--- openoffice.org-2.4.1.orig/debian/openoffice.org-sdbc-postgresql.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-sdbc-postgresql.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org-sdbc-postgresql
+
+THIS_PACKAGE=openoffice.org-sdbc-postgresql
+THIS_SCRIPT=preinst
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	upgrade)
+		# this is a legacy package, so we need to find it first...
+		id=`/usr/lib/openoffice/program/unopkg list --shared | grep Identifier:.*postgresql-sdbc | cut -d":" -f2`
+		remove_extension $id
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/control
+++ openoffice.org-2.4.1/debian/control
@@ -0,0 +1,767 @@
+Source: openoffice.org
+Section: editors
+Priority: optional
+XSBC-Original-Maintainer: Debian OpenOffice Team <debian-openoffice@lists.debian.org>
+Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+Uploaders: Chris Halls <halls@debian.org>, Rene Engelhard <rene@debian.org>
+Build-Depends: lsb-release, bzip2, bison (>= 1:1.875a-1), flex-old, libpam0g-dev, libxaw7-dev, unzip, zip, autoconf, sharutils, pkg-config, xutils, libfontconfig1-dev, binutils (>= 2.14.90.0.6-3) [sparc], libc6 (>= 2.3.2-1) [powerpc], zlib1g-dev, libfreetype6-dev, libx11-dev, libsm-dev, libxt-dev, libxext-dev, libxtst-dev, libice-dev, libsane-dev, libxrender-dev, libcupsys2-dev, libarchive-zip-perl, libpng12-dev, libjpeg62-dev, libxml2-dev, libldap2-dev, libexpat1-dev, libgnomevfs2-dev, fastjar, xsltproc, imagemagick, netpbm, fdupes, xml-core, libxkbfile-dev, libxinerama-dev, x11proto-render-dev, unixodbc-dev (>= 2.2.11), libxml-parser-perl, gperf, libpq-dev, libxrandr-dev , translate-toolkit (>= 1.1.1-1) , g++ (>> 4.3.0) [s390], gcc (>> 4.3.0) [s390] , dpkg-dev (>= 1.14.11) , libgl1-mesa-dev [i386 powerpc sparc s390 lpia], libglu1-mesa-dev [i386 powerpc sparc s390 lpia] , libcurl4-openssl-dev , libssl-dev , libdb4.6-dev , python-central (>= 0.5) , python-dev (>= 2.4) , debhelper (>= 5.0.51~) , java-gcj-compat-dev (>= 1.0.76-7) [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libgcj-bc [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , ant (>= 1.6.5) [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , libxerces2-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , libxalan2-java (>= 2.6.0-1) [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , libjcommon-java (>= 1.0.10) [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libsac-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libxml-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libflute-1.3-jfree-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libpentaho-reporting-flow-engine-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], liblayout-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libloader-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libformula-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], librepository-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libfonts-java (>= 0.2.6) [i386 mips mipsel s390 amd64 ia64 lpia ppc64], libjcommon-serializer-java [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , xulrunner-1.9-dev [i386 powerpc mips mipsel s390 armel amd64 ia64 lpia ppc64] , dmake (>= 1:4.11) , mono-mcs (>= 1.2.3) [i386 ia64 lpia], mono-gmcs (>= 1.2.3) [i386 ia64 lpia], libmono-dev (>= 1.2.3) [i386 ia64 lpia], mono-utils (>= 1.2.3) [i386 ia64 lpia], cli-common-dev (>= 0.4.4) [i386 ia64 lpia], mono-1.0-devel [i386 ia64 lpia], mono-2.0-devel [i386 ia64 lpia] , libhunspell-dev (>= 1.1.5-2) , libboost-dev , libvigraimpex-dev , libwpd8-dev (>= 0.8.3-3) , libwps-dev , libwpg-dev , libicu-dev , libxslt1-dev , libcairo2-dev , kdelibs4-dev (>= 4:3.4.3-2) , libhsqldb-java (>= 1.8.0.9-1) [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , bsh (>= 2.0b4-1) [i386 mips mipsel s390 amd64 ia64 lpia ppc64] , libdbus-glib-1-dev (>= 0.60) , libgstreamer-plugins-base0.10-dev , libneon27-dev , libgtk2.0-dev (>= 2.10)
+Build-Conflicts: libcairo2 (= 1.4.8-1), libxul-dev (= 1.8.0.13~pre070720-0etch1), gjdoc (= 0.7.8-2), libc6-dev (= 2.6.1-3) [i386 amd64], libc6-dev (= 2.6.1-4) [i386 amd64], nvidia-glx-dev, nvidia-glx-legacy-dev, libmono-dev (= 1.2.6+dfsg-1), libmono-dev (= 1.2.6+dfsg-2), libmono-dev (= 1.2.6+dfsg-3), libmono-dev (= 1.2.6+dfsg-4), gcj-4.2 (= 4.2.2-6), flex (= 2.5.34-1) [amd64]
+Standards-Version: 3.7.2
+XS-Python-Version: current
+Vcs-Bzr: http://bazaar.launchpad.net/~openoffice-pkgs/openoffice/2.4.1-hardy
+Vcs-Svn: svn://svn.gnome.org/svn/ooo-build/branches/ooo-build-2-4-1
+Homepage: http://www.openoffice.org
+
+Package: openoffice.org
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-writer, openoffice.org-calc, openoffice.org-impress, openoffice.org-draw, openoffice.org-math, openoffice.org-base, ttf-dejavu, ${ooo-officebean-dep}, ${ooo-binfilter-dep}, ${writer-w2l-dep}, openoffice.org-filter-mobiledev, ${java-common-depends}
+Suggests: hunspell-dictionary, myspell-dictionary, openoffice.org-help-${help-l10n-virtual-version}, openoffice.org-l10n-${help-l10n-virtual-version}, menu, unixodbc, cupsys-bsd, libsane, openoffice.org-hyphenation, openoffice.org2-thesaurus, libxrender1, libgl1, msttcorefonts, openoffice.org-gnome | openoffice.org-kde, iceweasel | firefox | icedove | thunderbird | iceape-browser | mozilla-browser, ${java-runtime-depends}, openclipart-openoffice.org, pstoedit, graphicsmagick-imagemagick-compat | imagemagick, libpaper-utils, ${gstreamer-plugins-suggests}
+Conflicts: openoffice.org2 (<< ${Source-Version})
+Replaces: openoffice.org2 (<< ${Source-Version}), openoffice.org-debian-files
+Provides: openoffice.org2
+Description: OpenOffice.org Office suite
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This metapackage installs all components of openoffice.org:
+  * openoffice.org-writer: Word processor
+  * openoffice.org-calc: Spreadsheet
+  * openoffice.org-impress: Presentation
+  * openoffice.org-draw: Drawing
+  * openoffice.org-base: Database
+  * openoffice.org-math: Equation editor
+  * openoffice.org-filter-mobiledev: Mobile Devices filters
+  * openoffice.org-filter-binfilter: legacy filters (e.g. StarOffice 5.2)
+ .
+ You can extend the functionality of OpenOffice.org by installing these
+ packages:
+  * hunspell-dictionary-*/myspell-dictionary-*: Hunspell/Myspell dictionaries
+    for use with OpenOffice.org
+  * openoffice.org-l10n-*: UI interface translation
+  * openoffice.org-help-*: User help
+  * openoffice.org-thesaurus-*: Thesauri for the use with OpenOffice.org
+  * openoffice.org-hyphenation-*: Hyphenation patterns for OpenOffice.org
+  * openoffice.org-gtk: Gtk UI Plugin, GNOME File Picker support,
+    QuickStarter for GNOMEs notification are
+  * openoffice.org-gnome: GNOME VFS, GConf backend
+  * openoffice.org-kde: KDE UI Plugin and KDE File Picker support
+  * openoffice.org-headless: Headless (svp) UI Plugin
+  * menu: Will add openoffice.org menu entries for every Debian window manager.
+  * unixodbc: ODBC database support
+  * cupsys-bsd: Allows OpenOffice.org to detect your CUPS printer queues
+     automatically
+  * libsane: Use your sane-supported scanner with OpenOffice.org
+  * libxrender1: Speed up display by using Xrender library
+  * libgl1: OpenGL support 
+  * openclipart-openoffice.org: Open Clip Art Gallery with OOo index files
+  * iceweasel | firefox | icedove | thunderbird | iceape-browser | mozilla-browser:
+    Mozilla profile with Certificates needed for XML Security...
+  * msttcorefonts: Installs standard MS truetype fonts (contrib)
+  * java-gcj-compat | sun-java5-jre | java2-runtime
+    Java Runtime Environment for use with OpenOffice.org
+  * pstoedit / imagemagick: helper tools for EPS thumbnails
+  * gstreamer0.10-plugins-*: GStreamer plugins for use with OOos media backend
+  * libpaper-utils: papersize detection support via paperconf
+
+Package: broffice.org
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: editors
+Priority: extra
+Architecture: all
+Depends: openoffice.org, openoffice.org-l10n-pt-br, openoffice.org-help-pt-br, myspell-pt-br
+Description: BrOffice.org office suite
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ OpenOffice.org is called BrOffice.org in Brazil and this metapackage
+ changes an OpenOffice.org installation into a BrOffice.org branded one once
+ installed.
+
+Package: openoffice.org-l10n-za
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: editors
+Priority: optional
+Architecture: all
+Depends: openoffice.org-l10n-af, openoffice.org-l10n-en-za, openoffice.org-l10n-nr, openoffice.org-l10n-ns, openoffice.org-l10n-ss, openoffice.org-l10n-st, openoffice.org-l10n-tn, openoffice.org-l10n-ts, openoffice.org-l10n-ve, openoffice.org-l10n-xh, openoffice.org-l10n-zu
+Description: South African language packages for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ . 
+ This package is a metapackage installing l10n packages for all 11 South
+ African languages.
+
+Package: openoffice.org-l10n-in
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: editors
+Priority: optional
+Architecture: all
+Depends: openoffice.org-l10n-as-in, openoffice.org-l10n-bn, openoffice.org-l10n-gu-in, openoffice.org-l10n-hi-in, openoffice.org-l10n-ml-in, openoffice.org-l10n-mr-in, openoffice.org-l10n-or-in, openoffice.org-l10n-pa-in, openoffice.org-l10n-ta-in, openoffice.org-l10n-te-in
+Recommends: ttf-indic-fonts
+Description: Indic language packages for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package is a metapackage installing l10n packages for all available
+ indic languages.
+
+Package: openoffice.org-core
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-common (>> ${base-version}), ttf-opensymbol, ${shlibs:Depends}, fontconfig, ${mozilla-nss-depends}
+Conflicts: openoffice.org-thesaurus, openoffice.org-unbundled, openoffice.org-l10n-1.9.108, openoffice.org-l10n-1.9.114, openoffice.org-l10n-1.9.121, openoffice.org-1.9.125, oooqs-kde, ooqstart-gnome, openoffice.org-help-de (<< 2.0), openoffice.org-help-en (<< 2.0), openoffice.org-help-el (<< 2.0), openoffice.org-help-es (<< 2.0), openoffice.org-help-fr (<< 2.0), openoffice.org-help-it (<< 2.0), openoffice.org-help-ja (<< 2.0), openoffice.org-help-ko (<< 2.0), openoffice.org-help-pt-br (<< 2.0), openoffice.org-help-sv (<< 2.0), openoffice.org-help-tr (<< 2.0), openoffice.org-help-zh-cn (<< 2.0), openoffice.org-help-zh-tw (<< 2.0), openoffice.org-help-2.0.0, openoffice.org-help-2.0.1, openoffice.org-help-2.0.2, openoffice.org-help-2.0.3, openoffice.org-bin, openoffice.org2-core, openoffice.org-crashrep, openoffice.org2-hunspell, openoffice.org-hunspell, openoffice.org-calc (<< ${Source-Version}), openoffice.org-writer (<< ${Source-Version}), openoffice.org-impress (<< ${Source-Version}), openoffice.org-draw (<< ${Source-Version}), openoffice.org-base (<< ${Source-Version}), openoffice.org-gtk (<< ${Source-Version}), openoffice.org-gnome (<< ${Source-Version}), openoffice.org-kde (<< ${Source-Version}), openoffice.org-evolution (<< ${Source-Version}), openoffice.org-filter-so52 (<< ${Source-Version}), openoffice.org-officebean (<< ${Source-Version}), openoffice.org-dev (<< ${Source-Version}), libcairo2 (= 1.4.8-1), libicu38 (= 3.8~d01-1)
+Provides: openoffice.org-bundled, openoffice.org2-core, openoffice.org-java, openoffice.org2-hunspell, openoffice.org-hunspell
+Replaces: openoffice.org-bin, openoffice.org (<< 1.9), openoffice.org-gtk (<< 2.0.3+2.0.4m179), openoffice.org2-core, openoffice.org-java, openoffice.org2-hunspell, openoffice.org-hunspell, openoffice.org-common (<< 1:2.3.1), openoffice.org-calc (<< 2.2.1~oof680m15-2)
+Description: OpenOffice.org office suite architecture dependent files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-dependent core files of
+ OpenOffice.org.  See the openoffice.org package for more information.
+
+Package: openoffice.org-common
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: dictionaries-common (>= 0.10) | openoffice.org-updatedicts, openoffice.org-core (>> ${base-version}), openoffice.org-style-human | openoffice.org-style-tango | openoffice.org-style-crystal | openoffice.org-style-andromeda
+Suggests: openoffice.org-style-industrial, openoffice.org-style-hicontrast
+Conflicts: openoffice.org-debian-files, openoffice.org-mimelnk, openoffice.org2-common, openclipart-openoffice.org (<= 0.17+dfsg-4), openoffice.org-l10n-en-us, openoffice.org-debian-menus, openoffice.org-core (= 2.0.4~rc3-1), openoffice.org-base (<< ${base-version}), openoffice.org-writer (<< ${base-version}), openoffice.org-calc (<< ${base-version}), openoffice.org-impress (<< ${base-version}), openoffice.org-draw (<< ${base-version}), openoffice.org-math (<< ${base-version})
+Provides: openoffice.org2-common, openoffice.org-l10n-en-us
+Replaces: openoffice.org-debian-files, openoffice.org-mimelnk, openoffice.org (<< 1.9), openoffice.org2-common, openoffice.org-l10n-en-us, openoffice.org-l10n-en, openoffice.org-calc (<< 2.0.4~rc1), openoffice.org-base (<< 2.0.4~rc1), openoffice.org-math (<< 2.0.4~rc1), broffice.org (<< 2.2.1~rc1-1)
+Description: OpenOffice.org office suite architecture independent files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-independent files of
+ OpenOffice.org.
+
+Package: openoffice.org-java-common
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common, ${java-common-java-depends}, ${common-bsh-depends}
+Replaces: openoffice.org-common (<< 2.0.3-4), openoffice.org2-java-common
+Conflicts: openoffice.org2-java-common, openoffice.org-filter-mobiledev (<= 2.2.0-4), openoffice.org-base (<= 2.2.0-4), openoffice.org-writer (<= 2.2.0-4), openoffice.org-officebean (<= 2.2.0-4)
+Provides: openoffice.org2-java-common
+Description: OpenOffice.org office suite Java support arch. independent files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-independent files of
+ the Java support for OpenOffice.org (Java classes, scripts, config snippets).
+
+Package: openoffice.org-writer
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-base-core (= ${Source-Version}), ${shlibs:Depends}, ${writer-pyuno-dep}
+Recommends: ${ooo-binfilter-dep}, ${java-runtime-depends}, ${java-common-depends}, ${writer-w2l-dep}
+Replaces: openoffice.org (<< 1.9), openoffice.org-debian-files, openoffice.org2-writer (<< ${Source-Version}), openoffice.org-common (<< 1:2.3.1)
+Conflicts: openoffice.org-debian-files, openoffice.org2-writer (<< ${Source-Version}), openoffice.org-java-common (<= 1:2.3.1)
+Provides: openoffice.org2-writer
+Suggests: openoffice.org-gcj, openoffice.org-base
+Description: OpenOffice.org office suite - word processor
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the wordprocessor component for OpenOffice.org.
+
+Package: openoffice.org-calc
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-base-core (= ${Source-Version}), ${shlibs:Depends}, ${lpsolve-dep}
+Replaces: openoffice.org2-core (<< 1.9.113-0pre1), openoffice.org (<< 1.9), openoffice.org-debian-files, openoffice.org-core (<= 2.2.0-4), openoffice.org2-calc (<< ${Source-Version}), openoffice.org-common (<< 2.0.3+2.0.4m179)
+Conflicts: openoffice.org-bin (<< 1.9), openoffice.org-debian-files, openoffice.org2-calc (<< ${Source-Version})
+Provides: openoffice.org2-calc
+Description: OpenOffice.org office suite - spreadsheet
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the spreadsheet component for OpenOffice.org.
+
+Package: openoffice.org-impress
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-draw (= ${Source-Version}), ${shlibs:Depends}
+Replaces: openoffice.org (<< 1.9), openoffice.org-debian-files, openoffice.org2-impress (<< ${Source-Version}), openoffice.org-common (<< 2.0.3+2.0.4m179)
+Recommends: libxrandr2
+Provides: openoffice.org2-impress
+Conflicts: openoffice.org-debian-files, openoffice.org2-impress (<< ${Source-Version})
+Description: OpenOffice.org office suite - presentation
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the presentation component for OpenOffice.org.
+
+Package: openoffice.org-draw
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), ${shlibs:Depends}
+Replaces: openoffice.org (<< 1.9), openoffice.org-debian-files, openoffice.org2-draw (<< ${Source-Version}), openoffice.org-core (<< 2.2.1~rc3-3), openoffice.org-common (<< 2.0.3+2.0.4m179)
+Conflicts: openoffice.org-debian-files, openoffice.org2-draw (<< ${Source-Version})
+Provides: openoffice.org2-draw
+Description: OpenOffice.org office suite - drawing
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the drawing component for OpenOffice.org.
+
+Package: openoffice.org-math
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), ${shlibs:Depends}
+Replaces: openoffice.org (<< 1.9), openoffice.org-debian-files, openoffice.org2-math (<< ${Source-Version}), openoffice.org-common (<< 2.0.3+2.0.4m179)
+Conflicts: openoffice.org-debian-files, openoffice.org2-math (<< ${Source-Version})
+Provides: openoffice.org2-math
+Description: OpenOffice.org office suite - equation editor
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the equation editor component for OpenOffice.org.
+
+Package: openoffice.org-base-core
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}
+Replaces: openoffice.org-base (<< 1:2.3.1), openoffice.org-core (<< 1:2.3.1)
+Suggests: openoffice.org-base
+Description: OpenOffice.org office suite -- libdba
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains libdba, a common library of the OpenOffice.org
+ suite used by Base, Writer and Calc.
+ .
+ If you need full Base functionality (or actual database drivers), please
+ install openoffice.org-base.
+
+Package: openoffice.org-base
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-base-core (= ${Source-Version}), ${shlibs:Depends}, ${java-runtime-depends}, ${base-hsqldb-depends}, ${java-common-depends}
+Suggests: unixodbc, libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | mdbtools, libmysql-java | libpg-java, openoffice.org-gcj, openoffice.org-report-builder
+Replaces: openoffice.org-core (<< 2.0.1), openoffice.org-common (<< 1.9.113-0pre1), openoffice.org-bin (<< 1.9), openoffice.org-debian-files, openoffice.org2-base (<< ${Source-Version}), openoffice.org-java
+Conflicts: openoffice.org-debian-files, openoffice.org2-base (<< ${Source-Version}), openoffice.org-common (= 2.0.4-4)
+Provides: openoffice.org2-base
+Description: OpenOffice.org office suite - database
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the database component for OpenOffice.org.
+ .
+ You can extend the functionality of OpenOffice.org Base by installing these
+ packages:
+ .
+  * unixodbc: ODBC database support
+  * libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | mdbtools: ODBC
+    drivers for:
+    - MySQL
+    - PostgreSQL
+    - SQLite
+    - MS SQL / Sybase SQL
+    - *.mdb (JET / MS Access)
+  * libmysql-java | libpg-java: JDBC Drivers
+    for:
+    - MySQL
+    - PostgreSQL
+
+Package: openoffice.org-style-crystal
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common (= ${Source-Version})
+Suggests: kde-icons-crystal, crystalcursors
+Replaces: openoffice.org-common (<< 2.1~m190)
+Description: Crystal symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "crystal" symbol style, default style for KDE.
+
+Package: openoffice.org-style-industrial
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common (= ${Source-Version})
+Suggests: gtk2-engines, gnome-themes, industrial-cursor-theme
+Replaces: openoffice.org-common (<< 2.1~m190)
+Description: Industrial symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "industrial" symbol style.
+
+Package: openoffice.org-style-tango
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common (= ${Source-Version})
+Suggests: tango-icon-theme
+Replaces: openoffice.org-common (<< 2.1~m190)
+Description: Tango symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "tango" symbol style, default style
+ for GTK+/Gnome.
+
+Package: openoffice.org-style-human
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common (= ${Source-Version})
+Replaces: openoffice.org-common (<< 2.1~m190)
+Description: Human symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "human" symbol style, default style
+ for Ubuntu.
+
+Package: openoffice.org-style-hicontrast
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common (= ${Source-Version})
+Suggests: gtk2-engines
+Replaces: openoffice.org-common (<< 2.1~m190)
+Description: Hicontrast symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "hicontrast" symbol style, needs to be manually
+ enabled in the OpenOffice.org option menu.
+
+Package: openoffice.org-style-andromeda
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: all
+Depends: openoffice.org-common (= ${Source-Version})
+Replaces: openoffice.org-common (<< 2.1~m190), openoffice.org-style-default
+Conflicts: openoffice.org-style-default
+Provides: openoffice.org-style-default
+Description: Default symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "Andromeda" symbol style from Sun, normally used on
+ MS Windows (tm) and when not using GNOME or KDE, needs to be manually
+ enabled in the OpenOffice.org option menu.
+
+Package: openoffice.org-kde
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-style-crystal, ${shlibs:Depends}
+Suggests: konqueror, kmail, kaddressbook
+Section: kde
+Enhances: openoffice.org
+Conflicts: openoffice.org2-kde (<< ${Source-Version})
+Provides: openoffice.org2-kde
+Replaces: openoffice.org2-kde (<< ${Source-Version})
+Description: KDE Integration for OpenOffice.org (Widgets, Dialogs, Addressbook)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the KDE plugin for drawing OOo's widgets with
+ KDE/Qt, a KDEish File Picker when running under KDE and KDE Addressbook
+ integration.
+ You can extend the functionality of this by installing these packages:
+ .
+  * konqueror / kmail
+  * kaddressbook
+
+Package: openoffice.org-gtk
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-style-human, ${shlibs:Depends}
+Section: gnome
+Enhances: openoffice.org
+Replaces: openoffice.org-gnome (<< 2.0.4~rc1-0), openoffice.org-common (<< 2.0.4~rc1-0)
+Conflicts: ooqstart-gnome, oooqs-kde, libgtk2.0-0 (= 2.12.10-1) [amd64]
+Description: GTK+ Integration for OpenOffice.org (Widgets, Dialogs, Quickstarter)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Gtk plugin for drawing OOo's widgets with
+ Gtk+ and a Gtk/GNOMEish File Picker when running under GNOME. It also
+ contains a QuickStarter for the "notification area".
+
+Package: openoffice.org-headless
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), ${shlibs:Depends}
+Section: misc
+Enhances: openoffice.org
+Description: Headless VCL plugin for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Headless (svp) VCL plugin allowing to use some OOo
+ features which needs $DISPLAY without it.
+
+Package: openoffice.org-gnome
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-gtk, ${shlibs:Depends}, gconf2
+Suggests: openoffice.org-evolution
+Section: gnome
+Enhances: openoffice.org
+Conflicts: openoffice.org2-gnome (<< ${Source-Version})
+Provides: openoffice.org-gtk-gnome, openoffice.org2-gnome
+Replaces: openoffice.org-gtk-gnome, openoffice.org2-gnome (<< ${Source-Version}), openoffice.org-gtk (<< 2.0.3-1), openoffice.org-kde (= 2.0.1-1), openoffice.org-common (<< 2.0.4~rc1-0)
+Description: GNOME Integration for OpenOffice.org (VFS, GConf)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the GNOME VFS support and a GConf backend.
+ .
+ You can extend the functionality of this by installing these packages:
+ .
+  * openoffice.org-evolution: Evolution addressbook support
+  * evolution
+
+Package: openoffice.org-evolution
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Section: gnome
+Depends: openoffice.org-core (= ${Source-Version}), openoffice.org-base, ${shlibs:Depends}
+Recommends: evolution
+Conflicts: openoffice.org2-evolution (<< ${Source-Version})
+Provides: openoffice.org2-evolution
+Replaces: openoffice.org2-evolution (<< ${Source-Version})
+Description: Evolution Addressbook support for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package allows OpenOffice.org to access Evolution address books.
+ You need to install evolution separately.
+
+Package: python-uno
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Provides: ${python:Provides}
+XB-Python-Version: ${python:Versions}
+Section: python
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Enhances: openoffice.org
+Depends: openoffice.org-core (= ${Source-Version}), ${python:Depends}, ${shlibs:Depends}
+Replaces: openoffice.org-common (<< 1.9.82)
+Description: Python interface for OpenOffice.org
+ The Python-UNO bridge allows use of the standard OpenOffice.org API 
+ with the Python scripting language. It additionally allows 
+ others to develop UNO components in Python, thus Python UNO components 
+ may be run within the OpenOffice.org process and can be called from C++
+ or the built in StarBasic scripting language.
+ .
+ You can more information about Pyuno at
+ http://udk.openoffice.org/python/python-bridge.html
+Homepage: http://udk.openoffice.org/python/python-bridge.html
+
+Package: openoffice.org-officebean
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 mips mipsel s390 amd64 ia64 lpia ppc64
+Section: misc
+Depends: openoffice.org-core (= ${Source-Version}), ${shlibs:Depends}, ${java-runtime-depends}, ${java-common-depends}
+Replaces: openoffice.org-common (<< 1.9.113-0pre1), openoffice.org2-officebean
+Provides: openoffice.org2-officebean
+Conflicts: openoffice.org2-officebean
+Description: OpenOffice.org Office Bean
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the OpenOffice.org Office Bean for embedding
+ OpenOffice.org in custom Java applications.
+
+Package: openoffice.org-filter-binfilter
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: misc
+Architecture: i386 powerpc mips mipsel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), ${shlibs:Depends}
+Replaces: openoffice.org2-core (<= 1.9.108-1), openoffice.org-math (<< 1.9.113-0pre1), openoffice.org-calc (<< 1.9.113-0pre1), openoffice.org2-filter-so52, openoffice.org-filter-so52
+Provides: openoffice.org2-filter-so52, openoffice.org-filter-so52
+Conflicts: openoffice.org2-filter-so52, openoffice.org-filter-so52
+Description: Legacy filters (e.g. StarOffice 5.2) for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "binfilters", legacy filters for
+  - the old StarOffice 5.2 formats
+  - StarWriter 1.0/2.0
+  - StarWriter/DOS
+  - *Writer* filters for
+    + Excel
+    + Lotus
+
+Package: openoffice.org-filter-mobiledev
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: misc
+Architecture: all
+Depends: ${java-runtime-depends}, ${java-common-depends}
+Replaces: openoffice.org-java-common (<< 2.0.3+2.0.4m178), openoffice.org-common (<< 2.0.3+2.0.4m178)
+Description: Mobile Devices Filters for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the filters for Mobile Devices:
+  * AportisDoc (Palm)
+  * PocketWord
+  * PocketExcel
+
+Package: libmythes-dev
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: libdevel
+Suggests: perl
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Description: simple thesaurus library (development files)
+ MyThes is a simple thesaurus that uses a structured
+ text data file and an index file with binary search
+ to lookup words and phrases and return information
+ on part of speech, meanings, and synonyms
+ .
+ This package contains the static library and header file needed
+ to develop applications using mythes and the perl script to create
+ the index files.
+
+Package: openoffice.org-dtd-officedocument1.0
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: text
+Priority: extra
+Depends: xml-core
+Architecture: all
+Replaces: openoffice.org-common (<< 2.0.4~ood680)
+Conflicts: openoffice.org-common (<< 2.0.4~ood680)
+Description: OfficeDocument 1.0 DTD (OpenOffice.org 1.x)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Document Type Definition (DTD) of the
+ OpenOffice.org 1.x(!) XML file format.
+
+Package: openoffice.org-presentation-minimizer
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: misc
+Priority: optional
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}, openoffice.org-core (>= 2.3), openoffice.org-impress
+Enhances: openoffice.org-impress
+Description: OpenOffice.org Presentation Minimizer extension
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the presentation minimizer extension:
+  "The Sun Presentation Minimizer is used to reduce the file size of the
+  current presentation. Images will be compressed, and data that is no longer
+  needed will be removed.
+  The Sun Presentation Minimizer can optimize the image quality size.
+  Presentations designed for screen or projector do not require the same high
+  quality as presentations designed for print."
+Homepage: http://extensions.services.openoffice.org/project/PresentationMinimizer
+
+Package: ure
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: libs
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}
+Recommends: java2-runtime
+Description: UNO runtime environment
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of OpenOffice.org, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal 
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+
+Package: ure-dbg
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: devel
+Priority: extra
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}, ure (= ${ure:Version})
+Description: UNO runtime environment -- debug symbols
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of OpenOffice.org, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal 
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains the (detached) debug symbols for the URE.
+
+Package: openoffice.org-gcj
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}, java-gcj-compat, openoffice.org-core (= ${Source-Version}), openoffice.org-java-common (= ${source:Version}), ${java-gcj-depends}
+Enhances: openoffice.org-writer, openoffice.org-base
+Description: OpenOffice.orgs Java libraries (native for use with GIJ)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the .jars from openoffice.org-java-common compiled to
+ native to make the Java features of OOo faster when using gij.
+ .
+ This package has NO effect with Suns/Blackdowns/IBMs/etc. JDK.
+
+Package: libuno-cil
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Architecture: i386 ia64 lpia
+Depends: ${shlibs:Depends}, openoffice.org-core (>> ${base-version}), mono-gac, ${cli:Depends}
+Description: CLI binding for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the CLI bindings to OpenOffice.org for
+ accessing the OpenOffice.org API from Mono languages (e.g. C# and Boo)
+ .
+ Note that currently the use of Mono for add-ins & scripting inside
+ OpenOffice.org is *not* yet supported.
+
+Package: openoffice.org-qa-tools
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: devel
+Priority: extra
+Depends: ${shlibs:Depends}, openoffice.org (>> ${base-version}), ${ooo-binfilter-dep}, ${java-common-depends}
+Recommends: openoffice.org-qa-api-tests, openoffice.org-qa-ui-tests
+Conflicts: openoffice.org-core (<< 1:2.3.0~oog680m2)
+Replaces: openoffice.org-common (<< 2.0.4~ood680m2)
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Description: OpenOffice.org Automatic Test Programs
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the test tools to automatically test the
+ OpenOffice.org programs.
+ .
+ Install the openoffice.org-qa-ui-tests and
+ openoffice.org-qa-api-tests packages to get the official
+ testscripts, or write your own scripts.
+
+Package: openoffice.org-qa-api-tests
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: devel
+Priority: extra
+Depends: openoffice.org-qa-tools
+Architecture: all
+Description: OpenOffice.org API Test Data
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the test data for the OpenOffice.org Java and
+ Basic APIs.
+
+Package: mozilla-openoffice.org
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: net
+Architecture: i386 powerpc mips mipsel s390 lpia
+Enhances: iceape-browser,
+ iceweasel,
+ mozilla-browser,
+ firefox,
+ openoffice.org,
+ openoffice.org-core
+Depends: ${shlibs:Depends}, openoffice.org-core (>= 2.2.0-2)
+Recommends: iceweasel | firefox | iceape-browser | konqueror-nsplugins, openoffice.org-writer, openoffice.org-calc, openoffice.org-draw, openoffice.org-impress, openoffice.org-math, openoffice.org-base
+Xb-Npp-Applications: ec8030f7-c20a-464f-9b0e-13a3a9e97384, 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a 
+Xb-Npp-Name: OpenOffice.org Plug-in
+Xb-Npp-MimeType: application/vnd.stardivision.calc, application/vnd.stardivision.chart, application/vnd.stardivision.draw, application/vnd.stardivision.impress, application/vnd.stardivision.impress-packed, application/vnd.stardivision.math, application/vnd.stardivision.writer, application/vnd.stardivision.writer-global, application/vnd.staroffice.writer, application/vnd.sun.xml.calc, application/vnd.sun.xml.calc.template, application/vnd.sun.xml.draw, application/vnd.sun.xml.draw.template, application/vnd.sun.xml.impress, application/vnd.sun.xml.impress.template, application/vnd.sun.xml.math, application/vnd.sun.xml.writer, application/vnd.sun.xml.writer.global, application/vnd.sun.xml.writer.template, application/vnd.oasis.opendocument.text, application/vnd.oasis.opendocument.text-template, application/vnd.oasis.opendocument.text-master, application/vnd.oasis.opendocument.text-web, application/vnd.oasis.opendocument.spreadsheet, application/vnd.oasis.opendocument.spreadsheet-template, application/vnd.oasis.opendocument.graphics, application/vnd.oasis.opendocument.graphics-template, application/vnd.oasis.opendocument.presentation, application/vnd.oasis.opendocument.presentation-template, application/vnd.oasis.opendocument.formula
+Description: OpenOffice.org Mozilla plugin
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains a Mozilla/Netscape compatible plugin which can handle
+ all OOo documents.
+
+Package: openoffice.org-ogltrans
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: graphics
+Priority: extra
+Architecture: i386 powerpc sparc s390 lpia
+Depends: ${shlibs:Depends}, openoffice.org-core (>> 1:2.4.0~m237), openoffice.org-impress (>> 1:2.4.0~m237), openoffice.org-common (>= 1:2.4.0~ooh680m6-2)
+Enhances: openoffice.org-impress
+Description: OpenOffice.org "OpenGL rendered transitions" extension
+ OpenOffice.org is a full-featured office productivity suite that provide
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the extension making OpenOffice.org able to use
+ OpenGL for impress transitions.
+
+Package: openoffice.org-report-builder
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: misc
+Priority: optional
+Architecture: i386 mips mipsel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}, ${report-builder-jar-depends}, openoffice.org-base (>= 2.3.0~src680m225), openoffice.org-core (>> 1:2.3.0~oog680m1), openoffice.org-java-common (>= 1:2.3.0~oog680m1)
+Conflicts: openoffice.org-reportdesigner
+Replaces: openoffice.org-reportdesigner
+Provides: openoffice.org-reportdesigner
+Enhances: openoffice.org-base
+Description: OpenOffice.org Report Builder extension
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the report builder extension:
+  "Create with the Sun Report Builder stylish, smart-looking database reports.
+  The flexible report editor can define group and page headers as well as
+  group and page footers and even calculation fields are available to
+  accomplish complex database reports."
+Homepage: http://extensions.services.openoffice.org/project/reportdesign
+
+Package: ttf-opensymbol
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: x11
+Architecture: all
+Replaces: openoffice.org (<= 1.1.1+1.1.2rc3)
+Recommends: fontconfig
+Description: The OpenSymbol TrueType font
+ This package contains the OpenSymbol TrueType font included in
+ OpenOffice.org. This font contains symbols (like fonts as Wingdings(tm)),
+ bullets (needed for bullets in OpenOffice.org) and non-latin character
+
+Package: openoffice.org-dev
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: devel
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: openoffice.org-core (= ${Source-Version}), ${shlibs:Depends}, ${dev-stl-depends}
+Recommends: dmake, g++, java-gcj-compat-dev, ${java-common-depends}
+Suggests: openoffice.org-dev-doc, libmythes-dev, c-shell
+Replaces: openoffice.org2-core (<= 1.9.108-1), openoffice.org2-dev, openoffice.org-java, openoffice.org-common (<< 2.0.2-3), openoffice.org-dev-doc (<< 2.0.2-4)
+Conflicts: openoffice.org-debian-files, openoffice.org2-dev
+Provides: openoffice.org2-dev
+Description: OpenOffice.org SDK -- development files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the files needed to build plugins/add-ons for
+ OpenOffice.org (includes, IDL files, build tools, ...). It also contains
+ the zipped source of the UNO Java libraries for use in IDEs like eclipse.
+
+Package: openoffice.org-dev-doc
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: doc
+Architecture: all
+Recommends: www-browser
+Suggests: g++, java2-compiler, openoffice.org-dtd-officedocument1.0
+Replaces: openoffice.org-dev (<< 2.1), openoffice.org2-dev-doc
+Provides: openoffice.org2-dev-doc
+Conflicts: openoffice.org2-dev-doc
+Description: OpenOffice.org SDK -- documentation
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the documentation of the OpenOffice.org SDK:
+ .
+  * C++/Java API reference
+  * IDL reference
+  * C++/Java/Basic examples
+ .
+ It also contains the gsicheck utility.
+ 
+Package: openoffice.org-sdbc-postgresql
+Pre-Depends: dpkg (>= 1.14.12ubuntu3)
+Section: misc
+Priority: optional
+Architecture: i386 powerpc mips mipsel armel s390 amd64 ia64 lpia ppc64
+Depends: ${shlibs:Depends}, openoffice.org-core (>> 1:2.3.0~oog680m1)
+Conflicts: openoffice.org-java-common (<< 2.3.0~src680m212), openoffice.org-gcj (<< 2.3.0~src680m212)
+Recommends: postgresql
+Description: PostgreSQL SDBC driver for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The PostgreSQL SDBC Driver allows to use the PostgreSQL database from
+ OpenOffice.org without any wrapper layer such as ODBC or JDBC.
+Homepage: http://dba.openoffice.org/drivers/postgresql/
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-base.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-base
+
+THIS_PACKAGE=openoffice.org-base
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if [ -L /usr/lib/openoffice/program/classes ]; then
+		rm /usr/lib/openoffice/program/classes
+		mkdir /usr/lib/openoffice/program/classes
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/shlibs.override.xmlsec
+++ openoffice.org-2.4.1/debian/shlibs.override.xmlsec
@@ -0,0 +1,2 @@
+libxmlsec1	1
+libxmlsec1-nss	1
--- openoffice.org-2.4.1.orig/debian/openoffice.org-writer.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-writer.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-writer
+
+THIS_PACKAGE=openoffice.org-writer
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if [ -L /usr/lib/openoffice/program/classes ]; then
+		rm /usr/lib/openoffice/program/classes
+		mkdir /usr/lib/openoffice/program/classes
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-gnome.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-gnome.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-gnome: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/control.lang.in
+++ openoffice.org-2.4.1/debian/control.lang.in
@@ -0,0 +1,33 @@
+Package: openoffice.orgVER-l10n-@LCODE@
+Architecture: all
+Depends: @L10N_COMMON@@LOCALES_DEPENDS@
+Recommends: openoffice.orgVER-core (>> ${base-version}) | language-support-translations-@CCODE@ @FONT_SUGGESTS@
+Provides: openoffice.orgVER-l10n-${help-l10n-virtual-version},
+ openoffice.org2-l10n-@LCODE@
+Suggests: hunspell-dictionary-@LCODE@ | myspell-dictionary-@LCODE@,
+ openoffice.org-hyphenation-@LCODE@,
+ openoffice.org2-thesaurus-@LCODE@,
+ openoffice.org-help-@LCODE@
+Conflicts: openoffice.org-core (<< ${base-version}), 
+ openoffice.org-core (>= ${base-version}.1),
+ openoffice.org2-l10n-@LCODE@
+Replaces: openoffice.org2-l10n-@LCODE@
+Description: @LNAME@ language package for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the localization of OpenOffice.org in
+ @LNAME@. 
+ It contains the user interface, the templates and the autotext features.
+ (please note that not all this is available for all possible languages). 
+ You can switch user interface language using the locales system.
+ .
+ Spelling dictionaries, hyphenation patterns, thesauri and help are not
+ included in this package. There are some available in separate packages
+ (myspell-*, openoffice.org-hyphenation-*, openoffice.org-thesaurus-*,
+ openoffice.org-help-*)
+ .
+ If you just want to be able to spellcheck etc. in other languages, you can
+ install extra dictionaries/hyphenation patterns/thesauri independently of
+ the language packs.
+
--- openoffice.org-2.4.1.orig/debian/control.gcj.in
+++ openoffice.org-2.4.1/debian/control.gcj.in
@@ -0,0 +1,17 @@
+Package: openoffice.orgVER-gcj
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}, 
+ java-gcj-compat,
+ openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-java-common (= ${source:Version}),
+ ${java-gcj-depends}
+Enhances: openoffice.orgVER-writer, openoffice.orgVER-base
+Description: OpenOffice.orgs Java libraries (native for use with GIJ)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the .jars from openoffice.orgVER-java-common compiled to
+ native to make the Java features of OOo faster when using gij.
+ .
+ This package has NO effect with Suns/Blackdowns/IBMs/etc. JDK.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-gcj.postrm.in
+++ openoffice.org-2.4.1/debian/openoffice.org-gcj.postrm.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# postrm script for openoffice.org-gcj
+
+THIS_PACKAGE=openoffice.org-gcj
+THIS_SCRIPT=postrm
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ -x /usr/bin/rebuild-gcj-db ]; then
+     /usr/bin/rebuild-gcj-db
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-report-builder.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-report-builder.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-base
--- openoffice.org-2.4.1.orig/debian/openoffice.org-core.postrm.in
+++ openoffice.org-2.4.1/debian/openoffice.org-core.postrm.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# postrm script for openoffice.org-core
+
+THIS_PACKAGE=openoffice.org-core
+THIS_SCRIPT=postrm
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "remove" ]; then
+	rm -rf /var/spool/openoffice2
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-report-builder.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-report-builder.preinst.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org-report-builder
+
+THIS_PACKAGE=openoffice.org-report-builder
+THIS_SCRIPT=preinst
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	upgrade)
+		remove_extension com.sun.reportdesigner
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org.preinst.in
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org
+
+THIS_PACKAGE=openoffice.org
+THIS_SCRIPT=preinst
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	install|upgrade)
+		if test -n "$2" && dpkg --compare-versions "$2" lt "2.0.0-1"; then
+			prep_rm_conffile "/etc/openoffice/sofficerc" $THIS_PACKAGE
+			prep_rm_conffile "/etc/openoffice/psprint.conf" $THIS_PACKAGE
+		fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/python-uno.overrides.lintian
+++ openoffice.org-2.4.1/debian/python-uno.overrides.lintian
@@ -0,0 +1 @@
+python-uno: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-math.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-math.manpages
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/oomath.1
--- openoffice.org-2.4.1.orig/debian/control.ogltrans.in
+++ openoffice.org-2.4.1/debian/control.ogltrans.in
@@ -0,0 +1,13 @@
+Package: openoffice.orgVER-ogltrans
+Section: graphics
+Priority: extra
+Architecture: %OOO_OGLTRANS_ARCHS%
+Depends: ${shlibs:Depends}, openoffice.orgVER-core (>> 1:2.4.0~m237), openoffice.orgVER-impress (>> 1:2.4.0~m237), openoffice.orgVER-common (>= 1:2.4.0~ooh680m6-2)
+Enhances: openoffice.orgVER-impress
+Description: OpenOffice.org "OpenGL rendered transitions" extension
+ OpenOffice.org is a full-featured office productivity suite that provide
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the extension making OpenOffice.org able to use
+ OpenGL for impress transitions.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-calc.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-calc.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core
--- openoffice.org-2.4.1.orig/debian/aotcompile-256M-default.diff
+++ openoffice.org-2.4.1/debian/aotcompile-256M-default.diff
@@ -0,0 +1,28 @@
+--- aotcompile.py-old	2007-11-26 11:18:40.000000000 +0100
++++ aotcompile.py	2007-11-26 11:19:19.000000000 +0100
+@@ -31,23 +31,8 @@
+ GCJFLAGS = ["-g", "-O2", "-fPIC", "-findirect-dispatch", "-fjni"]
+ LDFLAGS = ["-Wl,-Bsymbolic"]
+ 
+-MAX_CLASSES_PER_JAR = 1024
+-MAX_BYTES_PER_JAR = 1048576
+-
+-# Calculate the maximum jar size/maximum classes per jar.
+-try:
+-    for line in file('/proc/meminfo'):
+-        if line.startswith('MemTotal:'):
+-            memtotal = int(line.split()[1])
+-            break
+-    if memtotal < 2200000:
+-        MAX_CLASSES_PER_JAR = 512
+-        MAX_BYTES_PER_JAR = 524288
+-    if memtotal < 1100000:
+-        MAX_CLASSES_PER_JAR = 256
+-        MAX_BYTES_PER_JAR = 262144
+-except:
+-    pass
++MAX_CLASSES_PER_JAR = 256
++MAX_BYTES_PER_JAR = 262144
+ 
+ MAKEFILE = "Makefile"
+ 
--- openoffice.org-2.4.1.orig/debian/control.in
+++ openoffice.org-2.4.1/debian/control.in
@@ -0,0 +1,767 @@
+Source: openoffice.orgVER
+Section: editors
+Priority: optional
+XSBC-Original-Maintainer: Debian OpenOffice Team <debian-openoffice@lists.debian.org>
+Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+Uploaders: Chris Halls <halls@debian.org>, Rene Engelhard <rene@debian.org>
+Build-Depends: lsb-release,
+ bzip2,
+ bison (>= 1:1.875a-1),
+ flex-old,
+ libpam0g-dev,
+ libxaw7-dev,
+ unzip,
+ zip,
+ autoconf,
+ sharutils,
+ pkg-config,
+ xutils,
+ libfontconfig1-dev,
+ binutils (>= 2.14.90.0.6-3) [sparc],
+ libc6 (>= 2.3.2-1) [powerpc],
+ zlib1g-dev,
+ libfreetype6-dev,
+ libx11-dev,
+ libsm-dev,
+ libxt-dev,
+ libxext-dev,
+ libxtst-dev,
+ libice-dev,
+ libsane-dev,
+ libxrender-dev,
+ libcupsys2-dev,
+ libarchive-zip-perl,
+ libpng12-dev,
+ libjpeg62-dev,
+ libxml2-dev,
+ libldap2-dev,
+ libexpat1-dev,
+ libgnomevfs2-dev,
+ fastjar,
+ xsltproc,
+ imagemagick,
+ netpbm,
+ fdupes,
+ xml-core,
+ libxkbfile-dev,
+ libxinerama-dev,
+ x11proto-render-dev,
+ unixodbc-dev (>= 2.2.11),
+ libxml-parser-perl,
+ gperf,
+ libpq-dev,
+ libxrandr-dev
+ %BUILD_DEPS%
+Build-Conflicts: libcairo2 (= 1.4.8-1), libxul-dev (= 1.8.0.13~pre070720-0etch1), gjdoc (= 0.7.8-2), libc6-dev (= 2.6.1-3) [i386 amd64], libc6-dev (= 2.6.1-4) [i386 amd64], nvidia-glx-dev, nvidia-glx-legacy-dev, libmono-dev (= 1.2.6+dfsg-1), libmono-dev (= 1.2.6+dfsg-2), libmono-dev (= 1.2.6+dfsg-3), libmono-dev (= 1.2.6+dfsg-4), gcj-4.2 (= 4.2.2-6), flex (= 2.5.34-1) [amd64]
+Standards-Version: 3.7.2
+XS-Python-Version: current
+Vcs-Bzr: http://bazaar.launchpad.net/~openoffice-pkgs/openoffice/2.4.1-hardy
+Vcs-Svn: %OOO_BUILD_SVN%
+Homepage: http://www.openoffice.org
+
+Package: openoffice.orgVER
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-writer,
+ openoffice.orgVER-calc,
+ openoffice.orgVER-impress,
+ openoffice.orgVER-draw,
+ openoffice.orgVER-math,
+ openoffice.orgVER-base,
+ ttf-dejavu,
+ ${ooo-officebean-dep},
+ ${ooo-binfilter-dep},
+ ${writer-w2l-dep},
+ openoffice.orgVER-filter-mobiledev,
+ ${java-common-depends}
+Suggests: hunspell-dictionary,
+ myspell-dictionary, 
+ openoffice.orgVER-help-${help-l10n-virtual-version},
+ openoffice.orgVER-l10n-${help-l10n-virtual-version},
+ menu,
+ unixodbc,
+ cupsys-bsd,
+ libsane,
+ openoffice.org-hyphenation,
+ openoffice.org2-thesaurus,
+ libxrender1,
+ libgl1,
+ msttcorefonts,
+ openoffice.orgVER-gnome | openoffice.orgVER-kde,
+ iceweasel | firefox | icedove | thunderbird | iceape-browser | mozilla-browser,
+ ${java-runtime-depends},
+ openclipart-openoffice.org,
+ pstoedit,
+ graphicsmagick-imagemagick-compat | imagemagick,
+ libpaper-utils,
+ ${gstreamer-plugins-suggests}
+Conflicts: openoffice.org2 (<< ${Source-Version})
+Replaces: openoffice.org2 (<< ${Source-Version}), openoffice.org-debian-files
+Provides: openoffice.org2
+Description: OpenOffice.org Office suite
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This metapackage installs all components of openoffice.org:
+  * openoffice.orgVER-writer: Word processor
+  * openoffice.orgVER-calc: Spreadsheet
+  * openoffice.orgVER-impress: Presentation
+  * openoffice.orgVER-draw: Drawing
+  * openoffice.orgVER-base: Database
+  * openoffice.orgVER-math: Equation editor
+  * openoffice.orgVER-filter-mobiledev: Mobile Devices filters
+  * openoffice.orgVER-filter-binfilter: legacy filters (e.g. StarOffice 5.2)
+ .
+ You can extend the functionality of OpenOffice.org by installing these
+ packages:
+  * hunspell-dictionary-*/myspell-dictionary-*: Hunspell/Myspell dictionaries
+    for use with OpenOffice.org
+  * openoffice.orgVER-l10n-*: UI interface translation
+  * openoffice.orgVER-help-*: User help
+  * openoffice.orgVER-thesaurus-*: Thesauri for the use with OpenOffice.org
+  * openoffice.orgVER-hyphenation-*: Hyphenation patterns for OpenOffice.org
+  * openoffice.orgVER-gtk: Gtk UI Plugin, GNOME File Picker support,
+    QuickStarter for GNOMEs notification are
+  * openoffice.orgVER-gnome: GNOME VFS, GConf backend
+  * openoffice.orgVER-kde: KDE UI Plugin and KDE File Picker support
+  * openoffice.org-headless: Headless (svp) UI Plugin
+  * menu: Will add openoffice.org menu entries for every Debian window manager.
+  * unixodbc: ODBC database support
+  * cupsys-bsd: Allows OpenOffice.org to detect your CUPS printer queues
+     automatically
+  * libsane: Use your sane-supported scanner with OpenOffice.org
+  * libxrender1: Speed up display by using Xrender library
+  * libgl1: OpenGL support 
+  * openclipart-openoffice.org: Open Clip Art Gallery with OOo index files
+  * iceweasel | firefox | icedove | thunderbird | iceape-browser | mozilla-browser:
+    Mozilla profile with Certificates needed for XML Security...
+  * msttcorefonts: Installs standard MS truetype fonts (contrib)
+  * java-gcj-compat | sun-java5-jre | java2-runtime
+    Java Runtime Environment for use with OpenOffice.org
+  * pstoedit / imagemagick: helper tools for EPS thumbnails
+  * gstreamer0.10-plugins-*: GStreamer plugins for use with OOos media backend
+  * libpaper-utils: papersize detection support via paperconf
+
+Package: broffice.orgVER
+Section: editors
+Priority: extra
+Architecture: all
+Depends: openoffice.orgVER, openoffice.orgVER-l10n-pt-br, openoffice.orgVER-help-pt-br, myspell-pt-br
+Description: BrOffice.org office suite
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ OpenOffice.org is called BrOffice.org in Brazil and this metapackage
+ changes an OpenOffice.org installation into a BrOffice.org branded one once
+ installed.
+
+Package: openoffice.orgVER-l10n-za
+Section: editors
+Priority: optional
+Architecture: all
+Depends: openoffice.orgVER-l10n-af, openoffice.orgVER-l10n-en-za, openoffice.orgVER-l10n-nr, openoffice.orgVER-l10n-ns, openoffice.orgVER-l10n-ss, openoffice.orgVER-l10n-st, openoffice.orgVER-l10n-tn, openoffice.orgVER-l10n-ts, openoffice.orgVER-l10n-ve, openoffice.orgVER-l10n-xh, openoffice.orgVER-l10n-zu
+Description: South African language packages for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ . 
+ This package is a metapackage installing l10n packages for all 11 South
+ African languages.
+
+Package: openoffice.orgVER-l10n-in
+Section: editors
+Priority: optional
+Architecture: all
+Depends: openoffice.orgVER-l10n-as-in, openoffice.orgVER-l10n-bn, openoffice.orgVER-l10n-gu-in, openoffice.orgVER-l10n-hi-in, openoffice.orgVER-l10n-ml-in, openoffice.orgVER-l10n-mr-in, openoffice.orgVER-l10n-or-in, openoffice.orgVER-l10n-pa-in, openoffice.orgVER-l10n-ta-in, openoffice.orgVER-l10n-te-in
+Recommends: ttf-indic-fonts
+Description: Indic language packages for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package is a metapackage installing l10n packages for all available
+ indic languages.
+
+Package: openoffice.orgVER-core
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-common (>> ${base-version}), 
+ ttf-opensymbol,
+ ${shlibs:Depends},
+ fontconfig,
+ ${mozilla-nss-depends}
+Conflicts: openoffice.org-thesaurus, 
+ openoffice.orgVER-unbundled,
+ openoffice.orgVER-l10n-1.9.108,
+ openoffice.orgVER-l10n-1.9.114,
+ openoffice.orgVER-l10n-1.9.121,
+ openoffice.orgVER-1.9.125,
+ oooqs-kde,
+ ooqstart-gnome,
+ openoffice.org-help-de (<< 2.0),
+ openoffice.org-help-en (<< 2.0),
+ openoffice.org-help-el (<< 2.0),
+ openoffice.org-help-es (<< 2.0),
+ openoffice.org-help-fr (<< 2.0),
+ openoffice.org-help-it (<< 2.0),
+ openoffice.org-help-ja (<< 2.0),
+ openoffice.org-help-ko (<< 2.0),
+ openoffice.org-help-pt-br (<< 2.0),
+ openoffice.org-help-sv (<< 2.0),
+ openoffice.org-help-tr (<< 2.0),
+ openoffice.org-help-zh-cn (<< 2.0),
+ openoffice.org-help-zh-tw (<< 2.0),
+ openoffice.org-help-2.0.0,
+ openoffice.org-help-2.0.1,
+ openoffice.org-help-2.0.2,
+ openoffice.org-help-2.0.3,
+ openoffice.org-bin,
+ openoffice.org2-core,
+ openoffice.org-crashrep,
+ openoffice.org2-hunspell,
+ openoffice.org-hunspell,
+ openoffice.orgVER-calc (<< ${Source-Version}),
+ openoffice.orgVER-writer (<< ${Source-Version}),
+ openoffice.orgVER-impress (<< ${Source-Version}),
+ openoffice.orgVER-draw (<< ${Source-Version}),
+ openoffice.orgVER-base (<< ${Source-Version}),
+ openoffice.orgVER-gtk (<< ${Source-Version}),
+ openoffice.orgVER-gnome (<< ${Source-Version}),
+ openoffice.orgVER-kde (<< ${Source-Version}),
+ openoffice.orgVER-evolution (<< ${Source-Version}),
+ openoffice.orgVER-filter-so52 (<< ${Source-Version}),
+ openoffice.orgVER-officebean (<< ${Source-Version}),
+ openoffice.orgVER-dev (<< ${Source-Version}),
+ libcairo2 (= 1.4.8-1),
+ libicu38 (= 3.8~d01-1)
+Provides: openoffice.orgVER-bundled, 
+ openoffice.org2-core,
+ openoffice.org-java,
+ openoffice.org2-hunspell,
+ openoffice.org-hunspell
+Replaces: openoffice.org-bin, 
+ openoffice.org (<< 1.9),
+ openoffice.org-gtk (<< 2.0.3+2.0.4m179),
+ openoffice.org2-core,
+ openoffice.org-java,
+ openoffice.org2-hunspell,
+ openoffice.org-hunspell,
+ openoffice.org-common (<< 1:2.3.1),
+ openoffice.org-calc (<< 2.2.1~oof680m15-2)
+Description: OpenOffice.org office suite architecture dependent files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-dependent core files of
+ OpenOffice.org.  See the openoffice.orgVER package for more information.
+
+Package: openoffice.orgVER-common
+Architecture: all
+Depends: dictionaries-common (>= 0.10) | openoffice.org-updatedicts,
+ openoffice.orgVER-core (>> ${base-version}),
+ openoffice.orgVER-style-human | openoffice.orgVER-style-tango | openoffice.orgVER-style-crystal | openoffice.orgVER-style-andromeda
+Suggests: openoffice.orgVER-style-industrial,
+ openoffice.orgVER-style-hicontrast
+Conflicts: openoffice.org-debian-files, 
+ openoffice.org-mimelnk,
+ openoffice.org2-common,
+ openclipart-openoffice.org (<= 0.17+dfsg-4),
+ openoffice.org-l10n-en-us,
+ openoffice.org-debian-menus,
+ openoffice.org-core (= 2.0.4~rc3-1),
+ openoffice.org-base (<< ${base-version}),
+ openoffice.org-writer (<< ${base-version}),
+ openoffice.org-calc (<< ${base-version}),
+ openoffice.org-impress (<< ${base-version}),
+ openoffice.org-draw (<< ${base-version}),
+ openoffice.org-math (<< ${base-version})
+Provides: openoffice.org2-common,
+ openoffice.org-l10n-en-us
+Replaces: openoffice.org-debian-files, 
+ openoffice.org-mimelnk,
+ openoffice.org (<< 1.9),
+ openoffice.org2-common,
+ openoffice.org-l10n-en-us,
+ openoffice.org-l10n-en,
+ openoffice.org-calc (<< 2.0.4~rc1),
+ openoffice.org-base (<< 2.0.4~rc1),
+ openoffice.org-math (<< 2.0.4~rc1),
+ broffice.org (<< 2.2.1~rc1-1)
+Description: OpenOffice.org office suite architecture independent files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-independent files of
+ OpenOffice.org.
+
+Package: openoffice.orgVER-java-common
+Architecture: all
+Depends: openoffice.orgVER-common, 
+ ${java-common-java-depends},
+ ${common-bsh-depends}
+Replaces: openoffice.orgVER-common (<< 2.0.3-4), 
+ openoffice.org2-java-common
+Conflicts: openoffice.org2-java-common,
+ openoffice.org-filter-mobiledev (<= 2.2.0-4),
+ openoffice.org-base (<= 2.2.0-4),
+ openoffice.org-writer (<= 2.2.0-4),
+ openoffice.org-officebean (<= 2.2.0-4)
+Provides: openoffice.org2-java-common
+Description: OpenOffice.org office suite Java support arch. independent files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the architecture-independent files of
+ the Java support for OpenOffice.org (Java classes, scripts, config snippets).
+
+Package: openoffice.orgVER-writer
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-base-core (= ${Source-Version}),
+ ${shlibs:Depends}, 
+ ${writer-pyuno-dep}
+Recommends: ${ooo-binfilter-dep}, ${java-runtime-depends}, ${java-common-depends}, ${writer-w2l-dep}
+Replaces: openoffice.org (<< 1.9), 
+ openoffice.org-debian-files,
+ openoffice.org2-writer (<< ${Source-Version}),
+ openoffice.org-common (<< 1:2.3.1)
+Conflicts: openoffice.org-debian-files,
+ openoffice.org2-writer (<< ${Source-Version}),
+ openoffice.org-java-common (<= 1:2.3.1)
+Provides: openoffice.org2-writer
+Suggests: openoffice.orgVER-gcj,
+ openoffice.orgVER-base
+Description: OpenOffice.org office suite - word processor
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the wordprocessor component for OpenOffice.org.
+
+Package: openoffice.orgVER-calc
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-base-core (= ${Source-Version}),
+ ${shlibs:Depends},
+ ${lpsolve-dep}
+Replaces: openoffice.org2-core (<< 1.9.113-0pre1), 
+ openoffice.org (<< 1.9),
+ openoffice.org-debian-files,
+ openoffice.org-core (<= 2.2.0-4),
+ openoffice.org2-calc (<< ${Source-Version}),
+ openoffice.org-common (<< 2.0.3+2.0.4m179)
+Conflicts: openoffice.org-bin (<< 1.9), 
+ openoffice.org-debian-files,
+ openoffice.org2-calc (<< ${Source-Version})
+Provides: openoffice.org2-calc
+Description: OpenOffice.org office suite - spreadsheet
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the spreadsheet component for OpenOffice.org.
+
+Package: openoffice.orgVER-impress
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-draw (= ${Source-Version}),
+ ${shlibs:Depends}
+Replaces: openoffice.org (<< 1.9), 
+ openoffice.org-debian-files,
+ openoffice.org2-impress (<< ${Source-Version}),
+ openoffice.org-common (<< 2.0.3+2.0.4m179)
+Recommends: libxrandr2
+Provides: openoffice.org2-impress
+Conflicts: openoffice.org-debian-files,
+ openoffice.org2-impress (<< ${Source-Version})
+Description: OpenOffice.org office suite - presentation
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the presentation component for OpenOffice.org.
+
+Package: openoffice.orgVER-draw
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${shlibs:Depends}
+Replaces: openoffice.org (<< 1.9), 
+ openoffice.org-debian-files,
+ openoffice.org2-draw (<< ${Source-Version}),
+ openoffice.org-core (<< 2.2.1~rc3-3),
+ openoffice.org-common (<< 2.0.3+2.0.4m179)
+Conflicts: openoffice.org-debian-files,
+ openoffice.org2-draw (<< ${Source-Version})
+Provides: openoffice.org2-draw
+Description: OpenOffice.org office suite - drawing
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the drawing component for OpenOffice.org.
+
+Package: openoffice.orgVER-math
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${shlibs:Depends}
+Replaces: openoffice.org (<< 1.9), 
+ openoffice.org-debian-files,
+ openoffice.org2-math (<< ${Source-Version}),
+ openoffice.org-common (<< 2.0.3+2.0.4m179)
+Conflicts: openoffice.org-debian-files,
+ openoffice.org2-math (<< ${Source-Version})
+Provides: openoffice.org2-math
+Description: OpenOffice.org office suite - equation editor
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the equation editor component for OpenOffice.org.
+
+Package: openoffice.orgVER-base-core
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}
+Replaces: openoffice.org-base (<< 1:2.3.1), openoffice.org-core (<< 1:2.3.1)
+Suggests: openoffice.orgVER-base
+Description: OpenOffice.org office suite -- libdba
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains libdba, a common library of the OpenOffice.org
+ suite used by Base, Writer and Calc.
+ .
+ If you need full Base functionality (or actual database drivers), please
+ install openoffice.orgVER-base.
+
+Package: openoffice.orgVER-base
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-base-core (= ${Source-Version}),
+ ${shlibs:Depends},
+ ${java-runtime-depends},
+ ${base-hsqldb-depends},
+ ${java-common-depends}
+Suggests: unixodbc, 
+ libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | mdbtools,
+ libmysql-java | libpg-java,
+ openoffice.orgVER-gcj,
+ openoffice.orgVER-report-builder
+Replaces: openoffice.orgVER-core (<< 2.0.1), 
+ openoffice.orgVER-common (<< 1.9.113-0pre1),
+ openoffice.org-bin (<< 1.9),
+ openoffice.org-debian-files,
+ openoffice.org2-base (<< ${Source-Version}),
+ openoffice.org-java
+Conflicts: openoffice.org-debian-files,
+ openoffice.org2-base (<< ${Source-Version}),
+ openoffice.org-common (= 2.0.4-4)
+Provides: openoffice.org2-base
+Description: OpenOffice.org office suite - database
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the database component for OpenOffice.org.
+ .
+ You can extend the functionality of OpenOffice.org Base by installing these
+ packages:
+ .
+  * unixodbc: ODBC database support
+  * libmyodbc | odbc-postgresql | libsqliteodbc | tdsodbc | mdbtools: ODBC
+    drivers for:
+    - MySQL
+    - PostgreSQL
+    - SQLite
+    - MS SQL / Sybase SQL
+    - *.mdb (JET / MS Access)
+  * libmysql-java | libpg-java: JDBC Drivers
+    for:
+    - MySQL
+    - PostgreSQL
+
+Package: openoffice.orgVER-style-crystal
+Architecture: all
+Depends: openoffice.orgVER-common (= ${Source-Version})
+Suggests: kde-icons-crystal, crystalcursors
+Replaces: openoffice.orgVER-common (<< 2.1~m190)
+Description: Crystal symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "crystal" symbol style, default style for KDE.
+
+Package: openoffice.orgVER-style-industrial
+Architecture: all
+Depends: openoffice.orgVER-common (= ${Source-Version})
+Suggests: gtk2-engines, gnome-themes, industrial-cursor-theme
+Replaces: openoffice.orgVER-common (<< 2.1~m190)
+Description: Industrial symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "industrial" symbol style.
+
+Package: openoffice.orgVER-style-tango
+Architecture: all
+Depends: openoffice.orgVER-common (= ${Source-Version})
+Suggests: tango-icon-theme
+Replaces: openoffice.orgVER-common (<< 2.1~m190)
+Description: Tango symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "tango" symbol style, default style
+ for GTK+/Gnome.
+
+Package: openoffice.orgVER-style-human
+Architecture: all
+Depends: openoffice.orgVER-common (= ${Source-Version})
+Replaces: openoffice.orgVER-common (<< 2.1~m190)
+Description: Human symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "human" symbol style, default style
+ for Ubuntu.
+
+Package: openoffice.orgVER-style-hicontrast
+Architecture: all
+Depends: openoffice.orgVER-common (= ${Source-Version})
+Suggests: gtk2-engines
+Replaces: openoffice.orgVER-common (<< 2.1~m190)
+Description: Hicontrast symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "hicontrast" symbol style, needs to be manually
+ enabled in the OpenOffice.org option menu.
+
+Package: openoffice.orgVER-style-andromeda
+Architecture: all
+Depends: openoffice.orgVER-common (= ${Source-Version})
+Replaces: openoffice.orgVER-common (<< 2.1~m190), openoffice.orgVER-style-default
+Conflicts: openoffice.orgVER-style-default
+Provides: openoffice.orgVER-style-default
+Description: Default symbol style for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "Andromeda" symbol style from Sun, normally used on
+ MS Windows (tm) and when not using GNOME or KDE, needs to be manually
+ enabled in the OpenOffice.org option menu.
+
+Package: openoffice.orgVER-kde
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-style-crystal,
+ ${shlibs:Depends}
+Suggests: konqueror,
+ kmail,
+ kaddressbook
+Section: kde
+Enhances: openoffice.orgVER
+Conflicts: openoffice.org2-kde (<< ${Source-Version})
+Provides: openoffice.org2-kde
+Replaces: openoffice.org2-kde (<< ${Source-Version})
+Description: KDE Integration for OpenOffice.org (Widgets, Dialogs, Addressbook)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the KDE plugin for drawing OOo's widgets with
+ KDE/Qt, a KDEish File Picker when running under KDE and KDE Addressbook
+ integration.
+ You can extend the functionality of this by installing these packages:
+ .
+  * konqueror / kmail
+  * kaddressbook
+
+Package: openoffice.orgVER-gtk
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-style-human,
+ ${shlibs:Depends}
+Section: gnome
+Enhances: openoffice.orgVER
+Replaces: openoffice.org-gnome (<< 2.0.4~rc1-0),
+ openoffice.org-common (<< 2.0.4~rc1-0)
+Conflicts: ooqstart-gnome, oooqs-kde, libgtk2.0-0 (= 2.12.10-1) [amd64]
+Description: GTK+ Integration for OpenOffice.org (Widgets, Dialogs, Quickstarter)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Gtk plugin for drawing OOo's widgets with
+ Gtk+ and a Gtk/GNOMEish File Picker when running under GNOME. It also
+ contains a QuickStarter for the "notification area".
+
+Package: openoffice.orgVER-headless
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${shlibs:Depends}
+Section: misc
+Enhances: openoffice.orgVER
+Description: Headless VCL plugin for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Headless (svp) VCL plugin allowing to use some OOo
+ features which needs $DISPLAY without it.
+
+Package: openoffice.orgVER-gnome
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-gtk,
+ ${shlibs:Depends},
+ gconf2
+Suggests: openoffice.orgVER-evolution
+Section: gnome
+Enhances: openoffice.orgVER
+Conflicts: openoffice.org2-gnome (<< ${Source-Version})
+Provides: openoffice.org-gtk-gnome, openoffice.org2-gnome
+Replaces: openoffice.org-gtk-gnome, 
+ openoffice.org2-gnome (<< ${Source-Version}),
+ openoffice.org-gtk (<< 2.0.3-1),
+ openoffice.org-kde (= 2.0.1-1),
+ openoffice.org-common (<< 2.0.4~rc1-0)
+Description: GNOME Integration for OpenOffice.org (VFS, GConf)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the GNOME VFS support and a GConf backend.
+ .
+ You can extend the functionality of this by installing these packages:
+ .
+  * openoffice.orgVER-evolution: Evolution addressbook support
+  * evolution
+
+Package: openoffice.orgVER-evolution
+Architecture: %OOO_ARCHS%
+Section: gnome
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ openoffice.orgVER-base,
+ ${shlibs:Depends}
+Recommends: evolution
+Conflicts: openoffice.org2-evolution (<< ${Source-Version})
+Provides: openoffice.org2-evolution
+Replaces: openoffice.org2-evolution (<< ${Source-Version})
+Description: Evolution Addressbook support for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package allows OpenOffice.org to access Evolution address books.
+ You need to install evolution separately.
+
+Package: python-uno
+Provides: ${python:Provides}
+XB-Python-Version: ${python:Versions}
+Section: python
+Architecture: %OOO_ARCHS%
+Enhances: openoffice.orgVER
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${python:Depends},
+ ${shlibs:Depends}
+Replaces: openoffice.orgVER-common (<< 1.9.82)
+Description: Python interface for OpenOffice.org
+ The Python-UNO bridge allows use of the standard OpenOffice.org API 
+ with the Python scripting language. It additionally allows 
+ others to develop UNO components in Python, thus Python UNO components 
+ may be run within the OpenOffice.org process and can be called from C++
+ or the built in StarBasic scripting language.
+ .
+ You can more information about Pyuno at
+ http://udk.openoffice.org/python/python-bridge.html
+Homepage: http://udk.openoffice.org/python/python-bridge.html
+
+Package: openoffice.orgVER-officebean
+Architecture: %OOO_JAVA_ARCHS%
+Section: misc
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${shlibs:Depends},
+ ${java-runtime-depends},
+ ${java-common-depends}
+Replaces: openoffice.orgVER-common (<< 1.9.113-0pre1), openoffice.org2-officebean
+Provides: openoffice.org2-officebean
+Conflicts: openoffice.org2-officebean
+Description: OpenOffice.org Office Bean
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the OpenOffice.org Office Bean for embedding
+ OpenOffice.org in custom Java applications.
+
+Package: openoffice.orgVER-filter-binfilter
+Section: misc
+Architecture: %OOO_BINFILTER_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${shlibs:Depends}
+Replaces: openoffice.org2-core (<= 1.9.108-1),
+ openoffice.orgVER-math (<< 1.9.113-0pre1),
+ openoffice.orgVER-calc (<< 1.9.113-0pre1),
+ openoffice.org2-filter-so52,
+ openoffice.org-filter-so52
+Provides: openoffice.org2-filter-so52, openoffice.org-filter-so52
+Conflicts: openoffice.org2-filter-so52, openoffice.org-filter-so52
+Description: Legacy filters (e.g. StarOffice 5.2) for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the "binfilters", legacy filters for
+  - the old StarOffice 5.2 formats
+  - StarWriter 1.0/2.0
+  - StarWriter/DOS
+  - *Writer* filters for
+    + Excel
+    + Lotus
+
+Package: openoffice.orgVER-filter-mobiledev
+Section: misc
+Architecture: all
+Depends: ${java-runtime-depends},
+ ${java-common-depends}
+Replaces: openoffice.org-java-common (<< 2.0.3+2.0.4m178), openoffice.org-common (<< 2.0.3+2.0.4m178)
+Description: Mobile Devices Filters for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the filters for Mobile Devices:
+  * AportisDoc (Palm)
+  * PocketWord
+  * PocketExcel
+
+Package: libmythes-dev
+Section: libdevel
+Suggests: perl
+Architecture: %OOO_ARCHS%
+Description: simple thesaurus library (development files)
+ MyThes is a simple thesaurus that uses a structured
+ text data file and an index file with binary search
+ to lookup words and phrases and return information
+ on part of speech, meanings, and synonyms
+ .
+ This package contains the static library and header file needed
+ to develop applications using mythes and the perl script to create
+ the index files.
+
+Package: openoffice.orgVER-dtd-officedocument1.0
+Section: text
+Priority: extra
+Depends: xml-core
+Architecture: all
+Replaces: openoffice.org-common (<< 2.0.4~ood680)
+Conflicts: openoffice.org-common (<< 2.0.4~ood680)
+Description: OfficeDocument 1.0 DTD (OpenOffice.org 1.x)
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the Document Type Definition (DTD) of the
+ OpenOffice.org 1.x(!) XML file format.
+
+Package: openoffice.orgVER-presentation-minimizer
+Section: misc
+Priority: optional
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}, openoffice.orgVER-core (>= 2.3), openoffice.orgVER-impress
+Enhances: openoffice.orgVER-impress
+Description: OpenOffice.org Presentation Minimizer extension
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the presentation minimizer extension:
+  "The Sun Presentation Minimizer is used to reduce the file size of the
+  current presentation. Images will be compressed, and data that is no longer
+  needed will be removed.
+  The Sun Presentation Minimizer can optimize the image quality size.
+  Presentations designed for screen or projector do not require the same high
+  quality as presentations designed for print."
+Homepage: http://extensions.services.openoffice.org/project/PresentationMinimizer
+
--- openoffice.org-2.4.1.orig/debian/control.etch_lenny_transitional.in
+++ openoffice.org-2.4.1/debian/control.etch_lenny_transitional.in
@@ -0,0 +1,9 @@
+Package: openoffice.orgVER-l10n-sr-cs
+Architecture: all
+Depends: openoffice.orgVER-l10n-sr
+Description: transitional package to openoffice.orgVER-l10n-sr
+ This package is a transitional package for upgrading to the new
+ openoffice.orgVER-l10n-sr.
+ .
+ It can be safely removed when openoffice.orgVER-l10n-sr is installed.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-qa-tools.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-qa-tools.overrides.lintian
@@ -0,0 +1,5 @@
+openoffice.org-qa-tools: binary-or-shlib-defines-rpath
+openoffice.org-qa-tools: executable-not-elf-or-script ./usr/lib/openoffice/smoketest/testlog.pl
+openoffice.org-qa-tools: executable-not-elf-or-script ./usr/lib/openoffice/smoketest/smoketest.pl
+openoffice.org-qa-tools: executable-not-elf-or-script ./usr/lib/openoffice/smoketest/testlog.pl
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-common.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-common.preinst.in
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-common
+
+THIS_PACKAGE=openoffice.org-common
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if dpkg --compare-versions "$2" lt "2.0.0-2"; then
+		rm_conffile "/etc/bash_completion.d/openoffice" $THIS_PACKAGE
+		rm_conffile "/etc/openoffice/autoresponse.conf" $THIS_PACKAGE
+		rm_conffile "/etc/openoffice/openoffice.conf" $THIS_PACKAGE
+	fi
+	if dpkg --compare-versions "$2" lt "2.0.2-2"; then
+		rm_conffile "/etc/bash_completion.d/ooo-wrapper.sh" $THIS_PACKAGE
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-calc.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-calc.manpages
@@ -0,0 +1,2 @@
+debian/tmp/usr/share/man/man1/oocalc.1
+
--- openoffice.org-2.4.1.orig/debian/ttf-opensymbol.postrm.in
+++ openoffice.org-2.4.1/debian/ttf-opensymbol.postrm.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+# postrm script for ttf-opensymbol
+
+THIS_PACKAGE=ttf-opensymbol
+THIS_SCRIPT=postrm
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "remove" ] && [ -x /usr/bin/fc-cache ]; then
+	echo "Updating fontconfig cache..."
+	fc-cache -fs
+fi
+
+if [ "$1" = "purge" ]; then
+	rm -f /usr/share/fonts/truetype/openoffice/fonts.cache*
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-officebean.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-officebean.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-officebean
+
+THIS_PACKAGE=openoffice.org-officebean
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if [ -L /usr/lib/openoffice/program/classes ]; then
+		rm /usr/lib/openoffice/program/classes
+		mkdir /usr/lib/openoffice/program/classes
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-impress.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-impress.manpages
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/ooimpress.1
--- openoffice.org-2.4.1.orig/debian/pycompat
+++ openoffice.org-2.4.1/debian/pycompat
@@ -0,0 +1 @@
+2
--- openoffice.org-2.4.1.orig/debian/libuno-cil.installcligac.in
+++ openoffice.org-2.4.1/debian/libuno-cil.installcligac.in
@@ -0,0 +1,5 @@
+/@OODIR@/program/cli_basetypes.dll
+/@OODIR@/program/cli_cppuhelper.dll
+/@OODIR@/program/cli_types.dll
+/@OODIR@/program/cli_uno_bridge.dll
+/@OODIR@/program/cli_ure.dll
--- openoffice.org-2.4.1.orig/debian/openoffice.org-impress.menu.in
+++ openoffice.org-2.4.1/debian/openoffice.org-impress.menu.in
@@ -0,0 +1,6 @@
+?package(openoffice.org-impress):needs="X11" section="Applications/Office"\
+  title="OpenOffice.org Impress" command="/usr/bin/ooimpress"\
+  hints="Presentation"\
+  kderemove="y"\
+  icon="/usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-impress.xpm"
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-headless.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-headless.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-headless: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-impress.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-impress.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core openoffice.org-draw
--- openoffice.org-2.4.1.orig/debian/openoffice.org-draw.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-draw.manpages
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/oodraw.1
--- openoffice.org-2.4.1.orig/debian/rules
+++ openoffice.org-2.4.1/debian/rules
@@ -0,0 +1,3594 @@
+#!/usr/bin/make -f
+###################################################################################
+# OpenOffice.org source package rules file
+#
+# Please see debian/README for detailed documentation about the build system, and
+# how to build OpenOffice.org.
+###################################################################################
+# Authors:
+# Chris Halls <halls@debian.org>
+# Rene Engelhard <rene@debian.org>
+# Copyright 2002-2006 Software in the Public Interest, Inc.
+# Licensed under the GNU General Public License, version 2.  See the file
+# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
+###################################################################################
+
+#VER:=2
+SHELL:=/bin/bash
+PKGDIR:=debian/openoffice.org$(VER)
+OODIRNAME=openoffice$(VER)
+OODIR:=usr/lib/$(OODIRNAME)
+
+PKGSOURCE := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2;exit 0}')
+SOURCE_VERSION:=$(shell head -1 debian/changelog | cut -d\( -f2 | cut -d\) -f1)
+UPSTREAM_VERSION:=$(shell echo "$(SOURCE_VERSION)"| cut -d: -f2 | cut -d- -f1)
+BASE_VERSION:=$(shell echo $(SOURCE_VERSION) | cut -d: -f1):$(UPSTREAM_VERSION)
+#HELP_L10N_VIRTUAL_VERSION:=$(shell echo $(UPSTREAM_VERSION) | cut -d: -f2 | tr [~] [\\-])
+HELP_L10N_VIRTUAL_VERSION:=2.4
+
+BINARY_VERSION=$(SOURCE_VERSION)
+#BINARY_VERSION=1:2.4.0-$(shell dpkg-parsechangelog  | grep urgency \
+	| awk '{print $$2}' | sed -e s/"("// -e s/")"// | cut -d"-" -f2)
+PACKAGES := $(shell dh_listpackages)
+ARCH_INDEP_PACKAGES := $(shell dh_listpackages -i)
+ARCH_DEP_PACKAGES := $(shell dh_listpackages -s)
+
+OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DIST := $(shell lsb_release -is)
+DISTREL := $(shell lsb_release -cs)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+# Figure out who's building this package.
+OOO_VENDOR:=Debian
+ifeq "$(DIST)" "Ubuntu"
+OOO_VENDOR+= and Ubuntu
+endif
+export OOO_VENDOR
+
+# debhelper
+export DH_OPTIONS
+export DH_ALWAYS_EXCLUDE=CVS
+#export DH_VERBOSE=1
+
+# work around tcsh bugs.debian.org/339034: tcsh: Unknown colorls variable `su'
+unexport LS_COLORS
+
+SRCNUM=680
+MWS=OOH680
+# note that this only makes sense for ~oo?680s. as o < r (as rcX). src680 would break the ordering (s > r).
+#MILESTONE:=$(shell echo "$(UPSTREAM_VERSION)" | cut -d~ -f2 | sed -e s/$(shell echo $(MWS) | tr A-Z a-z)//)
+# For SRC680 milestones, use only ~mX
+#MILESTONE:=$(shell echo "$(UPSTREAM_VERSION)" | cut -d~ -f2)
+MILESTONE=m17
+#TAG=$(shell echo $(MWS) | tr A-Z a-z)-$(MILESTONE)
+TAG=$(MWS)_$(MILESTONE)
+OOO_BUILD_BRANCH=ooo-build-2-4-1
+ifeq "" "$(OOO_BUILD_BRANCH)"
+	OOO_BUILD_SVN=svn://svn.gnome.org/svn/ooo-build/trunk
+else
+	OOO_BUILD_SVN=svn://svn.gnome.org/svn/ooo-build/branches/$(OOO_BUILD_BRANCH)
+endif
+SOURCE_TREE=ooo-build/build/$(TAG)
+STAMP_DIR=debian/stampdir
+
+ifeq "$(DISTREL)" "etch"
+  ETCH_BACKPORT=y
+endif
+
+#########
+# Default package configuration
+#
+BUILD_AMD64=y
+BUILD_PPC64=y
+BUILD_IA64=y
+BUILD_SPARC=y
+PATCHSET=$(DIST)
+BUILD_DEPS=
+BUILD_PYUNO=y
+USE_PYCENTRAL=y
+PACKAGE_QA_TOOLS=y
+PACKAGE_TTF_OPENSYMBOL=y
+PACKAGE_NPSOPLUGIN=y
+PACKAGE_PCVSLIB=n
+BUILD_JARS_NATIVE=y
+BUILD_BINFILTERS=y
+BUILD_ONLY_EN_US=n
+ENABLE_JAVA=y
+ENABLE_MONO=y
+MONO_MINVER= (>= 1.2.3)
+USE_SYSTEM_HUNSPELL=y
+HUNSPELL_MIN_VER= (>= 1.1.5-2)
+SYSTEM_ALTLINUXHYPH=y
+USE_LIBHYPHEN=y
+LIBALTLINUXHYPH_MINVER= (>= 0.1.1-11)
+LIBHYPHEN_MINVER= (>= 2.4)
+USE_AGG=n
+SYSTEM_AGG=n
+USE_STLPORT=n
+USE_SYSTEM_STLPORT=y
+USE_SYSTEM_BOOST=y
+USE_SYSTEM_VIGRA=y
+USE_EXTERNAL_CXXLIBS=y
+LIBWPD8_MINVER= (>= 0.8.3-3)
+USE_SYSTEM_SABLOT=n
+USE_LIBXSLT=y
+USE_EXTERNAL_MYTHES=n
+USE_SYSTEM_ICU=y
+USE_SYSTEM_LIBWPG=y
+USE_SYSTEM_LIBWPS=y
+USE_SYSTEM_XMLSEC=n
+BUILD_CAIROCANVAS=y
+USE_SYSTEM_CAIRO=y
+CAIRO_FONTS_PATCH=y
+BUILD_KDE=y
+BUILD_DBG_PACKAGE=y
+USE_SYSTEM_BSH=y
+USE_SYSTEM_HSQLDB=y
+KDELIBS_MINVER= (>= 4:3.4.3-2)
+ENABLE_SCSOLVER=y
+USE_SYSTEM_LPSOLVE=y
+USE_SHARED_LPSOLVE=y
+LPSOLVE_MIN_VERSION= (>= 5.5.0.10-10)
+USE_DBUS=y
+USE_GSTREAMER=y
+USE_SYSTEM_NEON=y
+USE_OOO_BUILD_DESKTOPS=n
+PACKAGE_SDK=y
+RUN_SMOKETEST=n
+RUN_UNIT_TESTS=n
+USE_LIBCURL4=y
+USE_SYSTEM_LIBSVG=y
+USE_SYSTEM_DMAKE=y
+USE_LIBSUITESPARSE=y
+USE_BZIP_COMPRESS=n
+USE_LZMA_COMPRESS=n
+PRUNE_OOOBUILD=y
+DBVER=4.6
+NEONSONR=27
+PARALLEL_BUILD=n
+MOZILLA=iceape
+USE_COMMON_DOCDIR=n
+PACKAGE_URE=y
+ENABLE_OPENGL=y
+SYSTEM_OPENSSL=y
+NEW_DPKG_SHLIBDEPS=y
+ifeq "$(ENABLE_JAVA)" "y"
+  ENABLE_REPORTDESIGN=y
+  USE_SYSTEM_JFREEREPORT=y
+else
+  ENABLE_REPORTDESIGN=n
+endif
+PACKAGE_WRITER2LATEX=n
+USE_EXTERNAL_WRITER2LATEX=y
+ENABLE_SDEXT=y
+
+# when we have a package we want to have to be installed on older things with some older
+# C++ ABI (like it was the case with openoffice.org2), we need to set this. Don't touch
+# otherwise
+INTERNAL_STDLIBS=n
+
+# Default flags to pass to configure of ooo-build
+CONFIGURE_FLAGS= --disable-post-install-scripts \
+                 --with-tag=$(TAG) \
+                --with-distro=$(PATCHSET) \
+		--with-vendor='$(OOO_VENDOR)' \
+                --enable-package-directories \
+                --with-installed-ooo-dirname=$(OODIRNAME) \
+                --mandir=/usr/share/man \
+                --with-docdir=/usr/share/doc/openoffice.org \
+		--with-lang="$(BUILD_ISOS)" \
+                --with-build-version="openoffice.org$(VER)-core $(BINARY_VERSION), `LC_ALL=C date`" \
+                --disable-strip \
+		--enable-atkbridge \
+                --enable-lockdown \
+		--enable-openxml \
+		--with-drink=coffee \
+		--libdir=/usr/lib \
+		--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+
+# distro-configs is too late; it already gets searched in unpack
+# when we don't do that here, too.
+CONFIGURE_FLAGS += --disable-access
+
+#############
+# Distro-specific overrides
+
+# Debian
+ifeq "$(DIST)" "Debian"
+  # we don't need to build all languages and the thesaurus on the buildds;
+  # they do binary-only builds anyway
+  ifeq (buildd,$(shell whoami))
+       BUILD_ONLY_EN_US=y
+  endif
+endif
+
+ifeq "$(DIST)" "Ubuntu"
+  # common settings
+  PATCHSET=$(DIST)$(shell perl -e 'print ucfirst("$(DISTREL)");')
+  CONFIGURE_FLAGS += \
+       --with-intro-bitmaps=$(CURDIR)/ubuntu/openintro_ubuntu_sun.bmp \
+       --with-about-bitmaps=$(CURDIR)/ubuntu/openabout_ubuntu_sun.bmp
+
+  BUILD_DEPS += , translate-toolkit (>= 1.1.1-1)
+  
+  HUMAN=human
+  IMAGES_HUMAN_ZIP=images_human.zip
+
+  BUILD_DBG_PACKAGE=n
+  PRUNE_OOOBUILD=n
+  USE_COMMON_DOCDIR=y
+  USE_OOO_BUILD_DESKTOPS=y
+
+  # hyphen/hunspell is too old in hardy
+  SYSTEM_ALTLINUXHYPH=n
+  # save space on cd
+  USE_SYSTEM_LPSOLVE=n
+  # stlport4.6 and stlport5.1 in universe, and will be dropped upstream soon
+  USE_SYSTEM_STLPORT=n
+
+  # Java causes powerpc build to fail (also removed from OOO_JAVA_ARCHS)
+  ifeq "$(ARCH)" "powerpc"
+    ENABLE_JAVA=n
+    # hack since reportdesign should be wrapped by java check...
+    ENABLE_REPORTDESIGN=n
+  endif
+
+  # sparc buildd usually ICEs
+  BUILD_SPARC=n
+
+  # find extra translations here
+  export DEB_GSIDIR=$(CURDIR)/ubuntu/l10n
+
+  ifeq "$(DISTREL)" "hardy"
+    BUILD_LPIA=y
+    MOZILLA=libxul
+    USE_LZMA_COMPRESS=y
+
+  else ifeq "$(DISTREL)" "gutsy"
+    BUILD_LPIA=y
+    MOZILLA=firefox
+    USE_BZIP_COMPRESS=y
+
+  else ifeq "$(DISTREL)" "feisty"
+
+  else ifeq "$(DISTREL)" "edgy"
+    ENABLE_MONO=n
+    USE_SYSTEM_HUNSPELL=n
+
+  else ifeq "$(DISTREL)" "dapper"
+    DBVER=4.3
+
+    BUILD_CAIROCANVAS=n
+    CAIRO_FONTS_PATCH=n
+    ENABLE_MONO=n
+    USE_BZIP_COMPRESS=n
+    USE_DBUS=n
+    USE_PYCENTRAL=n
+    USE_SYSTEM_DMAKE=n
+    USE_SYSTEM_HUNSPELL=n
+    USE_SYSTEM_LIBWPS=n
+    USE_SYSTEM_LPSOLVE=n
+
+  else # fallback
+
+  endif
+
+  ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+    INSTALLED_ODK=n
+    export OOO_RUN_SDK_INSTALLER = no
+  endif
+
+endif
+
+# Debian Etch backport
+ifeq "$(ETCH_BACKPORT)" "y"
+  PATCHSET=$(DIST)Etch
+  USE_SYSTEM_LIBWPS=n
+  SYSTEM_ALTLINUXHYPH=n
+  USE_LIBHYPHEN=n
+  ENABLE_MONO=n
+  CAIRO_FONTS_PATCH=n
+  HUNSPELL_MIN_VER= (>= 1.0.8-2)
+  USE_SHARED_LPSOLVE=y
+  LPSOLVE_MIN_VERSION=
+  USE_SYSTEM_LIBSVG=n
+  USE_SYSTEM_DMAKE=n
+  USE_LIBCURL4=n
+  USE_LIBSUITESPARSE=n
+  USE_SYSTEM_BOOST=y
+  USE_SYSTEM_LIBWPG=n
+  USE_SYSTEM_HSQLDB=n
+  ENABLE_REPORTDESIGN=y
+  USE_SYSTEM_JFREEREPORT=n
+  NEONSONR=26
+  NEW_DPKG_SHLIBDEPS=n
+  DBVER=4.4
+  USE_STLPORT=y
+  PACKAGE_WRITER2LATEX=y
+  MOZILLA=xulrunner
+endif
+
+#############
+# Architecture-specific changes
+
+ifeq "$(DIST)" "Debian"
+ifneq "$(ETCH_BACKPORT)" "y"
+	OOO_STLPORT_ARCHS= i386
+  ifeq "$(ARCH)" "i386"
+	USE_STLPORT=y
+  endif
+else
+	OOO_STLPORT_ARCHS=$(OOO_ARCHS)
+endif
+endif
+
+ifeq "$(ENABLE_OPENGL)" "y"
+# doesn't make that much sense on arm(el) and mips(el), does it? :)
+OOO_OGLTRANS_ARCHS= i386 powerpc sparc s390
+#ifeq "$(BUILD_AMD64)" "y"
+#  OOO_OGLTRANS_ARCHS+= amd64
+#endif
+ifeq "$(BUILD_LPIA)" "y"
+  OOO_OGLTRANS_ARCHS+= lpia
+endif
+#ifeq "$(BUILD_PPC64)" "y"
+#  OOO_OGLTRANS_ARCHS+= ppc64
+#endif
+#ifeq "$(BUILD_IA64)" "y"
+#  OOO_OGLTRANS_ARCHS+= ia64
+#endif
+ifeq (,$(findstring $(ARCH),$(OOO_OGLTRANS_ARCHS)))
+       ENABLE_OPENGL=n
+endif
+else
+	OOO_OGLTRANS_ARCHS=
+endif
+
+OOO_ARCHS= i386 powerpc mips mipsel armel s390
+ifeq "$(BUILD_AMD64)" "y"
+  OOO_ARCHS += amd64
+endif
+ifeq "$(BUILD_IA64)" "y"
+  OOO_ARCHS += ia64
+endif
+ifeq "$(BUILD_LPIA)" "y"
+  OOO_ARCHS += lpia
+endif
+ifeq "$(BUILD_PPC64)" "y"
+  OOO_ARCHS += ppc64
+endif
+ifeq "$(BUILD_SPARC)" "y"
+  OOO_ARCHS += sparc
+endif
+# Java...
+OOO_JAVA_ARCHS = i386 mips mipsel s390
+ifeq "$(BUILD_AMD64)" "y"
+  OOO_JAVA_ARCHS+= amd64
+endif
+ifeq "$(BUILD_IA64)" "y"
+  OOO_JAVA_ARCHS+= ia64
+endif
+ifeq "$(BUILD_LPIA)" "y"
+  OOO_JAVA_ARCHS+= lpia
+endif
+ifeq "$(BUILD_PPC64)" "y"
+  OOO_JAVA_ARCHS+= ppc64
+endif
+ifeq "$(BUILD_SPARC)" "y"
+  OOO_JAVA_ARCHS+= sparc
+endif
+ifeq (,$(findstring $(ARCH),$(OOO_JAVA_ARCHS)))
+	ENABLE_JAVA=n
+	ENABLE_REPORTDESIGN=n
+else
+	# extra step needed for arm, as the if matches the arm in armel..
+  ifeq "$(ARCH)" "arm"
+	ENABLE_JAVA=n
+	ENABLE_REPORTDESIGN=n
+  endif
+endif
+
+ifeq "$(ENABLE_MONO)" "y"
+# mono
+# ppc fails (#412967), arm(el), too
+OOO_MONO_ARCHS = i386
+#ifeq "$(BUILD_AMD64)" "y"
+#  OOO_MONO_ARCHS += amd64
+#endif
+ifeq "$(BUILD_IA64)" "y"
+  OOO_MONO_ARCHS += ia64
+endif
+ifeq "$(BUILD_LPIA)" "y"
+  OOO_MONO_ARCHS += lpia
+endif
+ifeq "$(BUILD_SPARC)" "y"
+  OOO_MONO_ARCHS += sparc
+endif
+ifeq (,$(findstring $(ARCH),$(OOO_MONO_ARCHS)))
+       ENABLE_MONO=n
+endif
+else
+OOO_MONO_ARCHS=
+endif
+
+ifeq "$(PACKAGE_NPSOPLUGIN)" "y"
+# Mozilla plugin. Crashes on amd64
+OOO_NPSOPLUGIN_ARCHS = i386 powerpc mips mipsel s390
+ifeq "$(BUILD_AMD64)" "y"
+  ifeq "$(ARCH)" "amd64"
+	PACKAGE_NPSOPLUGIN=n
+  endif
+endif
+ifeq "$(BUILD_IA64)" "y"
+  ifeq "$(ARCH)" "ia64"
+	PACKAGE_NPSOPLUGIN=n
+  endif
+endif
+ifeq "$(BUILD_LPIA)" "y"
+	OOO_NPSOPLUGIN_ARCHS += lpia
+endif
+ifeq "$(BUILD_PPC64)" "y"
+  ifeq "$(ARCH)" "ppc64"
+	PACKAGE_NPSOPLUGIN=n
+  endif
+endif
+ifeq "$(BUILD_SPARC)" "y"
+	OOO_NPSOPLUGIN_ARCHS += sparc
+endif
+else
+OOO_NPSOPLUGIN_ARCHS=
+endif
+
+# builds long...
+ifneq (,$(findstring arm,$(ARCH)))
+	BUILD_BINFILTERS=n
+endif
+OOO_BINFILTER_ARCHS=$(filter-out arm,$(filter-out armel,$(OOO_ARCHS)))
+
+ifeq "$(ARCH)-linux-gnu" "sparc-linux-gnu"
+	# use 32-bit compiler
+	CC_PREFIX=sparc-linux-gnu-
+endif
+ifneq "$(ETCH_BACKPORT)" "y"
+  ifeq (s390,$(findstring s390,$(OOO_ARCHS)))
+	BUILD_DEPS += , g++ (>> 4.3.0) [s390], gcc (>> 4.3.0) [s390]
+  endif
+endif
+
+OOO_MOZILLA_ARCHS=i386 powerpc mips mipsel s390 armel
+ifeq "$(BUILD_AMD64)" "y"
+	OOO_MOZILLA_ARCHS += amd64
+endif
+ifeq "$(BUILD_IA64)" "y"
+	OOO_MOZILLA_ARCHS += ia64
+endif
+ifeq "$(BUILD_LPIA)" "y"
+	OOO_MOZILLA_ARCHS += lpia
+endif
+ifeq "$(BUILD_PPC64)" "y"
+	OOO_MOZILLA_ARCHS += ppc64
+endif
+ifeq "$(BUILD_SPARC)" "y"
+	OOO_MOZILLA_ARCHS += sparc
+endif
+
+ifeq "$(USE_BZIP_COMPRESS)" "y"
+	DPKG_DEPENDS = dpkg (>= 1.10.24)
+	BUILDDEB_OPTIONS = -- -Zbzip2
+endif
+
+ifeq "$(USE_LZMA_COMPRESS)" "y"
+	DPKG_DEPENDS = dpkg (>= 1.14.12ubuntu3)
+	BUILDDEB_OPTIONS = -- -Zlzma
+endif
+
+ifeq "$(NEW_DPKG_SHLIBDEPS)" "y"
+	# new dpkg-dev whcih works - in contrast to 1.4.9 and .10 -
+	# without --ignore-missing-info
+	BUILD_DEPS += , dpkg-dev (>= 1.14.11)
+endif
+
+ifneq "$(OOO_OGLTRANS_ARCHS)" ""
+	BUILD_DEPS += , libgl1-mesa-dev [$(OOO_OGLTRANS_ARCHS)], libglu1-mesa-dev [$(OOO_OGLTRANS_ARCHS)]
+endif
+ifeq "$(ENABLE_OPENGL)" "y"
+	CONFIGURE_FLAGS += --enable-opengl
+endif
+
+ifneq "$(PACKAGE_SDK)" "y"
+	CONFIGURE_FLAGS += --disable-odk
+endif
+
+ifeq "$(ENABLE_SDEXT)" "y"
+	CONFIGURE_FLAGS += --enable-sdext
+endif
+
+ifeq "$(USE_LIBCURL4)" "y"
+	BUILD_DEPS += , libcurl4-openssl-dev
+else
+	BUILD_DEPS += , libcurl3-openssl-dev
+endif
+
+ifeq "$(SYSTEM_OPENSSL)" "y"
+	BUILD_DEPS += , libssl-dev
+	CONFIGURE_FLAGS += --with-system-openssl
+	DBG_DBG_SUGGESTS += , libssl$(shell readlink /usr/lib/libssl.so | cut -d"." -f3,4,5)-dbg
+endif
+
+	# libdb-dev since 4.6 but it provides libdb4.6-dev, so keep this as-is...
+	BUILD_DEPS += , libdb$(DBVER)-dev
+
+ifneq "$(BUILD_DBG_PACKAGE)" "y"
+	SMALL_SYMBOLS = y
+else
+	# -g gives a far too big deb (>400M, ca. 1GB I-S)
+	SMALL_SYMBOLS = y
+	DBG_DBG_SUGGESTS+= , libc6.1-dbg [alpha ia64], libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64], libc0.3-dbg [hurd-i386], libc6-dbg [!ia64 !alpha !kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libatk1.0-dbg, libglib2.0-0-dbg, libgnomevfs2-0-dbg, libstdc++6-$(shell g++ --version | head -n 1 | cut -d' ' -f3 | cut -d'.' -f1,2)-dbg, libx11-6-dbg, libxext6-dbg, libxaw7-dbg, libxml2-dbg, libgtk2.0-0-dbg, libxau6-dbg, libice6-dbg, libsm6-dbg, libxinerama1-dbg, libfontconfig1-dbg
+  ifeq "$(USE_LIBCURL4)" "y"
+	DBG_DBG_SUGGESTS+= , libcurl3-dbg
+  else
+	DBG_DBG_SUGGESTS+= , libcurl4-dbg
+  endif
+endif
+
+ifeq "$(BUILD_PYUNO)" "y"
+  ifeq "$(USE_PYCENTRAL)" "y"
+	BUILD_DEPS += , python-central (>= 0.5)
+  endif
+	BUILD_DEPS += , python-dev (>= 2.4)
+	WRITER_PYUNO_DEP = python-uno (>= $(BASE_VERSION))
+	DBG_DBG_SUGGESTS+= , python-dbg
+else
+	BUILD_DEPS += , python
+endif
+
+ifeq "$(ETCH_BACKPORT)" "y"
+  ifeq "$(USE_PYCENTRAL)" "y"
+	BUILD_DEPS += , debhelper (>= 5.0.37.2)
+  else
+	BUILD_DEPS += , debhelper (>= 5)
+  endif
+else
+	BUILD_DEPS += , debhelper (>= 5.0.51~)
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(BUILD_JARS_NATIVE)" "y"
+    ifneq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+	STAMP_NATIVE_JARS = $(STAMP_DIR)/native-jars
+    endif
+    ifeq "$(NEW_DPKG_SHLIBDEPS)" "n"
+	BUILD_DEPS += , dpkg-dev (>= 1.13.19)
+    endif
+	JAVA_GCJ_DEPENDS = libgcj-common (>= 1:4.1.1-14)
+  endif
+endif
+
+ifneq "$(PACKAGE_QA_TOOLS)" "y"
+	DEBHELPER_OPTIONS+= -Nopenoffice.org$(VER)-qa-tools -Nopenoffice.org$(VER)-qa-api-tests
+	CONFIGURE_FLAGS += --disable-qadevooo
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(PACKAGE_WRITER2LATEX)" "n"
+	CONFIGURE_FLAGS += --without-writer2latex
+    ifeq "$(USE_EXTERNAL_WRITER2LATEX)" "y"
+	WRITER_W2L_DEP = openoffice.org-writer2latex
+    endif
+  endif
+endif
+
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	# for the tests
+	BUILD_DEPS += , cvs
+endif
+
+ifeq "$(RUN_SMOKETEST)" "y"
+	BUILD_DEPS += , xvfb, xbase-clients, xfonts-base
+endif
+
+ifneq "$(BUILD_ONLY_EN_US)" "y"
+  ifeq (lang=,$(findstring lang=,$(DEB_BUILD_OPTIONS)))
+	ISOS=$(shell echo "$(DEB_BUILD_OPTIONS)," | sed -n 's/^.*lang=\([^,]*\),.*/\1/p')
+	HELPISOS=$(shell echo "$(DEB_BUILD_OPTIONS)," | sed -n 's/^.*lang=\([^,]*\),.*/\1/p')
+	LANGPACKISOS=$(shell echo "$(DEB_BUILD_OPTIONS)," | sed -n 's/^.*lang=\([^,]*\),.*/\1/p')
+  else
+	# Note that the first one here *has to be* en-US. the first one gets
+	# gid_Module_Root as filelist later and the rest gid_Module_Root.$iso
+	# but we can't/shouldn't do dynamic switching, so let en-US be the first
+	# one to that gid_Module_Root always is english and the other langpacks
+	# have gid_Module_Root.$iso
+	#ISOS=$(shell ooo-build/bin/openoffice-xlate-lang -i all')
+	ISOS:=en-US af ar as-IN be-BY bg bn br bs ca cs cy da de dz el \
+	  en-GB en-ZA eo es et eu fa fi fr ga gl gu-IN he hi-IN hr hu it ja \
+	  ka km ko ku lo lt lv mk ml-IN mr-IN nb ne nl nn nr ns or-IN pa-IN \
+	  pl pt pt-BR ro ru rw sk sl sr ss st sv \
+	  ta-IN te-IN tg th tn tr ts uk uz ve vi xh zh-CN zh-TW zu
+	#HELPISOS:=$(shell ooo-build/bin/openoffice-xlate-lang -i all') 
+	HELPISOS:=en-US cs da de dz en-GB es et eu fr gl hi-IN hu it ja km ko nl \
+	  pl pt pt-BR ru sl sv zh-CN zh-TW
+	#LANGPACKISOS:=$(shell ooo-build/bin/openoffice-xlate-lang -i all')
+	LANGPACKISOS:=en-US af ar as-IN be-BY bg bn br bs ca cs cy da de dz el \
+	  en-GB en-ZA eo es et eu fa fi fr ga gl gu-IN he hi-IN hr hu it ja \
+	  ka km ko ku lo lt lv mk ml-IN mr-IN nb ne nl nn nr ns or-IN pa-IN \
+	  pl pt pt-BR ro ru rw sk sl sr ss st sv \
+	  ta-IN te-IN tg th tn tr ts uk uz ve vi xh zh-CN zh-TW zu
+
+    ifeq "$(DIST)" "Ubuntu"
+	# additional things built in Ubuntu, having belocs-locales
+	ISOS := en-US $(sort $(filter-out en-US, $(ISOS)) kn sw ti-ER ur-IN)
+	HELPISOS := en-US $(sort $(filter-out en-US, $(HELPISOS)) br)
+	LANGPACKISOS := en-US $(sort $(filter-out en-US, $(LANGPACKISOS)) kn sw ti-ER ur-IN)
+	REMOVE_HELP := bs cy fi lt lv sh-YU sr-CS ur-IN
+	FILTER_HELP := ga hr pl rw sk th tr vi
+    endif
+  endif
+else
+	ISOS=en-US
+	HELPISOS=en-US
+	LANGPACKISOS=en-US
+endif
+BUILD_ISOS = $(ISOS)
+
+ifeq "$(DIST)" "Ubuntu"
+	LANGUAGES := $(ISOS)
+  ifeq "$(PKGSOURCE)" "openoffice.org$(VER)"
+	BUILD_ONLY_EN_US=y
+	ISOS := en-US
+	LANGPACKISOS := $(ISOS)
+	HELPISOS := 
+	OOO_L10N_DIR = $(CURDIR)/debian/l10n
+    ifeq (,$(findstring nogsi, $(DEB_BUILD_OPTIONS)))
+	GSI_EXPORT_STAMP = $(STAMP_DIR)/gsi-export
+    endif
+  endif
+  ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+	PACKAGE_QA_TOOLS=n
+
+	DEBHELPER_OPTIONS += $(foreach p, $(shell echo $(PACKAGES) | egrep -v l10n) openoffice.org$(VER)-l10n-en-us,-N$(p))
+  endif
+endif
+
+ifeq "$(USE_COMMON_DOCDIR)" "y"
+	HELP_PACKAGES = $(filter-out %-common, $(filter openoffice.org$(VER)-help-%, $(PACKAGES)))
+	LANG_PACKAGES = $(filter-out %-common, $(filter openoffice.org$(VER)-l10n-%, $(PACKAGES)))
+endif
+
+ifeq "$(VER)" ""
+	CONFIGURE_FLAGS += --with-binsuffix=no
+else
+	CONFIGURE_FLAGS += --with-binsuffix=$(VER)
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+	JAVA_HOME=/usr/lib/jvm/java-gcj
+	CONFIGURE_FLAGS += --enable-gcjaot
+  ifeq "$(BUILD_JARS_NATIVE)" "y"
+    ifneq "$(ETCH_BACKPORT)" "y"
+	BUILD_DEPS += , java-gcj-compat-dev (>= 1.0.76-7) [$(OOO_JAVA_ARCHS)], libgcj-bc [$(OOO_JAVA_ARCHS)]
+    else
+	BUILD_DEPS += , java-gcj-compat-dev (>= 1.0.65-4) [$(OOO_JAVA_ARCHS)], libgcj-bc [$(OOO_JAVA_ARCHS)]
+    endif
+  else
+	BUILD_DEPS += , java-gcj-compat-dev (>= 1.0.56) [$(OOO_JAVA_ARCHS)], libgcj-bc [$(OOO_JAVA_ARCHS)]
+  endif
+	BUILD_DEPS += , ant (>= 1.6.5) [$(OOO_JAVA_ARCHS)]
+	GCJ_VERSION = $(shell basename `readlink $(JAVA_HOME)/bin/gcj` | sed -e s/gcj-//)
+	GCJ_DBTOOL = gcj-dbtool-$(GCJ_VERSION)
+	SYSTEM_XALAN=y
+	SYSTEM_XERCES=y
+	SYSTEM_XML_APIS=y
+ifneq "$(ETCH_BACKPORT)" "y"
+	GCJ_JAWT_DEPENDS= $(shell dpkg -S /usr/lib/`readlink /usr/lib/libgcj_bc.so.1` | cut -d: -f1 | sed -e s/$$/-awt/)
+else
+	# workaround for etch; etch only has libgcj7-awt
+	GCJ_JAWT_DEPENDS= $(shell dpkg -S /usr/lib/`readlink /usr/lib/libgcj_bc.so.1` | cut -d: -f1 | sed -e s/$$/-awt/ | sed -e s/-0//)
+endif
+	DBG_DBG_SUGGESTS+= , $(shell echo $(GCJ_AWT_DEPENDS) | sed -e s/awt/dbg/)
+ifeq "$(DIST)" "Ubuntu"
+	JAVA_RUNTIME_DEPENDS = gij | java-gcj-compat
+else
+	JAVA_RUNTIME_DEPENDS = java-gcj-compat
+endif
+#  ifneq (,$(GCJ_JAWT_DEPENDS))
+#	JAVA_RUNTIME_DEPENDS += | $(GCJ_JAWT_DEPENDS)
+#  endif
+  ifneq (,$(filter $(ARCH), amd64 i386 lpia powerpc))
+	JAVA_RUNTIME_DEPENDS += | openjdk-6-jre
+  endif
+  ifneq (,$(filter $(ARCH), amd64 i386 lpia))
+	JAVA_RUNTIME_DEPENDS += | sun-java5-jre | sun-java6-jre
+  endif
+	JAVA_RUNTIME_DEPENDS += | java2-runtime
+	GCJ_JAWT_DIR=$(shell dirname `dpkg -L $(GCJ_JAWT_DEPENDS) | grep libjawt.so`)
+export JAVA_HOME
+	CONFIGURE_FLAGS += --with-jdk-home=$(JAVA_HOME)
+	JAVA_COMMON_DEPENDS= , openoffice.org$(VER)-java-common (>> 2.2.0-4)
+  ifeq "$(SYSTEM_XERCES)" "y"
+	CONFIGURE_FLAGS += --with-system-xerces
+	BUILD_DEPS += , libxerces2-java [$(OOO_JAVA_ARCHS)]
+	JAVA_COMMON_JAVA_DEPENDS+= , libxerces2-java
+    ifneq "$(ETCH_BACKPORT)" "y"
+	JAVA_GCJ_DEPENDS += , libxerces2-java-gcj
+    endif
+  endif
+  ifeq "$(SYSTEM_XALAN)" "y"
+	CONFIGURE_FLAGS += --with-system-xalan
+	BUILD_DEPS += , libxalan2-java (>= 2.6.0-1) [$(OOO_JAVA_ARCHS)]
+	JAVA_COMMON_JAVA_DEPENDS+= , libxalan2-java (>= 2.6.0-1)
+	# force using system xml-apis.jar
+	SYSTEM_XML_APIS=y
+    ifneq "$(ETCH_BACKPORT)" "y"
+	JAVA_GCJ_DEPENDS += , libxalan2-java-gcj
+    endif
+  endif
+  ifeq "$(SYSTEM_XML_APIS)" "y"
+	CONFIGURE_FLAGS += --with-system-xml-apis
+	# xml-apis.jar is already a link in xalan, see above
+  endif
+  ifeq "$(DIST)" "Debian"
+	BUILD_DEPS += , mingw32 [$(OOO_JAVA_ARCHS)]
+	CONFIGURE_FLAGS += --with-mingwin=i586-mingw32msvc-g++
+  endif
+  ifeq "$(ENABLE_REPORTDESIGN)" "y"
+	# report-builder
+    ifeq "$(USE_SYSTEM_JFREEREPORT)" "y"
+	REPORT_BUILDER_BUILD_DEPS += , libjcommon-java (>= 1.0.10) [$(OOO_JAVA_ARCHS)], libsac-java [$(OOO_JAVA_ARCHS)], libxml-java [$(OOO_JAVA_ARCHS)], libflute-1.3-jfree-java [$(OOO_JAVA_ARCHS)], libpentaho-reporting-flow-engine-java [$(OOO_JAVA_ARCHS)], liblayout-java [$(OOO_JAVA_ARCHS)], libloader-java [$(OOO_JAVA_ARCHS)], libformula-java [$(OOO_JAVA_ARCHS)], librepository-java [$(OOO_JAVA_ARCHS)], libfonts-java (>= 0.2.6) [$(OOO_JAVA_ARCHS)], libjcommon-serializer-java [$(OOO_JAVA_ARCHS)]
+	REPORT_BUILDER_JAR_DEPENDS := $(REPORT_BUILDER_BUILD_DEPS)
+	BUILD_DEPS += $(REPORT_BUILDER_BUILD_DEPS)
+	CONFIGURE_FLAGS += --with-system-jfreereport --with-jcommon-jar=/usr/share/java/jcommon.jar --with-libxml-jar=/usr/share/java/libxml.jar --with-flute-jar=/usr/share/java/flute-1.3-jfree.jar --with-jfreereport-jar=/usr/share/java/pentaho-reporting-flow-engine.jar --with-liblayout-jar=/usr/share/java/liblayout.jar --with-libloader-jar=/usr/share/java/libloader.jar --with-libformula-jar=/usr/share/java/libformula.jar --with-librepository-jar=/usr/share/java/librepository.jar --with-libfonts-jar=/usr/share/java/libfonts.jar --with-jcommon-serializer-jar=/usr/share/java/jcommon-serializer.jar
+    endif
+  else
+	CONFIGURE_FLAGS += --disable-reportdesign
+  endif
+	OOO_OFFICEBEAN_DEP = openoffice.org$(VER)-officebean
+else
+	CONFIGURE_FLAGS += --without-java
+	DEBHELPER_OPTIONS += -Nopenoffice.org$(VER)-officebean -Nopenoffice.org$(VER)-java-common -Nopenoffice.org$(VER)-filter-mobiledev -Nopenoffice.org$(VER)-gcj
+endif
+
+ifneq "$(MOZILLA)" ""
+  ifneq "$(OOO_MOZILLA_ARCHS)" ""
+    ifeq "$(MOZILLA)" "xulrunner"
+	BUILD_DEPS+= , libxul-dev [$(OOO_MOZILLA_ARCHS)], libnss3-dev [$(OOO_MOZILLA_ARCHS)]
+	DBG_DBG_SUGGESTS+= , libnss3-1d-dbg, libnspr4-0d-dbg
+    else
+      ifeq "$(MOZILLA)" "libxul"
+	BUILD_DEPS+= , xulrunner-1.9-dev [$(OOO_MOZILLA_ARCHS)]
+      else
+        ifeq "$(MOZILLA)" "iceape"
+	BUILD_DEPS += , $(MOZILLA)-dev (>= 1.1.9-5) [$(OOO_MOZILLA_ARCHS)], libnss3-dev [$(OOO_MOZILLA_ARCHS)]
+        else
+	BUILD_DEPS += , $(MOZILLA)-dev [$(OOO_MOZILLA_ARCHS)]
+        endif
+      endif
+	DBG_DBG_SUGGESTS+= , libnss3-1d-dbg, libnspr4-0d-dbg
+    endif
+  endif
+endif
+ifneq (,$(findstring $(ARCH),$(OOO_MOZILLA_ARCHS)))
+	CONFIGURE_FLAGS += --with-system-mozilla=$(MOZILLA)
+else
+	CONFIGURE_FLAGS += --disable-mozilla --without-system-mozilla
+	PACKAGE_NPSOPLUGIN=n
+endif
+
+ifeq "$(USE_SYSTEM_DMAKE)" "y"
+	BUILD_DEPS += , dmake (>= 1:4.11)
+endif
+
+ifneq "$(OOO_MONO_ARCHS)" ""
+	# mono-gmcs for gmcs itself and mkbundle2
+	# mono-mcs for mcs itself and al
+	BUILD_DEPS += , mono-mcs $(MONO_MINVER) [$(OOO_MONO_ARCHS)], mono-gmcs $(MONO_MINVER) [$(OOO_MONO_ARCHS)], libmono-dev $(MONO_MINVER) [$(OOO_MONO_ARCHS)], mono-utils $(MONO_MINVER) [$(OOO_MONO_ARCHS)], cli-common-dev (>= 0.4.4) [$(OOO_MONO_ARCHS)], mono-1.0-devel [$(OOO_MONO_ARCHS)], mono-2.0-devel [$(OOO_MONO_ARCHS)]
+endif
+ifeq "$(ENABLE_MONO)" "y"
+	# http://pkg-mono.alioth.debian.org/cli-policy/ch-mono.html#s7.3
+	MONO_SHARED_DIR = $(CURDIR)
+	export MONO_SHARED_DIR
+	CONFIGURE_FLAGS+= --enable-mono
+	DBG_DBG_SUGGESTS += , mono-jit-dbg [$(OOO_MONO_ARCHS)], libmono0-dbg [$(OOO_MONO_ARCHS)], mono-dbg [$(OOO_MONO_ARCHS)]
+else
+	CONFIGURE_FLAGS+= --disable-mono
+endif
+
+ifeq "$(USE_SYSTEM_HUNSPELL)" "y"
+	BUILD_DEPS += , libhunspell-dev $(HUNSPELL_MIN_VER)
+	CONFIGURE_FLAGS+= --with-system-hunspell
+endif
+
+ifeq "$(SYSTEM_ALTLINUXHYPH)" "y"
+  ifeq "$(USE_LIBHYPHEN)" "y"
+	BUILD_DEPS += , libhyphen-dev $(LIBHYPHEN_MINVER)
+  else
+	BUILD_DEPS += , libaltlinuxhyph-dev $(LIBALTLINUXHYPH_MINVER)
+  endif
+	CONFIGURE_FLAGS += --with-system-altlinuxhyph
+endif
+
+ifeq "$(USE_AGG)" "y"
+	CONFIGURE_FLAGS+= --with-agg
+  ifeq "$(SYSTEM_AGG)" "y"
+	BUILD_DEPS += , libagg-dev (>= 2.3-2)
+	CONFIGURE_FLAGS += --with-system-agg
+  endif
+endif
+
+ifneq "$(OOO_STLPORT_ARCHS)" ""
+	LIBSTLPORT_MINVER= (>= 4.6.2-3)
+	BUILD_DEPS += , libstlport4.6-dev $(LIBSTLPORT_MINVER) [$(OOO_STLPORT_ARCHS)]
+	DEV_STL_DEPENDS=, libstlport4.6-dev $(LIBSTLPORT_MINVER) [$(OOO_STLPORT_ARCHS)]
+endif
+ifneq "$(USE_STLPORT)" "y"
+	CONFIGURE_FLAGS += --without-stlport
+else
+  ifeq "$(USE_SYSTEM_STLPORT)" "y"
+	CONFIGURE_FLAGS+= --with-stlport=$(CURDIR)/stlport
+  endif
+endif
+
+ifeq "$(USE_SYSTEM_BOOST)" "y"
+	BUILD_DEPS += , libboost-dev
+	CONFIGURE_FLAGS += --with-system-boost
+endif
+
+ifeq "$(USE_SYSTEM_VIGRA)" "y"
+	BUILD_DEPS += , libvigraimpex-dev
+	CONFIGURE_FLAGS += --with-system-vigra
+endif
+
+ifeq "$(USE_EXTERNAL_CXXLIBS)" "y"
+	BUILD_DEPS += , libwpd8-dev $(LIBWPD8_MINVER)
+	CONFIGURE_FLAGS+=  --with-system-libwpd
+  ifeq "$(USE_SYSTEM_SABLOT)" "y"
+	BUILD_DEPS += , libsablot0-dev (>= 1.0.2-4)
+	CONFIGURE_FLAGS += --with-system-sablot
+  endif
+  ifeq "$(USE_EXTERNAL_MYTHES)" "y"
+	BUILD_DEPS += , libmythes-dev (>= 1:1.0-3)
+	CONFIGURE_FLAGS += --with-system-mythes
+	DEBHELPER_OPTIONS+= -Nlibmythes-dev
+  endif
+  ifeq "$(USE_SYSTEM_LIBWPS)" "y"
+	BUILD_DEPS += , libwps-dev
+	CONFIGURE_FLAGS += --with-system-libwps
+  endif
+  ifeq "$(USE_SYSTEM_LIBWPG)" "y"
+	BUILD_DEPS += , libwpg-dev
+	CONFIGURE_FLAGS += --with-system-libwpg
+  endif
+endif
+
+ifeq "$(USE_SYSTEM_ICU)" "y"
+	# 34 and 36 provide this and 38 changed the real name.
+	BUILD_DEPS += , libicu-dev
+	CONFIGURE_FLAGS += --with-system-icu
+endif
+
+ifeq "$(USE_LIBXSLT)" "y"
+	CONFIGURE_FLAGS += --with-system-libxslt
+	BUILD_DEPS += , libxslt1-dev
+	DBG_DBG_SUGGESTS+= , libxslt1-dbg
+endif
+
+ifeq "$(USE_SYSTEM_XMLSEC)" "y"
+  ifneq (,$(findstring xul,$(MOZILLA)))
+	BUILD_DEPS += , libxmlsec1-dev (>= 1.2.9-1.1), libxmlsec1-nss (>= 1.2.9-1.1), libxmlsec1-openssl (>= 1.2.9-1.1)
+  else
+	BUILD_DEPS += , libxmlsec1-dev (>= 1.2.9), libxmlsec1-nss (>= 1.2.9), libxmlsec1-openssl (>= 1.2.9)
+  endif
+	CONFIGURE_FLAGS += --with-system-xmlsec
+endif
+
+ifeq "$(BUILD_CAIROCANVAS)" "y"
+  ifeq "$(USE_SYSTEM_CAIRO)" "y"
+	BUILD_DEPS+= , libcairo2-dev
+	CONFIGURE_FLAGS+= --with-system-cairo
+  endif
+else
+	CONFIGURE_FLAGS+= --disable-cairo
+endif
+
+ifeq "$(BUILD_KDE)" "n"
+	CONFIGURE_FLAGS+= --disable-kde
+	DEBHELPER_OPTIONS+= -Nopenoffice.org$(VER)-kde
+	CONFIGURE_FLAGS+= --with-images="industrial crystal hicontrast tango $(HUMAN)"
+else
+	BUILD_DEPS += , kdelibs4-dev $(KDELIBS_MINVER)
+	DBG_DBG_SUGGESTS+= , kdelibs-dbg, qt-x11-free-dbg
+endif
+
+ifeq "$(BUILD_BINFILTERS)" "y"
+	CONFIGURE_FLAGS+= --enable-binfilter
+	OOO_BINFILTER_DEP = openoffice.org$(VER)-filter-binfilter
+else
+	DEBHELPER_OPTIONS+= -Nopenoffice.org$(VER)-filter-binfilter
+endif
+
+ifneq "$(BUILD_PYUNO)" "y"
+	DEBHELPER_OPTIONS+= -Npython-uno
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(USE_SYSTEM_HSQLDB)" "y"
+	BUILD_DEPS += , libhsqldb-java (>= 1.8.0.9-1) [$(OOO_JAVA_ARCHS)]
+	BASE_HSQLDB_DEPENDS = libhsqldb-java (>= 1.8.0.9-1)
+	CONFIGURE_FLAGS+= --with-system-hsqldb
+    ifneq "$(ETCH_BACKPORT)" "y"
+	JAVA_GCJ_DEPENDS += , libhsqldb-java-gcj
+    endif
+  endif
+  ifeq "$(USE_SYSTEM_BSH)" "y"
+	BUILD_DEPS += , bsh (>= 2.0b4-1) [$(OOO_JAVA_ARCHS)]
+	COMMON_BSH_DEPENDS = bsh (>= 2.0b4-1)
+	CONFIGURE_FLAGS+= --with-system-beanshell
+    ifneq "$(ETCH_BACKPORT)" "y"
+	JAVA_GCJ_DEPENDS += , bsh-gcj
+    endif
+  endif
+endif
+
+ifeq "$(ENABLE_SCSOLVER)" "y"
+  ifeq "$(USE_SYSTEM_LPSOLVE)" "y"
+    ifeq "$(USE_SHARED_LPSOLVE)" "y"
+	BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION), lp-solve $(LPSOLVE_MIN_VERSION)
+	LPSOLVE_DEP = lp-solve $(LPSOLVE_MIN_VERSION)
+    else
+	BUILD_DEPS += , liblpsolve55-dev $(LPSOLVE_MIN_VERSION)
+    endif
+	CONFIGURE_FLAGS += --with-system-lpsolve
+    ifeq "$(USE_LIBSUITESPARSE)" "y"
+	DBG_DBG_SUGGESTS+= , libsuitesparse-dbg
+	BUILD_DEPS += , libsuitesparse-dev (>> 3.1.0)
+    else
+	DBG_DBG_SUGGESTS+= , libufsparse-dbg
+	BUILD_DEPS += , libufsparse-dev
+    endif
+  endif
+else
+	CONFIGURE_FLAGS += --disable-scsolver
+endif
+
+ifeq "$(USE_DBUS)" "y"
+	BUILD_DEPS += , libdbus-glib-1-dev (>= 0.60)
+	CONFIGURE_FLAGS += --enable-dbus
+endif
+
+ifeq "$(USE_GSTREAMER)" "y"
+	BUILD_DEPS += , libgstreamer-plugins-base0.10-dev
+	GSTREAMER_PLUGINS_SUGGESTS += , gstreamer0.10-plugins-base, gstreamer0.10-plugins-good, gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-bad, gstreamer0.10-ffmpeg
+	DBG_DBG_SUGGESTS+= , libgstreamer0.10-0-dbg
+else
+	CONFIGURE_FLAGS += --disable-gstreamer
+endif
+
+ifeq "$(USE_SYSTEM_NEON)" "y"
+	BUILD_DEPS += , libneon$(NEONSONR)-dev
+	DBG_DBG_SUGGESTS+= , libneon$(NEONSONR)-dbg
+	CONFIGURE_FLAGS += --with-system-neon
+endif
+
+# CairoFonts patchset is applied for sid and this patch needs Gtk 2.10
+ifneq "$(CAIRO_FONTS_PATCH)" "y"
+	BUILD_DEPS += , libgtk2.0-dev
+else
+	BUILD_DEPS += , libgtk2.0-dev (>= 2.10)
+  # cairo canvas might be disabled, but the patch needs cairo headers
+  ifneq "$(BUILD_CAIROCANVAS)" "y"
+	BUILD_DEPS += , libcairo2-dev
+	CONFIGURE_FLAGS += --with-system-cairo
+  endif
+endif
+
+# Use compiler cache?  Include ccache in DEB_BUILD_OPTIONS for much faster rebuild times
+# A complete build uses about 200Mb of compiler cache.
+ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS)))
+	CONFIGURE_FLAGS += --with-gcc-speedup=ccache
+endif
+
+# Small symbols?
+ifeq "$(SMALL_SYMBOLS)" "y"
+	CONFIGURE_FLAGS += --enable-symbols=SMALL
+endif
+
+# Restart build from a particular project?
+# DEB_BUILD_OPTIONS=from=<projectname>
+BUILD_FROM=$(shell echo "$(DEB_BUILD_OPTIONS)," | sed -n 's/^\(.*,\)\?from=\([a-zA-Z0-9]\+\).*$$/\2/p')
+export BUILD_FROM
+
+# Build n projects in parallel?
+# DEB_BUILD_OPTIONS=parallel=<n>
+NUM_CPUS=$(shell echo "$(DEB_BUILD_OPTIONS)," | sed -n 's/^\(.*,\)\?parallel=\([0-9]\+\).*$$/\2/p')
+AVAIL_CPUS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
+ifeq "$(NUM_CPUS)" ""
+	NUM_CPUS := 1
+  ifeq "$(PARALLEL_BUILD)" "y"
+	# according to Pavel Janik, build -P<number of cores> -- -P2
+	# is ideal. This sets the first -P according to the number
+	# of CPUs (where dual-core CPUS report 2, too)
+    ifneq ($(AVAIL_CPUS),1)
+	NUM_CPUS := $(shell expr $(AVAIL_CPUS))
+    endif
+  endif
+endif
+	CONFIGURE_FLAGS += --with-num-cpus=$(NUM_CPUS)
+	# breaks. At least with 2
+#	CONFIGURE_FLAGS += --with-max-jobs=$(NUM_CPUS)
+
+# Build python depends from current python version
+PYMAJOR:=$(shell python -c "import sys; print sys.version_info[0]")
+PYMINOR:=$(shell python -c "import sys; print sys.version_info[1]")
+PYMINORPLUS1:=$(shell python -c "import sys; print sys.version_info[1]+1")
+PYTHON_SITE:=debian/python-uno/usr/lib/python$(PYMAJOR).$(PYMINOR)/site-packages
+
+CURDIR ?= $(shell pwd)
+
+ifeq ($(GCC_VERSION),)
+	BUILD_PATH = /usr/lib/jvm/java-gcj/bin:$$PATH
+else
+  ifeq ($(GCC_VERSION),snapshot)
+	BUILD_PATH = /usr/lib/jvm/java-gcj/bin:/usr/lib/gcc-snapshot/bin:$$PATH
+	BUILD_LD_LIBRARY_PATH = /usr/lib/gcc-snapshot/lib:$$LD_LIBRARY_PATH
+  else
+	BUILD_PATH = /usr/lib/jvm/java-gcj/bin:$(CURDIR)/debian/usr/bin:$$PATH
+  endif
+endif
+BUILD_PATH := $(CURDIR)/debian/usr/bin:$(BUILD_PATH)
+BUILD_LD_LIBRARY_PATH := $(BUILD_LD_LIBRARY_PATH):$(GCJ_JAWT_DIR)
+
+# Because of the stampdir magic, when you actually want to run a rule
+# over, you would have to remove the stamp manually.  Now, just do
+# 'debian/rules <target> <target> ... FORCE=1', and the stamp files
+# that match the given targets will be removed automagically.
+stampdir_targets=files.backup icons.scale patch.apply build.prepare.artwork 
+stampdir_targets+=build.prepare configure
+stampdir_targets+=setupins setup install install-arch install-indep
+stampdir_targets+=langpacks helppacks binary-common binary-arch binary-indep
+ifdef FORCE
+ DUMMY:=$(shell rm -f $(patsubst %,$(STAMP_DIR)/%,$(filter $(stampdir_targets),$(MAKECMDGOALS))))
+endif
+
+# If this is defined, then none of the 'long' commands will be run.  Useful
+# for testing.
+# test_rules=1
+
+# Since the final stages use up a large amount of diskspace, provide targets to
+# remove them without needing a full rebuild
+
+# Clean up the package directories (about 830M) 
+clean-debdir:
+	dh_testdir
+	rm -f debian/*.postinst debian/*.postrm debian/*.preinst debian/*.prerm
+	rm -f $(STAMP_DIR)/setup
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+	rm -rf debian/ttf-opensymbol \
+	       debian/openoffice.org$(VER)-common \
+	       debian/openoffice.org$(VER)-dev-doc \
+	       debian/openoffice.org$(VER)-java-common \
+	       debian/openoffice.org$(VER)-l10n-en-us
+endif
+	dh_clean
+
+# Clean compilation results, but leave solver (about 600Mb in addition to instsetoo)
+clean-objectdirs: clean-instsetoo
+	dh_testdir
+	find $(SOURCE_TREE) -maxdepth 2 -name $(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT) -type d -exec rm -rf {} \;
+
+clean:
+	dh_testroot
+	dh_testdir
+
+	`file debian/* | grep executable | cut -f 1 -d : | xargs chmod +x`
+	`file debian/scripts/* | grep executable | cut -f 1 -d : | xargs chmod +x`
+
+	# openoffice.applications and openoffice*.keys are not removed via make distclean
+	# although they are generated files. Work around this.
+	# FIXME: Fix the makefiles in ooo-build directly
+	if [ -e ooo-build/desktop/openoffice.applications ]; then \
+		$(MAKE) -C ooo-build/desktop clean || true;\
+	fi
+	if [ -r ooo-build/Makefile ]; then \
+	  $(MAKE) -C ooo-build distclean || true ;\
+	fi
+
+ifeq "$(PRUNE_OOOBUILD)" "y"
+	# prune upstream ooo-build files
+	set -e; \
+	cd ooo-build ;\
+	rm -rf \
+	 2005-10-23-huston.ppt \
+	 doc/*.odg \
+	 scratch/buildbot \
+	 scratch/offapi-vba/constants/constant_types.rdb \
+	 scratch/scsolver/workben/scsolver_boost.tar.bz2 \
+	 src/*.ico \
+	 src/*.jpg \
+	 src/*.xcf \
+	 src/*_nld.* \
+	 src/Draft.jpg \
+	 src/file-bug*.png \
+	 src/open*.png \
+	 src/open{intro,about}*.bmp \
+	 src/easter/*.png \
+	 src/layout/*.png \
+	 patches/test/*.tar \
+	 www/images/*.png \
+	 www/l10n/*.gif
+	 if [ -d ooo-build/test ]; then \
+		find ooo-build/test ooo-build/doc ooo-build/scratch -type f \
+			\( -name '*.123' -o -name '*.doc' -o -name '*.lwp' \
+			-o -name '*.odp' -o -name "*.ods" -o -name '*.odt' \
+			-o -name '*.png' -o -name '*.ppt' -o -name '*.sx?' \
+			-o -name '*.wb2' -o -name '*.WB2' -o -name '*.xls' \
+			-o -name '*.XLS' -o -name '*.xlsx' -o -name '*.xls.gz' \
+			-o -name '*.xls.bz2' \) \
+			-exec rm {} \; ;\
+	 fi
+	 find ooo-build/scratch ooo-build/src -type f \
+		\( -name '*.odg' -o -name '*.ods' -o -name '*.ott' \) \
+		-exec rm {} \;
+endif
+
+	# remove file with space in the name
+	rm -f ooo-build/test/macro/clock\ chart.xls
+
+	rm -rf ooo-build/autom4ate.cache
+	rm -rf ooo-build/build
+	rm -rf ooo-build/desktop/*.desktop
+	rm -f ooo-build/fonts/symbols.xls
+	rm -f ooo-build/po/.intltool-merge-cache
+	rm -f ooo-build/src/GSI*.sdf
+
+	# remove generated symlinks / java wrappers
+	rm -rf debian/usr
+
+	# stlport home
+	rm -rf $(CURDIR)/stlport
+	# convenience link
+	rm -f build
+
+	rm -f ooo-build/src/GSI*err
+	rm -f ooo-build/config.*
+
+ifneq "$(OOO_L10N_DIR)" ""
+	rm -rf $(OOO_L10N_DIR)
+endif
+
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+	rm -rf debian/ttf-opensymbol \
+	       debian/openoffice.org$(VER)-common \
+	       debian/openoffice.org$(VER)-dev-doc \
+	       debian/openoffice.org$(VER)-java-common \
+	       debian/openoffice.org$(VER)-l10n-en-us
+endif
+
+	# uuencode upstream ooo-build binary files
+	set -e; \
+	cd ooo-build ; \
+	 for f in \
+	   *.png \
+	   desktop/*/*.png \
+	   doc/*.odg \
+	   doc/*.ods \
+	   doc/*.sxw \
+	   patches/test/*.tar \
+	   scratch/buildbot/buildbot-0.7.3/buildbot/*.png \
+	   scratch/buildbot/buildbot-0.7.3/docs/PyCon-2003/*.png \
+	   scratch/offapi-vba/constants/*.rdb \
+	   scratch/sc-vba/testvba/TestDocuments/*.ods \
+	   scratch/sc-vba/testvba/TestDocuments/*.xls \
+	   scratch/sc-vba/TestDocuments/*.xls \
+	   scratch/scsolver/docs/*.odg \
+	   scratch/scsolver/ext/*.ods \
+	   scratch/scsolver/workben/*.bz2 \
+	   scratch/scsolver/workben/addon_pkg/*.ods \
+	   scratch/scsolver/workben/testcase/*.ods \
+	   src/*.bmp \
+	   src/*.ico \
+	   src/*.jpg \
+	   src/*.odb \
+	   src/*.png \
+	   src/easter/*.png \
+	   src/icons/*.png \
+	   src/icons/tango/*.png \
+	   src/layout/*.png \
+	   src/icons/*.png \
+	   src/icons/tango/*.png \
+	   templates/*.ott \
+	   test/Lwp/*.lwp \
+	   test/Lwp/*.png \
+	   test/calc/*.ods \
+	   test/calc/*.xls \
+	   test/draw/*.odp \
+	   test/draw/*.ppt \
+	   test/draw/*.sxd \
+	   test/excel/*.xls \
+	   test/excel/*.xlsx \
+	   test/excel/*.xls.gz \
+	   test/excel/*.xls.bz2 \
+	   test/lotus/*.123 \
+	   test/macro/*.ods \
+	   test/macro/*.xls \
+	   test/macro/ConvertTests/*.xls \
+	   test/macro/vba_donated_docs/*.XLS \
+	   test/macro/vba_donated_docs/*.xls \
+	   test/qpro/*.png \
+	   test/qpro/*.WB2 \
+	   test/qpro/*.wb2 \
+	   test/qpro/*.xls \
+	   test/writer/*.odt \
+	   test/writer/*.sxw \
+	   desktop/mimetypes/16x16/*.png \
+	   desktop/mimetypes/22x22/*.png \
+	   desktop/mimetypes/24x24/*.png \
+	   desktop/mimetypes/32x32/*.png \
+	   desktop/mimetypes/48x48/*.png \
+	   www/images/*.png \
+	   www/l10n/*.gif \
+	   ; do \
+	  if [ -s $$f ]; then \
+	   uuencode $$f $$f > $$f.uu.tmp && \
+	   ../debian/scripts/move-if-change $$f.uu.tmp $$f.uu; \
+	   touch -r $$f $$f.uu ; \
+	   rm -f $$f ; \
+	  fi ; \
+	 done
+
+	# uuencode add-on ooo-build binary files
+	set -e; \
+	cd ooo-build ; \
+	 for f in \
+	   src/*.bz2 \
+	   src/*.dll \
+	   src/*.gz \
+	   ; do \
+	  if [ -s $$f ]; then \
+	   case "$$f" in src/$(TAG)*) continue ; esac ; \
+	   case "$$f" in src/OOo_*_src*) continue ; esac; \
+	   uuencode $$f $$f > $$f.uu.tmp && \
+	   ../debian/scripts/move-if-change $$f.uu.tmp $$f.uu; \
+	   touch -r $$f $$f.uu ; \
+	   rm -f $$f ; \
+	  fi ; \
+	 done
+
+ifeq "$(DIST)" "Ubuntu"
+	# uuencode ubuntu binary files
+	set -e; \
+	cd ubuntu ; \
+	 for f in \
+	   *.bmp \
+	   *.bz2 \
+	   *.otp \
+	   *.pdf \
+	   ; do \
+	  if [ -s $$f ]; then \
+	   uuencode $$f $$f > $$f.uu.tmp && \
+	   ../debian/scripts/move-if-change $$f.uu.tmp $$f.uu; \
+	   touch -r $$f $$f.uu ; \
+	   rm -f $$f ; \
+	  fi ; \
+	 done
+endif
+
+	dh_clean
+
+	# Files created in debian directory
+	rm -f debian/*.postinst debian/*.postrm debian/*.preinst debian/*.prerm
+	if [ -d "$(STAMP_DIR)" ]; then rm -rf "$(STAMP_DIR)"; fi
+	rm -f debian/shlibs.override.stdlibs
+	rm -f debian/libuno-cil.installcligac
+	rm -f debian/scripts/aotcompile.py*
+
+ifeq "$(ENABLE_MONO)" "y"
+	rm -rf $(MONO_SHARED_DIR)/.wapi
+endif
+
+ifeq "$(HELPISOS)" ""
+	rm -rf images*
+endif
+
+	rm -f l10n.fdupes
+	rm -f debian/shlibs.local
+
+	rm -f debian/openoffice.org-dev-doc.doc-base.*
+	rm -f debian/*.menu
+	for i in base calc draw impress math writer; do \
+		rm -f debian/openoffice.org-$$i.overrides.lintian; \
+	done
+
+	$(MAKE) -f debian/rules control
+
+
+# Generate control file, because we have so many different languages
+# Based on script by Martin Quinson <Martin.Quinson@tuxfamily.org>
+control: debian/control
+debian/control: $(wildcard debian/control*in) ooo-build/bin/openoffice-xlate-lang debian/rules
+	chmod 755 ooo-build/bin/openoffice-xlate-lang
+	sed -e "s#openoffice.orgVER#openoffice.org$(VER)#g" \
+	    -e "s#broffice.orgVER#broffice.org$(VER)#g" \
+	    -e "s#%$(DIST)=\([^%]*\)%#, \1#g#" \
+	    -e "s#%[A-Za-z]*=[^%]*%##g#" \
+	    -e "s#%BUILD_DEPS%#$(strip $(BUILD_DEPS))#g" \
+	    < debian/control.in > debian/control
+
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+	awk '{print} /^ *$$/ {exit}' debian/control > debian/control.l10n
+	sed 's/Build-Depends:/Build-Depends-Indep:/' debian/control.l10n > debian/control
+	rm -f debian/control.l10n
+
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+	       >> debian/control < debian/control.l10n.in
+endif
+
+	for LNUM in $(filter-out en-US,$(LANGPACKISOS)) ; do \
+	    [ "$$LNUM" = en-US -a "$(PKGSOURCE)" = "openoffice.org$(VER)-l10n" ] && continue; \
+	    LNAME=`ooo-build/bin/openoffice-xlate-lang -l $$LNUM | perl -e 'print ucfirst(<STDIN>);'`; \
+	    LCODE=`ooo-build/bin/openoffice-xlate-lang -i $$LNUM | tr A-Z a-z`; \
+	    CCODE=`echo $$LCODE | sed 's/-.*//'`; \
+	    case "$$LCODE" in \
+		bn|gu-in|pa-in|ml-in|or-in|te-in|ta-in) \
+			FONT_SUGGESTS=", ttf-`echo $$LNAME | tr A-Z a-z`-fonts"; \
+			;; \
+		hi-in|ne|mr-in) \
+			FONT_SUGGESTS=", ttf-devanagari-fonts"; \
+			;; \
+		he) \
+			FONT_SUGGESTS=", culmus"; \
+			;; \
+		km) \
+			FONT_SUGGESTS=", ttf-khmeros"; \
+			;; \
+		lo) \
+			FONT_SUGGESTS=", ttf-lao"; \
+			;; \
+		ar) \
+			FONT_SUGGESTS=", ttf-arabeyes"; \
+			;; \
+		fa) \
+			FONT_SUGGESTS=", ttf-farsiweb"; \
+			;; \
+		dz) \
+			FONT_SUGGESTS=", ttf-dzongkha"; \
+			;; \
+		th) \
+			FONT_SUGGESTS=", ttf-thai-tlwg"; \
+			;; \
+		*) \
+			FONT_SUGGESTS= ;; \
+	    esac; \
+	    case "$$LCODE" in \
+		rw) \
+			LOCALES_DEPENDS="locales (>= 2.3.6) | belocs-locales-data | locales-all (>= 2.3.6)" \
+			;; \
+		ss|ts|km|ns|tn) \
+			LOCALES_DEPENDS="locales (>= 2.3.5-12) | belocs-locales-data | locales-all" \
+			;; \
+		sr) \
+			LOCALES_DEPENDS="locales (>= 2.3.6.ds1-5) |  belocs-locales-data | locales-all" \
+			;; \
+		as-in|or-in|nr) \
+			LOCALES_DEPENDS="locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1)" \
+			;; \
+		*) \
+			LOCALES_DEPENDS="locales | belocs-locales-data | locales-all" \
+			;; \
+	    esac; \
+	    L10N_COMMON=; \
+	    if [ "$(USE_COMMON_DOCDIR)" = y ]; then \
+	        case "$$LCODE" in \
+	            en-us) ;; \
+	            *) L10N_COMMON='openoffice.orgVER-l10n-common (>= $${base-version}), '; \
+	        esac; \
+	        LOCALES_DEPENDS="openoffice.org$(VER)-common (>= \$${base-version}) | language-support-translations-$$CCODE, openoffice.org$(VER)-common (<< \$${base-version}.1) | language-support-translations-$$CCODE"; \
+	    fi; \
+	    sed -e "s|@LNAME@|$$LNAME|g" -e "s|@LCODE@|$$LCODE|g" \
+		-e "s|@CCODE@|$$CCODE|g" \
+	        -e "s|@FONT_SUGGESTS@|$$FONT_SUGGESTS|g" \
+	        -e "s:@LOCALES_DEPENDS@:$$LOCALES_DEPENDS:g" \
+	        -e "s:@L10N_COMMON@:$$L10N_COMMON:g" \
+			-e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+	        >> debian/control < debian/control.lang.in; \
+	done
+
+ifneq "$(HELPISOS)" ""
+	for LNUM in $(HELPISOS) ; do \
+	    LNAME=`ooo-build/bin/openoffice-xlate-lang -l $$LNUM | perl -e 'print ucfirst(<STDIN>);'`; \
+	    LCODE=`ooo-build/bin/openoffice-xlate-lang -i $$LNUM | tr A-Z a-z`; \
+	    CCODE=`echo $$LCODE | sed 's/-.*//'`; \
+	    sed -e "s|@LNAME@|$$LNAME|g" -e "s|@LCODE@|$$LCODE|g" \
+		-e "s|@CCODE@|$$CCODE|g" \
+			-e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+	        >> debian/control < debian/control.help.in; \
+	done
+	# en_US is in -common
+	perl -pi -e 's|(Depends: openoffice.org$(VER)-writer \| language-support-translations-en), openoffice.org$(VER)-l10n-en-us|\1|' \
+		debian/control
+	perl -pi -e 's|(Depends: openoffice.org$(VER)-writer, openoffice.org$(VER)-l10n-en-us)|\1, ttf-devanagari-fonts|' \
+		debian/control
+endif
+
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)"
+
+ifeq "$(PACKAGE_URE)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.ure.in
+endif
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(BUILD_JARS_NATIVE)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.gcj.in
+  endif
+endif
+ifneq "$(OOO_MONO_ARCHS)" ""
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.mono.in
+endif
+ifeq "$(PACKAGE_QA_TOOLS)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.qa.in
+endif
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	cat debian/control.pcvslib.in \
+		>> debian/control
+endif
+ifneq "$(OOO_NPSOPLUGIN_ARCHS)" ""
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.mozilla.in
+endif
+ifneq "$(OOO_OGLTRANS_ARCHS)" ""
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.ogltrans.in
+endif
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(ENABLE_REPORTDESIGN)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.reportdesign.in
+  endif
+endif
+ifeq "$(PACKAGE_TTF_OPENSYMBOL)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.fonts.in
+endif
+ifeq "$(BUILD_DBG_PACKAGE)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.debug.in
+endif
+ifeq "$(PACKAGE_SDK)" "y"
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.sdk.in
+endif
+	sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+		>> debian/control < debian/control.postgresql.in
+ifeq "$(DIST)" "Debian"
+	if echo $(LANGPACKISOS) | grep -q sr; then \
+		sed -e "s|openoffice.orgVER|openoffice.org$(VER)|g" \
+			>> debian/control < debian/control.etch_lenny_transitional.in; \
+		perl -pi -e 's/\n/, openoffice.org-l10n-sr-cs\n/ if /^Replaces:.*l10n-sr$$/' debian/control; \
+	fi
+endif
+
+endif
+
+	perl -pi -e "s,%OOO_ARCHS%,$(OOO_ARCHS),g" debian/control
+	perl -pi -e "s,%OOO_JAVA_ARCHS%,$(OOO_JAVA_ARCHS),g" debian/control
+	perl -pi -e "s,%OOO_MONO_ARCHS%,$(OOO_MONO_ARCHS),g" debian/control
+	perl -pi -e "s,%OOO_NPSOPLUGIN_ARCHS%,$(OOO_NPSOPLUGIN_ARCHS),g" debian/control
+	perl -pi -e "s,%OOO_OGLTRANS_ARCHS%,$(OOO_OGLTRANS_ARCHS),g" debian/control
+	perl -pi -e "s,%OOO_BINFILTER_ARCHS%,$(OOO_BINFILTER_ARCHS),g" debian/control
+	perl -pi -e "s,%OOO_BUILD_SVN%,$(OOO_BUILD_SVN)," debian/control
+
+ifeq (he,$(findstring he,$(LANGPACKISOS)))
+	perl -pi -e 's/openoffice.org-help-he$$/openoffice.org-help-he, openoffice.org-ctl-he/' debian/control
+endif
+
+ifeq "$(ETCH_BACKPORT)" "y"
+	perl -pi -e 's/Package: openoffice.org$(VER)-core/Package: openoffice.org$(VER)-core\nRecommends: nfs-common/' debian/control
+endif
+
+	python debian/scripts/joinctrl.py < debian/control > debian/control.tmp
+	mv debian/control.tmp debian/control
+
+	# make -l10n-fi suggest openoffice.org-spellcheck-fi to
+	# match myspell-fi and openoffice.org-soikko/-voikko
+	perl -pi -e 's/myspell-dictionary-fi/myspell-dictionary-fi | openoffice.org-spellcheck-fi/' debian/control
+
+ifeq "$(USE_LZMA_COMPRESS)" "y"
+	sed -i '/^Package:/a Pre-Depends: dpkg (>= 1.14.12ubuntu3)' debian/control
+endif
+
+.DELETE_ON_ERROR: debian/control
+
+build: build-arch build-indep
+build-arch: $(STAMP_DIR)/build
+build-indep: $(STAMP_DIR)/build
+
+# All 'important' targets have 2 lines.  The one that is run by
+# dpkg-buildpackage or the user, and the one that does the actual work.  This
+# indirection is needed so that the 'stamp' files that signify when a rule is
+# done can be located in a separate 'stampdir'.  Recall that make has no way to
+# know when a goal has been met for a phony target (like "build" or "install").
+#
+# At the end of each stampdir target, be sure to run the command 'touch $@'
+# so that the target will not be run again.  Removing the file will make
+# make run the target over.
+
+configure: ooo-build/config.status
+ooo-build/config.status: ooo-build/configure
+	dh_testdir
+
+	cat ooo-build/desktop/calc.desktop.in.in | grep "_Name=OpenOffice.org Spreadsheet"; \
+	if [ `echo $$?` = 1 ]; then \
+	 echo "You must apply the ubuntu/desktop*.diff patches." ; \
+	 exit 1; \
+	fi ; \
+
+	# Make sure needed scripts are executable
+	set -e;\
+	for FILE in debian/scripts/installoverrides \
+		    debian/scripts/move-if-change \
+		    debian/scripts/cleandupes \
+		    debian/scripts/fix_image_rgb \
+		    ooo-build/configure \
+		    ooo-build/bin/[a-z]* ;\
+	do \
+	  chmod 755 $$FILE ;\
+	done
+
+	mkdir -p $(STAMP_DIR)
+
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+  ifeq "$(DIST)" "Ubuntu"
+	cp -p ooo-build/distro-configs/Ubuntu.conf.in ooo-build/distro-configs/UbuntuL10n.conf.in
+  endif
+endif
+
+	# uudecode files, omit GSI files
+	set -e; \
+	for uu in \
+	  `find . -name *.uu` \
+	  ; do \
+	 case "$$uu" in ooo-build/src/GSI*) continue ; esac ; \
+	 orig="`echo "$$uu" |sed -e 's#.uu$$##'`" ;\
+	 if [ ! -s $$orig ]; then \
+	  uudecode -o $$orig $$uu ; \
+	  touch -r $$uu $$orig ; \
+	 fi ; \
+	done
+
+ifneq ($(GCC_VERSION),)
+  ifneq ($(GCC_VERSION),snapshot)
+	# create links for gcc and g++ (and gij and gcj), ooo-build does not
+	# honour overriding CC and CXX and we need to use gcc/g++ 4.0 or /
+	# ant.mk wants gcj at the moment...
+	mkdir -p $(CURDIR)/debian/usr/bin
+	ln -sf /usr/bin/$(CC_PREFIX)gcc-$(GCC_VERSION) $(CURDIR)/debian/usr/bin/gcc
+	ln -sf /usr/bin/$(CC_PREFIX)g++-$(GCC_VERSION) $(CURDIR)/debian/usr/bin/g++
+	#ln -sf /usr/bin/$(CC_PREFIX)gcj-$(GCC_VERSION) $(CURDIR)/debian/usr/bin/gcj
+	#ln -sf /usr/bin/gij-$(GCC_VERSION) $(CURDIR)/debian/usr/bin/gij
+  else
+    ifneq "$(CC_PREFIX)" ""
+	mkdir -p $(CURDIR)/debian/usr/bin
+	ln -s /usr/lib/gcc-snapshot/bin/$(CC_PREFIX)gcc $(CURDIR)/debian/usr/bin/gcc
+	ln -s /usr/lib/gcc-snapshot/bin/$(CC_PREFIX)g++ $(CURDIR)/debian/usr/bin/g++
+	ln -s /usr/lib/gcc-snapshot/bin/$(CC_PREFIX)gcj $(CURDIR)/debian/usr/bin/gcj
+	ln -s /usr/lib/gcc-snapshot/bin/$(CC_PREFIX)gij $(CURDIR)/debian/usr/bin/gij
+    endif
+  endif
+endif
+
+ifeq "$(USE_STLPORT)" "y"
+  ifeq "$(USE_SYSTEM_STLPORT)" "y"
+	# stlport home
+	if [ ! -d stlport ]; then \
+		mkdir -p stlport; \
+		ln -sf /usr/include/stlport stlport/stlport; \
+		ln -sf /usr/lib stlport/lib; \
+	fi
+  endif
+endif
+
+ifneq "$(BUILD_ONLY_EN_US)" "y"
+  ifneq "$(LANGPACKISOS)" "en-US"
+    ifeq "$(DIST)" "Ubuntu"
+	cd ooo-build; for uu in src/GSI*.uu; do \
+	  iso=$$(echo $$uu | sed -n 's/.*GSI_\(.*\)\.sdf.*/\1/p'); \
+	  case " $(LANGPACKISOS) " in *\ $$iso\ *) ;; *) continue; esac; \
+          orig="`echo "$$uu" |sed -e 's#.uu$$##'`" ;\
+          if [ ! -s $$orig ]; then \
+	    uudecode -o $$orig $$uu ;\
+	    touch -r $$uu $$orig ;\
+	  fi ;\
+	done
+    endif
+	# extract extra GSIs
+	find ooo-build/src -name "*.sdf.bz2" -exec bunzip2 -k \{\} \;
+	for i in `find ooo-build/src/*.sdf.gz`; do gunzip -dc "$$i" > \
+		ooo-build/src/`basename $$i .gz`; done
+	# work around broken stuff in the GSI breaking the build in svx
+	for iso in lv sh-YU sr-CS; do \
+	  case " $(LANGPACKISOS) " in *\ $$iso\ *) ;; *) continue; esac; \
+	  [ -f ooo-build/src/GSI_$$iso.sdf ] || continue; \
+	  TMP=`mktemp -q`; \
+	  grep -v OOO_LICENSE ooo-build/src/GSI_$$iso.sdf \
+	    > $$TMP && mv $$TMP ooo-build/src/GSI_$$iso.sdf; \
+	done
+	# we change the message, and those translations therefore don't match anymore.
+	for iso in $(LANGPACKISOS); do \
+	  [ -f ooo-build/src/GSI_$$iso.sdf ] || continue; \
+	  if [ "$$iso" = "ku" ]; then continue; fi; \
+	  TMP=`mktemp -q`; \
+	  grep -v RID_STR_EXTENSION_NOT_PRESENT ooo-build/src/GSI_$$iso.sdf \
+	    > $$TMP && mv $$TMP ooo-build/src/GSI_$$iso.sdf; \
+	done
+    ifeq (he,$(findstring he,$(LANGPACKISOS)))
+	# TKOS_BUILD_DATE is bogus, too
+	if [ -f ooo-build/src/GSI_he.sdf ]; then \
+	 TMP=`mktemp -q`; \
+	 sed -e "s/TKOS_BUILD_DATE//g" < ooo-build/src/GSI_he.sdf \
+	   > $$TMP && mv $$TMP ooo-build/src/GSI_he.sdf ; \
+	fi
+    endif
+  endif
+endif
+
+	# Make convenience link
+ifeq (ccache,$(findstring ccache,$(DEB_BUILD_OPTIONS)))
+	if [ ! -L build ]; then ln -s ooo-build/build/current build ; fi
+else
+	if [ ! -L build ]; then ln -s $(SOURCE_TREE) build ; fi
+endif
+
+	# Make sure we have /proc mounted - otherwise idlc will fail later.
+	test -r /proc/version
+
+	# hrmpf. Empty in ooo-build and patch does not give them to us but
+	# configure need them. Create them...
+	touch ooo-build/distro-configs/Win32.conf.in
+	touch ooo-build/distro-configs/Solaris.conf.in
+
+	cd ooo-build ; \
+		PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) ../ooo-build/configure $(CONFIGURE_FLAGS)
+
+	touch $@
+
+build: $(STAMP_DIR)/build
+$(STAMP_DIR)/build: ooo-build/config.status
+	dh_testdir
+
+ifeq "$(BUILD_KDE)" "n"
+	# hack to tell we want crystal icons nevertheless and they should be
+	# extracted...
+	if ! grep -q crystal ooo-build/bin/setup; then \
+		cp ooo-build/bin/setup ooo-build/bin/setup.bak && \
+		cat ooo-build/bin/setup.bak \
+			| sed -e s/\'industrial/\'industrial\ crystal/ \
+			> ooo-build/bin/setup && rm ooo-build/bin/setup.bak; \
+	fi
+endif
+
+	cd ooo-build ; PATH=$(BUILD_PATH) LD_LIBRARY_PATH=$(BUILD_LD_LIBRARY_PATH) DEFAULT_TO_ENGLISH_FOR_PACKING=1 VERBOSE=true $(MAKE)
+
+	if [ -d ooo-build/build/current -a ! -d $(SOURCE_TREE) ]; then \
+		ln -sf current $(SOURCE_TREE); \
+	fi
+
+	# apparently setting this here globally doesn't work, so hack around.
+	# If we don't do this we get loads of harmless, but log-bloating
+	# warnings
+	if ! grep fakeroot $(SOURCE_TREE)/*.sh; then \
+		perl -pi -e 's,LD_LIBRARY_PATH=\"(.*)\",LD_LIBRARY_PATH=\"/usr/lib/libfakeroot:\1\",' $(SOURCE_TREE)/*.sh; \
+	fi
+
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	cd $(SOURCE_TREE)/solenv/bin/modules/PCVSLib; \
+		perl Makefile.PL && $(MAKE)
+endif
+
+	# DPKG is only set on with-EPM build what we don't do and the menu stuff
+	# is only built wenn DPKG is set.. Same with PKGFORMAT.
+	cd $(SOURCE_TREE)/sysui; \
+		. $(CURDIR)/$(SOURCE_TREE)/*.sh; \
+		PATH=$(BUILD_PATH) DPKG="dpkg" PKGFORMAT="deb" NO_PKG_MANGLE=go-away \
+		../solenv/bin/build.pl && ../solenv/bin/deliver.pl
+
+ifneq "$(USE_EXTERNAL_MYTHES)" "y"
+	# build non-PIC version of libmythes
+	cd $(SOURCE_TREE)/lingucomponent/source/thesaurus/mythes && \
+		$(CXX) -O2 -Wall -ansi -pedantic -I. -I../../../inc/pch \
+			-c mythes.cxx && \
+		ar rc libmythes_nopic.a mythes.o && ranlib libmythes_nopic.a && \
+		mv libmythes_nopic.a $(CURDIR)/$(SOURCE_TREE)
+endif
+
+	touch $@
+
+test: $(STAMP_DIR)/test
+$(STAMP_DIR)/test: $(STAMP_DIR)/build
+ifneq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	-cd $(SOURCE_TREE)/solenv/bin/modules/PCVSLib; \
+		$(MAKE) test
+endif
+ifeq "$(RUN_UNIT_TESTS)" "y"
+	# build/run unit tests
+	-cd $(SOURCE_TREE)/instsetoo_native; \
+		. $(CURDIR)/$(SOURCE_TREE)/*.sh; \
+		PATH=$(BUILD_PATH) DPKG="dpkg" PKGFORMAT="deb" NO_PKG_MANGLE=go-away \
+		../solenv/bin/build.pl --ignore --all check
+endif
+ifeq "$(RUN_SMOKETEST)" "y"
+	# smoketest
+	cd $(SOURCE_TREE)/smoketestoo_native && \
+		mkdir -p $(CURDIR)/oosmoketest && \
+		. $(CURDIR)/$(SOURCE_TREE)/*.sh; \
+		export PATH=$(BUILD_PATH); \
+		export TEMP=$(CURDIR)/oosmoketest; \
+		if [ -n "$$DISPLAY" ]; then \
+			../solenv/bin/build.pl; \
+		else \
+			xvfb-run -a ../solenv/bin/build.pl; \
+		fi && \
+		rm -rf $(CURDIR)/oosmoketest
+endif
+endif
+
+	touch $@
+
+install: $(STAMP_DIR)/install
+$(STAMP_DIR)/install: $(STAMP_DIR)/build $(STAMP_DIR)/test
+	dh_testdir
+	dh_testroot
+
+	rm -rf $(CURDIR)/debian/tmp
+	cd ooo-build ; PATH=$(BUILD_PATH) LD_LIBRARY_PATH="/usr/lib/libfakeroot:$(BUILD_LD_LIBRARY_PATH)" DESTDIR=$(CURDIR)/debian/tmp $(MAKE) install
+
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	cd $(SOURCE_TREE)/solenv/bin/modules/PCVSLib; \
+		$(MAKE) install DESTDIR=$(CURDIR)/debian/libpcvslib-perl SITEPREFIX=/usr
+endif
+
+	# these have to go to -core, otherwise we get problems with the new
+	# dpkg-shibdeps...
+	for i in `find debian/tmp/pkg/openoffice.org-common/$(OODIR)/program/*.so.*`; do \
+		mv $$i `echo $$i | sed -e s/common/core/`; \
+	done
+
+ifeq "$(HELPISOS)" ""
+	for i in common calc math draw writer impress base; do \
+		rm -rf debian/tmp/pkg/openoffice.org-$$i/$(OODIR)/help; \
+	done
+else
+	# install *english* help; we can't do that later since this is in
+	# arch-dep and arch-indep stuff..
+	cd debian/tmp/pkg; \
+		mkdir -p openoffice.org-help-en-us/$(OODIR)/help/en; \
+		for i in common calc math draw writer impress base; do \
+			cp -r ./openoffice.org-$$i/$(OODIR)/help/en/* \
+			 ./openoffice.org-help-en-us/$(OODIR)/help/en && \
+			if [ "$$i" = "common" ]; then \
+				rm -rf ./openoffice.org-$$i/$(OODIR)/help/en; \
+			else \
+				rm -rf ./openoffice.org-$$i/$(OODIR)/help; \
+			fi; \
+		done
+	# save space by removing non-packaged localized help; we don't need
+	# them anyway
+	cd debian/tmp/pkg && \
+		for iso in $(filter-out en-US,$(LANGPACKISOS)); do \
+			if ! `echo $(HELPISOS) | grep -q $$iso`; then \
+				rm -rf openoffice.org-help-$$iso; \
+			fi; \
+		done
+endif
+
+	# move resources which have been installed outside of common there
+	cd debian/tmp/pkg; \
+		for i in `find . -name "*en-US.res" | grep -v common`; do \
+			mv $$i openoffice.org-common/$(OODIR)/program/resource/`basename $$i`; \
+		done
+
+ifeq "$(ENABLE_JAVA)" "y"
+	# move officebean.jar into -officebean (They will be moved out of -core
+	# in the install-arch target). Do the /usr/share/java move here already
+	cd debian/tmp/pkg; \
+		mkdir -p openoffice.org-core/usr/share/java/$(OODIRNAME); \
+		mv openoffice.org-common/$(OODIR)/program/classes/officebean.jar \
+			openoffice.org-core/usr/share/java/$(OODIRNAME)
+
+	# move sdbc_hsqldb.jar into -base (do the move
+	# to /usr/share/java here directly, we do it for the "rest"
+	# later
+	cd debian/tmp/pkg; \
+		mkdir -p openoffice.org-base/usr/share/java/$(OODIRNAME); \
+		mkdir -p openoffice.org-base/$(OODIR)/program/classes; \
+		mv openoffice.org-common/$(OODIR)/program/classes/sdbc_hsqldb.jar \
+			openoffice.org-base/usr/share/java/$(OODIRNAME); \
+		ln -s /usr/share/java/$(OODIRNAME)/sdbc_hsqldb.jar \
+			openoffice.org-base/$(OODIR)/program/classes/sdbc_hsqldb.jar
+endif
+
+	# move .so to -dev
+	cd debian/tmp/pkg; \
+		mkdir -p -m755 openoffice.org-dev/$(OODIR)/program; \
+		mv openoffice.org-common/$(OODIR)/program/*.so \
+			openoffice.org-dev/$(OODIR)/program
+
+	# somehow, these go into -common. Move them to -core here to be able
+	# to install them later in install-arch
+ifeq "$(ENABLE_MONO)" "y"
+	cd debian/tmp/pkg; \
+	mv openoffice.org-common/$(OODIR)/program/cli_*.dll*  \
+		openoffice.org-core/$(OODIR)/program
+	if [ -d openoffice.org-common/$(OODIR)/program/assembly ]; then \
+		rm -rf openoffice.org-common/$(OODIR)/program/assembly; \
+	fi
+endif
+ifeq "$(PACKAGE_QA_TOOLS)" "y"
+	cd debian/tmp/pkg; \
+	mv openoffice.org-common/$(OODIR)/program/testtoolrc \
+		openoffice.org-core/$(OODIR)/program
+else
+	cd debian/tmp/pkg; \
+	rm -f openoffice.org-common/$(OODIR)/program/testtoolrc
+endif
+	# remove eventually sneaked in .testtoolrc
+	cd debian/tmp/pkg; \
+	rm -f openoffice.org-common/$(OODIR)/program/.testtoolrc
+
+	# Gtk quickstarter for the eggtrtray stuff, so to -gtk (via -gnome)
+	mkdir -p -m755 debian/tmp/pkg/openoffice.org-gnome/$(OODIR)/share/xdg
+	mv debian/tmp/pkg/openoffice.org-common/$(OODIR)/share/xdg/qstart.desktop \
+		debian/tmp/pkg/openoffice.org-gnome/$(OODIR)/share/xdg
+
+	# move gengal stuff into -dev
+	mkdir -p debian/tmp/pkg/openoffice.org-dev/$(OODIR)/program
+	mv debian/tmp/pkg/openoffice.org-core/$(OODIR)/program/gengal* \
+		debian/tmp/pkg/openoffice.org-dev/$(OODIR)/program
+	mv debian/tmp/pkg/openoffice.org-common/$(OODIR)/program/gengal  \
+		debian/tmp/pkg/openoffice.org-dev/$(OODIR)/program
+
+ifeq "$(PACKAGE_SDK)" "y"
+	# move SDK documentation into own package
+	rm -rf debian/tmp/pkg/openoffice.org-dev-doc
+	mkdir -p debian/tmp/pkg/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev-doc
+	mv debian/tmp/pkg/openoffice.org-dev/usr/share/doc/openoffice.org \
+		debian/tmp/pkg/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev && \
+	mv debian/tmp/pkg/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev/sdk/docs \
+		debian/tmp/pkg/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev
+	mkdir -p debian/tmp/pkg/openoffice.org-dev-doc/$(OODIR)/sdk
+	mv debian/tmp/pkg/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev/sdk/index.html \
+		debian/tmp/pkg/openoffice.org-dev-doc/$(OODIR)/sdk
+	rm -f debian/tmp/pkg/openoffice.org-dev/$(OODIR)/sdk/index.html
+	rm -rf debian/tmp/pkg/openoffice.org-dev/usr/share/doc/openoffice.org \
+		debian/tmp/pkg/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev/sdk
+	mv debian/tmp/pkg/openoffice.org-dev/$(OODIR)/sdk/examples \
+		debian/tmp/pkg/openoffice.org-dev-doc/$(OODIR)/sdk
+endif
+
+	# FIXME: Is there a reason this moved from -math to -common?
+	mkdir -p debian/tmp/pkg/openoffice.org-math/$(OODIR)/share/registry/modules/org/openoffice/Office/Common/
+	mv  debian/tmp/pkg/openoffice.org-common/$(OODIR)/share/registry/modules/org/openoffice/Office/Common/Common-math.xcu \
+	debian/tmp/pkg/openoffice.org-math/$(OODIR)/share/registry/modules/org/openoffice/Office/Common/Common-math.xcu
+
+	install -m755 ubuntu/ooo87965.execute.sh debian/tmp/pkg/openoffice.org-common/$(OODIR)/program
+
+	find debian/tmp ! -perm -200 | xargs -r chmod u+w
+
+	touch $@
+
+#
+# Generate maintainer scripts
+maintscripts: $(STAMP_DIR)/maintscripts
+$(STAMP_DIR)/maintscripts: debian/shell-lib.sh $(wildcard debian/*.preinst.in) $(wildcard debian/*.postinst.in) $(wildcard debian/*.prerm.in) $(wildcard debian/*.postrm.in) debian/scripts/vars.$(ARCH) debian/control
+	dh_testdir
+
+	rm -f debian/*.{pre,post}{inst,rm}
+
+	# generate maintainer scripts from *.in
+	for PKG in $(PACKAGES); do \
+	  if [ "$(DIST)" = Ubuntu ]; then \
+	    case $$PKG in *l10n-*|*help-*) continue; esac; \
+	  fi; \
+	  for FILE in postinst postrm preinst prerm; do \
+	    MAINTSCRIPT=debian/$$PKG.$$FILE ; \
+	    if [ -e $$MAINTSCRIPT.in ]; then \
+	      sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' < $$MAINTSCRIPT.in | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' > $$MAINTSCRIPT; \
+	      grep LIBSUFFIX debian/scripts/vars.$(ARCH) >> $$MAINTSCRIPT; \
+	      cat debian/shell-lib.sh >> $$MAINTSCRIPT; \
+	      sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' < $$MAINTSCRIPT.in | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >> $$MAINTSCRIPT; \
+	      perl -pi -e "s/\@LANGPACKISOS\@/$(LANGPACKISOS)/" $$MAINTSCRIPT; \
+	      perl -pi -e "s,\@OODIR\@,$(OODIR),g" $$MAINTSCRIPT; \
+	      perl -pi -e "s/\@VER\@/$(VER)/g" $$MAINTSCRIPT; \
+	    fi; \
+	  done; \
+	done
+
+	touch $@
+
+# Install files generated by setup into package directories
+helppacks: $(STAMP_DIR)/helppacks
+$(STAMP_DIR)/helppacks: $(STAMP_DIR)/install ooo-build/bin/openoffice-xlate-lang
+
+ifneq "$(HELPISOS)" ""
+	# we assume here that when we want to build/package help here we want
+	# to do that with en-US anyway...
+	rm -rf $(PKGDIR)-help-en-us $(PKGDIR)-help-en-us.*.debhelper; \
+	cp -r --preserve=mode debian/tmp/pkg/openoffice.org-help-en-us $(PKGDIR)-help-en-us || exit 1
+  ifneq "$(HELPISOS)" "en-US"
+	set -e; \
+	for iso in $(filter-out en-US,$(HELPISOS)); do \
+	  pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \
+	  rm -rf $(PKGDIR)-help-$$pkgiso $(PKGDIR)-help-$$pkgiso.*.debhelper; \
+	  cp -r --preserve=mode debian/tmp/pkg/openoffice.org-help-$$iso \
+		$(PKGDIR)-help-$$pkgiso; \
+	done
+    ifeq (hi-IN,$(findstring hi-IN,$(HELPISOS)))
+	for i in $(PKGDIR)-help-hi-in/$(OODIR)/help/hi-IN/*.css; do \
+	  perl -pi -e 's|(font-family: )(.*)|\1 \"Lohit Hindi\", \2|' $$i; \
+	done
+    endif
+  endif
+endif
+
+	touch $@
+
+# Install files generated by setup into package directories
+langpacks: $(STAMP_DIR)/langpacks
+$(STAMP_DIR)/langpacks: $(STAMP_DIR)/install $(STAMP_DIR)/install-indep ooo-build/bin/openoffice-xlate-lang
+
+	for ext in `echo $(LANGPACKISOS) |tr A-Z a-z` ; do \
+	  rm -rf $(PKGDIR)-l10n-$$ext;\
+	  rm -rf $(PKGDIR)-l10n-$$ext.*.debhelper;\
+	done
+
+	# ... and install the rest of the langpacks
+	for iso in $(LANGPACKISOS); do \
+	  if [ "$$iso" = "en-US" ]; then continue; fi ; \
+	  pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \
+	  rm -rf $(PKGDIR)-l10n-$$pkgiso $(PKGDIR)-l10n-$$pkgiso.*.debhelper; \
+	  cp -r --preserve=mode debian/tmp/pkg/openoffice.org-l10n-$$iso \
+		$(PKGDIR)-l10n-$$pkgiso || exit 1; \
+	done
+
+	# remove empty uno_packages dirs somehow in the langpacks(?)
+	for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/uno_packages; \
+	done
+
+	# remove ooo dirs somehow in the langpacks(?)
+	for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/dict/ooo; \
+	done
+
+	# remove extra license files
+	for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/licenses; \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/readme/LICENSE*; \
+	done
+
+	# remove extra readme files
+	for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/readmes; \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/share/readme/README*; \
+	done
+
+	# remove empty help directories
+	for iso in `echo $(LANGPACKISOS) | tr A-Z a-z`; do \
+		rm -rf $(PKGDIR)-l10n-$$iso/$(OODIR)/help; \
+	done
+
+	# replace duplicate files in the langpacks with symlinks
+	fdupes --quiet --recurse --sameline --size \
+		debian/openoffice.org$(VER)-common/$(OODIR) \
+		$(foreach d,$(shell echo $(filter-out en-US,$(LANGPACKISOS)) | tr A-Z a-z),debian/openoffice.org$(VER)-l10n-$(d)/$(OODIR)) \
+		> l10n.fdupes
+	debian/scripts/cleandupes --base=openoffice.org$(VER) --prefix=debian < l10n.fdupes
+
+ifeq "$(DIST)" "Ubuntu"
+	# install Ubuntu templates
+	otps=`cd ubuntu; echo *.otp`; \
+	for iso in $(LANGPACKISOS); do \
+	  [ "$$iso" = "en-US" ] && continue; \
+	  pkgiso=`echo $$iso | tr \[:upper:\] \[:lower:\]`; \
+	  mkdir -p $(PKGDIR)-l10n-$$pkgiso/$(OODIR)/share/template/$$iso/presnt; \
+	  for otp in $$otps; do \
+	    ln -sf ../../en-US/presnt/$$otp \
+	      $(PKGDIR)-l10n-$$pkgiso/$(OODIR)/share/template/$$iso/presnt/$$odt; \
+	  done; \
+	done
+endif
+
+	touch $@
+
+native-jars: $(STAMP_NATIVE_JARS)
+$(STAMP_NATIVE_JARS): $(STAMP_DIR)/install
+	rm -rf debian/tmp/native-jars
+	mkdir -p debian/tmp/native-jars/gcj
+	cp -a \
+	    debian/tmp/pkg/openoffice.org-common/$(OODIR)/program/classes/*.jar \
+		debian/tmp/native-jars/
+	cp -a \
+	    debian/tmp/pkg/openoffice.org-core/usr/share/java/$(OODIRNAME)/*.jar \
+	        debian/tmp/native-jars/
+	cp -a \
+	    debian/tmp/pkg/openoffice.org-base/usr/share/java/$(OODIRNAME)/*.jar \
+	        debian/tmp/native-jars/
+ifeq "$(PACKAGE_WRITER2LATEX)" "y"
+	cp -a \
+	    debian/tmp/pkg/openoffice.org-writer/$(OODIR)/program/classes/*.jar \
+	        debian/tmp/native-jars
+endif
+	: # remove problematic ones
+	rm -f debian/tmp/native-jars/ridl.jar
+	: # compile the others
+ifneq "$(ETCH_BACKPORT)" "y"
+	# the Debian i386 buildd, although having much ram still OOMs without
+	# this (at unoil.jar).
+	# Also the native jar build is MUCH faster with this. But it
+	# won't be accepted into the official java-gcj-compat package so this
+	# hack here is needed.
+	if [ -e /usr/share/pyshared/aotcompile.py ]; then \
+		aotcompile_py=/usr/share/pyshared/aotcompile.py; \
+	else \
+		aotcompile_py=/usr/share/pycentral/java-gcj-compat-dev/site-packages/aotcompile.py; \
+	fi && \
+	cp $$aotcompile_py debian/scripts
+	cd debian/scripts && \
+		patch -p0 < $(CURDIR)/debian/aotcompile-256M-default.diff
+	PYTHONPATH="debian/scripts:$(shell echo $(PYTHON_SITE) | sed -e s,debian/python-uno,,)" \
+	AOT_MAKEFLAGS=-j$(NUM_CPUS) aot-compile -L /usr/lib/gcj/openoffice \
+	    debian/tmp/native-jars debian/tmp/native-jars/gcj
+else
+	AOT_MAKEFLAGS=-j$(NUM_CPUS) aot-compile -L /usr/lib/gcj/openoffice \
+	    debian/tmp/native-jars debian/tmp/native-jars/gcj
+endif
+	$(GCJ_DBTOOL) -n debian/tmp/native-jars/tmp.db 64
+	find debian/tmp/native-jars/gcj -name '*.db' -print0 \
+	    | xargs -r -0 \
+		$(GCJ_DBTOOL) -m debian/tmp/native-jars/tmp.db debian/tmp/native-jars/tmp.db || exit 1
+	rm -f debian/tmp/native-jars/gcj/*.db
+	touch $@
+
+# Install files generated by setup into arch-dependent package directories
+install-arch: $(STAMP_DIR)/install-arch
+$(STAMP_DIR)/install-arch: $(STAMP_DIR)/install $(STAMP_NATIVE_JARS)
+	dh_testdir
+	dh_testroot
+	umask 022
+
+	# Copy files placed by ooo-build/bin/package-ooo
+	for i in base calc core draw impress math writer gnome dev headless; do \
+	  rm -rf $(PKGDIR)-$$i $(PKGDIR)-$$i.*.debhelper ;\
+	  cp -r --preserve=mode debian/tmp/pkg/openoffice.org-$$i $(PKGDIR)-$$i || exit 1;\
+	done
+
+ifeq "$(BUILD_BINFILTERS)" "y"
+	rm -rf $(PKGDIR)-filter-binfilter $(PKGDIR)-filter-binfilter.*.debhelper
+	cp -r --preserve=mode debian/tmp/pkg/openoffice.org-filter-binfilter $(PKGDIR)-filter-binfilter || exit 1
+endif
+
+ifeq "$(PACKAGE_URE)" "y"
+	rm -rf debian/ure debian/ure.*.debhelper ;\
+	cp -r --preserve=mode debian/tmp/pkg/ure debian/ure || exit 1
+	# not needed
+	rm -f debian/ure/usr/lib/ure/LICENSE
+	rm -f debian/ure/usr/lib/ure/THIRDPARTYLICENSEREADME.html
+	# should go into /usr/share/doc
+	mkdir -p debian/ure/usr/share/doc/ure
+	mv debian/ure/usr/lib/ure/README debian/ure/usr/share/doc/ure
+endif
+
+	rm -rf debian/mozilla-openoffice.org debian/mozilla-openoffice.org.*.debhelper
+	rm -rf $(PKGDIR) $(PKGDIR).*.debhelper
+	rm -rf $(PKGDIR)-evolution $(PKGDIR)-evolution.*.debhelper
+ifeq "$(BUILD_KDE)" "y"
+	rm -rf $(PKGDIR)-kde $(PKGDIR)-kde.*.debhelper
+endif
+
+	dh_installdirs -a
+
+ifeq "$(BUILD_KDE)" "y"
+	mkdir -p -m755 $(PKGDIR)-kde/$(OODIR)/program
+	for f in kdefilepicker fps_kde.uno.so libvclplug_kde[0-9]*.so libkab*so kdebe*so; do \
+	  mv $(PKGDIR)-core/$(OODIR)/program/$$f $(PKGDIR)-kde/$(OODIR)/program || exit 1 ;\
+	done
+endif
+
+	# move the GNOME stuff which are *not* in gid_Module_Optional_Gnome
+	# (which is moved into -gnome in package-ooo) into -gnome
+	mkdir -p -m755 $(PKGDIR)-gnome/$(OODIR)/program
+	for f in gnome-open-url.bin fps_gnome.uno.so libvclplug_gtk[0-9]*.so; do \
+	  mv $(PKGDIR)-core/$(OODIR)/program/$$f $(PKGDIR)-gnome/$(OODIR)/program || exit 1;\
+	done
+	for f in libeggtray* libqstart_gtk*; do \
+	  mv $(PKGDIR)-core/$(OODIR)/program/$$f $(PKGDIR)-gnome/$(OODIR)/program || exit 1;\
+	done
+
+	# split out gtk stuff
+	rm -rf $(PKGDIR)-gtk
+	mkdir -p -m755 $(PKGDIR)-gtk/$(OODIR)/program
+	mv $(PKGDIR)-gnome/$(OODIR)/program/* $(PKGDIR)-gtk/$(OODIR)/program/
+	mkdir -p -m755 $(PKGDIR)-gtk/$(OODIR)/share
+	mv $(PKGDIR)-gnome/$(OODIR)/share/xdg $(PKGDIR)-gtk/$(OODIR)/share
+	mv $(PKGDIR)-gtk/$(OODIR)/program/ucpgvfs1.uno.so \
+		$(PKGDIR)-gnome/$(OODIR)/program/
+	mv $(PKGDIR)-gtk/$(OODIR)/program/gnome-set-default-application \
+		$(PKGDIR)-gnome/$(OODIR)/program/
+	mv $(PKGDIR)-gtk/$(OODIR)/program/gconfbe* \
+		$(PKGDIR)-gnome/$(OODIR)/program
+
+	mkdir -p -m755 $(PKGDIR)-evolution/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/libevoab2.so $(PKGDIR)-evolution/$(OODIR)/program
+
+ifeq "$(PACKAGE_NPSOPLUGIN)" "y"
+	mkdir -p -m755 debian/mozilla-openoffice.org/$(OODIR)/program
+	for f in libnpsoplugin.so nsplugin; do \
+		mv $(PKGDIR)-core/$(OODIR)/program/$$f debian/mozilla-openoffice.org/$(OODIR)/program; \
+	done
+	cd debian/mozilla-openoffice.org && \
+		for b in iceape iceweasel mozilla mozilla-firefox firefox; do \
+			mkdir -p usr/lib/$$b/plugins && \
+				ln -sf /$(OODIR)/program/libnpsoplugin.so \
+				   usr/lib/$$b/plugins/libnpsoplugin.so; \
+		done
+else
+	rm -f $(PKGDIR)-core/$(OODIR)/program/libnpsoplugin.so
+	rm -f $(PKGDIR)-core/$(OODIR)/program/nsplugin
+endif
+
+	# OOo's package split sucks...
+	mv $(PKGDIR)-core/$(OODIR)/program/libsw* \
+		$(PKGDIR)-writer/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/libsd6* \
+	   $(PKGDIR)-core/$(OODIR)/program/libsdd* \
+	   $(PKGDIR)-core/$(OODIR)/program/libsdui* \
+		$(PKGDIR)-draw/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/slideshow.uno.so \
+		$(PKGDIR)-impress/$(OODIR)/program
+	mkdir -p -m755 $(PKGDIR)-base/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/libdba* \
+		$(PKGDIR)-base/$(OODIR)/program
+	# except for libdba680l?.so itself
+	rm -rf $(PKGDIR)-base-core
+	mkdir -p $(PKGDIR)-base-core/$(OODIR)/program
+	mv $(PKGDIR)-base/$(OODIR)/program/libdba680l?.so \
+		 $(PKGDIR)-base-core/$(OODIR)/program
+	for i in odbcbase2 dbpool2 jdbc2 odbc2 sdbc2 mysql2 adabas2; do \
+		mv $(PKGDIR)-core/$(OODIR)/program/lib$$i* \
+		   $(PKGDIR)-base/$(OODIR)/program; \
+	done
+ifeq "$(ENABLE_JAVA)" "y"
+	for i in jdbc2 hsqldb2; do \
+		mv $(PKGDIR)-core/$(OODIR)/program/lib$$i* \
+		   $(PKGDIR)-base/$(OODIR)/program; \
+	done
+endif
+	mv $(PKGDIR)-core/$(OODIR)/program/libflat*so \
+		$(PKGDIR)-base/$(OODIR)/program; \
+
+	# move vba stuff into -calc, they are calc-only and linked to
+	# libsc*
+	for i in libvbaobj vbaevents; do \
+		mv $(PKGDIR)-core/$(OODIR)/program/$$i*uno.so \
+			$(PKGDIR)-calc/$(OODIR)/program; \
+	done
+ifeq "$(ENABLE_SCSOLVER)" "y"
+	mv $(PKGDIR)-core/$(OODIR)/program/scsolver.uno.so \
+		$(PKGDIR)-calc/$(OODIR)/program
+  ifneq "$(USE_SYSTEM_LPSOLVE)" "y"
+	mv $(PKGDIR)-core/$(OODIR)/program/liblpsolve55.so \
+		$(PKGDIR)-calc/$(OODIR)/program
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(USE_SYSTEM_HSQLDB)" "y"
+	# link to system hsqldb
+	ln -sf /usr/share/java/hsqldb.jar \
+	        $(PKGDIR)-base/$(OODIR)/program/classes/hsqldb.jar
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+	rm -rf $(PKGDIR)-officebean
+	mkdir -p -m755 $(PKGDIR)-officebean/$(OODIR)/program/classes
+	mkdir -p -m755 $(PKGDIR)-officebean/usr/share/java
+	mv $(PKGDIR)-core/usr/share/java/$(OODIRNAME) \
+		$(PKGDIR)-officebean/usr/share/java
+	ln -s /usr/share/java/$(OODIRNAME)/officebean.jar \
+		 $(PKGDIR)-officebean/$(OODIR)/program/classes/officebean.jar
+	mv $(PKGDIR)-core/$(OODIR)/program/libofficebean.so \
+		$(PKGDIR)-officebean/$(OODIR)/program
+endif
+
+	mkdir -p -m755 $(PKGDIR)-base/usr/share/applications \
+	               $(PKGDIR)-core/usr/share/applications
+
+ifeq "$(PACKAGE_QA_TOOLS)" "y"
+	mkdir -p -m755 $(PKGDIR)-qa-tools/usr/bin
+	install -m755 $(SOURCE_TREE)/ootestapi $(PKGDIR)-qa-tools/usr/bin
+	install -m755 $(SOURCE_TREE)/ootesttool $(PKGDIR)-qa-tools/usr/bin
+	install -m755 $(SOURCE_TREE)/oosmoketest $(PKGDIR)-qa-tools/usr/bin
+
+	mkdir -p -m755 $(PKGDIR)-qa-tools/$(OODIR)/program
+	for f in testtool.bin libcommuni* libsimplecm*; do \
+		mv $(PKGDIR)-core/$(OODIR)/program/$$f $(PKGDIR)-qa-tools/$(OODIR)/program; \
+	done
+
+  ifeq "$(ENABLE_JAVA)" "y"
+	mkdir -p -m755 $(PKGDIR)-qa-tools/usr/share/java/$(OODIRNAME)
+	cp $(SOURCE_TREE)/qadevOOo/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/class/OOoRunnerLight.jar \
+		$(PKGDIR)-qa-tools/usr/share/java/$(OODIRNAME)
+  endif
+
+	mkdir -p -m755 $(PKGDIR)-qa-tools/$(OODIR)/smoketest
+	install -m755 $(SOURCE_TREE)/smoketestoo_native/smoketest.pl \
+		$(SOURCE_TREE)/smoketestoo_native/testlog.pl \
+		$(PKGDIR)-qa-tools/$(OODIR)/smoketest
+
+	mkdir -p -m755 $(PKGDIR)-qa-tools/$(OODIR)/presets/basic/Standard
+	install -m644 $(SOURCE_TREE)/smoketestoo_native/data/scripts/*.x* \
+		$(PKGDIR)-qa-tools/$(OODIR)/presets/basic/Standard
+
+	mv $(PKGDIR)-core/$(OODIR)/program/testtoolrc \
+		$(PKGDIR)-qa-tools/$(OODIR)/program && \
+	chmod 644 $(PKGDIR)-qa-tools/$(OODIR)/program/testtoolrc
+else
+	rm -f $(PKGDIR)-core/$(OODIR)/program/testtool.bin
+	rm -f $(PKGDIR)-core/$(OODIR)/program/libcommuni*
+	rm -f $(PKGDIR)-core/$(OODIR)/program/libsimplecm*
+	rm -f $(PKGDIR)-common/$(OODIR)/program/testtoolrc
+endif
+
+ifeq "$(USE_OOO_BUILD_DESKTOPS)" "n"
+	# menu files from sysui
+	dirname="`cd $(SOURCE_TREE)/sysui/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/misc/desktopshare >/dev/null; pwd`" ;\
+	for p in writer calc impress draw math base; do \
+		mkdir -p -m755 $(PKGDIR)-$$p/usr/share/applications ;\
+		sed -e 's,Exec=$${UNIXPRODUCTNAME}$${PRODUCTVERSION} \(.*\) %U,Exec=ooffice$(VER) \1 %U,' \
+		    -e 's,Icon=$${WITHOUTDOTUNIXPRODUCTNAME}[0123456789]\+,Icon=ooo,' \
+		    -e 's,Name=$${PRODUCTNAME} $${PRODUCTVERSION},Name=OpenOffice.org $(VER),' \
+		    -e 's/  / /' \
+		   < $$dirname/$$p.desktop \
+		   > $(PKGDIR)-$$p/usr/share/applications/ooo$(VER)-$$p.desktop || exit 1 ;\
+	done
+
+	# qstart.desktop is different to the above. Should be handled by
+	# --with-unix-wrapper of ooo-build but that somehow doesn't work as
+	# expected. FIXME.
+	PRODUCTVERSION=`grep PRODUCTVERSION $(SOURCE_TREE)/sysui/desktop/productversion.mk | head -n 1 | cut -d"=" -f2 | sed -e s/\ //g`; \
+	sed -i -e "s,Exec=openoffice.org$$PRODUCTVERSION,Exec=ooffice$(VER)," \
+		-e "s,Name=OpenOffice.org $$PRODUCTVERSION,Name=OpenOffice.org $(VER)," \
+		-e "s/  / /" \
+		$(PKGDIR)-gtk/$(OODIR)/share/xdg/qstart.desktop
+	# we don't need the share/xdgs except qstart
+	for f in `find debian -name '*.desktop' | grep xdg | grep -v qstart`; do \
+		rm -f $$f; done
+	for f in `find debian -name '*.desktop'`; do \
+		sed -i -e '/^Comment\[de\]/s/- *\([a-zA-Z0-9]*\) *macht.*glich.*$$/mit \1/' $$f; \
+		if ! grep -q X-KDE-Protocols $$f; then \
+			echo 'X-KDE-Protocols=file,http,smb,ftp,webdav' >> $$f; \
+		fi; \
+	done
+	sed -i -e 's,;application/rtf,;application/rtf;text/rtf,' \
+		$(PKGDIR)-writer/usr/share/applications/ooo$(VER)-writer.desktop
+	sed -i -e 's/Office;/Office;Graphics;/' $(PKGDIR)-draw/usr/share/applications/ooo$(VER)-draw.desktop
+	# invalid, according to lintian. make it shut up.
+	for i in writer calc impress draw math base; do \
+		perl -pi -e 's/Application;//; s/X-Red-Hat-Base;//; s/X-SuSE-Core-Office;//; s/X-MandrivaLinux-.*;//;' $(PKGDIR)-$$i/usr/share/applications/ooo$(VER)-$$i.desktop; \
+	done
+	perl -pi -e 's/Application;//' $(PKGDIR)-gtk/$(OODIR)/share/xdg/qstart.desktop
+else
+	# menu files from ooo-build/desktop
+	for p in writer calc impress draw math base; do \
+		mkdir -p -m755 $(PKGDIR)-$$p/usr/share/applications ;\
+			sed -e '/^TryExec=.*/d' \
+			    -e "s,^Exec=.*,Exec=ooffice$(VER) -$$p %U," \
+			    -e "s,^Icon=.*,Icon=ooo-$$p," \
+			    -e '/^Name=/s,  , ,' \
+			    -e 's/@STARTUPNOTIFY@/true/' \
+			    -e '/^Categories/s/Office/Application;Office/' \
+				ooo-build/desktop/$$p.desktop \
+				> $(PKGDIR)-$$p/usr/share/applications/ooo$(VER)-$$p.desktop || exit 1 ;\
+	done
+endif
+	# add version to .menu and .overrides.lintian
+	ICONVERSION=`grep PRODUCTVERSION $(SOURCE_TREE)/sysui/desktop/productversion.mk | head -n 1 | cut -d"=" -f2 | sed -e s/\ //g | sed -e s/\\\.//`; \
+	for i in base calc draw impress math writer; do \
+		cat debian/openoffice.org$(VER)-$$i.menu.in \
+			| sed -e s/@ICONVERSION@/$$ICONVERSION/ \
+			> debian/openoffice.org$(VER)-$$i.menu; \
+		cat debian/openoffice.org$(VER)-$$i.overrides.lintian.in \
+			| sed -e s/@ICONVERSION@/$$ICONVERSION/ \
+			> debian/openoffice.org$(VER)-$$i.overrides.lintian; \
+	done
+
+ifeq "$(BUILD_PYUNO)" "y"
+	# PyUNO packaging
+	rm -rf debian/python-uno debian/python-uno.*.debhelper
+	cp -r --preserve=mode debian/tmp/pkg/python-uno debian/python-uno
+
+	install -d $(PYTHON_SITE)
+	mv debian/python-uno/$(OODIR)/program/uno.py $(PYTHON_SITE)
+	mv debian/python-uno/$(OODIR)/program/unohelper.py $(PYTHON_SITE)
+	mv debian/python-uno/$(OODIR)/program/pythonloader.py $(PYTHON_SITE)
+	mv debian/python-uno/$(OODIR)/program/pythonscript.py $(PYTHON_SITE)
+	mv debian/python-uno/$(OODIR)/program/pyuno.so $(PYTHON_SITE)
+	touch debian/python-uno/$(OODIR)/program/pythonloader.unorc
+	chmod u+w debian/python-uno/$(OODIR)/program/pythonloader.unorc
+	( echo '[Bootstrap]'; \
+	  echo 'PYTHONHOME=file:///usr/lib/python$(PYMAJOR).$(PYMINOR)' ;\
+	  echo 'PYTHONPATH=$$PYTHONHOME $$PYTHONHOME/site-packages $$PYTHONHOME/lib-dynload $$PYTHONHOME/lib-tk $$ORIGIN' \
+	) > debian/python-uno/$(OODIR)/program/pythonloader.unorc
+	chmod u-w debian/python-uno/$(OODIR)/program/pythonloader.unorc
+	chmod 755 debian/python-uno/$(OODIR)/program/mailmerge.py
+	perl -pi -e 's,/bin,/usr/bin,' \
+		 debian/python-uno/$(OODIR)/program/mailmerge.py
+
+	mkdir -p debian/python-uno/usr/share/doc/python-uno
+	for i in doc demo; do \
+		cp -r $(SOURCE_TREE)/pyuno/$$i \
+		  debian/python-uno/usr/share/doc/python-uno; \
+	done
+	cd debian/python-uno/usr/share/doc/python-uno && \
+		find . -type d -name "CVS" | xargs -r rm -rf
+endif
+
+ifeq "$(ENABLE_MONO)" "y"
+	# Mono bindings
+	mkdir -p -m755 debian/libuno-cil/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/libcli* \
+		debian/libuno-cil/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/cli_*.dll \
+		debian/libuno-cil/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/cli_*.config \
+		debian/libuno-cil/$(OODIR)/program
+	mkdir -p debian/libuno-cil/usr/lib/mono
+	mkdir -p debian/libuno-cil/usr/lib/pkgconfig
+	cat debian/tmp/usr/lib/pkgconfig/mono-$(OODIRNAME).pc \
+		| sed -e s,/usr/lib/mono/openoffice,/$(OODIR)/program,g \
+		> debian/libuno-cil/usr/lib/pkgconfig/mono-$(OODIRNAME).pc
+endif
+
+ifeq "$(PACKAGE_SDK)" "y"
+  ifeq "$(USE_SYSTEM_STLPORT)" "y"
+	# when we use external stlport, we just can and should do a symlink
+	# for the SDK includes
+	cd $(PKGDIR)-dev/usr/include/$(OODIRNAME) && \
+		rm -rf stl && ln -s /usr/include/stlport stl
+  endif
+  ifeq "$(ENABLE_JAVA)" "y"
+	# move SDK Java stuff into /usr/share/java/openoffice
+	rm -f $(PKGDIR)-dev/$(OODIR)/sdk/classes
+	mkdir -p $(PKGDIR)-dev/usr/share/java/$(OODIRNAME)/win
+	mkdir -p $(PKGDIR)-dev/usr/share/java/$(OODIRNAME)/com/sun/star/lib/loader
+	mkdir -p $(PKGDIR)-dev/$(OODIR)/sdk/classes/com/sun/star/lib/loader
+	mv $(PKGDIR)-dev/usr/share/openoffice/sdk/classes/com/sun/star/lib/loader/* \
+		$(PKGDIR)-dev/usr/share/java/$(OODIRNAME)/com/sun/star/lib/loader && \
+	mv $(PKGDIR)-dev/usr/share/openoffice/sdk/classes/win \
+		$(PKGDIR)-dev/$(OODIR)/sdk/classes
+	chmod 644 $(PKGDIR)-dev/$(OODIR)/sdk/classes/win/unowinreg.dll
+	cd $(PKGDIR)-dev/$(OODIR)/sdk/classes/com/sun/star/lib/loader && \
+		for i in $(CURDIR)/$(PKGDIR)-dev/usr/share/java/$(OODIRNAME)/com/sun/star/lib/loader/*.class; do \
+			ln -s `echo $$i | sed -e 's,$(CURDIR)/$(PKGDIR)-dev,,'` `basename $$i`; \
+		done
+	rm -rf $(PKGDIR)-dev/usr/share/openoffice/sdk
+  endif
+	chmod 644 $(PKGDIR)-dev/$(OODIR)/sdk/configure.pl
+	for i in csh csh.in; do \
+		perl -pi -e 's,/usr/bin/csh,/bin/csh,'\
+			$(PKGDIR)-dev/$(OODIR)/sdk/setsdkenv_unix.$$i; \
+	done
+	# create wrapper scripts
+	cd $(PKGDIR)-dev/$(OODIR)/sdk/$(OS)/bin && \
+	for i in *; do \
+		if [ "$$i" = "regcomp" -o "$$i" = "regcomp.bin" ]; then \
+			continue; \
+		fi; \
+		mv $$i $$i.bin && \
+		( \
+		  echo "#!/bin/sh"; \
+		  echo "# wrapper script for OOos SDK programs"; \
+		  echo ""; \
+		  echo 'LD_LIBRARY_PATH=/$(OODIR)/program /$(OODIR)/sdk/$(OS)/bin/`basename $$0`.bin "$$@"'; \
+		) > $$i; \
+		chmod 755 $$i; \
+	done && \
+	( \
+	  echo "#!/bin/sh"; \
+	  echo "# wrapper script for OOos SDK programs"; \
+	  echo ""; \
+	  echo 'LD_LIBRARY_PATH=/$(OODIR)/program /$(OODIR)/sdk/$(OS)/bin/`basename $$0`.bin "$$@"'; \
+	) > regcomp; \
+	chmod 755 regcomp
+        # remove symlink, it should be in -dev-doc
+	cd $(PKGDIR)-dev/$(OODIR)/sdk && \
+		rm docs
+
+	# install gsicheck into -dev
+	install -m755 $(SOURCE_TREE)/solver/$(shell . $(SOURCE_TREE)/*.sh; echo $$UPD/$$OUTPATH$$PROEXT)/bin/gsicheck \
+		$(PKGDIR)-dev/$(OODIR)/program/gsicheck.bin
+	( \
+	  echo '#! /bin/sh'; \
+	  echo 'LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}/$(OODIR)/program'; \
+	  echo 'export LD_LIBRARY_PATH'; \
+	  echo 'exec /$(OODIR)/program/gsicheck.bin "$$@"'; \
+	) > $(PKGDIR)-dev/$(OODIR)/program/gsicheck
+	chmod 755 $(PKGDIR)-dev/$(OODIR)/program/gsicheck
+endif
+
+ifeq "$(INTERNAL_STDLIBS)" "y"
+	# we have to do this manually; specifying --without-system-stdlibs
+	# won't work because the odering of the configure arguments...
+	LIBSTDCPP=`readlink `PATH=$(BUILD_PATH) g++ --print-file-name=libstdc++.so``; \
+	LIBGCC=`readlink `PATH=$(BUILD_PATH) gcc --print-file-name=libgcc_s.so``; \
+	LIBSTDCPP_SOVER=`echo $$LIBSTDCPP | sed -e 's/.*\.//'`; \
+	LIBGCC_SOVER=`echo $$LIBGCC | sed -e 's/.*\.//'`; \
+	cp $$LIBSTDCPP $(PKGDIR)-core/$(OODIR)/program; \
+	cp $$LIBGCC $(PKGDIR)-core/$(OODIR)/program; \
+	echo "libstdc++	$$LIBSTDCPP_SOVER" > debian/shlibs.override.stdlibs; \
+	echo "libgcc_s	$$LIBGCC_SOVER" >> debian/shlibs.override.stdlibs
+endif
+ifeq "$(USE_STLPORT)" "y"
+  ifeq "$(USE_SYSTEM_STLPORT)" "y"
+	rm -f $(PKGDIR)-core/$(OODIR)/program/libstlport*
+	ln -s `readlink -f /usr/lib/libstlport_gcc.so` \
+		debian/openoffice.org$(VER)-core/$(OODIR)/program/libstlport_gcc.so
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(BUILD_JARS_NATIVE)" "y"
+    ifneq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+	rm -rf $(PKGDIR)-gcj/usr/lib/gcj
+	mkdir -p $(PKGDIR)-gcj/usr/lib/gcj/openoffice
+	cp -p debian/tmp/native-jars/gcj/* $(PKGDIR)-gcj/usr/lib/gcj/openoffice
+	mkdir -p $(PKGDIR)-gcj/usr/share/gcj/classmap.d
+	cp -p debian/tmp/native-jars/tmp.db \
+		$(PKGDIR)-gcj/usr/share/gcj/classmap.d/openoffice.org.db
+    endif
+  endif
+endif
+
+ifneq "$(USE_COMMON_DOCDIR)" "y"
+	# install some docs.
+	mkdir -p $(PKGDIR)-base/usr/share/doc/openoffice.org$(VER)-base
+	cp ooo-build/doc/using-mysql-databases.txt \
+		$(PKGDIR)-base/usr/share/doc/openoffice.org$(VER)-base
+	cp ooo-build/doc/data-from-remote-mysql-server.txt \
+		$(PKGDIR)-base/usr/share/doc/openoffice.org$(VER)-base
+else
+	# install some docs (docdir of the -core package). 
+	mkdir -p $(PKGDIR)-base/usr/share/doc/openoffice.org$(VER)-core
+	cp ooo-build/doc/using-mysql-databases.txt \
+		$(PKGDIR)-base/usr/share/doc/openoffice.org$(VER)-core
+	cp ooo-build/doc/data-from-remote-mysql-server.txt \
+		$(PKGDIR)-base/usr/share/doc/openoffice.org$(VER)-core
+endif
+
+ifeq "$(USE_COMMON_DOCDIR)" "y"
+	# README symlinks from -core -> -common
+	mkdir -p $(PKGDIR)-core/usr/share/doc/openoffice.org$(VER)-core
+	ln -sf ../openoffice.org$(VER)-common/README.gz \
+		$(PKGDIR)-core/usr/share/doc/openoffice.org$(VER)-core/README.gz
+	ln -sf ../openoffice.org$(VER)-common/README.html \
+		$(PKGDIR)-core/usr/share/doc/openoffice.org$(VER)-core/README.html
+endif
+
+ifneq "$(USE_EXTERNAL_MYTHES)" "y"
+	# install libmythes and th_gen_idx.pl (on archs where we build OOo)
+	rm -rf debian/libmythes-dev
+	mkdir -p debian/libmythes-dev/usr/lib
+	mkdir -p debian/libmythes-dev/usr/include
+	mkdir -p debian/libmythes-dev/usr/share/mythes
+	install -m644 \
+		$(SOURCE_TREE)/lingucomponent/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/lib/libmythes.a \
+		debian/libmythes-dev/usr/lib/libmythes_pic.a
+	install -m644 \
+		$(SOURCE_TREE)/libmythes_nopic.a \
+		debian/libmythes-dev/usr/lib/libmythes.a
+	install -m644 $(SOURCE_TREE)/lingucomponent/source/thesaurus/mythes/mythes.hxx \
+		debian/libmythes-dev/usr/include
+	install -m755 $(SOURCE_TREE)/dictionaries/util/th_gen_idx.pl \
+		debian/libmythes-dev/usr/share/mythes/th_gen_idx.pl
+endif
+
+ifeq "$(PACKAGE_SDK)" "y"
+  ifeq "$(ENABLE_JAVA)" "y"
+	# install the UNO Java sources for e.g. eclipse
+	mkdir -p $(CURDIR)/$(PKGDIR)-dev/usr/share/java/$(OODIRNAME)
+	cd $(SOURCE_TREE)/solver/$(shell . $(SOURCE_TREE)/*.sh; echo $$UPD)/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/bin && \
+		for i in juh jurt jut ridl unoloader; do \
+			cp $${i}_src.zip \
+			  $(CURDIR)/$(PKGDIR)-dev/usr/share/java/openoffice; \
+		done
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+	# hrmpf, again something like that, we really need to find the root cause for that
+	ln -s libjava_uno.so \
+		$(PKGDIR)-base/$(OODIR)/program/libjava_uno
+endif
+
+	# move impressgraphics filter stuff into -impress
+	mkdir -p $(PKGDIR)-draw/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Types
+	mkdir -p $(PKGDIR)-draw/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Filter
+	mv $(PKGDIR)-draw/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Types/fcfg_impressgraphics_types.xcu \
+	  $(PKGDIR)-impress/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Types
+	mv $(PKGDIR)-draw/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_impressgraphics_filters.xcu \
+	  $(PKGDIR)-impress/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Filter
+
+ifeq "$(ENABLE_JAVA)" "y"
+  ifeq "$(PACKAGE_WRITER2LATEX)" "y"
+	# move writer2latex.jar into the right dir
+	mkdir -p $(PKGDIR)-writer/usr/share/java/$(OODIRNAME)
+	mv $(PKGDIR)-writer/$(OODIR)/program/classes/writer2latex.jar \
+		$(PKGDIR)-writer/usr/share/java/$(OODIRNAME) && \
+	ln -s /usr/share/java/$(OODIRNAME)/writer2latex.jar \
+		$(PKGDIR)-writer/$(OODIR)/program/classes/writer2latex.jar
+  endif
+endif
+
+	# remove empty resource directories
+	for i in draw base writer impress calc math; do \
+		rm -rf $(PKGDIR)-$$i/$(OODIR)/program/resource; \
+	done
+
+ifeq "$(ENABLE_REPORTDESIGN)" "y"
+	# move rpt stuff into -report-builder
+	rm -rf $(PKGDIR)-report-builder
+	mkdir -p $(PKGDIR)-report-builder/$(OODIR)/program
+	mv $(PKGDIR)-base/$(OODIR)/program/librpt* \
+		$(PKGDIR)-report-builder/$(OODIR)/program
+  ifeq "$(ENABLE_JAVA)" "y"
+	# install this; we need to register this ourselved later in
+	# the maintainer scripts. This is intended upstream (**rpt* stuff
+	# in 2.3 and the actual report builde as an extension, without which
+	# the *rpt* stuff is a no-op.
+	install -D -m644 $(SOURCE_TREE)/reportdesign/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/bin/sun-report-builder.oxt \
+		$(PKGDIR)-report-builder/$(OODIR)/share/extension/install/sun-report-builder.oxt
+	# unneeded license files
+	for i in THIRDPARTYREADMELICENSE.html license_en-US.html readme_en-US.html readme_en-US.txt; do \
+		zip -d $(CURDIR)/$(PKGDIR)-report-builder/$(OODIR)/share/extension/install/sun-report-builder.oxt $$i; \
+	done
+  endif
+endif
+
+	rm -rf $(PKGDIR)-presentation-minimizer
+	install -D -m644 $(SOURCE_TREE)/sdext/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/bin/sun-presentation-minimizer.oxt \
+		$(PKGDIR)-presentation-minimizer/$(OODIR)/share/extension/install/sun-presentation-minimizer.oxt
+
+	rm -rf $(PKGDIR)-sdbc-postgresql
+	install -D -m644 $(SOURCE_TREE)/connectivity/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/lib/postgresql-sdbc-$(shell grep ^PQ_SDBC_M $(SOURCE_TREE)/connectivity/source/drivers/postgresql/makefile.mk | cut -d"=" -f2 | xargs | sed -e s/\ /\./g).zip \
+		$(PKGDIR)-sdbc-postgresql/$(OODIR)/share/extension/install/postgresql-sdbc-$(shell grep ^PQ_SDBC_M $(SOURCE_TREE)/connectivity/source/drivers/postgresql/makefile.mk | cut -d"=" -f2 | xargs | sed -e s/\ /\./g).zip
+
+ifeq "$(ENABLE_OPENGL)" "y"
+	rm -rf $(PKGDIR)-ogltrans
+	mkdir -p $(PKGDIR)-ogltrans/$(OODIR)/program
+	mv $(PKGDIR)-core/$(OODIR)/program/OGLTrans.uno.so \
+		$(PKGDIR)-ogltrans/$(OODIR)/program
+	mkdir -p $(PKGDIR)-ogltrans/$(OODIR)/share/config/soffice.cfg/simpress/
+	mv $(PKGDIR)-impress/$(OODIR)/share/config/soffice.cfg/simpress/transitions-ogl.xml \
+		$(PKGDIR)-ogltrans/$(OODIR)/share/config/soffice.cfg/simpress/transitions-ogl.xml
+endif
+
+	for i in $(ARCH_DEP_PACKAGES); do \
+		install -D -m644 debian/presubj \
+			debian/$$i/usr/share/bug/$$i/presubj; \
+		if [ -e debian/$$i.control.bug ]; then \
+			install -D -m644 debian/$$i.control.bug \
+				debian/$$i/usr/share/bug/$$i/control; \
+		fi ;\
+		if [ -e debian/$$i.script.bug ]; then \
+			install -D -m755 debian/$$i.script.bug \
+				debian/$$i/usr/share/bug/$$i/script; \
+		fi ;\
+	done
+
+	touch $@
+
+broffice: $(STAMP_DIR)/broffice
+$(STAMP_DIR)/broffice: $(STAMP_DIR)/install $(STAMP_DIR)/install-arch $(STAMP_DIR)/install-indep $(STAMP_DIR)/langpacks
+	dh_testdir
+	dh_testroot
+	
+	# BrOffice.org
+	rm -rf debian/broffice.org
+	mkdir -p debian/broffice.org/usr/bin
+	mkdir -p debian/broffice.org/usr/share/applications
+	mkdir -p debian/broffice.org/usr/share/application-registry
+	mkdir -p debian/broffice.org/usr/lib/openoffice/program/resource
+	mkdir -p debian/broffice.org/usr/lib/openoffice/share/registry/data/org/openoffice
+	cat $(PKGDIR)-common/$(OODIR)/program/bootstraprc \
+		| sed -e "s/OpenO/BrO/" | sed -e "s/openo/bro/" \
+		> debian/broffice.org/$(OODIR)/program/bootstraprc
+	cat $(PKGDIR)-common/$(OODIR)/program/versionrc \
+		| sed -e "s/en-US/pt-BR/" | sed -e "s/openo/bro/" \
+		> debian/broffice.org/$(OODIR)/program/versionrc
+	cat $(PKGDIR)-common/$(OODIR)/share/registry/data/org/openoffice/Setup.xcu \
+		| sed -e "s/OpenO/BrO/" \
+		> debian/broffice.org/$(OODIR)/share/registry/data/org/openoffice/Setup.xcu
+	for iso in $(LANGPACKISOS); do \
+		if [ "$$iso" = "en-US" ]; then p=common; else p=l10n-`echo $$iso | tr A-Z a-z`; fi; \
+		cat $(PKGDIR)-$$p/$(OODIR)/program/resource/ooo$(SRCNUM)$$iso.res \
+		| sed -e "s/OpenO/BrO/" \
+		> debian/broffice.org/$(OODIR)/program/resource/ooo$(SRCNUM)$$iso.res; \
+	done
+	for i in writer calc draw impress math base; do \
+		cat $(PKGDIR)-$$i/usr/share/applications/ooo-$$i.desktop \
+			| sed -e "s/ooff/broff/" | sed -e "s/OpenO/BrO/" \
+			> debian/broffice.org/usr/share/applications/ooo-$$i.desktop; \
+	done
+	cat $(PKGDIR)-common/usr/share/applications/ooo-extension.desktop \
+		| sed -e "s/ooff/broff/" | sed -e "s/OpenO/BrO/" \
+		> debian/broffice.org/usr/share/applications/ooo-extension.desktop
+	cat $(PKGDIR)-common/usr/share/applications/ooo-template.desktop \
+		| sed -e "s/ooff/broff/" | sed -e "s/OpenO/BrO/" \
+		 > debian/broffice.org/usr/share/applications/ooo-template.desktop
+	cat $(PKGDIR)-common/usr/share/application-registry/openoffice.applications \
+		| sed -e "s/ooff/broff/" | sed -e "s/OpenO/BrO/" \
+		 > debian/broffice.org/usr/share/application-registry/openoffice.applications
+	if dpkg-parsechangelog | grep urgency | grep -q "\~.*m[0123456789]\+"; then \
+		 debian/scripts/fix_image_rgb \
+			 $(SOURCE_TREE)/ooo_custom_images/dev_nologo_broffice/introabout/intro.bmp \
+			 debian/broffice.org/$(OODIR)/program/intro.bmp; \
+	else \
+		debian/scripts/fix_image_rgb \
+			$(SOURCE_TREE)/ooo_custom_images/nologo_broffice/introabout/intro.bmp \
+			debian/broffice.org/$(OODIR)/program/intro.bmp; \
+	fi
+	install -m644 $(SOURCE_TREE)/ooo_custom_images/broffice/introabout/about.bmp \
+		debian/broffice.org/$(OODIR)/program/about.bmp
+ifeq "$(DIST)" "Ubuntu"
+	mv debian/broffice.org/$(OODIR)/program/intro.bmp debian/broffice.org/$(OODIR)/program/openintro_ubuntu_sun.bmp
+	mv debian/broffice.org/$(OODIR)/program/about.bmp debian/broffice.org/$(OODIR)/program/openabout_ubuntu_sun.bmp
+endif
+	cd debian/broffice.org/usr/bin && ln -s ooffice broffice
+
+	touch $@
+
+# Install files generated by setup into arch-independent package directories
+install-indep: $(STAMP_DIR)/install-indep
+#$(STAMP_DIR)/install-indep: debian/openoffice.org$(VER).install 
+#$(STAMP_DIR)/install-indep: debian/openoffice.org$(VER)-mimelnk.install 
+#$(STAMP_DIR)/install-indep: debian/openoffice.org$(VER).dirs
+$(STAMP_DIR)/install-indep: $(STAMP_DIR)/install
+	dh_testdir
+	dh_testroot
+
+	# Copy files placed by ooo-build/bin/package-ooo/install
+	rm -rf $(PKGDIR)-common $(PKGDIR)-common.*.debhelper; \
+	cp -r --preserve=mode debian/tmp/pkg/openoffice.org-common $(PKGDIR)-common || exit 1
+ifeq "$(PACKAGE_SDK)" "y"
+	rm -rf $(PKGDIR)-dev-doc $(PKGDIR)-dev-doc.*.debhelper; \
+	cp -r --preserve=mode debian/tmp/pkg/openoffice.org-dev-doc $(PKGDIR)-dev-doc || exit 1
+endif
+
+	dh_installdirs -i
+
+ifneq "$(USE_GSTREAMER)" "y"
+	# sound doesn't work anyway, remove the .wav files to save space
+	rm -rf $(PKGDIR)-common/$(OODIR)/share/gallery/sounds
+	rm -f $(PKGDIR)-common/$(OODIR)/share/gallery/sg9.*
+endif
+
+	rm -f $(PKGDIR)-common/$(OODIR)/program/oo_product.bmp
+
+	# Extract and install icons
+	cd $(SOURCE_TREE)/sysui/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/bin/desktop-integration && dpkg --extract openoffice.org-debian-menus_*_all.deb . && cd usr/share/icons && \
+	for d in `find -type d`; do \
+	  install -d -m755 $(CURDIR)/$(PKGDIR)-common/usr/share/icons/$$d || exit 1 ;\
+	done &&\
+	for f in `find -type f`; do \
+	  install -m644 $$f $(CURDIR)/$(PKGDIR)-common/usr/share/icons/$$f || exit 1 ;\
+	done && cd ../../.. && rm -rf usr etc
+
+	# install .applications, .keys and .mime
+	mkdir -p $(PKGDIR)-common/usr/share/application-registry && \
+	cat $(SOURCE_TREE)/sysui/desktop/mimetypes/openoffice.applications \
+		| sed -e s/OFFICENAME/ooffice/g \
+		| sed -e s/\%PRODUCTNAME/OpenOffice.org/g \
+		> $(PKGDIR)-common/usr/share/application-registry/openoffice.applications
+	mkdir -p $(PKGDIR)-common/usr/share/mime/packages && \
+	mkdir -p $(PKGDIR)-common/usr/share/mime-info && \
+	install -m644 $(SOURCE_TREE)/sysui/desktop/mimetypes/openoffice.mime \
+		$(PKGDIR)-common/usr/share/mime-info && \
+	rm -f $(PKGDIR)-common/usr/share/mime-info/openoffice.keys; \
+	for i in $(SOURCE_TREE)/sysui/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/misc/openoffice.org/*.keys; do \
+		cat $$i >> $(PKGDIR)-common/usr/share/mime-info/openoffice.keys; \
+	done
+#	install -m644 $(SOURCE_TREE)/sysui/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/misc/desktopshare/openoffice.org.xml \
+#		$(PKGDIR)-common/usr/share/mime/packages
+
+	mkdir -p $(PKGDIR)-common/usr/share/applications
+	sed 's/@VER@/$(VER)/g' debian/template.desktop.in \
+		> $(PKGDIR)-common/usr/share/applications/ooo-template.desktop
+
+	# install openoffice-xlate-lang
+	install -d -m755 $(PKGDIR)-common/usr/share/$(OODIRNAME)/bin
+	install -m755 ooo-build/bin/openoffice-xlate-lang \
+		$(PKGDIR)-common/usr/share/$(OODIRNAME)/bin
+
+ifeq "$(HELPISOS)" ""
+	# when we don't build helpcontent2 here we are missing helpxsl.zip so
+	# this file doesn't get installed either. Do it manually..
+	mkdir -p -m755 $(PKGDIR)-common/$(OODIR)/help && \
+	cp $(SOURCE_TREE)/helpcontent2/source/auxiliary/main_transform.xsl \
+		$(PKGDIR)-common/$(OODIR)/help
+endif
+
+ifeq "$(PACKAGE_SDK)" "y"
+	chmod 644 $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev/docs/images/bg_table2.gif
+	chmod 644 $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev/docs/images/bg_table3.gif
+	chmod 644 $(PKGDIR)-dev-doc/$(OODIR)/sdk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/build.xml
+	chmod 644 $(PKGDIR)-dev-doc/$(OODIR)/sdk/examples/DevelopersGuide/ScriptingFramework/SayHello/build.xml
+	chmod 644 `find $(PKGDIR)-dev-doc/$(OODIR)/sdk/examples/java/Inspector -type f | xargs`
+	chmod 644 `find $(PKGDIR)-dev-doc/$(OODIR)/sdk/examples/java/EmbedDocument -type f | xargs`
+	rm -f $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev-doc/LICENSE
+	perl -pi -e 's,license.html,http://www.gnu.org/licenses/lgpl.html,' \
+		$(PKGDIR)-dev-doc/$(OODIR)/sdk/index.html
+
+  ifeq "$(ENABLE_JAVA)" "y"
+        # fix links
+	cd $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev/docs/java/ref && \
+	for i in `find . -type f | xargs`; do \
+		perl -pi -e 's,file:$(CURDIR)/ooo-build/build/(current|$(TAG))/odk/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/bin/odkcommon/docs/common/ref/,,g' $$i; \
+	done
+  endif
+endif
+
+ifeq "$(ENABLE_JAVA)" "y"
+	rm -rf $(PKGDIR)-java-common
+	# move common Java stuff to -java-common
+	mkdir -p $(PKGDIR)-java-common/$(OODIR)/program/classes
+	mkdir -p $(PKGDIR)-java-common/$(OODIR)/share/Scripts
+	mkdir -p $(PKGDIR)-java-common/usr/share/java/$(OODIRNAME)
+	mv $(PKGDIR)-common/$(OODIR)/program/JREProperties.class \
+		$(PKGDIR)-java-common/$(OODIR)/program
+	mv $(PKGDIR)-common/$(OODIR)/share/Scripts/java \
+		$(PKGDIR)-java-common/$(OODIR)/share/Scripts
+	mv $(PKGDIR)-common/$(OODIR)/program/classes/* \
+		$(PKGDIR)-java-common/usr/share/java/$(OODIRNAME)
+	cd $(PKGDIR)-java-common/$(OODIR)/program/classes && \
+		for i in $(CURDIR)/$(PKGDIR)-java-common/usr/share/java/$(OODIRNAME)/*; do \
+			case "`basename $$i`" in aportisdoc.jar|pexcel.jar|pocketword.jar) continue ;; \
+			*) ln -s `echo $$i | sed -e 's,$(CURDIR)/$(PKGDIR)-java-common,,'` `basename $$i` ;; esac; \
+	done
+
+	# move into extra package
+	rm -rf $(PKGDIR)-filter-mobiledev
+	mkdir -p $(PKGDIR)-filter-mobiledev/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Filter
+	mkdir -p $(PKGDIR)-filter-mobiledev/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Types
+	mkdir -p $(PKGDIR)-filter-mobiledev/usr/share/java/$(OODIRNAME)
+	mkdir -p $(PKGDIR)-filter-mobiledev/$(OODIR)/program/classes
+	for i in palm pocketexcel pocketword; do \
+	  mv $(PKGDIR)-common/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_$${i}_filters.xcu \
+	    $(PKGDIR)-filter-mobiledev/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Filter; \
+	  mv $(PKGDIR)-common/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Types/fcfg_$${i}_types.xcu \
+	    $(PKGDIR)-filter-mobiledev/$(OODIR)/share/registry/modules/org/openoffice/TypeDetection/Types; \
+	done
+	for i in aportisdoc pexcel pocketword; do \
+	  mv $(PKGDIR)-java-common/usr/share/java/$(OODIRNAME)/$$i.jar \
+		$(PKGDIR)-filter-mobiledev/usr/share/java/$(OODIRNAME); \
+	  ln -s /usr/share/java/$(OODIRNAME)/$$i.jar \
+		$(PKGDIR)-filter-mobiledev/$(OODIR)/program/classes; \
+	done
+endif
+
+	# fix permissions
+	for i in editpic poll savepic show webcast; do \
+		chmod 755 $(PKGDIR)-common/$(OODIR)/share/config/webcast/$$i.pl; \
+	done
+
+	# fix permission
+	chmod 644 $(PKGDIR)-common/$(OODIR)/program/hid.lst
+
+	rm -f $(PKGDIR)-common/$(OODIR)/LICENSE
+
+	# move uno_packages/cache to /var and create symlink for for
+	# documentation referencing it...
+	rm -rf $(PKGDIR)-common/$(OODIR)/share/uno_packages/cache
+	mkdir -p $(PKGDIR)-common/var/spool/$(OODIRNAME)/uno_packages/cache
+	ln -s /var/spool/$(OODIRNAME)/uno_packages/cache \
+		$(PKGDIR)-common/$(OODIR)/share/uno_packages/cache
+	perl -pi -e \
+	      's,\$$UNO_SHARED_PACKAGES/cache,file:///var/spool/$(OODIRNAME)/uno_packages/cache,g' \
+		$(PKGDIR)-common/$(OODIR)/program/unorc
+
+	# install DicOOo; we need to do this manually; the
+	# dictionaries/ module isn't built with --without-myspell-dicts
+	# and those two somehow (why?) are in there...
+	mkdir -p $(PKGDIR)-common/usr/share/myspell/dicts
+	install -m644 $(SOURCE_TREE)/dictionaries/diclst/DicOOo.sxw \
+		$(PKGDIR)-common/usr/share/myspell/dicts
+	# issue 79153
+	perl -pi -e 's,\s<library:element library:name="FontOOo"/>\n,,' \
+		$(PKGDIR)-common/$(OODIR)/share/basic/launcher/script.xlb
+
+ifeq "$(PACKAGE_TTF_OPENSYMBOL)" "y"
+	mkdir -p debian/ttf-opensymbol/usr/share/fonts/truetype/openoffice
+	mv $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/opens___.ttf \
+		debian/ttf-opensymbol/usr/share/fonts/truetype/openoffice
+	rm -rf $(PKGDIR)-common/$(OODIR)/share/fonts/truetype
+else
+	rm -f $(PKGDIR)-common/$(OODIR)/share/fonts/truetype/opens___.ttf
+endif
+
+	# dictionary symlink
+	rm -rf $(PKGDIR)-common/$(OODIR)/share/dict/ooo
+	ln -s /usr/share/myspell/dicts \
+		$(PKGDIR)-common/$(OODIR)/share/dict/ooo
+	mkdir -p $(PKGDIR)-common/usr/share/myspell/dicts
+	ln -s /etc/openoffice/dictionary.lst \
+		$(PKGDIR)-common/usr/share/myspell/dicts/dictionary.lst
+
+	# convert icons to xpm; we need them for the Debian menu policy...
+	cd $(PKGDIR)-common/usr/share/icons/gnome/32x32/apps && \
+	  for x in *.png; do convert $$x `basename $$x .png`.xpm; done
+
+ifeq "$(ENABLE_JAVA)" "y"
+	# symlink jars we use externally
+  ifeq "$(SYSTEM_XALAN)" "y"
+	ln -sf /usr/share/java/xalan2.jar \
+		$(PKGDIR)-java-common/$(OODIR)/program/classes/xalan.jar
+  endif
+  ifeq "$(SYSTEM_XML_APIS)" "y"
+	ln -sf /usr/share/java/xml-apis.jar \
+		$(PKGDIR)-java-common/$(OODIR)/program/classes/xml-apis.jar
+  endif
+  ifeq "$(SYSTEM_XERCES)" "y"
+	ln -sf /usr/share/java/xercesImpl.jar \
+		$(PKGDIR)-java-common/$(OODIR)/program/classes/xercesImpl.jar
+  endif
+  ifeq "$(USE_SYSTEM_BSH)" "y"
+	ln -sf /usr/share/java/bsh.jar \
+	        $(PKGDIR)-java-common/$(OODIR)/program/classes/bsh.jar
+  endif
+endif
+	# remove extra license files
+	rm -rf $(PKGDIR)-commmon/$(OODIR)/licenses
+	rm -rf $(PKGDIR)-common/$(OODIR)/share/readme/LICENSE*
+	rm -f $(PKGDIR)-common/$(OODIR)/THIRDPARTYLICENSEREADME.html
+	rm -f $(PKGDIR)-common/$(OODIR)/LICENSE.html
+
+	# remove extra readme files
+	rm -rf $(PKGDIR)-common/$(OODIR)/readmes
+	rm -rf $(PKGDIR)-common/$(OODIR)/share/readme/README*
+
+	# install Ximian desktop icons
+	for r in 16x16 22x22 24x24 32x32 48x48; do \
+		mkdir -p $(PKGDIR)-common/usr/share/icons/hicolor/$$r/apps; \
+		cp ooo-build/desktop/$$r/*.png \
+			$(PKGDIR)-common/usr/share/icons/hicolor/$$r/apps; \
+	done
+
+	# add MySQL and PostgreSQL JDBC drivers to OOos CLASSPATH
+	TMP=`mktemp -q`; \
+	sed -e 's|\(UNO_JAVA_JFW_CLASSPATH_URLS=.*\)|\1 file:///usr/share/java/mysql.jar|' \
+	    -e 's|\(UNO_JAVA_JFW_CLASSPATH_URLS=.*\)|\1 file:///usr/share/java/postgresql.jar|' < $(PKGDIR)-common/$(OODIR)/program/jvmfwk3rc > $$TMP && \
+	mv $$TMP $(PKGDIR)-common/$(OODIR)/program/jvmfwk3rc
+
+	# move psprint.conf into /etc
+	mkdir -p $(PKGDIR)-common/etc/$(OODIRNAME)
+	mv $(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf \
+		$(PKGDIR)-common/etc/$(OODIRNAME)
+	ln -s /etc/$(OODIRNAME)/psprint.conf \
+		$(PKGDIR)-common/$(OODIR)/share/psprint/psprint.conf
+
+	# prepare a fake sofficerc in the place where OOo expects it
+	# which does nothing except reference the "normal" one
+	# which we put into /etc
+	mv $(PKGDIR)-common/$(OODIR)/program/sofficerc \
+		$(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc
+	( \
+	  echo "# *DO NOT* CHANGE THIS FILE. IT ONLY TAKES THE SETTINGS FROM"; \
+	  echo "# /etc/$(OODIRNAME)/sofficerc. CHANGE THAT FILE IF YOU"; \
+	  echo "# REALLY WANT TO CHANGE SOMETHING."; \
+	  echo "FHS_CONFIG_FILE=file:///etc/$(OODIRNAME)/sofficerc"; \
+	  echo "" >> $(PKGDIR)-common/$(OODIR)/program/sofficerc; \
+	) > $(PKGDIR)-common/$(OODIR)/program/sofficerc	
+	cat $(PKGDIR)-common/etc/$(OODIRNAME)/sofficerc \
+		| perl -p -e 's/(.*)=(.*)/$$1=\$${\$$FHS_CONFIG_FILE:Bootstrap:$$1}/' \
+		>> $(PKGDIR)-common/$(OODIR)/program/sofficerc
+
+	install -m 644 debian/soffice.sh \
+	  $(PKGDIR)-common/etc/$(OODIRNAME)/soffice.sh
+
+ifeq "$(HELPISOS)" ""
+	# the helpimgs are not included when we don't build with help here.
+	# Add them now because openoffice.org-help-* packaged in contrib or so
+	# will need them
+	set -e; \
+	for z in images.zip images_industrial.zip images_crystal.zip images_hicontrast.zip images_tango.zip $(IMAGES_HUMAN_ZIP); do \
+		echo "adding helpimgs to $$z..."; \
+		rm -rf $$z; mkdir $$z; \
+		cd $$z; \
+		unzip -q $(CURDIR)/$(PKGDIR)-common/$(OODIR)/share/config/$$z && \
+		cp -r $(CURDIR)/$(SOURCE_TREE)/default_images/res/helpimg res && \
+		chmod +w $(CURDIR)/$(PKGDIR)-common/$(OODIR)/share/config/$$z && \
+		zip -q -r $(CURDIR)/$(PKGDIR)-common/$(OODIR)/share/config/$$z *; \
+		cd ..; \
+		rm -rf $$z; \
+	done
+endif
+	set -e; \
+	for s in andromeda industrial crystal hicontrast tango $(HUMAN); do \
+		z=images_$$s.zip; \
+		case "$$s" in andromeda) z=images.zip; esac; \
+		mkdir -p $(PKGDIR)-style-$$s/$(OODIR)/share/config; \
+		mv $(PKGDIR)-common/$(OODIR)/share/config/$$z \
+			$(PKGDIR)-style-$$s/$(OODIR)/share/config/; \
+	done
+
+ifeq "$(DIST)" "Ubuntu" 
+	rm -rf images
+	mkdir -p images
+	cd images; \
+	  unzip -q $(CURDIR)/$(PKGDIR)-style-tango/$(OODIR)/share/config/images_tango.zip; \
+	  tar xf ../ubuntu/images_new.tar.bz2; \
+	  zip -q -r $(CURDIR)/$(PKGDIR)-style-human/$(OODIR)/share/config/images_human.zip *
+	rm -rf images
+endif
+
+	rm -rf $(PKGDIR)-dtd-officedocument1.0
+	mkdir -p $(PKGDIR)-dtd-officedocument1.0/$(OODIR)/share/dtd
+	mv $(PKGDIR)-common/$(OODIR)/share/dtd/officedocument \
+		$(PKGDIR)-dtd-officedocument1.0/$(OODIR)/share/dtd
+	cp debian/catalog.xml $(PKGDIR)-dtd-officedocument1.0/$(OODIR)/share/dtd/officedocument/1_0
+
+ifeq "$(PACKAGE_QA_TOOLS)" "y"
+  ifeq "$(ENABLE_JAVA)" "y"
+	mkdir -p -m755 $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/tests/java
+	for d in objdsc testdocs; do \
+		cp -r $(SOURCE_TREE)/qadevOOo/$$d $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/$$d; \
+	done
+  endif
+
+	mkdir -p -m755 $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/tests
+	cp -r $(SOURCE_TREE)/qadevOOo/tests/basic $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/tests
+  ifeq "$(ENABLE_JAVA)" "y"
+	for d in mod ifc; do \
+		cp -r $(SOURCE_TREE)/qadevOOo/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/class/$$d $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/tests/java; \
+	done
+  endif
+
+	find $(PKGDIR)-qa-api-tests -type d -name "CVS" | xargs rm -rf
+	find $(PKGDIR)-qa-api-tests -type f | xargs chmod 0644
+
+  ifeq "$(ENABLE_JAVA)" "y"
+	echo "TestBase=java_fat" > $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/java.props
+  endif
+	echo "TestBase=java_complex" > $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/complex.props
+	echo "TestBase=basic_fat" > $(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/basic.props
+
+	echo "BASICBRIDGE=/$(OODIR)/qadevOOo/testdocs/BasicBridge.sxw" >> \
+		$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/basic.props
+	echo "BASICRESPTH=/$(OODIR)/qadevOOo/tests/basic" >> \
+		$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/basic.props
+
+  ifeq "$(ENABLE_JAVA)" "y"
+	echo "DescriptionPath=/$(OODIR)/qadevOOo/objdsc" >> \
+		$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/java.props; \
+	echo "TestDocumentPath=/$(OODIR)/qadevOOo/testdocs" >> \
+		$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/java.props; \
+	echo "AppExecutionCommand=/$(OODIR)/program/soffice" \
+		"-norestore -nocrashreport -accept=socket,host=localhost,port=8100;urp;" >> \
+		$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/java.props
+  endif
+	for i in complex basic; do \
+		echo "DescriptionPath=/$(OODIR)/qadevOOo/objdsc" >> \
+			$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/$$i.props; \
+		echo "TestDocumentPath=/$(OODIR)/qadevOOo/testdocs" >> \
+			$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/$$i.props; \
+		echo "AppExecutionCommand=/$(OODIR)/program/soffice" \
+			"-norestore -nocrashreport -accept=socket,host=localhost,port=8100;urp;" >> \
+			$(PKGDIR)-qa-api-tests/$(OODIR)/qadevOOo/$$i.props; \
+	done
+endif
+
+ifeq "$(USE_COMMON_DOCDIR)" "y"
+	# move READMEs to /usr/share/doc/openoffice.org-common
+	mkdir -p $(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common
+	for i in README README.html; do \
+		mv $(PKGDIR)-common/$(OODIR)/$$i \
+			$(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common; \
+	done
+#	cp -p ubuntu/SunOpenOfficeLogoTM.pdf \
+#	  $(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common/
+endif
+
+ifeq "$(DIST)" "Ubuntu"
+	# install Ubuntu templates
+	mkdir -p $(PKGDIR)-common/$(OODIR)/share/template/en-US/presnt
+	install -m644 ubuntu/*.otp $(PKGDIR)-common/$(OODIR)/share/template/en-US/presnt/
+endif
+
+	# add "openoffice" symlink
+	cd $(PKGDIR)-common/usr/bin && ln -s ooffice openoffice
+
+ifeq "$(PACKAGE_SDK)" "y"
+	# add symlinks for docs and examples
+	cd $(PKGDIR)-dev-doc/$(OODIR)/sdk && \
+		rm -rf docs && \
+		ln -sf /usr/share/doc/openoffice.org-dev/docs docs
+	cd $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev-doc && \
+		ln -s /usr/share/doc/openoffice.org-dev/docs docs
+	cd $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev-doc && \
+		ln -s /$(OODIR)/sdk/examples examples
+	cd $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev && \
+		ln -s /$(OODIR)/sdk/examples examples
+	# and the index
+	cd $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev && \
+		ln -s /$(OODIR)/sdk/index.html index.html
+endif
+
+ifneq "$(DIST)" "Ubuntu"
+	# ooo-build has a patch with this hardcoded.
+	perl -pi -e "s/Ubuntu helper/helper/" $(PKGDIR)-common/$(OODIR)/program/soffice
+	perl -pi -e "s/Ubuntu config/config/" $(PKGDIR)-common/$(OODIR)/program/soffice
+	perl -pi -e "s/Ubuntu stuff/stuff/" $(PKGDIR)-common/$(OODIR)/program/soffice
+endif
+
+	for i in $(ARCH_INDEP_PACKAGES); do \
+		install -D -m644 debian/presubj \
+			debian/$$i/usr/share/bug/$$i/presubj; \
+		if [ -e debian/$$i.control.bug ]; then \
+			install -D -m644 debian/$$i.control.bug \
+				debian/$$i/usr/share/bug/$$i/control; \
+		fi ;\
+		if [ -e debian/$$i.script.bug ]; then \
+			install -D -m755 debian/$$i.script.bug \
+				debian/$$i/usr/share/bug/$$i/script; \
+		fi ;\
+	done
+
+ifeq "$(DIST)" "Debian"
+	# fix intro
+	if dpkg-parsechangelog | grep urgency | grep -q "\~.*m[0123456789]\+"; then \
+		debian/scripts/fix_image_rgb \
+			$(SOURCE_TREE)/ooo_custom_images/dev_nologo/introabout/intro.bmp \
+			$(PKGDIR)-common/$(OODIR)/program/intro.bmp; \
+	else \
+		debian/scripts/fix_image_rgb \
+			$(SOURCE_TREE)/ooo_custom_images/nologo/introabout/intro.bmp \
+			$(PKGDIR)-common/$(OODIR)/program/intro.bmp; \
+	fi
+endif
+
+ifeq "$(USE_OOO_BUILD_DESKTOPS)" "n"
+	# menu files from sysui
+	dirname="`cd $(SOURCE_TREE)/sysui/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/misc/desktopshare >/dev/null; pwd`" ;\
+	mkdir -p -m755 $(PKGDIR)-common/usr/share/applications ;\
+	sed -e 's,Name=$${PRODUCTNAME} $${PRODUCTVERSION},Name=OpenOffice.org $(VER),' \
+	    -e 's/  / /' \
+	    < $$dirname/extension.desktop \
+	    > $(PKGDIR)-common/usr/share/applications/ooo$(VER)-extension.desktop || exit 1
+	sed -i -e 's/Application;//' $(PKGDIR)-common/usr/share/applications/ooo$(VER)-extension.desktop
+	sed -i -e 's/Office;/Office;System;/' $(PKGDIR)-common/usr/share/applications/ooo$(VER)-extension.desktop
+endif
+
+	# remove leftover debugging echos
+	TMP=`mktemp -q`; \
+		grep -v obr $(PKGDIR)-common/$(OODIR)/program/senddoc > $$TMP && \
+		mv $$TMP $(PKGDIR)-common/$(OODIR)/program/senddoc && \
+		chmod 755 $(PKGDIR)-common/$(OODIR)/program/senddoc
+
+	touch $@
+
+gsi-import:
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+  ifneq "$(OOO_L10N_DIR)" ""
+	set -e; \
+	for i in $(OOO_L10N_DIR)/import/GSI*; do \
+	  [ -r $$i ] || continue; \
+	  lang=`basename $$i | sed 's,GSI_\(.*\)\.sdf.*,\1,'`; \
+	  case "$$lang" in en-US|de) continue; esac; \
+	  echo "updating GSI file for language $$lang ..."; \
+	  case "$$i" in \
+	    *.bz2) bzcat $$i > ooo-build/src/GSI_$$lang.sdf;; \
+	    *.gz) zcat $$i > ooo-build/src/GSI_$$lang.sdf;; \
+	    *.sdf) cp -p $$i ooo-build/src/GSI_$$lang.sdf;; \
+	    *) echo "    unknown file: $$i"; \
+	  esac; \
+	  rm -f ooo-build/src/GSI_$$lang.sdf.bz2; \
+	  bzip2 -9v ooo-build/src/GSI_$$lang.sdf; \
+	  uuencode -m ooo-build/src/GSI_$$lang.sdf.bz2 GSI_$$lang.sdf.bz2 > ooo-build/src/GSI_$$lang.sdf.bz2.uu; \
+	  rm ooo-build/src/GSI_$$lang.sdf.bz2; \
+	done
+  endif
+else
+	@echo "nothing to import, OOO_L10N_DIR is not set"
+endif
+
+GSI_LANGUAGES = $(LANGUAGES)
+gsi-export: $(GSI_EXPORT_STAMP)
+$(GSI_EXPORT_STAMP):
+	$(MAKE) -f debian/rules -j$(shell expr $(AVAIL_CPUS) + 1) $(STAMP_DIR)/gsi-export-parallel
+	: # tell pkgstriptranslations that the translations are built
+	-ls -l ../$(PKGSOURCE)_*_translations.tar.gz
+	rm -f ../$(PKGSOURCE)_*_translations.tar.gz
+	: # remove 0 byte translations to keep pkgstriptranslations from dying
+	find $(OOO_L10N_DIR)/po -size 0c -name *.po -exec rm -f -v \{\} \;
+	touch $@
+$(STAMP_DIR)/gsi-export-parallel: $(STAMP_DIR)/build $(foreach lang,$(GSI_LANGUAGES),$(STAMP_DIR)/gsi-export-$(lang))
+	touch $@
+$(STAMP_DIR)/gsi-export-en-US:
+	cd $(SOURCE_TREE); \
+	  . Linux*Env.Set.sh; \
+	  mkdir -p $(OOO_L10N_DIR)/export; \
+	  echo exporting GSI file for pot file generation; \
+	  echo localize -e -l en-US -f $(OOO_L10N_DIR)/export/GSI_en-US.sdf; \
+	  localize -e -l en-US -f $(OOO_L10N_DIR)/export/GSI_en-US.sdf
+
+	if [ -x /usr/bin/oo2po ]; then \
+	  chmod +x debian/scripts/splitgsi; \
+	  sh debian/scripts/convert2po en-US; \
+	fi
+	touch $@
+
+$(STAMP_DIR)/gsi-export-%:
+	cd $(SOURCE_TREE); \
+	  . Linux*Env.Set.sh; \
+	  mkdir -p $(OOO_L10N_DIR)/export; \
+	  i=$*; \
+	  if [ -f $(CURDIR)/ooo-build/src/GSI_$$i.sdf.bz2.uu ]; then \
+	    echo using existing GSI file for language $$i; \
+	    uudecode -o /dev/stdout $(CURDIR)/ooo-build/src/GSI_$$i.sdf.bz2.uu \
+	      | bzcat - > $(OOO_L10N_DIR)/export/GSI_$$i.sdf; \
+	  elif [ -f $(CURDIR)/ooo-build/src/GSI_$$i.sdf.gz.uu ]; then \
+	    echo using existing GSI file for language $$i; \
+	    uudecode -o /dev/stdout $(CURDIR)/ooo-build/src/GSI_$$i.sdf.gz.uu \
+	      | zcat - > $(OOO_L10N_DIR)/export/GSI_$$i.sdf; \
+	  else \
+	    echo exporting GSI file for language $$i; \
+	    echo localize -e -l en-US,$$i -f $(OOO_L10N_DIR)/export/GSI_$$i.sdf; \
+	    localize -e -l en-US,$$i -f $(OOO_L10N_DIR)/export/GSI_$$i.sdf >$(OOO_L10N_DIR)/localize-$$i.log; \
+	    echo "log summary for localize -e -l en-US,$$i"; \
+	    grep '^\.*ERROR:' $(OOO_L10N_DIR)/localize-$$i.log | sed 's/^[.]*//' | sort | uniq -c; \
+	  fi
+
+	case " $(REMOVE_HELP) " in *\ $*\ *) \
+	  echo "Removing help ($*)"; \
+	  grep -v '^helpcontent2' $(OOO_L10N_DIR)/export/GSI_$*.sdf \
+	    > $(OOO_L10N_DIR)/export/GSI_$*.sdf.tmp; \
+	  debian/scripts/move-if-change $(OOO_L10N_DIR)/export/GSI_$*.sdf.tmp \
+	    $(OOO_L10N_DIR)/export/GSI_$*.sdf; \
+	esac
+
+	case " $(FILTER_HELP) " in *\ $*\ *) \
+	  echo "Filtering untranslated messages from help ($*)"; \
+	  python debian/scripts/gsifilter.py $(OOO_L10N_DIR)/export/GSI_$*.sdf; \
+	  debian/scripts/move-if-change $(OOO_L10N_DIR)/export/GSI_$*.sdf.tmp \
+	    $(OOO_L10N_DIR)/export/GSI_$*.sdf; \
+	esac
+
+	if [ -x /usr/bin/oo2po ]; then \
+	  chmod +x debian/scripts/splitgsi; \
+	  sh debian/scripts/convert2po $*; \
+	fi
+	touch $@
+
+rosetta2oo:
+	mkdir -p debian/l10n
+	ln -sf convert2po debian/scripts/convert2oo
+	sh debian/scripts/convert2oo $(GSI_LANGUAGES)
+
+ifeq "$(PKGSOURCE)" "openoffice.org$(VER)-l10n"
+# Simplified packaging, langpacks only
+
+binary-arch: $(STAMP_DIR)/binary-arch
+$(STAMP_DIR)/binary-arch:
+	: # nothing to do
+	touch $(STAMP_DIR)/install-arch
+	touch $@
+
+else
+
+binary-arch: $(STAMP_DIR)/binary-arch
+$(STAMP_DIR)/binary-arch: $(STAMP_DIR)/install-arch debian/control $(STAMP_DIR)/maintscripts
+	dh_testdir
+	dh_testroot
+
+	for pkg in $(ARCH_DEP_PACKAGES) ; do \
+	  rm -f debian/$$pkg.*.debhelper;\
+	  rm -rf debian/$$pkg/DEBIAN;\
+	done
+
+	dh_installdocs -s -A -Nlibmythes-dev debian/README.Debian \
+		debian/tmp/pkg/openoffice.org-common/$(OODIR)/README
+	dh_installdocs -plibmythes-dev debian/copyright
+	dh_installman -s
+	# fix manpage symlinks
+	for i in writer calc draw base math impress; do \
+		for i in `find $(PKGDIR)-$$i -type l -name "o*.1"`; do \
+			mv $$i $$i.gz; \
+			if [ "`readlink $$i`" != "openoffice.1.gz" ]; then \
+				ln -sf openoffice.1.gz $$i.gz; \
+			fi; \
+		done; \
+	done
+	dh_installchangelogs -s -Nlibmythes-dev ooo-build/ChangeLog
+ifneq "$(USE_EXTERNAL_MYTHES)" "y"
+	dh_installchangelogs -plibmythes-dev
+endif
+ifeq "$(USE_COMMON_DOCDIR)" "y"
+  ifneq "" "$(findstring openoffice.org$(VER)-core, $(PACKAGES))"
+	ln -sf ../openoffice.org$(VER)-common/changelog.ooo-build.gz \
+	  $(PKGDIR)-core/usr/share/doc/openoffice.org$(VER)-core/changelog.ooo-build.gz
+#	ln -sf ../openoffice.org$(VER)-common/SunOpenOfficeLogoTM.pdf \
+#	  $(PKGDIR)-core/usr/share/doc/openoffice.org$(VER)-core/SunOpenOfficeLogoTM.pdf
+  endif
+	# arch dependent packages (with docdir symlinks)
+	for s in \
+	  '' -base -calc -dev -draw -evolution -filter-binfilter -gcj -gnome \
+	  -gtk -headless -impress -kde -math -qa-tools -officebean \
+	  -report-builder -sdbc-postgresql -writer; \
+	do \
+	  PKG=openoffice.org$(VER)$$s; \
+	  echo " $(PACKAGES) " | fgrep -q " $$PKG " || continue; \
+	  target=openoffice.org$(VER)-core; \
+	  rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/copyright; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/changelog.Debian*; \
+	  mkdir -p debian/$$PKG/usr/share/doc; \
+	  ln -sf $$target debian/$$PKG/usr/share/doc/$$PKG; \
+	  sed "s/@PKGNAME@/$$PKG/g;s/@PKGTARGET@/$$target/g" \
+	    debian/deppackage.postinst.in >> debian/$$PKG.postinst; \
+	done
+	for PKG in python-uno libuno-cil mozilla-openoffice.org; do \
+	  echo " $(PACKAGES) " | fgrep -q " $$PKG " || exit 0; \
+	  target=openoffice.org$(VER)-core; \
+	  mkdir -p debian/$$PKG/usr/share/doc/$$target; \
+	  if [ "$$PKG" = python-uno ]; then \
+	    mv debian/$$PKG/usr/share/doc/python-uno/demo \
+	      debian/$$PKG/usr/share/doc/$$target/python-uno-demo; \
+	  fi; \
+	  rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/copyright; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/changelog.Debian*; \
+	  mkdir -p debian/$$PKG/usr/share/doc; \
+	  ln -sf $$target debian/$$PKG/usr/share/doc/$$PKG; \
+	done
+endif
+	dh_installmime -s
+	dh_installmenu -s
+ifeq "$(USE_PYCENTRAL)" "y"
+	dh_pycentral -ppython-uno
+else
+	dh_python
+endif
+	debian/scripts/installoverrides -s
+	dh_link -s
+	dh_fixperms -s
+ifeq "$(BUILD_DBG_PACKAGE)" "y"
+	dh_strip -s -Nure --dbg-package=openoffice.org$(VER)-dbg
+  ifeq "$(PACKAGE_URE)" "y"
+	dh_strip -pure --dbg-package=ure-dbg
+  endif
+	# dh_strip --dbg-package= is not idempotent, force copying of the binaries
+	# again...
+	rm -f $(STAMP_DIR)/install-arch
+else
+	dh_strip -s
+endif
+	dh_desktop -s
+ifneq "$(ETCH_BACKPORT)" "y"
+	dh_icons -s
+endif
+ifeq "$(ENABLE_MONO)" "y"
+	cat debian/libuno-cil.installcligac.in | \
+		sed -e s,@OODIR@,$(OODIR), > debian/libuno-cil.installcligac
+	dh_installcligac -s
+endif
+	dh_compress -s -X.py -X.mk -X.sxd
+	dh_makeshlibs -s -Nure -n -V -Xlibxmlsec
+ifeq "$(PACKAGE_URE)" "y"
+	dh_makeshlibs -pure -n -V"ure (>= $(shell grep -A 1 "PRODUCTNAME URE" $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | tail -n 1 | awk '{ print $$2 }'))"
+endif
+	dh_installdeb -s
+	cat debian/openoffice.org-core.shlibs.local > debian/shlibs.local
+ifneq "$(USE_SYSTEM_XMLSEC)" "y"
+	cat debian/shlibs.override.xmlsec >> debian/shlibs.local
+endif
+ifeq "$(USE_SYSTEM_ICU)" "n"
+	cat debian/shlibs.override.icu >> debian/shlibs.local
+endif
+ifeq "$(INTERNAL_STDLIBS)" "y"
+	cat debian/shlibs.override.stdlibs >> debian/shlibs.local
+endif
+	# we need to do it in two steps. The new dpkg-shlibdeps doesn't find
+	# /usr/lib/libgcj-bc.so when specifying -l$(GCJ_JAWT_DIR)
+	# and therefore we must not use it for -gcj. But we *do* need it
+	# for -officebean (libjawt.so is referenced there)
+	LD_LIBRARY_PATH="/usr/lib/libfakeroot:$(PKGDIR)-core/$(OODIR)/program" \
+		dh_shlibdeps -s -Nopenoffice.org$(VER)-officebean \
+			-l$(PKGDIR)-core/$(OODIR)/program \
+			-l$(PKGDIR)-base/$(OODIR)/program \
+			$(SHLIBS_OVERRIDE)
+ifeq "$(ENABLE_JAVA)" "y"
+	LD_LIBRARY_PATH="/usr/lib/libfakeroot:$(PKGDIR)-core/$(OODIR)/program" \
+		dh_shlibdeps -popenoffice.org$(VER)-officebean \
+			-l$(PKGDIR)-core/$(OODIR)/program:$(GCJ_JAWT_DIR) \
+			$(SHLIBS_OVERRIDE)
+endif
+	# this is in an extension (.zip), so dh_shlibdeps doesn't get it. We need to do
+	# it manually.
+	LD_LIBRARY_PATH="/usr/lib/libfakeroot:$(PKGDIR)-core/$(OODIR)/program" \
+		dpkg-shlibdeps -O \
+			$(SOURCE_TREE)/connectivity/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/lib/postgresql-sdbc*.so \
+			> debian/openoffice.org$(VER)-sdbc-postgresql.substvars
+	LD_LIBRARY_PATH="/usr/lib/libfakeroot:$(PKGDIR)-core/$(OODIR)/program" \
+		dpkg-shlibdeps -O \
+			$(SOURCE_TREE)/sdext/$(shell . $(SOURCE_TREE)/*.sh; echo $$OUTPATH$$PROEXT)/lib/SunPresentationMinimizer.uno.so \
+			> debian/openoffice.org$(VER)-presentation-minimizer.substvars
+ifeq "$(ENABLE_MONO)" "y"
+	dh_makeclilibs -s -V
+	dh_clideps -s
+endif
+# This switch to dh_shlibdeps reduces the 'libXXX not found' warnings but
+# causes ldd crashes sometimes when used with fakeroot:
+#          -l $(PKGDIR)-core/$(OPENOFFICEDIR)/program
+	dh_gencontrol -s $(DEBHELPER_OPTIONS) -Nure -Nure-dbg \
+		-Nopenoffice.org$(VER)-report-builder \
+		-Nopenoffice.org$(VER)-presentation-minimizer \
+		-Nopenoffice.org$(VER)-sdbc-postgresql -- \
+		-V'base-version=$(BASE_VERSION)' \
+		-V'help-l10n-virtual-version=$(HELP_L10N_VIRTUAL_VERSION)' \
+		-V'dev-stl-depends=$(DEV_STL_DEPENDS)' \
+		-V'writer-pyuno-dep=$(WRITER_PYUNO_DEP)' \
+		-V'writer-w2l-dep=$(WRITER_W2L_DEP)' \
+		-V'base-hsqldb-depends=$(BASE_HSQLDB_DEPENDS)' \
+		-V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \
+		-V'java-runtime-depends=$(JAVA_RUNTIME_DEPENDS)' \
+		-V'java-gcj-depends=$(JAVA_GCJ_DEPENDS)' \
+		-V'mozilla-nss-depends=$(MOZILLA_NSS_DEPENDS)' \
+		-V'Binary-Version=$(BINARY_VERSION)' \
+		-V'ooo-binfilter-dep=$(OOO_BINFILTER_DEP)' \
+		-V'ooo-officebean-dep=$(OOO_OFFICEBEAN_DEP)' \
+		-V'lpsolve-dep=$(LPSOLVE_DEP)' \
+		-V'gstreamer-plugins-suggests=$(GSTREAMER_PLUGINS_SUGGESTS)' \
+		-V'dbg-dbg-suggests=$(DBG_DBG_SUGGESTS)' \
+		-v$(BINARY_VERSION)
+ifneq "$(ETCH_BACKPORT)" "y"
+  ifeq "$(ENABLE_JAVA)" "y"
+	perl -pi -e "s/java-gcj-compat/java-gcj-compat (>= 1.0.77-4)/" \
+		debian/openoffice.org$(VER)-officebean/DEBIAN/control
+  endif
+endif
+ifeq "$(ENABLE_REPORTDESIGN)" "y"
+	dh_gencontrol -popenoffice.org$(VER)-report-builder -- \
+		-V'report-builder-jar-depends=$(REPORT_BUILDER_JAR_DEPENDS)' \
+		-v`echo $(BINARY_VERSION) | cut -d: -f1`:$(shell grep "<version" $(SOURCE_TREE)/reportdesign/util/post.xml | perl -pi -e 's,<version value=\"(.*)\"/>,\1,; s/^\s+//')+OOo`echo $(BINARY_VERSION) | cut -d: -f2`
+endif
+	dh_gencontrol -popenoffice.org$(VER)-presentation-minimizer -- \
+		-v$(shell grep "<version" $(SOURCE_TREE)/sdext/source/minimizer/description.xml | perl -pi -e 's,<version value=\"(.*)\" />,\1,; s/^\s+//')+OOo`echo $(BINARY_VERSION) | cut -d: -f2`
+	dh_gencontrol -popenoffice.org$(VER)-sdbc-postgresql -- \
+		-v`echo $(BINARY_VERSION) | cut -d: -f1`:$(shell grep ^PQ_SDBC_M $(SOURCE_TREE)/connectivity/source/drivers/postgresql/makefile.mk | cut -d"=" -f2 | xargs | sed -e s/\ /\./g)+OOo`echo $(BINARY_VERSION) | cut -d: -f2`
+ifeq "$(PACKAGE_URE)" "y"
+	dh_gencontrol -pure -pure-dbg -- \
+		-V"ure:Version=$(shell grep -A 1 "PRODUCTNAME URE" $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | tail -n 1 | awk '{ print $$2 }')+OOo`echo $(BINARY_VERSION) | cut -d: -f2`" \
+		-v$(shell grep -A 1 "PRODUCTNAME URE" $(SOURCE_TREE)/instsetoo_native/util/openoffice.lst | tail -n 1 | awk '{ print $$2 }')+OOo`echo $(BINARY_VERSION) | cut -d: -f2`
+endif
+	dh_md5sums -s
+	dh_builddeb -s $(DEBHELPER_OPTIONS) $(BUILDDEB_OPTIONS)
+
+	touch $@
+endif # binary-arch for openoffice.org source
+
+binary-indep: $(GSI_EXPORT_STAMP) $(STAMP_DIR)/binary-indep
+$(STAMP_DIR)/binary-indep: $(STAMP_DIR)/install-indep debian/control $(STAMP_DIR)/maintscripts $(STAMP_DIR)/langpacks $(STAMP_DIR)/helppacks $(STAMP_DIR)/broffice
+ifneq ($(ARCH),$(findstring $(ARCH),$(OOO_JAVA_ARCHS)))
+	echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+	echo "For uploads with binary-all packages, please use arches where Java is enabled!!!!!"
+	echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+endif
+	dh_testdir
+	dh_testroot
+
+	for pkg in $(ARCH_INDEP_PACKAGES) ; do \
+	  rm -f debian/$$pkg.*.debhelper;\
+	  rm -rf debian/$$pkg/DEBIAN;\
+	done
+
+ifeq "$(PACKAGE_SDK)" "y"
+	. $(SOURCE_TREE)/solenv/inc/udkversion.mk && \
+	for i in common cpp java; do \
+		cat debian/udk-$$i-ref.in \
+			| sed -e "s/@UDK_MAJOR@/$$UDK_MAJOR/" \
+		      	      -e "s/@UDK_MINOR@/$$UDK_MINOR/" \
+		      	      -e "s/@UDK_MICRO@/$$UDK_MICRO/" \
+		      	      -e "s/@VER@/$(VER)/" \
+			> debian/openoffice.org-dev-doc.doc-base.udk-$$i-ref; \
+	done
+	# remove Autodoc_DiagnosticMessages.txt
+	find $(PKGDIR)-dev-doc/usr/share/doc/openoffice.org-dev \
+		-name "Autodoc_DiagnosticMessages.txt" -exec rm {} \;
+	UDK_CPP_FILES=`find $(CURDIR)/debian/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev/docs/cpp/ref | sed -e 's,$(CURDIR)/debian/openoffice.org-dev-doc,,g' | xargs`; \
+	echo "Files: $$UDK_CPP_FILES" >> debian/openoffice.org-dev-doc.doc-base.udk-cpp-ref
+  ifeq "$(ENABLE_JAVA)" "y"
+	UDK_JAVA_FILES=`find $(CURDIR)/debian/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev/docs/java/ref | sed -e 's,$(CURDIR)/debian/openoffice.org-dev-doc,,g' | xargs`; \
+	echo "Files: $$UDK_JAVA_FILES" >> debian/openoffice.org-dev-doc.doc-base.udk-java-ref
+  endif
+	# xargs strips the many files here so we need to post-process it.
+	UDK_COMMON_FILES=`find $(CURDIR)/debian/openoffice.org-dev-doc/usr/share/doc/openoffice.org-dev/docs/common/ref | sed -e 's,$(CURDIR)/debian/openoffice.org-dev-doc,,g' | xargs`; \
+	TMP=`mktemp -q`; \
+	cp debian/openoffice.org-dev-doc.doc-base.udk-common-ref $$TMP; \
+	echo "Files: $$UDK_COMMON_FILES" >> $$TMP; \
+	cat $$TMP | perl -e 'while(<>) { if (/^Files/) {$$f=1;} if ($$f eq "1") { chomp(); } print $$_; }' > debian/openoffice.org-dev-doc.doc-base.udk-common-ref; \
+	rm -f $$TMP
+	# no idea why this happens; afais this can't come from above
+	# since it doesn't affect the files at the end of the lines...
+	# But fix it..
+	perl -pi -e 's,html/,html /,g' debian/openoffice.org-dev-doc.doc-base.udk-common-ref
+endif
+	dh_installdocs -i -A debian/README.Debian debian/tmp/pkg/openoffice.org-common/$(OODIR)/README
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	dh_installexamples -plibpcvslib-perl \
+		$(SOURCE_TREE)/solenv/bin/modules/PCVSLib/samples/*
+endif
+	dh_installman -i
+	for i in `find $(PKGDIR)-common -type l -name "o*.1"`; do \
+		mv $$i $$i.gz; \
+		if [ "`readlink $$i`" != "openoffice.1.gz" ]; then \
+			ln -sf openoffice.1.gz $$i.gz; \
+		fi; \
+	done
+	dh_installchangelogs -i ooo-build/ChangeLog
+ifeq "$(USE_COMMON_DOCDIR)" "y"
+  ifneq "" "$(findstring openoffice.org$(VER)-common, $(PACKAGES))"
+	mkdir -p $(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common
+	install -m644 debian/README.Debian debian/copyright \
+	  $(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common/
+	install -m644 ooo-build/ChangeLog \
+	  $(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common/changelog.ooo-build
+	gzip -f9 \
+	  $(PKGDIR)-common/usr/share/doc/openoffice.org$(VER)-common/changelog.ooo-build
+    ifeq "$(PACKAGE_TTF_OPENSYMBOL)" "y"
+	dh_installdocs -pttf-opensymbol
+	dh_installchangelogs -pttf-opensymbol
+    endif
+  endif
+
+	# l10 & help packages (with docdir symlinks)
+	for PKG in $(HELP_PACKAGES) $(LANG_PACKAGES); do \
+	  case $$PKG in \
+	    *l10n-en-us) target=openoffice.org$(VER)-common;; \
+	    *) target=openoffice.org$(VER)-l10n-common; \
+	  esac; \
+	  rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
+	  mkdir -p debian/$$PKG/usr/share/doc; \
+	  ln -sf $$target debian/$$PKG/usr/share/doc/$$PKG; \
+	  rm -f debian/$$PKG.p*; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/copyright; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/changelog.Debian*; \
+	  sed "s/@PKGNAME@/$$PKG/g;s/@PKGTARGET@/$$target/g" \
+	    debian/deppackage.postinst.in > debian/$$PKG.postinst; \
+	done
+
+	# indep packages (with docdir symlinks)
+	for s in \
+	  -dev-doc -gtk-gnome -java-common -qa-api-tests -l10n-en-us \
+	  -style-default -style-industrial -style-crystal -style-hicontrast \
+	  -style-andromeda -style-tango -style-human \
+	  -l10n-in -l10n-za -filter-mobiledev -dtd-officedocument1.0; \
+	do \
+	  PKG=openoffice.org$(VER)$$s; \
+	  echo " $(PACKAGES) " | fgrep -q " $$PKG " || continue; \
+	  target=openoffice.org$(VER)-common; \
+	  rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/copyright; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/changelog.Debian*; \
+	  mkdir -p debian/$$PKG/usr/share/doc; \
+	  ln -sf $$target debian/$$PKG/usr/share/doc/$$PKG; \
+	  case "$$s" in -style-*) continue; esac; \
+	  sed "s/@PKGNAME@/$$PKG/g;s/@PKGTARGET@/$$target/g" \
+	    debian/deppackage.postinst.in >> debian/$$PKG.postinst; \
+       done
+
+	PKG=broffice.org; \
+	  echo " $(PACKAGES) " | fgrep -q " $$PKG " || exit 0; \
+	  target=openoffice.org$(VER); \
+	  rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/copyright; \
+	  rm -f debian/$$PKG/usr/share/doc/$$target/changelog.Debian*; \
+	  mkdir -p debian/$$PKG/usr/share/doc; \
+	  ln -sf $$target debian/$$PKG/usr/share/doc/$$PKG
+
+	# dependency packages (with docdir symlinks)
+	for s in '' -gnome -kde -evolution -math -base -calc -writer -draw -impress; do \
+	  PKG=openoffice.org2$$s; \
+	  echo " $(PACKAGES) " | fgrep -q " $$PKG " || continue; \
+	  target=openoffice.org$$s; \
+	  rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
+	  mkdir -p debian/$$PKG/usr/share/doc; \
+	  ln -sf $$target debian/$$PKG/usr/share/doc/$$PKG; \
+	  sed "s/@PKGNAME@/$$PKG/g;s/@PKGTARGET@/$$target/g" \
+	    debian/deppackage.postinst.in > debian/$$PKG.postinst; \
+	done
+endif
+	debian/scripts/installoverrides -i
+	dh_link -i
+	dh_fixperms -i
+	dh_desktop -i
+ifneq "$(ETCH_BACKPORT)" "y"
+	dh_icons -i
+endif
+	dh_installxmlcatalogs -i
+	dh_compress -X.py -X.mk -X.sxd
+	dh_installdeb -i
+	dh_gencontrol -i $(DEBHELPER_OPTIONS) -Nlibpcvslib-perl -- \
+		-V'base-version=$(BASE_VERSION)' \
+		-V'help-l10n-virtual-version=$(HELP_L10N_VIRTUAL_VERSION)' \
+		-V'common-bsh-depends=$(COMMON_BSH_DEPENDS)' \
+		-V'java-common-depends=$(JAVA_COMMON_DEPENDS)' \
+		-V'java-common-java-depends=$(JAVA_COMMON_JAVA_DEPENDS)' \
+		-V'Binary-Version=$(BINARY_VERSION)' \
+		-V'ooo-binfilter-dep=$(OOO_BINFILTER_DEP)' \
+		-V'dbg-dbg-suggests=$(DBG_DBG_SUGGESTS)' \
+		-v$(BINARY_VERSION)
+ifeq "$(PACKAGE_PCVSLIB)" "y"
+	dh_gencontrol -plibpcvslib-perl -- \
+		-v0.02+OOo`echo $(BINARY_VERSION) | cut -d: -f2`
+endif
+	dh_md5sums -i
+	dh_builddeb -i $(DEBHELPER_OPTIONS) $(BUILDDEB_OPTIONS)
+
+	touch $@
+
+binary: binary-arch binary-indep
+
+# Get ooo-build
+get-ooo-build:
+	svn co $(OOO_BUILD_SVN) ooo-build
+	cd ooo-build && NOCONFIGURE=1 ./autogen.sh
+
+# FIXME: works for milestones only...
+get-orig-source:
+	if test -n "$$TMP"; then TMPD=`mktemp -d -p $$TMP`; else \
+		TMPD=`mktemp -d`; fi && \
+	cd $$TMPD && mkdir -p openoffice.org-$(UPSTREAM_VERSION)/ooo-build/src && \
+	cd openoffice.org-$(UPSTREAM_VERSION)/ooo-build/src && \
+		wget http://download.go-oo.org/$(MWS)/$(TAG)-core.tar.bz2 && \
+		wget http://download.go-oo.org/$(MWS)/$(TAG)-binfilter.tar.bz2 && \
+		wget http://download.go-oo.org/$(MWS)/$(TAG)-lang.tar.bz2 && \
+		wget http://download.go-oo.org/$(MWS)/$(TAG)-system.tar.bz2 && \
+		wget http://download.go-oo.org/$(MWS)/$(TAG)-sdk_oo.tar.bz2 && \
+		tar xfvj $(TAG)-core.tar.bz2 && \
+			rm -rf $(TAG)/external/jars && \
+			rm -rf $(TAG)/xalan && \
+		rm $(TAG)/smoketestoo_native/statjars/README.jfreechart && \
+		rm $(TAG)/smoketestoo_native/statjars/*.jar && \
+		for i in `find $(TAG)/psprint_config/configuration/ppds ! -name "SGEN*" -name "*.PS"`; do \
+			rm $$i; \
+		done && \
+		tar cfvj $(TAG)-core.tar.bz2.dfsg $(TAG) && ln -sf $(TAG)-core.tar.bz2.dfsg $(TAG)-core.tar.bz2 && rm -rf $(TAG) && \
+		tar xfvj $(TAG)-system.tar.bz2 && \
+			for i in da_DK en_GB en_US nl_NL ru_RU; do \
+				rm $(TAG)/dictionaries/$$i/hyph_$${i}.dic; \
+			done && \
+		rm $(TAG)/bitstream_vera_fonts/download/liberation-fonts.zip && \
+		tar cfvj $(TAG)-system.tar.bz2.dfsg $(TAG) && ln -sf $(TAG)-system.tar.bz2.dfsg $(TAG)-system.tar.bz2 && rm -rf $(TAG) && \
+		cd $$TMPD && tar cfvz openoffice.org_$(UPSTREAM_VERSION).orig.tar.gz openoffice.org-$(UPSTREAM_VERSION) && \
+		rm -rf openoffice.org-$(UPSTREAM_VERSION) && \
+		mv  openoffice.org_$(UPSTREAM_VERSION).orig.tar.gz $(CURDIR)/..
+
+# Download the latest sources needed for ooo-build. Note that is
+# might download more than actually needed here....
+download: ooo-build/config.status
+	ooo-build/download	
+
+# Update debian and ooo-build directories from version control
+vcsupdate:
+	cd debian && bzr update
+	cd ooo-build && svn up
+
+.PHONY: control
+.PHONY: clean-debdir clean-instsetoo clean-objectdirs clean default configure
+.PHONY: build build-indep build-arch install-arch install-indep
+.PHONY: $(stampdir_targets)
+
+# vim:set noet ai sts=8 sw=8 tw=0:
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base-core.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-base-core.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-base-core: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-base.control.bug
@@ -0,0 +1,2 @@
+report-with: openoffice.org-core
+package-status: unixodbc libmyodbc odbc-postgresql libsqliteodbc tdsodbc mdbtools libmysql-java libpg-java libsapdbc-java
--- openoffice.org-2.4.1.orig/debian/openoffice.org-dtd-officedocument1.0.xmlcatalogs
+++ openoffice.org-2.4.1/debian/openoffice.org-dtd-officedocument1.0.xmlcatalogs
@@ -0,0 +1,2 @@
+local;debian/openoffice.org-dtd-officedocument1.0/usr/lib/openoffice/share/dtd/officedocument/1_0/catalog.xml;/usr/share/xml/openoffice.org-dtd-officedocument1.0/catalog.xml
+root-and-package;public;-//OpenOffice.org//DTD OfficeDocument 1.0//EN;/usr/share/xml/openoffice.org-dtd-officedocument1.0/catalog.xml
--- openoffice.org-2.4.1.orig/debian/control.postgresql.in
+++ openoffice.org-2.4.1/debian/control.postgresql.in
@@ -0,0 +1,15 @@
+Package: openoffice.orgVER-sdbc-postgresql
+Section: misc
+Priority: optional
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}, openoffice.orgVER-core (>> 1:2.3.0~oog680m1)
+Conflicts: openoffice.orgVER-java-common (<< 2.3.0~src680m212), openoffice.orgVER-gcj (<< 2.3.0~src680m212)
+Recommends: postgresql
+Description: PostgreSQL SDBC driver for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ The PostgreSQL SDBC Driver allows to use the PostgreSQL database from
+ OpenOffice.org without any wrapper layer such as ODBC or JDBC.
+Homepage: http://dba.openoffice.org/drivers/postgresql/
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base.menu.in
+++ openoffice.org-2.4.1/debian/openoffice.org-base.menu.in
@@ -0,0 +1,5 @@
+?package(openoffice.org-base):needs="X11" section="Applications/Data Management" \
+  title="OpenOffice.org Base" command="/usr/bin/oobase"\
+  kderemove="y"\
+  icon="/usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-base.xpm"
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-dev.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-dev.overrides.lintian
@@ -0,0 +1,2 @@
+openoffice.org-dev: binary-or-shlib-defines-rpath
+openoffice.org-dev: csh-considered-harmful
--- openoffice.org-2.4.1.orig/debian/openoffice.org-report-builder.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-report-builder.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-report-builder: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-evolution.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-evolution.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-evolution: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-base.manpages
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/oobase.1
--- openoffice.org-2.4.1.orig/debian/mozilla-openoffice.org.overrides.lintian
+++ openoffice.org-2.4.1/debian/mozilla-openoffice.org.overrides.lintian
@@ -0,0 +1 @@
+mozilla-openoffice.org: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-core.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-core.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-core: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-draw.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-draw.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base.overrides.lintian.in
+++ openoffice.org-2.4.1/debian/openoffice.org-base.overrides.lintian.in
@@ -0,0 +1,3 @@
+openoffice.org-base: binary-or-shlib-defines-rpath
+openoffice.org-base: menu-icon-missing /usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-base.xpm
+openoffice.org-base: menu-item-contains-unknown-tag kderemove /usr/share/menu/openoffice.org-base:4
--- openoffice.org-2.4.1.orig/debian/control.mozilla.in
+++ openoffice.org-2.4.1/debian/control.mozilla.in
@@ -0,0 +1,28 @@
+Package: mozilla-openoffice.orgVER
+Section: net
+Architecture: %OOO_NPSOPLUGIN_ARCHS%
+Enhances: iceape-browser,
+ iceweasel,
+ mozilla-browser,
+ firefox,
+ openoffice.orgVER,
+ openoffice.orgVER-core
+Depends: ${shlibs:Depends},
+ openoffice.orgVER-core (>= 2.2.0-2)
+Recommends: iceweasel | firefox | iceape-browser | konqueror-nsplugins,
+ openoffice.org-writer,
+ openoffice.org-calc,
+ openoffice.org-draw,
+ openoffice.org-impress,
+ openoffice.org-math,
+ openoffice.org-base
+Xb-Npp-Applications: ec8030f7-c20a-464f-9b0e-13a3a9e97384, 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a 
+Xb-Npp-Name: OpenOffice.org Plug-in
+Xb-Npp-MimeType: application/vnd.stardivision.calc, application/vnd.stardivision.chart, application/vnd.stardivision.draw, application/vnd.stardivision.impress, application/vnd.stardivision.impress-packed, application/vnd.stardivision.math, application/vnd.stardivision.writer, application/vnd.stardivision.writer-global, application/vnd.staroffice.writer, application/vnd.sun.xml.calc, application/vnd.sun.xml.calc.template, application/vnd.sun.xml.draw, application/vnd.sun.xml.draw.template, application/vnd.sun.xml.impress, application/vnd.sun.xml.impress.template, application/vnd.sun.xml.math, application/vnd.sun.xml.writer, application/vnd.sun.xml.writer.global, application/vnd.sun.xml.writer.template, application/vnd.oasis.opendocument.text, application/vnd.oasis.opendocument.text-template, application/vnd.oasis.opendocument.text-master, application/vnd.oasis.opendocument.text-web, application/vnd.oasis.opendocument.spreadsheet, application/vnd.oasis.opendocument.spreadsheet-template, application/vnd.oasis.opendocument.graphics, application/vnd.oasis.opendocument.graphics-template, application/vnd.oasis.opendocument.presentation, application/vnd.oasis.opendocument.presentation-template, application/vnd.oasis.opendocument.formula
+Description: OpenOffice.org Mozilla plugin
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains a Mozilla/Netscape compatible plugin which can handle
+ all OOo documents.
+
--- openoffice.org-2.4.1.orig/debian/catalog.xml
+++ openoffice.org-2.4.1/debian/catalog.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN"
+  "file:///usr/share/xml/schema/xml-core/catalog.dtd">
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+<public publicId="-//OpenOffice.org//DTD OfficeDocument 1.0//EN" uri="/usr/lib/openoffice/share/dtd/officedocument/1_0/office.dtd"/>
+</catalog>
--- openoffice.org-2.4.1.orig/debian/openoffice.org-common.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-common.manpages
@@ -0,0 +1,3 @@
+debian/tmp/usr/share/man/man1/ooffice.1
+debian/tmp/usr/share/man/man1/unopkg.1
+debian/tmp/usr/share/man/man1/oofromtemplate.1
--- openoffice.org-2.4.1.orig/debian/openoffice.org-writer.menu.in
+++ openoffice.org-2.4.1/debian/openoffice.org-writer.menu.in
@@ -0,0 +1,6 @@
+?package(openoffice.org-writer):needs="X11" section="Applications/Office"\
+  title="OpenOffice.org Writer" command="/usr/bin/oowriter"\
+  hints="Word Processors"\
+  kderemove="y"\
+  icon="/usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-writer.xpm"
+
--- openoffice.org-2.4.1.orig/debian/control.mono.in
+++ openoffice.org-2.4.1/debian/control.mono.in
@@ -0,0 +1,16 @@
+Package: libuno-cil
+Architecture: %OOO_MONO_ARCHS%
+Depends: ${shlibs:Depends},
+ openoffice.orgVER-core (>> ${base-version}),
+ mono-gac,
+ ${cli:Depends}
+Description: CLI binding for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the CLI bindings to OpenOffice.org for
+ accessing the OpenOffice.org API from Mono languages (e.g. C# and Boo)
+ .
+ Note that currently the use of Mono for add-ins & scripting inside
+ OpenOffice.org is *not* yet supported.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-officebean.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-officebean.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-officebean: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-impress.overrides.lintian.in
+++ openoffice.org-2.4.1/debian/openoffice.org-impress.overrides.lintian.in
@@ -0,0 +1,4 @@
+openoffice.org-impress: binary-or-shlib-defines-rpath
+openoffice.org-impress: menu-icon-missing /usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-impress.xpm
+openoffice.org-impress: menu-item-contains-unknown-tag kderemove /usr/share/menu/openoffice.org-impress:5
+openoffice.org-impress: desktop-command-not-in-package /usr/share/applications/ooo-impress.desktop ooffice
--- openoffice.org-2.4.1.orig/debian/udk-java-ref.in
+++ openoffice.org-2.4.1/debian/udk-java-ref.in
@@ -0,0 +1,7 @@
+Document: udk-java-ref
+Title: UDK @UDK_MAJOR@.@UDK_MINOR@.@UDK_MICRO@ Java API Reference
+Author: Sun Microsystems, Inc.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/openoffice.org-dev/docs/java/ref/index.html
--- openoffice.org-2.4.1.orig/debian/libmythes-dev.overrides.lintian
+++ openoffice.org-2.4.1/debian/libmythes-dev.overrides.lintian
@@ -0,0 +1 @@
+libmythes-dev: executable-not-elf-or-script ./usr/share/mythes/th_gen_idx.pl
--- openoffice.org-2.4.1.orig/debian/module-po.map
+++ openoffice.org-2.4.1/debian/module-po.map
@@ -0,0 +1,38 @@
+avmedia			ooo-unused
+basctl			ooo-basic
+basic			ooo-basic
+chart2			ooo-calc
+crashrep		ooo-unused
+dbaccess		ooo-base
+desktop			ooo-commongui
+extensions		ooo-other
+filter			ooo-other
+forms			ooo-other
+fpicker			ooo-commongui
+framework		ooo-other
+goodies			ooo-other
+helpcontent2		ooo-help
+instsetoo_native	ooo-common
+officecfg		ooo-commongui
+offmgr			ooo-unused
+padmin			ooo-padmin
+readlicense_oo		ooo-common
+sc			ooo-calc
+scaddins		ooo-calc
+sch			ooo-calc
+scp2			ooo-other
+sd			ooo-draw
+setup2			ooo-unused
+sfx2			ooo-commongui
+shell			ooo-other
+so3			ooo-calc
+starmath		ooo-math
+svtools			ooo-common
+svx			ooo-draw
+sw			ooo-writer
+sysui			ooo-commongui
+toolkit			ooo-other
+uui			ooo-other
+vcl			ooo-common
+wizards			ooo-other
+xmlsecurity		ooo-other
--- openoffice.org-2.4.1.orig/debian/openoffice.org-sdbc-postgresql.script.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-sdbc-postgresql.script.bug
@@ -0,0 +1,4 @@
+#!/bin/sh
+# this is a legacy package, so we need to find it frst
+id=`/usr/lib/openoffice/program/unopkg list --shared | grep Identifier:.*postgresql-sdbc | cut -d":" -f2`
+/usr/lib/openoffice/program/unopkg list --shared $id >&3
--- openoffice.org-2.4.1.orig/debian/openoffice.org-base.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-base.mime
@@ -0,0 +1,11 @@
+###
+# shared-mime-info
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.database; soffice -base '%s'; edit=soffice -base '%s'; test=test -n "$DISPLAY"; description="OpenDocument Database"; nametemplate=%s.odb; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.base; soffice -writer '%s'; edit=soffice -writer '%s'; description="OpenOffice.org Database"; nametemplate=%s.sdb; priority=8
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/libuno-cil.overrides.lintian
+++ openoffice.org-2.4.1/debian/libuno-cil.overrides.lintian
@@ -0,0 +1 @@
+libuno-cil: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-officebean.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-officebean.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core
--- openoffice.org-2.4.1.orig/debian/scripts/vars.amd64
+++ openoffice.org-2.4.1/debian/scripts/vars.amd64
@@ -0,0 +1 @@
+LIBSUFFIX=lx
--- openoffice.org-2.4.1.orig/debian/scripts/vars.ppc64
+++ openoffice.org-2.4.1/debian/scripts/vars.ppc64
@@ -0,0 +1 @@
+LIBSUFFIX=lp
--- openoffice.org-2.4.1.orig/debian/scripts/vars.s390
+++ openoffice.org-2.4.1/debian/scripts/vars.s390
@@ -0,0 +1 @@
+LIBSUFFIX=l3
--- openoffice.org-2.4.1.orig/debian/scripts/fix_image_rgb
+++ openoffice.org-2.4.1/debian/scripts/fix_image_rgb
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+
+temp=`mktemp -q`
+convert -compress none $1 $temp
+# thanks to Martin Hasch <hasch@scan-plus.de> for this tip.
+bmptoppm $temp | ppmtobmp -bpp 24 > $2
+rm -f $temp
+
--- openoffice.org-2.4.1.orig/debian/scripts/vars.ia64
+++ openoffice.org-2.4.1/debian/scripts/vars.ia64
@@ -0,0 +1 @@
+LIBSUFFIX=la
--- openoffice.org-2.4.1.orig/debian/scripts/vars.mips
+++ openoffice.org-2.4.1/debian/scripts/vars.mips
@@ -0,0 +1 @@
+LIBSUFFIX=lm
--- openoffice.org-2.4.1.orig/debian/scripts/vars.arm
+++ openoffice.org-2.4.1/debian/scripts/vars.arm
@@ -0,0 +1 @@
+LIBSUFFIX=lr
--- openoffice.org-2.4.1.orig/debian/scripts/cleandupes
+++ openoffice.org-2.4.1/debian/scripts/cleandupes
@@ -0,0 +1,186 @@
+#! /usr/bin/python
+
+# read file input from stdin, which has the output of the command
+# fdupes --reverse --sameline --size <directory> ...
+
+import os, re, sys, fileinput, getopt
+
+class Duplicate:
+    def __init__(self, prefix, base, paths, size=-1):
+        self.size = size
+        self.files = {'common': [], 'l10n-en-us': []}
+        for path in paths:
+            match = re.match(prefix + '/' + base + r'-([^/]+)(.*)', path)
+            pkg, fn = match.groups()[:2]
+            self.files.setdefault(pkg, []).append(fn)
+
+        # one name to identify the duplicate
+        if len(self.files['common']):
+            self.id = self.files['common'][0]
+        elif len(self.files['l10n-en-us']):
+            self.id = self.files['l10n-en-us'][0]
+        else:
+            other_files = [files for pkg, files in self.files.items()
+                           if not pkg in ('common', 'l10n-en-us')]
+            self.id = other_files[0][0]
+
+    def is_candidate(self):
+        """do we want to replace that one ..."""
+        if len(self.files['common']) > 1 or len(self.files['l10n-en-us']) > 1:
+            # inter-package symlinks in -common or -l10n-en-us
+            if len(self.files) == 2:
+                # not references by any other package
+                return False
+        if len(self.files['common']) < 1 and len(self.files['l10n-en-us']) < 1:
+            # nothing to link to
+            return False
+        # see if we have duplicates in other packages
+        return len(self.files) > 2
+
+    def get_filenames(self, replace_only=False):
+        names = []
+        for pkg, files in self.files.items():
+            if replace_only and pkg in ('common', 'l10n-en-us'):
+                continue
+            names.extend(files)
+        return names
+
+    def get_target(self):
+        if len(self.files['common']):
+            return 'common', self.files['common'][0]
+        if len(self.files['l10n-en-us']):
+            return 'common', self.files['l10n-en-us'][0]
+        raise Exception, "no target file"
+
+    def statistics(self, verbose=False):
+        num_in_common = len(self.files['common']) + len(self.files['l10n-en-us'])
+        num_in_others = len(self.get_filenames(replace_only=True))
+        pkgs = ' '.join(self.files.keys()).replace('l10n-', '')
+        print "common: %2d, others: %2d, size: %d" % (num_in_common, num_in_others, self.size)
+        if not verbose:
+            print "    %s" % self.id
+        print "    %s" % pkgs
+        if verbose:
+            print '\t' + '\n\t'.join(self.get_filenames())
+
+def calc_savings(duplicates):
+    savings = {}
+    for dup in duplicates:
+        if not dup.is_candidate():
+            continue
+        for pkg, files in dup.files.items():
+            if pkg in ('common', 'l10n-en-us'):
+                continue
+            sizes = dup.size * len(files)
+            total = savings.get(pkg, 0) + sizes
+            savings[pkg] = total
+    return savings
+
+def calc_target_link(src_path, dst_path):
+    assert dst_path[0] == '/' and src_path[0] == '/'
+    src_dirs = src_path[1:].split('/')
+    dst_dirs = dst_path[1:].split('/')
+    common_idx = 0
+    while src_dirs[common_idx] == dst_dirs[common_idx]:
+        common_idx += 1
+    if common_idx == 0:
+        new_dirs = [''] + src_dirs
+    else:
+        updir_count = len(dst_dirs) - common_idx - 1
+        new_dirs = ['..' for i in range(updir_count)] + src_dirs[common_idx:]
+    return '/'.join(new_dirs)
+
+def remove_and_symlink(duplicates, prefix, base, dryrun=False, verbose=False):
+    for dup in duplicates:
+        if not dup.is_candidate():
+            continue
+        for pkg, files in dup.files.items():
+            if pkg in ('common', 'l10n-en-us'):
+                continue
+            target_pkg, target_name = dup.get_target()
+            for f in files:
+                target_link = calc_target_link(target_name, f)
+                pth = prefix + '/' + base + "-%s%s" % (pkg, f)
+                if verbose:
+                    print "DO: rm -f %s" % pth
+                if not dryrun:
+                    os.unlink(pth)
+                if verbose:
+                    print "DO: ln -s %s %s" % (target_link, pth)
+                if not dryrun:
+                    os.symlink(target_link, pth)
+    pass
+
+def main():
+    prog = os.path.basename(sys.argv[0])
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "b:np:v",
+                                   ["base=", "dry-run", "prefix=", "verbose"])
+    except getopt.GetoptError:
+        # print help information and exit:
+        print "usage: %s -p <prefix>|--prefix=<prefix> -b <base>|--base=<base> [-v|--verbose] [-n|--dry-run]" % prog
+        sys.exit(2)
+    verbose = False
+    dryrun = False
+    prefix = base = None
+    for o, a in opts:
+        if o in ("-v", "--verbose"):
+            verbose = True
+        if o in ("-n", "--dry-run"):
+            dryrun = True
+        if o in ("-b", "--base"):
+            base = a
+        if o in ("-p", "--prefix"):
+            prefix = a
+    if not prefix:
+        print "%s: Missing --prefix option" % prog
+        sys.exit(2)
+    if not base:
+        print "%s: Missing --base option" % prog
+        sys.exit(2)
+    if not os.path.isdir(prefix):
+        print "%s: Not a directory: %s" % (prog, prefix)
+        sys.exit(2)
+    del sys.argv[1:]
+    
+    size = -1
+    duplicates = []
+    for line in fileinput.input():
+        line = line[:-1]
+        m = re.match(r'(\d+) bytes each', line)
+        if m:
+            size = int(m.group(1))
+            continue
+        dup = Duplicate(prefix, base, line.split(), size)
+        duplicates.append(dup)
+        size = -1
+
+    if verbose:
+        print "========= Skip duplicates ========="
+        for dup in duplicates:
+            if not dup.is_candidate():
+                dup.statistics(verbose=True)
+        print
+    if verbose:
+        print "========= Replace duplicates ========="
+        for dup in duplicates:
+            if dup.is_candidate():
+                dup.statistics()
+        print
+
+    print "========= Savings per package ========="
+    saved_bytes = calc_savings(duplicates)
+    grand_total = 0
+    for pkg, total in saved_bytes.items():
+        print "%-10s: %9d" % (pkg, total)
+        grand_total = grand_total + total
+    print "===================="
+    print "%-10s: %9d" % ('TOTAL', grand_total)
+
+    if verbose:
+        print
+        print "========= Go! ========="
+    remove_and_symlink(duplicates, prefix, base, dryrun=dryrun, verbose=verbose)
+
+if __name__ == '__main__':
+    main()
--- openoffice.org-2.4.1.orig/debian/scripts/vars.kfreebsd-amd64
+++ openoffice.org-2.4.1/debian/scripts/vars.kfreebsd-amd64
@@ -0,0 +1 @@
+LIBSUFFIX=lx
--- openoffice.org-2.4.1.orig/debian/scripts/vars.i386
+++ openoffice.org-2.4.1/debian/scripts/vars.i386
@@ -0,0 +1 @@
+LIBSUFFIX=li
--- openoffice.org-2.4.1.orig/debian/scripts/vars.kfreebsd-i386
+++ openoffice.org-2.4.1/debian/scripts/vars.kfreebsd-i386
@@ -0,0 +1 @@
+LIBSUFFIX=li
--- openoffice.org-2.4.1.orig/debian/scripts/splitgsi
+++ openoffice.org-2.4.1/debian/scripts/splitgsi
@@ -0,0 +1,57 @@
+#! /usr/bin/python
+
+import sys
+
+map_fn = 'debian/module-po.map'
+help_submodules = set(['sbasic', 'scalc', 'schart', 'sdraw',
+                       'shared', 'simpress', 'smath', 'swriter'])
+
+def read_map(fn):
+    modules = {}
+    for line in file(fn):
+        module, poname = line.split()
+        modules[module] = poname
+    for submod in help_submodules:
+        modules['helpcontent2-' + submod] = 'ooo-help-' + submod
+        modules['helpcontent2-' + submod + '-guide'] = 'ooo-guide-' + submod
+    return modules
+
+def split(fn, dir, modules):
+    polists= {}
+    for poname in set(modules.values()):
+        polists[poname] = []
+    polists['ooo-unknown'] = []
+
+    for line in file(fn):
+        module, source = line.split(None, 2)[:2]
+        if module == 'helpcontent2':
+            try:
+                submodule = source.split('\\')[2]
+                if submodule in help_submodules:
+                    module = module + '-' + submodule
+                    if '\\guide\\' in source:
+                        module = module + '-guide'
+            except:
+                pass
+        polists[modules.get(module,'ooo-unknown')].append(line)
+
+    if polists['ooo-unknown'] == []:
+        del polists['ooo-unknown']
+    for poname in polists.keys():
+        if len(polists[poname]) == 0:
+            continue
+        fd = file('%s/%s.sdf' % (dir, poname), 'w')
+        fd.writelines(polists[poname])
+        fd.close()
+
+def main():
+    modules = read_map(map_fn)
+    if len(sys.argv) != 3:
+        print 'usage: splitgsi <gsi file> <target_dir>'
+        sys.exit(1)
+    gsi_fn = sys.argv[1]
+    target_dir = sys.argv[2]
+
+    split(gsi_fn, target_dir, modules)
+
+main()
--- openoffice.org-2.4.1.orig/debian/scripts/vars.solaris-i386
+++ openoffice.org-2.4.1/debian/scripts/vars.solaris-i386
@@ -0,0 +1 @@
+LIBSUFFIX=si
--- openoffice.org-2.4.1.orig/debian/scripts/installoverrides
+++ openoffice.org-2.4.1/debian/scripts/installoverrides
@@ -0,0 +1,69 @@
+#!/usr/bin/perl -w
+#
+# dh_installoverrides
+
+=head 1 NAME
+
+dh_installoverrides = install lintian/linda override files
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head 1 SYNOPSIS
+
+B<dh_installoverrides>
+
+=head1 DESCRIPTION
+
+dh_installoverrides is a debhelper program that is responsible for
+installing lintian and linda overrides into package build directories.
+
+If a file named debian/package.overrides.lintian exists, the it is installed
+into /usr/share/lintian/overrides/package.
+If a file named debian/package.overrides.linda exists, the it is installed
+into /usr/share/linda/overrides/package.
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+    my $tmp=tmpdir($package);
+
+    my $file=$package;
+
+    my $lintian_overrides=pkgfile($package,"overrides.lintian");
+    my $linda_overrides=pkgfile($package,"overrides.linda");
+
+    if($lintian_overrides ne '') {
+	if(! -d "$tmp/usr/share/lintian/overrides") {
+	    doit("install", "-d", "$tmp/usr/share/lintian/overrides");
+	}
+
+	doit("install","-p","-m644",$lintian_overrides,
+	     "$tmp/usr/share/lintian/overrides/$file");
+    }
+
+    if($linda_overrides ne '') {
+	if (! -d "$tmp/usr/share/linda/overrides") {
+	    doit("install", "-d", "$tmp/usr/share/linda/overrides");
+	}
+
+	doit("install", "-p", "-m644", $linda_overrides,
+	     "$tmp/usr/share/linda/overrides/$file");
+    }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper
+
+=head1 AUTHOR
+
+Rene Engelhard <rene@debian.org>
+
+=cut
--- openoffice.org-2.4.1.orig/debian/scripts/vars.armel
+++ openoffice.org-2.4.1/debian/scripts/vars.armel
@@ -0,0 +1 @@
+LIBSUFFIX=lr
--- openoffice.org-2.4.1.orig/debian/scripts/convert2po
+++ openoffice.org-2.4.1/debian/scripts/convert2po
@@ -0,0 +1,105 @@
+#! /bin/bash
+
+basedir=debian/l10n
+
+_convert2po()
+{
+    local lc=${1#*_*}
+    lc=${lc%*.sdf}
+
+    rm -rf $basedir/$lc
+    mkdir -p $basedir/$lc
+    $basedir/../splitgsi $basedir/export/GSI_$lc.sdf $basedir/$lc
+    cd $basedir/$lc
+    for f in *.sdf; do
+	d=${f%*.sdf}
+	mkdir -p ../$d $d
+	if [ "$lc" = en-US ]; then
+	    oo2po -P --progress=names --multifile=onefile -o ../$d/$d.pot $f
+	else
+	    oo2po --progress=names --multifile=onefile -l $lc -o ../$d/$lc.po $f
+	fi
+	rmdir $d
+    done
+    cd - >/dev/null
+    rm -rf $basedir/$lc
+}
+
+_convert2po_nosplit()
+{
+    local lc=${1#*_*}
+    lc=${lc%*.sdf}
+
+    rm -rf $basedir/$lc
+    mkdir -p $basedir/$lc
+    gsi=$basedir/export/GSI_$lc.sdf
+    if [ "$lc" = en-US ]; then
+	oo2po -P --progress=names --multifile=single -o $basedir/$lc $gsi
+	for f in $(cd $basedir/$lc && find * -type f); do
+	    d=${f%*.pot}
+	    mkdir -p $basedir/po/$d
+	    mv -f $basedir/$lc/$f $basedir/po/$d/${f##*/}
+	done
+    else
+	oo2po --progress=names --multifile=single -l $lc -o $basedir/$lc $gsi
+	for f in $(cd $basedir/$lc && find * -type f); do
+	    d=${f%*.po}
+	    mkdir -p $basedir/po/$d
+	    mv -f $basedir/$lc/$f $basedir/po/$d/$lc.po
+	done
+    fi
+    rm -rf $basedir/$lc
+}
+
+lc2rlc()
+{
+    local rlc
+    lc=$(echo $1 | tr - _)
+    case "$lc" in
+	*_IN) lc=${lc%*_IN};;
+	be_BY) lc=be;;
+	sr_CS) lc=sr;;
+	ti_ER) lc=ti;;
+    esac
+    echo $lc
+}
+
+export PYTHONPATH=~/translate
+
+oldbasedir=../source/debian/l10n
+newbasedir=$(pwd)/ubuntu/l10n
+rosettadir=$(pwd)/../ooo-dapper-2006-08-30
+
+_convert2oo()
+{
+    local lc=$1
+    [ "$lc" = en-US ] && return
+    rm -rf $newbasedir/$lc
+    mkdir -p $newbasedir/$lc
+    $basedir/../splitgsi $oldbasedir/export/GSI_$lc.sdf $newbasedir/$lc
+    rlc=$(lc2rlc $lc)
+    cd $newbasedir/$lc
+    for f in *.sdf; do
+        d=${f%*.sdf}
+	po=$rosettadir/rosetta-$d/$lc.po
+	if [ $lc != $rlc ]; then
+	    ln -sf $rlc.po $rosettadir/rosetta-$d/$lc.po
+	fi
+	[ -f $po ] || continue
+        echo $d
+	cp -p $d.sdf $d.oo
+        po2oo --multifile=onefile -l $lc -i $po -o ${f}2 -t $d.oo
+	rm -f $d.oo
+    done
+    mkdir unused
+    mv ooo-guide-* ooo-help-* unused/
+    cat *.sdf2 > ../GSI_$lc.sdf
+    cd - >/dev/null
+}
+
+convert=`basename $0`
+
+for lc in "$@"; do
+    echo $convert $lc
+    _${convert}_nosplit $lc
+done
--- openoffice.org-2.4.1.orig/debian/scripts/gsifilter.py
+++ openoffice.org-2.4.1/debian/scripts/gsifilter.py
@@ -0,0 +1,67 @@
+#! /usr/bin/python
+
+import os
+import sys
+from translate.storage import oo
+
+debug = False
+
+def dupfilter(mf, comment, fn):
+    n_all = n_translated = n_untranslated = n_same = 0
+    new_sources = []
+    for oofile in mf.listsubfiles():
+        of = mf.getoofile(oofile)
+        if oofile.startswith('helpcontent2'):
+            try:
+                elements = of.ooelements
+            except:
+                elements = of.units
+            for el in elements:
+                n_all += 1
+                if len(el.lines) == 1:
+                    if debug:
+                        print "WARNING: %s: no translation (%d lines)" % (helpfile, len(el.lines))
+                    n_untranslated += 1
+                    continue
+                if len(el.lines) > 2:
+                    if debug:
+                        print "WARNING: %s: too many translations (%d lines)" % (helpfile, len(el.lines))
+                        print "   ", el.lines[0].project, el.lines[0].sourcefile, el.lines[0].groupid,el.lines[0].localid
+                    continue
+                if el.lines[0].text == el.lines[1].text \
+                   and el.lines[0].helptext == el.lines[1].helptext \
+                   and el.lines[0].quickhelptext == el.lines[1].quickhelptext:
+                    n_same += 1
+                    if debug:
+                        print "Not translated: %s/%s/%s" % (el.lines[0].text, el.lines[0].helptext, el.lines[0].quickhelptext)
+                        print "                %s/%s/%s" % (el.lines[1].text, el.lines[1].helptext, el.lines[1].quickhelptext)
+                    el.lines = [line for line in el.lines if line.languageid == "en-US"]
+                else:
+                    n_translated += 1
+        new_sources.append(str(of))
+
+    try:
+        ratio = n_translated / float(n_all) * 100
+    except:
+        ratio = 0.0
+    print "%s: %15s: %4.1f%%, lines=%5d, translated=%5d, untranslated=%5d, same=%5d" \
+          % (comment, os.path.basename(fn), ratio, n_all, n_translated, n_untranslated, n_same)
+    print "\tremoved %d translations with same text" % n_same
+    sys.stdout.flush()
+
+    return ''.join(new_sources)
+
+if __name__ == '__main__':
+    for fn in sys.argv[1:]:
+        try:
+            mf = oo.oomultifile(fn)
+        except Exception, msg:
+            sys.stdout.write("ERROR reading %s: %s\n" % (fn, msg))
+	    sys.stdout.flush()
+            sys.exit(1)
+
+        filtered = dupfilter(mf, "help", fn)
+
+        fd = file(fn + '.tmp', 'w')
+        fd.write(filtered)
+        fd.close()
--- openoffice.org-2.4.1.orig/debian/scripts/gsistat.py
+++ openoffice.org-2.4.1/debian/scripts/gsistat.py
@@ -0,0 +1,59 @@
+#! /usr/bin/python
+
+import os
+import sys
+from translate.storage import oo
+
+debug = False
+
+def statistics(mf, helpfiles, comment, fn):
+    n_all = n_translated = n_untranslated = n_same = 0
+    for helpfile in helpfiles:
+        of = mf.getoofile(helpfile)
+        try:
+            elements = of.ooelements
+        except:
+            elements = of.units
+        for el in elements:
+            n_all += 1
+            if len(el.lines) == 1:
+                if debug:
+                    print "WARNING: %s: no translation (%d lines)" % (helpfile, len(el.lines))
+                n_untranslated += 1
+                continue
+            if len(el.lines) > 2:
+                if debug:
+                    print "WARNING: %s: too many translations (%d lines)" % (helpfile, len(el.lines))
+                    print "   ", el.lines[0].project, el.lines[0].sourcefile, el.lines[0].groupid,el.lines[0].localid
+                continue
+            if el.lines[0].text == el.lines[1].text \
+               and el.lines[0].helptext == el.lines[1].helptext \
+               and el.lines[0].quickhelptext == el.lines[1].quickhelptext:
+                n_same += 1
+                if debug:
+                    print "Not translated: %s/%s/%s" % (el.lines[0].text, el.lines[0].helptext, el.lines[0].quickhelptext)
+                    print "                %s/%s/%s" % (el.lines[1].text, el.lines[1].helptext, el.lines[1].quickhelptext)
+            else:
+                n_translated += 1
+
+    try:
+        ratio = n_translated / float(n_all) * 100
+    except:
+        ratio = 0.0
+    print "%s: %15s: %4.1f%%, lines=%5d, translated=%5d, untranslated=%5d, same=%5d" \
+          % (comment, os.path.basename(fn), ratio, n_all, n_translated, n_untranslated, n_same)
+    sys.stdout.flush()
+
+if __name__ == '__main__':
+    for fn in sys.argv[1:]:
+        try:
+            mf = oo.oomultifile(fn)
+        except Exception, msg:
+            sys.stdout.write("ERROR reading %s: %s\n" % (fn, msg))
+	    sys.stdout.flush()
+
+        helpfiles = [f for f in mf.listsubfiles() if not f.startswith('helpcontent2')]
+        statistics(mf, helpfiles, "msgs", fn)
+
+        helpfiles = [f for f in mf.listsubfiles() if f.startswith('helpcontent2')]
+        statistics(mf, helpfiles, "help", fn)
--- openoffice.org-2.4.1.orig/debian/scripts/vars.mipsel
+++ openoffice.org-2.4.1/debian/scripts/vars.mipsel
@@ -0,0 +1 @@
+LIBSUFFIX=lm
--- openoffice.org-2.4.1.orig/debian/scripts/move-if-change
+++ openoffice.org-2.4.1/debian/scripts/move-if-change
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# Copyright (C) 1996 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+if
+test -r $2
+then
+if
+cmp $1 $2 > /dev/null
+then
+echo $2 is unchanged
+rm -f $1
+else
+mv -f $1 $2
+fi
+else
+mv -f $1 $2
+fi
--- openoffice.org-2.4.1.orig/debian/scripts/vars.powerpc
+++ openoffice.org-2.4.1/debian/scripts/vars.powerpc
@@ -0,0 +1 @@
+LIBSUFFIX=lp
--- openoffice.org-2.4.1.orig/debian/scripts/vars.lpia
+++ openoffice.org-2.4.1/debian/scripts/vars.lpia
@@ -0,0 +1 @@
+LIBSUFFIX=li
--- openoffice.org-2.4.1.orig/debian/scripts/vars.sparc
+++ openoffice.org-2.4.1/debian/scripts/vars.sparc
@@ -0,0 +1 @@
+LIBSUFFIX=ls
--- openoffice.org-2.4.1.orig/debian/scripts/joinctrl.py
+++ openoffice.org-2.4.1/debian/scripts/joinctrl.py
@@ -0,0 +1,52 @@
+#! /usr/bin/python
+
+import sys, fileinput
+
+def splitlines():
+    fields = ('Build-Depends', 'Build-Conflicts', 'Build-Depends-Indep', 'Depends', 'Replaces',
+              'Provides', 'Conflicts', 'Recommends', 'Suggests')
+    for line in fileinput.input():
+        line = line[:-1]
+        field = None
+        for f in fields:
+            if line.startswith(f+':'):
+                field = f
+                break
+        if not field:
+            print line
+            continue
+        values = [f.strip() for f in line.split(':',1)[1].strip().split(',')]
+        if len(values) > 2:
+            print '%s: %s' % (field, ',\n '.join(values))
+        else:
+            print '%s: %s' % (field, ', '.join(values))
+
+    
+def joinlines():
+    fields = ('Build-Depends', 'Build-Conflicts', 'Build-Depends-Indep', 'Depends', 'Replaces',
+              'Provides', 'Conflicts', 'Recommends', 'Suggests')
+    buffer = None
+    for line in fileinput.input():
+        line = line[:-1]
+        if buffer:
+            if line.startswith(' '):
+                buffer = buffer + ' ' + line.strip()
+                continue
+            else:
+                print buffer
+                buffer = None
+        field = None
+        for f in fields:
+            if line.startswith(f+':'):
+                field = f
+                break
+        if field:
+            buffer = line.strip()
+            continue
+        print line
+
+def main():
+    #splitlines()
+    joinlines()
+
+main()
--- openoffice.org-2.4.1.orig/debian/openoffice.org-sdbc-postgresql.prerm.in
+++ openoffice.org-2.4.1/debian/openoffice.org-sdbc-postgresql.prerm.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org-sdbc-postgresql
+
+THIS_PACKAGE=openoffice.org-sdbc-postgresql
+THIS_SCRIPT=prerm
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	remove)
+		# this is a legacy package, so we need to find it first...
+                id=`/usr/lib/openoffice/program/unopkg list --shared | grep Identifier:.*postgresql-sdbc | cut -d":" -f2`
+                remove_extension $id
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-ogltrans.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-ogltrans.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-impress fglrx-glx ia32-fglrx-glx nvidia-glx nvidia-glx-legacy
--- openoffice.org-2.4.1.orig/debian/README
+++ openoffice.org-2.4.1/debian/README
@@ -0,0 +1,107 @@
+OpenOffice build system
+-----------------------
+
+Building the packages from source
+=================================
+Overview:
+  apt-get source openoffice.org
+  apt-get build-dep openoffice.org (to install build dependencies)
+    [ somehow broken yet, probably because of the various |'s ]
+  cd <source directory>
+  debuild
+
+Changing the build behaviour with DEB_BUILD_OPTIONS
+---------------------------------------------------
+These options are supported:
+
+  debug     - enable debug build.  See the buildprj target for instructions
+              about building individual modules with debug.
+
+  ccache    - enable the use of ccache during the build.  This is highly
+	      recommended if you plan on building the package more than once,
+	      or doing any development on the packages.  A typical speedup is
+	      from 11 hours to 3 hours on the second build (PIII 800Mhz).  Be
+	      aware that you need EXTRAPACKAGES="ccache" in /etc/pbuilderrc
+	      when trying to build openoffice.org with ccache in
+	      $DEB_BUILD_OPTIONS under pbuilder (this has no effect on speed,
+	      though because the cache does not persist in pbuilder)
+
+  num-cups=<n>
+            - enable n projects to be built in parallel (-P flag to build.pl).
+              The log output can get a little confusing, and some projects
+	      may fail still. You need to remove ooo-build/config.status if you
+	      change this value after interrupting a build.
+	      
+  from=<prj>
+            - Resume build from the specified project.  Useful if a build is 
+	      interrupted.
+
+  lang=<code>
+  	    - Build only the specified language
+
+The targets that are built during the package build
+---------------------------------------------------
+
+- targets run during the package build -
+
+configure          - Does prerequisites for the build like unpacking extra
+                     stuff and run configure in ooo-build. 
+
+build              - as the name says
+
+install            - Copy files from debian/tmp/pkg into the correct locations
+                     for the final package layout in debian/openoffice.org*
+	             where we need to do that here because it affects arch-dep
+		     and arch-indep stuff and therefore cannot be done in
+		     install-arch / install-indep.
+
+install-arch       - installs arch-dependent stuff into the arch-dep. packages
+install-indep      -  "       "-independent   "     "   "    "-indep. packages
+
+langpackgs         - Installs the language packgs
+helppkgs           - Installs the help packages
+
+maintscripts       - Generates  the maintainer scripts
+
+- clean targets -
+
+In addition to the normal 'clean', there are some partial clean operations for
+saving space without having to completely rebuild the packages:
+
+clean-debdir       - Clean up the package directories (about 830M).  Rebuilds
+                     start at 'setup'.
+
+clean-instsetoo    - Clean up the installation sets and package directories
+                     (about 2.5 Gb!).  Rebuilds start at 'insetsetoo'.
+
+clean-objectdirs   - Clean compilation results, but leave solver (cleans about
+		     600Mb in addition to instsetoo).  Rebuilds start at
+		     'dmake, but you can still develop and build individual
+                     projects.  This is the equivalent of downloading a
+                     preinstalled solver tree.
+
+- other targets -
+
+get-ooo-build      - get ooo-build
+download           - downloads needed files from ooo.ximian.com, normally
+                     not needed, already done
+cvsupdate          - as the name says ;-)
+
+environment        - show build environment
+
+makebinariestar    - make tarball of binaries in the output tree
+
+Build system file layout
+========================
+debian/scripts:
+  Directory containing various debian-specific build-related scripts.
+
+ooo-build/:
+  Checkout of ooo-build; containing the build scripts and the shared
+  patches (patches/); also the installation scripts for installing into
+  debian/tmp/pkg (-> ooinstall, package-ooo).
+
+  For adding patches; please do so in ooo-build.
+
+  See README and www/* for documentation.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-presentation-minimizer.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-presentation-minimizer.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org-presentation-minimizer
+
+THIS_PACKAGE=openoffice.org-presentation-minimizer
+THIS_SCRIPT=preinst
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	upgrade)
+		# this is a legacy package, so we need to find it first...
+		id=`/usr/lib/openoffice/program/unopkg list --shared | grep Identifier:.*presentation-minimizer | cut -d":" -f2`
+		remove_extension $id
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/control.ure.in
+++ openoffice.org-2.4.1/debian/control.ure.in
@@ -0,0 +1,32 @@
+Package: ure
+Section: libs
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}
+Recommends: java2-runtime
+Description: UNO runtime environment
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of OpenOffice.org, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal 
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+
+Package: ure-dbg
+Section: devel
+Priority: extra
+Architecture: %OOO_ARCHS%
+Depends: ${shlibs:Depends}, ure (= ${ure:Version}) 
+Description: UNO runtime environment -- debug symbols
+ The Uno Runtime Environment (URE) is the well-known UNO component model
+ of OpenOffice.org, packaged up as an individual product.
+ .
+ It offers you a flexible, low-overhead component model that is most ideal 
+ for (but not limited to) combining in one application components written in
+ different computer languages, and developed by different parties. You can use
+ it to create any kind of application, in whatever application domain you can
+ imagine.
+ .
+ This package contains the (detached) debug symbols for the URE.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-calc.overrides.lintian.in
+++ openoffice.org-2.4.1/debian/openoffice.org-calc.overrides.lintian.in
@@ -0,0 +1,3 @@
+openoffice.org-calc: binary-or-shlib-defines-rpath
+openoffice.org-calc: menu-icon-missing /usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-calc.xpm
+openoffice.org-calc: menu-item-contains-unknown-tag kderemove /usr/share/menu/openoffice.org-calc:5
--- openoffice.org-2.4.1.orig/debian/openoffice.org-report-builder.postinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-report-builder.postinst.in
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+THIS_PACKAGE=openoffice.org-report-builder
+THIS_SCRIPT=postinst
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "configure" -o "$1" = "upgrade" ]; then
+	add_extension /usr/lib/openoffice/share/extension/install/sun-report-builder.oxt
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-presentation-minimizer.prerm.in
+++ openoffice.org-2.4.1/debian/openoffice.org-presentation-minimizer.prerm.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org-sdbc-postgresql
+
+THIS_PACKAGE=openoffice.org-sdbc-postgresql
+THIS_SCRIPT=prerm
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	remove)
+		# this is a legacy package, so we need to find it first...
+                id=`/usr/lib/openoffice/program/unopkg list --shared | grep Identifier:.*presentation-minimizer | cut -d":" -f2`
+                remove_extension $id
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-java-common.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-java-common.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-java-common
+
+THIS_PACKAGE=openoffice.org-java-common
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if [ -L /usr/lib/openoffice/program/classes ]; then
+		rm /usr/lib/openoffice/program/classes
+		mkdir /usr/lib/openoffice/program/classes
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-evolution.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-evolution.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core evolution openoffice.org-base
--- openoffice.org-2.4.1.orig/debian/changelog
+++ openoffice.org-2.4.1/debian/changelog
@@ -0,0 +1,8534 @@
+openoffice.org (1:2.4.1-1ubuntu2.1) hardy-security; urgency=low
+
+  * SECURITY UPDATE: heap-based buffer overflows which may lead to arbitrary
+    code execution when processing crafted WMF files
+    - patches/src680/cws-sjfixes06.diff: fix integer overflows in
+      wmf/winwmf.cxx.
+    - http://util.openoffice.org/source/browse/util/svtools/source/filter.vcl/wmf/winwmf.cxx?r1=1.36&r2=1.36.114.1&view=patch
+    - CVE-2008-2237
+  * SECURITY UPDATE: heap-based buffer overflows which may lead to arbitrary
+    code execution when processing crafted EMF files
+    - patches/src680/cws-sjfixes09.diff: fix multiple parser flaws in
+      wmf/enhwmf.cxx.
+    - http://util.openoffice.org/source/browse/util/svtools/source/filter.vcl/wmf/enhwmf.cxx?r1=1.39&r2=1.39.114.1&view=patch
+    - CVE-2008-2238
+  * SECURITY UPDATE: symlink attack in senddoc which may lead to overwriting
+      arbitrary files
+    - debian/rules: remove leftover debugging echos in senddoc. Patch from
+      Debian
+    - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496361
+    - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=497618
+    - CVE-2008-4937
+
+ -- Jamie Strandboge <jamie@ubuntu.com>  Fri, 07 Nov 2008 15:21:36 -0600
+
+openoffice.org (1:2.4.1-1ubuntu2) hardy-proposed; urgency=low
+
+  * Resynchronise with ooo-build-2-4-1 (r12987).
+    - ooo-build/patches/src680/cws-cmcfixes47-sw.diff:
+      . Corrects mozilla-openoffice.org on 64-bit but leaving disabled for
+        hardy-updates. Bug: #105553
+    - ooo-build/patches/src680/linkwarn-sd-no-dnd-links.diff:
+      . Made drag and drop add pictures to Draw/Impress by value, not by link.
+        Closes LP: #80442
+    - ooo-build/patches/src680/ooocmcfixes46.diff:
+      . Added fix to call xlib_surface_create_with_xrender_format with the
+        right screen.
+    - ooo-build/patches/src680/svg-import-filter.diff:
+      . Fixed crash in optimizeGradientStops.
+    - ooo-build/patches/src680/sw-field-patch-fix-competing-protection.diff:
+      . Workaround for the competing protection problem. Closes LP: #215420
+    - ooo-build/patches/src680/vcl-fix-randr-heapcorruption.diff:
+      . Added better fix for the RandR crashes. Closes LP: #236676
+  * debian/rules:
+    - Correct openoffice.org-help-en-us to not depend on
+      openoffice.org-l10n-en-us. Closes LP: #220817
+  * ubuntu/desktop-templates.diff:
+    - Correct openoffice.org-draw menu item tooltip. Closes LP: #223396
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Fri, 27 Jun 2008 23:02:22 -0500
+
+openoffice.org (1:2.4.1-1ubuntu1) hardy-proposed; urgency=low
+
+  * Resynchronise with Debian (r1128).
+    - Install also other resolutions than 48x48 for the ooo-build/desktop
+      icons. Closes LP: #237484
+  * Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Add package openoffice.org-style-human.
+      . Add replaces openoffice.org-gtk (<< 2.0.3-1) for openoffice.org-gnome
+        dapper upgrade.
+      . Revert 'Only recommend -filter-binfilter' until Intrepid.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu-feisty.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/rules:
+      . Add BUILD_SPARC option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add USE_LZMA_COMPRESS option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support for Ubuntu specific bitmaps.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Use imagemagick instead of graphicsmagick.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/scripts/vars.lpia
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+  * Resynchronise with ooo-build-2-4-1 (r12862).
+  * ubuntu/*:
+    - Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 10 Jun 2008 20:42:13 -0500
+
+openoffice.org (1:2.4.1-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.1 final
+  * upload to unstable
+  * ooo-build:
+    - update (r12837)
+  * debian/control.in:
+    - only recommend -fitler-binfilter. (closes: #484287)
+    - conflict against libgtk2.0-0 = 2.12.10-1 on amd64 because of
+      #484580 and #484758.
+  * debian/rules:
+    - install also other resolutions than 48x48 for the ooo-build/desktop 
+      icons, thanks Chris Cheney
+  * debian/rules, debian/broffice.org.*.in:
+    - fixup openoffice.applications (closes: #485437) and stop specifying
+      unopkg with full paths (we don't do it for ooffice either and
+      /usr/bin/unopkg does it)
+  * debian/copyright:
+    - update
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 09 Jun 2008 20:15:06 +0200
+
+openoffice.org (1:2.4.1~rc2-1ubuntu1) hardy-proposed; urgency=low
+
+  * Resynchronise with Debian (r1120). Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Add package openoffice.org-style-human.
+      . Add replaces openoffice.org-gtk (<< 2.0.3-1) for openoffice.org-gnome
+        dapper upgrade.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu-feisty.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/rules:
+      . Add BUILD_SPARC option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add USE_LZMA_COMPRESS option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support for Ubuntu specific bitmaps.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Use imagemagick instead of graphicsmagick.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/scripts/vars.lpia
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+  * Resynchronise with ooo-build-2-4-1 (r12765).
+  * ubuntu/*:
+    - Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 03 Jun 2008 11:32:19 -0500
+
+openoffice.org (1:2.4.1~rc2-1) experimental; urgency=low
+
+  * OpenOffice.org 2.4.1 rc2 (OOH680_m17)
+  * ooo-build:
+    - update (r12720)
+  * debian/control.in:
+    - s/meta package/metapackage/
+  * debian/rules:
+    - fix typo in installing bug scripts/presubj for arch-indep packages
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 30 May 2008 13:42:13 +0200
+
+openoffice.org (1:2.4.1~rc1-1ubuntu1) hardy-proposed; urgency=low
+
+  * Resynchronise with Debian (r1116). Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Add package openoffice.org-style-human.
+      . Add replaces openoffice.org-gtk (<< 2.0.3-1) for openoffice.org-gnome
+        dapper upgrade.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu-feisty.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/rules:
+      . Add BUILD_SPARC option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add USE_LZMA_COMPRESS option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support for Ubuntu specific bitmaps.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Use imagemagick instead of graphicsmagick.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+  * Resynchronise with ooo-build-2-4-1 (r12701).
+  * ubuntu/*:
+    - Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Thu, 29 May 2008 08:31:57 -0500
+
+openoffice.org (1:2.4.1~rc1-1) experimental; urgency=low
+
+  * OpenOffice.org 2.4.1 rc1 (OOH680_m16)
+    - now doesn't need a patched icu (public SetBreakType) anymore for
+      building
+  * ooo-build:
+    - use ooo-build-2-4-1 branch
+    - update (r12682)
+      + allows to change broken java configuration
+        This closes: #451928, #452925
+        Most probably also closes: #454996
+  * debian/rules:
+    - we also need to build-depend on libnss3-dev (closes: #481996)
+    - reenable system-icu for etch backports
+    - add get-orig-source target
+    - remove overseen $(OOO_ARCHS); make control/maintscripts depend on all
+      .ins for it (removes duplicate contro.gcj.in). Thanks Chris Cheney
+    - disable mono on amd64 and OGLtrans on 64-bit archs
+    - improve USE_STLPORT/ENABLE_MONO/ENABLE_OGLTRANS/MOZILLA conditionals to 
+      add the right build-deps even when the arch we generate it doesn't build
+      e.g. with STLport
+  * debian/control.in:
+   - remove libicu build-conflicts
+  * debian/control.in, debian/rules:
+    - libsapdbc-java was removed, stop suggesting it and adding it to OOos
+      CLASSPATH
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 27 May 2008 22:44:43 +0200
+
+openoffice.org (1:2.4.1~ooh680m14-1ubuntu1) hardy-proposed; urgency=low
+
+  * Resynchronise with Debian (r1108). Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Add package openoffice.org-style-human.
+      . Add replaces openoffice.org-gtk (<< 2.0.3-1) for openoffice.org-gnome
+        dapper upgrade.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu-feisty.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/rules:
+      . Add BUILD_SPARC option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add USE_LZMA_COMPRESS option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support for Ubuntu specific bitmaps.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Use imagemagick instead of graphicsmagick.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+  * Resynchronise with ooo-build-2-4-1 (r12591).
+    - ooo-build/patches/src680/ooo86080.unopkg.bodge.diff:
+      . Added patch from Fedora to workaround unopkg issues. Closes LP: #220911
+    - ooo-build/patches/src680/ooo87071.sd.backgroundfix.diff:
+      . Added patch from Fedora to allow slide master background to be saved.
+        Closes LP: #201500
+    - ooo-build/patches/src680/sc-move-from-origin.diff:
+      . Cutting a single cell and moving the cursor should move relative to the
+        selected cell, not relative whatever the previous nBlockStartXOrig
+        contents are. Close LP: #225351
+    - ooo-build/patches/src680/sc-openformula-frequency.diff:
+      . Fixed a silly regression that prevents the built-in FREQUENCY function
+        from working properly by changing the order of the bin values randomly.
+        Closes LP: #209474
+    - ooo-build/patches/src680/sc-overwrite-char-font-attrs.diff:
+      . Don't overwrite character font attributes while importing XML document,
+        because doing so would remove any character font attributes in cells
+        with their own font attributes. Close LP: #227487
+  * ubuntu/*:
+    - Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 20 May 2008 15:51:42 -0500
+
+openoffice.org (1:2.4.1~ooh680m14-1) experimental; urgency=low
+
+  * OpenOffice.org 2.4.1 snapshot OHO680_m14
+  * ooo-build:
+   - update (r12554)
+  * debian/rules:
+    - update for new xulrunner 1.9 packaging using iceape-dev.
+      Use MOZILLA=iceape (closes: #480813)
+    - specify -Nopenoffice.org-gcj when building without Java
+    - remove extra dependency changing for libhyphen0, we now get a
+      dependeny on 2.4 "for free"; build-dep on libhyphen-dev (>= 2.4)
+  * debian/control.qa.in:
+    - fix -qa-tools' depends
+  * debian/copyright: fix "Obtained from", mention go-oo.org. Remove obsolete
+    section about odk/sdk_oo
+  * debian/control.in, debian/rules:
+    - fix Vcs-Svn:, make it a generated field
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 15 May 2008 00:23:58 +0200
+
+openoffice.org (1:2.4.0-6) unstable; urgency=low
+
+  * ooo-build:
+    - update (r12409)
+  * debian/rules:
+    - fix debian/rules to add archs to OOO_SCSOLVER_ARCHS when they build OOo
+      to not get useless build-deps there
+    - support xulrunner 1.9
+    - fix java-gcj-compat-dev build-depends conditional logic to set the
+      right versioned build-dep for !etch
+    - correct control.mono.in inclusion regardless of host architecture
+    - explicitely set ENABLE_REPORTDESIGN=n in arch conditonals for
+      disabling java (-> arm(el)). Only depend on openoffice.org-writer2latex
+      when Java is enabled
+    - also install pythonscript.py into $(SITE_PACKAGES)
+  * debian/control.in:
+    - make the openoffice.org metapackage depend on ttf-dejavu, since upstream
+      OOo ships it
+  * debian/scripts/vars.ppc64: actually add
+  * debian/control.in, debian/rules:
+    - remove the "build libmythes-dev only" option as OOo is now enabled
+      on all important archs. Remove the now unndeeded arch specifiers
+      on builddeps. Hopefully makes mips(el) parse the builddep line
+      again without segfault...
+  * debian/control.in:
+    - make impress recommend libxrandr2 as OOo now can detect size
+      changes through it
+    - build-depend against libxrandr-dev
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 01 May 2008 16:25:12 +0200
+
+openoffice.org (1:2.4.0-5) unstable; urgency=low
+
+  * rebuild with python-central 0.6.4 (closes: #476678)
+  * ooo-build
+    - use ooo-build-2-4 branch
+    - update (r12270)
+      + patches/src680/configures-explicit-arch.diff: fix up for
+        the internal icu build
+      + patches/src680/sc-openformula-frequency.diff: fixed a silly regression
+        that prevents the built-in FREQUENCY function from working properly
+        (closes: #477104)
+      + patches/src680/sdk-settings-honour-linux.diff: honour also linux
+        as in s390-ibm-linux instead of only linux-gnu (closes: #477153)
+  * debian/rules:
+    - revert libstlport4.6-dev builddep bump. Will break our builddeps
+      for etch-backports and testing now has already -ldbl
+    - set PACKAGE_NPSOPLUGIN=n when MOZILLA= (--disable-mozilla)
+    - enable scsolver for armel (lp-solve now available)
+  * debian/control.in, debian/rules:
+    - only add a dependency on openoffice.org-officebean to openoffice.org
+      when openoffice.org-officebean is actually built (i.e. we build with
+      Java), thaks Chris Cheney
+  * debian/changelog: mention the various security fixes in OOH680_m5 and
+    OOH680_m6
+  * merge from Ubuntu:
+    - debian/rules:
+      + Correct control.mozilla.in inclusion regardless of host architecture
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 21 Apr 2008 17:02:51 +0200
+
+openoffice.org (1:2.4.0-4) unstable; urgency=medium
+
+  * rebuild against python 2.5 (closes: #476220)
+  * ooo-build:
+    - update (r12156)
+      + disables cjk-character-units-*.diff as they cause some problems
+        (closes: #474028)
+      + emf+-canvas-vcl-non-closed-polygon.diff: fixed invalid access
+        (closes: #465423)
+      + sw-hindi-numbers.diff: revert change for i#81577 to fix number
+        displaying in hebrew docs
+      + fixes uninitialized memory in manual spellchecking (closes: #469894)
+    - src: update GSIs from ftp.linux.cz: bg da et fi ga mk nb nn
+  * debian/rules:
+    - handle new aotcompile.py location in java-gcj-compat-dev due to
+      python-central >= 0.6 (closes: #475987)
+    - bump libstlport4.6-dev builddep to ensure building against
+      libstlport4.6ldbl
+    - reenable system-hunspell
+    - bump libhyphen0 dep to 2.3-1-3
+    - set MOZILLA= when arch not in OOO_MOZILLA_ARCHS
+    - fix OOO_OGLTRANS_ARCHS conditional
+    - disable Java (OOM) and mozilla (no xulrunner/nss/nspr available yet)
+      on armel
+  * debian/rules, ooo-build/patches/src680/configures-explicit-arch.diff:
+    explicitely specify --host and --build (closes: #475037)
+  * debian/control.in, debian/control.reportdesign.in: Fix long
+    description, thanks Gerfried Fuchs (closes: #475992)
+  * merge from Ubuntu:
+    - debian/*.mime:
+      + Update and sort mime-types.
+    - debian/rules:
+      + Use openjdk-6-jre instead of icedtea-java7-jre.
+    - debian/control.reportdesign.in:
+      + change %OOO_ARCHS% to %OOO_JAVA_ARCHS%
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 14 Apr 2008 12:23:51 +0200
+
+openoffice.org (1:2.4.0-3ubuntu6) hardy; urgency=low
+
+  * ooo-build/patches/src680/ubuntu-openoffice-java-common.diff:
+    . Added message to tell user to install openoffice.org-java-common if
+      java is non-functional. Closes LP: #218692
+  * Changed openoffice.org dependency on openoffice.org-officebean so it
+    is not included when java is disabled.
+  * Removed dependency on openoffice.orgVER by openoffice.orgVER-l10n-in and
+    openoffice.orgVER-l10n-za so they can be installed without OOo.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 21 Apr 2008 20:16:35 -0500
+
+openoffice.org (1:2.4.0-3ubuntu5) hardy; urgency=low
+
+  * debian/rules:
+    - Correct control.mozilla.in inclusion regardless of host architecture.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Wed, 16 Apr 2008 00:10:40 -0500
+
+openoffice.org (1:2.4.0-3ubuntu4) hardy; urgency=low
+
+  * debian/rules:
+    - Fix bad merge location of MOZILLA= code.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 15 Apr 2008 15:19:01 -0500
+
+openoffice.org (1:2.4.0-3ubuntu3) hardy; urgency=low
+
+  [ Chris Cheney ]
+  * Resynchronise with Debian (r1062).
+    - debian/control.ubuntu-feisty.in:
+      . Removed. Closes LP: #213786
+    - debian/rules:
+      . Properly disable java on powerpc. Closes LP: #214042, #214217
+  * Resynchronise with ooo-build (r12162).
+    - ooo-build/patches/src680/spellcheck-fix.diff:
+      . Corrects bug with manual spellchecking. Closes LP: #213323
+  * ubuntu/desktop-templates.diff:
+    ubuntu/desktop-translations.diff:
+    - Actually apply these patches to ooo-build. Closes LP: #214060
+
+  [ Matthias Klose ]
+  * Add openintro_ubuntu_sun.bmp and openabout_ubuntu_sun.bmp; add legalise
+    to debian/copyright.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 14 Apr 2008 18:32:50 -0500
+
+openoffice.org (1:2.4.0-3ubuntu2) hardy; urgency=low
+
+  * debian/rules:
+    - Reenable java on powerpc. Closes LP: #205923
+  * ubuntu/ooo87965.execute.sh:
+    - Added to work around bug executing launchpad-integration script.
+  * Resynchronise with ooo-build (r12125).
+    - ooo-build/patches/src680/human-icons-add.diff:
+      . Fallback properly to human icon theme.
+        Closes LP: #106186, #138360, #153598, #178455
+    - ooo-build/patches/src680/ooo85931.inconsistent.getentrypos.diff:
+      . Added to correct add templates issue on amd64. Closes LP: #62591
+    - ooo-build/patches/src680/ubuntu-lpi.diff:
+      . Changed to use launchpad-integration script. Closes LP: #46546
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 07 Apr 2008 20:05:52 -0500
+
+openoffice.org (1:2.4.0-3ubuntu1) hardy; urgency=low
+
+  [ Chris Cheney ]
+  * Resynchronise with Debian (r1044). Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Add package openoffice.org-style-human.
+      . Add replaces openoffice.org-gtk (<< 2.0.3-1) for openoffice.org-gnome
+        dapper upgrade.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu-feisty.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/openoffice.org-base.mime:
+      . Update and sort mime-types.
+    - debian/openoffice.org-calc.mime:
+      . Update and sort mime-types.
+    - debian/openoffice.org-draw.mime:
+      . Update and sort mime-types.
+    - debian/openoffice.org-filter-binfilter.mime:
+      . Update and sort mime-types.
+    - debian/openoffice.org-impress.mime:
+      . Update and sort mime-types.
+    - debian/openoffice.org-math.mime:
+      . Update and sort mime-types.
+    - debian/openoffice.org-writer.mime:
+      . Update and sort mime-types.
+    - debian/rules:
+      . Add BUILD_SPARC option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add USE_LZMA_COMPRESS option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support for Ubuntu specific bitmaps.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Update location of aotcompile.py file.
+      . Use imagemagick instead of graphicsmagick.
+      . Use openjdk-6-jre instead of icedtea-java7-jre. Closes LP: #203636
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+  * Resynchronise with ooo-build (r12081).
+    - ooo-build/desktop/calc.desktop.in.in:
+      . Added mimetype text/csv. Closes LP: #131272
+    - ooo-build/desktop/math.desktop.in.in:
+      . Added Categories=Office;Math; to show up in gnome-app-install.
+        Closes LP: #113358
+    - ooo-build/desktop/writer.desktop.in.in:
+      . Added mimetype application/x-t602. Closes LP: #148552
+    - ooo-build/patches/src680/ooo85470.workspace.cairotext01.diff:
+      . Added patch from Fedora to improve font hinting.
+        Closes LP: #54776, #62256, #137469, #154940, #197622
+    - ooo-build/patches/src680/sc-default-delete-backspace-key.diff:
+      . Moved section so delete works the same as upstream. Closes LP: #175983
+    - ooo-build/patches/src680/ubuntu-soffice-config.diff:
+      . Reenable font autohinting for Thai. Closes LP: #194759
+    - ooo-build/patches/src680/writer-default-font.diff:
+      . Removed patch to not use 'Times' font. Closes LP: #105906, #160988
+    - Mimetypes for OOXML added to various desktop files. Closes LP: #138252
+    - Update corrects chart gradient. Closes LP: #197451
+  * ubuntu/*:
+    - Update splash screen for OOo 2.4. Closes LP: #199193
+    - Various Ubuntu specific changes.
+
+  [ Matthias Klose ]
+  * ubuntu/lpi2gsi: Add templates and conversion scripts to generate
+    the additional help menu entries.
+  * Update translations for the OOo help menu, taken from a fresh
+    launchpad-integration translations export.
+  * ooo-build/patches/src680/ubuntu-lpi.diff: Update Launchpad URLs
+    (remove /distros), use answers.launchpad.net and translations.launchpad.net
+    for +gethelp and +translate respectively
+  * debian/ooo-build-ubuntu.diff: Remove.
+  * ubuntu/desktop-templates.diff: Updated, merged from the ooo-build trunk.
+  * ubuntu/desktop-translations.diff: Updated from a fresh ooo-build
+    translations export.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 01 Apr 2008 23:01:30 -0500
+
+openoffice.org (1:2.4.0-3) unstable; urgency=low
+
+  * The "Third time is a charm?" release.
+
+  * ooo-build:
+    - update (r12025 - ooo-build 2.4.0.5)
+      + now installs a /usr/bin/unopkg wrapper (closes: #319548)
+    - src: update GSIs from ftp.linux.cz: et ga
+  * debian/shell-lib.sh, debian/openoffice.org{,-common}.preinst.in:
+    - don't query docbook-xmls conffiles but ours....
+  * debian/rules:
+    - actually add text/rtf to ooo-writer.desktop (closes: #472952)
+  * debian/openoffice.org-common.manpages: install unopkg.1
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 28 Mar 2008 10:53:56 +0100
+
+openoffice.org (1:2.4.0-2) unstable; urgency=low
+
+  * Brown paper bag release.
+  * build with a correct control to get the needed libstlport4.6-dev builddep
+    on i386
+  * debian/rules:
+    - remove arm also from OOO_MOZILLA_ARCHS and OOO_NPSOLPLUGIN_ARCHS. Fix
+      "build-only-mythes" conditional to actually be on effect for arm
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 28 Mar 2008 00:28:17 +0100
+
+openoffice.org (1:2.4.0-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.0 final
+  * ooo-build:
+    - update (r11988)
+      + buildfix-oox-depends-on-unotools.diff: make oox
+        depend on unotools (closes: #471633)
+      + sc-fix-value-iterator.diff; fixes e.g MIN function
+        (closes: #471416)
+  * debian/control.in:
+    - remove obsolete libsndfile1-dev builddep
+    - also build-conflict against nvidia-glx-legacy-dev
+    - fix Vcs-Bzr:
+  * debian/*.lintian-overrides*: remove "unused-override"s
+  * debian/openoffice.org-{core,ogltrans}.control.bug:
+    Report-With: infos about fglrx and nvidia drivers
+  * debian/rules:
+    - disable binfilter builds for arm(el)
+    - disable arm builds completely as it's "an obsolete arch". Still keep
+      armel (won't block testing migration)
+    - don't build-depend on g{cc,++}-4.3 on s390 anymore as it's the default
+      now anyway. Build-depend on gcc (>> 4.3.0) and g++ (>> 4.3.0)
+      instead
+    - fix l10n-sr up to not conflict against -sr-cs as that's our
+      etch->lenny transitional package.
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 26 Mar 2008 22:42:18 +0100
+
+openoffice.org (1:2.4.0~rc6-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.0 rc6 (aka OOH680_m12)
+  * ooo-build:
+    - update (r11918)
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 16 Mar 2008 21:07:25 +0100
+
+openoffice.org (1:2.4.0~rc5-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.0 rc5 (aka OOH680_m11)
+  * ooo-build:
+    - update (r11890)
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 13 Mar 2008 12:22:53 +0100
+
+openoffice.org (1:2.4.0~rc4-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.0 rc4 (aka OOH680_m10)
+  * ooo-build:
+    - update (r11862)
+      - ubuntu-soffice-config.diff: set $HOME from getent if not set
+        (closes: #431976)
+      - src:
+        - update GSIs from ftp.linux.cz:  bg da et fi ga mk ro uz
+  * debian/rules:
+    - suggest libnss-1d-dbg instead of libnss3-0d-dbg (closes: #469872)
+  * debian/control.in:
+    - GTk -> GTK+, thanks lintian
+  * debian/udk*ref.in
+    - Apps/Programming -> Programming, thanks lintian
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 10 Mar 2008 21:08:38 +0100
+
+openoffice.org (1:2.4.0~rc3-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.0 rc3 (aka OOH680_m9)
+  * ooo-build
+    - update (r11840)
+  * debian/rules:
+    - enable s390 build (don't enable mono); force gcc 4.3 to workaround
+      ICE(s)
+  * debian/control.in:
+    - build-depend on libxtst-dev
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 07 Mar 2008 08:22:20 +0100
+
+openoffice.org (1:2.4.0~rc2-1ubuntu3) hardy; urgency=low
+
+  * debian/rules:
+    - Fix pre-depends dpkg version for lzma compression.
+    - Various lpia build fixes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 03 Mar 2008 17:31:57 -0600
+
+openoffice.org (1:2.4.0~rc2-1ubuntu2) hardy; urgency=low
+
+  * debian/rules:
+    - Do not build with system stlport since it is in universe.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 03 Mar 2008 10:13:26 -0600
+
+openoffice.org (1:2.4.0~rc2-1ubuntu1) hardy; urgency=low
+
+  * Resynchronise with Debian (r1014). Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Add package openoffice.org-style-human.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu-edgy.in:
+      . Add file for Ubuntu.
+    - debian/control.ubuntu-feisty.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/rules:
+      . Add BUILD_SPARC option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add USE_LZMA_COMPRESS option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support for Ubuntu specific bitmaps.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Use imagemagick instead of graphicsmagick.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+  * Resynchronise with ooo-build (r11750). Remaining changes:
+    - ooo-build/configure.in:
+      . Added support for Hardy.
+    - ooo-build/distro-configs/UbuntuHardy.conf.in:
+      . Added support for Hardy.
+    - ooo-build/distro-configs/UbuntuHardy64.conf.in:
+      . Added support for Hardy.
+    - ooo-build/patches/src680/apply:
+      . Added support for Hardy.
+    - ooo-build/patches/src680/ubuntu-lpi.diff:
+      . Updated patch.
+    - ooo-build/patches/src680/ubuntu-mstopdf.diff:
+      . Add macro to convert doc to pdf.
+    - ooo-build/patches/src680/ubuntu-xulrunner-1.9.diff:
+      . Add support for xulrunner 1.9.
+  * ubuntu/*:
+    - Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Fri, 29 Feb 2008 12:28:51 -0600
+
+openoffice.org (1:2.4.0~rc2-1) unstable; urgency=low
+
+  * OpenOffice.org 2.4.0 rc2 (aka OOH680_m8)
+    - fixes printing of control elements (closes: #467168)
+  * ooo-build:
+    - update (r11750)
+  * debian/rules, debian/control.ure.in:
+    - introduce ure:Version variable (closes: #466932)
+  * debian/rules:
+    - fix self-reference of GCJ_JAWT_DEPENDS on etch-backports
+      (closes: #466932)
+  * debian/control.in:
+    - remove obsolete libstartup-notification0-dev builddep
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 28 Feb 2008 23:00:39 +0100
+
+openoffice.org (1:2.4.0~rc1-3) unstable; urgency=low
+
+  * ooo-build:
+    - update (r11700)
+      + cws-ia64port01.diff: backport ia64 port
+      + ubuntu-soffice-config.diff: remove disabling of thai autohinting,
+        thanks Theppitak Karoonboonyana (closes: #467180)
+  * debian/rules:
+    - use readlink -f for determining libstlport_gcc.so.4.6s location
+      (closes: #466040)
+    - BUILD_IA64=y
+    - --disable-mono for arm(el)
+    - add GCJ_JAWT_DIR to LD_LIBRARY_PATH for a try to fix FTBFS on mips
+    - install pythonloader.py into $(PYTHON_SITE) (closes: #466412)
+    - temporarily build with internal hunspell (closes: #459943)
+    - build with libdb4.6 (closes: #464754)
+    - add symlink /usr/share/doc/openoffice.org-dev/index.html ->
+      /usr/lib/openoffice/sdk/index.html. Is the other way around like
+      the submitter suggested but still closes: #420804 AFAIS.
+      Replace non-working link to license.html with link to
+      http://www.gnu.org/licenses/lgpl.html
+    - openoffice$(VER) -> $(OODIRNAME)
+    - build against libsuitesparse-3.1.0; adapt build-depends to require
+      the new version (and the lp-solve built against libsuitesparse-3.1.0)
+    - add ttf-thai-tlwg FONT_SUGGESTS
+  * debian/control.in:
+    - only recommend openoffice.org-writer2latex at -writer. Add it
+      to the "openoffice.org" metapackage as Depends (closes: #466170)
+    - only suggest -style-{hicontrast,industrial} (closes: #466494)
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 25 Feb 2008 18:46:30 +0100
+
+openoffice.org (1:2.4.0~rc1-2) unstable; urgency=low
+
+  * upload to unstable
+  * ooo-build:
+    - update (r11592)
+  * debian/rules:
+    - build-depend on debhelper >= 5.0.51~ for dh_icons, thanks lintian
+    - make arm build really use --without-java for the build
+  * debian/libuno-cil.installcligac.in:
+    - also register cli_uno_bridge.dll (although versioned 0.0.0.0) into the
+      GAC
+  * debian/openoffice.org-core.control.bug:
+    - s/openoffice.org-filter-so52/openoffice.org-filter-binfilter/
+  * debian/openoffice.org-{report-builder,ogltrans}.control.bug:
+    - add report-with: openoffice.org-base / openoffice.org-impress
+  * debian/*.script.bug:
+    - new bug scripts listing all extensions (-core) or the extension infos
+      (-report-builder, -sdbc-postgresql, -presentation-minimizer)
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 15 Feb 2008 14:15:08 +0100
+
+openoffice.org (1:2.4.0~rc1-1) experimental; urgency=low
+
+  * OpenOffice.org 2.4.0 rc1 (aka OOH680_m7)
+  * ooo-build:
+    - update (r11558)
+    - src: update GSIs from frp.linux.cz (mk, ro, uz, vi)
+  * debian/control.in:
+    - fix logic error, we of course should conflict against old
+      openoffice.org-calcs in the new common, not the other way around
+      (really closes: #464544).
+      Go safe for the future; make -common Conflicts: against all the modules
+      (<< ${base-version})
+    - build-conflict against flex (= 2.5.34-1) on amd64
+    - s/python/Python/, thanks lintian. Add Homepage: field for python-uno
+  * debian/control.qa.in:
+    - add ${shlibs:Depends}, thanks lintian
+  * debian/control.ure.in:
+    - make ure-dbg depend on ure, thanks lintian
+  * debian/control.postgresql.in:
+    - s/postgresql/PostgreSQL/, thanks linttian
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 13 Feb 2008 09:28:35 +0100
+
+openoffice.org (1:2.4.0~ooh680m6-3) experimental; urgency=low
+
+  * ooo-build:
+    - update (r11531)
+  * debian/control.in:
+    - make -calc conflict against openoffice.org-common (<< 1:2.3.0)
+      (closes: #464544)
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 08 Feb 2008 00:19:05 +0100
+
+openoffice.org (1:2.4.0~ooh680m6-2) experimental; urgency=low
+
+  * ooo-build:
+    - update (r11513)
+  * debian/rules:
+    - add some missing/fix arch qualifiers to libsuitesparse-dev/libgcj-bc
+      builddeps
+    - fix typos in specifying the libxml.jar and libfonts.jar
+    - reinstate Common-math.xcu moving (somewhen got lost(?)) to prevent
+      file conflicts on upgrade
+  * debian/control.ogltrans.in:
+    - bump depends to force fixed openoffice.org-common containing the correct
+      Impress.xcs
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 06 Feb 2008 02:09:14 +0100
+
+openoffice.org (1:2.4.0~ooh680m6-1) experimental; urgency=low
+
+  * new upstream snapshot (OOH680_m6)
+    - fixes CVE-2007-4770 and CVE-2007-4771 for the (unused) internal icu
+      copy
+  * ooo-build:
+    - update (r11494)
+  * debian/rules:
+    - stop adding libgcj9-0-awt to java-runtime-depends. Make
+      java-gcj-compat depends of officebean versioned to force 1.0.77-4 which
+      already depends on the -awt package now
+    - specify --with-XXXX-jar for the report-builder jars explcitely
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 03 Feb 2008 23:02:29 +0100
+
+openoffice.org (1:2.4.0~ooh680m5-1) experimental; urgency=high
+
+  * new upstream snapshot (OOH680_m5)
+    - adds https support for WebDAV (closes: #244280)
+    - officially adds possibility to input formulas starting with -/+
+      (closes: #433360)
+    - now queries CUPS for printers again when opening the print dialogue;
+      not only on startup (closes: #290016)
+    - doesn't link libofficebean.so with -lgcj anymore (closes: #441202)
+    - fixes CVE-2007-5745, CVE-2007-5746, CVE-2007-5747 and
+      CVE-2008-0320
+  * ooo-build:
+    - use trunk again (r11432)
+    - src:
+      + use (new) OOH680 GSIs from ftp.linux.cz
+        . new: ro, gd
+      + add eu GSI from Issue 85486
+  * debian/rules, debian/scripts/vars.mips{,el}, debian/scripts/vars.arm{,el}:
+    (re)add conditionals and vars for new mips(el)/armel and revived arm
+    support; enable
+  * debian/rules, debian/scripts/vars.ia64: first preparations for the
+    (upcoming) ia64 port
+  * debian/rules:
+    - fix configure flags for "no mozilla" case, we need to specify
+      --without-system-mozilla explicitely
+  * debian/control.in, debian/rules,
+    debian/openoffice.org-presentation-minimizer*:
+    - package the new "Presentation Minimizer" extension as
+      openoffice.org-presentation-minimizer
+  * debian/control.ure.in, debian/rules, debian/ure.overrides.lintian.in:
+    - package the URE
+  * debian/rules:
+    - build against OpenSSL versions of curl and (especially) neon again
+      as the webdav ucp now directly links against openssl...
+      (reopens: #391671). Use system-openssl.
+    - ENABLE_OPENGL=y
+    - bump dmake builddep
+    - fix BUILD_BINFILTERS conditional to work
+    - add PACKAGE_WRITER2LATEX / USE_EXTERNAL_WRITER2LATEX conditionals
+    - s/stlport4/stlport/
+    - fix ENABLE_JAVA=n build, build the help as it doesn't need Java anymore,
+      don't build report-builder
+    - enable the report-builder using the internally-built jars for the etch
+      backport now that this is possible
+    - temporarily build the report-builder using the internally-built jars
+    - fix SYSTEM_XALAN conditional to not reset SYSTEM_XML_APIS
+      bogusly
+    - enable eu and ro langpacks, enable eu help
+    - s/libjfreereport-java/libpentaho-reporting-flow-engine-java/
+    - update for gcj 4.3; detect libgcj package name/libjawt dir automatically
+    - add icedtea-java7-jre to JVM alternatives for JVM recommends/depends.
+      Place it before sun-java?-jre
+    - don't try to create a libstlport_gcc.so symlink if we don't build
+      with stlport and the readlink will fail :)
+  * debian/control.in:
+    - remove Provides: writer2latex from -writer, bogus (we only provide
+      libwriter2latex-java at all, and that with an old version). Depend
+      on openoffice.org-writer2latex.
+    - build-depend on graphicsmagick-imagemagick-compat instead of simply
+      graphicsmagick as ooo-builds Makefile.shared now uses "convert".
+      Suggest graphicsmagick-imagemagick-compat | imagemagick.
+    - suggest only ttf-dejavu instead of ttf-dejavu | ttf-bitstream-vera;
+      OOo now contains the DejaVu fonts. Closes: #461279
+    - add USE_SYSTEM_JFREEREPORT conditional
+    - build-depend on flex-old instead of flex, see Issue 85508
+    - another Replaces: (-core) missed the epoch, thanks Chris Cheney
+    - make openoffice.org-writer conflict against -java-common (<< 1:2.3.1)
+      (closes: #462477)
+  * debian/control.ogltrans.in:
+    - depend on openoffice.orgVER-core and openoffice.orgVER-impress
+      >> 2.4.0~m237
+  * debian/openoffice.org-ogltrans.*.in:
+    - remove, ooo-build makes this pre-registered
+  * debian/openoffice.org-{ogltrans,base-core}.overrides.lintian:
+    - override RPATH warning
+  * merge from Ubuntu:
+    - debian/rules:
+      + Use java-runtime-depends variable for java dependencies.
+      + make -gcj depend on libhsqldb-java-gcj
+      + some minor parallel build conditional improvements
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 29 Jan 2008 00:25:31 +0100
+
+openoffice.org (1:2.3.1-3ubuntu3) hardy; urgency=low
+
+  * debian/control.in:
+    - Change openoffice.orgVER-common Recommends openoffice.orgVER-style-*
+      to Suggests. Closes LP: #159133
+    - openoffice.orgVER-base-core replaces openoffice.org-core (<< 1:2.3.1).
+      Closes LP: #181836
+    - openoffice.orgVER-core replaces openoffice.org-common (<< 1:2.3.1).
+      Closes LP: #181922
+  * debian/rules:
+    - Add BUILD_SPARC option.
+      . Do not build on sparc since buildd frequently ICEs.
+  * ooo-build/patches/src680/apply:
+    - apply ooo85321.vcl.pixmapleak.diff.
+  * ooo-build/patches/src680/ooo85321.vcl.pixmapleak.diff:
+    - XFreePixmap patch.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Wed, 23 Jan 2008 06:28:06 -0600
+
+openoffice.org (1:2.3.1-3ubuntu2) hardy; urgency=low
+
+  * debian/rules:
+    - Apply Debian's aotcompile.py patch to resolve OOMing issue.
+    - Disable ENABLE_REPORTDESIGN on powerpc.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 15 Jan 2008 16:11:18 -0600
+
+openoffice.org (1:2.3.1-3ubuntu1) hardy; urgency=low
+
+  * Resynchronise with Debian (r989). Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.2.in:
+      . Add file for Ubuntu.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Use java-runtime-depends variable for java dependencies.
+      . Make openoffice.org-core Depends on openoffice.org-hyphenation.
+      . Add package openoffice.org-style-human.
+      . Various other minor Ubuntu changes.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/rules:
+      . Add USE_LZMA_COMPRESS option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add java-runtime-depends variable for java dependencies.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support to Ubuntu specific bitmaps.
+      . Use imagemagick instead of graphicsmagick.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+    - ooo-build/configure.in:
+      . Added support for Hardy.
+    - ooo-build/distro-configs/UbuntuHardy.conf.in:
+      . Added support for Hardy.
+    - ooo-build/distro-configs/UbuntuHardy64.conf.in:
+      . Added support for Hardy.
+    - ooo-build/patches/src680/apply:
+      . Added support for Hardy.
+    - ooo-build/patches/src680/ubuntu-lpi.diff:
+      . Updated patch.
+    - ubuntu/*
+      . Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 08 Jan 2008 23:17:08 -0600
+
+openoffice.org (1:2.3.1-3) unstable; urgency=low
+
+  * debian/control.in:
+    - update VCS headers...
+    - add build-conflicts on broken libmono-devs
+  * debian/rules:
+    - add build-dep on mono-{1,2}.0-devel for new mono packages
+      (closes: #458541)
+    - mono is now also building sparc packages; enable it
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 28 Dec 2007 16:51:47 +0100
+
+openoffice.org (1:2.3.1-2) unstable; urgency=low
+
+  * ooo-build:
+    - update (r11083)
+      + buildfix-sal-system.h-no-asm-sigcontext.h.diff: don't include
+        <asm/sigcontext.h>, thanks Aurelien Jarno
+      + disables SVGImport
+  * debian/rules:
+    - fix PYTHONPATH setting and remove aotcompile.pyc in clean, too...
+    - we also need -l$(PKGDIR)-base/$(OODIR)/program for dh_shlibdeps
+      as report-builder links against libdbu
+    - remove libsvg conditional; SVGImport is incomplete and now disabled
+      in ooo-build
+    - etch backport fixes
+      - use db4.4
+      - use internal icu
+      - use STLport on all archs
+  * debian/rules, debian/control*.in:
+    - add ENABLE_REPORTDESIGN conditional; disable it for etch backports
+    - verbosize -report-builders description
+  * debian/control.in:
+    - add missing epoch to -base-core's Replaces: (closes: #454625)
+    - add Replaces: openoffice.org-common (<< 1:2.3.1) to
+      openoffice.org-writer as the MediaWiki things moved into -writer
+      upstream (closes: #455961)
+  * debian/copyright:
+    - UTF-8'ize, thanks lintian
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 12 Dec 2007 23:08:31 +0100
+
+openoffice.org (1:2.3.1-1ubuntu1) hardy; urgency=low
+
+  * Resynchronise with Debian. Remaining changes:
+    - debian/broffice.org.postrm.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/broffice.org.preinst.in:
+      . Change diversions to ubuntu bitmap filenames.
+    - debian/control.2.in:
+      . Add file for Ubuntu.
+    - debian/control.in:
+      . Change maintainer line.
+      . Use imagemagick instead of graphicsmagick.
+      . Change bzr repo location.
+      . Use java-runtime-depends variable for java dependencies.
+      . Make openoffice.org-core Depends on openoffice.org-hyphenation.
+      . Add package openoffice.org-style-human.
+      . Various other minor Ubuntu changes.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . Add Xb-Npp-xxx tags according to "firefox distro add-on suport" spec.
+    - debian/control.ubuntu.in:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/rules:
+      . Add USE_LZMA_COMPRESS option.
+      . Add USE_COMMON_DOCDIR option.
+      . Add support to build on lpia.
+      . Add support to build l10n as a separate source.
+      . Add java-runtime-depends variable for java dependencies.
+      . Add support to chmod +x programs in debian dir.
+      . Add support to uuencode binary files in ubuntu dir.
+      . Add support to Ubuntu specific bitmaps.
+      . Use imagemagick instead of graphicsmagick.
+      . Add support for openoffice.org-style-human package.
+      . Add support for launchpad translations.
+      . Various Ubuntu specific changes.
+    - debian/scripts/convert2po:
+      . Add file for Ubuntu.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick.
+    - debian/scripts/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/scripts/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+    - ooo-build/configure.in:
+      . Added support for Hardy.
+    - ooo-build/distro-configs/UbuntuHardy.conf.in:
+      . Added support for Hardy.
+    - ooo-build/distro-configs/UbuntuHardy64.conf.in:
+      . Added support for Hardy.
+    - ooo-build/patches/src680/apply:
+      . Added support for Hardy.
+    - ooo-build/patches/src680/ubuntu-lpi.diff:
+      . Updated patch.
+    - ubuntu/*
+      . Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 17 Dec 2007 14:40:13 -0600
+
+openoffice.org (1:2.3.1-1) unstable; urgency=low
+
+  * OpenOffice.org 2.3.1 final (identical to rc1);
+    mention CVE-2007-4575 in rc1s changelog
+  * merge 2.3.0.dfsg-3 (closes: #453130)
+  * upload to unstable
+  * ooo-build
+    - use ooo-build-2-3 branch
+    - update (r11041)
+      + patches/src680/fpicker-kde-dialog.diff: keeps filename between 2
+        directories now (closes: #427908)
+      + fixes right() function in StarBasic (closes: #452267)
+      + disables GnomeVFS section for !Novell (closes: #451849)
+    - src: update mk GSI from ftp.linux.cz
+  * debian/control.gcj.in:
+    - "fix" override disparity of -gcj
+  * debian/control.in:
+    - make -l10n-in depend on -mr-in, too
+  * debian/control.ogltrans.in, debian/rules,
+    debian/openoffice.org-ogltrans*:
+    - package the new "OpenGL rendered transitions" UNO package as
+      openoffice.org-ogltrans when ENABLE_OPENGL=y.
+  * debian/rules:
+    - add $(OOO_ARCHS) to the mesa builddeps
+    - fix build with new dpkg-dev
+    - reenable cy langpack
+    - build against libhyphen-dev which contains a shared lib for ATLinuxhyph
+      now
+  * debian/rules, debian/aotcompile-256M-default.diff: work around
+    java-gcj-compat-devs defaults causing (at least) the i386 buildd
+    to OOMing while building the native jars
+  * debian/control.in, debian/rules:
+    - put libdba680l?.so into a -base-core package. Make -base, -writer and
+      -calc depend on it (closes: #381083)
+  * debian/README.Debian-source
+    - update
+  * debian/shell-lib.sh:
+    - run unopkg with -env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1 because
+      otherwise the first run with gcj won't find a JRE (and might fail the
+      install then). Flush the cache after removing as unopkg doesn't remove
+      files on uninstall but marks them as "to-be-removed-on-next-start".
+      Thanks Caolan McNamara.
+  * debian/README.Debian:
+    - update
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 05 Dec 2007 07:15:05 +0100
+
+openoffice.org (1:2.3.0.dfsg-3) unstable; urgency=low
+
+  * ooo-build:
+    - update (r10855)
+      + patches/emf+/emf+-cppcanvas-emfplus.diff: fix big endian builds
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 17 Nov 2007 13:54:47 +0100
+
+openoffice.org (1:2.3.1~rc1-1) experimental; urgency=high
+
+  * OpenOffice.org 2.3.1 rc1 (OOG680_m9)
+    - fixes CVE-2007-4575
+  * ooo-build:
+    - src: remove vi and ar again (integrated)
+  * debian/rules:
+    - bump (build-)dep for external hsqldb to >= 1.8.0.9-1
+    - fix milestone detection...
+  * debian/control.in:
+    - build-conflict against libicu36-dev (<= 3.6-7), libicu-dev (<= 3.8-1)
+      because we need a function which was private in those versions...
+  * debian/README.Debian-source
+    - update
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 15 Nov 2007 13:29:04 +0100
+
+openoffice.org (1:2.3.0.dfsg-2) unstable; urgency=low
+
+  * ooo-build:
+    - update (r10834)
+      + pyuno-rpath-ooodir.diff: fix (closes: #316030)
+  * debian/README.Debian-source:
+    - update
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 15 Nov 2007 13:26:48 +0100
+
+openoffice.org (1:2.3.0.dfsg-1) unstable; urgency=low
+
+  * clean jfreereport sources included in OOo from binary-only jars
+  * upload to unstable
+  * ooo-build
+    - update (r10794)
+      - jvmfwk-detect-removed-java.diff: try autodetection if it is allowed
+        and the current JRE has been removed (hopefully closes: #416242,
+        please reopen if not)
+    - src:
+      - update GSIs from ftp.linux.cz: da km mk sl vi
+      - add ar GSI from from i#83301
+  * debian/rules:
+    - since 2.3.0 final we need --enable-dbus explicitely
+    - remove obsolete glitz build-dep
+    - reenable -gcj (closes: #449201) and bump build-dep on
+      java-gcj-compat-dev for this
+    - fix logic error preventing mozilla-openoffice.org having
+      real content, oops (closes: #449528)
+    - use system jfreereport libs
+    - reenable ar langpack
+    - add libfontconfig1-dbg to DBG_DBG_SUGGESTS
+    - Adapt for STLport5 patchset not applied anymore. Remove STLport5
+      support.
+    - Build --without-stlport4 (closes: #294105). Keep STLport4 for i386
+      now due to compatibility with upstream OOo and binary-only stuff
+    - fix -dbg suggests on libstdc++6 (we want libstdc++6-4.x-dbg)
+  * debian/control.in:
+    - XS-Vcs-* -> Vcs-*
+    - add a conflict against libicu38 (= 3.8~d01-1)
+  * debian/control.{,gcj}.in:
+    - depend/recommend (on) java-gcj-compat instead of gij | java-gcj-compat
+      as "gij" alone doesn't seem to be sufficient to make OOo know there's
+      a "Free Software Foundation" JDK (closes: #440899)
+    - s/j2re1.4/sun-java5-jre/
+  * debian/shell-lib.sh: fix again to match what a plain upstream build
+    creates when embedding the extension in the installset...
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 13 Nov 2007 08:34:15 +0100
+
+openoffice.org (1:2.3.0-4) experimental; urgency=medium
+
+  * ooo-build:
+    - update (r10582)
+  * debian/control.mozilla.in:
+    - recommend konqueror-nsplugins (closes: #446911)
+  * debian/control.in:
+    - build-conflict against libicu-dev (= 3.8~d01-1) and rebuild against
+      libicu-dev 3.8-1 (closes: #447735)
+    - stop recommending nfs-common because people now need to install
+      nfs-common anyway when they want to use NFS (closes: #424761)
+  * deian/rules:
+    - fix qstart.desktop installation. Yes, it's not obsolete (why did I thnk
+      that?) and ended up in the wrong package (closes: #447732)
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 24 Oct 2007 11:19:24 +0200
+
+openoffice.org (1:2.3.0-3) experimental; urgency=medium
+
+  * ooo-build:
+    - update (r10550)
+      + ooo82608.vcl.gtkbadfree.diff: backport fix from i#82608 to fix
+        bad free on theme resources (closes: #444741)
+    - src/: (re)add biblio.tar.bz2
+  * debian/rules:
+    - readd $(OOO_ARCHS) at neon builddep which got lost
+    - add a libstlport_gcc.so symlink in /usr/lib/openoffice/program when
+      using STLport4 to not rely on libstlport4.6-dev where binary-only
+      components would expect a libstlport_gcc.so
+    - look for Autodoc_DiagnosticMessages.txt in the correct path...
+    - add conditional for --enable-opengl (cws transogl1)
+  * debian/control.in:
+    - build-conflict against nvidia-glx-dev for safety
+    - build-conflict against broken libicu36-devs on amd64, see #447275
+  * debian/control.in, debian/rules:
+    - adapt for new qstart implementation in ooo-build, which apparently
+      makes ooqstart and qstart.desktop obsolete
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 20 Oct 2007 18:13:43 +0200
+
+openoffice.org (1:2.3.0-2) experimental; urgency=low
+
+  * ooo-build:
+    - update (r10478)
+
+  [ Rene Engelhard ]
+  * debian/rules:
+    - remove bogus curl conditional which was temporary but slipped in...
+    - fix Developer Snapshot detection to match on x.y.z~mX
+    - migrate from num-cpus= to parallel= in DEB_BUILD_OPTIONS, the latter
+      is the quasi standard and will also be used by -j of the new
+      dpkg-buildpackage
+    - fix ooo-extension.desktop fixing and actually install it in the right
+      target...
+    - we build against libcurl3-gnutls, so build against -gnutls for neon, too
+    - default to -P<number of cores> for PARALLEL_BUILD=y
+    - build against neon 0.27.x
+    - get rid of Autodoc_DiagnosticMessages.txt completely
+  * debian/control.in:
+    - make -report-builder depend on -java-common (>= 1:2.3.0~oog680m1) as
+      that apparently is needed
+    - remove long obsolete debconf depends; we don't use debconf anymore
+  * debian/copyright:
+    - point to /usr/share/common-licenses/LGPL-2.1 instead of just LGPL
+      as OOo is LGPL 2.1 only
+  * debian/control.mozilla.in, debian/rules:
+    - don't build mozilla-openoffice.org on amd64/ppc64, broken
+  * debian/*.overrides.lintian.in: adapt for new lintian
+  * merge from Ubuntu:
+    - debian/control.in: Build openoffice.org-officebean only on architectures
+      with java support
+
+  [ Mirco Bauer ]
+  * debian/rules:
+    - use LC_ALL=C instead of LANG=C for date call, else LC_ALL or LC_TIME
+      might override it.
+    - added mono-jit-dbg and mono-dbg to suggest list for debug packages
+  * debian/control.mono.in:
+    - enhanced package description
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 16 Oct 2007 17:31:47 +0200
+
+openoffice.org (1:2.3.0-1ubuntu5.3) gutsy-proposed; urgency=low
+
+  * debian/rules: Loosen file move to libdba680l?.so since
+    OpenOffice encodes architecture information into soname.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 26 Nov 2007 16:56:09 -0600
+
+openoffice.org (1:2.3.0-1ubuntu5.2) gutsy-proposed; urgency=low
+
+  * debian/rules: Rename intro.bmp to openintro_ubuntu.bmp.
+    Closes LP: #155125
+  * debian/rules move libdba680lx.so from openoffice.org-base to
+    openoffice.org-core.
+    Closes LP: #24975, #52847, #117648, #134276, #156852, #157512
+  * ooo-build/patches/src680/pyuno-rpath-ooodir.diff:
+    Closes LP: #132583
+  * ooo-build/patches/src680/ooo82608.vcl.gtkbadfree.diff:
+    Closes LP: #131526
+  * ubuntu/openintro_ubuntu.bmp:
+    Update splash screen to right bitmap depth. Closes LP: #157176
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Sat, 24 Nov 2007 20:07:29 -0600
+
+openoffice.org (1:2.3.0-1ubuntu5.1) gutsy-proposed; urgency=low
+
+  * Update OpenOffice.org splash screen to remove Ubuntu branding.
+    Closes LP: #153132
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Wed, 17 Oct 2007 09:19:43 -0500
+
+openoffice.org (1:2.3.0-1ubuntu5) gutsy; urgency=low
+
+  * Fix build failure in lpsolve on sparc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 15 Oct 2007 08:00:50 +0000
+
+openoffice.org (1:2.3.0-1ubuntu4) gutsy; urgency=low
+
+  * debian/control.in: Build openoffice.org-officebean only on architectures
+    with java support.
+  * Refactor java runtime dependencies.
+  * Summarize logging during gsi export to avoid a 4G log file.
+  * Build using system portaudio v18 (same version as the internal copy);
+    same version used by espeak.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 14 Oct 2007 10:06:09 +0200
+
+openoffice.org (1:2.3.0-1ubuntu3) gutsy; urgency=low
+
+  * debian/broffice.org.postrm.in:
+    - Enable Ubuntu splash diversions
+  * debian/broffice.org.preinst.in:
+    - Enable Ubuntu splash diversions
+  * debian/rules
+    - chmod +x executables in clean target.
+    - Use ENABLE_JAVA=n on powerpc since it fails to build,
+      remove powerpc from OOO_JAVA_ARCHS.
+
+  [Matthias Klose]
+  * Find extra translations to merge in ubuntu/l10n.
+  * Speed up the export of the GSI files.
+  * Update translations for the desktop menu.
+  * Update translations for the the added items in the help menu. 
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Sat, 13 Oct 2007 10:57:30 +0200
+
+openoffice.org (1:2.3.0-1ubuntu2) gutsy; urgency=low
+
+  * debian/rules:
+    - remove bogus curl conditional which was temporary but slipped in...
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 24 Sep 2007 19:01:18 -0500
+
+openoffice.org (1:2.3.0-1ubuntu1) gutsy; urgency=low
+
+  * Resynchronise with Debian. Remaining changes
+    - debian/broffice.org.postrm.in:
+      . Temporarily comment out Ubuntu splash diversions
+    - debian/broffice.org.preinst.in:
+      . Temporarily comment out Ubuntu splash diversions
+    - debian/control.2.in:
+      . Add file for Ubuntu.
+    - debian/control.in:
+      . Add openoffice.org-style-human package.
+      . Demote openoffice.org-officebean from Depends to Recommends to
+        save space on CD.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . added Xb-Npp-xxx tags accordingly to "firefox distro add-on suport" spec,
+        (https://blueprints.launchpad.net/ubuntu/+spec/firefox-distro-addon-support)
+    - debian/control.ubuntu.in:
+      . Add file for Ubuntu.
+    - debian/convert2po:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/gsistat.py:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/rules:
+      . Do not build with system libhnj since it is in universe.
+      . Do not build with system stlport since it is in universe.
+      . Do not build with system lp-solve to save space on cd.
+      . Use imagemagick instead of graphicsmagick
+      . Support separate openoffice.org-l10n source.
+      . Support to build on lpia.
+      . Support common docdir.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick
+    - debian/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+    - ooo-build/*:
+      . ubuntu-lpi.diff - updated
+    - ubuntu/*:
+      . Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Thu, 20 Sep 2007 20:02:08 -0500
+
+openoffice.org (1:2.3.0-1) experimental; urgency=low
+
+  * OpenOffice.org 2.3.0 final (identical to 2.3.0rc3)
+  * ooo-build:
+    - update (r10301)
+      + sc-preserve-imp-opts.diff: fix order (closes: #403128), thanks
+        Nagy Elemer Karoly
+      + ucb-no-CURL_NO_OLDIES.diff: don't build with -DCURL_NO_OLDIES
+        (closes: #442338)
+  * debian/changelog:
+    - mention fix for the tiff bug in 2.3.0~src680m224-1s changelog
+  * debian/rules:
+    - honour nocheck at test:
+  * debian/control.in: Build-Conflict against libc6-dev (= 2.6.1-3) and
+    libc6-dev (= 2.6.1-3) on i386/amd64 as sigcontext.h is broken
+    there.
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 16 Sep 2007 11:11:08 +0200
+
+openoffice.org (1:2.3.0~rc3-1) experimental; urgency=low
+
+  * OpenOffice.org 2.3.0rc3 (OOG680_m5)
+  * ooo-build:
+    - update (r10271)
+      + build with hash-style=both
+      + (temporarily) disables SELinux patch again (closes: #441380)
+    - src: update GSIs: da mk; remove *.log
+  * debian/rules:
+    - add support to build/run unit tests. For now, ignore all errors
+      (bugs in the build); disable per default
+  * debian/README.Debian-source: update
+  * debian/watch: add
+  * debian/openoffice.org-impress.mime: run Impress with -show for .pps
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 11 Sep 2007 21:28:10 +0200
+
+openoffice.org (1:2.3.0~rc2-1) experimental; urgency=low
+
+  * OpenOffice.org 2.3.0rc2 (OOG680_m4)
+  * ooo-build:
+    - update (r10223)
+    - src: update GSIs: bg cs da et vi
+  * debian/rules:
+    - build against db4.5 on sid (closes: #431786)
+    - build with system-boost again
+    - remove apparently obsolete OOO_LICENSE change to the GSIs (except
+      lv and sr-CS/sh-YU which apparently still need it)
+    - do not corrupt the ku GSI
+  * debian/control.*.in:
+    - migrate to new Homepage: field instead of adding it to the package
+      description
+  * debian/README.Debian-source: s/2.2.0/2.3.0/
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  7 Sep 2007 08:10:26 +0200
+
+openoffice.org (1:2.3.0~rc1-1ubuntu2) gutsy; urgency=low
+
+  * debian/control.in:
+    - demote openoffice.org-officebean from Depends to Recommends to
+      save space on CD.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Wed, 19 Sep 2007 10:28:41 -0500
+
+openoffice.org (1:2.3.0~rc1-1ubuntu1) gutsy; urgency=low
+
+  * Resynchronise with Debian. Remaining changes
+    - debian/broffice.org.postrm.in:
+      . Temporarily comment out Ubuntu splash diversions
+    - debian/broffice.org.preinst.in:
+      . Temporarily comment out Ubuntu splash diversions
+    - debian/control.2.in:
+      . Add file for Ubuntu.
+    - debian/control.in:
+      . Add openoffice.org-style-human package.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.mozilla.in:
+      . added Xb-Npp-xxx tags accordingly to "firefox distro add-on suport" spec,
+        (https://blueprints.launchpad.net/ubuntu/+spec/firefox-distro-addon-support)
+    - debian/control.ubuntu.in:
+      . Add file for Ubuntu.
+    - debian/convert2po:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/gsistat.py:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/rules:
+      . Do not build with system libhnj since it is in universe.
+      . Do not build with system stlport since it is in universe.
+      . Use imagemagick instead of graphicsmagick
+      . Support separate openoffice.org-l10n source.
+      . Support to build on lpia.
+      . Support common docdir.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick
+    - debian/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+    - ooo-build/*:
+      . apply - use system-lpsolve-link-with-colamd.diff
+      . ubuntu-lpi.diff - updated
+    - ubuntu/*:
+      . Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 03 Sep 2007 13:29:28 -0500
+
+openoffice.org (1:2.3.0~rc1-1) experimental; urgency=low
+
+  * OpenOffice.org 2.3.0rc1 (OOG680_m3)
+  * ooo-build:
+    - update (r10187)
+      + jvmfwk-gij-paths.diff: update for new gcj-4.2 packages
+      + jawt-check-cleanup.diff: clenup jawt check to not expect -lgcj
+        (only needed with long obsolete libgcjawt). As we now only
+        have a dependency on libjawt.so which all supported JDKs have,
+        and don't have a dependency on a specific gcj lib anymore we
+        can just depend (or-ed) on all supported JDKs.
+        Indirectly closes: #439287
+      + ooo80816.selinux.bridges.diff: add patch from Fedora to make OOo
+        work under SELinux (closes: #440105)
+      + src/: update GSIs from ftp.linux.cz: bg cs eo et fi mk vi
+  * debian/README.Debian: mention myspell-hy, myspell-fa, hunspell-ar
+  * debian/rules:
+    - BUILD_JARS_NATIVE=n until gcj-4.2 is unbroken
+    - actually install the binfilters...
+    - don't specify --with-java=gij anymore to use javac -> ecj from
+      java-gcj-compat on sid
+    - (build-)depend on libhsqldb-java (>= 1.8.0.8-1)
+    - don't run dh_icons on etch backports
+    - remove PATH setting for icu tools, now handled by configure
+    - remove $(PATCHSET)64 handling, obsolete
+    - temporarily disable cy, as it breaks building sbasics help
+
+ -- Rene Engelhard <rene@debian.org>  Sun,  2 Sep 2007 09:12:11 +0200
+
+openoffice.org (1:2.3.0~oog680m2-1) experimental; urgency=medium
+
+  * new upstream snapshot (OOG680_m2)
+    - doesn't "translate" function names into german in hebrew calc anymore
+      (closes: #365964)
+  * ooo-build:
+    - update (r10111)
+      - ooo59127.vcl.honourcairofont.diff: fix for gdk hang. [CC]
+        (closes: #433870)
+      - cairo-canvas-ppc-fix.diff: fix endianness to fix yellow color in
+        presentation mode under cairo (closes: #339439)
+    - src: update GSIs from ftp.linux.cz: bg cs et fi gl sl vi
+  * debian/control.in:
+    - fix libpq-dev builddep, thanks calc
+    - make the openoffice.org metapackage depend on openoffice.org-officebean as
+      the officebean is a "standard part of the office"
+  * debian/control.qa.in:
+    - make -qa-tools conflict against openoffice.org-core (<< 1:2.3.0~oog680m2) as m1 breaks
+      the testtool and it's already uploaded..
+  * debian/rules:
+    - remove some more occurances of conditionals I missed to remove
+      in 2.3.0~src680m225-1
+    - remove RID_STR_EXTENSION_NOT_PRESENT translation from the GSIs so that
+      it is not merged (we changed the string)
+    - bump HELP_L10N_VIRTUAL_VERSION to 2.3
+  * merge from Ubuntu:
+    - fix JAWT_DEPENDS for new gcj-4.2
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 23 Aug 2007 00:21:59 +0200
+
+openoffice.org (1:2.3.0~oog680m1-1ubuntu3) gutsy; urgency=low
+
+  * ooo-build/*:
+    - Add ooo79557.reportdesign.disablejava.diff to fix --without-java failure.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 21 Aug 2007 20:11:49 -0500
+
+openoffice.org (1:2.3.0~oog680m1-1ubuntu2) gutsy; urgency=low
+
+  * debian/rules:
+    - Temporarily use ENABLE_JAVA=n on amd64 and powerpc.
+  * ooo-build/*:
+    - Add config_office-libjawt.diff.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Tue, 21 Aug 2007 09:13:22 -0500
+
+openoffice.org (1:2.3.0~oog680m1-1ubuntu1) gutsy; urgency=low
+
+  * Resynchronise with Debian. Remaining changes
+    - debian/broffice.org.postrm.in:
+      . Temporarily comment out Ubuntu splash diversions
+    - debian/broffice.org.preinst.in:
+      . Temporarily comment out Ubuntu splash diversions
+    - debian/control.2.in:
+      . Add file for Ubuntu.
+    - debian/control.in:
+      . Add openoffice.org-style-human package.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.ubuntu.in:
+      . Add file for Ubuntu.
+    - debian/convert2po:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/gsistat.py:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/ooo-build-ubuntu.diff:
+      . Various Ubuntu specific changes to ooo-build.
+    - debian/rules:
+      . Fix dependency on the libgcj-awt package.
+      . Use imagemagick instead of graphicsmagick
+      . Support separate openoffice.org-l10n source.
+      . Support to build on lpia.
+      . Support common docdir.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick
+    - debian/splitgsi:
+      . Add file for Ubuntu.
+    - debian/template.desktop.in:
+      . Add NoDisplay=true.
+    - ooo-build/*:
+      . Update ooo59127.vcl.honourcairofont.diff to fix gdk screen call.
+    - ubuntu/*:
+      . Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 20 Aug 2007 19:31:00 -0500
+
+openoffice.org (1:2.3.0~oog680m1-1) experimental; urgency=low
+
+  * new upstream snapshot (OOG680_m1)
+    - makes unopkg being able to handle bundled Java extensions
+  * ooo-build:
+    - update (r10077)
+      + cws-dba23e.diff: fix system-hsqldb
+    - src/: Get fixed be-BY GSI from Issue 79966
+  * debian/shell-lib.sh, debian/openoffice.org-report-builder.{pre,post}*.in:
+    impove maintainer scripts (based on cws jl68). Check whether the extension
+    is registered before trying to remove it (it's not in case unopkg fails,
+    and we should be able to recover)
+  * debian/control.in:
+    - make -report-builder depend on -core >> 1:2.3.0~oog680m1 as we need the
+      fixes from cws jl68
+    - add Homepage: for the report-builder extension
+  * debian/control.in:
+    - fix -devs description; Xmerge Javadoc is not there for now, mention
+      gsicheck instead
+  * debian/rules:
+    - fix control target dependencies
+    - remove hack for #340468; seems to be not needed anymore
+    - readd MySQL, MaxDB and PostgreSQL JDBC drivers to
+      UNO_JAVA_JFW_CLASSPATH_URLS (removed in m224-1 due to the hsqldb
+      problems fixed in dba23e)
+    - one more lintian/.desktop fix
+    - build-depend on libicu-dev; 3.8 changed the -dev name (and 3.4 and 3.6
+      provide libicu-dev)
+    - update for OOG680
+    - handle epochs in $(BINARY_VERSION)
+    - fix X-KDE-Protocols addition to not add it a second, third etc. time on
+      incremental builds
+    - ooo-extension.desktop also needs Application; removed
+  * debian/control.{postgresql,}.in, debian/rules,
+    debian/openoffice.org-sdbc-postgresql.*: package PostgreSQL SDBC Driver
+    from http://dba.openoffice.org/drivers/postgresql/ (closes: #346475)
+  * debian/copyright: update from readlicense_oo/html/THIRDPARTYLICENSE.html
+    (removing stuff which is not (anymore) in OOos source...) and
+    reportdesign/util/THIRDPARTYLICENSE.html
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 16 Aug 2007 12:59:20 +0200
+
+openoffice.org (2.3.0~src680m225-1) experimental; urgency=low
+
+  * new upstream snapshot (SRC680_m225)
+  * ooo-build:
+    - update (r10029)
+    - src: update GSIs from ftp.linux.cz: bg cs dz et fi mk sk
+  * debian/control.in:
+    - build-conflict against gjdoc (= 0.7.8-2) [RE]
+    - make -base suggest -report-builder and -report-builder enchance
+      Base [RE]
+  * debian/rules:
+    - clean up multi-threaded build support [CC, RE]
+    - remove share/xdgs .desktop files (except qstart.desktop), not
+      needed [RE]
+    - enable system-libwpg on sid [RE]
+      (it's on p.d.o/~rene/libwpg while in NEW)
+    - fix PRUNE_OOOBUILD conditional [RE]
+    - remove removal of the Sun logo from the BrOffice.org splashs again,
+      upstream now also has nologo versions for them [RE]
+  * debian/*:
+    - remove Ubuntu conditionals added in -1 again, it makes
+      the rules for Debian even harder to read/understand than
+      it's even now... [RE]
+  * debian/soffice.sh, debian/rules:
+    - install /etc/openoffice/soffice.sh, merged from Ubuntu. [CC, RE]
+  * debian/rules, debian/overrides.lintian:
+    - fix or override (package depends on package containing the file)
+      lintians new desktop warnings [RE]
+  * debian/rules, debian/control.in, debian/openoffice.org-report*:
+    component got renamed to sun-report-builder. sigh. adapt [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  8 Aug 2007 18:39:20 +0200
+
+openoffice.org (2.3.0~src680m224-1ubuntu2) gutsy; urgency=low
+
+  * Disable gsi export.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 08 Aug 2007 12:11:01 +0200
+
+openoffice.org (2.3.0~src680m224-1ubuntu1) gutsy; urgency=low
+
+  * Resynchronise with Debian. Remaining changes
+    - debian/control.2.in:
+      . Add file for Ubuntu.
+    - debian/control.in:
+      . Add openoffice.org-style-human package.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/control.l10n.in:
+      . Add file for Ubuntu.
+    - debian/control.lang.in:
+      . Add L10N_COMMON to Depends.
+    - debian/control.ubuntu.in:
+      . Add file for Ubuntu.
+    - debian/convert2po:
+      . Add file for Ubuntu.
+    - debian/deppackage.postinst.in:
+      . Add file for Ubuntu.
+    - debian/gsifilter.py:
+      . Add file for Ubuntu.
+    - debian/gsistat.py:
+      . Add file for Ubuntu.
+    - debian/module-po.map:
+      . Add file for Ubuntu.
+    - debian/rules:
+      . Use imagemagick instead of graphicsmagick
+      . Support separate openoffice.org-l10n source.
+      . Use imagemagick instead of graphicsmagick
+      . Various Ubuntu specific changes.
+    - debian/scripts/fix_image_rgb:
+      . Use imagemagick instead of graphicsmagick
+    - debian/splitgsi:
+      . Add file for Ubuntu.
+    - ubuntu/*:
+      . Various Ubuntu specific changes.
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Mon, 06 Aug 2007 15:43:45 -0500
+
+openoffice.org (2.3.0~src680m224-1) experimental; urgency=high
+
+  * new upstream snapshot (SRC680_m224)
+    - fixes joining cells in writer tables (closes: #218281)
+    - fixes text width in PDF export (closes: #408209)
+    - adds fy_NL localedata (closes: #413205)
+    - adds option to ignore printer settings from documents (closes: #428646)
+    - fixes sheet printing in calc (what to print now choosable easily)
+      (closes: #386250)
+    - fixes tiff heap overflow (CVE-2007-2834)
+  * ooo-build:
+    - use trunk again
+    - update (r10006)
+      + apply Split section. Fixes the binfilter split so that StarWriter
+        3.0-5.0 etc. do not appear anymore when -filter-binfilter is not
+        installed (indirectly closes: #421274)
+    - src/:
+      + add updated GSIs from ftp.linux.cz:
+        af be-BY bg cs cy da dz eo et fi ga ka ku lt mk nb ne nn sl tg vi
+      + add uz GSI from cwx localisation21 [RE]
+  * debian/rules, debian/Adobe-Core35_AFMs-314.tar.gz.uu: remove, unneeded
+    [RE]
+  * debian/rules:
+    - update for 2.3 [RE]
+    - add ppc64 test-wise [RE]
+    - reenable mr-IN since now fixed [RE]
+    - build-depend on libneon26 again, got fixed and is the only supported
+      version since m219 anyway [RE]
+    - add conditional for system-libsvg, enable it for sid/experimental [RE]
+    - install headless vcl plugin into -headless [RE]
+    - remove debian/libuno-cil.installcligac in clean [RE]
+    - set HELP_L10N_VIRTUAL_VERSION to $(shell $(UPSTREAM_VERSION) | tr [~]
+      [\\-]) [CC]
+    - suggest libc*-dbg [RE]
+    - build with --enable-openxml to get the OOXML extensions for the bash
+      completion [RE]
+    - don't manually split binfilters anymore [RE]
+    - build-depend on gperf for OOXML patchset [RE]
+    - fix some stuff for etch backports [RE]
+    - install splash screens directly from OOos source tree after fixing
+      their RGBness and removing the Sun logo from the BrOffice.org splash
+      while we don't have a nologo variant upstream yet (thanks Martin Hasch
+      for the conversion hint and André Schnabel for the needed (gm) convert
+      statement for the "Sun removal") [RE]
+    - migrate to graphicsmagick as convert from imagemagick (at least etchs)
+      does create a broken BMP out of the Sun logo removal step.. [RE]
+    - reenable km again due to demand of the Khmer people... [RE]
+    - uuencode all ooo-build/desktop icons [CC]
+    - add USE_SYSTEM_VIGRA conditional, enable it [RE]
+    - install *updchk* again, as the extension manager UI now apparently
+      needs this one, too... [RE]
+    - wrap various java code with ENABLE_JAVA [CC]
+    - wrap ooo-build pruning with PRUNE_OOOBUILD [CC]
+    - simplify uuencode/uudecode code [CC]
+    - add DBVER substition [CC]
+    - fix testtoolrc (non)installation [RE]
+    - enable uz langpack [RE]
+  * debian/control.in:
+    - build-depend on libxml-parser-perl [RE]
+    - Add XS-Vcs-{Bzr,Svn} fields [RE]
+    - we need to build-depend on dmake (>= 1:4.7) [RE]
+    - build-depend on netpbm [RE]
+    - remove imagemagick; add graphicsmagick [RE]
+    - remove version from java-common-depends since it is substituted [CC]
+  * debian/*.menu, debian/*.overrides.lintian:
+    - update for 2.3 [RE]
+  * debian/README.Debian-source: update [RE]
+  * merge from Ubuntu:
+    - make system-dmake conditional [RE]
+    - add Ubuntu conditonals [CC]
+  * debian/br{intro,about}.bmp.uu: remove, obsolete [RE]
+  * debian/scripts/fix_image_rgb: add [RE]
+  * debian/openoffice.org-core.shlibs.local: add
+    libuno_purpenvhelpergcc3 [RE]
+  * debian/rules, debian/openoffice.org-reportdesigner*: properly
+    install/package the reportdesigner extension [RE]
+  * debian/rules, debian/*.menu.in, debian/*.overrides.lintian.in:
+    add version number to the icon= entry dynamically [RE]
+  * debian/NEWS: remove, obsolete [CC]
+
+   (CC = Chris Cheney)
+
+ -- Rene Engelhard <rene@debian.org>  Sun,  5 Aug 2007 17:42:24 +0200
+
+openoffice.org (2.2.1-7) unstable; urgency=low
+
+  * ooo-build:
+    + update (r9936)
+    + src:
+      - add he GSI from Issue 79651
+        . fixes hardcoded 2.0.3 in recovery dialog (closes: #432770)
+        . removes bogus 2.0.3 from Help->About ttle (closes: #432771)
+  * merge from 2.3/experimental branch:
+    - debian/rules:
+      + fix some stuff for etch backports
+      + suggest libc*-dbg
+      + reenable km again due to demand of the Khmer people...
+    - debian/*.mime: move Star* into a -filter-binfilter.mime [RE]
+  * debian/control.in:
+    - add build-conflicts against
+      libxul-dev (= 1.8.0.13~pre070720-0etch1) - broken security update, see
+      #434844
+  * debian/README.Debian: update for myspell-af and
+    openoffice.org-hyphenation-it
+  * debian/rules:
+    - suggest openoffice.org-ctl-he at -l10n-he
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 30 Jul 2007 22:17:05 +0200
+
+openoffice.org (2.2.1-6) unstable; urgency=low
+
+  * ooo-build:
+    - update (r9849)
+  * debian/*.menu:
+    - adapt to the new menu sections
+    - fix icon=
+  * debian/openoffice.org-*.overrides.lintian:
+    - update overrides for menu icons
+  * debian/rules:
+    - fix order in USE_LIBCURL4
+    - fix setting of path for the ICU utils, thanks calc
+    - (temporarily) stop install xmerge javadoc as its build broke with ant
+      1.7.0. Fixes FTBFS because files were tried to be installed which aren't
+      there (the ant step doesn't fail...)
+    - build against lp-solve (>= 5.5.0.10-4) and libsuitesparse
+      (closes: #433486)
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 18 Jul 2007 10:28:49 +0200
+
+openoffice.org (2.2.1-5ubuntu3) gutsy; urgency=low
+
+  * Rebuild for debhelper gtk-update-icon-cache fix. Closes LP: #125400
+  * debian/control:
+    - Updated Build-Depends for debhelper (>= 5.0.51ubuntu3)
+  * debian/rules:
+    - convert dh_iconcache call to dh_icons
+    - Updated Build-Depends for debhelper (>= 5.0.51ubuntu3)
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Thu, 12 Jul 2007 07:21:24 -0500
+
+openoffice.org (2.2.1-5ubuntu2) gutsy; urgency=low
+
+  * debian/rules:
+    - correct way path is set
+    - remove 0 byte po files
+
+ -- Chris Cheney <ccheney@ubuntu.com>  Wed, 11 Jul 2007 12:00:52 -0500
+
+openoffice.org (2.2.1-5ubuntu1) gutsy; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat,  7 Jul 2007 22:15:42 +0200
+
+openoffice.org (2.2.1-5) unstable; urgency=low
+
+  * ooo-build:
+    - update (r9703)
+      + libpaper-support.diff: backport suppressing of
+        "paperconf: command not found" from cws vcl79 (closes: #430141)
+  * debian/control.mozilla.in:
+    - stop recommending mozilla-browser (closes: #431269)
+  * debian/rules:
+    - remove FontOOo from /usr/lib/openoffice/share/basic/launcher/script.xlb,
+      see issue 79153
+    - stop running the smoketest again...
+    - revert to using libstlport4.6, sorry Torsten...
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  4 Jul 2007 10:48:34 +0200
+
+openoffice.org (2.2.1-4) unstable; urgency=low
+
+  * debian/rules: fix lp-solve builddeps, oops
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 29 Jun 2007 17:47:56 +0200
+
+openoffice.org (2.2.1-3) unstable; urgency=low
+
+  * debian/shell-lib.sh: do not parse /var/lib/dpkg/status diretcly, use
+    dpkg-query -W -f='${Conffiles}'
+  * ooo-build:
+    - update (r9666)
+      + distro-configs: --disable-access, broken, thanks Mechtilde Stehmann
+        for the reminder
+      + fix smoketestoo_native
+  * debian/rules:
+    - --disable-access; remove BUILD_MDBTOOLS conditionals, see above
+    - improve test target; make it honour nocheck for DEB_BUILD_OPTIONS,
+      run smoketest per default
+    - remove some ifeq "$(ETCH_BACKPORT)" "y" conditionals, one to go...
+    - make -gcj depend on bsh-gcj
+    - add (Build-)Conflicts against libcairo2 (= 1.4.8-1) (closes: #430135),
+      cairo 1.4.10 is fixed
+    - install xmerge javadoc into -dev-doc
+    - change ooo-template.desktop also for BrOffice.org
+  * debian/broffice.org*.in: add diversion for ooo-template.desktop
+  * debian/openoffice.org-impress.mime: add pps
+  * debian/openoffice.org.control.bug: fix thinko (s/base/core/)
+  * debian/control.mozilla.in: remove unneeded ${misc:Depends} at
+    mozilla-openoffice.org
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 29 Jun 2007 01:04:37 +0200
+
+openoffice.org (2.2.1-2ubuntu1) gutsy; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 27 Jun 2007 14:34:52 +0200
+
+openoffice.org (2.2.1-2) unstable; urgency=low
+
+  * ooo-build:
+    - update (r9584)
+      + canvas_x64.diff: fixes vanvas build with internal boost on amd64
+  * debian/rules:
+    - adapt libmythes-dev build for canonical upstream tarball name
+      (closes: #428850)
+    - do not add the internal libxmlsec to openoffice.org-cores .shlibs
+    - add SYSTEM_LIBWPG conditional, not enabled anywhere yet
+    - use internal boost on amd64, too (closes: #425528 again)
+    - fix typos (s/oooqstart/ooqstart/)
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 14 Jun 2007 16:53:01 +0200
+
+openoffice.org (2.2.1-1) unstable; urgency=low
+
+  * OOo 2.2.1 final release without source changes
+    (with new, fixed orig.tar.gz removing some non-free stuff which
+    were left in to the scripts' bug and a overseen upstream change)
+  * mention CVE-2007-0245 fix in 2.2.1~rc1-1's changelog
+  * ooo-build:
+    - update (r9562)
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  8 Jun 2007 17:24:56 +0200
+
+openoffice.org (2.2.1~rc3-3) unstable; urgency=low
+
+  * ooo-build
+    - update (r9534)
+      + wpgimporter.diff: wpgimport moved intro -draw
+  * debian/control.in:
+    - update Replaces:
+  * debian/rules:
+    - fix debian/rules typo at adding libmono0-dbg to -dbgs Suggests
+      which made OOo FTBFS on archs where mono is enabled
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  6 Jun 2007 12:59:10 +0200
+
+openoffice.org (2.2.1~rc3-2) unstable; urgency=low
+
+  * ooo-build:
+    - update (r9520)
+  * debian/rules:
+    - use internal boost (closes: #425528)
+    - add libmono0-dbg to -dbgs Suggests:
+    - handle libgcj8-0-awt of gcj-4.2
+  * build in a clean env without DEB_BUILD_OPTIONS="lang=en-US de" to
+    actually build with all languages... *sigh*, again (closes: #427547)
+
+ -- Rene Engelhard <rene@debian.org>  Mon,  4 Jun 2007 23:10:26 +0200
+
+openoffice.org (2.2.1~rc3-1ubuntu3) gutsy; urgency=low
+
+  * Fix merge error, re-add Pre-Depends on dpkg.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 05 Jun 2007 16:49:58 +0200
+
+openoffice.org (2.2.1~rc3-1ubuntu2) gutsy; urgency=low
+
+  * Use the internal portaudio library.
+  * Build using stlport5.1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 05 Jun 2007 09:17:15 +0200
+
+openoffice.org (2.2.1~rc3-1ubuntu1) gutsy; urgency=low
+
+  * Merge with Debian.
+  * ooo-build: Add support for UbuntuGutsy and UbuntuGutsy64.
+  * debian/rules: Adjust docdir symlinks.
+  * Build using the internal libwpd.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  4 Jun 2007 12:55:08 +0200
+
+openoffice.org (2.2.1~rc3-1) unstable; urgency=low
+
+  * OOo 2.2.1rc3 (aka OOF680_m18)
+    - fixes CVE-2007-2754 for the (unused) internal freetype copy
+  * ooo-build:
+    - update (9495)
+      + distro-configs/Debian*conf.in: --without-nas
+  * debian/rules:
+    - stop symlinking simpress' help files as that breaks searching
+      in it. ship them again instead of hardlinking them as hardlinks
+      are not allowed/discouraged (closes: #411693)
+    - build-depend on libcurl{3,4}-gnutls-dev (closes: #391671)
+    - remove unneeded diriso setting at help copying. confusing and not
+      needed anymore.
+    - fix qstart.desktop - again (closes: #415180)
+  * debian/control.in:
+    - remove libaudio-dev builddep
+    - add Replaces: broffice.org (<< 2.2.1~rc1) to openoffice.org-common
+      to fix upgrades from etch with broffice.org installed.  Thanks
+      Otavio Salvador for the report
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  1 Jun 2007 11:05:29 +0200
+
+openoffice.org (2.2.1~rc1-1) unstable; urgency=high
+
+  * OOo 2.2.1rc1 (aka OOF680_m16)
+    - fixes RTF parser heap overflow (CVE-2007-0245)
+  * build in a clean env without DEB_BUILD_OPTIONS="lang=en-US" to
+    actually build with all languages, oops
+  * ooo-build:
+    - update (r9418)
+    - distro-configs/Debian*.conf.in: remove --with-libpaper-link
+      libpaper is GPL. (closes: #423906)
+    - libpaper-support.diff: update to version in cws vcl78 using the
+      paperconf command.
+  * merge 2.2.0-7 (closes: #422492, #422530)
+  * debian/rules:
+    - don't remove updatefeed.uno.so, the extension manager needs it
+      (closes: #422870)
+    - fix some files in the udk-common-ref doc-base file
+    - updates for 2.2.1
+    - remove generated udk-common-* doc-base files in clean
+    - don't add Autodoc_DiagnosticMessages.txt into udk-{cpp,common}-refs
+      doc-base.
+  * debian/broffice.org.*.in:
+   - add about.bmp to the diversions
+  * debian/control.in:
+    - Stop build-depending on libpaper-dev; suggest libpaper-utils (see above)
+    - (again) only suggest the packages from -style-*. Somehow got lost.
+      (closes: #423950)
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 15 May 2007 13:15:22 +0200
+
+openoffice.org (2.2.1~oof680m15-1) experimental; urgency=low
+
+  * new upstream milestone (OOF680_m15)
+  * ooo-build:
+    - update (r9359)
+
+ -- Rene Engelhard <rene@debian.org>  Sat,  5 May 2007 00:04:02 +0200
+
+openoffice.org (2.2.0-7) unstable; urgency=low
+
+  * ooo-build:
+    - update (r9364)
+      + default to OPENGL_SUPPORT=no (closes: #422492)
+      + prefer /gcj-4.1-71/libjvm.so over /gcj-4.1/libjvm.so
+  * debian/rules:
+    - use tail -n 1 instead of grep ^ii in the gcj-4.1 dpkg -l check
+      as it apparently isn't always ii after installed (like in sbuild/on the
+      buildds)... Same change at the libc6 check for consistency although
+      libc6 probaby should be ii always even on the buildds :)
+    - move oovbaapi.rdb back into -core (closes: #422530)
+  * debian/rules, debian/control.in:
+    - build against libcurl4 on sid
+
+ -- Rene Engelhard <rene@debian.org>  Tue,  8 May 2007 11:28:09 +0200
+
+openoffice.org (2.2.0-6) unstable; urgency=low
+
+  * ooo-build:
+    - update (r9346)
+      + jvmfwk-gij-paths.diff: add /gcj-4.1-71/libjvm.so to fix FTBFS with
+        new libgcj7-1
+  * debian/rules:
+    - stop creating a xt.jar symlink (closes: #412671)
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  4 May 2007 23:22:16 +0200
+
+openoffice.org (2.2.0-5) unstable; urgency=low
+
+  * ooo-build:
+    - switch to ooo-build-2-2 branch
+    - update (r9331)
+      + adds crashfix for impress crashing with STLport5.1 on exit
+        (closes: #421297)
+  * debian/control.in:
+    - add forgotten Conflicts to -common against older -writer etc due to the
+      wrapper scripts/ooqstart changes
+    - make new -base,-writer,-mobiledev,-officebean pre-depend on new
+      -java-common, make java-common conflict against old versions of above
+      packages.
+  * debian/rules:
+    - move oovbaapi.rdb into -calc as the rest of VBA stuff is there
+    - remove unneeded updatefeed.uno.so
+    - make classes a normal dir again (and add symlinks in it) instead of it
+      being a symlink itself since it breaks the UNO bootstrap mechanism
+      some stuff (including extensions) seem to rely on...
+    - add ice* to senddoc again, got lost with the upgrade to 2.2.0
+      (closes: #411387)
+    - install tenmplate.desktop as ooo-template.desktop
+    - handle new libgcj7-1-awt...
+    - fix links to the DevelopersGuide (closes: #420803)
+    - fix "openoffice" command, symlink to ooffice instead of gone ooo-wrapper
+      (closes: #421030)
+    - fix acor_*.dat fixing (closes: #401651)
+    - cleanup:
+      - split binary-* targets, remove binary-common
+      - remove makebinariestar, we now have a -dbg
+    - fix some links in the UDK Java docs
+  * debian/libuno-cil.installcligac.in:
+    - remove cli_uno_bridge.dll
+  * debian/openoffice.org-{base,writer,officebean,filter-mobiledev,java-common,dev}.preinst.in:
+    - add; remove classes symlink if found since dpkg doesn't replace a
+      symlink with a dir
+  * debian/template.desktop.in:
+    - add from Ubuntu (changed in Debian to read "OpenOffice.org"
+      instead of a "OpenOffice.org From Template" and remove now obsolete
+      translation; and to show it) per user requests...
+  * debian/rules, debian/udk-{java,common,cpp}.ref.in:
+    - register UDK documentation with doc-base (closes: #420805)
+  * debian/control.in, debian/rules:
+    - don't depend on libxerces2-java-gcj, libxalan2-java-gcj on etch
+      backports
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  2 May 2007 20:12:24 +0200
+
+openoffice.org (2.2.0-4) unstable; urgency=low
+
+  * Upload to unstable
+  * ooo-build:
+    - update (r9238)
+      + apply CairoFonts patchset
+  * debian/rules:
+    - build-depend on libgtk2.0-dev (>= 2.10) as CairoFonts needs it
+    - build against libportaudio2 (portaudio v19)
+    - work around loads of fakeroot warnings by adding /usr/lib/libfakeroot
+      to LD_LIBRARY_PATH ourself.
+    - remove version number from qstart.desktop
+    - remove temporarily added mono-build-deps again
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 16 Apr 2007 20:40:03 +0200
+
+openoffice.org (2.2.0-3) experimental; urgency=low
+
+  * ooo-build:
+    - update (r9218)
+  * debian/control.in:
+    - lower Recommends added in last revision to Suggests since
+      aptitude users otherwise would get the whole kde/gnome chain installed
+      although they just want crystal/industrial icons.
+    - make mozilla-openoffice.org depend on openoffice.org-core. remove
+      conflicts; also remove unneeded ${perl:Depends}
+  * debian/rules:
+    - add missing mkdir -p at mono-openoffice.pc install, doh..
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 12 Apr 2007 09:36:29 +0200
+
+openoffice.org (2.2.0-2) experimental; urgency=low
+
+  * ooo-build:
+    - update (r9212)
+      + merge ubuntu-soffice-config.diff from Ubuntu. Makes variables residing
+        in soffice configurable (and disables autohinting for thai)
+  * debian/rules:
+    - etch backport fixes (no mono, system-lpsolve fixes)
+    - fix standalone libmythes build for new upstream archive type
+    - revert to build with libneon25
+      (closes: #406926, #396094, #401286, #410917)
+    - run dh_installcligac, thanks Mirco Bauer
+    - install mozilla plugin as it now apparently seems to work. (closes: #418270)
+      Conflict against openoffice.org-core (<< 2.2.0-2)
+  * debian/libuno-cil.installcligac.in: add
+  * debian/control.in:
+    - make -style-crystal recommend kde-icons-crystal;
+      make -style-industrial recommend gtk2-engines, gnome-themes,
+      industrial-icon-theme; make -style-hicontrast recommend
+      gtk2-engines; make -style-tango suggest tango-icon-theme
+    - make -dtd-officedocument1.0's description say what DTD is
+      (closes: #417068)
+    - make -writer Suggest -base (see #381083)
+    - remove "instructions for using the package" from the descriptions
+      (closes: #392629)
+  * debian/control.mozilla.in: update
+  * debian/copyright, debian/README.Debian-source: minor updates
+  * debian/libuno-cil.{prerm,postinst}.in: remove
+  * merge from openoffice.org_2.2.0-1ubuntu2.diff.gz:
+    - build pt help
+    - recommend nfs-common at -core
+
+ -- Rene Engelhard <rene@debian.org>  Sun,  8 Apr 2007 19:21:03 +0200
+
+openoffice.org (2.2.0-1ubuntu4) gutsy; urgency=low
+
+  * Remove the build infrastructure to build experimental amd64 packages.
+  * Build using stlport4.6.
+  * Fix icon style selection.
+  * Do not hide the menu entry for the Draw application.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  4 Jun 2007 12:55:08 +0200
+
+openoffice.org (2.2.0-1ubuntu3) feisty; urgency=low
+
+  * openoffice.org-style-crystal: Suggest (instead of recommending)
+    kde-icons-crystal, crystalcursors. Ubuntu #104176.
+  * openoffice.org-style-industrial: Suggest (instead of recommending)
+    gtk2-engines, gnome-themes, industrial-cursor-theme.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 10 Apr 2007 14:57:57 +0000
+
+openoffice.org (2.2.0-1ubuntu2) feisty; urgency=low
+
+  * openoffice.org: Make openoffice.org-filter-binfilter a recommendation
+    instead of a dependency to save space on the CD.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu,  5 Apr 2007 16:31:03 +0200
+
+openoffice.org (2.2.0-1ubuntu1) feisty; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build.
+  * openoffice.org-core: Recommend nfs-common. Ubuntu #64813.
+  * Re-merge generic menu icons names. Ubuntu #99779.
+  * Build using neon25. Ubuntu #92345.
+  * Build using internal copy of xmlsec. Ubuntu #45801.
+  * openoffice.org-common: Depend on desktop-file-utils. Ubuntu #70105.
+  * openoffice.org-style-default: Build it as a transitional package.
+    Ubuntu #102690.
+  * Import Fedora fixes:
+    - Fix crashes in Outliner::ImplHasBullet(). Ubuntu #96622.
+  * Update ubuntu template documents.
+  * Update human icon theme, contributed by Gabriel Hurley.
+
+ -- Matthias Klose < doko@ubuntu.com>  Thu,  5 Apr 2007 15:00:24 +0200
+
+openoffice.org (2.2.0-1) experimental; urgency=low
+
+  * 2.2.0 final release.
+  * ooo-build:
+    - update (r9112)
+      + libpaper-support.diff, libpaper-link.diff: add (closes: #412067)
+  * debian/rules:
+    - follow upstreams mono pkg-config rename to mono-openoffice.pc
+    - fix glibc 2.5 check
+  * debian/control.in:
+    - build-depend on libpaper-dev
+    - fix duplicate Replaces: at -style-andromeda, thanks lintian
+  * debian/ttf-opensymbol.post{inst,rm}.in: use fc-cache -fs
+  * debian/libuno-cil.{prerm,postinst}.in: fix typo 
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 30 Mar 2007 14:20:45 +0200
+
+openoffice.org (2.2.0-0ubuntu2) feisty; urgency=low
+
+  * climaker-csharp-win.diff: Don't apply.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 30 Mar 2007 00:05:30 +0200
+
+openoffice.org (2.2.0-0ubuntu1) feisty; urgency=low
+
+  * OpenOffice 2.2.0 release.
+    - Fixed crash when changing icon size. Ubuntu #94682.
+  * Add support for the human icon theme.
+  * Update ooo-build.
+    - Uses KDE filepicker. Ubuntu #90518.
+  * Add a Help menu item "Report a bug". Ubuntu #85041.
+  * Update help menu translations from Rosetta (launchpad-integration
+    package).
+  * Merge and update fontconfig changes from Fedora.
+  * Add transitional package openoffice.org-style-default.
+  * openoffice.orgVER-l10n-common: Conflict with language packages not built
+    anymore to help upgrades. Ubuntu #94815, #95499.
+  * Use Times/Helvetica as the default font for writer documents (calc and
+    impress still pick up the DejaVu screen font).
+  * Disable file locking on NFS and SMB shares; make it configurable in
+    /etc/openoffice/soffice.sh.
+  * Keep OpenGL enabled; make it configurable in /etc/openoffice/soffice.sh.
+  * Turn off autohinting for Thai (dropped patch).
+  * Import patch from Fedora to fix type size mismatch in ww8 import
+    on 64bit architectures. Ubuntu #93758.
+  * Update menu translations from Rosetta. Ubuntu #66283, #90965.
+  * Add a Human icon theme, enabled by default for Gnome; update human icons.
+  * Build a openoffice.org-help-pt package. Ubuntu #79406.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 29 Mar 2007 17:58:28 +0200
+
+openoffice.org (2.2.0~rc4-1) experimental; urgency=low
+
+  * new upstream release candidate
+  * ooo-build:
+    - update (r9064)
+  * debian/rules, debian/control.in:
+    - rename -style-default to -style-andromeda
+  * debian/libuno-cil.prerm.in: fix, doh
+  * debian/libuno-cil.*.in, debian/broffice.org.*.in:
+    - remove hardcoded usr/lib/openoffice, use @OODIR@
+    - add @VER@ for desktop files
+  * debian/rules:
+    - temporary increase mono build-deps (all packages which differ in
+      experimental to sid when we install mono-gmcs mono-mcs libmono-dev
+      cli-common-dev) as autobuilding otherwise fails in experimental...
+    - install tango icons
+    - fix dh_shlibdeps call for glibc 2.5
+  * debian/control.in:
+    - add -style-tango package; make -gtk depend on -tango instead of
+      -industrial as tango now is default on GNOME
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 22 Mar 2007 18:29:38 +0100
+
+openoffice.org (2.2.0~rc4~oof680m13-1) experimental; urgency=low
+
+  * new upstream milestone
+  * ooo-build:
+    - update (r9022)
+      + added senddoc-add-mutt.diff: add mutt to senddoc, thanks Gregor Hermann
+        for the patch (closes: #411631)
+      + added helpcontent-fr-and.diff: fix wrong function description translation
+        for French, thanks Sebastien Blondeel (closes: #412117)
+  * debian/libuno-cil.prerm.in:
+    - use gacutil -us
+  * debian/control.in:
+    - remove version info from broffice.org/openoffice.orgs
+      package description, hardcoded and redundant
+  * debian/rules:
+    - fix permission of some examples, thanks lintian
+    - generalize mono-ooo.pc installation to not fail when OOO_VERSION changes
+      in ooo-build
+    - enable system-libwps
+    - install scsolvers ChangeLog into -calc
+    - fix <ooodir>/share/xdg/qstart.desktops Exec=, thanks Fabian Greffrath
+      for noticing (closes: #415180)
+    - bump libhunspell-dev builddep to surely build against 1.1.5s (a bit) changed
+      ABI... Since libhunspell-1.1-0 so far was only in experimental, OOo was
+      the only external app using it yet and 1.1.5 is the first official
+      upstream version with shared lib, just build against that and forget the
+      "old" ABI...
+  * debian/rules, debian/control.in: fix binfilter substvar setting for
+    -filter-so52 -> filter-binfilter move and fix the indentation of the
+    binfilter description. Remove now superfluous Suggests at the
+    openoffice.org metapackage and make -writer use the substvar for its
+    Recommends:
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 20 Mar 2007 21:47:20 +0100
+
+openoffice.org (2.2.0~rc3~oof680m10-0ubuntu3) feisty; urgency=low
+
+  * Hint pkgstriptranslations to build the translation tarball after
+    the gsi export and po conversion.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu,  8 Mar 2007 12:47:37 +0100
+
+openoffice.org (2.2.0~rc3~oof680m10-0ubuntu2) feisty; urgency=low
+
+  * Re-add lost build dependency on python-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  6 Mar 2007 21:22:09 +0100
+
+openoffice.org (2.2.0~rc3~oof680m10-0ubuntu1) feisty; urgency=low
+
+  * OpenOffice 2.2 oof680 milestone 10.
+  * Update ooo-build.
+  * Merge with Debian.
+  * Add bits for the dapper build.
+  * Import Fedora fixes ooo73201.sw.a11yloadcrash, ooo73481.svx.longnotint32.
+  * Update splash and about bitmaps (Kenneth Wimer).
+  * Expose the exported locale data as single files to Rosetta, don't merge
+    them.
+  * Work around a build on sparc SMP.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  6 Mar 2007 20:30:01 +0100
+
+openoffice.org (2.2.0~rc2-1ubuntu1.1) feisty-ooo; urgency=low
+
+  * OpenOffice 2.2 release candidate 2.
+  * Update ooo-build.
+  * Merge with Debian.
+  * The -gcj package isn't built by the openoffice.org-l10n source.
+  * Fix version in package descriptions.
+  * Add tango icons from upstream CVS; merge some icons from the
+    gnome-icon-theme, tango-icon-theme, tangerine-icon-theme,
+    human-icon-theme packages.
+  * ubuntu-smoketest.diff: Revert oosmoketest to the version from edgy
+    (Torsten Spindler). Ubuntu #89005.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat,  3 Mar 2007 14:51:16 +0100
+
+openoffice.org (2.2.0~rc2-1) experimental; urgency=high
+
+  * new upstream releasse candidate.
+    - fixes bibliography database encoding (closes: #186010)
+    - "Hide slide" option now renamed on hidden slides (closes: #335720)
+    - fixes StarCalc format file parser stack overflow (CVE-2007-0238)
+    - fixes escaping of hyperlinks (CVE-2007-0239)
+    - internal (unused here) libwpd copy fixes CVE-2007-0002
+  * ooo-build:
+    - use trunk
+    - update
+    - src/:
+      - remove obsolete GSI files
+      - add OOF680 GSIs from ftp.linux.cz
+  * debian/control*, debian/rules:
+    - rename -filter-so52 to -filter-binfilter due to upstream move of some
+      other filters to the "binfilters"
+  * debian/rules:
+    - build -l10n-gl/-help-gl (galician)
+    - 2.2 updates
+    - make desktop file changing/installation handle extension.desktop and
+      make broffice target changing it
+    - bump mono build-deps; the C# climaker is done but needs mono (>= 1.2.3).
+      We also need mono-gmcs. Also add versioned mono-utils build-dep to work
+      around #412970.
+    - use br{intro,about}.bmp for BrOffice.org splash/about
+    - temporarily disable smoketest build completely (idlc somehow
+      fails to create temporary file)
+    - add lp-solve (>= 5.5.0.10-2) builddep (we now expect the shared lib)
+      and make -calc depend on it when we use system lp-solve
+    - build-depend on libhunspell-dev (>= 1.1.4-6) on sid
+    - use internal altlinuxhyph for etch backports, thanks Otavio Salvador
+    - remove defaulting to parallel builds since the formerly biggest bottleneck
+      now is none anymore (HelpLinker)
+    - Bump cli-common-dev builddep. Run dh_makeclilibs. Fix comment.
+    - we need to specify --enable-mono explicitely when we want mono
+    - install mono-ooo.pc into libuno-cil
+    - enable libuno-cil on i386 and amd64 (ppc has no suitable mono yet and
+      fails due to #412967 anyway, neither has sparc a mono anyway)
+  * debian/scripts/vars.*: add mips and kfreebsd-i386/-amd64
+  * debian/control*.in:
+    - make the openoffice.org metapackage depend on -filter-mobiledev and
+      -filter-binfilter (the latter doesn't have the obvious package name
+      anymore and not having it gives a confusing error)
+    - verbosize libuno-cils description, put it into libs
+    - make libuno-cil depend on mono-gac
+  * debian/rules, debian/control.mono.in: add OOO_MONO_ARCHS variable
+  * debian/broffice.org.{preinst,postrm}.in: also divert ooo-extension.desktop
+  * debian/*broffice.org.{bmp,png}.uu: remove, obsolete ...
+  * debian/br{intro,about}.bmp.uu: ... and use these from svx/res from
+    cws_oof680_nativebroffice
+  * debian/libuno-cil.{postinst,prerm}.in: add; run gacutil
+  * debian/openoffice.org-filter-so52.*: remove ...
+  * debian/openoffice.org-filter-binfilter.*: ... add this
+  * merge from openofficeorg--unstable--2.0.4:
+    - debian/rules:
+      + change open-url to know ice*
+
+ -- Rene Engelhard <rene@debian.org>  Thu,  1 Mar 2007 12:58:45 +0100
+
+openoffice.org (2.2.0~rc1-0ubuntu1) feisty; urgency=low
+
+  * OpenOffice 2.2 release candidate 1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 27 Feb 2007 01:53:48 +0100
+
+openoffice.org (2.2~oof680m7-0ubuntu1) feisty; urgency=low
+
+  * OpenOffice 2.2 release candidate 1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 22 Feb 2007 20:15:45 +0100
+
+openoffice.org (2.1-4ubuntu1) feisty; urgency=low
+
+  * Update the Ubuntu maintainer address.
+  * Work around man page installation problems.
+  * Update ooo-build.
+    - fix build failure on amd64.
+  * Merge with Debian.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 22 Feb 2007 14:14:20 +0100
+
+openoffice.org (2.1-4) experimental; urgency=low
+
+  * ooo-build:
+    - update (r8890 / ooo-build-2-1 branch)
+      + src/: add libwps-0.1.0~svn20070129.tar.gz and
+              libwpd-0.8.8.tar.gz (unused...)
+  * debian/control*in:
+    - make -gcj Depend on libxerces2-java-gcj and libxalan2-java-gcj
+  * debian/rules:
+    - prepare for system-libwps by adding conditional for it, to be enabled
+      once libwps gets out of NEW
+    - bump libaltlinuxhyph-dev builddep to ensure we build with OOo 2.1s
+      hyphenation code
+    - remove obsolete --with-system-gcc
+    - readd libdb4.4-java builddep until some patch ordering problems in
+      ooo-build are sorted out and we actually can apply no-db-jar.diff
+      (closes: #409281)
+    - the smoketest hangs on amd64, disable it for amd64
+  * debian/rules:
+    - update cvsupdate target for svn
+    - change senddoc to know iceape and iceweasel. Do it here since it's easy
+      to change with sed and we don't need a debian-specific ooo-build for
+      this (closes: #411387)
+  * debian/openoffice.org-writer.mime:
+    - add application/vnd.ms-works
+  * merge from openofficeorg--unstable--2.0.4:
+    - debian/control.help.in:
+      + fix descriptions ("help of OpenOffice.orgs help"..)
+    - debian/rules:
+      + work around ooo-build not removing the generated
+        openoffice{,-extra}.{applications,keys} from desktop/ by
+        running make clean there before the global make distclean.
+      + disable ar langpack, broken
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 20 Feb 2007 00:31:11 +0100
+
+openoffice.org (2.1-3ubuntu1) feisty; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build, switch to the ooo-build-2-1 branch.
+  * Configure --with-system-libwps, build-depend on libwps-dev.
+  * Drop dependency on libjaxp1.2-java.
+  * openoffice.org-core: Depend on openoffice.org-hyphenation.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  9 Feb 2007 23:53:39 +0100
+
+openoffice.org (2.1-3) experimental; urgency=low
+
+  * ooo-build:
+    - update (r8669)
+  * debian/changelog:
+    - recode to UTF-8 to shut lintian up
+  * debian/rules:
+    - do not install Helvetica-Narrow*.afm because it confuses OOo...
+    - stop build-depending on libdb4.4-java, not needed anymore due to
+      the C++ HelpLinker
+    - update for new location of 48x48 px icons in ooo-build
+    - LIBSTLPORT_MINVER= (>= 5.0.99rc2-5) in the STLPORT5 case
+    - use libstlport4.6 in the etch backport case, the needed 5.1 is stuck
+      in sid
+    - xvfb needs xauth (xbase-clients) and xfonts-base is also needed; add
+      both to build-depends
+    - link directly to xml-apis.jar instead of hard-coding jaxp-1.2.jar
+      and remove depends on libjaxp1.2-java since libxalan2-java has the
+      link we use and it depends on the right version, too (closes: #406783)
+    - readd lost touch at build target
+    - remove install-arch stampdir after dh_strip --dbg-package because
+      dh_strip is not idempotent
+    - fix stlport (build-)deps generation
+  * debian/README.Debian:
+    - s/oopadmin/spadmin/ (closes: #406760)
+  * merge from openoffice.org_2.1-2ubuntu4.patch:
+    - make packaging of SDK conditional
+    - don't compress example python files
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 27 Jan 2007 19:02:06 +0100
+
+openoffice.org (2.1-2ubuntu4) feisty; urgency=low
+
+  * Update ooo-build.
+  * Build using hunspell instead of myspell.
+  * Set the Maintainer/Original-Maintainer fields.
+  * Use stlport5.1 instead of stlport4.6.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 18 Jan 2007 13:54:00 +0000
+
+openoffice.org (2.1-2ubuntu3) feisty; urgency=low
+
+  * Use symlinks for the -l10n-in, -l10n-za, -filter-mobiledev,
+    -dtd-officedocument1.0 doc directories.
+  * Reenable parallel builds on powerpc and sparc.
+  * Disable running the smoketest. Fails on the buildd.
+  * Temporarily add a build dependency on python2.4 to avoid build
+    failures on the buildd chroots.
+  * libmythes-dev, python-uno, ttf-opensymbol: Install missing copyright files.
+  * python-uno: Don't compress example python files.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 13 Jan 2007 19:28:24 +0100
+
+openoffice.org (2.1-2ubuntu2) feisty; urgency=low
+
+  * Use stlport4.6 (main) instead of stlport5.1 (universe).
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 12 Jan 2007 20:39:09 +0000
+
+openoffice.org (2.1-2ubuntu1) feisty; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build.
+  * python-uno: Build for python2.5 as the default python version.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 12 Jan 2007 15:16:01 +0100
+
+openoffice.org (2.1-2) experimental; urgency=low
+
+  * ooo-build:
+    - now in svn. update (r8549)
+      + odk-no-strip.diff: don't strip ODKs programs
+      + odk-platform-sparc.diff: add SPARC to settings.mk (closes: #403623)
+      + cws-cmcfixes30.diff: backport cws cmcfixes30, fixes
+        CVE-2006-6628 (closes: #404105)
+  * debian/rules:
+    - don't remove ODK programs from -dbg anymore
+    - don't hardcode 680, use SRCNUM variable
+    - add also links in /usr/lib/ice{ape,weasel} for libnpsoplugin.so
+    - when not building using firefox/xulrunner, disable mozilla, there's no
+      mozilla-dev anymore
+    - uri-encode is now a binary in -core; don't try to fix it's shebang :-)
+    - don't expect/install opens___.ttf in ooo-build, got removed. Remove -N
+      hack when we don't want to build ttf-opensymbol, add it to control as
+      other conditional packages
+    - prepare to build-depend on libgtk2.0-dev (>= 2.10) when applying the
+      CairoFonts patch. Do not do it yet because libgtk2.0-0 (>= 2.10) as in
+      experimental removes sids GNOME on an upgrade
+    - build against stlport5(.1) again (closes: #364814)
+    - update get-ooo-build for svn
+    - fix SDK wrapper scripts to quote $@ (closes: #405974)
+    - "build" in smoketestoo_native. Add build-dep on xvfb if we do that.
+  * debian/control.in:
+    - update broffice.org and openoffice.org descriptions version-wise
+  * debian/scripts/vars.*:
+    - readd, readd LIBSUFFIX; the maintscripts target gives warnings without
+      it and we might need it in future anyway (e.g. for lib diversions)
+  * debian/*broffice.org*.uu: update BrOffice.org images, thanks Claudio
+  * debian/changelog :):
+    - mention CVE-2006-5870 in 2.0.4-1 changelogs entry
+  * debian/README.Debian:
+    - mention uzbek dictionary
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 10 Jan 2007 01:15:20 +0100
+
+openoffice.org (2.1-1ubuntu2) feisty; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build, using the svn repository instead of the
+    disabled cvs repository.
+  * Disable the -l10n-km package build (FTBFS).
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  5 Jan 2007 12:23:41 +0100
+
+openoffice.org (2.1-1ubuntu1) feisty; urgency=low
+
+  * Merge with Debian.
+  * Don't build the debug package.
+  * Update ooo-build.
+  * Update Ubuntu patches for 2.1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Dec 2006 12:37:49 +0100
+
+openoffice.org (2.1-1) experimental; urgency=low
+
+  * OpenOffice.org 2.1 final
+  * ooo-build:
+    - update
+      + add patch from Fedora to honour fontconfig font hinting
+        (closes: #385798)
+      + src/:
+        - update GSIs from ftp.linux.cz
+  * debian/control*.in:
+     - one more %CONTRIB% to be removed, oops
+     - update/fix -style-*'s Replaces
+     - update -dev-docs replaces...
+  * debian/openintro_debian.bmp.uu, debian/rules:
+    - remove intro.bmp hacks again, now in ooo-build :)
+  * debian/rules:
+    - bump HELP_L10N_VIRTUAL_VERSION to 2.1
+    - temporary disable km build; breaks in sdraws and simpress' help
+  * merge 2.0.4.dfsg.1-1 to 2.0.4.dfsg.2-2
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 14 Dec 2006 09:28:43 +0100
+
+openoffice.org (2.1~rc2-1) experimental; urgency=low
+
+  * OpenOffice.org 2.1 rc2 (OOE680_m6)
+    - remove non-free afms (closes: #401325) and other non-free stuff (db 4.2
+      docs, non-free ppds) from orig.tar.gz
+  * ooo-build:
+    - update
+  * debian/control.in:
+    - bump dmake builddep to dmake (>= 1:4.6)
+    - fix -style-defaults short description
+    - fix l10n-ins Depends:, oops
+  * debian/rules:
+    - remove sarge backport conditionals, prepare for etch backport
+    - also extract $(TAG)/lingucomponent/inc to fix libymthes-dev-only build
+      with pch
+    - work around ooqstart not being able to handle 2.1's new splash image;
+      install openintro_debian.bmp as intro.bmp
+  * debian/rules, debian/*.menu, debian/*.overrides.lintian:
+    - update menu stuff for 2.1
+  * debian/rules, debian/ control.sarge_etch_transitional.in:
+    - remove sarge->etch transitional packages
+  * debian/openintro_debian.bmp.uu: add, original intro.bmp converted to RGB
+  * debian/rules, debian/presubj, debian/*.control.bug:
+    - add (report)bug stuff
+  * debian/README.Debian-source: update
+  * merge 2.0.4-6 and -7
+
+ -- Rene Engelhard <rene@debian.org>  Mon,  4 Dec 2006 01:45:38 +0100
+
+openoffice.org (2.1~m190-1) experimental; urgency=low
+
+  * OpenOffice.org SRC680_m190 on the way to 2.1
+  * ooo-build:
+    - use HEAD again; update
+  * debian/rules:
+     - update for milestone versioning
+     - stop depending on libxt-java at -java-common; unneeded and xt.jar is
+       removed from the installset
+     - update for SRC680/ooo-build changes (ooqstart, pch)
+     - reenable -dbg; use -g1, though
+  * merge from
+    doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.4:
+    - patch-38/40: Split out the four style files into their own packages.
+      - Let the -gtk package depend on the industrial style.
+      - Let the -kde package depend on the crystal style.
+      - Let the -common package recommend all style packages.
+    ( Fix package descriptions to tell the truth )
+  * debian/control.in:
+     - make -common depend on the default style
+     - add metapackages (l10n-in and -l10n-za for all Indic/South African
+       languages)
+     - add some missing VERs
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 30 Oct 2006 20:04:06 +0100
+
+openoffice.org (2.0.4.dfsg.2-3) unstable; urgency=high
+
+  * ooo-build:
+    - cws-cmcfixes30.diff: add writer parts of cws cmcfixes30, fixes
+      CVE-2006-6628 (closes: #404105)
+  * debian/changelog :):
+    - mention CVE-2006-5870 in 2.0.4-1 changelogs entry
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  5 Jan 2007 21:06:58 +0100
+
+openoffice.org (2.0.4.dfsg.2-2) unstable; urgency=high
+
+  * ooo-build:
+    - use special debian-2-0-4 branch, merge two important fixes
+      from ooo-build-2-0-4
+    - ooo68047.vcl.zwj.diff: import from Fedora, fix important regression
+      in 2.0.3 for South Asian scripts (closes: #403275)
+    - src:
+      + update to fixed dz GSI, thanks Pema Geyleg
+  * debian/rules:
+    - enable dz help
+    - update OOO_BUILD_BRANCH
+  * debian/control.in:
+    - update -dev-docs replaces...
+  * merge from openofficeorg--experimental--2.1:
+    - debian/control.in:
+      + make -l10n-{in,za} Arch: all...
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 16 Dec 2006 01:29:02 +0100
+
+openoffice.org (2.0.4.dfsg.2-1) unstable; urgency=high
+
+  * again new .orig.tar.gz :/:
+    - remove the rest of the ppds, except the two generic printers
+      ("All Rights Reserved")
+  * ooo-build:
+    - update
+    - src/:
+      + add dz GSI from savannah (dzongha-gnome)
+    - bin/openoffice-xlate-lang: add dz
+  * debian/rules:
+    - enable -l10n-dz, add FONT_SUGGESTS (ttf-dzongkha)
+    - re-add free afms, thanks Frank Küster
+    - add Mhz, GHz and THz to the exclusion list for the AutoCorrect
+      (closes: #401651)
+    - fix SDK docs install wrt index.html (closes: #397375)
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 11 Dec 2006 11:08:01 +0100
+
+openoffice.org (2.0.4.dfsg.1-1) unstable; urgency=high
+
+  * new orig tar.gz:
+    - remove non-free afms (closes: #401325) and other non-free stuff (db 4.2
+      docs, non-free ppds)
+  * ooo-build:
+    - update (many important fixes, some translations)
+  * debian/rules:
+    - fix DH_COMPAT setting
+  * merge from openofficeorg--experimental--2.1:
+    - debian/control.in:
+      + bump dmake builddep to dmake (>= 1:4.6)
+    - debian/README.Debian-source: update
+
+ -- Rene Engelhard <rene@debian.org>  Sun,  3 Dec 2006 21:56:24 +0100
+
+openoffice.org (2.0.4-7ubuntu1) feisty; urgency=low
+
+  * Merge with Debian unstable.
+  * Updated with ooo-build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  1 Dec 2006 12:51:48 +0000
+
+openoffice.org (2.0.4-7) unstable; urgency=high
+
+  * The "Not everything which looks like sufficiently translated is" release
+
+  * ooo-build
+    - update
+    - major printing fix
+  * debian/rules:
+    - prefer Lohit Hindi in -help-hi-in's *.css files
+    - disable sk, mk, bg help (< 45%)
+    - enable hi-IN help (51%), make -help-in Depend on ttf-devanagari-fonts
+      since without Lohit Hindi we get broken headers/bold text
+  * debian/control.help.in:
+    - make -help-XY depend on -l10n-XY since -help-XY seems to have no
+      effect when -l10n-* isn't there and the UI is switched to
+      that language. By the way this closes: #258841
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  8 Nov 2006 00:26:14 +0100
+
+openoffice.org (2.0.4-6) unstable; urgency=medium
+
+  * ooo-build:
+    - update
+      + new sk,cs translations
+      + distro-configs/Debian*conf.in: reenable --with-system-odbc-headers to
+        actually build with the headers from system... (somewhen/-how got lost)
+  * ooo-build/src:
+    - add uk GSI from upstream IZ
+  * ooo-build/bin/openoffice-xlate-lang:
+    - add uk (ukrainian)
+  * debian/rules:
+    - enable uk langpack
+    - reenable build with system-boost again, works now
+  * debian/*.mime:
+    - use e.g. "soffice -writer" instead of "oowriter" since ooowriter returns
+      immediately with ooqstart and this breaks e.g. mutt. (closes: #396276)
+  * merge from openofficeorg--experimental--2.1 branch:
+    + add metapackages (l10n-in and -l10n-za for all Indic/South African
+      languages)
+    + add some missing VERs
+    + reenable -dbg; use -g1, though
+    + sort ISOS/LANGPACKISOS again
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  3 Nov 2006 22:40:49 +0100
+
+openoffice.org (2.0.4-5) unstable; urgency=medium
+
+  * Brown paper bag or: "Don't use an older .diff.gz/.dsc for final
+    building" release.
+  
+  * ooo-build:
+    - update
+    - buildfix-hsqldb-1-8-0-7.diff: fix build with hsqldb 1.8.0.6/7
+  * debian/rules:
+    - enable system hsqldb again..
+  * debian/control.in:
+    - also suggest hunspell-dictionary at openoffice.org
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 30 Oct 2006 04:40:39 +0100
+
+openoffice.org (2.0.4-4) unstable; urgency=medium
+
+  * debian/rules:
+    - build with internal hsqldb due to graitous hsqldb upload (1.8.-0.7) to
+      sid breaking API....
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 28 Oct 2006 18:32:01 +0200
+
+openoffice.org (2.0.4-3) unstable; urgency=medium
+
+  * ooo-build:
+    - update
+  * ooo-build/src:
+    - add new/fixed ca GSI (http://people.debian.org/~jordi/ca.sdf.bz2),
+      thanks Jordi Mallach
+    - add updated ku GSI from http://download.ferheng.org/ooo2/GSI_ku.sdf.bz2
+  * debian/rules:
+    - WITH_AGG=n; not used in OOo yet (although built-in), just in the source
+      because of "internal [Sun] reasons..."
+    - stop adding ($(BUILDER)) to OOO_VENDOR. It ends up only in the res files
+      and therfore only has an effect on the initial l10n (_all) upload
+      and appears on all archs (also if they've been built on the buildd) which
+      is not what was intended
+    - add LOCALES_DEPENDS for or-IN, was added to glibc together with as-IN;
+      update some LOCALES_DEPENDS for new locales packages
+    - enable or-IN, ss, ns, nr, ve, ts langpacks
+  * debian/control.*.in:
+    - suggest iceweasel and iceape-browser
+    - bump FONT_SUGGESTS Suggests to Recommends
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 25 Oct 2006 15:29:39 +0200
+
+openoffice.org (2.0.4-2ubuntu0.4) edgy; urgency=low
+
+  * Disable the Shrink patchset. Ubuntu #62432, #65226, #67093.
+  * Fix crash in draw/impress on amd64 (taken from FC). Ubuntu #64919.
+  * Reimport current desktop menu translations from Rosetta.
+  * Update ooo-build, relevant changes (omitting win32):
+    + common dir for language independent templates (Petr)
+    + new "Labels" template category (Petr)
+    + temporary disabled some more dangerous speedup fixes (Rene)
+    + lots VBA fixes (Noel)
+    + lots fixes from Fedora (Matthias)
+    + build with system icu-3.4 and 3.6 (Rene, Hanno)
+    + build with recent wizard crash fix (Rene)
+    + parallel build fix (Juerg)
+    + install SDK only for en-US (Rene)
+    + enable directx by default on Win32 (Tor)
+    + updated Debian, Novell bits (Rene, Petr)
+    + gcc build fix (Rene)
+  * Merge from Debian:
+    - fix regcomp installation. Ubuntu #66466.
+  * Updated catalan GSI file (Jordi Mallach).
+  * Updated kurdish GSI file (Erdal Ronahi).
+  * broffice.org: Divert the Ubuntu bitmap files.
+  * Import patches for i#69620, i#70361, i#70782 from FC.
+  * Extract the language data for Kannada (kn), Tsonga (ts), Swahili (sw).
+  
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 26 Oct 2006 16:15:23 +0200
+
+openoffice.org (2.0.4-2) unstable; urgency=high
+
+  * ooo-build:
+    - update
+    - fixed system-icu.diff now also working with 3.4 again
+    - SDK installation fixed to not fail with many languages
+    - openoffice-xlate-lang: eo added
+    - allow unpacking of help_images_<iso>.tar.gz and extras_<iso>.tar.gz
+    - disable "Shrink" patchset, (closes: #393857)
+    - src:
+      - remove de GSI, old and obsolete; thanks to Eric Hoch for finding this
+      - add eo GSI from http://people.ubuntu.com/~doko/edgy
+      - add help_images_sl.tar.gz and extras_sl.tar.gz from ftp.linux.cz
+        to fix/update sl's help images/extras
+  * debian/rules:
+    - enable -gcj
+    - add "locales (>= 2.3.6.ds1-1) | locales-all (>= 2.3.6.ds1-1)" Depends
+      for -l10n-as-in
+    - enable as-IN and eo langpacks
+    - revert to building with libstlport4.6 (closes: #392698, reopens: #364814)
+  * debian/control.in:
+    - make -common conflict against 2.0.4~rc3-1 -core which would still expect
+      the libcu*.so.26 symlinks here. See #393597.
+    - once again, change the Mozilla suggestions (this time also in the
+      package descriptions): remove all transitional packages except
+      thunderbird (still "normal" in testing), add icedove in front of
+      "thunderbird". Keep mozilla-browser since it's still present in unstable.
+    - Analogous with the xlibmesa-gl | libgl1 suggestion, just keep libgl1
+    - remove oooqs-kde Suggests since we conflict against it anyway now
+      (closes: #389616)
+  * debian/scripts/aot-compile: remove, obsolete
+  * debian/README.Debian: (minor) updates, mention statd-not-running problem.
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 18 Oct 2006 21:06:21 +0200
+
+openoffice.org (2.0.4-1) unstable; urgency=medium
+
+  * The "Happy Birthday OpenOffice.org!" release.
+
+  * OpenOffice.org 2.0.4 final.
+  * ooo-build:
+    - update; use ooo-build-2-0-4 branch
+    - system-icu.diff, cws-icuupgrade.diff: icu 3.6 support
+    - soffice-detect-mozilla-certificates.diff: prefer firefox, actually
+      support thunderbird. Also handle multiple profiles in e.g.
+      ~/mozilla/firefox and profiles with spaces (closes: #391392), thanks
+      Ben Wheeler
+    - apply CalcSolver patchset for amd64, too now that it builds again
+    - disable speed-chart.diff (closes: #391875)
+    - sd-slideshowimpl-check-for-viewframe.diff: backport revision 1.31.60.1
+      from cws impress107 to fix crash on the impress wizard (i#69530)
+      (closes: #389473)
+    - cws-cmcfixes28.diff: backport some important fixes (64bit,
+      CVE-2006-5870, ...) (closes: #405679)
+  * debian/rules:
+    - build with system icu again
+    - build also native versions of officebean.jar, sdbc_hsqldb.jar and
+      writer2latex.jar if building -gcj
+    - move scsolver also into -calc on amd64
+    - make get-ooo-build use ooo-build-2-0-4 branch
+    - update milestone detection for ~-versioning
+    - fix regcomp wrapper installation
+  * debian/control.in:
+    - put firefox at the beginning of the Mozilla suggests since firefox
+      should be prioritized, add thunderbird. Keep
+      mozilla-{firefox,thunderbird} after it and move mozilla-browser to
+      the end. (to be removed)
+    - stop conflicting against openoffice.org-gcj at -java-common
+    - Build-Conflict against libstlport5.0-dev (= 5.0.2-10) (see #392131)
+  * debian/README.Debian-source: add
+  * merge from
+    doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.4:
+    - patch-34: Add gij as an alternative dependency for a java runtime.
+    - patch-36:
+      Build again the openoffice.org-gcj package using the updated
+      java-gcj-compat-dev build infrastructure; don't build native
+      code for ridl.jar, avoiding a crash in the JVM. Adjust
+      dependencies and suggestions.
+  * merge from patches.ubuntu.com:
+    - use %OOO_ARCHS% at -gcjs Architecture: and add Enhances:
+    - some minor rules improvements
+    - make usage of ooo-build .desktop files possible
+      ( add it into a USE_OOO_BUILD_DESKTOPS conditional )
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 12 Oct 2006 21:26:11 +0200
+
+openoffice.org (2.0.4-0ubuntu3) edgy; urgency=low
+
+  * Merge from Debian:
+    - fix regcomp installation. Ubuntu #66466.
+  * Disable the Shrink patchset. Ubuntu #62432, #65226, #67093.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 22 Oct 2006 21:21:36 +0200
+
+openoffice.org (2.0.4-0ubuntu2) edgy; urgency=low
+
+  * Re-add ooo-build/po/ooo-build.pot with the current templates.
+  * Reimport current desktop menu translations from Rosetta.
+    Ubuntu #66283.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 15 Oct 2006 23:46:30 +0200
+
+openoffice.org (2.0.4-0ubuntu1) edgy; urgency=low
+
+  * The "Happy Birthday OpenOffice.org!" release, built on
+    Fri, 13 13:13:13 +0200 (it's the sixth birthday, we can
+    walk pretty well and start writing now ;).
+
+  * openoffice.orgVER-l10n-en-us: Add alternative dependency on
+    language-support-en.
+  * Update desktop menu translations from Rosetta translations.
+  * Update ooo-build to the ooo-build-2-0-4 branch.
+  * Do not run the SDK installer, when building from the -l10n
+    source.
+  * Enable support for eo (Esperanto); reenable support for
+    Assamese (as-IN), Marathi (mr-IN), Oriya (or-IN), Urdu (ur-IN),
+    ti-ER (Tigrigna Eritrea).
+	
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 13 Oct 2006 13:13:13 +0200
+
+openoffice.org (2.0.4~rc3-1) unstable; urgency=high
+
+  * OpenOffice.org 2.0.4 rc3
+    - handles missing Setup.xcu at unopkg (closes: #388215, 387224)
+  * ooo-build:
+    - update
+  * debian/control.in:
+    - fix typo in -gnomes description (closes: #389423)
+  * debian/rules:
+    - temporarily build with internal icu again. icu 3.6 doesn't seem
+      to be sufficiently compatible... (closes: #390106, #390128)
+      Most probably also closes: #390133, #390136.
+  * debian/rules, debian/shlibs.override.icu:
+    - add shlibs overrides for internal icu
+  * merge from
+    doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.4:
+    - patch-27: Build using db4.4. (closes: #341649)
+
+ -- Rene Engelhard <rene@debian.org>  Mon,  2 Oct 2006 21:44:01 +0200
+
+openoffice.org (2.0.4~rc3-0ubuntu4) edgy; urgency=low
+
+  * Update ooo-build.
+    - Enable the CalcSolver on amd64.
+  * openoffice.org-common: Add another style alternative (default) as
+    a dependency; place it first, so it gets installed, if neither -gtk
+    nor -kde is installed.
+  * Update desktop menu translations from Rosetta to update spanish
+    translations.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 10 Oct 2006 05:00:47 +0200
+
+openoffice.org (2.0.4~rc3-0ubuntu3) edgy; urgency=low
+
+  * Update ooo-build.
+    - Revert updates for icu-3.6, breaking icu-3.4.
+    - Fix b0rkage in mozilla certificate detection.
+  * Pull new 64bit patches from the FC archive (workspace.cmcfixes28,
+    workspace.calc39).
+  * Update desktop menu translations from Rosetta.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  9 Oct 2006 02:39:06 +0200
+
+openoffice.org (2.0.4~rc3-0ubuntu2) edgy; urgency=low
+
+  * OpenOffice.org 2.0.4 rc3
+  * Update ooo-build.
+    - Remove bashisms in ooo-build, explicitely use bash where needed.
+  * Split out the four icon style files into their own packages.
+    - Let the -gtk package depend on the industrial style.
+    - Let the -kde package depend on the crystal style.
+    - Let the -common package recommend all style packages.
+  * Merge with Debian.
+  * Pull new 64bit patches from the FC archive.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun,  1 Oct 2006 16:50:37 +0200
+
+openoffice.org (2.0.4~rc2-2ubuntu0) edgy; urgency=low
+
+  * Add gij as an alternative dependency for a java runtime.
+  * Merge with Debian.
+  * Build again the openoffice.org-gcj package using the updated
+    java-gcj-compat-dev build infrastructure; don't build native
+    code for ridl.jar, avoiding a crash in the JVM. Adjust
+    dependencies and suggestions.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 26 Sep 2006 11:56:57 +0200
+
+openoffice.org (2.0.4~rc2-2) unstable; urgency=high
+
+  * ooo-build:
+    - update
+    - debian-opt.diff: build with -O2 on i386 and sparc, too (closes: #198694)
+    - src/: add ka GSI from Ubuntu
+  * debian/rules:
+    - build-depend against libicu36-dev
+    - remove shlibs.local for libstlport5.0, fixed. Bump STLPORT_MINVER
+    - remove unneeded libupdchk680*so
+    - fix broffice.org resources changing
+    - add new broffice target instead of doing it in binary-arch since
+      it will not do what we want on the buildds. The files and diversions
+      we need are only created on a "normal" build. Make binary-indep depend
+      on broffice
+  * debian/control.*.in:
+    - make -help-* depend on -writer (closes: #388397)
+    - make -common conflict against openoffice.org-debian-menus from the
+      www.openoffice.org packages
+    - make broffice.org Arch: all
+  * merge from Ubuntu
+    - Don't build the ti-ER locale; we are limited in the number of
+      languages that we can build; ka (Georgian) was requested by users,
+      ti-ER not.
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 24 Sep 2006 11:11:30 +0200
+
+openoffice.org (2.0.4~rc2-1ubuntu6) edgy; urgency=low
+
+  * openoffice.org-common: Remove conflict with -l10n-en-us,
+    tighten replaces relations.
+  * Work around double-free problem in sal, fix crash in xmlhelp on amd64.
+  * Integrate sixtyfour08 workspace, fix crash in base on amd64.
+  * Generate ooo-build.pot file, so that desktop translations are
+    imported into Rosetta.
+  * Merge Debian build updates.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 22 Sep 2006 20:13:19 +0200
+
+openoffice.org (2.0.4~rc2-1ubuntu5) edgy; urgency=low
+
+  * On x86 and sparc, build using -O2 instead of -Os to work around
+    miscompilation in svtools/source/fsstor.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Sep 2006 14:07:47 +0200
+
+openoffice.org (2.0.4~rc2-1ubuntu4) edgy; urgency=low
+
+  * Symlink the broffice.org doc directory.
+  * Don't build the ti-ER locale; we are limited in the number of languages
+    that we can build; ka (Georgian) was requested by users, ti-ER not.
+  * openoffice.org-common, openoffice.org-l10n-*, openoffice.org-help-*:
+    Pre-Depend on dpkg (>= 1.10.24), bzip2 compressed.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Sep 2006 12:16:09 +0200
+
+openoffice.org (2.0.4~rc2-1ubuntu3) edgy; urgency=low
+
+  * Build using db4.4.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Sep 2006 13:01:10 +0000
+
+openoffice.org (2.0.4~rc2-1ubuntu2) edgy; urgency=low
+
+  * Fix the binary-arch only build.
+  * Set the patch set to UbuntuEdgy instead of UbuntuL10n for the -l10n build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Sep 2006 12:42:05 +0200
+
+openoffice.org (2.0.4~rc2-1ubuntu1) edgy; urgency=low
+
+  * Merge with Debian.
+  * update ooo-build.
+  * Drop the -experimental packages on amd64, build native packages
+    on amd64.
+  * Add an empty openoffice.org-l10n-en-us package to help upgrades
+    for a build on dapper.
+  * Compress the binary independent -common, -l10n, -help packages with bzip2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 19 Sep 2006 16:40:34 +0200
+
+openoffice.org (2.0.4~rc2-1) unstable; urgency=low
+
+  * OpenOffice.org 2.0.4 rc2
+  * ooo-build:
+    - update [RE]
+    - config_office-dbus-check.diff: proper configure check for dbus [RE]
+    - soffice-detect-mozilla-certificates.diff: detect mozilla certificates
+      (closes: #345703, #373224) [RE]
+    - src: GSI updates from ftp.linux.cz (af, da, sl)
+  * debian/rules, debian/control.in:
+    - add hardcoded depends for -officebean on libgcj7-awt (libjawt.so)
+      which isn't picked up by dpkg-shlibs [RE]
+  * debian/rules, debian/control.in, debian/*broffice.org*:
+    - add a broffice.org package; diverting necessary files from
+      openoffice.org-* away. [RE, CH]
+  * debian/rules:
+    - only match on o*.1 for manpage symlink changing - do not move
+      libxmlsec1*.so.1... [RE]
+    - remove dbus workaround again, specify --disable-dbus when disabling
+      dbus; enable it again for sid [RE]
+    - enable amd64 debs (closes: #376134). Actually already in accident in the
+      last upload but withdrawn after the buildd build.
+  * debian/control.in:
+    - add versioned conflicts against openoffice.org-common at
+      openoffice.org-dtd-officedocument1.0 (closes: #386763) [RE]
+    - add missing Replaces: against -l10n-en [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 16 Sep 2006 11:53:48 +0200
+
+openoffice.org (2.0.4~rc1-1ubuntu1) edgy; urgency=low
+
+  * Merge with Debian.
+  * update ooo-build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 10 Sep 2006 16:55:21 +0200
+
+openoffice.org (2.0.4~rc1-1) unstable; urgency=medium
+
+  * OpenOffice.org 2.0.4 rc1
+  * upload to unstable
+  * debian/rules:
+    - add shlibs.local entry for libstlport5.0 to force dependency on
+      libstlport5.0 >= 5.0.2-7 to go safe
+    - disable -dbg package
+  * debian/control.in:
+    - temporarily hack around and build-conflict against libdbus-glib1-dev
+      to force disabling of the dbus things (breaks with dbus update...). Will
+      be fixed properly...
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  8 Sep 2006 16:53:46 +0200
+
+openoffice.org (2.0.4~rc1-0ubuntu2) edgy; urgency=low
+
+  * debian/control.in:
+    - openoffice.org-gnome: Replaces openoffice.org-common.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  5 Sep 2006 18:12:43 +0200
+
+openoffice.org (2.0.4~rc1-0ubuntu1) edgy; urgency=low
+
+  * Update to 2.0.4 release candidate 1.
+  * Fix dependencies of amd64 specific -experimental packages.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  5 Sep 2006 18:12:43 +0200
+
+openoffice.org (2.0.4~ood680m2-1ubuntu2) edgy; urgency=low
+
+  * Merge with Debian.
+  * Update ooo-build.
+  * ubuntu-lpi.diff, ubuntu-dictionary.diff: Update for 2.0.4.
+  * debian/control.in:
+    - openoffice.org-gnome: replaces openoffice.org-common.
+  * debian/rules:
+    - Remove duplicate manpage in -core.
+    - Create $(SOURCE_TREE) symlink to ooo-build/build/current.
+    - Use about and splash bitmaps from the ubuntu/ directory.
+    - Update base version numbers.
+    - Build using the UbuntuEdgy patchset.
+  * Build the -dbg-experimental package on amd64.
+  * Build Georgian (ka) language pack.
+  * Build using -fno-stack-protector, don't use -mtune=pentiumpro.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  4 Sep 2006 11:10:20 +0200
+
+openoffice.org (2.0.4~ood680m2-2) experimental; urgency=low
+
+  * ooo-build:
+    - update
+    - lfs.diff: allow to build with -D_FILE_OFFSET_BITS=64 (closes: #245861)
+    - configure.in: do not try to copy unowinreg.dll on non-Java builds
+      (which don't have --with-mingwin specified). Really closes: #384727
+    - src/: GSI updates again (bg, et, ne, sk, sl, ve). Remove ar and fa.
+  * debian/rules:
+    - enable build against stlport5, namely libstlport5.0 (closes: #364814)
+    - binfilter builds with stlport5 now, remove disabling
+    - use system-boost again since build with stlport5 fails without it
+    - build against libneon26
+    - chmod 644 testtoolrc, thanks lintian again
+    - handle new ooo-build/current directory created by ooo-build instead of
+      ooo-build/$(TAG), create symlink for ooo-build/$(TAG), thanks Matthias
+      Klose
+    - bump debhelper and python-dev build-deps, thanks Matthias Klose again
+    - revert unneeded $(DIST) change above, wrong var and the cause was
+      configure.in, see above (doh!)
+    - add gstreamer0.10-ffmpeg to the gstreamer suggests
+    - add missing ifeq "$(ENABLE_JAVA)" "y"'s to -qa-* packaging
+    - remove creating soffice symlink; now done by ooo-build already
+    - add STLPORT_VER=500 to the SDKs settings.mk if we build with STLport5 to make
+      stuff using it use -lstlport instead of -lstlport_gcc
+    - move qstart.desktop into -gtk (as ooqstart is in -core, and libegg* in
+      -gtk..)
+    - reenable Java on amd64, seems to work on current amd64/sid now
+  * debian/openoffice.org-core.manpages: remove, bogus
+
+ -- Rene Engelhard <rene@debian.org>  Sun,  3 Sep 2006 22:57:05 +0200
+
+openoffice.org (2.0.4~ood680m2-1) experimental; urgency=low
+
+  * new upstream milestone (OOD680_m2)
+  * ooo-build:
+    - update
+    - new GStreamer patchset for avmedia using GStreamer. Inserting Sounds
+      works now (although due Insert->Movie and Sound only) so this
+      closes: #332194
+    - src/: GSI updates from ftp.linux.cz (bg da et ga mk sk sl ss ve)
+  * debian/rules:
+    - enable gstreamer
+    - chmod 644 unowinreg.dll, thanks lintian
+    - fix README.qa installation
+    - fix NEWS.Debian non-installation in libmythes-dev. Do not install
+      the OpenOffice.org README and README.Debian into libmythes-dev
+    - specify --with-mingwin also on $(DIST) Debian64/DebianSarge
+      (closes: #384727)
+    - enable ku langpack
+    - bump python-central builddep to >= 0.5
+    - move testtoolrc into -qa-tools
+    - install main_transform.xsl again... (don't remove help/ in -common...)
+    - remove unneeded (and broken) sed which was forgotten to be removed
+  * debian/control.in, debian/rules:
+    - suggest gstreamer0.10-plugins-*
+    - suggest -dbg packages for libs we use at -dbg
+  * debian/openoffice.org-qa-tools.overrides.lintian:
+    - override binary-or-shlib-defines-rpath
+    - override executable-not-elf-or-script (bogus)
+  * debian/openoffice.org-calc.manpages:
+    - add, forgotten at last upload
+  * debian/pycompat: add, thanks lintian
+  * debian/source.lintian-overrides: override openoffice.org source:
+    missing-build-dependency python-central (>= 0.5). False positive...
+  * debian/openoffice.org.preinst.in:
+    - fix logic error - don't remove psprint.conf and sofficerc is "$2" is
+      empty (we didn't have "openoffice.org" before - so that both don't
+      vanish. If they vanished without you wanting that, use
+      dpkg -i --force-confmiss on openoffice.org-common to restore them
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 27 Aug 2006 13:29:15 +0200
+
+openoffice.org (2.0.4~ood680m1-1) experimental; urgency=low
+
+  * new upstream milestone (OOD680_m1)
+  * ooo-build:
+    - update
+      + bin/package-ooo: install gid_Module_Optional_Grfflt into -draw directly
+      + system-xmlsec.diff: use xmlsec1-nss for pkg-config, not xmlsec1
+      + disable printer-properties-disable.diff (closes: #373974, #353595)
+      + distro-configs/Common.conf.in: --with-use-shell=bash
+      + src/:
+        . update GSI files from ftp.linux.cz
+          (be-BY bg cs da et ga lv mk nb nn sk sl ss)
+        . remove ar (broken bz2)
+  * debian/rules:
+    - enable installation of ooqstart/libeggtray again since ooo-build is now
+      fixed wrt this
+    - enable -dbg package
+    - enable pyuno and binfilters on amd64
+    - stop creating -l10n-en-us, merge its files back into the main
+      packages, install en-US' resources consequently into -common
+    - remove empty /usr/lib/openoffice/help directories
+    - move gcj classmap creation into the right conditional
+    - fix clean target for ooo-build changes
+    - remove unowinreg.dll build/strip, now done upstream, remove manual
+      install; mv the one installed by OOo to the right place
+    - fix no-java build (don't try to move around writer2latex.jar)
+    - enable packaging of -qa-* (requested by OOo QA) and fix README.qa
+      installation
+    - remove .testtoolrc installing at all (seems to be a sneaked-in file);
+      rm -f it when it should appear
+    - add USE_GSTREAMER conditional (gstreamer support for avmedia is
+      progressing...); remove .wav files only if not building with GStreamer
+    - move mingw32 build-dep into ifeq "$(DIST)" "Debian" and specifiy
+      --with-mingwin=i586-mingw32msvc-g++
+    - install manpages using dh_installman, still not optimal but better than
+      the broken manpage installation before
+  * debian/control*.in:
+    - fix -dbgs description
+    - stop depending on -l10n-en-us at -core and -common since now merged back
+      into -common (closes: #335266). Also makes sarge->etch upgrades with
+      plain apt-get possible without apt trying to remove openoffice.org
+      (closes: #360489)
+    - add -l10n-hi and -help-en transitional packages (to -l10n-hi-in and
+      -help-en-us) for sarge->etch upgrade; add Replaces:
+      openoffice.org-help-en at -help-en-us
+    - hardcode << 2.0 in the hardcoded help conflicts against sarge at core;
+      that's what meant and using ${base-version} breaks with the ~ semantics
+    - remove -gtks conflicts and fix it's description
+    - remove build-dep on tcsh
+    - add openoffice.orgVER-l10n-${help-l10n-virtual-version} suggest
+    - add missing Replaces: for Embedding-*.xcu move upstream
+    - since ooqstart now is in -core, also conflict against ooqstart-gnome and
+      oooqs-kde there. Probably should be removed then after this enters
+      sid...
+    - add patch from Matthias Klose to improve some Replaces:/Conflicts and
+      Provides:
+  * debian/rules, debian/control*in:
+    - introduce new BASE_VERSION variable and use this one for base-version
+    - introduce HELP_L10N_VIRTUAL_VERSION and ${help-l10n-virtual-version}
+      since we cannot use base-version there with ~ ( ~ not allowed in
+      package names)
+    - remove >= 2.4 (and python-minimal at all) at python build-deps since
+      default in sid is now 2.4
+  * debian/control.in, debian/rules, debian/*.xmlcatalogs:
+    - split OfficeDocument 1.0 DTD out into own package (closes: #321876)
+  * merge 2.0.3-5 and -6
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 19 Aug 2006 16:23:39 +0200
+
+openoffice.org (2.0.3+2.0.4m179-1) experimental; urgency=low
+
+  * new upstream milestone m179 on the way to OOo 2.0.4
+  * since we upload to experimental, which has python 2.4 as default
+    we can as well build against 2.4 now (closes: #336284)
+  * ooo-build:
+    - use HEAD
+    - apply xmlhelp-use-libxslt-from-system.diff again; crashes supposedly
+      fixed
+    - src: GSI updates for SRC680 from ftp.linux.cz
+  * debian/control.in:
+    - bump python-dev builddep to (>= 2.4) as the experimental buildds
+      otherwise won't pick it up from exeperimental, version python and
+      python-minimal (newly added) ones, too since iirc the experimental
+      buildds still won't take it otherwise. To be removed again when this
+      goes to sid.
+    - remove build-conflicts on dmake 4.5 again since dmake 4.5 works here
+    - make -writer provide writer2latex
+    - add openoffice.orgVER-filter-mobiledev
+  * debian/rules:
+    - use i586-mingw32msvc-g++ now as unowinreg is now a .cxx with extern "C"'s
+    - we upload to experimental anyway, so let's enable amd64 packages for the
+      time this is in experimental. Will be disabled for sid again.
+    - (re-)add USE_LIBXSLT conditional, enable it
+    - move mobile devices filters (AportisDoc, Pocket{Word,Excel} into an own
+      package
+    - build with internal xmlsec
+    - build pt langpack
+    - rework override for internal libxmlsec libs, doesn't work with also
+      overriding the UNO libs, create shlibs.local from the different
+      overrides
+    - add conditional to install/not install the quickstarter stuff; disable
+      it for now because it crashes
+  * merge from
+    doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.3:
+     - move ooqstart to -core
+
+ -- Rene Engelhard <rene@debian.org>  Tue,  1 Aug 2006 11:53:34 +0200
+
+openoffice.org (2.0.3-6) unstable; urgency=medium
+
+  * debian/control.in:
+    - fix Replaces: at -draw (closes: #383388)
+    - remove obsolete Suggests on prelink
+    - add openoffice.orgVER-l10n-${base-version} suggest
+    - tighten depends at -impress to -draw - also = ${Source-Version}
+    - make -gtk conflict against oooqs-kde (closes: #383405)
+  * debian/openoffice.org-hunspell.overrides.lintian: obsolete, remove
+  * debian/rules:
+    - fix .wav removal to not leave an empty sounds/ dir behind
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 17 Aug 2006 17:31:01 +0200
+
+openoffice.org (2.0.3-5) unstable; urgency=low
+
+  * Update ooo-build.
+  * Now, fix the build failure on sparc, but don't introduce one on amd64.
+  * Fix error installing -qa-tools.
+  * build against python 2.4 (closes: #336284)
+  * ooo-build:
+    - update
+      + bin/package-ooo: install gid_Module_Optional_Grfflt into -draw directly
+      + system-xmlsec.diff: use xmlsec1-nss for pkg-config, not xmlsec1
+      + disable printer-properties-disable.diff (closes: #373974, #353595)
+  * debian/README.Debian:
+    - mention new helps, pl mentioned already in 2.0.3-4 but the rest
+      was forgotten...
+  * debian/control.*.in:
+    - some substitutions with %OOO_ARCHS% which were forgotten
+    - suggest libsqliteodbc
+    - add patch from Matthias Klose to tighten up dependencies and conflicts
+      to force every part to be the same version
+    - fix typo in conflicts for sarges openoffice.org-help-tr
+  * debian/rules:
+    - fix dependencies to not build libmythes*.a twice
+    - fix some hardcoded occurances of /usr/lib/openoffice, use $(OODIR)
+    - move fcfg_{draw,impress}graphics*.xcu out of -common into their
+      respective packages (overseen at the move of libflash* and
+      libsvgfilter*) and remove manual move of libflash*/libsvgfilter* to
+      draw, now done by ooo-build directly
+    - fix unowinreg.dll installation, it belongs into ../win
+    - fix system-lp-solve conditional to readd lost libufsparse build-dep
+    - fix parallel build conditional not *really* not use anything else than 1
+      on the buildds
+  * debian/README.Debian: update
+  * merge from
+    doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.3:
+    - patch-27:
+      + Re-add dependency of -writer on python-uno, if python-uno is built.
+      + Remove the sound files from the gallery. The media framework isn't
+        yet built in 2.0.3.
+      + Remove unused bitmap files.
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 12 Aug 2006 23:51:51 +0200
+
+openoffice.org (2.0.3-4ubuntu4) edgy; urgency=low
+
+  * openoffice.org-core replaces openoffice.org-gtk (<< 2.0.3-4).
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  4 Aug 2006 17:13:03 +0200
+
+openoffice.org (2.0.3-4ubuntu3) edgy; urgency=low
+
+  * Re-add dependency of -writer on python-uno, if python-uno is built.
+  * Remove the sound files from the gallery. The media framework isn't
+    yet built in 2.0.3.
+  * Remove unused bitmap files.
+  * Merge from Debian unstable:
+    * debian/control.*.in:
+      - some substitutions with %OOO_ARCHS% which were forgotten
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu,  3 Aug 2006 16:32:28 +0200
+
+openoffice.org (2.0.3-4ubuntu2) edgy; urgency=low
+
+  * Do not build the openoffice.org2-* packages anymore.
+  * Build-depend on fixed pkg-create-dbgsym (>= 0.5).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  1 Aug 2006 00:30:43 +0200
+
+openoffice.org (2.0.3-4ubuntu1) edgy; urgency=medium
+
+  * Add missing comma in -draw's conflict/replaces. Re-add's the missing
+    Replaces to the -core package. Ubuntu #54288.
+  * Merge with unstable 2.0.3-4.
+  * ooo-build
+    - update:
+      + ooqstart-honour-sofficerc.diff: fix to not segfault if
+        /etc/openoffice/sofficerc cannot be fopen()'ed. Ubuntu #54590.
+    - src:
+      + update da and sl GSIs from ftp.linux.cz
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 31 Jul 2006 14:16:29 +0200
+
+openoffice.org (2.0.3-3ubuntu5) edgy; urgency=low
+
+  * Fix nitpicking changes in build dependencies.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 29 Jul 2006 07:47:41 +0200
+
+openoffice.org (2.0.3-3ubuntu4) edgy; urgency=low
+
+  * Move ooqstart into -core.
+  * Use the fixed translate-toolkit 0.9.1 to build the po files; remove
+    the 0.8 copy from the package.
+  * Don't build the native amd64 packages for dapper.
+  * Packaging fixes for the -experimental packages on amd64.
+  * Don't include the en-US help (now built in the openoffice.org source as
+    well) into the application packages.
+  * Fix libmythes-dev build on ia64 and hppa.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 28 Jul 2006 11:03:40 +0200
+
+openoffice.org (2.0.3-4) unstable; urgency=low
+
+  * ooo-build
+    - update:
+      + ooqstart-honour-sofficerc.diff: fix to not segfault if
+        /etc/openoffice/sofficerc cannot be fopen()'ed (closes: #380420)
+    - src:
+      + update da and sl GSIs from ftp.linux.cz
+      + get fa and ku GSIs from Ubuntu
+  * debian/rules:
+    - move chmoding of files from scripts/setperms to configure target,
+      and remove call to scripts/setperms. Fixes error when running
+      debian/rules get-ooo-build without an existing ooo-build directory
+      in the source [CH]
+    - get-ooo-build - do not run configure during autogen.sh [CH]
+    - fix nostrip logic to actually invoke i586-mingw32msvc-strip on
+      unowinreg.dll [RE]
+    - fix fcfg_*_filters.xcu installation so that they properly go into
+      -java-common [RE]
+    - enable pl help, thanks Mateusz Skowronski [RE]
+    - readd --with-vendor=$(OOO_VENDOR) (closes: #379739) [RE]
+    - make SARGE_BACKPORT=y automatically set; use new DISTREL
+      (lsb_release -cs) [RE]
+    - define OOO_ARCHS variable; subsitute %OOO_ARCHS% in control. [RE]
+  * debian/control.in:
+    - rename NO_JAVA_ARCHS to OOO_JAVA_ARCHS and reverse semantics [RE]
+    - remove %AMD64%, add %OOO_ARCHS% for the Architecture field and also
+      for the builddeps only needed for OOo (most) and not for libmythes-dev [RE]
+  * scripts/setperms, scripts/xcftobmp, scripts/Makefile,
+    scripts/gen_lib_list, debian/openoffice.org-thesaurus-en-us.post*in:
+    - remove obsolete files (move fixperms stuff into rules) [CH, RE]
+  * merge from patches.ubuntu.com: [RE]
+    - some build fixes / enhancements / beautifications
+    - parallel build facility. Enhance/fix it as following:
+      when num-cpus= not specified detection using getconf. Default to 2 to
+      do stuff while helpcontent2 is building. Use 1 on the buildds (see
+      -devel).
+      num-cpu= is still usable to manually set/override it.
+    - enable bg, km, mk, ru, sk, sl help
+  * merge from
+    doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.3: [RE]
+    - patch-11 / patch-13: pycentral fixes (make pycentral stuff dependant on
+      new USE_PYCENTRAL conditional, instead of SARGE_BACKPORT).
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 30 Jul 2006 13:57:23 +0200
+
+openoffice.org (2.0.3-3ubuntu2) edgy; urgency=low
+
+  * Fix build failure on sparc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 25 Jul 2006 14:01:21 +0200
+
+openoffice.org (2.0.3-3ubuntu1) edgy; urgency=low
+
+  * Synchronize with Debian.
+  * Fix build failure on sparc.
+  * Use translate-toolkit 0.8 to export the language data.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 25 Jul 2006 11:30:35 +0200
+
+openoffice.org (2.0.3-3) unstable; urgency=low
+
+  * ooo-build:
+    - patches/src680/vcl-glyph-cjk-embolden.diff: properly conditionalize
+      so that our configure check has sense and this works on sarge
+    - patches/scsolver/scsolver-source-service-service-cxx.diff:
+      fix g++ 3.3 build
+  * debian/rules:
+    - fix ibm JDK build-dep
+    - reenable system-neon
+    - build unowinreg.dll using i586-mingw32msvc-gcc and install it
+      (closes: #377531); build-depend on mingw32
+    - run dh_makeshlibs using -n to not get useless ldconfig calls, thanks
+      lintian
+    - don't install .testtoolrc when not packaging the testtool; install it
+      with 644 (thanks lintian) into -qa-tools instead of -common
+    - move jar.sos from <oodir>/program/classes-native to
+      /usr/lib/gcj-$(GCJ_VERSION); still not working, though :/
+    - move libflash and libsvgfilter to draw, export filters only used
+      there (and impress where flash makes most sense if at all depends on
+      -draw anyway...)
+    - clean up README installation (closes: #351229)
+  * debian/control.in:
+    - add missing %CONTRIB% at -gtk...
+    - improve grammar in python-unos description, thanks Thue Janus Kristensen
+      (closes: #377186)
+    - add conflicts against -writer, -calc etc (<< ${base-version}) at -core
+      and -common (closes: #377852); bump depends at -writer, -calc etc to
+      depend on 2.0.3-2 with the border/{check,radio}boxes fix
+    - build-conflict against dmake 4.5 version in experimental
+    - make openoffice.org-gtk-gnome Architecture: i386 powerpc sparc %AMD64%
+      to not show this on archs which never had a openoffice.org-gtk-gnome
+    - move conflict against ooqstart-gnome from -gnome to -gtk
+    - mention Quickstarter in -gtks description
+  * debian/rules, debian/shell-lib.sh, debian/openoffice.org.*.in,
+    debian/ttf-opensymbol.*.in:
+    - clean up maintainer scripts and their generation. As a side effect this
+      closes: #377261
+    - update *rm_conffile* functions; add openoffice.org.{pre,post}.inst.in to
+      remove psprint.conf and sofficrc if unchanged; fixes needless conffile
+      prompts because those conffiles moved from openoffice.org to
+      opanoffice.org-common (closes: #346282), thanks Justin Przyby and
+      Bill Allombert
+  * debian/openoffice.org-core.shlibs.local: add, local shlibs setting nothing
+  * debian/openoffice.org-gtk.overrides.lintian: add, also override
+    binary-or-shlib-defines-rpath for -gtk
+  * debian/README.Debian: s/irc.freenode.net/irc.debian.org/
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 23 Jul 2006 03:03:42 +0200
+
+openoffice.org (2.0.3-2ubuntu4) edgy; urgency=low
+
+  * debian/rules: Remove the snapshot number from the base version.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 23 Jul 2006 13:50:10 +0200
+
+openoffice.org (2.0.3-2ubuntu3) edgy; urgency=low
+
+  * Do no try to build the mozilla-openoffice.org-experimental package
+    on amd64.
+  * On i386, don't call dh_shlibdeps with LD_ASSUME_KERNEL.
+  * On sparc and powerpc, temporarily build using internal stlport library.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Jul 2006 12:07:03 +0200
+
+openoffice.org (2.0.3-2ubuntu2) edgy; urgency=low
+
+  * sysui/desktop/util/makefile.mk: Don't check for bonobo.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 21 Jul 2006 18:21:48 +0200
+
+openoffice.org (2.0.3-2ubuntu1) edgy; urgency=low
+
+  * Upload to edgy.
+  * Build the native packages on amd64 (as -experimental).
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 21 Jul 2006 14:37:52 +0200
+
+openoffice.org (2.0.3-2dapper1) dapper-proposed; urgency=low
+
+  * Synchronize with Debian.
+  * Remove the mingw32 dependencies.
+	
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 21 Jul 2006 13:22:18 +0200
+
+openoffice.org (2.0.3-2) unstable; urgency=low
+
+  * ooo-build:
+    - src:
+      - readd lost mdbtools tarball, needed for sarge backport
+      - add relicensed rhino.patch from cws misclic (old, "sun confidential"
+        one was removed from the orig)
+    - patches:
+      - apply: fix sarge backport, add CalcSolver again
+    - update; use ooo-build-2-0-3 branch
+      - disable SpeedImageList patchset (closes: #376316, #376776)
+      - disable disable-rhino patch
+  * debian/control.in:
+    - remove dbus,neon,curl,some X11 builddeps (see below why)
+    - replace openoffice.org-dev (<< 2.0.3-2) at -dev-doc
+    - remove duplicate depends at -gtk
+  * debian/rules:
+    - also set [LD_LIBRARY_]PATH at install stage, thanks Matthias Klose
+    - add libdbus-glib-1-dev (>= 0.60) builddep for sid, not needed/built on
+      sarge (dbus too old..)
+    - remove GCC_VERSION=3.3 setting for sarge; 3.3 is default there anyway
+    - add curl, libxinerama, libxkbfile and render build-deps into a
+      conditional to avoid |'s in controls builddeps. Fixes apt-get build-dep
+      for openoffice.org...
+    - fix <oodir>/sdk/docs symlink in -dev-doc; remove the link from -dev to
+      avoid file conflicts.
+    - add conditional for system-neon and system-neon builddeps. Enable
+      system-neon on sarge, disable it temporaily for sid to get these
+      packages into testing without the neon/subversion/perl combo blocking
+      the security fixes.
+    - use g{cc,++} 4.1 on sparc again
+  * debian/README.Debian: update dictionary/thesauri info
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  5 Jul 2006 22:24:28 +0000
+
+openoffice.org (2.0.3-1ubuntu1) edgy; urgency=low
+
+  * 2.0.3 release.
+  * Disable the build of the or-IN sh-YU ur-IN -l10n and -help packages,
+    until we can raise the limit of supported languages.
+	
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  3 Jul 2006 12:34:35 +0200
+
+openoffice.org (2.0.3-1) unstable; urgency=high
+
+  * new upstream release
+    - security fix:
+      - fix memory corruption bug; it was possible to write values to
+        arbritrary memory when opening special files. (CVE-2006-3117)
+  * ooo-build/:
+    - update
+    - don't enable CalcSolver patchset for amd64 [RE]
+    - stop moving docdir in package-ooo [RE]
+  * debian/control*.in:
+    - change dependency of -gnome to gtk to (= ${Binary-Version}), needed for
+      when we change the version using -v to dh_gencontrol [RE]
+    - add alternative dependency for dbus on sarge [CH]
+    - add missing conflicts against old help packages [RE]
+    - make -help conflict with older OOos [RE]
+    - stop -common depending on -core to resolve circular dependency [RE]
+      (closes: #375877)
+  * debian/rules:
+    - reorganise debhelper/pyuno build dependencies [CH]
+    - Sarge backport differences: [CH]
+      - use internal agg, altlinuxhyph, bsh, hsqldb and xmlsec
+      - do not use XULRunner
+    - add missing -- at libmyspell-dev only builds' dh_gencontrol call [RE]
+    - build using system-boost on amd64 [RE]
+    - don't install scsolver on amd64 [RE]
+    - fix nojava build [RE]
+    - build against system-lpsolve (and system-colamd) [RE]
+    - don't specify --with-vendor=Debian anymore due to ooo-build changes [RE]
+    - fix file conflict between -dev/-dev-doc; remove broken ln -s, update
+      SDK docs installation and move the docs to
+      /usr/share/doc/openoffice.org-dev/docs with a symlink
+      /usr/share/doc/openoffice.org-dev-doc/docs to it [RE, CH]
+    - configure with --with-docdir=/usr/share/doc/openoffice.org
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 28 Jun 2006 22:30:34 +0200
+
+openoffice.org (2.0.2.99.2.0.3rc6-1) unstable; urgency=medium
+
+  * new upstream release candidate (2.0.3rc6).
+    - adds menu shortcut hint for "Tabelle" in German (closes: #364333)
+    - drop-down boxes in KDE for RTL languages fixed (closes: #286246)
+    - security fixes:
+      - fix macro handling security bug; it was possible to embed macros
+        in documents without OOo seeing them and executing them without
+        any user interaction. (CVE-2006-2198)
+      - disable Java applets feature because it's possible to write Java
+        applets breaking out of the sandbox (CVE-2006-2199)
+  * ooo-build:
+    - update
+      + now falls back to english help when no local one is there
+        (closes: #345152)
+      + src/: GSI updates for OOC680 [RE]
+  * debian/rules:
+    - enable ta-IN (Tamil), te-IN (Telugu), ti-ER (Tigrigna Eritrea),
+      fa (Farsi) and tg (Tajik) langpacks [RE]
+    - add conditional to build against XULRunner; enable it (closes: #364062),
+      bump libxmlsec builddeps' version [RE]
+    - allow locales-all in LOCALES_DEPENDS. Although it does provide
+      locales we have one case a versioned depends and as we all know
+      versioned provides don't work. Note that locales-all does *not*
+      work out of the box, read its README.Debian. [RE]
+    - add "soffice" symlink in /usr/bin to /usr/lib/openoffice/program/soffice
+      for the UNO bootstrap... (closes: #369924) [RE]
+    - native jar build/*.post* fixes; don't enable it though because again
+      broken... [RE]
+    - create libjava_uno -> libjava_uno.so link, again something like that
+      *sigh*. Should find out the root cause... [RE]
+    - reenable lo langpack [RE]
+    - cleanup conditionals, split definitions and tests, distro- and
+      arch-specific stuff [CH, RE]
+    - fix typo in makebinariestar, thanks Joo Martin [RE]
+    - more updates for new python policy on sid (closes: #373468): [RE]
+      + add Provides: ${python:Provides} and XB-Python-Version:
+        ${python:Versions} to python-uno
+      + build-depend on python-central (>= 0.4.10), python (>= 2.3.5-7)
+        and debhelper (>= 5.0.37.1)
+      + run dh_pycentral
+    - add build-dep on dpkg-dev (>= 1.13.19) for ${source:Version] support
+      when we build the native stuff [RE]
+    - don't build qadevOOo when we don't package the QA tools [RE]
+    - build with internal boost again to work around scscolver build failure [RE]
+    - add conditional to build against system liblpsolve55, not enabled yet
+      since we need to wait for a suitable lp_solve in Debian [RE]
+    - (temporarily) use g{cc,++} 4.0 on sparc [RE]
+    - add conditionalsfor using stlport5, not enabled yet; adapt rules for changed
+      flag by the STLport5 patches [RE]
+  * debian/control.*.in:
+    - remove hardcoded libnss3/libnspr4 depends and subsitute it by
+      ${mozilla-nss-depends} substvar replaced by hardcoded values as
+      before with mozilla and nothing with XULRunner (libs gotten via
+      .shlibs) [RE]
+    - remove more hardcoded -core deps (mozilla); add firefox in
+      Recommends; also add the OOo modules the Plugin supports file formats
+      for there (all..) [RE]
+    - stop recommending specific g++-x.y versions at -dev, suggest just g++
+      since we use the default g++ anyway since a long time... [RE]
+    - fix descriptions, thanks Fillipus Klutiero (closes: #372831) [RE]
+    - use ${source:Version} at -gcjs -java-common depends to make it
+      bin-NMU-safe, thanks Steve Langasek
+  * debian/README.Debian: mention openoffice.org-hyphenation-*
+  * merge Ubuntu changes: [RE]
+    - split control.*.in lines; merge them together in control
+    - merge doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.1:
+      + patch-84: split -gtk out of -gnome (partially merged, gconfbe* should
+        remain in -gnome)
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 21 Jun 2006 19:05:55 +0200
+
+openoffice.org (2.0.3~m5-0ubuntu1) dapper-updates; urgency=low
+
+  * 2.0.3 release candidate 5.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  2 Jun 2006 13:33:00 +0200
+
+openoffice.org (2.0.3~m3-0ubuntu1) dapper-updates; urgency=low
+
+  * 2.0.3 release candidate 3.
+  * Merge remaining Debian changes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 28 May 2006 04:48:36 +0200
+
+openoffice.org (2.0.2+2.0.3rc3-0.1pre) experimental; urgency=low
+
+  * new upstream release candidate.
+    - adds menu shortcut hint for "Tabelle" in German (closes: #364333)
+  * ooo-build:
+    - update
+      + now falls back to english help when no local one is there
+        (closes: #345152)
+  * debian/rules:
+    - enable ta-IN (Tamil), te-IN (Telugu), ti-ER (Tigrigna Eritrea),
+      fa (Farsi) and tg (Tajik) langpacks
+    - add conditional to build against XULRunner; don't enable it
+      yet, we need to wait for libxmlsec1-nss to be changed
+  * debian/control.in:
+    - remove hardcoded libnss3/libnspr4 depends and subsitute it by
+      ${mozilla-nss-depends} substvar replaced by hardcoded values as
+      before with mozilla and nothing with XULRunner (libs gotten via
+      .shlibs)
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 27 May 2006 16:45:42 +0200
+
+openoffice.org (2.0.2-4ubuntu1) dapper; urgency=low
+
+  * Merge the Debian bits; don't merge inappropriate things.
+    - Keep depedencies on openoffice.orgVER-core, the shlibs dependencies
+      are not thight enough.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 28 May 2006 01:48:36 +0200
+
+openoffice.org (2.0.2-3.4pre) UNRELEASED; urgency=low
+
+  * rebuild against libgcj7 (closes: #369984)
+  * ooo-build:
+    - update
+      + add Debian.dic
+      + enable "simple-install mechansm" for the SDK
+      + help-msg-add-package-info.diff: mention help packages names
+        in the "help not found" error.
+      + system-neon-0.26.diff: allow building against neon 0.26.x
+      + actually apply Lockdown patchset, doh
+      + ooqstart-honour-sofficerc.diff: make ooqstart handle sofficerc again
+        (Logo=0/1)
+      + really make kde-open-url use & (closes: #336528 again)
+      + handle gnome-screensaver during Impress presentation
+      + make splash progress bar black until the color is read from sofficrc
+        again since a white progress bar a white background
+        (OOo-standard-splash) is bad(tm) ;)
+      + completely remove the Internet - Mozilla Plug-In option for now;
+        we don't ship the plugin because it's buggy and we shouldn't show the
+        option then (closes: #364067)
+  * debian/rules:
+    - update cli-common build-depends
+    - run dh_makeshlibs -V to add .shlibs. You still need to set a
+      LD_LIBRARY_PATH to /usr/lib/openoffice/program to catch the libs, but...
+    - adapt to new SDK installation, move SDK docs to
+      /usr/share/doc/openoffice.org-dev-doc with symlink from "old" location
+    - disable Java for native amd64 for now - until regcomp doesn't segfault
+      at registering Java components anymore
+    - remove libgamin-dev workaround; not needed anymore
+    - make -l10n-fi suggest openoffice.org-spellcheck-fi instead of only
+      myspell-dictionary-fi to suggest both myspell-fi and Soikko.
+    - remove rest of $(DIST) Debian/Ubuntu. switching.
+      Getting unmaintained and old and changing too fast to keep up.
+    - merge changes from doko@ubuntu.com--2006-pkg-openoffice:
+      + install gsicheck into -dev
+      + add application/rtf to ooo-writer.desktop
+      + add X-KDE-Protocols=file,http,smb to the .desktop files
+      + some cleanups
+      + add ml-IN (ttf-malaylam-fonts) and or-IN (ttf-oriya-fonts) to
+        FONT_SUGGESTS
+      + build lv, ne, nr, ml-in langpacks
+    - add ftp,webdav to X-KDE-Protocols=
+    - also suggest ttf-devanagari-fonts for ne and mr-in
+    - remove manual installing of hid.lst
+    - extend NO_JAVA_ARCHS to all Debian supported Linux archs to make
+      libmxthes-dev buildable on them because many of them have problems
+      installing the Java builddeps. Better solution, also excluding the
+      OOo-only build-deps pending.
+    - add te-IN (ttf-telugu-fonts), ta-IN (ttf-tamil-fonts) and
+      fa (ttf-farsiweb) FONT_SUGGESTS in preparation for 2.0.3
+    - enable Java for sparc mow that the needed java-gcj-compat-dev is
+      uploaded; bump builddep
+    - make hsqldb2 symlink really work (closes: #340468)
+    - remove unneeded space from desktop file Name='s when $(VER) isn't set
+    - install resume.ott and project-proposal.ott templates from ooo-build
+  * debian/control.in:
+    - remove depends on openoffice.org-core (>> ${base-version}) from the
+      arch-dep packages; now done via dpkg-shlibdeps
+    - Standards-Version: 3.7.2 - no changes needed
+    - make openoffice.org-gnome depend on gconf2, thanks Matthias Klose
+    - merge changes from doko@ubuntu.com--2006-pkg-openoffice:
+      + make -core depend on fontconfig
+    - add libdbus-glib-1-dev builddep for the gnome-screensaver patch
+    - build-depend on x11proto-render-dev | render-dev since render-dev now is
+      a dummy package (closes: #369101)
+    - add -Python-Version: current for new python policy
+    - stop suggesting ooqstart-gnome at -gnome since we conflict with it,
+      thanks Adam C Powell IV for noticing (closes: #370230); also don't talk
+      about "Base" in -gnomes description.
+  * debian/rules, debian/control*in:
+    - for sarge backports move the packages to contrib since we use
+      a non-free JDK as (build-)dependency.
+  * debian/README.Debian: update, mention Slovak myspell dictionary
+
+ -- Rene Engelhard <rene@debian.org>  Tue,  6 Jun 2006 12:25:18 +0200
+
+openoffice.org (2.0.2-3) unstable; urgency=low
+
+  * ooo-build:
+    - use ooo-build-2-0-2 branch
+      - sensible-browser.diff: run sensible-browser with & in
+        kde-open-url (closes: #336528)
+    - src/: add ar, br, lo and mk GSIs
+  * debian/rules:
+    - update get-ooo-build (and make it actually work, doh)
+    - stop trying to build the javadocs independently, doesn't really
+      work. Add fat warning when executing binary-all on an arch not
+      enabled for Java
+    - add FONT_SUGGESTS for ar and lo
+    - enable ar, br, lo and mk langpacks
+    - use rm -f at libnpsoplugin.so/nsplugin rm, fixes sparc build
+    - move gengal into -dev; gengal.bin is there
+    - rm l10n.fdupes in clean
+    - bump java-gcj-compat-dev builddep for sparc; we need gcj/gij 4.1...
+      Not enabled yet since we need java-gcj-compat-dev using 4.1 which
+      is only in experimental...
+    - disable -lt help (closes: #361442)
+    - add "OpenOffice.org Draw" also to GNOMEs/KDEs "Graphics" Menu
+    - readd "openoffice" symlink as openoffice(1) mentions it
+    - make it possible to build only libmythes-dev and therefore build it
+      for all architectures
+    - cleanup
+    - don't install NEWS.Debian into libmythes-dev
+    - use dh_installchangeslogs to install the ooo-build changelog
+    - run dh_installdocs with -A to make README.Debian.gz appear in all
+      packages. Together with the update this closes: #348780)
+  * debian/control.in:
+    - add missing [$(NO_JAVA_ARCHS)] pieces
+    - make -core conflict against openoffice.org-gnome (<< 2.0.2)
+      (closes: #358470)
+    - remove one more duplicate section (closes: #356901)
+    - make openoffice.org suggest openoffice.org-help-${base-version}
+      (closes: #362861)
+    - make libmythes-dev Architecture: any
+  * debian/source.lintian-overrides: override
+    "package-lacks-versioned-build-depends-on-debhelper", bogus error here.
+  * debian/README{,.Debian}: update
+  * merge doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.1:
+    + patch-73: remove empty help directories from -l10n-*
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 23 Apr 2006 21:10:08 +0200
+
+openoffice.org (2.0.2-2ubuntu12) dapper; urgency=low
+
+  [ Matthias Klose ]
+  * Remove documentation files in openoffice.org-dev, which are
+    also in openoffice.org-dev-doc. Ubuntu #46681.
+  * openoffice.org{,-base,-calc,-math,-draw,-impress,-writer,-kde,-gnome}:
+    Do not conflict with the current version of the transition packages.
+  * Use the desktop files from ooo-build/desktop, more complete regarding
+    current translations.
+
+  [ Adam Conrad ]
+  * Since we're using the other desktop files, do the OpenOffice.org
+    s/Spreadsheet/Presentation/ fix for Impress there as well.
+  * Fix up some breakage in debian/control, WRT to duplicate Conflicts
+    and Replaces stanzas that are being interpreted in fun ways.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 27 May 2006 21:28:27 +0200
+
+openoffice.org (2.0.2-2ubuntu11) dapper; urgency=low
+
+  * Update the Launchpad integration patch to s/breezy/dapper/ and
+    s/openoffice.org2/openoffice.org/ (closes: launchpad.net/46544)
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Fri, 26 May 2006 22:04:05 +1000
+
+openoffice.org (2.0.2-2ubuntu10) dapper; urgency=low
+
+  * Really, really, really fix the names in the .desktop files, correctly
+    renaming Impress to Presentation, so we don't have two Spreadsheets.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Thu, 25 May 2006 09:06:19 +1000
+
+openoffice.org (2.0.2-2ubuntu9) dapper; urgency=low
+
+  * Really fix the names in the .desktop files by writing a proper patch
+    and using the OOo patch system. 
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 24 May 2006 11:35:36 +0200
+
+openoffice.org (2.0.2-2ubuntu8) dapper; urgency=low
+
+  * Set desktop menu items to OpenOffice.org Database, OpenOffice.org
+    Spreadsheet, OpenOffice.org Drawing, OpenOffice.org Presentation,
+    OpenOffice.org Formula, OpenOffice.org Word Processor.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 18 May 2006 23:12:06 +0200
+
+openoffice.org (2.0.2-2ubuntu7) dapper; urgency=low
+
+  * Fix installation of stlport header files in the -dev package. 
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 11 May 2006 17:49:58 +0200
+
+openoffice.org (2.0.2-2ubuntu6) dapper; urgency=low
+
+  * Update to ooo-build 2.0.2.9.
+  * Fix FSF JVM detection on amd64.
+  * Build related fixes for breezy builds.
+  * openoffice.org-gtk: Depend on gconf2.
+  * Do not show menu entries for Draw and Math by default.
+  * Merge from Debian packages:
+    - *.desktop: Add ftp and webdav to supported KDE protocols.
+    - Suggest ttf-devanagari-fonts for ne.
+    - Make -l10n-fi suggest openoffice.org-spellcheck-fi instead of only
+      myspell-dictionary-fi to suggest both myspell-fi and Soikko.
+  * Replace the OOo module names in the desktop menu with functional
+    descriptions.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 11 May 2006 03:38:07 +0200
+
+openoffice.org (2.0.2-2ubuntu5) dapper; urgency=low
+
+  * Strip "translated" messages in the helpcontent2 files (which are not
+    translated) for the Rosetta import.
+  * openoffice.org-core: Depend on fontconfig.
+  * Support more languages: Persian/Farsi (fa), Latvian (lv), Ndebele (nr),
+    Nepalese (ne), Serbian (sh-YU).
+  * Update ooo-build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 26 Apr 2006 07:32:48 +0000
+
+openoffice.org (2.0.2-2ubuntu4) dapper; urgency=low
+
+  * Update ooo-build.
+  * Don't let pkgstriptranslations take over when building internal
+    deb packages during the upstream build process.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Apr 2006 11:13:57 +0200
+
+openoffice.org (2.0.2-2ubuntu3) dapper; urgency=low
+
+  * Disable the parallel build again.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 21 Apr 2006 20:33:02 +0200
+
+openoffice.org (2.0.2-2ubuntu2) dapper; urgency=low
+
+  * Fix export of language data.
+  * Replace the corrupted GSI_af.sdf file with a shortened one,
+    the upstream site is unreachable.
+  * Fix crash changing the default email application (Martin Kretzschmer)
+    Closes: Malone #33767.
+  * Add application/rtf to Writer's MimeTypes. Closes: Malone #37635.
+  * Do not build the -help-lt package, the help is not yet translated.
+  * Add X-KDE-Protocols= to .desktop files to stop KDE passing
+    obscure protocols to OpenOffice (Jonathan Riddell).
+  * Support more indic languages:
+    - language packages: Assamese (as-IN), Malayalam (ml-IN),
+      Marathi (mr-IN), Oriya (or-IN), Urdu (ur-IN).
+    - help packages: Urdu (ur-IN).
+    - Suggest ttf-marathi-fonts for Marathi.
+    - Suggest ttf-oriya-fonts for Oriya.
+  * Run sensible-browser in background for kde-open-url. Closes: Malone #24962.
+  * Split out openoffice.org-gtk from openoffice.org-gnome, requested for
+    installability on Xubuntu.
+  * debian/rules: Call dh_iconcache.
+  * Turn off autohinting for Thai. Closes: Malone #35305.
+
+  [ (Re)merge from Debian (unreleased) ]
+  * ooo-build:
+    - use ooo-build-2-0-2 branch
+      - sensible-browser.diff: run sensible-browser with & in
+        kde-open-url (closes: #336528)
+    - src/: add ar, br, lo and mk GSIs
+  * debian/rules:
+    - update get-ooo-build (and make it actually work, doh)
+    - stop trying to build the javadocs independently, doesn't really
+      work. Add fat warning when executing binary-all on an arch not
+      enabled for Java
+    - add FONT_SUGGESTS for ar and lo
+    - enable ar, br, lo and mk langpacks
+    - use rm -f at libnpsoplugin.so/nsplugin rm, fixes sparc build
+    - move gengal into -dev; gengal.bin is there
+    - rm l10n.fdupes in clean
+    - bump java-gcj-compat-dev builddep for sparc; we need gcj/gij 4.1...
+      Not enabled yet since we need java-gcj-compat-dev using 4.1 which
+      is only in experimental...
+    - disable -lt help (closes: #361442)
+    - add "OpenOffice.org Draw" also to GNOMEs/KDEs "Graphics" Menu
+    - readd "openoffice" symlink as openoffice(1) mentions it
+    - make it possible to build only libmythes-dev and therefore build it
+      for all architectures
+    - cleanup
+    - don't install NEWS.Debian into libmythes-dev
+    - use dh_installchangeslogs to install the ooo-build changelog
+    - run dh_installdocs with -A to make README.Debian.gz appear in all
+      packages. Together with the update this closes: #348780)
+  * debian/control.in:
+    - add missing [$(NO_JAVA_ARCHS)] pieces
+    - make -core conflict against openoffice.org-gnome (<< 2.0.2)
+      (closes: #358470)
+    - remove one more duplicate section (closes: #356901)
+    - make openoffice.org suggest openoffice.org-help-${base-version}
+      (closes: #362861)
+    - make libmythes-dev Architecture: any
+  * debian/source.lintian-overrides: override
+    "package-lacks-versioned-build-depends-on-debhelper", bogus error here.
+  * debian/README{,.Debian}: update
+  * merge doko@ubuntu.com--2006-pkg-openoffice/openofficeorg--unstable--2.0.1:
+    + patch-73: remove empty help directories from -l10n-*
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 20 Apr 2006 16:51:39 +0200
+
+openoffice.org (2.0.2-2ubuntu1) dapper; urgency=low
+
+  * Add Ubuntu presentation templates.
+  * ooo-build: Update.
+    - Fix crash in atkbridge (Gnome). Ubuntu: #35747.
+  * ooo-wrapper: Work around KDE passing "system:" URL's.
+    Ubuntu #32159.
+  * Allow using the english help, when the help is not translated and
+    the user did explicitely that language in the preferences.
+    Update from the Fedora CVS. Ubuntu #35356.
+  * Update GSI files. Build -l10n packages for Arabic (ar), Lao (lo),
+    Macedonian (mk).
+  * Install gsicheck into the -dev package.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 29 Mar 2006 16:24:31 +0000
+
+openoffice.org (2.0.2-2) unstable; urgency=low
+
+  * debian/rules:
+    - actually define CCODE in the control.help.in rule
+    - revert %U -> %F change, breaks opening of remote files
+    - remove /usr/lib/openoffice/share/fonts/truetype/opens___.ttf from
+      -common, we have the right version from ooo-build installed into
+      ttf-opensymbol
+    - create symlink /usr/lib/openoffice/program/libhsqldb2 ->
+      /usr/lib/openoffice/program/libhsqldb2.so, hopefully closes: #340468
+    - remove README_* from /usr/lib/openoffice/share/readmes and
+      /usr/lib/openoffice/readmes; install README and README.html into
+      /usr/share/doc/openoffice.org-common
+    - enable hu, da, en-GB, nl, lt help
+    - move scsolver.uno.so into -calc
+    - readd lost USE_SYSTEM_HUNSPELL variable; set it to y for sid to actually
+      build with system-hunspell
+    - remove USE_SABLOT/USE_LIBXSLT conditionals.
+    - create wrapper scripts setting LD_LIBRARY_PATH for the SDK binaries
+      again, thanks Miguel Telleira de Esteban for the report.
+  * debian/control.*in:
+    - make openoffice.org-help-* Suggests at -l10n-* unversioned
+      (closes: #343111)
+    - add missing Replaces against -common (<= 2.0.1-5) at -gnome
+  * ooo-build:
+    - src/: update bg, el, et, lt, ne, br, sk, sl GSIs from ftp.linux.cz
+            update hu from hu.openoffice.org
+    - CVS update:
+      - build with --with-alloc=system instead of internal malloc/calloc/free
+        implementation
+      - opens___.ttf fixed wrt 0x2212 minussign glyph (closes: #357125)
+      - enable CalcSolver patchset
+      - stop applying xmlhelp-use-system-libxslt.diff; works on i386 but ppc
+        crashes; and just not specifying --with-system-lixbslt doesn't work
+        either.
+  * debian/control.in, debian/control.gcj.in, debian/rules: disable -gcj
+    build, the wizards don't work with it installed. move -gcj into
+    control.gcj.in, conflict against openoffice.org-gcj to
+    openoffice.org-java-common to force it off the system for those who
+    already installed it.
+  * debian/openoffice.org-gcj-{pre,post}{inst,rm}.in: use gij instead of
+    gcj (closes: #356984)
+  * debian/openoffice.org-common.preinst.in: rm_conffile obsolete
+    /etc/bash_completion.d/ooo-wrapper.sh
+  * merge doko@ubuntu.com--2006-pkg-openoffice:
+    - patch-48: link to the online versions of the non-free DevelopersGuide
+      stuff not in -dev-doc in the html files referencing it.
+    - patch-55 (parts; without dicdir-symlinking yet) and patch-57:
+      + Symlink some identical draw and impress files in the help packages.
+        (4% smaller).
+      + Symlink identical template files in the l10n packages (20% to 70%
+        smaller)
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 18 Mar 2006 14:01:25 +0100
+
+openoffice.org (2.0.2-1ubuntu6) dapper; urgency=low
+
+  * Fix merge error in the control file, introduced with the last Debian
+    merge.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 22 Mar 2006 18:12:30 +0000
+
+openoffice.org (2.0.2-1ubuntu5) dapper; urgency=low
+
+  * openoffice.org-gnome: Depend on at-spi. Ubuntu #35087.
+  * Really remove /usr/lib/openoffice/share/fonts/truetype/opens___.ttf.
+  * Outsmart Metacity's "focus:mouse" mode. Ubuntu #26475.
+  * For the GSI export, split the helpcontent2 module into 16 smaller
+    chunks (8 -help and 8 -guide chunks).
+  * Allow using the english help, when the help is not translated.
+    Ubuntu #35356.
+  * Build language and help packages for breton (br). Ubuntu #35368.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 21 Mar 2006 20:20:35 +0100
+
+openoffice.org (2.0.2-1ubuntu3) dapper; urgency=low
+
+  * The "I Shrunk the Packages Honey^Warty" build.
+
+  [Martin Kretzschmar]
+  * HTML validity improvement. #i63081, Ubuntu #20294.
+  * Re-add missing glyph in OpenSymbol font, Ubuntu #33786.
+
+  [Rene Engelhard]
+  * Enable the CalcSolver patchset.
+
+  [Rene Engelhard, Matthias Klose]
+  * Symlink some identical draw and impress files in the help packages.
+    (4% smaller).
+  * Symlink identical template files in the l10n packages (20% to 70% smaller).
+  * Remove /usr/lib/openoffice/share/fonts/truetype/opens___.ttf from
+    -common, the ooo-build version of this font is in ttf-opensymbol.
+
+  [Matthias Klose]
+  * Replace href's to the non-free DevelopersGuide with links to the
+    online docs. Ubuntu #24463.
+  * debian/control.lang.in: Remove redundant Recommends.
+  * Build the Hungarian message strings from the community translation.
+    Ubuntu #34611.
+  * Use the 32bit libgcj7, when run on amd64.
+  * openoffice.org-common: Remove duplicate README's.
+  * Add Ubuntu colors to the color palette. Ubuntu #34099.
+  * Add Ubuntu dictionary.
+  * Fix upgrade error from old openoffice.org-help-en package. Ubuntu #34865.
+  * speed-ooqstart-hide-asap.diff: Disable for now, breaks the Gnome quick
+    starter.
+  * Analyze the amount on translated messages in the help:
+    - Build help packages for danish (da), british (en-GB), lithuanian (lt),
+      dutch (nl).
+    - Do not yet build packages for languages, which have below 20% translated
+      help message strings: bulgarian (bg), croatian (hr), greek (el),
+      gaelic (ga), polish (pl), russian (ru), slovak (sk), turkish (tr),
+      vietnamese (vi).
+  * Remove the Bitstream Vera fonts from the font substitution tables (comment
+    from ooo-build: "The bitstream fonts never make sense _at all_ they are so
+    metrically odd".
+  * Prefer the DejaVu font family for the display of the Help and in the
+    substitution tables for UI_SANS and UI_FIXED.
+
+  * Merge Debian changes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 15 Mar 2006 19:00:13 +0100
+
+openoffice.org (2.0.2-1ubuntu2) dapper; urgency=low
+
+  [Martin Kretzschmar]
+  * Fix small industrial outline level icons. (#i63054, Ubuntu #28400).
+
+  [Rene Engelhard]
+  * Remove duplicate OpenSymbol font in openoffice.org-common.
+
+  [Matthias Klose]
+  * openoffice.org: Conflict with openoffice.org1-debian-files. Ubuntu #33499.
+  * Use %U to open files, KDE should respect the desktop specification.
+    Ubuntu #31119.
+  * Build-depend on fixed firefox-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 12 Mar 2006 01:32:16 +0100
+
+openoffice.org (2.0.2-1ubuntu1) dapper; urgency=low
+
+  * OpenOffice.org 2.0.2 release.
+  * Update ooo-build to version 2.0.2.
+    - Configure --with-alloc=system.
+  * Update language data from ftp.linux.cz: bg, el, et, lt, ne, br, sk, sl.
+  * Update language data from the Debian package: bs, he, sr-CS.
+  * Build packages for sparc, -java/-gcj enabled.
+  * Conflict with earlier versions of the help packages.
+  * Disable building the experimental packages on amd64.
+  * Fix broken manpage symlinks. Ubuntu #34004.
+  * Disable the printer-properties-disable patch. Requested by Sebastian
+    Bacher.
+  * Update splash screen.
+  * Add more transitional packages for -math -base -calc -writer -draw
+    and -impress.
+  * Merge Debian changes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed,  8 Mar 2006 23:08:37 +0100
+
+openoffice.org (2.0.2-1) unstable; urgency=low
+
+  * new upstream release
+    - should fix behaviour on NFS (closes: #335742)
+    - should fix NullPointerException with at the wizards (closes: #343761)
+    - parallel building now should work (closes: #152718)
+  * debian/control*in:
+    - add Suggests on pstoedit and imagemagick
+    - build-depend on libneon25-dev | libneon24-dev; build with neon 0.25
+    - don't build -hunsell anymore, now in -core; add appropriate
+      Conflicts:/Replaces:/Provides:
+    - make the langpacks suggest hunspell-dictionary-@LCODE@ additionally to
+      myspell-dictionary-@LCODE@
+    - fix duplicate Replaces: and Section: fields, thanks lintian
+    - add openoffice.org-dbg
+    - make openoffice.org-gnome unconditionally conflict against
+      ooqstart-gnome, -gnome now has a quickstarter
+    - update Architecture: for libuno-cil, s390's gone long ago
+    - add FONT_SUGGETS=", ttf-khmeros" for -l10n-km.
+    - remove mozilla-openoffice.org from control.in, move it to
+      control.mozilla.in.
+      remove openoffice.org-dbg from control.in, move it to
+      control.debug.in. Request from ftpmasters.
+  * ooo-build/src: add OOB680 GSIs from ftp.linux.cz and bs GSI from
+    http://vedran.root.ba/GSI_bs.sdf.bz2, thanks Vedran LjuboviÄ<87>
+  * debian/rules:
+    - remove system-myspell stuff from the CXXLIBS conditional;
+      hunspell replaced myspell and we really don't need to link with
+      libmyspell just for ulingu stuff.
+    - specify --with-system-{xalan,xerces,xml-apis,xt} in appropriate places;
+      in ooo-build the hardcoded stuff got replaced with dynamic ones. add
+      appropriate conditionals.
+    - enable help build
+    - add system-altlinuxhyph conditional, enable it for sid; bump necessary
+      build-dep to >= 0.1.1-8
+    - add conditional for libxslt usage (externally) instead of internal
+      libsablotron. enable it.
+    - enable bs (bosnian) langpack
+    - chmod 644 two SDK Documentation build.xml files, thanks lintian
+    - bump libdb4.2 builddep to the non-miscompiled ones - (>= -23.1)
+    - move libvbaobj* and vbaevents* into -calc, they are linked to
+      libsc* and calc-only anyway (thanks Matthias Klose and Noel Power)
+    - add conditionals for building a -dbg package. only possible on sid.
+      disable it per default, though due to its size (324 MB deb, 1 GB i-s)
+    - add mozilla-openoffice.org / -gcj to control if wanted.
+    - make debian/control target depend on debian/control.help.in, thanks
+      Matthias Klose
+    - Recommend -gcj at -java-common
+  * debian/openoffice.org-core.overrides.lintian: override
+    wrong-name-for-upstream-changelog
+    usr/share/doc/openoffice.org-core/changelog.ooo-build.gz
+  * merge changes from doko@ubuntu.com--2006-pkg-openoffice:
+    - patch-5: Only suggest the binfilter package, if it is built.
+    - patch-21/22: keep unmodified uuencoded files, keep time stamps
+    - SMALL_SYMBOLS logic fix
+    - patch-35:
+      - Unconditionally conflict with ooqstart-gnome. -gnome, now contained
+        in the openoffice.org-gnome package.
+      - Make ooo-wrapper aware of ooqstart
+      - Recompile java code to native code from byte code.
+      - don't hardcode !sparc, introduce NO_JAVA_ARCHS variable
+      - build with --enable-lockdown, --enable-atkbridge
+    - manpage installation fixes
+    - patch-37/38/39: possibility to build openoffice.org-qa-{tools,api-tests}
+
+ -- Rene Engelhard <rene@debian.org>  Mon,  6 Mar 2006 23:47:17 +0100
+
+openoffice.org (2.0.1oob680m5-0ubuntu3) dapper; urgency=low
+
+  * debian/control.in: Fix dependency in openoffice.org-qa-tools.
+  * Package installation fixes for the QA tools.
+  * Make openoffice.org2-evolution arch dependent, didn't exist
+    on amd64 before.
+  * Reconfigure to build with java on sparc.
+  * openoffice.org-gcj enhances openoffice.org-writer, openoffice.org-base.
+  * openoffice.org-writer, openoffice.org-base: Suggest openoffice.org-gcj.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat,  4 Mar 2006 19:24:20 +0100
+
+openoffice.org (2.0.1oob680m5-0ubuntu2) dapper; urgency=low
+
+  * Fix syntax error in debian/control.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 28 Feb 2006 19:10:32 +0000
+
+openoffice.org (2.0.1oob680m5-0ubuntu1) dapper; urgency=low
+
+  * Build using OOB680-m5 snapshot.
+  * Add transitional packages openoffice.org2, openoffice.org2-gnome,
+    openoffice.org2-kde, openoffice.org2-evolution.
+  * Build openoffice.org-qa-tools and openoffice.org-qa-ui-tests
+    packages (Martin Kretzschmer).
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 27 Feb 2006 18:39:46 +0000
+
+openoffice.org (2.0.1oob680m4-0ubuntu3.1) dapper; urgency=low
+
+  * Do not configure with --enable-symbols.
+  * Unconditionally conflict with ooqstart-gnome, openoffice.org-gnome
+    comes with its own quickstarter.
+  * Make ooo-wrapper aware of ooqstart.
+  * Recompile java code to native code from byte code.
+  * Use gcj-4.1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 26 Feb 2006 20:32:18 +0100
+
+openoffice.org (2.0.1oob680m4-0ubuntu2) dapper; urgency=low
+
+  * debian/rules (gsi-export): Fix typo.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 25 Feb 2006 09:54:41 +0100
+
+openoffice.org (2.0.1oob680m4-0ubuntu1) dapper; urgency=low
+
+  * Build using OOB680-m4 snapshot.
+  * Update ooo-build.
+  * Don't generate -l10n-en-us in -l10n control file.
+  * Parallelize export of GSI files.
+  * Reenable export of the GSI files.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 24 Feb 2006 14:18:43 +0000
+
+openoffice.org (2.0.1oob680m2-0ubuntu2) dapper; urgency=low
+
+  * debian/rules: Fix debugging leftover.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 23 Feb 2006 22:56:57 +0000
+
+openoffice.org (2.0.1oob680m2-0ubuntu1) dapper; urgency=low
+
+  * Build using OOB680-m2 snapshot.
+  * Update ooo-build.
+  * Enable more Gnome integration options:
+    - Direct atk-bridge for GNOME accessibility.
+    - Gnome file selector (although still has problems).
+    - Build using Gnome quickstarter.
+  * Don't steal the focus on startup.
+  * Add kurdish -l10n package (no help translations yet).
+  * Update GSI export.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 23 Feb 2006 18:50:00 +0100
+
+openoffice.org (2.0.1oob680m1-0ubuntu2) dapper; urgency=low
+
+  * Build using gij-4.1/gcj-4.1.
+  * Configure with -x-libraries=/usr/lib.
+  * Merge changes from Debian.
+  * ooo-build: checked in Ubuntu files and patches in the ooo-build repository.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 20 Feb 2006 00:47:02 +0000
+
+openoffice.org (2.0.1+2.0.2rc2-0.1pre) unstable; urgency=low
+
+  * OOB680_m1 aka 2.0.2rc2
+    - should fix behaviour on NFS (closes: #335742)
+    - should fix NullPointerException with at the wizards (closes: #343761)
+    - parallel building now should work (closes: #152718)
+  * debian/control*in:
+    - add Suggests on pstoedit and imagemagick
+    - build-depend on libneon25-dev | libneon24-dev; build with neon 0.25
+    - don't build -hunsell anymore, now in -core; add appropriate
+      Conflicts:/Replaces:/Provides:
+    - make the langpacks suggest hunspell-dictionary-@LCODE@ additionally to
+      myspell-dictionary-@LCODE@
+    - fix duplicate Replaces: and Section: fields, thanks lintian
+    - add openoffice.org-dbg
+    - make openoffice.org-gnome unconditionally conflict against
+      ooqstart-gnome, -gnome now has a quickstarter
+    - update Architecture: for libuno-cil, s390's gone long ago
+    - add FONT_SUGGETS=", ttf-khmeros" for -l10n-km.
+    - remove mozilla-openoffice.org from control.in, move it to
+      control.mozilla.in.
+      remove openoffice.org-dbg from control.in, move it to
+      control.debug.in. Request from ftpmasters.
+  * ooo-build/src: add OOB680 GSIs from ftp.linux.cz and bs GSI from
+    http://vedran.root.ba/GSI_bs.sdf.bz2, thanks Vedran LjuboviÄ
+  * debian/rules:
+    - remove system-myspell stuff from the CXXLIBS conditional;
+      hunspell replaced myspell and we really don't need to link with
+      libmyspell just for ulingu stuff.
+    - specify --with-system-{xalan,xerces,xml-apis,xt} in appropriate places;
+      in ooo-build the hardcoded stuff got replaced with dynamic ones. add
+      appropriate conditionals.
+    - enable help build
+    - add system-altlinuxhyph conditional, enable it for sid; bump necessary
+      build-dep to >= 0.1.1-8
+    - add conditional for libxslt usage (externally) instead of internal
+      libsablotron. enable it.
+    - enable bs (bosnian) langpack
+    - chmod 644 two SDK Documentation build.xml files, thanks lintian
+    - bump libdb4.2 builddep to the non-miscompiled ones - (>= -23.1)
+    - move libvbaobj* and vbaevents* into -calc, they are linked to
+      libsc* and calc-only anyway (thanks Matthias Klose and Noel Power)
+    - add conditionals for building a -dbg package. only possible on sid.
+      disable it per default, though due to its size (324 MB deb, 1 GB i-s)
+    - add mozilla-openoffice.org / -gcj to control if wanted.
+    - make debian/control target depend on debian/control.help.in, thanks
+      Matthias Klose
+    - Recommend -gcj at -java-common
+  * debian/openoffice.org-core.overrides.lintian: override
+    wrong-name-for-upstream-changelog
+    usr/share/doc/openoffice.org-core/changelog.ooo-build.gz
+  * merge changes from doko@ubuntu.com--2006-pkg-openoffice:
+    - patch-5: Only suggest the binfilter package, if it is built.
+    - patch-21/22: keep unmodified uuencoded files, keep time stamps
+    - SMALL_SYMBOLS logic fix
+    - patch-35:
+      - Unconditionally conflict with ooqstart-gnome. -gnome, now contained
+        in the openoffice.org-gnome package.
+      - Make ooo-wrapper aware of ooqstart
+      - Recompile java code to native code from byte code.
+      - don't hardcode !sparc, introduce NO_JAVA_ARCHS variable
+      - build with --enable-lockdown, --enable-atkbridge
+    - manpage installation fixes
+    - patch-37/38/39: possibility to build openoffice.org-qa-{tools,api-tests}
+
+ -- Rene Engelhard <rene@debian.org>  Mon,  6 Mar 2006 23:47:17 +0100
+
+openoffice.org (2.0.1oob680m1-0ubuntu1) dapper; urgency=low
+
+  * Build using OOB680-m1 snapshot.
+    - Update Ubuntu patches.
+  * Build-depend on libneon25-dev, libdb4.3-dev, libdb4.3-java-dev.
+  * Disable building --with-system-altlinuxhyph.
+  * Use sendmail script instead of sensible-ooomua.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 15 Feb 2006 02:11:43 +0100
+
+openoffice.org (2.0.1-2.3ubuntu1) dapper; urgency=low
+
+  * Synchronise with Debian.
+  * debian/rules (binary-common): Do not work on packages, which are
+    not in the control file.
+  * Remove link to Debian website from the package descriptions (requested
+    by the Debian maintainer).
+  * Only suggest the binfilter package, if it is built.
+  * debian/control*.in: Write each dependency/suggest on a separate
+    line, merge when generating control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 19 Jan 2006 01:00:00 +0100
+
+openoffice.org (2.0.1-5) unstable; urgency=high
+
+  * doh, fix broken build-depends logic wrt neon, remove hardcoded build-dep;
+    make it a conditional in debian/rules; enable it for sarge
+  * disable mdbtools support until mdbtools is fixed (see #34595)
+
+ -- Rene Engelhard <rene@debian.org>  Thu,  2 Mar 2006 21:29:39 +0100
+
+openoffice.org (2.0.1-4) unstable; urgency=low
+
+  * rebuild with internal neon; neon 0.25.x was uploaded as neon and 0.24.x
+    will be gone :/. External neon (0.25.x) will be re-enabled with OOo 2.0.2 
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 21 Feb 2006 23:36:35 +0100
+
+openoffice.org (2.0.1-3) unstable; urgency=low
+
+  * debian/rules:
+    - add SMALL_SYMBOLS switch to control debug symbol generation,
+      and default to 'y' to reduce package build time and space [CH]
+    - build he langpack [RE]
+    - stop installing/packaging the mozilla plugin. At least for now. Buggy.
+    - If DEB_BUILD_OPTIONS contains from=<project>, continue
+      build from this project [CH]
+    - Update get-ooo-build target [CH]
+    - Parallel building support: set DEB_BUILD_OPTIONS=num-cpus=<n>
+      for n projects to be built in parallel [CH]
+  * ooo-build/src:
+    - add GSI_he.sdf.gz [RE]
+  * ooo-build/patches/*: disable disable-visibility-feature.diff again
+    and don't apply cws-i18nshrink.diff which was the cause [RE]
+  * debian/control.in:
+    - fix openoffice.org-help-ko conflict (s/fff/ff), thanks Matthias
+      Klose [RE]
+    - remove now unneccessary python depends from -common [RE]
+    - suggest the improved Bitstream Vera fonts (ttf-dejavu) as an alternative
+      to ttf-bitstream-vera [RE]
+  * debian/sensible-ooomua: remove, obsolete with now imporoved senddoc,
+    thanks Matthias Klose (closes: #335026, #350796) [RE]
+  * ooo-build/patches/cairo-smooth-curves.diff: disabled, causes drawing
+    problems (closes: #349757) [AP]
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 16 Feb 2006 01:02:30 +0100
+
+openoffice.org (2.0.1-2) unstable; urgency=low
+
+  * ooo-build/patches/src680/apply: apply full Debian patchset for Debian64
+    (closes: #345611)
+  * debian/rules:
+    - rework/update/fix help installation
+    - fix desktop files to use %F instead of %U, extracted from Ubuntus
+     .diff.gz...
+    - move libeggtray* and libqstart_gtk* into the right package (-gnome
+      instead of -kde; they were in the wrong loop, oops)
+    - reenable hunspell and the binfilters
+    - Suggest locales (>= 2.3.5-12) | belocs-locales-data for km and sr-cs
+      instead of only belocs-locales-data since 2.3.5-12 apparently added
+      km_KH and sr-CS support.
+  * debian/control.*in:
+     - bump libdb4.2-java builddep to libdb4.2-java (>= 4.2.52-21) for sid
+     - remove obsolete libxp-java and libjaxp1.2-java builddeps (leave
+       libjaxp1.2-java for sarge, though, as we need to use Suns JDK...)
+     - fix control.help.in
+     - make all of openoffice.org's dependencies on the modules versioned, to
+       make sure they are all in sync
+     - add Replaces: for the libeggtray* and libqstart_gtk* move
+  * ooo-build/bin/openoffice-xlate-lang: ga is gaelic, not galician
+    (closes: #347787)
+  * ooo-build/patches/src680/disable-visibility-feature.diff: disable,
+    sometimes causes segfaults, thanks YABUKI Yukiharu. This most probably
+    closes: #347491.
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 15 Jan 2006 11:22:57 +0100
+
+openoffice.org (2.0.1-1) experimental; urgency=low
+
+  * OOo 2.0.1 final release.
+  * ooo-build/*:
+    - use ooo-build-2-0-1 branch
+    - patches/src680/cws-unxlngs04.diff: backport upstream sparc build fix
+      with g++-4.0 and remove g++-3.4 builddep on sparc (closes: #343011)
+    - remove jurt patch introduced in 2.0.0-5 again. Not clear whether that
+      really makes sense, and a similar patch for lib at the beginning makes
+      the build fail. Not to mention System.mapLibraryName() does somehow
+      now also give me libfoo.so also where #340468 was reproducible. To be
+      investigated.
+  * debian/rules:
+    - install the Java UNO sources for IDEs like eclipse into -dev.
+    - use ibm-j2sdk1.4 as JDK for the sarge backport on ppc
+  * debian/control*:
+    - fix typo in -gtk-gnomes description (closes: #343343)
+  * debian/openoffice.org-writer.mime:
+     - add text/rtf mimetype (closes: #344718)
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 20 Dec 2005 23:59:48 +0100
+
+openoffice.org2 (2.0.1-0ubuntu2) dapper; urgency=low
+
+  * Update to current ooo-build 2.0.1
+  * Apply xmlsearch-plain-xt.diff, build the help packages from
+    the source (Martin Kretzschmar).
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  2 Jan 2006 13:44:57 +0100
+
+openoffice.org2 (2.0.1-0ubuntu1) dapper; urgency=low
+
+  * Build as 2.0.1 final release.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 21 Dec 2005 18:42:24 +0000
+
+openoffice.org2 (2.0.0+2.0.1rc5-0ubuntu1) dapper; urgency=low
+
+  * Update to 2.0.1 release candidate 5 (ooa680-m1).
+  * Build against firefox-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 19 Dec 2005 15:46:29 +0000
+
+openoffice.org (2.0.0+2.0.1rc4-1) experimental; urgency=low
+
+  * update to SRC6808_m145 (2.0.1rc4)
+  * debian/control.in:
+    - Replace openoffice.org-dev (<< 2.0.0) from openoffice.org-dev-doc;
+      index.html moved. Analogous with -core and -base with libdbp680*so.
+  * debian/rules:
+    - update for 2.0.1
+      + rework SDK installation
+      + install libeggtray* libqstart_gtk* into -gnome
+      + package split fixes
+      + add system-agg conditional; enable it for sid
+    - new langpacks: en-za, th, sl, hi-in
+    - add ttf-devanagari-fonts to @FONT_SUGGESTS@ for -l10n-hi-in
+    - add Conflicts:/Replaces:/Provides: in -l10n-hi-in against -l10n-hi
+    - bump hunspell package version number to 1.2-x since we need to get
+      bigger and the 1.1 we have is functionally identical to 1.1. Temporary
+      disable -hunspell because we'd need a epoch when we upload a rc to
+      experimental and then to unstable. Avoid that, and reenable -hunspell
+      when we upload 2.0.1 final.
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  9 Dec 2005 15:36:06 +0100
+
+openoffice.org2 (2.0.0m143-0ubuntu3) dapper; urgency=low
+
+  * Test build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 10 Dec 2005 06:32:55 +0000
+
+openoffice.org2 (2.0.0m143-0ubuntu2) dapper; urgency=low
+
+  * Disable the parallel build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  5 Dec 2005 19:37:07 +0100
+
+openoffice.org2 (2.0.0m143-0ubuntu1) dapper; urgency=low
+
+  * Update to 2.0.1 release candidate (m143).
+  * Update GSI files.
+  * Import new ooo-build.
+  * Fix amd64 build, build experimental amd64 packages.
+  * debian/rules:
+    - the helpimgs are missing when we don't build with help so repack
+      the zips and add them during the build (taken from 2.0.0-2).
+    - Add logic to build experimental packages.
+  * debian/control.in:
+    - Add experimental packages for amd64.
+  * No further changes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  5 Dec 2005 10:37:23 +0100
+
+openoffice.org2 (2.0.0m142-0ubuntu1) dapper; urgency=low
+
+  * Update to 2.0.1 release candidate (m142).
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 30 Nov 2005 20:50:22 +0000
+
+openoffice.org (2.0.0-5) unstable; urgency=low
+
+  * debian/control.in:
+    - add Replaces: openoffice.org-debian-files on openoffice.org to fix
+      sarge/etch upgrades (it contains now README.Debian.gz) (closes: #342610)
+    - fix Architecture: of libmythes-dev (s/\$/%/)
+    - remove -gnomes Conflicts against openoffice.org-gtk-gnome and
+      add a transitional openoffice.org-gtk-gnome packages to let
+      openoffice.org-gtk-gnome "upgraded" instead of removed
+    - improve -filter-so52 description to also say "StarOffice" (instead
+      of only "Star Office" which apparently doesn't get recognized) and
+      "format"....
+    - bump oooqs-kde conflicts to also match -6+bX
+    - Replace/Provide openoffice.org-java from -core, -base and -dev
+      to ensure propoer upgrades when people have openoffice.org-java
+      installed
+  * debian/rules:
+    - check for the build link using -L and not -f
+    - substitute @OO_SDK_URE_HOME@ to empty value in setsdkenv*
+      (closes: #341271)
+    - Create also link in /usr/lib/firefox/plugins to support the
+      "firefox" package.
+  * ooo-build/patches/src680/jurt-ensure-dot-so-at-libname.diff: add;
+    quick'n'dirty patch to ensure libname ending with .so for dynamic library
+    loading from Java (closes: #340468)
+  * debian/*.menu, debian/README: s/Openoffice/OpenOffice/, thanks
+    Peter Eisentraut (closes: #342612)
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  9 Dec 2005 00:22:14 +0100
+
+openoffice.org (2.0.0-4) unstable; urgency=low
+
+  * Brown paper bag release.
+  * fix builddeps:
+    - it has to be [!sparc] instead of [! sparc]
+    - readd mozilla-dev and libnss-dev
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 30 Nov 2005 09:18:02 +0100
+
+openoffice.org (2.0.0-3) unstable; urgency=low
+
+  * ooo-build/patches/src680/pyuno-rpath-ooodir.diff: set RPATH to
+    /usr/lib/openoffice/program instead of /usr/lib/openoffice2/program
+    (closes: #316030)
+  * merge sarge backport fixes from 2.0.0-1bpo1 and -1bpo2, see below
+  * debian/control.in:
+    - move -java-common depends from -core to openoffice.org (closes: #337309)
+      and add Recommends: for it to those who miss it (-base already Depends:
+      on it)
+    - fix typo in -gnomes Description (closes: #338523)
+    - add conflicts against the completely obsolete openoffice.org-crashrep
+      to force it off the systems (closes: #303543)
+    - fix -gcjs depends, don't depend on openoffice.org2-common.
+    - don't build-depend on libxinerama-dev and libxkbfile-dev since they
+      didn't exist in sarges xfree86. Build-Depends on libxinerama-dev |
+      xlibs-static-dev (<= 4.3.0.dfsg.1-15)
+    - remove versioned gcj-4.0, gij-4.0, libgcj6-dev and gjdoc  builddeps, we
+      don't need it on sarge and java-gcj-compat gets them in in the right
+      versions anyway
+    - remove java-gcj-compat, libxt, libxalan2-java, libxerces2-java  and ant
+      builddeps, to be added from %BUILD_DEPS%
+    - remove versioned builddeps on libaltlinuxhyph-dev, libwpd8-dev et. al
+      which just were because of transitions and therfore only should apply to
+      sid. Will be readded through %BUILD_DEPS%
+  * debian/rules:
+    - add $PYTHOMHOME/site-packages to PYTHONPATH in pythonloader.unorc
+      (closes: #336655)
+    - don't build-depend on libgamin-dev on sarge backports,
+      thanks JÃ©rÃ´me Warnier
+    - enable lt langpack
+    - don't build empty used_libs...
+    - add missing sarge backport conditional to the system-icu conditional
+    - use system xt.jar also on sarge
+    - add java-gcj-compat-dev and libxt-dev build-deps here in the
+      ENABLE_JAVA/SARGE_BACKPORT conditional and build-depend on j2sdk1.4 on
+      sarge. Also add libxalan2-java and libxerces2-java builddeps here again
+      in case we are building for sid. Same for the versioned ant dependency
+      which is/was just there to force using the ant in main.
+    - readd libaltlinuhyph, libwpd8-dev et. al builddeps in the right
+      conditionals
+    - fix kdelibs4 builddep to be unversioned on sarge and add needed epoch to
+      it
+    - fix libstlport4.6 (build-)deps to be fullfillable on sarge
+    - bump libwpd-dev and kdelibs4-dev builddeps to ensure building against
+      the c2a-transitioned ones (closes: #341056)
+    - move dh_fixperms in front of dh_strip in the hope that this will fix
+      the stripping problems on XFS
+    - Suggest openclipart-openoffice.org instead of openclipart. Actually do
+      so ;) and change openoffice.org description accordingly.
+    - Add a build link in the package root to make it easier to find the
+      tree [CH]
+    - Fix install rules so they can be rerun without errors [CH]
+    - fixup .gz.gz manpage symlinks (closes: #338288)
+  * debian/sensible-ooomua: remove unneeded space from shebang, thanks Matej
+    Cepl (closes: #337970)
+  * debian/*.mime: fix nametemplate= and two more occurances of "oodraw2"
+    (closes: #315428, #335313). Also two more of the 1.1.x files'
+    descriptions.
+  * merge XML catalog stuff from 1.1.x
+  * debian/README.Debian: readd and update/remove obsolete stuff
+    (closes: #339321)
+  * Fix building without debuild: [CH]
+    - work around bug in tcsh: Unknown colorls variable `su'
+    - add /usr/sbin to search path (some icu utils are here)
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 28 Nov 2005 12:07:20 +0100
+
+openoffice.org (2.0.0-2) unstable; urgency=low
+
+  * ooo-build/patches/src680/use-free-xt-xp-jaxp-from-system.diff:
+    use xt-0.20050823.jar instead of xt.jar; on the buildds the files are
+    hardlinked into the solver and there apparently OOos installer has
+    problems to acces the symlink (/usr/share/java/xt.jar) over the hardlink...
+  * ooo-build/patches/src680/system-icu.diff: update to "safer patch" from IZ
+    (closes: #335262)
+  * debian/*.mime: fix, remove the 2 suffix which was stil there
+    and fix the descriptions of the 1.1.x formats (closes: #335313)
+  * fix typo in -gnome's Suggests
+  * ooo-build/src: translation updates
+  * debian/rules:
+    - the helpimgs are missing when we don't build with help so repack
+      the zips and add them during the build.
+    - start adding necessary conditionals for sarge backport; when building
+      a sarge backport:
+      - use gcc/g++ 3.3
+      - use internal xmlsec, hunspell, hsqldb, bsh, mdbtools, xt, xp, xalan,
+        xerces and portaudio
+      - disable cairo canvas
+      - (re)enable Java but use Blackdowns Java *ugh* to build (otherwise we'd
+        need a gcc-4.0 backport, too...)
+    - don't install libcommuni* and libsimplecm* if we don't package the
+      testtool and actually set PACKAGE_TESTTOOL=n
+  * debian/control.in:
+    - tighten libxt-java builddep to >= 0.20050823-1
+  * rename openoffice.org-jars-native to openoffice.org-gcj
+  * debian/*.in: fix some thinkos in the maintainer scripts wrt the shell-lib
+    and remove call to the (now non-existing) openoffice.org-debian-files
+    hooks. Also fix case statement so old conffiles actually are removed
+    (closes: #337147)
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  2 Nov 2005 22:31:46 +0100
+
+openoffice.org (2.0.0-1) unstable; urgency=low
+
+  * OOo 2.0 final release. (closes: #334914)
+    - fixes hebrew nekudots (closes: #262156)
+    - new languages:
+      vi, ca, sr-CS, el, st, ts, ga
+  * rename back to openoffice.org and upload to unstable.
+  * ooo-build/patches/src680/sal-when-to-run-crash-report.diff: don't try to
+    run crash_report if it's not built (closes: #270223)
+  * ooo-build/patches/src680/help-messagebox.diff: tell that no help was
+    found if it wasn't instead of some obscure message (closes: #330447)
+  * patches/src680/sparc-bridges-use-g++-3.4.diff: add hack to use g++-3.4 for
+    the sparc bridges
+  * ooo-build/src: translation updates
+  * build also ttf-opensymbol
+  * ooo-build/bin/package-ooo: don't install a wrapper script for jvmsetup
+    which doesn't exist anymore (closes: #324160)
+  * debian/control*in:
+    - let -core conflict against openoffice.org2-l10n-1.9.1{08,14,21,25}.
+      Needs better automatic solution...
+    - let the langpacks conflict against the numerical previous and next
+      -langpack versions
+    - only Recommend openoffice.org-core, analogous to 1.1.x to make
+      tasksel happy
+    - add ${cli:Depends} to libuno-cil
+    - Suggest c-shell at -dev to make lintian happy
+    - add @LOCALES_DEPENDS@
+    - add libmythes-dev
+    - build-depend on libicu34-dev
+    - readd unixodbc-dev builddeps for Debian
+    - add Conflicts:/Provides:/Replaces: against the old packages where
+      appropriate and needed
+    - build-depend on g++-3.4 on sparc
+    - really remove -base dependency on -gnome
+    - only set a binsuffix when $(VER) is not empty; otherwise build
+      with --with-binsuffix=no
+    - change build-dependency against libcurl from libcurl3-dev to
+      libcurl3-openssl-dev | libcurl3-dev to cope with the reorganization of
+      the curl packages
+  * debian/rules:
+    - run dh_desktop...
+    - suggest culmus for a prospective -he langpack
+    - use -s instead of -a in binary-arch
+    - fix installation of mono stuff (don't install the .dlls into -common...)
+      and set MONO_SHARED_DIR for dh_clideps
+    - chmod 755 setsdkenv_unix.*
+    - do classmap creation, taken from eclipse, thanks. Still no effect,
+      though...
+    - enable cairo canvas build, disabled per default though
+    - add extra sysui build step back because of changed upstream behaviour
+    - enable rw, it doesn't work with "locales" but with
+      "belocs-locales-data", so add a new LOCALES_DEPENDS variable letting
+      it depending on belocs-locales-data and "the rest" on
+      "locales | belocs-locales-data". Same for the other languages not
+      supported by plain locales.
+    - disable bs and lt, somehow doesn't work anymore, to be investigated
+    - add preliminary support for builds without Java; useful for backports
+      or for archs where Java still make problems
+    - add the possibility to build a non-PIC version of libmythes here and
+      to package libmythes-dev from here (if $(USE_EXTERNAL_MYTHES) != "y").
+      Use that, updates of mythes would need a rebuild of OOo anyway so this
+      is quite overkill.. Requested by Martin Pitt.
+    - remove ooonologo installation, now done via ooo-build patch
+    - add manpage symlink for ooffice, thanks Matthias Klose
+    - add conditional to optionally build without STLport and use the "normal"
+      STL.
+    - add system-icu and system-xmlsec conditionals; enable both
+    - move psprint.conf and sofficerc into /etc/openoffice; add a dummy
+      sofficrc just referencing /etc/openoffice/sofficerc in ../program to
+      make OOo work...
+    - Remove the "<app> makes it possible" from the German desktop
+      translations.
+    - install (and create) GNOME .keys, .mime and .applications
+    - install DicOOo
+    - install dictionary.lst symlink (closes: #320831)
+    - disable --with-system-sablot; breaks displaying of help, thanks Matthias
+      Klose
+    - export JAVA_HOME in debian/rules; otherwise the registration of
+      the Java compponent somehow fail
+    - several updates for 1.9.x -> 2.0; get desktop-integration version
+      from productversion.mk directlay instead of from the changelog
+    - use ooo-build-2-0 branch
+    - if we build without Java, run the Javadoc buildstep manually and
+      copy the files in install-indep; otherwise -dev-doc (_all) would
+      eventually miss the Javadocs depending on where it was build...
+  * debian/copyright: update FSF address, thanks lintian
+  * debian/*.overrides.lintian: update; override rpath warnings globally since
+    we have different files with different names on the different archs and
+    override csh-considered-harmful.
+  * debian/openoffice.org-jars-native.post*.in: update
+  * debian/shlibs.override.internal: override also libxmlsec1-nss
+  * debian/copyright: update for new LGPL-only licensing and refer to
+    /usr/share/common-licenses/LGPL, thanks lintian
+  * debian/*.mime: Register appliations for OpenDocument types, thanks
+    Matthias Klose
+  * debian/openoffice.org2-*: rename to openoffice.org-*, and update for 2.0
+  * debian/shell-lib.sh: add conffile handling (remove, move)
+  * debian/openoffice.org-common.preinst.in: remove
+    /etc/bash_completion.d/openoffice; obsoleted by
+    /etc/bash_completion.d/ooo-wrapper.sh and
+    /etc/openoffice/autoresponse.conf (obsolete because there's no "setup"
+    anymore)
+  * debian/ttf-opensymbol.postinst.in: don't run fc-cache if fontconfig
+    was not yet configured (closes: #303693)
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 20 Oct 2005 21:26:05 +0200
+
+openoffice.org2 (2.0.0-0ubuntu1) breezy-updates; urgency=low
+
+  * Update to 2.0 final release / ooo-build-2.0.0.
+  * Verbose error message, when the help packages are not installed.
+  * Fallback from en-* locales to en-gb ("international"), if the
+    country specific english locales doesn't exist.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 20 Oct 2005 11:05:30 +0000
+
+openoffice.org2 (1.9.129-0.1ubuntu4) breezy; urgency=low
+
+  * Do build with included sablot-0.52 sources, the system libsablot-1.0.2
+    doesn't work when resolving embedded references in the help files.
+  * debian/rules:
+    - Do not configure --with-system-sablot.
+    - Fix some typos in conditionals for building the help packages.
+    - Work around broken upstream installation destdir for non en-US
+      help files.
+  * debian/control: Regenerate.
+  * Fix build using gcc-4.0 on sparc (David Miller).
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  7 Oct 2005 00:12:55 +0200
+
+openoffice.org2 (1.9.129-0.1ubuntu3) breezy; urgency=low
+
+  * openoffice.org2-gnome: Remove dependeny on openoffice.org2-base.
+  * openoffice.org2-evolution: Remove dependeny on openoffice.org2-base.
+  * Fix typo making manpage symlinks.
+  * Reenable l10n packages for bs and lt.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun,  2 Oct 2005 10:05:08 +0200
+
+openoffice.org2 (1.9.129-0.1ubuntu2) breezy; urgency=low
+
+  * Fix copy & paste error in generating the pot files for export.
+  * Workaround a bug exporting the german message strings.
+  * Don't export unused message strings found in ooo-build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 21 Sep 2005 20:05:49 +0200
+
+openoffice.org2 (1.9.129-0.1ubuntu1) breezy; urgency=low
+
+  * Merge snapshot of 1.9.129-0.1pre.
+  * Don't use system ICU, requires 3.4.
+  * Still use the system mythes until the dust settles.
+  * Don't build languages requiring the belocs locales.
+  * Use LOCALES_DEPENDS to set the dependencies for the l10n packages for
+    Ubuntu builds.
+  * Make debian/splitgsi executable.
+  * Install "From Template" desktop menu, taken from OOo1.
+  * Remove the "<app> makes it possible" from the German desktop translations.
+  * Register appliations for OpenDocument types.
+  * Re-add a dependency on the empty openoffice.org-debian-files, avoiding
+    removal of the dictionary.lst symlink.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 20 Sep 2005 12:18:57 +0200
+
+openoffice.org2 (1.9.125-1ubuntu2) breezy; urgency=low
+
+  * Address package conflicts on upgrades from 1.9.113 (Ubuntu 14753).
+  * Tighten the dependencies of the language packs to the same milestone
+    version.
+  * ooo-build/patches/src680/sal-when-to-run-crash-report.diff: don't try to
+    run crash_report if it's not built.
+  * Install and divert /usr/share/myspell/dicts/dictionary.lst, enables spell
+    checking without having OOo1 installed.
+  * Export the language data before building the packages.
+  * Apply the no-sans-serif-default.diff patch, as done in 1.1.4.
+  * Build-depend on translate-toolkit to build the po files during the build.
+  * Fix symlinks to manual pages.
+  * Add additional manual pages for ooffice2, ooo-wrapper2, oofromtemplate2.
+  * Change the openoffice user directory to ~/.openoffice.org2, as done
+    by upstream in newer builds.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 12 Sep 2005 20:32:47 +0200
+
+openoffice.org2 (1.9.125-1ubuntu1) breezy; urgency=low
+
+  * Merge 1.9.125-1 from unstable (support for kaddressbook).
+  * Tighten package dependencies.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 29 Aug 2005 14:27:36 +0200
+
+openoffice.org2 (1.9.125-0.1ubuntu2) breezy; urgency=low
+
+  * Add launchpad integration.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 25 Aug 2005 22:57:46 +0200
+
+openoffice.org2 (1.9.125-0.1ubuntu1) breezy; urgency=low
+
+  * Synchronise with Debian.
+  * Disable hunspell, disable cairo.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 23 Aug 2005 14:13:50 +0200
+
+openoffice.org2 (1.9.125-1) experimental; urgency=low
+
+  * Update to m125 (aka 2.0beta2)
+    - does not stat any font twice anymore on cold startup (closes: #243659)
+  * ooo-build/src:
+    - translation updates from ftp.linux.cz again; get bg from
+      wget http://icobgr.info/ooo/GSI_bg.sdf.bz2 directly since ftp.linux.cz's
+      version is broken
+  * debian/rules:
+    - enable hunspell component. Fix to specify -Nopenoffice.org2-hunspell
+      when we don't enable it. Fix typo preventing libhunspell-dev actually
+      be added to %BUILD_DEPS%
+    - generate setsdk_unix.{,c}sh
+    - add mysql.jar, sapdbc-7.5.00.jar and postgresql.jar (from libmysql-java /
+      libsapdbc7.5.01-java / libpg-java) to the CLASSPATH
+    - remove stale SUGGESTS from debian/rules control. Exchange it with
+      FONT_SUGGESTS; for now adding ttf-{bengali,gujarati,punjabi}-fonts to
+      the Suggests of -bn / -pa-in / -gu-IN.
+    - add debian/rules to the dependencies of the control target. debian/rules
+      changes can make debian/control change, too (conditionals,
+      @FONT_SUGGESTS@)
+    - since ooo-build now has system-mdbtools implemented, add conditional for
+      this; enable mdbtools support and build with system mdbtools
+    - update cairo conditional
+    - add missing , to some BUILD_DEPS settings
+    - bump kdelibs4-dev builddep to >= 3.4.2 since there KDE has transitioned;
+      eclipcitely build-dep on libgamin-dev to work around install problems
+      with GNOME, thanks Adeodato Simo for the workaround and hint. Enable it.
+    - handle gzip compressed GSIs
+    - some conditional cleanup for Ubuntu, add BUILD_AMD64 conditional
+    - fix typo in opens___.ttf installing
+    - uncomment LD_ASSUME_KERNEL call, was uncommented for testing and then
+      not reenabled again....
+    - the mono support is now enabled per default in ooo-build; disable it
+      (still needs the .dll's from the OOo windows installset)
+    - build hicontrast iconset
+    - install libkab1.so into -kde
+  * debian/control*.in:
+    - add openoffice.org2-hunspell
+    - -dev Recommends: java-gcj-compat-dev
+    - Suggest also libmysql-java | libpg-java | libsapdbc7.5.01-java
+      (JDBC Drivers) at -base
+    - Suggest g++-4.0 | g++-3.4 at -dev instead of the other way round,
+      request of Mattias Klose
+    - let -base Depend on java-gcj-compat | j2re1.4 | java2-runtime insteadf
+      of just Recommending it since the internal db needs it. Recommend
+      java-gcj-compat | j2re1.4 | java2-runtime on -writer for the
+      Java-needing features. Substitute gij-4.0 dependency on -jars-native
+      with java-gcj-compat, too
+    - let -core Conflict against openoffice.orgVER-unbundled (provided by the
+      official OOo packages from Sun) to prevent a openoffice.org-writer
+      sneaking in which would fullfill our dependencies when these packages
+      are openoffice.org-* but wouldn't work at all together with "the rest"
+      of our packages. Provide openoffice.orgVER-bundled as the counterpart -
+      the packages from Sun conflict against it.
+    - add @FONT_SUGGESTS@
+    - s/myspell-dictionary-@CODE@/myspell-dictionary-@LCODE@/, oops
+    - add Architecture: all to ttf-opensymbol...
+    - remove unixodbc builddeps for Debian, unixodbc-dev uninstallable
+    - add %AMD64%, substituted by amd64 if we want to build amd64, too
+    - Standards-Version: 3.6.2 (no changes needed)
+    - mention KDE Addressbook integration at -kde and Suggest kaddressbook
+    - temporaryily let -common depend on -l10n-en-us until some package split
+      issues are sorted out...
+  * debian/*.overrides.lintian: add lintian overrides
+     - binary-or-shlib-defines-rpath, we use RPATH to OOo own dir; makes sense
+       here
+     - menu-icon-missing, bogus warning, the icons are in -common and not
+       in -writer, -calc, etc
+     - menu-item-contains-unknown-tag, kderemove="y" *is* a valid tag
+  * debian/javasettings*xml: remove, useless
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 27 Aug 2005 21:36:28 +0200
+
+openoffice.org2 (1.9.121-2ubuntu1) breezy; urgency=low
+
+  * Synchronize with Debian.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 22 Aug 2005 23:53:03 +0000
+
+openoffice.org2 (1.9.121-2) experimental; urgency=low
+
+  * rebuild in a clean environment on i386 to get a dependency on
+    libstlport4.6c2 (closes: #320728)
+  * ooo-build/src:
+    - translation updates: af bg cs cy da en-GB et hu lt nb nn sk xh zu
+  * ooo-build/patches/src680/pyuno-rpath-ooodir.diff: add
+    /usr/lib/openoffice2/program to pyunos rpath, thanks Matthias Klose
+    for the patch (closes: #316030)
+  * ooo-build/patches/src680/tab-key-for-autocomplete.diff: allow [tab] key
+    for autocompleting (closes: #206362) [JM]
+  * debian/control*.in:
+    - s/CODE/CCODE/, thanks Matthias Klose
+    - let openoffice.org2-dev Suggest libmythes-dev
+    - on amd64, build-depend on unixodbc-dev (>= 2.2.11)
+    - remove s390 from Architecture: apparently porting for 2.0 not ready...
+    - improve -filter-so52 description; don't say ".. Binary filters for..."
+      thanks James Troup
+    - remove libhsqldb-java (>= 1.8.0.0-2) builddep. now added via
+      %BUILD_DEPS%
+    - build-depend on libaltlinuxhyph-dev (>= 0.1.1-7), we use libhnj_pic.a
+      which was introduced there
+    - remove now unneeded rpm builddep
+    - provide openoffice.org2-l10n-x.y.z from the langpacks, not
+      openoffice.org-l10n-x.y.z, thanks Jacek Politowski (closes: #322598)
+  * debian/rules:
+    - move CONFIGURE_FLAGS setting for firefox after CONFIGURE_FLAGS
+      initialization, thanks Matthias Klose again
+    - add --with-system-mythes and appropriate builddep to the C++ libs
+      conditional; enable it for Debian.
+    - add system-portaudio conditional; enable it for Debian
+    - build only en-US on the buildds (user "buildd")
+    - fix/update cairo conditional, thanks Martin Kretzschmar. Don't
+      explicity build-depend on glitz. cairo does that already for us.
+    - improve GSI extraction; do not fail if there are no GSIs to merge,
+      thanks Martin Kretzschmar
+    - don't install th_gen_idx.pl anymore; we have it in libmythes-dev already
+    - use mozilla-dev on Ubuntu, too. firefox-dev in Ubuntu is broken.
+      Request by Matthias Klose.
+    - ooo-build now has --enable-cairo as default, disable it
+    - add conditional for the new mdbtools-using Access import stuff but
+      disable it for now
+    - readd lang= handling as known from 1.1.x to build only one language
+    - system-hsqldb is now conditional in ooo-build; add appropriate
+      conditional here, too to use it and set the right (build-)depends
+    - copy the icons from -debian-menus, not from the redhat one.
+      Don't do a extra sysui build step anymore since that's not needed
+      anymore.
+    - add pyuno conditionals, the pyuno build is disabled on amd64..
+    - add conditional for hunspell support, don't enable it yet
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 11 Aug 2005 20:43:23 +0200
+
+openoffice.org2 (1.9.121-1ubuntu12) breezy; urgency=low
+
+  * Export languaga data into debian/l10n.
+  * ttf-opensymbol: Add missing Architecture: all line.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 22 Aug 2005 10:26:00 +0000
+
+openoffice.org2 (1.9.121-1ubuntu11) breezy; urgency=low
+
+  * Enable building of the ttf-opensymbol package
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 19 Aug 2005 14:23:02 -0700
+
+openoffice.org2 (1.9.121-1ubuntu10) breezy; urgency=low
+
+  * Fix build enabling en-US as part of the openoffice.org2-l10n build,
+    and drop it later for the install.
+  * Call gsi-export target after the build of openoffice.org2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 11 Aug 2005 08:26:20 +0200
+
+openoffice.org2 (1.9.121-1ubuntu9) breezy; urgency=low
+
+  * Reenable the binfilter build in the openoffice.org2-l10n package.
+    binfilter has message strings as well.
+  * gcj-32bit-runtime-path.diff: Use the 32bit libgcj library,
+    when running the 32bit binaries on x86_64, decide it on runtime.
+
+ -- Matthias Klose <doko@ubunutu.com>  Wed, 10 Aug 2005 20:59:07 +0000
+
+openoffice.org2 (1.9.121-1ubuntu8) breezy; urgency=low
+
+  * gcj-32bit-runtime-path.diff: Use the 32bit libgcj library,
+    when running the 32bit binaries on x86_64.
+  * openoffice.org2-core: Conflict/replace openoffice.org2-debian-files.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 10 Aug 2005 16:31:22 +0000
+
+openoffice.org2 (1.9.121-1ubuntu7) breezy; urgency=low
+
+  * ooo-build/patches/src680/sysui-amd64.diff: Apply for amd64 only.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  9 Aug 2005 09:36:26 +0200
+
+openoffice.org2 (1.9.121-1ubuntu6) breezy; urgency=low
+
+  * Don't build binfilters in the l10n source package.
+  * If the package is named openoffice.org2-l10n, then only the language
+    packs are built from the -l10n source package.
+  * Remove the Debian help advertising clause in the package descriptions,
+    as requested by the Debian package maintainers.
+  * The packages for amd64 build, they are not built by default and are
+    not yet usable for many things. See debian/rules (pre-build).
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  8 Aug 2005 15:36:11 +0000
+
+openoffice.org2 (1.9.121-1ubuntu5) breezy; urgency=low
+
+  * Only build the en-US l10n package from the openoffice.org2 source.
+    The other l10n package are built from the new openoffice.org2-l10n
+    source to make the build of the language pack independent from the
+    build of the binary packages. If the variable OOO_L10N_DIR is set,
+    the directory is created, and the GSI_<lang>.sdf files are created
+    in $(OOO_L10N_DIR)/sdf. If a GSI file exists in ooo-build/src,
+    the file is copied, else the information is extracted from the
+    sources. The file GSI_en-US.sdf is used to generate the pot files.
+  * Build using external hsqldb sources.
+  * python-uno: Fix loading the pyuno module. Ubuntu 10003
+  * ooo-build/patches/src680/sysui-amd64.diff: Work around installation
+    failure to staging area.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun,  7 Aug 2005 21:58:06 +0200
+
+openoffice.org2 (1.9.121-1ubuntu4) breezy; urgency=low
+
+  * Configure using --disable-cairo.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  1 Aug 2005 05:29:53 +0200
+
+openoffice.org2 (1.9.121-1ubuntu3) breezy; urgency=low
+
+  * Build using internal hsqldb sources.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon,  1 Aug 2005 00:05:13 +0200
+
+openoffice.org2 (1.9.121-1ubuntu2) breezy; urgency=low
+
+  * Install sensible-ooomua as sensible-ooo2mua.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 31 Jul 2005 11:00:53 +0200
+
+openoffice.org2 (1.9.121-1ubuntu1) breezy; urgency=low
+
+  * Update to m121.
+  * Work around xmkmf not beeing available.
+  * debian/rules:
+    - Init CONFIGURE_FLAGS, always use +=.
+    - Unpack/clean xmkmf workaround.
+  * Build depend against mozilla-dev again, the firefox-dev package isn't
+    properly set up.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 30 Jul 2005 16:23:43 +0200
+
+openoffice.org2 (1.9.121-1) experimental; urgency=low
+
+  * Update to m121
+  * ooo-build/patches:
+    - backport caolans python mailmerge script.
+  * ooo-build/distro-configs/Debian{,64}.conf.in:
+    - --with-dynamic-xinerama
+  * ooo-build/src:
+    - add up-to-date GSIs from ftp.linux.cz to update the translations.
+      Also add new lt from there.
+  * debian/rules:
+    - build against system-cxxlibs and system-stlport; version builddeps
+      correctly
+    - remove bogus touch in install-arch target
+    - fix debian/rules wrt pyuno config; generate pythonloader.unorc.
+      Still needs LD_LIBRARY_PATH set to work, though...
+    - install ooo-build/doc/using-mysql-databases.txt and
+      ooo-build/doc/data-from-remote-mysql-server.txt into -base's
+      /usr/share/doc
+    - use sparc-linux-gnu-g++ instead of sparc-linux-g++, the latter isn't
+      anymore...
+    - build also xh (xhosa), merged from Ubuntu, and bs (bosnian), thanks
+      Safir Secerovic
+    - add missed - at the sparc-linux compiler prefix
+    - link to system hsqldb
+    - make build with system-boost conditional
+    - build with firefox-dev on Ubuntu
+    - fix up manpage symlinks (closes: #315633)
+    - use the Ximian desktop icons (closes: #319045)
+    - build also lt language pack
+    - add cs and et to HELPISOS, full translation of helpcontent2 there
+    - add conditional for the newly enabled cairo canvas, disable it for now
+      since Debians version are too old
+  * debian/control.in:
+    - oops, ] missing in Build-Conflicts...
+    - s/seperate/seperately/
+    - suggest also tdsodbc in -base, and beautify description a bit
+    - let openoffice.org2-writer depend on python-uno (>> ${base-version} for
+      the python email mailmerge.
+    - readd imagemagick build-depends; we use convert and therefore still
+      need it, oops, thanks Matthias Klose... (closes: #317541)
+    - (Build-)Depend on libhsqldb-java (>= 1.8.0.0-2)
+    - Build-Depend on libxinerama-dev and libxkbfile-dev also on Debian (X.org
+      now in...); remove Build-Dep on xlibs-static-pic
+    - -gnome doesn't need to depend on -base (closes: #318074)
+    - remove mozilla-dev from Build-Depends; will be added through
+      %BUILD_DEPS%
+    - minor description fixes
+    - allow "firefox" in the mozilla or relationships
+    - build-depend on gcj-4.0 (>= 4.0.1) and gij-4.0 (>= 4.0.1) and remove
+      explicit build-dep on binutils (>= 2.16) since gcj-4.0 depends on gcc-4.0
+      4.0.1-2 which has that depends alrready.
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 25 Jul 2005 16:52:36 +0200
+
+openoffice.org2 (1.9.118-0ubuntu2) breezy; urgency=low
+
+  * Reenable the KDE support.
+  * debian/control.in: Add build dependencies on imake and libnspr-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Jul 2005 10:32:54 +0000
+
+openoffice.org2 (1.9.118-0ubuntu1) breezy; urgency=low
+
+  * The "KDE window broken by a stone" upload.
+
+  * Update to m118.
+  * Disable building the KDE stuff, 
+  * debian/control.in: Build depend on libhsqldb-java (>= 1.0.0.8-2).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 19 Jul 2005 18:22:34 +0000
+
+openoffice.org2 (1.9.116-0.pre1ubuntu1) breezy; urgency=low
+
+  * Synchronize with Debian.
+  * Fix upgrade conflicts from earlier OO.o2 versions.
+  * Do not build with system stlport packages.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 11 Jul 2005 22:24:20 +0000
+
+openoffice.org2 (1.9.114-1ubuntu3) breezy; urgency=low
+
+  * Readd build dependency on imagemagick, accidentially dropped in the
+    Debian package.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat,  9 Jul 2005 14:29:59 +0000
+
+openoffice.org2 (1.9.114-1ubuntu2) breezy; urgency=low
+
+  * Readd build dependency on libxkbfile-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat,  9 Jul 2005 07:08:19 +0000
+
+openoffice.org2 (1.9.114-1ubuntu1) breezy; urgency=low
+
+  * Synchronize with Debian.
+  * debian/control.in:
+    - Fix typo in build conflicts.
+  * ooo-build/bin/openoffice-xlate-lang: Add xhosa.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  8 Jul 2005 14:56:31 +0000
+
+openoffice.org2 (1.9.114-1) experimental; urgency=low
+
+  * Update to m114
+    - contains build fixes for java-gcj-compat's split and libjawt
+      being renamed to libgcjawt. See below (closes: #316951)
+  * ooo-build/distro-configs/Debian64.conf.in: added (closes: #315643)
+  * New patches:
+    - pyuno-rpath.diff: fix pyunos rpath (closes: #316059) [RE]
+  * Patches removed:
+     - bean-no-libgcjawt.diff: remove, obsolete, Debian has now libgcjawt, too
+       and there's a configure check now [RE]
+  * debian/rules:
+    - fix classes (thinko..) and uno_packages (typo..) link creation,
+      thanks Fridrich Strba for noticing. Also link only the cache dir and
+      not the whole uno_packages [RE]
+    - don't use internal libgcc_s / libstdc++ anymore, thanks Joerg Jaspert
+      for noticing [RE]
+    - improve shlibs override mechanism and split the stdlibs one from the
+      "normal" one where we need to work around shortcomings in dpkg-shlibdeps
+      for the internal libxmlsec. Make the installation of the system-stdlibs
+      if wanted find the right files themselves instead of specifying it and
+      create the shlib overrides file after that, too [RE]
+    - fix manual installing of de-sun-ified splashscreen, now upstream
+      default for "community builds" but still not default with ooo-build
+      since we don't use the EPM packaging mechanism... [RE]
+    - exclude unowinreg.dll from installing in -dev.. [RE]
+    - move th_gen_idx.pl to /usr/share/openoffice2/bin and install it with
+      755, not 644 ;-) [RE]
+    - move gengal stuff to -dev [RE]
+    - move legacy_binfilters.rdb to -filter-so52 [RE]
+    - remove extra license files... [RE]
+    - (temporarily) disable the binfilters [RE]
+    - --with-images="industrial crystal" to build the crystal iconset
+      without the KDE VClplug (C++).. [RE]
+    - some improvements wrt g++/gcc, external C++ libs, external STLport and
+      build-depends handlig for those, thanks Matthias Klose and Martin
+      Kretzschmar [RE]
+    - add new conditional for enabling gcj-dbtool support when we want to
+      build the jars to jar.sos. Add infrastructure to package them into a new
+      package. On i386 only yet, but disabled atm since it somehow does not
+      work on runtime :/. [RE]
+    - use file:/// in the paths we subsitute in the config files,
+      thanks Joerg Barfurth [RE]
+    - new languages merged; build also af be-BY bn bg hr hu cs da nl en-GB
+      et fi gu-IN pa-IN km sk nb nn pl tr. Also build cy and zu; let the GSIs
+      from ftp.linux.cz be merged for that [RE]
+    - set DPKG=dpkg in sysui build [RE]
+    - base is now a optional component upstream; use the gid and remove the
+      install hacks for the files upstream installs but leave them for the
+      rest and extend them to put all db related stuff (obc, jdbc, sdbc,
+      hsqldb, other drivers, ..) into -base ..... -evolution now depends
+      on -base [RE]
+    - two en-US binfilter resources sneak into -calc/-math, move them into
+      -l10n-en-us [RE]
+    - move officebean.jar to -officebean [RE]
+    - expand uuencoding of source files to src/GSI*bz2 and remove GSI*.sdf in
+      clean [RE]
+  * debian/control*in:
+    - remove libart and imagemagick builddeps; not needed anymore [RE]
+    - fix Java suggestions in -core. java-gcj-compat depends on gij-4.0 so we
+      can simplify that too [RE]
+    - Recommend Java at -base instead of just suggesting and add
+      java-gcj-compat there, too [RE]
+    - add gjdoc (>= 0.7.5-1) to Build-Depends:
+    - cleanup Suggests and Recommends of the various packages:  [RE]
+      - make -base Suggest unixodbc, libmyodbc | odbc-postgresql | mdbtools,
+        too and Suggest libmyodbc | odbc-postgresql | mdbtools in -core
+        additionally to the already existing unixodbc.
+      - make -gnome Suggest openoffice.org2-evolution and evolution, too
+      - make -evolution Recommend evolution
+      - make -kde Suggest konqueror and kmail, too
+    - description improvements [RE]
+    - add Replaces: for the various moved files [RE]
+    - let -dev suggest g++-3,4 | g++-4.0 instead of g++-4.0 alone. [RE]
+    - Build-Depend on java-gcj-compat-dev (>= 1.0.28-8) instead of just
+      java-gcj-compat [RE]
+    - add openoffice.org2-jars-native [RE]
+    - remove gcc-3.4 and g++-3.4 in favour for for %BUILD_DEPS% [RE]
+    - add %BUILD_DEPS%, subsitutetd my *manual* debian/rules control [RE]
+    - make -evolution dependn -base, it uses a odb file [RE]
+    - add Build-Conflicts: linux-kernel-headers (= 2.6.12+0rc6-1) [powerpc]
+  * debian/openoffice.org2-jars-native.postinst.in: add, register the compiled
+    jars into an own gcj database [RE]
+  * debian/openoffice.org2-jars-native.postrm.in: add, remove the db on
+    removal [RE]
+  * debian/openoffice.org2-core.postrm.in: add, remove UNO cache on
+    removal [RE]
+  * debian/javasettings_Linux_x86.xml: add. [RE]
+  * debian/openintro_debian.xcf.uu, debian/ooologonotextintro.bmp.uu:
+    remove, not needed anymore
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  6 Jul 2005 09:32:21 +0200
+
+openoffice.org2 (1.9.108-1) experimental; urgency=low
+
+  * Merge Ubuntu m76 packaging into Debian experimental [CH]
+  * Update to upstream milestone 108 and upload to experimental
+    (closes: #311320): [RE]
+    - doesn't delete files anymore when /tmp is full (closes: #277619)
+    - embedding videos should be possible now (closes: #227265)
+    - fixes spreadsheet csv import (closes: #228117)
+    - mouse over hint for default folder now exists (closes: #242611)
+    - fixes context menu behaviour in calc (closes: #174621)
+    - can directly export .html to .doc (closes: #224221)
+    - now uses LC_PAPER and if available CUPS to determine papersize,
+      default for !en_US now is A4 (closes: #256845)
+    - images now in exchangeable .zips (closes: #236784)
+    - now uses libneon24 (closes: #251728)
+    - does not crash on Tools->Bibliography Database on powerpc anymore
+      (closes: #216848)
+    - does not crash on usage of DEC2BIN() on powerpc anymore (closes: #260438)
+    - locale setting visible inside OOo now (closes: #273822)
+    - doesn't crash on files with ":" in it anymore (closes: #195239)
+    - doesn't mangle underlining in PDF export anymore (closes: #241298)
+    - fixes formula rendering (closes: #257011)
+    - does not allow (and therefore not crash with) dots in table name
+      anymore (closes: #257398)
+    - Java should be detected correctly (closes: #146292)
+    - does not crash anymore when closing documents opened from ftp
+      (closes: #292796)
+    - document restore is attempted (closes: #249407)
+    - renaming a tab now renames the right-clicked tab instead of the current
+      one (closes: #257013)
+    - now complains about missing JRE on the Java features if Java's not found
+      or activated (closes: #284056)
+  * ooo-build/bin/package-ooo:
+   - install ucpgvfs1.so, gconfbe1.so and gnome-set-default-application
+     (gid_Module_Optional_Gnome) [RE]
+   - install Javafilters (gid_Module_Optional_Javafilter) [RE]
+     (closes: #266889, #222984)
+   - pyuno installation enhancements [RE]
+   - install oobase wrapper and some ooo-build utilities [RE]
+  * ooo-build/distro-configs/*.conf.in: [RE]
+    - update; use system libs/headers where possible (C vs. C++)
+    - --with-java=gij --with-jdk-home=/usr/lib/jvm/java-gcj
+      --with-ant-home=/usr/share/ant1.6
+    - --enable-pasf --with-system-sndfile
+    - --enable-openldap, build LDAP backend with OpenLDAP, not Mozilla
+    - --enable-binfilter
+    - reenable --with-system-altlinuxhyph
+    - use --enable-symbols
+    - --with-system-boost
+  * build with java, use gij/gcj.
+    (closes: #289542, #265134)
+  * debian/control*.in:
+    - update build dependencies: dmake -> dmake (>= 4.3-1)
+    - add Build-Depends: gij-4.0 (>= 4.0-0pre10), gcj-4.0 (>= 4.0-0pre10),
+      g++-3.4, gcc-3.4, libldap2-dev, libexpat1-dev, libbgnomevfs2-dev,
+      libsndfile1-dev, libant1.6-java, fastjar, libgcj6-dev (>= 4.0-0pre10),
+      libxt-java, libxp-java, libjaxp1.2-java, libboost-dev,
+      libxalan2-java (>= 2.6.0-1), libxerces2-java, libdb4.2-dev,
+      libdb4.2-java [RE]
+    - (temporarily) remove unneeded/-used (libstlport4.6, libdb4.2*,
+      libmyspell-dev, kdelibs4-dev, ...) or obsolete
+      (evolution-data-server-dev, ...) build-depends [RE]
+    - build-depend on libneon24-dev instead of libneon23-dev [RE]
+    - version libnss-dev builddep (>= 1.7.5-1) [RE]
+    - fix -cores description, it's arch-dependant and update
+      openoffice.orgs description and Suggests [RE]
+    - add mozilla-openoffice.org [RE]
+    - make openoffice.org-core depend on libnss3 (>= 1.7.5) and libnspr4,
+      they have no .shlibs (and no real SONAME anyway...)... [RE]
+    - Suggest openoffice.org2-thesaurus; conflict against
+      openoffice.org-thesaurus once we have a solution to let both co-exist
+      with the "normal" dictionaries-common system.
+      (They are incompatible and The OOo1 Thesauri make OOo2 crash..) [RE]
+    - add openoffice.org2-officebean [RE]
+    - remove openoffice.org-java stuff [RE]
+    - Suggest mozilla-browser | mozilla-firefox | mozilla-thunderbird since
+      we need the Mozilla profile for XML Security... [RE]
+    - add openoffice.org2-filter-so52 [RE]
+    - add openoffice.org-help-* stuff [RE]
+    - fix langpack Suggests [RE]
+    - add openoffice.org2-base [RE]
+    - (re)add openoffice.org2-dev[-doc] [RE]
+    - build-depend on and Recommend java-gcj-compat [RE]
+    - let -common depend on python-minimal | python for sensible-ooomua.
+      python-minimal should suffice once it will be in sid for etch [RE]
+    - let -common depend on libxt-java, libxalan2-java (in main in
+      experimental..) and libxerces2-java, we symlink it to the system
+      one.. [RE]
+    - -impress needs to Depend on -draw [RE]
+    - fix some suggestions; don't point them to the 1.1.x packages [RE]
+  * debian/rules:
+   - remove CONFIGURE_OPTIONS, now done by ooo-build and
+     distro-configs/Debian.conf[.in] [RE]
+   - compress manpages... [RE]
+   - move gnome-open-url.bin into -gnome [RE]
+   - create links to /usr/bin/g{cc,++,cj,ij}-x.y in debian/usr/bin and
+     change path to use them, ooo-build doesn't honor CC and CXX [RE]
+   - fix installation of Gnome stuff to get ucpgvfs1.so, gconfbe1.so,
+     fps_gnome.uno.so and gnome-set-default-application packaged [RE]
+   - move libnpsoplugin.so and nsplugin (Mozilla plugin) into own package [RE]
+   - work around the fact that dh_shlibdeps doesn't report anything on
+     TLS/NPTL-enabled systems by setting LD_ASSUME_KERNEL="2.4.27" before
+     executing it... [RE]
+   - use dh_python instead of setting the dependencies manually. And we miss
+     the postinst snippets without it anyway... [RE]
+   - use java-gcj-compat [RE]
+   - work around changed upstream behaviour in sysui and build sysui with
+     RPM=rpmbuild set ourselves to get the icons we want [RE]
+   - install unohelper.py into /usr/lib/python2.3/site-packages [RE]
+   - include pyuno/doc and pyuno/demo in python-pyuno package [RE]
+   - generate -help-* sections when help should be built (see below) [RE]
+   - install officebean stuff into -officebean to avoid
+     atk/pango/cairo/libgcj6-awt deps on -core, Suggest -officebean from
+     -core, though [RE]
+   - move the "binfilters" (SO 5.2) filters into their own package because
+     of the size and because there shouldn't be that much people needing
+     SO 5.2 filters anymore, and those who do can install this package :) [RE]
+   - some cleanup [RE]
+   - support installation of localized helps and langpacks (although that needs
+     to be enhanced to avoid duplicated files needlessly) [RE]
+   - build the "Sun languages" (de, es, fr, it, ja, ko, pt-BR, ru, sv,
+     zh-CN, zh-TW) in addition to en-US, package -l10n-*. Help not yet because
+     that somehow doesn't build on ppc and helpcontent2 needs xmlhelp which
+     needs XmlSearch which needs non-free jars included in the source.... [RE]
+   - move OOo Base stuff into -base [RE]
+   - add preliminary support for installing/packaging the Mono bindings,
+     don't do that per default yet, doesn't yet fully build with Mono alone.
+     Builddeps on mono-mcs, cli-common and libmono-dev also missing (since we
+     don't build it per default we don't need it in Build-Depends yet) [RE]
+   - install libs which belong into -writer, -draw, -impress etc. into their
+     right package instead of -core (OOo's split sucks) [RE]
+   - disable -kde for now, it's C++ :)
+   - change user directory to ~/.openoffice/1.9.X [RE]
+   - build openoffice.org2-dev[-doc] again [RE]
+   - move Java jars from $OODIR/classes to /usr/share/java/openoffice2;
+     create a symlink for compatibility to documentations and other stuff
+     expecting them in $OODIR/classes....; same with the UNO packages cache
+     and /var/spool/openoffice2/uno_packages/cache (addresses #218067) [RE]
+   - readd special compiler handling for sparc [RE]
+   - install sensible-ooomua [RE]
+  * debian/sensible-ooomua: add, merge from Ubuntu, thanks Matthias Klose [RE]
+  * debian/*: merge openoffice.org-debian-files' contents [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 12 Jun 2005 14:20:16 +0200
+
+openoffice.org2 (1.9.79.2-0ubuntu2) hoary; urgency=low
+
+  * Fix packaging error.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat,  2 Apr 2005 21:44:26 +0200
+
+openoffice.org2 (1.9.79.2-0ubuntu1) hoary; urgency=low
+
+  * Update to src680-m79.
+  * Update to ooo-build 1.9.76.2.
+  * Build using gij-4.0 and g++-3.4.
+  * Add ant-only-main-classes-hack.diff to Debian patches.
+  * Backport m79-cws-gcj2.diff, m79-gcc4.diff, readlicense-java-fix.diff,
+    m79-disable-qadevooo.diff, sufficient for building the help docs.
+  * debian/rules (install): call dh_clean --dirs-only
+  * Fix suggestions pointing to OOo1 packages. Ubuntu #5920.
+  * Packaging fix for overlapping files in -ommon and -draw. Ubuntu #6700.
+  * Fixed menu display bug with custom Gtk theme. Ubuntu #5915.
+  * Fixed draw/impress crashes on insert chart. Ubuntu #7269.
+  * Fix symlink to myspell directory. For spel cheking OOo2 still depends
+    on an OOo1 installation. Ubuntu #8333.
+  * Fix powerpc build.
+  * Hide OOo-base on the menu, doesn't work yet in this snapshot.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri,  1 Apr 2005 20:02:47 +0000
+
+openoffice.org2 (1.9.76-0ubuntu4) hoary; urgency=low
+
+  * Add rpm to build dependencies - needed to generate sysui .desktop entries
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Thu, 17 Feb 2005 09:46:08 +0000
+
+openoffice.org2 (1.9.76-0ubuntu3) hoary; urgency=low
+
+  * New patch buildfix-jvmfwk-stdio.diff to fix powerpc build failure
+  * buildfix-odk-quoting: Add more quoting (i386 build failure)
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Wed, 16 Feb 2005 18:50:04 +0000
+
+openoffice.org2 (1.9.76-0ubuntu2) hoary; urgency=low
+
+  * New patch buildfix-odk-quoting.diff to quote directory names
+    containing 'C#' (i386 build failure)
+  * wm-icons.diff: include stdio.h (powerpc build failure)
+  * Enable the 64bit patchset when building on amd64
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Tue, 15 Feb 2005 17:18:34 +0000
+
+openoffice.org2 (1.9.76-0ubuntu1) hoary; urgency=low
+
+  * New upstream milestone m76.  Tarball also contains ooo-build
+    extra icons.
+  * New package: python-uno containing python bindings.  Initial cut:
+    set LD_LIBRARY_PATH=/usr/lib/openoffice2/program before importing uno
+    in Python (closes: #220226)
+  * debian/rules:
+     - Add oobase menu entry to openoffice.org2-common
+     - Install oo2 icons and mimetypes
+  * debian/control.in:
+     - Add generated dependencies to ensure component packages and core
+       package versions are kept in sync
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Sat, 12 Feb 2005 01:20:50 +0000
+
+openoffice.org2 (1.9.66-0ubuntu8) hoary; urgency=low
+
+  * debian/control: Bah. The great dependency mechanism generated deps
+    for Debian now.  Reran debian/control in Ubuntu.
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Fri, 21 Jan 2005 14:20:59 +0000
+
+openoffice.org2 (1.9.66-0ubuntu7) hoary; urgency=low
+
+  * debian/scripts/setperms: Move file list from debian/rules
+  * debian/control.in:
+    - New syntax for distro-specific build dependencies: 
+      %Distroname=foo, bar% is added to control file if
+      Distroname matches output of lsb_release -si
+    - move ubuntu-only deps within %Ubuntu= .. %
+    - add xlibs-dev to Ubuntu build-deps
+
+ -- Chris Halls <halls@debian.org>  Fri, 21 Jan 2005 12:23:40 +0000
+
+openoffice.org2 (1.9.66-0ubuntu6) hoary; urgency=low
+
+  * debian/control.in add more Build-Deps, thanks rene:
+    bzip2, libjpeg62-dev, libxml2-dev
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Thu, 20 Jan 2005 00:54:59 +0000
+
+openoffice.org2 (1.9.66-0ubuntu5) hoary; urgency=low
+
+  * debian/control.in remove libqt3-dev build-dep
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Tue, 18 Jan 2005 15:22:07 +0000
+
+openoffice.org2 (1.9.66-0ubuntu4) hoary; urgency=low
+
+  * debian/control.in: add libqt3-mt-dev build-dep
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Tue, 18 Jan 2005 14:48:35 +0000
+
+openoffice.org2 (1.9.66-0ubuntu3) hoary; urgency=low
+
+  * debian/control.in: add build-dep on libarts1-dev
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Tue, 18 Jan 2005 13:19:30 +0000
+
+openoffice.org2 (1.9.66-0ubuntu2) hoary; urgency=low
+
+  * [debian/rules] Make ooo-build/configure and ooo-build/bin/[a-z]*
+    executable before trying to execute them
+  * [debian/control] Add build-dependency on libpng12-dev | libpng-dev,
+    libqt3-dev, kdelibs4-dev
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 17 Jan 2005 19:57:43 -0800
+
+openoffice.org2 (1.9.66-0ubuntu1) hoary; urgency=low
+
+  * New packaging for upcoming 2.0 release
+  * Move to using ooo-build based build/packaging process
+  * Reorganise package layout:
+    - openoffice.org-bin -> openoffice.org-core
+    - openoffice.org -> openoffice.org-common
+    - openoffice.org-l10n-en -> openoffice.org-l10n-en-us
+    - openoffice.org is a new metapackage that depends on all components and
+      is arch dependent to work around tasksel problems  (closes: #252135)
+    - new packages: openoffice.org-writer, -calc, -impress, -draw, -math
+      (closes: #279962)
+  * debian/rules:
+    - remove most of the file; obsoleted by ooo-build scripts
+    - automate conversion of sources->.uu and back
+    - remove get-ooo-icons target
+    - add download target that runs script in ooo-build
+  * debian/control.in:
+    - add new build dependencies: libnspr-dev, libnss-dev,
+      evolution-data-server-dev, kdelibs4-dev, libarchive-zip-perl,
+      mozilla-dev, libstartup-notification0-dev
+  * debian/README: remove some obsolete documentation
+  * add Build-Depends: libxinerama-dev (Ubuntu only)
+  * use evolution-data-server 1.2 (Ubuntu only)
+  * use libebook-1.2 (Ubuntu only)
+
+ -- Chris Halls <chris.halls@credativ.co.uk>  Mon, 17 Jan 2005 15:25:49 +0000
+
+openoffice.org (1.1.4-7) unstable; urgency=low
+
+  * remove obsolete builddeps
+  * build with internal unixxodbc headers; unixodbc-dev currently is
+    uninstallable because of Qts C++ transition
+  * fix s390 and sparc to not link using "gcc ... -lstdc++" which gets
+    libstdc++.so.6 where we need and want libstdc++.so.5. Use $(CC).
+  * link with -lhnj_pic and tighten libaltlinuxhyph-dev builddep
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 18 Aug 2005 14:22:01 +0200
+
+openoffice.org (1.1.4-6) unstable; urgency=low
+
+  * The "Always-control-what-patch-did" release.
+  * debian/MANIFEST.*: fix ulingu location; ulingu was patched in at
+    the wrong place
+  * ooo-build/patches/OOO_1_1_4/xmlhelp-fix-db-prototypes.diff: fix db4
+    prototype mismatch leading s390 to FTBFS
+  * debian/rules: fix to not generate a libstlport4.6-dev dependency on -dev
+    and copy the internal stlport headers.
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 11 Aug 2005 13:49:02 +0200
+
+openoffice.org (1.1.4-5) unstable; urgency=low
+
+  * Brown paper bag release.
+  * debian/control.in:
+    - remove libebook-dev build-depends...
+    - acually build-depend on g++-3.3, not on 3.4
+    - build-depend on dpkg-dev, not on dpkg
+  * ooo-build/patches/OOO_1_1/config-switches.diff: don't use db_cxx and
+    libdb_cxx. we don't use the C++ bindings anymore
+  * debian/rules:
+    - now that KDE disable is default, ignore failures on the MANIFEST check
+      if KDE is *en*abled...
+  * debian/MANIFEST.*: update
+  * debian/openoffice.org-bin.install: install libulingu (closes: #320749)
+
+ -- Rene Engelhard <rene@debian.org>  Mon,  1 Aug 2005 11:48:00 +0200
+
+openoffice.org (1.1.4-4) unstable; urgency=low
+
+  * ooo-build/patches/OOO_1_1_4/apply:
+    - apply Gcc34 patchset [RE]
+  * ooo-build/patches/OOO_1_1/hebrew-culmus.diff: add Miriam Mono CLM at the
+    beginning of the hebrew UI font possinilities to fix the UI with newer
+    culmus versions (closes: #269152, #306642)
+  * ooo-build/patches/vcl/vcl-unx-gtk-frame-m110.diff: fix dead-key brokeness
+    with -gtk-gnome [MM] (closes: #316256, #315421)
+  * debian/rules:
+    - use DEBB_HOST_ARCH_OS to cope with changed dpkg, build-depend on
+      dpkg (>= 1.13.9) (closes: #293015) and use sparc-linux-gnu-g*
+      instead of sparc-linux-g*
+    - build with gcc/g++ 3.3
+    - disable KDE package because KDE will be transitioned to the new C++
+      ABI
+    - --with-dynamic-xinerama
+    - build with the internal versions of the C++ libraries (closes: #317762)
+  * debian/control.in:
+    - add g++-3.3 to Build-Depends
+    - only build-depend on libdb4.2-dev, we don't use the C++ API anymore
+      in 1.1.4
+    - build-depend against libxinerama-dev and libxkbfile-dev instead of
+      xlibs-static-pic
+    - remove libstlport4.6-dev, libmyspell-dev, libwpd8-dev and kdelibs4-dev
+      from build-depends
+  * debian/po:
+    - add vi.po, thanks Clytie Siddall (closes: #311625)
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 30 Jul 2005 00:11:54 +0200
+
+openoffice.org (1.1.4-3) unstable; urgency=low
+
+  * fix langpack conflicts (closes: #306193)
+  * readd ca desktop files translation, thanks Jordi Mallach
+  * Upload to unstable
+
+ -- Rene Engelhard <rene@debian.org>  Tue,  7 Jun 2005 15:13:05 +0200
+
+openoffice.org (1.1.4-2) experimental; urgency=low
+
+  * debian/rules:
+    - --with-system-libwpd
+  * debian/control.in:
+    - add libwpd8-dev builddep
+    - tighten depends... (closes: #304107)
+  * merge 1.1.3-8 and -9
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 15 Apr 2005 11:32:39 +0200
+
+openoffice.org (1.1.4-1) experimental; urgency=low
+
+  * New upstream release. (closes: #296390)
+    - fixes crash on opening some documents, closes: #273011
+  * New patches:
+    - qpro-*.diff: Quattro Pro import support...
+  * Modified patches:
+    - sysui-mimetypes.diff: add Quattro Pro mimetypes [RE]
+    - wpd/*, config-switches.diff : adapt for libwpd 0.8.0 and
+      system-libwpd [FS, RE] - build with internal libwpd until
+      libwpd8 gets out of NEW...
+  * debian/control.in:
+    - update dependencies and virtual packages [RE]
+  * debian/scripts/vars: update [RE]
+  * debian/MANIFEST.*: update [RE]
+  * debian/openoffice.org.install: update [RE]
+  * ooo-build: back in branch ooo-build-1-3 [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 23 Feb 2005 23:50:47 +0100
+
+openoffice.org (1.1.3-9) unstable; urgency=high
+
+  * Urgency because of security bug...
+  * New patches:
+    - cws-heapbug_CAN-2005-0941.diff: fix CAN-2005-0941 ("OpenOffice DOC
+      document Heap Overflow") with patch extracted from upstream CVS
+      (see bug #304412) [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 12 Apr 2005 20:30:36 +0200
+
+openoffice.org (1.1.3-8) unstable; urgency=medium
+
+  * New patches:
+    - no-sans-serif-default.diff: don't use SansSerif as default font
+      thanks Matthias Klose [RE]
+    - autosave-on.diff: turn Autosave on per default; every 15 mins and
+      with confirmation (closes: #289800)
+  * debian/control.in, debian/rules: disable gnomevfs, broken
+    (closes: #297999) [RE]
+  * debian/control.in:
+    - Suggests ooqstart-gnome, not oooqstart-gnome (closes: #299673) [RE]
+    - Depend and Build-Depend on xml-core. [RE]
+    - Depend on libfontconfig1, thanks Jonas Meurer for catching this
+      (closes: #300260)
+  * debian/rules:
+    - copy local XML Catalog into the OOo DTD dir and use
+      dh_installxmlcatalogs to generate XML Catalogs, thanks Kjetil Kjernsmo
+      for proposing and helping ;-) (closes: #299430) [RE]
+    - only create link to README.Debian.gz in -kde if -kde is enabled,
+      thanks Matthias Klose [RE]
+  * debian/catalog.xml, debian/openoffice.org.xmlcatalogs: add [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 20 Mar 2005 16:59:07 +0100
+
+openoffice.org (1.1.3-7) unstable; urgency=high
+
+  * debian/rules:
+    - fix get-ooo-build to get right ooo-build branch [RE]
+    - add missing else to get the language-build special casing for the
+      buildds work again, makes them not build OOo completely twice.... [RE]
+    - fix typo at uuencoding, >, not >> [RE]
+    - minor fixes for clean target [RE]
+  * debian/control.in:
+    - version conflict with kwin-style-baghira (<< 0.6) [CH]
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 25 Feb 2005 12:16:36 +0100
+
+openoffice.org (1.1.3-6) unstable; urgency=high
+
+  * Brown paper bag release.
+  * Modified patches:
+    - vfs-uno-uri.diff: actually add USE_GNOMEVFS conditional
+      (closes: #293551) [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Sat, 19 Feb 2005 10:44:28 +0100
+
+openoffice.org (1.1.3-5) unstable; urgency=high
+
+  * New patches:
+    - psprint-nocupsupdates: Don't try to re-enumerate CUPS queues - the 1.1
+      codebase was not ready for this and it causes strange behaviour in some
+      cases (closes: #289715, #284579) [CH]
+    - libgl-soname.diff: dlopen() libGL.so.1, not libGL.so [RE]
+    - dmake43.diff: fix dmake check in configure.in to allow dmake 4.3 [RE]
+    - font-substitution-fixups: Fix substitution problems, like preferring
+      fonts without language coverage [DW]
+  * Modified patches:
+    - sc-filter-hide-filteredrows.diff: fix row unhiding in calc
+      (closes: #289013) [JB]
+  * Removed patches:
+    - sc-paste-insert-rows.diff (closes: #288708) [MM]
+  * debian/control.in:
+    - Suggest xlibmesa-gl | libgl1 [RE]
+    - Conflict against kwin-style-baghira, kwin-baghira (<< 0.6) [RE]
+    - Suggest openclipart but conflict against
+      openclipart-openoffice.org 0.17+dfsg-4 because the gallery files there
+      conflicts with the OOo ones [RE]
+  * debian/rules:
+    - readd special-casing of built languages for Debian [RE]
+    - link to README.Debian.gz in /usr/share/doc/openoffice.org (provided
+      by openoffice.org-debian-files) from -kde and -gtk-gnome (it contains
+      the info that the fpickers are disabled by default) [RE]
+    - install and make the GNOME/KDE menus use
+      ximian-openoffice-{calc,writer,draw,impress,math,template,web}
+      as icons (closes: #294634) and move the oopadmin entry from Office to
+      System [RE]
+  * debian/ttf-opensymbol.postrm.in:
+    - use rm -f for trying to remove fonts.cache* (closes: #288515) [RE]
+  * Ubuntu changes merge: [CH]
+    - build gnomevfs library sanely (closes: #293551)
+  * ooo-build: Branched at debian-1-1-3 for Sarge release [CH]
+
+ -- Chris Halls <halls@debian.org>  Wed, 16 Feb 2005 23:11:25 +0000
+
+openoffice.org (1.1.3-4) unstable; urgency=low
+
+  * Modified patches:
+    - vcl-gtk-rtl-fix.diff: move to end of [VCLPlug] section
+      (closes: #248273) [CH]
+    - native-fpicker-not-defaukt.diff: Use OpenOffice.orgs File Picker
+      for Load/Save per default instead of the GNOME/KDE ones.
+      (closes: #284487)
+  * ooo-build/openoffice-xlate-lang: add missing mappings [RE]
+  * chmod ooo-build/bin/openoffice-xlate-lang with 755; without it
+    the langpack link creation may not be effective. Use &&... [RE]
+  * debian/control.in:
+    - suggest oooqs-kde / oooqstart-gnome at -kde / -gtk-gnome [RE]
+    - mention -kde and -gtk-gnome in openoffice.orgs description [RE]
+  * debian/rules:
+    - fix typo in the disable-kde-for-ubuntu section, thanks martink [RE]
+    - fix clobbering of DEBHELPER_OPTIONS [CH]
+    - don't special case buildd user for built languages
+      (not needed since the binary-arch/indep split and breaks Ubuntu) [CH]
+    - don't add splashscreen on Ubuntu [CH]
+    - fix typo and substiute missed variables in setsdkenv_unix generation [RE]
+    - remove calc ca translation of the desktop files, CVS does weird things
+      with it (which results in breaking the encoding); also remove the rest
+      for consistency (closes: #284139) [RE]
+    - remove some more files clean target [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Sun,  2 Jan 2005 19:45:23 +0100
+
+openoffice.org (1.1.3-3) unstable; urgency=low
+
+  * Modified patches:
+    - sysui-mimetypes.diff: add some more for RTF and MS Word, add
+      MimeType= entry to math.desktop too, thanks Nathanial McCallum and
+      Matthias Klose [RE]
+    - updated backport of psprint to include several CUPS fixes [CH]
+      closes: #262278: slow startup if CUPS server unreachable
+      closes: #265398: CUPS printer device options missing
+      closes: #282837: Paper format resets to US Letter
+    - sc-no-delete-filteredrows: introduce checking for the existance of
+      RowFlags for a row. Fixes crashes when deleting columns/rows in calc.
+      (closes: #283353) [CH]
+  * debian/control.in:
+    - add Builddep on lsb-release [RE]
+    - change kdelibs4-dev builddep to kdelibs4-dev | ubuntu-artwork to
+      disable it for Ubuntu [RE]
+  * debian/rules: use lsb_release -is to differentiate whether we build for
+    Debian or Ubuntu and disable the KDE stuff when building on Ubuntu, thanks
+    Matthias Klose for the lsb_release hint. Honour DEB_BUILD_OPTIONS=withkde
+    to enable build with KDE on Ubuntu [RE]
+  * debian/openoffice.org.post{inst,rm}.in: remove postinst and
+    do not run update_desktop_database in postrm; undefined. dh_desktop does
+    insert a run to update-desktop-database already anyway...
+    (closes: #282864) [RE]
+  * debian/scripts/vars: update KDE icons version [CH]
+
+ -- Chris Halls <halls@debian.org>  Tue, 30 Nov 2004 18:11:17 +0000
+
+openoffice.org (1.1.3-2) experimental; urgency=low
+
+  * New patches:
+    - lt-fixes.diff: fixes for -lt langpack, thanks
+      Mantas KriauÃ¨iÃ»na <mantas@akl.lt> (closes: #280757)
+  * debian/control.in:
+    - evoluton is in Section: gnome so put openoffice.org-evolution there, too
+      instead of editors [RE]
+    - add arm to Architecture:'s except -java (FIXME: does arm have a
+      JDK 1.4?) (closes: #260435) [RE]
+  * debian/rules:
+    - remove patch apply conditionals on arm, now in ooo-build proper [RE]
+  * debian/patches/linux-arm-support.diff: remove, now in ooo-build proper [RE]
+  * debian/MANIFEST.arm: remove bogus blank line [RE]
+  * merge 1.1.2dfsg1-2 and -3 [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 23 Nov 2004 00:10:52 +0100
+
+openoffice.org (1.1.3-1) experimental; urgency=low
+
+  * New upstream release.
+    - fixes KDE clipboard exchange (closes: #237232)
+    - fixes import of .docs with FormControls (closes: #276669)
+  * New major patches:
+    - vfs-*: GNOME VFS Support [MM]
+      [ This means we now have integrated all of the major Ximian
+        patches and thefore this closes: #201494 ]
+    - vclplug/*: VCLPlug Backport from 2.0 tree [MM]
+      [ getstyle-gnome / msgbox-gnome are not built and needed anymore, so
+        this closes: #268176, #268179.
+        This also contains a psprint backport containing the vcl24 cws, so
+        this also closes: #265148, #254239, #260007)
+    - wpd/*: WordPerfect filter support [MM et al.], linking to a
+      libwpd snapshot statically for now...
+    - evo2/*: Evolution2 Addressbook supoort; needed since Evo2 is now in sid;
+      this kills evo1 support, though...
+  * New minor patches:
+    - print-do-not-change-document.diff: do not mark document modified
+      when printing per default [PM] (closes: #271883)
+    - crash-ppd-parse.diff: Fix crash if OOo can't parse the CUPS ppd for a
+      printer (closes: #269773) [MM]
+  * Removed patches:
+    - disable-odk-build: We now build the odk but with a patch to skip
+      the removed non-free documentation... [RE]
+  * New packages: [RE]
+    - openoffice.org-kde: KDE UI Plugin and KDE File Picker for OpenOffice.org
+    - openoffice.org-gtk-gnome: Gtk UI Plugin and GNOME File Picker for
+                                OpenOffice.org
+    - openoffice.org-gnomevfs: GNOME VFS support for OpenOffice.org
+    - openoffice.org-dev: OpenOffice.org SDK - development files
+    - openoffice.org-evolution: Evolution Adressbook support for
+      OpenOffice.org
+      (split out from the main package because this now needs
+      evolution-data-server and gnome libs...)
+    - New language packs:
+      + -eu (Basque)
+      + -lt (Lithuanian)
+      + -kn (Kannada)
+      + -tn (Tswana)
+      + -gl (Galician)
+  * debian/control*.in:
+    - simplify builddeps by removing woody backport specifics [RE]
+    - add kdelibs4-dev and libgnomevfs2-dev to Build-Depends: [RE]
+    - add libstartup-notification0-dev to Build-Depends: [RE]
+    - add openoffice.org-kde, openoffice-org-gtk-gnome,
+      openoffice.org-gnomevfs, openoffice.org-dev and
+      openoffice.org-evolution [RE]
+    - tighten depends [RE]
+    - increase openoffice.org-mimelnks Recommends: on kdelibs-data to
+      >> 4:3.3.0 [RE]
+    - increase debhelper build-depends to >= 4.2.21 since we use
+      dh_desktop [RE]
+    - openoffice.org Suggests: -gnomevfs, -kde | -gtk-gnome [RE]
+    - change -mimelnk description to say that we ship additioal mimelnks
+      to those in kdelibs-data [RE]
+    - add libebook-dev to Build-Depends: [RE]
+    - Build Conflict against broken (dh_desktop) debhelper 4.2.22 [RE]
+  * debian/rules:
+    - use ooo-build-1-3 branch of ooo-build [RE]
+    - --enable-kde --enable-gtk --enable-libsn [RE]
+    - stop installing more mimelnks since they are now part of KDE 3.3's
+      kdelibs-data [RE]
+    - add some missing makefile rule dependencies and add missing rm -rf's
+      of the debian/<package> trees [RE]
+    - remove the python-depends substvar and the logic in debian/rules;
+      use dh_python instead for generating the appropriate depends... [RE]
+    - run dh_perl and add ${perl:Depends} to openoffice.org-devs (configure.pl)
+      and openoffice.orgs (openoffice-xlate-lang) _Suggests:_ :) [RE]
+    - add pieces to integrate writerperfect support (fetch libwpd snapshot,
+      uu{en,de}coding, etc.) [MK]
+    - add gnomevfs-lib.sh to -gnomevfs maintainer scripts [RE]
+    - add LIBSUFFIX as defined in debian/scripts/vars.$(ARCH) to the
+      maintainer scripts
+    - fix .desktop files to support StartupNotify [RE]
+    - run dh_desktop, we need it to get update-desktop-database runs in
+      the maintainerscripts which is needed [RE]
+    - remove po-debconf workaround for woody, use normal po-debconf
+      mechanism (in dh_installdebconf) now [RE]
+    - remove woody backport specifics [RE]
+  * debian/openoffice-xlate-lang:
+    - add Basque, Lithuanian, Kannada, Tswana and Galician [RE]
+  * debian/scripts/vars:
+    - update [RE]
+    - use ooo-icons_1_1-10 [MK]
+    - add URL and version to/of the libwpd snapshot [MK]
+  * debian/MANIFEST.*: update [RE, MK]
+  * debian/openoffice.org-bin.install: update [RE, MK]
+  * debian/openoffice.org-java.install: install officebean.jar and
+    libofficebean.so (thanks Markus Plessing for the latter) [RE]
+  * debian/openoffice.org-gtk-gnome.install, openoffice.org-kde.install,
+    debian/openoffice.org-gnomevfs.install: add [RE]
+  * debian/openoffice.org-dev.install: add [RE]
+  * debian/openoffice.org-evolution.install: add [RE]
+  * debian/openoffice.org-dev.links.in: add [RE]
+  * debian/gnomevfs-lib.sh: add [RE]
+  * debian/desktop-lib.sh: remove [RE]
+  * debian/openoffice.org-bin.templates.master: rename to .templates [RE]
+  * debian/po/*: update for plain po-debconf usage [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 31 Oct 2004 16:41:36 +0100
+
+openoffice.org (1.1.2dfsg1-3) unstable; urgency=low
+
+  * New patches: [RE]
+   - sigh, and again: actually apply hebrew-culmus.diff (closes: #280084)
+  * debian/patches/linux-arm-support: [RE]
+    - don't define PYTHONLIB=-lpython; the error was in the unxlngr.mk
+      settings; comment out LINKFLAGSDEFS
+  * debian/control.lang.in:
+    - stop depending on openoffice.org at -l10n-*. Just recommend it.
+      Conflict against the older and the next upstream version to get the
+      desired effect instead. This allows re-inclusion of them in tasksel and
+      per-language metapackages (closes: #281645) [RE]
+  * debian/rules:
+    - remove autogenerated maintainer scripts in clean,
+      thanks Matthias Klose for noticing (closes: #281423) [CH]
+    - merge some minor changes from 1.1.3 rules file [CH]
+    - remove desktop-lib.sh addition to maintscripts [RE]
+    - fix wizard/bitmap link creation to exclude -l10n-en since this
+      produces a link / directory conflict between openoffice.org and
+      openoffice.org-l10n-en (closes: #281643) and fix it up to actually
+      work in all cases, oops [RE]
+  * debian/desktop-lib.sh: remove, now included in shell-lib.sh [RE]
+  * debian/shell-lib.sh: merge desktop-lib.sh [RE]
+  * debian/ttf-opensymbol.*: [RE]
+    - move .post{inst,rm} to .post{inst,tm}.in and add hook variables
+  * debian/openoffice.org*.{post,pre}{inst,rm}.in: [RE]
+    - add, run update_desktop_database on configure/remove and add necessary
+      pieces to get openoffice.org and openoffice.org-bin purged cleanly
+      (closes: #281473, #273547) [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 22 Nov 2004 00:00:54 +0100
+
+openoffice.org (1.1.2dfsg1-2) unstable; urgency=medium
+
+  * New patches:
+    - now actually apply sysui-mimetypes.diff... (closes: #272638)
+    - hebrew-culmus.diff: prioritize the culmus fonts (Ellinia CLM)
+      for hebew UI fonts (closes: #280084)
+    - sysui-impress-comment.diff: fix field, s/Commment/Comment/ [RE]
+  * debian/rules:
+    - link to the english wizard/bitmap directory in the various langpacks
+      to be able to access the localized-not-not-localized bitmaps. Fixes
+      several Autopilots... (closes: #216647)
+  * debian/patches/linux-arm-support.diff:
+     - use $(CC) instead of hardcoding cc
+     - fix makefile.mk targets
+     - fix boost patch to not include atomic_count_linux.hpp to make
+       sc build
+     - define PYTHONLIB=-lpython in pyuno to make it build
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 11 Nov 2004 09:31:44 +0100
+
+openoffice.org (1.1.2dfsg1-1) unstable; urgency=medium
+
+   * Remove non-free stuff from the .orig.tar.gz: [RE]
+     - neon/download/neon-0.23.5.tar.gz: contains FDL docs...
+     - external/common/*: propriatary sun Jars
+   * New patches:
+    - l10n-YTL.diff: backport tr_TR localedata patch from
+      cws_srx645_trcurrency to add YTL (.tr currency as of 2005-01-01)
+      support; make it default [RE]
+    - sysui-mimetypes.diff: add MimeType entries to the
+      .desktop files (closes: #272638) [RE]
+    - fix-jars.patch: patch to be able to use free jars, thanks
+      Marco Pratesi [RE]
+   * Modified patches:
+    - sysui-translations.diff: fix ca encoding, thanks Jordi Mallach
+      (closes: #275968)
+   * debian/control.in:
+     - remove Jan-Hendrik Palic from Uploaders: [RE]
+   * debian/rules:
+     - add LIBSUFFIX as defined in debian/scripts/vars.$(ARCH) to the
+       maintainer scripts [RE]
+     - add the libxerces2-java, libxp-java, and libxt-java .jars to
+       XCLASSPATH. Check for them at the appropriate place and symlink to
+       them from external/common since for xt and xp the addition to the
+       classpath doesn't work in readlicense_oo and officecfg :/ [RE]
+   * debian/java-lib.sh: use ${LIBSUFFIX} instead of hardcoded li to
+     make it work on !i386
+   * debian/desktop-lib.sh: add, run update-desktop-database -q in
+     postinst and postrm [RE]
+   * debian/ttf-opensymbol.postrm: fix (we need to test for $1 = remove)
+     and rm /usr/share/fonts/truetype/openoffice/fonts.cache* on purge to
+     get ttf-opensymbol purged cleanly (closes: #270729)
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 29 Oct 2004 20:28:06 +0200
+
+openoffice.org (1.1.2-5) unstable; urgency=high
+
+  * Urgency because printing (more than before!) and formatting in impress
+    were severly broken
+  * New patches:
+    - desktop-debug-fix.diff: fix desktop project to build with debug=yes,
+      thanks Josh Triplett (Issue 28330)
+  * Modified patches:
+    - psprint-cups.diff: (temporarily) revert -4 changes
+      (closes: #273298, #273335, #272710, #273850)
+      (reopens #265148, #254239 and #260007)
+  * debian/po:
+    - add nl.po, thanks Luk Claes and Jeroen van Wolffelaar
+      (closes: #274896)
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  6 Oct 2004 00:10:35 +0200
+
+openoffice.org (1.1.2-4) unstable; urgency=high
+
+  * Urgency because of temporary file permissions and important CUPS
+    fixes...
+  * New patch:
+    - tmpfile-mask.diff: ensure temporary files are only readable by the
+      user - IZ#33357, CAN-2004-0752 (closes: #271503) [CH]
+  * Modified patches:
+    - psprint-cups.diff: Backport pl's fixes from m51 to fix some crashes,
+      PPD problems and hanging when a CUPS server isn't available [CH]
+      closes: #265148: Cannot print with CUPS
+      closes: #254239: cups printer device options missing
+      closes: #260007: does not start if cups server not available
+  * debian/rules:
+    - fix broken if statement breaking with-Java builds, thanks martink
+      (closes: #268173) [CH] 
+    - oops, exchange spaces to a tab at installing internal db for Java builds,
+      thanks Konstantin Seiler (closes: #267979) [RE]
+    - ignore CVS dirs when checking for the berkeleydb version on Woody
+      backports, thanks Konstantin Seiler again (closes: #268172)
+  * debian/control.*:
+    - yet another s/openoffice.org/OpenOffice.org/ in the langpack
+      descriptions [RE]
+    - add Build-Conflicts: against libidn11 (<< 0.5.2-1) since libcurl3
+      needs those newer versions but didn't declare it because of broken
+      .shlibs in libidn11 [RE]
+    - remove www-browser from openoffice.orgs Suggests: [RE]
+    - tighten language packs depends (closes: #266042) [RE]
+    - conflict against openoffice.org-debian-files (= 1.1.2-3+1) and
+      openoffice.org-debian-files (= 1.1.2-3+2) because they miss important
+      stuff [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 16 Sep 2004 23:10:01 +0200
+
+openoffice.org (1.1.2-3) unstable; urgency=medium
+
+  * ARM architecture support added, thanks Peter Naulls [PN],
+    not yet enabled
+  * New patches:
+    - sparc-v8-fixes: do not use the cas statement on sparc, makes
+      libsal.so.3.1.0 v8-compatible (closes: #256347), thanks Jim Watson [RE]
+  * Modified patches:
+    - system-curl: fix includes for libcurl3, curl/types.h is now
+      /* not used */ [RE]
+  * debian/control.in:
+    - just Recommend fontconfig instead of depending on it at
+      ttf-opensymbol [RE]
+    - extend -java description with the two line "intro" of the other pkgs
+      and tell in the description that the user needs to register his
+      JDK/JRE manually [RE]
+    - version libaltlinuxhyph build-dependency with (>= 0.1.1-6) since
+      arm needs it built with -fPIC [RE]
+    - build-depend on libcurl3-dev instead of libcurl2-dev to build against
+      libcurl3 and remove build-conflicts on libcurl2-dev (= 7.12.0-1)
+      (closes: #260390) [RE]
+    - remove libpng12-dev | libpng2-dev, libjpeg62-dev and libtiff3g-dev
+      from Build-Depends:, would be needed for --enable-crashdump=STATIC
+      which we don't use [RE]
+    - remove openoffice.org-crashrep (closes: #251408) [RE]
+    - move java-additional-depends substvar to openoffice.org-java [RE]
+  * debian/openoffice.org-java.install:
+    - Add java_uno_accessbridge.jar and wildcards for other architectures [CH]
+  * debian/rules:
+    - add ARM to checks in makebinariestar [PN, RE]
+    - add hack to apply Linux/ARM support patch [RE]
+    - get/use ooo-build-1-1 branch of ooo-build in get-ooo-build [RE]
+    - on Java builds, remove jvm*.res from the langpacks; they are supposed
+      to put into -java only and they otherwise cause file conflicts, thanks
+      Joseph Cole for the report [RE]
+    - fix installing of libdb_java*.so so it is installed on -java on builds
+      with included libdb, not in -bin... [RE]
+  * debian/openoffice.org-bin.install:
+    - add ARM support [PN]
+  * debian/MANIFEST.arm: add [PN, RE]
+  * debian/scripts/vars.arm: add [PN]
+  * debian/patches/linux-arm-support.diff: add as hack until it could be
+    added to ooo-build... [RE]
+  * debian/openoffice.org-crashrep.install: remove
+  * debian/openoffice.org-java.postinst.in: add; tell the user to execute
+    /usr/lib/openoffice/program/jvmsetup [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 27 Jul 2004 20:55:29 +0200
+
+openoffice.org (1.1.2-2) unstable; urgency=low
+
+  * New patches:
+     - readd-lzwc.diff: readd LZW code now that the patent expired
+       everywhere (closes: #172181) [RE]
+  * Modified patches:
+     - gui-fonts-kde: Fix case where font size is -1 points and size
+       must be obtained from pixel height field (closes: #254543) [CH]
+     - psprint-cups.diff: Backport pl's fixes from IZ#30914/7 to fix printing
+       with CUPS queues with multiple instances, and ensure 'Add a printer'
+       button is not enabled in spadmin when CUPS is used
+       (closes: #250981, #251888) [CH]
+  * debian/control*.in:
+     - s/openoffice.org/OpenOffice.org/ in the descriptions
+       (closes: #254047) [RE]
+     - Conflicts: openoffice.org-l10n-1.1.1 [RE]
+  * debian/rules:
+     - prevent backups of .bmp files in ooo-build, to prevent dpkg-source
+       errors after build/clean/build cycle [CH]
+     - change instdb.ins to not register own mimetypes on workstation
+       installs anymore and mention this problem in NEWS
+       (closes: #241222) [RE]
+     - add NoDisplay=true into /usr/share/applnk/OpenOffice.org1.1/.directory
+       to hide the extra menu on KDE 3.2 (closes: #231901) [RE]
+     - remove absolute paths from the .desktop files to make it
+       themeable (closes: #214932) [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Fri,  9 Jul 2004 15:05:09 +0200
+
+openoffice.org (1.1.2-1) experimental; urgency=low
+
+  * New upstream release.
+    - closes: #216973: openoffice spews lpc errors on startup
+  * New packages:
+    - ttf-opensymbol. Split out from openoffice.org because it may
+      be useful alone. [RE]
+    - new language packs [RE]:
+      + -he (hebrew) (closes: #236801)
+      + -cy (Welsh)
+      + -zu (Zulu)
+      + -ns (Northern Sotho)
+      + -af (Afrikaans)
+      + -nb (Norwegian bokmal) and -nn (Norwegian nynorsk)
+      + -hi (Hindi) - renamed from -hi-in
+  * Modified patches:
+    - config-switches: new switches [RE]
+    - disable-{fontoo,myspell-dicts}: disable install of the respective
+      stuff [RE]
+  * debian/control.*:
+    - add ttf-opensymbol [RE]
+    - tighten interpackage- and langpack dependencies to 1.1.2 [RE]
+    - openoffice.org Depends: ttf-opensymbol [RE]
+  * debian/rules:
+    - reverse mozilla logic since it changed upstream [RE]
+    - add logic to add Conflicts:/Provides:/Replaces: to -hi for
+      -hi-in [RE]
+    - --disable-fontooo, --without-myspell-dicts [RE]
+  * debian/MANIFEST.*: update [RE]
+  * debian/*.install: update [RE]
+  * debian/scripts/vars: update [RE]
+  * debian/local/openoffice-xlate-lang: add new languages and uncomment
+    hebrew [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 28 Jun 2004 11:12:37 +0200
+
+openoffice.org (1.1.1-4) unstable; urgency=medium
+
+  * New packages:
+    - openoffice.org-java.  This package is not built by default
+      for main and will be uploaded to contrib, to provide the Java
+      features of openoffice.org [CH]
+  * New patches:
+    - security-sonames: dlopen() libcrypt.so.1 / libpam.so.0, not
+      libcrypt.so / libpam.so [RE]
+    - java-patch-blackdown: find j2se1.4 .deb installation [CH]
+    - java-blackdown-ver: accept JDK version "1.4.1", reported by
+      Blackdown version [CH]
+  * Modified patches:
+    - config-switches: cleanup, minor beautifications [RE]
+    - xinerama-pic-on-all-archs: make actually do something on !i386,
+      substitute #if defined ( X86 ) around the Xinerama code to
+      #if defined ( LINUX ) [RE]
+    - system-curl: add -lXt since some curl versions seems to need it
+      (woody....) [RE]
+    - system-nas: likewise.
+    - system-fontconfig: support .ttc fonts, too (closes: #218746)
+    - system-myspell: make complete (closes: #254052)
+  * debian/control.*:
+    - remove Provides: of openoffice.org-thesaurus-en,
+      openoffice.org-thesaurus from openoffice.org overseen at the split [RE]
+    - use >> 1.1.1-2 instead of >= 1.1.1-3 in the tightened interpackage
+      relationships [RE]
+    - add openoffice.org-java [CH, RE]
+    - build-conflict against libcurl2-dev (= 7.12.0-1) [RE]
+    - s/libdb3++-dev | libdb++-dev/libdb4.2++-dev/ [RE]
+    - Conflict: against openoffice.org-spellcheck-nb-no (<= 20020814-1) and
+      openoffice.org-spellcheck-nn-no (<= 20021023-1) [RE]
+  * debian/shlibs.woody.local:
+    - force removal of bogus libfreetype6 dependency on woody backport. [RE]
+  * debian/rules:
+    - add | debconf-2.0 to the debconf depends substitution [RE]
+    - hardcode 4.2 to work around weird FTBFS (closes: #254177) [RE]
+  * debian/openoffice.org-java.install: add [CH, RE]
+  * debian/openoffice.org-java.{postrm,preinst}.in: add [CH, RE]
+  * debian/scripts/dbdevver: remove [RE]
+  * debian/MANIFEST.*: update [RE]
+  * debian/openoffice.org-bin.install: update [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Mon, 28 Jun 2004 20:58:13 +0200
+
+openoffice.org (1.1.1-3) unstable; urgency=medium
+
+  * Urgency because of several FTBFSes and security-bug in neon..
+  * New patches:
+    - print-resolution-generic: improve generic printer, resolution [MM]
+    - build-arch-flags: support ARCH_FLAGS to change compiler flags
+      from envrionment [MM]
+    - java-use-xslt-filters: Install Java filters (if Java enabled) [MM]
+    - version-strike: OOO_BUILD_EXTENSION can specify a version suffix
+      for OOo to display [MM]
+    - setup-upgrade,license: No click-through license screen, upgrade from
+      1.1.0 properly [MM]
+    - Various other SuSE patches merged, see changelog.ooo-build.gz [MM]
+    - psprint-cups: Backport native CUPS support upstream 2.0 [CH]
+    - psprint-bad-ttf-nametable-fix: fix more malformed TrueType fonts [DW]
+    - allow-s390x: allow s390x uname -m output in set-soenv on S390 [RE]
+    - word-count: fix translations [MK]
+    - officecfg-parallel-build-fix: make officecfg parallel build safe [DW]
+  * Modified patches:
+    - print-fontconfig: Fix broken afm metrics on Woody backport [CH]
+    - system-db: fix again for Java case. $(CC) -E apparently doesn't like
+      java.in anymore....
+  * debian/control.in:
+    - extend build-conflicts on libart, 2.3.16-4 too is broken.
+      2.3.13 introduced new functions. build-conflict on 2.3.16-4... [RE]
+    - tighten Depends: openoffice.org Depends: openoffice.org-bin (>= 1.1.1-3)
+      and vice versa [RE]
+    - Build-Depends:
+      + ugh, "gimp" exists only in sid currently, build-depend on
+        gimp | gimp1.2 [RE]
+      + reverse xlibs-dev | libxext-dev et al. builddeps in spirit of the
+        xlibs-split, remove unneccessary xlibs-pic (>= 4.2.1-6) piece since it
+        is a metapackage and we already have xlibs-static-pic there [RE]
+      + do not require python-dev on woody [RE]
+      + add libneon23-dev | dpkg-dev (<< 1.10) [RE]
+      + add libstlport4.6-dev (>= 4.6.2-1) | dpkg-dev (<< 1.10) [RE]
+      + add libcupsys2-dev [RE]
+      + substitute g++-3.0 [!powerpc] conditionals with dpkg-dev (<< 1.10)
+        because some people still have g++-3.0 installed on their sid boxes -
+        thanks Sebastien Bacher for reporting and Adam Conrad for the hint [RE]
+  * debian/rules:
+    - add support for building using KDE icon set, use
+      DEB_BUILD_OPTIONS=kdeicons [CH]
+    - build with system-python only on sid, woody's default python is too
+      old [RE]
+    - build with security-fixed system libneon23 on sid [RE]
+    - remove .orig files that would (probably) otherwise get into install
+      set (closes: #247781) [CH, RE]
+    - build with system STLport; do not create useless stlport-home, just
+      use --with-stlport4-home=/usr [RE]
+    - get-ooo-build: Gnome CVS module name has changed from openoffice to
+      ooo-build [CH]
+    - make solver.langpacks target a noop if not all langpacks are built -
+      helps builds with delouput... [RE]
+  * debian/scripts/vars:
+    - add KDE icon locations [CH]
+  * debian/README:
+    - add a section about how to build the Woody backport [CH]
+    - document DEB_BUILD_OPTIONS=kdeicons [CH]
+  * debian/po:
+    - add Turkish debconf template translation, thanks Mehmet TÃ¼rker
+      (closes: #246073) [RE]
+    - add Catalan debconf template translation, thanks Aleix Badia i Bosch
+      (closes: #248745) [RE]
+  * ooo-build/bin/scale-icons: use prefix instead of suffix for the converted
+    icons to not confuse imagemagick, thanks Daniel Kobras
+    (closes: #247313) [RE]
+  * debian/openintro_debian.xcf.uu: modified for better text and Debian logo
+    alignment [MK]
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 21 May 2004 19:18:24 +0200
+
+openoffice.org (1.1.1-2) unstable; urgency=high
+
+  * Urgency because of FTBFS and security-bug....
+  * New patches:
+    - sysui-translations.diff: add .fi and .ca translations to sysui; remove
+      german stuff for not german languages - thanks Martin-Éic Racine
+      Jordi Mallach and Sebastien Bacher (closes: #236796)
+    - build-use-old-libart.diff: Adapt from Red Hat patch to use older version
+      of libart for Woody backport [DW, CH]
+    - build-pl-conditionals.diff: introduce conditionals into build.pl [DW]
+    - neon.patch-CAN-2004-0179.diff: Fix format string vulnerability
+      in neon [DW]
+    - datasources_types_add_mysql.diff: back, the strings were not fixed for
+      catalan, thanks Jordi Mallach [RE]
+  * Modified patches:
+    - system-freetype.diff: Fix for Woody backport - use -lfreetype to link
+      internal freetype [CH]
+    - system-python.diff: nearly complete, just some rc files missing [MK]
+    - config-switches.diff et al.: new system python stuff; make disabing
+      x11_extensions, sane and unixodbc projects build cleaner using
+      the new conditionals (see above) [RE]
+  * debian/control.in:
+    - modify libdb, libmyspell, libaltlinuxhyph, libcurl and newer
+      libart build dependencies to not require them in Woody backport;
+      version the libcurl2-dev build-dependency to require >= 7.9.8 and
+      lower the libart-2.0-dev one to >= 2.3.8 [RE, CH]
+    - Standards-Version: 3.6.1 (no changes needed)
+    - build-depend on gimp instead of gimp-perl, we now use script-fu [RE]
+    - add python-dev to Build-Depends: [RE]
+    - Build-Conflict: on libart-2.0-dev (= 2.3.16-3) because it lost his
+      shlibs versioning in this version... [RE]
+  * debian/rules:
+    - disable use of external libdb and libmyspell for woody builds,
+      it won't work because we have to use g++-3.0 on woody and libdb3_cxx is
+      C++ built with g++-2.95... thanks Severin Greimel for the pointer [RE]
+    - disable use of external libcurl for woody builds, too old... [CH]
+    - disable use of extrnal libaltlinuxhyhph headers on woody builds... [CH]
+    - fix debian/rules makebinariestar target for !i386 [RE]
+    - --with-python=/usr/bin/python [RE]
+    - use ifeq ($(ARCH)-linux,sparc-linux) for the check when setting the
+      compiler to sparc-linux-*, thanks Robert Millan [RE]
+    - fix removal of version numbers to remove them from all cases [RE]
+  * debian/scripts/xcftobmp:
+    - use script-fu since gimp-perl is removed from sid [MK, RE]
+  * Remove extra logic to generate Depends on debianutils (>2.0) for
+    non-Woody backport:  OOo gives a reasonable error message if
+    sensible-browser is not available, and this would have forced us to
+    ship another package for the backport [CH]
+  * debian/MANIFEST.*: updated [RE]
+  * debian/scripts/vars:
+    - use ooo-icons -9 [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Thu, 15 Apr 2004 18:35:48 +0200
+
+openoffice.org (1.1.1-1) unstable; urgency=low
+
+  * 1.1.1 final release; generate a new .orig.tar.gz from the official
+    source .tar.bz2 [RE]
+  * debian/control.in: 
+    - Tighten dependencies between packages to ensure all main packages are at
+      least 1.1.1rc3 (closes: #239193) [CH, RE]
+  * debian/rules:
+    - Remove new binary bitmaps for Red Hat [CH]
+    - remove version infos from the remaining .desktop files to get
+      them synchron (closes: #224313) [RE]
+    - fix libdb version check to reject db4.0 on Java builds [RE]
+    - fix libhpi existence check to be only executed on Java builds; it
+      otherwise searches beginning from / which wastes much ressources... [RE]
+  * debian/shell-lib.sh:
+    - add message() taken from xfree86 (closes: #233424) [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 30 Mar 2004 03:59:37 +0200
+
+openoffice.org (1.1.0+cvs20040317-1) unstable; urgency=low
+
+  * New CVS co (SRX645_m35 as of 20040317) -> 1.1.0+1.1.1rc3 [RE]
+  * New patches:
+    - icu-build-no-extras: do not build extras/ in icu, works around
+      ld errors which occurs here (see #210608)... [RE]
+    - system-unixodbc: use system unixODBC headers [RE]
+  * Modified patches:
+    - config-switches.diff: implement --with-system-unixodbc-headers [RE]
+  * debian/rules:
+    - --with-system-unixodbc-headers [RE]
+  * debian/control.in:
+    - add unixodbc-dev to Build-Depends: [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Wed, 17 Mar 2004 23:38:00 +0100
+
+openoffice.org (1.1.0+cvs20040312-1) experimental; urgency=low
+
+  * CVS co of OpenOffice_1_1_1 tag as of 20040312. binary packages versioned
+    1.1.0+1.1.1rc2. [RE]
+  * New patches:
+    - system-neon: build and link dynamically against system neon
+      (now only against 0.23 which isn't in Debian anymore :/ ) [RE]
+    - system-x11-extensions: use system X11 extensions headers for build
+      ((X)render.h, renderproto.h) [RE]
+    - norwegian-translation.diff: Norwegian Bokmal and Norwegian Nynorsk
+      translation -- not yet complete, add basic stuff;
+      thanks Gaute Hvoslev Kvalnes [RE]
+  * Modified patches:
+    - extra-languages: add NORBOK and NORNYN [RE]
+  * debian/rules:
+    - remove mimelnk files KDE 3.2 took over (closes: #234670) and remove
+      the version info of the remaining ones in openoffice.org-mimelnk.
+    - --with-system-x11-extensions-headers [RE]
+  * debian/control.in:
+     - Make openoffice.org-mimlnk recommend kdelibs-data (>> 4:3.2.0) and
+       therefore only suggest it from openoffice.org [RE]
+     - add libxrender-dev | xlibs-dev (<< 4.3.0-1) and
+       render-dev | xlibs-dev (<< 4.3.0-1) to Build-Depends: [RE]
+  * debian/local/openoffice-xlate-lang:
+     - add (yet commented) 47:nb-NO:NORBOK:Norwegian (Bokmal) and
+       79:nn-no:NORNYN:Norwegian (Nynorsk) [RE]
+  * debian/po:
+     - add cs.po, thanks Miroslav Kure (closes: #237576) [RE]
+  * debian/MANIFEST.*: update [RE]
+       
+ -- Rene Engelhard <rene@debian.org>  Sat, 13 Mar 2004 15:39:24 +0100
+
+openoffice.org (1.1.0+cvs20040229-1) experimental; urgency=low
+
+  * CVS co of mws_srx645 as of 2004-02-29, call the binary packages
+    1.1.0+1.1.1rc, though because the change between the two things is just
+    set-locale-c...
+    - does not create empty .netscape and .netscape6 directories
+      anymore at workstation install (closes: #234800)
+    - does not display unknown characters as ?? anymore (closes: #204636)
+  * New binary packages:
+    - sl (Slovenian) language pack - overseen in previous release, thanks
+      Primoz Bratanic
+    - et (Estonian) language pack - strings now added :)
+    - hi-in (Hindi / India) language pack
+    - th (Thai) language pack
+  * New patches:
+    - set-locale-c: set LC_MESSAGES to C in gccinstlib.pl since we parse
+      gcc output and it fails now (at least with de_DE locale) with the new
+      translated gcc. [RE]
+  * debian/rules:
+    - dynamically determine which db to use since we need to use db4.1 for
+      Java builds but want to use 3.2 for "normal" ones still; add
+     --with-db-jar=/usr/share/java/libdb4.1-java.jar to CONFIGURE_FLAGS for
+     Java builds. Thanks Martin for the pointer again [RE]
+    - remove hardcoded installing of libdb_java-3.2.so for Java builds [RE]
+  * debian/control*:
+    - s/libdb3++dev/libdb3++-dev | libdb++-dev/ [RE]
+    - add new ${java-additional-depends} substvar which adds a
+      dependency to libdbX.Y-java on java builds [RE]
+    - depend on openoffice.org-debian-files (>> 1.1.0+1.1.1rc) [RE]
+    - bump version of -l10n virtual package; openoffice.org depends on
+      openoffice.org-10n-en (>> 1.1.0+1.1.a) | openoffice.org-l10n-1.1.1 [RE]
+  * debian/local/openoffice-xlate-lang:
+    - add 50:sl:SLOVENIAN:Slovenian, add 66:th:THAI:Thai,
+      91:hi-IN:HINDI:Hindi (India) and (commented out because not yet
+      working) 97:he:HEBREW:Hebrew [RE]
+    - uncomment Estonian and move it in [RE]
+  * debian/openoffice.org*.install: update [RE]
+  * debian/MANIFEST.*: update [RE]
+  * debian/po:
+    - add da.po, thanks Claus Hindsgaul (closes: #233268) [RE]
+  * debian/scripts/vars:
+    - use ooo-icons_OOO_1_1-8 (closes: #237313) [RE]
+  * merge 1.1.0-6 [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Wed,  3 Mar 2004 08:14:51 +0100
+
+openoffice.org (1.1.0+1.1.1a-1) experimental; urgency=low
+
+  * New upstream (pre-)release. [RE, MK]; thanks Martin for the patch
+    porting.
+  * New binary packages: [RE]
+    - hu (Hungarian) language pack
+    - split thesaurus out into openoffice.org-thesaurus-en [RE]
+  * New patches:
+    - 111a-right-version: call the version right (1.1.1a instead of
+      1.1.0) [RE]
+  * debian/rules:
+    - install dictlistinfo file into openoffice.org-thesaurus-en-us but
+      leave a dummy /usr/share/myspell/infos/ooo/openoffice.org file
+      in openoffice.org [RE]
+  * debian/scripts/vars:
+    - use patch dir OOO_1_1_1 [RE]
+    - use ooo-icons_OOO_1_1-7 [RE]
+  * debian/local/openoffice-xlate-lang:
+    - add 36:hu:HUNG:Hungarian and 77:et:ESTONIAN:Estonian - latter
+      commented since it somehow doesn't work (yet) [RE]
+  * debian/openoffice*.install, debian/openoffice*.dirs:
+    - remove thesaurus pieces from openoffice.org.install and move them
+      to openoffice.org-thesaurus-en-us.install [RE]
+  * debian/MANIFEST.*:
+    - 1.1.1a updates [RE]
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 20 Jan 2004 03:21:17 +0100
+
+openoffice.org (1.1.0-6) unstable; urgency=low
+
+  * Modified patches:
+    - config-switches: add -L$XINC -lXt to the extra libs for the
+      nas and curl checks - fails on woody otherwise. Do not check for
+      the libdb_cxx.so symlink when we supply the version with
+      --with-db-version=A.B. Same Argument ;) [RE]
+    - system-db: fix to actually work in all circumstances [RE]
+    - recent-files: remove usage of rtl_ in the interface exposed
+      by recent-files.hxx (closes: #228324), create ~/.recently-used
+      if it does not exist (closes: #230912) [AB]
+    - psprint-handle-no-solar-java: Patch did not apply as indended,
+      fixed [CH]
+    - sc-show-sensitize: do not mark cells als multiselect
+      (closes: #229012) [AS]
+    - gtk-themeing: Fix text colour problems in some themes e.g. Mist [DW]
+  * debian/control.in:
+    - Build-Conflicts: g++-3.3 (= 1:3.3.3-0pre1) due to enum failure [CH, RE]
+    - openoffice.org Conflicts with old package openoffice.org-gnome
+      (closes: #224675) [CH]
+    - Mention prelink in description (closes: #229564) [CH]
+  * debian/po:
+    - add es.po. Thanks Javi Castelo (closes: #232209) [RE]
+
+ -- Chris Halls <halls@debian.org>  Mon, 16 Feb 2004 10:05:01 +0100
+
+openoffice.org (1.1.0-5) unstable; urgency=low
+
+  * Modified patches:
+    - recent-files.diff: #include <assert.h>, fixes build failure on
+      powerpc [RE] 
+
+ -- Rene Engelhard <rene@debian.org>  Fri, 16 Jan 2004 21:25:20 +0100
+
+openoffice.org (1.1.0-4) unstable; urgency=low
+
+  * New patches:
+    - xinerama-pic-on-all-archs: build with libXinerama_pic.a on all archs
+      when building with it available [RE]
+    - sensible-browser: call sensible-browser for external programs
+      (HTTP/HTTPS/FTP) (closes: #222625) [RE]
+    - nswrapper-mozilla-not-netscape: run mozilla in nswrapper.sh, not
+      netscape, patch taken from SuSE [RE]
+    - system-db: build with system libdb3 [RE]
+    - system-nas: build and link dynamically with system libaudio [RE]
+    - font-de-bitstreamize-en: Put bitstream Vera fonts much lower in the
+      font selection order because of missing glyphs and no italics in Serif
+      font (closes: #214588) [CH]
+    - no-splash-takeover: don't let splash screen take over
+      (closes: #175131 ??) [DW]
+    - gui-alpha-hypertoolbar: Fix htmltoolbar image alpha [MM]
+    - pagein-speedup: Knock 50ms+ off pagein time [MM]
+    - path-home-documents: Use ~/Documents as default document path if it
+      exists [MM, CH]
+    - recent-files: Add support for the freedesktop.org ~/.recently-used
+      spec [MM]
+    - sd-export-no-spell-check: do not underline "wrong" words in HTML
+      export [MK]
+    - system-sane: build with system sane.h [RE]
+    - system-freetype: merged patch; use system freetype and fix for freetype
+      2.1.7 [RE]
+    - system-curl: build with system curl [RE]
+    - system-myspell: build and link dynamically with system myspell [RE]
+    - system-altlinuxhyph: build with system altlinuxhyph (statically for now
+      since there is no dynamic one) [RE]
+    - build-sparc-assembler: Use $(CC) for sparc assembler
+      (closes: #218065) [CH]
+  * Modified patches:
+    - config-switches.diff: add new --with-system-* flags [RE]
+  * Removed patches:
+    - berkelydb-handle-no-solar-java: merged into system-db [RE]
+    - gui-ft-dynlink-system, freetype_2_1_7: merged into system-freetype [RE]
+  * debian/rules:
+    - Fix uudecode/encoding of OpenSymbol font [CH]
+    - select DebianWoody patchset for builds on woody [CH]
+    - --with-system-db --with-system-nas --with-system-freetype (except on
+      woody), --with-system-sane, --with-system-curl, --with-system-myspell,
+      --with-system-altlinuxhyph
+    - generate a list in openoffice.org-bin which contains used libs which
+      then can used from oooprelink [RE]
+    - on Sparc, use sparc-linux-{gcc,g++} to force 32bit compile/link, instead
+      of ARCH_PREFIX variable [CH]
+    - don't change the location of OpenSymbol in the openoffice.org Woody
+      backport, since we only ship openoffice.org-bin [CH]
+  * debian/control.in:
+    - Remove Recommends: x-ttcidfont-conf since Debian fontconfig has defoma
+      support now (thanks to Ozgur Murat Homurlu) [CH]
+    - add Suggests: www-browser, libxrender1, msttcorefonts [RE, CH]
+    - Build-Depends:
+      + add xlibs-pic (>= 4.2.1-6) | xlibs-static-pic | g++-3.0 [!powerpc] [RE]
+      + add libdb3++-dev [RE]
+      + add libaudio-dev | nas-dev [RE]
+      + add xlibs-dev | libx11-dev, xlibs-dev | libsm-dev, xlibs-dev |
+        libxt-dev, xlibs-dev | libxext-dev, xlibs-dev | libice-dev
+        for not requiring xlibs-dev when it is only a metapackage
+        (as in X > 4.3.0-0pre1v5) and the splitted packages only are
+        installed [RE]
+      + add libsane-dev [RE]
+      + add libcurl2-dev | libcurl-dev [RE]
+      + add libmyspell-dev (>= 1:3.1-1) [RE]
+      + add libaltlinuxhyph-dev - add libhnj-dev to Build-Conflicts: [RE]
+    - fix langpack descriptions to not tell that help is included
+      in them [RE]
+  * debian/scripts/*:
+    - add gen_lib_list [RE]
+  * debian/MANIFEST.*:
+    - remove curl and db pieces [RE]
+  * debian/openoffice.org*.install:
+    - remove curl and db pieces [RE]
+  * debian/openoffice.org-bin.config:
+    - ask prelink question only if prelink is installed, thanks nobse [RE]
+  * debian/openoffice.org-bin.templates.master:
+    - remove unnecessary question from template (closes: #223304) [RE]
+  * debian/po:
+    - add it.po, thanks Andrea Tasso (closes: #226640) [RE]
+  * ooo-build/patches/OOO_1_1_0/apply:
+    - add a second patchset, DebianWoody [CH, RE]
+  * debian/README:
+    - Remove comment about -PPn failing with Perl 5.8 - it was fixed by
+      Dan's parallel-build-fix.patch [CH]
+
+ -- Rene Engelhard <rene@debian.org>  Tue, 13 Jan 2004 18:41:53 +0100
+
+openoffice.org (1.1.0-3) unstable; urgency=low
+
+  * New patches:
+    + solar-use-fork: use fork in tools/source/solar/solar.c to make it build
+      with 2.5/2.6 kernels, thanks Ken Foskey (IZ #17241) [RE]
+    + datasources_types_add_mysql: add missing MySQL entries in datasource
+      dialog (closes: #218036), thanks Josep MonÃ©s i Teixador for the
+      patch [RE]
+    + i18n-search-all: Fall back to any lanugage pack instead of crashing
+      if no -en or -de installed (closes: #171623) [CH]
+    + ooo111-general-io-error-sxi: fix a General I/O Error when saving in ooo
+      formats (closes: #208687), extracted from cws_srx645_softdist01
+      (IZ#19381, thanks Eike Rathke for the pointer) [MK]
+    + gnome-desktop-force: Introduce a new envvar, OOO_FORCE_DESKTOP that
+      can be set to 'gnome', 'kde' or 'none' to override OOo's desktop
+      detection [MM, PL, CH]
+    + gui-scale-ruler.diff: Reduce the font size of the toolbar font slightly
+      so the ruler is not so cluttered [MM]
+    + freetype-2_1_7-include.diff: fix includes for freetype 2.1.7 [RE]
+  * Modified patches:
+    + setup-in-bind-mount: Use official fix from IZ#20459 using
+      realpath(); also return non-zero exit code on failure. [CH]
+    + layout-vcl-window: Fix reverse size calculation [CH]
+    + gui-font-scale: Window::ImplPointToLogic has a reverse
+      (ImplLogicToPoint) which was not modified, fixed. [CH]
+    + gui-font-default-size: Reduce the default menu font size back again
+      (closes: #218585) [CH]
+    + gui-fonts-kde: [CH]
+      - Respect the 'use system UI fonts' setting instead of always
+        assuming the user wants it.
+      - Check KDEDIR and KDEHOME for settings, thanks to Nikita V.
+        Youshchenko (closes: #218914)
+      - Add gui-scale-ruler hack here too
+    + solenv-set-solar-java-only-if-unset: Java hadn't been disabled on
+      sparc builds. [CH]
+  * Use Ximian icons version 1.1-6 and update MANIFESTs [CH]
+  * debian/rules:
+    - Merge -gnome back into main packages and exclude msgbox-gnome
+      and getstyle-gnome from shared lib dependency generation [CH].
+      This closes: #207647 because the package doesn't exist anymore...
+    - Don't set C++ compiler on Woody to 'ccache ccache g++' and
+      simplify ccache logic [CH]
+    - Add lang=<isocode> option to DEB_BUILD_OPTIONS.  With this
+      set, resources for only the given language will be generated
+      and the build will be faster [CH]
+    - if we are building under a user 'buildd' build only resources for
+      en [RE]
+    - Remove openoffice/program directory from dh_shlibdeps
+      invocation - now there are more warnings again but ldd does
+      not crash sometimes when used with fakeroot [CH]
+    - Replace diff usage of obsolete -0 flag with -U0 [CH]
+    - Don't enable debug symbols with gcc-3.0 (Woody backport),
+      because gcc-3.0 -g1 generates huge debug info [CH]
+    - Change $(TOOLS_DIR) to $(OOO_BUILD) [CH]
+    - Use Ximian's enhanced OpenSymbol font with extra glyphs [CH]
+    - Move sed operation on instdb.ins to disable desktop integration files
+      copy into install-arch target.  This was the cause of error messages
+      about failure to copy files into ~/.gnome and ~/.kde. [CH]
+    - Split 'solver' target into two passes.  'solver' only builds BUILDLANG;
+      'solver.langpacks' builds all languages.  This speeds up the development
+      cycle and binary-only autobuilds. [CH]
+    - Add a couple of package development helper targets:  [CH]
+      + upstreamclean: restore source tree back to a known state.  removes all
+      sources (except debian and ooo-build) and unpacks the .orig.tar again
+      + cvsupdate: updates debian and ooo-build from latest CVS
+  * debian/control*:
+    - Build-Depends:
+      - libfontconfig1-dev | g++-3.0 to build without fontconfig on
+        Woody [CH]
+      - add missing libfreetype6-dev | g++-3.0 [RE]
+      - xsltproc version in Woody is too old and fails, so
+        require version >= 1.0.30 [CH]
+    - Tighten openoffice.org, openoffice.org-bin dependencies to
+      force -1 with the java libs off the system (closes: #218928) [CH]
+    - openoffice.org and -bin Replaces: openoffice.org-gnome [CH]
+    - openoffice.org Suggests: openoffice.org-gnome removed [CH]
+    - improve and actualize package descriptions [RE]
+    - move -mimelnk to Section: kde [RE]
+  * debian/MANIFEST.powerpc:
+    - Remove python-core so powerpc doesn't have to be built with
+      IGNORE_MANIFEST_CHANGES=1 [CH]
+  * debian/openoffice.org.install:
+    - include gallery/htmltheme to fix impress html export button styles [MK]
+  * Build and package our own internal version of libfreetype.
+    Depends: libfreetype (<< 2.1.0) can now be removed and OOo
+    is compatible with other backports that need a newer
+    libfreetype (X 4.3, Gnome 2 etc.) [CH]
+
+ -- Chris Halls <halls@debian.org>  Tue, 18 Nov 2003 16:27:27 +0100
+
+openoffice.org (1.1.0-2) unstable; urgency=low
+
+  * The "Wohoo-we-are-going-to-main" release.
+    Many thanks to Josh Triplett (JT)..
+
+  * Build without a JDK. (closes: #211288) [JT]
+  * Added patches:
+    - system-zlib: use system zlib (based on Mandrake's) [RE]
+    - system-getopt: use the getopt from system's glibc
+      (from Mandrake) [RE]
+    - allow-no-jdk.diff [JT]:  If java is disabled with --disable-java,
+      don't look for a JDK, but do look for xsltproc, and set XSLTPROC
+      in set_soenv.
+    - solenv-set-solar-java-only-if-unset.diff [JT]:  Set the
+      SOLAR_JAVA variable conditionally with "*=".
+    - readlicense-oo-xsltproc.diff [JT]:  Use xsltproc to replace
+      java for xml transforms in readlicense_oo.
+    - officecfg-xsltproc.diff [JT]:  Use xsltproc to replace java
+      for xml transforms in officecfg.
+    - berkeleydb-handle-no-solar-java.diff [JT]:  If SOLAR_JAVA is
+      not set, don't pass --enable-java to the configure script, and
+      don't expect the jar when finished.
+    - ridljar-handle-no-solar-java.diff [JT]:  If SOLAR_JAVA is not
+      set, don't attempt to zip up the compiled java files, since they
+      will not be built.
+    - jurt-handle-no-solar-java.diff [JT]:  Don't build jpipe with
+      SOLAR_JAVA not set.
+    - jvmaccess-handle-no-solar-java.diff [JT]:  Don't build jvmaccess
+      with SOLAR_JAVA not set.
+    - jni-uno-handle-no-solar-java.diff [JT]:  Don't build jni_uno
+      with SOLAR_JAVA not set.
+    - javaunohelper-handle-no-solar-java.diff [JT]:  Don't build
+      javaunohelper with SOLAR_JAVA not set
+    - psprint-handle-no-solar-java.diff [JT, RE]:  Don't use jvmaccess
+      to get JDK font path with SOLAR_JAVA not set.
+    - sj2-handle-no-solar-java.diff [JT]:  When SOLAR_JAVA is not set,
+      replace java applet support with stubs that throw an exception.
+    - setup2-handle-no-solar-java.diff [JT]:  Don't build jvmsetup
+      or use jvmaccess for java-related setup with SOLAR_JAVA not set.
+    - scp-handle-no-solar-java.diff [JT]:  Don't ship various
+      java-related files that will no longer be built, but ship the
+      stubbed out libj from sj2 because setup fails without it.
+    - svg-handle-no-solar-java.diff [JT]:  Disable SVG import support
+      with SOLAR_JAVA not set, since it depends on compile-time and
+      run-time java support.
+    - xsltvalidate-handle-no-solar-java.diff [JT]:  Disable java
+      components with SOLAR_JAVA not set.
+    - xsltfilter-handle-no-solar-java.diff [JT]:  Disable java
+      components with SOLAR_JAVA not set.
+    - desktop-handle-no-solar-java.diff [JT]:  Don't build javaldx
+      with SOLAR_JAVA not set, and check for javaldx in soffice.sh
+      before using it.
+    - gui-fonts-kde: Get KDE font weight and size, and use menuFont
+      for menus [CH]
+    - gui-font-default-size: Make internal default font size 12pt instead
+      of 8pt (closes:#207957) [CH]
+  * Modified patches:
+    - print-fontconfig / padmin-nofontconfig: make conditional
+    - config.switches.diff: add --enable-fontconfig, --with-system-zlib;
+      check whether we have a system dmake and don't build dmake if we have
+  * debian/MANIFEST.*:
+    - remove java files [JT]
+  * debian/openoffice.org.install:
+    - remove java files [JT]
+  * debian/openoffice.org-bin.install:
+    - Add wildcard suffix for Sparc libraries [CH]
+    - remove java files [JT]
+  * debian/openoffice.org-bin.config:
+    - fix to make dpkg-reconfigure actually affect anything... [RE]
+  * debian/README:
+    - update documentation to reflect that OpenOffice.org no longer requires
+      a JDK to build, but can optionally be built with one. [JT]
+    - remove instructions about prebuilt mozilla files needed because we
+      now build without on those platforms [CH]
+    - remove obsolete information old patch system [CH]
+    - remove documentation for downloadpatch and rsyncpatch targets [JT]
+  * debian/rules:
+    - ignore python-core for the MANIFEST check [RE]
+    - Fix Gnome desktop Exec= line, thanks to MK for spotting the problem
+      (closes: #214673) [CH]
+    - conditionalize java support based on finding jdkhome in
+      DEB_BUILD_OPTIONS [JT]:
+      - Add appropriate configure flag (--disable-java or
+        --with-jdk-home=$(JDK_HOME)) to CONFIGURE_FLAGS [JT]
+      - set and export IGNORE_MANIFEST_CHANGES when building with a JDK [JT]
+      - prefix BUILDCMD with classpath when building with a JDK [JT]
+      - check for a valid JDK and the necessary java jars when building with
+        a JDK [JT]
+      - remove --with-jdk-home=$(JDK_HOME) from configure invocation in favor
+        of CONFIGURE_FLAGS [JT]
+      - move installation of files only built with a JDK into debian/rules
+        surrounded by a conditional [JT]
+    - removed (commented out) distcc section; you can use CCACHE_PREFIX or
+      distcc's masquerading instead without needing special support [CH]
+    - reorganise the build targets that are run before configure so backups
+      are only made once, and it is possible to repatch without converting
+      all the icons again [CH]
+    - removed obsolete dbs targets from stampdir_targets [JT]
+    - removed downloadpatch and rsyncpatch targets, which depend on obsolete
+      debian/patches directory [JT]
+    - install ooo-build changelog as changelog.ooo-build.gz instead
+      of changelog.Ximian+Debian.gz [RE]
+    - use oo-xvfb-run instead of xvfb-run for woody compatibility and
+      call it with -a... [RE]
+    - --enable-fontconfig when building on sarge/sid.
+      Install OpenSymbol font into the right place conditionally [RE]
+    - --with-system-zlib [RE]
+    - when we are building on an user "buildd" (as used on the buildds)
+      enable deloutput automatically [RE]
+    - use system dmake [RE]
+  * debian/scripts/detect_java.sh:
+    - removed [JT]
+  * debian/setperms:
+    - remove chmod of scripts/detect_java.sh [JT]
+    - remove chmod of obsolete dbs packaging scripts [JT]
+  * debian/control*:
+    - Build-Depends:
+      - add zlib1g-dev [RE]
+      - remove j2sdk1.3 and lib*-java [JT]
+      - add xsltproc [JT]
+      - add dmake [RE]
+      - lower autoconf builddep to just autoconf [RE]
+    - Bump virtual l10n package to 1.1.0.final; openoffice.org conflicts
+      with l10n-1.1.0 to force versions without the Ximian icons off the
+      system.  (closes: #214703: all icons have magenta background) [CH]
+    - Move from contrib to main [JT]
+    - remove Recommends: openoffice.org from -crashrep since it depends:
+      on openoffice.org anyway ;) [RE]
+  * Use Ximian icons version 1.1-4 [CH]
+  * Removed obsolete dbs packaging scripts [JT, RE]:
+    - debian/doogie-build-system
+    - debian/scripts/fix.source.patch
+    - debian/scripts/getglibcversion
+    - debian/scripts/lib
+    - debian/scripts/patch.apply
+    - debian/scripts/patch.unapply
+    - debian/scripts/source.patch
+    - debian/scripts/source.unpack
+    - debian/scripts/unfix.source.patch
+    - debian/scripts/messages
+
+ -- Chris Halls <halls@debian.org>  Thu, 23 Oct 2003 17:39:44 +0200
+
+openoffice.org (1.1.0-1) unstable; urgency=low
+
+  * New upstream version: 1.1.0 [CH, RE]
+  * package now builds on powerpc; issue a warning is a file is found
+    which could lead to ppc builds fail (closes: #206238) [RE], thanks
+    Kevin Hendricks for pointing the problem out.
+  * more Ximian merge:
+    + print-fontconfig [MM], padmin-nofontconfig [CH]: use fontconfig for font
+      configuration.  Remove font dialog from padmin.
+    + add Ximian iconset (except the intro and about icons..) [RE, MK]
+      added patches:
+      + gui-icon-composite: Compositing fixes for alpha bg's
+      + gui-tbx-ctrl-bg
+      + gui-tbx-new-size
+      + gui-new-icons: fix 'new' button sizing IZ#15208
+    + glyph-cache-speedup [MM]: cache last glyph IZ#15237
+    + print-dialog [MM]: dialog remembers save path & type correctly IZ#17967
+    + print-error [MM]: Warn the user about printer errors IZ#17966
+    + gui-ft-pt-not-pixel, gui-ft-use-system-font [MM]: Fix some font sync
+      settings brokeness IZ#15507,#16683
+    + capitalization [MM]: Turn off auto caps in impress
+  * Updated patches:
+    + obsolete parts of doc-defaults.diff removed in favour of being
+      configurable through app-compatible.diff (closes: #212157) [MM]
+  * New patches:
+    + gui-menu-new-wizard-translation [MK]: Translate File->New, ->Wizard
+      menus when using langpacks (closes: #180973)
+    + use-unzip-not-jar [RE]: use unzip for unpacking in dictionaries,
+      not jar xf...
+    + debian-splash [RE]: use a "Debian splashscreen" and modify about
+      information accordingly..
+    + setup-in-bind-mount [CH]:  Work around 'absolute programpath cannot be
+      found.' error when running setup	in a bind mount	IZ#20459
+    + build-sparc-boost [CH]: fix atomic dec/inc for Sparc IZ#15502
+  * debian/rules:
+    + fix typos, makes mozilla autodisable actually work, thanks
+      Jerome Warnier [RE]
+    + move installing of the mozilla files into debian/rules surrounded
+      by a conditional... [RE]
+    + add pieces to uudecode the Ximian icons and to restore the old ones
+      after the build.. [MK, RE]
+    + make apply.pl executable in patch.unapply too... (closes: #213309) [MK]
+    + put splashscreen modified for Debian as uuencoded xcf in -- uudecode it
+      and convert it to bmp during build (thanks Alexander Wirt for his
+      xcftobmp) [RE]
+    + split install target into install-arch and install-indep parts [CH]
+  * debian/openoffice.org{,-bin}.install:
+    + remove mozilla files [RE]
+    + install usr/lib/openoffice/share/gallery/htmlexpo/*.png [MK]
+    + move OpenSymbol font to fontconfig managed directory 
+      /usr/share/fonts/truetype/openoffice [CH]
+  * debian/control.in:
+    + Build-Depends:
+      - allow libpng2-dev, too - thanks again nobse (closes: #207774) [RE]
+      - add imagemagick for the icon stuff [MK]
+      - add xutils [RE]
+      - add binutils (>= 2.14.90.0.6-3) for sparc because ld crashes
+        on earlier versions (see bug#205548) [CH]
+      - add libfontconfig1-dev  for new fontconfig support [CH]
+      - add libc6 (>= 2.3.2-1) for powerpc [RE]
+      - remove bzip2, not needed anymore [RE]
+      - add gimp-perl | gimp1.2-perl for converting the splash screen [RE]
+      - readd xvb, xbase-clients and xfonts-base [RE]
+    + remove libc6 (<< 2.2.5-13) from Build-Conflicts: [RE]
+    + openoffice.org-mimelnk: only suggest openoffice.org (closes: #211398) [RE]
+    + fix Architecture: of -crashrep and -gnome [RE]
+    + Tighten inter-package version dependencies to >> 1.1.0 [CH]
+  * debian/po:
+    + add japanese debconf template translation, thanks Kenshi Muto
+      (closes: #207714) [RE]
+    + add french debconf template translation, thanks Michel Grentzinger
+      (closes: #208841) [RE]
+    + add brazilian portugese debconf template translation, thanks
+      Andre Luis Lopes (closes: #210831) [RE]
+  * debian/scripts:
+    + add xcftobmp [RE]
+  * debian/scripts/vars{,.*}:
+    + add OOO_ICONS_VER variable [MK]
+    + Use patchset OOO_1_1_0 [CH]
+    + Add ARCH_PREFIX for build commands to be run using 'sparc32' on
+      sparc [CH]
+    + disable mozilla for all archs !i386 [CH, RE]
+  * debian/setperms:
+    + add xcftobmp [RE]
+
+ -- Chris Halls <halls@debian.org>  Thu,  2 Oct 2003 20:04:15 +0200
+
+openoffice.org (1.0.99+1.1rc3-1) unstable; urgency=low
+
+  * New upstream version
+    + Printing of 3D objects finally works! we now use libart,
+      thanks to code contributed by Ximian
+  * Join forces with Ximian.  Patches are selectively picked from a shared
+    pool; they are not all completely integrated yet.
+  * Thanks to Martin Kretzschmar (MK) for several updates to the packaging
+    and Michael Meeks (MM) of Ximian for new patches
+  * Patches updated and transferred:
+    + 023_without_fonts -> system-vera-fonts, now complete [MK, CH]
+    + 033_scpzip_dontpackswitch -> build-lang-no-pack, now no
+      files are copied needlessly [MM]
+  * Patches resynced and transferred:
+    + 022_config_switches -> config-switches [MK,CH]
+    + 024_system_python -> system-python [MK]
+    + 902_remove_rpaths -> icu-no-rpath [MK,CH]
+    + 032_select_instsets -> build-instsetoo-langext [CH]
+  * Patches transfered without changes: [CH]
+    + 002_dmake_tempnam -> dmake-tempnam
+    + 011_stlportlink -> stlport-dynamic-link
+    + 021_SAL_DEBUG -> debug-ooo
+    + 022_config_switches -> config-switches
+    + 025_aclocal_update -> config_aclocal
+    + 041_sv_HTML_typo -> spell-sv-HTML
+    + 901_disable_langcheck -> setup-no-langcheck
+    + 905_remove_lzwc -> disable-lzwc
+  * Patches removed - integrated upstream:
+    + 023_jdk_kaffe [CH]
+    + 040_newlangs
+  * Patch removed, out of sync with upstream: [CH]
+    + 906_set_gnome_menu_right
+  * Start the assimilation of Ximian's [MM] patches.  You can find the list in
+    ooo-build/patches/OOO_1_1_RC3/apply.  More to come later:
+    + noopt-debug: Use -O0 for build debug=true IZ#17181
+    + deliver-compare: Don't touch a header unless changed IZ#8817
+    + build-optimized-link
+    + stlport-defeat-include: Remove -DBUILD IZ#12782
+    + thread-yield: Drop sched_yields, good for 2.6 kernel IZ#9277
+    + gui-sw-insert-symbol: Start with symbol font in 'Insert symbol' IZ#15512
+    + list-box-click: Make clickable on right of text IZ#17182
+    + gui-sc-paste: Bring up the import text dialog in calc when pasting
+      several lines of text from another app. IZ#15509
+    + gui-sc-cursor: Highlight current cell with two lines
+    + unzip-cleanup: Don't export extra symbols IZ#17841
+    + doc-defaults: Fix office 97 filter flags
+    + debug-appinit: Better error message if initialisation fails IZ#8581
+    + bmp32: Add support for 32 bit bitmaps & icons
+    + icon-render: Speedup icon rendering [don't alloc the whole strip size]
+    + gui-insensitive: Make insensitive icons look pleasent
+    + gui-tbxcust: high quality interpolate for tbx button selector
+    + gui-toolbox, gui-toolbox-tristate, gui-toolbox-prelight:
+      . make the toolbox separators look saner, mouseover triangles
+      . resize & make set large icons as the default.
+      . Make tri-states look un-pressed - don't confuse the clients
+      . Don't draw uber-ugly prelight mess
+    + gui-font-scale, gui-font-antialias-size: Use Xft dpi font scaling IZ#15507
+    + gui-font-size-unbreak: don't fix font sizes IZ#16682
+    + help-fallback-en: Fall back to English help if no native help
+      (closes: #206578)
+    + gui-ft-dynlink-system, gui-ft-21-compat: Use system libfreetype
+    + gui-ft-set-hint: Use the hinting parameters that we use on the rest of
+      the desktop
+    + gui-keybindings:
+    + gui-startup-declutter: Don't ask for registration first time
+    + gui-autocomplete: Basic file completion in file dialog
+    + gui-appear: Always open a new window when asked instead of opening an
+      old one
+    + inst-destdir: Initial support for DESTDIR variable in setup IZ#12781
+    + word-count: Add word count menu item to Tools menu
+    + gui-toolbox-cleanup: Hide the URI box in the toolbar
+    + gui-sc-delete: Fix delete key in calc IZ#17965
+    + gui-metric-fonts: Improve default font selections
+    + i18n-use-lang, i18n-use-locale, i18n-cleanup: Use LANG to determine
+      locale
+    + app-compatible: When COMPATIBLE is set, export to MS formats by default
+    + sd-export-html-descr, sd-export-html-theme, sd-export-html: Save to web
+    in PNG instead of broken GIFs (closes:#181764)
+    + config-disable-mozilla: Add configure switch to disable mozilla (still
+      enabled in the packages)
+    + gtk-themeing: ensure gtk styles
+    + gui-beep-less: Don't continually beep annoyingly ... IZ#18440
+    + crash-bindings: Fix nasty bindings related crasher X#45971, IZ#18773
+  * Patches added
+    + compile-msgbox-gnome: compile module instead of using precompiled binary
+     [RE]
+    + sw-export-bg-style: 'no color' background style was not exported to .doc
+      format. IZ#18671 [CH]
+    + zoom-combobox: Select zoom level in menubar (not yet complete) [MK]
+  * Build using gcc 3.3 [CH]
+  * Drop the usage of dbs.  We're now using tarballs in the same format as
+    upstream (except the orig.tar.gz has the patented LZW code removed and some
+    binary tarballs).  Patches are now shared and can be found in the Gnome
+    CVS, module openoffice. [CH]
+  * rules:
+    + change build.pl options to work with rc3 [MK, CH]
+    + use setup -nogui instead of a fake X server [MK]
+    + build no longer needs xvfb [MK]
+    + clean target doesn't delete the whole tree anymore [CH]
+    + patch.apply and patch.unapply call Ximian's script now [MK,CH]
+    + --enable-symbols=SMALL for tracing crash dumps
+    + new target: get-ooo-build to retrieve ooo-build using anonCVS
+    + --enable-mozilla to use mozilla libs if MOZILLA!=n [CH]
+    + disable MOZILLA integration and MANIFEST check for Woody
+      backport [CH]
+  * scripts/vars:
+    + Add TOOLS_DIR for Ximian directory
+    + Add PATCH_DIR to point to correct 'apply' for this version
+    + Move VER from rules
+    + Remove old dbs vars
+    + vars.sparc: Add MOZILLA=n to disable mozilla
+  * control.in:
+    + Build-Depend on autoconf (>= 2.54), thanks nobse (closes: #206711)
+    + add libart-2.0-dev (>= 2.3.13) to Build-Depends [MK]
+    + remove xvfb, xbase-clients, xfonts-base [CH]
+    + Tighten g++ build dependency to g++ 3.3.1 on unstable [CH]
+    + add missing suggests to prelink [RE]
+    + add Suggests: to openoffice.org-hyphenation and
+      openoffice.org-thesaurus [RE]
+    + fix typo in openoffice.org description (closes: #206322) [RE]
+    + add missing conflicts: against "old-style"
+      openoffice.org-spellcheck-fr-fr [RE]
+    + mention openoffice.org-{hyphenation,thesaurus,gnome,mimlnk} in
+      openoffice.org's description [RE]
+    + tighten dependency on openoffice.org-debian-files to 1.1rc-3, which
+      fixes several bugs [CH]
+    + precompiled mozilla libs use libstdc++5 so drop libstdc++3 build
+      dependency (closes: #178820) [CH]
+  * openoffice.org.install:
+    + install wildcard *.bmp from share/config/symbol [CH]
+  * openoffice.org-bin.templates.master:
+    + make prelink question more verbose (closes: #206009) [RE]
+  * Add licenses for third-party licenses in THIRDPARTYLICENSEREADME.html to
+    copyright [CH]
+  * openoffice.org-help-en: not included any more, split out to extra
+    source package [RE]
+  * compile msgbox-gnome and getstyle-gnome on all archs to make
+    them not being 0-byte files there [RE, MM]
+  * Woody backport: disable Mozilla and ignore MANIFEST changes.  Thanks to
+    Jerome Warnier for his build reports [CH]
+  * Add MANIFEST.sparc [CH]
+
+ -- Chris Halls <halls@debian.org>  Thu, 28 Aug 2003 15:33:52 +0200
+
+openoffice.org (1.0.99+1.1rc-1) unstable; urgency=low
+
+  * The openoffice.org1.1 packages are now openoffice.org, back in unstable
+  * New upstream release 1.1rc
+    - Support for upgrade of previous version user data (closes: #189323)
+    - PickListSize increased to 9 (closes: #171417)
+    - jvmsetup recognizes JVM (closes: #198484)
+    - builds with gcc 3.2.3 (closes: #195359)
+    - mailer profiles added (closes: #170699)
+    - loading of ODBC library fixed (closes: #179233)
+    - user soffice link is absolute not relative (closes: #198785)
+    - Smoother mouse scolling (closes: #183095)
+    - Support for controlling autohinting using environment vars
+      (closes: #189088)
+  * Patches removed - integrated upstream: [CH]
+    - 020_gpc_optional
+    - 035_deliver_linkopt
+    - 036_setup2_nofail_installed
+    - 037_parallel_IZ14307
+    - 038_acc_idl_parallel
+    - 039_uname_error
+    - 904_libodbc_soname
+  * Patches resynced: [CH]
+    + 021_SAL_DEBUG
+    + 032_select_instsets
+    + 040_newlangs
+  * New patches: [CH]
+    + 041_sv_HTML_typo: correct typo in Options->HTML compatibility
+      for sv (closes:#199960) IZ#16437
+    + 002_dmake_tempnam: Fix tempfile vulnerability in dmake. IZ#7800
+    + 022_config_switches: Add --disable-rpath option
+    + 025_aclocal_update: regenerate aclocal.m4 after configure.in changes
+    + 901_disable_langcheck: Disable lanuage test in setup upgrade
+    + 902_remove_rpaths: Remove rpaths in vcl & icu makefiles
+  * New patches which are work in progress and not yet ready to be used by the
+    package build system: [CH]
+    + (part of 022_config_switches): add --without-fonts and --with-python flags
+    + 023_jdk_kaffe: Accept Kaffe as a known JDK.  Officecfg can be built
+      using Kaffe now, but the rest of the build will fail.  Thanks to Jarno
+      Elonen. IZ#16252
+    + 024_system_python: Use the installed Python instead of the one in the
+      OOo tarball to build pyuno
+  * New binary packages: [RE]
+    + openoffice.org-crashrep: OpenOffice.org crash reporting tool
+    + openoffice.org-gnome: GNOME desktop integration
+  * debian/rules: [CH]
+    + For Woody backport: add xalan2.jar to classpath
+    + add program directory to dh_shlibdeps search path; removes some
+      harmless warnings
+    + Fix HTML and From Template desktop icons (closes: #201505)
+  * debian/control.in:
+    + openoffice.org-mimelnk Conflicts: openoffice.org (<< 1.0.3-3) [CH]
+    + Correct typo in ttf-bitstream-vera, thanks Eloy (closes: #203638) [CH]
+    + Change dependencies for 1.0.99+1.1rc [CH, RE]
+    + Update debian-openoffice URL [CH, RE]
+    + Remove build-deps: libstlport4.5-full, libfreetype6-dev, g++ (you'll
+      need 3.2 or 3.0).  These will go back in in the next revision or so but
+      we're leaving them out for this revision because there are some problems
+      not yet fully worked out. [CH]
+    + Add Conflicts from 1.0.x packages, and oooqs-kde (<= 1.0rc3-2) [CH]
+    + fix suggestion of KDE quickstarter [RE]
+    + Provide/Conflict/Replace Knoppix openoffice-de-en packages
+      (closes: #203289) [RE]
+  * Introduce new concept for langpack dependencies.  Langpacks should now
+    provide openoffice.org-l10n-<version>, which openoffice.org uses to
+    Depends: on any langpack that provides it, and Conflicts with older
+    incompatible versions to force them off the system on upgrade. [CH, RE]
+    + oo.o Depends: openoffice.org-l10n-en | openoffice.org-l10n-1.1.0, and
+      langpacks Provide openoffice.org-l10n-1.1.0.
+    + openoffice.org Conflicts: openffice.org-l10n, which was provided by
+      pre-1.1 langpacks
+  * Add Sparc to architecture list.  This probably won't work yet: [CH]
+    + debian/control.in: Add sparc to architectures for -bin package
+    + scripts/vars.sparc: Set variables for Sparc
+  * MANIFESTs updated for 1.1rc
+  * debian/local/openoffice-dpack-lang:
+    + Exclude crash_dump.res because the filename isn't properly localised
+    [CH]
+  * Move files under <ooo-root>/user from openoffice.org-l10n-en to
+    openoffice.org to prevent setup file copy errors when -en langpack
+    is not installed (closes: #150714) [CH]
+  * let all -l10n-* foo Suggest: -l10n-hyphenation, -l10n-spellcheck
+    and -l10n-thesaurus. Add Provides to openoffice.org for the
+    hyphenations and the english thesaurus openoffice.org already
+    provides. [RE]
+  * compile with -O1 on all architectures until glibc 2.3.2
+    enters sid; this should solve the "relocation errors"
+    problem; please reopen if not... (closes: #191989) [RE]
+  * Move Gnome desktop files to /usr/share/applications, thanks to
+    Jerome Warnier for the discussion at debcamp. [CH]
+  * Back to using system libfreetype, now supported directly by upstream [CH]
+  * add question whether we should prelink [RE]
+  * one more long description fix to not let lines -zh-* and pt-br
+    descriptions be too long.. [RE]
+  * move -help-en to contrib/doc.
+
+ -- Chris Halls <halls@debian.org>  Tue,  5 Aug 2003 15:35:25 +0200
+
+openoffice.org1.1 (1.1beta2-2) experimental; urgency=low
+
+  * Upload to experimental :)
+  * New langpacks: Catalan, Brazillian Portuguese, Slovak, Finnish
+    (closes: #170924)
+  * Pull Post-beta2 Updates from beta2 CVS branch
+    + plain text import fixed (closes: #182452)
+    + Gcc 3.3 and flex compilation fixes (closes: #188877)
+    + Add ro_RO Romainian locale
+    + Add missing Czech translations
+    + Add Catalan, Slovak to default lanaguage list
+    + Sparc bridge added
+    + Spellchecker improvements using ngram matching
+    + Support Bitstream Vera fonts for user interface
+  * Patches created from upstream fixes on other branches:
+    + 904_libodbc_soname: Fix loading of libodbc. IZ#14940
+    + 037_parallel_IZ14307: Fix SRS parallel build dependencies
+  * New patches:
+    + 038_acc_idl_parallel: Parallel build failure in accessibility
+    + 040_newlangs: Turn on pt-BR and fi language file generation
+  * Patches removed from patchset:
+    - 028_help_fallback_en: There is a new configuration mechanism now
+    - 039_uname_error: Fix "Try `uname --help' for more information" message
+      (thanks Eric Anderson, closes: #196039)
+    - 900_vcl_xinerama_externC: Fixed upstream
+  * KDE icons started OOo 1.0 instead of 1.1; fixed.
+  * Missing KDE group icon fixed
+  * s390 updates from Gerhard Tonn
+  * debian/control.in:
+    + Build-Depends: flex | flex-old
+    + OOo.org Suggests: oooqs-kde and ttf-bitstream-vera
+    + Remove gs from suggests (PDF support is now built in)
+  * debian/rules:
+    + Fix buildprj and builduntil targets
+    + Add suport to override the compiler version by setting GCCVER 
+    + downloadpatch/rsyncpatch targets will not touch the patches
+      if they are already applied
+    + Improve patchapply/patchunapply stampfile handling
+    + Copy icons from pt to pt-BR (not included in -2 langpack)
+
+ -- Chris Halls <halls@debian.org>  Wed,  4 Jun 2003 08:10:59 +0200
+
+openoffice.org1.1 (1.1beta2-1) experimental; urgency=low
+
+  * New upstream - official beta2 release
+
+ -- Chris Halls <halls@debian.org>  Mon, 19 May 2003 19:46:26 +0200
+
+openoffice.org1.1 (1.1beta1.prebeta2-1) experimental; urgency=low
+
+  * Initial packages for 1.1 branch, based on 1.0.3-2 packaging
+  * New upstream - 1.1 beta 2 CVS from 2003-05-13
+    + Native export to PDF, Flash and XHTML formats (closes: #176932)
+    + Macro recorder
+    + Improved import/export of Microsoft(R) Office formats
+    + Import/export of XML formats including DocBook
+    + CTL (Complex text layout) support
+    + Support for mobile device formats
+    + Improved clipboard support
+    + Font rendering support can be configured by environment variables
+    + Many, many bug fixes and usability improvements
+      - Save chart as... now works (closes: #181765)
+      - spellcheck treats em-dashes as word separators (closes: #174657)
+    + Czech language support
+    + Patches reworked for 1.1
+      - 020_remove_gpc - now optional and controlled by configure;
+        renamed to 020_gpc_optional.  IZ#10477
+    + Patches resynced
+      - 021_SAL_DEBUG
+      - 032_select_instsets
+      - 035_deliver_linkopt
+      - 033_scpzip_dontpackswitch
+    + New patches created from CVS
+      - 036_setup2_nofail_installed.diff 
+        (IZ#14404: setup -net fails if workstation install present)
+    + Patches removed - integrated upstream
+      - 029_libsane_soname
+      - 024_freetype_macros
+      - 030_officecfg_usejavavar
+      - 034_rename_inflate
+      - 500_remove_s390oe
+      - 904_libodbc_soname
+    + Patches no longer needed because of upstream changes
+      - 001_IZ13031_printfix
+      - 023_user_fontpath
+    + Patches temporarily removed until we have time to resync
+      - 501_s390_build
+      - 502_stlportlink
+      - 903_system_freetype
+  * Add Czech langpack - openoffice.org-l10n-cs
+  * Change /usr/lib/openoffice to /usr/lib/openoffice1.1 to allow
+    the packages to coexist until we replace 1.0.x
+  * Add links created by OOo setup app to MANIFEST file lists and
+    include in openoffice.org1.1.install
+  * setperms: add new script names.  chmod lines removed from rules.
+  * Build with internal stlport until a build error is fixed
+  * Some files that would otherwise conflict with the 1.0.x packages are
+    temporarily removed (Icons and KDE shortcuts).  Gnome files renamed.
+  * Add to build-depends: libcrimson-java, libxalan-java, libxalan2-java
+    (needed for JDK < 1.4)
+  * shorten some lines in long descriptions (Rene)
+  * split KDE mimelinks out to openoffice.org1.1-mimelink to avoid file
+    conflicts with koffice wanting to have them for OOo import; now
+    OOo and KOffice can use the ones of this package, thanks Ben
+    Burton for pointing that problem out (Rene)
+  * Fix permissions when unpacking source by adding detect_java.sh to setperms
+  * Add configimport utiltity to -bin for updating the OOo configuration from
+    the command line
+
+ -- Chris Halls <halls@debian.org>  Thu, 15 May 2003 20:20:08 +0200
+
+openoffice.org (1.0.3-2) unstable; urgency=low
+
+  * 001_IZ13031_printfix: Hotfix for bug in 1.0.3. OOo hangs
+    when printing to a non-default printer. (closes: #189283)
+  * add upstream patch fixing transex3 to compile with flex 2.5.31
+    (closes: #188877), thanks Ken
+  * Conflict against 1.0.2 langpacks to force them off the system
+    (closes: #189034)
+  * Link against dynamic libstlport on s390.  Patch 502_stlportlink
+    from Gerhard.
+
+ -- Chris Halls <halls@debian.org>  Wed, 16 Apr 2003 16:47:57 +0200
+
+openoffice.org (1.0.3-1) unstable; urgency=low
+
+  * new upstream version
+    + Bugfix release only
+    + closes: #178459 (IZ #11797):
+      "Crash in Options | Load/Save | HTML Compatibility with invalid locale"
+    + remove patches merged upstream:
+      - 031_define_fixes
+      - 033_fix_noproc_crash
+      - most of 036_parallel_build_fixes
+      - 907_gcc3.0_memmgr
+    + closes: #184725 "only opens 9 documents"
+    + Performance on 2.5 kernels should be better - many yield() calls
+      removed.
+    + closes: #182314 "crashes frequently when switching from online to
+      regular layout"
+    + closes: #148961 "Currency Format dropdown is confusing"
+  * If building on Woody, depend on libfreetype6 (=2.0.9-1) to prevent breakage
+    caused by upgrading libfreetype6 to testing or unstable.
+  * fixed the patch 906_set_gnome_menu_right.diff, its not in
+    sysui/unix/office/gnome, it is in sysui/oounix/office/gnome.
+    It puts all icons except those for Setup and PrinterAdmin into
+    Application/Office under GNOME2 (closes: #168719, #169281, #186820)
+  * debian/rules build script changes:
+    + add build-arch and build-indep targets
+    + rename 'buildall' target to 'solver'
+    + add new target builduntil-<prjname> to build a project including all its
+      prerequesites
+    + add new option to restart build from a given project directory with
+      DEB_BUILD_OPTIONS=startfrom=<project>
+
+ -- Chris Halls <halls@debian.org>  Thu, 10 Apr 2003 17:23:18 +0200
+
+openoffice.org (1.0.2-2) unstable; urgency=low
+
+  * Remove duplicate English templates/autocorrect/styles in other language packs
+    (closes: #155487, #171515, #177903. #177993, #179346)
+  * Re-enable system libfreetype, thanks to Gwenole Beauchesne for pointing us
+    to the problem.  New patch: 034_rename_inflate (closes: #179912)
+  * Make the package build without modification on Woody:
+    + Build-Depends: g++ (>=3.2.2) | g++-3.2 | g++-3.0 [!powerpc]
+    + Automatically detect whether to use gcc. gcc-3.2 or gcc-3.0 as compiler
+    + Make memmgr.cxx patch needed for gcc-3.0 conditional.
+      New patch: 907_gcc3.0_memmgr
+    + Remove libstdc++ from MANIFEST lists, since this is not used and the
+      filename is different on Woody
+  * Change Build-Depends: libstdc++3[!powerpc] to [i386]
+  * Add documentation of buildprj target in debian/rules
+  * fix typo in package description (closes: #179301)
+  * Modify build system not to generate complete installation sets for
+    foreign languages, reducing the space needed to build the packages by
+    about 1.5Gb.  New patch: 908_scpzip_dontpackswitch
+  * openoffice-dpack-lang: Generate langpacks directly from the solver instead
+    of unpacking from the installation sets.  Hardlink files where possible to
+    save space.
+  * Add support for 'instsetext' setting, which controls which installation
+    sets are created.  Binary-only builds no longer need to create extra
+    installation sets.  New patch: 032_select_instsets
+  * Patch 031_define_fixes is back, thanks to Gwenole Beauchesne for updating
+    to 1.0.2
+  * Patch 030_officecfg_userjavavar: Unhardcode Java compiler from 'java' to
+    $JAVA
+  * Check that /proc exists before starting the build.
+  * New patch 033_fix_noproc_crash: handle a NULL pointer which otherwise
+    crashes idlc when there is no /proc.
+  * Document the changed build targets in debian/README
+  * Reduce disk usage during build by ~0.5Gb by adding a -link option to
+    deliver.pl which links files in the solver instead of copying.
+    New patch: 035_deliver_linkopt
+  * Use system libstlport, but only if the gcc transition has taken place.
+    Enforced by Build-Depends: libstlport4.5-full(>= 4.5.3-9) | g++ (<< 3.2.2)
+  * Remove Build-Conflicts: libgcj[23]-dev.  This was fixed upstream in 1.0.2.
+  * The hook script has moved to /usr/share/openoffice.org-debian-files.
+    dependencies tightened for smooth upgrades
+  * Fix Gnome icon path (closes: #180132)
+  * Move hook script from /usr/lib to /usr/share
+  * Add some parallel build fixes.
+  * Add support to reduce the disk space needed with
+      DEB_BUILD_OPTIONS=delouput
+  * Bison 1.875a works - removed workaround and updated build dependencies
+    (closes: #177438)
+
+ -- Chris Halls <halls@debian.org>  Tue, 11 Feb 2003 20:54:51 +0100
+
+openoffice.org (1.0.2-1) unstable; urgency=low
+
+   * New upstream release:
+     # 6635: Fix for problem with OroborusX 0.8 window manager
+     # 5242: Calc not recalculating certain Excel imported shared formulas if they were moved.
+     # 6478: Nicaraguan currency symbol is C$ instead of $C
+     # 7284 #,##0, number format code displays wrong value
+     # 7230 enable ca_ES locale, correct es_ES locale data
+     # Calc: formulas containing the FORMULA() function need RecalcModeAlways
+     # Calc: Insert/Delete/Col/Row: restart RelName listeners on every sheet, not just the modified sheet
+     # 8026 import number format codes containing trailing General subformat correctly
+     # correct fi_FI Finnish date format codes 3738 add sl_SI Slovenian locale data
+     # 6844 add et_EE Estonian locale data
+     # 3552 spreadsheet functions STDEV, STDEVP, VAR, VARP, DEVSQ, DSTDEV,
+         DSTDEVP, DVAR, DVARP could give a #VALUE error if all values were
+         equal with roundoff errors
+     + Build/configure system patches incorporated upstream, special thanks to
+       Kevin Hendricks & Ken Foskey for all their efforts:
+        001_gcc_version_check, 003_enable_dmake_clean_patch,
+        010_use_libstdc++_from_debian, 012_set_compiler_vars,
+        013_use_compiler_vars, 014_lbnames_gcc_3.2, 015_dont_unset_home
+        025_compilerflags, 026_parallel_build,
+        029_stlport_stolen_from_OO642C.uu
+        030_stlport_gcc32_includes
+        032_stlport_linkage
+        033_nas_build_general_compiler-fix
+        036_parallel_build_fixes
+        037_parallel_build_ignore_deperrs
+     + Remove other patches now applied upstream:
+        027_unoil_com_sun_star_document-build_error_fix
+        028_fix_x_naming
+        030_WM_CLASS_property
+        034_IZ6635_catch_WIN_PROTOCOLS
+        035_CJKfontcrash_STABLE1_fix
+        150_ppc_bridge_fix
+     + Other patches updated for 1.0.2:
+        500_remove_s390oe, 501_s390_build: s390 update, thanks to Gerhard
+        020_remove_gpc: removed unused section
+     + Drop patch 031_define_fixes, because it no longer applies
+   * Revert back to internal freetype because of an internal problem in OOo
+     setup with 903_system_freetype applied. (closes: #176840, #176841)
+   * Building from unstable and without system freetype should get rid of
+     these bugs:
+       closes: #170044: All OO programs crash with "relocation error"
+       closes: #173678: OOo Impress file kills PPC version
+       closes: #175228: Long title crashes Impress on PowerPC
+  * move the special libc6 Build-Dependency to Build-Conflicts and
+    make it powerpc specific
+  * Now that gcc-3.2 is the default, build using gcc/g++, but leave support
+    for specific versions in GCC3VAR (closes: #177453)
+  * New patch: 029_libsane_soname to fix loading of libsane system library;
+    suggest libsane.
+  * Update package description and add description of the functionality
+    provided by Recommended/Suggested packages
+  * debian/rules: Don't use tcsh to call build
+  * Reverse order of parameters in hook script calls
+  * debian/control.in: Change libpam build dependency to
+    libpam0g-dev|libpam-dev to help autobuilders
+
+ -- Chris Halls <halls@debian.org>  Wed, 15 Jan 2003 17:35:07 +0100
+
+openoffice.org (1.0.1-7) unstable; urgency=low
+
+  * Patches from OOO_STABLE_1 branch:
+    + Fix crash with Oroborus: 034_IZ6635_catch_WIN_PROTOCOLS
+      (closes: #171556)
+    + Default CJK font selection crash: 035_CJKfontcrash_STABLE1_fix
+  * Include the patches for debian-S390 (thnx to Gerhard Tonn)
+  * dropped the libstdc++3 dependency (needs rebuilding of mozilla :) )
+  * Export CC in build targets (closes: #171254)
+  * Apply Gerhard's patch to Link stlport with $(CXX) (closes: #171238)
+  * fixed some lintian errors and beautify openoffice.org-l10n-*
+    descriptions
+  * Using freetype from Debian again - 903_system_freetype.diff.  This change
+    happened in -6 but was missing from the changelog.  Added
+    build-depdendency libfreetype6-dev.
+  * debian/rules: chmod a+x our scripts in build.prepare
+  * let openoffice.org-l10n-* and openoffice.org-bin Depend on openoffice.org
+    again
+  * Add langpack conflict with Woody -5 backport too (closes: #172992)
+  * Recommends: x-ttcidfont-conf, because we can now use all available defoma
+    fonts if this package is installed.
+  * Build against libfreetype from unstable (closes: #172448)
+  * Some patches for parallel building.  These are not complete; -Pn/-PPn is
+    not supported. 036_parallel_build_fixes, 037_parallel_build_ignore_deperrs
+  * debian/rules: add support for passing any parameters to build.pl using
+    DEB_BUILD_OPTIONS="build=-parm arg" syntax.
+
+ -- Chris Halls <halls@debian.org>  Mon, 16 Dec 2002 20:08:33 +0100
+
+openoffice.org (1.0.1-6) unstable; urgency=low
+
+  * Upload to unstable attempt #2
+  * fixed Dependencies (closes: #162240)
+  * changed Depends: from openoffice.org-l10n-* to openoffice.org
+    to Recommends: (closes: #165036)
+  * Remove -fno-rtti compiler flag for PPC
+  * In debian/rules use dpkg-architecture to set $ARCH.
+  * Set maintainer to debian-openoffice mailing list
+  * Clean up Build-Dependencies (closes: #162428)
+  * Revert back to internal libstlport until after the gcc transition.
+    (029_stlport_stolen_from_OO642C, 030_stlport_gcc32_includes)
+  * Fix window titles (030_WM_CLASS_property from Mandrake)
+  * Remove obsolete patches: 004_zipdep_not_found,
+    011_link_against_stlport_gcc_3.1)
+  * Revert back to compiling i386 with -mcpu=pentiumpro, since it will make
+    OOo run faster on the majority of machines (P5 generation is too
+    slow for OOo, but it will still work fine if someone really wants to run
+    it).
+  * Fix naming of X: s/XWindows/X Window/ (028_fix_x_naming)
+  * Remove diversion of bug submissions for subpackages to openoffice.org, now
+    that they are no longer unknown to the BTS.
+  * Clean up debian/rules a little
+  * Include regcomp binary
+  * Title of About box is translated now (closes: #162984)
+  * Work around dpkg warning 'i386-none not found in mapping table'
+  * Debian specific files (man pages, wrapper script, ...) split out
+    to separate source package (openoffice.org-debian-files)
+  * Add patch from Mandrake to fallback to English help if translated help is
+    not available, thanks to Gwenole Beauchesne.  028_help_fallback_en.diff
+    (closes: #156044)
+  * Fix problem in clean rule when using pbuilder, thanks to Nicolas Boos
+  * Add pre/post-install/rm hooks into openoffice.org-debian-files
+  * Improve detection of JDK path
+
+ -- Chris Halls <halls@debian.org>  Tue, 12 Nov 2002 07:38:14 +0100
+
+openoffice.org (1.0.1-5) unstable; urgency=low
+
+  * Upload to Debian (closes: #74715, #101762, #116878)
+  * Remove non-free LZW compression code: Save to html no longer works if
+    there are graphics in the document.
+  * Move English help to a separate package, openoffice.org-help-en.  There
+    is no translated help available with the source - this must be packaged
+    separately. (closes: #156044)
+  * Remove the English help that was duplicated in every language pack, and
+    Suggests: openoffice-help-<lang> | openoffice-help for each langpack.
+  * Move to gcc 3.2 for both architectures
+  * Use official libstlport packages (thanks Torsten Werner).  Always link
+    to the shared library, even in bootstrap and setup2.
+  * Fix mime commands, thanks Bastian Kleineidam
+  * README.Debian: add troubleshooting guide for crashes caused by fonts,
+    and an introduction with summary of the changes between these packages
+    and upstream
+  * Add upstream README to docs directory and update copyright
+  * Describe the build system in more detail in debian/README
+  * 026_parallel_build.diff - update build.pl from CVS to support -PP for
+    parallel module builds, and support -PPn in DEB_BUILD_OPTIONS
+  * Remove upstream's -mcpu=pentiumpro and enable RTTI
+  * Add another clean target (clean-objdirs)
+  * Add support for distcc - this is enabled if DISTCC_HOSTS is set
+  * Change ccache support to use CC/CXX variables instead of links
+  * Change archive section to 'unstable', now all prerequisites are in the
+    archive.
+  * Add Rene Engelhard to uploaders
+
+ -- Chris Halls <chris.halls@gmx.de>  Tue, 13 Aug 2002 15:23:13 +0200
+
+openoffice.org (1.0.1-4) experimental; urgency=low
+
+  * In README.Debian, document Xserver bug with Matrox and X Windows look &
+    feel (thanks Philip Armstrong).  Add more information about locales and
+    language packs, including the known issues.  Explain why fonts in writer
+    are not available if served by a font server.
+  * link /usr/bin/ooffice -> openoffice for consistency with other command
+    names, other distro packages and for Evolution (thanks Jack Howarth)
+  * Redirect bug reports for subpackages to openoffice.org until the BTS knows
+    about the packages
+  * debian/rules: create 2 new clean targets to recover disk space without
+    cleaning the whole build: clean-debdir (850M) and clean-instsetoo (2.5Gb).
+    Remove package/DEBIAN directories on rerun of target, so conffiles don't
+    appear multiple times.
+  * In TODO, explain what is needed for an upload to contrib
+
+ -- Chris Halls <chris.halls@gmx.de>  Tue, 30 Jul 2002 18:25:34 +0200
+
+openoffice.org (1.0.1-3) experimental; urgency=low
+
+  * fix PowerPC build (thanks Jack Howarth)
+    - move files from openoffice.org*_all.deb to openoffice.org-bin*_$(ARCH).deb
+      /usr/lib/openoffice/program/applicat.rdb
+      /usr/lib/openoffice/program/instdb.ins
+    - delete patch 005_gcc3_misc_changes, because it is not needed for PowerPC
+      and this patch was only PowerPC related.
+  * Update description with text from upstream's FAQ and mention spelling
+    dictionaries
+  * Conflict openoffice.org[-bin] against <= 1.0.1-2 because of the files that
+    moved
+  * Suggest openoffice.org-spellcheck-<lang> in all language packs, and
+    explain about dictionaries in the langpack descriptions
+
+ -- Chris Halls <chris.halls@gmx.de>  Fri, 26 Jul 2002 14:44:03 +0200
+
+openoffice.org (1.0.1-2) experimental; urgency=low
+
+  * Fix dependencies so it is possible to install a foreign language pack
+    without -en as well (thanks, Gregor Hoffleit)
+  * openoffice.org conflicts with individual language packs (<< 1.0.1)
+  * Remove HTML2TEXT variable (thanks, Jerome Warnier)
+
+ -- Chris Halls <chris.halls@gmx.de>  Wed, 24 Jul 2002 21:44:47 +0200
+
+openoffice.org (1.0.1-1) experimental; urgency=low
+
+  * New upstream version
+     + upgrade of the mozilla integration from 0.9.5 to 1.0
+     + several fixes to font handling code
+     + improved portability
+     + improvements to handling of locales
+     + and numerous other minor bugfixes
+  * Due to popular demand and general confusion, set the default user install
+    directory to ~/.openoffice/1.0.1, including when setup is run manually
+  * New commands in /usr/bin: oocalc,oodraw,ooimpress,oomath,oowriter,oopadmin
+  * Bring back global desktop integration without cluttering the home directory
+    thanks to Gwenole's method of editing instdb.ins after setup
+  * KDE desktop interation is tested, Gnome not yet.
+  * Add setup to menu entries again
+  * Tighten up dependencies so that all components must be 1.0.1
+  * Build system changes:
+    + Create extra make target for unpacking language packs
+    + Add support for debug builds.  To build a project with debugging symbols:
+        debian/rules buildprj PRJ=<project-to-build> DEB_BUILD_OPTIONS=debug
+    + Improve 'install' target dependencies
+  * Add manpages and fix lintian warnings (Rene Engelhard)
+  * Update mailcap entries and add MS Office document types
+
+ -- Chris Halls <chris.halls@gmx.de>  Thu, 11 Jul 2002 16:17:59 +0200
+
+openoffice.org (1.0.0-pre1.0.1rc3) experimental; urgency=low
+
+  * Fix broken openoffice script for upgrades.
+  * Jan
+    -inluded 016_ppc_bridge_fix.diff, for propper powerpc-build *yeah*
+
+ -- Chris Halls <chris.halls@gmx.de>  Wed, 10 Jul 2002 17:16:59 +0200
+
+openoffice.org (1.0.0-pre1.0.1rc2) experimental; urgency=low
+
+  * Recompiled against fixed libstlport package
+  * Change user directory to ~/OpenOffice.org1.0.1.  Note there is 
+    *no support* from upstream to upgrade the user directory, and I have seen
+     too much corruption from 1.0.0 to be prepared to attempt to support it in
+     just these packages, so you must change your user settings by hand for
+     now.  The openoffice wrapper will warn if it sees ~/.openoffice still.
+  * Update some sections of README
+
+ -- Chris Halls <chris.halls@gmx.de>  Tue,  9 Jul 2002 21:33:16 +0200
+
+openoffice.org (1.0.0-pre1.0.1rc1) experimental; urgency=low
+
+  * New upstream: 1.0.1 release candidate
+      (from CVS OpenOffice_1_0_1 of 7/3/2002)
+  * Jan- Hendrik Palic:
+    - Switched to gcc-3.1/g++3.1 to build OpenOffice.org on PPC.  i386 does
+      not work with gcc-3.1 yet.
+    - much work on the patches:
+      + all changes to oo_1.0_src/config_office/configure.in went to
+        001_configure.in_gcc-3.x-fixes.diff
+         o set compilervars
+         o detecting the right include for gcc-3.1/g++-3.1
+         o java will be detected right on powerpc, so we can build
+           automaticly, without setting the location of javac twice
+      + link against -lstlport_gcc_3.1 (soname changed in libstlport)
+        this went into 011_link_agains_stlport_gcc_3.1.diff
+      + 005_gcc3_misc_changes.diff did the last changes to compile
+        OpenOffice.org by gcc-3.1/g++-3.1
+      + 010_use_libstdc++_from_debian.diff is changed to use this patch with
+        OpenOffice.org-1.0.1
+    - debian/rules:
+      + copies the mozlibs into source from some place (sorry,no package yet)
+        but I will link OpenOffice.org again mozilla 1.0 from debian
+        (I have to recompile Mozilla with gcc-3.1/g++3.1)
+    - debian/control
+      + fixes the builddependencies for using gcc-3.1/g++-3.1 for all arches.
+      + added buildconflict to libgcj3-dev
+    - killed extra-dependencies on debian/script/vars.powerpc
+    - sets USE_GCC3 to y in debian/script/vars.powerpc
+    - changed debian/rules to use gcc-3.1
+  * Chris Halls
+    - Fix errors like openoffice: [: it-CH: binary operator expected
+    - Remove patches integrated upstream:
+       008_clk_tck_gcc-3.diff, 015_setup_oognomeappmath.diff,
+       016_fontcache_copy_weight.diff, 021_lingu_cvsupdates.diff,
+       022_psprint_fontmanager.diff
+    - New patch: 015_dont_unset_home.diff - removes unset HOME so ccache works
+      again
+    - Properly detect GNOME2 session manager, thanks to Gary Coady
+    - Remove languages from oo-xlate-lang that are not yet available
+      (ca and fi)
+    - link against -lstlport_gcc_3.x (soname changed in libstlport) - this was
+      one of the showstoppers for getting OOo into main.  Correct lib is
+      determined from the compiler in use
+    - Fix patch.unapply to work with arch dir
+    - Make patch.apply pipe *.uu patches through uudecode for binary patches
+    - set SAL_DEBUG=strace or gdb for debugging
+    - move global dictionary.lst into /etc/openoffice
+    - openoffice.org Suggests openoffice.org-spellcheck
+    - ooo-l10n-de Suggests German dictionaries
+
+ -- Chris Halls <chris.halls@gmx.de>  Fri,  5 Jul 2002 20:52:06 +0200
+
+openoffice.org (1.0.0-6) experimental; urgency=low
+
+  * Fix names of suggested ooqstart-gnome and update-mime
+  * Revert 903_system_freetype.diff - the OpenSymbol font can not be displayed
+    unless you use a font server, which means most users will not be able to
+    use bullets.  This appears to be some problem with the different
+    libfreetype versions.  Spadmin will crash if you try to add the
+    OpenSymbol font directly, and I cannot see what is going on in gdb without
+    creating a debug build.
+  * Move libmozab libraries to -bin package
+
+ -- Chris Halls <chris.halls@gmx.de>  Tue, 25 Jun 2002 17:57:22 +0200
+
+openoffice.org (1.0.0-5) experimental; urgency=low
+
+  * Patches from upstream CVS (slated for 1.0.1):
+    - 021_lingu_cvsupdates.diff:
+          + Register own hypenation dictionaries (IZ #45555, IZ #4687)
+          + Fix segfault under Thesaurus (IZ #4435)
+          + Enable shared spellchecking capabilities
+    - 022_psprint_fontmanager.diff (made by Gwenole)
+          + Improve font server discovery
+  * Martin Quinson:
+    - Auto select user install directory and language
+    - Support for install by user in other directories, not
+      just ~/.openoffice
+  * Patches copied from Gwenole Beauchesne at Mandrake:
+    - 023_user_fontpath.diff
+          + Use SAL_FONTPATH_USER for user font path
+    - 903_system_freetype.diff
+          + Use the system libfreetype instead of the internal library
+  * Chris Halls:
+    - openoffice.org-bin conflicts with earlier packages (<= -3)
+    - openoffice.org Suggests: mime-support, menu
+    - Add new systemwide configuration: /etc/openoffice/openoffice.conf
+    - Correct l10n typo in README.Debian
+    - Build-depend on libfreetype6-dev
+    - Patch 024_freetype_macros.diff for building with libfreetype6 >= 2.1.0
+    - Fix spadmin command and menus: place a wrapper in /usr/bin/spadmin.
+    - Move psprint.conf and sofficerc into /etc/openoffice (now conffiles)
+    - Remove LANGLIST=01 from response files
+    - Move arch-specific dependencies to openoffice.org-bin
+    - Patch 904_libodbc_soname.diff: dlopen libodbc.so.1 instead of
+      libodbc.so.  Added unixodbc to Suggests.  Thanks to Steve Langasek for
+      the help.
+    - Add Suggests: cupsys-bsd.  With this package installed, printer queues
+      will appear in the print dialog without having to use spadmin.
+    - Lots of updates to README.Debian and TODO
+    - Update package description
+
+ -- Chris Halls <chris.halls@gmx.de>  Thu, 13 Jun 2002 17:26:35 +0200
+
+openoffice.org (1.0.0-4) experimental; urgency=low
+
+  * John M Cooper:
+    - Add Debian menu entries
+  * Jan-Hendrik Palic:
+    - Update JDK home directory for PPC
+  * Chris Halls:
+    - Fix mime support (update-mime was not called in postinst)
+    - Build foreign languages
+    - Split off architecture-dependent files into openoffice.org-bin
+      package and depend on it.  This package will not need to be updated as
+      frequently as the main openoffice.org package.
+    - Remove workaround for libstdc in rules, because patch
+      902_remove_libstdc_from_scp solves the problem.
+    - Use dh_install instead of dh_movefiles.  Build-depend on debhelper >=
+      4.0.9 because of a problem with globbing with dh_install
+    - Build-depend on perl-base because perl is used in some scripts
+    - Add instsetoo target to recreate install sets
+    - Update README.Debian and TODO
+    - Workaround for issue #4494: unset SESSION_MANAGER if session manager is
+      gnome-session
+    - Make Menu entries use openoffice wrapper. spadmin can be run from the
+      menu and setup is removed from the menu.
+  * Patches copied from Gwenole Beauchesne at Mandrake:
+    - 015_setup_oognomeappmath: fix error message on user setup
+    - 016_fontcache_copy_weight: Fix bug in font cache (font when printed
+      appear bold etc, IZ #4366)
+    - 902_remove_libstdc_from_scp.diff: also remove libgcc_s.so from .deb
+  * Martin Quinson:
+    - Foreign language support!
+    - Generate multiple packages and control file for lanaguage support
+      automatically.
+    - Adapt openoffice-xlate-lang and openoffice-dpack-lang from Mandrake's
+      packages
+
+ -- Chris Halls <chris.halls@gmx.de>  Thu, 30 May 2002 11:39:37 +0200
+
+openoffice.org (1.0.0-3) unstable; urgency=low
+
+  * Chris Halls:
+    - Remove desktop integration from default setup so we can do it ourselves
+      as described in sections C-E of
+      http://installation.openoffice.org/how_to_repackage_oo.html
+      This removes the error messages reported by users during setup (except
+      for one about mathdoc.desktop - this is an upstream problem).  It also
+      removes the menu entries in the KDE menus... ahem!
+    - Add a small README, describing how to get started and mentioning the
+      fact that some problems and workarounds are in TODO.Debian.
+    - debian/rules: OOo setup now returns exit code 0 when happy, so remove
+      the workaround
+    - Updated TODO tasks
+  * John M Cooper:
+    - Add mime support for native files
+
+ -- Chris Halls <chris.halls@gmx.de>  Tue,  7 May 2002 14:38:17 +0200
+
+openoffice.org (1.0.0-2) unstable; urgency=low
+
+  * Peter Novodvorsky:
+    - Patch 014_fix_ashism_in_configure_in.diff for builing with /bin/sh=bash
+  * Chris Halls
+    - Add Conflicts: openoffice to make sure the older package is deinstalled
+      (thanks to Martin Quinson)
+    - Revert Java support for user setup to none
+
+ -- Chris Halls <chris.halls@gmx.de>  Fri,  3 May 2002 11:37:18 +0200
+
+openoffice.org (1.0.0-1) unstable; urgency=low
+
+  * New upstream - now offically 1.0
+    + Updated icons
+    + Hyphenation added (By Peter!)
+  * Peter Novodvorsky:
+    - Build without gpc
+  * Chris Halls
+    - openoffice can be started with command line paramter, and gives basic
+      diagnostics if there is a problem with user setup
+    - MANIFEST files are now sorted with LC_ALL=C (Thanks, Bastian Kleineidam)
+    - Removed XFree references from README and TODO
+    - Add KDE .desktop files and icons again (still not fully correct)
+    - Use debhelper 4
+    - Use dh_shlibdeps to generate dependencies
+    - Generate configure using autoconf during build.
+    - Removed references to XFree86 packages
+    - Upstream tarball is .bz2 - saves 16MB source tarball size.  Needs
+      Build-Dependency bzip2
+  * Jan-Hendrik Palic:
+    - Add TODO list.  If you have problems, please check if these are already
+      mentioned here.
+
+ -- Chris Halls <chris.halls@gmx.de>  Thu,  2 May 2002 12:12:06 +0200
+
+openoffice.org (0.641d.cvs20020424-1) unstable; urgency=low
+
+  * New Upstream and fully powerpc build without changes at debian/rules while
+    build :)
+  * put cp commands for copiing the libmozab2.so/libmozabdrv2.so
+    libs on i386 and not at powerpc
+  * deleted these to files from openoffice.org.files, so dh_movefiles should
+    not mentioned them!
+
+ -- Jan-Hendrik Palic <jan.palic@linux-debian.de>  Wed, 24 Apr 2002 19:12:18 +0200
+
+openoffice.org (0.641d.cvs20020423-1) unstable; urgency=low
+
+  * Sync with upstream CVS
+    - patch 009_define_XSetIMValues.diff and 011_class_SwpHtStart_SAR.diff
+      fixed in upstream CVS
+  * Jan-Hendrik Palic:
+    - Adding some more changes for $ARCH=powerpc (build finished, but not the
+      packaging to deb)
+    - debian/script/patch.apply: apply $ARCH- specific patches
+    - added  debian/patches/powerpc, it contents the patches for powerpc
+    - edited rules: dh_gencontrol for using $ARCH_DEPENDS
+    	(I got this hint from PGI)
+    - added 150_no_mozab.diff and and 151_no_mozab2.diff fixing build and
+      setup process.
+    debian/scripts/{vars|vars.i386|vars.powerpc}
+    - moved the GCC3 Var from debian/scripts/vars to debian/script/vars.$ARCH
+      (PPC Build doesn't work with gcc-3.0 and will not be supported by gcc 3.1)
+    debian/control
+    - change build-deps (gcc,g++,libstd++2.10-dev) for building with gcc2 on
+      powerpc and gcc3 on i386.
+    - change archicitecture to only i386 and powerpc
+    - add powerpc manifest file
+  * Chris Halls
+    - Update Bugs and Description with bug report information
+    - debian/openoffice.org.files: use wildcards for filenames which differ
+      between powerpc and i386 builds
+    - First attempt at KDE menu items/icons/mime types packaging
+      (experimental)
+
+ -- Chris Halls <chris.halls@gmx.de>  Wed, 24 Apr 2002 11:02:45 +0200
+
+openoffice.org (0.641d.cvs20020417-1) unstable; urgency=low
+
+  * sync with upstream CVS
+  * We have a .deb for i386!
+  * Chris Halls
+    - Remove 005_no_mozab.diff
+    - Generate diagnostic output during setup
+    - setup always returns error code 1 (duh!), so
+      ignore it and examine the logfiles for success
+    - debian/MANIFEST: update for this version
+    - debian/openoffice.*: rename to openoffice.org.*
+    - debian/control: change stlport dependency to remove warning 
+      and update Uploaders
+    - debian/openoffice.org.links: update library versions
+
+ -- Chris Halls <chris.halls@gmx.de>  Thu, 18 Apr 2002 18:15:31 +0200
+
+openoffice.org (0.641d.cvs20020415-2) unstable; urgency=low
+
+  * removed the libstdc from scp (thnx Jeff)
+  * the package name changed to openoffice.org, we change rules to :)
+    (thnx again Jeff)
+  
+
+ -- Jan-Hendrik Palic <palic@billgotchy.de>  Mon, 15 Apr 2002 18:30:30 +0200
+
+openoffice.org (0.641d.cvs20020412-1) unstable; urgency=low
+
+  * add jdkhome to debian/script/vars, because of changing jdk dirs on several
+    arches (Chris)
+  * uses gcc3 be default (Jan)
+  * fixed the hardlinked g++-3.0.4 includes from 3.0.1 to 3.0.4 (Chris)
+  * fixed build error (see patch 011) (Chris)
+  * enables the buildprozess with ccache (Chris)
+  * switches from csh to tcsh (Chris)
+  * clean up the 001 patch (Chris)
+  * fixes the gcc3 buildenv: (Chris)
+    set COMPCC and COMPPCXX variables 		-- patch 012
+    use these variables              	 	-- patch 013
+    ran autoconf for producing configure	-- patch 901
+    patch 900 is to be removed
+  * add builddepend libgpcl-dev (thnx Joerg Friedrich)
+
+ -- Jan-Hendrik Palic <jan.palic@linux-debian.de>  Thu, 11 Apr 2002 17:53:10 +0200
+
+openoffice.org (0.641d.cvs20020405-1) unstable; urgency=low
+
+  **mechanix@debian.org**
+  * Remove extraneous Build-Depends:; add debhelper, tcsh.
+  * Don't require gcc-2.95; not all arches have it.
+  * Change section until we don't need a non-free jdk anymore.
+  * Disable 000 (gpc) patch; build gpc internally.
+  * Update build system to real and uptodate DBS. Work around some problems
+    when bash is called as /bin/sh.
+
+  **jan.palic@linux-debian.org**
+  * removed the 000_dont_require_gpcl_sources.diff:
+    no depends of libgcpl anymore, but weed to copy gpc.{ch} to
+    $(SOURCE_TREE)/solver/$(BUILDNUM)/$(ARCHBUILDDIR)/inc/external/.
+  * added 002_remove_stlport_from_installation_set.diff:
+    don't build stlport,use libstlport4.0 from debian
+  * added 003_enable_dmake_clean_patch.diff:
+    implement a dmake clean, like make clean.
+  * added 004_zipdep_not_found.diff:
+    fixes the zipdeb not found errormessage.
+  * added 005_no_mozab.diff:
+    no build of the mozillacomponents including in the OpenOffice source.
+  * added 006_exception_sprecs.diff:
+    fixes some exceptions.
+  * added 007_gpc_include_patch.diff:
+    includes the nessesary gpc.{ch} files.[NONFREE]
+  * added 008_clk_tck_gcc-3.diff:
+    corrected the defines for gcc in $(oo_src)/tools/src/datetime/ttime.cxx
+  * added 900_gccV3_is_gcc-3.0.diff:
+    makes configure able to see gcc3 as gcc3
+  * addes 902_setupzip_r1_71_plus_GCCfix:
+    some fixes for building OpenOffice.org with gcc3
+  * Patch 002 is from nidd@debian.org
+  # Patch 003 is from the openoffice-dev mailinglist.
+  * Patches 004 - 006 are from Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
+  	Copyright by Mandrake Soft.
+  * Patches 007 - 008/900-902 are from Chris Halls
+  * Added buildconflict with libgcj2-dev ... there are wrong includes related
+    to java.
+  * switched name to openoffice.org
+  * switched to ooo_stable1 release (641d)
+  * added xbase-clients/xfonts-base to build-depend, because of xauth-call in oo-xvfb-run
+  * added libstlport4.5_4.5.3.gcc3-1 to the builddepends .. to buil
+    OpenOffice.org with gcc3 
+  
+  **chris.halls@nikocity.de**
+  * splitted up the build process. You may build with debian/rules $MODULE
+    singel moduled of OpenOffice.
+  * chnaged from xvfb to xvfb-run, because there were some problems with
+    connecting the XServer ...
+  * changed under debian/local/scripts to oo-xvfb-run, which fixes the
+    no-screens-found-bug while building OpenOffice
+  * includes patch to accept gcc3 in ./configure
+  * includes patch for building includes stlport4 with gcc
+ -- Debian-OpenOffice-Team <debian-openoffice@lists.debian.org>  Tue, 26 Feb 2002 13:18:36 +0100
+
+openoffice (0.641c-0.1) unstable; urgency=low
+
+  * new upstream release (next try)
+  * removed patches 
+    001_dump_filters.diff
+    003_finish_build_quietly.diff
+    beause, the aren't needed anymore
+
+ -- Jan-Hendrik Palic <jan.palic@linux-debian.de>  Tue, 29 Jan 2002 22:35:29 +0100
+
+openoffice (0.638c-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Peter Novodvorsky <nidd@debian.org>  Tue, 23 Oct 2001 02:26:50 +0300
+
--- openoffice.org-2.4.1.orig/debian/shlibs.override.icu
+++ openoffice.org-2.4.1/debian/shlibs.override.icu
@@ -0,0 +1,4 @@
+libicudata	26
+libicuuc	26
+libicule	26
+libicui18n	26
--- openoffice.org-2.4.1.orig/debian/control.fonts.in
+++ openoffice.org-2.4.1/debian/control.fonts.in
@@ -0,0 +1,10 @@
+Package: ttf-opensymbol
+Section: x11
+Architecture: all
+Replaces: openoffice.org (<= 1.1.1+1.1.2rc3)
+Recommends: fontconfig
+Description: The OpenSymbol TrueType font
+ This package contains the OpenSymbol TrueType font included in
+ OpenOffice.org. This font contains symbols (like fonts as Wingdings(tm)),
+ bullets (needed for bullets in OpenOffice.org) and non-latin character
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-common.postinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-common.postinst.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# postinst script for openoffice.org-common
+
+THIS_PACKAGE=openoffice.org-common
+THIS_SCRIPT=postinst
+
+set -e 
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "configure" ]; then
+	update-openoffice-dicts
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/control.qa.in
+++ openoffice.org-2.4.1/debian/control.qa.in
@@ -0,0 +1,35 @@
+Package: openoffice.orgVER-qa-tools
+Section: devel
+Priority: extra
+Depends: ${shlibs:Depends},
+ openoffice.orgVER (>> ${base-version}),
+ ${ooo-binfilter-dep},
+ ${java-common-depends}
+Recommends: openoffice.orgVER-qa-api-tests,
+ openoffice.orgVER-qa-ui-tests
+Conflicts: openoffice.org-core (<< 1:2.3.0~oog680m2)
+Replaces: openoffice.org-common (<< 2.0.4~ood680m2)
+Architecture: %OOO_ARCHS%
+Description: OpenOffice.org Automatic Test Programs
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the test tools to automatically test the
+ OpenOffice.org programs.
+ .
+ Install the openoffice.orgVER-qa-ui-tests and
+ openoffice.orgVER-qa-api-tests packages to get the official
+ testscripts, or write your own scripts.
+
+Package: openoffice.orgVER-qa-api-tests
+Section: devel
+Priority: extra
+Depends: openoffice.orgVER-qa-tools
+Architecture: all
+Description: OpenOffice.org API Test Data
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the test data for the OpenOffice.org Java and
+ Basic APIs.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-math.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-math.mime
@@ -0,0 +1,14 @@
+###
+# shared-mime-info
+
+# Generic
+text/mathml; soffice -math '%s'; edit=soffice -math '%s'; test=test -n "$DISPLAY"; description="MathML Formula"; nametemplate=%s.mml; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.formula; soffice -math '%s'; edit=soffice -math '%s'; test=test -n "$DISPLAY"; description="OpenDocument Formula"; nametemplate=%s.odf; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.math; soffice -math '%s'; edit=soffice -math '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Formula"; nametemplate=%s.sxm; priority=8
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/udk-cpp-ref.in
+++ openoffice.org-2.4.1/debian/udk-cpp-ref.in
@@ -0,0 +1,7 @@
+Document: udk-cpp-ref
+Title: UDK @UDK_MAJOR@.@UDK_MINOR@.@UDK_MICRO@ C/C++ API Reference
+Author: Sun Microsystems, Inc.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/openoffice.org-dev/docs/cpp/ref/index.html
--- openoffice.org-2.4.1.orig/debian/openoffice.org-qa-tools.postrm.in
+++ openoffice.org-2.4.1/debian/openoffice.org-qa-tools.postrm.in
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# postrm script for openoffice.org-qa-tools
+
+THIS_PACKAGE=openoffice.org-qa-tools
+THIS_SCRIPT=postrm
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in remove)
+	dpkg-divert --package $THIS_PACKAGE --remove --rename --divert \
+	    /usr/lib/openoffice/presets/basic/Standard/script.xlb.no-smoketest \
+	    /usr/lib/openoffice/presets/basic/Standard/script.xlb
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-qa-tools.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-qa-tools.preinst.in
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-qa-tools
+
+THIS_PACKAGE=openoffice.org-qa-tools
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	dpkg-divert --package $THIS_PACKAGE --add --rename --divert \
+	    /usr/lib/openoffice/presets/basic/Standard/script.xlb.no-smoketest \
+	    /usr/lib/openoffice/presets/basic/Standard/script.xlb
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/deppackage.postinst.in
+++ openoffice.org-2.4.1/debian/deppackage.postinst.in
@@ -0,0 +1,12 @@
+#! /bin/sh -e
+
+case "$1" in
+    configure)
+	docdir=/usr/share/doc/@PKGNAME@
+	if [ -d $docdir ] && [ ! -h $docdir ]; then
+	    rm -rf $docdir
+	    ln -s @PKGTARGET@ $docdir
+	fi
+esac
+
+#DEBHELPER#
--- openoffice.org-2.4.1.orig/debian/openoffice.org-presentation-minimizer.script.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-presentation-minimizer.script.bug
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/lib/openoffice/program/unopkg list --shared org.openoffice.legacy.sun-presentation-minimizer.oxt >&3
--- openoffice.org-2.4.1.orig/debian/openoffice.org-math.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-math.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core
--- openoffice.org-2.4.1.orig/debian/openoffice.org-draw.menu.in
+++ openoffice.org-2.4.1/debian/openoffice.org-draw.menu.in
@@ -0,0 +1,6 @@
+?package(openoffice.org-draw):needs="X11" section="Applications/Graphics"\
+  title="OpenOffice.org Draw" command="/usr/bin/oodraw"\
+  hints="Drawing"\
+  kderemove="y"\
+  icon="/usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-draw.xpm"
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-writer.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-writer.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core
--- openoffice.org-2.4.1.orig/debian/shell-lib.sh
+++ openoffice.org-2.4.1/debian/shell-lib.sh
@@ -0,0 +1,90 @@
+# vim:set ai et sts=2 sw=2 tw=0:
+
+# Query the terminal to establish a default number of columns to use for
+# displaying messages to the user.  This is used only as a fallback in the
+# event the COLUMNS variable is not set.  ($COLUMNS can react to SIGWINCH while
+# the script is running, and this cannot, only being calculated once.)
+DEFCOLUMNS=$(stty size 2> /dev/null | awk '{print $2}') || true
+if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" > /dev/null 2>&1; then
+  DEFCOLUMNS=80
+fi
+
+message() {
+	echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} >&2
+}
+
+# Prepare to move a conffile without triggering a dpkg question
+prep_rm_conffile() {
+    CONFFILE="$1"
+
+    if [ -e "$CONFFILE" ]; then
+        md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`"
+        old_md5sum="`dpkg-query -W -f='${Conffiles}' $2 | grep $CONFFILE | awk '{print $2}'`"
+        if [ "$md5sum" = "$old_md5sum" ]; then
+            mv "$CONFFILE" "$CONFFILE.${THIS_PACKAGE}-tmp"
+        fi
+    fi
+}
+
+rm_conffile_commit() {
+  CONFFILE="$1"
+
+  if [ -e $CONFFILE.${THIS_PACKAGE}-tmp ]; then
+    rm $CONFFILE.${THIS_PACKAGE}-tmp
+  fi
+}
+
+# Remove a no-longer used conffile
+rm_conffile() {
+    CONFFILE="$1"
+
+    if [ -e "$CONFFILE" ]; then
+        md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`"
+        old_md5sum="`dpkg-query -W -f='${Conffiles}' $2 | grep $CONFFILE | awk '{print $2}'`"
+        if [ "$md5sum" != "$old_md5sum" ]; then
+            echo "Obsolete conffile $CONFFILE has been modified by you."
+            echo "Saving as $CONFFILE.dpkg-bak ..."
+            mv -f "$CONFFILE" "$CONFFILE".bak
+        else
+            echo "Removing obsolete conffile $CONFFILE ..."
+            rm -f "$CONFFILE"
+        fi
+    fi
+}
+
+flush_unopkg_cache() {
+	/usr/lib/openoffice/program/unopkg list --shared > /dev/null 2>&1
+}
+
+remove_extension() {
+  if /usr/lib/openoffice/program/unopkg list --shared $1 >/dev/null; then
+    echo -n "Removing extension $1..."
+    INSTDIR=`mktemp -d`
+    /usr/lib/openoffice/program/unopkg remove --shared $1 \
+      "-env:UserInstallation=file://$INSTDIR" \
+      '-env:UNO_JAVA_JFW_INSTALL_DATA=$ORIGIN/../share/config/javasettingsunopkginstall.xml' \
+      "-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1"
+    if [ -n $INSTDIR ]; then rm -rf $INSTDIR; fi
+    echo " done."
+    flush_unopkg_cache
+  fi
+}
+
+add_extension() {
+  echo -n "Adding extension $1..."
+  INSTDIR=`mktemp -d`
+  /usr/lib/openoffice/program/unopkg add --shared $1 \
+    "-env:UserInstallation=file:///$INSTDIR" \
+    '-env:UNO_JAVA_JFW_INSTALL_DATA=$ORIGIN/../share/config/javasettingsunopkginstall.xml' \
+    "-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1"
+  if [ -n $INSTDIR ]; then rm -rf $INSTDIR; fi
+  echo " done."
+}
+
+trap "message;\
+      message \"Received signal.  Aborting script $0.\";\
+      message;\
+      exit 1" 1 2 3 15
+
+VER=
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-presentation-minimizer.postinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-presentation-minimizer.postinst.in
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+THIS_PACKAGE=openoffice.org-oresentation-minimizer
+THIS_SCRIPT=postinst
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "configure" -o "$1" = "upgrade" ]; then
+	add_extension /usr/lib/openoffice/share/extension/install/sun-presentation-minimizer.oxt
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-gcj.postinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-gcj.postinst.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# postinst script for openoffice.org-gcj
+
+THIS_PACKAGE=openoffice.org-gcj
+THIS_SCRIPT=postinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ -x /usr/bin/rebuild-gcj-db ]; then
+     /usr/bin/rebuild-gcj-db
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/ttf-opensymbol.postinst.in
+++ openoffice.org-2.4.1/debian/ttf-opensymbol.postinst.in
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# postinst script for ttf-opensymbol
+
+THIS_PACKAGE=ttf-opensymbol
+THIS_SCRIPT=postinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "configure" ] && [ -x /usr/bin/fc-cache ] && [ -e /etc/fonts/fonts.conf ]; then
+	echo "Updating fontconfig cache..."
+	fc-cache -fs
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-filter-binfilter.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-filter-binfilter.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-filter-binfilter: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-report-builder.script.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-report-builder.script.bug
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/lib/openoffice/program/unopkg list --shared com.sun.reportdesigner >&3
--- openoffice.org-2.4.1.orig/debian/xmerge-javadoc.in
+++ openoffice.org-2.4.1/debian/xmerge-javadoc.in
@@ -0,0 +1,7 @@
+Document: xmerge-javadoc
+Title: OpenOffice.org XMerge API Javadoc
+Author: Sun Microsystems, Inc.
+Section: Apps/Programming
+
+Format: HTML
+Index: /usr/share/doc/openoffice.org-dev/docs/xmerge/index.html
--- openoffice.org-2.4.1.orig/debian/openoffice.org-writer.manpages
+++ openoffice.org-2.4.1/debian/openoffice.org-writer.manpages
@@ -0,0 +1,3 @@
+debian/tmp/usr/share/man/man1/ooweb.1
+debian/tmp/usr/share/man/man1/oowriter.1
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-qa-tools.docs
+++ openoffice.org-2.4.1/debian/openoffice.org-qa-tools.docs
@@ -0,0 +1 @@
+debian/README.qa
--- openoffice.org-2.4.1.orig/debian/openoffice.org-core.script.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-core.script.bug
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# list all installed extensions. --shared and non-shared
+/usr/lib/openoffice/program/unopkg list --shared >&3
+/usr/lib/openoffice/program/unopkg list >&3
--- openoffice.org-2.4.1.orig/debian/broffice.org.preinst.in
+++ openoffice.org-2.4.1/debian/broffice.org.preinst.in
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+# preinst script for broffice.org
+
+THIS_PACKAGE=broffice.org
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+DIVERSIONS="/@OODIR@/program/bootstraprc /@OODIR@/program/versionrc /@OODIR@/share/registry/data/org/openoffice/Setup.xcu /usr/share/applications/ooo@VER@-calc.desktop /usr/share/applications/ooo@VER@-writer.desktop /usr/share/applications/ooo@VER@-draw.desktop /usr/share/applications/ooo@VER@-base.desktop /usr/share/applications/ooo@VER@-impress.desktop /usr/share/applications/ooo@VER@-math.desktop /usr/share/applications/ooo@VER@-extension.desktop /usr/share/applications/ooo@VER@-template.desktop /usr/share/application-registry/openoffice.applications"
+#DIVERSIONS="$DIVERSIONS /@OODIR@/program/intro.bmp /@OODIR@/program/about.bmp"
+DIVERSIONS="$DIVERSIONS /@OODIR@/program/openintro_ubuntu_sun.bmp /@OODIR@/program/openabout_ubuntu_sun.bmp"
+
+LANGPACKISOS="@LANGPACKISOS@"
+
+case "$1" in
+install|upgrade)
+	for i in $DIVERSIONS; do
+		dpkg-divert --package $THIS_PACKAGE --add --rename --divert $i.ooo $i
+	done
+	for i in $LANGPACKISOS; do
+		dpkg-divert --package $THIS_PACKAGE --add --rename --divert /@OODIR@/program/resource/ooo680$i.res.ooo /@OODIR@/program/resource/ooo680$i.res
+	done
+	;;
+esac
+
+#DEBHELPER#
+
--- openoffice.org-2.4.1.orig/debian/template.desktop.in
+++ openoffice.org-2.4.1/debian/template.desktop.in
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=OpenOffice.org@VER@
+Comment=OpenOffice.org
+TryExec=oofromtemplate@VER@
+Exec=oofromtemplate@VER@ %U
+Icon=ooo-template.png
+Terminal=false
+Type=Application
+Categories=Office
+NoDisplay=true
+StartupNotify=true
--- openoffice.org-2.4.1.orig/debian/openoffice.org-calc.menu.in
+++ openoffice.org-2.4.1/debian/openoffice.org-calc.menu.in
@@ -0,0 +1,6 @@
+?package(openoffice.org-calc):needs="X11" section="Applications/Office"\
+  title="OpenOffice.org Calc" command="/usr/bin/oocalc"\
+  hints="Spreadsheets"\
+  kderemove="y"\
+  icon="/usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-calc.xpm"
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-dev.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-dev.preinst.in
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-dev
+
+THIS_PACKAGE=openoffice.org-dev
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if [ -L /usr/lib/openoffice/sdk/classes/com ]; then
+		rm /usr/lib/openoffice/sdk/classes/com
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-math.overrides.lintian.in
+++ openoffice.org-2.4.1/debian/openoffice.org-math.overrides.lintian.in
@@ -0,0 +1,4 @@
+openoffice.org-math: binary-or-shlib-defines-rpath
+openoffice.org-math: menu-icon-missing /usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-math.xpm
+openoffice.org-math: menu-item-contains-unknown-tag kderemove /usr/share/menu/openoffice.org-math:5
+openoffice.org-math: desktop-command-not-in-package /usr/share/applications/ooo-math.desktop ooffice
--- openoffice.org-2.4.1.orig/debian/openoffice.org-writer.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-writer.mime
@@ -0,0 +1,46 @@
+###
+# shared-mime-info
+
+# Generic
+application/rtf; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Rich Text Format"; nametemplate=%s.rtf; priority=3
+application/x-extension-txt; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Plain Text Document"; nametemplate=%s.txt; priority=3
+application/x-t602; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="T602 Document"; nametemplate=%s.602; priority=3
+
+# Corel WordPerfect
+application/vnd.wordperfect; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="WordPerfect Document"; nametemplate=%s.wp; priority=3
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-word.document.macroEnabled.12; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document with Macros Enabled"; nametemplate=%s.docm; priority=3
+application/vnd.ms-word.template.macroEnabled.12; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document Template with Macros Enabled"; nametemplate=%s.dotm; priority=3
+application/vnd.openxmlformats-officedocument.wordprocessingml.document; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document"; nametemplate=%s.docx; priority=3
+application/vnd.openxmlformats-officedocument.wordprocessingml.template; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document Template"; nametemplate=%s.dotx; priority=3
+
+# Microsoft Word
+application/msword; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Microsoft Word Document"; nametemplate=%s.doc; priority=3
+
+# Microsoft Works
+application/vnd.ms-works; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Microsoft Works Document"; nametemplate=%s.wps; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.text; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="OpenDocument Text Document"; nametemplate=%s.odt; priority=9
+application/vnd.oasis.opendocument.text-master; soffice -global '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="OpenDocument Master Document"; nametemplate=%s.odm; priority=9
+application/vnd.oasis.opendocument.text-template; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="OpenDocument Text Document Template"; nametemplate=%s.ott; priority=9
+application/vnd.oasis.opendocument.text-web; soffice -web '%s'; edit=soffice -web '%s'; test=test -n "$DISPLAY"; description="OpenDocument HTML Document Template"; nametemplate=%s.oth; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.writer; soffice -writer '%s'; edit=soffice -writer '%s'; description="OpenOffice.org Text Document"; nametemplate=%s.sxw; priority=8
+application/vnd.sun.xml.writer.global; soffice -global '%s'; edit=soffice -writer '%s'; description="OpenOffice.org Master Document"; nametemplate=%s.sxg; priority=8
+application/vnd.sun.xml.writer.template; soffice -writer '%s'; edit=soffice -writer '%s'; description="OpenOffice.org Text Document Template"; nametemplate=%s.stw; priority=8
+
+#
+###
+
+###
+# KDE 3 (Obsolete)
+
+application/wordperfect; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="WordPerfect Document"; nametemplate=%s.wp; priority=3
+text/plain; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Plain Text Document"; nametemplate=%s.txt; priority=3
+text/rtf; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="Rich Text Format"; nametemplate=%s.rtf; priority=3
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/README.qa
+++ openoffice.org-2.4.1/debian/README.qa
@@ -0,0 +1,59 @@
+OpenOffice.org QA Tools
+
+smoketest
+=========
+
+smoketest executes a set of macros that create a minimal document in
+each of OpenOffice.org's applications, tests cut&paste and
+saving/loading in various formats.
+
+Invoke it as oosmoketest.
+
+This program manipulates the OpenOffice.org user configuration, USE IT
+WITH A DEDICATED USER ACCOUNT if you value your settings.
+
+qadevOOo
+========
+
+qadevOOo is a framework for executing tests for the OpenOffice.org
+API.  It is documented at
+http://qa.openoffice.org/qadevOOo_doc/user-guide.html
+
+Predefined properties files exist in /usr/lib/openoffice/qadevOOo.
+
+Invoke it like e.g:
+
+  ootestapi -ini /usr/lib/openoffice/qadevOOo/java.props -o sd.SdMasterPage
+
+That properties files specify AppExecutionCommand, i.e. an office will
+be started if necessary. Some tests, however seem to work better if
+the office was started manually, as written in the user guide.
+
+  /usr/lib/openoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;"
+
+Use this invocation and not ooffice to prevent interference with the
+quickstarter code.
+
+testtool
+========
+
+testtool is a framework for executing tests by automating actions in
+OpenOffice.org's user interface. It is documented at
+http://qa.openoffice.org/qatesttool/index.html
+
+Test scripts for testtool are available in the
+openoffice.org-qa-ui-tests package.
+
+Start it as ootesttool.
+
+If you're starting it for the first time, create a profile in
+Extras->Settings where you specify the location of test scripts and
+output path for log files. The default values point to the scripts
+from the openoffice.org-qa-ui-tests package, so simply giving a name
+to the profile and pressing the "New" button is enough.
+
+Then open a test script and press F5 to start the test.
+
+Some test scripts may change your OpenOffice.org user
+configuration. USE IT WITH A DEDICATED USER ACCOUNT if you value your
+settings.
--- openoffice.org-2.4.1.orig/debian/control.help.in
+++ openoffice.org-2.4.1/debian/control.help.in
@@ -0,0 +1,15 @@
+Package: openoffice.orgVER-help-@LCODE@
+Architecture: all
+Section: doc
+Recommends: openoffice.orgVER-core (>> ${base-version}) | language-support-translations-@CCODE@
+Depends: openoffice.orgVER-writer | language-support-translations-@CCODE@, openoffice.orgVER-l10n-@LCODE@
+Conflicts: openoffice.org-common (<= 2.0.0-1), 
+ openoffice.org-core (<< ${base-version})
+Provides: openoffice.org-help-${help-l10n-virtual-version}
+Description: @LNAME@ help for OpenOffice.org
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the help of OpenOffice.org in
+ @LNAME@. 
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-draw.overrides.lintian.in
+++ openoffice.org-2.4.1/debian/openoffice.org-draw.overrides.lintian.in
@@ -0,0 +1,4 @@
+openoffice.org-draw: binary-or-shlib-defines-rpath
+openoffice.org-draw: menu-icon-missing /usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-draw.xpm
+openoffice.org-draw: menu-item-contains-unknown-tag kderemove /usr/share/menu/openoffice.org-draw:5
+openoffice.org-draw: desktop-command-not-in-package /usr/share/applications/ooo-draw.desktop ooffice
--- openoffice.org-2.4.1.orig/debian/ure.overrides.lintian
+++ openoffice.org-2.4.1/debian/ure.overrides.lintian
@@ -0,0 +1 @@
+ure: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-kde.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-kde.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-kde: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-core.shlibs.local
+++ openoffice.org-2.4.1/debian/openoffice.org-core.shlibs.local
@@ -0,0 +1,10 @@
+libuno_cppu 3
+libuno_cppuhelpergcc3 3
+libjvmaccessgcc3 3
+libreg 3
+librmcxt 3
+libuno_sal 3
+libuno_salhelpergcc3 3
+libstore 3
+libjvmfwk 3
+libuno_purpenvhelpergcc3 3
--- openoffice.org-2.4.1.orig/debian/README.Debian-source
+++ openoffice.org-2.4.1/debian/README.Debian-source
@@ -0,0 +1,16 @@
+The .orig.tar.gz consists of the 5 seperate tarballs from
+http://ftp.stardiv.de/pub/OpenOffice.org/contrib/rc/2.3.1rc1 (the stable/2.3.1 ones are exactly the same) of which some non-free stuff has been removed:
+http://download.go-oo.org/OOG680
+ * core:
+   - external/jars/*: Sun proprietary, binary-only jars
+   - odk/pack/copying/*.pdf: non-free doc (XML Spec)
+   - psprint_config/configuration/ppds/.PS (except SGEN*.PS):
+     PPDs where "all rights [are] reserved"
+   - jfreereport/download/*: The "sources" contain binary-only jars used in
+     the build and even ending up in the extension. Removed.
+ * system:
+   - dictionaries/{da_DK,en_GB,en_US,nl_NL,ru_RU}/hyph_*.dic:
+     hyphenation patterns violating licenses/having questionable license
+ * sdk_oo:
+   - sdk_oo/pack/copying/Dev*: Developers Guide (non-free)
+
--- openoffice.org-2.4.1.orig/debian/udk-common-ref.in
+++ openoffice.org-2.4.1/debian/udk-common-ref.in
@@ -0,0 +1,7 @@
+Document: udk-common-ref
+Title: UDK @UDK_MAJOR@.@UDK_MINOR@.@UDK_MICRO@ IDL Reference
+Author: Sun Microsystems, Inc.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/openoffice.org-dev/docs/common/ref/module-ix.html
--- openoffice.org-2.4.1.orig/debian/openoffice.org.postinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org.postinst.in
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+THIS_PACKAGE=openoffice.org
+THIS_SCRIPT=postinst
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "configure" ]; then
+	rm_conffile_commit "/etc/openoffice/sofficerc"
+	rm_conffile_commit "/etc/openoffice/psprint.conf"
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-filter-binfilter.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-filter-binfilter.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core
--- openoffice.org-2.4.1.orig/debian/openoffice.org-impress.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-impress.mime
@@ -0,0 +1,32 @@
+###
+# shared-mime-info
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-powerpoint.presentation.macroEnabled.12; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation with Macros Enabled"; nametemplate=%s.pptm; priority=3
+application/vnd.ms-powerpoint.slideshow.macroEnabled.12; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show with Macros Enabled"; nametemplate=%s.ppsm; priority=3
+application/vnd.ms-powerpoint.template.macroEnabled.12; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template with Macros Enabled"; nametemplate=%s.potm; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.presentation; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation"; nametemplate=%s.pptx; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.slideshow; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show"; nametemplate=%s.ppsx; priority=3
+application/vnd.openxmlformats-officedocument.presentationml.template; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template"; nametemplate=%s.potx; priority=3
+
+# Microsoft PowerPoint
+application/vnd.ms-powerpoint; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Microsoft PowerPoint Document"; nametemplate=%s.ppt; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.presentation; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="OpenDocument Presentation"; nametemplate=%s.odp; priority=9
+application/vnd.oasis.opendocument.presentation-template; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="OpenDocument Presentation Template"; nametemplate=%s.otp; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.impress; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation"; nametemplate=%s.sxi; priority=8
+application/vnd.sun.xml.impress.template; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation Template"; nametemplate=%s.sti; priority=8
+
+#
+###
+
+###
+# KDE 3 (Obsolete)
+
+application/mspowerpoint; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="Microsoft PowerPoint Document"; nametemplate=%s.ppt; priority=3
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/openoffice.org-gcj.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-gcj.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org-core openoffice.org-java-common
--- openoffice.org-2.4.1.orig/debian/README.Debian
+++ openoffice.org-2.4.1/debian/README.Debian
@@ -0,0 +1,295 @@
+	Readme for openoffice.org package for Debian
+	--------------------------------------------
+        http://openoffice.debian.net
+
+Contents
+========
+Introduction
+Quick start
+Printer setup
+  Native CUPS support
+  Non-CUPS systems
+Language support
+  Spellcheck dictionaries, Hyphenation patterns and Thesauri
+  Help packages
+Display and crashing problems
+  X server crashes
+Font problems
+  Why are the menu fonts smaller than in older versions?
+  Changing the default user interface font typeface for non-KDE/Gnome desktops
+Disabling the splash screen
+More information about OOo in Debian
+  
+
+Introduction
+============
+Welcome to the OpenOffice.org packages for the Debian distribution.  These
+packages are of the release of OpenOffice.org with the following
+modifications:
+
+  * Packaged as openoffice.org-core (architecture-dependent core files),
+    openoffice.org-common (architecture-independent common files),
+    openoffice.org-{calc,writer,draw,impress,base} (the OOo modules)
+    openoffice.org-l10n-<lang> and openoffice.org-help-<lang> and
+    other subpackages (-filters-* for lesser used filters, -gtk/-gnome/-kde,
+    ttf-opensymbol for the OpenSymbol font, ...).
+
+  * Integration with other Debian packages:
+	- Global desktop integration for all users for KDE and Gnome desktops.
+	  Menu entries for all window managers that support the Debian 'menu'
+	  package.
+
+  * Some extra features not yet present in official releases:
+	- Many of the patches included in the Ximian edition
+
+  * Extra documentation - this README and man pages.
+
+
+Quick start
+===========
+
+To start using OpenOffice.org, execute the command
+
+   ooffice
+
+as the user which you wish to start OpenOffice.org as.  This will create the
+necessary user files in ~/.openoffice.org2 for you.  Alternatively, you
+can start OpenOffice.org from the menus, if you have the menu package
+installed/use KDE or GNOME.
+
+Printing
+========
+
+Printing on CUPS systems
+------------------------
+The Debian packages include native CUPS support from version 1.1.1-3.  This
+is standard in all OOo versions from 2.0.
+When OOo detects a CUPS system, it will download printer settings for all
+CUPS queues, and these can be set from within the printer properties dialog.
+
+If you wish to add additional filters or print commands, you can add them
+using 'spadmin'.  Note that the 'Add a printer' option is disabled - you
+should add printers using your favourite CUPS frontend.
+
+When creating a new document, OOo will use the default paper size of your
+default CUPS printer queue.  If your new documents have the wrong paper size,
+please check the configuration of your printer.
+
+Non-CUPS systems (lpr, lprng, SAL_DISABLE_CUPS=1)
+---------------------------------
+There is a tool supplied with OpenOffice.org for setting up printers.  You can
+execute this with the command
+
+  /usr/lib/openoffice/program/spadmin
+
+To change the page size and other default settings on non-CUPS systems,
+modify /etc/openoffice/psprint.conf.  The settings are documented in there.
+
+Language support
+================
+You can get foreign language support by installing the
+openoffice.org-l10n-<lang> package for your language.  You will also need the
+'locales' (or belocs-locales-data for some locales, alternatively locales-all
+if you want all locales) package installed. 
+The user interface language is selected according to your locale(1) settings.  
+
+To change the user interface language for all users, run 
+
+  dpkg-reconfigure locales
+
+[ This is not needed when you install locales-all  ]
+
+To change the language for just one user, you must arrange for the LC_MESSAGES
+or LANG environment variable to be set.  You can list all available locales
+with the command 'locale -a'.
+For example, to run OpenOffice in German from the command line:
+
+  LANG=de_DE oowriter
+
+Spellcheck dictionaries, Hyphenation patterns and Thesauri
+----------------------------------------------------------
+Currently, there are dictionaries available for Afrikaans, Arabic, Armenian,
+Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English (AUS/GB/US),
+Esperanto, Estonian, Farsi, Finnish, French, Galician, German (DE/CH/AT),
+Greek, Hebrew, Hungarian, Irish (Gaeilge), Italian, Kurdish, Latvian,
+Lithuanian, Manx Gaelic, Norwegian Bokmal, Norwegian Nynorsk, Polish,
+Portuguese, Portuguese (Brazilian), Russian, Scots Gaelic, Slovak, Slovenian,
+Spanish, Swahili, Swedish, Thai, Ukrainian and Uzbek.
+Dictionaries are packaged as myspell-<lang> (or, for newer ones improved
+for hunspell hunspell-<lang>).
+
+Currently, there are thesauri available for Czech, English (AUS/GB/US),
+German (DE/CH), Italian, Polish and Slovak.
+Thesauri are packaged as openoffice.org-thesaurus-<lang>
+
+Currently, there are hyphenation patterns available for English (USA),
+Croatian, Estonian, German, Hungarian, Italian, Polish, Slovenian and
+Lithuanian.
+Hyphenation patterns are packaged as openoffice.org-hyphenation-<lang>.
+
+Help packages
+-------------
+Currently, there are localized help packages available for
+Bulgarian, Chinese, Czech, Danish, Dutch, English (GB), English (USA),
+Estonian, French, Galician, German, Hungarian, Italian, Japanese, Khmer,
+Macedonian, Polish, Portuguese (Brazil), Russian, Slovakian, Slovenian and
+Spanish and Swedish.
+They are packaged as openoffice.org-help-<lang>.
+
+Problems
+================================
+
+Here are some problems that have been reported with this version.  If you do
+not see your problem here, please check for open bug reports:
+
+  http://bugs.debian.org/debian-openoffice@lists.debian.org
+
+1. If you are using NFS mounted file systems, you should make sure that locking
+is functioning:
+
+  'Make sure NFS lockd/statd is running on the client, or mount the NFS export
+  with the 'nolock' option.
+  
+  If /usr gets mounted from an initrd, check 'ps' output once the system is
+  fully booted to ensure that you see a [lockd] kernel process, or an
+  'rpc.lockd' / 'rpc.statd' userspace process. 
+  
+  If not, just issue your mount command again (no need to even -o remount it
+  seems!) and run /etc/init.d/nfs-common restart.' (Thanks to Gavin Hamill)
+
+  See this mailing list thread for more information:
+    http://lists.debian.org/debian-openoffice/2004/debian-openoffice-200402/msg00223.html
+
+X server crash with Matrox cards
+--------------------------------
+If your X server is using the mga driver, you may find that your X server
+crashes.  You can work around this problem by adding this line to the mga
+Device section:
+
+  Option "XaaNoScreenToScreenColorExpandFill"
+
+There is a bug already open against xserver-xfree86 for this problem.  Thanks
+to Philip Armstrong for this information.
+
+OpenOffice.org crash with nVidia cards
+--------------------------------------
+It seems that OpenOffice.org can trigger some obscure bugs in the X server
+drivers for Nvidia cards too, especially if you have more than one processor.
+Try updating your drivers to the latest version.
+
+Moreover OpenOffice.org may hang and takes X with it when RenderAccel
+is enabled when using the proprietary nVidia Drivers. Disabling this option
+helps then.
+
+Font problems
+=============
+
+Why are the menu fonts smaller than in older versions?
+------------------------------------------------------
+This is caused by a change in the way OOo inteprets your X server DPI setting.
+This setting, when correctly configured, means that software can display text
+at its true size on the display.
+
+The official OOo version assumes that anyone who has their X server configured
+with a DPI of less than 96 has not actually configured it at all, and sets it
+back to 96.  Unfortunately, this has the side effect that displays with a lower
+DPI setting, such as some LCD laptop displays, cannot display the page at its
+true size.
+
+So you can fix this by correctly setting the DPI for your X server.  Gnome users
+will find that it is set to 96 DPI by default; others may need to edit their X
+server configuration.
+
+The best way to get the correct DPI setting is to add a 'DisplaySize' entry to the
+Monitor section.  From the XF86Config-4 man page:
+
+  DisplaySize  width height
+    This optional entry gives the width and height, in millimetres, of the
+    picture area of the monitor. If given this is used to calculate the
+    horizontal and vertical pitch (DPI) of the screen.
+
+If you set this value correctly, X will calculate and use the correct DPI
+setting, even if you use several different display resolutions.
+
+From Nikita V. Youshchenko <yoush at cs.msu.su>:
+
+- Many display manager configurations pass the option "-dpi 100" to the X
+  server by default, overriding any autodetected DPI.  This has to be removed
+  for DisplaySize to work.  The file that you need to edit varies depending on
+  the way your X server is started:
+    xdm: /etc/X11/xdm/Xservers
+    kdm: /etc/kde3/kdm/Xservers
+    gdm: /etc/gdm/gdm.conf
+    startx: /etc/X11/xinit/xserverrc
+
+- Gnome's gconf overrides the autodetected DPI, by setting Xft.dpi to a value
+  entered in configuration dialog, 96 by default.  I don't know what is
+  the clean fix for this. Perhaps it should be fixed on the Gnome side.
+
+From Juergen Kreileder <jk at blackdown.de>:> 
+
+- Note that with most recent graphics cards and monitors XFree86 is able to
+  get the monitor size (and thus the correct dpi value) through ddc.
+    (**) NVIDIA(0): Validated modes for display device DFP-0:
+    (**) NVIDIA(0): Default mode "1600x1200": 189.0 MHz, 87.5 kHz, 70.0 Hz
+    (II) NVIDIA(0): Virtual screen size determined to be 1600 x 1200
+    (--) NVIDIA(0): Display dimensions: (410, 310) mm
+    (--) NVIDIA(0): DPI set to (99, 98) 
+  (That's with the proprietary NVIDIA drivers but other XFree86 drivers have
+  that support too.)
+
+If you use KDE or Gnome, OOo will use the same font face and size as your
+desktop environment.  If you use another window manager, you can either let OOo
+pick a default font itself, or change the font to be used (see next section),
+or set the OOO_FORCE_DESKTOP environment variable to kde or gnome, to use KDE
+or Gnome settings respectively.
+
+Changing the default user interface font typeface for non-KDE/Gnome desktops
+----------------------------------------------------------------------------
+If you do not want to use KDE or Gnome settings and want to change font sizes
+within OOo, you can configure the user interface font as follows:
+
+- Font size -
+
+You can change the font scaling using the user interface:
+
+   Tools Menu -> Options -> View -> Scale
+
+- Font typeface -
+
+You can change the default font typeface by replacing it with a different font
+installed on your system. This can be done using the font replacement function.
+Choose Tools - Options - OpenOffice.org - Font Replacement to access this
+function.
+
+To change the font of the OpenOffice.org user interface, you have to replace
+the default font "Andale Sans UI" with another font and mark the "always"
+setting for this replacement.  "Andale Sans UI" is not selectable and has to be
+typed in. The replacement font has to be a font which supports the requested
+locale ( e.g for Korean language the replacement font has to be a font
+including Korean characters).
+
+Refer to the OpenOffice.org Help for a detailed explanation of the font
+replacement dialog.
+
+Disabling the splash screen
+===========================
+If you don't like the splash screen staying in front of other windows while
+OpenOffice.org is loading, you can disable it by editing
+/etc/openoffice/sofficerc.  Change Logo=1 to Logo=0.
+
+More information about OpenOffice.org in Debian
+===============================================
+Please read the official README.gz (in the same directory as this file), too.
+
+For further information please see our web page at:
+
+   http://openoffice.debian.net
+
+Or the mailing list:
+
+   http://lists.debian.org/debian-openoffice
+
+Or the #debian-oo IRC channel on irc.debian.org
+
+The Debian OpenOffice.org team
--- openoffice.org-2.4.1.orig/debian/openoffice.org-math.menu.in
+++ openoffice.org-2.4.1/debian/openoffice.org-math.menu.in
@@ -0,0 +1,6 @@
+?package(openoffice.org-math):needs="X11" section="Applications/Science/Mathematics"\
+  title="OpenOffice.org Math" command="/usr/bin/oomath"\
+  hints="Equation,Editor,Formula"\
+  kderemove="y"\
+  icon="/usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-math.xpm"
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org-core.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org-core.control.bug
@@ -0,0 +1,2 @@
+report-with: openoffice.org-common openoffice.org-java-common ttf-opensymbol
+package-status: libxrender1 libxinerama1 libsane iceweasel firefox icedove iceape-browser openoffice.org-filter-binfilter pstoedit imagemagick fglrx-driver nvidia-glx nvidia-glx-legacy
--- openoffice.org-2.4.1.orig/debian/openoffice.org-sdbc-postgresql.postinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-sdbc-postgresql.postinst.in
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+THIS_PACKAGE=openoffice.org-sdbc-postgresql
+THIS_SCRIPT=postinst
+
+#INCLUDE_SHELL_LIB#
+
+if [ "$1" = "configure" -o "$1" = "upgrade" ]; then
+	add_extension /usr/lib/openoffice/share/extension/install/postgresql-sdbc*zip
+fi
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-ogltrans.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-ogltrans.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-ogltrans: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/broffice.org.postrm.in
+++ openoffice.org-2.4.1/debian/broffice.org.postrm.in
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# postrm script for broffice.org
+
+THIS_PACKAGE=broffice.org
+THIS_SCRIPT=postrm
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+DIVERSIONS="/@OODIR@/program/bootstraprc /@OODIR@/program/versionrc /@OODIR@/share/registry/data/org/openoffice/Setup.xcu /usr/share/applications/ooo@VER@-calc.desktop /usr/share/applications/ooo@VER@-writer.desktop /usr/share/applications/ooo@VER@-draw.desktop /usr/share/applications/ooo@VER@-base.desktop /usr/share/applications/ooo@VER@-impress.desktop /usr/share/applications/ooo@VER@-math.desktop /usr/share/applications/ooo@VER@-extension.desktop /usr/share/applications/ooo@VER@-template.desktop  /usr/share/application-registry/openoffice.applications"
+#DIVERSIONS="$DIVERSIONS /@OODIR@/program/intro.bmp /@OODIR@/program/about.bmp"
+DIVERSIONS="$DIVERSIONS /@OODIR@/program/openintro_ubuntu_sun.bmp /@OODIR@/program/openabout_ubuntu_sun.bmp"
+
+LANGPACKISOS="@LANGPACKISOS@"
+
+if [ "$1" = "remove" ]; then
+	for i in $DIVERSIONS; do
+		dpkg-divert --package $THIS_PACKAGE --remove --rename --divert $i.ooo $i
+	done
+        for i in $LANGPACKISOS; do
+		dpkg-divert --package $THIS_PACKAGE --remove --rename --divert /@OODIR@/program/resource/ooo680$i.res.ooo /@OODIR@/program/resource/ooo680$i.res
+	done
+fi
+
+#DEBHELPER#
+
--- openoffice.org-2.4.1.orig/debian/control.reportdesign.in
+++ openoffice.org-2.4.1/debian/control.reportdesign.in
@@ -0,0 +1,20 @@
+Package: openoffice.orgVER-report-builder
+Section: misc
+Priority: optional
+Architecture: %OOO_JAVA_ARCHS%
+Depends: ${shlibs:Depends}, ${report-builder-jar-depends}, openoffice.orgVER-base (>= 2.3.0~src680m225), openoffice.orgVER-core (>> 1:2.3.0~oog680m1), openoffice.org-java-common (>= 1:2.3.0~oog680m1)
+Conflicts: openoffice.org-reportdesigner
+Replaces: openoffice.org-reportdesigner
+Provides: openoffice.org-reportdesigner
+Enhances: openoffice.orgVER-base
+Description: OpenOffice.org Report Builder extension
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the report builder extension:
+  "Create with the Sun Report Builder stylish, smart-looking database reports.
+  The flexible report editor can define group and page headers as well as
+  group and page footers and even calculation fields are available to
+  accomplish complex database reports."
+Homepage: http://extensions.services.openoffice.org/project/reportdesign
+
--- openoffice.org-2.4.1.orig/debian/control.l10n.in
+++ openoffice.org-2.4.1/debian/control.l10n.in
@@ -0,0 +1,9 @@
+Package: openoffice.orgVER-l10n-common
+Architecture: all
+Description: common files for OpenOffice.org language and help packages
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains common files for the OpenOffice.org language
+ and help packages.
+
--- openoffice.org-2.4.1.orig/debian/openoffice.org.control.bug
+++ openoffice.org-2.4.1/debian/openoffice.org.control.bug
@@ -0,0 +1,2 @@
+report-with: openoffice.org-core openoffice.org-writer openoffice.org-calc openoffice.org-base openoffice.org-impress openoffice.org-math
+
--- openoffice.org-2.4.1.orig/debian/broffice.org.control.bug
+++ openoffice.org-2.4.1/debian/broffice.org.control.bug
@@ -0,0 +1 @@
+report-with: openoffice.org
--- openoffice.org-2.4.1.orig/debian/openoffice.org-filter-mobiledev.preinst.in
+++ openoffice.org-2.4.1/debian/openoffice.org-filter-mobiledev.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# preinst script for openoffice.org-filter-mobiledev
+
+THIS_PACKAGE=openoffice.org-filter-mobiledev
+THIS_SCRIPT=preinst
+
+set -e
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in install|upgrade)
+	if [ -L /usr/lib/openoffice/program/classes ]; then
+		rm /usr/lib/openoffice/program/classes
+		mkdir /usr/lib/openoffice/program/classes
+	fi
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-gtk.overrides.lintian
+++ openoffice.org-2.4.1/debian/openoffice.org-gtk.overrides.lintian
@@ -0,0 +1 @@
+openoffice.org-gtk: binary-or-shlib-defines-rpath
--- openoffice.org-2.4.1.orig/debian/openoffice.org-report-builder.prerm.in
+++ openoffice.org-2.4.1/debian/openoffice.org-report-builder.prerm.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+# preinst script for openoffice.org-report-builder
+
+THIS_PACKAGE=openoffice.org-report-builder
+THIS_SCRIPT=prerm
+
+#INCLUDE_SHELL_LIB#
+
+case "$1" in
+	remove)
+		remove_extension com.sun.reportdesigner
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- openoffice.org-2.4.1.orig/debian/openoffice.org-writer.overrides.lintian.in
+++ openoffice.org-2.4.1/debian/openoffice.org-writer.overrides.lintian.in
@@ -0,0 +1,4 @@
+openoffice.org-writer: binary-or-shlib-defines-rpath
+openoffice.org-writer: menu-icon-missing /usr/share/icons/gnome/32x32/apps/openofficeorg@ICONVERSION@-writer.xpm
+openoffice.org-writer: menu-item-contains-unknown-tag kderemove /usr/share/menu/openoffice.org-writer:5
+openoffice.org-writer: desktop-command-not-in-package /usr/share/applications/ooo-writer.desktop ooffice
--- openoffice.org-2.4.1.orig/debian/openoffice.org-filter-binfilter.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-filter-binfilter.mime
@@ -0,0 +1,14 @@
+###
+# shared-mime-info
+
+# StarDivision StarOffice 5.0
+application/vnd.stardivision.calc; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="StarCalc 5.0"; nametemplate=%s.sdc; priority=8
+application/vnd.stardivision.chart; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="StarChart 5.0"; nametemplate=%s.sds; priority=8
+application/vnd.stardivision.draw; soffice -draw '%s'; edit=soffice -draw '%s'; test=test -n "$DISPLAY"; description="StarDraw 5.0"; nametemplate=%s.sda; priority=8
+application/vnd.stardivision.impress; soffice -impress '%s'; edit=soffice -impress '%s'; test=test -n "$DISPLAY"; description="StarImpress 5.0"; nametemplate=%s.sdd; priority=8
+application/vnd.stardivision.math; soffice -math '%s'; edit=soffice -math '%s'; test=test -n "$DISPLAY"; description="StarMath 5.0"; nametemplate=%s.sdf; priority=8
+application/vnd.stardivision.writer-global; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="StarWriter 5.0 Master Document"; nametemplate=%s.sgl; priority=8
+application/vnd.stardivision.writer; soffice -writer '%s'; edit=soffice -writer '%s'; test=test -n "$DISPLAY"; description="StarWriter 5.0"; nametemplate=%s.sdw; priority=8
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/presubj
+++ openoffice.org-2.4.1/debian/presubj
@@ -0,0 +1,48 @@
+Reporting a bug against openoffice.org
+--------------------------------------
+I) Make sure it's a OOo bug after all: #398923 and its friends for example
+   are not.
+   Set the Version: header right. If you found a bug in a specific version,
+   set that as version:, even if you in the meanwhile upgraded. If you are on
+   an up-to-date version and tried old versions and they have the bug, too, set
+   the Version: header to the earliest version you found it in (of course, if versions
+   inbetween don't have the bug use the version in which it reappeared and sustained to
+   the current version)
+
+II) Check on the BTS (http://bugs.debian.org/src:openoffice.org) whether the
+   bug already is reported. Do *NOT* report a new one then. For judging whether
+   it's already reported, read *ALL* the bugs, think, try and use common sense.
+
+III) If you have crashes with a document, try another one. If only that or
+    similar docs causes problems please attach THIS (or a similar type one
+    causing it). Otherwise, don't file a bug, we can't look at it anyway.
+
+IV) Please attach a backtrace if possible (see README.Debian). Install
+     openoffice.org-dbg before doing this (and the packages it Recommends)
+
+V) If the bug is also in the version you can get from www.openoffice.org, file
+   it there in the first place. If you really think this also should be a bug
+   in the Debian BTS (because it's (release-)critical or otherwise important)
+   please file a bug there too *BUT* note the issue number in the bug or mark it 
+   forwarded yourself if you can. Especially this is for feature requests.
+   If you tested other OOos and the bug is (not) in version foo from bar, mention
+   that, too.
+
+VI) Only report bugs on completely up-to-date systems. Don't file bugs on a
+    obsolete version and neither on sid/testing systems really old. If bugs
+    got fixed in sid, it doesn't make sense to file them anymore. (Exception
+    is security bugs or really critical bugs which should be get fixed in
+    stable.) When you think a dependency is missing/wrong/too lax please be *sure*
+    that this is the case before reporting it. Most times it isn't.
+    Use common sense and the bug severities for judging here. When you think you have
+    an up-to-date system, check whether you really have one.
+    (And do a dist-upgrade, try to reproduce the bug again).
+    Also don't report bugs on broken mix systems unless you are sure about the
+    dependencies/conflicts (see above).
+
+VII) Please give as much info as possible (installed OOo packages, installed 
+     extensions, "special" configs, additions, changes, whatever). Better too
+     much than too less. (See #396225 for example which was caused by an
+     unsupportable, non-free extension)
+
+Thanks.
--- openoffice.org-2.4.1.orig/debian/control.debug.in
+++ openoffice.org-2.4.1/debian/control.debug.in
@@ -0,0 +1,12 @@
+Package: openoffice.orgVER-dbg
+Section: devel
+Architecture: %OOO_ARCHS%
+Priority: extra
+Suggests: ${dbg-dbg-suggests}
+Description: OpenOffice.org debug symbols
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the debug symbols of all OpenOffice.org and
+ OpenOffice.org SDK components.
+
--- openoffice.org-2.4.1.orig/debian/soffice.sh
+++ openoffice.org-2.4.1/debian/soffice.sh
@@ -0,0 +1,21 @@
+# configuration file to set up some environment variables for OOo
+
+# File locking; possible values are:
+# - yes:  enable file locking unconditionally
+# - no:   disable file locking
+# - auto: enable file locking, when the document is found on a nfs share
+# If the environment variable SAL_ENABLE_FILE_LOCKING is set,
+# the setting if ENABLE_FILE_LOCKING has no effect.
+
+FILE_LOCKING=auto
+
+# OpenGL support; may cause trouble with the restricted nvidia and fglrx
+# drivers; possible values are:
+# - yes:  enable OpenGL support unconditionally
+# - no:   disable OpenGL support.
+# - auto: only enable OpenGL support, if not running with the restricted
+#   nvidia and fglrx drivers.
+# If the environment variable SAL_NOOPENGL is set,
+# the setting if OPENGL_SUPPORT has no effect.
+
+OPENGL_SUPPORT=no
--- openoffice.org-2.4.1.orig/debian/compat
+++ openoffice.org-2.4.1/debian/compat
@@ -0,0 +1 @@
+5
--- openoffice.org-2.4.1.orig/debian/openoffice.org-draw.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-draw.mime
@@ -0,0 +1,13 @@
+###
+# shared-mime-info
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.graphics; soffice -draw '%s'; edit=soffice -draw '%s'; test=test -n "$DISPLAY"; description="OpenDocument Drawing"; nametemplate=%s.odg; priority=9
+application/vnd.oasis.opendocument.graphics-template; soffice -draw '%s'; edit=soffice -draw '%s'; test=test -n "$DISPLAY"; description="OpenDocument Drawing Template"; nametemplate=%s.otg; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.draw; soffice -draw '%s'; edit=soffice -draw '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing"; nametemplate=%s.sxd; priority=8
+application/vnd.sun.xml.draw.template; soffice -draw '%s'; edit=soffice -draw '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing Template"; nametemplate=%s.std; priority=8
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/watch
+++ openoffice.org-2.4.1/debian/watch
@@ -0,0 +1,2 @@
+version=3
+opts=dversionmangle=s/\.dfsg\.\d+$// http://ftp.stardiv.de/pub/OpenOffice.org/stable/(\d.\d.\d)/OOo_(\d.\d.\d)_src_core\.tar\.bz2
--- openoffice.org-2.4.1.orig/debian/control.sdk.in
+++ openoffice.org-2.4.1/debian/control.sdk.in
@@ -0,0 +1,51 @@
+Package: openoffice.orgVER-dev
+Section: devel
+Architecture: %OOO_ARCHS%
+Depends: openoffice.orgVER-core (= ${Source-Version}),
+ ${shlibs:Depends},
+ ${dev-stl-depends}
+Recommends: dmake,
+ g++,
+ java-gcj-compat-dev,
+ ${java-common-depends}
+Suggests: openoffice.org-dev-doc,
+ libmythes-dev,
+ c-shell
+Replaces: openoffice.org2-core (<= 1.9.108-1),
+ openoffice.org2-dev,
+ openoffice.org-java,
+ openoffice.orgVER-common (<< 2.0.2-3),
+ openoffice.org-dev-doc (<< 2.0.2-4)
+Conflicts: openoffice.org-debian-files, openoffice.org2-dev
+Provides: openoffice.org2-dev
+Description: OpenOffice.org SDK -- development files
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the files needed to build plugins/add-ons for
+ OpenOffice.org (includes, IDL files, build tools, ...). It also contains
+ the zipped source of the UNO Java libraries for use in IDEs like eclipse.
+
+Package: openoffice.orgVER-dev-doc
+Section: doc
+Architecture: all
+Recommends: www-browser
+Suggests: g++,
+ java2-compiler,
+ openoffice.orgVER-dtd-officedocument1.0
+Replaces: openoffice.org-dev (<< 2.1),
+ openoffice.org2-dev-doc
+Provides: openoffice.org2-dev-doc
+Conflicts: openoffice.org2-dev-doc
+Description: OpenOffice.org SDK -- documentation
+ OpenOffice.org is a full-featured office productivity suite that provides
+ a near drop-in replacement for Microsoft(R) Office.
+ .
+ This package contains the documentation of the OpenOffice.org SDK:
+ .
+  * C++/Java API reference
+  * IDL reference
+  * C++/Java/Basic examples
+ .
+ It also contains the gsicheck utility.
+ 
--- openoffice.org-2.4.1.orig/debian/openoffice.org-calc.mime
+++ openoffice.org-2.4.1/debian/openoffice.org-calc.mime
@@ -0,0 +1,46 @@
+###
+# shared-mime-info
+
+# Generic
+text/csv; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="CSV Document"; nametemplate=%s.csv; priority=3
+text/spreadsheet; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Spreadsheet Interchange Document"; nametemplate=%s.slk; priority=3
+
+# Corel Quattro Pro
+application/x-quattropro; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Quattro Pro 6 for Windows Spreadsheet"; nametemplate=%s.wb2; priority=3
+
+# dBase dBASE
+application/x-dbf; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="xBase Document"; nametemplate=%s.dbf; priority=3
+
+# ECMA Office Open XML (Microsoft Office 2007)
+application/vnd.ms-excel.sheet.macroEnabled.12; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet with Macros Enabled"; nametemplate=%s.xlsm; priority=3
+application/vnd.ms-excel.template.macroEnabled.12; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template with Macros Enabled"; nametemplate=%s.xltm; priority=3
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet"; nametemplate=%s.xlsx; priority=3
+application/vnd.openxmlformats-officedocument.spreadsheetml.template; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template"; nametemplate=%s.xltx; priority=3
+
+# IBM Lotus 1-2-3
+application/vnd.lotus-1-2-3; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Lotus 1-2-3 spreadsheet"; nametemplate=%s.123; priority=3
+
+# Microsoft Excel
+application/vnd.ms-excel; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Microsoft Excel Document"; nametemplate=%s.xls; priority=3
+
+# OASIS OpenDocument Format
+application/vnd.oasis.opendocument.chart; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="OpenDocument Chart"; nametemplate=%s.odc; priority=9
+application/vnd.oasis.opendocument.spreadsheet; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet"; nametemplate=%s.ods; priority=9
+application/vnd.oasis.opendocument.spreadsheet-template; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet Template"; nametemplate=%s.ots; priority=9
+
+# OpenOffice.org 1.0
+application/vnd.sun.xml.calc; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet"; nametemplate=%s.sxc; priority=8
+application/vnd.sun.xml.calc.template; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet Template"; nametemplate=%s.stc; priority=8
+
+#
+###
+
+###
+# KDE 3 (obsolete)
+
+application/msexcel; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="Microsoft Excel Document"; nametemplate=%s.xls; priority=3
+application/x-dbase; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="xBase Document"; nametemplate=%s.dbf; priority=3
+text/x-csv; soffice -calc '%s'; edit=soffice -calc '%s'; test=test -n "$DISPLAY"; description="CSV Document"; nametemplate=%s.csv; priority=3
+
+#
+###
--- openoffice.org-2.4.1.orig/debian/copyright
+++ openoffice.org-2.4.1/debian/copyright
@@ -0,0 +1,2612 @@
+Package: OpenOffice.org
+Obtained from: http://ftp.stardiv.de/pub/OpenOffice.org/contrib/rc/2.4.1rc2
+Upstream authors: The OpenOffice.org and go-oo.org teams
+Debian package authors: Peter Novodvorsky, Jan Palic, Chris Halls, Rene Engelhard
+
+Debian copyright(s)/license(s):
+Modifications and additions are free software; you can redistribute them
+and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Based in part on code from sash, Copyright (c) 1999 by David I. Bell
+# Permission has been granted to redistribute this code under the GPL.
+
+Unless otherwise noted, all modifications and additions to OpenOffice.org
+found in this Debian package bear the following copyright and license terms:
+
+
+Upstream copyright(s)/license(s):
+
+This product is made available subject to the terms of GNU Lesser General
+Public License Version 2.1. A copy of the LGPL license can be found
+http://www.openoffice.org/project/www/license.html
+
+Copyright 2002-2007 Sun Microsystems, Inc.
+
+On Debian systems, a copy of the LGPL 2.1 can also be found in
+/usr/share/common-licenses/LGPL-2.1.
+
+------------------------------------
+Copyright 2002 Sun Microsystems, Inc.
+
+This product has been created with contributions from the OpenOffice.org
+community, of which Sun Microsystem Inc. is the founding member. OpenOffice.org
+acknowledges all community members, especially those mentioned at
+http://www.openoffice.org/welcome/credits.html.
+
+The Sun logo is used on the OpenOffice splash screen in Ubuntu with
+the permission of Sun Microsystems. That permission includes
+redistribution for mirrors and for derivatives of Ubuntu that do not
+modify this source package. You are of course allowed to modify the
+source package under its existing open source license, but in that
+case you must either use a version of the splash screen that does not
+include the Sun logo, or reach your own agreement with Sun
+Microsystems. The standard terms of the logo agreement can be seen
+at http://wiki.ubuntu.com/SunOpenOfficeLogo.
+
+=====================================================
+Copyrights from THIRDPARTYLICENSEREADME.html
+
+-------------------------------------------------------------------------------
+
+
+   DO NOT TRANSLATE OR LOCALIZE THIS DOCUMENT
+     * World Wide Web Consortium (W3C) 
+          + MathML DTD 
+     * Adobe 
+          + PostScript(R) AFM files 
+     * Pat Niemeyer 
+          + beanshell 
+     * Boost.org 
+          + C++ Boost Library 
+     * KDE Artists: 
+          + KDE Crystal theme icons 
+     * Daniel Stenberg 
+          + libcurl 
+     * Friedel Wolff 
+          + Afrikaans dictionary 
+     * Davide Prina 
+          + Italian dictionary 
+     * Marek Futrega 
+          + Polish spelling dictionary 
+     * Zdenko Podobny 
+          + Slovak dictionary 
+     * Ales Kosir 
+          + Slovenian spellcheck dictionary 
+     * Göran Anderson 
+          + Swedish dictionary 
+     * James Clark 
+          + expat XML Parser Toolkit 
+     * Freetype Project 
+          + Freetype Library 
+     * FSF 
+          + GNU General Public License 
+     * gimp.org 
+          + The Gimp Toolkit (GTK+) 
+     * Thomas Mueller and the Hypersonic SQL Group: 
+          + HSQLDB 
+     * Adam Polaczynski 
+          + Polish hyphenation dictionary 
+     * Matjaz Vrecko 
+          + Slovenian pattern for hyphenation 
+     * International Business Machine Corporation (IBM) 
+          + ICU 
+     * Jason Hunter, Brett McLaughlin 
+          + JDOM 
+     * Independent JPEG Group (IJG) 
+          + IJG JPEG Library 
+     * FSF 
+          + GNU Lesser General Public License 
+     * Erik de Castro Lopo 
+          + libsndfile 
+     * Free Software Foundation, Inc. 
+          + GNU ISO C++ Library 
+     * WiseGuys Internet B.V. 
+          + libtextcat 
+     * William LaChance 
+          + libwpd 
+     * Daniel Veillard 
+          + libxml2 
+     * Kjell Eikland and Peter Notebaert 
+          + lpsolve 
+     * Network Computer Devices, Inc.
+          + Network Audio System (NAS)
+     * Joe Orton 
+          + neon 
+     * Ross Bencina and Phil Burk 
+          + PortAudio 
+     * Norris Boyd, Patrick Beard 
+          + Rhino 
+     * Boris Fomitchev 
+          + STLport 
+     * Daniela Volta, Davide Prina 
+          + Italian Thesaurus 
+     * Unicode, Inc. 
+          + Unicode CLDR data repository 
+     * unixODBC.org 
+          + unixODBC 
+     * Ullrich Koethe 
+          + vigra 
+     * Aleksey Sanin 
+          + XML Security Library (xmlsec) 
+     * Keith Packard, SuSE, Inc. 
+          + X11 XRender Extension 
+     * James Clark, Bill Lindsey 
+          + XT 
+     * Jean-Loup Gailly, Mark Adler 
+          + zlib 
+     * Bitstream, Inc. 
+          + Bitstream Vera Fonts 
+     * Sleepycat Software 
+          + BerkeleyDB 
+     * Pavel Rychly, Pavel Smrz, {pary,smrz}@fi.muni.cz, NLPlab, Faculty
+       of Informatics, Masaryk University 
+          + Czech Thesaurus Database 
+     * Alan Murta 
+          + GPC 
+     * LaTeX3 Project 
+          + LPPL version 1.3b 
+     * Bjoern Jacke 
+          + German Dictionaries igerman98 
+     * Princeton University 
+          + WordNet 2.1 
+     _________________________________________________________________
+
+   The following software may be included in this product: MathML DTD;
+   Use of any of this software is governed by the terms of the license
+   below:
+
+World Wide Web Consortium (W3C)
+
+  MathML DTD
+
+                       W3C^® SOFTWARE NOTICE AND LICENSE
+
+    Copyright © 1994-2001 World Wide Web Consortium, (Massachusetts Institute
+    of Technology, Institut National de Recherche en Informatique et en
+    Automatique, Keio University). All Rights Reserved.
+    http://www.w3.org/Consortium/Legal/
+
+   This W3C work (including software, documents, or other related items)
+   is being provided by the copyright holders under the following
+   license. By obtaining, using and/or copying this work, you (the
+   licensee) agree that you have read, understood, and will comply with
+   the following terms and conditions:
+
+   Permission to use, copy, modify, and distribute this software and its
+   documentation, with or without modification,  for any purpose and
+   without fee or royalty is hereby granted, provided that you include
+   the following on ALL copies of the software and documentation or
+   portions thereof, including modifications, that you make:
+    1. The full text of this NOTICE in a location viewable to users of
+       the redistributed or derivative work.
+    2. Any pre-existing intellectual property disclaimers, notices, or
+       terms and conditions. If none exist, a short notice of the
+       following form (hypertext is preferred, text is permitted) should
+       be used within the body of any redistributed or derivative code:
+       "Copyright © [$date-of-software] World Wide Web Consortium,
+       (Massachusetts Institute of Technology, Institut National de
+       Recherche en Informatique et en Automatique, Keio University). All
+       Rights Reserved. http://www.w3.org/Consortium/Legal/"
+    3. Notice of any changes or modifications to the W3C files, including
+       the date changes were made. (We recommend you provide URIs to the
+       location from which the code is derived.)
+
+   THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
+   HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
+   INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
+   FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
+   DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+   TRADEMARKS OR OTHER RIGHTS.
+
+   COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+   OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+   DOCUMENTATION.
+
+   The name and trademarks of copyright holders may NOT be used in
+   advertising or publicity pertaining to the software without specific,
+   written prior permission. Title to copyright in this software and any
+   associated documentation will at all times remain with copyright
+   holders.
+     _________________________________________________________________
+
+   The following software may be included in this product: PostScript(R)
+   AFM Files; Use of any of this software is governed by the terms of the
+   license below:
+
+Adobe
+
+  PostScript(R) AFM files
+
+   Adobe Core 35 AFM Files with 314 Glyph Entries
+   This file and the 35 PostScript(R) AFM files it accompanies may be
+   used, copied, and distributed for any purpose and without charge, with
+   or without modification, provided that all copyright notices are
+   retained; that the AFM files are not distributed without this file;
+   that all modifications to this file or any of the AFM files are
+   prominently noted in the modified file(s); and that this paragraph is
+   not modified. Adobe Systems has no responsibility or obligation to
+   support the use of the AFM files.
+     _________________________________________________________________
+
+   The following software may be included in this product: beanshell; Use
+   of any of this software is governed by the terms of the license below:
+
+Pat Niemeyer
+
+  beanshell
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: C++ Boost
+   Library; Use of any of this software is governed by the terms of the
+   license below:
+
+Boost.org
+
+  C++ Boost Library
+
+   Boost Software License - Version 1.0 - August 17th, 2003
+   Permission is hereby granted, free of charge, to any person or
+   organization obtaining a copy of the software and accompanying
+   documentation covered by this license (the "Software") to use,
+   reproduce, display, distribute, execute, and transmit the Software,
+   and to prepare derivative works of the Software, and to permit
+   third-parties to whom the Software is furnished to do so, all subject
+   to the following:
+   The copyright notices in the Software and this entire statement,
+   including the above license grant, this restriction and the following
+   disclaimer, must be included in all copies of the Software, in whole
+   or in part, and all derivative works of the Software, unless such
+   copies or derivative works are solely in the form of
+   machine-executable object code generated by a source language
+   processor.
+   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, TITLE AND
+   NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE
+   DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER
+   LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
+   OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+   THE SOFTWARE.
+     _________________________________________________________________
+
+   The following software may be included in this product:Charis SIL v4;
+   Use of any of this software is governed by the terms of the license
+   below:
+
+KDE Artists:
+
+  KDE Crystal theme icons
+
+   KDE Crystal theme icons.
+   Copyright (C) 2002 and following years KDE Artists This library is
+   free software; you can redistribute it and/or modify it under the
+   terms of the GNU Lesser General Public License as published by the
+   Free Software Foundation, version 2.1 of the License.
+   This library is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+   Lesser General Public License for more details.
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+   USA
+   **** NOTE THIS ADD-ON ****
+   The GNU Lesser General Public License or LGPL is written for software
+   libraries in the first place. We expressly want the LGPL to be valid
+   for this artwork library too.
+   KDE Crystal theme icons is a special kind of software library, it is
+   an artwork library, it's elements can be used in a Graphical User
+   Interface, or GUI.
+   Source code, for this library means:
+   - for vectors svg;
+   - for pixels, if applicable, the multi-layered formats xcf or psd, or
+   otherwise png.
+   The LGPL in some sections obliges you to make the files carry notices.
+   With images this is in some cases impossible or hardly useful. With
+   this library a notice is placed at a prominent place in the directory
+   containing the elements. You may follow this practice.
+   The exception in section 6 of the GNU Lesser General Public License
+   covers the use of elements of this art library in a GUI. kde-artists
+   [at] kde.org
+     _________________________________________________________________
+
+   The following software may be included in this product: libcurl; Use
+   of any of this software is governed by the terms of the license below:
+
+Daniel Stenberg
+
+  libcurl
+
+   Copyright (C) 1998-2001, Daniel Stenberg, , et al.
+   Everyone is permitted to copy and distribute verbatim copies of this
+   license document, but changing it is not allowed.
+   In order to be useful for every potential user, the curl and libcurl
+   are dual-licensed under the MPL and the MIT/X-derivate licenses.
+   You may opt to use, copy, modify, merge, publish, distribute and/or
+   sell copies of the Software, and permit persons to whom the Software
+   is furnished to do so, under the terms of the MPL or the
+   MIT/X-derivate licenses. You may pick one of these licenses. The files
+   MITX.txt and MPL-1.1.txt contain the license texts.
+   As a courtesy to the open-source and free software community, we ask
+   you to dual-license any modifications that you make as well, under the
+   terms of this document.
+   Please remember to always keep the licensing information included in
+   individual source files up-to-date, so as to avoid misleading anyone
+   as to the status of these files.
+   I will use a submission policy according to which I will only enter
+   contributions into the CVS tree if the contributor agrees to both
+   licenses and this dual-license approach.
+     _________________________________________________________________
+
+   The following software may be included in this product: Afrikaans
+   dictionary; Use of any of this software is governed by the terms of
+   the license below:
+
+Friedel Wolff
+
+  Afrikaans dictionary
+
+   Jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: Italian
+   dictionary; Use of any of this software is governed by the terms of
+   the license below:
+
+Davide Prina
+
+  Italian dictionary
+
+   Jump to GPL
+     _________________________________________________________________
+
+   The following software may be included in this product: Polish
+   spelling dictionary; Use of any of this software is governed by the
+   terms of the license below:
+
+Marek Futrega
+
+  Polish spelling dictionary
+
+   jump to Mozilla Public License
+     _________________________________________________________________
+
+   The following software may be included in this product: Slovak
+   dictionary; Use of any of this software is governed by the terms of
+   the license below:
+
+Zdenko Podobny
+
+  Slovak dictionary
+
+   jump to Mozilla Public License
+     _________________________________________________________________
+
+   The following software may be included in this product: Slovenian
+   spellcheck dictionary; Use of any of this software is governed by the
+   terms of the license below:
+
+Ales Kosir
+
+  Slovenian spellcheck dictionary
+
+   Gnu Lesser General Public License
+     _________________________________________________________________
+
+   The following software may be included in this product: Swedish
+   dictionary; Use of any of this software is governed by the terms of
+   the license below:
+
+Göran Anderson
+
+  Swedish dictionary
+
+   jump to GNU Lesser General Public License
+     _________________________________________________________________
+
+   The following software may be included in this product: expat XML
+   Parser Toolkit; Use of any of this software is governed by the terms
+   of the license below:
+
+James Clark
+
+  expat XML Parser Toolkit
+
+   Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+   and Clark Cooper
+   Copyright (c) 2001, 2002, 2003 Expat maintainers.
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   "Software"), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Software.
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+     _________________________________________________________________
+
+   The following software may be included in this product: Freetype; Use
+   of any of this software is governed by the terms of the license below:
+
+Freetype Project
+
+  Freetype Library
+
+   Legal Terms
+   ===========
+   0. Definitions
+   --------------
+   Throughout this license, the terms `package', `FreeType Project', and
+   `FreeType archive' refer to the set of files originally distributed by
+   the authors (David Turner, Robert Wilhelm, and Werner Lemberg) as the
+   `FreeType Project', be they named as alpha, beta or final release.
+   `You' refers to the licensee, or person using the project, where
+   `using' is a generic term including compiling the project's source
+   code as well as linking it to form a `program' or `executable'. This
+   program is referred to as `a program using the FreeType engine'.
+   This license applies to all files distributed in the original FreeType
+   Project, including all source code, binaries and documentation, unless
+   otherwise stated in the file in its original, unmodified form as
+   distributed in the original archive. If you are unsure whether or not
+   a particular file is covered by this license, you must contact us to
+   verify this.
+   The FreeType Project is copyright (C) 1996-2000 by David Turner,
+   Robert Wilhelm, and Werner Lemberg. All rights reserved except as
+   specified below.
+   1. No Warranty
+   --------------
+   THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY KIND,
+   EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES
+   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+   WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES
+   CAUSED BY THE USE OR THE INABILITY TO USE, OF THE FREETYPE PROJECT.
+   2. Redistribution
+   -----------------
+   This license grants a worldwide, royalty-free, perpetual and
+   irrevocable right and license to use, execute, perform, compile,
+   display, copy, create derivative works of, distribute and sublicense
+   the FreeType Project (in both source and object code forms) and
+   derivative works thereof for any purpose; and to authorize others to
+   exercise some or all of the rights granted herein, subject to the
+   following conditions:
+   o Redistribution of source code must retain this license file
+   (`FTL.TXT') unaltered; any additions, deletions or changes to the
+   original files must be clearly indicated in accompanying
+   documentation. The copyright notices of the unaltered, original files
+   must be preserved in all copies of source files.
+   o Redistribution in binary form must provide a disclaimer that states
+   that the software is based in part of the work of the FreeType Team,
+   in the distribution documentation. We also encourage you to put an URL
+   to the FreeType web page in your documentation, though this isn't
+   mandatory.
+   These conditions apply to any software derived from or based on the
+   FreeType Project, not just the unmodified files. If you use our work,
+   you must acknowledge us. However, no fee need be paid to us.
+   3. Advertising
+   --------------
+   Neither the FreeType authors and contributors nor you shall use the
+   name of the other for commercial, advertising, or promotional purposes
+   without specific prior written permission.
+   We suggest, but do not require, that you use one or more of the
+   following phrases to refer to this software in your documentation or
+   advertising materials: `FreeType Project', `FreeType Engine',
+   `FreeType library', or `FreeType Distribution'.
+   As you have not signed this license, you are not required to accept
+   it. However, as the FreeType Project is copyrighted material, only
+   this license, or another one contracted with the authors, grants you
+   the right to use, distribute, and modify it. Therefore, by using,
+   distributing, or modifying the FreeType Project, you indicate that you
+   understand and accept all the terms of this license.
+   4. Contacts
+   -----------
+   There are two mailing lists related to FreeType:
+   o freetype@freetype.org
+   Discusses general use and applications of FreeType, as well as future
+   and wanted additions to the library and distribution. If you are
+   looking for support, start in this list if you haven't found anything
+   to help you in the documentation.
+   o devel@freetype.org
+   Discusses bugs, as well as engine internals, design issues, specific
+   licenses, porting, etc.
+   o http://www.freetype.org
+   Holds the current FreeType web page, which will allow you to download
+   our latest development version and read online documentation.
+   You can also contact us individually at:
+   David Turner
+   Robert Wilhelm
+   Werner Lemberg
+     _________________________________________________________________
+
+FSF
+
+  GNU General Public License
+
+on Debian systems, the full text of the GNU LGPL can be found in
+/usr/share/common-licenses/GPL
+
+Thomas Mueller and the Hypersonic SQL Group:
+
+  HSQLDB
+
+   ORIGINAL LICENSE (a.k.a. "hypersonic_lic.txt")
+
+   For content, code, and products originally developed by Thomas Mueller
+   and the Hypersonic SQL Group:
+   Copyright (c) 1995-2000 by the Hypersonic SQL Group.
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+   Redistributions of source code must retain the above copyright notice,
+   this
+   list of conditions and the following disclaimer.
+   Redistributions in binary form must reproduce the above copyright
+   notice,
+   this list of conditions and the following disclaimer in the
+   documentation
+   and/or other materials provided with the distribution.
+   Neither the name of the Hypersonic SQL Group nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this
+   software without specific prior written permission.
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+   THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL THE HYPERSONIC SQL GROUP,
+   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+   CAUSED AND
+   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+   TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+   OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+   This software consists of voluntary contributions made by many
+   individuals on behalf of the
+   Hypersonic SQL Group.
+
+For work added by the HSQL Development Group (a.k.a. hsqldb_lic.txt):
+
+   Copyright (c) 2001-2004, The HSQL Development Group
+   All rights reserved.
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+   Redistributions of source code must retain the above copyright notice,
+   this
+   list of conditions and the following disclaimer.
+   Redistributions in binary form must reproduce the above copyright
+   notice,
+   this list of conditions and the following disclaimer in the
+   documentation
+   and/or other materials provided with the distribution.
+   Neither the name of the HSQL Development Group nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this
+   software without specific prior written permission.
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+   THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
+   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+   CAUSED AND
+   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+   TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+   OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+     _________________________________________________________________
+
+   The following software may be included in this product: Polish
+   hyphenation dictionary; Use of any of this software is governed by the
+   terms of the license below:
+
+Adam Polaczynski
+
+  Polish hyphenation dictionary
+
+   Lesser Gnu Library License
+     _________________________________________________________________
+
+   The following software may be included in this product: Slovenian
+   pattern for hyphenation; Use of any of this software is governed by
+   the terms of the license below:
+
+Matjaz Vrecko
+
+  Slovenian pattern for hyphenation
+
+   Lesser Gnu Library License
+     _________________________________________________________________
+
+   The following software may be included in this product: ICU; Use of
+   any of this software is governed by the terms of the license below:
+
+International Business Machine Corporation (IBM)
+
+  ICU
+
+    ICU License - ICU 1.8.1 and later
+
+COPYRIGHT AND PERMISSION NOTICE
+Copyright (c) 1995-2002 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 t
+heir respective owners.
+     _________________________________________________________________
+
+   The following software may be included in this product: JDOM; Use of
+   any of this software is governed by the terms of the license below:
+
+Jason Hunter, Brett McLaughlin
+
+  JDOM
+
+   Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. All rights
+   reserved.
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+   1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions, and the following disclaimer.
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions, and the disclaimer that follows these
+   conditions in the documentation and/or other materials provided with
+   the distribution.
+   3. The name "JDOM" must not be used to endorse or promote products
+   derived from this software without prior written permission. For
+   written permission, please contact .
+   4. Products derived from this software may not be called "JDOM", nor
+   may "JDOM" appear in their name, without prior written permission from
+   the JDOM Project Management .
+   In addition, we request (but do not require) that you include in the
+   end-user documentation provided with the redistribution and/or in the
+   software itself an acknowledgement equivalent to the following:
+   "This product includes software developed by the JDOM Project
+   (http://www.jdom.org/)."
+   Alternatively, the acknowledgment may be graphical using the logos
+   available at http://www.jdom.org/images/logos.
+   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+   IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT CONTRIBUTORS BE
+   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+   BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+   OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+   IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   This software consists of voluntary contributions made by many
+   individuals on behalf of the JDOM Project and was originally created
+   by Jason Hunter and Brett McLaughlin . For more information on the
+   JDOM Project, please see .
+     _________________________________________________________________
+
+   The following software may be included in this product: IJG JPEG
+   Library; Use of any of this software is governed by the terms of the
+   license below:
+
+Independent JPEG Group (IJG)
+
+  IJG JPEG Library
+
+   The authors make NO WARRANTY or representation, either express or
+   implied, with respect to this software, its quality, accuracy,
+   merchantability, or fitness for a particular purpose. This software is
+   provided "AS IS", and you, its user, assume the entire risk as to its
+   quality and accuracy.
+   This software is copyright (C) 1991-1998, Thomas G. Lane. All Rights
+   Reserved except as specified below.
+   Permission is hereby granted to use, copy, modify, and distribute this
+   software (or portions thereof) for any purpose, without fee, subject
+   to these conditions:
+   (1) If any part of the source code for this software is distributed,
+   then this README file must be included, with this copyright and
+   no-warranty notice unaltered; and any additions, deletions, or changes
+   to the original files must be clearly indicated in accompanying
+   documentation.
+   (2) If only executable code is distributed, then the accompanying
+   documentation must state that "this software is based in part on the
+   work of the Independent JPEG Group".
+   (3) Permission for use of this software is granted only if the user
+   accepts full responsibility for any undesirable consequences; the
+   authors accept NO LIABILITY for damages of any kind.
+   These conditions apply to any software derived from or based on the
+   IJG code, not just to the unmodified library. If you use our work, you
+   ought to acknowledge us.
+   Permission is NOT granted for the use of any IJG author's name or
+   company name in advertising or publicity relating to this software or
+   products derived from it. This software may be referred to only as
+   "the Independent JPEG Group's software".
+   We specifically permit and encourage the use of this software as the
+   basis of commercial products, provided that all warranty or liability
+   claims are assumed by the product vendor.
+   ansi2knr.c is included in this distribution by permission of L. Peter
+   Deutsch, sole proprietor of its copyright holder, Aladdin Enterprises
+   of Menlo Park, CA. ansi2knr.c is NOT covered by the above copyright
+   and conditions, but instead by the usual distribution terms of the
+   Free Software Foundation; principally, that you must include source
+   code if you redistribute it. (See the file ansi2knr.c for full
+   details.) However, since ansi2knr.c is not needed as part of any
+   program generated from the IJG code, this does not limit you more than
+   the foregoing paragraphs do.
+   The Unix configuration script "configure" was produced with GNU
+   Autoconf. It is copyright by the Free Software Foundation but is
+   freely distributable. The same holds for its supporting scripts
+   (config.guess, config.sub, ltconfig, ltmain.sh). Another support
+   script, install-sh, is copyright by M.I.T. but is also freely
+   distributable.
+   It appears that the arithmetic coding option of the JPEG spec is
+   covered by patents owned by IBM, AT&T, and Mitsubishi. Hence
+   arithmetic coding cannot legally be used without obtaining one or more
+   licenses. For this reason, support for arithmetic coding has been
+   removed from the free JPEG software. (Since arithmetic coding provides
+   only a marginal gain over the unpatented Huffman mode, it is unlikely
+   that very many implementations will support it.) So far as we are
+   aware, there are no patent restrictions on the remaining code.
+   The IJG distribution formerly included code to read and write GIF
+   files. To avoid entanglement with the Unisys LZW patent, GIF reading
+   support has been removed altogether, and the GIF writer has been
+   simplified to produce "uncompressed GIFs". This technique does not use
+   the LZW algorithm; the resulting GIF files are larger than usual, but
+   are readable by all standard GIF decoders.
+   We are required to state that "The Graphics Interchange Format(c) is
+   the Copyright property of CompuServe Incorporated. GIF(sm) is a
+   Service Mark property of CompuServe Incorporated."
+     _________________________________________________________________
+
+FSF
+
+  GNU Lesser General Public License
+
+on Debian systems, the full text of the GNU LGPL can be found in
+/usr/share/common-licenses/LGPL
+
+Erik de Castro Lopo
+
+  libsndfile
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: GNU ISO C++
+   Library; Use of any of this software is governed by the terms of the
+   license below:
+
+Free Software Foundation, Inc.
+
+  GNU ISO C++ Library
+
+   Jump to GPL
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+   Free Software Foundation, Inc.
+   This file is part of the GNU ISO C++ Library. This library is free
+   software; you can redistribute it and/or modify it under the terms of
+   the GNU General Public License as published by the Free Software
+   Foundation; either version 2, or (at your option) any later version.
+   This library is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+   General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with this library; see the file COPYING. If not, write to the
+   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+   As a special exception, you may use this file as part of a free
+   software library without restriction. Specifically, if other files
+   instantiate templates or use macros or inline functions from this
+   file, or you compile this file and link it with other files to produce
+   an executable, this file does not by itself cause the resulting
+   executable to be covered by the GNU General Public License. This
+   exception does not however invalidate any other reasons why the
+   executable file might be covered by the GNU General Public License.
+     _________________________________________________________________
+
+   The following software may be included in this product: libtextcat;
+   Use of any of this software is governed by the terms of the license
+   below:
+
+WiseGuys Internet B.V.
+
+  libtextcat
+
+   Copyright (c) 2003, WiseGuys Internet B.V.
+   All rights reserved.
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+   - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+   - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+   - Neither the name of the WiseGuys Internet B.V. nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+     _________________________________________________________________
+
+   The following software may be included in this product: libwpd; Use of
+   any of this software is governed by the terms of the license below:
+
+William LaChance
+
+  libwpd
+
+   jump to LGPL
+   Except where otherwise noted in the source code (trio files, hash.c
+   and list.c)
+     _________________________________________________________________
+
+   The following software may be included in this product: libxml2; Use
+   of any of this software is governed by the terms of the license below:
+
+Daniel Veillard
+
+  libxml2
+
+   Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved.
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   "Software"), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is fur- nished to do so, subject
+   to the following conditions: The above copyright notice and this
+   permission notice shall be included in all copies or substantial
+   portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT
+   WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+   THE WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE
+   AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE
+   FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+   CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- NECTION
+   WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except
+   as contained in this notice, the name of Daniel Veillard shall not be
+   used in advertising or otherwise to promote the sale, use or other
+   deal- ings in this Software without prior written authorization from
+   him.
+     _________________________________________________________________
+
+   The following software may be included in this product: lpsolve; Use
+   of any of this software is governed by the terms of the license below:
+
+Kjell Eikland and Peter Notebaert
+
+  lpsolve
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: Network Audio
+   System; Use of any of this software is governed by the terms of the
+   license below:
+
+Network Computer Devices, Inc.
+
+  Network Audio System (NAS)
+
+   Copyright 1995 Network Computing Devices, Inc. Permission to use,
+   copy, modify, distribute, and sell this software and its documentation
+   for any purpose is hereby granted without fee, provided that the above
+   copyright notice appear in all copies and that both that copyright
+   notice and this permission notice appear in supporting documentation,
+   and that the name Network Computing Devices, Inc. not be used in
+   advertising or publicity pertaining to distribution of this software
+   without specific, written prior permission.
+   THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
+   DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+   WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
+   FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL
+   NETWORK COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER,
+   INCLUDING SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS
+   OF USE, DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF,
+   AND REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR
+   NEGLIGENCE, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+   PERFORMANCE OF THIS SOFTWARE.
+     _________________________________________________________________
+
+Joe Orton
+
+  neon
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product:PortAudio -
+   Portable Real-Time Audio Library; Use of any of this software is
+   governed by the terms of the license below:
+
+Ross Bencina and Phil Burk
+
+  PortAudio
+
+   PortAudio Portable Real-Time Audio Library
+   Copyright (c) 1999-2000 Ross Bencina and Phil Burk
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   "Software"), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+     * The above copyright notice and this permission notice shall be
+       included in all copies or substantial portions of the Software.
+     * Any person wishing to distribute modifications to the Software is
+       requested to send the modifications to the original developer so
+       that they can be incorporated into the canonical version.
+
+   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 ON INFRINGEMENT.
+   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+    Plain English Interpretation of the License
+
+   The following is a plain English interpretation of the license. This
+   interpretation is not part of the license and has no legal
+   significance. To understand the full legal implications of the license
+   you should consult the license itself.
+     * You can use PortAudio for free in your projects or applications,
+       even commercial applications.
+     * You do not have to make your own source available as open-source
+       code just because you used PortAudio.
+     * Do not take our copyright information out of the PortAudio source
+       code.
+     * If you fix a bug in PortAudio, please send us the fix.
+     * You cannot sue us if your program fails because of PortAudio.
+     _________________________________________________________________
+
+   The following software may be included in this product: XT; Use of any
+   of this software is governed by the terms of the license below:
+
+   The following software may be included in this product: Rhino; Use of
+   any of this software is governed by the terms of the license below:
+
+Norris Boyd, Patrick Beard
+
+  Rhino
+
+                           MOZILLA PUBLIC LICENSE
+                                Version 1.1
+                               ______________
+
+   1. Definitions.
+   1.0.1. "Commercial Use" means distribution or otherwise making the
+       Covered Code available to a third party.
+       1.1. ''Contributor'' means each entity that creates or contributes
+       to the creation of Modifications.
+       1.2. ''Contributor Version'' means the combination of the Original
+       Code, prior Modifications used by a Contributor, and the
+       Modifications made by that particular Contributor.
+       1.3. ''Covered Code'' means the Original Code or Modifications or
+       the combination of the Original Code and Modifications, in each
+       case including portions thereof.
+       1.4. ''Electronic Distribution Mechanism'' means a mechanism
+       generally accepted in the software development community for the
+       electronic transfer of data.
+       1.5. ''Executable'' means Covered Code in any form other than
+       Source Code.
+       1.6. ''Initial Developer'' means the individual or entity
+       identified as the Initial Developer in the Source Code notice
+       required by Exhibit A.
+       1.7. ''Larger Work'' means a work which combines Covered Code or
+       portions thereof with code not governed by the terms of this
+       License.
+       1.8. ''License'' means this document.
+       1.8.1. "Licensable" means having the right to grant, to the
+       maximum extent possible, whether at the time of the initial grant
+       or subsequently acquired, any and all of the rights conveyed
+       herein.
+       1.9. ''Modifications'' means any addition to or deletion from the
+       substance or structure of either the Original Code or any previous
+       Modifications. When Covered Code is released as a series of files,
+       a Modification is:
+
+   A. Any addition to or deletion from the contents of a file containing
+       Original Code or previous Modifications.
+       B. Any new file that contains any part of the Original Code or
+       previous Modifications.
+
+   1.10. ''Original Code'' means Source Code of computer software code
+   which is described in the Source Code notice required by Exhibit A as
+   Original Code, and which, at the time of its release under this
+   License is not already Covered Code governed by this License.
+
+   1.10.1. "Patent Claims" means any patent claim(s), now owned or
+   hereafter acquired, including without limitation,  method, process,
+   and apparatus claims, in any patent Licensable by grantor.
+
+   1.11. ''Source Code'' means the preferred form of the Covered Code for
+   making modifications to it, including all modules it contains, plus
+   any associated interface definition files, scripts used to control
+   compilation and installation of an Executable, or source code
+   differential comparisons against either the Original Code or another
+   well known, available Covered Code of the Contributor's choice. The
+   Source Code can be in a compressed or archival form, provided the
+   appropriate decompression or de-archiving software is widely available
+   for no charge.
+
+   1.12. "You'' (or "Your")  means an individual or a legal entity
+   exercising rights under, and complying with all of the terms of, this
+   License or a future version of this License issued under Section 6.1.
+   For legal entities, "You'' includes any entity which controls, is
+   controlled by, or is under common control with You. For purposes of
+   this definition, "control'' means (a) the power, direct or indirect,
+   to cause the direction or management of such entity, whether by
+   contract or otherwise, or (b) ownership of more than fifty percent
+   (50%) of the outstanding shares or beneficial ownership of such
+   entity.
+   2. Source Code License.
+   2.1. The Initial Developer Grant.
+       The Initial Developer hereby grants You a world-wide,
+       royalty-free, non-exclusive license, subject to third party
+       intellectual property claims:
+
+   (a)  under intellectual property rights (other than patent or
+       trademark) Licensable by Initial Developer to use, reproduce,
+       modify, display, perform, sublicense and distribute the Original
+       Code (or portions thereof) with or without Modifications, and/or
+       as part of a Larger Work; and
+       (b) under Patents Claims infringed by the making, using or selling
+       of Original Code, to make, have made, use, practice, sell, and
+       offer for sale, and/or otherwise dispose of the Original Code (or
+       portions thereof).
+
+
+
+   (c) the licenses granted in this Section 2.1(a) and (b) are effective
+   on the date Initial Developer first distributes Original Code under
+   the terms of this License.
+
+   (d) Notwithstanding Section 2.1(b) above, no patent license is
+   granted: 1) for code that You delete from the Original Code; 2)
+   separate from the Original Code;  or 3) for infringements caused by:
+   i) the modification of the Original Code or ii) the combination of the
+   Original Code with other software or devices.
+
+   2.2. Contributor Grant.
+   Subject to third party intellectual property claims, each Contributor
+   hereby grants You a world-wide, royalty-free, non-exclusive license
+
+       (a)  under intellectual property rights (other than patent or
+       trademark) Licensable by Contributor, to use, reproduce, modify,
+       display, perform, sublicense and distribute the Modifications
+       created by such Contributor (or portions thereof) either on an
+       unmodified basis, with other Modifications, as Covered Code and/or
+       as part of a Larger Work; and
+       (b) under Patent Claims infringed by the making, using, or selling
+       of  Modifications made by that Contributor either alone and/or in
+       combination with its Contributor Version (or portions of such
+       combination), to make, use, sell, offer for sale, have made,
+       and/or otherwise dispose of: 1) Modifications made by that
+       Contributor (or portions thereof); and 2) the combination of
+       Modifications made by that Contributor with its Contributor
+       Version (or portions of such combination).
+       (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+       effective on the date Contributor first makes Commercial Use of
+       the Covered Code.
+       (d)    Notwithstanding Section 2.2(b) above, no patent license is
+       granted: 1) for any code that Contributor has deleted from the
+       Contributor Version; 2)  separate from the Contributor Version;
+       3)  for infringements caused by: i) third party modifications of
+       Contributor Version or ii)  the combination of Modifications made
+       by that Contributor with other software  (except as part of the
+       Contributor Version) or other devices; or 4) under Patent Claims
+       infringed by Covered Code in the absence of Modifications made by
+       that Contributor.
+
+   3. Distribution Obligations.
+   3.1. Application of License.
+       The Modifications which You create or to which You contribute are
+       governed by the terms of this License, including without
+       limitation Section 2.2. The Source Code version of Covered Code
+       may be distributed only under the terms of this License or a
+       future version of this License released under Section 6.1, and You
+       must include a copy of this License with every copy of the Source
+       Code You distribute. You may not offer or impose any terms on any
+       Source Code version that alters or restricts the applicable
+       version of this License or the recipients' rights hereunder.
+       However, You may include an additional document offering the
+       additional rights described in Section 3.5.
+       3.2. Availability of Source Code.
+       Any Modification which You create or to which You contribute must
+       be made available in Source Code form under the terms of this
+       License either on the same media as an Executable version or via
+       an accepted Electronic Distribution Mechanism to anyone to whom
+       you made an Executable version available; and if made available
+       via Electronic Distribution Mechanism, must remain available for
+       at least twelve (12) months after the date it initially became
+       available, or at least six (6) months after a subsequent version
+       of that particular Modification has been made available to such
+       recipients. You are responsible for ensuring that the Source Code
+       version remains available even if the Electronic Distribution
+       Mechanism is maintained by a third party.
+       3.3. Description of Modifications.
+       You must cause all Covered Code to which You contribute to contain
+       a file documenting the changes You made to create that Covered
+       Code and the date of any change. You must include a prominent
+       statement that the Modification is derived, directly or
+       indirectly, from Original Code provided by the Initial Developer
+       and including the name of the Initial Developer in (a) the Source
+       Code, and (b) in any notice in an Executable version or related
+       documentation in which You describe the origin or ownership of the
+       Covered Code.
+       3.4. Intellectual Property Matters
+
+   (a) Third Party Claims.
+       If Contributor has knowledge that a license under a third party's
+       intellectual property rights is required to exercise the rights
+       granted by such Contributor under Sections 2.1 or 2.2, Contributor
+       must include a text file with the Source Code distribution titled
+       "LEGAL'' which describes the claim and the party making the claim
+       in sufficient detail that a recipient will know whom to contact.
+       If Contributor obtains such knowledge after the Modification is
+       made available as described in Section 3.2, Contributor shall
+       promptly modify the LEGAL file in all copies Contributor makes
+       available thereafter and shall take other steps (such as notifying
+       appropriate mailing lists or newsgroups) reasonably calculated to
+       inform those who received the Covered Code that new knowledge has
+       been obtained.
+       (b) Contributor APIs.
+       If Contributor's Modifications include an application programming
+       interface and Contributor has knowledge of patent licenses which
+       are reasonably necessary to implement that API, Contributor must
+       also include this information in the LEGAL file.
+
+             (c)    Representations.
+   Contributor represents that, except as disclosed pursuant to Section
+       3.4(a) above, Contributor believes that Contributor's
+       Modifications are Contributor's original creation(s) and/or
+       Contributor has sufficient rights to grant the rights conveyed by
+       this License.
+
+   3.5. Required Notices.
+   You must duplicate the notice in Exhibit A in each file of the Source
+   Code.  If it is not possible to put such notice in a particular Source
+   Code file due to its structure, then You must include such notice in a
+   location (such as a relevant directory) where a user would be likely
+   to look for such a notice.  If You created one or more Modification(s)
+   You may add your name as a Contributor to the notice described in
+   Exhibit A.  You must also duplicate this License in any documentation
+   for the Source Code where You describe recipients' rights or ownership
+   rights relating to Covered Code.  You may choose to offer, and to
+   charge a fee for, warranty, support, indemnity or liability
+   obligations to one or more recipients of Covered Code. However, You
+   may do so only on Your own behalf, and not on behalf of the Initial
+   Developer or any Contributor. You must make it absolutely clear than
+   any such warranty, support, indemnity or liability obligation is
+   offered by You alone, and You hereby agree to indemnify the Initial
+   Developer and every Contributor for any liability incurred by the
+   Initial Developer or such Contributor as a result of warranty,
+   support, indemnity or liability terms You offer.
+
+   3.6. Distribution of Executable Versions.
+   You may distribute Covered Code in Executable form only if the
+   requirements of Section 3.1-3.5 have been met for that Covered Code,
+   and if You include a notice stating that the Source Code version of
+   the Covered Code is available under the terms of this License,
+   including a description of how and where You have fulfilled the
+   obligations of Section 3.2. The notice must be conspicuously included
+   in any notice in an Executable version, related documentation or
+   collateral in which You describe recipients' rights relating to the
+   Covered Code. You may distribute the Executable version of Covered
+   Code or ownership rights under a license of Your choice, which may
+   contain terms different from this License, provided that You are in
+   compliance with the terms of this License and that the license for the
+   Executable version does not attempt to limit or alter the recipient's
+   rights in the Source Code version from the rights set forth in this
+   License. If You distribute the Executable version under a different
+   license You must make it absolutely clear that any terms which differ
+   from this License are offered by You alone, not by the Initial
+   Developer or any Contributor. You hereby agree to indemnify the
+   Initial Developer and every Contributor for any liability incurred by
+   the Initial Developer or such Contributor as a result of any such
+   terms You offer.
+
+   3.7. Larger Works.
+   You may create a Larger Work by combining Covered Code with other code
+   not governed by the terms of this License and distribute the Larger
+   Work as a single product. In such a case, You must make sure the
+   requirements of this License are fulfilled for the Covered Code.
+   4. Inability to Comply Due to Statute or Regulation.
+   If it is impossible for You to comply with any of the terms of this
+       License with respect to some or all of the Covered Code due to
+       statute, judicial order, or regulation then You must: (a) comply
+       with the terms of this License to the maximum extent possible; and
+       (b) describe the limitations and the code they affect. Such
+       description must be included in the LEGAL file described in
+       Section 3.4 and must be included with all distributions of the
+       Source Code. Except to the extent prohibited by statute or
+       regulation, such description must be sufficiently detailed for a
+       recipient of ordinary skill to be able to understand it.
+
+   5. Application of this License.
+   This License applies to code to which the Initial Developer has
+       attached the notice in Exhibit A and to related Covered Code.
+
+   6. Versions of the License.
+   6.1. New Versions.
+       Netscape Communications Corporation (''Netscape'') may publish
+       revised and/or new versions of the License from time to time. Each
+       version will be given a distinguishing version number.
+       6.2. Effect of New Versions.
+       Once Covered Code has been published under a particular version of
+       the License, You may always continue to use it under the terms of
+       that version. You may also choose to use such Covered Code under
+       the terms of any subsequent version of the License published by
+       Netscape. No one other than Netscape has the right to modify the
+       terms applicable to Covered Code created under this License.
+       6.3. Derivative Works.
+       If You create or use a modified version of this License (which you
+       may only do in order to apply it to code which is not already
+       Covered Code governed by this License), You must (a) rename Your
+       license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'',
+       ''Netscape'', "MPL", ''NPL'' or any confusingly similar phrase do
+       not appear in your license (except to note that your license
+       differs from this License) and (b) otherwise make it clear that
+       Your version of the license contains terms which differ from the
+       Mozilla Public License and Netscape Public License. (Filling in
+       the name of the Initial Developer, Original Code or Contributor in
+       the notice described in Exhibit A shall not of themselves be
+       deemed to be modifications of this License.)
+
+   7. DISCLAIMER OF WARRANTY.
+   COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS,
+       WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+       INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS
+       FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR
+       NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+       OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE
+       DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY
+       OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING,
+       REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+       ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS
+       AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+   8. TERMINATION.
+   8.1.  This License and the rights granted hereunder will terminate
+       automatically if You fail to comply with terms herein and fail to
+       cure such breach within 30 days of becoming aware of the breach.
+       All sublicenses to the Covered Code which are properly granted
+       shall survive any termination of this License. Provisions which,
+       by their nature, must remain in effect beyond the termination of
+       this License shall survive.
+       8.2.  If You initiate litigation by asserting a patent
+       infringement claim (excluding declatory judgment actions) against
+       Initial Developer or a Contributor (the Initial Developer or
+       Contributor against whom You file such action is referred to as
+       "Participant")  alleging that:
+       (a)  such Participant's Contributor Version directly or indirectly
+       infringes any patent, then any and all rights granted by such
+       Participant to You under Sections 2.1 and/or 2.2 of this License
+       shall, upon 60 days notice from Participant terminate
+       prospectively, unless if within 60 days after receipt of notice
+       You either: (i)  agree in writing to pay Participant a mutually
+       agreeable reasonable royalty for Your past and future use of
+       Modifications made by such Participant, or (ii) withdraw Your
+       litigation claim with respect to the Contributor Version against
+       such Participant.  If within 60 days of notice, a reasonable
+       royalty and payment arrangement are not mutually agreed upon in
+       writing by the parties or the litigation claim is not withdrawn,
+       the rights granted by Participant to You under Sections 2.1 and/or
+       2.2 automatically terminate at the expiration of the 60 day notice
+       period specified above.
+       (b)  any software, hardware, or device, other than such
+       Participant's Contributor Version, directly or indirectly
+       infringes any patent, then any rights granted to You by such
+       Participant under Sections 2.1(b) and 2.2(b) are revoked effective
+       as of the date You first made, used, sold, distributed, or had
+       made, Modifications made by that Participant.
+       8.3.  If You assert a patent infringement claim against
+       Participant alleging that such Participant's Contributor Version
+       directly or indirectly infringes any patent where such claim is
+       resolved (such as by license or settlement) prior to the
+       initiation of patent infringement litigation, then the reasonable
+       value of the licenses granted by such Participant under Sections
+       2.1 or 2.2 shall be taken into account in determining the amount
+       or value of any payment or license.
+       8.4.  In the event of termination under Sections 8.1 or 8.2
+       above,  all end user license agreements (excluding distributors
+       and resellers) which have been validly granted by You or any
+       distributor hereunder prior to termination shall survive
+       termination.
+
+   9. LIMITATION OF LIABILITY.
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+       (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+       INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+       COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
+       ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+       DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES
+       FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+       MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES,
+       EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
+       SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO
+       LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S
+       NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION.
+       SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
+       INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
+       LIMITATION MAY NOT APPLY TO YOU.
+
+   10. U.S. GOVERNMENT END USERS.
+   The Covered Code is a ''commercial item,'' as that term is defined in
+       48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer
+       software'' and ''commercial computer software documentation,'' as
+       such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent
+       with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4
+       (June 1995), all U.S. Government End Users acquire Covered Code
+       with only those rights set forth herein.
+
+   11. MISCELLANEOUS.
+   This License represents the complete agreement concerning subject
+       matter hereof. If any provision of this License is held to be
+       unenforceable, such provision shall be reformed only to the extent
+       necessary to make it enforceable. This License shall be governed
+       by California law provisions (except to the extent applicable law,
+       if any, provides otherwise), excluding its conflict-of-law
+       provisions. With respect to disputes in which at least one party
+       is a citizen of, or an entity chartered or registered to do
+       business in the United States of America, any litigation relating
+       to this License shall be subject to the jurisdiction of the
+       Federal Courts of the Northern District of California, with venue
+       lying in Santa Clara County, California, with the losing party
+       responsible for costs, including without limitation, court costs
+       and reasonable attorneys' fees and expenses. The application of
+       the United Nations Convention on Contracts for the International
+       Sale of Goods is expressly excluded. Any law or regulation which
+       provides that the language of a contract shall be construed
+       against the drafter shall not apply to this License.
+
+   12. RESPONSIBILITY FOR CLAIMS.
+   As between Initial Developer and the Contributors, each party is
+       responsible for claims and damages arising, directly or
+       indirectly, out of its utilization of rights under this License
+       and You agree to work with Initial Developer and Contributors to
+       distribute such responsibility on an equitable basis. Nothing
+       herein is intended or shall be deemed to constitute any admission
+       of liability.
+
+   13. MULTIPLE-LICENSED CODE.
+   Initial Developer may designate portions of the Covered Code as
+       "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+       Developer permits you to utilize portions of the Covered Code
+       under Your choice of the MPL or the alternative licenses, if any,
+       specified by the Initial Developer in the file described in
+       Exhibit A.
+
+   EXHIBIT A -Mozilla Public License.
+   ``The contents of this file are subject to the Mozilla Public License
+       Version 1.1 (the "License"); you may not use this file except in
+       compliance with the License. You may obtain a copy of the License
+       at
+       http://www.mozilla.org/MPL/
+       Software distributed under the License is distributed on an "AS
+       IS" basis, WITHOUT WARRANTY OF
+       ANY KIND, either express or implied. See the License for the
+       specific language governing rights and
+       limitations under the License.
+       The Original Code is ______________________________________.
+       The Initial Developer of the Original Code is
+       ________________________. Portions created by
+        ______________________ are Copyright (C) ______
+       _______________________. All Rights
+       Reserved.
+       Contributor(s): ______________________________________.
+       Alternatively, the contents of this file may be used under the
+       terms of the _____ license (the  "[___] License"), in which case
+       the provisions of [______] License are applicable  instead of
+       those above.  If you wish to allow use of your version of this
+       file only under the terms of the [____] License and not to allow
+       others to use your version of this file under the MPL, indicate
+       your decision by deleting  the provisions above and replace  them
+       with the notice and other provisions required by the [___]
+       License.  If you do not delete the provisions above, a recipient
+       may use your version of this file under either the MPL or the
+       [___] License."
+       [NOTE: The text of this Exhibit A may differ slightly from the
+       text of the notices in the Source Code files of the Original Code.
+       You should use the text of this Exhibit A rather than the text
+       found in the Original Code Source Code for Your Modifications.]
+     _________________________________________________________________
+
+Boris Fomitchev
+
+  STLport
+
+    License Agreement
+
+   Boris Fomitchev grants Licensee a non-exclusive, non-transferable,
+   royalty-free license to use STLport and its documentation without fee.
+   By downloading, using, or copying STLport or any portion thereof,
+   Licensee agrees to abide by the intellectual property laws and all
+   other applicable laws of the United States of America, and to all of
+   the terms and conditions of this Agreement.
+   Licensee shall maintain the following copyright and permission
+   notices on STLport sources and its documentation unchanged :
+   Copyright 1999,2000 Boris Fomitchev
+   This material is provided "as is", with absolutely no warranty
+   expressed or implied. Any use is at your own risk.
+   Permission to use or copy this software for any purpose is hereby
+   granted without fee, provided the above notices are retained on all
+   copies. Permission to modify the code and to distribute modified code
+   is granted, provided the above notices are retained, and a notice that
+   the code was modified is included with the above copyright notice.
+
+   The Licensee may distribute binaries compiled with STLport (whether
+   original or modified) without any royalties or restrictions.
+
+   The Licensee may distribute original or modified STLport sources,
+   provided that:
+     * The conditions indicated in the above permission notice are met;
+     * The following copyright notices are retained when present, and
+       conditions provided in accompanying permission notices are met :
+
+   Copyright 1994 Hewlett-Packard Company
+
+   Copyright 1996,97 Silicon Graphics Computer Systems, Inc.
+
+   Copyright 1997 Moscow Center for SPARC Technology.
+
+     Permission to use, copy, modify, distribute and sell this software
+     and its documentation for any purpose is hereby granted without
+     fee, provided that the above copyright notice appear in all copies
+     and that both that copyright notice and this permission notice
+     appear in supporting documentation. Hewlett-Packard Company makes
+     no representations about the suitability of this software for any
+     purpose. It is provided "as is" without express or implied
+     warranty.
+
+     Permission to use, copy, modify, distribute and sell this software
+     and its documentation for any purpose is hereby granted without
+     fee, provided that the above copyright notice appear in all copies
+     and that both that copyright notice and this permission notice
+     appear in supporting documentation. Silicon Graphics makes no
+     representations about the suitability of this software for any
+     purpose. It is provided "as is" without express or implied
+     warranty.
+
+     Permission to use, copy, modify, distribute and sell this software
+     and its documentation for any purpose is hereby granted without
+     fee, provided that the above copyright notice appear in all copies
+     and that both that copyright notice and this permission notice
+     appear in supporting documentation. Moscow Center for SPARC
+     Technology  makes no representations about the suitability of this
+     software for any purpose. It is provided "as is" without express or
+     implied warranty.
+     _________________________________________________________________
+
+   The following software may be included in this product: Italian
+   Thesaurus; Use of any of this software is governed by the terms of the
+   license below:
+
+Daniela Volta, Davide Prina
+
+  Italian Thesaurus
+
+   Jump to GPL
+     _________________________________________________________________
+
+   The following software may be included in this product: Unicode's CLDR
+   data repository; Use of any of this software is governed by the terms
+   of the license below:
+
+Unicode, Inc.
+
+  Unicode CLDR data repository
+
+   Copyright 1991-2005 Unicode, Inc. All rights reserved. Distributed
+   under the Terms of Use in http://www.unicode.org/copyright.html.
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of the Unicode data files and any associated documentation (the
+   "Data Files") or Unicode software and any associated documentation
+   (the "Software") to deal in the Data Files or Software without
+   restriction, including without limitation the rights to use, copy,
+   modify, merge, publish, distribute, and/or sell copies of the Data
+   Files or Software, and to permit persons to whom the Data Files or
+   Software are furnished to do so, provided that (a) the above copyright
+   notice(s) and this permission notice appear with all copies of the
+   Data Files or Software, (b) both the above copyright notice(s) and
+   this permission notice appear in associated documentation, and (c)
+   there is clear notice in each modified Data File or in the Software as
+   well as in the documentation associated with the Data File(s) or
+   Software that the data or software has been modified.
+   THE DATA FILES AND SOFTWARE ARE 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 THE DATA FILES OR
+   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 these Data Files or Software without prior
+   written authorization of the copyright holder.
+     _________________________________________________________________
+
+   The following software may be included in this product: unixODBC; Use
+   of any of this software is governed by the terms of the license below:
+
+unixODBC.org
+
+  unixODBC
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: vigra; Use of
+   any of this software is governed by the terms of the license below:
+
+Ullrich Koethe
+
+  vigra
+
+   The VIGRA Artistic License
+   ==========================
+   (modeled after the Perl Artistic License)
+   Preamble
+   --------
+   The intent of this document is to state the conditions under which
+   VIGRA may be copied, such that the author maintains some semblance of
+   artistic control over the development of the library, while giving the
+   users of the library the right to use and distribute VIGRA in a
+   more-or-less customary fashion, plus the right to make reasonable
+   modifications.
+   Definitions
+   -----------
+   "Copyright Holder" of the VIGRA library is Ullrich Koethe, Cognitive
+   Systems Group, University of Hamburg, Germany.
+   "Library" refers to the collection of files distributed by the
+   Copyright Holder under the name "VIGRA" (including this LICENSE file
+   and all accompanying documentation), and derivatives of that
+   collection of files created through textual modification.
+   "Standard Version" refers to the Library if it has not been modified,
+   or has been modified in accordance with the wishes of the Copyright
+   Holder as specified below.
+   "You" is you, if you're thinking about using, copying, modifying or
+   distributing this Library.
+   "Freely Available" means that no fee is charged for the item. It also
+   means that recipients of the item may redistribute it under the same
+   conditions they received it.
+   "Reasonable copying fee" is whatever you can justify on the basis of
+   media cost, duplication charges, time of people involved, and so on.
+   (You will not be required to justify it to the Copyright Holder, but
+   only to the computing community at large as a market that must bear
+   the fee.)
+   License terms
+   -------------
+   1. You may make and give away verbatim copies of the Standard Version
+   of this Library without restriction, provided that you duplicate all
+   of the original copyright notices, this license, and associated
+   disclaimers.
+   2. The Standard Version of the Library may be distributed as part of a
+   collection of software, provided no more than a reasonable copying fee
+   is charged for the software collection.
+   3. You may apply bug fixes and portability fixes derived from the
+   Public Domain or from the Copyright Holder. A Library modified in such
+   a way shall still be considered the Standard Version.
+   4. You may otherwise modify your copy of this Library in any way,
+   provided that you insert a prominent notice in each changed file
+   stating how and when you changed that file, and provided that you do
+   at least ONE of the following:
+   a. place your modifications in the Public Domain or otherwise make
+   them Freely Available, for example by allowing the Copyright Holder to
+   include your modifications in the Standard Version of the Library.
+   b. use the modified Library only within your corporation or
+   organization.
+   c. make other distribution arrangements with the Copyright Holder.
+   5. You may distribute programs which use this Library in object code
+   or executable form without restriction.
+   6. Any object code generated as a result of using this Library does
+   not fall under the copyright of this Library, but belongs to whomever
+   generated it, and may be sold commercially.
+   7. The name of the Copyright Holder or the Library may not be used to
+   endorse or promote products derived from this software without
+   specific prior written permission.
+   8. THIS LIBRARY IS PROVIDED AS IS AND WITHOUT ANY EXPRESS OR IMPLIED
+   WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+   IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL,
+   INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND OR ANY
+   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+   WHETHER OR NOT ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR ON ANY
+   THEORY OF LIABILITY ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+   PERFORMANCE OF THIS LIBRARY.
+     _________________________________________________________________
+
+   The following software may be included in this product: XML Security
+   Library (xmlsec); Use of any of this software is governed by the terms
+   of the license below:
+
+Aleksey Sanin
+
+  XML Security Library (xmlsec)
+
+   xmlsec, xmlsec-openssl, xmlsec-gnutls libraries
+   ----------------------------------------------------------------------
+   --------
+   Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved.
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   "Software"), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is fur- nished to do so, subject
+   to the following conditions:
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Software.
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT. IN NO EVENT SHALL THE ALEKSEY SANIN BE LIABLE FOR ANY
+   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- NECTION WITH THE
+   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+   Except as contained in this notice, the name of Aleksey Sanin shall
+   not be used in advertising or otherwise to promote the sale, use or
+   other deal- ings in this Software without prior written authorization
+   from him.
+   xmlsec-nss library
+   ----------------------------------------------------------------------
+   --------
+   Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved.
+   Copyright (c) 2003 America Online, Inc. All rights reserved.
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   "Software"), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is fur- nished to do so, subject
+   to the following conditions:
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Software.
+   Portions of the Software were created using source code and/or APIs
+   governed by the Mozilla Public License (MPL). The MPL is available at
+   http://www.mozilla.org/MPL/MPL-1.1.html. The MPL permits such portions
+   to be distributed with code not governed by MPL, as long as the
+   requirements of MPL are fulfilled for such portions.
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT. IN NO EVENT SHALL THE ALEKSEY SANIN BE LIABLE FOR ANY
+   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- NECTION WITH THE
+   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+   Except as contained in this notice, the name of Aleksey Sanin shall
+   not be used in advertising or otherwise to promote the sale, use or
+   other deal- ings in this Software without prior written authorization
+   from him.
+     _________________________________________________________________
+
+   The following software may be included in this product: X11 XRender
+   Extension; Use of any of this software is governed by the terms of the
+   license below:
+
+Keith Packard, SuSE, Inc.
+
+  X11 XRender Extension
+
+   Copyright © 2000 SuSE, Inc.
+   Permission to use, copy, modify, distribute, and sell this software
+   and its documentation for any purpose is hereby granted without fee,
+   provided that the above copyright notice appear in all copies and that
+   both that copyright notice and this permission notice appear in
+   supporting documentation, and that the name of SuSE not be used in
+   advertising or publicity pertaining to distribution of the software
+   without specific, written prior permission. SuSE makes no
+   representations about the suitability of this software for any
+   purpose. It is provided "as is" without express or implied warranty.
+   SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
+   SHALL SuSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+   DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+   PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+   TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+   PERFORMANCE OF THIS SOFTWARE.
+     _________________________________________________________________
+
+   The following software may be included in this product: XT; Use of any
+   of this software is governed by the terms of the license below:
+
+James Clark, Bill Lindsey
+
+  XT
+
+   Copyright (c) 1998, 1999 James Clark
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Software.
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL JAMES CLARK BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+   OTHER DEALINGS IN THE SOFTWARE.
+   Except as contained in this notice, the name of James Clark shall not
+   be used in advertising or otherwise to promote the sale, use or other
+   dealings in this Software without prior written authorization from
+   James Clark.
+   Copyright (c) 2002 Bill Lindsey
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this software and associated documentation files (the
+   ``Software''), to deal in the Software without restriction, including
+   without limitation the rights to use, copy, modify, merge, publish,
+   distribute, sublicense, and/or sell copies of the Software, and to
+   permit persons to whom the Software is furnished to do so, subject to
+   the following conditions:
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Software.
+   Substantial portions of the Software are copyrighted by James Clark.
+   Copying permissions and restrictions for those portions are covered in
+   the file "copyingjc.txt"
+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL BILL LINDSEY BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+   OTHER DEALINGS IN THE SOFTWARE.
+   Except as contained in this notice, the name of Bill Lindsey shall not
+   be used in advertising or otherwise to promote the sale, use or other
+   dealings in this Software without prior written authorization from
+   Bill Lindsey.
+     _________________________________________________________________
+
+   The following software may be included in this product:zlib; Use of
+   any of this software is governed by the terms of the license below:
+
+Jean-Loup Gailly, Mark Adler
+
+  zlib
+
+   (C) 1995-2002 Jean-loup Gailly and Mark Adler
+   This software is provided 'as-is', without any express or implied
+   warranty. In no event will the authors be held liable for any damages
+   arising from the use of this software.
+   Permission is granted to anyone to use this software for any purpose,
+   including commercial applications, and to alter it and redistribute it
+   freely, subject to the following restrictions:
+   1. The origin of this software must not be misrepresented; you must
+   not claim that you wrote the original software. If you use this
+   software in a product, an acknowledgment in the product documentation
+   would be appreciated but is not required.
+   2. Altered source versions must be plainly marked as such, and must
+   not be misrepresented as being the original software.
+   3. This notice may not be removed or altered from any source
+   distribution.
+     _________________________________________________________________
+
+   The following software may be included in this product:Bitstram Vera
+   Fonts; Use of any of this software is governed by the terms of the
+   license below:
+
+Bitstream, Inc.
+
+  Bitstream Vera Fonts
+
+   Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
+   Vera is a trademark of Bitstream, Inc.
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of the fonts accompanying this license (âEURoeFontsâEUR&#157;)
+   and associated documentation files (the âEURoeFont
+   SoftwareâEUR&#157;), to reproduce and distribute the Font Software,
+   including without limitation the rights to use, copy, merge, publish,
+   distribute, and/or sell copies of the Font Software, and to permit
+   persons to whom the Font Software is furnished to do so, subject to
+   the following conditions:
+   The above copyright and trademark notices and this permission notice
+   shall be included in all copies of one or more of the Font Software
+   typefaces.
+   The Font Software may be modified, altered, or added to, and in
+   particular the designs of glyphs or characters in the Fonts may be
+   modified and additional glyphs or characters may be added to the
+   Fonts, only if the fonts are renamed to names not containing either
+   the words âEURoeBitstreamâEUR&#157; or the word âEURoeVeraâEUR&#157;.
+   This License becomes null and void to the extent applicable to Fonts
+   or Font Software that has been modified and is distributed under the
+   âEURoeBitstream VeraâEUR&#157; names.
+   The Font Software may be sold as part of a larger software package but
+   no copy of one or more of the Font Software typefaces may be sold by
+   itself.
+   THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+   OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+   BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
+   OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
+   OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+   OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
+   SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+   Except as contained in this notice, the names of Gnome, the Gnome
+   Foundation, and Bitstream Inc., shall not be used in advertising or
+   otherwise to promote the sale, use or other dealings in this Font
+   Software without prior written authorization from the Gnome Foundation
+   or Bitstream Inc., respectively. For further information, contact:
+   fonts at gnome dot org. 
+     _________________________________________________________________
+
+   The following software may be included in this product:BerkeleyDB; Use
+   of any of this software is governed by the terms of the license below:
+
+Sleepycat Software
+
+  BerkeleyDB
+
+   >
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+/*
+ * Copyright (c) 1990-2004
+ *      Sleepycat Software.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Redistributions in any form must be accompanied by information on
+ *    how to obtain complete source code for the DB software and any
+ *    accompanying software that uses the DB software.  The source code
+ *    must either be included in the distribution or be available for no
+ *    more than the cost of distribution plus a nominal fee, and must be
+ *    freely redistributable under reasonable conditions.  For an
+ *    executable file, complete source code means the source code for all
+ *    modules it contains.  It does not include source code for modules or
+ *    files that typically accompany the major components of the operating
+ *    system on which the executable file runs.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+ * NON-INFRINGEMENT, ARE DISCLAIMED.  IN NO EVENT SHALL SLEEPYCAT SOFTWARE
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 1990, 1993, 1994, 1995
+ *      The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 1995, 1996
+ *      The President and Fellows of Harvard University.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+     _________________________________________________________________
+
+   The following software may be included in this product:Czech thesaurus
+   database; Use of any of this software is governed by the terms of the
+   license below:
+
+Pavel Rychly, Pavel Smrz, {pary,smrz}@fi.muni.cz, NLPlab, Faculty of
+Informatics, Masaryk University
+
+  Czech Thesaurus Database
+
+   Copyright (c) 2002 Pavel Rychly, Pavel Smrz, {pary,smrz}@fi.muni.cz,
+   NLPlab, Faculty of Informatics, Masaryk University
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of this data (the "Data"), to deal in the Data without
+   restriction, including without limitation the rights to use, copy,
+   modify, merge, publish, distribute, sublicense, and/or sell copies of
+   the Data, and to permit persons to whom the Data is furnished to do
+   so, subject to the following conditions:
+   The above copyright notice and this permission notice shall be
+   included in all copies or substantial portions of the Data.
+   THE DATA ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DATA
+   OR THE USE OR OTHER DEALINGS IN THE DATA.
+     _________________________________________________________________
+
+   The following software may be included in this product:Generic Polygon
+   Clipper (GPC); Use of any of this software is governed by the terms of
+   the license below:
+
+Alan Murta
+
+  GPC
+
+   Copyright: (C) 1997-1999, Advanced Interfaces Group, University of
+   Manchester.
+   This software is free for non-commercial use. It may be copied,
+   modified, and redistributed provided that this copyright notice is
+   preserved on all copies. The intellectual property rights of the
+   algorithms used reside with the University of Manchester Advanced
+   Interfaces Group.
+   You may not use this software, in whole or in part, in support of any
+   commercial product without the express consent of the author.
+   There is no warranty or other guarantee of fitness of this software
+   for any purpose. It is provided solely "as is".
+     _________________________________________________________________
+
+   The following software may be included in this product: LaTeX
+   dictinary data; Use of any of this software is governed by the terms
+   of the license below:
+
+LaTeX3 Project
+
+  LPPL version 1.3b
+
+   The LaTeX Project Public License
+   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+   LPPL Version 1.3b 2006-01-07
+   Copyright 1999 2002-2006 LaTeX3 Project
+   Everyone is allowed to distribute verbatim copies of this license
+   document, but modification of it is not allowed.
+   PREAMBLE
+   ========
+   The LaTeX Project Public License (LPPL) is the primary license under
+   which the the LaTeX kernel and the base LaTeX packages are
+   distributed.
+   You may use this license for any work of which you hold the copyright
+   and which you wish to distribute. This license may be particularly
+   suitable if your work is TeX-related (such as a LaTeX package), but
+   you may use it with small modifications even if your work is unrelated
+   to TeX.
+   The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+   below, gives instructions, examples, and recommendations for authors
+   who are considering distributing their works under this license.
+   This license gives conditions under which a work may be distributed
+   and modified, as well as conditions under which modified versions of
+   that work may be distributed.
+   We, the LaTeX3 Project, believe that the conditions below give you the
+   freedom to make and distribute modified versions of your work that
+   conform with whatever technical specifications you wish while
+   maintaining the availability, integrity, and reliability of that work.
+   If you do not see how to achieve your goal while meeting these
+   conditions, then read the document `cfgguide.tex' and `modguide.tex'
+   in the base LaTeX distribution for suggestions.
+   DEFINITIONS
+   ===========
+   In this license document the following terms are used:
+   `Work' Any work being distributed under this License.
+   `Derived Work' Any work that under any applicable law is derived from
+   the Work.
+   `Modification' Any procedure that produces a Derived Work under any
+   applicable law -- for example, the production of a file containing an
+   original file associated with the Work or a significant portion of
+   such a file, either verbatim or with modifications and/or translated
+   into another language.
+   `Modify' To apply any procedure that produces a Derived Work under any
+   applicable law.
+   `Distribution' Making copies of the Work available from one person to
+   another, in whole or in part. Distribution includes (but is not
+   limited to) making any electronic components of the Work accessible by
+   file transfer protocols such as FTP or HTTP or by shared file systems
+   such as Sun's Network File System (NFS).
+   `Compiled Work' A version of the Work that has been processed into a
+   form where it is directly usable on a computer system. This processing
+   may include using installation facilities provided by the Work,
+   transformations of the Work, copying of components of the Work, or
+   other activities. Note that modification of any installation
+   facilities provided by the Work constitutes modification of the Work.
+   `Current Maintainer' A person or persons nominated as such within the
+   Work. If there is no such explicit nomination then it is the
+   `Copyright Holder' under any applicable law.
+   `Base Interpreter' A program or process that is normally needed for
+   running or interpreting a part or the whole of the Work.
+   A Base Interpreter may depend on external components but these are not
+   considered part of the Base Interpreter provided that each external
+   component clearly identifies itself whenever it is used interactively.
+   Unless explicitly specified when applying the license to the Work, the
+   only applicable Base Interpreter is a `LaTeX-Format' or in the case of
+   files belonging to the `LaTeX-format' a program implementing the `TeX
+   language'.
+   CONDITIONS ON DISTRIBUTION AND MODIFICATION
+   ===========================================
+   1. Activities other than distribution and/or modification of the Work
+   are not covered by this license; they are outside its scope. In
+   particular, the act of running the Work is not restricted and no
+   requirements are made concerning any offers of support for the Work.
+   2. You may distribute a complete, unmodified copy of the Work as you
+   received it. Distribution of only part of the Work is considered
+   modification of the Work, and no right to distribute such a Derived
+   Work may be assumed under the terms of this clause.
+   3. You may distribute a Compiled Work that has been generated from a
+   complete, unmodified copy of the Work as distributed under Clause 2
+   above, as long as that Compiled Work is distributed in such a way that
+   the recipients may install the Compiled Work on their system exactly
+   as it would have been installed if they generated a Compiled Work
+   directly from the Work.
+   4. If you are the Current Maintainer of the Work, you may, without
+   restriction, modify the Work, thus creating a Derived Work. You may
+   also distribute the Derived Work without restriction, including
+   Compiled Works generated from the Derived Work. Derived Works
+   distributed in this manner by the Current Maintainer are considered to
+   be updated versions of the Work.
+   5. If you are not the Current Maintainer of the Work, you may modify
+   your copy of the Work, thus creating a Derived Work based on the Work,
+   and compile this Derived Work, thus creating a Compiled Work based on
+   the Derived Work.
+   6. If you are not the Current Maintainer of the Work, you may
+   distribute a Derived Work provided the following conditions are met
+   for every component of the Work unless that component clearly states
+   in the copyright notice that it is exempt from that condition. Only
+   the Current Maintainer is allowed to add such statements of exemption
+   to a component of the Work.
+   a. If a component of this Derived Work can be a direct replacement for
+   a component of the Work when that component is used with the Base
+   Interpreter, then, wherever this component of the Work identifies
+   itself to the user when used interactively with that Base Interpreter,
+   the replacement component of this Derived Work clearly and
+   unambiguously identifies itself as a modified version of this
+   component to the user when used interactively with that Base
+   Interpreter.
+   b. Every component of the Derived Work contains prominent notices
+   detailing the nature of the changes to that component, or a prominent
+   reference to another file that is distributed as part of the Derived
+   Work and that contains a complete and accurate log of the changes.
+   c. No information in the Derived Work implies that any persons,
+   including (but not limited to) the authors of the original version of
+   the Work, provide any support, including (but not limited to) the
+   reporting and handling of errors, to recipients of the Derived Work
+   unless those persons have stated explicitly that they do provide such
+   support for the Derived Work.
+   d. You distribute at least one of the following with the Derived Work:
+   1. A complete, unmodified copy of the Work; if your distribution of a
+   modified component is made by offering access to copy the modified
+   component from a designated place, then offering equivalent access to
+   copy the Work from the same or some similar place meets this
+   condition, even though third parties are not compelled to copy the
+   Work along with the modified component;
+   2. Information that is sufficient to obtain a complete, unmodified
+   copy of the Work.
+   7. If you are not the Current Maintainer of the Work, you may
+   distribute a Compiled Work generated from a Derived Work, as long as
+   the Derived Work is distributed to all recipients of the Compiled
+   Work, and as long as the conditions of Clause 6, above, are met with
+   regard to the Derived Work.
+   8. The conditions above are not intended to prohibit, and hence do not
+   apply to, the modification, by any method, of any component so that it
+   becomes identical to an updated version of that component of the Work
+   as it is distributed by the Current Maintainer under Clause 4, above.
+   9. Distribution of the Work or any Derived Work in an alternative
+   format, where the Work or that Derived Work (in whole or in part) is
+   then produced by applying some process to that format, does not relax
+   or nullify any sections of this license as they pertain to the results
+   of applying that process.
+   10. a. A Derived Work may be distributed under a different license
+   provided that license itself honors the conditions listed in Clause 6
+   above, in regard to the Work, though it does not have to honor the
+   rest of the conditions in this license.
+   b. If a Derived Work is distributed under a different license, that
+   Derived Work must provide sufficient documentation as part of itself
+   to allow each recipient of that Derived Work to honor the restrictions
+   in Clause 6 above, concerning changes from the Work.
+   11. This license places no restrictions on works that are unrelated to
+   the Work, nor does this license place any restrictions on aggregating
+   such works with the Work by any means.
+   12. Nothing in this license is intended to, or may be used to, prevent
+   complete compliance by all parties with all applicable laws.
+   NO WARRANTY
+   ===========
+   There is no warranty for the Work. Except when otherwise stated in
+   writing, the Copyright Holder provides the Work `as is', without
+   warranty of any kind, either expressed or implied, including, but not
+   limited to, the implied warranties of merchantability and fitness for
+   a particular purpose. The entire risk as to the quality and
+   performance of the Work is with you. Should the Work prove defective,
+   you assume the cost of all necessary servicing, repair, or correction.
+   In no event unless required by applicable law or agreed to in writing
+   will The Copyright Holder, or any author named in the components of
+   the Work, or any other party who may distribute and/or modify the Work
+   as permitted above, be liable to you for damages, including any
+   general, special, incidental or consequential damages arising out of
+   any use of the Work or out of inability to use the Work (including,
+   but not limited to, loss of data, data being rendered inaccurate, or
+   losses sustained by anyone as a result of any failure of the Work to
+   operate with any other programs), even if the Copyright Holder or said
+   author or said other party has been advised of the possibility of such
+   damages.
+   MAINTENANCE OF THE WORK
+   =======================
+   The Work has the status `author-maintained' if the Copyright Holder
+   explicitly and prominently states near the primary copyright notice in
+   the Work that the Work can only be maintained by the Copyright Holder
+   or simply that it is `author-maintained'.
+   The Work has the status `maintained' if there is a Current Maintainer
+   who has indicated in the Work that they are willing to receive error
+   reports for the Work (for example, by supplying a valid e-mail
+   address). It is not required for the Current Maintainer to acknowledge
+   or act upon these error reports.
+   The Work changes from status `maintained' to `unmaintained' if there
+   is no Current Maintainer, or the person stated to be Current
+   Maintainer of the work cannot be reached through the indicated means
+   of communication for a period of six months, and there are no other
+   significant signs of active maintenance.
+   You can become the Current Maintainer of the Work by agreement with
+   any existing Current Maintainer to take over this role.
+   If the Work is unmaintained, you can become the Current Maintainer of
+   the Work through the following steps:
+   1. Make a reasonable attempt to trace the Current Maintainer (and the
+   Copyright Holder, if the two differ) through the means of an Internet
+   or similar search.
+   2. If this search is successful, then enquire whether the Work is
+   still maintained.
+   a. If it is being maintained, then ask the Current Maintainer to
+   update their communication data within one month.
+   b. If the search is unsuccessful or no action to resume active
+   maintenance is taken by the Current Maintainer, then announce within
+   the pertinent community your intention to take over maintenance. (If
+   the Work is a LaTeX work, this could be done, for example, by posting
+   to comp.text.tex.)
+   3a. If the Current Maintainer is reachable and agrees to pass
+   maintenance of the Work to you, then this takes effect immediately
+   upon announcement.
+   b. If the Current Maintainer is not reachable and the Copyright Holder
+   agrees that maintenance of the Work be passed to you, then this takes
+   effect immediately upon announcement.
+   4. If you make an `intention announcement' as described in 2b. above
+   and after three months your intention is challenged neither by the
+   Current Maintainer nor by the Copyright Holder nor by other people,
+   then you may arrange for the Work to be changed so as to name you as
+   the (new) Current Maintainer.
+   5. If the previously unreachable Current Maintainer becomes reachable
+   once more within three months of a change completed under the terms of
+   3b) or 4), then that Current Maintainer must become or remain the
+   Current Maintainer upon request provided they then update their
+   communication data within one month.
+   A change in the Current Maintainer does not, of itself, alter the fact
+   that the Work is distributed under the LPPL license.
+   If you become the Current Maintainer of the Work, you should
+   immediately provide, within the Work, a prominent and unambiguous
+   statement of your status as Current Maintainer. You should also
+   announce your new status to the same pertinent community as in 2b)
+   above.
+   WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+   ======================================================
+   This section contains important instructions, examples, and
+   recommendations for authors who are considering distributing their
+   works under this license. These authors are addressed as `you' in this
+   section.
+   Choosing This License or Another License
+   ----------------------------------------
+   If for any part of your work you want or need to use *distribution*
+   conditions that differ significantly from those in this license, then
+   do not refer to this license anywhere in your work but, instead,
+   distribute your work under a different license. You may use the text
+   of this license as a model for your own license, but your license
+   should not refer to the LPPL or otherwise give the impression that
+   your work is distributed under the LPPL.
+   The document `modguide.tex' in the base LaTeX distribution explains
+   the motivation behind the conditions of this license. It explains, for
+   example, why distributing LaTeX under the GNU General Public License
+   (GPL) was considered inappropriate. Even if your work is unrelated to
+   LaTeX, the discussion in `modguide.tex' may still be relevant, and
+   authors intending to distribute their works under any license are
+   encouraged to read it.
+   A Recommendation on Modification Without Distribution
+   -----------------------------------------------------
+   It is wise never to modify a component of the Work, even for your own
+   personal use, without also meeting the above conditions for
+   distributing the modified component. While you might intend that such
+   modifications will never be distributed, often this will happen by
+   accident -- you may forget that you have modified that component; or
+   it may not occur to you when allowing others to access the modified
+   version that you are thus distributing it and violating the conditions
+   of this license in ways that could have legal implications and, worse,
+   cause problems for the community. It is therefore usually in your best
+   interest to keep your copy of the Work identical with the public one.
+   Many works provide ways to control the behavior of that work without
+   altering any of its licensed components.
+   How to Use This License
+   -----------------------
+   To use this license, place in each of the components of your work both
+   an explicit copyright notice including your name and the year the work
+   was authored and/or last substantially modified. Include also a
+   statement that the distribution and/or modification of that component
+   is constrained by the conditions in this license.
+   Here is an example of such a notice and statement:
+   %% pig.dtx %% Copyright 2005 M. Y. Name % % This work may be
+   distributed and/or modified under the % conditions of the LaTeX
+   Project Public License, either version 1.3 % of this license or (at
+   your option) any later version. % The latest version of this license
+   is in % http://www.latex-project.org/lppl.txt % and version 1.3 or
+   later is part of all distributions of LaTeX % version 2005/12/01 or
+   later. % % This work has the LPPL maintenance status `maintained'. % %
+   The Current Maintainer of this work is M. Y. Name. % % This work
+   consists of the files pig.dtx and pig.ins % and the derived file
+   pig.sty.
+   Given such a notice and statement in a file, the conditions given in
+   this license document would apply, with the `Work' referring to the
+   three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+   generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+   referring to any `LaTeX-Format', and both `Copyright Holder' and
+   `Current Maintainer' referring to the person `M. Y. Name'.
+   If you do not want the Maintenance section of LPPL to apply to your
+   Work, change `maintained' above into `author-maintained'. However, we
+   recommend that you use `maintained', as the Maintenance section was
+   added in order to ensure that your Work remains useful to the
+   community even when you can no longer maintain and support it
+   yourself.
+   Derived Works That Are Not Replacements
+   ---------------------------------------
+   Several clauses of the LPPL specify means to provide reliability and
+   stability for the user community. They therefore concern themselves
+   with the case that a Derived Work is intended to be used as a
+   (compatible or incompatible) replacement of the original Work. If this
+   is not the case (e.g., if a few lines of code are reused for a
+   completely different task), then clauses 6b and 6d shall not apply.
+   Important Recommendations
+   -------------------------
+   Defining What Constitutes the Work
+   The LPPL requires that distributions of the Work contain all the files
+   of the Work. It is therefore important that you provide a way for the
+   licensee to determine which files constitute the Work. This could, for
+   example, be achieved by explicitly listing all the files of the Work
+   near the copyright notice of each file or by using a line such as:
+   % This work consists of all files listed in manifest.txt.
+   in that place. In the absence of an unequivocal list it might be
+   impossible for the licensee to determine what is considered by you to
+   comprise the Work and, in such a case, the licensee would be entitled
+   to make reasonable conjectures as to which files comprise the Work.
+     _________________________________________________________________
+
+   The following software may be included in this product: Ispell
+   W?rterbuch igerman98; Use of any of this software is governed by the
+   terms of the license below:
+
+Bjoern Jacke
+
+  German Dictionaries igerman98
+
+   OASIS distribution license agreement 0.1 from 2005-11-10
+   Without any modifications this dictionary may be distributed with
+   programs that support the OASIS Open Document Format for Office
+   Applications and whose PRIMARY format for saving documents is the Open
+   Document Format.
+   This requires that all licenses and copyright files are also
+   distributed together with the package the dictionary is shipped with.
+   Any modifications of the dictionary files are not allowed for this
+   agreement, modifications require the use of the GNU GENERAL PUBLIC
+   LICENSE.
+   If you have questions or don't get along with this, send me your
+   comments/questions/ideas to Bjoern Jacke
+     _________________________________________________________________
+
+   The following software may be included in this product: WordNet
+   Release 2.1; Use of any of this software is governed by the terms of
+   the license below:
+
+Princeton University
+
+  WordNet 2.1
+
+   WordNet 2.1 Copyright 2005 by Princeton University.
+   This software and database is being provided to you, the LICENSEE, by
+   Princeton University under the following license. By obtaining, using
+   and/or copying this software and database, you agree that you have
+   read, understood, and will comply with these terms and conditions.:
+   Permission to use, copy, modify and distribute this software and
+   database and its documentation for any purpose and without fee or
+   royalty is hereby granted, provided that you agree to comply with the
+   following copyright notice and statements, including the disclaimer,
+   and that the same appear on ALL copies of the software, database and
+   documentation, including modifications that you make for internal use
+   or for distribution.
+   WordNet 2.1 Copyright 2005 by Princeton University. All rights
+   reserved.
+   THIS SOFTWARE AND DATABASE IS PROVIDED "AS IS" AND PRINCETON
+   UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
+   BY WAY OF EXAMPLE, BUT NOT LIMITATION, PRINCETON UNIVERSITY MAKES NO
+   REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY
+   PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE, DATABASE
+   OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
+   COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+   The name of Princeton University or Princeton may not be used in
+   advertising or publicity pertaining to distribution of the software
+   and/or database. Title to copyright in this software, database and any
+   associated documentation shall at all times remain with Princeton
+   University and LICENSEE agrees to preserve same.
+
+
+For the "Sun report designer" there's also included:
+
+   DO NOT TRANSLATE OR LOCALIZE THIS DOCUMENT
+     * Object Refinery Ltd, Pentaho Corporation
+          + flute
+     * Object Refinery Ltd, Pentaho Corporation
+          + JCommon-Serializer
+     * Object Refinery Ltd, Pentaho Corporation
+          + JCommon
+     * Object Refinery Ltd, Pentaho Corporation
+          + JFreeReport
+     * Object Refinery Ltd, Pentaho Corporation
+          + JCommon
+     * Object Refinery Ltd, Pentaho Corporation
+          + liblayout
+     * Object Refinery Ltd, Pentaho Corporation
+          + libloader
+     * Object Refinery Ltd, Pentaho Corporation
+          + libxml
+     * Object Refinery Ltd, Pentaho Corporation
+          + pixie
+     _________________________________________________________________
+
+   The following software may be included in this product:Flute ; Use of
+   any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  flute
+
+OFTWARE NOTICE AND LICENSE
+   Copyright <A9> 1994-2002 World Wide Web Consortium, (Massachusetts
+   Institute of Technology, Institut National de Recherche en
+   Informatique et en Automatique, Keio University). All Rights Reserved.
+   http://www.w3.org/Consortium/Legal/
+   This W3C work (including software, documents, or other related items)
+   is being provided by the copyright holders under the following
+   license. By obtaining, using and/or copying this work, you (the
+   licensee) agree that you have read, understood, and will comply with
+   the following terms and conditions:
+   Permission to use, copy, modify, and distribute this software and its
+   documentation, with or without modification, for any purpose and
+   without fee or royalty is hereby granted, provided that you include
+   the following on ALL copies of the software and documentation or
+   portions thereof, including modifications, that you make:
+   1. The full text of this NOTICE in a location viewable to users of the
+   redistributed or derivative work.
+   2. Any pre-existing intellectual property disclaimers, notices, or
+   terms and conditions. If none exist, a short notice of the following
+   form (hypertext is preferred, text is permitted) should be used within
+   the body of any redistributed or derivative code: "Copyright <A9>
+   [$date-of-software] World Wide Web Consortium, (Massachusetts
+   Institute of Technology, Institut National de Recherche en
+   Informatique et en Automatique, Keio University). All Rights Reserved.
+   http://www.w3.org/Consortium/Legal/"
+   3. Notice of any changes or modifications to the W3C files, including
+   the date changes were made. (We recommend you provide URIs to the
+   location from which the code is derived.)
+   THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
+   HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
+   INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
+   FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
+   DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+   TRADEMARKS OR OTHER RIGHTS.
+   COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+   OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+   DOCUMENTATION.
+   The name and trademarks of copyright holders may NOT be used in
+   advertising or publicity pertaining to the software without specific,
+   written prior permission. Title to copyright in this software and any
+   associated documentation will at all times remain with copyright
+   holders.
+   ____________________________________
+   This formulation of W3C's notice and license became active on August
+   14 1998 so as to improve compatibility with GPL. This version ensures
+   that W3C software licensing terms are no more restrictive than GPL and
+   consequently W3C software may be distributed in GPL packages. See the
+   older formulation for the policy prior to this date. Please see our
+   Copyright FAQ for common questions about using materials from our
+   site, including specific terms and conditions for packages like
+   libwww, Amaya, and Jigsaw. Other questions about this notice can be
+   directed to site-policy@w3.org.
+     _________________________________________________________________
+
+   The following software may be included in this product:
+   JCommon-Serializer; Use of any of this software is governed by the
+   terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  JCommon-Serializer
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: JCommon; Use
+   of any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  JCommon
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: JFreeReport;
+   Use of any of this software is governed by the terms of the license
+   below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  JFreeReport
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: JCommon; Use
+   of any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  JCommon
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: liblayout; Use
+   of any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  liblayout
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: libloader; Use
+   of any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  libloader
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: libxml; Use of
+   any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  libxml
+
+   jump to LGPL
+     _________________________________________________________________
+
+   The following software may be included in this product: pixie; Use of
+   any of this software is governed by the terms of the license below:
+
+Object Refinery Ltd, Pentaho Corporation
+
+  pixie
+
+   jump to LGPL
+     _________________________________________________________________
+
--- openoffice.org-2.4.1.orig/ooo-build/tc/changed-files
+++ openoffice.org-2.4.1/ooo-build/tc/changed-files
@@ -0,0 +1,38 @@
+sfx2/inc/sfx2/sfxsids.hrc
+sfx2/inc/sfx2/team.hxx
+sfx2/sdi/frmslots.sdi
+sfx2/sdi/sfx.sdi
+sfx2/source/appl/appreg.cxx
+sfx2/source/dialog/makefile.mk
+sfx2/source/dialog/team.cxx
+sw/source/ui/app/swmodule.cxx
+sw/source/ui/inc/teampi.hxx
+sw/source/ui/uiview/view.cxx
+sw/source/ui/uiview/view0.cxx
+sw/source/ui/uiview/view2.cxx
+sw/source/ui/utlui/makefile.mk
+sw/source/ui/utlui/teampi.cxx
+vcl/inc/vcl/salinst.hxx
+vcl/inc/vcl/salobj.hxx
+vcl/inc/vcl/syschildctrl.hxx
+vcl/inc/vcl/window.hxx
+vcl/inc/vcl/wintypes.hxx
+vcl/prj/d.lst
+vcl/source/window/makefile.mk
+vcl/source/window/syschildctrl.cxx
+vcl/unx/gtk/app/gtkinst.cxx
+vcl/unx/gtk/window/gtkframe.cxx
+vcl/unx/gtk/window/gtkobject.cxx
+vcl/unx/gtk/window/makefile.mk
+vcl/unx/headless/svpdummies.cxx
+vcl/unx/headless/svpdummies.hxx
+vcl/unx/headless/svpinst.cxx
+vcl/unx/headless/svpinst.hxx
+vcl/unx/inc/plugins/gtk/gtkinst.hxx
+vcl/unx/inc/plugins/gtk/gtkobject.hxx
+vcl/unx/inc/plugins/kde/kdedata.hxx
+vcl/unx/inc/salinst.h
+vcl/unx/inc/salobj.h
+vcl/unx/kde/salnativewidgets-kde.cxx
+vcl/unx/source/window/salobj.cxx
+vcl/util/makefile.mk
--- openoffice.org-2.4.1.orig/ooo-build/tc/README
+++ openoffice.org-2.4.1/ooo-build/tc/README
@@ -0,0 +1,27 @@
+Teaming & Conferencing experimental hacks...
+
+1) Apply patch: patches/src680/sw-team-pane.diff
+   and compile office.
+   Assume office is installed in /tmp/ooo (e.g. by ooinstall /tmp/ooo)
+
+2) Complie SamplePlug App and create link from office program dir to the
+   Sampleapp. OOo will look for TeamApp.
+
+   mcs -pkg:gtk-sharp SamplePlug.cs
+   mkbundle -o SamplePlug SamplePlug.exe 
+   ln -s SampleApp /tmp/ooo/program/TeamApp
+
+   
+3) Start soffice, e.g. /tmp/ooo/programm/soffice and create empty doc...
+   Team Pane should be place at the right side.
+
+** ALL EXPRIMENTAL AND WITH LOTS OF PRINTF... **
+
+TODO / PLAN:
+* Use the Mono Plug-in framework. I.e. the TeamApp should use the mono plug-in
+framework to start the custom app...
+* Make the TeamApp and OOo communicate via UNO.
+
+Have fun!
+
+freuter@novell.com
--- openoffice.org-2.4.1.orig/ooo-build/tc/SamplePlug.cs
+++ openoffice.org-2.4.1/ooo-build/tc/SamplePlug.cs
@@ -0,0 +1,50 @@
+
+using System;
+using Gtk;
+using Gdk;
+
+// Compile with:
+// mcs -pkg:gtk-sharp SamplePlug.cs
+// mkbundle -o SamplePlug SamplePlug.exe 
+
+public class SamplePlug
+{
+
+	public static void Main(string[] args) {
+	    if (args.Length != 2) {
+		Console.WriteLine("Need socket id and file-name as an argument.");
+		return;
+	    }
+	    uint socket_id = UInt32.Parse(args[0]);
+	    string filename=args[1];
+	    Console.WriteLine("filename="+filename);
+	    
+	    Console.WriteLine("using socket "+socket_id);
+
+//	    Glib.Thread.Init();
+	    Gdk.Threads.Init();
+	    
+	    Application.Init();
+	    Gdk.Threads.Enter();
+	    try {	    
+
+	    Plug plug= new Plug(socket_id);
+
+	    Fixed fixed1 = new Fixed();
+	    fixed1.Put(new Label("File: \""+filename+"\""), 10, 10);
+	    fixed1.Put(new Entry("HELLO"), 10, 50);
+	    fixed1.Put(new Entry("World"), 10, 100);
+	    fixed1.ShowAll();
+	    plug.Add(fixed1);
+	    plug.ShowAll();
+	    
+	    Console.WriteLine("app is running..");
+	    Application.Run();
+            } finally {
+	      Gdk.Threads.Leave();
+            }
+	    Console.WriteLine("Done!");
+	}	
+
+
+}
--- openoffice.org-2.4.1.orig/ooo-build/desktop/base.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/base.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=oobase@OOO_BINSUFFIX@
+Exec=oobase@OOO_BINSUFFIX@ %U
+Icon=ooo-base@OOO_BINSUFFIX@
+Type=Application
+Categories=Office;Database;
+StartupNotify=false
+MimeType=application/vnd.oasis.opendocument.database;application/vnd.sun.xml.base;
+_Name=OpenOffice.org Database
+_GenericName=Database
+_Comment=Manage databases, create queries and reports to track and manage your information.
+
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-calc.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-calc.svg
@@ -0,0 +1,2702 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-base.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6438">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6440" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6442" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6536">
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1;"
+         offset="0"
+         id="stop6538" />
+      <stop
+         id="stop6544"
+         offset="0.37837839"
+         style="stop-color:#a6a6a6;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5b5b5b;stop-opacity:1;"
+         offset="1"
+         id="stop6540" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient6156"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient6154"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6152"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6150"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient6148"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient6146"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6144"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6142"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6140"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient6138"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient6136"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6130">
+      <stop
+         id="stop6132"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6134"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6124">
+      <stop
+         id="stop6126"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6128"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6118">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6120" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop6122" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6112">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop6114" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop6116" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6105">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6107" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6109" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6093">
+      <stop
+         id="stop6095"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6097"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6087">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop6089" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6091" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6081">
+      <stop
+         id="stop6083"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6085"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6075">
+      <stop
+         id="stop6077"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6079"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6069">
+      <stop
+         id="stop6071"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6073"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient6063"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6065" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6067" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient6057"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6059" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6061" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6055"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient6049">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop6051" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6053" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6047"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6035">
+      <stop
+         id="stop6037"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop6039"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6029">
+      <stop
+         id="stop6031"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop6033"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6023">
+      <stop
+         id="stop6025"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop6027"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6017">
+      <stop
+         id="stop6019"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop6021"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6011">
+      <stop
+         id="stop6013"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6015"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6005">
+      <stop
+         id="stop6007"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6009"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5999">
+      <stop
+         id="stop6001"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop6003"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6265"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208590" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient6213"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient6209"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6207"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6205"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient6203"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient6201"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6199"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6195"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient6193"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient6191"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6185">
+      <stop
+         id="stop6187"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6189"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6179">
+      <stop
+         id="stop6181"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6183"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6173">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6175" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop6177" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6167">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop6169" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop6171" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6161">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6163" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6165" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6149">
+      <stop
+         id="stop6151"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6153"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6143">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop6145" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6147" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6137">
+      <stop
+         id="stop6139"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6141"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6131">
+      <stop
+         id="stop6133"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6135"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6125">
+      <stop
+         id="stop6127"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6129"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient6119"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6121" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6123" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient6110"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6112" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6117" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6108"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient6102">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop6104" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6106" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6100"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6086">
+      <stop
+         id="stop6088"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop6090"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6079">
+      <stop
+         id="stop6081"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop6084"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6072">
+      <stop
+         id="stop6074"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop6076"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6065">
+      <stop
+         id="stop6068"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop6070"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6058">
+      <stop
+         id="stop6060"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6062"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6052">
+      <stop
+         id="stop6054"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6056"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6046">
+      <stop
+         id="stop6048"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop6050"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6278"
+       inkscape:collect="always">
+      <stop
+         id="stop6280"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop6282"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd8"
+       id="linearGradient6328"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0285815,0,0,1,-3.7270094,0)"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6262"
+       id="linearGradient6330"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0278314,0,0,1,-3.6572998,0)"
+       x1="111.6685"
+       y1="100.92262"
+       x2="115.38278"
+       y2="77.05835" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd10"
+       id="linearGradient6332"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd12"
+       id="linearGradient6334"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6278"
+       id="linearGradient6336"
+       gradientUnits="userSpaceOnUse"
+       x1="12.40625"
+       y1="28.958008"
+       x2="12.40625"
+       y2="21.014084" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6438"
+       id="linearGradient6444"
+       x1="36.352699"
+       y1="38.289436"
+       x2="36.039848"
+       y2="14.07103"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="45.231763"
+     inkscape:cy="20.578978"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1058"
+     inkscape:window-height="904"
+     inkscape:window-x="2277"
+     inkscape:window-y="141"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.2822421,0,0,2.903201,-1.770087,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay">
+    <g
+       style="opacity:0.58730164;display:inline"
+       id="g5022"
+       transform="matrix(1.3082278e-2,0,0,1.307315e-2,46.177717,42.704919)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <g
+       id="g6446"
+       transform="translate(-3,0)">
+      <rect
+         style="color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect6270"
+         width="20"
+         height="24"
+         x="27.5"
+         y="20.5"
+         ry="0.63325351"
+         rx="0.63325346" />
+      <rect
+         rx="0.63325346"
+         ry="0.63325346"
+         y="21.5"
+         x="28.5"
+         height="22"
+         width="18"
+         id="rect6436"
+         style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6444);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <g
+         id="g6409">
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6272"
+           width="5"
+           height="1"
+           x="29"
+           y="26" />
+        <rect
+           y="22"
+           x="29"
+           height="3.030292"
+           width="17"
+           id="rect6206"
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           y="40"
+           x="37"
+           height="1.0000015"
+           width="3"
+           id="rect6274"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           y="28"
+           x="29"
+           height="1"
+           width="5"
+           id="rect6361"
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6363"
+           width="5"
+           height="1"
+           x="29"
+           y="30" />
+        <rect
+           y="32"
+           x="29"
+           height="1"
+           width="5"
+           id="rect6365"
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6367"
+           width="5"
+           height="1"
+           x="29"
+           y="34" />
+        <rect
+           y="36"
+           x="29"
+           height="1"
+           width="5"
+           id="rect6369"
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6371"
+           width="5"
+           height="1"
+           x="29"
+           y="38" />
+        <rect
+           y="40"
+           x="29"
+           height="1"
+           width="5"
+           id="rect6373"
+           style="opacity:0.50857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6377"
+           width="3"
+           height="1.0000015"
+           x="37"
+           y="38" />
+        <rect
+           y="36"
+           x="37"
+           height="1.0000015"
+           width="3"
+           id="rect6379"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6381"
+           width="3"
+           height="1.0000015"
+           x="37"
+           y="34" />
+        <rect
+           y="32"
+           x="37"
+           height="1.0000015"
+           width="3"
+           id="rect6383"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6385"
+           width="3"
+           height="1.0000015"
+           x="37"
+           y="30" />
+        <rect
+           y="28"
+           x="37"
+           height="1.0000015"
+           width="3"
+           id="rect6387"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6389"
+           width="3"
+           height="1.0000015"
+           x="37"
+           y="26" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6393"
+           width="3"
+           height="1.0000015"
+           x="43"
+           y="40" />
+        <rect
+           y="38"
+           x="43"
+           height="1.0000015"
+           width="3"
+           id="rect6395"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6397"
+           width="3"
+           height="1.0000015"
+           x="43"
+           y="36" />
+        <rect
+           y="34"
+           x="43"
+           height="1.0000015"
+           width="3"
+           id="rect6399"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6401"
+           width="3"
+           height="1.0000015"
+           x="43"
+           y="32" />
+        <rect
+           y="30"
+           x="43"
+           height="1.0000015"
+           width="3"
+           id="rect6403"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <rect
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect6405"
+           width="3"
+           height="1.0000015"
+           x="43"
+           y="28" />
+        <rect
+           y="26"
+           x="43"
+           height="1.0000015"
+           width="3"
+           id="rect6407"
+           style="opacity:0.50857143;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      </g>
+    </g>
+    <g
+       transform="matrix(0.5973468,0,0,0.5533662,-47.876641,-12.26012)"
+       id="g13072">
+      <path
+         id="path12957"
+         d="M 96.598835,76.60921 C 92.467153,79.208956 90.19323,82.739985 90.19323,86.555973 L 90.19323,89.723573 C 90.19323,93.536465 92.467153,97.068526 96.598835,99.668271 C 100.50127,102.12347 105.65839,103.476 111.12013,103.476 C 116.57983,103.476 121.73694,102.12347 125.64143,99.668271 C 129.77106,97.068526 132.04497,93.537498 132.04497,89.723573 L 132.04497,86.555973 C 132.04497,82.739985 129.77001,79.207924 125.64143,76.60921 C 121.73797,74.156076 116.58085,72.802514 111.12013,72.802514 C 105.65839,72.802514 100.50127,74.156076 96.598835,76.60921 z "
+         style="fill:#a40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12964"
+         d="M 129.73557,86.514 C 127.5272,81.493 120.03912,77.796 111.13367,77.796 C 102.22821,77.796 97.699498,80.614493 95.491134,85.635493 L 91.867306,86.514 L 91.867306,89.583 C 91.867306,96.092 100.49402,101.368 111.13367,101.368 C 121.77434,101.368 130.399,96.092 130.399,89.583 L 130.399,86.514 L 129.73557,86.514 L 129.73557,86.514 z "
+         style="fill:url(#linearGradient6328);fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+         sodipodi:nodetypes="cscccscccc" />
+      <path
+         id="path12971"
+         d="M 130.3709,86.514 C 130.3709,93.024 121.75253,98.3 111.11962,98.3 C 100.4867,98.3 91.867306,93.024 91.867306,86.514 C 91.867306,80.004 100.48773,74.728 111.11962,74.728 C 121.75253,74.728 130.3709,80.004 130.3709,86.514 L 130.3709,86.514 z "
+         style="fill:url(#linearGradient6330);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12978"
+         d="M 130.399,90.042 L 130.375,86.83 C 128.344,93.503 123.70302,95.850815 117.96102,97.234815 L 118.035,100.671 C 124.25,99.183 129.812,95.795 130.399,90.042 L 130.399,90.042 z "
+         style="fill:url(#linearGradient6332);fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+         sodipodi:nodetypes="cccccc" />
+      <path
+         id="path12985"
+         d="M 130.3709,86.514 C 129.94255,94.045 120.02525,96.999815 117.84253,97.130815 L 111.668,86.514 L 130.3699,86.514 L 130.3709,86.514 z "
+         style="fill:#729fcf;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         id="path12992"
+         d="M 107.748,101.11 L 107.748,98.042 C 111.273,98.479 114.507,98.156679 118,97.325679 L 118.035,100.672 C 115.108,101.586 110.529,101.629 107.748,101.111 L 107.748,101.11 z "
+         style="fill:url(#linearGradient6334);fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+         sodipodi:nodetypes="cccccc" />
+      <path
+         id="path12999"
+         d="M 111.668,86.515 L 117.85203,97.210679 C 113.97503,98.617679 107.748,98.042 107.748,98.042 L 111.668,86.515 z "
+         style="fill:#73d216;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       transform="matrix(1.4251012,0,0,1.5867768,0.8198382,-5.0123937)"
+       d="M 20.125 25.53125 A 7.71875 3.78125 0 1 1  4.6875,25.53125 A 7.71875 3.78125 0 1 1  20.125 25.53125 z"
+       sodipodi:ry="3.78125"
+       sodipodi:rx="7.71875"
+       sodipodi:cy="25.53125"
+       sodipodi:cx="12.40625"
+       id="path6276"
+       style="opacity:0.62285713;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6336);stroke-width:0.66499627;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       sodipodi:type="arc" />
+  </g>
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard ooo-*.svg)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-printeradmin.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-printeradmin.svg
@@ -0,0 +1,2365 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-printeradmin.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient5940">
+      <stop
+         style="stop-color:white;stop-opacity:0;"
+         offset="0"
+         id="stop5942" />
+      <stop
+         id="stop5948"
+         offset="0.5"
+         style="stop-color:white;stop-opacity:1;" />
+      <stop
+         style="stop-color:white;stop-opacity:0;"
+         offset="1"
+         id="stop5944" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:0;"
+         offset="1"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5066"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.893438,0.000000,0.000000,0.528140,-0.132583,0.132583)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5064"
+       gradientTransform="scale(1.893439,0.528140)"
+       cx="6.5639611"
+       cy="33.367071"
+       fx="6.5639611"
+       fy="33.367071"
+       r="4.4013871"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="radialGradient2306"
+       gradientTransform="matrix(0.707070,0.791544,-1.418339,1.266973,21.62142,-12.58873)"
+       cx="10.583370"
+       cy="12.496332"
+       fx="10.583370"
+       fy="12.496332"
+       r="21.715572"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2281"
+       id="radialGradient2279"
+       gradientUnits="userSpaceOnUse"
+       cx="14.863404"
+       cy="14.343489"
+       fx="14.863403"
+       fy="14.343489"
+       r="30.664885" />
+    <linearGradient
+       y2="35.208590"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2221"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208590"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5059"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530133"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5057"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2210"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2208"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7939111"
+       fy="45.910062"
+       fx="22.431478"
+       cy="45.910062"
+       cx="22.431478"
+       gradientTransform="scale(1.336771,0.748071)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2206"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3571"
+       id="radialGradient3577"
+       cx="22.710558"
+       cy="22.695679"
+       fx="22.710558"
+       fy="22.695679"
+       r="25.561037"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5051"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431478"
+       cy="45.910062"
+       fx="22.431478"
+       fy="45.910062"
+       r="6.7939111"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5049"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5047"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208590" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5045"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530133" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5043"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5041"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.876320"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.598750e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5039"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="30.664885"
+       fy="14.343489"
+       fx="14.863403"
+       cy="14.343489"
+       cx="14.863404"
+       id="radialGradient3126"
+       xlink:href="#linearGradient3120"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5032">
+      <stop
+         id="stop5034"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5036"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5026">
+      <stop
+         id="stop5028"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5030"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5020">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5022" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5024" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5014">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5016" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5018" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5008">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5010" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5012" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3571">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3573" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3575" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4993">
+      <stop
+         id="stop4995"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4997"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4987">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.66336632;"
+         offset="0.0000000"
+         id="stop4989" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4991" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4981">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop4983" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4985" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4668"
+       id="linearGradient4674"
+       gradientTransform="matrix(1.556588,0,0,0.293556,14.69206,16.54865)"
+       x1="1.8456431"
+       y1="88.294933"
+       x2="18.972126"
+       y2="88.294933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4668">
+      <stop
+         style="stop-color:#8e8d87;stop-opacity:1;"
+         offset="0"
+         id="stop4670" />
+      <stop
+         id="stop4676"
+         offset="0.27586207"
+         style="stop-color:#cbc9c1;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#8e8d87;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4672" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4741"
+       id="linearGradient4716"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.556588,0,0,0.293556,14.69206,16.68413)"
+       x1="1.8456430"
+       y1="88.294930"
+       x2="18.972126"
+       y2="88.294930" />
+    <linearGradient
+       id="linearGradient4741">
+      <stop
+         style="stop-color:#96958f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4743" />
+      <stop
+         style="stop-color:#696864;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4745" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4762"
+       id="linearGradient4758"
+       gradientTransform="matrix(1.010822,0,0,0.452054,14.69206,16.68413)"
+       x1="15.387969"
+       y1="32.539238"
+       x2="15.487823"
+       y2="58.831264"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4762">
+      <stop
+         id="stop4764"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.12371134;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.10344828"
+         id="stop4768" />
+      <stop
+         id="stop4766"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="linearGradient4605"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.625338,0,0,0.730718,14.79911,18.28609)"
+       x1="25.056711"
+       y1="3.6785457"
+       x2="24.789707"
+       y2="25.247311" />
+    <linearGradient
+       id="linearGradient4958">
+      <stop
+         style="stop-color:#e0e0e0;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4960" />
+      <stop
+         id="stop4886"
+         offset="0.40546969"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4884"
+         offset="0.53448278"
+         style="stop-color:#cdcdcd;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#494949;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4964" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient4607"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.495711,0,0,0.528729,20.04397,17.68218)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <linearGradient
+       id="linearGradient4951">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4953" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4955" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="linearGradient4729"
+       gradientTransform="matrix(0.79075,0,0,0.577865,14.69206,16.93413)"
+       x1="20.771229"
+       y1="25.140253"
+       x2="20.717800"
+       y2="19.337463"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4944">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop4946" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4948" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4680"
+       id="linearGradient4686"
+       gradientTransform="matrix(1.601962,0,0,0.285242,14.69206,16.68413)"
+       x1="10.338233"
+       y1="64.652260"
+       x2="10.338233"
+       y2="54.136139"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4680">
+      <stop
+         style="stop-color:#f7f6f5;stop-opacity:1;"
+         offset="0"
+         id="stop4682" />
+      <stop
+         style="stop-color:#f7f6f5;stop-opacity:0;"
+         offset="1"
+         id="stop4684" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4688"
+       id="linearGradient4694"
+       gradientTransform="matrix(1.601962,0,0,0.285242,14.69206,16.68413)"
+       x1="9.7316532"
+       y1="70.724976"
+       x2="9.7052784"
+       y2="62.282467"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4688">
+      <stop
+         style="stop-color:#666666;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4690" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4692" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4698"
+       id="radialGradient4704"
+       cx="9.1295490"
+       cy="26.925594"
+       fx="9.1295490"
+       fy="26.925594"
+       r="2.1227016"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4698">
+      <stop
+         style="stop-color:#fffffd;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop4700" />
+      <stop
+         id="stop4706"
+         offset="0.50000000"
+         style="stop-color:#bbbbb9;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop4702" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4733"
+       id="linearGradient4739"
+       gradientTransform="matrix(1.873868,0,0,0.243851,15.11028,17.28161)"
+       x1="9.8698082"
+       y1="57.227650"
+       x2="9.9128132"
+       y2="72.064316"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4733">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23711340;"
+         offset="0.0000000"
+         id="stop4735" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4737" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4668"
+       id="linearGradient5113"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.556588,0,0,0.293556,14.69206,16.54865)"
+       x1="1.8456431"
+       y1="88.294933"
+       x2="18.972126"
+       y2="88.294933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4741"
+       id="linearGradient5115"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.556588,0,0,0.293556,14.69206,16.68413)"
+       x1="1.8456430"
+       y1="88.294930"
+       x2="18.972126"
+       y2="88.294930" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4762"
+       id="linearGradient5117"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.010822,0,0,0.452054,14.69206,16.68413)"
+       x1="15.387969"
+       y1="32.539238"
+       x2="15.487823"
+       y2="58.831264" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="linearGradient5119"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.625338,0,0,0.730718,14.79911,18.28609)"
+       x1="25.056711"
+       y1="3.6785457"
+       x2="24.789707"
+       y2="25.247311" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient5121"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.495711,0,0,0.528729,20.04397,17.68218)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="linearGradient5123"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.79075,0,0,0.577865,14.69206,16.93413)"
+       x1="20.771229"
+       y1="25.140253"
+       x2="20.717800"
+       y2="19.337463" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4680"
+       id="linearGradient5125"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.601962,0,0,0.285242,14.69206,16.68413)"
+       x1="10.338233"
+       y1="64.652260"
+       x2="10.338233"
+       y2="54.136139" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4688"
+       id="linearGradient5127"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.601962,0,0,0.285242,14.69206,16.68413)"
+       x1="9.7316532"
+       y1="70.724976"
+       x2="9.7052784"
+       y2="62.282467" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4698"
+       id="radialGradient5129"
+       gradientUnits="userSpaceOnUse"
+       cx="9.1295490"
+       cy="26.925594"
+       fx="9.1295490"
+       fy="26.925594"
+       r="2.1227016" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4733"
+       id="linearGradient5131"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.873868,0,0,0.243851,15.11028,17.28161)"
+       x1="9.8698082"
+       y1="57.227650"
+       x2="9.9128132"
+       y2="72.064316" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4733"
+       id="linearGradient5139"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.842252,0,0,0.243851,48.11999,16.90657)"
+       x1="9.8698082"
+       y1="57.227650"
+       x2="9.9128132"
+       y2="72.064316" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4680"
+       id="linearGradient5143"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.601962,0,0,0.285242,48.12956,16.30909)"
+       x1="10.338233"
+       y1="64.652260"
+       x2="10.338233"
+       y2="54.136139" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4688"
+       id="linearGradient5145"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.601962,0,0,0.285242,48.12956,16.30909)"
+       x1="9.7316532"
+       y1="70.724976"
+       x2="9.7052784"
+       y2="62.282467" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="linearGradient5148"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811132,0,0,0.573156,48.34958,16.6819)"
+       x1="-17.29286"
+       y1="17.507078"
+       x2="-16.883972"
+       y2="26.781652" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="linearGradient5151"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.664191,0,0,0.738822,49.0978,17.73482)"
+       x1="25.056711"
+       y1="3.6785457"
+       x2="24.789707"
+       y2="25.247311" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4762"
+       id="linearGradient5156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.987988,0,0,0.45248,47.83735,16.29014)"
+       x1="15.387969"
+       y1="32.539238"
+       x2="15.487823"
+       y2="58.831264" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4741"
+       id="linearGradient5160"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.558307,0,0,0.293544,48.21221,16.30993)"
+       x1="1.8456430"
+       y1="88.294930"
+       x2="18.972126"
+       y2="88.294930" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4668"
+       id="linearGradient5163"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.43986,0,0,0.295878,46.92241,15.96458)"
+       x1="1.8456431"
+       y1="88.294933"
+       x2="18.972126"
+       y2="88.294933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5940"
+       id="linearGradient5946"
+       x1="31.258699"
+       y1="27.847456"
+       x2="31.258699"
+       y2="30.330687"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.681853,0,-20.67537)" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="40.636363"
+     inkscape:cy="37.715484"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1074"
+     inkscape:window-height="963"
+     inkscape:window-x="2292"
+     inkscape:window-y="147"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay">
+    <g
+       style="display:inline"
+       transform="matrix(0.128183,0,0,0.134294,16.4347,19.44276)"
+       id="g1197"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         d="M 32.706693,164.36026 C 22.319193,164.36026 13.956693,172.72276 13.956693,183.11026 C 13.956693,193.49776 22.319193,201.86026 32.706693,201.86026 L 205.20669,201.86026 C 215.59419,201.86026 223.95669,193.49776 223.95669,183.11026 C 223.95669,172.72276 215.59419,164.36026 205.20669,164.36026 L 32.706693,164.36026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1196"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.706693,165.61026 C 23.011693,165.61026 15.206693,173.41526 15.206693,183.11026 C 15.206693,192.80526 23.011693,200.61026 32.706693,200.61026 L 205.20669,200.61026 C 214.90169,200.61026 222.70669,192.80526 222.70669,183.11026 C 222.70669,173.41526 214.90169,165.61026 205.20669,165.61026 L 32.706693,165.61026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1195"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.706694,166.86026 C 23.704194,166.86026 16.456694,174.10776 16.456694,183.11026 C 16.456694,192.11276 23.704194,199.36026 32.706694,199.36026 L 205.20669,199.36026 C 214.20919,199.36026 221.45669,192.11276 221.45669,183.11026 C 221.45669,174.10776 214.20919,166.86026 205.20669,166.86026 L 32.706694,166.86026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1194"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.706694,168.11026 C 24.396694,168.11026 17.706694,174.80026 17.706694,183.11026 C 17.706694,191.42026 24.396694,198.11026 32.706694,198.11026 L 205.20669,198.11026 C 213.51669,198.11026 220.20669,191.42026 220.20669,183.11026 C 220.20669,174.80026 213.51669,168.11026 205.20669,168.11026 L 32.706694,168.11026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1193"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.707764,169.36026 C 25.090264,169.36026 18.957764,175.49276 18.957764,183.11026 C 18.957764,190.72776 25.090264,196.86026 32.707764,196.86026 L 205.20618,196.86026 C 212.82368,196.86026 218.95618,190.72776 218.95618,183.11026 C 218.95618,175.49276 212.82368,169.36026 205.20618,169.36026 L 32.707764,169.36026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1192"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.706694,170.61026 C 25.781694,170.61026 20.206694,176.18526 20.206694,183.11026 C 20.206694,190.03526 25.781694,195.61026 32.706694,195.61026 L 205.20669,195.61026 C 212.13169,195.61026 217.70669,190.03526 217.70669,183.11026 C 217.70669,176.18526 212.13169,170.61026 205.20669,170.61026 L 32.706694,170.61026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1191"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.706694,171.86026 C 26.474194,171.86026 21.456694,176.87776 21.456694,183.11026 C 21.456694,189.34276 26.474194,194.36026 32.706694,194.36026 L 205.20669,194.36026 C 211.43919,194.36026 216.45669,189.34276 216.45669,183.11026 C 216.45669,176.87776 211.43919,171.86026 205.20669,171.86026 L 32.706694,171.86026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1190"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         d="M 32.706694,173.11026 C 27.166694,173.11026 22.706694,177.57026 22.706694,183.11026 C 22.706694,188.65026 27.166694,193.11026 32.706694,193.11026 L 205.20669,193.11026 C 210.74669,193.11026 215.20669,188.65026 215.20669,183.11026 C 215.20669,177.57026 210.74669,173.11026 205.20669,173.11026 L 32.706694,173.11026 z "
+         style="opacity:0.04787233;fill-rule:evenodd;stroke-width:3pt"
+         id="path1189"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <rect
+       style="fill:url(#linearGradient5163);fill-opacity:1;stroke:#282828;stroke-width:0.96557152;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4652"
+       width="24.03443"
+       height="4.3860335"
+       x="19.482784"
+       y="40.400131"
+       rx="1.5831994"
+       ry="1.7250896" />
+    <path
+       style="color:black;fill:url(#linearGradient5160);fill-opacity:1;fill-rule:nonzero;stroke:#282828;stroke-width:1.00053155;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 19.969665,29.990931 L 43.030334,29.990931 C 43.292143,29.990931 43.626665,30.185709 43.832961,30.480263 C 44.039255,30.774819 45.013659,32.244507 45.232551,32.558164 C 45.451445,32.87182 45.499734,33.169146 45.499734,33.555923 L 45.499734,41.719299 C 45.499734,42.336828 45.00202,42.833972 44.383782,42.833972 L 18.616217,42.833972 C 17.99798,42.833972 17.500266,42.336828 17.500266,41.719299 L 17.500266,33.555923 C 17.500266,33.221991 17.569053,32.743155 17.803796,32.438353 C 18.100009,32.053736 18.894657,30.716069 19.104257,30.432406 C 19.313857,30.148743 19.698743,29.990931 19.969665,29.990931 z "
+       id="rect4609"
+       sodipodi:nodetypes="cssssssssssss" />
+    <path
+       style="fill:#ece9df;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 20.512319,30.312114 C 20.176397,30.312114 19.744462,30.401192 19.567345,30.67423 L 18.327061,32.586183 C 18.127403,32.893966 18.349744,33.619408 18.950531,33.619408 L 44.103873,33.619408 C 44.916534,33.619408 44.918907,32.936625 44.727341,32.645931 L 43.546121,30.853476 C 43.331942,30.528466 43.2542,30.312114 42.719266,30.312114 L 20.512319,30.312114 z "
+       id="path4718"
+       sodipodi:nodetypes="cssssssss" />
+    <path
+       sodipodi:nodetypes="cssssssssssss"
+       id="path4750"
+       d="M 20.56824,30.624529 L 42.414655,30.624529 C 42.656711,30.624529 42.965995,30.809159 43.156726,31.088367 C 43.347457,31.367576 44.014749,32.461666 44.217128,32.758982 C 44.419507,33.056296 44.505447,33.338132 44.505447,33.704757 L 44.505447,41.337719 C 44.505447,41.923075 44.416931,42.182875 43.845339,42.182875 L 19.195957,42.182875 C 18.624364,42.182875 18.494554,41.923075 18.494554,41.337719 L 18.494554,33.704757 C 18.494554,33.388224 18.64074,32.934336 18.857771,32.645414 C 19.131638,32.280835 19.574338,31.311886 19.768124,31.043002 C 19.96191,30.774119 20.317757,30.624529 20.56824,30.624529 z "
+       style="color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5156);stroke-width:0.98910671;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:black;fill:url(#linearGradient5151);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1.03629684;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 22.343141,18.518148 L 39.65686,18.518148 C 40.113906,18.518148 40.481852,18.868412 40.481852,19.303494 L 40.481852,32.146273 L 21.518148,32.146273 L 21.518148,19.303494 C 21.518148,18.868412 21.886095,18.518148 22.343141,18.518148 z "
+       id="rect15391"
+       sodipodi:nodetypes="ccccccc" />
+    <rect
+       rx="0.18133327"
+       ry="0.17533584"
+       y="19.504335"
+       x="22.504335"
+       height="12.648294"
+       width="16.916317"
+       id="rect15660"
+       style="color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5148);stroke-width:1.009;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" />
+    <rect
+       style="fill:url(#linearGradient5143);fill-opacity:1;stroke:url(#linearGradient5145);stroke-width:0.67597753;stroke-miterlimit:4;stroke-opacity:1"
+       id="rect4678"
+       width="22.814241"
+       height="3.5066333"
+       x="19.901892"
+       y="33.962036"
+       rx="1.7115483"
+       ry="1.7115483" />
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#radialGradient5129);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       id="path4696"
+       sodipodi:cx="9.5901356"
+       sodipodi:cy="27.626486"
+       sodipodi:rx="1.281631"
+       sodipodi:ry="1.281631"
+       d="M 10.871767 27.626486 A 1.281631 1.281631 0 1 1  8.3085046,27.626486 A 1.281631 1.281631 0 1 1  10.871767 27.626486 z"
+       transform="matrix(0.675978,0,0,0.675978,15.25455,16.80911)" />
+    <path
+       style="fill:url(#linearGradient5139);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 23.193036,32.637829 L 40.181165,32.680078 C 40.638057,32.681214 40.837643,32.429294 40.804202,32.0041 L 40.721131,30.947885 L 41.9613,30.947885 C 42.501266,30.947885 42.61936,31.078054 42.75048,31.328123 L 43.082766,31.961852 C 43.43286,32.629542 44.286421,33.296307 43.413829,33.296307 C 40.421453,33.296307 24.688324,33.060315 23.193036,32.637829 z "
+       id="path4731"
+       sodipodi:nodetypes="csscssssc" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path4760"
+       d="M 44.279331,33.539547 L 18.507689,33.539547"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.67597753px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+    <rect
+       style="color:black;fill:black;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect5664"
+       width="11.937502"
+       height="1"
+       x="25.062498"
+       y="21.062475" />
+    <rect
+       y="23.062475"
+       x="25.062498"
+       height="1"
+       width="11.937502"
+       id="rect5666"
+       style="color:black;fill:black;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="color:black;fill:black;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect5668"
+       width="11.937502"
+       height="1"
+       x="25.062498"
+       y="25.062475" />
+    <rect
+       y="26.999975"
+       x="25.062498"
+       height="1"
+       width="6.9375019"
+       id="rect5670"
+       style="color:black;fill:black;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <rect
+       style="opacity:1;color:black;fill:url(#linearGradient5946);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00899994;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect5938"
+       width="17.766058"
+       height="4.162374"
+       x="22.008699"
+       y="26.159956" />
+  </g>
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-gulls.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-gulls.svg
@@ -0,0 +1,1474 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-gulls.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="55.893783"
+     inkscape:cy="12.755464"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1058"
+     inkscape:window-height="904"
+     inkscape:window-x="2277"
+     inkscape:window-y="141"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay" />
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-draw.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-draw.svg
@@ -0,0 +1,2563 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-gulls.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5398"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5386">
+      <stop
+         style="stop-color:#696969;stop-opacity:1;"
+         offset="0"
+         id="stop5388" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop5390" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5376">
+      <stop
+         style="stop-color:#6e3d09;stop-opacity:1;"
+         offset="0"
+         id="stop5378" />
+      <stop
+         id="stop5380"
+         offset="0.24242425"
+         style="stop-color:#ea8113;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5c3307;stop-opacity:1;"
+         offset="0.62121212"
+         id="stop5382" />
+      <stop
+         style="stop-color:#e07c12;stop-opacity:1;"
+         offset="1"
+         id="stop5384" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5366">
+      <stop
+         style="stop-color:#bdbdbd;stop-opacity:1;"
+         offset="0"
+         id="stop5368" />
+      <stop
+         id="stop5370"
+         offset="0.33333334"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1;"
+         offset="0.66666669"
+         id="stop5372" />
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="1"
+         id="stop5374" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5360">
+      <stop
+         style="stop-color:#50534b;stop-opacity:0.46391752;"
+         offset="0.0000000"
+         id="stop5362" />
+      <stop
+         style="stop-color:#50534b;stop-opacity:0;"
+         offset="1"
+         id="stop5364" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16370"
+       id="radialGradient5358"
+       cx="27.125000"
+       cy="45.625000"
+       fx="27.125000"
+       fy="45.625000"
+       r="22.500000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.200000,-4.404001e-15,36.50000)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient5350">
+      <stop
+         style="stop-color:#818181;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5352" />
+      <stop
+         id="stop5354"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bebebe;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5356" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient5348"
+       gradientUnits="userSpaceOnUse"
+       x1="3.6693072"
+       y1="27.981939"
+       x2="46.098797"
+       y2="27.981939"
+       gradientTransform="translate(54.50145,-4.377128)" />
+    <linearGradient
+       id="linearGradient5342">
+      <stop
+         style="stop-color:#b87202;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5344" />
+      <stop
+         style="stop-color:#8f5902;stop-opacity:0;"
+         offset="1"
+         id="stop5346" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5336">
+      <stop
+         style="stop-color:#505b5f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5338" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5340" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5328">
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5330" />
+      <stop
+         style="stop-color:#555753;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5332" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5334" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5322">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop5324" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop5326" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5314">
+      <stop
+         id="stop5316"
+         offset="0.0000000"
+         style="stop-color:#969993;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5318"
+         offset="0.50000000"
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5320"
+         offset="1.0000000"
+         style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5308">
+      <stop
+         id="stop5310"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop5312"
+         offset="1"
+         style="stop-color:#fcf18f;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5302">
+      <stop
+         id="stop5304"
+         offset="0"
+         style="stop-color:#b59300;stop-opacity:1;" />
+      <stop
+         id="stop5306"
+         offset="1"
+         style="stop-color:#b59300;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5290">
+      <stop
+         id="stop5292"
+         offset="0.0000000"
+         style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5294"
+         offset="1"
+         style="stop-color:#544500;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5284">
+      <stop
+         id="stop5286"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5288"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5278">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop5280" />
+      <stop
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5282" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5272">
+      <stop
+         style="stop-color:#987c00;stop-opacity:1;"
+         offset="0"
+         id="stop5274" />
+      <stop
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5276" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5266">
+      <stop
+         style="stop-color:#edd400;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5268" />
+      <stop
+         style="stop-color:#b8a500;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5270" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5260">
+      <stop
+         style="stop-color:#e9b96e;stop-opacity:1;"
+         offset="0"
+         id="stop5262" />
+      <stop
+         style="stop-color:#b88433;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5264" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5254">
+      <stop
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5256" />
+      <stop
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5258" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient5252"
+       gradientTransform="scale(0.831950,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient5250"
+       gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient5248"
+       gradientTransform="scale(0.827650,1.208240)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="29.502863"
+       x2="24.769884"
+       y1="11.246989"
+       x1="15.750742"
+       gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5246"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5244"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.211454"
+       x2="29.475761"
+       y1="13.215685"
+       x1="20.190006"
+       gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5242"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="scale(0.824694,1.212571)"
+       id="linearGradient5240"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       id="linearGradient5238"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       id="linearGradient5236"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5234"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5232"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.827650,1.208240)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5230"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5228"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5226"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5224"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.831950,1.201995)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5222"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5220"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient5218"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+       x1="32.368496"
+       y1="6.0591717"
+       x2="35.239323"
+       y2="-3.6642039" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient5216"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient5214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+       x1="43.604591"
+       y1="9.6609612"
+       x2="48.134148"
+       y2="1.5751816" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient5212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+       x1="28.250944"
+       y1="1.5502936"
+       x2="29.906208"
+       y2="-2.3372657" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient5210"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient5208"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+       x1="41.323280"
+       y1="-3.1978326"
+       x2="38.269123"
+       y2="11.365776" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="11.797005"
+       x2="-23.287144"
+       y1="11.797003"
+       x1="-32.138432"
+       gradientTransform="scale(1.089011,0.918264)"
+       id="linearGradient5206"
+       xlink:href="#linearGradient5229"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient5204"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       x1="24.742752"
+       y1="2.3111212"
+       x2="31.589277"
+       y2="2.4383495" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7625"
+       id="radialGradient5202"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       cx="8.9124269"
+       cy="34.747555"
+       fx="9.0367527"
+       fy="34.482697"
+       r="7.9984083"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient5200"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       x1="33.882736"
+       y1="12.904269"
+       x2="38.881176"
+       y2="6.9174280"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient5198"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="41.377167"
+       y2="5.4044285"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient5196"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="40.450649"
+       y2="7.7109184"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6939"
+       id="linearGradient5194"
+       x1="19.394735"
+       y1="30.001331"
+       x2="23.109331"
+       y2="33.438831"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6951"
+       id="linearGradient5192"
+       x1="28.058632"
+       y1="18.867767"
+       x2="37.092148"
+       y2="27.20533"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6963"
+       id="radialGradient5190"
+       cx="15.415101"
+       cy="35.356506"
+       fx="15.415101"
+       fy="35.356506"
+       r="7.5791561"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2446"
+       id="linearGradient5188"
+       x1="13.236155"
+       y1="37.752247"
+       x2="7.7521091"
+       y2="42.282146"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient5186"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient5184"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5182"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5180"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5178"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5176"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5174"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5172"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5170"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5168"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5166"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5160">
+      <stop
+         id="stop5162"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5164"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5154">
+      <stop
+         id="stop5156"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5158"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5148">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5150" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5152" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5142">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5144" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5146" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5135">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5138" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5140" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5123">
+      <stop
+         id="stop5125"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5127"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5117">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop5119" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5121" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5111">
+      <stop
+         id="stop5113"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5115"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5105">
+      <stop
+         id="stop5107"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5109"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5099">
+      <stop
+         id="stop5101"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5103"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient5093"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop5095" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop5097" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient5087"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop5089" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop5091" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5085"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient5079">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop5081" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop5083" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5077"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5065">
+      <stop
+         id="stop5067"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop5069"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5059">
+      <stop
+         id="stop5061"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop5063"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5053">
+      <stop
+         id="stop5055"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop5057"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5047">
+      <stop
+         id="stop5049"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop5051"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5041">
+      <stop
+         id="stop5043"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop5045"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5035">
+      <stop
+         id="stop5037"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop5039"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5029">
+      <stop
+         id="stop5031"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop5033"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6951"
+       id="linearGradient5486"
+       gradientUnits="userSpaceOnUse"
+       x1="30.528313"
+       y1="26.159601"
+       x2="15.15364"
+       y2="11.57537" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6939"
+       id="linearGradient5488"
+       gradientUnits="userSpaceOnUse"
+       x1="19.394735"
+       y1="30.001331"
+       x2="23.109331"
+       y2="33.438831" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6963"
+       id="radialGradient5490"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       cx="15.415101"
+       cy="35.356506"
+       fx="15.415101"
+       fy="35.356506"
+       r="7.5791559" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2446"
+       id="linearGradient5492"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.7944406,-7.1764959)"
+       x1="13.236155"
+       y1="37.752247"
+       x2="7.7521091"
+       y2="42.282146" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient5496"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="78.747936"
+     inkscape:cy="1.3998816"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1058"
+     inkscape:window-height="904"
+     inkscape:window-x="2277"
+     inkscape:window-y="117"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       transform="matrix(0.9675213,0,0,2.263201,20.469126,-17.365718)"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       sodipodi:ry="2.34375"
+       sodipodi:rx="12.3125"
+       sodipodi:cy="26.90625"
+       sodipodi:cx="16.25"
+       id="path5494"
+       style="opacity:0.21714286;color:#000000;fill:url(#radialGradient5496);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay">
+    <g
+       style="display:inline"
+       id="g5433"
+       inkscape:label="overlay"
+       transform="matrix(1.5198924,0,0,1.5198924,-1.1330985,0.4640772)">
+      <g
+         inkscape:label="Layer 1"
+         id="g7060"
+         transform="matrix(-0.4112181,-0.1074147,-0.1074147,0.4112181,36.864412,13.048714)">
+        <path
+           sodipodi:nodetypes="ccssc"
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="path6937"
+           d="M 22.395676,22.258801 L 27.624496,28.190289 C 34.811995,21.12779 45.407556,4.2130019 45.407556,4.2130019 C 45.837046,2.9885557 44.320311,2.217109 43.561204,3.0425069 C 43.561204,3.0425069 28.708175,15.008802 22.395676,22.258801 z "
+           style="opacity:1;color:#000000;fill:url(#linearGradient5486);fill-opacity:1;fill-rule:nonzero;stroke:#673907;stroke-width:1.54804003;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           sodipodi:nodetypes="ccccccccc"
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="path6935"
+           d="M 14.138079,32.529496 L 18.203555,36.55057 L 26.696321,29.183539 L 26.971382,28.477711 L 28.065787,28.459896 C 27.628287,26.897396 22.87641,21.984675 21.00141,21.984675 L 21.083429,23.07475 L 20.413438,23.454777 L 14.138079,32.529496 z "
+           style="opacity:1;color:#000000;fill:url(#linearGradient5488);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1.54804003;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           sodipodi:nodetypes="cssc"
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="path6933"
+           d="M 0.60938324,43.813107 C 8.8464451,44.605602 17.018658,45.352054 18.470017,38.18904 C 19.639611,32.416641 10.056482,28.420864 7.2663165,34.19695 C 4.6170424,39.681368 0.60938324,43.813107 0.60938324,43.813107 z "
+           style="opacity:1;color:#000000;fill:url(#radialGradient5490);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           transform="matrix(1.2381818,0,0,1.2381818,2.1668941,-12.184334)"
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           d="M 8.8749989 37.75 A 1.2499999 1.2499999 0 1 1  6.3749992,37.75 A 1.2499999 1.2499999 0 1 1  8.8749989 37.75 z"
+           sodipodi:ry="1.2499999"
+           sodipodi:rx="1.2499999"
+           sodipodi:cy="37.75"
+           sodipodi:cx="7.624999"
+           id="path6971"
+           style="opacity:0.76000001;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           sodipodi:type="arc" />
+        <path
+           sodipodi:type="arc"
+           style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           id="path6983"
+           sodipodi:cx="7.624999"
+           sodipodi:cy="37.75"
+           sodipodi:rx="1.2499999"
+           sodipodi:ry="1.2499999"
+           d="M 8.8749989 37.75 A 1.2499999 1.2499999 0 1 1  6.3749992,37.75 A 1.2499999 1.2499999 0 1 1  8.8749989 37.75 z"
+           inkscape:r_cx="true"
+           inkscape:r_cy="true"
+           transform="matrix(0.6190909,1.3035706e-7,1.2736174e-7,0.6190904,16.561778,1.7135438)" />
+        <path
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="path6985"
+           d="M 21.007305,26.760638 L 17.139101,31.220952"
+           style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.54804003;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           sodipodi:nodetypes="cc" />
+        <path
+           sodipodi:nodetypes="cssc"
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           id="path1571"
+           d="M 1.7881809,43.191846 C 1.7881809,43.191846 6.4222511,40.914666 8.396921,37.523477 C 9.095553,36.323684 10.677637,37.347558 9.702994,38.542216 C 7.597796,41.122643 1.7881809,43.191846 1.7881809,43.191846 z "
+           style="opacity:0.42777776;color:#000000;fill:url(#linearGradient5492);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+        <path
+           transform="matrix(0.237867,0,0,0.237867,42.34084,-5.298172)"
+           inkscape:r_cy="true"
+           inkscape:r_cx="true"
+           d="M 8.8749989 37.75 A 1.2499999 1.2499999 0 1 1  6.3749992,37.75 A 1.2499999 1.2499999 0 1 1  8.8749989 37.75 z"
+           sodipodi:ry="1.2499999"
+           sodipodi:rx="1.2499999"
+           sodipodi:cy="37.75"
+           sodipodi:cx="7.624999"
+           id="path2454"
+           style="opacity:0.53333285;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+           sodipodi:type="arc" />
+      </g>
+    </g>
+  </g>
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-impress.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-impress.svg
@@ -0,0 +1,6841 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-impress.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/xx.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12979"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12974"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12969"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12964"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12954"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12944"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12939"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12934"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12929"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12924"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12919"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12914"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12909"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12904"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12899"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12894"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12889"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12884"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12879"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12874"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12868"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12866"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12860"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12858"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12853"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12848"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12708"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12706"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12704"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12702"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12700"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12698"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12696"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12692"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12690"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12688"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12686"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12682"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="radialGradient8797"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.455931,0.000000,0.000000,0.486299,28.42990,24.00306)"
+       cx="8.1435566"
+       cy="7.2678967"
+       fx="8.1435566"
+       fy="7.2678967"
+       r="38.158695" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient8795"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.455931,0.000000,0.000000,0.486299,28.42990,24.00306)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="radialGradient8793"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.452267,0.000000,0.000000,0.490237,26.85082,23.69868)"
+       cx="33.966679"
+       cy="35.736916"
+       fx="33.966679"
+       fy="35.736916"
+       r="86.708450" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3531"
+       id="linearGradient4043"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.465109,0.000000,0.000000,1.040624,65.70948,55.22237)"
+       x1="57.643562"
+       y1="8.6012535"
+       x2="39.081673"
+       y2="20.923300" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient4041"
+       gradientTransform="matrix(0.465109,0.000000,0.000000,1.040624,16.76173,13.93041)"
+       x1="34.242388"
+       y1="16.046797"
+       x2="60.419967"
+       y2="16.046797"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5262"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.893438,0.000000,0.000000,0.528140,-0.132583,0.132583)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5260"
+       gradientTransform="scale(1.893439,0.528140)"
+       cx="6.5639611"
+       cy="33.367071"
+       fx="6.5639611"
+       fy="33.367071"
+       r="4.4013871"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="35.208590"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2221"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208590"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5255"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530133"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5253"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2210"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2208"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7939111"
+       fy="45.910062"
+       fx="22.431478"
+       cy="45.910062"
+       cx="22.431478"
+       gradientTransform="scale(1.336771,0.748071)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2206"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5247"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431478"
+       cy="45.910062"
+       fx="22.431478"
+       fy="45.910062"
+       r="6.7939111"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5245"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5243"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208590" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5241"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530133" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5239"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5237"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.876320"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.598750e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5235"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5227">
+      <stop
+         id="stop5229"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5232"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5221">
+      <stop
+         id="stop5223"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5225"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5215">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5217" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5219" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5209">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5211" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5213" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5203">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5205" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5207" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5188">
+      <stop
+         id="stop5190"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5192"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5182">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.66336632;"
+         offset="0.0000000"
+         id="stop5184" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5186" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5176">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop5178" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop5180" />
+    </linearGradient>
+    <radialGradient
+       r="20.5907"
+       fy="12.9375"
+       fx="18.5859"
+       cy="12.9375"
+       cx="18.5859"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient31187"
+       xlink:href="#aigrd5"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="12.937500"
+       fx="18.585899"
+       r="20.590700"
+       cy="12.937500"
+       cx="18.585899"
+       id="aigrd5">
+      <stop
+         id="stop31156"
+         style="stop-color:#cd2323;stop-opacity:1.0000000;"
+         offset="0.0000000" />
+      <stop
+         id="stop31158"
+         style="stop-color:#732727;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient3519">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3521" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop3523" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3531">
+      <stop
+         id="stop3533"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.092783503;" />
+      <stop
+         id="stop3535"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <radialGradient
+       r="86.708450"
+       fy="35.736916"
+       fx="33.966679"
+       cy="35.736916"
+       cx="33.966679"
+       gradientTransform="matrix(0.668219,0.000000,0.000000,0.724320,16.76172,13.93041)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15658"
+       xlink:href="#linearGradient259"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5159">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5161" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5163" />
+    </linearGradient>
+    <radialGradient
+       r="37.751713"
+       fy="3.7561285"
+       fx="8.8244190"
+       cy="3.7561285"
+       cx="8.8244190"
+       gradientTransform="matrix(0.673631,0.000000,0.000000,0.718500,19.09481,14.38014)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15656"
+       xlink:href="#linearGradient269"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5152">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5154" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5156" />
+    </linearGradient>
+    <radialGradient
+       r="38.158695"
+       fy="7.2678967"
+       fx="8.1435566"
+       cy="7.2678967"
+       cx="8.1435566"
+       gradientTransform="matrix(0.673631,0.000000,0.000000,0.718500,19.09481,14.38014)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15668"
+       xlink:href="#linearGradient15662"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5145">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5147" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5149" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd2"
+       id="radialGradient2283"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       cx="20.8921"
+       cy="114.5684"
+       fx="20.8921"
+       fy="114.5684"
+       r="5.256" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="radialGradient5137">
+      <stop
+         id="stop5140"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop5142"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd3"
+       id="radialGradient2285"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       cx="20.8921"
+       cy="64.5679"
+       fx="20.8921"
+       fy="64.5679"
+       r="5.257" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="radialGradient5130">
+      <stop
+         id="stop5132"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop5134"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3962"
+       id="radialGradient7424"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.587130,0.000000,0.000000,0.587142,11.29919,10.42967)"
+       cx="18.247644"
+       cy="15.716079"
+       fx="18.247644"
+       fy="15.716079"
+       r="29.993349" />
+    <linearGradient
+       id="linearGradient3962">
+      <stop
+         id="stop3964"
+         offset="0.0000000"
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4134"
+         offset="0.15517241"
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4346"
+         offset="0.75000000"
+         style="stop-color:#4074ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3966"
+         offset="1.0000000"
+         style="stop-color:#36486c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4750">
+      <stop
+         id="stop4752"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4758"
+         offset="0.37931034"
+         style="stop-color:#fefefe;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4754"
+         offset="1.0000000"
+         style="stop-color:#1d1d1d;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7218"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7428"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7226"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7430"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7234"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7432"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7242"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7250"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7436"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7258"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7438"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7266"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7440"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7274"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7442"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7444"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7446"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7448"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7450"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7302"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7452"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7310"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7454"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient7456"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.587130,0.000000,0.000000,0.587142,11.29919,10.42967)"
+       cx="15.601279"
+       cy="12.142302"
+       fx="15.601279"
+       fy="12.142302"
+       r="43.526714" />
+    <linearGradient
+       id="linearGradient4126">
+      <stop
+         id="stop4128"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4130"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.16494845;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5564"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5568"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5572"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5576"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5580"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5584"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5588"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5592"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5596"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5600"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5730"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5734"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5738"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5742"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5746"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5750"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5754"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5762"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5766"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6808"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6812"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6816"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6820"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6824"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6828"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6832"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6836"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6840"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6844"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <mask
+       id="mask7259"
+       maskUnits="userSpaceOnUse">
+      <path
+         transform="matrix(1.0800585,0,0,1.0800585,162.92445,152.66827)"
+         d="M 29.168156 15.206214 A 14.318913 13.788582 0 1 1  0.53032875,15.206214 A 14.318913 13.788582 0 1 1  29.168156 15.206214 z"
+         sodipodi:ry="13.788582"
+         sodipodi:rx="14.318913"
+         sodipodi:cy="15.206214"
+         sodipodi:cx="14.849242"
+         id="path6204"
+         style="opacity:1;color:#000000;fill:url(#linearGradient7262);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         sodipodi:type="arc" />
+    </mask>
+    <linearGradient
+       y2="19.537243"
+       x2="17.412506"
+       y1="13.968777"
+       x1="14.849242"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7262"
+       xlink:href="#linearGradient7177"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5513"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="9.8222504"
+       fy="17.257843"
+       fx="25.968998"
+       cy="17.257854"
+       cx="25.969097"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5511"
+       xlink:href="#linearGradient8918"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5505"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="2.9719501"
+       fy="17.573889"
+       fx="24.478539"
+       cy="17.573915"
+       cx="24.478569"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5503"
+       xlink:href="#linearGradient8912"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5497"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="4.1347499"
+       fy="14.542329"
+       fx="25.135332"
+       cy="14.542349"
+       cx="25.135374"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5495"
+       xlink:href="#linearGradient8930"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5489"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="8.6174498"
+       fy="18.944481"
+       fx="24.652485"
+       cy="18.94449"
+       cx="24.652573"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5487"
+       xlink:href="#linearGradient8924"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5485"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5483"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5481"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5479"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5477"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5475"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5473"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5471"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5469"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5467"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5463"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5461"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5457"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5455"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5453"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5449"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5447"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5445"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5441"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5439"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5435"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5433"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5431"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5427"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5425"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5423"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7692"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient7680">
+      <stop
+         style="stop-color:#696969;stop-opacity:1;"
+         offset="0"
+         id="stop7682" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop7684" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7670">
+      <stop
+         style="stop-color:#6e3d09;stop-opacity:1;"
+         offset="0"
+         id="stop7672" />
+      <stop
+         id="stop7674"
+         offset="0.24242425"
+         style="stop-color:#ea8113;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5c3307;stop-opacity:1;"
+         offset="0.62121212"
+         id="stop7676" />
+      <stop
+         style="stop-color:#e07c12;stop-opacity:1;"
+         offset="1"
+         id="stop7678" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7660">
+      <stop
+         style="stop-color:#bdbdbd;stop-opacity:1;"
+         offset="0"
+         id="stop7662" />
+      <stop
+         id="stop7664"
+         offset="0.33333334"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1;"
+         offset="0.66666669"
+         id="stop7666" />
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="1"
+         id="stop7668" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7654">
+      <stop
+         style="stop-color:#50534b;stop-opacity:0.46391752;"
+         offset="0.0000000"
+         id="stop7656" />
+      <stop
+         style="stop-color:#50534b;stop-opacity:0;"
+         offset="1"
+         id="stop7658" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16370"
+       id="radialGradient7652"
+       cx="27.125000"
+       cy="45.625000"
+       fx="27.125000"
+       fy="45.625000"
+       r="22.500000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.200000,-4.404001e-15,36.50000)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient7644">
+      <stop
+         style="stop-color:#818181;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7646" />
+      <stop
+         id="stop7648"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bebebe;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7650" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient7642"
+       gradientUnits="userSpaceOnUse"
+       x1="3.6693072"
+       y1="27.981939"
+       x2="46.098797"
+       y2="27.981939"
+       gradientTransform="translate(54.50145,-4.377128)" />
+    <linearGradient
+       id="linearGradient7636">
+      <stop
+         style="stop-color:#b87202;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7638" />
+      <stop
+         style="stop-color:#8f5902;stop-opacity:0;"
+         offset="1"
+         id="stop7640" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7630">
+      <stop
+         style="stop-color:#505b5f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7632" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7634" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7621">
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7623" />
+      <stop
+         style="stop-color:#555753;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop7625" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop7628" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7615">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop7617" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop7619" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7607">
+      <stop
+         id="stop7609"
+         offset="0.0000000"
+         style="stop-color:#969993;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7611"
+         offset="0.50000000"
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7613"
+         offset="1.0000000"
+         style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7601">
+      <stop
+         id="stop7603"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop7605"
+         offset="1"
+         style="stop-color:#fcf18f;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7595">
+      <stop
+         id="stop7597"
+         offset="0"
+         style="stop-color:#b59300;stop-opacity:1;" />
+      <stop
+         id="stop7599"
+         offset="1"
+         style="stop-color:#b59300;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7583">
+      <stop
+         id="stop7585"
+         offset="0.0000000"
+         style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7587"
+         offset="1"
+         style="stop-color:#544500;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7577">
+      <stop
+         id="stop7579"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7581"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7571">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop7573" />
+      <stop
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7575" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7565">
+      <stop
+         style="stop-color:#987c00;stop-opacity:1;"
+         offset="0"
+         id="stop7567" />
+      <stop
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7569" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7559">
+      <stop
+         style="stop-color:#edd400;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7561" />
+      <stop
+         style="stop-color:#b8a500;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7563" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7553">
+      <stop
+         style="stop-color:#e9b96e;stop-opacity:1;"
+         offset="0"
+         id="stop7555" />
+      <stop
+         style="stop-color:#b88433;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7557" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7547">
+      <stop
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7549" />
+      <stop
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7551" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient7545"
+       gradientTransform="scale(0.831950,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient7543"
+       gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient7541"
+       gradientTransform="scale(0.827650,1.208240)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="29.502863"
+       x2="24.769884"
+       y1="11.246989"
+       x1="15.750742"
+       gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7539"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7537"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.211454"
+       x2="29.475761"
+       y1="13.215685"
+       x1="20.190006"
+       gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7535"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="scale(0.824694,1.212571)"
+       id="linearGradient7533"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       id="linearGradient7531"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       id="linearGradient7529"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7527"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7525"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.827650,1.208240)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7523"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7521"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7519"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7517"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.831950,1.201995)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7515"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7513"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient7511"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+       x1="32.368496"
+       y1="6.0591717"
+       x2="35.239323"
+       y2="-3.6642039" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient7509"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient7507"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+       x1="43.604591"
+       y1="9.6609612"
+       x2="48.134148"
+       y2="1.5751816" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient7505"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+       x1="28.250944"
+       y1="1.5502936"
+       x2="29.906208"
+       y2="-2.3372657" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient7503"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient7501"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+       x1="41.323280"
+       y1="-3.1978326"
+       x2="38.269123"
+       y2="11.365776" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="11.797005"
+       x2="-23.287144"
+       y1="11.797003"
+       x1="-32.138432"
+       gradientTransform="scale(1.089011,0.918264)"
+       id="linearGradient7499"
+       xlink:href="#linearGradient5229"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient7497"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       x1="24.742752"
+       y1="2.3111212"
+       x2="31.589277"
+       y2="2.4383495" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7625"
+       id="radialGradient7495"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       cx="8.9124269"
+       cy="34.747555"
+       fx="9.0367527"
+       fy="34.482697"
+       r="7.9984083"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient7493"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       x1="33.882736"
+       y1="12.904269"
+       x2="38.881176"
+       y2="6.9174280"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient7491"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="41.377167"
+       y2="5.4044285"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient7489"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="40.450649"
+       y2="7.7109184"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6939"
+       id="linearGradient7487"
+       x1="19.394735"
+       y1="30.001331"
+       x2="23.109331"
+       y2="33.438831"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6951"
+       id="linearGradient7485"
+       x1="28.058632"
+       y1="18.867767"
+       x2="37.092148"
+       y2="27.20533"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6963"
+       id="radialGradient7483"
+       cx="15.415101"
+       cy="35.356506"
+       fx="15.415101"
+       fy="35.356506"
+       r="7.5791561"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2446"
+       id="linearGradient7481"
+       x1="13.236155"
+       y1="37.752247"
+       x2="7.7521091"
+       y2="42.282146"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient7479"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7477"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7475"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient7473"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient7471"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient7469"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient7467"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient7465"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient7463"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient7461"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient7455">
+      <stop
+         id="stop7457"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7459"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7449">
+      <stop
+         id="stop7451"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7453"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7443">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7445" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop7447" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7437">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop7439" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop7441" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7431">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7433" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7435" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7419">
+      <stop
+         id="stop7421"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7423"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7413">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop7415" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop7417" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7407">
+      <stop
+         id="stop7409"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7411"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7401">
+      <stop
+         id="stop7403"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7405"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7395">
+      <stop
+         id="stop7397"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7399"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient7389"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop7391" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop7393" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient7383"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop7385" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop7387" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient7381"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient7375">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop7377" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop7379" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient7373"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7361">
+      <stop
+         id="stop7363"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop7365"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7355">
+      <stop
+         id="stop7357"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop7359"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7349">
+      <stop
+         id="stop7351"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop7353"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7343">
+      <stop
+         id="stop7345"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop7347"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7337">
+      <stop
+         id="stop7339"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop7341"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7331">
+      <stop
+         id="stop7333"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop7335"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7325">
+      <stop
+         id="stop7327"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop7329"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8918"
+       id="radialGradient9203"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       cx="25.969097"
+       cy="17.257854"
+       fx="25.968998"
+       fy="17.257843"
+       r="9.8222504" />
+    <linearGradient
+       id="linearGradient8918">
+      <stop
+         id="stop8920"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop8922"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8824"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8740">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop8742" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop8744" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8912"
+       id="radialGradient9197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       cx="24.478569"
+       cy="17.573915"
+       fx="24.478539"
+       fy="17.573889"
+       r="2.9719501" />
+    <linearGradient
+       id="linearGradient8912">
+      <stop
+         style="stop-color:#cee14b"
+         offset="0"
+         id="stop8914" />
+      <stop
+         style="stop-color:#9db029"
+         offset="1"
+         id="stop8916" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8820"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8930"
+       id="radialGradient9191"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       cx="25.135374"
+       cy="14.542349"
+       fx="25.135332"
+       fy="14.542329"
+       r="4.1347499" />
+    <linearGradient
+       id="linearGradient8930">
+      <stop
+         id="stop8932"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop8934"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8816"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8924"
+       id="radialGradient9185"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       cx="24.652573"
+       cy="18.94449"
+       fx="24.652485"
+       fy="18.944481"
+       r="8.6174498" />
+    <linearGradient
+       id="linearGradient8924">
+      <stop
+         id="stop8926"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop8928"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8812"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8810"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8808"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8806"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8804"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8802"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8800"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8798"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8796"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8794"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8792"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8788"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8786"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8782"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8780"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8778"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8774"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8772"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8770"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8766"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8760"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8756"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8752"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8750"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8748"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       id="linearGradient4873"
+       inkscape:collect="always">
+      <stop
+         id="stop4875"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4877"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8647">
+      <stop
+         style="stop-color:#8fb1dc;stop-opacity:1;"
+         offset="0"
+         id="stop8649" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="1"
+         id="stop8651" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7177">
+      <stop
+         id="stop7179"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop7181"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient7265"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8647"
+       id="radialGradient7874"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.697728,0,0,1.694669,73.403038,176.21063)"
+       cx="62.200352"
+       cy="-8.7256308"
+       fx="62.200352"
+       fy="-8.7256308"
+       r="9.7552834" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4873"
+       id="linearGradient7876"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.5349489,0,0,1.5349129,83.526076,174.73493)"
+       x1="63.397362"
+       y1="-9.3832779"
+       x2="68.910904"
+       y2="16.839214" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7878"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7880"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7882"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7884"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7886"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7888"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7890"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7892"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7894"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7896"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7898"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7902"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7904"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7906"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7908"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7910"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7912"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7914"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7916"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7918"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7920"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7922"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7924"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7926"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7928"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8924"
+       id="radialGradient7930"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       cx="24.652573"
+       cy="18.94449"
+       fx="24.652485"
+       fy="18.944481"
+       r="8.6174498" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7932"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7934"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.891018,0,0,0.828854,1.579517,2.39052)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8930"
+       id="radialGradient7936"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       cx="25.135374"
+       cy="14.542349"
+       fx="25.135332"
+       fy="14.542329"
+       r="4.1347499" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7938"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7940"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,0.589884)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8912"
+       id="radialGradient7942"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       cx="24.478569"
+       cy="17.573915"
+       fx="24.478539"
+       fy="17.573889"
+       r="2.9719501" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7944"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8918"
+       id="radialGradient7946"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       cx="25.969097"
+       cy="17.257854"
+       fx="25.968998"
+       fy="17.257843"
+       r="9.8222504" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7948"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7950"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.918134,0,0,0.854079,2.429764,1.490099)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       y2="22.518066"
+       x2="12.40625"
+       y1="28.958008"
+       x1="12.40625"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7077"
+       xlink:href="#linearGradient6278"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.1104"
+       x1="90.8311"
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7075"
+       xlink:href="#aigrd12"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="94.8"
+       x2="126.1107"
+       y1="84.7578"
+       x1="107.8672"
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7073"
+       xlink:href="#aigrd10"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="77.05835"
+       x2="115.38278"
+       y1="100.92262"
+       x1="111.6685"
+       gradientTransform="matrix(0.156845,0,0,0.2208638,18.245167,0.4952887)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7071"
+       xlink:href="#linearGradient6262"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="98.8832"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientTransform="matrix(0.1552487,0,0,0.2555738,18.453331,-2.8826201)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7069"
+       xlink:href="#aigrd8"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientTransform="matrix(0.1552487,0,0,0.2555738,18.453331,-2.8826201)"
+       y2="98.8832"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7052"
+       xlink:href="#aigrd8"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="77.05835"
+       x2="115.38278"
+       y1="100.92262"
+       x1="111.6685"
+       gradientTransform="matrix(0.156845,0,0,0.2208638,18.245167,0.4952887)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7049"
+       xlink:href="#linearGradient6262"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       y2="94.8"
+       x2="126.1107"
+       y1="84.7578"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7046"
+       xlink:href="#aigrd10"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.1104"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7042"
+       xlink:href="#aigrd12"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="74.0884"
+       x2="87.6424"
+       y1="132.0767"
+       x1="113.0903"
+       gradientTransform="matrix(0.1967125,0,0,0.1788098,2.9691975,-0.8870439)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6577"
+       xlink:href="#aigrd5"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="71.8174"
+       x2="102.3008"
+       y1="67.4326"
+       x1="102.3008"
+       gradientTransform="matrix(0.2061997,0,0,0.2992157,1.9632611,-9.4980874)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6567"
+       xlink:href="#aigrd6"
+       inkscape:collect="always" />
+    <radialGradient
+       r="2.367"
+       fy="154.1919"
+       fx="102.9873"
+       cy="154.1919"
+       cx="102.9873"
+       gradientTransform="matrix(0.3438365,0,0,0.3438365,-12.602841,-26.847406)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6562"
+       xlink:href="#aigrd7"
+       inkscape:collect="always" />
+    <radialGradient
+       r="4.9882676"
+       fy="87.689521"
+       fx="14.557597"
+       cy="87.689521"
+       cx="14.557597"
+       gradientTransform="scale(2.170608,0.4607)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6525"
+       xlink:href="#linearGradient5553"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient9105">
+      <stop
+         style="stop-color:#696969;stop-opacity:1;"
+         offset="0"
+         id="stop9107" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop9109" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9095">
+      <stop
+         style="stop-color:#6e3d09;stop-opacity:1;"
+         offset="0"
+         id="stop9097" />
+      <stop
+         id="stop9099"
+         offset="0.24242425"
+         style="stop-color:#ea8113;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5c3307;stop-opacity:1;"
+         offset="0.62121212"
+         id="stop9101" />
+      <stop
+         style="stop-color:#e07c12;stop-opacity:1;"
+         offset="1"
+         id="stop9103" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9085">
+      <stop
+         style="stop-color:#bdbdbd;stop-opacity:1;"
+         offset="0"
+         id="stop9087" />
+      <stop
+         id="stop9089"
+         offset="0.33333334"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1;"
+         offset="0.66666669"
+         id="stop9091" />
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="1"
+         id="stop9093" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9079">
+      <stop
+         style="stop-color:#50534b;stop-opacity:0.46391752;"
+         offset="0.0000000"
+         id="stop9081" />
+      <stop
+         style="stop-color:#50534b;stop-opacity:0;"
+         offset="1"
+         id="stop9083" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16370"
+       id="radialGradient9077"
+       cx="27.125000"
+       cy="45.625000"
+       fx="27.125000"
+       fy="45.625000"
+       r="22.500000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.200000,-4.404001e-15,36.50000)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient9069">
+      <stop
+         style="stop-color:#818181;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop9071" />
+      <stop
+         id="stop9073"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bebebe;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9075" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient9067"
+       gradientUnits="userSpaceOnUse"
+       x1="3.6693072"
+       y1="27.981939"
+       x2="46.098797"
+       y2="27.981939"
+       gradientTransform="translate(54.50145,-4.377128)" />
+    <linearGradient
+       id="linearGradient9061">
+      <stop
+         style="stop-color:#b87202;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop9063" />
+      <stop
+         style="stop-color:#8f5902;stop-opacity:0;"
+         offset="1"
+         id="stop9065" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9055">
+      <stop
+         style="stop-color:#505b5f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop9057" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9059" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9047">
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop9049" />
+      <stop
+         style="stop-color:#555753;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop9051" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop9053" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9041">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop9043" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop9045" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9033">
+      <stop
+         id="stop9035"
+         offset="0.0000000"
+         style="stop-color:#969993;stop-opacity:1.0000000;" />
+      <stop
+         id="stop9037"
+         offset="0.50000000"
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+      <stop
+         id="stop9039"
+         offset="1.0000000"
+         style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9027">
+      <stop
+         id="stop9029"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop9031"
+         offset="1"
+         style="stop-color:#fcf18f;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9021">
+      <stop
+         id="stop9023"
+         offset="0"
+         style="stop-color:#b59300;stop-opacity:1;" />
+      <stop
+         id="stop9025"
+         offset="1"
+         style="stop-color:#b59300;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9009">
+      <stop
+         id="stop9011"
+         offset="0.0000000"
+         style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+      <stop
+         id="stop9013"
+         offset="1"
+         style="stop-color:#544500;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9003">
+      <stop
+         id="stop9005"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop9007"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8997">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop8999" />
+      <stop
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9001" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8991">
+      <stop
+         style="stop-color:#987c00;stop-opacity:1;"
+         offset="0"
+         id="stop8993" />
+      <stop
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop8995" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8985">
+      <stop
+         style="stop-color:#edd400;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop8987" />
+      <stop
+         style="stop-color:#b8a500;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop8989" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8979">
+      <stop
+         style="stop-color:#e9b96e;stop-opacity:1;"
+         offset="0"
+         id="stop8981" />
+      <stop
+         style="stop-color:#b88433;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop8983" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8973">
+      <stop
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop8975" />
+      <stop
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop8977" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient8971"
+       gradientTransform="scale(0.831950,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient8969"
+       gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient8967"
+       gradientTransform="scale(0.827650,1.208240)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="29.502863"
+       x2="24.769884"
+       y1="11.246989"
+       x1="15.750742"
+       gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8965"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8963"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.211454"
+       x2="29.475761"
+       y1="13.215685"
+       x1="20.190006"
+       gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8961"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="scale(0.824694,1.212571)"
+       id="linearGradient8959"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       id="linearGradient8957"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       id="linearGradient8955"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8953"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8951"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.827650,1.208240)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8949"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8947"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8945"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8943"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.831950,1.201995)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8941"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8939"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient8937"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+       x1="32.368496"
+       y1="6.0591717"
+       x2="35.239323"
+       y2="-3.6642039" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient8935"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient8933"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+       x1="43.604591"
+       y1="9.6609612"
+       x2="48.134148"
+       y2="1.5751816" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient8931"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+       x1="28.250944"
+       y1="1.5502936"
+       x2="29.906208"
+       y2="-2.3372657" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient8929"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient8927"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+       x1="41.323280"
+       y1="-3.1978326"
+       x2="38.269123"
+       y2="11.365776" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="11.797005"
+       x2="-23.287144"
+       y1="11.797003"
+       x1="-32.138432"
+       gradientTransform="scale(1.089011,0.918264)"
+       id="linearGradient8925"
+       xlink:href="#linearGradient5229"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient8923"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       x1="24.742752"
+       y1="2.3111212"
+       x2="31.589277"
+       y2="2.4383495" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7625"
+       id="radialGradient8921"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       cx="8.9124269"
+       cy="34.747555"
+       fx="9.0367527"
+       fy="34.482697"
+       r="7.9984083"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient8919"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       x1="33.882736"
+       y1="12.904269"
+       x2="38.881176"
+       y2="6.9174280"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient8917"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="41.377167"
+       y2="5.4044285"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient8915"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="40.450649"
+       y2="7.7109184"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient8913"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient8911"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8909"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8907"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient8905"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient8903"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient8901"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient8899"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient8897"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient8895"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient8893"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient8887">
+      <stop
+         id="stop8889"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8891"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8881">
+      <stop
+         id="stop8883"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8885"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8875">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop8877" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop8879" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8869">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop8871" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop8873" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8863">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop8865" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop8867" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8851">
+      <stop
+         id="stop8853"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8855"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop8847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop8849" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8839">
+      <stop
+         id="stop8841"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8843"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8833">
+      <stop
+         id="stop8835"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8837"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8827">
+      <stop
+         id="stop8829"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8831"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient8821"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop8823" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop8825" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient8815"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop8817" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop8819" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient8813"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient8807">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop8809" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8811" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient8805"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8792">
+      <stop
+         id="stop8794"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop8796"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8786">
+      <stop
+         id="stop8788"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop8790"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8780">
+      <stop
+         id="stop8782"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop8784"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8774">
+      <stop
+         id="stop8776"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop8778"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8768">
+      <stop
+         id="stop8770"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop8772"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8762">
+      <stop
+         id="stop8764"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop8766"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8756">
+      <stop
+         id="stop8758"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop8760"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5553">
+      <stop
+         id="stop5555"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.42574257;" />
+      <stop
+         id="stop5557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       y2="74.088402"
+       x2="87.642403"
+       y1="132.07671"
+       x1="113.09030"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient8749">
+      <stop
+         id="stop5286"
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <stop
+         id="stop5288"
+         style="stop-color:#EAEAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="71.817398"
+       x2="102.30080"
+       y1="67.432602"
+       x1="102.30080"
+       gradientUnits="userSpaceOnUse"
+       id="aigrd6">
+      <stop
+         id="stop5309"
+         style="stop-color:#b6b6b6;stop-opacity:1.0000000;"
+         offset="0.0000000" />
+      <stop
+         id="stop5311"
+         style="stop-color:#686868"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="154.19189"
+       fx="102.98730"
+       r="2.3670001"
+       cy="154.19189"
+       cx="102.98730"
+       id="aigrd7">
+      <stop
+         id="stop5320"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop5322"
+         style="stop-color:#848484"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       y2="98.8832"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient13069"
+       xlink:href="#aigrd8"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="94.8"
+       x2="126.1107"
+       y1="84.7578"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient13063"
+       xlink:href="#aigrd10"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.1104"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient13057"
+       xlink:href="#aigrd12"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="22.518066"
+       x2="12.40625"
+       y1="28.958008"
+       x1="12.40625"
+       id="linearGradient6284"
+       xlink:href="#linearGradient6278"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6278"
+       inkscape:collect="always">
+      <stop
+         id="stop6280"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop6282"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(1.0102826,0,0,1,-1.3408464,0)"
+       gradientUnits="userSpaceOnUse"
+       y2="77.05835"
+       x2="115.38278"
+       y1="100.92262"
+       x1="111.6685"
+       id="linearGradient6268"
+       xlink:href="#linearGradient6262"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient9179"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient9181"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient9183"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient9186"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient9188"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5553"
+       id="radialGradient9233"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(2.170608,0.4607)"
+       cx="14.557597"
+       cy="87.689521"
+       fx="14.557597"
+       fy="87.689521"
+       r="4.9882676" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd5"
+       id="linearGradient9235"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1967125,0,0,0.1788098,2.9691975,-0.8870439)"
+       x1="113.0903"
+       y1="132.0767"
+       x2="87.6424"
+       y2="74.0884" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd6"
+       id="linearGradient9237"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2061997,0,0,0.2992157,1.9632611,-9.4980874)"
+       x1="102.3008"
+       y1="67.4326"
+       x2="102.3008"
+       y2="71.8174" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd7"
+       id="radialGradient9239"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3438365,0,0,0.3438365,-12.602841,-26.847406)"
+       cx="102.9873"
+       cy="154.1919"
+       fx="102.9873"
+       fy="154.1919"
+       r="2.367" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd8"
+       id="linearGradient9241"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1552487,0,0,0.2555738,18.453331,-2.8826201)"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.8832" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6262"
+       id="linearGradient9243"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.156845,0,0,0.2208638,18.245167,0.4952887)"
+       x1="111.6685"
+       y1="100.92262"
+       x2="115.38278"
+       y2="77.05835" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd10"
+       id="linearGradient9245"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       x1="107.8672"
+       y1="84.7578"
+       x2="126.1107"
+       y2="94.8" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd12"
+       id="linearGradient9247"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       x1="90.8311"
+       y1="89.1104"
+       x2="115.5175"
+       y2="100.6528" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6278"
+       id="linearGradient9249"
+       gradientUnits="userSpaceOnUse"
+       x1="12.40625"
+       y1="28.958008"
+       x2="12.40625"
+       y2="22.518066" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd7"
+       id="radialGradient9266"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6371137,0,0,0.6371137,-33.141635,-59.895035)"
+       cx="102.9873"
+       cy="154.1919"
+       fx="102.9873"
+       fy="154.1919"
+       r="2.367" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd6"
+       id="linearGradient9270"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.2496745,0,0,0.4353676,7.4580335,-11.459798)"
+       x1="102.3008"
+       y1="67.4326"
+       x2="102.3008"
+       y2="71.8174" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="42.529094"
+     inkscape:cy="-9.9304919"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="904"
+     inkscape:window-x="2397"
+     inkscape:window-y="143"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay">
+    <g
+       id="g5539"
+       transform="matrix(0.7316887,0,0,0.7316887,-0.4425411,-2.0173468)">
+      <path
+         transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)"
+         id="path7083"
+         d="M 33.026865,37.038849 L 33.026865,39.590866 L 39.805658,45.332902"
+         style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:1.36670136px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+         sodipodi:nodetypes="ccc" />
+      <path
+         transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)"
+         style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:1.36670136px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 33.106615,37.038849 L 33.106615,39.590866 L 25.849318,45.253152"
+         id="path7081"
+         sodipodi:nodetypes="ccc" />
+    </g>
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path5290"
+       d="M 23.422628,36.500001 L 23.500244,19.393807 L 42.421777,19.44251 L 42.499999,36.451554 L 23.422628,36.500001 z "
+       style="fill:#eeeeec;fill-rule:nonzero;stroke:#888a85;stroke-width:1.00000012;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect9278"
+       width="17"
+       height="15.4375"
+       x="24.5625"
+       y="20" />
+    <path
+       transform="matrix(0.9815016,0,0,0.9815016,2.2722719,4.0640305)"
+       d="M 42.426408 40.398602 A 10.827573 2.2980971 0 1 1  20.771262,40.398602 A 10.827573 2.2980971 0 1 1  42.426408 40.398602 z"
+       sodipodi:ry="2.2980971"
+       sodipodi:rx="10.827573"
+       sodipodi:cy="40.398602"
+       sodipodi:cx="31.598835"
+       id="path5551"
+       style="opacity:0.50285716;color:#000000;fill:url(#radialGradient9233);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.60787594;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccccc"
+       id="path5313"
+       d="M 43.361995,18.849631 C 43.361995,19.330277 43.138286,20.548058 42.862644,20.548058 L 23.137351,20.548058 C 22.861711,20.548058 22.638003,19.330277 22.638003,18.849631 L 22.638003,18.50874 C 22.638003,18.028093 22.861711,17.638004 23.137351,17.638004 L 42.862394,17.638004 C 43.138036,17.638004 43.361743,18.028093 43.361743,18.50874 L 43.361743,18.849631 L 43.361995,18.849631 z "
+       style="fill:url(#linearGradient9270);fill-rule:nonzero;stroke:#555753;stroke-width:1.27600837;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path5315"
+       d="M 41.61508,21.169306 L 24,21.169306 L 24,24.251947 C 24.992509,20.902155 41.61508,21.169306 41.61508,21.169306 z "
+       style="opacity:0.15999995;fill:#000000;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+    <path
+       id="path5324"
+       d="M 34.658747,38.947418 C 34.658747,39.88971 33.894847,40.65361 32.952554,40.65361 C 32.010267,40.65361 31.246367,39.88971 31.246367,38.947418 C 31.246367,38.005128 32.010267,37.241226 32.952554,37.241226 C 33.894847,37.241226 34.658747,38.005128 34.658747,38.947418 z "
+       style="fill:url(#radialGradient9266);fill-rule:nonzero;stroke:#555753;stroke-width:0.98150164;stroke-miterlimit:4" />
+    <path
+       id="path5334"
+       d="M 29,15 L 26,15 L 26,14 L 29,14 L 29,15 z "
+       style="fill:#000000;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+       transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)" />
+    <path
+       id="path5540"
+       d="M 29,17 L 26,17 L 26,16 L 29,16 L 29,17 z "
+       style="fill:#000000;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+       transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)" />
+    <g
+       transform="matrix(1.2760082,0,0,1.116507,-14.989565,5.1386461)"
+       id="g7055">
+      <path
+         id="path12957"
+         d="M 33.148705,16.99283 C 32.407778,17.670874 32,18.591807 32,19.587061 L 32,20.413208 C 32,21.407654 32.407778,22.328858 33.148705,23.0069 C 33.84852,23.647244 34.773337,24.000001 35.75278,24.000001 C 36.731856,24.000001 37.656671,23.647244 38.356855,23.0069 C 39.097413,22.328858 39.505189,21.407924 39.505189,20.413208 L 39.505189,19.587061 C 39.505189,18.591807 39.097226,17.670605 38.356855,16.99283 C 37.656855,16.353025 36.73204,16 35.75278,16 C 34.773337,16 33.84852,16.353025 33.148705,16.99283 z "
+         style="fill:#a40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12964"
+         d="M 38.59644,19.228093 C 38.259693,17.944857 37.11786,17 35.759897,17 C 34.401932,17 33.2601,17.944857 32.923354,19.228093 L 32.822032,19.228093 L 32.822032,20.012448 C 32.822032,21.675979 34.137491,23.024386 35.759897,23.024386 C 37.382459,23.024386 38.697605,21.675979 38.697605,20.012448 L 38.697605,19.228093 L 38.59644,19.228093 L 38.59644,19.228093 z "
+         style="fill:url(#linearGradient9241);fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12971"
+         d="M 38.697605,19.603101 C 38.697605,21.040924 37.382459,22.206202 35.759897,22.206202 C 34.137335,22.206202 32.822032,21.040924 32.822032,19.603101 C 32.822032,18.165278 34.137491,17 35.759897,17 C 37.382459,17 38.697605,18.165278 38.697605,19.603101 L 38.697605,19.603101 z "
+         style="fill:url(#linearGradient9243);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12978"
+         d="M 38.697605,20.003932 L 38.693878,19.147346 C 38.378569,20.926923 37.669547,21.680836 36.77811,22.049926 L 36.77811,22.838508 C 37.74298,22.441683 38.606473,21.538161 38.697605,20.003932 L 38.697605,20.003932 z "
+         style="fill:url(#linearGradient9245);fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12985"
+         d="M 38.697605,19.063074 C 38.631003,21.071465 37.11205,21.987255 36.772676,22.022191 L 35.789641,19.063074 L 38.69745,19.063074 L 38.697605,19.063074 z "
+         style="fill:#729fcf;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12992"
+         d="M 35.181066,22.955582 L 35.181066,22.137398 C 35.728318,22.253938 36.230392,22.274473 36.772676,22.052859 L 36.77811,22.838775 C 36.323696,23.082523 35.612813,23.093991 35.181066,22.955849 L 35.181066,22.955582 z "
+         style="fill:url(#linearGradient9247);fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         id="path12999"
+         d="M 35.789641,19.06334 L 36.772676,22.022191 C 36.170777,22.397414 35.181066,22.137398 35.181066,22.137398 L 35.789641,19.06334 z "
+         style="fill:#73d216;fill-rule:nonzero;stroke:none;stroke-miterlimit:4" />
+      <path
+         sodipodi:type="arc"
+         style="opacity:0.62285713;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9249);stroke-width:1.845662;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path6276"
+         sodipodi:cx="12.40625"
+         sodipodi:cy="25.53125"
+         sodipodi:rx="7.71875"
+         sodipodi:ry="3.78125"
+         d="M 20.125 25.53125 A 7.71875 3.78125 0 1 1  4.6875,25.53125 A 7.71875 3.78125 0 1 1  20.125 25.53125 z"
+         transform="matrix(0.3559389,0,0,0.5789021,31.336729,4.9088794)" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+       d="M 29,19 L 26,19 L 26,18 L 29,18 L 29,19 z "
+       id="path7065"
+       transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)" />
+    <path
+       style="fill:#000000;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+       d="M 28.99956,23 L 17.983534,23 L 17.983534,21.996898 L 28.99956,21.996898 L 28.99956,23 z "
+       id="path7067"
+       transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)" />
+    <path
+       id="path7079"
+       d="M 29,21 L 26,21 L 26,20 L 29,20 L 29,21 z "
+       style="fill:#000000;fill-opacity:0.18713445;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+       transform="matrix(1.2760082,0,0,1.2760082,3.519175,5.1386442)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path9280"
+       sodipodi:cx="32.578125"
+       sodipodi:cy="38.34375"
+       sodipodi:rx="0.671875"
+       sodipodi:ry="0.5625"
+       d="M 33.25 38.34375 A 0.671875 0.5625 0 1 1  31.90625,38.34375 A 0.671875 0.5625 0 1 1  33.25 38.34375 z"
+       transform="matrix(1,0,0,1.0833351,0,-3.1485071)" />
+  </g>
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-web.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-web.svg
@@ -0,0 +1,8277 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-web.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12979"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12974"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12969"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12964"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12954"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12944"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12939"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12934"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12929"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12924"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12919"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12914"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12909"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12904"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12899"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12894"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12889"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12884"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12879"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12874"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12868"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12866"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12860"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12858"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12853"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12848"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12708"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12706"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12704"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12702"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12700"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12698"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12696"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12692"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12690"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12688"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12686"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient12682"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15662"
+       id="radialGradient8797"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.455931,0.000000,0.000000,0.486299,28.42990,24.00306)"
+       cx="8.1435566"
+       cy="7.2678967"
+       fx="8.1435566"
+       fy="7.2678967"
+       r="38.158695" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient269"
+       id="radialGradient8795"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.455931,0.000000,0.000000,0.486299,28.42990,24.00306)"
+       cx="8.8244190"
+       cy="3.7561285"
+       fx="8.8244190"
+       fy="3.7561285"
+       r="37.751713" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient259"
+       id="radialGradient8793"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.452267,0.000000,0.000000,0.490237,26.85082,23.69868)"
+       cx="33.966679"
+       cy="35.736916"
+       fx="33.966679"
+       fy="35.736916"
+       r="86.708450" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3531"
+       id="linearGradient4043"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.465109,0.000000,0.000000,1.040624,65.70948,55.22237)"
+       x1="57.643562"
+       y1="8.6012535"
+       x2="39.081673"
+       y2="20.923300" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient4041"
+       gradientTransform="matrix(0.465109,0.000000,0.000000,1.040624,16.76173,13.93041)"
+       x1="34.242388"
+       y1="16.046797"
+       x2="60.419967"
+       y2="16.046797"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5262"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.893438,0.000000,0.000000,0.528140,-0.132583,0.132583)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5260"
+       gradientTransform="scale(1.893439,0.528140)"
+       cx="6.5639611"
+       cy="33.367071"
+       fx="6.5639611"
+       fy="33.367071"
+       r="4.4013871"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="35.208590"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2221"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208590"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5255"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530133"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5253"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2210"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2208"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7939111"
+       fy="45.910062"
+       fx="22.431478"
+       cy="45.910062"
+       cx="22.431478"
+       gradientTransform="scale(1.336771,0.748071)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2206"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5247"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431478"
+       cy="45.910062"
+       fx="22.431478"
+       fy="45.910062"
+       r="6.7939111"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5245"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5243"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208590" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5241"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530133" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5239"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5237"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.876320"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.598750e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5235"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5227">
+      <stop
+         id="stop5229"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5232"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5221">
+      <stop
+         id="stop5223"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5225"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5215">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5217" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5219" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5209">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5211" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5213" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5203">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5205" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5207" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5188">
+      <stop
+         id="stop5190"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5192"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5182">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.66336632;"
+         offset="0.0000000"
+         id="stop5184" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5186" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5176">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop5178" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop5180" />
+    </linearGradient>
+    <radialGradient
+       r="20.5907"
+       fy="12.9375"
+       fx="18.5859"
+       cy="12.9375"
+       cx="18.5859"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient31187"
+       xlink:href="#aigrd5"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="12.937500"
+       fx="18.585899"
+       r="20.590700"
+       cy="12.937500"
+       cx="18.585899"
+       id="aigrd5">
+      <stop
+         id="stop31156"
+         style="stop-color:#cd2323;stop-opacity:1.0000000;"
+         offset="0.0000000" />
+      <stop
+         id="stop31158"
+         style="stop-color:#732727;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient3519">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3521" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop3523" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3531">
+      <stop
+         id="stop3533"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.092783503;" />
+      <stop
+         id="stop3535"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <radialGradient
+       r="86.708450"
+       fy="35.736916"
+       fx="33.966679"
+       cy="35.736916"
+       cx="33.966679"
+       gradientTransform="matrix(0.668219,0.000000,0.000000,0.724320,16.76172,13.93041)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15658"
+       xlink:href="#linearGradient259"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5159">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5161" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5163" />
+    </linearGradient>
+    <radialGradient
+       r="37.751713"
+       fy="3.7561285"
+       fx="8.8244190"
+       cy="3.7561285"
+       cx="8.8244190"
+       gradientTransform="matrix(0.673631,0.000000,0.000000,0.718500,19.09481,14.38014)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15656"
+       xlink:href="#linearGradient269"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5152">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5154" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5156" />
+    </linearGradient>
+    <radialGradient
+       r="38.158695"
+       fy="7.2678967"
+       fx="8.1435566"
+       cy="7.2678967"
+       cx="8.1435566"
+       gradientTransform="matrix(0.673631,0.000000,0.000000,0.718500,19.09481,14.38014)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient15668"
+       xlink:href="#linearGradient15662"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5145">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5147" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5149" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd2"
+       id="radialGradient2283"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       cx="20.8921"
+       cy="114.5684"
+       fx="20.8921"
+       fy="114.5684"
+       r="5.256" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.8921"
+       r="5.256"
+       cy="114.5684"
+       cx="20.8921"
+       id="radialGradient5137">
+      <stop
+         id="stop5140"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop5142"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#aigrd3"
+       id="radialGradient2285"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+       cx="20.8921"
+       cy="64.5679"
+       fx="20.8921"
+       fy="64.5679"
+       r="5.257" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.5679"
+       fx="20.8921"
+       r="5.257"
+       cy="64.5679"
+       cx="20.8921"
+       id="radialGradient5130">
+      <stop
+         id="stop5132"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop5134"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient4114"
+       inkscape:collect="always">
+      <stop
+         id="stop4116"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop4118"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3962"
+       id="radialGradient7424"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.587130,0.000000,0.000000,0.587142,11.29919,10.42967)"
+       cx="18.247644"
+       cy="15.716079"
+       fx="18.247644"
+       fy="15.716079"
+       r="29.993349" />
+    <linearGradient
+       id="linearGradient3962">
+      <stop
+         id="stop3964"
+         offset="0.0000000"
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4134"
+         offset="0.15517241"
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4346"
+         offset="0.75000000"
+         style="stop-color:#4074ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3966"
+         offset="1.0000000"
+         style="stop-color:#36486c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4350"
+       inkscape:collect="always">
+      <stop
+         id="stop4352"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4354"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4750">
+      <stop
+         id="stop4752"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4758"
+         offset="0.37931034"
+         style="stop-color:#fefefe;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4754"
+         offset="1.0000000"
+         style="stop-color:#1d1d1d;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7218"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7428"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7226"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7430"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7234"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7432"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7242"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7250"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7436"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7258"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7438"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7266"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7440"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7274"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7442"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7444"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7446"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7448"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7450"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7302"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7452"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7310"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient7454"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient7456"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.587130,0.000000,0.000000,0.587142,11.29919,10.42967)"
+       cx="15.601279"
+       cy="12.142302"
+       fx="15.601279"
+       fy="12.142302"
+       r="43.526714" />
+    <linearGradient
+       id="linearGradient4126">
+      <stop
+         id="stop4128"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4130"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.16494845;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5564"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5568"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5572"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5576"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5580"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5584"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5588"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5592"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5596"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5600"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5716"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5718"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5720"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5722"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4114"
+       id="radialGradient5724"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.64399,0.608276)"
+       cx="15.115514"
+       cy="63.965388"
+       fx="15.115514"
+       fy="63.965388"
+       r="12.289036" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3962"
+       id="radialGradient5726"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.70266,0,0,0.702675,14.51394,15.12832)"
+       cx="18.247644"
+       cy="15.716079"
+       fx="18.247644"
+       fy="15.716079"
+       r="29.993349" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4350"
+       id="radialGradient5728"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.179536,0.847791)"
+       cx="11.826907"
+       cy="10.476453"
+       fx="11.826907"
+       fy="10.476453"
+       r="32.664848" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5730"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5732"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5734"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5736"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5738"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5740"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5742"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5744"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5746"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5748"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5750"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5752"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5754"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5756"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5760"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5762"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5766"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient5768"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient5770"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.70266,0,0,0.702675,14.51394,15.12832)"
+       cx="15.601279"
+       cy="12.142302"
+       fx="15.601279"
+       fy="12.142302"
+       r="43.526714" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6787"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6790"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6793"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6796"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4114"
+       id="radialGradient6802"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.64399,0.608276)"
+       cx="15.115514"
+       cy="63.965388"
+       fx="15.115514"
+       fy="63.965388"
+       r="12.289036" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3962"
+       id="radialGradient6804"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.70266,0,0,0.702675,14.51394,15.12832)"
+       cx="18.247644"
+       cy="15.716079"
+       fx="18.247644"
+       fy="15.716079"
+       r="29.993349" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4350"
+       id="radialGradient6806"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.179536,0.847791)"
+       cx="11.826907"
+       cy="10.476453"
+       fx="11.826907"
+       fy="10.476453"
+       r="32.664848" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6808"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6810"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6812"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6814"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6816"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6818"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6820"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6822"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6824"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6826"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6828"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6830"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6832"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6834"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6836"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6838"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6840"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6842"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6844"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.036822,0.964486)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6846"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.715699,0,0,0.665766,14.45706,15.15001)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient6848"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.70266,0,0,0.702675,14.51394,15.12832)"
+       cx="15.601279"
+       cy="12.142302"
+       fx="15.601279"
+       fy="12.142302"
+       r="43.526714" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4126"
+       id="radialGradient6851"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0469169,0,0,1.0233785,-1.1977962,-1.1908403)"
+       cx="15.601279"
+       cy="12.142302"
+       fx="15.601279"
+       fy="12.142302"
+       r="43.526714" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6854"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6858"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6862"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6866"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6870"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6874"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6878"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6882"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6886"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4750"
+       id="radialGradient6890"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0663441,0,0,0.9696241,-1.2825437,-1.1592509)"
+       cx="18.633780"
+       cy="17.486208"
+       fx="18.934305"
+       fy="17.810213"
+       r="40.692665" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3962"
+       id="radialGradient6915"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0469169,0,0,1.0233785,-1.1977962,-1.1908403)"
+       cx="18.247644"
+       cy="15.716079"
+       fx="18.247644"
+       fy="15.716079"
+       r="29.993349" />
+    <mask
+       id="mask7259"
+       maskUnits="userSpaceOnUse">
+      <path
+         transform="matrix(1.0800585,0,0,1.0800585,162.92445,152.66827)"
+         d="M 29.168156 15.206214 A 14.318913 13.788582 0 1 1  0.53032875,15.206214 A 14.318913 13.788582 0 1 1  29.168156 15.206214 z"
+         sodipodi:ry="13.788582"
+         sodipodi:rx="14.318913"
+         sodipodi:cy="15.206214"
+         sodipodi:cx="14.849242"
+         id="path6204"
+         style="opacity:1;color:#000000;fill:url(#linearGradient7262);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         sodipodi:type="arc" />
+    </mask>
+    <linearGradient
+       y2="19.537243"
+       x2="17.412506"
+       y1="13.968777"
+       x1="14.849242"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7262"
+       xlink:href="#linearGradient7177"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5513"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="9.8222504"
+       fy="17.257843"
+       fx="25.968998"
+       cy="17.257854"
+       cx="25.969097"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5511"
+       xlink:href="#linearGradient8918"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5505"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="2.9719501"
+       fy="17.573889"
+       fx="24.478539"
+       cy="17.573915"
+       cx="24.478569"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5503"
+       xlink:href="#linearGradient8912"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5497"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="4.1347499"
+       fy="14.542329"
+       fx="25.135332"
+       cy="14.542349"
+       cx="25.135374"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5495"
+       xlink:href="#linearGradient8930"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5489"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="8.6174498"
+       fy="18.944481"
+       fx="24.652485"
+       cy="18.94449"
+       cx="24.652573"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5487"
+       xlink:href="#linearGradient8924"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5485"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5483"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5481"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5479"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5477"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5475"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5473"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5471"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5469"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5467"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5463"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5461"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5457"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5455"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5453"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5449"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5447"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5445"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5441"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5439"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5435"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5433"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5431"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5427"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5425"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5423"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7692"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient7680">
+      <stop
+         style="stop-color:#696969;stop-opacity:1;"
+         offset="0"
+         id="stop7682" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop7684" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7670">
+      <stop
+         style="stop-color:#6e3d09;stop-opacity:1;"
+         offset="0"
+         id="stop7672" />
+      <stop
+         id="stop7674"
+         offset="0.24242425"
+         style="stop-color:#ea8113;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5c3307;stop-opacity:1;"
+         offset="0.62121212"
+         id="stop7676" />
+      <stop
+         style="stop-color:#e07c12;stop-opacity:1;"
+         offset="1"
+         id="stop7678" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7660">
+      <stop
+         style="stop-color:#bdbdbd;stop-opacity:1;"
+         offset="0"
+         id="stop7662" />
+      <stop
+         id="stop7664"
+         offset="0.33333334"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1;"
+         offset="0.66666669"
+         id="stop7666" />
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="1"
+         id="stop7668" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7654">
+      <stop
+         style="stop-color:#50534b;stop-opacity:0.46391752;"
+         offset="0.0000000"
+         id="stop7656" />
+      <stop
+         style="stop-color:#50534b;stop-opacity:0;"
+         offset="1"
+         id="stop7658" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16370"
+       id="radialGradient7652"
+       cx="27.125000"
+       cy="45.625000"
+       fx="27.125000"
+       fy="45.625000"
+       r="22.500000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.200000,-4.404001e-15,36.50000)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient7644">
+      <stop
+         style="stop-color:#818181;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7646" />
+      <stop
+         id="stop7648"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bebebe;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7650" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient7642"
+       gradientUnits="userSpaceOnUse"
+       x1="3.6693072"
+       y1="27.981939"
+       x2="46.098797"
+       y2="27.981939"
+       gradientTransform="translate(54.50145,-4.377128)" />
+    <linearGradient
+       id="linearGradient7636">
+      <stop
+         style="stop-color:#b87202;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7638" />
+      <stop
+         style="stop-color:#8f5902;stop-opacity:0;"
+         offset="1"
+         id="stop7640" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7630">
+      <stop
+         style="stop-color:#505b5f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7632" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7634" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7621">
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7623" />
+      <stop
+         style="stop-color:#555753;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop7625" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop7628" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7615">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop7617" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop7619" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7607">
+      <stop
+         id="stop7609"
+         offset="0.0000000"
+         style="stop-color:#969993;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7611"
+         offset="0.50000000"
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7613"
+         offset="1.0000000"
+         style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7601">
+      <stop
+         id="stop7603"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop7605"
+         offset="1"
+         style="stop-color:#fcf18f;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7595">
+      <stop
+         id="stop7597"
+         offset="0"
+         style="stop-color:#b59300;stop-opacity:1;" />
+      <stop
+         id="stop7599"
+         offset="1"
+         style="stop-color:#b59300;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7583">
+      <stop
+         id="stop7585"
+         offset="0.0000000"
+         style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7587"
+         offset="1"
+         style="stop-color:#544500;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7577">
+      <stop
+         id="stop7579"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7581"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7571">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop7573" />
+      <stop
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7575" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7565">
+      <stop
+         style="stop-color:#987c00;stop-opacity:1;"
+         offset="0"
+         id="stop7567" />
+      <stop
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7569" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7559">
+      <stop
+         style="stop-color:#edd400;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7561" />
+      <stop
+         style="stop-color:#b8a500;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7563" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7553">
+      <stop
+         style="stop-color:#e9b96e;stop-opacity:1;"
+         offset="0"
+         id="stop7555" />
+      <stop
+         style="stop-color:#b88433;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7557" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7547">
+      <stop
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7549" />
+      <stop
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7551" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient7545"
+       gradientTransform="scale(0.831950,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient7543"
+       gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient7541"
+       gradientTransform="scale(0.827650,1.208240)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="29.502863"
+       x2="24.769884"
+       y1="11.246989"
+       x1="15.750742"
+       gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7539"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7537"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.211454"
+       x2="29.475761"
+       y1="13.215685"
+       x1="20.190006"
+       gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7535"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="scale(0.824694,1.212571)"
+       id="linearGradient7533"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       id="linearGradient7531"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       id="linearGradient7529"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7527"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7525"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.827650,1.208240)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7523"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7521"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7519"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7517"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.831950,1.201995)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7515"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7513"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient7511"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+       x1="32.368496"
+       y1="6.0591717"
+       x2="35.239323"
+       y2="-3.6642039" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient7509"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient7507"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+       x1="43.604591"
+       y1="9.6609612"
+       x2="48.134148"
+       y2="1.5751816" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient7505"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+       x1="28.250944"
+       y1="1.5502936"
+       x2="29.906208"
+       y2="-2.3372657" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient7503"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient7501"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+       x1="41.323280"
+       y1="-3.1978326"
+       x2="38.269123"
+       y2="11.365776" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="11.797005"
+       x2="-23.287144"
+       y1="11.797003"
+       x1="-32.138432"
+       gradientTransform="scale(1.089011,0.918264)"
+       id="linearGradient7499"
+       xlink:href="#linearGradient5229"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient7497"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       x1="24.742752"
+       y1="2.3111212"
+       x2="31.589277"
+       y2="2.4383495" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7625"
+       id="radialGradient7495"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       cx="8.9124269"
+       cy="34.747555"
+       fx="9.0367527"
+       fy="34.482697"
+       r="7.9984083"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient7493"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       x1="33.882736"
+       y1="12.904269"
+       x2="38.881176"
+       y2="6.9174280"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient7491"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="41.377167"
+       y2="5.4044285"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient7489"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="40.450649"
+       y2="7.7109184"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6939"
+       id="linearGradient7487"
+       x1="19.394735"
+       y1="30.001331"
+       x2="23.109331"
+       y2="33.438831"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6951"
+       id="linearGradient7485"
+       x1="28.058632"
+       y1="18.867767"
+       x2="37.092148"
+       y2="27.20533"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6963"
+       id="radialGradient7483"
+       cx="15.415101"
+       cy="35.356506"
+       fx="15.415101"
+       fy="35.356506"
+       r="7.5791561"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2446"
+       id="linearGradient7481"
+       x1="13.236155"
+       y1="37.752247"
+       x2="7.7521091"
+       y2="42.282146"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient7479"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7477"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7475"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient7473"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient7471"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient7469"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient7467"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient7465"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient7463"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient7461"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient7455">
+      <stop
+         id="stop7457"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7459"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7449">
+      <stop
+         id="stop7451"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7453"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7443">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop7445" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop7447" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7437">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop7439" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop7441" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7431">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7433" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop7435" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7419">
+      <stop
+         id="stop7421"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7423"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7413">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop7415" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop7417" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7407">
+      <stop
+         id="stop7409"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7411"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7401">
+      <stop
+         id="stop7403"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7405"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7395">
+      <stop
+         id="stop7397"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7399"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient7389"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop7391" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop7393" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient7383"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop7385" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop7387" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient7381"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient7375">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop7377" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop7379" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient7373"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7361">
+      <stop
+         id="stop7363"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop7365"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7355">
+      <stop
+         id="stop7357"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop7359"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7349">
+      <stop
+         id="stop7351"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop7353"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7343">
+      <stop
+         id="stop7345"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop7347"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7337">
+      <stop
+         id="stop7339"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop7341"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7331">
+      <stop
+         id="stop7333"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop7335"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7325">
+      <stop
+         id="stop7327"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop7329"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8918"
+       id="radialGradient9203"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       cx="25.969097"
+       cy="17.257854"
+       fx="25.968998"
+       fy="17.257843"
+       r="9.8222504" />
+    <linearGradient
+       id="linearGradient8918">
+      <stop
+         id="stop8920"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop8922"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8824"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8740">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop8742" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop8744" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8912"
+       id="radialGradient9197"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       cx="24.478569"
+       cy="17.573915"
+       fx="24.478539"
+       fy="17.573889"
+       r="2.9719501" />
+    <linearGradient
+       id="linearGradient8912">
+      <stop
+         style="stop-color:#cee14b"
+         offset="0"
+         id="stop8914" />
+      <stop
+         style="stop-color:#9db029"
+         offset="1"
+         id="stop8916" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8820"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8930"
+       id="radialGradient9191"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       cx="25.135374"
+       cy="14.542349"
+       fx="25.135332"
+       fy="14.542329"
+       r="4.1347499" />
+    <linearGradient
+       id="linearGradient8930">
+      <stop
+         id="stop8932"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop8934"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8816"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8924"
+       id="radialGradient9185"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       cx="24.652573"
+       cy="18.94449"
+       fx="24.652485"
+       fy="18.944481"
+       r="8.6174498" />
+    <linearGradient
+       id="linearGradient8924">
+      <stop
+         id="stop8926"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop8928"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8812"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8810"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8808"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8806"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8804"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8802"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8800"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8798"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8796"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8794"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8792"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8788"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8786"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8782"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8780"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8778"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8774"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8772"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8770"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8766"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8764"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8760"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8758"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8756"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8752"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8750"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient8748"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       id="linearGradient4873"
+       inkscape:collect="always">
+      <stop
+         id="stop4875"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4877"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8647">
+      <stop
+         style="stop-color:#8fb1dc;stop-opacity:1;"
+         offset="0"
+         id="stop8649" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="1"
+         id="stop8651" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7177">
+      <stop
+         id="stop7179"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop7181"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient7265"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient7806"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient7808"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient7810"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient7812"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7814"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7882"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7888"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7892"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7898"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7904"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7908"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8924"
+       id="radialGradient7930"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       cx="24.652573"
+       cy="18.94449"
+       fx="24.652485"
+       fy="18.944481"
+       r="8.6174498" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7932"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8930"
+       id="radialGradient7936"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       cx="25.135374"
+       cy="14.542349"
+       fx="25.135332"
+       fy="14.542329"
+       r="4.1347499" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7938"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8912"
+       id="radialGradient7942"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       cx="24.478569"
+       cy="17.573915"
+       fx="24.478539"
+       fy="17.573889"
+       r="2.9719501" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7944"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8918"
+       id="radialGradient7946"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       cx="25.969097"
+       cy="17.257854"
+       fx="25.968998"
+       fy="17.257843"
+       r="9.8222504" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7948"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <mask
+       id="mask7096"
+       maskUnits="userSpaceOnUse">
+      <path
+         transform="matrix(1.0800585,0,0,1.0800585,162.92445,152.66827)"
+         d="M 29.168156 15.206214 A 14.318913 13.788582 0 1 1  0.53032875,15.206214 A 14.318913 13.788582 0 1 1  29.168156 15.206214 z"
+         sodipodi:ry="13.788582"
+         sodipodi:rx="14.318913"
+         sodipodi:cy="15.206214"
+         sodipodi:cx="14.849242"
+         id="path7098"
+         style="opacity:1;color:#000000;fill:url(#linearGradient7262);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         sodipodi:type="arc" />
+    </mask>
+    <linearGradient
+       y2="19.537243"
+       x2="17.412506"
+       y1="13.968777"
+       x1="14.849242"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7094"
+       xlink:href="#linearGradient7177"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(0.918134,0,0,0.854079,2.429764,1.490099)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7092"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7090"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="9.8222504"
+       fy="17.257843"
+       fx="25.968998"
+       cy="17.257854"
+       cx="25.969097"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7088"
+       xlink:href="#linearGradient8918"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7086"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="2.9719501"
+       fy="17.573889"
+       fx="24.478539"
+       cy="17.573915"
+       cx="24.478569"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7084"
+       xlink:href="#linearGradient8912"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,0.589884)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7082"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7080"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="4.1347499"
+       fy="14.542329"
+       fx="25.135332"
+       cy="14.542349"
+       cx="25.135374"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7078"
+       xlink:href="#linearGradient8930"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(0.891018,0,0,0.828854,1.579517,2.39052)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7076"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7074"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="8.6174498"
+       fy="18.944481"
+       fx="24.652485"
+       cy="18.94449"
+       cx="24.652573"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7072"
+       xlink:href="#linearGradient8924"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7070"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7068"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7066"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7064"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7062"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7060"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7058"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7056"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7054"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7052"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7050"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7048"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7046"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7044"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7042"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7040"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7038"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7036"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7034"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7032"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7030"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7028"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7026"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7024"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7022"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <radialGradient
+       r="10.081216"
+       fy="-3.4420195"
+       fx="62.225391"
+       cy="-3.4420195"
+       cx="62.225391"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7020"
+       xlink:href="#linearGradient8740"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="16.839214"
+       x2="68.910904"
+       y1="-9.3832779"
+       x1="63.397362"
+       gradientTransform="matrix(1.486266,0,0,1.478007,86.554178,174.53514)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7018"
+       xlink:href="#linearGradient4873"
+       inkscape:collect="always" />
+    <radialGradient
+       r="9.7552834"
+       fy="-8.7256308"
+       fx="62.200352"
+       cy="-8.7256308"
+       cx="62.200352"
+       gradientTransform="matrix(1.697728,0,0,1.694669,73.403038,176.21063)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7016"
+       xlink:href="#linearGradient8647"
+       inkscape:collect="always" />
+    <radialGradient
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient7014"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient7002">
+      <stop
+         style="stop-color:#696969;stop-opacity:1;"
+         offset="0"
+         id="stop7004" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop7006" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6992">
+      <stop
+         style="stop-color:#6e3d09;stop-opacity:1;"
+         offset="0"
+         id="stop6994" />
+      <stop
+         id="stop6996"
+         offset="0.24242425"
+         style="stop-color:#ea8113;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5c3307;stop-opacity:1;"
+         offset="0.62121212"
+         id="stop6998" />
+      <stop
+         style="stop-color:#e07c12;stop-opacity:1;"
+         offset="1"
+         id="stop7000" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6982">
+      <stop
+         style="stop-color:#bdbdbd;stop-opacity:1;"
+         offset="0"
+         id="stop6984" />
+      <stop
+         id="stop6986"
+         offset="0.33333334"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1;"
+         offset="0.66666669"
+         id="stop6988" />
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="1"
+         id="stop6990" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6976">
+      <stop
+         style="stop-color:#50534b;stop-opacity:0.46391752;"
+         offset="0.0000000"
+         id="stop6978" />
+      <stop
+         style="stop-color:#50534b;stop-opacity:0;"
+         offset="1"
+         id="stop6980" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16370"
+       id="radialGradient6974"
+       cx="27.125000"
+       cy="45.625000"
+       fx="27.125000"
+       fy="45.625000"
+       r="22.500000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.200000,-4.404001e-15,36.50000)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient6966">
+      <stop
+         style="stop-color:#818181;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6968" />
+      <stop
+         id="stop6970"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bebebe;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6972" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient6964"
+       gradientUnits="userSpaceOnUse"
+       x1="3.6693072"
+       y1="27.981939"
+       x2="46.098797"
+       y2="27.981939"
+       gradientTransform="translate(54.50145,-4.377128)" />
+    <linearGradient
+       id="linearGradient6958">
+      <stop
+         style="stop-color:#b87202;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6960" />
+      <stop
+         style="stop-color:#8f5902;stop-opacity:0;"
+         offset="1"
+         id="stop6962" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6952">
+      <stop
+         style="stop-color:#505b5f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6954" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6956" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6944">
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6946" />
+      <stop
+         style="stop-color:#555753;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop6948" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop6950" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6937">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop6939" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop6942" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6929">
+      <stop
+         id="stop6931"
+         offset="0.0000000"
+         style="stop-color:#969993;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6933"
+         offset="0.50000000"
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6935"
+         offset="1.0000000"
+         style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6923">
+      <stop
+         id="stop6925"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop6927"
+         offset="1"
+         style="stop-color:#fcf18f;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6917">
+      <stop
+         id="stop6919"
+         offset="0"
+         style="stop-color:#b59300;stop-opacity:1;" />
+      <stop
+         id="stop6921"
+         offset="1"
+         style="stop-color:#b59300;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6905">
+      <stop
+         id="stop6907"
+         offset="0.0000000"
+         style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6909"
+         offset="1"
+         style="stop-color:#544500;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6899">
+      <stop
+         id="stop6901"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6903"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6893">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop6895" />
+      <stop
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6897" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6887">
+      <stop
+         style="stop-color:#987c00;stop-opacity:1;"
+         offset="0"
+         id="stop6889" />
+      <stop
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6891" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6881">
+      <stop
+         style="stop-color:#edd400;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6883" />
+      <stop
+         style="stop-color:#b8a500;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6885" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6875">
+      <stop
+         style="stop-color:#e9b96e;stop-opacity:1;"
+         offset="0"
+         id="stop6877" />
+      <stop
+         style="stop-color:#b88433;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6879" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6869">
+      <stop
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6871" />
+      <stop
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6873" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient6867"
+       gradientTransform="scale(0.831950,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient6865"
+       gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient6863"
+       gradientTransform="scale(0.827650,1.208240)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="29.502863"
+       x2="24.769884"
+       y1="11.246989"
+       x1="15.750742"
+       gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6861"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6859"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.211454"
+       x2="29.475761"
+       y1="13.215685"
+       x1="20.190006"
+       gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6857"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="scale(0.824694,1.212571)"
+       id="linearGradient6855"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       id="linearGradient6853"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       id="linearGradient6851"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6849"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6847"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.827650,1.208240)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6845"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6843"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6841"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6839"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.831950,1.201995)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6837"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6835"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient6833"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+       x1="32.368496"
+       y1="6.0591717"
+       x2="35.239323"
+       y2="-3.6642039" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient6831"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient6829"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+       x1="43.604591"
+       y1="9.6609612"
+       x2="48.134148"
+       y2="1.5751816" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient6827"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+       x1="28.250944"
+       y1="1.5502936"
+       x2="29.906208"
+       y2="-2.3372657" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient6825"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient6823"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+       x1="41.323280"
+       y1="-3.1978326"
+       x2="38.269123"
+       y2="11.365776" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="11.797005"
+       x2="-23.287144"
+       y1="11.797003"
+       x1="-32.138432"
+       gradientTransform="scale(1.089011,0.918264)"
+       id="linearGradient6821"
+       xlink:href="#linearGradient5229"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient6819"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       x1="24.742752"
+       y1="2.3111212"
+       x2="31.589277"
+       y2="2.4383495" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7625"
+       id="radialGradient6817"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       cx="8.9124269"
+       cy="34.747555"
+       fx="9.0367527"
+       fy="34.482697"
+       r="7.9984083"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient6815"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       x1="33.882736"
+       y1="12.904269"
+       x2="38.881176"
+       y2="6.9174280"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient6813"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="41.377167"
+       y2="5.4044285"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient6811"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="40.450649"
+       y2="7.7109184"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6939"
+       id="linearGradient6809"
+       x1="19.394735"
+       y1="30.001331"
+       x2="23.109331"
+       y2="33.438831"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6951"
+       id="linearGradient6807"
+       x1="28.058632"
+       y1="18.867767"
+       x2="37.092148"
+       y2="27.20533"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6963"
+       id="radialGradient6805"
+       cx="15.415101"
+       cy="35.356506"
+       fx="15.415101"
+       fy="35.356506"
+       r="7.5791561"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2446"
+       id="linearGradient6802"
+       x1="13.236155"
+       y1="37.752247"
+       x2="7.7521091"
+       y2="42.282146"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient6800"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6798"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6796"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient6794"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient6792"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6790"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6788"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6786"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient6784"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient6782"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6776">
+      <stop
+         id="stop6778"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6780"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6770">
+      <stop
+         id="stop6772"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6774"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6764">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6766" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop6768" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6758">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop6760" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop6762" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6752">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6754" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6740">
+      <stop
+         id="stop6742"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6744"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6734">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop6736" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6738" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6728">
+      <stop
+         id="stop6730"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6732"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6722">
+      <stop
+         id="stop6724"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6726"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6716">
+      <stop
+         id="stop6718"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6720"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient6710"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6712" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6714" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient6704"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6706" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6708" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6702"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient6696">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop6698" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6700" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6682">
+      <stop
+         id="stop6684"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop6686"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6676">
+      <stop
+         id="stop6678"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop6680"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6670">
+      <stop
+         id="stop6672"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop6674"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6664">
+      <stop
+         id="stop6666"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop6668"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6658">
+      <stop
+         id="stop6660"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6662"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6652">
+      <stop
+         id="stop6654"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6656"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6646">
+      <stop
+         id="stop6648"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop6650"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8918"
+       id="radialGradient6644"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       cx="25.969097"
+       cy="17.257854"
+       fx="25.968998"
+       fy="17.257843"
+       r="9.8222504" />
+    <linearGradient
+       id="linearGradient6638">
+      <stop
+         id="stop6640"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop6642"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6636"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8912"
+       id="radialGradient6628"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       cx="24.478569"
+       cy="17.573915"
+       fx="24.478539"
+       fy="17.573889"
+       r="2.9719501" />
+    <linearGradient
+       id="linearGradient6622">
+      <stop
+         style="stop-color:#cee14b"
+         offset="0"
+         id="stop6624" />
+      <stop
+         style="stop-color:#9db029"
+         offset="1"
+         id="stop6626" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6620"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8930"
+       id="radialGradient6618"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       cx="25.135374"
+       cy="14.542349"
+       fx="25.135332"
+       fy="14.542329"
+       r="4.1347499" />
+    <linearGradient
+       id="linearGradient6612">
+      <stop
+         id="stop6614"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop6616"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6610"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8924"
+       id="radialGradient6608"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       cx="24.652573"
+       cy="18.94449"
+       fx="24.652485"
+       fy="18.944481"
+       r="8.6174498" />
+    <linearGradient
+       id="linearGradient6602">
+      <stop
+         id="stop6604"
+         offset="0"
+         style="stop-color:#cee14b" />
+      <stop
+         id="stop6606"
+         offset="1"
+         style="stop-color:#9db029" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6600"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6598"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6596"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6594"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6592"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6590"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6588"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6586"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6584"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6582"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6580"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6578"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6576"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6574"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6572"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6570"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6568"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6566"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6564"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6562"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6560"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6558"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6556"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6554"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6552"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6550"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient6548"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       id="linearGradient6536">
+      <stop
+         style="stop-color:#8fb1dc;stop-opacity:1;"
+         offset="0"
+         id="stop6538" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="1"
+         id="stop6540" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6530">
+      <stop
+         id="stop6532"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop6534"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient6528"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7180"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7182"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7184"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7186"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7188"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7190"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7192"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7194"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7196"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7198"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7200"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7202"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7204"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7206"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7208"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7210"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7216"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7219"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7221"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7223"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7225"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7227"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7229"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7231"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8924"
+       id="radialGradient7233"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(7.657394e-2,2.760516,-1.969551,5.463895e-2,60.09901,-55.47179)"
+       cx="24.652573"
+       cy="18.94449"
+       fx="24.652485"
+       fy="18.944481"
+       r="8.6174498" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7235"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8930"
+       id="radialGradient7237"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.159592,5.753335,-0.8072,2.23703e-2,32.87305,-131.6974)"
+       cx="25.135374"
+       cy="14.542349"
+       fx="25.135332"
+       fy="14.542329"
+       r="4.1347499" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7239"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8912"
+       id="radialGradient7241"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.222034,8.004376,-0.597156,1.656095e-2,29.5454,-182.3268)"
+       cx="24.478569"
+       cy="17.573915"
+       fx="24.478539"
+       fy="17.573889"
+       r="2.9719501" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7243"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8918"
+       id="radialGradient7245"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.718136e-2,2.42191,-1.629357,4.51789e-2,52.36869,-50.34012)"
+       cx="25.969097"
+       cy="17.257854"
+       fx="25.968998"
+       fy="17.257843"
+       r="9.8222504" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8740"
+       id="radialGradient7247"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.930233,0,-0.240141)"
+       cx="62.225391"
+       cy="-3.4420195"
+       fx="62.225391"
+       fy="-3.4420195"
+       r="10.081216" />
+    <linearGradient
+       y2="21.336346"
+       x2="-21.962101"
+       y1="15.649428"
+       x1="-21.658581"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6019"
+       xlink:href="#linearGradient6001"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="22.661524"
+       x2="-22.113543"
+       y1="28.337734"
+       x1="-22.822565"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6015"
+       xlink:href="#linearGradient6001"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="22.661524"
+       x2="-22.113543"
+       y1="30.057165"
+       x1="-25.176178"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6011"
+       xlink:href="#linearGradient6001"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="21.041553"
+       x2="-22.252472"
+       y1="30.057165"
+       x1="-25.176178"
+       id="linearGradient6007"
+       xlink:href="#linearGradient6001"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7175145"
+       fy="12.493138"
+       fx="12.071323"
+       cy="12.493138"
+       cx="12.071323"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5989"
+       xlink:href="#linearGradient4825"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7175145"
+       fy="12.493138"
+       fx="12.071323"
+       cy="12.493138"
+       cx="12.071323"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5987"
+       xlink:href="#linearGradient4825"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7175145"
+       fy="12.493138"
+       fx="12.071323"
+       cy="12.493138"
+       cx="12.071323"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5985"
+       xlink:href="#linearGradient4825"
+       inkscape:collect="always" />
+    <radialGradient
+       r="6.7175145"
+       fy="12.493138"
+       fx="12.071323"
+       cy="12.493138"
+       cx="12.071323"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5983"
+       xlink:href="#linearGradient4825"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="43.526714"
+       fy="12.142302"
+       fx="15.601279"
+       cy="12.142302"
+       cx="15.601279"
+       gradientTransform="scale(0.999989,1.000011)"
+       id="radialGradient4132"
+       xlink:href="#linearGradient4126"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="12.289036"
+       fy="63.965388"
+       fx="15.115514"
+       cy="63.965388"
+       cx="15.115514"
+       gradientTransform="scale(1.643990,0.608276)"
+       id="radialGradient4120"
+       xlink:href="#linearGradient4114"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="29.993349"
+       fy="15.716079"
+       fx="18.247644"
+       cy="15.716079"
+       cx="18.247644"
+       gradientTransform="scale(0.999989,1.000011)"
+       id="radialGradient3968"
+       xlink:href="#linearGradient3962"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient7452">
+      <stop
+         id="stop7454"
+         offset="0.0000000"
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7456"
+         offset="0.15517241"
+         style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7458"
+         offset="0.75000000"
+         style="stop-color:#4074ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7460"
+         offset="1.0000000"
+         style="stop-color:#36486c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7439">
+      <stop
+         id="stop7442"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7444"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.16494845;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4825"
+       inkscape:collect="always">
+      <stop
+         id="stop4827"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop4829"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6001"
+       inkscape:collect="always">
+      <stop
+         id="stop6003"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop6005"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="52.308819"
+     inkscape:cy="89.43985"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="904"
+     inkscape:window-x="2320"
+     inkscape:window-y="136"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <g
+       style="display:inline;fill:#729fcf;fill-opacity:1"
+       inkscape:label="Layer 1"
+       id="g7473"
+       transform="translate(0.996766,-1.2113182)">
+      <g
+         transform="matrix(0.982371,0,0,0.982371,-0.9395807,1.1167977)"
+         style="opacity:1;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-miterlimit:4"
+         id="g4136">
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4138">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4142">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4144"
+               d="M 44.0713,20.7144 C 44.0713,20.9771 44.0713,20.7144 44.0713,20.7144 L 43.5264,21.3316 C 43.1924,20.938 42.8174,20.607 42.4366,20.2613 L 41.6007,20.3843 L 40.837,19.521 L 40.837,20.5894 L 41.4913,21.0845 L 41.9268,21.5777 L 42.5088,20.9195 C 42.6553,21.1939 42.7998,21.4683 42.9453,21.7427 L 42.9453,22.565 L 42.29,23.3052 L 41.0908,24.1284 L 40.1826,25.0347 L 39.6006,24.3745 L 39.8916,23.6343 L 39.3105,22.9761 L 38.3291,20.8784 L 37.4932,19.9331 L 37.2744,20.1792 L 37.6025,21.3726 L 38.2197,22.0718 C 38.5722,23.0894 38.9209,24.062 39.3838,25.0347 C 40.1016,25.0347 40.7783,24.9585 41.4912,24.8687 L 41.4912,25.4449 L 40.6191,27.5841 L 39.8193,28.4884 L 39.165,29.8888 C 39.165,30.6564 39.165,31.424 39.165,32.1915 L 39.3838,33.0978 L 39.0205,33.508 L 38.2197,34.0021 L 37.3838,34.7013 L 38.0752,35.4826 L 37.1299,36.3068 L 37.3115,36.84 L 35.8935,38.4455 L 34.9492,38.4455 L 34.1494,38.9396 L 33.6396,38.9396 L 33.6396,38.2814 L 33.4228,36.963 C 33.1415,36.1368 32.8486,35.3165 32.5507,34.4962 C 32.5507,33.8907 32.5868,33.2911 32.623,32.6857 L 32.9873,31.8634 L 32.4775,30.8751 L 32.5146,29.5177 L 31.8232,28.7364 L 32.1689,27.6055 L 31.6064,26.9673 L 30.624,26.9673 L 30.2969,26.5972 L 29.3155,27.2149 L 28.9161,26.7613 L 28.0069,27.543 C 27.3897,26.8433 26.7715,26.1441 26.1534,25.4449 L 25.4268,23.7164 L 26.0811,22.7301 L 25.7178,22.319 L 26.5166,20.4254 C 27.1729,19.609 27.8584,18.8258 28.5518,18.0397 L 29.7881,17.7106 L 31.169,17.5465 L 32.1143,17.7936 L 33.459,19.15 L 33.9317,18.6158 L 34.585,18.5338 L 35.8213,18.9449 L 36.7666,18.9449 L 37.4209,18.3687 L 37.7119,17.9576 L 37.0566,17.5465 L 35.9658,17.4645 C 35.6631,17.0446 35.3818,16.6032 35.0224,16.2301 L 34.6581,16.3942 L 34.5126,17.4645 L 33.8583,16.7243 L 33.7138,15.9001 L 32.9872,15.3259 L 32.6952,15.3259 L 33.4227,16.1482 L 33.1317,16.8884 L 32.5506,17.0525 L 32.9139,16.3123 L 32.2586,15.9842 L 31.6785,15.326 L 30.5867,15.5721 L 30.4422,15.9002 L 29.7879,16.3123 L 29.4246,17.2176 L 28.5164,17.6697 L 28.116,17.2176 L 27.6805,17.2176 L 27.6805,15.7362 L 28.6258,15.2421 L 29.3524,15.2421 L 29.2059,14.6669 L 28.6258,14.0907 L 29.6063,13.8846 L 30.1512,13.2684 L 30.5867,12.5272 L 31.3875,12.5272 L 31.1687,11.952 L 31.6785,11.6229 L 31.6785,12.2811 L 32.7683,12.5272 L 33.8581,11.6229 L 33.9313,11.2108 L 34.8756,10.5531 C 34.5338,10.5956 34.192,10.6268 33.858,10.7177 L 33.858,9.9766 L 34.2213,9.1538 L 33.858,9.1538 L 33.0596,9.894 L 32.8408,10.3056 L 33.0596,10.8823 L 32.6953,11.8686 L 32.1142,11.5395 L 31.6064,10.9643 L 30.8056,11.5395 L 30.5146,10.2236 L 31.8955,9.3188 L 31.8955,8.8247 L 32.7685,8.249 L 34.1494,7.9194 L 35.0947,8.249 L 36.8388,8.5781 L 36.4033,9.0713 L 35.458,9.0713 L 36.4033,10.0586 L 37.1299,9.2363 L 37.3506,8.8745 C 37.3506,8.8745 40.1377,11.3725 41.7305,14.105 C 43.3233,16.8384 44.0713,20.0601 44.0713,20.7144 z " />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4146">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4150">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4152"
+               d="M 26.0703,9.2363 L 25.9971,9.7295 L 26.5069,10.0586 L 27.378,9.4829 L 26.9425,8.9892 L 26.3605,9.3188 L 26.0705,9.2363" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4154">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4158">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4160"
+               d="M 26.8701,5.8633 L 24.9795,5.1226 L 22.7998,5.3692 L 20.1094,6.1094 L 19.6006,6.6035 L 21.2725,7.7549 L 21.2725,8.4131 L 20.6182,9.0713 L 21.4912,10.8003 L 22.0713,10.4702 L 22.7998,9.3188 C 23.9228,8.9716 24.9297,8.5781 25.9971,8.0844 L 26.8701,5.8632" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4162">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4166">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4168"
+               d="M 28.833,12.7749 L 28.542,12.0337 L 28.0322,12.1987 L 28.1787,13.103 L 28.833,12.7749" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4170">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4174">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4176"
+               d="M 29.123,12.6089 L 28.9775,13.5972 L 29.7773,13.4322 L 30.3584,12.857 L 29.8496,12.3629 C 29.6787,11.9078 29.4824,11.483 29.2685,11.0465 L 28.833,11.0465 L 28.833,11.5397 L 29.123,11.8688 L 29.123,12.609" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4178">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4182">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4184"
+               d="M 18.3652,28.2422 L 17.7832,27.0899 L 16.6929,26.8433 L 16.1114,25.2808 L 14.6578,25.4449 L 13.4224,24.5406 L 12.1133,25.692 L 12.1133,25.8736 C 11.7173,25.7593 11.2305,25.7437 10.8779,25.5269 L 10.5869,24.7046 L 10.5869,23.7993 L 9.7148,23.8813 C 9.7876,23.3051 9.8598,22.7299 9.9331,22.1538 L 9.4238,22.1538 L 8.9155,22.812 L 8.4062,23.0581 L 7.6791,22.6479 L 7.6063,21.7426 L 7.7518,20.7553 L 8.8426,19.933 L 9.7147,19.933 L 9.8597,19.4389 L 10.95,19.685 L 11.7498,20.6733 L 11.8953,19.0268 L 13.2766,17.8754 L 13.7854,16.641 L 14.803,16.2299 L 15.3845,15.4076 L 16.6926,15.1596 L 17.3474,14.1733 C 16.6931,14.1733 16.0388,14.1733 15.3845,14.1733 L 16.6203,13.5971 L 17.4919,13.5971 L 18.7282,13.185 L 18.8737,12.6928 L 18.4372,12.2807 L 17.9284,12.1157 L 18.0739,11.6225 L 17.7106,10.8823 L 16.838,11.2104 L 16.9835,10.5527 L 15.9659,9.9765 L 15.1666,11.3744 L 15.2389,11.8685 L 14.4396,12.1986 L 13.9303,13.2679 L 13.7125,12.2806 L 12.3312,11.7044 L 12.1129,10.9642 L 13.9303,9.8939 L 14.7301,9.1537 L 14.8029,8.2489 L 14.3669,8.0018 L 13.7854,7.9193 L 13.4221,8.8246 C 13.4221,8.8246 12.8142,8.9437 12.6579,8.9823 C 10.6618,10.8217 6.6286,14.7924 5.6916,22.2885 C 5.7287,22.4623 6.3708,23.4701 6.3708,23.4701 L 7.8972,24.3744 L 9.4236,24.7865 L 10.0784,25.6097 L 11.0955,26.3499 L 11.677,26.2679 L 12.113,26.4642 L 12.113,26.597 L 11.5319,28.16 L 11.0954,28.8182 L 11.2409,29.1483 L 10.8776,30.3807 L 12.1862,32.7674 L 13.4943,33.9197 L 14.0763,34.742 L 14.0031,36.4705 L 14.4396,37.4568 L 14.0031,39.3494 C 14.0031,39.3494 13.9689,39.3377 14.0246,39.5271 C 14.0808,39.7166 16.3537,40.9783 16.4982,40.8709 C 16.6422,40.7615 16.7653,40.6658 16.7653,40.6658 L 16.6203,40.2556 L 17.2014,39.6794 L 17.4197,39.1032 L 18.365,38.7731 L 19.0916,36.9626 L 18.8738,36.4704 L 19.3816,35.7302 L 20.4724,35.4822 L 21.0544,34.1658 L 20.9089,32.5213 L 21.781,31.2869 L 21.9265,30.0525 C 20.7331,29.4607 19.5495,28.8513 18.365,28.242" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4186">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4190">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4192"
+               d="M 16.7656,9.5649 L 17.4922,10.0586 L 18.0742,10.0586 L 18.0742,9.4829 L 17.3476,9.1538 L 16.7656,9.5649" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4194">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4198">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4200"
+               d="M 14.876,8.9072 L 14.5122,9.812 L 15.2393,9.812 L 15.6031,8.9892 C 15.9166,8.7675 16.2286,8.5444 16.5479,8.331 L 17.275,8.5781 C 17.7594,8.9072 18.2438,9.2363 18.7286,9.5649 L 19.4561,8.9072 L 18.6558,8.5781 L 18.292,7.8374 L 16.9111,7.6728 L 16.8383,7.2612 L 16.184,7.4262 L 15.8936,8.002 L 15.5298,7.2613 L 15.3848,7.5904 L 15.4576,8.4132 L 14.876,8.9072" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4202">
+          <g
+             id="g4204"
+             style="opacity:0.75;fill:#729fcf;fill-opacity:1">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               d=""
+               id="path4206" />
+          </g>
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4208">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               d=""
+               id="path4210" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4212">
+          <g
+             id="g4214"
+             style="opacity:0.75;fill:#729fcf;fill-opacity:1">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               d=""
+               id="path4216" />
+          </g>
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4218">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               d=""
+               id="path4220" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4222">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4226">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4228"
+               d="M 17.4922,6.8496 L 17.856,6.521 L 18.5831,6.3564 C 19.0811,6.1142 19.5811,5.9511 20.1095,5.7802 L 19.8195,5.2865 L 18.881,5.4213 L 18.4376,5.8632 L 17.7066,5.9692 L 17.0567,6.2744 L 16.7408,6.4272 L 16.5479,6.6855 L 17.4922,6.8496" />
+          </g>
+        </g>
+        <g
+           style="fill:#729fcf;fill-opacity:1"
+           id="g4230">
+          <g
+             style="fill:#729fcf;fill-opacity:1"
+             id="g4234">
+            <path
+               style="fill:#729fcf;fill-opacity:1"
+               id="path4236"
+               d="M 18.7285,14.6665 L 19.165,14.0083 L 18.5102,13.5151 L 18.7285,14.6665" />
+          </g>
+        </g>
+      </g>
+    </g>
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay" />
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-writer.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-writer.svg
@@ -0,0 +1,2100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-gulls.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient6214">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop6216" />
+      <stop
+         style="stop-color:#204a87;stop-opacity:1"
+         offset="1"
+         id="stop6218" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6186">
+      <stop
+         style="stop-color:#888a85;stop-opacity:1;"
+         offset="0"
+         id="stop6188" />
+      <stop
+         style="stop-color:#b5b6b3;stop-opacity:1;"
+         offset="1"
+         id="stop6190" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6160">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop6162" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop6164" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6152">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6154" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6156" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6142">
+      <stop
+         style="stop-color:#eeeeec;stop-opacity:1;"
+         offset="0"
+         id="stop6144" />
+      <stop
+         style="stop-color:#dadad6;stop-opacity:1;"
+         offset="1"
+         id="stop6146" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient5078"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient5076"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5074"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5072"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5070"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5068"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5066"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5064"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5062"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5060"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5058"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5052">
+      <stop
+         id="stop5054"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5056"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5046">
+      <stop
+         id="stop5048"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5050"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5040">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5042" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5044" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5034">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5036" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5038" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5028">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5030" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5032" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5016">
+      <stop
+         id="stop5018"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5020"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5010">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop5012" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5014" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5004">
+      <stop
+         id="stop5006"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5008"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4998">
+      <stop
+         id="stop5000"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5002"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4992">
+      <stop
+         id="stop4994"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4996"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient4986"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop4988" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop4990" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient4980"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop4982" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop4984" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient4978"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4972">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop4974" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4976" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient4970"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4958">
+      <stop
+         id="stop4960"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop4962"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4952">
+      <stop
+         id="stop4954"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop4956"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4946">
+      <stop
+         id="stop4948"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop4950"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4940">
+      <stop
+         id="stop4942"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop4944"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4934">
+      <stop
+         id="stop4936"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop4938"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4928">
+      <stop
+         id="stop4930"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop4932"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4922">
+      <stop
+         id="stop4924"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop4926"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6142"
+       id="linearGradient6148"
+       x1="30.16466"
+       y1="23.04245"
+       x2="36.69149"
+       y2="46.000004"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6152"
+       id="linearGradient6158"
+       x1="21"
+       y1="32.500001"
+       x2="33.658562"
+       y2="63.082367"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6160"
+       id="radialGradient6166"
+       cx="19.46875"
+       cy="18.356993"
+       fx="19.46875"
+       fy="18.356993"
+       r="0.34375"
+       gradientTransform="matrix(1.6598018,0,0,1.8106928,-12.845515,-14.947149)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6160"
+       id="radialGradient6176"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.6598018,0,0,1.8106928,-12.845515,-14.947149)"
+       cx="19.46875"
+       cy="18.356993"
+       fx="19.46875"
+       fy="18.356993"
+       r="0.34375" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6186"
+       id="linearGradient6192"
+       x1="26.540737"
+       y1="32.5"
+       x2="29.26687"
+       y2="19"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6214"
+       id="linearGradient6220"
+       x1="29.940233"
+       y1="33.285088"
+       x2="29.940233"
+       y2="29"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1917433,0,-5.5605552)" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="35.061621"
+     inkscape:cy="15.532839"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="689"
+     inkscape:window-x="2297"
+     inkscape:window-y="359"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+    <rect
+       rx="0.79079688"
+       ry="0.69196022"
+       y="19.5"
+       x="20.5"
+       height="26.000004"
+       width="23.999998"
+       id="rect6270"
+       style="color:#000000;fill:url(#linearGradient6148);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient6192);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       y="25"
+       x="27"
+       height="3"
+       width="14"
+       id="rect6274"
+       style="opacity:0.50857143;color:#000000;fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6168"
+       sodipodi:cx="19.46875"
+       sodipodi:cy="18.4375"
+       sodipodi:rx="0.34375"
+       sodipodi:ry="0.375"
+       d="M 19.8125 18.4375 A 0.34375 0.375 0 1 1  19.125,18.4375 A 0.34375 0.375 0 1 1  19.8125 18.4375 z"
+       transform="matrix(2.945898,0,0,2.728555,-33.340299,-20.974791)" />
+    <path
+       transform="matrix(2.945898,0,0,2.728555,-33.340299,-21.339613)"
+       d="M 19.8125 18.4375 A 0.34375 0.375 0 1 1  19.125,18.4375 A 0.34375 0.375 0 1 1  19.8125 18.4375 z"
+       sodipodi:ry="0.375"
+       sodipodi:rx="0.34375"
+       sodipodi:cy="18.4375"
+       sodipodi:cx="19.46875"
+       id="path6288"
+       style="color:#000000;fill:url(#radialGradient6166);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       sodipodi:type="arc" />
+    <rect
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6158);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6150"
+       width="22"
+       height="24.000002"
+       x="21.5"
+       y="20.5" />
+    <path
+       transform="matrix(2.945898,0,0,2.728555,-33.340299,-14.974791)"
+       d="M 19.8125 18.4375 A 0.34375 0.375 0 1 1  19.125,18.4375 A 0.34375 0.375 0 1 1  19.8125 18.4375 z"
+       sodipodi:ry="0.375"
+       sodipodi:rx="0.34375"
+       sodipodi:cy="18.4375"
+       sodipodi:cx="19.46875"
+       id="path6172"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient6176);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6174"
+       sodipodi:cx="19.46875"
+       sodipodi:cy="18.4375"
+       sodipodi:rx="0.34375"
+       sodipodi:ry="0.375"
+       d="M 19.8125 18.4375 A 0.34375 0.375 0 1 1  19.125,18.4375 A 0.34375 0.375 0 1 1  19.8125 18.4375 z"
+       transform="matrix(2.945898,0,0,2.728555,-33.340299,-15.339613)" />
+    <rect
+       style="opacity:0.50857143;color:#000000;fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6178"
+       width="7.0000005"
+       height="6"
+       x="34"
+       y="29" />
+    <rect
+       y="37"
+       x="27"
+       height="1"
+       width="12"
+       id="rect6180"
+       style="opacity:0.50857143;color:#000000;fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       style="opacity:0.50857143;color:#000000;fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6182"
+       width="13.944544"
+       height="3.9168155"
+       x="27"
+       y="39" />
+    <rect
+       style="opacity:0.89714286;color:#000000;fill:#888a85;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6184"
+       width="8"
+       height="1"
+       x="27"
+       y="23" />
+    <rect
+       style="opacity:0.8971429;color:#000000;fill:url(#linearGradient6220);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6212"
+       width="5.8804655"
+       height="6"
+       x="27"
+       y="29" />
+    <path
+       style="opacity:1;color:#000000;fill:#8f5902;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="M 32.044195,33.911613 C 32.044195,34.296741 31.90687,34.656555 31.669001,34.961851 C 31.669001,34.961851 27.427135,35.018104 27.427135,35.018104 C 27.161376,34.701159 27.00646,34.320664 27.00646,33.911613 C 27.00646,32.807613 28.134912,31.911613 29.525328,31.911613 C 30.915743,31.911613 32.044195,32.807613 32.044195,33.911613 z "
+       id="path6224"
+       sodipodi:nodetypes="cccssc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:#000000;fill:#fcaf3e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6222"
+       sodipodi:cx="30.8125"
+       sodipodi:cy="31.96875"
+       sodipodi:rx="1.75"
+       sodipodi:ry="1.65625"
+       d="M 32.5625 31.96875 A 1.75 1.65625 0 1 1  29.0625,31.96875 A 1.75 1.65625 0 1 1  32.5625 31.96875 z"
+       transform="matrix(0.8679245,0,0,0.8679245,2.7759434,3.8160377)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay" />
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-math.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-math.svg
@@ -0,0 +1,2620 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-gulls.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="22.518066"
+       x2="12.40625"
+       y1="28.958008"
+       x1="12.40625"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7077"
+       xlink:href="#linearGradient6278"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.1104"
+       x1="90.8311"
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7075"
+       xlink:href="#aigrd12"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="94.8"
+       x2="126.1107"
+       y1="84.7578"
+       x1="107.8672"
+       gradientTransform="matrix(0.1552487,0,0,0.2666832,18.453331,-4.0087587)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7073"
+       xlink:href="#aigrd10"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="77.05835"
+       x2="115.38278"
+       y1="100.92262"
+       x1="111.6685"
+       gradientTransform="matrix(0.156845,0,0,0.2208638,18.245167,0.4952887)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7071"
+       xlink:href="#linearGradient6262"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="98.8832"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientTransform="matrix(0.1552487,0,0,0.2555738,18.453331,-2.8826201)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7069"
+       xlink:href="#aigrd8"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="74.0884"
+       x2="87.6424"
+       y1="132.0767"
+       x1="113.0903"
+       gradientTransform="matrix(0.1967125,0,0,0.1788098,2.9691975,-0.8870439)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6577"
+       xlink:href="#aigrd5"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="71.8174"
+       x2="102.3008"
+       y1="67.4326"
+       x1="102.3008"
+       gradientTransform="matrix(0.2061997,0,0,0.2992157,1.9632611,-9.4980874)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6567"
+       xlink:href="#aigrd6"
+       inkscape:collect="always" />
+    <radialGradient
+       r="2.367"
+       fy="154.1919"
+       fx="102.9873"
+       cy="154.1919"
+       cx="102.9873"
+       gradientTransform="matrix(0.3438365,0,0,0.3438365,-12.602841,-26.847406)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6562"
+       xlink:href="#aigrd7"
+       inkscape:collect="always" />
+    <radialGradient
+       r="4.9882676"
+       fy="87.689521"
+       fx="14.557597"
+       cy="87.689521"
+       cx="14.557597"
+       gradientTransform="scale(2.170608,0.4607)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6525"
+       xlink:href="#linearGradient5553"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5412">
+      <stop
+         style="stop-color:#696969;stop-opacity:1;"
+         offset="0"
+         id="stop5414" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop5416" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5402">
+      <stop
+         style="stop-color:#6e3d09;stop-opacity:1;"
+         offset="0"
+         id="stop5404" />
+      <stop
+         id="stop5406"
+         offset="0.24242425"
+         style="stop-color:#ea8113;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5c3307;stop-opacity:1;"
+         offset="0.62121212"
+         id="stop5408" />
+      <stop
+         style="stop-color:#e07c12;stop-opacity:1;"
+         offset="1"
+         id="stop5410" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5392">
+      <stop
+         style="stop-color:#bdbdbd;stop-opacity:1;"
+         offset="0"
+         id="stop5394" />
+      <stop
+         id="stop5396"
+         offset="0.33333334"
+         style="stop-color:#e2e2e2;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1;"
+         offset="0.66666669"
+         id="stop5398" />
+      <stop
+         style="stop-color:#dddddd;stop-opacity:1;"
+         offset="1"
+         id="stop5400" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5386">
+      <stop
+         style="stop-color:#50534b;stop-opacity:0.46391752;"
+         offset="0.0000000"
+         id="stop5388" />
+      <stop
+         style="stop-color:#50534b;stop-opacity:0;"
+         offset="1"
+         id="stop5390" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16370"
+       id="radialGradient5384"
+       cx="27.125000"
+       cy="45.625000"
+       fx="27.125000"
+       fy="45.625000"
+       r="22.500000"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.200000,-4.404001e-15,36.50000)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient5376">
+      <stop
+         style="stop-color:#818181;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5378" />
+      <stop
+         id="stop5380"
+         offset="0.50000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#bebebe;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5382" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient5374"
+       gradientUnits="userSpaceOnUse"
+       x1="3.6693072"
+       y1="27.981939"
+       x2="46.098797"
+       y2="27.981939"
+       gradientTransform="translate(54.50145,-4.377128)" />
+    <linearGradient
+       id="linearGradient5368">
+      <stop
+         style="stop-color:#b87202;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5370" />
+      <stop
+         style="stop-color:#8f5902;stop-opacity:0;"
+         offset="1"
+         id="stop5372" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5362">
+      <stop
+         style="stop-color:#505b5f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5364" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5366" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5354">
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5356" />
+      <stop
+         style="stop-color:#555753;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5358" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5360" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5348">
+      <stop
+         style="stop-color:#555753;stop-opacity:1;"
+         offset="0"
+         id="stop5350" />
+      <stop
+         style="stop-color:#555753;stop-opacity:0;"
+         offset="1"
+         id="stop5352" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5340">
+      <stop
+         id="stop5342"
+         offset="0.0000000"
+         style="stop-color:#969993;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5344"
+         offset="0.50000000"
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5346"
+         offset="1.0000000"
+         style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5334">
+      <stop
+         id="stop5336"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop5338"
+         offset="1"
+         style="stop-color:#fcf18f;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5327">
+      <stop
+         id="stop5330"
+         offset="0"
+         style="stop-color:#b59300;stop-opacity:1;" />
+      <stop
+         id="stop5332"
+         offset="1"
+         style="stop-color:#b59300;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5314">
+      <stop
+         id="stop5316"
+         offset="0.0000000"
+         style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5318"
+         offset="1"
+         style="stop-color:#544500;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5307">
+      <stop
+         id="stop5310"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5312"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5301">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop5303" />
+      <stop
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5305" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5295">
+      <stop
+         style="stop-color:#987c00;stop-opacity:1;"
+         offset="0"
+         id="stop5297" />
+      <stop
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5299" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5289">
+      <stop
+         style="stop-color:#edd400;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5291" />
+      <stop
+         style="stop-color:#b8a500;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5293" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5282">
+      <stop
+         style="stop-color:#e9b96e;stop-opacity:1;"
+         offset="0"
+         id="stop5284" />
+      <stop
+         style="stop-color:#b88433;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5287" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5276">
+      <stop
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5278" />
+      <stop
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5280" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient5274"
+       gradientTransform="scale(0.831950,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient5272"
+       gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient5270"
+       gradientTransform="scale(0.827650,1.208240)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="29.502863"
+       x2="24.769884"
+       y1="11.246989"
+       x1="15.750742"
+       gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5268"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5266"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="19.211454"
+       x2="29.475761"
+       y1="13.215685"
+       x1="20.190006"
+       gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5264"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="scale(0.824694,1.212571)"
+       id="linearGradient5262"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       id="linearGradient5260"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       id="linearGradient5258"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="4.8820314"
+       x2="33.964863"
+       y1="35.224327"
+       x1="8.1650734"
+       gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5256"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5254"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.827650,1.208240)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5252"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.482140"
+       x2="15.543560"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5250"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-0.48521933"
+       x2="16.707243"
+       y1="4.4311285"
+       x1="14.394565"
+       gradientTransform="scale(0.838071,1.193216)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5248"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.7806931"
+       x2="34.060062"
+       y1="16.266647"
+       x1="27.062229"
+       gradientTransform="scale(0.800741,1.248844)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5246"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.831950,1.201995)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5244"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.6501136"
+       x2="24.141811"
+       y1="7.2559285"
+       x1="22.480724"
+       gradientTransform="scale(0.826560,1.209833)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5242"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient5240"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+       x1="32.368496"
+       y1="6.0591717"
+       x2="35.239323"
+       y2="-3.6642039" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient5238"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient5236"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+       x1="43.604591"
+       y1="9.6609612"
+       x2="48.134148"
+       y2="1.5751816" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient5234"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+       x1="28.250944"
+       y1="1.5502936"
+       x2="29.906208"
+       y2="-2.3372657" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient5232"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.543560"
+       y2="33.482140" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient5230"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+       x1="41.323280"
+       y1="-3.1978326"
+       x2="38.269123"
+       y2="11.365776" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="11.797005"
+       x2="-23.287144"
+       y1="11.797003"
+       x1="-32.138432"
+       gradientTransform="scale(1.089011,0.918264)"
+       id="linearGradient5228"
+       xlink:href="#linearGradient5229"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4394"
+       id="linearGradient5226"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       x1="24.742752"
+       y1="2.3111212"
+       x2="31.589277"
+       y2="2.4383495" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7625"
+       id="radialGradient5224"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       cx="8.9124269"
+       cy="34.747555"
+       fx="9.0367527"
+       fy="34.482697"
+       r="7.9984083"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient5222"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       x1="33.882736"
+       y1="12.904269"
+       x2="38.881176"
+       y2="6.9174280"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient5220"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="41.377167"
+       y2="5.4044285"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient5218"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       x1="32.457001"
+       y1="16.203007"
+       x2="40.450649"
+       y2="7.7109184"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient5216"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient5214"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5212"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5210"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5208"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5206"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5204"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5202"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5200"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5198"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5196"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5190">
+      <stop
+         id="stop5192"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5194"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5184">
+      <stop
+         id="stop5186"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5188"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5178">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5180" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5182" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5172">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5174" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5176" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5166">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5168" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5170" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5154">
+      <stop
+         id="stop5156"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5158"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5148">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop5150" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5152" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5142">
+      <stop
+         id="stop5144"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5146"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5135">
+      <stop
+         id="stop5138"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5140"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5129">
+      <stop
+         id="stop5131"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5133"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient5123"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop5125" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop5127" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient5117"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop5119" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop5121" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5115"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient5109">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop5111" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop5113" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient5107"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5095">
+      <stop
+         id="stop5097"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop5099"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5089">
+      <stop
+         id="stop5091"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop5093"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5083">
+      <stop
+         id="stop5085"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop5087"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5077">
+      <stop
+         id="stop5079"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop5081"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5071">
+      <stop
+         id="stop5073"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop5075"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5065">
+      <stop
+         id="stop5067"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop5069"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5059">
+      <stop
+         id="stop5061"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop5063"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5553">
+      <stop
+         id="stop5555"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.42574257;" />
+      <stop
+         id="stop5557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       y2="74.088402"
+       x2="87.642403"
+       y1="132.07671"
+       x1="113.09030"
+       gradientUnits="userSpaceOnUse"
+       id="aigrd5">
+      <stop
+         id="stop5286"
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <stop
+         id="stop5288"
+         style="stop-color:#EAEAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="71.817398"
+       x2="102.30080"
+       y1="67.432602"
+       x1="102.30080"
+       gradientUnits="userSpaceOnUse"
+       id="aigrd6">
+      <stop
+         id="stop5309"
+         style="stop-color:#b6b6b6;stop-opacity:1.0000000;"
+         offset="0.0000000" />
+      <stop
+         id="stop5311"
+         style="stop-color:#686868"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="154.19189"
+       fx="102.98730"
+       r="2.3670001"
+       cy="154.19189"
+       cx="102.98730"
+       id="aigrd7">
+      <stop
+         id="stop5320"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop5322"
+         style="stop-color:#848484"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient6278"
+       inkscape:collect="always">
+      <stop
+         id="stop6280"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop6282"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7089">
+      <stop
+         id="stop7091"
+         offset="0"
+         style="stop-color:#3465a4;stop-opacity:1;" />
+      <stop
+         id="stop7093"
+         offset="1"
+         style="stop-color:#9fbce1;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7089"
+       id="linearGradient5498"
+       gradientUnits="userSpaceOnUse"
+       x1="19.8125"
+       y1="28.15625"
+       x2="17.5625"
+       y2="18.65625" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="52.785751"
+     inkscape:cy="15.25585"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1058"
+     inkscape:window-height="904"
+     inkscape:window-x="2277"
+     inkscape:window-y="141"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay">
+    <g
+       style="display:inline"
+       id="g5460"
+       inkscape:label="overlay"
+       transform="matrix(1.555234,0,0,1.555234,2.8415331,-6.7020564e-2)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient5498);stroke-width:1.9289701;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 25.4375,16.50184 L 16.125,16.43934 L 20.5,22.46967 L 16.125,28.676166 L 25.5,28.676166"
+         id="path7085"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path7087"
+         d="M 25.4375,16.546034 L 16.125,16.483534 L 20.5,22.513864 L 16.125,28.676166 L 25.5,28.676166"
+         style="fill:none;fill-rule:evenodd;stroke:#eeeeec;stroke-width:0.64299005px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-base.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-base.svg
@@ -0,0 +1,2127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-base.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6558">
+      <stop
+         style="stop-color:#505050;stop-opacity:1;"
+         offset="0"
+         id="stop6560" />
+      <stop
+         style="stop-color:#505050;stop-opacity:0;"
+         offset="1"
+         id="stop6562" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6536">
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1;"
+         offset="0"
+         id="stop6538" />
+      <stop
+         id="stop6544"
+         offset="0.37837839"
+         style="stop-color:#a6a6a6;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5b5b5b;stop-opacity:1;"
+         offset="1"
+         id="stop6540" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6270">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6272" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6274" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient6156"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient6154"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6152"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6150"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient6148"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient6146"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6144"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6142"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6140"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient6138"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient6136"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6130">
+      <stop
+         id="stop6132"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6134"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6124">
+      <stop
+         id="stop6126"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6128"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6118">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop6120" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop6122" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6112">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop6114" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop6116" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6105">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop6107" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop6109" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6093">
+      <stop
+         id="stop6095"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6097"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6087">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop6089" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6091" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6081">
+      <stop
+         id="stop6083"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6085"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6075">
+      <stop
+         id="stop6077"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6079"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6069">
+      <stop
+         id="stop6071"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop6073"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient6063"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6065" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6067" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient6057"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop6059" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop6061" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6055"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient6049">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop6051" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6053" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient6047"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6035">
+      <stop
+         id="stop6037"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop6039"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6029">
+      <stop
+         id="stop6031"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop6033"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6023">
+      <stop
+         id="stop6025"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop6027"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6017">
+      <stop
+         id="stop6019"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop6021"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6011">
+      <stop
+         id="stop6013"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6015"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient6005">
+      <stop
+         id="stop6007"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop6009"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5999">
+      <stop
+         id="stop6001"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop6003"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6666"
+       inkscape:collect="always">
+      <stop
+         id="stop6668"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop6670"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6666"
+       id="linearGradient6250"
+       gradientUnits="userSpaceOnUse"
+       x1="24.199377"
+       y1="13.916924"
+       x2="24.704542"
+       y2="19.617973"
+       gradientTransform="matrix(1.5035201,0,0,1.5811335,-0.5534163,-1.7295125)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient6257"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6259"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6261"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.969875"
+       y1="37.641735"
+       x2="21.969875"
+       y2="36.731647" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient6263"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2883795,0,0,0.7209906,1.0854929,1.2432623)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.7939111" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient6265"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208590" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6270"
+       id="linearGradient6276"
+       x1="32.718681"
+       y1="41.53125"
+       x2="33.563641"
+       y2="26.90625"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6536"
+       id="linearGradient6542"
+       x1="22.875001"
+       y1="33.031538"
+       x2="45.897014"
+       y2="33.031538"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6558"
+       id="radialGradient5889"
+       cx="30.889133"
+       cy="30.218632"
+       fx="30.889133"
+       fy="30.218632"
+       r="6.7529383"
+       gradientTransform="matrix(0.8022792,0,0,0.4189953,6.1074247,14.703604)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="radialGradient5891"
+       cx="30.471884"
+       cy="30.293295"
+       fx="30.471884"
+       fy="30.293295"
+       r="6.7529383"
+       gradientTransform="matrix(0.9505899,0,0,0.4964515,1.5056195,12.364911)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="radialGradient5903"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9505899,0,0,0.4964515,1.5056195,12.364911)"
+       cx="30.471884"
+       cy="30.293295"
+       fx="30.471884"
+       fy="30.293295"
+       r="6.7529383" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6558"
+       id="radialGradient5905"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8022792,0,0,0.4189953,6.1074247,14.703604)"
+       cx="30.889133"
+       cy="30.218632"
+       fx="30.889133"
+       fy="30.218632"
+       r="6.7529383" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="40.267619"
+     inkscape:cy="12.975406"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1058"
+     inkscape:window-height="904"
+     inkscape:window-x="2277"
+     inkscape:window-y="141"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay">
+    <path
+       transform="matrix(1.4596107,0,0,1.5005914,-9.590714,-11.162815)"
+       d="M 39.067649 34.344002 A 9.0819025 5.0823302 0 1 1  20.903844,34.344002 A 9.0819025 5.0823302 0 1 1  39.067649 34.344002 z"
+       sodipodi:ry="5.0823302"
+       sodipodi:rx="9.0819025"
+       sodipodi:cy="34.344002"
+       sodipodi:cx="29.985746"
+       id="path3551"
+       style="color:#000000;fill:url(#radialGradient6263);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.28792489;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="csscssc"
+       id="path3516"
+       d="M 34.386051,20.531538 C 28.308004,20.531538 23.34956,23.28041 23.375099,26.657035 L 23.473408,39.655038 C 23.498018,42.909196 28.467589,45.531538 34.386051,45.531538 C 40.304524,45.531538 45.327079,42.949409 45.298706,39.655038 C 45.298706,39.655038 45.397014,26.745692 45.397014,26.657035 C 45.397014,23.280309 40.464108,20.531538 34.386051,20.531538 z "
+       style="color:#000000;fill:url(#linearGradient6542);fill-opacity:1.0;fill-rule:evenodd;stroke:#505050;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       transform="matrix(1.399634,0,0,1.4726873,-8.1494861,-9.9248402)"
+       d="M 36.902136 24.245632 A 6.4302521 3.2040777 0 1 1  24.041632,24.245632 A 6.4302521 3.2040777 0 1 1  36.902136 24.245632 z"
+       sodipodi:ry="3.2040777"
+       sodipodi:rx="6.4302521"
+       sodipodi:cy="24.245632"
+       sodipodi:cx="30.471884"
+       id="path3523"
+       style="color:#000000;fill:url(#linearGradient6257);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6259);stroke-width:0.69652635;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path6664"
+       d="M 28.882527,30 L 42.304786,23.152063 C 33.218853,17.207344 17.73799,25.148241 28.882527,30 z "
+       style="opacity:0.24571431;fill:url(#linearGradient6250);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6276);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;opacity:0.38857143"
+       d="M 34.375,21.5 C 31.482732,21.5 28.871995,22.180675 27.0625,23.1875 C 25.253005,24.194325 24.334592,25.445432 24.34375,26.65625 L 24.4375,39.65625 C 24.446077,40.79035 25.352212,42.002942 27.15625,42.96875 C 28.960288,43.934558 31.559488,44.5625 34.375,44.5625 C 37.192723,44.562501 39.807511,43.930158 41.625,42.96875 C 43.442489,42.007342 44.353635,40.804048 44.34375,39.65625 C 44.34375,39.65625 44.351563,36.426402 44.375,33.1875 C 44.386719,31.568049 44.397461,29.941624 44.40625,28.71875 C 44.410644,28.107313 44.434937,27.580218 44.4375,27.21875 C 44.440063,26.857282 44.4375,26.581533 44.4375,26.65625 C 44.4375,25.443958 43.502333,24.194949 41.6875,23.1875 C 39.872667,22.180051 37.267279,21.5 34.375,21.5 z "
+       id="path6267" />
+    <g
+       id="g5893">
+      <path
+         transform="matrix(1.4979069,0,0,1.6028538,-11.316521,-8.495358)"
+         d="M 36.902136 24.245632 A 6.4302521 3.2040777 0 1 1  24.041632,24.245632 A 6.4302521 3.2040777 0 1 1  36.902136 24.245632 z"
+         sodipodi:ry="3.2040777"
+         sodipodi:rx="6.4302521"
+         sodipodi:cy="24.245632"
+         sodipodi:cx="30.471884"
+         id="path6532"
+         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient5891);stroke-width:0.64537275;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient5889);stroke-width:0.64537275;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="path6546"
+         sodipodi:cx="30.471884"
+         sodipodi:cy="24.245632"
+         sodipodi:rx="6.4302521"
+         sodipodi:ry="3.2040777"
+         d="M 36.902136 24.245632 A 6.4302521 3.2040777 0 1 1  24.041632,24.245632 A 6.4302521 3.2040777 0 1 1  36.902136 24.245632 z"
+         transform="matrix(1.4979069,0,0,1.6028538,-11.316521,-9.495358)" />
+    </g>
+    <g
+       id="g5897"
+       transform="translate(0,5)">
+      <path
+         sodipodi:type="arc"
+         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient5903);stroke-width:0.64537275;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="path5899"
+         sodipodi:cx="30.471884"
+         sodipodi:cy="24.245632"
+         sodipodi:rx="6.4302521"
+         sodipodi:ry="3.2040777"
+         d="M 36.902136 24.245632 A 6.4302521 3.2040777 0 1 1  24.041632,24.245632 A 6.4302521 3.2040777 0 1 1  36.902136 24.245632 z"
+         transform="matrix(1.4979069,0,0,1.6028538,-11.316521,-8.495358)" />
+      <path
+         transform="matrix(1.4979069,0,0,1.6028538,-11.316521,-9.495358)"
+         d="M 36.902136 24.245632 A 6.4302521 3.2040777 0 1 1  24.041632,24.245632 A 6.4302521 3.2040777 0 1 1  36.902136 24.245632 z"
+         sodipodi:ry="3.2040777"
+         sodipodi:rx="6.4302521"
+         sodipodi:cy="24.245632"
+         sodipodi:cx="30.471884"
+         id="path5901"
+         style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient5905);stroke-width:0.64537275;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/ooo-template.svg
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/ooo-template.svg
@@ -0,0 +1,2410 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48"
+   height="48"
+   id="svg1363"
+   sodipodi:version="0.32"
+   inkscape:version="0.44"
+   sodipodi:docbase="/home/jimmac/gfx/ximian/art/icons/ooo/app/scalable"
+   sodipodi:docname="ooo-template.svg"
+   version="1.0"
+   inkscape:export-filename="/home/jimmac/public_html/hideout/wipicons/Tango-OOo/32x32/ooo-writer.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8714">
+      <stop
+         style="stop-color:#2e3436;stop-opacity:1;"
+         offset="0"
+         id="stop8716" />
+      <stop
+         style="stop-color:#2e3436;stop-opacity:0;"
+         offset="1"
+         id="stop8718" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6898">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6900" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6902" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6898"
+       id="linearGradient6904"
+       x1="36.125"
+       y1="12"
+       x2="24.625"
+       y2="20.25"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.576703,0,0,0.576703,18.91747,19.88256)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8327"
+       id="linearGradient8383"
+       gradientUnits="userSpaceOnUse"
+       x1="10.5"
+       y1="-6.7828204"
+       x2="32.25"
+       y2="-6.7828204"
+       gradientTransform="translate(42.79792,-7.781593)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8327"
+       id="linearGradient8371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(42.79792,-27.78159)"
+       x1="10.5"
+       y1="-6.7828204"
+       x2="32.25"
+       y2="-6.7828204" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8327"
+       id="linearGradient8363"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(42.79792,-21.78159)"
+       x1="10.5"
+       y1="-6.7828204"
+       x2="32.25"
+       y2="-6.7828204" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8327"
+       id="linearGradient8355"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(42.79792,-13.78159)"
+       x1="10.5"
+       y1="-6.7828204"
+       x2="32.25"
+       y2="-6.7828204" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8327"
+       id="linearGradient8347"
+       gradientUnits="userSpaceOnUse"
+       x1="10.5"
+       y1="-6.7828204"
+       x2="32.25"
+       y2="-6.7828204"
+       gradientTransform="translate(42.79792,-7.781593)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8327">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop8329" />
+      <stop
+         style="stop-color:#3465a4;stop-opacity:0;"
+         offset="1"
+         id="stop8331" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8327"
+       id="linearGradient8333"
+       x1="10.5"
+       y1="-6.7828204"
+       x2="32.25"
+       y2="-6.7828204"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(42.79792,-51.78159)" />
+    <linearGradient
+       id="linearGradient6214">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop6216" />
+      <stop
+         style="stop-color:#204a87;stop-opacity:1"
+         offset="1"
+         id="stop6218" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6186">
+      <stop
+         style="stop-color:#888a85;stop-opacity:1;"
+         offset="0"
+         id="stop6188" />
+      <stop
+         style="stop-color:#b5b6b3;stop-opacity:1;"
+         offset="1"
+         id="stop6190" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6152">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop6154" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop6156" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6142">
+      <stop
+         style="stop-color:#eeeeec;stop-opacity:1;"
+         offset="0"
+         id="stop6144" />
+      <stop
+         style="stop-color:#dadad6;stop-opacity:1;"
+         offset="1"
+         id="stop6146" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5845">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5847" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5849" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5835">
+      <stop
+         style="stop-color:#3465a4;stop-opacity:1;"
+         offset="0"
+         id="stop5837" />
+      <stop
+         style="stop-color:#4e83c7;stop-opacity:1"
+         offset="1"
+         id="stop5839" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5819">
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0"
+         offset="0"
+         id="stop5821" />
+      <stop
+         style="stop-color:#729fcf;stop-opacity:0.65490198"
+         offset="1"
+         id="stop5823" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5752">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop5754" />
+      <stop
+         style="stop-color:#d2e4f6;stop-opacity:1;"
+         offset="1"
+         id="stop5756" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6262">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop6264" />
+      <stop
+         style="stop-color:#f68383;stop-opacity:1;"
+         offset="1"
+         id="stop6266" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd13"
+       gradientUnits="userSpaceOnUse"
+       x1="97.241203"
+       y1="82.093803"
+       x2="118.302"
+       y2="99.298401">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12995" />
+      <stop
+         offset="1"
+         style="stop-color:#949941"
+         id="stop12997" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd12"
+       gradientUnits="userSpaceOnUse"
+       x1="90.8311"
+       y1="89.110397"
+       x2="115.5175"
+       y2="100.6528">
+      <stop
+         offset="0"
+         style="stop-color:#E8F066"
+         id="stop12988" />
+      <stop
+         offset="1"
+         style="stop-color:#777A34"
+         id="stop12990" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd11"
+       gradientUnits="userSpaceOnUse"
+       x1="105.0923"
+       y1="75.109901"
+       x2="124.8197"
+       y2="92.612297">
+      <stop
+         offset="0"
+         style="stop-color:#3FA6CC"
+         id="stop12981" />
+      <stop
+         offset="1"
+         style="stop-color:#00687A"
+         id="stop12983" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd10"
+       gradientUnits="userSpaceOnUse"
+       x1="107.8672"
+       y1="84.757797"
+       x2="126.1107"
+       y2="94.800003">
+      <stop
+         offset="0"
+         style="stop-color:#2C7894"
+         id="stop12974" />
+      <stop
+         offset="1"
+         style="stop-color:#0E3D47"
+         id="stop12976" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd9"
+       gradientUnits="userSpaceOnUse"
+       x1="105.8184"
+       y1="78.107903"
+       x2="118.2002"
+       y2="95.899902">
+      <stop
+         offset="0"
+         style="stop-color:#C1553A"
+         id="stop12967" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12969" />
+    </linearGradient>
+    <linearGradient
+       id="aigrd8"
+       gradientUnits="userSpaceOnUse"
+       x1="106.0254"
+       y1="81.1763"
+       x2="118.3481"
+       y2="98.883202">
+      <stop
+         offset="0"
+         style="stop-color:#C09287"
+         id="stop12960" />
+      <stop
+         offset="1"
+         style="stop-color:#803926"
+         id="stop12962" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6111">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6113" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6115" />
+    </linearGradient>
+    <radialGradient
+       r="6.0650511"
+       fy="27.674625"
+       fx="8.4927521"
+       cy="27.674625"
+       cx="8.4927521"
+       gradientTransform="matrix(2.8170943,0,0,0.7859187,-4.8851814,-7.5794544)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient10293"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient10283">
+      <stop
+         id="stop10285"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.23762377;" />
+      <stop
+         id="stop10287"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="4.4013872"
+       fy="33.367069"
+       fx="6.563961"
+       cy="33.367069"
+       cx="6.563961"
+       gradientTransform="matrix(2.8170966,0,0,0.7859187,-4.6879248,-7.3494692)"
+       id="radialGradient10289"
+       xlink:href="#linearGradient10283"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="64.567902"
+       fx="20.892099"
+       r="5.257"
+       cy="64.567902"
+       cx="20.892099"
+       id="aigrd3">
+      <stop
+         id="stop15573"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15575"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       fy="114.5684"
+       fx="20.892099"
+       r="5.256"
+       cy="114.5684"
+       cx="20.892099"
+       id="aigrd2">
+      <stop
+         id="stop15566"
+         style="stop-color:#F0F0F0"
+         offset="0" />
+      <stop
+         id="stop15568"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         offset="1.0000000" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient15662">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15664" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15666" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient269">
+      <stop
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop270" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop271" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient259">
+      <stop
+         style="stop-color:#fafafa;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop260" />
+      <stop
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop261" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2300">
+      <stop
+         id="stop2302"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:0.89320385;" />
+      <stop
+         id="stop2304"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2281">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2283" />
+      <stop
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2285" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3553"
+       inkscape:collect="always">
+      <stop
+         id="stop3555"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop3557"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3543">
+      <stop
+         id="stop3545"
+         offset="0.0000000"
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;" />
+      <stop
+         id="stop3547"
+         offset="1.0000000"
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3525">
+      <stop
+         id="stop3527"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.64356434;" />
+      <stop
+         id="stop3529"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3506">
+      <stop
+         id="stop3508"
+         offset="0.0000000"
+         style="stop-color:#000000;stop-opacity:0.0000000;" />
+      <stop
+         id="stop3510"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:0.059405942;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3128">
+      <stop
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3130" />
+      <stop
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3132" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3120">
+      <stop
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop3122" />
+      <stop
+         style="stop-color:#59595e;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop3124" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3128"
+       id="radialGradient3134"
+       cx="27.930717"
+       cy="28.352533"
+       fx="27.930717"
+       fy="28.352533"
+       r="21.556604"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="19.779264"
+       fy="30.129919"
+       fx="29.876308"
+       cy="29.830246"
+       cx="29.87632"
+       gradientTransform="scale(1.014321,0.985882)"
+       id="radialGradient3514"
+       xlink:href="#linearGradient3506"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.666641"
+       x2="21.939615"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       id="linearGradient3533"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3537"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3541"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="35.935814"
+       x2="26.853251"
+       y1="29.612534"
+       x1="19.257353"
+       gradientTransform="scale(1.355874,0.737532)"
+       id="linearGradient3549"
+       xlink:href="#linearGradient3543"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="6.793911"
+       fy="45.910061"
+       fx="22.431479"
+       cy="45.910061"
+       cx="22.431479"
+       gradientTransform="scale(1.336771,0.748071)"
+       id="radialGradient3559"
+       xlink:href="#linearGradient3553"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2212"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient2214"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient6117"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2300"
+       id="linearGradient6286"
+       x1="10.240788"
+       y1="-0.025390867"
+       x2="13.990788"
+       y2="26.097536"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7058177,0,0,1.6600306,-1.8572328,-2.5965138)" />
+    <linearGradient
+       gradientTransform="matrix(1.1821242,0,0,1.1821242,-4.2874436,-8.3517883)"
+       gradientUnits="userSpaceOnUse"
+       y2="42.282146"
+       x2="7.7521091"
+       y1="37.752247"
+       x1="13.236155"
+       id="linearGradient2452"
+       xlink:href="#linearGradient2446"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.3708423,-2.9677427e-2,-2.8921569e-2,1.4390946,-6.9193367,-16.211744)"
+       r="7.5791559"
+       fy="35.356506"
+       fx="15.415101"
+       cy="35.356506"
+       cx="15.415101"
+       id="radialGradient6969"
+       xlink:href="#linearGradient6963"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.20533"
+       x2="37.092148"
+       y1="18.867767"
+       x1="28.058632"
+       id="linearGradient6957"
+       xlink:href="#linearGradient6951"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.438831"
+       x2="23.109331"
+       y1="30.001331"
+       x1="19.394735"
+       id="linearGradient6945"
+       xlink:href="#linearGradient6939"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="7.7109184"
+       x2="40.450649"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941457,-2.95352e-2,3.328987e-2,1.06114,79.80319,0.143748)"
+       id="linearGradient10685"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="5.4044285"
+       x2="41.377167"
+       y1="16.203007"
+       x1="32.457001"
+       gradientTransform="matrix(0.941237,3.585626e-2,-4.041451e-2,1.060892,81.28701,-1.039388)"
+       id="linearGradient10683"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.917428"
+       x2="38.881176"
+       y1="12.904269"
+       x1="33.882736"
+       gradientTransform="matrix(1.013347,0,0,0.986829,80.25661,0)"
+       id="linearGradient8397"
+       xlink:href="#linearGradient11924"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       r="7.9984083"
+       fy="34.482697"
+       fx="9.0367527"
+       cy="34.747555"
+       cx="8.9124269"
+       gradientTransform="matrix(1.13028,0,0,0.884737,81.15896,-0.427463)"
+       id="radialGradient7631"
+       xlink:href="#linearGradient7625"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="2.4383495"
+       x2="31.589277"
+       y1="2.3111212"
+       x1="24.742752"
+       gradientTransform="matrix(0.821255,0.715182,-0.603048,0.69249,80.25661,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3805"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5229"
+       id="linearGradient5235"
+       gradientTransform="scale(1.089011,0.918264)"
+       x1="-32.138432"
+       y1="11.797003"
+       x2="-23.287144"
+       y2="11.797005"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       y2="11.365776"
+       x2="38.269123"
+       y1="-3.1978326"
+       x1="41.32328"
+       gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4312"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.203798,0.242964,-0.278497,1.37985,9.248965,-14.06247)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4309"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-2.3372657"
+       x2="29.906208"
+       y1="1.5502936"
+       x1="28.250944"
+       gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4306"
+       xlink:href="#linearGradient11940"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="1.5751816"
+       x2="48.134148"
+       y1="9.6609612"
+       x1="43.604591"
+       gradientTransform="matrix(0.784913,0.15842,-0.247074,1.224159,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4303"
+       xlink:href="#linearGradient11932"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.19769)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4300"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-3.6642039"
+       x2="35.239323"
+       y1="6.0591717"
+       x1="32.368496"
+       gradientTransform="matrix(0.810222,0.163528,-0.239356,1.18592,0,0)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4295"
+       xlink:href="#linearGradient11916"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient1959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient1957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.83195,1.201995)"
+       x1="23.411154"
+       y1="0.82209921"
+       x2="21.684671"
+       y2="6.4114828" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient1955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient1953"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient1951"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient1949"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82765,1.20824)"
+       x1="31.654196"
+       y1="3.4796145"
+       x2="28.394352"
+       y2="12.564109" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11916"
+       id="linearGradient13472"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(0.82656,1.209833)"
+       x1="22.480724"
+       y1="7.2559285"
+       x2="24.141811"
+       y2="2.6501136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient13466"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.824694,0,0,1.212571,17.09202,-2.523485)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11940"
+       id="linearGradient11946"
+       gradientTransform="scale(0.838071,1.193216)"
+       x1="14.394565"
+       y1="4.4311285"
+       x2="16.707243"
+       y2="-0.48521933"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11932"
+       id="linearGradient11938"
+       gradientTransform="scale(0.800741,1.248844)"
+       x1="27.062229"
+       y1="16.266647"
+       x2="34.060062"
+       y2="2.7806931"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11924"
+       id="linearGradient11930"
+       gradientTransform="scale(0.824694,1.212571)"
+       x1="8.1650734"
+       y1="35.224327"
+       x2="33.964863"
+       y2="4.8820314"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient19108"
+       id="linearGradient11156"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.82765,0,0,1.20824,100.1096,-33.10918)"
+       x1="20.190006"
+       y1="13.215685"
+       x2="29.475761"
+       y2="19.211454" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient18320"
+       id="linearGradient11154"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.93403,0,0,1.07063,100.1096,-33.10918)"
+       x1="11.711685"
+       y1="31.134253"
+       x2="15.54356"
+       y2="33.48214" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient14520"
+       id="linearGradient11152"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.83195,0,0,1.201995,100.1096,-33.10918)"
+       x1="15.750742"
+       y1="11.246989"
+       x2="24.769884"
+       y2="29.502863" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="12.564109"
+       x2="28.394352"
+       y1="3.4796145"
+       x1="31.654196"
+       gradientTransform="scale(0.82765,1.20824)"
+       id="linearGradient19114"
+       xlink:href="#linearGradient19108"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="33.48214"
+       x2="15.54356"
+       y1="31.134253"
+       x1="11.711685"
+       gradientTransform="matrix(1.228073,0,0,1.407676,-1.888866,-14.16649)"
+       id="linearGradient18326"
+       xlink:href="#linearGradient18320"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="6.4114828"
+       x2="21.684671"
+       y1="0.82209921"
+       x1="23.411154"
+       gradientTransform="scale(0.83195,1.201995)"
+       id="linearGradient14526"
+       xlink:href="#linearGradient14520"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient14520">
+      <stop
+         id="stop14522"
+         offset="0.0000000"
+         style="stop-color:#fcfae2;stop-opacity:0.0000000;" />
+      <stop
+         id="stop14524"
+         offset="1.0000000"
+         style="stop-color:#b8ab27;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18320">
+      <stop
+         id="stop18322"
+         offset="0"
+         style="stop-color:#e9b96e;stop-opacity:1;" />
+      <stop
+         id="stop18324"
+         offset="1.0000000"
+         style="stop-color:#b88433;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19108">
+      <stop
+         id="stop19110"
+         offset="0.0000000"
+         style="stop-color:#edd400;stop-opacity:0.0000000;" />
+      <stop
+         id="stop19112"
+         offset="1.0000000"
+         style="stop-color:#b8a500;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19116">
+      <stop
+         id="stop19118"
+         offset="0"
+         style="stop-color:#987c00;stop-opacity:1;" />
+      <stop
+         id="stop19120"
+         offset="1.0000000"
+         style="stop-color:#5f4d00;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient19124">
+      <stop
+         id="stop19126"
+         offset="0"
+         style="stop-color:#fcf18f;stop-opacity:1;" />
+      <stop
+         id="stop19128"
+         offset="1.0000000"
+         style="stop-color:#fcf8ce;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11124">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11126" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop11128" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11916">
+      <stop
+         style="stop-color:#8b7200;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11918" />
+      <stop
+         style="stop-color:#544500;stop-opacity:0;"
+         offset="1"
+         id="stop11920" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11924">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11926" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11928" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11932">
+      <stop
+         style="stop-color:#b59300;stop-opacity:1;"
+         offset="0"
+         id="stop11934" />
+      <stop
+         style="stop-color:#b59300;stop-opacity:0;"
+         offset="1"
+         id="stop11936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11940">
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:1;"
+         offset="0"
+         id="stop11942" />
+      <stop
+         style="stop-color:#fcf18f;stop-opacity:0;"
+         offset="1"
+         id="stop11944" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5229">
+      <stop
+         style="stop-color:#969993;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5231" />
+      <stop
+         style="stop-color:#d4d8d0;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5237" />
+      <stop
+         style="stop-color:#abaea7;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5233" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5325">
+      <stop
+         id="stop5327"
+         offset="0"
+         style="stop-color:#555753;stop-opacity:1;" />
+      <stop
+         id="stop5329"
+         offset="1"
+         style="stop-color:#555753;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         id="stop5335"
+         offset="0.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+      <stop
+         id="stop5341"
+         offset="0.50000000"
+         style="stop-color:#555753;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5337"
+         offset="1.0000000"
+         style="stop-color:#555753;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7625">
+      <stop
+         id="stop7627"
+         offset="0.0000000"
+         style="stop-color:#505b5f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7629"
+         offset="1.0000000"
+         style="stop-color:#2e3436;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8391">
+      <stop
+         id="stop8393"
+         offset="0.0000000"
+         style="stop-color:#b87202;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8395"
+         offset="1"
+         style="stop-color:#8f5902;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(54.50145,-4.377128)"
+       y2="27.981939"
+       x2="46.098797"
+       y1="27.981939"
+       x1="3.6693072"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5147"
+       xlink:href="#linearGradient4394"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4394">
+      <stop
+         id="stop5137"
+         offset="0.0000000"
+         style="stop-color:#818181;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop5139" />
+      <stop
+         id="stop4398"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.2,0,36.5)"
+       r="22.5"
+       fy="45.625"
+       fx="27.125"
+       cy="45.625"
+       cx="27.125"
+       id="radialGradient16376"
+       xlink:href="#linearGradient16370"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient16370">
+      <stop
+         id="stop16372"
+         offset="0.0000000"
+         style="stop-color:#50534b;stop-opacity:0.46391752;" />
+      <stop
+         id="stop16374"
+         offset="1"
+         style="stop-color:#50534b;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6939">
+      <stop
+         id="stop6941"
+         offset="0"
+         style="stop-color:#bdbdbd;stop-opacity:1;" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1;"
+         offset="0.33333334"
+         id="stop6947" />
+      <stop
+         id="stop6949"
+         offset="0.66666669"
+         style="stop-color:#a3a3a3;stop-opacity:1;" />
+      <stop
+         id="stop6943"
+         offset="1"
+         style="stop-color:#dddddd;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6951">
+      <stop
+         id="stop6953"
+         offset="0"
+         style="stop-color:#6e3d09;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ea8113;stop-opacity:1;"
+         offset="0.24242425"
+         id="stop6959" />
+      <stop
+         id="stop6961"
+         offset="0.62121212"
+         style="stop-color:#5c3307;stop-opacity:1;" />
+      <stop
+         id="stop6955"
+         offset="1"
+         style="stop-color:#e07c12;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6963">
+      <stop
+         id="stop6965"
+         offset="0"
+         style="stop-color:#696969;stop-opacity:1;" />
+      <stop
+         id="stop6967"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2446"
+       inkscape:collect="always">
+      <stop
+         id="stop2448"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop2450"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6111"
+       id="radialGradient7073"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       cx="16.25"
+       cy="26.90625"
+       fx="16.25"
+       fy="26.90625"
+       r="12.3125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5752"
+       id="linearGradient5758"
+       x1="23.486046"
+       y1="33.876995"
+       x2="24.031414"
+       y2="8.6258535"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5819"
+       id="radialGradient5825"
+       cx="46.49469"
+       cy="47.505424"
+       fx="46.49469"
+       fy="47.505424"
+       r="20.5"
+       gradientTransform="matrix(1.4285144,0,-1.6397804e-8,1.1140353,-41.918337,-21.922718)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5835"
+       id="linearGradient5841"
+       x1="23.486046"
+       y1="40.26894"
+       x2="23.486046"
+       y2="5.8755589"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5845"
+       id="radialGradient5851"
+       cx="24.837126"
+       cy="36.067574"
+       fx="24.837126"
+       fy="36.067574"
+       r="9.1040001"
+       gradientTransform="matrix(1,0,0,0.4563107,0,19.609554)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.097536"
+       x2="13.990788"
+       y1="-0.025390867"
+       x1="10.240788"
+       id="linearGradient5078"
+       xlink:href="#linearGradient2300"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1903553,0,21.784502)"
+       r="12.3125"
+       fy="26.90625"
+       fx="16.25"
+       cy="26.90625"
+       cx="16.25"
+       id="radialGradient5076"
+       xlink:href="#linearGradient6111"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="35.208591"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5074"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="34.530132"
+       x2="21.834034"
+       y1="37.631317"
+       x1="21.904423"
+       gradientTransform="scale(1.395614,0.716531)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient5072"
+       xlink:href="#linearGradient3525"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3553"
+       id="radialGradient5070"
+       gradientTransform="scale(1.336771,0.748071)"
+       cx="22.431479"
+       cy="45.910061"
+       fx="22.431479"
+       fy="45.910061"
+       r="6.793911"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3543"
+       id="linearGradient5068"
+       gradientTransform="scale(1.355874,0.737532)"
+       x1="19.257353"
+       y1="29.612534"
+       x2="26.853251"
+       y2="35.935814"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5066"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="35.208591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5064"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.834034"
+       y2="34.530132" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3525"
+       id="linearGradient5062"
+       gradientTransform="scale(1.395614,0.716531)"
+       x1="21.904423"
+       y1="37.631317"
+       x2="21.939615"
+       y2="33.666641"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3506"
+       id="radialGradient5060"
+       gradientTransform="scale(1.014321,0.985882)"
+       cx="29.87632"
+       cy="29.830246"
+       fx="29.876308"
+       fy="30.129919"
+       r="19.779264"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       gradientTransform="matrix(1.281156,9.741127e-4,-9.59875e-4,1.262427,-7.825672,-7.467677)"
+       gradientUnits="userSpaceOnUse"
+       r="21.556604"
+       fy="28.352533"
+       fx="27.930717"
+       cy="28.352533"
+       cx="27.930717"
+       id="radialGradient5058"
+       xlink:href="#linearGradient3128"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5052">
+      <stop
+         id="stop5054"
+         offset="0.0000000"
+         style="stop-color:#a5a5ae;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5056"
+         offset="1.0000000"
+         style="stop-color:#59595e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5046">
+      <stop
+         id="stop5048"
+         offset="0.0000000"
+         style="stop-color:#e7e7f3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5050"
+         offset="1.0000000"
+         style="stop-color:#dcdce6;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5040">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop5042" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.059405942;"
+         offset="1.0000000"
+         id="stop5044" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5034">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.64356434;"
+         offset="0.0000000"
+         id="stop5036" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop5038" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5028">
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop5030" />
+      <stop
+         style="stop-color:#6b6b6b;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop5032" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5016">
+      <stop
+         id="stop5018"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5020"
+         offset="1.0000000"
+         style="stop-color:#e4e4f0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5010">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89320385;"
+         offset="0"
+         id="stop5012" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop5014" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5004">
+      <stop
+         id="stop5006"
+         offset="0.0000000"
+         style="stop-color:#fafafa;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5008"
+         offset="1.0000000"
+         style="stop-color:#bbbbbb;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4998">
+      <stop
+         id="stop5000"
+         offset="0.0000000"
+         style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
+      <stop
+         id="stop5002"
+         offset="1.0000000"
+         style="stop-color:#4c4c4c;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4992">
+      <stop
+         id="stop4994"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4996"
+         offset="1.0000000"
+         style="stop-color:#f8f8f8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient4986"
+       cx="20.892099"
+       cy="114.5684"
+       r="5.256"
+       fx="20.892099"
+       fy="114.5684"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop4988" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop4990" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient4980"
+       cx="20.892099"
+       cy="64.567902"
+       r="5.257"
+       fx="20.892099"
+       fy="64.567902"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         offset="0"
+         style="stop-color:#F0F0F0"
+         id="stop4982" />
+      <stop
+         offset="1.0000000"
+         style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+         id="stop4984" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient4978"
+       gradientTransform="matrix(1.7485736,0,0,0.4877319,-2.2960831,-3.5903883)"
+       cx="6.563961"
+       cy="33.367069"
+       fx="6.563961"
+       fy="33.367069"
+       r="4.4013872"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4972">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.23762377;"
+         offset="0.0000000"
+         id="stop4974" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4976" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10283"
+       id="radialGradient4970"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7485722,0,0,0.4877319,-2.4185204,-3.7331144)"
+       cx="8.4927521"
+       cy="27.674625"
+       fx="8.4927521"
+       fy="27.674625"
+       r="6.0650511" />
+    <linearGradient
+       y2="98.883202"
+       x2="118.3481"
+       y1="81.1763"
+       x1="106.0254"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4958">
+      <stop
+         id="stop4960"
+         style="stop-color:#C09287"
+         offset="0" />
+      <stop
+         id="stop4962"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="95.899902"
+       x2="118.2002"
+       y1="78.107903"
+       x1="105.8184"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4952">
+      <stop
+         id="stop4954"
+         style="stop-color:#C1553A"
+         offset="0" />
+      <stop
+         id="stop4956"
+         style="stop-color:#803926"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="94.800003"
+       x2="126.1107"
+       y1="84.757797"
+       x1="107.8672"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4946">
+      <stop
+         id="stop4948"
+         style="stop-color:#2C7894"
+         offset="0" />
+      <stop
+         id="stop4950"
+         style="stop-color:#0E3D47"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="92.612297"
+       x2="124.8197"
+       y1="75.109901"
+       x1="105.0923"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4940">
+      <stop
+         id="stop4942"
+         style="stop-color:#3FA6CC"
+         offset="0" />
+      <stop
+         id="stop4944"
+         style="stop-color:#00687A"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="100.6528"
+       x2="115.5175"
+       y1="89.110397"
+       x1="90.8311"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4934">
+      <stop
+         id="stop4936"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop4938"
+         style="stop-color:#777A34"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       y2="99.298401"
+       x2="118.302"
+       y1="82.093803"
+       x1="97.241203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient4928">
+      <stop
+         id="stop4930"
+         style="stop-color:#E8F066"
+         offset="0" />
+      <stop
+         id="stop4932"
+         style="stop-color:#949941"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4922">
+      <stop
+         id="stop4924"
+         offset="0"
+         style="stop-color:#ef2929;stop-opacity:1;" />
+      <stop
+         id="stop4926"
+         offset="1"
+         style="stop-color:#f68383;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6142"
+       id="linearGradient6148"
+       x1="30.16466"
+       y1="23.04245"
+       x2="36.69149"
+       y2="46.000004"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6152"
+       id="linearGradient6158"
+       x1="21"
+       y1="32.500001"
+       x2="33.658562"
+       y2="63.082367"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6186"
+       id="linearGradient6192"
+       x1="26.540737"
+       y1="32.5"
+       x2="29.26687"
+       y2="19"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8714"
+       id="linearGradient8720"
+       x1="22.218157"
+       y1="32.81306"
+       x2="28.247883"
+       y2="35.063061"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.23529412"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="35.189413"
+     inkscape:cy="25.222761"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="695"
+     inkscape:window-x="2340"
+     inkscape:window-y="322"
+     width="48px"
+     height="48px"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>OpenOffice.org Writer</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>word</rdf:li>
+            <rdf:li>editor</rdf:li>
+            <rdf:li>text</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="display:inline"
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;color:#000000;fill:url(#radialGradient6117);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path6109"
+       sodipodi:cx="16.25"
+       sodipodi:cy="26.90625"
+       sodipodi:rx="12.3125"
+       sodipodi:ry="2.34375"
+       d="M 28.5625 26.90625 A 12.3125 2.34375 0 1 1  3.9375,26.90625 A 12.3125 2.34375 0 1 1  28.5625 26.90625 z"
+       transform="matrix(1.4751355,0,0,2.903201,0.4703952,-37.585718)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#radialGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5841);stroke-width:0.99145538;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2360"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(1.0215695,0,0,0.9958312,0.5073718,0.4280284)" />
+    <g
+       id="g5798"
+       style="fill-opacity:1.0;fill:url(#radialGradient5825);opacity:0.62857143">
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="40"
+         x="15.0625"
+         height="1"
+         width="17.9375"
+         id="rect5760"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5762"
+         width="25.0625"
+         height="1"
+         x="11.5"
+         y="38"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="36"
+         x="10"
+         height="1"
+         width="29"
+         id="rect5764"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5766"
+         width="33.0625"
+         height="1"
+         x="8"
+         y="34"
+         rx="0.49999997"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="32"
+         x="7"
+         height="1"
+         width="35.0625"
+         id="rect5768"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5770"
+         width="37.0625"
+         height="1"
+         x="6"
+         y="30"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="28"
+         x="5"
+         height="1"
+         width="39"
+         id="rect5772"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5774"
+         width="39.0625"
+         height="1"
+         x="5"
+         y="26"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="24"
+         x="4"
+         height="1"
+         width="41"
+         id="rect5776"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5778"
+         width="41"
+         height="1"
+         x="4"
+         y="22"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="20"
+         x="4.5625"
+         height="1"
+         width="39.875"
+         id="rect5780"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5782"
+         width="39.5"
+         height="1"
+         x="4.5625"
+         y="18"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="16"
+         x="5"
+         height="1"
+         width="38.5625"
+         id="rect5784"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5786"
+         width="37"
+         height="1"
+         x="6"
+         y="14"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="12"
+         x="7"
+         height="1"
+         width="35"
+         id="rect5788"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5790"
+         width="31"
+         height="1"
+         x="9"
+         y="10"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.49999997"
+         y="8"
+         x="11"
+         height="1"
+         width="27"
+         id="rect5792"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect5794"
+         width="22"
+         height="1"
+         x="14"
+         y="6"
+         rx="0.5"
+         ry="0.5" />
+      <rect
+         ry="0.5"
+         rx="0.5"
+         y="4"
+         x="18"
+         height="1"
+         width="13.0625"
+         id="rect5796"
+         style="opacity:1;color:#000000;fill:url(#radialGradient5825);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5758);stroke-width:1.04092407;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path2277"
+       sodipodi:cx="23.486046"
+       sodipodi:cy="22.695679"
+       sodipodi:rx="20.556604"
+       sodipodi:ry="20.556604"
+       d="M 44.04265 22.695679 A 20.556604 20.556604 0 1 1  2.9294415,22.695679 A 20.556604 20.556604 0 1 1  44.04265 22.695679 z"
+       transform="matrix(0.9729233,0,0,0.9486003,1.6498781,1.4708735)" />
+    <path
+       sodipodi:nodetypes="cccssscc"
+       id="path2287"
+       d="M 24.612185,4.0014589 C 13.796767,4.0014589 5.0000001,12.562105 5,23.087219 C 5,26.583419 6.0488898,29.811924 7.7389432,32.6301 C 16.427006,32.034474 21.485636,27.641788 26.875547,23.347511 C 27.855617,22.566666 28.84664,21.789073 29.872428,21.038155 C 30.817859,20.346062 31.792822,19.676627 32.81596,19.048186 C 35.5555,17.365481 38.640428,15.976683 42.428633,15.233783 C 39.484832,9.3436004 32.896792,3.897707 24.612185,4.0014589 z "
+       style="color:#000000;fill:url(#linearGradient6286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#radialGradient10293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.367637,9.8367576 C 14.36699,8.4734663 18.428932,10.92021 19.837166,11.353591 C 21.245401,10.811865 24.936078,8.8959589 28.241382,9.2209949 C 24.180532,10.521139 19.837166,14.17057 19.837166,14.17057 C 17.511153,11.931434 13.668581,9.9089878 10.367637,9.8367576 z "
+       id="path10291"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 10.170379,9.2448758 C 14.169732,7.8815846 18.231672,10.328329 19.639907,10.761709 C 21.048141,10.219984 24.738821,8.3040772 28.044123,8.629113 C 23.983276,9.9292571 19.639907,13.578689 19.639907,13.578689 C 17.313896,11.339553 13.471323,9.3171061 10.170379,9.2448758 z "
+       id="path10301"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#radialGradient10289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 1.4042582,16.320691 C 6.953014,14.429244 12.588602,17.823889 14.542404,18.425165 C 16.496208,17.673567 21.616705,15.015413 26.202525,15.466374 C 20.568453,17.270211 14.542404,22.33348 14.542404,22.33348 C 11.315264,19.226872 5.984031,16.420904 1.4042582,16.320691 z "
+       id="path10281"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 0.81248068,15.663044 C 6.3612364,13.771597 11.996827,17.166242 13.95063,17.76752 C 15.904433,17.015923 21.02493,14.357769 25.610751,14.808727 C 19.976678,16.612566 13.95063,21.675833 13.95063,21.675833 C 10.72349,18.569229 5.3922549,15.763257 0.81248068,15.663044 z "
+       id="path10304"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.32571429;color:#000000;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path5843"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.067574"
+       sodipodi:rx="9.1040001"
+       sodipodi:ry="4.1542525"
+       d="M 33.941126 36.067574 A 9.1040001 4.1542525 0 1 1  15.733126,36.067574 A 9.1040001 4.1542525 0 1 1  33.941126 36.067574 z"
+       transform="matrix(1.4751841,0,0,1.6653518,-12.15576,-24.793119)" />
+    <rect
+       rx="0.79079688"
+       ry="0.69196022"
+       y="19.5"
+       x="20.5"
+       height="26.000004"
+       width="23.999998"
+       id="rect6270"
+       style="color:#000000;fill:url(#linearGradient6148);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient6192);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6158);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6150"
+       width="22"
+       height="24.000002"
+       x="21.5"
+       y="20.5" />
+    <rect
+       y="-58.781593"
+       x="53.297924"
+       height="0"
+       width="21.75"
+       id="rect8303"
+       style="opacity:0.65142858;color:black;fill:url(#linearGradient8333);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       transform="scale(1,-1)" />
+    <rect
+       transform="scale(1,-1)"
+       style="opacity:0.65142858;color:black;fill:url(#linearGradient8347);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect8343"
+       width="21.75"
+       height="0"
+       x="53.297924"
+       y="-14.781592" />
+    <rect
+       y="-20.781593"
+       x="53.297924"
+       height="0"
+       width="21.75"
+       id="rect8351"
+       style="opacity:0.65142858;color:black;fill:url(#linearGradient8355);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       transform="scale(1,-1)" />
+    <rect
+       transform="scale(1,-1)"
+       style="opacity:0.65142858;color:black;fill:url(#linearGradient8363);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect8359"
+       width="21.75"
+       height="0"
+       x="53.297924"
+       y="-28.781593" />
+    <rect
+       y="-34.781593"
+       x="53.297924"
+       height="0"
+       width="21.75"
+       id="rect8367"
+       style="opacity:0.65142858;color:black;fill:url(#linearGradient8371);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       transform="scale(1,-1)" />
+    <rect
+       transform="scale(1,-1)"
+       style="opacity:0.65142858;color:black;fill:url(#linearGradient8383);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       id="rect8381"
+       width="21.75"
+       height="0"
+       x="53.297924"
+       y="-14.781592" />
+    <path
+       style="opacity:0.27428571;fill:url(#linearGradient8720);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 31.497882,20.945325 L 22.218157,44.680794 C 22.218157,44.680794 22.252317,20.979683 22.252317,20.979683 L 31.497882,20.945325 z "
+       id="path6900"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path5925"
+       d="M 33.118781,20.459262 L 42.9927,44.680794 C 42.9927,44.680794 42.966515,20.49362 42.966515,20.49362 L 33.118781,20.459262 z "
+       style="opacity:1;fill:url(#linearGradient6904);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,1.56906,18.51695)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6943"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6945"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,1.56906,22.51695)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,1.56906,26.51695)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6947"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6949"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,1.56906,30.51694)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,1.56906,34.51694)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6951"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6953"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,1.56906,38.51694)" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6961"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,3.56906,22.51695)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,5.56906,27.48922)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6963"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6965"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,7.56906,32.48921)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,9.56906,37.51694)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6967"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,-0.43094,22.51695)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6977"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6979"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(-1.307692,0,0,1.307692,59.43926,27.48922)" />
+    <path
+       transform="matrix(-1.307692,0,0,1.307692,57.43926,32.48921)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6981"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6983"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(-1.307692,0,0,1.307692,55.43926,37.51694)" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6910"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,1.56906,17.98662)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,1.56906,21.98662)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6912"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6914"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,1.56906,25.98662)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,1.56906,29.98661)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6916"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6918"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,1.56906,33.98661)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,1.56906,37.98661)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6920"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,3.56906,21.98662)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6906"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6908"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,5.56906,26.95889)" />
+    <path
+       transform="matrix(1.307692,0,0,1.307692,7.56906,31.95888)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6911"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6913"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,9.56906,36.98661)" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6927"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(1.307692,0,0,1.307692,-0.43094,21.98662)" />
+    <path
+       transform="matrix(-1.307692,0,0,1.307692,59.43926,26.95889)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6929"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path6931"
+       sodipodi:cx="23.65625"
+       sodipodi:cy="2.65625"
+       sodipodi:rx="0.40625"
+       sodipodi:ry="0.40625"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       transform="matrix(-1.307692,0,0,1.307692,57.43926,31.95888)" />
+    <path
+       transform="matrix(-1.307692,0,0,1.307692,55.43926,36.98661)"
+       d="M 24.0625 2.65625 A 0.40625 0.40625 0 1 1  23.25,2.65625 A 0.40625 0.40625 0 1 1  24.0625 2.65625 z"
+       sodipodi:ry="0.40625"
+       sodipodi:rx="0.40625"
+       sodipodi:cy="2.65625"
+       sodipodi:cx="23.65625"
+       id="path6933"
+       style="color:black;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+  </g>
+  <g
+     style="display:inline"
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="overlay" />
+</svg>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/scalable/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/scalable/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/scalable
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard ooo-*.svg)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/scalable/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/scalable/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/web.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/web.desktop.in.in
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=ooweb@OOO_BINSUFFIX@
+Exec=ooweb@OOO_BINSUFFIX@ %U
+Icon=ooo-web@OOO_BINSUFFIX@
+Type=Application
+Categories=Network;WebDevelopment;
+StartupNotify=false
+MimeType=application/vnd.oasis.opendocument.text-web;
+_Name=OpenOffice.org Web Pages
+_GenericName=Web Page Creation
+_Comment=Create and edit Web pages.
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard ooo-*.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-gulls.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-gulls.png.uu
@@ -0,0 +1,23 @@
+begin 644 desktop/16x16/ooo-gulls.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0$ATG:KZ=
+M=0```OU)1$%4.,MMDTML5&44QW_?O=^=6F,[,](Q5)3.(&UC,$53$Q-Q@8_X
+M6OJ*HFZDJ*BT&]$0,9)(2'PLL'5!;1?&6IL@N#`F"#;41'!AG!:)P[1UZ@S%
+M/F!JG8?FSIW[."YHBYB>Y"0G.8^<D_/_*?YG=^[X_)F0-O8II1*.ZUN&4EC:
+M<$4D6_6"?3_W/3?TWWJU'&QZ\G`HW.#_NBEQ_<9W.[:HAG`MIF$`X`<!"T6;
+MM_M/2RJ[F"DNF+>EOGRJNC*@_<5>JT;7Y3_NNB_\^_DI?AP;9TVTGFV/;.7L
+M;UF2J0Q-C3%>>/P!1B<OLNO@R:+CEV/)3UYR`=CRRE`Z.3$OKN?+_,+?DIE>
+ME"/?GI)MNS^4OL/'9#*W()GI19FZL"A5UY/D^)S<O?.+-`#-#[_>J;46K;7L
+M?O,M&1Z;D>&Q61D>FY&77^V4Y=QWHS-R8O1R3D1D^WO'@_8=@X^9K??O'/CA
+MZ[XU-]VXEL&!SS#=$M=(A=Z#^QE/I^CI.<2!#WJ(U&JNLQ37:K`K+@_>E5!'
+MOY^\PS"TCJ^[(4S;UB=XIWN0D9&3=&Q_G@T;6CAPZ"CU\792?Y0Y.UWBW.P_
+M3%ZT.9,K$HO4`B2TZ_K:-`P:ZT(TUJ_GTZ%ON'!^BJ9$,P"VX^'7F`"(""(`
+M@FD8N'Z@M2R]<;90`04*12AZ,W,%!\\/\/W@RK,%1$"0%1UHRS0\/PBL=9$0
+M<D46>+X0!`(HE%(HM3Q`4$KP@P#+-#P-9/,%NR44LCB3*Q*(7"Y"H0R%"*BE
+M;EG:X/9XF'S!!LAJQY,]>_M/'>E_XR'E5*I4/99.66Y47"W=@):F*!WOGQ#'
+MDSWFW.A7Z=KF1Y_>?$NLH37>0*ELD_O3IE3Q*=H^I8JWXD$@;&Z-\4OF$@/'
+MSTW\U/OL:QK`\<MM7=TC^>ZN>\/MK6O1H;\HE!T""3"4@5(0J:NA>7V4Y,0\
+MG1^-%!V_W+8J3+?&HQOW=]RC8I&K8<H7;/;VGY9T;A685L,92%2]P%(*L4S#
+9`U;%^5^"%8HLO4]K"P````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-calc.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-calc.png.uu
@@ -0,0 +1,25 @@
+begin 644 desktop/16x16/ooo-calc.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0`1$,=-<V
+M$````V=)1$%4.,MUDUU,FV48AJ_O^]Z6E8R6#DJ*&QO_"VXN,9"8B8E3R.*B
+MB<E4HJ@GPF3,.&)T<1-_9EQ(C,:0X<$F.S!N#+,Y8XSQ9\-A(C-9,@JRE;^5
+MM93!@&)#*5+:K]_[>J";1N-S]"37_=PGSWUK_&NJ]IQZQB[TPYJF%25-RZ9K
+M&C:AFTJI8"HM#U_I?*[[GWKM]K+EJ3-V5ZYU;4O1NM+W&JNU7)<#0]<!L*1D
+M(9;@K1.7E#\8#<06C*W^LW6I.P:5+QZW98BLR,<M#[MN3$[PR\`H.6XG];MV
+M,'0]2+\_P*9\#R\\48MO?(Z7VR_&DE;<T_])DPE`];[ND?ZQ666F+36[L*P"
+MX:CZXOL^57_@0]5YYCLU'EI0@7!434Q%5<I,J_[16^K^YM,C`)0]\MI^(802
+M0J@#K[>JGH%IU3,PHWH&IM7>E_:KV^R";UJ=]_W)E%*JX?T?9.6>KMW&YIKF
+MDS]_W9FSX2XO72<_PS"76*-6.=Y^A-$1/QT=QVC[H(-LAV"M32-30&+59.=]
+M1=JYG\;OU74A"M?GN=BVXTG>.=I%;^]%&AN>I[BXG+9CYW`65N*_&6<HO,3P
+MS.^,SR48#,7P9#L`BH1I6L+0=?*S[.0[-_)I]S=,34Z0'9P@TMI$_$:`]&0(
+M,C(PO/GH[EPR:W=A5+^+:4DAU%]OG%E<!0TT-!@>8?)@,YOJ'\.VK1JI/T!:
+M2E*F)!F)8?K.T_N&!50@;(:>MJ2TK<^VH]"(7QO@UD>'*-U;1SJ^R&)X&E-*
+M4I;"<*W#LH,HR"7:^RU5[J@40#"RF"BWVVT,AF(DC[Q-V>,U+(<#=PY-*1GS
+M%A--"<QTFE3"8FM%*7?_>$'JR;0Z].:)/E52X*;"ZT`-^;!2"9*69#6M2%H2
+MY;63595!=]E.3I?6,+1]-Z?N>92UD1E=[^]\]LN14'3LRN@LQ1MST,HK,#P;
+MP.DF*2V2EL0HSZ2D)(XW/</V@ESFEY;P!(=9=#I#?T?9R(H<;7G(Q6`?OI9]
+ME#0]C:89*"'(KLU!.G3F;FI\'LQC>?@J99<OX35X]3]EJBATE]89U[6I@Z]@
+M55=B*\ECS8.*9$JR<C7*Y5$/FZ>G\,Y/MS5$(JW:_]79%9\O+AOK%87A7\F)
+I3&*AJY0C\S=#4WY-RJ\:5U;:`?X`1TND@Q5>#Z``````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-printeradmin.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-printeradmin.png.uu
@@ -0,0 +1,22 @@
+begin 644 desktop/16x16/ooo-printeradmin.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L>$0HGC:30
+MB0```M])1$%4.,N%DV],S'$<Q]_?WWU_=[/HI`O-W]L*K<AV950/D!5C,I;Y
+M]PB5-&4F9C*-M:EY0&PA-EOZLXH91M$PR1-=AQ7)]4?M=]6ZN_T:6^Y^?SX>
+MQ$F8UZ//]OGLO??G'\,DXC)N[31RH9`Q9O4IFB@P!I$+"A'U^E6]L+5\3_7$
+M>O8SB$ZO-9HM6GNT=4;$V?V)S&*>`H,@```T78=[=`RGKK=01Z_7.>HVQ'34
+M;?<'!&R95T43GS9R.6^MN>=S-UXY.A$:$HQ=&U;CW:=>V#N<6!`>AKW;UJ&M
+M:QB'+CP=]6E?PNS7LA0`0.+!Z@_VCT.DJ!H-N;^2L]]+]0TO:5?^>2JO?41=
+M?6YR]GNI>\!+?D4E>^<@)617?0``1*X_FLLY)\XYY1\_24T.B9H<+FIR2'0@
+M)Y=^YIZT2?2X;3Q'1+2ON%&W951N9:NR*KIJ"C=&WJZIP)6R,FQ.VX*8F%C4
+MU-Q"?'PL@J8&39XS0BVSL"EM![85W.M"8DZU7]4T:G)(5-E@)UO<"N*<4_;!
+MPW2NI(C^QKF2(E(UC1*RJ_Q<431N$`2$3S,B/'@^;E8_P,#G;LR=;\7#NS<`
+M`,W-S>,K8PQ)24D``(,@0-%TSNF'+9?\#6```X,Q9!Z&9%_`LM5J#0A,AHL&
+M0=5T79PSW0CZ=1;P^<<WY/%XX'*Y``"JJL)D,@5N0S0(*@?0.R*/+3(:1;SI
+M&X5.A+:61KQLK,.FC<F091EFLSG@0)9E`$!*2@KTZ38OLV54;ET>$5I__5@J
+M>_]I&'X5*#B6B2-YF7CM>`M1%*'K.G1=!Q$%'"Z-BL*)T\5.;B_??<>47?6Q
+MM7-H28S5@IY^#US2`**BE\,6MQ*$/V$`W!X/#.2/X`#@T[XLRRM]-E*:M\9L
+M6SS[1^]NW&]Y@7^1G)PZ/D0`L%_+4J+3:V?F7GS>'K4P)`(`DR0)EK#P?PHX
+HNYV_?^/$=V;2BTOJX.M0_)\SWP&4(6BO\C62,P````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-base.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-base.png.uu
@@ -0,0 +1,25 @@
+begin 644 desktop/16x16/ooo-base.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0`@@?:2]@
+MCP```T))1$%4.,MUDTMH7&4`A;__OX^93)T\VDS:*IBF>=5DM.IHT4:H%J%U
+MX4HM&L6%^"#U$<070H5:%VY$:Q"J)J"B-%);%R(8;*U:HD5-:DP3FXPW#U.H
+M,\EDG)E,O7.?OPNKB,6S.HO#X<`Y1_`?7/?0!_>8NMPKA&ARO,"00F#HTE-*
+MS;E^N'>D_[[!?^O%WZ3SKD-F37TPT=FTNN6E![M$?4T5FI0`!&%(KFCSPL`W
+M:G(N;Q5S6G+RHUWN/P:IA]\R(GI\Z8W>[36SO\[P[8]3K*FKIONVFQG_98[1
+M28O&]0D>N.-63J6S/+[_>-$)5A*C;S_B`="U>_#,Z'1&>7Z@,KFRLA;RZO#0
+ML.I^YA75?^@SE9[/*6LAKV;.YI7K^6ITZC>UM>?@&0#1NO/I)^:.[7\=X,FG
+MGF/'W;OI6&MR](OC#!T=(I/)L)Q?1@"F::)I&AW):Q$;=JHQ*W>G7M^X^;%C
+M9Q<Y\N'[O'G@`"H,Z'[O':I7KZ&MK97MV[;2D&@@MBI&-KM$J53BU-@X^>G7
+M1*3]_I=%UZ.#[M=]NXROQC-DLQE>W=-#72)!LK.#;3?=2+%41),:FJ91<1R"
+M("!4<.+$,&?..:'TO$#7I&1]W.3JULMY=_!3<LO+W'!]BD*QA*9I*,#S?5S/
+MQZXXF*;)EBTI@L*LU-6%&L\5*B!`(#!T`S-B$H_'62F7*18+"*DA$,1B,5!0
+M+)9`2'1#DWX0AL9EM2;JPBP\W\.R+(04I*Y)L:F]'4,W<#R7=#K-Z<F?.7]^
+M!52(#LPM%>PVTS08FR\2*H6NZP!,IV<X^=T/K*JJ(@0JMDTD$J&E>2.V;8/0
+ME.[XZOD]`\.'!Y[=(9R*B^N#[_L`^+[+YF02J4E0?\TNDUUD_/0D#0T)4`'Z
+M:/^]'T=Z#DZ/3&4V)9OJF5U81@C!V/@$L5B,GR8F+DH0C4:HJZT%<'4`)UBY
+MJK?ORZ6^WEMJ4NWKB$9C.([#I>O6TMS4B!\$A&&(E)),=I%RN<Q4VD)(Z5]T
+MIBLVU+7<?J4N7MRWC^I+JFAM;L2N5(A&H]BV34V\&FMV7OU>*`1^$'XB_N_.
+M?F%VXQ_6Y[H(771-(`0$0>@*08B0$A@9^_YDUY\\?H1`,U!K1P````!)14Y$
+$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-web.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-web.png.uu
@@ -0,0 +1,25 @@
+begin 644 desktop/16x16/ooo-web.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L<$0,1.=4V
+MT@```T!)1$%4.,MMDTML5&4<Q7_?=^\=Z'/:3HM#6VBG]$$?4FDU)E9-\9&H
+MB1M4U"*)T2*IB>!"-XI*(F&C"Z0NH,6$B+5)$4R,B<0%)<5B3#JHP#"=TC+3
+MCMHA,QW:#IW;=NZ]GQLM/OI?G7]R<C;G_`3_N7MW?_&B2Y<'A!"^I8QM2"$P
+M=)E12H67+>?`2.]+_?_TB[]%XW,#+G>Q?;715U3]86>;*'9GH4D)@.TX).9,
+MWCL^K`+AY/A<0FL*G-JQO!+0^MHQ8XV>%_]TWR/N&Y,37/QY%$]A/AU/MG/Y
+M>AA_8)R*]26\\LQC7!J[R1N'S\TMV:D2?\^>#`!MK_<'_:&8REBVBB5NJ_&I
+MI/KJ[`^JX^V/5>_`=VHLDE#C4TGUV=<C*I5>4O[1:?5`UY=!`%GSQ%M[?^K9
+MM?G^QG+>>?=]KD;GB,PL4G"7C_ST%%T=3]-0[26<,!D*3+._9XB6.B_UE9ZZ
+MUMU]V[6Z1[M.7OBFUU->ZJ7OY.=HF7G6JD6.'3[(:#!`=_=1#GW434&6SO3-
+M&70<E`///]X@3I\?VRJEKE>6K7.SI?U9/CC2Q^#@.3I?W45552V'CIXFO[*5
+MP&\I3GQ_#5M?2SAA,G#A.B4%60`^/9.Q=4U*S/D4S=4;.-'_+=')"2I\-0"<
+MO1ABZ-($`)H4>#UNBK)U-"G)V(ZNJ[]JC"9-8O,Q+,MAT\9RIF>7L&R'R<0"
+M[J*".\6[7%17E:V\NJ%)RW8<H_WN4BZ/QPA$X[BP:*XM0Y,:+VRK9SGC\..5
+M"`OI)7)SUM"\L0C;<3`T:>E`.#YKUKI<!E>B<T3B:6[$T_PZ.<M#+9M0"H00
+MI"S)Y,PB-=FY9.>XB,^:`&%MW=;M?UR+)':\_%23R#<DJ=MI<@S)/54E-&PH
+MHCC7A2?'(+V01C@6#V\IY[ZF4M[L/J]^3Z3W2'_OSC/!2#(T,AJCJ78]CFT3
+M3]OD%;J92BX2O642O65B.AHUE5[:6BKPAV($(S,A?^_.,W>FK.7%C^S;YFZM
+M\S+\2Q1#-W"4@Q02(2`OVV"SSX,_%&/O)X,K4_X?3/65A=4'.Q\4)07_ABD^
+M:[+_^+`*1E:!:36<`=^RY1A"H`Q-6L"J./\)[VE_%WF4'&$`````245.1*Y"
+"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-writer.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-writer.png.uu
@@ -0,0 +1,21 @@
+begin 644 desktop/16x16/ooo-writer.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0`1(9,B>!
+M.````JE)1$%4.,M]4UE(E%$4_NX_]_]-R1EM5-06&4@GT@*Q!?.EC9;7(B'K
+MJ5PR2U^RB$S$(F@A3`MR>8A<!DQ[B*`L*2/MR5&31)UQ7$;4$2=S,G%F_OGG
+M]*".RV0?7.ZYG.\<OG/N.0QKL">CYJS$A2+&F,XE*Z+`&$0NR$0TY/9XB]HK
+MSQM6\MF2$7^F7M*$*3_B=9NVWTE/86&:0*@$`0"@>+VP.^9QNZJ->H:F!QQV
+M54+/JU2W+T%29KD8P(.GGN8=U@R.6/"MLP_:4#723AY$MWD(QIX!Q$2%X\+I
+MH^@P3>)JR2>'2YD--U9DR0"`E,N&7F._C62/0C;['QJP3E/#^U9*RW]$E?7O
+MR#1LIP'K-%E&I\DM>\C8-T$'LNMZ`0"Q)Z[E<LZ)<T[Y-VY1<^<8-7>.4W/G
+M&%W*R:4EW\>.,?K0L>`C(KIXO\F;E%%[2J4_DEW]]4VE=DMT)&JK7T(E_\8&
+M<J*\Y"[Z>GM05O8<]QZ6(2208Z/($,2!>:>,8_MUK+'%E,A2<@SN+Z6I8DNW
+M#9.3-CPNR,;WK@YD9%[!OKV)L%J'L1Y&Y]1>+LL*5PD"HH(E1*FWX87A+49'
+M+(C1Q:*AYAD*"PO735!<7"QP6GR,SS@!!C`P2*%;,3'C\A';VMH6_IPQWYV<
+MG`P`X*)*\"A>K[@Y1`(MCP4\"OELO5Z_/#B,K5+!`0Q-S<S'29*(KF$'O$0@
+M(K`5R4PFDU^P3X'+0S<+JEH;JJX?9RZG&VX/%DL!>A?)<7%Q?B7X%!@KS[T.
+MR*[K;^^S[4C0A6'0^A.6J?E5)+/9[-=`GP(`<"FSN_-*/T^5YAW2).DCP:5?
+MF)E=;N*2@G]!``!C19;LL/.(W"<MYO0'3:0.EI"T,\)'TFJU?L=O&]>N,P#=
+?+O6X&!TTA_^@\2]Z5"P9%U!HV0````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-math.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-math.png.uu
@@ -0,0 +1,23 @@
+begin 644 desktop/16x16/ooo-math.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0`1<)4N=E
+M&0```O5)1$%4.,MUDTUL5&44AI_OSKU7"T.GM5,"(BG3\&/2A@1;P)0-J#%J
+M7"&00-$82ZN%4#82%L1(@I(065#*@K:ZD1F:5-CH0I0*)@H)*?T)=MHZ=IC^
+MV!\R0^U0S'1F[OT."VEQ$)_52<YYSWF3<X[B"2IK@[MMTSBFE`JDLZYE*(5E
+M&ED1B64<?>Q6Z]ZV?]>K^:!L9[OM\[M]98'G5A_?MT7Y?7EX#`,`5VL2R12?
+M?'E=PK'IH63"4Q[^9E=FH4%%7;/UC+DD?O;0*[X[(U%N]`Q25)C/GC>W<ON/
+M&%WA(4J6%_/!.Z_1';G+P=-7DVEWMKBKY<,L`%OVMPUT_3XE6<>5J<0#&1J=
+MEHN7?Y4]AT]):_OW$AE.R-#HM$3'IB63=:1K<%*JZB\,`+#FC8\;3-,4TS3E
+M\)&CTM$S+AT]$]+1,RX?'6B0^=R5[G'YL?N?G(A(S<D?=$5M:+MGW:OUYW_Y
+MMK7HA>>7$3K_-9[L?9Z5.9I/?\;@0)BFIG.<^**)@CP3KZ589$)J+LOKFP/J
+MTL^1#89AFJM6+/6Q?NL./CT3XMJUJ^RK>9?2TK6<.'>)_%45A/^<Y?;H??HG
+M_B9R-T7O<)+B@CR`@-I4%]0WFZM5?S0!"K06QD:BE`36`)!*.[@:#C1V\#1,
+M>11,S,R!`H7"+ES)Y$P:Q]6XKEY8=F=+=8YX8UT(T_(8CJNUM:+`1AZ?!8XK
+M:"V`0BF5(\IQ`,3B,ZFUMFW1.YQ$BR`B*!3*4(B`4HKRE?ELK`O1V5*]T.3E
+M$D-[EF[8/M$_G-CU_EOEBDR:@CR+(J^-WVOA]]KXO39%BRW>WEQ*7VR*SX.W
+MZ&RIIO6[WR@D/J@`JNHO##0V;'NQ/.#GSN@]HO'4(]N*>?<7K_32-S:;XZ#[
+MJ_=>>GS*GB7Q,X>V^2K6+2,R\A<SLVFT:`QEH!3L;_PI1_P?RG:VVU7U;9&:
+MDY?UY+T'XKBNS..XKE36!N5)*FN#HO[OG8%`QM&64HCE,9R,HZVG#7X([B=W
+1ZTG?:GH`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-draw.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-draw.png.uu
@@ -0,0 +1,25 @@
+begin 644 desktop/16x16/ooo-draw.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`Y`!^
+M`!*)P>YR````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0`1HATORS
+MK@```UE)1$%4.,MUDUU,U048QG__CP.<AO%U#N.$4_\#`K..$E!+JIDQ0^**
+MEC-L;66(*&$KJ8O6YD:KI"XT6D5XE0I)5IO:PF0*B[0LOAPG/CIR$$5$3BS@
+M()SS/__S=F&HM?5N[_9NS[/GXGV>1^$_DUMVZ+DH7=VC*(H1-"V;JBC8=-44
+M$5\H'-GS6\/S37?RE<5CU;/-47$.JV^5D9A>\W*^XHBSHZDJ`%8D@G]ZGK</
+M_"0>WY1WVJ_=[_EJ4^B60,ZV>ENTOF3RXUWKXX8O7>1L]P!)"7=3NG$=%_[P
+MT>GQLMSEY*5G"N@:FN"5?:>G@]:LL_/S<A.`_!U-_9V#U\0,6W+-'Q#OZ)0<
+M;>F0TNH/I:'Y>QD:\8MW=$HN7IZ2D!F6SH%Q65O1V`]`1N'N*EW71==UJ7[S
+M+6GM'I/6[JO2VCTFVW=6R2)VJFM,?NBZB8F(;-U[,I)3=KA$RWRRXN"/QQJ2
+MEMZ3PN&#7Z"9,\3(`O7[WF&@WT-=W6>\^T$=\7:=6)O"73K,+YAL>-A0OFX;
+MRE;R=S:%'O)6VZ)B$W&X"_GR>!N]/5V4;:ND^(4J;+9H@J$P9CB"R,V':RH4
+M/[*,QRN/F+II6KIE+K`F]@H]O=^Q9?V#U+R_G^5&!@#SP3!6M`:`B/PC(FBJ
+MBFE%=%V`%5FK.3?0RQN/CM/F.T'[ISVX'B@@J^@U+"MRVVP!$1#D5@Y4FZ:&
+MRVN_)3$UG=H.E76&0G'*)7QGFSG]7B'3H[^2&F]G:<+BQK`L,08K$L&FJ6$5
+M\,T$54IKCI-X7P&U'2I&DD[)O2%6%I7CGQRCY5@#0Q-S#$[,,3AQ@YB8*";_
+MF@?P:<G9)5=_'_%O>O%IMY*<\1BH41P]]0NSSES2<I\B>TT.3F<RO>=.8%<5
+MTE.=N+-<O%K7)F/^&^7:>-<W_?:,HLVKTYR.S!4.[,DK"<=G,&>+Q^%P<OWZ
+M).EIZ6POWT'[F9,T'CJ`'IM,^V!P\'S]ELK;4=:63'ZTZXFXG,P4/-X)1D>&
+MN=!]!H"Z_9]@&`:&81`(!.CK\^`=]FT6RSS"G65:6]$TM'5O2V3\SX"$+4M$
+M1`*!@.RN?EU<+I?DY>6)V^T6I],I0`C8J/Q?G0$C%([8%`715<*7?VZ<7;AR
+;/H%_F<K,WP:NC/.X]-P8`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/ooo-impress.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/ooo-impress.png.uu
@@ -0,0 +1,18 @@
+begin 644 desktop/16x16/ooo-impress.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```W7```-UP%"*)MX````!W1)344'U@L0`14NQ=NR
+M\````AA)1$%4.,N=DD](TV$<QI_W^[Y3.M2P]%`0:]`B,%)SKC]>0@KRT"'"
+M(.T048IAUJ$.P@(A%F8=IGAI\S@FF'BM4R>+H'Y:XO!/LU\9U,(YMBQD^_WY
+M=I#F'`;-Y_2\O,_[OI_WRR-0).^-R.4R1;U""'?6L!PD!!R*#&;6<Z;=^RY\
+M9:0P+_Z:ZI;1,F>E-5/MWGWPP?5&4>G<`4D$`+!L&\G,&NX/O^*8GHIGDO)(
+M[-FE7/Z"^O:GCG*U<WGH=I/STY=%O)Z:PYZ*76AM/HWICSJT6!RNO56X=O$,
+M)A=^X%;P929KK59IH0X#`-!X<V16FT^P85J<2/[B^%**QUY,<.N])QP>?<X+
+MGY,<7TKQXM<4YPR3M;GO?*HS.@L`PG/N;G>M4Q_`-J4J735=2.L8#`YA927Y
+MWP?3F30&!H-0I-0!`.B^T[4]!%][Q&9F[NL/<"GJZP]P0WO$5ER,YO/E?=0?
+MPH7C59B)36_*G&UJWIB!0Y)IV;:C,!#UA_*>B%!;<PPD"(($B&1^SR')5`#T
+MY?3:H>*O77U3!P#XW9C`^P^3_R+05=;D'O_PQ)A'K)>J\/7UI@G4US6`I`0)
+M@I(;!%F3>Y06;ALO[XS.>]PXO-60A2!H4V^W)-#";>,*`++6ZE$`.0`X[ZV`
+ME!(_3WZ#)((DP.<]`2("D812:G.1`$`+=1@M_0$`P/Y]KM*:6+AX]/AAR3WZ
+5`[O,]\"BX>/^`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/16x16/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/16x16/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/16x16
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard ooo-*.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/16x16/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/16x16/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/ooo-extension-manager.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/ooo-extension-manager.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+X-SuSE-translate=false
+Version=1.0
+Terminal=false
+TryExec=unopkg@OOO_BINSUFFIX@
+Exec=unopkg@OOO_BINSUFFIX@ gui %U
+NoDisplay=true
+Type=Application
+StartupNotify=false
+Categories=X-SuSE-Core-Office;Office;
+MimeType=application/vnd.openofficeorg.extension;
+Name=OpenOffice.org Extension Manager
+GenericName=Extension Manager
+Comment=Add and organize the OpenOffice.org extensions.
--- openoffice.org-2.4.1.orig/ooo-build/desktop/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/Makefile.am
@@ -0,0 +1,31 @@
+SUBDIRS=16x16 22x22 24x24 32x32 48x48 scalable mimetypes
+
+desktop_in_files = ${wildcard *.desktop.in.in}
+
+old_gnome_files = \
+	openoffice.applications.in \
+	openoffice-extra.keys.in \
+	openoffice.keys.in
+
+all: $(desktop_in_files:.desktop.in.in=.desktop) $(old_gnome_files:.in=)
+
+clean: 
+	rm -f $(desktop_in_files:.desktop.in.in=.desktop.in) \
+	      $(desktop_in_files:.desktop.in.in=.desktop) \
+	      $(old_gnome_files:.in=)
+
+%.desktop.in: %.desktop.in.in $(top_builddir)/intltool-merge $(wildcard $(top_srcdir)/po/*.po)
+	$(top_builddir)/intltool-merge $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+%: %.in
+	sed -e "s|\@OOO_BINSUFFIX\@|@OOO_BINSUFFIX@|" \
+	    -e "s|\@STARTUPNOTIFY\@|@STARTUPNOTIFY@|" \
+	    -e "s|\@ADD_OPENXML_PRESENTATION_MIME\@|@ADD_OPENXML_PRESENTATION_MIME@|" \
+	    -e "s|\@ADD_OPENXML_SPREADSHEET_MIME\@|@ADD_OPENXML_SPREADSHEET_MIME@|" \
+	    -e "s|\@ADD_OPENXML_WORD_MIME\@|@ADD_OPENXML_WORD_MIME@|" $< > $@
+
+EXTRA_DIST=$(desktop_in_files) \
+	$(old_gnome_files) \
+	${wildcard *.png} \
+	openoffice.xml \
+	openoffice.mime
--- openoffice.org-2.4.1.orig/ooo-build/desktop/openoffice.applications.in
+++ openoffice.org-2.4.1/ooo-build/desktop/openoffice.applications.in
@@ -0,0 +1,8 @@
+openoffice@OOO_BINSUFFIX@
+	command=ooffice@OOO_BINSUFFIX@
+	name=OpenOffice.org 2.0
+	can_open_multiple_files=true
+	expects_uris=true
+	uses_gnomevfs=true
+	requires_terminal=false
+	mime_types=application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.text-template,application/vnd.oasis.opendocument.text-web,application/vnd.oasis.opendocument.text-master,application/vnd.oasis.opendocument.graphics,application/vnd.oasis.opendocument.graphics-template,application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.presentation-template,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.spreadsheet-template,application/vnd.oasis.opendocument.formula,application/vnd.oasis.opendocument.database
--- openoffice.org-2.4.1.orig/ooo-build/desktop/openoffice-extra.keys.in
+++ openoffice.org-2.4.1/ooo-build/desktop/openoffice-extra.keys.in
@@ -0,0 +1,3911 @@
+application/msword
+	description=Microsoft Word document
+	[am]description=የMicrosoft Word ሰነድ
+	[ar]description=مستند ميكرسوفت وورد
+	[az]description=Microsoft Word sənədi
+	[be]description=Дакумэнт Microsoft Word
+	[bg]description=Microsoft Word документ
+	[bn]description=মাইক্রোসফ্ট ওয়ার্ড নথী
+	[ca]description=Document de Microsoft Word
+	[cs]description=Dokument Microsoft Word
+	[cy]description=Dogfen Miscrosoft Word
+	[da]description=Microsoft Word-dokument
+	[de]description=Microsoft Word-Dokument
+	[el]description=Έγγραφο Microsoft Word
+	[eo]description=Microsoft Word dokumento
+	[es]description=Documento de Microsoft Word
+	[et]description=Microsoft Word dokument
+	[eu]description=Microsoft Word-eko dokumentua
+	[fa]description=نوشتار Word مایکروسافت
+	[fi]description=Microsoft Word -asiakirja
+	[fr]description=Document Microsoft Word
+	[ga]description=Doiciméad ó Microsoft Word
+	[gl]description=Documento do Microsoft Word
+	[he]description=מסמך Microsoft Word
+	[hi]description=माइक्रोसाफ्ट वर्ड दस्तावेज
+	[hu]description=Microsoft Word-dokumentum
+	[id]description=dokumen Microsoft Word
+	[is]description=Microsoft Word skjal
+	[it]description=Documento Microsoft Word
+	[ja]description=Microsoft Word ドキュメント
+	[ko]description=마이크로소프트 워드 문서
+	[li]description=Microsoft Word dokkemènt
+	[lt]description=Microsoft Word dokumentas
+	[lv]description=Microsoft Word dokuments
+	[mk]description=Microsoft Word документ
+	[mn]description=Microsoft Word баримт
+	[ms]description=Dokumen Microsoft Word
+	[ne]description=माइक्रोसफ्ट वर्ड कागजात
+	[nl]description=Microsoft Word document
+	[nn]description=Microsoft Word-dokument
+	[no]description=Microsoft Word dokument
+	[pl]description=Dokument Microsoft Word
+	[pt]description=Documento Microsoft Word
+	[pt_BR]description=Documento do Microsoft Word
+	[ro]description=Document Microsoft Word
+	[ru]description=документ формата Microsoft Word
+	[sk]description=Dokument Microsoft Word
+	[sl]description=Dokument Microsoft Word
+	[sq]description=Dokument Microsoft Word
+	[sr]description=Микрософт Word документ
+	[sr@Latn]description=Mikrosoft Word dokument
+	[sv]description=Microsoft Word-dokument
+	[tr]description=Microsoft Word belgesi
+	[uk]description=документ у форматі Microsoft Word
+	[vi]description=Tài liệt MS Word
+	[wa]description=Documint Microsoft Word
+	[zh_CN]description=Microsoft Word 文档
+	[zh_TW]description=Microsoft Word 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_intermediate_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_advanced_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+application/rtf
+	description=Rich text document
+	[ar]description=مستند نص غني
+	[az]description=Zəngin mətn sənədi
+	[be]description=Істотна фарматаваны тэкст
+	[bn]description=রিচ টেক্সট নথী
+	[ca]description=Document de text enriquit
+	[cs]description=Bohatý textový dokument
+	[cy]description=Dogfen testun gyfoethog
+	[da]description=Rig tekst-dokument
+	[de]description=Reichhaltiges Textdokument
+	[el]description=Έγγραφο εμπλουτισμένου κειμένου
+	[eo]description=Riĉteksta dokumento
+	[es]description=Documento de texto enriquecido
+	[et]description=Rich text dokument
+	[fi]description=RTF-asiakirja
+	[fr]description=Document texte riche
+	[he]description=מסמך טקסט עשיר
+	[hi]description=संपन्न पाठ्य दस्तावेज
+	[hu]description=Rich text dokumentum
+	[id]description=dokumen rich text
+	[is]description=Ríkt textaskjal
+	[it]description=Documento rich text
+	[ja]description=リッチ・テキスト・ドキュメント
+	[ko]description=Rich text 문서
+	[li]description=Verriek teksdokkemènt
+	[lt]description=Raiškaus teksto dokumentas
+	[mk]description=Rich text документ
+	[mn]description=Баян текст баримт
+	[ms]description=Dokumen teks rich
+	[nl]description=Verrijkt tekstdocument
+	[nn]description=Rik tekst-dokument
+	[no]description=Riktekst-dokument
+	[pl]description=Dokument rich text
+	[pt]description=Documento em texto rico
+	[pt_BR]description=Documento de texto rico
+	[ro]description=Document rich text
+	[ru]description=документ с форматированным текстом
+	[sk]description=Bohatý textový dokument
+	[sl]description=Dokument bogatega besedila
+	[sq]description=Dokument Rich text
+	[sr]description=Обогаћени текстуални документ
+	[sr@Latn]description=Obogaćeni tekstualni dokument
+	[sv]description=Rikt textdokument
+	[vi]description=Tài liệu rich text
+	[wa]description=Documint e tecse eritchî
+	[zh_CN]description=RTF 文档
+	[zh_TW]description=RTF 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_intermediate_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_advanced_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+text/rtf
+	description=Rich text document
+	[ar]description=مستند نص غني
+	[az]description=Zəngin mətn sənədi
+	[be]description=Істотна фарматаваны тэкст
+	[bn]description=রিচ টেক্সট নথী
+	[ca]description=Document de text enriquit
+	[cs]description=Bohatý textový dokument
+	[cy]description=Dogfen testun gyfoethog
+	[da]description=Rig tekst-dokument
+	[de]description=Reichhaltiges Textdokument
+	[el]description=Έγγραφο εμπλουτισμένου κειμένου
+	[eo]description=Riĉteksta dokumento
+	[es]description=Documento de texto enriquecido
+	[et]description=Rich text dokument
+	[fi]description=RTF-asiakirja
+	[fr]description=Document texte riche
+	[he]description=מסמך טקסט עשיר
+	[hi]description=संपन्न पाठ्य दस्तावेज
+	[hu]description=Rich text dokumentum
+	[id]description=dokumen rich text
+	[is]description=Ríkt textaskjal
+	[it]description=Documento rich text
+	[ja]description=リッチ・テキスト・ドキュメント
+	[ko]description=Rich text 문서
+	[li]description=Verriek teksdokkemènt
+	[lt]description=Raiškaus teksto dokumentas
+	[mk]description=Rich text документ
+	[mn]description=Баян текст баримт
+	[ms]description=Dokumen teks rich
+	[nl]description=Verrijkt tekstdocument
+	[nn]description=Rik tekst-dokument
+	[no]description=Riktekst-dokument
+	[pl]description=Dokument rich text
+	[pt]description=Documento em texto rico
+	[pt_BR]description=Documento de texto rico
+	[ro]description=Document rich text
+	[ru]description=документ с форматированным текстом
+	[sk]description=Bohatý textový dokument
+	[sl]description=Dokument bogatega besedila
+	[sq]description=Dokument Rich text
+	[sr]description=Обогаћени текстуални документ
+	[sr@Latn]description=Obogaćeni tekstualni dokument
+	[sv]description=Rikt textdokument
+	[vi]description=Tài liệu rich text
+	[wa]description=Documint e tecse eritchî
+	[zh_CN]description=RTF 文档
+	[zh_TW]description=RTF 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_intermediate_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_advanced_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+text/richtext
+	description=Rich text document
+	[ar]description=مستند نص غني
+	[az]description=Zəngin mətn sənədi
+	[be]description=Істотна фарматаваны тэкст
+	[bn]description=রিচ টেক্সট নথী
+	[ca]description=Document de text enriquit
+	[cs]description=Bohatý textový dokument
+	[cy]description=Dogfen testun gyfoethog
+	[da]description=Rig tekst-dokument
+	[de]description=Reichhaltiges Textdokument
+	[el]description=Έγγραφο εμπλουτισμένου κειμένου
+	[eo]description=Riĉteksta dokumento
+	[es]description=Documento de texto enriquecido
+	[et]description=Rich text dokument
+	[fi]description=RTF-asiakirja
+	[fr]description=Document texte riche
+	[he]description=מסמך טקסט עשיר
+	[hi]description=संपन्न पाठ्य दस्तावेज
+	[hu]description=Rich text dokumentum
+	[id]description=dokumen rich text
+	[is]description=Ríkt textaskjal
+	[it]description=Documento rich text
+	[ja]description=リッチ・テキスト・ドキュメント
+	[ko]description=Rich text 문서
+	[li]description=Verriek teksdokkemènt
+	[lt]description=Raiškaus teksto dokumentas
+	[mk]description=Rich text документ
+	[mn]description=Баян текст баримт
+	[ms]description=Dokumen teks rich
+	[nl]description=Verrijkt tekstdocument
+	[nn]description=Rik tekst-dokument
+	[no]description=Riktekst-dokument
+	[pl]description=Dokument rich text
+	[pt]description=Documento em texto rico
+	[pt_BR]description=Documento de texto rico
+	[ro]description=Document rich text
+	[ru]description=документ с форматированным текстом
+	[sk]description=Bohatý textový dokument
+	[sl]description=Dokument bogatega besedila
+	[sq]description=Dokument Rich text
+	[sr]description=Обогаћени текстуални документ
+	[sr@Latn]description=Obogaćeni tekstualni dokument
+	[sv]description=Rikt textdokument
+	[vi]description=Tài liệu rich text
+	[wa]description=Documint e tecse eritchî
+	[zh_CN]description=RTF 文档
+	[zh_TW]description=RTF 文件
+	short_list_application_ids_for_novice_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_intermediate_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_advanced_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+application/vnd.lotus-1-2-3
+	description=Lotus 1-2-3 spreadsheet
+	[ar]description=صفحة جداول Lotus 1-2-3
+	[az]description=Lotus 1-2-3 hesab cədvəli
+	[be]description=Электронная табліца Lotus 1-2-3
+	[bg]description=Lotus 1-2-3 таблица
+	[bn]description=লোটাস ১-২-৩ স্প্রেডশিট
+	[ca]description=Full de càlcul Lotus 1-2-3
+	[cs]description=Tabulka Lotus 1-2-3
+	[cy]description=Taenlen Lotus 1-2-3
+	[da]description=Lotus 1-2-3-regneark
+	[de]description=Lotus 1-2-3-Arbeitsblatt
+	[el]description=Λογιστικό φύλλο Lotus 1-2-3
+	[eo]description=Lotus 1-2-3 sterntabelo
+	[es]description=Hoja de cálculo de Lotus 1-2-3
+	[et]description=Lotus 1-2-3 arvutustabel
+	[eu]description=Lotus 1-2-3 kalkulu-orria
+	[fa]description=صفحه‌گسترده‌ی ۱-۲-۳
+	[fi]description=Lotus 1-2-3 -taulukko
+	[fr]description=Feuille de calcul Lotus 1-2-3
+	[ga]description=scarbhileog ó Lorus 1-2-3
+	[gl]description=Folla de cálculo de Lotus 1-2-3
+	[he]description=גיליון נתונים Lotus 1-2-3
+	[hi]description=लोटस 1-2-3 स्प्रेडशीट
+	[hu]description=Lotus 1-2-3-munkafüzet
+	[id]description=Lotus 1-2-3 spreadsheet
+	[is]description=Lotus 1-2-3 töflureiknir
+	[it]description=Foglio di calcolo Lotus 1-2-3
+	[ja]description=Lotus 1-2-3 スプレッドシート
+	[ko]description=Lotus 1-2-3 스프레드시트
+	[li]description=Lotus 1-2-3 spreadsheet
+	[lt]description=Lotus 1-2-3 skaičialentė
+	[lv]description=Lotus 1-2-3 izklājlapa
+	[mk]description=Lotus 1-2-3 spreadsheet
+	[mn]description=Lotus 1-2-3 хүснэгт
+	[ms]description=Hamparan Lotus 1-2-3
+	[ne]description=लोटस १-२-३ स्प्रेडशिट
+	[nl]description=Lotus 1-2-3 spreadsheet
+	[nn]description=Lotus 1-2-3 rekneark
+	[no]description=Lotus 1-2-3 regneark
+	[pl]description=Arkusz programu Lotus 1-2-3
+	[pt]description=Folha de cálculo Lotus 1-2-3
+	[pt_BR]description=Planilha do Lotus 1-2-3
+	[ro]description=Foaie de calcul Lotus 1-2-3
+	[ru]description=таблица формата Lotus 1-2-3
+	[sk]description=Tabuľka Lotus 1-2-3
+	[sl]description=Preglednica Lotus-1-2-3
+	[sq]description=Fletë llogaritëse Lotus 1-2-3
+	[sr]description=Lotus 1-2-3 табеларни прорачун
+	[sr@Latn]description=Lotus 1-2-3 tabelarni proračun
+	[sv]description=Lotus 1-2-3-kalkylblad
+	[tr]description=Lotus 1-2-3 hesap tablosu
+	[uk]description=таблиця у форматі Lotus 1-2-3
+	[vi]description=Bảng tính Lotus 1-2-3
+	[wa]description=Foye tåvleu Lotus 1-2-3
+	[zh_CN]description=Lotus 1-2-3 电子表格
+	[zh_TW]description=Lotus 1-2-3 試算表
+	icon_filename=i-spreadsheet
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@
+	short_list_application_ids_for_intermediate_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@
+	short_list_application_ids_for_advanced_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+application/vnd.ms-excel
+	description=Microsoft Excel spreadsheet
+	[ar]description=صفحة جداول ميكرسوفت إكسل
+	[az]description=Microsoft Excel hesab cədvəli
+	[be]description=Электронная табліца Microsoft Excel
+	[bg]description=Microsoft Excel таблица
+	[bn]description=মাইক্রোসফ্ট এক্সেল স্প্রেডশিট
+	[ca]description=Full de càlcul de Microsoft Excel
+	[cs]description=Tabulka Microsoft Excel
+	[cy]description=Taenlen Microsoft Excel
+	[da]description=Microsoft Excel-regneark
+	[de]description=Microsoft Excel-Arbeitsblatt
+	[el]description=Λογιστικό φύλλο Microsoft Excel
+	[eo]description=Microsoft Excel sterntabelo
+	[es]description=Hoja de cálculo de Microsoft Excel
+	[et]description=Microsoft Excel arvutustabel
+	[eu]description=Microsoft Excel-en kalkulu-orria
+	[fa]description=صفحه‌گسترده‌ی Excel مایکروسافت
+	[fi]description=Microsoft Excel -taulukko
+	[fr]description=Feuille de calcul Microsoft Excel
+	[ga]description=scarbhileog ó Microsoft Excel
+	[gl]description=Folla de cálculo do Microsoft Excel
+	[he]description=גיליון נתונים Microsoft Excel
+	[hi]description=माइक्रोसाफ्ट एक्सेल स्प्रेडशीट
+	[hu]description=Microsoft Excel-munkafüzet
+	[id]description=Microsoft Excel spreadsheet
+	[is]description=Microsoft Excel töflureiknir
+	[it]description=Foglio di calcolo Microsoft Excel
+	[ja]description=Microsoft Excel スプレッドシート
+	[ko]description=마이크로소프트 엑셀 스프레드시트
+	[li]description=Microsoft Excel spreadsheet
+	[lt]description=Microsoft Excel skaičialentė
+	[lv]description=Microsoft Excel izklājlapa
+	[mk]description=Microsoft Excel spreadsheet
+	[mn]description=Microsoft Excel хүснэгт
+	[ms]description=hamparan Microsoft Excel
+	[ne]description=माइक्रोसफ्ट एक्सेल स्प्रेडशिटl
+	[nl]description=Microsoft Excel spreadsheet
+	[nn]description=Microsoft Excel reikneark
+	[no]description=Microsoft Excel regneark
+	[pl]description=Arkusz kalkulacyjny Microsoft Excel
+	[pt]description=Folha de cálculo Microsoft Excel
+	[pt_BR]description=Planilha do Microsoft Excel
+	[ro]description=Foaie de calcul Microsoft Excel
+	[ru]description=таблица формата Microsoft Excel
+	[sk]description=Tabuľka Microsoft Excel
+	[sl]description=Preglednica Microsoft Excela
+	[sq]description=Fletë llogaritëse Microsoft Excel
+	[sr]description=Микрософт Ексел табеларни прорачун
+	[sr@Latn]description=Mikrosoft Eksel tabelarni proračun
+	[sv]description=Microsoft Excel-kalkylblad
+	[tr]description=Microsoft Excel hesap tablosu
+	[uk]description=таблиця у форматі Microsoft Excel
+	[vi]description=Bảng tính MS Excel
+	[wa]description=Foye tåvleu Microsoft Excel
+	[zh_CN]description=Microsoft Excel 电子表格
+	[zh_TW]description=微軟 Excel 試算表
+	icon_filename=i-spreadsheet
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_intermediate_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	short_list_application_ids_for_advanced_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@,staroffice,applix
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+application/vnd.ms-powerpoint
+	description=Microsoft PowerPoint document
+	[am]description=የMicrosoft PowerPoint ሰነድ
+	[ar]description=مستند ميكرسوفت باوربوينت
+	[az]description=Micrpspft PowerPoint sənədi
+	[be]description=Дакумэнт Microsoft PowerPoint
+	[bg]description=Microsoft PowerPoint документ
+	[bn]description=মাইক্রোসফ্ট পাওয়ার-পয়েন্ট নথী
+	[ca]description=Document de Microsoft PowerPoint
+	[cs]description=Dokument Microsoft PowerPoint
+	[cy]description=Dogfen Microsoft PowerPoint
+	[da]description=Microsoft PowerPoint-dokument
+	[de]description=Microsoft PowerPoint-Dokument
+	[el]description=Έγγραφο Microsoft PowerPoint
+	[eo]description=Microsoft PowerPoint dokumento
+	[es]description=Documento de Microsoft PowerPoint
+	[et]description=Microsoft PowerPoint dokument
+	[eu]description=Microsoft PowerPoint-eko dokumentua
+	[fa]description=نوشتار PowerPoint مایکروسافت
+	[fi]description=Microsoft PowerPoint -asiakirja
+	[fr]description=Document Microsoft PowerPoint
+	[ga]description=Doiciméad ó Microsoft PowerPoint
+	[gl]description=Documento do Microsoft PowerPoint
+	[he]description=מסמך Microsoft PowerPoint
+	[hi]description=माइक्रोसाफ्ट पावरपाइंट दस्तावेज
+	[hu]description=Microsoft PowerPoint-dokumentum
+	[id]description=dokumen Microsoft PowerPoint
+	[is]description=Microsoft PowerPoint skjal
+	[it]description=Documento Microsoft PowerPoint
+	[ja]description=Microsoft PowerPoint ドキュメント
+	[ko]description=마이크로소프트 파워포인트 문서
+	[li]description=Microsoft PowerPoint dokkemènt
+	[lt]description=Microsoft PowerPoint dokumentas
+	[lv]description=Microsoft PowerPoint dokuments
+	[mk]description=Microsoft PowerPoint документ
+	[mn]description=Microsoft PowerPoint баримт
+	[ms]description=dokumen Microsoft PowerPoint
+	[ne]description=माइक्रोसफ्ट पावर प्वाईन्ट कागजात
+	[nl]description=Microsoft PowerPoint document
+	[nn]description=Microsoft PowerPoint-dokument
+	[no]description=Microsoft PowerPoint dokument
+	[pl]description=Dokument Microsoft PowerPoint
+	[pt]description=Documento Microsoft PowerPoint
+	[pt_BR]description=Documento do Microsoft PowerPoint
+	[ro]description=Document Microsoft PowerPoint
+	[ru]description=документ формата Microsoft PowerPoint
+	[sk]description=Dokument Microsoft PowerPoint
+	[sl]description=Dokument Microsoft PowerPointa
+	[sq]description=Dokument Microsoft PowerPoint
+	[sr]description=Микрософт ПауерПоинт документ
+	[sr@Latn]description=Mikrosoft PauerPoint dokument
+	[sv]description=Microsoft PowerPoint-dokument
+	[tr]description=Microsoft PowerPoint belgesi
+	[uk]description=документ у форматі Microsoft PowerPoint
+	[vi]description=Tài liệu MS PowerPoint
+	[wa]description=Documint Microsoft PowerPoint
+	[zh_CN]description=Microsoft PowerPoint 文档
+	[zh_TW]description=微軟 PowerPoint 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Presentation
+	[am]category=ሰነዶች/Presentation
+	[ar]category=مستندات/تقديم
+	[az]category=Sənədlər/Nümayiş
+	[be]category=Дакумэнты/Прадстаўленьне
+	[bg]category=Документи/Презентации
+	[bn]category=নথীসমূহ(documents)/উপস্থাপনা
+	[ca]category=Documents/Presentació
+	[cs]category=Dokumenty/Prezentace
+	[cy]category=Dogfennau/Cyflwyniad
+	[da]category=Dokumenter/Præsentation
+	[de]category=Dokumente/Präsentation
+	[el]category=Έγγραφα/Παρουσίαση
+	[eo]category=Dokumentoj/Prezentaĵo
+	[es]category=Documentos/Presentación
+	[et]category=Dokumendid/Presentatsioon
+	[fi]category=Asiakirjat/Esitys
+	[fr]category=Documents/Présentation
+	[ga]category=Doiciméad/Toirbheartas
+	[he]category=מסמכים/מצגות
+	[hi]category=दस्तावेजद/प्रिजेन्टेशन
+	[hu]category=Dokumentum/Prezentáció
+	[id]category=Dokumen/Presentasi
+	[is]category=SKjöl/Framsetning
+	[it]category=Documenti/Presentazione
+	[ja]category=ドキュメント/プレゼンテーション系
+	[ko]category=문서/프리젠테이션
+	[li]category=Dokkemènter/Presentasie
+	[lt]category=Dokumentai/Pateiktys
+	[lv]category=Dokumenti/Presentācija
+	[mk]category=Документи/Презентација
+	[mn]category=Баримтууд/Танилцуулга
+	[ms]category=Dokumen/Persembahan
+	[ne]category=कागजातहरु/प्रस्तुतिकरण%
+	[nl]category=Documenten/Presentatie
+	[nn]category=Dokument/Presentasjon
+	[no]category=Dokumenter/Presentasjon
+	[pl]category=Dokumenty/Prezentacja
+	[pt]category=Documentos/Apresentação
+	[pt_BR]category=Documentos/Apresentação
+	[ro]category=Documente/Prezentare
+	[ru]category=Документы/Презентации
+	[sk]category=Dokumenty/Prezentácia
+	[sl]category=Dokumenti/Prezentacije
+	[sq]category=Dokumente/Prezantim
+	[sr]category=Документ/Презентација
+	[sr@Latn]category=Dokument/Prezentacija
+	[sv]category=Dokument/Presentation
+	[tr]category=Belge/Sunum
+	[uk]category=Документи/Презентація
+	[vi]category=Tài liệu/Trình bày
+	[wa]category=Documints/Prezintåcion
+	[zh_CN]category=文档/演示文稿
+	[zh_TW]category=文件/簡報檔
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+application/vnd.stardivision.calc
+	description=StarCalc spreadsheet
+	[ar]description=صفحة جدولة StarCalc
+	[az]description=StarCalc hesab cədvəli
+	[be]description=Электронная табліца StarCalc
+	[bg]description=StarCalc таблица
+	[bn]description=স্টারক্যাল্ক স্প্রেডশিট
+	[ca]description=Full de càlcul d'StarCalc
+	[cs]description=Tabulka StarCalc
+	[cy]description=Taenlen StarCalc
+	[da]description=StarCalc-regneark
+	[de]description=StarCalc-Tabellenkalkulation
+	[el]description=Λογιστικό φύλλο StarCalc
+	[eo]description=StarCalc sterntabelo
+	[es]description=Hoja de cálculo de StarCalc
+	[et]description=StarCalc arvutustabel
+	[fa]description=صفحه‌گسترده‌ی StarCalc
+	[fi]description=StarCalc-taulukko
+	[fr]description=Feuille de calcul StarCalc
+	[ga]description=scarbhileog ó StarClac
+	[gl]description=Folla de cálculo do StarCalc
+	[he]description=גיליון נתונים StarCalc
+	[hi]description=स्टारकेल्क स्प्रेडशीट
+	[hu]description=StarCalc-munkafüzet
+	[id]description=StarCalc spreadsheet
+	[is]description=StarCalc töflureiknir
+	[it]description=Foglio di calcolo StarCalc
+	[ja]description=StarCalc スプレッドシート
+	[ko]description=StarCalc 스프레드시트
+	[li]description=StarCalc spreadsheet
+	[lt]description=StarCalc skaičialentė
+	[lv]description=StarCalc izklājlapa
+	[mk]description=StarCalc spreadsheet
+	[mn]description=StarCalc хүснэгт
+	[ms]description=Hamparan StarCalc
+	[ne]description=स्टारक्याल्क सप्रेडशिट
+	[nl]description=StarCalc spreadsheet
+	[nn]description=StarCalc-rekneark
+	[no]description=StarCalc-regneark
+	[pl]description=Arkusz kalkulacyjny StarCalc
+	[pt]description=Folha de cálculo StarCalc
+	[pt_BR]description=Planilha do StarCalc
+	[ro]description=Foaie de calcul StarCalc
+	[ru]description=таблица формата StarCalc
+	[sk]description=Tabuľka StarCalc
+	[sl]description=Preglednica StarCalc
+	[sq]description=Fletë llogaritëse StarCalc
+	[sr]description=StarCalc табеларни прорачун
+	[sr@Latn]description=StarCalc tabelarni proračun
+	[sv]description=StarCalc-kalkylblad
+	[tr]description=StarCalc hesap tablosu
+	[uk]description=електронна таблиця у форматі StarCalc
+	[vi]description=Bảng tính StarCalc
+	[wa]description=Foye tåvleu StarCalc
+	[zh_CN]description=StarCalc 电子表格
+	[zh_TW]description=StarCalc 試算表
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+
+application/vnd.stardivision.chart
+	description=StarChart chart
+	[ar]description=رسم بياني StarChart
+	[az]description=StarChart diaqramı
+	[be]description=Дыяграма StarChart
+	[bg]description=StarChart графика
+	[bn]description=স্টারচার্ট মানচিত্র
+	[ca]description=Gràfica d'StarChart
+	[cs]description=Graf StarChart
+	[cy]description=Siart StarChart
+	[da]description=StarChart-diagram
+	[de]description=StarCalc-Balkendiagramm
+	[el]description=Γράφημα StarChart
+	[eo]description=StarChart karto
+	[es]description=Gráfico de StarChart
+	[et]description=StarChart diagramm
+	[fi]description=StarChart-kaavio
+	[fr]description=Graphique StarChart
+	[gl]description=Gráfica do StarChart
+	[he]description=טבלת StarChart
+	[hi]description=स्टार्टचार्ट चार्ट
+	[hu]description=StarChart-grafikon
+	[id]description=StarChart chart
+	[is]description=StarChart kort
+	[it]description=Grafico StarChart
+	[ja]description=StarChart のチャート
+	[ko]description=StarCalc 표
+	[li]description=StarChart grafik
+	[lt]description=StarChart diagrama
+	[lv]description=StarChart grafiks
+	[mk]description=StarChart chart
+	[mn]description=StarChart диаграмм
+	[ms]description=Carta StarChart
+	[ne]description=स्टारचार्ट चार्ट 
+	[nl]description=StarChart grafiek
+	[nn]description=StarChart-graf
+	[no]description=StarChart graf
+	[pl]description=Wykres StarChart
+	[pt]description=Gráfico StarChart
+	[pt_BR]description=Gráfico StarChart
+	[ro]description=Diagramă StarChart
+	[ru]description=диаграмма формата StarChart
+	[sk]description=Graf StarChart
+	[sl]description=Graf StarChart
+	[sq]description=Grafik StarChart
+	[sr]description=StarChart графикон
+	[sr@Latn]description=StarChart grafikon
+	[sv]description=StarChart-diagram
+	[tr]description=StarChart çizgesi
+	[uk]description=графік у форматі StarChart
+	[vi]description=Biểu đồ StarChart
+	[zh_CN]description=StarChart 图表
+	[zh_TW]description=StarChart 圖表
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents
+	[am]category=ሰነዶች
+	[ar]category=مستندات
+	[az]category=Sənədlər
+	[be]category=Дакумэнты
+	[bg]category=Документи
+	[bn]category=নথীসমূহ (ডকুমেন্টন্ট্স্)
+	[ca]category=Documents
+	[cs]category=Dokumenty
+	[cy]category=Dogfennau
+	[da]category=Dokumenter
+	[de]category=Dokumente
+	[el]category=Έγγραφα
+	[eo]category=Dokumentoj
+	[es]category=Documentos
+	[et]category=Dokumendid
+	[fa]category=نوشتارها
+	[fi]category=Asiakirjat
+	[fr]category=Documents
+	[ga]category=Doiciméad
+	[he]category=מסמכים
+	[hi]category=दस्तावेज
+	[hu]category=Dokumentumok
+	[id]category=Dokumen
+	[is]category=Skjöl
+	[it]category=Documenti
+	[ja]category=ドキュメント
+	[ko]category=문서
+	[li]category=Dokkemènter
+	[lt]category=Dokumentai
+	[lv]category=Dokumenti
+	[mk]category=Документи
+	[ml]category=ഗ്രന്ഥങ്ങള്
+	[mn]category=Баримтууд
+	[ms]category=Dokumen
+	[ne]category=कागजातहरु%
+	[nl]category=Documenten
+	[nn]category=Dokument
+	[no]category=Dokumenter
+	[pl]category=Dokumenty
+	[pt]category=Documentos
+	[pt_BR]category=Documentos
+	[ro]category=Documente
+	[ru]category=Документы
+	[sk]category=Dokumenty
+	[sl]category=Dokumenti
+	[sq]category=Dokumente
+	[sr]category=Документ
+	[sr@Latn]category=Dokument
+	[sv]category=Dokument
+	[tr]category=Belge
+	[uk]category=Документи
+	[vi]category=Tài liệu
+	[wa]category=Documints
+	[zh_CN]category=文档
+	[zh_TW]category=文件
+	use_category_default=no
+
+application/vnd.stardivision.draw
+	description=StarDraw drawing
+	[ar]description=رسم StarDraw
+	[az]description=StarDraw rəsmi
+	[be]description=Рысунак StarDraw
+	[bg]description=StarDraw чертеж
+	[bn]description=স্টারড্র ছবি
+	[ca]description=Dibuix d'StarDraw
+	[cs]description=Kresba StarDraw
+	[cy]description=Darlun StarDraw
+	[da]description=StarDraw-tegning
+	[de]description=StarDraw-Zeichnung
+	[el]description=Σχέδιο StarDraw 
+	[eo]description=SarDraw grafiko
+	[es]description=Dibujo de StarDraw
+	[et]description=StarDraw joonistus
+	[fi]description=StarDraw-piirros
+	[fr]description=Dessin StarDraw
+	[gl]description=Debuxo do StarDraw
+	[he]description=ציור StarDraw
+	[hi]description=स्ट्रारड्रा ड्राइंग
+	[hu]description=StarDraw-rajz
+	[id]description=StarDraw drawing
+	[is]description=StarDraw teikning
+	[it]description=Disegno StarDraw
+	[ja]description=StarDraw のドローファイル
+	[ko]description=StarCalc 드로잉
+	[li]description=StarDraw teikening
+	[lt]description=StarDraw brėžinys
+	[lv]description=StarDraw zīmējums
+	[mk]description=StarDraw цртеж
+	[mn]description=StarDraw зураг
+	[ms]description=Lukisan StarDraw
+	[ne]description=स्टारड्र ड्रईंग
+	[nl]description=StarDraw tekening
+	[nn]description=StarDraw-teikning
+	[no]description=StarDraw tegning
+	[pl]description=Rysunek StarDraw
+	[pt]description=Desenho StarDraw
+	[pt_BR]description=Desenho do StarDraw
+	[ro]description=Desen StarDraw
+	[ru]description=рисунок формата StarDraw
+	[sk]description=Kresba StarDraw
+	[sl]description=Risba StarDraw
+	[sq]description=Vizatim StarDraw
+	[sr]description=StarDraw drawing
+	[sr@Latn]description=StarDraw drawing
+	[sv]description=StarDraw-teckning
+	[tr]description=StarDraw çizimi
+	[uk]description=рисунок у форматі StarDraw
+	[vi]description=Bản vẽ StarDraw
+	[zh_CN]description=StarDraw 绘图
+	[zh_TW]description=StarDraw 繪圖
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents
+	[am]category=ሰነዶች
+	[ar]category=مستندات
+	[az]category=Sənədlər
+	[be]category=Дакумэнты
+	[bg]category=Документи
+	[bn]category=নথীসমূহ (ডকুমেন্টন্ট্স্)
+	[ca]category=Documents
+	[cs]category=Dokumenty
+	[cy]category=Dogfennau
+	[da]category=Dokumenter
+	[de]category=Dokumente
+	[el]category=Έγγραφα
+	[eo]category=Dokumentoj
+	[es]category=Documentos
+	[et]category=Dokumendid
+	[fa]category=نوشتارها
+	[fi]category=Asiakirjat
+	[fr]category=Documents
+	[ga]category=Doiciméad
+	[he]category=מסמכים
+	[hi]category=दस्तावेज
+	[hu]category=Dokumentumok
+	[id]category=Dokumen
+	[is]category=Skjöl
+	[it]category=Documenti
+	[ja]category=ドキュメント
+	[ko]category=문서
+	[li]category=Dokkemènter
+	[lt]category=Dokumentai
+	[lv]category=Dokumenti
+	[mk]category=Документи
+	[ml]category=ഗ്രന്ഥങ്ങള്
+	[mn]category=Баримтууд
+	[ms]category=Dokumen
+	[ne]category=कागजातहरु%
+	[nl]category=Documenten
+	[nn]category=Dokument
+	[no]category=Dokumenter
+	[pl]category=Dokumenty
+	[pt]category=Documentos
+	[pt_BR]category=Documentos
+	[ro]category=Documente
+	[ru]category=Документы
+	[sk]category=Dokumenty
+	[sl]category=Dokumenti
+	[sq]category=Dokumente
+	[sr]category=Документ
+	[sr@Latn]category=Dokument
+	[sv]category=Dokument
+	[tr]category=Belge
+	[uk]category=Документи
+	[vi]category=Tài liệu
+	[wa]category=Documints
+	[zh_CN]category=文档
+	[zh_TW]category=文件
+	use_category_default=no
+
+application/vnd.stardivision.impress
+	description=StarImpress presentation
+	[ar]description=تقديم StarImpress
+	[az]description=StarImpress nümayişi
+	[be]description=Прэзентацыя StarImpress
+	[bg]description=StarImpress презентация
+	[bn]description=স্টারইম্প্রেস উপস্থাপনা
+	[ca]description=Presentació d'StarImpress
+	[cs]description=Prezentace StarImpress
+	[cy]description=Cyflwyniad StarImpress
+	[da]description=StarImpress-præsentation
+	[de]description=StarImpress-Präsentation
+	[el]description=Παρουσίαση StarImpress
+	[eo]description=StarImpress prezentaĵo
+	[es]description=Presentación de StarImpress
+	[et]description=StarImpress presentatsioon
+	[fi]description=StarImpress-esitys
+	[fr]description=Présentation StarImpress
+	[ga]description=toirbheartas ó StarImpress
+	[gl]description=Presentación do StarImpress
+	[he]description=מצגת StarImpress
+	[hi]description=स्टार इम्प्रेस प्रिजेन्टेशन
+	[hu]description=StarImpress-prezentáció
+	[id]description=presentasi StarImpress
+	[is]description=StarImpress framsetning
+	[it]description=Presentazione StarImpress
+	[ja]description=StarImpress プレゼンテーション
+	[ko]description=StarImpress 프리젠테이션
+	[li]description=StarImpress presentasie
+	[lt]description=StarImpress pateiktis
+	[lv]description=StarImpress prezentācija
+	[mk]description=StarImpress презентација
+	[mn]description=StarImpress танилцуулга
+	[ms]description=Persembahan StarImpress
+	[ne]description=स्टारलमप्रेस प्रस्तुति
+	[nl]description=StarImpress presentatie
+	[nn]description=StarImpress-presentasjon
+	[no]description=StarImpress-presentasjon
+	[pl]description=Prezentacja StarImpress
+	[pt]description=Apresentação StarImpress
+	[pt_BR]description=Apresentação do StarImpress
+	[ro]description=Prezentare StarImpress
+	[ru]description=презентация формата StarImpress
+	[sk]description=Prezentácia StarImpress
+	[sl]description=Predstavitev StarImpress
+	[sq]description=Prezantim StarImpress
+	[sr]description=StarImpress презентација
+	[sr@Latn]description=StarImpress prezentacija
+	[sv]description=StarImpress-presentation
+	[tr]description=StarImpress sunumu
+	[uk]description=презентація у форматі StarImpress
+	[vi]description=Trình bày StarImpress
+	[wa]description=Prezintåcion StarImpress
+	[zh_CN]description=StarImpress 演示文稿
+	[zh_TW]description=StarImpress 簡報檔
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Presentation
+	[am]category=ሰነዶች/Presentation
+	[ar]category=مستندات/تقديم
+	[az]category=Sənədlər/Nümayiş
+	[be]category=Дакумэнты/Прадстаўленьне
+	[bg]category=Документи/Презентации
+	[bn]category=নথীসমূহ(documents)/উপস্থাপনা
+	[ca]category=Documents/Presentació
+	[cs]category=Dokumenty/Prezentace
+	[cy]category=Dogfennau/Cyflwyniad
+	[da]category=Dokumenter/Præsentation
+	[de]category=Dokumente/Präsentation
+	[el]category=Έγγραφα/Παρουσίαση
+	[eo]category=Dokumentoj/Prezentaĵo
+	[es]category=Documentos/Presentación
+	[et]category=Dokumendid/Presentatsioon
+	[fi]category=Asiakirjat/Esitys
+	[fr]category=Documents/Présentation
+	[ga]category=Doiciméad/Toirbheartas
+	[he]category=מסמכים/מצגות
+	[hi]category=दस्तावेजद/प्रिजेन्टेशन
+	[hu]category=Dokumentum/Prezentáció
+	[id]category=Dokumen/Presentasi
+	[is]category=SKjöl/Framsetning
+	[it]category=Documenti/Presentazione
+	[ja]category=ドキュメント/プレゼンテーション系
+	[ko]category=문서/프리젠테이션
+	[li]category=Dokkemènter/Presentasie
+	[lt]category=Dokumentai/Pateiktys
+	[lv]category=Dokumenti/Presentācija
+	[mk]category=Документи/Презентација
+	[mn]category=Баримтууд/Танилцуулга
+	[ms]category=Dokumen/Persembahan
+	[ne]category=कागजातहरु/प्रस्तुतिकरण%
+	[nl]category=Documenten/Presentatie
+	[nn]category=Dokument/Presentasjon
+	[no]category=Dokumenter/Presentasjon
+	[pl]category=Dokumenty/Prezentacja
+	[pt]category=Documentos/Apresentação
+	[pt_BR]category=Documentos/Apresentação
+	[ro]category=Documente/Prezentare
+	[ru]category=Документы/Презентации
+	[sk]category=Dokumenty/Prezentácia
+	[sl]category=Dokumenti/Prezentacije
+	[sq]category=Dokumente/Prezantim
+	[sr]category=Документ/Презентација
+	[sr@Latn]category=Dokument/Prezentacija
+	[sv]category=Dokument/Presentation
+	[tr]category=Belge/Sunum
+	[uk]category=Документи/Презентація
+	[vi]category=Tài liệu/Trình bày
+	[wa]category=Documints/Prezintåcion
+	[zh_CN]category=文档/演示文稿
+	[zh_TW]category=文件/簡報檔
+	use_category_default=yes
+
+application/vnd.stardivision.mail
+	description=StarMail file
+	[am]description=የStarMail ፋይል
+	[ar]description=ملف StarMail
+	[az]description=StarMail faylı
+	[be]description=Файл StarMail
+	[bg]description=StarMail файл
+	[bn]description=স্টারমেইল ফাইল
+	[ca]description=Fitxer d'StarMail
+	[cs]description=Soubor StarMail
+	[cy]description=Ffeil StarMail
+	[da]description=StarMail-fil
+	[de]description=Star-Mail-Datei
+	[el]description=Αρχείο StarMail
+	[eo]description=StarMail dosiero
+	[es]description=Archivo StarMail
+	[et]description=StarMail fail
+	[fa]description=پرونده‌ی StarMail
+	[fi]description=StarMail-tiedosto
+	[fr]description=Fichier StarMail
+	[ga]description=Comhad StarMail
+	[gl]description=Ficheiro do StarMail
+	[he]description=קובץ StarMail
+	[hi]description=स्टारमेल फाइल
+	[hu]description=StarMail-fájl
+	[id]description=file StarMail
+	[is]description=StarMail skrá
+	[it]description=File StarMail
+	[ja]description=StarMail のファイル
+	[ko]description=StarMail 파일
+	[li]description=StarMail besjtandj
+	[lt]description=StarMail byla
+	[lv]description=StarMail fails
+	[mk]description=StarMail датотека
+	[mn]description=StarMail файл
+	[ms]description=Fail StarMail
+	[ne]description=स्टार मेल फाईलl
+	[nl]description=StarMail bestand
+	[nn]description=StarMail-fil
+	[no]description=StarMail-fil
+	[pl]description=Plik StarMail
+	[pt]description=Ficheiro StarMail
+	[pt_BR]description=Arquivo StarMail
+	[ro]description=Fişier StarMail
+	[ru]description=файл формата StarMail
+	[sk]description=Súbor StarMail
+	[sl]description=Datoteka StarMail
+	[sq]description=File StarMail
+	[sr]description=StarMail датотека
+	[sr@Latn]description=StarMail datoteka
+	[sv]description=StarMail-fil
+	[tr]description=StarMail dosyası
+	[uk]description=файл у форматі StarMail
+	[vi]description=Tập tin StarMail
+	[zh_CN]description=StarMail 文件
+	[zh_TW]description=StarMail 檔案
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents
+	[am]category=ሰነዶች
+	[ar]category=مستندات
+	[az]category=Sənədlər
+	[be]category=Дакумэнты
+	[bg]category=Документи
+	[bn]category=নথীসমূহ (ডকুমেন্টন্ট্স্)
+	[ca]category=Documents
+	[cs]category=Dokumenty
+	[cy]category=Dogfennau
+	[da]category=Dokumenter
+	[de]category=Dokumente
+	[el]category=Έγγραφα
+	[eo]category=Dokumentoj
+	[es]category=Documentos
+	[et]category=Dokumendid
+	[fa]category=نوشتارها
+	[fi]category=Asiakirjat
+	[fr]category=Documents
+	[ga]category=Doiciméad
+	[he]category=מסמכים
+	[hi]category=दस्तावेज
+	[hu]category=Dokumentumok
+	[id]category=Dokumen
+	[is]category=Skjöl
+	[it]category=Documenti
+	[ja]category=ドキュメント
+	[ko]category=문서
+	[li]category=Dokkemènter
+	[lt]category=Dokumentai
+	[lv]category=Dokumenti
+	[mk]category=Документи
+	[ml]category=ഗ്രന്ഥങ്ങള്
+	[mn]category=Баримтууд
+	[ms]category=Dokumen
+	[ne]category=कागजातहरु%
+	[nl]category=Documenten
+	[nn]category=Dokument
+	[no]category=Dokumenter
+	[pl]category=Dokumenty
+	[pt]category=Documentos
+	[pt_BR]category=Documentos
+	[ro]category=Documente
+	[ru]category=Документы
+	[sk]category=Dokumenty
+	[sl]category=Dokumenti
+	[sq]category=Dokumente
+	[sr]category=Документ
+	[sr@Latn]category=Dokument
+	[sv]category=Dokument
+	[tr]category=Belge
+	[uk]category=Документи
+	[vi]category=Tài liệu
+	[wa]category=Documints
+	[zh_CN]category=文档
+	[zh_TW]category=文件
+	use_category_default=no
+
+application/vnd.stardivision.math
+	description=StarMath document
+	[am]description=የStarMath ሰነድ
+	[ar]description=مستند StarMath
+	[az]description=MathML sənədi
+	[be]description=Дакумэнт StarMath
+	[bg]description=StarMath документ
+	[bn]description=স্টারম্যাথ নথী
+	[ca]description=Document d'StarML
+	[cs]description=Dokument StarMath
+	[cy]description=Dogfen StarMath
+	[da]description=StarMath-dokument
+	[de]description=StarMath-Dokument
+	[el]description=Έγγραφο StarMath
+	[eo]description=StarMath dokumento
+	[es]description=Documento de StarMath
+	[et]description=StarMath dokument
+	[fi]description=StarMath-asiakirja
+	[fr]description=Document StarMath
+	[ga]description=Doiciméad StarMath
+	[gl]description=Documento do StarMath
+	[he]description=מסמך StarMath
+	[hi]description=स्टारमेथ दस्तावेज
+	[hu]description=StarMath-dokumentum
+	[id]description=dokumen StarMath
+	[is]description=StarMath skjal
+	[it]description=Documento StarMath
+	[ja]description=StartMath ドキュメント
+	[ko]description=StarMath 문서
+	[li]description=StarMath dokkemènt
+	[lt]description=StarMath dokumentas
+	[lv]description=StarMath dokuments
+	[mk]description=StarMath документ
+	[mn]description=StarMath баримт бичиг
+	[ms]description=Dokumen StarMath
+	[ne]description=स्टार म्याथ कागजात
+	[nl]description=StarMath document
+	[nn]description=StarMath-dokument
+	[no]description=StarMath-dokument
+	[pl]description=Dokument StarMath
+	[pt]description=Documento StarMath
+	[pt_BR]description=Documento do StarMath
+	[ro]description=Document StarMath
+	[ru]description=документ формата StarMath
+	[sk]description=Dokument StarMath
+	[sl]description=Dokument StarMath
+	[sq]description=Dokument StarMath
+	[sr]description=StarMath документ
+	[sr@Latn]description=StarMath dokument
+	[sv]description=StarMath-dokument
+	[tr]description=StarMath belgesi
+	[uk]description=документ у форматі StarMath
+	[vi]description=Tài liệu StarMath
+	[wa]description=Documint StarMath
+	[zh_CN]description=StarMath 文档
+	[zh_TW]description=StarMath 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Numeric
+	[am]category=ሰነዶች/Numeric
+	[ar]category=مستندات/عددي
+	[az]category=Sənədlər/Ədədlər
+	[be]category=Дакумэнты/Numeric
+	[bg]category=Документи/Числени
+	[bn]category=নথীসমূহ(documents)/নিউমেরিক
+	[ca]category=Documents/Numèric
+	[cs]category=Dokumenty/Numerické
+	[cy]category=Dogfennau/Rhifyddol
+	[da]category=Dokumenter/Tal
+	[de]category=Dokumente/Numerisch
+	[el]category=Έγγραφα/Αριθμητικά
+	[eo]category=Dokumentoj/Nobra
+	[es]category=Documentos/Numérico
+	[fa]category=نوشتارها/عددی
+	[fi]category=Asiakirjat/Numeriikka
+	[fr]category=Documents/Numérique
+	[ga]category=Doiciméad/Uimhriúil
+	[he]category=מסמכים/מספריים
+	[hi]category=दस्तावेज/आंकिक
+	[hu]category=Dokumentum/Számadatok
+	[id]category=Dokumen/Numerik
+	[is]category=Skjöl/Töluleg
+	[it]category=Documenti/Numerico
+	[ja]category=ドキュメント/数値系
+	[ko]category=문서/계산
+	[li]category=Dokkemènter/Numeriek
+	[lt]category=Dokumentai/Skaitiniai
+	[lv]category=Dokumenti/Gnumeric
+	[mk]category=Документи/Нумерички
+	[mn]category=Баримтууд/Тоо
+	[ms]category=Dokumen/Numerik
+	[ne]category=कागजातहरु/न्युमेरीक%
+	[nl]category=Documenten/Numeriek
+	[nn]category=Dokument/Numerisk
+	[no]category=Dokumenter/Numerisk
+	[pl]category=Dokumenty/Liczbowe
+	[pt]category=Documentos/Numérico
+	[pt_BR]category=Documentos/Numérico
+	[ro]category=Documente/Numeric
+	[ru]category=Документы/Числовые
+	[sk]category=Dokumenty/Číselné
+	[sl]category=Dokumenti/Numerični
+	[sq]category=Dokumente/Numerikë
+	[sr]category=Документ/Нумерички запис
+	[sr@Latn]category=Dokument/Numerički zapis
+	[sv]category=Dokument/Numeriskt
+	[tr]category=Belge/Sayısal
+	[uk]category=Документи/Числові
+	[vi]category=Tài liệu/Số
+	[wa]category=Documints/Limerike
+	[zh_CN]category=文档/数字
+	[zh_TW]category=文件/數學
+	use_category_default=no
+
+application/vnd.stardivision.writer
+	description=StarWriter document
+	[am]description=የStarWriter ሰነድ
+	[ar]description=مستند StarWriter
+	[az]description=StarWriter sənədi
+	[be]description=Дакумэнт StarWriter
+	[bg]description=StarWriter документ
+	[bn]description=স্টাররাইটার নথী
+	[ca]description=Document d'StarWriter
+	[cs]description=Dokument StarWriter
+	[cy]description=Dogfen StarWriter
+	[da]description=StarWriter-dokument
+	[de]description=StarWriter-Dokument
+	[el]description=Έγγραφο StarOffice Writer
+	[eo]description=StarWriter dokumento
+	[es]description=Documento de StarWriter
+	[et]description=StarWriter dokument
+	[fi]description=StarWriter-asiakirja
+	[fr]description=Document StarWriter
+	[ga]description=Doiciméad StarWriter
+	[gl]description=Documento do StarWriter
+	[he]description=מסמך StarWriter
+	[hi]description=स्टारराइटर दस्तावेज
+	[hu]description=StarWriter-dokumentum
+	[id]description=dokumen StarWriter
+	[is]description=StarWriter skjal
+	[it]description=Documento StarWriter
+	[ja]description=StarWriter ドキュメント
+	[ko]description=StarWriter 문서
+	[li]description=StarWriter dokkemènt
+	[lt]description=StarWriter dokumentas
+	[lv]description=StarWriter dokuments
+	[mk]description=StarWriter документ
+	[mn]description=StarWriter баримт
+	[ms]description=Dokumen StarWriter
+	[ne]description=स्टार राईटर कागजात
+	[nl]description=StarWriter document
+	[nn]description=StarWriter document
+	[no]description=StarWriter-dokument
+	[pl]description=Dokument StarWriter
+	[pt]description=Documento StarWriter
+	[pt_BR]description=Documento do StarWriter
+	[ro]description=Document StarWriter
+	[ru]description=документ формата StarWriter
+	[sk]description=Dokument StarWriter
+	[sl]description=Dokument StarWriter
+	[sq]description=Dokument StarWriter
+	[sr]description=StarWriter документ
+	[sr@Latn]description=StarWriter dokument
+	[sv]description=StarWriter-dokument
+	[tr]description=StarWriter belgesi
+	[uk]description=документ у форматі StarWriter
+	[vi]description=Tài liệu StarWriter
+	[wa]description=Documint StarWriter
+	[zh_CN]description=StarWriter 文档
+	[zh_TW]description=StarWriter 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+
+application/vnd.sun.xml.calc
+	description=OpenOffice.org spreadsheet
+	[ar]description=صفحة جداول OpenOffice.org
+	[az]description=StarOffice hesab cədvəli nümunəsi
+	[be]description=Электронная табліца OpenOffice.org
+	[bg]description=OpenOffice.org таблица
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) স্প্রেডশিট
+	[ca]description=Full de càlcul d'OpenOffice.org
+	[cs]description=Tabulka OpenOffice.org
+	[cy]description=Taenlen OpenOffice.org
+	[da]description=OpenOffice.org-regneark
+	[de]description=OpenOffice-Tabellendokument
+	[el]description=Λογιστικό φύλλο OpenOffice.org
+	[eo]description=OpenOffice.org sterntabelo
+	[es]description=Hoja de cálculo de OpenOffice.org
+	[et]description=OpenOffice.org arvutustabel
+	[fi]description=OpenOffice.org-taulukko
+	[fr]description=Feuille de calcul OpenOffice.org
+	[ga]description=scarbhileog ó OpenOffice.org
+	[gl]description=Folla de cálculo de OpenOffice.org
+	[he]description=גיליון נתונים OpenOffice.org
+	[hi]description=ओपनआफिस.ओआरजी स्पेरडशट
+	[hu]description=OpenOffice.org-munkafüzet
+	[id]description=OpenOffice.org spreadsheet
+	[is]description=OpenOffice.org töflureiknir
+	[it]description=Foglio di calcolo OpenOffice.org
+	[ja]description=OpenOffice.org スプレッドシート
+	[ko]description=OpenOffice.org 스프레드시트
+	[li]description=OpenOffice.org spreadsheet
+	[lt]description=OpenOffice.org skaičialentė
+	[lv]description=OpenOffice.org izklājlapa
+	[mk]description=OpenOffice.org spreadsheet
+	[mn]description=OpenOffice.org хүснэгт
+	[ms]description=Hamparan OpenOffice.org
+	[ne]description=ओपन अफिस.ओ आर जि स्प्रेडशिट
+	[nl]description=OpenOffice.org spreadsheet
+	[nn]description=OpenOffice.org-rekneark
+	[no]description=OpenOffice.org regneark
+	[pl]description=Arkusz kalkulacyjny OpenOffice.org
+	[pt]description=Folha de cálculo OpenOffice.org
+	[pt_BR]description=Planilha do OpenOffice.org
+	[ro]description=Foaie de calcul OpenOffice.org
+	[ru]description=таблица формата OpenOffice.org
+	[sk]description=Tabuľka OpenOffice.org
+	[sl]description=Preglednica OpenOffice.org
+	[sq]description=Fletë llogaritëse OpenOffice.org
+	[sr]description=OpenOffice.org табеларни прорачун
+	[sr@Latn]description=OpenOffice.org tabelarni proračun
+	[sv]description=OpenOffice.org-kalkylblad
+	[tr]description=OpenOffice.org hesap tablosu
+	[uk]description=електронна таблиця у форматі OpenOffice.org
+	[vi]description=Bảng tính OpenOffice
+	[wa]description=Foye tåvleu d' OpenOffice.org
+	[zh_CN]description=OpenOffice.org 电子表格
+	[zh_TW]description=OpenOffice.org 試算表
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+
+application/vnd.sun.xml.calc.template
+	description=OpenOffice.org spreadsheet template
+	[ar]description=نموذج صفحة جداول OpenOffice.org
+	[az]description=OpenOffice.org hesab cədvəli 
+	[be]description=Шаблён электроннае табліцы OpenOffice.org
+	[bg]description=OpenOffice.org шаблон за таблици
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) স্প্রেডশিট ছাঁচ
+	[ca]description=Plantilla de full de càlcul d'OpenOffice.org
+	[cs]description=Šablona tabulky OpenOffice.org
+	[cy]description=Templed Taenlen OpenOffice.org
+	[da]description=OpenOffice.org-regnearksskabelon
+	[de]description=OpenOffice-Tabellendokumentvorlage
+	[el]description=Πρότυπο Λογιστικό φύλλο OpenOffice.org
+	[eo]description=OpenOffice.org sterntabela ŝablono
+	[es]description=Plantilla de hoja de cálculo OpenOffice.org
+	[et]description=OpenOffice.org arvutustabeli mall
+	[fi]description=OpenOffice.org-taulukkomalli
+	[fr]description=Modèle de feuille de calcul OpenOffice.org
+	[gl]description=Patrón de folla de cálculo de OpenOffice.org
+	[he]description=תבנית גיליון נתונים OpenOffice.org
+	[hi]description=ओपनआफिस.ओआरजी स्प्रेडशीट टेम्पलेट
+	[hu]description=OpenOffice.org-munkafüzetsablon
+	[id]description=OpenOffice.org spreadsheet template
+	[is]description=OpenOffice.org töflureikni skapalón
+	[it]description=Modello foglio di calcolo OpenOffice.org
+	[ja]description=OpenOffice.org スプレッドシートのテンプレート
+	[ko]description=OpenOffice.org 스프레드시트
+	[li]description=OpenOffice.org spreadsheet sjabloon
+	[lt]description=OpenOffice.org skaičialentės šablonas
+	[lv]description=OpenOffice.org izklājlapas paraugs
+	[mk]description=OpenOffice.org spreadsheet мустра
+	[mn]description=OpenOffice.org хүснэгтийн загвар
+	[ms]description=Templat hamparan OpenOffice.org
+	[ne]description=ओपन अफिस.ओ आर जि स्प्रेडशिट टेमप्लेट
+	[nl]description=OpenOffice.org spreadsheet sjabloon
+	[nn]description=OpenOffice.org-reknearkmal
+	[no]description=OpenOffice.org regnearkmal
+	[pl]description=Szablon arkusza kalkulacyjnego OpenOffice.org
+	[pt]description=Modelo de folha de cálculo OpenOffice.org
+	[pt_BR]description=Modelo de planilha do OpenOffice.org
+	[ro]description=Şablon pentru foaie de calcul OpenOffice.org
+	[ru]description=шаблон таблицы формата OpenOffice.org
+	[sk]description=Šablóna tabuľky OpenOffice.org
+	[sl]description=Predloga preglednice OpenOffice.org
+	[sq]description=Model flete llogaritëse OpenOffice.org
+	[sr]description=OpenOffice.org шема табеларног прорачуна
+	[sr@Latn]description=OpenOffice.org šema tabelarnog proračuna
+	[sv]description=OpenOffice.org-kalkylbladsmall
+	[tr]description=OpenOffice.org hesap tablosu şablonu
+	[uk]description=шаблон електронної таблиці у форматі OpenOffice.org
+	[vi]description=Mẫu bảng tính OpenOffice
+	[wa]description=Modele foye tåvleu d' OpenOffice.org
+	[zh_CN]description=OpenOffice.org 电子表格模板
+	[zh_TW]description=OpenOffice.org 試算表範本
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+
+application/vnd.sun.xml.draw
+	description=OpenOffice.org drawing
+	[ar]description=رسم OpenOffice.org
+	[az]description=OpenOffice.org rəsmi
+	[be]description=Рысунак OpenOffice.org
+	[bg]description=OpenOffice.org чертеж
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org)  ছবি
+	[ca]description=Dibuix d'OpenOffice.org
+	[cs]description=Kresba OpenOffice.org
+	[cy]description=Darlun OpenOffice.org
+	[da]description=OpenOffice.org-tegning
+	[de]description=OpenOffice-Zeichnung
+	[el]description=Σχέδιο OpenOffice.org
+	[eo]description=OpenOffice.org grafikaĵo
+	[es]description=Dibujo de OpenOffice.org
+	[et]description=OpenOffice.org joonistus
+	[fi]description=OpenOffice.org-piirros
+	[fr]description=Dessin OpenOffice.org
+	[ga]description=tarraingt ó OpenOffice.org
+	[gl]description=Debuxo de OpenOffice.org
+	[he]description=ציור OpenOffice.org
+	[hi]description=ओपनआफिस.ओआरजी ड्राइंग
+	[hu]description=OpenOffice.org-rajz
+	[id]description=Gambar OpenOffice.org
+	[is]description=OpenOffice.org teikning
+	[it]description=Disegno OpenOffice.org
+	[ja]description=OpenOffice.org drawing のファイル
+	[ko]description=OpenOffice.org 드로잉
+	[li]description=OpenOffice.org teikening
+	[lt]description=OpenOffice.org brėžinys
+	[lv]description=OpenOffice.org zīmējums
+	[mk]description=OpenOffice.org цртеж
+	[mn]description=OpenOffice.org зураг
+	[ms]description=Lukisan OpenOffice.org
+	[ne]description=ओपन अफिस.ओ आर जि चित्रबनाऊ
+	[nl]description=OpenOffice.org tekening
+	[nn]description=OpenOffice.org-teikning
+	[no]description=OpenOffice.org tegning
+	[pl]description=Rysunek OpenOffice.org
+	[pt]description=Desenho OpenOffice.org
+	[pt_BR]description=Desenenho do OpenOffice.org
+	[ro]description=Desen OpenOffice.org
+	[ru]description=рисунок формата OpenOffice.org
+	[sk]description=Kresba OpenOffice.org
+	[sl]description=Risba OpenOffice.org
+	[sq]description=Vizatim OpenOffice.org
+	[sr]description=OpenOffice.org цртеж
+	[sr@Latn]description=OpenOffice.org crtež
+	[sv]description=OpenOffice.org-teckning
+	[tr]description=OpenOffice.org çizimi
+	[uk]description=рисунок у форматі OpenOffice.org
+	[vi]description=Bản vẽ OpenOffice
+	[zh_CN]description=OpenOffice.org drawing
+	[zh_TW]description=OpenOffice.org 繪圖
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents
+	[am]category=ሰነዶች
+	[ar]category=مستندات
+	[az]category=Sənədlər
+	[be]category=Дакумэнты
+	[bg]category=Документи
+	[bn]category=নথীসমূহ (ডকুমেন্টন্ট্স্)
+	[ca]category=Documents
+	[cs]category=Dokumenty
+	[cy]category=Dogfennau
+	[da]category=Dokumenter
+	[de]category=Dokumente
+	[el]category=Έγγραφα
+	[eo]category=Dokumentoj
+	[es]category=Documentos
+	[et]category=Dokumendid
+	[fa]category=نوشتارها
+	[fi]category=Asiakirjat
+	[fr]category=Documents
+	[ga]category=Doiciméad
+	[he]category=מסמכים
+	[hi]category=दस्तावेज
+	[hu]category=Dokumentumok
+	[id]category=Dokumen
+	[is]category=Skjöl
+	[it]category=Documenti
+	[ja]category=ドキュメント
+	[ko]category=문서
+	[li]category=Dokkemènter
+	[lt]category=Dokumentai
+	[lv]category=Dokumenti
+	[mk]category=Документи
+	[ml]category=ഗ്രന്ഥങ്ങള്
+	[mn]category=Баримтууд
+	[ms]category=Dokumen
+	[ne]category=कागजातहरु%
+	[nl]category=Documenten
+	[nn]category=Dokument
+	[no]category=Dokumenter
+	[pl]category=Dokumenty
+	[pt]category=Documentos
+	[pt_BR]category=Documentos
+	[ro]category=Documente
+	[ru]category=Документы
+	[sk]category=Dokumenty
+	[sl]category=Dokumenti
+	[sq]category=Dokumente
+	[sr]category=Документ
+	[sr@Latn]category=Dokument
+	[sv]category=Dokument
+	[tr]category=Belge
+	[uk]category=Документи
+	[vi]category=Tài liệu
+	[wa]category=Documints
+	[zh_CN]category=文档
+	[zh_TW]category=文件
+	use_category_default=no
+
+application/vnd.sun.xml.draw.template
+	description=OpenOffice.org drawing template
+	[ar]description=نموذج رسم OpenOffice.org
+	[az]description=StarOffice Writer sənədi nümunəsi
+	[be]description=Шаблён рысунку OpenOffice.org
+	[bg]description=OpenOffice.org шаблон за чертежи
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org)  ছবির ছাঁচ
+	[ca]description=Plantilla de dibuix d'OpenOffice.org
+	[cs]description=Šablona kresby OpenOffice.org
+	[cy]description=Templed Darlun OpenOffice.org
+	[da]description=OpenOffice.org-tegningsskabelon
+	[de]description=OpenOffice-Zeichnungsvorlage
+	[el]description=Πρότυπο σχεδίου OpenOffice.org
+	[eo]description=OpenOffice.org grafikaĵa ŝablono
+	[es]description=Plantilla de dibujo de OpenOffice.org
+	[et]description=OpenOffice.org joonistuse mall
+	[fi]description=OpenOffice.org-piirrosmalli
+	[fr]description=Modèle de dessin OpenOffice.org
+	[gl]description=Patrón de debuxo de OpenOffice.org
+	[he]description=תבנית ציור OpenOffice.org
+	[hi]description=ओपनआफिस.ओआरजी ड्राइंग टेम्पलेट
+	[hu]description=OpenOffice.org-rajzsablon
+	[id]description=Templet gambar OpenOffice.org
+	[is]description=OpenOffice.org teikning skapalón
+	[it]description=Modello disegno OpenOffice.org
+	[ja]description=OpenOffice.org drawing のテンプレート
+	[ko]description=OpenOffice.org 드로잉 템플릿
+	[li]description=OpenOffice.org teikening sjabloon
+	[lt]description=OpenOffice.org brėžinio šablonas
+	[lv]description=OpenOffice.org zīmējuma paraugs
+	[mk]description=OpenOffice.org мустра за цртеж
+	[mn]description=OpenOffice.org зургийн загвар
+	[ms]description=Templat lukisan OpenOffice.org
+	[ne]description=ओपन अफिस.ओ आर जि चित्रबनाऊने टेमप्लेट 
+	[nl]description=OpenOffice.org tekening sjabloon
+	[nn]description=OpenOffice.org teikningsmal
+	[no]description=OpenOffice.org tegningsmal
+	[pl]description=Szablon rysunku OpenOffice.org
+	[pt]description=Modelo de desenho OpenOffice.org
+	[pt_BR]description=Modelo de desenho do OpenOffice.org
+	[ro]description=Şablon desen OpenOffice.org
+	[ru]description=шаблон рисунка формата OpenOffice.org
+	[sk]description=Šablóna kresby OpenOffice.org
+	[sl]description=Predloga risbe OpenOffice.org
+	[sq]description=Model vizatimi OpenOffice.org
+	[sr]description=OpenOffice.org шема цртежа
+	[sr@Latn]description=OpenOffice.org šema crteža
+	[sv]description=OpenOffice.org-teckningsmall
+	[tr]description=OpenOffice.org çizim şablonu
+	[uk]description=шаблон рисунка у форматі OpenOffice.org
+	[vi]description=Mẫu bản vẽ OpenOffice
+	[zh_CN]description=OpenOffice.org drawing 模板
+	[zh_TW]description=OpenOffice.org 繪圖範本
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents
+	[am]category=ሰነዶች
+	[ar]category=مستندات
+	[az]category=Sənədlər
+	[be]category=Дакумэнты
+	[bg]category=Документи
+	[bn]category=নথীসমূহ (ডকুমেন্টন্ট্স্)
+	[ca]category=Documents
+	[cs]category=Dokumenty
+	[cy]category=Dogfennau
+	[da]category=Dokumenter
+	[de]category=Dokumente
+	[el]category=Έγγραφα
+	[eo]category=Dokumentoj
+	[es]category=Documentos
+	[et]category=Dokumendid
+	[fa]category=نوشتارها
+	[fi]category=Asiakirjat
+	[fr]category=Documents
+	[ga]category=Doiciméad
+	[he]category=מסמכים
+	[hi]category=दस्तावेज
+	[hu]category=Dokumentumok
+	[id]category=Dokumen
+	[is]category=Skjöl
+	[it]category=Documenti
+	[ja]category=ドキュメント
+	[ko]category=문서
+	[li]category=Dokkemènter
+	[lt]category=Dokumentai
+	[lv]category=Dokumenti
+	[mk]category=Документи
+	[ml]category=ഗ്രന്ഥങ്ങള്
+	[mn]category=Баримтууд
+	[ms]category=Dokumen
+	[ne]category=कागजातहरु%
+	[nl]category=Documenten
+	[nn]category=Dokument
+	[no]category=Dokumenter
+	[pl]category=Dokumenty
+	[pt]category=Documentos
+	[pt_BR]category=Documentos
+	[ro]category=Documente
+	[ru]category=Документы
+	[sk]category=Dokumenty
+	[sl]category=Dokumenti
+	[sq]category=Dokumente
+	[sr]category=Документ
+	[sr@Latn]category=Dokument
+	[sv]category=Dokument
+	[tr]category=Belge
+	[uk]category=Документи
+	[vi]category=Tài liệu
+	[wa]category=Documints
+	[zh_CN]category=文档
+	[zh_TW]category=文件
+	use_category_default=no
+
+application/vnd.sun.xml.impress
+	description=OpenOffice.org Impress presentation
+	[ar]description=تقديم OpenOffice.org Impress
+	[az]description=OpenOffice.org Impress nümayişi
+	[be]description=Прэзентацыя OpenOffice.org Impress
+	[bg]description=OpenOffice.org Impress презентация
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) ইমপ্রেস প্রেসেন্টেশন
+	[ca]description=Presentació d'OpenOffice.org Impress
+	[cs]description=Prezentace OpenOffice.org Impress
+	[cy]description=Cyflwyniad OpenOffice.org Impress
+	[da]description=OpenOffice.org Impress-præsentation
+	[de]description=OpenOffice-Präsentation
+	[el]description=Παρουσίαση OpenOffice.org Impress
+	[eo]description=OpenOffice.org Impress prezentaĵo
+	[es]description=Presentación de OpenOffice.org Impress
+	[et]description=OpenOffice.org Impress presentatsioon
+	[fi]description=OpenOffice.org Impress -esitys
+	[fr]description=Présentation OpenOffice.org Impress
+	[ga]description=toirbheartas ó OpenOffice.org Impress
+	[gl]description=Presentación Impress de OpenOffice.org
+	[he]description=מצגת OpenOffice.org Impress
+	[hi]description=ओपन आफिस ओ आर जी इम्प्रेस
+	[hu]description=OpenOffice.org Impress-bemutató
+	[id]description=Presentasi OpenOffice.org Impress
+	[is]description=OpenOffice.org Impress framsetning
+	[it]description=Presentazione OpenOffice.org Impress
+	[ja]description=OpenOffice.org Impress プレゼンテーション
+	[ko]description=OpenOffice.org Impress 프리젠테이션
+	[li]description=OpenOffice.org Impress presentasie
+	[lt]description=OpenOffice.org Impress pateiktis
+	[lv]description=OpenOffice.org Impress prezentācija
+	[mk]description=OpenOffice.org Impress презентација
+	[mn]description=OpenOffice.org Impress танилцуулга
+	[ms]description=persembahan OpenOffice.org Impress
+	[ne]description=ओपन अफिस.ओ आर जि ईम्प्रेस प्रेजेन्टेसन
+	[nl]description=OpenOffice.org Impress presentatie
+	[nn]description=OpenOffice.org Impress-presentasjon
+	[no]description=OpenOffice.org Impress-presentasjon
+	[pl]description=Prezentacja OpenOffice.org Impress
+	[pt]description=Apresentação OpenOffice.org Impress
+	[pt_BR]description=Apresentação do OpenOffice.org Impress
+	[ro]description=Prezentare OpenOffice.org Impress
+	[ru]description=презентация формата OpenOffice.org Impress
+	[sk]description=Prezentácia OpenOffice.org Impress
+	[sl]description=Predstavitev OpenOffice.org Impress
+	[sq]description=Prezantim OpenOffice.org Impress
+	[sr]description=OpenOffice.org Impress презентација
+	[sr@Latn]description=OpenOffice.org Impress prezentacija
+	[sv]description=OpenOffice.org Impress-presentation
+	[tr]description=OpenOffice.org Impress sunumu
+	[uk]description=презентація у форматі OpenOffice.org Impress
+	[vi]description=Trình bày OpenOffice.org Impress
+	[wa]description=Prezintåcion Impress d' OpenOffice.org
+	[zh_CN]description=OpenOffice.org Impress 演示稿
+	[zh_TW]description=OpenOffice.org Impress 簡報檔
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Presentation
+	[am]category=ሰነዶች/Presentation
+	[ar]category=مستندات/تقديم
+	[az]category=Sənədlər/Nümayiş
+	[be]category=Дакумэнты/Прадстаўленьне
+	[bg]category=Документи/Презентации
+	[bn]category=নথীসমূহ(documents)/উপস্থাপনা
+	[ca]category=Documents/Presentació
+	[cs]category=Dokumenty/Prezentace
+	[cy]category=Dogfennau/Cyflwyniad
+	[da]category=Dokumenter/Præsentation
+	[de]category=Dokumente/Präsentation
+	[el]category=Έγγραφα/Παρουσίαση
+	[eo]category=Dokumentoj/Prezentaĵo
+	[es]category=Documentos/Presentación
+	[et]category=Dokumendid/Presentatsioon
+	[fi]category=Asiakirjat/Esitys
+	[fr]category=Documents/Présentation
+	[ga]category=Doiciméad/Toirbheartas
+	[he]category=מסמכים/מצגות
+	[hi]category=दस्तावेजद/प्रिजेन्टेशन
+	[hu]category=Dokumentum/Prezentáció
+	[id]category=Dokumen/Presentasi
+	[is]category=SKjöl/Framsetning
+	[it]category=Documenti/Presentazione
+	[ja]category=ドキュメント/プレゼンテーション系
+	[ko]category=문서/프리젠테이션
+	[li]category=Dokkemènter/Presentasie
+	[lt]category=Dokumentai/Pateiktys
+	[lv]category=Dokumenti/Presentācija
+	[mk]category=Документи/Презентација
+	[mn]category=Баримтууд/Танилцуулга
+	[ms]category=Dokumen/Persembahan
+	[ne]category=कागजातहरु/प्रस्तुतिकरण%
+	[nl]category=Documenten/Presentatie
+	[nn]category=Dokument/Presentasjon
+	[no]category=Dokumenter/Presentasjon
+	[pl]category=Dokumenty/Prezentacja
+	[pt]category=Documentos/Apresentação
+	[pt_BR]category=Documentos/Apresentação
+	[ro]category=Documente/Prezentare
+	[ru]category=Документы/Презентации
+	[sk]category=Dokumenty/Prezentácia
+	[sl]category=Dokumenti/Prezentacije
+	[sq]category=Dokumente/Prezantim
+	[sr]category=Документ/Презентација
+	[sr@Latn]category=Dokument/Prezentacija
+	[sv]category=Dokument/Presentation
+	[tr]category=Belge/Sunum
+	[uk]category=Документи/Презентація
+	[vi]category=Tài liệu/Trình bày
+	[wa]category=Documints/Prezintåcion
+	[zh_CN]category=文档/演示文稿
+	[zh_TW]category=文件/簡報檔
+	use_category_default=yes
+
+application/vnd.sun.xml.impress.template
+	description=OpenOffice.org Impress presentation template
+	[ar]description=نموذج تقديم OpenOffice.org Impress
+	[az]description=OpenOffice.org Impress nümayişi nümunəsi
+	[be]description=Шаблён прэзентацыі OpenOffice.org Impress
+	[bg]description=OpenOffice.org Impress шаблон за презентации
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) ইমপ্রেস প্রেসেন্টেশন-এর ছাঁচ
+	[ca]description=Plantilla de presentació d'OpenOffice.org Impress
+	[cs]description=šablona prezentací OpenOffice.org Impress
+	[cy]description=Templed Cyflwyniad OpenOffice.org Impress
+	[da]description=OpenOffice.org Impress-præsentationsskabelon
+	[de]description=OpenOffice-Präsentationsvorlage
+	[el]description=Πρότυπο Παρουσίασης OpenOffice.org Impress
+	[eo]description=OpenOffice.org Impress prezentaĵa ŝablono
+	[es]description=Plantilla de presentación de OpenOffice.org Impress
+	[et]description=OpenOffice.org Impress presentatsiooni mall
+	[fi]description=OpenOffice.org Impress -esitysmalli
+	[fr]description=Modèle de présentation OpenOffice.org Impress
+	[gl]description=Patrón de presentación Impress de OpenOffice.org
+	[he]description=תבנית מצגת OpenOffice.org Impress
+	[hi]description=ओपन आफिस, ओ आर जी मेथ दस्तावेज
+	[hu]description=OpenOffice.org Impress-bemutatósablon
+	[id]description=Template presentasi OpenOffice.org Impress
+	[is]description=OpenOffice.org Impress framsetningarskapalón
+	[it]description=Modello presentazione OpenOffice.org Impress
+	[ja]description=OpenOffice.org Impress プレゼンテーションのテンプレート
+	[ko]description=OpenOffice.org Impress 프리젠테이션 템플릿
+	[li]description=OpenOffice.org Impress presentasie sjabloon
+	[lt]description=OpenOffice.org Impress pateikties šablonas
+	[lv]description=OpenOffice.org Impress prezentācijas paraugs
+	[mk]description=OpenOffice.org Impress мустра за презентација
+	[mn]description=OpenOffice.org Impress танилцуулгын загвар
+	[ms]description=templat persembahan OpenOffice.org Impress
+	[ne]description=ओपन अफिस.ओ आर जि ईम्प्रेस प्रेजेन्टेसन टेमप्लेट
+	[nl]description=OpenOffice.org Impress presentatie sjabloon
+	[nn]description=OpenOffice.org Impress-presentasjonsmal
+	[no]description=OpenOffice.org Impress-presentasjonsmal
+	[pl]description=Szablon prezentacji OpenOffice.org Impress
+	[pt]description=Modelo de apresentação OpenOffice.org Impress
+	[pt_BR]description=Modelo de apresentação do OpenOffice.org Impress
+	[ro]description=Şablon prezentare OpenOffice.org Impress
+	[ru]description=шаблон презентации формата OpenOffice.org Impress
+	[sk]description=Šablóna prezentácie OpenOffice.org Impress
+	[sl]description=Predloga predstavitve OpenOffice.org Impress
+	[sq]description=Model prezantimi OpenOffice.org Impress
+	[sr]description=OpenOffice.org Impress шема презентације
+	[sr@Latn]description=OpenOffice.org Impress šema prezentacije
+	[sv]description=OpenOffice.org Impress-presentationsmall
+	[tr]description=OpenOffice.org Impress sunum şablonu
+	[uk]description=шаблон презентації у форматі OpenOffice.org Impress
+	[vi]description=Mẫu trình bày OpenOffice.org Impress
+	[wa]description=Modele di prezintåcion Impress d' OpenOffice.org
+	[zh_CN]description=OpenOffice.org Impress 演示稿模板
+	[zh_TW]description=OpenOffice.org Impress 簡報範本
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Presentation
+	[am]category=ሰነዶች/Presentation
+	[ar]category=مستندات/تقديم
+	[az]category=Sənədlər/Nümayiş
+	[be]category=Дакумэнты/Прадстаўленьне
+	[bg]category=Документи/Презентации
+	[bn]category=নথীসমূহ(documents)/উপস্থাপনা
+	[ca]category=Documents/Presentació
+	[cs]category=Dokumenty/Prezentace
+	[cy]category=Dogfennau/Cyflwyniad
+	[da]category=Dokumenter/Præsentation
+	[de]category=Dokumente/Präsentation
+	[el]category=Έγγραφα/Παρουσίαση
+	[eo]category=Dokumentoj/Prezentaĵo
+	[es]category=Documentos/Presentación
+	[et]category=Dokumendid/Presentatsioon
+	[fi]category=Asiakirjat/Esitys
+	[fr]category=Documents/Présentation
+	[ga]category=Doiciméad/Toirbheartas
+	[he]category=מסמכים/מצגות
+	[hi]category=दस्तावेजद/प्रिजेन्टेशन
+	[hu]category=Dokumentum/Prezentáció
+	[id]category=Dokumen/Presentasi
+	[is]category=SKjöl/Framsetning
+	[it]category=Documenti/Presentazione
+	[ja]category=ドキュメント/プレゼンテーション系
+	[ko]category=문서/프리젠테이션
+	[li]category=Dokkemènter/Presentasie
+	[lt]category=Dokumentai/Pateiktys
+	[lv]category=Dokumenti/Presentācija
+	[mk]category=Документи/Презентација
+	[mn]category=Баримтууд/Танилцуулга
+	[ms]category=Dokumen/Persembahan
+	[ne]category=कागजातहरु/प्रस्तुतिकरण%
+	[nl]category=Documenten/Presentatie
+	[nn]category=Dokument/Presentasjon
+	[no]category=Dokumenter/Presentasjon
+	[pl]category=Dokumenty/Prezentacja
+	[pt]category=Documentos/Apresentação
+	[pt_BR]category=Documentos/Apresentação
+	[ro]category=Documente/Prezentare
+	[ru]category=Документы/Презентации
+	[sk]category=Dokumenty/Prezentácia
+	[sl]category=Dokumenti/Prezentacije
+	[sq]category=Dokumente/Prezantim
+	[sr]category=Документ/Презентација
+	[sr@Latn]category=Dokument/Prezentacija
+	[sv]category=Dokument/Presentation
+	[tr]category=Belge/Sunum
+	[uk]category=Документи/Презентація
+	[vi]category=Tài liệu/Trình bày
+	[wa]category=Documints/Prezintåcion
+	[zh_CN]category=文档/演示文稿
+	[zh_TW]category=文件/簡報檔
+	use_category_default=yes
+
+application/vnd.sun.xml.math
+	description=OpenOffice.org Math document
+	[am]description=የOpenOffice.org Math ሰነድ
+	[ar]description=مستند OpenOffice.org Math
+	[az]description=OpenOffice.org Riyaziyyat sənədi
+	[be]description=Дакумэнт OpenOffice.org Math
+	[bg]description=OpenOffice.org Math документ
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) ম্যাথ নথী
+	[ca]description=Document d'OpenOffice.org Math
+	[cs]description=Dokument OpenOffice.org Math
+	[cy]description=Dogfen Fathemategol OpenOffice.org
+	[da]description=OpenOffice.org Math-dokument
+	[de]description=OpenOffice-Formeldokument
+	[el]description=Math έγγραφο OpenOffice.org 
+	[eo]description=OpenOffice.org Math dokumento
+	[es]description=Documento Math de OpenOffice.org
+	[et]description=OpenOffice.org Math dokument
+	[fi]description=OpenOffice.org -matematiikka-asiakirja
+	[fr]description=Document Math OpenOffice.org
+	[gl]description=Documento Math de OpenOffice.org
+	[he]description=מסמך OpenOffice.org Math
+	[hi]description=ओपन आफिस ओ आर जी दस्तावेज
+	[hu]description=OpenOffice.org Math-dokumentum
+	[id]description=dokumen OpenOffice.org Math
+	[is]description=OpenOffice.org Math skjal
+	[it]description=Documento OpenOffice.org Math
+	[ja]description=OpenOffice.org Math ドキュメント
+	[ko]description=OpenOffice.org Math 문서
+	[li]description=OpenOffice.org Math dokkemènt
+	[lt]description=OpenOffice.org Math dokumentas
+	[lv]description=OpenOffice.org Math dokuments
+	[mk]description=OpenOffice.org Math документ
+	[mn]description=OpenOffice.org Math баримт бичиг
+	[ms]description=Dokumen OpenOffice.org Math
+	[ne]description=ओपन अफिस.ओ आर जि म्याथ कागजात
+	[nl]description=OpenOffice.org Math document
+	[nn]description=OpenOffice.org Math-dokument
+	[no]description=OpenOffice.org Math-dokument
+	[pl]description=Dokument matematyczny OpenOffice.org
+	[pt]description=Documento OpenOffice.org Math
+	[pt_BR]description=Documento do OpenOffice.org Math
+	[ro]description=Document OpenOffice.org Math
+	[ru]description=документ формата OpenOffice.org Math
+	[sk]description=Dokument OpenOffice.org Math
+	[sl]description=Dokument OpenOffice.org Math
+	[sq]description=Dokument OpenOffice.org Math
+	[sr]description=OpenOffice.org Math документ
+	[sr@Latn]description=OpenOffice.org Math dokument
+	[sv]description=OpenOffice.org Math-dokument
+	[tr]description=OpenOffice.org Math belgesi
+	[uk]description=документ у форматі OpenOffice.org Math
+	[vi]description=Tài liệu Toán OpenOffice
+	[wa]description=Documint matematike d' OpenOffice.org
+	[zh_CN]description=OpenOffice.org Math 文档
+	[zh_TW]description=OpenOffice.org 算式文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents
+	[am]category=ሰነዶች
+	[ar]category=مستندات
+	[az]category=Sənədlər
+	[be]category=Дакумэнты
+	[bg]category=Документи
+	[bn]category=নথীসমূহ (ডকুমেন্টন্ট্স্)
+	[ca]category=Documents
+	[cs]category=Dokumenty
+	[cy]category=Dogfennau
+	[da]category=Dokumenter
+	[de]category=Dokumente
+	[el]category=Έγγραφα
+	[eo]category=Dokumentoj
+	[es]category=Documentos
+	[et]category=Dokumendid
+	[fa]category=نوشتارها
+	[fi]category=Asiakirjat
+	[fr]category=Documents
+	[ga]category=Doiciméad
+	[he]category=מסמכים
+	[hi]category=दस्तावेज
+	[hu]category=Dokumentumok
+	[id]category=Dokumen
+	[is]category=Skjöl
+	[it]category=Documenti
+	[ja]category=ドキュメント
+	[ko]category=문서
+	[li]category=Dokkemènter
+	[lt]category=Dokumentai
+	[lv]category=Dokumenti
+	[mk]category=Документи
+	[ml]category=ഗ്രന്ഥങ്ങള്
+	[mn]category=Баримтууд
+	[ms]category=Dokumen
+	[ne]category=कागजातहरु%
+	[nl]category=Documenten
+	[nn]category=Dokument
+	[no]category=Dokumenter
+	[pl]category=Dokumenty
+	[pt]category=Documentos
+	[pt_BR]category=Documentos
+	[ro]category=Documente
+	[ru]category=Документы
+	[sk]category=Dokumenty
+	[sl]category=Dokumenti
+	[sq]category=Dokumente
+	[sr]category=Документ
+	[sr@Latn]category=Dokument
+	[sv]category=Dokument
+	[tr]category=Belge
+	[uk]category=Документи
+	[vi]category=Tài liệu
+	[wa]category=Documints
+	[zh_CN]category=文档
+	[zh_TW]category=文件
+	use_category_default=no
+
+application/vnd.sun.xml.writer
+	description=OpenOffice.org Writer document
+	[am]description=የOpenOffice.org Writer ሰነድ
+	[ar]description=مستند OpenOffice.org Writer
+	[az]description=OpenOffice.org Writer sənədi
+	[be]description=Дакумэнт OpenOffice.org Writer
+	[bg]description=OpenOffice.org Writer документ
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) রাইটার নথী
+	[ca]description=Document d'OpenOffice.org Writer
+	[cs]description=Dokument OpenOffice.org Writer
+	[cy]description=Dogfen OpenOffice.org Writer
+	[da]description=OpenOffice.org Writer-dokument
+	[de]description=OpenOffice-Textdokument
+	[el]description=Έγγραφο OpenOffice.org Writer
+	[eo]description=OpenOffice.org Writer dokumento
+	[es]description=Documento de OpenOffice.org Writer
+	[et]description=OpenOffice.org Writer dokument
+	[fi]description=OpenOffice.org Writer -asiakirja
+	[fr]description=Document OpenOffice.org Writer
+	[gl]description=Documento do Writer de OpenOffice.org
+	[he]description=מסמך OpenOffice.org Writer
+	[hi]description=ओपनआफिस.ओआरजी दस्तावेज
+	[hu]description=OpenOffice.org Writer-dokumentum
+	[id]description=dokumen OpenOffice.org Writer
+	[is]description=OpenOffice.org Writer skjal
+	[it]description=Documento OpenOffice.org Writer
+	[ja]description=OpenOffice.org Writer ドキュメント
+	[ko]description=OpenOffice.org Writer 문서
+	[li]description=OpenOffice.org Writer dokkemÃšnt
+	[lt]description=OpenOffice.org Writer dokumentas
+	[lv]description=OpenOffice.org Writer dokuments
+	[mk]description=OpenOffice.org Writer документ
+	[mn]description=OpenOffice.org Writer баримт бичиг
+	[ms]description=Dokumen OpenOffice.org Writer
+	[ne]description=ओपन अफिस.ओ आर जि राईटर कागजात
+	[nl]description=OpenOffice.org Writer document
+	[nn]description=OpenOffice.org Writer-dokument
+	[no]description=OpenOffice.org Writer-dokument
+	[pl]description=Dokument OpenOffice.org Writer
+	[pt]description=Documento OpenOffice.org Writer
+	[pt_BR]description=Documento do OpenOffice.org Writer
+	[ro]description=Document OpenOffice.org Writer
+	[ru]description=документ формата OpenOffice.org Writer
+	[sk]description=Dokument OpenOffice.org Writer
+	[sl]description=Dokument OpenOffice.org Writer
+	[sq]description=Dokument OpenOffice.org Writer
+	[sr]description=OpenOffice.org Writer документ
+	[sr@Latn]description=OpenOffice.org Writer dokument
+	[sv]description=OpenOffice.org Writer-dokument
+	[tr]description=OpenOffice.org Writer belgesi
+	[uk]description=документ у форматі OpenOffice.org Writer
+	[vi]description=Tài liệu OpenOffice
+	[wa]description=Documint tecse Writer d' OpenOffice.org
+	[zh_CN]description=OpenOffice.org Writer 文档
+	[zh_TW]description=OpenOffice.org Writer 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+
+application/vnd.sun.xml.writer.global
+	description=OpenOffice.org Writer global document
+	[ar]description=مستند عام OpenOffice.org Writer
+	[az]description=OpenOffice.org Writer qlobal sənədi
+	[be]description=Асноўны дакумэнт OpenOffice.org Writer
+	[bg]description=OpenOffice.org Writer цялостен документ
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) রাইটার গ্লোবাল নথী
+	[ca]description=Document global d'OpenOffice.org Writer
+	[cs]description=Globální dokument OpenOffice.org Writer
+	[cy]description=Dogfen eang OpenOffice.org Writer
+	[da]description=Globalt OpenOffice.org Writer-dokument
+	[de]description=OpenOffice globales Textdokument
+	[el]description=OpenOffice.org Writer global document
+	[eo]description=OpenOffice.org Writer malloka dokumento
+	[es]description=Documento global de OpenOffice.org Writer
+	[et]description=OpenOffice.org Writer globaaldokument
+	[fi]description=OpenOffice.org Writer -yleinen asiakirja
+	[fr]description=Document global OpenOffice.org Writer
+	[gl]description=Documento global do Writer de OpenOffice.org
+	[he]description=מסמך עולמי OpenOffice.org Writer
+	[hi]description=ओपन आफिस.ओआरजी राइटर ग्लोबल दस्तावेज
+	[hu]description=OpenOffice.org Writer-globálisdokumentum
+	[id]description=dokumen globarl OpenOffice.org Writer
+	[is]description=OpenOffice.org Writer víðvært skjal
+	[it]description=Documento globale OpenOffice.org Writer
+	[ja]description=OpenOffice.org Writer グローバル・ドキュメント
+	[ko]description=OpenOffice.org Writer 글로벌 문서
+	[li]description=OpenOffice.org Writer globaal dokkemènt
+	[lt]description=OpenOffice.org Writer bendrinis dokumentas
+	[lv]description=OpenOffice.org Writer globālais dokuments
+	[mk]description=OpenOffice.org Writer global документ
+	[mn]description=OpenOffice.org Writer ерөнхий баримт
+	[ms]description=Dokumen global OpenOffice.org Writer
+	[ne]description=ओपन अफिस.ओ आर जि राईटर ग्लोबल कागजात
+	[nl]description=OpenOffice.org Writer globaal document
+	[nn]description=Globalt OpenOffice.org Writer-dokument
+	[no]description=Globalt OpenOffice.org Writer-dokument
+	[pl]description=Globalny dokument OpenOffice.org Writer
+	[pt]description=Documento global OpenOffice.org Writer
+	[pt_BR]description=Documento global do OpenOffice.org Writer
+	[ro]description=Document global OpenOffice.org Writer
+	[ru]description=глобальный документ формата OpenOffice.org Writer
+	[sk]description=Globálny dokument OpenOffice.org Writer
+	[sl]description=Globalni dokument OpenOffice.org Writer
+	[sq]description=Dokument global OpenOffice.org Writer
+	[sr]description=OpenOffice.org Writer глобални документ
+	[sr@Latn]description=OpenOffice.org Writer globalni dokument
+	[sv]description=OpenOffice.org Writer-globaldokument
+	[tr]description=OpenOffice.org Writer Global belgesi
+	[uk]description=глобальний документ у форматі OpenOffice.org Writer
+	[vi]description=Tài liệu chung OpenOffice Writer
+	[zh_CN]description=OpenOffice.org Writer 全局文档
+	[zh_TW]description=OpenOffice.org Writer 主控文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+
+application/vnd.sun.xml.writer.template
+	description=OpenOffice.org Writer template
+	[am]description=OpenOffice.org Writer ቲምፕሌት
+	[ar]description=نموذج OpenOffice.org Writer
+	[az]description=OpenOffice.org Writer sənədi nümunəsi
+	[be]description=Шаблён OpenOffice.org Writer
+	[bg]description=OpenOffice.org Writer шаблон
+	[bn]description=ওপেন-অফিস.অর্গ (OpenOffice.org) রাইটার ছাঁচ
+	[ca]description=Plantilla d'OpenOffice.org Writer
+	[cs]description=šablona OpenOffice.org Writer
+	[cy]description=Templed OpenOffice.org Writer
+	[da]description=OpenOffice.org Writer-skabelon
+	[de]description=OpenOffice-Textdokumentvorlage
+	[el]description=Πρότυπο εγγράφου OpenOffice.org
+	[eo]description=OpenOffice.org Writer ŝablono
+	[es]description=Plantilla de OpenOffice.org Writer
+	[et]description=OpenOffice.org Writer mall
+	[fi]description=OpenOffice.org -malli
+	[fr]description=Modèle OpenOffice.org Writer
+	[gl]description=Patrón do Writer de OpenOffice.org
+	[he]description=תבנית OpenOffice.org Writer
+	[hi]description=ओपनआफिस.ओआरजी राइटर टेम्पलेट
+	[hu]description=OpenOffice.org Writer-sablon
+	[id]description=Template OpenOffice.org Writer
+	[is]description=OpenOffice.org Writer skapalón
+	[it]description=Modello OpenOffice.org Writer
+	[ja]description=OpenOffice.org Writer のテンプレート
+	[ko]description=OpenOffice.org Writer 템플릿
+	[li]description=OpenOffice.org Writer sjabloon
+	[lt]description=OpenOffice.org Writer šablonas
+	[lv]description=OpenOffice.org Writer paraugs
+	[mk]description=OpenOffice.org Writer мустра
+	[mn]description=OpenOffice.org Writer загвар
+	[ms]description=Templat OpenOffice.org Writer
+	[ne]description=ओपन अफिस.ओ आर जि राईटर टेमप्लेट
+	[nl]description=OpenOffice.org Writer sjabloon
+	[nn]description=OpenOffice.org Writer-dokumentmal
+	[no]description=OpenOffice.org Writer-dokumentmal
+	[pl]description=Szablon OpenOffice.org Writer
+	[pt]description=Modelo OpenOffice.org Writer
+	[pt_BR]description=Modelo do OpenOffice.org Writer
+	[ro]description=Şablon StarOffice Writer
+	[ru]description=шаблон формата OpenOffice.org Writer
+	[sk]description=Šablóna OpenOffice.org Writer
+	[sl]description=Predloga OpenOffice.org Writer
+	[sq]description=Model OpenOffice.org Writer
+	[sr]description=OpenOffice.org Writer шема
+	[sr@Latn]description=OpenOffice.org Writer šema
+	[sv]description=OpenOffice.org Writer-mall
+	[tr]description=OpenOffice.org Writer şablonu
+	[uk]description=шаблон у форматі OpenOffice.org Writer
+	[vi]description=Mẫu OpenOffice Writer
+	[zh_CN]description=OpenOffice.org Writer 模板
+	[zh_TW]description=OpenOffice.org Writer 文件範本
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+
+application/wordperfect
+	description=WordPerfect document
+	[am]description=የWordPerfect ሰነድ
+	[ar]description=مستند WordPerfect
+	[az]description=WorldPerfect sənədi
+	[be]description=Дакумэнт WordPerfect
+	[bg]description=WordPerfect документ
+	[bn]description=ওয়ার্ডপারফেক্ট নথী
+	[ca]description=Document WordPerfect
+	[cs]description=Dokument WordPerfect
+	[cy]description=Dogfen WordPerfect
+	[da]description=WordPerfect-dokument
+	[de]description=WordPerfect-Dokument
+	[el]description=Έγγραφο WordPerfect
+	[eo]description=WordPerfect dokumento
+	[es]description=Documento WordPerfect
+	[et]description=WordPerfect dokument
+	[eu]description=WordPerfect dokumentua
+	[fi]description=WordPerfect-asiakirja
+	[fr]description=Document WordPerfect
+	[ga]description=Doiciméad ó WordPerfect
+	[gl]description=Documento do WordPerfect
+	[he]description=מסמך WordPerfect
+	[hi]description=वर्ड परफेक्ट दस्तावेज
+	[hu]description=WordPerfect-dokumentum
+	[id]description=dokumen WordPerfect
+	[is]description=WordPerfect skjal
+	[it]description=Documento WordPerfect
+	[ja]description=WordPerfect ドキュメント
+	[ko]description=워드퍼펙트 문서
+	[li]description=WordPerfect dokkemènt
+	[lt]description=WordPerfect dokumentas
+	[lv]description=WordPerfect dokuments
+	[mk]description=WordPerfect документ
+	[mn]description= WordPerfect баримтын хэвжүүлэлт
+	[ms]description=Dokumen WordPerfect
+	[ne]description=वर्ड पर्फेक्ट कागजात
+	[nl]description=WordPerfect document
+	[nn]description=WordPerfect-dokument
+	[no]description=WordPerfect-dokument
+	[pl]description=Dokument WordPerfect
+	[pt]description=Documento WordPerfect
+	[pt_BR]description=Documento do WordPerfect
+	[ro]description=Document WordPerfect
+	[ru]description=документ формата WordPerfect
+	[sk]description=Dokument WordPerfect
+	[sl]description=Dokument WordPerfect
+	[sq]description=Dokument WordPerfect
+	[sr]description=WordPerfect документ
+	[sr@Latn]description=WordPerfect dokument
+	[sv]description=WordPerfect-dokument
+	[tr]description=WordPerfect belgesi
+	[uk]description=документ у форматі WordPerfect
+	[vi]description=Văn bản WordPerfect
+	[wa]description=Documint WordPerfect
+	[zh_CN]description=WordPerfect 文档
+	[zh_TW]description=WordPerfect 文件
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+
+application/x-abiword
+	description=AbiWord document
+	[am]description=የአቢወርድ ሰንደ
+	[ar]description=مستند AbiWord
+	[az]description=AbiWord sənədi
+	[be]description=Дакумэнт AbiWord
+	[bg]description=AbiWord документ
+	[bn]description=এবিওয়ার্ড নথী (ডকুমেন্ট)
+	[ca]description=Document d'AbiWord
+	[cs]description=Dokument AbiWord
+	[cy]description=Dogfen AbiWord
+	[da]description=AbiWord-dokument
+	[de]description=AbiWord-Dokument
+	[el]description=Έγγραφο AbiWord
+	[eo]description=AbiWord dokumento
+	[es]description=Documento de AbiWord
+	[et]description=AbiWord dokument
+	[eu]description=AbiWord dokumentua
+	[fa]description=نوشتار AbiWord
+	[fi]description=AbiWord-asiakirja
+	[fr]description=Document AbiWord
+	[ga]description=Doiciméad ó Abiword
+	[gl]description=Documento do AbiWord
+	[he]description=מסמך AbiWord
+	[hi]description=एबीआईवर्ड दस्तावेज
+	[hu]description=AbiWord-dokumentum
+	[id]description=dokumen AbiWord
+	[is]description=AbiWord skjal
+	[it]description=Documento AbiWord
+	[ja]description=AbiWord ドキュメント
+	[ko]description=AbiWord 문서
+	[li]description=AbiWord dokkemènt
+	[lt]description=AbiWord dokumentas
+	[lv]description=AbiWord dokuments
+	[mk]description=AbiWord документ
+	[mn]description=AbiWord баримт бичиг
+	[ms]description=Dokumen AbiWord
+	[ne]description=% ए बि आई वर्ड कागजात
+	[nl]description=AbiWord document
+	[nn]description=AbiWord-dokument
+	[no]description=AbiWord-dokument
+	[pl]description=Dokument AbiWord
+	[pt]description=Documento AbiWord
+	[pt_BR]description=Documento do AbiWord
+	[ro]description=Document AbiWord
+	[ru]description=документ формата AbiWord
+	[sk]description=Dokument AbiWord
+	[sl]description=Dokument AbiWord-a
+	[sq]description=Dokument AbiWord
+	[sr]description=AbiWord документ
+	[sr@Latn]description=AbiWord dokument
+	[sv]description=AbiWord-dokument
+	[tr]description=AbiWord belgesi
+	[uk]description=документ у форматі AbiWord
+	[vi]description=Văn bản AbiWord
+	[wa]description=Documint Abiword
+	[zh_CN]description=AbiWord 文档
+	[zh_TW]description=AbiWord 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+
+application/x-wordperfect
+	description=WordPerfect document
+	[am]description=የWordPerfect ሰነድ
+	[ar]description=مستند WordPerfect
+	[az]description=WorldPerfect sənədi
+	[be]description=Дакумэнт WordPerfect
+	[bg]description=WordPerfect документ
+	[bn]description=ওয়ার্ডপারফেক্ট নথী
+	[ca]description=Document WordPerfect
+	[cs]description=Dokument WordPerfect
+	[cy]description=Dogfen WordPerfect
+	[da]description=WordPerfect-dokument
+	[de]description=WordPerfect-Dokument
+	[el]description=Έγγραφο WordPerfect
+	[eo]description=WordPerfect dokumento
+	[es]description=Documento WordPerfect
+	[et]description=WordPerfect dokument
+	[eu]description=WordPerfect dokumentua
+	[fi]description=WordPerfect-asiakirja
+	[fr]description=Document WordPerfect
+	[ga]description=Doiciméad ó WordPerfect
+	[gl]description=Documento do WordPerfect
+	[he]description=מסמך WordPerfect
+	[hi]description=वर्ड परफेक्ट दस्तावेज
+	[hu]description=WordPerfect-dokumentum
+	[id]description=dokumen WordPerfect
+	[is]description=WordPerfect skjal
+	[it]description=Documento WordPerfect
+	[ja]description=WordPerfect ドキュメント
+	[ko]description=워드퍼펙트 문서
+	[li]description=WordPerfect dokkemènt
+	[lt]description=WordPerfect dokumentas
+	[lv]description=WordPerfect dokuments
+	[mk]description=WordPerfect документ
+	[mn]description= WordPerfect баримтын хэвжүүлэлт
+	[ms]description=Dokumen WordPerfect
+	[ne]description=वर्ड पर्फेक्ट कागजात
+	[nl]description=WordPerfect document
+	[nn]description=WordPerfect-dokument
+	[no]description=WordPerfect-dokument
+	[pl]description=Dokument WordPerfect
+	[pt]description=Documento WordPerfect
+	[pt_BR]description=Documento do WordPerfect
+	[ro]description=Document WordPerfect
+	[ru]description=документ формата WordPerfect
+	[sk]description=Dokument WordPerfect
+	[sl]description=Dokument WordPerfect
+	[sq]description=Dokument WordPerfect
+	[sr]description=WordPerfect документ
+	[sr@Latn]description=WordPerfect dokument
+	[sv]description=WordPerfect-dokument
+	[tr]description=WordPerfect belgesi
+	[uk]description=документ у форматі WordPerfect
+	[vi]description=Văn bản WordPerfect
+	[wa]description=Documint WordPerfect
+	[zh_CN]description=WordPerfect 文档
+	[zh_TW]description=WordPerfect 文件
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+
+image/x-emf
+	description=StarOffice extended metafile image
+	[ar]description=صورة ملف نقوش موسعة لـ StarOffice
+	[az]description=StarOffice uzadılmış metafayl rəsmi
+	[be]description=Пашыраны файл фідарыса StarOffice
+	[bg]description=StarOffice разширен метафайл с картинка
+	[bn]description=স্টারঅফিসের বর্ধিত মেটাফাইল চিত্র
+	[ca]description=Imatge de metafitxer extés StarOffice
+	[cs]description=Obrázek v rozšířeném metasouboru StarOffice
+	[cy]description=Delwedd estynedig metaffeil StarOffice
+	[da]description=Udvidet metafilsbillede til StarOffice
+	[de]description=StarOffice erweitertes Metadatei-Bild
+	[el]description=Εικόνα StarOffice extended metafile
+	[eo]description=StarOffice etenda metadosiera bildo
+	[es]description=Imagen de metarchivo extendido de StarOffice
+	[fi]description=StarOfficen laajennettu metatiedosto -kuva
+	[fr]description=Image méta-fichier étendu StarOffice
+	[gl]description=Imaxe metaficheiro estendido do StarOffice
+	[he]description=תמונת קובץ מטא מורחבת של StarOffice
+	[hi]description=StarOffice extended metafile image
+	[hu]description=StarOffice kiterjesztett metafájl kép
+	[id]description=gambar StarOffice extended metafile
+	[is]description=StarOffice myndskrá
+	[it]description=Immagine StarOffice extended metafile
+	[ja]description=StarOffice 拡張メタ画像
+	[ko]description=StarOffice 확장 메타파일 이미지
+	[li]description=StarOffice oetgebreije metabesjtandj aafbiljing
+	[lt]description=StarOffice extended metafile paveikslėlis
+	[lv]description=StarOffice paplašinātais metafaila attēls
+	[mk]description=StarOffice extended metafile слика
+	[mn]description=StarOffice өргөтгөсөн метафайл зургийн хэвжүүлэлт
+	[ms]description=Imej failmeta lanjutan StarOffice
+	[ne]description=स्टार अफिस ऐक्सटेन्डेड मेटा फाईल
+	[nl]description=StarOffice uitgebreide metabestand afbeelding
+	[nn]description=StarOffice utvida metafil-bilete
+	[no]description=StarOffice utvidet metafilbilde
+	[pl]description=Rozszerzony metaplik obrazu StarOffice
+	[pt]description=Imagem metafile extendida StarOffice
+	[pt_BR]description=Imagem meta-arquivo extendida do StarOffice
+	[ro]description=Metafişier imagine extins StarOffice
+	[ru]description=расширенный метафайл изображения формата StarOffice
+	[sk]description=Obrázok Rozšírený meta-súbor StarOffice
+	[sl]description=Razširjena metadatotečna slika StarOffice
+	[sq]description=Imazh StarOffice extended metafile
+	[sr]description=StarOffice проширена метафајл слика
+	[sr@Latn]description=StarOffice proširena metafajl slika
+	[sv]description=StarOffice extended metafile-bild
+	[tr]description=StarOffice genişletilmiş metafile görüntüsü
+	[uk]description=розширений метафайл зображення у форматі StarOffice
+	[vi]description=Ảnh metafile mở rộng StarOffice
+	[zh_CN]description=StarOffice 扩展元文件图像
+	[zh_TW]description=StarOffice metafile 擴展格式圖像
+	category=Images
+	[am]category=ምስሎች
+	[ar]category=صور
+	[az]category=Rəsmlər
+	[be]category=Відарысы
+	[bg]category=Картинки
+	[bn]category=চিত্রসমূহ
+	[ca]category=Imatges
+	[cs]category=Obrázky
+	[cy]category=Delweddau
+	[da]category=Billeder
+	[de]category=Bilder
+	[el]category=Εικόνες
+	[eo]category=Bildoj
+	[es]category=Imágenes
+	[et]category=Pildid
+	[fa]category=تصاویر
+	[fi]category=Kuvat
+	[fr]category=Images
+	[he]category=תמונות
+	[hi]category=चित्र
+	[hu]category=Képek
+	[id]category=Gambar
+	[is]category=Myndir
+	[it]category=Immagini
+	[ja]category=画像
+	[ko]category=이미지
+	[li]category=Aafbiljinge
+	[lt]category=Paveikslėliai
+	[lv]category=Attēli
+	[mk]category=Слики
+	[ml]category=ചിത്രങ്ങള്‌
+	[mn]category=Зураг
+	[ms]category=Imej
+	[ne]category=चित्रहरु
+	[nl]category=Afbeeldingen
+	[nn]category=Bilete
+	[no]category=Bilder
+	[pl]category=Obrazy
+	[pt]category=Imagens
+	[pt_BR]category=Imagens
+	[ro]category=Imagini
+	[ru]category=Изображения
+	[sk]category=Obrázky
+	[sl]category=Slike
+	[sq]category=Figura
+	[sr]category=Слике
+	[sr@Latn]category=Slike
+	[sv]category=Bilder
+	[tr]category=Görüntüler
+	[uk]category=Зображення
+	[vi]category=Ảnh
+	[wa]category=Imådjes
+	[zh_CN]category=图像
+	[zh_TW]category=圖像
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+
+image/x-pcx
+	description=PC Paintbrush image
+	[am]description=PC Paintbrush ምስል
+	[ar]description=صورة PC Paintbrush
+	[az]description=PC Paintbrush rəsmi
+	[be]description=Відарыс PC Paintbrush
+	[bg]description=PC Paintbrush картинка
+	[bn]description=পিসি পেইন্টব্রাশ চিত্র
+	[ca]description=Imatge de PC Paintbrush
+	[cs]description=Obrázek PC Paintbrush
+	[cy]description=Delwedd PC Paintbrush
+	[da]description=PC Paintbrush-billede
+	[de]description=Paintbrush-Bild
+	[el]description=Εικόνα PC Paintbrush
+	[eo]description=PC Paintbrush bildo
+	[es]description=Imagen de Paintbrush de PC
+	[et]description=PC Paintbrush pilt
+	[fi]description=PC Paintbrush -kuva
+	[fr]description=Image PC Paintbrush
+	[ga]description=íomha ó PC Paintbrush
+	[gl]description=Imaxe do Paintbrush
+	[he]description=תמונת PC Paintbrush
+	[hi]description=पीसी पेंटबृश च्तिर
+	[hu]description=PC Paintbrush-kép
+	[id]description=gambar PC Paintbrush
+	[is]description=PC Paintbrush mynd
+	[it]description=Immagine PC Paintbrush
+	[ja]description=PC ペイントブラシの画像
+	[ko]description=PC Painbrush 이미지
+	[li]description=PC Paintbrush aafbiljing
+	[lt]description=PC Paintbrush paveikslėlis
+	[lv]description=PC Paintbrush attēls
+	[mk]description=PC Paintbrush слика
+	[mn]description=PC Paintbrush зураг
+	[ms]description=Imej PC Paintbrush
+	[ne]description=पि सि पेन्टब्रश चित्र
+	[nl]description=PC Paintbrush afbeelding
+	[nn]description=PC Paintbrush-bilete
+	[no]description=PC Paintbrush-bilde
+	[pl]description=Obraz PC Paintbrush
+	[pt]description=Imagem Paintbrush PC
+	[pt_BR]description=Imagem PC Paintbrush
+	[ro]description=Imagine PC Paintbrush
+	[ru]description=растровое изображение формата PC Paintbrush
+	[sk]description=Obrázok PC Paintbrush
+	[sl]description=Slika PC Paintbrush
+	[sq]description=Imazh PC Paintbrush
+	[sr]description=PC Paintbrush слика
+	[sr@Latn]description=PC Paintbrush slika
+	[sv]description=PC Paintbrush-bild
+	[tr]description=PC Paintbrush görüntüsü
+	[uk]description=зображення у форматі PC Paintbrush
+	[vi]description=Ảnh PC Paintbrush
+	[wa]description=Imådje PC Paintbrush
+	[zh_CN]description=PC Paintbrush 图像
+	[zh_TW]description=PC Paintbrush 圖像
+	category=Images
+	[am]category=ምስሎች
+	[ar]category=صور
+	[az]category=Rəsmlər
+	[be]category=Відарысы
+	[bg]category=Картинки
+	[bn]category=চিত্রসমূহ
+	[ca]category=Imatges
+	[cs]category=Obrázky
+	[cy]category=Delweddau
+	[da]category=Billeder
+	[de]category=Bilder
+	[el]category=Εικόνες
+	[eo]category=Bildoj
+	[es]category=Imágenes
+	[et]category=Pildid
+	[fa]category=تصاویر
+	[fi]category=Kuvat
+	[fr]category=Images
+	[he]category=תמונות
+	[hi]category=चित्र
+	[hu]category=Képek
+	[id]category=Gambar
+	[is]category=Myndir
+	[it]category=Immagini
+	[ja]category=画像
+	[ko]category=이미지
+	[li]category=Aafbiljinge
+	[lt]category=Paveikslėliai
+	[lv]category=Attēli
+	[mk]category=Слики
+	[ml]category=ചിത്രങ്ങള്‌
+	[mn]category=Зураг
+	[ms]category=Imej
+	[ne]category=चित्रहरु
+	[nl]category=Afbeeldingen
+	[nn]category=Bilete
+	[no]category=Bilder
+	[pl]category=Obrazy
+	[pt]category=Imagens
+	[pt_BR]category=Imagens
+	[ro]category=Imagini
+	[ru]category=Изображения
+	[sk]category=Obrázky
+	[sl]category=Slike
+	[sq]category=Figura
+	[sr]category=Слике
+	[sr@Latn]category=Slike
+	[sv]category=Bilder
+	[tr]category=Görüntüler
+	[uk]category=Зображення
+	[vi]category=Ảnh
+	[wa]category=Imådjes
+	[zh_CN]category=图像
+	[zh_TW]category=圖像
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice,gimp
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice,gimp
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice,gimp
+
+image/x-photo-cd
+	description=Photo CD image
+	[am]description=የPhoto CD ፋይል
+	[ar]description=صورة اقراص مدمجة لالصور
+	[az]description=Photo CD rəsmi
+	[be]description=Відарыс Photo CD
+	[bg]description=Фото CD картинка
+	[bn]description=ফটো সি-ডি চিত্র
+	[ca]description=Imatge de Photo CD
+	[cs]description=Obrázek Photo CD
+	[cy]description=Delwedd Photo CD
+	[da]description=Photo CD-billede
+	[de]description=Photo-CD-Bild
+	[el]description=Εικόνα Photo CD
+	[eo]description=Foto-Lumdiska similaĵo
+	[es]description=Imagen Photo CD
+	[et]description=Foto CD pilt
+	[fi]description=Foto CD -kuva
+	[fr]description=Image Photo CD
+	[ga]description=íomha ó Photo CD
+	[gl]description=Imaxe Photo CD
+	[he]description=תמונת Photo CD
+	[hi]description=फोटो सीडी चित्र
+	[hu]description=Photo CD-kép
+	[id]description=gambar Photo CD
+	[is]description=Photo CD mynd
+	[it]description=Immagine Photo CD
+	[ja]description=Photo CD 画像
+	[ko]description=Photo CD 이미지
+	[li]description=Photo-CD aafbiljing
+	[lt]description=Photo CD paveikslėlis
+	[lv]description=Photo CD attēls
+	[mk]description=Photo CD слика
+	[mn]description=Photo CD зураг
+	[ms]description=Imej Photo CD
+	[ne]description=फोटो सि डी चित्र
+	[nl]description=Photo-CD afbeelding
+	[nn]description=Photo CD-bilete
+	[no]description=Photo CD-bilde
+	[pl]description=Obraz Photo CD
+	[pt]description=Imagem Photo CD
+	[pt_BR]description=Imagem de Photo CD
+	[ro]description=Imagine Photo CD
+	[ru]description=изображение формата Photo CD
+	[sk]description=Obrázok Photo CD
+	[sl]description=Slika Photo CD
+	[sq]description=Imazh Photo CD
+	[sr]description=Фото Це-Де слика
+	[sr@Latn]description=Foto Ce-De slika
+	[sv]description=PhotoCD-bild
+	[tr]description=Photo CD görüntüsü
+	[uk]description=зображення у форматі Photo CD
+	[vi]description=Ảnh Photo CD
+	[wa]description=Imådje foto CD
+	[zh_CN]description=Photo CD 图像
+	[zh_TW]description=Photo CD 圖像
+	category=Images
+	[am]category=ምስሎች
+	[ar]category=صور
+	[az]category=Rəsmlər
+	[be]category=Відарысы
+	[bg]category=Картинки
+	[bn]category=চিত্রসমূহ
+	[ca]category=Imatges
+	[cs]category=Obrázky
+	[cy]category=Delweddau
+	[da]category=Billeder
+	[de]category=Bilder
+	[el]category=Εικόνες
+	[eo]category=Bildoj
+	[es]category=Imágenes
+	[et]category=Pildid
+	[fa]category=تصاویر
+	[fi]category=Kuvat
+	[fr]category=Images
+	[he]category=תמונות
+	[hi]category=चित्र
+	[hu]category=Képek
+	[id]category=Gambar
+	[is]category=Myndir
+	[it]category=Immagini
+	[ja]category=画像
+	[ko]category=이미지
+	[li]category=Aafbiljinge
+	[lt]category=Paveikslėliai
+	[lv]category=Attēli
+	[mk]category=Слики
+	[ml]category=ചിത്രങ്ങള്‌
+	[mn]category=Зураг
+	[ms]category=Imej
+	[ne]category=चित्रहरु
+	[nl]category=Afbeeldingen
+	[nn]category=Bilete
+	[no]category=Bilder
+	[pl]category=Obrazy
+	[pt]category=Imagens
+	[pt_BR]category=Imagens
+	[ro]category=Imagini
+	[ru]category=Изображения
+	[sk]category=Obrázky
+	[sl]category=Slike
+	[sq]category=Figura
+	[sr]category=Слике
+	[sr@Latn]category=Slike
+	[sv]category=Bilder
+	[tr]category=Görüntüler
+	[uk]category=Зображення
+	[vi]category=Ảnh
+	[wa]category=Imådjes
+	[zh_CN]category=图像
+	[zh_TW]category=圖像
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+
+image/x-pict
+	description=PICT image
+	[am]description=የPICT ምስል
+	[ar]description=صورة PICT
+	[az]description=PICT rəsmi
+	[be]description=Відарыс PICT
+	[bg]description=PICT картинка
+	[bn]description=পি-আই-সি-টি চিত্র
+	[ca]description=Imatge PICT
+	[cs]description=Obrázek PICT
+	[cy]description=Delwedd PICT
+	[da]description=PICT-billede
+	[de]description=PICT-Bild
+	[el]description=Εικόνα PICT
+	[eo]description=PICT bildo
+	[es]description=Imagen PICT
+	[et]description=PICT pilt
+	[fa]description=تصویر PICT
+	[fi]description=PICT-kuva
+	[fr]description=Image PICT
+	[ga]description=íomha PICT
+	[gl]description=Imaxe PICT
+	[he]description=תמונת PICT
+	[hi]description=PICT चित्र
+	[hu]description=PICT-kép
+	[id]description=gambar PICT
+	[is]description=PICT mynd
+	[it]description=Immagine PICT
+	[ja]description=PICT 画像
+	[ko]description=PICT 이미지
+	[li]description=PICT aafbiljing
+	[lt]description=PICT paveikslėlis
+	[lv]description=PICT attēls
+	[mk]description=PICT слика
+	[mn]description=PICT зураг
+	[ms]description=Imej PICT
+	[ne]description=पि आई सि टि चित्र
+	[nl]description=PICT afbeelding
+	[nn]description=PICT-bilete
+	[no]description=PICT-bilde
+	[pl]description=Obraz PICT
+	[pt]description=Imagem PICT
+	[pt_BR]description=Imagem PICT
+	[ro]description=Imagine PICT
+	[ru]description=изображение формата PICT
+	[sk]description=Obrázok PICT
+	[sl]description=Slika PICT
+	[sq]description=Imazh PICT
+	[sr]description=PICT слика
+	[sr@Latn]description=PICT slika
+	[sv]description=PICT-bild
+	[tr]description=PICT görüntüsü
+	[uk]description=зображення у форматі PICT
+	[vi]description=Ảnh PICT
+	[wa]description=Imådje PICT
+	[zh_CN]description=PICT 图像
+	[zh_TW]description=PICT 圖像
+	category=Images
+	[am]category=ምስሎች
+	[ar]category=صور
+	[az]category=Rəsmlər
+	[be]category=Відарысы
+	[bg]category=Картинки
+	[bn]category=চিত্রসমূহ
+	[ca]category=Imatges
+	[cs]category=Obrázky
+	[cy]category=Delweddau
+	[da]category=Billeder
+	[de]category=Bilder
+	[el]category=Εικόνες
+	[eo]category=Bildoj
+	[es]category=Imágenes
+	[et]category=Pildid
+	[fa]category=تصاویر
+	[fi]category=Kuvat
+	[fr]category=Images
+	[he]category=תמונות
+	[hi]category=चित्र
+	[hu]category=Képek
+	[id]category=Gambar
+	[is]category=Myndir
+	[it]category=Immagini
+	[ja]category=画像
+	[ko]category=이미지
+	[li]category=Aafbiljinge
+	[lt]category=Paveikslėliai
+	[lv]category=Attēli
+	[mk]category=Слики
+	[ml]category=ചിത്രങ്ങള്‌
+	[mn]category=Зураг
+	[ms]category=Imej
+	[ne]category=चित्रहरु
+	[nl]category=Afbeeldingen
+	[nn]category=Bilete
+	[no]category=Bilder
+	[pl]category=Obrazy
+	[pt]category=Imagens
+	[pt_BR]category=Imagens
+	[ro]category=Imagini
+	[ru]category=Изображения
+	[sk]category=Obrázky
+	[sl]category=Slike
+	[sq]category=Figura
+	[sr]category=Слике
+	[sr@Latn]category=Slike
+	[sv]category=Bilder
+	[tr]category=Görüntüler
+	[uk]category=Зображення
+	[vi]category=Ảnh
+	[wa]category=Imådjes
+	[zh_CN]category=图像
+	[zh_TW]category=圖像
+	short_list_application_ids_for_novice_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+
+text/abiword
+	description=AbiWord document
+	[am]description=የአቢወርድ ሰንደ
+	[ar]description=مستند AbiWord
+	[az]description=AbiWord sənədi
+	[be]description=Дакумэнт AbiWord
+	[bg]description=AbiWord документ
+	[bn]description=এবিওয়ার্ড নথী (ডকুমেন্ট)
+	[ca]description=Document d'AbiWord
+	[cs]description=Dokument AbiWord
+	[cy]description=Dogfen AbiWord
+	[da]description=AbiWord-dokument
+	[de]description=AbiWord-Dokument
+	[el]description=Έγγραφο AbiWord
+	[eo]description=AbiWord dokumento
+	[es]description=Documento de AbiWord
+	[et]description=AbiWord dokument
+	[eu]description=AbiWord dokumentua
+	[fa]description=نوشتار AbiWord
+	[fi]description=AbiWord-asiakirja
+	[fr]description=Document AbiWord
+	[ga]description=Doiciméad ó Abiword
+	[gl]description=Documento do AbiWord
+	[he]description=מסמך AbiWord
+	[hi]description=एबीआईवर्ड दस्तावेज
+	[hu]description=AbiWord-dokumentum
+	[id]description=dokumen AbiWord
+	[is]description=AbiWord skjal
+	[it]description=Documento AbiWord
+	[ja]description=AbiWord ドキュメント
+	[ko]description=AbiWord 문서
+	[li]description=AbiWord dokkemènt
+	[lt]description=AbiWord dokumentas
+	[lv]description=AbiWord dokuments
+	[mk]description=AbiWord документ
+	[mn]description=AbiWord баримт бичиг
+	[ms]description=Dokumen AbiWord
+	[ne]description=% ए बि आई वर्ड कागजात
+	[nl]description=AbiWord document
+	[nn]description=AbiWord-dokument
+	[no]description=AbiWord-dokument
+	[pl]description=Dokument AbiWord
+	[pt]description=Documento AbiWord
+	[pt_BR]description=Documento do AbiWord
+	[ro]description=Document AbiWord
+	[ru]description=документ формата AbiWord
+	[sk]description=Dokument AbiWord
+	[sl]description=Dokument AbiWord-a
+	[sq]description=Dokument AbiWord
+	[sr]description=AbiWord документ
+	[sr@Latn]description=AbiWord dokument
+	[sv]description=AbiWord-dokument
+	[tr]description=AbiWord belgesi
+	[uk]description=документ у форматі AbiWord
+	[vi]description=Văn bản AbiWord
+	[wa]description=Documint Abiword
+	[zh_CN]description=AbiWord 文档
+	[zh_TW]description=AbiWord 文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_intermediate_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	short_list_application_ids_for_advanced_user_level=abiword,openoffice,openoffice@OOO_BINSUFFIX@,staroffice
+	category=Documents/Word Processor
+	[am]category=ሰነዶች/Word Processor
+	[ar]category=مستندات/معالج كلمات
+	[az]category=Sənədlər/Söz İşləmci
+	[be]category=Дакумэнты/Тэкставы працэсар
+	[bg]category=Документи/Текстообработка
+	[bn]category=নথীসমূহ(documents)/ওয়ার্ড প্রসেসর
+	[ca]category=Documents/Processador de textos
+	[cs]category=Dokumenty/Textový procesor
+	[cy]category=Dogfennau/Prosesydd Geiriau
+	[da]category=Dokumenter/Tekstbehandling
+	[de]category=Dokumente/Textverarbeitung
+	[el]category=Έγγραφα/Επεξεργαστής Κειμένου
+	[eo]category=Dokumentoj/Verkilo
+	[es]category=Documentos/Procesador de textos
+	[et]category=Dokumendid/Tekstitöötlus
+	[fa]category=نوشتارها/واژه‌پرداز
+	[fi]category=Asiakirjat/Tekstinkäsittely
+	[fr]category=Documents/Traitement de texte
+	[he]category=מסמכים/מעבד תמלילים
+	[hi]category=दस्तावेज/शब्द संसाधक
+	[hu]category=Dokumentum/Szövegszerkesztő
+	[id]category=Dokumen/Pengolah Kata
+	[is]category=Skjöl/Ritvinnsla
+	[it]category=Documenti/Videoscrittura
+	[ja]category=ドキュメント/ワープロ系
+	[ko]category=문서/워드 프로세서
+	[li]category=Dokkemènter/Teksverwirker
+	[lt]category=Dokumentai/Tekstų Procesoriai
+	[lv]category=Dokumenti/Teksta Redaktors
+	[mk]category=Документи/Текст Процесор
+	[mn]category=Баримтууд/Үг Боловсруулалт
+	[ms]category=Dokumen/Pemproses Perkataan
+	[ne]category=कागजातहरु/वर्ड प्रोसेसर 
+	[nl]category=Documenten/Tekstverwerker
+	[nn]category=Dokument/Teksthandsaming
+	[no]category=Dokumenter/Tekstbehandling
+	[pl]category=Dokumenty/Procesor tekstu
+	[pt]category=Documentos/Processador de Texto
+	[pt_BR]category=Documentos/Processador de Textos
+	[ro]category=Documente/Procesare text
+	[ru]category=Документы/Текстовые процессоры
+	[sk]category=Dokumenty/Textový procesor
+	[sl]category=Dokumenti/Urejevalnik besedil
+	[sq]category=Dokumente/Video-shkrim
+	[sr]category=Документ/Процесор текста
+	[sr@Latn]category=Dokument/Procesor teksta
+	[sv]category=Dokument/Ordbehandlare
+	[tr]category=Belge/Sözcük İşlemci
+	[uk]category=Документи/Текстовий процесор
+	[vi]category=Tài liệu/Word Processor
+	[wa]category=Documints/Aspougneu d' tecse
+	[zh_CN]category=文档/字处理器
+	[zh_TW]category=文件/文書處理器
+	use_category_default=yes
+
+text/tab-separated-values
+	description=Tab-separated text document
+	[ar]description=مستند نص مفرق بلسان
+	[az]description=Tab ilə ayrılmış mətn sənədi
+	[be]description=Тэкставы дакумэнт фарматаваны табуляцыяй
+	[bn]description=ট্যাবের দ্বারা আলাদা করা টেক্সট নথী
+	[ca]description=Document de text separat per tabulació
+	[cs]description=Dokument s textem oddělovaným tabulátory
+	[cy]description=Dogfen testun wedi ei wahanu gan dab
+	[da]description=Tabulatorsepareret tekstdokument
+	[de]description=Tabulatorunterteiltes Textdokument
+	[el]description=Έγγραφο κειμένου διαχώρισης με στηλοθέτες
+	[eo]description=Tabdisa teksta dokumento
+	[es]description=Documento de texto separado por tabuladores
+	[et]description=Tabulaatoreraldusega tekstidokument
+	[fi]description=Sarkaimilla eroteltu teksti
+	[fr]description=Document texte séparé par des tabulations
+	[he]description=מסמך טקסט מופרד בטאבים
+	[hi]description=टैब दीरित पाठ्य दस्तावेज
+	[hu]description=Tabulátorokkal elválasztott szöveg
+	[id]description=dokumen teks tab-separated
+	[is]description=Dálka-aðskilið textaskjal
+	[it]description=Documento di testo separato da tab
+	[ja]description=タブで区切られたテキスト・ドキュメント
+	[ko]description=탭으로 분리된 텍스트문서
+	[li]description=Tab-gesjeije teksdokkemènt
+	[lt]description=Tabuliacija lygiuotas tekstinis dokumentas
+	[mk]description=Документ со текст одделен со табови
+	[mn]description=Таб-аар зааглагдсан текст баримт
+	[ms]description=Dokumen teks dibahagi-tab
+	[nl]description=Tab-gescheiden tekstdocument
+	[nn]description=Tabulatordelt tekstdokument
+	[no]description=Tabulatorseparert tekstdokument
+	[pl]description=Dokument tekstowy z polami rozdzielonymi tabulacjami
+	[pt]description=Documento de texto separado por tabs
+	[pt_BR]description=Documento texto separado por abas
+	[ro]description=Document text separat prin tab
+	[ru]description=текстовый документ с полями, разделёнными табуляцией
+	[sk]description=Textový dokument oddeľovaný tabulátormi
+	[sl]description=Datoteka z besedilom ločenim s tabulatorji
+	[sq]description=Dokument teksti i ndarë me Tab
+	[sr]description=Текстуална база података раздвојених табулатором
+	[sr@Latn]description=Tekstualna baza podataka razdvojenih tabulatorom
+	[sv]description=Tabbseparerat textdokument
+	[vi]description=Văn bản ngăn cách bằng tab
+	[wa]description=Documint tecse separé pa des tåbulåcions
+	[zh_CN]description=用跳格分隔的文本文档
+	[zh_TW]description=Tab 字元分隔文件
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@
+	short_list_application_ids_for_intermediate_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@
+	short_list_application_ids_for_advanced_user_level=gnumeric,openoffice,openoffice@OOO_BINSUFFIX@
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
+
+text/x-comma-separated-values
+	description=Comma-separated text document
+	[ar]description=مستند نص مفرق بفاصل
+	[az]description=Vergüllə ayrılmış mətn sənədi
+	[be]description=Тэкставы дакумэнт падзелены коскамі
+	[bn]description=কমার সাহায্যে পৃথকীকৃত টেক্সট ডকুমেন্ট
+	[ca]description=Document de text separat per comes
+	[cs]description=Dokument s textem oddělovaným čárkami
+	[cy]description=Dogfen testun wedi ei wahanu gan goma
+	[da]description=Kommasepareret tekstdokument
+	[de]description=Kommaunterteiltes Textdokument
+	[el]description=Εγγραφο κειμένου διαχώρισης με κόμμα
+	[eo]description=Komdisa teksta dokumento
+	[es]description=Documento de texto separado por comas
+	[et]description=Komaeraldusega tekstifail
+	[fi]description=Pilkuilla eroteltu teksti
+	[fr]description=Document texte séparé par des virgules
+	[he]description=מסמך טקסט המופרד בפסיקים
+	[hi]description=कोम्मा दूरित पाठ्य दस्तावेज
+	[hu]description=Vesszőkkel elválasztott szöveg
+	[id]description=dokumen teks comma-separated
+	[is]description=Komma-aðskilið textaskjal
+	[it]description=Documento di testo separato da virgole
+	[ja]description=コンマで区切られたテキスト・ドキュメント
+	[ko]description=쉼표로 분리된 텍스트 문서
+	[li]description=Teksdokkemènt door komma's gesjeije
+	[lt]description=Kableliais lygiuotas tekstinis dokumentas
+	[mk]description=Документ со текст одделен со запирки
+	[mn]description=Таслалаар тусгаарлагдсан текст баримт
+	[ms]description=Dokumen teks dibahagi-koma
+	[nl]description=Komma-gescheiden tekstdocument
+	[nn]description=Kommadelt tekstdokument
+	[no]description=Kommaseparert tekstdokument
+	[pl]description=Plik tekstowy z polami rozdzielonymi przecinkami
+	[pt]description=Documento de texto separado por vírgulas
+	[pt_BR]description=Documento texto separado por vírgulas
+	[ro]description=Document text separat prin virgulă
+	[ru]description=документ с текстовыми полями, разделёнными запятыми
+	[sk]description=Textový dokument oddeľovaný čiarkami
+	[sl]description=Dokument besedila ločenega z vejicami
+	[sq]description=Dokument teksti i ndarë me presje
+	[sr]description=Текстуална база записа подељених зарезом
+	[sr@Latn]description=Tekstualna baza zapisa podeljenih zarezom
+	[sv]description=Kommaseparerat textdokument
+	[vi]description=Văn bản ngăn cách bằng dấu phẩy
+	[wa]description=Documint tecse separé pa des comas
+	[zh_CN]description=用逗号分隔的文本文档
+	[zh_TW]description=逗號字元分隔文件
+	icon_filename=i-spreadsheet
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=gnumeric,kspread,openoffice,openoffice@OOO_BINSUFFIX@
+	short_list_application_ids_for_intermediate_user_level=gnumeric,kspread,openoffice,openoffice@OOO_BINSUFFIX@
+	short_list_application_ids_for_advanced_user_level=gnumeric,kspread,openoffice,openoffice@OOO_BINSUFFIX@
+	category=Documents/Spreadsheet
+	[am]category=ሰነዶች/Spreadsheet
+	[ar]category=مستندات/برنامج جدولة
+	[az]category=Sənədlər/Hesab Cədvəli
+	[be]category=Дакумэнты/Электронная табліца
+	[bg]category=Документи/Таблици
+	[bn]category=নথীসমূহ(documents)/স্প্রেডশিট
+	[ca]category=Document/Full de càlcul
+	[cs]category=Dokumenty/Tabulka
+	[cy]category=Dogfennau/Taenlen
+	[da]category=Dokumenter/Regneark
+	[de]category=Dokumente/Tabellenkalkulation
+	[el]category=Έγγραφα/Λογιστικά φύλλα
+	[eo]category=Dokumento/Sterntabelo
+	[es]category=Documentos/Hoja de cálculo
+	[et]category=Dokumendid/Arvutustabel
+	[fa]category=نوشتارها/صفحه‌گسترده
+	[fi]category=Asiakirjat/Taulukko
+	[fr]category=Documents/Feuille de calcul
+	[ga]category=Doiciméad/Scarbhileog
+	[he]category=מסמכים/גיליונות נתונים
+	[hi]category=दस्तावेज/स्प्रेडशीट
+	[hu]category=Dokumentum/Munkafüzet
+	[id]category=Dokumen/Spreadsheet
+	[is]category=Skjöl/Töflureiknar
+	[it]category=Documenti/Foglio di calcolo
+	[ja]category=ドキュメント/スプレッドシート系
+	[ko]category=문서/스프레드시트
+	[li]category=Dokkemènter/Spreadsheet
+	[lt]category=Dokumentai/Skaičialentės
+	[lv]category=Dokumenti/Izklājlapa
+	[mk]category=Документи/Spreadsheet
+	[mn]category=Баримтууд/Тархсан хуудас
+	[ms]category=Dokumen/Hamparan
+	[ne]category=कागजातहरु/सप्रेडशिट%
+	[nl]category=Documenten/Spreadsheet
+	[nn]category=Dokument/Rekneark
+	[no]category=Dokumenter/Regneark
+	[pl]category=Dokumenty/Arkusz kalkulacyjny
+	[pt]category=Documentos/Folha de Cálculo
+	[pt_BR]category=Documentos/Planilha
+	[ro]category=Documente/Foaie de calcul
+	[ru]category=Документы/Электронные таблицы
+	[sk]category=Dokumenty/Tabuľka
+	[sl]category=Dokumenti/Preglednice
+	[sq]category=Dokumente/Fletë llogaritjesh
+	[sr]category=Документ/Табеларни прорачуни
+	[sr@Latn]category=Dokument/Tabelarni proračuni
+	[sv]category=Dokument/Kalkylblad
+	[tr]category=Belge/Hesap Tablosu
+	[uk]category=Документи/Електронна таблиця
+	[vi]category=Tài liệu/Bảng tính
+	[wa]category=Documints/Tåvleu
+	[zh_CN]category=文档/电子表格
+	[zh_TW]category=文件/試算表
+	use_category_default=yes
+	default_application_id=openoffice,openoffice@OOO_BINSUFFIX@
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard ooo-*.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-gulls.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-gulls.png.uu
@@ -0,0 +1,46 @@
+begin 644 desktop/32x32/ooo-gulls.png
+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
+>`:#C)G7PR6[_!@O0/U;.OV4:`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-calc.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-calc.png.uu
@@ -0,0 +1,49 @@
+begin 644 desktop/32x32/ooo-calc.png
+MB5!.1PT*&@H````-24A$4@```"`````@"`8```!S>GKT````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L/%1`(>?2/+0``!YY)1$%46(7EEGEP5=4=QS_G
+MWG??R\W;>"1D80\4"($H6V*@%H@44::#6MHR4I8.(EL+;9CI6$<[93H#V!G;
+M2$>$4.S"IE3!BJT=960=0#"(1(2430HD\!(@A/#6NYS^\<)-'D2;VO[7W\R9
+M>\Z9<\[W>WZ_[_G]+OR_F^CLPO'+=KM:ZNN_H6OJ-+=+E%@6N89E!355;595
+MPH9I'XX:]AO^[MWW[UE6;O[/"(RN^+,NXU:%(GBF;'"N,J6LG[=OOE_H;@V7
+M2R%IV$3C!A>NWI0[/KP0J:X-2XE8+C/4WQZJ_%[LOR)0,G_S6(\JMGUWW`#?
+MC(F#,SQN%=.TD=+&MD%*"4BD3!VC*`KQA,5KNVOC?SEXOB6:,*=^O'[F_J]$
+MH&S>ZPM#`>W7:RO*]9!?IR5N8%H26TIL.]6LUG9G;$N)VZ40\GIHB<19LGI?
+MM#F6_/&':Z:O_R(<M:/),0M>F]F_9W#5L].&9%:?/,WE\#5<BB`GY,>M"CPN
+M@6T:G#I_@<_.G*.K+X/N60&\;A6/2R!MD\P,C2FC^VG5IQL?\A9.OGBY>ONG
+MG?)`R=.;2K("^JY-STWR&98D81@<.WF&78=KB"62C!HZD(8;-_GTS`5*B@92
+M7C82C\?C>"3E#1O+EO@S-#(]+A:M^N!V4R16?J1J5O67$UBV3!EWO?#L[W\Z
+ML2`[J(,`*5.Q3B9-=A[\B+?V5!/TZLR:/);"K_5%")%:8X,M;6S+QK1L;%L"
+MX'%K--U.LGCUWK-[LDX-8MDRNSVDJ_W@@2L#9T]^L&].URZ91)-F*SBM\84Q
+M):,(!8.$`@%"6=E<CUC.K1.&12QA.L!MEJ`@Q\]#PWOF)0[+&8=@0T<:&`3*
+M#Y/-=;_*TQKU:XV-],C/)^CWX5($FBK05`5-D7Q^^A1_?V<[?WKU%6XU-3)L
+MR&""7AW=)>BBNPAE:H0R-;KH+KIDIIHJ),4%V>YW#I\?\\\C;[[880A*YV\8
+M51"4>P9XSGLW;MA`7=TE'AQ;SK3ILQA:/(QM;VQAZY8--(3#?'_V7.;,7T*H
+M:S?B28MH/#WOI)ZG,P*@?ZZ?7VP\U'+B7/.XZE>?/'9/"#3AGOJ#QT?I98._
+MPX(%BUE7M9K*RA?9LVNG<U1Q\7V\_'(5I0^,QJUIV+9-(B'`I]T#V)Z(E!(%
+MR932_M[3%X].!>XEX/:(TKZY`>56W,24*K.>7L*$1Q]GT;S9G/RLANDSY_"C
+MBF?Q^[O0%)/8T031F$'23--4*^"]W@CH%KUS?8K;[2KM,`3CEVRMW?BS28,R
+M,U2D+0&!1))(Q#G^R7%&CBI!",4!2+T,"X!=N]\F'*Z_A\B_,X_'_9'C`5L2
+M4%6%FU$+P[3:@%#I4SB<QA832>I%2"2QN$7<L`!!.%S/O+GS_V,"Z]97E3@$
+M5$&3:9KY05W#LN[*3[)]9$':$D.W482"$'"D=7[ERA<Z#;YT:0703@,247<K
+MDBQ*6!!/6@Z@E*EB8]L@D4@IB2=3R2:UIM,5O4-S",0-8]\_+MXH'SNLE\O4
+M%!!W%-P.1*82DF5)A!"HB@`$AUO/J*CX28<@MMTF5"$$0@C<;G<Z`<,2;V[=
+M>^:9L<-Z^ZXV)T@5VCL>`"D%2=/"M.Q60BF1MO=`9>5+3G_IT@H\'@\`]5?J
+MG/G\O'Q'S&D$CJZ;7NM;_/JUEDC<EQ?T8)HF-P_LX_K.]VBI.8ZXWH@B4^"V
+MJD)6-KZA]Y,]\5'GW2U<N,`Y^,X-`7*ZY3I]*4&TBUI:+8@9YN+5;]=LGN6M
+M#YQ=\4OR0P$*BHKH^O`$%$U+[6S=;5L6375UU+VTDIZ7+G(UKR=_.'&B0P\T
+M-(;3/-#>[E'0SX=,"(^-GL\9/FD2&3Z?`RH`%*6-A*JFOHI",A;CV(X=R-%E
+M%#S_'`#!8!#12M8TVU*UHB@H2BH$Z]97I?^0;(:GBKSRR;*I4]$4!>)Q,`PP
+MS;9F6:GOG7G#P.5VTW/$".K^]B[O'SC`OHN7*"TMQ>5*.?AJ^`J1:(1(-(+?
+M[W>('?WX:'H()"P=^L@DQ.W;R%@L_<9W]46[OHS'$8;!T,<>X^;V;0Q[9?57
+MTP`PR-^]!W9-38?`E@OV%A40L0:U!E`X7R$$N7UR:*ZL9,V:M9W6P-T$B'DT
+M,GP^[&O7VN+?2N)L81.U(X[16+\1*=-_)T,^-Q'K.HJBL'#A@DY[0"'=SM<V
+M7$:4EJ#TZ)'20"R&C$:1T2C'BZ_0F'>=7E0Y&P30,TOG_GR=;6_]$72=-6O6
+MDDPFG34-C6&GB;MDGW:-)T!&KH8G-_?K3M=!1>A#BU-JMVWBKCCO?;L>5!69
+M=96<Z#?)[Y;#\'XALHV;K/C=*NX[^#[C%RVD_*DY>+U>1VRZGHG7Z\/K]3F9
+M$%(B3.,C06R!=?3N,5=,&$-.5C?Z=,TCU"V7:*&7\!`7$DG2C"`^AW-G>O#N
+MX?WL_^0(3UP\PX!`@+I')B'I7"9<M[ZJXTJR"69(55EN]>O5.]DKAV3`BQPB
+M2>;8Q"(FL;A)\H;%!S59%#=<XNL-#8Q>L1SOPQ.=,]KG@8YJP9<2`*@"S0>3
+M@6_9,-+*]A8F@V[=%*`U)V(9UZ*UBN0H\->&W[SP?,*T1GW165]D;K>[^E^A
+3-7W%>-T&FP````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-printeradmin.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-printeradmin.png.uu
@@ -0,0 +1,46 @@
+begin 644 desktop/32x32/ooo-printeradmin.png
+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
+6_P530_?^XV2)<`````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-base.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-base.png.uu
@@ -0,0 +1,53 @@
+begin 644 desktop/32x32/ooo-base.png
+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
+8_YCZ)P?_#&G4IO'B`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-web.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-web.png.uu
@@ -0,0 +1,54 @@
+begin 644 desktop/32x32/ooo-web.png
+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
+=T?&G`OA_C'\"P7H<E(=D$*``````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-writer.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-writer.png.uu
@@ -0,0 +1,44 @@
+begin 644 desktop/32x32/ooo-writer.png
+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
+/*O]R`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-math.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-math.png.uu
@@ -0,0 +1,51 @@
+begin 644 desktop/32x32/ooo-math.png
+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
+!@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-draw.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-draw.png.uu
@@ -0,0 +1,55 @@
+begin 644 desktop/32x32/ooo-draw.png
+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
+1MO<C<`P`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/ooo-impress.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/ooo-impress.png.uu
@@ -0,0 +1,51 @@
+begin 644 desktop/32x32/ooo-impress.png
+MB5!.1PT*&@H````-24A$4@```"`````@"`8```!S>GKT````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L/%R(TN&]SM0``!^M)1$%46(7EEGM05-<=Q[_G
+MW,?>?;`L+@NB48H:!:V\A*!H5$B,:6H<*R44'SA&JW7&Q*0/M9I.Z#1F)I.D
+MMK6::*-.*+;65V>:Q#%)(Q3$B(.6A\8'K@\,KLCR7-C7?9S^L<NR/#0V]K_^
+M9N[LN?>>\_M]SO?WN[\]P/^[D8>=.+>XC'?=N?.D7N`*1)YDJBIB956-%#BN
+MB^/0(BM:M5O6#D>,&E597IRC_,\`9KQZ2,^\ZJN48%/VE)%T\:P)QG&C(XE)
+M+T(0./AE%;T>&?;F#G:TTMY;?='!&,@V)G%_^'+["YY'`LA<>V"VCB-'?Y0[
+MR;3RN>]*HL!!EE4PQD`(0`@!8PC>$P@"!Y]?Q?[C#=Z_E3>ZW#XE[_P'RRN_
+M%<#T-0?7C8@4WMV[<9X^RJR'RRV#$("Q_CF,,;#P12S@T6P0T>GR8.5;G[L[
+M>WT;SKRWY(/[Q>&&>YC]D[\NGS#&\OM?+9MJJ*Z_C*8[K>`I0;3%!)X2\)1`
+M]OM1>]F.<Q>N(D(O(28J`@(E$"B!IJHP2#P*<A.%TQ<<N8:)SS5]77.LX:$4
+MR/QQ::;5K#]YZ-??-WE\"KQ^/VJ_NH8OJNO@\?DQ/3D1+>V=J+U\'3-3D_"]
+M.=-AE*20!'V*,,;`<Q22CD=A\<<][3WNG+.[BVH>#%!<3.>T)5XKW?IL@L6D
+M@ZIJH2FRK."STS4X=O(L+"8]5CZ?@RF3QH$2.B@'_6EB``2>0[O+BZ(W/[U6
+M;KTT"<7%6GA(/OPFRS%QQ8+9"3%1D09TN;Q@(`$W08>SLS(0$V6!-2H2T=$V
+MN+P:&+10M/"*Z*\5!=&1!LS/BA_IJV3+O@1*AE-@$D`+;!.RMN3/S]`E3TU!
+M3NY3L-ELP2F!ZM(T#555IU#QKS+<;KX!Q@9LYK\V0HDKE((GUI9DC+.P\D3#
+M+>.^??MQI_DV9LW.0<&2Y4A.3L?1PW_!P0,E:&FYBQ4KU\#M=F)*TE102A\4
+MXX%66W^^/P4"$?-6_S!+GY4X$JM6K<.>/;OPN^WOH/SDYZ$%4Z>F8.>NW9@Q
+M(QNEI?M0??;TMPX.``2T*@0@ZL@3XT=9:*=;AI=Q*%K],IYZ=A'6KUV!BQ?K
+ML:QH%3;\;`O,D5'H]C$LS'\1BNK%TL(BV.UV,,9`*84D2=#I=!!%$8(@@.=Y
+M<!P'2BDHI:'QWOU[L'GCUEDA`,8PVFP401B#Q`4>6R8FX-,3GZ&NKAX9F9F!
+MBB<D2`]P'`=!$&`VFV'2-#AV[H2CO!R:HD",C<7X5UZ!;<$"$$+0T!!H`X00
+MI*2DA%0(`6@,9I[GX>STP"^K`2@`!!R^DY0&9X\"`C*@\U'*0=,TQ%DLJ%FT
+M"(G969A66`C"\W`S%>=_^S:TWEZ,*2Q$2DH*2!\\(4,!.((.69;CH@P\9)F$
+MO@\26!%JLV3`&*"4PG'D",9GIB-.,H*UM^/FB!BXI1A8BS:@X<TW$+]TZ3<K
+MP$":NWO]DT$H>MQR($#_N[#""=PKJ@:-!0#\+2VP)8P#:[@(IJJHFNG`%:48
+M"2-TT-NLH)0B-34U!#"L`EY9KOCJAC-G3MH87J(,_7,&+B"$0-,8%$6#3A`@
+M*S(,\?%HJC^/Y/G/P'VO$7SF=62W&L"UV*&V.4$I15U=72CXL`K(*CE2^L_+
+MF^9EC3/=[>I&N/)@`3D8`_RR"I\<:-$:"`@(QN3GHV+W;I1[>Q$S/QWQSC1<
+MJOXS7.\=0-YKKX$0@K2TM`?7P+D]2RZ;7CKH[')Y3&.C#?#YY%!0Q@!-8X'_
+M?0,75`6X0`,I$,UF/'G\."YMVX:FXO?1X^_!^%$3D/36VQB]<"$((:BOKP\%
+M34M+&PH``!Y9>>G=@^</O/YBMOEB4R<4M2\5_>3AJ5$U`DH#LNIC8S%MQPY,
+M&Y3GOG%J:NK@_+,A`&??7_:QX>5#]IN.CM3TQZ/)O=;N(8[Z)22X*NG@]_M!
+M*0WM<'"1#2=[4E(2.([S#0$`@.Y>WPOKMI?5'/O-@DA.+^%&<U?PVR>#'`*R
+MJH4ZW.`=#@8)-[>[%YJF\?U>!UGZZI+<.*OIHP\WSS=((@>GTP5-8T-V<^3H
+M7BC*0Q^`A]CFC5OO@PA@VIK29XR">&373^>:)HZUDIN.;MQI[8$6;(6!`RD;
+MH`ZEP&,V$\;&FO"+33_'O986W.!G+JHN6?\/8.#QL<^&.Q/J`)@=YXZU,TY?
+M=NH&FU';V&J<ES&6GYQ@1:Q%0G2$#M8($3:S#G%1>HR.-B!^9`3&/V:!WZ_@
+MEW_\Q$=<USE)IR.M5[\X<?O6[;:@7PI`#8<9#*`'8`A>QJZOZ^2FFH\^:5.,
+M=T_4NR;^O=(NZ@0*HT&DHLA#IQ/@530XN[PH__<M=<N?3BFE)VI;'0W'RT36
+M,\'M<3.`M5UKM-<&9>I3/`0Q.`4D&%P/0`K^]HVEJ(2LL3%)LV=%CA@U6=0;
+M;2""&9K/Y?5Z6KOOW;[B;"P_.^WQJ'D19O.LQBO7MG1V=C9G9*6_HVF:O:+L
+MU(:.CHXN`!X`_O"`]S,:E*WO$@"("'PY7/`]"8Z%N+@X:VIZ\C95TY2:ZG.O
+MM[>W=P"0+18+IL_(?(,3>&MSDV-Y;6WMW2"`'X$>^TA&`$A//SUWIL%H^K#7
+M[3Y\JJ)JA\_GXX/`!(`&0,[-S5FO-^F?;^MH7W:F\DP]`%^X$H]D^05Y)Q?G
+M+UZ(@$(&`"8`9@"1`"(`&`'H\_)^L"*_(*\B?.U_`$C_&8@,M'N<`````$E%
+&3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/32x32/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/32x32/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/32x32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard ooo-*.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/32x32/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/32x32/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard ooo-*.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-gulls.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-gulls.png.uu
@@ -0,0 +1,83 @@
+begin 644 desktop/48x48/ooo-gulls.png
+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
+HF]_H0NSG=C$Y#XP&\)D-_C_7_A-2:F]*=7='T0````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-calc.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-calc.png.uu
@@ -0,0 +1,79 @@
+begin 644 desktop/48x48/ooo-calc.png
+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
+8OR'_!>`?S!+W<>#2`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-base.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-base.png.uu
@@ -0,0 +1,90 @@
+begin 644 desktop/48x48/ooo-base.png
+MB5!.1PT*&@H````-24A$4@```#`````P"`8```!7`OF'````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L>$0$H_N\4TP``#NQ)1$%4:('MF7F0756=QS_G
+MW'O?UMWO=9+>TAW2W5FZ@<D&P1!(,"1ATTE001AFU%(9+77&<1S+JK$&2MN%
+M4JN<81`<%ZR:0K1JF!B4!&4S0-@"8<DJ,28AZ22=]-[O]=ON>L[\\99^+_T:
+M9&!F_IE?U7GWWG/N\OO^?M_?<N^#_Y?_6Q'OUHTV][W2A'#6A2QY9<@0*P)-
+MEU+$`J4CAA2VE.0,P0DWT'M=3SV-#N_<WG?)Z#M][CL"\+Z^%^,A0WTL$A*?
+MK8M8"R_MF<W"]OIHO,XB'+(00H`0H#5::QS78S+K<>Q,)O_2'\?)VMXQV]4_
+M<@-Y_R-]JR?_UP#<])U7$BIP;[,,XW/7KFRUEG8WAJVPA50>(4-@&8*0*3&D
+MP)`"/]`$2A%H<#R%IT`)$]?Q.'`\Z3SVZI#G!<$/I1&Z8\M7+DG]CP*X_ALO
+M?C02XOL?NJRCX<+N669]"!(A021L_,DWTQI`8[N*E*O)>/#Z&Q/^KW8-I&V7
+M+VS[ZNJ?O^L`;NI[JEZ'HO<M:J][W\WK.J.6A+H0Q$(&NN)&NDK3RHV><=WV
+M`M(>N#X\^.S)_-$SV4>$F__XEK[UF7<%P/O[=K=%0][.&R^?U[UT49/5$M'4
+M18SBY?J<LVO-58N>83GG!`P[@@-'1KVM+YP^GG>M=;_M6S7XC@!<?\>+K6&I
+M7OWT=0OFQF,AB>]2%S%H;(@@I:C2M6SCBCG?5QP]F^+L:(:6QA@7=,Z9]E1=
+M\>-XBKPR&)K(J7L?.7;647+EMMM6#_VW`%S_W><:+$_N^]SFA9WU(2%/GAGC
+M4/\$SQT8(&M[G#]_-FN7=K#QXGG,;HB4K[-=GYW[!MCQVBD.'!]C^<(F_FIC
+M+\L6-`%Z1@^41"G-4%9Q>C2O_FW[T7[/4LNW_>/:]-L&<..WGO_-1];/OV;Q
+M>0FSWM(84H+6N)['RX<&>71W/[_O'T=*P<6+FUFW8CZO]X^Q<^\I<K;/W#EU
+MW'K=!5S4TX8TC,)-M2X[J`1$:UW%/`4$@<8.),<&)OV?/]7_^-;;U_SYVP*P
+MN>^93UUZ_JR[;GIO=ZPE1D'Y<\1U77:\<IS[GSS&X(1=GC>DX,8U\[EE_6(2
+M\0:$$&A=*`F5,I,G='$A4)KA/&Q]YGCNI<,3?[^][[T__9,`;.Y[JBD:L0[?
+M=LNRV2'A$PN;,U\@8'PLR0]^O9<]QR>956_QB8U=K%K:33@<>8NL)-#%F-%,
+MI==*8+:O\+3)MQ_8/YZWO=[M?>NKJK=)#0D9QO?^>F-W8E8$$M%PK5.H3)R)
+MCB:^>>M:'GAB+ZMZF^A=U(U1HDP-F5)PYF"H/"?M:6[=N#!Q[Z-'O@=\HI86
+M9=ETVXZ.1#QRZ/:/+F\P`H^0):OR_'08HKBH48$N9"8@G<DP-CJ*'_BTMK;1
+M4-]0MG;9\F5E-1I1IL[47`&(4AK"(;[ULWWIU*1]P<-W;!RH!""6K5R]"JEO
+M0JMK#*M^?E/3G'CG>>WB@I[%+%NZC(N6K\`TC8I+ILMD.LW+K[S,:WOV\-K>
+M/0P-#[%Q_08VOW\3RY8NHY:U:\>`K@AN"((`WP]PL3AX<C+XR:-__-=M?>N_
+M7`F@+&O6K&F(+OO8P(JFT89=S^\D/5EH2^+Q!&O7KF/]AJOIZ>DM7B102O':
+MGE=X<L=CO/32BWB>BY22]1NNYI:_^"BM;6TEG:JEF'&4+EBZV.\5+:[).SZ9
+MG$?.\=&`4@HK9-'1DN#+/]X]OE(^T]S7UZ>F`=CXE=^]9\7"QB>_\($+ZZ63
+MXM$GGF#+UBT,#DW5D>ZN+J[?M!G;=GAH^T-5:PN[%_"93W^&94N6$(E$D5*\
+M9<ZO](;G^;BN7Z`,5%$*-#I:QP\>.I39\T9RPX[O7/4RG!/$AM377'%A2]1V
+M/`PBK+]Z,Y>NV<`#_W$_CS_^&QS'Y?B)$]QUS]U5#X]&8VS:]`&NNNI:FIN:
+M\0CA.4%-ZT]E&\IQD+<#TCD7/U`$JN`1I731*QJE"_'1TF1QQ9*6Z/X3$]<`
+MTP%$3+FNNZW>:(Q*3"$`P:Q8@B]]_O/<N'DS=]Y])_L.'*A2J&?18CY]ZZ?H
+M[>DE'H\7W@&HYO=,^5]KC>/XF):@(1$ZYQP];5]8@LZV>B-BRG7`'=,`**UZ
+MX_5A)K(.LIA<2@]/M'1P^]>^R_WWW<OVAW^-$(+-FS[(ILT?9,[L)K!,TG90
+M5K@V=02V;7/X#P<X_(=#G#[53W)B#,>Q44&`89B$PF%F-[72UM[)O.Y>.N8O
+M!"1**T*61WMK'*55;^F.50!<+VB*A@SJ#7.&7&/RQ;_]/"N6_AF1<(2++[J(
+M<#A:4]$IJQ>2\,#`:;9M>Y`#!_;1T3&/!0NZN>S2E5B65:S4&L_S\'V?3";#
+MQ,0$+_SNEXR-C7'YY>]EPX9K:8C7885,/#]HJ@D@"%182,%HRD44E2AO*_8O
+M7G4%:'"UP,G[Q751`%W,,`+00A`$/MM_]9_L>F$G/3T]W'###42C4912Y1$$
+M`4$0H)0"(!:+$8E$:&EI(9O-<O3H89Y[;B=77G<3-]RX&=]7X9H`M-9"2LF<
+M.JN@1)4;BLE3%#0L]#;3_30U5TBS]_SH;DZ?/LG:M6N9-V]>V=(EA<\=E?-!
+M$&`8!N>=-P\I!<\^\2`-48W6L?*#J[.0P-9:Q<8R'I0LSI3U@7*E%14Q(I`@
+M=/$<73R&YY]]DI,G^SG__%[:V]OQ?;^FDK7V?=_'<1QRN1R^[U-75T=C8X)'
+M'OXUYNSKW)H`3$..JT#%9M=9B%++I<4,GJ@^KC7W\+:M-#<WT=C8B.NZ:*W?
+M5.'2NFW;V+9=12VE%*9I8DA)9/S%*9VK_:\/IS+V/`.!Z_E55@:!42*Y`%G<
+MEQ7\%T(4*:28G$SCN@Z691$.A_%]O^R!2N4KMY[GE14_%R!`/!XGG4XC<Z.R
+M)@#'"YX[<39]Y26+YAB>6\@>TVD^DP=$.7T&@<9W;$S30DK)Q,0$"Q8L8&1D
+MI`I$I>*NZ];T3A`44G-[>SN#@X.%UD.KH"8`WPT>W[%GX$NKSF]I&!WWD&(J
+M<,O>D`5K2U&($"%!%L]16A/X"@%X00&;81B,C8W1VMI*=W<WIT^?)IE,ECWB
+M^_Z,M%)*D4@DRN!3J12&8:"U\FH":#WKOO2J-1Q("<T-H7)/4LJ-)2J50)7>
+MLDI6EVA,TT`(")D2`9BF21`$'#MV#-=UZ>TMU*`S9\XP/CY.*I7"MFU\WT<(
+M030:+09L(QT='2BE.'CP("=.G"@H;)H(9@"P9<O-P55?>NCG>X^,_LWBCK@<
+MR]J((L]!8T@!NLC[XA<)K:=*O2E!2HT0!AJ-$`+#,,HT&!X>)I5*T=S<3&MK
+M*_/GSR<4"F$8!D*(<N9)I].,CX]S\.!!AH:&\+RROIAF==A.>R-S7>=?[GIP
+M_\=_<?O5#?A^Q;NL*#99H+4J*EY*JZ(B@`O>B80MM-8UW\Q*5B\%=RD&/,\K
+MC])QI0@AI@&8]J;^S#TW'T_GO$?V'QU1PK(XF[0+8SS/F?$\@\D\HY,NR;Q/
+MVO')V#YY3^'X&B=0^$KC*XUAAO']8!H`_:?VUT6IK-!`Z7ZUZT!)<D[N'[[^
+MLU>OWOKU:V<IU\-U/4K<+UE<2A!"EN>$*'FB8*G`$U46BT0BA,-A<KE<V?JQ
+M6*S<!Y5J@.,XY/-Y;-O&<0IIN*&A@4PF4ZX%@/^F`)Z_YR_/7/%W6[[Q_5_N
+MN^,+'UX1.WAL!*44`H%9_.)L&!)#*H0`*26FE$4@!4!!T6HE#]BV32P6H[N[
+M&\_S2*52C(Z.EN,BD\E@&`;Q>)QX/,ZL6;-H;&S$]WV&AX?Q/*\FA6H"`'CV
+M[@_?91E;/[3J@I8UJR^<:PP-)<O]3\GBY2:N:@`(M%D`5$FA;#9+$`0D$@DZ
+M.SM9OGPYL5B,<#B,81ADLUE2J13CX^.,C(PP-C9&.IVNBH5S*3DC`!#:=7[Q
+MP;[[=A_\X1>OG-O1'!='^L?0%+[_"U'PA!02PZ#L":-(,<<M<#<4FOZBDLOE
+M"(*`5"KUMH(8REFH'!33/[=5R',__,A$+IU>_=D[GQH[-32IERYNH2T1HC%J
+M,BMFDHB:-$0D]6&#NI!)S))$3$G4DH0*7R'?U2`NI>5*>5,`@'SYWV\=/7UH
+MUX;/WKGCS).OG0I:VQKQD(QD7$8S+F,9C_%,(2LE<S[)G$<J[S$\G@*FTF@D
+M$B$2B6#;-JE4JLQ[QW$(@J`JB+/9+.ETFE0JA5**AH8&+,O",`RDE&BM:_="
+M-<0"K#=^=^=@=N":Z[[IN3]^>D_GRJ]^\O)PAZXGF<SB>:K,^U*K#6!;DB`(
+MRD'W;@2Q:9K%5D('0!APW@R`*'I(`G+HT..30X=V?G+RPU_[^*[?#W[QGSZR
+M*KS^DOE&-N\Q,I$CFW/+G:L&)G,^H7`$S_.(1")HK=]Q$,=B,?+Y/$JI/Y;8
+M,_,'S((8U2.0PZ_O>#TU?'S;OK'ZI@=V]G>U-D98LK!9SF^+DZ@+$0N;U$<,
+M"%Q<Q^/HT<,L6;*$=#I=YK!2"L=QR&0R#`X.TM_?S]&C1SEQX@0#`P.,C(PP
+M.3F)Z[KEIBX6B]'9V<G>O7NS9\^>_?*I4Z>.`NJM`.@B4E$Y[-19^\R^WSX[
+M/OS&PWM.:^?!70/G/?[R20.);JR/&O'Z"(EXE//F=[!KUPLDDTF6+EV*E!+?
+M]PMUPS0Q37/&+K1T;!@&[>WMS)T[E]V[=]LC(R._VK%CQT^`;(DF;R62`M]"
+M-895&LV]&SH;%ZR\9$Y+UWM"L;HN7UO-GI,/.?E4J,T[I-KJ`WG9ZE5T=755
+MI<A<+H?KNN4YK7498"P6(Q0*<?SX<;5__WXWF4S^]+'''OL6,$:Q&K^=OUG-
+M"J5+6[-B:S)%MU+L"*`.J._IZ5FY:-&B6^+Q^(*%"Q?2T]-C-3<WE]L)S_-0
+M2I'/YTDFDXR.CG+RY,G<P,"`:=OVTZ=.G?KG??OVO08DJ6@EW@Z`RFM*EJ]4
+MW*Q0O/079NG^5A%(K+FY>6Y75]=ES<W-J\+A<#<P&P@9AB&"0M_M`(..XQQ*
+M)I-/'3ER9,?(R,@@D*9(FW.5>:=2J?2YUB\]HU2]#*;H:)T#%HI_CP%>$8@-
+LY(K[->7=`/!.I`2@5)@T!0#!C%><(_\%G#!,Q3NE`6@`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-web.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-web.png.uu
@@ -0,0 +1,98 @@
+begin 644 desktop/48x48/ooo-web.png
+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
+G$?1TVK]4Q5RRP%0";QOP_[GVGXZY(N+.ZH3H`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-writer.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-writer.png.uu
@@ -0,0 +1,78 @@
+begin 644 desktop/48x48/ooo-writer.png
+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
+/L+23`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-template.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-template.png.uu
@@ -0,0 +1,85 @@
+begin 644 desktop/48x48/ooo-template.png
+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
+5$_QI]P$WDQ6M`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-math.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-math.png.uu
@@ -0,0 +1,90 @@
+begin 644 desktop/48x48/ooo-math.png
+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
+7RG\!F\5.T6Y-_)``````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-draw.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-draw.png.uu
@@ -0,0 +1,101 @@
+begin 644 desktop/48x48/ooo-draw.png
+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
+6_F\)-!&?%%&3\`````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/ooo-impress.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/ooo-impress.png.uu
@@ -0,0 +1,90 @@
+begin 644 desktop/48x48/ooo-impress.png
+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
+@8EI/*%\C2_I_0O\-YJH@2%^Y&%(`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/48x48/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/48x48/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/48x48
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard ooo-*.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/48x48/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/48x48/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/calc.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/calc.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=oocalc@OOO_BINSUFFIX@
+Exec=oocalc@OOO_BINSUFFIX@ %U
+Icon=ooo-calc@OOO_BINSUFFIX@
+Type=Application
+InitialPreference=6
+Categories=Office;Spreadsheet;
+StartupNotify=false
+MimeType=application/msexcel;application/vnd.lotus-1-2-3;application/vnd.ms-excel;application/vnd.oasis.opendocument.chart;application/vnd.oasis.opendocument.chart-template;application/vnd.oasis.opendocument.spreadsheet;application/vnd.oasis.opendocument.spreadsheet-template;application/vnd.stardivision.calc;application/vnd.stardivision.chart;application/vnd.sun.xml.calc;application/vnd.sun.xml.calc.template;application/x-dbase;application/x-dbf;application/x-quattropro;text/csv;text/spreadsheet;text/x-csv@ADD_OPENXML_SPREADSHEET_MIME@;
+_Name=OpenOffice.org Spreadsheet
+_GenericName=Spreadsheet
+_Comment=Perform calculation, analyze information and manage lists in spreadsheets.
--- openoffice.org-2.4.1.orig/ooo-build/desktop/impress.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/impress.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=ooimpress@OOO_BINSUFFIX@
+Exec=ooimpress@OOO_BINSUFFIX@ %U
+Icon=ooo-impress@OOO_BINSUFFIX@
+Type=Application
+Categories=Office;Presentation;
+StartupNotify=false
+MimeType=application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.oasis.opendocument.presentation;application/vnd.oasis.opendocument.presentation-template;application/vnd.stardivision.impress;application/vnd.sun.xml.impress;application/vnd.sun.xml.impress.template@ADD_OPENXML_PRESENTATION_MIME@;
+InitialPreference=5
+_Name=OpenOffice.org Presentation
+_GenericName=Presentation
+_Comment=Create and edit presentations for slideshows, meeting and Web pages.
--- openoffice.org-2.4.1.orig/ooo-build/desktop/openoffice.keys.in
+++ openoffice.org-2.4.1/ooo-build/desktop/openoffice.keys.in
@@ -0,0 +1,120 @@
+application/vnd.oasis.opendocument.database
+	description=OpenDocument Database
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents
+	use_category_default=no
+	icon_filename=oasis-database
+
+application/vnd.oasis.opendocument.graphics
+	description=OpenDocument Drawing
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents
+	use_category_default=no
+	icon_filename=oasis-drawing
+
+application/vnd.oasis.opendocument.graphics-template
+	description=OpenDocument Drawing Template
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents
+	use_category_default=no
+	icon_filename=oasis-drawing-template
+
+application/vnd.oasis.opendocument.formula
+	description=OpenDocument Formula
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents
+	use_category_default=no
+	icon_filename=oasis-formula
+
+application/vnd.oasis.opendocument.text-master
+	description=OpenDocument Master Document
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Word Processor
+	use_category_default=yes
+	icon_filename=oasis-master-document
+
+application/vnd.oasis.opendocument.presentation
+	description=OpenDocument Presentation
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Presentation
+	use_category_default=yes
+	icon_filename=oasis-presentation
+
+application/vnd.oasis.opendocument.presentation-template
+	description=OpenDocument Presentation Template
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Presentation
+	use_category_default=yes
+	icon_filename=oasis-presentation-template
+
+application/vnd.oasis.opendocument.spreadsheet
+	description=OpenDocument Spreadsheet
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Spreadsheet
+	use_category_default=yes
+	icon_filename=oasis-spreadsheet
+
+application/vnd.oasis.opendocument.spreadsheet-template
+	description=OpenDocument Spreadsheet Template
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Spreadsheet
+	use_category_default=yes
+	icon_filename=oasis-spreadsheet-template
+
+application/vnd.oasis.opendocument.text
+	description=OpenDocument Text
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Word Processor
+	use_category_default=yes
+	icon_filename=oasis-text
+
+application/vnd.oasis.opendocument.text-template
+	description=OpenDocument Text Template
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Word Processor
+	use_category_default=yes
+	icon_filename=oasis-text-template
+
+application/vnd.oasis.opendocument.text-web
+	description=HTML Document Template
+	default_action_type=application
+	short_list_application_ids_for_novice_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_intermediate_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	short_list_application_ids_for_advanced_user_level=openoffice@OOO_BINSUFFIX@,staroffice,starsuite
+	category=Documents/Word Processor
+	use_category_default=yes
+	icon_filename=oasis-web-template
+
--- openoffice.org-2.4.1.orig/ooo-build/desktop/math.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/math.desktop.in.in
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+NoDisplay=true
+TryExec=oomath@OOO_BINSUFFIX@
+Exec=oomath@OOO_BINSUFFIX@ %U
+Icon=ooo-math@OOO_BINSUFFIX@
+Type=Application
+Categories=Office;Math;
+StartupNotify=false
+MimeType=application/vnd.oasis.opendocument.formula;application/vnd.oasis.opendocument.formula-template;application/vnd.stardivision.math;application/vnd.sun.xml.math;text/mathml;
+_Name=OpenOffice.org Formula
+_GenericName=Formula
+_Comment=Create and edit scientific formulas and equations.
+X-SuSE-Unimportant=true
--- openoffice.org-2.4.1.orig/ooo-build/desktop/openoffice.xml
+++ openoffice.org-2.4.1/ooo-build/desktop/openoffice.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+<!-- generated by mime-info-to-mime (Remove this line to prevent overwriting!) -->
+  <mime-type type="application/vnd.oasis.opendocument.text">
+    <sub-class-of type="application/xml"/>
+    <magic priority="50">
+      <match value="&lt;?xml" type="string" offset="0">
+        <match value="office:document" type="string" offset="4:100">
+    	  <match value="office:mimetype=&quot;application/vnd.oasis.opendocument.text&quot;" type="string" offset="100:4000"/>
+        </match>
+      </match>
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.text" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.odt" />
+    <glob pattern="*.fodt" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.text-template">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.text-template" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.ott" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.text-web">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.text-web" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.oth" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.text-master">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.text-master" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.odm" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.graphics">
+    <sub-class-of type="application/xml"/>
+    <magic priority="50">
+      <match value="&lt;?xml" type="string" offset="0">
+        <match value="office:document" type="string" offset="4:100">
+    	  <match value="office:mimetype=&quot;application/vnd.oasis.opendocument.graphics&quot;" type="string" offset="100:4000"/>
+        </match>
+      </match>
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.graphics" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.odg" />
+    <glob pattern="*.fodg" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.graphics-template">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.graphics-template" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.otg" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.presentation">
+    <magic priority="50">
+      <match value="&lt;?xml" type="string" offset="0">
+        <match value="office:document" type="string" offset="4:100">
+    	  <match value="office:mimetype=&quot;application/vnd.oasis.opendocument.presentation&quot;" type="string" offset="100:4000"/>
+        </match>
+      </match>
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.presentation" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <sub-class-of type="application/xml"/>
+    <glob pattern="*.odp" />
+    <glob pattern="*.fodp" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.presentation-template">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.presentation-template" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.otp" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.spreadsheet">
+    <sub-class-of type="application/xml"/>
+    <magic priority="50">
+      <match value="&lt;?xml" type="string" offset="0">
+        <match value="office:document" type="string" offset="4:100">
+    	  <match value="office:mimetype=&quot;application/vnd.oasis.opendocument.spreadsheet&quot;" type="string" offset="100:4000"/>
+        </match>
+      </match>
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.spreadsheet" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.ods" />
+    <glob pattern="*.fods" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.spreadsheet-template">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.spreadsheet-template" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.ots" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.formula">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.formula" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.odf" />
+  </mime-type>
+  <mime-type type="application/vnd.oasis.opendocument.database">
+    <magic priority="50">
+      <match value="PK\003\004" type="string" offset="0">
+        <match value="mimetype" type="string" offset="30">
+          <match value="application/vnd.oasis.opendocument.database" type="string" offset="38"/>
+        </match>
+      </match>
+    </magic>
+    <glob pattern="*.odb" />
+  </mime-type>
+  <mime-type type="application/vnd.ms-works">
+    <alias type="application/x-ms-works"/>
+    <alias type="application/ms-works"/>
+    <comment>Microsoft Works document</comment>
+    <glob pattern="*.wcm"/>
+    <glob pattern="*.wdb"/>
+    <glob pattern="*.wks"/>
+    <glob pattern="*.wps"/>
+  </mime-type>
+  <mime-type type="application/vnd.openofficeorg.extension">
+    <comment>OpenOffice.org extension</comment>
+    <glob pattern="*.oxt" />
+  </mime-type>
+</mime-info>
--- openoffice.org-2.4.1.orig/ooo-build/desktop/draw.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/draw.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=oodraw@OOO_BINSUFFIX@
+Exec=oodraw@OOO_BINSUFFIX@ %U
+Icon=ooo-draw@OOO_BINSUFFIX@
+Type=Application
+Categories=Graphics;VectorGraphics;
+StartupNotify=false
+InitialPreference=6
+MimeType=application/vnd.oasis.opendocument.graphics;application/vnd.oasis.opendocument.graphics-template;application/vnd.stardivision.draw;application/vnd.sun.xml.draw;application/vnd.sun.xml.draw.template;
+_Name=OpenOffice.org Drawing
+_GenericName=Drawing
+_Comment=Create and edit drawings, flow charts, and logos.
--- openoffice.org-2.4.1.orig/ooo-build/desktop/openoffice.mime
+++ openoffice.org-2.4.1/ooo-build/desktop/openoffice.mime
@@ -0,0 +1,35 @@
+application/vnd.oasis.opendocument.database
+	ext: odb
+
+application/vnd.oasis.opendocument.graphics
+	ext: odg
+
+application/vnd.oasis.opendocument.graphics-template
+	ext: otg
+
+application/vnd.oasis.opendocument.formula
+	ext: odf
+
+application/vnd.oasis.opendocument.text-master
+	ext: odm
+
+application/vnd.oasis.opendocument.presentation
+	ext: odp
+
+application/vnd.oasis.opendocument.presentation-template
+	ext: otp
+
+application/vnd.oasis.opendocument.spreadsheet
+	ext: ods
+
+application/vnd.oasis.opendocument.spreadsheet-template
+	ext: ots
+
+application/vnd.oasis.opendocument.text
+	ext: odt
+
+application/vnd.oasis.opendocument.text-template
+	ext: ott
+
+application/vnd.oasis.opendocument.text-web
+	ext: oth
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard ooo-*.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-gulls.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-gulls.png.uu
@@ -0,0 +1,34 @@
+begin 644 desktop/22x22/ooo-gulls.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L0``8Y)B4<D@``!.I)1$%4.(V-E6EL5%44QW_W
+M[>U,F2Y3ZA0%D4B*4*7$$(U+004T1J,8]ZJ@T8`$MZBH$4-B_&!B(FY!W&,Q
+M@)&X\$$%L1AW1!L*M`BR"&J`=@8J;V;>>J\?IM-6%.-);O+N?3F_>^XY_YPC
+M.($USW^GQ@[E%<E*JTU*-=$/XS2`;>I]FB:VNX5@A6]J:[<NN_G(O_F+XP^F
+MS7G3\1QK485E/'C?M2WF><TGVZFDC:YI`,12\J?K\U77;_YS:SK#@A\]XWC!
+MTQO?FNN=$-QR^\K&9(7X;.'LR>.N;CW=DE+A!S%!%!-+!8`F!):IHPF%8YNL
+MWK`C6/[1UMUN45W2^<:-?_P#W#+WW?I$9;SMC44SZQ,VXKLM._EYW^\D*FPN
+MF#*1TT8U\&//;K[N["9=DZ+U[$F<VC@2QS'IV9>5\Y_]K,_-ZY,ZW[RN=Q`\
+M;4F'(?L._?3J0S,FC<FD1*Z_B%00QS$_;.GFPXW?4_!\ZE)57'OIA8P_=31"
+M$Z!*+ZA+.>S<GY,+G^_8KJ4;IFQ<,CW2`1HGS%JP</;D&\\_:Y3A%7U,76`;
+M`L?4&7=*AK,GC"7P/>ZZ9B;C3LG@F#JVKF$9`E.'.):,&CE"A*%,=7;M/7I@
+M\YI->D75J',M/6P?5YUW#OS1A^Y4H72;8AA3"!7%0*+0.7:DE_?6O,>WFWZ@
+M_J318#IX@<0+)?V%D'XWX-SF1F/-QIU3J\9?^9+><MO+K8ONO/*J*L,S7GME
+M.4\\]B!;?MQ$*EE)TK%X??F+/'#O/+[X?!TW7'<]<VZYE71-"EL7"*D@CM"D
+M1%.2$4D;":)K3]\N,7WAZD]6+KE\%@KZ\SZ;OO^&IY8\RH[N;0#HAL%-;;=S
+M][T/4U-;!RCZW8!\,00$0H!2)<5DTI78AL8=3Z_[U(@49]96.;BN1UW"Y+*+
+M6IG9^B6+%S_&VK4?LG3I"TR??@FZK@/@^Q&)$1:,L(`AJ%(*TQ14UR:(X4PC
+MC.):7=<XU.^7M"H`);CGD2>9=_]B+-OFL!NA5,11-R",XD'=#S#+.S0-+FRH
+M)@CC6@-`"$@GC8';2](60D"5/>@619(:6T>((:A4H)0$%$JIP7\`AFGH.3^(
+M,KUNA!]$J#)XX$:EH.A'^*$<<!SR%@.1EL"0<`SJPPC+U'.&(>@ZF,UG,M4.
+MGA<,%*-<%(AC!0ECH%"E57YZ+$N1EE<R87$PFT>'+L/UHO;UF_>W7C-MO+/[
+M<`&I%%(RV!O*E2^#A]O0K@1N3E6R_NO=1=>+V@W?BS]8M6''<S?/:'+&IAW"
+M,/Y;="58^7M8`A3(8?DU39U*6V?UAIT%WXL_T`]UO1]FILPN*L5%4YM/-KKW
+M]]/GAN0*(;E"1#8?DLV'Y/(!63<DZP9DW8!<(>!H(>1((<+U8\8TIGC[XVW>
+M3[\<?GSSZVU?&0!60V;9JL]_OG-J4\/$<\X8J?7V'AM4R%#$P],R)#5-@]K:
+M!-W[LG)EQZY=5D-FV=_2U#+WW?ID(MZV=,&T](2Q:6W'KSF.'@N02@W"C[>:
+M*INF,=7T[,W*^U[J^&?;'(0/-/JVF4VGW3IKHJVDI%@,\/VHI`[`,#0LRZ"R
+MT@(A:%_7[;=_VK/GA(V^;,-'TTTSFO2+6T97G%27P+8,`/P@XF`V3T?G@>**
+M]3UQ,?@?HVFX#0U3NTU*>=PPU;:[!?\_A^E?HX]KS&5HXIP`````245.1*Y"
+"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-calc.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-calc.png.uu
@@ -0,0 +1,34 @@
+begin 644 desktop/22x22/ooo-calc.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L0``8Y)B4<D@``!1%)1$%4.(V%E7EL%%4<QS]O
+MWNS,[':WV]*#;EOP*!*Y*1"5:&VK>(=&,2(H*%004(G&J(B)AD0-:(SB"44\
+M`16U4<230]#@!93:`A5*@-J3HRV6;K<[.SLS_K&Z"K;QETSR9O+>YWW?=[[O
+M/4$_-6K!NG3=<B;[?=H,QW%'F):=":![9+NBB/WA2&RMZ5$V[EUQ^ZF^QHNS
+M/Y3,>LN(&MHBKZ8^],`MA9Y+1^7K0;^.5!0`;,?A=-AD1VVS^6)EM14QX\\9
+MT=@SV]^>'>T77%C^?J[?*[8LG#*VX*;B"S3'<3%C-K&XC>VX`"A"H'DDBG`Q
+M=`_KMQZ(57RV]W"XUYU4_>;TUO^`"V=_F)7BL_>]N>CJK!0=\7--/0<;6DCQ
+MZA2-&\'Y>0.I^NTP/U37D9D>I'C"2,[-S<8P//S6T.$L>&%+>[A'CJQ^:^K)
+M)+ADR3;5:3^^Y_6'KQIY3B@H.KMZ<5RP;9M=-75LV/X+D:A)1C#`+==>SM!S
+M!R,4`6YB!1E!@_K&3F?A2]OV*YD#QVU?4AJ7`+G#KKEWX92QTR\;DZ=&>TT\
+M4J"K`L,C*1@48L*P\XB94>Z^^6H*!H4P/!)=*FBJP"/!MAWRLE.%93G!ZMJC
+M?S3MKMPIO8&\B9JTUA2D]1A-K>U((X`K=7HMFXCETAMS<)%TGSK)QY4?\]/.
+M763E#`:/033F$+4<NB(67>$8$T?EJI7;ZR\*#"U[51;>N;)XT=RR&P-J5%V]
+MJH(G'GN(FJJ=!/T^_(;&&Q6O\.#]\_GNVTU,FWHKLV;>069Z$%T*A.."'4=Q
+M'!37(=6OXX"H/=)^2)0N7/_U^TMNN`87NGI,=O[R(T\O6<R!NGT`2%7EMAGE
+MW'/_(Z0/R`!<NL(Q>GHM0"`$N&XB,:%,'[JJ<-<SF[X11?>M;]WZ_,VA<#B*
+MXSB)K-HVCS_^&!LW;F#Y\I<I+9V$E)+/OZRDK:VYOSV5K`A^2UPR_[WH#Z].
+MT^L;3R6R*@!7@'")F3$T70?`=>&+RI7</6?>_X)7K:Y`!1`",OWJ7TM*1%L(
+M`0$]V3D>=Y+MI4N7]0LM*2D!0/6HLM.,Q4,GPW',6!SW;_!?,[HN])IQ3.L?
+M\((%\_L%>[U>]NZO054%M<<Z>D*A-(-P>R=M'ZRE?>L6S*;?B30UX4E+P\@?
+M1&!T(5I0`V#%BI5)T.+%CP+0VM8"0%I:6D)Q.!I?LWEW8W$)S4;-O+F$<G,8
+M,:Z0E(O'HQM>XK9--!+AQ*%##-U4Q;ZN,(N6+471M#.4YH;RSG@7HV>^FS+$
+M/=$\[\?7TBXJ*\,C9>)/_6V^HB!4%:1$:!J'?ZUF<U,S;27%?2K.#>6Q:G5%
+MPLIE^:.VEL^X_@I?>P>N926!_WZ$HH"4*#DY_/SY1L9\M@$A99\^)U.1WU9W
+M7,N>A=/8!)%($K9G7`??#YS#'\IP(''@%.3XX>@Q-CWY%+:N]ZD82(!MVVX[
+MV-S`B-)2.'($M[D9]_1I=HW_'9]X%KOC'3("/@9E^FBMK^7D-Y_R\)[=9R@^
+MVV,),`6:N@[4E[>D>SUD#D`?-ASSRK$$)Y00RAG/!4HOD4Z'C[[^A,:W7V!(
+MQ@"^:FEAQXX=%!5=EE3<'>XF$$BE:D_5/P?].ICD2.4]9W!NEIF?C76A0<\0
+M07>W1:0AQL$ZR<2&HQ25369X'ZDXV^,SKJ8W(*!!N8#K'*$,$7!.3/?9IU.S
+IQ;&L`IEZY1A%YJ?_YYX\NS1-V_TG-,H2GW1'*:,`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-printeradmin.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-printeradmin.png.uu
@@ -0,0 +1,33 @@
+begin 644 desktop/22x22/ooo-printeradmin.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L>$0@*^DWN?@``!--)1$%4.(V-E6EL5%48AI]S
+ME[G3969H9P#+KB`!V84@HK8464-$1%'9%%`(:&K%@"A)31.CD6`B[B(*!I1%
+M(1'Z1VO%U@4I5BH56L!4"EBVEH'"M#-W[MQS_-&%`(7P)E]R<G*_Y]QSOO<[
+M1W`##5KR59KER(=2DSUSI%0#;,<-`5BF7J]IXE"D*?ZE;6H%?W\\^T)[^>+:
+MB3'S-GAC7L^*)(^Q[,49P\S[!G6S`JD6NJ8!X$K)I8C-KQ7_V>_N*'>:[,3;
+MWEA\5?$7\V,W!`];L*5+:I(HRID^M/<C67=ZI%38<9=XPL65"@!-"#RFCB84
+M7LMDVX^'XVMW_5T=B:IQY>MGGKH./&S^UQU3DMV#ZU=,Z)AB(?8>.,J1FEI2
+MDBP>N'L`=W3MS)]5U?Q67DDH+4#6B('TZM()K]>DJN:\7/).47VD41]8ON'Q
+MNC;PF/R?#%E_=O^ZY>,']LP(B'!#%*G`=5W^.%#)SN)2FF(VP8"/&9,RZ=NK
+M!T(3H)IW$`QX.7HB+'/>^^F0%NI\=W%^=D('Z-)_XO,YTX?.O'](5R,6M3%U
+M@64(O*9.[^X9C.A_.W$[QJ)')]"[>P9>4\?2-3R&P-3!=25=._F%X\A`><6Q
+MBR?+=NS3DWQ=[_7HSJ;>'1J])T_5HWM]*-TBZK@T.8IH7*+0N7RACNT[MO/[
+MOC_H>%L/,+W$XI*8(VEH<FB(Q+EW4!=C1_'1D;Z^4S_4ASW]2=:*A5.G^8R8
+M\=FG:WEMY3(._+F/0&HRJ5X/GZ_]@)=R%U.RNY`G'W^">7.?(I06P-(%0BIP
+M$VA2HBF)/]5"@JCXM_X?D9VS[;LM^5,FHJ"AT69?Z1[>R'^5PY4'`=`-@UES
+M%O!<[LNDI0<!14,D3F/4`01"@%+-CLD()6,9&L^L*OS>2"@&I_N\1"(Q@BDF
+MD\=F,2'K%_+R5E)0L),U:]XG.WL<W^[:2CA<?Z-^`B`8[,CLV?-P8;#A)-QT
+M7=<XVV`W>U4`2O#"*Z^S>&D>'LOB7"1!.%S/BN4K;PI>M?I-+-,@[KCI!H`0
+M$$HU6K;4;&TA!/BLZY)+2DJN=)>XTE^9F9E7?6>8AAZVXXF,ND@".YY`M8);
+M5E0*HG:B+:%/GS[M@EME.PD\IAXV#$'%F?.-&1D=O,1B\99BM!8%7%=!BL$O
+M+8F.X[1[#%)*`,Z<;T2'"B,22VSZH>Q$UJ-C^GJKSS4AE4)*VNZ&T[4G6+<F
+MC\F3'\2V;=+3T]L%V[8-P%.SIJM(A]%%8O#<C2FA-.MXP5O3@A<O1'`<EV8;
+M-4=N[B)R<YYE;]E^+,M"2MD6UTHIQ?"A0UBV/&^_`!B]9'/.G/']5\^=-,`J
+MJSI+PE4(T7R&RQ<]3&GI7J)-D3:_WDA"")*24[GGGE'*`/!TSOAXZ^XC"T?V
+MZSQ@U%V=M+JZRVT.\?E\'#E2Q<\ENV\*;55FYEA\/I_0`(KSLQ.7&[4'EWY4
+M4E]9$Y:A3@'.QR35=5'\?C^U_YV\)2A`;>U)_'X_>NO$F;^^:0H.?&SS[O+C
+M4T#YQPWO:70+)5-8^!W!8`#3-#$,H]W0]2OC2Y<:.'7ZW,V?IEGC^^GAJJ*D
+MXS75M_S'`)JF_7R]PUMTY3&UYD2/%8]JK-GC4R@`U5P`F4`I"5Q548_'V%A>
+8?F#Q_\8-$B?RDO=N`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-base.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-base.png.uu
@@ -0,0 +1,37 @@
+begin 644 desktop/22x22/ooo-base.png
+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
+#0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-web.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-web.png.uu
@@ -0,0 +1,37 @@
+begin 644 desktop/22x22/ooo-web.png
+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
+LY?]535_6?\I461\TU/\J4[='NMXCR_3?/C^0^-FI'5<`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-writer.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-writer.png.uu
@@ -0,0 +1,30 @@
+begin 644 desktop/22x22/ooo-writer.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L0`#,#0A@'E@``!$5)1$%4.(V=E7U,564<Q[_/
+M.>>><X"+%_(*70A360R[L+S$G%:*+$57RY5,TD122I.*:<UTN=GHC]9<K;1\
+MPTQJI$B#IM'F2Z*XLA*Q.U$0<913P_#R$G'N/>_/TQ]P(5_NDK[;LST[.\_G
+M^?[.[WN>AR"",DOVQDLF?<89+192RKRZ:;L!0'+PW1Q'6I20\97NX.K.[UC2
+M=[?UY/8'LY95R)HLKH\2A;5K%OH<CV<^(+F<$GB.`P#8E.)O1<>/S=?U+;5^
+M,Z1;'\J:L:GAB^5:1+"ON"K)&46.E2Z8DOI<SD,BI0RZ8<.P;-B4`0`X0B`Z
+M>'"$098<J*YO,\J_/=^AJ&RV?\_BSCO`ON5?CXN)MB_L69\W+D8"^>5<.RY=
+M^0,Q41)F9'DQ*3D19R]VX)2_%>YX%W*R,S`A*0&R[,#%*SVTY.-CW4J0S_!7
+M%`2&P;/*3@BTN^O7S]Z:D_&@QT5Z^U50!MBVC3/G6G&PX31"FHZQKE@LG#<3
+M:1/&@W`$8(,5C'7):+_:2TL_.='"N1.S&LIR+1X`DB;/?:UTP93%3SR2+&BJ
+M#@=/(`D$LH-':HH'V9,GPM`UK,S/0VJ*![*#A\1S$`4"!P_8-D5RPAABFM3E
+M;_[]KVM-M8U\5&SR=)$W*U/C@O*USF[P<BP8+T$U;81,!M6@8.`QT!=`36T-
+M?FX\@W'WCP<<,C2#0C,I^D,F^A4#TS.3A-J&]JFQ:?.W\;X7=^:L7S'_V5A!
+M$W;O*L<[&];BW-E&N)S1<,HB/B_?BC=7K\+)XT>QJ.!Y+%M:!'>\"Q)/0"@#
+M;`L<I>`8Q1BG!`J0YM^Z+Y/<TNK#565/SP4#^H,Z&D__A/?*WD9;ZP4``"\(
+M>*&P&*^N7H?X^\8"8.A7#`15$P`!(0!C@XGQN*,A"1Q>VG3T")GQ>G5G_4?Y
+M'D710"D=S*IM8^/&#:BK.XC-FS]%;NYL'#IR`#=N7(_T/]VB$)PFF;9JGW9J
+MVR*I_6K?8%8)`$8`PF#H!D1)`@!\5[,3*U]^Y9[`NW:70P``0@"W4Q@J:3#:
+MA!`@5KHGT-TD.`2^5S<L3T"QH!L66!@\M"-C@*I;MRQJ.MMT5UCVH]DC8(&@
+M^<^>H,<3)T/3C*%FA)L"V#8#8@3\$`$0T;&B697?-UW-R9^5)G?<#($R!DHQ
+M?#:$.S]JQ[IF']A?W[9ER9QT>:);AFG:0["1`1`TCM9Q<V51\+&2?>]^>;CU
+M@Z7SO%+3Q2Y8-@,A0PT<<CUJQP`@)GIV[#]^:<74]$3OM(<3N$!@8#@A8<=G
+M1NF8`X"&LEQK(,@]^<;VD]VM5WJI.\&%'HVB(Z"BO2N(RS>#=S@.CXB?(CSQ
+M5Q0$?,55OC5;3QXKS$N?5#37*S%*H:H&=-WZ?XZ'X7L6=_)!-:OB4,O[3ZW[
+M1ME;WZ;VJQ;BXF/^$W2[[KCSPAJY3*5"2JEW9DJ7QTF4B.__6Z(H-OT#6&+>
+16O_P7[4`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-math.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-math.png.uu
@@ -0,0 +1,36 @@
+begin 644 desktop/22x22/ooo-math.png
+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
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-draw.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-draw.png.uu
@@ -0,0 +1,39 @@
+begin 644 desktop/22x22/ooo-draw.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L0`!\UM)/YH0``!<Y)1$%4.(UUE7MP5=45A[_S
+MN/><Y-Z;F\>]"4F$DF3`IDD,T)2J54.0ARV6*2G:VD8K.'2P-I4ZMK1.L4RM
+MXSC3F6*U%514V@J%&@W0%K&"840>,23-)0DQ@@93,^3!34+.?9YS]NX?X=%J
+M63/[C[WV_+Y9:_::]5.X2E3=_TJ.88NO^S.]#4+(BI3MA@`,CS:JJDJW%4__
+M.>51]YY\]KMC_T^O?#JQX-Z7S*3I79_AU1]>=\=<SU>JKC&"?@--50%PA>""
+ME>)PY-^IIYHZ['C*^8V93#_9\O*JY%7!<U?O*/)G*&\UUL\I6U$[RRN$))5V
+M23LNKI``J(J"UZ.A*A+3\+#S0&]ZRYZ39ZR$7-3QXEV#GP'/7;4K[,MTNUY<
+MOR3L,U".=?;Q?O\G^#(,;IY706EQ`2=.G>'=CAY".4%J:RJ9692/:7HXU7]>
+MW/_;MT:MF%;9\=*=(Y?!"S:^K8O1H?;G?[*X\G.%024ZD4!(<%V7]SI[V-UR
+MG'@R15XPP!VWW<+LF3-05`7D5`=Y09.^CZ.B\7=O=ZNA@GDM&^L<#:"H?.D#
+MC?5S[KJINEA/)E)X-`5#5S`]&F73"ZDI+R&=2O+];RZA;'HAID?#T%2\NH)'
+M`]<5%.=G*;8M@AV1C\8'VII:M8Q`\0U>S?Y367;,'!@<13,#2,T@8;O$;4DB
+M+9!H3(Z-\&K3JQQM?8_PM!G@,4FF!4E;,!&WF;#2W%!5I#>U],T/S%[^>VWN
+M]S;7KE^S_!L!/:F_\-P6'GWD83I/M!+T9^(WO6S=\@P//;B60P??Y-MW?HM[
+M[[Z'4$X00U-0A`37014"50JR_`8"E,B'HQ\H=8T[W]BQ<=E2)$S$4K0>/\+C
+M&W].;T\7`)JN\YV&U?S@P9^2DYL'2":L-+&$#2@H"D@Y-3&%H4P,7>6^)]_<
+MKSN2ZW(#)I:5),_GX:L+:UE2^PX;-CS"WKV[V;3I:>KJ%J%I&@"IE(,ORPM9
+M7N`*5$J)QZ.0G>O#A>MTVW%S-4UE:"+%V-!9SD9:N/;&>G[TL\=8^^,->`V#
+M8<M!2H=Q*XWMN)?G_B+ST@U5A5L*LDG;;JX.H"@0\NMT-+W".Z\_RY'MCU%S
+MV]W<O**10"``@.,(<@P-1;D"%1*D%(!$2GGY#4#WZ%HTE78*1RR'LEO7<O+P
+M'DJ-83X\M(W6?=LHF[^<RF7KT`/3+@JOJ)6+E4Z!P6?JA&T'KT>+ZKI"Y-SY
+M6&%AMDF.&6+5X[O9_-!";BQ,D&W"_O;=G&G=0]5-]=S:\"B^8-[EUETQ5>FE
+MX_=Y.7<^A@81+5R]0F;[C:^5EX3TOD\N,.D:%'RACI;]KZ$*AU4U.FG;Y5_=
+MISCZ]^<93JI<4`+$9"9C,9NQN,-XW&8L;E,0\O.WHV<2QWJ&?JVFDF[S7P[T
+MQDR/2DG(9$:VE^J*2E8_\08?Q`(\UVHS*Z2QYDL:^<73">07T==YD"#CE(8S
+M*`V;E(1,KBWRDVEH[#S0%T\EW69M*/*Z73BO/B$E"^=77:/W?#S!J&634'Q,
+M_^)R^MK^2>>`A4<3.'/N8]'BVZFLJ.+(L4.,3MI8CD',%LPLSN&/^[J2[:>'
+M?]&VM>&P!E!V^P_;3W:?75DS*QR>-SNL9*B27)].05X.-8L;&!OZB)ZHCC&M
+MG)@5I[JZFNN_?#TO;-[$Q'`_.U[^`R/C2?E:>ZQ7SY^VIK]EF_B?M>GWN5V;
+M'E@0*B\)J;UGHXQ/IA%2HB@*IT_\@[&)47)S0Q2$"^CN[J&]O9V5*U?2W-Q,
+M5U<7I_O/_2IIC?[RJHN^8<GG2^]96F%((4@DTJ12#JX[]?.#@_V<[&ICUZZ_
+M$CT_AFF:6)9%-!IE8&``8!WPE/;?X',=39.E%<NVMO5'Y:Z#[]>@X!:%`IY0
+MKH^<[$RRLC((A</D%\_FW=:($SEQ5+4LB_'Q<49&1A!"`"P%!C_C>9?BBID:
+M#4*(3YFIVGW!FMP>V;ZNR$E.K@!F`%%@$#@.[/L/%!N>KE.5Y2D`````245.
+%1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/ooo-impress.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/ooo-impress.png.uu
@@ -0,0 +1,35 @@
+begin 644 desktop/22x22/ooo-impress.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!F)+1T0`_P#_
+M`/^@O:>3````!W1)344'U@L0$RDX75X)0```!19)1$%4.(V-E6ML5$48AI\Y
+M<\[NZ7;;;>E"75!NQ4HMI%M%!5$!(V!B-`IRD2(J1B-JE1@5U&BJQA_>+]$H
+MR$6"!C%@0/TAR#7>L(I-=TLI-%@$)=J62V&[>RY[YOBCW:H@Q#>93&8F\WXS
+M\STS(SB+1B_XJ#CHJAO#H<!<I?Q*V_6B`$%#=FJ:V)-*.Q_:AO9Y\MV:X_\U
+M7YS>,?'.E:9E!A;E!?1'%\ZH-L://C\8"0>1F@:`IQ0G4S;?)'ZSWUS?X*;M
+M["NFY;RXXX.[K+,:5\]?,S"<)[;43HN7W3+APH!2/K;CX60]/.4#H`E!P)!H
+MPL<,&JS=VN(L^2QY()7QKVM8<=N1,XRK[_JD?W[(:UJQ:$K__"!B5^-^]AW\
+MG?R\(%=?4LGP0:7LWGN`;QN:B19'F#!F%$,'#L`T#?8>/*H6O+ZE,]4M1S6L
+MG-G19SRQ;KNN.O_\^?W')H\:$HN(8UT9E`^>Y_%C8S,;=_Q`VK(IB10PX_IK
+M*!\Z&*$)\'MV4!(QV7_HF*I]:_L>+5IZR8ZZ25D),+!BZ@.UT^*W754U2+<R
+M-H84!'6!:4C*+H@QIF(8CFUQ[_0IE%T0PS0D0:D1T`6&!,]3#!I0*%Q711H2
+M;2<._[2^7N85#!H7D.[JLJ)N\_"13J19@"^#9%R/M.N3<10^DE/'.UBW?AW?
+MU_](__,&@V%B.0K+572E7;I2#N-&#]37[]A_>4'Y3>_(ZCO>F[#HGIMN+M`M
+M?=G2)3SSY*,T[JXG$@X1-@,L7_(VCSQ\'SNW;6;VS%G<>?L\HL41@E(@E`]>
+M%DTI-%]1&`ZB0"1^Z6P5DVK7?KFF[H:I^-#5;5/_PW>\4/<$+<U-`$A=9\[<
+M^=S_\.,4]RL!?+I2#MT9%Q`(`;[?0TPL&B*H:]S]XN9-XNH'UQ[9^MKT6"IE
+MH93J8=7S>/KI)VE,[&;\^/&4E$3[D%2]V.64,P400F`$)%^WNB=U-^OUDU+C
+MSRZ[AU4!^(*'%C_/\T\M()07PK+^Q?XY95D>H9/["O6>2!`-Z[W115_T\O(*
+M6EKV_&_3G-Q`?Z4;NCQF.]E81RJ+[63Q<\;`M)I:-FU8RA6778FF:>3GYV.:
+M)H9A$`@$T'4=(0122J24""%8N6H9FPX-;==U0>*/H]VQ6)&)93F]R<@E!31-
+M$HO%R+=M6I][#MNU\'UPC"`5=76$A@PAF4PBA*"JJ@I=U]$%>_24E5W]U4^'
+M)DR?6&X>:$^C?!^E^/MMD)*BHB*:9L]BS-BQ&,HG8X;(&@:)A0L9MW$C\7@<
+M(01"")3OX[KN6MVVO`T?;VUYLV;R2'-8U,1U/7HPZBF-`GS+HM^(X1A9CQ.I
+M@ZP;784JNI585P:53K.WK:UOQ4KYC"C*?*$E5L_KMESOV55?-MN%Q06T';5I
+M;<_0VIZFM3V-\L$(AVD_T$;'165P1PW77C&*P>E6O%W;"48BQ.-QXO$XFJ8A
+M(#N\\'A:!PB4QM[]>-N^>RX?65HY]N(!6D?'J3Y"FG2)4HI+WUM"8O%B#BY+
+M<D+W*2^I9-+R%0@A2"02""%ZCP0OEWR@Y]D,YWM-;SPP,5HQ+*JU_'J,$Z<<
+MDKL^9?:,V106%O9A>'KY9_]K;[QL9QV_5,\9-ZR<V5$]?TWUPK=W;ID[9>3P
+M>5,K@[Y2--<+-$TCF4R>89QKY^IX/-['\CF_ICF31TKK\,Z\.;-JSKKBT_7J
+MZR_96<<O/7.D5[G/]-;R0ZO.><W^2TH6_06<^B><":*MY@````!)14Y$KD)@
+!@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/22x22/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/22x22/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/22x22
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard ooo-*.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/22x22/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/22x22/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/template.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/template.desktop.in.in
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=oofromtemplate@OOO_BINSUFFIX@
+Exec=oofromtemplate@OOO_BINSUFFIX@
+Icon=ooo-gulls@OOO_BINSUFFIX@
+Type=Application
+Categories=X-SuSE-Core-Office;Office;
+StartupNotify=false
+_Name=OpenOffice.org
+_GenericName=Office Suite
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard ooo-*.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-gulls.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-gulls.png.uu
@@ -0,0 +1,34 @@
+begin 644 desktop/24x24/ooo-gulls.png
+MB5!.1PT*&@H````-24A$4@```!@````8"`8```#@=SWX````!F)+1T0`_P#_
+M`/^@O:>3```%$4E$051(Q[65:VQ551;'?_N\VWO+[0OJ+<I#8E.$.A8)HQG'
+M@@CH!XEB?!=%$R<^@J^H.&:8D!@_3#+)H(YA\`'&8D0#OOA@%+`8=481:2C0
+M\A!%4`*T]T+EW'O/<V\_W$>K(Q(_N)*=G'UVSOJMO=;_K`6_LXE?.VR[Y]4Z
+M.Y17)ZNM3BG5%#^,&P%L4Q_4-+';S0=K?%/;L'/%K2=^$V#FHM6.YUA+JBSC
+MD0>O;S?_U':VG4K:Z)H&0"PE/[@^G_1^YS^]OB?,^]$_'2_XQY:7[_#."&B_
+M\[7F9)78M'C!A9.N[3C/DE+A!S%!%!-+!8`F!):IHPF%8YN\OGE/L/+=G0?<
+M@KJB9]7-1TX+:+_CC=&)ZGC7JB5S1R=LQ&<[]K'WX/<DJFS^/&T*YXYMXLO^
+M`WS:TT=C78J.Z5.9T#P&QS'I/YB1]_QKTZ";TZ?VK+YAX/\`,Y=U&W+PV/87
+M'ITS=7PZ);)#!:2".([Y8D<?[VSYG+SGTY"JX?HK+Z-EPCB$)D`5;]20<MAW
+M*"L7/].]6VMLFK9EV:P(0"\#FB?/NV_Q@@MOOO0/8PVOX&/J`ML0.*;.I'/2
+M3)\\D<#W^,MU<YET3AK'U+%U#<L0F#K$L63LF%$B#&6JI_>;DX>WK=]:`535
+MC+W$TL.N2;4YY_"1072G!J7;%,*8?*@H!!*%SJD3`ZQ;OX[_;?V"T6>-`]/!
+M"R1>*!G*APRY`9>T-1OKM^R;4=,R_[ECO6^%.D#[[?_I6'+7_&MJ#,]X\?F5
+M_/V)1]CQY592R6J2CL5+*__-PP_<S4<??L!--]S(HH6WT5B7PM8%0BJ((S0I
+MT91D5-)&@NC]>G#_D>UO[C0`DHZQ</8?6VQ4"],OG<?6S__+4\O^RJ)%G0#H
+MAL$MG7=R[P./45??P&`N8LC-DRN$@$`(4*JH,%_DF'/1^*JUF_8N!%XU`"+%
+M!?4U#J[KT9`PN>KR#N9V?,S2I4^P8<,[+%_^++-F78&N%TOF^Q&)41:,LH!A
+MYTHI3%-06Y\@A@L`#(`PBNMU7>/8D%_4N@"4X/['G^3NAY9BV3;'W0BE(DZZ
+M`6$45Z1=\EW>H6EP65,M01C75P``0D!CTBA%(TKO!-38E<^C2%)GZP@Q[%PJ
+M4$H""J54Y:QL!H!IZ%D_B-(#;H0?1*@RH$16"@I^A!_*DH-A+Z(4>1$`"<=@
+M=!AAF7JV`C`$O4<SN72ZUL'S@E+1RL6#.%:0,$H%+:YR2F)9C+R\D@F+HYD<
+M.O16`*X7=6W<=JCCNIDMSH'C>:122$FE]Y254@;\<J\I`MI2U6S\]$#!]:*N
+M"L#WXK?7;M[S]*US6IV)C0YA&/\DVJ+3\O.(Q"B0(_)OFCK5ML[KF_?E?2]^
+MN_(G'^M]*TQ/6U!0BLMGM)UM]!T:8M`-R>9#LOF(3"XDDPO)Y@(R;DC&#<BX
+M`=E\P,E\R(E\A.O'C&].\<I[N[SM7QW_V[:7.C_YB8JLIO2*M1_NO6M&:].4
+MB\\?HPT,G*HH:O@&(],U+%%-@_KZ!'T',_*U[OW[K:;TBM.VZV0BWK7\OIF-
+MDR<V:GN^S7+R5(!4J@+YN=75V+2.KZ7_FXQ\\+GNT[?K"J0T<#KGMIY[V[PI
+MMI*20B'`]Z.BF@##T+`L@^IJ"X2@ZX,^O^O]_J_/.'#*-G)DWC*G59_=/J[J
+MK(8$ME7,J!]$',WDZ.XY7%BSL3\N!+]A9(ZTX:%O=THI?S;TM=UNWC_CT/_=
+6[4>II'%:I,>3%P````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-calc.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-calc.png.uu
@@ -0,0 +1,35 @@
+begin 644 desktop/24x24/ooo-calc.png
+MB5!.1PT*&@H````-24A$4@```!@````8"`8```#@=SWX````!F)+1T0`_P#_
+M`/^@O:>3```%2DE$051(Q[66:6Q591J`G^_LM[VWMSO<+J!6&MF$TJ(A4ML"
+MHOX`9YB`&V`E+N"$<8F(F&"8J,$Q)NXBBBN@S&!''28N4`45-Z"M+;*5`(4N
+M%^QMH?3V]IY[MOE1N&H8K&8R;W*2-^<]W_N<)^<]WSGP?P[Q:\6QB]9GZ)8[
+MPY^BS75=;[1I.=D`NBI')$GLB<82ZTQ5VK1[U<TG?Q>@LOIU(VYH2WV:<O\]
+MLTO4*\86Z$&_CBQ)`#BNR^FHR?:F-O.9F@8K9MI/&O'$W[:]<6M\4$#)@G?R
+M_#Y1NWC6^*(_5HS07-?#3#@D;`?']0"0A$!3923A8>@J?_]T?V+UOW8?BO9[
+MTQI>N['CO("26_^1DYKB_/#:TNDYJ3KBV\9F#K2TD^K3*9\PFHORAU"W[Q!?
+M->PE.R-(1=D8+LC+Q3!4]K5TN8N>JHU$^^0Q#:_/Z3P'4+EBJ^)&3M2_LN2J
+M,<-#0='=TX_K@>,X[&S<RP?;OB,6-\D*!IA]S9447S`,(0GP!HRR@@;-Q[K=
+MQ<]NW2-E#YFP;465#2"?!>2-O/K/BV>-OW'RN'PEWF^BR@)=$1BJ3%%AB+*1
+M%Y(PX]SQI^D4%88P5!E=EM`4@2J#X[CDYZ8)RW*##4U'3K7NJMF1!/@"^9,T
+MV5I;E-YGM'9$D(T`GJS3;SG$+(_^A(N'3._)3MZM>9=O=NPD9^@P4`WB"9>X
+MY=(3L^B))I@T-D^IV=9\6:!XY@LGFMZS9("26UZJ6'K[S#\$E+BRYN75//S0
+M_336[2#H3\%O:+RZ^GGNNWLAGW^VF1OF7$_UO/ED9P3198%P/7!L)-=%\ES2
+M_#HNB*;#D8,=]?_<K0#X#67>U,N+=;QBRB9?S8[OON:Q%<NHKIX+@*PHW#1W
+M`7?=_0`9F5E$^FQZHC'Z^BU`(`1XWL"$F:*/JTJ'^S;4'I@'K%<`;(]+,P,&
+MT6B<K%25:Z=4,+WB2Y8O?XA-FS[@Z:>?HZIJ&K(L\^\/:PB'VP9]@\L+_5.V
+M`@J`93N9LBQQHL<<F'4!>(*_//@("^]=CJ;K_!BU\3R;<+B-.VZ[<U#`RVM6
+MJYP%``@!V7[EC*HX<TY`0$\NLFTWF:]<^?AYFU=65B9S!4!5Y&XS88<ZHS9F
+MPL8["SA#]CSH-VU,ZR?`HD4+SPOP^7SLWM/X$T`1-!WOZ@N%T@VBD6["&]81
+M^;06L_4HL=96U/1TC()"`I>6H`4U`%:M>BG9<-FR!P'H"+<#D)Z>_DN#:-Q>
+MNV77L8I*VHS&.V\GE#>4T1-*2+V\%-WP83L.\5B,'P\>I'AS'3_T1%GZ^$HD
+M3?O%G>>%\L^Q40#,N//^QQNW/#_\ZQ>-:3?,095E\#RP;+"CJ)*$INNDC1O'
+MB(D3.?1]`V_-N(YP9<5_-?@Y2`%H6CN_[Z:"L?4E<V=/42-=>)8U\-0E*7EX
+MDH20)#Q9IJBTC,YPF%L>6(*0Y<$-``K">T]HN=6XQUHA%DLVKI_0Q1=#;N.4
+M-`H8V-B*AOKAR'$V/_(HCJX/;@#@.$[X0%L+HZNJX/!AO+8VO-.GV5EZE!3Q
+M!$[7FV0%4BC,3J&CN8G.3]YG2?VN00V2U5G0VK._>4%[AD\E.Q-]Y"C,J>,)
+MEE42&EK*"*F?6+?+QH_?X]@;3W%Q5B8?M;>S??MVRLLG)PUZH[T$`FG4U==1
+MN^6SOR8-YL.^]2=/S>Q9L^[M^F%Y.69!+M8E!GU-@MY>BUA+@@-[92:U'*%\
+MY@Q&_<8I.N>3^2H$-%@@X%I72!<+&)[04YS3:;GB>$Z1G#9UG"079/SJSP*`
+BIFF[[KMGR<3!KON?XS^#$R/23B_'>P````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-printeradmin.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-printeradmin.png.uu
@@ -0,0 +1,33 @@
+begin 644 desktop/24x24/ooo-printeradmin.png
+MB5!.1PT*&@H````-24A$4@```!@````8"`8```#@=SWX````!F)+1T0`_P#_
+M`/^@O:>3```$^$E$051(Q[65:6P5513'?W=FWILI?0M=*!9$5+`162M$<&M9
+M!.6#&T94:+40(:"I10.B)#4D1J/!1-2ZX(81%S3BQB>U8NL*B'UI$6HQU5I:
+M%/IX6'G;O)FYUP]M'U$6T<1_<K[<F3F_>\[YW[GP/TN<ZN'XY:_GF8Z\.C#(
+M7R&E&FL[7B&`Z=.CFB;VQ).9UVR?MG7WLPN/_"O`]*J-5MKRK\[Q&RM7W%CJ
+MNW3\F68X8*)K&@">E/P1M_FRI<M^8DO$2=KN8U8Z\VC#*XO2_P@H7?SFL$".
+MJ*^>-VG4]>7G^:54V!F/C.OA206`)@1^GXXF%);IXZU/?\AL^'!W>SREKHB\
+M?,N!DP)*%[T])'>0]_W+J^<,R341VYOWT=;136Z.R>47CN7<X4/YKK6=KR)[
+M*<P+4SYE'&</*\*R?+1V');+'Z^/QA/ZN,C&^3W'`::O_<R0T8--+ZR:/6YD
+M<5C$>E-(!9[G\6WS7CYHV$$R;5,0#G+C5664G'T60A.@^BHJ"%OLZXS)ZB<_
+MVZ,5#KVP8>T,%T`?``P;<^6=U?,FW7+9Q.%&.F7CTP6F(;!\.J-&%#-ES#ED
+M[#1+;YC#J!'%6#X=4]?P&P*?#IXG&5X4$HXCPY&6GW_?OVO+SBP@)SC\8K_N
+M;!HU.&'M/Q!%MX(HW23E>"0=12HC4>@</=+#.UO>X9N=WS+DC+/`9Y'.2-*.
+MI#?IT!O/</'X8<:6AGT7!4NN>?I@RWN.#E!ZVW/EJY=<<UW02!LO/K^!!]:L
+MI/F[G80#@PA8?E[:4,<]-<MHW/8Q-\^_B:K*6RG,"V/J`B$5>"Z:E&A*$@J8
+M2!`M/T5_/-#T[FX#(&`9E;.FEIBH$J9<=B4[=WS-0VOOIZJJ`@#=,%A0L9@[
+M:NXE+[^`:,*E-YXDD7(`@1"@5)_#;)%@]N21.9OKVRJ!UPT`5S$A/V@1CZ<I
+MR/4Q=V8Y<\J_H+9V#5NW?L#Z]4\Q8\85O/_A9F*QZ"E/;D'!$!8NK,*#"0`&
+M@.-Z^;JN<;#7[O.Z`)3@KOL>9-G=M?A-DT-QEU@LRNI5:TX)>'3=PY@^@XSC
+MY6<!`$)`8<#H+U7TKPD(FL<E:6QL/':0Q+&C5%96=MR[!H#/T&-VQBWNB;O8
+M&1<U`.@G*P4IV\U^-'KTZ!,"!F0[+GZ?'LL"#$'+;X<3Q<6#+=+I3/_0!H8'
+MGJ<@U^"+_@2.XYRP/5)*`'X[G$"'EBP@GG8W?;*KL_R&Z256^Z$D4BFD)/OO
+M^;6[DQ?6US)W[BQLVR8_/_^$`-NV`;AUP3P5'WQ)?;8+$RI?S2W,,W_9^LAU
+M!;\?B>,X7K_]^J*F9BDUU;>S?5<3IFDBI<S&WZ648O*DB:Q<5=O4W!R9G&W@
+M)<O?J*Z8/69=Y55CS5VM!W$]A1!]/5ZU]%IV[-A.*AG/^OUD$D*0,RC`U*G3
+M5%-3DY9UD7]H\;.;M[4MN>C\H6.G75"D]?0<S3HJ&`S2UM;*YXW;.!V5E<TD
+M&`P*`&U@L6'M#/=H0IMU]S.-T;T=,5E8%.9P6M+>DR(4"M'=M?^TD@-T=^\G
+M%`KQ%P!`9./\GGB2TA5UC6V;/MICCQF9S[0+B@B%0G1U=6)9UDG#-(]%5U=G
+M%O"/5^:"V>?KL=;ZG%\ZVD^[`@!-TSZOJZLK/\U+WZQ(_=PP+='Q=5"A`%3?
+J@*2+4A+XR^3]?N/52*1YV;_:T7_5GWI)'R-2HDE[`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-base.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-base.png.uu
@@ -0,0 +1,37 @@
+begin 644 desktop/24x24/ooo-base.png
+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
+L1#(FA)@50DP"KP+/'SAPX-@EZ_A_C7\"\C:G6_]M!L@`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-web.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-web.png.uu
@@ -0,0 +1,38 @@
+begin 644 desktop/24x24/ooo-web.png
+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
+88V%P92YO<F>;[CP:`````$E%3D2N0F""
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-writer.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-writer.png.uu
@@ -0,0 +1,30 @@
+begin 644 desktop/24x24/ooo-writer.png
+MB5!.1PT*&@H````-24A$4@```!@````8"`8```#@=SWX````!F)+1T0`_P#_
+M`/^@O:>3```$:4E$051(Q[65:VP451B&GS,SNS.E6Y;2TKJMY=;8@`6E4%$4
+M*.52T$2B$%"DQ4($08-<PD5),#7&&*.)J"@6D6H004,1Y`=>"I3@C5)H*%*@
+MI$H`6TM+L;+;W=F=.>,/NB6*0*GQ2TXRF<F\SSSS?3,'_N<2-[HX>,'F>#TB
+M'_9T<^=+Z62:$3L10'>IS8HBCOO;PI^8+F77L74S+]T28$QAB1$RW"MCW-JR
+MQ=.R7`\,OEWW>G1410'`EI(__2;?59\WWRJMBK29UAM&*/Q:^4>S0S<%9,W9
+MDN*)$64+IPQ)?S3G#K>4#F;8)FS9V-(!0!$"MTM%$0Z&[N*S/2?#Q5\>J_,'
+MG?%5&V?47Q>0-?OS7K'=[)\WKLSK%:LC?CI:RZDSOQ$;HS-J:";]4Y,Y?**.
+M[ZMJ2(SWDI,]B+XI21B&BQ-G+LH%;Y8U^P/JH*J2Z4W7`,84[=-D<^.1#Y9/
+M&-3'YQ4MK4&D`[9M<^AH#3O+#](6,DGPQC%MTF@R^O9&*`*<*T8)7H/:LRUR
+MX=O[CBN)R4/+BW(M`#4*2!DX\=F%4X;,&'EWJA8*FKA4@:X)#)=*>IJ/[(']
+M")LAYDW-(SW-A^%2T54%MR9PJ6#;DM2D[B(2D=ZJZE__.%=96M$!B(E+'>%6
+M(YO2>P2,<_7-J$8<CJH3C-BT11R"88F#RN5+36PKW<:/%8?H=5MO<!F$PI)0
+M1-+:%J'5'V;$X!2MM+QV>%S&Y'<;J[^(J`!93[Z?LW+NY$?BM)"V87TQ+ZY:
+MQM'#%7@]W?`8;CXL7LO21?/9O_<;'I_^&(4%LTB,]Z*K`B$=L"T4*5$<27>/
+MC@11_4OSZ?HCVX]I`!Y#*QAW;X:.DT'VR(E4'/R!5XI>H+`P'P!5TW@B?P[/
+M+%I!?,\$F@,6K?XV`L$((!`"'.?*A)DBP(1A?6*VEITJ`#9K`);#73WC#/S^
+M$`FQ+AX<FT->S@%6KU[%KET[6;/F'7)SQ[/[ZQTT-)SOU!<\*LTS=A^@`40L
+MNZ>J*C2VFE=F70".X+GG7V;^DM6X=9T+?HN&AO/,>^KI3@'6;RAV$04`"`&)
+M'JU=5;2?$Q"G=RKP>J4!N#2UQ0Q;OB:_A1FV<**`=K+C0-"T_G9CY>'*?PW,
+M'I9]+4`35/]^,>#S]3`(A<+M38LV#VS;@5B-`S<(NJ&!/V1M^K;R;,[4,1E&
+MW84VI.,@)1W_GNBD=-G`#-D[MNXY^=;,"0.,?HD&D8C='GIU@:"BJP;5FV8%
+M[E_PZ4L??U7S>L&D3+WR1".6[2!$>Z.O=J1K!@#N9-^ZK7M/S1T^(#GSOCN3
+ME*:FRQT3%34XU`4#)7I07I1K70XHXY:\M[^YYDR+3$SR<C$DJ6L*4ML8X/2%
+MP#4&T7735Q2MJI+I35ESMF0M7KN_+#]O0/]9$S-U1TJ"P3"F:?TW@P[(QAGU
+M:B`XM&3W\5<?6K'=OWG/R6!KT*)'?&RG`O]9G=ST]7PI9>;HM$:?1_A%9X+=
+B;G?ETL7+[^G24]U*_05M!N$SX#H(3@````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-math.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-math.png.uu
@@ -0,0 +1,37 @@
+begin 644 desktop/24x24/ooo-math.png
+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
+1\A1I7Z,`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-draw.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-draw.png.uu
@@ -0,0 +1,39 @@
+begin 644 desktop/24x24/ooo-draw.png
+MB5!.1PT*&@H````-24A$4@```!@````8"`8```#@=SWX````!F)+1T0`_P#_
+M`/^@O:>3```%^4E$051(Q[65>W!4]17'/_>Q>V^RN]D\=A.2"))DB$V3&,`4
+M'T7#&ULM4U*TM0T6Z-#!6BIU;&F=8IE:Q^E,9XI]"2HJ;4&E!@*TI;:`84`>
+M,6R:S0.(H,'4#$F634+N/N^]O]L_0L+8E^T?GIG?'[\Y,]_/.>=W?N?`QVS2
+M?W-6/[0S1S/%Y[R9[@8AG,J4:0<`-)<2D66IRXBG?Y=RR0<ZGOW*\/\%F+?J
+M)3VINS=FN-7'-MPWR_7IZALTOU=#D64`;"&X:J0X'OY[ZIG&-C.>LGZJ)],_
+M:7YY=?(C`;/6O%+DS9`.K:^?6;:\;H9;"(=4VB9MV=C"`4"6)-PN!5ERT#47
+MKQT^E]ZVO^.BD7`6M;WX0/]_!,Q:O3OHR;0[7]RX).C1D$ZU]W"^]P,\&1IW
+MSJZDM+B`,V<O\E9;-X$</W6U54PORD?779SMO2(>^MFAB!%3JMI>NG_H7P#S
+M-K^IBLA`Z/GO+*ZZL=`O14<3"`=LV^;M]F[V-9\FGDR1Y_=QW]UW43Y]&I(L
+M@3.>49Y?I^?]J%C_\S>[Y$#![.;-\RT`90)05+'TX?7U,Q^86U.L)A,I7(J$
+MIDKH+H6RJ8745I203B7Y^A>64#:U$-VEH"DR;E7"I8!M"XKSLR33%/ZV\'LC
+M?:V-+9.`#%_Q[6[%_&U9=DSOZX^@Z#X<12-AVL1-AT1:X*`P-CS$ZXVO<[+E
+M;8)3IH%+)YD6)$W!:-QDU$AS>W61VMC<,\=7ONQ7`^&]I@(PZZM;ZS:N7?9Y
+MGYI47WAN&T\\_ACM9UKP>S/QZFZV;_LECSZRCJ-'_L*7[O\BJU8^2"#'CZ9(
+M2,(!VT(6`MD19'DU!$CA=R/O](?V=*@`7EU=N?#6<@VGG-JY2VDY?8*G-G^?
+M5:L:`%!4E2\WK.$;CWR7G-P\(C&+42-.+&$"$I($CC/>82DIQN);;LQX]=#Y
+ME<!.%<!RN#G7IV,82?(\+CZSH(XE=<?8M.EQ#AS8QY8MOV#^_$4HROB3I5(6
+MGBPW9+F!Z^*.X^!R263G>K#A9@`5P+3L7$61&1A-,3QPB4OA9FZZHYYO?>])
+MUGU[$VY-8]"P<!R+$2.-:=F3K7U->^*&+,-=!=FD33MW$@`@21#PJK0U[N38
+MWF<YL>M):N]>R9W+U^/S^0"P+$&.IB!)U\6%`XXC``?'<29]$Z8"N%0EFDI;
+MA4.&1=G"=70<WT^I-LB[1W?0<G`'97.6477/!E3?E&L"UU6D:Y&/`\"CJP1-
+M"[=+B4X"5(GPY2NQPL)LG1P]P.JG]K'UT07<49@@6X<W0ONXV+*?ZKGU+&QX
+M`H\_;[(DMAB/?.)X/6XN7XFA0'CR'P1KECO97NVS%24!M>>#JXS9&@6?G$_S
+M&WN0A<7J6I6T:?.WKK.<_./S#"9EKDH^8DXFPS&3X;C%2-QD.&Y2$/#RAY,7
+M$Z>Z!W[<']K3(0.DDG;3JX?/Q7273$E`9UJVFYK**M8\_6?>B?EXKL5D1D!A
+M[:<4\HNGXLLOHJ?]"'Y&*`UF4!K4*0GHW%3D)5-3>.UP3SR5M)LF,Q@([S4+
+M9]<G'(<%<ZIO4+O?'R5BF"0D#U-O649/ZU]I[S-P*0)KYM=8M/A>JBJK.7'J
+M*)$Q$\/2B)F"Z<4Y_.9@9S)T8?`'K=L;CG]H%I7=^\U01]>E%;4S@L'9Y4$I
+M0W;(]:@4Y.50N[B!X8'WZ(ZJ:%,JB!EQ:FIJN.W6VWAAZQ9&!WMYY>5?,S22
+M=/:$8N?4_"EK>YMWB'\[KKT>NW/+P_,"%24!^=RE*"-C:83C($D2%\[\B>'1
+M"+FY`0J"!71U=1,*A5BQ8@5-34UT=G9RH??RCY)&Y(<?N7`:EGRB],&EE9HC
+M!(E$FE3*PK;'.Z6_OY>.SE9V[_X]T2O#Z+J.81A$HU'Z^OH`-@#/?*A$$W:Y
+MK7&LM/*>[:V]46?WD?.U2-A%`9\KD.LA)SN3K*P,`L$@^<7EO-42ML)G3LJ&
+M83`R,L+0T!!""("E0#\0^A^7OM8@A/BGI2]W737&=H5W;2BRDF/+@6E`])KP
+=:>`@<(R/V_X!5(ZI`K_FP(<`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/ooo-impress.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/ooo-impress.png.uu
@@ -0,0 +1,36 @@
+begin 644 desktop/24x24/ooo-impress.png
+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
+6^A=O%B<Q.G^%'`````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/24x24/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/24x24/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/24x24
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard ooo-*.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/24x24/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/24x24/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/writer.desktop.in.in
+++ openoffice.org-2.4.1/ooo-build/desktop/writer.desktop.in.in
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+TryExec=oowriter@OOO_BINSUFFIX@
+Exec=oowriter@OOO_BINSUFFIX@ %U
+Icon=ooo-writer@OOO_BINSUFFIX@
+Type=Application
+Categories=Office;WordProcessor;
+StartupNotify=false
+MimeType=application/msword;application/rtf;application/vnd.ms-works;application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-master;application/vnd.oasis.opendocument.text-template;application/vnd.stardivision.writer;application/vnd.stardivision.writer-global;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.global;application/vnd.sun.xml.writer.template;application/vnd.wordperfect;application/wordperfect;application/x-extension-txt;application/x-t602;text/plain;text/rtf@ADD_OPENXML_WORD_MIME@;
+InitialPreference=5
+_Name=OpenOffice.org Word Processor
+_GenericName=Word Processor
+_Comment=Create and edit text and graphics in letters, reports, documents and Web pages.
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/16x16/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/16x16/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/16x16/application-vnd.openofficeorg.extension.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/16x16/application-vnd.openofficeorg.extension.png.uu
@@ -0,0 +1,23 @@
+begin 644 desktop/mimetypes/16x16/application-vnd.openofficeorg.extension.png
+MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!'-"250("`@(
+M?`ADB`````EP2%ES```-UP``#=<!0BB;>````!ET15AT4V]F='=A<F4`=W=W
+M+FEN:W-C87!E+F]R9YON/!H```+H241!5#B-;9)-:%Q5',5_][[[WIN99,9,
+MDW24**568NL'0?R`(&.G5)T@0D&D=*%+$80N%,25.Q>"&[&"N'#E3L2%J/@1
+M6VN4@10EBC,UDTEM,VEJ9B8V\_EFWKQ[KXM02-O\U[]S.)S_$?E\GKVN[&0/
+M()T/,61!6"'Y283.J_>)^=IN3NVI!L!][XV7LL\]]N"4C"+#5PM_/__9]TMO
+M,^3T;DKN)?UN=E8BS(EZLRN_+:PP?V&54!N%$2=O9?=,D"\43-G)%9:O;!VU
+M0N"[BF:K9P7,W\K>EJ"B<N^4U;$6\&3C>B<:3<1(CL2I;;4BBSVY[.2"LI-K
+MEIW<FP#B1HF-Q@ONYKU=I7KA]MS1ASQ7N;C*H5IOH1S)G>D$X3!"&TVW-V!A
+ML1+<K\\E5$D>/^0ZYHS-_/>,&X@B`D83"<I7MQE&!FTLUD9<;X?<O7^49,P'
+M*[#"^@#*<_0GKYUZ*OOH`U-RL7AU9F'I"@-MT5;B*`<'L,:03OH88_CAEU);
+M6VV%)0F@C.7Q>KLO%R_^R^5&0'I?FLWM`9[K(L1.1<8:4J-Q_BJN=KN=X`,C
+MS8\2^2*`L@BY7NMPL=HD[OO$8M[.:R3(70:N4G0Z_<A*L7`X^OG<>FKV5UH@
+M)?Q>W=C2J;C'(`BXME%C8BR!Z[J,I1)DQI-,32:1CL/XY!UQ*<2[*]ZQSWO=
+M6`-`1<:\LK9>?W^M6LLZ2OYAC'GDR.%#WEA2875$L72IWVYWPW0ZE3AXX![/
+M]_V9?C^<J536=W9PQ)PO34=GG_WGF[<2D>S-@;#&@.\J%G\K=BNKU8]J]<;+
+M*Y6UTL:UALWL'Q=W9?8)).:F(>7S<S;HC0RQ5O;#D"C2](.^,49_/1V=_]+"
+MG_TPM%H;@C`"B&X:THU;\8Y_BM:G$-)::Y2%,Y>?&+Q^\$)LTT):(`S6@A0?
+M3P_/GK[-`&#)/CTR$79%<S*E,Y=&HHF)+X;+@]E8F$0F1=QIVT`_'!9Z`/\#
+4H\I>X^$E6^P`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/16x16/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/16x16/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/mimetypes/16x16
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/mimetypes/16x16/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/mimetypes/16x16/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/Makefile.am
@@ -0,0 +1,2 @@
+SUBDIRS=16x16 22x22 24x24 32x32 48x48
+
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/32x32/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/32x32/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/32x32/application-vnd.openofficeorg.extension.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/32x32/application-vnd.openofficeorg.extension.png.uu
@@ -0,0 +1,60 @@
+begin 644 desktop/mimetypes/32x32/application-vnd.openofficeorg.extension.png
+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
+B8JFR?U?\WPS=T].C_@72^V)`5(+-J0````!)14Y$KD)@@@``
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/32x32/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/32x32/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/mimetypes/32x32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/mimetypes/32x32/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/mimetypes/32x32/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/48x48/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/48x48/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/48x48/application-vnd.openofficeorg.extension.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/48x48/application-vnd.openofficeorg.extension.png.uu
@@ -0,0 +1,105 @@
+begin 644 desktop/mimetypes/48x48/application-vnd.openofficeorg.extension.png
+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
+7[G\``;I_3@$!!84`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/48x48/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/48x48/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/mimetypes/48x48
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/mimetypes/48x48/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/mimetypes/48x48/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/22x22/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/22x22/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/22x22/application-vnd.openofficeorg.extension.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/22x22/application-vnd.openofficeorg.extension.png.uu
@@ -0,0 +1,40 @@
+begin 644 desktop/mimetypes/22x22/application-vnd.openofficeorg.extension.png
+MB5!.1PT*&@H````-24A$4@```!8````6"`8```#$M&P[````!'-"250("`@(
+M?`ADB`````EP2%ES```-UP``#=<!0BB;>````!ET15AT4V]F='=A<F4`=W=W
+M+FEN:W-C87!E+F]R9YON/!H```7K241!5#B-?95I;)3G$<=_SWOMOGO8:VP,
+MYK`QV-`X3JP$AZ,T@10#1:T:$=0[I1Q)(>5+TY:T356EJ$T5J6J52)4JA:I0
+MA:B*DAXFBGN``X&".6,'3&U#S.6UP<>N=]=[O/?3#Z1(M*@CS9<9S4\CS7]F
+MQ+IUZ[B73=0]5:,$8K6AJRMT33SJ^G(A@*Z*2ZXGCSFN?SQ09&?5]?TW[U4O
+M[@5.UW_]F7C8^-4/OKI$;YI7$:HJCQ`R-``<UR>3M^D>&+-?_L-IM^"XWYEV
+M]?4]_Q<\-GOSK%B$-SZ[;/[2[WZIU10"O$#B!P&!+P%0%`55@2`(T'6-5]XZ
+M5SIP_,JI?%%^K7IXW\C_@#-SOS$C;"I]>W:M241#B'^<Z.;J\!CQB,G*UOMI
+MJ)M%5W<_7><'F#.CBK9E+<RMJ4375"X.C@<[7SV<M:W@OL30[T?O`A<;MAS:
+MLVO-IQ?,28BBY2(E2.#,A0'V_>40A9)-0VT-FYYHHW;F=&YG00A!U-3Y\/)8
+M\-ROWS\<^6AO&X#:T-!`NG[3YB=6+'CV\Y]:H+N.CR)`506:$-3.K.*QUONI
+M2L39MJ&-JO(8FB+0%('ZL0=^P)P99:+_1KJFSZD?-C,?]JBCA?#C4<U^\Q-E
+MJ5!R^!:*'B(:+\?S)5YPVQW'87SX!IV=G72=/$7-K%KT<`3/#_!\2=[R*%H>
+M;8OK]+</7VK+Q![<HS[XY5=:MC^Y]`L1Q5+?.=#.\]][CJ-'WD-3!('G\LM?
+MO,RSVY_A;QWOL.*3*]BV=1L5B7(4P+(<;B33%(LVBI0DRDP<S_=Z+HV?T325
+MY>M7/:)73WN<+WYE,SW='[!SQ]/LV/%-`(Q0B%W??X'M.W9BFA$\('ESBF,?
+M7.&U/W81-77RMHNI:^SY\48>;JPV7U?[EFMF2%U571$5BI28NF#YDE9.G#C)
+M[MTO<NC007ZW=Q\//-!R1Y+YO$5<%[S1<8Z?[EQ+74T"";S=V<MO_WR*'VY=
+M+<R0ODHKN4%S.*21SEKX00`($#H_^LG/>>'%EQ!"4+!\))*1B0)318^2;3.:
+MRM'5.\1;[_42#FG8CL?@]0DJ$R8EUVO6%(2'!%-7"*1`W+T__"=0*#A4FBJ5
+MIL98VJ=^=B6#R312",RPRLCH!"N:ZTB.9B"0OF;H2D\V;ZU$""S;OXO)QUH>
+MGRR2S;L(H;#[-^\R,I%!456BL3#QLBB&86!9'ATG!^CH&J!8<F):T?&.7+J1
+M?NRAA3.$*N6=)B7@.#Z6Y1'3!%G7P@SKW$QE^=SJAP"!Y7A<O97%=DNTMC2@
+M*""#@$RNJ&A2!B>/]=XLM33.B%P;R^/Y$M<+L!T?"?3T)]G;?@I=$^0+#IJF
+M$DA![]44"`$(,D6/J:$,\V;&40`O`,UPG>/M__S(WO*9ILBLBC"Y7`D14A$Q
+M#2$$SW><9O>WUE);4\&)\\.<O)@D;P?HAH$0MP<@@X"9TR*D)G.</7]52NF[
+M:E.U[>3BS;T7KJ2?W+AJH79Y),]$WB5;\AE.%6@_?(%0-,:Y@5'ZDQE\-*9*
+M'JJJH6D:JJ*BJ`K3RTUZ+EZ3OJ*\9/O>4QI`U?7][UXVMK3_M6MPX_IE\[7Q
+M\1R>%^"X.E)"*ENB8`?$(F%"(8.2$V![$D4HP.T3JJ@JCN-Y;JYPH$D>&5$;
+M&AH`R,87'SS3?VM3(F:8#]\W2TWE/8;3);K[DDQFBQB&3CJ5870\37UM#:ZO
+M4)F(,*W,I#P6(I!0+);<R:G\QDEE_K?O@"/9;CNE-;UVX<K8W,[NY*(-C\[7
+M&^<D6+NTD;%4CJ'A"9KG5=%W993Z^EK"88/)R4E.G3[/Q7\->I.9*6M18[U9
+M41&/)LIC97?``/'"!5=+][0G:3S]IZ.#ZV^,YF38T)0URQJ5IS>TLJB^FC</
+MGJ>N;@ZZJG+XZ%GI>O)G=LG:6BS9JTS3F%U1'@<DVG__*H#*H?T'<TW;:CO.
+M#"W^^]FA)5%#7>G)X!'?"Y1\T9Z>SDPIAJ8C96"Y3NG@(OG^M4&E3;%LEZF"
+:16ZJP+\!=_[-`T'FS*$`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/22x22/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/22x22/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/mimetypes/22x22
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/mimetypes/22x22/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/mimetypes/22x22/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/24x24/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/24x24/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.png)
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/24x24/application-vnd.openofficeorg.extension.png.uu
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/24x24/application-vnd.openofficeorg.extension.png.uu
@@ -0,0 +1,42 @@
+begin 644 desktop/mimetypes/24x24/application-vnd.openofficeorg.extension.png
+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
+=K%`29!Z/7?\%[-KSB65H*/@`````245.1*Y"8((`
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/24x24/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/24x24/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/mimetypes/24x24
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.png)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/mimetypes/24x24/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/mimetypes/24x24/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/mimetypes/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/mimetypes/Makefile.in
@@ -0,0 +1,537 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop/mimetypes
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/mimetypes/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/mimetypes/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic ctags \
+	ctags-recursive distclean distclean-generic distclean-tags \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+	tags-recursive uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/desktop/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/desktop/Makefile.in
@@ -0,0 +1,564 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = desktop
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable mimetypes
+desktop_in_files = ${wildcard *.desktop.in.in}
+old_gnome_files = \
+	openoffice.applications.in \
+	openoffice-extra.keys.in \
+	openoffice.keys.in
+
+EXTRA_DIST = $(desktop_in_files) \
+	$(old_gnome_files) \
+	${wildcard *.png} \
+	openoffice.xml \
+	openoffice.mime
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  desktop/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  desktop/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic ctags \
+	ctags-recursive distclean distclean-generic distclean-tags \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+	tags-recursive uninstall uninstall-am
+
+
+all: $(desktop_in_files:.desktop.in.in=.desktop) $(old_gnome_files:.in=)
+
+clean: 
+	rm -f $(desktop_in_files:.desktop.in.in=.desktop.in) \
+	      $(desktop_in_files:.desktop.in.in=.desktop) \
+	      $(old_gnome_files:.in=)
+
+%.desktop.in: %.desktop.in.in $(top_builddir)/intltool-merge $(wildcard $(top_srcdir)/po/*.po)
+	$(top_builddir)/intltool-merge $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+%: %.in
+	sed -e "s|\@OOO_BINSUFFIX\@|@OOO_BINSUFFIX@|" \
+	    -e "s|\@STARTUPNOTIFY\@|@STARTUPNOTIFY@|" \
+	    -e "s|\@ADD_OPENXML_PRESENTATION_MIME\@|@ADD_OPENXML_PRESENTATION_MIME@|" \
+	    -e "s|\@ADD_OPENXML_SPREADSHEET_MIME\@|@ADD_OPENXML_SPREADSHEET_MIME@|" \
+	    -e "s|\@ADD_OPENXML_WORD_MIME\@|@ADD_OPENXML_WORD_MIME@|" $< > $@
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/intltool-extract.in
+++ openoffice.org-2.4.1/ooo-build/intltool-extract.in
@@ -0,0 +1,406 @@
+#!@INTLTOOL_PERL@ -w 
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Extractor
+#
+#  Copyright (C) 2000-2001, 2003 Free Software Foundation.
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License as
+#  published by the Free Software Foundation; either version 2 of the
+#  License, or (at your option) any later version.
+#
+#  Intltool is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#  As a special exception to the GNU General Public License, if you
+#  distribute this file as part of a program that contains a
+#  configuration script generated by Autoconf, you may include it under
+#  the same distribution terms that you use for the rest of that program.
+#
+#  Authors: Kenneth Christiansen <kenneth@gnu.org>
+#           Darin Adler <darin@bentspoon.com>
+#
+
+## Release information
+my $PROGRAM      = "intltool-extract";
+my $PACKAGE      = "intltool";
+my $VERSION      = "0.27.2";
+
+## Loaded modules
+use strict; 
+use File::Basename;
+use Getopt::Long;
+
+## Scalars used by the option stuff
+my $TYPE_ARG	= "0";
+my $LOCAL_ARG	= "0";
+my $HELP_ARG 	= "0";
+my $VERSION_ARG = "0";
+my $UPDATE_ARG  = "0";
+my $QUIET_ARG   = "0";
+
+my $FILE;
+my $OUTFILE;
+
+my $gettext_type = "";
+my $input;
+my %messages = ();
+
+## Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+## Always print first
+$| = 1;
+
+## Handle options
+GetOptions (
+	    "type=s"     => \$TYPE_ARG,
+            "local|l"    => \$LOCAL_ARG,
+            "help|h"     => \$HELP_ARG,
+            "version|v"  => \$VERSION_ARG,
+            "update"     => \$UPDATE_ARG,
+	    "quiet|q"    => \$QUIET_ARG,
+            ) or &error;
+
+&split_on_argument;
+
+
+## Check for options. 
+## This section will check for the different options.
+
+sub split_on_argument {
+
+    if ($VERSION_ARG) {
+        &version;
+
+    } elsif ($HELP_ARG) {
+	&help;
+        
+    } elsif ($LOCAL_ARG) {
+        &place_local;
+        &extract;
+
+    } elsif ($UPDATE_ARG) {
+	&place_normal;
+	&extract;
+
+    } elsif (@ARGV > 0) {
+	&place_normal;
+	&message;
+	&extract;
+
+    } else {
+	&help;
+
+    }  
+}    
+
+sub place_normal {
+    $FILE	 = $ARGV[0];
+    $OUTFILE     = "$FILE.h";
+}   
+
+sub place_local {
+    $OUTFILE     = fileparse($FILE, ());
+    if (!-e "tmp/") { 
+        system("mkdir tmp/"); 
+    }
+    $OUTFILE     = "./tmp/$OUTFILE.h"
+}
+
+sub determine_type {
+   if ($TYPE_ARG =~ /^gettext\/(.*)/) {
+	$gettext_type=$1
+   }
+}
+
+## Sub for printing release information
+sub version{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+Written by Kenneth Christiansen, 2000.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+## Sub for printing usage information
+sub help {
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... [FILENAME]
+Generates a header file from an XML source file.
+
+It grabs all strings between <_translatable_node> and its end tag in
+XML files. Read manpage (man ${PROGRAM}) for more info.
+
+      --type=TYPE   Specify the file type of FILENAME. Currently supports:
+                    "gettext/glade", "gettext/ini", "gettext/keys"
+                    "gettext/rfc822deb", "gettext/schemas",
+                    "gettext/scheme", "gettext/xml"
+  -l, --local       Writes output into current working directory
+                    (conflicts with --update)
+      --update      Writes output into the same directory the source file 
+                    reside (conflicts with --local)
+  -v, --version     Output version information and exit
+  -h, --help        Display this help and exit
+  -q, --quiet       Quiet mode
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+## Sub for printing error messages
+sub error{
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit;
+}
+
+sub message {
+    print "Generating C format header file for translation.\n" unless $QUIET_ARG;
+}
+
+sub extract {
+    &determine_type;
+
+    &convert ($FILE);
+
+    open OUT, ">$OUTFILE";
+    &msg_write;
+    close OUT;
+
+    print "Wrote $OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub convert($) {
+
+    ## Reading the file
+    {
+	local (*IN);
+	local $/; #slurp mode
+	open (IN, "<$FILE") || die "can't open $FILE: $!";
+	$input = <IN>;
+    }
+
+    &type_ini if $gettext_type eq "ini";
+    &type_keys if $gettext_type eq "keys";
+    &type_xml if $gettext_type eq "xml";
+    &type_glade if $gettext_type eq "glade";
+    &type_scheme if $gettext_type eq "scheme";
+    &type_schemas  if $gettext_type eq "schemas";
+    &type_rfc822deb  if $gettext_type eq "rfc822deb";
+}
+
+sub entity_decode_minimal
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+
+    return $_;
+}
+
+sub entity_decode
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+    s/&lt;/</g;
+    s/&gt;/>/g;
+
+    return $_;
+}
+
+sub escape_char
+{
+    return '\"' if $_ eq '"';
+    return '\n' if $_ eq "\n";
+    return '\\' if $_ eq '\\';
+
+    return $_;
+}
+
+sub escape
+{
+    my ($string) = @_;
+    return join "", map &escape_char, split //, $string;
+}
+
+sub type_ini {
+    ### For generic translatable desktop files ###
+    while ($input =~ /^_.*=(.*)$/mg) {
+        $messages{$1} = [];
+    }
+}
+
+sub type_keys {
+    ### For generic translatable mime/keys files ###
+    while ($input =~ /^\s*_\w+=(.*)$/mg) {
+        $messages{$1} = [];
+    }
+}
+
+sub type_xml {
+    ### For generic translatable XML files ###
+        
+    while ($input =~ /\s_$w+\s*=\s*\"([^"]+)\"/sg) { # "
+        $messages{entity_decode_minimal($1)} = [];
+    }
+
+    while ($input =~ /<_($w+)(?: xml:space="($w+)")?>(.+?)<\/_\1>/sg) {
+        $_ = $3;
+        if (!defined($2) || $2 ne "preserve") {
+            s/\s+/ /g;
+            s/^ //;
+            s/ $//;
+        }
+        $messages{entity_decode_minimal($_)} = [];
+    }
+}
+
+sub type_schemas {
+    ### For schemas XML files ###
+         
+    # FIXME: We should handle escaped < (less than)
+    while ($input =~ /
+                      <locale\ name="C">\s*
+                          (<default>\s*(.*?)\s*<\/default>\s*)?
+                          (<short>\s*(.*?)\s*<\/short>\s*)?
+                          (<long>\s*(.*?)\s*<\/long>\s*)?
+                      <\/locale>
+                     /sgx) {
+        my @totranslate = ($2,$4,$6);
+        foreach (@totranslate) {
+            next if !$_;
+        s/\s+/ /g;
+        $messages{entity_decode_minimal($_)} = [];
+        }
+    }
+}
+
+sub type_rfc822deb {
+    ### For rfc822-style Debian configuration files ###
+
+    while ($input =~ /(?:^|\n)_[^:]+:\s*(.*?)(?=\n\S|$)/sg) {
+        my @str_list = rfc822deb_split($1);
+        for my $str (@str_list) {
+            #   As rfc822deb is for configuration files, duplicates
+            #   should never happen.  Developers must use the
+            #   [] construct to make msgid unique, see also intltool-merge
+            print STDERR "Warning: msgid multiply defined:\n  $str\n"
+                if defined($messages{$str});
+            $messages{$str} = [];
+        }
+    }
+}
+
+sub rfc822deb_split {
+    # Debian defines a special way to deal with rfc822-style files:
+    # when a value contain newlines, it consists of
+    #   1.  a short form (first line)
+    #   2.  a long description, all lines begin with a space,
+    #       and paragraphs are separated by a single dot on a line
+    # This routine returns an array of all paragraphs, and reformat
+    # them.
+    my $text = shift;
+    $text =~ s/^ //mg;
+    return ($text) if $text !~ /\n/;
+
+    $text =~ s/([^\n]*)\n//;
+    my @list = ($1);
+    my $str = '';
+    for my $line (split (/\n/, $text)) {
+        chomp $line;
+        $line =~ /\s+$/;
+        if ($line =~ /^\.$/) {
+            #  New paragraph
+            $str =~ s/\s*$//;
+            push(@list, $str);
+            $str = '';
+        } elsif ($line =~ /^\s/) {
+            #  Line which must not be reformatted
+            $str .= "\n" if length ($str) && $str !~ /\n$/;
+            $str .= $line."\n";
+        } else {
+            #  Continuation line, remove newline
+            $str .= " " if length ($str) && $str !~ /[\n ]$/;
+            $str .= $line;
+        }
+    }
+    $str =~ s/\s*$//;
+    push(@list, $str) if length ($str);
+    return @list;
+}
+
+sub type_glade {
+    ### For translatable Glade XML files ###
+
+    my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message";
+
+    while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) {
+	# Glade sometimes uses tags that normally mark translatable things for
+        # little bits of non-translatable content. We work around this by not
+        # translating strings that only includes something like label4 or window1.
+	$messages{entity_decode($2)} = [] unless $2 =~ /^(window|label)[0-9]+$/;
+    }
+    
+    while ($input =~ /<items>(..[^<]*)<\/items>/sg) {
+	for my $item (split (/\n/, $1)) {
+	    $messages{entity_decode($item)} = [];
+	}
+    }
+
+    ## handle new glade files
+    while ($input =~ /<(property|atkproperty)\s+[^>]*translatable\s*=\s*"yes"[^>]*>([^<]+)<\/\1>/sg) {
+	$messages{entity_decode($2)} = [] unless $2 =~ /^(window|label)[0-9]+$/;
+    }
+    while ($input =~ /<atkaction\s+action_name="([^>]*)"\s+description="([^>]+)"\/>/sg) {
+        $messages{entity_decode_minimal($2)} = [];
+    }
+}
+
+sub type_scheme {
+    while ($input =~ /_\w*\(?"((?:[^"\\]+|\\.)*)"\)?/sg) {
+	$messages{$1} = [];
+    }
+}
+
+sub msg_write {
+    for my $message (sort keys %messages) { 
+   	print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/;
+        
+    	my @lines = split (/\n/, $message, -1);
+    	for (my $n = 0; $n < @lines; $n++) {
+            if ($n == 0) { 
+ 		print OUT "char *s = N_(\""; 
+            } else {  
+ 		print OUT "             \""; 
+	    }
+
+            print OUT escape($lines[$n]);
+
+            if ($n < @lines - 1) { 
+		print OUT "\\n\"\n"; 
+ 	    } else { 
+		print OUT "\");\n";  
+	    }
+        }
+    }
+}
+
--- openoffice.org-2.4.1.orig/ooo-build/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/Makefile.am
@@ -0,0 +1,29 @@
+# if BONOBO
+#  MAYBE_BONOBO = bonobo
+# endif
+
+SUBDIRS = po desktop distro-configs bin etc patches man doc scratch src stamp templates www # $(MAYBE_BONOBO)
+
+include $(top_srcdir)/Makefile.shared
+
+EXTRA_DIST = \
+	emacs.el		\
+	MAINTAINERS		\
+	download.in		\
+	Makefile.shared		\
+	intltool-merge.in	\
+	intltool-update.in	\
+	intltool-extract.in	\
+	ChangeLog-to-1.3.0	\
+	ChangeLog-to-1.9.0	\
+	ChangeLog-to-2.0.0	\
+	ChangeLog-to-2.2
+
+clean-local:
+	test -z "$(OOBUILDDIR)" || rm -rf $(OOBUILDDIR)
+	for icons in $(OOO_ICONS_VERS) ; do \
+	    test "$(BUILDDIR)/$$icons" = "/" || rm -rf "$(BUILDDIR)/$$icons" ; \
+	done
+
+maintainer-clean-local:
+	test -z "$(BUILDDIR)" || rm -rf $(BUILDDIR)
--- openoffice.org-2.4.1.orig/ooo-build/templates/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/templates/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST=${wildcard *.ott}
--- openoffice.org-2.4.1.orig/ooo-build/templates/project-proposal.ott.uu
+++ openoffice.org-2.4.1/ooo-build/templates/project-proposal.ott.uu
@@ -0,0 +1,465 @@
+begin 644 templates/project-proposal.ott
+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
+M;W)G+S(P,#0O;V9F:6-E(B!O9F9I8V4Z=F5R<VEO;CTB,2XP(CX\;V9F:6-E
+M.FUE=&$^/&UE=&$Z9V5N97)A=&]R/D]P96Y/9F9I8V4N;W)G+S(N,"1,:6YU
+M>"!/<&5N3V9F:6-E+F]R9U]P<F]J96-T+S8X,&TQ-3,D0G5I;&0M.3`P,3PO
+M;65T83IG96YE<F%T;W(^/&1C.G1I=&QE/E!R;VIE8W0@4')O<&]S86P\+V1C
+M.G1I=&QE/CQM971A.F-R96%T:6]N+61A=&4^,C`P,RTP-2TQ.50Q-#HR.#HR
+M.3PO;65T83IC<F5A=&EO;BUD871E/CQD8SID871E/C(P,#8M,#$M,S!4,38Z
+M-3@Z,C`\+V1C.F1A=&4^/&1C.FQA;F=U86=E/F5N+553/"]D8SIL86YG=6%G
+M93X\;65T83IE9&ET:6YG+6-Y8VQE<SXY/"]M971A.F5D:71I;F<M8WEC;&5S
+M/CQM971A.F5D:71I;F<M9'5R871I;VX^4%0Q2#,Q33$W4SPO;65T83IE9&ET
+M:6YG+61U<F%T:6]N/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN
+M9F\@,2(O/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@,B(O
+M/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@,R(O/CQM971A
+M.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@-"(O/CQM971A.F1O8W5M
+M96YT+7-T871I<W1I8R!M971A.G1A8FQE+6-O=6YT/2(Q(B!M971A.FEM86=E
+M+6-O=6YT/2(Q(B!M971A.F]B:F5C="UC;W5N=#TB,"(@;65T83IP86=E+6-O
+M=6YT/2(R(B!M971A.G!A<F%G<F%P:"UC;W5N=#TB,S0B(&UE=&$Z=V]R9"UC
+M;W5N=#TB,34S(B!M971A.F-H87)A8W1E<BUC;W5N=#TB.3`W(B\^/"]O9F9I
+M8V4Z;65T83X\+V]F9FEC93ID;V-U;65N="UM971A/E!+`P04``@`"`!*ASXT
+M````````````````&````%1H=6UB;F%I;',O=&AU;6)N86EL+G!N9^L,\'/G
+MY9+B8F!@X/7T<`D"TC5`O("##4B>>\3QBH&!5=+3Q3&D8L[;.?K]5QU$W']S
+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
+MWIQS0L;30Z:\/91&YCHD`]HG'FB1QU*G(=E$2_^93">]\<-\-8N^U@LOXUHF
+M8#!H)MYZ\_K^-O.(S]BJ`+U*$BF`YF7*V#R:>Q^-SK$96WP2CS1;-,:8./@E
+MTUU*F],R)+;40<Z--('F&9@`19`[KS@7-@.-P6]]4(<QZ7EG<"(5^$Y85JT`
+M();<QZJ`D/"B4%)P=$E@>QW3HQ=M6U"$`_H(6:$X`CEC$JN47W#<A801=I.K
+ML9JZ2*B55.0ZD:DMCX?=;K.VQ`RO-9<93X$5.NVFKZ5`6X)A@[YKP_YQ^.F/
+MX^-R.%H^O8QHC;C.^@_'&[*XE9J753=?\2JWZ`LN=G"E15U[YBK3#7:UPOJ%
+MU()[<@U6"LS=L1D@_P>T&Q;M;+;57"K#L)G>[46TX/=-+""Z_^V4VC&[^($F
+MWU!+!PCD@+13;@$``!D%``!02P$"%``4``````!*ASXTY!&2*3`````P````
+M"```````````````````````;6EM971Y<&502P$"%``4``````!*ASXT````
+M````````````$`````````````````!6````0V]N9FEG=7)A=&EO;G,R+U!+
+M`0(4`!0``````$J'/C0H>,3B7BH``%XJ```M`````````````````(0```!0
+M:6-T=7)E<R\Q,#`P,#(P,3`P,#`P,3`P,#`P,#`Q,#`U1C(S1C9!,RYP;F=0
+M2P$"%``4``@`"`!*ASXTPP:@,B0````M````#``````````````````M*P``
+M;&%Y;W5T+6-A8VAE4$L!`A0`%``(``@`2H<^-/X.3_MO"0``ARL```L`````
+M````````````BRL``&-O;G1E;G0N>&UL4$L!`A0`%``(``@`2H<^-"DE0LJ*
+M"```9S````H`````````````````,S4``'-T>6QE<RYX;6Q02P$"%``4````
+M``!*ASXTBH/,C$D$``!)!```"`````````````````#U/0``;65T82YX;6Q0
+M2P$"%``4``@`"`!*ASXT9;`Q`LX$``!2!0``&`````````````````!D0@``
+M5&AU;6)N86EL<R]T:'5M8FYA:6PN<&YG4$L!`A0`%``(``@`2H<^-$:"16M!
+M!0``$AT```P`````````````````>$<``'-E='1I;F=S+GAM;%!+`0(4`!0`
+M"``(`$J'/C3D@+13;@$``!D%```5`````````````````/-,``!-151!+4E.
+D1B]M86YI9F5S="YX;6Q02P4&``````H`"@!S`@``I$X`````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/templates/resume.ott.uu
+++ openoffice.org-2.4.1/ooo-build/templates/resume.ott.uu
@@ -0,0 +1,230 @@
+begin 644 templates/resume.ott
+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
+ML%(308)[=C_[B0=16#6EKP2*JA)DG\S@S3>*2*<E=+GP0>@JY%_JSOS[V%'<
+M6LI6F(P5N:4-`H)"]M3A=QQ+:<S<]=8LI81$M5C`=7GV21V8^F&B+0/,M(O"
+M\A5::^DY!2#9HI1'B0ZL"]N$.4`+2.\_<B(6NCYA[HXB]Y";P.3<KT.IO'FL
+MG49./+6\)2PDM"6`O!Q_6V^`1B+#P]\$E4)0O0X"^CY"O^;1`9G$/-Q&W(:O
+M74]JGW9S;^R>N@7>>:SK^`6TB/.R$#QDF9=>QT;=86&X(TB47!P68Y(617MH
+MGLH3%3/O2$N?7MN5LEYH-G\#4$L'"."BI"M"!0``$AT``%!+`P04``@`"``N
+MASXT````````````````%0```$U%5$$M24Y&+VUA;FEF97-T+GAM;*V4O6["
+M,!2%=Y["]1Z[[51%!*0"E2JUA2$,'8US$RSY)XJO$7G[.D@!*K*T9+NVC[[C
+M<R1[.C\:30[0>.5L1I_8(R5@I2N4K3*ZS=^2%SJ?3:8/R_4B_]ZLB!%6E>`Q
+M[0>RV;Y^O"\(33A?UV#79:DD,-=4G"_S)?GL=9'-^>J+$MIOL0(+&N&WS'@I
+MZ\_+C(;&IDYXY5,K#/@49>JB5^%D,&`Q_:U/NQBS";F`2Z4AB<*FO0H`A1()
+MMC5D5-2U5E)@+($?;,%.7NS:@B$<,4$PM18(]((I@]9)+7"?44[Y7:X^6!:3
+ML*"8=+9456A.A\-NBVN)?[['?*>L:-IA&RU:%S"10N[ACQ9=93P&&@;'B-@5
+MVPG&Y'IL-?C1L090_`,Z#,OWP>RL4-IS[$=6VVIL^+C%`F+\%L[53OG-PYW]
+M`%!+!P@?MJ:N00$``%`$``!02P$"%``4```````NASXTY!&2*3`````P````
+M"```````````````````````;6EM971Y<&502P$"%``4```````NASXT````
+M````````````$`````````````````!6````0V]N9FEG=7)A=&EO;G,R+U!+
+M`0(4`!0`"``(`"Z'/C2%J[(<$@```!(````,`````````````````(0```!L
+M87EO=70M8V%C:&502P$"%``4``@`"``NASXT=`@<B14*```2*```"P``````
+M``````````#0````8V]N=&5N="YX;6Q02P$"%``4``@`"``NASXT)VL>THH'
+M```2(P``"@`````````````````>"P``<W1Y;&5S+GAM;%!+`0(4`!0`````
+M`"Z'/C24<K=A1P0``$<$```(`````````````````.`2``!M971A+GAM;%!+
+M`0(4`!0`"``(`"Z'/C13=*1I'`<``$X'```8`````````````````$T7``!4
+M:'5M8FYA:6QS+W1H=6UB;F%I;"YP;F=02P$"%``4``@`"``NASXTX**D*T(%
+M```2'0``#`````````````````"O'@``<V5T=&EN9W,N>&UL4$L!`A0`%``(
+M``@`+H<^-!^VIJY!`0``4`0``!4`````````````````*R0``$U%5$$M24Y&
+C+VUA;FEF97-T+GAM;%!+!08`````"0`)`!@"``"O)0``````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/templates/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/templates/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = templates
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = ${wildcard *.ott}
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  templates/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  templates/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/install-sh
+++ openoffice.org-2.4.1/ooo-build/install-sh
@@ -0,0 +1,519 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2006-12-25.00
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+	shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
+
+    -o) chowncmd="$chownprog $2"
+	shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+	shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)	shift
+	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call `install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names starting with `-'.
+  case $src in
+    -*) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+
+    dst=$dst_arg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst;;
+    esac
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+	echo "$0: $dst_arg: Is a directory" >&2
+	exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+	/*) prefix='/';;
+	-*) prefix='./';;
+	*)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
--- openoffice.org-2.4.1.orig/ooo-build/download.in
+++ openoffice.org-2.4.1/ooo-build/download.in
@@ -0,0 +1,322 @@
+#!/usr/bin/perl -w
+
+sub webget($$)
+{
+    my ($src, $dest) = @_;
+
+    print "Get $src -> $dest\n";
+    system ("cd $dest ; $WGET \"$src\"") != 0 && die "Failed fetch";
+}
+
+sub usage {
+    print STDERR "\ndownload\n";
+    print STDERR "Syntax:  download [--all] [--help]\n\n";
+    print STDERR "  --all  downloads all the OOo source packges\n\n";
+    print STDERR "download's behavior is coded by your configure options eg.\n";
+    print STDERR "if you configure with --with-system-gcc it will not download\n";
+    print STDERR "gcc & binutils\n";
+};
+
+
+%SRC_URLS = (
+    'http:\/\/.*'                        => '',
+    'binutils-.*'			 => '@MIRROR@/support',
+    'gcc-.*'			 	 => '@MIRROR@/support',
+    'dev300-m.*'			 => '@MIRROR@/DEV300',
+    'src680-m.*'			 => '@MIRROR@/SRC680',
+    'ooa680-m.*'			 => '@MIRROR@/OOA680',
+    'oob680-m.*'			 => '@MIRROR@/OOB680',
+    'ooc680-m.*'			 => '@MIRROR@/OOC680',
+    'ood680-m.*'			 => '@MIRROR@/OOD680',
+    'ooe680-m.*'			 => '@MIRROR@/OOE680',
+    'oof680-m.*'			 => '@MIRROR@/OOF680',
+    'oog680-m.*'			 => '@MIRROR@/OOG680',
+    'ooh680-m.*'			 => '@MIRROR@/OOH680',
+    'ooo680-m.*'			 => '@MIRROR@/OOO680',
+    'OOO_2_0_2.*'			 => '@MIRROR@/OOB680',
+    'OOO_2_0_3.*'                        => '@MIRROR@/OOC680',
+    'OOO_2_0_4.*'                        => '@MIRROR@/OOD680',
+    'images_gnome-.*'                    => '@MIRROR@/SRC680',
+    'images_kde-.*'                      => '@MIRROR@/SRC680',
+    'extras-.*'				 => '@MIRROR@/SRC680',
+    'ooo_custom_images.*'                => '@MIRROR@/SRC680',
+    'ooo_crystal_images.*'               => '@MIRROR@/SRC680',
+    'oox.*'                              => '@MIRROR@/SRC680',
+    'writerfilter.*'                     => '@MIRROR@/SRC680',
+    'cli_types.*'                        => '@MIRROR@/@MWS@',
+    'mdbtools.*'                         => '@MIRROR@/SRC680',
+    'libpixman-.*'			 => '@MIRROR@/SRC680',
+    'glitz-.*'			         => '@MIRROR@/SRC680',
+    'biblio.*'				 => '@MIRROR@/SRC680',
+# CalcSolver bits
+    'lp_solve_.*'			 => '@MIRROR@/SRC680',
+# Graphite rendering bits
+    'silgraphite-.*'                     => '@MIRROR@/SRC680',
+# Prebuilt dictionaries for Novell Windows builds
+    'writingaids.*\.zip'                 => '@MIRROR@/SRC680',
+# Win32 bits:
+    'unicows\.exe'			 => 'http://download.microsoft.com/download/b/7/5/b75eace3-00e2-4aa0-9a6f-0b6882c71642',
+    # from http://www.microsoft.com/downloads/release.asp?releaseid=30682'
+    'dbghinst\.EXE'			 => 'http://download.microsoft.com/download/platformsdk/Redist/5.0.2195.1/W9XNT4/EN-US',
+    '5_11_98Odma20\.zip'		 => '@MIRROR@/support',
+    'openclipart-.*'			 => 'http://www.openclipart.org/downloads/@OPENCLIPART_VER@',
+#Update fonts:
+    'dejavu-fonts-ttf-.*'		 => '@MIRROR@/SRC680',
+    'liberation-fonts-ttf-.*'		 => '@MIRROR@/SRC680',
+# Win32 ant binaries ...
+    'apache-ant-.*'                      => 'http://archive.apache.org/dist/ant/binaries',
+# Mozilla source and libraries
+    'mozilla-source-1\.7\.5.*'		 => 'http://download.go-oo.org/src/',
+    'glib-1\.2\..*'                      => 'http://ftp.gtk.org/pub/gtk/v1.2/',
+    'libIDL-.*'                          => 'http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/source/',
+    'wintools\.zip'                      => 'http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/',
+# SDK bits
+    'unowinreg\.dll'                     => 'http://tools.openoffice.org/unowinreg_prebuild/680/',
+# Windows .ico icons
+    'ooo-windows-icons-.*'               => '@MIRROR@/SRC680',
+# Updated libwpd
+    'libwpd-*'                           => '@MIRROR@/libwpd',
+# MS Works importer bits
+    'libwps-*'                           => '@MIRROR@/SRC680',
+# WPG importer bits
+    'libwpg-*'                           => '@MIRROR@/SRC680',
+# cairo sources
+    'cairo-.*'			         => 'http://cairographics.org/releases/',
+# OxygenOffice extras
+    'OOOP-.*\.zip'                 	 => 'http://kent.dl.sf.net/sourceforge/ooop/'
+);
+
+if ( '@UPSTREAM_NAME@' ne '' ) {
+    $SRC_URLS{'@UPSTREAM_NAME@.*'} = '@MIRROR@/upstream-copy';
+}
+
+$WGET='@WGET@';
+
+sub source_file($)
+{
+    my ($upstream_what) = @_;
+    my $what = $upstream_what;
+
+    if ( "$upstream_what" eq "l10n" ) {
+        $what = "lang";
+    }
+    elsif ( "$upstream_what" eq "sdk" ) {
+        $what = "sdk_oo";
+    }
+
+    my $tag = '@CVSTAG@';
+    if ( '@UPSTREAM_SOURCE@' eq "YES" ) {
+        return '@UPSTREAM_URI@' . "&lang=$upstream_what";
+    }
+    elsif ( '@UPSTREAM_SOURCE@' eq "MIRROR" ) {
+        return '@UPSTREAM_NAME@' . '_' . $upstream_what . '.tar.bz2';
+    }
+    else {
+        return '@CVSTAG@' . '-' . $what . '.tar.bz2';
+    }
+}
+
+sub download_files($$$)
+{
+    my ($files, $locations, $dest) = @_;
+
+    for my $file ( @{$files} ) {
+        if ( $file ne '' ) {
+            my $to_check = "$dest/$file";
+            if ( '@UPSTREAM_SOURCE@' eq "YES" ) {
+                if ( $file =~ /^.*=([^=]*)/ ) {
+                    $to_check = "$dest/" . '@UPSTREAM_NAME@' . '_' .  $1 . '.tar.bz2';
+                }
+            }
+
+            if ( -f "$to_check" ) {
+                print "Skipping $file\n";
+	    } elsif ( defined $ENV{'DOWNLOADCACHE'} &&
+		      -f "$ENV{'DOWNLOADCACHE'}/$file" ) {
+		print "Using cached $file\n";
+		system ("cp $ENV{'DOWNLOADCACHE'}/$file $to_check");
+            } else {
+                print "No file $to_check\n";
+                my $location = 'NOT_FOUND';
+                for $regexp (keys %{$locations}) {
+                    if ($file =~ m/^$regexp/) {
+                        $location = $locations->{$regexp};
+                        last;
+                    }
+                }
+
+                my $to_get = $location."/$file";
+                $location eq 'NOT_FOUND' && die "Can't find '$file' to download";
+                if ( $location eq '' ) {
+                    $to_get = $file;
+                }
+
+                webget( $to_get, $dest );
+            }
+        }
+    }
+}
+
+if (!-d "@SRCDIR@") {
+    `mkdir -p @SRCDIR@`;
+}
+
+# Files to download
+@files = ();
+
+my $download_all = 0;
+
+while ($arg = shift @ARGV) {
+    if ( $arg eq '--help' ) {
+        &usage and exit(0);
+    }
+    elsif ( $arg eq '--all' ) {
+        $download_all = 1;
+    }
+}
+
+# Defaults
+print "Downloading files for @CVSTAG@\n";
+
+-x $WGET || die "Can't find wget - install it and try again\n";
+
+if ('@SYSTEM_GCC@' eq '') {
+    push @files, ( 'gcc-3.4.1.tar.bz2', 'gcc-3.4.1-Enums.diff', 'gcc-3.4.1-VisibilityPatch2.diff' );
+}
+
+if ($download_all || '@BUILD_WIN32@' ne '') 
+{
+    push @files, ( source_file( "system" ) );
+}
+
+# Misc. bits for Win32
+if ('@BUILD_WIN32@' ne '') 
+{
+    push @files, ( 'unicows.exe', 'dbghinst.EXE' );
+#    push @files, ( '5_11_98Odma20.zip' ); # - ODMA - for when it works.
+    push @files, ( "apache-ant-1.6.5-bin.tar.gz" );
+    push @files, ( '@BUILD_MOZILLA_SOURCE@' );
+    push @files, ( 'glib-1.2.10.tar.gz' );
+    push @files, ( 'libIDL-0.6.8.tar.gz' );
+# this contains binaries and source, we just use the source
+    push @files, ( 'wintools.zip' );
+    # Icons
+    push @files, ( 'ooo-windows-icons-0.1.tar.bz2' ) if '@DISTRO@' =~ m/NovellWin32|GoOoWin32/;
+}
+else
+{
+    if ('@ENABLE_MONO@' ne 'FALSE') {
+	push @files, ( 'cli_types.dll' );
+	push @files, ( 'cli_types_bridgetest.dll' );
+    }
+}
+
+# Prebuilt dictionaries
+push @files, ( 'writingaids-@PREBUILT_WRITINGAIDS_TIMESTAMP@.zip' ) if '@DISTRO@' =~ m/NovellWin32|GoOoWin32|OxygenOfficeLinux|OxygenOfficeWindows/;
+push @files, ( 'writingaids-doc-@PREBUILT_WRITINGAIDS_TIMESTAMP@.zip' ) if '@DISTRO@' =~ m/NovellWin32|GoOoWin32|OxygenOfficeLinux|OxygenOfficeWindows/;
+
+if ('@CAIRO_ENABLED@' eq 'TRUE' && '@SYSTEM_CAIRO@' ne 'TRUE') {
+    push @files, ( 'cairo-@CAIRO_VER@.tar.gz' );
+}
+
+if ('@OPENCLIPART_VER@' ne '') {
+    push @files, ( 'openclipart-@OPENCLIPART_VER@.tar.bz2' );
+}
+
+if ('@DEJAVU_FONTS_VER@' ne '') {
+    push @files, ( '@DEJAVU_FONTS_PACK_NAME@.zip' );
+}
+
+if ('@LIBERATION_FONTS_VER@' ne '') {
+    push @files, ( 'liberation-fonts-ttf-@LIBERATION_FONTS_VER@.zip' );
+}
+
+if ('@MDBTOOLS_SRC@' ne '') {
+    push @files, ( '@MDBTOOLS_SRC@' );
+}
+
+push @files, ( source_file( "core" ) );
+push @files, ( '@OOO_CUSTOM_IMAGES@') if '@OOO_CUSTOM_IMAGES@';
+push @files, ( '@OOO_EXTRA_ARTWORK@' ) if '@OOO_EXTRA_ARTWORK@';
+# Temporary utf-8ization of bibliograpy bits
+push @files, ( "biblio.tar.bz2" );
+
+if ($download_all || '@ENABLE_BINFILTER@' eq 'TRUE') {
+    push @files, ( source_file( "binfilter" ) );
+}
+
+if ('@USE_PREBUILD_UNOWINREG_DLL@' eq 'YES') {
+    push @files, ( "unowinreg.dll" );
+}
+
+if ($download_all || '@OOO_LANGS@' ne 'en-US' || '@BUILD_WIN32@' ne '' ) {
+    push @files, ( source_file( "l10n" ) );
+}
+
+if ('@GRAPHITE_SRC@' ne '') {
+    push @files, ( '@GRAPHITE_SRC@' );
+}
+
+if ('true' ne '') {
+   push @files, ( 'lp_solve_5.5.0.10_source.tar.gz' );
+}
+
+if ('@SYSTEM_LIBWPD@' eq 'NO') {
+   push @files, ( 'libwpd-0.8.14.tar.gz' );
+}
+
+if ('@SYSTEM_LIBWPS@' eq 'NO') {
+   push @files, ( 'libwps-0.1.2.tar.gz' );
+}
+
+if ('@SYSTEM_LIBWPG@' eq 'NO') {
+   push @files, ( 'libwpg-0.1.2.tar.gz' );
+}
+
+if ('@OOOP_FONTS_PACK@' ne '') {
+    push @files, ( '@OOOP_FONTS_PACK@' );
+}
+
+if ('@OOOP_GALLERY_PACK@' ne '') {
+    push @files, ( '@OOOP_GALLERY_PACK@' );
+}
+
+if ('@OOOP_SAMPLES_PACK@' ne '') {
+    push @files, ( '@OOOP_SAMPLES_PACK@' );
+}
+
+if ('@OOOP_TEMPLATES_PACK@' ne '') {
+    push @files, ( '@OOOP_TEMPLATES_PACK@' );
+}
+
+push @files, ( '@OOX_MODULE_TARBALL@' );
+
+push @files, ( '@WRITERFILTER_MODULE_TARBALL@' );
+
+my $distro = '@DISTRO@';
+if ($distro eq 'Ark' ||
+    $distro eq 'DroplineGNOME' ||
+    $distro eq 'Frugalware' || $distro eq 'Frugalware64' ||
+    $distro eq 'Gentoo.conf' ||
+    $distro eq 'openmamba' ||
+    $distro eq 'SUSE-9.1' || $distro eq 'SUSE-9.2' || $distro eq 'SUSE-9.3' ||
+    $distro eq 'OxygenOfficeLinux' || $distro eq 'OxygenOfficeWindows' || 
+    $distro eq 'translate-org-za-linux' || $distro eq 'translate-org-za-win32' || $distro eq 'Pardus') {
+    push @files, ( source_file( "system" ) );
+}
+
+if ($download_all ||
+    $distro =~ m/Debian/ ||
+    $distro =~ m/Ubuntu/ ||
+    $distro eq 'OxygenOfficeLinux' || $distro eq 'OxygenOfficeWindows' || 
+    '@BUILD_WIN32@' ne '') {
+    push @files, ( source_file( "sdk" ) );
+}
+
+download_files (\@files, \%SRC_URLS, '@SRCDIR@');
+
+open (FILELIST, ">download.list");
+print FILELIST join ("\n", @files);
+print FILELIST "\n";
+
+print "Done\n";
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuL10n.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuL10n.conf.in
@@ -0,0 +1,21 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-qadevooo
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/NovellWin32.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/NovellWin32.conf.in
@@ -0,0 +1,5 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_nld.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_nld.bmp\"
+--with-vendor=\"Novell, Inc.\"
+--disable-activex-component
+--disable-xrender-link
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-10.0.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-10.0.conf.in
@@ -0,0 +1,22 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-cairo
+--disable-dbus
+--disable-gstreamer
+--disable-odk
+--enable-gnome-vfs
+--enable-libsn
+--enable-lockdown
+--enable-mono
+--enable-quickstart
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr
+--with-jdk-home=$JAVA_HOME
+--with-system-curl
+--with-system-expat
+--with-system-libxslt
+--with-system-mozilla=mozilla
+--with-system-neon
+--with-system-odbc-headers
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Frugalware.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Frugalware.conf.in
@@ -0,0 +1,31 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_fw.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_fw.bmp\"
+--with-vendor=\"Frugalware Linux\"
+--with-system-curl
+--with-system-expat
+--with-system-neon
+--with-system-sndfile
+--with-system-boost
+--with-system-hunspell
+--with-system-odbc-headers
+--with-system-nas
+--with-system-freetype
+--with-system-xalan
+--with-serializer-jar=/usr/share/java/serializer.jar
+--with-system-xerces
+--with-system-xml-apis
+--with-jdk-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0
+--enable-libsn
+--enable-kde
+--enable-crashdump=yes
+--enable-symbols
+--enable-cairo
+--enable-xsltproc
+--disable-rpath
+--disable-odk
+--disable-qadevooo
+--enable-gcjaot
+--with-system-libxslt
+--with-system-libwpd
+--without-fonts
+--with-system-mozilla=firefox
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.conf.in)
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/rpl2.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/rpl2.conf.in
@@ -0,0 +1,29 @@
+--disable-epm
+--disable-fontooo
+--disable-odk
+--disable-post-install-scripts
+--disable-qadevooo
+--disable-quickstart
+--disable-strip
+--disable-strip-solver
+--enable-cairo
+--enable-libart
+--enable-libsn
+--enable-mono
+--enable-symbols
+--with-dict=ALL
+--with-lang=ALL
+--with-num-cpus=4
+--with-openldap
+--without-fonts
+--without-system-altlinuxhyph
+--without-system-beanshell
+--with-system-boost
+--with-system-jars
+--with-system-libs
+--with-system-mozilla
+--with-system-odbc-headers
+--with-system-sane-header
+--with-system-xrender-headers
+--with-vendor=\"rPath Inc.\"
+--with-xulrunner
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Ubuntu.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Ubuntu.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-10.1.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-10.1.conf.in
@@ -0,0 +1,23 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-odk
+--enable-gnome-vfs
+--enable-libsn
+--enable-lockdown
+--enable-mono
+--enable-quickstart
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr
+--with-jdk-home=$JAVA_HOME
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--with-system-expat
+--with-system-libxslt
+--with-system-mozilla=xulrunner
+--with-system-neon
+--with-system-odbc-headers
+--with-xulrunner
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-9.3.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-9.3.conf.in
@@ -0,0 +1,19 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-cairo
+--disable-dbus
+--disable-gstreamer
+--disable-odk
+--enable-gnome-vfs
+--enable-libsn
+--enable-lockdown
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr
+--with-jdk-home=$JAVA_HOME
+--with-system-curl
+--with-system-expat
+--with-system-libxslt
+--with-system-neon
+--with-system-odbc-headers
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Ark.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Ark.conf.in
@@ -0,0 +1,40 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_ark.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_ark.png\"
+--with-vendor=\"the Ark Linux team\"
+--with-system-stdlibs
+--with-system-openssl
+--with-system-zlib
+--with-system-jpeg
+--with-system-freetype
+--with-system-libxml
+--with-system-python
+--with-system-icu
+--with-system-xerces
+--with-system-xalan
+--with-system-libxslt
+--with-system-boost
+--with-system-portaudio
+--with-system-agg
+--with-system-hunspell
+--with-system-curl
+--with-system-expat
+--with-system-libwpd
+--with-system-odbc-headers
+--with-system-xrender-headers
+--with-system-sane-header
+--with-system-sndfile
+--with-system-db
+--with-system-neon
+--with-java=gij
+--disable-gnome-vfs
+--enable-pam-link
+--enable-xrender-link
+--with-vba-package-format=builtin
+--with-system-agg
+--with-serializer-jar=/usr/share/java/serializer.jar
+--with-system-mozilla=firefox
+--disable-cairo
+--disable-dbus
+--enable-kde
+--disable-Xaw
+--enable-gcjaot
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Mandriva64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Mandriva64.conf.in
@@ -0,0 +1,12 @@
+--enable-gnome-vfs
+--without-myspell-dicts
+--with-system-curl
+--with-system-expat
+--with-system-neon
+--with-system-odbc-headers
+--with-system-sndfile
+--with-system-portaudio
+--enable-libsn
+--enable-symbols
+--with-firefox
+--disable-odk
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Ubuntu64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Ubuntu64.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/NovellWin32ISO.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/NovellWin32ISO.conf.in
@@ -0,0 +1,4 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_nld.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_nld.bmp\"
+--with-vendor=\"Novell, Inc.\"
+--disable-activex-component
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/DroplineGNOME64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/DroplineGNOME64.conf.in
@@ -0,0 +1,21 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_dlg.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_dlg.bmp\"
+--with-vendor=\"Dropline\ GNOME\"
+--with-gcc-speedup=ccache
+--disable-kde
+--with-openclipart=/usr/share/openclipart
+
+--with-java
+--with-jdk-home=/usr/lib64/java
+--with-ant=/usr/share/ant
+--enable-bonobo
+--enable-gnome-vfs
+--enable-mono
+--enable-cairo
+--enable-access
+--with-x
+--enable-libart
+--enable-libsn
+--with-system-expat
+--with-system-sane-header
+--with-system-curl
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuEdgy64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuEdgy64.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/GoOoWin32.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/GoOoWin32.conf.in
@@ -0,0 +1,6 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_go-oo.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_go-oo.bmp\"
+--with-vendor=\"Novell, Inc.\"
+--disable-activex-component
+--without-agfa-monotype-fonts
+--disable-xrender-link
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Pardus2007.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Pardus2007.conf.in
@@ -0,0 +1,26 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_pardus.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_pardus.bmp\"
+--with-vendor=\"Pardus\"
+--with-system-curl
+--with-system-expat
+--with-system-sndfile
+--with-system-agg
+--with-system-expat
+--with-system-libxslt
+--with-system-jpeg
+--with-system-icu
+--with-system-boost
+--with-system-libwpd
+--with-system-libwpg
+--with-system-mozilla=firefox
+--with-ant-home=/usr/share/ant-core
+--with-jdk-home=/opt/sun-jdk
+--with-system-odbc-headers
+--with-system-db
+--without-nas
+--with-dict=ALL
+--disable-fontooo
+--disable-rpath
+--disable-odk
+--disable-qadevooo
+--disable-gnome-vfs
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Mandriva.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Mandriva.conf.in
@@ -0,0 +1,12 @@
+--enable-gnome-vfs
+--without-myspell-dicts
+--with-system-curl
+--with-system-expat
+--with-system-neon
+--with-system-nas
+--with-system-odbc-headers
+--with-system-sndfile
+--with-system-portaudio
+--enable-libsn
+--with-system-mozilla=firefox
+--disable-odk
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuEdgy.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuEdgy.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE.conf.in
@@ -0,0 +1,34 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-odk
+--disable-qadevooo
+--enable-libsn
+--enable-lockdown
+--enable-mono
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr/share/ant
+--without-stlport
+--with-java-target-version=1.5
+--with-jdk-home=$JAVA_HOME
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--with-system-expat
+--with-system-hunspell
+--with-system-icu
+--with-system-libwpd
+--with-system-libwpg
+--with-system-libwps
+--with-system-libxslt
+--with-system-mozilla=xulrunner
+--with-system-neon
+--with-system-odbc-headers
+--with-system-sablot
+--with-system-xalan
+--with-system-xerces
+--with-system-xml-apis
+--with-system-xrender-headers
+--with-xulrunner
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuGutsy.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuGutsy.conf.in
@@ -0,0 +1,19 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/OxygenOfficeLinux.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/OxygenOfficeLinux.conf.in
@@ -0,0 +1,43 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_ooop.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_ooop.bmp\"
+--with-vendor=\"OxygenOffice Professional Team\"
+--with-build-version=\"OxygenOffice Professional 2.4.1 M17 - OxygenOffice Build 25\"
+--enable-binfilter
+--with-vba-package-format=builtin
+--enable-vba
+--enable-build-mozilla
+--without-system-mozilla
+--with-package-format=\"rpm deb\"
+--enable-epm
+--enable-fontooo
+--enable-cups
+--disable-symbols
+--enable-systray
+--with-epm=internal
+--enable-kde
+--enable-gtk
+--enable-evolution2
+--enable-lockdown
+--enable-cairo
+--without-unix-wrapper
+--with-fonts
+--with-extra-gallery
+--with-extra-template
+--with-extra-sample
+--with-extra-font
+--with-extra-accessory
+--with-lang=\"en-US hu de fr it tr ka fi pl nl pt-BR es ja zh-CN sv cs-CZ\"
+--enable-opengl
+--enable-dbus
+--enable-gnome-vfs
+--enable-sdext
+--enable-ogltrans
+--enable-mono
+--enable-reportdesign
+--enable-neon
+--without-system-stdlibs
+--with-system-nas
+--with-system-freetype
+--with-jdk-home=/usr/local/jdk1.5.0_15/
+
+
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuDapper.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuDapper.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Pardus2008.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Pardus2008.conf.in
@@ -0,0 +1,28 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_pardus.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_pardus.bmp\"
+--with-vendor=\"Pardus\"
+--with-system-curl
+--with-system-expat
+--with-system-agg
+--with-system-expat
+--with-system-libxslt
+--with-system-jpeg
+--with-system-icu
+--with-system-boost
+--with-system-libwpd
+--with-system-libwpg
+--with-system-neon
+--with-system-mozilla=firefox
+--with-ant-home=/usr/share/ant-core
+--with-jdk-home=/opt/sun-jdk
+--with-system-hsqldb
+--with-hsqldb-jar=/usr/share/java/hsqldb.jar
+--with-system-odbc-headers
+--with-system-db
+--without-nas
+--with-dict=ALL
+--disable-fontooo
+--disable-rpath
+--disable-odk
+--disable-qadevooo
+--disable-gnome-vfs
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/rpl2-64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/rpl2-64.conf.in
@@ -0,0 +1,29 @@
+--disable-epm
+--disable-fontooo
+--disable-odk
+--disable-post-install-scripts
+--disable-qadevooo
+--disable-quickstart
+--disable-strip
+--disable-strip-solver
+--enable-cairo
+--enable-libart
+--enable-libsn
+--enable-mono
+--enable-symbols
+--with-dict=ALL
+--with-lang=ALL
+--with-num-cpus=4
+--with-openldap
+--without-fonts
+--without-system-altlinuxhyph
+--without-system-beanshell
+--with-system-boost
+--with-system-jars
+--with-system-libs
+--with-system-mozilla
+--with-system-odbc-headers
+--with-system-sane-header
+--with-system-xrender-headers
+--with-vendor=\"rPath Inc.\"
+--with-xulrunner
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-9.1.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-9.1.conf.in
@@ -0,0 +1,18 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-cairo
+--disable-gstreamer
+--disable-odk
+--enable-gnome-vfs
+--enable-libsn
+--enable-lockdown
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr/share/ant
+--with-jdk-home=$JAVA_HOME
+--with-system-curl
+--with-system-expat
+--with-system-libxslt
+--with-system-neon
+--with-system-odbc-headers
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/GoOoLinux.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/GoOoLinux.conf.in
@@ -0,0 +1,37 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_go-oo.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_go-oo.bmp\"
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--enable-cairo
+--without-system-cairo
+--enable-gstreamer
+--enable-odk
+--enable-binfilter
+--enable-gnome-vfs
+--disable-libsn
+--enable-lockdown
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr/share/ant
+--with-java-target-version=1.4
+--with-jdk-home=$JAVA_HOME
+--without-myspell-dicts
+--enable-epm
+--enable-kde
+--without-system-mozilla
+--without-system-freetype
+--without-system-jpeg
+--without-system-libxml
+--without-system-libxslt
+--without-system-python
+--without-system-zlib
+--without-system-jars
+--without-system-stdlibs
+--disable-crypt-link
+--disable-pam-link
+--disable-xrender-link
+--without-openldap
+--without-system-xrender-headers
+--without-system-mesa-headers
+--without-unix-wrapper
+
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/CommonLinux.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/CommonLinux.conf.in
@@ -0,0 +1,19 @@
+--disable-epm
+--with-openldap
+--with-build-version=\"Build @OOO_BUILDVERSION@\"
+--without-fonts
+--with-system-freetype
+--with-system-gcc
+--with-system-jpeg
+--with-system-libxml
+--with-system-mozilla
+--with-system-openssl
+--with-system-python
+--with-system-stdlibs
+--with-system-zlib
+--with-unix-wrapper=ooffice@OOO_BINSUFFIX@
+--enable-evolution2
+--enable-atkbridge
+--with-alloc=system
+--with-vba-package-format=builtin
+@CAIRO_CONFIGURE_FLAG@
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuHardy64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuHardy64.conf.in
@@ -0,0 +1,19 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-10.3.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-10.3.conf.in
@@ -0,0 +1,29 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-odk
+--disable-qadevooo
+--enable-libsn
+--enable-lockdown
+--enable-mono
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr/share/ant
+--with-java-target-version=1.4
+--with-jdk-home=$JAVA_HOME
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--without-system-icu
+--with-system-expat
+--with-system-libxslt
+--with-system-mozilla=xulrunner
+--with-system-neon
+--with-system-odbc-headers
+--with-system-sablot
+--with-system-xalan
+--with-system-xerces
+--with-system-xml-apis
+--with-system-xrender-headers
+--with-xulrunner
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuDapper64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuDapper64.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/translate-org-za-win32.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/translate-org-za-win32.conf.in
@@ -0,0 +1,4 @@
+--enable-libsn
+--disable-odk
+--with-dict=ENUS,ENZA,AFZA,TNZA,XHZA,ZUZA
+--with-dejavu-fonts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-9.2.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-9.2.conf.in
@@ -0,0 +1,18 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-cairo
+--disable-gstreamer
+--disable-odk
+--enable-gnome-vfs
+--enable-libsn
+--enable-lockdown
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr
+--with-jdk-home=$JAVA_HOME
+--with-system-curl
+--with-system-expat
+--with-system-libxslt
+--with-system-neon
+--with-system-odbc-headers
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/OxygenOfficeWindows.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/OxygenOfficeWindows.conf.in
@@ -0,0 +1,20 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_ooop.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_ooop.bmp\"
+--with-vendor=\"OxygenOffice Professional Team\"
+--with-build-version=\"OxygenOffice Professional 2.4.1 M17 - OxygenOffice Build 25\"
+--enable-binfilter
+--with-vba-package-format=builtin
+--enable-vba
+--disable-build-mozilla
+--enable-fontooo
+--enable-systray
+--with-fonts
+--with-extra-gallery
+--with-extra-template
+--with-extra-sample
+--with-extra-font
+--with-extra-accessory
+--with-lang=\"hu de fr it tr ka fi pl nl pt-BR es ja zh-CN sv cs-CZ\"
+--enable-sdext
+--enable-reportdesign
+--enable-cairo
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-10.2.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-10.2.conf.in
@@ -0,0 +1,25 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-odk
+--disable-qadevooo
+--enable-libsn
+--enable-lockdown
+--enable-mono
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr/share/ant
+--with-jdk-home=$JAVA_HOME
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--with-system-expat
+--with-system-libxslt
+--with-system-mozilla=xulrunner
+--with-system-neon
+--with-system-odbc-headers
+--with-system-sablot
+--with-system-xerces
+--with-system-xml-apis
+--with-xulrunner
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuFeisty.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuFeisty.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/CommonWin32.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/CommonWin32.conf.in
@@ -0,0 +1,4 @@
+--with-ant-home=$BUILDDIR/apache-ant-1.6.5
+--with-build-version=\"Build `date +%Y-%m-%d`\"
+--enable-build-mozilla
+--with-vba-package-format=builtin
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/DebianEtch.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/DebianEtch.conf.in
@@ -0,0 +1,19 @@
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuGutsy64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuGutsy64.conf.in
@@ -0,0 +1,19 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/DebianSarge.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/DebianSarge.conf.in
@@ -0,0 +1,19 @@
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/DroplineGNOME.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/DroplineGNOME.conf.in
@@ -0,0 +1,29 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_dlg.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_dlg.bmp\"
+--with-vendor=\"Dropline\ GNOME\"
+--with-gcc-speedup=ccache
+--disable-kde
+--with-openclipart=/usr/share/openclipart
+
+--with-java
+--with-jdk-home=/usr/lib/java
+--with-ant=/usr/share/ant
+--enable-bonobo
+--enable-gnome-vfs
+--enable-cairo
+--enable-access
+--with-x
+--enable-libart
+--enable-libsn
+--with-system-expat
+--with-system-sane-header
+--with-system-curl
+--disable-odk
+--disable-mono
+--with-system-libpwd
+--with-system-python
+--enable-openxml
+--with-system-gcc
+--with-system-mozilla=firefox
+--enable-openldap
+
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuFeisty64.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuFeisty64.conf.in
@@ -0,0 +1,20 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/openmamba.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/openmamba.conf.in
@@ -0,0 +1,25 @@
+--disable-qadevooo
+--enable-libart
+--enable-libsn
+--enable-kde
+--enable-pam-link
+--with-python=/usr/bin/python
+--without-nas
+--with-dynamic-xinerama
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--with-db-version='4.2'
+--with-system-expat
+--with-system-freetype
+--with-system-icu
+--with-system-libxslt
+--with-system-mozilla=firefox
+--with-system-neon
+--with-system-odbc-headers
+--with-system-portaudio
+--with-system-sablot
+--with-system-sane-headers
+--with-system-sndfile
+--with-system-xrender-headers
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/UbuntuHardy.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/UbuntuHardy.conf.in
@@ -0,0 +1,19 @@
+--with-vendor=\"Ubuntu\"
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--without-nas
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-pasf
+--with-system-sndfile
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Win32.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Win32.conf.in
@@ -0,0 +1 @@
+--disable-xrender-link
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Solaris.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Solaris.conf.in
@@ -0,0 +1,42 @@
+--with-intro-bitmaps=\"$SRCDIR/openintro_go-oo.bmp\"
+--with-about-bitmaps=\"$SRCDIR/openabout_go-oo.bmp\"
+--with-vendor=\"Novell, Inc.\"
+--with-system-libs
+--disable-access
+--disable-cups
+--disable-pasf
+--enable-cairo
+--enable-gstreamer
+--enable-odk
+--enable-binfilter
+--enable-gnome-vfs
+--disable-libsn
+--enable-lockdown
+--with-java-target-version=1.4
+--without-myspell-dicts
+--enable-epm
+--without-system-mozilla
+--without-system-jars
+--disable-crypt-link
+--disable-pam-link
+--disable-xrender-link
+--without-openldap
+--without-system-xrender-headers
+--without-system-mesa-headers
+--without-system-expat
+--without-system-libwpd
+--without-system-libwpg
+--without-system-libwps
+--without-system-libsvg
+--without-system-db
+--without-system-curl
+--without-system-mspack
+--without-system-icu
+--without-nas
+--disable-kde
+--with-ant-home=/opt/apache-ant-1.7.0/
+--with-jdk-home=/usr/jdk/jdk1.5.0_12
+--disable-scsolver
+--without-unix-wrapper
+--enable-opengl
+--enable-ogltrans
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-11.0.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-11.0.conf.in
@@ -0,0 +1,34 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-odk
+--disable-qadevooo
+--enable-libsn
+--enable-lockdown
+--enable-mono
+--enable-opengl
+--enable-ogltrans
+--with-ant-home=/usr/share/ant
+--without-stlport
+--with-java-target-version=1.5
+--with-jdk-home=$JAVA_HOME
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--with-system-expat
+--with-system-hunspell
+--with-system-icu
+--with-system-libwpd
+--with-system-libwpg
+--with-system-libwps
+--with-system-libxslt
+--with-system-mozilla=xulrunner
+--with-system-neon
+--with-system-odbc-headers
+--with-system-sablot
+--with-system-xalan
+--with-system-xerces
+--with-system-xml-apis
+--with-system-xrender-headers
+--with-xulrunner
+--without-myspell-dicts
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/SUSE-reduced.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/SUSE-reduced.conf.in
@@ -0,0 +1,45 @@
+--with-vendor=\"Novell, Inc.\"
+--disable-access
+--disable-odk
+--disable-qadevooo
+--with-system-boost
+--with-system-cairo
+--with-system-curl
+--with-system-db
+--with-system-icu
+--with-system-expat
+--with-system-libxslt
+--with-system-neon
+--with-system-odbc-headers
+--with-system-portaudio
+--with-system-sablot
+--with-system-sndfile
+--with-system-xalan
+--with-system-xerces
+--with-system-xml-apis
+--with-system-xrender-headers
+--without-myspell-dicts
+
+--disable-access
+--disable-binfilter
+--disable-cairo
+--disable-evolution2
+--disable-fontooo
+--disable-gnome-vfs
+--disable-gstreamer
+--disable-ldap
+--disable-libsn
+--disable-lockdown
+--disable-mathmldtd
+--disable-mono
+--disable-mozilla
+--disable-neon
+--disable-odk
+--disable-pam
+--disable-pasf
+--disable-qadevooo
+--disable-vba
+--disable-Xaw
+
+--without-agg
+--without-java
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Common.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Common.conf.in
@@ -0,0 +1,6 @@
+--disable-binfilter
+--disable-crashdump
+--with-lang=\"@OOO_LANGS@\"
+--with-use-shell=bash
+--without-gpc
+--without-agg
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Gentoo.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Gentoo.conf.in
@@ -0,0 +1,20 @@
+--disable-fontooo
+--disable-qadevooo
+--enable-libsn
+--enable-ogltrans
+--enable-xsltproc
+--with-dynamic-xinerama
+--with-system-boost
+--with-system-curl
+--with-system-db
+--with-system-expat
+--with-system-icu
+--with-system-libxslt
+--with-system-vigra
+--with-system-xmlsec
+--with-system-xrender-headers
+--without-nas
+--without-myspell-dicts
+--without-stlport
+--with-vendor=\"Gentoo Foundation\"
+
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/translate-org-za-linux.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/translate-org-za-linux.conf.in
@@ -0,0 +1,11 @@
+--enable-libsn
+--enable-lockdown
+--disable-odk
+--with-dict=ENUS,ENZA,AFZA,TNZA,XHZA,ZUZA
+--with-dejavu-fonts
+--with-system-curl
+--with-system-neon
+--with-system-odbc-headers
+--with-system-sndfile
+--with-system-xrender
+--with-system-xrender-headers
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Debian.conf.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Debian.conf.in
@@ -0,0 +1,16 @@
+--without-myspell-dicts
+--enable-libsn
+--disable-fontooo
+--with-system-expat
+--with-system-odbc-headers
+--with-system-curl
+--with-system-sane-header
+--with-system-xrender-headers
+--enable-gnome-vfs
+--enable-symbols
+--with-system-db
+--enable-crypt-link
+--enable-pam-link
+--with-dynamic-xinerama
+--enable-xsltproc
+--disable-access
--- openoffice.org-2.4.1.orig/ooo-build/distro-configs/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/distro-configs/Makefile.in
@@ -0,0 +1,524 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = distro-configs
+DIST_COMMON = $(srcdir)/Ark.conf.in $(srcdir)/Common.conf.in \
+	$(srcdir)/CommonLinux.conf.in $(srcdir)/CommonWin32.conf.in \
+	$(srcdir)/Debian.conf.in $(srcdir)/DebianEtch.conf.in \
+	$(srcdir)/DebianSarge.conf.in $(srcdir)/DroplineGNOME.conf.in \
+	$(srcdir)/DroplineGNOME64.conf.in $(srcdir)/Frugalware.conf.in \
+	$(srcdir)/Gentoo.conf.in $(srcdir)/GoOoLinux.conf.in \
+	$(srcdir)/GoOoWin32.conf.in $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/Mandriva.conf.in \
+	$(srcdir)/Mandriva64.conf.in $(srcdir)/NovellWin32.conf.in \
+	$(srcdir)/NovellWin32ISO.conf.in \
+	$(srcdir)/OxygenOfficeLinux.conf.in \
+	$(srcdir)/OxygenOfficeWindows.conf.in \
+	$(srcdir)/Pardus2007.conf.in $(srcdir)/Pardus2008.conf.in \
+	$(srcdir)/SUSE-10.0.conf.in $(srcdir)/SUSE-10.1.conf.in \
+	$(srcdir)/SUSE-10.2.conf.in $(srcdir)/SUSE-10.3.conf.in \
+	$(srcdir)/SUSE-11.0.conf.in $(srcdir)/SUSE-9.1.conf.in \
+	$(srcdir)/SUSE-9.2.conf.in $(srcdir)/SUSE-9.3.conf.in \
+	$(srcdir)/SUSE-reduced.conf.in $(srcdir)/SUSE.conf.in \
+	$(srcdir)/Solaris.conf.in $(srcdir)/Ubuntu.conf.in \
+	$(srcdir)/Ubuntu64.conf.in $(srcdir)/UbuntuDapper.conf.in \
+	$(srcdir)/UbuntuDapper64.conf.in $(srcdir)/UbuntuEdgy.conf.in \
+	$(srcdir)/UbuntuEdgy64.conf.in $(srcdir)/UbuntuFeisty.conf.in \
+	$(srcdir)/UbuntuFeisty64.conf.in $(srcdir)/UbuntuGutsy.conf.in \
+	$(srcdir)/UbuntuGutsy64.conf.in $(srcdir)/UbuntuHardy.conf.in \
+	$(srcdir)/UbuntuHardy64.conf.in $(srcdir)/UbuntuL10n.conf.in \
+	$(srcdir)/Win32.conf.in $(srcdir)/openmamba.conf.in \
+	$(srcdir)/rpl2-64.conf.in $(srcdir)/rpl2.conf.in \
+	$(srcdir)/translate-org-za-linux.conf.in \
+	$(srcdir)/translate-org-za-win32.conf.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES = Ark.conf Common.conf CommonLinux.conf \
+	CommonWin32.conf GoOoWin32.conf DroplineGNOME.conf \
+	DroplineGNOME64.conf Debian.conf DebianEtch.conf \
+	DebianSarge.conf OxygenOfficeLinux.conf \
+	OxygenOfficeWindows.conf Ubuntu.conf UbuntuL10n.conf \
+	Ubuntu64.conf UbuntuDapper.conf UbuntuDapper64.conf \
+	UbuntuEdgy.conf UbuntuEdgy64.conf UbuntuFeisty.conf \
+	UbuntuFeisty64.conf UbuntuGutsy.conf UbuntuGutsy64.conf \
+	UbuntuHardy.conf UbuntuHardy64.conf SUSE.conf \
+	SUSE-reduced.conf SUSE-9.1.conf SUSE-9.2.conf SUSE-9.3.conf \
+	SUSE-10.0.conf SUSE-10.1.conf SUSE-10.2.conf SUSE-10.3.conf \
+	SUSE-11.0.conf Mandriva.conf Mandriva64.conf NovellWin32.conf \
+	NovellWin32ISO.conf Gentoo.conf Frugalware.conf openmamba.conf \
+	translate-org-za-linux.conf translate-org-za-win32.conf \
+	rpl2.conf rpl2-64.conf Pardus2007.conf Pardus2008.conf \
+	Win32.conf Solaris.conf GoOoLinux.conf
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.conf.in)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  distro-configs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  distro-configs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+Ark.conf: $(top_builddir)/config.status $(srcdir)/Ark.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Common.conf: $(top_builddir)/config.status $(srcdir)/Common.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+CommonLinux.conf: $(top_builddir)/config.status $(srcdir)/CommonLinux.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+CommonWin32.conf: $(top_builddir)/config.status $(srcdir)/CommonWin32.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+GoOoWin32.conf: $(top_builddir)/config.status $(srcdir)/GoOoWin32.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+DroplineGNOME.conf: $(top_builddir)/config.status $(srcdir)/DroplineGNOME.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+DroplineGNOME64.conf: $(top_builddir)/config.status $(srcdir)/DroplineGNOME64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Debian.conf: $(top_builddir)/config.status $(srcdir)/Debian.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+DebianEtch.conf: $(top_builddir)/config.status $(srcdir)/DebianEtch.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+DebianSarge.conf: $(top_builddir)/config.status $(srcdir)/DebianSarge.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+OxygenOfficeLinux.conf: $(top_builddir)/config.status $(srcdir)/OxygenOfficeLinux.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+OxygenOfficeWindows.conf: $(top_builddir)/config.status $(srcdir)/OxygenOfficeWindows.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Ubuntu.conf: $(top_builddir)/config.status $(srcdir)/Ubuntu.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuL10n.conf: $(top_builddir)/config.status $(srcdir)/UbuntuL10n.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Ubuntu64.conf: $(top_builddir)/config.status $(srcdir)/Ubuntu64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuDapper.conf: $(top_builddir)/config.status $(srcdir)/UbuntuDapper.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuDapper64.conf: $(top_builddir)/config.status $(srcdir)/UbuntuDapper64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuEdgy.conf: $(top_builddir)/config.status $(srcdir)/UbuntuEdgy.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuEdgy64.conf: $(top_builddir)/config.status $(srcdir)/UbuntuEdgy64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuFeisty.conf: $(top_builddir)/config.status $(srcdir)/UbuntuFeisty.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuFeisty64.conf: $(top_builddir)/config.status $(srcdir)/UbuntuFeisty64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuGutsy.conf: $(top_builddir)/config.status $(srcdir)/UbuntuGutsy.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuGutsy64.conf: $(top_builddir)/config.status $(srcdir)/UbuntuGutsy64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuHardy.conf: $(top_builddir)/config.status $(srcdir)/UbuntuHardy.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+UbuntuHardy64.conf: $(top_builddir)/config.status $(srcdir)/UbuntuHardy64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE.conf: $(top_builddir)/config.status $(srcdir)/SUSE.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-reduced.conf: $(top_builddir)/config.status $(srcdir)/SUSE-reduced.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-9.1.conf: $(top_builddir)/config.status $(srcdir)/SUSE-9.1.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-9.2.conf: $(top_builddir)/config.status $(srcdir)/SUSE-9.2.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-9.3.conf: $(top_builddir)/config.status $(srcdir)/SUSE-9.3.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-10.0.conf: $(top_builddir)/config.status $(srcdir)/SUSE-10.0.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-10.1.conf: $(top_builddir)/config.status $(srcdir)/SUSE-10.1.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-10.2.conf: $(top_builddir)/config.status $(srcdir)/SUSE-10.2.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-10.3.conf: $(top_builddir)/config.status $(srcdir)/SUSE-10.3.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+SUSE-11.0.conf: $(top_builddir)/config.status $(srcdir)/SUSE-11.0.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Mandriva.conf: $(top_builddir)/config.status $(srcdir)/Mandriva.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Mandriva64.conf: $(top_builddir)/config.status $(srcdir)/Mandriva64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+NovellWin32.conf: $(top_builddir)/config.status $(srcdir)/NovellWin32.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+NovellWin32ISO.conf: $(top_builddir)/config.status $(srcdir)/NovellWin32ISO.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Gentoo.conf: $(top_builddir)/config.status $(srcdir)/Gentoo.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Frugalware.conf: $(top_builddir)/config.status $(srcdir)/Frugalware.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+openmamba.conf: $(top_builddir)/config.status $(srcdir)/openmamba.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+translate-org-za-linux.conf: $(top_builddir)/config.status $(srcdir)/translate-org-za-linux.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+translate-org-za-win32.conf: $(top_builddir)/config.status $(srcdir)/translate-org-za-win32.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+rpl2.conf: $(top_builddir)/config.status $(srcdir)/rpl2.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+rpl2-64.conf: $(top_builddir)/config.status $(srcdir)/rpl2-64.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Pardus2007.conf: $(top_builddir)/config.status $(srcdir)/Pardus2007.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Pardus2008.conf: $(top_builddir)/config.status $(srcdir)/Pardus2008.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Win32.conf: $(top_builddir)/config.status $(srcdir)/Win32.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+Solaris.conf: $(top_builddir)/config.status $(srcdir)/Solaris.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+GoOoLinux.conf: $(top_builddir)/config.status $(srcdir)/GoOoLinux.conf.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/missing
+++ openoffice.org-2.4.1/ooo-build/missing
@@ -0,0 +1,367 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2006-05-10.23
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+#   Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
+  ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case $1 in
+  lex|yacc)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  tar)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $1 in
+  aclocal*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case $f in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' $msg.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f y.tab.h; then
+	echo >y.tab.h
+    fi
+    if test ! -f y.tab.c; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f lex.yy.c; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit 1
+    fi
+    ;;
+
+  makeinfo)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    # The file to touch is that specified with -o ...
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -z "$file"; then
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+    fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
+    touch $file
+    ;;
+
+  tar)
+    shift
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case $firstarg in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case $firstarg in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequisites for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
--- openoffice.org-2.4.1.orig/ooo-build/intltool-merge.in
+++ openoffice.org-2.4.1/ooo-build/intltool-merge.in
@@ -0,0 +1,933 @@
+#!@INTLTOOL_PERL@ -w
+
+#
+#  The Intltool Message Merger
+#
+#  Copyright (C) 2000, 2003 Free Software Foundation.
+#  Copyright (C) 2000, 2001 Eazel, Inc
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License 
+#  version 2 published by the Free Software Foundation.
+#
+#  Intltool is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#  As a special exception to the GNU General Public License, if you
+#  distribute this file as part of a program that contains a
+#  configuration script generated by Autoconf, you may include it under
+#  the same distribution terms that you use for the rest of that program.
+#
+#  Authors:  Maciej Stachowiak <mjs@noisehavoc.org>
+#            Kenneth Christiansen <kenneth@gnu.org>
+#            Darin Adler <darin@bentspoon.com>
+#
+#  Proper XML UTF-8'ification written by Cyrille Chepelov <chepelov@calixo.net>
+#
+
+## Release information
+my $PROGRAM = "intltool-merge";
+my $PACKAGE = "intltool";
+my $VERSION = "0.27.2";
+
+## Loaded modules
+use strict; 
+use Getopt::Long;
+use Text::Wrap;
+
+## Scalars used by the option stuff
+my $HELP_ARG = 0;
+my $VERSION_ARG = 0;
+my $BA_STYLE_ARG = 0;
+my $XML_STYLE_ARG = 0;
+my $KEYS_STYLE_ARG = 0;
+my $DESKTOP_STYLE_ARG = 0;
+my $SCHEMAS_STYLE_ARG = 0;
+my $RFC822DEB_STYLE_ARG = 0;
+my $QUIET_ARG = 0;
+my $PASS_THROUGH_ARG = 0;
+my $UTF8_ARG = 0;
+my $cache_file;
+
+## Handle options
+GetOptions 
+(
+ "help" => \$HELP_ARG,
+ "version" => \$VERSION_ARG,
+ "quiet|q" => \$QUIET_ARG,
+ "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility
+ "ba-style|b" => \$BA_STYLE_ARG,
+ "xml-style|x" => \$XML_STYLE_ARG,
+ "keys-style|k" => \$KEYS_STYLE_ARG,
+ "desktop-style|d" => \$DESKTOP_STYLE_ARG,
+ "schemas-style|s" => \$SCHEMAS_STYLE_ARG,
+ "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG,
+ "pass-through|p" => \$PASS_THROUGH_ARG,
+ "utf8|u" => \$UTF8_ARG,
+ "cache|c=s" => \$cache_file
+ ) or &error;
+
+my $PO_DIR;
+my $FILE;
+my $OUTFILE;
+
+my %po_files_by_lang = ();
+my %translations = ();
+my $iconv = $ENV{"INTLTOOL_ICONV"} || "iconv";
+
+# Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+# XML quoted string contents
+my $q = "[^\\\"]*";
+
+## Check for options. 
+
+if ($VERSION_ARG) 
+{
+	&print_version;
+} 
+elsif ($HELP_ARG) 
+{
+	&print_help;
+} 
+elsif ($BA_STYLE_ARG && @ARGV > 2) 
+{
+	&preparation;
+	&print_message;
+	&ba_merge_translations;
+	&finalize;
+} 
+elsif ($XML_STYLE_ARG && @ARGV > 2) 
+{
+        &utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&xml_merge_translations;
+	&finalize;
+} 
+elsif ($KEYS_STYLE_ARG && @ARGV > 2) 
+{
+        &utf8_sanity_check;
+        &preparation;
+        &print_message;
+        &keys_merge_translations;
+	&finalize;
+} 
+elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) 
+{
+        &preparation;
+        &print_message;
+        &desktop_merge_translations;
+	&finalize;
+} 
+elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) 
+{
+        &preparation;
+        &print_message;
+        &schemas_merge_translations;
+	&finalize;
+} 
+elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) 
+{
+        &preparation;
+        &print_message;
+        &rfc822deb_merge_translations;
+	&finalize;
+} 
+else 
+{
+	&print_help;
+}
+
+exit;
+
+## Sub for printing release information
+sub print_version
+{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) ${VERSION}
+Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+Copyright (C) 2000-2001 Eazel, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+## Sub for printing usage information
+sub print_help
+{
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE
+Generates an output file that includes some localized attributes from an
+untranslated source file.
+
+Mandatory options: (exactly one must be specified)
+  -b, --ba-style         includes translations in the bonobo-activation style
+  -d, --desktop-style    includes translations in the desktop style
+  -k, --keys-style       includes translations in the keys style
+  -s, --schemas-style    includes translations in the schemas style
+  -r, --rfc822deb-style  includes translations in the RFC822 style
+  -x, --xml-style        includes translations in the standard xml style
+
+Other options:
+  -u, --utf8             convert all strings to UTF-8 before merging
+  -p, --pass-through     use strings as found in .po files, without
+                         conversion (STRONGLY unrecommended with -x)
+  -c, --cache=FILE       specify cache file name
+                         (usually \$top_builddir/po/.intltool-merge-cache)
+  -q, --quiet            suppress most messages
+      --help             display this help and exit
+      --version          output version information and exit
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+
+## Sub for printing error messages
+sub print_error
+{
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit;
+}
+
+
+sub print_message 
+{
+    print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG;
+}
+
+
+sub preparation 
+{
+    $PO_DIR = $ARGV[0];
+    $FILE = $ARGV[1];
+    $OUTFILE = $ARGV[2];
+
+    &gather_po_files;
+    &get_translation_database;
+}
+
+# General-purpose code for looking up translations in .po files
+
+sub po_file2lang
+{
+    my ($tmp) = @_; 
+    $tmp =~ s/^.*\/(.*)\.po$/$1/; 
+    return $tmp; 
+}
+
+sub gather_po_files
+{
+    for my $po_file (glob "$PO_DIR/*.po") {
+	$po_files_by_lang{po_file2lang($po_file)} = $po_file;
+    }
+}
+
+sub get_local_charset
+{
+    my ($encoding) = @_;
+    my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "/usr/lib/charset.alias";
+
+    # seek character encoding aliases in charset.alias (glib)
+
+    if (open CHARSET_ALIAS, $alias_file) 
+    {
+	while (<CHARSET_ALIAS>) 
+        {
+            next if /^\#/;
+            return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i)
+        }
+
+        close CHARSET_ALIAS;
+    }
+
+    # if not found, return input string
+
+    return $encoding;
+}
+
+sub get_po_encoding
+{
+    my ($in_po_file) = @_;
+    my $encoding = "";
+
+    open IN_PO_FILE, $in_po_file or die;
+    while (<IN_PO_FILE>) 
+    {
+        ## example: "Content-Type: text/plain; charset=ISO-8859-1\n"
+        if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) 
+        {
+            $encoding = $1; 
+            last;
+        }
+    }
+    close IN_PO_FILE;
+
+    if (!$encoding) 
+    {
+        print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG;
+        $encoding = "ISO-8859-1";
+    }
+
+    system ("$iconv -f $encoding -t UTF-8 </dev/null 2>/dev/null");
+    if ($?) {
+	$encoding = get_local_charset($encoding);
+    }
+
+    return $encoding
+}
+
+sub utf8_sanity_check 
+{
+    if (!$UTF8_ARG) 
+    {
+        if (!$PASS_THROUGH_ARG) 
+        {
+            $PASS_THROUGH_ARG="1";
+        }
+    }
+}
+
+sub get_translation_database
+{
+    if ($cache_file) {
+	&get_cached_translation_database;
+    } else {
+        &create_translation_database;
+    }
+}
+
+sub get_newest_po_age
+{
+    my $newest_age;
+
+    foreach my $file (values %po_files_by_lang) 
+    {
+	my $file_age = -M $file;
+	$newest_age = $file_age if !$newest_age || $file_age < $newest_age;
+    }
+
+    $newest_age = 0 if !$newest_age;
+
+    return $newest_age;
+}
+
+sub create_cache
+{
+    print "Generating and caching the translation database\n" unless $QUIET_ARG;
+
+    &create_translation_database;
+
+    open CACHE, ">$cache_file" || die;
+    print CACHE join "\x01", %translations;
+    close CACHE;
+}
+
+sub load_cache 
+{
+    print "Found cached translation database\n" unless $QUIET_ARG;
+
+    my $contents;
+    open CACHE, "<$cache_file" || die;
+    {
+        local $/;
+        $contents = <CACHE>;
+    }
+    close CACHE;
+    %translations = split "\x01", $contents;
+}
+
+sub get_cached_translation_database
+{
+    my $cache_file_age = -M $cache_file;
+    if (defined $cache_file_age) 
+    {
+        if ($cache_file_age <= &get_newest_po_age) 
+        {
+            &load_cache;
+            return;
+        }
+        print "Found too-old cached translation database\n" unless $QUIET_ARG;
+    }
+
+    &create_cache;
+}
+
+sub create_translation_database
+{
+    for my $lang (keys %po_files_by_lang) 
+    {
+    	my $po_file = $po_files_by_lang{$lang};
+
+        if ($UTF8_ARG) 
+        {
+            my $encoding = get_po_encoding ($po_file);
+
+            if (lc $encoding eq "utf-8") 
+            {
+                open PO_FILE, "<$po_file";	
+            } 
+            else 
+            {
+		print STDERR "WARNING: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;;
+
+                open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|";	
+            }
+        } 
+        else 
+        {
+            open PO_FILE, "<$po_file";	
+        }
+
+	my $nextfuzzy = 0;
+	my $inmsgid = 0;
+	my $inmsgstr = 0;
+	my $msgid = "";
+	my $msgstr = "";
+
+        while (<PO_FILE>) 
+        {
+	    $nextfuzzy = 1 if /^#, fuzzy/;
+       
+	    if (/^msgid "((\\.|[^\\])*)"/ ) 
+            {
+		$translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
+		$msgid = "";
+		$msgstr = "";
+
+		if ($nextfuzzy) {
+		    $inmsgid = 0;
+		} else {
+		    $msgid = unescape_po_string($1);
+		    $inmsgid = 1;
+		}
+		$inmsgstr = 0;
+		$nextfuzzy = 0;
+	    }
+
+	    if (/^msgstr "((\\.|[^\\])*)"/) 
+            {
+	        $msgstr = unescape_po_string($1);
+		$inmsgstr = 1;
+		$inmsgid = 0;
+	    }
+
+	    if (/^"((\\.|[^\\])*)"/) 
+            {
+	        $msgid .= unescape_po_string($1) if $inmsgid;
+	        $msgstr .= unescape_po_string($1) if $inmsgstr;
+	    }
+	}
+	$translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
+    }
+}
+
+sub finalize
+{
+}
+
+sub unescape_one_sequence
+{
+    my ($sequence) = @_;
+
+    return "\\" if $sequence eq "\\\\";
+    return "\"" if $sequence eq "\\\"";
+    return "\n" if $sequence eq "\\n";
+
+    # gettext also handles \n, \t, \b, \r, \f, \v, \a, \xxx (octal),
+    # \xXX (hex) and has a comment saying they want to handle \u and \U.
+
+    return $sequence;
+}
+
+sub unescape_po_string
+{
+    my ($string) = @_;
+
+    $string =~ s/(\\.)/unescape_one_sequence($1)/eg;
+
+    return $string;
+}
+
+## NOTE: deal with < - &lt; but not > - &gt;  because it seems its ok to have 
+## > in the entity. For further info please look at #84738.
+sub entity_decode
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+    s/&lt;/</g;
+
+    return $_;
+}
+ 
+# entity_encode: (string)
+#
+# Encode the given string to XML format (encode '<' etc). It also 
+# encodes high bit if not in UTF-8 mode.
+
+sub entity_encode
+{
+    my ($pre_encoded) = @_;
+
+    my @list_of_chars = unpack ('C*', $pre_encoded);
+
+    if ($PASS_THROUGH_ARG) 
+    {
+        return join ('', map (&entity_encode_int_even_high_bit, @list_of_chars));
+    } 
+    else 
+    {
+	# with UTF-8 we only encode minimalistic
+        return join ('', map (&entity_encode_int_minimalist, @list_of_chars));
+    }
+}
+
+sub entity_encode_int_minimalist
+{
+    return "&quot;" if $_ == 34;
+    return "&amp;" if $_ == 38;
+    return "&apos;" if $_ == 39;
+    return "&lt;" if $_ == 60;
+    return chr $_;
+}
+
+sub entity_encode_int_even_high_bit
+{
+    if ($_ > 127 || $_ == 34 || $_ == 38 || $_ == 39 || $_ == 60) 
+    {
+        # the ($_ > 127) should probably be removed
+	return "&#" . $_ . ";"; 
+    } 
+    else 
+    {
+	return chr $_;
+    }
+}
+
+sub entity_encoded_translation
+{
+    my ($lang, $string) = @_;
+
+    my $translation = $translations{$lang, $string};
+    return $string if !$translation;
+    return entity_encode ($translation);
+}
+
+## XML (bonobo-activation specific) merge code
+
+sub ba_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
+
+    while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) 
+    {
+        print OUTPUT $1;
+
+        my $node = $2 . "\n";
+
+        my @strings = ();
+        $_ = $node;
+	while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) {
+             push @strings, entity_decode($3);
+        }
+	print OUTPUT;
+
+	my %langs;
+	for my $string (@strings) 
+        {
+	    for my $lang (keys %po_files_by_lang) 
+            {
+                $langs{$lang} = 1 if $translations{$lang, $string};
+	    }
+	}
+	
+	for my $lang (sort keys %langs) 
+        {
+	    $_ = $node;
+	    s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s;
+	    s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg;
+	    print OUTPUT;
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+
+## XML (non-bonobo-activation) merge code
+
+sub xml_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die;
+
+    # FIXME: support attribute translations
+
+    # Empty nodes never need translation, so unmark all of them.
+    # For example, <_foo/> is just replaced by <foo/>.
+    $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
+
+    # Support for <_foo>blah</_foo> style translations.
+    while ($source =~ s|^(.*?)([ \t]*)<\s*_($w+)\s*>(.*?)<\s*/_\3\s*>([ \t]*\n)?||s) 
+    {
+        print OUTPUT $1;
+
+        my $spaces = $2;
+        my $tag = $3;
+        my $string = $4;
+
+	print OUTPUT "$spaces<$tag>$string</$tag>\n";
+
+	$string =~ s/\s+/ /g;
+	$string =~ s/^ //;
+	$string =~ s/ $//;
+	$string = entity_decode($string);
+
+	for my $lang (sort keys %po_files_by_lang) 
+        {
+	    my $translation = $translations{$lang, $string};
+	    next if !$translation;
+	    $translation = entity_encode($translation);
+	    print OUTPUT "$spaces<$tag xml:lang=\"$lang\">$translation</$tag>\n";
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+sub keys_merge_translations
+{
+    open INPUT, "<${FILE}" or die;
+    open OUTPUT, ">${OUTFILE}" or die;
+
+    while (<INPUT>) 
+    {
+        if (s/^(\s*)_(\w+=(.*))/$1$2/)  
+        {
+	    my $string = $3;
+
+            print OUTPUT;
+
+	    my $non_translated_line = $_;
+
+            for my $lang (sort keys %po_files_by_lang) 
+            {
+		my $translation = $translations{$lang, $string};
+                next if !$translation;
+
+                $_ = $non_translated_line;
+		s/(\w+)=.*/[$lang]$1=$translation/;
+                print OUTPUT;
+            }
+	} 
+        else 
+        {
+            print OUTPUT;
+        }
+    }
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub desktop_merge_translations
+{
+    open INPUT, "<${FILE}" or die;
+    open OUTPUT, ">${OUTFILE}" or die;
+
+    while (<INPUT>) 
+    {
+        if (s/^(\s*)_(\w+=(.*))/$1$2/)  
+        {
+	    my $string = $3;
+
+            print OUTPUT;
+
+	    my $non_translated_line = $_;
+
+            for my $lang (sort keys %po_files_by_lang) 
+            {
+                my $translation = $translations{$lang, $string};
+                next if !$translation;
+
+                $_ = $non_translated_line;
+                s/(\w+)=.*/${1}[$lang]=$translation/;
+                print OUTPUT;
+            }
+	} 
+        else 
+        {
+            print OUTPUT;
+        }
+    }
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub schemas_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die;
+
+    # FIXME: support attribute translations
+
+    # Empty nodes never need translation, so unmark all of them.
+    # For example, <_foo/> is just replaced by <foo/>.
+    $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
+
+    while ($source =~ s/
+                        (.*?)
+                        (\s+)(<locale\ name="C">(\s*)
+                            (<default>\s*(.*?)\s*<\/default>)?(\s*)
+                            (<short>\s*(.*?)\s*<\/short>)?(\s*)
+                            (<long>\s*(.*?)\s*<\/long>)?(\s*)
+                        <\/locale>)
+                       //sx) 
+    {
+        print OUTPUT $1;
+
+	my $locale_start_spaces = $2 ? $2 : '';
+	my $default_spaces = $4 ? $4 : '';
+	my $short_spaces = $7 ? $7 : '';
+	my $long_spaces = $10 ? $10 : '';
+	my $locale_end_spaces = $13 ? $13 : '';
+	my $c_default_block = $3 ? $3 : '';
+	my $default_string = $6 ? $6 : '';
+	my $short_string = $9 ? $9 : '';
+	my $long_string = $12 ? $12 : '';
+
+	$c_default_block =~ s/default>\[.*?\]/default>/s;
+        
+	print OUTPUT "$locale_start_spaces$c_default_block";
+
+        $default_string =~ s/\s+/ /g;
+        $default_string = entity_decode($default_string);
+	$short_string =~ s/\s+/ /g;
+	$short_string = entity_decode($short_string);
+	$long_string =~ s/\s+/ /g;
+	$long_string = entity_decode($long_string);
+
+	for my $lang (sort keys %po_files_by_lang) 
+        {
+	    my $default_translation = $translations{$lang, $default_string};
+	    my $short_translation = $translations{$lang, $short_string};
+	    my $long_translation  = $translations{$lang, $long_string};
+
+	    next if (!$default_translation && !$short_translation && 
+                     !$long_translation);
+
+	    print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
+
+        print OUTPUT "$default_spaces";    
+
+        if ($default_translation)
+        {
+            $default_translation = entity_encode($default_translation);
+            print OUTPUT "<default>$default_translation</default>";
+        }
+
+	    print OUTPUT "$short_spaces";
+
+	    if ($short_translation)
+	    {
+			$short_translation = entity_encode($short_translation);
+			print OUTPUT "<short>$short_translation</short>";
+	    }
+
+	    print OUTPUT "$long_spaces";
+
+	    if ($long_translation)
+	    {
+			$long_translation = entity_encode($long_translation);
+			print OUTPUT "<long>$long_translation</long>";
+	    }	    
+
+	    print OUTPUT "$locale_end_spaces</locale>";
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+sub rfc822deb_merge_translations
+{
+    my $source;
+
+    $Text::Wrap::huge = 'overflow';
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">${OUTFILE}" or die;
+
+    while ($source =~ /(^|\n+)(_)?([^:_\n]+)(:\s*)(.*?)(?=\n[\S\n]|$)/sg) 
+    {
+	    my $sep = $1;
+	    my $non_translated_line = $3.$4;
+	    my $string = $5;
+	    my $is_translatable = defined($2);
+	    #  Remove [] dummy strings
+	    $string =~ s/\[\s[^\[\]]*\]$//;
+            $non_translated_line .= $string;
+
+            print OUTPUT $sep.$non_translated_line;
+    
+            if ($is_translatable) 
+            {
+                my @str_list = rfc822deb_split($string);
+           
+	        for my $lang (sort keys %po_files_by_lang) 
+                {
+                    my $is_translated = 1;
+                    my $str_translated = '';
+                    my $first = 1;
+                
+                    for my $str (@str_list) 
+                    {
+                        my $translation = $translations{$lang, $str};
+                    
+                        if (!$translation) 
+                        {
+                            $is_translated = 0;
+                            last;
+                        }
+
+	                #  $translation may also contain [] dummy
+                        #  strings, mostly to indicate an empty string
+	                $translation =~ s/\[\s[^\[\]]*\]$//;
+                        
+                        if ($first) 
+                        {
+                            $str_translated .=
+                                Text::Tabs::expand($translation) .
+                                "\n";
+                        } 
+                        else 
+                        {
+                            $str_translated .= Text::Tabs::expand(
+                                Text::Wrap::wrap(' ', ' ', $translation)) .
+                                "\n .\n";
+                        }
+                        $first = 0;
+
+                        #  To fix some problems with Text::Wrap::wrap
+                        $str_translated =~ s/(\n )+\n/\n .\n/g;
+                    }
+                    next unless $is_translated;
+
+                    $str_translated =~ s/\n \.\n$//;
+                    $str_translated =~ s/\s+$//;
+
+                    $_ = $non_translated_line;
+                    s/^(\w+):\s*.*/$sep${1}-$lang: $str_translated/s;
+                    print OUTPUT;
+                }
+            }
+    }
+    print OUTPUT "\n";
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub rfc822deb_split 
+{
+    # Debian defines a special way to deal with rfc822-style files:
+    # when a value contain newlines, it consists of
+    #   1.  a short form (first line)
+    #   2.  a long description, all lines begin with a space,
+    #       and paragraphs are separated by a single dot on a line
+    # This routine returns an array of all paragraphs, and reformat
+    # them.
+    my $text = shift;
+    $text =~ s/^ //mg;
+    return ($text) if $text !~ /\n/;
+
+    $text =~ s/([^\n]*)\n//;
+    my @list = ($1);
+    my $str = '';
+
+    for my $line (split (/\n/, $text)) 
+    {
+        chomp $line;
+        $line =~ /\s+$/;
+    
+        if ($line =~ /^\.$/) 
+        {
+            #  New paragraph
+            $str =~ s/\s*$//;
+            push(@list, $str);
+            $str = '';
+        } 
+        elsif ($line =~ /^\s/) 
+        {
+            #  Line which must not be reformatted
+            $str .= "\n" if length ($str) && $str !~ /\n$/;
+            $str .= $line."\n";
+        } 
+        else 
+        {
+            #  Continuation line, remove newline
+            $str .= " " if length ($str) && $str !~ /[\n ]$/;
+            $str .= $line;
+        }
+    }
+
+    $str =~ s/\s*$//;
+    push(@list, $str) if length ($str);
+
+    return @list;
+}
+
--- openoffice.org-2.4.1.orig/ooo-build/autogen.sh
+++ openoffice.org-2.4.1/ooo-build/autogen.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+if test "z$1" = "z--clean"; then
+    echo "Cleaning"
+
+    rm -Rf autom4te.cache bonobo/autom4te.cache
+    rm -f missing install-sh mkinstalldirs libtool ltmain.sh
+    rm -f bonobo/missing bonobo/install-sh bonobo/mkinstalldirs \
+	bonobo/libtool bonobo/ltmain.sh
+    exit 1;
+fi
+
+old_args=""
+if test $# -eq 0 && test -f config.log; then
+    old_args=`grep '\$ ./configure' config.log | sed -e 's/.*configure //' -e 's/=\(\([^"-]\|-[-]\)*\)\( \|$\)/="\1" /g'`
+    echo "re-using arguments from last configure: $old_args";
+fi
+
+aclocal $ACLOCAL_FLAGS || exit 1;
+automake --gnu --add-missing --copy || exit 1;
+# intltoolize --copy --force --automake
+autoconf || exit 1;
+if test "x$NOCONFIGURE" = "x"; then
+    ./configure "$@" "$old_args"
+else
+    echo "Skipping configure process."
+fi
--- openoffice.org-2.4.1.orig/ooo-build/po/da.po
+++ openoffice.org-2.4.1/ooo-build/po/da.po
@@ -0,0 +1,114 @@
+# Danish translation of openoffice strings.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Ole Laursen <olau@hardworking.dk>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Præsentation"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Regneark"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tekstbehandler"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Tegneprogram"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/zh_TW.po
+++ openoffice.org-2.4.1/ooo-build/po/zh_TW.po
@@ -0,0 +1,118 @@
+# traditional Chinese translation of Ximian OpenOffice.org
+# This file is distributed under the same license as the openoffice package.
+# Copyright (C) 2003 Ximian, Inc
+# Abel Cheung <abel@oaka.org>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=l10n\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
+"Language-Team: Chinese (traditional) <community@linuxhall.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "辦公套裝"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "建立及編輯用於幻燈放映、會議的簡報及網頁。"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org 簡報"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "簡報"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "資料庫"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "管理資料庫、建立查詢及報告來追蹤、管理您的資訊。"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org 資料庫"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "建立及編輯網頁。"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org 網頁"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "建立網頁"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org 試算表"
+
+#: ../desktop/calc.desktop.in.in.h:2
+#, fuzzy
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "於試算表中進行運算、分析資訊並管理清單。"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "試算表"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr "於信件、報表、文件及網頁中建立及編輯文字。"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org 文書處理器"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "文書處理器"
+
+#: ../desktop/draw.desktop.in.in.h:1
+#, fuzzy
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "建立及編輯圖表、流程圖及標誌。"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "繪圖"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org 繪圖"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "建立及編輯科學方程式及等式。"
+
+#: ../desktop/math.desktop.in.in.h:2
+#, fuzzy
+msgid "Formula"
+msgstr "方程式"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/eo.po
+++ openoffice.org-2.4.1/ooo-build/po/eo.po
@@ -0,0 +1,124 @@
+# Esperanto translation for openoffice.org
+# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-06-09 12:19+0000\n"
+"Last-Translator: Joop Eggen <joop_eggen@yahoo.de>\n"
+"Language-Team: Esperanto <eo@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Oficeja Programaro"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Krei kaj redakti prezentajxojn por lumbildaj prezentadoj, kunveno kaj TTT-"
+"pagxoj."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Prezentajxo"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentajxo"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Datumbazo"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Mastrumi datumbazojn, krei informpetojn kaj raportojn por spuri kaj mastrumi "
+"viajn informojn."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Datumbazo"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Krei kaj redakti TTT-pagxojn."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org TTT-pagxoj"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "TTT-pagxa kreado"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Kalkultabelo"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Plenumi kalkuladon, analizi informojn kaj mastrumi listojn en kalkultabeloj."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Kalkultabelo"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Krei kaj redakti tekston kaj grafikajxojn en leteroj, raportoj, dokumentoj "
+"kaj TTT-pagxoj."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Verkilo"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Verkilo"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+"Krei kaj redakti desegnajxojn, stirfluajn diagramojn, kaj identigajn "
+"simbolojn."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Desegnajxo"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Desegnilo"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Krei kaj redakti sciencajn formulojn kaj ekvaciojn."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formulo"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formulo"
--- openoffice.org-2.4.1.orig/ooo-build/po/xh.po
+++ openoffice.org-2.4.1/ooo-build/po/xh.po
@@ -0,0 +1,115 @@
+# Xhosa translation of OpenOffice.org Build.
+# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the ooo-build package.
+# Translate.org.za <info@translate.org.za>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Kholisa Podile <Unknown>\n"
+"Language-Team: Xhosa <translate-discuss-xh@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Umboniso wenkcazelo"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Isiseko seenkcukacha"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Icwecwe leeseli"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Inkqubo Yokuqhuba Amagama"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Umzobo"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Indlela yokusebenza"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/ru.po
+++ openoffice.org-2.4.1/ooo-build/po/ru.po
@@ -0,0 +1,155 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:28+0000\n"
+"Last-Translator: Igor Zubarev <igor4u@gmail.com>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Управление базами данных, создание запросов и отчетов для слежения и "
+#~ "управления вашей информацией при помощи Base."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Выполнение вычислений, анализ информации и управление листами в электронных "
+#~ "таблицах с помощью Calc."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "Создание и редактирование рисунков, блок-схем и логотипов."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Создание и редактирование презентаций для слайдшоу, встреч и веб-страниц."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Создание и редактирование текста и рисунков в письмах, отчетах, документах "
+#~ "или веб-страницах."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "Создание и редактирование научных формул и уравнений."
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Набор офисных приложений"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Создание и редактирование презентаций для слайд-шоу, встреч и веб-страниц."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice: Презентации"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Презентация"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "База данных"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Управление базами данными, создание запросов и отчетов для ведения и "
+"управления вашей информацией."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice: Базы данных"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Создание и редактирование веб-страниц."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice: Веб-страницы"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Создание веб-страниц"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice: Электронные таблицы"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Выполнение вычислений, анализ информации и управление  электронными "
+"таблицами."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Электронная таблица"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Создание, редактирование текста и рисунков в письмах, отчетах, документах и "
+"веб-страницах."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice: Редактор текстов"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Редактор текстов"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Создание, редактирование рисунков, схем и логотипов."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Рисунок"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice: Рисование"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Создание и редактирование научных формул и уравнений."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Формула"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice: Формула"
--- openoffice.org-2.4.1.orig/ooo-build/po/az.po
+++ openoffice.org-2.4.1/ooo-build/po/az.po
@@ -0,0 +1,115 @@
+# openoffice.HEAD.po faylının Azərbaycan dilinə tərcüməsi
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# Mətin Əmirov <metin@karegen.com>, 2003
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Metin Amiroff <Unknown>\n"
+"Language-Team: Azərbaycan <gnome@azitt.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Təqdimat"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Hesab Cədvəli"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Kəlmə İşlədici"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Rəsm"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/pt.po
+++ openoffice.org-2.4.1/ooo-build/po/pt.po
@@ -0,0 +1,120 @@
+# openoffice's Portuguese translation.
+# Copyright (C) 2003 openoffice
+# This file is distributed under the same license as the openoffice package.
+# Duarte Loreto <happyguy_pt@hotmail.com>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 2.4\n"
+"Report-Msgid-Bugs-To: Duarte Loreto <happyguy_pt@hotmail.com>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-05 16:40+0000\n"
+"Last-Translator: Susana Pereira <susana.pereira@gmail.com>\n"
+"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Suite de Office"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "Criar e editar apresentações para slides, reuniões e páginas Web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Apresentação OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Apresentação"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Base de dados"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gerir bases de dados, criar consultas e relatórios de modo a controlar e "
+"gerir a sua informação."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Base de Dados OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Cria e edita páginas Web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Páginas Web OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Criação de Páginas Web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Folha de Cálculo OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Realizar cálculos, analisar informação e gerir listas em folhas de cálculo."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Folha de Cálculo"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Criar e editar texto e gráficos em cartas, relatórios, documentos e páginas "
+"Web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Processador de Texto OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Processador de Texto"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Criar e editar desenhos, diagramas de sequência e logotipos."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Desenho"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Desenho OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Criar e editar fórmulas científicas e equações."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fórmula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Fórmula OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/co.po
+++ openoffice.org-2.4.1/ooo-build/po/co.po
@@ -0,0 +1,115 @@
+# Corsican translation for openoffice.org
+# Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Matteu <lpa.paoli@free.fr>\n"
+"Language-Team: Corsican <co@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Seguita Office"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "openOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/nso.po
+++ openoffice.org-2.4.1/ooo-build/po/nso.po
@@ -0,0 +1,115 @@
+# Northern Sotho translation of OpenOffice.org Build.
+# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the ooo-build package.
+# Translate.org.za <info@translate.org.za>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Zuza Software Foundation <Unknown>\n"
+"Language-Team: Northern Sotho <translate-discuss-nso@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Tlhagišo"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Datapeisi"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Letlakala la go ala tsebišo"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Sehlami sa Lentšu"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Go Thala"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fomula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/pt_BR.po
+++ openoffice.org-2.4.1/ooo-build/po/pt_BR.po
@@ -0,0 +1,200 @@
+# Brazilian Portuguese translation of ooo-build.
+# Copyright (C) 2003 the ooo-build's copyright holders.
+# This file is distributed under the same license as the ooo-build package
+# Tiago Cardoso Menezes <zion@via-rs.net>, 2003, 2007.
+# Joao Emanuel  <joaoemanuel1981@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pt_BR\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:28+0000\n"
+"Last-Translator: Joao Emanuel <joaoemanuel1981@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <gnome-l10n-br@listas.cipsga.org.br>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "Drawing (1.1)"
+#~ msgstr "Drawing (1.1)"
+
+#~ msgid "OpenOffice.org drawing package"
+#~ msgstr "Pacote de desenho OpenOffice.org"
+
+#~ msgid "OpenOffice.org presentation application"
+#~ msgstr "Pacote de apresentação do OpenOffice.org"
+
+#~ msgid "Presentation (1.1)"
+#~ msgstr "Presentation (1.1)"
+
+#~ msgid "Spreadsheet (1.1)"
+#~ msgstr "Spreadsheet (1.1)"
+
+#~ msgid "OpenOffice.org word processor"
+#~ msgstr "Processador de texto OpenOffice.org"
+
+#~ msgid "Word Processor (1.1)"
+#~ msgstr "Word·Processor (1.1)"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Gerencie bancos de dados, crie consultas e relatórios para rastrear e "
+#~ "gerenciar suas informações por meio do Base."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Faça cálculos, analise informações e gerencie listas em planilhas por meio "
+#~ "do Calc."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "Crie e dite desenhos, fluxogramas e logotipos por meio do Draw."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Crie e edite apresentações para slides, reuniões e páginas da Web por meio "
+#~ "do Impress."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Crie e edite texto e figuras em cartas, relatórios, documentos e páginas da "
+#~ "Web por meio do Writer."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "Crie e edite fórmulas científicas e equações por meio do Math."
+
+#~ msgid "OpenOffice.org Impress"
+#~ msgstr "OpenOffice.org Impress"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "OpenOffice.org Base"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr "Crie e edite páginas da Web usando Writer."
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "OpenOffice.org Writer/Web"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "OpenOffice.org Calc"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "OpenOffice.org Writer"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "OpenOffice.org Draw"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "OpenOffice.org Math"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Suíte de Escritório"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "Cria e edita apresentações de slides, encontros e páginas da web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Apresentação"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Apresentação"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Banco de dados"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gerencie bancos de dados, cria consultas e relatórios para rastrear e "
+"gerenciar suas informações."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Banco de Dados"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Cria e edita páginas da web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Páginas da Web"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Criação de Página da Web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Planilha Eletrônica"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Realiza cálculos, análise de informações e gerencia listas em planilhas."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Planilha Eletrônica"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Cria e edita textos e gráficos em cartas, relatórios, documentos e páginas "
+"da web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Editor de Texto"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Processador de texto"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Crie e edite desenhos, gráficos e logotipos."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Desenho"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Desenho"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Cria e edita fórmulas científicas e equações."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fórmula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Fórmula"
--- openoffice.org-2.4.1.orig/ooo-build/po/ts.po
+++ openoffice.org-2.4.1/ooo-build/po/ts.po
@@ -0,0 +1,115 @@
+# Tsonga translation of OpenOffice.org Build.
+# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the ooo-build package.
+# Translate.org.za <info@translate.org.za>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Zuza Software Foundation <Unknown>\n"
+"Language-Team: Tsonga <translate-discuss-ts@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Nkombiso"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Vuhlayisela-rungula"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Xipredxiti"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Xitirhisi xa marito"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Vudirowi"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fomula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/lv.po
+++ openoffice.org-2.4.1/ooo-build/po/lv.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/he.po
+++ openoffice.org-2.4.1/ooo-build/po/he.po
@@ -0,0 +1,116 @@
+# translation of openoffice.HEAD.po to Hebrew
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Gil Osher <dolfin@rpg.org.il>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-10 06:13+0000\n"
+"Last-Translator: Yaniv Abir <Unknown>\n"
+"Language-Team: Hebrew <he@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "תוכנה משרדית"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "צרו וערכו מצגות לפגישות, כדי להציג תמונות או לדפי אינטרנט."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org מצגות"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "מצגות"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "מסד נתונים"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"נהלו מסדי נתונים, צרו שאילתות ודו\"חות כדי לעקוב ולנהל את המידע שלכם."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org מסד נתונים"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "צרו וערכו דפי אינטרנט."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org דפי אינטרנט"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "יצירת דפי אינטרנט"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org גליונות עבודה"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "בצעו חישובים, נתחו מידע ונהלו רשימות בגליונות עבודה."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "גיליון עבודה"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr "צרו וערכו טקסט וגרפיקה בדוחו\"ת, מסמכים ודפי אינטרנט."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org מעבד תמלילים"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "מעבד תמלילים"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "צרו וערכו איורים, תרשימי זרימה ולוגואים."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "ציור"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org ציור"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "צרו וערכו נוסחאות מדעיות ומשוואות."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "משוואות"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org נוסחאות"
--- openoffice.org-2.4.1.orig/ooo-build/po/nn.po
+++ openoffice.org-2.4.1/ooo-build/po/nn.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/po/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST=${wildcard *.po} ChangeLog POTFILES.in
--- openoffice.org-2.4.1.orig/ooo-build/po/nr.po
+++ openoffice.org-2.4.1/ooo-build/po/nr.po
@@ -0,0 +1,115 @@
+# Ndebele (South) translation of OpenOffice.org Build.
+# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the ooo-build package.
+# Translate.org.za <info@translate.org.za>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Zuza Software Foundation <Unknown>\n"
+"Language-Team: Ndebele (South) <translate-discuss-nr@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Phrizentheyitjhini"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Ibulungelo lekhompyutha"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Spredtjhiti"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Isenzi Mitlolo"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Umgwalo"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fomula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/fi.po
+++ openoffice.org-2.4.1/ooo-build/po/fi.po
@@ -0,0 +1,122 @@
+# Finnish translations for ooo-build package.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the ooo-build package.
+# Tommi Vainikainen <Tommi.Vainikainen@iki.fi>, 2005.
+# Ilkka Tuohela <hile@iki.fi>, 2006
+# Timo Jyrinki <timo.jyrinki@iki.fi>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-02-13 10:08+0000\n"
+"Last-Translator: Timo Jyrinki <timo.jyrinki@iki.fi>\n"
+"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Toimisto-ohjelmat"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "Luo ja muokkaa esityksiä esitelmiin, tapaamiisiin ja WWW-sivuille."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org-esitysgrafiikka"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Esitys"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Tietokanta"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Hallitse tietokantoja sekä tee hakuja ja raportteja seurataksesi ja "
+"käsitelläksesi tietoja."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org-tietokanta"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Luo ja muokkaa WWW-sivuja."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org-WWW-sivut"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "WWW-sivun luonti"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org-taulukkolaskenta"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Tee laskelmia, käsittele tietoa ja hallitse luetteloita laskentataulukoissa."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Taulukkolaskenta"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Luo ja muokkaa tekstejä ja grafiikkaa kirjeisiin, raportteihin, "
+"dokumentteihin ja WWW-sivuille."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org-tekstinkäsittely"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tekstinkäsittely"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Luo ja muokkaa piirroksia, vuokaavioita ja logoja."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Piirros"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org-piirros"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Luo ja muokkaa tieteellisiä kaavoja ja yhtälöitä."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Kaava"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org-kaavaeditori"
--- openoffice.org-2.4.1.orig/ooo-build/po/st.po
+++ openoffice.org-2.4.1/ooo-build/po/st.po
@@ -0,0 +1,115 @@
+# Southern Sotho translation of OpenOffice.org Build.
+# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the ooo-build package.
+# Translate.org.za <info@translate.org.za>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Zuza Software Foundation <Unknown>\n"
+"Language-Team: Southern Sotho <translate-discuss-st@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Nehelano"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Datapeisi"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Leqephe la ho ala boitsebiso"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Word Processor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Ho torowa"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fomula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/fil.po
+++ openoffice.org-2.4.1/ooo-build/po/fil.po
@@ -0,0 +1,124 @@
+# Filipino translation for openoffice.org
+# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-23 16:40+0000\n"
+"Last-Translator: dsaa <solon_594bc@yahoo.com>\n"
+"Language-Team: Filipino <fil@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Office Suite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Lumikha at isaayos ang mga pagtatanghal para sa mga slideshow, pagtitipon at "
+"mga pahina sa Web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Pagtatanghal sa OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Pagtatanghal"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Mangasiwa ng mga database, lumikha ng mga tanong at mga ulat upang masundan "
+"at pangasiwaan ang iyong impormasyon."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Database sa OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Lumikha at isaayos ang mga pahina ng Web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Pahina ng Web sa OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Paglikha ng Pahina sa Web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Spreadsheet"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Magsagawa ng mga kalkulasyon, pag-unawa sa mga impormasyon at pangasiwaan "
+"ang mga listahan sa mga spreadsheet."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Spreadsheet"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Lumikha at isaayos ang nilalaman at  mga graphics sa mga sulat, mga ulat, "
+"mga dokumento at mga pahina sa Web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Tagaproseso ng Salita sa OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tagaproseso ng Salita"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Lumikha at isaayos ang mga guhit, mga flow chart, at mga logo."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Gumuhit"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Gumuhit sa OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+"Lumikha at isaayos ang mga pangsayantipikong pormula at mga equation."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Pormula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Pormula sa OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/mk.po
+++ openoffice.org-2.4.1/ooo-build/po/mk.po
@@ -0,0 +1,115 @@
+# translation of mk.po to Macedonian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Арангел Ангов <ufo@linux.net.mk>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mk\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Арангел Ангов <ufo@linux.net.mk>\n"
+"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Презентација"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Бази за податоци"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Табели"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Процесор за текст"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Цртање"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Формула"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/POTFILES.in
+++ openoffice.org-2.4.1/ooo-build/po/POTFILES.in
@@ -0,0 +1,8 @@
+desktop/template.desktop.in.in
+desktop/impress.desktop.in.in
+desktop/base.desktop.in.in
+desktop/web.desktop.in.in
+desktop/calc.desktop.in.in
+desktop/writer.desktop.in.in
+desktop/draw.desktop.in.in
+desktop/math.desktop.in.in
--- openoffice.org-2.4.1.orig/ooo-build/po/is.po
+++ openoffice.org-2.4.1/ooo-build/po/is.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Helgi Þormar Þorbjörnsson <helgi@trance.is>, 2004
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: helgi <Unknown>\n"
+"Language-Team: Icelandic <gnome@techattack.nu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Kynning"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Töflureiknir"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Ritvinnsla"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/gu.po
+++ openoffice.org-2.4.1/ooo-build/po/gu.po
@@ -0,0 +1,115 @@
+# translation of openoffice.HEAD.po to Gujarati
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Ankit Patel <ankit@redhat.com>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Ankit Patel <Unknown>\n"
+"Language-Team: Gujarati\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "રજૂઆત"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "સ્પ્રેડશીટ"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "વર્ડ પ્રોસેસર"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "ચિત્ર"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/sr@Latn.po
+++ openoffice.org-2.4.1/ooo-build/po/sr@Latn.po
@@ -0,0 +1,88 @@
+# Serbian translation of openoffice
+# Courtesy of Prevod.org team (http://www.prevod.org/) -- 2003.
+#
+# This file is distributed under the same license as the openoffice package.
+#
+# Maintainer: Danilo Šegan <dsegan@gmx.net>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"PO-Revision-Date: 2003-08-30 14:05+0200\n"
+"Last-Translator: Danilo Šegan <danilo@prevod.org>\n"
+"Language-Team: Serbian (sr) <serbiangnome-listaL@nongnu.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: desktop/drawing1.1.desktop.in.in.h:1
+msgid "Drawing (1.1)"
+msgstr "Crtanje (1.1)"
+
+#: desktop/drawing1.1.desktop.in.in.h:2 desktop/drawing.desktop.in.in.h:2
+msgid "OpenOffice.org drawing package"
+msgstr "Paket za crtanje iz Otvorene kancelarije"
+
+#: desktop/drawing.desktop.in.in.h:1
+msgid "Drawing"
+msgstr "Crtanje"
+
+#: desktop/presentation1.1.desktop.in.in.h:1 desktop/presentation.desktop.in.in.h:1
+msgid "OpenOffice.org presentation application"
+msgstr "Program za prezentacije iz Otvorene kancelarije"
+
+#: desktop/presentation1.1.desktop.in.in.h:2
+msgid "Presentation (1.1)"
+msgstr "Prezentacija (1.1)"
+
+#: desktop/presentation.desktop.in.in.h:2
+msgid "Presentation"
+msgstr "Prezentacija"
+
+#: desktop/spreadsheet1.1.desktop.in.in.h:1 desktop/spreadsheet.desktop.in.in.h:1
+msgid "OpenOffice.org spreadsheet"
+msgstr "Tabele iz Otvorene kancelarije"
+
+#: desktop/spreadsheet1.1.desktop.in.in.h:2
+msgid "Spreadsheet (1.1)"
+msgstr "Tabele (1.1)"
+
+#: desktop/spreadsheet.desktop.in.in.h:2
+msgid "Spreadsheet"
+msgstr "Tabele"
+
+#: desktop/textdoc1.1.desktop.in.in.h:1 desktop/textdoc.desktop.in.in.h:1
+msgid "OpenOffice.org word processor"
+msgstr "Obrada teksta iz Otvorene kancelarije"
+
+#: desktop/textdoc1.1.desktop.in.in.h:2
+msgid "Word Processor (1.1)"
+msgstr "Obrada teksta (1.1)"
+
+#: desktop/textdoc.desktop.in.in.h:2
+msgid "Word Processor"
+msgstr "Obrada teksta"
+
+#: desktop/base.desktop.in.in:16
+msgid "Manage databases, create queries and reports to track and manage your information by using Base."
+msgstr "Upravlja bazama podataka, pravi upite i izveštaje za praćenje Vaših podataka korićenjem Baze."
+
+#: desktop/calc.desktop.in.in:15
+msgid "Perform calculation, analyze information and manage lists in spreadsheets by using Calc."
+msgstr "Izvodi proračune, analizira podatke i upravlja listama u unakrsnim tabelama koristeći Račun."
+
+#: desktop/draw.desktop.in.in:16
+msgid "Create and edit drawings, flow charts, and logos by using Draw."
+msgstr "Pravi i uređuje crteže, dijagrame toka, i logotipe korišćenjem Draw-a."
+
+#: desktop/impress.desktop.in.in:16
+msgid "Create and edit presentations for slideshows, meeting and Web pages by using Impress."
+msgstr "Pravi i uređuje prezentacije za prikazivanja, sastanke i veb stranice korišćenjem Prezentacije."
+
+#: desktop/writer.desktop.in.in:16
+msgid "Create and edit text and graphics in letters, reports, documents and Web pages by using Writer."
+msgstr "Pravi i uređuje tekst i grafiku u pismima, izveštajima i veb stranicama korišćenjem Pisca."
+
+#: desktop/math.desktop.in.in:15
+msgid "Create and edit scientific formulas and equations by using Math."
+msgstr "Pravi i uređuje naučne formule i jednačine korišćenjem Matemetike."
--- openoffice.org-2.4.1.orig/ooo-build/po/cs.po
+++ openoffice.org-2.4.1/ooo-build/po/cs.po
@@ -0,0 +1,123 @@
+# Czech translation of ooo-build.
+# Copyright (C) 2003, 2005, 2006 ooo-build'S COPYRIGHT HOLDER
+# Copyright (C) 2005, 2006 Miloslav Trmac <mitr@volny.cz>
+# This file is distributed under the same license as the ooo-build package.
+# Miloslav Trmac <mitr@volny.cz>, 2003, 2005 - 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-12-07 03:19+0000\n"
+"Last-Translator: Martin Böhm <martin.bohm@kubuntu.org>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Kancelář"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Vytvářet a upravovat prezentace vhodné jako slideshow, na meeting nebo pro "
+"webové stránky."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Prezentace"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentace"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Databáze"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Spravovat databáze, vytvářet dotazy a hlášení pro zkvalitnění správy "
+"informací."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Databáze"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Vytvářet a upravovat webové stránky."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org WWW stránky"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Tvorba WWW stránek"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Tabulky"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Provádět výpočty, analyzovat informace a spravovat seznamy ve formě tabulek."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tabulkový kalkulátor"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Vytvářet a upravovat text a grafiku v dopisech, oznámeních, dokumentech a "
+"WWW stránkách."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Textový procesor"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Textový procesor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Vytvářet a upravovat obrázky, grafy a loga."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Kreslení"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Kreslení"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Vytvářet a upravovat vědecké vzorce a rovnice."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Vzorce"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Vzorce"
--- openoffice.org-2.4.1.orig/ooo-build/po/sl.po
+++ openoffice.org-2.4.1/ooo-build/po/sl.po
@@ -0,0 +1,120 @@
+# Slovenian translation of ooo-build.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the ooo-build package.
+#
+# Prvotni prevod <openoffice@lists.ximian.com>
+# Matej Urbančič <matej.urban@gmail.com>, 2006, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Matej Urbančič <Unknown>\n"
+"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+"X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Pisarniški paket"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Predstavitev"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Podatkovna zbirka"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Ustvarjanje spletne strani"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Razpredelnica"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Urejevalnik besedil"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Risanje"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Enačbe"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/sw.po
+++ openoffice.org-2.4.1/ooo-build/po/sw.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/de.po
+++ openoffice.org-2.4.1/ooo-build/po/de.po
@@ -0,0 +1,156 @@
+# Ximian OpenOffice.
+# Copyright (C) 2003 Ximian, Inc
+# This file is distributed under the same license as the ooo-build package.
+# Martin Kretzschmar <m_kretzschmar@gmx.net>, 2003.
+# Christian Neumair <chris@gnome-de.org>, 2003.
+# Frank Arnold <frank@scirocco-5v-turbo.de>, 2005.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:29+0000\n"
+"Last-Translator: Matthias Klose <doko@ubuntu.com>\n"
+"Language-Team: German GNOME Translators <gnome-de@gnome.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "Drawing (1.1)"
+#~ msgstr "Zeichnung (1.1)"
+
+#~ msgid "OpenOffice.org drawing package"
+#~ msgstr "OpenOffice.org Zeichnungspaket"
+
+#~ msgid "OpenOffice.org presentation application"
+#~ msgstr "OpenOffice.org Präsentationsanwendung"
+
+#~ msgid "Presentation (1.1)"
+#~ msgstr "Präsentation (1.1)"
+
+#~ msgid "OpenOffice.org spreadsheet"
+#~ msgstr "OpenOffice.org Tabellenkalkulation"
+
+#~ msgid "Spreadsheet (1.1)"
+#~ msgstr "Tabellenkalkulation (1.1)"
+
+#~ msgid "OpenOffice.org word processor"
+#~ msgstr "OpenOffice.org Textverarbeitung"
+
+#~ msgid "Word Processor (1.1)"
+#~ msgstr "Textverarbeitung (1.1)"
+
+#~ msgid "OpenOffice.org database"
+#~ msgstr "OpenOffice.org Datenbank"
+
+#~ msgid "OpenOffice.org formula editor"
+#~ msgstr "OpenOffice.org Formeleditor"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Büro-Programme"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Präsentationen für Dia-Vorführungen, Meetings und Web-Auftritte erstellen "
+"und bearbeiten"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Präsentation"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Präsentation"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Datenbank"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "Datenbanken verwalten, Abfragen und Berichte erstellen"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Datenbank"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Erstellen und Bearbeiten von Web-Seiten"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Webseiten"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Erstellung von Web-Seiten"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Tabellenkalkulation"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Berechnungen ausführen, Informationen analysieren und Listen in Tabellen "
+"verwalten"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tabellenkalkulation"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Text und Grafiken in Briefen, Berichten, Dokumenten und Web-Seiten erstellen "
+"und bearbeiten"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Textverarbeitung"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Textverarbeitung"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+"Zeichnungen erstellen und bearbeiten, Flussdiagramme entwerfen und Logos "
+"kreieren"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Zeichnung"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Zeichnung"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Wissenschaftliche Formeln erstellen und bearbeiten"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formel"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formel"
--- openoffice.org-2.4.1.orig/ooo-build/po/hr.po
+++ openoffice.org-2.4.1/ooo-build/po/hr.po
@@ -0,0 +1,176 @@
+# Translation of openoffice to Croatiann
+# Copyright (C) Croatiann team
+# Translators: Automatski Prijevod <>,Robert Sedak <robert.sedak@sk.tel.hr>,
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice 0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:28+0000\n"
+"Last-Translator: Launchpad Translations Administrators "
+"<rosetta@launchpad.net>\n"
+"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "Drawing (1.1)"
+#~ msgstr "Drawing (1.1)"
+
+#~ msgid "OpenOffice.org drawing package"
+#~ msgstr "OpenOffice.org paket za crtanje"
+
+#~ msgid "OpenOffice.org presentation application"
+#~ msgstr "OpenOffice.org aplikacija za prezentacije"
+
+#~ msgid "Presentation (1.1)"
+#~ msgstr "Presentation (1.1)"
+
+#~ msgid "OpenOffice.org spreadsheet"
+#~ msgstr "Proračunska tablica OpenOffice.org"
+
+#~ msgid "Spreadsheet (1.1)"
+#~ msgstr "Spreadsheet (1.1)"
+
+#~ msgid "OpenOffice.org word processor"
+#~ msgstr "OpenOffice.org program za obradu teksta"
+
+#~ msgid "Word Processor (1.1)"
+#~ msgstr "Word Processor (1.1)"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Upravljanje bazama podataka, kreiranje upita i izvještaja za praćenje i "
+#~ "upravljanje informacija koristeći Base."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Izvedite proračune, analizirajte informacije i upravljajte popisima u "
+#~ "proračunskim tablicama koristeći Calc."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "Stvorite i uredite crteže, dijagrame toka i logo-e koristeći Draw."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Stvorite i uredite prezentacije za prikazivanje i web stranice koristeći "
+#~ "Impress."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Stvorite i uredite takst i slike u pisma, izvješćima, dokumentima i web "
+#~ "stranicama koristeći Writer."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "Stvorite i uredite znanstvene formule i jednadžbe koristeći Math."
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Uredski paket"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "Izradite i uredite prezentacije za sastanke i web stranice."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org prezentacije"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentacija"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Baza podataka"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Uredite baze podataka, izradite upite i izvještaje; pratite svoje "
+"informacije."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org baze podataka"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Izradite i uredite web stranice."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org web stranice"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Izrada web stranica"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org proračunska tablica"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "Računajte i analizirajte informacije u proračunskim tablicama."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tablični kalkulator"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Izradite i uredite tekst i slike u pismima, izvještajima, dokumentima i web "
+"stranicama."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org obrada teksta"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Program za obradu teksta"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Izradite i uredite crteže, logotipe i sheme."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Crtanje"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org crtanje"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Izradite i uredite formule i jednadžbe."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org izrada formula"
--- openoffice.org-2.4.1.orig/ooo-build/po/en_GB.po
+++ openoffice.org-2.4.1/ooo-build/po/en_GB.po
@@ -0,0 +1,122 @@
+# English/GB translation of openoffice.
+# Copyright (C) 2004 THE openoffice'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the openoffice package.
+# David Lodge <dave@cirt.net>, 2004.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-09-29 03:00+0000\n"
+"Last-Translator: Jeff Bailes <Unknown>\n"
+"Language-Team: English/GB <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Office Suite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "Create and edit presentations for slideshows, meeting and Web pages."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Presentation"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentation"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Database"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Create and edit Web pages."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Web Pages"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Web Page Creation"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Spreadsheet"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Perform calculation, analyse information and manage lists in spreadsheets."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Spreadsheet"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Word Processor"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Word Processor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Create and edit drawings, flow charts, and logos."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Drawing"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Drawing"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Create and edit scientific formulae and equations."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formula"
--- openoffice.org-2.4.1.orig/ooo-build/po/sk.po
+++ openoffice.org-2.4.1/ooo-build/po/sk.po
@@ -0,0 +1,176 @@
+# Slovak translation of openoffice.HEAD.pot
+# Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc.
+# Zdenko Podobný <zdpo@mailbox.sk>, 2003.
+# Marcel Telka <marcel@telka.sk>, 2005.
+#
+# $Id: sk.po,v 1.5 2006/08/14 16:57:12 pmladek Exp $
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:30+0000\n"
+"Last-Translator: kiko <kiko.val@atlas.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "OpenOffice.org drawing package"
+#~ msgstr "OpenOffice.org balík pre kreslenie"
+
+#~ msgid "OpenOffice.org presentation application"
+#~ msgstr "OpenOffice.org aplikácia na prezentácie"
+
+#~ msgid "OpenOffice.org spreadsheet"
+#~ msgstr "OpenOffice.org tabuľkový procesor"
+
+#~ msgid "OpenOffice.org word processor"
+#~ msgstr "OpenOffice.org textový procesor"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Spravujte databázy, vytvárajte dotazy a správy pre správu a analýzu vašich "
+#~ "informácií s použitím Base."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Vykonávajte kalkulácie, analyzujte informácie a spravujte zoznamy v zošitoch "
+#~ "s použitím Calc."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr ""
+#~ "Vytvárajte a upravujte obrázky, postupové diagramy a logá s použitím Draw."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Vytvárajte a upravujte prezentácie pre porady s stretnutia s použitím "
+#~ "Impress."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Vytvárajte a upravujte textové a grafické listy, správy, dokumenty a webové "
+#~ "stránky s použitím Writer."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "Vytvárajte a upravujte vedecké vzorce a výrazy s použitím Math."
+
+#~ msgid "OpenOffice.org database"
+#~ msgstr "OpenOffice.org databáza"
+
+#~ msgid "OpenOffice.org formula editor"
+#~ msgstr "OpenOffice.org editor vzorcov"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Kancelársky balík"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Vytvárajte a upravujte prezentácie pre porady, stretnutia a internet."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Prezentácia OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentácia"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Databáza"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Spravujte databázy, vytvárajte dotazy a správy pre vyhľadanie a organizáciu "
+"vašich informácií."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Databáza Openoffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Vytvárajte a upravujte internetové stránky."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Internetové stránky OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Tvorba internetových stránok"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Tabuľka OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Vykonávajte výpočty, analyzujte informácie a spravujte zoznamy v tabuľkách."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tabuľka"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Vytvárajte a upravujte text a vzhľad listov, správ, dokumentov a "
+"internetových stránok."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Textový editor OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Textový editor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Vytvárajte a upravujte kresby, grafy a logá."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Kreslenie"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Kreslenie OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Vytvárajte a upravujte vedecké vzorce a rovnice."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Vzorec"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Vzorec OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/et.po
+++ openoffice.org-2.4.1/ooo-build/po/et.po
@@ -0,0 +1,156 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:29+0000\n"
+"Last-Translator: H_M_Murdock_EST <eerove@gmail.com>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Base võimaldab kasutada andmebaase ja luua andmete jälgimiseks ning "
+#~ "haldamiseks päringuid ja aruandeid."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr "Calc aitab teostada arvutusi, analüüsida infot ja hallata nimekirju."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr ""
+#~ "Draw võimaldab luua ja redigeerida joonistusi, vooskeeme ning logosid."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Impress võimaldab luua ja redigeerida esitlusi slaidiseansside, koosolekute "
+#~ "ning veebilehtede jaoks."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Writer võimaldab luua ja redigeerida kirjade, aruannete, dokumentide ning "
+#~ "veebilehtede teksti ja pilte."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr ""
+#~ "Math võimaldab luua ja redigeerida teaduslikke valemeid ning võrrandeid."
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Office Suite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Loo ja redigeeri esitlusi slaidietenduseks, kohtumisteks ja veebilehtede "
+"jaoks."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Esitlus"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Esitlus"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Andmebaas"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Halda andmebaase, loo päringuid ja raporteid jälgimaks ja haldamaks oma "
+"informatsiooni."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Andmebaas"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Loo ja muuda veebilehti"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Veebilehed"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Veebilehtede loomine"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Arvutustabel"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Teosta arvutusi, analüüsi informatsiooni ja halda loendeid arvutustabelites."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Arvutustabel"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Loo ja muuda tekste ja graafikat kirjades, raportites, dokumentides ja "
+"veebilhetdel."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Kirjutaja"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Kirjutaja"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Loo ja muuda joonistusi, graafikuid ja logosid."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Joonistamine"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Joonistame"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Loo ja muuda teaduslikke valemeid ja võrrandeid."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Valem"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Valem"
--- openoffice.org-2.4.1.orig/ooo-build/po/nb.po
+++ openoffice.org-2.4.1/ooo-build/po/nb.po
@@ -0,0 +1,115 @@
+# Norwegian translations for PACKAGE package.
+# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Kjartan Maraas <kmaraas@gnome.org>, 2003-2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.1RC3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
+"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Kontorpakke"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentasjon"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Lag nettsider"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Regneark"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tekstbehandling"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Tegning"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formel"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/sr.po
+++ openoffice.org-2.4.1/ooo-build/po/sr.po
@@ -0,0 +1,117 @@
+# Serbian translation of openoffice
+# Courtesy of Prevod.org team (http://www.prevod.org/) -- 2003.
+#
+# This file is distributed under the same license as the openoffice package.
+#
+# Maintainer: Danilo Šegan <dsegan@gmx.net>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Данило Шеган <danilo@canonical.com>\n"
+"Language-Team: Serbian (sr) <serbiangnome-listaL@nongnu.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Канцеларијски пакет"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentacija"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tabele"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Obrada teksta"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Crtanje"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/POTFILES.skip
+++ openoffice.org-2.4.1/ooo-build/po/POTFILES.skip
@@ -0,0 +1,6 @@
+bonobo/data/GNOME_OpenOfficeOrg.server.in.in
+bonobo/data/ooo-bonobo-control-ui.xml
+buildbot/buildbot-source/buildbot/clients/debug.glade
+desktop/openoffice-extra.keys.in
+desktop/openoffice.keys.in
+scratch/buildbot/buildbot-0.7.3/buildbot/clients/debug.glade
--- openoffice.org-2.4.1.orig/ooo-build/po/en_CA.po
+++ openoffice.org-2.4.1/ooo-build/po/en_CA.po
@@ -0,0 +1,116 @@
+# English/Canada translation of openoffice.
+# Copyright (C) 2004-2006 Adam Weinberger and the GNOME Foundation
+# This file is distributed under the same license as the openoffice package.
+# Adam Weinberger <adamw@gnome.org>, 2004, 2005, 2006.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
+"Language-Team: Canadian English <adamw@gnome.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Office Suite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentation"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Web Page Creation"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Spreadsheet"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Word Processor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Drawing"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/tl.po
+++ openoffice.org-2.4.1/ooo-build/po/tl.po
@@ -0,0 +1,124 @@
+# Tagalog translation for openoffice.org
+# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-24 11:57+0000\n"
+"Last-Translator: dsaa <solon_594bc@yahoo.com>\n"
+"Language-Team: Tagalog <tl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Office Suite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Lumikha at isaayos ang mga pagtatanghal para sa mga slideshow, pagtitipon at "
+"mga pahina sa Web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Pagtatanghal sa OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Pagtatanghal"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Mangasiwa ng mga database, lumikha ng mga tanong at mga ulat upang masundan "
+"at pangasiwaan ang iyong impormasyon."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Database sa OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Lumikha at isaayos ang mga pahina ng Web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Pahina ng Web sa OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Paglikha ng Pahina sa Web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Spreadsheet"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Magsagawa ng mga kalkulasyon, pag-unawa sa mga impormasyon at pangasiwaan "
+"ang mga listahan sa mga spreadsheet."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Spreadsheet"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Lumikha at isaayos ang nilalaman at  mga graphics sa mga sulat, mga ulat, "
+"mga dokumento at mga pahina sa Web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Tagaproseso ng Salita sa OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tagaproseso ng Salita"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Lumikha at isaayos ang mga guhit, mga flow chart, at mga logo."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Gumuhit"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Gumuhit sa OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+"Lumikha at isaayos ang mga pangsayantipikong pormula at mga equation."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Pormula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Pormula sa OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/zh_CN.po
+++ openoffice.org-2.4.1/ooo-build/po/zh_CN.po
@@ -0,0 +1,114 @@
+# Copyright (C) 2003 OpenOffice.org
+# This file is distributed under the same license as the openoffice package.
+# storm119 <bbbush@163.com>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-25 06:51+0000\n"
+"Last-Translator: Quixote <deliver.pub@gmail.com>\n"
+"Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "办公套件"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "为演示、会议、网页创建和编辑演示文稿"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org 演示"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "演示"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "数据库"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "管理数据库、创建查询、制作信息管理跟踪的报表"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org数据库"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "创建和编辑Web页面"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Web页面"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "网页创建"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org电子表格"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "数据计算、信息分析、电子表格管理"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "电子表格"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr "创建和编辑文本、图形，通过信纸、报告、文档和网页等"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org文字处理"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "文字处理"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "创建和编辑图画、流程图和Logo"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "绘图"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org 图画"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "创建和编辑科学公式与方程。"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "公式"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org 公式"
--- openoffice.org-2.4.1.orig/ooo-build/po/id.po
+++ openoffice.org-2.4.1/ooo-build/po/id.po
@@ -0,0 +1,115 @@
+# Indonesian translation for openoffice.org
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-11 08:55+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Indonesian <id@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/km.po
+++ openoffice.org-2.4.1/ooo-build/po/km.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/ga.po
+++ openoffice.org-2.4.1/ooo-build/po/ga.po
@@ -0,0 +1,115 @@
+# Iriah (gaeilge) translations for openoffice
+# Copyright (C)  2004 Alastair McKinstry <mckinstry@computer.org>
+# This file is distributed under the same license as the PACKAGE package.
+# Alastair McKinstry <mckinstry@computer.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Alastair McKinstry <Unknown>\n"
+"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Toirbeathas"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Scarbhileog"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Próiseálaithe Focal"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Tarraingt"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/nl.po
+++ openoffice.org-2.4.1/ooo-build/po/nl.po
@@ -0,0 +1,122 @@
+# Dutch translation of GNOME-ooo module
+# Copyright (C) 2003 The Free Software Foundation
+# This file is distributed under the same license as the openoffice package.
+# Tino Meinen <a.t.meinen@chello.nl>, 2003, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNOME 2.4\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-09 17:10+0000\n"
+"Last-Translator: Jan Claeys <ubuntu@janc.be>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Kantoorsuite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Presentaties voor diashows, meetings en web-pagina's aanmaken en bewerken."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Presentatie"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentatie"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Gegevensbank"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gegevensbanken beheren, opzoekingen doen en rapporten maken om uw informatie "
+"op te volgen en te beheren."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Gegevensbank"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Web-pagina's aanmaken en bewerken."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Webpagina's"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Web-pagina's maken"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Rekenblad"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Berekeningen uitvoeren, informatie analyzeren en lijsten beheren in "
+"rekenbladen."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Rekenblad"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Teksten en afbeeldingen voor brieven, rapporten, documenten en web-pagina's "
+"aanmaken en bewerken."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Tekstverwerker"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tekstverwerker"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Tekeningen, stroomdiagrammen en logo's maken en bewerken."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Tekenen"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Tekenen"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Wetenschappelijke en wiskundige formules opstellen en bewerken."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formule"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formule"
--- openoffice.org-2.4.1.orig/ooo-build/po/pl.po
+++ openoffice.org-2.4.1/ooo-build/po/pl.po
@@ -0,0 +1,127 @@
+# Copyright (C) 2001-2002 Free Software Foundation, Inc.
+# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+# Aktualną wersję tego pliku możesz odnaleźć w repozytorium cvs.gnome.pl
+# (:pserver:anonymous@cvs.gnome.pl:/home/cvs, puste hasło)
+# Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz
+# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas na adres:
+# translators@gnome.pl
+# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-08 21:43+0000\n"
+"Last-Translator: Krzysztof Lichota <krzysiek-"
+"launchpad.ubuntu.com@lichota.net>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Pakiet biurowy"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Tworzenia i edycja prezentacji na pokazy slajdów, spotkania i strony "
+"internetowe."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Prezentacja OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentacja"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Baza danych"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Zarządzanie bazami danych, tworzenie zapytań i raportów aby śledzić i "
+"zarządzać informacjami."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Baza danych OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Tworzenie i edycja stron internetowych."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Edytor www OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Tworzenie stron internetowych"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Arkusz kalkulacyjny OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Obliczenia, analiza informacji i zarządzanie listami w  arkuszach "
+"kalkulacyjnych."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Arkusz kalkulacyjny"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Tworzenie i edycja tekstu i grafiki w listach, raportach, dokumentach i "
+"stronach www"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Edytor tekstu OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Edytor tekstu"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Tworzenie i modyfikacja rysunków, diagramów i logo."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Rysunek"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Rysunek OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Tworzenie i modyfikacja formuł i równań"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Edytor równań"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Edytor równań OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/vi.po
+++ openoffice.org-2.4.1/ooo-build/po/vi.po
@@ -0,0 +1,125 @@
+# Vietnamese Translation For OpenOffice Build.
+# Copyright © 2003-2006 Gnome i18n Project for Vietnamese.
+# This file is distributed under the same license as the ooo-build package.
+# Trinh Minh Thanh <tmthanh@yahoo.com>, 2003.
+# Clytie Siddall <clytie@riverland.net.au>, 2005-2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build Gnome HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-11-26 16:39+0000\n"
+"Last-Translator: dinhtrung <nguyendinhtrung141@gmail.com>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Bộ Ứng dụng Văn phòng"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+#, fuzzy
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Tạo và hiệu đính các ảnh trượt dùng cho bài trình bày, hội thảo và trang web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Tạo trình diễn với OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Trình diễn"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Cơ sở dữ liệu"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Quản trị CSDL, tạo truy vấn và báo cáo để nắm bắt và xử lý thông tin bạn có."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Xử lý CSDL với OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Tạo và hiệu đính trang web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Tạo trang web với OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+#, fuzzy
+msgid "Web Page Creation"
+msgstr "Tạo trang web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Bảng tính của OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+#, fuzzy
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Tính toán, phân tích thông tin và quản lý danh sách dưới dạng các bảng tính."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Bảng tính"
+
+#: ../desktop/writer.desktop.in.in.h:1
+#, fuzzy
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Tạo và hiệu đính văn bản và đồ hoạ - soạn thư, báo cáo, tài liệu và trang "
+"web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Xử lý văn bản với OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Xử lý văn bản"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Tạo và hiệu chỉnh các bản vẽ, đồ thị và logo."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Vẽ hình"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Vẽ hình với OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Tạo và hiệu đính phương trình và công thức khoa học."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Biểu thức"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Tạo biểu thức với OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/ko.po
+++ openoffice.org-2.4.1/ooo-build/po/ko.po
@@ -0,0 +1,136 @@
+# This file is distributed under the same license as the ooo-build package.
+# Changwoo Ryu <cwryu@debian.org>, 2004.
+# Namhyung Kim <namhyung@gmail.com>, 2007.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build 1.1.47\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-04 09:36+0000\n"
+"Last-Translator: Namhyung Kim <namhyung@gmail.com>\n"
+"Language-Team: Gnome Korea <gnome-kr-hackers@lists.kldp.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "Drawing (1.1)"
+#~ msgstr "그리기 (1.1)"
+
+#~ msgid "OpenOffice.org drawing package"
+#~ msgstr "OpenOffice.org 그리기 꾸러미"
+
+#~ msgid "OpenOffice.org presentation application"
+#~ msgstr "OpenOffice.org 프리젠테이션 프로그램"
+
+#~ msgid "Presentation (1.1)"
+#~ msgstr "프리젠테이션 (1.1)"
+
+#~ msgid "Spreadsheet (1.1)"
+#~ msgstr "스프레드시트 (1.1)"
+
+#~ msgid "OpenOffice.org word processor"
+#~ msgstr "OpenOffice.org 워드 프로세서"
+
+#~ msgid "Word Processor (1.1)"
+#~ msgstr "워드 프로세서 (1.1)"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "오피스 스위트"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "슬라이드와 회의 발표, 웹페이지를 위한 프레젠페이션을 만들고 수정합니다."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "오픈오피스 프레젠테이션"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "프리젠테이션"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "데이터베이스"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "데이터베이스 관리하고, 검색 쿼리와 보고서를 만들어 정보를 관리합니다."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "오픈오피스 데이터베이스"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "웹페이지를 만들고 수정합니다."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "오픈오피스 웹페이지"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "웹페이지 생성"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "오픈오피스 스프레드시트"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "계산하고, 정보를 분석하고 스프레드시트에 있는 목록을 관리합니다."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "스프레드시트"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr "편지나 보고서, 문서, 웹페이지에 있는 글과 그림을 만들고 수정합니다."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "오픈오피스 워드 프로세서"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "워드 프로세서"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "그림이나 순서도, 표어를 만들고 수정합니다."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "그리기"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "오픈오피스 그리기"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "수학 공식을 만들고 수정합니다."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "수식편집기"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "오픈오피스 수식편집기"
--- openoffice.org-2.4.1.orig/ooo-build/po/ooo-build.pot
+++ openoffice.org-2.4.1/ooo-build/po/ooo-build.pot
@@ -0,0 +1,111 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/sq.po
+++ openoffice.org-2.4.1/ooo-build/po/sq.po
@@ -0,0 +1,116 @@
+# Përkthimi i mesazheve të ooo-build në shqip
+# Ximian OpenOffice.
+# This file is distributed under the same license as the openoffice package.
+# Copyright (C) 2003 Ximian, Inc
+# Laurent Dhima <laurenti@alblinux.net>, 2003, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
+"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezantime"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Databazë"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Fleta elektronike"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Procesues teksti"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Vizatim"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formulë"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/el.po
+++ openoffice.org-2.4.1/ooo-build/po/el.po
@@ -0,0 +1,123 @@
+# translation of el.po to Greek
+# Greek translation of PACKAGE.
+# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Kostas Papadimas <pkst@gnome.org>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-02-01 17:58+0000\n"
+"Last-Translator: Kostas Papadimas <pkst@gmx.net>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Σουίτα εφαρμογών γραφείου"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Δημιουργία και επεξεργασία παρουσιάσεων για συνεδριάσεις και ιστοσελίδες."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Παρουσιάσεις OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Παρουσιάσεις"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Βάση δεδομένων"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Διαχείριση Βάσεων Δεδομένων, δημιουργία ερωτημάτων και αναφορών για "
+"παρακολούθηση και διαχείριση των πληροφοριών σας"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Βάση Δεδομένων OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Δημιουργία και επεξεργασία ιστοσελίδων"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org  Δημιουργία Ιστοσελίδων"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Δημιουργία ιστοσελίδων"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Λογιστικό Φύλλο OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Εκτέλεση υπολογισμών, ανάλυση πληροφοριών και διαχείριση λιστών δεδομένων σε "
+"λογιστικά φύλλα."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Λογιστικό φύλλο"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Δημιουργία και επεξεργασία κειμένου και γραφικών σε γράμματα, αναφορές και "
+"ιστοσελίδες"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Επεξεργαστής κειμένου OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Επεξεργαστής κειμένου"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Δημιουργία και επεξεργασία σχεδίων, διαγραμμάτων και λογοτύπων"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Σχεδιασμός"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Εφαρμογή σχεδίασης OpenOffice"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Δημιουργία και επεξεργασία συναρτήσεων και εξισώσεων"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Φόρμουλα"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Μαθηματικοί Τύποι OpenOffice"
--- openoffice.org-2.4.1.orig/ooo-build/po/uk.po
+++ openoffice.org-2.4.1/ooo-build/po/uk.po
@@ -0,0 +1,117 @@
+# Ukrainian translation of ooo-build.
+# Copyright (C) 2004
+# This file is distributed under the same license as the ooo-build package.
+# Yuriy Syrota <rasta@cvs.gnome.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-19 07:24+0000\n"
+"Last-Translator: roman prokopyshyn <colobocman@mail.ru>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Офісний Набір"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Presentation"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Презентації"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "База даних"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Database"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Створення і редагування Веб сторінок."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Web Pages"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Web Page Creation"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Spreadsheet"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Електронні таблиці"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Створення і редагування тексту і графіки  листах, звітах, документах та Веб "
+"сторінках."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Word Processor"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Текстовий процесор"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Малювання"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Drawing"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Створення і редагування наукових формул."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formula"
--- openoffice.org-2.4.1.orig/ooo-build/po/es.po
+++ openoffice.org-2.4.1/ooo-build/po/es.po
@@ -0,0 +1,122 @@
+# Ximian OpenOffice.
+# Copyright (C) 2003 Ximian, Inc
+# This file is distributed under the same license as the openoffice package.
+# Carlos Perelló Marín <carlos@gnome.org>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-03 23:25+0000\n"
+"Last-Translator: Ricardo Pérez López <ricardo@iesdonana.org>\n"
+"Language-Team: Spanish <traductores@es.gnome.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Suite de oficina"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Crear y editar diapositivas para presentaciones, reuniones y páginas web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Presentaciones"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentación"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Base de datos"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gestionar bases de datos, crear consultas e informes para controlar y "
+"gestionar su información."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Bases de datos"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Crear y editar páginas web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Páginas web"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Creación de páginas web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Hojas de cálculo"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Realizar cálculos, analizar información y gestionar listas en hojas de "
+"cálculo."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Hoja de cálculo"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Crear y editar textos y gráficos en cartas, informes, documentos y páginas "
+"web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Procesador de textos"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Procesador de textos"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Crear y editar dibujos, diagramas de flujo y logotipos."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Dibujo"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Dibujos"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Crear y editar fórmulas científicas y ecuaciones."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fórmula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Fórmulas"
--- openoffice.org-2.4.1.orig/ooo-build/po/ca.po
+++ openoffice.org-2.4.1/ooo-build/po/ca.po
@@ -0,0 +1,121 @@
+# Traducció del ooo-build de l'equip de Softcatalà.
+# Copyright © 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the ooo-build package.
+# Jordi Mallach <jordi@sindominio.net>, 2003.
+# Joan Duran <jodufi@gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-10-02 13:42+0000\n"
+"Last-Translator: Jordi Irazuzta <irazuzta@gmail.com>\n"
+"Language-Team: Catalan <tradgnome@softcatala.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Paquet ofimàtic"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Creeu i editeu presentacions per a diapositives, pàgines web i conferències."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Editor de presentacions de l'OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentació"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Base de dades"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gestioneu bases de dades i creeu consultes i informes per a gestionar la "
+"vostra informació i fer-ne un seguiment."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Base de dades de l'OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Creeu i editeu pàgines web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Editor de pàgines web de l'OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Creació de pàgines web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Full de càlcul de l'OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Feu càlculs, analitzeu informació i gestioneu llistes a fulls de càlcul."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Full de càlcul"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Creeu i editeu text i gràfics a cartes, informes, documents i pàgines web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Processador de textos de l'OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Processador de textos"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Creeu i editeu dibuixos, diagrames de flux i logotips."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Dibuix"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Editor de dibuixos de l'OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Creeu i editeu fórmules científiques i equacions."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fórmula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Editor de fórmules de l'OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/ne.po
+++ openoffice.org-2.4.1/ooo-build/po/ne.po
@@ -0,0 +1,118 @@
+# translation of ooo-build.HEAD.ne.po to Nepali
+# translation of ooo-build.HEAD.po to Nepali
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Pawan Chitrakar <pawan@mpp.org.np>, 2005.
+# Shiva Prasad Pokharel <pokharelshiva@hotmail.com>, 2005.
+# Mahesh subedi <submanesh@hotmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build.HEAD.ne\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-25 07:11+0000\n"
+"Last-Translator: Mahesh Subedi <Unknown>\n"
+"Language-Team: Nepali <info@mpp.org.np>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "कार्यालय सुइट"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "ओपनअफिस डट अर्ग"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "प्रस्तुति"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "डाटाबेस"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "वेबपेज सिर्जना"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "स्प्रेडसिट"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "शब्द प्रशोधक"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "रेखाचित्र"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "सूत्र"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/ChangeLog
+++ openoffice.org-2.4.1/ooo-build/po/ChangeLog
@@ -0,0 +1,469 @@
+2007-03-25  Kostas Papadimas  <pkst@gnome.org>
+
+	* el.po: Updated Greek translation
+
+2008-03-07  Gintautas Miliauskas  <gintas@akl.lt>
+
+	* lt.po: Updated Lithuanian translation.
+
+2008-02-25  Gil Forcada  <gforcada@gnome.org>
+
+	* ca.po: Updated Catalan translation by Joan Duran.
+
+2008-02-18  Pawan Chitrakar <chautari@gmail.com>
+
+	* ne.po: Updated Nepali Translation.
+
+2008-02-14  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
+
+	* eu.po: Updated Basque translation.
+
+2007-01-10  Gil Forcada  <gforcada@svn.gnome.org>
+
+	* af.po: Updated Afrikaans translation by F Wolff.
+
+2007-12-08  Changwoo Ryu  <cwryu@debian.org>
+
+	* ko.po: Updated Korean translation by Namhyung Kim.
+
+2007-10-27  Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
+
+	* be@latin.po: Added Belarusian Latin translation.
+
+2007-08-16  Adam Weinberger  <adamw@gnome.org>
+
+	* POTFILES.skip: Added 2 files that don't appear to be part of the
+	installation.
+
+2007-05-19  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>
+
+	* pt_BR.po: Updated Brazilian Portuguese translation by Joao Emanuel
+	<joaoemanuel1981@gmail.com>.
+
+2007-04-14  Djihed Afifi <djihed@gmail.com> 
+
+	* ar.po: Updated Arabic Translation by Khaled Hosny.
+
+2007-03-30  Luca Ferretti  <elle.uca@libero.it>
+
+	* it.po: Updated Italian translation.
+
+2007-03-09  Ilkka Tuohela  <hile@iki.fi>
+
+	* fi.po: Updated Finnish translation.
+
+2007-03-01  Giuseppe Ghibò <ghibo@mandriva.com>
+	* pt_BR.po: Updated Brazilian translation (from
+          Felipe Arruda).
+
+2007-02-10  Ilkka Tuohela  <hile@iki.fi>
+
+	* fi.po: Updated Finnish translation.
+
+2007-01-29  Matic Zgur <mr.zgur@gmail.com>
+
+	* sl.po: Updated Slovenian translation.
+
+2006-12-25  Pema Geyleg  <pema.geyleg@gmail.com>
+
+	* dz.po: Added Dzongkha Translation.
+
+2006-11-18  Djihed Afifi <djihed@gmail.com> 
+
+	* ar.po: Updated Arabic Translation.
+
+2006-11-5  Vladimer Sichinava  <vsichi@gnome.org>
+
+        * ka.po: Updated Georgian translation.
+
+2006-09-25  Pawan Chitrakar  <pchitrakar@gmail.com>
+
+	* ne.po: Updated Nepali Translation
+
+2006-09-11  David Lodge <dave@cirt.net>
+
+	* en_GB.po: Updated British (English) translation.
+
+2006-08-29  Christophe Merlet  <redfox@redfoxcenter.org>
+
+	* fr.po: Updated French translation from
+	Jonathan Ernst <jonathan@ernstfamily.ch>.
+
+2006-08-16  Gabor Kelemen  <kelemeng@gnome.hu>
+
+	* hu.po: Translation updated.
+
+2006-08-09  Inaki Larranaga  <dooteo@euskalgnu.org>
+
+	* eu.po: Fixed some typos.
+
+2006-06-29  Gabor Kelemen  <kelemeng@gnome.hu>
+
+	* hu.po: Translation updated.
+
+2006-04-18  Kjartan Maraas  <kmaraas@gnome.org>
+
+	* nb.po: Updated Norwegian bokmål translation.
+
+2006-04-18  Kjartan Maraas  <kmaraas@gnome.org>
+
+	* no.po: Remove this
+
+2006-04-12  Daniel Nylander <po@danielnylander.se>
+
+        * sv.po: Updated Swedish translation.
+	
+2006-04-06  Vincent van Adrighem  <adrighem@gnome.org>
+
+	* nl.po: Translation updated by Tino Meinen.
+
+2006-03-27  Gabor Kelemen  <kelemeng@gnome.hu>
+
+	* hu.po: Hungarian translation updated.
+
+2006-02-27  Inaki Larranaga  <dooteo@euskalgnu.org>
+
+	* eu.po: Updated Basque translation.
+
+2006-02-13  Miloslav Trmac  <mitr@volny.cz>
+
+	* cs.po: Updated Czech translation.
+
+2006-02-04  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
+
+	* gl.po: Updated Galician Translation.
+
+2006-01-28  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
+
+	* es.po: Updated Spanish translation.
+
+2006-01-26  Adam Weinberger  <adamw@gnome.org>
+
+	* en_CA.po: Updated Canadian English translation.
+
+2006-01-25  Funda Wang  <fundawang@linux.net.cn>
+
+	* zh_CN.po: Updated Simplified Chinese translation.
+
+2006-01-24  Clytie Siddall <clytie@riverland.net.au>
+
+	* vi.po: Updated Vietnamese translation.
+
+2006-01-24  Ilkka Tuohela  <hile@iki.fi>
+
+	* fi.po: Updated Finnish translation.
+
+2006-01-20  Dwayne Bailey  <dwayne@translate.org.za>
+
+	* POTFILES.in: update to include all new .desktop.in files and 
+	remove old style files.
+	* *.po: Added a number of new files and updated all others with
+	translations from the new .desktop files
+
+2005-10-26  Dwayne Bailey  <dwayne@translate.org.za>
+
+	* zu.po: Add Zulu translation.
+	* nr.po: Add Ndebele (South) translation.
+
+2005-10-25  Dwayne Bailey  <dwayne@translate.org.za>
+
+	* en_ZA.po: Add South African English translation.
+	* xh.po: Add Xhosa translation.
+
+2005-10-24  Dwayne Bailey  <dwayne@translate.org.za>
+
+	* st.po: Add Southern Sotho translation.
+	* nso.po: Add Northern Sotho translation.
+	* ts.po: Add Tsonga translation.
+
+2005-10-15  Pawan Chitrakar  <pchitrakar@gmail.com>
+
+	* ne.po: Added nepali translation
+
+2005-09-07  Laurent Dhima  <laurenti@alblinux.net>
+
+	* sq.po: Updated Albanian translation.
+
+2005-08-27  Clytie Siddall <clytie@riverland.net.au>
+
+        * vi.po: Updated Vietnamese translation.
+
+2005-08-13  Clytie Siddall <clytie@riverland.net.au>
+
+        * vi.po: Updated Vietnamese translation.
+
+2005-08-04  Abel Cheung  <abelcheung@gmail.com>
+
+	* zh_TW.po: Fix language team reference and my email address.
+
+2005-07-23  Funda Wang  <fundawang@linux.net.cn>
+
+	* zh_CN.po: Updated Simplified Chinese translation.
+
+2005-06-28  Kostas Papadimas <pkst@gnome.org>
+
+	* el .po: Updated Greek  translation by  Simos Xenitellis <simos@gnome.org>
+
+2005-06-23  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
+
+	* gl.po: Updated Galician translation.
+
+2005-05-01  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
+
+	* es.po: Updated Spanish translation.
+
+2005-04-19  David Lodge  <dave@cirt.net>
+
+	* en_GB.po: Updated British English translation.
+
+2005-04-11  Alexander Shopov  <ash@contact.bg>
+
+	* bg.po: Updated Bulgarian translation by
+	Vladimir Petkov <vpetkov@i-space.org>
+
+2005-04-11  Vincent van Adrighem  <adrighem@gnome.org>
+
+	* nl.po: Translation updated by Tino Meinen.
+
+2005-04-01  Steve Murphy  <murf@e-tools.com>
+
+	* rw.po: Added Kinyarwanda translation.
+
+2005-04-01  Pablo Saratxaga  <pablo@mandrakesoft.com>
+
+	* wa.po: Updated Walloon file
+
+2005-03-22  Gabor Kelemen  <kelemeng@gnome.hu>
+
+	* hu.po: Hungarian translation updated.
+
+2005-03-11  Miloslav Trmac  <mitr@volny.cz>
+
+	* cs.po: Updated Czech translation.
+
+2005-03-08  Marcel Telka  <marcel@telka.sk>
+
+	* sk.po: Updated Slovak translation.
+
+2005-03-08  Frank Arnold  <farnold@cvs.gnome.org>
+
+	* de.po: Updated German translation.
+
+2005-03-07  Adam Weinberger  <adamw@gnome.org>
+
+	* en_CA.po: Updated Canadian English translation.
+
+2005-03-07  Michael Meeks  <michael.meeks@novell.com>
+
+	* POTFILES.in: add formula.
+
+2005-03-06  Marcel Telka  <marcel@telka.sk>
+
+	* sk.po: Updated Slovak translation.
+
+2005-03-04  Tommi Vainikainen  <thv@iki.fi>
+
+	* fi.po: Added Finnish translation.
+
+2005-02-22  Laurent Dhima  <laurenti@alblinux.net>
+
+	* sq.po: Updated Albanian translation.
+
+2005-02-19  Miloslav Trmac  <mitr@volny.cz>
+
+	* cs.po: Updated Czech translation.
+
+2005-02-16  Kjartan Maraas  <kmaraas@gnome.org>
+
+	* nb.po: Update
+	* no.po: Update
+
+2005-02-17  Vincent van Adrighem  <adrighem@gnome.org>
+
+	* nl.po: Translation updated by Tino Meinen.
+
+2005-02-17  Frank Arnold  <farnold@cvs.gnome.org>
+
+	* de.po: Updated German translation.
+
+2005-02-17  Adam Weinberger  <adamw@gnome.org>
+
+	* en_CA.po: Updated Canadian English translation.
+
+2005-02-10  Michael Meeks  <michael.meeks@novell.com>
+
+	* POTFILES.in: add 'database' desktop file.
+
+2005-02-09  Christian Rose  <menthos@menthos.com>
+
+	* bg.po, bs.po, el.po, gu.po, he.po, ka.po: Copied
+	from obsolete "openoffice" module.
+
+2005-02-09  Jordi Mallach  <jordi@sindominio.net>
+
+	* POTFILES.in: Remove 1.1 desktop.in files.
+	* ca.po: Updated Catalan translation.
+
+2004-12-15  Michael Meeks  <michael.meeks@novell.com>
+
+	* zh_CN.po: merge bits from Novell translation team
+
+2004-08-21  Kjartan Maraas  <kmaraas@gnome.org>
+
+	* nb.po: Add.
+	* no.po: Update.
+
+2004-05-01  Adam Weinberger  <adamw@gnome.org>
+
+	* en_CA.po: Added Canadian English translation.
+
+2004-04-07  Yuriy Syrota  <rasta@cvs.gnome.org>
+
+	* uk.po: Added Ukrainian translation.
+
+2004-04-08  Gareth Owen  <gowen72@yahoo.com>
+
+	* en_GB.po: Added British English translation by
+	David Lodge <dave@cirt.net>
+
+2004-04-07  Samúel Jón Gunnarsson  <sammi@techattack.nu>
+
+	* is.po:  Added Icelandic translation by
+	Helgi Þormar Þorbjörnsson  <helgi@trance.is>
+
+2004-03-20  Robert Sedak  <robert.sedak@sk.htnet.hr>
+
+        * hr.po: Updated Croatian translation.
+
+2004-03-14 Alastair McKinstry <mckinstry@computer.org>
+
+	* ga.po: Added Irish translation.
+
+2004-03-04  Guntupalli Karunakar  <karunakar@freedomink.org>
+
+	* pa.po: Added Punjabi translation by
+	Amanpreet Singh Alam <amanlinux@netscape.net>.
+
+2004-02-21  Yukihiro Nakai  <nakai@gnome.gr.jp>
+
+	* ja.po: Initial Japanese translation.
+
+2004-02-07  Robert Sedak  <robert.sedak@sk.htnet.hr>
+ 
+         * hr.po: Updated Croatian translation.
+
+2004-01-25  Andras Timar  <timar@gnome.hu>
+
+	* hu.po: Updated Hungarian translation.
+
+2004-01-21  Changwoo Ryu  <cwryu@debian.org>
+
+	* ko.po: Updated Korean translation.
+
+	* ko.po: Added Korean translation.
+
+2004-01-08  Iñaki Larrañaga  <dooteo@euskalgnu.org>
+
+	* eu.po: Added Basque translation by
+		Mikel Olasagasti <hey_neken@mundurat.net>.
+
+2003-12-11  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
+
+	* sk.po: Added Slovak translation by Zdenko Podobny.
+
+2003-12-07  Paisa Seeluangsawat  <paisa@users.sf.net>
+
+        * th.po: Added Thai (th) translation.
+
+2003-12-04  Gustavo Maciel Dias Vieira  <gdvieira@zaz.com.br>
+
+	* pt_BR.po: Added Brazilian Portuguese translation done by Tiago
+	Cardoso Menezes <zion@via-rs.net>.
+
+2003-10-25  Metin Amiroff  <metin@karegen.com>
+
+	* az.po: Added Azerbaijani translation.
+
+2003-10-05  Wang Jian  <lark@linux.net.cn>
+
+	* zh_CN.po: Added Simplified Chinese translation by
+	storm119 <bbbush@163.com>.
+
+2003-09-09  Duarte Loreto <happyguy_pt@hotmail.com>
+
+	* pt.po: Added Portuguese translation.
+
+2003-09-05  Miloslav Trmac  <mitr@volny.cz>
+
+	* cs.po: Added Czech translation.
+
+2003-09-05  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>
+
+	* nl.po: Dutch translation added by Tino Meinen.
+
+2003-09-03  Artur Flinta  <aflinta@cvs.gnome.org>
+
+	* pl.po: Updated Polish translation.
+
+2003-09-03  Artur Flinta  <aflinta@cvs.gnome.org>
+
+	* pl.po: Updated Polish translation.
+
+2003-09-03  Pablo Saratxaga  <pablo@mandrakesoft.com>
+
+	* vi.po,wa.po: Added Vietnamese and Walloon files
+
+2003-09-01  Jordi Mallach  <jordi@sindominio.net>
+
+	* ca.po: Added Catalan translation.
+
+2003-08-30  Christophe Merlet  <redfox@redfoxcenter.org>
+
+	* fr.po: Added French translation.
+
+2003-08-30  Danilo Šegan  <dsegan@gmx.net>
+
+	* sr.po, sr@Latn.po: Added Serbian translation.
+
+2003-08-29  Hasbullah Bin Pit <sebol@ikhlas.com>
+                                                                                
+        * ms.po: Added Malay translation.
+
+2003-08-25  Christian Neumair  <chris@gnome-de.org>
+
+	* de.po: Updated German translation.
+
+2003-08-21  Ole Laursen  <olau@hardworking.dk>
+
+	* da.po: Added Danish translation.
+
+2003-08-20  Abel Cheung  <maddog@linux.org.hk>
+
+	* zh_TW.po: Fix license.
+
+2003-08-20  Abel Cheung  <maddog@linux.org.hk>
+
+	* zh_TW.po: New traditional Chinese translation.
+
+2003-08-20  Martin Kretzschmar  <m_kretzschmar@gmx.net>
+
+	* de.po: reinsert dropped umlauts.
+
+2003-08-20  Kjartan Maraas  <kmaraas@gnome.org>
+
+	* no.po: Added Norwegian translation.
+
+2003-08-20  Christian Rose  <menthos@menthos.com>
+
+	* sv.po: Added Swedish translation.
+
+2003-08-20  Laurent Dhima  <laurenti@alblinux.net>
+
+	* sq.po: Added Albanian file.
+
+2003-08-20  Carlos Perelló Marín <carlos@gnome.org>
+
+	* POTFILES.in: Added with all translatable files
+	* de.po: Added from previous translations.
+	* es.po: Translated.
+
--- openoffice.org-2.4.1.orig/ooo-build/po/en_ZA.po
+++ openoffice.org-2.4.1/ooo-build/po/en_ZA.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-10-20 22:15+0200\n"
+"PO-Revision-Date: 2005-10-25 10:15+0200\n"
+"Last-Translator: Dwayne Bailey <dwayne@translate.org.za>\n"
+"Language-Team: South African English <dwayne@translate.org.za>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: desktop/drawing.desktop.in.in.h:1
+msgid "Drawing"
+msgstr "Drawing"
+
+#: desktop/drawing.desktop.in.in.h:2
+msgid "OpenOffice.org drawing package"
+msgstr "OpenOffice.org drawing package"
+
+#: desktop/presentation.desktop.in.in.h:1
+msgid "OpenOffice.org presentation application"
+msgstr "OpenOffice.org presentation application"
+
+#: desktop/presentation.desktop.in.in.h:2
+msgid "Presentation"
+msgstr "Presentation"
+
+#: desktop/spreadsheet.desktop.in.in.h:1
+msgid "OpenOffice.org spreadsheet"
+msgstr "OpenOffice.org spreadsheet"
+
+#: desktop/spreadsheet.desktop.in.in.h:2
+msgid "Spreadsheet"
+msgstr "Spreadsheet"
+
+#: desktop/textdoc.desktop.in.in.h:1
+msgid "OpenOffice.org word processor"
+msgstr "OpenOffice.org word processor"
+
+#: desktop/textdoc.desktop.in.in.h:2
+msgid "Word Processor"
+msgstr "Word Processor"
+
+#: desktop/database.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: desktop/database.desktop.in.in.h:2
+msgid "OpenOffice.org database"
+msgstr "OpenOffice.org database"
+
+#: desktop/formula.desktop.in.in.h:1
+msgid "Formula"
+msgstr "Formula"
+
+#: desktop/formula.desktop.in.in.h:2
+msgid "OpenOffice.org formula editor"
+msgstr "OpenOffice.org formula editor"
+
+#: desktop/base.desktop.in.in:16
+msgid "Manage databases, create queries and reports to track and manage your information by using Base."
+msgstr "Manage databases, create queries and reports to track and manage your information by using Base."
+
+#: desktop/calc.desktop.in.in:15
+msgid "Perform calculation, analyze information and manage lists in spreadsheets by using Calc."
+msgstr "Perform calculation, analyse information and manage lists in spreadsheets by using Calc."
+
+#: desktop/draw.desktop.in.in:16
+msgid "Create and edit drawings, flow charts, and logos by using Draw."
+msgstr "Create and edit drawings, flow charts, and logos by using Draw."
+
+#: desktop/impress.desktop.in.in:16
+msgid "Create and edit presentations for slideshows, meeting and Web pages by using Impress."
+msgstr "Create and edit presentations for slideshows, meeting and Web pages by using Impress."
+
+#: desktop/writer.desktop.in.in:16
+msgid "Create and edit text and graphics in letters, reports, documents and Web pages by using Writer."
+msgstr "Create and edit text and graphics in letters, reports, documents and Web pages by using Writer."
+
+#: desktop/math.desktop.in.in:15
+msgid "Create and edit scientific formulas and equations by using Math."
+msgstr "Create and edit scientific formulae and equations by using Math."
--- openoffice.org-2.4.1.orig/ooo-build/po/af.po
+++ openoffice.org-2.4.1/ooo-build/po/af.po
@@ -0,0 +1,114 @@
+# Afrikaans translation of ooo-build
+# This file is distributed under the same license as the ooo-build package.
+# F Wolff <friedel@translate.org.za>, 2008
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Friedel Wolff <Unknown>\n"
+"Language-Team: Afrikaans localisation list<translate-discuss-"
+"af@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Kantoorsuite"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Voorlegging"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Databasis"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Skep webbladsye"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Sigblad"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Woordverwerker"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Teken"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formule"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/cy.po
+++ openoffice.org-2.4.1/ooo-build/po/cy.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/be@latin.po
+++ openoffice.org-2.4.1/ooo-build/po/be@latin.po
@@ -0,0 +1,124 @@
+# Biełaruski pierakład ooo-build.
+# Copyright (C) Ihar Hrachyshka 2007
+# This file is distributed under the same license as the ooo-build package.
+# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-10-27 12:41+0300\n"
+"PO-Revision-Date: 2006-01-23 14:46+0100\n"
+"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n"
+"Language-Team: Belarusian Latin <i18n@mova.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Ofisny nabor"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid ""
+"Create and edit presentations for slideshows, meeting and Web pages by using "
+"Impress."
+msgstr ""
+"Stvaraj i redahuj prezentacyi dla pakazaŭ słajdaŭ, naradaŭ i staronak "
+"sieciva z dapamohaj Impress."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Impress"
+msgstr "OpenOffice.org Impress"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentacyja"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Baza źviestak"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information by using Base."
+msgstr ""
+"Kiruj bazami źviestak, stvaraj zapyty j raparty, kab vieści j kiravać "
+"infarmacyjaj z dapamohaj Base."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Base"
+msgstr "OpenOffice.org Base"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages by using Writer."
+msgstr "Stvaraj i redahuj staronki sieciva z dapamohaj Math."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Writer/Web"
+msgstr "OpenOffice.org Writer/Web"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Stvareńnie staronki sievica"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Calc"
+msgstr "OpenOffice.org Calc"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets by "
+"using Calc."
+msgstr ""
+"Padličvaj, analizuj infarmacyju i kiruj śpisami ŭ raźlikovych arkušach z "
+"dapamohaj Calc."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Raźlikovy arkuš"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages by using Writer."
+msgstr ""
+"Stvaraj i redahuj tekst i hrafiku ŭ listach, rapartach, dakumentach i "
+"staronkach sieciva z dapamohaj Writer."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Writer"
+msgstr "OpenOffice.org Writer"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Redaktar dakumentaŭ"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos by using Draw."
+msgstr "Stvaraj i redahuj rysunki, schiemy j lahatypy z dapamohaj Draw."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Rysavańnie"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Draw"
+msgstr "OpenOffice.org Draw"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations by using Math."
+msgstr "Stvaraj i redahuj navukovyja formuły i raŭnańni z dapamohaj Math."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formuła"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Math"
+msgstr "OpenOffice.org Math"
--- openoffice.org-2.4.1.orig/ooo-build/po/ms.po
+++ openoffice.org-2.4.1/ooo-build/po/ms.po
@@ -0,0 +1,114 @@
+# Duit PPRT siapa yang kebas????
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Hasbullah Bin Pit (sebol) <sebol@ikhlas.com>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Hasbullah Bin Pit <Unknown>\n"
+"Language-Team: Projek Gabai <gabai-penyumbang@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Persembahan"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Hamparan"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Pemproses Perkataan"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Lukisan"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/bn.po
+++ openoffice.org-2.4.1/ooo-build/po/bn.po
@@ -0,0 +1,118 @@
+# Bengali translation for openoffice.org
+# Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-05 13:14+0000\n"
+"Last-Translator: Khandakar Mujahidul Islam <suzan@bengalinux.org>\n"
+"Language-Team: Bengali <bn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "অফিস স্যুট"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "ওপেনঅফিস.অর্গ"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "স্লাইড শো, মিটিং এবং ওয়েব পেইজের জন্য প্রেজেন্টেশন তৈরি এবং সম্পাদনা"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "ওপেনঅফিস.অর্গ প্রেজেন্টেশন"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "প্রেজেন্টেশন"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "ডেটাবেইজ"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"আপনার তথ্য ট্র্যাক করতে এবং ব্যবস্থা করতে ডাটাবেইজ ব্যবস্থাপনা, কোয়েরি এবং "
+"রিপোর্ট তৈরি করতে।"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "ওপেনঅফিস.অর্গ ডেটাবেইজ"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "ওয়েব পেইজ তৈরী এবং সম্পাদনা।"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "ওপেনঅফিস.অর্গ ওয়েব পেইজ"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "ওয়েব পেইজ তৈরী"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "ওপেনঅফিস.অর্গ স্প্রেড শিট"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "স্প্রেডশীটে গণনা করা, তথ্য হিসাব করা এবং তালিকা ব্যবস্থাপনা করা।"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "স্প্রেডশিট"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"চিঠি, রিপোর্ট, ডকুমেন্ট এবং ওয়েব পেইজে লেখা এবং ছবি তৈরি এবং সম্পাদনা"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "ওপেনঅফিস.অর্গ ওয়ার্ড প্রসেসর"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ওয়ার্ড প্রসেসর"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "ড্রয়িং, ফ্লো চার্ট, এবং লোগো তৈরি এবং সম্পাদনা।"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "ড্রয়িং"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "ওপেনঅফিস.অর্গ ড্রয়িং"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "বৈজ্ঞানিক সূত্র এবং নীতি তৈরি এবং সম্পাদনা।"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "সূত্র"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "ওপেনঅফিস.অর্গ ফর্মুলা"
--- openoffice.org-2.4.1.orig/ooo-build/po/ja.po
+++ openoffice.org-2.4.1/ooo-build/po/ja.po
@@ -0,0 +1,115 @@
+# openoffice Japanese translation
+# Copyright (C) 2004 Free Software Foundation
+# This file is distributed under the same license as the OOo package.
+# Yukihiro Nakai <nakai@gnome.gr.jp>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-17 15:55+0000\n"
+"Last-Translator: Jun Kobayashi <kobayashi+ubuntu@junkobayashi.jp>\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "オフィススイート"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "スライドショー、会議、Webページのためのプレゼンテーションを作成・編集します。"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Presentation"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "プレゼンテーション"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "データベース"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "情報の追跡・管理のため、データベース管理、クエリーとレポートの作成を行います。"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Database"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Webページを作成・編集します。"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Web Pages"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Webページを作成します。"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Spreadsheet"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "スプレッドシート上で、計算・情報分析・リスト管理を行います。"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "スプレッドシート"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr "レター、レポート、ドキュメントおよび Web ページのテキストおよび図を作成・編集します。"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Word Processor"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ワードプロセッサ"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "図形、フローチャート、ロゴを作成・編集します。"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "図形描画"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Drawing"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "科学の公式や方程式を作成・編集します。"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formula"
--- openoffice.org-2.4.1.orig/ooo-build/po/tr.po
+++ openoffice.org-2.4.1/ooo-build/po/tr.po
@@ -0,0 +1,179 @@
+# Gnome 2.6 Turkish translation
+# This file is distributed under the same license as the GNOME package.
+# Onur Can CAKMAK <onur@uzem.itu.edu.tr>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenOffice 1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:29+0000\n"
+"Last-Translator: Muhammet Kara <Unknown>\n"
+"Language-Team: Turkish <gnome-turk@gnome.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "Drawing (1.1)"
+#~ msgstr "Çizim (1.1)"
+
+#~ msgid "OpenOffice.org drawing package"
+#~ msgstr "OpenOffice.org çizim paketi"
+
+#~ msgid "OpenOffice.org presentation application"
+#~ msgstr "OpenOffice.org sunum uygulaması"
+
+#~ msgid "Presentation (1.1)"
+#~ msgstr "Sunum (1.1)"
+
+#~ msgid "OpenOffice.org spreadsheet"
+#~ msgstr "OpenOffice.org hesap çizelgesi"
+
+#~ msgid "Spreadsheet (1.1)"
+#~ msgstr "Hesap çizelgesi (1.1)"
+
+#~ msgid "OpenOffice.org word processor"
+#~ msgstr "OpenOffice.org kelime işlem"
+
+#~ msgid "Word Processor (1.1)"
+#~ msgstr "Kelime İşlem (1.1)"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Base kullanarak veritabanlarını yönetebilir, sorgular ve raporlar "
+#~ "oluşturarak bilgilerinizi takip edebilirsiniz."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr "OpenOffice.org 2.0 Hesap Tablosu"
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "Draw kullanarak akış çizelgeleri ve logolar oluştur ve düzenle."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Impress kullanarak sunum, toplantı, belge ve Web sayfalarını oluştur ve "
+#~ "düzenle."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Writer kullanarak mektuplardaki metin ve grafikleri, rapor, belge ve Web "
+#~ "sayfalarını oluştur ve düzenle."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr ""
+#~ "Math kullanarak bilimsel formülleri ve eşitlikleri oluştur ve düzenle."
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Ofis Paketi"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Gösteriler, toplantılar ve Web sayfaları için sunular oluşturun ve "
+"düzenleyin."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Sunum"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Sunum"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Veritabanı"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Veritabanlarını yönetin, bilgilerinizi takip etmek ve yönetmek için sorgular "
+"ve raporlar oluşturun."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Veritabanı"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Web sayfaları oluşturun ve düzenleyin."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Web Sayfaları"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Web Sayfası Oluşturma"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Hesap Çizelgesi"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Hesap çizelgelerinde hesaplama yapın, bilgileri analiz edin ve listeleri "
+"yönetin."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Hesap Çizelgesi"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Mektuplar, raporlar ve Web sayfalarında metin ve görseller oluşturun ve "
+"düzenleyin."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Kelime İşlemci"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Kelime İşlemci"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Çizimler, akış şemaları ve logolar oluşturun ve düzenleyin."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Çizim"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Çizim"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Bilimsel formüller ve denklemler oluşturun ve düzenleyin."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formül"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formül"
--- openoffice.org-2.4.1.orig/ooo-build/po/eu.po
+++ openoffice.org-2.4.1/ooo-build/po/eu.po
@@ -0,0 +1,117 @@
+# translation of ooo-build.HEAD.po to Basque
+# Basque translation of openoffice.
+# Copyright (C) 2003 THE openoffice'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the openoffice package.
+#
+# Mikel Olasagasti <hey_neken@mundurat.net>, 2003.
+# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2004, 2006, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Iñaki Larrañaga Murgoitio <Unknown>\n"
+"Language-Team: Basque <itzulpena@euskalgnu.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Bulegotikako suitea"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Aurkezpena"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Datu-basea"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Web orriak sortu eta editatu."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Web Orriak"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Web orrialdeen sorrera"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Kalkulu-orria"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Testu prozesatzailea"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Marrazketa"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Formula zientifikoak eta ekuazioak editatu eta sortu."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formula"
--- openoffice.org-2.4.1.orig/ooo-build/po/kn.po
+++ openoffice.org-2.4.1/ooo-build/po/kn.po
@@ -0,0 +1,115 @@
+# Kannada translation for openoffice.org
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-02-24 18:40+0000\n"
+"Last-Translator: ಗಣೇಶ ಭಾಸ್ಕರ (Ganesha Bhaskara) <bhaskara@usc.edu>\n"
+"Language-Team: Kannada <kn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org ಮಂಡನೆ"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "ಮಂಡನೆ"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "ಧಾಕಲೆ ಭಂಡಾರ"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org ಧಾಕಲೆ ಭಂಡಾರ"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org ಜಾಲ ಪುಟಗಳು"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org ಪಠ್ಯ ಸಂಪಾದಕ"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ಪಠ್ಯ ಸಂಪಾದಕ"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "ಕಲೆ"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org ಕಲೆ"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "ಸೂತ್ರ"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org ಸೂತ್ರ"
--- openoffice.org-2.4.1.orig/ooo-build/po/it.po
+++ openoffice.org-2.4.1/ooo-build/po/it.po
@@ -0,0 +1,180 @@
+# Italian translation for ooo-build
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the ooo-build package.
+# Luca Ferretti <elle.uca@libero.it>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:28+0000\n"
+"Last-Translator: Luca Ferretti <elle.uca@libero.it>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Gestisce database, crea interrogazioni e rapporti per tracciare e gestire le "
+#~ "proprie informazioni usando Base."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Esegue calcoli, analizza informazioni e gestisce elenchi nei fogli di "
+#~ "calcolo usando Calc."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "Crea e modifica disegni, diagrammi di flusso e loghi usando Draw."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Crea e modifica presentazioni per diapositive, incontri e pagine Web usando "
+#~ "Impress."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Crea e modifica il testo e la grafica di lettere, rapporti, documenti e "
+#~ "pagine Web usando Writer."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "Crea e modifica formule scentifiche ed equazioni usando Math."
+
+#~ msgid "OpenOffice.org Impress"
+#~ msgstr "OpenOffice.org - Impress"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "OpenOffice.org - Base"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr "Crea e modifica pagine Web usando Writer."
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "OpenOffice.org Writer/Web"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "OpenOffice.org - Calc"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "OpenOffice.org - Writer"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "OpenOffice.org - Draw"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "OpenOffice.org - Math"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Suite per l'ufficio"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Crea e modifica presentazioni per diapositive, incontri e pagine Web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org - Presentazione"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentazione"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Database"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gestisce database, crea interrogazioni e rapporti per tracciare e gestire le "
+"proprie informazioni."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org - Database"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Crea e modifica pagine Web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org - Pagine web"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Creazione pagina web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org - Foglio di calcolo"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Esegue calcoli, analizza informazioni e gestisce elenchi nei fogli di "
+"calcolo."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Foglio di calcolo"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Crea e modifica il testo e la grafica di lettere, rapporti, documenti e "
+"pagine Web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org - Word processor"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Word processor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Crea e modifica disegni, diagrammi di flusso e loghi."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Disegno"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org - Disegno"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Crea e modifica formule scentifiche ed equazioni."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpeOffice.org - Formula"
--- openoffice.org-2.4.1.orig/ooo-build/po/bg.po
+++ openoffice.org-2.4.1/ooo-build/po/bg.po
@@ -0,0 +1,116 @@
+# Bulgarian translation of openoffice.
+# Copyright (C) 2004 Free Software Foundation
+# This file is distributed under the same license as the openoffice package.
+# Vladimir "Kaladan" Petkov <vpetkov@i-space.org>, 2004.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice gnome 2.8\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Vladimir \"Kaladan\" Petkov <vpetkov@i-space.org>\n"
+"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Офис пакет"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Презентация"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Бази от данни"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Електронна таблица"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Текстообработка"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Рисунка"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Формула"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/am.po
+++ openoffice.org-2.4.1/ooo-build/po/am.po
@@ -0,0 +1,115 @@
+# Amharic translation for openoffice.org
+# Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-08 11:24+0000\n"
+"Last-Translator: teferra <Unknown>\n"
+"Language-Team: Amharic <am@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "የቢሮ ጥቅል"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "ኦፕንኦፊስ.ኦርግ"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "ለስብሰባና ለመረብ ገጽ የሚሆኑ የመረጃ ትዕይንቶችን ይድረሱ ወይም ያርሙ"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "ኦፕንኦፊስ.ኦርግ ትዕይንት"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "ትዕይንት"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "ዳታባንክ"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "ዳታባንክ፣ መጠይቆችንና ሪፖርቶችን በመፍጠር በማረም መረጃዎን ያስተዳድሩ"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "ኦፕንኦፊስ.ኦርግ ዳታባንክ"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "የመረብ ገጾችን ይድረሱ፣ ያርሙ፡፡"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "ኦፕንኦፊስ.ኦርግ የመረብ ገጾች"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "የመረብ ገጽ ድርሰት"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "ኦፕንኦፊስ.ኦርግ ሠንጠረዥ አስሊ"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "መረጃዎችዎን በማጥናትና በማስላት  በሠንጠርዥ አስሊ ያስተዳድሩ"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "ሠንጠረዥ አስሊ"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr "ጽሁፍ፣ ንድፍ፣ ሪፖርት፣ ደብዳቤዎች፣ ሰነድ፣ የመረብ ገጽ... ወዘተ ይድረሱ"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "ኦፕንኦፊስ.ኦርግ ሠንጠረዥ አስሊ"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ጽሁፍ አቀናጅ"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "ምስሎችን፣ ምልክቶችን፣ የሂድት ዱካ...ወዘተ ይድረሱ"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "ምስል አቀናጅ"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "ኦፕንኦፊስ.ኦርግ ምስል አቀናጅ"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "ሳይንሳዊ ቀመሮችና ሂሳባዊ ስሌቶችን ይድረሱ፣ ያርሙ፡፡"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "ቀማሪ"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "ኦፕንኦፊስ.ኦርግ ቀማሪ"
--- openoffice.org-2.4.1.orig/ooo-build/po/be.po
+++ openoffice.org-2.4.1/ooo-build/po/be.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/pa.po
+++ openoffice.org-2.4.1/ooo-build/po/pa.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: punlinux\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Amanpreet Singh Alam <Unknown>\n"
+"Language-Team: KBST Punjab <kbstpunjab@netecape.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "ਪੇਸ਼ਕਾਰੀ"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "ਸਾਰਣੀ"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ਸ਼ਬਦਕਾਰ"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "ਡਰਾਇੰਗ"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/fr.po
+++ openoffice.org-2.4.1/ooo-build/po/fr.po
@@ -0,0 +1,182 @@
+# French translation of ooo-build.
+# Copyright (C) 2003-2006 The Free Software Foundation, Inc.
+# This file is distributed under the same license as the ooo-build package.
+#
+# Christophe Merlet (RedFox) <redfox@redfoxcenter.org>, 2003.
+# Jonathan Ernst <jonathan@ernstfamily.ch>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build ood680-m1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:29+0000\n"
+"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
+"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Gestion de bases de données, création de requêtes et rapports en utilisant "
+#~ "Base."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Calc - Calculs, analyses et gestion de listes dans des feuilles de calcul."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "Draw - Création et édition de dessins, d'organigrammes et de logos."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Impress - Création et édition de présentations pour diaporamas, réunions et "
+#~ "pages Web."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Writer - Création et édition de textes et d'images pour courrier, rapports, "
+#~ "documents et pages Web."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "Math - Création et édition de formules scientifiques et d'équations."
+
+#~ msgid "OpenOffice.org Impress"
+#~ msgstr "Présentation OpenOffice.org"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "Base de données OpenOffice.org"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr "Création et édition de pages web en utilisant Texte."
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "Texte/Web OpenOffice.org"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "Tableur OpenOffice.org"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "Texte OpenOffice.org"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "Dessin OpenOffice.org"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "Math OpenOffice.org"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Suite bureautique"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Créer et éditer des présentations pour des exposés, des réunions et des "
+"pages web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Présentation OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Présentation"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Base de données"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Gérer les bases de données, créer des requêtes et des rapports pour suivre "
+"et gérer vos propres informations."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Base de données OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Créer et éditer des pages Web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Pages Web OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Création de page web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Tableur OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Réaliser des calculs, analyser les informations et gérer les listes des "
+"feuilles de calcul."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tableur"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Créer et éditer le texte et les graphiques de lettres, rapports, documents "
+"et pages Web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Traitement de texte OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Traitement de texte"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Création et édition de dessins, organigrammes, et logos."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Dessin"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Dessin OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Créer et éditer des formules scientifiques et des équations."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formule"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Formule OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/th.po
+++ openoffice.org-2.4.1/ooo-build/po/th.po
@@ -0,0 +1,115 @@
+# Thai translations for hda package.
+# Copyright (C) 2003 THE hda'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the hda package.
+# Paisa Seeluangsawat <paisa@users.sf.net>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hda 6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Paisa Seeluangsawat <Unknown>\n"
+"Language-Team: Thai <thailang@buraphalinux.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "งานนำเสนอ"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "ตารางคำนวน"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "พิมพ์งาน"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "วาดเขียน"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/ku.po
+++ openoffice.org-2.4.1/ooo-build/po/ku.po
@@ -0,0 +1,122 @@
+# Kurdish translation for openoffice.org
+# Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-09 05:55+0000\n"
+"Last-Translator: ElîxanLoran <elixanloran@hotmail.com>\n"
+"Language-Team: Kurdish <ku@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Pakêta Ofisê"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Pêşkeşîyan jibo slideshowyan, civin û rûpelên torê biafirîne û serrast bike"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Pêşkêşiya OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Pêşkêşî"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Danegeh"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Danegiran bi rê ve bibe, ji bo şopandina agahiyan û rêveberina wan "
+"lêpirsînan bike û raporan çêbike."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Danegeha OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Rûpelên torê biafirîne û serrast bike"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Rûpelên Torê yên OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Afirandina Rûpelên Torê"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Tabloya Hesêb a OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Di xanxankên hesaban de hesaban bike, agahiyan analîz bike û lîsteyan bi rê "
+"ve bibe."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tabloya Hesêb"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Nameyan, raporan û nivîs û dîtbariyên rûpelên Webê de pêk bîne û wan "
+"sererast bike."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Bernameya nivîsandina OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Bernameya nivîsandinê"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Wêneyan, nexşeyin belqînê û logoyan biafirîne û serrast bike"
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Xêzkirin"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Xêzkirina OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Rêbazên zanistî û beramberan biafirîne û sererast bike."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formul"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Formula OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/dz.po
+++ openoffice.org-2.4.1/ooo-build/po/dz.po
@@ -0,0 +1,185 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: yangka <Unknown>\n"
+"Language-Team: dzongkha <pgeyleg@dit.gov.bt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+"X-Poedit-Country: BHUTAN\n"
+"X-Poedit-Language: Dzongkha\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "གནད་སྡུད་གཞི་རྟེན་ཚུ་འཛིནསྐྱོང་འབད་ "
+#~ "དྲི་བ་ཚུ་གསར་བསྐྲུན་འབད་ནི་དང་རྗེས་འཚོལ་ལུ་སྙན་ཞུ་ཚུ་དང་ཁྱོད་རའི་བརྡ་དོན་གཞི་"
+#~ "རིམ་ལག་ལེན་འཐབ་དེ་གིས་འཛིན་སྐྱོང་འབད།"
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "རྩིས་ལས་ལས་འགན་འགྲུབ་ནི་ "
+#~ "བརྡ་དོན་དཔྱད་ཞིབ་འབད་ནི་དང་ཤོག་ཁྲམ་ཚུ་ནང་ཐོ་ཡིག་ཚུ་གི་འཛིན་སྐྱོང་ཀེལསི་ལག་ལེན"
+#~ "་འཐབ་དེ་འབད།"
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr ""
+#~ "པར་རིས་ཚུ་ "
+#~ "འབབ་རྒྱུན་དཔེ་རིས་ཚུ་དང་ལས་རྟགས་ཚུ་འབྲི་ནི་ལག་ལེན་འཐབ་དེ་གིས་གསར་་བསྐྲུན་དང་ཞ"
+#~ "ུན་དག་འབད།"
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "བཤུད་བརྙན་ཚུ་གི་དོན་ལུ་གསལ་སྟོན་ཚུ་ཞུན་དག་འབད་ནི་དང་གསར་བསྐྲུན་འབད་ནི་ "
+#~ "ཨིམ་པེརིསི་ལག་ལེན་འཐབ་དེ་གིས་ཝེབ་ཤོག་ལེབ་ཚུ་དང་འཛོམས་འདུ་འབད།"
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "ཚིག་ཡིག་དང་ཚད་རིས་ཚུ་ཡི་གུ་ཚུ་ སྙན་ཞུ་ཚུ་ "
+#~ "ཡིག་ཆ་ཚུ་དང་ཝེབ་ཤོག་ལེབ་ཚུ་རྩོམ་འབྲི་པ་ལག་ལེན་འཐབ་དེ་གིས་གསར་བསྐྲུན་དང་ཞུན་དག"
+#~ "་འབད།"
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr ""
+#~ "ཚན་རིག་གི་མན་ངག་ཚུ་དང་སྙོམས་རྟགས་ཚུ་ཨང་རྩིས་ལག་ལེན་འཐབ་དེ་གིས་གསར་བསྐྲུན་དང་ཞ"
+#~ "ུན་དག་འབད།"
+
+#~ msgid "OpenOffice.org Impress"
+#~ msgstr "ཨོ་པཱན་ཨོཕིསི.ཨོ་ཨར་ཇི་ ཨིམ་པེརིསི།"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི་གཞི་རྟེན།"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr ""
+#~ "ཝེབ་ཤོག་ལེབ་ཚུ་རྩོམ་འབྲི་པ་ལག་ལེན་འཐབ་དེ་གིས་གསར་་བསྐྲུན་དང་ཞུན་དག་འབད།"
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི་རྩོམ་འབྲི་པ་/ཝེབ།"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི་ཀེལསི།"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི་རྩོམ་འབྲི་པ།"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི་འབྲི་ནི།"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི་ཨང་རྩིས།"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "ཡིག་ཚང་ཆ་ཚང་།"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "ཨོ་པཱན་ཨོ་ཕིསི.ཨོ་ཨར་ཇི།"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "གསལ་སྟོན།"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "གནད་སྡུད་གཞི་རྟེན།"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "ཝེབ་ཤོག་ལེབ་གསར་བསྐྲུན་འབད་ནི།"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "ཤོག་ཁྲམ།"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ཡིག་སྦྱོར་པ།"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "པར་རིས།"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "མན་ངག"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/zu.po
+++ openoffice.org-2.4.1/ooo-build/po/zu.po
@@ -0,0 +1,115 @@
+# Zulu translation of OpenOffice.org Build.
+# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
+# This file is distributed under the same license as the ooo-build package.
+# Translate.org.za <info@translate.org.za>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Zuza Software Foundation <Unknown>\n"
+"Language-Team: Zulu <translate-discuss-zu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Iprezenteyshin"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Idatabheyzi"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Ispredshit"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Umshini Ohlela Amagama"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Ukudweba"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Ifomula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/hi.po
+++ openoffice.org-2.4.1/ooo-build/po/hi.po
@@ -0,0 +1,115 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Openoffice-lists <Unknown>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/rw.po
+++ openoffice.org-2.4.1/ooo-build/po/rw.po
@@ -0,0 +1,123 @@
+# translation of ooo-build to Kinyarwanda.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the ooo-build package.
+# Steve Murphy <murf@e-tools.com>, 2005
+# Steve performed initial rough translation from compendium built from translations provided by the following translators:
+# Philibert Ndandali  <ndandali@yahoo.fr>, 2005.
+# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
+# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
+# Carole Karema <karemacarole@hotmail.com>, 2005.
+# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
+# Augustin KIBERWA  <akiberwa@yahoo.co.uk>, 2005.
+# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005..
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Steve Murphy <Unknown>\n"
+"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Iyerekana"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Ububikoshingiro"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Urupapurorusesuye"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Igishushanyo"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Inzira"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/oc.po
+++ openoffice.org-2.4.1/ooo-build/po/oc.po
@@ -0,0 +1,139 @@
+# Occitan translation of ooo-build.
+# Copyright (C) 2003-2006 The Free Software Foundation, Inc.
+# This file is distributed under the same license as the ooo-build package.
+#
+# Yannig MARCHEGAY (yannig@marchegay.org) - 2006-2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build ood680-m1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Yannig MARCHEGAY (Kokoyaya) <yannig@marchegay.org>\n"
+"Language-Team: Occitan (post 1500) <ubuntu-l10n-oci@lists.ubuntu.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "OpenOffice.org Basa"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr "Crear e modificar de paginas web amb Writer."
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "OpenOffice.org Writer/Web"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "OpenOffice.org Calc"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "OpenOffice.org Writer"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "OpenOffice.org Dessenh"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "OpenOffice.org Mat"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Crear e modificar de presentacions per d'expausats, de reunions e de paginas "
+"web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Presentacion OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentacion"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Basa de donadas"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Basa de donadas OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Crear e modificar de paginas oèb."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Paginas oèb OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Creacion de paginas web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Fuelha de calcul OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Fuèlha de calcul"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Tractament de tèxt OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tractament de tèxt"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Dessenh"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Dessenh OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Crear e editar de formulas scientificas e d'equations."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Formula OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/gl.po
+++ openoffice.org-2.4.1/ooo-build/po/gl.po
@@ -0,0 +1,121 @@
+# translation of gl.po to Galego
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Ignacio Casal Quinteiro <nacho.resa@gmail.com>, 2005, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: gl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-26 13:03+0000\n"
+"Last-Translator: marisma <Unknown>\n"
+"Language-Team: Galego <trasno@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Suite Office"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Crea e edita presentacións para demostracións, relatorios e páxinas web."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "Presentación de OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentación"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Base de datos"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Xestiona bases de datos, crear consultas e informes para xestionar a súa "
+"información."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "Base de datos de OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Crea e edita páxinas web."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "Páxinas web de OpenOffice.org"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Creación de páxinas Web"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "Folla de cálculo de OpenOffice.org"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Realiza cálculos, analiza información e xestiona listas mediante follas de "
+"cálculo."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Folla de cálculo"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Crea e edita texto e gráficos en cartas, informes, documentos e páxinas web."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "Procesador de textos de OpenOffice.org"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Procesador de textos"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Crea e edita debuxos, diagramas de fluxo, e logos."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Debuxo"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "Debuxo de OpenOffice.org"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Crea e edita ecuacións e fórmulas científicas."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Fórmula"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "Fórmula de OpenOffice.org"
--- openoffice.org-2.4.1.orig/ooo-build/po/wa.po
+++ openoffice.org-2.4.1/ooo-build/po/wa.po
@@ -0,0 +1,114 @@
+# Pablo Saratxaga <pablo@mandrakesoft.com>, 2003.
+# Pablo Saratxaga <pablo@walon.org>, 2005.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n"
+"Language-Team: Walloon <linux-wa@walon.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezintåcion"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Båze di dnêyes"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Tåvleu"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Aspougneu d' tecse"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Dessinaedje"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formules"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/ka.po
+++ openoffice.org-2.4.1/ooo-build/po/ka.po
@@ -0,0 +1,119 @@
+# translation of ka.po to Georgian
+# This file is distributed under the same license as the openoffice package.
+# Vladimer Sichinava <vsichi@gnome.org>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: ka\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-22 01:13+0000\n"
+"Last-Translator: Vladimer Sichinava <vsichi@gnome.org>\n"
+"Language-Team: Georgian <geognome@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "ოფისის პაკეტი"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"პრეზენტაციების შექმნა და რედაქტირება სლაიდების ჩვენების, შეხვედრებისა და ვებ "
+"გვედრდებისთვის."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org პრეზენტაცია"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "პრეზენტაცია"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "მონაცემთა ბაზა"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"მონაცემთა ბაზების მართვა, მოთხოვნებისა და ანგარიშების შექმნა თქვენი "
+"ინფორმაციის თვალყურის დევნებისა და მართვისთვის."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org მონაცემთა ბაზა"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "ვებგვერდების შექმნა და რედაქტირება."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org ვებ-გვერდები"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "ვებ-გვერდების შექმნა"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org ელცხრილი"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "გამოთვლები, ინფორმაციის ანალიზი და სიების მართვა ელცხრილებში."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "ელცხრილი"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"ტექსტისა და გრაფიკის შექმნა და რედაქტირება წერილებში, ანგარიშებში, "
+"დოკუმენტებსა და ვებ გვერდებში."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org ტექსტის რედაქტორი"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "ტექსტის რედაქტორი"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "ნახატების, სქემებისა და ლოგოების შექმნა და რედაქტირება."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "გრაფიკა"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org გრაფიკა"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "სამეცნიერო ფორმულებისა და განტოლებების შექმნა და რედაქტირება."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "ფორმულა"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org ფორმულები"
--- openoffice.org-2.4.1.orig/ooo-build/po/bs.po
+++ openoffice.org-2.4.1/ooo-build/po/bs.po
@@ -0,0 +1,115 @@
+# translation of openoffice.HEAD.po to Bosnian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Kemal Sanjta <gomez@lugzdk.ba>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Kemal Sanjta <Unknown>\n"
+"Language-Team: Bosnian <+>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Prezentacija"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Spreadsheet"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Word Processor"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Crtanje"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/ro.po
+++ openoffice.org-2.4.1/ooo-build/po/ro.po
@@ -0,0 +1,117 @@
+# Romanian translation for openoffice.org
+# Copyright (c) 2006 Rosetta Contributors and Canonical Ltd 2006
+# This file is distributed under the same license as the openoffice.org package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice.org\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:46+0000\n"
+"Last-Translator: Launchpad Translations Administrators "
+"<rosetta@launchpad.net>\n"
+"Language-Team: Romanian <ro@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+"100 > 19) || ((n % 100 == 0) && (n != 0))) ? 2: 1))\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/lt.po
+++ openoffice.org-2.4.1/ooo-build/po/lt.po
@@ -0,0 +1,124 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2007-03-11 15:24+0000\n"
+"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
+"Language-Team: <openoffice@lists.ximian.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Biuro programų komplektas"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Kurkite ir tobulinkite pateiktis (skaidres) susitikimams, pristatymams bei "
+"interneto puslapiams"
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org - pateiktys bei pristatymai"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Pateiktis"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Duomenų bazės"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Tvarkykite duombazes, kurkite užklausas bei ataskaitas informacijos kaupimui "
+"bei tvarkymui"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org duombazių sistema"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Kurkite bei keiskite interneto puslapius"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org tinklalapių programa"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Internetinių puslapių kūrimas"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org skaičiuoklė"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Atlikite skaičiavimus, analizuokite informaciją bei tvarkykite sąrašus el. "
+"lentelėse."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Skaičiuoklė"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Kurkite ir redaguokite tekstą, brėžinius bei grafiką dokumentuose, "
+"laiškuose, ataskaitose bei pranešimuose ir interneto puslapiuose."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org rašyklė"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Tekstų redaktorius"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+"Kurkite bei tobulinkite brėžinius, blokines schemas, diagramas ir logotipus."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Piešimas ir braižyba"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org piešimas/braižyba"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Kurkite bei redaguokite matematines ir kt. formules bei lygtis"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formulės"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org formulės"
--- openoffice.org-2.4.1.orig/ooo-build/po/sv.po
+++ openoffice.org-2.4.1/ooo-build/po/sv.po
@@ -0,0 +1,121 @@
+# Swedish messages for openoffice.
+# Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 2003.
+# Daniel Nylander <po@danielnylander.se>, 2006.
+#
+# $Id: sv.po,v 1.4 2006/08/14 16:57:12 pmladek Exp $
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openoffice\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2006-10-05 14:49+0000\n"
+"Last-Translator: Nafallo Bjälevik <nafallo@magicalforest.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Kontorssvit"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "Skapa och redigera presentationer för bildspel, möten och webbsidor."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org Presentation"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Presentation"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Databas"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Hantera databaser, skapa frågor och rapporter för att ha kontroll på och "
+"hantera din information."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org Databas"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Skapa och redigera webbsidor."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org Webbsidor"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Skapa webbsidor"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org Kalkylark"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Genomför beräkningar, analysera information och hantera listor i kalkylark."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Kalkylark"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Skapa och redigera text och grafik i brev, rapporter, dokument och webbsidor."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org Ordbehandlare"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Ordbehandlare"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Skapa och redigera ritningar, flödesscheman och logotyper."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Ritning"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org Ritning"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Skapa och redigera vetenskapliga formler och ekvationer."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Formel"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org Formel"
--- openoffice.org-2.4.1.orig/ooo-build/po/ar.po
+++ openoffice.org-2.4.1/ooo-build/po/ar.po
@@ -0,0 +1,176 @@
+# translation of ooo-build.HEAD.ar.po to Arabic
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Khaled Hosny <khaledhosny@eglug.org>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-03-06 15:45+0000\n"
+"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
+"Language-Team: Arabic <doc@arabeyes.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "أدِر قواعد البيانات، وأنشيء الاستعلامات والتقارير وتتبّع وإدارة معلومات "
+#~ "باستخدام بيز."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "أنجز العمليات الحسابية، وحلِّل المعلومات وأدرة القوائم في الجداول الممتدة "
+#~ "باستخدام كالك."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr "أنشيء وحرِّر الرسوم، ورسوم الدفْق البيانيّة، والشعارات باستخدام درو."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "حرِّر وأنشيء العروض التقديميّة لعروض الشرائح، والاجتماعات وصفحات الوب "
+#~ "باستخدام إمبرِس."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "أنشيء وحرِّر النصوص والرسوم في الخطابات، والتقارير، والمستندات وصفحات الوِب "
+#~ "باستخدام رايتر."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr "أنشيء وحرِّر الصيغ العلميّة والمُعادلات باستخدام ماث."
+
+#~ msgid "OpenOffice.org Impress"
+#~ msgstr "أوبن أفيس.أورج إمبرِس"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "أوبن أفيس.أورج بيز"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr "أنشيء وحرِّر صفحات الوِب باستخدام رايتر."
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "أوبن أفيس.أورج رايتر/وِب"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "أوبن أفيس.أورج كالك"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "أوبن أفيس.أورج رايتر"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "أوبن أفيس.أورج درو"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "أوبن أفيس.أورج ماث"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "طقم مكتب"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "أوبن أفيس.أورج"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr "انشاء  و تحرير العروض التقديمية  للعروض ، الاجتماعات و صفحات الويب."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "عرض تقديمي"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "قاعدة بيانات"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr "ادر قواعد البيانات ، انشئ استعلامات و تقارير"
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "انشئ و حرر صفحات الويب"
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "انشاء صفحات الوِب"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+#, fuzzy
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr "قم بعمل الحسابات، تحليل المعلومات و ادر القوائم  في الجداول"
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "جداول ممتدة"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"تنشئ و حرر النصوص و الرسوميات في الخطابات، التقارير، المستندات و صفحات الويب"
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "معالج كلمات"
+
+#: ../desktop/draw.desktop.in.in.h:1
+#, fuzzy
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "انشئ و حرر الرسومات ، خرائط التدفق و الشعارات."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "الرسم"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "انشئ و حرر الصيغ العلمية و المعادلات"
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "معادلات"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/po/hu.po
+++ openoffice.org-2.4.1/ooo-build/po/hu.po
@@ -0,0 +1,184 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Andras Timar <timar@fsf.hu>, 2004.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2005, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: ooo-build.HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: 2008-01-16 07:29+0000\n"
+"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
+"Language-Team: Hungarian <gnome@gnome.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#~ msgid ""
+#~ "Manage databases, create queries and reports to track and manage your "
+#~ "information by using Base."
+#~ msgstr ""
+#~ "Adatbázisok kezelése, lekérdezések és jelentések készítése a Base "
+#~ "használatával."
+
+#~ msgid ""
+#~ "Perform calculation, analyze information and manage lists in spreadsheets by "
+#~ "using Calc."
+#~ msgstr ""
+#~ "Számítások végrehajtása, adatok elemzése és listák kezelése munkafüzetekben "
+#~ "a Calc használatával."
+
+#~ msgid "Create and edit drawings, flow charts, and logos by using Draw."
+#~ msgstr ""
+#~ "Rajzok, folyamatábrák és logók létrehozása és szerkesztése a Draw "
+#~ "használatával."
+
+#~ msgid ""
+#~ "Create and edit presentations for slideshows, meeting and Web pages by using "
+#~ "Impress."
+#~ msgstr ""
+#~ "Bemutatók készítése és szerkesztése diavetítésekhez vagy a webre az Impress "
+#~ "használatával."
+
+#~ msgid ""
+#~ "Create and edit text and graphics in letters, reports, documents and Web "
+#~ "pages by using Writer."
+#~ msgstr ""
+#~ "Levelek, jelentések, dokumentumok és weboldalak szövegének és grafikájának "
+#~ "létrehozása és szerkesztése a Writer használatával."
+
+#~ msgid "Create and edit scientific formulas and equations by using Math."
+#~ msgstr ""
+#~ "Képletek és egyenletek létrehozása és szerkesztése a Math használatával."
+
+#~ msgid "OpenOffice.org Impress"
+#~ msgstr "OpenOffice.org Impress"
+
+#~ msgid "OpenOffice.org Base"
+#~ msgstr "OpenOffice.org Base"
+
+#~ msgid "Create and edit Web pages by using Writer."
+#~ msgstr "Weboldalak létrehozása és szerkesztése a Writer használatával."
+
+#~ msgid "OpenOffice.org Writer/Web"
+#~ msgstr "OpenOffice.org Writer/Web"
+
+#~ msgid "OpenOffice.org Calc"
+#~ msgstr "OpenOffice.org Calc"
+
+#~ msgid "OpenOffice.org Writer"
+#~ msgstr "OpenOffice.org Writer"
+
+#~ msgid "OpenOffice.org Draw"
+#~ msgstr "OpenOffice.org Draw"
+
+#~ msgid "OpenOffice.org Math"
+#~ msgstr "OpenOffice.org Math"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr "Irodai csomag"
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr "OpenOffice.org"
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+"Bemutatók készítése és szerkesztése diavetítésekhez, találkozókhoz és "
+"weblapokhoz."
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr "OpenOffice.org bemutató"
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr "Bemutatókészítő"
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr "Adatbázis"
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+"Adatbázisok kezelése, lekérdezések és jelentések készítése információk "
+"követéséhez és kezeléséhez."
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr "OpenOffice.org adatbázis"
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr "Weblapok készítése és szerkesztése."
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr "OpenOffice.org weblapszerkesztő"
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr "Weboldalak létrehozása"
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr "OpenOffice.org táblázatkezelő"
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+"Számítások végrehajtása, információk és listák kezelése táblázatokban."
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr "Táblázatkezelő"
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+"Szöveg és képek készítése és szerkesztése levelekben, jelentésekben, "
+"dokumentumokban és weboldalakon."
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr "OpenOffice.org szövegszerkesztő"
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr "Szövegszerkesztő"
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr "Rajozok, folyamatábrák és logók készítése és szerkesztése."
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr "Rajzoló"
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr "OpenOffice.org rajzoló"
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr "Tudományos képletek és egyenlőségek készítése és szerkesztése."
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr "Képlet"
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr "OpenOffice.org képletszerkesztő"
--- openoffice.org-2.4.1.orig/ooo-build/po/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/po/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = po
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = ${wildcard *.po} ChangeLog POTFILES.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  po/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  po/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/ooo-build/po/ooo-build.pot
+++ openoffice.org-2.4.1/ooo-build/ooo-build/po/ooo-build.pot
@@ -0,0 +1,111 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-22 18:39+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-03-29 17:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../desktop/template.desktop.in.in.h:1
+msgid "Office Suite"
+msgstr ""
+
+#: ../desktop/template.desktop.in.in.h:2
+msgid "OpenOffice.org"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:1
+msgid "Create and edit presentations for slideshows, meeting and Web pages."
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:2
+msgid "OpenOffice.org Presentation"
+msgstr ""
+
+#: ../desktop/impress.desktop.in.in.h:3
+msgid "Presentation"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:1
+msgid "Database"
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:2
+msgid ""
+"Manage databases, create queries and reports to track and manage your "
+"information."
+msgstr ""
+
+#: ../desktop/base.desktop.in.in.h:3
+msgid "OpenOffice.org Database"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:1
+msgid "Create and edit Web pages."
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:2
+msgid "OpenOffice.org Web Pages"
+msgstr ""
+
+#: ../desktop/web.desktop.in.in.h:3
+msgid "Web Page Creation"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:1
+msgid "OpenOffice.org Spreadsheet"
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:2
+msgid ""
+"Perform calculation, analyze information and manage lists in spreadsheets."
+msgstr ""
+
+#: ../desktop/calc.desktop.in.in.h:3
+msgid "Spreadsheet"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:1
+msgid ""
+"Create and edit text and graphics in letters, reports, documents and Web "
+"pages."
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:2
+msgid "OpenOffice.org Word Processor"
+msgstr ""
+
+#: ../desktop/writer.desktop.in.in.h:3
+msgid "Word Processor"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:1
+msgid "Create and edit drawings, flow charts, and logos."
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:2
+msgid "Drawing"
+msgstr ""
+
+#: ../desktop/draw.desktop.in.in.h:3
+msgid "OpenOffice.org Drawing"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:1
+msgid "Create and edit scientific formulas and equations."
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:2
+msgid "Formula"
+msgstr ""
+
+#: ../desktop/math.desktop.in.in.h:3
+msgid "OpenOffice.org Formula"
+msgstr ""
--- openoffice.org-2.4.1.orig/ooo-build/AUTHORS
+++ openoffice.org-2.4.1/ooo-build/AUTHORS
@@ -0,0 +1,24 @@
+Michael Meeks      <michael.meeks@novell.com>
+Jan Holesovsky     <kendy@suse.cz>
+Radek Doulik       <rodo@novell.com>
+Noel Power         <noel.power@novell.com>
+Petr Mladek        <pmladek@suse.cz>
+Martin Kretzschmar <martink@ximian.com>
+Tor Lillqvist      <tml@novell.com>
+Rene Engelhard     <rene@debian.org>
+Fridrich Strba	   <fstrba@novell.com>
+Kohei Yoshida      <kyoshida@novell.com>
+Jon Pryor          <jpryor@novell.com>
+Hubert Figuiere    <hfiguiere@novell.com>
+
+=== Heroes with a Legacy ===
+
+Chris Halls        <halls@debian.org>
+Federico Mena      <federico@ximian.com>
+Dan Williams       <dcbw@redhat.com>
+Jody Goldberg      <jody@gnome.org>
+
+=== Artists ===
+
+Jimmac <jimmac@ximian.com>
+Tigert <tigert@ximian.com>
--- openoffice.org-2.4.1.orig/ooo-build/doc/gallery.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gallery.txt
@@ -0,0 +1,70 @@
+Notes on gallery defficiencies, see also openclipart.txt:
+
+* Longer term To Do
+    + Create a better thumbnail specification
+	+ not based on 1 thumb/per/icon
+	+ single large-image/strip thing.
+	+ RGBA ?
+	    + BitmapEx (?) [ upside down ]
+	    + right-way-up etc.
+	    + index file [?] [ directory ]
+    + make gallery a tree-view widget
+    + ensure we can get relative paths included
+    + get a recursive structure setup somehow (?)
+        + output .thm to some text format - not binary blob (?) [!?]
+	+ why is any of this some random database ?
+    + add search
+
++ extras/source/gallery/
+	+ images etc. live here
++ svx/source/gallery2/
+    + galtheme.cxx
+	    + should be able to create a load of
+		     + SgaObjectBmp
+
+    + inc/galtheme.hxx:
+	    + InsertObject (SgaObject )
+	    	    + GetThumb -> bitmap
+
+    + inc/galobj.hxx (SgaObject):
+	    + SgaObjectBmp( const INetURLObject )
+	    + or SgaObjectBmp( const Graphic *,const INetURLObject );
+
+gallery1.hxx (Gallery)
+    + GalleryTheme* AcquireTheme( const String& rThemeName, SfxListener& rListener );
+
+
+Creates a theme: but no '.thm' file - required by AcquireFoo ...
+	+ 'aThmURL'  (GalleryThemeEntry) -> GetThmURL
+
+
+** Problem ** Inserts absolute URLs ...
+
+The galtheme.cxx - Insert's objects into aObjectList
+    + in ImplWriteSgaObject
+	+ very early - written to the theme stream
+	  [ with URL intact ]
+    + files written to SdgURL, SdvURL etc.
+
+* A design:
+    + svx/inc/galtheme.hxx
+	+ add member & set method: 'maDestDir', 'SetDestDir'
+	    + [ set that destdir from commandline in gal.cxx ]
+    + svx/source/gallery/galtheme.cxx (ImplWriteSgaObject)
+	- *pOStm << rObj;
+	+ rObj->WriteData( *pOStm, maDestDir );
+    + svx/inc/galobj.hxx
+	+ update all WriteData virtual methods to pass the string
+    + svx/source/gallery/galobj.cxx (WriteData*)
+	+ pass down the string to the base-class impl.
+	+ cf. tools/inc/urlobj.hxx
+	    + chop the rDestDir out of the URL
+		+ this will require the real testing etc. :-)
+
+* Numbers of galleries:
+    + svx/inc/gallery1.hxx
+	+ ULONG nLastFileNumber;
+	    + defines the highest number of the available themes
+    + svx/source/gallery2/gallery1.cxx
+	+ Gallery::CreateTheme
+	    + creates a theme using ++nLastFileNumber
--- openoffice.org-2.4.1.orig/ooo-build/doc/tinderbox.txt
+++ openoffice.org-2.4.1/ooo-build/doc/tinderbox.txt
@@ -0,0 +1,267 @@
+* Use patched rebuildhistory.cgi, cf bottom.
+
+	  still needs code to poke changed names at it.
+
+* Bonsai sync replacement using cvsup
+
+	+ dolog.pl
+	    (process_cvs_info):
+		groks:
+			/ChangeLog/1.68/Thu Sep 26 12:25:08 2002//
+		from CVS/Entries type thing.
+		$username,$lines_added,$lines_removed from rlog -N -r foo
+	     . Does it for all @changed_files, and @added_files in a directory.
+	     . builds @outlist of [R]| | delimited, + LOGCOMMENT at end.
+
+	+ Poser - how do we de-scatter this info from CVSup ?
+	     . we have:
+		  journal record
+			  + parse journal
+			  + rcs query between dates ?
+		  timestamps
+		  etc.
+
+	+ At the other end we process it with:
+		globals.pl: AddToDatabase - collates descr.
+		How do we get 'Removes' ... ? what is a remove ? from what branch etc. ?
+
+	+ We need a non-0 'selected revisions'; flatten the 'Attic' into the
+	  repo - it's not interesting; but an anachronism
+description:
+----------------------------
+revision 1.2
+date: 2002/09/27 14:52:24;  author: michael;  state: dead;  lines: +0 -0
+remove it from HEAD
+----------------------------
+revision 1.1
+date: 2002/09/27 14:51:16;  author: michael;  state: Exp;
+branches:  1.1.2;
+A test on HEAD
+----------------------------
+revision 1.1.2.3
+date: 2002/09/27 14:53:52;  author: michael;  state: dead;  lines: +0 -0
+remove from Foo branch
+----------------------------
+revision 1.1.2.2
+date: 2002/09/27 14:53:23;  author: michael;  state: Exp;  lines: +1 -1
+updated after remove
+----------------------------
+revision 1.1.2.1
+date: 2002/09/27 14:51:41;  author: michael;  state: Exp;  lines: +1 -1
+upd.
+=============================================================================
+
+
+	
+
+
+The plan:
+
+	+ auto-pop and deliver that mail on a cron job here
+	+ build the web pages from external tinderbox contributions.
+
+	To use tinderbox etc. checkout the source:
+
+* Ongoing
+	+ (/etc/cvsup/cvsup-auto.sh &) - syncs with OO.o
+
+* Setup log:
+
+	cvs -z3 -d ':pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot' checkout mozilla/webtools/<foo>
+	Where <foo> is 'lxr', 'tinderbox2', 'bonsai', 'registry'
+
+	+ First time db setup:
+		sudo mysqladmin create bonsai
+		sudo mysql -u root mysql
+		GRANT ALL PRIVILEGES ON *.* TO nobody@localhost\g
+		quit\g
+		sudo mysqladmin reload
+	+ Install libnet, MailTools, TimeDate from CPAN
+	+ bonsai/configure --prefix=/var/www
+	+ cp -a registry /var/www
+	+ Setup Apache to exec scripts in these dirs
+	+ Hack all the scripts to get the perl path right [!]
+	+ LXR's 'virtroot' has to have a '/lxr' in it NB '/'
+
+	+ Had to hack adminfuncs.pl, cvsquery.pl to add #!/bin/perl
+	  to each, and push (@INC, "/var/www/bonsai")
+
+<darragh> My incprefix in lxr.conf is : 'incprefix' => ['/include', '/include/linux', '/inc', 'inc', '/*', '*', '/inc/*', '/inc/*/*', '/.*', '/.*/inc', '/.*/inc/', '/inc/*/*/*', '/inc/*/*/*/*', '/*/include', '/*/include/linux', '/*/inc', 'inc', '/.*/inc', '/.*/.*/inc', '/.*/.*/.*/inc', '/.*/.*/.*/.*/inc', '/*/inc/', '/*/*/inc', '/*/*/*/inc', '/*/*/*/*/inc', '/*/*', '*', '/*/inc/*', '/*/inc/*/*', '/*/inc/*/*/*', '/*/inc/*/*/*/*', '/.*/include', '/.
+<darragh> */include/linux', '/inc', 'inc', '/.*', '.*', '/inc/.*', '/inc/.*/.*', '/.*', '/.*/inc', '/.*/inc/', '/.*/.*/inc/.*/.*/.*', '/inc/...*/.*/.*/.*', '/.*/include', '/.*/include/linux', '/.*/inc', 'inc', '/.*/.*', '.*', '/.*/inc/.*', '/.*/inc/.*/.*', '/.*/inc/.*/.*/.*', '/.*/inc/.*/.*/.*/.*'],
+
+
+Index: rebuildcvshistory.cgi
+===================================================================
+RCS file: /cvsroot/mozilla/webtools/bonsai/rebuildcvshistory.cgi,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 rebuildcvshistory.cgi
+--- rebuildcvshistory.cgi	27 Jun 2002 04:31:28 -0000	1.8
++++ rebuildcvshistory.cgi	2 Oct 2002 09:35:46 -0000
+@@ -1,4 +1,4 @@
+-#!/usr/bonsaitools/bin/perl -w
++#!/usr/bin/perl -w
+ #
+ # The contents of this file are subject to the Netscape Public
+ # License Version 1.1 (the "License"); you may not use this file
+@@ -19,6 +19,8 @@
+ #
+ # Contributor(s): 
+ 
++push (@INC, "/var/www/bonsai");
++
+ use diagnostics;
+ use strict;
+ 
+@@ -39,6 +41,7 @@ sub ProcessOneFile {
+      my ($filename) = @_;
+      my $rlog = Param('rlogcommand') . " $filename |";
+      my $doingtags = 0;
++     my $stat = 'C';
+      my $filehead = dirname($filename);
+      my (%branchname, $filerealname, $filetail, $line, $trimmed);
+      my ($tag, $version, $branchid, $dirid, $fileid, $indesc, $desc);
+@@ -112,7 +115,7 @@ sub ProcessOneFile {
+                                    $datestr =~ s!^(\d{4})/(\d+/\d+)!$2/$1!;
+                                    $date = str2time($datestr, "GMT");
+                                    if ($date >= $::StartFrom) {
+-                                        AddToDatabase("C|$date|$author|$::Repository|$filehead|$filetail|$revision||$branch|+$pluscount|-$minuscount", $desc);
++                                        AddToDatabase("$stat|$date|$author|$::Repository|$filehead|$filetail|$revision||$branch|+$pluscount|-$minuscount", $desc);
+                                    }
+                               }
+                               $indesc = 0;
+@@ -127,6 +130,7 @@ sub ProcessOneFile {
+                          if ($line =~ /^revision ([0-9.]*)$/) {
+                               $pluscount = ($minuscount = 0);
+                               $date = ($indesc = 0);
++			      $stat = 'C';
+                               $datestr = ($desc = ($branch = ($author = "")));
+                               $revision = $1;
+ 
+@@ -142,10 +146,18 @@ sub ProcessOneFile {
+                               $line =~ s!^author: ([^;]*);\s+!!;
+                               $author = $1;
+ 
++			      if ($line =~ /state: dead;/) {
++				  $stat = 'R';
++			      } else {
++				  $stat = 'C';
++			      }
++
+                               if ($line =~ /lines: \+(\d+) -(\d+)/) {
+                                    $pluscount = $1;
+                                    $minuscount = $2;
+-                              }
++			      } else {
++				   $stat = 'A';
++			      }
+                          }
+ 
+                          elsif ($line =~ /^branches: [0-9 .;]*$/) {
+@@ -204,6 +216,13 @@ sub ProcessDirectory {
+ 
+ 
+ $| = 1;
++my $update = 0;
++my $TIMESTAMP_PATH = '/var/lxr/batch-timestamp';
++# max time from ooo cvs -> me refreshing [?]
++my $DODGY_SAFETY_FACTOR = 3600 * 4;
++my $a;
++my $mtime;
++my $cvsup_upd = 0;
+ 
+ if ($#ARGV == 4) {
+      $::TreeID                   = $ARGV[0];
+@@ -211,6 +230,26 @@ if ($#ARGV == 4) {
+      $::FORM{'firstfile'}        = $ARGV[2];
+      $::FORM{'subdir'}           = $ARGV[3];
+      $::FORM{'modules'}          = $ARGV[4];
++} elsif ($#ARGV == 0) {
++     $::TreeID                   = $ARGV[0];
++
++# Coupled to cvsup via this ...     
++     $mtime = 0;
++     ($a,$a,$a,$a,$a,$a,$a,$a,
++      $a,$mtime,$a,$a,$a)
++	 = stat($TIMESTAMP_PATH);
++     if ($mtime) {
++	 $::FORM{'startfrom'} = gmtime ($mtime - $DODGY_SAFETY_FACTOR);
++     } else {
++	 $::FORM{'startfrom'} = '';
++     }
++     print ("Updating from stamp ". gmtime ($mtime));
++     
++     $::FORM{'firstfile'}        = '';
++     $::FORM{'subdir'}           = '';
++     $::FORM{'modules'}          = '';
++
++     $cvsup_upd = 1;
+ } else {
+      print "Content-type: text/html
+ 
+@@ -255,21 +294,51 @@ my $StartingDir;
+ ($StartingDir = "$::Repository/$::SubDir") =~ s!/.?$!! if $::SubDir;
+ 
+ 
+-print "Doing directories: @Dirs ...\n";
+-foreach my $Dir (@Dirs) {
+-     my $dir = "$::Repository/$Dir";
+-
+-     unless (grep $Dir, @::LegalDirs) {
+-          print "$Dir: is invalid, skipping...\n";
+-     }
+-
+-     if (-f $dir) {
+-          ProcessOneFile($dir);
+-     } elsif (-d $dir) {
+-          ProcessDirectory($dir);
+-     } else {
+-          print "$Dir: not a file or directory, skipping...\n";
+-     }
++if ($cvsup_upd) {
++    # CVSup prints before synching ...
++    my $delay_line='';
++    while (<STDIN>) {
++	my $line;
++	my $attic;
++	my $basename;
++	my $fname;
++	
++	$line = $_;
++
++	if ($delay_line) {
++		ProcessOneFile($delay_line);
++		$delay_line='';
++	}
++
++	if ($line =~ /\-\> Attic/) {
++	    $attic = "/Attic";
++	} else {
++	    $attic = '';
++	}
++	if ($line =~ /^ (Edit|Create) (.*\,v)/) {
++	    $basename = $fname = $2;
++	    $basename =~ s|/([^/]*)$||;
++	    $fname = $1;
++	    $delay_line = "$::Repository/$basename$attic/$fname";
++	}
++    }
++} else {
++    print "Doing directories: @Dirs ...\n";
++    foreach my $Dir (@Dirs) {
++	my $dir = "$::Repository/$Dir";
++	my $attic;
++	
++	unless (grep $Dir, @::LegalDirs) {
++	    print "$Dir: is invalid, skipping...\n";
++	
++        } elsif (-f $dir) {
++	    ProcessOneFile($dir);
++	} elsif (-d $dir) {
++	    ProcessDirectory($dir);
++	} else {
++	    print "$Dir: not a file or directory, skipping...\n";
++	}
++    }
+ }
+ 
+ exit 0;
--- openoffice.org-2.4.1.orig/ooo-build/doc/macro-storage.txt
+++ openoffice.org-2.4.1/ooo-build/doc/macro-storage.txt
@@ -0,0 +1,188 @@
+* References:
+    * svx/source/msfilter/msvbasic.cxx
+    * Costin Raiu, Kaspersky Labs, 'Apple of Discord'
+    * Virus bulletin's bontchev.pdf, svajcer.pdf
+
+Using a hacked libgsf's test-cp-msole.c:
+
+      * round-trip - works fine, 'security warning from OXP'
+      * deleting the __SRP_* streams: works fine ...
+
+'Simple' stream:
+      * Simple: 'SGetThree' -> 'SGetThack' - no pcode changes ...
+	    + no visible changes
+      * Compressed text:
+	    + 0d 0a is the VBA test line terminator
+	    + Screwing up the compression can cause _serious_
+	      artefacts - ie. Excel loop/lock / crash etc.
+      * VBA 5 -> VBA 6 ... (?)
+      * pcode line table start marker: FE CA 01 00
+	    + following 2 bytes : seemingly not a clobberable version.
+	    + blanking (0x00) pcode between 42 81 0C 00 and ff ff ff ff -
+	      gives empty 1st macro in spreadsheet.
+	    + clobbering with 0xff's results in XP crasher.
+      * clobbering the pcode results in the text changing ie.
+	   For i = 0 To 10 -> For i = 0 To 31 - with no other change.
+      * clobbered pcode with 0's from & inc. feca0100
+      * ie. pcode totally ignored.
+      * Can totally wipe all data from start to "01 ae b0 00'A''t''t',"
+	none of it used (seemingly)
+      * Can totally wipe all data _except_ pre-pended 3 items:
+        0x01 0xae 0xb0 - as long as we update offsets in 'dir' stream;
+	see later.
+      * re-compressing seems to cause some nasty grief;
+        _looks_ like a length is stored somewhere here.
+	Our version is shrunk by N bytes, - we get N bytes of
+	de-compressed crud at the end of the macro.
+
+'_VBA_PROJECT' stream:
+      * clobber byte 3 of _VBA_PROJECT to 0xa8 - also works going backwards: 0x01
+	    + no need to clobber pcode table ... [ presumably not read !? ]
+      * Office XP only requires this data in this file:
+	    + cc 61 <01> 00 00 01 + pad to 32 bytes with 0s.
+      * clobber macro name - reflected in re-load in
+	    <module-name> [functions] list - ordering odd there though.
+
+Generic stream description:
+    + first byte '1'
+    + 2nd byte == length of compressed data - 1
+    + 3rd byte == 0xb + 4 bits MSB of compressed data length
+	+ maximum recorded compressed size is 0xc0c ie 0x010cbc
+	  above which it (appears) that it reads to the EOS.
+    + 4th ... bytes = LZSS compressed macro text.
+    + VBA editor can't cope with unicode - just barfs
+	+ VBA editor can cope with 8bit chars - and writes them
+	  out as such too.
+    + can insert invalid / broken VBA with no problems.
+
+All streams contain compressed text:
+    + Sheet / Workbook / VBA etc. all re-constructed ... [!]
+
+'dir' stream:
+    * Looks like the project stream - but more authoritative ?
+    * Compression is (essentially) LZSS with no Huffman post-coding,
+        and some window size tweakage.
+    * Contains authoritative offsets for VBA text in streams
+    * re-compression a total pain; managed to get Excel to accept
+        a re-compressed 'dir' - by truncating a number of the longer
+	back-matches to < 1/2 the window size.
+    * altering the offsets - works.
+    * Stream format is:
+	    + 2 byte tag, 4 byte length, <data> [ repeat ]
+	    + the tag 0x9 is broken: it's length is 2 bytes too short.
+    * Each Stream has 4 strings: ascii/unicode pairs
+	    + unicode canonical; 1st pair: unknown, 2nd: stream name.
+	    + serious problems if all names not in sync (hmm)
+
+
+    * Cutting / reduction:
+	    + Removing both external linkage records + prepended 2 name
+	      pair works fine.
+	    + fiddling with the object count - appears to have
+	      little effect on OfficeXP - reads to EOF.
+	    + removing objects:
+		    + removing SHORT_OBJECT_COUNT -> Sheet1's name ->
+		      crashes Excel (even with decrementing the count)
+		    + If the equivalent PROJECT reference removed -
+		      works fine, can remove all Sheets.
+		    + can remove workbook if not in PROJECT.
+	    + not understood fields:
+		+ Fields 0x13, 0x2c - can be 00'd with no apparent problems
+	    + Binning all the VBA stream names (ie. not Sheet*,wbk) results
+	      in very odd loading - populates project tree just fine, (from
+	      OLE stream names?) - but code view / calculate hangs the
+	      editor; hmm.
+
+    * finally realised that the _VBA_PROJECT_CUR/PROJECT and PROJECTwm
+      streams are rather important.
+
+    * PROJECTwm - looks like an i18n hash; 8bit -> 16bit; simple list,
+      all 0 terminated with a trailing 16bits of 0.
+	+ what is VersionCompatible32="393222000" ?
+
+
+* Office 97 quirks:
+
+    + exports a '_VBA_PROJECT' storage - but can just trash it.
+	+ this is for backwards compatibility with Office 95
+	+ Office 95 doesn't have a _VBA_PROJECT stream.
+    + everything very fragile until you delete the __SRP_X
+      streams.
+    + Clobbering the 'byte 3' _VBA_PROJECT version works nicely,
+      [ you can flawlessly export OfficeXP to Office97 macros ].
+    + Binning the 'PROJECTwm' stream appears to have no effect though
+      Also mangling down the PROJECTwm set to only the macro names
+      works fine.
+    + Serious problems arise when we omit the 'Sheet 1' type
+      references in the PROJECT stream.
+	+ we can omit them from the [Workspace] section,
+	+ we must have lots of 'Document=' nodes.
+	+ [HostExtenderInfo] not necessary.
+	+ HelpContextID, HelpFile, Name not necessary.
+	+ CMG, DPB, GC: not necessary
+	+ VersionCompatible32="393222000" not necessary
+	    + Sheet names must be there; Foo1,Foo2,Foo3 no good.
+		+ they must exactly match the 'dir' entries [I guess]
+		+ The 'dir' entries must be there too ...
+	+ Workbook & Sheet streams ...
+	    The 'Workbook' stream must contain _at least_:
+		+ Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
+	    The 'Sheet' stream must contain _at least_:
+		+ Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+	+ Naming consistency
+	    + 'Workbook' name (stream & PROJECT) _must_ match with
+	       Excel 'CODENAME' (0x01ba) record, or SEGV result.
+	    + Similarly, Sheet 'CODENAME' records must also match.
+		    [ XclCodename record ]
+	+ Office 97 also segv's if we don't have a valuid
+	    + Attribute VB_Name = "<MacroSheet>"
+	    record in the macro ...
+
+
+** Appendix 1: Random _VBA_PROJECT observations:
+   
+    + Examining a typical stream;
+
+00000000  cc 61 5e 00 00 01 00 ff  09 08 00 00 09 04 00 00  |�a^....�........|
+          ^^^^^^^^^^-1-^^^^^^^^^^  ^^^^-2-^^^^ ^^^^-3-^^^^
+00000010  e4 04 01 00 00 00 00 00  00 00 00 00 01 00 05 00  |�...............|
+	  ^-4-^ ^-A-^ ^-B-^ ^-C-^  ^-D-^ ^-E-^ ^-F-^ ^-G-^
+00000020  02 00 16 01 2a 00 5c 00  47 00 7b 00 30 00 30 00  |....*.\.G.{.0.0.|
+          ^-H-^
+
+[1]   - version / magic
+[2/3] - language identifiers
+[4]   - char-set
+Lengths:
+[A]   - 
+[B]   - 
+[C]   - 
+[D]   - 
+[E]   - 
+[F]   - 
+[G]   - number of plugins / strings.
+[H]   - 
+
+      ... a number of strings ...
+      VBA section:
+
+00000770  0b 00 02 00 02 00 02 00  02 00 01 00 01 00 01 00  |................|
+	  ^-1-^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^-2-^^^^^^^^^^^^
+00000780  01 00 02 04 02 04 02 04  03 00 04 02 00 00 06 02  |................|
+          ^^^^^^^^^^^^^^^^^^^^^^^  ^-3-^ ^^^^^^^^^^^ ^-4-^
+00000790  01 00 08 02 00 00 0a 02  ff ff ff ff ff ff 00 00  |................|
+          ^^^^^^^^^^^^^^^^^ ^^^^^^^^^-5-^^^^^^^^^^^^
+-000007a0  00 00 ff ff 00 00 5a f6  67 40 03 00 00 00 01 00  |......Z.g@......|
+
+
+
+	This is all tedious overall project stuff so far ...
+
+[1] - count of VBA project elements ...
+[2] - element types - each USHORT:
+	0x1   == VBA module,
+	0x2   == sheet/workbook,
+	0x402 == class or form
+[3] - count of int32s - tags of some form (?); effectively magic:
+[5] - an offset table in 16bit chunks (?)
+	+ fixed length of 100bytes
--- openoffice.org-2.4.1.orig/ooo-build/doc/sample-macros01.txt
+++ openoffice.org-2.4.1/ooo-build/doc/sample-macros01.txt
@@ -0,0 +1,3401 @@
+Project Name : 'VBAProject'
+Quirk - duff tag length======================
+Module3
+>>>>>>
+Attribute VB_Name = "Module3"
+Sub Report1()
+'
+' Report1 Macro
+' Macro recorded 4/11/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable1000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    With ActiveSheet.PivotTables("PivotTable1000").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    With ActiveSheet.PivotTables("PivotTable1000").PivotFields("Funnel Status")
+        .PivotItems("01 Identification & Alignment").Visible = False
+        .PivotItems("02 Needs Analysis").Visible = False
+        .PivotItems("03 Solution Development").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    ActiveSheet.PivotTables("PivotTable1000").AddFields RowFields:=Array( _
+        "Product Groups", "Region", "Account - SSO"), ColumnFields:="Revenue Type", _
+        PageFields:=Array("Product", "Forecast Commit Flag", "Confidence Level", _
+        "Quarter", "Product Summary", "Funnel Status")
+    With ActiveSheet.PivotTables("PivotTable1000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable1000").PivotFields("Account - SSO").AutoShow _
+        xlAutomatic, xlTop, 5, "Sum of Revenue Amt"
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    Range("C22").Select
+    ActiveSheet.PivotTables("PivotTable1000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable1000").Format xlTable2
+    ActiveWindow.Zoom = 75
+    Columns("A:G").Select
+    Range("G1").Activate
+    ActiveSheet.PageSetup.PrintArea = "$A:$G"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$9"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$G"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    Rows("10:10").Select
+    ActiveWindow.FreezePanes = True
+    Range("D4").Select
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("C2").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[1]C[-2]"
+    Range("C2").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("C4").Select
+End Sub
+Sub Report2()
+'
+' Report2 Macro
+' Macro recorded 4/20/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable1", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable1").AddFields RowFields:=Array( _
+        "Product Groups", "Funnel Status"), ColumnFields:="Region", PageFields:= _
+        Array("Revenue Type", "Forecast Commit Flag", "Quarter")
+    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Region")
+        .PivotItems("(blank)").Visible = False
+    End With
+    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Funnel Status")
+        .PivotItems("01 Identification & Alignment").Visible = False
+        .PivotItems("02 Needs Analysis").Visible = False
+        .PivotItems("03 Solution Development").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    Range("B6").Select
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Funnel Status"). _
+        ShowAllItems = True
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Forecast Commit Flag"). _
+        CurrentPage = "Y"
+    Range("C14").Select
+    ActiveSheet.PivotTables("PivotTable1").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable1").Format xlTable2
+    ActiveWindow.Zoom = 75
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Columns("A:J").Select
+    Range("J1").Activate
+    ActiveSheet.PageSetup.PrintArea = "$A:$J"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$6"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$J"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    Rows("7:7").Select
+    ActiveWindow.FreezePanes = True
+    ActiveWindow.DisplayGridlines = False
+    Range("F1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!RC[-5]"
+    Range("F1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("F3").Select
+End Sub
+Sub Report4()
+'
+' Report4 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable4000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable4000").AddFields RowFields:=Array("Region", _
+        "District", "Account - SSO", "Funnel Status", "Quarter"), ColumnFields:="Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable4000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable4000").PivotFields("Revenue Type").AutoSort _
+        xlAscending, "Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable4000").PivotFields("Account - SSO")
+        .AutoSort xlDescending, "Sum of Revenue Amt"
+        .AutoShow xlAutomatic, xlTop, 10, "Sum of Revenue Amt"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable4000").PivotFields("Funnel Status")
+        .PivotItems("01 Identification & Alignment").Visible = False
+        .PivotItems("02 Needs Analysis").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    With ActiveSheet.PivotTables("PivotTable4000").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("D6").Select
+    Selection.Delete
+    Range("C6").Select
+    Selection.Delete
+    Range("B10").Select
+    ActiveSheet.PivotTables("PivotTable4000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable4000").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B9").Select
+    ActiveWindow.Zoom = 75
+    Columns("A:H").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$I"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$4"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$I"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[6]C[-1]"
+    Range("B1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("B2").Select
+    End Sub
+    
+Sub Report5()
+'
+' Report5 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable5000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable5000").AddFields RowFields:=Array("Product Groups", _
+        "Account - SSO", "Funnel Status", "Quarter"), ColumnFields:="Revenue Type", _
+        PageFields:=Array("Region", "District")
+    With ActiveSheet.PivotTables("PivotTable5000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable5000").PivotFields("Revenue Type").AutoSort _
+        xlAscending, "Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable5000").PivotFields("Account - SSO")
+        .AutoSort xlDescending, "Sum of Revenue Amt"
+        .AutoShow xlAutomatic, xlTop, 10, "Sum of Revenue Amt"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable5000").PivotFields("Funnel Status")
+        .PivotItems("01 Identification & Alignment").Visible = False
+        .PivotItems("02 Needs Analysis").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    With ActiveSheet.PivotTables("PivotTable5000").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("C7").Select
+    Selection.Delete
+    Range("B7").Select
+    Selection.Delete
+    Range("B10").Select
+    ActiveSheet.PivotTables("PivotTable5000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable5000").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B9").Select
+    ActiveWindow.Zoom = 75
+    Columns("A:H").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$4"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    Rows("5:5").Select
+    ActiveWindow.FreezePanes = True
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("D1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[8]C[-3]"
+    Range("D1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("D2").Select
+    End Sub
+    
+Sub Report3()
+'
+' Report3 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable3000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable3000").AddFields RowFields:=Array( _
+        "Product Groups", "Product Summary"), ColumnFields:="Region", PageFields:= _
+        Array("Product", "Revenue Type", "Funnel Status", "Forecast Commit Flag", _
+        "Confidence Level", "Quarter")
+    With ActiveSheet.PivotTables("PivotTable3000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    ActiveSheet.PivotTables("PivotTable3000").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    Range("A3").Select
+    With ActiveSheet.PivotTables("PivotTable3000").PivotFields("Funnel Status")
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("C12").Select
+    ActiveSheet.PivotTables("PivotTable3000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable3000").Format xlTable2
+    Columns("A:J").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$J"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$9"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$J"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    Rows("10:10").Select
+    ActiveWindow.FreezePanes = True
+    ActiveWindow.DisplayGridlines = False
+    Range("K3").Select
+    ActiveWindow.Zoom = 75
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+        Range("E1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[4]C[-4]"
+    Range("E1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("E2").Select
+End Sub
+Sub Report6()
+'
+' Report6 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable6000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable6000").AddFields RowFields:=Array("Region", _
+        "Product Category", "Product Summary", "Funnel Status"), PageFields:=Array( _
+        "Quarter", "Revenue Type")
+    With ActiveSheet.PivotTables("PivotTable6000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    Range("D8").Select
+    ActiveSheet.PivotTables("PivotTable6000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable6000").Format xlTable2
+    ActiveWindow.Zoom = 75
+    Columns("A:L").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$L"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$5"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$L"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    ActiveWindow.DisplayGridlines = False
+    ActiveWindow.Zoom = 75
+    Selection.Font.Bold = True
+    Range("C5").Select
+    ActiveSheet.PivotTables("PivotTable6000").PivotFields("Funnel Status").AutoSort _
+        xlAscending, "Funnel Status"
+    Range("C5").Select
+    ActiveSheet.PivotTables("PivotTable6000").PivotFields("Funnel Status"). _
+        ShowAllItems = True
+    Range("C14").Select
+    Selection.Delete
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Columns("A:B").Select
+    Selection.ColumnWidth = 31.14
+    Range("E1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!RC[1]"
+    Range("E1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("E2").Select
+End Sub
+Sub Report7()
+'
+' Report7 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable7000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable7000").AddFields RowFields:=Array("Region", "District", _
+        "Account Name", "Quarter"), ColumnFields:="Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable7000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable7000").PivotFields("Revenue Type").AutoSort _
+        xlAscending, "Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable7000").PivotFields("Account Name")
+        .AutoSort xlDescending, "Sum of Revenue Amt"
+        .AutoShow xlAutomatic, xlTop, 5, "Sum of Revenue Amt"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable7000").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("C6").Select
+    Selection.Delete
+    Range("B10").Select
+    ActiveSheet.PivotTables("PivotTable7000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable7000").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B9").Select
+    ActiveWindow.Zoom = 75
+    Columns("A:H").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$4"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("C1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[2]C[3]"
+    Range("C1").Select
+    Selection.Font.Bold = True
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("C2").Select
+    End Sub
+Sub Report8()
+'
+' Report8 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable8000", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable8000").AddFields RowFields:=Array("Region", "District", "Account Lead", _
+        "Account Name", "Quarter"), ColumnFields:="Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable8000").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable8000").PivotFields("Revenue Type").AutoSort _
+        xlAscending, "Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable8000").PivotFields("Account Name")
+        .AutoSort xlDescending, "Sum of Revenue Amt"
+        .AutoShow xlAutomatic, xlTop, 5, "Sum of Revenue Amt"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable8000").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("D6").Select
+    Selection.Delete
+    Range("B10").Select
+    ActiveSheet.PivotTables("PivotTable8000").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable8000").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B9").Select
+    ActiveWindow.Zoom = 75
+    Columns("A:H").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$4"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$I"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("C1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[4]C[3]"
+    Range("C1").Select
+    Selection.Font.Bold = True
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("C2").Select
+    End Sub
+    
+    Sub Report10()
+'
+' Report10 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable10", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable10").AddFields RowFields:=Array("Product", _
+        "Account - SSO", "Funnel Status", "Quarter"), ColumnFields:="Revenue Type", _
+        PageFields:=Array("District", "Region")
+    With ActiveSheet.PivotTables("PivotTable10").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable10").PivotFields("Revenue Type").AutoSort _
+        xlAscending, "Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable10").PivotFields("Account - SSO")
+        .AutoSort xlDescending, "Sum of Revenue Amt"
+        .AutoShow xlAutomatic, xlTop, 10, "Sum of Revenue Amt"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable10").PivotFields("Funnel Status")
+        .PivotItems("(blank)").Visible = False
+    End With
+    With ActiveSheet.PivotTables("PivotTable10").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("C7").Select
+    Selection.Delete
+    Range("B7").Select
+    Selection.Delete
+    Range("B10").Select
+    ActiveSheet.PivotTables("PivotTable10").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable10").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B9").Select
+    ActiveWindow.Zoom = 75
+    Columns("A:H").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$4"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    Rows("5:5").Select
+    ActiveWindow.FreezePanes = True
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("D1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[8]C[2]"
+    Range("D1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("D2").Select
+    End Sub
+    Sub Report9()
+'
+' Report9 Macro
+' Macro recorded 4/20/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable2", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable2").AddFields RowFields:=Array("Region", _
+        "District", "Account - SSO"), ColumnFields:="Confidence Level", PageFields:= _
+        Array("Quarter", "Product Category", "Funnel Status", "Forecast Commit Flag")
+    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Confidence Level")
+        .PivotItems("(blank)").Visible = False
+    End With
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Forecast Commit Flag"). _
+        CurrentPage = "Y"
+    Range("A3").Select
+    With ActiveSheet.PivotTables("PivotTable2").PivotFields("Funnel Status")
+        .PivotItems("06 Order Submitted").Visible = False
+        .PivotItems("07 Order Received").Visible = False
+        .PivotItems("08 Won - Booked as Rev.").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    Columns("A:B").Select
+    Columns("A:B").EntireColumn.AutoFit
+    Range("C3").Select
+    ActiveWindow.Zoom = 75
+    ActiveWindow.DisplayGridlines = False
+    Range("C16").Select
+    ActiveSheet.PivotTables("PivotTable2").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable2").Format xlTable2
+    Columns("A:G").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$G"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$7"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$G"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    Rows("8:8").Select
+    ActiveWindow.FreezePanes = True
+    Range("D1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[6]C[2]"
+    Range("D1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    Range("D2").Select
+End Sub
+Sub Report11()
+'
+' Report8 Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable11", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable11").AddFields RowFields:=Array("Region", "District", "Line Lead", _
+        "Account Name", "Quarter"), ColumnFields:="Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable11").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable11").PivotFields("Revenue Type").AutoSort _
+        xlAscending, "Revenue Type"
+    With ActiveSheet.PivotTables("PivotTable11").PivotFields("Account Name")
+        .AutoSort xlDescending, "Sum of Revenue Amt"
+    End With
+    ActiveWorkbook.ShowPivotTableFieldList = True
+    With ActiveSheet.PivotTables("PivotTable11").PivotFields("Quarter")
+        .PivotItems("Q1-06").Visible = False
+        .PivotItems("Q2-06").Visible = False
+        .PivotItems("Q4-05").Visible = False
+        .PivotItems("(blank)").Visible = False
+    End With
+    Range("D6").Select
+    Selection.Delete
+    Range("B10").Select
+    ActiveSheet.PivotTables("PivotTable11").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable11").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("B9").Select
+    ActiveWindow.Zoom = 75
+    Columns("A:H").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$H"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$4"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$I"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    ActiveWindow.DisplayGridlines = False
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    Range("C1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[10]C[3]"
+    Range("C1").Select
+    Selection.Font.Bold = True
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("C2").Select
+    End Sub
+Sub Report12()
+'
+' Report12 Macro
+' Macro recorded 5/16/2005 by jmarri
+'
+
+'
+    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Unity") _
+        .CreatePivotTable TableDestination:="", TableName:="PivotTable5", _
+        DefaultVersion:=xlPivotTableVersion10
+    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
+    ActiveSheet.Cells(3, 1).Select
+    ActiveSheet.PivotTables("PivotTable5").AddFields RowFields:=Array("Region", _
+        "District", "Account Lead", "Line Lead", "Account - SSO", "SSO ID", "Revenue Type") _
+        , ColumnFields:="Funnel Status", PageFields:=Array("Quarter", _
+        "Forecast Commit Flag")
+    With ActiveSheet.PivotTables("PivotTable5").PivotFields("Revenue Amt")
+        .Orientation = xlDataField
+        .Caption = "Sum of Revenue Amt"
+        .Function = xlSum
+        .NumberFormat = "#,##0_);[Red](#,##0)"
+    End With
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Funnel Status").AutoSort _
+        xlDescending, "Funnel Status"
+    Range("A8").Select
+    ActiveSheet.PivotTables("PivotTable5").PivotSelect "", xlDataAndLabel, True
+    ActiveSheet.PivotTables("PivotTable5").Format xlTable2
+    Cells.Select
+    Cells.EntireColumn.AutoFit
+    ActiveWindow.Zoom = 75
+    Columns("E:E").Select
+    Selection.ColumnWidth = 63
+    Range("H5").Select
+    Selection.Delete
+    Range("D1").Select
+    ActiveCell.FormulaR1C1 = "=Analytics!R[10]C[-3]"
+    Range("D1").Select
+    With Selection.Font
+        .Name = "Arial"
+        .Size = 16
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Font.Bold = True
+    ActiveWindow.DisplayGridlines = False
+    Columns("A:P").Select
+    ActiveSheet.PageSetup.PrintArea = "$A:$P"
+    With ActiveSheet.PageSetup
+        .PrintTitleRows = "$1:$5"
+        .PrintTitleColumns = ""
+    End With
+    ActiveSheet.PageSetup.PrintArea = "$A:$P"
+    With ActiveSheet.PageSetup
+        .LeftHeader = ""
+        .CenterHeader = ""
+        .RightHeader = ""
+        .LeftFooter = ""
+        .CenterFooter = ""
+        .RightFooter = ""
+        .LeftMargin = Application.InchesToPoints(0.75)
+        .RightMargin = Application.InchesToPoints(0.75)
+        .TopMargin = Application.InchesToPoints(1)
+        .BottomMargin = Application.InchesToPoints(1)
+        .HeaderMargin = Application.InchesToPoints(0.5)
+        .FooterMargin = Application.InchesToPoints(0.5)
+        .PrintHeadings = False
+        .PrintGridlines = False
+        .PrintComments = xlPrintNoComments
+        .PrintQuality = 300
+        .CenterHorizontally = False
+        .CenterVertically = False
+        .Orientation = xlPortrait
+        .Draft = False
+        .PaperSize = xlPaperLetter
+        .FirstPageNumber = xlAutomatic
+        .Order = xlDownThenOver
+        .BlackAndWhite = False
+        .Zoom = False
+        .FitToPagesWide = 1
+        .FitToPagesTall = 100
+        .PrintErrors = xlPrintErrorsDisplayed
+    End With
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    Columns("B:D").Select
+    Selection.ColumnWidth = 15.43
+    Columns("H:P").Select
+    Columns("H:P").EntireColumn.AutoFit
+    ActiveWindow.ScrollColumn = 7
+    ActiveWindow.ScrollColumn = 2
+    ActiveWindow.ScrollColumn = 1
+    Range("D3").Select
+End Sub
+
+
+<<<<<<
+======================
+ThisWorkbook
+>>>>>>
+Attribute VB_Name = "ThisWorkbook"
+Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet1
+>>>>>>
+Attribute VB_Name = "Sheet1"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet2
+>>>>>>
+Attribute VB_Name = "Sheet2"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet23
+>>>>>>
+Attribute VB_Name = "Sheet23"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet4
+>>>>>>
+Attribute VB_Name = "Sheet4"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet5
+>>>>>>
+Attribute VB_Name = "Sheet5"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet6
+>>>>>>
+Attribute VB_Name = "Sheet6"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet7
+>>>>>>
+Attribute VB_Name = "Sheet7"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet8
+>>>>>>
+Attribute VB_Name = "Sheet8"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+
+<<<<<<
+======================
+Sheet9
+>>>>>>
+Attribute VB_Name = "Sheet9"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet10
+>>>>>>
+Attribute VB_Name = "Sheet10"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet25
+>>>>>>
+Attribute VB_Name = "Sheet25"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet20
+>>>>>>
+Attribute VB_Name = "Sheet20"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet33
+>>>>>>
+Attribute VB_Name = "Sheet33"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet14
+>>>>>>
+Attribute VB_Name = "Sheet14"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet15
+>>>>>>
+Attribute VB_Name = "Sheet15"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet16
+>>>>>>
+Attribute VB_Name = "Sheet16"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet17
+>>>>>>
+Attribute VB_Name = "Sheet17"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet18
+>>>>>>
+Attribute VB_Name = "Sheet18"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet19
+>>>>>>
+Attribute VB_Name = "Sheet19"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet35
+>>>>>>
+Attribute VB_Name = "Sheet35"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet26
+>>>>>>
+Attribute VB_Name = "Sheet26"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet22
+>>>>>>
+Attribute VB_Name = "Sheet22"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet13
+>>>>>>
+Attribute VB_Name = "Sheet13"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet34
+>>>>>>
+Attribute VB_Name = "Sheet34"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module2
+>>>>>>
+Attribute VB_Name = "Module2"
+Sub Refresh()
+'
+' Refresh Macro
+' Macro recorded 1/19/2005 by jmarri
+'
+
+'
+    Sheets("Summarys").Visible = True
+    Sheets("Summarys").Select
+    Range("A7").Select
+    ActiveSheet.PivotTables("Main_Summary").PivotCache.Refresh
+    ActiveSheet.PivotTables("Finance_Main").PivotCache.Refresh
+    ActiveWindow.SelectedSheets.Visible = False
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    Sheets("Cover").Select
+    Range("L2").Select
+End Sub
+
+
+Sub Current()
+'
+' Current Macro
+' Macro recorded 1/19/2005 by jmarri
+'
+
+'
+    Application.Run "'Opportunity & Forecast Report_Northeast.xls'!CurrentPrep"
+    Sheets("Summarys").Visible = True
+    Sheets("Summarys").Select
+    ActiveSheet.PivotTables("Main_Summary").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable95").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable94").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable93").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable92").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable89").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable90").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable91").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable99").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable98").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable97").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable88").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable87").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable86").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable85").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable84").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable82").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable83").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable76").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable77").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable78").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable79").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable80").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable81").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable75").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable68").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable69").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable70").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable71").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable72").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable74").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable73").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys PBU").Visible = True
+    Sheets("Summarys PBU").Select
+    ActiveSheet.PivotTables("PivotTable103").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable104").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable105").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable106").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable107").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable110").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable109").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable108").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable100").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable101").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable102").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable111").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable112").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable113").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable114").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable115").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable117").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable116").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable123").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable122").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable121").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable120").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable119").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable118").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable124").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable131").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable130").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable129").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable128").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable127").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable125").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable126").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys Category").Visible = True
+    Sheets("Summarys Category").Select
+    ActiveSheet.PivotTables("PivotTable22").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable23").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable24").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable3").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable20").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable19").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable18").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable17").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable16").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable15").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable14").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable25").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable26").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable27").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable28").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable29").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable30").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable31").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable21").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable9").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable10").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable11").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable12").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable32").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable13").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable8").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable4").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable7").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveSheet.PivotTables("PivotTable6").PivotFields("Quarter").CurrentPage = _
+        "Q3-05"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Cover").Select
+    Range("L2").Select
+End Sub
+
+
+Sub CurrentPlus1()
+'
+' CurrentPlus1 Macro
+' Macro recorded 1/19/2005 by jmarri
+'
+
+'
+    Application.Run "'Opportunity & Forecast Report_Northeast.xls'!FuturePrep"
+    Sheets("Summarys").Visible = True
+    Sheets("Summarys").Select
+    ActiveSheet.PivotTables("Main_Summary").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable95").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable94").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable93").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable92").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable89").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable90").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable91").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable99").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable98").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable97").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable88").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable87").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable86").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable85").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable84").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable82").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable83").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable76").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable77").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable78").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable79").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable80").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable81").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable75").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable68").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable69").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable70").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable71").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable72").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable74").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable73").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys PBU").Visible = True
+    Sheets("Summarys PBU").Select
+    ActiveSheet.PivotTables("PivotTable103").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable104").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable105").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable106").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable107").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable110").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable109").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable108").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable100").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable101").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable102").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable111").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable112").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable113").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable114").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable115").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable117").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable116").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable123").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable122").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable121").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable120").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable119").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable118").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable124").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable131").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable130").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable129").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable128").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable127").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable125").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable126").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys Category").Visible = True
+    Sheets("Summarys Category").Select
+        ActiveSheet.PivotTables("PivotTable22").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable23").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable24").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable3").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable20").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable19").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable18").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable17").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable16").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable15").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable14").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable25").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable26").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable27").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable28").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable29").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable30").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable31").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable21").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable9").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable10").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable11").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable12").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable32").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable13").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable8").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable4").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable7").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveSheet.PivotTables("PivotTable6").PivotFields("Quarter").CurrentPage = _
+        "Q4-05"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Cover").Select
+    Range("L2").Select
+End Sub
+Sub CurrentPlus2()
+'
+' CurrentPlus2 Macro
+' Macro recorded 1/19/2005 by jmarri
+'
+
+'
+    Application.Run "'Opportunity & Forecast Report_Northeast.xls'!FuturePrep"
+    Sheets("Summarys").Visible = True
+    Sheets("Summarys").Select
+    ActiveSheet.PivotTables("Main_Summary").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable95").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable94").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable93").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable92").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable89").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable90").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable91").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable99").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable98").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable97").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable88").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable87").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable86").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable85").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable84").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable82").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable83").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable76").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable77").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable78").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable79").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable80").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable81").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable75").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable68").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable69").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable70").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable71").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable72").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable74").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable73").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys PBU").Visible = True
+    Sheets("Summarys PBU").Select
+    ActiveSheet.PivotTables("PivotTable103").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable104").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable105").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable106").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable107").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable110").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable109").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable108").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable100").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable101").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable102").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable111").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable112").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable113").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable114").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable115").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable117").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable116").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable123").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable122").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable121").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable120").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable119").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable118").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable124").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable131").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable130").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable129").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable128").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable127").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable125").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable126").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys Category").Visible = True
+    Sheets("Summarys Category").Select
+    ActiveSheet.PivotTables("PivotTable22").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable23").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable24").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable3").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable20").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable19").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable18").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable17").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable16").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable15").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable14").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable25").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable26").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable27").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable28").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable29").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable30").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable31").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable21").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable9").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable10").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable11").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable12").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable32").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable13").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable8").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable4").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable7").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveSheet.PivotTables("PivotTable6").PivotFields("Quarter").CurrentPage = _
+        "Q1-06"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Cover").Select
+    Range("L2").Select
+End Sub
+Sub All()
+'
+' All Macro
+' Macro recorded 1/19/2005 by jmarri
+'
+
+'
+    Application.Run "'Opportunity & Forecast Report_Northeast.xls'!FuturePrep"
+    Sheets("Summarys").Visible = True
+    Sheets("Summarys").Select
+    ActiveSheet.PivotTables("Main_Summary").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable95").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable94").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable93").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable92").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable89").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable90").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable91").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable99").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable98").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable97").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable88").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable87").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable86").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable85").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable84").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable82").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable83").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable76").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable77").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable78").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable79").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable80").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable81").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable75").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable68").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable69").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable70").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable71").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable72").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable74").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable73").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys PBU").Visible = True
+    Sheets("Summarys PBU").Select
+    ActiveSheet.PivotTables("PivotTable103").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable104").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable105").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable106").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable107").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable110").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable109").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable108").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable100").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable101").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable102").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable111").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable112").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable113").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable114").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable115").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable117").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable116").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable123").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable122").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable121").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable120").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable119").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable118").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable124").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable131").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable130").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable129").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable128").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable127").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable125").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable126").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys Category").Visible = True
+    Sheets("Summarys Category").Select
+    ActiveSheet.PivotTables("PivotTable22").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable23").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable24").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable3").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable20").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable19").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable18").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable17").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable16").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable15").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable14").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable25").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable26").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable27").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable28").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable29").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable30").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable31").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable21").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable9").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable10").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable11").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable12").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable32").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable13").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable8").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable4").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable7").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveSheet.PivotTables("PivotTable6").PivotFields("Quarter").CurrentPage = _
+        "All"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Cover").Select
+    Range("L2").Select
+End Sub
+
+Sub CurrentPlus3()
+'
+' CurrentPlus3 Macro
+' Macro recorded 1/19/2005 by jmarri
+'
+
+'
+    Application.Run "'Opportunity & Forecast Report_Northeast.xls'!FuturePrep"
+    Sheets("Summarys").Visible = True
+    Sheets("Summarys").Select
+    ActiveSheet.PivotTables("Main_Summary").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable95").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable94").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable93").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable92").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable89").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable90").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable91").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable99").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable98").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable97").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable88").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable87").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable86").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable85").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable84").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable82").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable83").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable76").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable77").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable78").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable79").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable80").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable81").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable75").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable68").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable69").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable70").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable71").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable72").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable74").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable73").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys PBU").Visible = True
+    Sheets("Summarys PBU").Select
+    ActiveSheet.PivotTables("PivotTable103").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable104").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable105").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable106").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable107").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable110").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable109").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable108").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable100").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable101").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable102").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable111").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable112").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable113").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable114").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable115").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable117").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable116").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable123").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable122").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable121").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable120").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable119").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable118").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable124").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable131").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable130").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable129").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable128").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable127").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable125").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable126").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Summarys Category").Visible = True
+    Sheets("Summarys Category").Select
+    ActiveSheet.PivotTables("PivotTable22").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable23").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable24").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable2").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable3").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable20").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable19").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable18").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable17").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable16").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable15").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable14").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable25").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable26").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable27").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable28").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable29").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable30").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable31").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable21").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable9").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable10").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable11").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable12").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable32").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable13").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable8").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable4").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable5").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable7").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveSheet.PivotTables("PivotTable6").PivotFields("Quarter").CurrentPage = _
+        "Q2-06"
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Cover").Select
+    Range("L2").Select
+End Sub
+Sub FuturePrep()
+'
+' FuturePrep Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+Sheets("Region").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("CE").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Named").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Territory").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Consulting").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Category").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("PBU").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 6
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 35
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 36
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 2
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = True
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+    Sheets("Cover").Select
+    Range("F14").Select
+End Sub
+Sub CurrentPrep()
+'
+' CurrentPrep Macro
+' Macro recorded 4/19/2005 by jmarri
+'
+
+'
+Sheets("Region").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("CE").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Named").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Territory").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Consulting").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("Category").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+Sheets("PBU").Select
+    Range("C4:R5,C30:R31,C56:R57,C82:R83,C108:R109").Select
+    Range("C108").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C17:R22,C43:R48,C69:R74,C95:R100,C121:R126").Select
+    Range("C121").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C23:R28,C49:R54,C75:R80,C101:R106,C127:R132").Select
+    Range("C127").Activate
+    Selection.Font.ColorIndex = 1
+    Range("C14:R14,C40:R40,C66:R66,C92:R92,C118:R118").Select
+    Range("C118").Activate
+    Selection.Font.ColorIndex = 1
+    Columns("T:AH").Select
+    Selection.EntireColumn.Hidden = False
+    ActiveWindow.ScrollRow = 102
+    ActiveWindow.ScrollRow = 100
+    ActiveWindow.ScrollRow = 98
+    ActiveWindow.ScrollRow = 97
+    ActiveWindow.ScrollRow = 95
+    ActiveWindow.ScrollRow = 94
+    ActiveWindow.ScrollRow = 92
+    ActiveWindow.ScrollRow = 90
+    ActiveWindow.ScrollRow = 88
+    ActiveWindow.ScrollRow = 86
+    ActiveWindow.ScrollRow = 83
+    ActiveWindow.ScrollRow = 81
+    ActiveWindow.ScrollRow = 78
+    ActiveWindow.ScrollRow = 75
+    ActiveWindow.ScrollRow = 72
+    ActiveWindow.ScrollRow = 69
+    ActiveWindow.ScrollRow = 65
+    ActiveWindow.ScrollRow = 62
+    ActiveWindow.ScrollRow = 60
+    ActiveWindow.ScrollRow = 56
+    ActiveWindow.ScrollRow = 54
+    ActiveWindow.ScrollRow = 51
+    ActiveWindow.ScrollRow = 48
+    ActiveWindow.ScrollRow = 46
+    ActiveWindow.ScrollRow = 43
+    ActiveWindow.ScrollRow = 40
+    ActiveWindow.ScrollRow = 37
+    ActiveWindow.ScrollRow = 34
+    ActiveWindow.ScrollRow = 31
+    ActiveWindow.ScrollRow = 28
+    ActiveWindow.ScrollRow = 25
+    ActiveWindow.ScrollRow = 22
+    ActiveWindow.ScrollRow = 19
+    ActiveWindow.ScrollRow = 17
+    Range("A1").Select
+    Sheets("Cover").Select
+    Range("F14").Select
+End Sub
+
+
+
+<<<<<<
+======================
+Sheet37
+>>>>>>
+Attribute VB_Name = "Sheet37"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet11
+>>>>>>
+Attribute VB_Name = "Sheet11"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet12
+>>>>>>
+Attribute VB_Name = "Sheet12"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet38
+>>>>>>
+Attribute VB_Name = "Sheet38"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet21
+>>>>>>
+Attribute VB_Name = "Sheet21"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet24
+>>>>>>
+Attribute VB_Name = "Sheet24"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
--- openoffice.org-2.4.1.orig/ooo-build/doc/source-split-deps.txt
+++ openoffice.org-2.4.1/ooo-build/doc/source-split-deps.txt
@@ -0,0 +1,172 @@
+accessibility: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+afms: solenv 
+agfa_monotype_fonts: solenv 
+agg: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+animations: boost codemaker comphelper cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 ucbhelper udkapi vos xml2cmp 
+autodoc: cosv officenames solenv soltools stlport udm 
+automation: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so fpicker framework freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax sj2 sndfile solenv soltools sot so3 stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmlscript xml2cmp x11_extensions zlib 
+avmedia: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype icu idl idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libegg libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmlscript xml2cmp x11_extensions zlib 
+basctl: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+basebmp: basegfx boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh o3tl registry sal salhelper solenv soltools stlport store testshl2 udkapi vigra xml2cmp 
+basegfx: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh o3tl registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+basic: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmlscript xml2cmp x11_extensions zlib 
+bean: boost bridges codemaker cppu cppuhelper external external_so idlc javaunohelper jurt jvmaccess offapi officenames offuh registry ridljar sal salhelper sandbox solenv soltools stlport store testshl2 udkapi unoil xml2cmp 
+beanshell: solenv xalan 
+berkeleydb: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+binfilter: basebmp basegfx basic boost bridges codemaker comphelper connectivity cppu cppuhelper cpputools expat external external_so framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libxml2 mdbtools moz moz_prebuilt nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xmlscript xml2cmp x11_extensions zlib 
+boost: officenames solenv 
+bridges: boost codemaker cppu cppuhelper external external_so idlc jurt jvmaccess offapi officenames offuh registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+cairo: solenv 
+canvas: agg basebmp basegfx boost bridges cairo codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype goodies icu idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+cli_ure: boost bridges codemaker cppu cppuhelper external external_so idlc jurt jvmaccess jvmfwk libxml2 offapi officenames offuh rdbmaker registry ridljar sal salhelper solenv soltools stlport stoc store testshl2 udkapi xml2cmp 
+codemaker: boost external external_so idlc officenames registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+comphelper: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 ucbhelper udkapi vos xml2cmp 
+configmgr: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+connectivity: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype hsqldb icu idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libxml2 mdbtools moz moz_prebuilt nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+cosv: officenames solenv soltools stlport 
+cppcanvas: agg basebmp basegfx boost bridges cairo canvas codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype goodies icu idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+cppu: boost codemaker external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+cppuhelper: boost codemaker cppu external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+cpputools: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+crashrep: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sax setup_native shell sndfile solenv soltools sot stlport stoc store sysui testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+dbaccess: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+desktop: avmedia basebmp basegfx basic berkeleydb boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx sysui sysui_so testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+dtrans: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi unotools vos xml2cmp zlib 
+embeddedobj: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+embedserv: boost codemaker comphelper cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 ucbhelper udkapi vos xml2cmp 
+epm: solenv 
+eventattacher: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi vos xml2cmp 
+expat: officenames solenv soltools stlport 
+extensions: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 libxslt linguistic mdbtools moz moz_prebuilt nas neon np_sdk offapi officecfg officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sane sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 twain ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xalan xmloff xmlscript xml2cmp x11_extensions zlib 
+external: external_so officenames solenv soltools stlport 
+extras: solenv 
+fileaccess: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi unotools vos xml2cmp zlib 
+filter: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libsvg libxml2 libxslt linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xalan xmloff xmlscript xml2cmp x11_extensions zlib 
+fondu: solenv 
+forms: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+fpicker: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+framework: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+goodies: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+helpcontent2: basebmp basegfx berkeleydb boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil javaunohelper jpeg jurt jut jvmaccess jvmfwk libxml2 libxslt nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmlhelp xml2cmp x11_extensions zlib 
+hsqldb: solenv 
+hwpfilter: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp zlib 
+chart2: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+icu: external external_so officenames solenv soltools stlport 
+idl: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi vos xml2cmp zlib 
+idlc: boost external external_so officenames registry sal salhelper solenv soltools stlport store testshl2 xml2cmp 
+instsetoo_native: accessibility afms agfa_monotype_fonts agg animations autodoc automation avmedia basctl basebmp basegfx basic bean beanshell berkeleydb binfilter bitstream_vera_fonts boost bridges cairo canvas cli_ure codemaker comphelper configmgr connectivity cosv cppcanvas cppu cppuhelper cpputools crashrep curl dbaccess desktop dictionaries dtrans embeddedobj embedserv epm eventattacher expat extensions external external_so extras fileaccess filter fondu forms fpicker framework freetype goodies helpcontent2 hsqldb hwpfilter chart2 icu idl idlc io i18npool i18nutil javainstaller2 javaunohelper jfreereport jpeg jurt jut jvmaccess jvmfwk libegg libsvg libtextcat libwpd libwpg libwps libxmlsec libxml2 libxslt lingucomponent linguistic lotuswordpro lpsolve MathMLDTD mdbtools moz moz_prebuilt msfontextract nas neon np_sdk odk offapi officecfg officenames offuh oovbaapi oox o3tl package padmin portaudio postprocess print_header psprint psprint_config python pyuno qadevOOo rdbmaker readlicense_oo regexp registry remotebridges reportdesign rhino ridljar rsc sal salhelper sandbox sane sax sc scaddins scp2 scripting scsolver sd sdk_oo setup_native sfx2 shell sj2 slideshow sndfile solenv soltools sot so3 starmath stlport stoc store svtools svx sw sysui sysui_so testshl2 testtools toolkit tools top transex3 twain ucb ucbhelper udkapi udm unixODBC UnoControls unodevtools unoil unotools unoxml ure uui vcl vigra vos wizards writerfilter writerperfect xalan xmerge xmlhelp xmloff xmlscript xmlsecurity xml2cmp x11_extensions zlib 
+io: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh rdbmaker registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+i18npool: boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 ucbhelper udkapi vos xml2cmp 
+i18nutil: boost codemaker cppu external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+javainstaller2: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl python rdbmaker regexp registry ridljar sal salhelper sax setup_native solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi vos xml2cmp zlib 
+javaunohelper: boost bridges codemaker cppu cppuhelper external external_so idlc jurt jvmaccess offapi officenames offuh registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi unoil xml2cmp 
+jfreereport: solenv 
+jurt: boost codemaker external external_so idlc officenames registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+jut: boost bridges codemaker cppu cppuhelper external external_so idlc javaunohelper jurt jvmaccess offapi officenames offuh registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi unoil xml2cmp 
+jvmaccess: boost codemaker cppu external external_so idlc jurt offapi officenames offuh registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+jvmfwk: boost codemaker cppu cppuhelper external external_so idlc libxml2 offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+libegg: officenames solenv soltools stlport 
+libsvg: jpeg libxml2 officenames solenv soltools stlport 
+libtextcat: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+libwpd: officenames solenv soltools stlport 
+libwpg: libwpd officenames solenv soltools stlport 
+libwps: libwpd officenames solenv soltools stlport 
+libxmlsec: boost external external_so libxml2 moz moz_prebuilt officenames sal solenv soltools stlport xml2cmp 
+libxslt: libxml2 officenames solenv soltools stlport 
+lingucomponent: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype goodies icu idl idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libegg libtextcat libxml2 linguistic nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+linguistic: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype goodies icu idl idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libegg libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+lotuswordpro: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+lpsolve: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+MathMLDTD: solenv 
+mdbtools: solenv 
+msfontextract: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+nas: solenv 
+np_sdk: officenames solenv soltools stlport 
+odk: autodoc boost bridges cli_ure codemaker cosv cppu cppuhelper cpputools external external_so idlc io javaunohelper jurt jut jvmaccess jvmfwk libxml2 offapi officenames offuh rdbmaker registry remotebridges ridljar sal salhelper sandbox solenv soltools stlport stoc store testshl2 udkapi udm unodevtools unoil xml2cmp 
+offapi: boost external external_so idlc officenames registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+officecfg: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 libxslt offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi vos xalan xml2cmp zlib 
+offuh: boost codemaker external external_so idlc offapi officenames registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+oovbaapi: boost external external_so idlc offapi officenames registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+oox: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype goodies icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+o3tl: boost external external_so officenames sal solenv soltools stlport testshl2 xml2cmp 
+package: boost bridges codemaker comphelper cppu cppuhelper external external_so idlc javaunohelper jurt jut jvmaccess offapi officenames offuh qadevOOo registry ridljar sal salhelper solenv soltools stlport store testshl2 ucbhelper udkapi unoil vos xml2cmp zlib 
+padmin: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+portaudio: solenv 
+postprocess: accessibility afms agfa_monotype_fonts agg animations autodoc automation avmedia basctl basebmp basegfx basic bean beanshell berkeleydb binfilter bitstream_vera_fonts boost bridges cairo canvas cli_ure codemaker comphelper configmgr connectivity cosv cppcanvas cppu cppuhelper cpputools crashrep curl dbaccess desktop dictionaries dtrans embeddedobj embedserv epm eventattacher expat extensions external external_so extras fileaccess filter fondu forms fpicker framework freetype goodies helpcontent2 hsqldb hwpfilter chart2 icu idl idlc io i18npool i18nutil javainstaller2 javaunohelper jfreereport jpeg jurt jut jvmaccess jvmfwk libegg libsvg libtextcat libwpd libwpg libwps libxmlsec libxml2 libxslt lingucomponent linguistic lotuswordpro lpsolve MathMLDTD mdbtools moz moz_prebuilt msfontextract nas neon np_sdk odk offapi officecfg officenames offuh oovbaapi oox o3tl package padmin portaudio print_header psprint psprint_config python pyuno qadevOOo rdbmaker readlicense_oo regexp registry remotebridges reportdesign rhino ridljar rsc sal salhelper sandbox sane sax sc scaddins scp2 scripting scsolver sd sdk_oo setup_native sfx2 shell sj2 slideshow sndfile solenv soltools sot so3 starmath stlport stoc store svtools svx sw sysui sysui_so testshl2 testtools toolkit tools top transex3 twain ucb ucbhelper udkapi udm unixODBC UnoControls unodevtools unoil unotools unoxml ure uui vcl vigra vos wizards writerfilter writerperfect xalan xmerge xmlhelp xmloff xmlscript xmlsecurity xml2cmp x11_extensions zlib 
+psprint: basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl print_header rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi unotools vos xml2cmp zlib 
+psprint_config: afms officenames solenv soltools stlport 
+pyuno: boost bridges codemaker cppu cppuhelper cpputools external external_so idlc jurt jvmaccess jvmfwk libxml2 offapi officenames offuh python rdbmaker registry ridljar sal salhelper solenv soltools stlport stoc store testshl2 udkapi xml2cmp 
+qadevOOo: boost bridges codemaker cppu cppuhelper external external_so idlc javaunohelper jurt jut jvmaccess offapi officenames offuh registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi unoil xml2cmp 
+rdbmaker: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+readlicense_oo: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 libxslt offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi vos xml2cmp zlib 
+regexp: boost codemaker comphelper cppu cppuhelper external external_so idlc i18nutil offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 ucbhelper udkapi vos xml2cmp 
+registry: boost external external_so officenames sal salhelper solenv soltools stlport store testshl2 xml2cmp 
+remotebridges: boost bridges codemaker cppu cppuhelper external external_so idlc jurt jvmaccess offapi officenames offuh rdbmaker registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+reportdesign: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl dbaccess expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jfreereport jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+rhino: officenames solenv soltools stlport xalan 
+ridljar: boost codemaker external external_so idlc officenames registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+rsc: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi vos xml2cmp zlib 
+rvpapi: boost codemaker external external_so idlc offapi officenames registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi unoil xml2cmp 
+sal: boost external external_so officenames solenv soltools stlport xml2cmp 
+salhelper: boost external external_so officenames sal solenv soltools stlport testshl2 xml2cmp 
+sandbox: officenames solenv soltools stlport 
+sane: solenv 
+sax: boost codemaker comphelper cppu cppuhelper expat external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 ucbhelper udkapi vos xml2cmp 
+sc: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic lpsolve mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax scsolver setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+scaddins: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+scp2: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl python rdbmaker regexp registry ridljar sal salhelper sax setup_native solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi vos xml2cmp zlib 
+scripting: basebmp basegfx basic beanshell boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry rhino ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xalan xmlscript xml2cmp x11_extensions zlib 
+scsolver: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 lpsolve offapi officenames offuh o3tl rdbmaker regexp registry ridljar rsc sal salhelper sax solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi vos xml2cmp zlib 
+sd: agg animations avmedia basebmp basegfx basic boost bridges cairo canvas codemaker comphelper configmgr connectivity cppcanvas cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi oox o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 slideshow sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+setup_native: boost external external_so officenames python sal solenv soltools stlport xml2cmp 
+sfx2: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype icu idl idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libegg libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native shell sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmlscript xml2cmp x11_extensions zlib 
+shell: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+sj2: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+slideshow: agg animations basebmp basegfx boost bridges cairo canvas codemaker comphelper cppcanvas cppu cppuhelper cpputools expat external external_so freetype goodies icu idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+smoketestoo_native: accessibility afms agfa_monotype_fonts agg animations autodoc automation avmedia basctl basebmp basegfx basic bean beanshell berkeleydb binfilter bitstream_vera_fonts boost bridges cairo canvas cli_ure codemaker comphelper configmgr connectivity cosv cppcanvas cppu cppuhelper cpputools crashrep curl dbaccess desktop dictionaries dtrans embeddedobj embedserv epm eventattacher expat extensions external external_so extras fileaccess filter fondu forms fpicker framework freetype goodies helpcontent2 hsqldb hwpfilter chart2 icu idl idlc instsetoo_native io i18npool i18nutil javainstaller2 javaunohelper jfreereport jpeg jurt jut jvmaccess jvmfwk libegg libsvg libtextcat libwpd libwpg libwps libxmlsec libxml2 libxslt lingucomponent linguistic lotuswordpro lpsolve MathMLDTD mdbtools moz moz_prebuilt msfontextract nas neon np_sdk odk offapi officecfg officenames offuh oovbaapi oox o3tl package padmin portaudio postprocess print_header psprint psprint_config python pyuno qadevOOo rdbmaker readlicense_oo regexp registry remotebridges reportdesign rhino ridljar rsc sal salhelper sandbox sane sax sc scaddins scp2 scripting scsolver sd sdk_oo setup_native sfx2 shell sj2 slideshow sndfile solenv soltools sot so3 starmath stlport stoc store svtools svx sw sysui sysui_so testshl2 testtools toolkit tools top transex3 twain ucb ucbhelper udkapi udm unixODBC UnoControls unodevtools unoil unotools unoxml ure uui vcl vigra vos wizards writerfilter writerperfect xalan xmerge xmlhelp xmloff xmlscript xmlsecurity xml2cmp x11_extensions zlib 
+solenv: 
+soltools: officenames solenv stlport 
+sot: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi unotools vos xml2cmp zlib 
+so3: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax sj2 sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmlscript xml2cmp x11_extensions zlib 
+starmath: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+stlport: solenv 
+stoc: boost codemaker cppu cppuhelper external external_so idlc jurt jvmaccess jvmfwk libxml2 offapi officenames offuh rdbmaker registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+store: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+svtools: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+svx: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+sw: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libwpd libwpg libwps libxml2 linguistic lotuswordpro mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools uui vcl vigra vos writerperfect xmloff xmlscript xml2cmp x11_extensions zlib 
+sysui: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl python rdbmaker regexp registry ridljar sal salhelper sax setup_native solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi vos xml2cmp zlib 
+testshl2: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+testtools: boost bridges cli_ure codemaker cppu cppuhelper cpputools external external_so idlc io javaunohelper jurt jut jvmaccess jvmfwk libxml2 offapi officenames offuh python pyuno qadevOOo rdbmaker registry remotebridges ridljar sal salhelper solenv soltools stlport stoc store testshl2 udkapi unoil xml2cmp 
+toolkit: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+tools: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 ucbhelper udkapi vos xml2cmp zlib 
+transex3: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi vos xml2cmp zlib 
+twain: solenv 
+ucb: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools curl expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas neon offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+ucbhelper: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+udkapi: boost external external_so idlc officenames registry sal salhelper solenv soltools stlport store testshl2 xml2cmp 
+udm: cosv officenames solenv soltools stlport 
+unixODBC: solenv 
+UnoControls: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi vos xml2cmp zlib 
+unodevtools: boost codemaker cppu cppuhelper external external_so idlc offapi officenames offuh registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+unoil: boost codemaker external external_so idlc offapi officenames registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp 
+unotools: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi vos xml2cmp zlib 
+unoxml: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl rdbmaker regexp registry ridljar sal salhelper sax solenv soltools stlport stoc store testshl2 tools ucbhelper udkapi vos xml2cmp zlib 
+ure: boost bridges cli_ure codemaker cppu cppuhelper external external_so idlc jurt jvmaccess jvmfwk libxml2 offapi officenames offuh rdbmaker registry ridljar sal salhelper solenv soltools stlport stoc store testshl2 udkapi xml2cmp 
+uui: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+vcl: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vigra vos xml2cmp x11_extensions zlib 
+vigra: solenv 
+vos: boost external external_so officenames sal solenv soltools stlport xml2cmp 
+wizards: basegfx boost bridges codemaker comphelper cppu cppuhelper expat external external_so icu idlc i18npool i18nutil javaunohelper jurt jut jvmaccess jvmfwk libxml2 offapi officenames offuh o3tl qadevOOo rdbmaker regexp registry ridljar rsc sal salhelper sax solenv soltools stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil vos xalan xml2cmp zlib 
+writerfilter: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+writerperfect: basebmp basegfx basic boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so framework freetype goodies icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libwpd libwpg libwps libxml2 nas offapi officenames offuh oovbaapi o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax sj2 sndfile solenv soltools sot so3 stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+xalan: solenv 
+xmerge: boost bridges codemaker cppu cppuhelper external external_so idlc javaunohelper jurt jvmaccess offapi officenames offuh registry ridljar sal salhelper solenv soltools stlport store testshl2 udkapi unoil xml2cmp 
+xmlhelp: basebmp basegfx berkeleydb boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil javaunohelper jpeg jurt jut jvmaccess jvmfwk libxml2 libxslt nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+xmloff: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype goodies icu idlc i18npool i18nutil jpeg jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store svtools testshl2 toolkit tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+xmlscript: basebmp basegfx boost bridges codemaker comphelper cppu cppuhelper cpputools expat external external_so freetype icu idlc i18npool i18nutil jurt jvmaccess jvmfwk libxml2 nas offapi officenames offuh o3tl portaudio print_header psprint rdbmaker regexp registry ridljar rsc sal salhelper sax sndfile solenv soltools sot stlport stoc store testshl2 tools transex3 ucbhelper udkapi unoil unotools vcl vigra vos xml2cmp x11_extensions zlib 
+XmlSearch: boost codemaker external external_so idlc officenames registry sal salhelper solenv soltools stlport store testshl2 udkapi xml2cmp xt 
+xmlsecurity: avmedia basebmp basegfx basic boost bridges codemaker comphelper configmgr connectivity cppu cppuhelper cpputools curl expat external external_so fileaccess framework freetype goodies hsqldb icu idl idlc i18npool i18nutil javaunohelper jpeg jurt jvmaccess jvmfwk libegg libxmlsec libxml2 linguistic mdbtools moz moz_prebuilt nas neon offapi officenames offuh oovbaapi o3tl portaudio print_header psprint python rdbmaker regexp registry ridljar rsc sal salhelper sandbox sax setup_native sfx2 shell sj2 sndfile solenv soltools sot so3 stlport stoc store svtools svx testshl2 toolkit tools transex3 ucb ucbhelper udkapi unixODBC unoil unotools vcl vigra vos xmloff xmlscript xml2cmp x11_extensions zlib 
+xml2cmp: officenames solenv soltools stlport 
+xt: external external_so officenames solenv soltools stlport 
+x11_extensions: solenv 
--- openoffice.org-2.4.1.orig/ooo-build/doc/email.txt
+++ openoffice.org-2.4.1/ooo-build/doc/email.txt
@@ -0,0 +1,67 @@
+Send document as e-mail
+
+We have the file sfx2/source/dialog/mailmodel.cxx that implements the functions of class SfxMailModel_Impl
+
+The function 
+SfxMailModel_Impl::SendMailResult SfxMailModel_Impl::Send( MailDocType eMailDocType )
+is responsible for selecting the appropriate mail client, attaching the document to the mail and then sending it to the destination.
+
+In this function
+It checks for any default mailclient plugin. If available launches that otherwise uses the interface
+
+xSimpleMailClientSupplier = Reference< XSimpleMailClientSupplier >(
+                    xMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.system.SimpleSystemMail" ))),
+                    UNO_QUERY );
+which provides access to simple mail client available.
+This interface implementation is done in the file shell/source/cmdmail/cmdmailsuppl.cxx
+The function responsible is 
+void SAL_CALL CmdMailSuppl::sendSimpleMailMessage(const Reference<XSimpleMailMessage>& xSimpleMailMessage, sal_Int32 aFlag )
+
+ try
+    {
+        // Query XNameAccess interface of the org.openoffice.Office.Common/ExternalMailer
+        // configuration node to retriece the users preferred email application. This may
+        // transparently by redirected to e.g. the corresponding GConf setting in GNOME.
+        OUString aConfigRoot = OUString(
+            RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.Office.Common/ExternalMailer" ) );
+                                                                                                                             
+        PropertyValue aProperty;
+        aProperty.Name = OUString::createFromAscii( "nodepath" );
+        aProperty.Value = makeAny( aConfigRoot );
+                                                                                                                             
+        Sequence< Any > aArgumentList( 1 );
+        aArgumentList[0] = makeAny( aProperty );
+                                                                                                                             
+        Reference< XNameAccess > xNameAccess =
+            Reference< XNameAccess > (
+                m_xConfigurationProvider->createInstanceWithArguments(
+                    OUString::createFromAscii( "com.sun.star.configuration.ConfigurationAccess" ),
+                    aArgumentList ),
+                UNO_QUERY );
+                                                                                                                             
+        if( !xNameAccess.is() )
+        {
+            OUString aMailer;
+                                                                                                                             
+            // Retrieve the value for "Program" node and append it feed senddoc with it
+            // using the (undocumented) --mailclient switch
+            xNameAccess->getByName( OUString::createFromAscii( "Program" ) ) >>= aMailer;
+                                                                                                                             
+            if( aMailer.getLength() )
+            {
+                // make sure we have a system path
+                FileBase::getSystemPathFromFileURL( aMailer, aMailer );
+                                                                                                                             
+                aBuffer.append("--mailclient ");
+                aBuffer.append(OUStringToOString( aMailer, osl_getThreadTextEncoding() ));
+                aBuffer.append(" ");
+            }
+        }
+                                                                                                                             
+    }
+
+Then the shell/source/unix/misc/senddoc.sh is responsible for chosing the appropriate program. If there is no program specified in the user configuration, generates the error
+
+"Could not determine a mail client to use."
+
+ 
--- openoffice.org-2.4.1.orig/ooo-build/doc/alpha-rework.txt
+++ openoffice.org-2.4.1/ooo-build/doc/alpha-rework.txt
@@ -0,0 +1,59 @@
+** The 2nd re-work
+
+We have to re-re-work this without touching BitmapColour if possible.
+
+
+
+
+
+** The 1st re-work
+
+Re-working the alpha icon support:
+
+	* vcl/source/gdi/image.cxx (ImageList): reads the
+	MaskBitmap from the resource file. res. compiler seems
+	to decompose alpha via RSC_IMAGE_MASKCOLOR with no
+	RSC_IMAGE_MASKBITMAP; 'ImageBitmap', 'MaskBitmap',
+	'MaskColor' (via. the MASKCOLOR macro) used in .src.
+	* rsc/source/res/rscclass.cxx (RscSysDepend::WriteRc): writes
+	writes the filename to tmp; & does a
+	* rsc/source/parser/rscdb.cxx (PutSysName): tracks file names.
+	ImageBitmap's can be built from IdList's: why have the IdCount ?
+	(RSC_IMAGELIST_ IDLIST/IDCOUNT)
+
+* Build seems to:
+        + run rscdep - presumably dependency re-calculator
+	+ run rscpp - presumably pre-processor
+        + run rsc (seems to run rsc2)
+	    + -s flag passed.
+	    writes an srs file with pre-processing done,
+	    doesn't build the images / resource file ...
+	+ run 'bmp' - pass the srs file, icon paths etc.
+	    build icon strips.
+	+ in util/ process the srs files into a resource file
+	    + -r flag passed
+
+
+* vcl/source/gdi/bitmap.cxx
+	+ internal pixel format dictated by underlying system
+	+ WriteAcess sets accessors based on:
+	    + BMP_SCANLINE_FORMAT( mpBuffer->mnFormat ) (mask off top bit)
+	    + [ from bmpbuffer.cxx - implemented in sal ... ]
+	+ Both Win & Unix use BMP_FORMAT_8BIT_PAL
+	+ pScanLine in converter is a Byte *
+	+ operator BitmapColor::BYTE -> mcBlueOrIndex [ the index ]
+      + Add 'GetAlphaMask' to bitmap2.cxx.
+
+* svtools/bmpmaker/bmpcore.cxx
+	+ Can't really hope to create alpha mask files in here, since
+	  too many individual bmps - it would suck.
+	+ We can however convert 8bit -> 32bit here nicely.
+
+
+* With hacks to bmpcore.cxx and bitmap.cxx / image.cxx:
+	+ got a working soln'.
+
+
+* TODO
+	+ Bin 'IdCount': it blows chunks, just count items instead
+	+ Split the RSC_IMAGE_MASKBITMAP out of all deep color bmps.
--- openoffice.org-2.4.1.orig/ooo-build/doc/link-relocs.txt
+++ openoffice.org-2.4.1/ooo-build/doc/link-relocs.txt
@@ -0,0 +1,1315 @@
+    + stub functions
+	-> either to PLT or to ... (?) [ clever assembler ... ]
+
+   + class count
+	+ vfuncs per class
+	+ number of virtual functions
+		+ implemented by that class
+		+ implemented by a parent
+		+ implemented externally
+	+ interesting, all virtual destructors duplicated eg.
+	    + ~ImplDelData - 3 destructor relocations ...
+
+    + Linkage to parent classes: 1 symbol + @got offset
+      per class (?) => cheap.
+	+ generate in-lined code to do the vtable setup ?
+	    + need symbol-lookup logic hooks ? - too big ?
+
+
+** How do the virtual thunk goodies work out ?
+	+ do we need 1 extra fixup foostub per sub/shared
+	  -class ?
+	+ would they benefit from the index pointer ?
+
+	+ Very interesting paper:
+	    http://gcc.fyxm.net/summit/2003/Getting%20the%20Best%20from%20G++.pdf
+	+ nowadays:
+	    + no per-virtual base cost for objects, store
+	      adjustment data in the vtable instead.
+	+ Th, Tv, Tc - fixed, variant, covariant thunk
+	+ virtual vs. direct call (?)
+
+	+ do thunks affect anything in fact ?
+	+ [ how large is the vtable description data going
+	    to be, necessary to do the full relocation ? ]
+
+** Interesting questions
+    + *why* is it that (or even is it!?) that we export
+      VTables stuffed full of relocations even when we're using
+      a 'hidden' visiblity ?
+
+
+    + we do 1 relocation, per virtual method, per class/sub-class
+	+ ... fun ...
+    + do we do -lots- of relocations for 'weak' / vtables that we
+      can *know* will not be used ever (?)
+	+ COMDAT support should eliminate them anyay (?)
+	+ how many relocations take place inside (weak) objects ?
+	+ what is the average size of a weak object ...
+        + eg. the _ZTV15SvxCheckListBox is only defined in 1 place
+	  ie. we prolly don't have tons of duplicate/redundant
+	  vtables inc. relocations. vtable emitted as 1st virtual is
+	  defined (?).
+
+    + I remember [!] - the reason why we analyse only .rel.dyn
+	+ it is processed immediately
+	      + .rel.plt is lazily processed ...
+
+    + interesting KDE related paper:
+	+ http://www.suse.de/~bastian/Export/linking.txt
+		+ everything called 'kdeinit' - linked & then forks
+		  => still relocated etc. => upgrade libraries & no
+		     change until kdeinit is restarted
+		+ ... interesting solution ...
+
+gcc IRC:
+    + #gcc on oftc.net, or oftc.org
+	
+    + Possible approaches:
+	+ prelink
+	    + similar to SGI's IRIX 'rebase' tool
+	    + very fast, very ugly - slows system updates
+	    + works for C, C++, system startup etc.
+	+ shmem handshake with 'link-daemon': do the dlink in
+	  another process via shared memory. - ie. system-wide
+	  pre-linking / caching...
+	    + all but 1st time very fast - demand built cache
+	    + 1st time somewhat slower - to reduce handshaking
+	      would want to do LD_BIND_NOW or equiv.
+	    + works for C, C++, system startup etc.
+	+ re-work gcc to ensure 
+	+ add link hooks for 'idle-linkage' slots (?)
+	    + can we get virtual methods into the plt ?
+	    + instead of a vtable: a 'code-table'
+		+ ie. jump edx + <shim-size>*foo
+		+ that shim would be ? a ton of plt references ...
+		+ ie. jump into the vtable itself - rather than 
+		  the code
+		    => bloat ? what is the size of a PLT entry ?
+		+ [ compatibility ]:
+		    + can keep the existing code & absolute offset ? -
+		      have a non-symbol-driven pathetic relocation,
+		      pointing to the end of the vtable ?
+		    + at the end => no vicious vtable offset
+		      calculation problems (?!)
+	    + works only for C++
+	    * elaboration *
+		+ a re-linker that would add these slots post-compile
+	+ fix g++/binutils to add 'export' (ie. -Bsymbolic) style
+	  markup to all (non-weak?) symbols exported from a visibility
+	  annotated class.
+	    + partial solution - normally kills < 50% of the relocs
+	    + works only for C++
+	+ a new / PLT-like approach
+	    + we do *maths* to calculate the offset into the vtable
+	      anyway - before a virtual call, surely that logic must
+	      consume a register or two we can rely on (?)
+	    + can we not call a shim / dlink helper instead
+		+ classes can have a table of PLT-like slots chained
+		  from the vtable to build the table with.
+		+ (or a single, initial relocation per vtable)
+		+ => can relocate lazily ...
+	    + ... PLT entry into the vtable ...
+
+
+
+    + Tool to dump '.data' and '.got' sections (?)
+	+ and unwind which relocations are in which symbols/elements
+	  there precisely....
+	+ tool to calculate how many vtables, their size, average
+	  number of slots etc.
+	    + Problem is:
+		+ relocs for internal (hidden visibility)
+		  *mostly* resolve internally - except for inherited
+		  methods (from publicly exposed things)
+		+ eg. SvXML
+
+Gcc hack:
+    + output location of PLT function instead of address
+      of function - (easy?)
+	#pragma push relocating_vtables
+	#pragma pop relocating_vtables (?)
+	+ -fvtable-via-plt
+	    + no need to put code in the foo anyway [?]
+	+ optimise parent/chain calls:
+	    + switch to vtable usage (?) => relocation (?)
+    + Can we use the 'call *(%eax)' instruction
+	+ how bad is that wrt. stalling data fetch etc. ?
+
+Interesting:
+    + if we know what the type is; we do a 'direct' function call
+	+ instead of the vtable lookup [wow]
+	    + => in fact ~always slower than a vtable
+	      lookup (surely)
+	
+    + work out how large a plt entry is & how many vtable
+      entries we have.
+
+
+
+    + analysing libsvx:
+	+ objdump -R libsvx680li.so | grep -v '\*ABS\*' \
+	          | cut -c 28-100 | sort | uniq -c | sort -n
+    + result:
+	+ 17k unique symbol 
+
+    + questions:
+	+ what are these symbols ?
+	    + internal vs. external
+	    + weak vs. strong
+	    + & a better understanding of why we need
+	      so - so many relocs.
+
+    + Analysis of internal{weak/strong}/external gives:(relocstat)
+	+ libsvx680li.so total relocs 17483 external 5204, internal weak 2888, internal strong 9391: saving 54%
+
+    + KDE has a -far- smaller relocation count: why ? - deep/virtual trees ?
+
++ Random analysis of 20 relocs:
+
+SvxRTFParser::CalcValue()	_ZN12SvxRTFParser9CalcValueEv
+	+ svx/inc/svxrtf.hxx:
+	    + virtual void CalcValue() - an internally resolvable / global symbol
+		+ cost: 1 symbol, 1 relocation, etc.
+
+SvTreeListBox::MakeVisible(SvLBoxEntry*)	_ZN13SvTreeListBox11MakeVisibleEP11SvLBoxEntry
+    + checklbx.hxx:class SVX_DLLPUBLIC SvxCheckListBox : public SvTreeListBox
+autocdlg.o
+000000e0 R_386_32          _ZN13SvTreeListBox11MakeVisibleEP11SvLBoxEntry
+cfg.o
+000000e0 R_386_32          _ZN13SvTreeListBox11MakeVisibleEP11SvLBoxEntry
+000000e0 R_386_32          _ZN13SvTreeListBox11MakeVisibleEP11SvLBoxEntry
+    + ** fascinating ** - to see the vtable laid out, in all it's glory:
+eg.
+        .hidden _ZTV14MenuSaveInData
+        .weak   _ZTV14MenuSaveInData
+        .section        .gnu.linkonce.d._ZTV14MenuSaveInData,"awG",@progbits,_ZTV14MenuSaveInData,comdat
+        .align 32
+        .type   _ZTV14MenuSaveInData, @object
+        .size   _ZTV14MenuSaveInData, 36
+_ZTV14MenuSaveInData:
+        .long   0
+        .long   _ZTI14MenuSaveInData
+        .long   _ZN10SaveInData8GetImageERKN3rtl8OUStringE
+        .long   _ZN14MenuSaveInData6HasURLERKN3rtl8OUStringE
+        .long   _ZN14MenuSaveInData11HasSettingsEv
+        .long   _ZN14MenuSaveInData10GetEntriesEv
+        .long   _ZN14MenuSaveInData10SetEntriesEPN4_STL6vectorIP14SvxConfigEntryNS0_9allocatorIS3_EEEE
+        .long   _ZN14MenuSaveInData5ResetEv
+        .long   _ZN14MenuSaveInData5ApplyEv
+
+checklbx.o
+000000e0 R_386_32          _ZN13SvTreeListBox11MakeVisibleEP11SvLBoxEntry
+    + implements SvxCheckListBox
+	+ inherits from SvTreeListBox
+	+ which implements:
+		virtual void	MakeVisible( SvLBoxEntry* );
+... tons of other SvxCheckListBox relocations ...
+        .weak   _ZTV15SvxCheckListBox
+        .section        .gnu.linkonce.d._ZTV15SvxCheckListBox,"awG",@progbits,_ZTV15SvxCheckListBox,comdat
+        .align 32
+        .type   _ZTV15SvxCheckListBox, @object
+        .size   _ZTV15SvxCheckListBox, 540
+    _ZTV15SvxCheckListBox:
+        .long   0
+        .long   _ZTI15SvxCheckListBox
+        .long   _ZN15SvxCheckListBoxD1Ev
+        .long   _ZN15SvxCheckListBoxD0Ev
+        .long   _ZN13SvTreeListBox9MouseMoveERK10MouseEvent
+        .long   _ZN15SvxCheckListBox15MouseButtonDownERK10MouseEvent
+	...
+        .long   _ZN13SvTreeListBox11MakeVisibleEP11SvLBoxEntry
+
+
+
+non-virtual thunk to E3dView::~E3dView()        _ZThn16_N7E3dViewD1Ev
+svt::EditBrowseBox::ResizeController(svt::CellControllerRef&, Rectangle const&) _ZN3svt13EditBrowseBox16ResizeControllerERNS_17CellControllerRefERK9Rectangle
+non-virtual thunk to FmXGridPeer::disposing(com::sun::star::lang::EventObject const&)   _ZThn384_N11FmXGridPeer9disposingERKN3com3sun4star4lang11EventObjectE
+SvxCaseMapItem::Store(SvStream&, unsigned short) const  _ZNK14SvxCaseMapItem5StoreER8SvStreamt
+non-virtual thunk to SvxUnoText::~SvxUnoText()  _ZThn76_N10SvxUnoTextD0Ev
+non-virtual thunk to accessibility::AccessibleShape::queryInterface(com::sun::star::uno::Type const&)   _ZThn36_N13accessibility15AccessibleShape14queryInterfaceERKN3com3sun4star3uno4TypeE
+SdrModel::SetReadOnly(int)      _ZN8SdrModel11SetReadOnlyEi
+SdrObject::NbcSetLogicRect(Rectangle const&)    _ZN9SdrObject15NbcSetLogicRectERK9Rectangle
+Edit::LoseFocus()       _ZN4Edit9LoseFocusEv
+typeinfo for sdr::contact::ViewContact  _ZTIN3sdr7contact11ViewContactE
+non-virtual thunk to accessibility::AccessibleShape::queryInterface(com::sun::star::uno::Type const&)   _ZThn44_N13accessibility15AccessibleShape14queryInterfaceERKN3com3sun4star3uno4TypeE
+svx::FormatPaintBrushToolBoxControl::Select(unsigned char)      _ZN3svx30FormatPaintBrushToolBoxControl6SelectEh
+SvxUnoTextRangeBase::compareRegionStarts(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&)  _ZN19SvxUnoTextRangeBase19compareRegionStartsERKN3com3sun4star3uno9ReferenceINS2_4text10XTextRangeEEES9_
+SdrCircObj::CheckHit(Point const&, unsigned short, SetOfByte const*) const      _ZNK10SdrCircObj8CheckHitERK5PointtPK9SetOfByte
+SvxRTFParser::UnknownAttrToken(int, SfxItemSet*)        _ZN12SvxRTFParser16UnknownAttrTokenEiP10SfxItemSet
+non-virtual thunk to SvxShape::removePropertiesChangeListener(com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener> const&)      _ZThn40_N8SvxShape30removePropertiesChangeListenerERKN3com3sun4star3uno9ReferenceINS2_5beans25XPropertiesChangeListenerEEE
+typeinfo for SvxFontMenuControl _ZTI18SvxFontMenuControl
+SvxShadowItem::HasMetrics() const       _ZNK13SvxShadowItem10HasMetricsEv
+non-virtual thunk to SvxFmDrawPage::~SvxFmDrawPage()    _ZThn48_N13SvxFmDrawPageD1Ev
+typeinfo for XLineDashItem      _ZTI13XLineDashItem
+
+
++ Random selection of high hit-count symbols 8 or more (1170) ...
+      8 _ZThn172_N12SvxShapeText14queryInterfaceERKN3com3sun4star3uno4TypeE
+     54 _ZThn20_N17SfxToolBoxControl14queryInterfaceERKN3com3sun4star3uno4TypeE
+    199 _ZN6Window8ActivateEv
+     11 _ZN9E3dObject10NbcRotateZEd
+      9 _ZN18TransferableHelper8dragOverERKN3com3sun4star12datatransfer3dnd19Drag
+     14 _ZN9SdrObject9NbcMirrorERK5PointS2_
+     11 _ZNK13SdrDragMethod7DrawXorER13XOutputDevicei
+     10 _ZNK13SfxStringItem6CreateER8SvStreamt
+     45 _ZNK11CntBoolItem17GetValueTextByValEh
+     15 _ZTI12SvxColorItem
+
+
++ notes on layout foo:
+	+ layout_decl (vtable) ? - call to the backend for layout ?
+		+ stor-layout.c (layout_decl) - allocates storage.
+		+ sets rtl - if known
+  /* Make the rtl for any new vtables we have created, and unmark
+     the base types we marked.  */
+	+ class.c (finish_vtbls):
+
+    + class.c (layout_class_type): interesting stuff...
+
+    + class.c (create_vtable_ptr): interesting ...
+	+ The initial code creates the TREE_LIST nodes for
+	  the virtual functions:
+
+  /* Collect the virtual functions declared in T.  */
+  for (fn = TYPE_METHODS (t); fn; fn = TREE_CHAIN (fn))
+    if (DECL_VINDEX (fn) && !DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (fn)
+	&& TREE_CODE (DECL_VINDEX (fn)) != INTEGER_CST)
+      {
+	tree new_virtual = make_node (TREE_LIST);
+
+//	cp_warning_at ("create_vtable_ptr for method: %qD", fn);
+	
+	BV_FN (new_virtual) = fn;
+	BV_DELTA (new_virtual) = integer_zero_node;
+	BV_VCALL_INDEX (new_virtual) = NULL_TREE;
+
+	TREE_CHAIN (new_virtual) = *virtuals_p;
+	*virtuals_p = new_virtual;
+      }
+
+-> build_vtbl_initializer ...  
+   + calls: 
+	init = build1 (ADDR_EXPR, vfunc_ptr_type_node, fn);
+vs
+	init = build1 (ADDR_EXPR, vfunc_ptr_type_node, fn);
+
+tree.h:#define build1(c,t1,t2) build1_stat (c,t1,t2 MEM_STAT_INFO)
+cp-tree.h:#define vfunc_ptr_type_node  vtable_entry_type
+
+decl.c (cxx_init_decl_processing):
+  {
+    /* Make sure we get a unique function type, so we can give
+       its pointer type a name.  (This wins for gdb.) */
+    tree vfunc_type = make_node (FUNCTION_TYPE);
+    TREE_TYPE (vfunc_type) = integer_type_node;
+    TYPE_ARG_TYPES (vfunc_type) = NULL_TREE;
+    layout_type (vfunc_type);
+
+    vtable_entry_type = build_pointer_type (vfunc_type);
+  }
+  record_builtin_type (RID_MAX, VTBL_PTR_TYPE, vtable_entry_type);
+#define VTBL_PTR_TYPE		"__vtbl_ptr_type"
+
+
+
+tree.c (build_pointer_type):
+  return build_pointer_type_for_mode (to_type, ptr_mode, false);
+
+emit-rtl.c:
+enum machine_mode ptr_mode;	/* Mode whose width is POINTER_SIZE.  */
+
+'enum machine_mode' - never declared (apparently)
+
+* Pointing to the PLT works well at the assembler level.
+
+gcc/config/i386/i386.c:
+
+static void
+output_pic_addr_const (FILE *file, rtx x, int code)
+    case SYMBOL_REF:
+     /* Mark the decl as referenced so that cgraph will output the function.  */
+     if (SYMBOL_REF_DECL (x))
+       mark_decl_referenced (SYMBOL_REF_DECL (x));
+
+      assemble_name (file, XSTR (x, 0));
+      if (!TARGET_MACHO && code == 'P' && ! SYMBOL_REF_LOCAL_P (x))
+	fputs ("@PLT", file);
+      break;
+
+from i386:print_operand():
+/* Meaning of CODE:
+...
+   P -- if PIC, print an @PLT suffix.
+ */
+
+called from gcc/final.c (output_operand):
+
+or config/i386/sol2.h:
+#define ASM_OUTPUT_CALL(FILE, FN)				\
+  do								\
+    {								\
+      fprintf (FILE, "\tcall\t");				\
+      print_operand (FILE, XEXP (DECL_RTL (FN), 0), 'P');	\
+      fprintf (FILE, "\n");					\
+    }								\
+  while (0)
+
+These magic names come from some highly magic
+printf style output macros; cf. final.c (output_asm_insn):
+
+eg. config/i386/i386.md:
+
+(define_insn "*call_pop_0"
+  [(call (mem:QI (match_operand:SI 0 "constant_call_address_operand" ""))
+	 (match_operand:SI 1 "" ""))
+   (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
+			    (match_operand:SI 2 "immediate_operand" "")))]
+  "!TARGET_64BIT"
+{
+  if (SIBLING_CALL_P (insn))
+    return "jmp\t%P0";
+  else
+    return "call\t%P0";
+}
+
+(define_insn "*call_1_rex64"
+  [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm"))
+	 (match_operand 1 "" ""))]
+  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+{
+  if (constant_call_address_operand (operands[0], Pmode))
+    return "call\t%P0";
+  return "call\t%A0";
+}
+
+is an '@PLT' reloc machine-specific ? - yes prolly; the 'P' has to
+come from i386/ somewhere ...
+
+** No current relocations use %P - so ... no use grepping for it **
+
+* Interestingly builtins.c (build_function_call_expr)
+    + Seems to have an 'ADDR_EXPR' as it's argument to 'CALL_EXPR'
+    + PLT selection must be lower down ...
+
+varasm.c (compute_reloc_for_constant) ?
+
+varasm.c (assemble_variable): called for:
+    assemble variable 'BaseClass::_ZTV9BaseClass'
+    value of compute_reloc_for_constant 'BaseClass::_ZTV9BaseClass' is 2
+
+    -> varasm.c (output_constant):
+
+      if (! assemble_integer (expand_expr (exp, NULL_RTX, VOIDmode,
+					   EXPAND_INITIALIZER),
+			      MIN (size, thissize), align, 0))
+	error ("initializer for integer value is too complicated");
+
+expr.c (expand_expr) ->
+	    (expand_expr_addr_expr) -> most likely 'default:' path.
+
+Perhaps can hook via cp/expr.c (cxx_expand_expr): ?
+    cf. langhooks-def.h -> cp/cp-lang.c (lang_hooks)
+
+varasm.c:
+
+bool
+assemble_integer (rtx x, unsigned int size, unsigned int align, int force)
+{
+  int aligned_p;
+
+  aligned_p = (align >= MIN (size * BITS_PER_UNIT, BIGGEST_ALIGNMENT));
+
+  /* See if the target hook can handle this kind of object.  */
+  if (targetm.asm_out.integer (x, size, aligned_p))
+    ** most likely down this path **
+
+    -> varasm.c (default_assemble_integer):
+	-> varasm.c (assemble_integer_with_op)
+	    -> final.c (output_addr_const)
+
+eg. vtable method:
+varasm.c (assemble_integer) -> expand_expr_addr_expr_1 ->
+    -> default_assemble_integer '      .long   '
+    -> OutputAddrConst (SYMBOL_REF)
+	-> assemble_name (file, XSTR (x, 0));
+	    ** This is where our label is generated that
+	       needs an appended '@PLT' **
+
+** So - (perhaps) don't want to poke 'assemble_integer'
+   unless we absolutely have to **
+
+/* Used in VAR_DECLs to indicate that the variable is a vtable.
+   Used in FIELD_DECLs for vtable pointers.
+   Used in FUNCTION_DECLs to indicate that the function is virtual.  */
+#define DECL_VIRTUAL_P(NODE) (DECL_CHECK (NODE)->decl.virtual_flag)
+
+
+varasm.c(output_constant):
+    at edge of assemble_integer call we have:
+	exp == ADDR_EXPR
+	    TREE_OPERAND(exp, 0) == FUNCTION_DECL 
+	code == POINTER_TYPE
+    
+
+** Have patch to output PLT relocs for these...
+    + But ... - PLT is not populated by linker (somehow).
+
+    + The linker -appears- to fixup the @PLT relocation
+      to point to something totally bogus ... ;-)
+	+ should be an internal fixup + a non-symbol driven reloc ?
+
+    + try calling across libraries ...
+
+We end up with:
+   + objdump -R app.o:
+
+RELOCATION RECORDS FOR [.gnu.linkonce.d._ZTV8SubClass]:
+OFFSET   TYPE              VALUE 
+00000008 R_386_PLT32       _ZN9BaseClass5doFooEv
+0000000c R_386_32          _ZN8SubClass10doFooOtherEv
+
+With just an appended '@PLT' the vtable then holds:
+    8049cc8: ff ff ea 38 [doFooEv] (broken)
+    8049ccd: 08 04 87 d4 [doFooOtherEv] (correct)
+
+suitable for a call <foo@plt> - but we want an absolute
+label reference there.
+
+bfd_howto_type -> (bfd/bfd.h) reloc_howto_struct:
+cf. 
+  HOWTO(R_386_PLT32, 0, 2, 32, TRUE /* pc_relative */, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_386_PLT32",
+	TRUE, 0xffffffff, 0xffffffff, TRUE),
+  HOWTO(R_386_JUMP_SLOT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_386_JUMP_SLOT",
+	TRUE, 0xffffffff, 0xffffffff, FALSE),
+
+  HOWTO(R_386_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_386_32",
+	TRUE, 0xffffffff, 0xffffffff, FALSE),
+
+** We want to generate an R_386_JUMP_SLOT instead of R_386_PLT ...
+    + how to do that ?
+
+     RELOC_NUMBER (R_386_PLT32,	    4)	/* 32 bit PLT address */
+     RELOC_NUMBER (R_386_JUMP_SLOT, 7)	/* Create PLT entry */
+
+** Unfortunately - we can't do it ... - need a new suffix: @FOO ?
+    + 
+
+cf. binutils/gas/config/tc-i386.c (lex_got):
+    + fixups.
+
+
+So - somehow the @PLTABS relocation is getting clobbered
+    + also there are 'extended' '-fvtable-gc' relocation types:
+
+    + Can we piggy-back off this code ?:
+
+`-fvtable-gc'
+     Emit special relocations for vtables and virtual function
+     references so that the linker can identify unused virtual
+     functions and zero out vtable slots that refer to them.  This is
+     most useful with `-ffunction-sections' and `-Wl,--gc-sections', in
+     order to also discard the functions themselves.
+
+     This optimization requires GNU as and GNU ld.  Not all systems
+     support this option.  `-Wl,--gc-sections' is ignored without
+     `-static'.
+
+
+** So - patch works well for this case:
+
+    + VTable & PLT slot in main app object, (method already had
+      plt entry (?))
+    + we should be generating a non-symbol-driven relocation
+      *per* PLT slot (surely) - since these are not relative
+      jumps at all - but absolute fixups.
+	    + ... Hmm ...
+
+** Function pointer equality -
+    + already an issue with the PLT -> eg elf32-i386.c:
+
+elf_i386_finish_dynamic_symbol:
+      if (!h->def_regular)
+	{
+	  /* Mark the symbol as undefined, rather than as defined in
+	     the .plt section.  Leave the value if there were any
+	     relocations where pointer equality matters (this is a clue
+	     for the dynamic linker, to make function pointer
+	     comparisons work between an application and shared
+	     library), otherwise set it to zero.  If a function is only
+	     called from a binary, there is no need to slow down
+	     shared libraries because of that.  */
+	  sym->st_shndx = SHN_UNDEF;
+	  if (!h->pointer_equality_needed)
+	    sym->st_value = 0;
+	}
+
+
+** Fuzzy understanding:
+
+	+ What is a 'JUMP_SLOT' relocation we have 3 things:
+		+ a plt entry
+		+ a relocation pointing to it (should be relative)
+	+ Does the runtime fix up use the .dyn.plt relocation data
+	  to do the fixup ?: most likely ...
+		+ ie. we need to output 2 relocations: 1 JUMP_SLOT
+		  (done per-symbol)
+		  and also 1 RELATIVE relocation - per vtable entry.
+	+ we must already output 1 fixup per PLT entry - to
+	  point at that PLT entry - but this is not a relocation
+	  but an immediate link-time fixup (?)
+		
+
+* elf32-i386.c (elf_i386_relocate_section):
+	+ looks interesting - PLT code very light.
+
+	+ bfd_elf32_swap_reloc_out -> (bfd/elflink.h)
+
+/* Translate an ELF reloc from internal format to external format.  */
+void
+elf_swap_reloc_out (bfd *abfd,
+		    const Elf_Internal_Rela *src,
+		    bfd_byte *d)
+{
+  Elf_External_Rel *dst = (Elf_External_Rel *) d;
+  H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
+  H_PUT_WORD (abfd, src->r_info, dst->r_info);
+}
+
+void
+elf_swap_reloca_out (bfd *abfd,
+		     const Elf_Internal_Rela *src,
+		     bfd_byte *d)
+{
+  Elf_External_Rela *dst = (Elf_External_Rela *) d;
+  H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
+  H_PUT_WORD (abfd, src->r_info, dst->r_info);
+  H_PUT_SIGNED_WORD (abfd, src->r_addend, dst->r_addend);
+}
+
+
+* JUMP_SLOT relocation:
+	+ offset points into .got.plt
+		+ allows that to be fixed up idly.
+		+ .rel.plt - contains symbol index to do fixup
+	+ contents of <.got.plt> is
+		+ <raw address> -> jump back into
+		  equivalent PLT code
+
+    ** creating a jump-slot (PLT) reloc **
+	+ write reloc itself to /.rel.plt/
+		-> /.got.plt/
+		+ the reloc allows .got.plt to be relocated
+		  with the library.
+	+ create /.plt/ record
+		+ assign index -> /.got.plt/ etc.
+	+ write /.got.plt/ record
+		+ initially points into relevant /.plt/ record
+	+ <foreach referrer to symbol>
+		+ create relative address to that code
+		+ ie. call 790 <fprintf@plt> (pc-relative)
+
+    ** normal PLT code: 
+
+** The input code has:
+
+RELOCATION RECORDS FOR [.gnu.linkonce.d._ZTV9BaseClass]:
+OFFSET   TYPE              VALUE 
+00000008 R_386_PLT32ABS    _ZN9BaseClass5doFooEv
+0000000c R_386_PLT32ABS    _ZN9BaseClass5countEv
+00000010 R_386_PLT32ABS    _ZN9BaseClassixEi
+	 ie. the .d._ZTV9BaseClass is a section.
+	 each of these is a location we want to add an
+	 R_386_RELATIVE to.
+
+** Dynamic linker:
+   glibc/elf/do-rel.h: (elf_machine_lazy_rel)
+   cf. glibc/sysdeps/i386/dl-machine.h
+	+ a JUMP_SLOT reloc has:
+
+__attribute__ ((always_inline))
+elf_machine_lazy_rel (struct link_map *map,
+		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
+{
+  Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
+  const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
+  /* Check for unexpected PLT reloc type.  */
+  if (__builtin_expect (r_type == R_386_JMP_SLOT, 1))
+    {
+      if (__builtin_expect (map->l_mach.plt, 0) == 0)
+	*reloc_addr += l_addr;
+      else
+	*reloc_addr = (map->l_mach.plt
+		       + (((Elf32_Addr) reloc_addr) - map->l_mach.gotplt) * 4);
+    }
+  else
+    _dl_reloc_bad_type (map, r_type, 1);
+}
+	This fixup occurs on the GOT reference.
+called from dynamic-link.h: ELF_DYNAMIC_DO_REL,
+and ELF_DYNAMIC_RELOCATE from glibc/elf/dl-reloc.c (_dl_relocate_object)
+
+	'lazy' is only set for DT_PLTREL sections,
+	not DT_RELOC ones.
+
+	Otherwise (glibc/elf/do-rel.h):
+	  for (; relative < r; ++relative)
+	    DO_ELF_MACHINE_REL_RELATIVE (map, l_addr, relative);
+
+	+ The runtime dylinker is very simple.
+
+
+** The fixup of the original PLT32ABS address must be in
+   elf32-i386.c [ or outside using the reloc_howto_type data ]
+
+via: ?
+
+** Callers of elf_i386_reloc_type_lookup:
+
+	static reloc_howto_type *
+	elf_i386_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+				    bfd_reloc_code_real_type code)
+	#define bfd_elf32_bfd_reloc_type_lookup	      elf_i386_reloc_type_lookup
+		called via:
+	reloc_howto_type *bfd_reloc_type_lookup
+	   (bfd *abfd, bfd_reloc_code_real_type code);
+
+bfd/elf.c (_bfd_elf_validate_reloc) calls this ...
+	( just for convert non elf to elf relocs ? )
+
+bfd/linker.c:
+	/* Create a relocation.  */
+	bfd_boolean
+	_bfd_generic_reloc_link_order (bfd *abfd,
+			       struct bfd_link_info *info,
+			       asection *sec,
+			       struct bfd_link_order *link_order)
+bfd/reloc.c:
+	+ (bfd_reloc_type_lookup): implemented - jump via vtable.
+
+	* The hooks themselves point to:
+		bfd_elf_generic_reloc
+
+* TLS docs: (not useful): http://people.redhat.com/drepper/tls.pdf
+
+linker.c: has some great docs at the top:
+
+	+ it seems reloc processing all happens in the final
+	  stage. (_bfd_generic_final_link)
+
+	+ need to bump up bfd_get_reloc_upper_bound ...
+
+** TODO:
+   + the elf_i386_relocate_section method needs the fixup:
+	+ iterates over the input_section relocs ...
+	    + foo ! :-)
+	+ this must do the in-line fixups for each source
+	  PLT32ABS - get it right ...
+	+ just need to output the R_386_RELATIVE here (?)
+	  (need allocated space for it though (?))
+
+*** ARGH - too much pain ...
+
+A new approach ?
+    + output: yet more inefficiency & brokenness:
+	.long _Z.....Slot
+    + later:
+	.long _Z.....Slot attribute 'hidden' etc.
+		jmp foo@plt
+    + nasty: whacks a NULL in the vtable but does
+             insert a relocation of the right type.
+
+	.section        .text.stubs
+	.align 2
+_ZN8SubClass5doFooEvStub:
+	jmp		_ZN8SubClass5doFooEv@plt
+
+Wow - adds even, even more inefficiency ;-)
+
+    * But trivial - requires no linker changes & => worthwhile.
+
+
+* gennorm investigation:
+    * re-building the library with -O0 - doesn't make it work.
+    * 
+    * running 'gennorm' in icu fails with '-O' - but not if built with -O0
+
+    + re-building just the .cpp with -O0 - fails ...
+
+Breakpoint 1, uset_contains_2_6 (set=0x822d2a8, c=136499880) at uset.cpp:152
+152         return ((const UnicodeSet*) set)->contains(c);
+(gdb) s
+
+Program received signal SIGSEGV, Segmentation fault.
+0x00000000 in ?? ()
+(gdb) bt
+#0  0x00000000 in ?? ()
+#1  0x400a2076 in uset_contains_2_6 (set=0x822d2a8, c=193) at uset.cpp:152
+#2  0x0804b5a6 in postParseFn (context=0x0, code=193, norm=0x4033666c) at store.c:1110
+
+    ** Seems clear that the vtable entry there is NULL ...
+
+So - the call is correct:
+
+ends up in:
+
+00099451 <_ZNK7icu_2_610UnicodeSet8containsEiiSlot>:
+   99451:	e9 5e fc f8 ff       	jmp    290b4 <_ZNK7icu_2_610UnicodeSet8containsEii@plt>
+Disassembly of section text._ZNK7icu_2_610UnicodeSet11containsAllERKS0_:
+
+goes to:
+
+000290b4 <_ZNK7icu_2_610UnicodeSet8containsEii@plt>:
+   290b4:	ff a3 30 09 00 00    	jmp    *0x930(%ebx)
+   290ba:	68 48 12 00 00       	push   $0x1248
+   290bf:	e9 50 db ff ff       	jmp    26c14 <_init+0x18>
+
+** Most probable **:
+    + %ebx adjustment/assignment is not working ...
+
+0008292e <uset_contains_2_6>:
+   8292e:	55                   	push   %ebp
+   8292f:	89 e5                	mov    %esp,%ebp
+   82931:	83 ec 08             	sub    $0x8,%esp
+   82934:	8b 55 08             	mov    0x8(%ebp),%edx
+   82937:	8b 0a                	mov    (%edx),%ecx
+   82939:	8b 45 0c             	mov    0xc(%ebp),%eax
+   8293c:	89 44 24 04          	mov    %eax,0x4(%esp)
+   82940:	89 14 24             	mov    %edx,(%esp)
+   82943:	ff 51 1c             	call   *0x1c(%ecx)
+   82946:	0f be c0             	movsbl %al,%eax
+   82949:	c9                   	leave  
+   8294a:	c3                   	ret    
+   8294b:	90                   	nop    
+
+    * As is the case ! ...
+
+    (doh) ...
+
+gcc/config/i386/i386.c (output_set_got) 
+    + sets up %ebx 
+
+    (ix86_expand_prologue): calls (gen_set_got) - looks hopeful.
+
+gcc/config/i386/i386.c (ix86_expand_prologue):
+  pic_reg_used = false;
+  if (pic_offset_table_rtx
+      && (regs_ever_live[REAL_PIC_OFFSET_TABLE_REGNUM]
+	  || current_function_profile))
+
+** What are:
+    + current_function_profile
+	+ profiling hard-core goodness ...
+    + pic_offset_table_rtx
+	+ seems to be set if -fPIC is enabled otherwise not.
+    + regs_ever_live ?
+
+ix86_expand_prolog (nil) 0
+ix86_expand_prolog (nil) 0
+ix86_expand_prolog 0x4017f3f0 1
+ix86_expand_prolog 0x4017f3f0 1
+ix86_expand_prolog (nil) 1
+
+    
+
+gcc/function.h:
+    + 'unsigned int uses_pic_offset_table : 1'
+	+ used while generating the code - did this fn.
+	  use the pic offset ?
+    + ie. red-herring - only set in the config/ backends.
+
+  /* If we are doing position-independent code generation, now
+     is the time to output special prologues and epilogues.
+     We do not want to do this earlier, because it just clutters
+     up inline functions with meaningless insns.  */
+read FINALIZE_PIC ...
+
+*** URGH ......
+    + We have no idea what library the vtable is in:
+	=> there is no way we can setup the got properly ...
+	=> we have to generate different code ...
+
+We need to emit something like:
+
+_ZN8SubClass5doFooEvSlot:
+    push    %ebx
+    subl    $4, %esp
+    call    __i686.get_pc_thunk.bx
+    addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+    call    _ZN8SubClass5doFooEv@plt
+    addl    $4, %esp
+    pop	%ebx
+    ret
+
+    ie. a proper stub function ...
+
+    Unfortunately the %esp adjustment necessary to read / calc the
+base-ptr offset is arg. list length dependant => we need some more
+heavy lifting; furthermore - we want to pass our arguments on
+un-changed [ => can't screw with the stack ... ] (without a highly
+painful copy in / out).
+
+    Read up on how the PLT works ... - must have the same problems ...
+
+    it does a jmp absolute(0x...)-> got -> push <immediate-idx>,
+jmp <foo>, push <immediate>, jmp GOT+1
+
+00000868 <plt0>:
+ 868:	ff b3 04 00 00 00    	pushl  0x4(%ebx)
+ 86e:	ff a3 08 00 00 00    	jmp    *0x8(%ebx)
+ 874:	00 00                	add    %al,(%eax)
+ 876:	00 00                	add    %al,(%eax)
+
+
+    Calls (via trampoline) into
+    'glibc/dl-runtime.c (fixup)'
+
+glibc/sysdeps/i386/dl-machine.h
+    #  define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
+	.text\n\
+	.globl _dl_runtime_resolve\n\
+	.type _dl_runtime_resolve, @function\n\
+	" CFI_STARTPROC "\n\
+	.align 16\n\
+_dl_runtime_resolve:\n\
+	" CFI_ADJUST_CFA_OFFSET (8) "\n\
+	pushl %eax		# Preserve registers otherwise clobbered.\n\
+	" CFI_ADJUST_CFA_OFFSET (4) "\n\
+	pushl %ecx\n\
+	" CFI_ADJUST_CFA_OFFSET (4) "\n\
+	pushl %edx\n\
+	" CFI_ADJUST_CFA_OFFSET (4) "\n\
+	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note\n\
+	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.\n\
+	call fixup		# Call resolver.\n\
+	popl %edx		# Get register content back.\n\
+	" CFI_ADJUST_CFA_OFFSET (-4) "\n\
+	popl %ecx\n\
+	" CFI_ADJUST_CFA_OFFSET (-4) "\n\
+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
+	ret $8			# Jump to function address.\n\
+	" CFI_ENDPROC "\n\
+
+	ret $8 - cunning trick to return from the fn -> but
+really call another fn. / peel back the stack ...
+
+* Question - how does the get_pc_thunk.bx method work:
+
+	.section	.gnu.linkonce.t.__i686.get_pc_thunk.bx,"axG",@progbits,__i686.get_pc_thunk.bx,comdat
+.globl __i686.get_pc_thunk.bx
+	.hidden	__i686.get_pc_thunk.bx
+	.type	__i686.get_pc_thunk.bx, @function
+__i686.get_pc_thunk.bx:
+	movl	(%esp), %ebx
+	ret
+
+	* Seems to fetch from stack 
+	    * AH! - we 'call' (%esp) => pushes current PC -> stack
+
+    + Quandry:
+	+ we can't store %ebx on the stack
+	    + need to have %ebx setup right - but can't ...
+	+ can we call fixup ourselves & then chain ?
+	    + compare vs NULL first ?
+	    + [ ugly but ... ]
+
+	+ ie. duplicate the PLT entry for that symbol [tough]
+	    + can we use the instruction pointer in some addressing mode ?
+	+ can we jump straight into the GOT ?
+	    + nope plt0 requires %ebx.
+
+
+    + Output:
+	+ have to have a symbol index per symbol -
+	  tough wrt. linker changes (?) - done for PLT
+	  currently though.
+
+
+* Good news:
+  fprintf (stderr, "Vfunc ptr %p\n", &(pClass->doFoo));
+  app.cxx:35: error: ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say '&BaseClass::doFoo'
+
+* So we can fiddle with that pointer value as much as we like.
+
+
+** Fuller design **:
+
+    *** development-gcc@suse.de ***
+	+ -foo-
+
+    + .rel.plt contains symbol indexes to do the fixup ...
+    + .got.foo: target for relocations when done ...
+
+    + Finding the index into the vtable:
+	+ we only call this once => it can be extremely slow ... *
+	+ the tail part of the PLT foo:
+	    + push $<plt-offset>
+	    + jmp <rel> _ZTV...<Init>
+	+ [ would prefer to have it in a register ]
+	    + [ but then unused in the common case ? ]
+
+    + Can we do the fixup & then 
+	+ We need an entirely new relocation type / more sections:
+	    + PLT fixup's relocations have 1 offset: index into table.
+	+ .got
+	    .long 00
+	    .long 00
+	    .long 00 <will be vlt fixup fn.>
+	+ .data
+	    + _ZTV3Foo:
+		.long _doFoo@vlt
+		.long _doBaa@vlt
+	+ .rel.vlt
+	    + JUMP_SLOT 'doFoo'
+	    + JUMP_SLOT 'doBaa' ...
+	+ .vlt (ronly?)
+	    _fixup@vlt: [ slot 0 ]
+		pushl %ebx
+		call __i686.get_pc_thunk.bx:
+		jmp *0x12(%ebx) // another magic GOT slot ?
+		
+	    _doFoo@vlt:	    
+		pushl $<index into rel.vlt of JUMP_SLOT relocation>
+		pushl $<address-of-vtable-slot> [ needs fixup but ... ]
+		// better to push just the slot offset ? we have
+		// this->_vtable_ptr of course.
+		jmp _fixup@vlt
+		
+		
+
+// potential optimisations:
+    + build whole vtable at once on 1st method call ...
+    + copy parent
+    + emit only JUMP_SLOTs for overridden methods ...
+
+
+** 2 approaches:
+
+    + emit a 'vtable_construction' function per method...
+	+ have static/ro data in that ?
+	+ and 1 symbol ... (?)
+
+    + have a 'ClassInit' symbol:
+_ZN9BaseClassC2Ev:
+.LFB30:
+	.file 1 "lib.cxx"
+	.loc 1 5 0
+	pushl	%ebp
+.LCFI0:
+	movl	%esp, %ebp
+.LCFI1:
+	call	.L2
+.L2:
+	popl	%ecx
+	addl	$_GLOBAL_OFFSET_TABLE_+[.-.L2], %ecx
+	.loc 1 5 0
+.LBB2:
+	movl	8(%ebp), %eax
+	movl	_ZTV9BaseClass@GOT(%ecx), %edx
+	leal	8(%edx), %edx
+	movl	%edx, (%eax)
+	.loc 1 6 0
+	movl	8(%ebp), %eax
+	movl	$3, 4(%eax)
+	.loc 1 7 0
+	popl	%ebp
+	ret
+
+	call 'SetupVTable'
+
+    + how can we hook that ?
+
+        gcc/cp/class.c (build_vtbl_initializer)
+	    + builds the _ZTV vtable init
+	    + needs re-working/cut/pasting to output
+	      something else.
+	    + (build_vtbl_ref) - looks interesting.
+	    + (set_linkage_according_to_type) - also interesting.
+
+	+ clearly (?) - the copy-constructor doesn't
+	  need this fixup ...
+    + Nice feature:
+	+ we can do this optimisation for -only- the simplest
+	  cases & leave the relocations in-place for more
+	  complex cases. VTTs etc
+
+    + gcc/cp/init.c (build_vtbl_address):
+	+ builds address reference for vtable ptr.
+	+ (expand_virtual_init): bingo wrt. vtable ptr setup.
+	    + 
+
+    + gcc macro unwinding help: eg.
+	http://theoryx5.uwinnipeg.ca/gnu/gcc/gxxint_5.html
+
+    + gcc compiled with --enable-checking ...
+	+ lots of nice error checking.
+
+    + init.c (expand_virtual_init) - called once per vtable base ptr.
+	<- (dfs_initialize_vtbl_ptrs): list callback
+	    <- (initialize_vtbl_ptrs)
+		<- [ called from decl.c: destructor emission  ]
+		<- (emit_mem_initializers)
+		    <- semantics.c (finish_mem_initializers)
+
+    + semantics.c (finish_mem_initializers)
+	<- method.c (do_build_copy_constructor, synthesize_method)
+	<- parser.c (cp_parser_ctor_initializer_opt),
+	<- parser.c (cp_parser_mem_initializer_list)
+	<- pt.c (tsubst_expr) - case CTOR_INITIALIZER
+
+    + How is the existing vtable data built ?
+	+ class.c (build_vtbl_initializer) - build inits.
+	    <- (dfs_accumulate_vtbl_inits) - iterator callback ...
+		<- (accumulate_vtbl_inits) 
+		    <- (finish_vtbls)
+		    <- (build_ctor_vtbl_group)
+
+    + class.c (finish_vtbls) [ <- (finish_struct_1) ]
+	+ seems to call (initialize_vtable) to do the
+	  actual output.
+	+ can we generate what we want from the existing
+	  list ?
+	+ (intialize_artificial_var) ...
+	    + sets up the decl itself variously ...
+	    + seems to expose via BINFO_VTABLE member
+	    + Appending to: 
+		+ TREE_CHAIN (decl) = TREE_CHAIN (CLASSTYPE_VTABLES (type));
+		+ seems to cause bits to get generated ...
+
+    + The real output of all this foo is in:
+	decl2.c (maybe_emit_vtables)
+	    + walks the CLASSTYPE_VTABLES chain ...
+    + TODO: work out where the rtti data gets output ...
+	/mangle_typeinfo_for_type/
+
+	+ poke at all CLASSTYPE_VTABLES hits
+	    + update with CLASSTYPE_VTABLE_DESCRS ...
+		+ foo ...
+
+    + GCC debug / warning output
+	: '%q' == 'quote'
+	    : <installable format translators ...>
+	    : c-objc-common.c: (c_tree_printer)
+		'%D' : a general decl
+		'%E' : an identifier or expr.
+		'%F' : a function decl.
+		'%T' : a type
+	    : cp/error.c (cp_printer):
+		%A   function argument-list.
+		%C	tree code.
+		%D   declaration.
+		%E   expression.
+		%F   function declaration.
+		%L	language as used in extern "lang".
+		%O	binary operator.
+		%P   function parameter whose position is indicated by an integer.
+		%Q	assignment operator.
+		%T   type.
+		%V   cv-qualifier.
+  
+
+    + need a pointer from vtable -> description
+        + append it to the Type Info ?
+	    + [ need to force TI generation too ...]
+	+ slowish search ?
+	+ ...
+    + need to deal with internal relocs too [via TI?]
+	+ how do we nagivate the TI ?
+	    [before?]
+	+ The TI pointer - has all the base-class information
+	    [ wrt. copying etc. ]
+	    + [ understand it's layout ]
+	    + [ must have size info too - to walk it ]
+	    + can we append stuff ?
+
+    + can we clobber .got.plt ?
+	+ [ or are those mangled in some way ? ]
+    + where is .rel.dyn created ?
+
+* Where is .rel.dyn created ?
+  ld/eelf_i386.c:
+  .rel.dyn        :\n\
+    {\n\
+      *(.rel.init)\n\
+      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n\
+      *(.rel.fini)\n\
+      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n"
+"      *(.rel.data.rel.ro*)\n\
+      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n\
+      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n\
+      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n\
+      *(.rel.ctors)\n\
+      *(.rel.dtors)\n\
+      *(.rel.got)\n\
+      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n\
+    }\n\
+
+    + looks like all those rel. sections get merged ...
+        => add to rel.got like a swine ... (check special cases?)=======
+
+** Type info pieces:
+    http://www.codesourcery.com/cxx-abi/abi.html#rtti
+
+Every virtual table shall contain one entry that is a pointer to an
+object derived from std::type_info. This entry is located at the word
+preceding the location pointed to by the virtual pointer (i.e., entry
+"-1"). The entry is allocated in all virtual tables; for classes
+having virtual bases but no virtual functions, the entry is zero.
+
+We add one pointer to the std::type_info class in addition to the
+virtual table pointer implied by its virtual destructor:
+
+
+Hence we see:
+
+_ZTI11AnotherBase:
+        .long   _ZTVN10__cxxabiv117__class_type_infoE+8
+        .long   _ZTS11AnotherBase
+
+_ZTI8SubClass:
+	.long	_ZTVN10__cxxabiv121__vmi_class_type_infoE+8
+	.long	_ZTS8SubClass
+	.long	0
+	.long	2
+	.long	_ZTI9BaseClass
+	.long	2
+	.long	_ZTI11AnotherBase
+	.long	2050
+
+1 inheriting from __class_type_info and
+1 from __vmi_class_type_info
+
+
+** Look at obj-prelink some more ...
+    + do we really need to hook the TI ?
+	+ can we not do something more interesting ?
+
+
+** Switch to binutils hackage
+    + can we use the obj-prelink approach here to
+      get a quick prototype ?
+
+
+0x90 - nop ...
+
+static char stub0[] = 
+{
+  0x68, 0, 0, 0, 0,                     /* push $junk */
+  0x68, 0, 0, 0, 0                      /* push $junk */
+};
+
+static char stub[] = 
+{
+  0xe9, 0xfc, 0xff, 0xff, 0xff,         /* jmp xxx@PC */
+  0x68, 0, 0, 0, 0                      /* push $junk */
+};
+
+** bfd_put32 - doesn't output a reloc [!]
+    + also - it needs space ...
+
+elfcode.h (elf_swap_reloc_out):
+void
+elf_swap_reloc_out (bfd *abfd,
+		    const Elf_Internal_Rela *src,
+		    bfd_byte *d)
+{
+  Elf_External_Rel *dst = (Elf_External_Rel *) d;
+  H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
+  H_PUT_WORD (abfd, src->r_info, dst->r_info);
+}
+
+H_PUT_WORD -> H_PUT_32 -> bfd.h (bfd_h_put_32)
+#define bfd_h_put_32(abfd, val, ptr) \
+  BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
+
+=> do need section address ...
+
+    + Where do we swap this reloc to !?
+    + elf_i386_check_relocs:
+	+ allocates more space: ->count += 2;
+	+ [ in struct elf_i386_dyn_relocs *p; ]
+
+    + Understand how we can allocate those relocs
+	+ somewhere there must be the section with
+	  them in it [!] (?)
+	+ are they contiguous or scattered ?
+	+ how does sorting fit into that ?
+
+** Questions:
+    + what does the p->count++ increase the size of ?
+    + allocate_dynrelocs (?)
+	+ eventually does:
+	  /* Finally, allocate space.  */
+	  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+	  {
+	    asection *sreloc = elf_section_data (p->sec)->sreloc;
+	    sreloc->size += p->count * sizeof (Elf32_External_Rel);
+	  }
+	+ So - we need to know what section our reloc is in (?)
+	    + all from the same section ?
+	    + how then to calculate the offset ?
+	    + can we piggy back on some other section ?
+
+** State of the art is:
+    + gcc-vtplt.diff + binutils-objprel.diff:
+	+ missing relocs for .plt[0] though.
+
+    + problems:
+	+ - we only need 1 RELATIVE reloc per PLT entry ...
+	    + or do we ?
+	+ relocs to wrong address ?
+	    + no reloc for base plt entry ...
+	+ jmp $08(%esp) ?
+	    + after a push / stack-adjust ?
+	    + or ... [contents of ...]
+
+	+ Asm syntax:
+	    + absolute (vs. PC relative) jumps prefixed by '*'
+	    + 
+
+    + Install older bfd tools & build a
+      working objprelink2
+	+ compare output ...
+
+
++ Comparison:
+	+ fn pointer comparison problems (still)
+	+ extra pages written - extra unshared data
+		+ [size of plts]
+			+ [ with symbol visibility ?]
+	+ relocation counts:
+		+ before/after
+
+	+ Mathematics:
+		+ not every vtable slot is looked up 
+			+ [cache]
+		+ assume perfect symbol/visibility markup
+			=> every external symbol is used somewhere
+				[ very unlikely ]
+			=> distorts scaling ... (?)
+		+ partition every N vtable symbols into a discrete library ...
+
+		+ N = vtable_methods
+		+ k = methods-per-library
+		+ num_libs = N/k
+
+		+ symbol lookup complexity = N * num_libs * log (N)
+		+ R - number of times class is re-used outside library ...
+			+ R ~= log (num_libs)
+
+		+ difference between proportion overridden &
+		  proportion new V slots - 60% -> 80% ?
+
+		+ so - each of N vtable methods is looked up R * 80% times each
+			+ ie. 0.8 * N log (N/k)
+			
+
+		+ => total cost = lookup_cost * num_lookups
+			        = N/k * log (N) * N * (1 + log (N/k) )
+
+
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/crypto.txt
+++ openoffice.org-2.4.1/ooo-build/doc/crypto.txt
@@ -0,0 +1,44 @@
+Crypto use in ooo-build/OOO
+
+OpenOffice.org
+
+        SL91: OpenOffice_org-1.1
+
+        SL92: OpenOffice_org-1.1.2
+	
+	SL93: OpenOffice_org-2.0-beta
+
+The main URL is: http://www.openoffice.org/
+
+The following cryptographics code has been found in OOo:
+
+svx/source/msfilter/mscodec.cxx:
+    + does simple XOR encryption, it was moved from sc/sc/source/filter/excel/xistream.cxx
+      as of OOo-2.0
+    + also hooks into rtl_Digest_* from sal/rtl/source/digest.c
+    
+sal/rtl/source/cipher.c:
+    + implements block ciphers:
+	+ Blowfish - blocksize = 8; keylenght does not seem to be limited
+    + implements stream ciphers:
+	+ ARC4 - key lenght does not seem to be limited
+
+sal/rtl/source/crc.c:
+    + does CRC redundancy check
+
+sal/rtl/source/digest.c:
+    + implements digest algorithms:
+	+ MD2, MD5, SHA, SHA1, HMAC_MD5, HMAC_SHA1
+
+module libxmlsec:
+    + uses system libnss (mozilla) to get crypto functions
+
+modules xmlsecurity:
+    + uses system libnss (mozilla) to get the crypto functions
+    + the libnss code is currently duplicated in the OOo sources
+      (system-mozilla-xmlsecurity-libnss.diff) until the system
+      mozilla provides a missing symbol. It could be removed for
+      SL 9.3-final.
+
+Sources of the zlib library (used for compression) and python-2.2.2 are
+no loger included in the stripped source tarball.
--- openoffice.org-2.4.1.orig/ooo-build/doc/autorecovery.txt
+++ openoffice.org-2.4.1/ooo-build/doc/autorecovery.txt
@@ -0,0 +1,47 @@
+
+AutoSave feature
+----------------
+
+Keys (Office.Common/Save)
+       "Document/AutoSave",
+       "Document/AutoSavePrompt",
+       "Document/AutoSaveTimeIntervall",
+    [ svtools/inc/saveopt.hxx (GetAutoSaveTime):
+	-> sfx2/source/appl/appcfg.cxx (GetOptions)
+	    -> SID_ATTR_AUTOSAVEMINUTE
+		    only used for tools->options dialog ]
+
+framework/framework/inc/services/autorecovery.hxx, line 178
+    implements the functionality of AutoSave and AutoRecovery
+
+
+AutoRecovery feature
+--------------------
+
+1> A user can change autorecovery time from default 15 to 1 min (though the spec
+says minim is 5 min) tools->load/save -> general -> "Save autorecovery
+information every ...". It helps to reduce this time :)
+
+2> AutoRecovery works in a simple way. Whenever a file is opened in OOo a "node entry" (RecoveryList/recovery_item_NN) is created in the file 
+~/.ooo-2.0-pre/user/registry/data/org/openoffice/Office/Recovery.xcu .
+OR ~/.openoffice.org1.9.milestone/user/registry/data/org/openoffice/Office/Recovery.xcu
+
+Now this Recovery.xcu has few interesting attributes:
+
+- DocumentState : Contains some int values. Which tells the current state of document I have seen values 0,512,513 (Don't ask me what they are).putting my guesses 0=new document without any content, 512 = Document saved. 513 = modified document exsists.
+  
+- OriginalURL : If the file already exsists. This attribute is filled.
+
+- TempURL : All the "modified files" are put up as a tempfile untill it is saved in some home-directory. typically this tempfile would be in "~/.openoffice.org1.9.milestone/user/backup" directory. 
+
+If a document is closed properly the recovery_item_NN Entry is Removed. But if OOo closes abruptly : 
+On next launch of OOo, depending upon the value of DocumentState a recovery dialog pops up and the file is recoverd from TempURL. The entries is removed from the Recovery.xcu file.
+
+files to look:
+
+ - framework/source/services/autorecovery.cxx
+ - desktop/source/app/app.cxx:impl_callRecoveryUI()
+ - svx/source/unodraw/Recoveryui.cxx:impl_doRecovery()
+ - unotools/source/ucbhelper/tempfile.cxx
+
+  
--- openoffice.org-2.4.1.orig/ooo-build/doc/user-dict.txt
+++ openoffice.org-2.4.1/ooo-build/doc/user-dict.txt
@@ -0,0 +1,63 @@
+User dictionaries:
+
+read by linguistic/source/dicimp.cxx (etc.)
+
+Lots of:
+
+class DicEntry :	
+	public cppu::WeakImplHelper1
+	<
+		::com::sun::star::linguistic2::XDictionaryEntry
+	>
+{
+	::rtl::OUString	aDicWord,     // including hyphen positions represented by "="
+			aReplacement; // including hyphen positions represented by "="
+	BOOL            bIsNegativ;
+
+	'splitDicFileWord'
+
+** Constructor used by file read: 
+
+DicEntry::DicEntry(const OUString &rDicFileWord,
+		    BOOL bIsNegativWord)
+			
+
+Format wise:
+
+       + use \n as a line terminator
+       + OOoDICT1
+       + 
+
+'=' are used as hypenation markers
+
+'splitDicFileWord':
+a===b	     [ replacement foo ]
+a	     [ normal dictionary item ]
+
+'saveEntries':
+    + seems to imply that '==' denotes a 'negative' entry.
+    + 'a negative entry' seems to imply
+	+ it is replaced with something else...
+
+(gdb) bt
+#0  __readdir (dirp=0x8b80788) at readdir.c:41
+#1  0x4090289d in osl_getNextDirectoryItem () from ./libuno_sal.so.3
+#2  0x4388d707 in osl::Directory::getNextItem () from ./libucpfile1.so
+#3  0x43897c71 in fileaccess::XResultSet_impl::OneMore () from ./libucpfile1.so
+#4  0x43898037 in fileaccess::XResultSet_impl::next () from ./libucpfile1.so
+#5  0x4067e527 in utl::LocalFileHelper::GetFolderContents () from ./libutl680li.so
+#6  0x45853fb2 in DicList::searchForDictionaries (this=0x8c3df50, rDicList=@0x8ac4988, rDicDir=@0x80e56e4)
+    at /nld/suse-opt/OpenOffice/src680-m145/linguistic/source/dlistimp.cxx:363
+#7  0x458547fa in DicList::_CreateDicList (this=0x8c3df50) at /nld/suse-opt/OpenOffice/src680-m145/linguistic/source/dlistimp.cxx:702
+#8  0x45856c7d in DicList::GetDicList (this=0x8c3df50) at dlistimp.hxx:120
+#9  0x4585595c in DicList::getDictionaries (this=0x8c3df50) at /nld/suse-opt/OpenOffice/src680-m145/linguistic/source/dlistimp.cxx:463
+#10 0x45872449 in linguistic::SearchDicList (xDicList=@0xbfe2661c, rWord=@0xbfe26644, nLanguage=1033, bSearchPosDics=1 '\001', 
+    bSearchSpellEntry=1 '\001') at /nld/suse-opt/OpenOffice/src680-m145/linguistic/source/misc.cxx:381
+#11 0x45878364 in SpellCheckerDispatcher::isValid_Impl (this=0x8c43d00, rWord=@0xbfe268b8, nLanguage=1033, rProperties=@0xbfe268b4, bCheckDics=1 '\001')
+    at /nld/suse-opt/OpenOffice/src680-m145/linguistic/source/spelldsp.cxx:552
+#12 0x45878737 in SpellCheckerDispatcher::isValid (this=0x8c43d00, rWord=@0xbfe268b8, nLanguage=1033, rProperties=@0xbfe268b4)
+    at /nld/suse-opt/OpenOffice/src680-m145/linguistic/source/spelldsp.cxx:357
+#13 0x44e6aeb1 in SpellDummy_Impl::isValid () from /nld/suse-opt/OOInstall/program/./libsvx680li.so
+#14 0x446e12fd in SwTxtFrm::_AutoSpell () from ./libsw680li.so
+#15 0x4464b4af in SwLayIdle::_FormatSpelling () from ./libsw680li.so
+#16 0x4464b65a in SwLayIdle::FormatSpelling () from ./libsw680li.so
--- openoffice.org-2.4.1.orig/ooo-build/doc/mono-gc.diff
+++ openoffice.org-2.4.1/ooo-build/doc/mono-gc.diff
@@ -0,0 +1,108 @@
+This libgc patch helped isolate the mono problem
+
+
+Index: libgc/mark.c
+===================================================================
+--- libgc/mark.c	(revision 45372)
++++ libgc/mark.c	(working copy)
+@@ -636,6 +666,9 @@
+ # endif
+     current_p = mark_stack_top -> mse_start;
+     descr = mark_stack_top -> mse_descr;
++    GC_printf2("process ptr %p: slot %d\n", current_p,
++	       (mark_stack_top - mark_stack));
++
+   retry:
+     /* current_p and descr describe the current object.		*/
+     /* *mark_stack_top is vacant.				*/
+@@ -647,6 +680,8 @@
+       
+       switch(tag) {
+         case GC_DS_LENGTH:
++	  GC_printf1(" DS_LENGTH: 0x%x\n", descr);
++
+           /* Large length.					        */
+           /* Process part of the range to avoid pushing too much on the	*/
+           /* stack.							*/
+@@ -676,6 +711,7 @@
+           limit = (word *)((char *)limit + sizeof(word) - ALIGNMENT);
+           break;
+         case GC_DS_BITMAP:
++	  GC_printf1(" DS_BITMAP: 0x%x\n", descr);
+           mark_stack_top--;
+           descr &= ~GC_DS_TAGS;
+           credit -= WORDS_TO_BYTES(WORDSZ/2); /* guess */
+@@ -694,6 +730,7 @@
+           }
+           continue;
+         case GC_DS_PROC:
++	  GC_printf1(" DS_PROC: 0x%x\n", descr);
+           mark_stack_top--;
+           credit -= GC_PROC_BYTES;
+           mark_stack_top =
+@@ -702,6 +739,7 @@
+               	    mark_stack_limit, ENV(descr));
+           continue;
+         case GC_DS_PER_OBJECT:
++	  GC_printf1(" DS_PER_OBJECT: 0x%x\n", descr);
+ 	  if ((signed_word)descr >= 0) {
+ 	    /* Descriptor is in the object.	*/
+             descr = *(word *)((ptr_t)current_p + descr - GC_DS_PER_OBJECT);
+@@ -731,9 +769,20 @@
+ 	      mark_stack_top--;
+ 	      continue;
+ 	  }
++	  /* mono specific amazingly hackish hack */
++	  {
++		  void *MonoClass = *(void **)(*(void **)current_p);
++		  if (MonoClass) {
++			  char *name = *(void **)((unsigned char *)MonoClass + 0x34);
++			  GC_printf6("  Object of type '%s' vtable %p class %p currentp %p has size %d slot %d on stack\n",
++				     name, *(void **)current_p, MonoClass, current_p, descr, (mark_stack_top - mark_stack));
++		  }
++	  }
++
+           goto retry;
+       }
+     } else /* Small object with length descriptor */ {
++      GC_printf1(" DS_SMALL_PER_OBJECT: 0x%x\n", descr);
+       mark_stack_top--;
+       limit = (word *)(((ptr_t)current_p) + (word)descr);
+     }
+Index: libgc/include/private/gc_priv.h
+===================================================================
+--- libgc/include/private/gc_priv.h	(revision 45372)
++++ libgc/include/private/gc_priv.h	(working copy)
+@@ -14,7 +14,9 @@
+  * provided the above notices are retained, and a notice that the code was
+  * modified is included with the above copyright notice.
+  */
+ 
++#define GC_ASSERTIONS 
++
+ # ifndef GC_PRIVATE_H
+ # define GC_PRIVATE_H
+ 
+@@ -171,7 +172,8 @@
+ 		    /* whether or not the block was found to be empty      */
+ 		    /* during the reclaim phase.  Typically generates       */
+ 		    /* about one screenful per garbage collection.         */
+-#undef PRINTBLOCKS
++#define PRINTBLOCKS
++#undef SILENT
+ 
+ #ifdef SILENT
+ #  ifdef PRINTSTATS
+Index: libgc/include/private/pthread_support.h
+===================================================================
+--- libgc/include/private/pthread_support.h	(revision 45372)
++++ libgc/include/private/pthread_support.h	(working copy)
+@@ -1,6 +1,8 @@
+ #ifndef GC_PTHREAD_SUPPORT_H
+ #define GC_PTHREAD_SUPPORT_H
+ 
++#define DEBUG_THREADS 1
++
+ # include "private/gc_priv.h"
+ 
+ # if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
--- openoffice.org-2.4.1.orig/ooo-build/doc/layout-overview.txt
+++ openoffice.org-2.4.1/ooo-build/doc/layout-overview.txt
@@ -0,0 +1,61 @@
+Thoughts on adding Layout to VCL with minimal changes.
+	- Michael Meeks <michael@ximian.com>
+
+* Why ?
+
+	Adding more advanced, containment based widget layout has the
+following nice properties:
+
+	+ vital for cross-platform theming - necessarily different
+	  platforms have different widget sizes & it is not feasible
+	  to have a per-platform, per-language layout cost.
+
+	+ current per-language layout does not happen, resulting in
+	  an increasing level of unfeasible ugliness.
+
+	+ an automatic layout, can look identical to a manual layout
+	  at the size / locale it's designed for - resulting in no
+	  loss of visual 'quality'. It was a fool who said that manual
+	  layout is always better - in the degenerate case it's just
+	  as good; for re-sizing it's always better.
+
+	+ current dialogs are clunky and ugly; especially with a
+	  different font size; cf. horrific hacks such as
+	  vcl/source/window/window.cxx:395 /Force all fonts/
+
+* Misc. requirements:
+
+	+ 100% backwards compatibility
+		+ the existing non-layout scheme must continue to
+		  function - and is as discussed a degenerate case
+		  of layout anyway.
+	+ no perceptible performance impact
+	+ minimaly invasive code changes
+
+* Ramblings:
+
+	While many complex layout schemes are possible; the gtk+
+scheme - is perhaps a good balance of simplicity and
+flexibility. While eg. Java's Layouts provide minimum, and preferred
+sizes for widgets - gtk+'s scheme is based on a hierarchy of
+containers which invoke either:
+
+	Size RequestSize(); or AllocateSize( Size );
+
+	Since with the existing positioning scheme, we already have an
+method for allocating sizes, adding gtk+ style layout would entail
+adding a single extra virtual method to 'Window', and a set of
+implementations of 'RequestSize'. Many of these may simply map to the
+existing disparate CalcMinimumSize methods.
+
+	While gtk+'s layout containers are inherited from Widget -
+there is no necessity for this in vcl; indeed the whole layout scheme
+can be layered inside new private layout classes. These could be
+hooked into the existing positional layout logic in
+Window::ImplLoadRes; and extensions made to the resource file format
+to allow selected windows to have layout added.
+
+	Clearly many dialogs (especially re-sizable ones) currently
+rely on the exact positioning of widgets; thus converting dialogs to
+the layout scheme has to involve incremental testing / code-reading to
+ensure that each will continue to function well.
--- openoffice.org-2.4.1.orig/ooo-build/doc/quickstart.txt
+++ openoffice.org-2.4.1/ooo-build/doc/quickstart.txt
@@ -0,0 +1,212 @@
+
+	We do quick-start in ooo-wrapper.in by handling the extra
+--session-quickstart argument.
+
+	However; the OO.o internal quickstart code is a mess:
+
+* From the desktop end
+
+	* framework/source/services/desktop.cxx: it seems that
+xQuickLauncher isn't => always quitting. Added via
+'addTerminateListener'; two listeners:
+
+** QuickLauncher: 'desktop.QuickstartWrapper'.
+
+	The shutdown icon sits in the systray and allows the user to
+keep the office instance running for quicker restart. Implemented in:
+sfx2/source/appl/shutdownicon.cxx - but that has to be a throw-back,
+and doesn't appear to work.
+
+
+** PipeTerminator: 'OfficeIPCThreadController'
+
+	* desktop/source/app/officeipcthread.cxx: here is where the
+action lurks; seems to have no discrimination between a session
+shutdown vs. a user terminate. cf.
+
+
+* Session management:
+
+	* vcl/unx/source/app/sm.cxx (ShutDownHdl): calls 'ShutDown' on
+GetSalData()->pFirstFrame_ - if we have one.
+
+
+* From the 'quickstart' angle
+
+	+ -headless + -invisible seems to work modulo 'exit', we could
+do with a hacked version of the 'shutdown icon' thing that works with
+session management.
+
+	+ ARGH - so we have to hack the OfficeIPCFooBaa vetoing baz,
+we will provide a few really nasty hacks - to make life worthwhile. We
+need to connect (somehow) to the SM death signal, and in that case emit
+something nasty like shutdownicon.cxx (terminateDesktop).
+
+	+ Ugly ongoing bug - multi-display stuff is uber-broken.
+
+	+ Can we create an 'immortal' first toplevel frame, that
+responds to 'Shutdown' from the SM; and disobey's Exit ?
+
+'Exit' ->
+	sfx2/source/appl/appserv.cxx: xDesktop->terminate.
+
+'Sm Quit' ->
+	SalFrameData::Shutdown ->
+		{ return pProc_( pInst_, pFrame_, SALEVENT_SHUTDOWN, 0 ); }
+
+	SALEVENT_CLOSE vs. SALEVENT_SHUTDOWN ...
+	-> vcl/source/window/winproc.cxx (ImplWindowFrameProc)
+		-> GetpApp->QueryExit -> 
+			-> Does a 'Close' on the app
+		-> Application::Quit
+			Application::PostUserEvent(
+				STATIC_LINK( NULL, ImplSVAppData, ImplQuitMsg ) );
+			sets:
+				ImplGetSVData()->maAppData.mbAppQuit = TRUE;
+			-> svapp.cxx: Application::Execute terminates
+
+--
+
+So the current solution that we have is that ShutdownIcon adds itself to the
+Desktop::addTerminateListener and then when the application is about to quit,
+all the TerminateListeners are queried whether or not it is okay to quit. When
+the ShutdownIcon decides to stay back in the background, it sets a veto
+variable to true, and when queried by Desktop on quit, vetoes the termination
+and stays back in the background. Effectively, the quickstarter is up and
+running with:
+
+--- desktop/source/app/cmdlineargs.cxx	2005-09-08 22:35:40.000000000 +0530
++++ desktop/source/app/cmdlineargs.cxx	2005-10-17 16:38:06.000000000 +0530
+@@ -350,9 +350,7 @@
+ 	}
+ 	else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-quickstart" )) == sal_True )
+ 	{
+-#ifdef WNT
+ 		SetBoolParam_Impl( CMD_BOOLPARAM_QUICKSTART, sal_True );
+-#endif
+ 		return sal_True;
+ 	}
+ 	else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-terminate_after_init" )) == sal_True )
+--- sfx2/source/appl/shutdownicon.cxx	2005-09-07 23:18:37.000000000 +0530
++++ sfx2/source/appl/shutdownicon.cxx	2005-10-17 16:39:46.000000000 +0530
+@@ -547,6 +547,10 @@
+ 				ShutdownIcon::pShutdownIcon = this;
+ #ifdef WNT
+ 				initSystray();
++#else
++				// disable shutdown
++				getInstance()->SetVeto( true );
++				getInstance()->addTerminateListener();
+ #endif
+ 			}
+ 			catch(const ::com::sun::star::lang::IllegalArgumentException&)
+
+
+
+
+*** Raul's altered files ***
+
++ eggtray/ - new toplevel etc.
++ scp2/ - install foo ...
++ sfx2/source/appl/
+	+ makefile.mk
+	+ shutdownicon.hxx
+	+ shutdowniconw32.cxx - floated common stuff to .hxx
+	+ shutdownicon.cxx - tweaked
+	+ shutdowniconunx.cxx
++ vcl/
+	+ install prex.h / postx.h ... [ urgh ... ]
+	+ also svids.hrc ...
+
+** How does this relate to sysui/source/win32/QuickStart/ ?
+    + this code creates 'quickstart.exe'
+    + that code itself forks 'soffice.exe -quickstart'
+	+ urgh ... [ hmm ... ]
+
+
+office.quickstart hits:
+ RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) createInstance com.sun.star.office.Quickstart" ); framework/desktop/source/app/app.cxx, line 1800
+DEFINE_CONST_UNICODE( "com.sun.star.office.Quickstart" ), aSeq ), framework/desktop/source/app/app.cxx, line 1809
+DEFINE_CONST_UNICODE( "com.sun.star.office.Quickstart" )), framework/desktop/source/app/app.cxx, line 2338
+OUString::createFromAscii( "com.sun.star.office.Quickstart" )),UNO_QUERY ); framework/desktop/source/migration/wizard.cxx, line 534
+OUString::createFromAscii( "com.sun.star.office.Quickstart" )),UNO_QUERY ); framework/framework/source/services/license.cxx, line 400
+msgbox (&quot;Office must be restarted before your changes will take effect.&quot;+ chr$(10)+&quot;Also close the Office QuickStarter (Windows and Linux)&quot;, 48, &quot;Assign Script (Java) To Menu&quot; ) framework/scripting/workben/bindings/ScriptBinding.xba, line 804
+xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.office.Quickstart") ); framework/sfx2/source/appl/appuno.cxx, line 2175
+SFX_IMPL_XSERVICEINFO( ShutdownIcon, "com.sun.star.office.Quickstart", "com.sun.star.comp.desktop.QuickstartWrapper" ) \ framework/sfx2/source/appl/shutdownicon.cxx, line 138
+OUString::createFromAscii("com.sun.star.office.Quickstart")), UNO_QUERY); graphics/svx/source/dialog/optgdlg.cxx, line 1400
+RegistryItem gid_Regitem_Software_OpenOffice_Quickstarterinstalled installation/scp2/source/quickstart/registryitem_quickstart.scp, line 38
+setup2 source\ui\pages\preadygo.src 0 fixedtext RESID_PAGE_PAGEREADYGO FT_PATCH3 190 pt-BR Antes de esta correÃ§Ã£o para o StarOffice 6.0 ser instalada, cÃ³pias de todos os arquivos a serem alterados serÃ£o salvas do diretÃ³rio "Backup_PP1".\n\nNota: Para remover esta correÃ§Ã£o futuramente, vocÃª deve copiar o conteÃºdo do diretÃ³rio "Backup_PP1" de volta para o diretÃ³rio de instalaÃ§Ã£o do StarOffice. Certifique-se de que o StarOffice e o StarOffice QuickStarter nÃ£o estejam sendo executados.\n\nClique em "%1" para iniciar a instalaÃ§Ã£o da correÃ§Ã£o. 20040507 14:24:47 installation/setup2/source/ui/pages/localize.sdf, line 9345
+setup2 source\ui\pages\preadygo.src 0 fixedtext RESID_PAGE_PAGEREADYGO FT_PATCH3 190 sk SkÃ´r ako bude nainÅ¡talovanÃ¡ tÃ¡to zÃ¡plata pre StarOffice 6.0, skopÃ­rujÃº sa vÅ¡etky sÃºbory ktorÃ© budÃº zmenenÃ© poÄas inÅ¡talÃ¡cie zÃ¡platy do adresÃ¡ra 'Backup_PP1'.\n\nPoznÃ¡mka: Na odstrÃ¡nenie tejto zÃ¡platy musÃ­te manuÃ¡lne prekopÃ­rovaÅ¥ obsah adresÃ¡ra 'Backup_PP1' do adresÃ¡ra kde mÃ¡te nainÅ¡talovanÃ½ StarOffice. PoÄas tejto odinÅ¡talaÄnej procedÃºry nesmÃº byÅ¥ spustenÃ© programy StarOffice a StarOffice Quickstarter. StlaÄte '%1' pre zaÄatie inÅ¡talÃ¡cie zÃ¡platy. 20040507 14:24:47 installation/setup2/source/ui/pages/localize.sdf, line 9347
+
+
+* Split sfx2/source/appl/appuno.cxx
+    + bin quickstart wrapper service.
+
+* sfx2/source/appl/appcfg.cxx:
+    + requires an UNO interface
+	+ launch it - check foo ...
+    + do we have an existing interface ?
+
+    + It's really a 'PropertyBag' interface
+	+ 'IsInstalled' ?
+	+ 'AutoStart' - yes/no...
+
+
+* Design:
+    + requires turn on / off ability
+    + do-we-have-this-functionality feature ?
+	+ activation fails to signal that ?
+	+ 'IsInstalled' ?
+    + IsInstalled
+	- always true for UNX ...
+	    #ifdef ENABLE_GTK
+	    return true
+	    #endif
+	+ different for win32 ...
+
+    + AutoStart - yes/no (?)
+	+ whether we should start it when we run OO.o ?
+	+ ie. is the .desktop file installed (win32)
+
+    + Why does app always activate the service ?
+	+ 'createinstancewitharguments'
+	    + arg is a bool - 'isquickstart'
+
+    + How to register the service ?
+	+ conditional build of the component ?
+	+ ...foo...
+
+    + OR - a sub-component ?
+	+ a simple shlib that we load ...
+	+ virtualise all the funky bits :-)
+		+ get tml to test the Win32 piece ...
+
+    + win32:
+        + the ::initSystray piece ...
+	  ::deInitSystray ...
+	  ::isQuickStarterInstalled()
+		+ push up to shutdownicon.cxx
+	  ::set/getAutoStart ...
+		+ push up to shutdownicon.cxx
+
+	+ do we in fact neeed a sub-class ?
+	    + leave the same ? init/de-init foo ...
+	    + just load a shlib for gtk+ ?
+
+	+ bModalMode - make it a static member
+	  of the class (just ignored by gtk+) ...
+
++ Dialog in svx/source/dialog/optmemory.src
+
+
+Issues:
+    + [ string is butt ugly
+	'Load OO.o on system startup' ]
+    + fix the icon load foo - we should use svx surely ?
+
+    + following bugs:
+	+ use (new) xdg autostart spec.
+	+ fix crash-on-'exit quickstarter'
+
+    + don't use gtk+ stock item for 'Open'
+	+ use the builtin one ...
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/recent-files.txt
+++ openoffice.org-2.4.1/ooo-build/doc/recent-files.txt
@@ -0,0 +1,14 @@
+* Recent files get saved in user/config/registry/instance/org/openoffice/Office/Common.xml
+  Look for PickList there.
+
+* This gets handled here:
+	svtools/inc/historyoptions.hxx
+	svtools/source/config/historyoptions.cxx
+  It defines class SvtHistoryOptions, which manages several lists; the
+  recent files are identified the "ePICKLIST" history type.
+
+* SvtHistoryOptions gets called from wherever "ePICKLIST" appears:
+	framework/source/classes/menumanager.cxx
+	sfx2/source/appl/appinit.cxx
+	sfx2/source/appl/sfxpicklist.cxx <-- especially interesting, why doesn't everything use it?
+	sd/source/ui/dlg/dlgass.cxx
--- openoffice.org-2.4.1.orig/ooo-build/doc/im.txt
+++ openoffice.org-2.4.1/ooo-build/doc/im.txt
@@ -0,0 +1,359 @@
+* More bug chasing:						-*- coding: utf-8 -*-
+
+how-to repeat:
+
+suse:     rug in scim scim-uim scim-tables-ja kinput2
+ubuntu:   apt-get install scim scim-uim scim-tables-ja scim-gtk2-immodule \
+	  kinput2-canna uim-xim uim-gtk2.0 uim-xim anthy
+
+xim+scim:
+
+Set GTK_IM_MODULE(S?) to override gtk's default input method (i.e. the
+last entry in /etc/gtk-2.0/gtk.immodules). Set OOO_FORCE_DESKTOP=none
+to compare with the generic X vclplug which ignores gtk's default
+anyway.
+
+suse:
+XIM_PROGRAM=scim LANG=ja_JP.UTF-8 GTK_IM_MODULES=xim XMODIFIERS=@uim=anthy scim -d
+XIM_PROGRAM=scim LANG=ja_JP.UTF-8 GTK_IM_MODULES=xim XMODIFIERS=@uim=anthy ./soffice.bin -writer
+
+ubuntu:
+XIM_PROGRAM=scim LANG=ja_JP.UTF-8 GTK_IM_MODULE=xim XMODIFIERS=@im=SCIM scim -d
+XIM_PROGRAM=scim LANG=ja_JP.UTF-8 GTK_IM_MODULE=xim XMODIFIERS=@im=SCIM ./soffice.bin -writer
+
+xim+kinput2:
+
+suse:
+LANG=ja_JP.UTF-8 GTK_IM_MODULES=xim XMODIFIERS=@im=kinput2 ./soffice.bin -writer
+
+ubuntu:
+XIM_PROGRAM=canna LANG=ja_JP.UTF-8 GTK_IM_MODULE=xim XMODIFIERS=@im=kinput2 kinput2 -canna
+XIM_PROGRAM=canna LANG=ja_JP.UTF-8 GTK_IM_MODULE=xim XMODIFIERS=@im=kinput2 ./soffice.bin -writer
+
+xim+uim:
+
+uim-xim&
+LANG=ja_JP.UTF-8 GTK_IM_MODULE=xim XMODIFIERS=@im=uim ./soffice.bin -writer
+
+gtk+scim:
+
+LANG=ja_JP.UTF-8 scim -d
+LANG=ja_JP.UTF-8 GTK_IM_MODULE=scrim ./soffice.bin -writer
+
+gtk+uim:
+
+LANG=ja_JP.UTF-8 GTK_IM_MODULE=uim ./soffice.bin -writer
+
+
+---------------- switching focus bugs ------------------------
+
++ Switch from OO.o <-> OO.o
+    + emits EndExtTextInput call [ problematic ]
+        + http://bugzilla.suse.de/show_bug.cgi?id=49105
+    + OO.o synthesises this call (somehow)
+	+ winproc.cxx [ synthesises ExtEndTextInput on mouse click ]
+	  + [ this is the cause of the trouble ]
+    + Works on the understanding:
+	+ we have to end this pre-edit: now !
+	+ unfortunately the IM API is not like that [!]
+	    + _it_ controls when the pre-edit ends ...
+    + ARGH [!]
+
+** Problem **
+   + gtk_im_context_reset - non-functional except with 'xim'
+   + scim: broken.
+	+ does do something [ but not end pre-edit ;-]
+	+ belt & braces - synthesis hard end to input ...
+
+** Problem **
+   + opening menus eg. - Alt-F
+
+---------------- ending of IM predit bugs ------------------------
+
+RH bugs:
+	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134022
+
+Novell person:
+	http://bugzilla.ximian.com/show_bug.cgi?id=68885
+
+    + The IM outputs events like this:
+
+    [ start pre-edit ]
+:signalImPreeditChanged ''
+:signalImPreeditChanged 'f'
+:signalImPreeditChanged 'f'
+:signalImPreeditChanged 'f'
+:signalImPreeditChanged 'fo'
+:signalImPreeditChanged 'fo'
+:signalImPreeditChanged 'fo'
+:signalImPreeditChanged 'foo'
+:signalImPreeditChanged 'foo'
+UpdateIMSpotLocation: SetCursorLocation
+    [ end pre-edit]
+:signalImPreeditChanged ''
+
+	+ ie. we never get a 'pre-edit end' signal,
+	    + however - we do get an 'empty'
+	      signalImPreeditChanged
+ 
+
+    * serious bug:
+	+ start pre-edit; type some chars
+	    + end pre-edit
+	+ move somewhere else
+	+ re-start pre-edit
+	    + no text / pre-edit shows up [!?] 
+
+    Dan's patch:
+	+ http://www.openoffice.org/nonav/issues/showattachment.cgi/18809/i18n-gtk-im-keyrelease-fix.diff
+	+ backspace to line begginning ...
+
+    * Moving a pre-edit around:
+	+ C-space 'nippon' C-space
+	  <move elsewhere>
+	+ C-space
+	+ should insert the pre-edit into the text there.
+	    * pre-edits should be over-written [selection?] when move/re-edit (?)
+
+    * pre-edits should complete/insert only when selected 
+	+ should stay underlined until space/enter in pre-edit mode (!?)
+
+    + Check vs. non-GTK foo ...
+
+http://www.openoffice.org/issues/show_bug.cgi?id=34880
+Hm, as far as I can tell this breaks word wise editing, assuming you have
+several words in preedit buffer.
+Situation:
+type several japanes words but don't commit the preedit buffer (common use). Now
+with Ctrl + Cursor left/right you can travel wordwise in preedit.
+But with the patch the buffer gets commited as soon as you hit Ctrl and is
+pasted again when hitting cursor left or right.
+I don't think we should commit this one.
+Tested with iiimf 12.1 (fedora core 2 latest developer builds)
+
+       + Or:
+       http://bugzilla.suse.de/show_bug.cgi?id=48120
+
+Some of Anthy keybind doesn't work correctly on OOo with gnome session.  
+The installed Anthy is anthy-5714-1.2.  
+OpenOffice is  
+OpenOffice_org-1.1.3-16 
+OpenOffice_org-gnome-1.1.3-16 
+OpenOffice_org-ja-1.1.3-16 
+OpenOffice_org-kde-1.1.3-16 
+ 
+ 
+Anthy keybind is introduced at here. 
+http://anthy.sourceforge.jp/cgi-bin/hikija/hiki.cgi?%A5%AD%A1%BC%A5%D0%A5%A4%A5%F3%A5%C9#l0
+
+[Is this the corresponding translation?]
+http://anthy.sourceforge.jp/cgi-bin/hikien/hiki.cgi?uim-anthy
+ 
+e.g. Keybind "shift + ←" and "Ctrl + h" is defined with Anthy by default. 
+However, OOo with gnome session, this keybind doesn't work fine. 
+in contrast this keybind works fine with OOo on kde session.
+
+* How to reproduce:
+
+  
+1, Start OOo with gnome session and create new document. 
+2, Push "Shift+space", Japanese input mode activates. 
+3, Input Japanese letters something, e.g. "aiueo"(Hiragana be displayed). 
+   then push space key. Japanese letters changes to candidate kanji. 
+4, At this stage, if push keybind "Shift + ←", it provides function that make 
+   paragraphs short. 
+   but this keybind function ignored and unwiehd strings committed. 
+   (Strings looks committed just after push Shift key without "←",) 
+5, At step4, in case push "Ctrl + h" also doesn't work. This Anthy  
+   keybinded function ignored and strings be committed.   
+   (Strings looks committed just after Ctrl key without "h",) 
+ 
+  
+With gnome-terminal, keybind above works fine.
+
+
+
+* Chasing SuSE bug #46365
+
+* Problem 1.4:
+	+ winproc.xx (IpmlHandleExtTextInput):
+		+ ImplHandleEndExtTextInput ...
+
+
+	+ EndExtTextInput
+	    + not doing it's job ?
+	+ On non-IM keypress
+	    + do a reset ?
+	+ perhaps m_bWasPreedit problem (?)
+	+ other events [ key move / delete etc. in-between bits ... ]
+
+
+Method to reproduce problem 1.4:
+
+GTK_IM_MODULE=xim XMODIFIERS=@im=SCIM oowriter
+
+Shift+Space to switch on scim. Choose UIM-anthy input method.
+Type 
+
+    a a a RETURN RETURN
+    a a a RETURN RETURN
+
+You should now see:
+
+あああ
+あああ
+
+Select all of this with the mouse. Press Delete. All text is deleted.
+The input method is still switched on!
+Type 
+
+   a a a 
+
+again. 
+
+You cannot see any input.
+
+Switch off input method with Shift+Space.
+
+Type 
+
+  a b c
+
+Latin letters are inserted.
+
+Switch on input method with Shift+Space. Now the 3 Japanese 'a' 
+which were already typed before but didn't become visible are inserted.
+The buffer now looks like:
+
+abcあああ
+
+
+So far:
+	+ it looks like the IM setup / teardown / associate & de-associate
+	  are not happening correctly - ie. on focus in / out / realise /
+	  unrealise or whatever.
+	    GtkEntry::realise
+		+ gtk_im_context_set_client_window (entry->im_context, entry->text_area);
+	    GtkEntry::unrealise
+		+ gtk_im_context_set_client_window (entry->im_context, NULL);
+	+ Different in OO.o ...
+
+	+ OO.o has no:
+	      gtk_im_context_set_cursor_location (entry->im_context, &area);
+
+	      There is SalI18N_InputContext::UpdateSpotLocation which does what
+	      gtk_im_context_set_cursor_location does for xim.
+	      
+	+ Press <shift>-<space> - nothing happens
+		+ Alt tab twice - suddenly it works
+			+ some event emission / association not
+			  happening correctly
+		+ [ FocusIn ? before SetInputContext ? ]
+	  
+
+<maiku> There are different input styles:
+<michael> ok;
+<michael> so - we don't even toggle the keybinding thing
+<maiku> 1) Overthespot: you input the あ in an extra window, after RETURN it is pasted into the application. The extra window is sometimes at weird positons.
+<michael> ok;
+<maiku> 2) OnTheSpot: you input the あ directly into the application. 
+<michael> so - you can configure those in the settings somewhere ?
+<maiku> In the scim setup menu.
+<michael> so - to get this right; 'OnTheSpot' would insert some glyphs into the app, and then change them as you type more, and you would see no pop-up menu ?
+<michael> s/pop-up menu/pop-up editing window/
+<maiku> With OnTheSpot you see the scim panel, but no extra window as you type characters.
+<maiku> The characters are directly inserted into the application and changed as you type more.
+<michael> and does it wait until the character is complete before inserting it ?
+<maiku> No, every keystroke is inserted immediately. 
+<michael> so - the API provides a way to go back and remove / update previous characters right ?
+<maiku> But if it is not complete yet, it is marked somehow. Maybe underlined or a different color.
+<michael> this is extremely helpful :-)
+<michael> thanks so much.
+
+<maiku> I.e. you input "nihonn"
+<maiku> That is immediately converted to にほん
+<maiku> You don't press return then but Space instead.
+<maiku> Space means "convert to Chinese characters". If you press Space you get 二本 which means "Japan"
+<maiku> If the first conversion is not right (usually phonetics -> Chinese characters is not a unique conversion) you press Space again.
+scim-gtk2-immodule-1.0.1-1.1
+<maiku> Then you get another choice. If it still isn't right you keep pressing Space and get a selection box of all possibilities.
+
+<michael> how does that interaction work - does the app register itself with xim ? or is it stolen at the Xserver level ?
+* michael is still on GTK_IM_MODULE=scim
+<maiku> The app calls some Xlib functions like XOpenIM().
+
+** The problem:
+
+<maiku> 1.4 is difficult to reproduce. Maybe I should better write instructions how to reproduce it 100% in Bugzilla, you know now how it works.
+<maiku> Now the worse problem with GTK_IM_MODULE=scim.
+<maiku> If you have 
+<maiku> GTK_IM_MODULE=scim XMODIFIERS=@im=SCIM OOo
+<maiku> you couldn't open the input method with Shift+Space at all.
+<maiku> That was also in Takashi's bug report.
+<maiku> Start OOo with 
+<maiku> GTK_IM_MODULE=scim XMODIFIERS=@im=SCIM OOo
+<maiku> verify that Shift+Space does nothing.
+<maiku> verify that Shift+Space does nothing in oowriter.
+<maiku> Now open a spread sheet from the file menu. In the spread sheet you can now activate the input in the entry widget above the table.
+<maiku> Close the spread sheet again.
+<maiku> Now you can activate the input in oowriter!!!
+<maiku> Trying this once in the spread sheet made it work in oowriter.
+<maiku> Surprising. 
+<maiku> Apparently only one window at a time can have the input activated.
+<maiku> I cannot reproduce this problem on my x86_64. On my x86_64, the
+<maiku> behavior for GTK_IM_MODULE=scim is the same as for GTK_IM_MODULE=xim.
+<maiku> In both cases, XIM is apparently used on x86_64.
+<maiku> GTK_IM_MODULE=scim works fine on x86_64 with 64 bit applications like gedit.
+<maiku> But OOo is a 32 bit application. I guess this is the reason why GTK_IM_MODULE=scim doesn't work or OOo on x86_64.
+<maiku> Probably 32bit plugins for the input modules would be needed and they are not there.
+<michael> :-)
+<michael> yes; I can well believe that is the case,
+<maiku> Removing OpenOffice_org-gnome solves problems 1.3 and 1.4.
+
+** What is an IM module ?
+
+gtk+:
+    gtk modules better than XIM modules:
+
+    + GTK_IM_MODULE=scim
+	+ brokenness all over
+    + GTK_IM_MODULE=xim ( set XMODIFIERS=@im=scim )
+    + GTK_IM_MODULE=uim
+
+XIM
+    + worse but backwards compatible
+    + scim
+	+ OnTheSpot - dodgy / broken
+	+ OverTheSpot - works fine
+    + kinput2
+	+ works perfectly
+
+SCIM - 
+    + works with gtk+ and XIM
+
+UIM - Universal Input Method
+    + works with gtk+ and XIM
+
+    "In most GTK+ 2 programs you'll be able to select UIM by
+     right-clicking on a text input field without using any special
+     setup. However, if you'd like to use it in the old X Input Method
+     interface, you should install SCIM in addition to UIM. If your
+     only aim is to use Japanese input methods, you could also use the
+     helper application uim-xim."
+
+    "UIM is activated by pressing shift + space. For more
+     information, have a look at UIM's home page and wiki."
+
+    export GTK_IM_MODULE=uim
+    export XMODIFIERS=@im=uim
+    exec uim-xim&
+
+    ** Native OO.o XIM - use shift-space not ctrl-space **
+
+** Links:
+    Linux i18n howto: http://home.no.net/david/i18n.php
+    UIM: http://uim.freedesktop.org/
+
+
+** TODO:
+   what are IIIMF / UIM ?
--- openoffice.org-2.4.1.orig/ooo-build/doc/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/doc/Makefile.am
@@ -0,0 +1,2 @@
+EXTRA_DIST=${wildcard *.txt *.sh *.sample} README
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/cws-93.txt
+++ openoffice.org-2.4.1/ooo-build/doc/cws-93.txt
@@ -0,0 +1,330 @@
+Summary of TODO:
+
+** High priority **
+
+m80:
+!!!     hsqldb2					6050 [ binary hsqldb foo ]
+	    + data-loss from database
+	    + binary hsqldb-1.8.0 version required
+!!!     dba23					8426 
+	    + misc. crash & other dba fixes
+!!!     impress31				2499
+	    + crash/ergonomic fixes
+m81:
+!!!     dbwizard3				17442 [ huge ]
+	    + java/gtk+ foo, critical wizards fixes
+!!!     swqbugfixes14				2648
+	    + critical spin-on-save fix + others
+!!!     swqcore05				1471
+	    + redo crash & .sxw interop fix
+!!!     swqcore06				541
+	    + crash & other fixes
+m82:
+!!!     impress34				2692
+	    + several crashers
+approved by QA:  
+!!!	impress35				2356
+	    + data loss / crash fixes
+ready for QA: 
+!!! 	presfixes01				44890
+	    + already being back-ported
+!!! 	vcl36					2677
+	    + lots of misc. fixes, XIM etc.
+
+
+** Medium priority **
+
+m80:
+!!      impress33				2793
+	    + crash/misc. fixes
+!!      os51					2074
+	    + spellcheck fix, UI layout fixes
+!!      perform01				2285
+	    + better startup speed
+m81:
+!!      sj15					2214
+	    + PPT/Impress interop fixes
+	    + [minor ? gallery file format
+	       binary file changes - ignorable ? ]
+m82:
+!!      mav16					1734
+	    + wpd2sxw problem workaround (type detect)
+!!      tbe19					386
+	    + basic fixes / macro data loss
+	    + tooltip oddnes (?)
+Approved by QA:
+!!	noprinter				716
+	    + SfxPrinter on demand,
+	      critical startup speed fix
+!! 	scriptingf1				170000 [binary]
+	    + crash fix / scripting bits
+	    + 2x binary .jar files
+Ready for QA:
+!! 	os49					3642
+	    + crash, mail-merge, ui fixes
+!! 	eforms4					11396 [ huge ]
+	    + xforms fixes; 4x crash bugs
+!? 	lobeta2					2658
+	    + startup & migration fixes
+!! 	swqcore07				1577
+	    + crash/freeze fixes
+!! 	oasisbf5				1752
+	    + file format changes (OASIS !?)
+!! 	sch07					268
+	    + chart/crash fix & other fixes
+
+
+-----------------------------------------------------------------------
+
+[2005-03-11]
+
+m85
+	accanonical
+	ause023
+	aw028
+	calc30
+	calcer
+	configure6
+	dr36
+	hc680pb2 
+	iha07 
+	oasisbf5 
+	os49 
+	    + integrated already
+	swqbugfixes15 
+	swqcore07 
+	    + attempted already; applies well only after sj15
+		and sj15 seems to have issues 
+	sysui05
+	toolkit01. 
+
+m84
+!!	fwkpostbeta03					3831
+	    + help, assign macros in embedded doc
+	sch07
+	    + already merged
+!	wmicons						8777
+	    + title bar icon color depth
+
+	solarisgcc02
+	    +solaris gcc port - not of interest
+
+-----------------------------------------------------------------------
+[ As of 2005-03-08 ]
+
+m83
+!!      os52						2131
+	    + mail merge, hyper link, spread sheet fixes
+!?	epmopener					14
+	    + provide epm for OOo
+!       gcj2						403
+	    + update build with gcj
+!       mozooo
+	    + removes the need for pre-compiled 
+		mozilla tarballs
+!       qwizardsbf3					890
+	    + improve qulity of wizards
+!       scriptingf11					19632 
+	    + scripting framework fixes
+		[huge patch; several rhino/ files removed]
+!       removedrafts					36665 [huge patch]
+	    + cleanup the drafts module
+		 uno comp
+!       pj21						299
+	    + post beta build and minor fixes
+
+**already applied**
+
+        impress35					2363 
+	    + around 11 impress/draw fixes 
+        libwpdupgrade					5731
+	    + update libwpd to 0.8.0 
+        noprinter					716 
+	    + create sfx printer on demand
+
+**win specific and/or not of interest **
+        smoketest5				[not of interest]
+	    + windows smoketest
+        vq13					[not of interest]
+	    + win32 issues
+        sdkbugfix01					564	
+	    + sdk doc and example fixes
+        sdkcodemaker					1214
+	    + implements a code skeleton maker for
+
+**not integrated **
+	impress36 - still not integrated
+
+-----------------------------------------------------------------------
+
+[ As of 2005-03-02 ]
+
+m82
+        cmcfixes2
+	    + minor code cleans
+!!!     impress34
+	    + several crashers
+!!      mav16
+	    + wpd2sxw problem workaround (type detect)
+        nativefixer4
+	    + misc build/pkg fixes
+        sch06
+	    + minor bits
+        systempython2
+	    + uninteresting (?)
+!!      tbe19
+	    + basic fixes / macro data loss
+	    + tooltip oddnes (?)
+
+
+[ As of 2005-02-28 ]
+
+Also:
+!!	vcl37
+	    + split down into separate fixes
+
+ready for QA: 
+http://eis.services.openoffice.org/EIS2/servlet/cws.ShowCWSList?Mode=Statuses&Path=SRC680%2Fready+for+QA&Id=SRC680%2Fready+for+QA
+
+!!! 	presfixes01
+	    + already being back-ported
+!!! 	vcl36
+	    + lots of misc. fixes, XIM etc.
+!! 	os49
+	    + crash, mail-merge, ui fixes
+!! 	eforms4
+	    + xforms fixes; 4x crash bugs
+!? 	lobeta2
+	    + startup & migration fixes
+!! 	swqcore07
+	    + crash/freeze fixes
+!! 	oasisbf5
+	    + file format changes (OASIS !?)
+!! 	sch07
+	    + chart/crash fix & other fixes
+! 	swqbugfixes15
+	    + PDF export crash fix + others
+ 	mozooo
+	    + remove need for pre-compiled moz tarballs in OO.o [nice]
+ 	dmake43p01
+	    + misc. build fixes
+ 	calcer
+	    + minor calc fixes
+ 	accanonical
+	    + uninteresting
+ 	os52
+	    + crash, ui fixes etc.
+ 	hc680pb2
+	    + misc db form fixes
+ 	fwkpostbeta03
+	    + misc ui fixes etc.
+ 	evoab201
+	    + ready for QA: nice.
+ 	removedrafts
+	    + random IDL changes
+ 	uicleanup
+	    + image fixes
+ 	sdkbugfix01
+	    + pure sdk junk
+ 	pj21
+	    + misc fluff.
+ 	wmicons
+	    + duplicates internal work
+
+approved by QA:
+[ http://eis.services.openoffice.org/EIS2/servlet/cws.ShowCWSList?Mode=Statuses&Path=SRC680%2Fapproved+by+QA&Id=SRC680%2Fapproved+by+QA ]
+  
+!!!	impress35
+	    + data loss / crash fixes
+!!	noprinter
+	    + SfxPrinter on demand, critical startup fix
+!! 	scriptingf11
+	    + crash fix / scripting bits
+ 	qwizardsbf3
+	    + minor wizard fixes
+ 	epmopener
+	    + nasty embedded epm junk
+
+recently nominated:
+!	pbfinal01
+	    + obscure crash fix + string changes
+	tbe18
+	    + localised K/B shortcuts
+	i18n16
+	    + misc. i18n fixes
+
+m81:
+
+Child Workspaces integrated:
+!!!     dbwizard3
+	    + java/gtk+ foo, critical wizards fixes
+!!!     swqbugfixes14
+	    + critical spin-on-save fix + others
+!!!     swqcore05
+	    + redo crash & .sxw interop fix
+!!!     swqcore06
+	    + crash & other fixes
+!!      sj15
+	    + PPT/Impress interop fixes
+!       calc29
+	    + misc ~minor calc fixes
+        ause022
+	    + trivial build fixes
+        dr32
+	    + minor calc fixes, slightly risky.
+        fwk1
+	    + trivial ui changes
+        fwkpostbeta02
+	    + misc minor/uninteresting bugs, slightly risky
+        iha08, luic
+	    + small i18n string changes
+        moresystemstuff
+	    + irrelevant
+        mozab05
+	    + irrelevant
+        nsplugin5
+	    + small browser/template specific fix
+        pj19
+	    + irrelevant (dictionaries only)
+        pj20
+	    + cz. extras (?) - poke him
+        sb29
+	    + fix bridges we don't use.
+
+m80:
+
+Child Workspaces integrated:
+!!!     hsqldb2
+	    + data-loss from database
+!!!     dba23
+	    + misc. crash & other dba fixes
+!!!     impress31
+	    + crash/ergonomic fixes
+!!      impress33
+	    + crash/misc. fixes
+!!      os51
+	    + spellcheck fix, UI layout fixes
+!!      perform01
+	    + better startup speed
+!       pasf4ooo
+	    + portaudio bits (feature)
+!       aw026
+	    + misc. draw ergonomics
+        dr33
+	    + trivial calc fixes
+        dr35
+	    + trivial i18n string fix
+        extras17
+	    + gallery/oasis fix, opensymbol fix (urk)
+        hr11
+	    + visibility bits
+        icontool06
+	    + irrelevant icon fixage
+        sdk14
+	    + irrelevant pieces
+        slideshowgcc
+	    + gcc bug workaround
+        tablestrings
+	    + misc. string changes
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/gpc.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gpc.txt
@@ -0,0 +1,187 @@
+Requirements for new GPC replacement
+
+	+ Numericaly stable - the libart intersector hasn't crapped out yet - DONE
+	+ Handle self intersection - DONE
+	+ Handles full range of ops: XOR etc. - DONE
+	+ Of same order as gpc - DONE
+
+	+ Plug in API compatible replacement for gpc (optional) -
+	decided against this; IMO it is better to modify
+	vcl/source/gdi/poly2.cxx directly than marshal the polygons
+	twice (PolyPolygon -> GPC -> libart) and reverse.
+
+	+ License compatible with StarOffice so we can fold it
+	  into CVS and have a single source base (optional) - libart
+	  is LGPL.  Is this good enough?
+
+GPC - licensing problems,
+    - 'Free for non-commercial use' [ is it [L]GPL compatible ? ]
+
+gpc:
+	only used in vcl/source/gdi/poly2.cxx 
+	cf. vcl/inc/poly*
+
+Found a GPL-ed, Java implementation of the Bentley-Ottman line
+intersection algorithm: http://www.solyanik.com/sergey/sweep11/
+Along with the Hobby paper on how to tweak that particular algorithm
+for robustness against degeneracies, we could possibly Fix(tm) libart
+or at least have a good intersection backend for a new clipping
+algorithm.
+
+Random notes:
+
+	- Libart does not implement art_svp_minus().  I implemented
+	it; patch is waiting approval from Raph.  Put this in the
+	our patch anyways so we have full functionality.
+
+	- Do Metafont or Metapost include polygon clippers?  Will look
+        for these.
+
+Vatti, B.R., "A Generic Solution to Polygon Clipping",
+Communications of the ACM, 35(7), July 1992, pp.56-63.
+
+[ can we bring pressure to bear on this chap to LGPL it ? ]
+external/gpc/gpc.[ch] from http://www.cs.man.ac.uk/aig/staff/alan/software/
+
+http://www.faqs.org/faqs/graphics/algorithms-faq/
+
+Sticking point is Self Intersecting Polygons (perhaps) cf.
+http://home.attbi.com/~msleonov/pbcomp.html
+
+A paper on the subject is here:
+http://davis.wpi.edu/~matt/courses/clipping/
+
+
+PolyPolygon - mostly used in 
+
+PolyPolygon::GetIntersection - no '->' refs
+
+[valid hits:]
+./vcl/source/gdi/outdev4.cxx:178:               rPolyPoly.GetIntersection( *pClipPolyPoly, *pPolyPoly );
+./vcl/source/gdi/poly.cxx:1240: aTmp.GetIntersection( rPolyPoly, rResult );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:89:          aPolyPoly.GetIntersection( aPolyPolyRect, aIntersection );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:126:                         aPolyPoly.GetIntersection( rPolyPolygon, aNewClipPath );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:989:         aClipPath.GetClipPath().GetIntersection( aPolyPolyRect, aDest );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:1138:                        aClipPath.GetClipPath().GetIntersection( aPolyPoly, aDest );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:1185:                        aClipPath.GetClipPath().GetIntersection( rPolyPolygon, aDest );
+
+PolyPolygon::GetUnion - [ a different GetUnion ]:
+
+[valid hits:]
+./vcl/source/gdi/poly.cxx:1248: aTmp.GetUnion( rPolyPoly, rResult );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:117:                         aPolyPoly.GetUnion( rPolyPolygon, aNewClipPath );
+
+PolyPolygon::GetDifference - no '->' refs
+
+./vcl/source/gdi/poly.cxx:1256:    aTmp.GetDifference( rPolyPoly, rResult );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:102:         aPolyPoly.GetDifference( aPolyPolyRect, aDifference );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:123:                         aPolyPoly.GetDifference( rPolyPolygon, aNewClipPath );
+
+PolyPolygon::GetXOR - no '->' refs
+
+./vcl/source/gdi/poly.cxx:1264:     aTmp.GetXOR( rPolyPoly, rResult );
+./svtools/source/filter.vcl/wmf/winmtf.cxx:120:                         aPolyPoly.GetXOR( rPolyPolygon, aNewClipPath );
+
+Would the 'Java2D' code be equally good; can we make it Free Software ?
+
+OutputDevice::ImplDrawPolyPolygon
+	Uses GetIntersection - unused outside of outdev4.cxx
+
+OutputDevice::ImplDrawPolygon - unused outside of outdev4.cxx
+	OutputDevice::ImplDrawLinearGradient
+
+OutputDevice::ImplDrawComplexGradient - clip-poly is the outline,
+	OutputDevice::DrawGradient
+	OutputDevice::AddGradientActions [ but with no clippoly ]
+
+	clip-poly == the outline;
+	We do thousands of redundant clipping ops here.
+
+
+
+<saint> _michael: he doesn't, from my own legal perspective.
+<saint> _michael: that's why I contacted the univ as well
+<_michael> saint: ok; so a secondary problem is that it's not his to say ;-)
+<saint> and they implied that they were happy for alan to grant exemptions.
+<saint> but its just not clear enough
+<saint> and on the issue of relicensing under either GPL or LGPL for future projects...
+<saint> the uni said they were planning to review this at some point in the future
+<reals> i think the situation is that while the uni owns the copyright (so we can't get around it all by just having him sign JCA), they also have granted him the ability to grant licences
+<_michael> saint: well; it's possible to get in touch with the university of Manchester quite easily;
+<saint> reals: but not having seen documentation to "prove" that, it never pays to assume anything....
+<saint> _michael: sure.
+<_michael> saint: is Alan adverse to 'L' GPLing it ?
+<_michael> saint: does he make money out of it ? did you glean any more from them ?
+<saint> his response above seemed to be firm to me...
+<saint> the university makes money out of it now
+<_michael> saint: oh, grief - that sucks.
+<saint> :-)
+<_michael> saint: so we're sunk.
+<_michael> saint: as soon as the beaurocrats see it as a revenue stream ...
+<saint> that is why I didn't really pursue it much further at the time.
+<_michael> saint: thanks for being so helpful ( & clueful )
+<saint> no prob.   we've got to work together on this stuff! :-)
+<_michael> saint:  it turns out that [AFAICS] gpc is used in 2 places
+<reals> saint: yes, well, essentially there are lots of pieces (not just gpc, also jpeg, zlib, etc) that any commercial distro has to assure themselves they are fine shipping 
+<_michael> saint: 1) Rendering gradients - this is done horrilby inefficiently
+<saint> _michael: two places now?  I thought it was only one?
+<_michael> saint: 2) Importing wmf - this is quite vital for Powerpoint etc.
+<saint> reals: absolutely....  its getting a real mess these days w/ patents.
+<_michael> saint: well - it's wrapped in VCL, I just chased where that was used.
+<saint> reals: mp3 being a great example
+<saint> ahh interesting
+<saint> the gradients I was aware of
+<saint> but not the implication for wmf
+<_michael> saint: the gradient code is pretty horribly inefficient AFAICS,
+<saint> _michael: libart seems to me to me the closest thing resembling a "replacement".
+<saint> :-/
+<reals> i think it may also at some point conceivably be used in the cvg and pdf filters
+<saint> reals: mmmm
+<reals> s/cvg/svg/
+<_michael> saint: the problem is - winding back the code and seeing what constrains we have on the polygons we render gradients in.
+<_michael> saint: since gpc is extremely accepting of odd, self-intersecting, convex, etc. input.
+<saint> ksvg uses libart as I recall.
+<saint> _michael: right....
+<saint> not sure what other alternatives exist for gpc at this time.
+<saint> i.e. other than _maybe_ libart, or an adaption of libart, I know of none myself...
+<saint> it would make a good potential university project for somebody.
+<_michael> saint: either way - getting gpc GPL'd would be a solution - inasmuch as it would suit the university and us ?
+<_michael> saint: yes; that's another option,
+<saint> _michael: that would be perfect - getting gpc GPL'd...
+<_michael> saint: I could try grabbing someone at Cambridge to poke at it,
+<_michael> saint: ultimately it's implementing someone else' algorithem,
+--- saint is now known as |
+<|> No. I didn't. I tried multclip library that is more close to gpc, but
+<|> it didn't support self-intersecting polygons.
+--- | is now known as saint
+<saint> that was from Peter Novodvorsky.
+<_michael> right; and I assume that's vital -
+<saint> right.
+<_michael> looking at what happens with a gradient in a user-drawn polygon,
+<saint> so that's not an option either
+* _michael wonders
+<_michael> why am I not getting debug spew on the console,
+<saint> _michael: because your machine is turned off? ;-)
+<_michael> does OpenOffice do some IO re-direction somewhere ?
+<saint> Kevin Hendricks was looking at writing a replacement for gpc....
+<saint> but last time I checked has not made much progress.
+<reals> I'd be suprised if he found the time now that 'school' has started again 
+<saint> _michael: I just saw your e-mail :-)
+<_michael> saint: the annoying thing about clippoly
+<_michael> saint: is that there is (was) an LGPL 'C' version by Leonov, but then he disappeared
+<_michael> saint: but possibly the algorithem is fundamentally no-good for SI
+<_michael> I wonder if Manchester's 'GNU Maverik' contains the same functionality.
+<saint> mmeeks@gnu.org, right?
+* saint is going to forward an e-mail
+<_michael> saint: yes.
+<_michael> saint: or michael@ximian.com is better.
+<_michael> saint: yes.
+<_michael> saint: or michael@ximian.com is better.
+<saint> ok
+<_michael> reals: has anyone answered my 'how does libgcc_s get there' question yet ?
+<saint> _michael: check your e-mail
+--> waratah (~ken@c17521.rivrw4.nsw.optusnet.com.au) has joined #OpenOffice.org
+<_michael> typedef enum { TETLEY, PG_TIPS, EARL_GREY } MAV_teabag;
+<_michael> :-)
+* _michael sucks mail reluctantly.
+<saint> lol
--- openoffice.org-2.4.1.orig/ooo-build/doc/encrypt.txt
+++ openoffice.org-2.4.1/ooo-build/doc/encrypt.txt
@@ -0,0 +1,19 @@
+	+ 62181 - password protected documents
+		+ CWS modules are: sc, sw, sd, svx, sal, uui
+			+ Missing the 'svx' diff ! :-)
+			+ sc - re-diff with -w - currently 7000 lines
+				+ slightly complex CONTINUE record
+				  handling etc.
+				+ A very large rename of stream API [!?]
+				    aIn.ReadByteString() rename
+				    instead of aIn.AppendByteString.
+				    aIn.Tell() vs. aIn.GetSvStreamPos()
+
+			+ sw - 1270 lines re-diff with -w
+				+ seems to include other code
+				+ ww8par.cxx - seems to have a large
+				  moved section - how large are the
+				  changes really ?
+			+ sd - trivial
+			+ uui - trivial
+			+ svx - trivial
--- openoffice.org-2.4.1.orig/ooo-build/doc/sm.txt
+++ openoffice.org-2.4.1/ooo-build/doc/sm.txt
@@ -0,0 +1,559 @@
+
+Had been trying to instrument sm.cxx to use osl_Conditions to wait till the
+save operation got completed, but came back to see that the code I was working
+was different from what was in CVS.
+
+Shifted to m90 and this has a behaviour similar to what gedit does, it does
+not prompt the user for a Save dialog. It directly writes the file to disk and
+exits. When it is re-launched, it restores itself to the state it was in when
+it was shut down.
+
+The gtk plugin crashes without doing that as well, so will just add in the
+SessionManagerClient::open calls. Surprise it's already there ?
+
+But the gtk plugin still crashes without a prompt. So need to check with the changes
+made in the cws vclshowstop02 and the changes I was trying out on this build,
+and need to verify the same thing. That's next.
+
+Then to see what changed in between the two editions that causes the change in behaviour.
+
+--
+
+The end result of the exercise is the dialog prompting the
+user on logout in the gen plugin to save all open documents:
+
+vcl/source/window/winproc.cxx:
+        case SALEVENT_SHUTDOWN:
+			{
+				static bool bInQueryExit = false;
+				if( !bInQueryExit )
+				{
+					bInQueryExit = true;
+					if ( GetpApp()->QueryExit() )
+					{
+						// Message-Schleife beenden
+						Application::Quit();
+						return FALSE;
+					}
+					else
+					{
+						bInQueryExit = false;
+						return TRUE;
+					}
+				}
+				else
+					return FALSE;
+			}
+            break;
+
+This happens when the SHUTDOWN event is launched by:
+
+[ GetpApp()->QueryExit() is the one in desktop/source/app/app.cxx which is 
+inside the unlinked soffice.bin, should it be necessary to poke at it...] 
+
+vcl/source/app/sm.cxx:
+IMPL_STATIC_LINK( SessionManagerClient, ShutDownHdl, void*, pDummy )
+{
+    const std::list< SalFrame* >& rFrames = GetSalData()->GetDisplay()->getFrames();
+    SMprintf( rFrames.begin() != rFrames.end() ? "shutdown on first frame\n" : "shutdown event but no frame\n" );
+    if( rFrames.begin() != rFrames.end() )
+        rFrames.front()->CallCallback( SALEVENT_SHUTDOWN, 0 );
+    return 0;
+}
+
+which in turn is launched by:
+
+vcl/source/app/sm.cxx:
+void SessionManagerClient::DieProc(
+	SmcConn connection,
+	SmPointer client_data
+	)
+{
+    SMprintf( "Session: die\n" );
+	if( connection == aSmcConnection )
+    {
+        Application::PostUserEvent( STATIC_LINK( NULL, SessionManagerClient, ShutDownHdl ) );
+        SMprintf( "waiting for shutdown event to be processed\n" );
+    }
+}
+
+The initial problem was that the DieProc was not invoked at all from the gtk
+plugin. One thing that was not available was the initialization of the
+SessionManagerClient in gtkframe.cxx, that was done:
+
+--- vcl/unx/gtk/window/gtkframe.cxx	2005-03-16 14:56:46.000000000 +0530
++++ vcl/unx/gtk/window/gtkframe.cxx	2005-04-07 18:33:49.868673152 +0530
+@@ -84,9 +84,17 @@
+ #if OSL_DEBUG_LEVEL > 1
+ #include <cstdio>
+ #endif
++#ifndef _VCL_SM_HXX
++#include <sm.hxx>
++#endif
++#ifndef _OSL_SIGNAL_H_
++#include <osl/signal.h>
++#endif
+ 
+ int GtkSalFrame::m_nFloats = 0;
+ 
+@@ -864,6 +911,8 @@ void GtkSalFrame::Show( BOOL bVisible, B
+                 if( m_pParent )
+                     m_pParent->EndExtTextInput(0);
+             }
++
++		    SessionManagerClient::open();
+         }
+         else
+         {
+--- vcl/unx/gtk/app/gtkinst.cxx	2005-01-13 23:38:47.000000000 +0530
++++ vcl/unx/gtk/app/gtkinst.cxx	2005-04-07 18:08:28.242914745 +0530
+@@ -69,6 +69,9 @@
+ #if OSL_DEBUG_LEVEL > 1
+ #include <cstdio>
+ #endif
++#ifndef _VCL_SM_HXX
++#include <sm.hxx>
++#endif
+ 
+ GtkHookedYieldMutex::GtkHookedYieldMutex()
+ {
+@@ -195,6 +198,8 @@ extern "C" 
+ 
+ GtkInstance::~GtkInstance()
+ {
++    // close session management
++    SessionManagerClient::close();
+ }
+ 
+ SalFrame* GtkInstance::CreateFrame( SalFrame* pParent, ULONG nStyle )
+
+That did initialize the SessionManagerClient, but the Die procedure was still
+not invoked, so after fiddling with the passOnSaveYourself procedure in
+salframe.cxx, eventually made these changes:
+
+X11SalFrame* X11SalFrame::s_pSaveYourselfFrame = NULL; in salframe.cxx brought
+into gtkframe.cxx with this patch:
+
+--- vcl/unx/gtk/window/gtkframe.cxx	2005-03-16 14:56:46.000000000 +0530
++++ vcl/unx/gtk/window/gtkframe.cxx	2005-04-07 18:33:49.868673152 +0530
+@@ -84,9 +84,17 @@
+
+ int GtkSalFrame::m_nFloats = 0;
+ 
++GtkSalFrame* GtkSalFrame::s_pSaveYourselfFrame = NULL;
++
+ static USHORT GetModCode( guint state )
+ {
+     USHORT nCode = 0;
+@@ -256,6 +264,36 @@ GtkSalFrame::GtkSalFrame( SystemParentDa
+     Init( pSysData );
+ }
+ 
++void GtkSalFrame::passOnSaveYourSelf()
++{
++	fprintf( stderr, "GtkSalFrame::passOnSaveYourSelf()\n" );
++	using namespace vcl_sal;
++    if( this == s_pSaveYourselfFrame )
++    {
++        // pass on SaveYourself
++        const GtkSalFrame* pFrame = NULL;
++        const std::list< SalFrame* >& rFrames = GetSalData()->GetDisplay()->getFrames();
++        std::list< SalFrame* >::const_iterator it = rFrames.begin();
++        while( it != rFrames.end() )
++        {
++            pFrame = static_cast< const GtkSalFrame* >(*it);
++            if( ! (pFrame->m_nStyle & (SAL_FRAME_STYLE_FLOAT|SAL_FRAME_STYLE_CHILD) || pFrame->m_pParent ) )
++                break;
++            ++it;    
++        }
++        
++        s_pSaveYourselfFrame = (it != rFrames.end() ) ? const_cast<GtkSalFrame*>(pFrame) : NULL;
++        if( s_pSaveYourselfFrame )
++        {
++            Atom a[4];
++            int  n = 0;
++            a[n++] = GetSalData()->GetDisplay()->getWMAdaptor()->getAtom( WMAdaptor::WM_DELETE_WINDOW );
++            a[n++] = GetSalData()->GetDisplay()->getWMAdaptor()->getAtom( WMAdaptor::WM_SAVE_YOURSELF );
++            XSetWMProtocols( getDisplay()->GetDisplay(), s_pSaveYourselfFrame->GetSystemData()->aShellWindow, a, n );
++        }
++    }
++}
++
+ GtkSalFrame::~GtkSalFrame()
+ {
+ 	getDisplay()->deregisterFrame( this );
+@@ -277,6 +315,8 @@ GtkSalFrame::~GtkSalFrame()
+         g_object_unref( G_OBJECT(m_pForeignParent) );
+     if( m_pForeignTopLevel )
+         g_object_unref(G_OBJECT( m_pForeignTopLevel) );
++
++    passOnSaveYourSelf();
+ }
+ 
+ void GtkSalFrame::hardIMReset()
+@@ -504,6 +544,13 @@ void GtkSalFrame::Init( SalFrame* pParen
+     m_aForeignTopLevelWindow = None;
+     m_nStyle = nStyle;
+ 
++	if( ! s_pSaveYourselfFrame && ! m_pParent && ! (m_nStyle & SAL_FRAME_STYLE_CHILD) )
++	{
++		// at all times have only one frame with SaveYourself
++//		a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_SAVE_YOURSELF );
++		s_pSaveYourselfFrame = this;
++	}
++
+ 	if( m_pParent && m_pParent->m_pWindow && ! (m_pParent->m_nStyle & SAL_FRAME_STYLE_CHILD) )
+ 		gtk_window_set_screen( m_pWindow, gtk_window_get_screen( m_pParent->m_pWindow ) );
+ 
+@@ -1517,6 +1566,8 @@ bool GtkSalFrame::SetPluginParent( Syste
+     if( m_pForeignTopLevel )
+         g_object_unref( G_OBJECT(m_pForeignTopLevel) );
+ 
++    passOnSaveYourSelf();
++
+     // init new window
+     if( pSysParent && pSysParent->aWindow != None )
+         Init( pSysParent );
+--- vcl/unx/inc/plugins/gtk/gtkframe.hxx	2005-03-16 14:56:46.000000000 +0530
++++ vcl/unx/inc/plugins/gtk/gtkframe.hxx	2005-04-07 14:06:59.668222775 +0530
+@@ -159,6 +159,8 @@ class GtkSalFrame : public SalFrame
+         }
+     };
+ 
++    static GtkSalFrame* s_pSaveYourselfFrame;
++                                
+     GtkWindow*                      m_pWindow;
+     GdkWindow*                      m_pForeignParent;
+     GdkNativeWindow                 m_aForeignParentWindow;
+@@ -355,6 +357,7 @@ public:
+     virtual bool                SetPluginParent( SystemParentData* pNewParent );
+ 
+     virtual void                SetBackgroundBitmap( SalBitmap* );
++    void			passOnSaveYourSelf();
+ };
+
+
+With this, finally the die procedure seemed to be invoked or so it seems
+because now it seems to be invoked even if just the two lines of
+SessionManagerClient::open and close remain.
+
+Now the problem is that while the GtkSalFrame's Die Procedure is invoked and
+the dialog prompting the user does come up, the whole application is killed
+off by X instantly, whereas in the X11SalFrame, the prompt remains long enough
+to save all the open documents. 
+
+The gtk plugin does get the Die Procedure and the save prompt up, but the X
+Session dies killing off all the applications which X11SalFrame is managing to
+hold on to till saving is complete.
+
+FWIW, I got the gen plugin to crash practically the same way the gtk one
+crashes commenting out the one line:
+
+--- vcl/unx/source/window/salframe.cxx	2005-03-16		14:56:46.000000000 +0530
++++ vcl/unx/source/window/salframe.cxx	2005-04-08		16:37:42.142357942 +0530
+@@ -563,7 +563,7 @@ void X11SalFrame::Init( ULONG nSalFrameS
+         {
+             // at all times have only one frame with SaveYourself
+             a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_SAVE_YOURSELF );
+-            s_pSaveYourselfFrame = this;
++//            s_pSaveYourselfFrame = this;
+         }
+         if( (nSalFrameStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) )
+             a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_TAKE_FOCUS );
+
+However, now commenting it out does not seem to be affecting it either now so ... :-O
+
+-------
+
+These are the notes Raul should have taken:
+
+* Code reading in vcl/unx/source/app/sm.txt
+  + follow 'Save Yourself'
+
+Callback is connected to
+
+void SessionManagerClient::SaveYourselfProc(
+
+posts event:
+
+    Application::PostUserEvent( STATIC_LINK( (void*)(shutdown ? 0xffffffff : 0x0), SessionManagerClient, SaveYourselfHdl ) );
+    SMprintf( "waiting for save yourself event to be processed\n" );
+
+
+* Query - does that really wait ?
+
+vcl/source/app/svapp.cxx:
+
+BOOL Application::PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData )
+
+    rEventId = (ULONG)pSVEvent;
+    if ( ImplGetDefaultWindow()->ImplGetFrame()->PostEvent( pSVEvent ) )
+        return TRUE;
+
+app/svdata.cxx (ImplGetDefaultWindow):
+    + returns a Window * - some random window.
+
+window/window2.cxx (ImplGetFrame)
+    + returns a SalFrame * simple method accessor
+
+salframe.cxx:
+
+BOOL X11SalFrame::PostEvent( void *pData )
+{
+    GetDisplay()->SendInternalEvent( this, pData );
+	return TRUE;
+}
+
+gtkframe.cxx:
+BOOL GtkSalFrame::PostEvent( void* pData )
+{
+	getDisplay()->SendInternalEvent( this, pData );
+	return TRUE;
+}
+
+source/app/saldisp.cxx
+void SalDisplay::SendInternalEvent( SalFrame* pFrame, void* pData, USHORT nEvent )
+{
+	if( osl_acquireMutex( hEventGuard_ ) )
+    {
+        m_aUserEvents.push_back( SalUserEvent( pFrame, pData, nEvent ) );
+
+		// Notify SalXLib::Yield() of a pending event.
+		pXLib_->PostUserEvent();
+
+        osl_releaseMutex( hEventGuard_ );
+    }
+    else
+        DBG_ASSERT( 1, "SalDisplay::SendEvent !acquireMutex\n" );
+}
+
+Bounces to the main thread and runs:
+
+IMPL_STATIC_LINK( SessionManagerClient, SaveYourselfHdl, void*, pDummy )
+{
+    SMprintf( "posting save documents event shutdown = %s\n", (pThis!=0) ? "true" : "false" );
+    if( pOneInstance )
+    {
+        SalSessionSaveRequestEvent aEvent( pThis != 0, false );
+        pOneInstance->CallCallback( &aEvent );        
+    }
+    else
+        saveDone();
+    return 0;
+}
+
+pOneInstance != NULL is the common case: ->
+
+'CallCallback' is inherited from IceSalSession:
+
+vcl/unx/inc/sm.hxx:
+class IceSalSession : public SalSession
+
+instantiated from
+
+vcl/unx/inc/salinst.h (CreateSalSession)
+not overridden in GtkInstance; implemented in sm.cxx.
+
+Implemented in vcl/inc/salsession.hxx, that has:
+
+    void SetCallback( SessionProc aCallback ) 
+    {
+        m_aProc = aCallback;
+    }
+    void CallCallback( SalSessionEvent* pEvent )
+    {
+        if( m_aProc )
+            m_aProc( pEvent );
+    }
+
+The callback is set - cf. vcl/source/app/session.cxx:
+    m_pSession = ImplGetSVData()->mpDefInst->CreateSalSession();
+    if( m_pSession )
+        m_pSession->SetCallback( SalSessionEventProc );
+
+
+With the 'gen' plugin, it _seems_ that OO.o is serializing the session
+on exit, and re-loading it on startup - regardless of the state of
+'save session'.
+
+The session mgmt spec. here:
+http://netmirror.org/mirror/xfree86.org/4.1.0/doc/SMlib.TXT
+
+says:
+
+[snip]
+The session manager sends a ``Save Yourself'' message  to  a
+client either to checkpoint it or just before termination so
+that it can save its state.  The client responds  with	zero
+or  more  calls to SmcSetProperties to update the properties
+indicating how to restart the client.  When all the  proper-
+ties have been set, the client calls SmcSaveYourselfDone.
+
+If  interact_style  is	SmInteractStyleNone, the client must
+not interact with the user while saving  state.   If  inter-
+act_style  is SmInteractStyleErrors, the client may interact
+with the user only if an error condition arises.  If  inter-
+act_style  is SmInteractStyleAny, then the client may inter-
+act with the user for any purpose.  Because only one  client
+can  interact  with the user at a time, the client must call
+SmcInteractRequest and wait for an ``Interact'' message from
+the  session  manager.	 When the client is done interacting
+with the user, it calls  SmcInteractDone.   The  client  may
+only  call  SmcInteractRequest	after  it  receives a ``Save
+Yourself'' message and before it calls	SmcSaveYourselfDone.
+[snip]
+
+We - however, discard our 'interact_style' immediately inside
+'SaveYourselfProc'; indeed - everything except 'shutdown'
+
+
+Gnumeric's gnome-client.c usage does:
+
+static gboolean
+client_save_yourself_cb (GnomeClient *client, int phase, 
+			 GnomeSaveStyle what_to_save,
+			 gboolean end, GnomeInteractStyle interaction,
+			 gboolean fast, gpointer data)
+{
+	gboolean res = TRUE;
+
+	if (!end)
+		return TRUE;  /* If we aren't shutting down, don't bother us any further. */
+
+	gnome_client_set_current_directory (client, current_dir);
+
+	if (!(interaction == GNOME_INTERACT_ANY))
+		res = FALSE;
+	else
+		gnome_client_request_interaction (client, 
+						  GNOME_DIALOG_NORMAL, 
+						  interaction_function,
+						  NULL);
+	set_clone_restart (client);	
+	return res;
+}
+
+static void 
+interaction_function (GnomeClient *client, gint key, GnomeDialogType dialog_type, gpointer shutdown)
+{
+	gboolean do_not_cancel = FALSE;
+...
+	gnome_interaction_key_return (key, do_not_cancel);
+}
+
+/**
+ * gnome_client_request_interaction:
+ ...
+ * Description: Use the following functions, if you want to interact with the
+ * user during a "save_yourself" handler without being restricted to using the
+ * dialog based commands gnome_client_save_any_dialog() or
+ * gnome_client_save_error_dialog(). Note, however, that overriding the session
+ * manager specified preference in this way (by using arbitrary dialog boxes)
+ * is not very nice.
+ *
+ * If and when the session manager decides that it's the app's turn to interact
+ * then 'func' will be called with the specified arguments and a unique
+ * 'GnomeInteractionKey'. The session manager will block other
+ * clients from interacting until this key is returned with
+ * gnome_interaction_key_return().
+ **/
+
+* I also get crashers from incorrect resource setup, on
+  forking 'soffice.bin'
+
+
+SalSessionSaveRequestEvent & SalSessionInteractionEvent are both
+trapped in:
+
+vcl/source/app/session.cxx (SalSessionEventProc)
+    calls pOneInstance->callSaveRequested
+    or    pOneInstance->callInteractionGranted
+static VCLSession *pOneInstance ...
+
+    This code fires off an UNO 'doSave' method to all it's
+XSessionManagerListener objects; or an 'approveInteraction' method.
+
+#define SESSION_SERVICE_IMPL_NAME "com.sun.star.frame.VCLSessionManagerClient"
+#define SESSION_SERVICE_SERVICE_NAME "com.sun.star.frame.SessionManagerClient"
+
+    The XSessionManagerListener is implemented / used in:
+
+desktop/source/app/app.cxx - startup / reload code ?
+
+        // session management 
+        try
+        {
+            Reference< XInitialization > aListener(::comphelper::getProcessServiceFactory()->createInstance(
+                    OUString::createFromAscii("com.sun.star.frame.SessionListener")), UNO_QUERY);
+            if (aListener.is())
+            {
+                aListener->initialize(Sequence< Any >(0));
+                    Reference< XSessionManagerListener > r(aListener, UNO_QUERY);
+                if (r.is() && !bLoaded)
+                    bLoaded = r->doRestore();
+            }
+        }
+
+	* Presumably calling directly into the Framework - avoiding vcl:
+
+and:	framework/source/services/sessionlistener.cxx
+
+	doSave() here ignores 'bCancelable' completely ...
+	SessionListener::approveInteraction
+	    + fires a condition '_pcInteract'
+	    + Someone had to call _requestInteraction() first
+
+* Who calls _requestInteraction ?
+    + seemingly no-one ...
+
+* Users of sessionlistener.hxx:
+	+ framework/source/register/registerservices.cxx
+
+
+
+
+
+
+**    Could the crash-on-login bug be related to getting an application
+name of 'soffice.bin' - when it needs to be soffice to have any
+chance of finding the right resources ?
+
+cf. String SessionManagerClient::getExecName()
+    This turns 'soffice.bin' into 'soffice'
+
+vcl/unx/source/app/saldisp.cxx:
+
+	// set client leader (session id gets set when session is started)
+	if( hRefWindow_ ) {
+		// client leader must have WM_CLIENT_LEADER pointing to itself
+		XChangeProperty( pDisp_, hRefWindow_,
+				 XInternAtom( pDisp_, "WM_CLIENT_LEADER", False ),
+				 XA_WINDOW, 32, PropModeReplace,
+				 (unsigned char*)&hRefWindow_, 1);
+		ByteString aExec( SessionManagerClient::getExecName(), osl_getThreadTextEncoding() );
+		const char* argv[2];
+		argv[0] = "/bin/sh";
+		argv[1] = aExec.GetBuffer();
+		XSetCommand( pDisp_, hRefWindow_, const_cast<char**>(argv), 2 );
+		...
+
+Gnome doesn't ever do an XSetCommand though - quite possibly it
+relies on the SmRestartCommand functionality that gnome-client
+implements.
+
+We seem to create a correct SmRestartCommand property; but only send
+it on SaveYourself ( BuildSmPropertyList vs. saveDone ).
+
+** If we run 'oowriter2' do we get 'soffice' as the correct save
+   exec. name ? the gnome-client sets this property on startup.
+
+	+ Running with 'oowriter2' -> 'Save setup' I get:
+	    + Program: '/usr/lib/ooo-2.0/program/soffice.bin -writer'
+		[ this will crash on startup ]
+	+ Running with PLUGIN=gen oowriter3 -> 'Save Setup' I get:
+	    + /usr/lib/ooo-2.0/program/soffice
+
+** QED - it isn't communicating the correct program name to the 
+   session manager somehow.
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/gtk-integration.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gtk-integration.txt
@@ -0,0 +1,83 @@
+Some blurb about gtk+ integration pain:
+
+* gtk+
+
+** main-loop
+	+ The first thread to the main-loop gets to lurk in the
+	  'select' - any other thread gets to block on that.
+	+ Not a problem, since all timeout adds etc. interrupt
+	  the existing mainloop.
+	+ Lock state in the filter_function:
+		+ gdk_event_translate: lock must be held when called
+			+ lock taken without notifying SalYieldMutex::acquire
+			+ we must setup SalYieldMutex / and tear-down too.
+
+!?	+ How do gtk+ inferior loops work ?
+		+ we need to be able to hook into the take/drop
+		  semantics of the inferior loop really.
+
+	+ What happens when gtk+ drops it's lock ?
+		+ doesn't happen except around the main-loop / event
+		  emission.
+		+ thus - setup the lock during the duration of
+		  the event emission.
+
+
+	+ URGH- gmain.c holds the context (not released) over dispatch
+	  thus no other thread can get into the mainloop, until the
+	  round of dispatch is over ... [!] - the same is true of VCL.
+
+* vcl
+	+ we drop our lock as we poll
+	+ we then re-take any locks & re-poll with the guard taken.
+		+ cf. saldata.hxx's YieldMutexReleaser.
+	+ we do not XInitThreads ...
+	+ we guard XNextEvent etc. with the YieldMutex
+		+ cf. vcl/unx/source/app/saldisp.cxx (Yield) from
+		+ vcl/unx/source/app/saldata.cxx (Yield)
+
+	+ vcl/source/app/svapp.cxx (Application::Yield): ->
+	  SalInstance::Yield ->
+	  GetSalData()->GetLib()->Yield( bWait );
+	  SalInstance::AcquireYieldMutex - called by:
+	  Application::AcquireSolarMutex
+
+	+ Need to bin all daft direct uses of mpSalYieldMutex;
+
+** Solar Mutex == YieldMutex
+	cf. Application::GetSolarMutex -> GetYieldMutex.
+	also cf. Application::GetMainThreadIdentifier
+
+** Recursive lock <-> non recursive impl.
+	+ need a slave lock to handle ThreadId changes etc.
+	+ need to preserve 'Count' after a drop/pick-up
+	  restoration [!]
+
+	  lock A -> lock B -> unlock A
+	  lock A -> unlock B -> unlock A
+		A race condition !
+
+
+** Conditions:
+
+L - locked, U - unlocked
+
+	   Gdk YM  ID  cnt
+
+An unowned lock:
+
+lock:	    N	N  0	0 
+	    N   Y  ME	1  - other lockers inhibited ...
+	    N   N  ME	1  - a yield/busy loop for other lockers ?
+	    Y	N  ME   1
+
+
+unlock:     Y   N  ME   1
+	    Y   Y  0    0
+	    Y   N  0    0
+	    N   N  0    0
+
+
+	Forget the lock - imagine the lock is a queue - push/pop or
+somesuch, we have to efficiently synchronize access to it.
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/openclipart.txt
+++ openoffice.org-2.4.1/ooo-build/doc/openclipart.txt
@@ -0,0 +1,61 @@
+ooo-build allows to build OOo galleries from the Open Clip Art Library
+that is available at http://www.openclipart.org/
+
+The .png files included in the Open Clip Art Library sources are sufficient
+just for preview. They are generated with the constant width 80, which is
+not enough resolution for most of the graphics. Therefore, it is necessary
+to generate the .png files by inkscape from the .svg sources.
+
+To get the OOo galleries from Open Clip Art library, it is enough to use
+the --with-openclipart configure switch and build and install OOo the
+usual way:
+
+    ./configure --with-openclipart
+    ./download
+    make
+    make install or bin/ooinstall
+
+The configure switch --with-openclipart accepts two types of parameters:
+
+    a) version number
+
+    It is useful if you want to build the galleries from the original
+    Open Clip Art Library sources.
+
+    b. path to prebuilt .png files
+    
+    It is useful if you have the .png files already prebuilt and installed
+    somewhere on your system. Note that it takes a lot of time to rebuilt
+    the .png files using inkscape. In addition, inkscape has huge dependecies
+    on other packages, so some people might want to prebuilt the .png files
+    apart from OOo.
+
+
+Notes:
+
+a) One gallery is generated for each top-level subdirectory of the Open Clip
+   Art Library.
+b) There is a blacklist in ./bin/build-galleries that allows to remove
+   problematic files (broken, controversial, ...)
+c) The following two lists of files are genereated if $OODESTDIR is defined:
+	$BUILDDIR/openclipart.txt
+	$BUILDDIR/galleries.txt
+d) Xvfb is started if available and the X server does not seem to be accessible.
+   It is necessary because the utility gengal tries to access the X server.
+
+
+Implementation details:
+
+The gallery related code is included in the following files:
+
+    ./configure.in
+    ./download
+    ./bin/setup.in
+    ./bin/unpack
+    ./bin/ooinstall
+    ./bin/build-galleries
+
+These variables are set in ./bin/setup:
+
+    OPENCLIPART_VER - is set if we build from original Open Clip Art Library sources
+    OPENCLIPART_VER - is set if we use the prebuilt .png files
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/bdirect.txt
+++ openoffice.org-2.4.1/ooo-build/doc/bdirect.txt
@@ -0,0 +1,712 @@
+-Bdirect linking:
+
++ need to elide 'vague linkage' stuff [ re-use regexp map logic ? ]
+
++ behaves like an optimial -Bsymbolic in-library +
++ stores library index [1 per symbol ?] for the dynamic sym table
+	[ sol seems to do somewhat better than that ]
+
++ elflink.c:
+
+	bfd_boolean
+	bfd_elf_link_record_dynamic_symbol (struct bfd_link_info *info,
+					    struct elf_link_hash_entry *h)
+
+	+ calls _bfd_elf_strtab_add (...)
+	+ sets (elf_link_hash_entry) h->dynstr_index to that ...
+		+ of course - string table can contain anything (?)
+		+ we want a symbol-table index (?)
+
+		.dynsym <symbol data> .dynstr <string data>
+		+ Precisely 1 entry in '.direct' for every entry
+		  in .dynsym
+			+ elf_hash_table(info)->dynsymcount ...
+
+	+ bfd_elf_size_dynamic_sections:
+		+ working nicely
+
+	+ Need the list of external libraries (section?)
+		+ what is that ?
+		+ DT_NEEDED ?
+			+ lots of NEEDED libs
+			+ get a clear order ?
+		+ [ elf_add_dt_needed_tag ]:
+			+ goes through '.dynamic' section
+			+ pages in all Elf_Internal_Dyn records
+				+ sub-sets on DT_NEEDED
+				+ etc. ...
+			+ slow but reliable ;-)
+		+ *Should*
+			+ count index of existing DT_NEEDEDs
+				+ copy elf_dt_name (bfd)
+***				& assign elf_dt_index (bfd)
+			+ then just use elsewhere ...
+
+	+ elf_link_output_extsym ...
+		+ build .direct here ...
+		+ use the 'bfd_link_hash_entry'
+			+ switch on type
+			+ for 'def'
+				+ asection *section [ symbol section ]
+			+ [ what it resolves to ? ]
+				+ is this the post link data ?
+				+ [ what about weak / multiple hits !? ]
+			+ section->owner == bfd ...
+				+ bfd.h:3942 
+					+ const char *filename
+			+ elf_dt_name (bfd) = soname ...
+				(const char *)
+			+ so we can get that easily.
+
+	+ grok for -Bsymbolic foo ...
+		+ Carefully examine the -Bsymbolic
+		  platform-dependent piece ..
+		+ looks like an optimisation with
+		  copy relocs
+* notes:
+	+ bfd_link_hash_entry: include/bfdlink.h
+	+ elf_link_hash_entry: bfd/eld-bfd.h
+	+ asection - bfd_section ? (bfd-in2.h)
+
+
+* FIXME:
+	+ executables - also require this data ...
+		[ check code paths etc. ... ]
+	+ do we need a new SHT_DIRECT section header ?
+
+* Need to nail objdump:
+
+  % elfdump -y prog
+
+    Syminfo Section:  .SUNW_syminfo
+	 index  flgs         bound to           symbol
+	  ...
+	  [15]  DBL      [1] ./foo.so           foo
+	  [19]  DBL      [3] ./bar.so           bar
+
+
+bfd_set_section_contents (?)
+	+ end of elf_link_input_bfd:
+	+ end of bfd_elf_final_link ... etc.
+	+ default ... o->flags & SEC_EXCLUDE (?)
+
+
+** Runtime linker ...
+    + cf. doc/link.txt:
+
+    + include/link.h: (struct link_map):
+	+ l_searchlist - array of DT_NEEDED deps.
+	    + [ in what order ? ]
+	+ what is l_reldeps ?
+
+    + dl-lookup.c (_dl_lookup_symbol_x): hack here ...
+
+    + run /opt/gcc/bin/ld-linux.so <file> explicitely ?
+    + work out how to re-build & install elf quickly ... [!?]
+
+libfixup.so - 31 symbols
+    + 16bytes per sym - in .dynsym
+
+  Elf32_Word	st_name;	- 4b
+  Elf32_Addr	st_value;	- 4b
+  Elf32_Word	st_size;	- 4b
+  unsigned char	st_info;	- 1
+  unsigned char	st_other;	- 1
+  Elf32_Section	st_shndx;	- 2
+
+    + ie 16bytes overall.
+
+    + ie. _dl_lookup_symbol_x gets an Elf32_Sym **ref,
+    + but we want an index instead ...
+	+ symbol versioning ? / hash ?
+
+    + -Bdirect - foo...
+
+    + relocations ...
+	+ rel.dyn - <addr> <r_info> - symbol index ...
+
+    + cf. do-rel.h (elf_dynamic_do_rel):
+	+ calls -> elf_machine_rel
+	    + passing &symtab[ELFW(R_SYM) (r->r_info)]
+
+
++ where is elf_machine_rel defined (!?)
+    + sysdeps/i386/dl-machine.h
+
++ can we see if the sym reference is inside:
+      const ElfW(Sym) *const symtab =
+	(const void *) D_PTR (map, l_info[DT_SYMTAB]);
+
+    + could it ever be inside anything else ? if not why
+      have that hard-coded ?
+	+ the elf_dynamic_do_rel - passes several sets of
+	    + relocation types to elf_dynamic_do_##reloc
+
+    + Ergo - everything (so far) looked up in
+	   DT_SYMTAB (.dynsym)
+
+** test harness
+   + app was crashing since linked with -shared ;-)
+
+** Linker test framework:
+   + '~/bin/run'
+	prefix=/opt/gcc
+	sysroot=
+	ulimit -c unlimited
+	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$prefix/lib:$sysroot/lib:$sysroot/usr/X11R6/lib:$sysroot/usr/lib:$sysroot/usr/local/lib:$sysroot/usr/openwin/lib:$sysroot/opt/kde3/lib:$sysroot/opt/gnome/lib:$sysroot/opt/gnome2/lib:$sysroot/opt/mozilla/lib"
+	$prefix/lib/ld-linux.so.2 $@
+   + use it to test the generated binaries ...
+
+
+** Glibc build bits
+   + setup kernel headers
+   + symlink asm-i386 -> asm
+   + add to glibc/version.h:
+	#define CVSDATE "cvsdate"
+	#define CONFHOST "i586-suse-linux"
+   + hack sysd-sorted: move 'elf' to the front
+
++ binutils
+	+ readelf ...
+		+ 0xffff - unknown
+		+ 0xfffe - vague
+		+ 0 - self ...
+
+
++ Bit count for DT_NEEDED index:
+	ls /opt/*/lib/*.so /usr/lib/*.so /usr/X11/lib/*.so /lib/*.so | wc -l
+	533
+	+ But we link to -very- few normally
+		* need DT_NEEDED * stats ...
+
+	+ LD_PRELOAD (etc.)
+		+ add 'preloads' to head of dt_needed - add an offset ?
+		+ have a global 'preload' scope (?)
+			+ [what about a preload's recursive deps ?]
+
+
+** Ultimate numbers:
+	+ Before new glibc:
+		+ 3968, 3978, 3983 Avg: 3980
+	+ With new glibc [ no other changes ]
+		+ 4224, 4238, 4250 Avg: 4240
+		+ ie. 280ms slower [urgh ...]
+	+ With <many> libraries -Bdirected
+		+ 2378, 2387, 2389 Avg: 2385
+	+ 40% faster (warm) startup
+		+ measure time over dlopen ...
+	+ With dlopen top/tail gettimeofdays:
+		+ no -Bdirect: 2.693, 2.721, 2.714
+		+ with it: 0.970, 0.968, 0.956
+
+** Remaining issues:
+
+        * How are new elf sections allocated ? and/or typically named
+          I know DT_DIRECT / '.direct' are prolly beyond the pale
+
+        * How should I handle LD_PRELOADs in the direct dl-lookup.c
+          case ? - we should still do them clearly. Perhaps it'd
+	  be possible to use the first N entries of the existing
+	  searchlist (?)
+
+        * Is there a better way to achieve what I do in dl-deps.c ?
+	  the umpteen-string compares are clearly evil.
+
+        * In binutils - what is the best way to filter out the
+          important 'Vague Linkage' symbols ? clearly we don't want to
+          bind any of them - the current approach is clearly a gross
+	  hack.
+		+ should we propagate this information from target
+		  libraries ? ie. libc can advertise 'foo_baa' as not
+		  to be direct linked against ?
+		+ should the compiler generate / markup the vague
+		  linkage pieces to avoid yet-another link map type
+		  thing ?
+
+        * If we fail to find the symbol in the direct scope should we
+          check the dependants of that library - to allow some limited
+          re-factoring later ? or just fallback to the global scope ?
+
+        * Should we compress the .direct table more ? I can't envisage
+          more than 12bits (4096) of DT_NEEDED libraries ever - prolly
+          we should mask / save that space for future expansion
+	  along with a few special values perhaps ?
+
+
+    + Do we need to add an 'index' to 
+	+ _bfd_generic_link_add_one_symbol (?)
+	    sym -> value -> etc. ?
+	    [ a section & and offset ]
+	    * bfd_asymbol_value = base + value (?)
+	+ [ Can we cram 1 bit into there ? 
+	    we really want a 'is-vague' marker ]
+	+ can be generated earlier ...
+	+ is-vague, unknown, is-concrete tristate ?
+    + seems to be 1 hash table ...
+	+ linear load of symbols into it ...
+	+ _bfd_elf_merge_symbol (?!)
+	    + we return a new 'h' in *sym_hash ...
+	    + need to setup foo on it ...
+	+ 'elf_link_add_object_symbols'
+	    + here !? ...
+
+** You have to export LD_BIND_DIRECT=1
+
+* TODO:
+    + add 'direct' section in *applications*
+	+ only use .direct if it is enabled in the app (etc.)
+	+ make sure the app has a *sane* .direct section
+	    + odd things seem to happen here ...
+	+ (?!)
+
+
++ Without -Bdirect:
+    28% of startup == do_lookup_x
+
++ [Foo!]
+    + baa ...
+
+    + for a in *.so; do readelf -r -W $a | grep '_ZThn' | cut -c 53-256 | sort | uniq; done | wc -l
+ 15661
+    + for a in *.so; do readelf -r -W $a | grep -v '_ZThn' | cut -c 53-256 | sort | uniq; done | wc -l
+164475
+    + perhaps an extra 10% of relocations ...
+	+ but are these plt or rel32 ? - grok again ?
+
+
+* New patch:
+    + Way better ...
+    + works really nicely
+    + for a in *.so; do if /opt/gcc/bin/objdump -x $a | grep DIRECT >& /dev/null; then echo "$a: direct"; else echo "$a: no direct"; fi;  done | grep 'no direct'
+	libdb-4.2.so: no direct
+	libdb_java-4.2.so: no direct
+	libxmlsec1-nss.so: no direct
+	libxmlsec1.so: no direct
+
+
+A diff of LD_DEBUG=bindings
+    + LD_DEBUG=bindings xml2cmp -types stdout ../../../unxlngi6.pro/misc/vbaobj.xml >& /tmp/indirect
+
+michael@linux:/opt/OpenOffice/src680-m140/sc/source/ui/vba> diff /tmp/direct.2nd /tmp/indirect.2nd 
+1135c1135
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL4cerrE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL4cerrE'
+
+	This is (apparently) a static variable [ tagged extern in the header ]
+	    cf. STLport-4.5/lib/obj/GCC/ReleaseD/iostream.o:
+		    000002a0 g     O .bss   00000064 _ZN4_STL4cerrE
+		STLport-4.5/src/iostream.cpp: _STLP_DECLSPEC ostream cerr(0);
+	    cf. Every instance in xml2cmp/unxlngi6.pro/obj/*:
+		00000000         *UND*  00000000 _ZN4_STL4cerrE
+	    Do we link with 2 copies - 1 static, 1 dynamic ?
+
+	    g++ -Wl,-z,combreloc -Wl,-z,defs -Wl,-rpath,'$ORIGIN' -Wl,-Bdirect -Wl,-export-dynamic -Wl,--noinhibit-exec -L../unxlngi6.pro/lib -L../lib -L/opt/OpenOffice/src680-m140/solenv/unxlngi6/lib -L/opt/OpenOffice/src680-m140/solver/680/unxlngi6.pro/lib -L/opt/OpenOffice/src680-m140/solenv/unxlngi6/lib -L/usr/lib/jvm/java/lib -L/usr/lib/jvm/java/jre/lib/i386 -L/usr/lib/jvm/java/jre/lib/i386/client -L/usr/lib/jvm/java/jre/lib/i386/native_threads -L/usr/X11R6/lib -L/opt/mozilla/lib \
+	    ../unxlngi6.pro/obj/main.o \
+	    ../unxlngi6.pro/obj/cr_html.o \
+	    ../unxlngi6.pro/obj/cr_index.o \
+	    ../unxlngi6.pro/obj/cr_metho.o \
+	    ../unxlngi6.pro/obj/filebuff.o \
+	    ../unxlngi6.pro/obj/parse.o \
+	    ../unxlngi6.pro/obj/xmlelem.o \
+	    ../unxlngi6.pro/obj/xmltree.o \
+	     \
+	     ../unxlngi6.pro/obj/cmdline.o \
+	     ../unxlngi6.pro/obj/heap.o \
+	     ../unxlngi6.pro/obj/sistr.o \
+	     ../unxlngi6.pro/obj/syshelp.o \
+	     ../unxlngi6.pro/obj/badcast.o \
+	     -ldl -lpthread -lm -Wl,-Bdynamic -lstlport_gcc -o ../unxlngi6.pro/bin/xml2cmp
+	     -rwxr-xr-x  1 michael users 152248 2005-11-30 12:20 ../unxlngi6.pro/bin/xml2cmp
+	     -------------
+	     michael@linux:/opt/OpenOffice/src680-m140/xml2cmp/util> objdump -T ../unxlngi6.pro/bin/xml2cmp | grep cerr
+	     08061960 g    DO .bss   00000064              _ZN4_STL4cerrE
+
+	+ Wow - it deliberately creates this duplicate DO .bss symbol [!?] why !?
+
+1158c1158
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL13_Filebuf_base12_M_page_sizeE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL13_Filebuf_base12_M_page_sizeE'
+	+ symbol: _STL::_Filebuf_base::_M_page_size
+	    + again undefined in xml2cmp's *.o
+
+ 
+1160c1160
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_base6badbitE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL8ios_base6badbitE'
+1286c1286
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL8numpunctIcE2idE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL8numpunctIcE2idE'
+1294c1294
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL7codecvtIcc15__stl_mbstate_tE2idE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL7codecvtIcc15__stl_mbstate_tE2idE'
+1301c1301
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL4coutE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL4coutE'
+1347c1347
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_base7goodbitE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL8ios_base7goodbitE'
+
+	symbol: _STL::ios_base::goodbit
+
+1360c1360
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL5ctypeIcE2idE'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL5ctypeIcE2idE'
+1440c1440
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci'
+1442c1442
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE5uflowEv'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE5uflowEv'
+1444,1445c1444,1445
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci'
+<       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE10_M_xsputncEci'
+---
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci'
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE10_M_xsputncEci'
+2334a2335,2380
+>       7507:   binding file xml2cmp to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci'
+>       7507:   binding file /libstlport_gcc.so to /lib/tls/libc.so.6: normal symbol `putc' [GLIBC_2.0]
+>       7507:   binding file xml2cmp to /usr/lib/libstdc++.so.6: normal symbol `_ZdlPv' [GLIBCXX_3.4]
+>       7507:   binding file xml2cmp to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_base4InitD1Ev'
+>       7507:   binding file xml2cmp to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_base9_Loc_initD1Ev'
+>       7507:   binding file /lib/tls/libc.so.6 to /lib/tls/libc.so.6: normal symbol `free' [GLIBC_2.0]
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_base15_S_uninitializeEv'
+>       7507:   binding file /libstlport_gcc.so to xml2cmp: normal symbol `_ZN4_STL9basic_iosIcNS_11char_traitsIcEEE5rdbufEPNS_15basic_streambufIcS2_EE'
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_SgI20stdio_streambuf_baseD2Ev'
+>       7507:   binding file /libstlport_gcc.so to /lib/tls/libc.so.6: normal symbol `fflush' [GLIBC_2.0]
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIcNS_11char_traitsIcEEED2Ev'
+>       7507:   binding file /libstlport_gcc.so to /usr/lib/libstdc++.so.6: normal symbol `_ZdlPv' [GLIBCXX_3.4]
+>  com.sun.star.uno.XComponentContext      7507:        binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL13basic_filebufIwNS_11char_traitsIwEEE5closeEv'
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL13_Filebuf_base8_M_closeEv'
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL13basic_filebufIwNS_11char_traitsIwEEE21_M_deallocate_buffersEv'
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL15basic_streambufIwNS_11char_traitsIwEEED2Ev'
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_baseD2Ev'
+>       7507:
+>       7507:   calling fini: /lib/libdl.so.2 [0]
+>       7507:
+>       7507:   binding file /lib/libdl.so.2 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+>       7507:
+>       7507:   calling fini: /lib/tls/libpthread.so.0 [0]
+>       7507:
+>       7507:   binding file /lib/tls/libpthread.so.0 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+>       7507:
+>       7507:   calling fini: /libstlport_gcc.so [0]
+>       7507:
+>       7507:   binding file /libstlport_gcc.so to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL8ios_base9_Loc_initD1Ev'
+>       7507:   binding file /libstlport_gcc.so to /libstlport_gcc.so: normal symbol `_ZN4_STL6locale15_S_uninitializeEv'
+>       7507:
+>       7507:   calling fini: /usr/lib/libstdc++.so.6 [0]
+>       7507:
+>       7507:   binding file /usr/lib/libstdc++.so.6 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+>       7507:
+>       7507:   calling fini: /lib/tls/libm.so.6 [0]
+>       7507:
+>       7507:   binding file /lib/tls/libm.so.6 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+>       7507:
+>       7507:   calling fini: /lib/libgcc_s.so.1 [0]
+>       7507:
+>       7507:   binding file /lib/libgcc_s.so.1 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+>       7507:
+>       7507:   calling fini: /lib/tls/libc.so.6 [0]
+>       7507:
+
+
+
+$ objdump -T `which xml2cmp` | grep '_ZN4_STL4cerrE'
+08061960 g    DO .bss   00000064              _ZN4_STL4cerrE
+$ objdump -T /opt/OpenOffice/src680-m140/solver/680/unxlngi6.pro/lib/libstlport_gcc.so | grep 'STL4cerr'
+000c5200 g    DO .bss   00000064  Base        _ZN4_STL4cerrE
+
+	 URK !? - why !? - what is the linker thinking ?
+
+    + bfd: syms.c:
+	    'DO' == BSF_OBJECT && BSF_DYNAMIC
+
+elf.c:
+      else if ((flags & BSF_OBJECT) != 0)
+	type = STT_OBJECT;
+
+
+<micha> That should be the COPY relocs, right?
+<micha> Accessing global data from shared apps needs to produce a COPY
+reloc in the app and of course the associated space (of the size of
+the symbol) in .bss
+<michael_> quite possibly,
+<michael_> it's something I didn't understand,
+* michael_ needs to learn about COPY relocs,
+* michael_ has no real idea why it is necessary to have a COPY reloc,
+<micha> Ah, I can explain that ;)
+<michael_> but - what I do see, is that eg. libstlport's -Bdirect
+links directly to it's copy of 'cerr' and the main app to it's ;-)
+<michael_> => seriously bad things happen,
+<micha> That shouldn't happen, right.  Every reference to such symbol
+needs to refer to the copy of the app.
+<michael_> right;
+<michael_> but - presumably this also wastes a ton of space ?
+* michael_ wonders how much .bss bloat gets caused by this,
+<michael_> all vtables are 'DO' it seems
+<michael_> I guess it's only for things referred to in the main app
+though; so ...
+<micha> Hmm, wait, I can't explain it fully if I think about it.  It's
+a i386 ABI only thingy, and applies only to apps which themself are
+not compiled PIC, i.e. refer to the symbol in question directly,
+instead of using the GOT.
+
+    + Can we elide potential COPY_RELOCs - by skipping
+	+ 'D' symbols in dl-lookup.c ? yes - is this slow though ?
+
+    + How many 'D' symbols are we talking about ?
+	+ how many relocs point to them ?
+	+ more relocstat maths ?
+
+
+** LD_PRELOAD investigation ...
+
+*** An LD_PRELOAD has the following effect:
+
+michael@linux:/opt/gcc/src/test> LD_LIBRARY_PATH=. LD_DEBUG=direct LD_PRELOAD=/opt/gnome/lib/libgtk-x11-2.0.so:/opt/gnome/lib/libORBit-2.so:/opt/gnome/lib/libglib-2.0.so ./ld-linux.so.2 ./app 2>&1 | grep Append
+     25334:     Append object 0 ''
+     25334:     Append object 1 '/opt/gnome/lib/libgtk-x11-2.0.so'
+     25334:     Append object 2 '/opt/gnome/lib/libORBit-2.so'
+     25334:     Append object 3 '/opt/gnome/lib/libglib-2.0.so'
+
+    + Hence by storing map->npreloads
+	- we can foo the baa ?
+	+ just by taking 1->npreloads from l_searchlist.r_list ...x
+
+    + What happens for the other libraries though ?
+	+ 'openaux' - calling into libc ...
+
+     25334:     Append object 4 './liblib.so'
+     25334:     Append object 5 './libfixup.so'
+     25334:     Append object 6 './libb.so'
+     25334:     Append object 7 './liba.so'
+     25334:     Append object 8 '/usr/lib/libstdc++.so.6'
+     25334:     Append object 9 '/lib/tls/libm.so.6'
+     25334:     Append object 10 '/lib/libgcc_s.so.1'
+     25334:     Append object 11 '/lib/tls/libc.so.6'
+     25334:     Append object 12 '/opt/gnome/lib/libgdk_pixbuf-2.0.so.0'
+     25334:     Append object 13 '/opt/gnome/lib/libgdk-x11-2.0.so.0'
+     25334:     Append object 14 '/opt/gnome/lib/libpangocairo-1.0.so.0'
+     25334:     Append object 15 '/opt/gnome/lib/libpango-1.0.so.0'
+     25334:     Append object 16 '/opt/gnome/lib/libatk-1.0.so.0'
+     25334:     Append object 17 '/opt/gnome/lib/libgobject-2.0.so.0'
+     25334:     Append object 18 '/opt/gnome/lib/libgmodule-2.0.so.0'
+     25334:     Append object 19 '/lib/libdl.so.2'
+     25334:     Append object 20 '/usr/lib/libcairo.so.2'
+     25334:     Append object 21 '/usr/lib/libfreetype.so.6'
+     25334:     Append object 22 '/usr/lib/libfontconfig.so.1'
+     25334:     Append object 23 '/usr/X11R6/lib/libXrender.so.1'
+     25334:     Append object 24 '/usr/X11R6/lib/libX11.so.6'
+     25334:     Append object 25 '/usr/X11R6/lib/libXext.so.6'
+     25334:     Append object 26 '/usr/lib/libpng12.so.0'
+     25334:     Append object 27 '/lib/libz.so.1'
+     25334:     Append object 28 '/usr/lib/libglitz.so.1'
+     25334:     Append object 29 '/usr/lib/libpopt.so.0'
+     25334:     Append object 30 '/opt/gnome/lib/libgthread-2.0.so.0'
+     25334:     Append object 31 '/lib/tls/libpthread.so.0'
+     25334:     Append object 32 './ld-linux.so.2'
+     25334:     Append object 33 '/usr/X11R6/lib/libXrandr.so.2'
+     25334:     Append object 34 '/usr/X11R6/lib/libXi.so.6'
+     25334:     Append object 35 '/usr/X11R6/lib/libXinerama.so.1'
+     25334:     Append object 36 '/usr/X11R6/lib/libXcursor.so.1'
+     25334:     Append object 37 '/usr/X11R6/lib/libXfixes.so.3'
+     25334:     Append object 38 '/opt/gnome/lib/libpangoft2-1.0.so.0'
+     25334:     Append object 39 '/usr/lib/libexpat.so.0'
+
+Fixme:
+    map->l_faked (?!)
+	+ affects order of l_searchlist ...
+	+ 'preloads' - local to 'dl_main'
+		+ do_preload called a lot.
+	+ discarded after use ...
+
+    + how does the recursive load of sub-libraries work ?
+	+ do they get preloads ?
+	+ openaux - calling into libc itself ?
+	    + => no debug (?)
+		+ openaux
+		    -> (dl-load.c): _dl_map_object
+		    -> always passes '0' for preloaded.
+			-> [ a boolean anyway ]
+		    -> _dl_new_object
+	+ how do dependant libs get their
+	  l_searchpath setup ?, or even their
+	  direct section ?
+	+ 'dl_open_worker'
+	    + calls dl_map_object_deps ...
+
+    + Where does the searchlist come from !?
+
+
+
+*** No reliable timing is possible on SL 10.0 ...
+    + the thing is impossible ...
+        + use the 'gettimeofday' patch ?
+
+New numbers:
+
+LD_BIND_DIRECT - no redirect:
+
+003250 1 } PERFORMANCE - DesktopOpenClients_Impl()
+003732 1 } PERFORMANCE - DesktopOpenClients_Impl()
+003243 1 } PERFORMANCE - DesktopOpenClients_Impl()
+003666 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+
+
+LD_BIND_DIRECT & after 'redirect'
+
+005086 1 } PERFORMANCE - DesktopOpenClients_Impl()
+004942 1 } PERFORMANCE - DesktopOpenClients_Impl()
+004747 1 } PERFORMANCE - DesktopOpenClients_Impl()
+004755 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+005086 004942 004747 004755 + + + p 4 / p
+Avg: 4882ms
+
+
+** (re-install) package **
+
+rpm -U --replacefiles --replacepkgs ...
+
+
+no LD_BIND_DIRECT:
+006361 1 } PERFORMANCE - DesktopOpenClients_Impl()
+005964 1 } PERFORMANCE - DesktopOpenClients_Impl()
+006172 1 } PERFORMANCE - DesktopOpenClients_Impl()
+006324 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+006361 005964 006172 006324 + + + p 4 / p
+
+Avg: 6205ms
+
+Saving: 1325ms
+
+With a heavily instrumented, consistent glibc RPM:
+I get:
+
+    7414:     _dl_map_object_deps ''
+      7414:     Append object 0 ''
+      7414:     Append object 1 '/opt/gnome/lib/libglib.so'
+      7414:     Append object 2 '/lib/tls/librt.so.1'
+      7414:     Append object 3 '/lib/libacl.so.1'
+      7414:     Append object 4 '/lib/libselinux.so.1'
+      7414:     Append object 5 '/lib/tls/libc.so.6'
+      7414:     Append object 6 '/lib/tls/libpthread.so.0'
+      7414:     Append object 7 '/lib/ld-linux.so.2'
+      7414:     Append object 8 '/lib/libattr.so.1'
+      7414:      no dl_direct set 0
+      7414:     
+      7414:     calling init: /lib/tls/libpthread.so.0
+      7414:     
+      7414:     
+      7414:     calling init: /lib/tls/libc.so.6
+      7414:     
+      7414:     
+      7414:     calling init: /lib/libattr.so.1
+      7414:     
+      7414:     
+      7414:     calling init: /lib/libselinux.so.1
+      7414:     
+      7414:     
+      7414:     calling init: /lib/libacl.so.1
+      7414:     
+      7414:     
+      7414:     calling init: /lib/tls/librt.so.1
+      7414:     
+      7414:     
+      7414:     calling init: /opt/gnome/lib/libglib.so
+      7414:     
+      7414:     
+      7414:     initialize program: /bin/ls
+      7414:     
+      7414:     
+      7414:     transferring control: /bin/ls
+      7414:     
+      7414:     _dl_map_object_deps '/lib/libnss_compat.so.2'
+      7414:     Append object 0 '/lib/libnss_compat.so.2'
+      7414:     Append object 1 '/lib/libnsl.so.1'
+      7414:     Append object 2 '/lib/tls/libc.so.6'
+      7414:     Append object 3 '/lib/ld-linux.so.2'
+      7414:      no dl_direct set 0
+      7414:     
+      7414:     calling init: /lib/libnsl.so.1
+      7414:     
+      7414:     
+      7414:     calling init: /lib/libnss_compat.so.2
+      7414:     
+      7414:     _dl_map_object_deps '/lib/libnss_nis.so.2'
+      7414:     Append object 0 '/lib/libnss_nis.so.2'
+      7414:     Append object 1 '/lib/libnsl.so.1'
+      7414:     Append object 2 '/lib/libnss_files.so.2'
+      7414:     Append object 3 '/lib/tls/libc.so.6'
+      7414:     Append object 4 '/lib/ld-linux.so.2'
+      7414:      no dl_direct set 0
+      7414:     
+      7414:     calling init: /lib/libnss_files.so.2
+      7414:     
+      7414:     
+      7414:     calling init: /lib/libnss_nis.so.2
+      7414:     
+/dev/null
+
+	ie. _dl_map_object_deps is not called for most objects ...
+	+ however - it is clearly called for all dlopened' ones.
+		=> how is l_searchlist constructed per map ?
+		+ Only 'main' objects have non-NULL l_searchlists ... (clearly)
+		+ => can't be used for 'ld_preload' ?
+			+ can't we have a 'global' preload list though ?
+			+ hence '-z interpose' ?
+		+ simplify the code (?) - perhaps not ...
+			- preload deps of course
+
+
+
+** The salcpprt problem:
+
+	+ salcpprt.lib - 'operators'
+	+ we link 'libsalcpprt.so'
+	+ [ AH ! ... for solaris - no -Bdirect for this ]
+		+ '-z interpose'
+
+	+ On Linux: a static library:
+		+ linked into ~everything.
+
+objdump -t ../unxlngi6.pro/lib/libsalcpprt.a  | grep -v '\*UND\*'
+In archive ../unxlngi6.pro/lib/libsalcpprt.a:
+
+operators_new_delete.o:     file format elf32-i386
+
+SYMBOL TABLE:
+00000020 g     F .text  0000002a _ZdlPv
+0000010a g     F .text  0000002a _ZdaPv
+00000134 g     F .text  0000002a _Znaj
+0000015e g     F .text  0000002a _ZdaPvRKSt9nothrow_t
+00000188 g     F .text  0000002e _ZnajRKSt9nothrow_t
+000001b6 g     F .text  0000002a _Znwj
+000001e0 g     F .text  0000002a _ZdlPvRKSt9nothrow_t
+0000020a g     F .text  0000002e _ZnwjRKSt9nothrow_t
+00000000 l     F .text  0000001f _Z10deallocatePvRKN105_GLOBAL__N__opt_OpenOffice_ooo_build_build_oob680_m1_sal_cpprt_operators_new_delete.cxx_00000000_3241DF7B15AllocatorTraitsE
+0000004a l     F .text  0000008e _Z8allocatejRKN105_GLOBAL__N__opt_OpenOffice_ooo_build_build_oob680_m1_sal_cpprt_operators_new_delete.cxx_00000000_3241DF7B15AllocatorTraitsE
+00000238 l     F .text  00000034 _Z15default_handlerv
+000000d8 l     F .text  00000032 _Z8allocatejRKN105_GLOBAL__N__opt_OpenOffice_ooo_build_build_oob680_m1_sal_cpprt_operators_new_delete.cxx_00000000_3241DF7B15AllocatorTraitsERKSt9nothrow_t
+00000008 g     O .rodata        00000008 _ZN105_GLOBAL__N__opt_OpenOffice_ooo_build_build_oob680_m1_sal_cpprt_operators_new_delete.cxx_00000000_3241DF7B12ScalarTraits11g_signatureE
+00000000 g     O .rodata        00000008 _ZN105_GLOBAL__N__opt_OpenOffice_ooo_build_build_oob680_m1_sal_cpprt_operators_new_delete.cxx_00000000_3241DF7B12VectorTraits11g_signatureE
+00000000  w    O .data.DW.ref.__gxx_personality_v0      00000004 .hidden DW.ref.__gxx_personality_v0
+00000000 l    d  DW.ref.__gxx_personality_v0    00000000 .group
+00000000 l    d  DW.ref._ZTISt9bad_alloc        00000000 .group
+00000000 l    d  .data.DW.ref.__gxx_personality_v0      00000000 .data.DW.ref.__gxx_personality_v0
+00000000 l    d  .data.DW.ref._ZTISt9bad_alloc  00000000 .data.DW.ref._ZTISt9bad_alloc
+00000000  w    O .data.DW.ref._ZTISt9bad_alloc  00000004 .hidden DW.ref._ZTISt9bad_alloc
--- openoffice.org-2.4.1.orig/ooo-build/doc/misc-macro-function.txt
+++ openoffice.org-2.4.1/ooo-build/doc/misc-macro-function.txt
@@ -0,0 +1,250 @@
+some misc info on various vba functions we don't support ( or that there is some differences ) 
+
+CallByName  - calls methods and/or gets|sets properties of objects
+==========
+doable needs to use introspection and reflection interfaces from uno, all of our objects are uno objects, probably can integrate this directly as a function in ooo-basic to make use of the existing SbUnoObject code
+
+CCur
+====
+in anycase it behaves differently than in Excel e.g.
+output of 
+
+Sub CCur_Sample()
+    Dim A As Double
+    A = 123.456789
+    MsgBox A * 2 
+    MsgBox CCur(A * 2) 
+End Sub
+
+result on openoffice
+
+246.93578
+246.9135
+
+result on excel
+
+246.93578
+246.9136
+
+is the problem just purely a one of rounding, how is the precision controlled? lots of questions but little information
+
+look in basic/source/sbx/sbxcurr.cxx:56 
+
+SbxINT64 ImpGetCurrency( const SbxValues* p ) 
+
+CDec
+====
+this exists on windows openoffice only. The underlying SbxDecimal type has a windows only implementation and seems to use windows api code. 
+
+seems that a decimal type is not part of the c++ standard ( yet ) see http://www2.hursley.ibm.com/decimal/ for more detail
+
+CreateObject
+============
+this function does exist, however it's not the function that is the problem but what it is used for. CreateObject is used for creating ole objects, this only makes sense on windows where these objects exist. Trying to do
+createObject("Word.Application.8") has zero chance of success on linux.... will work on windows openoffice though.
+
+it may make sense to allow access to clones of useful objects in platforms where they are not available e.g. the Script.FileSystem object etc. but that is a different story.
+
+** additionally there is some i18n issue with this which makes it fail in japanese locale
+
+CVErr 
+=====
+works for me ( Debug.print doesn't and hence the runtime error )
+
+DateSerial
+==========
+displays a different value, but it's not the Dateserial function that's at fault but the Format function. 
+
+DateValue 
+=========
+ditto, formatting doesn't appear to use the locale specific date separator(s) ( longdateseparator ) 
+
+not sure exactly where this is handles ( and e.g. it looks like calc does handle this, see cell-format-date types ) so it should be possible to do,
+
+DoEvents
+=========
+absolutely pointless I think, we should stub this but beware 
+   a) doevents is based around whatever event mechanism vba/ms-application uses, we don't have the same model and who knows what kind of edge cases this behaviour can give
+1 day
+
+Error Function ( Feedback required )
+==============
+there is an error function, what's the problem the error text for different error numbers is different? 
+
+if the errors are to be made compatible its not just changing text and associated number, there will be a ripple affect I guess where the errors are called, also how they are defined
+
+Filter 
+======
+should be roughly like the 'Like' expression ( in terms of the code ) as I suspect this will also take wildcards
+
+Format
+=======
+Format already exists, the test exhibits one sub piece of functionality that is missing/different to implement this piece 'Long Date' as a format type.
+
+see notes on SvNumberFormatter below
+
+also the format function in basic always falls into 
+
+FormatCurrency Function
+=======================
+everything required seems to be already supported by the number formatter, we just need to expose that code here ( see cell->format ) 
+e.g. groupdigits is the thousands check box, 
+with params
+NumDigitsAfterDecimal(2), IncludeLeadingDigit(0), parensfornegativenumbers (true), groupdigits(true)
+
+you could form the following format string
+#,##0.00;(#,##0.00)
+
+****  NOTE *****
+there is an issue with all of the Formatxxxx methods that there are defaults to the system regional settings, in openoffice these 'regional' settings are not used, instead each locale has predefined formats for those.
+
+you would think that this should not be a problem as generally you do not want your functions to be influenced by the regional setting ( as these can be different between differnet users/computers )
+
+but if forced we could I guess use bits from the old pre-i18n framework code which according to Eike is in the International class in /cvs/util/tools/source/intntl/Attic/* 
+( no idea what state that code is in )
+
+FormatDateTime
+=============
+there is a small difference according to kohei
+"except that the second ( longdate format ) line has the day of a week in
+parens appended to the end in Calc, while Excel doesn't display the day
+of a week."
+it should be possible to either modify the data in i18npool/source/localedata/data/ja_JP.xml or pass the desired format directly to the numberformatter
+
+FormatNumber
+============
+see comments in FormatCurrency
+
+FormatPercent
+=============
+see comments in FormatCurrency
+
+GetAllSettings 
+==============
+only possible to use our own registry, either using the configuration or berkelydb
+
+GetAttr
+=======
+Archive or System types are not detected on windows, additioanlly on systems where hidden doesn't make sense this probably won't work, need to add window specific code at least to handle the archive type
+currently uses the ucb (or filestat ) to detect the attributes for 
+readonly, hidden, directory
+
+GetObject
+=========
+similar to CreateObject, but seems a little different, vote no!! even to implement a windows implementation is only ever possible
+
+
+GetSettings & SaveSetting
+===========
+associated with GetAllSettings ( all part of the same bag )
+
+IMEStatus
+=========
+just saying no
+
+Monthname
+========
+needs localisation in i18npool/source/localedata/data/ja_JP.xml
+
+Partition
+=========
+funny function that seems to have an adequate explanation, also I suspect some edgy cases
+
+QBColor
+=======
+This is marked as not working in MSOffice, ( due to a bug in the test macro )
+works but needs to be modified in openoffice
+
+an alternative table needs to be defined to be used when the compatibility option is set. see RTLFUNC(QBColor) in basic/source/runtime/methods.cxx
+
+Replace
+========
+seems like simple search/replace functionality should be plenty of examples in the code
+
+Seek
+====
+need to detect when the file doesn't exist and return ( whatever excel does *1* i think ) in that case.
+
+StrConv 
+=======
+according to kohei
+"Actually, Writer already provides the same functionality in Format >
+Change Case.  There is full<->half width conversion, and Hiragana
+Katakana conversion there.  So, the code must be lying somewhere, or it
+may even be available via UNO...."
+
+we just need to find it ;-)
+
+also the LCID are defined by
+http://support.microsoft.com/?kbid=221435 
+Tab
+===
+should be similar to Spc 
+refer to RTLFUNC(Spc) in basic/source/runtime/methods.cxx
+method looks like it should more or less be a copy ( e.g. share code ) except instead of using spaces we use tab in this case 
+
+Time
+=====
+it should be possible to either modify the data in i18npool/source/localedata/data/ja_JP.xml or pass the desired format directly to the numberformatter, verified that changing the first time format to include seconds ":ss" works
+
+Timer
+=====
+result is quite differnt 
+it displays a date
+
+TypeName
+========
+works nearly the same, 
+a) doesn't detect ole object type 
+b) returns object as the type of Object when the Object is null, in vba the return is 'Nothing'
+
+Val
+===
+different results
+according to excel help val should only read up to something it doesn't understand e.g. ',' then it should stop and evalate that
+
+
+some notes on the Number formatter
+==================================
+
+access to localized date formats ( and also various number formats ) is via the SvNumberFormater ( svtools/source/numbers/zforlist.cxx ) class
+ ( which in turn also uses the  NumberFormatCodeWrapper ( unotools/source/i18n/numberformatcodewrapper.cxx )
+
+
+the date format codes are sorted and stored against indices representing there function like NF_DATE_SYSTEM_LONG ( long date format ), available codes are gathered e.g. in 
+
+SvNumberFormatter::ImpGenerateFormats():2354 
+	aNumberFormatCode.getAllFormatCode() ( sucks in the format codes from the i18n locale service )
+
+then there is a strange operation
+	mpAdjustFormatCodeDefault() that does the sorting ( I think ) 
+
+
+the number formatter uses the underlying data for the locale as generated from e.g. i18npool/source/localedata/data/ja_JP.xml into i18npool/unxlngi6.pro/misc/localedata_ja_JP.cxx
+thing lik localization of month, day, era etc. date & currency formats etc. all live in this file.
+
+interestingly the default format for say the long date is not what the number format uses when you try and uses in FormatDateTime
+
+e.g. ULONG nIndex = pFormatter->GetFormatIndex( NF_DATE_SYSTEM_LONG, eLangType );
+
+it seems to pick up the *first* format for the type e.g. the first DateFormat for the long date in the case above. ( that doesn't seem correct )
+
+
+useful entry points
+
+BOOL SvNumberFormatter::IsNumberFormat(const String& sString,
+									   sal_uInt32& F_Index,
+									   double& fOutNumber)
+
+you can stick any string in here ( like a string date ) and get a converted to a number.
+
+To apply a specific format to a number ( and remember that number could be a double date ) you could try 
+
+BOOL SvNumberFormatter::GetPreviewString(const String& sFormatString,
+										 double fPreviewNumber,
+										 String& sOutString,
+										 Color** ppColor,
+										 LanguageType eLnge)
+
+there must be also another direct way to do this I guess, but I didn't find it
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/accessibility.txt
+++ openoffice.org-2.4.1/ooo-build/doc/accessibility.txt
@@ -0,0 +1,81 @@
+Accessibility: towards a Free software (Java-free) future.
+
+    The crucial a11y code in OO.o will not be adopted due to the
+painful Java requirement, these are some notes on potentially
+circumventing this, and bridging directly to at-spi.
+
+* code
+
+accessibility/bride/org/openoffice/
+    accessibility/*
+	Windows related accessibility code ?
+    java/accessibility/*
+	Java mapping from UNO <-> Java bindings.
+
+
+accessibility/
+
+offapi/com/sun/star/accessibility/
+	XAccessibleContent.idl: equivalent to Accessible.idl
+	XAccessibleComponent.idl: AccessibleComponent.idl
+etc.
+	What is required is simply a _lot_ of typing / type-mapping.
+
+
+Hooks into the toolkit done with eg.:
+	unoToolkit.addKeyHandler(new KeyHandler());
+
+desktop/source/app/app.cxx (Main)
+    <-> vcl/source/app/settings.cxx (MiscSettings::GetEnableATToolSupport):
+    -> vcl/source/app/svapp.cxx (InitAccessBridge)
+        -> vcl/source/app/svdata.cxx (ImplInitAccessBridge):
+
+        ImplSVData* pSVData = ImplGetSVData();
+        if( ! pSVData->mxAccessBridge.is() )
+	    ... re-hashed ...
+                arguments[0] = makeAny(Application::GetVCLToolkit());
+                pSVData->mxAccessBridge = xFactory->createInstanceWithArguments(
+		                OUString::createFromAscii( "com.sun.star.accessibility.AccessBridge" ),
+			            arguments 
+				    );
+		...
+                    
+This jumps into:
+     accessibility/bridge/org/openoffice/accessibility/AccessBridge.java (initialize)
+
+	We need to replace it with a C++ component that bridges direct
+to atk: what fun. The 'AccessBridge' class is itself the main listener
+it seems; follow a similar structure.
+
+	Clobber with 'SAL_ACCESSIBILITY_ENABLED'
+
+    We need to register a toplevel handler with atk [ as gail does ]
+
+A11y wrapper:
+    + needs to have a bi-directional hash:
+	XAccessible <-> AtkObject
+    + lookup in that first.
+	+ then interogate an accessible
+	    + create a wrapper.
+
+
+* How about:
+
+    + assume gail usage
+	    + use only with the gtk+ backend;
+		+ fallback to Java for KDE/gen (?)
+
+    + clobber the a11y factory
+	    + hook into that;
+	    + implement the code in vcl/unx/gtk/ ?
+
+    + Have verified
+	    - there are a reasonable number of toplevels
+	    + this is a sensible thing to do :-)
+
+
+** FIXME
+	+ need to audit all types of events atk needs
+	  to expose & what we are expected to produce.
+
+	+ assuming - nothing much at the root node ...
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/avmedia.txt
+++ openoffice.org-2.4.1/ooo-build/doc/avmedia.txt
@@ -0,0 +1,33 @@
+avmedia is a UNO component for audio/video media playing
+
+Lives in avmedia/
+
+Provides com.sun.star.comp.avmedia.* services/interfaces
+
+  - Manager
+  - Player
+  - PlayerWindow
+  - FrameGrabber
+
+It is used in sd, slideshow modules
+
+Impress uses it for sounds on slide transition and for embedded a/v objects
+
+Porting to gstreamer:
+
+ - added gstreamer backend to avmedia module
+ - added it to scp2
+ - modified sd to use gstreamer
+
+TODO:
+
+ - implement FrameGrabber (not sure if it is even used)
+
+Notes:
+
+ - Insert / Object / [ Sound, Video ] are disabled now (in
+   sd/source/ui/view/drviews7.cxx). Comment says they are disabled
+   because of a missing plugin. Looks like another redundancy. I guess
+   I remove these as the Insert / Movie and Sound menuitem provides
+   everything we need AFAIK. (when forced enabled, it adds a general
+   object image - from kind of broken filechooser)
--- openoffice.org-2.4.1.orig/ooo-build/doc/template.txt
+++ openoffice.org-2.4.1/ooo-build/doc/template.txt
@@ -0,0 +1,87 @@
+Template startup issue: was:
+	 $ soffice.bin slot:5500 
+
+Now has screwed up lifecycle.
+
+the desktop/source/app/dispatchwatcher.cxx does:
+
+	// No more asynchronous requests?
+	// The requests are removed from the request container after they called back to this
+	// implementation via statusChanged!!
+    if ( !m_nRequestCount /*m_aRequestContainer.empty()*/ )
+	{
+		// We have to check if we have an open task otherwise we have to shutdown the office.
+        Reference< XFramesSupplier > xTasksSupplier( xDesktop, UNO_QUERY );
+        aGuard.clear();
+
+		fprintf( stderr, "dispatchwatcher: check for open tasks\n" );
+
+        Reference< XElementAccess > xList( xTasksSupplier->getFrames(), UNO_QUERY );
+
+        if ( !xList->hasElements() )
+		{
+			fprintf( stderr, "dispatchwatcher: apparently no open tasks => terminate [!]\n" );
+
+			// We don't have any task open so we have to shutdown ourself!!
+			Reference< XDesktop > xDesktop( xTasksSupplier, UNO_QUERY );
+			if ( xDesktop.is() )
+				xDesktop->terminate();
+		}
+	}
+
+And quits before the toplevel has properly registered.
+
+The templates & documents code is in:
+    svtools/source/contrn/templwin*
+
+Running the dialog trace is:
+
+#0  0xffffe410 in ?? ()
+#1  0xbfffd9b8 in ?? ()
+#2  0x000000f9 in ?? ()
+#3  0x00000007 in ?? ()
+#4  0x42305558 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+#5  0x423056c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
+#6  0x41e78832 in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#7  0x423d505f in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#8  0x40165732 in Application::Yield () from ./libvcl680li.so
+#9  0x402c2640 in Dialog::Execute () from ./libvcl680li.so
+#10 0x43ec7c50 in SfxApplication::NewDocExec_Impl () from ./libsfx680li.so
+#11 0x43ecf97a in SfxStubSfxApplicationNewDocExec_Impl () from ./libsfx680li.so
+#12 0x440371e3 in SfxDispatcher::Call_Impl () from ./libsfx680li.so
+#13 0x44038364 in SfxDispatcher::_Execute () from ./libsfx680li.so
+#14 0x44039389 in SfxDispatcher::Execute () from ./libsfx680li.so
+#15 0x440307cd in SfxDispatchController_Impl::dispatch () from ./libsfx680li.so
+#16 0x4402e8cd in SfxOfficeDispatch::dispatchWithNotification () from ./libsfx680li.so
+#17 0x0809d425 in desktop::DispatchWatcher::executeDispatchRequests (this=0x8462ff0, aDispatchRequestsList=@0xbfffe350)
+    at /opt/OpenOffice/src680-m79/desktop/source/app/dispatchwatcher.cxx:473
+#18 0x08093606 in desktop::OfficeIPCThread::ExecuteCmdLineRequests (aRequest=@0xbfffe3c0)
+    at /opt/OpenOffice/src680-m79/desktop/source/app/officeipcthread.cxx:818
+#19 0x080858b8 in desktop::Desktop::OpenClients () at /opt/OpenOffice/src680-m79/desktop/source/app/app.cxx:2090
+#20 0x08084c9b in desktop::Desktop::OpenClients_Impl (this=0xbfffed20, pvoid=0x0)
+    at /opt/OpenOffice/src680-m79/desktop/source/app/app.cxx:1889
+#21 0x08084c8e in desktop::Desktop::LinkStubOpenClients_Impl (pThis=0xbfffed20, pCaller=0x0)
+    at /opt/OpenOffice/src680-m79/desktop/source/app/app.cxx:1885
+#22 0x4033688f in ImplHandleUserEvent () from ./libvcl680li.so
+#23 0x403373bf in ImplWindowFrameProc () from ./libvcl680li.so
+#24 0x423d0b5b in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
+#25 0x41e786a2 in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
+#26 0x42301221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#27 0x42302e87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#28 0x423055c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+#29 0x423056c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
+#30 0x41e78832 in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#31 0x423d505f in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#32 0x40165732 in Application::Yield () from ./libvcl680li.so
+#33 0x40165649 in Application::Execute () from ./libvcl680li.so
+#34 0x08083d14 in desktop::Desktop::Main (this=0xbfffed20) at /opt/OpenOffice/src680-m79/desktop/source/app/app.cxx:1674
+#35 0x4016b3c0 in SVMain () from ./libvcl680li.so
+#36 0x0807c80d in sal_main ()
+#37 0x0807c7bc in main ()
+
+
+framework/source/services/desktop.cxx (getFrames)
+    wrapper for 'OFrames *pFramesHelper'
+    only accessed via getFrames, wraps: -> m_aChildTaskContainer
+	getFrames-> container allows 'append' & 'remove'
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/vfs-thread.txt
+++ openoffice.org-2.4.1/ooo-build/doc/vfs-thread.txt
@@ -0,0 +1,110 @@
+Threading problems with gnome-vfs & initialization
+    + could it be gconf causing problems ?
+
+gconf_orb = CORBA_ORB_init (&argc, argv, "orbit-local-orb", &ev);
+    + nope - the ORB is thread-safe by default
+	+ also does a g_thread_init
+	=> fine ...
+
+static void
+gnome_vfs_thread_init (void)
+{
+	private_is_primary_thread = g_private_new (NULL);
+	g_private_set (private_is_primary_thread, GUINT_TO_POINTER (1));
+	
+	_gnome_vfs_module_callback_private_init ();
+	
+	_gnome_vfs_async_job_map_init ();
+	_gnome_vfs_thread_pool_init ();
+	_gnome_vfs_job_queue_init ();
+}
+
+** And **
+
+gboolean
+gnome_vfs_is_primary_thread (void)
+{
+	if (g_thread_supported()) {
+		return GPOINTER_TO_UINT(g_private_get (private_is_primary_thread)) == 1;
+	} else {
+		return TRUE;
+	}
+}
+    + gnome_vfs_is_primary_thread not called explicitely
+
+*** URGH ***
+    + #define GNOME_VFS_ASSERT_PRIMARY_THREAD g_assert (gnome_vfs_is_primary_thread())
+    + #define GNOME_VFS_ASSERT_SECONDARY_THREAD g_assert (!gnome_vfs_is_primary_thread())
+    + not used inside gnome-vfs itself either ...
+
+Hmm...
+
+gboolean 
+gnome_vfs_init (void)
+{
+ 	if (!g_thread_supported ())
+ 		g_thread_init (NULL);
+	gnome_vfs_thread_init ();
+	if (bonobo_activation_orb_get() == NULL)
+	    bonobo_activation_init (0, bogus_argv);
+	bonobo_init (NULL, bogus_argv);
+	retval = gnome_vfs_method_init ();
+	retval = _gnome_vfs_configuration_init ();
+	signal (SIGPIPE, SIG_IGN);
+}
+
+=> ORB initialization ...
+    + assuming we initialize the ORB 1st ...
+	+ that -does- store a 'primary thread' concept.
+
+    + giop.c (giop_init)
+	+ sets 'giop_main_thread' to be the one with the
+	  g_main_context_default() association;
+	+ sets that thread's thread data to be that ...
+
+
+=> Using PostUserEvent:
+
+
+BOOL Application::PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData )
+{
+    ImplSVEvent* pSVEvent = new ImplSVEvent;
+    pSVEvent->mnEvent   = nEvent;
+    pSVEvent->mpData    = pEventData;
+    pSVEvent->mpLink    = NULL;
+    pSVEvent->mpWindow  = NULL;
+    pSVEvent->mbCall    = TRUE;
+    rEventId = (ULONG)pSVEvent;
+    if ( ImplGetDefaultWindow()->ImplGetFrame()->PostEvent( pSVEvent ) )
+        return TRUE;
+    else
+    {
+        rEventId = 0;
+        delete pSVEvent;
+        return FALSE;
+    }
+}
+
+-> 
+
+BOOL GtkSalFrame::PostEvent( void* pData )
+{
+	getDisplay()->SendInternalEvent( this, pData );
+	return TRUE;
+}
+
+vcl/unx/source/app/saldisp.cxx:
+void SalDisplay::SendInternalEvent( SalFrame* pFrame, void* pData, USHORT nEvent )
+{
+    if( osl_acquireMutex( hEventGuard_ ) )
+    {
+        m_aUserEvents.push_back( SalUserEvent( pFrame, pData, nEvent ) );
+
+		// Notify SalXLib::Yield() of a pending event.
+		pXLib_->PostUserEvent();
+
+        osl_releaseMutex( hEventGuard_ );
+    }
+}
+
++ pushes to m_aUserEvents ...
--- openoffice.org-2.4.1.orig/ooo-build/doc/perform.txt
+++ openoffice.org-2.4.1/ooo-build/doc/perform.txt
@@ -0,0 +1,100 @@
+** Slow things for no reason:
+
+   + 'libunoexcept.so'
+	+ -all- exception type data in here ...
+	+ really early in the link chain
+	    + ~all UNO plugins => loaded as 'local' modules.
+	    + 1 method:
+		+ extern "C" megaThrow ():
+		    + try { throw (a); } catch () {};
+		      etc...
+
+
+   600 million cycles:
+	+ desktop::FirstStart::execute
+	+ svt::RoadmapWizard::RoadmapWizard
+		+ [foo] - bogus ? just hides vcl init ...
+
+
++ Why load the VCL resource file before showing splash
+    + only then load intro.bmp [why?]
+    + mainapp_16.png ? - is it the WM icon ?
+	+ can we defer that ?
+	    [ save 12ms + seeks: ]
+	    + libfileacc.so - 2
+	    + stat program/res/ - 1
+	    + stat share/config/res - 1
+	    + resource/vcl680en-US.res
+		+ 2 + read/seek/read - 2
+
+    + do the force-into-memory thing for types.rdb & services.rdb
+
++ Manual edit of ~/.setup.xcu with vi - works, settings still persists
+
+OO.o potential performance issues:
+	+ loads of bogus lseeking to see if we've hit EOF
+	  in resource file reading [ screws with kernel
+	  readahead ]
+		+ these files are not dynamic anyway [!]
+		+ we have already statted them before opening.
+	+ load all soffice.cfg/modules/swriter/* toolbar info
+		+ however - we only need a few toolbars,
+			+ can we not load/parse as needed ?
+			[ + do we need names for menu or something ? ]
+	+ load _lots_ of configuration data:
+		+ do we need it all ? [ are we sure ? ]
+
+	+ GL.so - who is loading that on startup & why ?
+	+ VCL dependency pruning:
+		+ libsndfile.so.1, libportaudio.so.0 (nas?)
+		+ hack plugin code into salsound2.cxx
+		    + dyload them as needed.
+		+ [ sndfile == 300kb+ ] portaudio == small.
+		+ dlopen sndfile as needed,
+			+ static link portaudio if non-system
+		+ cut at 'X11SalInstance::CreateSalSound' ?
+	+ psprint
+		+ jvmfwklib
+	+ SVX deps pruning
+		+ libavmedia - linked in (why?)
+
+	+ Java deps too entrenched to prune:
+		+ sj2 (libj680li_g.so) -> automation, basic, sfx2, so3 - odd.
+			depends on jvmaccesslib
+		+ jvmaccesslib / jvmfwk - in vcl, psprint, desktop, svx
+
+TODO:
+	+ analyse all libraries loaded on writer startup
+		+ grep 'open("' /tmp/newlog  | grep -v 'ENOENT' | grep -v '<unfinished>'
+	+ re-analyse for running 'soffice' not soffice.bin [!]
+
+** osl_psz_loadModule
+	+ loads simplereg, nestedreg twice too ...
+	+ configmgr2.uno.so - 12x
+	+ libgcc3_uno.so - 21x 
+	+ libfwk - 15x
+	+ libsvt - 3x
+	+ Duplicate opens are fairly low-cost
+		- reading glibc/elf/* - not a problem ...
+
+0.000040 0.46013 open("/usr/lib/libjpeg.so.62", O_RDONLY) = 3 [28330]	- why - do we load any jpegs ?
+	+ required by svtools 's source/filter.vcl/jpeg/
+	  [are these used much?]
+
+0.000030 0.00930 open("./libjvmfwk.so.3", O_RDONLY) = 3 [28330]	- why load java stuff on startup ?
+0.000031 0.27792 open("./libjvmaccessgcc3.so.3", O_RDONLY) = 3 [28330] - java bits ?
+	+ required by vcl's Java integration foo ...
+		+ could we de-couple that ?
+
+0.000038 0.61595 open("/usr/lib/libxml2.so.2", O_RDONLY) = 3 [28330]	- where do we parse xml this early ?
+
+
+	+ Add timing to registry read / cache bits etc.
+	+ why are we loading libavmedia*.so on startup ?
+	+ check all '.res' files we use & why ...
+		[ what triggers their use ? ]
+
+Thoughts:
+	+ lots of resource file reading
+		+ could we mmap that ?
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/test-ooo.txt
+++ openoffice.org-2.4.1/ooo-build/doc/test-ooo.txt
@@ -0,0 +1,96 @@
+Support for qatesttool in ooo-build
+
+You should start with ooo-build/doc/qatesttool.txt to get more information
+about the qatesttool itself.
+
+Then you should be prepared to do a full test.
+
+
+Current process with ooo-build:
+
+
+1. check our qatesttool for your particular build, for example:
+    
+    ooo-build/bin/tunnel
+    export CVSROOT=:pserver:pmladek@localhost:2401/cvs
+    cvs co -r SRC680_m154 qa/qatesttool
+
+2. install OOo you want to test, for example:
+
+    cd ooo-build-ooc680-m2/bin
+    ./ooinstall
+
+3. configure testtool, for example:
+
+    cp ooo-build-ooc680-m2/doc/testtoolrc.sample $HOME/.testtoolrc
+    /usr/lib/ooo-2.0/program/testtool.bin
+    # fix BaseDir, LogBaseDir, HIDDir in Extra/Settings/Profile
+    # fix OOoProgramDir in Extra/Settings/Generic
+    # stop testtool by File/Exit   [CTRL Q]
+
+4. start the full test:
+
+    ooo-build-ooc680-m2/bin/test-ooo \
+	ooo-build-ooc680-m2/etc/test.list \
+	ooo-build-ooc680-m2/etc/test.blacklist
+    # wait about 4 days until the tests are finished, check it from time
+    # to time ;-)
+
+5. Do a fast analyze of the test results, for example:
+
+    ooo-build-ooc680-m2/bin/test-ooo-analyze <LogBaseDir>/*.res
+
+6. Analyze the test results by hand, report bugs, ...
+
+
+Notes:
+
+1. You can use the script qatesttool/script/unix/OOoTestRun_unix.sh instead of
+   ooo-build/bin/test-ooo. I created the script test-ooo because I would like
+   to add some more features and better integrate the testtool into oobuild,
+   see below.
+
+2. Neither our nor the upstream script runs all the tests. It is because
+   some tests are broken and they even could break the other tests.
+
+   For example, qatesttool/framework/basic/f_basic_protected_libraries.bas.
+   This test breaks the user configuration, so the other tests are affected
+   as well!!!
+
+3. The tests are not well localized. I got much more errors and warnings in
+   cs_CZ.UTF-8 locales. Therefore, ooo-build/bin/test-ooo runs the tests in
+   the en_US.UTF-8 locales. Also the de_DE.UTF-8 locales might be fine but...
+
+
+
+TODO
+
++ test-ooo improvements:
+    + allow to run smoke test
+    + read list of actually supported tests from qatesttool/script/unix/*.sh
+    + allow to change the various things by options:
+	--testtool-bin=
+	--testtool-root=
+	--skip-to-test=
+	--locale=
+	...
+
++ test-ooo-analyze improvements:
+    + better comments
+    + better statistics ???
+    + write statistics into various thematic files ???
+    + some options to get various statistics (only errors, list of tests
+      with errors, ...) ???
+
++ better integration with ooo-build:
+    + pack / unpack src680-mXXX-qa.bz2
+    + add --with-qa configure check
+    + allow to use the setting from ooo-build/bin/setup by the
+      test-ooo* tools
+    + add some makefile targets:
+	make install.testtool
+    	make test
+	make smoketest
+
++ create a standalone (RPM) package with the qatesttool to be usable with a
+  QA department
--- openoffice.org-2.4.1.orig/ooo-build/doc/slideclick.txt
+++ openoffice.org-2.4.1/ooo-build/doc/slideclick.txt
@@ -0,0 +1,65 @@
+Slide navigation:
+
+sd/source/ui/slideshow/slideshowimpl.cxx (gotoNextSlide)
+    calls UNO mxShow->nextSlide
+
+slideshowimpl.cxx: 
+    + Has all the keybindings in it ...
+
+slideshow/source/api/slideshow.cxx (nextEffect):
+
+* Problem (!?)
+    + what happens with '<-' ? there is no 'previousEffect' ...
+
++ notifyNextEffect -> eventmultiplexer.cxx ->
+    notifyHandlers (maNextEffectHandlers)
+	'addNextEffectHandler'
+
+    -> usereventqueue.cxx (ClickEventRegistrationFunctor)
+	+ UserEventQueue::registerNextEffectEvent
+	    + very tangled ...
+
+    + Running through a state machine
+	+ seems to (mostly) run forwads - not B/W
+	+ need to trace the event flow more carefully ...
+
+    + 'addNextEffectHAndler takes 'EventHandlerSharedPtr'
+	-> eventhandler.hxx /handleEvent/ - 1 method.
+	    -> usereventqueue.cxx: 
+		- queue up these events - or de-queue & process -
+		+ the 'registerEvent' foo - passes a method pointer ...
+
+
+
+I just wanted to drop you a line about that "problem" in OpenOffice we
+talked about yesterday in your session at Brainshare. The problem is
+that it doesn't help a lot to have different ways of advancing slides
+between Powerpoint and OpenOffice.
+
+
+The way Powerpoint does it is just that either the cursor keys or the
+space bar advance to the next slide or animation in the current slide.
+
+      [ ie. what space bar does now ... ]
+
+
+ So for example if I would have a
+text box on a slide and would like to have another text box move in
+when I'm finished talking to the first one I just press the "next
+slide" key/button in Powerpoint.  OpenOffice does this different in as
+it also uses the cursor keys/ space bar to go to the next slide but
+would skip that animation on the current slide if you use this
+method. If you want your animations to complete you'd have to use the
+left mouse key.
+
+This becomes even more annoying when using one of these presentation 
+remotes as they emulate the cursor keys
+for controling Powerpoint instead of the left and right mousekey for 
+controling Powerpoint and OpenOffice.
+
+Wouldn't it be great to have either a way of configuring this (luxurious 
+version) or just change this to Powerpoints
+behavior so that converts can feel themselves at home right away and 
+don't get confused a.k.a. frustrated?
+
+I would submit the patch myself would I be able to understand C++ at all :).
--- openoffice.org-2.4.1.orig/ooo-build/doc/link-vis.txt
+++ openoffice.org-2.4.1/ooo-build/doc/link-vis.txt
@@ -0,0 +1,700 @@
+More linking acceleration work (with visibility attribute)
+
+* potential fixes:
+	+ static linking / aggregation & altering library deps etc.
+	    + potentially factor of 10 improvement
+	    + aggregate all non-components used during startup
+	      into 1 monster library:
+		+ ensure this is the 1st entry in the link deps.
+		+ unfortately the largest libraries: libsvx, libsfx
+		  are also components themselves ...
+	    + post-aggregate these (somehow?) & re-link 'desktop'
+		+ how can we re-link that stuff ?
+
+	+ Adding markup: may remove: 5000 more relocations == ~6%
+
+	+ Doing internal compiler fixups - may remove: 20k+ == ~25% speedup
+
+	+ removing libraries from link time
+	    + potential 1/20th improvement per library
+	    + plus - wastefulness: why was it there ?
+	    + should do for audio pieces in vcl
+		- 350K of unused code - force/paged into memory
+
+
+
+
+** Latest worst-offender library results: (preloc):
+
+libvos3gcc3.so : used 31 internal(withsym) 406 total 437
+libsc680li.so : used 1937 internal(withsym) 409 total 2346
+i18npool.uno.so : used 64 internal(withsym) 420 total 484
+libicuuc.so : used 109 internal(withsym) 429 total 538
+libucbhelper3gcc3.so : used 165 internal(withsym) 487 total 652
+libcppcanvas680li.so : used 29 internal(withsym) 490 total 519
+libgo680li.so : used 104 internal(withsym) 500 total 604
+libxsec_xmlsec.so : used 70 internal(withsym) 545 total 615
+libfwe680li.so : used 324 internal(withsym) 546 total 870
+libcomphelp4gcc3.so : used 486 internal(withsym) 566 total 1052
+libsfx680li.so : used 1259 internal(withsym) 622 total 1881
+libxcr680li.so : used 118 internal(withsym) 652 total 770
+libdbu680li.so : used 1649 internal(withsym) 656 total 2305
+libfile680li.so : used 1173 internal(withsym) 742 total 1915
+libfrm680li.so : used 935 internal(withsym) 743 total 1678
+configmgr2.uno.so : used 263 internal(withsym) 764 total 1027
+liblng680li.so : used 256 internal(withsym) 792 total 1048
+slideshow.uno.so : used 72 internal(withsym) 961 total 1033
+libstlport_gcc.so : used 40 internal(withsym) 973 total 1013
+libstdc++.so : used 37 internal(withsym) 1002 total 1039
+libsw680li.so : used 2691 internal(withsym) 1035 total 3726
+
+libicui18n.so : used 103 internal(withsym) 1091 total 1194  - no vis markup
+libso680li.so : used 347 internal(withsym) 1197 total 1544  - no vis markup
+libvcl680li.so : used 631 internal(withsym) 1403 total 2034 - marked up[!]
+libsb680li.so : used 297 internal(withsym) 1455 total 1752  - no vis markup
+
+libsvt680li.so : used 2489 internal(withsym) 2277 total 4766  - marked up[!]
+libsvx680li.so : used 3960 internal(withsym) 5926 total 9886  - marked up[!]
+Total relocs: 92477
+
+was [ Total relocs: 183315 ]
+
+
+
+** Interesting:
+
+#0  osl_psz_loadModule (pszModuleName=0xbfffccb0 "libdtransX11680li.so", nRtldMode=257) at module.c:253
+#1  0x408e3298 in osl_loadModule (ustrModuleName=0x44f5bab0, nRtldMode=257) at module.c:152
+#2  0x408874a3 in cppu::loadSharedLibComponentFactory () from /opt/OOInstall/program/libuno_cppuhelpergcc3.so.3
+#3  0x42054fbd in component_getFactory () from /opt/OOInstall/program/shlibloader.uno.so
+#4  0x408807c4 in cppu::createFactoryProxy () from /opt/OOInstall/program/libuno_cppuhelpergcc3.so.3
+#5  0x40880957 in cppu::createFactoryProxy () from /opt/OOInstall/program/libuno_cppuhelpergcc3.so.3
+#6  0x4203e4a2 in component_getFactory () from /opt/OOInstall/program/servicemgr.uno.so
+#7  0x4203de64 in component_getFactory () from /opt/OOInstall/program/servicemgr.uno.so
+#8  0x401d5a8d in Window::GetDragSource () from /opt/OOInstall/program/libvcl680li.so
+#9  0x401d010b in Window::GetDropTarget () from /opt/OOInstall/program/libvcl680li.so
+#10 0x40b20e34 in non-virtual thunk to VCLXMenu::execute(com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&, com::sun::star::awt::Rectangle const&, short) () from /opt/OOInstall/program/libtk680li.so
+#11 0x43c44ec4 in ?? () from /opt/OOInstall/program/libfwk680li.so
+#12 0x43c45753 in ?? () from /opt/OOInstall/program/libfwk680li.so
+#13 0x43c668d0 in component_getFactory () from /opt/OOInstall/program/libfwk680li.so
+#14 0x43c66b73 in component_getFactory () from /opt/OOInstall/program/libfwk680li.so
+#15 0x43c2a73f in ?? () from /opt/OOInstall/program/libfwk680li.so
+#16 0x43cd6672 in component_getFactory () from /opt/OOInstall/program/libfwk680li.so
+#17 0x43cd6c5d in component_getFactory () from /opt/OOInstall/program/libfwk680li.so
+#18 0x43cd6d16 in component_getFactory () from /opt/OOInstall/program/libfwk680li.so
+#19 0x43c2aa99 in ?? () from /opt/OOInstall/program/libfwk680li.so
+#20 0x080739d3 in desktop::DispatchWatcher::executeDispatchRequests ()
+#21 0x0806d6bb in desktop::OfficeIPCThread::ExecuteCmdLineRequests ()
+#22 0x0806234f in desktop::Desktop::OpenDefault ()
+#23 0x08065dc1 in desktop::Desktop::OpenClients ()
+#24 0x08067b23 in desktop::Desktop::OpenClients_Impl ()
+#25 0x400921de in Help::ShowTip () from /opt/OOInstall/program/libvcl680li.so
+#26 0x401e5fb7 in Window::DrawNativeControl () from /opt/OOInstall/program/libvcl680li.so
+#27 0x41c7b72c in X11SalFrame::GetWindowState () from /opt/OOInstall/program/libvclplug_gen680li.so
+#28 0x41c9eef1 in SalDisplay::DispatchInternalEvent () from /opt/OOInstall/program/libvclplug_gen680li.so
+#29 0x41778873 in ?? () from /opt/OOInstall/program/libvclplug_gtk680li.so
+#30 0x40c3c5a0 in ?? ()
+#31 0x40c3c5a0 in ?? ()
+#32 0x40c3b260 in ?? ()
+#33 0x41c58578 in __JCR_LIST__ () from /opt/gnome/lib/libglib-2.0.so.0
+#34 0x00000000 in ?? ()
+#35 0x080f4470 in ?? ()
+#36 0xbfffeaac in ?? ()
+#37 0x41bfc221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+Previous frame identical to this frame (corrupt stack?)
+
+
+
+Helper libraries: glup into 1 ?:
+
+helper: ./libavmedia680li.so
+helper: ./libbasegfx680li.so
+helper: ./libfwe680li.so
+helper: ./libfwi680li.so
+helper: ./libgcc3_uno.so
+helper: ./libi18nutilgcc3.so
+helper: ./libicudata.so.26
+helper: ./libicui18n.so.26
+helper: ./libicule.so.26
+helper: ./libicuuc.so.26
+helper: ./libj680li_g.so
+helper: ./libjvmaccessgcc3.so.3
+helper: ./libjvmfwk.so.3
+helper: ./liblocaledata_en.so
+helper: ./libportaudio.so.0
+helper: ./libpsp680li.so
+helper: ./libreg.so.3
+helper: ./libsb680li.so
+helper: ./libsndfile.so.1
+helper: ./libstlport_gcc.so
+helper: ./libstore.so.3
+helper: ./libsvl680li.so
+helper: ./libtl680li.so
+helper: ./libucbhelper3gcc3.so
+helper: ./libuno_cppu.so.3
+helper: ./libuno_salhelpergcc3.so.3
+helper: ./libuno_sal.so.3
+helper: ./libvclplug_gen680li.so
+helper: ./libvclplug_gtk680li.so
+helper: ./libvos3gcc3.so
+
+Components:
+component: ./behelper.uno.so
+component: ./configmgr2.uno.so
+component: ./fsstorage.uno.so
+component: ./gconfbe1.uno.so
+component: ./i18npool.uno.so
+component: ./ldapbe2.uno.so
+component: ./libcomphelp4gcc3.so
+component: ./libdbtools680li.so
+component: ./libdtransX11680li.so
+component: ./libfileacc.so
+component: ./libfilterconfig1.so
+component: ./libfwk680li.so
+component: ./libfwl680li.so
+component: ./libgo680li.so
+component: ./liblng680li.so
+component: ./libmcnttype.so
+component: ./libpackage2.so
+component: ./libsfx680li.so
+component: ./libsot680li.so
+component: ./libspl680li.so
+component: ./libsvt680li.so
+component: ./libsvx680li.so
+component: ./libsw680li.so
+component: ./libtk680li.so [!]
+component: ./libucb1.so
+component: ./libucpfile1.so
+component: ./libuno_cppuhelpergcc3.so.3
+component: ./libutl680li.so
+component: ./libuui680li.so
+component: ./libvcl680li.so
+component: ./libxcr680li.so
+component: ./libxo680li.so
+component: ./libxstor.so
+component: ./localebe1.uno.so
+component: ./sax.uno.so
+component: ./streams.uno.so
+component: ./sysmgr1.uno.so
+component: ./typeconverter.uno.so
+component: ./ucpgvfs1.uno.so
+component: ./uriproc.uno.so
+component: implreg.uno.so
+component: nestedreg.uno.so
+component: regtypeprov.uno.so
+component: security.uno.so
+component: servicemgr.uno.so
+component: shlibloader.uno.so
+component: simplereg.uno.so
+component: typemgr.uno.so
+
+
+Gcc 4 research:
+    + ld -Bsymbolic breaks stuff; - should avoid weak symbols (?)
+
+    + before: (objdump -R)
+000019f0 R_386_GLOB_DAT    _ZTV9BaseClass
+00001a2c R_386_32          _ZTS9BaseClass
+00001a34 R_386_32          _ZTI9BaseClass
+00001a38 R_386_32          _ZN9BaseClass5doFooEv
+00001a40 R_386_32          _ZTS11MyException
+
+    + after:
+000019fc R_386_RELATIVE    *ABS*
+00001a04 R_386_RELATIVE    *ABS*
+00001a08 R_386_RELATIVE    *ABS*
+00001a10 R_386_RELATIVE    *ABS*
+00001a18 R_386_RELATIVE    *ABS*
+
+    + Of these symbols:
+class BaseClass {
+public:
+	BaseClass();
+	virtual void doFoo() throw (MyException);
+	int inlineFoo() { return 1; }
+};
+    + we should be able to -Bsymbolic the local symbols: surely [!?]
+0000079c g    DF .text  00000056  Base        _ZN9BaseClassC2Ev
+00000746 g    DF .text  00000056  Base        _ZN9BaseClassC1Ev
+000007fb  w   DO .rodata        0000000b  Base        _ZTS9BaseClass
+00001a28  w   DO .data  00000008  Base        _ZTI9BaseClass
+000006ee g    DF .text  00000057  Base        _ZN9BaseClass5doFooEv
+00001a30  w   DO .data  0000000c  Base        _ZTV9BaseClass
+
+    + On that basis we should keep all but the doFooEv
+
+    + libsvx - grep '_ZN...' - 14k symbols,
+
+    + Fix 'ld -Bsymbolic' to use weakness too...
+    + get a nice run-time test of that ...
+	+ bfd/elf32-i386.c '->symbolic' usage
+	    + this is just an incidental usage - not the filtering
+
+'w' == (bfd/syms.c:) (type & BSF_WEAK) ? 'w' : ' ', on an 'asymbol'
+
+We need to hack elflink.c: 
+   _bfd_elf_symbol_refs_local_p (struct elf_link_hash_entry *h,
+   + Unfortunately 'h' points to the relocation itself seemingly
+	+ all of STT_OBJECT
+	+ => need to de-ref the symbol name to get the real data ...
+
+   + This function called from SYMBOL_REFERENCES_LOCAL
+        ... potentially has:
+	    + input_bfd, output_bfd, bfd_link_info *info,
+	    + input_section, contents, relocs, local_syms,
+	    + local_sections
+Called from:
+    elf_i386_relocate_section ...
+
+
+** How the (correct)BSF_WEAK flag gets set:
+
+elfcode.h (elf_slurp_symbol_table):
+  Elf_Internal_Sym *isym;
+  isym = bfd_elf_get_elf_syms
+	  switch (ELF_ST_BIND (isym->st_info))
+	    case STB_WEAK:
+	      sym->symbol.flags |= BSF_WEAK;
+
+   isym from:
+   -> elf.c (bfd_elf_get_elf_syms): read/convert symbols to internal format
+	-> read with elfcode.h (elf_swap_symbol_in)
+	
+
+
+static bfd_boolean
+elf_i386_relocate_section (bfd *output_bfd,
+			   struct bfd_link_info *info,
+			   bfd *input_bfd,
+			   asection *input_section,
+			   bfd_byte *contents,
+			   Elf_Internal_Rela *relocs,
+			   Elf_Internal_Sym *local_syms,
+			   asection **local_sections)
+
+called from: elflink.c (elf_link_input_bfd)
+
+
+  /* The RELOCATE_SECTION function is called by the ELF backend linker
+     to handle the relocations for a section.
+
+     The relocs are always passed as Rela structures; if the section
+     actually uses Rel structures, the r_addend field will always be
+     zero.
+
+     This function is responsible for adjust the section contents as
+     necessary, and (if using Rela relocs and generating a
+     relocatable output file) adjusting the reloc addend as
+     necessary.
+
+     This function does not have to worry about setting the reloc
+     address or the reloc symbol index.
+
+     LOCAL_SYMS is a pointer to the swapped in local symbols.
+
+     LOCAL_SECTIONS is an array giving the section in the input file
+     corresponding to the st_shndx field of each local symbol.
+
+     The global hash table entry for the global symbols can be found
+     via elf_sym_hashes (input_bfd).
+
+     When generating relocatable output, this function must handle
+     STB_LOCAL/STT_SECTION symbols specially.  The output symbol is
+     going to be the section symbol corresponding to the output
+     section, which means that the addend must be adjusted
+     accordingly.  */
+
+Dumping the contents of LOCAL_SYMS - we get:
+
+fprintf( stderr, "Process reloc %2d 0x%2x 0x%2x '%s'\n",
+	 rel - relocs, 
+	 sym->st_info, sym->st_other,
+	 h->root.root.string );
+
+Process reloc  1 0x 3 0x 0 'typeinfo name for SubClass'
+Process reloc  2 0x 3 0x 0 'typeinfo for BaseClass'
+Process reloc  0 0x 0 0x 0 'typeinfo for SubClass'
+Process reloc  1 0x 3 0x 0 'SubClass::doFoo()'
+Process reloc  0 0x 3 0x 0 '__i686.get_pc_thunk.bx'
+Process reloc  1 0x 3 0x 0 '_GLOBAL_OFFSET_TABLE_'
+Process reloc  2 0x 3 0x 0 'BaseClass::BaseClass()'
+Process reloc  3 0x 3 0x 0 'vtable for SubClass'
+Process reloc  0 0x 3 0x 0 'DW.ref._ZTI11MyException'
+Process reloc  1 0x 3 0x 0 'DW.ref._ZTI11MyException'
+Process reloc  0 0x 3 0x 0 'vtable for __cxxabiv1::__class_type_info'
+Process reloc  1 0x 3 0x 0 'typeinfo name for MyException'
+Process reloc  0 0x 3 0x 0 'DW.ref.__gxx_personality_v0'
+Process reloc  0 0x 3 0x 0 '__gxx_personality_v0'
+Process reloc  0 0x 3 0x 0 'typeinfo for MyException'
+Process reloc  0 0x 4 0x 0 '__i686.get_pc_thunk.bx'
+Process reloc  1 0x 3 0x 0 '_GLOBAL_OFFSET_TABLE_'
+Process reloc  2 0x 3 0x 0 '__fini_array_end'
+Process reloc  3 0x 3 0x 0 '__fini_array_start'
+Process reloc  4 0x 3 0x 0 '_fini'
+Process reloc  5 0x 3 0x 0 '_fini'
+Process reloc  6 0x 4 0x 0 '__i686.get_pc_thunk.bx'
+Process reloc  7 0x 3 0x 0 '_GLOBAL_OFFSET_TABLE_'
+Process reloc  8 0x 3 0x 0 '_init'
+Process reloc  9 0x 3 0x 0 '__init_array_end'
+Process reloc 10 0x 3 0x 0 '__init_array_start'
+
+#define ELF_ST_INFO(bind,type)		(((bind) << 4) + ((type) & 0xF))
+an st_info of 3 means: 
+STB_LOCAL |
+#define STT_SECTION	3		/* Symbol associated with a section */
+#define STT_FILE	4		/* Symbol gives a file name */
+
+	Looks pretty broken [!]
+
+
+elflink.c (elf_link_input_bfd):
+    the 'symbols' data here - is just section names /
+    data for them. ie. irrelevant nonsense.
+
+	+ the bfd_elf_get_elf_syms seems to split the syms into
+	  finfo->internal_syms / external_syms / locsym_shndx etc.
+
+** In the .o file - each function is in a separate section
+
+Very odd oddness: adding debug:
+
+** bfd_elf_get_elf_syms ** 1 syms from file 'lib.o' section '.symtab'
+Symbol typeinfo for BaseClass(0x21, 0x 0)
+** bfd_elf_get_elf_syms ** 1 syms from file 'lib.o' section '.symtab'
+Symbol typeinfo name for BaseClass(0x21, 0x 0)
+** bfd_elf_get_elf_syms ** 1 syms from file 'lib.o' section '.symtab'
+Symbol vtable for BaseClass(0x21, 0x 0)
+** bfd_elf_get_elf_syms ** 1 syms from file 'lib.o' section '.symtab'
+Symbol typeinfo for MyException(0x21, 0x 0)
+
+followed by:
+
+** bfd_elf_get_elf_syms ** 20 syms from file 'lib.o' section '.symtab'
+Symbol typeinfo for BaseClass(0x21, 0x 0)
+Symbol vtable for __cxxabiv1::__class_type_info(0x10, 0x 0)
+Symbol typeinfo name for BaseClass(0x21, 0x 0)
+Symbol vtable for BaseClass(0x21, 0x 0)
+Symbol BaseClass::doFoo()    (0x12, 0x 0)
+Symbol typeinfo for MyException(0x21, 0x 0)
+Symbol typeinfo name for MyException(0x21, 0x 0)
+Symbol BaseClass::BaseClass()(0x12, 0x 0)
+Symbol __i686.get_pc_thunk.cx (0x12, 0x 2)
+Symbol _GLOBAL_OFFSET_TABLE_ (0x10, 0x 0)
+Symbol BaseClass::BaseClass()(0x12, 0x 0)
+Symbol MyException::MyException()(0x12, 0x 0)
+Symbol __i686.get_pc_thunk.bx (0x12, 0x 2)
+Symbol stderr (0x10, 0x 0)
+Symbol fprintf (0x10, 0x 0)
+
+Very odd - same file, same 'section' - but reading
+very different stuff; some different hdr type or somesuch ?
+
+subsequently we have:
+
+** bfd_elf_get_elf_syms ** 33 syms from file 'lib.o' section '.symtab'
+Symbol  (0x 0, 0x 0)
+Symbol lib.cxx (0x 4, 0x 0)
+Symbol .text (0x 3, 0x 0)
+Symbol .data (0x 3, 0x 0)
+Symbol .bss (0x 3, 0x 0)
+Symbol .debug_abbrev (0x 3, 0x 0)
+Symbol .debug_info (0x 3, 0x 0)
+Symbol .debug_line (0x 3, 0x 0)
+Symbol .gnu.linkonce.d._ZTI9BaseClass (0x 3, 0x 0)
+Symbol .gnu.linkonce.r._ZTS9BaseClass (0x 3, 0x 0)
+Symbol .gnu.linkonce.d._ZTV9BaseClass (0x 3, 0x 0)
+Symbol .gnu.linkonce.d._ZTI11MyException (0x 3, 0x 0)
+Symbol .gnu.linkonce.r._ZTS11MyException (0x 3, 0x 0)
+
+- ie. completely broken symbol / flags again (or at least per-section flags).
+
+TODO: dump the 'sh_offset' file offset data as well [!?]
+      + start printing 'dynindx' and 'indx' to get 'real' symbol offsets ?
+	    + look those up to get real weak/strong foo ?
+
+The dynindx looks valuable & relevant:
+
+-Bsymbolic (new) tag for this binding 'MyException::MyException()' (16) ? 
+-Bsymbolic (new) tag for this binding 'typeinfo name for MyException' (13) ? 
+-Bsymbolic (new) tag for this binding 'typeinfo name for BaseClass' (9) ? 
+-Bsymbolic (new) tag for this binding 'typeinfo for BaseClass' (7) ? 
+-Bsymbolic (new) tag for this binding 'BaseClass::doFoo()' (11) ? 
+
+How do we lookup the symbol at that index though ?
+
+  elf_link_hash_traverse (elf_hash_table (info),
+			  elf_link_renumber_local_hash_table_dynsyms,
+			  &dynsymcount);
+
+  that sort of thing interesting ?
+
+  /* Hash table handled by BFD.  */
+  struct bfd_link_hash_table *hash;
+
+elf-bfd.h:424:#define elf_hash_table(p) ((struct elf_link_hash_table *) ((p)->hash))
+
+Traversing the dynlocal entries - just nothing in that table [!]
+
+linker.c (elf_link_hash_traverse)  -> bfd_hash_traverse (table->table)
+    + traversing the list.
+
+** DOH ! - need to be looking in bfd_link_hash_entry structure
+for type etc. [!?]
+		   h->root.type == bfd_link_hash_defweak || h->root.type == bfd_link_hash_undefweak
+
+- old debugging cruft: -
+
+static bfd_boolean
+foo_dump_entry (struct elf_link_hash_entry *h, void *data)
+{
+	fprintf( stderr, ">entry: '%s' (%d) root type 0x%x size 0x%x weak: %d\n",
+		 h->root.root.string, h->dynindx,
+		 h->root.type, (int)h->size, h->dynamic_weak );
+	return TRUE;
+}
+
+#if 0
+	  elf_link_hash_traverse (elf_hash_table (info),
+				  foo_dump_entry, NULL);
+#endif
+#if 0
+ {
+	  struct elf_link_local_dynamic_entry *entry;
+	  for (entry = elf_hash_table (info)->dynlocal; entry ; entry = entry->next) {
+	  //		  if (entry->dynindx == h->dynindx) {
+			  sym = &entry->isym;
+			  fprintf( stderr, "real symbol (%d) 0x%x 0x%x bind 0x%x\n",
+				   entry->dynindx,
+				   sym ? sym->st_info : -1 , sym ? sym->st_other : -1 ,
+				   sym ? ELF_ST_BIND(sym->st_info) : -1
+				   );
+			  //		  }
+	  }
+ }
+#endif
+#if 0
+ {
+	  struct elf_link_local_dynamic_entry *entry;
+	  for (entry = elf_hash_table (info)->dynlocal; entry ; entry = entry->next) {
+	  //		  if (entry->dynindx == h->dynindx) {
+			  sym = &entry->isym;
+			  fprintf( stderr, "real symbol (%d) 0x%x 0x%x bind 0x%x\n",
+				   entry->dynindx,
+				   sym ? sym->st_info : -1 , sym ? sym->st_other : -1 ,
+				   sym ? ELF_ST_BIND(sym->st_info) : -1
+				   );
+			  //		  }
+	  }
+ }
+#endif
+	  
+	   /*	   "real symbol 0x%x 0x%x bind 0x%x"
+	   sym ? sym->st_info : -1 , sym ? sym->st_other : -1 ,
+	   sym ? ELF_ST_BIND(sym->st_info) : -1 */
+
+/*	   h->type, h->other,
+
+	   h->ref_regular, h->def_regular,
+	   h->ref_dynamic, h->def_dynamic,
+	   h->ref_regular_nonweak, h->dynamic_adjusted,
+	   h->needs_copy, h->needs_plt,
+	   h->dynamic_def, h->dynamic_weak,
+	   h->hidden, h->forced_local*/
+
+Before:
+2:
+00001b50 R_386_RELATIVE    *ABS*
+00001b54 R_386_RELATIVE    *ABS*
+6:
+00001b14 R_386_GLOB_DAT    stderr
+00001b18 R_386_GLOB_DAT    _ZTI11MyException
+00001b1c R_386_GLOB_DAT    __cxa_finalize
+00001b20 R_386_GLOB_DAT    _ZTV9BaseClass
+00001b24 R_386_GLOB_DAT    _Jv_RegisterClasses
+00001b28 R_386_GLOB_DAT    __gmon_start__
+7:
+00001b58 R_386_32          _ZTVN10__cxxabiv117__class_type_infoE
+00001b6c R_386_32          _ZTVN10__cxxabiv117__class_type_infoE
+00001b5c R_386_32          _ZTS9BaseClass
+00001b64 R_386_32          _ZTI9BaseClass
+00001b68 R_386_32          _ZN9BaseClass5doFooEv
+00001b70 R_386_32          _ZTS11MyException
+00001b74 R_386_32          __gxx_personality_v0
+
+Broken:
+
+OFFSET   TYPE              VALUE 
+00001b40 R_386_RELATIVE    *ABS*
+00001b44 R_386_RELATIVE    *ABS*
+00001b4c R_386_RELATIVE    *ABS*
+00001b54 R_386_RELATIVE    *ABS*
+00001b58 R_386_RELATIVE    *ABS*
+00001b60 R_386_RELATIVE    *ABS*
+
+00001b0c R_386_GLOB_DAT    stderr
+00001b10 R_386_GLOB_DAT    _ZTI11MyException
+00001b14 R_386_GLOB_DAT    __cxa_finalize
+00001b18 R_386_GLOB_DAT    _ZTV9BaseClass
+00001b1c R_386_GLOB_DAT    _Jv_RegisterClasses
+00001b20 R_386_GLOB_DAT    __gmon_start__
+
+00001b48 R_386_32          _ZTVN10__cxxabiv117__class_type_infoE
+00001b5c R_386_32          _ZTVN10__cxxabiv117__class_type_infoE
+00001b64 R_386_32          __gxx_personality_v0
+00001b30 R_386_JUMP_SLOT   fprintf
+00001b34 R_386_JUMP_SLOT   __cxa_allocate_exception
+00001b38 R_386_JUMP_SLOT   __cxa_finalize
+00001b3c R_386_JUMP_SLOT   __cxa_throw
+
+After:
+
+OFFSET   TYPE              VALUE 
+00001b40 R_386_RELATIVE    *ABS*
+00001b44 R_386_RELATIVE    *ABS*
+00001b58 R_386_RELATIVE    *ABS*
+00001b0c R_386_GLOB_DAT    stderr
+00001b10 R_386_GLOB_DAT    _ZTI11MyException
+00001b14 R_386_GLOB_DAT    __cxa_finalize
+00001b18 R_386_GLOB_DAT    _ZTV9BaseClass
+00001b1c R_386_GLOB_DAT    _Jv_RegisterClasses
+00001b20 R_386_GLOB_DAT    __gmon_start__
+00001b48 R_386_32          _ZTVN10__cxxabiv117__class_type_infoE
+00001b5c R_386_32          _ZTVN10__cxxabiv117__class_type_infoE
+00001b4c R_386_32          _ZTS9BaseClass
+00001b54 R_386_32          _ZTI9BaseClass
+00001b60 R_386_32          _ZTS11MyException
+00001b64 R_386_32          __gxx_personality_v0
+00001b30 R_386_JUMP_SLOT   fprintf
+00001b34 R_386_JUMP_SLOT   __cxa_allocate_exception
+00001b38 R_386_JUMP_SLOT   __cxa_finalize
+00001b3c R_386_JUMP_SLOT   __cxa_throw
+
+Next problem:
+
+* diff of objdump -x output:
+    +  SYMBOLIC    0x0
+
+* Linker is using this to:
+
+ie. direct (-Bsymbolic) lookup:
+     25599:	symbol=_ZTI11MyException;  lookup in file=./liblib.so
+     25599:	binding file ./liblib.so to ./liblib.so: normal symbol `_ZTI11MyException'
+should be:
+     25694:	symbol=_ZTI11MyException;  lookup in file=./app
+     25694:	binding file ./liblib.so to ./app: normal symbol `_ZTI11MyException'
+
+ie. don't set SYMBOLIC flag in output ...
+    (elflink.c _bfd_elf_add_dynamic_entry ... DT_SYMBOLIC )
+
+
+Solution:
+
+--- binutils-2.16/bfd/elf32-i386.c
++++ binutils-2.16/bfd/elf32-i386.c
+@@ -2395,7 +2429,8 @@
+ 		       && (r_type == R_386_PC32
+ 			   || !info->shared
+ 			   || !info->symbolic
++			   || h->root.type == bfd_link_hash_defweak
+ 			   || !h->def_regular))
+ 		outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
+ 	      else
+ 		{
+
+
+--- binutils-2.16/bfd/elflink.c
++++ binutils-2.16/bfd/elflink.c
+@@ -2582,9 +2616,19 @@
+   /* At this point, we know the symbol is defined and dynamic.  In an
+      executable it must resolve locally, likewise when building symbolic
+      shared libraries.  */
+-  if (info->executable || info->symbolic)
++  if (info->executable)
+     return TRUE;
+ 
++  if (info->symbolic) {
++    if (h->root.type != bfd_link_hash_defweak)
++    {
++      if (getenv ("BSYMBOLIC_DEBUG"))
++        fprintf (stderr, "-Bsymbolic binding '%s' internally\n",
++		 h->root.root.string);
++      return TRUE;
++    }
++  }
++
+   /* Now deal with defined dynamic symbols in shared libraries.  Ones
+      with default visibility might not resolve locally.  */
+   if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
+@@ -5021,12 +5065,15 @@
+ 	    return FALSE;
+ 	}
+ 
++#if 0
++      fprintf (stderr, "Not setting DT_SYMBOLIC\n");
+       if (info->symbolic)
+ 	{
+ 	  if (!_bfd_elf_add_dynamic_entry (info, DT_SYMBOLIC, 0))
+ 	    return FALSE;
+ 	  info->flags |= DF_SYMBOLIC;
+ 	}
++#endif
+ 
+       if (rpath != NULL)
+ 	{
+
+
+** So ...
+
+    + using 'protected' attribute on *every* method works just
+      as well as the -Bsymbolic fix - not realistic to think we
+      can get that up-stream though.
+
+    + using 'protected' per-class instead of 'default' appears
+      to work - until we hit the dynamic linker ... - at which
+      point we fail to link correctly:
+
+     22100:	symbol=_ZTS11MyException;  lookup in file=./app
+     22100:	symbol=_ZTS11MyException;  lookup in file=./app
+     22100:	binding file ./liblib.so to ./liblib.so: protected symbol `_ZTS11MyException'
+
+    + the 'visibility' attribute just gets pushed through gcc
+      to the assembler - trivially.
+
+    + -fno-rtti seems to do little wrt. not exporting _ZTI
+      symbols etc. -fexceptions seems to have no effect.
+      -fno-rtti does shrink the output though.
+
+
+    + !STB_GLOBAL && !STB_LOCAL ... -> 
+	== STB_WEAK ...
+
+** Researching COMDAT **
+
+    + -ffunction-sections separate functions for the linker (COMDAT)
+        + sounds like you put this data into separate sections
+	+ cf. MAKE_DECL_ONE_ONLY: "extra copies in multiple
+	  translation units will be discarded by the linker. Define
+	  this macro if your object file format provides support for
+	  this concept, such as the 'COMDAT' section flags in the
+	  MS Windows PE/COFF format, and this support requires changes
+	  to decl, such as putting it in a separate section.
+
+
+    + hppa: The C++ ABI has changed incompatibly in GCC 4.0. COMDAT
+	  subspaces are used for one-only code and data. This resolves
+	  many of the previous problems in using C++ on this
+	  target. However, the ABI is not compatible with the one
+	  implemented under HP-UX 11 using secondary definitions.
+
+    + 4.0 - COMDAT support re-enabled ...
+    +   This patch stops entities with vague linkage from being
+	declared as ELF weak symbols when HAVE_GAS_COMDAT_GROUP is
+	true. This is mainly cosmetic, but could lead to subtle
+	interoperability problems.
+	Tested with cross to arm-none-eabi.
+	OK to apply?
+
+* Tackle this lower down:
+    + hacked up version of g++ ...
+    + -fvtable-thunk - more efficient ? - output more relocs ?
+  
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/basic-error.txt
+++ openoffice.org-2.4.1/ooo-build/doc/basic-error.txt
@@ -0,0 +1,214 @@
+Executing:
+    dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
+
+    fails in our 1.1.4 - but not the stock built version [!?]
+
+Error set from:
+
+(gdb) 
+#3  0x441241bc in SbUnoObject::Notify (this=0x8c2ab48, rBC=@0x8b0d9f0, rHint=@0xbfffbda0)
+    at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbunoobj.cxx:1950
+1950                                            StarBASIC::Error( ERRCODE_BASIC_EXCEPTION, 
+(gdb) l
+1945                                    {
+1946                                            StarBASIC::Error( ERRCODE_BASIC_EXCEPTION, implGetExceptionMsg( e2 ) );
+1947                                    }
+1948                                    catch( IllegalArgumentException& e3)
+1949                                    {
+1950                                            StarBASIC::Error( ERRCODE_BASIC_EXCEPTION, 
+1951                            implGetExceptionMsg( e3, aIllegalArgumentExceptionName ) );
+1952                                    }
+1953                                    catch( Exception& e4 )
+1954                                    {
+
+
+Breakpoint 2, SbiRuntime::Error (this=0x8c2a868, n=87673) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/runtime.cxx:747
+747             if( n )
+(gdb) bt
+#0  SbiRuntime::Error (this=0x8c2a868, n=87673) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/runtime.cxx:747
+#1  0x44153716 in SbiInstance::Error (this=0x8c2a208, n=87673, rMsg=@0xbfffbcb0) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/runtime.cxx:449
+#2  0x4410e195 in StarBASIC::Error (n=87673, rMsg=@0xbfffbcb0) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sb.cxx:1228
+#3  0x441241bc in SbUnoObject::Notify (this=0x8c2ab48, rBC=@0x8b0d9f0, rHint=@0xbfffbda0)
+    at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbunoobj.cxx:1950
+#4  0x4040e61b in SfxBroadcaster::Broadcast () from ./libsvl645li.so
+#5  0x407759b2 in SbxVariable::Broadcast (this=0x8c2acd8, nHintId=65536) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvar.cxx:183
+#6  0x40770021 in SbxValue (this=0x8c2ad28, __vtt_parm=0x408a5188, r=@0x8c2acd8) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvalue.cxx:328
+#7  0x4077526a in SbxVariable (this=0x8c2ad28, __vtt_parm=0x408a5184, r=@0x8c2acd8) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvar.cxx:98
+#8  0x4415f9fe in SbxMethod (this=0x8c2ad28, r=@0x8c2acd8) at sbxmeth.hxx:74
+#9  0x4415c389 in SbiRuntime::FindElement (this=0x8c2a868, pObj=0x8c2ab48, nOp1=32789, nOp2=12, nNotFound=87570, bLocal=0 '\0')
+    at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/step2.cxx:223
+#10 0x4415d990 in SbiRuntime::StepELEM (this=0x8c2a868, nOp1=32789, nOp2=12) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/step2.cxx:579
+#11 0x4415492a in SbiRuntime::Step (this=0x8c2a868) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/runtime.cxx:642
+#12 0x44112565 in SbModule::Run (this=0x8ae9c58, pMeth=0x8c2a388) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbxmod.cxx:687
+#13 0x44111a45 in SbModule::Notify (this=0x8ae9c58, rBC=@0x8aef818, rHint=@0xbfffc140) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbxmod.cxx:444
+#14 0x4040e61b in SfxBroadcaster::Broadcast () from ./libsvl645li.so
+#15 0x441171d6 in SbMethod::Broadcast (this=0x8aef750, nHintId=65536) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbxmod.cxx:2163
+#16 0x40770a75 in SbxValue::Get (this=0x8aef750, rRes=@0xbfffc1f0) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvalue.cxx:554
+#17 0x45e9b8f8 in BasicIDE::RunMethod () from ./libbasctl645li.so
+
+
+
+Failure is here:
+
+		fprintf( stderr, "Head of block\n" );
+		try
+		{
+		if( mxUnoAccess.is() )
+		{
+			fprintf( stderr, "Foo 1\n" );
+			Any aRetAny = pMeth->m_xUnoMethod->invoke( getUnoAny(), args );
+
+We get:
+
+"Head of block
+Foo 1
+About to call method 'executeDispatch'
+Caught illegal argument exception"
+
+So - is it some type coercion problem (?)
+
+Breakpoint in 'throw':
+
+#0  0x413b36b5 in __cxa_throw () from /usr/lib/libstdc++.so.5
+#1  0x46474b4b in stoc_corefl::IdlInterfaceMethodImpl::invoke () from ./corereflection.uno.so
+#2  0x44123f4e in SbUnoObject::Notify (this=0x8b61b40, rBC=@0x8ac0778, rHint=@0xbfffbf00)
+    at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbunoobj.cxx:1892
+#3  0x4040e61b in SfxBroadcaster::Broadcast () from ./libsvl645li.so
+#4  0x407759b2 in SbxVariable::Broadcast (this=0x8b0de48, nHintId=65536) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvar.cxx:183
+#5  0x40770021 in SbxValue (this=0x8b4ef08, __vtt_parm=0x408a5188, r=@0x8b0de48) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvalue.cxx:328
+#6  0x4077526a in SbxVariable (this=0x8b4ef08, __vtt_parm=0x408a5184, r=@0x8b0de48) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvar.cxx:98
+#7  0x4416010a in SbxMethod (this=0x8b4ef08, r=@0x8b0de48) at sbxmeth.hxx:74
+#8  0x4415ca95 in SbiRuntime::FindElement (this=0x8b34d08, pObj=0x8b61b40, nOp1=32789, nOp2=12, nNotFound=87570, bLocal=0 '\0')
+    at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/step2.cxx:223
+#9  0x4415e09c in SbiRuntime::StepELEM (this=0x8b34d08, nOp1=32789, nOp2=12) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/step2.cxx:579
+#10 0x44155036 in SbiRuntime::Step (this=0x8b34d08) at /opt/OpenOffice/OOO_1_1_4/basic/source/runtime/runtime.cxx:642
+#11 0x44112775 in SbModule::Run (this=0x8aead48, pMeth=0x8b0b0c0) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbxmod.cxx:687
+#12 0x44111c55 in SbModule::Notify (this=0x8aead48, rBC=@0x8b07490, rHint=@0xbfffc2a0) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbxmod.cxx:444
+#13 0x4040e61b in SfxBroadcaster::Broadcast () from ./libsvl645li.so
+#14 0x441173e6 in SbMethod::Broadcast (this=0x8aef358, nHintId=65536) at /opt/OpenOffice/OOO_1_1_4/basic/source/classes/sbxmod.cxx:2163
+#15 0x40770021 in SbxValue (this=0x8b0a540, __vtt_parm=0x408a5188, r=@0x8aef358) at /opt/OpenOffice/OOO_1_1_4/svtools/source/sbx/sbxvalue.cxx:328
+...
+
+Adding code to:
+
+stoc/source/corereflection/criface.cxx /::invoke/:
+				if (! bAssign)
+				{
++						fprintf(stderr, "Failed to coerce argument %d(/%d) of type %d\n",
++								nPos, nParams, pTD->eTypeClass );
+
+we get:
+
+Failed to coerce argument 4(/5) of type 20 from type 0
+    So 'TD->eTypeClass' is 20 == typelib_TypeClass_SEQUENCE
+	ie. the destination type is a sequence we want to coerce to ...
+    The source type is typelib_TypeClass_VOID ...
+
+[ eTypeClass defined in solver/.../inc/typelib/typeclass.h ]
+[ uno_ methods in solver/..../uno/data.h ]
+
+ dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
+
+Try to coerce argument 0(/5) to type 22 [ interface ]
+Try to coerce argument 1(/5) to type 12 [ string ]
+Try to coerce argument 2(/5) to type 12 [ string ]
+Try to coerce argument 3(/5) to type 6  [ long ]
+Try to coerce argument 4(/5) to type 20 [ sequence ]
+Generic coercion argument 4(/5) from type 0  [ Array() -> Void !? why ? ]
+
+So - the question is why is the 'Array()' not getting converted
+properly (?)
+
+Suspicious of sbunoobj.cxx:
+
+Any sbxToUnoValue( SbxVariable* pVar, const Type& rType, Property* pUnoProperty )
+
+Some printouts:
+
+sbxToUnoValue to type = com.sun.star.frame.XDispatchProvider
+sbxToUnoValue to type = string
+sbxToUnoValue to type = string
+sbxToUnoValue to type = long
+sbxToUnoValue to type = []com.sun.star.beans.PropertyValue
+Sequence section ...
+Is an SbxDimArray (0) ...
+
+URGH
+    So - the real problem is that we create a '0 dimensional array' when
+we have no arguments: Array() is 0 dimensional [ Why !? ]
+
+    This patch - appears to fix the symptoms:
+
+--- basic/source/classes/sbunoobj.cxx	12 Oct 2004 10:58:10 -0000	1.25.44.3
++++ basic/source/classes/sbunoobj.cxx	18 Apr 2005 14:58:49 -0000
+@@ -1089,9 +1097,10 @@ Any sbxToUnoValue( SbxVariable* pVar, co
+ 
+ 				short nDims = pArray->GetDims();
+ 
+ 				// Normal case: One dimensional array
+ 				sal_Int32 nLower, nUpper;
+-				if( nDims == 1 && pArray->GetDim32( 1, nLower, nUpper ) )
++				if( ( nDims == 1 && pArray->GetDim32( 1, nLower, nUpper ) ) ||
++					nDims == 0 && (nLower = 0, nUpper = -1, 1) )
+ 				{
+ 					sal_Int32 nSeqSize = nUpper - nLower + 1;
+ 
+
+    ** Diffing between OpenOffice_1_1_3 and OpenOffice_1_1_4 it
+_Seems_ that this change introduced this problem:
+
+@@ -980,16 +1087,17 @@ Any sbxToUnoValue( SbxVariable* pVar, co
+ 				SbxBase* pObj = (SbxBase*)xObj;
+ 				SbxDimArray* pArray = (SbxDimArray*)pObj;
+ 
+-				// Instanz der geforderten Sequence erzeugen
+-				Reference< XIdlClass > xIdlTargetClass = TypeToIdlClass( rType );
+-				xIdlTargetClass->createObject( aRetVal );
++				short nDims = pArray->GetDims();
+ 
+-				// es muss ein eindimensionales Array sein
++				// Normal case: One dimensional array
+ 				sal_Int32 nLower, nUpper;
+-				if( pArray->GetDims() == 1 && pArray->GetDim32( 1, nLower, nUpper ) )
++				if( nDims == 1 && pArray->GetDim32( 1, nLower, nUpper ) )
+
+    By not initializing the default value of a 0 dimensional array to
+the correct type; with the 'createObject' method.
+
+
+corereflection debug diff:
+
+--- stoc/source/corereflection/criface.cxx	9 Jan 2004 19:01:26 -0000	1.8.38.1
++++ stoc/source/corereflection/criface.cxx	18 Apr 2005 14:59:17 -0000
+@@ -690,7 +690,10 @@ Any SAL_CALL IdlInterfaceMethodImpl::inv
+ 			ppParamTypes[nPos] = 0;
+ 			TYPELIB_DANGER_GET( ppParamTypes + nPos, pParams[nPos].pTypeRef );
+ 			typelib_TypeDescription * pTD = ppParamTypes[nPos];
+-			
++
++//			fprintf(stderr, "Try to coerce argument %d(/%d) to type %d\n",
++//					nPos, nParams, pTD->eTypeClass );
++
+ 			ppUnoArgs[nPos] = alloca( pTD->nSize );
+ 			if (pParams[nPos].bIn)
+ 			{
+@@ -724,6 +727,10 @@ Any SAL_CALL IdlInterfaceMethodImpl::inv
+ 				{
+ 					typelib_TypeDescription * pValueTD = 0;
+ 					TYPELIB_DANGER_GET( &pValueTD, pCppArgs[nPos].getValueTypeRef() );
++
++//					fprintf(stderr, "Generic  coercion argument %d(/%d) from type %d\n",
++//							nPos, nParams, pValueTD->eTypeClass );
++			
+ 					// construct temp uno val to do proper assignment: todo opt
+ 					void * pTemp = alloca( pValueTD->nSize );
+ 					uno_copyAndConvertData(
+@@ -734,6 +741,8 @@ Any SAL_CALL IdlInterfaceMethodImpl::inv
+ 					// assignment does simple conversion
+ 					bAssign = uno_assignData(
+ 						ppUnoArgs[nPos], pTD, pTemp, pValueTD, 0, 0, 0 );
++//					if( !bAssign )
++//						fprintf(stderr, "Failed to coerce argument\n" );
+ 					uno_destructData(
+ 						pTemp, pValueTD, 0 );
+ 					TYPELIB_DANGER_RELEASE( pValueTD );
--- openoffice.org-2.4.1.orig/ooo-build/doc/filepicker.txt
+++ openoffice.org-2.4.1/ooo-build/doc/filepicker.txt
@@ -0,0 +1,72 @@
+To get a FilePicker: 
+   xMultiServiceFactory->createInstance of "com.sun.star.ui.dialogs.FilePicker"
+   (aka. FILE_OPEN_SERVICE_NAME)
+
+e.g. in OpenDocExec_Impl:
+-> if( !pFileNameItem ) sfx2::FileOpenDialog_Impl
+-> FileDialogHelper aDialog(...); aDialog.Execute(...);
+-> mpImp = new FileDialogHelper_Impl(); mpImp->execute();
+-> FileDialogHelper_Impl::implDoExecute
+-> aService = FILE_OPEN_SERVICE_NAME; mxFileDlg = mxFileDlg.query( xFactory->createInstance( aService ); mxFileDlg->execute()
+
+dialogs.FilePicker implemented by:
+   SvtFilePicker (svtools/source/filepicker/filepicker), the cross-platform version
+   also implements the service com.sun.star.ui.dialogs.OfficeFilePicker
+
+   CFilePicker (fpicker/source/win32/filepicker/FilePicker.cxx, delivered;
+   old copy in sysui/source/win32/filepicker/FilePicker.cxx, not delivered),
+   the win32 native file picker
+   also implements the service com.sun.star.ui.dialogs.SystemFilePicker
+
+SvtFilePicker::impl_createInstance (factory for SvtFilePicker) creates a
+SystemFilePicker if available (registered) and not disabled by the user
+(SvtMiscOptions.UseSystemFileDialog(), an unbreak-me option?)
+
+SvtFilePicker implements (svtools/source/filepicker/filepicker.hxx) the interfaces
+   XInterface x
+   XTypeProvider x
+   XServiceInfo x
+   XExecutableDialog (parent-iface of XFilePicker) x
+   XFilePicker (parent of XFilePickerControlAccess) x
+   XFilePickerControlAccess x
+   XFilePickerNotifier x
+   XFilePreview    x   
+   XInitialization x
+   XFilterManager x
+   XFilterGroupManager x
+and via OCommonPicker (commonpicker.hxx)
+   XControlAccess
+   XControlInformation
+   XEventListener x
+   XCancellable x
+   XInitialization x
+   
+For a description of the interfaces:
+http://api.openoffice.org/docs/common/ref/com/sun/star/ui/dialogs/FilePicker.html
+
+CFilePicker implements the interfaces with x
+
+XFilePreview: dialog can only preview bitmaps
+
+XControlAccess: for setting properties of controls inside the dialog
+XControlInformation: get list of control, their properties
+
+
+Dig in:
+
+svtools/source/filepicker/filepicker.cxx (HasSystemFilePicker)
+SvtMiscOptions::UseSystemFileDialog
+    Office.Common/Misc ('UseSystemFileDialog')
+
+
+** Fixing FilePickerWorkaround:
+
+    fpicker/source/office/OfficeFilePicker.cxx: needs re-work
+
+    LXR: has a lot of hits - at least 1/2 sampled just use [0]
+	 unconditionally.
+
+    sfx2/source/dialog/filedlghelper.cxx: 
+	+ GetMPath [!]
+	+ 'execute'
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/bmp.txt
+++ openoffice.org-2.4.1/ooo-build/doc/bmp.txt
@@ -0,0 +1,94 @@
+Requirements for image loading:
+	1. Pretty & distinctive OO icons
+	2. Integration with Gtk icon theme (optional)
+	3. AA icons / png loading (optional)
+	4. stop icons linking with [L]GPL code (optional).
+Importantly we mustn't sacrifice noticable performance for 2,3,4.
+
+Loader details:
+---------------
+
+The main loading code is in vcl/source/gdi/bitmap2.cxx, starting at
+::Read() in line 163.
+
+The interesting function is ::ImplReadDIBBits at line 452.  Note how
+it does not handle 32-bit BMPs (line 638), as it ignores the alpha and
+just sticks in the RGB values.
+
+Modifications for 32-bit support:
+---------------------------------
+
+* vcl/inc/salbtype.hxx: Added a BitmapColor constructor that takes in
+  an alpha value, and modified the other constructors to set the alpha
+  to fully opaque.  Added setters/getters for the alpha value.
+
+* vcl/source/gdi/bitmap2.cxx: Make ImplReadDIB() handle up to 32-bit
+  nBitCount.  Make ImplWriteDIBBits() handle 32-bit depths.
+
+* vcl/unx/source/gdi/salbmp.cxx: Make ImplCreateDIB() handle 32-bit
+  nBitCount.  Make GetBitCount() handle 32-bit depths.
+
+* vcl/source/gdi/impbmp.cxx: Make ImplGetBitCount() handle 32-bit
+  depths.
+
+* vcl/source/gdi/bmpacc2.cxx: Handle alpha in the 32-bit
+  getpixel/setpixel functions.
+
+* vcl/inc/bitmap.hxx: Added BMP_CONVERSION_32BIT to enum
+  BmpConversion.  It seems they don't know that in C/C++ enums start
+  at zero and thus you can avoid explicitly numbering them...
+
+* vcl/source/gdi/bitmap3.cxx: Make Convert() handle BMP_CONVERSION_32BIT.
+
+* vcl/source/gdi/outdev2.cxx: ImplDrawBitmapEx() - Do compositing if
+  the bitmap is 32 bits deep.
+
+* svtools/bmpmaker/bmpcore.cxx: Make ImplCreate() ensure that
+  everything gets expanded to 32-bit RGBA.
+
+----------------------------------------------------------------------------------
+
+This file contains notes about the BMP loader and the code path that goes from
+grokking .bmp icon files to painting them on the screen.
+
+- Icons are resources, each identified by a unique number.
+
+- Icon files with an "lc" prefix are large icons, and the
+  corresponding small version has an "sc" prefix.
+
+- Icon files are called {sc,lc}XXXXX.bmp, where XXXXX is the numerical UID.
+
+sfx2/source/toolbox/tbxmgr.cxx:359:
+	USHORT nId = SID_NEWDOC; -- this is the ID of the icon
+
+	pBox->SetItemImage(nId, pBindings->GetImageManager()->GetImage(nId, pIFace ? pIFace->GetModule() : 0));
+		see sfx2/source/toolbox/imgmgr.cxx below
+
+sfx2/source/toolbox/imgmgr.cxx:784: SfxImageManager_Impl::GetImage()
+	::GetImage() implementation.  Builds "ImageList *pList" via SfxModule::GetImageList_Impl().
+	Then calls pList->GetImage (nId)
+
+sfx2/source/appl/module.cxx:120: SfxModule::GetImageList()
+	Implementation of SfxModule::GetImageList().  Note the use of
+		bBig ? RID_DEFAULTIMAGELIST_LC : RID_DEFAULTIMAGELIST_SC
+	to decide between big or small images ("lc" and "sc" prefixes
+	from above).
+
+	tools/source/rc/resmgr.cxx:848:
+		Calls LocalResource(), which is implemented in line 691.  This
+		returns a pointer to a resource header, which in turn gives
+		you the offsets to the actual resource data within the
+		resource blob.
+
+	Then it calls "new ImageList (aResId)".
+
+vcl/source/gdi/image.cxx:749: ImageList::ImageList (const ResId &rResId)
+	Note line 771, where it constructs a Bitmap from the resource ID.
+
+vcl/source/gdi/bitmap.cxx:107: Bitmap::Bitmap (const ResId &rResId):
+	Creates an SvStream and then uses an extractor operator (">>")
+	to feed it into the Bitmap.  Joy.  How did we ever live before C++?
+
+vcl/source/gdi/bitmap2.cxx:163: Bitmap::Read (SvStream &rIStm, BOOL bFileHeader):
+	This is the BMP loader.  But it doesn't tell us where to find
+	the resource data.  Hmmm.
--- openoffice.org-2.4.1.orig/ooo-build/doc/iogrind.txt
+++ openoffice.org-2.4.1/ooo-build/doc/iogrind.txt
@@ -0,0 +1,444 @@
+	+ valgrind bits ...
+		+ as per memcheck:
+		    + needs to trap & check every read & write
+			+ substantially reduce the granularity ...
+		    + 'lackey' - seems to do this already
+		      [ with code access too ]
+		+ want to trap all read/write/I/O interesting syscalls ...
+		    + coregrind/mlibc_file
+		    + coregrind/m_syswrap/syswrap-linux.c /sys_llseek/ (eg.)
+		    + currently - we don't have this level of semantic
+		      visibility, we need to hook coregrind bits.
+			+ cf. POST_MEM_WRITE hard-coding etc.
+		+ thunk on explicit I/O ? [ eg. map / unmap to keep addresses consistent ? ]
+
+	+ Visualisation:
+		+ break down *code* by section information and chart that ...
+		+ [ hmm ]
+		+ re-use OO.o's charting ? ;-)
+		+ Break down working set by *allocation* ! ;-)
+			+ what code allocated & then touched what ...
+			+ [need more precision]
+
+
+
+	+ Track:
+		+ all operations on file descriptors
+		+ open/close/read/mmap/...
+		+ 
+
+Setup some new 'track_io_call' type methods:
+
+track_io_open ...
+track_io_read
+track_io_write
+track_io_close ?
+
+/usr/src/linux/include/linux/syscalls.h:
+
+asmlinkage long sys_sync(void);
+asmlinkage long sys_fsync(unsigned int fd);
+asmlinkage long sys_fdatasync(unsigned int fd);
+asmlinkage long sys_truncate(const char __user *path,
+				unsigned long length);
+asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
+asmlinkage long sys_stat(char __user *filename,
+			struct __old_kernel_stat __user *statbuf);
+asmlinkage long sys_statfs(const char __user * path,
+				struct statfs __user *buf);
+asmlinkage long sys_statfs64(const char __user *path, size_t sz,
+				struct statfs64 __user *buf);
+asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf);
+asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz,
+				struct statfs64 __user *buf);
+asmlinkage long sys_lstat(char __user *filename,
+			struct __old_kernel_stat __user *statbuf);
+asmlinkage long sys_fstat(unsigned int fd,
+			struct __old_kernel_stat __user *statbuf);
+asmlinkage long sys_newstat(char __user *filename,
+				struct stat __user *statbuf);
+asmlinkage long sys_newlstat(char __user *filename,
+				struct stat __user *statbuf);
+asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf);
+asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf);
+#if BITS_PER_LONG == 32
+asmlinkage long sys_stat64(char __user *filename,
+				struct stat64 __user *statbuf);
+asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf);
+asmlinkage long sys_lstat64(char __user *filename,
+				struct stat64 __user *statbuf);
+asmlinkage long sys_truncate64(const char __user *path, loff_t length);
+asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length);
+#endif
+h
+/* Omit all the set/get xattr API calls in the 1st pass ... */
+asmlinkage unsigned long sys_mremap(unsigned long addr,
+				unsigned long old_len, unsigned long new_len,
+				unsigned long flags, unsigned long new_addr);
+asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
+			unsigned long prot, unsigned long pgoff,
+			unsigned long flags);
+asmlinkage long sys_msync(unsigned long start, size_t len, int flags);
+asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice);
+asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
+asmlinkage long sys_munmap(unsigned long addr, size_t len);
+asmlinkage long sys_madvise(unsigned long start, size_t len, int behavior);
+asmlinkage long sys_chroot(const char __user *filename); // tracking paths
+asmlinkage long sys_mknod(const char __user *filename, int mode,
+				unsigned dev);
+asmlinkage long sys_link(const char __user *oldname,
+				const char __user *newname);
+asmlinkage long sys_symlink(const char __user *old, const char __user *new);
+asmlinkage long sys_unlink(const char __user *pathname);
+asmlinkage long sys_rename(const char __user *oldname,
+				const char __user *newname);
+asmlinkage long sys_chmod(const char __user *filename, mode_t mode);
+asmlinkage long sys_fchmod(unsigned int fd, mode_t mode);
+asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
+#if BITS_PER_LONG == 32
+asmlinkage long sys_fcntl64(unsigned int fd,
+				unsigned int cmd, unsigned long arg);
+#endif
+asmlinkage long sys_dup(unsigned int fildes);
+asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd);
+asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int on);
+asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,
+				unsigned long arg);
+asmlinkage long sys_flock(unsigned int fd, unsigned int cmd);
+
+
+// omit async I/O bits ...
+
+asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd,
+				off_t __user *offset, size_t count);
+asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd,
+				loff_t __user *offset, size_t count);
+asmlinkage long sys_readlink(const char __user *path,
+				char __user *buf, int bufsiz);
+asmlinkage long sys_creat(const char __user *pathname, int mode);
+asmlinkage long sys_open(const char __user *filename,
+				int flags, int mode);
+asmlinkage long sys_close(unsigned int fd);
+asmlinkage long sys_access(const char __user *filename, int mode);
+asmlinkage long sys_chown(const char __user *filename,
+				uid_t user, gid_t group);
+asmlinkage long sys_lchown(const char __user *filename,
+				uid_t user, gid_t group);
+asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group);
+#ifdef CONFIG_UID16
+asmlinkage long sys_chown16(const char __user *filename,
+				old_uid_t user, old_gid_t group);
+asmlinkage long sys_lchown16(const char __user *filename,
+				old_uid_t user, old_gid_t group);
+asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group);
+
+asmlinkage long sys_utime(char __user *filename,
+				struct utimbuf __user *times);
+asmlinkage long sys_utimes(char __user *filename,
+				struct timeval __user *utimes);
+asmlinkage off_t sys_lseek(unsigned int fd, off_t offset,
+				unsigned int origin);
+asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
+			unsigned long offset_low, loff_t __user *result,
+			unsigned int origin);
+asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf,
+				size_t count);
+asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count);
+asmlinkage ssize_t sys_readv(unsigned long fd,
+				const struct iovec __user *vec,
+				unsigned long vlen);
+asmlinkage ssize_t sys_write(unsigned int fd, const char __user *buf,
+				size_t count);
+asmlinkage ssize_t sys_writev(unsigned long fd,
+				const struct iovec __user *vec,
+				unsigned long vlen);
+asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
+asmlinkage long sys_mkdir(const char __user *pathname, int mode);
+asmlinkage long sys_chdir(const char __user *filename);
+asmlinkage long sys_fchdir(unsigned int fd);
+asmlinkage long sys_rmdir(const char __user *pathname);
+asmlinkage long sys_lookup_dcookie(u64 cookie64, char __user *buf, size_t len);
+asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special,
+				qid_t id, void __user *addr);
+asmlinkage long sys_getdents(unsigned int fd,
+				struct linux_dirent __user *dirent,
+				unsigned int count);
+asmlinkage long sys_getdents64(unsigned int fd,
+				struct linux_dirent64 __user *dirent,
+				unsigned int count);
+	   
+// omit select / poll etc.
+
+
+/* New and under-used bits ... !? 
+asmlinkage long sys_mknodat(int dfd, const char __user * filename, int mode,
+			    unsigned dev);
+asmlinkage long sys_mkdirat(int dfd, const char __user * pathname, int mode);
+asmlinkage long sys_unlinkat(int dfd, const char __user * pathname, int flag);
+asmlinkage long sys_symlinkat(const char __user * oldname,
+			      int newdfd, const char __user * newname);
+asmlinkage long sys_linkat(int olddfd, const char __user *oldname,
+			   int newdfd, const char __user *newname, int flags);
+asmlinkage long sys_renameat(int olddfd, const char __user * oldname,
+			     int newdfd, const char __user * newname);
+asmlinkage long sys_futimesat(int dfd, char __user *filename,
+			      struct timeval __user *utimes);
+asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode);
+asmlinkage long sys_fchmodat(int dfd, const char __user * filename,
+			     mode_t mode);
+asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
+			     gid_t group, int flag);
+asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
+			   int mode);
+asmlinkage long sys_newfstatat(int dfd, char __user *filename,
+			       struct stat __user *statbuf, int flag);
+asmlinkage long sys_fstatat64(int dfd, char __user *filename,
+			       struct stat64 __user *statbuf, int flag);
+asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf,
+			       int bufsiz);
+asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename,
+				     struct compat_timeval __user *t);
+asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename,
+				      struct compat_stat __user *statbuf,
+				      int flag);
+asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename,
+				   int flags, int mode);
+*/
+
+
+** Target just a few to start with: **
+
+open("/usr/lib/locale/en_GB.UTF-8/LC_NUMERIC", O_RDONLY) = -1 ENOENT (No such file or directory)
+open("/usr/lib/locale/en_GB.utf8/LC_NUMERIC", O_RDONLY) = 3
+fstat64(3, {st_mode=S_IFREG|0644, st_size=54, ...}) = 0
+mmap2(NULL, 54, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f17000
+close(3)                                = 0
+open("/usr/lib/locale/en_GB.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or directory)
+open("/usr/lib/locale/en_GB.utf8/LC_CTYPE", O_RDONLY) = 3
+fstat64(3, {st_mode=S_IFREG|0644, st_size=208464, ...}) = 0
+mmap2(NULL, 208464, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7cba000
+close(3)                                = 0
+ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
+ioctl(1, TIOCGWINSZ, {ws_row=57, ws_col=158, ws_xpixel=1600, ws_ypixel=1149}) = 0
+open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
+fstat64(3, {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
+fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
+getdents64(3, /* 14 entries */, 4096)   = 360
+getdents64(3, /* 0 entries */, 4096)    = 0
+
+
+asmlinkage long sys_open(const char __user *filename,
+				int flags, int mode);
+asmlinkage long sys_close(unsigned int fd);
+asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf);
+
+
+
+OO.o -writer startup: sys-call count:
+
+   4312  open			I
+   3006  read			I
+    839  _llseek		I
+    766  stat64			I
+    758  access			I
+    664  gettimeofday
+    615  close			I
+    589  write			I
+    571  fstat64		I
+    563  mmap2			I
+    496  lseek			I
+    490  lstat64		I
+    348  poll			I
+    238  brk
+    233  fcntl64		I
+    168  munmap			I
+    167  futex
+    155  getdents64		I
+    154  ioctl
+    149  madvise		I
+    142  getcwd
+    120  time
+     84  writev			I
+     73  select
+     43  rt_sigaction
+     43  getuid32
+     33  uname
+     32  send
+     18  unlink
+     18  readv			I
+     17  mprotect
+     14  socket
+     13  mkdir
+     11  readlink		I
+     11  connect
+      9  rename			I
+      7  times
+      7  recv
+      7  clone
+      6  umask
+      5  pipe
+      5  getrlimit
+      5  _exit
+      4  shutdown
+      3  setsockopt
+      2  sched_get_priority_max
+      2  rmdir
+      2  recvmsg
+      2  pread64
+      2  listen
+      2  geteuid32
+      2  clock_gettime
+      2  bind
+      1  utime
+      1  _sysctl
+      1  shmget
+      1  shmctl
+      1  shmat
+      1  set_tid_address
+      1  set_thread_area
+      1  setrlimit
+      1  sched_getscheduler
+      1  sched_get_priority_min
+      1  sched_getparam
+      1  rt_sigprocmask
+      1  nanosleep
+      1  link
+      1  getsockname
+      1  getresuid32
+      1  getresgid32
+      1  getgid32
+      1  getegid32
+      1  ftruncate64
+      1  ftruncate
+      1  exit_group
+      1  execve
+      1  accept
+
+
+** Calltree format:
+
+    + generic cost annotation language
+	+ could be re-used for output from a profiler ...
+    + increment a byte - wraparound ?
+	-> trigger a hit ?
+
+** Kcachegrind:
+    + replicate 'part view' ?
+
+** Step 1:
+    + trap open / mmaps (and munmaps)
+    + trap all code & data access
+    + log these
+	+ simulate ...
+
+** log memory accesses on the side:
+    + what structure to use for that ?
+
+    + multi-level page lookup (?)
+	+ look at bottom, look at middle, look at top ...
+
+
+** To output:
+    + mmap data ...
+	+ if code: where all the sections are (etc.)
+    + Where we are writing to ...
+	+ what the writes are doing ...
+
+
+** Compress stack trace data ...
+    + [?]
+    + how does callgrind do it ? :-)
+    + re-use (similar?) representation [!?]
+    + 
+
+    + uniquify each stack trace (?)
+	+ hash ?
+	+ itemize loads per trace ?
+
+    + Want a 'bootchart' type view too ...
+
+** Need to log mmap information:
+
+    + use pub_tool_aspacemgr.h (?)
+// See pub_core_aspacemgr.h for description.
+extern NSegment const * VG_(am_find_nsegment) ( Addr a ); 
+
+or pub_core_aspacemgr.h:
+
+/* Notifies aspacem that the client completed an mmap successfully.
+   The segment array is updated accordingly.  If the returned Bool is
+   True, the caller should immediately discard translations from the
+   specified address range. */
+extern Bool VG_(am_notify_client_mmap)
+   ( Addr a, SizeT len, UInt prot, UInt flags, Int fd, Off64T offset );
+
+/* Notifies aspacem that an munmap completed successfully.  The
+   segment array is updated accordingly.  As with
+   VG_(am_notify_munmap), we merely record the given info, and don't
+   check it for sensibleness.  If the returned Bool is True, the
+   caller should immediately discard translations from the specified
+   address range. */
+extern Bool VG_(am_notify_munmap)( Addr start, SizeT len );
+
+syswrap-generic.c:
+
+void 
+ML_(notify_aspacem_and_tool_of_mmap) ( Addr a, SizeT len, UInt prot, 
+                                       UInt flags, Int fd, Off64T offset )
+
+   VG_TRACK( new_mem_mmap, a, len, rr, ww, xx );
+
+
+   VG_(track_new_mem_startup)     ( mc_new_mem_startup );
+   VG_(track_new_mem_stack_signal)( MC_(make_mem_undefined) );
+   VG_(track_new_mem_brk)         ( MC_(make_mem_undefined) );
+   VG_(track_new_mem_mmap)        ( mc_new_mem_mmap );
+
+   VG_(track_die_mem_stack_signal)( MC_(make_mem_noaccess) ); 
+   VG_(track_die_mem_brk)         ( MC_(make_mem_noaccess) );
+   VG_(track_die_mem_munmap)      ( MC_(make_mem_noaccess) ); 
+
+* Accurate per section breakdown for shlib sections ? ;-) [hmm]
+
+* Draw mmaps in a 2nd pass (alpha ?) ...
+
+* FIXME:
+    + add a firmer concept of time into the simulator
+    + stamp each event with the correct time ...
+
+    + how to visualise ?
+	+ each I/O causing event is -so- long that ... (?)
+	+ the others are ~trivial in comparison (?)
+	+ so - Elapsed time is useful & also current time.
+	    + store current time only for mmaps ?
+
+    + re-factor layout code out of the simulator ?
+	+ whack that into the rendering code: build a model.
+	+ then bin the simulator ?
+
+    + inherit each struct from Region (?)
+
+    + get types out of the structure (?)
+
+
+
+TODO:
+    + suck out initial mmap ...
+        + -d -d (?)
+--3336:1:aspacem  <<< SHOW_SEGMENTS: Memory layout at client startup (25 segments, 4 segnames)
+
+    + stack behaves in an odd way - extensions of it etc.
+
+    + Section names
+
+
+
+TODO:
+    + use 'Tree' structure in 'Layout.cs' to generate a pleasing layout.
+        [ + track & generate overlaps [?] - or ignore them ? ]
+    + write some (manually generated) test cases that map / unmap / re-map
+      the same address space
+
+    + prune 'using' lines ...
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/splash.txt
+++ openoffice.org-2.4.1/ooo-build/doc/splash.txt
@@ -0,0 +1,12 @@
+Changes / complexity in splash branding
+
+* Current code just reads intro.bmp from program/
+
+* Help->About code
+    + reads file of name from ooo.src
+    + images.zip created in instsetoo_native/packimages/makefile.mk
+	+ includes file with name from ooo.src via .ilst
+    + not included in Gnome though ...
+
+* For now - just hack d.lst to deliver our splash
+    + this also grotesquely dithered - by slow loading code.
--- openoffice.org-2.4.1.orig/ooo-build/doc/callcatcher.txt
+++ openoffice.org-2.4.1/ooo-build/doc/callcatcher.txt
@@ -0,0 +1,22 @@
+To collect the callcatcher data:
+
+Index: bin/build-ooo
+===================================================================
+--- bin/build-ooo	(revision 10212)
++++ bin/build-ooo	(working copy)
+@@ -53,6 +53,11 @@
+     . $OOBUILDDIR/*.Set.sh
+ fi
+ 
++export CXX="callcatcher g++"
++export CC="callcatcher gcc"
++export LINK="callcatcher g++"
++export LIBMGR="callarchive ar"
++
+ # Check to see if dmake was not there - if not, this is a from-pristine build
+ echo "Build: z$BUILD_DMAKE == zYES -a ! -f $SOLARENV/$OUTPATH/bin/dmake";
+ if test "z$BUILD_DMAKE" == "zYES" -a ! -f "$SOLARENV/$OUTPATH/bin/dmake"; then
+
+More info:
+
+http://www.csn.ul.ie/~caolan/Packages/callcatcher.html
--- openoffice.org-2.4.1.orig/ooo-build/doc/configmgr.txt
+++ openoffice.org-2.4.1/ooo-build/doc/configmgr.txt
@@ -0,0 +1,1130 @@
++ interlocked foo ..
+    + salhelper::SimpleReferenceObject
+    + bin 'simplereferenceobject.hxx' includes (?)
++ kill memory-segment foo ...
++ kill cacheline accessor bits 
+
++ back-port:
+    + commit ...
+
++ add locking to the 'idle writer' [thing...]
++ next slow thing:
+    + the binary cache reading thing [urgh]
+	+ string reduction foo ...
+
+
+** Warning Free Build ** [!?:-]
+
++ profiling:
+    + string / isNamed optimisation
+    + implMakeNormalizedPredicate:
+	+ pre-scan to avoid allocation / duplication (?)
+	+ what is the common case ?
+
+    + we call 'implMakeCompositeName'
+	then  'implSplitCompositeName' - in short sequence ...
+	    + tons of extra allocation & pain ;-) [ why ? ]
+
++ this is calling 'getElementNames' ... [ how can it be so slow ? ;-]
+    + the 'ElementTree' sub-class needs to be cleverer [!]
+
+2 - SetVisitorAdaptor::visit
+3 - CollectNodeNames::handle
+4 - Tree::getName
+5 - TreeImpl::getSimpleNodeName
+6 - TreeImpl::getSimpleRootName
+    Name TreeImpl::getSimpleRootName() const
+    {
+	return doGetRootName().getName();
+    }
+	-> configpath.cxx (Component::getName):
+	    Name Component::getName()    const SAL_THROW(())
+	    {
+		if (isSimpleName()) return m_aName;
+
+		OUString sName, sType;
+		implSplitCompositeName(m_aName,sType,sName);
+        
+		return Name(sName,PackageOnly());
+	    }
+	-> [ URGH !? ;-]
+
+7 - ElementTreeImpl::doGetRootName
+    Path::Component ElementTreeImpl::doGetRootName() const
+        { return makeExtendedName( m_aElementName ); }
+8 - ElementTreeImpl::makeExtendedName ...
+    Path::Component ElementTreeImpl::makeExtendedName(Name const& _aSimpleName) const
+    {
+	Name aTypeName = implGetOriginalName(root_());
+	... grind grind ...
+
+
+	    CollectPropertyInfo::Result CollectNodeNames::handle(configuration::Tree const& aTree, configuration::NodeRef const& aNode)
+	    {
+		    m_aList.push_back(aTree.getName(aNode).toString());
+		    return CONTINUE;
+	    }
+
+
++ before:
+(per iteration) 0.068004
+(per iteration) 0.065609
+(per iteration) 0.065594
+with Accessor stubbed:
+(per iteration) 0.055364
+(per iteration) 0.055060
+(per iteration) 0.054961
+
++ remove accessor.hxx ...
+
++ to debug:
+    ENVCFGFLAGS="-me -tiwepd" ./soffice.bin -writer
+
++ 'OneLock'
+    + bin 'Accessor' foo ...
+    + 
+
+inc/
+attributelist.hxx:69:    virtual sal_Int16 SAL_CALL getLength(void) throw (::com::sun::star::uno::RuntimeException);
+bootstrapcontext.hxx:137:                throw (uno::RuntimeException);
+bootstrap.hxx:112:            throw (uno::RuntimeException) ;
+cacheddataprovider.hxx:204:                The exact exception being thrown may depend on the underlying backend.
+configexcept.hxx:125:		WrappedUnoException rethrowWrapped(Except const& anException)
+confsvccomponent.hxx:84:		virtual uno::Sequence<sal_Int8> SAL_CALL getImplementationId(  ) throw(uno::RuntimeException);
+interactionrequest.hxx:114:            throw( uno::RuntimeException );
+mergeddataprovider.hxx:83:            @throws com::sun::star::uno::Exception
+oslstream.hxx:85:                throw(stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException);
+propertysethelper.hxx:78:    virtual uno::Any SAL_CALL queryInterface( uno::Type const & rType ) throw (uno::RuntimeException);
+serviceinfohelper.hxx:116:            throw(uno::RuntimeException);
+
+
+api2/
+    + ' impl.*' all in these guys:
+accessimpl.hxx:85:			throw(uno::RuntimeException);
+    + all take 'GuardedNodeDataAccess' ...
+        + clobbered that (accessimpl.hxx)
+apinotifierimpl.hxx:74:			throw(uno::RuntimeException);
+    + uses GuardedNotifier (cf. confignotifier.hxx)
+elementimpl.hxx:80:			throw(uno::RuntimeException);
+    + some manual extras ...
+    + also DisposeGuard -> UnoApiLock (confignotifier.hxx)
+    + also GuardedRootElement (apitreeaccess.hxx)
+    + also GuardedTreeElement
+propsetaccessimpl.hxx:149:			throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException);
+    + GuardedNodeUpdate - also take it ...
+    + some explicit ...
+providerimpl.hxx:163:                @throws com::sun::star::lang::IllegalArgumentException
+    + non-event (?)
+updateimpl.hxx:69:			throw(css::lang::IllegalArgumentException, css::container::NoSuchElementException, css::lang::WrappedTargetException, uno::RuntimeException);
+    + use existing guards...
+
+
++ locked:
+    confprovider2.hxx:78:				throw(uno::Exception, uno::RuntimeException);
+	+ clobbered
+    provider.hxx:135:		virtual uno::Reference< beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(uno::RuntimeException);		
+	+ clobbered
+
+    propertiesfilterednotifier.hxx:58:		virtual void SAL_CALL acquire(  ) throw();
+    propertyinfohelper.hxx:62:			throw(uno::RuntimeException);
+	+ looks ok.
+
+elementaccess.hxx:118:		virtual void SAL_CALL acquire() throw();
+groupaccess.hxx:94:				throw(uno::RuntimeException);
+groupobjects.hxx:85:		uno::Any SAL_CALL queryInterface( uno::Type const& rType ) throw (uno::RuntimeException );
+groupupdate.hxx:68:		uno::Any SAL_CALL queryInterface( uno::Type const& rType ) throw (uno::RuntimeException );
+listenercontainer.hxx:170:			 * @throw com::sun::star::lang::DisposedException
+propertysetaccess.hxx:103:			throw(uno::RuntimeException);
+setaccess.hxx:105:				throw(uno::RuntimeException);
+setobjects.hxx:84:		uno::Any SAL_CALL queryInterface( uno::Type const& rType ) throw (uno::RuntimeException );
+setupdate.hxx:78:		uno::Any SAL_CALL queryInterface( uno::Type const& rType ) throw (uno::RuntimeException );
+
+
++ regression tests:
+    // May be there is no type set ...
+    if (xCfg->hasByName(TYPES_SET))
+	+ called on a 'set' instead of a value ... [!?]
+
+
++ treemgr/ - API:
+    configpath.cxx:
+	+ configuration::Name (oustring), ::Path, 
+    configdefaultprovider.cxx
+    configexcept.cxx - exceptions
+    configgroup.cxx
+    configset.cxx
+    nodechange.cxx
+    nodechangeinfo.cxx
+    noderef.cxx
+    roottree.cxx
+    template.cxx
+
+    + 'viewstrategy' - determines how the view is used ...
+    + TreeMgr: evilness:
+        + bin evil 'source/treemgr/viewnode.hxx' ...
+	    + 'Tree' (Accessor+'TreeData*')
+
+
+
++ Profile:
+    + kcachegrind shows lots of time in GroupNodeAccess::implGetChild(Name)...
+	+ ~300k calls to 'compare' during writer startup
+	+ ViewStrategy's 'getMemberValueAccess' ...
+    + a 1 element cache:
+	- check the last thing,
+	+ the one after [ for linear walks ]
+	    + should be easy ... :-)
+	+ cf. ~/esc/amd/configmgr-performance.png [!]
+	    + should save a -ton- of cycles ...
+
+** TODO:
+   + understand how writes to the treecache work ...
+	+ api2/propsetaccessimpl.cxx (implSetPropertyValue):
+		NodeChange aChange = lock.getNodeUpdater().validateSetValue( aChild, aValue );
+		if (aChange.test().isChange())
+		{
+			Broadcaster aSender(rNode.getNotifier().makeBroadcaster(aChange,true));
+			aSender.queryConstraints(aChange);
+			aTree.integrate(aChange, aNode, true);
+	+ treemgr/noderef.cxx (Tree::integrate):
+		aChange.apply();
+	+ treemgr/nodechangeimpl.cxx (implApply)
+		... -> virtual 'doApply'
+	+ treemgr/valuemembernode.cxx (ValueMemberUpdate::setValue)
+		+ deferredoperation [or] - 'data::ValueNodeAccess::setValue ...'
+	+ tree/valuenodeaccess.cxx
+		+ [ just writes directly into sharable::ValueNode ]
+   + how does ' SetInsertImpl' work ?
+	+ (?) ->
+	+ treemgr/viewstrategy.cxx 'ViewStrategy::insertElement' ->
+	    'ViewStrategy::doInsertElement' (virtual)
+	    -> deferredview, readonlyview, directview ...
+	+ treemgr/setnodeimpl.cxx (insertElement)
+	    + 'ElementSet::insertElement'
+		+ whacks it into a hash: 'ElementSet' ...
+	+ treemgr/directview.cxx (doInsertElement):
+	+ treemgr/treeimpl.cxx (ElementTreeImpl::attachTo)
+        if (memory::Segment * pTargetSpace = getUpdatableSegment(*pOwningTree))
+        {
+            memory::UpdateAccessor aTargetAccessor(pTargetSpace);
+
+            // copy over to the new segment
+            data::TreeAddress aNewElement = m_aOwnData.getTreeAccess().copyTree(aTargetAccessor);
+            data::SetNodeAccess::addElement(aOwningSet,  aNewElement);
+            data::TreeAccessor aNewAccessor(aTargetAccessor.downgrade(),aNewElement);
+            rtl::Reference<view::ViewStrategy> xNewBehavior = pOwningTree->getViewBehavior();
+            this->rebuild(xNewBehavior,aNewAccessor,m_aOwnData.getAccessor());
+	+ treemgr/setnodeaccess.cxx (SetNodeAccess::addElement)
+	    + Just (pre)-pends to linked list [ no memory problems ... ]
+** Understand - set removal & holding of references ... [?]
+   + all refs by name ?
+	+ Only 2 types of change: SetChange & NodeChange ...
+
+   + understand how locking / lifecycle works here ...
+	+ [ if at all (!) ]
+
+** Obvious:
++ cleanup:
+   'sharable' -> 'shareable' ? 
+/data/OpenOffice/ooe680-m2/configmgr/source/tree/builddata.cxx:636: warning: unused parameter ‘_anUpdater’
+/data/OpenOffice/ooe680-m2/configmgr/source/data/anydata.cxx:430: warning: unused parameter ‘_anAccessor’
+/data/OpenOffice/ooe680-m2/configmgr/source/data/sequence.cxx:384: warning: unused parameter ‘_anAccessor’
+/data/OpenOffice/ooe680-m2/configmgr/source/tree/setnodeaccess.cxx:108: warning: unused parameter ‘_aAccessor’
+
+** Next step:
+    + Hack cacheline.cxx - m_base storage [etc. !]...
+
+    + Start on the NodeAddress -> NodeAccessor change ?
+
+    + have a drive on removing un-used UpdateAccessors ? [etc.]
+	+ have a 'SegmentLock' instead (?)
+
+** understand the treecache
+    + grep -R '"cache' source
+	+ shows the entry points [!]
+
+    + 'cacheddataprovider.hxx'
+	+ seems to be the main lifecycle API
+    + cachefactory.hxx: 'createCacheManager'
+	+ api2/providerimpl.cxx:
+	    + returns a 'TreeManager'
+	    + access goes via that API ...
+**  + All calls come in via the TreeManager impl ...
+
+    ** TreeManager holds 'CacheData' and also a map of
+                         CacheClientAccess -> CacheData
+
+    + When a module is 'dead'
+	+ cacheaccess.cxx: CacheLoadingAccess tracks it in m_aDeadModules (2x)
+	+ CacheLoadingAccess
+	    - rather naughty about tracking the modules
+	    - doesn't clean them from the CacheData object.
+	+ everyone else is rather good ...
+    + What is the relation between CacheLoadingAccess & CacheData ?
+	+ is the client ref count critical ?
+		+ clientRelease / clientAcquire
+		+ CacheLineClientRef - under-used & bogus internal ref.
+	+ reference++:
+		+ acquireModule, acquireNode, insertDefaults,
+		  addTemplates, addComponentData
+	+ reference--
+		+ releaseModule, 'releasePending' !?, 
+	+ Horrific:
+		+ acquireModule -> opaque 'address', with no
+		  auto-ref-counting semantics.
+
++ cachecontroller.cxx: [!]
+    * Each 'loadComponent' call must have a 'freeComponent' call...
+	+ we have 69 'loading component'
+	+ and only 43 'releasing module's ... [urk]
+
++ peeling back to:
+    + treemanager.cxx (requestSubtree):
+	+ each 'request for subtree' must have matching
+    + treemanager.cxx (releaseSubtree):
+	+ 'releasing subtree'
+**	+ Odd ! - these seem to pair up perfectly ... **
+	+ 'aCache->releasenode(...) ?
+	+ aCache == CacheClientAccess ...
+
+Leaking 4 trees total (61)
+[0001] info (004698):      Discarding CacheData (Still holding 4 module trees)
+  entry 'org.openoffice.Office.TypeDetection' (0x82a8d40)
+  entry 'org.openoffice.TypeDetection.Filter' (0x82f7588)
+  entry 'org.openoffice.TypeDetection.Misc' (0x855da80)
+  entry 'org.openoffice.TypeDetection.Types' (0x82a9ff8)
+
+	+ -apparently- both setup with 'addComponentData'
+		+ is it a hierarchical thing ?
+
+
+* Do what Joerg suggests at the bottom:
+
+Notes on configmgr2
+      [ why is this so impossibly slow & inefficient ! ]
+
++ work on patches/test/configmgr-profile.diff:
+	+ fixup tree-tests:
+		+ act on profile:
+		+ it's all the ~Reference<XNameAccess>
+			that causes the pain ...
+
+Observations
+    + the UNO API mandates that everything must be thread-safe
+	+ across 2 adjacent key access everything could change
+	+ this is not what anyone wants
+
+    + new API ?
+	+ any = getStructure (path, type)
+	    + 1 set of locking & iteration (?)
+	    + getSubPath:
+
+*** Performance ***
+    + ~NotifierImpl - burns 56million instructions
+	-> listenercontainer.hxx ...
+	invariably has just 1 listener.
+	    + created by ApiTreeImpl:
+		+ m_aNotifier (new NotifierImpl(aTree))
+	    + NotifierImplHolder:
+		+ a vos::ORef<NotifierImpl>
+		+ [ can it not smart-create ? ]
+
+
+*** Notes ***
+
+    + 2 types of 'tree' node:
+	+ Group - presumably a normal node
+	+ Set - presumably a simple list
+
+    + Question:
+	+ is it *really* worth screwing around with
+	  this design ?
+	+ generate some statistics.
+
+*** API ***
+
+**** UNO ****
+
+container::XChild, container::XNamed, lang::XComponent,
+configuration::XTemplateInstance, lang::XUnoTunnel
+beans::XPropertySet, beans::XMultiPropertySet ...
+util::XRefreshable, util::XFlushable, util::XStringEscape
+
+  + source/
+    + api2/
+	+ elementaccess.hxx:
+	    + BasicInnerElement: XChild, XNamed
+	    + BasicSetElement: XChild, XNamed, XComponent
+			       XTemplateInstance, XUnoTunnel
+	    + BasicRootElement: XNamed, XComponent,
+				XChangesNotifier, XLocalizable
+	    + BasicUpdateelement: BasicRootElement, XChangesBatch
+	+ groupaccess.hxx:
+	    + BasicGroupAccess: XNameAccess, XHierarchicalName,
+				XHierarchicalNameAccess, XContainer,
+				XExactName, XProperty
+	+ propertysetaccess.hxx:
+	    + BasicPropertySet: XPropertySet, XMultiPropertySet,
+				XHierarchicalPropertySet,
+				XMultiHierarchicalPropertySet,
+				XPropertyState, XMultiPropertyStates
+	+ provider.hxx:
+	    + OProvider: XMultiServiceFactory, XLocalizable,
+			 XRefreshable, XFlushable
+	+ setaccess.hxx:
+	    + BasicSetAccess: XNameAccess, XHierarchicalName,
+			      XHierarchicalNameAccess, XContainer,
+			      XExactName, XProperty, XPropertySetInfo,
+			      XTemplateContainer, XStringEscape
+
+**** api2/configapi layer ****
+
+    This is used by all the UNO wrappers, and features a much simpler
+API, works on both NodeGroup & NodeSet node references
+[NodeSetInfoAccess eg.]
+
+	+ All operates on:
+	    + configuration::Tree references
+
+	+ apinodeaccess.cxx:
+	    + makeElement
+	    + makeUnoElement
+	    + GuardedNodeAccess:
+	+ accessimpl.cxx:
+	    + implGetByName
+		+ takes a GuardedNodeDataAccess lock.
+
+	+ calls into 'configuration' API
+	    ::configuration::getChildOrElement
+	    ::configuration::validateAndReducePath
+	    ::configuration::getDeepDescendant
+
+	+ apifactory.cxx:
+	    + configapi::Factory::
+		+ makes UNO proxies for things
+
+	+ apifactoryimpl.cxx:
+	    + ReadOnlyObjectFactory::doCreateSetElement
+		+ creates set elements.
+
+	+ groupobjects.cxx:
+	    + OSetElementGroupInfo
+
+	+ apiaccessobj.hxx:
+	    + OSetElement
+		+ instantiates an ApiTreeImpl
+
+	+ apitreeimplobj.cxx:
+	    + ApiTreeImpl::ApiTreeImpl + ::init
+	    + adds notifiers & all manner of gubbins
+
+	+ notifierimpl.hxx
+	    + 1 member: a SpecialListenerContainer
+
+	+ listenercontainer.cxx
+	    + manages XEventListener, XContainerListener,
+	      XChangesListener, XPropertyChangeListener,
+	      XVetoableChangeListener [etc.]
+	      XPropertiesChangeListener
+**	    + the vetoing - requires synchronous
+	      listening (always?) ... 
+
+	    typedef SpecialListenerContainer <SubNodeID,SubNodeHash,SubNodeEq,SubNodeToIndex> SpecialContainer;
+	    ...
+	    typedef cppu::OMultiTypeInterfaceContainerHelperVar< Key_,KeyHash_,KeyEq_ >	SpecialContainerHelper;
+	    + Slowness via  OBroadcastHelperVar<> m_aSpecialHelper
+	    	    + 100 elements ?
+		    + default bucket count:
+			+ we -usually- only use 1 element so ...
+
+	+ cppuhelper/inc/cppuhelper/interfacecontainer.h
+	    + OMultiTypeInterfaceContainerHelper
+	    + interesting: can add / remove same thing
+	      multiple times [ with a simple ref-count ? ]
+
+	+ since each node has an (allocated) NotifierImpl anyway
+	    + why not let the node track listeners itself ?
+	    + far easier to find & manage surely ?
+
+	+ what are in these buckets ?
+	    + are there 100 buckets to clear (each?)
+	    + 36million cycles
+
+	+ NotifierImpl much loved by:
+	    + broadcaster.cxx
+	    + confignotifier.cxx
+	    + apitreeimplobj.cxx
+
+	+ void configmgr::configapi::NotifierImpl::add(const configmgr::configuration::NodeID&,
+	       const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener>&)
+	    + called for every node [ for some reason ]
+
+
+* Listener Impls *
+	+ provider.cxx:
+	    + OProviderDisposingListener
+	    + implements XEventListener_BASE
+	+ propertiesfilterednotifier.cxx:
+	    + XPropertiesChangeListener,
+	      XEventListener
+	+ broadcaster.cxx (?)
+
+	+ One of the 'special' things about the cppuhelper container
+
+
+    /*/.Name,.Property,.Value
+
+
+  + 'GetGreatBlob' API call
+    + how to manage the UNO type data for that ?
+    + how to create a truly 'generic' type ?
+	+ ultimately a sequence of any's (right) ?
+	+ do we need a new type ?
+	+ can we mangle some existing call ?
+
+
+** Plague of listeners **:	
+
+#0  configmgr::configapi::NotifierImpl::add (this=0xb5740e58, aNode=@0xbf853c24, xListener=@0xbf853d04) at notifierimpl.hxx:122
+#1  configmgr::configapi::Notifier::add (this=0xbf853c6c, aNode=@0xbf853c78, xListener=@0xbf853d04) at configmgr/source/api2/confignotifier.cxx:126
+#2  configmgr::configapi::genericAddListener<com::sun::star::lang::XEventListener> (rNode=@0xb573e1f4, xListener=@0xbf853d04) at configmgr/source/api2/apinotifierimpl.cxx:84
+#3  configmgr::configapi::implAddListener (rNode=@0xb573e1f4, xListener=@0xbf853d04) at configmgr/source/api2/apinotifierimpl.cxx:178
+#4  configmgr::BasicRootElement::addEventListener (this=0xb573e1a0, xListener=@0xbf853d04) at configmgr/source/api2/elementaccess.cxx:283
+
+
+adds the ApiTreeImpl as a listener:
+
+#5  configmgr::configapi::ApiTreeImpl::ComponentAdapter::setComponent (this=0xb5672f10, rxSlot=@0xb5672f28, xComp=@0xbf853d6c) at configmgr/source/api2/apitreeimplobj.cxx:150
+#6  configmgr::configapi::ApiTreeImpl::ComponentAdapter::setParent (this=0xb5672f10, xParent=@0xbf853d6c) at configmgr/source/api2/apitreeimplobj.cxx:168
+#7  configmgr::configapi::ApiTreeImpl::setParentTree (this=0xb56772bc, pParentTree=0xb573e1f8) at configmgr/source/api2/apitreeimplobj.cxx:730
+#8  configmgr::configapi::ApiTreeImpl::init (this=0xb56772bc, pParentTree=0xb573e1f8) at configmgr/source/api2/apitreeimplobj.cxx:671
+#9  ApiTreeImpl (this=0xb56772bc, pInstance=0xb5677264, rProvider=@0xb58da3ac, aTree=@0xbf853ee4, pParentTree=0xb573e1f8) at configmgr/source/api2/apitreeimplobj.cxx:417
+#10 OSetElement (this=0xb56772b4, pUnoThis=0xb5677264, aTree=@0xbf853ee4, rProvider=@0xb58da3ac, pParentTree=0xb573e1f8) at apiaccessobj.hxx:106
+#11 OSetElementGroupInfo (this=0xb5677250, aTree=@0xbf853ee4, rProvider=@0xb58da3ac, pParentTree=0xb573e1f8) at groupobjects.hxx:153
+#12 configmgr::configapi::ReadOnlyObjectFactory::doCreateSetElement (this=0xb58da384, aElementTree=@0xbf853f48, pSetElementTemplate=0x0) at configmgr/source/api2/apifactoryimpl.cxx:151
+#13 configmgr::configapi::Factory::makeElement (this=0xb58da384, aTree=@0xbf854068, aNode=@0xbf853fdc) at configmgr/source/api2/apifactory.cxx:193
+#14 configmgr::configapi::Factory::makeUnoElement (this=0xb58da384, aTree=@0xbf854068, aNode=@0xbf853fdc) at configmgr/source/api2/apifactory.cxx:164
+#15 configmgr::configapi::makeElement (rFactory=@0xb58da384, aTree=@0xbf854068, aNode=@0xbf854050) at configmgr/source/api2/apinodeaccess.cxx:134
+#16 configmgr::configapi::implGetByName (rNode=@0xb573e1f4, sName=@0xb56dc010) at configmgr/source/api2/accessimpl.cxx:697
+#17 configmgr::BasicSetAccess::getByName (this=0xb573e1c8, sName=@0xb56dc010) at configmgr/source/api2/setaccess.cxx:127
+
+
+Instrumented access pattern wrt. m_aListeners:
+
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/confignotifier.cxx:111 configmgr::configapi::NotifierImpl::NotifierImpl(const configmgr::configuration::TreeRef&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:465 void configmgr::configapi::ApiTreeImpl::setNodeInstance(const configmgr::configuration::NodeRef&, configmgr::configapi::UnoInterface*)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/notifierimpl.hxx:122 void configmgr::configapi::NotifierImpl::add(const configmgr::configuration::NodeID&, const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener>&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:473 bool configmgr::configapi::ApiTreeImpl::isAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/notifierimpl.hxx:213 void configmgr::configapi::NotifierImpl::remove(const configmgr::configuration::NodeID&, const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener>&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:584 bool configmgr::configapi::ApiTreeImpl::implDisposeTree(const configmgr::memory::Accessor&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:473 bool configmgr::configapi::ApiTreeImpl::isAlive() const
+Error: File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx, Line 533
+Backtrace: [0] ./configmgr2.uno.so: ???+0x1a065c
+Backtrace: [1] ./configmgr2.uno.so: ???+0x19ca99
+Backtrace: [2] ./configmgr2.uno.so: ???+0x1a91ef
+Backtrace: [3] ./configmgr2.uno.so: ???+0x1a7352
+Backtrace: [4] ./configmgr2.uno.so: ???+0x1ac473
+Backtrace: [5] /opt/OOInstall/program/cfgdemo: ???+0x3ba9
+Backtrace: [6] /opt/OOInstall/program/cfgdemo: ???+0x31bd
+Backtrace: [7] /opt/OOInstall/program/cfgdemo: ???+0x35b8
+Backtrace: [8] /opt/OOInstall/program/cfgdemo: main+0x1d8
+Backtrace: [9] /lib/libc.so.6: __libc_start_main+0xdc
+Backtrace: [10] /opt/OOInstall/program/cfgdemo: __gxx_personality_v0+0x59
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/confignotifier.cxx:111 configmgr::configapi::NotifierImpl::NotifierImpl(const configmgr::configuration::TreeRef&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:465 void configmgr::configapi::ApiTreeImpl::setNodeInstance(const configmgr::configuration::NodeRef&, configmgr::configapi::UnoInterface*)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/notifierimpl.hxx:122 void configmgr::configapi::NotifierImpl::add(const configmgr::configuration::NodeID&, const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener>&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:480 void configmgr::configapi::ApiTreeImpl::checkAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:473 bool configmgr::configapi::ApiTreeImpl::isAlive() const
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/notifierimpl.hxx:213 void configmgr::configapi::NotifierImpl::remove(const configmgr::configuration::NodeID&, const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener>&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:584 bool configmgr::configapi::ApiTreeImpl::implDisposeTree(const configmgr::memory::Accessor&)
+File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx:473 bool configmgr::configapi::ApiTreeImpl::isAlive() const
+Error: File /opt/OpenOffice/OOO_2_0_2/configmgr/source/api2/apitreeimplobj.cxx, Line 533
+
+** configmgr-lesslock.diff
+
+    + analysing what's really going on...
+    + SegmentHeap
+	[ concurrent access possible ? ]
+
+    + class Segment {
+	    SegmentHeap m_heap;
+	    ...
+      };
+
+    + class SegmentHeap : Noncopyable
+
+ource/inc/datalock.hxx:49:             virtual void acquireReadAccess() = 0;
+source/inc/segment.hxx:91:            void const * acquireReadAccess() const 
+source/inc/segment.hxx:93:                this->lock().acquireReadAccess();
+source/data/updateaccessor.cxx:78:                base = m_segment->acquireReadAccess();
+source/data/simpleheap.cxx:179:            virtual void acquireReadAccess() { m_mutex.acquire(); }
+source/data/accessor.cxx:58:            void const * base = m_segment ? m_segment->acquireReadAccess() : NULL;
+
+source/inc/datalock.hxx:52:             virtual void acquireWriteAccess() = 0;          
+source/inc/segment.hxx:80:            Heap& acquireWriteAccess()       
+source/inc/segment.hxx:82:                this->lock().acquireWriteAccess(); 
+
+on a segment:
+source/data/updateaccessor.cxx:57:            m_heap = (m_segment) ? &m_segment->acquireWriteAccess() : 0;
+source/data/simpleheap.cxx:182:            virtual void acquireWriteAccess() { m_mutex.acquire(); }     
+
+
++ datalock.hxx: DataLock (typedef'd to Lock)
+
+   
+it *seems* that 'isValidAddress'
+    + burns 25% of time with debug build - is this
+      the use of all this book-keeping state ?
+
+    + SimpleCheckingHeapManager:
+	+ only 2 instances (static):
+	    + cacheHeap()
+	    + localHeap()
+
+    + Question:
+	+ is the batch freeing of a 'Heap' relied on ?
+
+* Strategy:
+    + rip out the custom allocator crud ...
+    + [ totally unnecessary ]
+	+ Address - hunt/destroy (?)
+    + hoist any 'Heap' stuff up as a 'shared lock' class (?)
+	+ if it's used ...
+        + Heap used for batch freeing too (!?) [urgh]
+
+    + write a test tool ? [ for performance ]
+	+ [ automated regression tests ? ]
+
+TODO:
+    + remove 'realloc' - never called in anger ?
+    + 'anydata' should be an UNO type [ surely ... ]
+
+    + calls to 'allocate'
+
+source/data/sequence.cxx:131:    Sequence aResult = _anAllocator.allocate(nTotalSize);
+source/data/sequence.cxx:209:    OSL_ENSURE(_pSeqData, "ERROR: Trying to allocate from a NULL sequence");
+source/data/sequence.cxx:312:    _anAllocator.deallocate(_aSeq);
+source/data/sequence.cxx:321:    _anAllocator.deallocate(_aSeq);
+
+source/data/anydata.cxx:234:            Address aStorage = _anAllocator.allocate( sizeof nValue );
+source/data/anydata.cxx:245:            Address aStorage = _anAllocator.allocate( sizeof dValue );
+source/data/anydata.cxx:260:        OSL_ENSURE( false, "Trying to allocate void value" );
+source/data/anydata.cxx:405:        _anAllocator.deallocate(_aData.longValue);
+source/data/anydata.cxx:409:        _anAllocator.deallocate(_aData.doubleValue);
+
+source/tree/builddata.cxx:646:    Address aBaseAddress = _anUpdater.allocator().allocate(nFragmentSize);
+source/tree/builddata.cxx:1201:    allocator().deallocate( _aBaseAddress.addressValue() );
+source/tree/node.cxx:242:    Address aData = _anAllocator.allocate(sizeof(SetNodeTemplateData));
+source/tree/node.cxx:281:    _anAllocator.deallocate(_aTemplateData);
+
+chains to heap:
+source/data/updateaccessor.cxx:112:            return m_heap ? m_heap->allocate(_sz) : Allocator::Address();
+source/data/updateaccessor.cxx:119:            if (m_heap) m_heap->deallocate(_addr);
+
+
+Supposed leaks: 5 items:
+
+#0  configmgr::memory::SimpleCheckingHeapManager::destroyHeap (this=0xa3e3d990, _aHeap=0x8132148)
+    at /data/OpenOffice/ood680-m4/configmgr/source/data/simpleheap.cxx:354
+#1  0xa3d6ae0d in ~Heap (this=0x8131cdc) at /data/OpenOffice/ood680-m4/configmgr/source/data/heap.cxx:78
+#2  0xa3d6b175 in ~SegmentHeap (this=0x8131cd8) at /data/OpenOffice/ood680-m4/configmgr/source/data/segmentheap.cxx:58
+#3  0xa3be96f3 in ~Segment (this=0x8131cd8) at ../inc/segment.hxx:56
+#4  0xa3be98f3 in ~CacheLine (this=0x8131cd0) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.hxx:75
+#5  0xa3bd79b1 in salhelper::SimpleReferenceObject::release (this=0x8131cd0)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/salhelper/simplereferenceobject.hxx:98
+#6  0xa3be4df0 in rtl::Reference<configmgr::CacheLine>::set (this=0x81302dc, pBody=0x8140d50)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:125
+#7  0xa3be4e10 in rtl::Reference<configmgr::CacheLine>::operator= (this=0x81302dc, handle=@0xbfe36150)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:136
+#8  0xa3be6853 in configmgr::CacheData::internalAddModule (this=0x810fb70, _aName=@0xbfe361e4, _aModule=@0xbfe36150)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:166
+#9  0xa3be3382 in configmgr::TemplateCacheData::implNewCacheLine (this=0x810fb70, _aModule=@0xbfe361e4)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:443
+#10 0xa3be33fc in configmgr::TemplateCacheData::createDataSegment (this=0x810fb70, _aModule=@0xbfe361e4)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:396
+#11 0xa3bedaca in configmgr::backend::CacheController::addTemplates (this=0x810fb38, _aComponentInstance=@0xbfe3628c)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:565
+#12 0xa3bf0c7b in configmgr::backend::CacheController::loadComponent (this=0x810fb38, _aRequest=@0xbfe36314)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:462
+#13 0xa3bf924a in configmgr::TreeManager::requestSubtree (this=0x810fe00, aSubtreePath=@0xbfe3645c, _aOptions=@0xbfe364cc)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/treemanager.cxx:344
+#14 0xa3d0b981 in configmgr::OProviderImpl::requestSubtree (this=0x80eca30, aSubtreePath=@0xbfe3645c, _aOptions=@0xbfe364cc)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:428
+#15 0xa3d0c152 in configmgr::OProviderImpl::buildReadAccess (this=0x80eca30, _rAccessor=@0xbfe364e4, _aOptions=@0xbfe364cc, nMinLevels=-1)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:581
+#16 0xa3d11b6d in configmgr::OConfigurationProviderImpl::createReadAccess (this=0x80eca30, aArgs=@0xbfe36574)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/confproviderimpl2.cxx:108
+#17 0xa3d0edee in configmgr::OConfigurationProvider::createInstanceWithArguments (this=0x80ec2b0, aServiceSpecifier=@0xbfe36584, aArguments=@0xbfe36574)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/confprovider2.cxx:364
+
+Leaked: 5 items
+
+#0  configmgr::memory::SimpleCheckingHeapManager::destroyHeap (this=0xa3e3d990, _aHeap=0x8558618)
+    at /data/OpenOffice/ood680-m4/configmgr/source/data/simpleheap.cxx:354
+#1  0xa3d6ae0d in ~Heap (this=0x856751c) at /data/OpenOffice/ood680-m4/configmgr/source/data/heap.cxx:78
+#2  0xa3d6b175 in ~SegmentHeap (this=0x8567518) at /data/OpenOffice/ood680-m4/configmgr/source/data/segmentheap.cxx:58
+#3  0xa3be96f3 in ~Segment (this=0x8567518) at ../inc/segment.hxx:56
+#4  0xa3be98f3 in ~CacheLine (this=0x8567510) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.hxx:75
+#5  0xa3bd79b1 in salhelper::SimpleReferenceObject::release (this=0x8567510)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/salhelper/simplereferenceobject.hxx:98
+#6  0xa3be4df0 in rtl::Reference<configmgr::CacheLine>::set (this=0x81e351c, pBody=0x85ee688)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:125
+#7  0xa3be4e10 in rtl::Reference<configmgr::CacheLine>::operator= (this=0x81e351c, handle=@0xbfe351e0)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:136
+#8  0xa3be6853 in configmgr::CacheData::internalAddModule (this=0x810fb70, _aName=@0xbfe35274, _aModule=@0xbfe351e0)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:166
+#9  0xa3be3382 in configmgr::TemplateCacheData::implNewCacheLine (this=0x810fb70, _aModule=@0xbfe35274)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:443
+#10 0xa3be33fc in configmgr::TemplateCacheData::createDataSegment (this=0x810fb70, _aModule=@0xbfe35274)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:396
+#11 0xa3bedaca in configmgr::backend::CacheController::addTemplates (this=0x810fb38, _aComponentInstance=@0xbfe3531c)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:565
+#12 0xa3bf0c7b in configmgr::backend::CacheController::loadComponent (this=0x810fb38, _aRequest=@0xbfe353a4)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:462
+#13 0xa3bf924a in configmgr::TreeManager::requestSubtree (this=0x810fe00, aSubtreePath=@0xbfe354ec, _aOptions=@0xbfe3555c)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/treemanager.cxx:344
+#14 0xa3d0b981 in configmgr::OProviderImpl::requestSubtree (this=0x80eca30, aSubtreePath=@0xbfe354ec, _aOptions=@0xbfe3555c)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:428
+#15 0xa3d0bd8a in configmgr::OProviderImpl::buildUpdateAccess (this=0x80eca30, _rAccessor=@0xbfe35574, _aOptions=@0xbfe3555c, nMinLevels=-1)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:623
+#16 0xa3d11963 in configmgr::OConfigurationProviderImpl::createUpdateAccess (this=0x80eca30, aArgs=@0xbfe356b8)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/confproviderimpl2.cxx:140
+#17 0xa3d0edee in configmgr::OConfigurationProvider::createInstanceWithArguments (this=0x80ec2b0, aServiceSpecifier=@0xbfe356bc, aArguments=@0xbfe356b8)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/confprovider2.cxx:364
+#18 0xa229f6a4 in filter::config::FilterCache::impl_createConfigAccess (this=0x8541478, sRoot=@0xbfe35718, bReadOnly=0 '\0', bLocalesMode=1 '\001')
+    at /opt/OpenOffice/ood680-m4/filter/source/config/cache/filtercache.cxx:1061
+#19 0xa22a56e5 in filter::config::FilterCache::impl_openConfig (this=0x8541478, eProvider=filter::config::FilterCache::E_PROVIDER_OTHERS)
+    at /opt/OpenOffice/ood680-m4/filter/source/config/cache/filtercache.cxx:958
+#20 0xa22a6cc1 in filter::config::FilterCache::impl_load (this=0x8541478, eRequiredState=filter::config::FilterCache::E_CONTAINS_FRAMELOADERS)
+    at /opt/OpenOffice/ood680-m4/filter/source/config/cache/filtercache.cxx:1548
+#21 0xa22a8bd5 in filter::config::FilterCache::load (this=0x8541478, eRequired=filter::config::FilterCache::E_CONTAINS_FRAMELOADERS, bByThread=0 '\0')
+    at /opt/OpenOffice/ood680-m4/filter/source/config/cache/filtercache.cxx:332
+#22 0xa2291b5d in filter::config::BaseContainer::impl_loadOnDemand (this=0x85d7ae0)
+    at /opt/OpenOffice/ood680-m4/filter/source/config/cache/basecontainer.cxx:158
+#23 0xa2292522 in filter::config::BaseContainer::createSubSetEnumerationByProperties (this=0x85d7ae0, lProperties=@0xbfe359a8)
+    at /opt/OpenOffice/ood680-m4/filter/source/config/cache/basecontainer.cxx:527
+
+leaked: 30 items.
+
+#0  configmgr::memory::SimpleCheckingHeapManager::destroyHeap (this=0xa3e3d990, _aHeap=0x828a2a8)
+    at /data/OpenOffice/ood680-m4/configmgr/source/data/simpleheap.cxx:354
+#1  0xa3d6ae0d in ~Heap (this=0x8280f94) at /data/OpenOffice/ood680-m4/configmgr/source/data/heap.cxx:78
+#2  0xa3d6b175 in ~SegmentHeap (this=0x8280f90) at /data/OpenOffice/ood680-m4/configmgr/source/data/segmentheap.cxx:58
+#3  0xa3be96f3 in ~Segment (this=0x8280f90) at ../inc/segment.hxx:56
+#4  0xa3be9737 in ~CacheLine (this=0x8280f88) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.hxx:75
+#5  0xa3be97f2 in ~ExtendedCacheLine (this=0x8280f88) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.hxx:151
+#6  0xa3bd79b1 in salhelper::SimpleReferenceObject::release (this=0x8280f88)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/salhelper/simplereferenceobject.hxx:98
+#7  0xa3bd79d4 in ~Reference (this=0x81cc75c) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:111
+#8  0xa3be0f93 in ~pair (this=0x81cc758) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_pair.h:37
+#9  0xa3be0fe3 in _STL::_Destroy<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > (__pointer=0x81cc758)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_construct.h:67
+#10 0xa3be10e8 in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x81cc748)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:637
+#11 0xa3be10ca in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x81cca30)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#12 0xa3be10ca in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x81c0858)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#13 0xa3be10ca in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x8134a88)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#14 0xa3be10ca in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x81f04c0)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#15 0xa3be114e in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::clear (this=0x80d7d40)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.h:447
+#16 0xa3be5682 in ~_Rb_tree (this=0x80d7d40) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.h:341
+#17 0xa3be56d3 in ~map (this=0x80d7d40) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_map.h:44
+#18 0xa3be324b in ~CacheData (this=0x80d7d3c) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:136
+#19 0xa3be21db in ~ExtendedCacheData (this=0x80d7d3c) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.hxx:174
+#20 0xa3bde965 in ~CacheLoadingAccess (this=0x80d7d30) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheaccess.cxx:220
+#21 0xa3bd79b1 in salhelper::SimpleReferenceObject::release (this=0x80d7d30)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/salhelper/simplereferenceobject.hxx:98
+#22 0xa3bd7a9c in ~Reference (this=0x811044c) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:111
+#23 0xa3bf37f3 in ~pair (this=0x8110438) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_pair.h:37
+#24 0xa3bf3843 in _STL::_Destroy<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > (__pointer=0x8110438)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_construct.h:67
+#25 0xa3bf3894 in _STL::_Rb_tree<configmgr::RequestOptions, _STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> >, _STL::_Select1st<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > >, configmgr::lessRequestOptions, _STL::allocator<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > >::_M_erase (this=0xbfe36414, __x=0x8110428)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:637
+#26 0xa3bf3876 in _STL::_Rb_tree<configmgr::RequestOptions, _STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> >, _STL::_Select1st<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > >, configmgr::lessRequestOptions, _STL::allocator<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > >::_M_erase (this=0xbfe36414, __x=0x82900d8)
+
+leaked 100's of items:
+
+#0  configmgr::memory::SimpleCheckingHeapManager::destroyHeap (this=0xa3e3d990, _aHeap=0x81c6bd0)
+    at /data/OpenOffice/ood680-m4/configmgr/source/data/simpleheap.cxx:354
+#1  0xa3d6ae0d in ~Heap (this=0x81456b4) at /data/OpenOffice/ood680-m4/configmgr/source/data/heap.cxx:78
+#2  0xa3d6b175 in ~SegmentHeap (this=0x81456b0) at /data/OpenOffice/ood680-m4/configmgr/source/data/segmentheap.cxx:58
+#3  0xa3be96f3 in ~Segment (this=0x81456b0) at ../inc/segment.hxx:56
+
+	+ this is our internal / custom allocated segment [!]
+
+#4  0xa3be9737 in ~CacheLine (this=0x81456a8) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.hxx:75
+#5  0xa3be97f2 in ~ExtendedCacheLine (this=0x81456a8) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.hxx:151
+#6  0xa3bd79b1 in salhelper::SimpleReferenceObject::release (this=0x81456a8)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/salhelper/simplereferenceobject.hxx:98
+#7  0xa3bd79d4 in ~Reference (this=0x81c086c) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:111
+#8  0xa3be0f93 in ~pair (this=0x81c0868) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_pair.h:37
+#9  0xa3be0fe3 in _STL::_Destroy<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > (__pointer=0x81c0868)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_construct.h:67
+#10 0xa3be10e8 in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x81c0858)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:637
+#11 0xa3be10ca in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x8134a88)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#12 0xa3be10ca in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::_M_erase (this=0x80d7d40, __x=0x81f04c0)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#13 0xa3be114e in _STL::_Rb_tree<configmgr::configuration::Name, _STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> >, _STL::_Select1st<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > >, _STL::less<configmgr::configuration::Name>, _STL::allocator<_STL::pair<configmgr::configuration::Name const, rtl::Reference<configmgr::CacheLine> > > >::clear (this=0x80d7d40)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.h:447
+#14 0xa3be5682 in ~_Rb_tree (this=0x80d7d40) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.h:341
+#15 0xa3be56d3 in ~map (this=0x80d7d40) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_map.h:44
+#16 0xa3be324b in ~CacheData (this=0x80d7d3c) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:136
+#17 0xa3be21db in ~ExtendedCacheData (this=0x80d7d3c) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.hxx:174
+#18 0xa3bde965 in ~CacheLoadingAccess (this=0x80d7d30) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheaccess.cxx:220
+#19 0xa3bd79b1 in salhelper::SimpleReferenceObject::release (this=0x80d7d30)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/salhelper/simplereferenceobject.hxx:98
+#20 0xa3bd7a9c in ~Reference (this=0x811044c) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ref.hxx:111
+#21 0xa3bf37f3 in ~pair (this=0x8110438) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_pair.h:37
+#22 0xa3bf3843 in _STL::_Destroy<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > (__pointer=0x8110438)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_construct.h:67
+#23 0xa3bf3894 in _STL::_Rb_tree<configmgr::RequestOptions, _STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> >, _STL::_Select1st<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > >, configmgr::lessRequestOptions, _STL::allocator<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > >::_M_erase (this=0xbfe36414, __x=0x8110428)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:637
+#24 0xa3bf3876 in _STL::_Rb_tree<configmgr::RequestOptions, _STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> >, _STL::_Select1st<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > >, configmgr::lessRequestOptions, _STL::allocator<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > >::_M_erase (this=0xbfe36414, __x=0x82900d8)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.c:635
+#25 0xa3bf38fa in _STL::_Rb_tree<configmgr::RequestOptions, _STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> >, _STL::_Select1st<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > >, configmgr::lessRequestOptions, _STL::allocator<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > >::clear (this=0xbfe36414)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_tree.h:447
+#26 0xa3bf39c7 in _STL::map<configmgr::RequestOptions, rtl::Reference<configmgr::CacheLoadingAccess>, configmgr::lessRequestOptions, _STL::allocator<_STL::pair<configmgr::RequestOptions const, rtl::Reference<configmgr::CacheLoadingAccess> > > >::clear (this=0xbfe36414)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/stl/stl/_map.h:191
+#27 0xa3beeadb in configmgr::backend::CacheController::disposeAll (this=0x810fb38, _bFlushRemainingUpdates=true)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:182
+#28 0xa3beeb83 in configmgr::backend::CacheController::dispose (this=0x810fb38)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:197
+#29 0xa3bf7536 in configmgr::TreeManager::disposeBackendCache (this=0x810fe00) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/treemanager.cxx:287
+#30 0xa3bfae8c in configmgr::TreeManager::dispose (this=0x810fe00) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/treemanager.cxx:138
+#31 0xa3d0c81e in configmgr::OProviderImpl::dispose (this=0x80eca30) at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:379
+#32 0xa3d0ef51 in configmgr::OConfigurationProvider::disposing (this=0x80ec2b0) at /data/OpenOffice/ood680-m4/configmgr/source/api2/confprovider2.cxx:339
+#33 0xb765c2a5 in cppu::WeakComponentImplHelperBase::dispose () from ./libuno_cppuhelpergcc3.so.3
+#34 0xa3bc5407 in cppu::WeakComponentImplHelper1<com::sun::star::lang::XServiceInfo>::dispose (this=0x80ec2b0)
+    at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/cppuhelper/compbase1.hxx:91
+#35 0xa3d0730a in configmgr::OProvider::disposing (this=0x80ec2b0) at /data/OpenOffice/ood680-m4/configmgr/source/api2/provider.cxx:218
+#36 0xa3d0898a in configmgr::OProviderDisposingListener::disposing (this=0x80e75a8, rEvt=@0xbfe36684)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/provider.cxx:95
+#37 0xb7663f1a in cppu::OInterfaceContainerHelper::disposeAndClear () from ./libuno_cppuhelpergcc3.so.3
+#38 0xb76640f6 in cppu::OMultiTypeInterfaceContainerHelper::disposeAndClear () from ./libuno_cppuhelpergcc3.so.3
+#39 0xb765c29a in cppu::WeakComponentImplHelperBase::dispose () from ./libuno_cppuhelpergcc3.so.3
+#40 0xb766d24f in cppu::WeakComponentImplHelper2<com::sun::star::uno::XComponentContext, com::sun::star::container::XNameContainer>::dispose ()
+   from ./libuno_cppuhelpergcc3.so.3
+#41 0x08074d9e in desktop::Desktop::DestroyApplicationServiceManager ()
+#42 0x0806716a in desktop::Desktop::DeInit ()
+#43 0xb7d4ed90 in DeInitVCL () from ./libvcl680li.so
+#44 0xb7d4f28a in ImplSVMain () from ./libvcl680li.so
+#45 0xb7d4f2f3 in SVMain () from ./libvcl680li.so
+#46 0x08064641 in sal_main ()
+#47 0xb6e7087c in __libc_start_main (main=0x8064664 <main>, argc=2, ubp_av=0xbfe36834, init=0x807fb50 <__libc_csu_init>, fini=0x807fb40 <__libc_csu_fini>, 
+    rtld_fini=0xb7f90550 <_dl_fini>, stack_end=0xbfe3682c) at libc-start.c:231
+#48 0x08064571 in _start ()
+
+
+Binning the 'source/treecache' directory gives:
+
+../unxlngi6.pro/slo/providerimpl.o: In function `configmgr::OProviderImpl::initSession(configmgr::ContextReader const&)':
+/data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:233: undefined reference to `configmgr::CacheFactory::instance()'
+/data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:233: undefined reference to `configmgr::CacheFactory::createCacheManager(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)'
+../unxlngi6.pro/slo/providerimpl.o: In function `configmgr::OProviderImpl::dispose()':
+/data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:379: undefined reference to `configmgr::TreeManager::dispose()'
+collect2: ld returned 1 exit status
+
+	  + All goes through the treemanager.hxx interface [simple]
+
+** TODO:
+    + remove 'Segment'
+
+
++ Binned 'SegmentID' (string) in error ...
+    + axed 'SegmentAddress' in error [?!]
+
++ Next:
+    + 'Allocator' ?
+    + 'Accessor' ?
+    + bin 'SegmentId' (?)
+    + bin 'SegmentAddress' (?)
+
+    + Accessor:
+	+ calls acquire/release ReadAccess 
+	+ source/data/ updateAccessor ...
+	+ Read & Write access are the same thing [!?] :-)
+	    + just holding the lock ...
+    + UpdateAccessor
+	+ 'downgrade' - used ?
+    + why lock ?
+	+ no 2 threads concurrently writing the same
+	  memory being 'accessed' - but ...
+	    + if we have a ptr to it anyway, surely
+	      we must protect lifecycle ?
+	    + who has a pointer to it ?
+
+    + re-test with just debug=true on ...
+
+	    + retain it's locking semantic.
+
+    + remove bogus Accessors [ not all ]
+	+ doGetDataSegmentForUpdate
+
+    killed Allocator, Heap, HeapManager, DataLock (->Segment)
+    Accessor -> just a locking wrapper
+
+
+* No performance hit *
+
+after:
+
+001763 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001629 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001700 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001747 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+before:
+
+001794 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001837 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001708 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001760 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+
+Configmgr comments:
+
+> [*] Any tree structure growing from one root node conceptually has an 
+> own segment. Possible trees are: the entire data tree for one 
+> 'component' in the cache, all templates in the cache as one tree (with 
+> an artificial root node) and the data tree for a 'set' element (template 
+> instance) that is not currently contained in a set. The last kind is 
+> local to a 'view' and never shared.
+> 
+> > 	All allocation is now done from the global heap.
+> > 
+> 
+> I'd suggest to use rtl_(de)allocate directly instead of 
+> new/new[]/delete/delete[] for the low-level allocations.
+> 
+
+** reinterpret_cast<> is reqired:
+
+> (I admit to 
+> sometimes using constructor-style casts for numerical conversions that 
+> could be done with static_cast, but for pointers and references only the 
+> verbose casts should be used.
+
+** More easy / low-hanging fruit.
+
+>- The separation between TreeManager and CacheController and the two 
+> slightly different Cache -Data, -Line, -Access hierarchies. The 
+> separation between a process that handles loading/storing and a client 
+> process was supposed to be between them.
+>
+> - Additional abstractions (Tree + Accessor -> view::Tree) and other 
+> complexity in the view layer ('treemgr' directory). That was always on 
+> top of my list of things to fix - but also the most complex one. (There 
+> are a few bugs associated to that as well.)
+
+> Where you say
+>   #warning This looks -totally- whacked out !
+> you are right.
+
+** bin that code
+
+>>       My 1 remaining concern is that (perhaps) the 'Free a whole Segment'
+>> thing is actually relied upon, but I suspect if so, it's symptomatic of
+>> a leak somewhere ;-) [ at least now we can detect leaks more easily,
+>> since we don't hold pointers to all allocated blocks ;-].
+>> 
+>
+>Of course if there was a concious reliance on that feature it wasn't
+>really a leak. It may well be the case that discarding an expired
+>cache segment or a 'detached set element' segment - after inserting
+>it, when disposing it or when the entire view goes away (the latter
+>two should be similar) - does not bother to iterate the data
+>structures within to release individual pieces.
+
+
+
+** freeTree problem:
+
+==4473== Invalid read of size 4
+==4473==    at 0x29631DC9: configmgr::sharable::NodeInfo::getName() const (node.cxx:85)
+==4473==    by 0x29631E0C: configmgr::sharable::Node::getName() const (node.cxx:422)
+==4473==    by 0x294A776D: configmgr::data::NodeAccess::getName() const (nodeaccess.hxx:88)
+==4473==    by 0x294A5D28: configmgr::CacheLine::internalGetNode(configmgr::memory::Accessor const&, configmgr::configuration::AbsolutePath const&) const (cacheline.cxx:208)
+==4473==    by 0x294A5F4F: configmgr::CacheLine::getNode(configmgr::memory::Accessor const&, configmgr::configuration::AbsolutePath const&) const (cacheline.cxx:222)
+==4473==    by 0x294A0CF3: configmgr::CacheData::internalGetNode(configmgr::memory::Accessor const&, configmgr::configuration::AbsolutePath const&) const (cachedata.cxx:289)
+==4473==    by 0x294A11DF: configmgr::CacheData::acquireNode(configmgr::memory::Accessor const&, configmgr::configuration::AbsolutePath const&) (cachedata.cxx:325)
+==4473==    by 0x2949C4AA: configmgr::CacheClientAccess::acquireNode(configmgr::memory::Accessor const&, configmgr::configuration::AbsolutePath const&) (cacheaccess.cxx:138)
+==4473==    by 0x294B7396: configmgr::TreeManager::requestSubtree(configmgr::configuration::AbsolutePath const&, configmgr::RequestOptions const&) (treemanager.cxx:374)
+==4473==    by 0x295C9658: configmgr::OProviderImpl::requestSubtree(configmgr::configuration::AbsolutePath const&, configmgr::RequestOptions const&) (providerimpl.cxx:431)
+==4473==    by 0x295C9A61: configmgr::OProviderImpl::buildUpdateAccess(rtl::OUString const&, configmgr::RequestOptions const&, long) (providerimpl.cxx:626)
+==4473==    by 0x295CF63A: configmgr::OConfigurationProviderImpl::createUpdateAccess(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (confproviderimpl2.cxx:143)
+==4473==    by 0x295CCAC5: configmgr::OConfigurationProvider::createInstanceWithArguments(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (confprovider2.cxx:367)
+==4473==    by 0x807D727: desktop::LanguageSelection::getConfigAccess(char const*, unsigned char) (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x807E438: desktop::LanguageSelection::prepareLanguage() (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x806B0E8: desktop::Desktop::Init() (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x40B1D46: InitVCL(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) (in /data/OpenOffice/ooe680-m2/vcl/unxlngi6.pro/lib/libvcl680li.so)
+==4473==    by 0x40B1EA3: ImplSVMain() (in /data/OpenOffice/ooe680-m2/vcl/unxlngi6.pro/lib/libvcl680li.so)
+==4473==    by 0x40B1FB0: SVMain() (in /data/OpenOffice/ooe680-m2/vcl/unxlngi6.pro/lib/libvcl680li.so)
+==4473==    by 0x80644F0: sal_main (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x506987B: (below main) (libc-start.c:231)
+
+==4473==  Address 0x298F3320 is 16 bytes inside a block of size 96 free'd
+==4473==    at 0x4020FB0: free (vg_replace_malloc.c:233)
+==4473==    by 0x49D3926: rtl_freeMemory (in /opt/HHInstall/program/libuno_sal.so.3)
+==4473==    by 0x29623EFA: configmgr::memory::SimpleHeapManagerBase::deallocateMemory(unsigned long) (simpleheap.cxx:231)
+==4473==    by 0x296240F5: configmgr::memory::SimpleCheckingHeapManager::deallocate(configmgr::memory::Opaque_*, unsigned long) (simpleheap.cxx:471)
+==4473==    by 0x2962C9BB: configmgr::memory::Heap::deallocate(unsigned long) (heap.hxx:82)
+==4473==    by 0x2962C9DC: configmgr::memory::SegmentHeap::deallocate(unsigned long) (segmentheap.hxx:96)
+==4473==    by 0x2962C6D4: configmgr::memory::Allocator::deallocate(unsigned long) const (updateaccessor.cxx:122)
+==4473==    by 0x2962D114: configmgr::data::DataTreeCleanup::destroyTree(configmgr::data::TreeAddress) (builddata.cxx:1207)
+==4473==    by 0x2962D30E: configmgr::data::destroyTree(configmgr::memory::UpdateAccessor&, configmgr::data::TreeAddress) (builddata.cxx:480)
+==4473==    by 0x29635177: configmgr::data::TreeAccessor::freeTree(configmgr::memory::UpdateAccessor&, configmgr::data::TreeAddress) (treeaccessor.cxx:80)
+==4473==    by 0x294A631B: configmgr::CacheLine::~CacheLine() (cacheline.cxx:108)
+==4473==    by 0x294948D0: salhelper::SimpleReferenceObject::release() (simplereferenceobject.hxx:98)
+==4473==    by 0x294948F3: rtl::Reference<configmgr::CacheLine>::~Reference() (ref.hxx:111)
+==4473==    by 0x294A09C5: configmgr::CacheData::releaseModule(configmgr::configuration::Name const&, bool) (cachedata.cxx:410)
+==4473==    by 0x2949C1BA: configmgr::CacheClientAccess::releaseNode(configmgr::configuration::AbsolutePath const&) (cacheaccess.cxx:157)
+==4473==    by 0x294B5758: configmgr::TreeManager::releaseSubtree(configmgr::configuration::AbsolutePath const&, configmgr::RequestOptions const&) (treemanager.cxx:580)
+==4473==    by 0x295CA3E0: configmgr::OProviderImpl::releaseSubtree(configmgr::configuration::AbsolutePath const&, configmgr::RequestOptions const&) (providerimpl.cxx:467)
+==4473==    by 0x295E920F: configmgr::configapi::ApiRootTreeImpl::releaseData() (apitreeimplobj.cxx:833)
+==4473==    by 0x295EAF73: configmgr::configapi::ApiRootTreeImpl::disposeTree() (apitreeimplobj.cxx:568)
+==4473==    by 0x295E82EB: configmgr::configapi::RootElement::disposeTree() (apitreeaccess.cxx:129)
+==4473==    by 0x295F9008: configmgr::configapi::implDisposeObject(configmgr::configapi::NodeAccess&, configmgr::configapi::RootElement&) (elementimpl.cxx:393)
+==4473==    by 0x295F722B: configmgr::BasicRootElement::release() (elementaccess.cxx:92)
+==4473==    by 0x295FC2EA: configmgr::ORootElementGroupInfo::release() (groupobjects.cxx:302)
+==4473==    by 0x807E3DA: desktop::LanguageSelection::prepareLanguage() (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x806B0E8: desktop::Desktop::Init() (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x40B1D46: InitVCL(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) (in /data/OpenOffice/ooe680-m2/vcl/unxlngi6.pro/lib/libvcl680li.so)
+==4473==    by 0x40B1EA3: ImplSVMain() (in /data/OpenOffice/ooe680-m2/vcl/unxlngi6.pro/lib/libvcl680li.so)
+==4473==    by 0x40B1FB0: SVMain() (in /data/OpenOffice/ooe680-m2/vcl/unxlngi6.pro/lib/libvcl680li.so)
+==4473==    by 0x80644F0: sal_main (in /opt/HHInstall/program/soffice.bin)
+==4473==    by 0x506987B: (below main) (libc-start.c:231)
+
+
+** Substantial chunks of memory wasteage:
+
+	typedef std::set<INode*, ltNode> ChildList;
+
+318k - allocated in these set nodes ...
+     + [ on writer startup ]
+	
+	class ChildListSet {
+		ChildList m_aChildList;
+		
+		ChildListSet(ChildListSet const&);
+        ChildListSet& operator=(ChildListSet const& aSet);
+	public:
+		ChildList& GetSet() {return m_aChildList;}
+		ChildList const& GetSet() const {return m_aChildList;}
+
+		ChildListSet() {}
+        ChildListSet(ChildListSet const&, treeop::DeepChildCopy);
+		~ChildListSet();
+	};	
+	
+michael@t60p:/opt/OpenOffice/OOE680_m6/configmgr> grep -R 'GetSet' source
+source/tree/cmtree.cxx:         for(ChildList::iterator it = aSet.GetSet().begin();
+source/tree/cmtree.cxx:                 it != aSet.GetSet().end();
+source/tree/cmtree.cxx:         for (ChildList::iterator it2 = m_aChildren.GetSet().begin();
+source/tree/cmtree.cxx:                 it2 != m_aChildren.GetSet().end();
+source/tree/cmtree.cxx:         ChildList::iterator it = m_aChildren.GetSet().find(&searchObj);
+source/tree/cmtree.cxx:         if (it == m_aChildren.GetSet().end())
+source/tree/cmtree.cxx:                 m_aChildren.GetSet().insert(aNode.get());
+source/tree/cmtree.cxx:         ChildList::const_iterator it = m_aChildren.GetSet().find(&searchObj);
+source/tree/cmtree.cxx:         if (m_aChildren.GetSet().end() != it)
+source/tree/cmtree.cxx:                 m_aChildren.GetSet().erase(it);
+source/tree/cmtree.cxx:         for(ChildList::const_iterator it = m_aChildren.GetSet().begin();
+source/tree/cmtree.cxx:                 it != m_aChildren.GetSet().end();
+source/tree/cmtree.cxx:         ChildList::iterator it = m_aChildren.GetSet().begin();
+source/tree/cmtree.cxx:         while( it != m_aChildren.GetSet().end() )
+source/tree/subtree.hxx:                ChildList& GetSet() {return m_aChildList;}
+source/tree/subtree.hxx:                ChildList const& GetSet() const {return m_aChildList;}
+
+        I'm also looking at the Subtree set usage:
+
+        http://go-oo.org/~michael/sortedsizes.ods
+
+        My concern here is the 16bytes per RBTree node (used in the set), at
+least allocation here shows up on the profile.
+
+        It seems that 90% of these sorted sets are 8 items or less, and thus (I
+suspect) rather fast to search, well, at least indistinguishable from
+the order of the Set. The RBTree overhead for these <= 8 sets is ~250k
+(malloc), overall 500k. I'm sure we can do better.
+
+    + a sorted vector instead !?
+
+number	      length:
+   1544       1 
+    303       2 
+   2162       3 
+    275       4 
+     50       5 
+    151       6 
+    706       7 
+     39       8 
+     79       9 
+    124      10 
+     87      11 
+     27      12 
+     15      13 
+     75      14 
+      3      15 
+     77      16 
+     11      17 
+     10      18 
+     15      19 
+     10      20 
+      8      21 
+      3      22 
+      3      23 
+      3      24 
+      6      25 
+      5      26 
+      1      27 
+      3      30 
+      7      31 
+      1      32 
+      2      37 
+      4      38 
+      1      39 
+      1      41 
+      3      42 
+      1      44 
+      1      46 
+      1      49 
+      1      54 
+      1     107 
+      1     174 
+      2     331 
+      2     348 
+      1     692 
+      1     694 
+
+
+* Write regression tests for cmtree.cxx code ...
+    + commit them for sb to poke at ...
+	+ link those objs directly ... (?)
+
+
+--- source/treecache/cachecontroller.cxx	16 Jan 2007 12:18:23 -0000	1.18.24.6
++++ source/treecache/cachecontroller.cxx	7 Feb 2007 10:07:43 -0000
+@@ -560,7 +560,9 @@
+         addTemplates(backend::ComponentData(aMultiTemplates, aModuleName));
+ 
+     }
++#if defined __GNUC__
+ #warning unwind locking implications here too ... 'getTemplateTree' ...
++#endif
+     data::TreeAddress aTemplateAddr = m_aTemplates.getTemplateTree(aTemplateLocation);
+     if (aTemplateAddr == NULL)
+         throw uno::Exception(::rtl::OUString::createFromAscii("Unknown template. Type description could not be found in the given module."), NULL);
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/store.txt
+++ openoffice.org-2.4.1/ooo-build/doc/store.txt
@@ -0,0 +1,517 @@
+types.rdb
+    - maps 6Mb of memory ... (up from 3)
+    + block based, but multi-block records
+      ok (apparently)
+    + <zip file same structure ?>
+	+ 512 byte blocks ...
+
+storbase.cxx:
+
+storeError OStoreSuperBlockPage::create (
+	OStorePageBIOS             &rBIOS,
+	const OStorePageDescriptor &rDescr)
+{
+	storeError eErrCode = store_E_OutOfMemory;
+	void * p = rtl_allocateMemory (rDescr.m_nSize);
+	if (p != 0)
+	{
+		// Setup initial Page.
+		__store_memset (p, 0, rDescr.m_nSize);
+
+		// Mark as modified.
+		m_aState.modified();
+
+		// Write initial Page.
+		eErrCode = rBIOS.write (0, p, rDescr.m_nSize);
+		if (eErrCode == store_E_None)
+
+storbase.cxx:
+
+storeError OStorePageBIOS::create (sal_uInt16 nPageSize)
+	eErrCode = m_pSuper->create (
+		*this, OStorePageDescriptor (nPageSize, nPageSize, nMinSize));
+
+...
+
+
+store/inc/store/types.h
+
+/** PageSize (recommended) default.
+    @see store_openFile()
+ */
+#define STORE_DEFAULT_PAGESIZE ((sal_uInt16)0x0100)
+
+
+/** PageSize (enforced) limits.
+    @see store_openFile()
+ */
+#define STORE_MINIMUM_PAGESIZE ((sal_uInt16)0x0100)
+#define STORE_MAXIMUM_PAGESIZE ((sal_uInt16)0x8000)
+
+...
+
+storeError SAL_CALL store_openFile (
+	rtl_uString     *pFilename,
+	storeAccessMode  eAccessMode,
+	sal_uInt16       nPageSize,
+	storeFileHandle *phFile
+) SAL_THROW_EXTERN_C();
+
+...
+
+Used from registry/
+
+    + store.hxx:
+      	inline storeError createInMemory (
+		sal_uInt16 nPageSize = STORE_DEFAULT_PAGESIZE
+	) SAL_THROW(());
+
+
+registry/source/regimpl.cxx
+
+(gdb) up
+#5  0x4001a69d in ORegistry::initRegistry (this=0x401fdea8, regName=@0xbfffc880, accessMode=4)
+    at /opt/OpenOffice/src680-m129/registry/source/regimpl.cxx:531
+531             errCode = rRegFile.create(regName, sAccessMode, REG_PAGESIZE);
+
+
+Crash in: storlckb.cxx
+
+#0  0x4046f0c0 in memset () from /lib/libc.so.6
+#1  0x4005cdf8 in rtl_zeroMemory () from /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libuno_sal.so.3
+#2  0x405288f7 in store::OStoreDirectory::create () from /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libstore.so.3
+#3  0x4052f7eb in store_openDirectory () from /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libstore.so.3
+#4  0x4001ae00 in ?? () from /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3
+#5  0x4002563d in reg_getResolvedKeyName () from /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3
+
+block samller than XYZ string lengths ?
+
+Page size selected is 256
+Start create
+xManager's page size 256
+
+
+	fprintf( stderr, "xManager's page size %d\n", m_aDescr.m_nSize );
+
+	delete m_pNode;
+	m_pNode = new(m_aDescr.m_nSize) inode(m_aDescr.m_nSize);
+	if (!m_pNode)
+		return store_E_OutOfMemory;
+	fprintf( stderr, "created m_pNode\n");
+
+
+ie. dies in this 'new' ...
+
+source/storpage.hxx:    typedef OStoreDirectoryPageData   inode;
+
+stordata.hxx:
+
+struct OStoreDirectoryPageData : public store::OStorePageData
+	(cf. storbase.hxx's OStorePageData )
+
+	+ the directory has a maxiumum namesize ...    
+
+
+Potentially use a smaller STORE_MAXIMUM_NAMESIZE if the
+block size is smaller ?
+
+** With a MAX_NAMESIZE of 64 bytes
+    + works perfectly for types.rdb ...
+
+** Problem:
+
+    types.h: __store_FindData: exposes STORE_MAXIMUM_NAMESIZE
+	     as part of the (stable?) API ...
+
+    => to shrink the block size ...
+
+    + Can we make directory entries variable size ?
+	    & leave the MAX_PATH thing in-place ?
+
+    + looks like the 'Directory' is a file ... (nice)
+	+ store.hxx:
+	    + Directory API has:
+		+ 'traveller' class 'travel' callback.
+		+ 'first', 'next' iterators.
+
+	-> store.inl:
+	    store_findFirst, store_findNext
+		+ the whole API 'storeFindData' ...
+
+    + registry lookups
+	- prolly deadly slow - linear search over this file ...
+	- m_nReserved - an index ?
+	    + storelcbk.cxx:
+	    OStoreDirectory::iterate (*pFindData)
+		+ single entry point ...
+
+	+ Crazy [!]
+	    + there is a public 'OStoreDirectory' interface,
+	      (all inline) store/inc/store/store.hxx
+	    + and a private 'OStoreDirectory' (storelckb.hxx)
+
+	- we can bin all the 'clever' ness, and just use a
+	  'file' to stream directory entries into (most likely)
+
+
+struct OStoreDirectoryPageData : public store::OStorePageData
+	NameBlock m_aNameBlock; - block == inline foo
+	DataBlock m_aDataBlock;
+	sal_uInt8 m_pData[1];
+
+	+ m_pData[1] == symlink target etc.
+
+	+ [!] hmm ... - lots of hard-coded sizes ...
+	+ [!] - no hashing of names ...
+
+
+* Stream API:
+    store_openStream: -> OStoreLockBytes::create
+	'Stream' is wrapper around 'OStoreLockBytes'
+	+ storlckb.cxx (OStoreLockBytes)
+
+	OStoreLockBytes::create
+	    __store_iget - unwinds path ?
+			 + returns 'inode' (m_pNode)
+	    OStorePageDescriptor: inode->m_aDescr
+	    inode == OStoreDirectoryPageData ...
+
+* Directory API:
+
+	+ inode ...
+
+	[ registry code !? ]
+	    + hmm ...
+
+
+* Registry API:
+
+    + Need to provide:
+
+    + <mmap the file>
+	    + just a ton of data structures
+	    + 1 big write,
+	    + multiple reads ...
+	    + linear scans ... [directory files]
+	    + <foo>
+    + <no extending of files etc.>
+
+    + directory at the end of the file ...
+    + ... foo ...
+    + zip file ?
+
+
+* The object to make vari-sized is:
+    + 'OStoreDirectoryPageData'
+	+ includes name, data, m_pDirData
+	    + is an 'OStorePageData' - implicitely '1 block'
+	+ Contains an:
+	    + OStoreDirectoryDataBlock
+		+ data length and
+		+ pointers to inodes
+		    + 16+8+1+1 * 4 bytes = 104 bytes.
+
+    + 'OStoreDirectoryPageObject'
+	+ seems to be the in-memory representation of
+	  the thing.
+	+ 'get' and 'put' methods.
+	+ [ gets a Page handle at construct time ]
+
+
+* What code is used to manipulate zip files  [!]
+	+ package/ - contains the .zip code...
+	+ is there .zip support in the URE !?
+	    + can we just use this component ?
+		+ do we need type data for it ? ...
+
+	+ can we use the 'ZipFile' code ...
+	    + 
+
+
+* Problems:
+    + directory mgmt:
+	+ most of the data is in the 'directory' ...
+	+ but we need to be able to extend it dynamically ...
+	+ how is that done ? [ nasty scattered linked list ? ]
+	    + most simply - yes ...
+	+ Represent files - they can grow too ?
+	    + chunk lists ?
+	+ fragmentation - not an issue - always foo ...
+	+ 'blocks' ? - what we want to avoid ...
+	+ => file descriptor foo ...
+
+
++ Problems:
+  + multiple directories open concurrently
+  + concurrent (thread-safe?) writes to multiple streams
+  + the registry API allows all of that.
+
+
++ Can we go 1 level up:
+    + to the 'types' & 'services' level ?
+    + why are we using this code to store them ?
+
+
++ Dies during registry foo with:
+
+Office/services.rdb/en-US_inprogress_1/services.rdb' succesful!
+Name too long (103) ...
+Name too long (103) ...
+>>>Connection_Impl.writeRegistryServi
+
+    ie. we need a more imaginative approach here ...
+
++ Symlinks - seem to use the data itself as
+  the destination (good) [ nice ]
+
++ 5 entry points where we need this.
+    + how do we allocate & chain a new block
+    + how do we subsequently free that (?)
+	+ deletefoo...
+
++ vari-sized blocks (?)
+  rBIOS.allocate(OStorePageObject) / OStorePageBIOS::free ...
+  STORE_PAGE_NULL 
+
++ TODO:
+    + check serialization of the extra data ...
+
+
+storlckb.cxx:
+1.    write name - from 'const rtl_String *'
+2.    read name - build CRC - requires psz char *
+3.    read from psz char * -> unicode conversion
+storpage.cxx:
+1.    write name - from pSrcName 'rtl_String *'
+2.    write name - from pDstName 'rtl_String *'
+
+OStorePageManager - more friendly ?
+
+
+setName '$VL_value'
+==25250== Invalid read of size 4
+==25250==    at 0x341997BF: rtl_freeMemory_CUSTOM (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libuno_sal.so.3)
+==25250==    by 0x341998F3: rtl_freeMemory (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libuno_sal.so.3)
+==25250==    by 0x3464BD16: store::OStorePageData::operator delete(void*) (storbase.hxx:561)
+==25250==    by 0x346514F4: store::OStoreLockBytes::~OStoreLockBytes() (storlckb.cxx:408)
+==25250==    by 0x34643624: store::OStoreObject::release() (object.cxx:128)
+==25250==    by 0x346515A8: store::OStoreLockBytes::release() (storlckb.cxx:436)
+==25250==    by 0x346584A2: store_releaseHandle (store.cxx:133)
+==25250==    by 0x341581FA: (within /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3)
+==25250==    by 0x34161D3E: (within /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3)
+==25250==    by 0x3415D65B: (within /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3)
+==25250==    by 0x8087F63: RegistryKey::setValue(rtl::OUString const&, RegValueType, void*, unsigned long) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x8085F67: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x807CC6E: produceFile(rtl::OString const&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80780C1: sal_main (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80776C7: main (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==  Address 0xC92794DC is not stack'd, malloc'd or (recently) free'd
+==25250== 
+==25250== Process terminating with default action of signal 11 (SIGSEGV): dumping core
+==25250==    at 0x341997BF: rtl_freeMemory_CUSTOM (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libuno_sal.so.3)
+==25250==    by 0x341998F3: rtl_freeMemory (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libuno_sal.so.3)
+==25250==    by 0x3464BD16: store::OStorePageData::operator delete(void*) (storbase.hxx:561)
+==25250==    by 0x346514F4: store::OStoreLockBytes::~OStoreLockBytes() (storlckb.cxx:408)
+==25250==    by 0x34643624: store::OStoreObject::release() (object.cxx:128)
+==25250==    by 0x346515A8: store::OStoreLockBytes::release() (storlckb.cxx:436)
+==25250==    by 0x346584A2: store_releaseHandle (store.cxx:133)
+==25250==    by 0x341581FA: (within /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3)
+==25250==    by 0x34161D3E: (within /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3)
+==25250==    by 0x3415D65B: (within /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/lib/libreg.so.3)
+==25250==    by 0x8087F63: RegistryKey::setValue(rtl::OUString const&, RegValueType, void*, unsigned long) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x8085F67: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80843A0: AstDeclaration::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80860EA: AstModule::dump(RegistryKey&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x807CC6E: produceFile(rtl::OString const&) (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80780C1: sal_main (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+==25250==    by 0x80776C7: main (in /opt/OpenOffice/src680-m129/solver/680/unxlngi4.pro/bin/idlc)
+
+
+urd files - being generated just fine ...
+
+* Nested directories ... (!?)
+
+* [ was not using rtl_string correctly - wrt. lengths ... ]
+
+
+* Problems
+    + can we re-work the inode stuff - to handle smaller files (?)
+	+ need tool to measure avg. size of entries in our .rdbs ...
+    + measure each stream size & each file-name size ...
+	+ add it to a bucket ... - log (?)
+
+    + with the new name stuff - identical types.rdb 'regview' output
+	+ 
+
+* The 1st pass: - saves 5Mb
+
+michael@linux:/opt/OOInstall2/program> ls -l *.rdb
+-r--r--r--  1 michael users 4521984 2005-10-04 17:57 /opt/OOInstall/program/services.rdb
+-rw-r--r--  1 michael users 6127616 2005-10-05 10:01 /opt/OOInstall/program/types.rdb
+
+michael@linux:/opt/OOInstall2/program> ls -l *.rdb
+-r--r--r--  1 michael users 2031616 2005-10-10 16:39 services.rdb
+-r--r--r--  1 michael users 3407872 2005-10-10 16:37 types.rdb
+
+
+
+'stats' command output for
+
+Store statistics: types.db
+ 3553 files
+ 3554 dirs
+ 0 links
+Sizes:
+ bucket - count - percentage
+ 2^ 0 - 0 -  0
+ 2^ 1 - 0 -  0
+ 2^ 2 - 0 -  0
+ 2^ 3 - 0 -  0
+ 2^ 4 - 0 -  0
+ 2^ 5 - 0 -  0
+ 2^ 6 - 19 - 0.53
+ 2^ 7 - 268 - 7.5
+ 2^ 8 - 1436 - 40
+ 2^ 9 - 1156 - 33
+
+ 2^10 - 467 - 13
+ 2^11 - 150 - 4.2
+ 2^12 - 47 - 1.3
+ 2^13 - 9 - 0.25
+ 2^14 - 0 -  0
+ 2^15 - 1 - 0.028
+Name lengths:
+ bucket - count - percentage
+ 2^ 0 - 0 -  0
+ 2^ 1 - 0 -  0
+ 2^ 2 - 35 - 0.49
+ 2^ 3 - 376 - 5.3
+ 2^ 4 - 4975 - 70
+ 2^ 5 - 1667 - 23
+ 2^ 6 - 54 - 0.76
+
+
+Store statistics: services.rdb:
+ 2436 files
+ 5863 dirs
+ 0 links
+Sizes:
+ bucket - count - percentage
+ 2^ 0 - 0 -  0
+ 2^ 1 - 0 -  0
+ 2^ 2 - 0 -  0
+ 2^ 3 - 0 -  0
+ 2^ 4 - 1 - 0.041
+ 2^ 5 - 804 - 33
+ 2^ 6 - 1463 - 60
+ 2^ 7 - 139 - 5.7
+ 2^ 8 - 16 - 0.66
+ 2^ 9 - 11 - 0.45
+ 2^10 - 1 - 0.041
+ 2^11 - 0 -  0
+ 2^12 - 0 -  0
+ 2^13 - 1 - 0.041
+
+Name lengths:
+ bucket - count - percentage
+ 2^ 0 - 0 -  0
+ 2^ 1 - 0 -  0
+ 2^ 2 - 797 - 9.6
+ 2^ 3 - 1608 - 19
+ 2^ 4 - 3258 - 39
+ 2^ 5 - 386 - 4.7
+ 2^ 6 - 2212 - 27
+ 2^ 7 - 38 - 0.46
+
+Analysis:
+types.rdb     98% of files < 2^12 bytes < = 4096 bytes
+types.rdb     100% of names < 64 bytes
+services.rdb  99% of files < 2^8 bytes < = 256 bytes
+services.rdb  99% of names < 64 bytes
+
+Largest file == 2^15 bytes == 32k.
+
+Block size 512:
+    4096 = 8*512 [ we have 16 single indirection pages ]
+
+Block size 128:
+    4096 = 32*128   - [ 128bytes = 32 indirections ]
+
+Indirection limits:
+    + direct 128    - 
+    + single 4096
+    + double 131k
+    + triple 4Mb
+
+Types.rdb: 80% < 512bytes =>
+    + 4 direct
+    + 2 single
+    + 1 double
+    + 1 triple
+	=> 8x4 = 32bytes [of 128]
+
+
+
+OStorePageGuard: 64bits ... [ 8 bytes]
+OStorePageKey: 64bits	    [ 8 bytes]
+
+OStorePageData (base):
+    + m_aGuard - 4
+    + m_aDescr - 8
+    + m_aMarked - 4
+    + m_aUnused - 4
+
+OStoreDirectoryDataBlock:
+    + m_aGuard - 8
+    + m_aTable - 32
+    + m_nDataLen - 4
+	+ total - 44bytes
+
+OStorePageNameBlock
+    + m_aGuard - 8
+    + m_aKey - 8
+    + m_nAttrib - 4
+    + m_pNameData[]
+    + m_nNameLength - 4
+    + m_pNameBlock - 4 [!? - should be 8 ]
+	+ 32bytes
+
+	+ leaving 32bytes of name string ...
+
+types.rdb: 99% names < 32bytes
+services.rdb: 72% names < 32bytes
+
+
+** The current embarassment **
+
+Work out a size (bytes) / interface ...
+     + massive [!?]
+     + 3000 .idl files; = 2kb each interface
+	+ strip out headers & footers
+	    + ~same size ... (6.6Mb)
+     + gzip types.rdb: 720k
+     + gzip text.bz2: 630k
+
+** Valgrind - no errors **
+
+* Needs to be backwards compatible
+    + can open / read old & new store files ...
+
+* Screws with header changes ...
+    + hmm ...
+* virtual accessors on 'OStorePageNameBlock' ? [no]
+    + [macro driven ...]
--- openoffice.org-2.4.1.orig/ooo-build/doc/link-timing.txt
+++ openoffice.org-2.4.1/ooo-build/doc/link-timing.txt
@@ -0,0 +1,248 @@
+Hit list:
+	libsvx	14740
+	libsfx	4534
+	libsvt	3974
+	libtk	5956
+	libvcl	3358
+	libxo	3669
+
+
+Should we be using -Os instead of -O2 ?
+Should we use (-fomit-frame-pointer - smaller code, faster too?)
+
+
+This is the result of sticking this code:
+
+	struct timeval t1, t2;
+	gettimeofday (&t1, NULL);
+
+	...
+
+	gettimeofday (&t2, NULL);
+	total_time.tv_sec += t2.tv_sec - t1.tv_sec;
+	total_time.tv_usec += t2.tv_usec - t1.tv_usec;
+	if (total_time.tv_usec < 0) {
+	  total_time.tv_sec  -= 1;
+	  total_time.tv_usec += 1000000;
+	}
+	if (total_time.tv_usec > 1000000) {
+	  total_time.tv_sec  += 1;
+	  total_time.tv_usec -= 1000000;
+	}
+
+	fprintf (stderr, "total time ('%s'): %6ld:%6ld\n",
+		 pszModuleName, total_time.tv_sec, total_time.tv_usec);
+
+
+	At top and tail of sal/osl/unx/module.c (osl_psz_loadModule):
+
+total time ('libsmgr.so'):      0:  2580
+total time ('libcpld.so'):      0: 27504
+total time ('libsimreg.so'):      0: 29239
+total time ('libdefreg.so'):      0: 31072
+total time ('libtdmgr.so'):      0: 34700
+total time ('libimpreg.so'):      0: 36935
+total time ('libsimreg.so'):      0: 37006
+total time ('libdefreg.so'):      0: 37024
+total time ('libreg.so.3'):      0: 38242
+total time ('librdbtdp.so'):      0: 40962
+total time ('libreg.so.3'):      0: 41021
+total time ('libcfgmgr2.so'):      0: 55995
+total time ('libtcv.so'):      0: 58155
+total time ('libsax.so'):      0: 60646
+total time ('libucb1.so'):      0: 99702
+total time ('libucb1.so'):      0: 99822
+total time ('libucpfile1.so'):      0:158589
+total time ('libucb1.so'):      0:158807
+total time ('libsax.so'):      0:158917
+total time ('libwrp641li.so'):      4:  2344       - !!!!!!!!!!!!!!!!!!
+total time ('libi18npool641li.so'):      4: 43158
+total time ('libi18n641li.so'):      4: 95130
+total time ('libpackage2.so'):      4:101271
+total time ('libfwk641li.so'):      4:307190
+total time ('libgcc3_uno.so'):      4:310878
+total time ('libgcc3_uno.so'):      4:310968
+total time ('libgcc3_uno.so'):      4:311077
+total time ('libgcc3_uno.so'):      4:311107
+total time ('libfwl641li.so'):      4:351690
+total time ('libfwl641li.so'):      4:351831
+total time ('libucpchelp1.so'):      4:418499
+total time ('libsvl641li.so'):      4:419249
+total time ('libsfx641li.so'):      4:420861
+total time ('libuui641li.so'):      4:451313
+total time ('libfwk641li.so'):      4:451449
+total time ('libsfx641li.so'):      4:451608
+total time ('libfwl641li.so'):      4:451743
+total time ('libtk641li.so'):      4:453043
+total time ('libsvt641li.so'):      4:454235
+total time ('libtk641li.so'):      4:454326
+total time ('libfwk641li.so'):      4:454459
+total time ('libdtransX11641li.so'):      4:505139
+total time ('libdtransX11641li.so'):      4:505284
+total time ('libfwl641li.so'):      4:505426
+total time ('libsw641li.so'):      4:702188
+total time ('liblng641li.so'):      4:805794
+total time ('liblng641li.so'):      4:806007
+total time ('libscn641li.so'):      4:825564
+total time ('liblocaledata_ascii.so'):      4:831634
+total time ('libi18npool641li.so'):      4:831759
+total time ('libi18n641li.so'):      4:831890
+total time ('libi18n641li.so'):      4:832035
+total time ('liblng641li.so'):      4:832167
+total time ('libdbtools2.so'):      5: 71355
+total time ('libgcc3_uno.so'):      5: 71455
+total time ('libgcc3_uno.so'):      5: 71485
+total time ('libdtransX11641li.so'):      5: 71619
+total time ('libmcnttype.so'):      5: 86088
+total time ('libi18n641li.so'):      5: 86216
+total time ('libgcc3_uno.so'):      5: 86328
+total time ('libgcc3_uno.so'):      5: 86410
+total time ('libgcc3_uno.so'):      5: 86529
+total time ('libgcc3_uno.so'):      5: 86574
+total time ('liblocaledata_ascii.so'):      5: 86710
+total time ('libfwk641li.so'):      5: 86832
+total time ('libsfx641li.so'):      5: 86945
+
+And here is the diff between the ldd of libwrp and soffice.bin
+
+					         size	striped	.gz
+15a16
+>       libfwe641li.so => ./libfwe641li.so	 2.3Mb
+21a23
+>       libgo641li.so => ./libgo641li.so	 2.2Mb
+23a26
+>       libj641li_g.so => ./libj641li_g.so	  28kb
+26a30
+>       libofa641li.so => ./libofa641li.so	 3.3Mb
+32a37,39
+>       libsb641li.so => ./libsb641li.so	 1.2Mb
+>       libsfx641li.so => ./libsfx641li.so	 7.3Mb
+>       libso641li.so => ./libso641li.so	 1.3Mb
+37a45,47
+>       libsvt641li.so => ./libsvt641li.so	 8.5Mb	3.4Mb	1.3Mb
+>       libsvx641li.so => ./libsvx641li.so	25.3Mb	10.0Mb	4Mb
+>       libtk641li.so => ./libtk641li.so	 5.2Mb
+42a53
+>       libxcr641li.so => ./libxcr641li.so	  480kb
+43a55
+>       libxo641li.so => ./libxo641li.so	 5.9Mb
+
+	libc: 1.3Mb 1.2Mb 0.51Mb
+
+	It seems libwrp just happens to pull in most of the rest of
+the platform. Particularly libsvx - a huge beast.
+
+	* Looking at the binding process - it seems that we repeatedly
+search loads of libraries trying to re-bind (eg.) 'read', surely a
+painfully unnecessary thing to do ? perhaps 'read' could have been
+clobbered by a new dlopen though ?
+
+	* Can we ignore conflicts and change the search order ?
+
+	* An amazing amount of internal (self) linking;
+
+src	dest	self	name
+-----------------------------
+232	14	20	./libcfgmgr2.so
+199	542	758	./libcomphelp2.so
+35	3	0	./libcpld.so
+52	440	19	./libcppu.so.3
+95	593	167	./libcppuhelper3gcc3.so
+24	163	225	./libdb-3.2.so
+177	8	27	./libdb_cxx-3.2.so
+229	1	1611	./libdbtools2.so
+57	5	0	./libdefreg.so
+145	6	422	./libdtransX11641li.so
+232	61	545	./libfwe641li.so
+166	18	170	./libfwi641li.so
+487	60	1469	./libfwk641li.so
+161	8	265	./libfwl641li.so
+65	11	0	./libgcc3_uno.so
+4	0	0	./libgcc_s.so.1
+46	6	265	./libgo641li.so
+67	8	414	./libi18n641li.so
+109	4	318	./libi18npool641li.so
+41	3	0	./libimpreg.so
+16	0	3	./libj641li_g.so
+162	6	685	./liblng641li.so
+5	2	0	./liblocaledata_ascii.so
+64	2	82	./libmcnttype.so
+659	10	508	./libofa641li.so
+68	2	2	./libpackage2.so
+156	25	160	./libpsp641li.so
+50	3	0	./librdbtdp.so
+39	2	0	./libreg.so.3
+266	1087	243	./libsal.so.3
+10	11	7	./libsalhelper3gcc3.so
+73	8	4	./libsax.so
+300	39	218	./libsb641li.so
+100	2	100	./libscn641li.so
+1788	954	4534	./libsfx641li.so
+50	9	4	./libsimreg.so
+80	13	2	./libsmgr.so
+348	561	1194	./libso641li.so
+187	121	383	./libsot641li.so
+31	122	1085	./libstdc++.so.3
+26	81	1061	./libstlport_gcc.so
+51	8	0	./libstore.so.3
+191	2360	2941	./libsvl641li.so
+1395	1185	3974	./libsvt641li.so
+1841	1507	14750	./libsvx641li.so
+3274	2	0	./libsw641li.so
+57	3	0	./libtcv.so
+58	3	0	./libtdmgr.so
+321	325	5956	./libtk641li.so
+93	917	636	./libtl641li.so
+173	9	489	./libucb1.so
+173	346	965	./libucbhelper1gcc3.so
+208	2	128	./libucpchelp1.so
+262	4	736	./libucpfile1.so
+289	524	709	./libutl641li.so
+161	2	83	./libuui641li.so
+553	1588	3358	./libvcl641li.so
+77	104	509	./libvos2gcc3.so
+195	11	219	./libwrp641li.so
+105	3	505	./libxcr641li.so
+348	310	3669	./libxo641li.so
+181	2462	4	./soffice.bin
+16	27	6	/lib/ld-linux.so.2
+96	895	271	/lib/libc.so.6
+6	0	0	/lib/libcrypt.so.1
+23	29	366	/lib/libcrypto.so.2
+34	17	0	/lib/libdl.so.2
+5	17	2	/lib/libm.so.6
+16	0	15	/lib/libnsl.so.1
+22	0	5	/lib/libnss_files.so.2
+64	199	21	/lib/libpthread.so.0
+5	0	0	/lib/librt.so.1
+35	13	69	/lib/libssl.so.2
+9	3	1	/lib/libtermcap.so.2
+29	1	76	/usr/X11R6/lib/X11/locale/common/ximcp.so.2
+11	1	0	/usr/X11R6/lib/X11/locale/common/xlcDef.so.2
+29	13	48	/usr/X11R6/lib/libICE.so.6
+20	3	18	/usr/X11R6/lib/libSM.so.6
+53	193	248	/usr/X11R6/lib/libX11.so.6
+15	8	5	/usr/X11R6/lib/libXext.so.6
+16	12	4	/usr/X11R6/lib/libXrender.so.1
+204	1	2	/usr/X11R6/lib/modules/dri/mga_dri.so
+4	0	2	/usr/lib/gconv/ISO8859-15.so
+34	2	2	/usr/lib/gnome-vfs-2.0/modules/libfile.so
+75	65	1689	/usr/lib/libGL.so
+48	30	202	/usr/lib/libORBit-2.so.0
+36	2	90	/usr/lib/libbonobo-activation.so.4
+88	14	71	/usr/lib/libcups.so.2
+8	0	104	/usr/lib/libfam.so.0
+24	0	85	/usr/lib/libgconf-2.so.4
+43	194	83	/usr/lib/libglib-2.0.so.0
+22	3	2	/usr/lib/libgmodule-2.0.so.0
+52	10	12	/usr/lib/libgnomecups-1.0.so.0
+83	27	53	/usr/lib/libgnomevfs-2.so.0
+51	17	72	/usr/lib/libgobject-2.0.so.0
+30	1	0	/usr/lib/libgthread-2.0.so.0
+19	4	4	/usr/lib/liblinc.so.1
+7	0	2	/usr/lib/libpopt.so.0
+13	0	136	/usr/lib/libxml2.so.2
+10	0	1	/usr/lib/libz.so.1
+53	25	0	sh
+-----------------------------
+18515	18515	60368	: Total
--- openoffice.org-2.4.1.orig/ooo-build/doc/cws.txt
+++ openoffice.org-2.4.1/ooo-build/doc/cws.txt
@@ -0,0 +1,34 @@
+<caolan> michael_: locate your workspace on http://eis.services.openoffice.org/ , (logging in as mmeeks@openoffice.org)
+<caolan> michael_: find it, edit it to set yourself as owner, and yourself as qa
+<michael_> caolan: ok :-)
+<caolan> michael_: reload it, and set "ready to qa", and reload again and in your qa role you set it to nominated
+<caolan> michael_: theres some paperwork with seeing due dates and ready for qa dates, I guess setting them all to today/tomorrow will fudge past that
+<caolan> michael_: I assume you already "cwsaddtask"ed the issues to the workspace ?
+<michael_> caolan: sure, I added the tasks
+* michael_ doesn't see how to edit it to set himself as owner
+--> thing (~chatzilla@x1-6-00-40-f4-24-69-81.k48.webspeed.dk) has joined #openoffice.org
+<caolan> michael_: if you're logged in right and view a workspace, then the "Data for child workspace" title is clickable and takes you to the edit page
+<caolan> michael_: I had problems where I was logged in a guest or as cmc, not cmc@openoffice.org which was the magic missing ingredient
+<michael_> caolan: intuitive :-)
+* michael_ gets there -thanks.
+<michael_> caolan: just fixing a bunch of cws tooling bugs hurting me :-)
+--> sanxiyn (tinuviel@211.104.100.115) has joined #openoffice.org
+<caolan> btw if it hasn't been mentioned, checkins with cvs comments including #iXXXXX# where XXXXX is the issue no get linked correctly by various bits of tooling e.g. http://eis.services.openoffice.org/EIS2/servlet/cws.ShowCWS?Id=1608&Path=SRC680%2Fsystemcurl1
+<michael_> caolan: oh; so when it says Issue: it should have some #i # stuff in the template ?
+* michael_ will write up a more complete CWS users guide from these tips :-)
+<michael_> caolan: what format is the date in ?
+* michael_ sees '-' delimited
+<caolan> michael_: I've never seen the template, I've cvs commit -m"#ixxx# ..." as habit for long time
+<caolan> michael_: as for dates, I think I used .de style dd.mm.yyyy, or maybe iso yyyy/mm/dd
+<michael_> it doesn't like '/' but it doesn't mind '-' :-)
+<michael_> caolan: so when it's nominated - you just hold your breath for a bit ? 
+<caolan> hmm, cwsrecync seems to have borked for me on new files on the master
+<caolan> michael_: integration requires human RE to do it, and its fri 17:42 in Hamburg, so I guess you'll see nothing happening until mon :-)
+<michael_> that's no problem :-)
+<michael_> caolan: just fixed cwsresync's idea of .cvspasswd parsing :-)
+<caolan> unless Ratte is still at work and sees me say that and makes a point of fast tracking it
+<michael_> heh;
+* michael_ is in no hurry,
+* michael_ 's tooling now appears to work fine so ...
+<michael_> caolan: do you ever bother doing a resync of your cws in another directory ?
+<caolan> michael_: today I want to do one, normally not, but I know there has been changes to something I've also changed, and I suspect it'll be non-trivial to merge unless you know what I'm at
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/ustrings.ods.uu
+++ openoffice.org-2.4.1/ooo-build/doc/ustrings.ods.uu
@@ -0,0 +1,21915 @@
+begin 644 doc/ustrings.ods
+M4$L#!!0``````%&..#:%;#F*+@```"X````(````;6EM971Y<&5A<'!L:6-A
+M=&EO;B]V;F0N;V%S:7,N;W!E;F1O8W5M96YT+G-P<F5A9'-H965T4$L#!!0`
+M`````%&..#8````````````````:````0V]N9FEG=7)A=&EO;G,R+W-T871U
+M<V)A<B]02P,$%``(``@`48XX-@```````````````"<```!#;VYF:6=U<F%T
+M:6]N<S(O86-C96QE<F%T;W(O8W5R<F5N="YX;6P#`%!+!P@``````@``````
+M``!02P,$%```````48XX-@```````````````!@```!#;VYF:6=U<F%T:6]N
+M<S(O9FQO871E<B]02P,$%```````48XX-@```````````````!H```!#;VYF
+M:6=U<F%T:6]N<S(O<&]P=7!M96YU+U!+`P04``````!1CC@V````````````
+M````'````$-O;F9I9W5R871I;VYS,B]P<F]G<F5S<V)A<B]02P,$%```````
+M48XX-@```````````````!@```!#;VYF:6=U<F%T:6]N<S(O;65N=6)A<B]0
+M2P,$%```````48XX-@```````````````!@```!#;VYF:6=U<F%T:6]N<S(O
+M=&]O;&)A<B]02P,$%```````48XX-@```````````````!\```!#;VYF:6=U
+M<F%T:6]N<S(O:6UA9V5S+T)I=&UA<',O4$L#!!0`"``(`%&..#8`````````
+M```````;````3V)J96-T4F5P;&%C96UE;G1S+T]B:F5C="`Q[5AO:%M5%#\O
+MJ4WSYX4U=5*=&_7/%V<<Z9JV29%IW5(WUZZN#2)^L-2.C=`V:6OG5!!BM7.L
+MKN#*AH*M5!`WT:*P#PZV(;B!BJ(R9/.#LX+;A/IGGU2<^/S=>][+>WEIHJG-
+M.G`W/??W[KWGWGONN;]SDM>'UK>VQ5L4JB4N"JT@:U'L<F@Y4=1/M`N-,70Y
+M@)KV+)Z66::]":V(W]2HH1$\W8(GA]S`(7M%$5I*9@YZGT?S.F.=K,:HWM`T
+M32RKT$DTJNCA!YOC&ULVM;9V=<:V=MT7NW_3%KF<M'A:UO6R+J?3'M[0V-AJ
+MKM5L4R^MR6)U!Y=+]U#!8AM/YSQ95LXZ90I.6".WRG3EV&>WWUQ"+"E]([Q<
+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
+M63=+-&A%@!IAB*(=-\0R`CU7-XF$-/&AUA7_LUC=PZ%M^61CY87=N?02']G#
+MH5UKZF+EA9UK&NH-Q,J3D6D#*8.NIU;\RF*20GV6Z&IM3S!VSF6NR$"W.#\>
+MC]CO;@FSC>L'+3U5,\PE7X(9G&<YOK%JZ"Y<1Q^/6OJG,V9LH[LZMO\<CUVI
+MCNZOA_<M*NKX%A7U+GVF11\=>J5#'P"V<B_">O%]T9\/AQ>\?@>T>X@[+2S7
+M`<X>XHQ*ME4!NGL79.9R/!,I'Y?VH^1G-'?/076;_77D<77"]Q^#ZAM02P<(
+MEH*T,SH!``!,!```4$L#!!0``````%*..#8VA\-[)@0``"8$```(````;65T
+M82YX;6P\/WAM;"!V97)S:6]N/2(Q+C`B(&5N8V]D:6YG/2)55$8M."(_/@H\
+M;V9F:6-E.F1O8W5M96YT+6UE=&$@>&UL;G,Z;V9F:6-E/2)U<FXZ;V%S:7,Z
+M;F%M97,Z=&,Z;W!E;F1O8W5M96YT.GAM;&YS.F]F9FEC93HQ+C`B('AM;&YS
+M.GAL:6YK/2)H='1P.B\O=W=W+G<S+F]R9R\Q.3DY+WAL:6YK(B!X;6QN<SID
+M8STB:'1T<#HO+W!U<FPN;W)G+V1C+V5L96UE;G1S+S$N,2\B('AM;&YS.FUE
+M=&$](G5R;CIO87-I<SIN86UE<SIT8SIO<&5N9&]C=6UE;G0Z>&UL;G,Z;65T
+M83HQ+C`B('AM;&YS.F]O;STB:'1T<#HO+V]P96YO9F9I8V4N;W)G+S(P,#0O
+M;V9F:6-E(B!O9F9I8V4Z=F5R<VEO;CTB,2XP(CX\;V9F:6-E.FUE=&$^/&UE
+M=&$Z9V5N97)A=&]R/D]P96Y/9F9I8V4N;W)G+S(N,"1,:6YU>"!/<&5N3V9F
+M:6-E+F]R9U]P<F]J96-T+S8X,"1"=6EL9"TY,#$Q/"]M971A.F=E;F5R871O
+M<CX\;65T83II;FET:6%L+6-R96%T;W(^36EC:&%E;"!-965K<SPO;65T83II
+M;FET:6%L+6-R96%T;W(^/&UE=&$Z8W)E871I;VXM9&%T93XR,#`V+3`X+3(S
+M5#`Y.C0T.C$V/"]M971A.F-R96%T:6]N+61A=&4^/&1C.F-R96%T;W(^36EC
+M:&%E;"!-965K<SPO9&,Z8W)E871O<CX\9&,Z9&%T93XR,#`W+3`Q+3(T5#$W
+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
+M5[%NVS`0W?,5@H9N$A/;0Z!8#M`$*3H4`8IT+FCJ)+.@2)9W3.R_+YG`=MJZ
+M@9V*,+R)!/G>NT?='3F]7O8J>P2'TN@ZORC/\PRT,(W479U_>[@K+O/KV=FT
+MYUJV@%2M/[*P3^-F6.?>Z<IPE%AIW@-6)"IC03=&^!XT5;^OKR+3["S;`K=2
+M01$6NE6V)8-&\H)6%NJ<6ZNDX!1TLD?=E,]<Y6N*$JT#WN`"@/(M2.N5*BRG
+M19VSG!W$N1OEQNA6=MX]:\$10^+D<<Y=&G@N!"@(0^.8\,[%2(.9R;F2$+3*
+M<()$X-98;\.?X!/!.],YP'0G':4G`R=C5#)PV?,.D'V4U'.+23D.Q/ZS;*#7
+M,7M*+TOQFF`_#?]!OBQBK3)M*P4472-[(![W7SW)4,&>\'MK7,\I%L_ZPT]O
+MZ.K3[><O8=%=6/0RL5OC_?P'"/H*5G$!L0XB>YG*+DY+[NBTY(Y/2^YDD*3<
+M@7\@+L&26.Q?._%#3M+[&MS;N$@K!3@X[#K16"K=&X)W![#'O4DLN/O'C6G#
+MGR*J46K;1D>V[>"&L5=4X]2VC8]LVSB);9/4MDV.;-MD6-MB3QKLH?&P\/U<
+M<ZF0T?JSM+H;&GS8I@%$X1V\.=`I^^L9//L%4$L'"(--*J'>`0``00\``%!+
+M`0(4`!0``````%&..#:%;#F*+@```"X````(``````````````````````!M
+M:6UE='EP95!+`0(4`!0``````%&..#8````````````````:````````````
+M`````%0```!#;VYF:6=U<F%T:6]N<S(O<W1A='5S8F%R+U!+`0(4`!0`"``(
+M`%&..#8``````@`````````G`````````````````(P```!#;VYF:6=U<F%T
+M:6]N<S(O86-C96QE<F%T;W(O8W5R<F5N="YX;6Q02P$"%``4``````!1CC@V
+M````````````````&`````````````````#C````0V]N9FEG=7)A=&EO;G,R
+M+V9L;V%T97(O4$L!`A0`%```````48XX-@```````````````!H`````````
+M````````&0$``$-O;F9I9W5R871I;VYS,B]P;W!U<&UE;G4O4$L!`A0`%```
+M````48XX-@```````````````!P`````````````````40$``$-O;F9I9W5R
+M871I;VYS,B]P<F]G<F5S<V)A<B]02P$"%``4``````!1CC@V````````````
+M````&`````````````````"+`0``0V]N9FEG=7)A=&EO;G,R+VUE;G5B87(O
+M4$L!`A0`%```````48XX-@```````````````!@`````````````````P0$`
+M`$-O;F9I9W5R871I;VYS,B]T;V]L8F%R+U!+`0(4`!0``````%&..#8`````
+M```````````?`````````````````/<!``!#;VYF:6=U<F%T:6]N<S(O:6UA
+M9V5S+T)I=&UA<',O4$L!`A0`%``(``@`48XX-M8[IRGS!```#Q<``!L`````
+M````````````-`(``$]B:F5C=%)E<&QA8V5M96YT<R]/8FIE8W0@,5!+`0(4
+M`!0`"``(`%&..#9/;150_AX``,8/`@`;`````````````````'`'``!/8FIE
+M8W1297!L86-E;65N=',O3V)J96-T(#)02P$"%``4``@`"`!1CC@V8!'<*VJC
+M``"S?!``&P````````````````"W)@``3V)J96-T4F5P;&%C96UE;G1S+T]B
+M:F5C="`S4$L!`A0`%``(``@`48XX-J=$.#`>D`$`_,TR`!L`````````````
+M````:LH``$]B:F5C=%)E<&QA8V5M96YT<R]/8FIE8W0@-%!+`0(4`!0`"``(
+M`%&..#9D'[LQ$B<+`.,$XP`+`````````````````-%:`@!C;VYT96YT+GAM
+M;%!+`0(4`!0`"``(`%*..#;:J#/2<`8``(@=```*`````````````````!R"
+M#0!S='EL97,N>&UL4$L!`A0`%``(``@`4HXX-JZZAP*D!@``2B0``!0`````
+M````````````Q(@-`$]B:F5C="`Q+V-O;G1E;G0N>&UL4$L!`A0`%``(``@`
+M4HXX-I:"M#,Z`0``3`0``!,`````````````````JH\-`$]B:F5C="`Q+W-T
+M>6QE<RYX;6Q02P$"%``4``@`"`!2CC@VR9(QM`$2``#-&0$`%```````````
+M```````ED0T`3V)J96-T(#(O8V]N=&5N="YX;6Q02P$"%``4``@`"`!2CC@V
+MEH*T,SH!``!,!```$P````````````````!HHPT`3V)J96-T(#(O<W1Y;&5S
+M+GAM;%!+`0(4`!0`"``(`%*..#:',9`+!E```-1["``4````````````````
+M`..D#0!/8FIE8W0@,R]C;VYT96YT+GAM;%!+`0(4`!0`"``(`%*..#:6@K0S
+M.@$``$P$```3`````````````````"OU#0!/8FIE8W0@,R]S='EL97,N>&UL
+M4$L!`A0`%``(``@`4HXX-EK$JT)ZZP``8"$:`!0`````````````````IO8-
+M`$]B:F5C="`T+V-O;G1E;G0N>&UL4$L!`A0`%``(``@`4HXX-I:"M#,Z`0``
+M3`0``!,`````````````````8N(.`$]B:F5C="`T+W-T>6QE<RYX;6Q02P$"
+M%``4``````!2CC@V-H?#>R8$```F!```"`````````````````#=XPX`;65T
+M82YX;6Q02P$"%``4``@`"`!2CC@VSO4_2>,3``##%```&```````````````
+M```IZ`X`5&AU;6)N86EL<R]T:'5M8FYA:6PN<&YG4$L!`A0`%``(``@`4HXX
+M-B_#$9W4!0``'D4```P`````````````````4OP.`'-E='1I;F=S+GAM;%!+
+M`0(4`!0`"``(`%*..#:#32JAW@$``$$/```5`````````````````&`"#P!-
+J151!+4E.1B]M86YI9F5S="YX;6Q02P4&`````!L`&P`>!P``@00/````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/macros.txt
+++ openoffice.org-2.4.1/ooo-build/doc/macros.txt
@@ -0,0 +1,861 @@
+Impl. priorities:
+    + Start tackling test/macro/interaction.
+    + Customer documents
+        + The 'Like' Operator seems quite popular, see Excels help for a fairly full-on detailed spec as to what it should do. In generaly though people seem to use it in a fairly simple regular-expression sorta way ( and thats what we should start with )
+
+	    * basic/source/comp/token.cxx ( add Like definition to token table, the enum already exists )
+
+            * basic/source/comp/exprnode.cxx
+                SbiExprNode::FoldConstant() needs to be adjusted to handle the constant case, so a common like function needs to be available to both the compile and runtime stages to provide the functionality
+
+            * basic/source/runtime/step0 we already have a StepLIKE stub, it needs to operate similar to the other operator code ( look at StepEQ, StepNE etc. ) seems all thats necessary is to pop the two items required off the stack
+
+TODO (thinking):
+    + TOREAD:
+	+ extensions/source/ole/*
+    	+ extensions/test/ole/OleClient/clientTest.cxx#507
+		+ Property with argument - a nice key ...
+
+    + More elegant hooks
+	+ we should prolly hook through the XHierarchicalNameAccess
+	  service 'theCoreReflection', cf. sbunoobj.cxx /SbUnoFactory/
+	  sb.cxx /AddFactory/ 
+
+    + Some references to '[]' syntax that still aren't fully understood ( see NonProblems 'Page 96; ' )
+			 ./sbx/sbxexec.cxx:116:  if( *p == '[' )
+			 ./sbx/sbxexec.cxx:152:  if( aCharClass.isAlpha( *p ) || *p == '_' || *p == '[' )
+			 ./sbx/sbxexec.cxx:410:          if( *p++ != '[' )
+				+ interesting 'Element'->Symbol->QualifiedName etc.
+	+ Although simple shortcut range reference notation is supported other functionality offered by 'Evaluate' still missing. Need to look in sc to see if some reuse is possible in the code that handles/evaluates what you type into a Cell. see sc/source/core/interp* ?
+
+		
+
+    + Examine other special-cased interfaces:
+	+ classes/propacc.cxx:129: Reference< XPropertySetInfo > etc.
+	+ other instances of 'SbUnoObject' etc.
+
+    + Improve hooks into StarBASIC
+	not using 'ThisComponent' anymore =>
+	    can remove that & use something more native ?
+
+    + Events
+    	+ Form-Controls
+	    + some verification needed on some of the event params e.g. 
+	        Object_KeyUp, Object_Key[Up | Down]  the value of KeyCode needs to be checked in VBA and OO to see if they corrolate
+	    + Some events appear to need changes in the controls themselves
+	        Object_Change ( for scroll its supported ) however afaik this is a generic event that is fired whenever the 'Value' of a control changes, there does not seem to be full support for this in OO
+	        Object_DropButton, seems like there is no similar event in OO, again some changes to the control ( or control model ) would seem to be necessary	
+	        Object_BeforeDropOrPaste ditto
+	        Object_BeforeDragOver not sure if this is equiv to OO's mouse dragged, careful examination of the behavior needed.
+        + UserForm-Controls ( OO Dialog controls )
+    	    + code to catch capture the events and fire user defined VBA-like event handler functions is present in ( basic-source-classes-eventatt-cxx.diff ) this patch file is not enabled in apply as yet no testing done on this, it assumes that the translations for form-controls are also valid for the equiv. userform-controls. That assumption has not been tested. 
+
+New Problems/Funnies Needs attention
+====================================
+
+* comparing a blank string ( temp var ) e.g. if Range("A2") = " " results in false if the cell actually contains a string " "
+
+* handling of logical values in calc, no concept of true/false just the associated calc function e.g. { TRUE(), FALSE() }, additionally when interoperating with BASIC ( which has a built in boolean type ) problems occur ( In basic True is the result of and expression that evaluates to -1 ) Of course the problem is further compounded when you copy a cell that contains TRUE or FALSE ( only the intrinsic value is copied i.e. 0 or 1 ) a control associated with a cell ( linked cell ) sets the value to TRUE/FALSE ( which is always evaluated to the numeric value from the api )
+	+ should be able to detect whether a cell contains a logical type via the formatting of the cell.... but when copying this formatting should be preserved. Calc really should have its own built in Boolean type ( should not be impossible to achieve ) need to open bug about this
+
+* using Ranges.EntireColumn or Range.EntireRow and trying to pass the resulting
+range into a worksheet fnction ( that accepts ranges ) e.g. COUNTA it thows an error ( a patch is forthcoming ) the code seems to be confused about MAXROWS and MAXROWCOUNT
+
+* NonProblems:
+===============
+
+    + 'For Each wbk in Workbooks' vs. Application.Workbooks.Index(n)
+	+ We have to export the 'XEnumerationAccess' interface to let
+	  StarBasic iterate over the items ...
+    + Arguments issue
+	+ 99% solved with the 'compatibility' mode turned on
+	    + not combat/coding complete: some Anys are
+	      not optional.
+    + Named arguments work well:
+	+ We need to get the argument names right in the IDL though
+    + polymorphic constructor story
+	+ Range("A1:B2"), Range(Cell(1,1), Cell(3,5));
+	+ Range just takes 2 Variants
+	    + interestingly 1 is optional, 1 is not.
+    + ActiveWorkbook.Close <- really a 3 argument method
+    + collection objects; Worksheets, Workbooks etc. ( mostly implemented see sc/source/ui/vba/[vbaworkbooks.cxx | vbaworksheets.cxx ] 
+    + create an object/declaration story:
+	+ Dim a As Range
+	+ FIXME: need to read up on how namespaces are
+	  handled, wrt. Dim A as com.sun.star.sheet.Worksheet
+	  etc. - possibly we can just do some 'Globals' magic
+	  here.
+	Note: this is handled by patches in patches/vba/vba-dim-and-constants-patch.diff see method ( checkUnoObjectType() defined in sbunoobj.cxx ) the namespace org.openoffice.vba is appended automatically and a sanity check to see if object implements the defined interface performed. The sanity check changes the uno type from Something to XSomething e.g. Dim a as Range will result in a queryInterface for 'org.openoffice.vba.XRange'
+
+    + 'WorkSheets("sheet1")' 
+	+ Now handled in vba-basic-collection.diff ( handled in CheckArray() 
+function ( source/runtime/step2.cxx ) look for XCollection. So, any uno object
+implementing XCollection if used with Object(something) syntax will result
+in the Item ( XCollection ) method getting called with "something" as a 
+parameter.
+ 
+    + Examine other special-cased interfaces:
+	+ runtime/step2.cxx:477: Reference< XIndexAccess > ... see above for
+'WorkSheets("sheet1")' for an explanation
+	+ runtime/runtime.cxx:1046: Reference< XEnumerationAccess > this is 
+handling for 'foreach' syntax, an object that implements this interface can
+be used in a foreach loop.
+
+    + Page 96: 'Excel 2000 VBA'
+	+ It is legal to have '[A1]' which evaluates to a 'Range'
+	  via the 'Evaluate' method of 'Application'.
+	+ '[]' is a special delimiter in ooo-basic to enclose variable names that contain spaces. source/comp/scanner.cxx ( circa. line 440 ) & basic/source/runtime/step2.cxx ( findElement() circa line 106 ) have been modified ( via vba-evaluate-support.diff ) to capture this syntax. Control is delegated to either ScVbaApplication::Evaluate() or ScVbaWorkSheet::Evaluate()
+
+* Error Handling Comparison
+
+two types of errors, these are displayed ( in msgbox ) from
+
+sb.cxx 
+
+StarBASIC::CError
+
+and 
+
+StarBASIC::RTError
+
+the error code ( SbError ) is afaik actually a resource id, convertions to/from a human readable error code are achieved via
+
+StarBASIC::GetSfxFromVBError & StarBASIC::GetVBErrorCode
+
+the current error message can be retrieved via the Error RTL function 
+the message associated with and error number can also be retrieved via the same function
+
+
+Error setting seems quite ( unecessarily ) complex, there is both a SbIntstance::nErr and SbiRuntime::nError it appears though that SbiInstance::nErr is the "real" error ( see StarBASIC::GetErrBasic() ) but the setting seems only to be done in the middle of the Step routine in a nasty piece of logic. 
+
+Behaviour
+
+vba has a global error object, that object contains lots of pieces of info and the error info is persisted and isn't cleared unless the macro explicitly requests that either
+   a) via On Error or Resume  statements
+   b) Err.clear
+
+starbasic has a global error number
+errors are cleared if we use on error resume next ( eg. error is always cleared )
+
+therefore, implementing ( doing so right now ) a compatible error object that
+can be resolved when in Compatibility mode would seem to solve most of the problems here. Key abilities are
+    + align the error persistence/clearing symantics of basic
+    + allow user defined errors to be raised
+* VBA compatibility thoughts:
+
+    + Basic types
+    + Syntactic issues
+    + Annoyances
+    + Global objects
+    + Object model 
+
+
+* Basic types
+#    + missing 'Date' type
+	
+	+ types manipulation:
+	+ script/basic/source/classes/sb.cxx
+		+ class SbTypeFactory
+	+ script/basic/source/classes/sbunoobj.cxx
+		+ types conversion
+	+ svtools/inc/sbxdef.hxx
+		+ defines data types (SbxDataType)
+	+ svtools/source/sbx/
+		+ sbx types implementation
+		+ SbxDATE is a 'Date' type
+		+ ./sbxdate.cxx
+			+ handles 'Date' type
+		+ should we add types here?
+		
+* Syntactic issues
+	+ StarBasic - very global keywords cf. tokenizer
+	+ do we tolerate eg. 'Option' as a method
+	    + does MS.
+    + Investigate operators: ':=' vs. '=' eg.
+
+	+ Syntactic manipulation
+	+ script/basic/source/classes/sbxmod.cxx
+		+ Keywords list and tokenizer class
+	+ script/basic/source/comp/parser.cxx
+		+ defines statements functions
+		+ implements the parser
+		+ should add more statements?
+	+ script/basic/source/comp/
+		+ implements statements functions
+		+ compiler implementation
+
+* Annoyances
+    + lots of errors on load cause massive dialog spewage
+	+ extremely annoying.
+
+* Global objects
+
+    + Should we just hook off the global / ThisComponent object ?
+      and slave to that ? (slower?)
+    + mybasic.cxx Insert( (SbxObject*)xSbUnoObj ) - global ?
+	    + sb.cxx ?
+
+    + VBA has _lots_ of global / implicit objects
+
+    + StarBasic seems to have 1: 'ThisComponent' / 'StarDesktop'
+	+ ThisComponent usage / setup:
+	    + framework/sfx2/source/appl/appbas.cxx	    x1
+	    + framework/sfx2/source/control/macrconf.cxx    x4
+	    + framework/sfx2/source/appl/appuno.cxx	    x6
+	    + framework/sfx2/source/doc/objxtor.cxx	    x5
+	    + framework/sfx2/source/doc/sfxbasemodel.cxx    x4
+	    + script/basic/source/classes/eventatt.cxx	    x1
+	    + sw/sw/source/ui/wizard/wizgo3.cxx		    x1
+	+ StarDesktop usage / setup
+		+ framework/sfx2/source/appl/appbas.cxx     x1
+		+ framework/sfx2/source/control/macrconf.cxx    x1
+
+    + 'ThisComponent' / 'StarDesktop' manipulation:
+	+ appuno.cxx (loadMacro)
+	    + push/pop 'ThisComponent'
+		       + for load time method emission.
+	+ macrconf.cxx (ExecuteMacro)
+	    + push/pop 'ThisComponent'
+	+ macrconf.cxx (CheckMacro)
+		+ checks macros libraries, including 'StarDesktop'
+		+ checks for macro errors like NO_METHOD
+	+ appbas.cxx (GetBasicManager)
+	    + sets global variables - library bits etc.
+	      including 'ThisComponent' & 'Desktop'
+		pBas->Insert(unoObj)
+		(StarBASIC *pBas: pImp->pBasicMgr->GetLib(0))
+	+ objxtor.cxx (InitBasicManager_Impl)
+	    + create BasicManager, init 'ThisComponent'
+		+ very similar to (GetBasicManager!?)
+	+ objxtor.cxx (SfxObjectShell:SetWorkingDocument)
+	    + sets ThisComponent nasty global variable
+	    + GetWorkingDocument returns it ...
+	+ sfxbasemodel.cxx (dispose)
+	    + unsets global 'ThisComponent' if it is us.
+	+ script/basic/source/classes/eventatt.cxx
+	    + missing in OOO_1_1_1
+	+ sw/sw/source/ui/wizard/wizgo3.cxx
+	    + auto-creates a macro used in 
+
+
+	+ Should be able to do all this off
+	  the 'ThisComponent' (surely?)
+	+ Global objects
+	    + Selection
+	    + ActiveCell
+	    + WorksheetFunction.<ws fns>
+	+ Global functions
+	    + Range("")
+
+	+ StarBasic Global function and property manipulation
+	+ script/basic/source/runtime/stdobj.cxx
+		+ defines globals functions and properties
+		+ add here new global functions ?
+		+ should add here Range("") function ?
+	+ script/basic/source/runtime/props.cxx
+		+ implements globals properties
+	+ script/basic/source/runtime/methods.cxx
+		+ implements most of globals functions
+	+ script/basic/source/runtime/methods1.cxx
+		+ implements remaining globals functions 
+		
+	+ svtools/inc/sbxobj.hxx, sbxvar.hxx
+	    + interestingly SbxValue has a Date type. **
+	    + SbxVariable has a 'Get/Set' UserData
+	      method pair [ UINT32 !? ]
+
+	+ Need to pass context through execution - somehow,
+	  'This Sheet', 'This Workbook' etc.
+		SbxStar::Insert / Remove.
+		SbxObjectRef xUnoObj = GetSbUnoObject( DEFINE_CONST_UNICODE("ThisComponent"), aAny );
+	+ Do this in interpr4.cxx (ScMacro) ?
+
+* Object model
+    + we need to expose these things as Objects in the full sense,
+    + or - at least, expose a load of 'typedef Range Object'
+      type things - everything constructed via a factory anyway (!?)
+
+--------------------------------------------------------------------------------------------
+sfx2/source/appl/appbas.cxx 
+	+ SfxApplication::GetBasicManager()
+		now gets the BasicManager thru GetAppBasicManager()
+			[GetSbData()->pAppBasMgr]
+
+basic/source/basmgr/basmgr.cxx
+	+ BasicManager class
+
+basic/source/classes/sbintern.cxx
+	+ defines SbiGlobals
+	    which has:
+		-SbiInstance* pInst - all active run time instances
+		-SbiFactory* pSbFac - StarBASIC Factory
+		-SbUnoFactory*	pUnoFac	- Factory for UN Structs with DIM AS NEW ONE ??
+		-SbTypeFactory*	pTypeFac - Factory for user defined types
+		-SbClassFactory* pClassFac - Factory for user defined classes 
+						(based on class modules)
+		-SbOLEFactory* pOLEFac - Factory for OLE types
+		-SbModule* pMod - Up-to-date active module
+		-SbModule* pCompMod - Up-to-date compiled modules
+		-short	nInst - Number of BASICs
+		-Link	aErrHdl - global Error-Handler
+		-Link	aBreakHdl - globaler Break-Handler
+		-SbError nCode - current error code
+		-xub_StrLen nLine - current line
+		-xub_StrLen nCol1,nCol2 - current columns (of, to)
+		-BOOL bCompiler - Flag for compiler error
+		-BOOL bGlobalInitErr - With the GlobalInit a compiler error arose
+		-BOOL bRunInit - TRUE, if RunInit of the basic is active
+		-String aErrMsg - Buffer for GetErrorText()
+		-SbLanguageMode	eLanguageMode - Flag for Visual basic Script mode
+		-SbErrorStack* pErrStack - Stack for the in the event of an error diminished 										SbiRuntime chain ??
+    		-::utl::TransliterationWrapper* pTransliterationWrapper - For StrComp
+		-BOOL bBlockCompilerError;
+    		-BasicManager* pAppBasMgr;
+
+
+basic/source/classes/sb.cxx
+	+ class StarBASIC
+	+ sbClassFactory
+	     Factory class to create class objects (type command) ?
+
+
+Collection Support in basic
+
+./source/classes/sb.cxx contains a factory for creating BasicCollection ( name Collection ) 
+
+interesting bits
+
+* basic/source/sample this contains some new definition for a custom 
+Sample object [?] looks like you need to hack mybasic.cxx to get this working 
+(so it says in the comments anyway ) but hacking sb.cxx would probably do the same 
+
+   ** NOTE: come back to this, could be interesting.
+
+BasicCollection has a factory entry in source/classes/sb.cxx:298 
+        if( rClass.EqualsIgnoreCaseAscii( "Collection" ) )
+        {
+                String aCollectionName( RTL_CONSTASCII_USTRINGPARAM("Collection") );
+                return new BasicCollection( aCollectionName );
+        }
+
+so a "Dim coll as Collection" should work
+
+BasicCollection ( defined source/inc/sbunoobj.hxx, implemented in source/classes/sb.cxx )
+
+
+usage standalone - the following works 
+
+Sub Main
+Dim coll as new Collection
+coll.Add( Workbooks.Item(0) )
+for each Item in coll 
+    msgbox ( "name is " + item.name )
+next Item
+end sub
+
+
+also interestingly something like
+msgbox ( "name is " + coll(1).Name  also works :-)
+
+
+Some Notes on Broadcast/Notify
+==============================
+
+At the heart of ooo-basic is the Broadcast/notification mechanism, this is used as a generic way to call methods of an object (sorta poor mans DII). Generally this is used as a way to delay ( or lazy initialize objects )
+
+In general a SbxVariable is an object that needs a Broadcast in order for it
+to have data available to it.
+
+To facilitate this a SbxVariable has a SfxBroadcaster member "pCst".
+
+In ooo-basic nearly every variable used in the runtime has been generated/returned a result of a Find method ( on a parent object or on the basic instance (StarBASIC) itself ). These variables are always SbxVariables. 
+
+looking at the inheritance hierarchy:
+
+SvRefBase<-SbxBase<-SbxValue<-SbxVariable
+SbxVariable<-SbxMethod<-SbUnoMethod
+SfxListener<-SbxVariable<-SbxObject
+SbxObject<-SbUnoObject
+
+All of uno methods & properties calls are handled by the SFX_NOTIFY method of the parent SbUnoObject.  Its not immediately obvious how a broadcast on an SbxVariable ( for example for a method ) can call the SFX_NOTIFY method of the SbUnoObject, there seems initially no relationship between the SbUnoMethod object and the SbUnoObject. There is in fact a relationship and it is setup as part of a Find call on the parent (SbUnoObject) object, this ends up calling SbxObject::QuickInsert() source/sbx/sbxobj.cxx:560 where it adds itself ( the parent object ) as a listener ( for broadcasts ) from the SbxVariable ( the method/property ) it inserts into itself.
+
+How does the value of the SbxVariable change say for a property?
+when the 'Broadcast' is called on SbxVariable it creats an SbxHint 
++ source/sbx/sbxvar.cxx
+    pSave->Broadcast( SbxHint( nHintId, this ) );
+passing itself ;-)
+
+the corrosponding Notify ( SbUnoObject::SFX_NOTIFY ) extracts that via 
++ source/classes/sbunoobj.cxx:
+    SbxVariable* pVar = pHint->GetVar();
+and equates pVar to the result of whatever operation occurs ( e.g. result of a method call )
+
+
+NOTE: Another interesting side-affect ( and  intentional ) is that if a copy is made of a SbxVariable ( say for a property ) then subsequent broadcasts ( for example SBX_HINT_DATACHANGED ) do not call notify on the parent object because when the SbxVariable is copied the broadcaster ( pCst ) is NULLED. This means that in the case of a property any assignments made do not result in an uno call, the sbxVariable ( SbUnoProperty ) values is modified locally only.
+
+
+
+------------------------------
+Forms control event handling: 
+------------------------------
+
+Events for form-controls and possibly for Dialogs ( UserForms ) are handled by the new service "org.openoffice.vba.VBAToOOEventDesc". This service is implemented in scripting/source/vbaevents/eventhelper.cxx ( from patches/vba/vbaevents-services-sources.diff ). In VBA events for form-controls are handled by vba eventhanldler functions defined by the user that satisfy a specific naming convention e.g. 'Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)' where object is the name of the control e.g. CommandButton1 which handles a KeyPress event on a control named 'CommandButton1'. ( for some more info on this have a look in events.txt in this dir, this file contains some info the VBA event handling functions ( params etc. ) & also some info on the equivulant OO ScriptEvents )
+
+In OO, macro/event bindings for a formcontrol are specified via an XEventAttacherManager (for Form Controls ) or an XEventSupplier (for Dialogs/UserForms). Usually in OO these event/macro bindings are set up using the control property editor. The handling code for managing bindings defined is truely hideous and can be seen in extensions/source/propctrlr/formcontroller.cxx OPropertyBrowserController::ChangeEventProperty() method. For form controls the same EventAttacherManager is used to set up VBA-like bindings for the form control.
+
+	fmctrler.cxx:1626 FormControlVBAHandler handler( m_xModelAsManager, xControl );
+	fmctrler.cxx:1627 handler.createEventBindings(nPos);
+
+the createEventBindings() method creates custom bindings for the control. The createEventBindings() method calls getEventDescriptions(const Reference< awt::XControl >& xControl ) ( part of the "org.openoffice.vba.VBAToOOEventDesc" service defined in scripting/source/vbaevents/eventhelper.cxx ) which returns Sequence< ScriptEventDescriptor > for the xControl thas is passed to the method. Each ScriptDescriptor in the sequence is defined to intercept a particular OOO event ( for more info see api ref doc for com/sun/star/script/ScriptEventDescriptor ). Complementing the createEvents is a special listener "org.openoffice.vba.EventListener" which can be registered for those events, the listener receives ScriptEvents ( OO events ) and tries to call the appropriate VBA-like handler ( if it exists ), it does all of the transformation of paramaters to be passed to the function etc. 
+
+These bindings are not persisted and do not appear in the controls property-editor. Display and persistence is suppressed in extensions/source/propctrlr/formcontroller.cxx ( see logic tests for VBAInterop ) they exist in addition to any bindings made using the property editor.
+
+The bindings are tagged with a specific type "VBAInterop" which flags them to be processed by a special handler ( additionally also allows them to be supressed in the property editor).
+
+A custom script listener is created to handle the form control events of type "VBAInterop", the source code for the listener is in svx/source/form/fmundo.cxx:178. It is registered at svx/source/form/fmundo.cxx:882 This custom listener delegates to a special listener service "org.openoffice.vba.EventListener" again implemented in scripting/source/vbaevents/eventhelper.cxx 
+
+---------------------------------
+UserForms control event handling: 
+---------------------------------
+
+It is possible to reuse the services "org.openoffice.vba.EventListener" &  "org.openoffice.vba.VBAToOOEventDesc" the patch-file "basic-source-classes-eventatt-cxx.diff" contains code to enable that. It works slightly differently than code
+for forms-controls. Dialogs use an XEventSupplier instead of an XEventAttacherManager ( an XEventSupplier for a control can be obtained from the 'getEventSupplier()' method of the "org.openoffice.vba.VBAToOOEventDesc" service. Assumptions are that the VBA-like function names and params are the same as those for the equivelant FormControls ( if thats not the case then eventhelper.cxx will have to handle that, the uno-interfaces won't need to change ).
+ 
+---------------------------------------------
+
+Some notes on VBA to SB (StarBasic) [from VbaStartBasicXref.pdf]
+
+Though syntactically equivalent, both VBA and SB are not compatible
+becuase of the differences in the Object Model followed.
+SB has an object-oriented model where are excel macros are object-like
+model and not fully object-oriented. 
+
+a typical mapping eg.
+
+In Excel, to determine the number of rows in the range, one can access the range
+property using Range("MyTable").Rows.Count, Range("MyTable") is a named Range.
+
+To determine the same - the number of rows in a range of cells, SB call would 
+look like
+ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("MyTable").getRows.getCount()
+
+Specific object types like Worksheet, Workbook, Range etc. in addition to Object 
+in Excel where only generic Object type available in SB.
+set statement is enforced in VBA and SB supports that.
+
+
+A trace of the sb macro in execution [executed from ide with a breakpoint]:
+
+#4  0x417057f4 in poll () from /lib/tls/libc.so.6
+#5  0x422ec558 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+#6  0x422ec6c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
+#7  0x41eb0b5e in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#8  0x423bc4ef in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#9  0x40174eb4 in Application::Yield () from ./libvcl680li.so
+#10 0x4a10a263 in ModulWindow::BasicBreakHdl () from ./libbasctl680li.so
+#11 0x4a1045ca in BasicIDEShell::CallBasicBreakHdl () from ./libbasctl680li.so
+#12 0x4a130f40 in BasicIDEData::GlobalBasicBreakHdl () from ./libbasctl680li.so
+#13 0x4a130de8 in BasicIDEData::LinkStubGlobalBasicBreakHdl () from ./libbasctl680li.so
+#14 0x450ebd11 in StarBASIC::BreakPoint () from ./libsb680li.so
+#15 0x45131322 in SbiRuntime::StepSTMNT () from ./libsb680li.so
+#16 0x45128bca in SbiRuntime::Step () from ./libsb680li.so
+#17 0x450f10ba in SbModule::Run () from ./libsb680li.so
+#18 0x450f06cf in SbModule::Notify () from ./libsb680li.so
+#19 0x4050b313 in SfxBroadcaster::Broadcast () from ./libsvl680li.so
+#20 0x450f3d94 in SbMethod::Broadcast () from ./libsb680li.so
+#21 0x40900b70 in SbxValue::Get () from ./libsvt680li.so
+#22 0x4a121970 in BasicIDE::RunMethod () from ./libbasctl680li.so
+#23 0x4a108833 in ModulWindow::BasicExecute () from ./libbasctl680li.so
+#24 0x4a1088f2 in ModulWindow::BasicRun () from ./libbasctl680li.so
+#25 0x4a10aed5 in ModulWindow::ExecuteCommand () from ./libbasctl680li.so
+#26 0x4a105f72 in BasicIDEShell::ExecuteBasic () from ./libbasctl680li.so
+#27 0x4a0fc122 in SfxStubBasicIDEShellExecuteBasic () from ./libbasctl680li.so
+#28 0x44e98f93 in SfxDispatcher::Call_Impl () from ./libsfx680li.so
+#29 0x44e9b7f9 in SfxDispatcher::PostMsgHandler () from ./libsfx680li.so
+#30 0x44e9b70e in SfxDispatcher::LinkStubPostMsgHandler () from ./libsfx680li.so
+#31 0x44ec103e in SfxHintPoster::Event () from ./libsfx680li.so
+#32 0x44ec0fe9 in SfxHintPoster::LinkStubDoEvent_Impl () from ./libsfx680li.so
+#33 0x40352bd8 in ImplHandleUserEvent () from ./libvcl680li.so
+#34 0x403536f9 in ImplWindowFrameProc () from ./libvcl680li.so
+#35 0x423b7ff9 in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
+#36 0x41eb09ce in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
+#37 0x422e8221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#38 0x422e9e87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#39 0x422ec5c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+#40 0x422ec6c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
+#41 0x41eb0b5e in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#42 0x423bc4ef in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#43 0x40174eb4 in Application::Yield () from ./libvcl680li.so
+#44 0x40174dcb in Application::Execute () from ./libvcl680li.so
+#45 0x0806f505 in desktop::Desktop::Main ()
+#46 0x4017a973 in SVMain () from ./libvcl680li.so
+#47 0x08068cdd in sal_main ()
+#48 0x08068c8c in main ()
+
+
+basctl\source\basicide\baside2.cxx
+	+ handles the ide operations - compile-run-etc
+	+ModulWindow::BasicExecute()
+
+basctl\source\basicide\basobj3.cxx
+	+BasicIDE::CreateMacro
+	+BasicIDE::RunMethod
+		and several other methods
+
+basic\source\classes\sbxmod.cxx
+	+SbModule is handled here
+	+SbModule::Run
+		+Implements a BASIC subroutine
+	+SimpleTokenizer_Impl::setKeyWords
+	+class SbMethod
+
+sfx2/source/appl/appuno.cxx
+	+loadMacro
+
+basic/source/classes/sbunoobj.cxx
+	+SbUnoObject
+	+SbUnoFactory::CreateObject
+
+sfx2/source/appl/appbas.cxx
+	+SfxApplication::EnterBasicCall
+	+GetBasic
+
+basmgr.cxx
+	+GetLib, StoreLib etc.
+
+sfx2/source/notify/eventsupplier.cxx
+	+SfxEvents_Impl::BlowUpMacro
+
+basic/source/classes/eventatt.cxx
+	+getModelFromBasic
+
+
+-------------------
+#5  0x4514d91d in SbUnoObject (this=0x48d81800, aName=@0xbfffa1a0,
+    aUnoObj_=@0xbfffa210)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/class es/sbunoobj.cxx:2071
+#6  0x451518fe in GetSbUnoObject (aName=@0xbfffa1a0, aUnoObj_=@0xbfffa210)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/class es/sbunoobj.cxx:2654
+#7  0x44d69020 in SfxApplication::GetBasicManager (this=0x449b3870)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/sfx2/source/appl/a ppbas.cxx:648
+#8  0x44d69db5 in SfxApplication::GetBasic (this=0x449b3870)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/sfx2/source/appl/a ppbas.cxx:731
+#9  0x44d69e24 in SfxApplication::EnterBasicCall (this=0x449b3870)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/sfx2/source/appl/a ppbas.cxx:753
+#10 0x4820b742 in SvxImportMSVBasic::ImportCode_Impl () from ./libsvx680li.so
+#11 0x4820a5a4 in SvxImportMSVBasic::Import () from ./libsvx680li.so
+#12 0x4737bf74 in ImportExcel8::ReadBasic () from ./libsc680li.so
+#13 0x47391a5b in ImportExcel8::Read () from ./libsc680li.so
+#14 0x473704d7 in ScImportExcel () from ./libsc680li.so
+#15 0x46ed3aa9 in ScDocShell::ConvertFrom () from ./libsc680li.so
+#16 0x44e0ce46 in SfxObjectShell::DoLoad () at _hash_map.h:181
+#17 0x44e56bda in SfxBaseModel::load () at _hashtable.h:151
+#18 0x44e882f4 in SfxFrameLoader_Impl::load () at window.hxx:790
+#19 0x453ead51 in framework::LoadEnv::impl_loadContent () from ./libfwk680li.so
+#20 0x453e77ef in framework::LoadEnv::startLoading () from ./libfwk680li.so
+#21 0x452c9c43 in framework::LoadDispatcher::dispatchWithNotification ()
+   from ./libfwk680li.so
+#22 0x452c9f74 in framework::LoadDispatcher::dispatch () from ./libfwk680li.so
+#23 0x4547cd33 in framework::RecentFilesMenuController::ExecuteHdl_Impl ()
+   from ./libfwk680li.so
+#24 0x40352bd8 in ImplHandleUserEvent () from ./libvcl680li.so
+#25 0x403536f9 in ImplWindowFrameProc () from ./libvcl680li.so
+#26 0x423b7ff9 in SalDisplay::DispatchInternalEvent ()
+   from ./libvclplug_gen680li.so
+#27 0x41eb09ce in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
+#28 0x422e8221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#29 0x422e9e87 in g_main_context_dispatch ()
+   from /opt/gnome/lib/libglib-2.0.so.0
+#30 0x422ec5c7 in g_main_context_iterate ()
+   from /opt/gnome/lib/libglib-2.0.so.0
+#31 0x422ec6c3 in g_main_context_iteration ()
+   from /opt/gnome/lib/libglib-2.0.so.0
+#32 0x41eb0b5e in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#33 0x423bc4ef in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#34 0x40174eb4 in Application::Yield () from ./libvcl680li.so
+#35 0x40174dcb in Application::Execute () from ./libvcl680li.so
+#36 0x0806f505 in desktop::Desktop::Main ()
+#37 0x4017a973 in SVMain () from ./libvcl680li.so
+#38 0x08068cdd in sal_main ()
+#39 0x08068c8c in main ()
+
+
+---------------
+sbxmod.cxx
+	+SbModule::Find()
+macrconf.cxx
+	+SfxMacroConfig::Call
+	+SfxQueryMacro
+		gets the method
+	+SfxQueryMacro_Impl
+
+---------------
+On executing a macro like this:
+
+Sub Main
+	Dim URLStr as String
+	GlobalScope.BasicLibraries.LoadLibrary("Tools")
+	URLStr = ThisComponent.getURL()
+	msgbox FileNameOutOfPath(URLStr)
+End Sub
+
+sbunoobj.cxx/SbUnoObject::Find has the aUName values
+
+as loadLibrary and getURL !?
+
+---------------
+trace when stopped in SbUnoObject::Find
+
+#5  0x451673f3 in SbUnoObject::Find (this=0x489aa358, rName=@0xbfffda90, t=SbxCLASS_DONTCARE)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/classes/sbunoobj.cxx:2370
+#6  0x4519fe86 in SbiRuntime::FindElement (this=0x5704caa8, pObj=0x489aa358, nOp1=32783, nOp2=12, nNotFound=87570,
+    bLocal=0 '\0') at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/runtime/step2.cxx:106
+#7  0x451a1a2e in SbiRuntime::StepELEM (this=0x5704caa8, nOp1=32783, nOp2=12)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/runtime/step2.cxx:592
+#8  0x45198e62 in SbiRuntime::Step (this=0x5704caa8)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/runtime/runtime.cxx:694
+#9  0x45154041 in SbModule::Run (this=0x48976df8, pMeth=0x57048a68)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/classes/sbxmod.cxx:777
+#10 0x451534b3 in SbModule::Notify (this=0x48976df8, rBC=@0x48971000, rHint=@0xbfffdd10)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/classes/sbxmod.cxx:524
+#11 0x4050b313 in SfxBroadcaster::Broadcast () from ./libsvl680li.so
+#12 0x45157852 in SbMethod::Broadcast (this=0x4895eed0, nHintId=65536)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/classes/sbxmod.cxx:1984
+#13 0x40900b70 in SbxValue::Get () from ./libsvt680li.so
+#14 0x4515762d in SbMethod::Call (this=0x4895eed0, pRet=0x570498a0)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/basic/source/classes/sbxmod.cxx:1938
+#15 0x56da6455 in basprov::BasicScriptImpl::invoke () from ./basprov680li.uno.so
+#16 0x44e04a3b in SfxObjectShell::CallXScript (this=0x484b1120, rScriptURL=@0xbfffe2e0, aParams=@0xbfffe2d0,
+    aRet=@0xbfffe310, aOutParamIndex=@0xbfffe2f0, aOutParam=@0xbfffe320)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/sfx2/source/doc/objmisc.cxx:1439
+#17 0x44d5fdb2 in SfxApplication::OfaExec_Impl (this=0x44667880, rReq=@0xbfffe5b0)
+    at /home/mnicel/ooo-build-head/ooo-build/build/src680-m90/sfx2/source/appl/appserv.cxx:1034
+#18 0x44d53478 in SfxStubSfxApplicationOfaExec_Impl () at resid.hxx:116
+#19 0x44ec7013 in SfxDispatcher::Call_Impl () at solar.h:293
+#20 0x44ec8194 in SfxDispatcher::_Execute () at solar.h:293
+#21 0x44ed7300 in SfxBindings::Execute_Impl () at solar.h:293
+#22 0x44ec045d in SfxDispatchController_Impl::dispatch () at solar.h:293
+#23 0x44ebe6e9 in SfxOfficeDispatch::dispatch () at solar.h:293
+#24 0x453b67aa in framework::MenuBarManager::Select () from ./libfwk680li.so
+#25 0x453b5f00 in framework::MenuBarManager::LinkStubSelect () from ./libfwk680li.so
+#26 0x402f53b1 in Menu::Select () from ./libvcl680li.so
+#27 0x402f9384 in Menu::ImplCallSelect () from ./libvcl680li.so
+#28 0x402f9366 in Menu::LinkStubImplCallSelect () from ./libvcl680li.so
+#29 0x40352bd8 in ImplHandleUserEvent () from ./libvcl680li.so
+#30 0x403536f9 in ImplWindowFrameProc () from ./libvcl680li.so
+#31 0x423b7ff9 in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
+#32 0x41eb09ce in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
+#33 0x422e8221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#34 0x422e9e87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#35 0x422ec5c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+#36 0x422ec6c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
+#37 0x41eb0b5e in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#38 0x423bc4ef in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#39 0x40174eb4 in Application::Yield () from ./libvcl680li.so
+#40 0x40174dcb in Application::Execute () from ./libvcl680li.so
+#41 0x0806f505 in desktop::Desktop::Main ()
+#42 0x4017a973 in SVMain () from ./libvcl680li.so
+#43 0x08068cdd in sal_main ()
+#44 0x08068c8c in main ()
+-------------------------------------------------
+
+Defining the interface and generating the code.
+
+XWorkBook.idl
+	-interface for WorkBook
+
+	-under offapi/org/openoffice/vba/
+
+generating source code. (manual invokation; yet to integrate with make)
+
+idlc -C -I <path to solver/680/unxlngi4.pro/idl> XWorkBook.idl
+
+>> that generates XWorkBook.urd
+
+then, creating registry database,
+
+regmerge vba.rdb /UCR XWorkBook.urd
+
+>> should /UCR be used or something else? /UCR is the default key for type descriptions
+
+cppumaker -BUCR -Torg.openoffice.vba.XWorkBook vba.rdb
+
+>>generates XWorkBook.hdl and XWorkBook.hpp under org/openoffice/vba/ -- with the make integration this should go into unxlngpro4/ ??
+
+[gave an error saying: cppumaker ERROR: cannot dump Type 'com/sun/star/uno/RuntimeException' ??]
+
+--------------------------
+
+Generating with makefiles:
+
+- Have the .idl files under offapi/org/openoffice/vba
+
+- create, offapi/org/openoffice/vba/makefile.mk
+
+	- specify the idl files in there, and define PACKAGE as org/openoffice/vba
+
+- update offapi/prj/d.lst to deliver the .idl files
+
+- update offapi/util/makefile.mk
+
+	-to create vba.db, the unoidl db of type UCR
+
+- update offuh/prj/d.lst
+
+	-to deliver the .hdl and .hpp created out of the .rdb from offapi
+
+----------------
+
+basic/ notes:
+
+    Incoming byte stream into ->
+	basic/source/comp/token.cxx
+    split into tokens; eg. 'EQ' -> ( cf. token.hxx (SbiToken) )
+        basic/source/comp/parser.cxx
+    compiled into expressions, eg. SbiParser::Symbol,
+    '_PUT', or '_SET' -> and whacked on a byte-stack
+	basic/source/runtime/runtime.cxx
+    executed as a byte-code: ->
+	basic/source/runtime/step0.cxx
+    eg. StepPUT() / StepSET()
+
+    parser.cxx:
+	+ SbiParser
+	    + inherits from Tokenizer
+		+ simple peek/next stream of tokens.
+	    + stores macro-level-details:
+		+ SbiParseStack *pStack - block stack
+		+ SbiProcDef *pProc - proceedure
+		+ SbiExprNode *pWithVar - 'with' var.
+		+ ...
+		+ SbiCodeGen aGen - byte code generator.
+		+ SbiSymPool *pPool - pool of string/symbols
+	    + [ is passed everywhere ]
+	+ SbiToken
+	    - an integer representing an op or a string ... (?)
+	    + 'aSym' - the string symbol ...
+	+ to read & compile an Expression we do:
+	    SbiExpresion aFoo( this, SbFOO );
+	    aFoo.Gen(); <-- this does all the work.
+		+ calls 'Gen' on the SbiExprNode:: pExpr (exprgen.cxx)
+	
+
+
+
+---- UNO Interfaces used in basic/ ----
+
+These interfaces look particularly interesting docs from:
+com/sun/star/bridge/oleautomation/PropertyPutArgument.idl:
+
+/** contains a value that is used as argument in a &quot;property put&quot
+    operation on a Automation object.
+    <p>
+    If a Automation object is converted into a UNO object by a scripting
+    bridge, such as
+    <type scope="com::sun::star::bridge::oleautomation">BridgeSupplier</type>,
+    then it is accessed through the 
+    <type scope="com::sun::star::script">XInvocation</type> interface.
+    The methods
+    <member scope="com::sun::star::script">XInvocation::setValue</member>
+    and
+    <member scope="com::sun::star::script">XInvocation::getValue</member>
+    are used to access properties which do not have additional
+    arguments. To access a property with additional arguments, the
+    method
+    <member scope="com::sun::star::script">XInvocation::invoke</member>
+    has to be used. The method implementation must decide, if the
+    property is to be written or read so it can perform the proper
+    operation on the Automation object. To make this decision, the
+    caller has to provide the information if the current call is
+    intended to be a write or read operation. This is done by
+    providing either instances of <type>PropertyPutArgument</type> or
+    <type>PropertyGetArgument</type> as arguments to
+    <member scope="com::sun::star::script">XInvocation::Invoke</member>. 
+
+    @since OOo 1.1.2
+*/
+com/sun/star/script/XInvocation.idl
+
+ bridge::oleautomation::NamedArgument
+ bridge::oleautomation::Date
+ bridge::oleautomation::Decimal
+ bridge::oleautomation::Currency
+ bridge::XBridge 
+ bridge::XBridgeFactory
+ script::XAllListener 
+ i18n::XCalendar 
+ XComponent 
+ uno::XComponentContext 
+ XContainer
+ XContainerListener 
+ XContentProvider 
+ XContentProviderManager 
+ XControl
+ XControlContainer 
+ XControlModel 
+ container::XEnumeration 
+ container::XEnumerationAccess 
+ XEventAttacher 
+ XEventListener 
+ container::XHierarchicalNameAccess 
+
+ XImplementationRegistration 
+ XIndexAccess 
+ XInputStream 
+ XInputStreamProvider 
+ XIntrospection 
+ XIntrospectionAccess 
+ XInvocation 
+ XInvocationAdapterFactory 
+ XLibraryContainer 
+ XMaterialHolder 
+ XMultiComponentFactory
+ lang::XMultiServiceFactory 
+ XNameAccess 
+ XNameContainer 
+ XOutputStream 
+ XSeekable 
+ XServiceInfo 
+ XSimpleFileAccess 
+ XSimpleRegistry 
+ XTypeConverter 
+ XTypeDescription 
+ XTypeProvider 
+ XVetoableChangeListener 
+ XWindow 
+
+Interesting:
+ XExactName - used for case insensitivity ...
+
+Not likely interfaces:
+ reflection::XIdlArray
+ reflection::XIdlClass 
+ reflection::XIdlField
+ reflection::XIdlMethod 
+ reflection::XIdlReflection 
+ script::XScriptEventsAttacher 
+ script::XScriptEventsSupplier 
+ script::XScriptListener 
+ script::provider::XScriptProvider 
+ script::provider::XScriptProviderFactory 
+ script::provider::XScriptProviderSupplier 
+ script::provider::XScript
+ beans::XPropertyAccess 
+ beans::XPropertyChangeListener 
+ beans::XPropertySet
+ beans::XPropertySetInfo 
+ XStarBasicAccess 
+ XStarBasicDialogInfo 
+ XStarBasicLibraryInfo 
+ XStarBasicModuleInfo 
+
+Unlikely looking interfaces:
+ frame::XModel 
+ XStream 
+ XTextOutputStream 
+ XToolkit
+ io::XActiveDataSource 
+
+
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/binfilters.txt
+++ openoffice.org-2.4.1/ooo-build/doc/binfilters.txt
@@ -0,0 +1,86 @@
+binfilters are input/output filters for the old binary file formats that were
+used by StarOffice 5.x and older versions for saving documents. They have been
+made optional since OOo-2.0. It is a very huge, old, and horrible piece of code.
+The filters are diabled in ooo-build by default because:
+
+	* these old formats are not used widely
+	* it makes the build much faster
+	* it makes the maintenace much easier
+
+
+How to build OOo with the binfilters?
+
+1. Download the binfilter source tarball from http://go-ooo.org. They are next
+   to the core source tarball, for example:
+
+	http://go-ooo.org/packages/SRC680/src680-m100-binfilter.tar.bz2
+	http://go-ooo.org/packages/SRC680/src680-m100-core.tar.bz2
+
+   , and put the source tarball into the ooo-build/src directory
+
+2. Enable the binfilters:
+
+	./configure --enable-binfilter
+
+   Note that there is used --disable-binfilter in
+   ooo-build/distro-configs/Common.conf.in, so you must use this even if
+   the binfilters are enabled by default in the OOo-native configure script
+
+
+How to create an optional package with binfilters?
+
+It is not an easy task and ooo-build has not support it yet.
+
+1. The following files belong to the optional package (checked with m104):
+
+program/legacy_binfilters.rdb
+program/libbf_frm680li.so
+program/libbf_lng680li.so
+program/libbf_migratefilter680li.so
+program/libbf_ofa680li.so
+program/libbf_sc680li.so
+program/libbf_sd680li.so
+program/libbf_sch680li.so
+program/libbf_sm680li.so
+program/libbf_svx680li.so
+program/libbf_sw680li.so
+program/libbf_wrapper680li.so
+program/libbf_xo680li.so
+program/libbindet680li.so
+program/liblegacy_binfilters680li.so
+program/resource/bf_frm680en-US.res
+program/resource/bf_ofa680en-US.res
+program/resource/bf_sc680en-US.res
+program/resource/bf_sd680en-US.res
+program/resource/bf_sfx680en-US.res
+program/resource/bf_sch680en-US.res
+program/resource/bf_sm680en-US.res
+program/resource/bf_svx680en-US.res
+program/resource/bf_sw680en-US.res
+
+2. The filters has to be be registered/unregistered dependind on if they are
+installed or not. It is really important because OOo crashes if the filters
+are registered, the related plugins and resources are not installed, and
+the user tries to open an old StarOffice document. The registration is done
+in OOo registry.
+
+For example, the following snippet has to be added into
+registry/modules/org/openoffice/TypeDetection/Filter/fcfg_writer_filters.xcu
+to enable the StarWriter 1.0 input/output filter:
+
+       <node oor:name="StarWriter 1.0" oor:op="replace" oor:finalized="true" oor:mandatory="true"> 
+               <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop> 
+               <prop oor:name="UIComponent"/> 
+               <prop oor:name="FilterService"/> 
+               <prop oor:name="UserData"><value>SWG1</value></prop> 
+               <prop oor:name="UIName"> 
+                       <value xml:lang="x-default">StarWriter 1.0</value> 
+               </prop> 
+               <prop oor:name="FileFormatVersion"><value>0</value></prop> 
+               <prop oor:name="Type"><value>writer_StarWriter_10</value></prop> 
+               <prop oor:name="TemplateName"/> 
+               <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop> 
+       </node> 
+
+And it has to be removed if you remove the module and resources related to the
+filter.19;5~
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/splashperform.txt
+++ openoffice.org-2.4.1/ooo-build/doc/splashperform.txt
@@ -0,0 +1,146 @@
+* Splashperform *
+
+** Closed issues
+    + we will have lots of small shell-script wrappers
+	+ will point to the real, absolute path of the binary
+	+ they will set OOO_EXTRA_ARG to be '-writer' etc.
+
+** Open issues
+    + how do we cope with app exit ? [ pipe should die ... ? ]
+
+    + how do we provide status / exit for splash
+	+ g_spawn_async ... - progress fd ?
+	+ fprintf (out_fd, "2%"); etc. ?
+    + stop it from using -splash-pipe as a file name ! ;-)
+	+ elide elsewhere ...
+		
+	
+    + how do we get the install path ?
+	+ hard code at compile time ?
+	+ special elf section ?
+	+ special (large) symbol that can be over-written ?
+	+ symlink ?
+
+    + why use foo when we can use install path
+      as the key & avoid parsing bootstraprc
+      at all ...
+	    + getExecutableFile(aIniName);
+
+    A fast / native startup app ...
+
+    + CWS 'unxsplash'
+
+
+** What does 'ooo-wrapper do ?
+    + grab it's symlink name & fork that component
+	+ [ if no args ]
+	+ eg. oowriter -> -writer ...
+	+ -oofromtemplate => 'slot:5500' ...
+    + .lock file ... [ now obsolete ? ]
+	+ used for dynamic install ...
+    + quickstart junk ...
+    + '--widgets-set gtk'
+	+ [ just sets SAL_USE_VCLPLUGIN ]
+    + '--version" 'built with ooo-build-$OOO_BUILDVERSION'
+	( can be done up-stream )
+    + sets 'SAL_NOEXPANDFPICKER' [ an anachronism ? ]
+    + access writes
+	+ fix ~/.ooo-2.0* privs.
+	+ fix ~/.recently-used privs.
+    + check /proc/version exists [ won't work without a mounted /proc ]
+
+** Rename binary to 'openoffice' ?
+    + pass '-writer' etc. in from the .desktop file ?
+    + so we can foo the baa's ?
+
+** What does soffice do ?
+    + 
+ 
+** Further work
+    + Make the KDE version of the ooqstart
+	+ Or - maybe even better - do it X-only?
+	+ glib dependancy probably inevitable
+
+** From IRC:
+
+[michael_] about this quickstarter,
+[michael_] :-)
+[michael_] so - I guess you may want a KDE version of it at some stage,
+[michael_] let me tell you how it works:
+[michael_] or (of course) perhaps it works well enough - worth testing.
+[michael_] we update the desktop files to be:
+[michael_] 'oowriter':
+[michael_] export EXTRA_ARG=-writer
+[michael_] /usr/lib/ooo/program/ooqstart "*@"
+[michael_] .
+[michael_] then ooqstart does this:
+[michael_] a) try to poke OSL pipe in /tmp
+[michael_]    if it can - send the arguments to the main app immediately
+[michael_]    ie. very fast 2nd start,
+[michael_] b) continues - initialize gtk+
+[michael_] c) if sent args - send 'startup completed' type startup hint thing & exit
+[michael_] d) otherwise render splash, open pipe to application, read '25%' type output
+[michael_] e) fork 'soffice' with args
+[michael_] actually wait - we fork soffice before we init gtk+ even,
+[michael_] then render the progress bar,
+[michael_] then quit when splash is done.
+[michael_] .
+[michael_] so - it has 2 effects: makes the splash come up much more quickly,
+[michael_] 100ms instead of ~1 second ;-)
+[michael_] and also - that the 2nd start is very fast.
+[michael_] .
+[michael_] so - wrt. performance on KDE - I -think- it won't be that bad for 2 reasons:
+[michael_] a) gtk/glib have almost no symbol driven relocations & => fast, also - glib is already around for HAL etc. on a pure-KDE system.
+>kendy< I thought that the same for the second instance - but it probably has to load a larger app, which is the problem, right?
+[michael_] b) most of the slower gtk+ init happens after the soffice fork anyway, so ...
+[michael_] ah - yes,
+[michael_] so - the same thing happens if you use 'soffice.bin -writer' wrt. a 2nd start,
+[michael_] but instead of being ~1 library dependency + almost no work
+[michael_] you initialize UNO, load the services RDBs, page all the libraries into memory with 'pagein' etc. ;-)
+[michael_] it's some serious weight,
+[michael_] this avoids all that,
+[michael_] eg. running 'javaldx' ;-)
+>kendy< I see, OK.
+[michael_] so - it's substantially faster whatever you run for a 2nd start,
+[michael_] and of course, it'll be faster to render the splash too - particularly at cold start regardless,
+[michael_] .
+[michael_] so - I think it's good for KDE & GNOME whatever,
+[michael_] .
+[michael_] of course;
+[michael_] we can create a KDE specific version at some stage;
+[michael_] and switch on that in the shell script,
+[michael_] or do some stuff with dlopen again ;-)
+[michael_] but - it's quite some pain - wrt. forking, progress sockets, argument handling etc. and a pain to maintain 2 things,
+[michael_] up to you of course;
+[michael_] either way - of course - none of it may work at all ;->
+[michael_] that's more than likely, we'll see when pmladek's build finishes,
+>kendy< I do not want to start writing it now - as long as the progress bar is the only visible thing there ;-)
+>kendy< But maybe later
+[michael_] sure,
+>kendy< May I paste this to some doc.txt in ooo-build?
+[michael_] of course IMHO the gtk+ progress bar is way uglier than the soffice.bin one,
+[michael_] kendy of course - there is already a doc/splashperform.txt
+[michael_] append it to that :-)
+>kendy< OK :-)
+ michael_ might fix that,
+[michael_] lets see if the UI people complain ;-)
+>kendy< Well, what about to do it pure X, and the same progressbar as in OOo? ;-)
+[michael_] so, we could do that,
+[michael_] indeed 'pl' had some code to do that,
+[michael_] but - we have this pain of pre-dithering the splash screens at 16bit,
+[michael_] and gtk+ has all this nice code to do that already so ...
+[michael_] also - we'd have to cut/paste the session mgmt stuff too
+[michael_] s/session mgmt/startup-notification/
+>kendy< Lubos Lunak (Seli) did some KDE pure-X splash, maybe I could use parts of it here ;-)
+[michael_] sure, if there is some code why not,
+[michael_] I'd prefer to keep the glib dep - since the pipe stuff is rather interesting without it,
+[michael_] but - there is plenty of room for expansion,
+>kendy< OK :-) I'll have a look in 2 weeks - after all the CWSes for 2.0.2...
+[michael_] sounds good,
+>kendy< Thank you for the explanation of the stuff :-)
+[michael_] no problem,
+[michael_] I'm hoping it'll provide a nice perceptual speedup,
+[michael_] at least - when I run it from the console it 'feels' faster ;-)
+>kendy< :-)
+[michael_] [ as one Gentoo user said to another ;-]
+[michael_] 1/3rd sec vs. 1+sec or so,
--- openoffice.org-2.4.1.orig/ooo-build/doc/extra-templates-and-cliparts-and-fonts.txt
+++ openoffice.org-2.4.1/ooo-build/doc/extra-templates-and-cliparts-and-fonts.txt
@@ -0,0 +1,54 @@
+I merged all extras from OxygenOffice to ooo-build system. Hence OxygenOffice Professional is based
+on ooo-build system from version 2.4. This document describe how to enable such good features and
+what packages will be available after the successful build.
+
+You can easily select the desired extras with configure switches in your distro-config:
+
+--with-extra-gallery -- Adds extra clipart gallery to the current gallery. All draws are vector image,
+	all picture stored in jpeg format. The gallery is very rich because it contains more than 3000
+	elements in various themes. The gallery is under development, so we release new cliparts,
+	pictures constantly. Tha gallery names are localizable. We have several localized titles here
+	(from: src/sdf/<langcode>-gallery.sdf).
+	If you can contribute here, please drop me a line.
+
+	The licenese of files are found here:
+		http://ooop.svn.sourceforge.net/viewvc/ooop/trunk/documents/license/Gallery.ods?view=log
+
+--with-extra-template -- Add several templates in eight category of OpenOffice.org. We have several fully
+	supported labguages, but here there is a room to improvement. The collection is based on collected
+	templates, and self made (and translated) templates.
+	
+	Shortly we will introduce a new category - Labels to support this kind of printables. The ooo-build
+	already has support for it, so we only have to fill with cool label templates.
+
+	You can also contribute here with new templates and translated templates.
+	
+	The licenese of files are found here:
+		http://ooop.svn.sourceforge.net/viewvc/ooop/trunk/documents/license/Templates.ods?view=log	
+
+--with-extra-sample -- Sample documents, documentations (these cabe be called by a script in accessory
+	integrated into Help menu) and adverisements comes here.
+
+--with-extra-font -- Lots of high quality free to use or libre fonts comes from here. Worth to try.
+
+--with-extra-accessory -- This enables an help extension that opens book for OpenOffice.org and a WikiPedia
+	tool (for Writer).
+	Notes: Help extension is requires enabling samples because documentations is located in it.
+
+All configure switches have ./download dependancy, so you have to run it to download the required zip files.
+
+During the creating of packages you will find a new packages:
+
+openoffice.org-extra-fonts_<version> - for extra fonts
+
+openoffice.org-extra-gallery_<version> - for extra gallery
+
+openoffice.org-<lang>-extra-templates_<version> - for extra templates
+
+openoffice.org-<lang>-extra-advertisement_<version> - advertisement comes from samples
+openoffice.org-<lang>-extra-documentations_<version> - documentations comes from samples
+openoffice.org-<lang>-extra-samples_<version> - for extra samples
+
+Have a nice day!
+
+KAMI	 
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/vbapatches.txt
+++ openoffice.org-2.4.1/ooo-build/doc/vbapatches.txt
@@ -0,0 +1,59 @@
+* vba-basic-globals.diff & vba-sc-docuno-hook.diff : not so nice integration of vba globalnamespace. Problems with this patch
+
++ not scalable  [1]
++ introduces a nasty recursive search ( hard to debug, also possibly some lifecycle problems )
+
+[1] well its effectively hardcoded at the moment, also if we ever introduced a word api, or if anybody else wants to add globals we need; 
+   + some generic service level integration that provides information/objects like
+        + default namespace search path for globals added e.g. ( org.openoffice.ba, org.openoffice.vba.Excel ) e.g. for constants
+	+ list of objects ( and associated names ) to be added to namespace
+	+ all of that needs to be hooked in a similar way to ThisComponent ( e.g. inserted into basic when required ), or maybe if the document StarBasic is away of its application ( calc, writer etc. ) it could raise some application specific service to provide the globals.
+
+* vba-build.diff: patches sc/offapi/offuh/unoil to add new... stuff
+
+* vba-basic-collection.diff: allows Object( Index ) syntax to be used for objects that implement XCollection. Patch introduces interface org/openoffice/vba/XCollection into basic, really we should do this better, this I believe could be achieved by supporting a default method ( we already do something like this for default property ) so this patch would be more generic ( where the collection syntax is just a specific case ) 
+
+
+* svx-source-form-formControlVBAHandler-hxx.diff svx-source-form-formControlVBAHandler-cxx.diff svx-source-inc-fmundo-hxx.diff svx-source-form-makefile.diff svx-source-form-fmctrler-cxx.diff svx-source-form-fmundo-cxx.diff extensions-source-propctrlr-makefile-mk.diff extensions-source-propctrlr-formcontroller-cxx.diff vbaevents-services-build.diff vbaevents-services-sources.diff:
+All of the patch files above provide the vba like interaction handling for controls ( not form controls ) eg for a button control "button1" if a button1_click method exists in basic then it will get called when you click the button, same for mouseover etc. 
+
+* basic-source-classes-eventatt-cxx.diff: similar to the above patch execpt for controls in dialogs ( UserForms ) patch is more or less untested ( currently disabled )
+
+* vba-basic-multidim-uno-arraywrap.diff: allows an uno array of arrays to be mapped to a multi-dimension basic array ( with 0 or 1 based indices ). One (unavoidable) problem is this introduces org.openoffice.vba.XArrayWrapper type ( if acceptable of course we could make that into css:script:XArrayWrapper ).
+
+
+* vba-optionbasesupport.diff: when you define Option BASE 1 its only honoured when creating a new array ( afaik ) this patch makes sure that arrays behave as expected e.g. honour the OptionBase setting ( ala ms ) 
+
+* vba-runtime-vba-enabled.diff: sets up new static method SbiRuntime::isVBAEnabled() and also new Option 'VBASupport'. The result of this method is determined TRUE if 'Option VBASupport 1' or FALSE if 'Option VBASupport 0' is defined at the top of the currently executing module.
+
+* vba-dim-and-constants-patch.diff: patch provides ability to do
+
+1)
+'Dim something as Range' 
+
+I Would imagine there will be upstream issues with this, because 
+    + We have special processing ( aka hardcoding ) to allow the full namespace to be dropped "org.openoffice.vba"
+    + We have special handling ( aka hardcoding ) to allow Range be defined instead of XRange ( which is the real type )
+
+IMHO from a interop point of view we should be able to do "dim something as Object" the patch does a runtime check to see if the object implements the 'Object' interface, also default namespace(s) should be handled, see the very first comment on the first patch in this doc. So, to me it would seem the only nasty hacky bit is the Range=XRange type thing, but if we go a step further and allow a 
+'Dim object as service' then I think then we could get around that. But how acceptible upstream is to this type of concept is yet to be determined.
+
+2)
+Allow constants in the org.openoffice.vba namespace to be accessed directly from basic.
+
+* vba-evaluate-support.diff: allows '[A1]' syntax to be captured, trys to call a global Evaluate method with whats contained in between the [], again this is specific for us or vba, so..... that should not be a problem if done conditionally ( which it is )
+
+* vba-support-stoc-typeprovider-xexactname.diff: doesn't modify basic but it provides XExactName on the typeprovider this allows case-insensitive matching of constants e.g. in vba-dim-and-constants-patch.diff above
+
+* vba-basic-default.diff: provides detection and use of a default property for lhs and/or rhs arguments
+example: allows handling of Range("A1") = 23
+
+The set up and retrieval of the default property is fine, however the runtime patch bits seem to me ( who wrote them ) very brittle, most probably error prone & horrible. It would be great to get some advice on how to do this properly ( it would also be a nice feature ) 
+
+
+
+* vba_configure_set_soenv_in.diff:
+compile time switch
+
+* basic-millisecTimer.diff needs to be removed, its bogus ( I thought I removed this ), that functionality already exists (can't recall the name)
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/cygwin.txt
+++ openoffice.org-2.4.1/ooo-build/doc/cygwin.txt
@@ -0,0 +1,58 @@
+	+ get libdb building
+
+
+
+	Un-symlink 'awk' & 'gunzip'
+
+	+ Had to install 'sdkupdate' from MS' site ...
+	    + MDAC, Internet Development, & core ...
+	    + need to back this up somehow [!]
+
+	+ Run 'command prompt'
+	     "c:\Program Files\Microsoft Visual Studio .NET 2003\vc7\bin\vcvars32.bat"
+	     cd /cygwin/
+	     cygwin.bat
+
+	    + _do not_ run:
+		"c:\Program Files\Microsoft SDK\setenv /XP64"
+		+ this sets up the path to something nastily broken, a
+		  duplicate / duff compiler in the sdk
+		+ it also, painfully clobbers the environment.
+
+	    + Control Panel->System->Advanced->Environmental Variables
+
+	    + _Need_ Vc7/atlmfc/include for 'winres.h' in INCLUDES.
+		+ really just need to propagate INCLUDES onwards IMHO.
+
+	    + 
+
+	+ i18npool links to icu - 'icuin.lib' eg.
+
+	+ wdevenv.exe - broken for VS.Net 2003 etc.
+	    + Have to fetch it from http://tools.openoffice.org/source/browse/tools/contrib/addin/bin_net2003/
+
+	+ ooo-build configure:
+		+ ./configure --with-win32
+
+	+ re-configure in config_office:
+	    ./configure --disable-java --with-use-shell=tcsh
+			--with-cl-home=/cygdrive/c/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7
+
++ libart ?
+	  cygwin's 'dlltool' should do the business though:
+		   http://sources.redhat.com/cygwin/cygwin-ug-net/dll.html
+
+	  Mingw: (no run-time cygwin requirement)
+	    http://mingw.org/
+
+ICU work:
+	pfoo.h - 'nmake' string.
+	#undef WIN32 in pkgfoo
+	bin all magic makefoo commands in mh-cygwin
+	The generated data/out/build/icufoo_dll.mak
+	    + needs $(OUTOPT)$@ instead of -o $@
+	'pkgdata' & foo need to use '.obj' instead ...
+
+	+ We should try building a HEAD icu snapshot - and
+	  back-porting the behavioral changes ...
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/checkable.txt
+++ openoffice.org-2.4.1/ooo-build/doc/checkable.txt
@@ -0,0 +1,237 @@
+notes on annotating items as to whether they are 'checkable' ie. radio
+or check buttons:
+
+
+** Wow - it turns out that the .sdi files are not long for this world:
+
+
+From: 	Carsten Driesner <Carsten.Driesner@Sun.COM>
+To: 	michael.meeks@novell.com
+Subject: 	Re: cut/paste action ...
+Date: 	Wed, 23 Mar 2005 11:23:38 +0100  (10:23 GMT)
+Mailer: 	Mozilla Thunderbird 1.0.2 (Windows/20050317)
+
+michael meeks wrote:
+
+>       Sure - I was slightly amazed at how the labels are fetched [ I assume
+>from the slot information in sfx2 ultimately - not unwound that yet ],
+>via some UNO service & a property set etc. Took a little while to get
+>that.
+
+The labels are not fetched from the sfx2 slot information anymore. We 
+changed that as we want to get rid of many old sfx implementations. The 
+slot mechanism itself won't be changed in the near future, but other 
+tasks like user interface elements, configuration of ui elements, 
+application window layout are now done in the framework library.
+Some parts of the slot definitions are not used in OOo 2.0. All labels 
+are now retrieved from new configuration files in 
+officecfg/registry/data/org/openoffice/Office/UI/[module]Commands.xcu. 
+They use the uno command name as a key for the labels and other 
+properties. Just look into the Commands.xcs file for more info. We 
+removed all the different resource files for toolbars/menus/statusbar 
+which defined the labels locally. In the past it was a total mess to 
+consolidate all strings, so we decided to go this way. Every 
+toolbar/menu and statusbar is defined by separate XML files located in 
+the module projects, see [module-project]/uiconfig/module/<ui element 
+type>/.
+You can find more information about the new user interface 
+implementation here:
+http://specs.openoffice.org/ui_in_general/api/ProgrammaticControlOfMenuAndToolbarItems.sxw
+It's a little bit outdated, but I am currently working on the new 
+chapters for the Developer's Guide.
+
+
+Reference< XNameAccess > xNameAccess( getServiceFactory()->createInstance( SERVICENAME_UICOMMANDDESCRIPTION ), UNO_QUERY );
+
+* It seems uicommanddescription.cxx gets the description:
+
+goes via:
+    m_xGenericUICommands = new ConfigurationAccess_UICommand( aGenericUICommand, xEmpty, xServiceManager );
+
+    nProperties - 
+
+const sal_Int32   COMMAND_PROPERTY_IMAGE                = 1;
+const sal_Int32   COMMAND_PROPERTY_ROTATE               = 2;
+const sal_Int32   COMMAND_PROPERTY_MIRROR               = 4;
+
+beef up the uicommanddescription ...
+
+
+
+
+
+
+---------------- old stuff ----------------
+
+
+
+        Hmm - sounds like an unholy mess to me. At some stage we need to be
+able to denote that a given item is 'checkable' ie. by the time we get
+the information to:
+
+        vcl/source/window/menu.cxx:
+
++                                       if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) ||
++                     (!(pData->nBits & (MIB_RADIOCHECK | MIB_CHECKABLE
+| MIB_AUTOCHECK)) && !pData->bChecked))
+
+        we have to have that data & have it reliably.
+
+        I guess we need to get that information associated with the action
+itself rather than the instance in the view.
+
+        Thus it will need to go in the .sdi file I think;
+
+        eg. svx/sdi/svx.sdi /SID_GRID_VISIBLE/
+	    + has 'Toggle = TRUE'
+
+http://go-ooo.org/lxr/search?filestring=&string=HasCoreId
+
+        should give some pointers as to how/where to add that field so we can
+start annotating those items & propagating that state to the
+instantitated MenuItems as/when.
+
+	Unfortunately eg. sw/sdi/swriter.sdi /FN_VIEW_FIELDNAME/
+	    + has 'Toggle = FALSE'
+
+Chase down what 'Toggle' means.
+
+framework/idl/inc/globals.hxx, line 93
+HASH_INLINE(HasCoreId) framework/idl/inc/globals.hxx, line 204
+SvBOOL aHasCoreId; framework/idl/inc/slot.hxx, line 76
+BOOL GetHasCoreId() const; framework/idl/inc/slot.hxx, line 228
+if( nMask & 0x0004 ) rStm >> aHasCoreId; framework/idl/source/objects/slot.cxx, line 146
+if( aHasCoreId.IsSet() ) nMask |= 0x0004; framework/idl/source/objects/slot.cxx, line 235
+if( nMask & 0x0004 ) rStm << aHasCoreId; framework/idl/source/objects/slot.cxx, line 257
+BOOL SvMetaSlot::GetHasCoreId() const framework/idl/source/objects/slot.cxx, line 409
+if( aHasCoreId.IsSet() || !GetRef() ) return aHasCoreId; framework/idl/source/objects/slot.cxx, line 411
+return ((SvMetaSlot *)GetRef())->GetHasCoreId(); framework/idl/source/objects/slot.cxx, line 412
+bOk |= aHasCoreId.ReadSvIdl( SvHash_HasCoreId(), rInStm ); framework/idl/source/objects/slot.cxx, line 648
+if( aHasCoreId ) framework/idl/source/objects/slot.cxx, line 792
+aHasCoreId.WriteSvIdl( SvHash_HasCoreId(), rOutStm ); framework/idl/source/objects/slot.cxx, line 794
+if( GetHasCoreId() ) framework/idl/source/objects/slot.cxx, line 1450
+rOutStm << MakeSlotName( SvHash_HasCoreId() ).GetBuffer() << '|'; framework/idl/source/objects/slot.cxx, line 1451
+if ( GetHasCoreId() != (BOOL) pSlot->GetHasCoreId() ) framework/idl/source/objects/slot.cxx, line 1860
+aStr += " HasCoreId\n"; framework/idl/source/objects/slot.cxx, line 1861
+WriteBool( GetHasCoreId(), rStrm ); framework/idl/source/objects/slot.cxx, line 1985
+"\t\tHasCoreId", framework/idl/source/prj/command.cxx, line 137
+, MM_HasCoreId( INS( "HasCoreId" ) ) framework/idl/source/prj/globals.cxx, line 165
+#define SFX_SLOT_HASCOREID 0x0040L // Slot-ID/Which-ID Mappting durchf"uhren framework/sfx2/inc/msg.hxx, line 79
+
+sfx2/inc/msg.hxx has:
+#define SFX_SLOT_TOGGLE	   0x0004L // invertiert bei Execute alten Wert
+				   // "inverted with execute old value"
+
+sfx2/source/control/bindings.cxx /SFX_SLOT_TOGGLE/   - the only use.
+
+
+the .sdi file is an 'IDL' file (apparently), hence
+idl/* compiles it to a binary file.
+
+Can we tell something else about a slot ? - a boolean payload ? - checkable ?
+
+sfx2's menu code /SetMenuFlags/
+
+./source/appl/newhelp.cxx:2618:                         aMenu.SetMenuFlags( aMenu.GetMenuFlags() | MENU_FLAG_HIDEDISABLEDENTRIES );
+./source/menu/virtmenu.cxx:1024:                pMenu->SetMenuFlags( nFlag );
+./source/menu/mnumgr.cxx:133:           pMenu->SetMenuFlags( pMenu->GetMenuFlags() | MENU_FLAG_HIDEDISABLEDENTRIES );
+./source/view/ipenv.cxx:312:                    pMenuBar->SetMenuFlags( pMenuBar->GetMenuFlags() | MENU_FLAG_HIDEDISABLEDENTRIES );
+./source/view/contenv.cxx:191:                  pMenuBar->SetMenuFlags( pMenuBar->GetMenuFlags() | MENU_FLAG_HIDEDISABLEDENTRIES );
+
+It doesn't look like there is a nice piece of code to generate / insert a menu item
+from an SfxPool information that we can clobber in 1 place.
+
+The SfxSlot defined in sfx2/inc/msg.hxx
+    + nFlags member .. [ GetMode ]
+
+sfx2: /GetMode/
+./source/appl/appuno.cxx:1951:            if ( pSfxSlot->GetMode() & nMode )
+./source/appl/appuno.cxx:1993:                        if ( pSfxSlot->GetMode() & nMode )
+./source/appl/appuno.cxx.orig:1947:            if ( pSfxSlot->GetMode() & nMode )
+./source/appl/appuno.cxx.orig:1989:                        if ( pSfxSlot->GetMode() & nMode )
+./source/view/sfxbasecontroller.cxx:1410:            if ( pSfxSlot->GetMode() & nMode )
+./source/view/sfxbasecontroller.cxx:1452:                        if ( pSfxSlot->GetMode() & nMode )
+./source/explorer/infodlgs.cxx:142:     if ( ( rEvt.GetMode() & HELPMODE_QUICK ) == HELPMODE_QUICK && _aQuickHelpText.Len() )
+./source/control/macro.cxx:544:SfxMacroMode SfxMacro::GetMode() const
+./source/control/dispatch.cxx:1154:             else if ( pSlot->GetMode() & SFX_SLOT_ASYNCHRON )
+./source/control/dispatch.cxx:1211:             else if ( pSlot->GetMode() & SFX_SLOT_ASYNCHRON )
+./source/dialog/cfg.cxx:923:                    if ( pSfxSlot->GetMode() & nMode )
+./source/dialog/cfg.cxx:2058:                            !(pSlot->GetMode() & SFX_SLOT_STATUSBARCONFIG) )
+./source/toolbox/tbxitem.cxx.orig:1467:                                                   rMEvt.GetClicks(), rMEvt.GetMode(),
+./source/toolbox/tbxitem.cxx:1467:                                                        rMEvt.GetClicks(), rMEvt.GetMode(),
+
+Menu item construction seems to happen via:
+
+Breakpoint 1, Menu::InsertItem (this=0x8d9ffb8, nItemId=6, rStr=@0xbfffd4a0, nItemBits=0, nPos=65535)
+    at /opt/OpenOffice/src680-m79/vcl/source/window/menu.cxx:1093
+1093        if ( nPos >= (USHORT)pItemList->Count() )
+(gdb) bt
+#0  Menu::InsertItem (this=0x8d9ffb8, nItemId=6, rStr=@0xbfffd4a0, nItemBits=0, nPos=65535)
+    at /opt/OpenOffice/src680-m79/vcl/source/window/menu.cxx:1093
+#1  0x4469760f in framework::MenuBarManager::FillMenu () from ./libfwk680li.so
+#2  0x44697728 in framework::MenuBarManager::FillMenu () from ./libfwk680li.so
+#3  0x44699d9f in framework::MenuBarWrapper::initialize () from ./libfwk680li.so
+#4  0x446e6fa0 in framework::MenuBarFactory::createUIElement () from ./libfwk680li.so
+#5  0x446a5a5c in framework::UIElementFactoryManager::createUIElement () from ./libfwk680li.so
+#6  0x4466fd3e in framework::LayoutManager::implts_createElement () from ./libfwk680li.so
+#7  0x446740dd in framework::LayoutManager::createElement () from ./libfwk680li.so
+#8  0x43c29f5b in SfxObjectShell::CreateMenuBarManager_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#9  0x43c91cc4 in SfxViewShell::GetMenuBar_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#10 0x43cd7444 in SfxDispatcher::SetMenu_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#11 0x43cd77e1 in SfxDispatcher::Update_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#12 0x43b7d3b9 in SfxApplication::SetViewFrame () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#13 0x43cb22eb in SfxViewFrame::MakeActive_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#14 0x43cb2072 in SfxViewFrame::Show () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#15 0x43cbe9bb in SfxTopFrame::InsertDocument () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#16 0x43b63975 in SfxApplication::NewDocDirectExec_ImplOld () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#17 0x43c94eda in SfxFrameLoader_Impl::load () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#18 0x446edbee in framework::LoadEnv::impl_loadContent () from ./libfwk680li.so
+#19 0x446ead5f in framework::LoadEnv::startLoading () from ./libfwk680li.so
+#20 0x445d1903 in framework::LoadDispatcher::dispatchWithNotification () from ./libfwk680li.so
+#21 0x445d1c34 in framework::LoadDispatcher::dispatch () from ./libfwk680li.so
+#22 0x43d0d1d3 in SfxAppToolBoxControl_Impl::ExecuteHdl_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+#23 0x40350d3f in ImplHandleUserEvent () from ./libvcl680li.so
+#24 0x4035186f in ImplWindowFrameProc () from ./libvcl680li.so
+#25 0x4245a0eb in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
+#26 0x41ef68fd in GtkXLib::userEventFn (data=0x80d48d0) at /opt/OpenOffice/src680-m79/vcl/unx/gtk/app/gtkdata.cxx:652
+#27 0x42389221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+
+framework/source/uielement/menubarmanager.cxx (framework::MenuBarManager::FillMenu):
+    Gets all manner of properties - constructs the menu item from them;
+
+** Where does the slot data come in:
+
+michael@linux:/opt/OpenOffice/src680-m79/framework> find -name '*.c*' -exec grep 'createUIElement' {} -Hn \; 
+./source/layoutmanager/layoutmanager.cxx:860:            xUIElement = xUIElementFactory->createUIElement( aAddonToolBarName, aPropSeq );
+./source/layoutmanager/layoutmanager.cxx:2746:        xUIElement = m_xUIElementFactoryManager->createUIElement( aName, aPropSeq );
+./source/layoutmanager/layoutmanager.cxx.orig:860:            xUIElement = xUIElementFactory->createUIElement( aAddonToolBarName, aPropSeq );
+./source/layoutmanager/layoutmanager.cxx.orig:2746:        xUIElement = m_xUIElementFactoryManager->createUIElement( aName, aPropSeq );
+./source/uifactory/addonstoolboxfactory.cxx:227:Reference< XUIElement > SAL_CALL AddonsToolBoxFactory::createUIElement( 
+./source/uifactory/menubarfactory.cxx:182:Reference< XUIElement > SAL_CALL MenuBarFactory::createUIElement( 
+./source/uifactory/toolboxfactory.cxx:174:Reference< XUIElement > SAL_CALL ToolBoxFactory::createUIElement( 
+./source/uifactory/statusbarfactory.cxx:174:Reference< XUIElement > SAL_CALL StatusBarFactory::createUIElement( 
+./source/uifactory/uielementfactorymanager.cxx:619:Reference< XUIElement > SAL_CALL UIElementFactoryManager::createUIElement( 
+./source/uifactory/uielementfactorymanager.cxx:656:            return xUIElementFactory->createUIElement( ResourceURL, Args );
+
+#8  0x43c29f5b in SfxObjectShell::CreateMenuBarManager_Impl () at /opt/OpenOffice/src680-m79/sfx2/source/dialog/filedlghelper.cxx:285
+
+sfx2/source/doc/objcont.cxx (CreateMenuBarManager_Impl)
+
+Perhaps the data comes from:
+
+framework/inc/uiconfigurationmanager.hxx (struct UIElementData)
+    + populated from the XML ?
+
+		<menu:menupopup>
+			<menu:menuitem menu:id=".uno:AddDirect" menu:helpid="5537" menu:label="" />
+			<menu:menuitem menu:id=".uno:Open" menu:helpid="5501" menu:label="" />
+			<menu:menuitem menu:id=".uno:RecentFileList"/>
+
+framework/source/xml/menudocumenthandler.cxx: reads this & inserts into m_xMenuBarContainer
+					      as a set of properties
+
+It seems we get the information from the Slots in eg.
+
+String MenuBarManager::RetrieveLabelFromCommand( const String& aCmdURL )
+
+    This creates some crazy UNO service to do this lookup for us.
--- openoffice.org-2.4.1.orig/ooo-build/doc/session-management
+++ openoffice.org-2.4.1/ooo-build/doc/session-management
@@ -0,0 +1,24 @@
+OOo opens connection to session manager when SESSION_MANAGER
+envirnment variable is set.
+
+X Session Management is described here:
+	http://www.xfree86.org/current/SMlib.pdf
+
+On shutdown, the session manager sends SaveYourselfProc, so that app
+can save it's state. (it also sends this at session management
+checkpoint) At this point app can request interaction with user (if
+allowed by SM). After save is completed (sends SaveCompleteProc) it
+sends DieProc.
+
+OOo now saves the data on save yourself and closes all the
+frames. When it receives DieProc, all the frames are already closed
+and so no interaction with user happens.
+
+To make OOo display (interact) with user on GNOME session close
+(logout/shutdown/restart) we will need to make OOo not to close frames
+on SaveYourselfProc. It will make sense as it seems weird to close
+documents on SM checkpoint too.
+
+OOo sources:
+
+	vcl/unx/source/app/sm.cxx: X11 Session management client
--- openoffice.org-2.4.1.orig/ooo-build/doc/vfs.txt
+++ openoffice.org-2.4.1/ooo-build/doc/vfs.txt
@@ -0,0 +1,91 @@
+** Yet more smb:/// problems ( in 1.1.4 )
+
+    It seems the regexp is capturing slot:/// URIs that are vital
+for various reasons (although the UCP itself never seems to see
+these - oddly). The change to the '://' URI pattern match was
+rather a failure.
+
+    ucb/source/core/ucb.cxx (registerContentProvider) is passed
+the regexp as 'Scheme' -> 
+
+typedef ucb::RegexpMap< ProviderList_Impl > ProviderMap_Impl;
+
+	m_aProviders ...
+
+ucb.cxx (queryContentProvider) calls 'map' in
+	ucb/source/inc/regexpmap.hxx ->
+	ucb/source/inc/regexpmap.tpt
+
+Val const * RegexpMap< Val >::map(rtl::OUString const & rString,
+								  rtl::OUString * pTranslation,
+								  bool * pTranslated) const
+{
+	for (int n = Regexp::KIND_DOMAIN; n >= Regexp::KIND_PREFIX; --n)
+	{
+		List< Val > const & rTheList = m_pImpl->m_aList[n];
+
+		List< Val >::const_iterator aEnd(rTheList.end());
+		for (List< Val >::const_iterator aIt(rTheList.begin()); aIt != aEnd;
+			 ++aIt)
+			if (aIt->m_aRegexp.matches(rString, pTranslation, pTranslated))
+				return &aIt->m_aValue;
+	}
+	if (m_pImpl->m_pDefault
+		&& m_pImpl->m_pDefault->m_aRegexp.matches(rString, pTranslation,
+												  pTranslated))
+		return &m_pImpl->m_pDefault->m_aValue;
+	return 0;
+}
+
+
+
+** Older 2.0 smb:/// problems
+
+
+Tracing smb:/// problems:
+    auth callbacks have changed incompatibly
+    cf. gnome-vfs-standard-callbacks.h
+	+ we're getting fill-authentication & full-authentication
+	  information, never the 'simple-authentication' we crave.
+	+ revision 1.9
+	   date: 2003/12/04 20:37:55;  author: alexl;  state: Exp;  lines: +122 -0
+	     2003-12-04  Alexander Larsson  <alexl@redhat.com>
+	             * libgnomevfs/gnome-vfs.h:
+	               Include gnome-vfs-standard-callbacks.h
+	             * libgnomevfs/gnome-vfs-standard-callbacks.h:
+	               Add new standard auth callbacks
+	+ ie. in the 2.5.x development cycle,
+	    + ergo we need to depend on 2.6.x
+		+ NLD & JDS etc. foo have this ...
+
+Tracing Domain problem (non apperance in auth dialog):
+    + uui/source/iahndl.cxx /::handle/
+	-> handleAuthenticationRequest
+	    -> executeLoginDialog an empty Realm == no realm (sigh)
+		+ can't set realm ...
+
+#7  0x43821670 in UUIInteractionHandler::executeLoginDialog () from /opt/OOInstall/program/libuui680li.so
+#8  0x438246ca in UUIInteractionHandler::handleAuthenticationRequest () from /opt/OOInstall/program/libuui680li.so
+#9  0x4381b097 in UUIInteractionHandler::handle () from /opt/OOInstall/program/libuui680li.so
+#10 0x40d6d9d9 in ucbhelper::InterceptedInteraction::impl_handleDefault () from /opt/OOInstall/program/libucbhelper3gcc3.so
+
+Tracing nasty infinite loop with wrong pwd & 'remember pwd' checked
+	-> handleAuthenticationRequest
+	   -> getContinuations ( ... xSupplyAuthentication )
+			       ( XInteractionSupplyAuthentication )
+	-> Get password container service:
+		"com.sun.star.task.PasswordContainer"
+
+Tracing some bugs in the VFS / URI load process:
+
+    desktop/source/app/app.cxx (GetURL_Impl)
+from:
+    desktop/source/app/dispatchwatcher.cxx
+failing in:
+    tools/source/fsys/urlobj.cxx: INetURLObject::smartRel2Abs
+
+then to:
+    framework/source/services/desktop.cxx (loadComponentFromURL)
+to:
+    framework/source/loadenv/loadenv.cxx (classifyContent)
+	-> Failing on UCB service lookup.
--- openoffice.org-2.4.1.orig/ooo-build/doc/image.txt
+++ openoffice.org-2.4.1/ooo-build/doc/image.txt
@@ -0,0 +1,221 @@
+Faster image strips horiz -> vertical...
+
+** TODO:
+    + audit & remove ImageList functionality ...
+
+* Questions: is the ImageList really that useful ?
+    + can we construct it idly / on demand ?
+
+* Audit ImageList usage - how many of the
+  constructors are actually used !?
+
+* ImplImageRefData / IMAGETYPE_IMAGEREF:
+    'Image: ImageList::GetImage( USHORT nId )'
+
+
+* contrast - high contrast etc. (?)
+
+* Actual constructor usage:
+
+for sym in `objdump -T libvcl680li.so | grep ImageListC | sed 's/.*_ZN/_ZN/'`; do echo "$sym"; grep $sym *.so; done
+
+External uses of constructors:
+
+18  ImageList::ImageList(ResId const&)
+8   ImageList::ImageList(unsigned short, unsigned short)
+2   ImageList::ImageList(ImageList const&)
+1   ImageList::ImageList(_STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> > const&, rtl::OUString const&, Color const*) - libfwk
+
+[axe ? ]
+0   ImageList::ImageList(Bitmap const&, Color const&, unsigned short, unsigned short*, unsigned short)
+0   ImageList::ImageList(Bitmap const&, Bitmap const&, unsigned short, unsigned short*, unsigned short)
+0   ImageList::ImageList(Bitmap const&, Bitmap const&, unsigned short, unsigned short*, unsigned short)
+0   ImageList::ImageList(Bitmap const&, unsigned short, unsigned short*, unsigned short)
+[ axe ? ]
+
++ libfwk:
+1   ImageList::ImageList(BitmapEx const&, _STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> > const&, unsigned short)
+    + uiconfiguration/moduleimagemanager.cxx:                    m_pUserImageList[nImageType] = new ImageList( aUserBitmap, aUserImagesVector );
+    + uiconfiguration/imagemanager.cxx:                    m_pUserImageList[nImageType] = new ImageList( aUserBitmap, aUserImagesVector );
+	+ read a 'User Bitmap' ( configuration pieces )
+	+ [ fixed ]
+
++ libsvx:
+1   ImageList::ImageList(Bitmap const&, unsigned short, unsigned short*, unsigned short)
+svx/source/dialog/frmsel.cxx:    maILArrows = ImageList( aBmp, 16 );
+    + Easy to re-write to use AddImage [ or sim. ]
+    + [fixed]
+
+** No need for the 'InitSize' etc.
+
+* GetBitmapEx:
+    + also problematic:
+    + almost never used ...
+    + [fixed]
+
+> grep _ZNK9ImageList11GetBitmapExEv *.so
+    Binary file libfwk680li.so matches
+	+ user bitmap storage ...
+	+ [ fixed ]
+    Binary file libgo680li.so matches
+	+ goodies/source/unographic/provider.cxx: aBmpEx = aImageList.GetBitmapEx();
+	+ [ fixed ]
+
+* Potential cleanups: *
+    + use of 'GetImagePos':
+	+ mostly:
+	    if ( pList->GetImagePos( nImageId ) != IMAGELIST_IMAGE_NOTFOUND )
+	+ should be 'pList->HasImagePos( nImageId )'
+	    + file usage:
+		framework/source/uiconfiguration/imagemanager.cxx
+		framework/source/uiconfiguration/moduleimagemanager.cxx
+[done]		sfx2/source/toolbox/imgmgr.cxx
+[done]		svtools/source/misc/imagemgr.cxx
+
+* Inside VCL:
+    + image.cxx / .hxx changes
+    + button.cxx:
+	    + radio button images: used for:
+		aBmp.Replace( pColorAry1, pColorAry2, 6, NULL );
+		+ otherwise, could be a resource ...
+    + brdwin.cxx:
+	    + pin images (?)
+
+
+* Other unused bits:
+
+[done]  'GetColorTransformedImageList' ...
+[done]  'Invert'
+	+ 1 use in svtools/source/misc/imagemgr.cxx
+	    + can be trivially altered to invert
+	      individual images on the fly.
+	    + saves forcing whole list into memory.
+
+[done]	'CopyImage' - unused.
+
+'ReplaceImage' - only 1 variant used [framework]
+	+ ImageList::ReplaceImage(rtl::OUString const&, Image const&)
+
+'RemoveImage' - 1 variant used [ framework ]
+	+ ImageList::RemoveImage(unsigned short)
+
+[ Build with the binfilter ?! ] ...
+[ fixme: check binfilter ? ]
+	operator>>(SvStream&, ImageList&)
+	operator<<(SvStream&, ImageList const&)
+	    + both unused ! :-)
+
+++ Focus on implementing the existing functionality
+    - then a full test build (?)
+    + [ with binfilter ]
+
+** some of these cleanups are -not-really- necessary
+    + we just need to hack the core to allow a
+      non-stupid immediate-load thing.
+
++ binfilter:
+    + pretty clean:
+
+michael@t60p:/usr/lib/ooo-2.0/program> for a in libbf*; do objdump -T $a; done | c++filt | grep ImageList::
+00000000      DF *UND*  0000003f              ImageList::~ImageList()
+00000000      DF *UND*  00000396              ImageList::ImageList(ResId const&)
+00000000      DF *UND*  0000002d              ImageList::GetImageSize() const
+00000000      DF *UND*  00000016              ImageList::GetImageCount() const
+00000000      DF *UND*  0000001c              ImageList::ImageList(unsigned short, unsigned short)
+00000000      DF *UND*  00000061              ImageList::GetImageId(unsigned short) const
+00000000      DF *UND*  0000005a              ImageList::GetImagePos(unsigned short) const
+00000000      DF *UND*  0000003f              ImageList::~ImageList()
+00000000      DF *UND*  000000c1              ImageList::GetImage(unsigned short) const
+
+
+++ RemoveImage
+michael@t60p:/opt/OOInstall/program> grep 'RemoveImage' *
+Binary file libfwk680li.so matches
+    + 1 use ...
+	+ exposed via UNO (urgh)
+
+++ Instead 'GetImagePos' ?
+    + GetImagePos - seems pretty pointless ... [?]
+    + HasImageAtPos (?)
+	+ who is serializing the Pos ?
+    + what is going on here ?
+
++ GetImageSize:
+  + sw, svx - call this method ...
+
+
+
++ impimage.cxx
++ image.cxx
++ image.h / image.hxx
++ outdev2.cxx
+
+
+** TODO:
+
+    + test load/save of horiz image strips etc.
+	+ customize toolbars et. al.
+    + sizing issues (?)
+
+** Timings:
+
++ new code: warm:
+
+001986 1 } PERFORMANCE - DesktopOpenClients_Impl()
+002022 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001952 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
++ new code: cold start [sorted]
+
+007869 1 } PERFORMANCE - DesktopOpenClients_Impl()
+007933 1 } PERFORMANCE - DesktopOpenClients_Impl()
+007571 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
++ new code: cold start [unsorted]
+
+007506 1 } PERFORMANCE - DesktopOpenClients_Impl()
+007711 1 } PERFORMANCE - DesktopOpenClients_Impl()
+007634 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
++ old code: warm:
+
+001949 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001938 1 } PERFORMANCE - DesktopOpenClients_Impl()
+002095 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
++ old code: cold:
+
+008164 1 } PERFORMANCE - DesktopOpenClients_Impl()
+007960 1 } PERFORMANCE - DesktopOpenClients_Impl()
+007426 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+++ ie. no real difference on cold start
+
++ new + image lookup hash (warm):
+
+001655 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001696 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001657 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+
+michael@t60p:/opt/OpenOffice/ooo-build-2-0-2> du -k ~/.ooo-2.0/user/config/imagecache
+2406    /home/michael/.ooo-2.0/user/config/imagecache
+
++ Get memory profile numbers ...
+
+21254 michael   15   0  423m  61m  40m S    0  3.1   0:02.32 soffice.bin
+21342 michael   15   0  427m  64m  40m S    0  3.2   0:02.92 soffice.bin
+
+3Mb saved (?)
+
++ TODO:
+    + work out how to test the results ...
+	+ [ low memory ? ]
+    + sort images.zip:
+	+ don't compress the .pngs: & test perf ...
+	    + size wise - a small loss for lc_zoom*
+    + Test / fix UI customization
+    + make a test that loads the images
+      several times ? - unzipped ? a warm
+      start speedup ?
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/cuckooo.txt
+++ openoffice.org-2.4.1/ooo-build/doc/cuckooo.txt
@@ -0,0 +1,98 @@
+* KOOo::Part
+
+ component built aroung KOOo::OfficeWidget
+
+ configuration (cuckooopartui.ini UNO .ini file; KConfig cuckooorc)
+
+ ui-merging (cuckooopartui.rc)
+
+ persistence (loading only)
+
+ whats that QConSpec = "pipe,name=%1_cuckooo-OOo_pipe"? cf. initOffice.
+
+* KOOo::Factory
+
+* KOOo::OfficeWidget 
+
+** helpers for string conversions
+
+** paintEvent
+
+ only splash screen painting
+
+** initOffice, serviceManager
+
+ see p 75, example code on p 77 (in pdf version of the developer's guide)
+ 
+ example in devguide doesn't use inifile (thus requires some env variables set)
+ for settings in that inifile read
+ http://udk.openoffice.org/common/man/concept/uno_default_bootstrapping.html
+
+ cuckooo code has existing error handling
+
+ pipe vs. socket: p 79, the example can't use a pipe (not available with java binding)
+
+ TODO: read the sections about what's deprecated
+
+** createFrame
+
+ creates Frame, attaches it to this window (winId() being a method of QWidget):
+
+ anyParent <<= winId() and
+ rChildFactory->createSystemChild(anyParent, seqProcessId, 
+				  lang::SystemDependent::SYSTEM_XWINDOW)
+
+ on frames:
+ http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.htm
+
+ especially the example in 6.1.4
+
+ "there are two ways to obtain it"
+  -> the first way is deprecated since 643 (says devguide)
+
+** loadDocument
+
+ tries to reuse m_frame or createFrame
+
+ loads the doc from url, readonly
+
+ XComponentLoader, devguide 6.1.5
+
+ hideOfficeControls()
+
+** hideOfficeControls
+
+ hides menu bar, common task bar, inetbar, macrobar, navigationbar,
+ objectbar, optionbar, statusbar, toolbar
+
+ this is where it needs sfx2 headers (for SIDs)
+
+** dispatchUrl
+
+ gets an XDispatch for the frame
+
+ what's the URLTransformer for?
+
+ uses that to dispatch urls (think verbs)
+
+** getUniqueFrameName
+
+ kooo-frame-<basename><number>
+
+ loops through all frames to eliminate all used <number>s
+
+ unique name is needed for the componentLoader to load the document in
+ the correct frame
+ BETTER: don't use ComponentLoader, it's possible to load with a
+ Reference<XFrame>, so names don't have to be unique.
+
+* Don't forget to test this:
+
+** run OOo app, then open use component
+
+** run component, then OOo app (does the app appear?)
+
+** view file in component, keep open, then open in OOo app (does it
+   create a new editable frame)
+
+** press Ctrl-Q or Ctrl-W when the control has focus
--- openoffice.org-2.4.1.orig/ooo-build/doc/xml-problems.txt
+++ openoffice.org-2.4.1/ooo-build/doc/xml-problems.txt
@@ -0,0 +1,78 @@
+Problem:
+    https://bugzilla.innerweb.novell.com/show_bug.cgi?id=71105
+
+<caolan> michael_: hmm, possible the new anchoring code, a checkin by OD/FME would be a good sign
+
+Duplicate XML properties getting emitted (somehow)
+	  + 'presentation:' prefixed
+
+xmloff/source/draw/sdpropls.cxx
+
+
+
+_clearly_ we shouldn't be outputting: background-objects-visible="true" 
+background-visible="true" from 2.0
+
+1.1 output to 2.0's idea of 1.1 output:
+
+   <office:automatic-styles>
+     <style:style style:name="dp1" style:family="drawing-page">
+-      <style:properties presentation:display-footer="visible"
++      <style:properties presentation:display-footer="true"
+-	presentation:display-page-number="hidden"
++	presentation:display-page-number="false"
+-	presentation:display-date-time="visible"
++	presentation:display-date-time="true"
+	transition-type="semi-automatic"
+	transition-style="vertical-lines" transition-speed="fast"
+	background-objects-visible="true" background-visible="true"
++	presentation:background-visible="true"
++	presentation:background-objects-visible="true"
+	smil:type="randomBarWipe" smil:subtype="vertical"/>
+     </style:style>
+
+Some substantial changes - and (worse) painful duplication.
+
+filters/source/config/fragments/filters:
+
+writer8.xcu - new format:
+	<node oor:name="writer8" oor:op="replace">
+		<prop oor:name="FileFormatVersion"><value>6800</value></prop>
+		<prop oor:name="Type"><value>writer8</value></prop>
+		<prop oor:name="UIName">
+			<value xml:lang="en-US">OpenDocument Text</value>
+		</prop>
+		<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED</value></prop>
+	</node>
+vs.
+StarOffice_XML__Writer_.xcu - old format
+	<node oor:name="StarOffice XML (Writer)" oor:op="replace" oor:finalized="true" oor:mandatory="true">
+		<prop oor:name="FileFormatVersion"><value>6200</value></prop>
+		<prop oor:name="Type"><value>writer_StarOffice_XML_Writer</value></prop>
+		<prop oor:name="UIName">
+			<value xml:lang="en-US">%productname% %formatversion% Text Document</value>
+		</prop>
+		<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED</value></prop>
+	</node>
+
+The 'FilterService' is empty in both cases ...
+
+It seems that xmloff/source/transform/* holds the key:
+   OasisToOOo.cxx, OOo2Oasis.cxx etc.
+
+
+We seem to have:
+
+static XMLTransformerActionInit aStyleActionTable[] =
+{
+
+    And a set of macros to invoke different behaviors on various attributes.
+
+Adding code to StyleOASISTContext.cxx
+    XMLPropertiesTContext_Impl::StartElement()
+	gives some helpful printout:
+
+Attr name 'background-visible'
+Attr name 'background-objects-visible'
+Attr name 'presentation:background-visible'
+Attr name 'presentation:background-objects-visible'
--- openoffice.org-2.4.1.orig/ooo-build/doc/history.ods.uu
+++ openoffice.org-2.4.1/ooo-build/doc/history.ods.uu
@@ -0,0 +1,499 @@
+begin 644 doc/history.ods
+M4$L#!!0``````*^+>3B%;#F*+@```"X````(````;6EM971Y<&5A<'!L:6-A
+M=&EO;B]V;F0N;V%S:7,N;W!E;F1O8W5M96YT+G-P<F5A9'-H965T4$L#!!0`
+M`````*^+>3@````````````````:````0V]N9FEG=7)A=&EO;G,R+W-T871U
+M<V)A<B]02P,$%``(``@`KXMY.````````````````"<```!#;VYF:6=U<F%T
+M:6]N<S(O86-C96QE<F%T;W(O8W5R<F5N="YX;6P#`%!+!P@``````@``````
+M``!02P,$%```````KXMY.````````````````!@```!#;VYF:6=U<F%T:6]N
+M<S(O9FQO871E<B]02P,$%```````KXMY.````````````````!H```!#;VYF
+M:6=U<F%T:6]N<S(O<&]P=7!M96YU+U!+`P04``````"OBWDX````````````
+M````'````$-O;F9I9W5R871I;VYS,B]P<F]G<F5S<V)A<B]02P,$%```````
+MKXMY.````````````````!@```!#;VYF:6=U<F%T:6]N<S(O;65N=6)A<B]0
+M2P,$%```````KXMY.````````````````!@```!#;VYF:6=U<F%T:6]N<S(O
+M=&]O;&)A<B]02P,$%```````KXMY.````````````````!\```!#;VYF:6=U
+M<F%T:6]N<S(O:6UA9V5S+T)I=&UA<',O4$L#!!0`"``(`*^+>3@`````````
+M```````;````3V)J96-T4F5P;&%C96UE;G1S+T]B:F5C="`Q[5T-;!S%%7YW
+M_K^<[?-/'"<A8"AM$X&-?782`E5I3!(G8/+31"FT!6J?[<3UV6?BGP2JM.:_
+MHBEJ4/BQ6HD&5:$"6D&%*`A4PH]H42JDEBJ56@DI+414_7,EH%6%>GUOWLS=
+M>N]LW]J>G0U[9\V^W?'LSGO?>]_.[L[NS-ZK.Z_;LR4`+<"_`*P$ZR]@3Z]A
+MR?=6`5Q3!/`=S`IB9C)Y.ZY%++N]BJ7>794NT0!WX-J%N!84%01%+OVH5""U
+M#^;>A9M%ZCC3-NZ6&\EDD@X;@-=QHP:NW[EQS]8MVSH[;]Z]>=?-[9L[MFVG
+MTH\+C8^+Y5JQ+(8S]5RAJMBJKE7M=+F)I/A9X>#?U%4PZ\_V_XF,-<N1IUF9
+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
+M:6-E/2)U<FXZ;V%S:7,Z;F%M97,Z=&,Z;W!E;F1O8W5M96YT.GAM;&YS.F]F
+M9FEC93HQ+C`B('AM;&YS.GAL:6YK/2)H='1P.B\O=W=W+G<S+F]R9R\Q.3DY
+M+WAL:6YK(B!X;6QN<SID8STB:'1T<#HO+W!U<FPN;W)G+V1C+V5L96UE;G1S
+M+S$N,2\B('AM;&YS.FUE=&$](G5R;CIO87-I<SIN86UE<SIT8SIO<&5N9&]C
+M=6UE;G0Z>&UL;G,Z;65T83HQ+C`B('AM;&YS.F]O;STB:'1T<#HO+V]P96YO
+M9F9I8V4N;W)G+S(P,#0O;V9F:6-E(B!O9F9I8V4Z=F5R<VEO;CTB,2XP(CX\
+M;V9F:6-E.FUE=&$^/&UE=&$Z9V5N97)A=&]R/D]P96Y/9F9I8V4N;W)G+S(N
+M,"1,:6YU>"!/<&5N3V9F:6-E+F]R9U]P<F]J96-T+S8X,&TU)$)U:6QD+3DP
+M-S,\+VUE=&$Z9V5N97)A=&]R/CQM971A.F-R96%T:6]N+61A=&4^,C`P-BTP
+M-BTQ-E0R,CHR-3HR-CPO;65T83IC<F5A=&EO;BUD871E/CQD8SID871E/C(P
+M,#@M,#,M,C54,3@Z,CDZ,S$\+V1C.F1A=&4^/&1C.FQA;F=U86=E/F5N+4="
+M/"]D8SIL86YG=6%G93X\;65T83IE9&ET:6YG+6-Y8VQE<SXQ-SPO;65T83IE
+M9&ET:6YG+6-Y8VQE<SX\;65T83IE9&ET:6YG+61U<F%T:6]N/E!4,4@R33A3
+M/"]M971A.F5D:71I;F<M9'5R871I;VX^/&UE=&$Z=7-E<BUD969I;F5D(&UE
+M=&$Z;F%M93TB26YF;R`Q(B\^/&UE=&$Z=7-E<BUD969I;F5D(&UE=&$Z;F%M
+M93TB26YF;R`R(B\^/&UE=&$Z=7-E<BUD969I;F5D(&UE=&$Z;F%M93TB26YF
+M;R`S(B\^/&UE=&$Z=7-E<BUD969I;F5D(&UE=&$Z;F%M93TB26YF;R`T(B\^
+M/&UE=&$Z9&]C=6UE;G0M<W1A=&ES=&EC(&UE=&$Z=&%B;&4M8V]U;G0](C$B
+M(&UE=&$Z8V5L;"UC;W5N=#TB,3,Y(B!M971A.F]B:F5C="UC;W5N=#TB,2(O
+M/CPO;V9F:6-E.FUE=&$^/"]O9F9I8V4Z9&]C=6UE;G0M;65T83Y02P,$%``(
+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
+M^G)YMC!@U8C$W:Y1I7F6]MV^CL%V#DA19\$@=2P[Y]$.3D:#EKL_X[NLM#RK
+M#N!1:6Q28-A6!S$<%#2\]=C7X+U6$CCE*6[MT-YKM8\E6O(!8:`U(M<'R!BU
+M;CSPNJ]%+4[2/$[YX.RHIACN<Z%W@A@XT@I"&3Q(B1I3UP4A8PAYI6DSBVL5
+M$1BU`\9"<.]\].DDQ$+XX*:`5*[2.?5B<'9.%X,K`Q.2N%)LP%-1C1/93VV#
+MHLVWIXVJE8\%GI?#*\0W3?8J-XY*8C,-RB!#GG]QIY*#W=&/T04#G,VS?_,K
+M.K[X]/'SEQ1TG8(>!H[G^'7U$R5_0Z]!8O9!$@]#U?DL=3C"/Y'+N&&1+>LH
+M/Y6!7^9I_^<2;S72[-C=WHI2>>\%7KR`9SR5<@WA'X_D7G_65>7C/MNS=;..
+M9F5!:1*\:[;>3G/#YSV/R)Q^5?N"+L1?GZKE;U!+!PBBYV16JP$``(\)``!0
+M2P$"%``4``````"OBWDXA6PYBBX````N````"```````````````````````
+M;6EM971Y<&502P$"%``4``````"OBWDX````````````````&@``````````
+M``````!4````0V]N9FEG=7)A=&EO;G,R+W-T871U<V)A<B]02P$"%``4``@`
+M"`"OBWDX``````(`````````)P````````````````",````0V]N9FEG=7)A
+M=&EO;G,R+V%C8V5L97)A=&]R+V-U<G)E;G0N>&UL4$L!`A0`%```````KXMY
+M.````````````````!@`````````````````XP```$-O;F9I9W5R871I;VYS
+M,B]F;&]A=&5R+U!+`0(4`!0``````*^+>3@````````````````:````````
+M`````````!D!``!#;VYF:6=U<F%T:6]N<S(O<&]P=7!M96YU+U!+`0(4`!0`
+M`````*^+>3@````````````````<`````````````````%$!``!#;VYF:6=U
+M<F%T:6]N<S(O<')O9W)E<W-B87(O4$L!`A0`%```````KXMY.```````````
+M`````!@`````````````````BP$``$-O;F9I9W5R871I;VYS,B]M96YU8F%R
+M+U!+`0(4`!0``````*^+>3@````````````````8`````````````````,$!
+M``!#;VYF:6=U<F%T:6]N<S(O=&]O;&)A<B]02P$"%``4``````"OBWDX````
+M````````````'P````````````````#W`0``0V]N9FEG=7)A=&EO;G,R+VEM
+M86=E<R]":71M87!S+U!+`0(4`!0`"``(`*^+>3B6E$1UF@X``*2W```;````
+M`````````````#0"``!/8FIE8W1297!L86-E;65N=',O3V)J96-T(#%02P$"
+M%``4``@`"`"OBWDXL%LQ\0P,```';0``"P`````````````````7$0``8V]N
+M=&5N="YX;6Q02P$"%``4``@`"`"OBWDX:75BQW0&``!['```"@``````````
+M``````!<'0``<W1Y;&5S+GAM;%!+`0(4`!0`"``(`*^+>3CHQ0/4!PL``$69
+M```4``````````````````@D``!/8FIE8W0@,2]C;VYT96YT+GAM;%!+`0(4
+M`!0`"``(`*^+>3B6@K0S.@$``$P$```3`````````````````%$O``!/8FIE
+M8W0@,2]S='EL97,N>&UL4$L!`A0`%```````KXMY."^,B(;#`P``PP,```@`
+M````````````````S#```&UE=&$N>&UL4$L!`A0`%``(``@`KXMY.*RG2Y0Q
+M%@``;Q8``!@`````````````````M30``%1H=6UB;F%I;',O=&AU;6)N86EL
+M+G!N9U!+`0(4`!0`"``(`*^+>3A[=F5S[P0``&DC```,````````````````
+M`"Q+``!S971T:6YG<RYX;6Q02P$"%``4``@`"`"OBWDXHN=D5JL!``"/"0``
+M%0````````````````!54```345402U)3D8O;6%N:69E<W0N>&UL4$L%!@``
+0```2`!(`N@0``$-2````````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/announce-odi.txt
+++ openoffice.org-2.4.1/ooo-build/doc/announce-odi.txt
@@ -0,0 +1,67 @@
+novell-ooo <openoffice-dev@forge.provo.novell.com>
+Jared Jensen <jajensen@novell.com>, Skip Soldan <SSoldan@novell.com>, Ron Randquist <RRANDQUIST@novell.com>, "Stuart Thompson" <STThompson@novell.com>
+
+ANNOUNCE: New NLD9/ODI OpenOffice_org-***
+
+NLD9/ODI OpenOffice.org build:
+
+        This package contains the Novell specific features for OpenOffice.org.
+It is based on a latest stable branch. It is a special build for NLD9 as part
+of the ODI initiative.
+
+
+Changes in this release:
+
+        See the attached file. It has described the changes in the package
+        since the latest version XXX-YY.
+
+
+You can get the packages via Red Carpet:
+        
+        server: http://red-carpet.go-oo.org/
+        channel: ooo-odi
+
+or you can download the packages directly from:
+
+        http://go-oo.org/red-carpet/ooo-odi/nld-9-i586/
+
+
+IMPORTANT: The channel provides also the older packages. The new one has the 
+version XXX-YY. If you do an update from any older OOo version, you have 
+to update all the old packages.
+
+
+You need to install the main package:
+
+        - OpenOffice_org
+
+
+We suggest to install also an improved desktop integration for GNOME and/or 
+KDE. It is included in the respective packages:
+        
+        - OpenOffice_org-gnome
+        - OpenOffice_org-kde
+
+
+You might want to install some extra localizations that are provided by the 
+packages:
+        
+        - OpenOffice_org-de
+        - OpenOffice_org-fr
+        ...
+
+
+You might be also interested into some extra galleries. To get this 
+feature, you need to install the packages:
+
+        - OpenOffice_org-galleries
+        - openclipart
+
+
+Finally, the OOo API can be accessed be accessed from java based applications. 
+This functionality is supported by the package:
+
+        - OpenOffice_org-officebean
+
+You should not need to install this package if it is not required by another 
+one.
--- openoffice.org-2.4.1.orig/ooo-build/doc/vba-reqmnts.sxw.uu
+++ openoffice.org-2.4.1/ooo-build/doc/vba-reqmnts.sxw.uu
@@ -0,0 +1,364 @@
+begin 644 doc/vba-reqmnts.sxw
+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
+ME=K"$(:.)KDDEAP[LB^4_/NZ54.0FH4VV]E^][V[-WBQ.E>:G=!Y94W,IV+"
+M&9K49LH4,3\D3]$#7RWO%O>;W3IYWV]9)8W*T=.\*]C^\/CRO&8\`MC5:'9Y
+MKE(4UA4`FV3#7CM=8`-LWSCCW97(*.,!_IL9AC+^<HQY253/`6S@VYX_FTRF
+MT(D"B/6D7&F,T)!KKR;&3,F(VAIC+NM:JU12V!I.)A.^,2*8B@^G"!WOF_)&
+MZZB65,8<.(SBT2B16I.KHG'?C\-NZVN)G]UJ/@S=JY0:A_X_JQR5D:X=YFO9
+MVH:B5*8EWFA!>"8(\0R#0V`4FK_R&Y7KJ=7H1\=62/(/T&%84C;5T4BE/5!7
+MBMH48\/'#1:)PA]RB78!/>2G6'X"4$L'"&]5>:DX`0``?00``%!+`0(4`!0`
+M`````/0V\C+AI3$Y'@```!X````(``````````````````````!M:6UE='EP
+M95!+`0(4`!0``````/0V\C(````````````````0`````````````````$0`
+M``!#;VYF:6=U<F%T:6]N<S(O4$L!`A0`%```````]#;R,@``````````````
+M``D`````````````````<@```%!I8W1U<F5S+U!+`0(4`!0`"``(`/0V\C+^
+MX\VQ(P```%<````,`````````````````)D```!L87EO=70M8V%C:&502P$"
+M%``4``@`"`#T-O(R6:`VZUP5```/OP$`"P````````````````#V````8V]N
+M=&5N="YX;6Q02P$"%``4``@`"`#T-O(R*<`!I:H&``">'0``"@``````````
+M``````"+%@``<W1Y;&5S+GAM;%!+`0(4`!0``````/0V\C*S='UIEP,``)<#
+M```(`````````````````&T=``!M971A+GAM;%!+`0(4`!0`"``(`/0V\C*U
+M;Y\WR!0```D5```8`````````````````"HA``!4:'5M8FYA:6QS+W1H=6UB
+M;F%I;"YP;F=02P$"%``4``@`"`#T-O(R%R5V%@H%``#L&@``#```````````
+M```````X-@``<V5T=&EN9W,N>&UL4$L!`A0`%``(``@`]#;R,F]5>:DX`0``
+M?00``!4`````````````````?#L``$U%5$$M24Y&+VUA;FEF97-T+GAM;%!+
+4!08`````"@`*`$\"``#W/```````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/mono.txt
+++ openoffice.org-2.4.1/ooo-build/doc/mono.txt
@@ -0,0 +1,413 @@
+Notes on Mono integration
+
+Building the Mono UNO bridge
+============================
+
++ configure with --enable-mono
++ ./download
++ You absolutely need mono >= 1.1.6
+
++ Test with demo programs:
+
+  cd odk/examples/CLI/CSharp/Spreadsheet
+  mcs ViewSample.cs SpreadsheetDocHelper.cs  -r:../../../../../cli_ure/unxlngi6.pro/bin/cli_basetypes.dll  -r:../../../../../cli_ure/unxlngi6.pro/bin/cli_types.dll -r:../../../../../cli_ure/unxlngi6.pro/bin/cli_cppuhelper.dll -r:../../../../../cli_ure/unxlngi6.pro/bin/cli_ure.dll
+
+  # To compile SpreadsheetSample.cs, you need mcs from mono 1.1.6 or
+  # later, the others can be compiled with older mcs.
+
+  mono ViewSample.exe
+
+
+Notes on the Mono UNO bridge
+============================
+
++ What works already?
+
+    + "A little bit of everything" :-/
+
+    + The ViewSample.cs which seems to work does:
+        + get initial ComponentContext using bootstrap (i.e.
+	  get a UNO interface wrapped in Mono object)
+	+ test wrapped UNO objects for implented interfaces.
+	+ call methods on Mono objects, parameters and return values
+	  are mapped to/from UNO (numbers, strings, anies, structs,
+	  inherited structs)
+	+ pass a Mono implementation of a UNO interface
+	  (XRangeSelectionListener) to UNO (i.e. wrap a Mono object in
+	  a UNO interface)
+
+    + The other two spreadsheet examples need Mono >= 1.1.8.3.
+
+    + testtools has a "bridgetest" for various bridges, also for cli.
+      Works with Mono >= 1.1.8.3
+
++ What doesn't work/What's missing?
+
+    + lots of FIXMEs near TypeDescription declarations: The
+      corresponding C++ code uses a wrapper class for automatic
+      acquire/release. The C# code doesn't and leaks TypeDescriptions
+
+    + lots of FIXMEs in switch default: cases, after null checks:
+      consistent error handling is missing here.
+
+    + Exception handling is untested. (Catching UNO exceptions in Mono,
+      throwing Mono exceptions to UNO)
+
+    + The reference counting for uno_Interfaces isn't correct. Rebuild
+      cppu with debug=true to get statistics when UNO shuts down.
+
++ New source files:
+
+    + cli_ure/source/bootstrap/* provide cppuhelper wrappers,
+      analogous to cli_ure/source/native. The use of mono_gchandle_new
+      in bootstrap/native_glue.cxx seems ugly.
+
+    + bridges/source/mono_uno/* the Mono bridge. Ported from
+      briges/source/cli_uno C++ code to C# and very thin C++
+      glue. Most of the C# is translated statement by statement.
+      [ Tried to use C# coding style and not use cli_uno's
+      namespace. But failed sometimes ]
+
++ How do the wrappers work:
+
+    + UnoProxy, wrapper for UNO objects that are used in Mono land
+
+        + Uses Remoting, inherits RealProxy, i.e. all casts are 
+	  checked with CanCastTo, all method invocations go through Invoke.
+	  Almost statement by statement translation of UnoInterfaceProxy
+	  from cli_uno's cli_proxy.cxx
+
+    + MonoProxy, wrapper for Mono objects that are sent to UNO
+
+        + Essentially the required function pointers (for uno_Interface)
+	  and a GC handle for a ManagedProxy. Uses mono api to call
+	  ManagedProxy methods
+	  
+	+ ManagedProxy is the translation of cli_uno's CliProxy.
+
++ What about the precompiled dll: It contains the CLI representations
+  of structs, exceptions, enums, interfaces, etc. of udkapi and offapi.
+
+  It was generated using climaker (see notes below). How to port that:
+
+    + completely port it to C# and use the Mono UNO bridge. This would
+      cause circular dependencies (cli_types.dll is needed to build
+      the bridge) or:
+
+    + Look at cilc (comes with mono) to make a C wrapper for
+      Reflection.Emit and port the bytecode generation in climaker to
+      use that.
+
++ Can I use Mono to write add-ins for OOo? No, there's no "component
+  loader" for Mono yet. Not even for the Windows .Net Bridge.
+
+
+Notes on the Windows dot Net bridge
+===================================
+
++ Work from cli_ure
+    + de-louse prj/build.lst dependencies
+        + check for MCS in config_office/configure.in, util/makefile.pmk
+        + rename csc -> $(CSC) & set it up right.
+            + mcs can't cope with '-o'
+                  ** We should switch to -optimize instead. **
+        + rene has a patch for this
+          http://people.debian.org/~rene/openoffice.org/mono.diff
+
+    + All(?) the C++ here is managed C++ (CFLAGS contains -clr)
+
++ cli_ure/source/basetypes/uno
+    + C# implementations according to
+      http://udk.openoffice.org/common/man/draft/uno_dotnet_typemapping.html
+      of uno.Any
+    + Contrary to that specification, there is no MethodAttribute, but
+      separate custom attributes for
+        + Bound (UNO) attributes, (i.e. properties)
+        + Exceptions that methods may throw
+        + Oneway methods
+    + PolymorphicType, TypeParameters Attribute (for classes), TypeArguments
+      Attribute (for fields in classes with TypeParameters) to emulate UNO
+      structs with type arguments.
+    + compiles with msc without problems
+
++ cli_ure/source/climaker
+    + takes one or more uno registry files (.rdb) and emits an assembly
+      containing the mapped types, mapped according to:
+      http://udk.openoffice.org/common/man/draft/uno_dotnet_typemapping.html
+    + output looks like
+      http://udk.openoffice.org/cli/download/CLI-UNO.zip - cli_types.dll
+    + uses System.Reflection.Emit to build the assembly
+    + uses the native C++ UNO binding to read the registry files and for
+      reflection of UNO types
+    + uses native C++ to be able to use OUString
+    + Tests in cli_ure/tests/climaker
+
++ cli_ure/source/native
+    + produces cli_cppuhelper.dll as found in CLI-UNO.zip
+    + "Provides bootstrapping code to bootstrap native UNO"
+    + native_share.h:
+        + to_cli
+            + get a mapping <compiler's c++ abi>->cli (uses the uno2cli
+              mapping impl. in the cli_uno bridge)
+            + it uses the C++ wrapper Mapping which consists entirely of
+              inline functions that use the C uno_Mapping
+            + get the CLI proxy
+            + extracts the object reference from the returned GCHandle
+        + to_uno -- unused (!)
+            + get a mapping cli-><compiler's c++ abi>
+            + wrap the object reference in a new GCHandle
+            + get the C++ proxy
+            + wrap it in com::sun::star::uno::Reference < T >
+    + native_bootstrap.cxx:
+        + implementation of defaultBootstrap_InitialComponentContext as used
+          in cli_language_binding.sxw from CLI-UNO.zip
+        + uses cppuhelper's C++ native defaultBootstrap_InitialComponentContext
+        + then uses to_cli to make a cli proxy for the component context
+        + some Windows delayLoadHook thing
+    + this is an easy? candidate for rewriting in C#, with P/Invokable glue
+      for cppuhelper's defaultBootstrap_InitialComponentContext.
+    + (Java uses jni but also cppuhelper; apparently cppuhelper has the only
+      implementation of defaultBootstrap...;
+      javaunohelper/source/bootstrap.cxx)
+
++ cli_ure/source/ure/uno/util
+    + C# Implementation cli_ure.dll from CLI-UNO.zip
+    + "Contains helper classes which are useful for implementing UNO interfaces.
+      Types from this assembly are not necessarily used"
+    + WeakAdapter, WeakComponentBase: description in cli_language_binding.sxw
+    + WeakBase: base class for WeakComponentBase
+    + DisposeGuard: IDisposable, "Helper class to conveniently auto dispose
+      UNO objects from within managed code."
+    + depends on cli_types.dll, otherwise this should be no problem for mcs
+
++ cli_ure/unotypes
+    + use climaker to generate cli_types.dll as found in CLI-UNO.zip
+
++ cli_ure/util
+    + Makefile snippets
+    + uses -o in CSCFLAGS
+
++ cli_ure/workbench/dynload/dynload.cs
+    + a test program for Bootstrap / cli_cppuhelper?
+
++ bridges/source/cli_uno/*
+
+    + cli_bridge.h -- forked from jni_bridge.h
+        + struct Mapping : public uno_Mapping { Bridge* m_bridge; };
+            - uno_Mapping is a C struct
+            - m_bridge: pointer to the real implementation
+
+    + cli_bridge.cxx
+        + uno_initEnvironment
+            - installs cli_env_disposing callback (called before the env is destroyed)
+            - nulls pExtEnv (would be "interface registration functionality, if supported")
+            - could be used to start mono -- the java bridge doesn't init its jvm here.
+	      Instead of setting pContext here, it's comes from the 3rd parameter of
+	      uno_getEnvironment, called (using JNI) in
+	      com.sun.star.comp.helper.Bootstrap.cppuhelper_bootstrap and in
+	      com.sun.star.comp.helper.RegistryServiceFactory.createRegistryServiceFactory
+        
+        + uno_ext_getMapping
+            - "is called by the UNO runtime to get the mappings for both directions"
+            - ppMapping: [inout] parameter to contain the (new) mapping
+            - pFrom, pTo: envs to map between
+            - test their type names for being {"cli", "uno"}
+            - construct a Bridge (cli-env, uno-env, <direction is cli -> uno?>)
+        
+        + Mapping_acquire, Mapping_release: call the corresponding Bridge methods
+        
+        + Bridge_free: delete the Bridge
+        
+        + Mapping_cli2uno
+            - implementation of mapInterface for the cli2uno Mapping
+            - Parameters:
+                - mapping - the mapping
+                - ppOut   - [inout] destination interface; existing interfaces are released
+                - pIn     - source interface (in the cli environment)
+                - td      - type description of the interface
+            - cliObj = GCHandle::op_Explicit((intptr_t)pIn).Target: the object reference stored in pIn
+            - bridge->map_cli2uno(cliObj, td) -- implementation in cli_data.cxx
+        
+        + Mapping_uno2cli
+            - implementation of mapInterface for the uno2cli mapping
+            - free ppOut if not NULL
+            - bridge->map_uno2cli((uno_Interface *)pIn, td) -- in cli_data.cxx
+            - wrap the resulting object reference in a GCHandle, return as a pointer
+        
+        + Mapping_uno2cli and Mapping_cli2uno contain managed-unmanaged transitions IIUC
+
+    + cli_data.cxx
+        + map_uno2cli: get the mapped type, try to get the Proxy from
+	  the Cli_environment and add new interfaces to the Proxy if
+	  necessary, if there is no existing proxy, make a new one.
+	+ map_cli2uno: get the UNO proxy from the uno_Environment (C-API),
+	  create a CliProxy, return that.
+	+ loadCliType: load the mapped System.Type from a (climaker-produced)
+	  assembly (by name)
+	+ mapUnoType: take a typelib_TypeDescriptionReference and return a
+	  System.Type
+	+ mapCliType: the reverse
+
+    + cli_proxy.h, cli_proxy.cxx -- can be split into C and C# files in a straightforward way
+        + UnoInterfaceInfo (managed)
+            + stores a uno_Interface,
+              typelib_InterfaceTypeDescription of the uno_Interface,
+              the mapped cli type of the uno_Interface, the bridge
+            + accesses UNO only via the core C API
+        + UnoInterfaceProxy : public System.Runtime.Remoting.{Proxies.RealProxy,IRemotingTypeInfo}
+          (managed)
+            + proxy on the managed side
+            + CanCastTo uses C++ UNO: cssu::TypeDescription because that's a Smart Pointer
+            + CanCastTo calls XInterface::queryInterface via helpers and binary uno
+            + invokeObject: impl. helper for Invoke of System.Object methods
+            + RealProxy::Invoke implementation
+        + CliProxy : public uno_Interface
+            + proxy on the native side
+            + keeps a list of all MethodInfos of the mapped type and its superclasses
+            + a mapping of method offsets in the UNO interface and in the array of
+              MethodInfos
+
+    + cli_uno.cxx
+        + Bridge::call_uno -- cli-callable wrapper for uno_Interface.pDispatcher
+        + Bridge::call_cli -- native-callable wrapper for System.Reflection.MethodInfo:Invoke
+
+    + cli_base.h
+        + string constants with type names (managed/CTS and unmanaged/C++)
+        + struct BridgeRuntimeError (thrown when error occur)
+        + an STL allocator using rtl
+        + a typelib_TypeDescription wrapper
+
+    + cli_environment
+        + holds a big string indexed threadsafe hashtable of all proxies
+	+ well, WeakReference holding the proxies
+	+ the keys (oids) consist of the proxy's HashCode, ";cli[0]", a GUID
+	  representing the Cli_environment type, optionally an UNO interface
+	  name
+
++ Decision
+    + should attempt to link to & map specifically to Mono
+        + ie. a new binding bridges/source/mono_uno/*
+        + since we have no 'managed C++' equivalent
+        + ergo, no point in doing slow C->Mono calls that
+          then call more 'standard' .Net calls to do
+          conversions/boxing etc.
+        + Just map as directly to Mono types / layout
+          as possible.
+
+    + Few hours later:
+        martink michael_: http://udk.openoffice.org/servlets/ReadMsg?list=dev&msgNo=2942
+        michael_ martink: it's a good point to try and re-write the bridge in C# :-)
+        michael_ martink: a much better plan in fact,
+        michael_ martink: bin my 'go-low-level-native' suggestion I guess;
+
++ misc. UNO places
+    + cppu/inc/uno/lbnames.h: #define UNO_LB_CLI "cli"
+      [LB = language binding]
+    + cppu/source/uno/lbmap.cxx: implements uno_getMapping, loading/unloading of
+      bridges etc.
+    + cppuhelper/source/shlib.cxx in cws_srx644_cliuno01 has #ifdef CLI_PLATFORM
+      a CLI component loader?
+    + testtools/source/bridgetest/cli
+    + cppuhelper/source/exc_thrower.cxx: implements a uno interface using the
+      C interface
+
++ Mono notes
+    + mono_gchandle_new etc. is native glue for System.GCHandles 
+
++ JNI bridge notes
+    + a JNI_type_info is a wrapper around a jclass that has a destruct method
+      to do jni_env->DeleteGlobalRef on the jclass
+    + a JNI_interface_type_info is a JNI_type_info + array of jmethodIDs + ...
+    + bridge->m_jni_info is a JNI_info (jni_info.h) that maps TypeDescriptions
+      to JNI_type_infos
+
++ UNO links
+
+    + http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.htm
+        + UNO concepts
+
+    + http://udk.openoffice.org/common/man/bridge.html
+        + Bridge
+        + Proxy - client side
+        + Stub - server side
+        + (c) 2001, mentions msvc 4.2, egcs; but RCS id says 2004
+
+    + http://api.openoffice.org/docs/DevelopersGuide/AdvancedUNO/AdvancedUNO.htm
+        + "Advanced UNO"
+        + "Implementing UNO Language Bindings"
+        + Milestones for bridge writing:
+            + Unidirectional mapping (call UNO from your language, remote
+               controlling the office)
+            + limited Bidirectional (can implement UNO interfaces, e.g.
+               Listeners)
+            + Bidirectional, with ComponentLoader (can implement UNO components
+              that the Global Service Manager can instantiate)
+              Not (yet?) possible with CLI-UNO, according to
+              cli_language_binding.sxw Chapter 8.
+
+    + http://udk.openoffice.org/cpp/man/cpp_bridges.html
+        + Implementing a C++-UNO-bridge
+        + Some overlap with the previous link
+        + "Environment" cppu/inc/environment.h
+            - one per programming language or compiler
+            - e.g. gcc3, cli
+            - uno environment
+        + "Mapping" cppu/inc/mapping.h
+            - way to publish an interface into another environment
+            - a mapped interface is called a proxy
+        + "Bridge"
+            - infrastructure for exchanging interfaces between two envs
+            - bidirectional, i.e. one mapping for each direction
+
+    + http://udk.openoffice.org/cli/download/CLI-UNO.zip
+        + contains cli_language_binding.sxw
+
+testtool problems
+=================
+
+Apply patches/test/mono-testtools.diff
+
+It seems we're failing to bootstrap UNO; we have to
+export the contents of unxlngi6.pro/lib/cli_bridgetest_inprocess.ini:
+
+[Bootstrap]
+UNO_TYPES=$SYSBINDIR/uno_types.rdb
+UNO_SERVICES=$SYSBINDIR/uno_services.rdb
+
+which helps. 
+
+The bootstrapping code in:
+
+sal/rtl/source/bootstrap.cxx uses 'getExecutableFile_Impl'
+-> sal/osl/unx/source/process_impl.cxx (osl_bootstrap_getExecutableFile_Impl)
+   -> grabs 'main' symbol, 
+
+It may help to copy the mono binary locally to execute - since
+a number of tasks do nasties with dlsym(main) -> where did main
+come from.
+
+There really is some disgraceful bootstrapping problem lurking in here.
+Replacing the .ini file with simply:
+
+[Bootstrap]
+UNO_TYPES=uno_types.rdb
+UNO_SERVICES=uno_services.rdb
+
+yields some success ...
+
+We also need (eg.) 'libsal.so' and this symlink is made only on
+install: => add {install}/program to the LD_LIBRARY_PATH.
+
+With more fixing we get:
+
+CallUno member 'com.sun.star.lang.XMain::run'
+Map parameter 0 '[]string'
+dispatch 0x83abdb0
+Thread attach, invoke 'com.sun.star.bridges.mono_uno.ManagedProxy:Dispatch (uno.Typelib.TypeDescription*,void*,void**,uno.Binary.Any**)'
+exception occured: cannot get test object!
+
+testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs:
+    xClient.run(
+	new String [] {
+	"com.sun.star.test.bridge.cli_uno.CsTestObject" } );
+    
--- openoffice.org-2.4.1.orig/ooo-build/doc/disabled-files.txt
+++ openoffice.org-2.4.1/ooo-build/doc/disabled-files.txt
@@ -0,0 +1,128 @@
+This file describes why some files are not installed by ooo-build although
+they are included in the original RPMs available at http://openoffice.org.
+It can help when checking for files that are missing by mistake.
+
+A strange link /etc/openoffice.org-1.9 -> /opt/openoffice.org-1.9 is created
+by the original -suse and -redhat subpackages. I don't know what it is good
+for:
+/etc/openoffice.org-1.9
+
+Files removed by --disable-binfilter:
+program/legacy_binfilters.rdb
+program/libbf_frm680li.so
+program/libbf_lng680li.so
+program/libbf_migratefilter680li.so
+program/libbf_ofa680li.so
+program/libbf_sc680li.so
+program/libbf_sd680li.so
+program/libbf_sch680li.so
+program/libbf_sm680li.so
+program/libbf_svx680li.so
+program/libbf_sw680li.so
+program/libbf_wrapper680li.so
+program/libbf_xo680li.so
+program/libbindet680li.so
+program/liblegacy_binfilters680li.so
+program/resource/bf_frm680en-US.res
+program/resource/bf_ofa680en-US.res
+program/resource/bf_sc680en-US.res
+program/resource/bf_sd680en-US.res
+program/resource/bf_sfx680en-US.res
+program/resource/bf_sch680en-US.res
+program/resource/bf_sm680en-US.res
+program/resource/bf_svx680en-US.res
+program/resource/bf_sw680en-US.res
+
+Files removed by --with-system-stdlibs:
+program/libstdc++.so.6
+
+File removed by --disable-crashdump:
+program/crash_report
+program/crash_report.bin
+
+Files removed by --with-system-libxml
+program/libxml2.so
+program/libxml2.so.2
+program/libxml2.so.2.6.17
+
+The files removed by --with-system-mozilla (The list of files can be compared
+by moz/zipped/LINUXGCC*.zip):
+program/components
+program/components/addrbook.xpt	
+program/components/compreg.dat
+program/components/libaddrbook.so
+program/components/libi18n.so
+program/components/libmork.so
+program/components/libmozldap.so
+program/components/libnecko.so
+program/components/libpipnss.so
+program/components/libpref.so
+program/components/libprofile.so
+program/components/librdf.so
+program/components/libuconv.so
+program/components/libvcard.so
+program/components/libxpcom_compat_c.so
+program/components/libxpconnect.so
+program/components/mozldap.xpt
+program/components/necko_dns.xpt
+program/components/xpcom_base.xpt
+program/components/xpcom_components.xpt
+program/components/xpcom_ds.xpt
+program/components/xpcom_io.xpt
+program/components/xpcom_obsolete.xpt
+program/components/xpcom_threads.xpt
+program/components/xpcom_xpti.xpt
+program/components/xpti.dat
+program/components/xptitemp.dat
+program/defaults
+program/defaults/autoconfig
+program/defaults/autoconfig/platform.js
+program/defaults/autoconfig/prefcalls.js
+program/defaults/pref
+program/defaults/pref/browser-prefs.js
+program/defaults/pref/mailnews.js
+program/defaults/pref/mdn.js
+program/defaults/pref/smime.js
+program/greprefs
+program/greprefs/all.js
+program/greprefs/security-prefs.js
+program/libldap50.so
+program/libmozjs.so
+program/libmozz.so
+program/libmsgbaseutil.so
+program/libnspr4.so
+program/libnss3.so
+program/libplc4.so
+program/libplds4.so
+program/libprldap50.so
+program/libsmime3.so
+program/libsoftokn3.so
+program/libssl3.so
+program/libxpcom_compat.so
+program/libxpcom.so
+
+# FIXME: temporary hack; see buildfix-disable-mozab.diff
+program/libmozabdrv2.so
+program/libmozab2.so
+
+# FIXME: These two libraries are available only in the OOo native packages;
+  they are neither removed neither disabled in our sources. I am mixed.
+program/libportaudio.so
+program/libportaudio.so.0
+program/libportaudio.so.0.0.18
+program/libsndfile.so
+program/libsndfile.so.1
+program/libsndfile.so.1.0.9
+
+Files removed by --with-system-python:
+/usr/lib/ooo-2.0/program/python-core-2.3.4/*
+program/libpython2.3.so.1.0
+program/python.sh
+
+# FIXME: 
+File -> Wizards -> Install new dictionaries...
+File -> Wizards -> Install fonts from the web...
+do not work without these files. The menu entries should be removed
+togeter with these files [n#74249]:
+share/dict/ooo/DicOOo.sxw
+share/dict/ooo/FontOOo.sxw
--- openoffice.org-2.4.1.orig/ooo-build/doc/font-render.txt
+++ openoffice.org-2.4.1/ooo-build/doc/font-render.txt
@@ -0,0 +1,155 @@
+* Making font rendering identical across OO.o / Gtk+ et. al.
+
+
+** We're missing gui-ft-set-hint.patch from 1.1.x
+   + but not the whole story,
+   + we never followed the font settings ...
+
+pangoft2.c (pango_ft2_font_get_face):
+    + sets ft2font->load_flags:
+      ft2font->load_flags = 0;
+      if (antialias)
+        ft2font->load_flags |= FT_LOAD_NO_BITMAP;
+      else
+	ft2font->load_flags |= FT_LOAD_TARGET_MONO;
+      if (!hinting)
+        ft2font->load_flags |= FT_LOAD_NO_HINTING;
+      if (autohint)
+        ft2font->load_flags |= FT_LOAD_FORCE_AUTOHINT;
+
+    + where these booleans are from fontconfig (apparently):
+  pattern = fcfont->font_pattern;
+      if (FcPatternGetBool (pattern,
+                            FC_ANTIALIAS, 0, &antialias) != FcResultMatch)
+	antialias = FcTrue;
+
+    + We use the load_flags in:
+	pango_ft2_font_get_glyph_info ->
+	pangofc-font.c (pango_fc_font_get_raw_extents):
+	    -> (get_per_char):
+		+ FT_Load_Glyph ...
+
+    + Also to render in:
+	+ pangoft2-render.c (pango_ft2_font_render_glyph):
+	FT_Load_Glyph (face, glyph_index, ft2font->load_flags);
+	FT_Render_Glyph (face->glyph,
+		       (ft2font->load_flags & FT_LOAD_TARGET_MONO ?
+			ft_render_mode_mono : ft_render_mode_normal));
+
+
+** XSettings infrastructure:
+
+    + from gtk+/gdk/x11/*settings*
+    + to gtk+/gdk/gtksettings.c - where we get a property change
+	+ GtkSettings *settings = gtk_settings_get_for_screen (gdk_drawable_get_screen (event->window));
+	+ just calls: gtk_rc_reset_styles ...
+
+    + gnome-control-center's font capplet sets gconf keys
+	+ gnome-settings-daemon syncs them to xsettings
+	    + xrdb -query: shows all settings.
+
+      xsettings_manager_set_int (managers [i], "Xft/Antialias", settings->antialias);
+      xsettings_manager_set_int (managers [i], "Xft/Hinting", settings->hinting);
+      xsettings_manager_set_string (managers [i], "Xft/HintStyle", settings->hintstyle);
+      xsettings_manager_set_int (managers [i], "Xft/DPI", settings->dpi);
+      xsettings_manager_set_string (managers [i], "Xft/RGBA", settings->rgba);
+
+
+** Not using Xft ? - just ft2 (?)
+    + gedit2 seems to have both pangoxft and pangoft2 linked (oddly) 
+
+
+** Another piece:
+    + init_xft_settings (GdkScreen *screen):
+	+ sets screen_x11->xft_antialias etc.
+	+ does it once only ? xft_init ?
+    + got from _gdk_x11_xft_setting
+	+ called from gdk_screen_get_setting
+	    + "gtk-xft-antialias" eg.
+
+** Are we using Cario to render text ?
+    + if so - we're loading & linking
+	(pango): pangox, pangoft2, pangocairo, pangoxft
+
+
+** Hacking OO.o:
+    + vcl/source/glyphs/gcach_ftyp.cxx:
+	+ only caller of FT_Load_Glyph
+	+ only caller of FT_Glyph_To_Bitmap
+	    + cf. pango_ft2_font_render_glyph's FT_Render_Glyph
+	    + [ same approach at root ]
+	+ *all* in FreetypeServerFont sub-class
+
+    + => need a helper object to store / sync the Xft.	
+      settings state, updated on XSettings (style change)
+      update [ prolly should be more discerning wrt.
+               settings changed / gui updates ]
+	     [ or at least stop the toolbar re-building
+	       slowly unless absolutely necessary ]
+
+    + mask the 'flags' with the system state for the glyphs
+      before we load/render ( in various places ).
+
+    + Need to punch through to the platform backend to get the
+      font / render settings:
+	+ vcl/inc/glyphcache.hxx (ServerFont):
+	+ vcl/inc/settings.hxx
+	    + ScreenOptions ?
+	+ GetAntialiasingMinPixelHeight used in:
+	    + vcl/source/gdi/outdev3.cxx (ImplInitFont)
+		+ -> mpGraphics->SetFont
+		+ set 'FreetypeServerFont::GetAntialiasAdvice'
+		    + vcl/unx/source/gdi/gcach_xpeer.cxx
+			-> bool ForcedAntialiasing
+			    + salgdi3: DrawServerSimpeFontString
+			      vs. DrawServerAAForcedString
+		    + rendering done by:
+			aX11GlyphPeer.GetPixmap()
+		    + from glyphcache.cxx: rServerFont.GetGlyphData (nIndex)
+
+    + How much data do we need to extract & pass ?
+	+ a) How to extract this from Cairo / gtk+
+	    + use the GtkSettings object & g_object_get,
+	    + instead of XGetDefault
+		+ cf. cairo-ft-font.c (_get_options_load_flags)
+	    + The cairo rendering is substantially more powerful-   
+	      pwrt. LCD / sub-pixel ordering etc. [ improving on
+	      Xft2 seemingly ]
+
+	+ b) Propagating those settings to the actual render ?
+
+	+ just 1 long to FT_Load_Glyph / FT_Render_Glyph ?
+	    + Smoothing: None, Grayscale, Subpixel
+	    + Hinting: none, slight, medium, full
+	    + Subpixel order: RGB, VRGB, BGR, VBGR
+
+    + [ How does sub-pixel positioning work ? ]
+
+    + Removing the FT_LOAD_TARET_LIGHT makes it
+      rather different; ie. ~not the same even at
+      'Best shapes' => why !?
+
+** QA:
+    
+    + 'Best shapes' - identical ... - HINT_MEDIUM
+    + 'Monochrome' - not monochrome
+		   - with 'no AA below <massive>' setting
+			+ better, but OO.o 'narrower'
+    + 'Best contrast' - HINT_FULL
+	    - different / no-change
+
+    + Tools->Options 'Screen font anti-aliasing' has no effect.
+
+Generated render flags of 0x10008 - Best shapes
+Generated render flags of 0x8 - Best contrast
+
+** Font rendering uses:
+	FreetypeServerFont::GetGlyphBitmap8 [ 2nd FT_Load_Glyph ]	
+and	FreetypeServerFont::InitGlyphData [ 2nd FT_Load_Glyph ]
+
+	+ seems to be cached ... - cache not flushed on settings change.
+
+** URGH - not possible **
+
+    + screws with font layout / sizing information...
+	=> knackers in documents (?)
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/README
+++ openoffice.org-2.4.1/ooo-build/doc/README
@@ -0,0 +1,12 @@
+Some random development-style thoughts / documents on OO.o
+
+accessibility.txt:     notes on gnome/a11y code.
+announce.txt:          base announcement E-mail for new releases
+alpha-rework.txt:      notes on nicely alpha blended icons
+cuckooo.txt:           outline notes on this, & Java samples.
+layout-overview.txt:   notes on adding layout to VCL
+print-integration.txt: notes on printing integration.
+...
+
+This lives at:
+	http://svn.gnome.org/svn/ooo-build/trunk/doc/
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/file-open.txt
+++ openoffice.org-2.4.1/ooo-build/doc/file-open.txt
@@ -0,0 +1,55 @@
+* The File/Open dialog gets invoked in
+  sfx2/source/appl/appopen.cxx:994 (sfx2::FileOpenDialog_Impl)
+
+* See also sfx2/source/appl/appopen.cxx:1130;
+  TypeDetection->queryTypeByURL() and then SfxFilterMatcher
+
+* SfxFilterMatcher is in sfx2/inc/fcontnr.hxx and
+  sfx2/source/bastyp/fltfnc.cxx
+
+* Interesting stack trace when opening a file --- so the filter stuff
+  is not in FileOpenDialog_Impl:
+
+#0  0x40bb4985 in gnome_vfs_directory_open_from_uri () from /usr/lib/libgnomevfs-2.so.0
+#1  0x405cb0fb in osl_openDirectory () from /oo/install/program/libsal.so.3
+#2  0x43901c86 in fileaccess::XResultSet_impl::XResultSet_impl(fileaccess::shell*, rtl::OUString const&, long, com::sun::star::uno::Sequence<com::sun::star::beans::Property> const&, com::sun::star::uno::Sequence<com::sun::star::ucb::NumberedSortingInfo> const&) () from /oo/install/program/libucpfile1.so
+#3  0x438e9c97 in fileaccess::shell::ls(long, rtl::OUString const&, long, com::sun::star::uno::Sequence<com::sun::star::beans::Property> const&, com::sun::star::uno::Sequence<com::sun::star::ucb::NumberedSortingInfo> const&) ()
+   from /oo/install/program/libucpfile1.so
+#4  0x438dc28a in fileaccess::BaseContent::open(long, com::sun::star::ucb::OpenCommandArgument2 const&) ()
+   from /oo/install/program/libucpfile1.so
+#5  0x438d8102 in fileaccess::BaseContent::execute(com::sun::star::ucb::Command const&, long, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) () from /oo/install/program/libucpfile1.so
+#6  0x4080eb2c in ucb::Content_Impl::executeCommand(com::sun::star::ucb::Command const&) ()
+   from /oo/install/program/libucbhelper1gcc3.so
+#7  0x4080902d in ucb::Content::createCursor(com::sun::star::uno::Sequence<rtl::OUString> const&, ucb::ResultSetInclude) () from /oo/install/program/libucbhelper1gcc3.so
+#8  0x48252def in ScGlobal::InitAddIns() () from /oo/install/program/libsc641li.so
+#9  0x482495a4 in ScGlobal::Init() () from /oo/install/program/libsc641li.so
+#10 0x47f283ad in ScDLL::Init() () from /oo/install/program/libsc641li.so
+#11 0x47f42a7b in InitScDll () from /oo/install/program/libsc641li.so
+#12 0x4394aef2 in LoadLibSc() () from /oo/install/program/libwrp641li.so
+#13 0x4394af76 in GetFuncSc(char const*) () from /oo/install/program/libwrp641li.so
+#14 0x4394b212 in CreateObjScDocShellLib(int) () from /oo/install/program/libwrp641li.so
+#15 0x4394b24d in ScDocShell::CreateObject(SfxObjectCreateMode) () from /oo/install/program/libwrp641li.so
+#16 0x445b10b6 in SfxObjectFactory::CreateObject(SfxObjectCreateMode) const () from /oo/install/program/libsfx641li.so
+#17 0x4451f93d in LoadEnvironment_Impl::Load(SfxObjectFactory const*) () from /oo/install/program/libsfx641li.so
+#18 0x445217d0 in LoadEnvironment_Impl::LoadDataAvailable() () from /oo/install/program/libsfx641li.so
+#19 0x44521980 in LoadEnvironment_Impl::LoadDataAvailable() () from /oo/install/program/libsfx641li.so
+#20 0x4451f1fe in LoadEnvironment_Impl::Start() () from /oo/install/program/libsfx641li.so
+#21 0x445ea538 in SfxFrameLoader::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) () from /oo/install/program/libsfx641li.so
+#22 0x4567154a in framework::BaseDispatcher::implts_loadIt(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, com::sun::star::uno::Any const&) () from /oo/install/program/libfwk641li.so
+#23 0x45678de7 in framework::BlankDispatcher::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) () from /oo/install/program/libfwk641li.so
+#24 0x444e88d8 in SfxApplication::OpenDocExec_Impl(SfxRequest&) (this=0x43929ba0, rReq=@0x47c16098)
+    at /home/oo/build/unknown/OOO_1_0_2/sfx2/source/appl/appopen.cxx:1332
+#25 0x444eef1e in SfxStubSfxApplicationOpenDocExec_Impl(SfxShell*, SfxRequest&) ()
+   from /oo/install/program/libsfx641li.so
+
+* From frame 21 above; sfx2/source/view/frmload.cxx:190
+  SfxFrameLoader::load(); it picks up the arguments including the
+  filter name.  But if the filter name is not specified, it uses the
+  type name to figure things out at line 245.  See also
+  sfx2/source/appl/appopen.cxx:1130 --- this is where the type name
+  gets queried and later mapped to a filter with
+  aFilter.GetFilter4EA() (what does 4EA mean?).
+
+* Autodetection has to happen upwards from frame 21; see
+  frmload.cxx:248 --- it expects that something did autodetection
+  before.  So maybe we should just copy&paste from appopen.cxx...?
--- openoffice.org-2.4.1.orig/ooo-build/doc/sd-lines.txt
+++ openoffice.org-2.4.1/ooo-build/doc/sd-lines.txt
@@ -0,0 +1,50 @@
+Chasing broken line problem:
+	svx/source/svdraw/svdoedge.cxx:
+	    + DoPaintObject - draws only to the XOutputDevice
+	svx/source/xoutdev/xout.cxx
+	    + pure OutputDevice target, no virtual methods.
+
+    + It seems this is rendering it in the presentation too.
+
+    + In fact the broken rendering is in:
+	+ svdobj.cxx (ImpDrawLineGeometry)
+	    + doing polygon clipping - but not related to libart vs. internal.
+
+    + ImpDrawLineGeometry
+	    -> SvtGraphicsStroke ( for metafile )
+
+	    + bug only affects non-transparent lines
+	    + bug only affects 0.0 width lines
+	    
+	    + Geometry pre-prepared by:
+		svdobj.cxx (ImpPrepareLineGeometry)
+
+	+ Rendering: 
+	    + Exactly the same paths for on-screen & slide-show
+	    + seemingly the same lines ...
+		+ must be wrapped up in the aLinePolyPolygon setup...
+
+    ImpPrepareLineGeometry:
+	-> CreateLinePoly
+	    + clobbering bForceOnePixel - not the sol'n.
+	    + creates SdrLineGeometry:
+		    + just a holding struct for these parameters.
+	    + Size is always 0,0 - draft always false.
+		+ point count is perfect & unchanged for both rendering modes
+
+ERGO
+    + something really, really stupid has to be happening lower down the stack.
+
+	+ we draw _directly_ to the OutputDevice with:
+		rXOut.GetOutDev()->DrawPolyLine( rPoly );
+
+
+
+*** Hermenutical Key ***
+
+    + We render to a _Meta_ OutputDevice
+    + Then we re-render the outputdevice to the canvas.
+	+ cppcanvas/source/mtfrender/
+    + via.
+	+ MetaPolyLineAction
+    + new internal::PolyPolyAction()
--- openoffice.org-2.4.1.orig/ooo-build/doc/tray.txt
+++ openoffice.org-2.4.1/ooo-build/doc/tray.txt
@@ -0,0 +1,10 @@
+Systray impl. - in libegg/
+
+	+ get egg/tray ownership cleared up ...
+		+ can we JCA it ? for inclusion in OO.o ?
+		+ eggstatusicon.[ch] - owned by Sun anyway...
+		+ eggtrayicon.[ch] - owned by Andersca, MarkMc & small
+		  bits from HP. "jcape" also ...
+		+ audit what's going on ...
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/sc-performance.txt
+++ openoffice.org-2.4.1/ooo-build/doc/sc-performance.txt
@@ -0,0 +1,59 @@
+very-slow calc loading:
+
++ SdrPaintView::ShowPagePgNum
+  + SdrPaintView::ShowPage
+    + SdrPageView::SdrPageView
+      + SdrPageView::AddWindowToPageView
+        + SdrPageView::ImpMakePageViewWinRec
+	  + SdrPageView::ImpInsertControl	84.68
+	    + UnoControlContainer::addControl	76.79
+	      + UnoListBoxControl::createPeer	57.88
+	        + UnoControl::createPeer	[ percentage breadown from here: 78.51 ]
+		  + VCLXToolkit::createWindow	  32.84
+		    + VCLXToolkit::ImplCreateWindow
+		      + Listbox::ListBox	    29.08
+Intrinsicly slow:	+ Listbox::ImplInit
+		  + UnoControl::updateFromModel	  30.98
+	      + Locking (?) etc.                14.28
+	    + SdrUnoControlList thrash/add/release etc.
+
+
+So the SdrPageView is responsible for adding
+   hundreds of invisible controls 4x over to the sheet.
+	+ svx/source/svdraw/svdpagv.cxx
+		(ImpInsertControl)
+    ** Should try-to re-design to construct control views on demand **
+
+Much of the ListBox construction pain:
+     + comes from the early construction of the child / popup window.
+	+ window creation / title setting etc. etc.
+	+ ImplListBoxFloatingWin (etc.)
+
+    ** should delay floating window (& as much as possible) to idle **
+    ** should filter pixmap rendering against the visible screen on OutputDevice
+       [ have proto-patch ] **
+
+UnoListBoxControl: toolkit/source/controls/unocontrols.cxx
+
+Hacking:
+    + ImpMakePageViewWinRec()
+	+ we need get (/ref?) all SdrObjects & whack them on a not-yet-visible list
+	+ we need to listen (via XWindowListener?)
+	  from 'SdrPageView' for view-pane movement
+		+ and update / use InsertControl & on-the-fly
+		  instantiate widgets.
+	+ 
+
+    
+    2 things to catch:
+      + view movement ...
+      + object movement ...
+
+
+
+ListBox:
+    + can we re-parent the mpImplLB & delay mpFloatWin creation.
+    + bin in-line 'IsDropDownBox' [ protected ]
+    + 
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/sc-info.txt
+++ openoffice.org-2.4.1/ooo-build/doc/sc-info.txt
@@ -0,0 +1,82 @@
+Expressions
+    - Stored as byte code (type 'OpCode')
+    - String -> internal translation happens in
+	sc/source/core/tool/compiler.cxx :
+	    ScTokenArray *ScCompiler::CompileString
+	or
+	    it can be constructed manually (eg for arrays)
+
+    - For xml export internal -> string happens in
+	    sc/source/core/data/cell2.cxx
+	    	ScFormulaCell::GetEnglishFormula
+	There is also a counterpart in ScCompiler
+	    sc/source/core/tool/compiler.cxx
+	    	ScCompiler::CreateStringFromTokenArray
+
+    - Builtin functions
+	: Stored internally as distinct opcodes (ick?)
+	: their parameter names and descriptions are stored in
+	    sc/source/ui/src/scfuncs.src
+	  which also includes an 'ExtraData' field that specifies
+	    * The function group
+	    * The HelpID ('hid')
+	    * number of arguments or VAR_ARGS
+	    * 0/1 to indicate if an argument is optional
+
+Cells
+    - contain a pointer to an ScTokenArray (not a ref)
+
+-----------------------------------------------------------------
+I/O 'Filters'
+    - List of filters seems hardcoded
+    - OASIS filter is in
+	sc/source/filter/xml
+	ScXMLExport
+
+-----------------------------------------------------------------
+Omitted Arguments
+    - DCOUNT	- field
+    - DCOUNTA	- field
+
+-----------------------------------------------------------------
+Useful enhancements
+    - row limit							(fixed in 2.0)
+    - ctrl click to add areas to the selection only works when
+      more than one cell is already selected			(fixed in 2.0)
+    - conditional fmts require style instead of inline tweaks	(non-trivial) 
+    - contains/not-contains for autofilter			(fixed in 2.0)
+    - no colour change for active autofilter			(not fixed, difficulty unknown)
+    - Allow '+' or '-' to start an expr				(not fixed, should not be too hard)
+    - Allow '*' to start an expr.				(need to prove this is correct)
+    - show filename rather than full path for open files.	(not too hard)
+    - Support A:A or 1:3 style referencing			(inprogress with R1C1)
+    - datapilot area resize
+    - macro work & help
+-----------------------------------------------------------------
+Misc
+- ACOSH
+     : (blank) == #NUM! not Err.502
+     : (1) == #NUM! not Err.502
+
+- ACOS
+    : (1.00000000000001) = #NUM! not #VALUE!
+    : (-1.00000000000001) = #NUM! not #VALUE!
+
+#include <iostream>
+#include <rtl/strbuf.hxx>
+static const sal_Char *dbg_dump(const rtl::OString &rStr)
+{
+    static rtl::OStringBuffer aStr;
+
+    aStr = rtl::OStringBuffer(rStr);
+    aStr.append(static_cast<char>(0));
+    return aStr.getStr();
+}
+static const sal_Char *dbg_dump(const rtl::OUString &rStr)
+{
+    return dbg_dump(rtl::OUStringToOString(rStr, RTL_TEXTENCODING_UTF8));
+}
+
+	std::cerr << dbg_dump (::rtl::OUString (rRange.aStart.GetColRowString())) << ":";
+	std::cerr << dbg_dump (::rtl::OUString (rRange.aEnd.GetColRowString()))
+			  << " stored with" << cur_index << "\n";
--- openoffice.org-2.4.1.orig/ooo-build/doc/macro-selector.txt
+++ openoffice.org-2.4.1/ooo-build/doc/macro-selector.txt
@@ -0,0 +1,23 @@
+Broken macro selector bugs ...
+
+svx/source/dialog/selector.hxx etc.   
+
+class SVX_DLLPUBLIC SvxScriptSelectorDialog :
+	public ModelessDialog
+{
+    SvxConfigGroupListBox_Impl aCategories;
+    SvxConfigFunctionListBox_Impl aCommands;
+
+	[ The 2 lists ]
+
++ 2 bugs:
+    + double click on 'Macro name' should activate 'Ok'
+	+ Is an SvTreeListBox ...
+	  + svtools/inc/svtreebx.hxx
+	  + svtools/source/contnr/svtreebx.cxx
+
+    + Should really store expansion state on the XBrowseNode
+	attribute[boolean] ExpandByDefault; (?)
+
+    + Who implements XBrowseNode (?)
+	+ 
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/widget-position-size.txt
+++ openoffice.org-2.4.1/ooo-build/doc/widget-position-size.txt
@@ -0,0 +1,37 @@
+The positions and sizes of "normal" widgets are defined in the .src files.
+For example, svtools/unxlngi4.pro/misc/dialogs//prnsetup.src:
+
+       FixedText FT_STATUS
+        {
+                Pos = MAP_APPFONT ( 12 , 29 ) ;
+                Size = MAP_APPFONT ( 45 , 10 ) ;
+                Text [ de ] = "Status" ;
+                Text [ en-US ] = "Status" ;
+                Text [ x-comment ] = " ";
+		[...]
+	};
+
+
+The wizards (written in java) has the position and the size of widgets
+hardcoded in the java sources. For example,
+wizards/com/sun/star/wizards/table/Finalizer.java:
+
+[...]
+String sStartFormWizard = CurUnoDialog.oResource.getResText(UIConsts.RID_TABLE + 39);
+[...]
+optStartFormWizard = CurUnoDialog.insertRadioButton("optStartFormWizard", null,
+      new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"},
+      new Object[] { UIConsts.INTEGERS[8], "HID:41243", sStartFormWizard, new Integer(101), new Integer(121),IFINALSTEP, new Short(curtabindex++), new Integer(160)}		  
+);
+[...]
+
+This code defines a radio button. The corresponding text is defined in a .src
+file. In this case, it is wizards/source/formwizard/dbwizres.src:
+
+String RID_DB_TABLE_WIZARD_START + 39
+{
+    Text [ de ] = "Ein Formular auf ~Basis dieser Tabelle erstellen";
+    Text [ en-US] = "C~reate a form based on this table";
+};
+
+The relation between the string the the java code is defined by the RID.
--- openoffice.org-2.4.1.orig/ooo-build/doc/callcatcher-oog680-m3.txt
+++ openoffice.org-2.4.1/ooo-build/doc/callcatcher-oog680-m3.txt
@@ -0,0 +1,11773 @@
+(anonymous namespace)::AdjustPosAndSize(Control&, Point&, long)
+(anonymous namespace)::ImpUndoDeleteWarning::ImpUndoDeleteWarning(Window*)
+(anonymous namespace)::IsFileURL(String const&)
+(anonymous namespace)::PreviewCreationRequest::CompareToken::CompareToken(int)
+(anonymous namespace)::PreviewCreationRequest::PreviewCreationRequest(int, int)
+(anonymous namespace)::TraceEventCode(int)
+(anonymous namespace)::VCLSettings::VCLSettings()
+(anonymous namespace)::_strensurelast(unsigned short*, unsigned short)
+(anonymous namespace)::checkNoTypeArguments(_STL::vector<rtl::OString, _STL::allocator<rtl::OString> > const&)
+(anonymous namespace)::getState(_STL::vector<cppcanvas::internal::OutDevState, _STL::allocator<cppcanvas::internal::OutDevState> > const&)
+(anonymous namespace)::lcl_ChartTypeIsMemberOfCooSys(com::sun::star::uno::Reference<com::sun::star::chart2::XCoordinateSystem> const&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartType> const&)
+(anonymous namespace)::lcl_DecoratedFilter(String const&)
+(anonymous namespace)::lcl_convertGraphicPosition(SvxGraphicPosition)
+(anonymous namespace)::lcl_convertGraphicPosition(com::sun::star::style::GraphicLocation)
+(anonymous namespace)::lcl_convertPaperFormat(SvxPaper)
+(anonymous namespace)::lcl_convertPaperFormat(com::sun::star::view::PaperFormat)
+(anonymous namespace)::lcl_getAxesHoldingCategoriesFromDiagram(com::sun::star::uno::Reference<com::sun::star::chart2::XDiagram> const&)
+(anonymous namespace)::lcl_getCategoriesFromTable(SchXMLTable const&, bool)
+(anonymous namespace)::lcl_getColor(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&)
+(anonymous namespace)::lcl_getSwappedArray(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<double> > const&)
+(anonymous namespace)::lcl_setNumberFormat(SvNumberFormatter*, long, double, String&)
+(anonymous namespace)::unoenv_getStaticOIdPart()
+(anonymous namespace)::update_recently_used_enabled()
+(anonymous namespace)::ustrcat(unsigned short const*, unsigned short*)
+(anonymous namespace)::ustrncpy(unsigned short const*, unsigned short*, unsigned int)
+(anonymous namespace)::writeU1(FileStream&, unsigned char)
+Accelerator::Call(KeyCode const&, unsigned short)
+Accelerator::Clear()
+Accelerator::EnableItem(KeyCode, unsigned char)
+Accelerator::EnableItem(unsigned short, unsigned char)
+Accelerator::GetAccel(KeyCode) const
+Accelerator::GetAccel(unsigned short) const
+Accelerator::GetItemId(KeyCode const&) const
+Accelerator::GetItemId(unsigned short) const
+Accelerator::GetItemKeyCode(unsigned short) const
+Accelerator::IsIdValid(unsigned short) const
+Accelerator::IsItemEnabled(KeyCode) const
+Accelerator::IsItemEnabled(unsigned short) const
+Accelerator::IsKeyCodeValid(KeyCode) const
+Accelerator::RemoveItem(KeyCode)
+Accelerator::RemoveItem(unsigned short)
+Accelerator::SetAccel(KeyCode, Accelerator*)
+AccessibleDialogWindow::ChildDescriptor::ChildDescriptor()
+AccessibleDialogWindow::ChildDescriptor::ChildDescriptor(DlgEdObj*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> const&)
+AccessibleSlideView::FocusHasChanged(unsigned short, unsigned short)
+AccessibleSlideView::SetPageVisible(unsigned short, unsigned char)
+AccessibleStateSetHelperImpl::~AccessibleStateSetHelperImpl()
+ActDicArray::Insert(ActDic const*, unsigned short, unsigned short)
+ActDicArray::_ForEach(unsigned short, unsigned short, unsigned char (*)(ActDic const&, void*), void*)
+AddDate(int, int&, int, int, int)
+AddNumber_Impl(String&, unsigned int)
+AddressMultiLineEdit::Modified()
+AdjustLastDayInMonth(int, int, int)
+Adler32::Adler32()
+Adler32::getValue()
+Adler32::reset()
+Adler32::update(com::sun::star::uno::Sequence<signed char> const&)
+Adler32::updateByte(signed char)
+Adler32::updateSegment(com::sun::star::uno::Sequence<signed char> const&, int, int)
+Adler32::~Adler32()
+AffixMgr::get_checknum()
+AffixMgr::get_compoundbegin()
+AffixMgr::get_compoundroot()
+AffixMgr::get_suffix()
+AllSettings::SetLocale(com::sun::star::lang::Locale const&)
+AlphaMask::Crop(Rectangle const&)
+AlphaMask::Expand(unsigned long, unsigned long, unsigned char*)
+AlphaMask::Invert()
+AlphaMask::Mirror(unsigned long)
+AlphaMask::Replace(unsigned char*, unsigned char*, unsigned long, unsigned long*)
+AlphaMask::Rotate(long, unsigned char)
+AlphaMask::Scale(Size const&, unsigned long)
+Animation::Dither(unsigned long)
+Animation::IsEqual(Animation const&) const
+Application::AddHotKey(KeyCode const&, Link const&, void*)
+Application::CallEvent(NotifyEvent&)
+Application::CallPreNotify(NotifyEvent&)
+Application::FlushAccel()
+Application::GetDialogScaleX()
+Application::GetFilterHdl()
+Application::GetReservedKeyCodeDescription(unsigned long)
+Application::InitAppRes(ResId const&)
+Application::IsAccessibilityEnabled()
+Application::IsShutDown()
+Application::IsUserActive(unsigned short)
+Application::PostUserEvent(unsigned long, void*)
+Application::RemoveHotKey(unsigned long)
+Application::SetFontPath(String const&)
+ArgInput::GetArgSelection()
+ArgInput::ReplaceSelOfArg(String const&)
+AssistentDlg::GetInformation() const
+AssistentDlg::GetTopic() const
+AssistentDlg::GetUserName() const
+AstExpression::AstExpression(AstExpression*, ExprType)
+AstExpression::AstExpression(float)
+AstExpression::AstExpression(short)
+AstExpression::AstExpression(unsigned int)
+AstExpression::AstExpression(unsigned short)
+AstExpression::eval(EvalKind)
+AstOperation::isVoid()
+AstUnionLabel::AstUnionLabel()
+AttributeList::RemoveAttribute(rtl::OUString)
+AttributeList::SetAttributeList(com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&)
+B3dCamera::SetBankAngle(double)
+B3dCamera::SetFocalLength(double)
+B3dCamera::SetLookAt(basegfx::B3DVector const&)
+B3dCamera::SetPosition(basegfx::B3DPoint const&)
+B3dCamera::SetPositionAndLookAt(basegfx::B3DPoint const&, basegfx::B3DVector const&)
+B3dCamera::SetUseFocalLength(unsigned char)
+B3dColor::GetDistance(Color&)
+B3dEdgeEntryBucket::B3dEdgeEntryBucket()
+B3dEdgeEntryBucket::ImplRemove()
+B3dEdgeEntryBucketMemArr::Replace(char const*&, unsigned short)
+B3dEdgeEntryBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+B3dEdgeEntryBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+B3dEdgeListBucket::B3dEdgeListBucket()
+B3dEdgeListBucket::ImplRemove()
+B3dEdgeListBucketMemArr::Replace(char const*&, unsigned short)
+B3dEdgeListBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+B3dEdgeListBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+B3dEntity::CalcMiddle(B3dEntity&, B3dEntity&, B3dEntity&)
+B3dEntity::ForceEqualBase(B3dTransformationSet*, B3dEntity&, B3dEntity&)
+B3dEntityBucket::B3dEntityBucket()
+B3dEntityBucketMemArr::Replace(char const*&, unsigned short)
+B3dEntityBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+B3dEntityBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+B3dGeometry::Empty()
+B3dGeometry::RemoveNormals()
+B3dGeometry::RemoveTexture()
+B3dLightGroup::GetConstantAttenuation(Base3DLightNumber)
+B3dLightGroup::GetLinearAttenuation(Base3DLightNumber)
+B3dLightGroup::GetQuadraticAttenuation(Base3DLightNumber)
+B3dLightGroup::GetSpotCutoff(Base3DLightNumber)
+B3dLightGroup::GetSpotDirection(Base3DLightNumber)
+B3dLightGroup::GetSpotExponent(Base3DLightNumber)
+B3dLightGroup::SetConstantAttenuation(double, Base3DLightNumber)
+B3dLightGroup::SetLinearAttenuation(double, Base3DLightNumber)
+B3dLightGroup::SetPosition(basegfx::B3DPoint const&, Base3DLightNumber)
+B3dLightGroup::SetQuadraticAttenuation(double, Base3DLightNumber)
+B3dLightGroup::SetSpotCutoff(double, Base3DLightNumber)
+B3dLightGroup::SetSpotDirection(basegfx::B3DVector const&, Base3DLightNumber)
+B3dLightGroup::SetSpotExponent(unsigned short, Base3DLightNumber)
+B3dMaterialBucket::B3dMaterialBucket()
+B3dMaterialBucket::B3dMaterialBucket(unsigned short)
+B3dMaterialBucket::ImplAppend()
+B3dMaterialBucket::ImplRemove()
+B3dMaterialBucket::~B3dMaterialBucket()
+B3dMaterialBucketMemArr::Replace(char const*&, unsigned short)
+B3dMaterialBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+B3dMaterialBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+B3dTextureStore::DeleteAndDestroy(unsigned short, unsigned short)
+B3dTransformationSet::DeviceToViewCoor(basegfx::B3DPoint const&)
+B3dTransformationSet::EyeToDeviceCoor(basegfx::B3DPoint const&)
+B3dTransformationSet::GetDeviceRectangle(double&, double&, double&, double&)
+B3dTransformationSet::GetMatFromObjectToView()
+B3dTransformationSet::SetOrientation(basegfx::B3DHomMatrix&)
+B3dTransformationSet::SetRatioMode(Base3DRatio)
+B3dTransformationSet::ViewToDeviceCoor(basegfx::B3DPoint const&)
+B3dTransformationSet::ViewToWorldCoor(basegfx::B3DPoint const&)
+B3dTransformationSet::WorldToObjectCoor(basegfx::B3DPoint const&)
+B3dViewport::SetVPN(basegfx::B3DVector const&)
+B3dViewport::SetVRP(basegfx::B3DPoint const&)
+BITS
+Base3D::AddVertex(basegfx::B3DPoint&, basegfx::B3DVector&, basegfx::B2DPoint&)
+Base3D::DeleteAllTextures()
+Base3D::DeleteTexture(TextureAttributes&)
+Base3D::GetShininess(Base3DMaterialMode) const
+Base3DOpenGL::SetPhongDivideSize(long)
+BasicCheckBox::GetCheckedEntryCount() const
+BasicCheckBox::GetSelectEntryPos() const
+BasicCheckBox::RemoveEntry(unsigned long)
+BasicCheckBox::SelectEntryPos(unsigned long, unsigned char)
+BasicDocShell::Execute(SfxRequest&)
+BasicDocShell::GetState(SfxItemSet&)
+BasicError::BasicError()
+BasicIDE::BasicIDE()
+BasicIDE::CreateMacro()
+BasicIDE::DecBasicDialogCount()
+BasicIDE::FindMacro(SbModule*, String const&)
+BasicIDE::GetBasicDialogCount()
+BasicIDE::IncBasicDialogCount()
+BasicIDE::~BasicIDE()
+BasicIDEDLL::Exit()
+BasicIDEData::InitAccelerator()
+BasicIDEShell::BasicIDEShell(SfxViewFrame*, BasicIDEShell const&)
+BasicIDEShell::BasicIDEShell(SfxViewFrame*, Window*)
+BasicIDEShell::HasBasic() const
+BasicIDEShell::LinkStubAccelSelectHdl(void*, void*)
+BasicLibInfo::BasicLibInfo(String const&)
+BasicLibInfo::Store(SotStorageStream&, String const&, unsigned char)
+BasicManager::BasicManager()
+BasicManager::ClearErrors()
+BasicManager::SetFlagToAllLibs(short, unsigned char) const
+BasicToolBox::BasicToolBox(Window*, IDEResId)
+BasicTreeListBox::ExpandAllTrees()
+BibBookContainer::GetBottomComponentInterface(unsigned char)
+BibBookContainer::GetTopComponentInterface(unsigned char)
+BibBookContainer::SetBottomComponentInterface(com::sun::star::awt::XWindowPeer*)
+BibBookContainer::SetTopComponentInterface(com::sun::star::awt::XWindowPeer*)
+BibDataManager::moveRelative(int)
+BibDataManager::saveCtrModel(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::awt::XControlModel> const&)
+BibFrameController_Impl::BibFrameController_Impl(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&)
+BibFrameController_Impl::GetDataManager()
+BibToolBarListener::GetIndex()
+BibToolBarListener::SetCommand(rtl::OUString const&)
+BibToolBarListener::SetIndex(unsigned short)
+BibWindowContainer::BibWindowContainer(Window*, long)
+BigInt::DivMod(BigInt const&, BigInt&)
+BitSet::BitSet(Range const&)
+BitSet::BitSet(unsigned short*, unsigned short)
+Bitmap::Bitmap(SalBitmap*)
+Bitmap::GetSourceSizePixel() const
+Bitmap::SetSizePixel(Size const&)
+BitmapEx::Draw(OutputDevice*, Point const&, Size const&, Point const&, Size const&) const
+BitmapEx::Replace(Color const&, Color const&, unsigned long)
+BitmapLB::SelectEntryByList(XBitmapList const*, String const&, Bitmap const&)
+BitmapReadAccess::Flush()
+BitmapReadAccess::ReAccess(unsigned char)
+BitmapWriteAccess::DrawPolyPolygon(PolyPolygon const&)
+BitmapWriteAccess::GetFillColor() const
+BitmapWriteAccess::GetLineColor() const
+BitmapWriteAccess::SetFillColor()
+BitmapWriteAccess::SetLineColor()
+BmpSum::BmpSum()
+BmpSum::~BmpSum()
+BrowseBox::GetEventWindow() const
+BrowseBox::GetHeaderBar() const
+BrowseBox::GoToRowAndDoNotModifySelection(long)
+BrowseBox::InsertDataColumn(unsigned short, Image const&, String const&, long, unsigned short, unsigned short, String const*)
+BrowseBox::InsertDataColumn(unsigned short, Image const&, long, unsigned short, unsigned short)
+BrowseBox::IsAllSelected() const
+BrowseBox::IsInCommandEvent() const
+BrowseBox::NextSelectedColumn() const
+BrowseBox::PrevSelectedRow()
+BrowseBox::ScrollPages(long)
+BrowseBox::SetColumnMode(unsigned short, int)
+BrowseBox::SetSelection(MultiSelection const&)
+BufferNode::childAt(int) const
+Button::Button(Window*, ResId const&)
+Button::Button(Window*, long)
+Button::GetFocusRect() const
+Button::GetModeBitmap(BmpColorMode) const
+Button::IsImageDisplayEnabled()
+Button::IsTextDisplayEnabled()
+ButtonDialog::AddButton(PushButton*, unsigned short, unsigned short, long)
+ButtonDialog::ButtonDialog(Window*, ResId const&)
+ButtonDialog::GetButtonHelpId(unsigned short) const
+ButtonDialog::GetButtonHelpText(unsigned short) const
+ButtonDialog::GetButtonText(unsigned short) const
+ButtonDialog::SetButtonHelpId(unsigned short, unsigned long)
+ByteArr::Append(char)
+ByteArr::ByteArr(unsigned char, unsigned char)
+ByteArr::Contains(char) const
+ByteArr::Insert(unsigned short, char)
+ByteArr::Remove(char)
+ByteArr::~ByteArr()
+ByteChucker::closeOutput()
+ByteChucker::flush()
+ByteChucker::getLength()
+ByteChucker::seek(long)
+ByteGrabber::available()
+ByteGrabber::closeInput()
+ByteGrabber::readSomeBytes(com::sun::star::uno::Sequence<signed char>&, int)
+ByteGrabber::skipBytes(int)
+ByteString::CreateFromFloat(float)
+ByteString::EmptyString()
+ByteString::Equals(ByteString const&, unsigned short, unsigned short) const
+ByteString::EqualsIgnoreCaseAscii(ByteString const&, unsigned short, unsigned short) const
+ByteString::EqualsIgnoreCaseAscii(char const*, unsigned short, unsigned short) const
+ByteString::GetQuotedToken(unsigned short, ByteString const&, char, unsigned short&) const
+ByteString::GetQuotedTokenCount(ByteString const&, char) const
+ByteString::Insert(ByteString const&, unsigned short, unsigned short, unsigned short)
+ByteString::Match(char const*) const
+ByteString::Reverse()
+ByteString::SearchChar(char const*, unsigned short) const
+ByteString::ToDouble() const
+ByteString::ToFloat() const
+CCommandd::CCommandd(ByteString&, unsigned long)
+CCommandd::CCommandd(char const*, unsigned long)
+CGM::CGM(unsigned int)
+CGM::CGM(unsigned int, Graphic&)
+CGM::ImplDoClass16()
+CGM::Write(unsigned char*)
+CGMChart::GetFirstTextEntry()
+CGMChart::GetTextEntry(unsigned int, unsigned int)
+CGMImpressOutAct::ImplGetFrameSet(int, NodeFrameSet&)
+CGMOutAct::SetGradientEdge(long)
+CNames::Insert(CNames const*, unsigned short, unsigned short)
+CNames::Insert(ControlItem const*&, unsigned short&)
+CNames::Insert(ControlItem const**, unsigned short)
+CNames::Remove(ControlItem const*&, unsigned short)
+CNames::Remove(unsigned short, unsigned short)
+CRC32::updateByte(signed char)
+CachedContentResultSet::applyPositionToOrigin()
+Calendar::AddDateInfo(Date const&, String const&, Color const*, Color const*, unsigned short)
+Calendar::Calendar(Window*, ResId const&)
+Calendar::ClearDateInfo()
+Calendar::GetDateInfoText(Date const&)
+Calendar::GetDropDate(Date&) const
+Calendar::GetSelectDateCount() const
+Calendar::RemoveDateInfo(Date const&)
+Calendar::SelectDateRange(Date const&, Date const&, unsigned char)
+Calendar::SetMinimumNumberOfDaysInWeek(short)
+Calendar::SetSaturdayColor(Color const&)
+Calendar::SetStandardColor(Color const&)
+Calendar::SetSundayColor(Color const&)
+Calendar::SetWeekStart(short)
+Calendar::ShowDropPos(Point const&, Date&)
+CalendarField::CalendarField(Window*, ResId const&)
+CalendarWrapper::getMinimumNumberOfDaysForFirstWeek() const
+Camera3D::Reset()
+Camera3D::Rotate(double, double)
+Camera3D::RotateAroundLookAt(double, double)
+Camera3D::SetFocalLengthWithCorrect(double)
+CertificateExtension_XmlSecImpl::setCertExtn(com::sun::star::uno::Sequence<signed char>, com::sun::star::uno::Sequence<signed char>, unsigned char)
+CfgParser::WorkOnRessourceEnd()
+CfgStack::Push(CfgStackData*)
+CharAttribList::DbgCheckAttribs()
+CharAttribList::HasAttrib(unsigned short) const
+CharClass::getCharacterDirection(String const&, unsigned short) const
+CharClass::isAlpha(String const&) const
+CharClass::isAlphaNumeric(String const&) const
+CharClass::isAsciiAlphaNumeric(String const&)
+CharPosArray::Replace(int const&, unsigned short)
+CharPosArray::Replace(int const*, unsigned short, unsigned short)
+CharPosArray::_ForEach(unsigned short, unsigned short, unsigned char (*)(int const&, void*), void*)
+CloneList::Count() const
+CmdBaseStream::GenReturn(unsigned short, SmartId*, unsigned short, unsigned char)
+CmdStream::GenCmdFlow(unsigned short, String)
+CmdStream::GenCmdFlow(unsigned short, unsigned short)
+CmpUS_Impl(void const*, void const*)
+CntByteItem::CntByteItem(unsigned short, SvStream&)
+CntContentTypeItem::CntContentTypeItem(unsigned short, INetContentType)
+CntContentTypeItem::SetPresentation(String const&)
+CollatorWrapper::compareSubstring(rtl::OUString const&, int, int, rtl::OUString const&, int, int) const
+CollatorWrapper::listCollatorOptions(rtl::OUString const&) const
+CollatorWrapper::loadCollatorAlgorithmWithEndUserOption(rtl::OUString const&, com::sun::star::lang::Locale const&, com::sun::star::uno::Sequence<int> const&)
+Color::IncreaseContrast(unsigned char)
+ColorMixingControl::ColorMixingControl(Window*, long, unsigned short, unsigned short)
+ColorMixingControl::SetColumns(unsigned short)
+ColorMixingControl::SetRows(unsigned short)
+ColorPreviewControl::ColorPreviewControl(Window*, long)
+ComboBox::GetEntryPos(void const*) const
+ComboBox::GetListPosSizePixel() const
+ComboBox::GetMRUEntries(unsigned short) const
+ComboBox::GetSeparatorPos() const
+ComboBox::GetUserItemSize() const
+ComboBox::InsertEntry(String const&, Image const&, unsigned short)
+ComboBox::IsDDAutoWidthEnabled() const
+ComboBox::IsUserDrawEnabled() const
+ComboBox::SetMRUEntries(String const&, unsigned short)
+ComboBox::SetSeparatorPos()
+ComboBox::SetTopEntry(unsigned short)
+CommandExtTextInputData::CommandExtTextInputData()
+CommandLine::CommandLine(CommandLine const&, unsigned char)
+CommandLine::CommandLine(char const*, unsigned char)
+CommandLine::CommandLine(unsigned char)
+CommandLine::Print()
+CommunicationLinkList::DeleteAndDestroy(unsigned short, unsigned short)
+CommunicationLinkList::Insert(CommunicationLink const*&, unsigned short&)
+CommunicationLinkList::Insert(CommunicationLink const**, unsigned short)
+CommunicationLinkList::Insert(CommunicationLinkList const*, unsigned short, unsigned short)
+CommunicationLinkList::Remove(CommunicationLink const*&, unsigned short)
+CommunicationManagerClientViaSocket::CommunicationManagerClientViaSocket(ByteString, unsigned long, unsigned char)
+Config::EnterLock()
+Config::GetLineEnd() const
+Config::LeaveLock()
+Config::SetLineEnd(LineEnd)
+Config::Update()
+Config::WriteKey(ByteString const&, String const&, unsigned short)
+Container::GetObjectPtr(unsigned long)
+Container::GetPos(void const*, unsigned long, unsigned char) const
+Container::Insert(void*, void*)
+ContextTables::findIndexBin(int)
+ContextTables::firstParentWithCode(int, int)
+ContextTables::firstParentWithCode2(int, int, int)
+ContextTables::firstParentWithCode3(int, int, int)
+ContextTables::firstParentWithCode4(int, _STL::vector<int, _STL::allocator<int> > const&)
+ContextTables::firstParentWithCode5(int, _STL::vector<int, _STL::allocator<int> > const&)
+ContextTables::firstParentWithCode7(int, int, int)
+ContextTables::linkName(int)
+ContextTables::parentContext(int)
+Control::GetLineCount() const
+ControlItem::ControlItem(ControlData*)
+Convention_A1::MakeColStr(short)
+Convention_A1::MakeRowStr(int)
+ConvertBrushStyle(Color const&, Color const&, unsigned char)
+ConvertIniStringToPosSize(String const&, Point&, Size&)
+ConvertMathMLToMath(unsigned short)
+ConvertMathToMathType(unsigned short)
+ConvertMathTypeToMath(unsigned short)
+ConvertPosSizeToIniString(Point const&, Size const&)
+ConvertToStore_Impl(String const&)
+ConvertValueToMap(long, SfxMapUnit)
+ConvertValueToUnit(long, SfxMapUnit)
+CppDep::CppDep(ByteString)
+CppUnit::NotEqualException::NotEqualException(_STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> > const&, _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> > const&, CppUnit::SourceLine const&, _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> > const&)
+CppUnit::NotEqualException::actualValue() const
+CppUnit::NotEqualException::additionalMessage() const
+CppUnit::NotEqualException::expectedValue() const
+CreateApplicationServiceManager()
+CreateDialogFactory
+CreateScDocShellDll
+CreateSchChartDocShellDll
+CreateSdDrawDocShellDll
+CreateSdGraphicDocShellDll
+CreateSdXTextViewCursor(sd::View*)
+CreateSmDocShellDll
+CreateSwDocShellDll
+CreateSwGlobalDocShellDll
+CreateSwWebDocShellDll
+CreateUnoWrapper
+CreateWindow
+CurrencyBox::CurrencyBox(Window*, ResId const&)
+CurrencyBox::GetValue(unsigned short) const
+CurrencyBox::GetValuePos(long) const
+CurrencyBox::InsertValue(long, unsigned short)
+CurrencyBox::RemoveValue(long)
+CurrencyField::CurrencyField(Window*, ResId const&)
+CurrencyFormatter::SetCurrencySymbol(String const&)
+Cursor::SetHeight(long)
+Cursor::SetOffsetY(long)
+Cursor::SetSlant(long)
+DBSaveData::Clear()
+DInfo::GetSection(unsigned char const*)
+DInfo::Read()
+DXFGroupReader::FillIBuff()
+DXFGroupReader::SetI(unsigned short, long)
+DXFTables::SearchStyle(char const*) const
+DateBox::GetDate(unsigned short) const
+DateBox::GetDatePos(Date const&) const
+DateBox::InsertDate(Date const&, unsigned short)
+DateBox::RemoveDate(Date const&)
+DateFormatter::GetRealDate() const
+DateFormatter::IsDateModified() const
+DateTime::MakeDateTimeFromSec(Date const&, unsigned long)
+DaysInMonth(unsigned short, unsigned short, unsigned char)
+DbGridControl::IsForceHideScrollbars() const
+DbGridControl::SetMultiSelection(unsigned char)
+DbGridControl::forceROController(unsigned char)
+DbGridControl::forceSyncDisplay()
+DbgEndStackTree()
+DbgFreeStackTree(void*, unsigned long)
+DbgFunc(unsigned short, void*)
+DbgGetStackTree(unsigned long)
+DbgOut(char const*, unsigned short, char const*, unsigned short)
+DbgOutTypef(unsigned short, char const*, ...)
+DbgOutf(char const*, ...)
+DbgPrintStackTree(void*)
+DbgProf(unsigned short, DbgDataType*)
+DbgStartStackTree()
+DbgXtor(DbgDataType*, unsigned short, void const*, char const* (*)(void const*))
+DdeGetPutItem::DdeGetPutItem(DdeItem const&)
+DdeTopic::RemoveItem(DdeItem const&)
+DeInitScDll
+DeInitSchDll
+DeInitSdDll
+DeInitSmDll
+DeInitSwDll
+DecoToolBox::DecoToolBox(Window*, ResId const&)
+Decompressor::readNext(int, CompressorIterator&)
+DecryptBlockName_Imp(String&)
+Deflater::Deflater()
+Deflater::Deflater(int)
+Deflater::doDeflate(com::sun::star::uno::Sequence<signed char>&)
+Deflater::getAdler()
+Deflater::setDictionary(com::sun::star::uno::Sequence<signed char> const&)
+Deflater::setDictionarySegment(com::sun::star::uno::Sequence<signed char> const&, int, int)
+Deflater::setInput(com::sun::star::uno::Sequence<signed char> const&)
+Deflater::setStrategy(int)
+DeleteOnIdleItems()
+DffPropSet::SetPropertyValue(unsigned int, unsigned int) const
+Dialog::Dialog(Window*, ResId const&)
+Dialog::ImplCenterDialog()
+Dialog::IsStartedModal() const
+DicEntry::DicEntry()
+DicUserData::SetChecked(unsigned char)
+DictionaryNeo::isSorted()
+DictionaryNeo_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+Dir::Dir()
+Dir::Dir(DirEntry const&, int, int, ...)
+Dir::SetSort(int, ...)
+DirEntry::ConvertNameToSystem(String const&)
+DirEntry::ConvertSystemToName(String const&)
+DirEntry::CutRelParents()
+DirEntry::GetMaxNameLen(FSysPathStyle)
+DirEntry::ImpGetPreTopPtr()
+DirEntry::IsLongNameOnFAT() const
+DirEntry::IsRFSAvailable()
+DirEntry::NameCompare(DirEntry const&) const
+DirEntry::ToRel()
+DirEntry::ToRel(DirEntry const&)
+DlgEdEvtContListenerImpl::DlgEdEvtContListenerImpl()
+DlgEdObj::LinkStubOnCreate(void*, void*)
+DlgEdPropListenerImpl::DlgEdPropListenerImpl()
+DlgEdTransferableImpl::DlgEdTransferableImpl()
+DoExportDialog
+DockingAreaWindow::ImplData::~ImplData()
+DockingManager::IsInPopupMode(Window const*)
+DockingWindow::GetMaxOutputSizePixel() const
+DockingWindow::ImplData::~ImplData()
+DockingWindow::IsTitleButtonVisible(unsigned short) const
+DockingWindow::SetTabStop()
+DockingWindow::ShowTitleButton(unsigned short, unsigned char)
+DocumentCollector::_writeBegin()
+DocumentHolder::Hide()
+DocumentHolder::SetContainerName(rtl::OUString const&)
+DocumentHolder::SetTitle(rtl::OUString const&)
+DomBuilderContext::getNode()
+DomExport::qualifiedName(com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> const&)
+DosToUnixPath(char*)
+DropListBox_Impl::LinkStubOnAsyncExecuteError(void*, void*)
+E3dCompoundObject::SetBackMaterial(B3dMaterial const&)
+E3dCompoundObject::SetCreateNormals(unsigned char)
+E3dCompoundObject::SetCreateTexture(unsigned char)
+E3dCompoundObject::SetMaterialAmbientColor(Color const&)
+E3dCompoundObject::SetUseDifferentBackMaterial(unsigned char)
+E3dCubeObj::SetSideFlags(unsigned short)
+E3dLatheObj::ReSegment(unsigned int, unsigned int)
+E3dPointObj::E3dPointObj(basegfx::B3DPoint const&)
+E3dPolygonObj::E3dPolygonObj(E3dDefaultAttributes&, basegfx::B3DPolyPolygon const&, basegfx::B3DPolyPolygon const&, basegfx::B2DPolyPolygon const&, unsigned char)
+E3dPolygonObj::E3dPolygonObj(E3dDefaultAttributes&, basegfx::B3DPolyPolygon const&, basegfx::B3DPolyPolygon const&, unsigned char)
+E3dPolygonObj::E3dPolygonObj(E3dDefaultAttributes&, basegfx::B3DPolyPolygon const&, unsigned char)
+E3dScene::SetClipping(int)
+E3dScene::SetDoubleBuffered(int)
+E3dScene::SetFitInSnapRect(int)
+E3dScene::SetShadowPlaneDirection(basegfx::B3DVector const&)
+E3dSphereObj::ReSegment(unsigned int, unsigned int)
+E3dView::HasMarkedScene()
+E3dView::MergeScenes()
+EECharAttribArray::Replace(EECharAttrib const&, unsigned short)
+EECharAttribArray::Replace(EECharAttrib const*, unsigned short, unsigned short)
+EECharAttribArray::_ForEach(unsigned short, unsigned short, unsigned char (*)(EECharAttrib const&, void*), void*)
+EditDLL::~EditDLL()
+EditEngine::CreateFontFromItemSet(SfxItemSet const&)
+EditEngine::CursorLeft(ESelection const&, unsigned short) const
+EditEngine::CursorRight(ESelection const&, unsigned short) const
+EditEngine::EnableIdleFormatter(unsigned char)
+EditEngine::EnablePasteSpecial(unsigned char)
+EditEngine::GetActiveView() const
+EditEngine::GetAvailableSearchOptions()
+EditEngine::GetGroupChars() const
+EditEngine::IsFirstWordCapitalization() const
+EditEngine::IsIdleFormatterEnabled() const
+EditEngine::IsParagraphVisible(unsigned short)
+EditEngine::IsPasteSpecialEnabled() const
+EditEngine::RegisterClipboardFormatName()
+EditEngine::SetActiveView(EditView*)
+EditEngine::SetGroupChars(String const&)
+EditEngine::SetModified()
+EditEngine::SetText(unsigned short, EditTextObject const&)
+EditEngine::StopSelectionMode()
+EditEngine::TransliterateText(ESelection const&, int)
+EditEngine::WordLeft(ESelection const&, unsigned short) const
+EditEngine::WordRight(ESelection const&, unsigned short) const
+EditSelection::DbgIsBuggy(EditDoc&)
+EditSelection::IsInvalid() const
+EditSelectionEngine::GetCurView()
+EditTextObject::Skip(SvStream&)
+EditView::CreateTextObject()
+EditView::Drop(DropEvent const&)
+EditView::GetDropPos()
+EditView::GetSelectionMode() const
+EditView::GetWordUnderMousePointer() const
+EditView::IndentBlock()
+EditView::IsPasteEnabled() const
+EditView::MatchGroup()
+EditView::QueryDrop(DropEvent&)
+EditView::SetCursor(Cursor const&)
+EditView::SetParaAttribs(SfxItemSet const&, unsigned short)
+EditView::SetPointer(Pointer const&)
+EditView::UnindentBlock()
+ElementCollector::isAbleToNotify() const
+ElementCollector::setSecurityId(int)
+EntryArray::Remove(unsigned short, unsigned short)
+EntryArray::Replace(SvLBoxEntry const*&, unsigned short)
+EntryArray::Replace(SvLBoxEntry const**, unsigned short, unsigned short)
+EntryArray::_ForEach(unsigned short, unsigned short, unsigned char (*)(SvLBoxEntry const*&, void*), void*)
+EntryList_Impl::EntryList_Impl(SvxIconChoiceCtrl_Impl*, unsigned short, unsigned short, unsigned short)
+Enumeration::Enumeration(com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> const&)
+ErrorHandler::ForwCreateString(ErrorInfo const*, String&, unsigned short&) const
+ErrorHandler::warning1(WarningCode, AstDeclaration*)
+ErrorHandler::warning2(WarningCode, AstDeclaration*, AstDeclaration*)
+EscherEx::SeekBehindRecHeader(unsigned short)
+EscherPersistTable::PtReplace(unsigned int, unsigned int)
+EscherPropertyContainer::GetCustomShapeType(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&, unsigned int&)
+ExcBofC8::ExcBofC8()
+Exception::Exception()
+Exception::Exception(char const*)
+ExitProgram()
+Explosion::ClearAll()
+Export::LanguageAllowed(ByteString const&)
+Export::ListExists(ResData*, unsigned short)
+Export::UnmergeUTF8(ByteString&)
+Export::getCurrentDirectory(rtl::OUString&, rtl::OUString&)
+Export::getRandomName(ByteString&)
+ExportPPT
+ExportWK1::Blank(unsigned short, unsigned short, ScPatternAttr const&)
+ExportWK1::WKString(unsigned short, unsigned short, ScFormulaCell const*, ScPatternAttr const&)
+ExtName::IsName() const
+ExtName::IsOLE() const
+ExtSheetBuffer::IsExternal(unsigned short) const
+ExtendedMultiLineEdit::ExtendedMultiLineEdit(Window*, IDEResId)
+ExtensionsTabPage::ExtensionsTabPage(Window*, ResId const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::awt::XContainerWindowProvider> const&)
+ExtensionsTabPage::HideWindow()
+ExtraKernInfo::HasKernPairs() const
+ExtraPortionInfo::DestroyOrgDXArray()
+FSysEnableSysErrorBox(unsigned char)
+FadeEffectLB::FadeEffectLB(Window*, long)
+FieldToMapUnit(SfxFieldUnit)
+FileControl::ResetButtonText()
+FileControl::SetButtonText(String const&)
+FileCopier::FileCopier()
+FileCopier::GetError() const
+FileCopier::GetErrorHdl() const
+FileCopier::GetErrorSource() const
+FileCopier::GetErrorTarget() const
+FileCopier::SetErrorHdl(Link const&)
+FileDialog::GetCurFilter() const
+FileDialog::GetFilterCount() const
+FileDialog::GetFilterName(unsigned short) const
+FileDialog::RemoveAllFilter()
+FileDialog::RemoveFilter(String const&)
+FileDialog::SetCancelButtonText(String const&)
+FileDialog::SetOkButtonText(String const&)
+FileDialog::qt_static_property(QObject*, int, int, QVariant*)
+FileDialog::tr(char const*, char const*)
+FileDialog::trUtf8(char const*, char const*)
+FileHelper::getTempPath()
+FileList::GetFormat()
+FileStat::FileStat()
+FileStat::FileStat(void const*, void const*)
+FileStat::HasReadOnlyFlag()
+FileStat::QueryDiskSpace(String const&, BigInt&, BigInt&)
+FileStat::SetDateTime(String const&, DateTime const&)
+FileStream::FileStream(rtl::OString const&, FileAccessMode)
+FileStream::getSize()
+FillAttrLB::FillAttrLB(Window*, ResId)
+FillAttrLB::SelectEntryByList(XBitmapList const*, String const&, Bitmap const&)
+FilterConfigCache::FilterConfigCacheEntry::IsValid()
+FilterConfigCache::IsImportDialog(unsigned short)
+FilterConfigItem::WriteString(rtl::OUString const&, rtl::OUString const&)
+FilterWarningDialog_Impl::FilterWarningDialog_Impl(Window*)
+FilterWarningDialog_Impl::SetFilterName(String const&)
+FixedBitmap::GetModeBitmap(BmpColorMode) const
+FixedBitmap::SetModeBitmap(Bitmap const&, BmpColorMode)
+FixedBorder::FixedBorder(Window*, long)
+FixedBorder::SetBorderType(unsigned short)
+FixedBorder::SetTransparent(unsigned char)
+FixedImage::CalcImagePos(Point const&, Size const&, Size const&)
+FixedImage::GetModeImage(BmpColorMode) const
+FloatingWindow::ImplData::~ImplData()
+FloatingWindow::RemovePopupModeWindow(Window*)
+FmEntryDataArray::DeleteAndDestroy(unsigned short, unsigned short)
+FmEntryDataArray::Insert(FmEntryData* const&, unsigned short&)
+FmEntryDataArray::Insert(FmEntryData* const*, unsigned short)
+FmEntryDataArray::Insert(FmEntryDataArray const*, unsigned short, unsigned short)
+FmEntryDataArray::Remove(FmEntryData* const&, unsigned short)
+FmFieldWinData::FmFieldWinData()
+FmFieldWinData::~FmFieldWinData()
+FmFieldWinMgr::GetChildWindowId()
+FmFormModel::FmFormModel(SfxItemPool*, SfxObjectShell*, int)
+FmFormObj::getType() const
+FmGridControl::restored(com::sun::star::lang::EventObject const&)
+FmPropBrwMgr::GetChildWindowId()
+FmXFilterCell::getImplementation(com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&)
+FmXFilterCell_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+FmXGridPeer_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+Font::identifyFont(void const*, unsigned int)
+FontCharMap::GetLastChar() const
+FontInfo::SupportsCJK() const
+FontInfo::SupportsCTL() const
+FontInfo::SupportsLatin() const
+FontList::GetFontNameType(String const&) const
+FontSizeBox::GetValue(unsigned short, FieldUnit) const
+FontSizeBox::SetUserValue(long, FieldUnit)
+FontStyleBox::FontStyleBox(Window*, long)
+FontStyleMenu::Fill(String const&, FontList const*)
+FontStyleMenu::FontStyleMenu()
+FormattedField::SetValidateText(String const&, String const*)
+FormatterBase::SetFieldText(String const&, unsigned char)
+Formula::makeDelimeter(Node*)
+Formula::makeOperator(Node*)
+Formula::makeUnderOver(Node*)
+Fraction::Fraction(long, long, long, long)
+FuncData::Advice(void (*)(double&, void*))
+GDIMetaFile::GetActionPos(String const&)
+GDIMetaFile::GetLabel(unsigned long)
+GDIMetaFile::GetLabelCount() const
+GDIMetaFile::InsertLabel(String const&, unsigned long)
+GDIMetaFile::IsEqual(GDIMetaFile const&) const
+GDIMetaFile::Play(GDIMetaFile&, unsigned long)
+GDIMetaFile::RemoveLabel(String const&)
+GDIMetaFile::RenameLabel(String const&, String const&)
+GDIMetaFile::ReplaceColors(Color const&, Color const&, unsigned long)
+GDIMetaFile::Wind(unsigned long)
+GDIMetaFile::WindNext()
+GHEditWindow::Clear()
+Gallery::CreateImportTheme(INetURLObject const&, String const&)
+GalleryExplorer::DrawCentered(OutputDevice*, FmFormModel const&)
+GalleryExplorer::GetObjCount(unsigned long)
+GalleryExplorer::GetVCDrawModel(FmFormModel&) const
+GalleryExplorer::InsertGraphicObj(unsigned long, Graphic const&)
+GalleryExplorer::InsertSdrObj(unsigned long, FmFormModel&)
+Gamma(double)
+GammaN(double, unsigned int)
+GconfBackend::notifyListeners(rtl::OUString const&)
+GenericInformation::InsertSubInfo(ByteString const&, ByteString const&, unsigned char, unsigned char)
+GenericInformation::InsertSubInfo(GenericInformation*)
+GenericInformation::RemoveSubInfo(GenericInformation*, unsigned char)
+GeometryIndexValueBucket::GeometryIndexValueBucket()
+GeometryIndexValueBucket::ImplAppend()
+GeometryIndexValueBucket::ImplRemove()
+GeometryIndexValueBucketMemArr::Replace(char const*&, unsigned short)
+GeometryIndexValueBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+GeometryIndexValueBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+GetBServerRoot()
+GetDictionaryList()
+GetDistance(_STL::vector<com::sun::star::beans::PropertyValue, _STL::allocator<com::sun::star::beans::PropertyValue> >&, rtl::OUString const&, xmloff::EnhancedCustomShapeToken::EnhancedCustomShapeTokenEnum)
+GetEnv(char const*, char const*)
+GetFILTER_TEXT()
+GetFunctionCount
+GetFunctionData
+GetIniRoot()
+GetInt32(SdrCustomShapeGeometryItem&, rtl::OUString const&, int)
+GetLineType(unsigned short)
+GetMapFactor(FieldUnit, MapUnit)
+GetMapFactor(MapUnit, FieldUnit)
+GetOpt::hasVars()
+GetParameterDescription
+GetPictureFilename(char const*)
+GetPoint(SdrCustomShapeGeometryItem&, rtl::OUString const&, com::sun::star::awt::Point const&)
+GetRegularExpression_Impl(String const&)
+GetSSCommon()
+GetSSolarIni()
+GetSchnittBit(unsigned char)
+GetSpecialCharsForEdit
+GetTextLines(OutputDevice*, Rectangle const&, String const&, unsigned short, long*)
+GetTokenChar(unsigned short, unsigned char)
+GetVersionInfo
+GlobalEventConfig_Impl::getEvents()
+GlyphCache::CalcByteCount() const
+GlyphCache::ClearFontPath()
+GlyphCache::LoadFonts()
+Gradient::Gradient(GradientStyle)
+GradientLB::GradientLB(Window*, long, unsigned char)
+GraphCtrl::GetStringFromDouble(double const&)
+GraphCtrl::GraphCtrl(Window*, long)
+Graphic::Draw(OutputDevice*, String const&, Font&, Bitmap const&, Point const&, Size const&)
+Graphic::GetUnlimitedBitmapEx(Size const*) const
+Graphic::StartAnimation(OutputDevice*, Point const&, long, OutputDevice*)
+GraphicConverter::ImplConvert(unsigned long, void*, unsigned long, void**, unsigned long)
+GraphicDescriptor::GetRequestedByteCount() const
+GraphicDescriptor::GraphicDescriptor(String const*)
+GraphicDescriptor::IsDataReady() const
+GraphicDescriptor::IsWideSearch() const
+GraphicDescriptor::SetRequestHdl(Link const&)
+GraphicExport
+GraphicFilter::DoExportDialog(Window*, unsigned short)
+GraphicFilter::GetExportOSFileType(unsigned short)
+GraphicFilter::GetImportOSFileType(unsigned short)
+GraphicFilter::HasExportDialog(unsigned short)
+GraphicFilter::Setup(unsigned short)
+GraphicImport
+GraphicManager::ClearCache()
+GraphicManager::GetCacheTimeout() const
+GraphicManager::GetFreeCacheSize() const
+GraphicManager::GetMaxCacheSize() const
+GraphicManager::GetMaxObjCacheSize() const
+GraphicManager::GetUsedCacheSize() const
+GraphicObject::GetAnimationInfoList() const
+GraphicObject::GetChecksum() const
+GraphicObject::GetSwapStreamHdl() const
+GraphicObject::GraphicObject(Graphic const&, String const&, GraphicManager const*)
+GraphicObject::ResetAnimationLoopCount()
+GraphicObject::SetAnimationNotifyHdl(Link const&)
+GraphicObject::SetGraphicManager(GraphicManager const&)
+GraphicReader::IsPreviewModeEnabled() const
+GridWindow::drawPoint(double, double)
+GroupTable::SkipCurrentGroup()
+GtkSalFrame::IMHandler::setInputContext(SalInputContext*)
+Guess::GetOrder()
+Guess::Guess(_STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >&, _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >&, _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >&, int)
+HBox::HBox()
+HIGHEST_BIT
+HTMLControls::Insert(HTMLControl const*&, unsigned short&)
+HTMLControls::Insert(HTMLControl const**, unsigned short)
+HTMLControls::Insert(HTMLControls const*, unsigned short, unsigned short)
+HTMLControls::Remove(HTMLControl const*&, unsigned short)
+HTMLControls::Remove(unsigned short, unsigned short)
+HWPFile::Close()
+HWPFile::Flush()
+HWPFile::GetFileName() const
+HWPFile::GetFontCount(int)
+HWPFile::GetFontName(int, int)
+HWPFile::GetPaperKind() const
+HWPFile::GetPaperOrientation() const
+HWPFile::GetPaperSize(int&, int&) const
+HWPFile::HWPFile(HStream&)
+HWPFile::IsCompressedFile() const
+HWPInfo::PageEditLen()
+HWPInfo::PageEditWid()
+HWPPara::GetLineInfo(int)
+HasDocumentValidSignature(com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&)
+Hatch::SetStyle(HatchStyle)
+HatchingLB::HatchingLB(Window*, long, unsigned char)
+HatchingLB::SelectEntryByList(XHatchList const*, String const&, XHatch const&, unsigned short)
+HeaderBar::GetItemData(unsigned short) const
+HeaderBar::GetItemImage(unsigned short) const
+HeaderBar::SetHelpId(unsigned short, unsigned long)
+HeaderBar::SetItemData(unsigned short, void*)
+HeaderBar::SetItemImage(unsigned short, Image const&)
+HeaderFooterEntry::GetMaskForInstance(unsigned int)
+HeaderFooterEntry::~HeaderFooterEntry()
+Help::IsExtHelpActive()
+Help::IsExtHelpEnabled()
+Help::StartContextHelp()
+HelpInterceptor_Impl::SetStartURL(String const&)
+HelpTextWindow::RegisterAccessibleParent()
+HelpTextWindow::RevokeAccessibleParent()
+HighlightPortions::Remove(unsigned short, unsigned short)
+HighlightPortions::Replace(HighlightPortion const&, unsigned short)
+HighlightPortions::Replace(HighlightPortion const*, unsigned short, unsigned short)
+HighlightPortions::_ForEach(unsigned short, unsigned short, unsigned char (*)(HighlightPortion const&, void*), void*)
+HtmlErrorContext::SetContext(unsigned short)
+HttpRequest::Abort()
+HttpRequest::GetStatus()
+HttpRequest::~HttpRequest()
+Hunspell::analyze(char***, char const*)
+Hunspell::get_csconv()
+Hunspell::get_forbidden_compound()
+Hunspell::get_prevcompound()
+Hunspell::get_prevroot()
+Hunspell::get_utf_conv()
+Hunspell::get_version()
+Hunspell::get_wordchars()
+Hunspell::get_wordchars_utf16(int*)
+Hunspell::mkallcap2(char*, w_char*, int)
+Hunspell::morph_with_correction(char const*)
+Hunspell::stem(char***, char const*)
+Hunspell::suggest_auto(char***, char const*)
+Hunspell::suggest_pos_stems(char***, char const*)
+HwpReader::makeCompose(Compose*)
+HwpReader::makeFixedSpace(FixedSpace*)
+HwpReader::makeHeaderFooter(HeaderFooter*)
+HwpReader::makeHyphen(Hyphen*)
+HwpReader::makeKeepSpace(KeepSpace*)
+HwpReader::makeNewNum(NewNum*)
+HwpReader::makePageNumCtrl(PageNumCtrl*)
+HwpReader::makePictureOLE(Picture*)
+IMServerKinput2()
+IMapObject::GetLogPoint(Point const&)
+IMapObject::GetPixelPoint(Point const&)
+IMapWindow::GetSdrObj(IMapObject const*) const
+INetContentTypes::GetExtension(String const&)
+INetContentTypes::MapStringToContentType(String const&)
+INetContentTypes::Uninitialize()
+INetContentTypes::appendUSASCIIParameter(ByteString const&, ByteString const&, ByteString const&)
+INetContentTypes::appendUSASCIIParameter(String const&, String const&, String const&)
+INetIStream::Decode64(SvStream&, SvStream&)
+INetIStream::Encode64(SvStream&, SvStream&)
+INetMIME::decodeUTF8(ByteString const&, unsigned short)
+INetMIME::equalIgnoreCase(char const*, char const*, char const*, char const*)
+INetMIME::getBase64Digit(int)
+INetMIME::getCharsetEncoding(unsigned short const*, unsigned short const*)
+INetMIME::scanAtom(char const*, char const*)
+INetMIME::scanAtom(unsigned short const*, unsigned short const*)
+INetMIME::scanQuotedBlock(char const*, char const*, unsigned int, unsigned int, unsigned long&, bool&)
+INetMIME::scanUnsignedHex(char const*&, char const*, bool, unsigned int&)
+INetMIME::scanUnsignedHex(unsigned short const*&, unsigned short const*, bool, unsigned int&)
+INetMIME::skipLinearWhiteSpace(char const*, char const*)
+INetMIME::writeDateTime(INetMIMEOutputSink&, DateTime const&)
+INetMIME::writeHeaderFieldBody(INetMIMEOutputSink&, INetMIME::HeaderFieldType, ByteString const&, unsigned short, bool)
+INetMIMEMessage::DetachChild(unsigned long, INetMIMEMessage&) const
+INetMIMEMessage::SetContentDescription(String const&)
+INetMIMEMessage::SetContentID(String const&)
+INetMessage::SetHeaderField(String const&, String const&, unsigned long)
+INetMessageHeaderIterator::INetMessageHeaderIterator(INetMessage const&, String const&)
+INetRFC822Message::GenerateDateField(DateTime const&, String&)
+INetRFC822Message::SetBCC(String const&)
+INetRFC822Message::SetCC(String const&)
+INetRFC822Message::SetComments(String const&)
+INetRFC822Message::SetDate(String const&)
+INetRFC822Message::SetFrom(String const&)
+INetRFC822Message::SetInReplyTo(String const&)
+INetRFC822Message::SetKeywords(String const&)
+INetRFC822Message::SetMessageID(String const&)
+INetRFC822Message::SetReferences(String const&)
+INetRFC822Message::SetReplyTo(String const&)
+INetRFC822Message::SetReturnPath(String const&)
+INetRFC822Message::SetReturnReceiptTo(String const&)
+INetRFC822Message::SetSender(String const&)
+INetRFC822Message::SetSubject(String const&)
+INetRFC822Message::SetTo(String const&)
+INetRFC822Message::SetXMailer(String const&)
+INetURLHistory_Impl::heapsort(INetURLHistory_Impl::hash_entry*, unsigned short)
+INetURLHistory_Impl::~INetURLHistory_Impl()
+INetURLObject::CutName(INetURLObject::DecodeMechanism, unsigned short)
+INetURLObject::GetHostPort(INetURLObject::DecodeMechanism, unsigned short)
+INetURLObject::HasMsgId() const
+INetURLObject::encodeHostPort(rtl::OUString const&, bool, INetURLObject::EncodeMechanism, unsigned short)
+INetURLObject::getFTPType() const
+INetURLObject::getIMAPUID() const
+INetURLObject::hasPassword() const
+INetURLObject::makeAuthCanonic()
+INetURLObject::makePortCanonic()
+IcnGridMap_Impl::OccupyGrids(Rectangle const&, unsigned char)
+IconChoiceDialog::AddTabPage(unsigned short, String const&, Image const&, IconChoicePage* (*)(Window*, SfxItemSet const&), unsigned short* (*)(), unsigned char, unsigned long)
+IconChoiceDialog::CreateIconTextAutoMnemonics()
+IconChoiceDialog::FillOutputItemSet()
+IconChoiceDialog::GetOutputItemSet(unsigned short)
+IconChoiceDialog::RemoveResetButton()
+IconChoiceDialog::RemoveTabPage(unsigned short)
+IconChoiceDialog::SetCtrlColor(Color const&)
+IconChoicePage::GetExchangeItem(SfxItemSet const&, unsigned short)
+ImageAryData::ImageAryData()
+ImageButton::ImageButton(unsigned short)
+ImageConsumer::GetData(BitmapEx&) const
+ImageConsumer::GetStatus() const
+ImageControl::GetModeBitmap(BmpColorMode) const
+ImageControl::SetModeBitmap(BitmapEx const&, BmpColorMode)
+ImageList::Clear()
+ImageList::GetImageIds(_STL::vector<unsigned short, _STL::allocator<unsigned short> >&) const
+ImageList::RemoveImage(rtl::OUString const&)
+ImageList::ReplaceImage(rtl::OUString const&, rtl::OUString const&)
+ImageMap::GetBoundRect() const
+ImageProducer::SetImage(Graphic const&)
+ImpATan2(short, short)
+ImpBitmap::ImplDestroy()
+ImpCartToPolar(short, short, Fix&, unsigned short&)
+ImpDefaultMapper::ImpDefaultMapper(com::sun::star::uno::Reference<com::sun::star::beans::XPropertyState>&)
+ImpEditEngine::CursorEndOfParagraph(EditPaM const&)
+ImpEditEngine::CursorStartOfParagraph(EditPaM const&)
+ImpEditEngine::Repeat(EditView*)
+ImpEditEngine::WriteHTML(SvStream&, EditSelection)
+ImpEditView::CalcSelectedRegion()
+ImpGetDefaultFontsLanguage(SvxFontItem&, SvxFontItem&, SvxFontItem&)
+ImpIcnCursor::ExpandGrid()
+ImpMultBig2(FixCpx const&, FixCpx const&)
+ImpPolarToCart(Fix const&, unsigned short, short&, short&)
+ImpRemap3DDepth::~ImpRemap3DDepth()
+ImpSdrGDIMetaFileImport::DoAction(MetaPixelAction&)
+ImpSdrGDIMetaFileImport::DoAction(MetaPointAction&)
+ImpSdrHdcMerk::ImpSdrHdcMerk(OutputDevice const&, unsigned short, int)
+ImpSdrHdcMerk::Restore(OutputDevice&, unsigned short) const
+ImpSdrHdcMerk::~ImpSdrHdcMerk()
+ImpSvMEdit::SetInsertMode(unsigned char)
+ImpSvMEdit::SetTextWindowOffset(Point const&)
+ImpSvtData::~ImpSvtData()
+ImpTextPortionHandler::DrawFitText(XOutputDevice&, Point const&, Fraction const&)
+ImplBorderWindow::ImplBorderWindow(Window*, long, unsigned short, com::sun::star::uno::Any const&)
+ImplBorderWindow::SetHelpButton(unsigned char)
+ImplColorMapper::~ImplColorMapper()
+ImplDevFontList::GetFallback(int) const
+ImplDevFontList::HasFallbacks() const
+ImplDevFontList::SetFallbacks(ImplDevFontListData**, int)
+ImplDllArr::DeleteAndDestroy(unsigned short, unsigned short)
+ImplDllArr::Insert(ByteString* const&, unsigned short&)
+ImplDllArr::Insert(ByteString* const*, unsigned short)
+ImplDllArr::Insert(ImplDllArr const*, unsigned short, unsigned short)
+ImplDllArr::Remove(ByteString* const&, unsigned short)
+ImplDockingWindowWrapper::GetFloatingPos() const
+ImplDockingWindowWrapper::GetMaxOutputSizePixel() const
+ImplDockingWindowWrapper::GetMinOutputSizePixel() const
+ImplDockingWindowWrapper::GetOutputSizePixel() const
+ImplDockingWindowWrapper::GetRollUpOutputSizePixel() const
+ImplDockingWindowWrapper::IsPined() const
+ImplDockingWindowWrapper::IsRollUp() const
+ImplDockingWindowWrapper::IsTitleButtonVisible(unsigned short) const
+ImplDockingWindowWrapper::Pin()
+ImplDockingWindowWrapper::PopupModeEnd()
+ImplDockingWindowWrapper::Roll()
+ImplDockingWindowWrapper::RollDown()
+ImplDockingWindowWrapper::RollUp()
+ImplDockingWindowWrapper::SetFloatingPos(Point const&)
+ImplDockingWindowWrapper::SetOutputSizePixel(Size const&)
+ImplDockingWindowWrapper::SetPin(unsigned char)
+ImplDockingWindowWrapper::SetRollUpOutputSizePixel(Size const&)
+ImplEESdrWriter::MapRect(ImplEESdrObject&)
+ImplEntryList::IsEntrySelected(String const&) const
+ImplFindWindow(SalFrame const*, Point&)
+ImplFontCharMap::GetGlyphIndex(unsigned int)
+ImplGet1ByteUnicodeTab(unsigned short)
+ImplImageBmp::ColorTransform(BmpColorMode)
+ImplImageBmp::Create(long, long, unsigned short)
+ImplImageBmp::Expand(unsigned short)
+ImplImageBmp::GetBitmapEx(unsigned short, unsigned short*) const
+ImplImageBmp::Invert()
+ImplImageBmp::Replace(unsigned short, BitmapEx const&)
+ImplImageBmp::Replace(unsigned short, ImplImageBmp const&, unsigned short)
+ImplImageBmp::Replace(unsigned short, unsigned short)
+ImplImageBmp::ReplaceColors(Color const*, Color const*, unsigned long)
+ImplImageList::GetImageCount() const
+ImplListBox::GetEntryFlags(unsigned short) const
+ImplRegionBand::IsInside(long, long)
+ImplRegionBand::IsOver(long, long)
+ImplRemoteControl::GetReturnStream()
+ImplSvEditObjectProtocol::ClassInvariant() const
+ImplSvEditObjectProtocol::SetTopUIActiveClient(unsigned char, unsigned char)
+ImplTaskBarFloat::ImplTaskBarFloat(TaskBar*)
+ImplWin::GetModeImage(BmpColorMode) const
+ImplWin::SetModeImage(Image const&, BmpColorMode)
+ImplWritePoly(SvStream&, Polygon const&)
+ImplXMLShapeExportInfo::~ImplXMLShapeExportInfo()
+ImportCGM
+ImportExcel::Password()
+IndexAccessor::clear()
+Inflater::doInflate(com::sun::star::uno::Sequence<signed char>&)
+Inflater::finish()
+Inflater::getAdler()
+Inflater::getRemaining()
+Inflater::getTotalIn()
+Inflater::getTotalOut()
+Inflater::needsInput()
+Inflater::reset()
+Inflater::setDictionary(com::sun::star::uno::Sequence<signed char> const&)
+Inflater::setDictionarySegment(com::sun::star::uno::Sequence<signed char> const&, int, int)
+Inflater::setInputSegment(com::sun::star::uno::Sequence<signed char> const&, int, int)
+InformationParser::Execute(Dir&, GenericInformationList*)
+InformationParser::Execute(SvMemoryStream&, GenericInformationList*)
+InformationParser::GetErrorCode()
+InformationParser::GetErrorText()
+InformationParser::Save(SvMemoryStream&, GenericInformationList const*)
+IniManager::IniManager(ByteString&)
+IniManager::IniManager(ByteString&, ByteString&)
+InitScDll
+InitSchDll
+InitSdDll
+InitSmDll
+InitSwDll
+InputFile(char const*, char const*)
+InsCapOptArr::Insert(InsCapOptArr const*, unsigned short, unsigned short)
+InsCapOptArr::Insert(InsCaptionOpt* const&, unsigned short&)
+InsCapOptArr::Insert(InsCaptionOpt* const*, unsigned short)
+InsCapOptArr::Remove(InsCaptionOpt* const&, unsigned short)
+InsCapOptArr::Remove(unsigned short, unsigned short)
+Interceptor::dispose()
+InternalResMgr::GetBitmapStream(unsigned int)
+IntlWrapper::ImplNewCalendar() const
+IntlWrapper::ImplNewCharClass() const
+IntroWindow_Impl::IntroWindow_Impl(Bitmap const&)
+IntroWindow_Impl::Slide()
+IsFormComponentList(SdrMarkList const&)
+IsJavaInstalled_Impl()
+IsPointInsidePoly(PolyPolygon const&, Point const&)
+IsRectTouchesLine(PolyPolygon const&, Rectangle const&)
+ItemList::FindAttrib(unsigned short)
+JavaChildWindow::JavaChildWindow(Window*, ResId const&)
+JavaChildWindow::JavaChildWindow(Window*, long)
+JavaChildWindow::getParentWindowHandleForJava()
+JavaScriptDisableQueryBox_Impl::JavaScriptDisableQueryBox_Impl(Window*)
+Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindow
+Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindowSystemType
+Java_com_sun_star_bridges_jni_1uno_JNI_1info_1holder_finalize(__complex)
+Java_com_sun_star_bridges_jni_1uno_JNI_1proxy_finalize(__complex)

+KernGlyphs
+KeyCode::GetSymbolName(String const&, Window*) const
+KeyboardSettings::CopyData()
+LangConfigItem_Impl::LangConfigItem_Impl(rtl::OUString const&, rtl::OUString const&)
+LibInfoItem::LibInfoItem()
+LibInfoKey::LibInfoKey()
+Line::Enum(Link const&)
+Line::NearestPoint(Point const&) const
+LineLB::SelectEntryByList(XDashList const*, String const&, XDash const&, unsigned short)
+LineListBox::LineListBox(Window*, long)
+LinguMgr::UpdateAll()
+LinkStructArr::DeleteAndDestroy(unsigned short, unsigned short)
+ListBox::CalcWindowSizePixel(unsigned short) const
+ListBox::GetMRUEntries(unsigned short) const
+ListBox::GetMaxMRUCount() const
+ListBox::GetSeparatorPos() const
+ListBox::GetUserItemSize() const
+ListBox::IsDDAutoWidthEnabled() const
+ListBox::IsUserDrawEnabled() const
+ListBox::SetMRUEntries(String const&, unsigned short)
+ListBox::SetMaxMRUCount(unsigned short)
+ListBox::SetSeparatorPos()
+LngSvcMgr::RemoveLngSvcEvtBroadcaster(com::sun::star::uno::Reference<com::sun::star::linguistic2::XLinguServiceEventBroadcaster> const&)
+LngSvcMgr::SetAvailableCfgServiceLists(LinguDispatcher&, SvcInfoArray const&)
+LocaleDataWrapper::getCollatorImplementations() const
+LocaleDataWrapper::getTransliterations() const
+LongCurrencyBox::GetValue(unsigned short) const
+LongCurrencyBox::GetValuePos(BigInt) const
+LongCurrencyBox::InsertValue(BigInt, unsigned short)
+LongCurrencyBox::LongCurrencyBox(Window*, ResId const&)
+LongCurrencyBox::RemoveValue(BigInt)
+LongCurrencyField::ImplLoadRes(ResId const&)
+LongCurrencyField::LongCurrencyField(Window*, ResId const&)
+LongCurrencyFormatter::Denormalize(BigInt) const
+LongCurrencyFormatter::IsValueModified() const
+LongCurrencyFormatter::Normalize(BigInt) const
+LongCurrencyFormatter::SetEmptyValue()
+LotusConverterBase::Reset(int)
+LotusConverterBase::Reset(int, ScAddress const&)
+METWriter::METArc(Point, Point, Point)
+METWriter::METArcAtCurPos(Point, Point)
+MSDffImportRecords::Insert(MSDffImportRecords const*, unsigned short, unsigned short)
+MSDffImportRecords::Insert(SvxMSDffImportRec* const&, unsigned short&)
+MSDffImportRecords::Insert(SvxMSDffImportRec* const*, unsigned short)
+MSDffImportRecords::Remove(SvxMSDffImportRec* const&, unsigned short)
+MSDffImportRecords::Remove(unsigned short, unsigned short)
+MSFilterTracer::EndElement(rtl::OUString const&)
+MSFilterTracer::SetProperty(rtl::OUString const&, com::sun::star::uno::Any const&)
+MSFilterTracer::StartElement(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>)
+MachineSettings::CopyData()
+MacroOptionsDialog::MacroOptionsDialog(Window*, SbxVariable*)
+MacroOrganizer(short)
+MacroParser(RscFileInst&)
+MacroRecorder::GetParentWithID(Window*)
+MakeDefineName(ByteString const&)
+MakeObjectShellForOrganizer_Impl(String const&, unsigned char)
+MakeVariable(StarBASIC*, SbxObject*, char const*, unsigned int, SbxDataType, SbxClassType)
+MapCommandGroupToGroupID(short)
+MaskSet::MaskSet(SvxBmpMask*, long)
+Menu::ConvertPoint(Point&, Window*) const
+Menu::GetAccessibleDescription(unsigned short) const
+Menu::GetDisplayItemId(long) const
+Menu::GetDisplayText() const
+Menu::GetItemImageAngle(unsigned short) const
+Menu::GetItemImageMirrorMode(unsigned short) const
+Menu::GetItemStartEnd(unsigned short) const
+Menu::GetLineCount() const
+Menu::GetLogo() const
+Menu::IsItemVisible(unsigned short) const
+Menu::SetAccessibleDescription(unsigned short, String const&)
+Menu::SetLogo()
+Menu::SetLogo(MenuLogo const&)
+Menu::doLazyDelete()
+MenuBar::ShowFloatButton(unsigned char)
+MenuBar::ShowHideButton(unsigned char)
+MenuItemList::GetCharClass() const
+MenuMENU_CLIENT::MenuMENU_CLIENT(ResId const&, unsigned char)
+MergeDataFile::Dump()
+MergeDataFile::WriteError(ByteString const&)
+MessBox::GetModeImage(BmpColorMode) const
+MessBox::MessBox(unsigned short)
+MessBox::SetDefaultCheckBoxText()
+MessBox::SetModeImage(Image const&, BmpColorMode)
+MetaCommentAction::MetaCommentAction(unsigned char const*, unsigned int)
+MetricBox::RemoveValue(long, FieldUnit)
+MetricField::ConvertValue(long, unsigned short, FieldUnit, MapUnit)
+MirrorPoly(PolyPolygon&, Point const&, Point const&)
+MirrorRect(Rectangle&, Point const&, Point const&, int)
+MirrorXPoly(XPolyPolygon&, Point const&, Point const&)
+MiscSettings::SetDisablePrinting(unsigned char)
+MiscSettings::SetEnableATToolSupport(unsigned char)
+ModalityFilter::ModalityFilter(unsigned long)
+ModulWindow::LinkStubBasicErrorHdl(void*, void*)
+MoreButton::RemoveWindow(Window*)
+MoveXPoly(XPolyPolygon&, Size const&)
+MsLangId::convertIsoByteStringToLanguage(rtl::OString const&, char)
+MsLangId::convertLocaleToLanguageWithFallback(com::sun::star::lang::Locale const&)
+MsLangId::getFallbackLanguage(unsigned short)
+MsLangId::getRealLanguageWithoutConfig(unsigned short)
+MsLangId::getReplacementForObsoleteLanguage(unsigned short)
+MultiLineEdit::GetHScrollBar() const
+MultiLineEdit::GetLeftMargin() const
+MultiLineEdit::GetTextLines() const
+MultiLineEdit::IsFocusSelectionHideEnabled() const
+MultiLineEdit::IsRightToLeft() const
+MultiPropertySetHelper::MultiPropertySetHelper(rtl::OUString const*)
+MultiSelection::Append(long)
+MzString::MzString(MzString const*)
+MzString::MzString(char const*)
+MzString::MzString(char const*, int)
+MzString::MzString(int)
+MzString::append(char)
+MzString::c_str() const
+MzString::chop(int)
+MzString::empty() const
+MzString::length() const
+NPP_Destroy
+NPP_DestroyStream
+NPP_GetMIMEDescription
+NPP_GetValue
+NPP_Initialize
+NPP_New
+NPP_NewStream
+NPP_Print
+NPP_SetWindow
+NPP_Shutdown
+NPP_StreamAsFile
+NPP_URLNotify
+NPP_Write
+NPP_WriteReady
+NWPixmapCache::~NWPixmapCache()
+NameBuffer::Find(char const*, unsigned short&)
+NameBuffer::Reset()
+NameNode::IsOrderTree() const
+NameTranslator_Impl::NameTranslator_Impl()
+NameTranslator_Impl::UpdateTranslationTable()
+NativeNumberWrapper::isValidNatNum(com::sun::star::lang::Locale const&, short) const
+NeverRunsEver()
+NfCurrencyEntry::ApplyVariableInformation(NfCurrencyEntry const&)
+NfCurrencyEntry::IsEuro() const
+NfCurrencyEntry::NfCurrencyEntry()
+NfCurrencyEntry::SetEuro()
+NfShCurrencyEntries::DeleteAndDestroy(unsigned short, unsigned short)
+NoChaos::ReleaseItemPool()
+NotificationSettings::CopyData()
+NumberFormatCodeWrapper::getDefault(short, short) const
+NumericBox::GetValue(unsigned short) const
+NumericBox::GetValuePos(long) const
+NumericBox::RemoveValue(long)
+NumericFormatter::ConvertToFraction(long)
+NumericFormatter::ConvertToLong(Fraction const&)
+OChildCommitListen_Impl::OChildCommitListen_Impl(SfxBaseModel&)
+OChildCommitListen_Impl::OwnerIsDisposed()
+OInputSeekStream::OInputSeekStream(OWriteStream_Impl&, com::sun::star::uno::Reference<com::sun::star::io::XStream>, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, short)
+OInputSeekStream::OInputSeekStream(com::sun::star::uno::Reference<com::sun::star::io::XStream>, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, short)
+OInstanceProvider::OInstanceProvider(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+OLEObjCache::SetSize(unsigned long)
+OOo2OasisTransformer::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+OP_Text(SvStream&, unsigned short)
+ORegKey::ORegKey()
+ORegKey::closeSubKeys(void**, unsigned int)
+ORegistry::countSubKeys(ORegKey*)
+ORegistry::createLink(void*, rtl::OUString const&, rtl::OUString const&)
+ORegistry::isKeyOpen(rtl::OUString const&) const
+OUStringsSort_Impl::Insert(OUStringsSort_Impl const*, unsigned short, unsigned short)
+OUStringsSort_Impl::Insert(rtl::OUString* const&, unsigned short&)
+OUStringsSort_Impl::Insert(rtl::OUString* const*, unsigned short)
+OUStringsSort_Impl::Remove(rtl::OUString* const&, unsigned short)
+OUStringsSort_Impl::Remove(unsigned short, unsigned short)
+Oasis2OOoTransformer::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+Octree::AddColor(BitmapColor const&)
+Octree::Octree(unsigned long)
+OffSetAccumulator<unsigned int, unsigned short>::offset()
+OffSetAccumulator<unsigned short, unsigned int>::offset()
+OleEmbeddedObject::CreateOleComponentAndLoad_Impl(OleComponent*)
+OleEmbeddedObject::CreateOleComponentFromClipboard_Impl(OleComponent*)
+OleEmbeddedObject::CreateOleComponent_Impl(OleComponent*)
+OleEmbeddedObject::CreateTempURLEmpty_Impl()
+OleEmbeddedObject::GetIntermediateVerbsSequence_Impl(int)
+OleEmbeddedObject::GetReachableStatesList_Impl(com::sun::star::uno::Sequence<com::sun::star::embed::VerbDescriptor> const&)
+OleEmbeddedObject::GetStreamForSaving()
+OleEmbeddedObject::GetTempURL_Impl()
+OleEmbeddedObject::OleEmbeddedObject(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+OleEmbeddedObject::OnClosed_Impl()
+OleEmbeddedObject::OnIconChanged_Impl()
+OleEmbeddedObject::OnShowWindow_Impl(unsigned char)
+OleEmbeddedObject::OnViewChanged_Impl()
+OleEmbeddedObject::StoreObjectToStream(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream>)
+OleEmbeddedObject::SwitchComponentToRunningState_Impl()
+OlePicture::~OlePicture()
+OpenGL::AreTexturesResident(int, unsigned int const*, unsigned char*)
+OpenGL::ArrayElement(int)
+OpenGL::ColorPointer(int, unsigned int, int, void const*)
+OpenGL::CopyTexImage1D(unsigned int, int, unsigned int, int, int, int, int)
+OpenGL::CopyTexImage2D(unsigned int, int, unsigned int, int, int, int, int, int)
+OpenGL::CopyTexSubImage1D(unsigned int, int, int, int, int, int)
+OpenGL::CopyTexSubImage2D(unsigned int, int, int, int, int, int, int, int)
+OpenGL::DrawElements(unsigned int, int, unsigned int, void const*)
+OpenGL::GetIntegerv(unsigned int, int*)
+OpenGL::GetTexLevelParameterfv(unsigned int, int, unsigned int, float*)
+OpenGL::GetTexLevelParameteriv(unsigned int, int, unsigned int, int*)
+OpenGL::GetTexParameterfv(unsigned int, unsigned int, float*)
+OpenGL::GetTexParameteriv(unsigned int, unsigned int, int*)
+OpenGL::IndexPointer(unsigned int, int, void const*)
+OpenGL::InterleavedArrays(unsigned int, int, void const*)
+OpenGL::PixelStoref(unsigned int, float)
+OpenGL::PixelStorei(unsigned int, int)
+OpenGL::PixelTransferf(unsigned int, float)
+OpenGL::PixelTransferi(unsigned int, int)
+OpenGL::PrioritizeTextures(int, unsigned int const*, float const*)
+OpenGL::TexEnvf(unsigned int, unsigned int, float)
+OpenGL::TexEnviv(unsigned int, unsigned int, int const*)
+OpenGL::TexGend(unsigned int, unsigned int, double)
+OpenGL::TexGendv(unsigned int, unsigned int, double const*)
+OpenGL::TexGenf(unsigned int, unsigned int, float)
+OpenGL::TexGenfv(unsigned int, unsigned int, float const*)
+OpenGL::TexGeni(unsigned int, unsigned int, int)
+OpenGL::TexGeniv(unsigned int, unsigned int, int const*)
+OpenGL::TexImage1D(unsigned int, int, int, int, int, unsigned int, unsigned int, void const*)
+OpenGL::TexParameterf(unsigned int, unsigned int, float)
+OpenGL::TexParameterfv(unsigned int, unsigned int, float const*)
+OpenGL::TexParameteriv(unsigned int, unsigned int, int const*)
+OpenGL::TexSubImage1D(unsigned int, int, int, int, unsigned int, unsigned int, void const*)
+OpenGL::TexSubImage2D(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*)
+OptionHelper::showErrors()
+OptionHelper::showTests()
+Options::getInputFile(unsigned short)
+Options::getNumberOfOptions() const
+Options::getOptions()
+OptionsUserData::SetChecked(unsigned char)
+Outliner::Draw(OutputDevice*, Rectangle const&, Point const&)
+Outliner::EndSpelling()
+Outliner::GetAsianCompressionMode() const
+Outliner::GetBeginDropHdl() const
+Outliner::GetBigTextObjectStart() const
+Outliner::GetDefTab() const
+Outliner::GetDefaultLanguage() const
+Outliner::GetDocPos(Paragraph*)
+Outliner::GetEndDropHdl() const
+Outliner::GetFirstLineOffset(unsigned long)
+Outliner::GetForbiddenCharsTable() const
+Outliner::GetGlobalCharStretching(unsigned short&, unsigned short&)
+Outliner::GetHyphenator() const
+Outliner::GetModifyHdl() const
+Outliner::GetNotifyHdl() const
+Outliner::GetPolygon()
+Outliner::HasOnlineSpellErrors() const
+Outliner::ImpDropped(OutlinerView*)
+Outliner::IsAddExtLeading() const
+Outliner::IsAutoColorEnabled() const
+Outliner::IsFixedCellHeight() const
+Outliner::IsKernAsianPunctuation() const
+Outliner::SetBigTextObjectStart(unsigned short)
+Outliner::SetModifyHdl(Link const&)
+Outliner::SetPolygon(basegfx::B2DPolyPolygon const&)
+Outliner::SetVisible(Paragraph*, unsigned char)
+OutlinerInfo::GetParaCharCount(unsigned long) const
+OutlinerInfo::GetParaRect(unsigned long) const
+OutlinerInfo::OutlinerInfo()
+OutlinerInfo::SetTextObj(SdDrawDocument*, SdrRectObj*, OutputDevice*)
+OutlinerInfo::~OutlinerInfo()
+OutlinerParaObject::Create(SvStream&, SfxItemPool*)
+OutlinerParaObject::FinishStore()
+OutlinerParaObject::MergeParaAttribs(SfxItemSet const&, unsigned short, unsigned short)
+OutlinerParaObject::PrepareStore(SfxStyleSheetPool*)
+OutlinerParaObject::RemoveCharAttribs(unsigned short)
+OutlinerParaObject::RemoveParaAttribs(unsigned short)
+OutlinerParaObject::SetLRSpaceItemFlags(unsigned char)
+OutlinerParaObject::Store(SvStream&) const
+OutlinerView::AdjustDepth(Paragraph*, short, unsigned char)
+OutlinerView::AdjustHeight(Paragraph*, long, unsigned char)
+OutlinerView::Collapse(Paragraph*)
+OutlinerView::CompleteAutoCorrect()
+OutlinerView::EnablePaste(unsigned char)
+OutlinerView::Expand(Paragraph*)
+OutlinerView::GetFieldUnderMousePointer(unsigned short&, unsigned short&) const
+OutlinerView::ImpDragScroll(Point const&)
+OutlinerView::ImpGetDocPos(Point const&)
+OutlinerView::ImpGetInsertionPara(Point const&)
+OutlinerView::ImpShowDDCursor()
+OutlinerView::Redo()
+OutlinerView::RemoveCharAttribs(unsigned long, unsigned short)
+OutlinerView::SetOutliner(Outliner*)
+OutlinerView::SetReadOnly(unsigned char)
+OutlinerView::SetStyleSheet(SfxStyleSheet*)
+OutlinerView::SetVisArea(Rectangle const&)
+OutlinerView::ShowBullets(unsigned char, unsigned char)
+OutlinerView::SpellIgnoreWord()
+OutlinerView::StartSpeller(unsigned char)
+OutlinerView::Undo()
+OutlinerView::Write(SvStream&, EETextFormat)
+OutputDevice::GetFontCharMap(FontCharMap&) const::CharMapCacheItem::CharMapCacheItem()
+OutputDevice::GetFontCharMap(FontCharMap&) const::CharMapCacheItem::~CharMapCacheItem()
+OutputDevice::GetFontSubstitute(unsigned short, String&, String&, unsigned short&)
+OutputDevice::GetOpenGL()
+OutputDevice::GetPixel(Polygon const&) const
+OutputDevice::ImplGetTextWidth(SalLayout const&) const
+OutputDevice::IsTextUnderlineAbove(Font const&)
+OutputDevice::LogicToLogic(long*, unsigned short, MapMode const*, MapMode const*) const
+PBMWriter::ImplCallback(unsigned short)
+PGMWriter::ImplCallback(unsigned short)
+PPMWriter::ImplCallback(unsigned short)
+PPTTextCharacterStyleAtomInterpreter::Read(SvStream&, DffRecordHeader const&)
+PPTTextCharacterStyleAtomInterpreter::~PPTTextCharacterStyleAtomInterpreter()
+PPTTextObj::PPTTextObj(PPTTextObj&)
+PPTTextParagraphStyleAtomInterpreter::~PPTTextParagraphStyleAtomInterpreter()
+PPTTextSpecInfo::~PPTTextSpecInfo()
+PSDReader::ImplCallback(unsigned short)
+PSWriter::ImplGenerateBitmap(unsigned short, int, VirtualDevice&, Point const&, Size const&, int)
+PSWriter::MayCallback(unsigned long)
+PageSpan::getMarginLeft() const
+PageSpan::getMarginRight() const
+ParaPortionList::DbgCheck(EditDoc&)
+ParagraphList::GetVisPos(Paragraph*)
+ParagraphList::PrevVisible(Paragraph*) const
+ParagraphObj::ImplMapSize(com::sun::star::awt::Size const&)
+ParagraphObj::ParagraphObj(ParagraphObj&)
+Path::NewImp()
+PathDialog::SetPath(Edit const&)
+PatternBox::GetString(unsigned short) const
+PatternBox::GetStringPos(String const&) const
+PatternBox::InsertString(String const&, unsigned short)
+PatternBox::PatternBox(Window*, ResId const&)
+PatternBox::RemoveString(String const&)
+PatternField::PatternField(Window*, ResId const&)
+PatternFormatter::SelectFixedFont()
+PictWriter::WriteOpcode_BkPat(unsigned char)
+PictWriter::WriteOpcode_FillPat(unsigned char)
+PluginManager::~PluginManager()
+PluginModel::getImplementationName()
+PluginModel::supportsService(rtl::OUString const&)
+PolyPolygon::Distort(Rectangle const&, Polygon const&)
+PolyPolygon::GetSimple(PolyPolygon&) const
+Polygon::GetArea() const
+Polygon::GetDifference(PolyPolygon const&, PolyPolygon&) const
+Polygon::GetIntersection(PolyPolygon const&, PolyPolygon&) const
+Polygon::GetUnion(PolyPolygon const&, PolyPolygon&) const
+Polygon::GetXOR(PolyPolygon const&, PolyPolygon&) const
+Polygon::ImplGetFlagAry()
+Polygon::ImplGetPointAry()
+Polygon::IsControl(unsigned short) const
+Polygon::IsSmooth(unsigned short) const
+Polygon::Remove(unsigned short, unsigned short)
+Ppt97Animation::HasAfterEffect_DimAfterEffect() const
+Ppt97Animation::Ppt97Animation()
+PrintArgs
+Printer::GetCurrentPaperInfo() const
+Printer::Printer(Window const*)
+Printer::SetPaperFromInfo(vcl::PaperInfo const&)
+Prj::GetDirectoryData(ByteString)
+Prj::GetDirectoryList(unsigned short, unsigned short)
+Prj::InsertDirectory(ByteString, unsigned short, unsigned short, ByteString, ByteString const&)
+Prj::Prj()
+Prj::RemoveDirectory(ByteString)
+PropBrwMgr::GetChildWindowId()
+PropItem::Read(String&)
+ProposalList::Remove(rtl::OUString const&)
+PushButton::GetSymbolAlign() const
+QProToSc::DecToken(TokenId&)
+QProToSc::NegToken(TokenId&)
+QuitAgain_Impl(void*, void*)
+RASReader::ImplCallback(unsigned short)
+RBGroup::add(OCX_Control*)
+REResourceList::REResourceList()
+REResourceList::~REResourceList()
+RTFColorTbl::Remove(unsigned short, unsigned short)
+RTFColorTbl::Replace(Color const&, unsigned short)
+RTFColorTbl::Replace(Color const*, unsigned short, unsigned short)
+RTFColorTbl::_ForEach(unsigned short, unsigned short, unsigned char (*)(Color const&, void*), void*)
+RangeUniqueIdContainer::CreateId(UniqueItemId*)
+RangeUniqueIdContainer::CreateId(unsigned int, UniqueItemId*)
+RangeUniqueIdContainer::RangeUniqueIdContainer()
+RangeUniqueIdContainer::RangeUniqueIdContainer(Range const&)
+RangeUniqueIdContainer::~RangeUniqueIdContainer()
+ReadFileType(char const*)
+RegInfo::DeleteAppGroup(String const&)
+RegInfo::DeleteKey(String const&)
+RegInfo::GetKeyCount() const
+RegInfo::GetKeyName(unsigned short) const
+RegInfo::ReadKey(String const&) const
+RegInfo::ReadKey(String const&, String const&) const
+RegInfo::RegInfo()
+RegInfo::SetAppGroup(String const&)
+RegInfo::WriteKey(String const&, String const&)
+RegInfo::~RegInfo()
+RegisterAdditionalFunctions
+ReplaceWith(char*, char, char)
+ReportCrash
+RequestDocumentPassword::isAbort()
+ResData::Dump()
+ResMgr::GetFileName() const
+ResMgr::ImplGetLocale()
+ResMgr::ImplGetPrefix()
+ResizePoly(PolyPolygon&, Point const&, Fraction const&, Fraction const&)
+ResizeXPoly(XPolyPolygon&, Point const&, Fraction const&, Fraction const&)
+Resource::TestRes()
+Rot13
+RotatePoly(PolyPolygon&, Point const&, double, double)
+RscChar::MakeUTF8FromL(char*)
+RscCompiler::GetTmpFileName()
+RscCompiler::OpenInput(ByteString const&)
+RscDefineList::Befor(RscDefine const*, RscDefine const*)
+RscFileInst::RscFileInst(RscTypCont*, unsigned long, unsigned long, ByteString const&)
+RscFileTab::ChangeDef(ByteString const&, RscExpression*)
+RscFileTab::ChangeDef(ByteString const&, int)
+RscFileTab::ChangeDefName(ByteString const&, ByteString const&)
+RscFileTab::DeleteDef(ByteString const&)
+RscFileTab::DeleteFile(unsigned long)
+RscFileTab::IsDefUsed(ByteString const&)
+RscFirstSysDepend::RscFirstSysDepend(unsigned int, unsigned int, RscTop*)
+RscId::GetMacro() const
+RscId::IsSetNames()
+RscNameTable::Put(char const*, unsigned int, RscTop*)
+RscNameTable::Put(unsigned int, unsigned int)
+RscTypCont::Delete(unsigned int, RscId const&)
+RscTypCont::FillNameIdList(REResourceList*, unsigned long)
+RscTypCont::MakeConsistent(RscInconsList*)
+RscTypCont::Search(unsigned int, RscId const&)
+RtfParserStates_Impl::Replace(RtfParserState_Impl const&, unsigned short)
+RtfParserStates_Impl::Replace(RtfParserState_Impl const*, unsigned short, unsigned short)
+RtfParserStates_Impl::_ForEach(unsigned short, unsigned short, unsigned char (*)(RtfParserState_Impl const&, void*), void*)
+Ruler::GetArrowCount() const
+Ruler::GetArrows() const
+Ruler::GetBorderCount() const
+Ruler::GetBorders() const
+Ruler::GetDocType(Point const&, RulerType, unsigned short*) const
+Ruler::GetIndentCount() const
+Ruler::GetIndents() const
+Ruler::GetLineCount() const
+Ruler::GetLines() const
+Ruler::GetMargin1Style() const
+Ruler::GetMargin2Style() const
+Ruler::GetPageWidth() const
+Ruler::SetArrows(unsigned short, RulerArrow const*)
+SByteStringList::CleanUp()
+SByteStringList::RemoveString(ByteString const&)
+SFTreeListBox::ExpandAllTrees()
+SFTreeListBox::FindEntry(SvLBoxEntry*, String const&, unsigned char)
+SFTreeListBox::UpdateEntries()
+SFTreeListBox::dialogSort1(com::sun::star::uno::Reference<com::sun::star::script::browse::XBrowseNode>, com::sun::star::uno::Reference<com::sun::star::script::browse::XBrowseNode>)
+SQLyy_scan_string(char const*)
+SQLyyget_debug()
+SQLyyget_in()
+SQLyyget_leng()
+SQLyyget_out()
+SQLyyget_text()
+SQLyylex_destroy()
+SQLyypush_buffer_state(yy_buffer_state*)
+SQLyyset_debug(int)
+SQLyyset_in(_IO_FILE*)
+SQLyyset_out(_IO_FILE*)
+SScrAreas::DeleteAndDestroy(unsigned short, unsigned short)
+SScrAreas::Insert(SScrAreas const*, unsigned short, unsigned short)
+SScrAreas::Insert(SwScrollArea* const&, unsigned short&)
+SScrAreas::Insert(SwScrollArea* const*, unsigned short)
+SUniStringList::IsString(String*)
+SUniStringList::PutString(String*)
+SUniStringList::RemoveString(String const&)
+SUniStringList::SUniStringList()
+SUniStringList::~SUniStringList()
+SalConverterCache::GetT2UConverter(unsigned short)
+SalConverterCache::~SalConverterCache()
+SalDisplay::PrintEvent(ByteString const&, _XEvent*) const
+SalDisplay::PrintInfo() const
+SalGraphics::DrawBitmap(SalTwoRect const*, SalBitmap const&, unsigned int, OutputDevice const*)
+SalGraphics::drawAlphaBitmap(SalTwoRect const&, SalBitmap const&, SalBitmap const&)
+SalGtkFilePicker::dialogSizeChanged()
+SalGtkFilePicker::helpRequested(com::sun::star::ui::dialogs::FilePickerEvent) const
+SalI18N_InputContext::CommitStringCallback(unsigned short*, unsigned long)
+SalI18N_InputContext::SetPreeditState(int)
+SalI18N_KeyboardExtension::LookupKeysymInGroup(unsigned int, unsigned int, unsigned int) const
+SalLayout::Reference() const
+SalVisual::Convert(int&, int&, int&, int&)
+Sal_queryFaxNumber
+Sane::Stop()
+SbCompare_Properties_Impl(void const*, void const*)
+SbCompare_PropertyValues_Impl(void const*, void const*)
+SbGetIoSystem()
+SbMethod::GetLocals()
+SbMethod::GetStatics()
+SbPropertyContainer::SbPropertyContainer()
+SbPropertySetInfo::SbPropertySetInfo()
+SbRtl_LINEPROP(StarBASIC*, SbxArray&, unsigned char)
+SbRtl_LINE_1(StarBASIC*, SbxArray&, unsigned char)
+SbRtl_LINE_15(StarBASIC*, SbxArray&, unsigned char)
+SbRtl_LINE_2(StarBASIC*, SbxArray&, unsigned char)
+SbTextPortions::Remove(unsigned short, unsigned short)
+SbTextPortions::Replace(SbTextPortion const&, unsigned short)
+SbTextPortions::Replace(SbTextPortion const*, unsigned short, unsigned short)
+SbTextPortions::SbTextPortions(unsigned short, unsigned char)
+SbTextPortions::_ForEach(unsigned short, unsigned short, unsigned char (*)(SbTextPortion const&, void*), void*)
+SbiBreakpoints::Insert(unsigned short const&, unsigned short)
+SbiBreakpoints::Replace(unsigned short const&, unsigned short)
+SbiBreakpoints::Replace(unsigned short const*, unsigned short, unsigned short)
+SbiBreakpoints::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned short const&, void*), void*)
+SbiBuffer::Add(void const*, unsigned short)
+SbiBuffer::Align(int)
+SbiDisas::Disas(SvStream&)
+SbiDisas::PromptOp(String&)
+SbiExprList::Get(short)
+SbiExprNode::IsString()
+SbiExpression::SbiExpression(SbiParser*, SbiToken, unsigned char)
+SbiExpression::SbiExpression(SbiParser*, String const&, unsigned char)
+SbiGlobals::~SbiGlobals()
+SbiImage::Load(SvStream&)
+SbiIoSystem::NextChannel()
+SbiParser::CloseJavaBlock()
+SbiParser::JavaBreak()
+SbiParser::JavaContinue()
+SbiParser::JavaFor()
+SbiParser::JavaFunction()
+SbiParser::JavaIf()
+SbiParser::JavaNew()
+SbiParser::JavaReturn()
+SbiParser::JavaStmntBlock(SbiToken)
+SbiParser::JavaThis()
+SbiParser::JavaVar()
+SbiParser::JavaWhile()
+SbiParser::JavaWith()
+SbiParser::OpenJavaBlock(SbiToken, SbiExprNode*)
+SbiRuntime::GetParams()
+SbiSymPool::Clear()
+SbxAlias::SbxAlias(String const&, SbxVariable*)
+SbxAppData::~SbxAppData()
+SbxBase::StaticEnableBroadcasting(unsigned char)
+SbxDecimal::SbxDecimal()
+SbxDecimal::getByte(unsigned char&)
+SbxDecimal::getChar(unsigned short&)
+SbxDecimal::getInt(int&)
+SbxDecimal::getLong(int&)
+SbxDecimal::getShort(short&)
+SbxDecimal::getString(String&)
+SbxDecimal::getUInt(unsigned int&)
+SbxDecimal::getULong(unsigned int&)
+SbxDecimal::getUShort(unsigned short&)
+SbxDecimal::setShort(short)
+SbxDecimal::setString(String*)
+SbxDecimal::setUShort(unsigned short)
+SbxDimArray::GetRef(SbxArray*)
+SbxDimArray::GetRef(short const*)
+SbxDimArray::GetRef32(int const*)
+SbxDimArray::Offset(SbxArray*)
+SbxDimArray::Put(SbxVariable*, SbxArray*)
+SbxInfo::AddParam(SbxParamInfo const&)
+SbxMethod::Run(SbxValues*)
+SbxObject::GarbageCollection(unsigned long)
+SbxObject::SetPos(SbxVariable*, unsigned short)
+SbxObject::VCPtrInsert(SbxVariable*)
+SbxObject::VCPtrRemove(SbxVariable*)
+SbxValue::GetData() const
+SbxValue::GetErr() const
+SbxValue::GetInt() const
+SbxValue::GetLong64() const
+SbxValue::GetNoBroadcast(SbxValues&)
+SbxValue::GetULong64() const
+SbxValue::HasObject() const
+SbxValue::PutData(void*)
+SbxValue::PutDecimal(SbxDecimal*)
+SbxValue::PutLong64(SbxINT64 const&)
+SbxValue::PutString(unsigned short const*)
+SbxValue::PutULong64(SbxUINT64 const&)
+SbxValue::PutpChar(unsigned short const*)
+SbxValues::SbxValues(BigInt const&)
+ScAcceptChgDlg::SetMyStaticData()
+ScAccessibilityEditSource::IsDirty() const
+ScAccessibilityEditSource::SetDoUpdateData(unsigned char)
+ScAccessibleContextBase::CommitDefunc() const
+ScAccessibleCsvControl::implGetRelPos(Point const&) const
+ScAccessiblePreviewCell::IsSelected(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleStateSet> const&)
+ScAccessiblePreviewCellTextData::LinkStubNotifyHdl(void*, void*)
+ScAccessiblePreviewHeaderCellTextData::LinkStubNotifyHdl(void*, void*)
+ScAddInAsyncs::Insert(ScAddInAsync* const&, unsigned short&)
+ScAddInAsyncs::Insert(ScAddInAsync* const*, unsigned short)
+ScAddInAsyncs::Insert(ScAddInAsyncs const*, unsigned short, unsigned short)
+ScAddInDocs::DeleteAndDestroy(unsigned short, unsigned short)
+ScAddInDocs::Insert(ScAddInDocs const*, unsigned short, unsigned short)
+ScAddInDocs::Insert(ScDocument* const&, unsigned short&)
+ScAddInDocs::Insert(ScDocument* const*, unsigned short)
+ScAddInDocs::Remove(ScDocument* const&, unsigned short)
+ScAddress::Details::SetPos(ScDocument const*, ScAddress const&)
+ScAddress::GetText() const
+ScArea::Clear()
+ScArea::GetString(String&, unsigned char, ScDocument*, ScAddress::Details const&) const
+ScAttrArray::TestData() const
+ScAutoFormatData::SetNumFormat(unsigned short, ScNumFormatAbbrev const&)
+ScBackgroundCollector::AddRange(ScRange const&)
+ScBackgroundCollector::GetHighlightColor() const
+ScBackgroundCollector::ScBackgroundCollector(ScDocument*)
+ScBaseCell::LoadNote(SvStream&, ScDocument*)
+ScBitMaskCompressedArray<int, unsigned char>::CopyFromOred(ScBitMaskCompressedArray<int, unsigned char> const&, int, int, unsigned char const&, long)
+ScBitMaskCompressedArray<int, unsigned char>::ScBitMaskCompressedArray(int, unsigned char const&, unsigned long)
+ScBitMaskCompressedArray<int, unsigned char>::ScBitMaskCompressedArray(int, unsigned char const*, unsigned long)
+ScCellFieldObj::ScCellFieldObj()
+ScChangeAction::DependsOn(ScChangeAction*) const
+ScChangeAction::RemoveDeleted(ScChangeAction const*)
+ScChangeAction::RemoveDependent(ScChangeAction*)
+ScChangeAction::RemoveLink(ScChangeAction*)
+ScChangeAction::StoreCell(ScBaseCell*, SvStream&, ScMultipleWriteHeader&)
+ScChangeTrack::AppendContent(ScAddress const&, ScBaseCell const*, ScDocument*)
+ScChangeTrack::AppendContent(ScAddress const&, String const&)
+ScChangeTrack::SearchGeneratedDelContentAt(ScBigAddress const&, ScChangeActionType) const
+ScChangeTrackingExportHelper::WriteChangeViewSettings()
+ScChartPositioner::AddToRangeList(ScRange const&)
+ScChartPositioner::AddToRangeList(ScRangeListRef const&)
+ScChartPositioner::IsAtCursor(ScAddress const&) const
+ScColumn::GetFirstEntryPos() const
+ScColumn::GetLastAttrPos() const
+ScColumn::GetLastEntryPos() const
+ScColumn::Load(SvStream&, ScMultipleReadHeader&)
+ScColumn::Save(SvStream&, ScMultipleWriteHeader&) const
+ScColumn::SetNewRow(int, int)
+ScCompiler::AdjustReference(SingleRefData&)
+ScCompressedArray<int, unsigned char>::CopyFrom(ScCompressedArray<int, unsigned char> const&, int, int, long)
+ScCompressedArray<int, unsigned char>::DataEntry::DataEntry()
+ScCompressedArray<int, unsigned char>::FillDataArray(int, int, unsigned char*) const
+ScCompressedArray<int, unsigned char>::GetDataEntry(unsigned long) const
+ScCompressedArray<int, unsigned char>::GetLastUnequalAccess(int, unsigned char const&)
+ScCompressedArray<int, unsigned char>::GetPrevValue(unsigned long&, int&) const
+ScCompressedArray<int, unsigned char>::GetValue(int, unsigned long&, int&, int&) const
+ScCompressedArray<int, unsigned short>::DataEntry::DataEntry()
+ScCompressedArray<int, unsigned short>::FillDataArray(int, int, unsigned short*) const
+ScCompressedArray<int, unsigned short>::GetPrevValue(unsigned long&, int&) const
+ScCompressedArray<int, unsigned short>::GetValue(int, unsigned long&, int&, int&) const
+ScConditionalFormats_Impl::Insert(ScConditionalFormat* const&, unsigned short&)
+ScConditionalFormats_Impl::Insert(ScConditionalFormat* const*, unsigned short)
+ScConditionalFormats_Impl::Insert(ScConditionalFormats_Impl const*, unsigned short, unsigned short)
+ScConditionalFormats_Impl::Remove(ScConditionalFormat* const&, unsigned short)
+ScConditionalFormats_Impl::Remove(unsigned short, unsigned short)
+ScContentTree::AdjustTitle()
+ScCoupledCompressedArrayIterator<int, unsigned char, unsigned short>::GetIterStart() const
+ScCoupledCompressedArrayIterator<int, unsigned char, unsigned short>::Resync(int)
+ScCsvTableBox::SetByteStrings(ByteString const*, unsigned short, String const&, unsigned short, bool)
+ScDBData::GetTargetName(String const&) const
+ScDLL::Exit()
+ScDLL::FillStatusBar(StatusBar&)
+ScDPDateGroupHelper::~ScDPDateGroupHelper()
+ScDPFunctionDlg_Dummy()
+ScDPFunctionListBox::ScDPFunctionListBox(Window*, long)
+ScDPSaveData::Store(SvStream&) const
+ScDPSaveDimension::ResetLayoutName()
+ScDPSaveDimension::SetSubTotals(unsigned char)
+ScDPSource::DumpState(ScDocument*, ScAddress const&)
+ScDataPilotSourceTypeDlg::IsSelection() const
+ScDatabaseRangeObj::GetImportParam(ScImportParam&) const
+ScDatabaseRangeObj::GetSortParam(ScSortParam&) const
+ScDatabaseRangeObj::SetImportParam(ScImportParam const&)
+ScDatabaseRangeObj::SetSortParam(ScSortParam const&)
+ScDate_DaysInMonth
+ScDate_DaysInYear
+ScDate_GetDiffWeeks
+ScDate_GetDiffYears
+ScDate_IsLeapYear
+ScDate_WeeksInYear
+ScDdeLink::NewData(unsigned long, unsigned long)
+ScDocShell::GetTabParam(SfxItemSet const*, unsigned short, short&)
+ScDocShell::RemoveUnknownObjects()
+ScDocument::AddToImpExpLog(ScImpExpLogMsg const&)
+ScDocument::AddToImpExpLog(ScImpExpLogMsg*)
+ScDocument::ApplyFlags(short, int, short, int, ScMarkData const&, short)
+ScDocument::ClearDrawPage(short)
+ScDocument::DeleteObjects(short)
+ScDocument::GetErrCode(short, int, short, unsigned short&)
+ScDocument::GetErrorData(short, int, short) const
+ScDocument::GetLastFlaggedCol(short) const
+ScDocument::GetWeightedCount() const
+ScDocument::HasControl(short, Rectangle const&)
+ScDocument::HasLines(ScRange const&, Rectangle&) const
+ScDocument::HasMacroCallsAfterLoad()
+ScDocument::InvalidateControls(Window*, short, Rectangle const&)
+ScDocument::IsOverlapped(short, int, short) const
+ScDocument::IsSelectedBlockEditable(short, int, short, int, ScMarkData const&) const
+ScDocument::IsSelectedOrBlockEditable(short, int, short, int, ScMarkData const&) const
+ScDocument::IsSelectionOrBlockEditable(short, short, int, short, int, ScMarkData const&) const
+ScDocument::Load(SvStream&, ScProgress*)
+ScDocument::LoadPool(SvStream&, unsigned char)
+ScDocument::PutCell(ScAddress const&, ScBaseCell*, unsigned long, unsigned char)
+ScDocument::RemoveFlags(short, int, short, int, ScMarkData const&, short)
+ScDocument::Save(SvStream&, ScProgress*) const
+ScDocument::SavePool(SvStream&) const
+ScDocument::SetChartCollection(ScChartCollection*)
+ScDocument::SetConditionalUsed(unsigned long)
+ScDocument::SetDirtyVar()
+ScDocument::SetLinkManager(SvxLinkManager*)
+ScDocument::SetValidationUsed(unsigned long)
+ScDocument::StopAnimations(short, Window*)
+ScDocument::UpdatePageBreaks()
+ScDocumentPool::MyLoadCompleted()
+ScDoubleField::ScDoubleField(Window*, long)
+ScDrawLayer::GetDefTextHeight() const
+ScDrawStringsVars::IsRightToLeftAttr() const
+ScDrawStringsVars::ResetText()
+ScDrawView::ScDrawView(OutputDevice*, ScDocument*, short)
+ScEditBox::ScEditBox(Window*, long)
+ScEditCell::Clone(ScDocument*) const
+ScEditCell::ScEditCell(ScDocument*)
+ScEditCell::ScEditCell(SvStream&, unsigned short, ScDocument*)
+ScEditEngineTextObj::SetText(String const&)
+ScEditViewForwarder::GrabFocus()
+ScEditViewHint::ScEditViewHint()
+ScEditableTester::Reset()
+ScEmptyEnumerationAccess::ScEmptyEnumerationAccess()
+ScExpandedFixedText::ScExpandedFixedText(Window*, long)
+ScExportExcel234(SvStream&, ScDocument*, ExportFormatExcel, unsigned short)
+ScExportLotus123(SvStream&, ScDocument*, ExportFormatLotus, unsigned short)
+ScFilterDetect::impl_createFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+ScFormEditData::RestoreValues()
+ScFormatShell::ExecBckCol(SfxRequest&)
+ScFormatShell::GetBckColState(SfxItemSet&)
+ScFormulaCell::HasDBArea() const
+ScFormulaCell::ScFormulaCell()
+ScFormulaCell::ScFormulaCell(ScDocument*, ScAddress const&, SvStream&, ScMultipleReadHeader&)
+ScFormulaDlg::EditFuncParas(unsigned short)
+ScFormulaDlg::LinkStubScrollHdl(void*, void*)
+ScFormulaDlg::UpdateFunctionDesc()
+ScFormulaUtil::GetDefaultFuncDesc()
+ScGridWindow::DrawRefMark(short, int, short, int, Color const&, unsigned char)
+ScGridWindow::OutlinerViewPaint(Rectangle const&)
+ScGroupDlg::GetRowsChecked() const
+ScHTMLColOffset::Insert(ScHTMLColOffset const*, unsigned short, unsigned short)
+ScHTMLColOffset::Insert(unsigned long const&, unsigned short&)
+ScHTMLColOffset::Insert(unsigned long const*, unsigned short)
+ScHTMLColOffset::Remove(unsigned long const&, unsigned short)
+ScHTMLColOffset_SAR::Replace(unsigned long const&, unsigned short)
+ScHTMLColOffset_SAR::Replace(unsigned long const*, unsigned short, unsigned short)
+ScHTMLColOffset_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned long const&, void*), void*)
+ScHTMLQueryParser::GetTable(unsigned short) const
+ScHeaderFieldObj::ScHeaderFieldObj()
+ScHeaderFooterContentObj::ScHeaderFooterContentObj()
+ScImpExpLogMsg::GetMsg(ScImpExpMsg)
+ScImpExpLogMsg::ScImpExpLogMsg(ScImpExpMsg)
+ScImpExpLogMsg::ScImpExpLogMsg(ScImpExpMsg, String const&)
+ScImpExpLogMsg::ScImpExpLogMsg(ScImpExpMsg, String const&, String const&)
+ScImpExpLogMsg::Set(ScImpExpMsg, String const*, String const*)
+ScImportExcel(SfxMedium&, ScDocument*)
+ScImportParam::Clear()
+ScInputHandler::ActivateInputWindow(String const&, ESelection const&)
+ScInputHandler::SetAllUpdateMode(unsigned char)
+ScInputStatusItem::ScInputStatusItem(unsigned short, short, short, int, short, int, short, int, String const&, EditTextObject const*)
+ScInputWindow::GetTextString()
+ScInterpreter::MFastMult(ScMatrix*, ScMatrix*, ScMatrix*, unsigned long, unsigned long, unsigned long)
+ScInterpreter::MFastSub(ScMatrix*, ScMatrix*, ScMatrix*, unsigned long, unsigned long)
+ScInterpreter::MFastTrans(ScMatrix*, ScMatrix*, unsigned long, unsigned long)
+ScInterpreter::ScDefPar()
+ScLeftFooterEditPage::GetRanges()
+ScLeftHeaderEditPage::GetRanges()
+ScLibOptions::ScLibOptions()
+ScListBox::ScListBox(Window*, long)
+ScMarkArray::MoveTo(int, int, ScMarkArray&)
+ScMarkArray::SetMark(int, unsigned char)
+ScMarkArray::SwapCol(ScMarkArray&)
+ScMatrix::FillDoubleLowerLeft(double, unsigned long)
+ScMatrix::MatCopyUpperLeft(ScMatrix&) const
+ScMatrix::PutDoubleAndResetString(double, unsigned long, unsigned long)
+ScModelObj::GetOutputFactor() const
+ScModelObj::IsEmbedded() const
+ScModule::CloseDialogs()
+ScModule::SetInputWindow(ScInputWindow*)
+ScMyCellInfo::ScMyCellInfo()
+ScMyStylesImportHelper::AddCell(ScAddress const&)
+ScMyStylesImportHelper::AddRange(com::sun::star::table::CellRangeAddress const&)
+ScMyTableData::FindNextCol(int) const
+ScMyTables::CloseRow()
+ScNavigatorDlg::GetAreaAtCursor(String&)
+ScNavigatorDlg::GetDBAtCursor(String&)
+ScNoteCell::ScNoteCell(SvStream&, unsigned short)
+ScOutlineTable::Load(SvStream&)
+ScOutlineTable::Store(SvStream&)
+ScOutlineWindow::ScrollRel(long)
+ScOutputData::ConnectObject(com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&, SdrOle2Obj*)
+ScOutputData::DrawMark(Window*)
+ScOutputData::DrawPageBorder(short, int, short, int)
+ScOutputData::GetAvailableWidth(short, int, long)
+ScOutputData::PrintNoteMarks(List const&)
+ScPaintHint::ScPaintHint()
+ScPivot::DrawData()
+ScPivot::GetHeader() const
+ScPivot::SetFontBold(short, int, short, int)
+ScPivot::SetJustifyLeft(short, int, short, int)
+ScPivot::SetJustifyRight(short, int, short, int)
+ScPivotParam::Clear()
+ScPreviewLocationData::GetCell(Point const&, ScAddress&, Rectangle&) const
+ScPreviewShell::ScPreviewShell(SfxViewFrame*, ScPreviewShell const&)
+ScPreviewShell::ScPreviewShell(SfxViewFrame*, Window*)
+ScPreviewViewForwarder::FillTableInfo() const
+ScPrintCfg::OptionsChanged()
+ScPrintSettingsObj::ScPrintSettingsObj()
+ScPrivatSplit::SetXRange(Range)
+ScProgress::SetAllowInterpret(unsigned char)
+ScQProReader::IsEndOfFile()
+ScQueryEntry::Load(SvStream&)
+ScQueryEntry::Store(SvStream&) const
+ScQueryParam::Load(SvStream&)
+ScRTFColTwips::Insert(ScRTFColTwips const*, unsigned short, unsigned short)
+ScRTFColTwips::Insert(unsigned long const&, unsigned short&)
+ScRTFColTwips::Insert(unsigned long const*, unsigned short)
+ScRTFColTwips::Remove(unsigned long const&, unsigned short)
+ScRTFColTwips_SAR::Replace(unsigned long const&, unsigned short)
+ScRTFColTwips_SAR::Replace(unsigned long const*, unsigned short, unsigned short)
+ScRTFColTwips_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned long const&, void*), void*)
+ScRange::ExtendOne()
+ScRangeList::Clone() const
+ScRangeList::Find(ScRange const&) const
+ScRangeStringConverter::AppendString(rtl::OUString&, rtl::OUString const&, unsigned short)
+ScRawToken::GetReference()
+ScRawToken::Load(SvStream&, unsigned short)
+ScRawToken::Load30(SvStream&)
+ScRawToken::SetInt(int)
+ScRawToken::SetMatrix(ScMatrix*)
+ScRawToken::SetReference(ComplRefData&)
+ScRefEdit::SilentGrabFocus()
+ScRightFooterEditPage::GetRanges()
+ScRightHeaderEditPage::GetRanges()
+ScSelEntryDlg::GetSelectEntryPos() const
+ScServiceProvider::GetProviderName(unsigned short)
+ScShapeChilds::FindShape(_STL::vector<ScShapeChild, _STL::allocator<ScShapeChild> >&, com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&, ScShapeChild*&) const
+ScSimpleRefDlg::GetLastRefString()
+ScSpreadsheetSettingsObj::ScSpreadsheetSettingsObj(ScDocShell*)
+ScStringCell::ScStringCell(SvStream&, unsigned short)
+ScStyleObj::ScStyleObj()
+ScSubTotalDescriptorBase::GetData(ScSubTotalParam&) const
+ScSubTotalDescriptorBase::PutData(ScSubTotalParam const&)
+ScSummableCompressedArray<int, unsigned short>::ScSummableCompressedArray(int, unsigned short const&, unsigned long)
+ScSummableCompressedArray<int, unsigned short>::ScSummableCompressedArray(int, unsigned short const*, unsigned long)
+ScTPValidationError::GetRanges()
+ScTPValidationHelp::GetRanges()
+ScTPValidationValue::GetRanges()
+ScTabPageSortFields::GetRanges()
+ScTabPageSortOptions::GetRanges()
+ScTabView::ActiveCaptureMouse()
+ScTabView::ActivePixelToLogic(Point const&)
+ScTabView::ActiveReleaseMouse()
+ScTabView::DrawDragRect(short, int, short, int, ScSplitPos)
+ScTabView::EndSelection()
+ScTabView::GetSelectedChartName() const
+ScTabView::PaintCell(short, int, short)
+ScTabView::PaintLeftRow(int)
+ScTabView::PaintTopCol(short)
+ScTabView::SetActivePointer(ResId const&)
+ScTabViewObj::ScTabViewObj()
+ScTabViewObj::StartMouseListening()
+ScTabViewShell::ExecuteShowNIY(SfxRequest&)
+ScTabViewShell::GetEditChartName() const
+ScTabViewShell::IsChartDlgEdit() const
+ScTabViewShell::ResetChartArea()
+ScTabViewShell::ScTabViewShell(SfxViewFrame*, ScTabViewShell const&)
+ScTabViewShell::SetMySubShell(SfxShell*)
+ScTabViewShell::StateDisabled(SfxItemSet&)
+ScTabViewShell::TestFunction(unsigned short)
+ScTable::UpdateInsertTabOnlyCells(short)
+ScTableConditionalEntry::ScTableConditionalEntry()
+ScTableConditionalFormat::DataChanged()
+ScTableConditionalFormat::ScTableConditionalFormat()
+ScTableListItem::GetTableList(List&) const
+ScTableValidationObj::DataChanged()
+ScTableValidationObj::ScTableValidationObj()
+ScToken::IsRPNReferenceAbsName() const
+ScToken::Store(SvStream&) const
+ScTokenArray::HasName() const
+ScTokenArray::Store(SvStream&, ScAddress const&) const
+ScTokenIterator::First()
+ScTpCalcItem::ScTpCalcItem(unsigned short)
+ScTpCalcOptions::GetRanges()
+ScTpPrintItem::ScTpPrintItem(unsigned short)
+ScTpPrintOptions::GetRanges()
+ScTpSubTotalGroup::GetRanges()
+ScTpUserLists::GetRanges()
+ScTpViewItem::ScTpViewItem(unsigned short)
+ScUndoPivot::ScUndoPivot(ScDocShell*, ScArea const&, ScArea const&, ScDocument*, ScDocument*, ScPivot const*, ScPivot const*)
+ScUnoAddInHelpIdGenerator::ScUnoAddInHelpIdGenerator()
+ScUpdateRect::GetContDiff(short&, int&, short&, int&)
+ScUpdateRect::GetXorDiff(short&, int&, short&, int&, unsigned char&)
+ScValidationEntries_Impl::Insert(ScValidationData* const&, unsigned short&)
+ScValidationEntries_Impl::Insert(ScValidationData* const*, unsigned short)
+ScValidationEntries_Impl::Insert(ScValidationEntries_Impl const*, unsigned short, unsigned short)
+ScValidationEntries_Impl::Remove(ScValidationData* const&, unsigned short)
+ScValidationEntries_Impl::Remove(unsigned short, unsigned short)
+ScValueCell::ScValueCell(SvStream&, unsigned short)
+ScValueIterator::ScValueIterator(ScDocument*, short, int, short, short, int, short, unsigned char, unsigned char)
+ScVbaChart::DataLabels(com::sun::star::uno::Reference<org::openoffice::excel::XSeries>)
+ScVbaChart::getHasDataCaption(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&)
+ScVbaChart::getSeriesCount()
+ScVbaChart::getSeriesIndex(rtl::OUString)
+ScVbaChart::getSeriesName(int)
+ScVbaChart::getValue(int, int)
+ScVbaChart::getValuesCount(int)
+ScVbaChart::setHasDataCaption(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, bool)
+ScVbaChart::setSeriesName(int, rtl::OUString)
+ScVbaChartObject::getHeight()
+ScVbaChartObject::getLeft()
+ScVbaChartObject::getTop()
+ScVbaChartObject::getUnoObject()
+ScVbaChartObject::getWidth()
+ScVbaChartObject::setHeight(double)
+ScVbaChartObject::setLeft(double)
+ScVbaChartObject::setTop(double)
+ScVbaChartObject::setWidth(double)
+ScVbaCharts::ScVbaCharts(com::sun::star::uno::Reference<org::openoffice::vba::XHelperInterface> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+ScVbaColorFormat::setColorFormat(short)
+ScVbaControl::SetControl(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>, com::sun::star::uno::Reference<com::sun::star::drawing::XControlShape>)
+ScVbaControl::SetControl(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>, com::sun::star::uno::Reference<com::sun::star::drawing::XControlShape>)
+ScVbaControlFactory::ScVbaControlFactory(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XControlShape>)
+ScVbaControlFactory::createControl(short)
+ScVbaFormat<org::openoffice::excel::XRange>::getDefaultLocale()
+ScVbaFormat<org::openoffice::excel::XRange>::getXServiceInfo()
+ScVbaFormat<org::openoffice::excel::XRange>::setNumberFormat(com::sun::star::lang::Locale, rtl::OUString const&)
+ScVbaFormat<org::openoffice::excel::XStyle>::getAddIndent()
+ScVbaFormat<org::openoffice::excel::XStyle>::getDefaultLocale()
+ScVbaFormat<org::openoffice::excel::XStyle>::getXServiceInfo()
+ScVbaFormat<org::openoffice::excel::XStyle>::setAddIndent(com::sun::star::uno::Any const&)
+ScVbaFormat<org::openoffice::excel::XStyle>::setNumberFormat(com::sun::star::lang::Locale, rtl::OUString const&)
+ScVbaFormatConditions::ScVbaFormatConditions(com::sun::star::uno::Reference<org::openoffice::vba::XHelperInterface> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::sheet::XSheetConditionalEntries> const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&)
+ScVbaLineFormat::calculateArrowheadSize()
+ScVbaListBox::ScVbaListBox(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XControlShape>)
+ScVbaSeriesCollection::ScVbaSeriesCollection(com::sun::star::uno::Reference<org::openoffice::vba::XHelperInterface> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+ScVbaShape::ScVbaShape(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XShape>)
+ScVbaWorkbooks::getCurrentDelim()
+ScViewData::InitFrom(ScViewData const*)
+ScViewData::LastCellsX(ScHSplitPos) const
+ScViewData::LastCellsY(ScVSplitPos) const
+ScViewData::SetDocShell(ScDocShell*)
+ScViewData::UpdateOle(ScSplitPos)
+ScViewDataTable::~ScViewDataTable()
+ScViewFunc::DoSpellingChecker(unsigned char)
+ScViewFunc::LinkStubSpellError(void*, void*)
+ScViewFunc::PaintWidthHeight(unsigned char, int, int)
+ScXMLConverter::ConvertStringToDateTime(rtl::OUString const&, DateTime&, SvXMLUnitConverter*)
+ScXMLExport::GetMerge(com::sun::star::uno::Reference<com::sun::star::sheet::XSpreadsheet> const&, int, int, com::sun::star::table::CellRangeAddress&)
+ScXMLExport::IsAnnotationEqual(com::sun::star::uno::Reference<com::sun::star::table::XCell> const&, com::sun::star::uno::Reference<com::sun::star::table::XCell> const&)
+ScXMLExport::IsEditCell(com::sun::star::uno::Reference<com::sun::star::table::XCell> const&) const
+ScXMLExport::IsMatrix(com::sun::star::uno::Reference<com::sun::star::table::XCellRange> const&, com::sun::star::uno::Reference<com::sun::star::sheet::XSpreadsheet> const&, int, int, com::sun::star::table::CellRangeAddress&, unsigned char&) const
+ScXMLImport::GetStyleElemTokenMap()
+ScXMLImport::GetStylesAttrTokenMap()
+ScXMLImport::GetStylesElemTokenMap()
+ScXMLImport::GetTableRowCellAttrTokenMap()
+ScXMLImportWrapper::GetStatusIndicator(com::sun::star::uno::Reference<com::sun::star::frame::XModel>&)
+ScaDoubleList::Append(ScaAnyConverter&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, com::sun::star::uno::Any const&, unsigned char)
+ScaDoubleList::Append(ScaAnyConverter&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::uno::Any> > const&, unsigned char)
+ScaList::Insert(void*, unsigned int)
+ScaStringList::Contains(rtl::OUString const&) const
+ScalableBitmapXlfd::ScalableBitmapXlfd()
+ScannerManager::getImplementationName()
+ScannerManager::supportsService(rtl::OUString const&)
+ScfApiHelper::CreateInstanceWithArgs(SfxObjectShell*, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)
+ScfApiHelper::CreateInstanceWithArgs(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)
+ScfStreamProgressBar::ScfStreamProgressBar(SvStream&, SfxObjectShell*, String const&)
+SchConvertChartRangeForCalc
+SchConvertChartRangeForWriter
+SchGetChartData
+SchGetDefaultForColumnText
+SchGetDefaultForRowText
+SchGetModel
+SchMemChartInsertCols
+SchMemChartInsertRows
+SchMemChartRemoveCols
+SchMemChartRemoveRows
+SchMemChartResetTranslation
+SchMemChartSwapCols
+SchMemChartSwapRows
+SchMemChartUpdateTranslation
+SchNewMemChartCopy
+SchNewMemChartNone
+SchNewMemChartXY
+SchSetTransparent
+SchUpdate
+SchUpdateAttr
+SchXMLExport::SetProgress(int)
+SchXMLExportHelper::getCellAddress(int, int)
+SchXMLExportHelper::swapDataArray(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<double> >&)
+SchXMLImport::SchXMLImport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel>, com::sun::star::uno::Reference<com::sun::star::document::XGraphicObjectResolver>&, unsigned char, unsigned char)
+SchXMLImportHelper::GetAutoStyleAttrTokenMap()
+SchXMLImportHelper::GetLengthOfSeries()
+SchXMLImportHelper::GetNewLabeledDataSequence()
+SchXMLImportHelper::GetNumberOfSeries()
+SchXMLImportHelper::ResizeChartData(int, int)
+SchXMLSeriesHelper::getFirstCandleStickSeries(com::sun::star::uno::Reference<com::sun::star::chart2::XDiagram> const&)
+ScriptEventFactory::instance()
+ScriptTypePosInfos::Replace(ScriptTypePosInfo const&, unsigned short)
+ScriptTypePosInfos::Replace(ScriptTypePosInfo const*, unsigned short, unsigned short)
+ScriptTypePosInfos::_ForEach(unsigned short, unsigned short, unsigned char (*)(ScriptTypePosInfo const&, void*), void*)
+ScrollBarBox::ScrollBarBox(Window*, ResId const&)
+ScrollableWindow::MakeVisible(Rectangle const&, unsigned char)
+ScrollableWindow::ScrollLines(long, long)
+ScrollableWindow::ScrollPages(long, unsigned long, long, unsigned long)
+ScrollableWindow::ScrollableWindow(Window*, ResId const&, unsigned short)
+ScrollableWindow::SetLineSize(unsigned long, unsigned long)
+ScrollableWindow::SetVisibleSize(Size const&)
+SdAnimationPrmsUndoAction::SdAnimationPrmsUndoAction(SdDrawDocument*, SdrObject*)
+SdDLL::Exit()
+SdDocPreviewWin::SdDocPreviewWin(Window*)
+SdDocPreviewWin::SetGDIFile(GDIMetaFile*)
+SdDrawDocument::CreatePage(unsigned short)
+SdDrawDocument::MakeUniqueLayerNames()
+SdExportFileDialog::Execute()
+SdExportFileDialog::GetPath() const
+SdExportFileDialog::IsExportSelection() const
+SdExportFileDialog::ReqCurrentFilter() const
+SdExportFileDialog::SdExportFileDialog(unsigned char)
+SdExportFileDialog::SetPath(String const&)
+SdExportFileDialog::~SdExportFileDialog()
+SdFilterDetect::impl_createFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+SdGenericDrawPage::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+SdHtmlAttrPreview::GetColors(Color&, Color&, Color&, Color&, Color&) const
+SdModule::GetDefaultWritingMode() const
+SdOptions::SetRangeDefaults(unsigned long)
+SdOptionsGridItem::SdOptionsGridItem(unsigned short)
+SdOptionsPrint::SetPrinterOptions(SdOptionsPrint const*)
+SdOptionsZoomItem::SdOptionsZoomItem(unsigned short)
+SdOptionsZoomItem::SdOptionsZoomItem(unsigned short, SdOptions*, sd::FrameView*)
+SdOptionsZoomItem::SetOptions(SdOptions*) const
+SdPageObjsTLB::GetBookmarkList(unsigned short)
+SdPrintOptions::GetRanges()
+SdStyleSheetPool::EraseLayoutStyleSheets(String const&)
+SdStyleSheetPool::GetLayoutName() const
+SdTPAction::GetMacroName(String const&)
+SdTPAction::GetRanges()
+SdTpOptionsMisc::LinkStubModifyOriginalScaleHdl(void*, void*)
+SdTpOptionsMisc::LinkStubModifyScaleHdl(void*, void*)
+SdUndoGroup::GetAction(unsigned long) const
+SdUnoPseudoStyleFamily::getInternalStyleName(rtl::OUString const&, SdPage*)
+SdUnoSearchReplaceShape::SdUnoSearchReplaceShape(com::sun::star::drawing::XShape*)
+SdXCustomPresentationAccess::getSdCustomShowIdx(rtl::OUString const&) const
+SdXMLImExTransform2D::AddMatrix(basegfx::B2DHomMatrix const&)
+SdXMLImExTransform2D::AddScale(basegfx::B2DTuple const&)
+SdXMLImExTransform2D::AddSkewY(double)
+SdXMLImExTransform2D::SdXMLImExTransform2D(rtl::OUString const&, SvXMLUnitConverter const&)
+SdXMLImExTransform3D::AddRotateX(double)
+SdXMLImExTransform3D::AddRotateY(double)
+SdXMLImExTransform3D::AddRotateZ(double)
+SdXMLImExTransform3D::AddScale(basegfx::B3DTuple const&)
+SdXMLImExTransform3D::AddTranslate(basegfx::B3DTuple const&)
+SdXMLImport::ImportPoolDefaults(XMLPropStyleContext const*)
+SdXMLImport::SetProgress(int)
+SdXMLViewSettingsContext::SdXMLViewSettingsContext(SdXMLImport&, unsigned short, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&)
+SdXShape::SdXShape()
+SdrCreateView::ImpDelCreateAttr()
+SdrCreateView::ImpMakeCreateAttr()
+SdrCustomShapeDataItem::SdrCustomShapeDataItem(String const&)
+SdrCustomShapeEngineItem::SdrCustomShapeEngineItem(String const&)
+SdrCustomShapeGeometryItem::ClearPropertyValue(rtl::OUString const&, rtl::OUString const&)
+SdrCustomShapeReplacementURLItem::SdrCustomShapeReplacementURLItem(String const&)
+SdrDragView::ImpDelDragAttr()
+SdrDragView::ImpMakeDragAttr()
+SdrDragView::IsMoveOnlyDragObj(unsigned char) const
+SdrDragView::SetDetailedEdgeDragging(unsigned char)
+SdrDragView::SetDetailedEdgeDraggingLimit(unsigned short)
+SdrDragView::SetRubberEdgeDragging(unsigned char)
+SdrDragView::SetRubberEdgeDraggingLimit(unsigned short)
+SdrEdgeObj::ImpStripPolyPoints(XPolygon&) const
+SdrEditView::ImpBundleVirtObjOfMarkList()
+SdrEditView::MoveLayer(String const&, unsigned short)
+SdrEngineDefaults::LanguageHasChanged()
+SdrEscherImport::CheckMonotypeSorts() const
+SdrEscherImport::CheckTimesNewRoman() const
+SdrEscherImport::CheckWingdings() const
+SdrEscherImport::GetCharSet(unsigned int) const
+SdrEscherImport::IsFontAvailable(unsigned int) const
+SdrExchangeView::CutMarked(unsigned long)
+SdrExchangeView::GetPastePos(SdrObjList*, OutputDevice*)
+SdrExchangeView::IsExchangeFormatSupported(unsigned long) const
+SdrExchangeView::Paste(Bitmap const&, Point const&, SdrObjList*, unsigned int)
+SdrExchangeView::Paste(GDIMetaFile const&, Point const&, SdrObjList*, unsigned int)
+SdrExchangeView::YankMarked(unsigned long)
+SdrGlobalData::~SdrGlobalData()
+SdrGlueEditView::IsDeleteMarkedGluePointsPossible() const
+SdrGluePoint::Draw(OutputDevice&, SdrObject const*) const
+SdrGluePoint::Mirror(Point const&, Point const&, SdrObject const*)
+SdrGrafObj::GetGDIMetaFile() const
+SdrGrafObj::ImpSetGrafInfoToAttr()
+SdrGrafObj::SetFileName(String const&)
+SdrGrafObj::SetFilterName(String const&)
+SdrHdlBitmapSet::~SdrHdlBitmapSet()
+SdrHint::GetObjList() const
+SdrHint::GetRect() const
+SdrHint::SdrHint()
+SdrHint::SdrHint(SdrObject const&, Rectangle const&)
+SdrHint::SetObjList(SdrObjList const*)
+SdrHint::SetRect(Rectangle const&)
+SdrItemBrowser::ForceParent()
+SdrItemBrowser::SdrItemBrowser(SdrView&)
+SdrLayerAdmin::MoveLayer(SdrLayer*, unsigned short)
+SdrMark::GetObjList() const
+SdrMark::GetPage() const
+SdrMarkView::IsMoveOutside() const
+SdrMarkView::PickSomething(Point const&, short) const
+SdrMarkView::UnmarkGluePoint(SdrHdl const&)
+SdrMediaObj::getPreferredSize() const
+SdrMediaObj::hasPreferredSize() const
+SdrModel::BegUndo(SdrUndoGroup*)
+SdrModel::CheckConsistence() const
+SdrModel::GetNumberFormatter() const
+SdrObjEditView::AddTextEditOfs(MouseEvent&) const
+SdrObjEditView::Cut(unsigned long)
+SdrObjEditView::IsTextEditFrame() const
+SdrObjEditView::Paste(Window*, unsigned long)
+SdrObjEditView::SdrBeginTextEdit(SdrObject*, SdrPageView*, Window*, SdrOutliner*, OutlinerView*, unsigned char, unsigned char)
+SdrObjEditView::Yank(unsigned long)
+SdrObjFactory::MakeNewObjUserData(unsigned int, unsigned short, SdrObject*)
+SdrObject::ClearObjectItem(unsigned short)
+SdrObject::ForceAutoTimer()
+SdrObject::FreeGlobalDrawObjectItemPool()
+SdrObject::GetHTMLName() const
+SdrObject::SetHTMLName(String const&)
+SdrOle2Obj::CreatePersistName(SfxObjectShell*)
+SdrOle2Obj::SdrOle2Obj(svt::EmbeddedObjectRef const&, String const&, int)
+SdrOle2Obj::SdrOle2Obj(svt::EmbeddedObjectRef const&, int)
+SdrOle2Obj::SetGraphicToObj(Graphic const&, rtl::OUString const&)
+SdrPage::AddComment(sdr::Comment const&)
+SdrPage::GetBitmap(SetOfByte const&, int) const
+SdrPage::GetCommentByIndex(unsigned int)
+SdrPage::GetMetaFile(SetOfByte const&, int)
+SdrPage::ReplaceCommentByIndex(unsigned int, sdr::Comment const&)
+SdrPageView::GetActualGroupName() const
+SdrPageView::GetActualPathName(unsigned short) const
+SdrPageView::InvalidateAllWin(Rectangle const&, unsigned char)
+SdrPageView::RemovePageWindow(unsigned int)
+SdrPaintView::SetAllLayersLocked(unsigned char)
+SdrPaintView::SetAllLayersPrintable(unsigned char)
+SdrPaintView::SetAllLayersVisible(unsigned char)
+SdrPaintView::getColorConfig() const
+SdrPaintWindow::HideOverlay(Region const&)
+SdrPolyEditView::ImpCopyMarkedPoints()
+SdrPolyEditView::ShutMarkedObjects()
+SdrPowerPointImport::PPTSubstitute(unsigned short, unsigned short, unsigned int&, Font&, char) const
+SdrRectObj::SdrRectObj(SdrObjKind, Rectangle const&, SvStream&, String const&, unsigned short)
+SdrTextObj::NbcSetAutoGrowHeight(bool)
+SdrTextObj::NbcSetAutoGrowWidth(bool)
+SdrTextObj::NbcSetFitToSize(SdrFitToSizeType)
+SdrTextObj::NbcSetMaxTextFrameHeight(long)
+SdrTextObj::NbcSetMaxTextFrameWidth(long)
+SdrTextObj::StartTextAnimation(OutputDevice*, Point const&, long)
+SdrTextObj::StopTextAnimation(OutputDevice*, long)
+SdrUndoAttrObj::SetRepeatAttr(SfxItemSet const&)
+SdrUndoGroup::SdrUndoGroup(SdrModel&, String const&)
+SdrUndoGroup::push_front(SdrUndoAction*)
+SdrView::IsAllMarkPrevNextPossible() const
+SdrView::IsAllMarked() const
+SdrView::IsDeleteMarkedPossible() const
+SdrView::IsMarkPossible() const
+SdrView::MarkNext(Point const&, unsigned char)
+SdrView::MarkNext(unsigned char)
+SdrView::SetMarkedRect(Rectangle const&)
+SdrViewIter::FirstOutDev()
+SdrViewIter::FirstPageView()
+SdrViewIter::FirstWindow()
+SdrViewIter::NextOutDev()
+SdrViewIter::NextPageView()
+SdrViewIter::NextWindow()
+SdrViewIter::SdrViewIter(SdrModel const*)
+SdrVirtObj::SdrVirtObj(SdrObject&, Point const&)
+SearchAndReplace(String const&, String const&, String const&)
+SectReprArr::Insert(SectRepr* const&, unsigned short&)
+SectReprArr::Insert(SectRepr* const*, unsigned short)
+SectReprArr::Insert(SectReprArr const*, unsigned short, unsigned short)
+SectReprArr::Remove(SectRepr* const&, unsigned short)
+SectReprArr::Remove(unsigned short, unsigned short)
+SecurityEnvironment_NssImpl::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+SelectionEngine::ActivateDragMode()
+ServerFont::TransformPoint(Point const&) const
+SetLanguage
+SetLevel(unsigned char*, unsigned char)
+SetOfByte::GetClearBit(unsigned short) const
+SetOfByte::GetClearCount() const
+SetOfByte::GetSetBit(unsigned short) const
+SetOfByte::IsFull() const
+SetStreamMediaType_Impl(com::sun::star::uno::Reference<com::sun::star::io::XStream> const&, rtl::OUString const&)
+SfxAcceleratorConfigPage::CopySource2Target(com::sun::star::uno::Reference<com::sun::star::ui::XAcceleratorConfiguration> const&, com::sun::star::uno::Reference<com::sun::star::ui::XAcceleratorConfiguration> const&)
+SfxAcceleratorConfigPage::GetFunctionName(KeyFuncType) const
+SfxAcceleratorConfigPage::MapPosToKeyCode(unsigned short) const
+SfxAcceleratorConfigPage::SelectMacro(SfxMacroInfoItem const*)
+SfxAllEnumItem::RemoveAllValues()
+SfxAllEnumItem::SfxAllEnumItem(unsigned short, unsigned short, String const&)
+SfxAppMenuControl_Impl::RegisterControl(unsigned short, SfxModule*)
+SfxApplication::DdeCreateLinkSource(String const&)
+SfxApplication::DdeGetData(String const&, String const&, com::sun::star::uno::Any&)
+SfxApplication::DdeSetData(String const&, String const&, com::sun::star::uno::Any const&)
+SfxApplication::EnterAsynchronCall_Impl()
+SfxApplication::GetLabelResManager() const
+SfxApplication::GetResourceManager() const
+SfxApplication::InitializeDde()
+SfxApplication::InitializeDisplayName_Impl()
+SfxApplication::IsInAsynchronCall_Impl() const
+SfxApplication::LeaveAsynchronCall_Impl()
+SfxApplication::Main()
+SfxApplication::RegisterBasicConstants(char const*, SfxConstant const*, unsigned short)
+SfxApplication::SaveAll_Impl(unsigned char, unsigned char)
+SfxAsyncEvent_Impl::SfxAsyncEvent_Impl(SfxObjectShell*, SvxMacro const*, String const&)
+SfxBaseController::FrameIsReleasedWithController(unsigned char)
+SfxBaseModel::IsDisposed() const
+SfxBaseModel::NotifyStorageListeners_Impl()
+SfxBaseModel::impl_change()
+SfxBaseModel::impl_getObjectShell() const
+SfxBigIntItem::SfxBigIntItem(unsigned short, BigInt const&)
+SfxBindings::ExecuteGlobal_Impl(unsigned short)
+SfxBindings::GetDispatchProvider_Impl() const
+SfxBindings::GetPopupAction_Impl() const
+SfxBindings::GetSlot(unsigned short)
+SfxBindings::GetSystemWindow() const
+SfxBindings::Invalidate(unsigned short, unsigned char)
+SfxBroadcaster::BroadcastDelayed(SfxHint const&)
+SfxBroadcaster::BroadcastInIdle(SfxHint const&)
+SfxBrushItemLink::Set(SfxBrushItemLink*)
+SfxCallMacro(BasicManager*, String const&, SbxArray*, SbxValue*)
+SfxChildWinController_Impl::SfxChildWinController_Impl(unsigned short, SfxWorkWindow*)
+SfxChildWindow::SetHideAtToggle(unsigned char)
+SfxChildWindow::SetPosSizePixel(Point const&, Size&)
+SfxChildWindowContext::GetAlignment() const
+SfxColumnDateTimeItem::SfxColumnDateTimeItem(SfxDateTimeItem const&)
+SfxColumnDateTimeItem::SfxColumnDateTimeItem(unsigned short)
+SfxColumnDateTimeItem::SfxColumnDateTimeItem(unsigned short, DateTime const&)
+SfxCommonTemplateDialog_Impl::InfoOffsetToStyleNr(unsigned short)
+SfxConfigFunctionListBox_Impl::GetEntry_Impl(String const&)
+SfxConfigFunctionListBox_Impl::GetEntry_Impl(unsigned short)
+SfxConfigFunctionListBox_Impl::GetId(SvLBoxEntry*)
+SfxConfigGroupListBox_Impl::InitBasic()
+SfxConfigGroupListBox_Impl::InitStyles()
+SfxContentHelper::CopyTo(String const&, String const&)
+SfxContentHelper::Exists(String const&)
+SfxContentHelper::Find(String const&, String const&, String&)
+SfxContentHelper::GetFolderContentProperties(String const&, unsigned char)
+SfxContentHelper::GetFolderContents(String const&, unsigned char, unsigned char)
+SfxContentHelper::GetTitle(String const&, String&)
+SfxContentHelper::IsFolder(String const&)
+SfxContentHelper::MakeFolder(String const&)
+SfxContentHelper::MoveTo(String const&, String const&, int)
+SfxContentHelper::QueryDiskSpace(String const&, long&)
+SfxControllerItem::GetCoreMetric() const
+SfxControllerItem::UpdateSlot()
+SfxCrawlStatusItem::SfxCrawlStatusItem(unsigned short)
+SfxDateTimeRangeItem::SfxDateTimeRangeItem(unsigned short)
+SfxDispatchController_Impl::isMasterSlaveCommand() const
+SfxDispatcher::DebugOutput_Impl() const
+SfxDispatcher::EnterAction(String const&)
+SfxDispatcher::ExecutePopup(unsigned short, Window*, Point const*, SfxPoolItem const*, ...)
+SfxDispatcher::GetSlotId(String const&)
+SfxDispatcher::HasSlot_Impl(unsigned short)
+SfxDispatcher::LeaveAction()
+SfxDispatcher::ResetObjectBars_Impl()
+SfxDispatcher::SetModalMode_Impl(unsigned char)
+SfxDispatcher::_Execute(SfxSlotServer const&)
+SfxDocTemplate_Impl::GetTemplates(ucbhelper::Content&, ucbhelper::Content&, RegionData_Impl*)
+SfxDockingWindow::GetSplitWindow_Impl() const
+SfxDockingWindow::IsPinned_Impl() const
+SfxDocumentInfo::Clear()
+SfxDocumentInfo::GetMimeType() const
+SfxDocumentInfo::SfxDocumentInfo(com::sun::star::uno::Reference<com::sun::star::document::XDocumentInfo> const&)
+SfxDocumentTemplateDlg::GetTemplatePath()
+SfxDocumentTemplateDlg::NewTemplate(String const&)
+SfxDocumentTemplates::GetCount(String const&) const
+SfxDocumentTemplates::GetRegionNo(String const&) const
+SfxDocumentTemplates::SaveDir()
+SfxEnumMenu::SfxEnumMenu(unsigned short, SfxBindings*, SfxEnumItem const&)
+SfxEventConfiguration::GetEventId(String const&) const
+SfxEventConfiguration::GetEventName(unsigned short) const
+SfxEventConfiguration::~SfxEventConfiguration()
+SfxExecuteItem::SfxExecuteItem(unsigned short, unsigned short, unsigned short)
+SfxExecuteItem::SfxExecuteItem(unsigned short, unsigned short, unsigned short, SfxPoolItem const*, ...)
+SfxFilterContainer::GetFilter4ClipBoardId(unsigned int, unsigned long, unsigned long) const
+SfxFilterContainer::GetFilter4Mime(String const&, unsigned long, unsigned long) const
+SfxFilterContainer::GetFilter4UIName(String const&, unsigned long, unsigned long) const
+SfxFilterPtrArr::DeleteAndDestroy(unsigned short, unsigned short)
+SfxFlagItem::SetFlag(unsigned char, int)
+SfxFlagItem::SfxFlagItem(unsigned short, SvStream&)
+SfxFontSizeInfo::HasSize(Size const&) const
+SfxFontSizeInfo::SfxFontSizeInfo(SfxFont const&, OutputDevice const&)
+SfxFontSizeInfo::~SfxFontSizeInfo()
+SfxFoundCacheArr_Impl::Insert(SfxFoundCacheArr_Impl const*, unsigned short, unsigned short)
+SfxFoundCacheArr_Impl::Insert(SfxFoundCache_Impl const*&, unsigned short&)
+SfxFoundCacheArr_Impl::Insert(SfxFoundCache_Impl const**, unsigned short)
+SfxFoundCacheArr_Impl::Remove(SfxFoundCache_Impl const*&, unsigned short)
+SfxFoundCacheArr_Impl::Remove(unsigned short, unsigned short)
+SfxFrame::Activate_Impl(unsigned char)
+SfxFrame::BrowseInFrame(int)
+SfxFrame::CheckContentForLoad_Impl()
+SfxFrame::ClearHistory()
+SfxFrame::Clear_Impl()
+SfxFrame::CloseChildFrames()
+SfxFrame::CopyHistory_Impl(SfxFrame*) const
+SfxFrame::ExecuteHistoryMenu_Impl(unsigned short, Rectangle const&, unsigned short)
+SfxFrame::GetBorder_Impl() const
+SfxFrame::GetBroadcaster() const
+SfxFrame::GetContent() const
+SfxFrame::GetFrameId_Impl() const
+SfxFrame::GetInterceptor_Impl()
+SfxFrame::IsFocusLocked_Impl() const
+SfxFrame::IsTop() const
+SfxFrame::LoadFinished_Impl()
+SfxFrame::LoadSfxComponent(com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, SfxObjectFactory const*)
+SfxFrame::SetCurrentDocument_Impl(SfxObjectShell*)
+SfxFrame::SetDescriptor(SfxFrameDescriptor*)
+SfxFrame::SetFrameIdName_Impl(String const&)
+SfxFrame::SetFrameId_Impl(unsigned short)
+SfxFrame::SetFrameName(String const&)
+SfxFrame::SetWorkWindow_Impl(SfxWorkWindow*)
+SfxFrame::UpdateCurrentHistory_Impl(SfxObjectShell*, String const*)
+SfxFrame::UpdateHistory(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, rtl::OUString const&)
+SfxFrame::UpdatePickEntries()
+SfxFrame::UpdatePickEntries(com::sun::star::uno::Any const&)
+SfxFrame::UpdateUndoHistory_Impl(SfxObjectShell*, String const*, String const*)
+SfxFrame::findFrame(rtl::OUString const&, int)
+SfxFrameDescriptor::CheckContent() const
+SfxFrameDescriptor::CompareOriginal(SfxFrameDescriptor&) const
+SfxFrameDescriptor::GetItemPos() const
+SfxFrameDescriptor::GetSize() const
+SfxFrameDescriptor::GetWallpaper() const
+SfxFrameDescriptor::GetWinBits() const
+SfxFrameDescriptor::SetURL(INetURLObject const&)
+SfxFrameDescriptor::TakeProperties(SfxFrameProperties const&)
+SfxFrameDescriptor::UnifyContent(unsigned char)
+SfxFrameHTMLWriter::CreateURL(SfxFrame*)
+SfxFrameProperties::SfxFrameProperties(SfxFrameDescriptor const*)
+SfxFrequencyItem::CalcNextTick(DateTime const&, unsigned char)
+SfxFrequencyItem::SfxFrequencyItem(unsigned short)
+SfxHTMLParser::FileDownloadDone(SfxHTMLParser*, void*)
+SfxHTMLParser::GetFileDownloadMIME(String&)
+SfxHelpWindow_Impl::splitHelpURL(rtl::OUString const&, rtl::OUString&, rtl::OUString&, rtl::OUString&)
+SfxHelp_Impl::HasModule(rtl::OUString const&)
+SfxHelp_Impl::IsHelpInstalled()
+SfxHintPoster::RegisterEvent()
+SfxHintPoster::SfxHintPoster()
+SfxImageItem::GetURL() const
+SfxImageItem::SfxImageItem(unsigned short, String const&)
+SfxImageManager::SetImages(ToolBox&)
+SfxImageManager::SetImages(ToolBox&, unsigned char, unsigned char)
+SfxImageManager_Impl::~SfxImageManager_Impl()
+SfxInPlaceClient::GetActiveWindow(SfxObjectShell*, com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&)
+SfxInPlaceClient::IsObjectActive() const
+SfxIniManagerAddressEntry::get(String const&, AddressToken)
+SfxItemIter::PrevItem()
+SfxItemModifyArr_Impl::Remove(unsigned short, unsigned short)
+SfxItemModifyArr_Impl::Replace(SfxItemModifyImpl const&, unsigned short)
+SfxItemModifyArr_Impl::Replace(SfxItemModifyImpl const*, unsigned short, unsigned short)
+SfxItemModifyArr_Impl::_ForEach(unsigned short, unsigned short, unsigned char (*)(SfxItemModifyImpl const&, void*), void*)
+SfxItemPool::Cleanup()
+SfxItemPool::GetVersion() const
+SfxItemSetHint::SfxItemSetHint(SfxItemSet*)
+SfxListener::EndListening(unsigned short)
+SfxLockBytesItem::SfxLockBytesItem(unsigned short, SvLockBytes*)
+SfxMacro::GenerateSource() const
+SfxMacro::GetLastStatement() const
+SfxMacro::GetMode() const
+SfxMacro::Record(SfxMacroStatement*)
+SfxMacro::Remove()
+SfxMacro::Replace(SfxMacroStatement*)
+SfxMacro::SfxMacro(SfxMacroMode)
+SfxMacroConfig::CheckMacro(SfxObjectShell*, SvxMacro const*) const
+SfxMacroConfig::CheckMacro(unsigned short) const
+SfxMacroConfig::GetMacroInfo_Impl(SvxMacro const*) const
+SfxMacroConfig::LinkStubCallbackHdl_Impl(void*, void*)
+SfxMacroConfig::Release_Impl()
+SfxMacroConfig::RequestHelp(unsigned short)
+SfxMacroInfo::GetURL() const
+SfxMacroInfo::Load(SvStream&)
+SfxMacroInfo::SfxMacroInfo(SfxObjectShell*)
+SfxMacroInfo::SfxMacroInfo(SfxObjectShell*, String const&)
+SfxMacroStatement::SfxMacroStatement(SfxShell const&, String const&, unsigned char, SfxSlot const&, unsigned char, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&)
+SfxMacroStatement::SfxMacroStatement(String const&)
+SfxMacroStatement::SfxMacroStatement(String const&, SfxSlot const&, unsigned char, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&)
+SfxMailModel::GetCount() const
+SfxMailModel::MakeValueList(AddressList_Impl*, String&)
+SfxMedium::Cancel_Impl()
+SfxMedium::DataAvailable_Impl()
+SfxMedium::GetCharset()
+SfxMedium::GetDataAvailableLink() const
+SfxMedium::GetDoneLink() const
+SfxMedium::GetFileVersion() const
+SfxMedium::GetHdl()
+SfxMedium::GetPreRedirectedURL() const
+SfxMedium::GetReferer() const
+SfxMedium::IsDownloadDone_Impl()
+SfxMedium::IsOpen() const
+SfxMedium::IsTemporary() const
+SfxMedium::MoveStorageTo_Impl(SfxMedium*)
+SfxMedium::MoveTempTo_Impl(SfxMedium*)
+SfxMedium::RefreshName_Impl()
+SfxMedium::SetClassFilter(SvGlobalName const&)
+SfxMedium::SetItemSet(SfxItemSet*)
+SfxMedium::SetOrigFilter_Impl(SfxFilter const*)
+SfxMedium::StartDownload()
+SfxMedium::TryStorage()
+SfxMedium::TryToSwitchToRepairedTemp()
+SfxMenuControl::IsSpecialControl(unsigned short, SfxModule*)
+SfxMenuControl::RemovePopup()
+SfxMenuControl::SetOwnMenu(SfxVirtualMenu*)
+SfxMenuManager::Construct_Impl(Menu*, unsigned char)
+SfxMenuManager::UseDefault()
+SfxMiniRecordReader::ScanRecordType(SvStream*)
+SfxMiniRecordReader::SfxMiniRecordReader(SvStream*)
+SfxModelessDialog::SfxModelessDialog(SfxBindings*, SfxChildWindow*, Window*, long)
+SfxModule::GetImageList_Impl(unsigned char)
+SfxModule::IsActive() const
+SfxModule::RegisterChildWindowContext(unsigned short, SfxChildWinContextFactory*)
+SfxModuleArr_Impl::DeleteAndDestroy(unsigned short, unsigned short)
+SfxMultiFixRecordWriter::SfxMultiFixRecordWriter(SvStream*, unsigned short, unsigned char, unsigned int)
+SfxMultiRecordReader::SfxMultiRecordReader(SvStream*)
+SfxNavigatorWrapper::GetChildWindowId()
+SfxNewFileDialog::GetTemplateName() const
+SfxNewFileDialog::GetTemplateRegion() const
+SfxObjectFactory::GetDocumentTypeName() const
+SfxObjectFactory::SetDocumentTypeNameResource(ResId const&)
+SfxObjectFactory::~SfxObjectFactory()
+SfxObjectList::GetFileName(unsigned short) const
+SfxObjectShell::Call(String const&, unsigned char, SbxObject*)
+SfxObjectShell::Count()
+SfxObjectShell::GetLastMark_Impl() const
+SfxObjectShell::IsBasic(String const&, SbxObject*)
+SfxObjectShell::IsSecure()
+SfxObjectShell::LockAutoLoad(unsigned char)
+SfxObjectShell::NoDependencyFromManifest_Impl(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&)
+SfxObjectShell::SetFlags(unsigned int)
+SfxObjectShell::SetLastMark_Impl(String const&)
+SfxObjectShell::SetTemplate(unsigned char)
+SfxObjectShell::StartLoading_Impl()
+SfxObjectShell::StateView_Impl(SfxItemSet&)
+SfxObjectVerbsControl::RegisterControl(unsigned short, SfxModule*)
+SfxOfficeDispatch::IsMasterUnoCommand() const
+SfxOrganizeDlg_Impl::OkHdl(Button*)
+SfxPartChildWnd_Impl::GetChildWindowId()
+SfxPickList::Delete()
+SfxPickList::GetMenuEntryTitle(unsigned int)
+SfxPointItem::SfxPointItem(unsigned short, SvStream&)
+SfxPopupMenuManager::AddClipboardFunctions()
+SfxPopupMenuManager::CheckItem(unsigned short, unsigned char)
+SfxPopupMenuManager::EndInsert()
+SfxPopupMenuManager::Execute(Point const&, Window*, SfxPoolItem const*, ...)
+SfxPopupMenuManager::InsertItem(unsigned short, String const&, unsigned short, unsigned short)
+SfxPopupMenuManager::InsertSeparator(unsigned short)
+SfxPopupMenuManager::RemoveItem(unsigned short)
+SfxPopupMenuManager::SfxPopupMenuManager(ResId const&, SfxBindings&)
+SfxPopupMenuManager::StartInsert()
+SfxPopupWindow::EndCascading()
+SfxPopupWindow::LinkStubDelete(void*, void*)
+SfxPopupWindow::RemoveStatusListener(rtl::OUString const&)
+SfxPopupWindow::UpdateStatus(rtl::OUString const&)
+SfxPreviewBase_Impl::SetGDIFile(GDIMetaFile*)
+SfxPreviewWin::SfxPreviewWin(Window*, ResId const&, SfxObjectShellLock&)
+SfxPreviewWin_Impl::PreviewFactory(SfxFrame*, String const&)
+SfxPrinter::DisableRange(unsigned short)
+SfxPrinter::EnableRange(unsigned short)
+SfxProgress::GetWaitMode() const
+SfxProgress::StatusBarManagerGone_Impl(SfxStatusBarManager*)
+SfxPtrArr::Replace(void*, void*)
+SfxRangeItem::SfxRangeItem(unsigned short, SvStream&)
+SfxRecordingFloatWrapper_Impl::GetChildWindowId()
+SfxRectangleItem::SfxRectangleItem(unsigned short, SvStream&)
+SfxRequest::IsRecording() const
+SfxRequest::SetTarget(String const&)
+SfxScriptOrganizerItem::SfxScriptOrganizerItem(String const&)
+SfxShell::GetBroadcaster()
+SfxShell::RemoveItem(unsigned short)
+SfxSimpleLockBytesFactory::SfxSimpleLockBytesFactory(SvLockBytes*, String const&)
+SfxSimpleLockBytesFactory::SfxSimpleLockBytesFactory(SvLockBytes*, String const&, String const&)
+SfxSimpleLockBytesFactory::TempURL(String const&)
+SfxSimpleResId::SfxSimpleResId(unsigned short)
+SfxSingleRecordReader::SfxSingleRecordReader(SvStream*)
+SfxSingleRecordWriter::SfxSingleRecordWriter(SvStream*, unsigned short, unsigned char, unsigned int)
+SfxSingleTabDialog::GetInputRanges(SfxItemPool const&)
+SfxSizeItem::SfxSizeItem(unsigned short, SvStream&)
+SfxSlotPool::NextInterface()
+SfxStatusListener::Bind()
+SfxStatusListener::Bind(unsigned short, rtl::OUString const&)
+SfxStringListItem::Sort(unsigned char, List*)
+SfxStyleSheetHintExtended::SfxStyleSheetHintExtended(unsigned short, String const&)
+SfxTabDialog::FillOutputItemSet()
+SfxTabDialog::GetApplyButton()
+SfxTabDialog::GetApplyButton() const
+SfxTabDialog::GetApplyHandler() const
+SfxTabDialog::GetOutputItemSet(unsigned short) const
+SfxTabDialog::SfxTabDialog(Window*, ResId const&, unsigned short, SfxBindings&, unsigned char, String const*)
+SfxTabPage::GetExchangeItem(SfxItemSet const&, unsigned short)
+SfxTabPage::SfxTabPage(Window*, long, SfxItemSet const&)
+SfxTargetFrameItem::GetTargetFrame(SfxOpenMode) const
+SfxTargetFrameItem::SfxTargetFrameItem(unsigned short, String const&, String const&, String const&)
+SfxToDoStack_Implarr_::Contains(SfxToDo_Impl const&) const
+SfxToDoStack_Implarr_::Insert(unsigned short, SfxToDo_Impl const&, unsigned short)
+SfxToDoStack_Implarr_::Remove(SfxToDo_Impl const&)
+SfxTopFrame::CheckMenuCloser_Impl(MenuBar*)
+SfxTopFrame::GetWindowData()
+SfxTopWindow_Impl::LinkStubCloserHdl(void*, void*)
+SfxUINT32s::Remove(unsigned short, unsigned short)
+SfxUINT32s::Replace(unsigned int const&, unsigned short)
+SfxUINT32s::Replace(unsigned int const*, unsigned short, unsigned short)
+SfxUINT32s::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned int const&, void*), void*)
+SfxULongRangeItem::SfxULongRangeItem(unsigned short, SvStream&)
+SfxULongRanges::Contains(unsigned long) const
+SfxULongRanges::Intersects(SfxULongRanges const&) const
+SfxULongRanges::SfxULongRanges(int, int, int, ...)
+SfxULongRanges::SfxULongRanges(unsigned long const*)
+SfxULongRanges::SfxULongRanges(unsigned long, unsigned long)
+SfxULongRangesItem::SfxULongRangesItem(unsigned short, unsigned int const*)
+SfxURLToolBoxControl_Impl::LinkStubWindowEventListener(void*, void*)
+SfxUShortRanges::Contains(unsigned short) const
+SfxUShortRanges::Intersects(SfxUShortRanges const&) const
+SfxUShortRanges::SfxUShortRanges(int, int, int, ...)
+SfxUShortRangesItem::SfxUShortRangesItem(unsigned short, unsigned short const*)
+SfxUnoMenuControl::Select()
+SfxUpdateDialog::LinkStubCancelHdl_Impl(void*, void*)
+SfxUrlDialog::SfxUrlDialog(Window*)
+SfxVersionTableDtor::GetVersions() const
+SfxViewFactory::InitFactory()
+SfxViewFactory::~SfxViewFactory()
+SfxViewFrame::ClearEventFlag_Impl()
+SfxViewFrame::CloseHiddenFrames_Impl()
+SfxViewFrame::Count(void* (*)())
+SfxViewFrame::DoAdjustPosSize(SfxViewShell*, Point, Size const&)
+SfxViewFrame::ExecReload_Impl(SfxRequest&, unsigned char)
+SfxViewFrame::GetImportingObjectShell_Impl() const
+SfxViewFrame::GetRecordingMacro_Impl()
+SfxViewFrame::Hide()
+SfxViewFrame::SearchViewFrame(SfxViewFrame*, String const&)
+SfxViewFrame::SetImportingObjectShell_Impl(SfxObjectShell*)
+SfxViewFrame::SetMargin_Impl(Size const&)
+SfxViewFrame::SetParentViewFrame_Impl(SfxViewFrame*)
+SfxViewFrame::SetSetViewFrameAllowed_Impl(unsigned char)
+SfxViewFrame::SfxViewFrame(SfxObjectShell&, SfxBindings&, SfxFrame*, unsigned int)
+SfxViewFrame::SfxViewFrame(SfxViewFrame const&, SfxBindings&, SfxFrame*)
+SfxViewFrameClose_Impl(void*, void*)
+SfxViewShell::AdjustVisArea(Rectangle const&)
+SfxViewShell::GetContextMenuInterceptors() const
+SfxViewShell::IsPrinterLocked() const
+SfxViewShell::LockPrinter(unsigned char)
+SfxViewShell::PlugInsActive() const
+SfxViewShell::SetScrollingMode(SfxScrollingMode)
+SfxViewShell::SetSubShell(SfxShell*)
+SfxVirtualMenu::GetItemHelpText(unsigned short) const
+SfxVirtualMenu::GetItemText(unsigned short) const
+SfxVirtualMenu::GetPopupMenu(unsigned short) const
+SfxVirtualMenu::SetHelpIds(ResMgr*)
+SfxWhichIter::LastWhich()
+SfxWorkWindow::AlignChild_Impl(Window&, Size const&, SfxChildAlignment)
+SfxWorkWindow::ChangeWindow_Impl(Window*)
+SfxWorkWindow::CreateDispatch(String const&)
+SfxWorkWindow::GetActiveChild_Impl()
+SfxWorkWindow::GetObjectBar_Impl(unsigned short, unsigned int)
+SfxWorkWindow::GetTopWindow() const
+SfxWorkWindow::HasNextObjectBar_Impl(unsigned short, String*)
+SfxWorkWindow::NextObjectBar_Impl(unsigned short)
+SfxWorkWindow::SetObjectBarCustomizeMode_Impl(unsigned char)
+Sgf2hPoint(short)
+SgfFilterPScr(SvStream&, SgfHeader&, SgfEntry&)
+ShearPoly(PolyPolygon&, Point const&, double, int)
+ShearXPoly(XPolyPolygon&, Point const&, double, int)
+SimpleConfig::SimpleConfig(DirEntry&)
+SimpleErrorHandler::SimpleErrorHandler()
+SimpleGuesser::SimpleGuesser(char const*, char const*)
+SimpleResMgr::FreeBlob(void*)
+SimpleResMgr::GetLocale() const
+SimpleResMgr::ReadBlob(unsigned int, void**)
+SimpleTokenizer_Impl::getTokStr(unsigned short const*, unsigned short const*)
+Simstr::Simstr(char const*, int)
+Simstr::ch(int)
+Simstr::count(char) const
+Simstr::empty()
+Simstr::get(int) const
+Simstr::get_back() const
+Simstr::get_first_token(char) const
+Simstr::get_front() const
+Simstr::get_last_token(char) const
+Simstr::insert(int, Simstr const&)
+Simstr::insert(int, char)
+Simstr::pos_first_after(char, int) const
+Simstr::pos_last(Simstr const&) const
+Simstr::rem_back_from(int)
+Simstr::remove_all(Simstr const&)
+Simstr::remove_all(char)
+Simstr::replace(int, char)
+Simstr::replace_all(Simstr const&, Simstr const&)
+Simstr::strip(char)
+Simstr::take_first_token(char)
+Simstr::take_last_token(char)
+Simstr::to_lower()
+SingleCommunicationManagerClientViaSocket::SingleCommunicationManagerClientViaSocket(ByteString, unsigned long, unsigned char)
+SingleCommunicationManagerClientViaSocket::SingleCommunicationManagerClientViaSocket(unsigned char)
+SingleRefData::CreateFlagsFromLoadByte(unsigned char)
+SingleRefData::CreateStoreByteFromFlags() const
+SingleRefData::OldBoolsToNewFlags(OldSingleRefBools const&)
+SjApplet2::GetJScriptApplet()
+SjApplet2::appletReload()
+SjApplet2::appletRestart()
+SjApplet2::appletStart()
+SjApplet2::appletStop()
+Slider::SetRangeMax(long)
+Slider::SetRangeMin(long)
+Slider::Slider(Window*, ResId const&)
+SmAboutDialog::SmAboutDialog(Window*, unsigned char)
+SmDLL::Exit()
+SmEditAccessible::GetDoc_Impl()
+SmFilterDetect::impl_createFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+SmFntFmtListEntryArr::Insert(SmFntFmtListEntry const*, unsigned short, unsigned short)
+SmFntFmtListEntryArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(SmFntFmtListEntry const&, void*), void*)
+SmFontPickListBox::SmFontPickListBox(Window*, long, unsigned short)
+SmMathConfig::GetSymbol(unsigned short) const
+SmMathConfig::GetSymbolCount() const
+SmMathConfig::IsToolboxVisible() const
+SmMathConfig::SetToolboxVisible(unsigned char)
+SmModel_createInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+SmPickList::Contains(void const*) const
+SmPickList::SetSize(unsigned short)
+SmRect::Draw(OutputDevice&, Point const&, int) const
+SmSymSet::SetName(String&)
+SmSymSetManager::Exit()
+SmSymSetManager::Init()
+SmXMLExport::SmXMLExport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, SmNode const*, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler>&)
+SmXMLImport::SmXMLImport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, com::sun::star::uno::Reference<com::sun::star::frame::XModel>&, rtl::OUString const&)
+SmartId::SmartId(String const&, unsigned long)
+SoPluginInstance::SetPosSize(int, int, int, int)
+SoPluginInstance::Setflag(int)
+SoPluginInstance::ShutDown()
+SortedINT16Array::Insert(SortedINT16Array const*, unsigned short, unsigned short)
+SortedINT16Array::Insert(short const&, unsigned short&)
+SortedINT16Array::Insert(short const*, unsigned short)
+SortedINT16Array::Remove(short const&, unsigned short)
+SortedINT16Array::Remove(unsigned short, unsigned short)
+SortedINT16Array_SAR::Replace(short const&, unsigned short)
+SortedINT16Array_SAR::Replace(short const*, unsigned short, unsigned short)
+SortedINT16Array_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(short const&, void*), void*)
+SortedIndividualInt32List::CountCondition(int, int) const
+SortedIndividualInt32List::InsertHolidayList(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<int> > const&, int, unsigned char)
+SortedIndividualInt32List::InsertHolidayList(com::sun::star::uno::Sequence<double> const&, int, unsigned char)
+SortedPositions::Insert(SortedPositions const*, unsigned short, unsigned short)
+SortedPositions::Insert(unsigned int const&, unsigned short&)
+SortedPositions::Insert(unsigned int const*, unsigned short)
+SortedPositions::Remove(unsigned int const&, unsigned short)
+SortedPositions::Remove(unsigned short, unsigned short)
+SortedPositions_SAR::Replace(unsigned int const&, unsigned short)
+SortedPositions_SAR::Replace(unsigned int const*, unsigned short, unsigned short)
+SortedPositions_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned int const&, void*), void*)
+SotExchange::GetExchangeAction(com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable> const&, unsigned short, unsigned short, unsigned short, unsigned long&, unsigned short&, unsigned long)
+SotExchange::GetFormatStaticName(unsigned long)
+SotExchange::GetMaxFormat()
+SotExchange::GetStaticNameFormat(String const&)
+SotFactory::AggCastAndAddRef(SotObject*) const
+SotFactory::TestInvariant()
+SotObject::AddInterface(SotFactory*)
+SotObject::AddInterface(SotObject*)
+SotObject::IsSvObject() const
+SotObject::RemoveInterface(SotObject*)
+SotObject::RemoveOwnerLock()
+SotStorage::GetTargetSvStream() const
+SotStorage::GetUNOAPIDuplicate(String const&, int)
+SotStorage::OpenEncryptedSotStream(String const&, ByteString const&, unsigned short, short)
+SotStorage::OpenOLEStorage(String const&, unsigned short, short)
+Sound::GetSoundPath()
+Sound::Pause()
+Sound::SetLoopMode(unsigned char)
+Sound::SetPlayTime(unsigned long)
+Sound::SetSoundPath(String const&)
+Sound::SetStartTime(unsigned long)
+SoundSettings::CopyData()
+SourceDirectory::CreateRootDirectory(ByteString const&, ByteString const&, unsigned char)
+SourceTreeIterator::EndExecute()
+SpinButton::SpinButton(Window*, ResId const&)
+SplitWindow::CalcWindowSizePixel(Size const&, WindowAlign, long, unsigned char)
+SplitWindow::GetBaseSet() const
+SplitWindow::GetFadeInRect() const
+SplitWindow::GetFadeOutRect() const
+SplitWindow::GetItemBackground(unsigned short) const
+SplitWindow::GetItemBitmap(unsigned short) const
+SplitWindow::GetItemBits(unsigned short) const
+SplitWindow::GetItemId(Window*) const
+SplitWindow::GetItemWindow(unsigned short) const
+SplitWindow::GetSet(unsigned short, unsigned short&, unsigned short&) const
+SplitWindow::GetSplitSize(unsigned short) const
+SplitWindow::IsItemBackground(unsigned short) const
+SplitWindow::MoveItem(unsigned short, unsigned short, unsigned short)
+SplitWindow::SetBaseSet(unsigned short)
+SplitWindow::SetItemBackground(unsigned short)
+SplitWindow::SetItemBitmap(unsigned short, Bitmap const&)
+SplitWindow::SetItemBits(unsigned short, unsigned short)
+SplitWindow::SetNoAlign(unsigned char)
+SplitWindow::SetSplitSize(unsigned short, long, unsigned char)
+SplitWindow::SplitWindow(Window*, ResId const&)
+Splitter::GetKeyboardStepSize() const
+SrchAttrItemList::Replace(SearchAttrItem const&, unsigned short)
+SrchAttrItemList::Replace(SearchAttrItem const*, unsigned short, unsigned short)
+SrchAttrItemList::_ForEach(unsigned short, unsigned short, unsigned char (*)(SearchAttrItem const&, void*), void*)
+StandardErrorInfo::StandardErrorInfo(unsigned long, unsigned long, unsigned short)
+Star::GetPrjName(DirEntry&)
+Star::NeedsUpdate()
+Star::Star(SolarFileList*)
+Star::Star(String, unsigned short)
+StarBASIC::ActivateObject(String const*, unsigned char)
+StarBASIC::ClearGlobalVars()
+StarBASIC::Disassemble(SbModule*, String&)
+StarBASIC::FindVarInCurrentScopy(String const&, unsigned short&)
+StarBASIC::GetGlobalBreakHdl()
+StarBASIC::GetGlobalLanguageMode()
+StarBASIC::GetLanguageMode()
+StarBASIC::Highlight(String const&, SbTextPortions&)
+StarBASIC::LoadOldModules(SvStream&)
+StarBASIC::SetGlobalLanguageMode(SbLanguageMode)
+StarBASIC::StaticEnableReschedule(unsigned char)
+StarBASIC::StaticSuppressSfxResource(unsigned char)
+StarWriter::CleanUp()
+StarWriter::InsertProject(Prj*)
+StarWriter::RemoveProject(ByteString)
+StarWriter::StarWriter(GenericInformationList*, ByteString&, unsigned char, char const*)
+StarWriter::StarWriter(SolarFileList*, unsigned char)
+StarWriter::StarWriter(String, unsigned char, unsigned short)
+StarWriter::Write(String)
+StarWriter::WriteMultiple(String)
+StartInvader
+StatusBar::CopyItems(StatusBar const&)
+StatusBar::GetItemBits(unsigned short) const
+StatusBar::GetItemData(unsigned short) const
+StatusBar::GetItemWidth(unsigned short) const
+StatusBar::HideItem(unsigned short)
+StatusBar::ImplData::~ImplData()
+StatusBar::ResetProgressMode()
+StatusBar::SetBottomBorder(unsigned char)
+StatusBar::SetTopBorder(unsigned char)
+StatusBar::ShowItem(unsigned short)
+StatusBar::StatusBar(Window*, ResId const&)
+StgAvlIterator::Last()
+StgCache::Pos2Page(int)
+StgDirEntry::Copy(StgDirEntry&)
+StgEntry::GetTime(StgEntryTime) const
+StgEntry::SetTime(StgEntryTime, int*)
+StgHeader::SetClassId(ClsId const&)
+StorageStream::ValidateMode(unsigned short, StgDirEntry*) const
+StoragesOfUnknownMediaTypeAreCopied_Impl(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&)
+String::CompareIgnoreCaseToAscii(unsigned short const*, unsigned short) const
+String::CompareTo(unsigned short const*, unsigned short) const
+String::EqualsIgnoreCaseAscii(unsigned short const*, unsigned short, unsigned short) const
+String::Insert(unsigned short const*, unsigned short)
+String::Match(unsigned short const*) const
+String::SearchAndReplace(unsigned short const*, String const&, unsigned short)
+String::SearchAndReplaceAll(unsigned short const*, String const&)
+StringList::Contains(rtl::OUString const&) const
+SttResId::SttResId(unsigned int)
+SuggestMgr::doubledsyllable(char**, char const*, int, int)
+SuggestMgr::mystrlen(char const*)
+SupportsCommandGroup(short)
+SvAddressParser::createRFC822Mailbox(String const&, String const&, String&)
+SvAppFrame::SvAppFrame(SvContainerEnvironment*)
+SvAppletObject::GetApplet() const
+SvAppletObject::SetCodeBase(INetURLObject const&)
+SvAppletObject::SetDocBase(INetURLObject const&)
+SvAreaConstrain::ComputeConstrain(Size const&, Fraction*, Fraction*) const
+SvBaseEventDescriptor::mapEventIDToName(unsigned short) const
+SvBasicPropertyDataControl::GetData()
+SvBasicPropertyDataControl::GetName() const
+SvBasicPropertyDataControl::GetProperty() const
+SvBinding::GetCookie() const
+SvBinding::GetHeaders() const
+SvBinding::GetMimeType(String&)
+SvBinding::GetStream(SvStream*&)
+SvBinding::PutStream(SvStream*)
+SvBinding::Resume()
+SvBinding::SetCancelManager(SfxCancelManager*)
+SvBinding::SetCookie(String const&)
+SvBinding::SetHeaders(SvKeyValueIteratorRef&)
+SvBinding::Suspend()
+SvBindingTransport::HasTransport(String const&)
+SvBools::Replace(unsigned char const&, unsigned short)
+SvBools::Replace(unsigned char const*, unsigned short, unsigned short)
+SvBools::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned char const&, void*), void*)
+SvBorder::SvBorder(Rectangle const&, Rectangle const&)
+SvByteStrings::DeleteAndDestroy(unsigned short, unsigned short)
+SvByteStringsDtor::DeleteAndDestroy(unsigned short, unsigned short)
+SvByteStringsISort::DeleteAndDestroy(unsigned short, unsigned short)
+SvByteStringsISort::Insert(ByteString* const&)
+SvByteStringsISort::Insert(ByteString* const&, unsigned short&)
+SvByteStringsISort::Insert(ByteString* const*, unsigned short)
+SvByteStringsISort::Insert(SvByteStringsISort const*, unsigned short, unsigned short)
+SvByteStringsISort::Remove(ByteString* const&, unsigned short)
+SvByteStringsISort::Remove(unsigned short, unsigned short)
+SvByteStringsISortDtor::DeleteAndDestroy(unsigned short, unsigned short)
+SvByteStringsISortDtor::Insert(ByteString* const&)
+SvByteStringsISortDtor::Insert(ByteString* const&, unsigned short&)
+SvByteStringsISortDtor::Insert(ByteString* const*, unsigned short)
+SvByteStringsISortDtor::Insert(SvByteStringsISortDtor const*, unsigned short, unsigned short)
+SvByteStringsISortDtor::Remove(ByteString* const&, unsigned short)
+SvByteStringsISortDtor::Remove(unsigned short, unsigned short)
+SvByteStringsSort::DeleteAndDestroy(unsigned short, unsigned short)
+SvByteStringsSort::Insert(ByteString* const&)
+SvByteStringsSort::Insert(ByteString* const&, unsigned short&)
+SvByteStringsSort::Insert(ByteString* const*, unsigned short)
+SvByteStringsSort::Insert(SvByteStringsSort const*, unsigned short, unsigned short)
+SvByteStringsSort::Remove(ByteString* const&, unsigned short)
+SvByteStringsSort::Remove(unsigned short, unsigned short)
+SvByteStringsSortDtor::Insert(ByteString* const&)
+SvByteStringsSortDtor::Insert(ByteString* const*, unsigned short)
+SvByteStringsSortDtor::Insert(SvByteStringsSortDtor const*, unsigned short, unsigned short)
+SvByteStringsSortDtor::Remove(ByteString* const&, unsigned short)
+SvByteStringsSortDtor::Remove(unsigned short, unsigned short)
+SvBytes::Replace(unsigned char const&, unsigned short)
+SvBytes::Replace(unsigned char const*, unsigned short, unsigned short)
+SvBytes::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned char const&, void*), void*)
+SvCacheStream::GetFilenameHdl() const
+SvCacheStream::SetFilenameHdl(Link const&)
+SvCacheStream::SvCacheStream(String const&, unsigned long, unsigned long)
+SvChar::MakeChar(char*, char**)
+SvColorControl::SvColorControl(Window*, long)
+SvCommand::SvCommand()
+SvCompositeLockBytes::Append(SvLockBytes*, unsigned long, unsigned long)
+SvCompositeLockBytes::GetLastLockBytes() const
+SvCompositeLockBytes::RelativeOffset(unsigned long) const
+SvCompositeLockBytes::SetIsPending(unsigned char)
+SvCompositeLockBytes::SvCompositeLockBytes()
+SvContainerEnvironment::DeleteMenu()
+SvContainerEnvironment::DoQueryMenu(unsigned short*, unsigned short*, unsigned short*)
+SvContainerEnvironment::SetAccel(Accelerator const&)
+SvContainerEnvironment::SetClipAreaPixel(Rectangle const&)
+SvContainerEnvironment::SetMenu(MenuBar*, unsigned short, unsigned short, unsigned short)
+SvContainerEnvironment::SvContainerEnvironment(SvInPlaceClient*, SvContainerEnvironment*)
+SvDocFrame::SvDocFrame(SvContainerEnvironment*)
+SvEditObjectProtocol::CanEmbedProtocol() const
+SvEditObjectProtocol::CanPlugInProtocol() const
+SvEditObjectProtocol::CanUIProtocol() const
+SvEditObjectProtocol::DocWinActivate(unsigned char)
+SvEditObjectProtocol::IsDocWinActive() const
+SvEditObjectProtocol::IsInClosed() const
+SvEditObjectProtocol::IsTopWinActive() const
+SvEditObjectProtocol::TopWinActivate(unsigned char)
+SvEmbeddedClient::SetAspect(unsigned short, unsigned char)
+SvEmbeddedClient::SvEmbeddedClient(Window*)
+SvEmbeddedInfoObject::SvEmbeddedInfoObject(SvEmbeddedObject*)
+SvEmbeddedObject::ConvertToOle2(SvStream&, unsigned int, GDIMetaFile const*, SotStorageRef const&)
+SvEmbeddedObject::DoConnect(SvEmbeddedClient*)
+SvEmbeddedObject::DoVerb(long)
+SvEmbeddedObject::SetDocumentName(String const&)
+SvFactory::CreateAndInit(com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable> const&, SvStorage*, unsigned char, unsigned char) const
+SvFactory::DeInit()
+SvFactory::GetAutoTreatAs(SvGlobalName const&)
+SvFactory::GetConfigFileName()
+SvFactory::GetSvClass31(SvGlobalName const&)
+SvFactory::Register()
+SvFactory::SetAutoConvertTo(SvGlobalName const&, String const&, SvGlobalName const&)
+SvFactory::SetAutoTreatAs(SvGlobalName const&, String const&, SvGlobalName const&)
+SvFileInformationManager::GetFileImage(INetURLObject const&, unsigned char)
+SvFileInformationManager::GetImageNoDefault(INetURLObject const&, unsigned char)
+SvFileObject::SetTransferPriority(unsigned short)
+SvFileStream::ReOpen()
+SvFileStream::UnlockFile()
+SvFillLockBytes::FillAppend(void const*, unsigned long, unsigned long*)
+SvFillLockBytes::SvFillLockBytes(SvLockBytes*)
+SvFillLockBytes::Terminate()
+SvGlobalNameList::Append(SvGlobalName const&)
+SvGlobalNameList::GetObject(unsigned long)
+SvGlobalNameList::IsEntry(SvGlobalName const&)
+SvGlobalNameList::SvGlobalNameList()
+SvGlobalNameList::~SvGlobalNameList()
+SvI18NMap_Impl::Insert(SvI18NMapEntry_Impl* const&, unsigned short&)
+SvI18NMap_Impl::Insert(SvI18NMapEntry_Impl* const*, unsigned short)
+SvI18NMap_Impl::Insert(SvI18NMap_Impl const*, unsigned short, unsigned short)
+SvI18NMap_Impl::Remove(SvI18NMapEntry_Impl* const&, unsigned short)
+SvI18NMap_Impl::Remove(unsigned short, unsigned short)
+SvINT16::ReadSvIdl(SvStringHashEntry*, SvTokenStream&)
+SvINT16::WriteSvIdl(SvStringHashEntry*, SvStream&)
+SvINT32::ReadSvIdl(SvStringHashEntry*, SvTokenStream&)
+SvINT32::WriteSvIdl(SvStringHashEntry*, SvStream&)
+SvIconView::AdjustAtGrid(SvLBoxEntry*)
+SvIconView::CalcScrollOffsets(Point const&, long&, long&, unsigned char, unsigned short)
+SvIconView::DisconnectFromModel()
+SvIconView::EnableInplaceEditing(unsigned char)
+SvIconView::EndTracking()
+SvIconView::GetCollapsedEntryBmp(SvLBoxEntry*) const
+SvIconView::GetCurParent() const
+SvIconView::GetEntryFromLogicPos(Point const&) const
+SvIconView::GetEntryPosition(SvLBoxEntry*) const
+SvIconView::GetExpandedEntryBmp(SvLBoxEntry*) const
+SvIconView::GetFocusRect(SvLBoxEntry*)
+SvIconView::GetNextEntry(Point const&, SvLBoxEntry*, unsigned char) const
+SvIconView::GetPrevEntry(Point const&, SvLBoxEntry*, unsigned char) const
+SvIconView::GetTextMode(SvLBoxEntry const*) const
+SvIconView::HideDDIcon()
+SvIconView::HideShowDDIcon(SvLBoxEntry*, Point const&)
+SvIconView::InsertEntry(String const&, Image const&, Image const&, SvLBoxEntry*, unsigned char, unsigned long)
+SvIconView::InvalidateEntry(SvLBoxEntry*)
+SvIconView::IsEntryPosLocked(SvLBoxEntry const*) const
+SvIconView::LockEntryPos(SvLBoxEntry*, unsigned char)
+SvIconView::SelectRect(Rectangle const&, unsigned char, SvPtrarr*, short)
+SvIconView::SetCollapsedEntryBmp(SvLBoxEntry*, Image const&)
+SvIconView::SetCurParent(SvLBoxEntry*)
+SvIconView::SetEntryPosition(SvLBoxEntry*, Point const&)
+SvIconView::SetEntryPosition(SvLBoxEntry*, Point const&, unsigned char)
+SvIconView::SetEntryText(SvLBoxEntry*, String const&)
+SvIconView::SetExpandedEntryBmp(SvLBoxEntry*, Image const&)
+SvIconView::SetGrid(long, long)
+SvIconView::SetModel(SvLBoxTreeList*)
+SvIconView::SetSpaceBetweenEntries(long, long)
+SvIconView::SetTextMode(SvIconViewTextMode, SvLBoxEntry*)
+SvIconView::SetWindowBits(long)
+SvIconView::ShowDDIcon(SvLBoxEntry*, Point const&)
+SvIconView::ShowFocusRect(SvLBoxEntry const*)
+SvIconView::SvIconView(Window*, ResId const&)
+SvIconView::SvIconView(Window*, long)
+SvIdlDataBase::FillTypeList(SvMetaTypeList&, SvToken*)
+SvIdlDataBase::FindAttr(SvMetaAttributeMemberList*, SvMetaAttribute*) const
+SvIdlDataBase::FindName(ByteString const&, ByteStringList&)
+SvIdlDataBase::IsModified() const
+SvIdlWorkingBase::WriteCHeader(SvStream&)
+SvIdlWorkingBase::WriteCSource(SvStream&)
+SvIdlWorkingBase::WriteCxx(SvStream&)
+SvIdlWorkingBase::WriteHxx(SvStream&)
+SvIdlWorkingBase::WriteOdl(SvStream&)
+SvIdlWorkingBase::WriteSrc(SvStream&)
+SvImpIconView::CollapsingEntry(SvLBoxEntry*)
+SvImpIconView::EntryCollapsed(SvLBoxEntry*)
+SvImpIconView::EntryExpanded(SvLBoxEntry*)
+SvImpIconView::GetEntryTextModeSmart(SvLBoxEntry const*, SvIcnVwDataEntry const*) const
+SvImpIconView::InvalidateBoundingRect(SvLBoxEntry*)
+SvImpIconView::IsEntryInView(SvLBoxEntry*)
+SvImpIconView::RepaintSelectionItems()
+SvImpIconView::SetNoSelection()
+SvImpIconView::UpdateBoundingRects()
+SvImpLBox::IndentChanged(short)
+SvImpLBox::RepaintSelectionItems()
+SvInPlaceClient::SvInPlaceClient(WorkWindow*, WorkWindow*, Window*)
+SvInPlaceClipWindow::SetBorderPixel(SvBorder const&)
+SvInPlaceEnvironment::DeleteBorderWin()
+SvInPlaceEnvironment::DeleteClipWin()
+SvInPlaceEnvironment::DeleteEditWin()
+SvInPlaceEnvironment::MakeScale(Size const&, MapUnit, Size const&)
+SvInPlaceEnvironment::MakeUI(unsigned char)
+SvInPlaceMenuBar::PopActivateHdl()
+SvInPlaceMenuBar::PopDeactivateHdl()
+SvInPlaceMenuBar::PopHighlightHdl()
+SvInPlaceMenuBar::PopSelectHdl()
+SvInPlaceMenuBar::PushActivateHdl(Link const&)
+SvInPlaceMenuBar::PushDeactivateHdl(Link const&)
+SvInPlaceMenuBar::PushHighlightHdl(Link const&)
+SvInPlaceMenuBar::PushSelectHdl(Link const&)
+SvInPlaceMenuBar::SvInPlaceMenuBar(MenuBar*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)
+SvInPlaceMenuBar::SvInPlaceMenuBar(ResId const&)
+SvInPlaceObject::CreateObject(SvGlobalName const&)
+SvInplaceEdit::StopEditing(unsigned char)
+SvInplaceEdit::SvInplaceEdit(Window*, Point const&, Size const&, String const&, Link const&, Selection const&)
+SvInsertOleDlg::FillObjectServerList(SvObjectServerList*)
+SvInsertPlugInDialog::Execute(Window*, SvStorage*)
+SvInt32Array::Insert(int const*, unsigned short, unsigned short)
+SvInt32Array::_ForEach(unsigned short, unsigned short, unsigned char (*)(int const&, void*), void*)
+SvLBox::GetTargetView() const
+SvLBox::HasCursorEmphasis(SvLBoxEntry*) const
+SvLBox::SetCursorEmphasis(SvLBoxEntry*, unsigned char)
+SvLBox::SetInUseEmphasis(SvLBoxEntry*, unsigned char)
+SvLBoxBmp::SvLBoxBmp(SvLBoxEntry*, unsigned short, Image)
+SvLBoxButton::Check(SvLBox*, SvLBoxEntry*, unsigned char)
+SvLBoxButtonData::SvLBoxButtonData()
+SvLBoxEntryArr::DeleteAndDestroy(unsigned short, unsigned short)
+SvLBoxItem::GetSize(SvLBoxEntry*, SvViewDataEntry*)
+SvListBoxForProperties::SvListBoxForProperties(Window*, ResId const&)
+SvListView::SvListView(SvTreeList*)
+SvLongs::Replace(long const&, unsigned short)
+SvLongs::Replace(long const*, unsigned short, unsigned short)
+SvLongs::_ForEach(unsigned short, unsigned short, unsigned char (*)(long const&, void*), void*)
+SvLongsSort::Insert(SvLongsSort const*, unsigned short, unsigned short)
+SvLongsSort::Insert(long const&, unsigned short&)
+SvLongsSort::Insert(long const*, unsigned short)
+SvLongsSort::Remove(long const&, unsigned short)
+SvLongsSort::Remove(unsigned short, unsigned short)
+SvLongsSort_SAR::Replace(long const&, unsigned short)
+SvLongsSort_SAR::Replace(long const*, unsigned short, unsigned short)
+SvLongsSort_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(long const&, void*), void*)
+SvMetaAttribute::GetAttributeList()
+SvMetaAttribute::MakeClone() const
+SvMetaClass::GetAttributeList()
+SvMetaClass::MakeClone() const
+SvMetaEnumValue::GetAttributeList()
+SvMetaEnumValue::MakeClone() const
+SvMetaExtern::GetAttributeList()
+SvMetaExtern::MakeClone() const
+SvMetaModule::GetAttributeList()
+SvMetaModule::MakeClone() const
+SvMetaName::GetAttributeList()
+SvMetaName::MakeClone() const
+SvMetaObject::GetAttributeList()
+SvMetaObject::MakeClone() const
+SvMetaReference::GetAttributeList()
+SvMetaReference::MakeClone() const
+SvMetaSlot::CompareSlotAttributes(SvMetaSlot*)
+SvMetaSlot::GetAttributeList()
+SvMetaType::GetAttributeList()
+SvMetaType::MakeClone() const
+SvMetaTypeEnum::GetAttributeList()
+SvMetaTypeEnum::MakeClone() const
+SvMetaTypeString::GetAttributeList()
+SvMetaTypeString::MakeClone() const
+SvMetaTypevoid::GetAttributeList()
+SvMetaTypevoid::MakeClone() const
+SvNumberFormatter::HasTextFormat(unsigned int) const
+SvNumberFormatter::PrepareSave()
+SvNumberFormatter::SetFormatUsed(unsigned int)
+SvNumberNatNum::MapNatNumToDBNum(unsigned char, unsigned short, unsigned char)
+SvNumberformat::EraseComment(String&)
+SvNumberformat::ImpSwitchToSpecifiedCalendar(String&, double&, ImpSvNumFor const&) const
+SvNumberformat::SetComment(String const&, String&, String&)
+SvObjectDyingHint::SvObjectDyingHint(SvObject*, unsigned char)
+SvOutPlaceObject::ClearCache()
+SvOutPlaceObject::CreateFromClipboard(SvStorage*)
+SvOutPlaceObject::CreateFromData(com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable> const&, SvStorage*)
+SvOutPlaceObject::GetWorkingStorage()
+SvPasteObjectDialog::Execute(Window*, DataFlavorExVector const&, TransferableObjectDescriptor const&)
+SvPersist::AssertInit() const
+SvPersist::Clear()
+SvPersist::CopyObject(SvStorage*)
+SvPersist::GetClassName() const
+SvPersist::GetFileFormat() const
+SvPersist::GetFullTypeName() const
+SvPersist::GetObjectStorage(String const&)
+SvPersist::IsRoot() const
+SvPersist::LoadChilds()
+SvPersist::StartActivation(SvPersist*)
+SvPersistBaseMemberList::SvPersistBaseMemberList(unsigned short, unsigned short)
+SvPersistStream::InsertObj(SvPersistBase*)
+SvPersistStream::RemoveObj(SvPersistBase*)
+SvPersistStream::SvPersistStream(SvClassManager&, SvStream*, SvPersistStream const&)
+SvPropertyBox::SvPropertyBox(Window*, ResId const&)
+SvPropertyBox::SvPropertyBox(Window*, long)
+SvPropertyLine::GetName() const
+SvPropertyLine::IsLineLocked()
+SvPropertyLine::IsShownAsHyperlink()
+SvPropertyLine::IsVisibleXButton()
+SvPropertyLine::SvPropertyLine(Window*, ResId const&)
+SvPseudoObject::AppendVerbs(Menu&)
+SvPseudoObject::GetAppName() const
+SvPseudoObject::GetFullTypeName() const
+SvPseudoObject::GetShortTypeName() const
+SvPseudoObject::GetVerb(unsigned short) const
+SvPtrarr::Replace(void* const*, unsigned short, unsigned short)
+SvPtrarrPlain::GetPos(void*) const
+SvPtrarrPlain::Insert(void*, unsigned short)
+SvPtrarrPlain::Remove(unsigned short, unsigned short)
+SvPtrarrPlain::Replace(void* const*, unsigned short, unsigned short)
+SvPtrarrPlain::Replace(void*, unsigned short)
+SvPtrarrPlain::SvPtrarrPlain(unsigned short, unsigned char)
+SvPtrarrPlain::_ForEach(unsigned short, unsigned short, unsigned char (*)(void*, void*), void*)
+SvRemoteStream::Commit()
+SvRemoteStream::SetDataAvailableLink(Link const&)
+SvRemoteStream::SetDoneLink(Link const&)
+SvRemoteStream::SvRemoteStream(String const&, unsigned short)
+SvResizeHelper::SelectBegin(Window*, short)
+SvResizeWindow::CalcOuterRectPixel(Point const&, Size const&) const
+SvResizeWindow::GetAllBorderPixel() const
+SvResizeWindow::TerminateResizing()
+SvShorts::Replace(short const&, unsigned short)
+SvShorts::Replace(short const*, unsigned short, unsigned short)
+SvShorts::_ForEach(unsigned short, unsigned short, unsigned char (*)(short const&, void*), void*)
+SvStorageInfoList::Get(String const&)
+SvStorageStream::SvStorageStream(String const&, unsigned short, short)
+SvStream::PutBack(char)
+SvStream::ReadNumber(double&)
+SvStream::ReadNumber(long&)
+SvStream::ReadNumber(unsigned int&)
+SvStream::WriteNumber(double const&)
+SvStream::WriteUniOrByteStringLine(String const&, unsigned short)
+SvStream::WriteUniOrByteStringLines(String const&, unsigned short)
+SvStringsISort::DeleteAndDestroy(unsigned short, unsigned short)
+SvStringsISort::Insert(String* const&)
+SvStringsISort::Insert(String* const&, unsigned short&)
+SvStringsISort::Insert(String* const*, unsigned short)
+SvStringsISort::Insert(SvStringsISort const*, unsigned short, unsigned short)
+SvStringsISort::Remove(String* const&, unsigned short)
+SvStringsISort::Remove(unsigned short, unsigned short)
+SvStringsISortDtor::Insert(String* const*, unsigned short)
+SvStringsSort::DeleteAndDestroy(unsigned short, unsigned short)
+SvStringsSort::Insert(String* const&, unsigned short&)
+SvStringsSort::Insert(String* const*, unsigned short)
+SvStringsSort::Insert(SvStringsSort const*, unsigned short, unsigned short)
+SvStringsSort::Remove(String* const&, unsigned short)
+SvStringsSortDtor::Insert(String* const*, unsigned short)
+SvStringsSortDtor::Insert(SvStringsSortDtor const*, unsigned short, unsigned short)
+SvStringsSortDtor::Remove(String* const&, unsigned short)
+SvStringsSortDtor::Remove(unsigned short, unsigned short)
+SvTabListBox::GetTabJustify(unsigned short) const
+SvToken::Print() const
+SvTokenStream::GetHexValue(ByteString const&, BigInt*)
+SvTokenStream::Skip(char, char, unsigned int*)
+SvTreeList::CheckIntegrity() const
+SvTreeList::Copy(SvListEntry*, SvListEntry*)
+SvTreeList::InsertTree(SvListEntry*, SvListEntry*)
+SvTreeList::IsInChildList(SvListEntry*, SvListEntry*) const
+SvTreeList::SelectChilds(SvListView*, SvListEntry*, unsigned char)
+SvTreeListBox::CancelEditing()
+SvTreeListBox::GetCollapsedNodeBmp(BmpColorMode) const
+SvTreeListBox::GetExtendedWinBits() const
+SvTreeListBox::GetFirstDynamicItem(SvLBoxEntry*)
+SvTreeListBox::GetTextOffset() const
+SvTreeListBox::IsAddMode() const
+SvTreeListBox::IsNodeButton(Point const&) const
+SvTreeListBox::IsSublistOpenWithLeftRight() const
+SvTreeListBox::IsSublistOpenWithReturn() const
+SvTreeListBox::RemoveHighlightRange()
+SvTreeListBox::SetAddMode(unsigned char)
+SvTreeListBox::SetDontKnowNodeBitmap(Image const&, BmpColorMode)
+SvTreeListBox::SetTabBar(TabBar*)
+SvTreeListBox::SetUpdateModeFast(unsigned char)
+SvTreeListBox::ShowExpandBitmapOnCursor(unsigned char)
+SvUINT16::ReadSvIdl(SvStringHashEntry*, SvTokenStream&)
+SvUINT16::WriteSvIdl(SvStringHashEntry*, SvStream&)
+SvUINT32::ReadSvIdl(SvStringHashEntry*, SvTokenStream&)
+SvUINT32::WriteSvIdl(SvStringHashEntry*, SvStream&)
+SvULongs::Replace(unsigned long const*, unsigned short, unsigned short)
+SvULongs::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned long const&, void*), void*)
+SvULongsSort::Insert(SvULongsSort const*, unsigned short, unsigned short)
+SvULongsSort::Insert(unsigned long const*, unsigned short)
+SvULongsSort_SAR::Replace(unsigned long const&, unsigned short)
+SvULongsSort_SAR::Replace(unsigned long const*, unsigned short, unsigned short)
+SvULongsSort_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned long const&, void*), void*)
+SvUShorts::Replace(unsigned short const*, unsigned short, unsigned short)
+SvUShorts::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned short const&, void*), void*)
+SvUShortsSort::Insert(unsigned short const*, unsigned short)
+SvUnoAttributeContainer::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+SvUnoWeakContainer::remove(com::sun::star::uno::WeakReference<com::sun::star::uno::XInterface>)
+SvViewDataItem::~SvViewDataItem()
+SvXMLAttributeList::SetAttributeList(com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&)
+SvXMLAutoStylePoolNamesP_Impl::GetPos(rtl::OUString const*) const
+SvXMLAutoStylePoolNamesP_Impl::Remove(rtl::OUString*)
+SvXMLAutoStylePoolP::Add(rtl::OUString&, int, _STL::vector<XMLPropertyState, _STL::allocator<XMLPropertyState> > const&)
+SvXMLAutoStylePoolP::AddAndCache(int, _STL::vector<XMLPropertyState, _STL::allocator<XMLPropertyState> > const&)
+SvXMLAutoStylePoolP::AddAndCache(int, rtl::OUString const&)
+SvXMLAutoStylePoolP::AddAndCache(int, rtl::OUString const&, _STL::vector<XMLPropertyState, _STL::allocator<XMLPropertyState> > const&)
+SvXMLAutoStylePoolP::Find(int, _STL::vector<XMLPropertyState, _STL::allocator<XMLPropertyState> > const&) const
+SvXMLAutoStylePoolP::FindAndRemoveCached(int) const
+SvXMLAutoStylePoolP::SvXMLAutoStylePoolP()
+SvXMLAutoStylePoolParentsP_Impl::GetPos(SvXMLAutoStylePoolParentP_Impl const*) const
+SvXMLAutoStylePoolParentsP_Impl::Remove(SvXMLAutoStylePoolParentP_Impl*)
+SvXMLElementExport::SvXMLElementExport(SvXMLExport&, unsigned char, unsigned short, char const*, unsigned char, unsigned char)
+SvXMLElementExport::SvXMLElementExport(SvXMLExport&, unsigned char, unsigned short, rtl::OUString const&, unsigned char, unsigned char)
+SvXMLEmbeddedElementArr::Insert(SvXMLEmbeddedElement* const&, unsigned short&)
+SvXMLEmbeddedElementArr::Insert(SvXMLEmbeddedElement* const*, unsigned short)
+SvXMLEmbeddedElementArr::Insert(SvXMLEmbeddedElementArr const*, unsigned short, unsigned short)
+SvXMLEmbeddedElementArr::Remove(SvXMLEmbeddedElement* const&, unsigned short)
+SvXMLEmbeddedElementArr::Remove(unsigned short, unsigned short)
+SvXMLExport::GetErrors()
+SvXMLExport::SvXMLExport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, com::sun::star::uno::Reference<com::sun::star::document::XGraphicObjectResolver> const&, short)
+SvXMLExportHelper::AddPercentage(int, rtl::OUStringBuffer&)
+SvXMLExportPropertyMapper::exportXML(SvXMLAttributeList&, XMLPropertyState const&, SvXMLUnitConverter const&, SvXMLNamespaceMap const&, unsigned short) const
+SvXMLImport::GetErrors()
+SvXMLImport::GetMasterStyles()
+SvXMLImport::GetMasterStyles() const
+SvXMLImport::SetError(int, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&)
+SvXMLImport::SetError(int, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&)
+SvXMLImport::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+SvXMLImportContexts_Impl::DeleteAndDestroy(unsigned short, unsigned short)
+SvXMLNamespaceMap::GetKeyByIndex(unsigned short) const
+SvXMLNumFmtDefaults::IsSystemLongDay(SvtSysLocale const&, unsigned char)
+SvXMLNumFmtDefaults::IsSystemLongDayOfWeek(SvtSysLocale const&, unsigned char)
+SvXMLNumFmtDefaults::IsSystemLongEra(SvtSysLocale const&, unsigned char)
+SvXMLNumFmtDefaults::IsSystemLongMonth(SvtSysLocale const&, unsigned char)
+SvXMLNumFmtDefaults::IsSystemTextualMonth(SvtSysLocale const&, unsigned char)
+SvXMLNumFormatContext::AddCondition(int, rtl::OUString const&, LocaleDataWrapper const&)
+SvXMLStyleIndices_Impl::GetPos(SvXMLStyleIndex_Impl const*) const
+SvXMLStyleIndices_Impl::Remove(SvXMLStyleIndex_Impl*)
+SvXMLTokenMap_Impl::Insert(SvXMLTokenMapEntry_Impl* const&, unsigned short&)
+SvXMLTokenMap_Impl::Insert(SvXMLTokenMapEntry_Impl* const*, unsigned short)
+SvXMLTokenMap_Impl::Insert(SvXMLTokenMap_Impl const*, unsigned short, unsigned short)
+SvXMLTokenMap_Impl::Remove(SvXMLTokenMapEntry_Impl* const&, unsigned short)
+SvXMLTokenMap_Impl::Remove(unsigned short, unsigned short)
+SvXMLUnitConverter::clearUndefinedChars(rtl::OUString&, rtl::OUString const&)
+SvXMLUnitConverter::convertEnum(rtl::OUStringBuffer&, unsigned short, SvXMLEnumStringMapEntry const*, char*)
+SvXMLUnitConverter::convertNumber64(rtl::OUStringBuffer&, long)
+SvXMLUnitConverter::initXMLStrings()
+SvXPropEvListener::GetKeyCode() const
+SvXPropertyComboBox::SvXPropertyComboBox(Window*, ResId const&)
+SvXPropertyEdit::SvXPropertyEdit(Window*, ResId const&)
+SvXPropertyListBox::SvXPropertyListBox(Window*, ResId const&)
+SvXPropertyListBox::SvXPropertyListBox(Window*, long)
+SvXub_StrLens::Replace(unsigned short const&, unsigned short)
+SvXub_StrLens::Replace(unsigned short const*, unsigned short, unsigned short)
+SvXub_StrLens::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned short const&, void*), void*)
+SvXub_StrLensSort::Insert(SvXub_StrLensSort const*, unsigned short, unsigned short)
+SvXub_StrLensSort::Insert(unsigned short const&)
+SvXub_StrLensSort::Insert(unsigned short const&, unsigned short&)
+SvXub_StrLensSort::Insert(unsigned short const*, unsigned short)
+SvXub_StrLensSort::Remove(unsigned short const&, unsigned short)
+SvXub_StrLensSort::Remove(unsigned short, unsigned short)
+SvXub_StrLensSort_SAR::Replace(unsigned short const&, unsigned short)
+SvXub_StrLensSort_SAR::Replace(unsigned short const*, unsigned short, unsigned short)
+SvXub_StrLensSort_SAR::SvXub_StrLensSort_SAR(unsigned short, unsigned char)
+SvXub_StrLensSort_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned short const&, void*), void*)
+Svint::ReadSvIdl(SvStringHashEntry*, SvTokenStream&)
+Svint::WriteSvIdl(SvStringHashEntry*, SvStream&)
+SvpSalInstance::CancelEvent(SalFrame const*, void*, unsigned short)
+SvtAcceleratorConfiguration::CreateFromStream(SvStream&)
+SvtAcceleratorConfiguration::GetCommand(com::sun::star::awt::KeyEvent const&)
+SvtAcceleratorConfiguration::GetItems()
+SvtAcceleratorConfiguration::SetItems(_STL::list<SvtAcceleratorConfigItem, _STL::allocator<SvtAcceleratorConfigItem> > const&, bool)
+SvtAccessibilityOptions::GetIsForDrawings() const
+SvtBroadcaster::Forward(SvtBroadcaster&, SfxHint const&)
+SvtCommandOptions::AddCommand(SvtCommandOptions::CmdOption, rtl::OUString const&)
+SvtCommandOptions::Clear(SvtCommandOptions::CmdOption)
+SvtCommandOptions::GetList(SvtCommandOptions::CmdOption) const
+SvtDocumentTemplateDialog::GetSelectedFileURL() const
+SvtDocumentTemplateDialog::IsFileSelected() const
+SvtDocumentTemplateDialog::SvtDocumentTemplateDialog(Window*, SvtDocumentTemplateDialog::SelectOnly)
+SvtDynamicMenuOptions::AppendItem(EDynamicMenuType, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&)
+SvtDynamicMenuOptions::Clear(EDynamicMenuType)
+SvtExpFileDlg_Impl::FindFilter(String const&)
+SvtExtendedSecurityOptions::GetSecureExtensionList() const
+SvtExtendedSecurityOptions::IsOpenHyperlinkModeReadOnly() const
+SvtExtendedSecurityOptions::IsSecureHyperlink(rtl::OUString const&) const
+SvtExtendedSecurityOptions::SetOpenHyperlinkMode(SvtExtendedSecurityOptions::OpenHyperlinkMode)
+SvtFileDialog::GetFilterType(unsigned short) const
+SvtFileDialog::SetDefaultButtonText(String const&, unsigned long)
+SvtFileView::GetUrlFilter() const
+SvtFileView::ResetCursor()
+SvtFontOptions::EnableReplacementTable(unsigned char)
+SvtFontOptions::IsReplacementTableEnabled() const
+SvtFrameWindow_Impl::ExecuteHdl_Impl(SvtFrameWindow_Impl*, SvtFrameWindow_Impl::SvtExecuteInfo*)
+SvtGraphicFill::setFillColor(Color)
+SvtGraphicFill::setFillRule(SvtGraphicFill::FillRule)
+SvtGraphicFill::setFillType(SvtGraphicFill::FillType)
+SvtGraphicFill::setGradient1stColor(Color)
+SvtGraphicFill::setGradient2ndColor(Color)
+SvtGraphicFill::setGradientStepCount(int)
+SvtGraphicFill::setGradientType(SvtGraphicFill::GradientType)
+SvtGraphicFill::setGraphic(Graphic const&)
+SvtGraphicFill::setHatchColor(Color)
+SvtGraphicFill::setHatchType(SvtGraphicFill::HatchType)
+SvtGraphicFill::setTiling(bool)
+SvtGraphicFill::setTransform(SvtGraphicFill::Transform const&)
+SvtGraphicFill::setTransparency(double)
+SvtGraphicFill::toString() const
+SvtGraphicStroke::setCapType(SvtGraphicStroke::CapType)
+SvtGraphicStroke::setDashArray(_STL::vector<double, _STL::allocator<double> > const&)
+SvtGraphicStroke::setEndArrow(PolyPolygon const&)
+SvtGraphicStroke::setJoinType(SvtGraphicStroke::JoinType)
+SvtGraphicStroke::setMiterLimit(double)
+SvtGraphicStroke::setStartArrow(PolyPolygon const&)
+SvtGraphicStroke::setStrokeWidth(double)
+SvtGraphicStroke::setTransparency(double)
+SvtGraphicStroke::toString() const
+SvtHelpOptions::AddToPIStarterList(int)
+SvtHelpOptions::GetHelpAgentRetryLimit() const
+SvtHelpOptions::GetLocale() const
+SvtHelpOptions::GetPIStarterList()
+SvtHelpOptions::RemoveFromPIStarterList(int)
+SvtHelpOptions::SetHelpAgentRetryLimit(int)
+SvtIconChoiceCtrl::Clear()
+SvtIconChoiceCtrl::Flush()
+SvtIconChoiceCtrl::GetEntryTextMode(SvxIconChoiceCtrlEntry const*) const
+SvtIconChoiceCtrl::GetLogicPos(Point const&) const
+SvtIconChoiceCtrl::GetNextEntry(Point const&, SvxIconChoiceCtrlEntry*, unsigned char) const
+SvtIconChoiceCtrl::GetPrevEntry(Point const&, SvxIconChoiceCtrlEntry*, unsigned char) const
+SvtIconChoiceCtrl::HandleShortCutKey(KeyEvent const&)
+SvtIconChoiceCtrl::InsertEntry(unsigned long, Point const*, unsigned short)
+SvtIconChoiceCtrl::SetEntryTextMode(SvxIconChoiceCtrlTextMode, SvxIconChoiceCtrlEntry*)
+SvtIconChoiceCtrl::SetUpdateMode(unsigned char)
+SvtIconChoiceCtrl::SvtIconChoiceCtrl(Window*, ResId const&)
+SvtIconWindow_Impl::GetSelectedIconText() const
+SvtInternalOptions::CrashMailEnabled() const
+SvtInternalOptions::IsRemoveMenuEntryBackToWebtop() const
+SvtInternalOptions::IsRemoveMenuEntryClose() const
+SvtInternalOptions::IsRemoveMenuEntryLogout() const
+SvtInternalOptions::IsRemoveMenuEntryNewWebtop() const
+SvtJavaOptions::GetNetAccess() const
+SvtJavaOptions::GetUserClassPath() const
+SvtJavaOptions::IsEnabled() const
+SvtJavaOptions::IsReadOnly(SvtJavaOptions::EOption) const
+SvtJavaOptions::IsSecurity() const
+SvtJavaOptions::SetEnabled(unsigned char)
+SvtJavaOptions::SetExecuteApplets(unsigned char)
+SvtJavaOptions::SetNetAccess(int)
+SvtJavaOptions::SetSecurity(unsigned char)
+SvtJavaOptions::SetUserClassPath(rtl::OUString const&)
+SvtLanguageOptions::IsCTLSequenceChecking() const
+SvtLanguageOptions::IsCTLSequenceCheckingRestricted() const
+SvtLanguageOptions::IsCTLSequenceCheckingTypeAndReplace() const
+SvtLanguageOptions::IsChangeCaseMapEnabled() const
+SvtLanguageOptions::IsDoubleLinesEnabled() const
+SvtLanguageOptions::IsEmphasisMarksEnabled() const
+SvtLanguageOptions::IsRubyEnabled() const
+SvtLanguageOptions::IsVerticalCallOutEnabled() const
+SvtLinguConfig::IsReadOnly(int) const
+SvtLinguConfig::SetOptions(SvtLinguOptions const&)
+SvtListener::IsListening(SvtBroadcaster&) const
+SvtListenerIter::First(void* (*)())
+SvtListenerIter::GetCurr() const
+SvtListenerIter::GoEnd()
+SvtListenerIter::GoPrev()
+SvtListenerIter::GoRoot()
+SvtListenerIter::Next()
+SvtLocalisationOptions::SetAutoMnemonic(unsigned char)
+SvtLocalisationOptions::SetDialogScale(int)
+SvtMenuOptions::IsFollowMouseEnabled() const
+SvtMenuOptions::SetEntryHidingState(unsigned char)
+SvtMenuOptions::SetFollowMouseState(unsigned char)
+SvtMiscOptions::IsGetSymbolsSizeReadOnly() const
+SvtMiscOptions::IsGetSymbolsStyleReadOnly() const
+SvtMiscOptions::IsGetToolboxStyleReadOnly() const
+SvtMiscOptions::IsPluginsEnabledReadOnly() const
+SvtMiscOptions::SetPluginsEnabled(unsigned char)
+SvtModuleOptions::GetFactoryWindowAttributes(SvtModuleOptions::EFactory) const
+SvtModuleOptions::GetModuleName(SvtModuleOptions::EFactory) const
+SvtModuleOptions::GetModuleName(SvtModuleOptions::EModule) const
+SvtModuleOptions::SetFactoryWindowAttributes(SvtModuleOptions::EFactory, rtl::OUString const&)
+SvtOptionsDrawinglayer::SetMaximumPaperBottomMargin(unsigned int)
+SvtOptionsDrawinglayer::SetMaximumPaperHeight(unsigned int)
+SvtOptionsDrawinglayer::SetMaximumPaperLeftMargin(unsigned int)
+SvtOptionsDrawinglayer::SetMaximumPaperRightMargin(unsigned int)
+SvtOptionsDrawinglayer::SetMaximumPaperTopMargin(unsigned int)
+SvtOptionsDrawinglayer::SetMaximumPaperWidth(unsigned int)
+SvtOptionsDrawinglayer::SetOverlayBuffer(unsigned char)
+SvtOptionsDrawinglayer::SetOverlayBuffer_Calc(unsigned char)
+SvtOptionsDrawinglayer::SetOverlayBuffer_DrawImpress(unsigned char)
+SvtOptionsDrawinglayer::SetOverlayBuffer_Writer(unsigned char)
+SvtOptionsDrawinglayer::SetPaintBuffer(unsigned char)
+SvtOptionsDrawinglayer::SetPaintBuffer_Calc(unsigned char)
+SvtOptionsDrawinglayer::SetPaintBuffer_DrawImpress(unsigned char)
+SvtOptionsDrawinglayer::SetPaintBuffer_Writer(unsigned char)
+SvtOptionsDrawinglayer::SetStripeColorA(Color)
+SvtOptionsDrawinglayer::SetStripeColorB(Color)
+SvtOptionsDrawinglayer::SetStripeLength(unsigned short)
+SvtPathOptions::GetPath(SvtPathOptions::Pathes) const
+SvtPathOptions::IsPathReadonly(SvtPathOptions::Pathes) const
+SvtPathOptions::SetPath(SvtPathOptions::Pathes, String const&)
+SvtPrintWarningOptions::IsNotFound() const
+SvtPrintWarningOptions::SetNotFound(unsigned char)
+SvtSaveOptions::SetSaveUnpacked(unsigned char)
+SvtScriptedTextHelper::GetText() const
+SvtScriptedTextHelper::GetTextHeight() const
+SvtScriptedTextHelper::GetTextWidth() const
+SvtScriptedTextHelper::SvtScriptedTextHelper(OutputDevice&, Font*, Font*, Font*)
+SvtSearchOptions::IsSearchForStyles() const
+SvtSecurityOptions::IsTrustedAuthorsEnabled()
+SvtStartOptions::EnableIntro(unsigned char)
+SvtStartOptions::IsIntroEnabled() const
+SvtStartOptions::SetConnectionURL(rtl::OUString const&)
+SvtTabAppearanceCfg::SetDragMode(unsigned short)
+SvtTabAppearanceCfg::SetLookNFeel(unsigned short)
+SvtURLBox::GetUrlFilter() const
+SvtUserOptions::GetLocale() const
+SvtWorkingSetOptions::GetWindowList() const
+SvtWorkingSetOptions::SetWindowList(com::sun::star::uno::Sequence<rtl::OUString> const&)
+Svx3DPreviewControl::Get3DAttributes() const
+Svx3DPreviewControl::Set3DObject(E3dObject const*)
+Svx3DPreviewControl::Svx3DPreviewControl(Window*, long)
+Svx3DWin::LinkStubClickLightHdl(void*, void*)
+Svx3DWin::LinkStubDoubleClickHdl(void*, void*)
+SvxAcceptChgCtr::IsFilterPageVisible()
+SvxAcceptChgCtr::IsViewPageVisible()
+SvxAcceptChgCtr::SvxAcceptChgCtr(Window*, long)
+SvxAccessibleTextIndex::IsEditable() const
+SvxAccessibleTextPropertySet::getServiceName()
+SvxAngleCtl::SvxAngleCtl(Window*, ResId const&)
+SvxAngleCtl::SvxAngleCtl(Window*, ResId const&, Size)
+SvxAreaTabPage::LinkStubClickBitmapHdl_Impl(void*, void*)
+SvxAreaTabPage::LinkStubClickColorHdl_Impl(void*, void*)
+SvxAreaTabPage::LinkStubClickGradientHdl_Impl(void*, void*)
+SvxAreaTabPage::LinkStubClickHatchingHdl_Impl(void*, void*)
+SvxAreaTabPage::LinkStubClickInvisibleHdl_Impl(void*, void*)
+SvxAutoCorrect::SetShareAutoCorrFileName(String const&)
+SvxAutoCorrect::SetUserAutoCorrFileName(String const&)
+SvxAutocorrWordList::Insert(SvxAutocorrWord* const&, unsigned short&)
+SvxAutocorrWordList::Insert(SvxAutocorrWord* const*, unsigned short)
+SvxAutocorrWordList::Insert(SvxAutocorrWordList const*, unsigned short, unsigned short)
+SvxAutocorrWordList::Remove(SvxAutocorrWord* const&, unsigned short)
+SvxAutocorrWordList::Remove(unsigned short, unsigned short)
+SvxB3DVectorItem::SvxB3DVectorItem(unsigned short, SvStream&)
+SvxBmpMask::ImpMask(BitmapEx const&)
+SvxBrushItem::CreateCntWallpaperItem() const
+SvxBrushItem::PurgeGraphic() const
+SvxBulletItem::SvxBulletItem(Bitmap const&, unsigned short)
+SvxBulletItem::SvxBulletItem(Font const&, unsigned short, unsigned short)
+SvxBulletItem::SvxBulletItem(GraphicObject const&, unsigned short)
+SvxBulletItem::SvxBulletItem(unsigned char, Font const&, unsigned short, unsigned short)
+SvxCSS1Map::Insert(SvxCSS1Map const*, unsigned short, unsigned short)
+SvxCSS1Map::Insert(SvxCSS1MapEntry* const&, unsigned short&)
+SvxCSS1Map::Insert(SvxCSS1MapEntry* const*, unsigned short)
+SvxCSS1Map::Remove(SvxCSS1MapEntry* const&, unsigned short)
+SvxCSS1Map::Remove(unsigned short, unsigned short)
+SvxCaptionTabPage::Construct()
+SvxCharNamePage::FillItemSetColor_Impl(SfxItemSet&)
+SvxChartTextOrientItem::SvxChartTextOrientItem(SvxChartTextOrient, unsigned short)
+SvxColorBox::LinkStubDelayHdl_Impl(void*, void*)
+SvxColorValueSet::SvxColorValueSet(Window*, long)
+SvxColumnItem::GetVisibleRight() const
+SvxComboBox::Clear()
+SvxComboBox::GetEntry(unsigned short) const
+SvxComboBox::GetEntryPos(SvxBoxEntry const&) const
+SvxComboBox::GetModifiedCount() const
+SvxComboBox::GetModifiedEntry(unsigned short) const
+SvxComboBox::GetNewCount() const
+SvxComboBox::GetNewEntry(unsigned short) const
+SvxComboBox::GetRemovedCount() const
+SvxComboBox::GetRemovedEntry(unsigned short) const
+SvxComboBox::InsertEntry(SvxBoxEntry const&)
+SvxComboBox::InsertNewEntry(SvxBoxEntry const&)
+SvxComboBox::ModifyEntry(unsigned short, String const&)
+SvxComboBox::RemoveEntry(SvxBoxEntry const&)
+SvxComboBox::SvxComboBox(Window*, ResId const&, unsigned short)
+SvxComboBox::SvxComboBox(Window*, long, unsigned short)
+SvxCommonLinguisticControl::GetNewEditWord()
+SvxCommonLinguisticControl::SetNewEditWord(String const&)
+SvxCommonLinguisticControl::UpdateChangesHelp(String const&)
+SvxCommonLinguisticControl::UpdateIgnoreHelp()
+SvxConfigDialog::ActivateTabPage(unsigned short)
+SvxConfigEntry::GetProperties(com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&)
+SvxConfigEntry::SvxConfigEntry(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&)
+SvxConfigFunctionListBox_Impl::GetEntry_Impl(String const&)
+SvxConfigFunctionListBox_Impl::GetEntry_Impl(unsigned short)
+SvxContourDlg::ScaleContour(PolyPolygon&, Graphic const&, MapUnit, Size const&)
+SvxContourDlg::SetEditingObject(void*)
+SvxContourDlg::SetExecState(unsigned char)
+SvxContourDlg::SetGraphic(Graphic const&)
+SvxContourDlg::SetGraphicLinked(unsigned char)
+SvxContourDlg::SetPolyPolygon(PolyPolygon const&)
+SvxContourDlgChildWindow::UpdateContourDlg(Graphic const&, unsigned char, PolyPolygon const*, void*)
+SvxDashListItem::SetDashList(XDashList*)
+SvxDistributePage::Create(Window*, SfxItemSet const&, SvxDistributeHorizontal, SvxDistributeVertical)
+SvxDoCapitals::Do(String const&, unsigned short, unsigned short, unsigned char)
+SvxDoubleItem::SvxDoubleItem(SvStream&, unsigned short)
+SvxDrawOutlinerViewForwarder::SetShapePos(Point const&)
+SvxDrawPage::GetPageForSdrPage(SdrPage*)
+SvxDrawPage::SvxDrawPage()
+SvxEditEngineViewForwarder::SvxEditEngineViewForwarder(EditView&)
+SvxEditSourceHelper::UserSpaceToEE(Rectangle const&, Size const&, bool)
+SvxEditSourceHint::SetEndValue(unsigned long)
+SvxEditSourceHint::SetStartValue(unsigned long)
+SvxEditSourceHint::SetValue(unsigned long)
+SvxFont::DrawText(OutputDevice*, Point const&, String const&, unsigned short, unsigned short) const
+SvxFontPrevWindow::IsTwoLines() const
+SvxFontPrevWindow::SetCJKFont(SvxFont const&)
+SvxFontPrevWindow::SetCTLFont(SvxFont const&)
+SvxFrameDirectionItem::SvxFrameDirectionItem(unsigned short)
+SvxGetNumRule(com::sun::star::uno::Reference<com::sun::star::container::XIndexReplace>, SvxNumRule&)
+SvxGrafToolBoxControl::RegisterControl(unsigned short, SfxModule*)
+SvxGraphCtrlAccessibleContext::checkChildIndex(long)
+SvxGraphCtrlAccessibleContext::setDescription(rtl::OUString const&)
+SvxGraphCtrlAccessibleContext::setName(rtl::OUString const&)
+SvxHyperlinkDlg::LinkStubBookmarkFoundHdl(void*, void*)
+SvxHyperlinkNewDocTp::ReadURLFile(String const&, String&, String&, int&, unsigned char*)
+SvxHyphenWordDialog::LinkStubLangError_Impl(void*, void*)
+SvxIMapDlg::GetTargetList() const
+SvxIconChoiceCtrlEntry::LockPos(unsigned char)
+SvxIconChoiceCtrlEntry::SetMoved(unsigned char)
+SvxIconChoiceCtrl_Impl::GetEntryPredecessor(SvxIconChoiceCtrlEntry*, SvxIconChoiceCtrlEntry**)
+SvxIconChoiceCtrl_Impl::GetGridCount(Size const&, unsigned char, unsigned char) const
+SvxIconChoiceCtrl_Impl::GetItem(SvxIconChoiceCtrlEntry*, Point const&)
+SvxIconChoiceCtrl_Impl::GetItemColumn(unsigned short, long&) const
+SvxIconChoiceCtrl_Impl::GetPopupMenuPosPixel() const
+SvxIconChoiceCtrl_Impl::GetTextMode(SvxIconChoiceCtrlEntry const*) const
+SvxIconChoiceCtrl_Impl::GoLeftRight(SvxIconChoiceCtrlEntry*, unsigned char)
+SvxIconChoiceCtrl_Impl::GoUpDown(SvxIconChoiceCtrlEntry*, unsigned char)
+SvxIconChoiceCtrl_Impl::HideFocus()
+SvxIconChoiceCtrl_Impl::HideShowDDIcon(SvxIconChoiceCtrlEntry*, Point const&)
+SvxIconChoiceCtrl_Impl::InvalidateBoundingRect(SvxIconChoiceCtrlEntry*)
+SvxIconChoiceCtrl_Impl::LockEntryPos(SvxIconChoiceCtrlEntry*, unsigned char)
+SvxIconChoiceCtrl_Impl::PrepareCommandEvent(CommandEvent const&)
+SvxIconChoiceCtrl_Impl::RecalcAllBoundingRects()
+SvxIconChoiceCtrl_Impl::SaveSelection(List**)
+SvxIconChoiceCtrl_Impl::SetEntryFlags(SvxIconChoiceCtrlEntry*, unsigned short)
+SvxIconChoiceCtrl_Impl::SetEntryListPos(SvxIconChoiceCtrlEntry*, unsigned long)
+SvxIconChoiceCtrl_Impl::ShowEntryFocusRect(SvxIconChoiceCtrlEntry const*)
+SvxIconChoiceCtrl_Impl::Tracking(TrackingEvent const&)
+SvxIconChoiceCtrl_Impl::UpdateBoundingRects()
+SvxJSearchOptionsDialog::SetTransliterationFlags(int)
+SvxJavaTable::SvxJavaTable(Window*, ResId const&)
+SvxLanguageBox::SvxLanguageBox(Window*, long, unsigned char)
+SvxLanguageTable::GetType(String const&) const
+SvxLightCtl3D::GetVector()
+SvxLightCtl3D::SetVector(basegfx::B3DVector const&)
+SvxLightCtl3D::SvxLightCtl3D(Window*, long)
+SvxLightPrevievCtl3D::SetDistanceToObject(double)
+SvxLightPrevievCtl3D::SetLampSize(double)
+SvxLightPrevievCtl3D::SetObjectRadius(double)
+SvxLightPrevievCtl3D::SetScaleSizeSelected(double)
+SvxLightPrevievCtl3D::SvxLightPrevievCtl3D(Window*, ResId const&)
+SvxLineColorItem::SvxLineColorItem(Color const&, unsigned short)
+SvxLineColorItem::SvxLineColorItem(SvStream&, unsigned short)
+SvxLinguTabPage::GetRanges()
+SvxLinkManager::InsertFileLink(sfx2::SvBaseLink&)
+SvxListBox::GetEntryPos(SvxBoxEntry const&) const
+SvxListBox::GetModifiedCount() const
+SvxListBox::GetModifiedEntry(unsigned short) const
+SvxListBox::GetNewCount() const
+SvxListBox::GetNewEntry(unsigned short) const
+SvxListBox::GetRemovedCount() const
+SvxListBox::GetRemovedEntry(unsigned short) const
+SvxListBox::GetSelectSvxBoxEntry(unsigned short) const
+SvxListBox::GetSvxBoxEntry(unsigned short) const
+SvxListBox::InsertEntry(SvxBoxEntry const&, unsigned short)
+SvxListBox::InsertNewEntry(SvxBoxEntry const&)
+SvxListBox::ModifyEntry(unsigned short, String const&)
+SvxListBox::RemoveEntry(SvxBoxEntry const&)
+SvxListBox::SvxListBox(Window*, ResId const&)
+SvxListBox::SvxListBox(Window*, long)
+SvxListBoxControl::RegisterControl(unsigned short, SfxModule*)
+SvxMSConvertOCXControls::WriteOCXExcelKludgeStream(SotStorageStreamRef&, com::sun::star::uno::Reference<com::sun::star::awt::XControlModel> const&, com::sun::star::awt::Size const&, String&)
+SvxMSDffCustomShape::GetShapeTypeFromSdrObject(SdrObject const*)
+SvxMSDffManager::ReadObjText(SvStream&, SdrObject*) const
+SvxMSDffManager::Scale(PolyPolygon&) const
+SvxMSDffManager::Scale(Rectangle&) const
+SvxMSDffManager::lcl_GetMetaFileFromGrf_Impl(Graphic const&, GDIMetaFile&)
+SvxMSDffManager::removeShapeId(SdrObject*)
+SvxMSDffShapeInfos::Insert(SvxMSDffShapeInfo* const&, unsigned short&)
+SvxMSDffShapeInfos::Insert(SvxMSDffShapeInfo* const*, unsigned short)
+SvxMSDffShapeInfos::Insert(SvxMSDffShapeInfos const*, unsigned short, unsigned short)
+SvxMSDffShapeInfos::Remove(SvxMSDffShapeInfo* const&, unsigned short)
+SvxMSDffShapeTxBxSort::DeleteAndDestroy(unsigned short, unsigned short)
+SvxMSDffShapeTxBxSort::Insert(SvxMSDffShapeOrder* const&, unsigned short&)
+SvxMSDffShapeTxBxSort::Insert(SvxMSDffShapeOrder* const*, unsigned short)
+SvxMSDffShapeTxBxSort::Insert(SvxMSDffShapeTxBxSort const*, unsigned short, unsigned short)
+SvxMSDffShapeTxBxSort::Remove(SvxMSDffShapeOrder* const&, unsigned short)
+SvxMSDffShapeTxBxSort::Remove(unsigned short, unsigned short)
+SvxNumRule::SetLevel(unsigned short, SvxNumberFormat const*)
+SvxNumberFormatShell::GetCurCurrencyEntry()
+SvxNumberFormatShell::GetCurrencyFormats(SvStrings&)
+SvxNumberFormatShell::IsBankingSymbol(unsigned short)
+SvxNumberInfoItem::SetDoubleValue(double const&)
+SvxNumberInfoItem::SetNumberFormatter(SvNumberFormatter*)
+SvxNumberInfoItem::SetStringValue(String const&)
+SvxOle2Shape::SvxOle2Shape(SdrObject*)
+SvxOpenGraphicDialog::SetControlHelpIds(short const*, int const*)
+SvxOpenGraphicDialog::SetDialogHelpId(int)
+SvxParaPrevWindow::OutputSizeChanged()
+SvxPixelCtl::GetBitmapPixel(unsigned short)
+SvxPluginFileDlg::SetDialogHelpId(int)
+SvxPopupWindowListBox::StartSelection()
+SvxPositionSizeTabPage::LinkStubChangePosXHdl(void*, void*)
+SvxPositionSizeTabPage::LinkStubChangePosYHdl(void*, void*)
+SvxPostItDialog::GetRanges()
+SvxPreviewCtl3D::GetMaterial(Base3DMaterialValue)
+SvxPreviewCtl3D::GetShininess()
+SvxPreviewCtl3D::SetNormalMode(unsigned short)
+SvxPreviewCtl3D::SetSegments(unsigned short, unsigned short)
+SvxPreviewCtl3D::SetShadeMode(unsigned short)
+SvxPreviewCtl3D::SetUserDistance(double)
+SvxRectCtlAccessibleContext::setDescription(rtl::OUString const&)
+SvxRectCtlAccessibleContext::setName(rtl::OUString const&)
+SvxRedlinTable::IsValidCalcEntry(String const&, RedlinData*)
+SvxRedlinTable::IsValidWriterEntry(String const&, RedlinData*)
+SvxRedlinTable::SvxRedlinTable(Window*, long)
+SvxRelativeField::SvxRelativeField(Window*, long)
+SvxReloadControllerItem::RegisterControl(unsigned short, SfxModule*)
+SvxRubyChildWindow::GetChildWindowId()
+SvxRuler::GetDefTabDist() const
+SvxScriptOrgDialog::EnableButton(Button&, unsigned char)
+SvxScriptOrgDialog::LinkStubMacroDoubleClickHdl(void*, void*)
+SvxScriptSelectorDialog::GetSelectedId()
+SvxSearchDialog::GetReplaceItems(SfxItemSet&)
+SvxSearchDialog::GetSearchItems(SfxItemSet&)
+SvxSearchDialog::SvxSearchDialog(Window*, SfxBindings&)
+SvxSearchItem::GetFromDescriptor(com::sun::star::uno::Reference<com::sun::star::util::XSearchDescriptor> const&)
+SvxSearchItem::SetToDescriptor(com::sun::star::uno::Reference<com::sun::star::util::XSearchDescriptor>&)
+SvxSecurityTabPage::LinkStubAdvancedPBHdl(void*, void*)
+SvxServiceInfoHelper::concatSequences(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<rtl::OUString> const&)
+SvxShape::GetFillAttributeByName(rtl::OUString const&, rtl::OUString const&, SdrModel*)
+SvxShape::GetShapeForSdrObj(SdrObject*)
+SvxShape::getMaster()
+SvxShape::getMaster() const
+SvxShapePolyPolygonBezier::GetPolygonKind() const
+SvxShapeText::SvxShapeText()
+SvxShape_NewInstance()
+SvxShowCharSet::ImplFireAccessibleEvent(short, com::sun::star::uno::Any const&, com::sun::star::uno::Any const&)
+SvxSimpleTable::ClearAll()
+SvxSimpleTable::GetOutputSizePixel() const
+SvxSimpleTable::GetSelectedCol()
+SvxSimpleTable::HideTable()
+SvxSimpleTable::IsVisible() const
+SvxSimpleTable::SetPosSize(Point const&, Size const&)
+SvxSimpleTable::TableToTop()
+SvxStdParagraphTabPage::SetMaxDistance(unsigned short)
+SvxStringArray::GetStringByType(long) const
+SvxStringArray::GetValueByStr(String const&) const
+SvxSuperContourDlg::DoAutoCreate()
+SvxSuperContourDlg::ReducePoints(long)
+SvxTPFilter::DisableRange(unsigned char)
+SvxTPFilter::GetSelectedAuthorPos()
+SvxTPFilter::HideClocks(unsigned char)
+SvxTabStop::GetValueString() const
+SvxTabStopArr::Insert(SvxTabStop const&, unsigned short&)
+SvxTabStopArr::Insert(SvxTabStop const*, unsigned short)
+SvxTabStopArr::Remove(SvxTabStop const&, unsigned short)
+SvxTabStopArr_SAR::Replace(SvxTabStop const&, unsigned short)
+SvxTabStopArr_SAR::Replace(SvxTabStop const*, unsigned short, unsigned short)
+SvxTabStopArr_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(SvxTabStop const&, void*), void*)
+SvxTextAnimationPage::Construct()
+SvxTextEditSource::GetSdrObject() const
+SvxTextEditSourceImpl::UpdateOutliner()
+SvxTextEncodingBox::IsTextEncodingSelected(unsigned short) const
+SvxTextEncodingBox::RemoveTextEncoding(unsigned short)
+SvxThesaurusDialog::GetLanguage() const
+SvxThesaurusDialog::LinkStubSpellErrorHdl_Impl(void*, void*)
+SvxUnoFontDescriptor::getPropertyState(SfxItemSet const&)
+SvxUnoTextBase::InsertField(SvxFieldItem const&)
+SvxUnoTextBase::SvxUnoTextBase(SvxEditSource const*, SfxItemPropertyMap const*)
+SvxUnoTextContent::SvxUnoTextContent()
+SvxUnoTextCursor_NewInstance()
+SvxUnoTextRange_NewInstance()
+SvxXMLNumRuleExport::Export(rtl::OUString const&, unsigned char)
+SvxXMLNumRuleExport::ExportOutline()
+SvxZoomDialog::GetRanges()
+SvxZoomDialog::SetButtonText(unsigned short, String const&)
+SvxZoomDialog::SetSpinSize(unsigned short)
+SwAddPrinterTabPage::Init()
+SwBlinkList::Insert(SwBlinkList const*, unsigned short, unsigned short)
+SwBlinkList::Insert(SwBlinkPortion* const&, unsigned short&)
+SwBlinkList::Insert(SwBlinkPortion* const*, unsigned short)
+SwBlinkList::Remove(SwBlinkPortion* const&, unsigned short)
+SwBlockNames::Insert(SwBlockName const*&, unsigned short&)
+SwBlockNames::Insert(SwBlockName const**, unsigned short)
+SwBlockNames::Insert(SwBlockNames const*, unsigned short, unsigned short)
+SwBlockNames::Remove(SwBlockName const*&, unsigned short)
+SwBlockNames::Remove(unsigned short, unsigned short)
+SwBookmarks::Insert(SwBookmark* const&, unsigned short&)
+SwBookmarks::Insert(SwBookmark* const*, unsigned short)
+SwBookmarks::Insert(SwBookmarks const*, unsigned short, unsigned short)
+SwBookmarks::Remove(SwBookmark* const&, unsigned short)
+SwCellFrms::DeleteAndDestroy(unsigned short, unsigned short)
+SwChartBoxes::DeleteAndDestroy(unsigned short, unsigned short)
+SwChartDataSequence::GetDataRowSource() const
+SwColumnPage::LinkStubTimeout(void*, void*)
+SwContentArr::Insert(SwContent* const&, unsigned short&)
+SwContentArr::Insert(SwContent* const*, unsigned short)
+SwContentArr::Insert(SwContentArr const*, unsigned short, unsigned short)
+SwContentArr::Remove(SwContent* const&, unsigned short)
+SwContentArr::Remove(unsigned short, unsigned short)
+SwCurrShells::DeleteAndDestroy(unsigned short, unsigned short)
+SwCurrShells::Insert(CurrShell* const&, unsigned short&)
+SwCurrShells::Insert(CurrShell* const*, unsigned short)
+SwCurrShells::Insert(SwCurrShells const*, unsigned short, unsigned short)
+SwCurrShells::Remove(unsigned short, unsigned short)
+SwDLL::Exit()
+SwDependentFields::DeleteAndDestroy(unsigned short, unsigned short)
+SwDestroyList::DeleteAndDestroy(unsigned short, unsigned short)
+SwDestroyList::Insert(SwDestroyList const*, unsigned short, unsigned short)
+SwDestroyList::Insert(SwSectionFrm* const&, unsigned short&)
+SwDestroyList::Insert(SwSectionFrm* const*, unsigned short)
+SwDestroyList::Remove(SwSectionFrm* const&, unsigned short)
+SwDoc::LinkStubDoUpdateAllCharts(void*, void*)
+SwDrawBaseShell::InitInterface_Impl()
+SwEditShell::GetChartName(com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&)
+SwEditShell::UpdateChartData(String const&)
+SwFilterDetect::impl_createFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+SwFldDataOnlyDlgWrapper::GetChildWindowId()
+SwFormatTablePage::LinkStubRightModifyHdl(void*, void*)
+SwGlblDocContents::Insert(SwGlblDocContent* const&, unsigned short&)
+SwGlblDocContents::Insert(SwGlblDocContent* const*, unsigned short)
+SwGlblDocContents::Insert(SwGlblDocContents const*, unsigned short, unsigned short)
+SwGlblDocContents::Remove(SwGlblDocContent* const&, unsigned short)
+SwGlosDocShell::InitInterface_Impl()
+SwGlossaryDlg::SetActGroup(String const&)
+SwHTMLFmtInfos::Insert(SwHTMLFmtInfo const*&, unsigned short&)
+SwHTMLFmtInfos::Insert(SwHTMLFmtInfo const**, unsigned short)
+SwHTMLFmtInfos::Insert(SwHTMLFmtInfos const*, unsigned short, unsigned short)
+SwHTMLFmtInfos::Remove(SwHTMLFmtInfo const*&, unsigned short)
+SwHTMLFmtInfos::Remove(unsigned short, unsigned short)
+SwHTMLPosFlyFrms::Insert(SwHTMLPosFlyFrm* const&, unsigned short&)
+SwHTMLPosFlyFrms::Insert(SwHTMLPosFlyFrm* const*, unsigned short)
+SwHTMLPosFlyFrms::Insert(SwHTMLPosFlyFrms const*, unsigned short, unsigned short)
+SwHTMLPosFlyFrms::Remove(SwHTMLPosFlyFrm* const&, unsigned short)
+SwHyphWrapper::LinkStubSpellError(void*, void*)
+SwInsDBColumns::Insert(SwInsDBColumn* const&, unsigned short&)
+SwInsDBColumns::Insert(SwInsDBColumn* const*, unsigned short)
+SwInsDBColumns::Insert(SwInsDBColumns const*, unsigned short, unsigned short)
+SwInsDBColumns::Remove(SwInsDBColumn* const&, unsigned short)
+SwInsDBColumns::Remove(unsigned short, unsigned short)
+SwLRects::Replace(SwLineRect const&, unsigned short)
+SwLRects::Replace(SwLineRect const*, unsigned short, unsigned short)
+SwLRects::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwLineRect const&, void*), void*)
+SwListArr::Replace(SwListEntry const&, unsigned short)
+SwListArr::Replace(SwListEntry const*, unsigned short, unsigned short)
+SwListArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwListEntry const&, void*), void*)
+SwLoadOptPage::LinkStubCaptionHdl(void*, void*)
+SwMailDispatcherListener_Impl::DeleteAttachments(com::sun::star::uno::Reference<com::sun::star::mail::XMailMessage>&)
+SwMailMergeChildWindow::GetChildWindowId()
+SwNumberTreeNodeGreaterEqual(SwNumberTreeNode const*, SwNumberTreeNode const*)
+SwOutlineNodes::Insert(SwNode* const&, unsigned short&)
+SwOutlineNodes::Insert(SwNode* const*, unsigned short)
+SwOutlineNodes::Insert(SwOutlineNodes const*, unsigned short, unsigned short)
+SwPosFlyFrms::DeleteAndDestroy(unsigned short, unsigned short)
+SwPosFlyFrms::Insert(SwPosFlyFrm* const&, unsigned short&)
+SwPosFlyFrms::Insert(SwPosFlyFrm* const*, unsigned short)
+SwPosFlyFrms::Insert(SwPosFlyFrms const*, unsigned short, unsigned short)
+SwPosFlyFrms::Remove(SwPosFlyFrm* const&, unsigned short)
+SwPosFlyFrms::Remove(unsigned short, unsigned short)
+SwRects::Replace(SwRect const&, unsigned short)
+SwRects::Replace(SwRect const*, unsigned short, unsigned short)
+SwRects::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwRect const&, void*), void*)
+SwRedlineDataParentSortArr::DeleteAndDestroy(unsigned short, unsigned short)
+SwRedlineDataParentSortArr::Insert(SwRedlineDataParent* const&)
+SwRedlineDataParentSortArr::Insert(SwRedlineDataParent* const*, unsigned short)
+SwRedlineDataParentSortArr::Insert(SwRedlineDataParentSortArr const*, unsigned short, unsigned short)
+SwRetrievedInputStreamDataManager::ReleaseData(unsigned long)
+SwScrollStripes::DeleteAndDestroy(unsigned short, unsigned short)
+SwScrollStripes::Insert(SwScrollStripes const*, unsigned short, unsigned short)
+SwScrollStripes::Insert(SwStripes* const&, unsigned short&)
+SwScrollStripes::Insert(SwStripes* const*, unsigned short)
+SwScrollStripes::Remove(SwStripes* const&, unsigned short)
+SwSections::DeleteAndDestroy(unsigned short, unsigned short)
+SwSelBoxes::Insert(SwTableBox* const&, unsigned short&)
+SwSelBoxes::Remove(SwTableBox* const&, unsigned short)
+SwSortElements::Insert(SwSortElement* const&, unsigned short&)
+SwSortElements::Insert(SwSortElement* const*, unsigned short)
+SwSortElements::Insert(SwSortElements const*, unsigned short, unsigned short)
+SwSortElements::Remove(SwSortElement* const&, unsigned short)
+SwSortElements::Remove(unsigned short, unsigned short)
+SwSortTableLines::DeleteAndDestroy(unsigned short, unsigned short)
+SwSortTableLines::Insert(SwTableLine* const&)
+SwSortTableLines::Insert(SwTableLine* const&, unsigned short&)
+SwSortTableLines::Insert(SwTableLine* const*, unsigned short)
+SwSortTableLines::Remove(SwTableLine* const&, unsigned short)
+SwSortTableLines::Remove(unsigned short, unsigned short)
+SwStripeArr::Replace(SwStripe const&, unsigned short)
+SwStripeArr::Replace(SwStripe const*, unsigned short, unsigned short)
+SwStripeArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwStripe const&, void*), void*)
+SwSyncChildWin::GetChildWindowId()
+SwTOXMarks::DeleteAndDestroy(unsigned short, unsigned short)
+SwTOXSelectTabPage::LinkStubTOXAreaHdl(void*, void*)
+SwTOXSources::Remove(unsigned short, unsigned short)
+SwTOXSources::Replace(SwTOXSource const&, unsigned short)
+SwTOXSources::Replace(SwTOXSource const*, unsigned short, unsigned short)
+SwTOXSources::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwTOXSource const&, void*), void*)
+SwTOXStylesTabPage::LinkStubModifyHdl(void*, void*)
+SwTableSortBoxes::DeleteAndDestroy(unsigned short, unsigned short)
+SwTableSortBoxes::Insert(SwTableBox* const&, unsigned short&)
+SwTableSortBoxes::Insert(SwTableBox* const*, unsigned short)
+SwTextPortions::Replace(SwTextPortion const&, unsigned short)
+SwTextPortions::Replace(SwTextPortion const*, unsigned short, unsigned short)
+SwTextPortions::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwTextPortion const&, void*), void*)
+SwThreadJoiner::ExistsThreadJoiner()
+SwThreadManager::~SwThreadManager()
+SwTxtNode::Replace(SwIndex const&, unsigned short)
+SwUnoCrsr::SwUnoCrsr(SwUnoCrsr&)
+SwView::LinkStubSpellError(void*, void*)
+SwWebGlosDocShell::InitInterface_Impl()
+SwWriteTableCols::Insert(SwWriteTableCol* const&, unsigned short&)
+SwWriteTableCols::Insert(SwWriteTableCol* const*, unsigned short)
+SwWriteTableCols::Insert(SwWriteTableCols const*, unsigned short, unsigned short)
+SwWriteTableCols::Remove(SwWriteTableCol* const&, unsigned short)
+SwWriteTableCols::Remove(unsigned short, unsigned short)
+SwWriteTableRows::Insert(SwWriteTableRow* const&, unsigned short&)
+SwWriteTableRows::Insert(SwWriteTableRow* const*, unsigned short)
+SwWriteTableRows::Insert(SwWriteTableRows const*, unsigned short, unsigned short)
+SwWriteTableRows::Remove(SwWriteTableRow* const&, unsigned short)
+SwWriteTableRows::Remove(unsigned short, unsigned short)
+SwXCellRange::GetLabeledDataSequences(SwChartDataProvider&, unsigned char, unsigned char)
+SwXMLTableColumnsSortByWidth_Impl::GetPos(SwXMLTableColumn_Impl const*) const
+SwXMLTableColumnsSortByWidth_Impl::Remove(SwXMLTableColumn_Impl*)
+SwXMLTableColumns_Impl::Insert(SwXMLTableColumn_Impl* const&, unsigned short&)
+SwXMLTableColumns_Impl::Insert(SwXMLTableColumn_Impl* const*, unsigned short)
+SwXMLTableColumns_Impl::Insert(SwXMLTableColumns_Impl const*, unsigned short, unsigned short)
+SwXMLTableColumns_Impl::Remove(SwXMLTableColumn_Impl* const&, unsigned short)
+SwXMLTableColumns_Impl::Remove(unsigned short, unsigned short)
+SwpFmts::DeleteAndDestroy(unsigned short, unsigned short)
+SwpFmts::Insert(SwFmt const*&, unsigned short&)
+SwpFmts::Insert(SwFmt const**, unsigned short)
+SwpFmts::Insert(SwpFmts const*, unsigned short, unsigned short)
+SwpFmts::Remove(SwFmt const*&, unsigned short)
+SwpFmts::Remove(unsigned short, unsigned short)
+SwpHtEnd::Insert(SwTxtAttr const*&, unsigned short&)
+SwpHtEnd::Insert(SwTxtAttr const**, unsigned short)
+SwpHtEnd::Insert(SwpHtEnd const*, unsigned short, unsigned short)
+SwpHtEnd::Remove(SwTxtAttr const*&, unsigned short)
+SwpHtStart::Insert(SwTxtAttr const*&, unsigned short&)
+SwpHtStart::Insert(SwTxtAttr const**, unsigned short)
+SwpHtStart::Insert(SwpHtStart const*, unsigned short, unsigned short)
+SwpHtStart::Remove(SwTxtAttr const*&, unsigned short)
+SymCharConverter::Convert(Font&, String&, OutputDevice*)
+SymbolArray::DeleteAndDestroy(unsigned short, unsigned short)
+SystemChildWindow::IsEraseBackgroundEnabled()
+SystemChildWindow::SystemChildWindow(Window*, long, SystemWindowData*)
+SystemWindow::GetZLevel() const
+SystemWindow::SetZLevel(unsigned char)
+T602ImportFilter::CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+T602ImportFilter::getSupportedServiceNames()
+TESortedPositions::Insert(TESortedPositions const*, unsigned short, unsigned short)
+TESortedPositions::Insert(unsigned long const&, unsigned short&)
+TESortedPositions::Insert(unsigned long const*, unsigned short)
+TESortedPositions::Remove(unsigned long const&, unsigned short)
+TESortedPositions::Remove(unsigned short, unsigned short)
+TESortedPositions_SAR::Replace(unsigned long const&, unsigned short)
+TESortedPositions_SAR::Replace(unsigned long const*, unsigned short, unsigned short)
+TESortedPositions_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned long const&, void*), void*)
+TEWritingDirectionInfos::Replace(TEWritingDirectionInfo const&, unsigned short)
+TEWritingDirectionInfos::Replace(TEWritingDirectionInfo const*, unsigned short, unsigned short)
+TEWritingDirectionInfos::_ForEach(unsigned short, unsigned short, unsigned char (*)(TEWritingDirectionInfo const&, void*), void*)
+TGAReader::Callback(unsigned short)
+TPGalleryThemeProperties::LinkStubClickCloseBrowserHdl(void*, void*)
+TTBasic::CreateMyBasic()
+TTProfiler::Dec(unsigned long)
+TTProperties::Img(Bitmap*)
+TabBar::EnablePage(unsigned short, unsigned char)
+TabBar::GetMinSize() const
+TabBar::GetSelectPage(unsigned short) const
+TabBar::SelectPageRange(unsigned char, unsigned short, unsigned short)
+TabBar::SetHelpId(unsigned short, unsigned long)
+TabBar::SetHelpText(unsigned short, String const&)
+TabBar::SetSelectColor()
+TabBar::SetSelectColor(Color const&)
+TabBar::SetSelectTextColor()
+TabBar::SetSelectTextColor(Color const&)
+TabControl::GetTabPageBounds(unsigned short) const
+TabControl::GetTabPageResId(unsigned short) const
+TabControl::ImplSetFirstPagePos(unsigned short)
+TabControl::SetFirstPageId(unsigned short)
+TabControl::SetHelpId(unsigned short, unsigned long)
+Table::GetUniqueKey(unsigned long) const
+TaskBar::EnableAutoHide(unsigned char)
+TaskBar::HideStatusText()
+TaskBar::SetLines(unsigned short)
+TaskBar::ShowStatusText(String const&)
+TaskBar::TaskBar(Window*, long)
+TaskStatusBar::AddStatusFieldItem(unsigned short, TaskStatusFieldItem const&, unsigned short)
+TaskStatusBar::GetStatusFieldItem(unsigned short, TaskStatusFieldItem&) const
+TaskStatusBar::InsertStatusField(long, unsigned short, unsigned short)
+TaskStatusBar::ModifyStatusFieldItem(unsigned short, TaskStatusFieldItem const&)
+TaskStatusBar::RemoveStatusFieldItem(unsigned short)
+TaskStatusBar::SetFieldFlags(unsigned short)
+TaskStatusFieldItem::TaskStatusFieldItem(ITaskStatusNotify*, Image const&, String const&, String const&, unsigned short)
+TaskToolBox::EndUpdateTask()
+TaskToolBox::StartUpdateTask()
+TaskToolBox::UpdateTask(Image const&, String const&, unsigned char)
+TempFile::GetTempNameBaseDirectory()
+TempFile::SetTempNameBaseDirectory(String const&)
+TemplateCache::AddFileInfo(String const&)
+TemplateCache::ClearInvalidEntrys()
+TemplateCache::GetFileInfo(String const&)
+TemplateCache::Load()
+TemplateCache::Save()
+TemplateCache::TemplateCache()
+TemplateCache::~TemplateCache()
+TemplateCacheInfo::TemplateCacheInfo(String const&, DateTime const&, unsigned char)
+TestInSendMessage()
+TextAttrib::Clone() const
+TextAttrib::SetFont(Font&) const
+TextAttribHyperLink::TextAttribHyperLink(String const&)
+TextAttribHyperLink::TextAttribHyperLink(String const&, String const&)
+TextConvWrapper::ConvEnd_impl()
+TextDoc::IsValidPaM(TextPaM const&)
+TextEngine::DoesKeyMoveCursor(KeyEvent const&)
+TextEngine::SetDefTab(unsigned short)
+TextEngine::SetUpdateMode(unsigned char, TextView*, unsigned char)
+TextObj::TextObj(TextObj&)
+TextUndoManager::UndoRedoStart()
+TextUndoSetAttribs::TextUndoSetAttribs(TextEngine*, TextSelection const&)
+TextView::CursorEndOfParagraph(TextPaM const&)
+TextView::CursorLeft(TextPaM const&, unsigned char)
+TextView::CursorRight(TextPaM const&, unsigned char)
+TextView::CursorStartOfParagraph(TextPaM const&)
+TextView::IsAutoIndentMode() const
+TextView::IsHighlightSelection() const
+TextView::IsPaintSelection() const
+TextView::SetHighlightSelection(unsigned char)
+TextView::Write(SvStream&)
+TimeBox::GetTime(unsigned short) const
+TimeBox::GetTimePos(Time const&) const
+TimeBox::InsertTime(Time const&, unsigned short)
+TimeBox::RemoveTime(Time const&)
+TimeBox::TimeBox(Window*, ResId const&)
+TimeFormatter::GetRealTime() const
+TimeFormatter::IsTimeModified() const
+TimeOut_Impl(void*, void*)
+TokenPool::GetString(TokenId const&) const
+ToolBox::EndCustomizeMode()
+ToolBox::GetDisplayItemId(long) const
+ToolBox::GetItemDropDownRect(unsigned short) const
+ToolBox::GetItemHighImage(unsigned short) const
+ToolBox::GetItemImageAngle(unsigned short) const
+ToolBox::GetItemImageMirrorMode(unsigned short) const
+ToolBox::GetMenuButtonHdl() const
+ToolBox::GetMenubuttonRect() const
+ToolBox::GetPageScroll()
+ToolBox::GetTextCount() const
+ToolBox::GetTextStartEnd(long) const
+ToolBox::ImplGetLastValidItem(unsigned short)
+ToolBox::IsCustomizeMode()
+ToolBox::IsItemDown(unsigned short) const
+ToolBox::SetCustomizeMode(unsigned char)
+ToolBox::SetItemHighImage(unsigned short, Image const&)
+ToolBox::SetToolArrowClipregion(ToolBox*, long, long, unsigned char, unsigned char, long)
+ToolBox::StartCustomize(Rectangle const&, void*)
+ToolBox::StartCustomizeMode()
+ToolbarMenu::appendEntry(int, Image const&, unsigned short)
+ToolbarMenu::appendEntry(int, String const&, Control*, unsigned short)
+ToolbarMenu::getEntryImage(int) const
+ToolbarMenu::getEntryText(int) const
+ToolbarMenu::getHighlightedEntryId() const
+ToolbarMenu::isEntryChecked(int) const
+ToolbarMenu::isEntryEnabled(int) const
+ToolbarSaveInData::ReloadToolbar(rtl::OUString const&)
+TpBorderRGBColor(Color const&)
+TpBorderRGBColor(unsigned int)
+TransferDataContainer::ClearData()
+TransferableDataHelper::GetInterface(unsigned long, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>&)
+TransferableHelper::SetFileList(FileList const&, com::sun::star::datatransfer::DataFlavor const&)
+TransferableHelper::SetInterface(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, com::sun::star::datatransfer::DataFlavor const&)
+TypeName::TypeName(char*, unsigned int, unsigned int, unsigned short, int, int)
+UCBStorageStream::UCBStorageStream(String const&, unsigned short, unsigned char, ByteString const*)
+UCBStream::UCBStream(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream>&)
+URIHelper::queryFSysStyle(String const&, bool)
+UShortCont::Sort()
+UniqueIndex::Replace(unsigned long, void*)
+UnoControlBase::ImplGetPropertyValue_UINT16(unsigned short)
+UnoControlBase::ImplGetPropertyValue_UINT32(unsigned short)
+UnoControlModel::Clone() const
+UnoControlModel::GetImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&)
+UnoControlModel::getInfoHelper()
+UnoMemoryStream::UnoMemoryStream(unsigned int, unsigned int)
+UnxFilePicker::controlActionInfo(short, rtl::OUString&)::ElementToName::~ElementToName()
+UpdateCheck::createService(rtl::OUString const&) const
+UpdateCheck::dispose()
+UpdateCheckROModel::isAutoDownloadEnabled() const
+VCLUnoHelper::CreatePointer()
+VCLXAccessibleBox::SetIndexInParent(int)
+VCLXDevice::IsCreatedWithToolkit() const
+VCLXPrinterServer::getImplementationId()
+VCLXPrinterServer::getTypes()
+ValueNotFoundException::ValueNotFoundException()
+ValueSet::CopyItems(ValueSet const&)
+ValueSet::GetItemBits(unsigned short) const
+ValueSet::HideDropPos()
+ValueSet::InsertSpace(unsigned short, unsigned short)
+ValueSet::IsRTLActive()
+ValueSet::SetFirstLine(unsigned short)
+ValueSet::SetItemBits(unsigned short, unsigned short)
+ValueSet::ShowDropPos(Point const&)
+ValueSetAcc::IsDisposed()
+ValueSetItem::ClearAccessible()
+VectorBtree::memcmp(_STL::vector<unsigned char, _STL::allocator<unsigned char> > const&, _STL::vector<unsigned char, _STL::allocator<unsigned char> > const&, int, int)
+VerbExecutionController::EndControlExecution_WasModified()
+VerbExecutionController::StartControlExecution()
+Viewport3D::GetViewWindow(double&, double&, double&, double&) const
+Viewport3D::SetFarClipDist(double)
+Viewport3D::SetNearClipDist(double)
+WLevDistance::WLD(rtl::OUString const&)
+WLevDistance::WLD(unsigned short const*)
+WLevDistance::WLevDistance(rtl::OUString const&)
+WLevDistance::WLevDistance(unsigned short const*)
+WMFWriter::WMFRecord_SetBkColor(Color const&)
+WW8Bytes::Replace(unsigned char const&, unsigned short)
+WW8Bytes::Replace(unsigned char const*, unsigned short, unsigned short)
+WW8Bytes::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned char const&, void*), void*)
+WW8OleMaps::Insert(WW8OleMap* const&, unsigned short&)
+WW8OleMaps::Insert(WW8OleMap* const*, unsigned short)
+WW8OleMaps::Insert(WW8OleMaps const*, unsigned short, unsigned short)
+WW8OleMaps::Remove(WW8OleMap* const&, unsigned short)
+WW8OleMaps::Remove(unsigned short, unsigned short)
+WW8_WrSepInfoPtrs::Remove(unsigned short, unsigned short)
+WW8_WrSepInfoPtrs::Replace(WW8_SepInfo const&, unsigned short)
+WW8_WrSepInfoPtrs::Replace(WW8_SepInfo const*, unsigned short, unsigned short)
+WW8_WrSepInfoPtrs::_ForEach(unsigned short, unsigned short, unsigned char (*)(WW8_SepInfo const&, void*), void*)
+Wallpaper::SetBitmap()
+Wallpaper::SetGradient()
+Wallpaper::SetRect()
+Wallpaper::Wallpaper(BitmapEx const&)
+Wallpaper::Wallpaper(Gradient const&)
+WinMtfOutput::DrawLine(Point const&, Point const&)
+WinMtfOutput::GetTextLayoutMode() const
+WinMtfOutput::SetFont(Font const&)
+Window::DrawNativeControlText(unsigned int, unsigned int, Region const&, unsigned int, ImplControlValue const&, rtl::OUString)
+Window::EnableChildNotify(unsigned char)
+Window::GetDragSourceDropTarget(com::sun::star::uno::Reference<com::sun::star::datatransfer::dnd::XDragSource>&, com::sun::star::uno::Reference<com::sun::star::datatransfer::dnd::XDropTarget>&)
+Window::GetExtendedStyle() const
+Window::GetFontResolution(int&, int&) const
+Window::GetPrevExtendedStyle() const
+Window::GetSystemDataAny() const
+Window::HasCompoundControlFocus() const
+Window::ImplCalcChildOverlapToTop(ImplCalcToTopData*)
+Window::ImplFrameToOutput(Rectangle&)
+Window::ImplGetSameParent(Window const*) const
+Window::ImplInit(Window*, long, com::sun::star::uno::Any const&)
+Window::ImplInitSalControlHandle()
+Window::ImplIsInTaskPaneList()
+Window::ImplIsMouseTransparent() const
+Window::ImplIsToolbox() const
+Window::ImplOutputToFrame(Rectangle&)
+Window::ImplSetActive(unsigned char)
+Window::IsAllResizeEnabled() const
+Window::IsAutoScroll() const
+Window::IsChildNotify() const
+Window::IsChildPointerOverwrite() const
+Window::IsClipSiblingsEnabled() const
+Window::IsExtTextInput() const
+Window::IsParentPathVisible() const
+Window::IsParentUpdateMode() const
+Window::IsPointerVisible() const
+Window::PostUserEvent(unsigned long, void*)
+Window::SetAccessibleDescription(String const&)
+Window::SetExtendedStyle(long)
+Window::Validate(Rectangle const&, unsigned short)
+Window::Validate(Region const&, unsigned short)
+WindowArrange::Arrange(unsigned short, Rectangle const&)
+WindowArrange::WindowArrange()
+WindowArrange::~WindowArrange()
+WizardDialog::IsButtonFixedLineVisible()
+WizardDialog::WizardDialog(Window*, long, unsigned char, short)
+WordArr::Remove(short)
+WriteWindowMetafile(SvStream&, GDIMetaFile const&)
+WritingDirectionInfos::Replace(WritingDirectionInfo const&, unsigned short)
+WritingDirectionInfos::Replace(WritingDirectionInfo const*, unsigned short, unsigned short)
+WritingDirectionInfos::_ForEach(unsigned short, unsigned short, unsigned char (*)(WritingDirectionInfo const&, void*), void*)
+WrongRanges::Replace(WrongRange const&, unsigned short)
+WrongRanges::Replace(WrongRange const*, unsigned short, unsigned short)
+WrongRanges::_ForEach(unsigned short, unsigned short, unsigned char (*)(WrongRange const&, void*), void*)
+X11SalFrame::PostExtTextEvent(unsigned short, void*)
+X11SalFrame::SetWindowGravity(int) const
+X11SalGraphics::SetMask(int&, int&, unsigned int&, unsigned int&, int&, int&, unsigned long)
+X509Certificate_NssImpl::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+XBitmapList::Replace(XBitmapEntry*, long)
+XBitmapTable::Remove(long)
+XBitmapTable::Replace(long, XBitmapEntry*)
+XBitmapTable::XBitmapTable(String const&, XOutdevItemPool*, unsigned short, unsigned short)
+XClipPolyPolygon::GetClippedPolyPolygon()
+XColorList::GetColor(long) const
+XColorList::Remove(long)
+XColorList::Replace(XColorEntry*, long)
+XColorList::XColorList(String const&, XOutdevItemPool*, unsigned short, unsigned short)
+XDashTable::Remove(long)
+XDashTable::Replace(long, XDashEntry*)
+XDashTable::XDashTable(String const&, XOutdevItemPool*, unsigned short, unsigned short)
+XEditAttribute::XEditAttribute(SfxPoolItem const&)
+XFillBitmapItem::XFillBitmapItem(SfxItemPool*)
+XFillBitmapItem::XFillBitmapItem(long, XOBitmap const&)
+XFillExchangeData::RegisterClipboardFormatName()
+XFillFloatTransparenceItem::XFillFloatTransparenceItem(SfxItemPool*)
+XFillFloatTransparenceItem::XFillFloatTransparenceItem(long, XGradient const&, unsigned char)
+XFillGradientItem::XFillGradientItem(SfxItemPool*)
+XFillHatchItem::XFillHatchItem(SfxItemPool*)
+XFillHatchItem::XFillHatchItem(long, XHatch const&)
+XFormTextShadowColorItem::XFormTextShadowColorItem(long, Color const&)
+XGradientTable::Remove(long)
+XGradientTable::Replace(long, XGradientEntry*)
+XGradientTable::XGradientTable(String const&, XOutdevItemPool*, unsigned short, unsigned short)
+XHatchTable::Remove(long)
+XHatchTable::Replace(long, XHatchEntry*)
+XHatchTable::XHatchTable(String const&, XOutdevItemPool*, unsigned short, unsigned short)
+XKeyEventOp::~XKeyEventOp()
+XLineDashItem::XLineDashItem(SfxItemPool*)
+XLineDashItem::XLineDashItem(long, XDash const&)
+XLineEndItem::XLineEndItem(SfxItemPool*)
+XLineEndList::Replace(XLineEndEntry*, long)
+XLineEndTable::Remove(long)
+XLineEndTable::Replace(long, XLineEndEntry*)
+XLineEndTable::XLineEndTable(String const&, XOutdevItemPool*, unsigned short, unsigned short)
+XLineStartItem::XLineStartItem(SfxItemPool*)
+XMLAutoTextEventExport::XMLAutoTextEventExport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&, unsigned short)
+XMLElement::Equals(rtl::OUString)
+XMLElement::GetAttribute(String const&)
+XMLEmbeddedObjectExportFilter::XMLEmbeddedObjectExportFilter()
+XMLFamilyDataList_Impl::GetPos(XMLFamilyData_Impl const*) const
+XMLFamilyDataList_Impl::Remove(XMLFamilyData_Impl*)
+XMLFile::View()
+XMLFile::showType(XMLParentNode*)
+XMLFileWindow::SyntaxColorsChanged()
+XMLFilterListBox::LinkStubHeaderSelect_Impl(void*, void*)
+XMLFilterTabDialog::LinkStubCancelHdl(void*, void*)
+XMLFilterTestDialog::getFilterInfo() const
+XMLFontAutoStylePoolNames_Impl::GetPos(rtl::OUString const*) const
+XMLFontAutoStylePoolNames_Impl::Remove(rtl::OUString*)
+XMLFontAutoStylePool_Impl::GetPos(XMLFontAutoStylePoolEntry_Impl const*) const
+XMLFontAutoStylePool_Impl::Remove(XMLFontAutoStylePoolEntry_Impl*)
+XMLFormsContext::XMLFormsContext(SvXMLImport&, unsigned short, rtl::OUString const&)
+XMLMutableAttributeList::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+XMLPagePropertySetMapper::XMLPagePropertySetMapper(UniReference<XMLPropertyHandlerFactory> const&)
+XMLParentNode::GetChildElement(XMLElement*)
+XMLParentNode::RemoveChild(XMLElement*)
+XMLPersTextContentTContext::XMLPersTextContentTContext(XMLTransformerBase&, rtl::OUString const&, unsigned short)
+XMLPersTextContentTContext::XMLPersTextContentTContext(XMLTransformerBase&, rtl::OUString const&, unsigned short, xmloff::token::XMLTokenEnum, unsigned short)
+XMLProcAddAttrTransformerContext::XMLProcAddAttrTransformerContext(XMLTransformerBase&, rtl::OUString const&, unsigned short, unsigned short, xmloff::token::XMLTokenEnum, xmloff::token::XMLTokenEnum)
+XMLPropertyBackpatcher<rtl::OUString>::XMLPropertyBackpatcher(char const*)
+XMLPropertyBackpatcher<rtl::OUString>::XMLPropertyBackpatcher(char const*, char const*, unsigned char, rtl::OUString)
+XMLPropertyBackpatcher<rtl::OUString>::XMLPropertyBackpatcher(rtl::OUString const&, rtl::OUString const&, unsigned char, rtl::OUString)
+XMLPropertyBackpatcher<short>::XMLPropertyBackpatcher(char const*)
+XMLPropertyBackpatcher<short>::XMLPropertyBackpatcher(char const*, char const*, unsigned char, short)
+XMLPropertyBackpatcher<short>::XMLPropertyBackpatcher(rtl::OUString const&, rtl::OUString const&, unsigned char, short)
+XMLShapeImportHelper::CreateExternalShapePropMapper(com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, SvXMLImport&)
+XMLShapeImportHelper::Get3DSceneShapeAttrTokenMap()
+XMLShapeImportHelper::GetPathShapeAttrTokenMap()
+XMLShapeImportHelper::GetPolygonShapeAttrTokenMap()
+XMLSignatureHelper::CreateAndWriteSignature(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&)
+XMLSignatureHelper::GetSecurityEnvironmentByIndex(int)
+XMLSignatureHelper::GetSecurityEnvironmentNumber()
+XMLSignatureHelper::GetUriBinding() const
+XMLSignatureHelper::SetUriBinding(com::sun::star::uno::Reference<com::sun::star::xml::crypto::XUriBinding>&)
+XMLSignatureHelper::SetX509Certificate(int, int, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&)
+XMLTextFrameContext::CreateIfNotThere()
+XMLTextImportHelper::CreateCharExtPropMapper(SvXMLImport&, XMLFontStylesContext*)
+XMLTextImportHelper::HasDrawNameAttribute(com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&, SvXMLNamespaceMap&)
+XMLTextListAutoStylePool::HasName(rtl::OUString const&) const
+XMLTextListAutoStylePoolNames_Impl::GetPos(rtl::OUString const*) const
+XMLTextListAutoStylePoolNames_Impl::Remove(rtl::OUString*)
+XMLTextListAutoStylePool_Impl::GetPos(XMLTextListAutoStylePoolEntry_Impl const*) const
+XMLTextListAutoStylePool_Impl::Remove(XMLTextListAutoStylePoolEntry_Impl*)
+XMLTextParagraphExport::CreateCharExtPropMapper(SvXMLExport&)
+XMLTextParagraphExport::FindTextStyle(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, unsigned char&) const
+XMLTextParagraphExport::collectFrames()
+XMLTextPropertyHandlerFactory_Impl::XMLTextPropertyHandlerFactory_Impl()
+XMLTextPropertyHandlerFactory_Impl::~XMLTextPropertyHandlerFactory_Impl()
+XMLUtil::GetIsoLangByIndex(unsigned short)
+XMLUtil::dump()
+XMLVersionImExportOOO_createInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+XMLVersionImExportOOO_getImplementationName()
+XMLVersionImExportOOO_getSupportedServiceNames()
+XMLVisAreaContext::XMLVisAreaContext(SvXMLImport&, unsigned short, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&, Rectangle&, MapUnit)
+XMLVisAreaExport::XMLVisAreaExport(SvXMLExport&, char const*, Rectangle const&, MapUnit)
+XMLVisAreaExport::XMLVisAreaExport(SvXMLExport&, char const*, com::sun::star::awt::Rectangle const&, short)
+XMLVisAreaExport::~XMLVisAreaExport()
+XOutBitmap::CreateQuickDrawBitmapEx(Graphic const&, OutputDevice const&, MapMode const&, Size const&, Point const&, Size const&)
+XOutBitmap::DrawQuickDrawBitmapEx(OutputDevice*, Point const&, Size const&, BitmapEx const&)
+XOutBitmap::DrawTiledBitmapEx(OutputDevice*, Point const&, Size const&, Rectangle const&, BitmapEx const&)
+XOutputDevice::DrawPolygon(Polygon const&)
+XOutputDevice::GetMapMode() const
+XOutputDevice::SetMapMode(MapMode const&)
+XPluginManager_Impl::getFirstXPlugin()
+XPolyPolygon::Replace(XPolygon const&, unsigned short)
+XPolyPolygon::Rotate(Point const&, unsigned short)
+XPolyPolygon::Rotate20()
+XPolyPolygon::Scale(double, double)
+XPolyPolygon::SlantX(long, double, double)
+XPolyPolygon::SlantY(long, double, double)
+XPolyPolygon::Translate(Point const&)
+XPolyPolygon::XPolyPolygon(PolyPolygon const&)
+XPolyPolygon::XPolyPolygon(XPolygon const&)
+XPolygon::GetSize() const
+XPolygon::Insert(unsigned short, Polygon const&)
+XPolygon::Rotate(Point const&, unsigned short)
+XPolygon::SetSize(unsigned short)
+XPropertyList::Clear()
+XPropertyList::XPropertyList(SvStream&)
+XPropertyTable::Clear()
+XPropertyTable::GetBitmap(long) const
+XPropertyTable::XPropertyTable(SvStream&)
+XSecController::getErrorMessage()
+XSecController::setSAXChainConnector(com::sun::star::uno::Reference<com::sun::star::xml::sax::XParser> const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> const&, com::sun::star::uno::Reference<com::sun::star::xml::crypto::sax::XElementStackKeeper> const&)
+XSecondaryFillColorItem::XSecondaryFillColorItem(long, Color const&)
+XclDConRef::XclDConRef(ScRange const&, String const&)
+XclExpAddressConverter::CheckRangeList(ScRangeList const&, bool)
+XclExpAddressConverter::CreateValidRange(ScRange const&, bool)
+XclExpDefaultXF::SetAlignment(XclExpCellAlign const&)
+XclExpDefaultXF::SetArea(XclExpCellArea const&)
+XclExpDefaultXF::SetBorder(XclExpCellBorder const&)
+XclExpDefaultXF::SetParent(unsigned int)
+XclExpDefaultXF::SetProtection(XclExpCellProt const&)
+XclExpDefaultXF::SetUsedFlags(bool, bool, bool, bool, bool, bool)
+XclExpDummyRecord::XclExpDummyRecord(unsigned short, void const*, unsigned long)
+XclExpErrorCell::XclExpErrorCell(XclExpRoot, XclAddress const&, ScPatternAttr const*, unsigned int, unsigned char)
+XclExpName::IsHidden() const
+XclExpPTField::GetItem(String const&) const
+XclExpPalette::GetColorData(unsigned short) const
+XclExpPivotCache::AddCalcFields(ScDPObject const&)
+XclExpRecordBase::SaveRepeated(XclExpStream&, unsigned long)
+XclExpStream::WriteByteStringBuffer(ByteString const&, unsigned short)
+XclExpStream::WriteUnicodeBuffer(unsigned short const*, unsigned long, unsigned char)
+XclExpString::Append(rtl::OUString const&)
+XclExpString::AssignByte(unsigned short, unsigned short, unsigned short, unsigned short)
+XclExpString::XclExpString(String const&, _STL::vector<XclFormatRun, _STL::allocator<XclFormatRun> > const&, unsigned short, unsigned short)
+XclExpString::XclExpString(rtl::OUString const&, _STL::vector<XclFormatRun, _STL::allocator<XclFormatRun> > const&, unsigned short, unsigned short)
+XclExpTabInfo::GetSortedScTab(short) const
+XclFontData::SetApiFontEncoding(short)
+XclImpAddressConverter::CheckRangeList(XclRangeList const&, bool)
+XclImpAddressConverter::CreateValidRange(XclRange const&, short, short, bool)
+XclImpColRowSettings::HideRow(int)
+XclImpOutlineBuffer::Reset(ScOutlineArray*)
+XclImpPCField::GetItemCount() const
+XclImpPTField::GetVisItemName(unsigned short) const
+XclImpSolverContainer::ReadSolverContainer(SvStream&)
+XclImpStream::CopyRecordToStream(SvStream&)
+XclImpStream::IgnoreByteString(bool)
+XclImpStream::IgnoreUniString()
+XclImpStream::ReadFloat()
+XclImpStream::ReadInt8()
+XclImpStream::RejectPosition()
+XclNumFmtBuffer::GetFormat(unsigned short) const
+XclObjId::XclObjId()
+XclPCField::IsCalculatedField() const
+XclPCNumGroupInfo::IsNumType() const
+XclTools::GetXclCodePage(unsigned short)
+XclTracer::AddAttribute(rtl::OUString const&, int)
+XclTracer::Trace(rtl::OUString const&, int)
+XclTracer::TraceChartAxisAutoCross()
+XclTracer::TraceChartAxisManualCross()
+XclTracer::TraceChartDSName()
+XclTracer::TraceChartErrorBars()
+XclTracer::TraceChartInvalidXY()
+XclTracer::TraceChartRange()
+XclTracer::TraceChartTextFormatting()
+XclTracer::TraceChartTrendLines()
+XclTracer::TraceInvisibleGrid(bool)
+XclTxoData::SetXclHorAlignment(unsigned char)
+XclTxoData::SetXclVerAlignment(unsigned char)
+Xlfd::Xlfd()
+XmlIndexBuilder::clearIndex()
+XmlSec::GetContentPart(String const&, String const&)
+XmlSec::GetDateTimeString(rtl::OUString const&, rtl::OUString const&)
+XvaCloseIM(_XIM*)
+XvaOpenIM
+ZCodec::UpdateCRC(unsigned long, unsigned long)
+ZipFile::getName()
+ZipFile::getSize()
+ZipOutputStream::close()
+ZipOutputStream::setComment(rtl::OUString const&)
+ZipPackageBuffer::ZipPackageBuffer(com::sun::star::uno::Sequence<signed char>&)
+_CpyTabFrms::Insert(_CpyTabFrm const&, unsigned short&)
+_CpyTabFrms::Insert(_CpyTabFrm const*, unsigned short)
+_CpyTabFrms::Insert(_CpyTabFrms const*, unsigned short, unsigned short)
+_CpyTabFrms::Remove(_CpyTabFrm const&, unsigned short)
+_CpyTabFrms_SAR::Replace(_CpyTabFrm const&, unsigned short)
+_CpyTabFrms_SAR::Replace(_CpyTabFrm const*, unsigned short, unsigned short)
+_CpyTabFrms_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(_CpyTabFrm const&, void*), void*)
+_MapTblFrmFmts::Remove(unsigned short, unsigned short)
+_MapTblFrmFmts::Replace(_MapTblFrmFmt const&, unsigned short)
+_MapTblFrmFmts::Replace(_MapTblFrmFmt const*, unsigned short, unsigned short)
+_MergePos::Insert(_CmpLPt const&, unsigned short&)
+_MergePos::Insert(_CmpLPt const*, unsigned short)
+_MergePos::Insert(_MergePos const*, unsigned short, unsigned short)
+_MergePos::Remove(_CmpLPt const&, unsigned short)
+_MergePos_SAR::Replace(_CmpLPt const&, unsigned short)
+_MergePos_SAR::Replace(_CmpLPt const*, unsigned short, unsigned short)
+_MergePos_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(_CmpLPt const&, void*), void*)
+_STL::_Vector_base<com::sun::star::uno::Reference<com::sun::star::report::XReportComponent>, _STL::allocator<com::sun::star::uno::Reference<com::sun::star::report::XReportComponent> > >::~_Vector_base()
+_STL::hashtable<rtl::OString, rtl::OString, rtl::OStringHash, _STL::_Identity<rtl::OString>, _STL::equal_to<rtl::OString>, _STL::allocator<rtl::OString> >::_M_delete_node(_STL::_Hashtable_node<rtl::OString>*)
+_STL::pair<boost::shared_ptr<rptui::OReportSection>, rtl::Reference<comphelper::OPropertyChangeMultiplexer> >::~pair()
+_STL::pair<boost::shared_ptr<slideshow::internal::UnoView>, boost::shared_ptr<cppcanvas::CustomSprite> >::~pair()
+_SaveFlyArr::Remove(unsigned short, unsigned short)
+_SaveFlyArr::Replace(_SaveFly const&, unsigned short)
+_SaveFlyArr::Replace(_SaveFly const*, unsigned short, unsigned short)
+_SaveFlyArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(_SaveFly const&, void*), void*)
+_SetGetExpFlds::Insert(_SetGetExpFld* const&, unsigned short&)
+_SetGetExpFlds::Insert(_SetGetExpFld* const*, unsigned short)
+_SetGetExpFlds::Insert(_SetGetExpFlds const*, unsigned short, unsigned short)
+_SetGetExpFlds::Remove(_SetGetExpFld* const&, unsigned short)
+_SfxMacroTabPage::GetFocus_Impl(_SfxMacroTabPage*, Edit*)
+_SfxMacroTabPage::GetGetMacrosOfRangeLink() const
+_SfxMacroTabPage::GetGetRangeLink() const
+_SfxMacroTabPage::SelectEvent(String const&, unsigned short)
+_SfxMacroTabPage::SetGetMacrosOfRangeLink(SvStringsDtor* (*)(_SfxMacroTabPage*, String const&, String const&))
+_SfxMacroTabPage::SetReadOnly(unsigned char)
+_SfxObjectList::Insert(_FileListEntry const*&, unsigned short&)
+_SfxObjectList::Insert(_FileListEntry const**, unsigned short)
+_SfxObjectList::Insert(_SfxObjectList const*, unsigned short, unsigned short)
+_SfxObjectList::Remove(_FileListEntry const*&, unsigned short)
+_SfxObjectList::Remove(unsigned short, unsigned short)
+_SfxPoolItems::DeleteAndDestroy(unsigned short, unsigned short)
+_Sort_CellFrms::Remove(unsigned short, unsigned short)
+_Sort_CellFrms::Replace(_Sort_CellFrm const&, unsigned short)
+_Sort_CellFrms::Replace(_Sort_CellFrm const*, unsigned short, unsigned short)
+_Sort_CellFrms::_ForEach(unsigned short, unsigned short, unsigned char (*)(_Sort_CellFrm const&, void*), void*)
+_SwFtnIdxs::Insert(SwTxtFtn* const&, unsigned short&)
+_SwFtnIdxs::Insert(SwTxtFtn* const*, unsigned short)
+_SwFtnIdxs::Remove(SwTxtFtn* const&, unsigned short)
+_SwPamRanges::Insert(SwPamRange const&, unsigned short&)
+_SwPamRanges::Insert(SwPamRange const*, unsigned short)
+_SwPamRanges::Insert(_SwPamRanges const*, unsigned short, unsigned short)
+_SwPamRanges::Remove(SwPamRange const&, unsigned short)
+_SwPamRanges_SAR::Replace(SwPamRange const&, unsigned short)
+_SwPamRanges_SAR::Replace(SwPamRange const*, unsigned short, unsigned short)
+_SwPamRanges_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(SwPamRange const&, void*), void*)
+_SwRedlineTbl::Insert(SwRedline* const*, unsigned short)
+_SwRedlineTbl::Insert(_SwRedlineTbl const*, unsigned short, unsigned short)
+_SwRedlineTbl::Remove(SwRedline* const&, unsigned short)
+_ZSortFlys::Insert(_ZSortFly const&, unsigned short&)
+_ZSortFlys::Insert(_ZSortFly const*, unsigned short)
+_ZSortFlys::Insert(_ZSortFlys const*, unsigned short, unsigned short)
+_ZSortFlys::Remove(_ZSortFly const&, unsigned short)
+_ZSortFlys_SAR::Replace(_ZSortFly const&, unsigned short)
+_ZSortFlys_SAR::Replace(_ZSortFly const*, unsigned short, unsigned short)
+_ZSortFlys_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(_ZSortFly const&, void*), void*)
+__builtin_delete
+__builtin_new
+__builtin_vec_delete
+__builtin_vec_new
+__lxstat64
+__pure_virtual
+accessibility::AccessibleEditableTextPara::GetParaInterface(int)
+accessibility::AccessibleEditableTextPara::GetText(int)
+accessibility::AccessibleEditableTextPara::HasState(short)
+accessibility::AccessibleEditableTextPara::IsActive() const
+accessibility::AccessibleEditableTextPara::IsVisible() const
+accessibility::AccessibleIconChoiceCtrlEntry::NotifyAccessibleEvent(short, com::sun::star::uno::Any const&, com::sun::star::uno::Any const&)
+accessibility::AccessibleImageBullet::GetIndexInParent() const
+accessibility::AccessibleListBoxEntry::NotifyAccessibleEvent(short, com::sun::star::uno::Any const&, com::sun::star::uno::Any const&)
+accessibility::AccessibleShapeTreeInfo::AccessibleShapeTreeInfo(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleComponent> const&, com::sun::star::uno::Reference<com::sun::star::document::XEventBroadcaster> const&)
+accessibility::AccessibleShapeTreeInfo::GetDocumentWindow() const
+accessibility::AccessibleStaticTextBase_Impl::UpdateChildren()
+accessibility::AccessibleTabListBoxTable::ensureValidPosition(int, int) const
+accessibility::AccessibleTextEventQueue::Append(SfxHint const&)
+accessibility::AccessibleTextEventQueue::Append(SfxSimpleHint const&)
+accessibility::AccessibleTextHelper::GetAdditionalChildStates() const
+accessibility::AccessibleViewForwarder::AccessibleViewForwarder(SdrPaintView*, unsigned short)
+accessibility::AccessibleViewForwarder::SetView(SdrPaintView*)
+accessibility::ChildrenManagerImpl::GetChild(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&)
+accessibility::ChildrenManagerImpl::GetChildIndex(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> const&) const
+accessibility::DGColorNameLookUp::~DGColorNameLookUp()
+accessibility::DescriptionGenerator::AddPropertyNames()
+accessibility::DescriptionGenerator::AddUnknown(rtl::OUString const&, rtl::OUString const&)
+accessibility::ShapeTypeHandler::GetServiceName(int) const
+addRButtons(_STL::vector<OCX_Control*, _STL::allocator<OCX_Control*> >&, _STL::vector<OCX_Control*, _STL::allocator<OCX_Control*> >&, bool)
+adjustOutlineLevel(SwDoc&)
+alaw2ulaw(unsigned char)
+apphelper::MediaDescriptorHelper::getAll()
+avmedia::MediaControl::execute(avmedia::MediaItem const&)
+avmedia::MediaControl::getState(avmedia::MediaItem&) const
+avmedia::MediaControl::update()
+avmedia::MediaWindow::disable()
+avmedia::MediaWindow::enable()
+avmedia::MediaWindow::getDuration() const
+avmedia::MediaWindow::getMediaTime() const
+avmedia::MediaWindow::getPointer() const
+avmedia::MediaWindow::getPosSize() const
+avmedia::MediaWindow::getRate() const
+avmedia::MediaWindow::getStopTime() const
+avmedia::MediaWindow::getZoom() const
+avmedia::MediaWindow::isMute() const
+avmedia::MediaWindow::isPlaybackLoop() const
+avmedia::MediaWindow::isPlaying() const
+avmedia::MediaWindow::setMediaTime(double)
+avmedia::MediaWindow::setMute(bool)
+avmedia::MediaWindow::setPlaybackLoop(bool)
+avmedia::MediaWindow::setRate(double)
+avmedia::MediaWindow::setStopTime(double)
+avmedia::MediaWindow::setZoom(com::sun::star::media::ZoomLevel)
+avmedia::MediaWindow::stop()
+avmedia::priv::MediaWindowImpl::hasInternalMediaControl() const
+avmedia::xine::Window::fireMouseMovedEvent(com::sun::star::awt::MouseEvent const&)
+avmedia::xine::Window::fireMousePressedEvent(com::sun::star::awt::MouseEvent const&)
+avmedia::xine::Window::fireMouseReleasedEvent(com::sun::star::awt::MouseEvent const&)
+avmedia::xine::Window::fireSetFocusEvent(com::sun::star::awt::FocusEvent const&)
+baseDecode(rtl::OUString const&, BaseType)
+basegfx::B1DRange::B1DRange(basegfx::B1IRange const&)
+basegfx::B2DCubicBezier::B2DCubicBezier(basegfx::B2DPoint const&, basegfx::B2DPoint const&)
+basegfx::B2DHomMatrix::isNormalized() const
+basegfx::B2DHomMatrix::makeUnique()
+basegfx::B2DHomMatrix::normalize()
+basegfx::B2DHomMatrix::trace() const
+basegfx::B2DHomMatrix::transpose()
+basegfx::B2DHomPoint::getB2DPoint() const
+basegfx::B2DHomPoint::setX(double)
+basegfx::B2DHomPoint::setY(double)
+basegfx::B2DMultiRange::B2DMultiRange(basegfx::B2DRange const&)
+basegfx::B2DMultiRange::getBounds() const
+basegfx::B2DMultiRange::isInside(basegfx::B2DRange const&) const
+basegfx::B2DMultiRange::isInside(basegfx::B2DTuple const&) const
+basegfx::B2DPolyPolygonRasterConverter::rasterConvert(basegfx::FillRule)
+basegfx::B2DQuadraticBezier::B2DQuadraticBezier()
+basegfx::B2DQuadraticBezier::B2DQuadraticBezier(basegfx::B2DPoint const&, basegfx::B2DPoint const&)
+basegfx::B2DQuadraticBezier::B2DQuadraticBezier(basegfx::B2DPoint const&, basegfx::B2DPoint const&, basegfx::B2DPoint const&)
+basegfx::B2DQuadraticBezier::isBezier() const
+basegfx::B2DQuadraticBezier::~B2DQuadraticBezier()
+basegfx::B2DTuple::correctValues(double)
+basegfx::B2DTuple::equalZero(double const&) const
+basegfx::B2DVector::isNormalized() const
+basegfx::B2I64Tuple::getEmptyTuple()
+basegfx::B2IVector::angle(basegfx::B2IVector const&) const
+basegfx::B2IVector::cross(basegfx::B2IVector const&) const
+basegfx::B2IVector::getEmptyVector()
+basegfx::B2IVector::getLength() const
+basegfx::B3DHomMatrix::isInvertible() const
+basegfx::B3DHomMatrix::isNormalized() const
+basegfx::B3DHomMatrix::makeUnique()
+basegfx::B3DHomMatrix::normalize()
+basegfx::B3DHomMatrix::orientation(basegfx::B3DPoint, basegfx::B3DVector, basegfx::B3DVector)
+basegfx::B3DHomMatrix::shearXZ(double, double)
+basegfx::B3DHomMatrix::shearYZ(double, double)
+basegfx::B3DHomMatrix::trace() const
+basegfx::B3DHomPoint::implHomogenize()
+basegfx::B3DPolygon::B3DPolygon(basegfx::B3DPolygon const&, unsigned int, unsigned int)
+basegfx::B3DPolygon::append(basegfx::B3DPolygon const&, unsigned int, unsigned int)
+basegfx::B3DPolygon::insert(unsigned int, basegfx::B3DPoint const&, unsigned int)
+basegfx::B3DPolygon::insert(unsigned int, basegfx::B3DPolygon const&, unsigned int, unsigned int)
+basegfx::B3DRange::B3DRange(basegfx::B3IRange const&)
+basegfx::B3DTuple::B3DTuple(basegfx::B3ITuple const&)
+basegfx::B3DVector::getProjectionOnPlane(basegfx::B3DVector const&) const
+basegfx::B3I64Tuple::getEmptyTuple()
+basegfx::B3ITuple::getEmptyTuple()
+basegfx::absolute(basegfx::B2DHomPoint const&)
+basegfx::absolute(basegfx::B2ITuple const&)
+basegfx::average(basegfx::B2DHomPoint&, basegfx::B2DHomPoint&)
+basegfx::average(basegfx::B2DHomPoint&, basegfx::B2DHomPoint&, basegfx::B2DHomPoint&)
+basegfx::average(basegfx::B2ITuple const&, basegfx::B2ITuple const&)
+basegfx::average(basegfx::B2ITuple const&, basegfx::B2ITuple const&, basegfx::B2ITuple const&)
+basegfx::computeSetDifference(_STL::vector<basegfx::B2IBox, _STL::allocator<basegfx::B2IBox> >&, basegfx::B2IBox const&, basegfx::B2IBox const&)
+basegfx::fround(basegfx::B1DRange const&)
+basegfx::fround(basegfx::B2DRange const&)
+basegfx::fround(basegfx::B3DRange const&)
+basegfx::fround(basegfx::B3DTuple const&)
+basegfx::getContinuity(basegfx::B2IVector const&, basegfx::B2IVector const&)
+basegfx::getOrientation(basegfx::B2IVector const&, basegfx::B2IVector const&)
+basegfx::getPerpendicular(basegfx::B2IVector const&)
+basegfx::interpolate(basegfx::B2DHomPoint&, basegfx::B2DHomPoint&, double)
+basegfx::interpolate(basegfx::B2ITuple const&, basegfx::B2ITuple const&, double)
+basegfx::maximum(basegfx::B2DHomPoint const&, basegfx::B2DHomPoint const&)
+basegfx::maximum(basegfx::B2ITuple const&, basegfx::B2ITuple const&)
+basegfx::minimum(basegfx::B2DHomPoint const&, basegfx::B2DHomPoint const&)
+basegfx::minimum(basegfx::B2ITuple const&, basegfx::B2ITuple const&)
+basegfx::tools::adaptiveSubdivideByDistance(basegfx::B2DPolyPolygon const&, double)
+basegfx::tools::addPointsAtCutsAndTouches(basegfx::B2DPolyPolygon const&, basegfx::B2DPolyPolygon const&)
+basegfx::tools::applyLineDashing(basegfx::B2DPolyPolygon const&, _STL::vector<double, _STL::allocator<double> > const&, double)
+basegfx::tools::clipPolyPolygonOnEdge(basegfx::B2DPolyPolygon const&, basegfx::B2DPoint const&, basegfx::B2DPoint const&, bool, bool)
+basegfx::tools::clipPolyPolygonOnRange(basegfx::B2DPolyPolygon const&, basegfx::B2DRange const&, bool, bool)
+basegfx::tools::clipPolygonOnEdge(basegfx::B2DPolygon const&, basegfx::B2DPoint const&, basegfx::B2DPoint const&, bool, bool)
+basegfx::tools::clipPolygonOnPolyPolygon(basegfx::B2DPolygon const&, basegfx::B2DPolyPolygon const&, bool, bool)
+basegfx::tools::createPolygonFromRect(basegfx::B2DRange const&, double)
+basegfx::tools::findCut(basegfx::B2DPolygon const&, unsigned int, basegfx::B2DPolygon const&, unsigned int, unsigned short, double*, double*)
+basegfx::tools::findCut(basegfx::B2DPolygon const&, unsigned int, unsigned int, unsigned short, double*, double*)
+basegfx::tools::getArea(basegfx::B2DPolygon const&)
+basegfx::tools::getIndexOfPredecessor(unsigned int, basegfx::B3DPolygon const&)
+basegfx::tools::getPositionRelative(basegfx::B3DPolygon const&, double, double)
+basegfx::tools::getSnippetRelative(basegfx::B2DPolygon const&, double, double, double)
+basegfx::tools::isPolyPolygonEqualRectangle(basegfx::B2DPolyPolygon const&, basegfx::B2DRange const&)
+basegfx::tools::isRectangle(basegfx::B2DPolyPolygon const&)
+basegfx::tools::liangBarskyClip2D(basegfx::B2DPoint&, basegfx::B2DPoint&, basegfx::B2DRange const&)
+basegfx::tools::removeIntersections(basegfx::B2DPolyPolygon const&)
+basegfx::tools::removeIntersections(basegfx::B2DPolygon const&, bool)
+basegfx::tools::rotateAroundPoint(basegfx::B2DPolyPolygon const&, basegfx::B2DPoint const&, double)
+basegfx::tools::setContinuity(basegfx::B2DPolyPolygon const&, basegfx::B2VectorContinuity)
+basegfx::unotools::awtPointFromB2IPoint(basegfx::B2IPoint const&)
+basegfx::unotools::awtRectangleFromB2IRectangle(basegfx::B2IRange const&)
+basegfx::unotools::awtSizeFromB2ISize(basegfx::B2IVector const&)
+basegfx::unotools::b2DSizeFromRealSize2D(com::sun::star::geometry::RealSize2D const&)
+basegfx::unotools::b2IPointFromAwtPoint(com::sun::star::awt::Point const&)
+basegfx::unotools::b2IPointFromIntegerPoint2D(com::sun::star::geometry::IntegerPoint2D const&)
+basegfx::unotools::b2ISizeFromAwtSize(com::sun::star::awt::Size const&)
+basegfx::unotools::integerPoint2DFromB2IPoint(basegfx::B2IPoint const&)
+basegfx::unotools::integerRectangle2DFromB2IRectangle(basegfx::B2IRange const&)
+basicide_handle_basic_error
+basicide_macro_organizer
+berkeleydbproxy::Db::set_alloc(void* (*)(unsigned long), void* (*)(void*, unsigned long), void (*)(void*))
+berkeleydbproxy::DbEnv::DbEnv(unsigned int)
+berkeleydbproxy::DbEnv::close(unsigned int)
+berkeleydbproxy::DbEnv::open(char const*, unsigned int, int)
+berkeleydbproxy::DbEnv::set_alloc(void* (*)(unsigned long), void* (*)(void*, unsigned long), void (*)(void*))
+berkeleydbproxy::DbEnv::~DbEnv()
+berkeleydbproxy::Dbc::del(unsigned int)
+bib::BibGridwin::changeGridModel(com::sun::star::uno::Reference<com::sun::star::awt::XControlModel> const&)
+bib::OComponentAdapterBase::disposing()
+bib::OComponentAdapterBase::lock()
+bib::OComponentAdapterBase::unlock()
+binfilter::B3dEdgeEntryBucket::B3dEdgeEntryBucket()
+binfilter::B3dEdgeEntryBucket::ImplRemove()
+binfilter::B3dEdgeEntryBucketMemArr::Replace(char const*&, unsigned short)
+binfilter::B3dEdgeEntryBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+binfilter::B3dEdgeEntryBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+binfilter::B3dEdgeListBucket::B3dEdgeListBucket()
+binfilter::B3dEdgeListBucket::ImplRemove()
+binfilter::B3dEdgeListBucketMemArr::Replace(char const*&, unsigned short)
+binfilter::B3dEdgeListBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+binfilter::B3dEdgeListBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+binfilter::B3dEntity::Transform(binfilter::Matrix4D const&)
+binfilter::B3dEntityBucket::B3dEntityBucket()
+binfilter::B3dEntityBucketMemArr::Replace(char const*&, unsigned short)
+binfilter::B3dEntityBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+binfilter::B3dEntityBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+binfilter::B3dMaterialBucket::B3dMaterialBucket()
+binfilter::B3dMaterialBucket::B3dMaterialBucket(unsigned short)
+binfilter::B3dMaterialBucket::ImplAppend()
+binfilter::B3dMaterialBucket::ImplRemove()
+binfilter::B3dMaterialBucket::~B3dMaterialBucket()
+binfilter::B3dMaterialBucketMemArr::Replace(char const*&, unsigned short)
+binfilter::B3dMaterialBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+binfilter::B3dMaterialBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+binfilter::BasicError::BasicError()
+binfilter::BasicLibInfo::BasicLibInfo(String const&)
+binfilter::BasicManager::GetFirstError()
+binfilter::BasicManager::GetLibraryContainerInfo() const
+binfilter::BasicManager::GetNextError()
+binfilter::BasicManager::InsertGlobalUNOConstant(char const*, com::sun::star::uno::Any const&)
+binfilter::BasicManager::IsModified() const
+binfilter::BasicManager::LoadLib(unsigned short)
+binfilter::ChXChartAxis::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ChXDataPoint::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ChXDataRow::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::CharPosArray::Replace(int const&, unsigned short)
+binfilter::CharPosArray::Replace(int const*, unsigned short, unsigned short)
+binfilter::CharPosArray::_ForEach(unsigned short, unsigned short, unsigned char (*)(int const&, void*), void*)
+binfilter::ChartArea::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ChartGrid::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ChartLegend::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ChartLine::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ChartModel::GetDataRowObj(long)
+binfilter::ChartModel::GetMemChart() const
+binfilter::ChartTitle::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::ClearUnoObjectsInRTL_Impl(binfilter::StarBASIC*)
+binfilter::CloneList::CloneList()
+binfilter::CloneList::GetClone(unsigned int) const
+binfilter::CloneList::GetOriginal(unsigned int) const
+binfilter::CloneList::~CloneList()
+binfilter::CreateSdXTextViewCursor(binfilter::SdView*)
+binfilter::Dictionary::~Dictionary()
+binfilter::E3dCubeObj::E3dCubeObj(binfilter::E3dDefaultAttributes&, binfilter::Vector3D, binfilter::Vector3D const&)
+binfilter::E3dLatheObj::E3dLatheObj(binfilter::E3dDefaultAttributes&, binfilter::PolyPolygon3D)
+binfilter::E3dLatheObj::E3dLatheObj(binfilter::E3dDefaultAttributes&, binfilter::XPolyPolygon const&)
+binfilter::E3dLatheObj::E3dLatheObj(binfilter::E3dDefaultAttributes&, binfilter::XPolygon const&)
+binfilter::E3dPolyScene::E3dPolyScene(binfilter::E3dDefaultAttributes&)
+binfilter::E3dPolygonObj::E3dPolygonObj(binfilter::E3dDefaultAttributes&, binfilter::PolyPolygon3D const&, binfilter::PolyPolygon3D const&, binfilter::PolyPolygon3D const&, unsigned char)
+binfilter::E3dView::E3dView(binfilter::SdrModel*)
+binfilter::E3dView::E3dView(binfilter::SdrModel*, binfilter::ExtOutputDevice*)
+binfilter::E3dView::IsConvertTo3DObjPossible() const
+binfilter::E3dView::ResetCreationActive()
+binfilter::E3dView::ShowMirrored()
+binfilter::EECharAttribArray::Insert(binfilter::EECharAttrib const&, unsigned short)
+binfilter::EECharAttribArray::Remove(unsigned short, unsigned short)
+binfilter::EECharAttribArray::Replace(binfilter::EECharAttrib const&, unsigned short)
+binfilter::EECharAttribArray::Replace(binfilter::EECharAttrib const*, unsigned short, unsigned short)
+binfilter::EECharAttribArray::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::EECharAttrib const&, void*), void*)
+binfilter::EditEngine::GetTextLen() const
+binfilter::EditEngine::SetGetAutoCorrectHdl(Link const&)
+binfilter::EditEngine::SetModifyHdl(Link const&)
+binfilter::EditUndoSplitPara::EditUndoSplitPara(binfilter::ImpEditEngine*, unsigned short, unsigned short)
+binfilter::EditView::SetVisArea(Rectangle const&)
+binfilter::ExtraPortionInfo::ExtraPortionInfo()
+binfilter::FmFormObj::SetObjEnv(com::sun::star::uno::Reference<com::sun::star::container::XIndexContainer> const&, int, com::sun::star::uno::Sequence<com::sun::star::script::ScriptEventDescriptor> const&)
+binfilter::FrameView::Connect()
+binfilter::FrameView::Disconnect()
+binfilter::GeometryIndexValueBucket::GeometryIndexValueBucket()
+binfilter::GeometryIndexValueBucket::ImplAppend()
+binfilter::GeometryIndexValueBucket::ImplRemove()
+binfilter::GeometryIndexValueBucketMemArr::Replace(char const*&, unsigned short)
+binfilter::GeometryIndexValueBucketMemArr::Replace(char const**, unsigned short, unsigned short)
+binfilter::GeometryIndexValueBucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+binfilter::GetSbUnoObject(String const&, com::sun::star::uno::Any const&)
+binfilter::GetSpellChecker()
+binfilter::GetStorage(String const&, unsigned short)
+binfilter::ImpDefaultMapper::ImpDefaultMapper(com::sun::star::uno::Reference<com::sun::star::beans::XPropertyState>&)
+binfilter::ImplIMEInfos::ImplIMEInfos(binfilter::EditPaM const&, String const&)
+binfilter::ImplRenderPaintProc::LinkStub_ImplRenderPaintProc(void*, void*)
+binfilter::InsCapOptArr::Insert(binfilter::InsCapOptArr const*, unsigned short, unsigned short)
+binfilter::InsCapOptArr::Insert(binfilter::InsCaptionOpt* const&, unsigned short&)
+binfilter::InsCapOptArr::Insert(binfilter::InsCaptionOpt* const*, unsigned short)
+binfilter::InsCapOptArr::Remove(binfilter::InsCaptionOpt* const&, unsigned short)
+binfilter::InsCapOptArr::Remove(unsigned short, unsigned short)
+binfilter::LinguMgr::GetThesaurus()
+binfilter::MultiPropertySetHelper::MultiPropertySetHelper(rtl::OUString const*)
+binfilter::NeverRunsEver()
+binfilter::NotifyBrokenPackage::NotifyBrokenPackage(rtl::OUString)
+binfilter::OUStringsSort_Impl::Insert(binfilter::OUStringsSort_Impl const*, unsigned short, unsigned short)
+binfilter::OUStringsSort_Impl::Insert(rtl::OUString* const&, unsigned short&)
+binfilter::OUStringsSort_Impl::Insert(rtl::OUString* const*, unsigned short)
+binfilter::OUStringsSort_Impl::Remove(rtl::OUString* const&, unsigned short)
+binfilter::OUStringsSort_Impl::Remove(unsigned short, unsigned short)
+binfilter::OffSetAccumulator<unsigned int, unsigned short>::offset()
+binfilter::OffSetAccumulator<unsigned short, unsigned int>::offset()
+binfilter::OfficeApplication::GetOffResManager()
+binfilter::Outliner::LinkStubEditEngineNotifyHdl(void*, void*)
+binfilter::PropEntry::PropEntry(unsigned int, unsigned char const*, unsigned int, unsigned short)
+binfilter::RTL_Impl_CreateUnoService(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_CreateUnoStruct(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_CreateUnoValue(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_EqualUnoObjects(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_GetDefaultContext(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_GetProcessServiceManager(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_HasInterfaces(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RTL_Impl_IsUnoStruct(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::RequestPackageReparation::RequestPackageReparation(rtl::OUString)
+binfilter::SaveBookmarks::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SaveFile(String const&, String const&, unsigned short, String const&)
+binfilter::SbClassData::SbClassData()
+binfilter::SbClassFactory::AddClassModule(binfilter::SbModule*)
+binfilter::SbClassFactory::FindClass(String const&)
+binfilter::SbClassFactory::RemoveClassModule(binfilter::SbModule*)
+binfilter::SbMethod::GetLineRange(unsigned short&, unsigned short&)
+binfilter::SbMethod::GetLocals()
+binfilter::SbMethod::GetStatics()
+binfilter::SbModule::ExceedsLegacyModuleSize()
+binfilter::SbModule::GetIfaceMapperMethod(String const&, binfilter::SbMethod*)
+binfilter::SbModule::GetProcedureProperty(String const&, binfilter::SbxDataType)
+binfilter::SbModule::GetProperty(String const&, binfilter::SbxDataType)
+binfilter::SbModule::GlobalRunDeInit()
+binfilter::SbModule::GlobalRunInit(unsigned char)
+binfilter::SbModule::LoadBinaryData(SvStream&)
+binfilter::SbModule::RunInit()
+binfilter::SbModule::SetComment(String const&)
+binfilter::SbModule::StoreBinaryData(SvStream&)
+binfilter::SbRtl_CreateUnoListener(binfilter::StarBASIC*, binfilter::SbxArray&, unsigned char)
+binfilter::SbTextPortions::Remove(unsigned short, unsigned short)
+binfilter::SbTextPortions::Replace(binfilter::SbTextPortion const&, unsigned short)
+binfilter::SbTextPortions::Replace(binfilter::SbTextPortion const*, unsigned short, unsigned short)
+binfilter::SbTextPortions::SbTextPortions(unsigned short, unsigned char)
+binfilter::SbTextPortions::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::SbTextPortion const&, void*), void*)
+binfilter::SbUnoObject::getDefaultPropName(binfilter::SbUnoObject*, String&)
+binfilter::SbiBreakpoints::Insert(unsigned short const&, unsigned short)
+binfilter::SbiBreakpoints::Replace(unsigned short const&, unsigned short)
+binfilter::SbiBreakpoints::Replace(unsigned short const*, unsigned short, unsigned short)
+binfilter::SbiBreakpoints::SbiBreakpoints(unsigned short, unsigned char)
+binfilter::SbiBreakpoints::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned short const&, void*), void*)
+binfilter::SbiBuffer::Add(void const*, unsigned short)
+binfilter::SbiBuffer::Align(int)
+binfilter::SbiBuffer::Chain(unsigned int)
+binfilter::SbiBuffer::Patch(unsigned int, unsigned int)
+binfilter::SbiGlobals::~SbiGlobals()
+binfilter::SbiImage::AddCode(char*, unsigned int)
+binfilter::SbiImage::AddEnum(binfilter::SbxObject*)
+binfilter::SbiImage::AddString(String const&)
+binfilter::SbiImage::AddType(binfilter::SbxObject*)
+binfilter::SbiImage::GetString(short) const
+binfilter::SbiImage::Load(SvStream&)
+binfilter::SbiTokenizer::Error(unsigned long, String)
+binfilter::SbiTokenizer::Error(unsigned long, binfilter::SbiToken)
+binfilter::SbiTokenizer::Hilite(binfilter::SbTextPortions&)
+binfilter::SbiTokenizer::MayBeLabel(unsigned char)
+binfilter::SbiTokenizer::Push(binfilter::SbiToken)
+binfilter::SbxAlias::SbxAlias(String const&, binfilter::SbxVariable*)
+binfilter::SbxAppData::~SbxAppData()
+binfilter::SbxArray::GetAlias(unsigned short)
+binfilter::SbxArray::PutAlias(String const&, unsigned short)
+binfilter::SbxBase::StaticEnableBroadcasting(unsigned char)
+binfilter::SbxDecimal::SbxDecimal()
+binfilter::SbxDecimal::getByte(unsigned char&)
+binfilter::SbxDecimal::getChar(unsigned short&)
+binfilter::SbxDecimal::getInt(int&)
+binfilter::SbxDecimal::getLong(int&)
+binfilter::SbxDecimal::getShort(short&)
+binfilter::SbxDecimal::getString(String&)
+binfilter::SbxDecimal::getUInt(unsigned int&)
+binfilter::SbxDecimal::getULong(unsigned int&)
+binfilter::SbxDecimal::getUShort(unsigned short&)
+binfilter::SbxDecimal::setShort(short)
+binfilter::SbxDecimal::setString(String*)
+binfilter::SbxDecimal::setUShort(unsigned short)
+binfilter::SbxDimArray::GetRef(binfilter::SbxArray*)
+binfilter::SbxDimArray::GetRef(short const*)
+binfilter::SbxDimArray::GetRef32(int const*)
+binfilter::SbxDimArray::Offset(binfilter::SbxArray*)
+binfilter::SbxDimArray::Put(binfilter::SbxVariable*, binfilter::SbxArray*)
+binfilter::SbxDimArray::Put(binfilter::SbxVariable*, short const*)
+binfilter::SbxInfo::AddParam(binfilter::SbxParamInfo const&)
+binfilter::SbxInfo::GetParam(unsigned short) const
+binfilter::SbxInfo::SbxInfo(String const&, unsigned int)
+binfilter::SbxMethod::Run(binfilter::SbxValues*)
+binfilter::SbxObject::GarbageCollection(unsigned long)
+binfilter::SbxObject::SetDfltProperty(String const&)
+binfilter::SbxObject::SetDfltProperty(binfilter::SbxProperty*)
+binfilter::SbxObject::SetPos(binfilter::SbxVariable*, unsigned short)
+binfilter::SbxObject::VCPtrInsert(binfilter::SbxVariable*)
+binfilter::SbxObject::VCPtrRemove(binfilter::SbxVariable*)
+binfilter::SbxValue::Format(String&, String const*) const
+binfilter::SbxValue::GetData() const
+binfilter::SbxValue::GetErr() const
+binfilter::SbxValue::GetInt() const
+binfilter::SbxValue::GetLong64() const
+binfilter::SbxValue::GetNoBroadcast(binfilter::SbxValues&)
+binfilter::SbxValue::GetULong64() const
+binfilter::SbxValue::HasObject() const
+binfilter::SbxValue::PutData(void*)
+binfilter::SbxValue::PutDecimal(binfilter::SbxDecimal*)
+binfilter::SbxValue::PutDecimal(com::sun::star::bridge::oleautomation::Decimal&)
+binfilter::SbxValue::PutErr(unsigned short)
+binfilter::SbxValue::PutInt(int)
+binfilter::SbxValue::PutLong64(binfilter::SbxINT64 const&)
+binfilter::SbxValue::PutNull()
+binfilter::SbxValue::PutString(unsigned short const*)
+binfilter::SbxValue::PutStringExt(String const&)
+binfilter::SbxValue::PutULong64(binfilter::SbxUINT64 const&)
+binfilter::SbxValue::PutpChar(unsigned short const*)
+binfilter::SbxValue::fillAutomationDecimal(com::sun::star::bridge::oleautomation::Decimal&)
+binfilter::SbxVariable::SetInfo(binfilter::SbxInfo*)
+binfilter::ScAddInAsyncs::Insert(binfilter::ScAddInAsync* const&, unsigned short&)
+binfilter::ScAddInAsyncs::Insert(binfilter::ScAddInAsync* const*, unsigned short)
+binfilter::ScAddInAsyncs::Insert(binfilter::ScAddInAsyncs const*, unsigned short, unsigned short)
+binfilter::ScAddInAsyncs::Remove(binfilter::ScAddInAsync* const&, unsigned short)
+binfilter::ScAddInDocs::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::ScAddInDocs::Insert(binfilter::ScAddInDocs const*, unsigned short, unsigned short)
+binfilter::ScAddInDocs::Insert(binfilter::ScDocument* const&, unsigned short&)
+binfilter::ScAddInDocs::Insert(binfilter::ScDocument* const*, unsigned short)
+binfilter::ScAddInDocs::Remove(binfilter::ScDocument* const&, unsigned short)
+binfilter::ScBroadcastAreas::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::ScBroadcastAreas::Insert(binfilter::ScBroadcastArea* const&, unsigned short&)
+binfilter::ScBroadcastAreas::Insert(binfilter::ScBroadcastArea* const*, unsigned short)
+binfilter::ScBroadcastAreas::Insert(binfilter::ScBroadcastAreas const*, unsigned short, unsigned short)
+binfilter::ScBroadcastAreas::Remove(binfilter::ScBroadcastArea* const&, unsigned short)
+binfilter::ScCellFieldObj::ScCellFieldObj()
+binfilter::ScCellRangesBase::ScCellRangesBase()
+binfilter::ScCellRangesBase::SetCursorOnly(unsigned char)
+binfilter::ScChangeAction::IsClickable() const
+binfilter::ScChangeTrack::Remove(binfilter::ScChangeAction*)
+binfilter::ScChartArray::ScChartArray(binfilter::ScDocument*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, String const&)
+binfilter::ScCondFormatEntry::ScCondFormatEntry(binfilter::ScConditionMode, binfilter::ScTokenArray const*, binfilter::ScTokenArray const*, binfilter::ScDocument*, binfilter::ScAddress const&, String const&)
+binfilter::ScConditionalFormatList::ScConditionalFormatList(binfilter::ScDocument*, binfilter::ScConditionalFormatList const&)
+binfilter::ScConditionalFormats_Impl::Insert(binfilter::ScConditionalFormat* const&, unsigned short&)
+binfilter::ScConditionalFormats_Impl::Insert(binfilter::ScConditionalFormat* const*, unsigned short)
+binfilter::ScConditionalFormats_Impl::Insert(binfilter::ScConditionalFormats_Impl const*, unsigned short, unsigned short)
+binfilter::ScConditionalFormats_Impl::Remove(binfilter::ScConditionalFormat* const&, unsigned short)
+binfilter::ScConditionalFormats_Impl::Remove(unsigned short, unsigned short)
+binfilter::ScDBDocFunc::DoImportUno(binfilter::ScAddress const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
+binfilter::ScDPOutput::ScDPOutput(binfilter::ScDocument*, com::sun::star::uno::Reference<com::sun::star::sheet::XDimensionsSupplier> const&, binfilter::ScAddress const&, unsigned char)
+binfilter::ScDdeLink::ScDdeLink(binfilter::ScDocument*, binfilter::ScDdeLink const&)
+binfilter::ScDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::ScDocShell::IsEmpty() const
+binfilter::ScDocShell::IsOle()
+binfilter::ScDocShell::ReloadTabLinks()
+binfilter::ScDocShell::ResetEmpty()
+binfilter::ScDocument::AddUndoTab(unsigned short, unsigned short, unsigned char, unsigned char)
+binfilter::ScDocument::BeginDrawUndo()
+binfilter::ScDocument::FillInfo(binfilter::RowInfo*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, double, double, unsigned char, unsigned char, binfilter::ScMarkData const*)
+binfilter::ScDocument::GetFormula(unsigned short, unsigned short, unsigned short, String&, unsigned char) const
+binfilter::ScDocument::GetSelectionPattern(binfilter::ScMarkData const&, unsigned char)
+binfilter::ScDocument::GetStyle(unsigned short, unsigned short, unsigned short) const
+binfilter::ScDocument::HasAreaLinks() const
+binfilter::ScDocument::HasAutoFilter(unsigned short, unsigned short, unsigned short)
+binfilter::ScDocument::HasBackgroundDraw(unsigned short, Rectangle const&)
+binfilter::ScDocument::HasControl(unsigned short, Rectangle const&)
+binfilter::ScDocument::HasDdeLinks() const
+binfilter::ScDocument::SetVisibleSpellRange(binfilter::ScRange const&)
+binfilter::ScDocument::UpdateAreaLinks()
+binfilter::ScDocument::UpdateDdeLinks()
+binfilter::ScDocumentLoader::ReleaseDocRef()
+binfilter::ScDrawLayer::GetCalcUndo()
+binfilter::ScDrawTransferObj::GetOwnClipboard(Window*)
+binfilter::ScEditCell::ScEditCell(binfilter::ScDocument*)
+binfilter::ScEditViewHint::ScEditViewHint()
+binfilter::ScEditViewHint::ScEditViewHint(binfilter::ScEditEngineDefaulter*, binfilter::ScAddress const&)
+binfilter::ScEmptyEnumerationAccess::ScEmptyEnumerationAccess()
+binfilter::ScFuncDesc::ScFuncDesc()
+binfilter::ScFunctionMgr::ScFunctionMgr()
+binfilter::ScHeaderFieldObj::ScHeaderFieldObj()
+binfilter::ScHeaderFooterContentObj::ScHeaderFooterContentObj()
+binfilter::ScImportOptions::ScImportOptions(String const&)
+binfilter::ScIndexHint::ScIndexHint(unsigned short, unsigned short)
+binfilter::ScIndexMap::Find(unsigned short) const
+binfilter::ScInterpreter::ScDefPar()
+binfilter::ScJobSetup::ScJobSetup(binfilter::SfxPrinter*)
+binfilter::ScMarkData::ExtendRangeListTables(binfilter::ScRangeList*) const
+binfilter::ScMarkData::GetFirstSelected() const
+binfilter::ScModelObj::FillRenderMarkData(com::sun::star::uno::Any const&, binfilter::ScMarkData&, binfilter::ScPrintSelectionStatus&) const
+binfilter::ScModule::GetAccessOptions()
+binfilter::ScModule::IsFormulaMode()
+binfilter::ScModule::ViewShellGone(binfilter::ScTabViewShell*)
+binfilter::ScMyCellInfo::ScMyCellInfo()
+binfilter::ScMyContentAction::~ScMyContentAction()
+binfilter::ScMyDelAction::~ScMyDelAction()
+binfilter::ScMyInsAction::~ScMyInsAction()
+binfilter::ScMyMoveAction::~ScMyMoveAction()
+binfilter::ScMyRejAction::~ScMyRejAction()
+binfilter::ScNavipiCfg::ScNavipiCfg()
+binfilter::ScNumFormatAbbrev::ScNumFormatAbbrev(SvStream&)
+binfilter::ScPaintHint::ScPaintHint()
+binfilter::ScPostIt::ScPostIt(String const&)
+binfilter::ScPrintFunc::DoPrint(MultiSelection const&, long, long, unsigned char, binfilter::SfxProgress*, binfilter::ScPreviewLocationData*)
+binfilter::ScPrintFunc::ScPrintFunc(OutputDevice*, binfilter::ScDocShell*, unsigned short, long, long, binfilter::ScRange const*, binfilter::ScPrintOptions const*)
+binfilter::ScPrintFunc::SetDrawView(binfilter::FmFormView*)
+binfilter::ScPrintFunc::SetRenderFlag(unsigned char)
+binfilter::ScPrintSettingsObj::ScPrintSettingsObj()
+binfilter::ScQueryItem::ScQueryItem(unsigned short, binfilter::ScQueryParam const*)
+binfilter::ScRangeFindList::ScRangeFindList(String const&)
+binfilter::ScRangeFindList::~ScRangeFindList()
+binfilter::ScSolveParam::ScSolveParam(binfilter::ScAddress const&, binfilter::ScAddress const&, String const&)
+binfilter::ScSortItem::ScSortItem(unsigned short, binfilter::ScViewData*, binfilter::ScSortParam const*)
+binfilter::ScSpreadsheetSettingsObj::ScSpreadsheetSettingsObj(binfilter::ScDocShell*)
+binfilter::ScStyleObj::ScStyleObj()
+binfilter::ScSubTotalItem::ScSubTotalItem(unsigned short, binfilter::ScSubTotalParam const*)
+binfilter::ScTabDeletedHint::ScTabDeletedHint(unsigned short)
+binfilter::ScTabOpParam::ScTabOpParam(binfilter::ScRefTripel const&, binfilter::ScRefTripel const&, binfilter::ScRefTripel const&, binfilter::ScRefTripel const&, unsigned char)
+binfilter::ScTableConditionalEntry::ScTableConditionalEntry()
+binfilter::ScTableConditionalFormat::ScTableConditionalFormat()
+binfilter::ScTableValidationObj::ScTableValidationObj()
+binfilter::ScTokenIterator::First()
+binfilter::ScTransferObj::GetOwnClipboard(Window*)
+binfilter::ScUnoAddInHelpIdGenerator::ScUnoAddInHelpIdGenerator()
+binfilter::ScValidationData::ScValidationData(binfilter::ScValidationMode, binfilter::ScConditionMode, binfilter::ScTokenArray const*, binfilter::ScTokenArray const*, binfilter::ScDocument*, binfilter::ScAddress const&)
+binfilter::ScValidationDataList::ScValidationDataList(binfilter::ScDocument*, binfilter::ScValidationDataList const&)
+binfilter::ScValidationEntries_Impl::Insert(binfilter::ScValidationData* const&, unsigned short&)
+binfilter::ScValidationEntries_Impl::Insert(binfilter::ScValidationData* const*, unsigned short)
+binfilter::ScValidationEntries_Impl::Insert(binfilter::ScValidationEntries_Impl const*, unsigned short, unsigned short)
+binfilter::ScValidationEntries_Impl::Remove(binfilter::ScValidationData* const&, unsigned short)
+binfilter::ScValidationEntries_Impl::Remove(unsigned short, unsigned short)
+binfilter::ScValueIterator::ScValueIterator(binfilter::ScDocument*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned char, unsigned char)
+binfilter::ScViewData::GetLogicMode()
+binfilter::ScViewData::GetLogicMode(binfilter::ScSplitPos)
+binfilter::ScViewData::GetSfxDocShell() const
+binfilter::ScViewData::GetSimpleArea(binfilter::ScRange&)
+binfilter::ScViewData::GetSimpleArea(unsigned short&, unsigned short&, unsigned short&, unsigned short&, unsigned short&, unsigned short&)
+binfilter::ScViewData::InsertTab(unsigned short)
+binfilter::ScViewData::IsMultiMarked()
+binfilter::ScViewData::ResetEditView()
+binfilter::ScViewData::SetOptions(binfilter::ScViewOptions const&)
+binfilter::ScViewData::SetZoom(Fraction const&, Fraction const&)
+binfilter::SchChartDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SchDataLogBook::SchDataLogBook(binfilter::SchMemChart const&)
+binfilter::SchMemChart::SubmitSelection(binfilter::ChartSelectionInfo const&)
+binfilter::SchXMLImport::SchXMLImport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel>, com::sun::star::uno::Reference<com::sun::star::document::XGraphicObjectResolver>&, unsigned char, unsigned char)
+binfilter::SchXMLImport_Meta_createInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+binfilter::SchXMLImport_Meta_getSupportedServiceNames()
+binfilter::SchXMLTableHelper::applyTable(binfilter::SchXMLTable const&, com::sun::star::uno::Sequence<com::sun::star::chart::ChartSeriesAddress>&, rtl::OUString&, com::sun::star::uno::Reference<com::sun::star::chart::XChartDocument>)
+binfilter::SchXMLWrapper::ImportStream(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XParser>&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>&, com::sun::star::uno::Reference<com::sun::star::document::XGraphicObjectResolver>&)
+binfilter::ScriptTypePosInfos::Replace(binfilter::ScriptTypePosInfo const&, unsigned short)
+binfilter::ScriptTypePosInfos::Replace(binfilter::ScriptTypePosInfo const*, unsigned short, unsigned short)
+binfilter::ScriptTypePosInfos::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::ScriptTypePosInfo const&, void*), void*)
+binfilter::SdBINFilter::~SdBINFilter()
+binfilter::SdDrawDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SdDrawDocument::StartOnlineSpelling(unsigned char)
+binfilter::SdFilter::OpenLibrary(rtl::OUString const&) const
+binfilter::SdGenericDrawPage::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::SdGraphicDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SdGraphicDocShell::SdGraphicDocShell(binfilter::SdDrawDocument*, binfilter::SfxObjectCreateMode, unsigned char, binfilter::DocumentType)
+binfilter::SdLayerManager::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::SdOptionsPrintItem::SdOptionsPrintItem(unsigned short)
+binfilter::SdResId::SdResId(unsigned short, ResMgr*)
+binfilter::SdUnoSearchReplaceShape::SdUnoSearchReplaceShape(com::sun::star::drawing::XShape*)
+binfilter::SdXImpressDocument::SdXImpressDocument(binfilter::SdDrawDocument*, unsigned char)
+binfilter::SdXMLViewSettingsContext::SdXMLViewSettingsContext(binfilter::SdXMLImport&, unsigned short, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&)
+binfilter::SdXShape::SdXShape()
+binfilter::SdrEditView::IsCrookAllowed(unsigned char) const
+binfilter::SdrEditView::IsGradientAllowed() const
+binfilter::SdrEditView::IsMirrorAllowed(unsigned char, unsigned char) const
+binfilter::SdrEditView::IsTransparenceAllowed() const
+binfilter::SdrGrafObj::GetTransformedGraphic(unsigned long) const
+binfilter::SdrHdl::SdrHdl()
+binfilter::SdrHdl::SdrHdl(Point const&, binfilter::SdrHdlKind)
+binfilter::SdrHdlList::ResetFocusHdl()
+binfilter::SdrMarkView::GetMarkHdlSizePixel() const
+binfilter::SdrMarkView::MarkPoints(Rectangle const*, unsigned char)
+binfilter::SdrMarkView::PickObj(Point const&, short, binfilter::SdrObject*&, binfilter::SdrPageView*&, unsigned long) const
+binfilter::SdrMarkView::SetDragMode(binfilter::SdrDragMode)
+binfilter::SdrMarkView::SetEditMode(binfilter::SdrViewEditMode)
+binfilter::SdrMarkView::SetMarkHdlSizePixel(unsigned short)
+binfilter::SdrModel::SdrModel(SfxItemPool*, SvPersist*, int, int)
+binfilter::SdrOle2Obj::SdrOle2Obj(SvInPlaceObjectRef const&, String const&, int)
+binfilter::SdrPageObj::SdrPageObj(Rectangle const&, unsigned short)
+binfilter::SdrPageView::SetHelpLines(binfilter::SdrHelpLineList const&)
+binfilter::SdrPaintView::IsGroupEntered() const
+binfilter::SdrPaintView::PostPaint()
+binfilter::SdrPaintView::RestartAfterPaintTimer()
+binfilter::SdrPaintView::SetLayerLocked(String const&, unsigned char)
+binfilter::SdrPaintView::ShowPagePgNum(unsigned short, Point const&)
+binfilter::SdrPaintView::VisAreaChanged(OutputDevice const*)
+binfilter::SdrRectObj::SdrRectObj(binfilter::SdrObjKind, Rectangle const&, SvStream&, unsigned short)
+binfilter::SdrUndoGroup::SdrUndoGroup(binfilter::SdrModel&, String const&)
+binfilter::SdrUnoControlAccessArr::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SdrUnoControlAccessArr::Insert(binfilter::SdrUnoControlAccess* const&, unsigned short&)
+binfilter::SdrUnoControlAccessArr::Insert(binfilter::SdrUnoControlAccess* const*, unsigned short)
+binfilter::SdrUnoControlAccessArr::Insert(binfilter::SdrUnoControlAccessArr const*, unsigned short, unsigned short)
+binfilter::SdrUnoControlAccessArr::Remove(binfilter::SdrUnoControlAccess* const&, unsigned short)
+binfilter::SdrUnoObj::GetUnoControl(OutputDevice const*) const
+binfilter::SdrUnoObj::SdrUnoObj(String const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, unsigned char)
+binfilter::SdrView::GetContext() const
+binfilter::SdrView::GetPreferedPointer(Point const&, OutputDevice const*, unsigned short, unsigned char) const
+binfilter::SdrView::GetStatusText()
+binfilter::SdrVirtObj::SdrVirtObj(binfilter::SdrObject&, Point const&)
+binfilter::SetShell(binfilter::ViewShell*)
+binfilter::SfxApplication::GetBasicContainer()
+binfilter::SfxApplication::InitializeDde()
+binfilter::SfxApplication::SaveBasicContainer() const
+binfilter::SfxApplication::SaveBasicManager() const
+binfilter::SfxApplication::SaveConfiguration() const
+binfilter::SfxApplication::SaveDialogContainer() const
+binfilter::SfxBaseModel::IsDisposed() const
+binfilter::SfxBaseModel::impl_change()
+binfilter::SfxBaseModel::impl_getObjectShell() const
+binfilter::SfxCallMacro(binfilter::BasicManager*, String const&, binfilter::SbxArray*, binfilter::SbxValue*)
+binfilter::SfxConfigItem::ReConnect(binfilter::SfxConfigManager*)
+binfilter::SfxConfigManager::CopyConfigItem(binfilter::SfxConfigManager&, unsigned short)
+binfilter::SfxConfigManager::GetURL()
+binfilter::SfxConfigManager::HasConfigItem(unsigned short)
+binfilter::SfxConfigManager::ReConnect(unsigned short, binfilter::SfxConfigManager*)
+binfilter::SfxConfigManager::ReInitialize(binfilter::SfxConfigItem*)
+binfilter::SfxConfigManager::ReInitialize(unsigned short)
+binfilter::SfxConfigManager::RemovePersistentConfigItem(unsigned short)
+binfilter::SfxConfigManager::ResetConfigItem(unsigned short)
+binfilter::SfxConfigManagerImExport_Impl::ExportItem(binfilter::SfxConfigItem_Impl*, SotStorage*, SvStream*)
+binfilter::SfxConfigManagerImExport_Impl::GetItemName(unsigned short)
+binfilter::SfxDdeDocTopics_Impl::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SfxDocUserKey::AdjustTitle_Impl()
+binfilter::SfxDocumentInfo::Clear()
+binfilter::SfxDocumentInfo::CopyUserData(binfilter::SfxDocumentInfo const&)
+binfilter::SfxDocumentInfo::DeleteUserData(unsigned char)
+binfilter::SfxDocumentInfo::Load(String const&)
+binfilter::SfxDocumentInfo::LoadPropertySet(SvStorage*)
+binfilter::SfxDocumentInfo::SetSpecialMimeType(String const&)
+binfilter::SfxEventConfigItem_Impl::LoadXML(SvStream&)
+binfilter::SfxEventConfigItem_Impl::Store(SvStream&)
+binfilter::SfxEventConfigItem_Impl::StoreXML(SvStream&)
+binfilter::SfxEventConfiguration::AddEvents(binfilter::SfxMacroTabPage*) const
+binfilter::SfxEventConfiguration::ConfigureEvent(unsigned short, SvxMacro const&, binfilter::SfxObjectShell*)
+binfilter::SfxEventConfiguration::GetDocEventTable(binfilter::SfxObjectShell*)
+binfilter::SfxEventConfiguration::GetEventId(String const&) const
+binfilter::SfxEventConfiguration::GetEventName(unsigned short) const
+binfilter::SfxEventConfiguration::GetMacroForEventId(unsigned short, binfilter::SfxObjectShell*)
+binfilter::SfxEventConfiguration::GetMacroInfo(unsigned short, binfilter::SfxObjectShell*) const
+binfilter::SfxEventConfiguration::SetAppEventTable(SvxMacroTableDtor const&)
+binfilter::SfxEventConfiguration::SetDocEventTable(binfilter::SfxObjectShell*, SvxMacroTableDtor const&)
+binfilter::SfxFilter::GetDefaultExtension() const
+binfilter::SfxFilter::GetPlugData()
+binfilter::SfxFilter::GetSuffixes() const
+binfilter::SfxFilter::IsFirstPlugin() const
+binfilter::SfxFilter::SfxFilter(char const*, String const&, unsigned long, String const&, binfilter::SfxFilterContainer const*)
+binfilter::SfxFilter::SfxFilter(char const*, String const&, unsigned long, binfilter::SfxFilterContainer const*)
+binfilter::SfxFilterContainer::GetAnyFilter(unsigned long, unsigned long) const
+binfilter::SfxFilterMatcher::GetContainer(String const&) const
+binfilter::SfxFilterMatcher::GetFilter(String const&, unsigned long, unsigned long) const
+binfilter::SfxFilterMatcher::GetFilter4EA(String const&, unsigned long, unsigned long) const
+binfilter::SfxFilterMatcherIter::First()
+binfilter::SfxFilterMatcherIter::Next()
+binfilter::SfxFilterMatcherIter::SfxFilterMatcherIter(binfilter::SfxFilterMatcher const*, unsigned long, unsigned long)
+binfilter::SfxFrameDescriptor::GetArgs()
+binfilter::SfxFrameDescriptor::IsEditable() const
+binfilter::SfxFrameDescriptor::Load(SvStream&, unsigned short)
+binfilter::SfxFrameDescriptor::SetActualURL(INetURLObject const&)
+binfilter::SfxFrameDescriptor::SetEditable(unsigned char)
+binfilter::SfxFrameDescriptor::Store(SvStream&) const
+binfilter::SfxFrameProperties::SfxFrameProperties(binfilter::SfxFrameDescriptor const*)
+binfilter::SfxFrameSetDescriptor::HasFrameBorder() const
+binfilter::SfxFrameSetDescriptor::SfxFrameSetDescriptor(binfilter::SfxFrameDescriptor*)
+binfilter::SfxHintPoster::Post(SfxHint*)
+binfilter::SfxHintPoster::SetEventHdl(binfilter::GenLink const&)
+binfilter::SfxHintPoster::SfxHintPoster(binfilter::GenLink const&)
+binfilter::SfxMacroConfig::CheckMacro(binfilter::SfxObjectShell*, SvxMacro const*) const
+binfilter::SfxMacroConfig::CheckMacro(unsigned short) const
+binfilter::SfxMacroConfig::ExecuteMacro(binfilter::SfxObjectShell*, SvxMacro const*, String const&) const
+binfilter::SfxMacroConfig::ExecuteMacro(unsigned short, String const&) const
+binfilter::SfxMacroConfig::GetMacroInfo(unsigned short) const
+binfilter::SfxMacroConfig::GetMacroInfo_Impl(SvxMacro const*) const
+binfilter::SfxMacroConfig::IsMacroSlot(unsigned short)
+binfilter::SfxMacroConfig::LinkStubCallbackHdl_Impl(void*, void*)
+binfilter::SfxMacroConfig::LinkStubEventHdl_Impl(void*, void*)
+binfilter::SfxMacroConfig::RegisterSlotId(unsigned short)
+binfilter::SfxMacroConfig::ReleaseSlotId(unsigned short)
+binfilter::SfxMacroConfig::RequestHelp(unsigned short)
+binfilter::SfxMacroConfig::SfxMacroConfig()
+binfilter::SfxMacroInfo::Compare(SvxMacro const&) const
+binfilter::SfxMacroInfo::GetBasicManager() const
+binfilter::SfxMacroInfo::GetHelpText() const
+binfilter::SfxMacroInfo::GetMacroName() const
+binfilter::SfxMacroInfo::GetURL() const
+binfilter::SfxMacroInfo::Load(SvStream&)
+binfilter::SfxMacroInfo::SetHelpText(String const&)
+binfilter::SfxMacroInfo::SfxMacroInfo(String const&)
+binfilter::SfxMacroInfo::SfxMacroInfo(binfilter::SfxMacroInfo&)
+binfilter::SfxMacroInfo::SfxMacroInfo(binfilter::SfxObjectShell*, String const&)
+binfilter::SfxMacroInfo::SfxMacroInfo(binfilter::SfxObjectShell*, String const&, String const&, String const&)
+binfilter::SfxMedium::DoInternalBackup_Impl(ucbhelper::Content const&)
+binfilter::SfxMedium::Exists(unsigned char)
+binfilter::SfxMedium::GetClassFilter()
+binfilter::SfxMedium::GetDataAvailableLink() const
+binfilter::SfxMedium::GetDoneLink() const
+binfilter::SfxMedium::GetEaMgr()
+binfilter::SfxMedium::GetHdl()
+binfilter::SfxMedium::GetOrigFilter(unsigned char) const
+binfilter::SfxMedium::IsUpdatePickList() const
+binfilter::SfxMedium::SetOrigFilter_Impl(binfilter::SfxFilter const*)
+binfilter::SfxMedium::SetStorage_Impl(SvStorage*)
+binfilter::SfxMedium::SfxMedium(binfilter::SfxMedium const&, unsigned char)
+binfilter::SfxMiscCfg::SetNotFoundWarning(unsigned char)
+binfilter::SfxMiscCfg::SetPaperOrientationWarning(unsigned char)
+binfilter::SfxMiscCfg::SetPaperSizeWarning(unsigned char)
+binfilter::SfxMiscCfg::SetYear2000(int)
+binfilter::SfxObjectFactory::Construct(unsigned short, binfilter::SfxObjectShell* (*)(binfilter::SfxObjectCreateMode), unsigned int, char const*)
+binfilter::SfxObjectFactory::GetCreateNewSlotId() const
+binfilter::SfxObjectFactory::GetModuleName() const
+binfilter::SfxObjectFactory::GetStandardTemplate() const
+binfilter::SfxObjectFactory::GetTemplateFilter() const
+binfilter::SfxObjectFactory::HasObjectFactories()
+binfilter::SfxObjectFactory::RegisterFilter(String const&, String const&, unsigned long, unsigned long, String const&, String const&, unsigned short, String const&, String const&)
+binfilter::SfxObjectFactory::RegisterInitFactory(void (*)())
+binfilter::SfxObjectFactory::SetCreateNewSlotId(unsigned short)
+binfilter::SfxObjectFactory::SetDocumentServiceName(rtl::OUString const&)
+binfilter::SfxObjectFactory::SetStandardTemplate(String const&, String const&)
+binfilter::SfxObjectShell::Call(String const&, unsigned char, binfilter::SbxObject*)
+binfilter::SfxObjectShell::CallScript(String const&, String const&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>&, void*, void*)
+binfilter::SfxObjectShell::CallStarBasicScript(String const&, String const&, void*, void*)
+binfilter::SfxObjectShell::CanReload_Impl()
+binfilter::SfxObjectShell::ClearHeaderAttributesForSourceViewHack()
+binfilter::SfxObjectShell::Count()
+binfilter::SfxObjectShell::DoInitNew_Impl(String const&)
+binfilter::SfxObjectShell::DoSaveAs(binfilter::SfxMedium&)
+binfilter::SfxObjectShell::ExportTo(binfilter::SfxMedium&)
+binfilter::SfxObjectShell::GetActualSize() const
+binfilter::SfxObjectShell::GetConfigurationStorage(SotStorage*)
+binfilter::SfxObjectShell::GetConfigurationStream(String const&, unsigned char)
+binfilter::SfxObjectShell::GetFlags() const
+binfilter::SfxObjectShell::GetLastMark_Impl() const
+binfilter::SfxObjectShell::GetModule() const
+binfilter::SfxObjectShell::GetNoSet_Impl()
+binfilter::SfxObjectShell::ImportFrom(binfilter::SfxMedium&)
+binfilter::SfxObjectShell::IsAutoLoadLocked() const
+binfilter::SfxObjectShell::IsBasic(String const&, binfilter::SbxObject*)
+binfilter::SfxObjectShell::IsHelpDocument() const
+binfilter::SfxObjectShell::IsInFrame() const
+binfilter::SfxObjectShell::IsInPrepareClose() const
+binfilter::SfxObjectShell::IsSecure()
+binfilter::SfxObjectShell::LockAutoLoad(unsigned char)
+binfilter::SfxObjectShell::PositionView_Impl()
+binfilter::SfxObjectShell::PostActivateEvent_Impl()
+binfilter::SfxObjectShell::SetActualSize(Size const&)
+binfilter::SfxObjectShell::SetFlags(unsigned int)
+binfilter::SfxObjectShell::SetHeaderAttributesForSourceViewHack()
+binfilter::SfxObjectShell::SetInFrame(unsigned char)
+binfilter::SfxObjectShell::SetLastMark_Impl(String const&)
+binfilter::SfxObjectShell::SetMacroMode_Impl(unsigned char)
+binfilter::SfxObjectShell::SetNamedVisibility_Impl()
+binfilter::SfxObjectShell::SetNoName()
+binfilter::SfxObjectShell::SetTemplate(unsigned char)
+binfilter::SfxObjectShell::SetWorkingDocument(binfilter::SfxObjectShell*)
+binfilter::SfxObjectShell::Stamp_SetActivateEvent(unsigned short)
+binfilter::SfxObjectShell::StartLoading_Impl()
+binfilter::SfxObjectShell::UpdateFromTemplate_Impl()
+binfilter::SfxObjectShell::UpdateTitle(binfilter::SfxMedium*, unsigned short)
+binfilter::SfxProgress::Lock()
+binfilter::SfxPtrArr::Append(void*)
+binfilter::SfxPtrArr::Contains(void const*) const
+binfilter::SfxPtrArr::Insert(unsigned short, void*)
+binfilter::SfxPtrArr::Remove(void*)
+binfilter::SfxPtrArr::Replace(void*, void*)
+binfilter::SfxQueryMacro(binfilter::BasicManager*, String const&)
+binfilter::SfxQueryMacro_Impl(binfilter::BasicManager*, String const&, String const&, String const&)
+binfilter::SfxStringEncode(String const&, char const*)
+binfilter::SfxStringHint::SfxStringHint(unsigned short, String const&)
+binfilter::SfxVersionTableDtor::Write(SvStream&) const
+binfilter::SfxXMLVersList_Impl::WriteInfo(SvStorageRef, binfilter::SfxVersionTableDtor const*)
+binfilter::ShellResource::~ShellResource()
+binfilter::SmDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SmDocShell::Draw(OutputDevice&, Point&)
+binfilter::SmDocShell::GetEditEngine()
+binfilter::SmFntFmtListEntryArr::Insert(binfilter::SmFntFmtListEntry const*, unsigned short, unsigned short)
+binfilter::SmFntFmtListEntryArr::Remove(unsigned short, unsigned short)
+binfilter::SmFntFmtListEntryArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::SmFntFmtListEntry const&, void*), void*)
+binfilter::SmMathConfig::IsShowFormulaCursor() const
+binfilter::SmXMLExport::SmXMLExport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, binfilter::SmNode const*, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler>&)
+binfilter::SmXMLImport::SmXMLImport(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, com::sun::star::uno::Reference<com::sun::star::frame::XModel>&, rtl::OUString const&)
+binfilter::SortedPositions::Insert(binfilter::SortedPositions const*, unsigned short, unsigned short)
+binfilter::SortedPositions::Insert(unsigned int const&, unsigned short&)
+binfilter::SortedPositions::Insert(unsigned int const*, unsigned short)
+binfilter::SortedPositions::Remove(unsigned int const&, unsigned short)
+binfilter::SortedPositions::Remove(unsigned short, unsigned short)
+binfilter::SortedPositions_SAR::Replace(unsigned int const&, unsigned short)
+binfilter::SortedPositions_SAR::Replace(unsigned int const*, unsigned short, unsigned short)
+binfilter::SortedPositions_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned int const&, void*), void*)
+binfilter::StarBASIC::ActivateObject(String const*, unsigned char)
+binfilter::StarBASIC::BreakPoint(unsigned short, unsigned short, unsigned short)
+binfilter::StarBASIC::ClearAllModuleVars()
+binfilter::StarBASIC::ClearGlobalVars()
+binfilter::StarBASIC::Disassemble(binfilter::SbModule*, String&)
+binfilter::StarBASIC::FindVarInCurrentScopy(String const&, unsigned short&)
+binfilter::StarBASIC::GetActiveMethod(unsigned short)
+binfilter::StarBASIC::GetActiveModule()
+binfilter::StarBASIC::GetCol1()
+binfilter::StarBASIC::GetCol2()
+binfilter::StarBASIC::GetErl()
+binfilter::StarBASIC::GetErrBasic()
+binfilter::StarBASIC::GetErrorCode()
+binfilter::StarBASIC::GetErrorMsg()
+binfilter::StarBASIC::GetErrorText()
+binfilter::StarBASIC::GetGlobalBreakHdl()
+binfilter::StarBASIC::GetGlobalErrorHdl()
+binfilter::StarBASIC::GetGlobalLanguageMode()
+binfilter::StarBASIC::GetLanguageMode()
+binfilter::StarBASIC::GetLine()
+binfilter::StarBASIC::IsCompilerError()
+binfilter::StarBASIC::LoadOldModules(SvStream&)
+binfilter::StarBASIC::MakeModule(String const&, String const&)
+binfilter::StarBASIC::SetGlobalBreakHdl(Link const&)
+binfilter::StarBASIC::SetGlobalErrorHdl(Link const&)
+binfilter::StarBASIC::SetGlobalLanguageMode(binfilter::SbLanguageMode)
+binfilter::StarBASIC::StaticSuppressSfxResource(unsigned char)
+binfilter::StarBASIC::StepPoint(unsigned short, unsigned short, unsigned short)
+binfilter::SvI18NMap_Impl::Insert(binfilter::SvI18NMapEntry_Impl* const&, unsigned short&)
+binfilter::SvI18NMap_Impl::Insert(binfilter::SvI18NMapEntry_Impl* const*, unsigned short)
+binfilter::SvI18NMap_Impl::Insert(binfilter::SvI18NMap_Impl const*, unsigned short, unsigned short)
+binfilter::SvI18NMap_Impl::Remove(binfilter::SvI18NMapEntry_Impl* const&, unsigned short)
+binfilter::SvI18NMap_Impl::Remove(unsigned short, unsigned short)
+binfilter::SvUnoAttributeContainer::getImplementation(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>)
+binfilter::SvXMLAutoStylePoolNamesP_Impl::GetPos(rtl::OUString const*) const
+binfilter::SvXMLAutoStylePoolNamesP_Impl::Remove(rtl::OUString*)
+binfilter::SvXMLAutoStylePoolParentsP_Impl::GetPos(binfilter::SvXMLAutoStylePoolParentP_Impl const*) const
+binfilter::SvXMLAutoStylePoolParentsP_Impl::Remove(binfilter::SvXMLAutoStylePoolParentP_Impl*)
+binfilter::SvXMLElementExport::SvXMLElementExport(binfilter::SvXMLExport&, unsigned char, unsigned short, char const*, unsigned char, unsigned char)
+binfilter::SvXMLElementExport::SvXMLElementExport(binfilter::SvXMLExport&, unsigned char, unsigned short, rtl::OUString const&, unsigned char, unsigned char)
+binfilter::SvXMLEmbeddedElementArr::Insert(binfilter::SvXMLEmbeddedElement* const&, unsigned short&)
+binfilter::SvXMLEmbeddedElementArr::Insert(binfilter::SvXMLEmbeddedElement* const*, unsigned short)
+binfilter::SvXMLEmbeddedElementArr::Insert(binfilter::SvXMLEmbeddedElementArr const*, unsigned short, unsigned short)
+binfilter::SvXMLEmbeddedElementArr::Remove(binfilter::SvXMLEmbeddedElement* const&, unsigned short)
+binfilter::SvXMLEmbeddedElementArr::Remove(unsigned short, unsigned short)
+binfilter::SvXMLExportItemMapper::exportXML(binfilter::SvXMLAttributeList&, SfxItemSet const&, binfilter::SvXMLUnitConverter const&, binfilter::SvXMLNamespaceMap const&, unsigned short) const
+binfilter::SvXMLExportItemMapper::exportXML(binfilter::SvXMLAttributeList&, SfxPoolItem const&, binfilter::SvXMLUnitConverter const&, binfilter::SvXMLNamespaceMap const&, unsigned short) const
+binfilter::SvXMLExportPropertyMapper::exportXML(binfilter::SvXMLAttributeList&, _STL::vector<binfilter::XMLPropertyState, _STL::allocator<binfilter::XMLPropertyState> > const&, binfilter::SvXMLUnitConverter const&, binfilter::SvXMLNamespaceMap const&, int, int, unsigned short) const
+binfilter::SvXMLExportPropertyMapper::exportXML(binfilter::SvXMLAttributeList&, _STL::vector<binfilter::XMLPropertyState, _STL::allocator<binfilter::XMLPropertyState> > const&, binfilter::SvXMLUnitConverter const&, binfilter::SvXMLNamespaceMap const&, unsigned short) const
+binfilter::SvXMLExportPropertyMapper::exportXML(binfilter::SvXMLAttributeList&, binfilter::XMLPropertyState const&, binfilter::SvXMLUnitConverter const&, binfilter::SvXMLNamespaceMap const&, unsigned short) const
+binfilter::SvXMLImportContexts_Impl::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SvXMLStyleIndices_Impl::GetPos(binfilter::SvXMLStyleIndex_Impl const*) const
+binfilter::SvXMLStyleIndices_Impl::Remove(binfilter::SvXMLStyleIndex_Impl*)
+binfilter::SvXMLTokenMap_Impl::Insert(binfilter::SvXMLTokenMapEntry_Impl* const&, unsigned short&)
+binfilter::SvXMLTokenMap_Impl::Insert(binfilter::SvXMLTokenMapEntry_Impl* const*, unsigned short)
+binfilter::SvXMLTokenMap_Impl::Insert(binfilter::SvXMLTokenMap_Impl const*, unsigned short, unsigned short)
+binfilter::SvXMLTokenMap_Impl::Remove(binfilter::SvXMLTokenMapEntry_Impl* const&, unsigned short)
+binfilter::SvXMLTokenMap_Impl::Remove(unsigned short, unsigned short)
+binfilter::SvxAccessibleTextPropertySet::SvxAccessibleTextPropertySet(binfilter::SvxEditSource const*, SfxItemPropertyMap const*)
+binfilter::SvxAccessibleTextPropertySet::getServiceName()
+binfilter::SvxClipboardFmtItem::AddClipbrdFormat(unsigned long, String const&, unsigned short)
+binfilter::SvxClipboardFmtItem::AddClipbrdFormat(unsigned long, unsigned short)
+binfilter::SvxClipboardFmtItem::SvxClipboardFmtItem(unsigned short)
+binfilter::SvxDrawingLayerExport(binfilter::SdrModel*, com::sun::star::uno::Reference<com::sun::star::io::XOutputStream>, com::sun::star::uno::Reference<com::sun::star::lang::XComponent>)
+binfilter::SvxDrawingLayerImport(binfilter::SdrModel*, com::sun::star::uno::Reference<com::sun::star::io::XInputStream>, com::sun::star::uno::Reference<com::sun::star::lang::XComponent>)
+binfilter::SvxEditEngineViewForwarder::SvxEditEngineViewForwarder(binfilter::EditView&)
+binfilter::SvxFontWidthItem::SvxFontWidthItem(unsigned short, unsigned short, unsigned short)
+binfilter::SvxScriptSetItem::GetItemOfScript(unsigned short) const
+binfilter::SvxScriptSetItem::SvxScriptSetItem(unsigned short, SfxItemPool&)
+binfilter::SvxSearchItem::GetFromDescriptor(com::sun::star::uno::Reference<com::sun::star::util::XSearchDescriptor> const&)
+binfilter::SvxSearchItem::SetExact(unsigned char)
+binfilter::SvxSearchItem::SetLEVRelaxed(unsigned char)
+binfilter::SvxSearchItem::SetLevenshtein(unsigned char)
+binfilter::SvxSearchItem::SetMatchFullHalfWidthForms(unsigned char)
+binfilter::SvxSearchItem::SetRegExp(unsigned char)
+binfilter::SvxSearchItem::SetSelection(unsigned char)
+binfilter::SvxSearchItem::SetToDescriptor(com::sun::star::uno::Reference<com::sun::star::util::XSearchDescriptor>&)
+binfilter::SvxSearchItem::SetTransliterationFlags(int)
+binfilter::SvxSearchItem::SetWordOnly(unsigned char)
+binfilter::SvxShapeText::SvxShapeText()
+binfilter::SvxShape_NewInstance()
+binfilter::SvxTabStopArr::Insert(binfilter::SvxTabStop const&, unsigned short&)
+binfilter::SvxTabStopArr::Remove(binfilter::SvxTabStop const&, unsigned short)
+binfilter::SvxTabStopArr_SAR::Replace(binfilter::SvxTabStop const*, unsigned short, unsigned short)
+binfilter::SvxTabStopArr_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::SvxTabStop const&, void*), void*)
+binfilter::SvxTextEditSourceImpl::SvxTextEditSourceImpl(binfilter::SdrObject&, binfilter::SdrView&, Window const&)
+binfilter::SvxUnoTextBase::SvxUnoTextBase(binfilter::SvxEditSource const*, SfxItemPropertyMap const*)
+binfilter::SvxUnoTextContent::SvxUnoTextContent()
+binfilter::SvxUnoTextCursor_NewInstance()
+binfilter::SvxUnoTextRange_NewInstance()
+binfilter::SvxXMLBitmapEntryExporter::SvxXMLBitmapEntryExporter(binfilter::SvXMLExport&)
+binfilter::SvxXMLColorEntryExporter::SvxXMLColorEntryExporter(binfilter::SvXMLExport&)
+binfilter::SvxXMLDashEntryExporter::SvxXMLDashEntryExporter(binfilter::SvXMLExport&)
+binfilter::SvxXMLGradientEntryExporter::SvxXMLGradientEntryExporter(binfilter::SvXMLExport&)
+binfilter::SvxXMLHatchEntryExporter::SvxXMLHatchEntryExporter(binfilter::SvXMLExport&)
+binfilter::SvxXMLLineEndEntryExporter::SvxXMLLineEndEntryExporter(binfilter::SvXMLExport&)
+binfilter::SvxXMLTextExportComponent::SvxXMLTextExportComponent(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, binfilter::EditEngine*, binfilter::ESelection const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> const&)
+binfilter::SvxXMLXTableExportComponent::SvxXMLXTableExportComponent(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> const&, com::sun::star::uno::Reference<com::sun::star::container::XNameContainer> const&, com::sun::star::uno::Reference<com::sun::star::document::XGraphicObjectResolver>&)
+binfilter::SvxXMLXTextImportComponent::SvxXMLXTextImportComponent(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>, com::sun::star::uno::Reference<com::sun::star::text::XText> const&)
+binfilter::Sw3Bytes::Replace(unsigned char const&, unsigned short)
+binfilter::Sw3Bytes::Replace(unsigned char const*, unsigned short, unsigned short)
+binfilter::Sw3Bytes::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned char const&, void*), void*)
+binfilter::Sw3Marks::GetPos(binfilter::Sw3Mark const*) const
+binfilter::Sw3Marks::Remove(binfilter::Sw3Mark*)
+binfilter::Sw3NumRuleInfos::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::Sw3NumRuleInfos::Insert(binfilter::Sw3NumRuleInfo* const&, unsigned short&)
+binfilter::Sw3NumRuleInfos::Insert(binfilter::Sw3NumRuleInfo* const*, unsigned short)
+binfilter::Sw3NumRuleInfos::Insert(binfilter::Sw3NumRuleInfos const*, unsigned short, unsigned short)
+binfilter::Sw3NumRuleInfos::Remove(binfilter::Sw3NumRuleInfo* const&, unsigned short)
+binfilter::Sw3SortFmts::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::Sw3SortFmts::Insert(binfilter::Sw3SortFmts const*, unsigned short, unsigned short)
+binfilter::Sw3SortFmts::Insert(binfilter::SwFmt* const&)
+binfilter::Sw3SortFmts::Insert(binfilter::SwFmt* const*, unsigned short)
+binfilter::Sw3SortFmts::Remove(binfilter::SwFmt* const&, unsigned short)
+binfilter::Sw3SortFmts::Remove(unsigned short, unsigned short)
+binfilter::Sw3ULongs::Replace(unsigned int const&, unsigned short)
+binfilter::Sw3ULongs::Replace(unsigned int const*, unsigned short, unsigned short)
+binfilter::Sw3ULongs::_ForEach(unsigned short, unsigned short, unsigned char (*)(unsigned int const&, void*), void*)
+binfilter::SwBookmark::SetRefObject(binfilter::SwServerObject*)
+binfilter::SwBookmarks::Insert(binfilter::SwBookmark* const&, unsigned short&)
+binfilter::SwBookmarks::Insert(binfilter::SwBookmark* const*, unsigned short)
+binfilter::SwBookmarks::Insert(binfilter::SwBookmarks const*, unsigned short, unsigned short)
+binfilter::SwBookmarks::Remove(binfilter::SwBookmark* const&, unsigned short)
+binfilter::SwChartBoxes::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwCurrShells::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwCurrShells::Insert(binfilter::CurrShell* const&, unsigned short&)
+binfilter::SwCurrShells::Insert(binfilter::CurrShell* const*, unsigned short)
+binfilter::SwCurrShells::Insert(binfilter::SwCurrShells const*, unsigned short, unsigned short)
+binfilter::SwCurrShells::Remove(unsigned short, unsigned short)
+binfilter::SwDependentFields::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwDestroyList::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwDestroyList::Insert(binfilter::SwDestroyList const*, unsigned short, unsigned short)
+binfilter::SwDestroyList::Insert(binfilter::SwSectionFrm* const&, unsigned short&)
+binfilter::SwDestroyList::Insert(binfilter::SwSectionFrm* const*, unsigned short)
+binfilter::SwDestroyList::Remove(binfilter::SwSectionFrm* const&, unsigned short)
+binfilter::SwDoc::InsertGlossary(binfilter::SwTextBlocks&, String const&, binfilter::SwPaM&, binfilter::SwCrsrShell*)
+binfilter::SwDoc::NotifyInvisibleLayers(binfilter::SdrPageView&)
+binfilter::SwDoc::Replace(binfilter::SwPaM&, String const&, unsigned char)
+binfilter::SwDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SwEditShell::GetCurCharFmt() const
+binfilter::SwEditShell::GetCurNumRule() const
+binfilter::SwEditShell::GetCurTOX() const
+binfilter::SwEditShell::GetCurTxtFmtColl() const
+binfilter::SwEditShell::SetAutoFmtFlags(binfilter::SvxSwAutoFmtFlags*)
+binfilter::SwFEShell::GetAnyCurRect(binfilter::CurRectType, Point const*, SvEmbeddedObject const*) const
+binfilter::SwFEShell::GetCurFrmFmt() const
+binfilter::SwFEShell::GetCurPageDesc(unsigned char) const
+binfilter::SwFEShell::GetFrmType(Point const*, unsigned char) const
+binfilter::SwFEShell::GetPageDesc(unsigned short) const
+binfilter::SwFEShell::GetPageDescCnt() const
+binfilter::SwFEShell::RequestObjectResize(binfilter::SwRect const&, SvEmbeddedObject*)
+binfilter::SwGlobalDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SwGlossaryList::ClearGroups()
+binfilter::SwGlossaryList::SwGlossaryList()
+binfilter::SwHTMLTableLayout::SwHTMLTableLayout(binfilter::SwTable const*, unsigned short, unsigned short, unsigned char, unsigned char, unsigned short, unsigned char, unsigned short, unsigned short, unsigned short, binfilter::SvxAdjust, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)
+binfilter::SwHistory::Add(binfilter::SwFmt const*, unsigned long, unsigned char)
+binfilter::SwLayIdle::FormatSpelling(unsigned char)
+binfilter::SwModule::CheckSpellChanges(unsigned char, unsigned char, unsigned char)
+binfilter::SwModule::GetFirstView()
+binfilter::SwModule::GetNextView(binfilter::SwView*)
+binfilter::SwOLELRUCache::Remove(binfilter::SwOLEObj&)
+binfilter::SwOutlineNodes::Insert(binfilter::SwNode* const&, unsigned short&)
+binfilter::SwOutlineNodes::Insert(binfilter::SwNode* const*, unsigned short)
+binfilter::SwOutlineNodes::Insert(binfilter::SwOutlineNodes const*, unsigned short, unsigned short)
+binfilter::SwPosFlyFrms::Insert(binfilter::SwPosFlyFrm* const&, unsigned short&)
+binfilter::SwPosFlyFrms::Insert(binfilter::SwPosFlyFrm* const*, unsigned short)
+binfilter::SwPosFlyFrms::Insert(binfilter::SwPosFlyFrms const*, unsigned short, unsigned short)
+binfilter::SwPosFlyFrms::Remove(binfilter::SwPosFlyFrm* const&, unsigned short)
+binfilter::SwPosFlyFrms::Remove(unsigned short, unsigned short)
+binfilter::SwRects::Replace(binfilter::SwRect const&, unsigned short)
+binfilter::SwRects::Replace(binfilter::SwRect const*, unsigned short, unsigned short)
+binfilter::SwRects::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::SwRect const&, void*), void*)
+binfilter::SwRedlineSaveData::SwRedlineSaveData(binfilter::SwComparePosition, binfilter::SwPosition const&, binfilter::SwPosition const&, binfilter::SwRedline&, unsigned char)
+binfilter::SwRubyList::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwScanner::NextWord(unsigned short)
+binfilter::SwSelBoxes::Insert(binfilter::SwTableBox* const&, unsigned short&)
+binfilter::SwSelBoxes::Remove(binfilter::SwTableBox* const&, unsigned short)
+binfilter::SwSelPaintRects::Get1PixelInLogic(binfilter::ViewShell const&, long*, long*)
+binfilter::SwShellTableCrsr::SwShellTableCrsr(binfilter::SwCrsrShell const&, binfilter::SwPosition const&)
+binfilter::SwSoftHyphStrPortion::SwSoftHyphStrPortion(String const&)
+binfilter::SwSortDrawObjs::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwSortDrawObjs::Insert(binfilter::SdrObject* const&, unsigned short&)
+binfilter::SwSortDrawObjs::Insert(binfilter::SdrObject* const*, unsigned short)
+binfilter::SwSortDrawObjs::Insert(binfilter::SwSortDrawObjs const*, unsigned short, unsigned short)
+binfilter::SwSortDrawObjs::Remove(unsigned short, unsigned short)
+binfilter::SwTOXSources::Remove(unsigned short, unsigned short)
+binfilter::SwTOXSources::Replace(binfilter::SwTOXSource const&, unsigned short)
+binfilter::SwTOXSources::Replace(binfilter::SwTOXSource const*, unsigned short, unsigned short)
+binfilter::SwTOXSources::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::SwTOXSource const&, void*), void*)
+binfilter::SwTable::SetRefObject(binfilter::SwServerObject*)
+binfilter::SwTableSortBoxes::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwTableSortBoxes::Insert(binfilter::SwTableBox* const&, unsigned short&)
+binfilter::SwTableSortBoxes::Insert(binfilter::SwTableBox* const*, unsigned short)
+binfilter::SwTableSortBoxes::Insert(binfilter::SwTableSortBoxes const*, unsigned short, unsigned short)
+binfilter::SwTextBlocks::BeginPutDoc(String const&, String const&)
+binfilter::SwTextBlocks::ClearDoc()
+binfilter::SwTextBlocks::ConvertToNew()
+binfilter::SwTextBlocks::Delete(unsigned short)
+binfilter::SwTextBlocks::GetCount() const
+binfilter::SwTextBlocks::GetDoc()
+binfilter::SwTextBlocks::GetFileName() const
+binfilter::SwTextBlocks::GetIndex(String const&) const
+binfilter::SwTextBlocks::GetLongIndex(String const&) const
+binfilter::SwTextBlocks::GetLongName(unsigned short) const
+binfilter::SwTextBlocks::GetMacroTable(unsigned short, SvxMacroTableDtor&)
+binfilter::SwTextBlocks::GetName()
+binfilter::SwTextBlocks::GetShortName(unsigned short) const
+binfilter::SwTextBlocks::IsOld() const
+binfilter::SwTextBlocks::PutDoc()
+binfilter::SwTextBlocks::PutText(String const&, String const&, String const&)
+binfilter::SwTextBlocks::Rename(unsigned short, String const*, String const*)
+binfilter::SwTextBlocks::SetMacroTable(unsigned short, SvxMacroTableDtor const&)
+binfilter::SwTextBlocks::SetName(String const&)
+binfilter::SwTextBlocks::SwTextBlocks(String const&)
+binfilter::SwTextBlocks::~SwTextBlocks()
+binfilter::SwUndRng::SwUndRng()
+binfilter::SwUndoDelLayFmt::SwUndoDelLayFmt(binfilter::SwFrmFmt*)
+binfilter::SwUndoTblMerge::SwUndoTblMerge(binfilter::SwPaM const&)
+binfilter::SwUndoTblNdsChg::SwUndoTblNdsChg(unsigned short, binfilter::SwSelBoxes const&, binfilter::SwTableNode const&)
+binfilter::SwUnoCrsr::SwUnoCrsr(binfilter::SwUnoCrsr&)
+binfilter::SwUnoTableCrsr::SwUnoTableCrsr(binfilter::SwPosition const&)
+binfilter::SwViewImp::Init(binfilter::SwViewOption const*)
+binfilter::SwViewImp::LinkStubRefreshScrolledHdl(void*, void*)
+binfilter::SwWebDocShell::CreateObject(binfilter::SfxObjectCreateMode)
+binfilter::SwWrtShell::SwWrtShell(binfilter::SwDoc&, Window*, binfilter::SwView&, binfilter::SwRootFrm*, binfilter::SwViewOption const*)
+binfilter::SwXBookmarkPortionArr::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwXBookmarkPortionArr::Insert(binfilter::SwXBookmarkPortionArr const*, unsigned short, unsigned short)
+binfilter::SwXBookmarkPortionArr::Insert(binfilter::SwXBookmarkPortion_Impl* const&, unsigned short&)
+binfilter::SwXBookmarkPortionArr::Insert(binfilter::SwXBookmarkPortion_Impl* const*, unsigned short)
+binfilter::SwXBookmarkPortionArr::Remove(binfilter::SwXBookmarkPortion_Impl* const&, unsigned short)
+binfilter::SwXMLTableColumnsSortByWidth_Impl::GetPos(binfilter::SwXMLTableColumn_Impl const*) const
+binfilter::SwXMLTableColumnsSortByWidth_Impl::Remove(binfilter::SwXMLTableColumn_Impl*)
+binfilter::SwXMLTableColumns_Impl::Insert(binfilter::SwXMLTableColumn_Impl* const&, unsigned short&)
+binfilter::SwXMLTableColumns_Impl::Insert(binfilter::SwXMLTableColumn_Impl* const*, unsigned short)
+binfilter::SwXMLTableColumns_Impl::Insert(binfilter::SwXMLTableColumns_Impl const*, unsigned short, unsigned short)
+binfilter::SwXMLTableColumns_Impl::Remove(binfilter::SwXMLTableColumn_Impl* const&, unsigned short)
+binfilter::SwXMLTableColumns_Impl::Remove(unsigned short, unsigned short)
+binfilter::SwXRedlinePortionArr::DeleteAndDestroy(unsigned short, unsigned short)
+binfilter::SwXRedlinePortionArr::Insert(binfilter::SwXRedlinePortionArr const*, unsigned short, unsigned short)
+binfilter::SwXRedlinePortionArr::Insert(binfilter::SwXRedlinePortion_Impl* const&, unsigned short&)
+binfilter::SwXRedlinePortionArr::Insert(binfilter::SwXRedlinePortion_Impl* const*, unsigned short)
+binfilter::SwXRedlinePortionArr::Remove(binfilter::SwXRedlinePortion_Impl* const&, unsigned short)
+binfilter::SwXTextCursor_NewInstance_Impl()
+binfilter::SwpHtEnd::Insert(binfilter::SwTxtAttr const*&, unsigned short&)
+binfilter::SwpHtEnd::Insert(binfilter::SwTxtAttr const**, unsigned short)
+binfilter::SwpHtEnd::Insert(binfilter::SwpHtEnd const*, unsigned short, unsigned short)
+binfilter::SwpHtEnd::Remove(binfilter::SwTxtAttr const*&, unsigned short)
+binfilter::SwpHtStart::Insert(binfilter::SwTxtAttr const*&, unsigned short&)
+binfilter::SwpHtStart::Insert(binfilter::SwTxtAttr const**, unsigned short)
+binfilter::SwpHtStart::Insert(binfilter::SwpHtStart const*, unsigned short, unsigned short)
+binfilter::SwpHtStart::Remove(binfilter::SwTxtAttr const*&, unsigned short)
+binfilter::Vector3D::CalcMiddle(binfilter::Vector3D const&, binfilter::Vector3D const&, binfilter::Vector3D&)
+binfilter::ViewPropertySet::ViewPropertySet()
+binfilter::ViewShell::ViewShell(binfilter::ViewShell&, Window*, OutputDevice*, long)
+binfilter::W4WStyleIdTab::Insert(binfilter::W4WStyleIdTab const*, unsigned short, unsigned short)
+binfilter::W4WStyleIdTab::Insert(binfilter::W4WStyleIdTabEntry* const&, unsigned short&)
+binfilter::W4WStyleIdTab::Insert(binfilter::W4WStyleIdTabEntry* const*, unsigned short)
+binfilter::W4WStyleIdTab::Remove(binfilter::W4WStyleIdTabEntry* const&, unsigned short)
+binfilter::W4WStyleIdTab::Remove(unsigned short, unsigned short)
+binfilter::WordArr::Append(short)
+binfilter::WordArr::Contains(short) const
+binfilter::WordArr::Insert(unsigned short, short)
+binfilter::WordArr::Remove(short)
+binfilter::WordArr::Remove(unsigned short, unsigned short)
+binfilter::WordArr::WordArr(unsigned char, unsigned char)
+binfilter::WordArr::~WordArr()
+binfilter::WritingDirectionInfos::Replace(binfilter::WritingDirectionInfo const&, unsigned short)
+binfilter::WritingDirectionInfos::Replace(binfilter::WritingDirectionInfo const*, unsigned short, unsigned short)
+binfilter::WritingDirectionInfos::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::WritingDirectionInfo const&, void*), void*)
+binfilter::XBitmapList::Remove(long)
+binfilter::XBitmapList::Replace(binfilter::XBitmapEntry*, long)
+binfilter::XBitmapTable::Remove(long)
+binfilter::XBitmapTable::Replace(long, binfilter::XBitmapEntry*)
+binfilter::XBitmapTable::XBitmapTable(String const&, binfilter::XOutdevItemPool*, unsigned short, unsigned short)
+binfilter::XColorList::Remove(long)
+binfilter::XColorList::Replace(binfilter::XColorEntry*, long)
+binfilter::XColorList::XColorList(String const&, binfilter::XOutdevItemPool*, unsigned short, unsigned short)
+binfilter::XColorTable::Remove(long)
+binfilter::XDashList::Remove(long)
+binfilter::XDashList::Replace(binfilter::XDashEntry*, long)
+binfilter::XDashTable::Remove(long)
+binfilter::XDashTable::Replace(long, binfilter::XDashEntry*)
+binfilter::XDashTable::XDashTable(String const&, binfilter::XOutdevItemPool*, unsigned short, unsigned short)
+binfilter::XGradientList::Remove(long)
+binfilter::XGradientList::Replace(binfilter::XGradientEntry*, long)
+binfilter::XGradientTable::Remove(long)
+binfilter::XGradientTable::Replace(long, binfilter::XGradientEntry*)
+binfilter::XGradientTable::XGradientTable(String const&, binfilter::XOutdevItemPool*, unsigned short, unsigned short)
+binfilter::XHatchList::Remove(long)
+binfilter::XHatchList::Replace(binfilter::XHatchEntry*, long)
+binfilter::XHatchTable::Remove(long)
+binfilter::XHatchTable::Replace(long, binfilter::XHatchEntry*)
+binfilter::XHatchTable::XHatchTable(String const&, binfilter::XOutdevItemPool*, unsigned short, unsigned short)
+binfilter::XLineEndList::Remove(long)
+binfilter::XLineEndList::Replace(binfilter::XLineEndEntry*, long)
+binfilter::XLineEndTable::Remove(long)
+binfilter::XLineEndTable::Replace(long, binfilter::XLineEndEntry*)
+binfilter::XLineEndTable::XLineEndTable(String const&, binfilter::XOutdevItemPool*, unsigned short, unsigned short)
+binfilter::XMLEventsImportContext::XMLEventsImportContext(binfilter::SvXMLImport&, unsigned short, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::container::XNameReplace> const&)
+binfilter::XMLFamilyDataList_Impl::GetPos(binfilter::XMLFamilyData_Impl const*) const
+binfilter::XMLFamilyDataList_Impl::Remove(binfilter::XMLFamilyData_Impl*)
+binfilter::XMLFontAutoStylePoolNames_Impl::GetPos(rtl::OUString const*) const
+binfilter::XMLFontAutoStylePoolNames_Impl::Remove(rtl::OUString*)
+binfilter::XMLFontAutoStylePool_Impl::GetPos(binfilter::XMLFontAutoStylePoolEntry_Impl const*) const
+binfilter::XMLFontAutoStylePool_Impl::Remove(binfilter::XMLFontAutoStylePoolEntry_Impl*)
+binfilter::XMLPropertyBackpatcher<rtl::OUString>::XMLPropertyBackpatcher(char const*)
+binfilter::XMLPropertyBackpatcher<rtl::OUString>::XMLPropertyBackpatcher(char const*, char const*, unsigned char, rtl::OUString)
+binfilter::XMLPropertyBackpatcher<rtl::OUString>::XMLPropertyBackpatcher(rtl::OUString const&, rtl::OUString const&, unsigned char, rtl::OUString)
+binfilter::XMLPropertyBackpatcher<short>::XMLPropertyBackpatcher(char const*)
+binfilter::XMLPropertyBackpatcher<short>::XMLPropertyBackpatcher(char const*, char const*, unsigned char, short)
+binfilter::XMLPropertyBackpatcher<short>::XMLPropertyBackpatcher(rtl::OUString const&, rtl::OUString const&, unsigned char, short)
+binfilter::XMLScriptElementContext::XMLScriptElementContext(binfilter::SvXMLImport&, unsigned short, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&, binfilter::XMLScriptContext&, com::sun::star::uno::Reference<com::sun::star::script::XStarBasicAccess>)
+binfilter::XMLShapePropertySetMapper::XMLShapePropertySetMapper(binfilter::UniReference<binfilter::XMLPropertyHandlerFactory> const&, unsigned short)
+binfilter::XMLTextListAutoStylePoolNames_Impl::GetPos(rtl::OUString const*) const
+binfilter::XMLTextListAutoStylePoolNames_Impl::Remove(rtl::OUString*)
+binfilter::XMLTextListAutoStylePool_Impl::GetPos(binfilter::XMLTextListAutoStylePoolEntry_Impl const*) const
+binfilter::XMLTextListAutoStylePool_Impl::Remove(binfilter::XMLTextListAutoStylePoolEntry_Impl*)
+binfilter::XOutBitmap::ExportGraphic(Graphic const&, INetURLObject const&, GraphicFilter&, unsigned short, unsigned char, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const*)
+binfilter::_MapTblFrmFmts::Remove(unsigned short, unsigned short)
+binfilter::_MapTblFrmFmts::Replace(binfilter::_MapTblFrmFmt const&, unsigned short)
+binfilter::_MapTblFrmFmts::Replace(binfilter::_MapTblFrmFmt const*, unsigned short, unsigned short)
+binfilter::_SetGetExpFlds::Insert(binfilter::_SetGetExpFld* const&, unsigned short&)
+binfilter::_SetGetExpFlds::Insert(binfilter::_SetGetExpFld* const*, unsigned short)
+binfilter::_SetGetExpFlds::Insert(binfilter::_SetGetExpFlds const*, unsigned short, unsigned short)
+binfilter::_SetGetExpFlds::Remove(binfilter::_SetGetExpFld* const&, unsigned short)
+binfilter::_SetGetExpFlds::Remove(unsigned short, unsigned short)
+binfilter::_Sort_CellFrms::Remove(unsigned short, unsigned short)
+binfilter::_Sort_CellFrms::Replace(binfilter::_Sort_CellFrm const&, unsigned short)
+binfilter::_Sort_CellFrms::Replace(binfilter::_Sort_CellFrm const*, unsigned short, unsigned short)
+binfilter::_Sort_CellFrms::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::_Sort_CellFrm const&, void*), void*)
+binfilter::_SwFtnIdxs::Insert(binfilter::SwTxtFtn* const&, unsigned short&)
+binfilter::_SwFtnIdxs::Insert(binfilter::SwTxtFtn* const*, unsigned short)
+binfilter::_SwFtnIdxs::Insert(binfilter::_SwFtnIdxs const*, unsigned short, unsigned short)
+binfilter::_SwFtnIdxs::Remove(binfilter::SwTxtFtn* const&, unsigned short)
+binfilter::_SwPamRanges::Insert(binfilter::SwPamRange const&)
+binfilter::_SwPamRanges::Insert(binfilter::SwPamRange const&, unsigned short&)
+binfilter::_SwPamRanges::Insert(binfilter::SwPamRange const*, unsigned short)
+binfilter::_SwPamRanges::Insert(binfilter::_SwPamRanges const*, unsigned short, unsigned short)
+binfilter::_SwPamRanges::Remove(binfilter::SwPamRange const&, unsigned short)
+binfilter::_SwPamRanges::Remove(unsigned short, unsigned short)
+binfilter::_SwPamRanges_SAR::Replace(binfilter::SwPamRange const&, unsigned short)
+binfilter::_SwPamRanges_SAR::Replace(binfilter::SwPamRange const*, unsigned short, unsigned short)
+binfilter::_SwPamRanges_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::SwPamRange const&, void*), void*)
+binfilter::_SwRedlineTbl::Insert(binfilter::SwRedline* const*, unsigned short)
+binfilter::_SwRedlineTbl::Insert(binfilter::_SwRedlineTbl const*, unsigned short, unsigned short)
+binfilter::_SwRedlineTbl::Remove(binfilter::SwRedline* const&, unsigned short)
+binfilter::_W4WEndPosLst::Replace(binfilter::W4WSttEndPos const&, unsigned short)
+binfilter::_W4WEndPosLst::Replace(binfilter::W4WSttEndPos const*, unsigned short, unsigned short)
+binfilter::_W4WEndPosLst::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::W4WSttEndPos const&, void*), void*)
+binfilter::_ZSortFlys::Insert(binfilter::_ZSortFly const&, unsigned short&)
+binfilter::_ZSortFlys::Insert(binfilter::_ZSortFly const*, unsigned short)
+binfilter::_ZSortFlys::Insert(binfilter::_ZSortFlys const*, unsigned short, unsigned short)
+binfilter::_ZSortFlys::Remove(binfilter::_ZSortFly const&, unsigned short)
+binfilter::_ZSortFlys_SAR::Replace(binfilter::_ZSortFly const&, unsigned short)
+binfilter::_ZSortFlys_SAR::Replace(binfilter::_ZSortFly const*, unsigned short, unsigned short)
+binfilter::_ZSortFlys_SAR::_ForEach(unsigned short, unsigned short, unsigned char (*)(binfilter::_ZSortFly const&, void*), void*)
+binfilter::bf_OfficeWrapper::impl_createInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+binfilter::createAllObjectProperties(binfilter::SbxObject*)
+binfilter::createUserTypeImpl(String const&)
+binfilter::frm::OFilterControl::displayException(com::sun::star::sdb::SQLContext const&)
+binfilter::frm::OFormattedModel_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+binfilter::frm::OGridColumn_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+binfilter::getBasicObjectTypeName(binfilter::SbxObject*)
+binfilter::getDefaultProp(binfilter::SbxVariable*)
+binfilter::getElementPos(com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> const&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&)
+binfilter::getStaticTypes()
+binfilter::impl_Size_Object2Struct(Size const&)
+binfilter::impl_Size_Struct2Object(com::sun::star::awt::Size const&)
+binfilter::lcl_GetLastFoundSvcs(SvtLinguConfig&, rtl::OUString const&, com::sun::star::lang::Locale const&)
+binfilter::lcl_GetNewEntries(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<rtl::OUString> const&)
+binfilter::lcl_GetRenderDevice(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
+binfilter::lcl_MergeAttr(SfxItemSet&, SfxPoolItem const&)
+binfilter::lcl_MergeSeq(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<rtl::OUString> const&)
+binfilter::lcl_RemoveMissingEntries(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<rtl::OUString> const&)
+binfilter::lcl_WholeSheet(binfilter::ScRangeList const&)
+binfilter::refreshpage(binfilter::SdDrawDocument*, binfilter::PageKind)
+binfilter::runsInSetup()
+binfilter::sbxToUnoValue(binfilter::SbxVariable*)
+binfilter::sfx2::appl::ImeStatusWindow::canToggle() const
+binfilter::sfx2::appl::ImeStatusWindow::isShowing()
+binfilter::sfx2::appl::ImeStatusWindow::show(bool)
+binfilter::svxform::OParseContextClient::getParseContext() const
+boost::shared_ptr<sd::CustomAnimationPreset>* _STL::__uninitialized_copy<boost::shared_ptr<sd::CustomAnimationPreset>*, boost::shared_ptr<sd::CustomAnimationPreset>*>(boost::shared_ptr<sd::CustomAnimationPreset>*, boost::shared_ptr<sd::CustomAnimationPreset>*, boost::shared_ptr<sd::CustomAnimationPreset>*, _STL::__false_type const&)
+bridges::cpp_uno::shared::isSimpleType(_typelib_TypeDescriptionReference const*)
+bridges_urp::PropertyObject::localGetPropertiesFromRemote(bridges_urp::Properties*)
+bridges_urp::test_cache()
+bridges_urp::urp_BridgeImpl::dumpErrors(_IO_FILE*)
+cairoHelperGetDefaultScreen(void*)
+cairoHelperGetDepth(void const*)
+cairoHelperGetGlitzDrawable(SystemEnvData const*, int, int)
+cairoHelperGetGlitzSurface(SystemEnvData const*, void*, int, int, int, int)
+cairoHelperGetVisual(void const*)
+cairocanvas::CanvasHelper::flush() const
+cairocanvas::SpriteCanvas::getSurface(cairo::_cairo_content)
+cairocanvas::TextLayout::draw(cairo::_cairo*)
+calculateTopLeftMargin(com::sun::star::uno::Reference<org::openoffice::vba::XHelperInterface>)
+canvas::ParametricPolyPolygon::ParametricPolyPolygon(com::sun::star::uno::Reference<com::sun::star::rendering::XGraphicDevice> const&, basegfx::B2DPolygon const&, canvas::ParametricPolyPolygon::GradientType, com::sun::star::uno::Sequence<double> const&, com::sun::star::uno::Sequence<double> const&)
+canvas::tools::ElapsedTime::getTimeBase() const
+canvas::tools::PriorityBooster::PriorityBooster(int)
+canvas::tools::PriorityBooster::~PriorityBooster()
+canvas::tools::appendToViewState(com::sun::star::rendering::ViewState&, basegfx::B2DHomMatrix const&)
+canvas::tools::calcRectToRectTransform(basegfx::B2DHomMatrix&, basegfx::B2DRange const&, basegfx::B2DRange const&, basegfx::B2DHomMatrix const&)
+canvas::tools::clipBlit(basegfx::B2IRange&, basegfx::B2IPoint&, basegfx::B2IRange const&, basegfx::B2IRange const&)
+canvas::tools::getDeviceColor(double&, double&, double&, double&, com::sun::star::rendering::RenderState const&)
+canvas::tools::mergeViewAndRenderState(com::sun::star::rendering::ViewState&, com::sun::star::rendering::ViewState const&, com::sun::star::rendering::RenderState const&, com::sun::star::uno::Reference<com::sun::star::rendering::XCanvas> const&)
+canvas::tools::prependToViewState(com::sun::star::rendering::ViewState&, basegfx::B2DHomMatrix const&)
+canvas::tools::verifyInput(com::sun::star::geometry::RealSize2D const&, char const*, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, short)
+canvas::tools::verifyInput(com::sun::star::rendering::FloatingPointBitmapLayout const&, char const*, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, short)
+certificateValidityToOUString(int)
+chart::(anonymous namespace)::Point3D::Point3D(double, double, double)
+chart::(anonymous namespace)::lcl_ReadNumberFormatFromItemSet(SfxItemSet const&, unsigned short, unsigned short, unsigned long&, bool&)
+chart::(anonymous namespace)::lcl_getIdentifierForTitle(chart::TitleHelper::eTitleType)
+chart::(anonymous namespace)::lcl_getSortedPolyPolygonShape3D(com::sun::star::drawing::PolyPolygonShape3D const&, com::sun::star::drawing::PolyPolygonShape3D&)
+chart::(anonymous namespace)::makeVector(com::sun::star::drawing::PolyPolygonShape3D const&, int)
+chart::B3DVectorToPosition3D(basegfx::B3DVector const&)
+chart::CachedDataSequence::CachedDataSequence(_STL::vector<com::sun::star::uno::Any, _STL::allocator<com::sun::star::uno::Any> > const&)
+chart::CachedDataSequence::CachedDataSequence(_STL::vector<double, _STL::allocator<double> > const&)
+chart::CachedDataSequence::CachedDataSequence(_STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> > const&)
+chart::CachedDataSequence::PreferMixedData()
+chart::CachedDataSequence::PreferNumericalData()
+chart::CachedDataSequence::PreferTextualData()
+chart::CachedDataSequence::fireModifyEvent()
+chart::CategoryPositionHelper::CategoryPositionHelper()
+chart::ChartController::executeDispatch_ObjectToDefault()
+chart::ChartModelHelper::getCoordinateSystemOfChartType(com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartType> const&)
+chart::ChartModelHelper::setPageSize(com::sun::star::awt::Size const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&)
+chart::ConfigurationAccess::~ConfigurationAccess()
+chart::ContextHelper::createContext(_STL::map<rtl::OUString, com::sun::star::uno::Any, _STL::less<rtl::OUString>, _STL::allocator<_STL::pair<rtl::OUString const, com::sun::star::uno::Any> > > const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+chart::DataBrowser::GetCursorMovedHdl() const
+chart::DataBrowser::IsDirty() const
+chart::DataBrowserModel::applyToModel()
+chart::DataBrowserModel::getDataOfColumn(int) const
+chart::DataBrowserModel::restoreModel(com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&)
+chart::DataBrowserModel::setModel(com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&)
+chart::DataLabelsTabPage::SetNumberFormatter(SvNumberFormatter*)
+chart::DataPoint::DataPoint()
+chart::DataPointStyle::DataPointStyle(com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&, osl::Mutex&)
+chart::DataPointStyle::GetMutex()
+chart::DataSeriesHelper::SetRole(com::sun::star::uno::Reference<com::sun::star::chart2::data::XLabeledDataSequence> const&, rtl::OUString const&)
+chart::DataSeriesStyle::DataSeriesStyle(com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&, osl::Mutex&)
+chart::DataSeriesStyle::GetMutex()
+chart::DataSource::DataSource(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataSequence> > const&)
+chart::DataSource::DataSource(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataSequence> > const&, com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataSequence> > const&)
+chart::DataSourceHelper::migrateData(com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&, com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataProvider> const&)
+chart::DataSourceTabPage::disableAll()
+chart::DiagramHelper::getIndexOfSeriesWithinChartType(com::sun::star::uno::Reference<com::sun::star::chart2::XDataSeries> const&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartType> const&)
+chart::Dim3DLookResourceGroup::getPosition()
+chart::Direction3DToSequence(com::sun::star::drawing::Direction3D const&)
+chart::FormattedString::FormattedString(rtl::OUString const&)
+chart::GeometryResourceGroup::getPosition()
+chart::GetChartItemPool()
+chart::GridProperties::GetMutex()
+chart::HomogenMatrix3ToB2DHomMatrix(com::sun::star::drawing::HomogenMatrix3 const&)
+chart::LabelPositionHelper::transformScaledLogicToScreenPosition(com::sun::star::drawing::Position3D const&) const
+chart::LabeledDataSequence::fireModifyEvent()
+chart::LocationTabPage::LocationTabPage(svt::OWizardMachine*, com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+chart::MakeLine3D(com::sun::star::drawing::Position3D const&, com::sun::star::drawing::Position3D const&)
+chart::ModifyListenerHelper::ModifyEventForwarder::FireEvent(com::sun::star::uno::Reference<com::sun::star::uno::XWeak> const&)
+chart::ModifyListenerHelper::ModifyListenerOnDemmandRefresh::ModifyListenerOnDemmandRefresh(osl::Mutex&)
+chart::ModifyListenerHelper::ModifyListenerOnDemmandRefresh::listenAtDocument(com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&)
+chart::ModifyListenerHelper::ModifyListenerOnDemmandRefresh::needsUpdate() const
+chart::ModifyListenerHelper::ModifyListenerOnDemmandRefresh::update()
+chart::ObjectIdentifier::ObjectIdentifier()
+chart::ObjectPropertiesDialogParameter::HasLineProperties() const
+chart::PointSequenceToPoly(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::awt::Point> > const&)
+chart::PolyToToolsPoly(com::sun::star::drawing::PolyPolygonShape3D const&)
+chart::RangeChooserTabPage::changeModelAccordingToControls()
+chart::RangeSelectionHelper::getCellRangeContent(rtl::OUString const&)
+chart::ReferenceSizeProvider::getAutoResizeState() const
+chart::RegressionCurveHelper::createMeanValueLineCalculator()
+chart::SequenceToB3DPoint(com::sun::star::uno::Sequence<double> const&)
+chart::SequenceToDirection3D(com::sun::star::uno::Sequence<double> const&)
+chart::SeriesPlotterContainer::shouldKeep2DAspectRatio()
+chart::ShapeFactory::createSymbol3D(com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, com::sun::star::drawing::Position3D const&, com::sun::star::drawing::Direction3D const&, int, int, int)
+chart::SortByXValuesResourceGroup::getPosition()
+chart::Stripe::GetDirectionTo4() const
+chart::StyleFamilies::AddStyleFamily(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&)
+chart::StyleFamilies::StyleFamilies()
+chart::StyleFamily::AddStyle(com::sun::star::uno::Reference<com::sun::star::style::XStyle> const&)
+chart::StyleFamily::StyleFamily()
+chart::TickmarkHelper::getScaledWidth() const
+chart::TickmarkHelper::isPostEquidistant(int) const
+chart::ToolsPolyToPoly(Polygon const&, double)
+chart::VCoordinateSystem::getMaximumIncrementIndexByDimension(int) const
+chart::VLegendSymbolFactory::createJapaneseCandleStickSymbol(com::sun::star::uno::Reference<com::sun::star::drawing::XShapes>, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, bool)
+chart::VLegendSymbolFactory::createStockLineSymbol(com::sun::star::uno::Reference<com::sun::star::drawing::XShapes>, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, chart::VLegendSymbolFactory::tStockLineType)
+chart::VPolarGrid::create2DAngleGrid(com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, _STL::vector<_STL::vector<chart::TickInfo, _STL::allocator<chart::TickInfo> >, _STL::allocator<_STL::vector<chart::TickInfo, _STL::allocator<chart::TickInfo> > > >&, _STL::vector<_STL::vector<chart::TickInfo, _STL::allocator<chart::TickInfo> >, _STL::allocator<_STL::vector<chart::TickInfo, _STL::allocator<chart::TickInfo> > > >&, _STL::vector<chart::VLineProperties, _STL::allocator<chart::VLineProperties> > const&)
+chart::WeakModifyListenerAdapter::WeakModifyListenerAdapter(com::sun::star::uno::Reference<com::sun::star::util::XModifyListener> const&)
+chart::WeakSelectionChangeListenerAdapter::WeakSelectionChangeListenerAdapter(com::sun::star::uno::WeakReference<com::sun::star::view::XSelectionChangeListener> const&)
+chart::WritingMode2ToWritingMode1(short)
+chart::createPolyPolygon_PieSegment(double, double, double)
+chart::debug::ChartDebugTraceDiagram(com::sun::star::uno::Reference<com::sun::star::chart2::XDiagram> const&, int)
+chart::debug::ChartDebugTraceDocument(com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&, int)
+chart::impl::ChartConfigItem::removePropertyNotification(rtl::OUString const&)
+chart::impl::ImplChartModel::GetData()
+chart::impl::ImplChartModel::RemoveDiagram(com::sun::star::uno::Reference<com::sun::star::chart2::XDiagram> const&)
+chart::impl::ImplChartModel::SetChartTypeTemplate(com::sun::star::uno::Reference<com::sun::star::chart2::XChartTypeTemplate> const&)
+chart::impl::SeriesHeader::GetEditChangedHdl() const
+chart::impl::SeriesHeader::GetSeriesNameEditField() const
+chart::impl::SeriesHeader::Hide()
+chart::impl::UndoStack::getCurrentLimitation() const
+chart::setShapeName(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>&, rtl::OUString const&)
+chart::wrapper::Chart2ModelContact::GetDiagramPosition() const
+chart::wrapper::WrappedNamedProperty::addWrappedProperties(_STL::vector<chart::WrappedProperty*, _STL::allocator<chart::WrappedProperty*> >&, boost::shared_ptr<chart::wrapper::Chart2ModelContact>)
+checkFileContent(rtl::OString const&, rtl::OString const&)
+chelp::Databases::errorDocument(rtl::OUString const&, char**, int*)
+chelp::Databases::getInstallPathAsURLWithOutEncoding()
+chelp::Databases::getURLMode()
+chelp::Databases::variant(rtl::OUString const&)
+chelp::URLParameter::URLParameter(rtl::OUString const&, rtl::OUString const&, chelp::Databases*)
+cli_uno_environment_createMonoProxyAndRegister
+cli_uno_environment_getObjectIdentifier
+cli_uno_environment_getRegisteredInterface
+cli_uno_environment_registerInterface
+cli_uno_interface_acquire
+cli_uno_interface_dispatch
+cli_uno_interface_release
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::AccessibleTableModelChange const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::TextSegment const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessible const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleAction const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleComponent const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleContext const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleEditableText const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleEventBroadcaster const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleEventListener const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleExtendedComponent const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleHyperlink const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleHypertext const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleImage const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleKeyBinding const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleRelationSet const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleSelection const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleStateSet const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleTable const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleText const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleTextAttributes const*)
+com::sun::star::accessibility::cppu_detail_getUnoType(com::sun::star::accessibility::XAccessibleValue const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::Event const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::TargetProperties const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::TimeFilterPair const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::Timing const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::ValuePair const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimate const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimateColor const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimateMotion const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimateSet const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimateTransform const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimationNode const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAnimationNodeSupplier const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XAudio const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XCommand const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XIterateContainer const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XTargetPropertiesCreator const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XTimeContainer const*)
+com::sun::star::animations::cppu_detail_getUnoType(com::sun::star::animations::XTransitionFilter const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::FontDescriptor const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::Gradient const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::KeyEvent const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::KeyStroke const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::MouseEvent const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::Point const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::Rectangle const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::SystemDependentXWindow const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XActionListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XAdjustmentListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XBitmap const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XButton const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XCheckBox const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XComboBox const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XContainerWindowEventHandler const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XContainerWindowProvider const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XControlContainer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XControlModel const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XCurrencyField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDataTransferProviderAccess const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDateField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDevice const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDialog const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDialogEventHandler const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDialogProvider2 const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDisplayBitmap const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDisplayConnection const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDockableWindow const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XDockableWindowListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XEventHandler const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XExtendedToolkit const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XFixedText const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XFocusListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XFont const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XFont2 const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XGraphics const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XImageConsumer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XImageProducer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XInfoPrinter const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XItemEventBroadcaster const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XItemListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XKeyHandler const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XKeyListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XLayoutConstrains const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XListBox const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMenu const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMenuBar const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMenuExtended const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMenuListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMessageBox const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMessageBoxFactory const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMetricField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMouseClickHandler const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMouseListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XMouseMotionListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XNumericField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPaintListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPatternField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPointer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPopupMenu const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPrinter const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPrinterPropertySet const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XPrinterServer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XProgressBar const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XProgressMonitor const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XRadioButton const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XRegion const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XReschedule const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XScrollBar const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSimpleAnimation const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSimpleTabController const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSpinField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSpinListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSpinValue const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSystemChildFactory const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSystemDependentMenuPeer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XSystemDependentWindowPeer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTabController const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTabControllerModel const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTabListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTextArea const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTextComponent const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTextEditField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTextLayoutConstrains const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTextListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XThrobber const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTimeField const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XToggleButton const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XToolkit const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTopWindow const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XTopWindowListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XUnoControlContainer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XUserInputInterception const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XVclContainer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XVclContainerListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XVclContainerPeer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XVclWindowPeer const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XView const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XWindow const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XWindow2 const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XWindowListener const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XWindowListener2 const*)
+com::sun::star::awt::cppu_detail_getUnoType(com::sun::star::awt::XWindowPeer const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XMutableTreeDataModel const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XMutableTreeNode const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XTreeControl const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XTreeDataModel const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XTreeDataModelListener const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XTreeEditListener const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XTreeExpansionListener const*)
+com::sun::star::awt::tree::cppu_detail_getUnoType(com::sun::star::awt::tree::XTreeNode const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::GetDirectPropertyTolerantResult const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::GetPropertyTolerantResult const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::IllegalTypeException const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::PropertyExistException const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::PropertyState const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::SetPropertyTolerantFailed const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::StringPair const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XExactName const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XHierarchicalPropertySet const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XIntrospection const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XIntrospectionAccess const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XMaterialHolder const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XMultiHierarchicalPropertySet const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XMultiPropertyStates const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XPropertiesChangeNotifier const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XProperty const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XPropertyContainer const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XPropertySetInfoChangeListener const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XPropertySetInfoChangeNotifier const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XPropertyWithState const*)
+com::sun::star::beans::cppu_detail_getUnoType(com::sun::star::beans::XTolerantMultiPropertySet const*)
+com::sun::star::bridge::cppu_detail_getUnoType(com::sun::star::bridge::BridgeExistsException const*)
+com::sun::star::bridge::oleautomation::cppu_detail_getUnoType(com::sun::star::bridge::oleautomation::Currency const*)
+com::sun::star::bridge::oleautomation::cppu_detail_getUnoType(com::sun::star::bridge::oleautomation::Date const*)
+com::sun::star::bridge::oleautomation::cppu_detail_getUnoType(com::sun::star::bridge::oleautomation::Decimal const*)
+com::sun::star::bridge::oleautomation::cppu_detail_getUnoType(com::sun::star::bridge::oleautomation::NamedArgument const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::Break const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::CurveStyle const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::DataPointLabel const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::ErrorBarStyle const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::ExplicitIncrementData const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::ExplicitScaleData const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::ExplicitSubIncrement const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::FillBitmap const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::LegendExpansion const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::LegendPosition const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::PieChartOffsetMode const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::RelativePosition const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::RelativeSize const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::StackingDirection const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::SubIncrement const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::Symbol const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::ViewLegendEntry const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XAxis const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XChartDocument const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XChartType const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XChartTypeContainer const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XChartTypeManager const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XChartTypeTemplate const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XColorScheme const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XCoordinateSystem const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XCoordinateSystemContainer const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XDataInterpreter const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XDataSeries const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XDataSeriesContainer const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XDiagram const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XDiagramProvider const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XFormattedString const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XInternalDataProvider const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XLegend const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XLegendEntry const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XRegressionCurve const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XRegressionCurveCalculator const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XRegressionCurveContainer const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XScaling const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XTitle const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XTitled const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XTransformation const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XUndoHelper const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XUndoManager const*)
+com::sun::star::chart2::cppu_detail_getUnoType(com::sun::star::chart2::XUndoSupplier const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::HighlightedRange const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XDataProvider const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XDataReceiver const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XDataSequence const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XDataSink const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XDataSource const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XLabeledDataSequence const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XNumericalDataSequence const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XRangeHighlighter const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XRangeXMLConversion const*)
+com::sun::star::chart2::data::cppu_detail_getUnoType(com::sun::star::chart2::data::XTextualDataSequence const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartAxisArrangeOrderType const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartDataRowSource const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartErrorCategory const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartErrorIndicatorType const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartLegendPosition const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartRegressionCurveType const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::ChartSeriesAddress const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::X3DDisplay const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XAxisXSupplier const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XAxisYSupplier const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XAxisZSupplier const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XChartData const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XChartDataArray const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XChartDataChangeEventListener const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XChartDocument const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XDiagram const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XStatisticDisplay const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XTwoAxisXSupplier const*)
+com::sun::star::chart::cppu_detail_getUnoType(com::sun::star::chart::XTwoAxisYSupplier const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::AuthenticationFailedException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::BackendAccessException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::BackendSetupException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::CannotConnectException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::ConnectionLostException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::InsufficientAccessRightsException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::InvalidAuthenticationMechanismException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::MalformedDataException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::MergeRecoveryRequest const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::PropertyInfo const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::StratumCreationException const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XBackend const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XBackendChangesListener const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XBackendChangesNotifier const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XBackendEntities const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XCompositeLayer const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XLayer const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XLayerContentDescriber const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XLayerHandler const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XLayerImporter const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XMultiLayerStratum const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XSchema const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XSchemaHandler const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XSchemaSupplier const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XSingleLayerStratum const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XUpdatableLayer const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XUpdateHandler const*)
+com::sun::star::configuration::backend::cppu_detail_getUnoType(com::sun::star::configuration::backend::XVersionedSchemaSupplier const*)
+com::sun::star::configuration::cppu_detail_getUnoType(com::sun::star::configuration::CannotLoadConfigurationException const*)
+com::sun::star::configuration::cppu_detail_getUnoType(com::sun::star::configuration::InstallationIncompleteException const*)
+com::sun::star::configuration::cppu_detail_getUnoType(com::sun::star::configuration::InvalidBootstrapFileException const*)
+com::sun::star::configuration::cppu_detail_getUnoType(com::sun::star::configuration::MissingBootstrapFileException const*)
+com::sun::star::configuration::cppu_detail_getUnoType(com::sun::star::configuration::XTemplateContainer const*)
+com::sun::star::configuration::cppu_detail_getUnoType(com::sun::star::configuration::XTemplateInstance const*)
+com::sun::star::connection::cppu_detail_getUnoType(com::sun::star::connection::AlreadyAcceptingException const*)
+com::sun::star::connection::cppu_detail_getUnoType(com::sun::star::connection::ConnectionSetupException const*)
+com::sun::star::connection::cppu_detail_getUnoType(com::sun::star::connection::NoConnectException const*)
+com::sun::star::connection::cppu_detail_getUnoType(com::sun::star::connection::XConnectionBroadcaster const*)
+com::sun::star::connection::cppu_detail_getUnoType(com::sun::star::connection::XConnector const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::ElementExistException const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::NoSuchElementException const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XChild const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XContainer const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XContainerApproveBroadcaster const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XContainerApproveListener const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XContainerListener const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XContainerQuery const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XHierarchicalName const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XHierarchicalNameContainer const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XIdentifierAccess const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XIdentifierContainer const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XIdentifierReplace const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XIndexContainer const*)
+com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XStringKeyMap const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XClipboard const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XClipboardEx const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XClipboardListener const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XClipboardManager const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XClipboardNotifier const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XClipboardOwner const*)
+com::sun::star::datatransfer::clipboard::cppu_detail_getUnoType(com::sun::star::datatransfer::clipboard::XFlushableClipboard const*)
+com::sun::star::datatransfer::cppu_detail_getUnoType(com::sun::star::datatransfer::DataFlavor const*)
+com::sun::star::datatransfer::cppu_detail_getUnoType(com::sun::star::datatransfer::XMimeContentType const*)
+com::sun::star::datatransfer::cppu_detail_getUnoType(com::sun::star::datatransfer::XMimeContentTypeFactory const*)
+com::sun::star::datatransfer::cppu_detail_getUnoType(com::sun::star::datatransfer::XTransferable const*)
+com::sun::star::datatransfer::cppu_detail_getUnoType(com::sun::star::datatransfer::XTransferableSupplier const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDragGestureListener const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDragGestureRecognizer const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDragSource const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDragSourceContext const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDragSourceListener const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDropTarget const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDropTargetDragContext const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDropTargetDropContext const*)
+com::sun::star::datatransfer::dnd::cppu_detail_getUnoType(com::sun::star::datatransfer::dnd::XDropTargetListener const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::DependencyException const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::DeploymentException const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::InstallException const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::LicenseException const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::LicenseIndividualAgreementException const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::UpdateInformationEntry const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::VersionException const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XPackage const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XPackageInformationProvider const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XPackageManager const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XPackageManagerFactory const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XPackageRegistry const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XPackageTypeInfo const*)
+com::sun::star::deployment::cppu_detail_getUnoType(com::sun::star::deployment::XUpdateInformationProvider const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::AmbigousFilterRequest const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::BrokenPackageRequest const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::FilterOptionsRequest const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::NoSuchFilterRequest const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XActionLockable const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XBinaryStreamResolver const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XDocumentInfo const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XDocumentInfoSupplier const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XDocumentInsertable const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XDocumentRevisionListPersistence const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XDocumentSubStorageSupplier const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XEmbeddedObjectResolver const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XEmbeddedObjectSupplier const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XEmbeddedObjectSupplier2 const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XEventBroadcaster const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XEventListener const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XEventsSupplier const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XExtendedFilterDetection const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XFilter const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XGraphicObjectResolver const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XImporter const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XInteractionFilterOptions const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XInteractionFilterSelect const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XLinkTargetSupplier const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XMimeTypeInfo const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XRedlinesSupplier const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XStandaloneDocumentInfo const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XStorageBasedDocument const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XStorageChangeListener const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XTypeDetection const*)
+com::sun::star::document::cppu_detail_getUnoType(com::sun::star::document::XViewDataSupplier const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::BitmapMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::CameraGeometry const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::ColorMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::ConnectorType const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::DashStyle const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::Direction3D const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::EnhancedCustomShapeParameter const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::EnhancedCustomShapeParameterPair const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::EnhancedCustomShapeSegment const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::EnhancedCustomShapeTextFrame const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::EnhancedCustomShapeTextPathMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::GluePoint2 const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::GraphicFilterRequest const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::Hatch const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::HatchStyle const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::HomogenMatrix const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::HomogenMatrix3 const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::LineDash const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::LineJoint const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::LineStyle const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::MeasureKind const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::MeasureTextHorzPos const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::MeasureTextVertPos const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::NormalsKind const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::PolyPolygonBezierCoords const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::PolyPolygonShape3D const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::PolygonFlags const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::PolygonKind const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::Position3D const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::ProjectionMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::RectanglePoint const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::ShadeMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextAdjust const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextAnimationDirection const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextAnimationKind const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextFitToSizeType const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextHorizontalAdjust const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextVerticalAdjust const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextureKind const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextureMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::TextureProjectionMode const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XConnectorShape const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XCustomShapeEngine const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XCustomShapeHandle const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XDrawPageDuplicator const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XDrawPageSupplier const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XDrawPages const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XDrawView const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XGluePointsSupplier const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XLayer const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XLayerManager const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XLayerSupplier const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XShapeBinder const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XShapeCombiner const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XShapeDescriptor const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XShapeGroup const*)
+com::sun::star::drawing::cppu_detail_getUnoType(com::sun::star::drawing::XShapeGrouper const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::TabBarButton const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XCommandController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XConfiguration const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XConfigurationChangeListener const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XConfigurationChangeRequest const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XConfigurationController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XControllerManager const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XModuleController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XPane const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XPaneController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XPaneFactory const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XRelocatableResource const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XResource const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XResourceController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XResourceId const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XTabBar const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XToolBar const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XToolBarController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XToolBarFactory const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XView const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XViewController const*)
+com::sun::star::drawing::framework::cppu_detail_getUnoType(com::sun::star::drawing::framework::XViewFactory const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::UseBackupException const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XActionsApproval const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XClassifiedObject const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XCommonEmbedPersist const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XComponentSupplier const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEmbedObjectClipboardCreator const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEmbedObjectCreator const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEmbedObjectFactory const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEmbedPersist const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEmbeddedClient const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEmbeddedObject const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XEncryptionProtectedSource const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XExtendedStorageStream const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XHatchWindow const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XHatchWindowController const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XHatchWindowFactory const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XHierarchicalStorageAccess const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XInplaceClient const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XInplaceObject const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XInsertObjectDialog const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XLinkCreator const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XLinkFactory const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XLinkageSupport const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XOptimizedStorage const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XPackageStructureCreator const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XRelationshipAccess const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XStateChangeBroadcaster const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XStateChangeListener const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XStorage const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XStorageRawAccess const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XTransactedObject const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XTransactionBroadcaster const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XTransactionListener const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XVisualObject const*)
+com::sun::star::embed::cppu_detail_getUnoType(com::sun::star::embed::XWindowSupplier const*)
+com::sun::star::form::binding::cppu_detail_getUnoType(com::sun::star::form::binding::XBindableValue const*)
+com::sun::star::form::binding::cppu_detail_getUnoType(com::sun::star::form::binding::XListEntryListener const*)
+com::sun::star::form::binding::cppu_detail_getUnoType(com::sun::star::form::binding::XListEntrySink const*)
+com::sun::star::form::binding::cppu_detail_getUnoType(com::sun::star::form::binding::XListEntrySource const*)
+com::sun::star::form::binding::cppu_detail_getUnoType(com::sun::star::form::binding::XValueBinding const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::FormButtonType const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::FormSubmitEncoding const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::FormSubmitMethod const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::ListSourceType const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::NavigationBarMode const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::TabulatorCycle const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XApproveActionBroadcaster const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XBoundComponent const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XBoundControl const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XChangeBroadcaster const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XChangeListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XConfirmDeleteBroadcaster const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XConfirmDeleteListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XDatabaseParameterBroadcaster const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XDatabaseParameterBroadcaster2 const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XDatabaseParameterListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XForm const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XFormComponent const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XFormController const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XFormControllerListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XFormsSupplier const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XFormsSupplier2 const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XGrid const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XGridColumnFactory const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XGridFieldDataSupplier const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XGridPeer const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XImageProducerSupplier const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XLoadListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XLoadable const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XReset const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XResetListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XSubmit const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XSubmitListener const*)
+com::sun::star::form::cppu_detail_getUnoType(com::sun::star::form::XUpdateListener const*)
+com::sun::star::form::runtime::cppu_detail_getUnoType(com::sun::star::form::runtime::XFeatureInvalidation const*)
+com::sun::star::form::runtime::cppu_detail_getUnoType(com::sun::star::form::runtime::XFormOperations const*)
+com::sun::star::form::submission::cppu_detail_getUnoType(com::sun::star::form::submission::XSubmission const*)
+com::sun::star::form::submission::cppu_detail_getUnoType(com::sun::star::form::submission::XSubmissionSupplier const*)
+com::sun::star::form::submission::cppu_detail_getUnoType(com::sun::star::form::submission::XSubmissionVetoListener const*)
+com::sun::star::form::validation::cppu_detail_getUnoType(com::sun::star::form::validation::XFormComponentValidityListener const*)
+com::sun::star::form::validation::cppu_detail_getUnoType(com::sun::star::form::validation::XValidatableFormComponent const*)
+com::sun::star::form::validation::cppu_detail_getUnoType(com::sun::star::form::validation::XValidator const*)
+com::sun::star::form::validation::cppu_detail_getUnoType(com::sun::star::form::validation::XValidityConstraintListener const*)
+com::sun::star::formula::cppu_detail_getUnoType(com::sun::star::formula::SymbolDescriptor const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::ControlCommand const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::DispatchInformation const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::DispatchResultEvent const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::DispatchStatement const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XBorderResizeListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XComponentLoader const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XConfigManager const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XControlNotificationListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XController const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XControllerBorder const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDesktop const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatch const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchHelper const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchInformationProvider const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchProviderInterception const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchProviderInterceptor const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchRecorder const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchRecorderSupplier const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDispatchResultListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XDocumentTemplates const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XFrameActionListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XFrameLoader const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XFrames const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XInplaceLayout const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XInterceptorInfo const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XLayoutManager const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XLayoutManagerEventBroadcaster const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XLayoutManagerListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XLoadEventListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XLoadable const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XMenuBarMergingAcceptor const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XModel const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XModel2 const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XModule const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XModuleManager const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XNotifyingDispatch const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XPopupMenuController const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XRecordableDispatch const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XSessionManagerClient const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XSessionManagerListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XStatusbarController const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XStorable const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XStorable2 const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XSubToolbarController const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XSynchronousDispatch const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XSynchronousFrameLoader const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XTasksSupplier const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XTerminateListener const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XTerminateListener2 const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XToolbarController const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XTransientDocumentsDocumentContentFactory const*)
+com::sun::star::frame::cppu_detail_getUnoType(com::sun::star::frame::XUIControllerRegistration const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::ClipboardFormats const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::FontHeight const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::ItemStatus const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::LeftRightMargin const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::Template const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::UpperLowerMargin const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::UpperLowerMarginScale const*)
+com::sun::star::frame::status::cppu_detail_getUnoType(com::sun::star::frame::status::Visibility const*)
+com::sun::star::gallery::cppu_detail_getUnoType(com::sun::star::gallery::XGalleryItem const*)
+com::sun::star::gallery::cppu_detail_getUnoType(com::sun::star::gallery::XGalleryTheme const*)
+com::sun::star::gallery::cppu_detail_getUnoType(com::sun::star::gallery::XGalleryThemeProvider const*)
+com::sun::star::geometry::cppu_detail_getUnoType(com::sun::star::geometry::AffineMatrix2D const*)
+com::sun::star::geometry::cppu_detail_getUnoType(com::sun::star::geometry::RealBezierSegment2D const*)
+com::sun::star::geometry::cppu_detail_getUnoType(com::sun::star::geometry::RealPoint2D const*)
+com::sun::star::geometry::cppu_detail_getUnoType(com::sun::star::geometry::RealRectangle2D const*)
+com::sun::star::graphic::cppu_detail_getUnoType(com::sun::star::graphic::XGraphic const*)
+com::sun::star::graphic::cppu_detail_getUnoType(com::sun::star::graphic::XGraphicProvider const*)
+com::sun::star::graphic::cppu_detail_getUnoType(com::sun::star::graphic::XGraphicRenderer const*)
+com::sun::star::i18n::NumToCharHalfwidth::NumToCharHalfwidth()
+com::sun::star::i18n::Transliteration_simplecaseignore::Transliteration_simplecaseignore()
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::Calendar const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::CalendarItem const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::Currency const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::Currency2 const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::FormatElement const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::Implementation const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::NumberFormatCode const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::UnicodeScript const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XCalendar const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XCharacterClassification const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XCollator const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XExtendedCalendar const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XExtendedIndexEntrySupplier const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XExtendedInputSequenceChecker const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XExtendedTextConversion const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XExtendedTransliteration const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XForbiddenCharacters const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XInputSequenceChecker const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XLocaleData const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XLocaleData2 const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XNativeNumberSupplier const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XNumberFormatCode const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XOrdinalSuffix const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XScriptTypeDetector const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XTextConversion const*)
+com::sun::star::i18n::cppu_detail_getUnoType(com::sun::star::i18n::XTransliteration const*)
+com::sun::star::i18n::xdictionary::setCellBoundary(int*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::PropertyCategoryDescriptor const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XHyperlinkControl const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XNumericControl const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XObjectInspector const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XObjectInspectorModel const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XObjectInspectorUI const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XPropertyControl const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XPropertyControlContext const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XPropertyControlFactory const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XPropertyControlObserver const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XPropertyHandler const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XStringListControl const*)
+com::sun::star::inspection::cppu_detail_getUnoType(com::sun::star::inspection::XStringRepresentation const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::BufferSizeExceededException const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::IOException const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::NotConnectedException const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XActiveDataControl const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XActiveDataSink const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XActiveDataStreamer const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XAsyncOutputMonitor const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XConnectable const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XDataInputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XDataOutputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XInputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XInputStreamProvider const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XMarkableStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XObjectInputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XObjectOutputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XPersist const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XPersistObject const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XSeekable const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XSeekableInputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XStreamListener const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XTextInputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XTextOutputStream const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XTruncate const*)
+com::sun::star::io::cppu_detail_getUnoType(com::sun::star::io::XXMLExtractor const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::InvalidJavaSettingsException const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::JavaDisabledException const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::JavaNotFoundException const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::JavaVMCreationFailureException const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::RestartRequiredException const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::WrongJavaVersionException const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::XJavaThreadRegister_11 const*)
+com::sun::star::java::cppu_detail_getUnoType(com::sun::star::java::XJavaVM const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::DisposedException const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::IllegalAccessException const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::IndexOutOfBoundsException const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::NoSupportException const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::WrappedTargetRuntimeException const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::XConnectionPoint const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::XConnectionPointContainer const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::XServiceDisplayName const*)
+com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::XUnoTunnel const*)
+com::sun::star::ldap::cppu_detail_getUnoType(com::sun::star::ldap::LdapConnectionException const*)
+com::sun::star::ldap::cppu_detail_getUnoType(com::sun::star::ldap::LdapGenericException const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::DictionaryEvent const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XAvailableLocales const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XConversionDictionary const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XConversionDictionaryList const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XConversionPropertyType const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XDictionary const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XDictionary1 const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XDictionaryEntry const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XDictionaryEventListener const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XDictionaryList const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XDictionaryListEventListener const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XHyphenatedWord const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XHyphenator const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XLanguageGuessing const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XLinguServiceEventBroadcaster const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XLinguServiceEventListener const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XLinguServiceManager const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XMeaning const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XPossibleHyphens const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XSearchableDictionaryList const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XSpellAlternatives const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XSpellChecker const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XSpellChecker1 const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XSupportedLocales const*)
+com::sun::star::linguistic2::cppu_detail_getUnoType(com::sun::star::linguistic2::XThesaurus const*)
+com::sun::star::loader::cppu_detail_getUnoType(com::sun::star::loader::CannotActivateFactoryException const*)
+com::sun::star::logging::cppu_detail_getUnoType(com::sun::star::logging::XConsoleHandler const*)
+com::sun::star::logging::cppu_detail_getUnoType(com::sun::star::logging::XLogFormatter const*)
+com::sun::star::logging::cppu_detail_getUnoType(com::sun::star::logging::XLogHandler const*)
+com::sun::star::logging::cppu_detail_getUnoType(com::sun::star::logging::XLogger const*)
+com::sun::star::logging::cppu_detail_getUnoType(com::sun::star::logging::XLoggerPool const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::MailAttachment const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::XAuthenticator const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::XConnectionListener const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::XMailMessage const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::XMailService const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::XMailServiceProvider const*)
+com::sun::star::mail::cppu_detail_getUnoType(com::sun::star::mail::XSmtpService const*)
+com::sun::star::media::cppu_detail_getUnoType(com::sun::star::media::XManager const*)
+com::sun::star::media::cppu_detail_getUnoType(com::sun::star::media::XPlayer const*)
+com::sun::star::media::cppu_detail_getUnoType(com::sun::star::media::XPlayerWindow const*)
+com::sun::star::media::cppu_detail_getUnoType(com::sun::star::media::ZoomLevel const*)
+com::sun::star::mozilla::cppu_detail_getUnoType(com::sun::star::mozilla::XMozillaBootstrap const*)
+com::sun::star::packages::cppu_detail_getUnoType(com::sun::star::packages::XDataSinkEncrSupport const*)
+com::sun::star::packages::manifest::cppu_detail_getUnoType(com::sun::star::packages::manifest::XManifestReader const*)
+com::sun::star::packages::manifest::cppu_detail_getUnoType(com::sun::star::packages::manifest::XManifestWriter const*)
+com::sun::star::packages::zip::cppu_detail_getUnoType(com::sun::star::packages::zip::XZipFileAccess const*)
+com::sun::star::packages::zip::cppu_detail_getUnoType(com::sun::star::packages::zip::ZipIOException const*)
+com::sun::star::plugin::cppu_detail_getUnoType(com::sun::star::plugin::PluginDescription const*)
+com::sun::star::plugin::cppu_detail_getUnoType(com::sun::star::plugin::XPlugin const*)
+com::sun::star::plugin::cppu_detail_getUnoType(com::sun::star::plugin::XPluginContext const*)
+com::sun::star::plugin::cppu_detail_getUnoType(com::sun::star::plugin::XPluginManager const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::AnimationSpeed const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::FadeEffect const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::ParagraphTarget const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::XCustomPresentationSupplier const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::XHandoutMasterSupplier const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::XPresentation const*)
+com::sun::star::presentation::cppu_detail_getUnoType(com::sun::star::presentation::XPresentationSupplier const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::InvocationTargetException const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::MethodMode const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::ParamMode const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XArrayTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XConstantTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XConstantsTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XModuleTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XParameter const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XPropertyTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XProxyFactory const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XPublished const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XServiceConstructorDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XServiceTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XServiceTypeDescription2 const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XSingletonTypeDescription const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XSingletonTypeDescription2 const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XTypeDescriptionEnumeration const*)
+com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XTypeDescriptionEnumerationAccess const*)
+com::sun::star::registry::cppu_detail_getUnoType(com::sun::star::registry::CannotRegisterImplementationException const*)
+com::sun::star::registry::cppu_detail_getUnoType(com::sun::star::registry::InvalidRegistryException const*)
+com::sun::star::registry::cppu_detail_getUnoType(com::sun::star::registry::InvalidValueException const*)
+com::sun::star::registry::cppu_detail_getUnoType(com::sun::star::registry::MergeConflictException const*)
+com::sun::star::registry::cppu_detail_getUnoType(com::sun::star::registry::RegistryKeyType const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::FontInfo const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::Texture const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XBezierPolyPolygon2D const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XBitmap const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XBitmapCanvas const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XBitmapPalette const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XBufferController const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XCachedPrimitive const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XCanvas const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XCanvasFont const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XColorSpace const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XCustomSprite const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XGraphicDevice const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XIntegerBitmap const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XLinePolyPolygon2D const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XParametricPolyPolygon2D const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XParametricPolyPolygon2DFactory const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XPolyPolygon2D const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XSimpleCanvas const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XSprite const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XSpriteCanvas const*)
+com::sun::star::rendering::cppu_detail_getUnoType(com::sun::star::rendering::XTextLayout const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFixedLine const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFixedText const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFormatCondition const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFormattedField const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFunction const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFunctions const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XFunctionsSupplier const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XGroup const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XGroups const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XImageControl const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XReportComponent const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XReportControlFormat const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XReportControlModel const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XReportDefinition const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XReportEngine const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XSection const*)
+com::sun::star::report::cppu_detail_getUnoType(com::sun::star::report::XShape const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XResourceBundle const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XResourceBundleLoader const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XStringResourceManager const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XStringResourcePersistence const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XStringResourceResolver const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XStringResourceSupplier const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XStringResourceWithLocation const*)
+com::sun::star::resource::cppu_detail_getUnoType(com::sun::star::resource::XStringResourceWithStorage const*)
+com::sun::star::scanner::cppu_detail_getUnoType(com::sun::star::scanner::ScannerContext const*)
+com::sun::star::scanner::cppu_detail_getUnoType(com::sun::star::scanner::XScannerManager const*)
+com::sun::star::script::browse::cppu_detail_getUnoType(com::sun::star::script::browse::XBrowseNode const*)
+com::sun::star::script::browse::cppu_detail_getUnoType(com::sun::star::script::browse::XBrowseNodeFactory const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::ArrayWrapper const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::BasicErrorException const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::InvocationInfo const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::ModuleSizeExceededRequest const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::ScriptEventDescriptor const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XAllListener const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XDefaultMethod const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XDefaultProperty const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XEventAttacher const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XEventAttacherManager const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XInvocation const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XInvocation2 const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XInvocationAdapterFactory const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XInvocationAdapterFactory2 const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XLibraryContainer const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XLibraryContainer2 const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XLibraryContainerExport const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XLibraryContainerPassword const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XPersistentLibraryContainer const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XScriptEventsAttacher const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XScriptEventsSupplier const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XScriptListener const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XStarBasicAccess const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XStarBasicDialogInfo const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XStarBasicLibraryInfo const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XStarBasicModuleInfo const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XStorageBasedLibraryContainer const*)
+com::sun::star::script::cppu_detail_getUnoType(com::sun::star::script::XTypeConverter const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::ScriptErrorRaisedException const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::ScriptExceptionRaisedException const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::ScriptFrameworkErrorException const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::XScript const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::XScriptProvider const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::XScriptProviderFactory const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::XScriptProviderSupplier const*)
+com::sun::star::script::provider::cppu_detail_getUnoType(com::sun::star::script::provider::XScriptURIHelper const*)
+com::sun::star::sdb::application::cppu_detail_getUnoType(com::sun::star::sdb::application::XDatabaseDocumentUI const*)
+com::sun::star::sdb::application::cppu_detail_getUnoType(com::sun::star::sdb::application::XTableUIProvider const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::DocumentSaveRequest const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::ParametersRequest const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::SQLContext const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XBookmarksSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XColumn const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XColumnUpdate const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XCommandPreparation const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XCompletedConnection const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XCompletedExecution const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XDocumentDataSource const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XFormDocumentsSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XInteractionDocumentSave const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XInteractionSupplyParameters const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XOfficeDatabaseDocument const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XParametersSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XQueriesSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XQueryDefinitionsSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XReportDocumentsSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XResultSetAccess const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XRowSetApproveBroadcaster const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XRowSetApproveListener const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XRowSetSupplier const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XSQLErrorBroadcaster const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XSQLErrorListener const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XSQLQueryComposer const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XSQLQueryComposerFactory const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XSingleSelectQueryAnalyzer const*)
+com::sun::star::sdb::cppu_detail_getUnoType(com::sun::star::sdb::XSingleSelectQueryComposer const*)
+com::sun::star::sdb::tools::cppu_detail_getUnoType(com::sun::star::sdb::tools::XConnectionTools const*)
+com::sun::star::sdb::tools::cppu_detail_getUnoType(com::sun::star::sdb::tools::XDataSourceMetaData const*)
+com::sun::star::sdb::tools::cppu_detail_getUnoType(com::sun::star::sdb::tools::XObjectNames const*)
+com::sun::star::sdb::tools::cppu_detail_getUnoType(com::sun::star::sdb::tools::XTableName const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::DriverPropertyInfo const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::SQLException const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::SQLWarning const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XArray const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XBatchExecution const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XBlob const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XClob const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XCloseable const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XColumnLocate const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XConnection const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XDataSource const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XDatabaseMetaData const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XDatabaseMetaData2 const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XDriver const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XDriverAccess const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XDriverManager const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XGeneratedResultSet const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XIsolatedConnection const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XMultipleResults const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XOutParameters const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XParameters const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XPooledConnection const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XPreparedBatchExecution const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XPreparedStatement const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XRef const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XResultSet const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XResultSetMetaData const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XResultSetMetaDataSupplier const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XResultSetUpdate const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XRow const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XRowSet const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XRowSetListener const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XRowUpdate const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XStatement const*)
+com::sun::star::sdbc::cppu_detail_getUnoType(com::sun::star::sdbc::XWarningsSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XAlterTable const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XAppend const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XAuthorizable const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XColumnsSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XCreateCatalog const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XDataDefinitionSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XDataDescriptorFactory const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XDeleteRows const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XDrop const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XGroupsSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XIndexesSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XKeysSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XRename const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XRowLocate const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XTablesSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XUser const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XUsersSupplier const*)
+com::sun::star::sdbcx::cppu_detail_getUnoType(com::sun::star::sdbcx::XViewsSupplier const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::AllPermission const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::DocumentSignatureInformation const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::RuntimePermission const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::XCertificate const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::XCertificateExtension const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::XDocumentDigitalSignatures const*)
+com::sun::star::security::cppu_detail_getUnoType(com::sun::star::security::XPolicy const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::ComplexReference const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::ConditionOperator const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataImportMode const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataPilotFieldAutoShowInfo const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataPilotFieldGroupInfo const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataPilotFieldLayoutInfo const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataPilotFieldOrientation const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataPilotFieldReference const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataPilotFieldSortInfo const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::DataResult const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::FormulaOpCodeMapEntry const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::FormulaToken const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::FunctionArgument const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::GeneralFunction const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::MemberResult const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::SingleReference const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::SubTotalColumn const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::TableFilterField const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::TablePageBreakData const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::ValidationAlertStyle const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::ValidationType const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XActivationBroadcaster const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XAreaLink const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XAreaLinks const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XArrayFormulaRange const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XArrayFormulaTokens const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCalculatable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellAddressable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellFormatRangesSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangeAddressable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangeData const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangeFormula const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangeMovement const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangeReferrer const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangesAccess const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellRangesQuery const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XCellSeries const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XConsolidatable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XConsolidationDescriptor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDDELink const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotDescriptor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotField const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotFieldGrouping const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotMemberResults const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotResults const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotTable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotTables const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDataPilotTablesSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDatabaseRange const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDatabaseRanges const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDimensionsSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XDocumentAuditing const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XEnhancedMouseClickBroadcaster const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XFormulaOpCodeMapper const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XFormulaParser const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XFormulaQuery const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XFormulaTokens const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XFunctionAccess const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XFunctionDescriptions const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XGoalSeek const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XHeaderFooterContent const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XHierarchiesSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XLabelRange const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XLabelRanges const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XLevelsSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XMembersSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XMultiFormulaTokens const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XMultipleOperation const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XNamedRange const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XNamedRanges const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XPrintAreas const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XRangeSelection const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XRangeSelectionListener const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XRecentFunctions const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XResultListener const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XScenario const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XScenarioEnhanced const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XScenarios const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XScenariosSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetAnnotation const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetAnnotationAnchor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetAnnotationShapeSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetAnnotations const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetAnnotationsSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetAuditing const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetCellCursor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetCellRange const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetCellRangeContainer const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetCellRanges const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetCondition const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetConditionalEntries const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetConditionalEntry const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetFilterDescriptor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetFilterable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetFilterableEx const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetLinkable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetOperation const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetOutline const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSheetPageBreak const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSpreadsheet const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSpreadsheetDocument const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSpreadsheetView const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSpreadsheets const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSubTotalCalculatable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSubTotalDescriptor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XSubTotalField const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XUniqueCellFormatRangesSupplier const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XUsedAreaCursor const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XViewFreezable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XViewPane const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XViewSplitable const*)
+com::sun::star::sheet::cppu_detail_getUnoType(com::sun::star::sheet::XVolatileResult const*)
+com::sun::star::smarttags::cppu_detail_getUnoType(com::sun::star::smarttags::XSmartTagAction const*)
+com::sun::star::smarttags::cppu_detail_getUnoType(com::sun::star::smarttags::XSmartTagRecognizer const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::BreakType const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::DropCapFormat const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::GraphicLocation const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::LineSpacing const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::PageStyleLayout const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::ParagraphAdjust const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::TabAlign const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::VerticalAlignment const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::XAutoStyle const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::XAutoStyleFamily const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::XAutoStyles const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::XAutoStylesSupplier const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::XStyleLoader const*)
+com::sun::star::style::cppu_detail_getUnoType(com::sun::star::style::XStyleSupplier const*)
+com::sun::star::svg::cppu_detail_getUnoType(com::sun::star::svg::XSVGPrinter const*)
+com::sun::star::sync2::cppu_detail_getUnoType(com::sun::star::sync2::BadPartnershipException const*)
+com::sun::star::system::cppu_detail_getUnoType(com::sun::star::system::XSimpleMailClient const*)
+com::sun::star::system::cppu_detail_getUnoType(com::sun::star::system::XSimpleMailClientSupplier const*)
+com::sun::star::system::cppu_detail_getUnoType(com::sun::star::system::XSimpleMailMessage const*)
+com::sun::star::system::cppu_detail_getUnoType(com::sun::star::system::XSystemShellExecute const*)
+com::sun::star::table::BorderLine* _STL::__uninitialized_copy<com::sun::star::table::BorderLine*, com::sun::star::table::BorderLine*>(com::sun::star::table::BorderLine*, com::sun::star::table::BorderLine*, com::sun::star::table::BorderLine*, _STL::__false_type const&)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::BorderLine const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::CellAddress const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::CellContentType const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::CellHoriJustify const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::CellOrientation const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::CellRangeAddress const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::CellVertJustify const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::ShadowFormat const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::ShadowLocation const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::TableBorder const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::TableOrientation const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::TableSortField const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XAutoFormattable const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XCell const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XCellCursor const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XCellRange const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XColumnRowRange const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XTableChart const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XTableCharts const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XTableChartsSupplier const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XTableColumns const*)
+com::sun::star::table::cppu_detail_getUnoType(com::sun::star::table::XTableRows const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::DocumentPasswordRequest const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::ErrorCodeIOException const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::ErrorCodeRequest const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::MasterPasswordRequest const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::PasswordRequest const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::UrlRecord const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::UserRecord const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XAbortChannel const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XAsyncJob const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionAbort const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionApprove const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionContinuation const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionDisapprove const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionHandler const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionPassword const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionRequest const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionRequestStringResolver const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XInteractionRetry const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XJob const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XJobExecutor const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XJobListener const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XPasswordContainer const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XStatusIndicatorFactory const*)
+com::sun::star::task::cppu_detail_getUnoType(com::sun::star::task::XStatusIndicatorSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::GraphicCrop const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::HorizontalAdjust const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::NotePrintMode const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::PageNumberType const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::SectionFileLink const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::TableColumnSeparator const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::TextColumn const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::TextContentAnchorType const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::WrapTextMode const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::WritingMode const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XAutoTextContainer const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XAutoTextEntry const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XAutoTextGroup const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XBookmarksSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XChapterNumberingSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XDefaultNumberingProvider const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XDependentTextField const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XDocumentIndex const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XDocumentIndexMark const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XDocumentIndexesSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XEndnotesSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XFootnote const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XFootnotesSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XLineNumberingProperties const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XMailMergeBroadcaster const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XMailMergeListener const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XModule const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XNumberingFormatter const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XNumberingRulesSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XNumberingTypeInfo const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XPageCursor const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XPagePrintable const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XParagraphAppend const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XParagraphCursor const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XReferenceMarksSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XRelativeTextContentInsert const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XRelativeTextContentRemove const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XRubySelection const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XSentenceCursor const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XText const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextAppend const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextAppendAndConvert const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextColumns const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextContentAppend const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextConvert const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextCursor const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextDocument const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextEmbeddedObjectsSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextFieldsSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextFrame const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextFramesSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextGraphicObjectsSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextMarkup const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextPortionAppend const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextRangeCompare const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextRangeMover const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextSection const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextSectionsSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextTable const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextTableCursor const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextTablesSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextViewCursor const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XTextViewCursorSupplier const*)
+com::sun::star::text::cppu_detail_getUnoType(com::sun::star::text::XWordCursor const*)
+com::sun::star::ucb::OpenCommandArgument::~OpenCommandArgument()
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::AuthenticationRequest const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::CHAOSProgressStart const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::CommandAbortedException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::CommandFailedException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::CommandInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::ContentInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::ContentProviderInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::Cookie const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::CrossReference const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::DocumentHeaderField const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::GlobalTransferCommandArgument const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::HandleCookiesRequest const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InsertCommandArgument const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveAppException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveAugmentedIOException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveBadTransferURLException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveCHAOSException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveIOException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkConnectException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkGeneralException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkOffLineException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkReadException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkResolveNameException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveNetworkWriteException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::InteractiveWrongMediumException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::Link const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::ListAction const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::Lock const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::LockEntry const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::MissingInputStreamException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::MissingPropertiesException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::NameClashException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::NameClashResolveRequest const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::NumberedSortingInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::OpenCommandArgument const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::OpenCommandArgument2 const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::PostCommandArgument const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::PostCommandArgument2 const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::RecipientInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::RememberAuthentication const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::RuleSet const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::SendInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::SendMediaTypes const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::TransferInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::TransferResult const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::UnsupportedCommandException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::UnsupportedDataSinkException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::UnsupportedNameClashException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::UnsupportedOpenModeException const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::WelcomeDynamicResultSetStruct const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XAnyCompare const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XAnyCompareFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCachedContentResultSetFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCachedContentResultSetStubFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCachedDynamicResultSetFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCachedDynamicResultSetStubFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCommandEnvironment const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCommandInfo const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCommandInfoChangeListener const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCommandInfoChangeNotifier const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCommandProcessor const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XCommandProcessor2 const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContent const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentAccess const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentCreator const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentEventListener const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentIdentifier const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentIdentifierFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentProvider const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentProviderFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentProviderManager const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XContentProviderSupplier const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XDataContainer const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XDynamicResultSet const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XDynamicResultSetListener const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XFetchProvider const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XFetchProviderForContentAccess const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XFileIdentifierConverter const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XInteractionCookieHandling const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XInteractionReplaceExistingData const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XInteractionSupplyAuthentication const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XInteractionSupplyName const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XParameterizedContentProvider const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XPersistentPropertySet const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XProgressHandler const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XPropertySetRegistry const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XPropertySetRegistryFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XSimpleFileAccess const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XSimpleFileAccess2 const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XSimpleFileAccess3 const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XSortedDynamicResultSetFactory const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XSourceInitialization const*)
+com::sun::star::ucb::cppu_detail_getUnoType(com::sun::star::ucb::XWebDAVCommandEnvironment const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::DockingArea const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XAcceleratorConfiguration const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XContextMenuInterception const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XDockingAreaAcceptor const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XImageManager const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XModuleUIConfigurationManager const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XModuleUIConfigurationManagerSupplier const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIConfiguration const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIConfigurationListener const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIConfigurationManager const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIConfigurationManagerSupplier const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIConfigurationPersistence const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIConfigurationStorage const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIElement const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIElementFactory const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIElementFactoryRegistration const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIElementSettings const*)
+com::sun::star::ui::cppu_detail_getUnoType(com::sun::star::ui::XUIFunctionListener const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XAsynchronousExecutableDialog const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XControlAccess const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XControlInformation const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XDialogClosedListener const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilePicker const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilePickerControlAccess const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilePickerListener const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilePickerNotifier const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilePickerWorkaround const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilePreview const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilterGroupManager const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFilterManager const*)
+com::sun::star::ui::dialogs::cppu_detail_getUnoType(com::sun::star::ui::dialogs::XFolderPicker const*)
+com::sun::star::uno::OWeakRefListener::OWeakRefListener()
+com::sun::star::uno::Reference<com::sun::star::drawing::framework::XPane>::~Reference()
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::beans::Property>(cppu::UnoSequenceType<com::sun::star::beans::Property> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::beans::PropertyChangeEvent>(cppu::UnoSequenceType<com::sun::star::beans::PropertyChangeEvent> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::beans::PropertyValue>(cppu::UnoSequenceType<com::sun::star::beans::PropertyValue> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::bridge::ProtocolProperty>(cppu::UnoSequenceType<com::sun::star::bridge::ProtocolProperty> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::reflection::ParamInfo>(cppu::UnoSequenceType<com::sun::star::reflection::ParamInfo> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::sheet::LocalizedName>(cppu::UnoSequenceType<com::sun::star::sheet::LocalizedName> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Any>(cppu::UnoSequenceType<com::sun::star::uno::Any> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::bridge::XBridge> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::bridge::XBridge> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::reflection::XIdlClass> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::reflection::XIdlClass> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::reflection::XIdlField> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::reflection::XIdlField> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::reflection::XIdlMethod> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::reflection::XIdlMethod> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::reflection::XInterfaceMemberTypeDescription> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::reflection::XInterfaceMemberTypeDescription> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::reflection::XMethodParameter> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::reflection::XMethodParameter> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::reflection::XTypeDescription> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::reflection::XTypeDescription> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> >(cppu::UnoSequenceType<com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::uno::Type>(cppu::UnoSequenceType<com::sun::star::uno::Type> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<com::sun::star::xml::Attribute>(cppu::UnoSequenceType<com::sun::star::xml::Attribute> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<cppu::UnoCharType>(cppu::UnoSequenceType<cppu::UnoCharType> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<cppu::UnoSequenceType<double> >(cppu::UnoSequenceType<cppu::UnoSequenceType<double> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<cppu::UnoSequenceType<int> >(cppu::UnoSequenceType<cppu::UnoSequenceType<int> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<cppu::UnoSequenceType<rtl::OUString> >(cppu::UnoSequenceType<cppu::UnoSequenceType<rtl::OUString> > const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<cppu::UnoUnsignedShortType>(cppu::UnoSequenceType<cppu::UnoUnsignedShortType> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<double>(cppu::UnoSequenceType<double> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<int>(cppu::UnoSequenceType<int> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<rtl::OUString>(cppu::UnoSequenceType<rtl::OUString> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<signed char>(cppu::UnoSequenceType<signed char> const*)
+com::sun::star::uno::Type const& cppu::detail::cppu_detail_getUnoType<test::testtools::bridgetest::TestElement>(cppu::UnoSequenceType<test::testtools::bridgetest::TestElement> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<com::sun::star::uno::Any>(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<com::sun::star::uno::Reference<com::sun::star::lang::XComponent> >(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::lang::XComponent> > const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> > const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<com::sun::star::uno::Sequence<int> >(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<int> > const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<com::sun::star::uno::Type>(com::sun::star::uno::Sequence<com::sun::star::uno::Type> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<double>(com::sun::star::uno::Sequence<double> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<float>(com::sun::star::uno::Sequence<float> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<int>(com::sun::star::uno::Sequence<int> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<long>(com::sun::star::uno::Sequence<long> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<rtl::OUString>(com::sun::star::uno::Sequence<rtl::OUString> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<short>(com::sun::star::uno::Sequence<short> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<signed char>(com::sun::star::uno::Sequence<signed char> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<test::testtools::bridgetest::TestEnum>(com::sun::star::uno::Sequence<test::testtools::bridgetest::TestEnum> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<test::testtools::bridgetest::TestPolyStruct2<test::testtools::bridgetest::TestPolyStruct<unsigned short>, com::sun::star::uno::Sequence<com::sun::star::uno::Any> > >(com::sun::star::uno::Sequence<test::testtools::bridgetest::TestPolyStruct2<test::testtools::bridgetest::TestPolyStruct<unsigned short>, com::sun::star::uno::Sequence<com::sun::star::uno::Any> > > const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<test::testtools::bridgetest::TestPolyStruct2<unsigned short, com::sun::star::uno::Sequence<com::sun::star::uno::Any> > >(com::sun::star::uno::Sequence<test::testtools::bridgetest::TestPolyStruct2<unsigned short, com::sun::star::uno::Sequence<com::sun::star::uno::Any> > > const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<unsigned char>(com::sun::star::uno::Sequence<unsigned char> const*)
+com::sun::star::uno::Type const& cppu::getTypeFavourChar<unsigned short>(com::sun::star::uno::Sequence<unsigned short> const*)
+com::sun::star::uno::cppu_detail_getUnoType(com::sun::star::uno::XNamingService const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XExternalUriReferenceTranslator const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XUriReference const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XUriReferenceFactory const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XUriSchemeParser const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XVndSunStarExpandUrl const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XVndSunStarExpandUrlReference const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XVndSunStarPkgUrlReferenceFactory const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XVndSunStarScriptUrl const*)
+com::sun::star::uri::cppu_detail_getUnoType(com::sun::star::uri::XVndSunStarScriptUrlReference const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::AliasProgrammaticPair const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::AtomClassRequest const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::AtomDescription const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::CellProtection const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::DateTime const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::DateTimeRange const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::ElementChange const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::MalformedNumberFormatException const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::NotNumericException const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::RevisionTag const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::SortField const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::Time const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::URL const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XArchiver const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XAtomServer const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XChangesListener const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XChangesNotifier const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XCloneable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XCloseBroadcaster const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XCloseListener const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XCloseable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XFlushListener const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XFlushable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XImportable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XIndent const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XJobManager const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XLinkUpdate const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XMergeable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModeChangeBroadcaster const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModeChangeListener const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModeSelector const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModifiable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModifiable2 const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModifyBroadcaster const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XModifyListener const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XNumberFormatPreviewer const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XOfficeInstallationDirectories const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XPropertyReplace const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XProtectable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XRefreshListener const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XRefreshable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XReplaceDescriptor const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XReplaceable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XSearchDescriptor const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XSearchable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XSortable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XStringAbbreviation const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XStringEscape const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XStringMapping const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XStringSubstitution const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XStringWidth const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XTextSearch const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XTimeStamped const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XUpdatable const*)
+com::sun::star::util::cppu_detail_getUnoType(com::sun::star::util::XVeto const*)
+com::sun::star::util::logging::cppu_detail_getUnoType(com::sun::star::util::logging::XLogger const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::PaperFormat const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::PaperOrientation const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::SelectionType const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XControlAccess const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XFormLayerAccess const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XLineCursor const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XPrintJob const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XPrintJobBroadcaster const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XPrintJobListener const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XPrintSettingsSupplier const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XPrintable const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XRenderable const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XScreenCursor const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XSelectionChangeListener const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XSelectionSupplier const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XViewCursor const*)
+com::sun::star::view::cppu_detail_getUnoType(com::sun::star::view::XViewSettingsSupplier const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::InvalidDataOnSubmitException const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::XDataTypeRepository const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::XFormsEvent const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::XFormsSupplier const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::XFormsUIHelper1 const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::XModel const*)
+com::sun::star::xforms::cppu_detail_getUnoType(com::sun::star::xforms::XSubmission const*)
+com::sun::star::xml::cppu_detail_getUnoType(com::sun::star::xml::AttributeData const*)
+com::sun::star::xml::cppu_detail_getUnoType(com::sun::star::xml::XExportFilter const*)
+com::sun::star::xml::cppu_detail_getUnoType(com::sun::star::xml::XImportFilter const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XSEInitializer const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XSecurityEnvironment const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XUriBinding const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XXMLEncryption const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XXMLEncryptionTemplate const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XXMLSecurityContext const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XXMLSignature const*)
+com::sun::star::xml::crypto::cppu_detail_getUnoType(com::sun::star::xml::crypto::XXMLSignatureTemplate const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XBlockerMonitor const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XDecryptionResultBroadcaster const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XDecryptionResultListener const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XEncryptionResultBroadcaster const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XEncryptionResultListener const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XKeyCollector const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XMissionTaker const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XReferenceCollector const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XReferenceResolvedBroadcaster const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XReferenceResolvedListener const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSAXEventKeeper const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSAXEventKeeperStatusChangeBroadcaster const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSAXEventKeeperStatusChangeListener const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSecurityController const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSecuritySAXEventKeeper const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSignatureCreationResultBroadcaster const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSignatureCreationResultListener const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSignatureVerifyResultBroadcaster const*)
+com::sun::star::xml::crypto::sax::cppu_detail_getUnoType(com::sun::star::xml::crypto::sax::XSignatureVerifyResultListener const*)
+com::sun::star::xml::csax::cppu_detail_getUnoType(com::sun::star::xml::csax::XCompressedDocumentHandler const*)
+com::sun::star::xml::csax::cppu_detail_getUnoType(com::sun::star::xml::csax::XMLAttribute const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XAttr const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XCDATASection const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XCharacterData const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XComment const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XDOMImplementation const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XDocument const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XDocumentBuilder const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XDocumentFragment const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XDocumentType const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XElement const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XEntity const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XEntityReference const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XNamedNodeMap const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XNode const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XNodeList const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XNotation const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XProcessingInstruction const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XSAXDocumentBuilder const*)
+com::sun::star::xml::dom::cppu_detail_getUnoType(com::sun::star::xml::dom::XText const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XDocumentEvent const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XEvent const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XEventListener const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XEventTarget const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XMouseEvent const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XMutationEvent const*)
+com::sun::star::xml::dom::events::cppu_detail_getUnoType(com::sun::star::xml::dom::events::XUIEvent const*)
+com::sun::star::xml::input::cppu_detail_getUnoType(com::sun::star::xml::input::XAttributes const*)
+com::sun::star::xml::input::cppu_detail_getUnoType(com::sun::star::xml::input::XElement const*)
+com::sun::star::xml::input::cppu_detail_getUnoType(com::sun::star::xml::input::XNamespaceMapping const*)
+com::sun::star::xml::input::cppu_detail_getUnoType(com::sun::star::xml::input::XRoot const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::InputSource const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::SAXException const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::SAXParseException const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XAttributeList const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XEntityResolver const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XErrorHandler const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XExtendedDocumentHandler const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XLocator const*)
+com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XParser const*)
+com::sun::star::xml::wrapper::cppu_detail_getUnoType(com::sun::star::xml::wrapper::XXMLDocumentWrapper const*)
+com::sun::star::xml::wrapper::cppu_detail_getUnoType(com::sun::star::xml::wrapper::XXMLElementWrapper const*)
+com::sun::star::xml::xpath::cppu_detail_getUnoType(com::sun::star::xml::xpath::XXPathAPI const*)
+com::sun::star::xml::xpath::cppu_detail_getUnoType(com::sun::star::xml::xpath::XXPathExtension const*)
+com::sun::star::xml::xpath::cppu_detail_getUnoType(com::sun::star::xml::xpath::XXPathObject const*)
+com::sun::star::xsd::cppu_detail_getUnoType(com::sun::star::xsd::XDataType const*)
+comphelper::AccessibleEventBuffer::AccessibleEventBuffer()
+comphelper::AccessibleEventBuffer::sendEvents() const
+comphelper::AttributeList::RemoveAttribute(rtl::OUString)
+comphelper::AttributeList::SetAttributeList(com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&)
+comphelper::ChainablePropertySet::lockMutex()
+comphelper::ChainablePropertySet::unlockMutex()
+comphelper::ChainablePropertySetInfo::ChainablePropertySetInfo()
+comphelper::EmbeddedObjectContainer::CopyEmbeddedObject(comphelper::EmbeddedObjectContainer&, com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&, rtl::OUString&)
+comphelper::EventLogger::addLogHandler(com::sun::star::uno::Reference<com::sun::star::logging::XLogHandler> const&)
+comphelper::EventLogger::getLogLevel() const
+comphelper::EventLogger::getName() const
+comphelper::EventLogger::removeLogHandler(com::sun::star::uno::Reference<com::sun::star::logging::XLogHandler> const&)
+comphelper::EventLogger::setLogLevel(int) const
+comphelper::ItemConverter::IsValid() const
+comphelper::Locale::AR()
+comphelper::Locale::CA()
+comphelper::Locale::CS()
+comphelper::Locale::DA()
+comphelper::Locale::DE_AT()
+comphelper::Locale::DE_CH()
+comphelper::Locale::DE_DE()
+comphelper::Locale::EL()
+comphelper::Locale::ES()
+comphelper::Locale::FI()
+comphelper::Locale::FR()
+comphelper::Locale::HE()
+comphelper::Locale::HI_IN()
+comphelper::Locale::HU()
+comphelper::Locale::IT()
+comphelper::Locale::JA()
+comphelper::Locale::KO()
+comphelper::Locale::NL()
+comphelper::Locale::PL()
+comphelper::Locale::PT()
+comphelper::Locale::PT_BR()
+comphelper::Locale::RU()
+comphelper::Locale::SK()
+comphelper::Locale::SL()
+comphelper::Locale::SV()
+comphelper::Locale::TH()
+comphelper::Locale::TR()
+comphelper::Locale::X_COMMENT()
+comphelper::Locale::X_TRANSLATE()
+comphelper::Locale::ZH_CN()
+comphelper::Locale::ZH_TW()
+comphelper::Locale::getFallback(comphelper::Locale&)
+comphelper::Locale::getLanguage() const
+comphelper::Locale::getVariant() const
+comphelper::MasterPropertySet::lockMutex()
+comphelper::MasterPropertySet::unlockMutex()
+comphelper::MasterPropertySetInfo::MasterPropertySetInfo()
+comphelper::MasterPropertySetInfo::remove(rtl::OUString const&)
+comphelper::MediaDescriptor::MediaDescriptor(com::sun::star::uno::Any const&)
+comphelper::MediaDescriptor::MediaDescriptor(com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&)
+comphelper::MediaDescriptor::PROP_CHARACTERSET()
+comphelper::MediaDescriptor::PROP_DEEPDETECTION()
+comphelper::MediaDescriptor::PROP_DETECTSERVICE()
+comphelper::MediaDescriptor::PROP_EXTENSION()
+comphelper::MediaDescriptor::PROP_FILTEROPTIONS()
+comphelper::MediaDescriptor::PROP_FORMAT()
+comphelper::MediaDescriptor::PROP_PATTERN()
+comphelper::MediaDescriptor::PROP_POSSIZE()
+comphelper::MediaDescriptor::PROP_POSTSTRING()
+comphelper::MediaDescriptor::PROP_REPAIRPACKAGE()
+comphelper::MediaDescriptor::PROP_SILENT()
+comphelper::MediaDescriptor::PROP_TEMPLATEREGIONNAME()
+comphelper::MediaDescriptor::PROP_VIEWID()
+comphelper::MimeConfigurationHelper::AddFilterNameCheckOwnFile(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&)
+comphelper::MimeConfigurationHelper::GetSequenceClassIDFromObjectName(rtl::OUString const&)
+comphelper::NamedValueCollection::empty() const
+comphelper::NamedValueCollection::impl_has(rtl::OUString const&) const
+comphelper::NamedValueCollection::impl_remove(rtl::OUString const&)
+comphelper::NamedValueCollection::size() const
+comphelper::OAccessibleImplementationAccess::setAccessibleParent(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext> const&, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> const&)
+comphelper::OAccessibleImplementationAccess::setForeignControlledState(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext> const&, short, unsigned char)
+comphelper::OAccessibleSelectionHelper::OAccessibleSelectionHelper()
+comphelper::OAccessibleTextHelper::OAccessibleTextHelper()
+comphelper::OComposedPropertySet::OComposedPropertySet(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> > const&, comphelper::IPropertySetComposerCallback const*)
+comphelper::OContainerListenerAdapter::lock()
+comphelper::OContainerListenerAdapter::unlock()
+comphelper::OEnumeration::OEnumeration(_STL::vector<com::sun::star::uno::Any, _STL::allocator<com::sun::star::uno::Any> > const&)
+comphelper::OIndexContainer::OIndexContainer(osl::Mutex&)
+comphelper::OInteractionRequest::clearContinuations()
+comphelper::OModuleImpl::~OModuleImpl()
+comphelper::OPropertyContainerHelper::modifyAttributes(int, int, int)
+comphelper::OSLInputStreamWrapper::OSLInputStreamWrapper(osl::File*, unsigned char)
+comphelper::OSelectionChangeListener::disposeAdapter()
+comphelper::OSequenceOutputStream::OSequenceOutputStream(com::sun::star::uno::Sequence<signed char>&, double, int, int)
+comphelper::OStorageHelper::GetStorageOfFormatFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+comphelper::OStorageHelper::GetTemporaryStorageOfFormat(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+comphelper::OTruncatedTransactedFileStream::OTruncatedTransactedFileStream(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+comphelper::OTruncatedTransactedFileStream::OTruncatedTransactedFileStream(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XSimpleFileAccess> const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+comphelper::OTruncatedTransactedFileStream::OTruncatedTransactedFileStream(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XSimpleFileAccess> const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, unsigned char)
+comphelper::OfficeResourceBundle::OfficeResourceBundle(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&)
+comphelper::PropertySetHelper::PropertySetHelper()
+comphelper::PropertySetHelper::setInfo(comphelper::PropertySetInfo*)
+comphelper::ScopeGuard::dismiss()
+comphelper::createProcessComponentWithArguments(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)
+comphelper::getPathToSystemRegistry()
+comphelper::getPathToUserRegistry()
+comphelper::getStandardFormat(com::sun::star::uno::Reference<com::sun::star::util::XNumberFormatter> const&, short, com::sun::star::lang::Locale const&)
+comphelper::isDerivedFrom(com::sun::star::uno::Type const&, com::sun::star::uno::Type const&)
+component_canUnload
+component_getFactory
+component_getImplementationEnvironment
+component_writeInfo
+configmgr::AnyPair::AnyPair()
+configmgr::AnyPair::setValue(com::sun::star::uno::Any const&, configmgr::AnyPair::SelectMember)
+configmgr::BufferedFileInputStream::BufferedFileInputStream(rtl::OUString const&)
+configmgr::BufferedInputFile::getPos(unsigned long&)
+configmgr::CacheClientAccess::isEmpty()
+configmgr::CacheData::extractModuleName(configmgr::configuration::AbsolutePath const&)
+configmgr::CacheLoadingAccess::applyUpdate(configmgr::backend::UpdateInstance&)
+configmgr::CacheLoadingAccess::findNode(configmgr::configuration::AbsolutePath const&)
+configmgr::ComponentContext::changeBootstrapURL(rtl::OUString const&)
+configmgr::ComponentContext::getBaseContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+configmgr::ContextReader::isBootstrapContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+configmgr::FileHelper::delimiterAsString()
+configmgr::FileHelper::getModifyTime(rtl::OUString const&)
+configmgr::FileHelper::removeFile(rtl::OUString const&)
+configmgr::OConfigurationRegistryKey::OConfigurationRegistryKey(com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> const&, rtl::OUString const&, unsigned char)
+configmgr::ONameCreator::buildPath() const
+configmgr::OProviderImpl::FactoryArguments::getArgumentName(configmgr::OProviderImpl::FactoryArguments::Argument)
+configmgr::OProviderImpl::getWriterFactory()
+configmgr::OTreeChangeFactory::createGroupNodeChange(rtl::OUString const&, configmgr::node::Attributes, bool)
+configmgr::OTreeChangeFactory::createValueChange(com::sun::star::uno::Any const&, configmgr::ValueNode const&)
+configmgr::OTreeChangeFactory::createValueChange(configmgr::ValueChange::SetToDefault, configmgr::ValueNode const&)
+configmgr::OTreeChangeFactory::createValueChange(configmgr::ValueNode const&, bool)
+configmgr::OTreeChangeFactory::createValueChange(rtl::OUString const&, configmgr::node::Attributes, configmgr::ValueChange::Mode, com::sun::star::uno::Any const&, com::sun::star::uno::Any const&)
+configmgr::OTreeNodeConverter::createCorrespondingNode(configmgr::Change&)
+configmgr::OTreeNodeFactory::createDummyTree(configmgr::configuration::Name const&, configmgr::configuration::Name const&)
+configmgr::RequestOptions::forAllLocales()
+configmgr::RequestOptions::hashCode() const
+configmgr::SearchNode::SearchNode()
+configmgr::SimpleTypeHelper::getByteType()
+configmgr::TimeStamp::always()
+configmgr::ValueChange::applyTo(configmgr::ValueNode&)
+configmgr::ValueChange::getModeAsString() const
+configmgr::ValueChange::setModeAsString(rtl::OUString const&)
+configmgr::adjustUpdate(configmgr::TreeChangeList&, configmgr::sharable::Node* const&)
+configmgr::apihelper::InteractionRequest::InteractionRequest()
+configmgr::apihelper::InteractionRequest::setRequest(com::sun::star::uno::Any const&)
+configmgr::applyLayerUpdate(configmgr::TreeChangeList const&, configmgr::TreeChangeList&)
+configmgr::applyUpdateWithAdjustment(configmgr::TreeChangeList&, configmgr::sharable::Node* const&)
+configmgr::backend::BinaryReadHandler::readString(rtl::OUString&)
+configmgr::backend::BinaryReader::close()
+configmgr::backend::BinaryReader::reopen()
+configmgr::backend::BinaryWriteHandler::writeType(com::sun::star::uno::Type const&)
+configmgr::backend::DataBuilderContext::raiseIllegalAccessException(char const*) const
+configmgr::backend::DataBuilderContext::raiseNoSupportException(char const*) const
+configmgr::backend::DataBuilderContext::raiseUnknownPropertyException(char const*, rtl::OUString const&) const
+configmgr::backend::DataBuilderContext::stripComponent(com::sun::star::configuration::backend::TemplateIdentifier const&) const
+configmgr::backend::LayerMergeHandler::result()
+configmgr::backend::LayerMergeHandler::result() const
+configmgr::backend::LayerUpdateBuilder::isComplete() const
+configmgr::backend::LayerUpdateMerger::illegalUpdate(char const*)
+configmgr::backend::NodeUpdate::clear(bool)
+configmgr::backend::PropertyUpdate::clear()
+configmgr::backend::SchemaBuilder::result()
+configmgr::backend::SchemaBuilder::result() const
+configmgr::backend::SingleBackendAdapter::getName()
+configmgr::backend::SingleBackendAdapter::getServices()
+configmgr::backend::StringResolver::resolveName(rtl::OUString&)
+configmgr::cloneForLocale(configmgr::INode const*, rtl::OUString const&)
+configmgr::configapi::ApiTreeImpl::ApiTreeImpl(com::sun::star::uno::XInterface*, configmgr::configuration::TreeRef const&, configmgr::configapi::ApiTreeImpl&)
+configmgr::configapi::ApiTreeImpl::ComponentAdapter::getParent() const
+configmgr::configapi::DisposeGuard::DisposeGuard(configmgr::configapi::TreeElement&)
+configmgr::configapi::DisposeGuardImpl::DisposeGuardImpl(configmgr::configapi::NotifierImpl&)
+configmgr::configapi::Factory::revokeElement(configmgr::configuration::NodeID const&, configmgr::configapi::NodeElement&)
+configmgr::configapi::GuardedNotifier::GuardedNotifier(configmgr::configapi::Notifier const&)
+configmgr::configapi::GuardedNotifier::GuardedNotifier(configmgr::configapi::TreeElement&)
+configmgr::configapi::Notifier::add(configmgr::configuration::NodeRef const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener> const&) const
+configmgr::configapi::fillEventData(com::sun::star::beans::PropertyChangeEvent&, configmgr::configuration::NodeChangeInformation const&, configmgr::configapi::Factory&, bool)
+configmgr::configapi::fillEventData(com::sun::star::container::ContainerEvent&, configmgr::configuration::NodeChangeInformation const&, configmgr::configapi::Factory&)
+configmgr::configapi::fillEventSource(com::sun::star::lang::EventObject&, configmgr::configuration::Tree const&, configmgr::configuration::NodeRef const&, configmgr::configapi::Factory&)
+configmgr::configapi::findSetElement(configmgr::configapi::Factory&, configmgr::configuration::ElementRef const&)
+configmgr::configapi::implSetToDefaultAsProperty(configmgr::configapi::NodeAccess&)
+configmgr::configapi::resolveChangeLocation(configmgr::configuration::RelativePath&, configmgr::configuration::NodeChangeLocation const&, configmgr::configuration::Tree const&)
+configmgr::configuration::AbsolutePath::isDetached() const
+configmgr::configuration::CommitHelper::reset()
+configmgr::configuration::CommitHelper::revertCommit(configmgr::TreeChangeList&)
+configmgr::configuration::ConstraintViolation::ConstraintViolation()
+configmgr::configuration::ElementHelper::getUnoType(configmgr::configuration::ElementTree const&)
+configmgr::configuration::ElementRef::getName() const
+configmgr::configuration::ElementTree::getOwnedElement(configmgr::configuration::ElementTree const&)
+configmgr::configuration::ElementTree::getTemplate() const
+configmgr::configuration::Exception::Exception()
+configmgr::configuration::GroupDefaulter::isDataAvailable()
+configmgr::configuration::InvalidName::InvalidName(rtl::OUString const&)
+configmgr::configuration::NodeChange::getAffectedNodeID() const
+configmgr::configuration::NodeChange::getBaseNode() const
+configmgr::configuration::NodeChange::getBaseTree() const
+configmgr::configuration::NodeChangeData::getNewElementNodeRef() const
+configmgr::configuration::NodeChangeData::getOldElementNodeRef() const
+configmgr::configuration::NodeChangeLocation::getAffectedNode() const
+configmgr::configuration::NodeChangeLocation::getAffectedTree() const
+configmgr::configuration::NodeChangeLocation::isValidData() const
+configmgr::configuration::NodeChanges::implApply() const
+configmgr::configuration::Path::Component::splitCompositeName(configmgr::configuration::Name&, configmgr::configuration::Name&) const
+configmgr::configuration::Path::Component::splitCompositeName(rtl::OUString&, rtl::OUString&) const
+configmgr::configuration::SpecialTemplateProvider::SpecialTemplateProvider()
+configmgr::configuration::SpecialTemplateProvider::~SpecialTemplateProvider()
+configmgr::configuration::SubNodeID::SubNodeID(configmgr::configuration::Tree const&, configmgr::configuration::NodeRef const&, configmgr::configuration::Name const&)
+configmgr::configuration::SubNodeID::SubNodeID(configmgr::configuration::Tree const&, configmgr::configuration::ValueRef const&)
+configmgr::configuration::SubNodeID::hashCode() const
+configmgr::configuration::SubNodeID::isEmpty() const
+configmgr::configuration::TemplateInfo::getTemplateName() const
+configmgr::configuration::TemplateInfo::getTemplatePackage() const
+configmgr::configuration::TemplateName::makeLocalizedTypeModuleName()
+configmgr::configuration::Tree::getName(configmgr::configuration::AnyNodeRef const&) const
+configmgr::configuration::Tree::getParent(configmgr::configuration::AnyNodeRef const&) const
+configmgr::configuration::Tree::isValidNode(configmgr::configuration::AnyNodeRef const&) const
+configmgr::configuration::Tree::visit(configmgr::configuration::AnyNodeRef const&, configmgr::configuration::NodeVisitor&) const
+configmgr::configuration::TreeImpl::asRootTree()
+configmgr::configuration::TreeImpl::asRootTree() const
+configmgr::configuration::TreeImplHelper::makeAnyNode(configmgr::configuration::Name const&, unsigned int)
+configmgr::configuration::TreeImplHelper::makeAnyNode(unsigned int, unsigned int)
+configmgr::configuration::TypeMismatch::TypeMismatch()
+configmgr::configuration::TypeMismatch::TypeMismatch(rtl::OUString const&)
+configmgr::configuration::WrappedUnoException::WrappedUnoException(com::sun::star::uno::Any const&)
+configmgr::configuration::hasChildOrElement(configmgr::configuration::Tree const&, configmgr::configuration::NodeRef const&)
+configmgr::configuration::isSimpleValue(configmgr::configuration::Tree const&, configmgr::configuration::AnyNodeRef const&)
+configmgr::configuration::isSimpleValueElement(configmgr::configuration::Tree const&, configmgr::configuration::NodeRef const&)
+configmgr::configuration::makeSimpleTemplate(com::sun::star::uno::Type const&, configmgr::configuration::SpecialTemplateProvider const&)
+configmgr::configuration::makeTreeTemplate(rtl::OUString const&, rtl::OUString const&, configmgr::configuration::SpecialTemplateProvider const&)
+configmgr::data::TreeNodeBuilder::resetTreeFragment()
+configmgr::data::toGroupNodeAddress(configmgr::sharable::Node* const&)
+configmgr::dont_trace(char const*, ...)
+configmgr::expandForLocale(configmgr::ISubtree&, rtl::OUString const&)
+configmgr::expandForLocale(configmgr::SubtreeChange&, rtl::OUString const&)
+configmgr::forceWritable(configmgr::INode&)
+configmgr::internal::throwDispatchIllegalSequenceException()
+configmgr::isValueSet(configmgr::ISubtree const&)
+configmgr::localbe::LocalSchemaSupplier::getName()
+configmgr::localbe::LocalSchemaSupplier::getServices()
+configmgr::localbe::LocalSingleBackend::getName()
+configmgr::localbe::LocalSingleBackend::getServices()
+configmgr::localbe::implNormalizeURL(rtl::OUString&, osl::DirectoryItem&)
+configmgr::localehelper::FindBestLocale::FindBestLocale()
+configmgr::localehelper::FindBestLocale::FindBestLocale(_STL::vector<com::sun::star::lang::Locale, _STL::allocator<com::sun::star::lang::Locale> > const&)
+configmgr::localehelper::FindBestLocale::getBestMatch() const
+configmgr::localehelper::FindBestLocale::reset(com::sun::star::lang::Locale const&)
+configmgr::localehelper::makeLocaleSequence(com::sun::star::uno::Sequence<com::sun::star::lang::Locale> const&)
+configmgr::localehelper::makeUnoSequence(_STL::vector<com::sun::star::lang::Locale, _STL::allocator<com::sun::star::lang::Locale> > const&)
+configmgr::localehelper::match(com::sun::star::lang::Locale const&, _STL::vector<com::sun::star::lang::Locale, _STL::allocator<com::sun::star::lang::Locale> > const&)
+configmgr::parseTemplateName(rtl::OUString const&, com::sun::star::uno::TypeClass&, bool&)
+configmgr::sharable::Node::getParentNode()
+configmgr::sharable::Node::getParentNode() const
+configmgr::sharable::Node::isLocalized() const
+configmgr::sharable::TreeFragment::hasDefaults() const
+configmgr::sharable::ValueNode::isEmpty() const
+configmgr::view::(anonymous namespace)::GroupMemberDispatch::test_value(configmgr::data::NodeAccess const&) const
+configmgr::view::Node::getNextSibling() const
+configmgr::view::ValueNode::getAccess() const
+configmgr::view::ViewStrategy::getNodeAccess(configmgr::view::Node const&) const
+configmgr::view::ViewStrategy::getNodeName(configmgr::view::Node const&) const
+configmgr::view::ViewTreeAccess::isValid(configmgr::configuration::NodeRef const&) const
+configmgr::xml::(anonymous namespace)::createTCV(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+configmgr::xml::(anonymous namespace)::createTCV(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+configmgr::xml::ElementParser::alwaysGetAttribute(com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&, rtl::OUString const&, rtl::OUString&) const
+configmgr::xml::WriterService<com::sun::star::configuration::backend::XLayerHandler>::getServiceFactory() const
+configmgr::xml::WriterService<com::sun::star::configuration::backend::XLayerHandler>::getServiceInfo()
+connectivity::OKeyValue::OKeyValue()
+connectivity::OParseContext::setDefaultLocale(com::sun::star::lang::Locale const&)
+connectivity::ORowSetValue::setFromDouble(double const&, int)
+connectivity::OSQLInternalNode::OSQLInternalNode(unsigned short const*, connectivity::SQLNodeType, unsigned int)
+connectivity::OSQLParseNode::remove(connectivity::OSQLParseNode*)
+connectivity::OSQLParseNode::replaceAt(unsigned int, connectivity::OSQLParseNode*)
+connectivity::OSQLParser::RuleIDToStr(unsigned int)
+connectivity::OSQLScanner::GetCurrentRule() const
+connectivity::OSortIndex::GetValue(int) const
+connectivity::SharedResources::getResurceString(unsigned short)
+connectivity::SharedResources_Impl::getMutex()
+connectivity::adabas::OAdabasConnection::isStarted()
+connectivity::adabas::OAdabasResultSetMetaData::OAdabasResultSetMetaData(connectivity::odbc::OConnection*, void*, _STL::vector<int, _STL::allocator<int> > const&)
+connectivity::adabas::OUserExtend::OUserExtend(connectivity::adabas::OAdabasConnection*, rtl::OUString const&)
+connectivity::adabas::OViews::appendNew(rtl::OUString const&)
+connectivity::calc::OCalcTable::OCalcTable(connectivity::sdbcx::OCollection*, connectivity::calc::OCalcConnection*)
+connectivity::evoab::OEvoabDatabaseMetaData::construct()
+connectivity::evoab::OEvoabDriver::fileExists(rtl::OUString const&, unsigned char) const
+connectivity::evoab::OEvoabDriver::getEVOAB_CLI_ARG_OUTPUT_REDIRECT()
+connectivity::evoab::OEvoabResultSetMetaData::checkColumnIndex(int)
+connectivity::evoab::OEvoabTable::OEvoabTable(connectivity::sdbcx::OCollection*, connectivity::evoab::OEvoabConnection*)
+connectivity::evoab::getEvoabServiceFactory()
+connectivity::evoab::getFieldCount()
+connectivity::evoab::setEvoabServiceFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+connectivity::file::OSQLAnalyzer::clean()
+connectivity::file::OStatement_Base::reset()
+connectivity::file::OStatement_Base::setWarning(com::sun::star::sdbc::SQLWarning const&)
+connectivity::flat::OFlatTable::OFlatTable(connectivity::sdbcx::OCollection*, connectivity::flat::OFlatConnection*)
+connectivity::hsqldb::OHsqlConnection::impl_createLinkedTableEditor_throw(com::sun::star::uno::Reference<com::sun::star::sdb::application::XDatabaseDocumentUI> const&, rtl::OUString const&)
+connectivity::hsqldb::OUserExtend::OUserExtend(com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection> const&, rtl::OUString const&)
+connectivity::hsqldb::OViews::appendNew(rtl::OUString const&)
+connectivity::hsqldb::StreamHelper::getStream()
+connectivity::java_lang_Boolean::java_lang_Boolean(unsigned char)
+connectivity::java_lang_Class::getName()
+connectivity::java_lang_Class::isAssignableFrom(connectivity::java_lang_Class*)
+connectivity::java_lang_Class::newInstance()
+connectivity::java_lang_Exception::getMyClass()
+connectivity::java_lang_Object::getClass()
+connectivity::java_lang_String::java_lang_String(rtl::OUString const&)
+connectivity::java_sql_DriverManager::getDriver(rtl::OUString const&)
+connectivity::java_sql_DriverManager::setLoginTimeout(int)
+connectivity::java_sql_SQLWarning_BASE::getMyClass()
+connectivity::java_sql_Timestamp::getNanos()
+connectivity::java_sql_Timestamp::setNanos(int)
+connectivity::java_util_Date::getMyClass()
+connectivity::kab::KabCatalog::getDot()
+connectivity::kab::KabTable::KabTable(connectivity::sdbcx::OCollection*, connectivity::kab::KabConnection*)
+connectivity::mysql::OUserExtend::OUserExtend(com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection> const&, rtl::OUString const&)
+connectivity::mysql::OViews::appendNew(rtl::OUString const&)
+connectivity::odbc::OPreparedStatement::getDataBuf(int)
+connectivity::odbc::OPreparedStatement::getParamLength(int)
+connectivity::odbc::OPreparedStatement::getPrecision(int)
+connectivity::odbc::OTools::GetInfo(connectivity::odbc::OConnection*, void*, unsigned short, unsigned char&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&)
+connectivity::parse::OOrderColumn::OOrderColumn(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, int, int, int, int, unsigned char, unsigned char, unsigned char, unsigned char)
+connectivity::toString(com::sun::star::uno::Any const&)
+cpp_vtable_call
+cppcanvas::BaseGfxFactory::createText(boost::shared_ptr<cppcanvas::Canvas> const&, rtl::OUString const&) const
+cppcanvas::BaseGfxFactory::~BaseGfxFactory()
+cppcanvas::VCLFactory::~VCLFactory()
+cppcanvas::internal::ImplSprite::getGraphicDevice() const
+cppcanvas::tools::modifyClip(com::sun::star::rendering::RenderState&, cppcanvas::internal::OutDevState const&, boost::shared_ptr<cppcanvas::Canvas> const&, Point const&, basegfx::B2DVector const*, double const*)
+cppcanvas::tools::modifyClip(com::sun::star::rendering::RenderState&, cppcanvas::internal::OutDevState const&, boost::shared_ptr<cppcanvas::Canvas> const&, basegfx::B2DHomMatrix const&)
+cppu::AccessControl::AccessControl(com::sun::star::uno::Reference<com::sun::star::security::XAccessController> const&)
+cppu::AccessControl::checkRuntimePermission(rtl::OUString const&)
+cppu::AccessControl::checkSocketPermission(rtl::OUString const&, rtl::OUString const&)
+cppu::BootstrapException::BootstrapException()
+cppu::BootstrapException::getMessage() const
+cppu::ClassDataBase::ClassDataBase()
+cppu::MappingsData::~MappingsData()
+cppu::OMultiTypeInterfaceContainerHelper::clear()
+cppu::OMultiTypeInterfaceContainerHelperInt32::clear()
+cppu::OPropertyArrayHelper::getCount() const
+cppu::OPropertySetHelper::OPropertySetHelper(cppu::OBroadcastHelperVar<cppu::OMultiTypeInterfaceContainerHelper, com::sun::star::uno::Type>&, bool)
+cppu::UnoType<com::sun::star::beans::Optional<rtl::OUString> >::get()
+cppu::createFactoryProxy(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::lang::XSingleServiceFactory> const&)
+cppu::createOneInstanceRegistryFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&)
+cppu::getWeakMutex()
+createApplicationServiceManager()
+createDataAccessToolsFactory
+create_SalInstance
+dbaui::(anonymous namespace)::lcl_getObjectContainer(com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection> const&, int)
+dbaui::OApplicationController::LinkStubOnInvalidateClipboard(void*, void*)
+dbaui::OFieldDescControl::LinkStubDelayedGrabFocus(void*, void*)
+dbaui::OFieldDescGenWin::GetEditorCtrl()
+dbaui::OTableDesignView::LinkStubSwitchHdl(void*, void*)
+dbaui::OTableEditorCtrl::LinkStubEntryNotFound(void*, void*)
+dbaui::OTableSubscriptionPage::actOnEntryPaths(_STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> > const&, void (dbaui::OTableSubscriptionPage::*)(SvLBoxEntry*))
+dbaui::OTableSubscriptionPage::collectEntryPaths(_STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> >&, unsigned char (SvListView::*)(SvListEntry*) const)
+dbaui::OTableSubscriptionPage::doExpand(SvLBoxEntry*)
+dbaui::OTableSubscriptionPage::doSelect(SvLBoxEntry*)
+dbaui::SbaXDataBrowserController::LinkStubOnOpenFinished(void*, void*)
+dbg_dump(String const&)
+dbg_dump(_rtl_String*)
+dbg_dump(_rtl_uString*)
+dbp::OControlWizardPage::getServiceFactory()
+dbtools::CharsetIteratorDerefHelper::CharsetIteratorDerefHelper()
+dbtools::DBTypeConversion::toINT64(com::sun::star::util::DateTime const&)
+dbtools::DatabaseMetaData::isConnected() const
+dbtools::SQLExceptionInfo::SQLExceptionInfo(com::sun::star::sdb::SQLErrorEvent const&)
+dbtools::SQLExceptionInfo::isKindOf(dbtools::SQLExceptionInfo::TYPE) const
+dbtools::SQLExceptionIteratorHelper::SQLExceptionIteratorHelper(com::sun::star::sdb::SQLContext const&)
+dbtools::SQLExceptionIteratorHelper::SQLExceptionIteratorHelper(com::sun::star::sdbc::SQLWarning const&)
+dbtools::StatementComposer::getDisposeComposer() const
+debug_oustring(rtl::OUString&)
+delete_stack()
+desktop::CmdlineHelpDialog::CmdlineHelpDialog()
+desktop::CommandLineArgs::CommandLineArgs()
+desktop::CommandLineArgs::GetBoolParam(desktop::CommandLineArgs::BoolParam) const
+desktop::CommandLineArgs::GetClientDisplay(rtl::OUString&) const
+desktop::CommandLineArgs::GetDisplay(rtl::OUString&) const
+desktop::CommandLineArgs::GetUserDir(rtl::OUString&) const
+desktop::CommandLineArgs::GetVersionString(rtl::OUString&) const
+desktop::CommandLineArgs::IsEmpty() const
+desktop::CommandLineArgs::IsPlugin() const
+desktop::CommandLineArgs::IsPrinting() const
+desktop::CommandLineArgs::SetStringParam(desktop::CommandLineArgs::StringParam, rtl::OUString const&)
+desktop::Desktop::AsyncTerminate(desktop::Desktop*, void*)
+desktop::Desktop::EnableOleAutomation()
+desktop::FatalErrorExit(rtl::OUString const&)
+desktop::FirstStartWizard::defineWizardPagesDependingFromContext()
+desktop::FirstStartWizard::overrideCheck(unsigned char)
+desktop::IntroWindow_Impl::IntroWindow_Impl(Bitmap const&)
+desktop::IntroWindow_Impl::Slide()
+desktop::OfficeIPCThread::GetOfficeIPCThread()
+desktop::SplashScreen::impl_getImplementationName()
+desktop::SplashScreen::impl_getSupportedServiceNames()
+desktop::UnxSplashScreen::impl_getImplementationName()
+desktop::UnxSplashScreen::impl_getSupportedServiceNames()
+displayException(com::sun::star::sdbc::SQLWarning const&, Window*)
+dmapper::CellColorHandler::getProperties()
+dmapper::DomainMapper_Impl::GetTopTextAppendAndConvert()
+dmapper::FIB::GetData(int)
+dmapper::ListTable::size() const
+dmapper::SectionPropertyMap::GetPageStyleName(bool)
+dmapper::SectionPropertyMap::SetPageStyleName(bool, rtl::OUString const&)
+doctok::DffOPT::get_extraoffset_count()
+doctok::WW8BinaryObjReference::WW8BinaryObjReference(doctok::WW8Stream&, unsigned int, unsigned int)
+doctok::WW8BinaryObjReference::WW8BinaryObjReference(doctok::WW8StructBase&, unsigned int, unsigned int)
+doctok::WW8DocumentImpl::getAnnotationCount() const
+doctok::WW8DocumentImpl::getCpAndFc(doctok::Fc const&, doctok::PropertyType) const
+doctok::WW8DocumentImpl::getEndnoteCount() const
+doctok::WW8DocumentImpl::getFootnoteCount() const
+doctok::WW8DocumentImpl::getPicLocation() const
+doctok::WW8DocumentImpl::getTextboxEndCp() const
+doctok::WW8DocumentImpl::getTextboxHeaderEndCp() const
+doctok::WW8FontTable::calcPayloadOffset()
+doctok::WW8LFOTable::calcPayloadOffset()
+doctok::WW8ListTable::calcPayloadOffset()
+doctok::WW8PropertiesHandler::compare(boost::shared_ptr<doctok::Sprm>, boost::shared_ptr<doctok::Sprm>)
+doctok::WW8PropertyImpl::WW8PropertyImpl(doctok::WW8Stream&, unsigned int, unsigned int)
+doctok::WW8PropertyImpl::getParamOffset() const
+doctok::WW8StructBase::getBit(unsigned int, unsigned short) const
+doctok::WW8StructBase::getNibble(unsigned int, unsigned short) const
+doctok::WW8Sttbf::getEntryCount() const
+doctok::WW8Sttbf::getExtraData(unsigned int)
+doctok::WW8StyleSheet::calcPayloadOffset()
+doctok::WW8StyleSheet::calcSize()
+doctok::WW8sprmPChgTabsPapx::calcSize()
+doctok::WW8sprmTCellBottomColor::calcSize()
+doctok::WW8sprmTCellLeftColor::calcSize()
+doctok::WW8sprmTCellRightColor::calcSize()
+doctok::WW8sprmTCellShadow::calcSize()
+doctok::WW8sprmTCellShd::calcSize()
+doctok::WW8sprmTCellTopColor::calcSize()
+doctok::WW8sprmTDefTableShd::calcSize()
+doctok::WW8sprmTGridLineProps::calcSize()
+dp_gui::DialogImpl::TreeListBoxImpl::getContext(SvLBoxEntry*) const
+dp_manager::PackageManagerImpl::checkAborted(rtl::Reference<dp_misc::AbortChannel> const&)
+dp_misc::(anonymous namespace)::dummy()
+dp_misc::PersistentMap::flush() const
+dp_misc::XmlElement::check_parsed() const
+dp_misc::XmlElement::getNamespaceMapping() const
+drafts::com::sun::star::form::cppu_detail_getUnoType(drafts::com::sun::star::form::XBindableValue const*)
+drafts::com::sun::star::form::cppu_detail_getUnoType(drafts::com::sun::star::form::XListEntrySink const*)
+drafts::com::sun::star::form::cppu_detail_getUnoType(drafts::com::sun::star::form::XListEntrySource const*)
+drafts::com::sun::star::form::cppu_detail_getUnoType(drafts::com::sun::star::form::XValueBinding const*)
+dtrans::GenericClipboard::GenericClipboard(rtl::OUString const&)
+dumpEvent(com::sun::star::script::ScriptEvent const&)
+dumpListeners(com::sun::star::uno::Reference<com::sun::star::beans::XIntrospection> const&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&)
+egg_tray_icon_get_orientation
+egg_tray_icon_new_for_screen
+egg_tray_icon_send_message
+enmkallcap(char*, char const*, char const*)
+enmkallsmall(char*, char const*, char const*)
+enmkinitcap(char*, char const*, char const*)
+err_msg(char const*, rtl::OUString const&)
+evo_traceStringMessage(char const*, rtl::OUString const&)
+exService_getSmartFactory
+fileaccess::TaskManager::getCommandEnvironment(int)
+fileaccess::TaskManager::getInteractionHandler(int)
+fileaccess::TaskManager::getProgressHandler(int)
+fileaccess::TaskManager::isAborted(int)
+fileaccess::getResolvedURL(_rtl_uString*, _rtl_uString**)
+fileaccess::makeAbsolutePath(rtl::OUString const&, rtl::OUString&)
+findSofficeExecutable()
+fixKeepAndSplitAttributes(SwTableNode*)
+foo::OSeekableInputStreamWrapper::OSeekableInputStreamWrapper(osl::File&)
+foo::OSeekableInputStreamWrapper::OSeekableInputStreamWrapper(osl::File*, unsigned char)
+framework::AddonMenuManager::HasAddonHelpMenuElements()
+framework::AddonsToolBarManager::LinkStubHighlight(void*, void*)
+framework::AttributeListImpl::clear()
+framework::BmkMenu::BmkMenu(com::sun::star::uno::Reference<com::sun::star::frame::XFrame>&, framework::BmkMenu::BmkMenuType, framework::BmkMenu*)
+framework::ComplexToolbarController::executeControlCommand(com::sun::star::frame::ControlCommand const&)
+framework::ConfigurationAccess_UICategory::resetCache()
+framework::ConfigurationAccess_UICommand::resetCache()
+framework::ConfigurationAccess_UIElementFactoryManager::getAllFactories() const
+framework::Converter::convert_DateTime2String(DateTime const&)
+framework::Converter::convert_OUStringHash2seqProp(framework::BaseHash<rtl::OUString> const&)
+framework::Converter::convert_OUStringList2seqOUString(framework::OUStringList const&)
+framework::Converter::convert_String2DateTime(rtl::OUString const&)
+framework::Converter::convert_seqAny2seqProp(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)
+framework::Converter::convert_seqNamedVal2seqPropVal(com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&)
+framework::Converter::convert_seqProp2OUStringHash(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
+framework::Converter::convert_seqProp2seqAny(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
+framework::EventsConfiguration::LoadEventsConfig(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, SvStream&, framework::EventsConfig&)
+framework::EventsConfiguration::StoreEventsConfig(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, SvStream&, framework::EventsConfig const&)
+framework::FrameContainer::disableQuitTimer()
+framework::FrameContainer::enableQuitTimer(com::sun::star::uno::Reference<com::sun::star::frame::XDesktop> const&)
+framework::FrameContainer::hasElements() const
+framework::GetCommandURLFromKeyCode(KeyCode const&)
+framework::GetKeyCodeFromCommandURL(com::sun::star::uno::Reference<com::sun::star::frame::XFrame>&, rtl::OUString const&)
+framework::GraphicNameAccess::size() const
+framework::HandlerCache::exists(rtl::OUString const&) const
+framework::ImageManager::hasStorage()
+framework::ImagesConfiguration::LoadImages(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, SvStream&, framework::ImageListsDescriptor&)
+framework::ImagesConfiguration::StoreImages(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, SvStream&, framework::ImageListsDescriptor const&)
+framework::Job::getJobData()
+framework::Job::getJobDataRef()
+framework::JobData::getAlias() const
+framework::JobData::getResult() const
+framework::JobResult::getDeactivate() const
+framework::JobURL::getAliasArgs(rtl::OUString&) const
+framework::JobURL::getEventArgs(rtl::OUString&) const
+framework::JobURL::getServiceArgs(rtl::OUString&) const
+framework::License::Terminate(framework::License*, void*)
+framework::LogoImageStatusbarController::LogoImageStatusbarController()
+framework::LogoTextStatusbarController::LogoTextStatusbarController()
+framework::MenuConfiguration::IsPickListItemId(unsigned short)
+framework::MenuConfiguration::IsWindowListItemId(unsigned short)
+framework::MenuDispatcher::LinkStubClose_Impl(void*, void*)
+framework::MenuDispatcher::impl_sendStatusEvent(com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, unsigned char)
+framework::MergeToolbarInstruction* _STL::__uninitialized_copy<framework::MergeToolbarInstruction*, framework::MergeToolbarInstruction*>(framework::MergeToolbarInstruction*, framework::MergeToolbarInstruction*, framework::MergeToolbarInstruction*, _STL::__false_type const&)
+framework::OReadMenuBarHandler::getServiceFactory()
+framework::OTimerHelper::OTimerHelper(vos::TTimeValue const&)
+framework::PopupMenuControllerBase::setPopupMenu(com::sun::star::uno::Reference<com::sun::star::awt::XPopupMenu> const&)
+framework::PopupMenuControllerBase::statusChanged(com::sun::star::frame::FeatureStateEvent const&)
+framework::PresetHandler::existsPreset(rtl::OUString const&) const
+framework::PresetHandler::getAllPresetNames() const
+framework::PresetHandler::getAllTargetNames() const
+framework::PresetHandler::removeTarget(rtl::OUString const&)
+framework::RequestAmbigousFilter::RequestAmbigousFilter(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&)
+framework::RequestAmbigousFilter::getFilter() const
+framework::RequestAmbigousFilter::isAbort() const
+framework::RestrictedUIInteraction::RestrictedUIInteraction(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, int)
+framework::RestrictedUIInteraction::getRequest() const
+framework::RestrictedUIInteraction::wasUsed() const
+framework::RootActionTriggerContainer::GetMenu()
+framework::RootActionTriggerContainer::GetUnoTunnelId() const
+framework::SetCommandURLFromKeyCode(rtl::OUString (*)(KeyCode const&))
+framework::SetKeyCodeFromCommandURL(KeyCode (*)(com::sun::star::uno::Reference<com::sun::star::frame::XFrame>&, rtl::OUString const&))
+framework::SetMenuExtensionSupplier(MenuExtensionItem (*)())
+framework::ShareableMutex::getShareableOslMutex()
+framework::SimpleTextStatusbarController::SimpleTextStatusbarController()
+framework::StatusBarConfiguration::LoadStatusBar(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, SvStream&, framework::StatusBarDescriptor&)
+framework::StatusBarConfiguration::StoreStatusBar(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, SvStream&, framework::StatusBarDescriptor const&)
+framework::StatusBarDescriptor::DeleteAndDestroy(unsigned short, unsigned short)
+framework::StatusBarWrapper::getServiceFactory()
+framework::StillInteraction::getRequest() const
+framework::StillInteraction::wasUsed() const
+framework::SubstituteRule::~SubstituteRule()
+framework::TabWindow::impl_createFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+framework::TargetFinder::classifyFindFrame(framework::TargetInfo&)
+framework::TargetFinder::classifyQueryDispatch(framework::TargetInfo&)
+framework::TargetHelper::classifyTarget(rtl::OUString const&)
+framework::TargetInfo::TargetInfo(com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, int)
+framework::TargetInfo::TargetInfo(rtl::OUString const&, int, framework::EFrameType, unsigned char, unsigned char, rtl::OUString const&, rtl::OUString const&)
+framework::ToolBarManager::LinkStubHighlight(void*, void*)
+framework::TransactionManager::getGlobalTransactionManager()
+framework::UIConfigElementWrapperBase::dispose()
+framework::UIElementWrapperBase::dispose()
+framework::c_existCommand(rtl::OUString const&)
+framework::constant::Filter::addFlags(int&, int)
+framework::constant::Filter::areFlagsSet(int, int)
+framework::constant::Filter::removeFlags(int&, int)
+frm::NavigationToolBar::getDispatcher()
+frm::NavigationToolBar::setItemWindowZoom(unsigned short, Window*, void const*) const
+frm::OControlModel::ensureAlive()
+frm::OFilterControl::getSomething(com::sun::star::uno::Sequence<signed char> const&)
+frm::OFormattedModel::calcFormatKey() const
+frm::OFormattedModel_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+frm::OReferenceValueComponent::setNoCheckReferenceValue(rtl::OUString const&)
+frm::RichTextControl::convert(SfxPoolItem const&, com::sun::star::awt::FontDescriptor&)
+frm::RichTextControl::convert(com::sun::star::awt::FontDescriptor const&, SfxPoolItem*&)
+frm::RichTextControl::convertFontHeight(SfxPoolItem const&)
+frm::RichTextControl::convertFontHeight(unsigned int)
+frm::TypeBag::TypeBag(com::sun::star::uno::Sequence<com::sun::star::uno::Type> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Type> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Type> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Type> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Type> const&)
+ftp::FTPContent::FTPContent(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, ftp::FTPContentProvider*, com::sun::star::uno::Reference<com::sun::star::ucb::XContentIdentifier> const&)
+ftp::FTPDirectoryParser::parseUNKNOWN(ftp::FTPDirentry&, char const*, unsigned int)
+ftp::XInteractionRequestImpl::aborted() const
+ftp_passwd
+ftp_write
+func_provider::ActiveMSPList::getActiveProviders()
+func_provider::InvocationCtxProperties::InvocationCtxProperties(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
+g721_encoder(int, int, g72x_state*)
+g723_24_decoder(int, int, g72x_state*)
+g723_24_encoder(int, int, g72x_state*)
+g723_40_decoder(int, int, g72x_state*)
+g723_40_encoder(int, int, g72x_state*)
+gcc3::RTTI::~RTTI()
+getAllCalendars_af_NA
+getAllCalendars_ak_GH
+getAllCalendars_am_ET
+getAllCalendars_ar_EG
+getAllCalendars_ar_LB
+getAllCalendars_ar_SA
+getAllCalendars_ar_TN
+getAllCalendars_az_AZ
+getAllCalendars_be_BY
+getAllCalendars_bg_BG
+getAllCalendars_bn_BD
+getAllCalendars_bn_IN
+getAllCalendars_br_FR
+getAllCalendars_bs_BA
+getAllCalendars_ca_ES
+getAllCalendars_cs_CZ
+getAllCalendars_cv_RU
+getAllCalendars_cy_GB
+getAllCalendars_da_DK
+getAllCalendars_de_AT
+getAllCalendars_de_CH
+getAllCalendars_de_LI
+getAllCalendars_de_LU
+getAllCalendars_dz_BT
+getAllCalendars_ee_GH
+getAllCalendars_el_GR
+getAllCalendars_en_AU
+getAllCalendars_en_BZ
+getAllCalendars_en_CA
+getAllCalendars_en_GB
+getAllCalendars_en_GH
+getAllCalendars_en_IE
+getAllCalendars_en_IN
+getAllCalendars_en_JM
+getAllCalendars_en_NA
+getAllCalendars_en_NZ
+getAllCalendars_en_PH
+getAllCalendars_en_TT
+getAllCalendars_en_ZA
+getAllCalendars_en_ZW
+getAllCalendars_eo
+getAllCalendars_es_BO
+getAllCalendars_es_CL
+getAllCalendars_es_CO
+getAllCalendars_es_CR
+getAllCalendars_es_DO
+getAllCalendars_es_EC
+getAllCalendars_es_ES
+getAllCalendars_es_GT
+getAllCalendars_es_HN
+getAllCalendars_es_MX
+getAllCalendars_es_NI
+getAllCalendars_es_PA
+getAllCalendars_es_PE
+getAllCalendars_es_PR
+getAllCalendars_es_PY
+getAllCalendars_es_SV
+getAllCalendars_es_UY
+getAllCalendars_es_VE
+getAllCalendars_et_EE
+getAllCalendars_eu
+getAllCalendars_fa_IR
+getAllCalendars_fi_FI
+getAllCalendars_fo_FO
+getAllCalendars_fr_BE
+getAllCalendars_fr_CA
+getAllCalendars_fr_CH
+getAllCalendars_fr_LU
+getAllCalendars_fr_MC
+getAllCalendars_fur_IT
+getAllCalendars_fy_NL
+getAllCalendars_ga_IE
+getAllCalendars_gl_ES
+getAllCalendars_gsc_FR
+getAllCalendars_gu_IN
+getAllCalendars_ha_GH
+getAllCalendars_he_IL
+getAllCalendars_hr_HR
+getAllCalendars_hu_HU
+getAllCalendars_hy_AM
+getAllCalendars_ia
+getAllCalendars_id_ID
+getAllCalendars_is_IS
+getAllCalendars_it_CH
+getAllCalendars_ja_JP
+getAllCalendars_ka_GE
+getAllCalendars_kk_KZ
+getAllCalendars_kl_GL
+getAllCalendars_km_KH
+getAllCalendars_kn_IN
+getAllCalendars_ko_KR
+getAllCalendars_ku_TR
+getAllCalendars_ky_KG
+getAllCalendars_la_VA
+getAllCalendars_lb_LU
+getAllCalendars_lg_UG
+getAllCalendars_ln_CD
+getAllCalendars_lo_LA
+getAllCalendars_lt_LT
+getAllCalendars_lv_LV
+getAllCalendars_mk_MK
+getAllCalendars_ml_IN
+getAllCalendars_mn_MN
+getAllCalendars_mr_IN
+getAllCalendars_ms_MY
+getAllCalendars_nb_NO
+getAllCalendars_ne_NP
+getAllCalendars_nl_BE
+getAllCalendars_nn_NO
+getAllCalendars_nr_ZA
+getAllCalendars_nso_ZA
+getAllCalendars_oc_FR
+getAllCalendars_or_IN
+getAllCalendars_pa_IN
+getAllCalendars_pl_PL
+getAllCalendars_pt_BR
+getAllCalendars_ro_RO
+getAllCalendars_ru_RU
+getAllCalendars_rw_RW
+getAllCalendars_sg_CF
+getAllCalendars_sh_YU
+getAllCalendars_sk_SK
+getAllCalendars_sl_SI
+getAllCalendars_sr_YU
+getAllCalendars_ss_ZA
+getAllCalendars_st_ZA
+getAllCalendars_sv_FI
+getAllCalendars_sv_SE
+getAllCalendars_sw_TZ
+getAllCalendars_ta_IN
+getAllCalendars_te_IN
+getAllCalendars_tg_TJ
+getAllCalendars_th_TH
+getAllCalendars_ti_ER
+getAllCalendars_tn_ZA
+getAllCalendars_tr_TR
+getAllCalendars_ts_ZA
+getAllCalendars_uk_UA
+getAllCalendars_uz_UZ
+getAllCalendars_ve_ZA
+getAllCalendars_vi_VN
+getAllCalendars_wa_BE
+getAllCalendars_xh_ZA
+getAllCalendars_zh_MO
+getAllCalendars_zh_SG
+getAllCalendars_zh_TW
+getAllCalendars_zu_ZA
+getAllCurrencies_af_NA
+getAllCurrencies_af_ZA
+getAllCurrencies_ak_GH
+getAllCurrencies_am_ET
+getAllCurrencies_ar_EG
+getAllCurrencies_ar_LB
+getAllCurrencies_ar_SA
+getAllCurrencies_ar_TN
+getAllCurrencies_az_AZ
+getAllCurrencies_be_BY
+getAllCurrencies_bg_BG
+getAllCurrencies_bn_BD
+getAllCurrencies_bn_IN
+getAllCurrencies_br_FR
+getAllCurrencies_bs_BA
+getAllCurrencies_ca_ES
+getAllCurrencies_cs_CZ
+getAllCurrencies_cv_RU
+getAllCurrencies_cy_GB
+getAllCurrencies_da_DK
+getAllCurrencies_de_AT
+getAllCurrencies_de_CH
+getAllCurrencies_de_DE
+getAllCurrencies_de_LI
+getAllCurrencies_de_LU
+getAllCurrencies_dz_BT
+getAllCurrencies_ee_GH
+getAllCurrencies_el_GR
+getAllCurrencies_en_AU
+getAllCurrencies_en_BZ
+getAllCurrencies_en_CA
+getAllCurrencies_en_GH
+getAllCurrencies_en_IE
+getAllCurrencies_en_IN
+getAllCurrencies_en_JM
+getAllCurrencies_en_NZ
+getAllCurrencies_en_PH
+getAllCurrencies_en_TT
+getAllCurrencies_en_US
+getAllCurrencies_en_ZW
+getAllCurrencies_eo
+getAllCurrencies_es_AR
+getAllCurrencies_es_BO
+getAllCurrencies_es_CL
+getAllCurrencies_es_CO
+getAllCurrencies_es_CR
+getAllCurrencies_es_DO
+getAllCurrencies_es_EC
+getAllCurrencies_es_ES
+getAllCurrencies_es_GT
+getAllCurrencies_es_HN
+getAllCurrencies_es_MX
+getAllCurrencies_es_NI
+getAllCurrencies_es_PA
+getAllCurrencies_es_PE
+getAllCurrencies_es_PR
+getAllCurrencies_es_PY
+getAllCurrencies_es_SV
+getAllCurrencies_es_UY
+getAllCurrencies_es_VE
+getAllCurrencies_et_EE
+getAllCurrencies_eu
+getAllCurrencies_fa_IR
+getAllCurrencies_fi_FI
+getAllCurrencies_fo_FO
+getAllCurrencies_fr_BE
+getAllCurrencies_fr_CA
+getAllCurrencies_fr_CH
+getAllCurrencies_fr_LU
+getAllCurrencies_fr_MC
+getAllCurrencies_fur_IT
+getAllCurrencies_fy_NL
+getAllCurrencies_ga_IE
+getAllCurrencies_gl_ES
+getAllCurrencies_gsc_FR
+getAllCurrencies_gu_IN
+getAllCurrencies_ha_GH
+getAllCurrencies_he_IL
+getAllCurrencies_hr_HR
+getAllCurrencies_hu_HU
+getAllCurrencies_hy_AM
+getAllCurrencies_ia
+getAllCurrencies_id_ID
+getAllCurrencies_is_IS
+getAllCurrencies_it_CH
+getAllCurrencies_it_IT
+getAllCurrencies_ja_JP
+getAllCurrencies_ka_GE
+getAllCurrencies_kk_KZ
+getAllCurrencies_kl_GL
+getAllCurrencies_km_KH
+getAllCurrencies_kn_IN
+getAllCurrencies_ko_KR
+getAllCurrencies_ku_TR
+getAllCurrencies_ky_KG
+getAllCurrencies_la_VA
+getAllCurrencies_lb_LU
+getAllCurrencies_lg_UG
+getAllCurrencies_ln_CD
+getAllCurrencies_lo_LA
+getAllCurrencies_lt_LT
+getAllCurrencies_lv_LV
+getAllCurrencies_mk_MK
+getAllCurrencies_ml_IN
+getAllCurrencies_mn_MN
+getAllCurrencies_mr_IN
+getAllCurrencies_ms_MY
+getAllCurrencies_nb_NO
+getAllCurrencies_ne_NP
+getAllCurrencies_nl_BE
+getAllCurrencies_nl_NL
+getAllCurrencies_nn_NO
+getAllCurrencies_nr_ZA
+getAllCurrencies_nso_ZA
+getAllCurrencies_oc_FR
+getAllCurrencies_or_IN
+getAllCurrencies_pa_IN
+getAllCurrencies_pl_PL
+getAllCurrencies_pt_BR
+getAllCurrencies_pt_PT
+getAllCurrencies_ro_RO
+getAllCurrencies_ru_RU
+getAllCurrencies_rw_RW
+getAllCurrencies_sg_CF
+getAllCurrencies_sh_YU
+getAllCurrencies_sk_SK
+getAllCurrencies_sl_SI
+getAllCurrencies_sr_YU
+getAllCurrencies_ss_ZA
+getAllCurrencies_st_ZA
+getAllCurrencies_sv_FI
+getAllCurrencies_sv_SE
+getAllCurrencies_sw_TZ
+getAllCurrencies_ta_IN
+getAllCurrencies_te_IN
+getAllCurrencies_tg_TJ
+getAllCurrencies_th_TH
+getAllCurrencies_ti_ER
+getAllCurrencies_tn_ZA
+getAllCurrencies_tr_TR
+getAllCurrencies_ts_ZA
+getAllCurrencies_uk_UA
+getAllCurrencies_uz_UZ
+getAllCurrencies_ve_ZA
+getAllCurrencies_vi_VN
+getAllCurrencies_wa_BE
+getAllCurrencies_xh_ZA
+getAllCurrencies_zh_CN
+getAllCurrencies_zh_HK
+getAllCurrencies_zh_MO
+getAllCurrencies_zh_SG
+getAllCurrencies_zh_TW
+getAllCurrencies_zu_ZA
+getAllFormats0_af_NA
+getAllFormats0_af_ZA
+getAllFormats0_ak_GH
+getAllFormats0_am_ET
+getAllFormats0_ar_LB
+getAllFormats0_ar_SA
+getAllFormats0_ar_TN
+getAllFormats0_az_AZ
+getAllFormats0_be_BY
+getAllFormats0_bg_BG
+getAllFormats0_bn_BD
+getAllFormats0_br_FR
+getAllFormats0_bs_BA
+getAllFormats0_ca_ES
+getAllFormats0_cs_CZ
+getAllFormats0_cv_RU
+getAllFormats0_cy_GB
+getAllFormats0_da_DK
+getAllFormats0_de_AT
+getAllFormats0_de_CH
+getAllFormats0_de_DE
+getAllFormats0_de_LI
+getAllFormats0_de_LU
+getAllFormats0_dz_BT
+getAllFormats0_ee_GH
+getAllFormats0_el_GR
+getAllFormats0_en_BZ
+getAllFormats0_en_CA
+getAllFormats0_en_GH
+getAllFormats0_en_IN
+getAllFormats0_en_JM
+getAllFormats0_en_NZ
+getAllFormats0_en_PH
+getAllFormats0_en_TT
+getAllFormats0_en_ZW
+getAllFormats0_eo
+getAllFormats0_es_CL
+getAllFormats0_es_CO
+getAllFormats0_es_CR
+getAllFormats0_es_EC
+getAllFormats0_es_ES
+getAllFormats0_es_HN
+getAllFormats0_es_MX
+getAllFormats0_es_NI
+getAllFormats0_es_PA
+getAllFormats0_es_PR
+getAllFormats0_es_PY
+getAllFormats0_es_SV
+getAllFormats0_es_UY
+getAllFormats0_es_VE
+getAllFormats0_et_EE
+getAllFormats0_eu
+getAllFormats0_fa_IR
+getAllFormats0_fi_FI
+getAllFormats0_fo_FO
+getAllFormats0_fr_BE
+getAllFormats0_fr_CA
+getAllFormats0_fr_CH
+getAllFormats0_fr_LU
+getAllFormats0_fr_MC
+getAllFormats0_fur_IT
+getAllFormats0_fy_NL
+getAllFormats0_ga_IE
+getAllFormats0_gl_ES
+getAllFormats0_gsc_FR
+getAllFormats0_gu_IN
+getAllFormats0_ha_GH
+getAllFormats0_he_IL
+getAllFormats0_hr_HR
+getAllFormats0_hu_HU
+getAllFormats0_hy_AM
+getAllFormats0_ia
+getAllFormats0_id_ID
+getAllFormats0_is_IS
+getAllFormats0_it_CH
+getAllFormats0_it_IT
+getAllFormats0_ja_JP
+getAllFormats0_ka_GE
+getAllFormats0_kk_KZ
+getAllFormats0_kl_GL
+getAllFormats0_km_KH
+getAllFormats0_kn_IN
+getAllFormats0_ko_KR
+getAllFormats0_ku_TR
+getAllFormats0_ky_KG
+getAllFormats0_la_VA
+getAllFormats0_lb_LU
+getAllFormats0_lg_UG
+getAllFormats0_ln_CD
+getAllFormats0_lo_LA
+getAllFormats0_lt_LT
+getAllFormats0_lv_LV
+getAllFormats0_mk_MK
+getAllFormats0_ml_IN
+getAllFormats0_mn_MN
+getAllFormats0_mr_IN
+getAllFormats0_ms_MY
+getAllFormats0_nb_NO
+getAllFormats0_ne_NP
+getAllFormats0_nl_BE
+getAllFormats0_nl_NL
+getAllFormats0_nn_NO
+getAllFormats0_nr_ZA
+getAllFormats0_nso_ZA
+getAllFormats0_oc_FR
+getAllFormats0_or_IN
+getAllFormats0_pa_IN
+getAllFormats0_pl_PL
+getAllFormats0_pt_BR
+getAllFormats0_pt_PT
+getAllFormats0_ro_RO
+getAllFormats0_ru_RU
+getAllFormats0_rw_RW
+getAllFormats0_sg_CF
+getAllFormats0_sh_YU
+getAllFormats0_sk_SK
+getAllFormats0_sl_SI
+getAllFormats0_ss_ZA
+getAllFormats0_st_ZA
+getAllFormats0_sv_FI
+getAllFormats0_sv_SE
+getAllFormats0_sw_TZ
+getAllFormats0_ta_IN
+getAllFormats0_te_IN
+getAllFormats0_tg_TJ
+getAllFormats0_th_TH
+getAllFormats0_ti_ER
+getAllFormats0_tn_ZA
+getAllFormats0_tr_TR
+getAllFormats0_ts_ZA
+getAllFormats0_uk_UA
+getAllFormats0_uz_UZ
+getAllFormats0_ve_ZA
+getAllFormats0_vi_VN
+getAllFormats0_wa_BE
+getAllFormats0_xh_ZA
+getAllFormats0_zh_CN
+getAllFormats0_zh_HK
+getAllFormats0_zh_MO
+getAllFormats0_zh_SG
+getAllFormats0_zh_TW
+getAllFormats0_zu_ZA
+getAllFormats1_en_US
+getBreakIteratorRules_af_NA
+getBreakIteratorRules_ak_GH
+getBreakIteratorRules_am_ET
+getBreakIteratorRules_ar_LB
+getBreakIteratorRules_ar_SA
+getBreakIteratorRules_ar_TN
+getBreakIteratorRules_az_AZ
+getBreakIteratorRules_be_BY
+getBreakIteratorRules_bg_BG
+getBreakIteratorRules_bn_BD
+getBreakIteratorRules_bn_IN
+getBreakIteratorRules_br_FR
+getBreakIteratorRules_bs_BA
+getBreakIteratorRules_ca_ES
+getBreakIteratorRules_cs_CZ
+getBreakIteratorRules_cv_RU
+getBreakIteratorRules_cy_GB
+getBreakIteratorRules_da_DK
+getBreakIteratorRules_de_AT
+getBreakIteratorRules_de_CH
+getBreakIteratorRules_de_LI
+getBreakIteratorRules_de_LU
+getBreakIteratorRules_dz_BT
+getBreakIteratorRules_ee_GH
+getBreakIteratorRules_el_GR
+getBreakIteratorRules_en_AU
+getBreakIteratorRules_en_BZ
+getBreakIteratorRules_en_CA
+getBreakIteratorRules_en_GH
+getBreakIteratorRules_en_IE
+getBreakIteratorRules_en_IN
+getBreakIteratorRules_en_JM
+getBreakIteratorRules_en_NA
+getBreakIteratorRules_en_NZ
+getBreakIteratorRules_en_PH
+getBreakIteratorRules_en_TT
+getBreakIteratorRules_en_ZA
+getBreakIteratorRules_en_ZW
+getBreakIteratorRules_eo
+getBreakIteratorRules_es_AR
+getBreakIteratorRules_es_BO
+getBreakIteratorRules_es_CL
+getBreakIteratorRules_es_CO
+getBreakIteratorRules_es_CR
+getBreakIteratorRules_es_DO
+getBreakIteratorRules_es_EC
+getBreakIteratorRules_es_GT
+getBreakIteratorRules_es_HN
+getBreakIteratorRules_es_MX
+getBreakIteratorRules_es_NI
+getBreakIteratorRules_es_PA
+getBreakIteratorRules_es_PE
+getBreakIteratorRules_es_PR
+getBreakIteratorRules_es_PY
+getBreakIteratorRules_es_SV
+getBreakIteratorRules_es_UY
+getBreakIteratorRules_es_VE
+getBreakIteratorRules_et_EE
+getBreakIteratorRules_eu
+getBreakIteratorRules_fa_IR
+getBreakIteratorRules_fi_FI
+getBreakIteratorRules_fo_FO
+getBreakIteratorRules_fr_BE
+getBreakIteratorRules_fr_CA
+getBreakIteratorRules_fr_CH
+getBreakIteratorRules_fr_LU
+getBreakIteratorRules_fr_MC
+getBreakIteratorRules_fur_IT
+getBreakIteratorRules_fy_NL
+getBreakIteratorRules_ga_IE
+getBreakIteratorRules_gl_ES
+getBreakIteratorRules_gsc_FR
+getBreakIteratorRules_gu_IN
+getBreakIteratorRules_ha_GH
+getBreakIteratorRules_he_IL
+getBreakIteratorRules_hr_HR
+getBreakIteratorRules_hu_HU
+getBreakIteratorRules_hy_AM
+getBreakIteratorRules_ia
+getBreakIteratorRules_id_ID
+getBreakIteratorRules_is_IS
+getBreakIteratorRules_it_CH
+getBreakIteratorRules_ja_JP
+getBreakIteratorRules_ka_GE
+getBreakIteratorRules_kk_KZ
+getBreakIteratorRules_kl_GL
+getBreakIteratorRules_km_KH
+getBreakIteratorRules_kn_IN
+getBreakIteratorRules_ko_KR
+getBreakIteratorRules_ku_TR
+getBreakIteratorRules_ky_KG
+getBreakIteratorRules_la_VA
+getBreakIteratorRules_lb_LU
+getBreakIteratorRules_lg_UG
+getBreakIteratorRules_ln_CD
+getBreakIteratorRules_lo_LA
+getBreakIteratorRules_lt_LT
+getBreakIteratorRules_lv_LV
+getBreakIteratorRules_mk_MK
+getBreakIteratorRules_ml_IN
+getBreakIteratorRules_mn_MN
+getBreakIteratorRules_mr_IN
+getBreakIteratorRules_ms_MY
+getBreakIteratorRules_nb_NO
+getBreakIteratorRules_ne_NP
+getBreakIteratorRules_nl_BE
+getBreakIteratorRules_nn_NO
+getBreakIteratorRules_nr_ZA
+getBreakIteratorRules_nso_ZA
+getBreakIteratorRules_oc_FR
+getBreakIteratorRules_or_IN
+getBreakIteratorRules_pa_IN
+getBreakIteratorRules_pl_PL
+getBreakIteratorRules_pt_BR
+getBreakIteratorRules_ro_RO
+getBreakIteratorRules_ru_RU
+getBreakIteratorRules_rw_RW
+getBreakIteratorRules_sg_CF
+getBreakIteratorRules_sh_YU
+getBreakIteratorRules_sk_SK
+getBreakIteratorRules_sl_SI
+getBreakIteratorRules_sr_YU
+getBreakIteratorRules_ss_ZA
+getBreakIteratorRules_st_ZA
+getBreakIteratorRules_sv_FI
+getBreakIteratorRules_sw_TZ
+getBreakIteratorRules_ta_IN
+getBreakIteratorRules_te_IN
+getBreakIteratorRules_tg_TJ
+getBreakIteratorRules_th_TH
+getBreakIteratorRules_ti_ER
+getBreakIteratorRules_tn_ZA
+getBreakIteratorRules_tr_TR
+getBreakIteratorRules_ts_ZA
+getBreakIteratorRules_uk_UA
+getBreakIteratorRules_uz_UZ
+getBreakIteratorRules_ve_ZA
+getBreakIteratorRules_vi_VN
+getBreakIteratorRules_wa_BE
+getBreakIteratorRules_xh_ZA
+getBreakIteratorRules_zh_HK
+getBreakIteratorRules_zh_MO
+getBreakIteratorRules_zh_SG
+getBreakIteratorRules_zu_ZA
+getCollationOptions_af_NA
+getCollationOptions_af_ZA
+getCollationOptions_ak_GH
+getCollationOptions_am_ET
+getCollationOptions_ar_EG
+getCollationOptions_ar_LB
+getCollationOptions_ar_SA
+getCollationOptions_ar_TN
+getCollationOptions_az_AZ
+getCollationOptions_be_BY
+getCollationOptions_bg_BG
+getCollationOptions_bn_BD
+getCollationOptions_bn_IN
+getCollationOptions_br_FR
+getCollationOptions_bs_BA
+getCollationOptions_ca_ES
+getCollationOptions_cs_CZ
+getCollationOptions_cv_RU
+getCollationOptions_cy_GB
+getCollationOptions_da_DK
+getCollationOptions_de_AT
+getCollationOptions_de_CH
+getCollationOptions_de_LI
+getCollationOptions_de_LU
+getCollationOptions_dz_BT
+getCollationOptions_ee_GH
+getCollationOptions_el_GR
+getCollationOptions_en_AU
+getCollationOptions_en_BZ
+getCollationOptions_en_CA
+getCollationOptions_en_GH
+getCollationOptions_en_IN
+getCollationOptions_en_JM
+getCollationOptions_en_NA
+getCollationOptions_en_NZ
+getCollationOptions_en_PH
+getCollationOptions_en_TT
+getCollationOptions_en_ZA
+getCollationOptions_en_ZW
+getCollationOptions_eo
+getCollationOptions_es_AR
+getCollationOptions_es_BO
+getCollationOptions_es_CL
+getCollationOptions_es_CO
+getCollationOptions_es_CR
+getCollationOptions_es_DO
+getCollationOptions_es_EC
+getCollationOptions_es_ES
+getCollationOptions_es_GT
+getCollationOptions_es_HN
+getCollationOptions_es_MX
+getCollationOptions_es_NI
+getCollationOptions_es_PA
+getCollationOptions_es_PE
+getCollationOptions_es_PR
+getCollationOptions_es_PY
+getCollationOptions_es_SV
+getCollationOptions_es_UY
+getCollationOptions_es_VE
+getCollationOptions_et_EE
+getCollationOptions_eu
+getCollationOptions_fa_IR
+getCollationOptions_fi_FI
+getCollationOptions_fo_FO
+getCollationOptions_fr_CA
+getCollationOptions_fr_CH
+getCollationOptions_fr_LU
+getCollationOptions_fr_MC
+getCollationOptions_fur_IT
+getCollationOptions_fy_NL
+getCollationOptions_ga_IE
+getCollationOptions_gl_ES
+getCollationOptions_gsc_FR
+getCollationOptions_gu_IN
+getCollationOptions_ha_GH
+getCollationOptions_he_IL
+getCollationOptions_hr_HR
+getCollationOptions_hu_HU
+getCollationOptions_hy_AM
+getCollationOptions_ia
+getCollationOptions_id_ID
+getCollationOptions_is_IS
+getCollationOptions_it_CH
+getCollationOptions_it_IT
+getCollationOptions_ja_JP
+getCollationOptions_ka_GE
+getCollationOptions_kk_KZ
+getCollationOptions_kl_GL
+getCollationOptions_km_KH
+getCollationOptions_kn_IN
+getCollationOptions_ko_KR
+getCollationOptions_ku_TR
+getCollationOptions_ky_KG
+getCollationOptions_la_VA
+getCollationOptions_lb_LU
+getCollationOptions_lg_UG
+getCollationOptions_ln_CD
+getCollationOptions_lo_LA
+getCollationOptions_lt_LT
+getCollationOptions_lv_LV
+getCollationOptions_mk_MK
+getCollationOptions_ml_IN
+getCollationOptions_mn_MN
+getCollationOptions_mr_IN
+getCollationOptions_ms_MY
+getCollationOptions_nb_NO
+getCollationOptions_ne_NP
+getCollationOptions_nl_BE
+getCollationOptions_nl_NL
+getCollationOptions_nn_NO
+getCollationOptions_nr_ZA
+getCollationOptions_nso_ZA
+getCollationOptions_oc_FR
+getCollationOptions_or_IN
+getCollationOptions_pa_IN
+getCollationOptions_pl_PL
+getCollationOptions_pt_BR
+getCollationOptions_pt_PT
+getCollationOptions_ro_RO
+getCollationOptions_ru_RU
+getCollationOptions_rw_RW
+getCollationOptions_sg_CF
+getCollationOptions_sh_YU
+getCollationOptions_sk_SK
+getCollationOptions_sl_SI
+getCollationOptions_sr_YU
+getCollationOptions_ss_ZA
+getCollationOptions_st_ZA
+getCollationOptions_sv_FI
+getCollationOptions_sv_SE
+getCollationOptions_sw_TZ
+getCollationOptions_ta_IN
+getCollationOptions_te_IN
+getCollationOptions_tg_TJ
+getCollationOptions_th_TH
+getCollationOptions_ti_ER
+getCollationOptions_tn_ZA
+getCollationOptions_tr_TR
+getCollationOptions_ts_ZA
+getCollationOptions_uk_UA
+getCollationOptions_uz_UZ
+getCollationOptions_ve_ZA
+getCollationOptions_vi_VN
+getCollationOptions_wa_BE
+getCollationOptions_xh_ZA
+getCollationOptions_zh_MO
+getCollationOptions_zh_SG
+getCollationOptions_zh_TW
+getCollationOptions_zu_ZA
+getCollatorImplementation_af_NA
+getCollatorImplementation_af_ZA
+getCollatorImplementation_ak_GH
+getCollatorImplementation_am_ET
+getCollatorImplementation_ar_EG
+getCollatorImplementation_ar_LB
+getCollatorImplementation_ar_SA
+getCollatorImplementation_ar_TN
+getCollatorImplementation_az_AZ
+getCollatorImplementation_be_BY
+getCollatorImplementation_bg_BG
+getCollatorImplementation_bn_BD
+getCollatorImplementation_bn_IN
+getCollatorImplementation_br_FR
+getCollatorImplementation_bs_BA
+getCollatorImplementation_ca_ES
+getCollatorImplementation_cs_CZ
+getCollatorImplementation_cv_RU
+getCollatorImplementation_cy_GB
+getCollatorImplementation_da_DK
+getCollatorImplementation_de_AT
+getCollatorImplementation_de_CH
+getCollatorImplementation_de_LI
+getCollatorImplementation_de_LU
+getCollatorImplementation_dz_BT
+getCollatorImplementation_ee_GH
+getCollatorImplementation_el_GR
+getCollatorImplementation_en_AU
+getCollatorImplementation_en_BZ
+getCollatorImplementation_en_CA
+getCollatorImplementation_en_GH
+getCollatorImplementation_en_IN
+getCollatorImplementation_en_JM
+getCollatorImplementation_en_NA
+getCollatorImplementation_en_NZ
+getCollatorImplementation_en_PH
+getCollatorImplementation_en_TT
+getCollatorImplementation_en_ZA
+getCollatorImplementation_en_ZW
+getCollatorImplementation_eo
+getCollatorImplementation_es_AR
+getCollatorImplementation_es_BO
+getCollatorImplementation_es_CL
+getCollatorImplementation_es_CO
+getCollatorImplementation_es_CR
+getCollatorImplementation_es_DO
+getCollatorImplementation_es_EC
+getCollatorImplementation_es_ES
+getCollatorImplementation_es_GT
+getCollatorImplementation_es_HN
+getCollatorImplementation_es_MX
+getCollatorImplementation_es_NI
+getCollatorImplementation_es_PA
+getCollatorImplementation_es_PE
+getCollatorImplementation_es_PR
+getCollatorImplementation_es_PY
+getCollatorImplementation_es_SV
+getCollatorImplementation_es_UY
+getCollatorImplementation_es_VE
+getCollatorImplementation_et_EE
+getCollatorImplementation_eu
+getCollatorImplementation_fa_IR
+getCollatorImplementation_fi_FI
+getCollatorImplementation_fo_FO
+getCollatorImplementation_fr_CA
+getCollatorImplementation_fr_CH
+getCollatorImplementation_fr_LU
+getCollatorImplementation_fr_MC
+getCollatorImplementation_fur_IT
+getCollatorImplementation_fy_NL
+getCollatorImplementation_ga_IE
+getCollatorImplementation_gl_ES
+getCollatorImplementation_gsc_FR
+getCollatorImplementation_gu_IN
+getCollatorImplementation_ha_GH
+getCollatorImplementation_he_IL
+getCollatorImplementation_hr_HR
+getCollatorImplementation_hu_HU
+getCollatorImplementation_hy_AM
+getCollatorImplementation_ia
+getCollatorImplementation_id_ID
+getCollatorImplementation_is_IS
+getCollatorImplementation_it_CH
+getCollatorImplementation_it_IT
+getCollatorImplementation_ja_JP
+getCollatorImplementation_ka_GE
+getCollatorImplementation_kk_KZ
+getCollatorImplementation_kl_GL
+getCollatorImplementation_km_KH
+getCollatorImplementation_kn_IN
+getCollatorImplementation_ko_KR
+getCollatorImplementation_ku_TR
+getCollatorImplementation_ky_KG
+getCollatorImplementation_la_VA
+getCollatorImplementation_lb_LU
+getCollatorImplementation_lg_UG
+getCollatorImplementation_ln_CD
+getCollatorImplementation_lo_LA
+getCollatorImplementation_lt_LT
+getCollatorImplementation_lv_LV
+getCollatorImplementation_mk_MK
+getCollatorImplementation_ml_IN
+getCollatorImplementation_mn_MN
+getCollatorImplementation_mr_IN
+getCollatorImplementation_ms_MY
+getCollatorImplementation_nb_NO
+getCollatorImplementation_ne_NP
+getCollatorImplementation_nl_BE
+getCollatorImplementation_nl_NL
+getCollatorImplementation_nn_NO
+getCollatorImplementation_nr_ZA
+getCollatorImplementation_nso_ZA
+getCollatorImplementation_oc_FR
+getCollatorImplementation_or_IN
+getCollatorImplementation_pa_IN
+getCollatorImplementation_pl_PL
+getCollatorImplementation_pt_BR
+getCollatorImplementation_pt_PT
+getCollatorImplementation_ro_RO
+getCollatorImplementation_ru_RU
+getCollatorImplementation_rw_RW
+getCollatorImplementation_sg_CF
+getCollatorImplementation_sh_YU
+getCollatorImplementation_sk_SK
+getCollatorImplementation_sl_SI
+getCollatorImplementation_sr_YU
+getCollatorImplementation_ss_ZA
+getCollatorImplementation_st_ZA
+getCollatorImplementation_sv_FI
+getCollatorImplementation_sv_SE
+getCollatorImplementation_sw_TZ
+getCollatorImplementation_ta_IN
+getCollatorImplementation_te_IN
+getCollatorImplementation_tg_TJ
+getCollatorImplementation_th_TH
+getCollatorImplementation_ti_ER
+getCollatorImplementation_tn_ZA
+getCollatorImplementation_tr_TR
+getCollatorImplementation_ts_ZA
+getCollatorImplementation_uk_UA
+getCollatorImplementation_uz_UZ
+getCollatorImplementation_ve_ZA
+getCollatorImplementation_vi_VN
+getCollatorImplementation_wa_BE
+getCollatorImplementation_xh_ZA
+getCollatorImplementation_zh_MO
+getCollatorImplementation_zh_SG
+getCollatorImplementation_zh_TW
+getCollatorImplementation_zu_ZA
+getContinuousNumberingLevels_af_NA
+getContinuousNumberingLevels_af_ZA
+getContinuousNumberingLevels_ak_GH
+getContinuousNumberingLevels_am_ET
+getContinuousNumberingLevels_ar_LB
+getContinuousNumberingLevels_ar_SA
+getContinuousNumberingLevels_ar_TN
+getContinuousNumberingLevels_az_AZ
+getContinuousNumberingLevels_be_BY
+getContinuousNumberingLevels_bg_BG
+getContinuousNumberingLevels_bn_BD
+getContinuousNumberingLevels_br_FR
+getContinuousNumberingLevels_bs_BA
+getContinuousNumberingLevels_ca_ES
+getContinuousNumberingLevels_cs_CZ
+getContinuousNumberingLevels_cv_RU
+getContinuousNumberingLevels_cy_GB
+getContinuousNumberingLevels_da_DK
+getContinuousNumberingLevels_de_AT
+getContinuousNumberingLevels_de_CH
+getContinuousNumberingLevels_de_DE
+getContinuousNumberingLevels_de_LI
+getContinuousNumberingLevels_de_LU
+getContinuousNumberingLevels_dz_BT
+getContinuousNumberingLevels_ee_GH
+getContinuousNumberingLevels_el_GR
+getContinuousNumberingLevels_en_AU
+getContinuousNumberingLevels_en_BZ
+getContinuousNumberingLevels_en_CA
+getContinuousNumberingLevels_en_GH
+getContinuousNumberingLevels_en_IN
+getContinuousNumberingLevels_en_JM
+getContinuousNumberingLevels_en_NA
+getContinuousNumberingLevels_en_NZ
+getContinuousNumberingLevels_en_PH
+getContinuousNumberingLevels_en_TT
+getContinuousNumberingLevels_en_ZA
+getContinuousNumberingLevels_en_ZW
+getContinuousNumberingLevels_eo
+getContinuousNumberingLevels_es_AR
+getContinuousNumberingLevels_es_BO
+getContinuousNumberingLevels_es_CL
+getContinuousNumberingLevels_es_CO
+getContinuousNumberingLevels_es_CR
+getContinuousNumberingLevels_es_DO
+getContinuousNumberingLevels_es_EC
+getContinuousNumberingLevels_es_ES
+getContinuousNumberingLevels_es_GT
+getContinuousNumberingLevels_es_HN
+getContinuousNumberingLevels_es_MX
+getContinuousNumberingLevels_es_NI
+getContinuousNumberingLevels_es_PA
+getContinuousNumberingLevels_es_PE
+getContinuousNumberingLevels_es_PR
+getContinuousNumberingLevels_es_PY
+getContinuousNumberingLevels_es_SV
+getContinuousNumberingLevels_es_UY
+getContinuousNumberingLevels_es_VE
+getContinuousNumberingLevels_et_EE
+getContinuousNumberingLevels_eu
+getContinuousNumberingLevels_fa_IR
+getContinuousNumberingLevels_fi_FI
+getContinuousNumberingLevels_fo_FO
+getContinuousNumberingLevels_fr_CA
+getContinuousNumberingLevels_fr_CH
+getContinuousNumberingLevels_fr_FR
+getContinuousNumberingLevels_fr_LU
+getContinuousNumberingLevels_fr_MC
+getContinuousNumberingLevels_fur_IT
+getContinuousNumberingLevels_fy_NL
+getContinuousNumberingLevels_ga_IE
+getContinuousNumberingLevels_gl_ES
+getContinuousNumberingLevels_gsc_FR
+getContinuousNumberingLevels_gu_IN
+getContinuousNumberingLevels_ha_GH
+getContinuousNumberingLevels_he_IL
+getContinuousNumberingLevels_hr_HR
+getContinuousNumberingLevels_hu_HU
+getContinuousNumberingLevels_hy_AM
+getContinuousNumberingLevels_ia
+getContinuousNumberingLevels_id_ID
+getContinuousNumberingLevels_is_IS
+getContinuousNumberingLevels_it_CH
+getContinuousNumberingLevels_it_IT
+getContinuousNumberingLevels_ja_JP
+getContinuousNumberingLevels_ka_GE
+getContinuousNumberingLevels_kk_KZ
+getContinuousNumberingLevels_kl_GL
+getContinuousNumberingLevels_km_KH
+getContinuousNumberingLevels_kn_IN
+getContinuousNumberingLevels_ko_KR
+getContinuousNumberingLevels_ku_TR
+getContinuousNumberingLevels_ky_KG
+getContinuousNumberingLevels_la_VA
+getContinuousNumberingLevels_lb_LU
+getContinuousNumberingLevels_lg_UG
+getContinuousNumberingLevels_ln_CD
+getContinuousNumberingLevels_lo_LA
+getContinuousNumberingLevels_lt_LT
+getContinuousNumberingLevels_lv_LV
+getContinuousNumberingLevels_mk_MK
+getContinuousNumberingLevels_ml_IN
+getContinuousNumberingLevels_mn_MN
+getContinuousNumberingLevels_mr_IN
+getContinuousNumberingLevels_ms_MY
+getContinuousNumberingLevels_nb_NO
+getContinuousNumberingLevels_ne_NP
+getContinuousNumberingLevels_nl_BE
+getContinuousNumberingLevels_nl_NL
+getContinuousNumberingLevels_nn_NO
+getContinuousNumberingLevels_nr_ZA
+getContinuousNumberingLevels_nso_ZA
+getContinuousNumberingLevels_oc_FR
+getContinuousNumberingLevels_or_IN
+getContinuousNumberingLevels_pa_IN
+getContinuousNumberingLevels_pl_PL
+getContinuousNumberingLevels_pt_BR
+getContinuousNumberingLevels_pt_PT
+getContinuousNumberingLevels_ro_RO
+getContinuousNumberingLevels_ru_RU
+getContinuousNumberingLevels_rw_RW
+getContinuousNumberingLevels_sg_CF
+getContinuousNumberingLevels_sh_YU
+getContinuousNumberingLevels_sk_SK
+getContinuousNumberingLevels_sl_SI
+getContinuousNumberingLevels_sr_YU
+getContinuousNumberingLevels_ss_ZA
+getContinuousNumberingLevels_st_ZA
+getContinuousNumberingLevels_sv_FI
+getContinuousNumberingLevels_sv_SE
+getContinuousNumberingLevels_sw_TZ
+getContinuousNumberingLevels_ta_IN
+getContinuousNumberingLevels_te_IN
+getContinuousNumberingLevels_tg_TJ
+getContinuousNumberingLevels_th_TH
+getContinuousNumberingLevels_ti_ER
+getContinuousNumberingLevels_tn_ZA
+getContinuousNumberingLevels_tr_TR
+getContinuousNumberingLevels_ts_ZA
+getContinuousNumberingLevels_uk_UA
+getContinuousNumberingLevels_uz_UZ
+getContinuousNumberingLevels_ve_ZA
+getContinuousNumberingLevels_vi_VN
+getContinuousNumberingLevels_wa_BE
+getContinuousNumberingLevels_xh_ZA
+getContinuousNumberingLevels_zh_HK
+getContinuousNumberingLevels_zh_MO
+getContinuousNumberingLevels_zh_SG
+getContinuousNumberingLevels_zu_ZA
+getDataArea
+getElementFromAccessPath(com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> const&, String const&)
+getExistMark
+getFollowPageWords_af_NA
+getFollowPageWords_ak_GH
+getFollowPageWords_am_ET
+getFollowPageWords_ar_LB
+getFollowPageWords_ar_SA
+getFollowPageWords_ar_TN
+getFollowPageWords_az_AZ
+getFollowPageWords_be_BY
+getFollowPageWords_bg_BG
+getFollowPageWords_bn_BD
+getFollowPageWords_bn_IN
+getFollowPageWords_br_FR
+getFollowPageWords_bs_BA
+getFollowPageWords_ca_ES
+getFollowPageWords_cs_CZ
+getFollowPageWords_cv_RU
+getFollowPageWords_cy_GB
+getFollowPageWords_da_DK
+getFollowPageWords_de_AT
+getFollowPageWords_de_CH
+getFollowPageWords_de_LI
+getFollowPageWords_de_LU
+getFollowPageWords_dz_BT
+getFollowPageWords_ee_GH
+getFollowPageWords_el_GR
+getFollowPageWords_en_AU
+getFollowPageWords_en_BZ
+getFollowPageWords_en_CA
+getFollowPageWords_en_GB
+getFollowPageWords_en_GH
+getFollowPageWords_en_IE
+getFollowPageWords_en_IN
+getFollowPageWords_en_JM
+getFollowPageWords_en_NA
+getFollowPageWords_en_NZ
+getFollowPageWords_en_PH
+getFollowPageWords_en_TT
+getFollowPageWords_en_ZA
+getFollowPageWords_en_ZW
+getFollowPageWords_eo
+getFollowPageWords_es_AR
+getFollowPageWords_es_BO
+getFollowPageWords_es_CL
+getFollowPageWords_es_CO
+getFollowPageWords_es_CR
+getFollowPageWords_es_DO
+getFollowPageWords_es_EC
+getFollowPageWords_es_GT
+getFollowPageWords_es_HN
+getFollowPageWords_es_MX
+getFollowPageWords_es_NI
+getFollowPageWords_es_PA
+getFollowPageWords_es_PE
+getFollowPageWords_es_PR
+getFollowPageWords_es_PY
+getFollowPageWords_es_SV
+getFollowPageWords_es_UY
+getFollowPageWords_es_VE
+getFollowPageWords_et_EE
+getFollowPageWords_eu
+getFollowPageWords_fa_IR
+getFollowPageWords_fi_FI
+getFollowPageWords_fo_FO
+getFollowPageWords_fr_BE
+getFollowPageWords_fr_CA
+getFollowPageWords_fr_CH
+getFollowPageWords_fr_LU
+getFollowPageWords_fr_MC
+getFollowPageWords_fur_IT
+getFollowPageWords_fy_NL
+getFollowPageWords_ga_IE
+getFollowPageWords_gl_ES
+getFollowPageWords_gsc_FR
+getFollowPageWords_gu_IN
+getFollowPageWords_ha_GH
+getFollowPageWords_he_IL
+getFollowPageWords_hi_IN
+getFollowPageWords_hr_HR
+getFollowPageWords_hu_HU
+getFollowPageWords_hy_AM
+getFollowPageWords_ia
+getFollowPageWords_id_ID
+getFollowPageWords_is_IS
+getFollowPageWords_it_CH
+getFollowPageWords_it_IT
+getFollowPageWords_ja_JP
+getFollowPageWords_ka_GE
+getFollowPageWords_kk_KZ
+getFollowPageWords_kl_GL
+getFollowPageWords_km_KH
+getFollowPageWords_kn_IN
+getFollowPageWords_ko_KR
+getFollowPageWords_ku_TR
+getFollowPageWords_ky_KG
+getFollowPageWords_la_VA
+getFollowPageWords_lb_LU
+getFollowPageWords_lg_UG
+getFollowPageWords_ln_CD
+getFollowPageWords_lo_LA
+getFollowPageWords_lt_LT
+getFollowPageWords_lv_LV
+getFollowPageWords_mk_MK
+getFollowPageWords_ml_IN
+getFollowPageWords_mn_MN
+getFollowPageWords_mr_IN
+getFollowPageWords_ms_MY
+getFollowPageWords_nb_NO
+getFollowPageWords_ne_NP
+getFollowPageWords_nl_BE
+getFollowPageWords_nl_NL
+getFollowPageWords_nn_NO
+getFollowPageWords_nr_ZA
+getFollowPageWords_nso_ZA
+getFollowPageWords_oc_FR
+getFollowPageWords_or_IN
+getFollowPageWords_pa_IN
+getFollowPageWords_pl_PL
+getFollowPageWords_pt_BR
+getFollowPageWords_pt_PT
+getFollowPageWords_ro_RO
+getFollowPageWords_ru_RU
+getFollowPageWords_rw_RW
+getFollowPageWords_sg_CF
+getFollowPageWords_sh_YU
+getFollowPageWords_sk_SK
+getFollowPageWords_sl_SI
+getFollowPageWords_sr_YU
+getFollowPageWords_ss_ZA
+getFollowPageWords_st_ZA
+getFollowPageWords_sv_FI
+getFollowPageWords_sw_TZ
+getFollowPageWords_ta_IN
+getFollowPageWords_te_IN
+getFollowPageWords_tg_TJ
+getFollowPageWords_th_TH
+getFollowPageWords_ti_ER
+getFollowPageWords_tn_ZA
+getFollowPageWords_tr_TR
+getFollowPageWords_ts_ZA
+getFollowPageWords_uk_UA
+getFollowPageWords_uz_UZ
+getFollowPageWords_ve_ZA
+getFollowPageWords_vi_VN
+getFollowPageWords_wa_BE
+getFollowPageWords_xh_ZA
+getFollowPageWords_zh_HK
+getFollowPageWords_zh_MO
+getFollowPageWords_zh_SG
+getFollowPageWords_zu_ZA
+getForbiddenCharacters_af_NA
+getForbiddenCharacters_ak_GH
+getForbiddenCharacters_am_ET
+getForbiddenCharacters_ar_LB
+getForbiddenCharacters_ar_SA
+getForbiddenCharacters_ar_TN
+getForbiddenCharacters_az_AZ
+getForbiddenCharacters_be_BY
+getForbiddenCharacters_bg_BG
+getForbiddenCharacters_bn_BD
+getForbiddenCharacters_bn_IN
+getForbiddenCharacters_br_FR
+getForbiddenCharacters_bs_BA
+getForbiddenCharacters_ca_ES
+getForbiddenCharacters_cs_CZ
+getForbiddenCharacters_cv_RU
+getForbiddenCharacters_cy_GB
+getForbiddenCharacters_da_DK
+getForbiddenCharacters_de_AT
+getForbiddenCharacters_de_CH
+getForbiddenCharacters_de_LI
+getForbiddenCharacters_de_LU
+getForbiddenCharacters_dz_BT
+getForbiddenCharacters_ee_GH
+getForbiddenCharacters_el_GR
+getForbiddenCharacters_en_AU
+getForbiddenCharacters_en_BZ
+getForbiddenCharacters_en_CA
+getForbiddenCharacters_en_GH
+getForbiddenCharacters_en_IE
+getForbiddenCharacters_en_IN
+getForbiddenCharacters_en_JM
+getForbiddenCharacters_en_NA
+getForbiddenCharacters_en_NZ
+getForbiddenCharacters_en_PH
+getForbiddenCharacters_en_TT
+getForbiddenCharacters_en_ZA
+getForbiddenCharacters_en_ZW
+getForbiddenCharacters_eo
+getForbiddenCharacters_es_AR
+getForbiddenCharacters_es_BO
+getForbiddenCharacters_es_CL
+getForbiddenCharacters_es_CO
+getForbiddenCharacters_es_CR
+getForbiddenCharacters_es_DO
+getForbiddenCharacters_es_EC
+getForbiddenCharacters_es_GT
+getForbiddenCharacters_es_HN
+getForbiddenCharacters_es_MX
+getForbiddenCharacters_es_NI
+getForbiddenCharacters_es_PA
+getForbiddenCharacters_es_PE
+getForbiddenCharacters_es_PR
+getForbiddenCharacters_es_PY
+getForbiddenCharacters_es_SV
+getForbiddenCharacters_es_UY
+getForbiddenCharacters_es_VE
+getForbiddenCharacters_et_EE
+getForbiddenCharacters_eu
+getForbiddenCharacters_fa_IR
+getForbiddenCharacters_fi_FI
+getForbiddenCharacters_fo_FO
+getForbiddenCharacters_fr_BE
+getForbiddenCharacters_fr_CA
+getForbiddenCharacters_fr_CH
+getForbiddenCharacters_fr_LU
+getForbiddenCharacters_fr_MC
+getForbiddenCharacters_fur_IT
+getForbiddenCharacters_fy_NL
+getForbiddenCharacters_ga_IE
+getForbiddenCharacters_gl_ES
+getForbiddenCharacters_gsc_FR
+getForbiddenCharacters_gu_IN
+getForbiddenCharacters_ha_GH
+getForbiddenCharacters_he_IL
+getForbiddenCharacters_hr_HR
+getForbiddenCharacters_hu_HU
+getForbiddenCharacters_hy_AM
+getForbiddenCharacters_ia
+getForbiddenCharacters_id_ID
+getForbiddenCharacters_is_IS
+getForbiddenCharacters_it_CH
+getForbiddenCharacters_ja_JP
+getForbiddenCharacters_ka_GE
+getForbiddenCharacters_kk_KZ
+getForbiddenCharacters_kl_GL
+getForbiddenCharacters_km_KH
+getForbiddenCharacters_kn_IN
+getForbiddenCharacters_ko_KR
+getForbiddenCharacters_ku_TR
+getForbiddenCharacters_ky_KG
+getForbiddenCharacters_la_VA
+getForbiddenCharacters_lb_LU
+getForbiddenCharacters_lg_UG
+getForbiddenCharacters_ln_CD
+getForbiddenCharacters_lo_LA
+getForbiddenCharacters_lt_LT
+getForbiddenCharacters_lv_LV
+getForbiddenCharacters_mk_MK
+getForbiddenCharacters_ml_IN
+getForbiddenCharacters_mn_MN
+getForbiddenCharacters_mr_IN
+getForbiddenCharacters_ms_MY
+getForbiddenCharacters_nb_NO
+getForbiddenCharacters_ne_NP
+getForbiddenCharacters_nl_BE
+getForbiddenCharacters_nn_NO
+getForbiddenCharacters_nr_ZA
+getForbiddenCharacters_nso_ZA
+getForbiddenCharacters_oc_FR
+getForbiddenCharacters_or_IN
+getForbiddenCharacters_pa_IN
+getForbiddenCharacters_pl_PL
+getForbiddenCharacters_pt_BR
+getForbiddenCharacters_ro_RO
+getForbiddenCharacters_ru_RU
+getForbiddenCharacters_rw_RW
+getForbiddenCharacters_sg_CF
+getForbiddenCharacters_sh_YU
+getForbiddenCharacters_sk_SK
+getForbiddenCharacters_sl_SI
+getForbiddenCharacters_sr_YU
+getForbiddenCharacters_ss_ZA
+getForbiddenCharacters_st_ZA
+getForbiddenCharacters_sv_FI
+getForbiddenCharacters_sw_TZ
+getForbiddenCharacters_ta_IN
+getForbiddenCharacters_te_IN
+getForbiddenCharacters_tg_TJ
+getForbiddenCharacters_th_TH
+getForbiddenCharacters_ti_ER
+getForbiddenCharacters_tn_ZA
+getForbiddenCharacters_tr_TR
+getForbiddenCharacters_ts_ZA
+getForbiddenCharacters_uk_UA
+getForbiddenCharacters_uz_UZ
+getForbiddenCharacters_ve_ZA
+getForbiddenCharacters_vi_VN
+getForbiddenCharacters_wa_BE
+getForbiddenCharacters_xh_ZA
+getForbiddenCharacters_zh_HK
+getForbiddenCharacters_zh_MO
+getForbiddenCharacters_zh_SG
+getForbiddenCharacters_zu_ZA
+getFormComponentAccessPath(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&)
+getHangul2HanjaData
+getHangul2HanjaIndex
+getHangul2HanjaIndexCount
+getHanja2HangulData
+getHanja2HangulIndex
+getIndex1
+getIndex2
+getIndexAlgorithm_af_NA
+getIndexAlgorithm_ak_GH
+getIndexAlgorithm_am_ET
+getIndexAlgorithm_ar_LB
+getIndexAlgorithm_ar_SA
+getIndexAlgorithm_ar_TN
+getIndexAlgorithm_az_AZ
+getIndexAlgorithm_be_BY
+getIndexAlgorithm_bg_BG
+getIndexAlgorithm_bn_BD
+getIndexAlgorithm_bn_IN
+getIndexAlgorithm_br_FR
+getIndexAlgorithm_bs_BA
+getIndexAlgorithm_ca_ES
+getIndexAlgorithm_cs_CZ
+getIndexAlgorithm_cv_RU
+getIndexAlgorithm_cy_GB
+getIndexAlgorithm_da_DK
+getIndexAlgorithm_de_AT
+getIndexAlgorithm_de_CH
+getIndexAlgorithm_de_LI
+getIndexAlgorithm_de_LU
+getIndexAlgorithm_dz_BT
+getIndexAlgorithm_ee_GH
+getIndexAlgorithm_el_GR
+getIndexAlgorithm_en_AU
+getIndexAlgorithm_en_BZ
+getIndexAlgorithm_en_CA
+getIndexAlgorithm_en_GB
+getIndexAlgorithm_en_GH
+getIndexAlgorithm_en_IE
+getIndexAlgorithm_en_IN
+getIndexAlgorithm_en_JM
+getIndexAlgorithm_en_NA
+getIndexAlgorithm_en_NZ
+getIndexAlgorithm_en_PH
+getIndexAlgorithm_en_TT
+getIndexAlgorithm_en_ZA
+getIndexAlgorithm_en_ZW
+getIndexAlgorithm_eo
+getIndexAlgorithm_es_AR
+getIndexAlgorithm_es_BO
+getIndexAlgorithm_es_CL
+getIndexAlgorithm_es_CO
+getIndexAlgorithm_es_CR
+getIndexAlgorithm_es_DO
+getIndexAlgorithm_es_EC
+getIndexAlgorithm_es_GT
+getIndexAlgorithm_es_HN
+getIndexAlgorithm_es_MX
+getIndexAlgorithm_es_NI
+getIndexAlgorithm_es_PA
+getIndexAlgorithm_es_PE
+getIndexAlgorithm_es_PR
+getIndexAlgorithm_es_PY
+getIndexAlgorithm_es_SV
+getIndexAlgorithm_es_UY
+getIndexAlgorithm_es_VE
+getIndexAlgorithm_et_EE
+getIndexAlgorithm_eu
+getIndexAlgorithm_fa_IR
+getIndexAlgorithm_fi_FI
+getIndexAlgorithm_fo_FO
+getIndexAlgorithm_fr_BE
+getIndexAlgorithm_fr_CA
+getIndexAlgorithm_fr_CH
+getIndexAlgorithm_fr_LU
+getIndexAlgorithm_fr_MC
+getIndexAlgorithm_fur_IT
+getIndexAlgorithm_fy_NL
+getIndexAlgorithm_ga_IE
+getIndexAlgorithm_gl_ES
+getIndexAlgorithm_gsc_FR
+getIndexAlgorithm_gu_IN
+getIndexAlgorithm_ha_GH
+getIndexAlgorithm_he_IL
+getIndexAlgorithm_hi_IN
+getIndexAlgorithm_hr_HR
+getIndexAlgorithm_hu_HU
+getIndexAlgorithm_hy_AM
+getIndexAlgorithm_ia
+getIndexAlgorithm_id_ID
+getIndexAlgorithm_is_IS
+getIndexAlgorithm_it_CH
+getIndexAlgorithm_it_IT
+getIndexAlgorithm_ja_JP
+getIndexAlgorithm_ka_GE
+getIndexAlgorithm_kk_KZ
+getIndexAlgorithm_kl_GL
+getIndexAlgorithm_km_KH
+getIndexAlgorithm_kn_IN
+getIndexAlgorithm_ko_KR
+getIndexAlgorithm_ku_TR
+getIndexAlgorithm_ky_KG
+getIndexAlgorithm_la_VA
+getIndexAlgorithm_lb_LU
+getIndexAlgorithm_lg_UG
+getIndexAlgorithm_ln_CD
+getIndexAlgorithm_lo_LA
+getIndexAlgorithm_lt_LT
+getIndexAlgorithm_lv_LV
+getIndexAlgorithm_mk_MK
+getIndexAlgorithm_ml_IN
+getIndexAlgorithm_mn_MN
+getIndexAlgorithm_mr_IN
+getIndexAlgorithm_ms_MY
+getIndexAlgorithm_nb_NO
+getIndexAlgorithm_ne_NP
+getIndexAlgorithm_nl_BE
+getIndexAlgorithm_nl_NL
+getIndexAlgorithm_nn_NO
+getIndexAlgorithm_nr_ZA
+getIndexAlgorithm_nso_ZA
+getIndexAlgorithm_oc_FR
+getIndexAlgorithm_or_IN
+getIndexAlgorithm_pa_IN
+getIndexAlgorithm_pl_PL
+getIndexAlgorithm_pt_BR
+getIndexAlgorithm_pt_PT
+getIndexAlgorithm_ro_RO
+getIndexAlgorithm_ru_RU
+getIndexAlgorithm_rw_RW
+getIndexAlgorithm_sg_CF
+getIndexAlgorithm_sh_YU
+getIndexAlgorithm_sk_SK
+getIndexAlgorithm_sl_SI
+getIndexAlgorithm_sr_YU
+getIndexAlgorithm_ss_ZA
+getIndexAlgorithm_st_ZA
+getIndexAlgorithm_sv_FI
+getIndexAlgorithm_sw_TZ
+getIndexAlgorithm_ta_IN
+getIndexAlgorithm_te_IN
+getIndexAlgorithm_tg_TJ
+getIndexAlgorithm_th_TH
+getIndexAlgorithm_ti_ER
+getIndexAlgorithm_tn_ZA
+getIndexAlgorithm_tr_TR
+getIndexAlgorithm_ts_ZA
+getIndexAlgorithm_uk_UA
+getIndexAlgorithm_uz_UZ
+getIndexAlgorithm_ve_ZA
+getIndexAlgorithm_vi_VN
+getIndexAlgorithm_wa_BE
+getIndexAlgorithm_xh_ZA
+getIndexAlgorithm_zh_HK
+getIndexAlgorithm_zh_MO
+getIndexAlgorithm_zh_SG
+getIndexAlgorithm_zu_ZA
+getLCInfo_af_NA
+getLCInfo_af_ZA
+getLCInfo_ak_GH
+getLCInfo_am_ET
+getLCInfo_ar_EG
+getLCInfo_ar_LB
+getLCInfo_ar_SA
+getLCInfo_ar_TN
+getLCInfo_az_AZ
+getLCInfo_be_BY
+getLCInfo_bg_BG
+getLCInfo_bn_BD
+getLCInfo_bn_IN
+getLCInfo_br_FR
+getLCInfo_bs_BA
+getLCInfo_ca_ES
+getLCInfo_cs_CZ
+getLCInfo_cv_RU
+getLCInfo_cy_GB
+getLCInfo_da_DK
+getLCInfo_de_AT
+getLCInfo_de_CH
+getLCInfo_de_DE
+getLCInfo_de_LI
+getLCInfo_de_LU
+getLCInfo_dz_BT
+getLCInfo_ee_GH
+getLCInfo_el_GR
+getLCInfo_en_AU
+getLCInfo_en_BZ
+getLCInfo_en_CA
+getLCInfo_en_GB
+getLCInfo_en_GH
+getLCInfo_en_IE
+getLCInfo_en_IN
+getLCInfo_en_JM
+getLCInfo_en_NA
+getLCInfo_en_NZ
+getLCInfo_en_PH
+getLCInfo_en_TT
+getLCInfo_en_US
+getLCInfo_en_ZA
+getLCInfo_en_ZW
+getLCInfo_eo
+getLCInfo_es_AR
+getLCInfo_es_BO
+getLCInfo_es_CL
+getLCInfo_es_CO
+getLCInfo_es_CR
+getLCInfo_es_DO
+getLCInfo_es_EC
+getLCInfo_es_ES
+getLCInfo_es_GT
+getLCInfo_es_HN
+getLCInfo_es_MX
+getLCInfo_es_NI
+getLCInfo_es_PA
+getLCInfo_es_PE
+getLCInfo_es_PR
+getLCInfo_es_PY
+getLCInfo_es_SV
+getLCInfo_es_UY
+getLCInfo_es_VE
+getLCInfo_et_EE
+getLCInfo_eu
+getLCInfo_fa_IR
+getLCInfo_fi_FI
+getLCInfo_fo_FO
+getLCInfo_fr_BE
+getLCInfo_fr_CA
+getLCInfo_fr_CH
+getLCInfo_fr_FR
+getLCInfo_fr_LU
+getLCInfo_fr_MC
+getLCInfo_fur_IT
+getLCInfo_fy_NL
+getLCInfo_ga_IE
+getLCInfo_gl_ES
+getLCInfo_gsc_FR
+getLCInfo_gu_IN
+getLCInfo_ha_GH
+getLCInfo_he_IL
+getLCInfo_hi_IN
+getLCInfo_hr_HR
+getLCInfo_hu_HU
+getLCInfo_hy_AM
+getLCInfo_ia
+getLCInfo_id_ID
+getLCInfo_is_IS
+getLCInfo_it_CH
+getLCInfo_it_IT
+getLCInfo_ja_JP
+getLCInfo_ka_GE
+getLCInfo_kk_KZ
+getLCInfo_kl_GL
+getLCInfo_km_KH
+getLCInfo_kn_IN
+getLCInfo_ko_KR
+getLCInfo_ku_TR
+getLCInfo_ky_KG
+getLCInfo_la_VA
+getLCInfo_lb_LU
+getLCInfo_lg_UG
+getLCInfo_ln_CD
+getLCInfo_lo_LA
+getLCInfo_lt_LT
+getLCInfo_lv_LV
+getLCInfo_mk_MK
+getLCInfo_ml_IN
+getLCInfo_mn_MN
+getLCInfo_mr_IN
+getLCInfo_ms_MY
+getLCInfo_nb_NO
+getLCInfo_ne_NP
+getLCInfo_nl_BE
+getLCInfo_nl_NL
+getLCInfo_nn_NO
+getLCInfo_no_NO
+getLCInfo_nr_ZA
+getLCInfo_nso_ZA
+getLCInfo_oc_FR
+getLCInfo_or_IN
+getLCInfo_pa_IN
+getLCInfo_pl_PL
+getLCInfo_pt_BR
+getLCInfo_pt_PT
+getLCInfo_ro_RO
+getLCInfo_ru_RU
+getLCInfo_rw_RW
+getLCInfo_sg_CF
+getLCInfo_sh_YU
+getLCInfo_sk_SK
+getLCInfo_sl_SI
+getLCInfo_sr_YU
+getLCInfo_ss_ZA
+getLCInfo_st_ZA
+getLCInfo_sv_FI
+getLCInfo_sv_SE
+getLCInfo_sw_TZ
+getLCInfo_ta_IN
+getLCInfo_te_IN
+getLCInfo_tg_TJ
+getLCInfo_th_TH
+getLCInfo_ti_ER
+getLCInfo_tn_ZA
+getLCInfo_tr_TR
+getLCInfo_ts_ZA
+getLCInfo_uk_UA
+getLCInfo_uz_UZ
+getLCInfo_ve_ZA
+getLCInfo_vi_VN
+getLCInfo_wa_BE
+getLCInfo_xh_ZA
+getLCInfo_zh_CN
+getLCInfo_zh_HK
+getLCInfo_zh_MO
+getLCInfo_zh_SG
+getLCInfo_zh_TW
+getLCInfo_zu_ZA
+getLenArray
+getLocaleItem_af_NA
+getLocaleItem_ak_GH
+getLocaleItem_am_ET
+getLocaleItem_ar_EG
+getLocaleItem_ar_LB
+getLocaleItem_ar_SA
+getLocaleItem_ar_TN
+getLocaleItem_az_AZ
+getLocaleItem_be_BY
+getLocaleItem_bg_BG
+getLocaleItem_bn_BD
+getLocaleItem_br_FR
+getLocaleItem_bs_BA
+getLocaleItem_ca_ES
+getLocaleItem_cs_CZ
+getLocaleItem_cv_RU
+getLocaleItem_cy_GB
+getLocaleItem_da_DK
+getLocaleItem_de_AT
+getLocaleItem_de_CH
+getLocaleItem_de_DE
+getLocaleItem_de_LI
+getLocaleItem_de_LU
+getLocaleItem_dz_BT
+getLocaleItem_ee_GH
+getLocaleItem_el_GR
+getLocaleItem_en_AU
+getLocaleItem_en_BZ
+getLocaleItem_en_GH
+getLocaleItem_en_IN
+getLocaleItem_en_JM
+getLocaleItem_en_NA
+getLocaleItem_en_NZ
+getLocaleItem_en_PH
+getLocaleItem_en_TT
+getLocaleItem_en_US
+getLocaleItem_en_ZW
+getLocaleItem_eo
+getLocaleItem_es_AR
+getLocaleItem_es_BO
+getLocaleItem_es_CL
+getLocaleItem_es_CO
+getLocaleItem_es_CR
+getLocaleItem_es_EC
+getLocaleItem_es_GT
+getLocaleItem_es_HN
+getLocaleItem_es_MX
+getLocaleItem_es_PA
+getLocaleItem_es_PR
+getLocaleItem_es_SV
+getLocaleItem_es_UY
+getLocaleItem_es_VE
+getLocaleItem_et_EE
+getLocaleItem_eu
+getLocaleItem_fa_IR
+getLocaleItem_fi_FI
+getLocaleItem_fo_FO
+getLocaleItem_fr_BE
+getLocaleItem_fr_CA
+getLocaleItem_fr_CH
+getLocaleItem_fr_LU
+getLocaleItem_fr_MC
+getLocaleItem_fur_IT
+getLocaleItem_fy_NL
+getLocaleItem_ga_IE
+getLocaleItem_gl_ES
+getLocaleItem_gsc_FR
+getLocaleItem_gu_IN
+getLocaleItem_ha_GH
+getLocaleItem_he_IL
+getLocaleItem_hr_HR
+getLocaleItem_hu_HU
+getLocaleItem_hy_AM
+getLocaleItem_ia
+getLocaleItem_id_ID
+getLocaleItem_is_IS
+getLocaleItem_it_CH
+getLocaleItem_it_IT
+getLocaleItem_ja_JP
+getLocaleItem_ka_GE
+getLocaleItem_kk_KZ
+getLocaleItem_kl_GL
+getLocaleItem_km_KH
+getLocaleItem_kn_IN
+getLocaleItem_ko_KR
+getLocaleItem_ku_TR
+getLocaleItem_ky_KG
+getLocaleItem_la_VA
+getLocaleItem_lb_LU
+getLocaleItem_lg_UG
+getLocaleItem_ln_CD
+getLocaleItem_lo_LA
+getLocaleItem_lt_LT
+getLocaleItem_lv_LV
+getLocaleItem_mk_MK
+getLocaleItem_ml_IN
+getLocaleItem_mn_MN
+getLocaleItem_mr_IN
+getLocaleItem_ms_MY
+getLocaleItem_nb_NO
+getLocaleItem_ne_NP
+getLocaleItem_nl_BE
+getLocaleItem_nl_NL
+getLocaleItem_nn_NO
+getLocaleItem_nr_ZA
+getLocaleItem_nso_ZA
+getLocaleItem_oc_FR
+getLocaleItem_or_IN
+getLocaleItem_pa_IN
+getLocaleItem_pl_PL
+getLocaleItem_pt_BR
+getLocaleItem_pt_PT
+getLocaleItem_ro_RO
+getLocaleItem_ru_RU
+getLocaleItem_rw_RW
+getLocaleItem_sg_CF
+getLocaleItem_sh_YU
+getLocaleItem_sk_SK
+getLocaleItem_sl_SI
+getLocaleItem_sr_YU
+getLocaleItem_ss_ZA
+getLocaleItem_st_ZA
+getLocaleItem_sv_FI
+getLocaleItem_sv_SE
+getLocaleItem_sw_TZ
+getLocaleItem_ta_IN
+getLocaleItem_te_IN
+getLocaleItem_tg_TJ
+getLocaleItem_th_TH
+getLocaleItem_ti_ER
+getLocaleItem_tn_ZA
+getLocaleItem_tr_TR
+getLocaleItem_ts_ZA
+getLocaleItem_uk_UA
+getLocaleItem_uz_UZ
+getLocaleItem_ve_ZA
+getLocaleItem_vi_VN
+getLocaleItem_wa_BE
+getLocaleItem_xh_ZA
+getLocaleItem_zh_HK
+getLocaleItem_zh_MO
+getLocaleItem_zh_SG
+getLocaleItem_zu_ZA
+getOutlineNumberingLevels_af_NA
+getOutlineNumberingLevels_af_ZA
+getOutlineNumberingLevels_ak_GH
+getOutlineNumberingLevels_am_ET
+getOutlineNumberingLevels_ar_LB
+getOutlineNumberingLevels_ar_SA
+getOutlineNumberingLevels_ar_TN
+getOutlineNumberingLevels_az_AZ
+getOutlineNumberingLevels_be_BY
+getOutlineNumberingLevels_bg_BG
+getOutlineNumberingLevels_bn_BD
+getOutlineNumberingLevels_bn_IN
+getOutlineNumberingLevels_br_FR
+getOutlineNumberingLevels_bs_BA
+getOutlineNumberingLevels_ca_ES
+getOutlineNumberingLevels_cs_CZ
+getOutlineNumberingLevels_cv_RU
+getOutlineNumberingLevels_cy_GB
+getOutlineNumberingLevels_da_DK
+getOutlineNumberingLevels_de_AT
+getOutlineNumberingLevels_de_CH
+getOutlineNumberingLevels_de_DE
+getOutlineNumberingLevels_de_LI
+getOutlineNumberingLevels_de_LU
+getOutlineNumberingLevels_dz_BT
+getOutlineNumberingLevels_ee_GH
+getOutlineNumberingLevels_el_GR
+getOutlineNumberingLevels_en_AU
+getOutlineNumberingLevels_en_BZ
+getOutlineNumberingLevels_en_CA
+getOutlineNumberingLevels_en_GH
+getOutlineNumberingLevels_en_IN
+getOutlineNumberingLevels_en_JM
+getOutlineNumberingLevels_en_NA
+getOutlineNumberingLevels_en_NZ
+getOutlineNumberingLevels_en_PH
+getOutlineNumberingLevels_en_TT
+getOutlineNumberingLevels_en_ZA
+getOutlineNumberingLevels_en_ZW
+getOutlineNumberingLevels_eo
+getOutlineNumberingLevels_es_AR
+getOutlineNumberingLevels_es_BO
+getOutlineNumberingLevels_es_CL
+getOutlineNumberingLevels_es_CO
+getOutlineNumberingLevels_es_CR
+getOutlineNumberingLevels_es_DO
+getOutlineNumberingLevels_es_EC
+getOutlineNumberingLevels_es_ES
+getOutlineNumberingLevels_es_GT
+getOutlineNumberingLevels_es_HN
+getOutlineNumberingLevels_es_MX
+getOutlineNumberingLevels_es_NI
+getOutlineNumberingLevels_es_PA
+getOutlineNumberingLevels_es_PE
+getOutlineNumberingLevels_es_PR
+getOutlineNumberingLevels_es_PY
+getOutlineNumberingLevels_es_SV
+getOutlineNumberingLevels_es_UY
+getOutlineNumberingLevels_es_VE
+getOutlineNumberingLevels_et_EE
+getOutlineNumberingLevels_eu
+getOutlineNumberingLevels_fa_IR
+getOutlineNumberingLevels_fi_FI
+getOutlineNumberingLevels_fo_FO
+getOutlineNumberingLevels_fr_CA
+getOutlineNumberingLevels_fr_CH
+getOutlineNumberingLevels_fr_FR
+getOutlineNumberingLevels_fr_LU
+getOutlineNumberingLevels_fr_MC
+getOutlineNumberingLevels_fur_IT
+getOutlineNumberingLevels_fy_NL
+getOutlineNumberingLevels_ga_IE
+getOutlineNumberingLevels_gl_ES
+getOutlineNumberingLevels_gsc_FR
+getOutlineNumberingLevels_gu_IN
+getOutlineNumberingLevels_ha_GH
+getOutlineNumberingLevels_he_IL
+getOutlineNumberingLevels_hr_HR
+getOutlineNumberingLevels_hu_HU
+getOutlineNumberingLevels_hy_AM
+getOutlineNumberingLevels_ia
+getOutlineNumberingLevels_id_ID
+getOutlineNumberingLevels_is_IS
+getOutlineNumberingLevels_it_CH
+getOutlineNumberingLevels_it_IT
+getOutlineNumberingLevels_ja_JP
+getOutlineNumberingLevels_ka_GE
+getOutlineNumberingLevels_kk_KZ
+getOutlineNumberingLevels_kl_GL
+getOutlineNumberingLevels_km_KH
+getOutlineNumberingLevels_kn_IN
+getOutlineNumberingLevels_ko_KR
+getOutlineNumberingLevels_ku_TR
+getOutlineNumberingLevels_ky_KG
+getOutlineNumberingLevels_la_VA
+getOutlineNumberingLevels_lb_LU
+getOutlineNumberingLevels_lg_UG
+getOutlineNumberingLevels_ln_CD
+getOutlineNumberingLevels_lo_LA
+getOutlineNumberingLevels_lt_LT
+getOutlineNumberingLevels_lv_LV
+getOutlineNumberingLevels_mk_MK
+getOutlineNumberingLevels_ml_IN
+getOutlineNumberingLevels_mn_MN
+getOutlineNumberingLevels_mr_IN
+getOutlineNumberingLevels_ms_MY
+getOutlineNumberingLevels_nb_NO
+getOutlineNumberingLevels_ne_NP
+getOutlineNumberingLevels_nl_BE
+getOutlineNumberingLevels_nl_NL
+getOutlineNumberingLevels_nn_NO
+getOutlineNumberingLevels_nr_ZA
+getOutlineNumberingLevels_nso_ZA
+getOutlineNumberingLevels_oc_FR
+getOutlineNumberingLevels_or_IN
+getOutlineNumberingLevels_pa_IN
+getOutlineNumberingLevels_pl_PL
+getOutlineNumberingLevels_pt_BR
+getOutlineNumberingLevels_pt_PT
+getOutlineNumberingLevels_ro_RO
+getOutlineNumberingLevels_ru_RU
+getOutlineNumberingLevels_rw_RW
+getOutlineNumberingLevels_sg_CF
+getOutlineNumberingLevels_sh_YU
+getOutlineNumberingLevels_sk_SK
+getOutlineNumberingLevels_sl_SI
+getOutlineNumberingLevels_sr_YU
+getOutlineNumberingLevels_ss_ZA
+getOutlineNumberingLevels_st_ZA
+getOutlineNumberingLevels_sv_FI
+getOutlineNumberingLevels_sv_SE
+getOutlineNumberingLevels_sw_TZ
+getOutlineNumberingLevels_ta_IN
+getOutlineNumberingLevels_te_IN
+getOutlineNumberingLevels_tg_TJ
+getOutlineNumberingLevels_th_TH
+getOutlineNumberingLevels_ti_ER
+getOutlineNumberingLevels_tn_ZA
+getOutlineNumberingLevels_tr_TR
+getOutlineNumberingLevels_ts_ZA
+getOutlineNumberingLevels_uk_UA
+getOutlineNumberingLevels_uz_UZ
+getOutlineNumberingLevels_ve_ZA
+getOutlineNumberingLevels_vi_VN
+getOutlineNumberingLevels_wa_BE
+getOutlineNumberingLevels_xh_ZA
+getOutlineNumberingLevels_zh_HK
+getOutlineNumberingLevels_zh_MO
+getOutlineNumberingLevels_zh_SG
+getOutlineNumberingLevels_zu_ZA
+getReservedWords_af_NA
+getReservedWords_ak_GH
+getReservedWords_am_ET
+getReservedWords_ar_LB
+getReservedWords_ar_SA
+getReservedWords_ar_TN
+getReservedWords_az_AZ
+getReservedWords_be_BY
+getReservedWords_bg_BG
+getReservedWords_bn_BD
+getReservedWords_bn_IN
+getReservedWords_br_FR
+getReservedWords_bs_BA
+getReservedWords_ca_ES
+getReservedWords_cs_CZ
+getReservedWords_cv_RU
+getReservedWords_cy_GB
+getReservedWords_da_DK
+getReservedWords_de_AT
+getReservedWords_de_CH
+getReservedWords_de_LI
+getReservedWords_de_LU
+getReservedWords_dz_BT
+getReservedWords_ee_GH
+getReservedWords_el_GR
+getReservedWords_en_AU
+getReservedWords_en_BZ
+getReservedWords_en_CA
+getReservedWords_en_GH
+getReservedWords_en_IE
+getReservedWords_en_IN
+getReservedWords_en_JM
+getReservedWords_en_NA
+getReservedWords_en_NZ
+getReservedWords_en_PH
+getReservedWords_en_TT
+getReservedWords_en_ZA
+getReservedWords_en_ZW
+getReservedWords_eo
+getReservedWords_es_AR
+getReservedWords_es_BO
+getReservedWords_es_CL
+getReservedWords_es_CO
+getReservedWords_es_CR
+getReservedWords_es_DO
+getReservedWords_es_EC
+getReservedWords_es_GT
+getReservedWords_es_HN
+getReservedWords_es_MX
+getReservedWords_es_NI
+getReservedWords_es_PA
+getReservedWords_es_PE
+getReservedWords_es_PR
+getReservedWords_es_PY
+getReservedWords_es_SV
+getReservedWords_es_UY
+getReservedWords_es_VE
+getReservedWords_et_EE
+getReservedWords_eu
+getReservedWords_fa_IR
+getReservedWords_fi_FI
+getReservedWords_fo_FO
+getReservedWords_fr_BE
+getReservedWords_fr_CA
+getReservedWords_fr_CH
+getReservedWords_fr_LU
+getReservedWords_fr_MC
+getReservedWords_fur_IT
+getReservedWords_fy_NL
+getReservedWords_ga_IE
+getReservedWords_gl_ES
+getReservedWords_gsc_FR
+getReservedWords_gu_IN
+getReservedWords_ha_GH
+getReservedWords_he_IL
+getReservedWords_hr_HR
+getReservedWords_hu_HU
+getReservedWords_hy_AM
+getReservedWords_ia
+getReservedWords_id_ID
+getReservedWords_is_IS
+getReservedWords_it_CH
+getReservedWords_ja_JP
+getReservedWords_ka_GE
+getReservedWords_kk_KZ
+getReservedWords_kl_GL
+getReservedWords_km_KH
+getReservedWords_kn_IN
+getReservedWords_ko_KR
+getReservedWords_ku_TR
+getReservedWords_ky_KG
+getReservedWords_la_VA
+getReservedWords_lb_LU
+getReservedWords_lg_UG
+getReservedWords_ln_CD
+getReservedWords_lo_LA
+getReservedWords_lt_LT
+getReservedWords_lv_LV
+getReservedWords_mk_MK
+getReservedWords_ml_IN
+getReservedWords_mn_MN
+getReservedWords_mr_IN
+getReservedWords_ms_MY
+getReservedWords_nb_NO
+getReservedWords_ne_NP
+getReservedWords_nl_BE
+getReservedWords_nn_NO
+getReservedWords_nr_ZA
+getReservedWords_nso_ZA
+getReservedWords_oc_FR
+getReservedWords_or_IN
+getReservedWords_pa_IN
+getReservedWords_pl_PL
+getReservedWords_pt_BR
+getReservedWords_ro_RO
+getReservedWords_ru_RU
+getReservedWords_rw_RW
+getReservedWords_sg_CF
+getReservedWords_sh_YU
+getReservedWords_sk_SK
+getReservedWords_sl_SI
+getReservedWords_sr_YU
+getReservedWords_ss_ZA
+getReservedWords_st_ZA
+getReservedWords_sv_FI
+getReservedWords_sw_TZ
+getReservedWords_ta_IN
+getReservedWords_te_IN
+getReservedWords_tg_TJ
+getReservedWords_th_TH
+getReservedWords_ti_ER
+getReservedWords_tn_ZA
+getReservedWords_tr_TR
+getReservedWords_ts_ZA
+getReservedWords_uk_UA
+getReservedWords_uz_UZ
+getReservedWords_ve_ZA
+getReservedWords_vi_VN
+getReservedWords_wa_BE
+getReservedWords_xh_ZA
+getReservedWords_zh_HK
+getReservedWords_zh_MO
+getReservedWords_zh_SG
+getReservedWords_zu_ZA
+getSTC_CharData_S2T
+getSTC_CharData_S2V
+getSTC_CharData_T2S
+getSTC_CharIndex_S2T
+getSTC_CharIndex_S2V
+getSTC_CharIndex_T2S
+getSTC_WordData
+getSTC_WordEntry_S2T
+getSTC_WordEntry_T2S
+getSTC_WordIndex_S2T
+getSTC_WordIndex_T2S
+getSearchOptions_af_NA
+getSearchOptions_af_ZA
+getSearchOptions_ak_GH
+getSearchOptions_am_ET
+getSearchOptions_ar_EG
+getSearchOptions_ar_LB
+getSearchOptions_ar_SA
+getSearchOptions_ar_TN
+getSearchOptions_az_AZ
+getSearchOptions_be_BY
+getSearchOptions_bg_BG
+getSearchOptions_bn_BD
+getSearchOptions_bn_IN
+getSearchOptions_br_FR
+getSearchOptions_bs_BA
+getSearchOptions_ca_ES
+getSearchOptions_cs_CZ
+getSearchOptions_cv_RU
+getSearchOptions_cy_GB
+getSearchOptions_da_DK
+getSearchOptions_de_AT
+getSearchOptions_de_CH
+getSearchOptions_de_DE
+getSearchOptions_de_LI
+getSearchOptions_de_LU
+getSearchOptions_dz_BT
+getSearchOptions_ee_GH
+getSearchOptions_el_GR
+getSearchOptions_en_AU
+getSearchOptions_en_BZ
+getSearchOptions_en_CA
+getSearchOptions_en_GH
+getSearchOptions_en_IN
+getSearchOptions_en_JM
+getSearchOptions_en_NA
+getSearchOptions_en_NZ
+getSearchOptions_en_PH
+getSearchOptions_en_TT
+getSearchOptions_en_ZA
+getSearchOptions_en_ZW
+getSearchOptions_eo
+getSearchOptions_es_AR
+getSearchOptions_es_BO
+getSearchOptions_es_CL
+getSearchOptions_es_CO
+getSearchOptions_es_CR
+getSearchOptions_es_DO
+getSearchOptions_es_EC
+getSearchOptions_es_ES
+getSearchOptions_es_GT
+getSearchOptions_es_HN
+getSearchOptions_es_MX
+getSearchOptions_es_NI
+getSearchOptions_es_PA
+getSearchOptions_es_PE
+getSearchOptions_es_PR
+getSearchOptions_es_PY
+getSearchOptions_es_SV
+getSearchOptions_es_UY
+getSearchOptions_es_VE
+getSearchOptions_et_EE
+getSearchOptions_eu
+getSearchOptions_fa_IR
+getSearchOptions_fi_FI
+getSearchOptions_fo_FO
+getSearchOptions_fr_CA
+getSearchOptions_fr_CH
+getSearchOptions_fr_FR
+getSearchOptions_fr_LU
+getSearchOptions_fr_MC
+getSearchOptions_fur_IT
+getSearchOptions_fy_NL
+getSearchOptions_ga_IE
+getSearchOptions_gl_ES
+getSearchOptions_gsc_FR
+getSearchOptions_gu_IN
+getSearchOptions_ha_GH
+getSearchOptions_he_IL
+getSearchOptions_hr_HR
+getSearchOptions_hu_HU
+getSearchOptions_hy_AM
+getSearchOptions_ia
+getSearchOptions_id_ID
+getSearchOptions_is_IS
+getSearchOptions_it_CH
+getSearchOptions_it_IT
+getSearchOptions_ja_JP
+getSearchOptions_ka_GE
+getSearchOptions_kk_KZ
+getSearchOptions_kl_GL
+getSearchOptions_km_KH
+getSearchOptions_kn_IN
+getSearchOptions_ko_KR
+getSearchOptions_ku_TR
+getSearchOptions_ky_KG
+getSearchOptions_la_VA
+getSearchOptions_lb_LU
+getSearchOptions_lg_UG
+getSearchOptions_ln_CD
+getSearchOptions_lo_LA
+getSearchOptions_lt_LT
+getSearchOptions_lv_LV
+getSearchOptions_mk_MK
+getSearchOptions_ml_IN
+getSearchOptions_mn_MN
+getSearchOptions_mr_IN
+getSearchOptions_ms_MY
+getSearchOptions_nb_NO
+getSearchOptions_ne_NP
+getSearchOptions_nl_BE
+getSearchOptions_nl_NL
+getSearchOptions_nn_NO
+getSearchOptions_nr_ZA
+getSearchOptions_nso_ZA
+getSearchOptions_oc_FR
+getSearchOptions_or_IN
+getSearchOptions_pa_IN
+getSearchOptions_pl_PL
+getSearchOptions_pt_BR
+getSearchOptions_pt_PT
+getSearchOptions_ro_RO
+getSearchOptions_ru_RU
+getSearchOptions_rw_RW
+getSearchOptions_sg_CF
+getSearchOptions_sh_YU
+getSearchOptions_sk_SK
+getSearchOptions_sl_SI
+getSearchOptions_sr_YU
+getSearchOptions_ss_ZA
+getSearchOptions_st_ZA
+getSearchOptions_sv_FI
+getSearchOptions_sv_SE
+getSearchOptions_sw_TZ
+getSearchOptions_ta_IN
+getSearchOptions_te_IN
+getSearchOptions_tg_TJ
+getSearchOptions_th_TH
+getSearchOptions_ti_ER
+getSearchOptions_tn_ZA
+getSearchOptions_tr_TR
+getSearchOptions_ts_ZA
+getSearchOptions_uk_UA
+getSearchOptions_uz_UZ
+getSearchOptions_ve_ZA
+getSearchOptions_vi_VN
+getSearchOptions_wa_BE
+getSearchOptions_xh_ZA
+getSearchOptions_zh_HK
+getSearchOptions_zh_MO
+getSearchOptions_zh_SG
+getSearchOptions_zh_TW
+getSearchOptions_zu_ZA
+getSimpleTokenizer()
+getStandardAccessibleFactory
+getStaticTypes()
+getSvtAccessibilityComponentFactory
+getSystemPathFromFileURL(rtl::OUString const&)
+getTempName()
+getTransliterations_af_NA
+getTransliterations_af_ZA
+getTransliterations_ak_GH
+getTransliterations_am_ET
+getTransliterations_ar_EG
+getTransliterations_ar_LB
+getTransliterations_ar_SA
+getTransliterations_ar_TN
+getTransliterations_az_AZ
+getTransliterations_be_BY
+getTransliterations_bg_BG
+getTransliterations_bn_BD
+getTransliterations_bn_IN
+getTransliterations_br_FR
+getTransliterations_bs_BA
+getTransliterations_ca_ES
+getTransliterations_cs_CZ
+getTransliterations_cv_RU
+getTransliterations_cy_GB
+getTransliterations_da_DK
+getTransliterations_de_AT
+getTransliterations_de_CH
+getTransliterations_de_DE
+getTransliterations_de_LI
+getTransliterations_de_LU
+getTransliterations_dz_BT
+getTransliterations_ee_GH
+getTransliterations_el_GR
+getTransliterations_en_AU
+getTransliterations_en_BZ
+getTransliterations_en_CA
+getTransliterations_en_GH
+getTransliterations_en_IN
+getTransliterations_en_JM
+getTransliterations_en_NA
+getTransliterations_en_NZ
+getTransliterations_en_PH
+getTransliterations_en_TT
+getTransliterations_en_ZA
+getTransliterations_en_ZW
+getTransliterations_eo
+getTransliterations_es_AR
+getTransliterations_es_BO
+getTransliterations_es_CL
+getTransliterations_es_CO
+getTransliterations_es_CR
+getTransliterations_es_DO
+getTransliterations_es_EC
+getTransliterations_es_ES
+getTransliterations_es_GT
+getTransliterations_es_HN
+getTransliterations_es_MX
+getTransliterations_es_NI
+getTransliterations_es_PA
+getTransliterations_es_PE
+getTransliterations_es_PR
+getTransliterations_es_PY
+getTransliterations_es_SV
+getTransliterations_es_UY
+getTransliterations_es_VE
+getTransliterations_et_EE
+getTransliterations_eu
+getTransliterations_fa_IR
+getTransliterations_fi_FI
+getTransliterations_fo_FO
+getTransliterations_fr_CA
+getTransliterations_fr_CH
+getTransliterations_fr_FR
+getTransliterations_fr_LU
+getTransliterations_fr_MC
+getTransliterations_fur_IT
+getTransliterations_fy_NL
+getTransliterations_ga_IE
+getTransliterations_gl_ES
+getTransliterations_gsc_FR
+getTransliterations_gu_IN
+getTransliterations_ha_GH
+getTransliterations_he_IL
+getTransliterations_hi_IN
+getTransliterations_hr_HR
+getTransliterations_hu_HU
+getTransliterations_hy_AM
+getTransliterations_ia
+getTransliterations_id_ID
+getTransliterations_is_IS
+getTransliterations_it_CH
+getTransliterations_it_IT
+getTransliterations_ja_JP
+getTransliterations_ka_GE
+getTransliterations_kk_KZ
+getTransliterations_kl_GL
+getTransliterations_km_KH
+getTransliterations_kn_IN
+getTransliterations_ko_KR
+getTransliterations_ku_TR
+getTransliterations_ky_KG
+getTransliterations_la_VA
+getTransliterations_lb_LU
+getTransliterations_lg_UG
+getTransliterations_ln_CD
+getTransliterations_lo_LA
+getTransliterations_lt_LT
+getTransliterations_lv_LV
+getTransliterations_mk_MK
+getTransliterations_ml_IN
+getTransliterations_mn_MN
+getTransliterations_mr_IN
+getTransliterations_ms_MY
+getTransliterations_nb_NO
+getTransliterations_ne_NP
+getTransliterations_nl_BE
+getTransliterations_nl_NL
+getTransliterations_nn_NO
+getTransliterations_nr_ZA
+getTransliterations_nso_ZA
+getTransliterations_oc_FR
+getTransliterations_or_IN
+getTransliterations_pa_IN
+getTransliterations_pl_PL
+getTransliterations_pt_BR
+getTransliterations_pt_PT
+getTransliterations_ro_RO
+getTransliterations_ru_RU
+getTransliterations_rw_RW
+getTransliterations_sg_CF
+getTransliterations_sh_YU
+getTransliterations_sk_SK
+getTransliterations_sl_SI
+getTransliterations_sr_YU
+getTransliterations_ss_ZA
+getTransliterations_st_ZA
+getTransliterations_sv_FI
+getTransliterations_sv_SE
+getTransliterations_sw_TZ
+getTransliterations_ta_IN
+getTransliterations_te_IN
+getTransliterations_tg_TJ
+getTransliterations_th_TH
+getTransliterations_ti_ER
+getTransliterations_tn_ZA
+getTransliterations_tr_TR
+getTransliterations_ts_ZA
+getTransliterations_uk_UA
+getTransliterations_uz_UZ
+getTransliterations_ve_ZA
+getTransliterations_vi_VN
+getTransliterations_wa_BE
+getTransliterations_xh_ZA
+getTransliterations_zh_HK
+getTransliterations_zh_MO
+getTransliterations_zh_SG
+getTransliterations_zu_ZA
+getUnicodeScripts_af_NA
+getUnicodeScripts_ak_GH
+getUnicodeScripts_am_ET
+getUnicodeScripts_ar_LB
+getUnicodeScripts_ar_SA
+getUnicodeScripts_ar_TN
+getUnicodeScripts_az_AZ
+getUnicodeScripts_be_BY
+getUnicodeScripts_bg_BG
+getUnicodeScripts_bn_BD
+getUnicodeScripts_bn_IN
+getUnicodeScripts_br_FR
+getUnicodeScripts_bs_BA
+getUnicodeScripts_ca_ES
+getUnicodeScripts_cs_CZ
+getUnicodeScripts_cv_RU
+getUnicodeScripts_cy_GB
+getUnicodeScripts_da_DK
+getUnicodeScripts_de_AT
+getUnicodeScripts_de_CH
+getUnicodeScripts_de_LI
+getUnicodeScripts_de_LU
+getUnicodeScripts_dz_BT
+getUnicodeScripts_ee_GH
+getUnicodeScripts_el_GR
+getUnicodeScripts_en_AU
+getUnicodeScripts_en_BZ
+getUnicodeScripts_en_CA
+getUnicodeScripts_en_GB
+getUnicodeScripts_en_GH
+getUnicodeScripts_en_IE
+getUnicodeScripts_en_IN
+getUnicodeScripts_en_JM
+getUnicodeScripts_en_NA
+getUnicodeScripts_en_NZ
+getUnicodeScripts_en_PH
+getUnicodeScripts_en_TT
+getUnicodeScripts_en_ZA
+getUnicodeScripts_en_ZW
+getUnicodeScripts_eo
+getUnicodeScripts_es_AR
+getUnicodeScripts_es_BO
+getUnicodeScripts_es_CL
+getUnicodeScripts_es_CO
+getUnicodeScripts_es_CR
+getUnicodeScripts_es_DO
+getUnicodeScripts_es_EC
+getUnicodeScripts_es_GT
+getUnicodeScripts_es_HN
+getUnicodeScripts_es_MX
+getUnicodeScripts_es_NI
+getUnicodeScripts_es_PA
+getUnicodeScripts_es_PE
+getUnicodeScripts_es_PR
+getUnicodeScripts_es_PY
+getUnicodeScripts_es_SV
+getUnicodeScripts_es_UY
+getUnicodeScripts_es_VE
+getUnicodeScripts_et_EE
+getUnicodeScripts_eu
+getUnicodeScripts_fa_IR
+getUnicodeScripts_fi_FI
+getUnicodeScripts_fo_FO
+getUnicodeScripts_fr_BE
+getUnicodeScripts_fr_CA
+getUnicodeScripts_fr_CH
+getUnicodeScripts_fr_LU
+getUnicodeScripts_fr_MC
+getUnicodeScripts_fur_IT
+getUnicodeScripts_fy_NL
+getUnicodeScripts_ga_IE
+getUnicodeScripts_gl_ES
+getUnicodeScripts_gsc_FR
+getUnicodeScripts_gu_IN
+getUnicodeScripts_ha_GH
+getUnicodeScripts_he_IL
+getUnicodeScripts_hi_IN
+getUnicodeScripts_hr_HR
+getUnicodeScripts_hu_HU
+getUnicodeScripts_hy_AM
+getUnicodeScripts_ia
+getUnicodeScripts_id_ID
+getUnicodeScripts_is_IS
+getUnicodeScripts_it_CH
+getUnicodeScripts_it_IT
+getUnicodeScripts_ja_JP
+getUnicodeScripts_ka_GE
+getUnicodeScripts_kk_KZ
+getUnicodeScripts_kl_GL
+getUnicodeScripts_km_KH
+getUnicodeScripts_kn_IN
+getUnicodeScripts_ko_KR
+getUnicodeScripts_ku_TR
+getUnicodeScripts_ky_KG
+getUnicodeScripts_la_VA
+getUnicodeScripts_lb_LU
+getUnicodeScripts_lg_UG
+getUnicodeScripts_ln_CD
+getUnicodeScripts_lo_LA
+getUnicodeScripts_lt_LT
+getUnicodeScripts_lv_LV
+getUnicodeScripts_mk_MK
+getUnicodeScripts_ml_IN
+getUnicodeScripts_mn_MN
+getUnicodeScripts_mr_IN
+getUnicodeScripts_ms_MY
+getUnicodeScripts_nb_NO
+getUnicodeScripts_ne_NP
+getUnicodeScripts_nl_BE
+getUnicodeScripts_nl_NL
+getUnicodeScripts_nn_NO
+getUnicodeScripts_nr_ZA
+getUnicodeScripts_nso_ZA
+getUnicodeScripts_oc_FR
+getUnicodeScripts_or_IN
+getUnicodeScripts_pa_IN
+getUnicodeScripts_pl_PL
+getUnicodeScripts_pt_BR
+getUnicodeScripts_pt_PT
+getUnicodeScripts_ro_RO
+getUnicodeScripts_ru_RU
+getUnicodeScripts_rw_RW
+getUnicodeScripts_sg_CF
+getUnicodeScripts_sh_YU
+getUnicodeScripts_sk_SK
+getUnicodeScripts_sl_SI
+getUnicodeScripts_sr_YU
+getUnicodeScripts_ss_ZA
+getUnicodeScripts_st_ZA
+getUnicodeScripts_sv_FI
+getUnicodeScripts_sw_TZ
+getUnicodeScripts_ta_IN
+getUnicodeScripts_te_IN
+getUnicodeScripts_tg_TJ
+getUnicodeScripts_th_TH
+getUnicodeScripts_ti_ER
+getUnicodeScripts_tn_ZA
+getUnicodeScripts_tr_TR
+getUnicodeScripts_ts_ZA
+getUnicodeScripts_uk_UA
+getUnicodeScripts_uz_UZ
+getUnicodeScripts_ve_ZA
+getUnicodeScripts_vi_VN
+getUnicodeScripts_wa_BE
+getUnicodeScripts_xh_ZA
+getUnicodeScripts_zh_HK
+getUnicodeScripts_zh_MO
+getUnicodeScripts_zh_SG
+getUnicodeScripts_zu_ZA
+get_default_enc(char const*)
+get_dz_charset
+get_hu_charset
+get_indexdata_ko_dict
+get_indexdata_zh_TW_radical
+get_indexdata_zh_TW_stroke
+get_indexdata_zh_pinyin
+get_indexdata_zh_radical
+get_indexdata_zh_stroke
+get_indexdata_zh_zhuyin
+get_ja_charset
+get_ja_phonetic_alphanumeric_first
+get_ja_phonetic_alphanumeric_last
+get_km_charset
+get_ko_charset
+get_ko_phonetic
+get_ku_alphanumeric
+get_ln_charset
+get_ne_charset
+get_stripped_class
+get_vi_charset
+get_zh_TW_charset
+get_zh_TW_radical
+get_zh_TW_stroke
+get_zh_charset
+get_zh_pinyin
+get_zh_radical
+get_zh_stroke
+get_zh_zhuyin
+geteuid
+gnome_gconf_get_gnome_libs_settings_relative
+gz_seek(gz_stream*, long, int)
+gz_tell(gz_stream*)
+gz_write(gz_stream*, void*, unsigned int)
+implChDir(String const&)
+implChDrive(String const&)
+implGetCurDir()
+impl_Rectangle_Struct2Object(com::sun::star::awt::Rectangle const&)
+initKApplication
+initRegistry_Api
+initpyuno
+isLocalNotFile_Impl(rtl::OUString)
+jfw::CJavaInfo::CJavaInfo(_JavaInfo const*)
+jfw::CJavaInfo::getRequirements() const
+jfw::CJavaInfo::getVendorData() const
+jfw::CJavaInfo::getVersion() const
+jfw::CNodeJavaInfo::CNodeJavaInfo(_JavaInfo const*)
+jfw::MergedSettings::getJavaInfoAttrAutoSelect() const
+jfw::MergedSettings::getVmParameters() const
+jfw::findChildNode(_xmlNode const*, unsigned char const*)
+jfw::getApplicationBase()
+jfw::getFileFromURL(rtl::OUString const&)
+jfw_plugin::AsynchReader::getData()
+jfw_plugin::SunVersion::SunVersion()
+jfw_plugin::VendorBase::createInstance()
+jfw_plugin::VendorBase::getJavaExePaths(int*)
+jfw_plugin_getAllJavaInfos
+jfw_plugin_getJavaInfoByPath
+lclGetCellInfoXFromArrayCol(unsigned long, unsigned short, unsigned short, bool)
+lcl_AttrArea(ScDocument*, short, short, int, short, int, SfxPoolItem const&)
+lcl_Bool2Any(com::sun::star::uno::Any&)
+lcl_Bool2Any(unsigned char)
+lcl_CmdStr(unsigned short)
+lcl_ColumnTitle(ScDocument*, unsigned short, unsigned short, unsigned short)
+lcl_DrawGraphic(Bitmap const&, OutputDevice*, Rectangle const&, Rectangle const&)
+lcl_ExtractUIName(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>)
+lcl_FindFirstBox(SwTable const&)
+lcl_FindLastBox(SwTable const&)
+lcl_FontChangedHint(SfxHint const&)
+lcl_GetDocument(SdrObject*)
+lcl_GetRealNameFor(rtl::OUString const&, Mapping const&)
+lcl_GetRowCount(com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection> const&, String const&)
+lcl_GetServiceName(unsigned char)
+lcl_GetVertPaperSize(ScDocument*, short, int, short)
+lcl_IsNumeric(String const&)
+lcl_IsValueCol(ScDocument*, short, int, int, short)
+lcl_IsValueDataAtPos(unsigned char&, ScDocument*, short, int, short)
+lcl_LoadFieldArr(SvStream&, PivotField*, unsigned short)
+lcl_LoadFieldArr30(SvStream&, PivotField*, unsigned short)
+lcl_LoadRange(SvStream&, ScRange**)
+lcl_MakeTabEntry(SfxFilter const*)
+lcl_MoveBox(long, Edit&, Edit&)
+lcl_ReadEditStateInfo(SvStream&, Sc10EditStateInfo&)
+lcl_ReadFileInfo(SvStream&, Sc10FileInfo&)
+lcl_SaveFieldArr(SvStream&, PivotField const*, unsigned short)
+lcl_SaveFlags(SvStream&, unsigned char*, unsigned short)
+lcl_SaveOldFieldArr(SvStream&, com::sun::star::uno::Reference<com::sun::star::sheet::XDimensionsSupplier> const&, unsigned short, short, unsigned char)
+lcl_SaveRange(SvStream&, ScRange const*)
+lcl_SaveValue(SvStream&, unsigned short*, unsigned short)
+lcl_SetSaveData(com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> const&, ScDPSaveData*)
+lcl_asXValueBinding(xforms::Binding*)
+lcl_createXFormsBinding()
+lcl_findXText(com::sun::star::uno::Reference<com::sun::star::text::XTextSection> const&)
+lcl_getXFormsModel(com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&)
+lcl_pointsToHmm(double)
+lcl_replaceAll(rtl::OUString const&, rtl::OUString, rtl::OUString)
+legcy_getBinfilterInitState
+linguistic::FileExists(String const&)
+linguistic::GetLanguageState(short, linguistic::LanguageState*)
+linguistic::GetTextEncoding(short)
+linguistic::IsLower(String const&, unsigned short, unsigned short, short)
+linguistic::LanguageState::GetState(linguistic::ModuleName)
+linguistic::MergeProposals(com::sun::star::uno::Reference<com::sun::star::linguistic2::XSpellAlternatives>&, com::sun::star::uno::Reference<com::sun::star::linguistic2::XSpellAlternatives>&)
+linguistic::PropertyHelper_Hyph::PropertyHelper_Hyph(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>&)
+linguistic::PropertyHelper_Spell::PropertyHelper_Spell(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>&)
+linguistic::PropertyHelper_Thes::PropertyHelper_Thes(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>&)
+linguistic::SpellAlternatives::SpellAlternatives(rtl::OUString const&, short, short, rtl::OUString const&)
+linguistic::StripTrailingChars(rtl::OUString&, unsigned short)
+linguistic::SuppLanguages::GetLanguages() const
+linguistic::SuppLanguages::SuppLanguages(linguistic::LanguageState*, unsigned short)
+linguistic::ThesaurusMeaning::ThesaurusMeaning(rtl::OUString const&, rtl::OUString const&, short)
+linguistic::ToLower(unsigned short, short)
+linguistic::ToTitle(String const&, short)
+linguistic::ToUpper(String const&, short)
+linguistic::ToUpper(unsigned short, short)
+listAtFirst
+listAtLast
+listCopy
+listForAll
+listInsertAfter
+listInsertBefore
+listNewCopy
+listPosition
+listPrepend
+listPrev
+listToArray
+logging::(anonymous namespace)::lcl_substituteFileHandlerURLVariables_nothrow(com::sun::star::uno::Reference<com::sun::star::logging::XLogger> const&, rtl::OUString&)::Variable::Variable(Variable const&)
+logging::(anonymous namespace)::lcl_substituteFileHandlerURLVariables_nothrow(com::sun::star::uno::Reference<com::sun::star::logging::XLogger> const&, rtl::OUString&)::Variable::~Variable()
+lower(char*)
+main
+matchKDEVersion
+mgcLinearSystem::DeleteMatrix(int, float**)
+mgcLinearSystem::DeleteVector(int, float*)
+mgcLinearSystem::Inverse(int, float**)
+mgcLinearSystem::NewMatrix(int)
+mgcLinearSystem::NewVector(int)
+mgcLinearSystem::Solve(int, float**, float*)
+mgcLinearSystem::SolveConstTri(int, float, float, float, float*, float*)
+mgcLinearSystem::SolveSymmetric(int, float**, float*)
+mgcLinearSystem::SolveTri(int, float*, float*, float*, float*, float*)
+mgcLinearSystem::SymmetricInverse(int, float**, float**)
+mgcLinearSystemD::DeleteVector(int, double*)
+mgcLinearSystemD::Inverse(int, double**)
+mgcLinearSystemD::SolveConstTri(int, double, double, double, double*, double*)
+mgcLinearSystemD::SolveSymmetric(int, double**, double*)
+mgcLinearSystemD::SolveTri(int, double*, double*, double*, double*, double*)
+mgcLinearSystemD::SymmetricInverse(int, double**, double**)
+mkallcap(char*, cs_info const*)
+mkinitcap(char*, cs_info const*)
+msforms::cppu_detail_getUnoType(msforms::ReturnInteger const*)
+native_bootstrap
+native_bootstrap_set
+native_defaultBootstrap_InitialComponentContext
+native_defaultBootstrap_InitialComponentContext_iniFile
+nullcanvas::CanvasFont::getFontMatrix() const
+nullcanvas::CanvasHelper::flush() const
+nullcanvas::SpriteCanvasHelper::backgroundPaint(basegfx::B2DRange const&)
+nullcanvas::SpriteCanvasHelper::genericUpdate(basegfx::B2DConnectedRanges<canvas::SpriteRedrawManager::SpriteInfo>::ConnectedComponents const&)
+nullcanvas::SpriteCanvasHelper::opaqueUpdate(basegfx::B2DConnectedRanges<canvas::SpriteRedrawManager::SpriteInfo>::ConnectedComponents const&)
+nullcanvas::SpriteCanvasHelper::scrollUpdate(basegfx::B2DRange const&, basegfx::B2DRange const&, basegfx::B2DConnectedRanges<canvas::SpriteRedrawManager::SpriteInfo>::ConnectedComponents const&)
+o3tltests::cow_wrapper_client2::queryUnmodified() const
+o3tltests::cow_wrapper_client3::queryUnmodified() const
+odiapi::props::Node::hasChildren() const
+odiapi::props::PropertyPoolImpl::dbgGetNumberOfNodes()
+odiapi::props::PropertyPoolImpl::dbgGetNumberOfUsedNodes()
+offapp::DriverPooling::DriverPooling()
+offapp::ODriverEnumeration::size() const
+onDirectoryCreated
+oox::Perfect_Hash::hash(char const*, unsigned int)
+oox::core::BinaryCodec_XOR::getHash(unsigned char const*, int)
+oox::core::BinaryInputStream::skip(int)
+oox::core::BinaryOutputStream::BinaryOutputStream(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&, int)
+oox::core::BinaryOutputStream::copy(oox::core::BinaryInputStream&)
+oox::core::BinaryOutputStream::seek(long)
+oox::core::BinaryOutputStream::tell() const
+oox::core::BinaryOutputStream::write(void const*, int)
+oox::core::BinaryOutputStream::~BinaryOutputStream()
+oox::core::ContainerHelper::insertByIndex(com::sun::star::uno::Reference<com::sun::star::container::XIndexContainer> const&, int, com::sun::star::uno::Any const&)
+oox::core::FilterBase::getFileUrl() const
+oox::core::FilterBase::openOutputStream(rtl::OUString const&)
+oox::core::PropertyMap::hasProperty(rtl::OUString const&) const
+oox::core::PropertySequence::clearAllAnys()
+oox::core::PropertySequence::readFromPropertySet(oox::core::PropertySet const&)
+oox::core::PropertySequence::readValue(com::sun::star::uno::Any&)
+oox::core::PropertySequence::writeValue(com::sun::star::uno::Any const&)
+oox::core::PropertySet::getBoolProperty(rtl::OUString const&) const
+oox::core::Relations::getRelationsByType(rtl::OUString const&, _STL::vector<boost::shared_ptr<oox::core::Relation>, _STL::allocator<boost::shared_ptr<oox::core::Relation> > >&) const
+oox::core::StorageBase::getElementNames(_STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> >&) const
+oox::core::StorageBase::getName() const
+oox::drawingml::GetRelativeRect(com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&)
+oox::drawingml::GetTextMargin(rtl::OUString const&)
+oox::xls::(anonymous namespace)::lclGetBuiltinStyleId(int&, int&, rtl::OUString const&)
+oox::xls::AddressConverter::checkCellRangeList(_STL::vector<com::sun::star::table::CellRangeAddress, _STL::allocator<com::sun::star::table::CellRangeAddress> > const&, bool)
+oox::xls::ApiTokenIterator::ApiTokenIterator(oox::xls::ApiTokenIterator const&, bool)
+oox::xls::BiffExternLink::importExternSheet(oox::xls::BiffInputStream&)
+oox::xls::BiffFormulaParserImpl::pushDelAddressOperand()
+oox::xls::BiffFormulaParserImpl::pushParenthesesOperand()
+oox::xls::BiffHelper::calcCodePageFromTextEncoding(unsigned short)
+oox::xls::BiffHelper::calcRkFromDouble(int&, double)
+oox::xls::BiffInputStream::getCoreStreamSize() const
+oox::xls::BiffInputStream::getDecoder() const
+oox::xls::BiffInputStream::getRecSize() const
+oox::xls::BiffInputStream::ignoreByteString(bool)
+oox::xls::BiffInputStream::ignoreRawUniString(unsigned short, bool)
+oox::xls::BiffInputStream::ignoreUniString()
+oox::xls::BiffInputStream::readFloat()
+oox::xls::BiffInputStream::readInt16()
+oox::xls::BiffInputStream::readInt64()
+oox::xls::BiffInputStream::readInt8()
+oox::xls::BiffInputStream::readuInt32()
+oox::xls::BiffInputStream::readuInt64()
+oox::xls::BiffInputStream::resetRecord(bool, unsigned short)
+oox::xls::BiffInputStream::setNulSubstChar(unsigned short)
+oox::xls::BiffOutputStream::BiffOutputStream(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&)
+oox::xls::BiffOutputStream::~BiffOutputStream()
+oox::xls::BiffRange::contains(oox::xls::BiffAddress const&) const
+oox::xls::BiffRangeList::getEnclosingRange() const
+oox::xls::Dxf::importDxf(oox::core::AttributeList const&)
+oox::xls::GlobalDataHelper::getBiffFilter() const
+oox::xls::OoxAutoFilterContext::importDynamicFilter(oox::core::AttributeList const&)
+oox::xls::OoxConnectionsFragment::importS(oox::core::AttributeList const&)
+oox::xls::OoxConnectionsFragment::importTables(oox::core::AttributeList const&)
+oox::xls::OoxConnectionsFragment::importX(oox::core::AttributeList const&)
+oox::xls::OoxDataValidationsContext::importDataValidations(oox::core::AttributeList const&)
+oox::xls::OoxPivotCacheFragment::importPivotCacheDefinition(oox::core::AttributeList const&)
+oox::xls::OoxWorksheetFragment::importSheetPr(oox::core::AttributeList const&)
+oox::xls::PivotCacheData::getExternalSource() const
+oox::xls::PivotTableBuffer::getPivotTable(rtl::OUString const&)
+oox::xls::RichStringPhoneticPortion::RichStringPhoneticPortion(oox::xls::GlobalDataHelper const&)
+oox::xls::RichStringPhoneticPortion::setText(rtl::OUString const&)
+oox::xls::TokenMapper::TokenMapper(oox::xls::GlobalDataHelper const&)
+oox::xls::UnitConverter::calcInchesFromMm100(int) const
+oox::xls::UnitConverter::calcMm100FromPixelsY(double) const
+oox::xls::UnitConverter::calcPixelsYFromMm100(int) const
+oox::xls::UnitConverter::calcPointsFromMm100(int) const
+oox::xls::UnitConverter::calcSpacesFromMm100(int) const
+oox::xls::UnitConverter::calcTwipsFromMm100(int) const
+oox::xls::WebQueryBuffer::dump() const
+oox::xls::WorksheetHelper::getCell(com::sun::star::table::CellAddress const&) const
+oox::xls::WorksheetHelper::getColumns(int, int) const
+oox::xls::WorksheetHelper::getCondFormatIndex() const
+oox::xls::WorksheetHelper::getRangeAddress(com::sun::star::uno::Reference<com::sun::star::table::XCellRange> const&)
+oox::xls::WorksheetHelper::getRows(int, int) const
+oox::xls::WorksheetHelper::getXSpreadsheet() const
+oox::xls::Xf::hasAnyUsedFlags() const
+oox::xls::lclTranslateOp(int)
+ooxml::OOXMLContext::getDocument()
+ooxml::OOXMLContextStream::setPropertySetAttrs(boost::shared_ptr<ooxml::OOXMLPropertySet>)
+ooxml::OOXMLFastContextHandler::getDocument()
+ooxml::OOXMLFastContextHandler::getTargetForId(rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::getXNoteId() const
+ooxml::OOXMLFastContextHandler::resolveComment(rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::resolveEndnote(rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::resolveFooter(int, rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::resolveFootnote(rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::resolveHeader(int, rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::resolvePicture(rtl::OUString const&)
+ooxml::OOXMLFastContextHandler::setDocument(ooxml::OOXMLDocument*)
+ooxml::OOXMLFastContextHandler::setForwardEvents(bool)
+ooxml::OOXMLFastContextHandler::setLastParagraphInSection()
+ooxml::OOXMLFastContextHandler::setStream(boost::shared_ptr<doctok::Stream>)
+ooxml::OOXMLFastContextHandler::setXNoteId(rtl::OUString const&)
+ooxml::OOXMLFastContextHandlerBooleanValue::OOXMLFastContextHandlerBooleanValue(ooxml::OOXMLFastContextHandler const&)
+ooxml::OOXMLFastContextHandlerHexValue::OOXMLFastContextHandlerHexValue(ooxml::OOXMLFastContextHandler const&)
+ooxml::OOXMLFastContextHandlerIntegerValue::OOXMLFastContextHandlerIntegerValue(ooxml::OOXMLFastContextHandler const&)
+ooxml::OOXMLFastContextHandlerListValue::OOXMLFastContextHandlerListValue(ooxml::OOXMLFastContextHandler const&)
+ooxml::OOXMLFastContextHandlerNoResource::OOXMLFastContextHandlerNoResource(ooxml::OOXMLFastContextHandler const&)
+ooxml::OOXMLFastContextHandlerProperties::setPropertySet(boost::shared_ptr<ooxml::OOXMLPropertySet>)
+ooxml::OOXMLFastContextHandlerStream::setPropertySetAttrs(boost::shared_ptr<ooxml::OOXMLPropertySet>)
+ooxml::OOXMLFastContextHandlerStringValue::OOXMLFastContextHandlerStringValue(ooxml::OOXMLFastContextHandler const&)
+ooxml::OOXMLHexValue::OOXMLHexValue(unsigned int)
+ooxml::OOXMLParserState::getContextCount() const
+ooxml::OOXMLParserState::newCharacterProperty(int const&, _STL::auto_ptr<ooxml::OOXMLValue>)
+ooxml::OOXMLPictureValue::OOXMLPictureValue(ooxml::OOXMLDocument*, rtl::OUString const&)
+ooxml::OOXMLStreamImpl::OOXMLStreamImpl(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>, com::sun::star::uno::Reference<com::sun::star::embed::XStorage>, rtl::OUString const&)
+ooxml::OOXMLValue_dml_baseStylesheet_ST_ColorSchemeIndex::OOXMLValue_dml_baseStylesheet_ST_ColorSchemeIndex(rtl::OUString const&)
+ooxml::OOXMLValue_dml_baseStylesheet_ST_FontCollectionIndex::OOXMLValue_dml_baseStylesheet_ST_FontCollectionIndex(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shape3DCamera_ST_PresetCameraType::OOXMLValue_dml_shape3DCamera_ST_PresetCameraType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shape3DLighting_ST_LightRigDirection::OOXMLValue_dml_shape3DLighting_ST_LightRigDirection(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shape3DLighting_ST_LightRigType::OOXMLValue_dml_shape3DLighting_ST_LightRigType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shape3DStyles_ST_BevelPresetType::OOXMLValue_dml_shape3DStyles_ST_BevelPresetType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shape3DStyles_ST_PresetMaterialType::OOXMLValue_dml_shape3DStyles_ST_PresetMaterialType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeEffects_ST_BlendMode::OOXMLValue_dml_shapeEffects_ST_BlendMode(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeEffects_ST_PathShadeType::OOXMLValue_dml_shapeEffects_ST_PathShadeType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeEffects_ST_PresetPatternVal::OOXMLValue_dml_shapeEffects_ST_PresetPatternVal(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeEffects_ST_PresetShadowVal::OOXMLValue_dml_shapeEffects_ST_PresetShadowVal(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeGeometry_ST_PathFillMode::OOXMLValue_dml_shapeGeometry_ST_PathFillMode(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeGeometry_ST_TextShapeType::OOXMLValue_dml_shapeGeometry_ST_TextShapeType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_shapeLineProperties_ST_PresetLineDashVal::OOXMLValue_dml_shapeLineProperties_ST_PresetLineDashVal(rtl::OUString const&)
+ooxml::OOXMLValue_dml_textCharacter_ST_TextCapsType::OOXMLValue_dml_textCharacter_ST_TextCapsType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_textCharacter_ST_TextStrikeType::OOXMLValue_dml_textCharacter_ST_TextStrikeType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_textCharacter_ST_TextUnderlineType::OOXMLValue_dml_textCharacter_ST_TextUnderlineType(rtl::OUString const&)
+ooxml::OOXMLValue_dml_wordprocessingDrawing_ST_AlignH::OOXMLValue_dml_wordprocessingDrawing_ST_AlignH(rtl::OUString const&)
+ooxml::OOXMLValue_dml_wordprocessingDrawing_ST_AlignV::OOXMLValue_dml_wordprocessingDrawing_ST_AlignV(rtl::OUString const&)
+ooxml::OOXMLValue_dml_wordprocessingDrawing_ST_RelFromH::OOXMLValue_dml_wordprocessingDrawing_ST_RelFromH(rtl::OUString const&)
+ooxml::OOXMLValue_dml_wordprocessingDrawing_ST_RelFromV::OOXMLValue_dml_wordprocessingDrawing_ST_RelFromV(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_BreakBin::OOXMLValue_shared_math_ST_BreakBin(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_BreakBinSub::OOXMLValue_shared_math_ST_BreakBinSub(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_FType::OOXMLValue_shared_math_ST_FType(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_Jc::OOXMLValue_shared_math_ST_Jc(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_LimLoc::OOXMLValue_shared_math_ST_LimLoc(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_Script::OOXMLValue_shared_math_ST_Script(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_Shp::OOXMLValue_shared_math_ST_Shp(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_TopBot::OOXMLValue_shared_math_ST_TopBot(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_XAlign::OOXMLValue_shared_math_ST_XAlign(rtl::OUString const&)
+ooxml::OOXMLValue_shared_math_ST_YAlign::OOXMLValue_shared_math_ST_YAlign(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_CalendarType::OOXMLValue_wml_ST_CalendarType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_CharacterSpacing::OOXMLValue_wml_ST_CharacterSpacing(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_ColorSchemeIndex::OOXMLValue_wml_ST_ColorSchemeIndex(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_DocGrid::OOXMLValue_wml_ST_DocGrid(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_DocPartBehavior::OOXMLValue_wml_ST_DocPartBehavior(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_DocPartGallery::OOXMLValue_wml_ST_DocPartGallery(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_DocPartType::OOXMLValue_wml_ST_DocPartType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_DocType::OOXMLValue_wml_ST_DocType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_DropCap::OOXMLValue_wml_ST_DropCap(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_EdGrp::OOXMLValue_wml_ST_EdGrp(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_FFTextType::OOXMLValue_wml_ST_FFTextType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_FrameLayout::OOXMLValue_wml_ST_FrameLayout(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_FrameScrollbar::OOXMLValue_wml_ST_FrameScrollbar(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_FtnEdn::OOXMLValue_wml_ST_FtnEdn(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_HAnchor::OOXMLValue_wml_ST_HAnchor(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_HeightRule::OOXMLValue_wml_ST_HeightRule(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_HexColorAuto::OOXMLValue_wml_ST_HexColorAuto(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_InfoTextType::OOXMLValue_wml_ST_InfoTextType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_LevelSuffix::OOXMLValue_wml_ST_LevelSuffix(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_Lock::OOXMLValue_wml_ST_Lock(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_MailMergeDataType::OOXMLValue_wml_ST_MailMergeDataType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_MailMergeDest::OOXMLValue_wml_ST_MailMergeDest(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_MailMergeDocType::OOXMLValue_wml_ST_MailMergeDocType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_MailMergeOdsoFMDFieldType::OOXMLValue_wml_ST_MailMergeOdsoFMDFieldType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_MailMergeSourceType::OOXMLValue_wml_ST_MailMergeSourceType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_PageBorderDisplay::OOXMLValue_wml_ST_PageBorderDisplay(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_PageBorderOffset::OOXMLValue_wml_ST_PageBorderOffset(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_PageBorderZOrder::OOXMLValue_wml_ST_PageBorderZOrder(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_Proof::OOXMLValue_wml_ST_Proof(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_ProofErr::OOXMLValue_wml_ST_ProofErr(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_RubyAlign::OOXMLValue_wml_ST_RubyAlign(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_SdtDateMappingType::OOXMLValue_wml_ST_SdtDateMappingType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_TargetScreenSz::OOXMLValue_wml_ST_TargetScreenSz(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_TblLayoutType::OOXMLValue_wml_ST_TblLayoutType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_TblStyleOverrideType::OOXMLValue_wml_ST_TblStyleOverrideType(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_TextAlignment::OOXMLValue_wml_ST_TextAlignment(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_TextboxTightWrap::OOXMLValue_wml_ST_TextboxTightWrap(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_VAnchor::OOXMLValue_wml_ST_VAnchor(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_VerticalAlignRun::OOXMLValue_wml_ST_VerticalAlignRun(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_View::OOXMLValue_wml_ST_View(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_Wrap::OOXMLValue_wml_ST_Wrap(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_XAlign::OOXMLValue_wml_ST_XAlign(rtl::OUString const&)
+ooxml::OOXMLValue_wml_ST_YAlign::OOXMLValue_wml_ST_YAlign(rtl::OUString const&)
+ooxml::TokenMap::getTokenString(unsigned int)
+ooxml::tokenmap::Perfect_Hash::hash(char const*, unsigned int)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XApplication const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XAxes const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XAxis const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XAxisTitle const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XBorder const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XBorders const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XCharacters const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XChart const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XChartObject const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XChartObjects const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XChartTitle const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XCharts const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XComment const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XComments const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XDialog const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XDialogs const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XFont const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XFormat const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XFormatCondition const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XFormatConditions const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XInterior const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XName const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XNames const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XOLEObject const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XOLEObjects const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XOutline const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XPane const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XPivotCache const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XPivotTable const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XPivotTables const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XSeries const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XSeriesCollection const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XStyle const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XStyles const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XTextFrame const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XTitle const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XValidation const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWindow const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWindows const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWorkbook const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWorkbooks const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWorksheet const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWorksheetFunction const*)
+org::openoffice::excel::cppu_detail_getUnoType(org::openoffice::excel::XWorksheets const*)
+org::openoffice::isRangeShortCut(rtl::OUString const&)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XButton const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XColorFormat const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XComboBox const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XControl const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XFillFormat const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XLabel const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XLineFormat const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XListBox const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XPictureFormat const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XRadioButton const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XShape const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XShapeRange const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XShapes const*)
+org::openoffice::msforms::cppu_detail_getUnoType(org::openoffice::msforms::XTextBox const*)
+org::openoffice::vba::cppu_detail_getUnoType(org::openoffice::vba::XCollection const*)
+org::openoffice::vba::cppu_detail_getUnoType(org::openoffice::vba::XErrObject const*)
+org::openoffice::vba::cppu_detail_getUnoType(org::openoffice::vba::XGlobals const*)
+org::openoffice::vba::cppu_detail_getUnoType(org::openoffice::vba::XHelperInterface const*)
+org::openoffice::vba::cppu_detail_getUnoType(org::openoffice::vba::XPropValue const*)
+org::openoffice::vba::cppu_detail_getUnoType(org::openoffice::vba::XVBAToOOEventDescGen const*)
+osl_acquireDirectoryItem
+osl_acquireSemaphore
+osl_acquireVolumeDeviceHandle
+osl_addToSocketSet
+osl_automountVolumeDevice
+osl_clearSocketSet
+osl_copyHostAddr
+osl_createHostAddr
+osl_createHostAddrByName
+osl_createInetBroadcastAddr
+osl_createSemaphore
+osl_createSocketSet
+osl_demultiplexSocketEvents
+osl_destroySemaphore
+osl_destroySocketSet
+osl_detail_ObjectRegistry_checkObjectCount
+osl_detail_ObjectRegistry_registerObject
+osl_detail_ObjectRegistry_revokeObject
+osl_detail_ObjectRegistry_storeAddresses
+osl_flushProfile
+osl_getAddrOfSocketAddr
+osl_getCanonicalName
+osl_getEtherAddr
+osl_getEthernetAddress
+osl_getHostnameOfHostAddr
+osl_getModuleHandle
+osl_getProfileSectionEntries
+osl_getProfileSections
+osl_getSocketAddrOfHostAddr
+osl_getSystemTimeFromLocalTime
+osl_getVolumeDeviceMountPath
+osl_isInSocketSet
+osl_loadUserProfile
+osl_readProfileBool
+osl_readProfileIdent
+osl_receiveResourcePipe
+osl_releaseSemaphore
+osl_removeFromSocketSet
+osl_removeProfileEntry
+osl_reportError
+osl_sendResourcePipe
+osl_setAddrOfSocketAddr
+osl_setDebugMessageFunc
+osl_setDetailedDebugMessageFunc
+osl_setFileTime
+osl_setProcessLocale
+osl_systemPathIsAbsolutePath
+osl_tryToAcquireSemaphore
+osl_unloadUserProfile
+osl_unmountVolumeDevice
+osl_writeProfileBool
+osl_writeProfileIdent
+padmin::ProgressBar::ProgressBar(Window*, long)
+padmin::RTSDialog::getPaperSize()
+pcr::(anonymous namespace)::isAsciiLetter(unsigned short)
+pcr::(anonymous namespace)::lcl_getAssignedMacroURL(pcr::EventDescription const&, com::sun::star::uno::Sequence<com::sun::star::script::ScriptEventDescriptor> const&)
+pcr::(anonymous namespace)::toUpperAscii(unsigned short)
+pcr::EFormsHelper::createBindingForFormModel(rtl::OUString const&) const
+pcr::InspectorHelpWindow::GetMaximalHeightPixel()
+pcr::OBrowserLine::GetSizePixel()
+pcr::OBrowserLine::SetPosPixel(Point)
+pcr::OPropertyEditor::CalcVisibleLines()
+pcr::OPropertyEditor::GetPropertyValue(rtl::OUString const&) const
+pcr::OPropertyEditor::IsPropertyInputEnabled(rtl::OUString const&) const
+pcr::PropertyHandler::PropertyHandler(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+pcr::PropertyHandlerHelper::createComboBoxControl(com::sun::star::uno::Reference<com::sun::star::inspection::XPropertyControlFactory> const&, com::sun::star::uno::Sequence<rtl::OUString> const&, unsigned char, unsigned char)
+pcr::TabOrderListBox::TabOrderListBox(Window*)
+pcr::XSDDataType::getFacetType(rtl::OUString const&) const
+plugin_init_sys_tray
+ppt::AnimationImporter::dump(char const*)
+ppt::AnimationImporter::dump(char const*, char const*)
+ppt::AnimationImporter::dump(char const*, double)
+ppt::AnimationImporter::dump(char const*, int)
+ppt::AnimationImporter::dump(char const*, rtl::OUString const&)
+ppt::AnimationImporter::dump(com::sun::star::uno::Any&)
+ppt::AnimationImporter::dump(ppt::AnimationNode const&)
+ppt::AnimationImporter::dump(ppt::PropertySet const&)
+ppt::AnimationImporter::dump(rtl::OUString const&)
+ppt::AnimationImporter::dump(unsigned int, bool)
+ppt::AnimationImporter::dump_anim_group(ppt::Atom const*, ppt::AnimationNode const&, ppt::PropertySet const&, bool)
+ppt::AnimationImporter::dump_atom(ppt::Atom const*, bool)
+ppt::AnimationImporter::dump_atom_header(ppt::Atom const*, bool, bool)
+ppt::AnimationImporter::dump_target(com::sun::star::uno::Any&)
+ppt::AnimationImporter::importAnimationSubContainer(ppt::Atom const*, com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode> const&)
+ppt::Atom::findNextChildAtom(unsigned short, unsigned short, ppt::Atom const*) const
+printEntries(_STL::vector<SvxConfigEntry*, _STL::allocator<SvxConfigEntry*> >*)
+printProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
+printPropertySet(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&)
+psp::AfmKeywordHash::hash(char const*, unsigned int)
+psp::ConverterFactory::~ConverterFactory()
+psp::GetCommandLineTokenCount(ByteString const&)
+psp::GlyphSet::SetFont(int, unsigned char)
+psp::PPDContext::getUnconstrainedValues(psp::PPDKey const*, _STL::list<psp::PPDValue const*, _STL::allocator<psp::PPDValue const*> >&)
+psp::PPDParser::getDefaultDuplexType() const
+psp::PPDParser::getDuplex(int) const
+psp::PPDParser::getDuplexCommand(String const&) const
+psp::PPDParser::getDuplexCommand(int) const
+psp::PPDParser::getFontAttributes(String const&, String&, String&) const
+psp::PPDParser::getPaperDimension(int) const
+psp::PPDParser::getPaperDimensionCommand(String const&) const
+psp::PPDParser::getPaperDimensionCommand(int) const
+psp::PPDParser::getResolution(int, int&, int&) const
+psp::PPDParser::getResolutionCommand(int, int) const
+psp::PPDParser::getResolutions() const
+psp::PPDParser::getSlot(int) const
+psp::PPDParser::getSlotCommand(String const&) const
+psp::PPDParser::getSlotCommand(int) const
+psp::PrintFontManager::getFontFamilyType(int) const
+psp::PrintFontManager::getGlobalFontMetric(int, bool) const
+psp::PrinterGfx::DrawBitmap(Rectangle const&, Rectangle const&, psp::PrinterBmp const&, psp::PrinterBmp const&)
+psp::PrinterGfx::DrawMask(Rectangle const&, Rectangle const&, psp::PrinterBmp const&, psp::PrinterColor&)
+psp::PrinterGfx::GetGlyphBoundRect(unsigned short, Rectangle&)
+psp::PrinterGfx::GetGlyphOutline(unsigned short, unsigned short**, Point**, unsigned char**)
+psp::PrinterGfx::GetResolution(int&, int&) const
+psp::PrinterGfx::PSRMoveTo(int, int)
+psp::PrinterGfx::SetFallbackFont(int)
+psp::PrinterJob::GetDocumentHeader()
+psp::PrinterJob::GetDocumentTrailer()
+psp::PrinterJob::GetErrorCode()
+psp::appendStr(char const*, char*, int)
+psp::existsTmpDir(char const*)
+pyuno::importToGlobal(_object*, _object*, _object*)
+readDouble(unsigned char const*, double&)
+readFloat(unsigned char const*, float&)
+recently_used_file::flush()
+reg_closeSubKeys
+reg_createKey
+reg_createLink
+reg_deleteKey
+reg_deleteLink
+reg_destroyRegistry
+reg_freeValueList
+reg_getKeyName
+reg_getKeyType
+reg_getLinkTarget
+reg_getLongListValue
+reg_getName
+reg_getResolvedKeyName
+reg_getStringListValue
+reg_getUnicodeListValue
+reg_getValue
+reg_getValueInfo
+reg_isReadOnly
+reg_loadKey
+reg_openSubKeys
+reg_saveKey
+reg_setLongListValue
+reg_setStringListValue
+reg_setUnicodeListValue
+reg_setValue
+registerPluginService(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+remote_addContextListener
+remote_context::remote_ContextImpl::thisQuery(uno_Context*, _rtl_uString*)
+remote_removeContextListener
+reportdesign::OFunctions::copyFunctions(com::sun::star::uno::Reference<com::sun::star::report::XFunctions> const&)
+reportdesign::OReportEngineJFree::transform()
+reportdesign::lcl_createDefault()
+rptui::DlgEdHint::DlgEdHint(rptui::DlgEdHintKind, rptui::OUnoObject*)
+rptui::HelpIdUrl::getHelpId(rtl::OUString const&)
+rptui::ODesignView::getMaxMarkerWidth(unsigned char) const
+rptui::ODesignView::isDragStripes() const
+rptui::ODesignView::setMarked(rptui::OSectionView*, unsigned char)
+rptui::OFieldExpressionControl::LinkStubAsynchActivate(void*, void*)
+rptui::OFieldExpressionControl::LinkStubAsynchDeactivate(void*, void*)
+rptui::OObjectBase::PositionAndSizeChange(com::sun::star::beans::PropertyChangeEvent const&)
+rptui::OObjectBase::_elementInserted(com::sun::star::container::ContainerEvent const&)
+rptui::OObjectBase::_elementRemoved(com::sun::star::container::ContainerEvent const&)
+rptui::OObjectBase::_elementReplaced(com::sun::star::container::ContainerEvent const&)
+rptui::OPropertyInfoService::getPropertyEnumRepresentations(int, _STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> >&) const
+rptui::OPropertyInfoService::getPropertyName(int)
+rptui::OPropertyInfoService::getPropertyPos(int) const
+rptui::OReportController::LinkStubOnInvalidateClipboard(void*, void*)
+rptui::OReportController::displayDesignFloater(unsigned char)
+rptui::OReportSection::RemarkDialog()
+rptui::OReportSection::UnmarkDialog()
+rptui::OReportSection::adjustPageSize()
+rptui::OReportSection::insertObject(com::sun::star::uno::Reference<com::sun::star::report::XReportComponent> const&)
+rptui::OReportSection::setSectionHeightPixel(unsigned int)
+rptui::OReportWindow::setTotalSize()
+rptui::OScrollWindowHelper::EndScroll(long, long)
+rptui::OSectionsWindow::getPosition(com::sun::star::uno::Reference<com::sun::star::report::XSection> const&) const
+rptui::OSectionsWindow::getRulerWidth() const
+rptui::OStartMarker::getWidth() const
+rptui::OToggleSlotUndo::OToggleSlotUndo(rptui::OReportModel&, unsigned short, unsigned short)
+rptui::OUnoObject::OUnoObject(com::sun::star::uno::Reference<com::sun::star::report::XReportComponent> const&, com::sun::star::uno::Reference<com::sun::star::awt::XControlModel> const&, unsigned short)
+rptui::OViewsWindow::getSection(Point const&)
+rptui::OViewsWindow::setPoint(Point const&)
+rptui::OXUndoEnvironment::IsReadOnly() const
+rptui::OXUndoEnvironment::SetReadOnly(unsigned char, rptui::OXUndoEnvironment::Accessor const&)
+rptui::ReportFormula::ReportFormula()
+rptui::ReportFormula::ReportFormula(com::sun::star::uno::Any const&)
+rptui::getGroupPosition(com::sun::star::uno::Reference<com::sun::star::report::XReportDefinition> const&, com::sun::star::uno::Reference<com::sun::star::report::XGroup> const&)
+rptui::lcl_collectParamNames_nothrow(com::sun::star::uno::Reference<com::sun::star::container::XIndexAccess> const&, _STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> >&)
+rptxml::ORptExport::exportImagePosition(short)
+rptxml::ORptExport::implConvertAny(com::sun::star::uno::Any const&)
+rptxml::ORptExport::implConvertMeasure(int)
+rptxml::OXMLComponent::GetOwnImport()
+rptxml::OXMLControlProperty::implGetDate(double)
+rptxml::OXMLControlProperty::implGetTime(double)
+rptxml::OXMLFixedText::OXMLFixedText(rptxml::ORptFilter&, unsigned short, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::report::XFixedText> const&)
+rptxml::OXMLFormatCondition::GetOwnImport()
+rptxml::OXMLHelper::GetImageAlignOptions()
+rptxml::OXMLHelper::GetImagePositionOptions()
+rptxml::OXMLHelper::GetNumberFormatsSupplier(com::sun::star::uno::Reference<com::sun::star::report::XReportDefinition> const&)
+rptxml::lcl_getColumnNames(rtl::OUString const&)
+rtl_arena_segment_destructor
+rtl_bootstrap_setIniFileName
+rtl_byte_sequence_getConstArray
+rtl_byte_sequence_getLength
+rtl_compareUuid
+rtl_createNamedUuid
+rtl_digest_HMAC_MD5
+rtl_digest_HMAC_SHA1
+rtl_digest_MD2
+rtl_digest_SHA
+rtl_digest_queryAlgorithm
+rtl_findInMemory
+rtl_locale_equals
+rtl_locale_getCountry
+rtl_locale_getDefault
+rtl_locale_getLanguage
+rtl_locale_getVariant
+rtl_locale_hashCode
+rtl_locale_setDefault
+rtl_memory_fini
+rtl_str_indexOfChar
+rtl_str_lastIndexOfChar
+rtl_str_lastIndexOfStr
+rtl_str_replaceChar
+rtl_str_replaceChar_WithLength
+rtl_str_toAsciiLowerCase
+rtl_str_toAsciiLowerCase_WithLength
+rtl_str_toAsciiUpperCase
+rtl_str_toAsciiUpperCase_WithLength
+rtl_str_toBoolean
+rtl_str_toFloat
+rtl_str_trim
+rtl_str_valueOfChar
+rtl_string_getLength
+rtl_string_newFromString
+rtl_tres_create
+rtl_tres_destroy
+rtl_ustr_ascii_compareIgnoreAsciiCase
+rtl_ustr_indexOfAscii_WithLength
+rtl_ustr_indexOfStr
+rtl_ustr_lastIndexOfAscii_WithLength
+rtl_ustr_lastIndexOfStr
+rtl_ustr_replaceChar
+rtl_ustr_replaceChar_WithLength
+rtl_ustr_toAsciiLowerCase
+rtl_ustr_toAsciiUpperCase
+rtl_ustr_toAsciiUpperCase_WithLength
+rtl_ustr_trim
+rtl_ustr_valueOfChar
+sal_uInt32Bucket::ImplAppend()
+sal_uInt32Bucket::ImplRemove()
+sal_uInt32Bucket::sal_uInt32Bucket()
+sal_uInt32BucketMemArr::Replace(char const*&, unsigned short)
+sal_uInt32BucketMemArr::Replace(char const**, unsigned short, unsigned short)
+sal_uInt32BucketMemArr::_ForEach(unsigned short, unsigned short, unsigned char (*)(char const*&, void*), void*)
+saveHeaderFooterNodes(SwPageDesc&, SwNodes&)
+sax::Converter::clearUndefinedChars(rtl::OUString&, rtl::OUString const&)
+sax::Converter::convertBool(bool&, rtl::OUString const&)
+sax::Converter::convertBool(rtl::OUStringBuffer&, bool)
+sax::Converter::convertColor(int&, rtl::OUString const&)
+sax::Converter::convertColor(rtl::OUStringBuffer&, int)
+sax::Converter::convertDateTime(com::sun::star::util::DateTime&, rtl::OUString const&)
+sax::Converter::convertDateTime(rtl::OUStringBuffer&, com::sun::star::util::DateTime const&, bool)
+sax::Converter::convertDouble(double&, rtl::OUString const&)
+sax::Converter::convertDouble(double&, rtl::OUString const&, short)
+sax::Converter::convertDouble(rtl::OUStringBuffer&, double)
+sax::Converter::convertDouble(rtl::OUStringBuffer&, double, bool, short, short)
+sax::Converter::convertMeasure(rtl::OUStringBuffer&, int, short, short)
+sax::Converter::convertMeasurePx(int&, rtl::OUString const&)
+sax::Converter::convertMeasurePx(rtl::OUStringBuffer&, int)
+sax::Converter::convertNumber(rtl::OUStringBuffer&, int)
+sax::Converter::convertPercent(int&, rtl::OUString const&)
+sax::Converter::convertPercent(rtl::OUStringBuffer&, int)
+sax::Converter::convertTime(com::sun::star::util::DateTime&, rtl::OUString const&)
+sax::Converter::convertTime(rtl::OUStringBuffer&, com::sun::star::util::DateTime const&)
+sax::Converter::decodeBase64(com::sun::star::uno::Sequence<signed char>&, rtl::OUString const&)
+sax::Converter::encodeBase64(rtl::OUStringBuffer&, com::sun::star::uno::Sequence<signed char> const&)
+sax::Converter::indexOfComma(rtl::OUString const&, int)
+sax_expatwrap::AttributeListImpl::removeAttribute(rtl::OUString const&)
+sax_expatwrap::AttributeListImpl::setAttributeList(com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList> const&)
+sax_expatwrap::SaxExpatParser::getImplementationName_Static()
+sax_expatwrap::Text2UnicodeConverter::Text2UnicodeConverter(unsigned short)
+sax_expatwrap::Unicode2TextConverter::Unicode2TextConverter(rtl::OString const&)
+sax_fastparser::FastSaxParser::getImplementationName_Static()
+scsolver::BaseDialog::addButtonImage(int, int, int, int, rtl::OUString const&, rtl::OUString const&, short)
+scsolver::BaseDialog::addEdit(int, int, int, int, rtl::OUString const&)
+scsolver::BaseDialog::addGroupBox(int, int, int, int, rtl::OUString const&)
+scsolver::BaseDialog::getResMgr() const
+scsolver::BaseDialog::registerListener(scsolver::FocusListener*) const
+scsolver::BaseDialog::registerListener(scsolver::MouseListener*) const
+scsolver::BaseDialog::unregisterListener(scsolver::FocusListener*) const
+scsolver::BaseDialog::unregisterListener(scsolver::MouseListener*) const
+scsolver::BaseDialogImpl::getRangeEditWidget()
+scsolver::CalcInterface::getCellFormula(rtl::OUString const&, rtl::OUString const&)
+scsolver::LpModelBuilder::getGoal() const
+scsolver::ObjProperty::setPropertyValueAny(char const*, com::sun::star::uno::Any const&)
+scsolver::OptionDialog::setVarInteger(bool)
+scsolver::OptionDialog::setVarPositive(bool)
+scsolver::OptionDialog::unregisterListeners()
+scsolver::WindowFocusListener::WindowFocusListener(scsolver::BaseDialog*)
+scsolver::WindowMouseListener::WindowMouseListener(scsolver::BaseDialog*)
+scsolver::numeric::Differentiate::setPrecision(unsigned long)
+scsolver::numeric::lp::Model::getConstraintMatrix() const
+scsolver::numeric::lp::Model::getObjectiveFuncConstant() const
+scsolver::numeric::lp::Model::getPrecision() const
+scsolver::numeric::lp::Model::getVerbose() const
+scsolver::numeric::lp::Model::setCostVector(_STL::vector<double, _STL::allocator<double> > const&)
+scsolver::numeric::lp::ModelImpl::swap(scsolver::numeric::lp::ModelImpl&)
+scsolver::numeric::mxhelper::print(boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_row_major<unsigned long, long>, boost::numeric::ublas::unbounded_array<double, _STL::allocator<double> > > const&)
+scsolver::numeric::nlp::BaseAlgorithm::getSolution() const
+scsolver::numeric::nlp::Model::getVarBound(unsigned long, scsolver::numeric::Bound) const
+scsolver::numeric::nlp::Model::isVarBounded(unsigned long, scsolver::numeric::Bound) const
+scsolver::numeric::nlp::Model::setPrecision(unsigned long)
+scsolver::numeric::nlp::Model::setVarBound(unsigned long, scsolver::numeric::Bound, double)
+scsolver::numeric::nlp::Model::setVerbose(bool)
+scsolver::unohelper::setPropertyValue(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, rtl::OUString const&, int)
+sd::AnimationSchemesPane::getAnimationSchemeFromControls() const
+sd::AnimationSchemesPane::playCurrentScheme()
+sd::AnimationWindow::WaitInEffect(unsigned long) const
+sd::BezierObjectBar::InitInterface_Impl()
+sd::CategoryListBox::CategoryListBox(Window*, long)
+sd::CopyDlg::LinkStubReset(void*, void*)
+sd::CustomHandleManager::registerSupplier(sd::ICustomhandleSupplier*)
+sd::CustomHandleManager::unRegisterSupplier(sd::ICustomhandleSupplier*)
+sd::DrawController::GetVisArea() const
+sd::DrawDocShell::GetWindow() const
+sd::DrawDocShell::IsNewDocument() const
+sd::DrawViewRedirector::DrawViewRedirector(sd::DrawView&)
+sd::DrawViewShell::ExecObjPalette(SfxRequest&)
+sd::DrawViewShell::GetObjPaletteState(SfxItemSet&)
+sd::DrawViewShell::LinkStubCloseHdl(void*, void*)
+sd::EffectSequenceHelper::insert(_STL::_List_iterator<boost::shared_ptr<sd::CustomAnimationEffect>, _STL::_Nonconst_traits<boost::shared_ptr<sd::CustomAnimationEffect> > >&, boost::shared_ptr<sd::CustomAnimationEffect> const&)
+sd::FuConstruct::Create(sd::ViewShell*, sd::Window*, sd::View*, SdDrawDocument*, SfxRequest&)
+sd::FuDraw::Create(sd::ViewShell*, sd::Window*, sd::View*, SdDrawDocument*, SfxRequest&, bool)
+sd::FuOutline::Create(sd::ViewShell*, sd::Window*, sd::View*, SdDrawDocument*, SfxRequest&)
+sd::FuPoor::WriteStatus(String const&)
+sd::FuPoor::diffPoint(long, long)
+sd::FuPresentationLayout::TransferLayoutTemplate(String, String, SfxStyleSheetBasePool*, SfxStyleSheetBasePool*)
+sd::FuSlide::Create(sd::SlideViewShell*, sd::Window*, sd::SlideView*, SdDrawDocument*, SfxRequest&)
+sd::FuSlideSelection::DrawDragSelectionRect() const
+sd::FuSlideSelection::ShowEffect(unsigned short)
+sd::FuSpell::Create(sd::ViewShell*, sd::Window*, sd::View*, SdDrawDocument*, SfxRequest&)
+sd::FuSpell::StartSpelling()
+sd::FuText::LinkStubSpellError(void*, void*)
+sd::FuTransform::GetPoint(Rectangle, RECT_POINT)
+sd::GraphicObjectBar::InitInterface_Impl()
+sd::GraphicViewShell::GraphicViewShell(SfxViewFrame*, Window*, sd::DrawViewShell const&)
+sd::HeaderFooterDialog::initTabPages()
+sd::ImpUndoDeleteWarning::ImpUndoDeleteWarning(Window*)
+sd::LayerDialogContent::GetLayerTabBar()
+sd::LeftDrawPaneShell::RegisterInterface(SfxModule*)
+sd::LeftImpressPaneShell::RegisterInterface(SfxModule*)
+sd::MediaObjectBar::InitInterface_Impl()
+sd::ModifyGuard::ModifyGuard(sd::DrawDocShell*)
+sd::OutlineViewShell::ExecStatusBar(SfxRequest&)
+sd::OutlineViewShell::OutlineViewShell(SfxViewFrame*, Window*, sd::OutlineViewShell const&)
+sd::Outliner::GetParentForDialog()
+sd::Outliner::HandleOutsideChange(sd::Outliner::ChangeHint)
+sd::Outliner::InitPage(unsigned short)
+sd::Outliner::LinkStubSpellError(void*, void*)
+sd::Outliner::StartSpelling(EditView&, unsigned char)
+sd::PaneDockingWindow::SetTitle(String const&)
+sd::PresentationViewShell::PresentationViewShell(SfxViewFrame*, Window*, sd::DrawViewShell const&)
+sd::RightPaneShell::RegisterInterface(SfxModule*)
+sd::SdGlobalResourceContainer::ReleaseResource(sd::SdGlobalResource*)
+sd::SdUnoPresView::SdUnoPresView(sd::DrawController&, sd::DrawViewShell&, sd::View&)
+sd::ShapeList::getPreviousShape(SdrObject*) const
+sd::ShowView::SetAllowInvalidate(unsigned char)
+sd::ShowWindow::DrawBlankScene()
+sd::SlideViewShell::ExecStatusBar(SfxRequest&)
+sd::SlideViewShell::PageLayoutHasChanged()
+sd::SlideViewShell::SlideViewShell(SfxViewFrame*, Window*, sd::SlideViewShell const&)
+sd::SlideViewShell::SlideViewShell(SfxViewFrame*, sd::ViewShellBase&, Window*, sd::FrameView*)
+sd::Slideshow::getCurrentPageIndex()
+sd::TextObjectBar::InitInterface_Impl()
+sd::ToolBarManager::IsUpdateLocked() const
+sd::View::CreatePageVDev(unsigned short, PageKind, unsigned long)
+sd::View::IsRedrawLocked() const
+sd::ViewShellBase::GetMenuState(SfxItemSet&)
+sd::ViewShellBase::InitInterface_Impl()
+sd::ViewShellBase::RegisterFactory(unsigned short)
+sd::ViewShellBase::SetPrinterOptDlg(SfxPrinter*, unsigned short, unsigned char)
+sd::ViewShellBase::getCustomHandleManager() const
+sd::ViewShellManager::GetShellId(SfxShell const*) const
+sd::ViewShellManager::Implementation::DumpActiveShell(_STL::list<sd::(anonymous namespace)::ShellDescriptor, _STL::allocator<sd::(anonymous namespace)::ShellDescriptor> > const&)
+sd::ViewShellManager::InvalidateShellStack(SfxShell const*)
+sd::ViewShellManager::ReplaceUndoManager(SfxUndoManager*, SfxUndoManager*)
+sd::Window::ShareViewArea(sd::Window*)
+sd::ZoomList::GetCurrentZoomRect() const
+sd::framework::ConfigurationClassifier::GetC1andC2() const
+sd::framework::ConfigurationClassifier::TraceResourceIdVector(char const*, _STL::vector<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>, _STL::allocator<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> > > const&) const
+sd::framework::ConfigurationTracer::TraceBoundResources(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&, com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> const&, int)
+sd::framework::ConfigurationTracer::TraceConfiguration(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&, char const*)
+sd::framework::FrameworkHelper::IsValid()
+sd::framework::PaneController::TraceController() const
+sd::framework::ReadOnlyModeObserver::RemoveStatusListener(com::sun::star::uno::Reference<com::sun::star::frame::XStatusListener> const&)
+sd::framework::ResourceId::IsValid() const
+sd::framework::ResourceManager::Trace() const
+sd::framework::TaskPaneService::ThrowIfDisposed() const
+sd::framework::ToolBarController::ToolBarDescriptor::~ToolBarDescriptor()
+sd::framework::ViewShellWrapper::IsUnique()
+sd::notes::EditWindow::Copy()
+sd::notes::EditWindow::Cut()
+sd::notes::EditWindow::Delete()
+sd::notes::EditWindow::GetSelection() const
+sd::notes::EditWindow::HasMark(String const&) const
+sd::notes::EditWindow::IsAllSelected() const
+sd::notes::EditWindow::IsEmpty() const
+sd::notes::EditWindow::IsSelected() const
+sd::notes::EditWindow::LinkStubMenuSelectHdl(void*, void*)
+sd::notes::EditWindow::MarkError(Point const&)
+sd::notes::EditWindow::Paste()
+sd::notes::EditWindow::SelNextMark()
+sd::notes::EditWindow::SelPrevMark()
+sd::notes::EditWindow::SelectAll()
+sd::notes::EditWindow::SetSelection(ESelection const&)
+sd::notes::NotesChildWindow::GetChildWindowId()
+sd::notes::SmGetLeftSelectionPart(ESelection, unsigned short&, unsigned short&)
+sd::notes::TextLogger::AppendNumber(long)
+sd::notes::TextLogger::AppendText(char const*)
+sd::outliner::Iterator::Iterator(sd::outliner::IteratorImplBase const&)
+sd::outliner::IteratorPosition::IteratorPosition(SdrObject*, int, PageKind, EditMode)
+sd::outliner::OutlinerContainer::CreateViewIterator(SdDrawDocument*, sd::DrawViewShell*, bool, sd::outliner::IteratorLocation)
+sd::slidesorter::SlideSorterViewShell::CreateInstance(int, SfxShell*, void*, sd::ViewShellBase&)
+sd::slidesorter::SlideSorterViewShell::InitInterface_Impl()
+sd::slidesorter::SlideSorterViewShell::SwitchTabBar(sd::slidesorter::SlideSorterViewShell::TabBarEntry)
+sd::slidesorter::cache::BitmapCache::IsEmpty() const
+sd::slidesorter::cache::BitmapCache::IsPrecious(SdrPage const* const&)
+sd::slidesorter::cache::BitmapCache::ReleaseBitmap(SdrPage const* const&)
+sd::slidesorter::cache::PageCache::InvalidatePreviewBitmap(sd::slidesorter::view::PageObjectViewObjectContact const&)
+sd::slidesorter::controller::PageSelector::DeselectPage(SdPage const*)
+sd::slidesorter::controller::ScrollBarManager::AdaptWindowSize(Rectangle const&)
+sd::slidesorter::controller::SelectionCommand::SetCurrentPage(unsigned short)
+sd::slidesorter::controller::SelectionFunction::ClearOverlays()
+sd::slidesorter::controller::SelectionFunction::InsertionIndicatorHandler::Start(Point const&)
+sd::slidesorter::controller::SelectionFunction::InsertionIndicatorHandler::UpdatePosition(Point const&)
+sd::slidesorter::controller::SelectionFunction::InsertionIndicatorHandler::~InsertionIndicatorHandler()
+sd::slidesorter::controller::SlideFunction::Create(sd::slidesorter::controller::SlideSorterController&, SfxRequest&)
+sd::slidesorter::controller::SlideSorterController::GetFadePageAt(Point const&)
+sd::slidesorter::controller::SlideSorterController::SetZoom(long)
+sd::slidesorter::controller::SlotManager::AssignTransitionEffect()
+sd::slidesorter::model::SlideSorterModel::GetRawPageDescriptor(int) const
+sd::slidesorter::model::SlideSorterModel::SynchronizeModelSelection()
+sd::slidesorter::view::Layouter::BuildBackgroundRectangleList()
+sd::slidesorter::view::Layouter::GetBackgroundRectangleList() const
+sd::slidesorter::view::Layouter::IsColumnCountFixed() const
+sd::slidesorter::view::Layouter::SetGaps(int, int)
+sd::slidesorter::view::Layouter::SetObjectWidth(int, int, int)
+sd::slidesorter::view::OverlayBase::Toggle()
+sd::slidesorter::view::PageObjectViewObjectContact::GetPixelBox(OutputDevice const&) const
+sd::slidesorter::view::SlideSorterView::GetController()
+sd::slidesorter::view::SlideSorterView::GetModelBorder() const
+sd::slidesorter::view::SlideSorterView::GetObjectContact() const
+sd::slidesorter::view::SlideSorterView::GetPageNumberAreaModelSize() const
+sd::slidesorter::view::SubstitutionOverlay::Move(Point const&)
+sd::toolpanel::ColorMenu::CreateControlFactory()
+sd::toolpanel::EmptyWindow::EmptyWindow(Window*, Color, String const&)
+sd::toolpanel::FocusManager::~FocusManager()
+sd::toolpanel::LayoutMenu::GetSelectedLayoutName()
+sd::toolpanel::ScrollPanel::ListHasChanged()
+sd::toolpanel::SimpleLayoutWrapper::SimpleLayoutWrapper(_STL::auto_ptr<Window>, int, int, bool)
+sd::toolpanel::SubToolPanel::ListHasChanged()
+sd::toolpanel::TaskPaneViewShell::Execute(SfxRequest&)
+sd::toolpanel::TaskPaneViewShell::GetState(SfxItemSet&)
+sd::toolpanel::TaskPaneViewShell::Implementation::GetPublicId(unsigned int) const
+sd::toolpanel::TaskPaneViewShell::InitInterface_Impl()
+sd::toolpanel::TestPanel::CreateControlFactory()
+sd::toolpanel::TitleBar::PaintMouseOverIndicator(Rectangle const&)
+sd::toolpanel::TitleToolBox::AddItem(sd::toolpanel::TitleToolBox::ToolBoxId)
+sd::toolpanel::TitleToolBox::TitleToolBox(Window*, long)
+sd::toolpanel::TitledControl::GetUserData() const
+sd::toolpanel::TitledControl::SetUserData(void*)
+sd::toolpanel::ToolPanel::ListHasChanged()
+sd::toolpanel::TreeNode::IsLeaf()
+sd::toolpanel::TreeNode::IsRoot()
+sd::toolpanel::TreeNode::RemoveStateChangeListener(Link const&)
+sd::toolpanel::controls::AnimationSchemesPanel::AnimationSchemesPanel(sd::toolpanel::TreeNode*, sd::ViewShellBase&)
+sd::toolpanel::controls::DefaultPagePreviewProvider::DefaultPagePreviewProvider()
+sd::toolpanel::controls::MasterPageContainer::GetSlideForToken(int, bool)
+sd::toolpanel::controls::MasterPageContainer::GetTokenForPageName(String const&)
+sd::toolpanel::controls::MasterPageContainer::SetPreviewProviderForToken(int, boost::shared_ptr<sd::toolpanel::controls::PreviewProvider> const&)
+sd::toolpanel::controls::MasterPageContainer::UpdateDescriptor(boost::shared_ptr<sd::toolpanel::controls::MasterPageDescriptor> const&, bool, bool, bool)
+sd::toolpanel::controls::MasterPagesSelector::InvalidateAllPreviews()
+sd::tools::SlotStateListener::IsValid() const
+sd::tools::SlotStateListener::SlotStateListener()
+sdr::Comment::Comment(unsigned int, Date, rtl::OUString const&, rtl::OUString const&, basegfx::B2DPoint const&)
+sdr::Comment::SetCreationDate(Date)
+sdr::Comment::SetPosition(basegfx::B2DPoint const&)
+sdr::Comment::SetText(rtl::OUString const&)
+sdr::Comment::SetUserName(rtl::OUString const&)
+sdr::animation::AInfoGraphic::GetAnimation() const
+sdr::animation::AInfoGraphic::GetStepCount() const
+sdr::animation::AnimationInfo::GetBiggestStepTime()
+sdr::animation::AnimationInfo::GetSmallestStepTime()
+sdr::animation::ObjectAnimator::Count() const
+sdr::animation::Scheduler::Reset(unsigned int)
+sdr::contact::BufferHelperBitmapEx::SetBufferedData(MapMode const&, BitmapEx const&)
+sdr::contact::DisplayInfo::IsDraftFill() const
+sdr::contact::DisplayInfo::IsDraftLine() const
+sdr::contact::DisplayInfo::IsDraftText() const
+sdr::contact::DisplayInfo::IsHideDraftGraphic() const
+sdr::contact::ObjectContact::ContainsViewObjectContact(sdr::contact::ViewObjectContact&)
+sdr::contact::VOCBitmapExBuffer::VOCBitmapExBuffer(sdr::contact::ObjectContact&, sdr::contact::ViewContact&)
+sdr::contact::ViewContact::ContainsViewObjectContact(sdr::contact::ViewObjectContact&)
+sdr::contact::ViewContact::SetViewObjectContactRedirector(sdr::contact::ViewObjectContactRedirector*)
+sdr::contact::ViewContactOfUnoControl::getUnoControlForDevice(OutputDevice const*, sdr::contact::ViewContactOfUnoControl::SdrUnoObjAccessControl const&) const
+sdr::contact::ViewContactOfUnoControl_Impl::ViewContactOfUnoControl_Impl()
+sdr::contact::ViewContactOfUnoControl_Impl::~ViewContactOfUnoControl_Impl()
+sdr::contact::ViewContactOfVirtObj::GetVirtObj() const
+sdr::contact::ViewObjectContactOfUnoControl::getExistentControl() const
+sdr::mixer::ColorChangeMixer::ColorChangeMixer(SdrObject&)
+sdr::overlay::OverlayAnimatedBitmapEx::setBitmapEx1(BitmapEx const&)
+sdr::overlay::OverlayAnimatedBitmapEx::setBitmapEx2(BitmapEx const&)
+sdr::overlay::OverlayAnimatedBitmapEx::setBlinkTime(unsigned int)
+sdr::overlay::OverlayAnimatedBitmapEx::setCenterXY1(unsigned short, unsigned short)
+sdr::overlay::OverlayAnimatedBitmapEx::setCenterXY2(unsigned short, unsigned short)
+sdr::overlay::OverlayBitmap::setBitmap(Bitmap const&)
+sdr::overlay::OverlayBitmap::setCenterXY(unsigned short, unsigned short)
+sdr::overlay::OverlayBitmap::setTransparenceUsed(unsigned char)
+sdr::overlay::OverlayBitmapEx::setBitmapEx(BitmapEx const&)
+sdr::overlay::OverlayBitmapEx::setCenterXY(unsigned short, unsigned short)
+sdr::overlay::OverlayCrosshair::OverlayCrosshair(basegfx::B2DPoint const&, Color)
+sdr::overlay::OverlayHelpline::OverlayHelpline(basegfx::B2DPoint const&, Color, SdrHelpLineKind)
+sdr::overlay::OverlayLine::OverlayLine(basegfx::B2DPoint const&, basegfx::B2DPoint const&, Color)
+sdr::overlay::OverlayManagerBuffered::SetRefreshWithPreRendering(unsigned char)
+sdr::overlay::OverlayObject::setVisible(unsigned char)
+sdr::overlay::OverlayObjectList::getBaseRange() const
+sdr::overlay::OverlayObjectList::remove(sdr::overlay::OverlayObject&)
+sdr::overlay::OverlayPolyPolygon::OverlayPolyPolygon(basegfx::B2DPolyPolygon const&, Color)
+sdr::overlay::OverlayPolyPolygonStriped::setPolyPolygon(basegfx::B2DPolyPolygon const&)
+sdr::overlay::OverlayRollingRectangle::OverlayRollingRectangle(basegfx::B2DPoint const&, basegfx::B2DPoint const&, Color, unsigned char, unsigned char)
+sdr::overlay::OverlayRollingRectangleStriped::setExtendedLines(unsigned char)
+sdr::overlay::OverlayRollingRectangleStriped::setShowBounds(unsigned char)
+setConnection(com::sun::star::uno::Reference<com::sun::star::sdbc::XRowSet> const&, com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection> const&)
+sfx2::FileDialogHelper::GetDisplayDirectory() const
+sfx2::IFrameWindow_Impl::SetBorder(unsigned char)
+sfx2::SvBaseLink::GetName() const
+sfx::EditWrapper::EditWrapper(Edit&)
+sfx::ItemConnectionBase::Activate(bool)
+shutdownKApplication
+slideshow::internal::(anonymous namespace)::SlideImpl::isShowing() const
+slideshow::internal::AnimatedSprite::getPixelOffset() const
+slideshow::internal::AnimatedSprite::setPriority(double)
+slideshow::internal::BaseNode::checkValidNode() const
+slideshow::internal::DrawShapeSubsetting::DrawShapeSubsetting(boost::shared_ptr<GDIMetaFile> const&)
+slideshow::internal::EventMultiplexer::removeShapeCursorHandler(boost::shared_ptr<slideshow::internal::ShapeCursorEventHandler> const&)
+slideshow::internal::EventMultiplexer::removeUserPaintHandler(boost::shared_ptr<slideshow::internal::UserPaintEventHandler> const&)
+slideshow::internal::HSLColor::HSLColor(unsigned int)
+slideshow::internal::HSLColor::getBlue() const
+slideshow::internal::HSLColor::getGreen() const
+slideshow::internal::HSLColor::getRGBColor() const
+slideshow::internal::HSLColor::getRed() const
+slideshow::internal::Layer::viewChanged(boost::shared_ptr<slideshow::internal::View> const&)
+slideshow::internal::Layer::viewsChanged()
+slideshow::internal::RGBColor::getHSLColor() const
+slideshow::internal::RGBColor::getHue() const
+slideshow::internal::RGBColor::getLuminance() const
+slideshow::internal::RGBColor::getSaturation() const
+slideshow::internal::SlideChangeBase::getLeavingSlideSizePixel(boost::shared_ptr<slideshow::internal::UnoView> const&) const
+slideshow::internal::SoundPlayer::setPlaybackLoop(bool)
+slideshow::internal::UnoViewContainer::removeView(boost::shared_ptr<slideshow::internal::UnoView> const&)
+slideshow::internal::UserEventQueue::isEmpty() const
+slideshow::internal::getAPIShapePrio(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&)
+slideshow::internal::getNodeType(short&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&)
+slideshow::internal::removeTextActions(GDIMetaFile&)
+so3::StaticBaseUrl::AbsToRel(ByteString const&, INetURLObject::EncodeMechanism, INetURLObject::DecodeMechanism, unsigned short, INetURLObject::FSysStyle)
+so3::StaticBaseUrl::RelToAbs(ByteString const&, bool, INetURLObject::EncodeMechanism, INetURLObject::DecodeMechanism, unsigned short, INetURLObject::FSysStyle)
+so3::StaticBaseUrl::SetBaseURL(ByteString const&, INetURLObject::EncodeMechanism, unsigned short)
+so3::StaticBaseUrl::SmartRelToAbs(ByteString const&, bool, INetURLObject::EncodeMechanism, INetURLObject::DecodeMechanism, unsigned short, INetURLObject::FSysStyle)
+so3::SvBaseLink::GetName() const
+so3::SvBaseLink::SetObj(so3::SvLinkSource*)
+so3::SvBaseLink::SvBaseLink()
+so3::SvBaseLink::SvBaseLink(String const&, unsigned short, so3::SvLinkSource*)
+so3::SvBaseLinksDialog::Execute()
+so3::SvBaseLinksDialog::SetActLink(so3::SvBaseLink*)
+so3::SvBaseLinksDialog::SvBaseLinksDialog(Window*, so3::SvLinkManager*, unsigned char)
+so3::SvBaseLinksDialog::~SvBaseLinksDialog()
+so3::SvLinkSource::GetUpdateTimeout() const
+stoc_sec::PermissionCollection::implies(stoc_sec::Permission const&) const
+stoc_sec::PermissionCollection::toStrings() const
+stoc_smgr::Point2Slash(rtl::OUString const&)
+store::OStoreBTreeNodeData::merge(store::OStoreBTreeNodeData const&)
+store::OStoreBTreeNodeData::swap(store::OStorePageDescriptor const&)
+store::OStoreDirectoryDataBlockV1::LinkTable::LinkTable()
+store::OStoreDirectoryDataBlockV1::LinkTable::swap()
+store::OStoreDirectoryDataBlockV2::LinkTable::LinkTable()
+store::OStoreDirectoryDataBlockV2::LinkTable::swap()
+store::OStoreIndirectionPageData::swap(store::OStorePageDescriptor const&)
+store_closeDirectory
+store_closeStream
+store_flushFile
+store_flushStream
+store_getFileRefererCount
+store_getFileSize
+store_getStreamSize
+store_link
+store_rebuildFile
+store_rename
+store_setStreamSize
+store_symlink
+strncmpi(char*, char*, unsigned long)
+strupr(char*)
+svt::ContextMenuHelper::completeAndExecute(Point const&, PopupMenu&)
+svt::ContextMenuHelper::create(rtl::OUString const&)
+svt::ContextMenuHelper::createAndExecute(Point const&, rtl::OUString const&)
+svt::DialogClosedListener::DialogClosedListener(Link const&)
+svt::EditCellController::EditCellController(svt::MultiLineTextCell*)
+svt::EmbeddedObjectRef::GetMapUnit() const
+svt::EmbeddedObjectRef::GetPersistName() const
+svt::EmbeddedObjectRef::ObjectIsModified(com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&)
+svt::EmbeddedObjectRef::TryRunningState()
+svt::FileURLBox::FileURLBox(Window*)
+svt::FileURLBox::FileURLBox(Window*, ResId const&)
+svt::FixedHyperlink::FixedHyperlink(Window*, long)
+svt::FrameStatusListener::getFrameInterface() const
+svt::FrameStatusListener::getServiceManager() const
+svt::FrameStatusListener::statusChanged(com::sun::star::frame::FeatureStateEvent const&)
+svt::HyperLabel::GetLabel()
+svt::HyperLabel::GetLogicWidth()
+svt::HyperLabel::GetLogicalPosition()
+svt::HyperLabel::HyperLabel(Window*, ResId const&)
+svt::HyperLabel::SetHyperLabelPosition(unsigned short, unsigned short)
+svt::OFileURLControl::OFileURLControl(Window*)
+svt::OGenericUnoDialog::getImplementationId()
+svt::ORoadmap::ORoadmap(Window*, ResId const&)
+svt::ORoadmapHyperLabel::GetClickHdl() const
+svt::ORoadmapHyperLabel::ORoadmapHyperLabel(Window*, ResId const&)
+svt::ORoadmapHyperLabel::SetLabel(rtl::OUString)
+svt::ORoadmapHyperLabel::SetZOrder(svt::ORoadmapHyperLabel*, unsigned short)
+svt::ORoadmapIDHyperLabel::ORoadmapIDHyperLabel(Window*, ResId const&)
+svt::OWizardMachine::calcRightHelpOffset(unsigned int)
+svt::OWizardMachine::getTitleBase() const
+svt::OWizardPage::setHeaderText(String const&)
+svt::RoadmapWizard::GetRoadmapBitmap() const
+svt::RoadmapWizard::GetRoadmapSmartHelpId() const
+svt::RoadmapWizard::IsRoadmapInteractive()
+svt::RoadmapWizard::SetRoadmapBitmap(BitmapEx const&)
+svt::SelectableFixedText::SelectableFixedText(Window*, long)
+svt::SetDialogHelpId(com::sun::star::uno::Reference<com::sun::star::ui::dialogs::XFolderPicker>, int)
+svt::StatusbarController::getFrameInterface() const
+svt::StatusbarController::getLayoutManager() const
+svt::StatusbarController::getServiceManager() const
+svt::StatusbarController::isBound() const
+svt::StatusbarController::removeStatusListener(rtl::OUString const&)
+svt::StatusbarController::unbindListener()
+svt::StatusbarController::updateStatus()
+svt::StatusbarController::updateStatus(rtl::OUString)
+svt::TemplateContent::TemplateContent()
+svt::TemplateFolderCacheImpl::initTemplDirs(_STL::vector<String, _STL::allocator<String> >&)
+svt::ToolboxController::removeStatusListener(rtl::OUString const&)
+svt::WizardHeader::WizardHeader(Window*, ResId const&)
+svt::WizardHeader::getHeaderBitmap() const
+svt::WizardHeader::getHeaderText() const
+svtools::AsynchronLink::ForcePendingCall()
+svtools::EditableExtendedColorConfig::GetColorValue(rtl::OUString const&, rtl::OUString const&) const
+svtools::EditableExtendedColorConfig::GetComponentDisplayName(rtl::OUString const&) const
+svtools::EditableExtendedColorConfig::GetCurrentSchemeName() const
+svtools::EditableExtendedColorConfig::GetSchemeNames() const
+svtools::ODocumentInfoPreview::InsertEntry(String const&, String const&)
+svtools::ToolTipListBox::ToolTipListBox(Window*, ResId const&)
+svtools::ToolTipListBox::ToolTipListBox(Window*, long)
+svtools::ToolTipMultiListBox::ToolTipMultiListBox(Window*, long)
+svx::ControllerFeatures::ControllerFeatures(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::form::XForm> const&, svx::IControllerFeatureInvalidation*)
+svx::CreateFrameBoxConnection(unsigned short, unsigned short, svx::FrameSelector&, svx::FrameBorderType, int)
+svx::DbRegistrationOptionsPage::getFileLocation(String const&)
+svx::DialControl::DialControl(Window*, Size const&, Font const&, long)
+svx::DialControl::DialControl(Window*, Size const&, long)
+svx::DialControl::GetLinkedField() const
+svx::DialControl::GetModifyHdl() const
+svx::DialControl::SetModifyHdl(Link const&)
+svx::DocRecovery::PluginProgress::getPlugWindow()
+svx::DocRecovery::RecoveryDialog::impl_refreshDocList()
+svx::ExtrusionDepthWindow::StartSelection()
+svx::ExtrusionDirectionWindow::FillValueSet()
+svx::ExtrusionLightingWindow::StartSelection()
+svx::ExtrusionSurfaceWindow::StartSelection()
+svx::FeatureSlotTranslation::getControllerFeatureURLForSlotId(int)
+svx::FeatureSlotTranslation::isFeatureURL(rtl::OUString const&)
+svx::FontWorkAlignmentWindow::StartSelection()
+svx::FontWorkCharacterSpacingWindow::StartSelection()
+svx::FontWorkGalleryDialog::changeText(SdrTextObj*)
+svx::FrameBorder::MergeClickAreaToPolyPolygon(PolyPolygon&) const
+svx::FrameDirectionListBox::FrameDirectionListBox(Window*, long)
+svx::FrameSelector::GetSelectHdl() const
+svx::HangulHanjaConversionDialog::GetByCharacter() const
+svx::HangulHanjaConversionDialog::SetOptionsHdl(Link const&)
+svx::MSCodec_Xor95::GetHash(unsigned char const*, unsigned long)
+svx::NamespaceMap_createInstance(unsigned short*, SfxItemPool*, SfxItemPool*)
+svx::OComponentTransferable::extractComponentDescriptor(TransferableDataHelper const&, unsigned char, rtl::OUString&, com::sun::star::uno::Reference<com::sun::star::ucb::XContent>&)
+svx::OSingleFeatureDispatcher::dispose()
+svx::OXFormsTransferable::getDescriptorFormatId()
+svx::OrientationHelper::OrientationHelper(Window*, svx::DialControl&, CheckBox&)
+svx::SvxShowCharSetItem::~SvxShowCharSetItem()
+svx::ToolboxButtonColorUpdater::DrawChar(VirtualDevice&, Color const&)
+svx::WrapField::WrapField(Window*, long)
+svx::frame::Array::Array(unsigned long, unsigned long)
+svx::frame::Array::Clear()
+svx::frame::Array::DrawCell(OutputDevice&, unsigned long, unsigned long, Color const*) const
+svx::frame::Array::GetColFromIndex(unsigned long) const
+svx::frame::Array::GetColWidth(unsigned long) const
+svx::frame::Array::GetMergedSize(unsigned long&, unsigned long&, unsigned long, unsigned long) const
+svx::frame::Array::GetRowFromIndex(unsigned long) const
+svx::frame::Array::GetRowHeight(unsigned long) const
+svx::frame::Array::GetUseDiagDoubleClipping() const
+svx::frame::Array::IsInClipRange(unsigned long, unsigned long) const
+svx::frame::Array::IsMergedOrigin(unsigned long, unsigned long) const
+svx::frame::Array::IsMergedOverlapped(unsigned long, unsigned long) const
+svx::frame::Array::IsMergedOverlappedBottom(unsigned long, unsigned long) const
+svx::frame::Array::IsMergedOverlappedTop(unsigned long, unsigned long) const
+svx::frame::Array::MirrorSelfY(bool, bool)
+svx::frame::Array::RemoveClipRange()
+svx::frame::Array::RemoveMergedRange(unsigned long, unsigned long)
+svx::frame::ArrayImpl::GetMergedOriginCellAcc(unsigned long, unsigned long)
+svx::frame::Style::Scale(double, unsigned short) const
+svxform::DataNavigator::Update(FmFormShell*)
+svxform::DataNavigatorManager::GetChildWindowId()
+svxform::FmFilterNavigator::Clear()
+svxform::FmFilterNavigatorWinMgr::GetChildWindowId()
+svxform::FmSearchParams::setIgnoreWidthCJK(unsigned char)
+svxform::NavigatorFrameManager::GetChildWindowId()
+svxform::NavigatorTree::IsDeleteAllowed()
+svxform::NavigatorTreeModel::CheckEntry(FmEntryData*)
+svxform::NavigatorTreeModel::GetSdrObj(FmControlData*)
+svxform::NavigatorTreeModel::IsNameAlreadyDefined(rtl::OUString const&, FmFormData*)
+svxform::OStaticDataAccessTools::canDelete(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&) const
+svxform::OStaticDataAccessTools::prependContextInfo(com::sun::star::sdbc::SQLException&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, rtl::OUString const&, rtl::OUString const&) const
+svxform::OSystemParseContext::getNumDecimalSep() const
+svxform::OSystemParseContext::getNumThousandSep() const
+svxform::SvLBoxEntrySortedArray::DeleteAndDestroy(unsigned short, unsigned short)
+svxform::SvLBoxEntrySortedArray::Insert(SvLBoxEntry* const&, unsigned short&)
+svxform::SvLBoxEntrySortedArray::Insert(SvLBoxEntry* const*, unsigned short)
+svxform::SvLBoxEntrySortedArray::Insert(svxform::SvLBoxEntrySortedArray const*, unsigned short, unsigned short)
+svxform::SvLBoxEntrySortedArray::Remove(SvLBoxEntry* const&, unsigned short)
+svxform::isModelShapeMarked(FmEntryData*, _STL::map<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, SdrObject*, comphelper::OInterfaceCompare<com::sun::star::uno::XInterface>, _STL::allocator<_STL::pair<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const, SdrObject*> > > const&, SdrMarkView*)
+svxform::lcl_MethodString::get()
+svxform::lcl_ReplaceString::get()
+sw::util::AuthorInfos::Insert(sw::util::AuthorInfo* const&, unsigned short&)
+sw::util::AuthorInfos::Insert(sw::util::AuthorInfo* const*, unsigned short)
+sw::util::AuthorInfos::Insert(sw::util::AuthorInfos const*, unsigned short, unsigned short)
+sw::util::AuthorInfos::Remove(sw::util::AuthorInfo* const&, unsigned short)
+sw::util::AuthorInfos::Remove(unsigned short, unsigned short)
+swf::PageInfo::addShape(swf::ShapeInfo*)
+swf::Tag::addI16(short)
+swf::Tag::addI32(int)
+swf::Writer::getWhiteBackgroundShapeId()
+swf::Writer::play()
+swf::Writer::setBackgroundColor(Color&)
+t_print(char const*, ...)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::TestDataElements const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::TestEnum const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XBridgeTest const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XBridgeTest2 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XBridgeTestBase const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XCurrentContextChecker const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMulti const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase1 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase2 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase3 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase3a const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase4 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase5 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase6 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XMultiBase7 const*)
+test::testtools::bridgetest::cppu_detail_getUnoType(test::testtools::bridgetest::XRecursiveCall const*)
+textconversiondlgs::DictionaryEntry::DictionaryEntry()
+transex::File::File(rtl::OUString)
+treeview::TVRead::TVRead()
+typelib_setCacheSize
+typelib_static_array_type_init
+typelib_static_compound_type_init
+typelib_static_interface_type_init
+typelib_static_union_type_init
+typelib_typedescription_newArray
+typelib_typedescriptionreference_newByAsciiName
+ucbhelper::CommandEnvironmentProxy::CommandEnvironmentProxy(com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&)
+ucbhelper::Content::Content(com::sun::star::uno::Reference<com::sun::star::ucb::XContentIdentifier> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&)
+ucbhelper::Content::abortCommand()
+ucbhelper::Content::create(com::sun::star::uno::Reference<com::sun::star::ucb::XContent> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, ucbhelper::Content&)
+ucbhelper::Content::create(com::sun::star::uno::Reference<com::sun::star::ucb::XContentIdentifier> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, ucbhelper::Content&)
+ucbhelper::Content::createCursor(com::sun::star::uno::Sequence<int> const&, ucbhelper::ResultSetInclude)
+ucbhelper::Content::createSortedCursor(com::sun::star::uno::Sequence<int> const&, com::sun::star::uno::Sequence<com::sun::star::ucb::NumberedSortingInfo> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XAnyCompareFactory>, ucbhelper::ResultSetInclude)
+ucbhelper::Content::createSortedDynamicCursor(com::sun::star::uno::Sequence<int> const&, com::sun::star::uno::Sequence<com::sun::star::ucb::NumberedSortingInfo> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XAnyCompareFactory>, ucbhelper::ResultSetInclude)
+ucbhelper::Content::createSortedDynamicCursor(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<com::sun::star::ucb::NumberedSortingInfo> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XAnyCompareFactory>, ucbhelper::ResultSetInclude)
+ucbhelper::Content::executeCommand(int, com::sun::star::uno::Any const&)
+ucbhelper::Content::getPropertyValue(int)
+ucbhelper::Content::insertNewContent(rtl::OUString const&, com::sun::star::uno::Sequence<int> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, ucbhelper::Content&)
+ucbhelper::Content::setCommandEnvironment(com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&)
+ucbhelper::Content::setPropertyValue(int, com::sun::star::uno::Any const&)
+ucbhelper::ContentBroker::initialize(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, _STL::vector<ucbhelper::ContentProviderData, _STL::allocator<ucbhelper::ContentProviderData> > const&)
+ucbhelper::ContentImplHelper::notifyCommandInfoChange(com::sun::star::ucb::CommandInfoChangeEvent const&) const
+ucbhelper::PropertyValueSet::getLength() const
+ucbhelper::ResultSetImplHelper::ResultSetImplHelper(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&)
+ucbhelper::handleInteractionRequest(rtl::Reference<ucbhelper::SimpleAuthenticationRequest> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool)
+ucbhelper::handleInteractionRequest(rtl::Reference<ucbhelper::SimpleInteractionRequest> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool)
+ucbhelper::unconfigureUcb(com::sun::star::uno::Reference<com::sun::star::ucb::XContentProviderManager> const&, _STL::vector<ucbhelper::ContentProviderRegistrationInfo, _STL::allocator<ucbhelper::ContentProviderRegistrationInfo> > const&)
+ulaw2alaw(unsigned char)
+unicode::getCharType(unsigned short)
+unicode::isBase(unsigned short)
+unicode::isPunctuation(unsigned short)
+unicode::isTitle(unsigned short)
+unicode::isUnicodeScriptType(unsigned short, short)
+uno_Environment_enter
+uno_copyData
+uno_dumpEnvironmentByName
+uno_equalData
+uno_ext_getMapping
+uno_initEnvironment
+uno_registerMappingCallback
+uno_revokeMappingCallback
+uno_sequence_assign
+unographic::GraphicDescriptor::isValid() const
+upperCase(_STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> > const&)
+utl::AccessibleStateSetHelper::Compare(utl::AccessibleStateSetHelper const&, utl::AccessibleStateSetHelper&, utl::AccessibleStateSetHelper&)
+utl::AtomClient::AtomClient(com::sun::star::uno::Reference<com::sun::star::util::XAtomServer> const&)
+utl::AtomClient::getAtom(int, rtl::OUString const&, unsigned char)
+utl::AtomClient::getString(int, int)
+utl::AtomClient::updateAtomClasses(com::sun::star::uno::Sequence<int> const&)
+utl::AtomClient::~AtomClient()
+utl::AtomServer::AtomServer()
+utl::Bootstrap::checkBootstrapStatus(rtl::OUString&)
+utl::Bootstrap::getAllUsersValue(rtl::OUString const&)
+utl::Bootstrap::locateSharedData(rtl::OUString&)
+utl::ConfigItem::ConfigItem(utl::ConfigManager&, rtl::OUString)
+utl::ConfigItem::LockTree()
+utl::ConfigItem::UnlockTree()
+utl::ConfigManager::ConfigManager(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>)
+utl::ConfigManager::RemoveConfigManager()
+utl::MultiAtomProvider::insertAtomClass(int)
+utl::OConfigurationNode::appendNode(rtl::OUString const&, utl::OConfigurationNode const&) const
+utl::OConfigurationNode::cloneAsRoot() const
+utl::OConfigurationNode::hasByHierarchicalName(rtl::OUString const&) const
+utl::OConfigurationValueContainer::OConfigurationValueContainer(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, osl::Mutex&, rtl::OUString const&, unsigned short, int)
+utl::OConfigurationValueContainer::getServiceFactory() const
+utl::OConfigurationValueContainer::registerNullValueExchangeLocation(char const*, com::sun::star::uno::Any*)
+utl::PropertySetHelper::PropertySetHelper(utl::PropertySetInfo*)
+utl::PropertySetInfo::PropertySetInfo()
+utl::PropertySetInfo::add(utl::PropertyMapEntry*)
+utl::PropertySetInfo::remove(rtl::OUString const&)
+utl::TempFile::GetTempNameBaseDirectory()
+utl::TransliterationWrapper::compareSubstring(String const&, int, int, String const&, int, int) const
+utl::TransliterationWrapper::loadModuleByImplName(String const&, unsigned short)
+utl::TransliterationWrapper::transliterate(String const&, unsigned short, unsigned short, com::sun::star::uno::Sequence<int>*) const
+utl::UCBContentHelper::CanMakeFolder(String const&)
+utl::UCBContentHelper::CopyTo(String const&, String const&)
+utl::UCBContentHelper::FindInPath(String const&, String const&, String&, char, unsigned char)
+utl::UCBContentHelper::GetResultSet(String const&)
+utl::UCBContentHelper::HasParentFolder(String const&)
+utl::UCBContentHelper::IsYounger(String const&, String const&)
+utl::UCBContentHelper::MoveTo(String const&, String const&, int)
+utl::UcbLockBytes::getStream()
+utl::getURLSeparator()
+utl::typeConvert(Time const&, com::sun::star::util::Time&)
+utl::typeConvert(com::sun::star::util::Time const&, Time&)
+vcl::I18NStatus::addChoice(String const&, void*)
+vcl::I18NStatus::clearChoices()
+vcl::I18NStatus::getStatusText() const
+vcl::I18NStatus::toTop() const
+vcl::I18nHelper::GetDate(Date const&) const
+vcl::I18nHelper::getLocale() const
+vcl::PDFExtOutDevData::GetFormsFormat() const
+vcl::PDFWriter::DrawBitmap(Point const&, Bitmap const&)
+vcl::PDFWriter::DrawBitmap(Point const&, Size const&, Point const&, Size const&, Bitmap const&)
+vcl::PDFWriter::DrawBitmapEx(Point const&, BitmapEx const&)
+vcl::PDFWriter::DrawBitmapEx(Point const&, Size const&, Point const&, Size const&, BitmapEx const&)
+vcl::PDFWriter::DrawGradient(PolyPolygon const&, Gradient const&)
+vcl::PDFWriter::DrawGradient(Rectangle const&, Gradient const&)
+vcl::PDFWriter::DrawMask(Point const&, Bitmap const&, Color const&)
+vcl::PDFWriter::DrawMask(Point const&, Size const&, Bitmap const&, Color const&)
+vcl::PDFWriter::DrawMask(Point const&, Size const&, Point const&, Size const&, Bitmap const&, Color const&)
+vcl::PDFWriter::DrawPixel(Polygon const&, Color const*)
+vcl::PDFWriter::EndTransparencyGroup(Rectangle const&, Bitmap const&)
+vcl::PDFWriter::GetCurrentStructureElement()
+vcl::PDFWriter::GetDocInfo() const
+vcl::PDFWriter::GetVersion() const
+vcl::PDFWriter::SetAntialiasing(unsigned short)
+vcl::PDFWriter::SetMapMode()
+vcl::PDFWriterImpl::initPadString()
+vcl::PNGReaderImpl::SkipRemainingChunks()
+vcl::PNGWriterImpl::ImplCloseChunk()
+vcl::ThreadExecutor::ThreadExecutor()
+vcl::ThreadExecutor::execute()
+vcl::unotools::b2IPointFromPoint(Point const&)
+vcl::unotools::b2IRectangleFromRectangle(Rectangle const&)
+vcl::unotools::b2ISizeFromSize(Size const&)
+vcl::unotools::integerPoint2DFromPoint(Point const&)
+vcl::unotools::integerRectangle2DFromRectangle(Rectangle const&)
+vcl::unotools::point2DFromPoint(Point const&)
+vcl::unotools::polyPolygonFromBezier2DSequenceSequence(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::geometry::RealBezierSegment2D> > const&)
+vcl::unotools::polyPolygonFromPoint2DSequenceSequence(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::geometry::RealPoint2D> > const&)
+vcl::unotools::polygonFromBezier2DSequence(com::sun::star::uno::Sequence<com::sun::star::geometry::RealBezierSegment2D> const&)
+vcl::unotools::rectangle2DFromRectangle(Rectangle const&)
+vcl::unotools::rectangleFromRealRectangle2D(com::sun::star::geometry::RealRectangle2D const&)
+vcl::unotools::sizeFromB2ISize(basegfx::B2IVector const&)
+vcl_sal::AudioConverter::createG721ToULawConverter()
+vcl_sal::AudioConverter::createINT8ToUINT16Converter()
+vcl_sal::AudioConverter::createSwapINT16Converter()
+vcl_sal::RPTPSound::getMaxId()
+vclcanvas::BitmapBackBuffer::getVirDev()
+vclcanvas::BitmapBackBuffer::getVirDev() const
+virtual thunk to cppcanvas::Bitmap::~Bitmap()
+virtual thunk to cppcanvas::BitmapCanvas::~BitmapCanvas()
+virtual thunk to cppcanvas::CustomSprite::~CustomSprite()
+virtual thunk to cppcanvas::PolyPolygon::~PolyPolygon()
+virtual thunk to cppcanvas::Renderer::~Renderer()
+virtual thunk to cppcanvas::Text::~Text()
+virtual thunk to cppcanvas::internal::ImplCustomSprite::getContentCanvas() const
+virtual thunk to cppcanvas::internal::ImplSpriteCanvas::createCustomSprite(basegfx::B2DVector const&) const
+virtual thunk to cppcanvas::internal::ImplSpriteCanvas::getUNOSpriteCanvas() const
+virtual thunk to cppcanvas::internal::ImplSpriteCanvas::updateScreen(bool) const
+virtual thunk to sd::toolpanel::SimpleLayoutWrapper::GetPreferredHeight(int)
+virtual thunk to sd::toolpanel::SimpleLayoutWrapper::GetPreferredSize()
+virtual thunk to sd::toolpanel::SimpleLayoutWrapper::GetPreferredWidth(int)
+virtual thunk to sd::toolpanel::SimpleLayoutWrapper::GetWindow()
+virtual thunk to sd::toolpanel::SimpleLayoutWrapper::IsResizable()
+virtual thunk to sd::toolpanel::SimpleLayoutWrapper::~SimpleLayoutWrapper()
+virtual thunk to vos::OTimer::getClassInfo() const
+vos::OAcceptorSocket::acceptConnection(vos::OStreamSocket&, vos::OSocketAddr&)
+vos::OClassInfo::createObject(vos::OCreateParam const&) const
+vos::OClassInfo::getClassInfo(char const*)
+vos::ODatagramSocket::ODatagramSocket(vos::ISocketTypes::TAddrFamily, vos::ISocketTypes::TProtocol, vos::ISocketTypes::TSocketType)
+vos::ODatagramSocket::recvFrom(void*, unsigned int, vos::OSocketAddr*, vos::ISocketTypes::TSocketMsgFlag)
+vos::ODatagramSocket::sendTo(vos::OSocketAddr const&, void const*, unsigned int, vos::ISocketTypes::TSocketMsgFlag)
+vos::OEnvironment::OEnvironment(int, rtl::OUString const*, ...)
+vos::OEnvironment::OEnvironment(rtl::OUString const*, int)
+vos::OExtCommandLineImpl::~OExtCommandLineImpl()
+vos::OInetSocketAddr::OInetSocketAddr(rtl::OUString const&, int)
+vos::OInetSocketAddr::OInetSocketAddr(vos::OSocketAddr const&)
+vos::OInetSocketAddr::getServicePort(rtl::OUString const&, rtl::OUString const&)
+vos::OIpxSocketAddr::OIpxSocketAddr()
+vos::OIpxSocketAddr::OIpxSocketAddr(oslSocketAddrImpl*)
+vos::OIpxSocketAddr::OIpxSocketAddr(rtl::OUString const&, rtl::OUString const&, unsigned int)
+vos::OIpxSocketAddr::OIpxSocketAddr(vos::OSocketAddr const&)
+vos::OIpxSocketAddr::getAddressString(rtl::OUString&) const
+vos::OIpxSocketAddr::getNetNumber(unsigned char (&) [4]) const
+vos::OIpxSocketAddr::getNodeNumber(unsigned char (&) [6]) const
+vos::OIpxSocketAddr::getSocketNumber() const
+vos::OModule::OModule()
+vos::OObject::OObject(vos::OCreateParam const&)
+vos::OObject::isKindOf(vos::OClassInfo const&) const
+vos::OPipe::OPipe(rtl::OUString const&, vos::OPipe::TPipeOption)
+vos::OPipe::create(rtl::OUString const&, vos::OPipe::TPipeOption)
+vos::OProcess::execute(vos::OProcess::TProcessOption, vos::OSecurity const&, vos::OArgumentList const&, vos::OEnvironment const&)
+vos::OProcess::getCurrentInfo(vos::OProcess::TProcessData, vos::OProcess::TProcessInfo*)
+vos::OProcess::getInfo(vos::OProcess::TProcessData, vos::OProcess::TProcessInfo*) const
+vos::OProcess::getProcess(unsigned int)
+vos::OProcess::join()
+vos::OProcess::terminate()
+vos::OSecurity::getConfigDir(rtl::OUString&) const
+vos::OSecurity::getUserName(rtl::OUString&) const
+vos::OSecurity::isAdministrator() const
+vos::OSecurity::logonUser(rtl::OUString const&, rtl::OUString const&)
+vos::OSecurity::logonUser(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&)
+vos::OSocket::clearError() const
+vos::OSocket::create(vos::ISocketTypes::TSocketType, vos::ISocketTypes::TAddrFamily, vos::ISocketTypes::TProtocol)
+vos::OSocket::enableNonBlockingMode(unsigned char)
+vos::OSocket::getError() const
+vos::OSocket::getError(rtl::OUString&) const
+vos::OSocket::getLocalPort() const
+vos::OSocket::getPeerPort() const
+vos::OSocket::getType() const
+vos::OSocket::isExceptionPending(TimeValue const*) const
+vos::OSocket::isNonBlockingMode() const
+vos::OSocket::setBroadcast(int) const
+vos::OSocket::setDebug(int) const
+vos::OSocket::setDontRoute(int) const
+vos::OSocket::setKeepAlive(int) const
+vos::OSocket::setLinger(int) const
+vos::OSocket::setOobinline(int) const
+vos::OSocket::setRecvBufSize(int) const
+vos::OSocket::setSendBufSize(int) const
+vos::OStream::OStream(vos::IPositionableStream&)
+vos::OStream::append(void*, unsigned int)
+vos::OStream::read(int, void*, unsigned int) const
+vos::OStream::write(int, void const*, unsigned int)
+vos::OStreamPipe::OStreamPipe(oslPipeImpl*)
+vos::OStreamSocket::OStreamSocket(oslSocketImpl*)
+vos::OStreamSocket::OStreamSocket(vos::OSocket const&)
+vos::OStreamSocket::send(void const*, unsigned int, vos::ISocketTypes::TSocketMsgFlag)
+vos::OThread::awake()
+vos::OThread::getIdentifier() const
+vos::OThread::getPriority()
+vos::OThread::suspend()
+vos::OThread::wait(TimeValue const&)
+vos::OThreadData::OThreadData(void (*)(void*))
+vos::OThreadData::getData()
+vos::OThreadData::setData(void*)
+vos::OTimer::addTime(vos::TTimeValue const&)
+vos::OTimer::setRemainingTime(vos::TTimeValue const&, vos::TTimeValue const&)
+wait_for(char const*)
+webdav_ucp::Content::getProperties(com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, _STL::hash_set<com::sun::star::beans::Property, webdav_ucp::hashPropertyName, webdav_ucp::equalPropertyName, _STL::allocator<com::sun::star::beans::Property> >&)
+webdav_ucp::ContentProperties::getMappableHTTPHeaders(_STL::vector<rtl::OUString, _STL::allocator<rtl::OUString> >&)
+webdav_ucp::DAVResourceAccess::LOCK(com::sun::star::ucb::Lock const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&)
+webdav_ucp::DAVResourceAccess::UNLOCK(com::sun::star::ucb::Lock const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&)
+webdav_ucp::NeonUri::GetPathDirName() const
+workBookMacroExist(SfxObjectShell*, String const&)
+writerfilter::doctoktest::AnalyzeService_supportsService(rtl::OUString const&)
+writerfilter::doctoktest::ScannerTestService_supportsService(rtl::OUString const&)
+writerfilter::odsl::ODSLReader_supportsService(rtl::OUString const&)
+writerfilter::ooxmltest::ScannerFastTestService_supportsService(rtl::OUString const&)
+writerfilter::ooxmltest::ScannerTestService_supportsService(rtl::OUString const&)
+writerfilter::rtftok::RTFSLParser_supportsService(rtl::OUString const&)
+writerfilter::rtftok::ScannerTestService_supportsService(rtl::OUString const&)
+writerfilter::rtftok::XMLScanner_supportsService(rtl::OUString const&)
+writerfilter::xxml::FileXXmlReader_supportsService(rtl::OUString const&)
+writerfilter::xxml::StorageXXmlReader_supportsService(rtl::OUString const&)
+writerfilter::xxml::XXmlReaderDirectImpl::startElement(char const*, char const**)
+x11::DropTarget::dropActionChanged(com::sun::star::datatransfer::dnd::DropTargetDragEvent const&)
+xforms::(anonymous namespace)::lcl_throwIllegalArgumentException(char const*)
+xforms::Convert::~Convert()
+xforms::MIP::hasInfo() const
+xforms::MIP::set(xforms::MIP const&)
+xforms::Submission::releaseModel()
+xforms_currentFunction
+xml_parser::set_encoding(char const*)
+xml_parser::xml_parser(char const*, char)
+xmlname_encode(rtl::OUString const&)
+xmloff::OFormLayerXMLExport::exportControlNumberStyles()
+xmloff::OFormLayerXMLExport::getStylePropertyMapper()
+xmloff::OFormLayerXMLExport::initialize()
+xmloff::OFormLayerXMLImport::getStylePropertyMapper() const
+xmloff::OFormLayerXMLImport::seekPage(com::sun::star::uno::Reference<com::sun::star::drawing::XDrawPage> const&)
+xmloff::chart::ColorPropertySet::getColor()
+xmloff::chart::ColorPropertySet::setColor(int)
+xmlscript_get
+xmlsearch::db::Block::setInteger(int, int)
+xmlsearch::db::Block::write(xmlsearch::util::RandomAccessStream*) const
+xmlsearch::db::BtreeDict::isLocked(int) const
+xmlsearch::db::Schema::Schema(xmlsearch::util::IndexAccessor const&, bool)
+xmlsearch::db::Schema::~Schema()
+xmlsearch::qe::ContextTables::firstParentWithCode2(int, int, int)
+xmlsearch::qe::ContextTables::firstParentWithCode3(int, int, int)
+xmlsearch::qe::ContextTables::firstParentWithCode4(int, int, int*)
+xmlsearch::qe::ContextTables::firstParentWithCode5(int, int, int*)
+xmlsearch::qe::ContextTables::firstParentWithCode7(int, int, int)
+xmlsearch::qe::ContextTables::isGoverning(int)
+xmlsearch::qe::ContextTables::parentContext(int)
+xmlsearch::qe::QueryHitIterator::getPenalty()
+xmlstr_to_ous(unsigned char const*)
+yyFlexLexer::yyunput(int, char*)
+yy_scan_string
+yyget_debug
+yyget_debug()
+yyget_in
+yyget_in()
+yyget_leng
+yyget_leng()
+yyget_lineno
+yyget_lineno()
+yyget_out
+yyget_out()
+yyget_text
+yyget_text()
+yylex_destroy
+yylex_destroy()
+yypush_buffer_state
+yypush_buffer_state(yy_buffer_state*)
+yyset_debug
+yyset_debug(int)
+yyset_in
+yyset_in(_IO_FILE*)
+yyset_lineno
+yyset_lineno(int)
+yyset_out
+yyset_out(_IO_FILE*)
--- openoffice.org-2.4.1.orig/ooo-build/doc/AUTOGEN.NovellWin32ISO.sh
+++ openoffice.org-2.4.1/ooo-build/doc/AUTOGEN.NovellWin32ISO.sh
@@ -0,0 +1 @@
+./autogen.sh --with-distro=NovellWin32ISO --with-lang="af ar be-BY bg bn-IN br ca cs cy da de el en-GB es et fi fr gu-IN he hi-IN hr hu it ja km ko lt lv mk mr-IN nb nl nn pa-IN pl pt-BR pt ru rw sk sl sv ta-IN tr vi xh zh-CN zh-TW zu" --with-poor-help-localizations="af ar be-BY bn-IN bg ca el en-GB fi gu-IN hi-IN hr lt lv mk mr-IN nb nn pt sk sl ta-IN tr xh zu" --with-dejavu-fonts=2.24
--- openoffice.org-2.4.1.orig/ooo-build/doc/qatesttool-win32.txt
+++ openoffice.org-2.4.1/ooo-build/doc/qatesttool-win32.txt
@@ -0,0 +1,6 @@
+Win32-specific notes about testtool
+
+(this file used to contain some tricks that were needed when using too
+old versions of the qatesttool scripts against OOo 2.0.2. If one uses
+HEAD of qa/qatesttool, no tricks are needed.)
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/expat.txt
+++ openoffice.org-2.4.1/ooo-build/doc/expat.txt
@@ -0,0 +1,22 @@
+The problems with expat: in text form.
+
+	* a dmake in expat produces 2 libraries:
+		ascii_expat_xmlparse, and expat_xmlparse used by:
+		EXPATASCII3RDLIB      and EXPAT3RDLIB
+
+	libexpat_xmlparse:
+		+ sax/source/expatwrap - UNO XML interfaces.
+	libascii_expat_xmlparse:
+		+ ucb/source/ucp/webdav/makefile.mk - webdav support.
+		+ xmlhelp - help system.
+
+	The modified version is compiled eg.
+(expat/unxlngi4.pro/misc/build/expat/xmlparse/makefile.mk) with:
+
+UNICODECDEFS+=-DXML_UNICODE
+
+	The libexpat_xmlparse code - is linked into a dlopened'
+component library that has it's symbols stripped down to only a few C
+'component' symbols. So - this is not the problem.
+
+	Conclusion: ensure we link only with EXPATASCII3RDLIB.
--- openoffice.org-2.4.1.orig/ooo-build/doc/local.txt
+++ openoffice.org-2.4.1/ooo-build/doc/local.txt
@@ -0,0 +1,115 @@
+Local linking notes ...
+
+TODO:
+    + Why not:
+	+ all constructors operators etc. still 'inline'.
+	+ just 'getType' etc. shared ...
+	+ CPPU_INTERNAL_INLINE ?
+	    + throw/catch will generate all except info ...
+	+ if (do_internal) ...
+	+ Minimal changes - go the other way [!]
+	    + (foo)
+
+    + Need different guards in .hpp & .hppi files
+	+ and no redundancy [!]
+	+ [ since .hppi files cascade include .hpp ]
+
+	+ FIXME: should aIncludes be built in all
+	  'dumpFiles' non-chaining overrides ?
+
+	+ .hidden symbols (?)
+
+	+ Different approach ?
+[1]	    + emit #ifdefs into the .hpp files (?) - so they do ~nothing ;-)
+		+ API re-factoring (?)
+		    + [foo] +
+	    + [ specific to header ? => back compat ? ]
+	    + [ fewer changes / conditionals etc. ]
+	    + Fixes include issues ...
+	    + no need to change 'inlines' though ...
+		+ nothing explicitely inline
+
+	+ Don't emit stuff for polymorphic foo:
+	    + whack the static method data out there
+		+ doesn't matter if there's a duplicate [I hope]
+
+	+ XInterface.hdl
+	    + - very problematic - ...
+	    + WOW !
+		+ removing the 
+ ::com::sun::star::uno::Type const & cppu_detail_getUnoType(::com::sun::star::uno::XInterface const *);
+		+ prototype from XInterface.idl - makes it build !
+
+    + hpp different from .hdl
+	+ keep both [!?]
+	+ different in include depth
+	    + add 'bGenImpl' flag to dumpHxxFile
+
+    + we want -all- include files
+    + we want -all- C named typenames etc.
+
++ Looking good bug evil bugs:
+
+../unxlngi6.pro/inc/com/sun/star/corba/iiop/Version.hppi: In constructor ‘com::sun::star::corba::iiop::Version::Version()’:
+../unxlngi6.pro/inc/com/sun/star/corba/iiop/Version.hppi:31: error: class ‘com::sun::star::corba::iiop::Version’ does not have any field named ‘gnu_dev_major’
+../unxlngi6.pro/inc/com/sun/star/corba/iiop/Version.hppi:32: error: class ‘com::sun::star::corba::iiop::Version’ does not have any field named ‘gnu_dev_minor’
+...
+Pre-processor nightmare from:
+
+sys/sysmacros.h:extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
+sys/sysmacros.h:extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
+sys/sysmacros.h:__NTH (gnu_dev_major (unsigned long long int __dev))
+sys/sysmacros.h:__NTH (gnu_dev_makedev (unsigned int __major, unsigned int __minor))
+sys/sysmacros.h:# define major(dev) gnu_dev_major (dev)
+sys/sysmacros.h:# define makedev(maj, min) gnu_dev_makedev (maj, min)
+
+from sys/types.h
+from stdlib.h
+from sal/config.h
+
+
+...
+../unxlngi6.pro/inc/com/sun/star/drawing/CaptionEscapeDirection.hdl: At global scope:
+../unxlngi6.pro/inc/com/sun/star/drawing/CaptionEscapeDirection.hdl:19: error: expected unqualified-id before ‘=’ token
+
+
+
++ startup speedup:
+    + 1st pass
+	+ generate unotypes.so
+			+ soffice.bin - link vs. that.
+			+ ensure it is dlopened' global before
+				+ any other library is opened [?]
+			+ include all .hpp files
+			+ remove 'inline' keywords
+			+ generate dummy / empty .hpp files
+			+ *.hppi files (?)
+			    + hpp impl.
+		    + un-inline constructors etc.
+		    + link all uno components to it
+			+ do as patch: then cws-commit-patch
+		+ 2nd pass
+		    + remove types.rdb (6Mb) and export types
+		      from unotypes.so
+
+		+ [ link soffice.bin to it ? ]
+		+ link all uno components to it ?
+
+
+
++ Very odd problem:
+
+	+ foo has:
+	+ GOTOFF -
+		+ 'offset of this foo inside my library'
+		+ just can't be done: we don't define that symbol
+		    + so *why* is it generating a GOTOFF reloc ?
+000002eb  00004509 R_386_GOTOFF           00000000   com::sun::star::uno::RuntimeException::~RuntimeException()
+	...
+
+	+ As we generate the 'throw RuntimeException'
+	    + we have to (it seems) have the exception type info
+		+ and GOTOFF pointers to stuff ...
+		    + also - all these construct / destroy routines
+		      are ~empty (?)
+		    + or are they ?
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/qatesttool.txt
+++ openoffice.org-2.4.1/ooo-build/doc/qatesttool.txt
@@ -0,0 +1,74 @@
+How to use qatesttool
+
+The upstream documentation is not perfect, so here is a short introduction 
+about how to start using the the OOo qatesttool. :-)
+
+The testtool project is part of the QA project, 
+http://qa.openoffice.org/index.html. The qatesttool home page is at 
+http://qa.openoffice.org/qatesttool/index.html
+
+I think that the most useful documentation is in the document "Introduction to 
+Automated GUI Testing" that can be found at 
+http://qa.openoffice.org/qatesttool/OOo_testtool.pdf.
+
+ooo-build includes some support for the qatestool, see
+ooo-build/doc/test-ooo.txt for more details.
+
+
+What do you need to start a test?
+
+1. You need the testtool.bin. It is part of normal OOo build/installation. It 
+is built in the module automation and installed as program/testtool.bin
+
+
+2. You need a test. The complete set of tests can be download at
+http://qa.openoffice.org/qatesttool/src680/tt_env_OOo_2.0.0.tar.gz
+
+I suggest to get the actual version from the usual OOo cvs, though. It is in 
+the module qa/qatesttool. I got it this way:
+
+$# ooo-build/bin/tunnel
+$# export CVSROOT=:pserver:pmladek@localhost:2401/cvs
+$# cvs co qa/qatesttool
+
+
+3. The testtool has to be configured. I suggest to start with
+ooo-build/doc/testtoolrc.sample and install it as ~/.testtoolrc. It is because
+the section [Crashreporter] is required but it cannot be created by the
+testtool GUI. The section [OOoProgramDir] is required but cannot be easily
+created by GUI. Once this section exists, it can be edited in
+Extra/Settings/Generic.
+
+Then you should fix the values BaseDir, LogBaseDir, HIDDir. You can do it 
+either directly in ~/.testtoolrc or in the testtool by Extra/Settings/Profile. 
+You can add its own profile. Note that the attached .testtoolrc uses 
+values from the profile "Novell OOo-2.0" by default.
+
+4. You can start a test (a .bas file from qa/qatesttool directory). There are 
+two ways how to do it:
+
+a) You can start testtool.bin; open a .bas file by File/Open; and run it by 
+Program/Start (F5)
+
+b) You can start it from command line, for example:
+/usr/lib/ooo-2.0/program/testtool.bin -run
+~pmladek/OOo/qa/qatesttool/writer/level1/w_autotext.bas
+
+When the test is started, the test tool should open a window with the test log. 
+Then it starts OOo from the OOoProgramDir directory with some necessary 
+options (-enableautomation -norestore -nolockcheck -autocrashreport). Then it 
+communicates with the started OOo instance and do the tests as described in 
+the .bas file. The logs are saved in the LogBaseDir. Unfortunately, they are 
+not well readable. It is better to see them using the testtool.
+
+Last thing, I suggest you to look into the documentation anyway. You might be 
+interested in the info about the various IDs (hid and sid files), about GUI 
+test writing, ...
+
+Note: There is a quick introduction into the GUI test writing in the document 
+"OpenOffice.org TestTool CookBook", 
+http://qa.openoffice.org/qatesttool/OOo_tt_CookBook.pdf. I thing 
+that it is better explained in the OOo_testtool.pdf, though.
+
+
+I hope this helps.
--- openoffice.org-2.4.1.orig/ooo-build/doc/calc-drawing-layer.txt
+++ openoffice.org-2.4.1/ooo-build/doc/calc-drawing-layer.txt
@@ -0,0 +1,104 @@
+Calc Drawing Layer
+==================
+
+[ i.e. How to get objects and cells to interact nicely ]
+[ "Abandon All Hope, All Ye Who Enter Here." ]
+
+Overview:
+--------
+  - Calc allows objects (images, embedded documents, etc.) to be placed 
+    anywhere -- within a single cell, overlapping many cells, etc.
+  - Objects can be "anchored" to the Page or to a Cell
+    - "Anchor to Cell" ~~ "whenever the cell moves, move the object so that
+      it's still within the cell."
+      - Buggy; see http://www.openoffice.org/issues/show_bug.cgi?id=47088
+    - "Anchor to Page" ~~ "don't move the object, even if
+      columns/rows/fonts/etc. are resized"
+  - To support both Page and Cell anchoring, Objects are not kept within a
+    Sc*Cell data structure.
+  - Instead, we "magically" infer the row that the object belongs to by using
+    it's position.
+
+Implementation:
+--------------
+  - Drawing Layer implemented within ScDrawLayer <sc/inc/drwlayer.hxx>
+  - ScDrawLayer logically contains a collection of 
+    SdrPage <svx/svdpage.hxx> objects
+    - via indirect base type method SdrModel::GetPage() <svx/svdmodel.hxx>
+  - SdrPage contains a collection of SdrObject instances
+    - Iterated over via SdrObjListIter
+  - Key Point: SdrObjects know their location on the Drawing Layer via
+    SdrObject::GetSnapRect() and/or SdrObject::GetLogicRect().
+    - This location is in Millimeters!
+  - Meanwhile, the rest of Calc stores everything in Twips -- e.g.
+    ScDocument::FastGetRowHeight(), ScDocument::GetColWidth() return
+    measurements in Twips, not in mm.
+    - Necessitates converting Twips -> MM and MM -> Twips to determine 
+      what row/column (i.e. cell) an Object is anchored to.
+  - See ScDrawLayer::MoveAreaTwips() for an example.
+  - Not all of Calc is in Twips; ScDrawLayer::MoveAreaTwips() needs to do
+    MM->Twips to get object position, then do Twips->MM conversion to store
+    Undo information.
+
+Measuring:
+---------
+  - When drawing/moving/etc., the Mouse position (0,0) is the top-left corner
+    of cell A1 (i.e. the row & column headers are ignored).
+  - Measurements passed to ScHeaderControl::MouseButtonUp() are in Pixels
+  - Pixels converted to Twips in ScRowBar::SetEntrySize() via
+    nPixels/pViewData->GetPPTY(); GetPPTY() is based on
+    ScGlobal::nScreenPPTY and the Zoom scale
+  - For 100% scale on my laptop, ScGlobal::nScreenPPTY = 0.086.
+  - So 430 pixels is 5000 Twips
+
+Issues:
+------
+  - The Drawing Layer is littered with issues.
+  - Conversion errors between hmm & twips causes positioning issues when
+    moving objects.
+    - Cut & Paste an object into a cell *should* insert it into the upper-left
+      corner of the cell.
+    - Frequently, the *actual* anchor is one cell to the left!
+  - Row/Column resizing, both with mouse & via dialogs.
+  - Redrawing -- changing tabs can alter the per-pixel position of objects 
+    (as it causes a page refresh).
+  - Row/Column Grouping is a WTF:
+    - If an object is _completely_ within a group, and the group is
+      collapsed+expanded, the object is now the size of the group.
+    - If the object overlaps a group border, collapse+expand is "interesting."
+  - Excel import: for certain files, embedded images which should be aligned
+    along cell boundaries instead overlap cell borders.  Not sure what's
+    happening here.
+    - Need a better repro; can't manually reproduce this, but have a
+      non-public file that demonstrates behvior.
+
+Fixes?
+------
+  - Theory: many issues caused by lossy unit conversions from hmm->twips.  Fix
+    is to replace arithmetic using HMM_PER_TWIPS with equivalent
+    MetricField::ConvertDoubleValue() call.
+  - This doesn't fix everything, in particular applying this fix to the Excel
+    import filter doesn't fix the above Excel import issue.
+  - Sun's new drawing layer (scheduled for OOo 2.4.0)?
+  - Modify the Drawing Layer (SdrModel, etc.) to store coordinates in the same
+    unit as Calc proper, thus eliminating lossy unit conversions.
+
+Drawing Layer Internals:
+-----------------------
+  - Everything that draws on the screen goes through OutputDevice [vcl].
+  - Drawing Layer objects have a slight detour through XOutputDevice, which
+    then delegates calls to an OutputDevice.
+  - OutputDevice knows about -- and performs -- unit conversions.
+  - *Everything* that displays on the screen directly or indirectly inherits
+    from OutputDevice.  This includes all buttons, menus, the Calc grid,
+    status bars, scroll bars....
+  - Many of them use different units. :-)
+  - Calc requires a 1:1 mapping when going from "logical" to "device"
+    coordinate systems.  For example, if you go from hmm -> pixels, the
+    corresponding pixels -> hmm conversion needs to get the *same* value.
+    - Required in ScDrawUtil::CalcScale().
+  - OutputDevice uses X- and Y- scales to go from/to logical and device
+    coordinate systems.
+  - X- and Y- scales are computed by ScDrawUtil::CalcScale().
+    - Takes screen DPI, View->Zoom, etc. into consideration.
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/gcc.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gcc.txt
@@ -0,0 +1,1037 @@
+Performance:
+    + create a small test library
+    + find some genuinely weak / duplicate symbols in OO.o ...
+    + add annotation etc. to that
+    + checkout vtable instantation etc.
+
+
+We are still doing too much work with symbol lookup
+    + most of it highly avoidable.
+
+    + ~95% is relocation processing ...
+	+ fn relocations ...
+    + populating vtable:
+	+ looking up global / weak symbols [ why ? ]
+	+ [ can they not be -Bsymbolic or something ? ]
+	+ if 'dllexport' or the visibility attribute are 
+	  used - we should/could hide local vtable
+	  lookup bits ?
+	+ we want the symbols to be 'protected' so they
+	  are exported - by are resolved internally to
+	  symbol-freea relocations
+	+ The whole thing is crazy:
+	    + we need only 1 'get-vtable' method per class ...
+	+ Mark all 'virtual' methods of (SPECIFIED && DEFAULT)
+	  linkage as 'protected' - ditto for generated thunks (?)
+    + Understand the weak symbol issue [!?]
+	+ add a throw/catch ...
+	  fprintf (file, " %c%c%c%c%c%c%c",
+	    ((type & BSF_LOCAL)
+	    ? (type & BSF_GLOBAL) ? '!' : 'l'
+	    : (type & BSF_GLOBAL) ? 'g' : ' '),
+	   (type & BSF_WEAK) ? 'w' : ' ',
+	   (type & BSF_CONSTRUCTOR) ? 'C' : ' ',
+	   (type & BSF_WARNING) ? 'W' : ' ',
+	   (type & BSF_INDIRECT) ? 'I' : ' ',
+	   (type & BSF_DEBUGGING) ? 'd' : (type & BSF_DYNAMIC) ? 'D' : ' ',
+	   ((type & BSF_FUNCTION)
+	    ? 'F'
+	    : ((type & BSF_FILE)
+	       ? 'f'
+	       : ((type & BSF_OBJECT) ? 'O' : ' '))));
+	+ Weak symbols generated by:
+	    + Templates ...
+	    + Reference<Foo> type stuff ...
+	    	    + non-virtual thunks
+		    + type info (_ZTI)
+		    + vtables (_ZTV)
+
+    + [all to do with typeinfo behavior]
+	+ re-read: http://www.nedprod.com/programs/gccvisibility.html
+	  very carefully ...
+    + Can we annotate the source with 'protected' for most methods ?
+
+    + parent chaining ?
+	+ doesn't go via vtable - but direct fn. call ...
+
+    + Looks like we do all those bindings (relocs?)
+	+ at dlopen time [!?] [ 10k relocations building vtables ? ]
+
+    + need to check vs. gcc-4.x ...
+	[ should be able to prune ... ]
+
+Thoughts: (problem/soln/problem/...)
+    + the deep / vcl OutputDevice -> Window -> Control -> ...
+      vtable building issue is bad, bad news.
+	+ why can't we get/copy the parent's vtable
+	  with 'memcpy' ? instead of lots of lookups ?
+    + can we parallelise the linker ?
+	+ this problem is easily partitionable, surely ...
+	    + [ no thread support in the linker ... ]
+
+    + a 'thunk' fn does:
+	+ adjust 'this' pointer & call method [ and MI feature ]
+
++ Things to check:
+	+ anonymous namespaces ... - file path mangled in ?
+
+
+
+** Parent / Copy VTables ... **
+    + Use: options to dump tree data to aid debugging.
+
+	-fdump-class-hierarchy[-N]
+    + With this we get:
+	cp/class.c (dump_vtable):
+
+eg.
+
+Vtable for SubClass
+SubClass::_ZTV8SubClass: 9u entries
+0     (int (*)(...))0
+4     (int (*)(...))(& _ZTI8SubClass)
+8     SubClass::doFoo
+12    BaseClass::count
+16    BaseClass::operator[]
+20    SubClass::doAnother
+24    (int (*)(...))-0x000000008
+28    (int (*)(...))(& _ZTI8SubClass)
+32    SubClass::_ZThn8_N8SubClass9doAnotherEi
+
+Called from:
+    + cp/class.c (initialize_vtable)
+	+ We need to identify simple cases somewhere
+	  here & eliminate sillies.
+
+/* Make BINFO's vtable have N entries, including RTTI entries,
+   vbase and vcall offsets, etc.  Set its type and call the backend
+   to lay it out.  */
+
+static void
+layout_vtable_decl (tree binfo, int n)
+
+/* Virtual function table initialization.  */
+
+/* Create all the necessary vtables for T and its base classes.  */
+
+static void
+finish_vtbls (tree t)
+
+Calls:
+
+/* Initialize the vtable for BINFO with the INITS.  */
+
+static void
+initialize_vtable (tree binfo, tree inits)
+
+* It seems initializer ordering is unpredictable:
+
+works:
+
+extern ParamFoo aBaa;
+ParamFoo aBaa;
+StaticInit aStatic(aBaa);
+
+doesn't work:
+
+extern ParamFoo aBaa;
+StaticInit aStatic(aBaa);
+ParamFoo aBaa;
+
+* Initialization etc. bits:
+
+http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gccint/Initialization.html
+
+.ctors section.
+    + find something that puts code in
+      the .ctors section (?)
+
+Emit a fn. that will do the construction (?)
+    + make it a .ctor (?)
+
+
+*/
+
+static void
+finish_vtbls (tree t)
+
+Calls:
+
+/* Initialize the vtable for BINFO with the INITS.  */
+
+static void
+initialize_vtable (tree binfo, tree inits)
+
+* It seems initializer ordering is unpredictable:
+
+works:
+
+extern ParamFoo aBaa;
+ParamFoo aBaa;
+StaticInit aStatic(aBaa);
+
+doesn't work:
+
+extern ParamFoo aBaa;
+StaticInit aStatic(aBaa);
+ParamFoo aBaa;
+
+* Initialization etc. bits:
+
+http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gccint/Initialization.html
+
+.ctors section.
+    + find something that puts code in
+      the .ctors section (?)
+
+Emit a fn. that will do the construction (?)
+
+
+* Avoid duplicate VTable construction:
+
+    + need to hook the vague linkage constructs:
+
+http://m68hc11.serveftp.org/doc/gcc_6.html
+
+    + but for methods [ ie. same as 'inline' methods ?! ;-]
+
+
++ 1st step:
+    + get gcc to emit a constructor call to
+      a custom fn ...
+
++ 2nd step
+    + generate bit-masks &
+      impl. that function to do a copy
+
++ 3rd step
+    + generate that fn. internally
+
+
+
+** Ordering:
+    + absolutely critical ...
+	+ to make it efficient:
+	    + have to copy from direct parents only
+		=> have to ensure the parent is initialized
+		   (copied) itself first ...
+	    + have to copy only once
+    + Linker support ...
+
+** Assumption:
+    + it will ~always be more compact and
+      efficient to do vtable copies ourself
+      (in shared libraries)
+	    + we can make this dependent on -fPIC ...
+
+** Minimality
+    + is it possible to do the ordering without
+      binutils support ?
+	+ we could call a 'weak'
+	  parent 'copyVTable' method (if present)
+	+ each constructor:
+	    + initVTable<Name>
+	    + emit a constructor call to that
+		+ let initialization sort it out (?)
+		+ [ would that break stuff ?]
+	    + how bad would that be ?
+		+ can we add support to elide
+		  duplicate constructors in binutils ?
+
+    + could we do (idle) vtable construction on 1st
+      class instance use ?
+	+ might be somewhat bloating & evil.
+	+ OTOH currently ~valid - since no parent
+	  use without foo ?
+
+    + With binutils support:
+	+ can call a minimal number of fn's ...
+	    + but more difficult (?) ...
+	+ the 'sort' is easy
+	    + need code walk-through;
+		+ where are vtables emitted (by the backend) [!?]
+	+ can be made more succinct
+	    + can be made .rodata (?)
+		+ then needs glibc support [?]
+		    + [ for symbol lookup ? ]
+
+** Questions:
+    + what forms of symbol / invocation ellision can we use ?
+
+    + I -like- the idea of an 'initVTable' method
+      being called (with ~weak stuff?)
+	+ isolates the fix in g++ itself, with no
+	  binutils/glibc pain.
+
+    + in gcc: where is the vtable building code ?
+	+ class.c: initialize_vtable
+	    + [ initialize_artificial_var (...)
+	+ class.c: (build_vtbl_initializer)
+	    + sets up BINFO_VTABLE -
+	      (an expression that points at an
+	      offset into the vtable ].
+	+ class.c (
+
+    + in gcc: where is the vtable emission code ?
+	+ 
+
+
+    + helpful blurb:
+
+   Define accessor macros for information about type inheritance
+   and basetypes.
+
+   A "basetype" means a particular usage of a data type for inheritance
+   in another type.  Each such basetype usage has its own "binfo"
+   object to describe it.  The binfo object is a TREE_VEC node.
+
+   Inheritance is represented by the binfo nodes allocated for a
+   given type.  For example, given types C and D, such that D is
+   inherited by C, 3 binfo nodes will be allocated: one for describing
+   the binfo properties of C, similarly one for D, and one for
+   describing the binfo properties of D as a base type for C.
+   Thus, given a pointer to class C, one can get a pointer to the binfo
+   of D acting as a basetype for C by looking at C's binfo's basetypes.  */
+
+
+
+* Considerations:
+    + Information
+    + Representaiton
+    + Data sharing
+    + Space efficiency
+
+M-x set-variable\ntab-width 8
+
+
+
+<micha> What I implemented until then was just some dumping routines
+in the frontend to see how and where it put together the member method
+decls, and if it were a overrider, or something inherited.  Then I
+thought about it, and thought the whole complicateness is not needed
+anymore anyway, then we spoke about it, then I thought again that it's
+needed, but never returned to do something on it.  But the patch for
+getting a feel in cp/class.c is somewhere
+
+<micha> ...
+<micha> ~matz/copy-vtable/diff
+
+<micha> What's left is a multitude of stuff: 1) remembering in
+lists-per-class, where the overriders were, 2) emitting a decl for
+that list, which could be interpreted at runtime, 3) writing the
+runtime support to interpret all these lists, 4) make ld.so call that
+runtime support before everything else (also before other static
+ctors)
+
+* So
+    + we can (I think correctly) identify the slots we want to copy
+
+* Next:
+    + generating a new section:
+	+ read the constructor code ...
+
++ decl2.c - remember ? - RTL generation etc. ? :-)
+
+./gcc/cp/decl2.c:#define SSDF_IDENTIFIER "__static_initialization_and_destruction"
+./gcc/cp/decl2.c:  char id[sizeof (SSDF_IDENTIFIER) + 1 /* '\0' */ + 32];
+./gcc/cp/decl2.c:     SSDF_IDENTIFIER_<number>.  */
+./gcc/cp/decl2.c:  sprintf (id, "%s_%u", SSDF_IDENTIFIER, count);
+
+./gcc/cp/cp-tree.h:extern GTY(()) tree static_aggregates;
+
+
+
+    static_aggregates = tree_cons (init, decl, static_aggregates);
+
+  while (*var)
+    {
+      tree t = *var;
+      tree decl = TREE_VALUE (t);
+      tree init = TREE_PURPOSE (t);
+
+      *var = TREE_CHAIN (t);
+      TREE_CHAIN (t) = result;
+    }
+
+
+** We need an intermediate representation (!?)
+    + trees of what ?
+	+ 2 tree pairs ?
+	+ source & dest ?
+	    + source == ptr to vtable + offset ...
+		+ [ can we make an offset expression ? - perhaps ... ]
+	    + dest == ptr to vtable + offset ...
+
+	+ can we use DECL_VINDEX instead ?
+	    [ then we have it all ]
+	    + just store the fn ptr ?
+		+ do we duplicate the fn. decls
+		  per vtable ?
+
+    + Then sort/crunch these on output ...
+	+ 
+
+    + cp_finish_decl builds 'static_aggregates'
+
++ Question:
+    + is there a different fn. decl per vtable slot
+      assignment ? - with a different DECL_VINDEX ?
+	+ since we assign DECL_VINDEX on a BV_FN(fn):
+	    + it must be ...
+      for (vindex = 0, fn = BINFO_VIRTUALS (TYPE_BINFO (t));
+	{
+	  tree fndecl = BV_FN (fn);
+	  ...
+	    DECL_VINDEX (fndecl) = build_int_cst (NULL_TREE, vindex);
+	}
+
+        + in vtbl_initialize - 'fn' - is the BV_FN ...
+
+    + Is there already a list of vtables we can
+      come back to & operate on later (at emission time ?)
+	... 
+	+ why not build one ? & operate on it later ?
+	+ First build simple list:
+	    + then re-consider: can we post-generate this ?
+
+    + can we just sort binutils to ensure that no source
+      address is read before a dest is written (?)
+	+ then sort read/writes etc.
+
+
+** Global vars etc. & sorting
+
++ interestingly a compile emits:
+
+.globl __gxx_personality_v0
+
+
+Foo aGlobal;
+Baa aBaa;
+
+compiles to:
+
+	.type	_Z41__static_initialization_and_destruction_0ii, @function
+_Z41__static_initialization_and_destruction_0ii:
+
+	.text
+	.align 2
+	.type	_Z41__static_initialization_and_destruction_0ii, @function
+_Z41__static_initialization_and_destruction_0ii:
+.LFB9:
+	pushl	%ebp
+.LCFI14:
+	movl	%esp, %ebp
+.LCFI15:
+	subl	$24, %esp
+.LCFI16:
+	movl	%eax, -4(%ebp)
+	movl	%edx, -8(%ebp)
+	cmpl	$1, -4(%ebp)
+	jne	.L13
+	cmpl	$65535, -8(%ebp)
+	jne	.L13
+	movl	$aGlobal, (%esp)
+	call	_ZN3FooC1Ev
+	movl	$aBaa, (%esp)
+	call	_ZN3BaaC1Ev
+.L13:
+	leave
+	ret
+.LFE9:
+	.size	_Z41__static_initialization_and_destruction_0ii, .-_Z41__static_initialization_and_destruction_0ii
+	.align 2
+	.type	_GLOBAL__I_aGlobal, @function
+_GLOBAL__I_aGlobal:
+.LFB10:
+	pushl	%ebp
+.LCFI17:
+	movl	%esp, %ebp
+.LCFI18:
+	subl	$8, %esp
+.LCFI19:
+	movl	$65535, %edx
+	movl	$1, %eax
+	call	_Z41__static_initialization_and_destruction_0ii
+	leave
+	ret
+.LFE10:
+	.size	_GLOBAL__I_aGlobal, .-_GLOBAL__I_aGlobal
+
+
+binutils/ld/ldctor.c (ctor_prio):
+    + gets the priority of a g++ global constructor
+      (or destructor) from the symbol name
+        + [ gets an integer prio. from the symbol name ]
+    + these functions are sorted (somehow)
+    + ldctor_build_sets:
+	+ this is what builds the constructor_list ...
+	    + [ linker script 'CONSTRUCTORS' command (?) ]
+
+    + FIXME: what good are linker scripts ?
+	+ what function do they serve ?
+
+binutils:
+http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_chapter/ld_3.html
+
+gcc/collect2.c:
+/* Collect static initialization info into data structures that can be
+   traversed by C++ initialization and finalization routines. */
+    + Interesting [!]
+
+
+** Generate at least some data out ... &
+   a _GLOBAL_<foo> thing ...
+
+
+* Debugging:
+eg. gdb /data/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.1.0/cc1plus
+
+
+* COMDAT linkage
+    /* With weak symbols, we simply make the variable COMDAT;
+       that will cause copies in multiple translations units to
+       be merged.  */
+    comdat_linkage (decl);
+    + Question: is this an overlaying merge or can it
+      be more complex ? [ appending eg. ]
+
+* Assertion failed:
+
+4079      if (!DECL_EXTERNAL (decl) && DECL_SIZE (decl) == NULL_TREE)
+4080        {
+4081          /* An automatic variable with an incomplete type: that is an error.
+4082             Don't talk about array types here, since we took care of that
+4083             message in grokdeclarator.  */
+4084          error ("storage size of %qD isn't known", decl);
+
+
+** We initialize the artificial var
+    + but ... how is it output ?
+
+** Have we got the initialization for this thing right ?!
+
+
+** TODO:
+    + emit a '_GLOBAL_...?' fixup function - with
+      a 'magic' priority ? so it gets sorted
+      first-of-all (!?)
+    + terminate the copy constructor foo ...
+    + run a simple test with a single constructor ?
+    + create a .ctors section ?
+
+
+** binutils/ld/ldctor.c:
+    + ldctor_add_set_entry is called a lot ...
+    + can we trigger the binutils feature on the
+      presence of compiler emitted 'magic'
+      symbols ? [ fun ... ] (nicer for sure !)
+
+
+    + Can we re-arrange the sections ?
+	+ or is this information lost by this time ?
+	+ can we extract & move stuff ?
+	+ what is possible at link time ?
+
+crtbegin.c:
+/* Specialized bits of code needed to support construction and
+   destruction of file-scope objects in C++ code.
+   Copyright (C) 1991, 1994, 1995, 1996, 1997, 1998,
+   1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Contributed by Ron Guilmette (rfg@monkeys.com).
+
+** Wow - gcc/crtstuff.c
+    + looks like an ideal place to put this stuff ...
+
+eg.:
+
+STATIC func_ptr __CTOR_END__[1]
+  __attribute__((section(".ctors"), aligned(sizeof(func_ptr))))
+  = { (func_ptr) 0 };
+
+
+** Generating our own section:
+    + gcc/except.c (default_exception_section)
+    + named_section_flags (".gcc_except_table", flags);
+    + -> TARGET_ASM_EXCEPTION_SECTION
+	-> target-def.h (
+
+We get std. decls into other sections (somehow) with:
+surely ?
+TARGET_ASM_CONSTRUCTOR,			\
+TARGET_ASM_DESTRUCTOR,                  \
+
+gcc/c-decl.c:
+    c_expand_body ...
+
+
+varasm.c: hmm ...
+
+/* Switch to section for variable DECL.  RELOC is the same as the
+   argument to SELECT_SECTION.  */
+
+void
+variable_section (tree decl, int reloc)
+{
+  if (IN_NAMED_SECTION (decl))
+    named_section (decl, NULL, reloc);
+  else
+    targetm.asm_out.select_section (decl, reloc, DECL_ALIGN (decl));
+
+
+elflink.c:
+     + check elf_gc_propagate_vtable_entries_used
+also + elf_gc_smash_unused_vtentry_relocs
+
+Can we hook into:
+    bfd_boolean
+    bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info)
+    
+
+/* Called from check_relocs to record the existence of a VTINHERIT reloc.  */
+
+.vtable_inherit & .vtable_entry - pseudo-ops from old 'gas'
+http://sources.redhat.com/ml/binutils/2001-02/msg00485.html
+
+gas/config/obj-elf.c:
+  /* These are GNU extensions to aid in garbage collecting C++ vtables.  */
+  {"vtable_inherit", (void (*) (int)) &obj_elf_vtable_inherit, 0},
+  {"vtable_entry", (void (*) (int)) &obj_elf_vtable_entry, 0},
+
+* Interesting ! :-) *
+    + [ ... neato ...]
+
+* To understand the linker:
+
+  read binutils/include/bfdlink.h
+
+<micha> You just have to make sure, that it's called before static ctors.  So either before __do_global_ctors, or before the call to frame_dummy (which in turn calls __register_frame_info).
+<micha> So it's perhaps enough if you put that call to fixup_inheritance (or the like) in crtstuff.c right before here:
+<micha> #ifdef INIT_SECTION_ASM_OP
+<micha> CRT_CALL_STATIC_FUNCTION (INIT_SECTION_ASM_OP, frame_dummy)
+<micha> #else /* defined(INIT_SECTION_ASM_OP) */
+<micha> static func_ptr __frame_dummy_init_array_entry[]
+<micha>   __attribute__ ((__unused__, section(".init_array")))
+<micha>   = { frame_dummy };
+<micha> #endif /* !defined(INIT_SECTION_ASM_OP) */
+<micha> #endif /* USE_EH_FRAME_REGISTRY || JCR_SECTION_NAME */
+<micha> Perhaps outside the USE_EH_FRAME_REGISTRY || JCR_SECTION_NAME ifdef
+<michael_> hokay :-)
+
+Looking at:
+    + ld/eelf_i386.c ... (interesting)
+          assigns: ld_elf_i386_emulation =
+	    -> ldemul-list.h EMULATION_LIST
+    
+
+/* Do the final step of an ELF link.  */
+
+bfd_boolean
+bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
+
+binutils overview:
+    + ldmain.c:469
+	+ yyparse (); [ on linker script ]
+
+Most of the action is here:
+	+ lang_process [ldlang.c]
+	    + open_input_bfds:
+		+ load_symbols [ end ]
+		    + ... ->
+elflink.c		+ "bfd_elf_link_add_symbols"
+			+ all symbols end up in:
+			    + elf_link_add_object_symbols
+			    ** hack here ! **
+	    + ldemul_after_open
+	    + ldctor_build_sets [ .ctor handling ? ]
+	    + ldemul_before_allocation
+		+ by this stage we -know- all the sizes
+		    + including relocation count etc. ? [!]
+
+ -> ldwrite.c:577
+
+** elf_link_add_object:
+    + we can detect & start to accumulate
+      information on relocs
+	+ but we need all symbols in-place
+	  first (surely) ?
+
+    + bfdlink.h (bfd_link_info)
+	+ input_bfds -> link_next list ...
+	    + we have to 'size' sections
+	      later (surely)
+
+
+    + bfd_elf_size_dynamic_sections ...
+	+ Need to do the calcl here
+	    + while walking over the
+	      input_bfds ... [! :-]
+
+
+** TODO:
+    + remove vtreloc cmdline ...
+    + Can we set SEC_MERGE on the gcc version section ?
+      [!?] (.comment?)
+
+    + the data we need to do the relocs -
+      is fetched with (?) elfcode.h (elf_slurp_reloc_table)
+	+ nah - our relocs are somewhere else ...
+
+
+Interesting fn: for generating linker sourced relocs:
+
+static bfd_boolean
+elf_reloc_link_order (bfd *output_bfd,
+		      struct bfd_link_info *info,
+		      asection *output_section,
+		      struct bfd_link_order *link_order)
+
+** Where are the relocations ?
+   + how do we get at them ?
+
+** FIXME:
+   + what about re-writing these tables when
+     they are in-use [!]
+	+ inevitably some of the symbols will be 'vague' (?)
+	+ [ we can easily check the value of the relocs vs.
+	    our own section address / size
+	    [ if we're in glibc ... ] ]
+
+
+** FIXME:
+    + problem 1: emitting our own reloc
+    + problem 2: removing existing relocs ! ;-)
+
+
+** Strategy:
+    + generate a new / bogus section in the Input (!?)
+	+ pack it full of relocs (?)
+	+ copy it to the output (?)
+
+* look at linker maps [!]
+
+* consider other sections ?
+    + .rel.plt ? - how does it get built ?
+    + .dynsym
+	+ copy relocs from in -> out (?)
+	+ _bfd_elf_link_output_relocs [ Called from Where !? ]
+		+ from elflink.c (elf_link_input_bfd)
+		    called via (elf_backend_emit_relocs)
+	    + this is just building the binary rel section...
+	    + can we just do this ourselves for
+	      our custom section at the end ?
+	    + just call bed->swap_reloc_out [ a lot ourselves ]
+	    + have some custom logic ... [ and a custom offset ]
+	+ that will let us build a .vtrelocs section ourselves.
+	+ input_section->output_section ...
+	    + rels ?
+
+    + then we just need to start killing relocations in other
+      sections :-) ... [ easier ? ] swap_in/out etc.
+
+* Keep track of external & internal relocs [!?]
+    + [hmm]
+
+asection->output_section
+    + _bfd_elf_link_size_reloc_section ...
+	+ pad them out ? [...]
+    + [ symbols? ]
+
+** FIXME:
+    + how does the init_list stuff get relocated !?
+    + how does it get NULL terminated ?
+	+ can we use a similar mechanism ?
+    + can we just update the linker file & let it
+      copy / aggregate the sections in ?
+	+ [ No ? ] we have to re-write the
+	  relocations (?) - dupliate inits ?
+	  [ same problem ? ]
+
+    + Where do we calculate how many external
+      relocations we need ?
+	+ we must calculate this for all modules [!]
+
+    + eelf_i386.c - Very complicated linker scripts ... (?)
+
+<micha> Right normally relocations are only created by the assembler.
+<micha> Well, not only, though.  Also by the ELF link editor of
+course.  But that directly generates ELF relocations, not BFD relocs.
+<micha> <Bother>, I'll have competency one-2-ones with my team in 10
+minutes, must prepare ...
+
+    + .got.plt : has a -load- of custom relocations ?
+	+ or are they done by glibc automagically ?
+
+
+[ Micha ]
+
+I tried this since some hours now (adding relocations), and nearly 
+succeeded...
+
+Couple things:
+1) the c++ patch outputs the three entries in the opposite order (the list 
+   you build for initialization will be walked from the back, because 
+   there is somewhere an nreverse() call on that list), I've changed the 
+   binutils part for me, instead of correction the C++ part to the 
+   documented format
+
+2) there were a couple mixups in naming the sections .suse.vtrelocs 
+   section (sometimes missing the plural 's')
+
+Anyway, as you can see in the patch (attached) I was trying hard to not 
+only add the new section (no problem), but also generating relocations for 
+it.  Getting the storage for those relocs (I tried to only emit ELF relocs 
+directly, not going over the generic BFD routines) is no problem, filling 
+it with relocs is also not so much a problem (on has to adjust the symbol 
+indices from the incoming relocs to the final symbol indices of the 
+output).
+
+So, with that being merely work, I tried to simply add _one_ hard coded 
+relocation into a clean .suse.vtrelocs section.  For that one has to first 
+set the ->relocs member (of the elf specific section data) to an array of 
+ELF relocs.  But then it's not yet used, one has to remove the 
+~SEC_LINKER_CREATED flag too (and set SEC_RELOC).  Otherwise 
+elf_link_input_bfd() will ignore that section.
+
+[A note: all those artificial sections generated by the linker will 
+conceptually be generated as if coming from the first input file BFD, 
+_not_ directly in the output_bfd, and by that then also be linked into the 
+output file.  That object file (the first with certain properties) is 
+stored elf_hash_table (info)->dynobj all the time.]
+
+Unfortunately the above is not enough.  Such input section containing 
+relocation entries will be processed by elf_xxx_relocate_section().  The 
+relocs of such section which have to be copied to the output file (in 
+possibly mangled form) will be stored in another artificial section (i.e. 
+hanging off of ->dynobj).  But these sections also have to be created 
+first, normally done in check_relocs (goes over a whole section plus 
+relocs and decides if such output section holding reloc copies needs to be 
+created).
+
+Unfortunately check_relocs is not prepared to handle generated sections, 
+only sections really coming from an input file.  First problem is already 
+with the name.  As ".suse.vtrelocs" was not in the original input file 
+(crti.o in most cases) it will have no corresponding ELF section header, 
+and also no name in the ELF string table.  That already prevents 
+generation of a ".rel.suse.vtrelocs" section (see 
+elf32-i386.c:...check_relocs, the handinling of 'sreloc').  With a hack I 
+can generate that section anyway, but then the next problem surfaces.
+
+Because, if such section then is generated, it won't have any output 
+section corresponding to it.  All other such "fake" .rel.* sections 
+(generated for copying over dynamic relocs) will have .rel.dyn as output 
+section assigned.  That assignment unfortunately seems to be done in 
+generic linker code, right after reading in the input files, hence 
+sections generated afterwards (at least not these .rel section, which seem 
+to be special somehow).
+
+So, we can also generate that ".rel.suse.vtrelocs" section in parallel to 
+the .suse.vtrelocs section itself.  That it will get stored into the 
+output file as separate .rel.suse.vtrelocs section (i.e. not joined with 
+.rel.dyn, one can fix that with an entry in the linker script).
+
+And so, finally, we have a new section .suse.vtrelocs, with relocations 
+against it.  Something doesn't yet seem to be right with the contents of 
+thsoe relocs, but it's a start.
+
+I'm too tired to continue poking for today, though :)
+
+[ /Micha ]
+
+... Foo ...
+
+Crash with section name !? == '-2' ...
+    + [hmm]:
+	+ need it to be something else ?
+
+'elf_fake_sections' ? ...
+
+
+
+<micha> Paste of my log:
+<micha> [17:46:26] >micha< my testcase was just two files of the same content:
+<micha> [17:46:52] >micha< struct A {
+<micha> [17:46:52] >micha<   virtual void f(void);
+<micha> [17:46:52] >micha<   virtual void g(void);
+<micha> [17:46:53] >micha<   virtual void h(void);
+<micha> [17:46:53] >micha< };
+<micha> [17:46:54] >micha< struct B : public A {
+<micha> [17:46:54] >micha<   virtual void g(void);
+<micha> [17:46:55] >micha< };
+<micha> [17:47:10] [michael_] ah ok :-)
+<micha> [17:47:26] [michael_] so - I don't see the section getting output;
+<micha> [17:47:36] >micha< Compiled without -fPIC to asm, copied the asm file, changed the __vtbl_something symbol (as it's global to not clash), and linking with -shared -o -t.so.
+<micha> [17:47:50] [michael_] ah - ok ;_)
+<micha> [17:47:59] >micha< Relevant details of readelf -e t.so:
+<micha> [17:48:03]  michael_ is linking to an unshared binary - perhaps that is the problem.
+<micha> [17:48:07] >micha<   [ 6] .rel.dyn          REL             000003d4 0003d4 000050 08   A  2   0  4
+<micha> [17:48:07] >micha<   [ 7] .rel.plt          REL             00000424 000424 000010 08   A  2   9  4
+<micha> [17:48:13] >micha<   [12] .suse.vtrelocs    PROGBITS        000005a0 0005a0 000030 00   A  0   0  4
+<micha> [17:48:25] >micha< And readelf -r:
+<micha> [17:48:31] >micha< 000016d8  00000008 R_386_RELATIVE
+<micha> [17:48:31] >micha< 000016dc  00000008 R_386_RELATIVE
+<micha> [17:48:31] >micha< 00000b40  00001701 R_386_32          00000000   __gmon_start__
+<micha> [17:48:32] >micha< 000016c0  00001706 R_386_GLOB_DAT    00000000   __gmon_start__
+<micha> [17:48:44] >micha< The relocation to 00000b40 is the new one.
+
+
+
+output_section ? - creation ? 
+    + 1 assignment: _bfd_elf_link_just_syms ...
+...
+
+elflink.c:
+	  /* Set the output_section field so that lang_add_section
+	     does not create a lang_input_section structure for this
+	     section.  Since there might be a symbol in the section
+	     being discarded, we must retain a pointer to the section
+	     which we are really going to use.  */
+	  sec->output_section = bfd_abs_section_ptr;
+	  sec->kept_section = l->sec;
+
+
+** To setup sh_name correctly:
+	+ we need to call 'elf_fake_sections' earlier ...
+	+ [ when we know we will need the section ? ]
+
+#0  elf_fake_sections (abfd=0x810f160, asect=0x8110620, failedptrarg=0xbfae99c4) at elf.c:2657
+#1  0x080702e9 in bfd_map_over_sections (abfd=0x810f160, operation=0x8086b70 <elf_fake_sections>, user_storage=0xbfae99c4) at section.c:1226
+#2  0x08089408 in _bfd_elf_compute_section_file_positions (abfd=0x810f160, link_info=0x8103e60) at elf.c:3464
+#3  0x08092ce2 in bfd_elf_final_link (abfd=0x810f160, info=0x8103e60) at elflink.c:8392
+#4  0x0805d07a in ldwrite () at ldwrite.c:557
+#5  0x0805c6df in main (argc=0, argv=0x19) at .././ld/ldmain.c:469
+
+
+** Looking up the string name - just doesn't work ...
+    + crashes: no string table etc.
+
+#0  _bfd_elf_strtab_add (tab=0x0, str=0x80f6446 ".rel.suse.vtrelocs", copy=0) at elf-strtab.c:155
+#1  0x08086bbc in elf_fake_sections (abfd=0x8117510, asect=0x8119c44, failedptrarg=0xbfed8718) at elf.c:2675
+#2  0x0809dea4 in _bfd_elf_vtreloc_accumulate (output_bfd=0x810f160, info=0x8103e20) at elf-vtreloc.c:322
+#3  0x0809769e in bfd_elf_size_dynamic_sections (output_bfd=0x810f160, soname=0x0, rpath=0x0, filter_shlib=0x0, auxiliary_filters=0x0, info=0x8103e20, 
+    sinterpptr=0xbfed8868, verdefs=0x0) at elflink.c:5231
+#4  0x0806343c in gldelf_i386_before_allocation () at eelf_i386.c:1030
+#5  0x080587b1 in lang_process () at ldlang.c:5474
+#6  0x0805c6c3 in main (argc=0, argv=0x19) at .././ld/ldmain.c:460
+
+
+** So - where does:
+
+  this_hdr->sh_name = (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (abfd),
+							  asect->name, FALSE);
+#define elf_shstrtab(bfd)	(elf_tdata(bfd) -> strtab_ptr)
+
+	+ start working ?
+
+    /* prep headers will not be called for a bit -
+       this defeats a section naming assertion in the backend code,
+       that is not experienced with faked sections */
+ {
+     struct elf_strtab_hash *orig_ptr;
+     orig_ptr = elf_shstrtab (dynobj);
+     elf_shstrtab (dynobj) = _bfd_elf_strtab_init ();
+     
+
+     elf_section_data (vtreloc_sec)->rel_hdr.sh_name =
+         (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (dynobj),
+                                             ".rel.suse.vtrelocs", FALSE);
+ {
+     const char *check;
+     unsigned int strndx = elf_elfheader (dynobj)->e_shstrndx;
+     unsigned int shnam = elf_section_data (vtreloc_sec)->rel_hdr.sh_name;
+     check = bfd_elf_string_from_elf_section (dynobj, strndx, shnam);
+     fprintf (stderr, "Check '%s'\n", check);
+ }
+#endif
+
+elflink.c: link_add_symbols
+    -> calls check_relocs ...
+
+
+** If we do this ourself:
+    + have to manage the dynsym table ourselves.
+    + have to manage the reloc table sizes ourself etc. ...
+	+ £"$"£$"£4ing all done in the backend specific code.
+
+Longer term:
+    + re-write to use glibc ... [ nurgh - so, so bad ... ]
+	+ no hackish mprotect nasties (etc.)
+	+ move VTables from .got -> .data [!?]
+    + re-write sorting algorithm to be:
+	a) fast,
+	b) sort by address, to ensure linear src/dest walks.
+
+TODO:
+    + 64bit testing
+	+ bitmasks: 32 vs. 64bit (etc.)
+    + patch review
+    + catch & eliminate fixups of remote
+      vtables: need to do a range/bound check on
+      all of .data [! :-] (useful for the mprotect too (?) ...)
+	+ read the glibc mprotect code
+    + *Or* - emit each one as R_386_RELATIVE [etc.]
+	+ is this a 'BFD_RELOC_.._PCREL ?
+	+ also need a RELOC_32 and RELOC_64 [!] ...
+    + fix detection of incoming things ...
+
+To test size savings:
+    + need to be able to turn off vtable relocation :-) [!] ....
+	+ insert 0xdeadbeef instead ?
+    + Send patches to the Matzster ...
+
+    + 'static' storage definition ...
+	+ gets GC'd by the compiler [somehow]
+
+    + most of the size savings - ephemeral ...
+	+ swallowed - since symbols are still emitted [!]
+	+ (gack)
+
+    Call some methods in the tests: do some arithmetic to validate the
+result etc. ...
+
+TODO:
+    + undo some of the cunning that makes it call virtual
+      functions directly in many cases (!?) - gives excessive
+      symbol churn.
+
+    + Test size savings with 'tests' ...
+
+    + mail Micha ...
+	+ http://go-oo.org/~michael/tests.tar.bz2
+
+real-world: VCL:
+
+Copy: 0xb7f5376c -> 0xb5e66bec, (0x3)
+Copy: 0xb7f53a0c -> 0xb5e66b8c, (0x33ff9)
+Copy: 0xb7f5b908 -> 0xb5e66b28, (0x67ffb)
+Copy: 0xb7f56430 -> 0xb5e671b0, (0x7ffffff)
+Copy: 0xb7f563b0 -> 0xb5e67130, (0xffffffff)
+Copy: 0xb5e671b0 -> 0xb5e67090, (0x7ffffff)
+Copy: 0xb5e67130 -> 0xb5e67010, (0xffbfffff)
+
+
+* Strongly suspect copies of data:
+
+08094348  w   DO .bss   000000f8    _ZTV8OKButton
+
+    ** URGH - this is in .bss
+	+ it is *copied* wholesale from elsewhere
+	    + *before* the linker has a go & =>
+	    + we're screwed, we have to do this in glibc ... [!]
+		+ ugh ...
+	+ or are we (!?) ;-)
+	+ 'COPY' relocs ... [!?]
+
+    ** HAH!
+	+ we can install a signal handler (perhaps)
+	    + take a fault ...
+	+ then (somehow)?
+	    + process relocations [hmm]
+
+    ** Interaction between:
+	+ glibc-2.4/sysdeps/i386/dl-machine.h
+from	  + dl-reloc.c (_dl_relocate_object)
+from	    + rtld.c - hmm ...
+
+    ** Create a test that we know fails:
+	+ copying vtable foo ... into main object ...
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/copy-and-paste-oog680-m3.txt
+++ openoffice.org-2.4.1/ooo-build/doc/copy-and-paste-oog680-m3.txt
@@ -0,0 +1,216507 @@
+Found a 735 line (2995 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx
+
+using namespace x86_64;
+
+typedef struct
+{
+    /* Registers for argument passing.  */
+    long gpr[MAX_GPR_REGS];
+    __int128_t sse[MAX_SSE_REGS];
+
+    /* Stack space for arguments.  */
+    char argspace[0];
+} stackLayout;
+
+/* Register class used for passing given 64bit part of the argument.
+   These represent classes as documented by the PS ABI, with the exception
+   of SSESF, SSEDF classes, that are basically SSE class, just gcc will
+   use SF or DFmode move instead of DImode to avoid reformating penalties.
+
+   Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
+   whenever possible (upper half does contain padding).
+ */
+enum x86_64_reg_class
+{
+    X86_64_NO_CLASS,
+    X86_64_INTEGER_CLASS,
+    X86_64_INTEGERSI_CLASS,
+    X86_64_SSE_CLASS,
+    X86_64_SSESF_CLASS,
+    X86_64_SSEDF_CLASS,
+    X86_64_SSEUP_CLASS,
+    X86_64_X87_CLASS,
+    X86_64_X87UP_CLASS,
+    X86_64_MEMORY_CLASS
+};
+
+#define MAX_CLASSES 4
+
+#define ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
+
+/* x86-64 register passing implementation.  See x86-64 ABI for details.  Goal
+   of this code is to classify each 8bytes of incoming argument by the register
+   class and assign registers accordingly.  */
+
+/* Return the union class of CLASS1 and CLASS2.
+   See the x86-64 PS ABI for details.  */
+
+static enum x86_64_reg_class
+merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
+{
+    /* Rule #1: If both classes are equal, this is the resulting class.  */
+    if (class1 == class2)
+        return class1;
+
+    /* Rule #2: If one of the classes is NO_CLASS, the resulting class is
+       the other class.  */
+    if (class1 == X86_64_NO_CLASS)
+        return class2;
+    if (class2 == X86_64_NO_CLASS)
+        return class1;
+
+    /* Rule #3: If one of the classes is MEMORY, the result is MEMORY.  */
+    if (class1 == X86_64_MEMORY_CLASS || class2 == X86_64_MEMORY_CLASS)
+        return X86_64_MEMORY_CLASS;
+
+    /* Rule #4: If one of the classes is INTEGER, the result is INTEGER.  */
+    if ((class1 == X86_64_INTEGERSI_CLASS && class2 == X86_64_SSESF_CLASS)
+            || (class2 == X86_64_INTEGERSI_CLASS && class1 == X86_64_SSESF_CLASS))
+        return X86_64_INTEGERSI_CLASS;
+    if (class1 == X86_64_INTEGER_CLASS || class1 == X86_64_INTEGERSI_CLASS
+            || class2 == X86_64_INTEGER_CLASS || class2 == X86_64_INTEGERSI_CLASS)
+        return X86_64_INTEGER_CLASS;
+
+    /* Rule #5: If one of the classes is X87 or X87UP class, MEMORY is used.  */
+    if (class1 == X86_64_X87_CLASS || class1 == X86_64_X87UP_CLASS
+            || class2 == X86_64_X87_CLASS || class2 == X86_64_X87UP_CLASS)
+        return X86_64_MEMORY_CLASS;
+
+    /* Rule #6: Otherwise class SSE is used.  */
+    return X86_64_SSE_CLASS;
+}
+
+/* Classify the argument of type TYPE and mode MODE.
+   CLASSES will be filled by the register class used to pass each word
+   of the operand.  The number of words is returned.  In case the parameter
+   should be passed in memory, 0 is returned. As a special case for zero
+   sized containers, classes[0] will be NO_CLASS and 1 is returned.
+
+   See the x86-64 PS ABI for details.
+*/
+static int
+classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_class classes[], int &rByteOffset )
+{
+    /* First, align to the right place.  */
+    rByteOffset = ALIGN( rByteOffset, pTypeRef->pType->nAlignment );
+
+    switch ( pTypeRef->eTypeClass )
+    {
+        case typelib_TypeClass_VOID:
+            classes[0] = X86_64_NO_CLASS;
+            return 1;
+        case typelib_TypeClass_CHAR:
+        case typelib_TypeClass_BOOLEAN:
+        case typelib_TypeClass_BYTE:
+        case typelib_TypeClass_SHORT:
+        case typelib_TypeClass_UNSIGNED_SHORT:
+        case typelib_TypeClass_LONG:
+        case typelib_TypeClass_UNSIGNED_LONG:
+        case typelib_TypeClass_HYPER:
+        case typelib_TypeClass_UNSIGNED_HYPER:
+        case typelib_TypeClass_ENUM:
+            if ( ( rByteOffset % 8 + pTypeRef->pType->nSize ) <= 4 )
+                classes[0] = X86_64_INTEGERSI_CLASS;
+            else
+                classes[0] = X86_64_INTEGER_CLASS;
+            return 1;
+        case typelib_TypeClass_FLOAT:
+            if ( ( rByteOffset % 8 ) == 0 )
+                classes[0] = X86_64_SSESF_CLASS;
+            else
+                classes[0] = X86_64_SSE_CLASS;
+            return 1;
+        case typelib_TypeClass_DOUBLE:
+            classes[0] = X86_64_SSEDF_CLASS;
+            return 1;
+        /*case LONGDOUBLE:
+            classes[0] = X86_64_X87_CLASS;
+            classes[1] = X86_64_X87UP_CLASS;
+            return 2;*/
+        case typelib_TypeClass_STRING:
+        case typelib_TypeClass_TYPE:
+        case typelib_TypeClass_ANY:
+        case typelib_TypeClass_TYPEDEF:
+        case typelib_TypeClass_UNION:
+        case typelib_TypeClass_SEQUENCE:
+        case typelib_TypeClass_ARRAY:
+        case typelib_TypeClass_INTERFACE:
+            return 0;
+        case typelib_TypeClass_STRUCT:
+        case typelib_TypeClass_EXCEPTION:
+            {
+                typelib_TypeDescription * pTypeDescr = 0;
+                TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef );
+
+                const int UNITS_PER_WORD = 8;
+                int words = ( pTypeDescr->nSize + UNITS_PER_WORD - 1 ) / UNITS_PER_WORD;
+                enum x86_64_reg_class subclasses[MAX_CLASSES];
+
+                /* If the struct is larger than 16 bytes, pass it on the stack.  */
+                if ( pTypeDescr->nSize > 16 )
+                {
+                    TYPELIB_DANGER_RELEASE( pTypeDescr );
+                    return 0;
+                }
+
+                for ( int i = 0; i < words; i++ )
+                    classes[i] = X86_64_NO_CLASS;
+
+                const typelib_CompoundTypeDescription *pStruct = reinterpret_cast<const typelib_CompoundTypeDescription*>( pTypeDescr );
+
+                /* Merge the fields of structure.  */
+                for ( sal_Int32 nMember = 0; nMember < pStruct->nMembers; ++nMember )
+                {
+                    typelib_TypeDescriptionReference *pTypeInStruct = pStruct->ppTypeRefs[ nMember ];
+
+                    int num = classify_argument( pTypeInStruct, subclasses, rByteOffset );
+
+                    if ( num == 0 )
+                    {
+                        TYPELIB_DANGER_RELEASE( pTypeDescr );
+                        return 0;
+                    }
+
+                    for ( int i = 0; i < num; i++ )
+                    {
+                        int pos = rByteOffset / 8;
+                        classes[i + pos] = merge_classes( subclasses[i], classes[i + pos] );
+                    }
+
+                    if ( pTypeInStruct->eTypeClass != typelib_TypeClass_STRUCT )
+                        rByteOffset = pStruct->pMemberOffsets[ nMember ];
+                }
+
+                TYPELIB_DANGER_RELEASE( pTypeDescr );
+
+                /* Final merger cleanup.  */
+                for ( int i = 0; i < words; i++ )
+                {
+                    /* If one class is MEMORY, everything should be passed in
+                       memory.  */
+                    if ( classes[i] == X86_64_MEMORY_CLASS )
+                        return 0;
+
+                    /* The X86_64_SSEUP_CLASS should be always preceded by
+                       X86_64_SSE_CLASS.  */
+                    if ( classes[i] == X86_64_SSEUP_CLASS
+                            && ( i == 0 || classes[i - 1] != X86_64_SSE_CLASS ) )
+                        classes[i] = X86_64_SSE_CLASS;
+
+                    /*  X86_64_X87UP_CLASS should be preceded by X86_64_X87_CLASS.  */
+                    if ( classes[i] == X86_64_X87UP_CLASS
+                            && ( i == 0 || classes[i - 1] != X86_64_X87_CLASS ) )
+                        classes[i] = X86_64_SSE_CLASS;
+                }
+                return words;
+            }
+
+        default:
+#if OSL_DEBUG_LEVEL > 1
+            OSL_TRACE( "Unhandled case: pType->eTypeClass == %d\n", pTypeRef->eTypeClass );
+#endif
+            OSL_ASSERT(0);
+    }
+    return 0; /* Never reached.  */
+}
+
+/* Examine the argument and return set number of register required in each
+   class.  Return 0 iff parameter should be passed in memory.  */
+bool x86_64::examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE )
+{
+    enum x86_64_reg_class classes[MAX_CLASSES];
+    int offset = 0;
+    int n;
+
+    n = classify_argument( pTypeRef, classes, offset );
+
+    if ( n == 0 )
+        return false;
+
+    nUsedGPR = 0;
+    nUsedSSE = 0;
+    for ( n--; n >= 0; n-- )
+        switch ( classes[n] )
+        {
+            case X86_64_INTEGER_CLASS:
+            case X86_64_INTEGERSI_CLASS:
+                nUsedGPR++;
+                break;
+            case X86_64_SSE_CLASS:
+            case X86_64_SSESF_CLASS:
+            case X86_64_SSEDF_CLASS:
+                nUsedSSE++;
+                break;
+            case X86_64_NO_CLASS:
+            case X86_64_SSEUP_CLASS:
+                break;
+            case X86_64_X87_CLASS:
+            case X86_64_X87UP_CLASS:
+                if ( !bInReturn )
+                    return false;
+                break;
+            default:
+#if OSL_DEBUG_LEVEL > 1
+            OSL_TRACE( "Unhandled case: classes[n] == %d\n", classes[n] );
+#endif
+            OSL_ASSERT(0);
+        }
+    return true;
+}
+
+bool x86_64::return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef )
+{
+    int g, s;
+
+    return examine_argument( pTypeRef, true, g, s ) == 0;
+}
+
+void x86_64::fill_struct( typelib_TypeDescriptionReference *pTypeRef, void * const *pGPR, void * const *pSSE, void *pStruct )
+{
+    enum x86_64_reg_class classes[MAX_CLASSES];
+    int offset = 0;
+    int n;
+
+    n = classify_argument( pTypeRef, classes, offset );
+
+    sal_uInt64 *pStructAlign = reinterpret_cast<sal_uInt64 *>( pStruct );
+    for ( n--; n >= 0; n-- )
+        switch ( classes[n] )
+        {
+            case X86_64_INTEGER_CLASS:
+            case X86_64_INTEGERSI_CLASS:
+                *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pGPR++ );
+                break;
+            case X86_64_SSE_CLASS:
+            case X86_64_SSESF_CLASS:
+            case X86_64_SSEDF_CLASS:
+                *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pSSE++ );
+                break;
+        }
+}
+
+#if 0
+
+/* Functions to load floats and double to an SSE register placeholder.  */
+extern void float2sse (float, __int128_t *);
+extern void double2sse (double, __int128_t *);
+extern void floatfloat2sse (void *, __int128_t *);
+
+/* Functions to put the floats and doubles back.  */
+extern float sse2float (__int128_t *);
+extern double sse2double (__int128_t *);
+extern void sse2floatfloat(__int128_t *, void *);
+
+/*@-exportheader@*/
+void
+ffi_prep_args (stackLayout *stack, extended_cif *ecif)
+/*@=exportheader@*/
+{
+  int gprcount, ssecount, i, g, s;
+  void **p_argv;
+  void *argp = &stack->argspace;
+  ffi_type **p_arg;
+
+  /* First check if the return value should be passed in memory. If so,
+     pass the pointer as the first argument.  */
+  gprcount = ssecount = 0;
+  if (ecif->cif->rtype->type != FFI_TYPE_VOID 
+      && examine_argument (ecif->cif->rtype, 1, &g, &s) == 0)
+    (void *)stack->gpr[gprcount++] = ecif->rvalue;
+
+  for (i=ecif->cif->nargs, p_arg=ecif->cif->arg_types, p_argv = ecif->avalue;
+       i!=0; i--, p_arg++, p_argv++)
+    {
+      int in_register = 0;
+
+      switch ((*p_arg)->type)
+	{
+	case FFI_TYPE_SINT8:
+	case FFI_TYPE_SINT16:
+	case FFI_TYPE_SINT32:
+	case FFI_TYPE_SINT64:
+	case FFI_TYPE_UINT8:
+	case FFI_TYPE_UINT16:
+	case FFI_TYPE_UINT32:
+	case FFI_TYPE_UINT64:
+	case FFI_TYPE_POINTER:
+	  if (gprcount < MAX_GPR_REGS)
+	    {
+	      stack->gpr[gprcount] = 0;
+	      stack->gpr[gprcount++] = *(long long *)(*p_argv);
+	      in_register = 1;
+	    }
+	  break;
+
+	case FFI_TYPE_FLOAT:
+	  if (ssecount < MAX_SSE_REGS)
+	    {
+	      float2sse (*(float *)(*p_argv), &stack->sse[ssecount++]);
+	      in_register = 1;
+	    }
+	  break;
+
+	case FFI_TYPE_DOUBLE:
+	  if (ssecount < MAX_SSE_REGS)
+	    {
+	      double2sse (*(double *)(*p_argv), &stack->sse[ssecount++]);
+	      in_register = 1;
+	    }
+	  break;
+	}
+
+      if (in_register)
+	continue;
+
+      /* Either all places in registers where filled, or this is a
+	 type that potentially goes into a memory slot.  */
+      if (examine_argument (*p_arg, 0, &g, &s) == 0
+	  || gprcount + g > MAX_GPR_REGS || ssecount + s > MAX_SSE_REGS)
+	{
+	  /* Pass this argument in memory.  */
+	  argp = (void *)ALIGN(argp, (*p_arg)->alignment);
+	  memcpy (argp, *p_argv, (*p_arg)->size);
+	  argp += (*p_arg)->size;
+	}
+      else
+	{
+	  /* All easy cases are eliminated. Now fire the big guns.  */
+
+	  enum x86_64_reg_class classes[MAX_CLASSES];
+	  int offset = 0, j, num;
+	  void *a;
+
+	  num = classify_argument (*p_arg, classes, &offset);
+	  for (j=0, a=*p_argv; j<num; j++, a+=8)
+	    {
+	      switch (classes[j])
+		{
+		case X86_64_INTEGER_CLASS:
+		case X86_64_INTEGERSI_CLASS:
+		  stack->gpr[gprcount++] = *(long long *)a;
+		  break;
+		case X86_64_SSE_CLASS:
+		  floatfloat2sse (a, &stack->sse[ssecount++]);
+		  break;
+		case X86_64_SSESF_CLASS:
+		  float2sse (*(float *)a, &stack->sse[ssecount++]);
+		  break;
+		case X86_64_SSEDF_CLASS:
+		  double2sse (*(double *)a, &stack->sse[ssecount++]);
+		  break;
+		default:
+		  abort();
+		}
+	    }
+	}
+    }
+}
+
+/* Perform machine dependent cif processing.  */
+ffi_status
+ffi_prep_cif_machdep (ffi_cif *cif)
+{
+  int gprcount, ssecount, i, g, s;
+
+  gprcount = ssecount = 0;
+
+  /* Reset the byte count. We handle this size estimation here.  */
+  cif->bytes = 0;
+
+  /* If the return value should be passed in memory, pass the pointer
+     as the first argument. The actual memory isn't allocated here.  */
+  if (cif->rtype->type != FFI_TYPE_VOID 
+      && examine_argument (cif->rtype, 1, &g, &s) == 0)
+    gprcount = 1;
+
+  /* Go over all arguments and determine the way they should be passed.
+     If it's in a register and there is space for it, let that be so. If
+     not, add it's size to the stack byte count.  */
+  for (i=0; i<cif->nargs; i++)
+    {
+      if (examine_argument (cif->arg_types[i], 0, &g, &s) == 0
+	  || gprcount + g > MAX_GPR_REGS || ssecount + s > MAX_SSE_REGS)
+	{
+	  /* This is passed in memory. First align to the basic type.  */
+	  cif->bytes = ALIGN(cif->bytes, cif->arg_types[i]->alignment);
+
+	  /* Stack arguments are *always* at least 8 byte aligned.  */
+	  cif->bytes = ALIGN(cif->bytes, 8);
+
+	  /* Now add the size of this argument.  */
+	  cif->bytes += cif->arg_types[i]->size;
+	}
+      else
+	{
+	  gprcount += g;
+	  ssecount += s;
+	}
+    }
+
+  /* Set the flag for the closures return.  */
+    switch (cif->rtype->type)
+    {
+    case FFI_TYPE_VOID:
+    case FFI_TYPE_STRUCT:
+    case FFI_TYPE_SINT64:
+    case FFI_TYPE_FLOAT:
+    case FFI_TYPE_DOUBLE:
+    case FFI_TYPE_LONGDOUBLE:
+      cif->flags = (unsigned) cif->rtype->type;
+      break;
+
+    case FFI_TYPE_UINT64:
+      cif->flags = FFI_TYPE_SINT64;
+      break;
+
+    default:
+      cif->flags = FFI_TYPE_INT;
+      break;
+    }
+
+  return FFI_OK;
+}
+
+typedef struct
+{
+  long gpr[2];
+  __int128_t sse[2];
+  long double st0;
+} return_value;
+
+//#endif
+
+void
+ffi_fill_return_value (return_value *rv, extended_cif *ecif)
+{
+    enum x86_64_reg_class classes[MAX_CLASSES];
+    int i = 0, num;
+    long *gpr = rv->gpr;
+    __int128_t *sse = rv->sse;
+    signed char sc;
+    signed short ss;
+
+    /* This is needed because of the way x86-64 handles signed short
+       integers.  */
+    switch (ecif->cif->rtype->type)
+    {
+        case FFI_TYPE_SINT8:
+            sc = *(signed char *)gpr;
+            *(long long *)ecif->rvalue = (long long)sc;
+            return;
+        case FFI_TYPE_SINT16:
+            ss = *(signed short *)gpr;
+            *(long long *)ecif->rvalue = (long long)ss;
+            return;
+        default:
+            /* Just continue.  */
+            ;
+    }
+
+    num = classify_argument (ecif->cif->rtype, classes, &i);
+
+    if (num == 0)
+        /* Return in memory.  */
+        ecif->rvalue = (void *) rv->gpr[0];
+    else if (num == 2 && classes[0] == X86_64_X87_CLASS &&
+            classes[1] == X86_64_X87UP_CLASS)
+        /* This is a long double (this is easiest to handle this way instead
+           of an eightbyte at a time as in the loop below.  */
+        *((long double *)ecif->rvalue) = rv->st0;
+    else
+    {
+        void *a;
+
+        for (i=0, a=ecif->rvalue; i<num; i++, a+=8)
+        {
+            switch (classes[i])
+            {
+                case X86_64_INTEGER_CLASS:
+                case X86_64_INTEGERSI_CLASS:
+                    *(long long *)a = *gpr;
+                    gpr++;
+                    break;
+                case X86_64_SSE_CLASS:
+                    sse2floatfloat (sse++, a);
+                    break;
+                case X86_64_SSESF_CLASS:
+                    *(float *)a = sse2float (sse++);
+                    break;
+                case X86_64_SSEDF_CLASS:
+                    *(double *)a = sse2double (sse++);
+                    break;
+                default:
+                    abort();
+            }
+        }
+    }
+}
+
+//#if 0
+
+/*@-declundef@*/
+/*@-exportheader@*/
+extern void ffi_call_UNIX64(void (*)(stackLayout *, extended_cif *),
+			    void (*) (return_value *, extended_cif *),
+			    /*@out@*/ extended_cif *, 
+			    unsigned, /*@out@*/ unsigned *, void (*fn)());
+/*@=declundef@*/
+/*@=exportheader@*/
+
+void ffi_call(/*@dependent@*/ ffi_cif *cif, 
+	      void (*fn)(), 
+	      /*@out@*/ void *rvalue, 
+	      /*@dependent@*/ void **avalue)
+{
+  extended_cif ecif;
+  int dummy;
+
+  ecif.cif = cif;
+  ecif.avalue = avalue;
+  
+  /* If the return value is a struct and we don't have a return	*/
+  /* value address then we need to make one		        */
+
+  if ((rvalue == NULL) && 
+      (examine_argument (cif->rtype, 1, &dummy, &dummy) == 0))
+    {
+      /*@-sysunrecog@*/
+      ecif.rvalue = alloca(cif->rtype->size);
+      /*@=sysunrecog@*/
+    }
+  else
+    ecif.rvalue = rvalue;
+    
+  /* Stack must always be 16byte aligned. Make it so.  */
+  cif->bytes = ALIGN(cif->bytes, 16);
+  
+  switch (cif->abi) 
+    {
+    case FFI_SYSV:
+      /* Calling 32bit code from 64bit is not possible  */
+      FFI_ASSERT(0);
+      break;
+
+    case FFI_UNIX64:
+      /*@-usedef@*/
+      ffi_call_UNIX64 (ffi_prep_args, ffi_fill_return_value, &ecif,
+		       cif->bytes, ecif.rvalue, fn);
+      /*@=usedef@*/
+      break;
+
+    default:
+      FFI_ASSERT(0);
+      break;
+    }
+}
+
+extern void ffi_closure_UNIX64(void);
+
+ffi_status
+ffi_prep_closure (ffi_closure* closure,
+		  ffi_cif* cif,
+		  void (*fun)(ffi_cif*, void*, void**, void*),
+		  void *user_data)
+{
+  volatile unsigned short *tramp;
+
+  /* FFI_ASSERT (cif->abi == FFI_OSF);  */
+
+  tramp = (volatile unsigned short *) &closure->tramp[0];
+  tramp[0] = 0xbb49;		/* mov <code>, %r11	*/
+  tramp[5] = 0xba49;		/* mov <data>, %r10	*/
+  tramp[10] = 0xff49;		/* jmp *%r11	*/
+  tramp[11] = 0x00e3;
+  *(void * volatile *) &tramp[1] = ffi_closure_UNIX64;
+  *(void * volatile *) &tramp[6] = closure;
+
+  closure->cif = cif;
+  closure->fun = fun;
+  closure->user_data = user_data;
+
+  return FFI_OK;
+}
+
+int
+ffi_closure_UNIX64_inner(ffi_closure *closure, va_list l, void *rp)
+{
+  ffi_cif *cif;
+  void **avalue;
+  ffi_type **arg_types;
+  long i, avn, argn;
+
+  cif = closure->cif;
+  avalue = alloca(cif->nargs * sizeof(void *));
+
+  argn = 0;
+
+  i = 0;
+  avn = cif->nargs;
+  arg_types = cif->arg_types;
+  
+  /* Grab the addresses of the arguments from the stack frame.  */
+  while (i < avn)
+    {
+      switch (arg_types[i]->type)
+	{
+	case FFI_TYPE_SINT8:
+	case FFI_TYPE_UINT8:
+	case FFI_TYPE_SINT16:
+	case FFI_TYPE_UINT16:
+	case FFI_TYPE_SINT32:
+	case FFI_TYPE_UINT32:
+	case FFI_TYPE_SINT64:
+	case FFI_TYPE_UINT64:
+	case FFI_TYPE_POINTER:
+	  {
+	    if (l->gp_offset > 48-8)
+	      {
+		avalue[i] = l->overflow_arg_area;
+		l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
+	      }
+	    else
+	      {
+		avalue[i] = (char *)l->reg_save_area + l->gp_offset;
+		l->gp_offset += 8;
+	      }
+	  }
+	  break;
+
+	case FFI_TYPE_STRUCT:
+	  /* FIXME  */
+	  FFI_ASSERT(0);
+	  break;
+
+	case FFI_TYPE_DOUBLE:
+	  {
+	    if (l->fp_offset > 176-16)
+	      {
+		avalue[i] = l->overflow_arg_area;
+		l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
+	      }
+	    else
+	      {
+		avalue[i] = (char *)l->reg_save_area + l->fp_offset;
+		l->fp_offset += 16;
+	      }
+	  }
+#if DEBUG_FFI
+	  fprintf (stderr, "double arg %d = %g\n", i, *(double *)avalue[i]);
+#endif
+	  break;
+	  
+	case FFI_TYPE_FLOAT:
+	  {
+	    if (l->fp_offset > 176-16)
+	      {
+		avalue[i] = l->overflow_arg_area;
+		l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
+	      }
+	    else
+	      {
+		avalue[i] = (char *)l->reg_save_area + l->fp_offset;
+		l->fp_offset += 16;
+	      }
+	  }
+#if DEBUG_FFI
+	  fprintf (stderr, "float arg %d = %g\n", i, *(float *)avalue[i]);
+#endif
+	  break;
+	  
+	default:
+	  FFI_ASSERT(0);
+	}
+
+      argn += ALIGN(arg_types[i]->size, SIZEOF_ARG) / SIZEOF_ARG;
+      i++;
+    }
+
+  /* Invoke the closure.  */
+  (closure->fun) (cif, rp, avalue, closure->user_data);
+
+  /* FIXME: Structs not supported.  */
+  FFI_ASSERT(cif->rtype->type != FFI_TYPE_STRUCT);
+
+  /* Tell ffi_closure_UNIX64 how to perform return type promotions.  */
+
+  return cif->rtype->type;
+}
+=====================================================================
+Found a 649 line (2906 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/support/simstr.cxx
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/xml2cmp/source/support/sistr.cxx
+
+   push_back(S);
+   return *this;
+}
+
+
+// REL
+
+bool
+Simstr::operator==(const Simstr & S) const
+{ return !strcmp(sz,S.sz) ? true : false; }
+
+bool
+Simstr::operator!=(const Simstr & S) const
+{ return strcmp(sz,S.sz) ? true : false; }
+
+bool  
+Simstr::operator<(const Simstr & S) const 
+{ return (strcmp(sz,S.sz) < 0) ? true : false; }
+
+bool  
+Simstr::operator>(const Simstr & S) const 
+{ return (strcmp(sz,S.sz) > 0) ? true : false; }
+
+bool
+Simstr::operator<=(const Simstr & S) const 
+{ return (strcmp(sz,S.sz) <= 0) ? true : false; }
+
+bool  
+Simstr::operator>=(const Simstr & S) const 
+{ return (strcmp(sz,S.sz) >= 0) ? true : false; }
+
+
+
+
+// **************          LIST - Funktionen        *****************
+
+   
+// Einzelzugriff
+
+char
+Simstr::get(int  n) const     { return (n >= len || n < 0) ? 0 : sz[n]; }
+
+char 
+Simstr::get_front() const        { return sz[0]; }
+
+char 
+Simstr::get_back() const        { return  len ? sz[len-1] : 0; }
+
+Simstr 
+Simstr::get(int  startPos, int  anzahl) const
+{
+   if (startPos >= len || startPos < 0 || anzahl < 1)
+      return "";
+
+   int anz = len - startPos < anzahl ? len - startPos : anzahl;
+
+   Simstr ret(' ',anz);
+   memcpy(ret.sz, sz+startPos, anz);
+   return ret;
+}
+
+Simstr
+Simstr::get_front(int  anzahl) const
+{
+   int anz = len < anzahl ? len : anzahl;
+   if (anz < 1)
+      return "";
+
+   Simstr ret(' ',anz);
+   memcpy(ret.sz, sz, anz);
+   return ret;
+}
+
+Simstr
+Simstr::get_back(int  anzahl) const
+{
+   int anz = len < anzahl ? len : anzahl;
+   if (anz < 1)
+      return "";
+   int start = len-anz;
+
+   Simstr ret(' ',anz);
+   memcpy(ret.sz, sz+start, anz);
+   return ret;
+}
+
+Simstr 
+Simstr::get_first_token(char c) const
+{
+   int posc = pos_first(c);
+   if (posc != NO_POS)
+      return get_front(posc);
+   else
+      return sz;
+}
+
+Simstr
+Simstr::get_last_token(char c) const
+{
+   int posc = pos_last(c);
+   if (posc != NO_POS)
+      return get_back(len-posc-1);
+   else
+      return sz;
+}
+
+
+
+// Insert
+
+void
+Simstr::insert(int  pos, char c)
+{
+   if (pos < 0 || pos > len)
+      return;
+
+   char * result = new char[len+2];
+
+   memcpy(result,sz,pos);
+   result[pos] = c;
+   memcpy(result+pos+1,sz+pos,len-pos+1);
+
+   delete [] sz;
+   sz = result;
+   len++;
+}
+
+void
+Simstr::push_front(char c)
+{
+   char * result = new char[len+2];
+
+   result[0] = c;
+   memcpy(result+1,sz,len+1);
+
+   delete [] sz;
+   sz = result;
+   len++;
+}
+
+void 
+Simstr::push_back(char c)
+{
+   char * result = new char[len+2];
+
+   memcpy(result,sz,len);
+   result[len] = c;
+   result[len+1] = 0;
+
+   delete [] sz;
+   sz = result;
+   len++;
+}
+
+void 
+Simstr::insert(int  pos, const Simstr & S)
+{
+   if (pos < 0 || pos > len)
+      return;
+
+   char * result = new char[len+1+S.len];
+
+   memcpy(result,sz,pos);
+   memcpy(result+pos,S.sz,S.len);
+   memcpy(result+pos+S.len,sz+pos,len-pos+1);
+
+   delete [] sz;
+   sz = result;
+   len += S.len;
+}
+
+void
+Simstr::push_front(const Simstr & S)
+{
+   char * result = new char[len+1+S.len];
+
+   memcpy(result,S.sz,S.len);
+   memcpy(result+S.len,sz,len+1);
+
+   delete [] sz;
+   sz = result;
+   len += S.len;
+}
+
+void
+Simstr::push_back(const Simstr & S)
+{
+   char * result = new char[len+1+S.len];
+
+   memcpy(result,sz,len);
+   memcpy(result+len,S.sz,S.len+1);
+
+   delete [] sz;
+   sz = result;
+   len += S.len;
+}
+
+
+// Remove
+
+void 
+Simstr::remove(int  pos, int  anzahl)
+{
+   if (pos >= len || pos < 0 || anzahl < 1)
+      return;
+
+	int anz = len - pos < anzahl ? len - pos : anzahl;
+
+	char * result = new char[len-anz+1];
+
+	memcpy(result,sz,pos);
+   memcpy(result+pos,sz+pos+anz,len-pos-anz+1);
+
+   delete [] sz;
+   sz = result;
+   len -= anz;
+}
+
+void
+Simstr::remove_trailing_blanks()
+{
+	int newlen = len-1;
+	for ( ; newlen > 1 && sz[newlen] <= 32; --newlen ) {}
+
+	if (newlen < len-1)
+    	remove ( newlen+1, len-newlen);
+}
+
+void
+Simstr::pop_front(int  anzahl)
+{
+   if (anzahl < 1)
+      return;
+   int anz = len < anzahl ? len : anzahl;
+
+   char * result = new char[len-anz+1];
+
+   memcpy(result,sz+anz,len-anz+1);
+
+   delete [] sz;
+   sz = result;
+   len -= anz;
+}
+
+void
+Simstr::pop_back(int  anzahl)
+{
+   if (anzahl < 1)
+      return;
+
+   int anz = len < anzahl ? len : anzahl;
+
+   char * result = new char[len-anz+1];
+
+   memcpy(result,sz,len-anz);
+   result[len-anz] = 0;
+
+   delete [] sz;
+   sz = result;
+   len -= anz;
+}
+
+void
+Simstr::rem_back_from(int  removeStartPos)
+{
+   if (removeStartPos != NO_POS)
+      pop_back(len-removeStartPos);
+}
+
+void
+Simstr::remove_all(char c)
+{
+   if (!len)
+      return;
+   char * result = new char[len];
+   int i,j=0;
+   for (i = 0; i < len; i++)
+       if (sz[i] != c)
+          result[j++] = sz[i];
+
+   delete [] sz;
+   sz = new char[j+1];
+   memcpy(sz,result,j);
+   sz[j] = 0;
+   len = j;
+   delete [] result;
+}
+
+void 
+Simstr::remove_all(const Simstr & S)
+{
+   int  pos;
+   while ( (pos=pos_first(S)) != NO_POS )  
+      remove(pos,S.len);
+}
+
+void
+Simstr::strip(char c)
+{
+	int start = 0;
+   if (c == ' ')
+   {  // Sonderbehandlung: SPC entfernt auch TABs:
+   	while ( start < len
+                 ?  sz[start] == ' '
+                    || sz[start] == '\t'
+                 :  false )
+	   	start++;
+   }
+   else
+   {
+   	while (start < len && sz[start] == c)
+	   	start++;
+   }
+
+	int ende = len-1;
+   if (c == ' ')
+   {  // Sonderbehandlung: SPC entfernt auch TABs:
+   	while ( ende >= start
+                 ?  sz[ende] == ' '
+                    || sz[ende] == '\t'
+                 :  false  )
+	   	ende--;
+   }
+   else
+   {
+   	while (ende >= start && sz[ende] == c)
+	   	ende--;
+   }
+	*this = get(start,ende-start+1);
+}
+
+void
+Simstr::empty()
+{
+   if (len > 0)
+   {
+      delete [] sz;
+      sz = new char[1];
+      *sz = 0;
+      len = 0;
+   }
+}
+
+Simstr
+Simstr::take_first_token(char c)
+{
+   Simstr ret;
+   int pos = pos_first(c);
+   if (pos != NO_POS)
+      {
+         ret = get_front(pos);
+         pop_front(pos+1);
+      }
+   else
+      {
+         ret = sz;
+         delete [] sz;
+         sz = new char[1];
+         *sz = NULCH;
+         len = 0;
+      }
+
+   return ret;
+}
+
+Simstr
+Simstr::take_last_token(char c)
+{
+   Simstr ret;
+   int pos = pos_last(c);
+   if (pos != NO_POS)
+      {
+         ret = get_back(len-pos-1);
+         pop_back(len-pos);
+      }
+   else
+      {
+         ret = sz;
+         delete [] sz;
+         sz = new char[1];
+         *sz = NULCH;
+         len = 0;
+      }
+
+   return ret;
+}
+
+
+
+// Find
+
+int
+Simstr::pos_first(char c) const
+{
+   int i = 0;
+   for (i = 0; i < len ? sz[i] != c : false; i++);
+   if (i >= len)
+      return NO_POS;
+   else
+      return i;
+}
+
+int
+Simstr::pos_first_after( char           c,
+                         int            startSearchPos) const
+{
+   int i = 0;
+   if (startSearchPos >= i)
+      i = startSearchPos+1;
+   for (; i < len ? sz[i] != c : false; i++);
+   if (i >= len)
+      return NO_POS;
+   else
+      return i;
+}
+
+
+int
+Simstr::pos_last(char c) const
+{
+   int i = 0;
+   for (i = len-1; i >= 0 ? sz[i] != c : false; i--);
+   if (i < 0)
+      return NO_POS;
+   else
+      return i;
+}
+
+int
+Simstr::pos_first(const Simstr & S) const
+{
+   char * ptr = strstr(sz,S.sz);
+   if (ptr)
+      return int(ptr-sz);
+   else
+      return NO_POS;
+}
+
+int
+Simstr::pos_last(const Simstr & S) const
+{
+   Simstr vgl;
+   int i;
+   for (i = len-S.len; i >= 0 ; i--)
+      {
+         vgl = get(i,S.len);
+         if (vgl == S)
+            break;
+      }
+   if (i >= 0)
+      return i;
+   else
+      return NO_POS;
+}
+
+int
+Simstr::count(char c) const
+{
+   int ret = 0;
+   for (int i =0; i < len; i++)
+	  if (sz[i] == c)
+		 ret++;
+   return ret;
+}
+
+bool
+Simstr::is_no_text() const
+{ 
+   if (!len)
+	  return true;
+
+   int i;
+   for (i = 0; sz[i] <= 32 && i < len; i++);
+   if (i < len)
+		return false;
+	return true;
+}
+
+// Change
+
+void 
+Simstr::replace(int  pos, char c)
+{
+	if (pos < 0 || pos >= len)
+      return;
+   else
+      sz[unsigned(pos)] = c;
+}
+
+void
+Simstr::replace(int  startPos, int  anzahl, const Simstr & S)
+{
+   if (startPos >= len || startPos < 0 || anzahl < 1)
+      return;
+
+   int anz = len - startPos < anzahl ? len - startPos : anzahl;
+
+   char * result = new char[len-anz+S.len+1];
+
+   memcpy(result,sz,startPos);
+   memcpy(result+startPos, S.sz, S.len);
+   memcpy(result+startPos+S.len, sz+startPos+anz, len-startPos-anz+1);
+
+   delete [] sz;
+   sz = result;
+   len = len-anz+S.len;
+}
+
+void
+Simstr::replace_all(char oldCh, char newCh)
+{
+   for (int i=0; i < len; i++)
+      if (sz[i] == oldCh)
+         sz[i] = newCh;
+}
+
+void
+Simstr::replace_all(const Simstr & oldS, const Simstr & newS)
+{
+   Simstr vgl;
+   int i = 0;
+	while (i <= len-oldS.len)
+		{
+         vgl = get(i,oldS.len);
+         if (strcmp(vgl.sz,oldS.sz) == 0)
+            {
+               replace(i,oldS.len,newS);
+               i += newS.len;
+            }
+         else
+            i++;
+      }
+}
+
+void
+Simstr::to_lower()
+{
+	for (int i = 0; i < len; i++)
+   	sz[i] = (char) tolower(sz[i]);
+}
+
+
+
+//   Simstr addition
+Simstr
+operator+(const char * str, const Simstr & S)
+{
+   Simstr ret = S;
+   ret.push_front(str);
+   return ret;
+}
+
+Simstr
+operator+(const Simstr & S, const char * str)
+{
+   Simstr ret = S;
+   ret.push_back(str);
+   return ret;
+}
+
+Simstr
+operator+(char c, const Simstr & S)
+{
+   Simstr ret = S;
+   ret.push_front(c);
+   return ret;
+}
+
+Simstr
+operator+(const Simstr & S, char c)
+{
+   Simstr ret = S;
+   ret.push_back(c);
+   return ret;
+}
+
+
+// Simstr-Vergleiche mit char *
+bool
+operator==(const Simstr & S, const char * str)
+{
+   return strcmp(S,str) == 0;
+}
+
+bool
+operator!=(const Simstr & S, const char * str)
+{
+   return strcmp(S,str) != 0;
+}
+
+bool
+operator<(const Simstr & S, const char * str)
+{
+   return strcmp(S,str) < 0;
+}
+
+bool
+operator>(const Simstr & S, const char * str)
+{
+   return strcmp(S,str) > 0;
+}
+
+bool
+operator<=(const Simstr & S, const char * str)
+{
+   return strcmp(S,str) <= 0;
+}
+
+bool
+operator>=(const Simstr & S, const char * str)
+{
+   return strcmp(S,str) >= 0;
+}
+
+bool
+operator==(const char * str, const Simstr & S)
+{
+   return strcmp(str,S) == 0;
+}
+
+bool
+operator!=(const char * str, const Simstr & S)
+{
+   return strcmp(str,S) != 0;
+}
+
+bool
+operator<(const char * str, const Simstr & S)
+{
+   return strcmp(str,S) < 0;
+}
+
+bool
+operator>(const char * str, const Simstr & S)
+{
+   return strcmp(str,S) > 0;
+}
+
+bool
+operator<=(const char * str, const Simstr & S)
+{
+   return strcmp(str,S) <= 0;
+}
+
+bool
+operator>=(const char * str, const Simstr & S)
+{
+   return strcmp(str,S) >= 0;
+}
+=====================================================================
+Found a 687 line (2728 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 685 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+}
+
+/*************************************************************************
+ *                     SwScriptInfo::WhichFont()
+ *
+ * Converts i18n Script Type (LATIN, ASIAN, COMPLEX, WEAK) to
+ * Sw Script Types (SW_LATIN, SW_CJK, SW_CTL), used to identify the font
+ *************************************************************************/
+BYTE SwScriptInfo::WhichFont( xub_StrLen nIdx, const String* pTxt, const SwScriptInfo* pSI )
+{
+    ASSERT( pTxt || pSI,"How should I determine the script type?" );
+    USHORT nScript;
+
+    // First we try to use our SwScriptInfo
+    if ( pSI )
+        nScript = pSI->ScriptType( nIdx );
+    else
+        // Ok, we have to ask the break iterator
+        nScript = pBreakIt->GetRealScriptOfText( *pTxt, nIdx );
+
+    switch ( nScript ) {
+        case i18n::ScriptType::LATIN : return SW_LATIN;
+        case i18n::ScriptType::ASIAN : return SW_CJK;
+        case i18n::ScriptType::COMPLEX : return SW_CTL;
+    }
+
+    ASSERT( sal_False, "Somebody tells lies about the script type!" );
+    return SW_LATIN;
+}
+
+/*************************************************************************
+ *						SwScriptInfo::InitScriptInfo()
+ *
+ * searches for script changes in rTxt and stores them
+ *************************************************************************/
+
+void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode )
+{
+    InitScriptInfo( rNode, nDefaultDir == UBIDI_RTL );
+}
+
+void SwScriptInfo::InitScriptInfo( const SwTxtNode& rNode, sal_Bool bRTL )
+{
+    if( !pBreakIt->xBreak.is() )
+		return;
+
+    const String& rTxt = rNode.GetTxt();
+
+    //
+    // HIDDEN TEXT INFORMATION
+    //
+    Range aRange( 0, rTxt.Len() ? rTxt.Len() - 1 : 0 );
+    MultiSelection aHiddenMulti( aRange );
+    CalcHiddenRanges( rNode, aHiddenMulti );
+
+    aHiddenChg.Remove( 0, aHiddenChg.Count() );
+    USHORT nHiddenIdx = 0;
+    USHORT i = 0;
+    for( i = 0; i < aHiddenMulti.GetRangeCount(); ++i )
+    {
+        const Range& rRange = aHiddenMulti.GetRange( i );
+        const xub_StrLen nStart = (xub_StrLen)rRange.Min();
+        const xub_StrLen nEnd = (xub_StrLen)rRange.Max() + 1;
+
+        aHiddenChg.Insert( nStart, nHiddenIdx++ );
+        aHiddenChg.Insert( nEnd, nHiddenIdx++ );
+    }
+
+    //
+    // SCRIPT AND SCRIPT RELATED INFORMATION
+    //
+
+    xub_StrLen nChg = nInvalidityPos;
+
+    // STRING_LEN means the data structure is up to date
+	nInvalidityPos = STRING_LEN;
+
+    // this is the default direction
+    nDefaultDir = bRTL ? UBIDI_RTL : UBIDI_LTR;
+
+    // counter for script info arrays
+    USHORT nCnt = 0;
+    // counter for compression information arrays
+    USHORT nCntComp = 0;
+    // counter for kashida array
+    USHORT nCntKash = 0;
+
+    BYTE nScript;
+
+    // compression type
+    const SwCharCompressType aCompEnum = rNode.getIDocumentSettingAccess()->getCharacterCompressionType();
+
+    // justification type
+    const sal_Bool bAdjustBlock = SVX_ADJUST_BLOCK ==
+                                  rNode.GetSwAttrSet().GetAdjust().GetAdjust();
+
+    //
+    // FIND INVALID RANGES IN SCRIPT INFO ARRAYS:
+    //
+
+    if( nChg )
+	{
+        // if change position = 0 we do not use any data from the arrays
+        // because by deleting all characters of the first group at the beginning
+        // of a paragraph nScript is set to a wrong value
+        ASSERT( CountScriptChg(), "Where're my changes of script?" );
+		while( nCnt < CountScriptChg() )
+		{
+            if ( nChg > GetScriptChg( nCnt ) )
+                nCnt++;
+            else
+            {
+                nScript = GetScriptType( nCnt );
+                break;
+            }
+		}
+        if( CHARCOMPRESS_NONE != aCompEnum )
+		{
+            while( nCntComp < CountCompChg() )
+			{
+                if ( nChg > GetCompStart( nCntComp ) )
+                    nCntComp++;
+                else
+                    break;
+            }
+		}
+        if ( bAdjustBlock )
+        {
+            while( nCntKash < CountKashida() )
+            {
+                if ( nChg > GetKashida( nCntKash ) )
+                    nCntKash++;
+                else
+                    break;
+            }
+        }
+    }
+
+    //
+    // ADJUST nChg VALUE:
+    //
+
+    // by stepping back one position we know that we are inside a group
+    // declared as an nScript group
+    if ( nChg )
+        --nChg;
+
+    const xub_StrLen nGrpStart = nCnt ? GetScriptChg( nCnt - 1 ) : 0;
+
+    // we go back in our group until we reach the first character of
+    // type nScript
+    while ( nChg > nGrpStart &&
+            nScript != pBreakIt->xBreak->getScriptType( rTxt, nChg ) )
+        --nChg;
+
+    // If we are at the start of a group, we do not trust nScript,
+    // we better get nScript from the breakiterator:
+    if ( nChg == nGrpStart )
+        nScript = (BYTE)pBreakIt->xBreak->getScriptType( rTxt, nChg );
+
+    //
+    // INVALID DATA FROM THE SCRIPT INFO ARRAYS HAS TO BE DELETED:
+    //
+
+    // remove invalid entries from script information arrays
+    const USHORT nScriptRemove = aScriptChg.Count() - nCnt;
+    aScriptChg.Remove( nCnt, nScriptRemove );
+    aScriptType.Remove( nCnt, nScriptRemove );
+
+    // get the start of the last compression group
+    USHORT nLastCompression = nChg;
+	if( nCntComp )
+	{
+		--nCntComp;
+        nLastCompression = GetCompStart( nCntComp );
+        if( nChg >= nLastCompression + GetCompLen( nCntComp ) )
+		{
+            nLastCompression = nChg;
+			++nCntComp;
+		}
+    }
+
+    // remove invalid entries from compression information arrays
+    const USHORT nCompRemove = aCompChg.Count() - nCntComp;
+    aCompChg.Remove( nCntComp, nCompRemove );
+    aCompLen.Remove( nCntComp, nCompRemove );
+    aCompType.Remove( nCntComp, nCompRemove );
+
+    // get the start of the last kashida group
+    USHORT nLastKashida = nChg;
+    if( nCntKash && i18n::ScriptType::COMPLEX == nScript )
+    {
+        --nCntKash;
+        nLastKashida = GetKashida( nCntKash );
+    }
+
+    // remove invalid entries from kashida array
+    aKashida.Remove( nCntKash, aKashida.Count() - nCntKash );
+
+    //
+    // TAKE CARE OF WEAK CHARACTERS: WE MUST FIND AN APPROPRIATE
+    // SCRIPT FOR WEAK CHARACTERS AT THE BEGINNING OF A PARAGRAPH
+    //
+
+    if( WEAK == pBreakIt->xBreak->getScriptType( rTxt, nChg ) )
+	{
+        // If the beginning of the current group is weak, this means that
+        // all of the characters in this grounp are weak. We have to assign
+        // the scripts to these characters depending on the fonts which are
+        // set for these characters to display them.
+        xub_StrLen nEnd =
+                (xub_StrLen)pBreakIt->xBreak->endOfScript( rTxt, nChg, WEAK );
+
+        if( nEnd > rTxt.Len() )
+            nEnd = rTxt.Len();
+
+        nScript = (BYTE)GetI18NScriptTypeOfLanguage( (USHORT)GetAppLanguage() );
+
+        ASSERT( i18n::ScriptType::LATIN == nScript ||
+                i18n::ScriptType::ASIAN == nScript ||
+                i18n::ScriptType::COMPLEX == nScript, "Wrong default language" );
+
+        nChg = nEnd;
+
+        // Get next script type or set to weak in order to exit
+        BYTE nNextScript = ( nEnd < rTxt.Len() ) ?
+           (BYTE)pBreakIt->xBreak->getScriptType( rTxt, nEnd ) :
+           (BYTE)WEAK;
+
+        if ( nScript != nNextScript )
+        {
+            aScriptChg.Insert( nEnd, nCnt );
+            aScriptType.Insert( nScript, nCnt++ );
+            nScript = nNextScript;
+        }
+    }
+
+    //
+    // UPDATE THE SCRIPT INFO ARRAYS:
+    //
+
+    while ( nChg < rTxt.Len() || ( !aScriptChg.Count() && !rTxt.Len() ) )
+    {
+        ASSERT( i18n::ScriptType::WEAK != nScript,
+                "Inserting WEAK into SwScriptInfo structure" );
+        ASSERT( STRING_LEN != nChg, "65K? Strange length of script section" );
+
+        nChg = (xub_StrLen)pBreakIt->xBreak->endOfScript( rTxt, nChg, nScript );
+
+        if ( nChg > rTxt.Len() )
+            nChg = rTxt.Len();
+
+        aScriptChg.Insert( nChg, nCnt );
+        aScriptType.Insert( nScript, nCnt++ );
+
+        // if current script is asian, we search for compressable characters
+        // in this range
+        if ( CHARCOMPRESS_NONE != aCompEnum &&
+             i18n::ScriptType::ASIAN == nScript )
+        {
+            BYTE ePrevState = NONE;
+            BYTE eState;
+            USHORT nPrevChg = nLastCompression;
+
+            while ( nLastCompression < nChg )
+            {
+                xub_Unicode cChar = rTxt.GetChar( nLastCompression );
+
+                // examine current character
+                switch ( cChar )
+                {
+                // Left punctuation found
+                case 0x3008: case 0x300A: case 0x300C: case 0x300E:
+                case 0x3010: case 0x3014: case 0x3016: case 0x3018:
+                case 0x301A: case 0x301D:
+                    eState = SPECIAL_LEFT;
+                    break;
+                // Right punctuation found
+                case 0x3001: case 0x3002: case 0x3009: case 0x300B:
+                case 0x300D: case 0x300F: case 0x3011: case 0x3015:
+                case 0x3017: case 0x3019: case 0x301B: case 0x301E:
+                case 0x301F:
+                    eState = SPECIAL_RIGHT;
+                    break;
+                default:
+                    eState = ( 0x3040 <= cChar && 0x3100 > cChar ) ?
+                               KANA :
+                               NONE;
+                }
+
+                // insert range of compressable characters
+                if( ePrevState != eState )
+                {
+                    if ( ePrevState != NONE )
+                    {
+                        // insert start and type
+                        if ( CHARCOMPRESS_PUNCTUATION_KANA == aCompEnum ||
+                             ePrevState != KANA )
+                        {
+                            aCompChg.Insert( nPrevChg, nCntComp );
+                            BYTE nTmpType = ePrevState;
+                            aCompType.Insert( nTmpType, nCntComp );
+                            aCompLen.Insert( nLastCompression - nPrevChg, nCntComp++ );
+                        }
+                    }
+
+                    ePrevState = eState;
+                    nPrevChg = nLastCompression;
+                }
+
+                nLastCompression++;
+            }
+
+            // we still have to examine last entry
+            if ( ePrevState != NONE )
+            {
+                // insert start and type
+                if ( CHARCOMPRESS_PUNCTUATION_KANA == aCompEnum ||
+                     ePrevState != KANA )
+                {
+                    aCompChg.Insert( nPrevChg, nCntComp );
+                    BYTE nTmpType = ePrevState;
+                    aCompType.Insert( nTmpType, nCntComp );
+                    aCompLen.Insert( nLastCompression - nPrevChg, nCntComp++ );
+                }
+            }
+        }
+
+        // we search for connecting opportunities (kashida)
+        else if ( bAdjustBlock && i18n::ScriptType::COMPLEX == nScript )
+        {
+            SwScanner aScanner( rNode,
+                                ::com::sun::star::i18n::WordType::DICTIONARY_WORD,
+                                nLastKashida, nChg );
+
+            // the search has to be performed on a per word base
+            while ( aScanner.NextWord() )
+            {
+                const XubString& rWord = aScanner.GetWord();
+
+                xub_StrLen nIdx = 0;
+                xub_StrLen nKashidaPos = STRING_LEN;
+                xub_Unicode cCh;
+                xub_Unicode cPrevCh = 0;
+
+                while ( nIdx < rWord.Len() )
+                {
+                    cCh = rWord.GetChar( nIdx );
+
+                    // 1. Priority:
+                    // after user inserted kashida
+                    if ( 0x640 == cCh )
+                    {
+                        nKashidaPos = aScanner.GetBegin() + nIdx;
+                        break;
+                    }
+
+                    // 2. Priority:
+                    // after a Seen or Sad
+                    if ( nIdx + 1 < rWord.Len() &&
+                         ( 0x633 == cCh || 0x635 == cCh ) )
+                    {
+                        nKashidaPos = aScanner.GetBegin() + nIdx;
+                        break;
+                    }
+
+                    // 3. Priority:
+                    // before final form of Teh Marbuta, Hah, Dal
+                    // 4. Priority:
+                    // before final form of Alef, Lam or Kaf
+                    if ( nIdx && nIdx + 1 == rWord.Len() &&
+                         ( 0x629 == cCh || 0x62D == cCh || 0x62F == cCh ||
+                           0x627 == cCh || 0x644 == cCh || 0x643 == cCh ) )
+                    {
+                        ASSERT( 0 != cPrevCh, "No previous character" )
+
+                        // check if character is connectable to previous character,
+                        if ( lcl_ConnectToPrev( cCh, cPrevCh ) )
+                        {
+                            nKashidaPos = aScanner.GetBegin() + nIdx - 1;
+                            break;
+                        }
+                    }
+
+                    // 5. Priority:
+                    // before media Bah
+                    if ( nIdx && nIdx + 1 < rWord.Len() && 0x628 == cCh )
+                    {
+                        ASSERT( 0 != cPrevCh, "No previous character" )
+
+                        // check if next character is Reh, Yeh or Alef Maksura
+                        xub_Unicode cNextCh = rWord.GetChar( nIdx + 1 );
+
+                        if ( 0x631 == cNextCh || 0x64A == cNextCh ||
+                             0x649 == cNextCh )
+                        {
+                            // check if character is connectable to previous character,
+                            if ( lcl_ConnectToPrev( cCh, cPrevCh ) )
+                                nKashidaPos = aScanner.GetBegin() + nIdx - 1;
+                        }
+                    }
+
+                    // 6. Priority:
+                    // other connecting possibilities
+                    if ( nIdx && nIdx + 1 == rWord.Len() &&
+                         0x60C <= cCh && 0x6FE >= cCh )
+                    {
+                        ASSERT( 0 != cPrevCh, "No previous character" )
+
+                        // check if character is connectable to previous character,
+                        if ( lcl_ConnectToPrev( cCh, cPrevCh ) )
+                        {
+                            // only choose this position if we did not find
+                            // a better one:
+                            if ( STRING_LEN == nKashidaPos )
+                                nKashidaPos = aScanner.GetBegin() + nIdx - 1;
+                            break;
+                        }
+                    }
+
+                    // Do not consider Fathatan, Dammatan, Kasratan, Fatha,
+                    // Damma, Kasra, Shadda and Sukun when checking if
+                    // a character can be connected to previous character.
+                    if ( cCh < 0x64B || cCh > 0x652 )
+                        cPrevCh = cCh;
+
+                    ++nIdx;
+                } // end of current word
+
+                if ( STRING_LEN != nKashidaPos )
+                    aKashida.Insert( nKashidaPos, nCntKash++ );
+            } // end of kashida search
+        }
+
+        if ( nChg < rTxt.Len() )
+            nScript = (BYTE)pBreakIt->xBreak->getScriptType( rTxt, nChg );
+
+        nLastCompression = nChg;
+        nLastKashida = nChg;
+    };
+
+#ifndef PRODUCT
+    // check kashida data
+    long nTmpKashidaPos = -1;
+    sal_Bool bWrongKash = sal_False;
+    for (i = 0; i < aKashida.Count(); ++i )
+    {
+        long nCurrKashidaPos = GetKashida( i );
+        if ( nCurrKashidaPos <= nTmpKashidaPos )
+        {
+            bWrongKash = sal_True;
+            break;
+        }
+        nTmpKashidaPos = nCurrKashidaPos;
+    }
+    ASSERT( ! bWrongKash, "Kashida array contains wrong data" )
+#endif
+
+    // remove invalid entries from direction information arrays
+    const USHORT nDirRemove = aDirChg.Count();
+    aDirChg.Remove( 0, nDirRemove );
+    aDirType.Remove( 0, nDirRemove );
+
+    // Perform Unicode Bidi Algorithm for text direction information
+    bool bPerformUBA = UBIDI_LTR != nDefaultDir;
+    nCnt = 0;
+    while( !bPerformUBA && nCnt < CountScriptChg() )
+    {
+        if ( i18n::ScriptType::COMPLEX == GetScriptType( nCnt++ ) )
+            bPerformUBA = true;
+    }
+
+    // do not call the unicode bidi algorithm if not required
+    if ( bPerformUBA )
+    {
+        UpdateBidiInfo( rTxt );
+
+        // #i16354# Change script type for RTL text to CTL.
+        for ( USHORT nDirIdx = 0; nDirIdx < aDirChg.Count(); ++nDirIdx )
+        {
+            if ( GetDirType( nDirIdx ) == UBIDI_RTL )
+            {
+                // nStart ist start of RTL run:
+                const xub_StrLen nStart = nDirIdx > 0 ? GetDirChg( nDirIdx - 1 ) : 0;
+                // nEnd is end of RTL run:
+                const xub_StrLen nEnd = GetDirChg( nDirIdx );
+                // nScriptIdx points into the ScriptArrays:
+                USHORT nScriptIdx = 0;
+
+                // Skip entries in ScriptArray which are not inside the RTL run:
+                // Make nScriptIdx become the index of the script group with
+                // 1. nStartPosOfGroup <= nStart and
+                // 2. nEndPosOfGroup > nStart
+                while ( GetScriptChg( nScriptIdx ) <= nStart )
+                    ++nScriptIdx;
+
+                xub_StrLen nEndPosOfGroup = GetScriptChg( nScriptIdx );
+                xub_StrLen nStartPosOfGroup = nScriptIdx ? GetScriptChg( nScriptIdx - 1 ) : 0;
+                BYTE nScriptTypeOfGroup = GetScriptType( nScriptIdx );
+
+                ASSERT( nStartPosOfGroup <= nStart && nEndPosOfGroup > nStart,
+                        "Script override with CTL font trouble" )
+
+                // Check if we have to insert a new script change at
+                // position nStart. If nStartPosOfGroup < nStart,
+                // we have to insert a new script change:
+                if ( nStart > 0 && nStartPosOfGroup < nStart )
+                {
+                    aScriptChg.Insert( nStart, nScriptIdx );
+                    aScriptType.Insert( nScriptTypeOfGroup, nScriptIdx );
+                    ++nScriptIdx;
+                }
+
+                // Remove entries in ScriptArray which end inside the RTL run:
+                while ( nScriptIdx < aScriptChg.Count() && GetScriptChg( nScriptIdx ) <= nEnd )
+                {
+                    aScriptChg.Remove( nScriptIdx, 1 );
+                    aScriptType.Remove( nScriptIdx, 1 );
+                }
+
+                // Insert a new entry in ScriptArray for the end of the RTL run:
+                aScriptChg.Insert( nEnd, nScriptIdx );
+                aScriptType.Insert( i18n::ScriptType::COMPLEX, nScriptIdx );
+
+#if OSL_DEBUG_LEVEL > 1
+                BYTE nScriptType;
+                BYTE nLastScriptType = i18n::ScriptType::WEAK;
+                xub_StrLen nScriptChg;
+                xub_StrLen nLastScriptChg = 0;
+
+                for ( int i = 0; i < aScriptChg.Count(); ++i )
+                {
+                    nScriptChg = GetScriptChg( i );
+                    nScriptType = GetScriptType( i );
+                    ASSERT( nLastScriptType != nScriptType &&
+                            nLastScriptChg < nScriptChg,
+                            "Heavy InitScriptType() confusion" )
+                }
+#endif
+            }
+        }
+    }
+}
+
+void SwScriptInfo::UpdateBidiInfo( const String& rTxt )
+{
+    // remove invalid entries from direction information arrays
+    const USHORT nDirRemove = aDirChg.Count();
+    aDirChg.Remove( 0, nDirRemove );
+    aDirType.Remove( 0, nDirRemove );
+
+    //
+    // Bidi functions from icu 2.0
+    //
+    UErrorCode nError = U_ZERO_ERROR;
+    UBiDi* pBidi = ubidi_openSized( rTxt.Len(), 0, &nError );
+    nError = U_ZERO_ERROR;
+
+    ubidi_setPara( pBidi, rTxt.GetBuffer(), rTxt.Len(),
+                   nDefaultDir, NULL, &nError );
+    nError = U_ZERO_ERROR;
+    long nCount = ubidi_countRuns( pBidi, &nError );
+    int32_t nStart = 0;
+    int32_t nEnd;
+    UBiDiLevel nCurrDir;
+    // counter for direction information arrays
+    USHORT nCntDir = 0;
+
+    for ( USHORT nIdx = 0; nIdx < nCount; ++nIdx )
+    {
+        ubidi_getLogicalRun( pBidi, nStart, &nEnd, &nCurrDir );
+        aDirChg.Insert( (USHORT)nEnd, nCntDir );
+        aDirType.Insert( (BYTE)nCurrDir, nCntDir++ );
+        nStart = nEnd;
+    }
+
+    ubidi_close( pBidi );
+}
+
+
+/*************************************************************************
+ *						  SwScriptInfo::NextScriptChg(..)
+ * returns the position of the next character which belongs to another script
+ * than the character of the actual (input) position.
+ * If there's no script change until the end of the paragraph, it will return
+ * STRING_LEN.
+ * Scripts are Asian (Chinese, Japanese, Korean),
+ * 			   Latin ( English etc.)
+ *         and Complex ( Hebrew, Arabian )
+ *************************************************************************/
+
+xub_StrLen SwScriptInfo::NextScriptChg( const xub_StrLen nPos )  const
+{
+    USHORT nEnd = CountScriptChg();
+    for( USHORT nX = 0; nX < nEnd; ++nX )
+    {
+		if( nPos < GetScriptChg( nX ) )
+			return GetScriptChg( nX );
+    }
+
+	return STRING_LEN;
+}
+
+/*************************************************************************
+ *						  SwScriptInfo::ScriptType(..)
+ * returns the script of the character at the input position
+ *************************************************************************/
+
+BYTE SwScriptInfo::ScriptType( const xub_StrLen nPos ) const
+{
+    USHORT nEnd = CountScriptChg();
+    for( USHORT nX = 0; nX < nEnd; ++nX )
+    {
+        if( nPos < GetScriptChg( nX ) )
+			return GetScriptType( nX );
+    }
+
+    // the default is the application language script
+    return (BYTE)GetI18NScriptTypeOfLanguage( (USHORT)GetAppLanguage() );
+}
+
+xub_StrLen SwScriptInfo::NextDirChg( const xub_StrLen nPos,
+                                     const BYTE* pLevel )  const
+{
+    BYTE nCurrDir = pLevel ? *pLevel : 62;
+    USHORT nEnd = CountDirChg();
+    for( USHORT nX = 0; nX < nEnd; ++nX )
+    {
+        if( nPos < GetDirChg( nX ) &&
+            ( nX + 1 == nEnd || GetDirType( nX + 1 ) <= nCurrDir ) )
+            return GetDirChg( nX );
+    }
+
+	return STRING_LEN;
+}
+
+BYTE SwScriptInfo::DirType( const xub_StrLen nPos ) const
+{
+    USHORT nEnd = CountDirChg();
+    for( USHORT nX = 0; nX < nEnd; ++nX )
+    {
+        if( nPos < GetDirChg( nX ) )
+            return GetDirType( nX );
+    }
+
+    return 0;
+}
+
+/*************************************************************************
+ *                        SwScriptInfo::MaskHiddenRanges(..)
+ * Takes a string and replaced the hidden ranges with cChar.
+ **************************************************************************/
+
+USHORT SwScriptInfo::MaskHiddenRanges( const SwTxtNode& rNode, XubString& rText,
+                                       const xub_StrLen nStt, const xub_StrLen nEnd,
+                                       const xub_Unicode cChar )
+{
+    ASSERT( rNode.GetTxt().Len() == rText.Len(), "MaskHiddenRanges, string len mismatch" )
+
+    PositionList aList;
+    xub_StrLen nHiddenStart;
+    xub_StrLen nHiddenEnd;
+    USHORT nNumOfHiddenChars = 0;
+    GetBoundsOfHiddenRange( rNode, 0, nHiddenStart, nHiddenEnd, &aList );
+    PositionList::const_reverse_iterator rFirst( aList.end() );
+    PositionList::const_reverse_iterator rLast( aList.begin() );
+    while ( rFirst != rLast )
+    {
+        nHiddenEnd = *(rFirst++);
+        nHiddenStart = *(rFirst++);
+
+        if ( nHiddenEnd < nStt || nHiddenStart > nEnd )
+            continue;
+
+        while ( nHiddenStart < nHiddenEnd && nHiddenStart < nEnd )
+        {
+            if ( nHiddenStart >= nStt && nHiddenStart < nEnd )
+            {
+                rText.SetChar( nHiddenStart, cChar );
+                ++nNumOfHiddenChars;
+            }
+            ++nHiddenStart;
+        }
+    }
+
+    return nNumOfHiddenChars;
+}
+=====================================================================
+Found a 225 line (2551 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/hash.cxx
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/hash.cxx
+
+typedef unsigned int sal_uInt32;
+#endif
+
+#include <string.h>
+
+/*
+ *	build a hash for a character buffer using the NIST algorithm
+ */
+
+class NIST_Hash
+{
+
+	// helper functions
+	sal_uInt32 f1( sal_uInt32 x, sal_uInt32 y, sal_uInt32 z )
+	{
+		return z ^ ( x & ( y ^ z ) );
+	}
+	
+	sal_uInt32 f2( sal_uInt32 x, sal_uInt32 y, sal_uInt32 z )
+	{
+		return x ^ y ^ z;
+	}
+	
+	sal_uInt32 f3( sal_uInt32 x, sal_uInt32 y, sal_uInt32 z )
+	{
+		return ( x & y ) + ( z & ( x ^ y ) );
+	}
+
+	sal_uInt32 rotl( sal_uInt32 nValue, sal_uInt32 nBits )
+	{
+		return ( nValue << nBits ) | ( nValue >> (32-nBits) );
+	}
+
+	sal_uInt32 expand_nostore( sal_uInt32 index )
+	{
+		return data[index&15] ^ data[(index-14)&15] ^ data[(index-8)&15] ^ data[(index-3)&15];
+	}
+
+	sal_uInt32 expand_store( sal_uInt32 index )
+	{
+		return data[index&15] ^= data[(index-14)&15] ^ data[(index-8)&15] ^ data[(index-3)&15];
+	}
+
+	void subRound( sal_uInt32 a, sal_uInt32& b, sal_uInt32 c, sal_uInt32 d, sal_uInt32& e, sal_uInt32 constant, sal_uInt32 datum, sal_uInt32 nFunction )
+	{
+		e += rotl(a,5);
+		switch( nFunction )
+		{
+			case 1: e += f1( b, c, d );break;
+			case 2:
+			case 4: e += f2( b, c, d );break;
+			case 3: e += f3( b, c, d );break;
+		}
+		e += constant + datum;
+		b = rotl( b, 30 );
+	}
+
+	void transform();
+	void final();
+
+	// data members
+	sal_uInt32 data[16];
+	sal_uInt32 hashdata[5];
+public:
+	NIST_Hash( const char* pString, sal_uInt32 nLen );
+	
+	sal_uInt32 *getHash() { return hashdata; }
+};
+
+void NIST_Hash::transform()
+{
+	// constants
+	const sal_uInt32 K2		= 0x5A827999;
+	const sal_uInt32 K3		= 0x6ED9EBA1;
+	const sal_uInt32 K5		= 0x8F1BBCDC;
+	const sal_uInt32 K10	= 0xCA62C1D6;
+
+	sal_uInt32 a, b, c, d, e;
+	a = hashdata[0];
+	b = hashdata[1];
+	c = hashdata[2];
+	d = hashdata[3];
+	e = hashdata[4];
+
+	subRound( a, b, c, d, e, K2, data[ 0], 1 );
+	subRound( e, a, b, c, d, K2, data[ 1], 1 );
+	subRound( d, e, a, b, c, K2, data[ 2], 1 );
+	subRound( c, d, e, a, b, K2, data[ 3], 1 );
+	subRound( b, c, d, e, a, K2, data[ 4], 1 );
+	subRound( a, b, c, d, e, K2, data[ 5], 1 );
+	subRound( e, a, b, c, d, K2, data[ 6], 1 );
+	subRound( d, e, a, b, c, K2, data[ 7], 1 );
+	subRound( c, d, e, a, b, K2, data[ 8], 1 );
+	subRound( b, c, d, e, a, K2, data[ 9], 1 );
+	subRound( a, b, c, d, e, K2, data[10], 1 );
+	subRound( e, a, b, c, d, K2, data[11], 1 );
+	subRound( d, e, a, b, c, K2, data[12], 1 );
+	subRound( c, d, e, a, b, K2, data[13], 1 );
+	subRound( b, c, d, e, a, K2, data[14], 1 );
+	subRound( a, b, c, d, e, K2, data[15], 1 );
+	subRound( e, a, b, c, d, K2, expand_store( 16 ), 1 );
+	subRound( d, e, a, b, c, K2, expand_store( 17 ), 1 );
+	subRound( c, d, e, a, b, K2, expand_store( 18 ), 1 );
+	subRound( b, c, d, e, a, K2, expand_store( 19 ), 1 );
+
+	subRound( a, b, c, d, e, K3, expand_store( 20 ), 2 );
+	subRound( e, a, b, c, d, K3, expand_store( 21 ), 2 );
+	subRound( d, e, a, b, c, K3, expand_store( 22 ), 2 );
+	subRound( c, d, e, a, b, K3, expand_store( 23 ), 2 );
+	subRound( b, c, d, e, a, K3, expand_store( 24 ), 2 );
+	subRound( a, b, c, d, e, K3, expand_store( 25 ), 2 );
+	subRound( e, a, b, c, d, K3, expand_store( 26 ), 2 );
+	subRound( d, e, a, b, c, K3, expand_store( 27 ), 2 );
+	subRound( c, d, e, a, b, K3, expand_store( 28 ), 2 );
+	subRound( b, c, d, e, a, K3, expand_store( 29 ), 2 );
+	subRound( a, b, c, d, e, K3, expand_store( 30 ), 2 );
+	subRound( e, a, b, c, d, K3, expand_store( 31 ), 2 );
+	subRound( d, e, a, b, c, K3, expand_store( 32 ), 2 );
+	subRound( c, d, e, a, b, K3, expand_store( 33 ), 2 );
+	subRound( b, c, d, e, a, K3, expand_store( 34 ), 2 );
+	subRound( a, b, c, d, e, K3, expand_store( 35 ), 2 );
+	subRound( e, a, b, c, d, K3, expand_store( 36 ), 2 );
+	subRound( d, e, a, b, c, K3, expand_store( 37 ), 2 );
+	subRound( c, d, e, a, b, K3, expand_store( 38 ), 2 );
+	subRound( b, c, d, e, a, K3, expand_store( 39 ), 2 );
+
+	subRound( a, b, c, d, e, K5, expand_store( 40 ), 3 );
+	subRound( e, a, b, c, d, K5, expand_store( 41 ), 3 );
+	subRound( d, e, a, b, c, K5, expand_store( 42 ), 3 );
+	subRound( c, d, e, a, b, K5, expand_store( 43 ), 3 );
+	subRound( b, c, d, e, a, K5, expand_store( 44 ), 3 );
+	subRound( a, b, c, d, e, K5, expand_store( 45 ), 3 );
+	subRound( e, a, b, c, d, K5, expand_store( 46 ), 3 );
+	subRound( d, e, a, b, c, K5, expand_store( 47 ), 3 );
+	subRound( c, d, e, a, b, K5, expand_store( 48 ), 3 );
+	subRound( b, c, d, e, a, K5, expand_store( 49 ), 3 );
+	subRound( a, b, c, d, e, K5, expand_store( 50 ), 3 );
+	subRound( e, a, b, c, d, K5, expand_store( 51 ), 3 );
+	subRound( d, e, a, b, c, K5, expand_store( 52 ), 3 );
+	subRound( c, d, e, a, b, K5, expand_store( 53 ), 3 );
+	subRound( b, c, d, e, a, K5, expand_store( 54 ), 3 );
+	subRound( a, b, c, d, e, K5, expand_store( 55 ), 3 );
+	subRound( e, a, b, c, d, K5, expand_store( 56 ), 3 );
+	subRound( d, e, a, b, c, K5, expand_store( 57 ), 3 );
+	subRound( c, d, e, a, b, K5, expand_store( 58 ), 3 );
+	subRound( b, c, d, e, a, K5, expand_store( 59 ), 3 );
+
+	subRound( a, b, c, d, e, K10, expand_store( 60 ), 4 );
+	subRound( e, a, b, c, d, K10, expand_store( 61 ), 4 );
+	subRound( d, e, a, b, c, K10, expand_store( 62 ), 4 );
+	subRound( c, d, e, a, b, K10, expand_store( 63 ), 4 );
+	subRound( b, c, d, e, a, K10, expand_store( 64 ), 4 );
+	subRound( a, b, c, d, e, K10, expand_store( 65 ), 4 );
+	subRound( e, a, b, c, d, K10, expand_store( 66 ), 4 );
+	subRound( d, e, a, b, c, K10, expand_store( 67 ), 4 );
+	subRound( c, d, e, a, b, K10, expand_store( 68 ), 4 );
+	subRound( b, c, d, e, a, K10, expand_store( 69 ), 4 );
+	subRound( a, b, c, d, e, K10, expand_store( 70 ), 4 );
+	subRound( e, a, b, c, d, K10, expand_store( 71 ), 4 );
+	subRound( d, e, a, b, c, K10, expand_store( 72 ), 4 );
+	subRound( c, d, e, a, b, K10, expand_store( 73 ), 4 );
+	subRound( b, c, d, e, a, K10, expand_store( 74 ), 4 );
+	subRound( a, b, c, d, e, K10, expand_store( 75 ), 4 );
+	subRound( e, a, b, c, d, K10, expand_store( 76 ), 4 );
+	subRound( d, e, a, b, c, K10, expand_nostore( 77 ), 4 );
+	subRound( c, d, e, a, b, K10, expand_nostore( 78 ), 4 );
+	subRound( b, c, d, e, a, K10, expand_nostore( 79 ), 4 );
+
+	hashdata[0] += a;
+	hashdata[1] += b;
+	hashdata[2] += c;
+	hashdata[3] += d;
+	hashdata[4] += e;
+}
+
+#define BLOCKSIZE sizeof( data )
+
+NIST_Hash::NIST_Hash( const char* pString, sal_uInt32 nLen ) 
+{
+	hashdata[0] = 0x67452301;
+	hashdata[1] = 0xefcdab89;
+	hashdata[2] = 0x98badcfe;
+	hashdata[3] = 0x10325476;
+	hashdata[4] = 0xc3d2e1f0;
+
+	sal_uInt32 nBytes = nLen;
+
+	while( nLen >= sizeof( data ) )
+	{
+		memcpy( data, pString, sizeof( data ) );
+		pString += sizeof( data );
+		nLen -= sizeof( data );
+		transform();
+	}
+	memcpy( data, pString, nLen );
+	((char*)data)[nLen++] = 0x80;
+	if( nLen > sizeof( data ) - 8 )
+	{
+		memset( ((char*)data)+nLen, 0, sizeof( data ) - nLen );
+		transform();
+		memset( data, 0, sizeof( data ) - 8 );
+	}
+	else
+		memset( ((char*)data)+nLen, 0, sizeof( data ) - 8 - nLen );
+	data[14] = 0;
+	data[15] = nBytes << 3;
+	transform();
+}
+
+#ifdef TEST
+#include <stdio.h>
+int main( int argc, const char** argv )
+{
+	const char* pHash = argc < 2 ? argv[0] : argv[1];
+
+	NIST_Hash aHash( pHash, strlen( pHash ) );
+	sal_uInt32* pBits = aHash.getHash();
+
+	printf( "text : %s\n"
+			"bits : 0x%.8x 0x%.8x 0x%.8x 0x%.8x 0x%.8x\n",
+			pHash,
+			pBits[0], pBits[1], pBits[2],pBits[3],pBits[4]
+			);
+	return 0;
+}
+=====================================================================
+Found a 511 line (2192 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+
+//==================================================================================================
+static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
+                              void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
+                              sal_uInt64 *pStack, sal_uInt32 nStack,
+                              sal_uInt64 *pGPR, sal_uInt32 nGPR,
+                              double *pFPR, sal_uInt32 nFPR) __attribute__((noinline));
+
+static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
+                              void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
+                              sal_uInt64 *pStack, sal_uInt32 nStack,
+                              sal_uInt64 *pGPR, sal_uInt32 nGPR,
+                              double *pFPR, sal_uInt32 nFPR)
+{
+#if OSL_DEBUG_LEVEL > 1
+    // Let's figure out what is really going on here
+    {
+        fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
+        for ( int i = 0; i < nGPR; ++i )
+            fprintf( stderr, "0x%lx, ", pGPR[i] );
+        fprintf( stderr, "\nFPR's (%d): ", nFPR );
+        for ( int i = 0; i < nFPR; ++i )
+            fprintf( stderr, "%f, ", pFPR[i] );
+        fprintf( stderr, "\nStack (%d): ", nStack );
+        for ( int i = 0; i < nStack; ++i )
+            fprintf( stderr, "0x%lx, ", pStack[i] );
+        fprintf( stderr, "\n" );
+    }
+#endif
+
+    // The call instruction within the asm section of callVirtualMethod may throw
+    // exceptions.  So that the compiler handles this correctly, it is important
+    // that (a) callVirtualMethod might call dummy_can_throw_anything (although this
+    // never happens at runtime), which in turn can throw exceptions, and (b)
+    // callVirtualMethod is not inlined at its call site (so that any exceptions are
+    // caught which are thrown from the instruction calling callVirtualMethod):
+    if ( !pThis )
+        CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything( "xxx" ); // address something
+
+    // Should not happen, but...
+    if ( nFPR > x86_64::MAX_SSE_REGS )
+        nFPR = x86_64::MAX_SSE_REGS;
+    if ( nGPR > x86_64::MAX_GPR_REGS )
+        nGPR = x86_64::MAX_GPR_REGS;
+
+    // Get pointer to method
+    sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
+    pMethod += 8 * nVtableIndex;
+    pMethod = *((sal_uInt64 *)pMethod);
+
+    // Load parameters to stack, if necessary
+    if ( nStack )
+    {
+        // 16-bytes aligned
+        sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 16;
+        sal_uInt64 *pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
+        memcpy( pCallStack, pStack, nStackBytes );
+    }
+
+    // Return values
+    sal_uInt64 rax;
+    sal_uInt64 rdx;
+    double xmm0;
+
+    asm volatile (
+        
+        // Fill the xmm registers
+        "movq %2, %%rax\n\t"
+
+        "movsd   (%%rax), %%xmm0\n\t"
+        "movsd  8(%%rax), %%xmm1\n\t"
+        "movsd 16(%%rax), %%xmm2\n\t"
+        "movsd 24(%%rax), %%xmm3\n\t"
+        "movsd 32(%%rax), %%xmm4\n\t"
+        "movsd 40(%%rax), %%xmm5\n\t"
+        "movsd 48(%%rax), %%xmm6\n\t"
+        "movsd 56(%%rax), %%xmm7\n\t"
+
+        // Fill the general purpose registers
+        "movq %1, %%rax\n\t"
+
+        "movq    (%%rax), %%rdi\n\t"
+        "movq   8(%%rax), %%rsi\n\t"
+        "movq  16(%%rax), %%rdx\n\t"
+        "movq  24(%%rax), %%rcx\n\t"
+        "movq  32(%%rax), %%r8\n\t"
+        "movq  40(%%rax), %%r9\n\t"
+
+        // Perform the call
+        "movq %0, %%r11\n\t"
+        "movq %3, %%rax\n\t"
+        "call *%%r11\n\t"
+
+        // Fill the return values
+        "movq   %%rax, %4\n\t"
+        "movq   %%rdx, %5\n\t"
+        "movsd %%xmm0, %6\n\t"
+        :
+        : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR ),
+          "m" ( rax ), "m" ( rdx ), "m" ( xmm0 )
+        : "rax", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r11"
+    );
+
+    switch (pReturnTypeDescr->eTypeClass)
+    {
+    case typelib_TypeClass_HYPER:
+    case typelib_TypeClass_UNSIGNED_HYPER:
+        *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = rax;
+        break;
+    case typelib_TypeClass_LONG:
+    case typelib_TypeClass_UNSIGNED_LONG:
+    case typelib_TypeClass_ENUM:
+        *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &rax );
+        break;
+    case typelib_TypeClass_CHAR:
+    case typelib_TypeClass_SHORT:
+    case typelib_TypeClass_UNSIGNED_SHORT:
+        *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &rax );
+        break;
+    case typelib_TypeClass_BOOLEAN:
+    case typelib_TypeClass_BYTE:
+        *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &rax );
+        break;
+    case typelib_TypeClass_FLOAT:
+    case typelib_TypeClass_DOUBLE:
+        *reinterpret_cast<double *>( pRegisterReturn ) = xmm0;
+        break;
+    default:
+        {
+            sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
+            if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0)
+            {
+                if (nRetSize > 8)
+                    static_cast<sal_uInt64 *>(pRegisterReturn)[1] = rdx;
+                static_cast<sal_uInt64 *>(pRegisterReturn)[0] = rax;
+            }
+            break;
+        }
+    }
+}
+
+//================================================================================================== 
+
+// Macros for easier insertion of values to registers or stack
+// pSV - pointer to the source
+// nr - order of the value [will be increased if stored to register]
+// pFPR, pGPR - pointer to the registers
+// pDS - pointer to the stack [will be increased if stored here]
+
+// The value in %xmm register is already prepared to be retrieved as a float,
+// thus we treat float and double the same
+#define INSERT_FLOAT_DOUBLE( pSV, nr, pFPR, pDS ) \
+	if ( nr < x86_64::MAX_SSE_REGS ) \
+		pFPR[nr++] = *reinterpret_cast<double *>( pSV ); \
+	else \
+		*pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
+
+#define INSERT_INT64( pSV, nr, pGPR, pDS ) \
+	if ( nr < x86_64::MAX_GPR_REGS ) \
+		pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
+	else \
+		*pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
+
+#define INSERT_INT32( pSV, nr, pGPR, pDS ) \
+	if ( nr < x86_64::MAX_GPR_REGS ) \
+		pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
+	else \
+		*pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
+
+#define INSERT_INT16( pSV, nr, pGPR, pDS ) \
+	if ( nr < x86_64::MAX_GPR_REGS ) \
+		pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
+	else \
+		*pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
+
+#define INSERT_INT8( pSV, nr, pGPR, pDS ) \
+	if ( nr < x86_64::MAX_GPR_REGS ) \
+		pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
+	else \
+		*pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
+
+//================================================================================================== 
+
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+	bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+	// Maxium space for [complex ret ptr], values | ptr ...
+	// (but will be used less - some of the values will be in pGPR and pFPR)
+  	sal_uInt64 *pStack = (sal_uInt64 *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
+  	sal_uInt64 *pStackStart = pStack;
+
+	sal_uInt64 pGPR[x86_64::MAX_GPR_REGS];
+	sal_uInt32 nGPR = 0;
+
+	double pFPR[x86_64::MAX_SSE_REGS];
+	sal_uInt32 nFPR = 0;
+
+	// Return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion (see below)
+
+	bool bSimpleReturn = true;	
+	if ( pReturnTypeDescr )
+	{
+		if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
+			bSimpleReturn = false;
+
+		if ( bSimpleReturn )
+			pCppReturn = pUnoReturn; // direct way for simple types
+		else
+		{
+			// complex return via ptr
+			pCppReturn = bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )?
+						 __builtin_alloca( pReturnTypeDescr->nSize ) : pUnoReturn;
+			INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack );
+		}
+	}
+
+	// Push "this" pointer
+	void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
+	INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+	// Args
+	void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// Indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// Type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+				INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack );
+				break;
+			case typelib_TypeClass_LONG:
+			case typelib_TypeClass_UNSIGNED_LONG:
+			case typelib_TypeClass_ENUM:
+				INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack );
+				break;
+			case typelib_TypeClass_SHORT:
+			case typelib_TypeClass_CHAR:
+			case typelib_TypeClass_UNSIGNED_SHORT:
+				INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack );
+				break;
+			case typelib_TypeClass_BOOLEAN:
+			case typelib_TypeClass_BYTE:
+				INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack );
+				break;
+			case typelib_TypeClass_FLOAT:
+			case typelib_TypeClass_DOUBLE:
+				INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack );
+				break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+			INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack );
+		}
+	}
+	
+	try
+	{
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr, bSimpleReturn,
+			pStackStart, ( pStack - pStackStart ),
+			pGPR, nGPR,
+			pFPR, nFPR );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+//==================================================================================================
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+		= static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		// determine vtable call index
+		sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
+		OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
+		
+		VtableSlot aVtableSlot(
+				getVtableSlot(
+					reinterpret_cast<
+					typelib_InterfaceAttributeTypeDescription const * >(
+						pMemberDescr)));
+		
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+			aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot, // get, then set method
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// determine vtable call index
+		sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
+		OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
+		
+		VtableSlot aVtableSlot(
+				getVtableSlot(
+					reinterpret_cast<
+					typelib_InterfaceMethodTypeDescription const * >(
+						pMemberDescr)));
+		
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->getBridge()->getUnoEnv()->getRegisteredInterface)(
+                    pThis->getBridge()->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 484 line (2172 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
+
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+
+//==================================================================================================
+
+// Perform the UNO call
+//
+// We must convert the paramaters stored in gpreg, fpreg and ovrflw to UNO
+// arguments and call pThis->getUnoI()->pDispatcher.
+//
+// gpreg:  [ret *], this, [gpr params]
+// fpreg:  [fpr params]
+// ovrflw: [gpr or fpr params (properly aligned)]
+//
+// [ret *] is present when we are returning a structure bigger than 16 bytes
+// Simple types are returned in rax, rdx (int), or xmm0, xmm1 (fp).
+// Similarly structures <= 16 bytes are in rax, rdx, xmm0, xmm1 as necessary.
+static typelib_TypeClass cpp2uno_call(
+	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** gpreg, void ** fpreg, void ** ovrflw,
+	sal_uInt64 * pRegisterReturn /* space for register return */ )
+{
+	int nr_gpr = 0; //number of gpr registers used 
+	int nr_fpr = 0; //number of fpr regsiters used
+       
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if ( pReturnTypeDescr )
+	{
+		if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
+		{
+			pCppReturn = *gpreg++;
+			nr_gpr++;
+			
+			pUnoReturn = ( bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+						   ? alloca( pReturnTypeDescr->nSize )
+						   : pCppReturn ); // direct way
+		}
+		else
+			pUnoReturn = pRegisterReturn; // direct way for simple types
+	}
+
+	// pop this
+	gpreg++; 
+	nr_gpr++;
+
+	// stack space
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		int nUsedGPR = 0;
+		int nUsedSSE = 0;
+		bool bFitsRegisters = x86_64::examine_argument( rParam.pTypeRef, false, nUsedGPR, nUsedSSE );
+		if ( !rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ) ) // value
+		{
+			// Simple types must fit exactly one register on x86_64
+			OSL_ASSERT( bFitsRegisters && ( ( nUsedSSE == 1 && nUsedGPR == 0 ) || ( nUsedSSE == 0 && nUsedGPR == 1 ) ) );
+
+			if ( nUsedSSE == 1 )
+			{
+				if ( nr_fpr < x86_64::MAX_SSE_REGS )
+				{
+					pCppArgs[nPos] = pUnoArgs[nPos] = fpreg++;
+					nr_fpr++;
+				}
+				else
+					pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw++;
+			}
+			else if ( nUsedGPR == 1 )
+			{
+				if ( nr_gpr < x86_64::MAX_GPR_REGS )
+				{
+					pCppArgs[nPos] = pUnoArgs[nPos] = gpreg++;
+					nr_gpr++;
+				}
+				else
+					pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw++;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // struct <= 16 bytes || ptr to complex value || ref
+		{
+			void *pCppStack;
+			char pTmpStruct[16];
+
+			if ( bFitsRegisters && !rParam.bOut &&
+				 ( pParamTypeDescr->eTypeClass == typelib_TypeClass_STRUCT ||
+				   pParamTypeDescr->eTypeClass == typelib_TypeClass_EXCEPTION ) )
+			{
+				if ( ( nr_gpr + nUsedGPR <= x86_64::MAX_GPR_REGS ) && ( nr_fpr + nUsedSSE <= x86_64::MAX_SSE_REGS ) )
+				{
+					x86_64::fill_struct( rParam.pTypeRef, gpreg, fpreg, pTmpStruct );
+#if OSL_DEBUG_LEVEL > 1
+					fprintf( stderr, "nUsedGPR == %d, nUsedSSE == %d, pTmpStruct[0] == 0x%x, pTmpStruct[1] == 0x%x, **gpreg == 0x%lx\n",
+							nUsedGPR, nUsedSSE, pTmpStruct[0], pTmpStruct[1], *(sal_uInt64*)*gpreg );
+#endif
+
+					pCppArgs[nPos] = pCppStack = reinterpret_cast<void *>( pTmpStruct );
+					gpreg += nUsedGPR;
+					fpreg += nUsedSSE;
+				}
+				else
+					pCppArgs[nPos] = pCppStack = *ovrflw++;
+			}
+			else if ( nr_gpr < x86_64::MAX_GPR_REGS )
+			{ 
+				pCppArgs[nPos] = pCppStack = *gpreg++;
+				nr_gpr++;
+			}
+			else
+				pCppArgs[nPos] = pCppStack = *ovrflw++;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else if ( bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ) ) // is in/inout
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if ( pUnoExc )
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if ( pParams[nIndex].bOut ) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if ( pCppReturn ) // has complex return
+		{
+			if ( pUnoReturn != pCppReturn ) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if ( pReturnTypeDescr )
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+extern "C" typelib_TypeClass cpp_vtable_call(
+	sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset,
+	void ** gpreg, void ** fpreg, void ** ovrflw,
+	sal_uInt64 * pRegisterReturn /* space for register return */ )
+{
+	// gpreg:  [ret *], this, [other gpr params]
+	// fpreg:  [fpr params]
+	// ovrflw: [gpr or fpr params (properly aligned)]
+	void * pThis;
+	if ( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+		pThis = gpreg[1];
+	}
+	else
+	{
+		pThis = gpreg[0];
+	}
+	pThis = static_cast<char *>( pThis ) - nVtableOffset;
+
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI =
+		bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( pThis );
+
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
+	if ( nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex )
+	{
+		throw RuntimeException( OUString::createFromAscii("illegal vtable index!"),
+								reinterpret_cast<XInterface *>( pCppI ) );
+	}
+
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!\n" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+
+	typelib_TypeClass eRet;
+	switch ( aMemberDescr.get()->eTypeClass )
+	{
+		case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+		{
+			typelib_TypeDescriptionReference *pAttrTypeRef = 
+				reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( aMemberDescr.get() )->pAttributeTypeRef;
+
+			if ( pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex )
+			{
+				// is GET method
+				eRet = cpp2uno_call( pCppI, aMemberDescr.get(), pAttrTypeRef,
+						0, 0, // no params
+						gpreg, fpreg, ovrflw, pRegisterReturn );
+			}
+			else
+			{
+				// is SET method
+				typelib_MethodParameter aParam;
+				aParam.pTypeRef = pAttrTypeRef;
+				aParam.bIn		= sal_True;
+				aParam.bOut		= sal_False;
+
+				eRet = cpp2uno_call( pCppI, aMemberDescr.get(),
+						0, // indicates void return
+						1, &aParam,
+						gpreg, fpreg, ovrflw, pRegisterReturn );
+			}
+			break;
+		}
+		case typelib_TypeClass_INTERFACE_METHOD:
+		{
+			// is METHOD
+			switch ( nFunctionIndex )
+			{
+				case 1: // acquire()
+					pCppI->acquireProxy(); // non virtual call!
+					eRet = typelib_TypeClass_VOID;
+					break;
+				case 2: // release()
+					pCppI->releaseProxy(); // non virtual call!
+					eRet = typelib_TypeClass_VOID;
+					break;
+				case 0: // queryInterface() opt
+				{
+					typelib_TypeDescription * pTD = 0;
+					TYPELIB_DANGER_GET( &pTD, reinterpret_cast<Type *>( gpreg[2] )->getTypeLibType() );
+					if ( pTD )
+					{
+						XInterface * pInterface = 0;
+						(*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)
+							( pCppI->getBridge()->getCppEnv(),
+							  (void **)&pInterface,
+							  pCppI->getOid().pData,
+							  reinterpret_cast<typelib_InterfaceTypeDescription *>( pTD ) );
+
+						if ( pInterface )
+						{
+							::uno_any_construct( reinterpret_cast<uno_Any *>( gpreg[0] ),
+												 &pInterface, pTD, cpp_acquire );
+
+							pInterface->release();
+							TYPELIB_DANGER_RELEASE( pTD );
+
+							reinterpret_cast<void **>( pRegisterReturn )[0] = gpreg[0];
+							eRet = typelib_TypeClass_ANY;
+							break;
+						}
+						TYPELIB_DANGER_RELEASE( pTD );
+					}
+				} // else perform queryInterface()
+				default:
+				{
+					typelib_InterfaceMethodTypeDescription *pMethodTD =
+						reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( aMemberDescr.get() );
+
+					eRet = cpp2uno_call( pCppI, aMemberDescr.get(),
+										 pMethodTD->pReturnTypeRef,
+										 pMethodTD->nParams,
+										 pMethodTD->pParams,
+										 gpreg, fpreg, ovrflw, pRegisterReturn );
+				}
+			}
+			break;
+		}
+		default:
+		{
+			throw RuntimeException( OUString::createFromAscii("no member description found!"),
+									reinterpret_cast<XInterface *>( pCppI ) );
+			// is here for dummy
+			eRet = typelib_TypeClass_VOID;
+		}
+	}
+
+	return eRet;
+}
+
+//==================================================================================================
+extern "C" void privateSnippetExecutor( ... );
+
+const int codeSnippetSize = 24;
+
+// Generate a trampoline that redirects method calls to
+// privateSnippetExecutor().
+//
+// privateSnippetExecutor() saves all the registers that are used for
+// parameter passing on x86_64, and calls the cpp_vtable_call().
+// When it returns, privateSnippetExecutor() sets the return value.
+//
+// Note: The code snippet we build here must not create a stack frame,
+// otherwise the UNO exceptions stop working thanks to non-existing
+// unwinding info.
+unsigned char * codeSnippet( unsigned char * code,
+        sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset,
+        bool bHasHiddenParam ) SAL_THROW( () )
+{
+	sal_uInt64 nOffsetAndIndex = ( ( (sal_uInt64) nVtableOffset ) << 32 ) | ( (sal_uInt64) nFunctionIndex );
+
+	if ( bHasHiddenParam )
+		nOffsetAndIndex |= 0x80000000;
+
+	// movq $<nOffsetAndIndex>, %r10
+	*reinterpret_cast<sal_uInt16 *>( code ) = 0xba49;
+	*reinterpret_cast<sal_uInt64 *>( code + 2 ) = nOffsetAndIndex;
+
+	// movq $<address of the privateSnippetExecutor>, %r11
+	*reinterpret_cast<sal_uInt16 *>( code + 10 ) = 0xbb49;
+	*reinterpret_cast<sal_uInt64 *>( code + 12 ) = reinterpret_cast<sal_uInt64>( privateSnippetExecutor );
+
+	// jmpq *%r11
+	*reinterpret_cast<sal_uInt32 *>( code + 20 ) = 0x00e3ff49;
+
+	return code + codeSnippetSize;
+}
+
+//==================================================================================================
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable( void * block )
+{
+	return static_cast<void **>( block ) + 2;
+}
+
+//==================================================================================================
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return ( slotCount + 2 ) * sizeof( void * ) + slotCount * codeSnippetSize;
+}
+
+//==================================================================================================
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock( void * block )
+{
+	void ** slots = mapBlockToVtable( block );
+	slots[-2] = 0;
+	slots[-1] = 0;
+
+	return slots;
+}
+
+//==================================================================================================
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+	void ** slots, unsigned char * code,
+	typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
+	sal_Int32 functionCount, sal_Int32 nVtableOffset )
+{
+	for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos )
+	{
+		typelib_TypeDescription * pTD = 0;
+
+		TYPELIB_DANGER_GET( &pTD, type->ppMembers[ nPos ] );
+		OSL_ASSERT( pTD );
+
+		if ( typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass )
+		{
+			typelib_InterfaceAttributeTypeDescription *pAttrTD =
+				reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD );
+
+			// get method
+			*slots++ = code;
+			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+								x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) );
+
+			if ( ! pAttrTD->bReadOnly )
+			{
+				// set method
+				*slots++ = code;
+				code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false );
+			}
+		}
+		else if ( typelib_TypeClass_INTERFACE_METHOD == pTD->eTypeClass )
+		{
+			typelib_InterfaceMethodTypeDescription *pMethodTD =
+				reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD );
+			
+			*slots++ = code;
+			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+								x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) );
+		}
+		else
+			OSL_ASSERT( false );
+
+		TYPELIB_DANGER_RELEASE( pTD );
+	}
+	return code;
+}
+
+//==================================================================================================
+void bridges::cpp_uno::shared::VtableFactory::flushCode(
+	unsigned char const *, unsigned char const * )
+{
+}
+=====================================================================
+Found a 391 line (2099 tokens) duplication in the following files: 
+Starting at line 381 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svppspgraphics.cxx
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/pspgraphics.cxx
+
+}
+
+void PspGraphics::drawBitmap( const SalTwoRect*,
+                              const SalBitmap&,
+                              const SalBitmap& )
+{
+    DBG_ERROR("Error: no PrinterGfx::DrawBitmap() for transparent bitmap");
+}
+
+void PspGraphics::drawBitmap( const SalTwoRect*,
+                              const SalBitmap&,
+                              SalColor )
+{
+    DBG_ERROR("Error: no PrinterGfx::DrawBitmap() for transparent color");
+}
+
+void PspGraphics::drawMask( const SalTwoRect*,
+                            const SalBitmap &,
+                            SalColor )
+{
+    DBG_ERROR("Error: PrinterGfx::DrawMask() not implemented");
+}
+
+SalBitmap* PspGraphics::getBitmap( long, long, long, long )
+{
+    DBG_WARNING ("Warning: PrinterGfx::GetBitmap() not implemented");
+    return NULL;
+}
+
+SalColor PspGraphics::getPixel( long, long )
+{
+    DBG_ERROR ("Warning: PrinterGfx::GetPixel() not implemented");
+    return 0;
+}
+
+void PspGraphics::invert(long,long,long,long,SalInvert)
+{
+    DBG_ERROR ("Warning: PrinterGfx::Invert() not implemented");
+}
+
+//==========================================================================
+
+class ImplPspFontData : public ImplFontData
+{
+private:
+    enum { PSPFD_MAGIC = 0xb5bf01f0 };
+    sal_IntPtr              mnFontId;
+
+public:
+                            ImplPspFontData( const psp::FastPrintFontInfo& );
+    virtual sal_IntPtr      GetFontId() const { return mnFontId; }
+    virtual ImplFontData*   Clone() const { return new ImplPspFontData( *this ); }
+    virtual ImplFontEntry*  CreateFontInstance( ImplFontSelectData& ) const;
+    static bool             CheckFontData( const ImplFontData& r ) { return r.CheckMagic( PSPFD_MAGIC ); }
+};
+
+//--------------------------------------------------------------------------
+
+ImplPspFontData::ImplPspFontData( const psp::FastPrintFontInfo& rInfo )
+:   ImplFontData( PspGraphics::Info2DevFontAttributes(rInfo), PSPFD_MAGIC ),
+    mnFontId( rInfo.m_nID )
+{}
+
+//--------------------------------------------------------------------------
+
+ImplFontEntry* ImplPspFontData::CreateFontInstance( ImplFontSelectData& rFSD ) const
+{
+    ImplServerFontEntry* pEntry = new ImplServerFontEntry( rFSD );
+    return pEntry;
+}
+
+//==========================================================================
+
+class PspFontLayout : public GenericSalLayout
+{
+public:
+                        PspFontLayout( ::psp::PrinterGfx& );
+    virtual bool        LayoutText( ImplLayoutArgs& );
+    virtual void        InitFont() const;
+    virtual void        DrawText( SalGraphics& ) const;
+private:
+    ::psp::PrinterGfx&  mrPrinterGfx;
+    sal_IntPtr          mnFontID;
+    int                 mnFontHeight;
+    int                 mnFontWidth;
+    bool                mbVertical;
+    bool                mbArtItalic;
+    bool                mbArtBold;
+};
+
+//--------------------------------------------------------------------------
+
+PspFontLayout::PspFontLayout( ::psp::PrinterGfx& rGfx )
+:   mrPrinterGfx( rGfx )
+{
+    mnFontID     = mrPrinterGfx.GetFontID();
+    mnFontHeight = mrPrinterGfx.GetFontHeight();
+    mnFontWidth  = mrPrinterGfx.GetFontWidth();
+    mbVertical   = mrPrinterGfx.GetFontVertical();
+    mbArtItalic	 = mrPrinterGfx.GetArtificialItalic();
+    mbArtBold	 = mrPrinterGfx.GetArtificialBold();
+}
+
+//--------------------------------------------------------------------------
+
+bool PspFontLayout::LayoutText( ImplLayoutArgs& rArgs )
+{
+    mbVertical = ((rArgs.mnFlags & SAL_LAYOUT_VERTICAL) != 0);
+
+    long nUnitsPerPixel = 1;
+    int nOldGlyphId = -1;
+    long nGlyphWidth = 0;
+    int nCharPos = -1;
+    Point aNewPos( 0, 0 );
+    GlyphItem aPrevItem;
+    rtl_TextEncoding aFontEnc = mrPrinterGfx.GetFontMgr().getFontEncoding( mnFontID );
+    for(;;)
+    {
+        bool bRightToLeft;
+        if( !rArgs.GetNextPos( &nCharPos, &bRightToLeft ) )
+            break;
+
+        sal_Unicode cChar = rArgs.mpStr[ nCharPos ];
+        if( bRightToLeft )
+            cChar = GetMirroredChar( cChar );
+        // symbol font aliasing: 0x0020-0x00ff -> 0xf020 -> 0xf0ff
+        if( aFontEnc == RTL_TEXTENCODING_SYMBOL )
+            if( cChar < 256 )
+                cChar += 0xf000;
+        int nGlyphIndex = cChar;  // printer glyphs = unicode
+
+        // update fallback_runs if needed
+        psp::CharacterMetric aMetric;
+        mrPrinterGfx.GetFontMgr().getMetrics( mnFontID, cChar, cChar, &aMetric, mbVertical );
+        if( aMetric.width == -1 && aMetric.height == -1 )
+            rArgs.NeedFallback( nCharPos, bRightToLeft );
+
+        // apply pair kerning to prev glyph if requested
+        if( SAL_LAYOUT_KERNING_PAIRS & rArgs.mnFlags )
+        {
+            if( nOldGlyphId > 0 )
+            {
+                const std::list< KernPair >& rKernPairs = mrPrinterGfx.getKernPairs(mbVertical);
+                for( std::list< KernPair >::const_iterator it = rKernPairs.begin();
+                     it != rKernPairs.end(); ++it )
+                {
+                    if( it->first == nOldGlyphId && it->second == nGlyphIndex )
+                    {
+                        int nTextScale = mrPrinterGfx.GetFontWidth();
+                        if( ! nTextScale )
+                            nTextScale = mrPrinterGfx.GetFontHeight();
+                        int nKern = (mbVertical ? it->kern_y : it->kern_x) * nTextScale;
+                        nGlyphWidth += nKern;
+                        aPrevItem.mnNewWidth = nGlyphWidth;
+                        break;
+                    }
+                }
+            }
+        }
+
+        // finish previous glyph
+        if( nOldGlyphId >= 0 )
+            AppendGlyph( aPrevItem );
+        nOldGlyphId = nGlyphIndex;
+        aNewPos.X() += nGlyphWidth;
+
+        // prepare GlyphItem for appending it in next round
+        nUnitsPerPixel = mrPrinterGfx.GetCharWidth( cChar, cChar, &nGlyphWidth );
+        int nGlyphFlags = bRightToLeft ? GlyphItem::IS_RTL_GLYPH : 0;
+        nGlyphIndex |= GF_ISCHAR;
+        aPrevItem = GlyphItem( nCharPos, nGlyphIndex, aNewPos, nGlyphFlags, nGlyphWidth );
+    }
+
+    // append last glyph item if any
+    if( nOldGlyphId >= 0 )
+        AppendGlyph( aPrevItem );
+
+    SetOrientation( mrPrinterGfx.GetFontAngle() );
+    SetUnitsPerPixel( nUnitsPerPixel );
+    return (nOldGlyphId >= 0);
+}
+
+class PspServerFontLayout : public ServerFontLayout
+{
+public:
+    PspServerFontLayout( psp::PrinterGfx&, ServerFont& rFont, const ImplLayoutArgs& rArgs );
+
+    virtual void        InitFont() const;
+    const sal_Unicode*	getTextPtr() const { return maText.getStr() - mnMinCharPos; }
+    int					getMinCharPos() const { return mnMinCharPos; }
+    int					getMaxCharPos() const { return mnMinCharPos+maText.getLength()-1; }
+private:
+    ::psp::PrinterGfx&  mrPrinterGfx;
+    sal_IntPtr          mnFontID;
+    int                 mnFontHeight;
+    int                 mnFontWidth;
+    bool                mbVertical;
+    bool				mbArtItalic;
+    bool				mbArtBold;
+    rtl::OUString		maText;
+    int					mnMinCharPos;
+};
+
+PspServerFontLayout::PspServerFontLayout( ::psp::PrinterGfx& rGfx, ServerFont& rFont, const ImplLayoutArgs& rArgs )
+        :   ServerFontLayout( rFont ),
+            mrPrinterGfx( rGfx )
+{
+    mnFontID     = mrPrinterGfx.GetFontID();
+    mnFontHeight = mrPrinterGfx.GetFontHeight();
+    mnFontWidth  = mrPrinterGfx.GetFontWidth();
+    mbVertical   = mrPrinterGfx.GetFontVertical();
+    mbArtItalic	 = mrPrinterGfx.GetArtificialItalic();
+    mbArtBold	 = mrPrinterGfx.GetArtificialBold();
+    maText		 = OUString( rArgs.mpStr + rArgs.mnMinCharPos, rArgs.mnEndCharPos - rArgs.mnMinCharPos+1 );
+    mnMinCharPos = rArgs.mnMinCharPos;
+}
+
+void PspServerFontLayout::InitFont() const
+{
+    mrPrinterGfx.SetFont( mnFontID, mnFontHeight, mnFontWidth,
+                          mnOrientation, mbVertical, mbArtItalic, mbArtBold );
+}
+
+//--------------------------------------------------------------------------
+
+static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx, bool bIsPspServerFontLayout )
+{
+    const int nMaxGlyphs = 200;
+    sal_Int32   aGlyphAry[ nMaxGlyphs ];
+    sal_Int32   aWidthAry[ nMaxGlyphs ];
+    sal_Int32   aIdxAry  [ nMaxGlyphs ];
+    sal_Unicode aUnicodes[ nMaxGlyphs ];
+    int			aCharPosAry	[ nMaxGlyphs ];
+
+    Point aPos;
+    long nUnitsPerPixel = rLayout.GetUnitsPerPixel();
+    const sal_Unicode* pText = bIsPspServerFontLayout ? static_cast<const PspServerFontLayout&>(rLayout).getTextPtr() : NULL;
+    int nMinCharPos = bIsPspServerFontLayout ? static_cast<const PspServerFontLayout&>(rLayout).getMinCharPos() : 0;
+    int nMaxCharPos = bIsPspServerFontLayout ? static_cast<const PspServerFontLayout&>(rLayout).getMaxCharPos() : 0;
+    for( int nStart = 0;; )
+    {
+        int nGlyphCount = rLayout.GetNextGlyphs( nMaxGlyphs, aGlyphAry, aPos, nStart, aWidthAry, bIsPspServerFontLayout ? aCharPosAry : NULL );
+        if( !nGlyphCount )
+            break;
+
+        sal_Int32 nXOffset = 0;
+        for( int i = 0; i < nGlyphCount; ++i )
+        {
+            nXOffset += aWidthAry[ i ];
+            aIdxAry[ i ] = nXOffset / nUnitsPerPixel;
+            sal_Int32 nGlyphIdx = aGlyphAry[i] & (GF_IDXMASK | GF_ROTMASK);
+            if( bIsPspServerFontLayout )
+                aUnicodes[i] = (aCharPosAry[i] >= nMinCharPos && aCharPosAry[i] <= nMaxCharPos) ? pText[ aCharPosAry[i] ] : 0;
+            else
+                aUnicodes[i] = (aGlyphAry[i] & GF_ISCHAR) ? nGlyphIdx : 0;
+            aGlyphAry[i] = nGlyphIdx;
+        }
+
+        rGfx.DrawGlyphs( aPos, (sal_uInt32 *)aGlyphAry, aUnicodes, nGlyphCount, aIdxAry );
+    }
+}
+
+//--------------------------------------------------------------------------
+
+void PspFontLayout::InitFont() const
+{
+    mrPrinterGfx.SetFont( mnFontID, mnFontHeight, mnFontWidth,
+        mnOrientation, mbVertical, mbArtItalic, mbArtBold );
+}
+
+//--------------------------------------------------------------------------
+
+void PspFontLayout::DrawText( SalGraphics& ) const
+{
+    DrawPrinterLayout( *this, mrPrinterGfx, false );
+}
+
+void PspGraphics::DrawServerFontLayout( const ServerFontLayout& rLayout )
+{
+    // print complex text
+    DrawPrinterLayout( rLayout, *m_pPrinterGfx, true );
+}
+
+ImplFontCharMap* PspGraphics::GetImplFontCharMap() const
+{
+    // TODO: get ImplFontCharMap directly from fonts
+    int nPairCount = 0;
+    if( m_pServerFont[0] )
+        nPairCount = m_pServerFont[0]->GetFontCodeRanges( NULL );
+    if( !nPairCount )
+        return NULL;
+
+    sal_uInt32* pCodePairs = new sal_uInt32[ 2 * nPairCount ];
+    if( m_pServerFont[0] )
+        m_pServerFont[0]->GetFontCodeRanges( pCodePairs );
+    return new ImplFontCharMap( nPairCount, pCodePairs );
+}
+
+USHORT PspGraphics::SetFont( ImplFontSelectData *pEntry, int nFallbackLevel )
+{
+    // release all fonts that are to be overridden
+    for( int i = nFallbackLevel; i < MAX_FALLBACK; ++i )
+    {
+        if( m_pServerFont[i] != NULL )
+        {
+            // old server side font is no longer referenced
+            GlyphCache::GetInstance().UncacheFont( *m_pServerFont[i] );
+            m_pServerFont[i] = NULL;
+        }
+    }
+
+    // return early if there is no new font
+    if( !pEntry )
+        return 0;
+    
+    sal_IntPtr nID = pEntry->mpFontData ? pEntry->mpFontData->GetFontId() : 0;
+
+    // determine which font attributes need to be emulated
+    bool bArtItalic = false;
+    bool bArtBold = false;
+    if( pEntry->meItalic == ITALIC_OBLIQUE || pEntry->meItalic == ITALIC_NORMAL )
+    {
+        psp::italic::type eItalic = m_pPrinterGfx->GetFontMgr().getFontItalic( nID );
+        if( eItalic != psp::italic::Italic && eItalic != psp::italic::Oblique )
+            bArtItalic = true;
+    }
+    int nWeight = (int)pEntry->meWeight;
+    int nRealWeight = (int)m_pPrinterGfx->GetFontMgr().getFontWeight( nID );
+    if( nRealWeight <= (int)psp::weight::Medium && nWeight > (int)WEIGHT_MEDIUM )
+    {
+        bArtBold = true;
+    }
+
+    // also set the serverside font for layouting
+    m_bFontVertical = pEntry->mbVertical;
+    if( pEntry->mpFontData )
+    {
+        // requesting a font provided by builtin rasterizer
+        ServerFont* pServerFont = GlyphCache::GetInstance().CacheFont( *pEntry );
+        if( pServerFont != NULL )
+        {
+            if( pServerFont->TestFont() )
+                m_pServerFont[ nFallbackLevel ] = pServerFont;
+            else
+                GlyphCache::GetInstance().UncacheFont( *pServerFont );
+        }
+    }
+
+    // set the printer font
+    return m_pPrinterGfx->SetFont( nID,
+                                   pEntry->mnHeight,
+                                   pEntry->mnWidth,
+                                   pEntry->mnOrientation,
+                                   pEntry->mbVertical,
+                                   bArtItalic,
+                                   bArtBold
+                                   );
+}
+
+void PspGraphics::SetTextColor( SalColor nSalColor )
+{
+    psp::PrinterColor aColor (SALCOLOR_RED   (nSalColor),
+                              SALCOLOR_GREEN (nSalColor),
+                              SALCOLOR_BLUE  (nSalColor));
+    m_pPrinterGfx->SetTextColor (aColor);
+}
+
+bool PspGraphics::AddTempDevFont( ImplDevFontList*, const String&,const String& )
+{
+    return false;
+}
+
+void PspGraphics::GetDevFontList( ImplDevFontList *pList )
+{
+    ::std::list< psp::fontID > aList;
+    psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+    rMgr.getFontList( aList, m_pJobData->m_pParser, m_pInfoPrinter->m_bCompatMetrics );
+
+    ::std::list< psp::fontID >::iterator it;
+    psp::FastPrintFontInfo aInfo;
+    for (it = aList.begin(); it != aList.end(); ++it)
+        if (rMgr.getFontFastInfo (*it, aInfo))
+            AnnounceFonts( pList, aInfo );
+}
+
+void PspGraphics::GetDevFontSubstList( OutputDevice* pOutDev )
+{
+    const psp::PrinterInfo& rInfo = psp::PrinterInfoManager::get().getPrinterInfo( m_pJobData->m_aPrinterName );
+    if( rInfo.m_bPerformFontSubstitution )
+    {
+        for( std::hash_map< rtl::OUString, rtl::OUString, rtl::OUStringHash >::const_iterator it = rInfo.m_aFontSubstitutes.begin(); it != rInfo.m_aFontSubstitutes.end(); ++it )
+=====================================================================
+Found a 260 line (2056 tokens) duplication in the following files: 
+Starting at line 1813 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2331 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2849 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso10_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xc0 },
+{ 0x00, 0xc1, 0xc1 },
+{ 0x00, 0xc2, 0xc2 },
+{ 0x00, 0xc3, 0xc3 },
+{ 0x00, 0xc4, 0xc4 },
+{ 0x00, 0xc5, 0xc5 },
+{ 0x00, 0xc6, 0xc6 },
+{ 0x00, 0xc7, 0xc7 },
+{ 0x00, 0xc8, 0xc8 },
+{ 0x00, 0xc9, 0xc9 },
+{ 0x00, 0xca, 0xca },
+{ 0x00, 0xcb, 0xcb },
+{ 0x00, 0xcc, 0xcc },
+{ 0x00, 0xcd, 0xcd },
+{ 0x00, 0xce, 0xce },
+{ 0x00, 0xcf, 0xcf },
+{ 0x00, 0xd0, 0xd0 },
+{ 0x00, 0xd1, 0xd1 },
+{ 0x00, 0xd2, 0xd2 },
+{ 0x00, 0xd3, 0xd3 },
+{ 0x00, 0xd4, 0xd4 },
+{ 0x00, 0xd5, 0xd5 },
+{ 0x00, 0xd6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x00, 0xd8, 0xd8 },
+{ 0x00, 0xd9, 0xd9 },
+{ 0x00, 0xda, 0xda },
+{ 0x00, 0xdb, 0xdb },
+{ 0x00, 0xdc, 0xdc },
+{ 0x00, 0xdd, 0xdd },
+{ 0x00, 0xde, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xe0 },
+{ 0x00, 0xe1, 0xe1 },
+{ 0x00, 0xe2, 0xe2 },
+{ 0x00, 0xe3, 0xe3 },
+{ 0x00, 0xe4, 0xe4 },
+{ 0x00, 0xe5, 0xe5 },
+{ 0x00, 0xe6, 0xe6 },
+{ 0x00, 0xe7, 0xe7 },
+{ 0x00, 0xe8, 0xe8 },
+{ 0x00, 0xe9, 0xe9 },
+{ 0x00, 0xea, 0xea },
+{ 0x00, 0xeb, 0xeb },
+{ 0x00, 0xec, 0xec },
+{ 0x00, 0xed, 0xed },
+{ 0x00, 0xee, 0xee },
+{ 0x00, 0xef, 0xef },
+{ 0x00, 0xf0, 0xf0 },
+{ 0x00, 0xf1, 0xf1 },
+{ 0x00, 0xf2, 0xf2 },
+{ 0x00, 0xf3, 0xf3 },
+{ 0x00, 0xf4, 0xf4 },
+{ 0x00, 0xf5, 0xf5 },
+{ 0x00, 0xf6, 0xf6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xf8 },
+{ 0x00, 0xf9, 0xf9 },
+{ 0x00, 0xfa, 0xfa },
+{ 0x00, 0xfb, 0xfb },
+{ 0x00, 0xfc, 0xfc },
+{ 0x00, 0xfd, 0xfd },
+{ 0x00, 0xfe, 0xfe },
+{ 0x00, 0xff, 0xff },
+};
+
+struct cs_info koi8r_tbl[] = {
+=====================================================================
+Found a 260 line (2055 tokens) duplication in the following files: 
+Starting at line 1813 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4663 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iscii_devanagari_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xc0 },
+{ 0x00, 0xc1, 0xc1 },
+{ 0x00, 0xc2, 0xc2 },
+{ 0x00, 0xc3, 0xc3 },
+{ 0x00, 0xc4, 0xc4 },
+{ 0x00, 0xc5, 0xc5 },
+{ 0x00, 0xc6, 0xc6 },
+{ 0x00, 0xc7, 0xc7 },
+{ 0x00, 0xc8, 0xc8 },
+{ 0x00, 0xc9, 0xc9 },
+{ 0x00, 0xca, 0xca },
+{ 0x00, 0xcb, 0xcb },
+{ 0x00, 0xcc, 0xcc },
+{ 0x00, 0xcd, 0xcd },
+{ 0x00, 0xce, 0xce },
+{ 0x00, 0xcf, 0xcf },
+{ 0x00, 0xd0, 0xd0 },
+{ 0x00, 0xd1, 0xd1 },
+{ 0x00, 0xd2, 0xd2 },
+{ 0x00, 0xd3, 0xd3 },
+{ 0x00, 0xd4, 0xd4 },
+{ 0x00, 0xd5, 0xd5 },
+{ 0x00, 0xd6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x00, 0xd8, 0xd8 },
+{ 0x00, 0xd9, 0xd9 },
+{ 0x00, 0xda, 0xda },
+{ 0x00, 0xdb, 0xdb },
+{ 0x00, 0xdc, 0xdc },
+{ 0x00, 0xdd, 0xdd },
+{ 0x00, 0xde, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xe0 },
+{ 0x00, 0xe1, 0xe1 },
+{ 0x00, 0xe2, 0xe2 },
+{ 0x00, 0xe3, 0xe3 },
+{ 0x00, 0xe4, 0xe4 },
+{ 0x00, 0xe5, 0xe5 },
+{ 0x00, 0xe6, 0xe6 },
+{ 0x00, 0xe7, 0xe7 },
+{ 0x00, 0xe8, 0xe8 },
+{ 0x00, 0xe9, 0xe9 },
+{ 0x00, 0xea, 0xea },
+{ 0x00, 0xeb, 0xeb },
+{ 0x00, 0xec, 0xec },
+{ 0x00, 0xed, 0xed },
+{ 0x00, 0xee, 0xee },
+{ 0x00, 0xef, 0xef },
+{ 0x00, 0xf0, 0xf0 },
+{ 0x00, 0xf1, 0xf1 },
+{ 0x00, 0xf2, 0xf2 },
+{ 0x00, 0xf3, 0xf3 },
+{ 0x00, 0xf4, 0xf4 },
+{ 0x00, 0xf5, 0xf5 },
+{ 0x00, 0xf6, 0xf6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xf8 },
+{ 0x00, 0xf9, 0xf9 },
+{ 0x00, 0xfa, 0xfa },
+{ 0x00, 0xfb, 0xfb },
+{ 0x00, 0xfc, 0xfc },
+{ 0x00, 0xfd, 0xfd },
+{ 0x00, 0xfe, 0xfe },
+{ 0x00, 0xff, 0xff },
+};
+
+struct enc_entry encds[] = {
+=====================================================================
+Found a 440 line (2039 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx
+
+using namespace ::com::sun::star::uno;
+
+namespace
+{
+
+//==================================================================================================
+void cpp2uno_call(
+	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** pCallStack,
+	void * pReturnValue )
+{
+	// pCallStack: ret, [return ptr], this, params
+	char * pCppStack = (char *)(pCallStack +1);
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pUnoReturn = pReturnValue; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void **)pCppStack;
+			pCppStack += sizeof(void *);
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+                break;
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*static_cast< void ** >(pReturnValue) = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		}
+	}
+}
+
+
+//==================================================================================================
+extern "C" void cpp_vtable_call(
+    int nFunctionIndex, int nVtableOffset, void** pCallStack,
+    void * pReturnValue )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+	
+	// pCallStack: ret adr, [ret *], this, params
+    void * pThis;
+	if( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+        pThis = pCallStack[2];
+	}
+	else
+    {
+        pThis = pCallStack[1];
+    }
+    pThis = static_cast< char * >(pThis) - nVtableOffset;
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+            pThis);
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pReturnValue );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pReturnValue );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *static_cast< void ** >(pReturnValue) = pCallStack[1];
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				pCallStack, pReturnValue );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("no member description found!"),
+            (XInterface *)pThis );
+	}
+	}
+}
+
+//==================================================================================================
+extern "C" void privateSnippetExecutorGeneral();
+extern "C" void privateSnippetExecutorVoid();
+extern "C" void privateSnippetExecutorHyper();
+extern "C" void privateSnippetExecutorFloat();
+extern "C" void privateSnippetExecutorDouble();
+extern "C" void privateSnippetExecutorClass();
+extern "C" typedef void (*PrivateSnippetExecutor)();
+
+int const codeSnippetSize = 16;
+
+unsigned char * codeSnippet(
+    unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
+    typelib_TypeClass returnTypeClass)
+{
+    if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) {
+        functionIndex |= 0x80000000;
+    }
+    PrivateSnippetExecutor exec;
+    switch (returnTypeClass) {
+    case typelib_TypeClass_VOID:
+        exec = privateSnippetExecutorVoid;
+        break;
+    case typelib_TypeClass_HYPER:
+    case typelib_TypeClass_UNSIGNED_HYPER:
+        exec = privateSnippetExecutorHyper;
+        break;
+    case typelib_TypeClass_FLOAT:
+        exec = privateSnippetExecutorFloat;
+        break;
+    case typelib_TypeClass_DOUBLE:
+        exec = privateSnippetExecutorDouble;
+        break;
+    case typelib_TypeClass_STRING:
+    case typelib_TypeClass_TYPE:
+    case typelib_TypeClass_ANY:
+    case typelib_TypeClass_SEQUENCE:
+    case typelib_TypeClass_STRUCT:
+    case typelib_TypeClass_INTERFACE:
+        exec = privateSnippetExecutorClass;
+        break;
+    default:
+        exec = privateSnippetExecutorGeneral;
+        break;
+    }
+    unsigned char * p = code;
+    OSL_ASSERT(sizeof (sal_Int32) == 4);
+    // mov function_index, %eax:
+    *p++ = 0xB8;
+    *reinterpret_cast< sal_Int32 * >(p) = functionIndex;
+    p += sizeof (sal_Int32);
+    // mov vtable_offset, %edx:
+    *p++ = 0xBA;
+    *reinterpret_cast< sal_Int32 * >(p) = vtableOffset;
+    p += sizeof (sal_Int32);
+    // jmp privateSnippetExecutor:
+    *p++ = 0xE9;
+    *reinterpret_cast< sal_Int32 * >(p)
+        = ((unsigned char *) exec) - p - sizeof (sal_Int32);
+    p += sizeof (sal_Int32);
+    OSL_ASSERT(p - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+                    member)->pAttributeTypeRef->eTypeClass);
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(
+                    code, functionOffset++, vtableOffset,
+                    typelib_TypeClass_VOID);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+                    member)->pReturnTypeRef->eTypeClass);
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+
+void bridges::cpp_uno::shared::VtableFactory::flushCode(
+    unsigned char const *, unsigned char const *)
+{}
+=====================================================================
+Found a 418 line (2021 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/xml2utf.cxx
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/fastsax/xml2utf.cxx
+
+using namespace rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+
+#include "xml2utf.hxx"
+
+namespace sax_expatwrap {
+
+sal_Int32 XMLFile2UTFConverter::readAndConvert( Sequence<sal_Int8> &seq , sal_Int32 nMaxToRead )
+	throw ( IOException, NotConnectedException , BufferSizeExceededException , RuntimeException )
+{
+
+	Sequence<sal_Int8> seqIn;
+
+	if( ! m_in.is() ) {
+		throw NotConnectedException();
+	}
+	if( ! m_bStarted ) {
+		nMaxToRead = Max( 512 , nMaxToRead );  	// it should be possible to find the encoding attribute
+						     					// within the first 512 bytes == 128 chars in UCS-4
+	}
+
+	sal_Int32 nRead;
+	Sequence< sal_Int8 > seqStart;
+	while( sal_True )
+	{
+		nRead = m_in->readSomeBytes( seq , nMaxToRead );
+
+		if( nRead + seqStart.getLength())
+		{
+			// if nRead is 0, the file is already eof.
+			if( ! m_bStarted && nRead )
+			{
+				// ensure that enough data is available to parse encoding
+				if( seqStart.getLength() )
+				{
+				  // prefix with what we had so far.
+				  sal_Int32 nLength = seq.getLength();
+				  seq.realloc( seqStart.getLength() + nLength );
+
+				  memmove (seq.getArray() + seqStart.getLength(),
+					   seq.getConstArray(),
+					   nLength);
+				  memcpy  (seq.getArray(),
+					   seqStart.getConstArray(),
+					   seqStart.getLength());
+				}
+
+				// autodetection with the first bytes
+				if( ! isEncodingRecognizable( seq ) )
+				{
+				  // remember what we have so far.
+				  seqStart = seq;
+
+				  // read more !
+				  continue;
+				}
+				if( scanForEncoding( seq ) || m_sEncoding.getLength() ) {
+					// initialize decoding
+					initializeDecoding();
+				}
+				nRead = seq.getLength();
+				seqStart = Sequence < sal_Int8 > ();
+			}
+
+			// do the encoding
+			if( m_pText2Unicode && m_pUnicode2Text &&
+				m_pText2Unicode->canContinue() && m_pUnicode2Text->canContinue() ) {
+
+				Sequence<sal_Unicode> seqUnicode = m_pText2Unicode->convert( seq );
+				seq = m_pUnicode2Text->convert(	seqUnicode.getConstArray(),	seqUnicode.getLength() );
+			}
+
+			if( ! m_bStarted )
+			{
+				// it must now be ensured, that no encoding attribute exist anymore
+				// ( otherwise the expat-Parser will crash )
+				// This must be done after decoding !
+				// ( e.g. Files decoded in ucs-4 cannot be read properly )
+				m_bStarted = sal_True;
+				removeEncoding( seq );
+			}
+			nRead = seq.getLength();
+		}
+
+		break;
+	}
+	return nRead;
+}
+
+
+XMLFile2UTFConverter::~XMLFile2UTFConverter()
+{
+	if( m_pText2Unicode )
+		delete m_pText2Unicode;
+	if( m_pUnicode2Text )
+		delete m_pUnicode2Text;
+}
+
+
+void XMLFile2UTFConverter::removeEncoding( Sequence<sal_Int8> &seq )
+{
+	const sal_Int8 *pSource = seq.getArray();
+	if( ! strncmp( (const char * ) pSource , "<?xml" , 4) )
+	{
+
+		// scan for encoding
+		OString str( (sal_Char * ) pSource , seq.getLength() );
+
+		// cut sequence to first line break
+		// find first line break;
+		int nMax = str.indexOf( 10 );
+		if( nMax >= 0 )
+		{
+			str = str.copy( 0 , nMax );
+		}
+
+		int nFound = str.indexOf( " encoding" );
+		if( nFound >= 0 ) {
+			int nStop;
+			int nStart = str.indexOf( "\"" , nFound );
+			if( nStart < 0 || str.indexOf( "'" , nFound ) < nStart )
+			{
+				nStart = str.indexOf( "'" , nFound );
+				nStop  = str.indexOf( "'" , nStart +1 );
+			}
+			else
+			{
+				nStop  = str.indexOf( "\"" , nStart +1);
+			}
+
+			if( nStart >= 0 && nStop >= 0 && nStart+1 < nStop )
+			{
+				// remove encoding tag from file
+				memmove(        &( seq.getArray()[nFound] ) ,
+								&( seq.getArray()[nStop+1]) ,
+								seq.getLength() - nStop -1);
+				seq.realloc( seq.getLength() - ( nStop+1 - nFound ) );
+//				str = String( (char * ) seq.getArray() , seq.getLen() );
+			}
+		}
+	}
+}
+
+// Checks, if enough data has been accumulated to recognize the encoding
+sal_Bool XMLFile2UTFConverter::isEncodingRecognizable( const Sequence< sal_Int8 > &seq)
+{
+	const sal_Int8 *pSource = seq.getConstArray();
+	sal_Bool bCheckIfFirstClosingBracketExsists = sal_False;
+
+	if( seq.getLength() < 8 ) {
+		// no recognition possible, when less than 8 bytes are available
+		return sal_False;
+	}
+
+	if( ! strncmp( (const char * ) pSource , "<?xml" , 4 ) ) {
+		// scan if the <?xml tag finishes within this buffer
+		bCheckIfFirstClosingBracketExsists = sal_True;
+	}
+	else if( ('<' == pSource[0] || '<' == pSource[2] ) &&
+			 ( ('?' == pSource[4] || '?' == pSource[6] ) ) )
+	{
+		// check for utf-16
+		bCheckIfFirstClosingBracketExsists = sal_True;
+	}
+	else if( ( '<' == pSource[1] || '<' == pSource[3] ) &&
+		     ( '?' == pSource[5] || '?' == pSource[7] ) )
+	{
+		// check for
+		bCheckIfFirstClosingBracketExsists = sal_True;
+	}
+
+	if( bCheckIfFirstClosingBracketExsists )
+	{
+		for( sal_Int32 i = 0; i < seq.getLength() ; i ++ )
+		{
+			// whole <?xml tag is valid
+			if( '>' == pSource[ i ] )
+			{
+				return sal_True;
+			}
+		}
+		return sal_False;
+	}
+
+	// No <? tag in front, no need for a bigger buffer
+	return sal_True;
+}
+
+sal_Bool XMLFile2UTFConverter::scanForEncoding( Sequence< sal_Int8 > &seq )
+{
+	const sal_uInt8 *pSource = reinterpret_cast<const sal_uInt8*>( seq.getConstArray() );
+	sal_Bool bReturn = sal_True;
+
+	if( seq.getLength() < 4 ) {
+		// no recognition possible, when less than 4 bytes are available
+		return sal_False;
+	}
+
+	// first level : detect possible file formats
+	if( ! strncmp( (const char * ) pSource , "<?xml" , 4 ) ) {
+
+		// scan for encoding
+		OString str( (const sal_Char *) pSource , seq.getLength() );
+
+		// cut sequence to first line break
+		//find first line break;
+		int nMax = str.indexOf( 10 );
+		if( nMax >= 0 )
+		{
+			str = str.copy( 0 , nMax );
+		}
+
+		int nFound = str.indexOf( " encoding" );
+		if( nFound < str.getLength() ) {
+			int nStop;
+			int nStart = str.indexOf( "\"" , nFound );
+			if( nStart < 0 || str.indexOf( "'" , nFound ) < nStart )
+			{
+				nStart = str.indexOf( "'" , nFound );
+				nStop  = str.indexOf( "'" , nStart +1 );
+			}
+			else
+			{
+				nStop  = str.indexOf( "\"" , nStart +1);
+			}
+			if( nStart >= 0 && nStop >= 0 && nStart+1 < nStop )
+			{
+				// encoding found finally
+				m_sEncoding = str.copy( nStart+1 , nStop - nStart - 1 );
+			}
+		}
+	}
+	else if( 0xFE == pSource[0] &&
+	         0xFF == pSource[1] ) {
+		// UTF-16 big endian
+		// conversion is done so that encoding information can be easily extracted
+		m_sEncoding = "utf-16";
+	}
+	else if( 0xFF == pSource[0] &&
+	         0xFE == pSource[1] ) {
+		// UTF-16 little endian
+		// conversion is done so that encoding information can be easily extracted
+		m_sEncoding = "utf-16";
+	}
+	else if( 0x00 == pSource[0] && 0x3c == pSource[1]  && 0x00 == pSource[2] && 0x3f == pSource[3] ) {
+		// UTF-16 big endian without byte order mark (this is (strictly speaking) an error.)
+		// The byte order mark is simply added
+
+		// simply add the byte order mark !
+		seq.realloc( seq.getLength() + 2 );
+		memmove( &( seq.getArray()[2] ) , seq.getArray() , seq.getLength() - 2 );
+		((sal_uInt8*)seq.getArray())[0] = 0xFE;
+		((sal_uInt8*)seq.getArray())[1] = 0xFF;
+
+		m_sEncoding = "utf-16";
+	}
+	else if( 0x3c == pSource[0] && 0x00 == pSource[1]  && 0x3f == pSource[2] && 0x00 == pSource[3] ) {
+		// UTF-16 little endian without byte order mark (this is (strictly speaking) an error.)
+		// The byte order mark is simply added
+
+		seq.realloc( seq.getLength() + 2 );
+		memmove( &( seq.getArray()[2] ) , seq.getArray() , seq.getLength() - 2 );
+		((sal_uInt8*)seq.getArray())[0] = 0xFF;
+		((sal_uInt8*)seq.getArray())[1] = 0xFE;
+
+		m_sEncoding = "utf-16";
+	}
+    else if( 0xEF == pSource[0] && 
+             0xBB == pSource[1] &&
+             0xBF == pSource[2] )
+    {
+        // UTF-8 BOM (byte order mark); signifies utf-8, and not byte order
+        // The BOM is removed.
+        memmove( seq.getArray(), &( seq.getArray()[3] ), seq.getLength()-3 );
+        seq.realloc( seq.getLength() - 3 );
+        m_sEncoding = "utf-8";
+    }
+	else if( 0x00 == pSource[0] && 0x00 == pSource[1]  && 0x00 == pSource[2] && 0x3c == pSource[3] ) {
+		// UCS-4 big endian
+		m_sEncoding = "ucs-4";
+	}
+	else if( 0x3c == pSource[0] && 0x00 == pSource[1]  && 0x00 == pSource[2] && 0x00 == pSource[3] ) {
+		// UCS-4 little endian
+		m_sEncoding = "ucs-4";
+	}
+	else if( 0x4c == pSource[0] && 0x6f == pSource[1]  &&
+	         0xa7 == static_cast<unsigned char> (pSource[2]) &&
+	         0x94 == static_cast<unsigned char> (pSource[3]) ) {
+		// EBCDIC
+		bReturn = sal_False;   // must be extended
+	}
+	else {
+		// other
+		// UTF8 is directly recognized by the parser.
+		bReturn = sal_False;
+	}
+
+	return bReturn;
+}
+
+void XMLFile2UTFConverter::initializeDecoding()
+{
+
+	if( m_sEncoding.getLength() )
+	{
+		rtl_TextEncoding encoding = rtl_getTextEncodingFromMimeCharset( m_sEncoding.getStr() );
+		if( encoding != RTL_TEXTENCODING_UTF8 )
+		{
+			m_pText2Unicode = new Text2UnicodeConverter( m_sEncoding );
+			m_pUnicode2Text = new Unicode2TextConverter( RTL_TEXTENCODING_UTF8 );
+		}
+	}
+}
+
+
+//----------------------------------------------
+//
+// Text2UnicodeConverter
+//
+//----------------------------------------------
+Text2UnicodeConverter::Text2UnicodeConverter( const OString &sEncoding )
+{
+	rtl_TextEncoding encoding = rtl_getTextEncodingFromMimeCharset( sEncoding.getStr() );
+	if( RTL_TEXTENCODING_DONTKNOW == encoding )
+	{
+		m_bCanContinue = sal_False;
+		m_bInitialized = sal_False;
+	}
+	else
+	{
+		init( encoding );
+	}
+}
+
+Text2UnicodeConverter::Text2UnicodeConverter( rtl_TextEncoding encoding )
+{
+	init( encoding );
+}
+
+
+Text2UnicodeConverter::~Text2UnicodeConverter()
+{
+	if( m_bInitialized )
+	{
+		rtl_destroyTextToUnicodeContext( m_convText2Unicode , m_contextText2Unicode );
+		rtl_destroyUnicodeToTextConverter( m_convText2Unicode );
+	}
+}
+
+void Text2UnicodeConverter::init( rtl_TextEncoding encoding )
+{
+	m_bCanContinue = sal_True;
+	m_bInitialized = sal_True;
+
+	m_convText2Unicode 	= rtl_createTextToUnicodeConverter(encoding);
+	m_contextText2Unicode = rtl_createTextToUnicodeContext( m_convText2Unicode );
+	m_rtlEncoding = encoding;
+}
+
+
+Sequence<sal_Unicode> Text2UnicodeConverter::convert( const Sequence<sal_Int8> &seqText )
+{
+	sal_uInt32 uiInfo;
+	sal_Size nSrcCvtBytes 	= 0;
+	sal_Size nTargetCount 	= 0;
+	sal_Size nSourceCount   = 0;
+
+	// the whole source size
+	sal_Int32 	nSourceSize = seqText.getLength() + m_seqSource.getLength();
+	Sequence<sal_Unicode> 	seqUnicode ( nSourceSize );
+
+	const sal_Int8 *pbSource = seqText.getConstArray();
+	sal_Int8 *pbTempMem = 0;
+
+	if( m_seqSource.getLength() ) {
+		// put old rest and new byte sequence into one array
+		pbTempMem = new sal_Int8[ nSourceSize ];
+		memcpy( pbTempMem , m_seqSource.getConstArray() , m_seqSource.getLength() );
+		memcpy( &(pbTempMem[ m_seqSource.getLength() ]) , seqText.getConstArray() , seqText.getLength() );
+		pbSource = pbTempMem;
+
+		// set to zero again
+		m_seqSource = Sequence< sal_Int8 >();
+	}
+
+	while( sal_True ) {
+
+		/* All invalid characters are transformed to the unicode undefined char */
+		nTargetCount += 	rtl_convertTextToUnicode(
+									m_convText2Unicode,
+									m_contextText2Unicode,
+									( const sal_Char * ) &( pbSource[nSourceCount] ),
+									nSourceSize - nSourceCount ,
+									&( seqUnicode.getArray()[ nTargetCount ] ),
+									seqUnicode.getLength() - nTargetCount,
+									RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT   |
+									RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT |
+									RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT,
+									&uiInfo,
+									&nSrcCvtBytes );
+		nSourceCount += nSrcCvtBytes;
+
+		if( uiInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL ) {
+			// save necessary bytes for next conversion
+			seqUnicode.realloc( seqUnicode.getLength() * 2 );
+			continue;
+		}
+		break;
+	}
+	if( uiInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL ) {
+		m_seqSource.realloc( nSourceSize - nSourceCount );
+		memcpy( m_seqSource.getArray() , &(pbSource[nSourceCount]) , nSourceSize-nSourceCount );
+	}
+
+
+	if( pbTempMem ) {
+		delete pbTempMem;
+=====================================================================
+Found a 355 line (2013 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/tokens.c
+Starting at line 13 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_tokens.c
+
+static char wbuf[4 * OBS];
+static char *wbp = wbuf;
+static int EBCDIC_ExternTokenDetected = 0;
+static int EBCDIC_StartTokenDetected = 0;
+
+unsigned char toLatin1[256] =
+{
+    0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, 0x97, 0x8d,
+    0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
+    0x9d, 0x0a, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d,
+    0x1e, 0x1f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1b,
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, 0x90, 0x91,
+    0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9a, 0x9b,
+    0x14, 0x15, 0x9e, 0x1a, 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1,
+    0xe3, 0xe5, 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
+    0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, 0xec, 0xdf,
+    0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, 0x2d, 0x2f, 0xc2, 0xc4,
+    0xc0, 0xc1, 0xc3, 0xc5, 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f,
+    0x3e, 0x3f, 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf,
+    0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
+    0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+    0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, 0xb0, 0x6a, 0x6b, 0x6c,
+    0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8,
+    0xc6, 0xa4, 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
+    0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, 0xac, 0xa3,
+    0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, 0xbd, 0xbe, 0xdd, 0xa8,
+    0xaf, 0x5d, 0xb4, 0xd7, 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45,
+    0x46, 0x47, 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5,
+    0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52,
+    0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, 0x5c, 0xf7, 0x53, 0x54,
+    0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2,
+    0xd3, 0xd5, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+    0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f
+};
+
+#define MASK    "\\x%x"
+
+int
+    memcpy_EBCDIC( char * pwbuf, uchar *p, int len )
+{
+    int currpos = 0;
+    int processedchars = 0;
+
+    if( len == 0 )
+        return 0;
+
+    if( len == 1 )
+    {
+        *pwbuf = *p;
+        return 1;
+    }
+
+    /* copy spaces until " or ' */
+    while( (p[ processedchars ] != '\"') && (p[ processedchars ] != '\'') )
+        pwbuf[ currpos++ ] = p[ processedchars++ ];
+
+    /* copy first " or ' */
+    pwbuf[ currpos++ ] = p[ processedchars++ ];
+
+    /* convert all characters until " or ' */
+    while( processedchars < (len - 1) )
+    {
+        if( p[ processedchars ] == '\\' )
+        {
+            switch( p[ ++processedchars ] )
+            {
+                case 'n':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\n'] );
+                    processedchars++;
+                    break;
+
+                case 't':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\t'] );
+                    processedchars++;
+                    break;
+
+                case 'v':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\v'] );
+                    processedchars++;
+                    break;
+
+                case 'b':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\b'] );
+                    processedchars++;
+                    break;
+
+                case 'r':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\r'] );
+                    processedchars++;
+                    break;
+
+                case 'f':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\f'] );
+                    processedchars++;
+                    break;
+
+                case 'a':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\a'] );
+                    processedchars++;
+                    break;
+
+                case '\\':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\\'] );
+                    processedchars++;
+                    break;
+
+                case '?':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\?'] );
+                    processedchars++;
+                    break;
+
+                case '\'':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\''] );
+                    processedchars++;
+                    break;
+
+                case '"':
+                    currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1['\"'] );
+                    processedchars++;
+                    break;
+
+                /* octal coded character? -> copy */
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                case '4':
+                case '5':
+                case '6':
+                case '7':
+                    {
+                    int startpos = currpos;
+
+                    pwbuf[ currpos++ ] = '\\';
+
+                    while( p[ processedchars ] >= '0' && p[ processedchars ] <= '7' && (currpos < startpos + 4) )
+                          pwbuf[ currpos++ ] = (unsigned char)p[ processedchars++ ];
+                    break;
+                    }
+
+                /* hex coded character? -> copy */
+                case 'x':
+                case 'X':
+                    {
+                    int startpos = currpos;
+
+                    pwbuf[ currpos++ ] = '\\';
+                    pwbuf[ currpos++ ] = 'x';
+                    processedchars++;
+
+                    while( isxdigit( p[ processedchars ] ) && (currpos < startpos + 4) )
+                          pwbuf[ currpos++ ] = (unsigned char)p[ processedchars++ ];
+                    break;
+                    }
+
+            }
+        }
+        else
+            currpos += sprintf( &pwbuf[ currpos ], MASK, toLatin1[p[ processedchars++ ]] );
+
+    }
+
+    /* copy last " or ' */
+    pwbuf[ currpos++ ] = p[ processedchars ];
+
+    return currpos;
+}
+
+void
+    maketokenrow(int size, Tokenrow * trp)
+{
+    trp->max = size;
+    if (size > 0)
+        trp->bp = (Token *) domalloc(size * sizeof(Token));
+    else
+        trp->bp = NULL;
+    trp->tp = trp->bp;
+    trp->lp = trp->bp;
+}
+
+Token *
+    growtokenrow(Tokenrow * trp)
+{
+    int ncur = trp->tp - trp->bp;
+    int nlast = trp->lp - trp->bp;
+
+    trp->max = 3 * trp->max / 2 + 1;
+    trp->bp = (Token *) realloc(trp->bp, trp->max * sizeof(Token));
+    trp->lp = &trp->bp[nlast];
+    trp->tp = &trp->bp[ncur];
+    return trp->lp;
+}
+
+/*
+ * Compare a row of tokens, ignoring the content of WS; return !=0 if different
+ */
+int
+    comparetokens(Tokenrow * tr1, Tokenrow * tr2)
+{
+    Token *tp1, *tp2;
+
+    tp1 = tr1->tp;
+    tp2 = tr2->tp;
+    if (tr1->lp - tp1 != tr2->lp - tp2)
+        return 1;
+    for (; tp1 < tr1->lp; tp1++, tp2++)
+    {
+        if (tp1->type != tp2->type
+            || (tp1->wslen == 0) != (tp2->wslen == 0)
+            || tp1->len != tp2->len
+            || strncmp((char *) tp1->t, (char *) tp2->t, tp1->len) != 0)
+            return 1;
+    }
+    return 0;
+}
+
+/*
+ * replace ntok tokens starting at dtr->tp with the contents of str.
+ * tp ends up pointing just beyond the replacement.
+ * Canonical whitespace is assured on each side.
+ */
+void
+    insertrow(Tokenrow * dtr, int ntok, Tokenrow * str)
+{
+    int nrtok = rowlen(str);
+
+    dtr->tp += ntok;
+    adjustrow(dtr, nrtok - ntok);
+    dtr->tp -= ntok;
+    movetokenrow(dtr, str);
+    dtr->tp += nrtok;
+}
+
+/*
+ * make sure there is WS before trp->tp, if tokens might merge in the output
+ */
+void
+    makespace(Tokenrow * trp, Token * ntp)
+{
+    uchar *tt;
+    Token *tp = trp->tp;
+
+    if (tp >= trp->lp)
+        return;
+
+    if (ntp->wslen)
+    {
+        tt = newstring(tp->t, tp->len, ntp->wslen);
+        strncpy((char *)tt, (char *)ntp->t - ntp->wslen, ntp->wslen);
+        tp->t = tt + ntp->wslen;
+        tp->wslen = ntp->wslen;
+        tp->flag |= XPWS;
+    }
+}
+
+/*
+ * Copy an entire tokenrow into another, at tp.
+ * It is assumed that there is enough space.
+ *  Not strictly conforming.
+ */
+void
+    movetokenrow(Tokenrow * dtr, Tokenrow * str)
+{
+    int nby;
+
+    /* nby = sizeof(Token) * (str->lp - str->bp); */
+    nby = (char *) str->lp - (char *) str->bp;
+    memmove(dtr->tp, str->bp, nby);
+}
+
+/*
+ * Move the tokens in a row, starting at tr->tp, rightward by nt tokens;
+ * nt may be negative (left move).
+ * The row may need to be grown.
+ * Non-strictly conforming because of the (char *), but easily fixed
+ */
+void
+    adjustrow(Tokenrow * trp, int nt)
+{
+    int nby, size;
+
+    if (nt == 0)
+        return;
+    size = (trp->lp - trp->bp) + nt;
+    while (size > trp->max)
+        growtokenrow(trp);
+    /* nby = sizeof(Token) * (trp->lp - trp->tp); */
+    nby = (char *) trp->lp - (char *) trp->tp;
+    if (nby)
+        memmove(trp->tp + nt, trp->tp, nby);
+    trp->lp += nt;
+}
+
+/*
+ * Copy a row of tokens into the destination holder, allocating
+ * the space for the contents.  Return the destination.
+ */
+Tokenrow *
+    copytokenrow(Tokenrow * dtr, Tokenrow * str)
+{
+    int len = rowlen(str);
+
+    maketokenrow(len, dtr);
+    movetokenrow(dtr, str);
+    dtr->lp += len;
+    return dtr;
+}
+
+/*
+ * Produce a copy of a row of tokens.  Start at trp->tp.
+ * The value strings are copied as well.  The first token
+ * has WS available.
+ */
+Tokenrow *
+    normtokenrow(Tokenrow * trp)
+{
+    Token *tp;
+    Tokenrow *ntrp = new(Tokenrow);
+    int len;
+
+    len = trp->lp - trp->tp;
+    if (len <= 0)
+        len = 1;
+    maketokenrow(len, ntrp);
+    for (tp = trp->tp; tp < trp->lp; tp++)
+    {
+        *ntrp->lp = *tp;
+        if (tp->len)
+        {
+            ntrp->lp->t = newstring(tp->t, tp->len, 1);
+            *ntrp->lp->t++ = ' ';
+            if (tp->wslen)
+                ntrp->lp->wslen = 1;
+        }
+        ntrp->lp++;
+    }
+    if (ntrp->lp > ntrp->bp)
+        ntrp->bp->wslen = 0;
+    return ntrp;
+}
+
+/*
+ * Debugging
+ */
+void
+    peektokens(Tokenrow * trp, char *str)
+{
+    Token *tp;
+
+    tp = trp->tp;
+    flushout();
+    if (str)
+        fprintf(stderr, "%s ", str);
+    if (tp < trp->bp || tp > trp->lp)
+        fprintf(stderr, "(tp offset %ld) ", (long int) (tp - trp->bp));
+=====================================================================
+Found a 327 line (1829 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svppspgraphics.cxx
+Starting at line 851 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/pspgraphics.cxx
+
+            pOutDev->ImplAddDevFontSubstitute( it->first, it->second, FONT_SUBSTITUTE_ALWAYS );
+    }
+}
+
+void PspGraphics::GetFontMetric( ImplFontMetricData *pMetric )
+{
+    const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+    psp::PrintFontInfo aInfo;
+
+    if (rMgr.getFontInfo (m_pPrinterGfx->GetFontID(), aInfo))
+    {
+        ImplDevFontAttributes aDFA = Info2DevFontAttributes( aInfo );
+        static_cast<ImplFontAttributes&>(*pMetric) = aDFA;
+        pMetric->mbDevice       = aDFA.mbDevice;
+        pMetric->mbScalableFont = true;
+
+        pMetric->mnOrientation 	= m_pPrinterGfx->GetFontAngle();
+        pMetric->mnSlant		= 0;
+
+        sal_Int32 nTextHeight	= m_pPrinterGfx->GetFontHeight();
+        sal_Int32 nTextWidth	= m_pPrinterGfx->GetFontWidth();
+        if( ! nTextWidth )
+            nTextWidth = nTextHeight;
+
+        pMetric->mnWidth		= nTextWidth;
+        pMetric->mnAscent		= ( aInfo.m_nAscend * nTextHeight + 500 ) / 1000;
+        pMetric->mnDescent		= ( aInfo.m_nDescend * nTextHeight + 500 ) / 1000;
+        pMetric->mnIntLeading	= ( aInfo.m_nLeading * nTextHeight + 500 ) / 1000;
+        pMetric->mnExtLeading	= 0;
+    }
+}
+
+ULONG PspGraphics::GetKernPairs( ULONG nPairs, ImplKernPairData *pKernPairs )
+{
+    const ::std::list< ::psp::KernPair >& rPairs( m_pPrinterGfx->getKernPairs() );
+    ULONG nHavePairs = rPairs.size();
+    if( pKernPairs && nPairs )
+    {
+        ::std::list< ::psp::KernPair >::const_iterator it;
+        unsigned int i;
+        int nTextScale = m_pPrinterGfx->GetFontWidth();
+        if( ! nTextScale )
+            nTextScale = m_pPrinterGfx->GetFontHeight();
+        for( i = 0, it = rPairs.begin(); i < nPairs && i < nHavePairs; i++, ++it )
+        {
+            pKernPairs[i].mnChar1	= it->first;
+            pKernPairs[i].mnChar2	= it->second;
+            pKernPairs[i].mnKern	= it->kern_x * nTextScale / 1000;
+        }
+
+    }
+    return nHavePairs;
+}
+
+BOOL PspGraphics::GetGlyphBoundRect( long nGlyphIndex, Rectangle& rRect )
+{
+    int nLevel = nGlyphIndex >> GF_FONTSHIFT;
+    if( nLevel >= MAX_FALLBACK )
+        return FALSE;
+
+    ServerFont* pSF = m_pServerFont[ nLevel ];
+    if( !pSF )
+        return FALSE;
+
+    nGlyphIndex &= ~GF_FONTMASK;
+    const GlyphMetric& rGM = pSF->GetGlyphMetric( nGlyphIndex );
+    rRect = Rectangle( rGM.GetOffset(), rGM.GetSize() );
+    return TRUE;
+}
+
+BOOL PspGraphics::GetGlyphOutline( long nGlyphIndex,
+    ::basegfx::B2DPolyPolygon& rB2DPolyPoly )
+{
+    int nLevel = nGlyphIndex >> GF_FONTSHIFT;
+    if( nLevel >= MAX_FALLBACK )
+        return FALSE;
+
+    ServerFont* pSF = m_pServerFont[ nLevel ];
+    if( !pSF )
+        return FALSE;
+
+    nGlyphIndex &= ~GF_FONTMASK;
+    if( pSF->GetGlyphOutline( nGlyphIndex, rB2DPolyPoly ) )
+        return TRUE;
+
+    return FALSE;
+}
+
+SalLayout* PspGraphics::GetTextLayout( ImplLayoutArgs& rArgs, int nFallbackLevel )
+{
+    // workaround for printers not handling glyph indexing for non-TT fonts
+    int nFontId = m_pPrinterGfx->GetFontID();
+    if( psp::fonttype::TrueType != psp::PrintFontManager::get().getFontType( nFontId ) )
+        rArgs.mnFlags |= SAL_LAYOUT_DISABLE_GLYPH_PROCESSING;
+    else if( nFallbackLevel > 0 )
+        rArgs.mnFlags &= ~SAL_LAYOUT_DISABLE_GLYPH_PROCESSING;
+
+    GenericSalLayout* pLayout = NULL;
+
+    if( m_pServerFont[ nFallbackLevel ]
+        && !(rArgs.mnFlags & SAL_LAYOUT_DISABLE_GLYPH_PROCESSING) )
+        pLayout = new PspServerFontLayout( *m_pPrinterGfx, *m_pServerFont[nFallbackLevel], rArgs );
+    else
+        pLayout = new PspFontLayout( *m_pPrinterGfx );
+
+    return pLayout;
+}
+
+//--------------------------------------------------------------------------
+
+BOOL PspGraphics::CreateFontSubset(
+                                   const rtl::OUString& rToFile,
+                                   ImplFontData* pFont,
+                                   sal_Int32* pGlyphIDs,
+                                   sal_uInt8* pEncoding,
+                                   sal_Int32* pWidths,
+                                   int nGlyphs,
+                                   FontSubsetInfo& rInfo
+                                   )
+{
+    // in this context the pFont->GetFontId() is a valid PSP
+    // font since they are the only ones left after the PDF
+    // export has filtered its list of subsettable fonts (for
+    // which this method was created). The correct way would
+    // be to have the GlyphCache search for the ImplFontData pFont
+    psp::fontID aFont = pFont->GetFontId();
+    return PspGraphics::DoCreateFontSubset( rToFile, aFont, pGlyphIDs, pEncoding, pWidths, nGlyphs, rInfo );
+}
+
+//--------------------------------------------------------------------------
+
+const void* PspGraphics::GetEmbedFontData( ImplFontData* pFont, const sal_Unicode* pUnicodes, sal_Int32* pWidths, FontSubsetInfo& rInfo, long* pDataLen )
+{
+    // in this context the pFont->GetFontId() is a valid PSP
+    // font since they are the only ones left after the PDF
+    // export has filtered its list of subsettable fonts (for
+    // which this method was created). The correct way would
+    // be to have the GlyphCache search for the ImplFontData pFont
+    psp::fontID aFont = pFont->GetFontId();
+    return PspGraphics::DoGetEmbedFontData( aFont, pUnicodes, pWidths, rInfo, pDataLen );
+}
+
+//--------------------------------------------------------------------------
+
+void PspGraphics::FreeEmbedFontData( const void* pData, long nLen )
+{
+    PspGraphics::DoFreeEmbedFontData( pData, nLen );
+}
+
+//--------------------------------------------------------------------------
+
+const std::map< sal_Unicode, sal_Int32 >* PspGraphics::GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** pNonEncoded )
+{
+    // in this context the pFont->GetFontId() is a valid PSP
+    // font since they are the only ones left after the PDF
+    // export has filtered its list of subsettable fonts (for
+    // which this method was created). The correct way would
+    // be to have the GlyphCache search for the ImplFontData pFont
+    psp::fontID aFont = pFont->GetFontId();
+    return PspGraphics::DoGetFontEncodingVector( aFont, pNonEncoded );
+}
+
+//--------------------------------------------------------------------------
+
+void PspGraphics::GetGlyphWidths( ImplFontData* pFont,
+                                  bool bVertical,
+                                  std::vector< sal_Int32 >& rWidths,
+                                  std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc )
+{
+    // in this context the pFont->GetFontId() is a valid PSP
+    // font since they are the only ones left after the PDF
+    // export has filtered its list of subsettable fonts (for
+    // which this method was created). The correct way would
+    // be to have the GlyphCache search for the ImplFontData pFont
+    psp::fontID aFont = pFont->GetFontId();
+    PspGraphics::DoGetGlyphWidths( aFont, bVertical, rWidths, rUnicodeEnc );
+}
+
+
+// static helpers of PspGraphics
+
+bool PspGraphics::DoCreateFontSubset( const rtl::OUString& rToFile,
+                                      psp::fontID aFont,
+                                      sal_Int32* pGlyphIDs,
+                                      sal_uInt8* pEncoding,
+                                      sal_Int32* pWidths,
+                                      int nGlyphs,
+                                      FontSubsetInfo& rInfo )
+{
+    psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+    psp::PrintFontInfo aFontInfo;
+
+    if( ! rMgr.getFontInfo( aFont, aFontInfo ) )
+        return false;
+
+    // fill in font info
+    switch( aFontInfo.m_eType )
+    {
+        case psp::fonttype::TrueType: rInfo.m_nFontType = SAL_FONTSUBSETINFO_TYPE_TRUETYPE;break;
+        case psp::fonttype::Type1: rInfo.m_nFontType = SAL_FONTSUBSETINFO_TYPE_TYPE1;break;
+        default:
+            return false;
+    }
+    rInfo.m_nAscent     = aFontInfo.m_nAscend;
+    rInfo.m_nDescent    = aFontInfo.m_nDescend;
+    rInfo.m_aPSName     = rMgr.getPSName( aFont );
+
+    int xMin, yMin, xMax, yMax;
+    rMgr.getFontBoundingBox( aFont, xMin, yMin, xMax, yMax );
+
+    if( ! rMgr.createFontSubset( aFont,
+                                 rToFile,
+                                 pGlyphIDs,
+                                 pEncoding,
+                                 pWidths,
+                                 nGlyphs
+                                 ) )
+        return false;
+
+    rInfo.m_aFontBBox	= Rectangle( Point( xMin, yMin ), Size( xMax-xMin, yMax-yMin ) );
+    rInfo.m_nCapHeight	= yMax; // Well ...
+
+    return true;
+}
+
+const void* PspGraphics::DoGetEmbedFontData( fontID aFont, const sal_Unicode* pUnicodes, sal_Int32* pWidths, FontSubsetInfo& rInfo, long* pDataLen )
+{
+    psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+
+    psp::PrintFontInfo aFontInfo;
+    if( ! rMgr.getFontInfo( aFont, aFontInfo ) )
+        return NULL;
+
+    // fill in font info
+    switch( aFontInfo.m_eType )
+    {
+        case psp::fonttype::TrueType: rInfo.m_nFontType = SAL_FONTSUBSETINFO_TYPE_TRUETYPE;break;
+        case psp::fonttype::Type1: rInfo.m_nFontType = SAL_FONTSUBSETINFO_TYPE_TYPE1;break;
+        default:
+            return NULL;
+    }
+    rInfo.m_nAscent		= aFontInfo.m_nAscend;
+    rInfo.m_nDescent	= aFontInfo.m_nDescend;
+    rInfo.m_aPSName		= rMgr.getPSName( aFont );
+
+    int xMin, yMin, xMax, yMax;
+    rMgr.getFontBoundingBox( aFont, xMin, yMin, xMax, yMax );
+
+    psp::CharacterMetric aMetrics[256];
+    sal_Unicode aUnicodes[256];
+    if( aFontInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL && aFontInfo.m_eType == psp::fonttype::Type1 )
+    {
+        for( int i = 0; i < 256; i++ )
+            aUnicodes[i] = pUnicodes[i] < 0x0100 ? pUnicodes[i] + 0xf000 : pUnicodes[i];
+        pUnicodes = aUnicodes;
+    }
+    if( ! rMgr.getMetrics( aFont, pUnicodes, 256, aMetrics ) )
+        return NULL;
+
+    OString aSysPath = rMgr.getFontFileSysPath( aFont );
+    struct stat aStat;
+    if( stat( aSysPath.getStr(), &aStat ) )
+        return NULL;
+    int fd = open( aSysPath.getStr(), O_RDONLY );
+    if( fd < 0 )
+        return NULL;
+    void* pFile = mmap( NULL, aStat.st_size, PROT_READ, MAP_SHARED, fd, 0 );
+    close( fd );
+    if( pFile == MAP_FAILED )
+        return NULL;
+
+    *pDataLen = aStat.st_size;
+
+    rInfo.m_aFontBBox	= Rectangle( Point( xMin, yMin ), Size( xMax-xMin, yMax-yMin ) );
+    rInfo.m_nCapHeight	= yMax; // Well ...
+
+    for( int i = 0; i < 256; i++ )
+
+        pWidths[i] = (aMetrics[i].width > 0 ? aMetrics[i].width : 0);
+
+    return pFile;
+}
+
+void PspGraphics::DoFreeEmbedFontData( const void* pData, long nLen )
+{
+    if( pData )
+        munmap( (char*)pData, nLen );
+}
+
+const std::map< sal_Unicode, sal_Int32 >* PspGraphics::DoGetFontEncodingVector( fontID aFont, const std::map< sal_Unicode, rtl::OString >** pNonEncoded )
+{
+    psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+
+    psp::PrintFontInfo aFontInfo;
+    if( ! rMgr.getFontInfo( aFont, aFontInfo ) )
+    {
+        if( pNonEncoded )
+            *pNonEncoded = NULL;
+        return NULL;
+    }
+
+    return rMgr.getEncodingMap( aFont, pNonEncoded );
+}
+
+void PspGraphics::DoGetGlyphWidths( psp::fontID aFont,
+                                    bool bVertical,
+                                    std::vector< sal_Int32 >& rWidths,
+                                    std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc )
+{
+    psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+    rMgr.getGlyphWidths( aFont, bVertical, rWidths, rUnicodeEnc );
+}
+// ----------------------------------------------------------------------------
+
+FontWidth PspGraphics::ToFontWidth (psp::width::type eWidth)
+{
+	switch (eWidth)
+	{
+		case psp::width::UltraCondensed: return WIDTH_ULTRA_CONDENSED;
+		case psp::width::ExtraCondensed: return WIDTH_EXTRA_CONDENSED;
+		case psp::width::Condensed:		 return WIDTH_CONDENSED;
+		case psp::width::SemiCondensed:	 return WIDTH_SEMI_CONDENSED;
+		case psp::width::Normal:		 return WIDTH_NORMAL;
+		case psp::width::SemiExpanded:	 return WIDTH_SEMI_EXPANDED;
+		case psp::width::Expanded:		 return WIDTH_EXPANDED;
+		case psp::width::ExtraExpanded:	 return WIDTH_EXTRA_EXPANDED;
+		case psp::width::UltraExpanded:	 return WIDTH_ULTRA_EXPANDED;
+=====================================================================
+Found a 401 line (1784 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+
+namespace
+{
+
+//==================================================================================================
+// The call instruction within the asm section of callVirtualMethod may throw
+// exceptions.  So that the compiler handles this correctly, it is important
+// that (a) callVirtualMethod might call dummy_can_throw_anything (although this
+// never happens at runtime), which in turn can throw exceptions, and (b)
+// callVirtualMethod is not inlined at its call site (so that any exceptions are
+// caught which are thrown from the instruction calling callVirtualMethod):
+void callVirtualMethod(
+    void * pAdjustedThisPtr,
+    sal_Int32 nVtableIndex,
+    void * pRegisterReturn,
+    typelib_TypeClass eReturnType,
+    sal_Int32 * pStackLongs,
+    sal_Int32 nStackLongs ) __attribute__((noinline));
+
+void callVirtualMethod(
+    void * pAdjustedThisPtr,
+    sal_Int32 nVtableIndex,
+    void * pRegisterReturn,
+    typelib_TypeClass eReturnType,
+    sal_Int32 * pStackLongs,
+    sal_Int32 nStackLongs )
+{
+	// parameter list is mixed list of * and values
+	// reference parameters are pointers
+    
+	OSL_ENSURE( pStackLongs && pAdjustedThisPtr, "### null ptr!" );
+	OSL_ENSURE( (sizeof(void *) == 4) && (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
+	OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
+    
+    // never called
+    if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
+
+	volatile long edx = 0, eax = 0; // for register returns
+    void * stackptr;
+	asm volatile (
+        "mov   %%esp, %6\n\t"
+		// copy values
+		"mov   %0, %%eax\n\t"
+		"mov   %%eax, %%edx\n\t"
+		"dec   %%edx\n\t"
+		"shl   $2, %%edx\n\t"
+		"add   %1, %%edx\n"
+		"Lcopy:\n\t"
+		"pushl 0(%%edx)\n\t"
+		"sub   $4, %%edx\n\t"
+		"dec   %%eax\n\t"
+		"jne   Lcopy\n\t"
+		// do the actual call
+		"mov   %2, %%edx\n\t"
+		"mov   0(%%edx), %%edx\n\t"
+		"mov   %3, %%eax\n\t"
+		"shl   $2, %%eax\n\t"
+		"add   %%eax, %%edx\n\t"
+		"mov   0(%%edx), %%edx\n\t"
+		"call  *%%edx\n\t"
+		// save return registers
+ 		"mov   %%eax, %4\n\t"
+ 		"mov   %%edx, %5\n\t"
+		// cleanup stack
+        "mov   %6, %%esp\n\t"
+		:
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
+          "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+        default:
+            break;
+	}
+}
+
+//================================================================================================== 
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+    bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+	// push this
+    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+        + aVtableSlot.offset;
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+                break;
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 264 line (1745 tokens) duplication in the following files: 
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    static const SprmInfo aSprms[] =
+    {
+        {     0, 0, L_FIX}, // "Default-sprm"/ wird uebersprungen
+        {0x4600, 2, L_FIX}, // "sprmPIstd" pap.istd;istd (style code);short;
+        {0xC601, 0, L_VAR}, // "sprmPIstdPermute" pap.istd;permutation vector
+        {0x2602, 1, L_FIX}, // "sprmPIncLvl" pap.istd, pap.lvl;difference
+                            // between istd of base PAP and istd of PAP to be
+                            // produced
+        {0x2403, 1, L_FIX}, // "sprmPJc" pap.jc;jc (justification);byte;
+        {0x2404, 1, L_FIX}, // "sprmPFSideBySide" pap.fSideBySide;0 or 1;byte;
+        {0x2405, 1, L_FIX}, // "sprmPFKeep" pap.fKeep;0 or 1;byte;
+        {0x2406, 1, L_FIX}, // "sprmPFKeepFollow" pap.fKeepFollow;0 or 1;byte;
+        {0x2407, 1, L_FIX}, // "sprmPFPageBreakBefore" pap.fPageBreakBefore;
+                            // 0 or 1
+        {0x2408, 1, L_FIX}, // "sprmPBrcl" pap.brcl;brcl;byte;
+        {0x2409, 1, L_FIX}, // "sprmPBrcp" pap.brcp;brcp;byte;
+        {0x260A, 1, L_FIX}, // "sprmPIlvl" pap.ilvl;ilvl;byte;
+        {0x460B, 2, L_FIX}, // "sprmPIlfo" pap.ilfo;ilfo (list index) ;short;
+        {0x240C, 1, L_FIX}, // "sprmPFNoLineNumb" pap.fNoLnn;0 or 1;byte;
+        {0xC60D, 0, L_VAR}, // "sprmPChgTabsPapx" pap.itbdMac, pap.rgdxaTab,
+                            // pap.rgtbd;complex
+        {0x840E, 2, L_FIX}, // "sprmPDxaRight" pap.dxaRight;dxa;word;
+        {0x840F, 2, L_FIX}, // "sprmPDxaLeft" pap.dxaLeft;dxa;word;
+        {0x4610, 2, L_FIX}, // "sprmPNest" pap.dxaLeft;dxa
+        {0x8411, 2, L_FIX}, // "sprmPDxaLeft1" pap.dxaLeft1;dxa;word;
+        {0x6412, 4, L_FIX}, // "sprmPDyaLine" pap.lspd;an LSPD, a long word
+                            // structure consisting of a short of dyaLine
+                            // followed by a short of fMultLinespace
+        {0xA413, 2, L_FIX}, // "sprmPDyaBefore" pap.dyaBefore;dya;word;
+        {0xA414, 2, L_FIX}, // "sprmPDyaAfter" pap.dyaAfter;dya;word;
+        {0xC615, 0, L_VAR}, // "sprmPChgTabs" pap.itbdMac, pap.rgdxaTab,
+                            // pap.rgtbd;complex
+        {0x2416, 1, L_FIX}, // "sprmPFInTable" pap.fInTable;0 or 1;byte;
+        {0x2417, 1, L_FIX}, // "sprmPFTtp" pap.fTtp;0 or 1;byte;
+        {0x8418, 2, L_FIX}, // "sprmPDxaAbs" pap.dxaAbs;dxa;word;
+        {0x8419, 2, L_FIX}, // "sprmPDyaAbs" pap.dyaAbs;dya;word;
+        {0x841A, 2, L_FIX}, // "sprmPDxaWidth" pap.dxaWidth;dxa;word;
+        {0x261B, 1, L_FIX}, // "sprmPPc" pap.pcHorz, pap.pcVert;complex
+        {0x461C, 2, L_FIX}, // "sprmPBrcTop10" pap.brcTop;BRC10;word;
+        {0x461D, 2, L_FIX}, // "sprmPBrcLeft10" pap.brcLeft;BRC10;word;
+        {0x461E, 2, L_FIX}, // "sprmPBrcBottom10" pap.brcBottom;BRC10;word;
+        {0x461F, 2, L_FIX}, // "sprmPBrcRight10" pap.brcRight;BRC10;word;
+        {0x4620, 2, L_FIX}, // "sprmPBrcBetween10" pap.brcBetween;BRC10;word;
+        {0x4621, 2, L_FIX}, // "sprmPBrcBar10" pap.brcBar;BRC10;word;
+        {0x4622, 2, L_FIX}, // "sprmPDxaFromText10" pap.dxaFromText;dxa;word;
+        {0x2423, 1, L_FIX}, // "sprmPWr" pap.wr;wr
+        {0x6424, 4, L_FIX}, // "sprmPBrcTop" pap.brcTop;BRC;long;
+        {0x6425, 4, L_FIX}, // "sprmPBrcLeft" pap.brcLeft;BRC;long;
+        {0x6426, 4, L_FIX}, // "sprmPBrcBottom" pap.brcBottom;BRC;long;
+        {0x6427, 4, L_FIX}, // "sprmPBrcRight" pap.brcRight;BRC;long;
+        {0x6428, 4, L_FIX}, // "sprmPBrcBetween" pap.brcBetween;BRC;long;
+        {0x6629, 4, L_FIX}, // "sprmPBrcBar" pap.brcBar;BRC;long;
+        {0x242A, 1, L_FIX}, // "sprmPFNoAutoHyph" pap.fNoAutoHyph;0 or 1;byte;
+        {0x442B, 2, L_FIX}, // "sprmPWHeightAbs" pap.wHeightAbs;w;word;
+        {0x442C, 2, L_FIX}, // "sprmPDcs" pap.dcs;DCS;short;
+        {0x442D, 2, L_FIX}, // "sprmPShd" pap.shd;SHD;word;
+        {0x842E, 2, L_FIX}, // "sprmPDyaFromText" pap.dyaFromText;dya;word;
+        {0x842F, 2, L_FIX}, // "sprmPDxaFromText" pap.dxaFromText;dxa;word;
+        {0x2430, 1, L_FIX}, // "sprmPFLocked" pap.fLocked;0 or 1;byte;
+        {0x2431, 1, L_FIX}, // "sprmPFWidowControl" pap.fWidowControl;0 or 1
+        {0xC632, 0, L_VAR}, // "sprmPRuler" ;;variable length;
+        {0x2433, 1, L_FIX}, // "sprmPFKinsoku" pap.fKinsoku;0 or 1;byte;
+        {0x2434, 1, L_FIX}, // "sprmPFWordWrap" pap.fWordWrap;0 or 1;byte;
+        {0x2435, 1, L_FIX}, // "sprmPFOverflowPunct" pap.fOverflowPunct;0 or 1
+        {0x2436, 1, L_FIX}, // "sprmPFTopLinePunct" pap.fTopLinePunct;0 or 1
+        {0x2437, 1, L_FIX}, // "sprmPFAutoSpaceDE" pap.fAutoSpaceDE;0 or 1
+        {0x2438, 1, L_FIX}, // "sprmPFAutoSpaceDN" pap.fAutoSpaceDN;0 or 1
+        {0x4439, 2, L_FIX}, // "sprmPWAlignFont" pap.wAlignFont;iFa
+        {0x443A, 2, L_FIX}, // "sprmPFrameTextFlow" pap.fVertical pap.fBackward
+                            // pap.fRotateFont;complex
+        {0x243B, 1, L_FIX}, // "sprmPISnapBaseLine" obsolete: not applicable in
+                            // Word97 and later versions;
+        {0xC63E, 0, L_VAR}, // "sprmPAnld" pap.anld;;variable length;
+        {0xC63F, 0, L_VAR}, // "sprmPPropRMark" pap.fPropRMark;complex
+        {0x2640, 1, L_FIX}, // "sprmPOutLvl" pap.lvl;has no effect if pap.istd
+                            // is < 1 or is > 9
+        {0x2441, 1, L_FIX}, // "sprmPFBiDi" ;;byte;
+        {0x2443, 1, L_FIX}, // "sprmPFNumRMIns" pap.fNumRMIns;1 or 0;bit;
+        {0x2444, 1, L_FIX}, // "sprmPCrLf" ;;byte;
+        {0xC645, 0, L_VAR}, // "sprmPNumRM" pap.numrm;;variable length;
+        {0x6645, 4, L_FIX}, // "sprmPHugePapx" fc in the data stream to locate
+                            // the huge grpprl
+        {0x6646, 4, L_FIX}, // "sprmPHugePapx" fc in the data stream to locate
+                            // the huge grpprl
+        {0x2447, 1, L_FIX}, // "sprmPFUsePgsuSettings" pap.fUsePgsuSettings;
+                            // 1 or 0
+        {0x2448, 1, L_FIX}, // "sprmPFAdjustRight" pap.fAdjustRight;1 or 0;byte;
+        {0x0800, 1, L_FIX}, // "sprmCFRMarkDel" chp.fRMarkDel;1 or 0;bit;
+        {0x0801, 1, L_FIX}, // "sprmCFRMark" chp.fRMark;1 or 0;bit;
+        {0x0802, 1, L_FIX}, // "sprmCFFldVanish" chp.fFldVanish;1 or 0;bit;
+        {0x6A03, 4, L_FIX}, // "sprmCPicLocation" chp.fcPic and chp.fSpec;
+        {0x4804, 2, L_FIX}, // "sprmCIbstRMark" chp.ibstRMark;index into
+                            // sttbRMark
+        {0x6805, 4, L_FIX}, // "sprmCDttmRMark" chp.dttmRMark;DTTM;long;
+        {0x0806, 1, L_FIX}, // "sprmCFData" chp.fData;1 or 0;bit;
+        {0x4807, 2, L_FIX}, // "sprmCIdslRMark" chp.idslRMReason;an index to a
+                            // table of strings defined in Word 6.0
+                            // executables;short;
+        {0xEA08, 1, L_FIX}, // "sprmCChs" chp.fChsDiff and chp.chse;
+        {0x6A09, 4, L_FIX}, // "sprmCSymbol" chp.fSpec, chp.xchSym and
+                            // chp.ftcSym
+        {0x080A, 1, L_FIX}, // "sprmCFOle2" chp.fOle2;1 or 0;bit;
+        {0x480B, 0, L_FIX}, // "sprmCIdCharType" obsolete: not applicable in
+                            // Word97 and later versions;;;
+        {0x2A0C, 1, L_FIX}, // "sprmCHighlight" chp.fHighlight,
+                            // chp.icoHighlight;ico (fHighlight is set to 1 iff
+                            // ico is not 0)
+        {0x680E, 4, L_FIX}, // "sprmCObjLocation" chp.fcObj;FC;long;
+        {0x2A10, 0, L_FIX}, // "sprmCFFtcAsciSymb" ;;;
+        {0x4A30, 2, L_FIX}, // "sprmCIstd" chp.istd;istd, see stylesheet def
+        {0xCA31, 0, L_VAR}, // "sprmCIstdPermute" chp.istd;permutation vector
+        {0x2A32, 0, L_VAR}, // "sprmCDefault" whole CHP;none;variable length;
+        {0x2A33, 0, L_FIX}, // "sprmCPlain" whole CHP;none;0;
+        {0x2A34, 1, L_FIX}, // "sprmCKcd" ;;;
+        {0x0835, 1, L_FIX}, // "sprmCFBold" chp.fBold;0,1, 128, or 129
+        {0x0836, 1, L_FIX}, // "sprmCFItalic" chp.fItalic;0,1, 128, or 129
+        {0x0837, 1, L_FIX}, // "sprmCFStrike" chp.fStrike;0,1, 128, or 129
+        {0x0838, 1, L_FIX}, // "sprmCFOutline" chp.fOutline;0,1, 128, or 129
+        {0x0839, 1, L_FIX}, // "sprmCFShadow" chp.fShadow;0,1, 128, or 129
+        {0x083A, 1, L_FIX}, // "sprmCFSmallCaps" chp.fSmallCaps;0,1, 128, or 129
+        {0x083B, 1, L_FIX}, // "sprmCFCaps" chp.fCaps;0,1, 128, or 129
+        {0x083C, 1, L_FIX}, // "sprmCFVanish" chp.fVanish;0,1, 128, or 129
+        {0x4A3D, 2, L_FIX}, // "sprmCFtcDefault" ;ftc, only used internally
+        {0x2A3E, 1, L_FIX}, // "sprmCKul" chp.kul;kul;byte;
+        {0xEA3F, 3, L_FIX}, // "sprmCSizePos" chp.hps, chp.hpsPos;3 bytes;
+        {0x8840, 2, L_FIX}, // "sprmCDxaSpace" chp.dxaSpace;dxa;word;
+        {0x4A41, 2, L_FIX}, // "sprmCLid" ;only used internally never stored
+        {0x2A42, 1, L_FIX}, // "sprmCIco" chp.ico;ico;byte;
+        {0x4A43, 2, L_FIX}, // "sprmCHps" chp.hps;hps
+        {0x2A44, 1, L_FIX}, // "sprmCHpsInc" chp.hps;
+        {0x4845, 2, L_FIX}, // "sprmCHpsPos" chp.hpsPos;hps;short; (doc wrong)
+        {0x2A46, 1, L_FIX}, // "sprmCHpsPosAdj" chp.hpsPos;hps
+        {0xCA47, 0, L_VAR}, // "sprmCMajority" chp.fBold, chp.fItalic,
+                            // chp.fSmallCaps, chp.fVanish, chp.fStrike,
+                            // chp.fCaps, chp.rgftc, chp.hps, chp.hpsPos,
+                            // chp.kul, chp.dxaSpace, chp.ico,
+                            // chp.rglid;complex;variable length, length byte
+                            // plus size of following grpprl;
+        {0x2A48, 1, L_FIX}, // "sprmCIss" chp.iss;iss;byte;
+        {0xCA49, 0, L_VAR}, // "sprmCHpsNew50" chp.hps;hps;variable width
+        {0xCA4A, 0, L_VAR}, // "sprmCHpsInc1" chp.hps;complex
+        {0x484B, 2, L_FIX}, // "sprmCHpsKern" chp.hpsKern;hps;short;
+        {0xCA4C, 2, L_FIX}, // "sprmCMajority50" chp.fBold, chp.fItalic,
+                            // chp.fSmallCaps, chp.fVanish, chp.fStrike,
+                            // chp.fCaps, chp.ftc, chp.hps, chp.hpsPos, chp.kul,
+                            // chp.dxaSpace, chp.ico,;complex
+        {0x4A4D, 2, L_FIX}, // "sprmCHpsMul" chp.hps;percentage to grow hps
+        {0x484E, 2, L_FIX}, // "sprmCYsri" chp.ysri;ysri;short;
+        {0x4A4F, 2, L_FIX}, // "sprmCRgFtc0" chp.rgftc[0];ftc for ASCII text
+        {0x4A50, 2, L_FIX}, // "sprmCRgFtc1" chp.rgftc[1];ftc for Far East text
+        {0x4A51, 2, L_FIX}, // "sprmCRgFtc2" chp.rgftc[2];ftc for non-FE text
+        {0x4852, 2, L_FIX}, // "sprmCCharScale"
+        {0x2A53, 1, L_FIX}, // "sprmCFDStrike" chp.fDStrike;;byte;
+        {0x0854, 1, L_FIX}, // "sprmCFImprint" chp.fImprint;1 or 0;bit;
+        {0x0855, 1, L_FIX}, // "sprmCFSpec" chp.fSpec ;1 or 0;bit;
+        {0x0856, 1, L_FIX}, // "sprmCFObj" chp.fObj;1 or 0;bit;
+        {0xCA57, 0, L_VAR}, // "sprmCPropRMark" chp.fPropRMark,
+                            // chp.ibstPropRMark, chp.dttmPropRMark;Complex
+        {0x0858, 1, L_FIX}, // "sprmCFEmboss" chp.fEmboss;1 or 0;bit;
+        {0x2859, 1, L_FIX}, // "sprmCSfxText" chp.sfxtText;text animation;byte;
+        {0x085A, 1, L_FIX}, // "sprmCFBiDi" ;;;
+        {0x085B, 1, L_FIX}, // "sprmCFDiacColor" ;;;
+        {0x085C, 1, L_FIX}, // "sprmCFBoldBi" ;;;
+        {0x085D, 1, L_FIX}, // "sprmCFItalicBi" ;;;
+        {0x4A5E, 2, L_FIX},
+        {0x485F, 2, L_FIX}, // "sprmCLidBi" ;;;
+        {0x4A60, 1, L_FIX}, // "sprmCIcoBi" ;;;
+        {0x4A61, 2, L_FIX}, // "sprmCHpsBi" ;;;
+        {0xCA62, 0, L_VAR}, // "sprmCDispFldRMark" chp.fDispFldRMark,
+                            // chp.ibstDispFldRMark, chp.dttmDispFldRMark ;
+        {0x4863, 2, L_FIX}, // "sprmCIbstRMarkDel" chp.ibstRMarkDel;index into
+                            // sttbRMark;short;
+        {0x6864, 4, L_FIX}, // "sprmCDttmRMarkDel" chp.dttmRMarkDel;DTTM;long;
+        {0x6865, 4, L_FIX}, // "sprmCBrc" chp.brc;BRC;long;
+        {0x4866, 2, L_FIX}, // "sprmCShd" chp.shd;SHD;short;
+        {0x4867, 2, L_FIX}, // "sprmCIdslRMarkDel" chp.idslRMReasonDel;an index
+                            // to a table of strings defined in Word 6.0
+                            // executables;short;
+        {0x0868, 1, L_FIX}, // "sprmCFUsePgsuSettings"
+                            // chp.fUsePgsuSettings;1 or 0
+        {0x486B, 2, L_FIX}, // "sprmCCpg" ;;word;
+        {0x486D, 2, L_FIX}, // "sprmCRgLid0" chp.rglid[0];LID: for non-FE text
+        {0x486E, 2, L_FIX}, // "sprmCRgLid1" chp.rglid[1];LID: for Far East text
+        {0x286F, 1, L_FIX}, // "sprmCIdctHint" chp.idctHint;IDCT:
+        {0x2E00, 1, L_FIX}, // "sprmPicBrcl" pic.brcl;brcl (see PIC definition)
+        {0xCE01, 0, L_VAR}, // "sprmPicScale" pic.mx, pic.my, pic.dxaCropleft,
+                            // pic.dyaCropTop pic.dxaCropRight,
+                            // pic.dyaCropBottom;Complex
+        {0x6C02, 4, L_FIX}, // "sprmPicBrcTop" pic.brcTop;BRC;long;
+        {0x6C03, 4, L_FIX}, // "sprmPicBrcLeft" pic.brcLeft;BRC;long;
+        {0x6C04, 4, L_FIX}, // "sprmPicBrcBottom" pic.brcBottom;BRC;long;
+        {0x6C05, 4, L_FIX}, // "sprmPicBrcRight" pic.brcRight;BRC;long;
+        {0x3000, 1, L_FIX}, // "sprmScnsPgn" sep.cnsPgn;cns;byte;
+        {0x3001, 1, L_FIX}, // "sprmSiHeadingPgn" sep.iHeadingPgn;heading number
+                            // level;byte;
+        {0xD202, 0, L_VAR}, // "sprmSOlstAnm" sep.olstAnm;OLST;variable length;
+        {0xF203, 3, L_FIX}, // "sprmSDxaColWidth" sep.rgdxaColWidthSpacing;
+        {0xF204, 3, L_FIX}, // "sprmSDxaColSpacing" sep.rgdxaColWidthSpacing;
+                            // complex
+        {0x3005, 1, L_FIX}, // "sprmSFEvenlySpaced" sep.fEvenlySpaced;1 or 0
+        {0x3006, 1, L_FIX}, // "sprmSFProtected" sep.fUnlocked;1 or 0;byte;
+        {0x5007, 2, L_FIX}, // "sprmSDmBinFirst" sep.dmBinFirst;;word;
+        {0x5008, 2, L_FIX}, // "sprmSDmBinOther" sep.dmBinOther;;word;
+        {0x3009, 1, L_FIX}, // "sprmSBkc" sep.bkc;bkc;byte;
+        {0x300A, 1, L_FIX}, // "sprmSFTitlePage" sep.fTitlePage;0 or 1;byte;
+        {0x500B, 2, L_FIX}, // "sprmSCcolumns" sep.ccolM1;# of cols - 1;word;
+        {0x900C, 2, L_FIX}, // "sprmSDxaColumns" sep.dxaColumns;dxa;word;
+        {0x300D, 1, L_FIX}, // "sprmSFAutoPgn" sep.fAutoPgn;obsolete;byte;
+        {0x300E, 1, L_FIX}, // "sprmSNfcPgn" sep.nfcPgn;nfc;byte;
+        {0xB00F, 2, L_FIX}, // "sprmSDyaPgn" sep.dyaPgn;dya;short;
+        {0xB010, 2, L_FIX}, // "sprmSDxaPgn" sep.dxaPgn;dya;short;
+        {0x3011, 1, L_FIX}, // "sprmSFPgnRestart" sep.fPgnRestart;0 or 1;byte;
+        {0x3012, 1, L_FIX}, // "sprmSFEndnote" sep.fEndnote;0 or 1;byte;
+        {0x3013, 1, L_FIX}, // "sprmSLnc" sep.lnc;lnc;byte;
+        {0x3014, 1, L_FIX}, // "sprmSGprfIhdt" sep.grpfIhdt;grpfihdt
+        {0x5015, 2, L_FIX}, // "sprmSNLnnMod" sep.nLnnMod;non-neg int.;word;
+        {0x9016, 2, L_FIX}, // "sprmSDxaLnn" sep.dxaLnn;dxa;word;
+        {0xB017, 2, L_FIX}, // "sprmSDyaHdrTop" sep.dyaHdrTop;dya;word;
+        {0xB018, 2, L_FIX}, // "sprmSDyaHdrBottom" sep.dyaHdrBottom;dya;word;
+        {0x3019, 1, L_FIX}, // "sprmSLBetween" sep.fLBetween;0 or 1;byte;
+        {0x301A, 1, L_FIX}, // "sprmSVjc" sep.vjc;vjc;byte;
+        {0x501B, 2, L_FIX}, // "sprmSLnnMin" sep.lnnMin;lnn;word;
+        {0x501C, 2, L_FIX}, // "sprmSPgnStart" sep.pgnStart;pgn;word;
+        {0x301D, 1, L_FIX}, // "sprmSBOrientation" sep.dmOrientPage;dm;byte;
+        {0x301E, 1, L_FIX}, // "sprmSBCustomize" ;;;
+        {0xB01F, 2, L_FIX}, // "sprmSXaPage" sep.xaPage;xa;word;
+        {0xB020, 2, L_FIX}, // "sprmSYaPage" sep.yaPage;ya;word;
+        {0xB021, 2, L_FIX}, // "sprmSDxaLeft" sep.dxaLeft;dxa;word;
+        {0xB022, 2, L_FIX}, // "sprmSDxaRight" sep.dxaRight;dxa;word;
+        {0x9023, 2, L_FIX}, // "sprmSDyaTop" sep.dyaTop;dya;word;
+        {0x9024, 2, L_FIX}, // "sprmSDyaBottom" sep.dyaBottom;dya;word;
+        {0xB025, 2, L_FIX}, // "sprmSDzaGutter" sep.dzaGutter;dza;word;
+        {0x5026, 2, L_FIX}, // "sprmSDmPaperReq" sep.dmPaperReq;dm;word;
+        {0xD227, 0, L_VAR}, // "sprmSPropRMark" sep.fPropRMark,
+                            // sep.ibstPropRMark, sep.dttmPropRMark ;complex
+        {0x3228, 1, L_FIX}, // "sprmSFBiDi" ;;;
+        {0x3229, 1, L_FIX}, // "sprmSFFacingCol" ;;;
+        {0x322A, 1, L_FIX}, // "sprmSFRTLGutter", set to one if gutter is on
+                            // right
+        {0x702B, 4, L_FIX}, // "sprmSBrcTop" sep.brcTop;BRC;long;
+        {0x702C, 4, L_FIX}, // "sprmSBrcLeft" sep.brcLeft;BRC;long;
+        {0x702D, 4, L_FIX}, // "sprmSBrcBottom" sep.brcBottom;BRC;long;
+        {0x702E, 4, L_FIX}, // "sprmSBrcRight" sep.brcRight;BRC;long;
+        {0x522F, 2, L_FIX}, // "sprmSPgbProp" sep.pgbProp;;word;
+        {0x7030, 4, L_FIX}, // "sprmSDxtCharSpace" sep.dxtCharSpace;dxt;long;
+        {0x9031, 2, L_FIX}, // "sprmSDyaLinePitch"
+                            // sep.dyaLinePitch;dya; WRONG:long; RIGHT:short; !
+        {0x5032, 2, L_FIX}, // "sprmSClm" ;;;
+        {0x5033, 2, L_FIX}, // "sprmSTextFlow" sep.wTextFlow;complex
+        {0x5400, 2, L_FIX}, // "sprmTJc" tap.jc;jc;word (low order byte is
+                            // significant);
+        {0x9601, 2, L_FIX}, // "sprmTDxaLeft" tap.rgdxaCenter
+        {0x9602, 2, L_FIX}, // "sprmTDxaGapHalf" tap.dxaGapHalf,
+                            // tap.rgdxaCenter
+        {0x3403, 1, L_FIX}, // "sprmTFCantSplit" tap.fCantSplit;1 or 0;byte;
+        {0x3404, 1, L_FIX}, // "sprmTTableHeader" tap.fTableHeader;1 or 0;byte;
+        {0xD605, 0, L_VAR}, // "sprmTTableBorders" tap.rgbrcTable;complex
+        {0xD606, 0, L_VAR}, // "sprmTDefTable10" tap.rgdxaCenter,
+                            // tap.rgtc;complex
+        {0x9407, 2, L_FIX}, // "sprmTDyaRowHeight" tap.dyaRowHeight;dya;word;
+        {0xD608, 0, L_VAR}, // "sprmTDefTable" tap.rgtc;complex
+        {0xD609, 0, L_VAR}, // "sprmTDefTableShd" tap.rgshd;complex
+        {0x740A, 4, L_FIX}, // "sprmTTlp" tap.tlp;TLP;4 bytes;
+        {0x560B, 2, L_FIX}, // "sprmTFBiDi" ;;;
+=====================================================================
+Found a 73 line (1664 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+	static SfxItemPropertyMap aRangePropertyMap_Impl[] =
+	{
+        {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCOLOR),	ATTR_FONT_COLOR,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_COUTL),	ATTR_FONT_CONTOUR,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCROSS),	ATTR_FONT_CROSSEDOUT,&getBooleanCppuType(),					0, MID_CROSSED_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CEMPHAS),	ATTR_FONT_EMPHASISMARK,&getCppuType((sal_Int16*)0),			0, MID_EMPHASIS },
+		{MAP_CHAR_LEN(SC_UNONAME_CFONT),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFCHARS),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNONAME_CFFAMIL),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFNAME),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFNAME),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFNAME),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CFPITCH),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNONAME_CFSTYLE),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CHEIGHT),	ATTR_FONT_HEIGHT,	&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CHEIGHT),	ATTR_CJK_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CHEIGHT),	ATTR_CTL_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CLOCAL),	ATTR_FONT_LANGUAGE,	&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CLOCAL),	ATTR_CJK_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CLOCAL),	ATTR_CTL_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNONAME_CPOST),	ATTR_FONT_POSTURE,	&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CPOST),	ATTR_CJK_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CPOST),	ATTR_CTL_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNONAME_CRELIEF),	ATTR_FONT_RELIEF,	&getCppuType((sal_Int16*)0),			0, MID_RELIEF },
+		{MAP_CHAR_LEN(SC_UNONAME_CSHADD),	ATTR_FONT_SHADOWED,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CSTRIKE),	ATTR_FONT_CROSSEDOUT,&getCppuType((sal_Int16*)0),			0, MID_CROSS_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDER),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int16*)0),			0, MID_UNDERLINE },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLCOL),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int32*)0),			0, MID_UL_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLHAS),	ATTR_FONT_UNDERLINE,&getBooleanCppuType(),					0, MID_UL_HASCOLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CWEIGHT),	ATTR_FONT_WEIGHT,	&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CWEIGHT),	ATTR_CJK_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CWEIGHT),	ATTR_CTL_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNONAME_CWORDMOD),	ATTR_FONT_WORDLINE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHCOLHDR),	SC_WID_UNO_CHCOLHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHROWHDR),	SC_WID_UNO_CHROWHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0),	0, MID_HORJUST_HORJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
+		{MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
+        {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+=====================================================================
+Found a 197 line (1663 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/lex.c
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_lex.c
+
+enum state
+{
+    START = 0, NUM1, NUM2, NUM3, ID1, ST1, ST2, ST3, COM1, COM2, COM3, COM4,
+    CC1, CC2, WS1, PLUS1, MINUS1, STAR1, SLASH1, PCT1, SHARP1,
+    CIRC1, GT1, GT2, LT1, LT2, OR1, AND1, ASG1, NOT1, DOTS1,
+    S_SELF = MAXSTATE, S_SELFB, S_EOF, S_NL, S_EOFSTR,
+    S_STNL, S_COMNL, S_EOFCOM, S_COMMENT, S_EOB, S_WS, S_NAME
+};
+
+int tottok;
+int tokkind[256];
+struct fsm
+{
+    int state;                          /* if in this state */
+    uchar ch[4];                        /* and see one of these characters */
+    int nextstate;                      /* enter this state if +ve */
+};
+
+ /*const*/ struct fsm fsm[] = {
+    /* start state */
+		 {START, {C_XX}, ACT(UNCLASS, S_SELF)},
+		 {START, {' ', '\t', '\v'}, WS1},
+		 {START, {C_NUM}, NUM1},
+		 {START, {'.'}, NUM3},
+		 {START, {C_ALPH}, ID1},
+		 {START, {'L'}, ST1},
+		 {START, {'"'}, ST2},
+		 {START, {'\''}, CC1},
+		 {START, {'/'}, COM1},
+		 {START, {EOFC}, S_EOF},
+		 {START, {'\n'}, S_NL},
+		 {START, {'-'}, MINUS1},
+		 {START, {'+'}, PLUS1},
+		 {START, {'<'}, LT1},
+		 {START, {'>'}, GT1},
+		 {START, {'='}, ASG1},
+		 {START, {'!'}, NOT1},
+		 {START, {'&'}, AND1},
+		 {START, {'|'}, OR1},
+		 {START, {'#'}, SHARP1},
+		 {START, {'%'}, PCT1},
+		 {START, {'['}, ACT(SBRA, S_SELF)},
+		 {START, {']'}, ACT(SKET, S_SELF)},
+		 {START, {'('}, ACT(LP, S_SELF)},
+		 {START, {')'}, ACT(RP, S_SELF)},
+		 {START, {'*'}, STAR1},
+		 {START, {','}, ACT(COMMA, S_SELF)},
+		 {START, {'?'}, ACT(QUEST, S_SELF)},
+		 {START, {':'}, ACT(COLON, S_SELF)},
+		 {START, {';'}, ACT(SEMIC, S_SELF)},
+		 {START, {'{'}, ACT(CBRA, S_SELF)},
+		 {START, {'}'}, ACT(CKET, S_SELF)},
+		 {START, {'~'}, ACT(TILDE, S_SELF)},
+		 {START, {'^'}, CIRC1},
+
+    /* saw a digit */
+		 {NUM1, {C_XX}, ACT(NUMBER, S_SELFB)},
+		 {NUM1, {C_NUM, C_ALPH, '.'}, NUM1},
+		 {NUM1, {'E', 'e'}, NUM2},
+		 {NUM1, {'_'}, ACT(NUMBER, S_SELFB)},
+
+    /* saw possible start of exponent, digits-e */
+		 {NUM2, {C_XX}, ACT(NUMBER, S_SELFB)},
+		 {NUM2, {'+', '-'}, NUM1},
+		 {NUM2, {C_NUM, C_ALPH}, NUM1},
+		 {NUM2, {'_'}, ACT(NUMBER, S_SELFB)},
+
+    /* saw a '.', which could be a number or an operator */
+		 {NUM3, {C_XX}, ACT(DOT, S_SELFB)},
+		 {NUM3, {'.'}, DOTS1},
+		 {NUM3, {C_NUM}, NUM1},
+
+		 {DOTS1, {C_XX}, ACT(UNCLASS, S_SELFB)},
+		 {DOTS1, {C_NUM}, NUM1},
+		 {DOTS1, {'.'}, ACT(ELLIPS, S_SELF)},
+
+    /* saw a letter or _ */
+		 {ID1, {C_XX}, ACT(NAME, S_NAME)},
+		 {ID1, {C_ALPH, C_NUM}, ID1},
+
+    /* saw L (start of wide string?) */
+		 {ST1, {C_XX}, ACT(NAME, S_NAME)},
+		 {ST1, {C_ALPH, C_NUM}, ID1},
+		 {ST1, {'"'}, ST2},
+		 {ST1, {'\''}, CC1},
+
+    /* saw " beginning string */
+		 {ST2, {C_XX}, ST2},
+		 {ST2, {'"'}, ACT(STRING, S_SELF)},
+		 {ST2, {'\\'}, ST3},
+		 {ST2, {'\n'}, S_STNL},
+		 {ST2, {EOFC}, S_EOFSTR},
+
+    /* saw \ in string */
+		 {ST3, {C_XX}, ST2},
+		 {ST3, {'\n'}, S_STNL},
+		 {ST3, {EOFC}, S_EOFSTR},
+
+    /* saw ' beginning character const */
+		 {CC1, {C_XX}, CC1},
+		 {CC1, {'\''}, ACT(CCON, S_SELF)},
+		 {CC1, {'\\'}, CC2},
+		 {CC1, {'\n'}, S_STNL},
+		 {CC1, {EOFC}, S_EOFSTR},
+
+    /* saw \ in ccon */
+		 {CC2, {C_XX}, CC1},
+		 {CC2, {'\n'}, S_STNL},
+		 {CC2, {EOFC}, S_EOFSTR},
+
+    /* saw /, perhaps start of comment */
+		 {COM1, {C_XX}, ACT(SLASH, S_SELFB)},
+		 {COM1, {'='}, ACT(ASSLASH, S_SELF)},
+		 {COM1, {'*'}, COM2},
+		 {COM1, {'/'}, COM4},
+
+    /* saw / followed by *, start of comment */
+		 {COM2, {C_XX}, COM2},
+		 {COM2, {'\n'}, S_COMNL},
+		 {COM2, {'*'}, COM3},
+		 {COM2, {EOFC}, S_EOFCOM},
+
+    /* saw the * possibly ending a comment */
+		 {COM3, {C_XX}, COM2},
+		 {COM3, {'\n'}, S_COMNL},
+		 {COM3, {'*'}, COM3},
+		 {COM3, {'/'}, S_COMMENT},
+
+    /* // comment */
+		 {COM4, {C_XX}, COM4},
+		 {COM4, {'\n'}, S_NL},
+		 {COM4, {EOFC}, S_EOFCOM},
+
+    /* saw white space, eat it up */
+		 {WS1, {C_XX}, S_WS},
+		 {WS1, {'\t', '\v', ' '}, WS1},
+
+    /* saw -, check --, -=, -> */
+		 {MINUS1, {C_XX}, ACT(MINUS, S_SELFB)},
+		 {MINUS1, {'-'}, ACT(MMINUS, S_SELF)},
+		 {MINUS1, {'='}, ACT(ASMINUS, S_SELF)},
+		 {MINUS1, {'>'}, ACT(ARROW, S_SELF)},
+
+    /* saw +, check ++, += */
+		 {PLUS1, {C_XX}, ACT(PLUS, S_SELFB)},
+		 {PLUS1, {'+'}, ACT(PPLUS, S_SELF)},
+		 {PLUS1, {'='}, ACT(ASPLUS, S_SELF)},
+
+    /* saw <, check <<, <<=, <= */
+		 {LT1, {C_XX}, ACT(LT, S_SELFB)},
+		 {LT1, {'<'}, LT2},
+		 {LT1, {'='}, ACT(LEQ, S_SELF)},
+		 {LT2, {C_XX}, ACT(LSH, S_SELFB)},
+		 {LT2, {'='}, ACT(ASLSH, S_SELF)},
+
+    /* saw >, check >>, >>=, >= */
+		 {GT1, {C_XX}, ACT(GT, S_SELFB)},
+		 {GT1, {'>'}, GT2},
+		 {GT1, {'='}, ACT(GEQ, S_SELF)},
+		 {GT2, {C_XX}, ACT(RSH, S_SELFB)},
+		 {GT2, {'='}, ACT(ASRSH, S_SELF)},
+
+    /* = */
+		 {ASG1, {C_XX}, ACT(ASGN, S_SELFB)},
+		 {ASG1, {'='}, ACT(EQ, S_SELF)},
+
+    /* ! */
+		 {NOT1, {C_XX}, ACT(NOT, S_SELFB)},
+		 {NOT1, {'='}, ACT(NEQ, S_SELF)},
+
+    /* & */
+		 {AND1, {C_XX}, ACT(AND, S_SELFB)},
+		 {AND1, {'&'}, ACT(LAND, S_SELF)},
+		 {AND1, {'='}, ACT(ASAND, S_SELF)},
+
+    /* | */
+		 {OR1, {C_XX}, ACT(OR, S_SELFB)},
+		 {OR1, {'|'}, ACT(LOR, S_SELF)},
+		 {OR1, {'='}, ACT(ASOR, S_SELF)},
+
+    /* # */
+		 {SHARP1, {C_XX}, ACT(SHARP, S_SELFB)},
+		 {SHARP1, {'#'}, ACT(DSHARP, S_SELF)},
+
+    /* % */
+		 {PCT1, {C_XX}, ACT(PCT, S_SELFB)},
+		 {PCT1, {'='}, ACT(ASPCT, S_SELF)},
+
+    /* * */
+		 {STAR1, {C_XX}, ACT(STAR, S_SELFB)},
+		 {STAR1, {'='}, ACT(ASSTAR, S_SELF)},
+
+    /* ^ */
+		 {CIRC1, {C_XX}, ACT(CIRC, S_SELFB)},
+		 {CIRC1, {'='}, ACT(ASCIRC, S_SELF)},
+
+		 {-1, "", 0}
+=====================================================================
+Found a 117 line (1635 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+	virtual ~Test_Impl()
+		{ OSL_TRACE( "> scalar Test_Impl dtor <\n" ); }
+	
+	// XLBTestBase
+    virtual void SAL_CALL setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+									 sal_Int16 nShort, sal_uInt16 nUShort,
+									 sal_Int32 nLong, sal_uInt32 nULong,
+									 sal_Int64 nHyper, sal_uInt64 nUHyper,
+									 float fFloat, double fDouble,
+									 test::TestEnum eEnum, const ::rtl::OUString& rStr,
+									 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									 const ::com::sun::star::uno::Any& rAny,
+									 const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									 const test::TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual test::TestData SAL_CALL setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+												sal_Int16& nShort, sal_uInt16& nUShort,
+												sal_Int32& nLong, sal_uInt32& nULong,
+												sal_Int64& nHyper, sal_uInt64& nUHyper,
+												float& fFloat, double& fDouble,
+												test::TestEnum& eEnum, rtl::OUString& rStr,
+												::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+												::com::sun::star::uno::Any& rAny,
+												::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+												test::TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual test::TestData SAL_CALL getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+											   sal_Int16& nShort, sal_uInt16& nUShort,
+											   sal_Int32& nLong, sal_uInt32& nULong,
+											   sal_Int64& nHyper, sal_uInt64& nUHyper,
+											   float& fFloat, double& fDouble,
+											   test::TestEnum& eEnum, rtl::OUString& rStr,
+											   ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+											   ::com::sun::star::uno::Any& rAny,
+											   ::com::sun::star::uno::Sequence< test::TestElement >& rSequence,
+											   test::TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Bool; }
+    virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Byte; }
+    virtual sal_Unicode SAL_CALL getChar() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Char; }
+    virtual sal_Int16 SAL_CALL getShort() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Short; }
+    virtual sal_uInt16 SAL_CALL getUShort() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.UShort; }
+    virtual sal_Int32 SAL_CALL getLong() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Long; }
+    virtual sal_uInt32 SAL_CALL getULong() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.ULong; }
+    virtual sal_Int64 SAL_CALL getHyper() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Hyper; }
+    virtual sal_uInt64 SAL_CALL getUHyper() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.UHyper; }
+    virtual float SAL_CALL getFloat() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Float; }
+    virtual double SAL_CALL getDouble() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Double; }
+    virtual test::TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Enum; }
+    virtual rtl::OUString SAL_CALL getString() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.String; }
+    virtual com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getInterface(  ) throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Interface; }
+    virtual com::sun::star::uno::Any SAL_CALL getAny() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Any; }
+    virtual com::sun::star::uno::Sequence< test::TestElement > SAL_CALL getSequence() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Sequence; }
+    virtual test::TestData SAL_CALL getStruct() throw(com::sun::star::uno::RuntimeException)
+		{ return _aStructData; }
+
+    virtual void SAL_CALL setBool( sal_Bool _bool ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Bool = _bool; }
+    virtual void SAL_CALL setByte( sal_Int8 _byte ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Byte = _byte; }
+    virtual void SAL_CALL setChar( sal_Unicode _char ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Char = _char; }
+    virtual void SAL_CALL setShort( sal_Int16 _short ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Short = _short; }
+    virtual void SAL_CALL setUShort( sal_uInt16 _ushort ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.UShort = _ushort; }
+    virtual void SAL_CALL setLong( sal_Int32 _long ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Long = _long; }
+    virtual void SAL_CALL setULong( sal_uInt32 _ulong ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.ULong = _ulong; }
+    virtual void SAL_CALL setHyper( sal_Int64 _hyper ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Hyper = _hyper; }
+    virtual void SAL_CALL setUHyper( sal_uInt64 _uhyper ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.UHyper = _uhyper; }
+    virtual void SAL_CALL setFloat( float _float ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Float = _float; }
+    virtual void SAL_CALL setDouble( double _double ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Double = _double; }
+    virtual void SAL_CALL setEnum( test::TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Enum = _enum; }
+    virtual void SAL_CALL setString( const ::rtl::OUString& _string ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.String = _string; }
+    virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _interface ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Interface = _interface; }
+    virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& _any ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Any = _any; }
+    virtual void SAL_CALL setSequence( const ::com::sun::star::uno::Sequence<test::TestElement >& _sequence ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Sequence = _sequence; }
+    virtual void SAL_CALL setStruct( const test::TestData& _struct ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aStructData = _struct; }
+
+	// XLanguageBindingTest
+    virtual test::TestData SAL_CALL raiseException( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, sal_Int16& nShort, sal_uInt16& nUShort, sal_Int32& nLong, sal_uInt32& nULong, sal_Int64& nHyper, sal_uInt64& nUHyper, float& fFloat, double& fDouble, test::TestEnum& eEnum, ::rtl::OUString& aString, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xInterface, ::com::sun::star::uno::Any& aAny, ::com::sun::star::uno::Sequence<test::TestElement >& aSequence,test::TestData& aStruct )
+		throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Int32 SAL_CALL getRuntimeException() throw(::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL setRuntimeException( sal_Int32 _runtimeexception ) throw(::com::sun::star::uno::RuntimeException);
+};
+=====================================================================
+Found a 36 line (1593 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xd5, 0x014F}, {0xd5, 0x0152}, {0xd5, 0x0155}, {0xd5, 0x0158}, {0xd5, 0x015B}, // fb10 - fb17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb18 - fb1f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb20 - fb27
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb28 - fb2f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb30 - fb37
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb38 - fb3f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb40 - fb47
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb48 - fb4f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb50 - fb57
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb58 - fb5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb60 - fb67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb68 - fb6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb70 - fb77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb78 - fb7f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb80 - fb87
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb88 - fb8f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb90 - fb97
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb98 - fb9f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fba0 - fba7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fba8 - fbaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbb0 - fbb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbb8 - fbbf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbc0 - fbc7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbc8 - fbcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbd0 - fbd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbd8 - fbdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbe0 - fbe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbe8 - fbef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbf0 - fbf7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbf8 - fbff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff00 - ff07
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff08 - ff0f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff10 - ff17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff18 - ff1f
+    {0x00, 0x0000}, {0x6a, 0xFF41}, {0x6a, 0xFF42}, {0x6a, 0xFF43}, {0x6a, 0xFF44}, {0x6a, 0xFF45}, {0x6a, 0xFF46}, {0x6a, 0xFF47}, // ff20 - ff27
+=====================================================================
+Found a 194 line (1541 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1813 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso6_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xc0 },
+=====================================================================
+Found a 184 line (1461 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2072 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso7_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x01, 0xdc, 0xb6 },
+=====================================================================
+Found a 27 line (1457 tokens) duplication in the following files: 
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 593 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+/* ` */	                                                            PU+PV      +PY,
+/* a */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* b */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* c */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* d */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* e */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* f */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* g */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* h */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* i */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* j */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* k */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* l */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* m */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* n */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* o */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* p */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* q */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* r */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* s */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* t */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* u */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* v */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* w */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* x */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* y */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* z */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+=====================================================================
+Found a 311 line (1439 tokens) duplication in the following files: 
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/cpp.c
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_cpp.c
+
+    exit(nerrs > 0);
+}
+
+void
+    process(Tokenrow * trp)
+{
+    int anymacros = 0;
+
+    for (;;)
+    {
+        if (trp->tp >= trp->lp)
+        {
+            trp->tp = trp->lp = trp->bp;
+            outptr = outbuf;
+            anymacros |= gettokens(trp, 1);
+            trp->tp = trp->bp;
+        }
+        if (trp->tp->type == END)
+        {
+            if (--incdepth >= 0)
+            {
+                if (cursource->ifdepth)
+                    error(ERROR,
+                          "Unterminated conditional in #include");
+                unsetsource();
+                cursource->line += cursource->lineinc;
+                trp->tp = trp->lp;
+                if (!Pflag)
+                    genline();
+                continue;
+            }
+            if (ifdepth)
+                error(ERROR, "Unterminated #if/#ifdef/#ifndef");
+            break;
+        }
+        if (trp->tp->type == SHARP)
+        {
+            trp->tp += 1;
+            control(trp);
+        }
+        else
+            if (!skipping && anymacros)
+                expandrow(trp, NULL);
+        if (skipping)
+            setempty(trp);
+        puttokens(trp);
+        anymacros = 0;
+        cursource->line += cursource->lineinc;
+        if (cursource->lineinc > 1)
+        {
+            if (!Pflag)
+                genline();
+        }
+    }
+}
+
+void
+    control(Tokenrow * trp)
+{
+    Nlist *np;
+    Token *tp;
+
+    tp = trp->tp;
+    if (tp->type != NAME)
+    {
+        if (tp->type == NUMBER)
+            goto kline;
+        if (tp->type != NL)
+            error(ERROR, "Unidentifiable control line");
+        return;                         /* else empty line */
+    }
+    if ((np = lookup(tp, 0)) == NULL || ((np->flag & ISKW) == 0 && !skipping))
+    {
+        error(WARNING, "Unknown preprocessor control %t", tp);
+        return;
+    }
+    if (skipping)
+    {
+        switch (np->val)
+        {
+            case KENDIF:
+                if (--ifdepth < skipping)
+                    skipping = 0;
+                --cursource->ifdepth;
+                setempty(trp);
+                return;
+
+            case KIFDEF:
+            case KIFNDEF:
+            case KIF:
+                if (++ifdepth >= NIF)
+                    error(FATAL, "#if too deeply nested");
+                ++cursource->ifdepth;
+                return;
+
+            case KELIF:
+            case KELSE:
+                if (ifdepth <= skipping)
+                    break;
+                return;
+
+            default:
+                return;
+        }
+    }
+    switch (np->val)
+    {
+        case KDEFINE:
+            dodefine(trp);
+            break;
+
+        case KUNDEF:
+            tp += 1;
+            if (tp->type != NAME || trp->lp - trp->bp != 4)
+            {
+                error(ERROR, "Syntax error in #undef");
+                break;
+            }
+            if ((np = lookup(tp, 0)) != NULL)
+			{
+                np->flag &= ~ISDEFINED;
+
+				if (Mflag)
+				{
+					if (np->ap)
+						error(INFO, "Macro deletion of %s(%r)", np->name, np->ap);
+					else
+						error(INFO, "Macro deletion of %s", np->name);
+				}
+			}
+            break;
+
+        case KPRAGMA:
+        case KIDENT:
+			for (tp = trp->tp - 1; ((tp->type != NL) && (tp < trp->lp)); tp++)
+				tp->type = UNCLASS;
+            return;
+
+        case KIFDEF:
+        case KIFNDEF:
+        case KIF:
+            if (++ifdepth >= NIF)
+                error(FATAL, "#if too deeply nested");
+            ++cursource->ifdepth;
+            ifsatisfied[ifdepth] = 0;
+            if (eval(trp, np->val))
+                ifsatisfied[ifdepth] = 1;
+            else
+                skipping = ifdepth;
+            break;
+
+        case KELIF:
+            if (ifdepth == 0)
+            {
+                error(ERROR, "#elif with no #if");
+                return;
+            }
+            if (ifsatisfied[ifdepth] == 2)
+                error(ERROR, "#elif after #else");
+            if (eval(trp, np->val))
+            {
+                if (ifsatisfied[ifdepth])
+                    skipping = ifdepth;
+                else
+                {
+                    skipping = 0;
+                    ifsatisfied[ifdepth] = 1;
+                }
+            }
+            else
+                skipping = ifdepth;
+            break;
+
+        case KELSE:
+            if (ifdepth == 0 || cursource->ifdepth == 0)
+            {
+                error(ERROR, "#else with no #if");
+                return;
+            }
+            if (ifsatisfied[ifdepth] == 2)
+                error(ERROR, "#else after #else");
+            if (trp->lp - trp->bp != 3)
+                error(ERROR, "Syntax error in #else");
+            skipping = ifsatisfied[ifdepth] ? ifdepth : 0;
+            ifsatisfied[ifdepth] = 2;
+            break;
+
+        case KENDIF:
+            if (ifdepth == 0 || cursource->ifdepth == 0)
+            {
+                error(ERROR, "#endif with no #if");
+                return;
+            }
+            --ifdepth;
+            --cursource->ifdepth;
+            if (trp->lp - trp->bp != 3)
+                error(WARNING, "Syntax error in #endif");
+            break;
+
+        case KERROR:
+            trp->tp = tp + 1;
+            error(WARNING, "#error directive: %r", trp);
+            break;
+
+        case KLINE:
+            trp->tp = tp + 1;
+            expandrow(trp, "<line>");
+            tp = trp->bp + 2;
+    kline:
+            if (tp + 1 >= trp->lp || tp->type != NUMBER || tp + 3 < trp->lp
+                || (tp + 3 == trp->lp
+                    && ((tp + 1)->type != STRING || *(tp + 1)->t == 'L')))
+            {
+                error(ERROR, "Syntax error in #line");
+                return;
+            }
+            cursource->line = atol((char *) tp->t) - 1;
+            if (cursource->line < 0 || cursource->line >= 32768)
+                error(WARNING, "#line specifies number out of range");
+            tp = tp + 1;
+            if (tp + 1 < trp->lp)
+                cursource->filename = (char *) newstring(tp->t + 1, tp->len - 2, 0);
+            return;
+
+        case KDEFINED:
+            error(ERROR, "Bad syntax for control line");
+            break;
+
+		case KIMPORT:
+            doinclude(trp, -1, 1);
+            trp->lp = trp->bp;
+			return;
+
+        case KINCLUDE:
+            doinclude(trp, -1, 0);
+            trp->lp = trp->bp;
+            return;
+
+        case KINCLUDENEXT:
+            doinclude(trp, cursource->pathdepth, 0);
+            trp->lp = trp->bp;
+            return;
+
+        case KEVAL:
+            eval(trp, np->val);
+            break;
+
+        default:
+            error(ERROR, "Preprocessor control `%t' not yet implemented", tp);
+            break;
+    }
+    setempty(trp);
+    return;
+}
+
+void *
+    domalloc(int size)
+{
+    void *p = malloc(size);
+
+    if (p == NULL)
+        error(FATAL, "Out of memory from malloc");
+    return p;
+}
+
+void
+    dofree(void *p)
+{
+    free(p);
+}
+
+void
+    error(enum errtype type, char *string,...)
+{
+    va_list ap;
+    char c, *cp, *ep;
+    Token *tp;
+    Tokenrow *trp;
+    Source *s;
+    int i;
+
+    fprintf(stderr, "cpp: ");
+    for (s = cursource; s; s = s->next)
+        if (*s->filename)
+            fprintf(stderr, "%s:%d ", s->filename, s->line);
+    va_start(ap, string);
+    for (ep = string; *ep; ep++)
+    {
+        if (*ep == '%')
+        {
+            switch (*++ep)
+            {
+
+                case 'c':
+                    c = (char) va_arg(ap, int);
+                    fprintf(stderr, "%c", c);
+                    break;
+
+				case 's':
+                    cp = va_arg(ap, char *);
+                    fprintf(stderr, "%s", cp);
+                    break;
+
+                case 'd':
+                    i = va_arg(ap, int);
+                    fprintf(stderr, "%d", i);
+                    break;
+
+                case 't':
+                    tp = va_arg(ap, Token *);
+                    fprintf(stderr, "%.*s", (int)tp->len, tp->t);
+=====================================================================
+Found a 114 line (1411 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc40/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc45/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc50/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tcc20/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/msc51/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/msc60/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int If_root_path ANSI((char *));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+void Clean_up_processes ANSI(());
+int Wait_for_child ANSI((int, int));
+time_t seek_arch ANSI((char*, char*));
+int touch_arch ANSI((char*, char*));
+int dchdir ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int spawnvpe ANSI((int, char *, char **, char **));
+void Hook_std_writes ANSI((char *));
+void dstrlwr ANSI((char *, char *));
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 177 line (1405 tokens) duplication in the following files: 
+Starting at line 776 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1295 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso4_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x01, 0xb1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x01, 0xb3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x01, 0xb5, 0xa5 },
+{ 0x01, 0xb6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x01, 0xb9, 0xa9 },
+{ 0x01, 0xba, 0xaa },
+{ 0x01, 0xbb, 0xab },
+{ 0x01, 0xbc, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x01, 0xbe, 0xae },
+{ 0x00, 0xaf, 0xaf },
+=====================================================================
+Found a 113 line (1391 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/icc/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/icc3/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int _dchdir ANSI((char *));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+void SetSessionTitle ANSI((char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+int If_root_path ANSI((char *));
+time_t seek_arch ANSI((char*, char*));
+int touch_arch ANSI((char*, char*));
+void dstrlwr ANSI((char *, char *));
+void Remove_prq ANSI((CELLPTR));
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 326 line (1387 tokens) duplication in the following files: 
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/eval.c
+Starting at line 390 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_eval.c
+
+    struct value v2 = { 0, UND };
+    long rv1, rv2;
+    int rtype, oper;
+
+    rv2 = 0;
+    rtype = 0;
+    while (pri.pri < priority[op[-1]].pri)
+    {
+        oper = *--op;
+        if (priority[oper].arity == 2)
+        {
+            v2 = *--vp;
+            rv2 = v2.val;
+        }
+        v1 = *--vp;
+        rv1 = v1.val;
+/*lint -e574 -e644 */
+        switch (priority[oper].ctype)
+        {
+            case 0:
+            default:
+                error(WARNING, "Syntax error in #if/#endif");
+                return 1;
+            case ARITH:
+            case RELAT:
+                if (v1.type == UNS || v2.type == UNS)
+                    rtype = UNS;
+                else
+                    rtype = SGN;
+                if (v1.type == UND || v2.type == UND)
+                    rtype = UND;
+                if (priority[oper].ctype == RELAT && rtype == UNS)
+                {
+                    oper |= UNSMARK;
+                    rtype = SGN;
+                }
+                break;
+            case SHIFT:
+                if (v1.type == UND || v2.type == UND)
+                    rtype = UND;
+                else
+                    rtype = v1.type;
+                if (rtype == UNS)
+                    oper |= UNSMARK;
+                break;
+            case UNARY:
+                rtype = v1.type;
+                break;
+            case LOGIC:
+            case SPCL:
+                break;
+        }
+        switch (oper)
+        {
+            case EQ:
+            case EQ | UNSMARK:
+                rv1 = rv1 == rv2;
+                break;
+            case NEQ:
+            case NEQ | UNSMARK:
+                rv1 = rv1 != rv2;
+                break;
+            case LEQ:
+                rv1 = rv1 <= rv2;
+                break;
+            case GEQ:
+                rv1 = rv1 >= rv2;
+                break;
+            case LT:
+                rv1 = rv1 < rv2;
+                break;
+            case GT:
+                rv1 = rv1 > rv2;
+                break;
+            case LEQ | UNSMARK:
+                rv1 = (unsigned long)rv1 <= (unsigned long)rv2;
+                break;
+            case GEQ | UNSMARK:
+                rv1 = (unsigned long)rv1 >= (unsigned long)rv2;
+                break;
+            case LT | UNSMARK:
+                rv1 = (unsigned long)rv1 < (unsigned long)rv2;
+                break;
+            case GT | UNSMARK:
+                rv1 = (unsigned long)rv1 > (unsigned long)rv2;
+                break;
+            case LSH:
+                rv1 <<= rv2;
+                break;
+            case LSH | UNSMARK:
+                rv1 = (unsigned long) rv1 << rv2;
+                break;
+            case RSH:
+                rv1 >>= rv2;
+                break;
+            case RSH | UNSMARK:
+                rv1 = (unsigned long) rv1 >> rv2;
+                break;
+            case LAND:
+                rtype = UND;
+                if (v1.type == UND)
+                    break;
+                if (rv1 != 0)
+                {
+                    if (v2.type == UND)
+                        break;
+                    rv1 = rv2 != 0;
+                }
+                else
+                    rv1 = 0;
+                rtype = SGN;
+                break;
+            case LOR:
+                rtype = UND;
+                if (v1.type == UND)
+                    break;
+                if (rv1 == 0)
+                {
+                    if (v2.type == UND)
+                        break;
+                    rv1 = rv2 != 0;
+                }
+                else
+                    rv1 = 1;
+                rtype = SGN;
+                break;
+            case AND:
+                rv1 &= rv2;
+                break;
+            case STAR:
+                rv1 *= rv2;
+                break;
+            case PLUS:
+                rv1 += rv2;
+                break;
+            case MINUS:
+                rv1 -= rv2;
+                break;
+            case UMINUS:
+                if (v1.type == UND)
+                    rtype = UND;
+                rv1 = -rv1;
+                break;
+            case OR:
+                rv1 |= rv2;
+                break;
+            case CIRC:
+                rv1 ^= rv2;
+                break;
+            case TILDE:
+                rv1 = ~rv1;
+                break;
+            case NOT:
+                rv1 = !rv1;
+                if (rtype != UND)
+                    rtype = SGN;
+                break;
+            case SLASH:
+                if (rv2 == 0)
+                {
+                    rtype = UND;
+                    break;
+                }
+                if (rtype == UNS)
+                    rv1 /= (unsigned long) rv2;
+                else
+                    rv1 /= rv2;
+                break;
+            case PCT:
+                if (rv2 == 0)
+                {
+                    rtype = UND;
+                    break;
+                }
+                if (rtype == UNS)
+                    rv1 %= (unsigned long) rv2;
+                else
+                    rv1 %= rv2;
+                break;
+            case COLON:
+                if (op[-1] != QUEST)
+                    error(ERROR, "Bad ?: in #if/endif");
+                else
+                {
+                    op--;
+                    if ((--vp)->val == 0)
+                        v1 = v2;
+                    rtype = v1.type;
+                    rv1 = v1.val;
+                }
+                break;
+
+            case DEFINED:
+            case ARCHITECTURE:
+                break;
+
+            default:
+                error(ERROR, "Eval botch (unknown operator)");
+                return 1;
+        }
+/*lint +e574 +e644 */
+        v1.val = rv1;
+        v1.type = rtype;
+        *vp++ = v1;
+    }
+    return 0;
+}
+
+struct value
+    tokval(Token * tp)
+{
+    struct value v;
+    Nlist *np;
+    int i, base;
+    unsigned long n;
+    uchar *p, c;
+
+    v.type = SGN;
+    v.val = 0;
+    switch (tp->type)
+    {
+
+        case NAME:
+            v.val = 0;
+            break;
+
+        case NAME1:
+            if ((np = lookup(tp, 0)) != NULL && np->flag & (ISDEFINED | ISMAC))
+                v.val = 1;
+            break;
+
+        case NAME2:
+            if ((np = lookup(tp, 0)) != NULL && np->flag & (ISARCHITECTURE))
+                v.val = 1;
+            break;
+
+        case NUMBER:
+            n = 0;
+            base = 10;
+            p = tp->t;
+            c = p[tp->len];
+            p[tp->len] = '\0';
+            if (*p == '0')
+            {
+                base = 8;
+                if (p[1] == 'x' || p[1] == 'X')
+                {
+                    base = 16;
+                    p++;
+                }
+                p++;
+            }
+            for (;; p++)
+            {
+                if ((i = digit(*p)) < 0)
+                    break;
+                if (i >= base)
+                    error(WARNING,
+                          "Bad digit in number %t", tp);
+                n *= base;
+                n += i;
+            }
+            if (n >= 0x80000000 && base != 10)
+                v.type = UNS;
+            for (; *p; p++)
+            {
+                if (*p == 'u' || *p == 'U')
+                    v.type = UNS;
+                else
+                    if (*p == 'l' || *p == 'L')
+                        ;
+                    else
+                    {
+                        error(ERROR,
+                              "Bad number %t in #if/#elsif", tp);
+                        break;
+                    }
+            }
+            v.val = n;
+            tp->t[tp->len] = c;
+            break;
+
+        case CCON:
+            n = 0;
+            p = tp->t;
+            if (*p == 'L')
+            {
+                p += 1;
+                error(WARNING, "Wide char constant value undefined");
+            }
+            p += 1;
+            if (*p == '\\')
+            {
+                p += 1;
+                if ((i = digit(*p)) >= 0 && i <= 7)
+                {
+                    n = i;
+                    p += 1;
+                    if ((i = digit(*p)) >= 0 && i <= 7)
+                    {
+                        p += 1;
+                        n <<= 3;
+                        n += i;
+                        if ((i = digit(*p)) >= 0 && i <= 7)
+                        {
+                            p += 1;
+                            n <<= 3;
+                            n += i;
+                        }
+                    }
+                }
+                else
+                    if (*p == 'x')
+                    {
+                        p += 1;
+                        while ((i = digit(*p)) >= 0 && i <= 15)
+                        {
+                            p += 1;
+                            n <<= 4;
+                            n += i;
+                        }
+                    }
+                    else
+                    {
+                        static char cvcon[]
+                        = "b\bf\fn\nr\rt\tv\v''\"\"??\\\\";
+=====================================================================
+Found a 112 line (1381 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/bcc50/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/borland/bcc50/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int dchdir ANSI((char *));
+void dstrlwr ANSI((char *, char *));
+time_t seek_arch ANSI((char*, char*));
+int touch_arch ANSI((char*, char*));
+int If_root_path ANSI((char *));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+void Remove_prq ANSI((CELLPTR));
+=====================================================================
+Found a 112 line (1381 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/linux/gnu/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+const int in_quit ANSI((void));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 111 line (1371 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/uw/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/vf/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsdarm32/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/coherent/ver40/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/coherent/ver42/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/gnu/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr1/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/pwd/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr4/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/xenix/pwd/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/xenix/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 111 line (1369 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/vpp40/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/microsft/vpp40/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/mingw/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/msvc6/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int dchdir ANSI((char *));
+void dstrlwr ANSI((char *, char *));
+time_t seek_arch ANSI((char*, char*));
+int touch_arch ANSI((char*, char*));
+int If_root_path ANSI((char *));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+void Clean_up_processes ANSI(());
+int Wait_for_child ANSI((int, int));
+void Remove_prq ANSI((CELLPTR));
+=====================================================================
+Found a 110 line (1356 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/zortech/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int If_root_path ANSI((char *));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+void Clean_up_processes ANSI(());
+int Wait_for_child ANSI((int, int));
+time_t seek_arch ANSI((char*, char*));
+int touch_arch ANSI((char*, char*));
+int dchdir ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+=====================================================================
+Found a 145 line (1344 tokens) duplication in the following files: 
+Starting at line 3394 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3745 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+				pResMat->PutDouble(exp(pMatNewX->GetDouble(i)*m+b), i);
+		}
+	}
+	else
+	{
+		SCSIZE i, j, k;
+		ScMatrixRef pQ = GetNewMat(M+1, M+2);
+		ScMatrixRef pE = GetNewMat(M+2, 1);
+		pE->PutDouble(0.0, M+1);
+		pQ->FillDouble(0.0, 0, 0, M, M+1);
+		if (nCase == 2)
+		{
+			for (k = 0; k < N; k++)
+			{
+				pE->PutDouble(
+					pE->GetDouble(M+1)+pMatY->GetDouble(k)*pMatY->GetDouble(k), M+1);
+				pQ->PutDouble(pQ->GetDouble(0, M+1) + pMatY->GetDouble(k), 0,	M+1);
+				pE->PutDouble(pQ->GetDouble(0, M+1), 0);
+				for (i = 0; i < M; i++)
+				{
+					pQ->PutDouble(pQ->GetDouble(0, i+1)+pMatX->GetDouble(i,k), 0, i+1);
+					pQ->PutDouble(pQ->GetDouble(0, i+1), i+1, 0);
+					pQ->PutDouble(pQ->GetDouble(i+1, M+1) +
+							 pMatX->GetDouble(i,k)*pMatY->GetDouble(k), i+1, M+1);
+					pE->PutDouble(pQ->GetDouble(i+1, M+1), i+1);
+					for (j = i; j < M; j++)
+					{
+						pQ->PutDouble(pQ->GetDouble(j+1, i+1) +
+							 pMatX->GetDouble(i,k)*pMatX->GetDouble(j,k), j+1, i+1);
+						pQ->PutDouble(pQ->GetDouble(j+1, i+1), i+1, j+1);
+					}
+				}
+			}
+		}
+		else
+		{
+			for (k = 0; k < N; k++)
+			{
+				pE->PutDouble(
+					pE->GetDouble(M+1)+pMatY->GetDouble(k)*pMatY->GetDouble(k), M+1);
+				pQ->PutDouble(pQ->GetDouble(0, M+1) + pMatY->GetDouble(k), 0,	M+1);
+				pE->PutDouble(pQ->GetDouble(0, M+1), 0);
+				for (i = 0; i < M; i++)
+				{
+					pQ->PutDouble(pQ->GetDouble(0, i+1)+pMatX->GetDouble(k,i), 0, i+1);
+					pQ->PutDouble(pQ->GetDouble(0, i+1), i+1, 0);
+					pQ->PutDouble(pQ->GetDouble(i+1, M+1) +
+							 pMatX->GetDouble(k,i)*pMatY->GetDouble(k), i+1, M+1);
+					pE->PutDouble(pQ->GetDouble(i+1, M+1), i+1);
+					for (j = i; j < M; j++)
+					{
+						pQ->PutDouble(pQ->GetDouble(j+1, i+1) +
+							 pMatX->GetDouble(k, i)*pMatX->GetDouble(k, j), j+1, i+1);
+						pQ->PutDouble(pQ->GetDouble(j+1, i+1), i+1, j+1);
+					}
+				}
+			}
+		}
+		pQ->PutDouble((double)N, 0, 0);
+		if (bConstant)
+		{
+			SCSIZE S, L;
+			for (S = 0; S < M+1; S++)
+			{
+				i = S;
+				while (i < M+1 && pQ->GetDouble(i, S) == 0.0)
+					i++;
+				if (i >= M+1)
+				{
+					SetNoValue();
+					return;
+				}
+				double fVal;
+				for (L = 0; L < M+2; L++)
+				{
+					fVal = pQ->GetDouble(S, L);
+					pQ->PutDouble(pQ->GetDouble(i, L), S, L);
+					pQ->PutDouble(fVal, i, L);
+				}
+				fVal = 1.0/pQ->GetDouble(S, S);
+				for (L = 0; L < M+2; L++)
+					pQ->PutDouble(pQ->GetDouble(S, L)*fVal, S, L);
+				for (i = 0; i < M+1; i++)
+				{
+					if (i != S)
+					{
+						fVal = -pQ->GetDouble(i, S);
+						for (L = 0; L < M+2; L++)
+							pQ->PutDouble(
+								pQ->GetDouble(i,L)+fVal*pQ->GetDouble(S,L),i,L);
+					}
+				}
+			}
+		}
+		else
+		{
+			SCSIZE S, L;
+			for (S = 1; S < M+1; S++)
+			{
+				i = S;
+				while (i < M+1 && pQ->GetDouble(i, S) == 0.0)
+					i++;
+				if (i >= M+1)
+				{
+					SetNoValue();
+					return;
+				}
+				double fVal;
+				for (L = 1; L < M+2; L++)
+				{
+					fVal = pQ->GetDouble(S, L);
+					pQ->PutDouble(pQ->GetDouble(i, L), S, L);
+					pQ->PutDouble(fVal, i, L);
+				}
+				fVal = 1.0/pQ->GetDouble(S, S);
+				for (L = 1; L < M+2; L++)
+					pQ->PutDouble(pQ->GetDouble(S, L)*fVal, S, L);
+				for (i = 1; i < M+1; i++)
+				{
+					if (i != S)
+					{
+						fVal = -pQ->GetDouble(i, S);
+						for (L = 1; L < M+2; L++)
+							pQ->PutDouble(
+								pQ->GetDouble(i,L)+fVal*pQ->GetDouble(S,L),i,L);
+					}
+				}
+				pQ->PutDouble(0.0, 0, M+1);
+			}
+		}
+		if (nCase == 2)
+		{
+			pResMat = GetNewMat(1, nRXN);
+			if (!pResMat)
+			{
+				PushError();
+				return;
+			}
+			double fVal;
+			for (i = 0; i < nRXN; i++)
+			{
+				fVal = pQ->GetDouble(0, M+1);
+				for (j = 0; j < M; j++)
+					fVal += pQ->GetDouble(j+1, M+1)*pMatNewX->GetDouble(j, i);
+				pResMat->PutDouble(exp(fVal), i);
+=====================================================================
+Found a 108 line (1341 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/bcc50/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/vpp40/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int dchdir ANSI((char *));
+void dstrlwr ANSI((char *, char *));
+time_t seek_arch ANSI((char*, char*));
+int touch_arch ANSI((char*, char*));
+int If_root_path ANSI((char *));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+=====================================================================
+Found a 168 line (1333 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4404 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso15_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x01, 0xa8, 0xa6 },
+=====================================================================
+Found a 285 line (1331 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/ipwin.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/hatchwindow/ipwin.cxx
+
+	aSelPos = GetOuterRectPixel().TopLeft(); // Start-Position merken
+	pWin->CaptureMouse();
+}
+
+/*************************************************************************
+|*    SvResizeHelper::SelectMove()
+|*
+|*    Beschreibung
+*************************************************************************/
+short SvResizeHelper::SelectMove( Window * pWin, const Point & rPos )
+{
+	if( -1 == nGrab )
+	{
+		if( bResizeable )
+		{
+			Rectangle aRects[ 8 ];
+			FillHandleRectsPixel( aRects );
+			for( USHORT i = 0; i < 8; i++ )
+				if( aRects[ i ].IsInside( rPos ) )
+					return i;
+		}
+		// Move-Rect ueberlappen Handles
+		Rectangle aMoveRects[ 4 ];
+		FillMoveRectsPixel( aMoveRects );
+		for( USHORT i = 0; i < 4; i++ )
+			if( aMoveRects[ i ].IsInside( rPos ) )
+				return 8;
+	}
+	else
+	{
+		Rectangle aRect( GetTrackRectPixel( rPos ) );
+		aRect.SetSize( pWin->PixelToLogic( aRect.GetSize() ) );
+		aRect.SetPos( pWin->PixelToLogic( aRect.TopLeft() ) );
+		pWin->ShowTracking( aRect );
+	}
+	return nGrab;
+}
+
+Point SvResizeHelper::GetTrackPosPixel( const Rectangle & rRect ) const
+{
+	// wie das Rechteck zurueckkommt ist egal, es zaehlt welches Handle
+	// initial angefasst wurde
+	Point aPos;
+	Rectangle aRect( rRect );
+	aRect.Justify();
+	// nur wegen EMPTY_RECT
+	Point aBR = aOuter.BottomRight();
+	Point aTR = aOuter.TopRight();
+	Point aBL = aOuter.BottomLeft();
+	switch( nGrab )
+	{
+		case 0:
+			aPos = aRect.TopLeft() - aOuter.TopLeft();
+			break;
+		case 1:
+			aPos.Y() =  aRect.Top() - aOuter.Top();
+			break;
+		case 2:
+			aPos =  aRect.TopRight() - aTR;
+			break;
+		case 3:
+			aPos.X() = aRect.Right() - aTR.X();
+			break;
+		case 4:
+			aPos =  aRect.BottomRight() - aBR;
+			break;
+		case 5:
+			aPos.Y() = aRect.Bottom() - aBR.Y();
+			break;
+		case 6:
+			aPos =  aRect.BottomLeft() - aBL;
+			break;
+		case 7:
+			aPos.X() = aRect.Left() - aOuter.Left();
+			break;
+		case 8:
+			aPos = aRect.TopLeft() - aOuter.TopLeft();
+			break;
+	}
+	return aPos += aSelPos;
+}
+
+/*************************************************************************
+|*    SvResizeHelper::GetTrackRectPixel()
+|*
+|*    Beschreibung
+*************************************************************************/
+Rectangle SvResizeHelper::GetTrackRectPixel( const Point & rTrackPos ) const
+{
+	Rectangle aTrackRect;
+	if( -1 != nGrab )
+	{
+		Point aDiff = rTrackPos - aSelPos;
+		aTrackRect = aOuter;
+		Point aBR = aOuter.BottomRight();
+		switch( nGrab )
+		{
+			case 0:
+				aTrackRect.Top() += aDiff.Y();
+				aTrackRect.Left() += aDiff.X();
+				break;
+			case 1:
+				aTrackRect.Top() += aDiff.Y();
+				break;
+			case 2:
+				aTrackRect.Top() += aDiff.Y();
+				aTrackRect.Right() = aBR.X() + aDiff.X();
+				break;
+			case 3:
+				aTrackRect.Right() = aBR.X() + aDiff.X();
+				break;
+			case 4:
+				aTrackRect.Bottom() = aBR.Y() + aDiff.Y();
+				aTrackRect.Right() = aBR.X() + aDiff.X();
+				break;
+			case 5:
+				aTrackRect.Bottom() = aBR.Y() + aDiff.Y();
+				break;
+			case 6:
+				aTrackRect.Bottom() = aBR.Y() + aDiff.Y();
+				aTrackRect.Left() += aDiff.X();
+				break;
+			case 7:
+				aTrackRect.Left() += aDiff.X();
+				break;
+			case 8:
+				aTrackRect.SetPos( aTrackRect.TopLeft() + aDiff );
+				break;
+/*
+			case 0:
+				aTrackRect = Rectangle( rTrackPos, aOuter.BottomRight() );
+				break;
+			case 1:
+				aTrackRect = Rectangle( Point( aOuter.Left(), rTrackPos.Y() ),
+										 aOuter.BottomRight() );
+				break;
+			case 2:
+				aTrackRect = Rectangle( rTrackPos, aOuter.BottomLeft() );
+				break;
+			case 3:
+				aTrackRect = Rectangle( Point( rTrackPos.X(), aOuter.Top() ),
+										 aOuter.BottomLeft() );
+				break;
+			case 4:
+				aTrackRect = Rectangle( rTrackPos, aOuter.TopLeft() );
+				break;
+			case 5:
+				aTrackRect = Rectangle( aOuter.TopLeft(),
+									 Point( aOuter.Right(), rTrackPos.Y() ) );
+				break;
+			case 6:
+				aTrackRect = Rectangle( aOuter.TopRight(), rTrackPos );
+				break;
+			case 7:
+				aTrackRect = Rectangle( Point( rTrackPos.X(), aOuter.Top() ),
+										 aOuter.BottomRight() );
+				break;
+			case 8:
+				aTrackRect = Rectangle( aOuter.TopLeft() + rTrackPos - aSelPos,
+										aOuter.GetSize() );
+				break;
+*/
+		}
+	}
+	return aTrackRect;
+}
+
+void SvResizeHelper::ValidateRect( Rectangle & rValidate ) const
+{
+	switch( nGrab )
+	{
+		case 0:
+			if( rValidate.Top() > rValidate.Bottom() )
+			{
+				rValidate.Top() = rValidate.Bottom();
+				rValidate.Bottom() = RECT_EMPTY;
+			}
+			if( rValidate.Left() > rValidate.Right() )
+			{
+				rValidate.Left() = rValidate.Right();
+				rValidate.Right() = RECT_EMPTY;
+			}
+			break;
+		case 1:
+			if( rValidate.Top() > rValidate.Bottom() )
+			{
+				rValidate.Top() = rValidate.Bottom();
+				rValidate.Bottom() = RECT_EMPTY;
+			}
+			break;
+		case 2:
+			if( rValidate.Top() > rValidate.Bottom() )
+			{
+				rValidate.Top() = rValidate.Bottom();
+				rValidate.Bottom() = RECT_EMPTY;
+			}
+			if( rValidate.Left() > rValidate.Right() )
+				rValidate.Right() = RECT_EMPTY;
+			break;
+		case 3:
+			if( rValidate.Left() > rValidate.Right() )
+				rValidate.Right() = RECT_EMPTY;
+			break;
+		case 4:
+			if( rValidate.Top() > rValidate.Bottom() )
+				rValidate.Bottom() = RECT_EMPTY;
+			if( rValidate.Left() > rValidate.Right() )
+				rValidate.Right() = RECT_EMPTY;
+			break;
+		case 5:
+			if( rValidate.Top() > rValidate.Bottom() )
+				rValidate.Bottom() = RECT_EMPTY;
+			break;
+		case 6:
+			if( rValidate.Top() > rValidate.Bottom() )
+				rValidate.Bottom() = RECT_EMPTY;
+			if( rValidate.Left() > rValidate.Right() )
+			{
+				rValidate.Left() = rValidate.Right();
+				rValidate.Right() = RECT_EMPTY;
+			}
+			break;
+		case 7:
+			if( rValidate.Left() > rValidate.Right() )
+			{
+				rValidate.Left() = rValidate.Right();
+				rValidate.Right() = RECT_EMPTY;
+			}
+			break;
+	}
+	if( rValidate.Right() == RECT_EMPTY )
+		rValidate.Right() = rValidate.Left();
+	if( rValidate.Bottom() == RECT_EMPTY )
+		rValidate.Bottom() = rValidate.Top();
+
+	// Mindestgr"osse 5 x 5
+	if( rValidate.Left() + 5 > rValidate.Right() )
+		rValidate.Right() = rValidate.Left() +5;
+	if( rValidate.Top() + 5 > rValidate.Bottom() )
+		rValidate.Bottom() = rValidate.Top() +5;
+}
+
+/*************************************************************************
+|*    SvResizeHelper::SelectRelease()
+|*
+|*    Beschreibung
+*************************************************************************/
+BOOL SvResizeHelper::SelectRelease( Window * pWin, const Point & rPos,
+									Rectangle & rOutPosSize )
+{
+	if( -1 != nGrab )
+	{
+		rOutPosSize = GetTrackRectPixel( rPos );
+		rOutPosSize.Justify();
+		nGrab = -1;
+		pWin->ReleaseMouse();
+		pWin->HideTracking();
+		return TRUE;
+	}
+	return FALSE;
+}
+
+/*************************************************************************
+|*    SvResizeHelper::Release()
+|*
+|*    Beschreibung
+*************************************************************************/
+void SvResizeHelper::Release( Window * pWin )
+{
+	if( nGrab != -1 )
+	{
+		pWin->ReleaseMouse();
+		pWin->HideTracking();
+		nGrab = -1;
+	}
+}
+
+/*************************************************************************
+|*    SvResizeWindow::SvResizeWindow()
+|*
+|*    Beschreibung
+*************************************************************************/
+SvResizeWindow::SvResizeWindow
+(
+	Window * pParent,
+=====================================================================
+Found a 133 line (1330 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/testcomp.cxx
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/performance/ubobject.cxx
+
+	return Sequence< OUString >( &aName, 1 );
+}
+
+//==================================================================================================
+class ServiceImpl
+	: public XServiceInfo
+	, public XPerformanceTest
+{
+	OUString _aDummyString;
+	Any _aDummyAny;
+	Sequence< Reference< XInterface > > _aDummySequence;
+	ComplexTypes _aDummyStruct;
+	RuntimeException _aDummyRE;
+
+	sal_Int32 _nRef;
+	
+public:
+	ServiceImpl()
+		: _nRef( 0 )
+		{}
+	ServiceImpl( const Reference< XMultiServiceFactory > & xMgr )
+		: _nRef( 0 )
+		{}
+	
+	// XInterface
+    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException)
+	{
+		// execution time remains appr. constant any time
+		Any aRet;
+		if (aType == ::getCppuType( (const Reference< XInterface > *)0 ))
+		{
+			void * p = (XInterface *)(XPerformanceTest *)this;
+			aRet.setValue( &p, ::getCppuType( (const Reference< XInterface > *)0 ) );
+		}
+		if (aType == ::getCppuType( (const Reference< XPerformanceTest > *)0 ))
+		{
+			void * p = (XPerformanceTest *)this;
+			aRet.setValue( &p, ::getCppuType( (const Reference< XPerformanceTest > *)0 ) );
+		}
+		if (! aRet.hasValue())
+		{
+			void * p = (XPerformanceTest *)this;
+			Any aDummy( &p, ::getCppuType( (const Reference< XPerformanceTest > *)0 ) );
+		}
+		return aRet;
+	}
+    virtual void SAL_CALL acquire() throw()
+		{ osl_incrementInterlockedCount( &_nRef ); }
+    virtual void SAL_CALL release() throw()
+		{ if (! osl_decrementInterlockedCount( &_nRef )) delete this; }
+	
+	// XServiceInfo
+	virtual OUString SAL_CALL getImplementationName() throw (RuntimeException);
+	virtual sal_Bool SAL_CALL supportsService( const OUString & rServiceName ) throw (RuntimeException);
+	virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (RuntimeException);
+
+    // Attributes
+    virtual sal_Int32 SAL_CALL getLong_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0; }
+    virtual void SAL_CALL setLong_attr( sal_Int32 _attributelong ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual sal_Int64 SAL_CALL getHyper_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0; }
+    virtual void SAL_CALL setHyper_attr( sal_Int64 _attributehyper ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual float SAL_CALL getFloat_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0.0; }
+    virtual void SAL_CALL setFloat_attr( float _attributefloat ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual double SAL_CALL getDouble_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0.0; }
+    virtual void SAL_CALL setDouble_attr( double _attributedouble ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual OUString SAL_CALL getString_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummyString; }
+    virtual void SAL_CALL setString_attr( const ::rtl::OUString& _attributestring ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Reference< XInterface > SAL_CALL getInterface_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return Reference< XInterface >(); }
+    virtual void SAL_CALL setInterface_attr( const Reference< XInterface >& _attributeinterface ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Any SAL_CALL getAny_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummyAny; }
+    virtual void SAL_CALL setAny_attr( const Any& _attributeany ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Sequence< Reference< XInterface > > SAL_CALL getSequence_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummySequence; }
+    virtual void SAL_CALL setSequence_attr( const Sequence< Reference< XInterface > >& _attributesequence ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual ComplexTypes SAL_CALL getStruct_attr() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummyStruct; }
+    virtual void SAL_CALL setStruct_attr( const ::com::sun::star::test::performance::ComplexTypes& _attributestruct ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+	
+    // Methods	
+    virtual sal_Int32 SAL_CALL getLong() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0; }
+    virtual void SAL_CALL setLong( sal_Int32 _long ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual sal_Int64 SAL_CALL getHyper() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0; }
+    virtual void SAL_CALL setHyper( sal_Int64 _hyper ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual float SAL_CALL getFloat() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0; }
+    virtual void SAL_CALL setFloat( float _float ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual double SAL_CALL getDouble() throw(::com::sun::star::uno::RuntimeException)
+		{ return 0; }
+    virtual void SAL_CALL setDouble( double _double ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummyString; }
+    virtual void SAL_CALL setString( const ::rtl::OUString& _string ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Reference< XInterface > SAL_CALL getInterface() throw(::com::sun::star::uno::RuntimeException)
+		{ return Reference< XInterface >(); }
+    virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _interface ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Any SAL_CALL getAny() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummyAny; }
+    virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& _any ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Sequence< Reference< XInterface > > SAL_CALL getSequence() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummySequence; }
+    virtual void SAL_CALL setSequence( const Sequence< Reference< XInterface > >& _sequence ) throw(::com::sun::star::uno::RuntimeException)
+		{}	
+    virtual ComplexTypes SAL_CALL getStruct() throw(::com::sun::star::uno::RuntimeException)
+		{ return _aDummyStruct; }
+    virtual void SAL_CALL setStruct( const ::com::sun::star::test::performance::ComplexTypes& c ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+	
+    virtual void SAL_CALL async() throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 166 line (1321 tokens) duplication in the following files: 
+Starting at line 3108 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3367 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info koi8u_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xb3 },
+{ 0x00, 0xa4, 0xb4 }, /* ie */
+=====================================================================
+Found a 165 line (1313 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3108 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info koi8r_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xb3 },
+=====================================================================
+Found a 280 line (1313 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+    
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if defined BRIDGES_DEBUG
+    char const * start = p;
+#endif
+    
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+    
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+    
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+    
+#if defined BRIDGES_DEBUG
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+    
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+    
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+    
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+    
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+    
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+        
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if defined BRIDGES_DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if defined BRIDGES_DEBUG
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+	
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+    
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if defined _DEBUG
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+    
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if defined BRIDGES_DEBUG
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if defined _DEBUG
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 165 line (1309 tokens) duplication in the following files: 
+Starting at line 776 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1036 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso3_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x01, 0xb1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+=====================================================================
+Found a 163 line (1295 tokens) duplication in the following files: 
+Starting at line 776 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1554 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4145 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso14_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x01, 0xa2, 0xa1 },
+=====================================================================
+Found a 58 line (1293 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 456 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+	static SfxItemPropertyMap aColumnPropertyMap_Impl[] =
+	{
+        {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCOLOR),	ATTR_FONT_COLOR,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_COUTL),	ATTR_FONT_CONTOUR,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCROSS),	ATTR_FONT_CROSSEDOUT,&getBooleanCppuType(),					0, MID_CROSSED_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CEMPHAS),	ATTR_FONT_EMPHASISMARK,&getCppuType((sal_Int16*)0),			0, MID_EMPHASIS },
+		{MAP_CHAR_LEN(SC_UNONAME_CFONT),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFCHARS),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNONAME_CFFAMIL),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFNAME),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFNAME),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFNAME),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CFPITCH),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNONAME_CFSTYLE),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CHEIGHT),	ATTR_FONT_HEIGHT,	&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CHEIGHT),	ATTR_CJK_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CHEIGHT),	ATTR_CTL_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CLOCAL),	ATTR_FONT_LANGUAGE,	&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CLOCAL),	ATTR_CJK_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CLOCAL),	ATTR_CTL_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNONAME_CPOST),	ATTR_FONT_POSTURE,	&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CPOST),	ATTR_CJK_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CPOST),	ATTR_CTL_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNONAME_CRELIEF),	ATTR_FONT_RELIEF,	&getCppuType((sal_Int16*)0),			0, MID_RELIEF },
+		{MAP_CHAR_LEN(SC_UNONAME_CSHADD),	ATTR_FONT_SHADOWED,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CSTRIKE),	ATTR_FONT_CROSSEDOUT,&getCppuType((sal_Int16*)0),			0, MID_CROSS_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDER),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int16*)0),			0, MID_UNDERLINE },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLCOL),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int32*)0),			0, MID_UL_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLHAS),	ATTR_FONT_UNDERLINE,&getBooleanCppuType(),					0, MID_UL_HASCOLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CWEIGHT),	ATTR_FONT_WEIGHT,	&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CWEIGHT),	ATTR_CJK_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CWEIGHT),	ATTR_CTL_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNONAME_CWORDMOD),	ATTR_FONT_WORDLINE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHCOLHDR),	SC_WID_UNO_CHCOLHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHROWHDR),	SC_WID_UNO_CHROWHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
+//		{MAP_CHAR_LEN(SC_UNONAME_CELLFILT),	SC_WID_UNO_CELLFILT,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_MANPAGE),	SC_WID_UNO_MANPAGE,	&getBooleanCppuType(),					0, 0 },
+=====================================================================
+Found a 163 line (1293 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 776 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso2_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x01, 0xb1, 0xa1 },
+=====================================================================
+Found a 290 line (1286 tokens) duplication in the following files: 
+Starting at line 1 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/vpp40/runargv.c
+Starting at line 1 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/microsft/vpp40/runargv.c
+
+Blake sent me the wrong one.
+
+/* RCS  $Id: runargv.c,v 1.1.1.1 2000/09/22 15:33:37 hr Exp $
+--
+-- SYNOPSIS
+--      Invoke a sub process.
+-- 
+-- DESCRIPTION
+-- 	Use the standard methods of executing a sub process.
+--
+-- AUTHOR
+--      Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+--      http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+--      Copyright (c) 1996,1997 by WTI Corp.  All rights reserved.
+-- 
+--      This program is NOT free software; you can redistribute it and/or
+--      modify it under the terms of the Software License Agreement Provided
+--      in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+--      Use cvs log to obtain detailed change logs.
+*/
+
+#include <process.h>
+#include <errno.h>
+#include <signal.h>
+#include "extern.h"
+#include "sysintf.h"
+
+extern char **environ;
+
+typedef struct prp {
+   char *prp_cmd;
+   int   prp_group;
+   int   prp_ignore;
+   int   prp_last;
+   int	 prp_shell;
+   struct prp *prp_next;
+} RCP, *RCPPTR;
+
+typedef struct pr {
+   int		pr_valid;
+   int		pr_pid;
+   CELLPTR	pr_target;
+   int		pr_ignore;
+   int		pr_last;
+   RCPPTR  	pr_recipe;
+   RCPPTR  	pr_recipe_end;
+   char        *pr_dir;
+} PR;
+
+static PR  *_procs    = NIL(PR);
+static int  _proc_cnt = 0;
+static int  _abort_flg= FALSE;
+static int  _use_i    = -1;
+static int  _do_upd   = 0;
+
+static  void	_add_child ANSI((int, CELLPTR, int, int));
+static  void	_attach_cmd ANSI((char *, int, int, CELLPTR, int, int));
+static  void    _finished_child ANSI((int, int));
+static  int     _running ANSI((CELLPTR));
+
+PUBLIC int
+runargv(target, ignore, group, last, shell, cmd)
+CELLPTR target;
+int     ignore;
+int	group;
+int	last;
+int     shell;
+char	*cmd;
+{
+   extern  int  errno;
+   extern  char *sys_errlist[];
+   int          pid;
+   char         **argv;
+
+   if( _running(target) /*&& Max_proc != 1*/ ) {
+      /* The command will be executed when the previous recipe
+       * line completes. */
+      _attach_cmd( cmd, group, ignore, target, last, shell );
+      return(1);
+   }
+
+   while( _proc_cnt == Max_proc )
+      if( Wait_for_child(FALSE, -1) == -1 )  Fatal( "Lost a child %d", errno );
+
+   argv = Pack_argv( group, shell, cmd );
+
+   pid = _spawnvpe(_P_NOWAIT, argv[0], argv, environ);
+   if (pid == -1)  {  /*  failed  */
+	   Error("%s: %s", argv[0], sys_errlist[errno]);
+	   Handle_result(-1, ignore, _abort_flg, target);
+	   return(-1);
+   } else
+	   _add_child(pid, target, ignore, last);
+
+   return(1);
+}
+
+
+PUBLIC int
+Wait_for_child( abort_flg, pid )
+int abort_flg;
+int pid;
+{
+   int wid;
+   int status;
+   int waitchild;
+
+   waitchild = (pid == -1)? FALSE : Wait_for_completion;
+
+   do {
+      if( (wid = wait(&status)) == -1 ) return(-1);
+
+      _abort_flg = abort_flg;
+      _finished_child(wid, status);
+      _abort_flg = FALSE;
+   } while( waitchild && pid != wid );
+
+   return(0);
+}
+
+
+PUBLIC void
+Clean_up_processes()
+{
+   register int i;
+
+   if( _procs != NIL(PR) ) {
+      for( i=0; i<Max_proc; i++ )
+	 if( _procs[i].pr_valid )
+	    kill(_procs[i].pr_pid, SIGTERM);
+
+      while( Wait_for_child(TRUE, -1) != -1 );
+   }
+}
+
+
+static void
+_add_child( pid, target, ignore, last )
+int	pid;
+CELLPTR target;
+int	ignore;
+int     last;
+{
+   register int i;
+   register PR *pp;
+
+   if( _procs == NIL(PR) ) {
+      TALLOC( _procs, Max_proc, PR );
+   }
+
+   if( (i = _use_i) == -1 )
+      for( i=0; i<Max_proc; i++ )
+	 if( !_procs[i].pr_valid )
+	    break;
+
+   pp = _procs+i;
+
+   pp->pr_valid  = 1;
+   pp->pr_pid    = pid;
+   pp->pr_target = target;
+   pp->pr_ignore = ignore;
+   pp->pr_last   = last;
+   pp->pr_dir    = DmStrDup(Get_current_dir());
+
+   Current_target = NIL(CELL);
+
+   _proc_cnt++;
+
+   if( Wait_for_completion ) Wait_for_child( FALSE, pid );
+}
+
+
+static void
+_finished_child(pid, status)
+int	pid;
+int	status;
+{
+   register int i;
+   register PR *pp;
+   char     *dir;
+
+   for( i=0; i<Max_proc; i++ )
+      if( _procs[i].pr_valid && _procs[i].pr_pid == pid )
+	 break;
+
+   /* Some children we didn't make esp true if using /bin/sh to execute a
+    * a pipe and feed the output as a makefile into dmake. */
+   if( i == Max_proc ) return;
+   _procs[i].pr_valid = 0;
+   _proc_cnt--;
+   dir = DmStrDup(Get_current_dir());
+   Set_dir( _procs[i].pr_dir );
+
+   if( _procs[i].pr_recipe != NIL(RCP) && !_abort_flg ) {
+      RCPPTR rp = _procs[i].pr_recipe;
+
+
+      Current_target = _procs[i].pr_target;
+      Handle_result( status, _procs[i].pr_ignore, FALSE, _procs[i].pr_target );
+      Current_target = NIL(CELL);
+
+      if ( _procs[i].pr_target->ce_attr & A_ERROR ) {
+	 Unlink_temp_files( _procs[i].pr_target );
+	 _procs[i].pr_last = TRUE;
+	 goto ABORT_REMAINDER_OF_RECIPE;
+      }
+
+      _procs[i].pr_recipe = rp->prp_next;
+
+      _use_i = i;
+      runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group,
+	       rp->prp_last, rp->prp_shell, rp->prp_cmd );
+      _use_i = -1;
+
+      FREE( rp->prp_cmd );
+      FREE( rp );
+
+      if( _proc_cnt == Max_proc ) Wait_for_child( FALSE, -1 );
+   }
+   else {
+      Unlink_temp_files( _procs[i].pr_target );
+      Handle_result(status,_procs[i].pr_ignore,_abort_flg,_procs[i].pr_target);
+
+ ABORT_REMAINDER_OF_RECIPE:
+      if( _procs[i].pr_last ) {
+	 FREE(_procs[i].pr_dir );
+
+	 if( !Doing_bang ) Update_time_stamp( _procs[i].pr_target );
+      }
+   }
+
+   Set_dir(dir);
+   FREE(dir);
+}
+
+
+static int
+_running( cp )
+CELLPTR cp;
+{
+   register int i;
+
+   if( !_procs ) return(FALSE);
+
+   for( i=0; i<Max_proc; i++ )
+      if( _procs[i].pr_valid &&
+	  _procs[i].pr_target == cp  )
+	 break;
+	 
+   return( i != Max_proc );
+}
+
+
+static void
+_attach_cmd( cmd, group, ignore, cp, last, shell )
+char    *cmd;
+int	group;
+int     ignore;
+CELLPTR cp;
+int     last;
+int     shell;
+{
+   register int i;
+   RCPPTR rp;
+
+   for( i=0; i<Max_proc; i++ )
+      if( _procs[i].pr_valid &&
+	  _procs[i].pr_target == cp  )
+	 break;
+
+   TALLOC( rp, 1, RCP );
+   rp->prp_cmd   = DmStrDup(cmd);
+   rp->prp_group = group;
+   rp->prp_ignore= ignore;
+   rp->prp_last  = last;
+   rp->prp_shell = shell;
+
+   if( _procs[i].pr_recipe == NIL(RCP) )
+      _procs[i].pr_recipe = _procs[i].pr_recipe_end = rp;
+   else {
+      _procs[i].pr_recipe_end->prp_next = rp;
+      _procs[i].pr_recipe_end = rp;
+   }
+}
+=====================================================================
+Found a 103 line (1265 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/icc/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/bcc50/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+int dchdir ANSI((char *));
+=====================================================================
+Found a 102 line (1264 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/tos/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+=====================================================================
+Found a 55 line (1250 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 556 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+	static SfxItemPropertyMap aRowPropertyMap_Impl[] =
+	{
+        {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCOLOR),	ATTR_FONT_COLOR,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_COUTL),	ATTR_FONT_CONTOUR,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCROSS),	ATTR_FONT_CROSSEDOUT,&getBooleanCppuType(),					0, MID_CROSSED_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CEMPHAS),	ATTR_FONT_EMPHASISMARK,&getCppuType((sal_Int16*)0),			0, MID_EMPHASIS },
+		{MAP_CHAR_LEN(SC_UNONAME_CFONT),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFCHARS),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNONAME_CFFAMIL),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFNAME),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFNAME),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFNAME),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CFPITCH),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNONAME_CFSTYLE),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CHEIGHT),	ATTR_FONT_HEIGHT,	&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CHEIGHT),	ATTR_CJK_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CHEIGHT),	ATTR_CTL_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CLOCAL),	ATTR_FONT_LANGUAGE,	&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CLOCAL),	ATTR_CJK_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CLOCAL),	ATTR_CTL_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNONAME_CPOST),	ATTR_FONT_POSTURE,	&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CPOST),	ATTR_CJK_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CPOST),	ATTR_CTL_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNONAME_CRELIEF),	ATTR_FONT_RELIEF,	&getCppuType((sal_Int16*)0),			0, MID_RELIEF },
+		{MAP_CHAR_LEN(SC_UNONAME_CSHADD),	ATTR_FONT_SHADOWED,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CSTRIKE),	ATTR_FONT_CROSSEDOUT,&getCppuType((sal_Int16*)0),			0, MID_CROSS_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDER),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int16*)0),			0, MID_UNDERLINE },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLCOL),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int32*)0),			0, MID_UL_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLHAS),	ATTR_FONT_UNDERLINE,&getBooleanCppuType(),					0, MID_UL_HASCOLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CWEIGHT),	ATTR_FONT_WEIGHT,	&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CWEIGHT),	ATTR_CJK_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CWEIGHT),	ATTR_CTL_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNONAME_CWORDMOD),	ATTR_FONT_WORDLINE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHCOLHDR),	SC_WID_UNO_CHCOLHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHROWHDR),	SC_WID_UNO_CHROWHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLHGT),	SC_WID_UNO_CELLHGT,	&getCppuType((sal_Int32*)0),			0, 0 },
+=====================================================================
+Found a 106 line (1235 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/accelerators/keymapping.cxx
+
+KeyMapping::KeyIdentifierInfo KeyMapping::KeyIdentifierMap[] =
+{
+    {css::awt::Key::NUM0          , "KEY_0"          },
+    {css::awt::Key::NUM1          , "KEY_1"          },
+    {css::awt::Key::NUM2          , "KEY_2"          },
+    {css::awt::Key::NUM3          , "KEY_3"          },
+    {css::awt::Key::NUM4          , "KEY_4"          },
+    {css::awt::Key::NUM5          , "KEY_5"          },
+    {css::awt::Key::NUM6          , "KEY_6"          },
+    {css::awt::Key::NUM7          , "KEY_7"          },
+    {css::awt::Key::NUM8          , "KEY_8"          },
+    {css::awt::Key::NUM9          , "KEY_9"          },
+    {css::awt::Key::A             , "KEY_A"          },
+    {css::awt::Key::B             , "KEY_B"          },
+    {css::awt::Key::C             , "KEY_C"          },
+    {css::awt::Key::D             , "KEY_D"          },
+    {css::awt::Key::E             , "KEY_E"          },
+    {css::awt::Key::F             , "KEY_F"          },
+    {css::awt::Key::G             , "KEY_G"          },
+    {css::awt::Key::H             , "KEY_H"          },
+    {css::awt::Key::I             , "KEY_I"          },
+    {css::awt::Key::J             , "KEY_J"          },
+    {css::awt::Key::K             , "KEY_K"          },
+    {css::awt::Key::L             , "KEY_L"          },
+    {css::awt::Key::M             , "KEY_M"          },
+    {css::awt::Key::N             , "KEY_N"          },
+    {css::awt::Key::O             , "KEY_O"          },
+    {css::awt::Key::P             , "KEY_P"          },
+    {css::awt::Key::Q             , "KEY_Q"          },
+    {css::awt::Key::R             , "KEY_R"          },
+    {css::awt::Key::S             , "KEY_S"          },
+    {css::awt::Key::T             , "KEY_T"          },
+    {css::awt::Key::U             , "KEY_U"          },
+    {css::awt::Key::V             , "KEY_V"          },
+    {css::awt::Key::W             , "KEY_W"          },
+    {css::awt::Key::X             , "KEY_X"          },
+    {css::awt::Key::Y             , "KEY_Y"          },
+    {css::awt::Key::Z             , "KEY_Z"          },
+    {css::awt::Key::F1            , "KEY_F1"         },
+    {css::awt::Key::F2            , "KEY_F2"         },
+    {css::awt::Key::F3            , "KEY_F3"         },
+    {css::awt::Key::F4            , "KEY_F4"         },
+    {css::awt::Key::F5            , "KEY_F5"         },
+    {css::awt::Key::F6            , "KEY_F6"         },
+    {css::awt::Key::F7            , "KEY_F7"         },
+    {css::awt::Key::F8            , "KEY_F8"         },
+    {css::awt::Key::F9            , "KEY_F9"         },
+    {css::awt::Key::F10           , "KEY_F10"        },
+    {css::awt::Key::F11           , "KEY_F11"        },
+    {css::awt::Key::F12           , "KEY_F12"        },
+    {css::awt::Key::F13           , "KEY_F13"        },
+    {css::awt::Key::F14           , "KEY_F14"        },
+    {css::awt::Key::F15           , "KEY_F15"        },
+    {css::awt::Key::F16           , "KEY_F16"        },
+    {css::awt::Key::F17           , "KEY_F17"        },
+    {css::awt::Key::F18           , "KEY_F18"        },
+    {css::awt::Key::F19           , "KEY_F19"        },
+    {css::awt::Key::F20           , "KEY_F20"        },
+    {css::awt::Key::F21           , "KEY_F21"        },
+    {css::awt::Key::F22           , "KEY_F22"        },
+    {css::awt::Key::F23           , "KEY_F23"        },
+    {css::awt::Key::F24           , "KEY_F24"        },
+    {css::awt::Key::F25           , "KEY_F25"        },
+    {css::awt::Key::F26           , "KEY_F26"        },
+    {css::awt::Key::DOWN          , "KEY_DOWN"       },
+    {css::awt::Key::UP            , "KEY_UP"         },
+    {css::awt::Key::LEFT          , "KEY_LEFT"       },
+    {css::awt::Key::RIGHT         , "KEY_RIGHT"      },
+    {css::awt::Key::HOME          , "KEY_HOME"       },
+    {css::awt::Key::END           , "KEY_END"        },
+    {css::awt::Key::PAGEUP        , "KEY_PAGEUP"     },
+    {css::awt::Key::PAGEDOWN      , "KEY_PAGEDOWN"   },
+    {css::awt::Key::RETURN        , "KEY_RETURN"     },
+    {css::awt::Key::ESCAPE        , "KEY_ESCAPE"     },
+    {css::awt::Key::TAB           , "KEY_TAB"        },
+    {css::awt::Key::BACKSPACE     , "KEY_BACKSPACE"  },
+    {css::awt::Key::SPACE         , "KEY_SPACE"      },
+    {css::awt::Key::INSERT        , "KEY_INSERT"     },
+    {css::awt::Key::DELETE        , "KEY_DELETE"     },
+    {css::awt::Key::ADD           , "KEY_ADD"        },
+    {css::awt::Key::SUBTRACT      , "KEY_SUBTRACT"   },
+    {css::awt::Key::MULTIPLY      , "KEY_MULTIPLY"   },
+    {css::awt::Key::DIVIDE        , "KEY_DIVIDE"     },
+    {css::awt::Key::POINT         , "KEY_POINT"      },
+    {css::awt::Key::COMMA         , "KEY_COMMA"      },
+    {css::awt::Key::LESS          , "KEY_LESS"       },
+    {css::awt::Key::GREATER       , "KEY_GREATER"    },
+    {css::awt::Key::EQUAL         , "KEY_EQUAL"      },
+    {css::awt::Key::OPEN          , "KEY_OPEN"       },
+    {css::awt::Key::CUT           , "KEY_CUT"        },
+    {css::awt::Key::COPY          , "KEY_COPY"       },
+    {css::awt::Key::PASTE         , "KEY_PASTE"      },
+    {css::awt::Key::UNDO          , "KEY_UNDO"       },
+    {css::awt::Key::REPEAT        , "KEY_REPEAT"     },
+    {css::awt::Key::FIND          , "KEY_FIND"       },
+    {css::awt::Key::PROPERTIES    , "KEY_PROPERTIES" },
+    {css::awt::Key::FRONT         , "KEY_FRONT"      },
+    {css::awt::Key::CONTEXTMENU   , "KEY_CONTEXTMENU"},
+    {css::awt::Key::HELP          , "KEY_HELP"       },
+    {css::awt::Key::MENU          , "KEY_MENU"       },
+    {css::awt::Key::HANGUL_HANJA  , "KEY_HANGUL_HANJA"},
+    {css::awt::Key::DECIMAL       , "KEY_DECIMAL"    },
+    {css::awt::Key::TILDE         , "KEY_TILDE"      },
+    {css::awt::Key::QUOTELEFT     , "KEY_QUOTELEFT"  },
+	{0                            , ""               } // mark the end of this array!
+};                             
+=====================================================================
+Found a 227 line (1214 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/plugin/aqua/macmgr.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/plugin/unx/unxmgr.cxx
+
+using namespace rtl;
+using namespace std;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::plugin;
+
+// Unix specific implementation
+static bool CheckPlugin( const ByteString& rPath, list< PluginDescription* >& rDescriptions )
+{
+#if OSL_DEBUG_LEVEL > 1
+    fprintf( stderr, "Trying plugin %s ... ", rPath.GetBuffer() );
+#endif
+
+    xub_StrLen nPos = rPath.SearchBackward( '/' );
+    if( nPos == STRING_NOTFOUND )
+    {
+#if OSL_DEBUG_LEVEL > 1
+        fprintf( stderr, "no absolute path to plugin\n" );
+#endif
+        return false;
+    }
+
+    ByteString aBaseName = rPath.Copy( nPos+1 );
+    if( aBaseName.Equals( "libnullplugin.so" ) )
+    {
+#if OSL_DEBUG_LEVEL > 1
+        fprintf( stderr, "don't like %s\n", aBaseName.GetBuffer() );
+#endif
+        return false;
+    }
+
+    struct stat aStat;
+    if( stat( rPath.GetBuffer(), &aStat ) || ! S_ISREG( aStat.st_mode ) )
+    {
+#if OSL_DEBUG_LEVEL > 1
+        fprintf( stderr, "%s is not a regular file\n", rPath.GetBuffer() );
+#endif
+        return false;
+    }
+
+
+    rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
+
+    ByteString aCommand( "pluginapp.bin \"" );
+    aCommand.Append( rPath );
+    aCommand.Append( '"' );
+
+    FILE* pResult = popen( aCommand.GetBuffer(), "r" );
+    int nDescriptions = 0;
+    if( pResult )
+    {
+		OStringBuffer aMIME;
+        char buf[256];
+        while( fgets( buf, sizeof( buf ), pResult ) )
+        {
+            for( int i = 0; i < sizeof(buf) && buf[i]; ++i )
+            {
+                if( buf[i] == '\n' )
+                    buf[i] = ';';
+            }
+            aMIME.append( buf );
+        }
+        pclose( pResult );
+
+        if( aMIME.getLength() > 0 )
+        {
+            OString aLine = aMIME.makeStringAndClear();
+            
+            sal_Int32 nIndex = 0;
+            while( nIndex != -1 )
+            {
+                OString aType = aLine.getToken( 0, ';', nIndex );
+
+                sal_Int32 nTypeIndex = 0;
+                OString aMimetype	= aType.getToken( 0, ':', nTypeIndex );
+                OString aExtLine	= aType.getToken( 0, ':', nTypeIndex );
+                if( nTypeIndex < 0 ) // ensure at least three tokens
+                    continue;
+                OString aDesc		= aType.getToken( 0, ':', nTypeIndex );
+
+                // create extension list string
+                sal_Int32 nExtIndex = 0;
+                OStringBuffer aExtension;
+                while( nExtIndex != -1 )
+                {
+                    OString aExt = aExtLine.getToken( 0, ',', nExtIndex);
+                    if( aExt.indexOf( "*." ) != 0 )
+                        aExtension.append( "*." );
+                    aExtension.append( aExt );
+                    if( nExtIndex != -1 )
+                        aExtension.append( ';' );
+                }
+
+                PluginDescription* pNew = new PluginDescription;
+                // set plugin name (path to library)
+                pNew->PluginName	= OStringToOUString( rPath, aEncoding );
+                // set mimetype
+                pNew->Mimetype 	= OStringToOUString( aMimetype, aEncoding );
+                // set extension line
+                pNew->Extension	= OStringToOUString( aExtension.makeStringAndClear(), aEncoding );
+                // set description
+                pNew->Description= OStringToOUString( aDesc, aEncoding );
+                rDescriptions.push_back( pNew );
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr, "Mimetype: %s\nExtension: %s\n"
+                         "Description: %s\n",
+                         OUStringToOString( pNew->Mimetype, aEncoding ).getStr(),
+                         OUStringToOString( pNew->Extension, aEncoding ).getStr(),
+                         OUStringToOString( pNew->Description, aEncoding ).getStr()
+                         );
+#endif
+            }
+        }
+#if OSL_DEBUG_LEVEL > 1
+        else
+            fprintf( stderr, "result of \"%s\" contains no mimtype\n",
+                     aCommand.GetBuffer() );
+#endif
+	}
+#if OSL_DEBUG_LEVEL > 1
+    else
+        fprintf( stderr, "command \"%s\" failed\n", aCommand.GetBuffer() );
+#endif
+	return nDescriptions > 0;
+}
+
+Sequence<PluginDescription> XPluginManager_Impl::getPluginDescriptions() throw()
+{
+	static Sequence<PluginDescription> aDescriptions;
+	static BOOL bHavePlugins = FALSE;
+	if( ! bHavePlugins )
+	{
+        rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
+		list<PluginDescription*> aPlugins;
+		int i;
+
+		// unix: search for plugins in /usr/lib/netscape/plugins,
+		//       ~/.netscape/plugins und NPX_PLUGIN_PATH
+		// additionally: search in PluginsPath
+        static const char* pHome = getenv( "HOME" );
+        static const char* pNPXPluginPath = getenv( "NPX_PLUGIN_PATH" );
+
+		ByteString aSearchPath( "/usr/lib/netscape/plugins" );
+        if( pHome )
+        {
+            aSearchPath.Append( ':' );
+            aSearchPath.Append( pHome );
+            aSearchPath += "/.netscape/plugins";
+        }
+        if( pNPXPluginPath )
+        {
+            aSearchPath.Append( ':' );
+            aSearchPath += pNPXPluginPath;
+        }
+
+		const Sequence< ::rtl::OUString >& rPaths( PluginManager::getAdditionalSearchPaths() );
+		for( i = 0; i < rPaths.getLength(); i++ )
+		{
+			aSearchPath += ":";
+			aSearchPath += ByteString( String( rPaths.getConstArray()[i] ), aEncoding );
+		}
+
+
+        long aBuffer[ sizeof( struct dirent ) + _PC_NAME_MAX +1 ];
+		int nPaths = aSearchPath.GetTokenCount( ':' );
+		for( i = 0; i < nPaths; i++ )
+		{
+			ByteString aPath( aSearchPath.GetToken( i, ':' ) );
+			if( aPath.Len() )
+			{
+                DIR* pDIR = opendir( aPath.GetBuffer() );
+                struct dirent* pDirEnt = NULL;
+                while( pDIR && ! readdir_r( pDIR, (struct dirent*)aBuffer, &pDirEnt ) && pDirEnt )
+                {
+                    char* pBaseName = ((struct dirent*)aBuffer)->d_name;
+                    if( pBaseName[0] != '.' ||
+                        pBaseName[1] != '.' ||
+                        pBaseName[2] != 0 )
+                    {
+                        ByteString aFileName( aPath );
+                        aFileName += "/";
+                        aFileName += pBaseName;
+                        CheckPlugin( aFileName, aPlugins );
+                    }
+				}
+                if( pDIR )
+                    closedir( pDIR );
+			}
+		}
+
+        // try ~/.mozilla/pluginreg.dat
+        ByteString aMozPluginreg( pHome );
+        aMozPluginreg.Append( "/.mozilla/pluginreg.dat" );
+        FILE* fp = fopen( aMozPluginreg.GetBuffer(), "r" );
+        if( fp )
+        {
+#if OSL_DEBUG_LEVEL > 1
+            fprintf( stderr, "parsing %s\n", aMozPluginreg.GetBuffer() );
+#endif
+            char aLine[1024];
+            while( fgets( aLine, sizeof( aLine ), fp ) )
+            {
+                int nLineLen = strlen( aLine );
+                int nDotPos;
+                for( nDotPos = nLineLen-1; nDotPos > 0 && aLine[nDotPos] != ':'; nDotPos-- )
+                    ;
+                if( aLine[0] == '/' && aLine[nDotPos] == ':' && aLine[nDotPos+1] == '$' )
+                    CheckPlugin( ByteString( aLine, nDotPos ), aPlugins );
+            }
+            fclose( fp );
+        }
+
+        // create return value
+		aDescriptions = Sequence<PluginDescription>( aPlugins.size() );
+#if OSL_DEBUG_LEVEL > 1
+        fprintf( stderr, "found %d plugins\n", aPlugins.size() );
+#endif
+		list<PluginDescription*>::iterator iter;
+		for( iter = aPlugins.begin(), i=0; iter != aPlugins.end(); ++iter ,i++ )
+		{
+			aDescriptions.getArray()[ i ] = **iter;
+			delete *iter;
+		}
+		aPlugins.clear();
+		bHavePlugins = TRUE;
+	}
+	return aDescriptions;
+}
+=====================================================================
+Found a 250 line (1194 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/lex.c
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_lex.c
+
+						if( isalpha( j ) || (j == '_') )
+#else							
+                        if (('a' <= j && j <= 'z') || ('A' <= j && j <= 'Z')
+                            || j == '_')
+#endif
+                            bigfsm[j][fp->state] = (short) nstate;
+                    continue;
+                case C_NUM:
+                    for (j = '0'; j <= '9'; j++)
+                        bigfsm[j][fp->state] = (short) nstate;
+                    continue;
+                default:
+                    bigfsm[fp->ch[i]][fp->state] = (short) nstate;
+            }
+        }
+    }
+
+    /*
+     * install special cases for ? (trigraphs),  \ (splicing), runes, and
+     * EOB
+     */
+    for (i = 0; i < MAXSTATE; i++)
+    {
+        for (j = 0; j < 0xFF; j++)
+            if (j == '?' || j == '\\' || j == '\n' || j == '\r')
+            {
+                if (bigfsm[j][i] > 0)
+                    bigfsm[j][i] = ~bigfsm[j][i];
+                bigfsm[j][i] &= ~QBSBIT;
+            }
+        bigfsm[EOB][i] = ~S_EOB;
+        if (bigfsm[EOFC][i] >= 0)
+            bigfsm[EOFC][i] = ~S_EOF;
+    }
+}
+
+void
+    fixlex(void)
+{
+    /* do C++ comments? */
+    if ((Cplusplus == 0) || (Cflag != 0))
+        bigfsm['/'][COM1] = bigfsm['x'][COM1];
+}
+
+/*
+ * fill in a row of tokens from input, terminated by NL or END
+ * First token is put at trp->lp.
+ * Reset is non-zero when the input buffer can be "rewound."
+ * The value is a flag indicating that possible macros have
+ * been seen in the row.
+ */
+int
+    gettokens(Tokenrow * trp, int reset)
+{
+    register int c, state, oldstate;
+    register uchar *ip;
+    register Token *tp, *maxp;
+    int runelen;
+    Source *s = cursource;
+    int nmac = 0;
+
+    tp = trp->lp;
+    ip = s->inp;
+    if (reset)
+    {
+        s->lineinc = 0;
+        if (ip >= s->inl)
+        {                               /* nothing in buffer */
+            s->inl = s->inb;
+            fillbuf(s);
+            ip = s->inp = s->inb;
+        }
+        else
+            if (ip >= s->inb + (3 * INS / 4))
+            {
+                memmove(s->inb, ip, 4 + s->inl - ip);
+                s->inl = s->inb + (s->inl - ip);
+                ip = s->inp = s->inb;
+            }
+    }
+    maxp = &trp->bp[trp->max];
+    runelen = 1;
+    for (;;)
+    {
+continue2:
+        if (tp >= maxp)
+        {
+            trp->lp = tp;
+            tp = growtokenrow(trp);
+            maxp = &trp->bp[trp->max];
+        }
+        tp->type = UNCLASS;
+        tp->t = ip;
+        tp->wslen = 0;
+        tp->flag = 0;
+        state = START;
+        for (;;)
+        {
+            oldstate = state;
+
+            c = *ip;
+						
+            if ((state = bigfsm[c][state]) >= 0)
+            {
+                ip += runelen;
+                runelen = 1;
+                continue;
+            }
+            state = ~state;
+    reswitch:
+            switch (state & 0177)
+            {
+                case S_SELF:
+                    ip += runelen;
+                    runelen = 1;
+                case S_SELFB:
+                    tp->type = (unsigned char) GETACT(state);
+                    tp->len = ip - tp->t;
+                    tp++;
+                    goto continue2;
+
+                case S_NAME:            /* like S_SELFB but with nmac check */
+                    tp->type = NAME;
+                    tp->len = ip - tp->t;
+                    nmac |= quicklook(tp->t[0], tp->len > 1 ? tp->t[1] : 0);
+                    tp++;
+                    goto continue2;
+
+                case S_WS:
+                    tp->wslen = ip - tp->t;
+                    tp->t = ip;
+                    state = START;
+                    continue;
+
+                default:
+                    if ((state & QBSBIT) == 0)
+                    {
+                        ip += runelen;
+                        runelen = 1;
+                        continue;
+                    }
+                    state &= ~QBSBIT;
+                    s->inp = ip;
+
+					if (c == '\n')
+					{
+					    while (s->inp + 1 >= s->inl && fillbuf(s) != EOF);
+					
+						if (s->inp[1] == '\r')
+						{
+							memmove(s->inp + 1, s->inp + 2, s->inl - s->inp + 2);
+							s->inl -= 1;
+						}
+
+                        goto reswitch;
+					}
+
+					if (c == '\r')
+					{
+    				    while (s->inp + 1 >= s->inl && fillbuf(s) != EOF);
+					
+						if (s->inp[1] == '\n')
+						{
+							memmove(s->inp, s->inp + 1, s->inl - s->inp + 1);
+							s->inl -= 1;
+						}
+						else
+							*s->inp = '\n';
+
+						state = oldstate;
+                        continue;
+					}
+
+                    if (c == '?')
+                    {                   /* check trigraph */
+                        if (trigraph(s))
+                        {
+                            state = oldstate;
+                            continue;
+                        }
+                        goto reswitch;
+                    }
+                    if (c == '\\')
+                    {                   /* line-folding */
+                        if (foldline(s))
+                        {
+                            s->lineinc++;
+                            state = oldstate;
+                            continue;
+                        }
+                        goto reswitch;
+                    }
+                    error(WARNING, "Lexical botch in cpp");
+                    ip += runelen;
+                    runelen = 1;
+                    continue;
+
+                case S_EOB:
+                    s->inp = ip;
+                    fillbuf(cursource);
+                    state = oldstate;
+                    continue;
+
+                case S_EOF:
+                    tp->type = END;
+                    tp->len = 0;
+                    s->inp = ip;
+                    if (tp != trp->bp && (tp - 1)->type != NL && cursource->fd != -1)
+                        error(WARNING, "No newline at end of file");
+                    trp->lp = tp + 1;
+                    return nmac;
+
+                case S_STNL:
+                    error(ERROR, "Unterminated string or char const");
+                case S_NL:
+                    tp->t = ip;
+                    tp->type = NL;
+                    tp->len = 1;
+                    tp->wslen = 0;
+                    s->lineinc++;
+                    s->inp = ip + 1;
+                    trp->lp = tp + 1;
+                    return nmac;
+
+                case S_EOFSTR:
+                    error(FATAL, "EOF in string or char constant");
+                    break;
+
+                case S_COMNL:
+                    s->lineinc++;
+                    state = COM2;
+                    ip += runelen;
+                    runelen = 1;
+                    continue;
+
+                case S_EOFCOM:
+                    error(WARNING, "EOF inside comment");
+                    --ip;
+                case S_COMMENT:
+					if (!Cflag)
+					{
+						tp->t = ++ip;
+						tp->t[-1] = ' ';
+						tp->wslen = 1;
+						state = START;
+						continue;
+					}
+					else
+					{
+	                    runelen = 1;
+=====================================================================
+Found a 286 line (1193 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sprophelp.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sprophelp.cxx
+
+}
+
+
+PropertyChgHelper::~PropertyChgHelper()
+{	
+}
+
+
+void PropertyChgHelper::AddAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->addPropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+void PropertyChgHelper::RemoveAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->removePropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+		 
+
+void PropertyChgHelper::LaunchEvent( const LinguServiceEvent &rEvt )
+{
+	cppu::OInterfaceIteratorHelper aIt( aLngSvcEvtListeners );
+	while (aIt.hasMoreElements())
+	{
+		Reference< XLinguServiceEventListener > xRef( aIt.next(), UNO_QUERY );
+		if (xRef.is())
+			xRef->processLinguServiceEvent( rEvt );
+	}
+}
+
+
+void SAL_CALL PropertyChgHelper::disposing( const EventObject& rSource ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	if (rSource.Source == xPropSet)
+	{
+		RemoveAsPropListener();
+		xPropSet = NULL;
+		aPropNames.realloc( 0 );
+	}
+}
+    
+	
+sal_Bool SAL_CALL 
+	PropertyChgHelper::addLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.addInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL 
+	PropertyChgHelper::removeLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.removeInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+static const char *aSP[] =
+{
+	UPN_IS_GERMAN_PRE_REFORM,
+	UPN_IS_IGNORE_CONTROL_CHARACTERS,
+	UPN_IS_USE_DICTIONARY_LIST,
+	UPN_IS_SPELL_UPPER_CASE,
+	UPN_IS_SPELL_WITH_DIGITS,
+	UPN_IS_SPELL_CAPITALIZATION
+};
+
+
+PropertyHelper_Spell::PropertyHelper_Spell(
+		const Reference< XInterface > & rxSource,
+		Reference< XPropertySet > &rxPropSet ) :
+	PropertyChgHelper	( rxSource, rxPropSet, aSP, sizeof(aSP) / sizeof(aSP[0]) )
+{
+	SetDefault();
+	INT32 nLen = GetPropNames().getLength();
+	if (rxPropSet.is() && nLen)
+	{
+		const OUString *pPropName = GetPropNames().getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			BOOL *pbVal		= NULL,
+				 *pbResVal	= NULL;
+
+			if (A2OU( UPN_IS_GERMAN_PRE_REFORM ) == pPropName[i])
+			{
+				pbVal	 = &bIsGermanPreReform;
+				pbResVal = &bResIsGermanPreReform;
+			}
+			else if (A2OU( UPN_IS_IGNORE_CONTROL_CHARACTERS ) == pPropName[i])
+			{
+				pbVal	 = &bIsIgnoreControlCharacters;
+				pbResVal = &bResIsIgnoreControlCharacters;
+			}
+			else if (A2OU( UPN_IS_USE_DICTIONARY_LIST ) == pPropName[i])
+			{
+				pbVal	 = &bIsUseDictionaryList;
+				pbResVal = &bResIsUseDictionaryList;
+			}
+			else if (A2OU( UPN_IS_SPELL_UPPER_CASE ) == pPropName[i])
+			{
+				pbVal	 = &bIsSpellUpperCase;
+				pbResVal = &bResIsSpellUpperCase;
+			}
+			else if (A2OU( UPN_IS_SPELL_WITH_DIGITS ) == pPropName[i])
+			{
+				pbVal	 = &bIsSpellWithDigits;
+				pbResVal = &bResIsSpellWithDigits;
+			}
+			else if (A2OU( UPN_IS_SPELL_CAPITALIZATION ) == pPropName[i])
+			{
+				pbVal	 = &bIsSpellCapitalization;
+				pbResVal = &bResIsSpellCapitalization;
+			}
+			
+			if (pbVal && pbResVal)
+			{
+				rxPropSet->getPropertyValue( pPropName[i] ) >>= *pbVal;
+				*pbResVal = *pbVal;
+			}
+		}
+	}
+}
+
+
+PropertyHelper_Spell::~PropertyHelper_Spell()
+{
+}
+
+
+void PropertyHelper_Spell::SetDefault()
+{
+	bResIsGermanPreReform			= bIsGermanPreReform			= FALSE;
+	bResIsIgnoreControlCharacters	= bIsIgnoreControlCharacters	= TRUE;
+	bResIsUseDictionaryList			= bIsUseDictionaryList			= TRUE;
+	bResIsSpellUpperCase			= bIsSpellUpperCase				= FALSE;
+	bResIsSpellWithDigits			= bIsSpellWithDigits			= FALSE;
+	bResIsSpellCapitalization		= bIsSpellCapitalization		= TRUE;
+}
+
+
+void SAL_CALL 
+	PropertyHelper_Spell::propertyChange( const PropertyChangeEvent& rEvt ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	if (GetPropSet().is()  &&  rEvt.Source == GetPropSet())
+	{
+		INT16 nLngSvcFlags = 0;
+		BOOL bSCWA = FALSE,	// SPELL_CORRECT_WORDS_AGAIN ?
+			 bSWWA = FALSE;	// SPELL_WRONG_WORDS_AGAIN ?
+
+		BOOL *pbVal = NULL;
+		switch (rEvt.PropertyHandle)
+		{
+			case UPH_IS_IGNORE_CONTROL_CHARACTERS :
+			{
+				pbVal = &bIsIgnoreControlCharacters; 
+				break;
+			}
+			case UPH_IS_GERMAN_PRE_REFORM		  :
+			{
+				pbVal = &bIsGermanPreReform; 
+				bSCWA = bSWWA = TRUE;
+				break;
+			}
+			case UPH_IS_USE_DICTIONARY_LIST		  :
+			{
+				pbVal = &bIsUseDictionaryList; 
+				bSCWA = bSWWA = TRUE;
+				break;
+			}
+			case UPH_IS_SPELL_UPPER_CASE		  :
+			{
+				pbVal = &bIsSpellUpperCase;
+				bSCWA = FALSE == *pbVal;	// FALSE->TRUE change?
+				bSWWA = !bSCWA;				// TRUE->FALSE change?
+				break;
+			}
+			case UPH_IS_SPELL_WITH_DIGITS		  :
+			{
+				pbVal = &bIsSpellWithDigits; 
+				bSCWA = FALSE == *pbVal;	// FALSE->TRUE change?
+				bSWWA = !bSCWA;				// TRUE->FALSE change?
+				break;
+			}
+			case UPH_IS_SPELL_CAPITALIZATION	  :
+			{
+				pbVal = &bIsSpellCapitalization; 
+				bSCWA = FALSE == *pbVal;	// FALSE->TRUE change?
+				bSWWA = !bSCWA;				// TRUE->FALSE change?
+				break;
+			}
+			default:
+				DBG_ERROR( "unknown property" );
+		}
+		if (pbVal)
+			rEvt.NewValue >>= *pbVal;
+
+		if (bSCWA)
+			nLngSvcFlags |= LinguServiceEventFlags::SPELL_CORRECT_WORDS_AGAIN;
+		if (bSWWA)
+			nLngSvcFlags |= LinguServiceEventFlags::SPELL_WRONG_WORDS_AGAIN;
+		if (nLngSvcFlags)
+		{
+			LinguServiceEvent aEvt( GetEvtObj(), nLngSvcFlags );
+			LaunchEvent( aEvt );
+		}
+	}
+}
+
+		  
+void PropertyHelper_Spell::SetTmpPropVals( const PropertyValues &rPropVals )
+{
+	// set return value to default value unless there is an 
+	// explicitly supplied temporary value
+	bResIsGermanPreReform			= bIsGermanPreReform;
+	bResIsIgnoreControlCharacters	= bIsIgnoreControlCharacters;
+	bResIsUseDictionaryList			= bIsUseDictionaryList;
+	bResIsSpellUpperCase			= bIsSpellUpperCase;
+	bResIsSpellWithDigits			= bIsSpellWithDigits;
+	bResIsSpellCapitalization		= bIsSpellCapitalization;
+	//
+	INT32 nLen = rPropVals.getLength();
+	if (nLen)
+	{
+		const PropertyValue *pVal = rPropVals.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			BOOL *pbResVal = NULL;
+			switch (pVal[i].Handle)
+			{
+				case UPH_IS_GERMAN_PRE_REFORM		  : pbResVal = &bResIsGermanPreReform; break;
+				case UPH_IS_IGNORE_CONTROL_CHARACTERS : pbResVal = &bResIsIgnoreControlCharacters; break;
+				case UPH_IS_USE_DICTIONARY_LIST		  : pbResVal = &bResIsUseDictionaryList; break;
+				case UPH_IS_SPELL_UPPER_CASE		  : pbResVal = &bResIsSpellUpperCase; break;
+				case UPH_IS_SPELL_WITH_DIGITS		  : pbResVal = &bResIsSpellWithDigits; break;
+				case UPH_IS_SPELL_CAPITALIZATION	  : pbResVal = &bResIsSpellCapitalization; break;
+				default:
+					DBG_ERROR( "unknown property" );
+			}
+			if (pbResVal)
+				pVal[i].Value >>= *pbResVal;
+		}
+	}
+}
+=====================================================================
+Found a 254 line (1170 tokens) duplication in the following files: 
+Starting at line 790 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 950 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+		if( ! pKey || nPaperBin >= (ULONG)pKey->countValues() )
+			aRet = aData.m_pParser->getDefaultInputSlot();
+		else
+        {
+            const PPDValue* pValue = pKey->getValue( nPaperBin );
+            if( pValue )
+                aRet = pValue->m_aOptionTranslation.Len() ? pValue->m_aOptionTranslation : pValue->m_aOption;
+        }
+	}
+
+	return aRet;
+}
+
+// -----------------------------------------------------------------------
+
+ULONG PspSalInfoPrinter::GetCapabilities( const ImplJobSetup* pJobSetup, USHORT nType )
+{
+	switch( nType )
+	{
+		case PRINTER_CAPABILITIES_SUPPORTDIALOG:
+			return 1;
+		case PRINTER_CAPABILITIES_COPIES:
+			return 0xffff;
+		case PRINTER_CAPABILITIES_COLLATECOPIES:
+			return 0;
+		case PRINTER_CAPABILITIES_SETORIENTATION:
+			return 1;
+		case PRINTER_CAPABILITIES_SETPAPERBIN:
+			return 1;
+		case PRINTER_CAPABILITIES_SETPAPERSIZE:
+			return 1;
+		case PRINTER_CAPABILITIES_SETPAPER:
+			return 0;
+		case PRINTER_CAPABILITIES_FAX:
+		{
+			PrinterInfoManager& rManager = PrinterInfoManager::get();
+			PrinterInfo aInfo( rManager.getPrinterInfo( pJobSetup->maPrinterName ) );
+			String aFeatures( aInfo.m_aFeatures );
+			int nTokenCount = aFeatures.GetTokenCount( ',' );
+			for( int i = 0; i < nTokenCount; i++ )
+			{
+				if( aFeatures.GetToken( i ).CompareToAscii( "fax", 3 ) == COMPARE_EQUAL )
+					return 1;
+			}
+			return 0;
+		}
+		case PRINTER_CAPABILITIES_PDF:
+		{
+			PrinterInfoManager& rManager = PrinterInfoManager::get();
+			PrinterInfo aInfo( rManager.getPrinterInfo( pJobSetup->maPrinterName ) );
+			String aFeatures( aInfo.m_aFeatures );
+			int nTokenCount = aFeatures.GetTokenCount( ',' );
+			for( int i = 0; i < nTokenCount; i++ )
+			{
+				if( aFeatures.GetToken( i ).CompareToAscii( "pdf=", 4 ) == COMPARE_EQUAL )
+					return 1;
+			}
+			return 0;
+		}
+		default: break;
+	};
+	return 0;
+}
+
+// =======================================================================
+
+/*
+ *	SalPrinter
+ */
+
+ PspSalPrinter::PspSalPrinter( SalInfoPrinter* pInfoPrinter )
+ : m_bFax( false ),
+   m_bPdf( false ),
+   m_bSwallowFaxNo( false ),
+   m_pGraphics( NULL ),
+   m_nCopies( 1 ),
+   m_pInfoPrinter( pInfoPrinter )
+{
+}
+
+// -----------------------------------------------------------------------
+
+PspSalPrinter::~PspSalPrinter()
+{
+}
+
+// -----------------------------------------------------------------------
+
+static String getTmpName()
+{
+    rtl::OUString aTmp, aSys;
+    osl_createTempFile( NULL, NULL, &aTmp.pData );
+    osl_getSystemPathFromFileURL( aTmp.pData, &aSys.pData );
+
+    return aSys;
+}
+
+BOOL PspSalPrinter::StartJob(
+	const XubString* pFileName,
+	const XubString& rJobName,
+	const XubString& rAppName,
+	ULONG nCopies, BOOL /*bCollate*/,
+	ImplJobSetup* pJobSetup )
+{
+    vcl_sal::PrinterUpdate::jobStarted();
+
+	m_bFax		= false;
+	m_bPdf		= false;
+	m_aFileName	= pFileName ? *pFileName : String();
+	m_aTmpFile	= String();
+    m_nCopies		= nCopies;
+
+	JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, m_aJobData );
+    if( m_nCopies > 1 )
+        // in case user did not do anything (m_nCopies=1)
+        // take the default from jobsetup
+        m_aJobData.m_nCopies = m_nCopies;
+
+	// check wether this printer is configured as fax
+    int nMode = 0;
+	const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) );
+    sal_Int32 nIndex = 0;
+    while( nIndex != -1 )
+	{
+		OUString aToken( rInfo.m_aFeatures.getToken( 0, ',', nIndex ) );
+		if( ! aToken.compareToAscii( "fax", 3 ) )
+		{
+			m_bFax = true;
+			m_aTmpFile = getTmpName();
+            nMode = S_IRUSR | S_IWUSR;
+
+			::std::hash_map< ::rtl::OUString, ::rtl::OUString, ::rtl::OUStringHash >::const_iterator it;
+			it = pJobSetup->maValueMap.find( ::rtl::OUString::createFromAscii( "FAX#" ) );
+			if( it != pJobSetup->maValueMap.end() )
+				m_aFaxNr = it->second;
+
+            sal_Int32 nPos = 0;
+			m_bSwallowFaxNo = ! aToken.getToken( 1, '=', nPos ).compareToAscii( "swallow", 7 ) ? true : false;
+
+			break;
+		}
+		if( ! aToken.compareToAscii( "pdf=", 4 ) )
+		{
+			m_bPdf = true;
+			m_aTmpFile = getTmpName();
+            nMode = S_IRUSR | S_IWUSR;
+
+			if( ! m_aFileName.Len() )
+			{
+				m_aFileName = getPdfDir( rInfo );
+				m_aFileName.Append( '/' );
+				m_aFileName.Append( rJobName );
+				m_aFileName.AppendAscii( ".pdf" );
+			}
+			break;
+		}
+	}
+	m_aPrinterGfx.Init( m_aJobData );
+
+    // set/clear backwards compatibility flag
+    bool bStrictSO52Compatibility = false;
+    std::hash_map<rtl::OUString, rtl::OUString, rtl::OUStringHash >::const_iterator compat_it =
+        pJobSetup->maValueMap.find( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StrictSO52Compatibility" ) ) );
+
+    if( compat_it != pJobSetup->maValueMap.end() )
+    {
+        if( compat_it->second.equalsIgnoreAsciiCaseAscii( "true" ) )
+            bStrictSO52Compatibility = true;
+    }
+    m_aPrinterGfx.setStrictSO52Compatibility( bStrictSO52Compatibility );
+
+	return m_aPrintJob.StartJob( m_aTmpFile.Len() ? m_aTmpFile : m_aFileName, nMode, rJobName, rAppName, m_aJobData, &m_aPrinterGfx ) ? TRUE : FALSE;
+}
+
+// -----------------------------------------------------------------------
+
+BOOL PspSalPrinter::EndJob()
+{
+	BOOL bSuccess = m_aPrintJob.EndJob();
+
+	if( bSuccess )
+	{
+		// check for fax
+		if( m_bFax )
+		{
+
+			const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) );
+			// sendAFax removes the file after use
+			bSuccess = sendAFax( m_aFaxNr, m_aTmpFile, rInfo.m_aCommand );
+		}
+		else if( m_bPdf )
+		{
+			const PrinterInfo& rInfo( PrinterInfoManager::get().getPrinterInfo( m_aJobData.m_aPrinterName ) );
+			bSuccess = createPdf( m_aFileName, m_aTmpFile, rInfo.m_aCommand );
+		}
+	}
+    vcl_sal::PrinterUpdate::jobEnded();
+	return bSuccess;
+}
+
+// -----------------------------------------------------------------------
+
+BOOL PspSalPrinter::AbortJob()
+{
+    BOOL bAbort = m_aPrintJob.AbortJob() ? TRUE : FALSE;
+    vcl_sal::PrinterUpdate::jobEnded();
+	return bAbort;
+}
+
+// -----------------------------------------------------------------------
+
+SalGraphics* PspSalPrinter::StartPage( ImplJobSetup* pJobSetup, BOOL )
+{
+	JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, m_aJobData );
+	m_pGraphics = new PspGraphics( &m_aJobData, &m_aPrinterGfx, m_bFax ? &m_aFaxNr : NULL, m_bSwallowFaxNo, m_pInfoPrinter  );
+    m_pGraphics->SetLayout( 0 );
+    if( m_nCopies > 1 )
+        // in case user did not do anything (m_nCopies=1)
+        // take the default from jobsetup
+        m_aJobData.m_nCopies = m_nCopies;
+
+	m_aPrintJob.StartPage( m_aJobData );
+	m_aPrinterGfx.Init( m_aPrintJob );
+
+	return m_pGraphics;
+}
+
+// -----------------------------------------------------------------------
+
+BOOL PspSalPrinter::EndPage()
+{
+	sal_Bool bResult = m_aPrintJob.EndPage();
+	m_aPrinterGfx.Clear();
+	return bResult ? TRUE : FALSE;
+}
+
+// -----------------------------------------------------------------------
+
+ULONG PspSalPrinter::GetErrorCode()
+{
+	return 0;
+}
+
+/*
+ *  vcl::PrinterUpdate
+ */
+
+Timer* vcl_sal::PrinterUpdate::pPrinterUpdateTimer = NULL;
+int vcl_sal::PrinterUpdate::nActiveJobs = 0;
+
+void vcl_sal::PrinterUpdate::doUpdate()
+{
+    ::psp::PrinterInfoManager& rManager( ::psp::PrinterInfoManager::get() );
+    if( rManager.checkPrintersChanged( false ) )
+=====================================================================
+Found a 366 line (1148 tokens) duplication in the following files: 
+Starting at line 2196 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP );
+			::osl::StreamSocket ssConnection;
+			
+			/// launch server socket 
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+			asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
+
+			/// launch client socket 
+			csConnectorSocket.connect( saTargetSocketAddr, pTimeout );   /// connecting to server...
+
+			/// is send ready?
+			sal_Bool bOK3 = csConnectorSocket.isSendReady( pTimeout );
+				
+			CPPUNIT_ASSERT_MESSAGE( "test for isSendReady function: setup a connection and then check if it can transmit data.", 
+  									( sal_True == bOK3 ) );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( isSendReady );
+		CPPUNIT_TEST( isSendReady_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class isSendReady
+
+
+	/** testing the methods:
+		inline oslSocketType	SAL_CALL getType() const;
+		
+	*/
+
+	class getType : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void getType_001()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.", 
+									osl_Socket_TypeStream ==  sSocket.getType( ) );
+		}
+	
+		void getType_002()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.", 
+									osl_Socket_TypeDgram ==  sSocket.getType( ) );
+		}
+		
+#ifdef UNX
+		// mindy: since on LINUX and SOLARIS, Raw type socket can not be created, so do not test getType() here
+		// mindy: and add one test case to test creating Raw type socket--> ctors_TypeRaw()
+		void getType_003()
+		{
+			CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.this is not passed in (LINUX, SOLARIS), the osl_Socket_TypeRaw, type socket can not be created.", 
+									sal_True);
+		}
+#else
+		void getType_003()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.", 
+									osl_Socket_TypeRaw ==  sSocket.getType( ) );
+		}
+#endif
+		
+		CPPUNIT_TEST_SUITE( getType );
+		CPPUNIT_TEST( getType_001 );
+		CPPUNIT_TEST( getType_002 );
+		CPPUNIT_TEST( getType_003 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getType
+
+	
+
+	/** testing the methods:
+		inline sal_Int32 SAL_CALL getOption(
+			oslSocketOption Option,
+			void* pBuffer,
+			sal_uInt32 BufferLen,
+			oslSocketOptionLevel Level= osl_Socket_LevelSocket) const;
+			
+		inline sal_Int32 getOption( oslSocketOption option ) const;
+		
+	*/
+
+	class getOption : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+		/**  test writer's comment:
+	
+			in oslSocketOption, the osl_Socket_OptionType denote 1 as osl_Socket_TypeStream.
+			2 as osl_Socket_TypeDgram, etc which is not mapping the oslSocketType enum. differ 
+			in 1.
+		*/
+	
+		void getOption_001()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+			sal_Int32 * pType = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
+			*pType = 0; 
+			sSocket.getOption( osl_Socket_OptionType,  pType, sizeof ( sal_Int32 ) );
+			sal_Bool bOK = ( SOCK_STREAM ==  *pType );
+			// there is a TypeMap(socket.c) which map osl_Socket_TypeStream to SOCK_STREAM on UNX, and SOCK_STREAM != osl_Socket_TypeStream 
+			//sal_Bool bOK = ( TYPE_TO_NATIVE(osl_Socket_TypeStream) ==  *pType );
+			free( pType );			
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get type option of socket.", 
+									sal_True == bOK );
+		}
+	
+		// getsockopt error
+		void getOption_004()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+	
+			sal_Bool * pbDontRoute = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
+			sal_Int32 nRes = sSocket.getOption( osl_Socket_OptionInvalid,  pbDontRoute, sizeof ( sal_Bool ) );
+			free( pbDontRoute );
+				
+			CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get invalid option of socket, should return -1.", 
+									 nRes  ==  -1 );
+		}
+		
+		void getOption_simple_001()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+	
+			sal_Bool bOK = ( sal_False  ==  sSocket.getOption( osl_Socket_OptionDontRoute ) );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.", 
+									sal_True == bOK );
+		}
+
+		void getOption_simple_002()
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);
+	
+			sal_Bool bOK = ( sal_False  ==  sSocket.getOption( osl_Socket_OptionDebug ) );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.", 
+									sal_True == bOK );
+		}
+		
+		CPPUNIT_TEST_SUITE( getOption );
+		CPPUNIT_TEST( getOption_001 );
+		CPPUNIT_TEST( getOption_004 );
+		CPPUNIT_TEST( getOption_simple_001 );
+		CPPUNIT_TEST( getOption_simple_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getOption
+
+
+	/** testing the methods:
+		inline sal_Bool SAL_CALL setOption( oslSocketOption Option, 
+											void* pBuffer,
+											sal_uInt32 BufferLen,
+											oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const;		
+	*/
+
+	class setOption : public CppUnit::TestFixture
+	{
+	public:
+		TimeValue *pTimeout;
+// LLA: maybe there is an error in the source, 
+//      as long as I remember, if a derived class do not overload all ctors there is a problem.
+
+		::osl::AcceptorSocket asAcceptorSocket;
+		
+		void setUp( )
+		{
+			
+		}
+		
+		void tearDown( )
+		{
+			asAcceptorSocket.close( );
+		}
+
+	
+        // LLA:
+        // getSocketOption returns BufferLen, or -1 if something failed
+
+        // setSocketOption returns sal_True, if option could stored
+        // else sal_False
+
+		void setOption_001()
+		{
+			/// set and get option.
+            int nBufferLen = sizeof ( sal_Int32);
+            // LLA: SO_DONTROUTE expect an integer boolean, what ever it is, it's not sal_Bool!
+
+			sal_Int32 * pbDontRouteSet = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
+			*pbDontRouteSet = 1; // sal_True;
+
+            sal_Int32 * pGetBuffer = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
+            *pGetBuffer = 0;
+
+            // maybe asAcceptorSocket is not right initialized
+			sal_Bool  b1 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute,  pbDontRouteSet, nBufferLen );
+            CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b1 ) );
+			sal_Int32 n2 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute,  pGetBuffer, nBufferLen );
+            CPPUNIT_ASSERT_MESSAGE( "getOption function failed.", ( n2 == nBufferLen ) );
+			
+			// on Linux, the value of option is 1, on Solaris, it's 16, but it's not important the exact value,
+			// just judge it is zero or not!
+			sal_Bool bOK = ( 0  !=  *pGetBuffer );
+			t_print("#setOption_001: getOption is %d \n", *pGetBuffer);
+
+            // toggle check, set to 0
+            *pbDontRouteSet = 0;
+
+			sal_Bool  b3 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute,  pbDontRouteSet, sizeof ( sal_Int32 ) );
+            CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b3 ) );
+			sal_Int32 n4 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute,  pGetBuffer, nBufferLen );
+            CPPUNIT_ASSERT_MESSAGE( "getOption (DONTROUTE) function failed.", ( n4 == nBufferLen ) );
+            
+            sal_Bool bOK2 = ( 0  ==  *pGetBuffer );
+                      
+			t_print("#setOption_001: getOption is %d \n", *pGetBuffer);
+
+// LLA: 			sal_Bool * pbDontTouteSet = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
+// LLA: 			*pbDontTouteSet = sal_True;
+// LLA: 			sal_Bool * pbDontTouteGet = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
+// LLA: 			*pbDontTouteGet = sal_False;
+// LLA: 			asAcceptorSocket.setOption( osl_Socket_OptionDontRoute,  pbDontTouteSet, sizeof ( sal_Bool ) );
+// LLA: 			asAcceptorSocket.getOption( osl_Socket_OptionDontRoute,  pbDontTouteGet, sizeof ( sal_Bool ) );
+// LLA: 			::rtl::OUString suError = outputError(::rtl::OUString::valueOf((sal_Int32)*pbDontTouteGet), 
+// LLA: 				::rtl::OUString::valueOf((sal_Int32)*pbDontTouteSet), 
+// LLA: 				"test for setOption function: set osl_Socket_OptionDontRoute and then check");
+// LLA: 			
+// LLA: 			sal_Bool bOK = ( sal_True  ==  *pbDontTouteGet );
+// LLA: 			free( pbDontTouteSet );
+// LLA: 			free( pbDontTouteGet );
+			
+			CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.", 
+  									( sal_True == bOK ) && (sal_True == bOK2) );
+
+			free( pbDontRouteSet );
+            free( pGetBuffer );
+// LLA: 			CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK );		
+		}
+		
+		void setOption_002()
+		{
+			/// set and get option.
+
+			// sal_Int32 * pbLingerSet = ( sal_Int32 * )malloc( nBufferLen );
+			// *pbLingerSet = 7;
+			// sal_Int32 * pbLingerGet = ( sal_Int32 * )malloc( nBufferLen );
+            		/* struct */linger aLingerSet;
+            		sal_Int32 nBufferLen = sizeof( struct linger );
+            		aLingerSet.l_onoff = 1;
+            		aLingerSet.l_linger = 7;
+
+           		linger aLingerGet;
+
+			asAcceptorSocket.setOption( osl_Socket_OptionLinger,  &aLingerSet, nBufferLen );
+            
+			sal_Int32 n1 = asAcceptorSocket.getOption( osl_Socket_OptionLinger,  &aLingerGet, nBufferLen );
+            		CPPUNIT_ASSERT_MESSAGE( "getOption (SO_LINGER) function failed.", ( n1 == nBufferLen ) );
+            
+			//t_print("#setOption_002: getOption is %d \n", aLingerGet.l_linger);
+			sal_Bool bOK = ( 7  ==  aLingerGet.l_linger );
+			CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check. ", 
+				sal_True == bOK );	
+			
+		}
+		
+		void setOption_003()
+		{
+			linger aLingerSet;
+		        aLingerSet.l_onoff = 1;
+            		aLingerSet.l_linger = 7;
+
+			sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionLinger,  &aLingerSet, 0 );
+            		printUString( asAcceptorSocket.getErrorAsString( ) );
+			CPPUNIT_ASSERT_MESSAGE( "setOption (SO_LINGER) function failed for optlen is 0.", 
+				( b1 == sal_False ) );            			
+		}
+
+		void setOption_simple_001()
+		{
+			/// set and get option.
+			asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, 1 ); //sal_True );
+			sal_Bool bOK = ( 0  !=  asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
+			
+			t_print("setOption_simple_001(): getoption is %d \n", asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
+			CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.", 
+  									( sal_True == bOK ) );
+		}
+		
+		void setOption_simple_002()
+		{
+			/// set and get option.
+            // LLA: this does not work, due to the fact that SO_LINGER is a structure
+// LLA:			asAcceptorSocket.setOption( osl_Socket_OptionLinger,  7 );
+// LLA:			sal_Bool bOK = ( 7  ==  asAcceptorSocket.getOption( osl_Socket_OptionLinger ) );
+			
+// LLA:			CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.", 
+// LLA: 									( sal_True == bOK ) );
+		}
+		
+		CPPUNIT_TEST_SUITE( setOption );
+		CPPUNIT_TEST( setOption_001 );
+		CPPUNIT_TEST( setOption_002 );
+		CPPUNIT_TEST( setOption_003 );
+		CPPUNIT_TEST( setOption_simple_001 );
+// LLA:		CPPUNIT_TEST( setOption_simple_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class setOption
+
+
+
+	/** testing the method:
+		inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode);
+	*/
+	class enableNonBlockingMode : public CppUnit::TestFixture
+	{
+	public:
+		::osl::AcceptorSocket asAcceptorSocket;
+		
+		void enableNonBlockingMode_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT );
+=====================================================================
+Found a 50 line (1146 tokens) duplication in the following files: 
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_BORDCOL),  SC_WID_UNO_BORDCOL, &getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCOLOR),	ATTR_FONT_COLOR,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_COUTL),	ATTR_FONT_CONTOUR,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CCROSS),	ATTR_FONT_CROSSEDOUT,&getBooleanCppuType(),					0, MID_CROSSED_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CEMPHAS),	ATTR_FONT_EMPHASISMARK,&getCppuType((sal_Int16*)0),			0, MID_EMPHASIS },
+		{MAP_CHAR_LEN(SC_UNONAME_CFONT),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFCHARS),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNONAME_CFFAMIL),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFNAME),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFNAME),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFNAME),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CFPITCH),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNONAME_CFSTYLE),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CHEIGHT),	ATTR_FONT_HEIGHT,	&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CHEIGHT),	ATTR_CJK_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CHEIGHT),	ATTR_CTL_FONT_HEIGHT,&getCppuType((float*)0),				0, MID_FONTHEIGHT | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_CLOCAL),	ATTR_FONT_LANGUAGE,	&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CLOCAL),	ATTR_CJK_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CLOCAL),	ATTR_CTL_FONT_LANGUAGE,&getCppuType((lang::Locale*)0),			0, MID_LANG_LOCALE },
+		{MAP_CHAR_LEN(SC_UNONAME_CPOST),	ATTR_FONT_POSTURE,	&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CPOST),	ATTR_CJK_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CPOST),	ATTR_CTL_FONT_POSTURE,&getCppuType((awt::FontSlant*)0),		0, MID_POSTURE },
+		{MAP_CHAR_LEN(SC_UNONAME_CRELIEF),	ATTR_FONT_RELIEF,	&getCppuType((sal_Int16*)0),			0, MID_RELIEF },
+		{MAP_CHAR_LEN(SC_UNONAME_CSHADD),	ATTR_FONT_SHADOWED,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CSTRIKE),	ATTR_FONT_CROSSEDOUT,&getCppuType((sal_Int16*)0),			0, MID_CROSS_OUT },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDER),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int16*)0),			0, MID_UNDERLINE },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLCOL),	ATTR_FONT_UNDERLINE,&getCppuType((sal_Int32*)0),			0, MID_UL_COLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CUNDLHAS),	ATTR_FONT_UNDERLINE,&getBooleanCppuType(),					0, MID_UL_HASCOLOR },
+		{MAP_CHAR_LEN(SC_UNONAME_CWEIGHT),	ATTR_FONT_WEIGHT,	&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CWEIGHT),	ATTR_CJK_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CWEIGHT),	ATTR_CTL_FONT_WEIGHT,&getCppuType((float*)0),				0, MID_WEIGHT },
+		{MAP_CHAR_LEN(SC_UNONAME_CWORDMOD),	ATTR_FONT_WORDLINE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHCOLHDR),	SC_WID_UNO_CHCOLHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CHROWHDR),	SC_WID_UNO_CHROWHDR,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_COPYBACK),	SC_WID_UNO_COPYBACK,&getBooleanCppuType(),					0, 0 },
+=====================================================================
+Found a 196 line (1107 tokens) duplication in the following files: 
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+Starting at line 754 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/dindexnode.cxx
+
+{
+	double aDbl;
+	char   aData[128];
+} aNodeData;
+//------------------------------------------------------------------
+void ONDXNode::Write(SvStream &rStream, const ONDXPage& rPage) const
+{
+	const ODbaseIndex& rIndex = rPage.GetIndex();
+	if (!rIndex.isUnique() || rPage.IsLeaf())
+		rStream << (sal_uInt32)aKey.nRecord; // schluessel
+	else
+		rStream << (sal_uInt32)0;	// schluessel
+
+	if (rIndex.getHeader().db_keytype) // double
+	{
+		if (aKey.getValue().isNull())
+		{
+			memset(aNodeData.aData,0,rIndex.getHeader().db_keylen);
+			rStream.Write((BYTE*)aNodeData.aData,rIndex.getHeader().db_keylen);
+		}
+		else
+			rStream << (double) aKey.getValue();
+	}
+	else
+	{
+		memset(aNodeData.aData,0x20,rIndex.getHeader().db_keylen);
+		if (!aKey.getValue().isNull())
+		{
+			::rtl::OUString sValue = aKey.getValue();
+			ByteString aText(sValue.getStr(), rIndex.m_pTable->getConnection()->getTextEncoding());
+			strncpy(aNodeData.aData,aText.GetBuffer(),std::min(rIndex.getHeader().db_keylen, aText.Len()));
+		}
+		rStream.Write((BYTE*)aNodeData.aData,rIndex.getHeader().db_keylen);
+	}
+	rStream << aChild;
+}
+
+
+//------------------------------------------------------------------
+ONDXPagePtr& ONDXNode::GetChild(ODbaseIndex* pIndex, ONDXPage* pParent)
+{
+	if (!aChild.Is() && pIndex)
+	{
+		aChild = pIndex->CreatePage(aChild.GetPagePos(),pParent,aChild.HasPage());
+	}
+	return aChild;
+}
+
+//==================================================================
+// ONDXKey
+//==================================================================
+//------------------------------------------------------------------
+BOOL ONDXKey::IsText(sal_Int32 eType)
+{
+	return eType == DataType::VARCHAR || eType == DataType::CHAR;
+}
+
+//------------------------------------------------------------------
+StringCompare ONDXKey::Compare(const ONDXKey& rKey) const
+{
+	//	DBG_ASSERT(is(), "Falscher Indexzugriff");
+	StringCompare eResult;
+
+	if (getValue().isNull())
+	{
+		if (rKey.getValue().isNull() || (rKey.IsText(getDBType()) && !rKey.getValue().getString().getLength()))
+			eResult = COMPARE_EQUAL;
+		else
+			eResult = COMPARE_LESS;
+	}
+	else if (rKey.getValue().isNull())
+	{
+		if (getValue().isNull() || (IsText(getDBType()) && !getValue().getString().getLength()))
+			eResult = COMPARE_EQUAL;
+		else
+			eResult = COMPARE_GREATER;
+	}
+	else if (IsText(getDBType()))
+	{
+		INT32 nRes = getValue().getString().compareTo(rKey.getValue());
+		eResult = (nRes > 0) ? COMPARE_GREATER : (nRes == 0) ? COMPARE_EQUAL : COMPARE_LESS;
+	}
+	else
+	{
+		double m = getValue(),n = rKey.getValue();
+		eResult = (m > n) ? COMPARE_GREATER : (n == m) ? COMPARE_EQUAL : COMPARE_LESS;
+	}
+
+	// Record vergleich, wenn Index !Unique
+	if (eResult == COMPARE_EQUAL && nRecord && rKey.nRecord)
+		eResult = (nRecord > rKey.nRecord) ? COMPARE_GREATER :
+				  (nRecord == rKey.nRecord) ? COMPARE_EQUAL : COMPARE_LESS;
+
+	return eResult;
+}
+// -----------------------------------------------------------------------------
+void ONDXKey::setValue(const ORowSetValue& _rVal)
+{
+	xValue = _rVal;
+}
+// -----------------------------------------------------------------------------
+const ORowSetValue& ONDXKey::getValue() const
+{
+	return xValue;
+}
+// -----------------------------------------------------------------------------
+SvStream& connectivity::dbase::operator >> (SvStream &rStream, ONDXPagePtr& rPage)
+{
+	rStream >> rPage.nPagePos;
+	return rStream;
+}
+// -----------------------------------------------------------------------------
+SvStream& connectivity::dbase::operator << (SvStream &rStream, const ONDXPagePtr& rPage)
+{
+	rStream << rPage.nPagePos;
+	return rStream;
+}
+// -----------------------------------------------------------------------------
+//==================================================================
+// ONDXPagePtr
+//==================================================================
+//------------------------------------------------------------------
+ONDXPagePtr::ONDXPagePtr(const ONDXPagePtr& rRef)
+			  :ONDXPageRef(rRef)
+			  ,nPagePos(rRef.nPagePos)
+{
+}
+
+//------------------------------------------------------------------
+ONDXPagePtr::ONDXPagePtr(ONDXPage* pRefPage)
+			  :ONDXPageRef(pRefPage)
+			  ,nPagePos(0)
+{
+	if (pRefPage)
+		nPagePos = pRefPage->GetPagePos();
+}
+//------------------------------------------------------------------
+ONDXPagePtr& ONDXPagePtr::operator=(const ONDXPagePtr& rRef)
+{
+	ONDXPageRef::operator=(rRef);
+	nPagePos = rRef.nPagePos;
+	return *this;
+}
+
+//------------------------------------------------------------------
+ONDXPagePtr& ONDXPagePtr::operator= (ONDXPage* pRef)
+{
+	ONDXPageRef::operator=(pRef);
+	nPagePos = (pRef) ? pRef->GetPagePos() : 0;
+	return *this;
+}
+// -----------------------------------------------------------------------------
+static UINT32 nValue;
+//------------------------------------------------------------------
+SvStream& connectivity::dbase::operator >> (SvStream &rStream, ONDXPage& rPage)
+{
+	rStream.Seek(rPage.GetPagePos() * 512);
+	rStream >> nValue >> rPage.aChild;
+	rPage.nCount = USHORT(nValue);
+
+//	DBG_ASSERT(rPage.nCount && rPage.nCount < rPage.GetIndex().GetMaxNodes(), "Falscher Count");
+	for (USHORT i = 0; i < rPage.nCount; i++)
+		rPage[i].Read(rStream, rPage.GetIndex());
+	return rStream;
+}
+
+//------------------------------------------------------------------
+SvStream& connectivity::dbase::operator << (SvStream &rStream, const ONDXPage& rPage)
+{
+	// Seite existiert noch nicht
+	ULONG nSize = (rPage.GetPagePos() + 1) * 512;
+	if (nSize > rStream.Seek(STREAM_SEEK_TO_END))
+	{
+		rStream.SetStreamSize(nSize);
+		rStream.Seek(rPage.GetPagePos() * 512);
+
+		char aEmptyData[512];
+		memset(aEmptyData,0x00,512);
+		rStream.Write((BYTE*)aEmptyData,512);
+	}
+	ULONG nCurrentPos = rStream.Seek(rPage.GetPagePos() * 512);
+    OSL_UNUSED( nCurrentPos );
+
+	nValue = rPage.nCount;
+	rStream << nValue << rPage.aChild;
+
+	USHORT i = 0;
+	for (; i < rPage.nCount; i++)
+		rPage[i].Write(rStream, rPage);
+
+	// check if we have to fill the stream with '\0'
+	if(i < rPage.rIndex.getHeader().db_maxkeys)
+	{
+		ULONG nTell = rStream.Tell() % 512;
+		USHORT nBufferSize = rStream.GetBufferSize();
+		ULONG nRemainSize = nBufferSize - nTell;
+=====================================================================
+Found a 86 line (1103 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+=====================================================================
+Found a 251 line (1084 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+                   	break;
+			}
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										  pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		CPPU_CURRENT_NAMESPACE::raiseException(&aUnoExc, pThis->getBridge()->getUno2Cpp() );
+  	           // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32	nFunctionIndex,
+	sal_Int32	nVtableOffset,
+	void **	pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+
+	// pCallStack: this, params
+	// eventual [ret*] lies at pCallStack -1
+	// so count down pCallStack by one to keep it simple
+	// pCallStack: this, params
+	// eventual [ret*] lies at pCallStack -1
+	// so count down pCallStack by one to keep it simple
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+		= bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+	static_cast< char * >(*pCallStack) - nVtableOffset);
+	if ((nFunctionIndex & 0x80000000) != 0) {
+		nFunctionIndex &= 0x7FFFFFFF;
+		--pCallStack;
+	}
+
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex,
+				 "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException( rtl::OUString::createFromAscii("illegal vtable index!"), (XInterface *)pCppI );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+
+#if defined BRIDGES_DEBUG
+	OString cstr( OUStringToOString( aMemberDescr.get()->pTypeName, RTL_TEXTENCODING_ASCII_US ) );
+	fprintf( stderr, "calling %s, nFunctionIndex=%d\n", cstr.getStr(), nFunctionIndex );
+#endif
+
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[2] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+		(*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+		    pCppI->getBridge()->getCppEnv(),
+		    (void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[0] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = pCallStack[0];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(rtl::OUString::createFromAscii("no member description found!"), (XInterface *)pCppI );
+		// is here for dummy
+		eRet = typelib_TypeClass_VOID;
+	}
+	}
+	return eRet;
+}
+
+
+
+//==================================================================================================
+/**
+ * is called on incoming vtable calls
+ * (called by asm snippets)
+ */
+static void cpp_vtable_call()
+{
+=====================================================================
+Found a 227 line (1079 tokens) duplication in the following files: 
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svppspgraphics.cxx
+Starting at line 1250 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/pspgraphics.cxx
+
+            break;
+	}
+	return FAMILY_DONTKNOW;
+}
+
+ImplDevFontAttributes PspGraphics::Info2DevFontAttributes( const psp::FastPrintFontInfo& rInfo )
+{
+    ImplDevFontAttributes aDFA;
+    aDFA.maName         = rInfo.m_aFamilyName;
+    aDFA.maStyleName    = rInfo.m_aStyleName;
+    aDFA.meFamily       = ToFontFamily (rInfo.m_eFamilyStyle);
+    aDFA.meWeight       = ToFontWeight (rInfo.m_eWeight);
+    aDFA.meItalic       = ToFontItalic (rInfo.m_eItalic);
+    aDFA.meWidthType    = ToFontWidth (rInfo.m_eWidth);
+    aDFA.mePitch        = ToFontPitch (rInfo.m_ePitch);
+    aDFA.mbSymbolFlag   = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
+
+    switch (rInfo.m_eEmbeddedbitmap)
+    {
+        default:
+            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+            break;
+        case psp::fcstatus::istrue:
+            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
+            break;
+        case psp::fcstatus::isfalse:
+            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
+            break;
+    }
+
+    switch (rInfo.m_eAntialias)
+    {
+        default:
+            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+            break;
+        case psp::fcstatus::istrue:
+            aDFA.meAntiAlias = ANTIALIAS_TRUE;
+            break;
+        case psp::fcstatus::isfalse:
+            aDFA.meAntiAlias = ANTIALIAS_FALSE;
+            break;
+    }
+
+    // special case for the ghostscript fonts
+    if( aDFA.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
+        aDFA.maName = aDFA.maName.Copy( 4 );
+
+    switch( rInfo.m_eType )
+    {
+        case psp::fonttype::Builtin:
+            aDFA.mnQuality       = 1024;
+            aDFA.mbDevice        = true;
+            aDFA.mbSubsettable   = false;
+            aDFA.mbEmbeddable    = false;
+            break;
+        case psp::fonttype::TrueType:
+            aDFA.mnQuality       = 512;
+            aDFA.mbDevice        = false;
+            aDFA.mbSubsettable   = true;
+            aDFA.mbEmbeddable    = false;
+            break;
+        case psp::fonttype::Type1:
+            aDFA.mnQuality       = 0;
+            aDFA.mbDevice        = false;
+            aDFA.mbSubsettable   = false;
+            aDFA.mbEmbeddable    = true;
+            break;
+        default:
+            aDFA.mnQuality       = 0;
+            aDFA.mbDevice        = false;
+            aDFA.mbSubsettable   = false;
+            aDFA.mbEmbeddable    = false;
+            break;
+    }
+
+    aDFA.mbOrientation   = true;
+
+    // add font family name aliases
+    ::std::list< OUString >::const_iterator it = rInfo.m_aAliases.begin();
+    bool bHasMapNames = false;
+    for(; it != rInfo.m_aAliases.end(); ++it )
+    {
+        if( bHasMapNames )
+            aDFA.maMapNames.Append( ';' );
+        aDFA.maMapNames.Append( (*it).getStr() );
+	bHasMapNames = true;
+    }
+
+#if OSL_DEBUG_LEVEL > 2
+    if( bHasMapNames )
+    {
+        ByteString aOrigName( aDFA.maName, osl_getThreadTextEncoding() );
+        ByteString aAliasNames( aDFA.maMapNames, osl_getThreadTextEncoding() );
+        fprintf( stderr, "using alias names \"%s\" for font family \"%s\"\n",
+            aAliasNames.GetBuffer(), aOrigName.GetBuffer() );
+    }
+#endif
+
+    return aDFA;
+}
+
+// -----------------------------------------------------------------------
+
+void PspGraphics::AnnounceFonts( ImplDevFontList* pFontList, const psp::FastPrintFontInfo& aInfo )
+{
+    int nQuality = 0;
+
+    if( aInfo.m_eType == psp::fonttype::TrueType )
+    {
+        // asian type 1 fonts are not known
+        psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+        ByteString aFileName( rMgr.getFontFileSysPath( aInfo.m_nID ) );
+        int nPos = aFileName.SearchBackward( '_' );
+        if( nPos == STRING_NOTFOUND || aFileName.GetChar( nPos+1 ) == '.' )
+            nQuality += 5;
+        else
+        {
+            static const char* pLangBoost = NULL;
+            static bool bOnce = true;
+            if( bOnce )
+            {
+                bOnce = false;
+                const LanguageType aLang = Application::GetSettings().GetUILanguage();
+                switch( aLang )
+                {
+                    case LANGUAGE_JAPANESE:
+                        pLangBoost = "jan";
+                        break;
+                    case LANGUAGE_CHINESE:
+                    case LANGUAGE_CHINESE_SIMPLIFIED:
+                    case LANGUAGE_CHINESE_SINGAPORE:
+                        pLangBoost = "zhs";
+                        break;
+                    case LANGUAGE_CHINESE_TRADITIONAL:
+                    case LANGUAGE_CHINESE_HONGKONG:
+                    case LANGUAGE_CHINESE_MACAU:
+                        pLangBoost = "zht";
+                        break;
+                    case LANGUAGE_KOREAN:
+                    case LANGUAGE_KOREAN_JOHAB:
+                        pLangBoost = "kor";
+                        break;
+                }
+            }
+
+            if( pLangBoost )
+                if( aFileName.Copy( nPos+1, 3 ).EqualsIgnoreCaseAscii( pLangBoost ) )
+                    nQuality += 10;
+        }
+    }
+
+    ImplPspFontData* pFD = new ImplPspFontData( aInfo );
+    pFD->mnQuality += nQuality;
+    pFontList->Add( pFD );
+}
+
+bool PspGraphics::filterText( const String& rOrig, String& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop )
+{
+	if( ! m_pPhoneNr )
+		return false;
+
+    rCutStop = rCutStart = STRING_NOTFOUND;
+
+#define FAX_PHONE_TOKEN          "@@#"
+#define FAX_PHONE_TOKEN_LENGTH   3
+#define FAX_END_TOKEN            "@@"
+#define FAX_END_TOKEN_LENGTH     2
+
+	bool bRet = false;
+	bool bStarted = false;
+	bool bStopped = false;
+	USHORT nPos;
+	USHORT nStart = 0;
+	USHORT nStop = rLen;
+	String aPhone = rOrig.Copy( nIndex, rLen );
+
+	if( ! m_bPhoneCollectionActive )
+	{
+		if( ( nPos = aPhone.SearchAscii( FAX_PHONE_TOKEN ) ) != STRING_NOTFOUND )
+		{
+			nStart = nPos;
+			m_bPhoneCollectionActive = true;
+			m_aPhoneCollection.Erase();
+			bRet = true;
+			bStarted = true;
+		}
+	}
+	if( m_bPhoneCollectionActive )
+	{
+		bRet = true;
+		nPos = bStarted ? nStart + FAX_PHONE_TOKEN_LENGTH : 0;
+		if( ( nPos = aPhone.SearchAscii( FAX_END_TOKEN, nPos ) ) != STRING_NOTFOUND )
+		{
+			m_bPhoneCollectionActive = false;
+			nStop = nPos + FAX_END_TOKEN_LENGTH;
+			bStopped = true;
+		}
+		int nTokenStart = nStart + (bStarted ? FAX_PHONE_TOKEN_LENGTH : 0);
+		int nTokenStop = nStop - (bStopped ? FAX_END_TOKEN_LENGTH : 0);
+		m_aPhoneCollection += aPhone.Copy( nTokenStart, nTokenStop - nTokenStart );
+		if( ! m_bPhoneCollectionActive )
+		{
+            m_pPhoneNr->AppendAscii( "<Fax#>" );
+			m_pPhoneNr->Append( m_aPhoneCollection );
+            m_pPhoneNr->AppendAscii( "</Fax#>" );
+			m_aPhoneCollection.Erase();
+		}
+	}
+	if( m_aPhoneCollection.Len() > 1024 )
+	{
+		m_bPhoneCollectionActive = false;
+		m_aPhoneCollection.Erase();
+		bRet = false;
+	}
+
+    if( bRet && m_bSwallowFaxNo )
+    {
+        rLen -= nStop - nStart;
+        rCutStart = nStart+nIndex;
+        rCutStop = nStop+nIndex;
+        if( rCutStart )
+            rNewText = rOrig.Copy( 0, rCutStart );
+        rNewText += rOrig.Copy( rCutStop );
+    }
+
+    return bRet && m_bSwallowFaxNo;
+}
+=====================================================================
+Found a 209 line (1069 tokens) duplication in the following files: 
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx
+
+			break;
+	}
+}
+
+//=================================================================================================
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+	bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: complex ret ptr, this, values|ptr ...
+  	char * pCppStack	=
+  		(char *)alloca( (nParams+2) * sizeof(sal_Int64) );
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+			*(void**)pCppStack = NULL;
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType(pReturnTypeDescr )
+												? alloca( pReturnTypeDescr->nSize )
+												: pUnoReturn); // direct way
+		}
+		pCppStack += sizeof(void*);
+	}
+	// push this
+	void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+  	       + aVtableSlot.offset;
+  	       *(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			pCppArgs[ nPos ] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+                        OSL_ASSERT( sizeof (double) == sizeof (sal_Int64) );
+                          *reinterpret_cast< sal_Int32 * >(pCppStack) =
+                          *reinterpret_cast< sal_Int32 const * >(pUnoArgs[ nPos ]);
+                          pCppStack += sizeof (sal_Int32);
+                          *reinterpret_cast< sal_Int32 * >(pCppStack) =
+                          *(reinterpret_cast< sal_Int32 const * >(pUnoArgs[ nPos ] ) + 1);
+                          break;
+            		default:
+                          uno_copyAndConvertData(
+                             pCppArgs[nPos], pUnoArgs[nPos], pParamTypeDescr,
+                            pThis->getBridge()->getUno2Cpp() );
+                          break;
+                        }
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                                	pUnoArgs[nPos], pParamTypeDescr,
+					pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		int nStackLongs = (pCppStack - pCppStackStart)/sizeof(sal_Int32);
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic" );
+		
+		if( nStackLongs & 1 )
+			// stack has to be 8 byte aligned
+			nStackLongs++;
+		callVirtualMethod(
+			pAdjustedThisPtr,
+			aVtableSlot.index,
+			pCppReturn,
+			pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart,
+			 nStackLongs);
+		// NO exception occured...
+		*ppUnoExc = 0;
+
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch( ... )
+ 	{
+ 		// get exception
+		   fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
+								*ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+#if defined BRIDGES_DEBUG
+    OString cstr( OUStringToOString( pMemberDescr->pTypeName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "received dispatch( %s )\n", cstr.getStr() );
+#endif
+    
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+       = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+=====================================================================
+Found a 238 line (1056 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+        terminate();
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+        terminate();
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno )
+{
+    OSL_ENSURE( header, "### no exception header!!!" );
+    if (! header)
+        terminate();
+
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+	::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" );
+    if (! pExcTypeDescr)
+        terminate();
+
+    // construct uno exception any
+    ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+    ::typelib_typedescription_release( pExcTypeDescr );
+}
+
+}
+=====================================================================
+Found a 130 line (1029 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3626 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info cp1251_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0x69, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0x49 },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x01, 0x90, 0x80 },
+=====================================================================
+Found a 21 line (992 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x15, 0xFF38}, {0x15, 0xFF39}, {0x15, 0xFF3A}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff58 - ff5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff60 - ff67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff68 - ff6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff70 - ff77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff78 - ff7f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff80 - ff87
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff88 - ff8f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff90 - ff97
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff98 - ff9f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa0 - ffa7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa8 - ffaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb0 - ffb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb8 - ffbf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc0 - ffc7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc8 - ffcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd0 - ffd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd8 - ffdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe0 - ffe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff0 - fff7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff8 - ffff
+=====================================================================
+Found a 56 line (989 tokens) duplication in the following files: 
+Starting at line 580 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 633 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,    0,  993
+=====================================================================
+Found a 230 line (988 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.cxx
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/streamwrap.cxx
+
+namespace foo
+{
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::osl;
+
+//==================================================================
+//= OInputStreamWrapper
+//==================================================================
+//------------------------------------------------------------------
+OInputStreamWrapper::OInputStreamWrapper( File& _rStream )
+				 :m_pSvStream(&_rStream)
+				 ,m_bSvStreamOwner(sal_False)
+{
+}
+
+//------------------------------------------------------------------
+OInputStreamWrapper::OInputStreamWrapper( File* pStream, sal_Bool bOwner )
+				 :m_pSvStream( pStream )
+				 ,m_bSvStreamOwner( bOwner )
+{
+}
+
+//------------------------------------------------------------------
+OInputStreamWrapper::~OInputStreamWrapper()
+{
+	if( m_bSvStreamOwner )
+		delete m_pSvStream;
+
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OInputStreamWrapper::readBytes(staruno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
+				throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	checkConnected();
+
+	if (nBytesToRead < 0)
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	aData.realloc(nBytesToRead);
+
+	sal_uInt64 nRead = 0;
+	m_pSvStream->read((void*)aData.getArray(), nBytesToRead,nRead);
+
+	checkError();
+
+	// Wenn gelesene Zeichen < MaxLength, staruno::Sequence anpassen
+	if (nRead < nBytesToRead)
+		aData.realloc( nRead );
+
+	return nRead;
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OInputStreamWrapper::readSomeBytes(staruno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	checkError();
+
+	if (nMaxBytesToRead < 0)
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+
+	return readBytes(aData, nMaxBytesToRead);
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OInputStreamWrapper::skipBytes(sal_Int32 nBytesToSkip) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkError();
+
+	m_pSvStream->setPos(osl_Pos_Current,nBytesToSkip);
+	checkError();
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OInputStreamWrapper::available() throw( stario::NotConnectedException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	sal_uInt64 nPos = 0;
+	m_pSvStream->getPos(nPos);
+	checkError();
+
+	m_pSvStream->setPos(Pos_End,0);
+	checkError();
+
+	sal_uInt64 nAvailable = 0;
+	m_pSvStream->getPos(nAvailable);
+	nAvailable -= nPos;
+
+	m_pSvStream->setPos(Pos_Absolut,nPos);
+	checkError();
+
+	return nAvailable;
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OInputStreamWrapper::closeInput() throw( stario::NotConnectedException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	if (m_bSvStreamOwner)
+		delete m_pSvStream;
+
+	m_pSvStream = NULL;
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkConnected() const
+{
+	if (!m_pSvStream)
+		throw stario::NotConnectedException(::rtl::OUString(), const_cast<staruno::XWeak*>(static_cast<const staruno::XWeak*>(this)));
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkError() const
+{
+	checkConnected();
+}
+
+//==================================================================
+//= OSeekableInputStreamWrapper
+//==================================================================
+//------------------------------------------------------------------------------
+OSeekableInputStreamWrapper::OSeekableInputStreamWrapper(File& _rStream)
+	:OInputStreamWrapper(_rStream)
+{
+}
+
+//------------------------------------------------------------------------------
+OSeekableInputStreamWrapper::OSeekableInputStreamWrapper(File* _pStream, sal_Bool _bOwner)
+	:OInputStreamWrapper(_pStream, _bOwner)
+{
+}
+
+//------------------------------------------------------------------------------
+Any SAL_CALL OSeekableInputStreamWrapper::queryInterface( const Type& _rType ) throw (RuntimeException)
+{
+	Any aReturn = OInputStreamWrapper::queryInterface(_rType);
+	if (!aReturn.hasValue())
+		aReturn = OSeekableInputStreamWrapper_Base::queryInterface(_rType);
+	return aReturn;
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSeekableInputStreamWrapper::acquire(  ) throw ()
+{
+	OInputStreamWrapper::acquire();
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSeekableInputStreamWrapper::release(  ) throw ()
+{
+	OInputStreamWrapper::release();
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSeekableInputStreamWrapper::seek( sal_Int64 _nLocation ) throw (IllegalArgumentException, IOException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	m_pSvStream->setPos(Pos_Current,(sal_uInt32)_nLocation);
+	checkError();
+}
+
+//------------------------------------------------------------------------------
+sal_Int64 SAL_CALL OSeekableInputStreamWrapper::getPosition(  ) throw (IOException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	sal_uInt64 nPos = 0;
+	nPos = m_pSvStream->getPos(nPos);
+	checkError();
+	return nPos;
+}
+
+//------------------------------------------------------------------------------
+sal_Int64 SAL_CALL OSeekableInputStreamWrapper::getLength(  ) throw (IOException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	sal_uInt64 nCurrentPos = 0;
+	m_pSvStream->getPos(nCurrentPos);
+	checkError();
+
+	m_pSvStream->setPos(osl_Pos_End,0);
+	sal_uInt64 nEndPos = 0;
+	m_pSvStream->getPos(nEndPos);
+	m_pSvStream->setPos(osl_Pos_Absolut,nCurrentPos);
+
+	checkError();
+
+	return nEndPos;
+}
+
+//==================================================================
+//= OOutputStreamWrapper
+//==================================================================
+//------------------------------------------------------------------------------
+void SAL_CALL OOutputStreamWrapper::writeBytes(const staruno::Sequence< sal_Int8 >& aData) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	sal_uInt64 nWritten = 0;
+	rStream.write(aData.getConstArray(),aData.getLength(),nWritten);
+	if (nWritten != aData.getLength())
+	{
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+	}
+}
+
+//------------------------------------------------------------------
+void SAL_CALL OOutputStreamWrapper::flush() throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+}
+
+//------------------------------------------------------------------
+void SAL_CALL OOutputStreamWrapper::closeOutput() throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+}
+
+} // namespace utl
+=====================================================================
+Found a 187 line (979 tokens) duplication in the following files: 
+Starting at line 527 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/win/window.cxx
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/xine/window.cxx
+
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addWindowListener( const uno::Reference< awt::XWindowListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeWindowListener( const uno::Reference< awt::XWindowListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addFocusListener( const uno::Reference< awt::XFocusListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeFocusListener( const uno::Reference< awt::XFocusListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addKeyListener( const uno::Reference< awt::XKeyListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeKeyListener( const uno::Reference< awt::XKeyListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addMouseListener( const uno::Reference< awt::XMouseListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeMouseListener( const uno::Reference< awt::XMouseListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addPaintListener( const uno::Reference< awt::XPaintListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removePaintListener( const uno::Reference< awt::XPaintListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::dispose(  )
+    throw (uno::RuntimeException)
+{
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
+    throw (uno::RuntimeException)
+{
+    maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void Window::fireMousePressedEvent( const ::com::sun::star::awt::MouseEvent& rEvt )
+{
+    ::cppu::OInterfaceContainerHelper* pContainer = maListeners.getContainer( getCppuType( (uno::Reference< awt::XMouseListener >*) 0 ) );
+    
+    if( pContainer )
+    {
+        ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+        
+        while( aIter.hasMoreElements() )
+            uno::Reference< awt::XMouseListener >( aIter.next(), uno::UNO_QUERY )->mousePressed( rEvt );
+    }
+}
+
+// -----------------------------------------------------------------------------
+
+void Window::fireMouseReleasedEvent( const ::com::sun::star::awt::MouseEvent& rEvt )
+{
+    ::cppu::OInterfaceContainerHelper* pContainer = maListeners.getContainer( getCppuType( (uno::Reference< awt::XMouseListener >*) 0 ) );
+    
+    if( pContainer )
+    {
+        ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+        
+        while( aIter.hasMoreElements() )
+            uno::Reference< awt::XMouseListener >( aIter.next(), uno::UNO_QUERY )->mouseReleased( rEvt );
+    }
+}
+
+// -----------------------------------------------------------------------------
+
+void Window::fireMouseMovedEvent( const ::com::sun::star::awt::MouseEvent& rEvt )
+{
+    ::cppu::OInterfaceContainerHelper* pContainer = maListeners.getContainer( getCppuType( (uno::Reference< awt::XMouseMotionListener >*) 0 ) );
+    
+    if( pContainer )
+    {
+        ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+        
+        while( aIter.hasMoreElements() )
+            uno::Reference< awt::XMouseMotionListener >( aIter.next(), uno::UNO_QUERY )->mouseMoved( rEvt );
+    }
+}
+
+// -----------------------------------------------------------------------------
+
+void Window::fireSetFocusEvent( const ::com::sun::star::awt::FocusEvent& rEvt )
+{
+    ::cppu::OInterfaceContainerHelper* pContainer = maListeners.getContainer( getCppuType( (uno::Reference< awt::XFocusListener >*) 0 ) );
+    
+    if( pContainer )
+    {
+        ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+        
+        while( aIter.hasMoreElements() )
+            uno::Reference< awt::XFocusListener >( aIter.next(), uno::UNO_QUERY )->focusGained( rEvt );
+    }
+}
+
+// ------------------------------------------------------------------------------
+
+::rtl::OUString SAL_CALL Window::getImplementationName(  )
+    throw (uno::RuntimeException)
+{
+    return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_XINE_WINDOW_IMPLEMENTATIONNAME ) );
+=====================================================================
+Found a 96 line (970 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+using namespace rtl;
+using namespace osl;
+using namespace com::sun::star;
+
+const
+  sal_Char aBase64EncodeTable[] =
+    { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+      'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+
+const
+  sal_uInt8 aBase64DecodeTable[]  =
+    { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, // 0-15
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, // 16-31
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  0,  0, 63, // 32-47
+//                                                +               /
+
+     52, 53, 54, 55, 56, 57, 58, 59, 60, 61,  0,  0,  0,  0,  0,  0, // 48-63
+//    0   1   2   3   4   5   6   7   8   9               =
+
+      0,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, // 64-79
+//        A   B   C   D   E   F   G   H   I   J   K   L   M   N   O
+
+     15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,  0,  0,  0,  0,  0, // 80-95
+//    P   Q   R   S   T   U   V   W   X   Y   Z
+
+      0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, // 96-111
+//        a   b   c   d   e   f   g   h   i   j   k   l   m   n   o
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+
+
+void ThreeByteToFourByte (const sal_uInt8* pBuffer, const sal_Int32 nStart, const sal_Int32 nFullLen, rtl::OUStringBuffer& sBuffer)
+{
+	sal_Int32 nLen(nFullLen - nStart);
+	if (nLen > 3)
+		nLen = 3;
+	if (nLen == 0)
+	{
+		sBuffer.setLength(0);
+		return;
+	}
+
+	sal_Int32 nBinaer;
+	switch (nLen)
+	{
+		case 1:
+		{
+			nBinaer = ((sal_uInt8)pBuffer[nStart + 0]) << 16;
+		}
+		break;
+		case 2:
+		{
+			nBinaer = (((sal_uInt8)pBuffer[nStart + 0]) << 16) +
+					(((sal_uInt8)pBuffer[nStart + 1]) <<  8);
+		}
+		break;
+		default:
+		{
+			nBinaer = (((sal_uInt8)pBuffer[nStart + 0]) << 16) +
+					(((sal_uInt8)pBuffer[nStart + 1]) <<  8) +
+					((sal_uInt8)pBuffer[nStart + 2]);
+		}
+		break;
+	}
+
+	sBuffer.appendAscii("====");
+
+	sal_uInt8 nIndex = static_cast< sal_uInt8 >((nBinaer & 0xFC0000) >> 18);
+	sBuffer.setCharAt(0, aBase64EncodeTable [nIndex]);
+
+	nIndex = static_cast< sal_uInt8 >((nBinaer & 0x3F000) >> 12);
+	sBuffer.setCharAt(1, aBase64EncodeTable [nIndex]);
+	if (nLen == 1)
+		return;
+
+	nIndex = static_cast< sal_uInt8 >((nBinaer & 0xFC0) >> 6);
+	sBuffer.setCharAt(2, aBase64EncodeTable [nIndex]);
+	if (nLen == 2)
+		return;
+
+	nIndex = static_cast< sal_uInt8 >(nBinaer & 0x3F);
+=====================================================================
+Found a 162 line (967 tokens) duplication in the following files: 
+Starting at line 6302 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6637 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    memset( aData, 0, nMaxDopLen );
+    BYTE* pData = aData;
+
+    // dann mal die Daten auswerten
+    UINT16 a16Bit;
+    BYTE   a8Bit;
+
+    a16Bit = 0;
+    if (fFacingPages)
+        a16Bit |= 0x0001;
+    if (fWidowControl)
+        a16Bit |= 0x0002;
+    if (fPMHMainDoc)
+        a16Bit |= 0x0004;
+    a16Bit |= ( 0x0018 & (grfSuppression << 3));
+    a16Bit |= ( 0x0060 & (fpc << 5));
+    a16Bit |= ( 0xff00 & (grpfIhdt << 8));
+    Set_UInt16( pData, a16Bit );
+
+    a16Bit = 0;
+    a16Bit |= ( 0x0003 & rncFtn );
+    a16Bit |= ( ~0x0003 & (nFtn << 2));
+    Set_UInt16( pData, a16Bit );
+
+    a8Bit = 0;
+    if( fOutlineDirtySave ) a8Bit |= 0x01;
+    Set_UInt8( pData, a8Bit );
+
+    a8Bit = 0;
+    if( fOnlyMacPics )  a8Bit |= 0x01;
+    if( fOnlyWinPics )  a8Bit |= 0x02;
+    if( fLabelDoc )     a8Bit |= 0x04;
+    if( fHyphCapitals ) a8Bit |= 0x08;
+    if( fAutoHyphen )   a8Bit |= 0x10;
+    if( fFormNoFields ) a8Bit |= 0x20;
+    if( fLinkStyles )   a8Bit |= 0x40;
+    if( fRevMarking )   a8Bit |= 0x80;
+    Set_UInt8( pData, a8Bit );
+
+    a8Bit = 0;
+    if( fBackup )               a8Bit |= 0x01;
+    if( fExactCWords )          a8Bit |= 0x02;
+    if( fPagHidden )            a8Bit |= 0x04;
+    if( fPagResults )           a8Bit |= 0x08;
+    if( fLockAtn )              a8Bit |= 0x10;
+    if( fMirrorMargins )        a8Bit |= 0x20;
+    if( fReadOnlyRecommended )  a8Bit |= 0x40;
+    if( fDfltTrueType )         a8Bit |= 0x80;
+    Set_UInt8( pData, a8Bit );
+
+    a8Bit = 0;
+    if( fPagSuppressTopSpacing )    a8Bit |= 0x01;
+    if( fProtEnabled )              a8Bit |= 0x02;
+    if( fDispFormFldSel )           a8Bit |= 0x04;
+    if( fRMView )                   a8Bit |= 0x08;
+    if( fRMPrint )                  a8Bit |= 0x10;
+    if( fWriteReservation )         a8Bit |= 0x20;
+    if( fLockRev )                  a8Bit |= 0x40;
+    if( fEmbedFonts )               a8Bit |= 0x80;
+    Set_UInt8( pData, a8Bit );
+
+
+    a8Bit = 0;
+    if( copts_fNoTabForInd )            a8Bit |= 0x01;
+    if( copts_fNoSpaceRaiseLower )      a8Bit |= 0x02;
+    if( copts_fSupressSpbfAfterPgBrk )  a8Bit |= 0x04;
+    if( copts_fWrapTrailSpaces )        a8Bit |= 0x08;
+    if( copts_fMapPrintTextColor )      a8Bit |= 0x10;
+    if( copts_fNoColumnBalance )        a8Bit |= 0x20;
+    if( copts_fConvMailMergeEsc )       a8Bit |= 0x40;
+    if( copts_fSupressTopSpacing )      a8Bit |= 0x80;
+    Set_UInt8( pData, a8Bit );
+
+    a8Bit = 0;
+    if( copts_fOrigWordTableRules )     a8Bit |= 0x01;
+    if( copts_fTransparentMetafiles )   a8Bit |= 0x02;
+    if( copts_fShowBreaksInFrames )     a8Bit |= 0x04;
+    if( copts_fSwapBordersFacingPgs )   a8Bit |= 0x08;
+    Set_UInt8( pData, a8Bit );
+
+    Set_UInt16( pData, dxaTab );
+    Set_UInt16( pData, wSpare );
+    Set_UInt16( pData, dxaHotZ );
+    Set_UInt16( pData, cConsecHypLim );
+    Set_UInt16( pData, wSpare2 );
+    Set_UInt32( pData, dttmCreated );
+    Set_UInt32( pData, dttmRevised );
+    Set_UInt32( pData, dttmLastPrint );
+    Set_UInt16( pData, nRevision );
+    Set_UInt32( pData, tmEdited );
+    Set_UInt32( pData, cWords );
+    Set_UInt32( pData, cCh );
+    Set_UInt16( pData, cPg );
+    Set_UInt32( pData, cParas );
+
+    a16Bit = 0;
+    a16Bit |= ( 0x0003 & rncEdn );
+    a16Bit |= (~0x0003 & ( nEdn << 2));
+    Set_UInt16( pData, a16Bit );
+
+    a16Bit = 0;
+    a16Bit |= (0x0003 & epc );
+    a16Bit |= (0x003c & (nfcFtnRef << 2));
+    a16Bit |= (0x03c0 & (nfcEdnRef << 6));
+    if( fPrintFormData )    a16Bit |= 0x0400;
+    if( fSaveFormData )     a16Bit |= 0x0800;
+    if( fShadeFormData )    a16Bit |= 0x1000;
+    if( fWCFtnEdn )         a16Bit |= 0x8000;
+    Set_UInt16( pData, a16Bit );
+
+    Set_UInt32( pData, cLines );
+    Set_UInt32( pData, cWordsFtnEnd );
+    Set_UInt32( pData, cChFtnEdn );
+    Set_UInt16( pData, cPgFtnEdn );
+    Set_UInt32( pData, cParasFtnEdn );
+    Set_UInt32( pData, cLinesFtnEdn );
+    Set_UInt32( pData, lKeyProtDoc );
+
+    a16Bit = 0;
+    if (wvkSaved)
+        a16Bit |= 0x0007;
+    a16Bit |= (0x0ff8 & (wScaleSaved << 3));
+    a16Bit |= (0x3000 & (zkSaved << 12));
+    Set_UInt16( pData, a16Bit );
+
+    if( 8 == rFib.nVersion )
+    {
+        Set_UInt32(pData, GetCompatabilityOptions());
+
+        Set_UInt16( pData, adt );
+
+        doptypography.WriteToMem(pData);
+
+        memcpy( pData, &dogrid, sizeof( WW8_DOGRID ));
+        pData += sizeof( WW8_DOGRID );
+
+        a16Bit = 0x12;      // lvl auf 9 setzen
+        if( fHtmlDoc )          a16Bit |= 0x0200;
+        if( fSnapBorder )       a16Bit |= 0x0800;
+        if( fIncludeHeader )    a16Bit |= 0x1000;
+        if( fIncludeFooter )    a16Bit |= 0x2000;
+        if( fForcePageSizePag ) a16Bit |= 0x4000;
+        if( fMinFontSizePag )   a16Bit |= 0x8000;
+        Set_UInt16( pData, a16Bit );
+
+        a16Bit = 0;
+        if( fHaveVersions ) a16Bit |= 0x0001;
+        if( fAutoVersion )  a16Bit |= 0x0002;
+        Set_UInt16( pData, a16Bit );
+
+        pData += 12;
+
+        Set_UInt32( pData, cChWS );
+        Set_UInt32( pData, cChWSFtnEdn );
+        Set_UInt32( pData, grfDocEvents );
+
+        pData += 4+30+8;
+
+        Set_UInt32( pData, cDBC );
+        Set_UInt32( pData, cDBCFtnEdn );
+
+        pData += 1 * sizeof( INT32);
+=====================================================================
+Found a 223 line (964 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+	}
+	
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( 
+         pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( 
+                    &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+                // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nFunctionIndex,
+        sal_Int32 nVtableOffset,
+        void ** gpreg, void ** fpreg, void ** ovrflw,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+	
+	// gpreg:  [ret *], this, [other gpr params]
+	// fpreg:  [fpr params]
+	// ovrflw: [gpr or fpr params (in space allocated for all params properly aligned)]
+
+        void * pThis;
+	if( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+		pThis = gpreg[1];
+	}
+	else
+        {
+		pThis = gpreg[0];
+        }
+	
+        pThis = static_cast< char * >(pThis) - nVtableOffset;
+        bridges::cpp_uno::shared::CppInterfaceProxy * pCppI 
+	= bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(pThis);
+
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( gpreg[0] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = gpreg[0];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("no member description found!"),
+            (XInterface *)pThis );
+		// is here for dummy
+		eRet = typelib_TypeClass_VOID;
+	}
+	}
+
+	return eRet;
+}
+
+//==================================================================================================
+/**
+ * is called on incoming vtable calls
+ * (called by asm snippets)
+ */
+static void cpp_vtable_call( int nFunctionIndex, int nVtableOffset, void** gpregptr, void** fpregptr, void** ovrflw)
+{
+        sal_Int32     gpreg[8];
+        double        fpreg[13];
+=====================================================================
+Found a 104 line (956 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtprmap.cxx
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtprmap.cxx
+
+	MT_E( "CharCaseMap",		FO,		FONT_VARIANT,	 	XML_TYPE_TEXT_CASEMAP_VAR,	0 ),
+	MT_E( "CharCaseMap",		FO,		TEXT_TRANSFORM, 	XML_TYPE_TEXT_CASEMAP,	0 ),
+	// RES_CHRATR_COLOR
+	MT_ED( "CharColor",		FO,		COLOR, 				XML_TYPE_COLORAUTO|MID_FLAG_MERGE_PROPERTY,	0 ),
+	MT_ED( "CharColor",		STYLE,	USE_WINDOW_FONT_COLOR,	XML_TYPE_ISAUTOCOLOR|MID_FLAG_MERGE_PROPERTY,	0 ),
+	// RES_CHRATR_CONTOUR
+	MT_E( "CharContoured",	STYLE,	TEXT_OUTLINE, 		XML_TYPE_BOOL,	0 ),
+	// RES_CHRATR_CROSSEDOUT
+	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_STYLE, 	XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY,	0),
+	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_TYPE, 	XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY,	0),
+	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_WIDTH, 	XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY,	0),
+	MT_E( "CharStrikeout",	STYLE,	TEXT_LINE_THROUGH_TEXT, 	XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY,	0),
+	// RES_CHRATR_ESCAPEMENT
+	MT_E( "CharEscapement",		 STYLE, TEXT_POSITION,	XML_TYPE_TEXT_ESCAPEMENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
+	MT_E( "CharEscapementHeight", STYLE, TEXT_POSITION,	XML_TYPE_TEXT_ESCAPEMENT_HEIGHT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
+	// RES_CHRATR_FONT
+	MT_ED( "CharFontName",	STYLE,	FONT_NAME, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME ),
+	MT_ED( "CharFontName",	FO,		FONT_FAMILY, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME ),
+	MT_ED( "CharFontStyleName",STYLE,	FONT_STYLE_NAME,	XML_TYPE_STRING, CTF_FONTSTYLENAME ),
+	MT_ED( "CharFontFamily",	STYLE,	FONT_FAMILY_GENERIC,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY ),
+	MT_ED( "CharFontPitch",	STYLE,	FONT_PITCH,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH ),
+	MT_ED( "CharFontCharSet",	STYLE,	FONT_CHARSET,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET ),
+	// RES_CHRATR_FONTSIZE
+	MT_ED( "CharHeight",		  FO,	FONT_SIZE,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT ),
+	MT_ED( "CharPropHeight",FO,	FONT_SIZE,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL ),
+	MT_ED( "CharDiffHeight",STYLE,FONT_SIZE_REL,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF ),
+	// RES_CHRATR_KERNING
+	MT_E( "CharKerning",		FO,		LETTER_SPACING,		XML_TYPE_TEXT_KERNING, 0 ),
+	// RES_CHRATR_LANGUAGE
+	MT_ED( "CharLocale",		FO,		LANGUAGE, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
+	MT_ED( "CharLocale",		FO,		COUNTRY, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
+	// RES_CHRATR_POSTURE
+	MT_E( "CharPosture",		FO,		FONT_STYLE,			XML_TYPE_TEXT_POSTURE, 0 ),
+	// RES_CHRATR_PROPORTIONALFONTSIZE
+	// TODO: not used?
+	// RES_CHRATR_SHADOWED
+	MT_E( "CharShadowed",	FO,		TEXT_SHADOW,		XML_TYPE_TEXT_SHADOWED, 0 ),
+	// BIS HIER GEPRUEFT!
+	// RES_CHRATR_UNDERLINE
+	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_STYLE,		XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, CTF_UNDERLINE ),
+	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_TYPE,		XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
+	MT_E( "CharUnderline",	STYLE,	TEXT_UNDERLINE_WIDTH,		XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
+	MT_E( "CharUnderlineColor",	STYLE,	TEXT_UNDERLINE_COLOR,		XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, CTF_UNDERLINE_COLOR	),
+	MT_E( "CharUnderlineHasColor",	STYLE,	TEXT_UNDERLINE_COLOR,		XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, CTF_UNDERLINE_HASCOLOR	),
+	// RES_CHRATR_WEIGHT
+	MT_E( "CharWeight",		FO,		FONT_WEIGHT,		XML_TYPE_TEXT_WEIGHT, 0 ),
+	// RES_CHRATR_WORDLINEMODE
+	MT_E( "CharWordMode",	STYLE,	TEXT_UNDERLINE_MODE,		XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
+	MT_E( "CharWordMode",	STYLE,	TEXT_LINE_THROUGH_MODE,		XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
+	// RES_CHRATR_AUTOKERN
+	MT_E( "CharAutoKerning",	STYLE,	LETTER_KERNING,		XML_TYPE_BOOL, 0 ),
+	// RES_CHRATR_BLINK
+	MT_E( "CharFlash",		STYLE,	TEXT_BLINKING,		XML_TYPE_BOOL, 0 ),
+	// RES_CHRATR_NOHYPHEN
+	// TODO: not used?
+	// RES_CHRATR_NOLINEBREAK
+	// TODO: not used?
+	// RES_CHRATR_BACKGROUND
+	MT_E( "CharBackColor",	FO,	BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
+	MT_E( "CharBackTransparent",	FO,	BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
+	MT_E( "CharBackColor",	FO,	TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ),
+	// RES_CHRATR_CJK_FONT
+	MT_ED( "CharFontNameAsian",	STYLE,	FONT_NAME_ASIAN, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CJK ),
+	MT_ED( "CharFontNameAsian",	STYLE,		FONT_FAMILY_ASIAN, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CJK ),
+	MT_ED( "CharFontStyleNameAsian",STYLE,	FONT_STYLE_NAME_ASIAN,	XML_TYPE_STRING, CTF_FONTSTYLENAME_CJK ),
+	MT_ED( "CharFontFamilyAsian",	STYLE,	FONT_FAMILY_GENERIC_ASIAN,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CJK ),
+	MT_ED( "CharFontPitchAsian",	STYLE,	FONT_PITCH_ASIAN,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CJK ),
+	MT_ED( "CharFontCharSetAsian",	STYLE,	FONT_CHARSET_ASIAN,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CJK ),
+	// RES_CHRATR_CJK_FONTSIZE
+	MT_ED( "CharHeightAsian",		  STYLE,	FONT_SIZE_ASIAN,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CJK ),
+	MT_ED( "CharPropHeightAsian",STYLE,	FONT_SIZE_ASIAN,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CJK ),
+	MT_ED( "CharDiffHeightAsian",STYLE,FONT_SIZE_REL_ASIAN,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CJK ),
+	// RES_CHRATR_CJK_LANGUAGE
+	MT_ED( "CharLocaleAsian",		STYLE,		LANGUAGE_ASIAN, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
+	MT_ED( "CharLocaleAsian",		STYLE,		COUNTRY_ASIAN, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
+	// RES_CHRATR_CJK_POSTURE
+	MT_E( "CharPostureAsian",		STYLE,		FONT_STYLE_ASIAN,			XML_TYPE_TEXT_POSTURE, 0 ),
+	// RES_CHRATR_CJK_WEIGHT
+	MT_E( "CharWeightAsian",		STYLE,		FONT_WEIGHT_ASIAN,		XML_TYPE_TEXT_WEIGHT, 0 ),
+	// RES_CHRATR_CTL_FONT
+	MT_ED( "CharFontNameComplex",	STYLE,	FONT_NAME_COMPLEX, 			XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CTL ),
+	MT_ED( "CharFontNameComplex",	STYLE,		FONT_FAMILY_COMPLEX, 		XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CTL ),
+	MT_ED( "CharFontStyleNameComplex",STYLE,	FONT_STYLE_NAME_COMPLEX,	XML_TYPE_STRING, CTF_FONTSTYLENAME_CTL ),
+	MT_ED( "CharFontFamilyComplex",	STYLE,	FONT_FAMILY_GENERIC_COMPLEX,XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CTL ),
+	MT_ED( "CharFontPitchComplex",	STYLE,	FONT_PITCH_COMPLEX,			XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CTL ),
+	MT_ED( "CharFontCharSetComplex",	STYLE,	FONT_CHARSET_COMPLEX,		XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CTL ),
+	// RES_CHRATR_CTL_FONTSIZE
+	MT_ED( "CharHeightComplex",		  STYLE,	FONT_SIZE_COMPLEX,			XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CTL ),
+	MT_ED( "CharPropHeightComplex",STYLE,	FONT_SIZE_COMPLEX,			XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CTL ),
+	MT_ED( "CharDiffHeightComplex",STYLE,FONT_SIZE_REL_COMPLEX,		XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CTL ),
+	// RES_CHRATR_CTL_LANGUAGE
+	MT_ED( "CharLocaleComplex",		STYLE,		LANGUAGE_COMPLEX, 			XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY, 0 ),
+	MT_ED( "CharLocaleComplex",		STYLE,		COUNTRY_COMPLEX, 			XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY, 0 ),
+	// RES_CHRATR_CTL_POSTURE
+	MT_E( "CharPostureComplex",		STYLE,		FONT_STYLE_COMPLEX,			XML_TYPE_TEXT_POSTURE, 0 ),
+	// RES_CHRATR_CTL_WEIGHT
+	MT_E( "CharWeightComplex",		STYLE,		FONT_WEIGHT_COMPLEX,		XML_TYPE_TEXT_WEIGHT, 0 ),
+	// RES_CHRATR_ROTATE
+	MT_E( "CharRotation",			STYLE,		TEXT_ROTATION_ANGLE,		XML_TYPE_TEXT_ROTATION_ANGLE, 0 ),
+	MT_E( "CharRotationIsFitToLine",	STYLE,		TEXT_ROTATION_SCALE,		XML_TYPE_TEXT_ROTATION_SCALE, 0 ),
+	// RES_CHRATR_EMPHASIS_MARK
+	MT_E( "CharEmphasis",			STYLE,		TEXT_EMPHASIZE,				XML_TYPE_TEXT_EMPHASIZE, 0 ),
+	// RES_CHRATR_TWO_LINES
+	MT_E( "CharCombineIsOn",			STYLE,		TEXT_COMBINE,				XML_TYPE_TEXT_COMBINE|MID_FLAG_MULTI_PROPERTY, 0 ),
+=====================================================================
+Found a 99 line (948 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/EDatabaseMetaData.cxx
+
+Reference< XResultSet > SAL_CALL OFlatDatabaseMetaData::getTypeInfo(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet();
+        Reference< XResultSet > xRef = pResult;
+	pResult->setTypeInfoMap();
+	static ODatabaseMetaDataResultSet::ORows aRows;
+	if(aRows.empty())
+	{
+		ODatabaseMetaDataResultSet::ORow aRow;
+
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR")));
+		aRow.push_back(new ORowSetValueDecorator(DataType::CHAR));
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)254));
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnValue::NULLABLE));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+		aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR);
+		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRows.push_back(aRow);
+
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("LONGVARCHAR"));
+		aRow[2] = new ORowSetValueDecorator(DataType::LONGVARCHAR);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)65535);
+		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("DATE"));
+		aRow[2] = new ORowSetValueDecorator(DataType::DATE);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)10);
+		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIME"));
+		aRow[2] = new ORowSetValueDecorator(DataType::TIME);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)8);
+		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP"));
+		aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)19);
+		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("BOOL"));
+		aRow[2] = new ORowSetValueDecorator(DataType::BIT);
+		aRow[3] = ODatabaseMetaDataResultSet::get1Value();
+		aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("DECIMAL"));
+		aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)20);
+		aRow[15] = new ORowSetValueDecorator((sal_Int32)15);
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("DOUBLE"));
+		aRow[2] = new ORowSetValueDecorator(DataType::DOUBLE);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)20);
+		aRow[15] = ODatabaseMetaDataResultSet::get0Value();
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("NUMERIC"));
+		aRow[2] = new ORowSetValueDecorator(DataType::NUMERIC);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)20);
+		aRow[15] = new ORowSetValueDecorator((sal_Int32)20);
+		aRows.push_back(aRow);
+	}
+
+	pResult->setRows(aRows);
+	return xRef;
+}
+// -------------------------------------------------------------------------
+Reference< XResultSet > SAL_CALL OFlatDatabaseMetaData::getColumnPrivileges(
+=====================================================================
+Found a 160 line (931 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/logindlg.cxx
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/logindlg.cxx
+
+void LoginDialog::HideControls_Impl( USHORT nFlags )
+{
+	FASTBOOL bPathHide = FALSE;
+	FASTBOOL bErrorHide = FALSE;
+	FASTBOOL bAccountHide = FALSE;
+
+	if ( ( nFlags & LF_NO_PATH ) == LF_NO_PATH )
+	{
+		aPathFT.Hide();
+		aPathED.Hide();
+		aPathBtn.Hide();
+		bPathHide = TRUE;
+	}
+	else if ( ( nFlags & LF_PATH_READONLY ) == LF_PATH_READONLY )
+	{
+		aPathED.Hide();
+		aPathInfo.Show();
+		aPathBtn.Hide();
+	}
+
+	if ( ( nFlags & LF_NO_USERNAME ) == LF_NO_USERNAME )
+	{
+		aNameFT.Hide();
+		aNameED.Hide();
+	}
+	else if ( ( nFlags & LF_USERNAME_READONLY ) == LF_USERNAME_READONLY )
+	{
+		aNameED.Hide();
+		aNameInfo.Show();
+	}
+
+	if ( ( nFlags & LF_NO_PASSWORD ) == LF_NO_PASSWORD )
+	{
+		aPasswordFT.Hide();
+		aPasswordED.Hide();
+	}
+
+	if ( ( nFlags & LF_NO_SAVEPASSWORD ) == LF_NO_SAVEPASSWORD )
+		aSavePasswdBtn.Hide();
+
+	if ( ( nFlags & LF_NO_ERRORTEXT ) == LF_NO_ERRORTEXT )
+	{
+		aErrorInfo.Hide();
+		aErrorGB.Hide();
+		bErrorHide = TRUE;
+	}
+
+	if ( ( nFlags & LF_NO_ACCOUNT ) == LF_NO_ACCOUNT )
+	{
+		aAccountFT.Hide();
+		aAccountED.Hide();
+		bAccountHide = TRUE;
+	}
+
+	if ( bErrorHide )
+	{
+		long nOffset = aLoginGB.GetPosPixel().Y() -
+					   aErrorGB.GetPosPixel().Y();
+		Point aNewPnt = aRequestInfo.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aRequestInfo.SetPosPixel( aNewPnt );
+		aNewPnt = aPathFT.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aPathFT.SetPosPixel( aNewPnt );
+		aNewPnt = aPathED.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aPathED.SetPosPixel( aNewPnt );
+		aNewPnt = aPathInfo.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aPathInfo.SetPosPixel( aNewPnt );
+		aNewPnt = aPathBtn.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aPathBtn.SetPosPixel( aNewPnt );
+		aNewPnt = aNameFT.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aNameFT.SetPosPixel( aNewPnt );
+		aNewPnt = aNameED.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aNameED.SetPosPixel( aNewPnt );
+		aNewPnt = aNameInfo.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aNameInfo.SetPosPixel( aNewPnt );
+		aNewPnt = aPasswordFT.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aPasswordFT.SetPosPixel( aNewPnt );
+		aNewPnt = aPasswordED.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aPasswordED.SetPosPixel( aNewPnt );
+		aNewPnt = aAccountFT.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aAccountFT.SetPosPixel( aNewPnt );
+		aNewPnt = aAccountED.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aAccountED.SetPosPixel( aNewPnt );
+		aNewPnt = aSavePasswdBtn.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aSavePasswdBtn.SetPosPixel( aNewPnt );
+		aNewPnt = aLoginGB.GetPosPixel();
+		aNewPnt.Y() -= nOffset;
+		aLoginGB.SetPosPixel( aNewPnt );
+		Size aNewSiz = GetSizePixel();
+		aNewSiz.Height() -= nOffset;
+		SetSizePixel( aNewSiz );
+	}
+
+	if ( bPathHide )
+	{
+		long nOffset = aNameED.GetPosPixel().Y() -
+					   aPathED.GetPosPixel().Y();
+
+		Point aTmpPnt1 = aNameFT.GetPosPixel();
+		Point aTmpPnt2 = aPasswordFT.GetPosPixel();
+		aNameFT.SetPosPixel( aPathFT.GetPosPixel() );
+		aPasswordFT.SetPosPixel( aTmpPnt1 );
+		aAccountFT.SetPosPixel( aTmpPnt2 );
+		aTmpPnt1 = aNameED.GetPosPixel();
+		aTmpPnt2 = aPasswordED.GetPosPixel();
+		aNameED.SetPosPixel( aPathED.GetPosPixel() );
+		aPasswordED.SetPosPixel( aTmpPnt1 );
+		aAccountED.SetPosPixel( aTmpPnt2 );
+		aNameInfo.SetPosPixel( aPathInfo.GetPosPixel() );
+		aTmpPnt1 = aSavePasswdBtn.GetPosPixel();
+		aTmpPnt1.Y() -= nOffset;
+		aSavePasswdBtn.SetPosPixel( aTmpPnt1 );
+		Size aNewSz = GetSizePixel();
+		aNewSz.Height() -= nOffset;
+		SetSizePixel( aNewSz );
+	}
+
+	if ( bAccountHide )
+	{
+		long nOffset = aAccountED.GetPosPixel().Y() - aPasswordED.GetPosPixel().Y();
+
+		Point aTmpPnt = aSavePasswdBtn.GetPosPixel();
+		aTmpPnt.Y() -= nOffset;
+		aSavePasswdBtn.SetPosPixel( aTmpPnt );
+		Size aNewSz = GetSizePixel();
+		aNewSz.Height() -= nOffset;
+		SetSizePixel( aNewSz );
+	}
+};
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( LoginDialog, OKHdl_Impl, OKButton *, EMPTYARG )
+{
+	// trim the strings
+	aNameED.SetText( aNameED.GetText().EraseLeadingChars().
+		EraseTrailingChars() );
+	aPasswordED.SetText( aPasswordED.GetText().EraseLeadingChars().
+		EraseTrailingChars() );
+	EndDialog( RET_OK );
+	return 1;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( LoginDialog, PathHdl_Impl, PushButton *, EMPTYARG )
+{
+	PathDialog* pDlg = new PathDialog( this, WB_3DLOOK );
+=====================================================================
+Found a 20 line (927 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2418 - 241f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2420 - 2427
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2428 - 242f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2430 - 2437
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2438 - 243f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2440 - 2447
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2448 - 244f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2450 - 2457
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2458 - 245f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2460 - 2467
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2468 - 246f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2470 - 2477
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2478 - 247f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2480 - 2487
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2488 - 248f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2490 - 2497
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2498 - 249f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a0 - 24a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a8 - 24af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x68, 0x24D0}, {0x68, 0x24D1}, // 24b0 - 24b7
+=====================================================================
+Found a 117 line (925 tokens) duplication in the following files: 
+Starting at line 622 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2696 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0x69, 0xdd },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0x69, 0xdd },
+=====================================================================
+Found a 190 line (925 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/runargv.c
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/vpp40/runargv.c
+
+   return(1);
+}
+
+
+PUBLIC int
+Wait_for_child( abort_flg, pid )
+int abort_flg;
+int pid;
+{
+   int wid;
+   int status;
+   int waitchild;
+
+   waitchild = (pid == -1)? FALSE : Wait_for_completion;
+
+   do {
+      if( (wid = wait(&status)) == -1 ) return(-1);
+
+      _abort_flg = abort_flg;
+      _finished_child(wid, status);
+      _abort_flg = FALSE;
+   } while( waitchild && pid != wid );
+
+   return(0);
+}
+
+
+PUBLIC void
+Clean_up_processes()
+{
+   register int i;
+
+   if( _procs != NIL(PR) ) {
+      for( i=0; i<Max_proc; i++ )
+	 if( _procs[i].pr_valid )
+	    kill(_procs[i].pr_pid, SIGTERM);
+
+      while( Wait_for_child(TRUE, -1) != -1 );
+   }
+}
+
+
+static void
+_add_child( pid, target, ignore, last )
+int	pid;
+CELLPTR target;
+int	ignore;
+int     last;
+{
+   register int i;
+   register PR *pp;
+
+   if( _procs == NIL(PR) ) {
+      TALLOC( _procs, Max_proc, PR );
+   }
+
+   if( (i = _use_i) == -1 )
+      for( i=0; i<Max_proc; i++ )
+	 if( !_procs[i].pr_valid )
+	    break;
+
+   pp = _procs+i;
+
+   pp->pr_valid  = 1;
+   pp->pr_pid    = pid;
+   pp->pr_target = target;
+   pp->pr_ignore = ignore;
+   pp->pr_last   = last;
+   pp->pr_dir    = DmStrDup(Get_current_dir());
+
+   Current_target = NIL(CELL);
+
+   _proc_cnt++;
+
+   if( Wait_for_completion ) Wait_for_child( FALSE, pid );
+}
+
+
+static void
+_finished_child(pid, status)
+int	pid;
+int	status;
+{
+   register int i;
+   register PR *pp;
+   char     *dir;
+
+   for( i=0; i<Max_proc; i++ )
+      if( _procs[i].pr_valid && _procs[i].pr_pid == pid )
+	 break;
+
+   /* Some children we didn't make esp true if using /bin/sh to execute a
+    * a pipe and feed the output as a makefile into dmake. */
+   if( i == Max_proc ) return;
+   _procs[i].pr_valid = 0;
+   _proc_cnt--;
+   dir = DmStrDup(Get_current_dir());
+   Set_dir( _procs[i].pr_dir );
+
+   if( _procs[i].pr_recipe != NIL(RCP) && !_abort_flg ) {
+      RCPPTR rp = _procs[i].pr_recipe;
+
+
+      Current_target = _procs[i].pr_target;
+      Handle_result( status, _procs[i].pr_ignore, FALSE, _procs[i].pr_target );
+      Current_target = NIL(CELL);
+
+      if ( _procs[i].pr_target->ce_attr & A_ERROR ) {
+	 Unlink_temp_files( _procs[i].pr_target );
+	 _procs[i].pr_last = TRUE;
+	 goto ABORT_REMAINDER_OF_RECIPE;
+      }
+
+      _procs[i].pr_recipe = rp->prp_next;
+
+      _use_i = i;
+      runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group,
+	       rp->prp_last, rp->prp_shell, rp->prp_cmd );
+      _use_i = -1;
+
+      FREE( rp->prp_cmd );
+      FREE( rp );
+
+      if( _proc_cnt == Max_proc ) Wait_for_child( FALSE, -1 );
+   }
+   else {
+      Unlink_temp_files( _procs[i].pr_target );
+      Handle_result(status,_procs[i].pr_ignore,_abort_flg,_procs[i].pr_target);
+
+ ABORT_REMAINDER_OF_RECIPE:
+      if( _procs[i].pr_last ) {
+	 FREE(_procs[i].pr_dir );
+
+	 if( !Doing_bang ) Update_time_stamp( _procs[i].pr_target );
+      }
+   }
+
+   Set_dir(dir);
+   FREE(dir);
+}
+
+
+static int
+_running( cp )
+CELLPTR cp;
+{
+   register int i;
+
+   if( !_procs ) return(FALSE);
+
+   for( i=0; i<Max_proc; i++ )
+      if( _procs[i].pr_valid &&
+	  _procs[i].pr_target == cp  )
+	 break;
+	 
+   return( i != Max_proc );
+}
+
+
+static void
+_attach_cmd( cmd, group, ignore, cp, last, shell )
+char    *cmd;
+int	group;
+int     ignore;
+CELLPTR cp;
+int     last;
+int     shell;
+{
+   register int i;
+   RCPPTR rp;
+
+   for( i=0; i<Max_proc; i++ )
+      if( _procs[i].pr_valid &&
+	  _procs[i].pr_target == cp  )
+	 break;
+
+   TALLOC( rp, 1, RCP );
+   rp->prp_cmd   = DmStrDup(cmd);
+   rp->prp_group = group;
+   rp->prp_ignore= ignore;
+   rp->prp_last  = last;
+   rp->prp_shell = shell;
+
+   if( _procs[i].pr_recipe == NIL(RCP) )
+      _procs[i].pr_recipe = _procs[i].pr_recipe_end = rp;
+   else {
+      _procs[i].pr_recipe_end->prp_next = rp;
+      _procs[i].pr_recipe_end = rp;
+   }
+}
+=====================================================================
+Found a 21 line (905 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 459 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb88 - fb8f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb90 - fb97
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb98 - fb9f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fba0 - fba7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fba8 - fbaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbb0 - fbb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbb8 - fbbf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbc0 - fbc7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbc8 - fbcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbd0 - fbd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbd8 - fbdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbe0 - fbe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbe8 - fbef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbf0 - fbf7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbf8 - fbff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff00 - ff07
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff08 - ff0f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff10 - ff17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff18 - ff1f
+    {0x00, 0x0000}, {0x6a, 0xFF41}, {0x6a, 0xFF42}, {0x6a, 0xFF43}, {0x6a, 0xFF44}, {0x6a, 0xFF45}, {0x6a, 0xFF46}, {0x6a, 0xFF47}, // ff20 - ff27
+=====================================================================
+Found a 21 line (903 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x14, 0x24CE}, {0x14, 0x24CF}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24e8 - 24ef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24f0 - 24f7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24f8 - 24ff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c00 - 2c07
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c08 - 2c0f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c10 - 2c17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c18 - 2c1f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c20 - 2c27
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c28 - 2c2f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c30 - 2c37
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c38 - 2c3f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c40 - 2c47
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c48 - 2c4f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c50 - 2c57
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c58 - 2c5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c60 - 2c67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c68 - 2c6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c70 - 2c77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c78 - 2c7f
+    {0x6a, 0x2c81}, {0x15, 0x2c80}, {0x6a, 0x2c83}, {0x15, 0x2c82}, {0x6a, 0x2c85}, {0x15, 0x2c84}, {0x6a, 0x2c87}, {0x15, 0x2c86}, // 2c80 - 2c87, Coptic
+=====================================================================
+Found a 229 line (900 tokens) duplication in the following files: 
+Starting at line 4594 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4804 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                    (pPcd->nStartPos == WW8_CP_MAX)) &&
+                    (pPcd->nEndPos != p->nStartPos))
+                {
+                    pPcd->nEndPos = p->nStartPos;
+                    ((WW8PLCFx_PCD *)(pPcd->pPLCFx))->SetClipStart(
+                        p->nStartPos);
+                }
+
+            }
+            else
+            {
+                (*p->pPLCFx)++;     // next Group of Sprms
+                p->pMemPos = 0;     // !!!
+                p->nSprmsLen = 0;
+                GetNewSprms( *p );
+            }
+            ASSERT( p->nStartPos <= p->nEndPos, "Attribut ueber Kreuz" );
+        }
+    }
+}
+
+void WW8PLCFMan::AdvNoSprm(short nIdx, bool bStart)
+{
+    /*
+    For the case of a piece table we slave the piece table attribute iterator
+    to the piece table and access it through that only. They are two seperate
+    structures, but act together as one logical one. The attributes only go
+    to the next entry when the piece changes
+    */
+    register WW8PLCFxDesc* p = &aD[nIdx];
+
+    if( p == pPcd )
+    {
+        AdvSprm(nIdx+1,bStart);
+        if( bStart )
+            p->nStartPos = aD[nIdx+1].nStartPos;
+        else
+        {
+            if (aD[nIdx+1].pIdStk->empty())
+            {
+                WW8PLCFx_PCD *pTemp = (WW8PLCFx_PCD*)(pPcd->pPLCFx);
+                /*
+                #i2325#
+                As per normal, go on to the next set of properties, i.e. we
+                have traversed over to the next piece.  With a clipstart set
+                we are being told to reread the current piece sprms so as to
+                reapply them to a new chp or pap range.
+                */
+                if (pTemp->GetClipStart() == -1)
+                    (*p->pPLCFx)++;
+                p->pMemPos = 0;
+                p->nSprmsLen = 0;
+                GetNewSprms( aD[nIdx+1] );
+                GetNewNoSprms( *p );
+                if (pTemp->GetClipStart() != -1)
+                {
+                    /*
+                    #i2325#, now we will force our starting position to the
+                    clipping start so as to force the application of these
+                    sprms after the current pap/chp sprms so as to apply the
+                    fastsave sprms to the current range.
+                    */
+                    p->nStartPos = pTemp->GetClipStart();
+                    pTemp->SetClipStart(-1);
+                }
+            }
+        }
+    }
+    else
+    {                                  // NoSprm ohne Ende
+        (*p->pPLCFx)++;
+        p->pMemPos = 0;                     // MemPos ungueltig
+        p->nSprmsLen = 0;
+        GetNewNoSprms( *p );
+    }
+}
+
+WW8PLCFMan& WW8PLCFMan::operator ++(int)
+{
+    bool bStart;
+    USHORT nIdx = WhereIdx(&bStart);
+    if (nIdx < nPLCF)
+    {
+        register WW8PLCFxDesc* p = &aD[nIdx];
+
+        p->bFirstSprm = true;                       // Default
+
+        if( p->pPLCFx->IsSprm() )
+            AdvSprm( nIdx, bStart );
+        else                                        // NoSprm
+            AdvNoSprm( nIdx, bStart );
+    }
+    return *this;
+}
+
+// Rueckgabe true fuer Anfang eines Attributes oder Fehler,
+//           false fuer Ende d. Attr
+// Restliche Rueckgabewerte werden in der vom Aufrufer zu stellenden Struktur
+// WW8PclxManResults geliefert.
+bool WW8PLCFMan::Get(WW8PLCFManResult* pRes) const
+{
+    memset( pRes, 0, sizeof( WW8PLCFManResult ) );
+    bool bStart;
+    USHORT nIdx = WhereIdx(&bStart);
+
+    if( nIdx >= nPLCF )
+    {
+        ASSERT( !this, "Position not found" );
+        return true;
+    }
+
+    if( aD[nIdx].pPLCFx->IsSprm() )
+    {
+        if( bStart )
+        {
+            GetSprmStart( nIdx, pRes );
+            return true;
+        }
+        else
+        {
+            GetSprmEnd( nIdx, pRes );
+            return false;
+        }
+    }
+    else
+    {
+        if( bStart )
+        {
+            GetNoSprmStart( nIdx, pRes );
+            return true;
+        }
+        else
+        {
+            GetNoSprmEnd( nIdx, pRes );
+            return false;
+        }
+    }
+}
+
+USHORT WW8PLCFMan::GetColl() const
+{
+    if( pPap->pPLCFx )
+        return  pPap->pPLCFx->GetIstd();
+    else
+    {
+        ASSERT( !this, "GetColl ohne PLCF_Pap" );
+        return 0;
+    }
+}
+
+WW8PLCFx_FLD* WW8PLCFMan::GetFld() const
+{
+    return (WW8PLCFx_FLD*)pFld->pPLCFx;
+}
+
+const BYTE* WW8PLCFMan::HasParaSprm( USHORT nId ) const
+{
+    return ((WW8PLCFx_Cp_FKP*)pPap->pPLCFx)->HasSprm( nId );
+}
+
+const BYTE* WW8PLCFMan::HasCharSprm( USHORT nId ) const
+{
+    return ((WW8PLCFx_Cp_FKP*)pChp->pPLCFx)->HasSprm( nId );
+}
+
+bool WW8PLCFMan::HasCharSprm(USHORT nId,
+    std::vector<const BYTE *> &rResult) const
+{
+    return ((WW8PLCFx_Cp_FKP*)pChp->pPLCFx)->HasSprm(nId, rResult);
+}
+
+#endif // !DUMP
+
+void WW8PLCFx::Save( WW8PLCFxSave1& rSave ) const
+{
+    rSave.nPLCFxPos    = GetIdx();
+    rSave.nPLCFxPos2   = GetIdx2();
+    rSave.nPLCFxMemOfs = 0;
+    rSave.nStartFC     = GetStartFc();
+}
+
+void WW8PLCFx::Restore( const WW8PLCFxSave1& rSave )
+{
+    SetIdx(     rSave.nPLCFxPos  );
+    SetIdx2(    rSave.nPLCFxPos2 );
+    SetStartFc( rSave.nStartFC   );
+}
+
+ULONG WW8PLCFx_Cp_FKP::GetIdx2() const
+{
+    return GetPCDIdx();
+}
+
+void WW8PLCFx_Cp_FKP::SetIdx2( ULONG nIdx )
+{
+    SetPCDIdx( nIdx );
+}
+
+void WW8PLCFx_Cp_FKP::Save( WW8PLCFxSave1& rSave ) const
+{
+    WW8PLCFx::Save( rSave );
+
+    rSave.nAttrStart = nAttrStart;
+    rSave.nAttrEnd   = nAttrEnd;
+    rSave.bLineEnd   = bLineEnd;
+}
+
+void WW8PLCFx_Cp_FKP::Restore( const WW8PLCFxSave1& rSave )
+{
+    WW8PLCFx::Restore( rSave );
+
+    nAttrStart = rSave.nAttrStart;
+    nAttrEnd   = rSave.nAttrEnd;
+    bLineEnd   = rSave.bLineEnd;
+}
+
+void WW8PLCFxDesc::Save( WW8PLCFxSave1& rSave ) const
+{
+    if( pPLCFx )
+    {
+        pPLCFx->Save( rSave );
+        if( pPLCFx->IsSprm() )
+        {
+            WW8PLCFxDesc aD;
+            aD.nStartPos = nOrigStartPos+nCpOfs;
+            aD.nCpOfs = rSave.nCpOfs = nCpOfs;
+            if (!(pPLCFx->SeekPos(aD.nStartPos)))
+            {
+                aD.nEndPos = WW8_CP_MAX;
+=====================================================================
+Found a 75 line (883 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/public.h
+
+t_attr Rcp_attribute ANSI((char *));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 75 line (882 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/gnu/public.h
+
+PUBLIC int main ANSI((int argc, char **argv));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 84 line (880 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 791 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+				Any( &xI, ::getCppuType( (const Reference<XInterface > *)0 ) ) );
+		
+		aSetData.Sequence = Sequence<test::TestElement >( (const test::TestElement *)&aSetData, 1 );
+		
+		xLBT->setValues(
+			aSetData.Bool, aSetData.Char, aSetData.Byte, aSetData.Short, aSetData.UShort,
+			aSetData.Long, aSetData.ULong, aSetData.Hyper, aSetData.UHyper, aSetData.Float, aSetData.Double,
+			aSetData.Enum, aSetData.String, aSetData.Interface, aSetData.Any, aSetData.Sequence, aSetData );
+
+		{
+		test::TestData aRet, aRet2;
+		xLBT->getValues(
+			aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
+			aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
+			aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
+		
+		OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) );
+		
+		// set last retrieved values
+		test::TestData aSV2ret = xLBT->setValues2(
+			aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
+			aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
+			aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
+		
+		OSL_ASSERT( equals( aData, aSV2ret ) && equals( aData, aRet2 ) );
+		}
+		{
+		test::TestData aRet, aRet2;
+		test::TestData aGVret = xLBT->getValues(
+			aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
+			aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
+			aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
+		
+		OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) && equals( aData, aGVret ) );
+		
+		// set last retrieved values
+		xLBT->setBool( aRet.Bool );
+		xLBT->setChar( aRet.Char );
+		xLBT->setByte( aRet.Byte );
+		xLBT->setShort( aRet.Short );
+		xLBT->setUShort( aRet.UShort );
+		xLBT->setLong( aRet.Long );
+		xLBT->setULong( aRet.ULong );
+		xLBT->setHyper( aRet.Hyper );
+		xLBT->setUHyper( aRet.UHyper );
+		xLBT->setFloat( aRet.Float );
+		xLBT->setDouble( aRet.Double );
+		xLBT->setEnum( aRet.Enum );
+		xLBT->setString( aRet.String );
+		xLBT->setInterface( aRet.Interface );
+		xLBT->setAny( aRet.Any );
+		xLBT->setSequence( aRet.Sequence );
+		xLBT->setStruct( aRet2 );
+		}
+		{
+		test::TestData aRet, aRet2;
+		aRet.Hyper = xLBT->getHyper();
+		aRet.UHyper = xLBT->getUHyper();
+		aRet.Float = xLBT->getFloat();
+		aRet.Double = xLBT->getDouble();
+		aRet.Byte = xLBT->getByte();
+		aRet.Char = xLBT->getChar();
+		aRet.Bool = xLBT->getBool();
+		aRet.Short = xLBT->getShort();
+		aRet.UShort = xLBT->getUShort();
+		aRet.Long = xLBT->getLong();
+		aRet.ULong = xLBT->getULong();
+		aRet.Enum = xLBT->getEnum();
+		aRet.String = xLBT->getString();
+		aRet.Interface = xLBT->getInterface();
+		aRet.Any = xLBT->getAny();
+		aRet.Sequence = xLBT->getSequence();
+		aRet2 = xLBT->getStruct();
+		
+		return (equals( aData, aRet ) && equals( aData, aRet2 ));
+		}
+	}
+	return sal_False;
+}
+
+//__________________________________________________________________________________________________
+test::TestData Test_Impl::raiseException( sal_Bool& /*bBool*/, sal_Unicode& /*cChar*/, sal_Int8& /*nByte*/, sal_Int16& /*nShort*/, sal_uInt16& /*nUShort*/, sal_Int32& /*nLong*/, sal_uInt32& /*nULong*/, sal_Int64& /*nHyper*/, sal_uInt64& /*nUHyper*/, float& /*fFloat*/, double& /*fDouble*/, test::TestEnum& /*eEnum*/, ::rtl::OUString& /*aString*/, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& /*xInterface*/, ::com::sun::star::uno::Any& /*aAny*/, ::com::sun::star::uno::Sequence< test::TestElement >& /*aSequence*/, test::TestData& /*aStruct*/ )
+	throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+=====================================================================
+Found a 19 line (867 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x15, 0xFF38}, {0x15, 0xFF39}, {0x15, 0xFF3A}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff58 - ff5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff60 - ff67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff68 - ff6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff70 - ff77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff78 - ff7f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff80 - ff87
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff88 - ff8f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff90 - ff97
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff98 - ff9f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa0 - ffa7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa8 - ffaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb0 - ffb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb8 - ffbf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc0 - ffc7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc8 - ffcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd0 - ffd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd8 - ffdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe0 - ffe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+=====================================================================
+Found a 113 line (867 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx
+
+void* RTTIHolder::insertRTTI( const OString& rTypename )
+{
+	OString aMangledName( toRTTImangledname( rTypename ) );
+	NIST_Hash aHash( aMangledName.getStr(), aMangledName.getLength() );
+
+    std::size_t const RTTI_SIZE = 19; // 14???
+	void** pRTTI = reinterpret_cast< void ** >(
+        new char[RTTI_SIZE * sizeof (void *) + strlen(rTypename.getStr()) + 1]);
+	pRTTI[  0 ] = reinterpret_cast< void * >(RTTI_SIZE * sizeof (void *));
+	pRTTI[  1 ] = NULL;
+	pRTTI[  2 ] = (void*)(7*sizeof(void*));
+	pRTTI[  3 ] = (void*)aHash.getHash()[0];
+	pRTTI[  4 ] = (void*)aHash.getHash()[1];
+	pRTTI[  5 ] = (void*)aHash.getHash()[2];
+	pRTTI[  6 ] = (void*)aHash.getHash()[3];
+	pRTTI[  7 ] = NULL;
+	pRTTI[  8 ] = NULL;
+
+	pRTTI[  9 ] = pRTTI[ 3 ];
+	pRTTI[ 10 ] = pRTTI[ 4 ];
+	pRTTI[ 11 ] = pRTTI[ 5 ];
+	pRTTI[ 12 ] = pRTTI[ 6 ];
+	pRTTI[ 13 ] = (void*)0x80000000;
+    strcpy(reinterpret_cast< char * >(pRTTI + RTTI_SIZE), rTypename.getStr());
+
+	aAllRTTI[ rTypename ] = (void*)pRTTI;
+#if OSL_DEBUG_LEVEL > 1
+	fprintf( stderr,
+			 "generating base RTTI for type %s:\n"
+			 "   mangled: %s\n"
+			 "   hash: %.8x %.8x %.8x %.8x\n",
+			 rTypename.getStr(),
+			 aMangledName.getStr(),
+			 pRTTI[ 3 ], pRTTI[ 4 ], pRTTI[ 5 ], pRTTI[ 6 ]
+			 );
+#endif
+	return pRTTI;
+}
+
+//--------------------------------------------------------------------------------------------------
+
+void* RTTIHolder::generateRTTI( typelib_CompoundTypeDescription * pCompTypeDescr )
+{
+	OString aUNOCompTypeName( OUStringToOString( pCompTypeDescr->aBase.pTypeName, RTL_TEXTENCODING_ASCII_US ) );
+	OString aRTTICompTypeName( toRTTIname( aUNOCompTypeName ) );
+
+	void* pHaveRTTI = getRTTI( aRTTICompTypeName );
+	if( pHaveRTTI )
+		return pHaveRTTI;
+
+	if( ! pCompTypeDescr->pBaseTypeDescription )
+		// this is a base type
+		return insertRTTI( aRTTICompTypeName );
+
+	// get base class RTTI
+	void* pSuperRTTI = generateRTTI( pCompTypeDescr->pBaseTypeDescription );
+	OSL_ENSURE( pSuperRTTI, "could not generate RTTI for supertype !" );
+
+	// find out the size to allocate for RTTI
+	void** pInherit = (void**)((sal_uInt32)pSuperRTTI + ((sal_uInt32*)pSuperRTTI)[2] + 8);
+	int nInherit;
+	for( nInherit = 1; pInherit[ nInherit*5-1 ] != (void*)0x80000000; nInherit++ )
+		;
+
+	OString aMangledName( toRTTImangledname( aRTTICompTypeName ) );
+	NIST_Hash aHash( aMangledName.getStr(), aMangledName.getLength() );
+
+    std::size_t const rttiSize = 14 + nInherit * 5;
+	void** pRTTI = reinterpret_cast< void ** >(
+        new char[
+            rttiSize * sizeof (void *)
+            + strlen(aRTTICompTypeName.getStr()) + 1]);
+	pRTTI[  0 ] = reinterpret_cast< void * >(rttiSize * sizeof (void *));
+	pRTTI[  1 ] = NULL;
+	pRTTI[  2 ] = (void*)(7*sizeof(void*));
+	pRTTI[  3 ] = (void*)aHash.getHash()[0];
+	pRTTI[  4 ] = (void*)aHash.getHash()[1];
+	pRTTI[  5 ] = (void*)aHash.getHash()[2];
+	pRTTI[  6 ] = (void*)aHash.getHash()[3];
+	pRTTI[  7 ] = NULL;
+	pRTTI[  8 ] = NULL;
+
+	memcpy( pRTTI+9, pInherit, 4*nInherit*5 );
+	pRTTI[ 8 +nInherit*5 ] = NULL;
+	pRTTI[ 9 +nInherit*5 ] = pRTTI[ 3 ];
+	pRTTI[ 10+nInherit*5 ] = pRTTI[ 4 ];
+	pRTTI[ 11+nInherit*5 ] = pRTTI[ 5 ];
+	pRTTI[ 12+nInherit*5 ] = pRTTI[ 6 ];
+	pRTTI[ 13+nInherit*5 ] = (void*)0x80000000;
+    strcpy(
+        reinterpret_cast< char * >(pRTTI + rttiSize),
+        aRTTICompTypeName.getStr());
+
+	aAllRTTI[ aRTTICompTypeName ] = (void*)pRTTI;
+
+#if OSL_DEBUG_LEVEL > 1
+	fprintf( stderr,
+			 "generating struct RTTI for type %s:\n"
+			 "   mangled: %s\n"
+			 "   hash: %.8x %.8x %.8X %.8x\n",
+			 aRTTICompTypeName.getStr(),
+			 aMangledName.getStr(),
+			 pRTTI[ 3 ], pRTTI[ 4 ], pRTTI[ 5 ], pRTTI[ 6 ]
+			 );
+#endif
+
+	return pRTTI;
+}
+
+//--------------------------------------------------------------------------------------------------
+
+static void deleteException(
+    void* pExc, unsigned int* thunk, typelib_TypeDescription* pType )
+=====================================================================
+Found a 159 line (859 tokens) duplication in the following files: 
+Starting at line 410 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsdocumenthandler.cxx
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsdocumenthandler.cxx
+
+	const OUString& /*aTarget*/, const OUString& /*aData*/ )
+throw(	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadEventsDocumentHandler::setDocumentLocator(
+	const Reference< XLocator > &xLocator)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	m_xLocator = xLocator;
+}
+
+::rtl::OUString OReadEventsDocumentHandler::getErrorLineString()
+{
+	ResetableGuard aGuard( m_aLock );
+
+	char buffer[32];
+
+	if ( m_xLocator.is() )
+	{
+		snprintf( buffer, sizeof(buffer), "Line: %ld - ", m_xLocator->getLineNumber() );
+		return OUString::createFromAscii( buffer );
+	}
+	else
+		return OUString();
+}
+
+
+//_________________________________________________________________________________________________________________
+//	OWriteEventsDocumentHandler
+//_________________________________________________________________________________________________________________
+
+OWriteEventsDocumentHandler::OWriteEventsDocumentHandler(
+	const EventsConfig& aItems,
+	Reference< XDocumentHandler > rWriteDocumentHandler ) :
+    ThreadHelpBase( &Application::GetSolarMutex() ),
+	m_aItems( aItems ),
+	m_xWriteDocumentHandler( rWriteDocumentHandler )
+{
+	m_xEmptyList		= Reference< XAttributeList >( (XAttributeList *)new AttributeListImpl, UNO_QUERY );
+	m_aAttributeType	= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
+	m_aXMLXlinkNS		= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
+	m_aXMLEventNS		= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_EVENT_PREFIX ));
+}
+
+OWriteEventsDocumentHandler::~OWriteEventsDocumentHandler()
+{
+}
+
+void OWriteEventsDocumentHandler::WriteEventsDocument() throw
+( SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	m_xWriteDocumentHandler->startDocument();
+
+	// write DOCTYPE line!
+	Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
+	if ( xExtendedDocHandler.is() )
+	{
+		xExtendedDocHandler->unknown( OUString( RTL_CONSTASCII_USTRINGPARAM( EVENTS_DOCTYPE )) );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	}
+
+	AttributeListImpl* pList = new AttributeListImpl;
+	Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_EVENT )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_EVENT )) );
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
+
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENTS )), pList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	Sequence< PropertyValue > aEventProperties;
+
+	for ( int i = 0; i < m_aItems.aEventNames.getLength(); i++ )
+	{
+		if ( m_aItems.aEventsProperties[i] >>= aEventProperties )
+			WriteEvent( m_aItems.aEventNames[i], aEventProperties );
+	}
+
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENTS )) );
+
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endDocument();
+}
+
+//_________________________________________________________________________________________________________________
+//	protected member functions
+//_________________________________________________________________________________________________________________
+
+void OWriteEventsDocumentHandler::WriteEvent( const OUString& aEventName, const Sequence< PropertyValue >& aPropertyValues ) throw
+( SAXException, RuntimeException )
+{
+	if ( aPropertyValues.getLength() > 0 )
+	{
+		AttributeListImpl* pList = new AttributeListImpl;
+		Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+		if ( m_aAttributeURL.getLength() == 0 )
+		{
+			m_aAttributeURL = m_aXMLXlinkNS;
+			m_aAttributeURL += OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HREF ));
+			m_aAttributeLinkType = m_aXMLXlinkNS;
+			m_aAttributeLinkType += OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE ));
+			m_aAttributeLanguage = m_aXMLEventNS;
+			m_aAttributeLanguage += OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_LANGUAGE ));
+			m_aAttributeMacroName = m_aXMLEventNS;
+			m_aAttributeMacroName += OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MACRONAME ));
+			m_aAttributeLibrary = m_aXMLEventNS;
+			m_aAttributeLibrary += OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_LIBRARY ));
+			m_aAttributeName = m_aXMLEventNS;
+			m_aAttributeName += OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NAME ));
+		}
+
+		pList->addAttribute( m_aAttributeName, m_aAttributeType, aEventName );
+
+		sal_Bool	bURLSet = sal_False;
+		OUString	aValue;
+		OUString	aName;
+
+		// save attributes
+		for ( int i = 0; i < aPropertyValues.getLength(); i++ )
+		{
+			aPropertyValues[i].Value >>= aValue;
+			if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_EVENT_TYPE )))
+				pList->addAttribute( m_aAttributeLanguage, m_aAttributeType, aValue );
+			else if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_MACRO_NAME )) &&
+					  aValue.getLength() > 0 )
+				pList->addAttribute( m_aAttributeMacroName, m_aAttributeType, aValue );
+			else if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_LIBRARY )) &&
+					  aValue.getLength() > 0 )
+				pList->addAttribute( m_aAttributeLibrary, m_aAttributeType, aValue );
+			else if ( aPropertyValues[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( PROP_SCRIPT )))
+			{
+				pList->addAttribute( m_aAttributeURL, m_aAttributeType, aValue );
+				bURLSet = sal_True;
+			}
+		}
+
+		if ( bURLSet )
+			pList->addAttribute( m_aAttributeLinkType, m_aAttributeType, OUString( RTL_CONSTASCII_USTRINGPARAM( "simple" )) );
+
+		m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENT )), xList );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+		
+		m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EVENT )) );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	}
+}
+
+} // namespace framework
+=====================================================================
+Found a 71 line (850 tokens) duplication in the following files: 
+Starting at line 652 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/cfgview.cxx
+Starting at line 891 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/cfgview.cxx
+
+            sFilterPropHTML.append      ( OUString::valueOf( nFilters )                                                                                             );
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\">&nbsp;"             );  // generate row "Name <value>"
+            sFilterPropHTML.append      ( aFilter.sName                                                                                                             );
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Order</td><td valign=\"top\" align=\"top\">&nbsp;\""          );  // generate row "Order <value>"
+            sFilterPropHTML.append      ( aFilter.nOrder                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\"</td></tr>\n"                                                                                                          );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Type</td><td valign=\"top\" align=\"top\">&nbsp;\""           );  // generate row "Type <value>"
+            sFilterPropHTML.append      ( aFilter.sType                                                                                                             );
+            sFilterPropHTML.appendAscii ( "\"</td></tr>\n"                                                                                                          );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UIName</td><td valign=\"top\" align=\"top\">"                 );  // generate row "UIName <value>"
+            for(    ConstStringHashIterator pUIName=aFilter.lUINames.begin()  ;
+                    pUIName!=aFilter.lUINames.end()                           ;
+                    ++pUIName                                                 )
+            {
+                sFilterPropHTML.appendAscii   ( "&nbsp;["       );
+                sFilterPropHTML.append        ( pUIName->first  );
+                sFilterPropHTML.appendAscii   ( "] \""          );
+                sFilterPropHTML.append        ( pUIName->second );
+                sFilterPropHTML.appendAscii   ( "\"<br>"        );
+            }
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                          );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">DocumentService</td><td valign=\"top\" align=\"top\">&nbsp;"  );  // generate row "DocumentService <value>"
+            sFilterPropHTML.append      ( aFilter.sDocumentService                                                                                          );
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FilterService</td><td valign=\"top\" align=\"top\">&nbsp;"    );  // generate row "FilterService <value>"
+            sFilterPropHTML.append      ( aFilter.sFilterService                                                                                            );
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Flags</td><td valign=\"top\" align=\"top\">&nbsp;"            );  // generate row "Flags <value>"
+            if( aFilter.nFlags & FILTERFLAG_IMPORT          ) { sFilterPropHTML.append( FILTERFLAGNAME_IMPORT          ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_EXPORT          ) { sFilterPropHTML.append( FILTERFLAGNAME_EXPORT          ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_TEMPLATE        ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATE        ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_INTERNAL        ) { sFilterPropHTML.append( FILTERFLAGNAME_INTERNAL        ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_TEMPLATEPATH    ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATEPATH    ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_OWN             ) { sFilterPropHTML.append( FILTERFLAGNAME_OWN             ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_ALIEN           ) { sFilterPropHTML.append( FILTERFLAGNAME_ALIEN           ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_USESOPTIONS     ) { sFilterPropHTML.append( FILTERFLAGNAME_USESOPTIONS     ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_DEFAULT         ) { sFilterPropHTML.append( FILTERFLAGNAME_DEFAULT         ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_NOTINFILEDIALOG ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINFILEDIALOG ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_NOTINCHOOSER    ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINCHOOSER    ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_ASYNCHRON       ) { sFilterPropHTML.append( FILTERFLAGNAME_ASYNCHRON       ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_READONLY        ) { sFilterPropHTML.append( FILTERFLAGNAME_READONLY        ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_NOTINSTALLED    ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINSTALLED    ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_CONSULTSERVICE  ) { sFilterPropHTML.append( FILTERFLAGNAME_CONSULTSERVICE  ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_3RDPARTYFILTER  ) { sFilterPropHTML.append( FILTERFLAGNAME_3RDPARTYFILTER  ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_PACKED          ) { sFilterPropHTML.append( FILTERFLAGNAME_PACKED          ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_SILENTEXPORT    ) { sFilterPropHTML.append( FILTERFLAGNAME_SILENTEXPORT    ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_BROWSERPREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_BROWSERPREFERED ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+            if( aFilter.nFlags & FILTERFLAG_PREFERED        ) { sFilterPropHTML.append( FILTERFLAGNAME_PREFERED        ); sFilterPropHTML.appendAscii( "<br>&nbsp;" ); };
+
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UserData</td><td valign=\"top\" align=\"top\">"               );  // generate row "UserData <value>"
+            for(    ConstStringListIterator pUserData=aFilter.lUserData.begin() ;
+                    pUserData!=aFilter.lUserData.end()                          ;
+                    ++pUserData                                                 )
+            {
+                sFilterPropHTML.appendAscii ( "&nbsp;\""    );
+                sFilterPropHTML.append      ( *pUserData    );
+                sFilterPropHTML.appendAscii ( "\"<br>"      );
+            }
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FileFormatVersion</td><td valign=\"top\" align=\"top\">&nbsp;");  // generate row "FileFormatVersion <value>"
+            sFilterPropHTML.append      ( OUString::valueOf( aFilter.nFileFormatVersion )                                                                           );
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">TemplateName</td><td valign=\"top\" align=\"top\">&nbsp;"     );  // generate row "TemplateName <value>"
+            sFilterPropHTML.append      ( aFilter.sTemplateName                                                                                                     );
+            sFilterPropHTML.appendAscii ( "</td></tr>\n"                                                                                                            );
+            sFilterPropHTML.appendAscii ( "\t\t</table>\n"                                                                                                          );  // close table
+            sFilterPropHTML.appendAscii ( "\t\t<p>\n"                                                                                                               );  // add space between this and following table
+        }
+=====================================================================
+Found a 182 line (849 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											&pThis->pBridge->aCpp2Uno );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										&pThis->pBridge->aCpp2Uno );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									&pThis->pBridge->aCpp2Uno );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, &pThis->pBridge->aCpp2Uno );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+
+//==================================================================================================
+void SAL_CALL cppu_unoInterfaceProxy_dispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException ) throw ()
+{
+	// is my surrogate
+	cppu_unoInterfaceProxy * pThis = (cppu_unoInterfaceProxy *)pUnoI;
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		// determine vtable call index
+		sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
+		OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
+		
+		sal_Int32 nVtableCall = pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos];
+		OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+		
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, nVtableCall,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+			cpp_call(
+				pThis, nVtableCall +1, // get, then set method
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// determine vtable call index
+		sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
+		OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
+		
+		sal_Int32 nVtableCall = pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos];
+		OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+		
+		switch (nVtableCall)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->pUnoEnv->getRegisteredInterface)(
+                    pThis->pBridge->pUnoEnv,
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, nVtableCall,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+}
+=====================================================================
+Found a 110 line (848 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itiff/ccidecom.cxx
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itiff/ccidecom.cxx
+
+const CCIHuffmanTableEntry CCIBlackTableSave[CCIBlackTableSize]={
+	{    0, 0x0037, 10 },
+	{    1, 0x0002,  3 },
+	{    2, 0x0003,  2 },
+	{    3, 0x0002,  2 },
+	{    4, 0x0003,  3 },
+	{    5, 0x0003,  4 },
+	{    6, 0x0002,  4 },
+	{    7, 0x0003,  5 },
+	{    8, 0x0005,  6 },
+	{    9, 0x0004,  6 },
+	{   10, 0x0004,  7 },
+	{   11, 0x0005,  7 },
+	{   12, 0x0007,  7 },
+	{   13, 0x0004,  8 },
+	{   14, 0x0007,  8 },
+	{   15, 0x0018,  9 },
+	{   16, 0x0017, 10 },
+	{   17, 0x0018, 10 },
+	{   18, 0x0008, 10 },
+	{   19, 0x0067, 11 },
+	{   20, 0x0068, 11 },
+	{   21, 0x006c, 11 },
+	{   22, 0x0037, 11 },
+	{   23, 0x0028, 11 },
+	{   24, 0x0017, 11 },
+	{   25, 0x0018, 11 },
+	{   26, 0x00ca, 12 },
+	{   27, 0x00cb, 12 },
+	{   28, 0x00cc, 12 },
+	{   29, 0x00cd, 12 },
+	{   30, 0x0068, 12 },
+	{   31, 0x0069, 12 },
+	{   32, 0x006a, 12 },
+	{   33, 0x006b, 12 },
+	{   34, 0x00d2, 12 },
+	{   35, 0x00d3, 12 },
+	{   36, 0x00d4, 12 },
+	{   37, 0x00d5, 12 },
+	{   38, 0x00d6, 12 },
+	{   39, 0x00d7, 12 },
+	{   40, 0x006c, 12 },
+	{   41, 0x006d, 12 },
+	{   42, 0x00da, 12 },
+	{   43, 0x00db, 12 },
+	{   44, 0x0054, 12 },
+	{   45, 0x0055, 12 },
+	{   46, 0x0056, 12 },
+	{   47, 0x0057, 12 },
+	{   48, 0x0064, 12 },
+	{   49, 0x0065, 12 },
+	{   50, 0x0052, 12 },
+	{   51, 0x0053, 12 },
+	{   52, 0x0024, 12 },
+	{   53, 0x0037, 12 },
+	{   54, 0x0038, 12 },
+	{   55, 0x0027, 12 },
+	{   56, 0x0028, 12 },
+	{   57, 0x0058, 12 },
+	{   58, 0x0059, 12 },
+	{   59, 0x002b, 12 },
+	{   60, 0x002c, 12 },
+	{   61, 0x005a, 12 },
+	{   62, 0x0066, 12 },
+	{   63, 0x0067, 12 },
+	{   64, 0x000f, 10 },
+	{  128, 0x00c8, 12 },
+	{  192, 0x00c9, 12 },
+	{  256, 0x005b, 12 },
+	{  320, 0x0033, 12 },
+	{  384, 0x0034, 12 },
+	{  448, 0x0035, 12 },
+	{  512, 0x006c, 13 },
+	{  576, 0x006d, 13 },
+	{  640, 0x004a, 13 },
+	{  704, 0x004b, 13 },
+	{  768, 0x004c, 13 },
+	{  832, 0x004d, 13 },
+	{  896, 0x0072, 13 },
+	{  960, 0x0073, 13 },
+	{ 1024, 0x0074, 13 },
+	{ 1088, 0x0075, 13 },
+	{ 1152, 0x0076, 13 },
+	{ 1216, 0x0077, 13 },
+	{ 1280, 0x0052, 13 },
+	{ 1344, 0x0053, 13 },
+	{ 1408, 0x0054, 13 },
+	{ 1472, 0x0055, 13 },
+	{ 1536, 0x005a, 13 },
+	{ 1600, 0x005b, 13 },
+	{ 1664, 0x0064, 13 },
+	{ 1728, 0x0065, 13 },
+	{ 1792, 0x0008, 11 },
+	{ 1856, 0x000c, 11 },
+	{ 1920, 0x000d, 11 },
+	{ 1984, 0x0012, 12 },
+	{ 2048, 0x0013, 12 },
+	{ 2112, 0x0014, 12 },
+	{ 2176, 0x0015, 12 },
+	{ 2240, 0x0016, 12 },
+	{ 2304, 0x0017, 12 },
+	{ 2368, 0x001c, 12 },
+	{ 2432, 0x001d, 12 },
+	{ 2496, 0x001e, 12 },
+	{ 2560, 0x001f, 12 },
+	{ 9999, 0x0001, 12 }	//	EOL
+};
+
+
+const CCIHuffmanTableEntry CCI2DModeTableSave[CCI2DModeTableSize]={
+=====================================================================
+Found a 109 line (848 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itiff/ccidecom.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itiff/ccidecom.cxx
+
+const CCIHuffmanTableEntry CCIWhiteTableSave[CCIWhiteTableSize]={
+	{    0, 0x0035,  8 },
+	{    1, 0x0007,  6 },
+	{    2, 0x0007,  4 },
+	{    3, 0x0008,  4 },
+	{    4, 0x000b,  4 },
+	{    5, 0x000c,  4 },
+	{    6, 0x000e,  4 },
+	{    7, 0x000f,  4 },
+	{    8, 0x0013,  5 },
+	{    9, 0x0014,  5 },
+	{   10, 0x0007,  5 },
+	{   11, 0x0008,  5 },
+	{   12, 0x0008,  6 },
+	{   13, 0x0003,  6 },
+	{   14, 0x0034,  6 },
+	{   15, 0x0035,  6 },
+	{   16, 0x002a,  6 },
+	{   17, 0x002b,  6 },
+	{   18, 0x0027,  7 },
+	{   19, 0x000c,  7 },
+	{   20, 0x0008,  7 },
+	{   21, 0x0017,  7 },
+	{   22, 0x0003,  7 },
+	{   23, 0x0004,  7 },
+	{   24, 0x0028,  7 },
+	{   25, 0x002b,  7 },
+	{   26, 0x0013,  7 },
+	{   27, 0x0024,  7 },
+	{   28, 0x0018,  7 },
+	{   29, 0x0002,  8 },
+	{   30, 0x0003,  8 },
+	{   31, 0x001a,  8 },
+	{   32, 0x001b,  8 },
+	{   33, 0x0012,  8 },
+	{   34, 0x0013,  8 },
+	{   35, 0x0014,  8 },
+	{   36, 0x0015,  8 },
+	{   37, 0x0016,  8 },
+	{   38, 0x0017,  8 },
+	{   39, 0x0028,  8 },
+	{   40, 0x0029,  8 },
+	{   41, 0x002a,  8 },
+	{   42, 0x002b,  8 },
+	{   43, 0x002c,  8 },
+	{   44, 0x002d,  8 },
+	{   45, 0x0004,  8 },
+	{   46, 0x0005,  8 },
+	{   47, 0x000a,  8 },
+	{   48, 0x000b,  8 },
+	{   49, 0x0052,  8 },
+	{   50, 0x0053,  8 },
+	{   51, 0x0054,  8 },
+	{   52, 0x0055,  8 },
+	{   53, 0x0024,  8 },
+	{   54, 0x0025,  8 },
+	{   55, 0x0058,  8 },
+	{   56, 0x0059,  8 },
+	{   57, 0x005a,  8 },
+	{   58, 0x005b,  8 },
+	{   59, 0x004a,  8 },
+	{   60, 0x004b,  8 },
+	{   61, 0x0032,  8 },
+	{   62, 0x0033,  8 },
+	{   63, 0x0034,  8 },
+	{   64, 0x001b,  5 },
+	{  128, 0x0012,  5 },
+	{  192, 0x0017,  6 },
+	{  256, 0x0037,  7 },
+	{  320, 0x0036,  8 },
+	{  384, 0x0037,  8 },
+	{  448, 0x0064,  8 },
+	{  512, 0x0065,  8 },
+	{  576, 0x0068,  8 },
+	{  640, 0x0067,  8 },
+	{  704, 0x00cc,  9 },
+	{  768, 0x00cd,  9 },
+	{  832, 0x00d2,  9 },
+	{  896, 0x00d3,  9 },
+	{  960, 0x00d4,  9 },
+	{ 1024, 0x00d5,  9 },
+	{ 1088, 0x00d6,  9 },
+	{ 1152, 0x00d7,  9 },
+	{ 1216, 0x00d8,  9 },
+	{ 1280, 0x00d9,  9 },
+	{ 1344, 0x00da,  9 },
+	{ 1408, 0x00db,  9 },
+	{ 1472, 0x0098,  9 },
+	{ 1536, 0x0099,  9 },
+	{ 1600, 0x009a,  9 },
+	{ 1664, 0x0018,  6 },
+	{ 1728, 0x009b,  9 },
+	{ 1792, 0x0008, 11 },
+	{ 1856, 0x000c, 11 },
+	{ 1920, 0x000d, 11 },
+	{ 1984, 0x0012, 12 },
+	{ 2048, 0x0013, 12 },
+	{ 2112, 0x0014, 12 },
+	{ 2176, 0x0015, 12 },
+	{ 2240, 0x0016, 12 },
+	{ 2304, 0x0017, 12 },
+	{ 2368, 0x001c, 12 },
+	{ 2432, 0x001d, 12 },
+	{ 2496, 0x001e, 12 },
+	{ 2560, 0x001f, 12 },
+	{ 9999, 0x0001, 12 }	//	EOL
+};
+
+const CCIHuffmanTableEntry CCIBlackTableSave[CCIBlackTableSize]={
+=====================================================================
+Found a 185 line (847 tokens) duplication in the following files: 
+Starting at line 1806 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1865 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    WW8_CP nP;
+
+    if (!rPLCF.Get(nP, pData))              // Ende des PLCFspecial ?
+        return false;
+
+    rPLCF++;
+
+    if((((BYTE*)pData)[0] & 0x1f ) != 0x13 )    // Kein Anfang ?
+        return true;                            // Bei Fehler nicht abbrechen
+
+    if( !rPLCF.Get( nP, pData ) )
+        return false;
+
+
+    while((((BYTE*)pData)[0] & 0x1f ) == 0x13 )
+    {
+        // immer noch neue (nested) Anfaenge ?
+        WW8SkipField( rPLCF );              // nested Field im Beschreibungsteil
+        if( !rPLCF.Get( nP, pData ) )
+            return false;
+    }
+
+    if((((BYTE*)pData)[0] & 0x1f ) == 0x14 )
+    {
+
+        // Field Separator ?
+        rPLCF++;
+
+        if( !rPLCF.Get( nP, pData ) )
+            return false;
+
+        while ((((BYTE*)pData)[0] & 0x1f ) == 0x13)
+        {
+            // immer noch neue (nested) Anfaenge ?
+            WW8SkipField( rPLCF );          // nested Field im Resultatteil
+            if( !rPLCF.Get( nP, pData ) )
+                return false;
+        }
+    }
+    rPLCF++;
+
+    return true;
+}
+
+static bool WW8GetFieldPara(WW8PLCFspecial& rPLCF, WW8FieldDesc& rF)
+{
+    void* pData;
+    ULONG nOldIdx = rPLCF.GetIdx();
+
+    rF.nLen = rF.nId = rF.nOpt = rF.bCodeNest = rF.bResNest = 0;
+
+    if( !rPLCF.Get( rF.nSCode, pData ) )             // Ende des PLCFspecial ?
+        goto Err;
+
+    rPLCF++;
+
+    if((((BYTE*)pData)[0] & 0x1f ) != 0x13 )        // Kein Anfang ?
+        goto Err;
+
+    rF.nId = ((BYTE*)pData)[1];
+
+    if( !rPLCF.Get( rF.nLCode, pData ) )
+        goto Err;
+
+    rF.nSRes = rF.nLCode;                           // Default
+    rF.nSCode++;                                    // ohne Marken
+    rF.nLCode -= rF.nSCode;                         // Pos zu Laenge
+
+    while((((BYTE*)pData)[0] & 0x1f ) == 0x13 )
+    {
+        // immer noch neue (nested) Anfaenge ?
+        WW8SkipField( rPLCF );              // nested Field im Beschreibungsteil
+        rF.bCodeNest = true;
+        if( !rPLCF.Get( rF.nSRes, pData ) )
+            goto Err;
+    }
+
+    if((((BYTE*)pData)[0] & 0x1f ) == 0x14 ){       // Field Separator ?
+        rPLCF++;
+
+        if( !rPLCF.Get( rF.nLRes, pData ) )
+            goto Err;
+
+        while((((BYTE*)pData)[0] & 0x1f ) == 0x13 )
+        {
+            // immer noch neue (nested) Anfaenge ?
+            WW8SkipField( rPLCF );              // nested Field im Resultatteil
+            rF.bResNest = true;
+            if( !rPLCF.Get( rF.nLRes, pData ) )
+                goto Err;
+        }
+        rF.nLen = rF.nLRes - rF.nSCode + 2; // nLRes ist noch die Endposition
+        rF.nLRes -= rF.nSRes;                       // nun: nLRes = Laenge
+        rF.nSRes++;                                 // Endpos encl. Marken
+        rF.nLRes--;
+
+    }else{
+        rF.nLRes = 0;                               // Kein Result vorhanden
+        rF.nLen = rF.nSRes - rF.nSCode + 2;         // Gesamtlaenge
+    }
+
+    rPLCF++;
+    if((((BYTE*)pData)[0] & 0x1f ) == 0x15 )
+    {
+        // Field Ende ?
+        // INDEX-Fld hat Bit7 gesetzt!?!
+        rF.nOpt = ((BYTE*)pData)[1];                // Ja -> Flags uebernehmen
+    }else{
+        rF.nId = 0;                                 // Nein -> Feld ungueltig
+    }
+
+    rPLCF.SetIdx( nOldIdx );
+    return true;
+Err:
+    rPLCF.SetIdx( nOldIdx );
+    return false;
+}
+
+
+//-----------------------------------------
+
+
+// WW8ReadPString liest einen Pascal-String ein und gibt ihn zurueck. Der
+// Pascal- String hat am Ende ein \0, der aber im Laengenbyte nicht
+// mitgezaehlt wird.  Der Speicher fuer den Pascalstring wird alloziert.
+String WW8ReadPString(SvStream& rStrm, rtl_TextEncoding eEnc,
+    bool bAtEndSeekRel1)
+{
+    ByteString aByteStr;
+    UINT8 b;
+    rStrm >> b;
+
+    if (b)
+    {
+        // Alloc methode automatically sets Zero at the end
+        sal_Char*  pByteData = aByteStr.AllocBuffer( b );
+
+        ULONG nWasRead = rStrm.Read( pByteData, b );
+        if( nWasRead != b )
+            aByteStr.ReleaseBufferAccess(static_cast<xub_StrLen>(nWasRead));
+    }
+
+    if( bAtEndSeekRel1 )
+        rStrm.SeekRel( 1 ); // ueberspringe das Null-Byte am Ende.
+
+
+    return String( aByteStr, eEnc );
+}
+
+String WW8Read_xstz(SvStream& rStrm, USHORT nChars, bool bAtEndSeekRel1)
+{
+    UINT16 b;
+
+    if( nChars )
+        b = nChars;
+    else
+        rStrm >> b;
+
+    String aStr;
+    if (b)
+    {
+        // Alloc methode automatically sets Zero at the end
+        sal_Unicode* pData = aStr.AllocBuffer( b );
+
+        ULONG nWasRead = rStrm.Read( (sal_Char*)pData, b * 2 );
+        if( nWasRead != static_cast<ULONG>(b*2) )
+        {
+            b = static_cast<UINT16>(nWasRead / 2);
+            aStr.ReleaseBufferAccess( b );
+            pData = aStr.GetBufferAccess();
+        }
+
+#ifdef OSL_BIGENDIAN
+        ULONG n;
+        sal_Unicode *pWork;
+        for( n = 0, pWork = pData; n < b; ++n, ++pWork )
+            *pWork = SWAPSHORT( *pWork );
+#endif // ifdef OSL_BIGENDIAN
+    }
+
+    if( bAtEndSeekRel1 )
+        rStrm.SeekRel( 2 ); // ueberspringe das Null-Character am Ende.
+
+    return aStr;
+}
+=====================================================================
+Found a 37 line (846 tokens) duplication in the following files: 
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_FORMRT),	SC_WID_UNO_FORMRT,	&getCppuType((table::CellContentType*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
+		{MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
+        {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
+        {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_WRITING),	ATTR_WRITINGDIR,	&getCppuType((sal_Int16*)0),			0, 0 },
+        {0,0,0,0,0,0}
+	};
+	return aCellPropertyMap_Impl;
+=====================================================================
+Found a 175 line (846 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 175 line (846 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iRttiFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 182 line (840 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 109 line (838 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+using namespace com::sun::star::registry;
+
+
+//==================================================================================================
+sal_Bool equals( const test::TestElement & rData1, const test::TestElement & rData2 )
+{
+	OSL_ENSURE( rData1.Bool == rData2.Bool, "### bool does not match!" );
+	OSL_ENSURE( rData1.Char == rData2.Char, "### char does not match!" );
+	OSL_ENSURE( rData1.Byte == rData2.Byte, "### byte does not match!" );
+	OSL_ENSURE( rData1.Short == rData2.Short, "### short does not match!" );
+	OSL_ENSURE( rData1.UShort == rData2.UShort, "### unsigned short does not match!" );
+	OSL_ENSURE( rData1.Long == rData2.Long, "### long does not match!" );
+	OSL_ENSURE( rData1.ULong == rData2.ULong, "### unsigned long does not match!" );
+	OSL_ENSURE( rData1.Hyper == rData2.Hyper, "### hyper does not match!" );
+	OSL_ENSURE( rData1.UHyper == rData2.UHyper, "### unsigned hyper does not match!" );
+	OSL_ENSURE( rData1.Float == rData2.Float, "### float does not match!" );
+	OSL_ENSURE( rData1.Double == rData2.Double, "### double does not match!" );
+	OSL_ENSURE( rData1.Enum == rData2.Enum, "### enum does not match!" );
+	OSL_ENSURE( rData1.String == rData2.String, "### string does not match!" );
+	OSL_ENSURE( rData1.Interface == rData2.Interface, "### interface does not match!" );
+	OSL_ENSURE( rData1.Any == rData2.Any, "### any does not match!" );
+	
+	return (rData1.Bool == rData2.Bool &&
+			rData1.Char == rData2.Char &&
+			rData1.Byte == rData2.Byte &&
+			rData1.Short == rData2.Short &&
+			rData1.UShort == rData2.UShort &&
+			rData1.Long == rData2.Long &&
+			rData1.ULong == rData2.ULong &&
+			rData1.Hyper == rData2.Hyper &&
+			rData1.UHyper == rData2.UHyper &&
+			rData1.Float == rData2.Float &&
+			rData1.Double == rData2.Double &&
+			rData1.Enum == rData2.Enum &&
+			rData1.String == rData2.String &&
+			rData1.Interface == rData2.Interface &&
+			rData1.Any == rData2.Any);
+}
+//==================================================================================================
+sal_Bool equals( const test::TestData & rData1, const test::TestData & rData2 )
+{
+	sal_Int32 nLen;
+	
+	if ((rData1.Sequence == rData2.Sequence) &&
+		equals( (const test::TestElement &)rData1, (const test::TestElement &)rData2 ) &&
+		(nLen = rData1.Sequence.getLength()) == rData2.Sequence.getLength())
+	{
+		// once again by hand sequence ==
+		const test::TestElement * pElements1 = rData1.Sequence.getConstArray();
+		const test::TestElement * pElements2 = rData2.Sequence.getConstArray();
+		for ( ; nLen--; )
+		{
+			if (! equals( pElements1[nLen], pElements2[nLen] ))
+			{
+				OSL_ENSURE( sal_False, "### sequence element did not match!" );
+				return sal_False;
+			}
+		}
+		return sal_True;
+	}
+	return sal_False;
+}
+//==================================================================================================
+void assign( test::TestElement & rData,
+			 sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+			 sal_Int16 nShort, sal_uInt16 nUShort,
+			 sal_Int32 nLong, sal_uInt32 nULong,
+			 sal_Int64 nHyper, sal_uInt64 nUHyper,
+			 float fFloat, double fDouble,
+			 test::TestEnum eEnum, const ::rtl::OUString& rStr,
+			 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+			 const ::com::sun::star::uno::Any& rAny )
+{
+	rData.Bool = bBool;
+	rData.Char = cChar;
+	rData.Byte = nByte;
+	rData.Short = nShort;
+	rData.UShort = nUShort;
+	rData.Long = nLong;
+	rData.ULong = nULong;
+	rData.Hyper = nHyper;
+	rData.UHyper = nUHyper;
+	rData.Float = fFloat;
+	rData.Double = fDouble;
+	rData.Enum = eEnum;
+	rData.String = rStr;
+	rData.Interface = xTest;
+	rData.Any = rAny;
+}
+//==================================================================================================
+void assign( test::TestData & rData,
+			 sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+			 sal_Int16 nShort, sal_uInt16 nUShort,
+			 sal_Int32 nLong, sal_uInt32 nULong,
+			 sal_Int64 nHyper, sal_uInt64 nUHyper,
+			 float fFloat, double fDouble,
+			 test::TestEnum eEnum, const ::rtl::OUString& rStr,
+			 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+			 const ::com::sun::star::uno::Any& rAny,
+			 const com::sun::star::uno::Sequence< test::TestElement >& rSequence )
+{
+	assign( (test::TestElement &)rData,
+			bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
+			eEnum, rStr, xTest, rAny );
+	rData.Sequence = rSequence;
+}
+
+//==================================================================================================
+class Test_Impl : public WeakImplHelper1< XLanguageBindingTest >
+=====================================================================
+Found a 105 line (833 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        { 77, 0, L_VAR}, // unknown
+        { 79, 0, L_VAR}, // unknown
+        { 80, 2, L_FIX}, // "sprmCIstd" chp.istd istd, see stylesheet definition
+        { 81, 0, L_VAR}, // "sprmCIstdPermute" chp.istd permutation vector
+        { 82, 0, L_VAR}, // "sprmCDefault" whole CHP
+        { 83, 0, L_FIX}, // "sprmCPlain" whole CHP
+        { 85, 1, L_FIX}, // "sprmCFBold" chp.fBold 0,1, 128, or 129
+        { 86, 1, L_FIX}, // "sprmCFItalic" chp.fItalic 0,1, 128, or 129
+        { 87, 1, L_FIX}, // "sprmCFStrike" chp.fStrike 0,1, 128, or 129
+        { 88, 1, L_FIX}, // "sprmCFOutline" chp.fOutline 0,1, 128, or 129
+        { 89, 1, L_FIX}, // "sprmCFShadow" chp.fShadow 0,1, 128, or 129
+        { 90, 1, L_FIX}, // "sprmCFSmallCaps" chp.fSmallCaps 0,1, 128, or 129
+        { 91, 1, L_FIX}, // "sprmCFCaps" chp.fCaps 0,1, 128, or 129
+        { 92, 1, L_FIX}, // "sprmCFVanish" chp.fVanish 0,1, 128, or 129
+        { 93, 2, L_FIX}, // "sprmCFtc" chp.ftc ftc word
+        { 94, 1, L_FIX}, // "sprmCKul" chp.kul kul byte
+        { 95, 3, L_FIX}, // "sprmCSizePos" chp.hps, chp.hpsPos
+        { 96, 2, L_FIX}, // "sprmCDxaSpace" chp.dxaSpace dxa
+        { 97, 2, L_FIX}, // "sprmCLid" chp.lid LID
+        { 98, 1, L_FIX}, // "sprmCIco" chp.ico ico byte
+        { 99, 2, L_FIX}, // "sprmCHps" chp.hps hps !word!
+        {100, 1, L_FIX}, // "sprmCHpsInc" chp.hps
+        {101, 2, L_FIX}, // "sprmCHpsPos" chp.hpsPos hps !word!
+        {102, 1, L_FIX}, // "sprmCHpsPosAdj" chp.hpsPos hps
+        {103, 0, L_VAR}, // "?sprmCMajority" chp.fBold, chp.fItalic, ...
+        {104, 1, L_FIX}, // "sprmCIss" chp.iss iss
+        {105, 0, L_VAR}, // "sprmCHpsNew50" chp.hps hps variable width
+        {106, 0, L_VAR}, // "sprmCHpsInc1" chp.hps complex
+        {107, 2, L_FIX}, // "sprmCHpsKern" chp.hpsKern hps
+        {108, 0, L_VAR}, // "sprmCMajority50" chp.fBold, chp.fItalic, ...
+        {109, 2, L_FIX}, // "sprmCHpsMul" chp.hps percentage to grow hps
+        {110, 2, L_FIX}, // "sprmCCondHyhen" chp.ysri ysri
+        {111, 2, L_FIX}, // rtl bold
+        {112, 2, L_FIX}, // rtl italic
+        {113, 0, L_VAR}, // rtl property ?
+        {115, 0, L_VAR}, // rtl property ?
+        {116, 0, L_VAR}, // unknown
+        {117, 1, L_FIX}, // "sprmCFSpec" chp.fSpec  1 or 0 bit
+        {118, 1, L_FIX}, // "sprmCFObj" chp.fObj 1 or 0 bit
+        {119, 1, L_FIX}, // "sprmPicBrcl" pic.brcl brcl (see PIC definition)
+        {120,12, L_VAR}, // "sprmPicScale" pic.mx, pic.my, pic.dxaCropleft,
+        {121, 2, L_FIX}, // "sprmPicBrcTop" pic.brcTop BRC word
+        {122, 2, L_FIX}, // "sprmPicBrcLeft" pic.brcLeft BRC word
+        {123, 2, L_FIX}, // "sprmPicBrcBottom" pic.brcBottom BRC word
+        {124, 2, L_FIX}, // "sprmPicBrcRight" pic.brcRight BRC word
+        {131, 1, L_FIX}, // "sprmSScnsPgn" sep.cnsPgn cns byte
+        {132, 1, L_FIX}, // "sprmSiHeadingPgn" sep.iHeadingPgn
+        {133, 0, L_VAR}, // "sprmSOlstAnm" sep.olstAnm OLST variable length
+        {136, 3, L_FIX}, // "sprmSDxaColWidth" sep.rgdxaColWidthSpacing complex
+        {137, 3, L_FIX}, // "sprmSDxaColSpacing" sep.rgdxaColWidthSpacing
+        {138, 1, L_FIX}, // "sprmSFEvenlySpaced" sep.fEvenlySpaced 1 or 0
+        {139, 1, L_FIX}, // "sprmSFProtected" sep.fUnlocked 1 or 0 byte
+        {140, 2, L_FIX}, // "sprmSDmBinFirst" sep.dmBinFirst  word
+        {141, 2, L_FIX}, // "sprmSDmBinOther" sep.dmBinOther  word
+        {142, 1, L_FIX}, // "sprmSBkc" sep.bkc bkc byte
+        {143, 1, L_FIX}, // "sprmSFTitlePage" sep.fTitlePage 0 or 1 byte
+        {144, 2, L_FIX}, // "sprmSCcolumns" sep.ccolM1 # of cols - 1 word
+        {145, 2, L_FIX}, // "sprmSDxaColumns" sep.dxaColumns dxa word
+        {146, 1, L_FIX}, // "sprmSFAutoPgn" sep.fAutoPgn obsolete byte
+        {147, 1, L_FIX}, // "sprmSNfcPgn" sep.nfcPgn nfc byte
+        {148, 2, L_FIX}, // "sprmSDyaPgn" sep.dyaPgn dya short
+        {149, 2, L_FIX}, // "sprmSDxaPgn" sep.dxaPgn dya short
+        {150, 1, L_FIX}, // "sprmSFPgnRestart" sep.fPgnRestart 0 or 1 byte
+        {151, 1, L_FIX}, // "sprmSFEndnote" sep.fEndnote 0 or 1 byte
+        {152, 1, L_FIX}, // "sprmSLnc" sep.lnc lnc byte
+        {153, 1, L_FIX}, // "sprmSGprfIhdt" sep.grpfIhdt grpfihdt
+        {154, 2, L_FIX}, // "sprmSNLnnMod" sep.nLnnMod non-neg int. word
+        {155, 2, L_FIX}, // "sprmSDxaLnn" sep.dxaLnn dxa word
+        {156, 2, L_FIX}, // "sprmSDyaHdrTop" sep.dyaHdrTop dya word
+        {157, 2, L_FIX}, // "sprmSDyaHdrBottom" sep.dyaHdrBottom dya word
+        {158, 1, L_FIX}, // "sprmSLBetween" sep.fLBetween 0 or 1 byte
+        {159, 1, L_FIX}, // "sprmSVjc" sep.vjc vjc byte
+        {160, 2, L_FIX}, // "sprmSLnnMin" sep.lnnMin lnn word
+        {161, 2, L_FIX}, // "sprmSPgnStart" sep.pgnStart pgn word
+        {162, 1, L_FIX}, // "sprmSBOrientation" sep.dmOrientPage dm byte
+        {163, 0, L_FIX}, // "?SprmSBCustomize 163"
+        {164, 2, L_FIX}, // "sprmSXaPage" sep.xaPage xa word
+        {165, 2, L_FIX}, // "sprmSYaPage" sep.yaPage ya word
+        {166, 2, L_FIX}, // "sprmSDxaLeft" sep.dxaLeft dxa word
+        {167, 2, L_FIX}, // "sprmSDxaRight" sep.dxaRight dxa word
+        {168, 2, L_FIX}, // "sprmSDyaTop" sep.dyaTop dya word
+        {169, 2, L_FIX}, // "sprmSDyaBottom" sep.dyaBottom dya word
+        {170, 2, L_FIX}, // "sprmSDzaGutter" sep.dzaGutter dza word
+        {171, 2, L_FIX}, // "sprmSDMPaperReq" sep.dmPaperReq dm word
+        {179, 0, L_VAR}, // rtl property ?
+        {181, 0, L_VAR}, // rtl property ?
+        {182, 2, L_FIX}, // "sprmTJc" tap.jc jc (low order byte is significant)
+        {183, 2, L_FIX}, // "sprmTDxaLeft" tap.rgdxaCenter dxa word
+        {184, 2, L_FIX}, // "sprmTDxaGapHalf" tap.dxaGapHalf, tap.rgdxaCenter
+        {185, 1, L_FIX}, // "sprmTFCantSplit" tap.fCantSplit 1 or 0 byte
+        {186, 1, L_FIX}, // "sprmTTableHeader" tap.fTableHeader 1 or 0 byte
+        {187,12, L_FIX}, // "sprmTTableBorders" tap.rgbrcTable complex 12 bytes
+        {188, 0, L_VAR}, // "sprmTDefTable10" tap.rgdxaCenter, tap.rgtc complex
+        {189, 2, L_FIX}, // "sprmTDyaRowHeight" tap.dyaRowHeight dya word
+        {190, 0, L_VAR2},// "sprmTDefTable" tap.rgtc complex
+        {191, 1, L_VAR}, // "sprmTDefTableShd" tap.rgshd complex
+        {192, 4, L_FIX}, // "sprmTTlp" tap.tlp TLP 4 bytes
+        {193, 5, L_FIX}, // "sprmTSetBrc" tap.rgtc[].rgbrc complex 5 bytes
+        {194, 4, L_FIX}, // "sprmTInsert" tap.rgdxaCenter,tap.rgtc complex
+        {195, 2, L_FIX}, // "sprmTDelete" tap.rgdxaCenter, tap.rgtc complex
+        {196, 4, L_FIX}, // "sprmTDxaCol" tap.rgdxaCenter complex
+        {197, 2, L_FIX}, // "sprmTMerge" tap.fFirstMerged, tap.fMerged complex
+        {198, 2, L_FIX}, // "sprmTSplit" tap.fFirstMerged, tap.fMerged complex
+        {199, 5, L_FIX}, // "sprmTSetBrc10" tap.rgtc[].rgbrc complex 5 bytes
+        {200, 4, L_FIX}, // "sprmTSetShd", tap.rgshd complex 4 bytes
+=====================================================================
+Found a 174 line (833 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
+
+        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if defined DEBUG
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if defined _DEBUG
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+    
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if defined DEBUG
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if defined _DEBUG
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 185 line (832 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 455 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
+           = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * > (pUnoI);
+        //	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+                        aVtableSlot.index += 1; //get then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 117 line (827 tokens) duplication in the following files: 
+Starting at line 6035 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6346 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            memset( pData + nRead, 0, nMaxDopSize - nRead );
+
+        // dann mal die Daten auswerten
+        UINT32 a32Bit;
+        UINT16 a16Bit;
+        BYTE   a8Bit;
+
+        a16Bit = Get_UShort( pData );
+        fFacingPages        = 0 != ( a16Bit  &  0x0001 )     ;
+        fWidowControl       = 0 != ( a16Bit  &  0x0002 )     ;
+        fPMHMainDoc         = 0 != ( a16Bit  &  0x0004 )     ;
+        grfSuppression      =      ( a16Bit  &  0x0018 ) >> 3;
+        fpc                 =      ( a16Bit  &  0x0060 ) >> 5;
+        grpfIhdt            =      ( a16Bit  &  0xff00 ) >> 8;
+
+        a16Bit = Get_UShort( pData );
+        rncFtn              =   a16Bit  &  0x0003        ;
+        nFtn                = ( a16Bit  & ~0x0003 ) >> 2 ;
+
+        a8Bit = Get_Byte( pData );
+        fOutlineDirtySave      = 0 != ( a8Bit  &  0x01   );
+
+        a8Bit = Get_Byte( pData );
+        fOnlyMacPics           = 0 != ( a8Bit  &  0x01   );
+        fOnlyWinPics           = 0 != ( a8Bit  &  0x02   );
+        fLabelDoc              = 0 != ( a8Bit  &  0x04   );
+        fHyphCapitals          = 0 != ( a8Bit  &  0x08   );
+        fAutoHyphen            = 0 != ( a8Bit  &  0x10   );
+        fFormNoFields          = 0 != ( a8Bit  &  0x20   );
+        fLinkStyles            = 0 != ( a8Bit  &  0x40   );
+        fRevMarking            = 0 != ( a8Bit  &  0x80   );
+
+        a8Bit = Get_Byte( pData );
+        fBackup                = 0 != ( a8Bit  &  0x01   );
+        fExactCWords           = 0 != ( a8Bit  &  0x02   );
+        fPagHidden             = 0 != ( a8Bit  &  0x04   );
+        fPagResults            = 0 != ( a8Bit  &  0x08   );
+        fLockAtn               = 0 != ( a8Bit  &  0x10   );
+        fMirrorMargins         = 0 != ( a8Bit  &  0x20   );
+        fReadOnlyRecommended   = 0 != ( a8Bit  &  0x40   );
+        fDfltTrueType          = 0 != ( a8Bit  &  0x80   );
+
+        a8Bit = Get_Byte( pData );
+        fPagSuppressTopSpacing = 0 != ( a8Bit  &  0x01   );
+        fProtEnabled           = 0 != ( a8Bit  &  0x02   );
+        fDispFormFldSel        = 0 != ( a8Bit  &  0x04   );
+        fRMView                = 0 != ( a8Bit  &  0x08   );
+        fRMPrint               = 0 != ( a8Bit  &  0x10   );
+        fWriteReservation      = 0 != ( a8Bit  &  0x20   );
+        fLockRev               = 0 != ( a8Bit  &  0x40   );
+        fEmbedFonts            = 0 != ( a8Bit  &  0x80   );
+
+
+        a8Bit = Get_Byte( pData );
+        copts_fNoTabForInd           = 0 != ( a8Bit  &  0x01   );
+        copts_fNoSpaceRaiseLower     = 0 != ( a8Bit  &  0x02   );
+        copts_fSupressSpbfAfterPgBrk = 0 != ( a8Bit  &  0x04   );
+        copts_fWrapTrailSpaces       = 0 != ( a8Bit  &  0x08   );
+        copts_fMapPrintTextColor     = 0 != ( a8Bit  &  0x10   );
+        copts_fNoColumnBalance       = 0 != ( a8Bit  &  0x20   );
+        copts_fConvMailMergeEsc      = 0 != ( a8Bit  &  0x40   );
+        copts_fSupressTopSpacing     = 0 != ( a8Bit  &  0x80   );
+
+        a8Bit = Get_Byte( pData );
+        copts_fOrigWordTableRules    = 0 != ( a8Bit  &  0x01   );
+        copts_fTransparentMetafiles  = 0 != ( a8Bit  &  0x02   );
+        copts_fShowBreaksInFrames    = 0 != ( a8Bit  &  0x04   );
+        copts_fSwapBordersFacingPgs  = 0 != ( a8Bit  &  0x08   );
+
+        dxaTab = Get_Short( pData );
+        wSpare = Get_UShort( pData );
+        dxaHotZ = Get_UShort( pData );
+        cConsecHypLim = Get_UShort( pData );
+        wSpare2 = Get_UShort( pData );
+        dttmCreated = Get_Long( pData );
+        dttmRevised = Get_Long( pData );
+        dttmLastPrint = Get_Long( pData );
+        nRevision = Get_Short( pData );
+        tmEdited = Get_Long( pData );
+        cWords = Get_Long( pData );
+        cCh = Get_Long( pData );
+        cPg = Get_Short( pData );
+        cParas = Get_Long( pData );
+
+        a16Bit = Get_UShort( pData );
+        rncEdn =   a16Bit &  0x0003       ;
+        nEdn   = ( a16Bit & ~0x0003 ) >> 2;
+
+        a16Bit = Get_UShort( pData );
+        epc            =   a16Bit &  0x0003       ;
+        nfcFtnRef      = ( a16Bit &  0x003c ) >> 2;
+        nfcEdnRef      = ( a16Bit &  0x03c0 ) >> 6;
+        fPrintFormData = 0 != ( a16Bit &  0x0400 );
+        fSaveFormData  = 0 != ( a16Bit &  0x0800 );
+        fShadeFormData = 0 != ( a16Bit &  0x1000 );
+        fWCFtnEdn      = 0 != ( a16Bit &  0x8000 );
+
+        cLines = Get_Long( pData );
+        cWordsFtnEnd = Get_Long( pData );
+        cChFtnEdn = Get_Long( pData );
+        cPgFtnEdn = Get_Short( pData );
+        cParasFtnEdn = Get_Long( pData );
+        cLinesFtnEdn = Get_Long( pData );
+        lKeyProtDoc = Get_Long( pData );
+
+        a16Bit = Get_UShort( pData );
+        wvkSaved    =   a16Bit & 0x0007        ;
+        wScaleSaved = ( a16Bit & 0x0ff8 ) >> 3 ;
+        zkSaved     = ( a16Bit & 0x3000 ) >> 12;
+        fRotateFontW6 = ( a16Bit & 0x4000 ) >> 14;
+        iGutterPos = ( a16Bit &  0x8000 ) >> 15;
+        /*
+            bei nFib >= 103 gehts weiter:
+        */
+        if (nFib >= 103)
+        {
+            a32Bit = Get_ULong( pData );
+=====================================================================
+Found a 192 line (824 tokens) duplication in the following files: 
+Starting at line 3845 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4046 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        rStart = rEnd = WW8_CP_MAX;
+        return -1;
+    }
+
+    pBook[nIsEnd]->Get( rStart, pData );    // Pos. abfragen
+
+    return pBook[nIsEnd]->GetIdx();
+}
+
+// Der Operator ++ hat eine Tuecke: Wenn 2 Bookmarks aneinandergrenzen, dann
+// sollte erst das Ende des ersten und dann der Anfang des 2. erreicht werden.
+// Liegen jedoch 2 Bookmarks der Laenge 0 aufeinander, *muss* von jedem Bookmark
+// erst der Anfang und dann das Ende gefunden werden.
+// Der Fall: ][
+//            [...]
+//           ][
+// ist noch nicht geloest, dabei muesste ich in den Anfangs- und Endindices
+// vor- und zurueckspringen, wobei ein weiterer Index oder ein Bitfeld
+// oder etwas aehnliches zum Merken der bereits abgearbeiteten Bookmarks
+// noetig wird.
+WW8PLCFx& WW8PLCFx_Book::operator ++( int )
+{
+    if( pBook[0] && pBook[1] && nIMax )
+    {
+        (*pBook[nIsEnd])++;
+
+        register ULONG l0 = pBook[0]->Where();
+        register ULONG l1 = pBook[1]->Where();
+        if( l0 < l1 )
+            nIsEnd = 0;
+        else if( l1 < l0 )
+            nIsEnd = 1;
+        else
+            nIsEnd = ( nIsEnd ) ? 0 : 1;
+    }
+    return *this;
+}
+
+long WW8PLCFx_Book::GetLen() const
+{
+    if( nIsEnd )
+    {
+        ASSERT( !this, "Falscher Aufruf (1) von PLCF_Book::GetLen()" );
+        return 0;
+    }
+    void * p;
+    WW8_CP nStartPos;
+    if( !pBook[0]->Get( nStartPos, p ) )
+    {
+        ASSERT( !this, "Falscher Aufruf (2) von PLCF_Book::GetLen()" );
+        return 0;
+    }
+    USHORT nEndIdx = SVBT16ToShort( *((SVBT16*)p) );
+    long nNum = pBook[1]->GetPos( nEndIdx );
+    nNum -= nStartPos;
+    return nNum;
+}
+
+void WW8PLCFx_Book::SetStatus(USHORT nIndex, eBookStatus eStat )
+{
+    ASSERT(nIndex < nIMax, "set status of non existing bookmark!");
+    pStatus[nIndex] = (eBookStatus)( pStatus[nIndex] | eStat );
+}
+
+eBookStatus WW8PLCFx_Book::GetStatus() const
+{
+    if( !pStatus )
+        return BOOK_NORMAL;
+    long nEndIdx = GetHandle();
+    return ( nEndIdx < nIMax ) ? pStatus[nEndIdx] : BOOK_NORMAL;
+}
+
+long WW8PLCFx_Book::GetHandle() const
+{
+    if( !pBook[0] || !pBook[1] )
+        return LONG_MAX;
+
+    if( nIsEnd )
+        return pBook[1]->GetIdx();
+    else
+    {
+        if (const void* p = pBook[0]->GetData(pBook[0]->GetIdx()))
+            return SVBT16ToShort( *((SVBT16*)p) );
+        else
+            return LONG_MAX;
+    }
+}
+
+String WW8PLCFx_Book::GetBookmark(long nStart,long nEnd, USHORT &nIndex)
+{
+    bool bFound = false;
+    USHORT i = 0;
+    if( pBook[0] && pBook[1] )
+    {
+        WW8_CP nStartAkt, nEndAkt;
+        do
+        {
+            void* p;
+            USHORT nEndIdx;
+
+            if( pBook[0]->GetData( i, nStartAkt, p ) && p )
+                nEndIdx = SVBT16ToShort( *((SVBT16*)p) );
+            else
+            {
+                ASSERT( !this, "Bookmark-EndIdx nicht lesbar" );
+                nEndIdx = i;
+            }
+
+            nEndAkt = pBook[1]->GetPos( nEndIdx );
+
+            if ((nStartAkt >= nStart) && (nEndAkt <= nEnd))
+            {
+                nIndex = i;
+                bFound=true;
+                break;
+            }
+            ++i;
+        }
+        while (i < pBook[0]->GetIMax());
+    }
+    return bFound ? aBookNames[i] : aEmptyStr;
+}
+
+bool WW8PLCFx_Book::MapName(String& rName)
+{
+    if( !pBook[0] || !pBook[1] )
+        return false;
+
+    bool bFound = false;
+    USHORT i = 0;
+    WW8_CP nStartAkt, nEndAkt;
+    do
+    {
+        void* p;
+        USHORT nEndIdx;
+
+        if( pBook[0]->GetData( i, nStartAkt, p ) && p )
+            nEndIdx = SVBT16ToShort( *((SVBT16*)p) );
+        else
+        {
+            ASSERT( !this, "Bookmark-EndIdx nicht lesbar" );
+            nEndIdx = i;
+        }
+        nEndAkt = pBook[1]->GetPos( nEndIdx );
+        if (COMPARE_EQUAL == rName.CompareIgnoreCaseToAscii(aBookNames[i]))
+        {
+            rName = aBookNames[i];
+            bFound = true;
+        }
+        ++i;
+    }
+    while (!bFound && i < pBook[0]->GetIMax());
+    return bFound;
+}
+
+const String* WW8PLCFx_Book::GetName() const
+{
+    const String *pRet = 0;
+    if (!nIsEnd && (pBook[0]->GetIdx() < nIMax))
+        pRet = &(aBookNames[pBook[0]->GetIdx()]);
+    return pRet;
+}
+
+//-----------------------------------------
+//          WW8PLCFMan
+//-----------------------------------------
+
+#ifndef DUMP
+
+// Am Ende eines Absatzes reichen bei WW6 die Attribute bis hinter das <CR>.
+// Das wird fuer die Verwendung mit dem SW um 1 Zeichen zurueckgesetzt, wenn
+// dadurch kein AErger zu erwarten ist.
+void WW8PLCFMan::AdjustEnds( WW8PLCFxDesc& rDesc )
+{
+    //Store old end position for supercool new property finder that uses
+    //cp instead of fc's as nature intended
+    rDesc.nOrigEndPos = rDesc.nEndPos;
+    rDesc.nOrigStartPos = rDesc.nStartPos;
+
+    /*
+     Normally given ^XXX{para end}^ we don't actually insert a para end
+     character into the document, so we clip the para end property one to the
+     left to make the para properties end when the paragraph text does. In a
+     drawing textbox we actually do insert a para end character, so we don't
+     clip it. Making the para end properties end after the para end char.
+    */
+    if (GetDoingDrawTextBox())
+        return;
+
+    if ( (&rDesc == pPap) && rDesc.bRealLineEnd )
+    {
+        if ( pPap->nEndPos != WW8_CP_MAX )    // Para adjust
+=====================================================================
+Found a 185 line (823 tokens) duplication in the following files: 
+Starting at line 458 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+
+                        pFPR, nFPR );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
+                                  *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
+            = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+                        aVtableSlot.index += 1; //get then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 146 line (816 tokens) duplication in the following files: 
+Starting at line 5295 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5555 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    Set_UInt16( pData, nKey );
+    Set_UInt8( pData, envr );
+
+    BYTE nBits8 = 0;
+    if( bVer8 )
+    {
+        if( fMac )                  nBits8 |= 0x0001;
+        if( fEmptySpecial )         nBits8 |= 0x0002;
+        if( fLoadOverridePage )     nBits8 |= 0x0004;
+        if( fFuturesavedUndo )      nBits8 |= 0x0008;
+        if( fWord97Saved )          nBits8 |= 0x0010;
+        if( fWord2000Saved )        nBits8 |= 0x0020;
+    }
+    // unter Ver67 these are only reserved
+    Set_UInt8( pData, nBits8  );
+
+    Set_UInt16( pData, chse );
+    Set_UInt16( pData, chseTables );
+    Set_UInt32( pData, fcMin );
+    Set_UInt32( pData, fcMac );
+
+// Einschub fuer WW8 *****************************************************
+
+    // Marke: "rgsw"  Beginning of the array of shorts
+    if( bVer8 )
+    {
+        Set_UInt16( pData, csw );
+        Set_UInt16( pData, wMagicCreated );
+        Set_UInt16( pData, wMagicRevised );
+        Set_UInt16( pData, wMagicCreatedPrivate );
+        Set_UInt16( pData, wMagicRevisedPrivate );
+        pData += 9 * sizeof( INT16 );
+        Set_UInt16( pData, lidFE );
+        Set_UInt16( pData, clw );
+    }
+
+// Ende des Einschubs fuer WW8 *******************************************
+
+    // Marke: "rglw"  Beginning of the array of longs
+    Set_UInt32( pData, cbMac );
+
+    // 2 Longs uebergehen, da unwichtiger Quatsch
+    pData += 2 * sizeof( INT32);
+
+    // weitere 2 Longs nur bei Ver67 ueberspringen
+    if( !bVer8 )
+        pData += 2 * sizeof( INT32);
+
+    Set_UInt32( pData, ccpText );
+    Set_UInt32( pData, ccpFtn );
+    Set_UInt32( pData, ccpHdr );
+    Set_UInt32( pData, ccpMcr );
+    Set_UInt32( pData, ccpAtn );
+    Set_UInt32( pData, ccpEdn );
+    Set_UInt32( pData, ccpTxbx );
+    Set_UInt32( pData, ccpHdrTxbx );
+
+        // weiteres Long nur bei Ver67 ueberspringen
+    if( !bVer8 )
+        pData += 1 * sizeof( INT32);
+
+// Einschub fuer WW8 *****************************************************
+    if( bVer8 )
+    {
+        Set_UInt32( pData, pnFbpChpFirst );
+        Set_UInt32( pData, pnChpFirst );
+        Set_UInt32( pData, cpnBteChp );
+        Set_UInt32( pData, pnFbpPapFirst );
+        Set_UInt32( pData, pnPapFirst );
+        Set_UInt32( pData, cpnBtePap );
+        Set_UInt32( pData, pnFbpLvcFirst );
+        Set_UInt32( pData, pnLvcFirst );
+        Set_UInt32( pData, cpnBteLvc );
+        Set_UInt32( pData, fcIslandFirst );
+        Set_UInt32( pData, fcIslandLim );
+        Set_UInt16( pData, cfclcb );
+    }
+// Ende des Einschubs fuer WW8 *******************************************
+
+    // Marke: "rgfclcb" Beginning of array of FC/LCB pairs.
+    Set_UInt32( pData, fcStshfOrig );
+    Set_UInt32( pData, lcbStshfOrig );
+    Set_UInt32( pData, fcStshf );
+    Set_UInt32( pData, lcbStshf );
+    Set_UInt32( pData, fcPlcffndRef );
+    Set_UInt32( pData, lcbPlcffndRef );
+    Set_UInt32( pData, fcPlcffndTxt );
+    Set_UInt32( pData, lcbPlcffndTxt );
+    Set_UInt32( pData, fcPlcfandRef );
+    Set_UInt32( pData, lcbPlcfandRef );
+    Set_UInt32( pData, fcPlcfandTxt );
+    Set_UInt32( pData, lcbPlcfandTxt );
+    Set_UInt32( pData, fcPlcfsed );
+    Set_UInt32( pData, lcbPlcfsed );
+    Set_UInt32( pData, fcPlcfpad );
+    Set_UInt32( pData, lcbPlcfpad );
+    Set_UInt32( pData, fcPlcfphe );
+    Set_UInt32( pData, lcbPlcfphe );
+    Set_UInt32( pData, fcSttbfglsy );
+    Set_UInt32( pData, lcbSttbfglsy );
+    Set_UInt32( pData, fcPlcfglsy );
+    Set_UInt32( pData, lcbPlcfglsy );
+    Set_UInt32( pData, fcPlcfhdd );
+    Set_UInt32( pData, lcbPlcfhdd );
+    Set_UInt32( pData, fcPlcfbteChpx );
+    Set_UInt32( pData, lcbPlcfbteChpx );
+    Set_UInt32( pData, fcPlcfbtePapx );
+    Set_UInt32( pData, lcbPlcfbtePapx );
+    Set_UInt32( pData, fcPlcfsea );
+    Set_UInt32( pData, lcbPlcfsea );
+    Set_UInt32( pData, fcSttbfffn );
+    Set_UInt32( pData, lcbSttbfffn );
+    Set_UInt32( pData, fcPlcffldMom );
+    Set_UInt32( pData, lcbPlcffldMom );
+    Set_UInt32( pData, fcPlcffldHdr );
+    Set_UInt32( pData, lcbPlcffldHdr );
+    Set_UInt32( pData, fcPlcffldFtn );
+    Set_UInt32( pData, lcbPlcffldFtn );
+    Set_UInt32( pData, fcPlcffldAtn );
+    Set_UInt32( pData, lcbPlcffldAtn );
+    Set_UInt32( pData, fcPlcffldMcr );
+    Set_UInt32( pData, lcbPlcffldMcr );
+    Set_UInt32( pData, fcSttbfbkmk );
+    Set_UInt32( pData, lcbSttbfbkmk );
+    Set_UInt32( pData, fcPlcfbkf );
+    Set_UInt32( pData, lcbPlcfbkf );
+    Set_UInt32( pData, fcPlcfbkl );
+    Set_UInt32( pData, lcbPlcfbkl );
+    Set_UInt32( pData, fcCmds );
+    Set_UInt32( pData, lcbCmds );
+    Set_UInt32( pData, fcPlcfmcr );
+    Set_UInt32( pData, lcbPlcfmcr );
+    Set_UInt32( pData, fcSttbfmcr );
+    Set_UInt32( pData, lcbSttbfmcr );
+    Set_UInt32( pData, fcPrDrvr );
+    Set_UInt32( pData, lcbPrDrvr );
+    Set_UInt32( pData, fcPrEnvPort );
+    Set_UInt32( pData, lcbPrEnvPort );
+    Set_UInt32( pData, fcPrEnvLand );
+    Set_UInt32( pData, lcbPrEnvLand );
+    Set_UInt32( pData, fcWss );
+    Set_UInt32( pData, lcbWss );
+    Set_UInt32( pData, fcDop );
+    Set_UInt32( pData, lcbDop );
+    Set_UInt32( pData, fcSttbfAssoc );
+    Set_UInt32( pData, lcbSttbfAssoc );
+=====================================================================
+Found a 69 line (806 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+=====================================================================
+Found a 69 line (803 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/public.h
+
+t_attr Rcp_attribute ANSI((char *));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+=====================================================================
+Found a 69 line (802 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/gnu/public.h
+
+PUBLIC int main ANSI((int argc, char **argv));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+=====================================================================
+Found a 67 line (798 tokens) duplication in the following files: 
+Starting at line 2997 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2690 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+// aware : control points are always part of the bounding box 
+static const SvxMSDffVertPair mso_sptHeartVert[] =
+{
+	{ 10800, 21599 }, { 321, 6886 }, { 70, 6036 },		// ppp
+	{ -9, 5766 }, { -1,	5474 }, { 2, 5192 },			// ccp
+	{ 6, 4918 }, { 43, 4641 }, { 101, 4370 },			// ccp
+	{ 159, 4103 }, { 245, 3837 }, { 353, 3582 },		// ccp
+	{ 460, 3326 }, { 591, 3077 }, { 741, 2839 },		// ccp
+	{ 892, 2598 }, { 1066, 2369 }, { 1253, 2155 },		// ccp
+	{ 1443,	1938 }, { 1651,	1732 }, { 1874,	1543 },		// ccp
+	{ 2097,	1351 }, { 2337, 1174 }, { 2587, 1014 },		// ccp
+	{ 2839,	854 }, { 3106, 708 }, { 3380, 584 },		// ccp
+	{ 3656,	459 }, { 3945, 350 }, { 4237, 264 },		// ccp
+	{ 4533,	176 }, { 4838, 108 }, { 5144, 66 },			// ccp
+	{ 5454,	22 }, { 5771, 1 }, { 6086, 3 },				// ccp
+	{ 6407,	7 }, { 6731, 35 }, { 7048, 89 },			// ccp
+	{ 7374,	144 }, { 7700, 226 }, { 8015, 335 },		// ccp
+	{ 8344,	447 }, { 8667, 590 }, { 8972, 756 },		// ccp
+	{ 9297,	932 }, { 9613, 1135 }, { 9907, 1363 },		// ccp
+	{ 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 },	// ccp
+	{ 11697, 1363 },									// p
+	{ 11971, 1116 }, { 12304, 934 }, { 12630, 756 },	// ccp
+	{ 12935, 590 }, { 13528, 450 }, { 13589, 335 },		// ccp
+	{ 13901, 226 }, { 14227, 144 }, { 14556, 89 },		// ccp
+	{ 14872, 35 }, { 15195, 7 }, { 15517, 3 },			// ccp
+	{ 15830, 0 }, { 16147, 22 }, { 16458, 66 },			// ccp
+	{ 16764, 109 }, { 17068, 177 }, { 17365, 264 },		// ccp
+	{ 17658, 349 }, { 17946, 458 }, { 18222, 584 },		// ccp
+	{ 18496, 708 }, { 18762, 854 }, { 19015, 1014 },	// ccp
+	{ 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 },	// ccp
+	{ 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 },	// ccp
+	{ 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 },	// ccp
+	{ 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 },	// ccp
+	{ 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 },	// ccp
+	{ 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 },	// ccp
+	{ 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 },	// ccp
+	{ 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 },	// ccp
+	{ 10802, 21602 }									// p
+};
+static const sal_uInt16 mso_sptHeartSegm[] =
+{
+	0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptHeartTextRect[] =
+{
+	{ { 5080, 2540 }, { 16520, 13550 } }
+};
+static const SvxMSDffVertPair mso_sptHeartGluePoints[] =
+{
+	{ 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 } 
+};
+static const sal_Int32 mso_sptHeartBoundRect[] =
+{
+	-9, 0, 21606, 21602
+};
+static const mso_CustomShape msoHeart = 
+{
+	(SvxMSDffVertPair*)mso_sptHeartVert, sizeof( mso_sptHeartVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptHeartSegm, sizeof( mso_sptHeartSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptHeartTextRect, sizeof( mso_sptHeartTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21615, 21602,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptHeartGluePoints, sizeof( mso_sptHeartGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 19 line (795 tokens) duplication in the following files: 
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb98 - fb9f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fba0 - fba7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fba8 - fbaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbb0 - fbb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbb8 - fbbf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbc0 - fbc7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbc8 - fbcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbd0 - fbd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbd8 - fbdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbe0 - fbe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbe8 - fbef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbf0 - fbf7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fbf8 - fbff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff00 - ff07
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff08 - ff0f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff10 - ff17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff18 - ff1f
+    {0x00, 0x0000}, {0x6a, 0xFF41}, {0x6a, 0xFF42}, {0x6a, 0xFF43}, {0x6a, 0xFF44}, {0x6a, 0xFF45}, {0x6a, 0xFF46}, {0x6a, 0xFF47}, // ff20 - ff27
+=====================================================================
+Found a 190 line (789 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/impldde.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/impldde.cxx
+
+SvDDEObject::SvDDEObject()
+	: pConnection( 0 ), pLink( 0 ), pRequest( 0 ), pGetData( 0 ), nError( 0 )
+{
+	SetUpdateTimeout( 100 );
+	bWaitForData = FALSE;
+}
+
+SvDDEObject::~SvDDEObject()
+{
+	delete pLink;
+	delete pRequest;
+	delete pConnection;
+}
+
+BOOL SvDDEObject::GetData( ::com::sun::star::uno::Any & rData /*out param*/,
+							const String & rMimeType,
+							BOOL bSynchron )
+{
+	if( !pConnection )
+		return FALSE;
+
+	if( pConnection->GetError() )		// dann versuchen wir es nochmal
+	{
+		String sServer( pConnection->GetServiceName() );
+		String sTopic( pConnection->GetTopicName() );
+
+		delete pConnection;
+		pConnection = new DdeConnection( sServer, sTopic );
+		if( pConnection->GetError() )
+			nError = DDELINK_ERROR_APP;
+	}
+
+	if( bWaitForData )		// wir sind rekursiv drin, wieder raus
+		return FALSE;
+
+	// Verriegeln gegen Reentrance
+	bWaitForData = TRUE;
+
+	// falls gedruckt werden soll, warten wir bis die Daten vorhanden sind
+	if( bSynchron )
+	{
+		DdeRequest aReq( *pConnection, sItem, 5000 );
+		aReq.SetDataHdl( LINK( this, SvDDEObject, ImplGetDDEData ) );
+		aReq.SetFormat( SotExchange::GetFormatIdFromMimeType( rMimeType ));
+
+		pGetData = &rData;
+
+		do {
+			aReq.Execute();
+		} while( aReq.GetError() && ImplHasOtherFormat( aReq ) );
+
+		if( pConnection->GetError() )
+			nError = DDELINK_ERROR_DATA;
+
+		bWaitForData = FALSE;
+	}
+	else
+	{
+		// ansonsten wird es asynchron ausgefuehrt
+//		if( !pLink || !pLink->IsBusy() )
+		{
+			if( pRequest )
+				delete pRequest;
+
+			pRequest = new DdeRequest( *pConnection, sItem );
+			pRequest->SetDataHdl( LINK( this, SvDDEObject, ImplGetDDEData ) );
+			pRequest->SetDoneHdl( LINK( this, SvDDEObject, ImplDoneDDEData ) );
+			pRequest->SetFormat( SotExchange::GetFormatIdFromMimeType(
+									rMimeType ) );
+			pRequest->Execute();
+		}
+
+		::rtl::OUString aEmptyStr;
+		rData <<= aEmptyStr;
+	}
+	return 0 == pConnection->GetError();
+}
+
+
+BOOL SvDDEObject::Connect( SvBaseLink * pSvLink )
+{
+#if defined(WIN) || defined(WNT)
+	static BOOL bInWinExec = FALSE;
+#endif
+
+	USHORT nLinkType = pSvLink->GetUpdateMode();
+	if( pConnection )		// Verbindung steht ja schon
+	{
+		// tja, dann nur noch als Abhaengig eintragen
+		AddDataAdvise( pSvLink,
+				SotExchange::GetFormatMimeType( pSvLink->GetContentType()),
+				LINKUPDATE_ONCALL == nLinkType
+						? ADVISEMODE_ONLYONCE
+						: 0 );
+		AddConnectAdvise( pSvLink );
+
+		return TRUE;
+	}
+
+	if( !pSvLink->GetLinkManager() )
+		return FALSE;
+
+	String sServer, sTopic;
+	pSvLink->GetLinkManager()->GetDisplayNames( pSvLink, &sServer, &sTopic, &sItem );
+
+	if( !sServer.Len() || !sTopic.Len() || !sItem.Len() )
+		return FALSE;
+
+	pConnection = new DdeConnection( sServer, sTopic );
+	if( pConnection->GetError() )
+	{
+		// kann man denn das System-Topic ansprechen ?
+		// dann ist der Server oben, kennt nur nicht das Topic!
+		if( sTopic.EqualsIgnoreCaseAscii( "SYSTEM" ) )
+		{
+			BOOL bSysTopic;
+			{
+				DdeConnection aTmp( sServer, String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "SYSTEM" ) ) );
+				bSysTopic = !aTmp.GetError();
+			}
+
+			if( bSysTopic )
+			{
+				nError = DDELINK_ERROR_DATA;
+				return FALSE;
+			}
+			// ansonsten unter Win/WinNT die Applikation direkt starten
+		}
+
+#if defined(WIN) || defined(WNT)
+
+		// Server nicht da, starten und nochmal versuchen
+		if( !bInWinExec )
+		{
+			ByteString aCmdLine( sServer, RTL_TEXTENCODING_ASCII_US );
+			aCmdLine.Append( ".exe " );
+			aCmdLine.Append( ByteString( sTopic, RTL_TEXTENCODING_ASCII_US ) );
+
+			if( WinExec( aCmdLine.GetBuffer(), SW_SHOWMINIMIZED ) < 32 )
+				nError = DDELINK_ERROR_APP;
+			else
+			{
+				USHORT i;
+				for( i=0; i<5; i++ )
+				{
+					bInWinExec = TRUE;
+					Application::Reschedule();
+					bInWinExec = FALSE;
+
+					delete pConnection;
+					pConnection = new DdeConnection( sServer, sTopic );
+					if( !pConnection->GetError() )
+						break;
+				}
+
+				if( i == 5 )
+				{
+					nError = DDELINK_ERROR_APP;
+				}
+			}
+		}
+		else
+#endif	// WIN / WNT
+		{
+			nError = DDELINK_ERROR_APP;
+		}
+	}
+
+	if( LINKUPDATE_ALWAYS == nLinkType && !pLink && !pConnection->GetError() )
+	{
+		// Hot Link einrichten, Daten kommen irgendwann spaeter
+		pLink = new DdeHotLink( *pConnection, sItem );
+		pLink->SetDataHdl( LINK( this, SvDDEObject, ImplGetDDEData ) );
+		pLink->SetDoneHdl( LINK( this, SvDDEObject, ImplDoneDDEData ) );
+		pLink->SetFormat( pSvLink->GetContentType() );
+		pLink->Execute();
+	}
+
+	if( pConnection->GetError() )
+		return FALSE;
+
+	AddDataAdvise( pSvLink,
+				SotExchange::GetFormatMimeType( pSvLink->GetContentType()),
+				LINKUPDATE_ONCALL == nLinkType
+						? ADVISEMODE_ONLYONCE
+						: 0 );
+	AddConnectAdvise( pSvLink );
+	SetUpdateTimeout( 0 );
+	return TRUE;
+}
+=====================================================================
+Found a 65 line (789 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BFunctions.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OFunctions.cxx
+
+	if(( pODBC3SQLGetFunctions	=	(T3SQLGetFunctions)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetFunctions").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLGetTypeInfo	=	(T3SQLGetTypeInfo)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetTypeInfo").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLSetConnectAttr	=	(T3SQLSetConnectAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetConnectAttr").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLGetConnectAttr	=	(T3SQLGetConnectAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetConnectAttr").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLSetEnvAttr	=	(T3SQLSetEnvAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetEnvAttr").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLGetEnvAttr	=	(T3SQLGetEnvAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetEnvAttr").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLSetStmtAttr	=	(T3SQLSetStmtAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetStmtAttr").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLGetStmtAttr	=	(T3SQLGetStmtAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetStmtAttr").pData )) == NULL )
+		return sal_False;
+	/*if( ( pODBC3SQLSetDescField	=	(T3SQLSetDescField)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetDescField").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLGetDescField	=	(T3SQLGetDescField)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDescField").pData )) == NULL )
+		return sal_False;*/
+	/*if( ( pODBC3SQLGetDescRec	=	(T3SQLGetDescRec)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDescRec").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLSetDescRec	=	(T3SQLSetDescRec)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetDescRec").pData )) == NULL )
+		return sal_False;*/
+	if( ( pODBC3SQLPrepare		=	(T3SQLPrepare)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLPrepare").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLBindParameter =	(T3SQLBindParameter)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBindParameter").pData )) == NULL )
+		return sal_False;
+//	if( ( pODBC3SQLGetCursorName =	(T3SQLGetCursorName)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetCursorName").pData )) == NULL )
+//		return sal_False;
+	if( ( pODBC3SQLSetCursorName =	(T3SQLSetCursorName)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetCursorName").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLExecute		=	(T3SQLExecute)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLExecute").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLExecDirect	=	(T3SQLExecDirect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLExecDirect").pData )) == NULL )
+		return sal_False;
+	/*if( ( pODBC3SQLNativeSql		=	(T3SQLNativeSql)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNativeSql").pData )) == NULL )
+		return sal_False;*/
+	if( ( pODBC3SQLDescribeParam =   (T3SQLDescribeParam)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDescribeParam").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLNumParams		=	(T3SQLNumParams)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNumParams").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLParamData		=	(T3SQLParamData)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLParamData").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLPutData		=	(T3SQLPutData)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLPutData").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLRowCount		=	(T3SQLRowCount)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLRowCount").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLNumResultCols =	(T3SQLNumResultCols)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNumResultCols").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLDescribeCol	=	(T3SQLDescribeCol)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDescribeCol").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLColAttribute =	(T3SQLColAttribute)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLColAttribute").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLBindCol		=	(T3SQLBindCol)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBindCol").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLFetch			=	(T3SQLFetch)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFetch").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLFetchScroll	=	(T3SQLFetchScroll)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFetchScroll").pData )) == NULL )
+		return sal_False;					
+	if( ( pODBC3SQLGetData		=	(T3SQLGetData)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetData").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLSetPos		=	(T3SQLSetPos)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetPos").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLBulkOperations	=	(T3SQLBulkOperations)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBulkOperations").pData )) == NULL )
+=====================================================================
+Found a 177 line (788 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+    
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#ifdef DEBUG
+    char const * start = p;
+#endif
+    
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+    
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+    
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+    
+#ifdef DEBUG
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+    
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+    
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+    
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+    
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+    
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+        
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iiFind( m_generatedRttis.find( unoName ) );
+            if (iiFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#ifdef DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iiFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 177 line (788 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+    
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+    
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+    
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+    
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+    
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+    
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+    
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+    
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+    
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+    
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+        
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 196 line (784 tokens) duplication in the following files: 
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 1394 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+}
+
+/*************************************************************************
+ *                        SwScriptInfo::GetBoundsOfHiddenRange(..)
+ * static version
+ **************************************************************************/
+
+bool SwScriptInfo::GetBoundsOfHiddenRange( const SwTxtNode& rNode, xub_StrLen nPos,
+                                           xub_StrLen& rnStartPos, xub_StrLen& rnEndPos,
+                                           PositionList* pList )
+{
+    rnStartPos = STRING_LEN;
+    rnEndPos = 0;
+
+    bool bNewContainsHiddenChars = false;
+
+    //
+    // Optimization: First examine the flags at the text node:
+    //
+    if ( !rNode.IsCalcHiddenCharFlags() )
+    {
+        bool bWholePara = rNode.HasHiddenCharAttribute( true );
+        bool bContainsHiddenChars = rNode.HasHiddenCharAttribute( false );
+        if ( !bContainsHiddenChars )
+            return false;
+
+        if ( bWholePara )
+        {
+            if ( pList )
+            {
+                pList->push_back( 0 );
+                pList->push_back( rNode.GetTxt().Len() );
+            }
+
+            rnStartPos = 0;
+            rnEndPos = rNode.GetTxt().Len();
+            return true;
+        }
+    }
+
+    const SwScriptInfo* pSI = SwScriptInfo::GetScriptInfo( rNode );
+    if ( pSI )
+    {
+        //
+        // Check first, if we have a valid SwScriptInfo object for this text node:
+        //
+        bNewContainsHiddenChars = pSI->GetBoundsOfHiddenRange( nPos, rnStartPos, rnEndPos, pList );
+        const bool bNewHiddenCharsHidePara = ( rnStartPos == 0 && rnEndPos >= rNode.GetTxt().Len() );
+        rNode.SetHiddenCharAttribute( bNewHiddenCharsHidePara, bNewContainsHiddenChars );
+    }
+    else
+    {
+        //
+        // No valid SwScriptInfo Object, we have to do it the hard way:
+        //
+        Range aRange( 0, rNode.GetTxt().Len() ? rNode.GetTxt().Len() - 1 : 0 );
+        MultiSelection aHiddenMulti( aRange );
+        SwScriptInfo::CalcHiddenRanges( rNode, aHiddenMulti );
+        for( USHORT i = 0; i < aHiddenMulti.GetRangeCount(); ++i )
+        {
+            const Range& rRange = aHiddenMulti.GetRange( i );
+            const xub_StrLen nHiddenStart = (xub_StrLen)rRange.Min();
+            const xub_StrLen nHiddenEnd = (xub_StrLen)rRange.Max() + 1;
+
+            if ( nHiddenStart > nPos )
+                break;
+            else if ( nHiddenStart <= nPos && nPos < nHiddenEnd )
+            {
+                rnStartPos = nHiddenStart;
+                rnEndPos   = Min( nHiddenEnd, rNode.GetTxt().Len() );
+                break;
+            }
+        }
+
+        if ( pList )
+        {
+            for( USHORT i = 0; i < aHiddenMulti.GetRangeCount(); ++i )
+            {
+                const Range& rRange = aHiddenMulti.GetRange( i );
+                pList->push_back( (xub_StrLen)rRange.Min() );
+                pList->push_back( (xub_StrLen)rRange.Max() + 1 );
+            }
+        }
+
+        bNewContainsHiddenChars = aHiddenMulti.GetRangeCount() > 0;
+    }
+
+    return bNewContainsHiddenChars;
+}
+
+/*************************************************************************
+ *                        SwScriptInfo::GetBoundsOfHiddenRange(..)
+ * non-static version
+ **************************************************************************/
+
+bool SwScriptInfo::GetBoundsOfHiddenRange( xub_StrLen nPos, xub_StrLen& rnStartPos,
+                                           xub_StrLen& rnEndPos, PositionList* pList ) const
+{
+    rnStartPos = STRING_LEN;
+    rnEndPos = 0;
+
+    USHORT nEnd = CountHiddenChg();
+    for( USHORT nX = 0; nX < nEnd; ++nX )
+    {
+        const xub_StrLen nHiddenStart = GetHiddenChg( nX++ );
+        const xub_StrLen nHiddenEnd = GetHiddenChg( nX );
+
+        if ( nHiddenStart > nPos )
+            break;
+        else if ( nHiddenStart <= nPos && nPos < nHiddenEnd )
+        {
+            rnStartPos = nHiddenStart;
+            rnEndPos   = nHiddenEnd;
+            break;
+        }
+    }
+
+    if ( pList )
+    {
+        for( USHORT nX = 0; nX < nEnd; ++nX )
+        {
+            pList->push_back( GetHiddenChg( nX++ ) );
+            pList->push_back( GetHiddenChg( nX ) );
+        }
+    }
+
+    return CountHiddenChg() > 0;
+}
+
+/*************************************************************************
+ *                        SwScriptInfo::IsInHiddenRange()
+ **************************************************************************/
+
+bool SwScriptInfo::IsInHiddenRange( const SwTxtNode& rNode, xub_StrLen nPos )
+{
+    xub_StrLen nStartPos;
+    xub_StrLen nEndPos;
+    SwScriptInfo::GetBoundsOfHiddenRange( rNode, nPos, nStartPos, nEndPos );
+    return nStartPos != STRING_LEN;
+}
+
+
+#if OSL_DEBUG_LEVEL > 1
+/*************************************************************************
+ *                        SwScriptInfo::CompType(..)
+ * returns the type of the compressed character
+ *************************************************************************/
+
+BYTE SwScriptInfo::CompType( const xub_StrLen nPos ) const
+{
+    USHORT nEnd = CountCompChg();
+    for( USHORT nX = 0; nX < nEnd; ++nX )
+    {
+        xub_StrLen nChg = GetCompStart( nX );
+
+        if ( nPos < nChg )
+            return NONE;
+
+        if( nPos < nChg + GetCompLen( nX ) )
+            return GetCompType( nX );
+    }
+    return NONE;
+}
+#endif
+
+/*************************************************************************
+ *                      SwScriptInfo::HasKana()
+ * returns, if there are compressable kanas or specials
+ * betwenn nStart and nEnd
+ *************************************************************************/
+
+USHORT SwScriptInfo::HasKana( xub_StrLen nStart, const xub_StrLen nLen ) const
+{
+    USHORT nCnt = CountCompChg();
+    xub_StrLen nEnd = nStart + nLen;
+
+    for( USHORT nX = 0; nX < nCnt; ++nX )
+    {
+        xub_StrLen nKanaStart  = GetCompStart( nX );
+        xub_StrLen nKanaEnd = nKanaStart + GetCompLen( nX );
+
+        if ( nKanaStart >= nEnd )
+            return USHRT_MAX;
+
+        if ( nStart < nKanaEnd )
+            return nX;
+    }
+
+    return USHRT_MAX;
+}
+
+/*************************************************************************
+ *                      SwScriptInfo::Compress()
+ *************************************************************************/
+
+long SwScriptInfo::Compress( sal_Int32* pKernArray, xub_StrLen nIdx, xub_StrLen nLen,
+=====================================================================
+Found a 105 line (781 tokens) duplication in the following files: 
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 1618 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+
+						com::sun::star::beans::PropertyValues& rPropValues = seqHandles2[ i ];
+						rPropValues.realloc( nPropertiesNeeded );
+
+						// POSITION
+						{
+							const rtl::OUString	sPosition( RTL_CONSTASCII_USTRINGPARAM ( "Position" ) );
+							::com::sun::star::drawing::EnhancedCustomShapeParameterPair aPosition;
+							EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aPosition.First, pData->nPositionX, sal_True, sal_True );
+							EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aPosition.Second, pData->nPositionY, sal_True, sal_False );
+							rPropValues[ n ].Name = sPosition;
+							rPropValues[ n++ ].Value <<= aPosition;
+						}
+						if ( nFlags & MSDFF_HANDLE_FLAGS_MIRRORED_X )
+						{
+							const rtl::OUString	sMirroredX( RTL_CONSTASCII_USTRINGPARAM ( "MirroredX" ) );
+							sal_Bool bMirroredX = sal_True;
+							rPropValues[ n ].Name = sMirroredX;
+							rPropValues[ n++ ].Value <<= bMirroredX;
+						}
+						if ( nFlags & MSDFF_HANDLE_FLAGS_MIRRORED_Y )
+						{
+							const rtl::OUString	sMirroredY( RTL_CONSTASCII_USTRINGPARAM ( "MirroredY" ) );
+							sal_Bool bMirroredY = sal_True;
+							rPropValues[ n ].Name = sMirroredY;
+							rPropValues[ n++ ].Value <<= bMirroredY;
+						}
+						if ( nFlags & MSDFF_HANDLE_FLAGS_SWITCHED )
+						{
+							const rtl::OUString	sSwitched( RTL_CONSTASCII_USTRINGPARAM ( "Switched" ) );
+							sal_Bool bSwitched = sal_True;
+							rPropValues[ n ].Name = sSwitched;
+							rPropValues[ n++ ].Value <<= bSwitched;
+						}
+						if ( nFlags & MSDFF_HANDLE_FLAGS_POLAR )
+						{
+							const rtl::OUString	sPolar( RTL_CONSTASCII_USTRINGPARAM ( "Polar" ) );
+							::com::sun::star::drawing::EnhancedCustomShapeParameterPair aCenter;
+							EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aCenter.First,  pData->nCenterX,
+								( nFlags & MSDFF_HANDLE_FLAGS_CENTER_X_IS_SPECIAL ) != 0, sal_True  );
+							EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aCenter.Second, pData->nCenterY,
+								( nFlags & MSDFF_HANDLE_FLAGS_CENTER_Y_IS_SPECIAL ) != 0, sal_False );
+							rPropValues[ n ].Name = sPolar;
+							rPropValues[ n++ ].Value <<= aCenter;
+							if ( nFlags & MSDFF_HANDLE_FLAGS_RADIUS_RANGE )
+							{
+								if ( pData->nRangeXMin != DEFAULT_MINIMUM_SIGNED_COMPARE )
+								{
+									const rtl::OUString	sRadiusRangeMinimum( RTL_CONSTASCII_USTRINGPARAM ( "RadiusRangeMinimum" ) );
+									::com::sun::star::drawing::EnhancedCustomShapeParameter aRadiusRangeMinimum;
+									EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aRadiusRangeMinimum, pData->nRangeXMin,
+										( nFlags & MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL ) != 0, sal_True  );
+									rPropValues[ n ].Name = sRadiusRangeMinimum;
+									rPropValues[ n++ ].Value <<= aRadiusRangeMinimum;
+								}
+								if ( pData->nRangeXMax != DEFAULT_MAXIMUM_SIGNED_COMPARE )
+								{
+									const rtl::OUString	sRadiusRangeMaximum( RTL_CONSTASCII_USTRINGPARAM ( "RadiusRangeMaximum" ) );
+									::com::sun::star::drawing::EnhancedCustomShapeParameter aRadiusRangeMaximum;
+									EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aRadiusRangeMaximum, pData->nRangeXMax,
+										( nFlags & MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL ) != 0, sal_False );
+									rPropValues[ n ].Name = sRadiusRangeMaximum;
+									rPropValues[ n++ ].Value <<= aRadiusRangeMaximum;
+								}
+							}
+						}
+						else if ( nFlags & MSDFF_HANDLE_FLAGS_RANGE )
+						{
+							if ( pData->nRangeXMin != DEFAULT_MINIMUM_SIGNED_COMPARE )
+							{
+								const rtl::OUString	sRangeXMinimum( RTL_CONSTASCII_USTRINGPARAM ( "RangeXMinimum" ) );
+								::com::sun::star::drawing::EnhancedCustomShapeParameter aRangeXMinimum;
+								EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aRangeXMinimum, pData->nRangeXMin,
+									( nFlags & MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL ) != 0, sal_True  );
+								rPropValues[ n ].Name = sRangeXMinimum;
+								rPropValues[ n++ ].Value <<= aRangeXMinimum;
+							}
+							if ( pData->nRangeXMax != DEFAULT_MAXIMUM_SIGNED_COMPARE )
+							{
+								const rtl::OUString	sRangeXMaximum( RTL_CONSTASCII_USTRINGPARAM ( "RangeXMaximum" ) );
+								::com::sun::star::drawing::EnhancedCustomShapeParameter aRangeXMaximum;
+								EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aRangeXMaximum, pData->nRangeXMax,
+									( nFlags & MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL ) != 0, sal_False );
+								rPropValues[ n ].Name = sRangeXMaximum;
+								rPropValues[ n++ ].Value <<= aRangeXMaximum;
+							}
+							if ( pData->nRangeYMin != DEFAULT_MINIMUM_SIGNED_COMPARE )
+							{
+								const rtl::OUString	sRangeYMinimum( RTL_CONSTASCII_USTRINGPARAM ( "RangeYMinimum" ) );
+								::com::sun::star::drawing::EnhancedCustomShapeParameter aRangeYMinimum;
+								EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aRangeYMinimum, pData->nRangeYMin,
+									( nFlags & MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL ) != 0, sal_True );
+								rPropValues[ n ].Name = sRangeYMinimum;
+								rPropValues[ n++ ].Value <<= aRangeYMinimum;
+							}
+							if ( pData->nRangeYMax != DEFAULT_MAXIMUM_SIGNED_COMPARE )
+							{
+								const rtl::OUString	sRangeYMaximum( RTL_CONSTASCII_USTRINGPARAM ( "RangeYMaximum" ) );
+								::com::sun::star::drawing::EnhancedCustomShapeParameter aRangeYMaximum;
+								EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( aRangeYMaximum, pData->nRangeYMax,
+									( nFlags & MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL ) != 0, sal_False );
+								rPropValues[ n ].Name = sRangeYMaximum;
+								rPropValues[ n++ ].Value <<= aRangeYMaximum;
+							}
+						}
+					}
+=====================================================================
+Found a 66 line (779 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+=====================================================================
+Found a 66 line (776 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/public.h
+
+t_attr Rcp_attribute ANSI((char *));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+=====================================================================
+Found a 66 line (775 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/gnu/public.h
+
+PUBLIC int main ANSI((int argc, char **argv));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+=====================================================================
+Found a 66 line (768 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+int Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 67 line (764 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/propertyids.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/propertyids.cxx
+
+		const sal_Char* getSQLSTATE_GENERAL()				{ return 	"HY0000"; }
+		const sal_Char* getSTR_DELIMITER()					{ return 	"/"; }
+
+		OPropertyMap::~OPropertyMap()
+		{
+			::std::map<sal_Int32 , rtl_uString*>::iterator aIter = m_aPropertyMap.begin();
+			for(;aIter != m_aPropertyMap.end();++aIter)
+				if(aIter->second)
+					rtl_uString_release(aIter->second);
+		}
+		// ------------------------------------------------------------------------------
+		::rtl::OUString OPropertyMap::getNameByIndex(sal_Int32 _nIndex) const
+		{
+			::rtl::OUString sRet;
+			::std::map<sal_Int32 , rtl_uString*>::const_iterator aIter = m_aPropertyMap.find(_nIndex);
+			if(aIter == m_aPropertyMap.end())
+				sRet = const_cast<OPropertyMap*>(this)->fillValue(_nIndex);
+			else
+				sRet = aIter->second;
+			return sRet;
+		}
+		// ------------------------------------------------------------------------------
+		::rtl::OUString OPropertyMap::fillValue(sal_Int32 _nIndex)
+		{
+			rtl_uString* pStr = NULL;
+			switch(_nIndex)
+			{
+				case PROPERTY_ID_QUERYTIMEOUT:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_QUERYTIMEOUT()			); break; }        
+				case PROPERTY_ID_MAXFIELDSIZE:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_MAXFIELDSIZE()			); break; }        
+				case PROPERTY_ID_MAXROWS:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_MAXROWS()				); break;		}             	
+				case PROPERTY_ID_CURSORNAME:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_CURSORNAME()			); break;	}          	
+				case PROPERTY_ID_RESULTSETCONCURRENCY:		{ rtl_uString_newFromAscii(&pStr,getPROPERTY_RESULTSETCONCURRENCY()	); break; }
+				case PROPERTY_ID_RESULTSETTYPE:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_RESULTSETTYPE()			); break; }       
+				case PROPERTY_ID_FETCHDIRECTION:			{ rtl_uString_newFromAscii(&pStr,getPROPERTY_FETCHDIRECTION()		); break; }      	
+				case PROPERTY_ID_FETCHSIZE:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_FETCHSIZE()				); break;	}           
+				case PROPERTY_ID_ESCAPEPROCESSING:			{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ESCAPEPROCESSING()		); break; }    
+				case PROPERTY_ID_USEBOOKMARKS:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_USEBOOKMARKS()			); break; }        
+				// Column                                   
+				case PROPERTY_ID_NAME:						{ rtl_uString_newFromAscii(&pStr,getPROPERTY_NAME()				); break; }           
+				case PROPERTY_ID_TYPE:						{ rtl_uString_newFromAscii(&pStr,getPROPERTY_TYPE()				); break; }           
+				case PROPERTY_ID_TYPENAME:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_TYPENAME()			); break; }       
+				case PROPERTY_ID_PRECISION:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_PRECISION()			); break; }      
+				case PROPERTY_ID_SCALE:						{ rtl_uString_newFromAscii(&pStr,getPROPERTY_SCALE()				); break; }          
+				case PROPERTY_ID_ISNULLABLE:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISNULLABLE()		); break; }     
+				case PROPERTY_ID_ISAUTOINCREMENT:			{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISAUTOINCREMENT()	); break; }
+				case PROPERTY_ID_ISROWVERSION:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISROWVERSION()		); break; }   
+				case PROPERTY_ID_DESCRIPTION:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_DESCRIPTION()		); break; }    
+				case PROPERTY_ID_DEFAULTVALUE:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_DEFAULTVALUE()		); break; }   
+                                            
+				case PROPERTY_ID_REFERENCEDTABLE:			{ rtl_uString_newFromAscii(&pStr,getPROPERTY_REFERENCEDTABLE()	); break; }     
+				case PROPERTY_ID_UPDATERULE:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_UPDATERULE()		); break; }          
+				case PROPERTY_ID_DELETERULE:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_DELETERULE()		); break; }          
+				case PROPERTY_ID_CATALOG:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_CATALOG()			); break; }             
+				case PROPERTY_ID_ISUNIQUE:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISUNIQUE()			); break; }            
+				case PROPERTY_ID_ISPRIMARYKEYINDEX:			{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISPRIMARYKEYINDEX()	); break; }   
+				case PROPERTY_ID_ISCLUSTERED:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISCLUSTERED()			); break; }         
+				case PROPERTY_ID_ISASCENDING:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_ISASCENDING()			); break; }         
+				case PROPERTY_ID_SCHEMANAME:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_SCHEMANAME()			); break; }          
+				case PROPERTY_ID_CATALOGNAME:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_CATALOGNAME()			); break; }         
+                                            				       							 									
+				case PROPERTY_ID_COMMAND:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_COMMAND()				); break; }           
+				case PROPERTY_ID_CHECKOPTION:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_CHECKOPTION()			); break; }       
+				case PROPERTY_ID_PASSWORD:					{ rtl_uString_newFromAscii(&pStr,getPROPERTY_PASSWORD()				); break; }          
+				case PROPERTY_ID_RELATEDCOLUMN:				{ rtl_uString_newFromAscii(&pStr,getPROPERTY_RELATEDCOLUMN()		); break;  }
+                                            				  
+				case PROPERTY_ID_FUNCTION:           		{ rtl_uString_newFromAscii(&pStr,getPROPERTY_FUNCTION()				); break; }                
+				case PROPERTY_ID_TABLENAME:          		{ rtl_uString_newFromAscii(&pStr,getPROPERTY_TABLENAME()				); break; }             
+=====================================================================
+Found a 115 line (761 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUser.cxx
+
+void OMySQLUser::findPrivilegesAndGrantPrivileges(const ::rtl::OUString& objName, sal_Int32 objType,sal_Int32& nRights,sal_Int32& nRightsWithGrant) throw(SQLException, RuntimeException)
+{
+	nRightsWithGrant = nRights = 0;
+	// first we need to create the sql stmt to select the privs
+	Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+	::rtl::OUString sCatalog,sSchema,sTable;
+	::dbtools::qualifiedNameComponents(xMeta,objName,sCatalog,sSchema,sTable,::dbtools::eInDataManipulation);
+	Reference<XResultSet> xRes;
+	switch(objType)
+	{
+		case PrivilegeObject::TABLE:
+		case PrivilegeObject::VIEW:
+			{
+				Any aCatalog;
+				if ( sCatalog.getLength() )
+					aCatalog <<= sCatalog;
+				xRes = xMeta->getTablePrivileges(aCatalog,sSchema,sTable);
+			}
+			break;
+		
+		case PrivilegeObject::COLUMN:
+			{
+				Any aCatalog;
+				if ( sCatalog.getLength() )
+					aCatalog <<= sCatalog;
+				xRes = xMeta->getColumnPrivileges(aCatalog,sSchema,sTable,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")));
+			}
+			break;
+	}
+	
+	if ( xRes.is() )
+	{
+		static const ::rtl::OUString sSELECT	= ::rtl::OUString::createFromAscii("SELECT");
+		static const ::rtl::OUString sINSERT	= ::rtl::OUString::createFromAscii("INSERT");
+		static const ::rtl::OUString sUPDATE	= ::rtl::OUString::createFromAscii("UPDATE");
+		static const ::rtl::OUString sDELETE	= ::rtl::OUString::createFromAscii("DELETE");
+		static const ::rtl::OUString sREAD		= ::rtl::OUString::createFromAscii("READ");
+		static const ::rtl::OUString sCREATE	= ::rtl::OUString::createFromAscii("CREATE");
+		static const ::rtl::OUString sALTER		= ::rtl::OUString::createFromAscii("ALTER");
+		static const ::rtl::OUString sREFERENCE = ::rtl::OUString::createFromAscii("REFERENCE");
+		static const ::rtl::OUString sDROP		= ::rtl::OUString::createFromAscii("DROP");
+		static const ::rtl::OUString sYes		= ::rtl::OUString::createFromAscii("YES");
+
+		nRightsWithGrant = nRights = 0;
+
+		Reference<XRow> xCurrentRow(xRes,UNO_QUERY);
+		while( xCurrentRow.is() && xRes->next() )
+		{
+			::rtl::OUString sGrantee	= xCurrentRow->getString(5);
+			::rtl::OUString sPrivilege	= xCurrentRow->getString(6);
+			::rtl::OUString sGrantable	= xCurrentRow->getString(7);
+			
+			if (!m_Name.equalsIgnoreAsciiCase(sGrantee))
+				continue;
+
+			if (sPrivilege.equalsIgnoreAsciiCase(sSELECT))
+			{
+				nRights |= Privilege::SELECT;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::SELECT;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sINSERT))
+			{
+				nRights |= Privilege::INSERT;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::INSERT;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sUPDATE))
+			{
+				nRights |= Privilege::UPDATE;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::UPDATE;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sDELETE))
+			{
+				nRights |= Privilege::DELETE;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::DELETE;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sREAD))
+			{
+				nRights |= Privilege::READ;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::READ;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sCREATE))
+			{
+				nRights |= Privilege::CREATE;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::CREATE;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sALTER))
+			{
+				nRights |= Privilege::ALTER;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::ALTER;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sREFERENCE))
+			{
+				nRights |= Privilege::REFERENCE;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::REFERENCE;
+			}
+			else if (sPrivilege.equalsIgnoreAsciiCase(sDROP))
+			{
+				nRights |= Privilege::DROP;
+				if ( sGrantable.equalsIgnoreAsciiCase(sYes) )
+					nRightsWithGrant |= Privilege::DROP;
+			}
+		}
+		::comphelper::disposeComponent(xRes);
+	}
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL OMySQLUser::getGrantablePrivileges( const ::rtl::OUString& objName, sal_Int32 objType ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 147 line (750 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LNoException.cxx
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ENoException.cxx
+
+	OFlatConnection* pConnection = (OFlatConnection*)m_pConnection;
+	// ----------------------------------------------------------
+	// Positionierung vorbereiten:
+
+	m_nFilePos = nCurPos;
+
+	switch(eCursorPosition)
+	{
+		case IResultSetHelper::FIRST:
+			m_nFilePos = 0;
+			m_nRowPos = 1;
+			// run through
+		case IResultSetHelper::NEXT:
+			if(eCursorPosition != IResultSetHelper::FIRST)
+				++m_nRowPos;
+			m_pFileStream->Seek(m_nFilePos);
+			if (m_pFileStream->IsEof() || !checkHeaderLine())
+			{
+				m_nMaxRowCount = m_nRowPos;
+				return sal_False;
+			}
+
+			m_aRowToFilePos.insert(::std::map<sal_Int32,sal_Int32>::value_type(m_nRowPos,m_nFilePos));
+
+			m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+			if (m_pFileStream->IsEof())
+			{
+				m_nMaxRowCount = m_nRowPos;
+				return sal_False;
+			}
+			nCurPos = m_pFileStream->Tell();
+			break;
+		case IResultSetHelper::PRIOR:
+			--m_nRowPos;
+			if(m_nRowPos > 0)
+			{
+				m_nFilePos = m_aRowToFilePos.find(m_nRowPos)->second;
+				m_pFileStream->Seek(m_nFilePos);
+				if (m_pFileStream->IsEof() || !checkHeaderLine())
+					return sal_False;
+				m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+				if (m_pFileStream->IsEof())
+					return sal_False;
+				nCurPos = m_pFileStream->Tell();
+			}
+			else
+				m_nRowPos = 0;
+
+			break;
+
+			break;
+		case IResultSetHelper::LAST:
+			if(m_nMaxRowCount)
+			{
+				m_nFilePos = m_aRowToFilePos.rbegin()->second;
+				m_nRowPos  = m_aRowToFilePos.rbegin()->first;
+				m_pFileStream->Seek(m_nFilePos);
+				if (m_pFileStream->IsEof() || !checkHeaderLine())
+					return sal_False;
+				m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+				if (m_pFileStream->IsEof())
+					return sal_False;
+				nCurPos = m_pFileStream->Tell();
+			}
+			else
+			{
+				while(seekRow(IResultSetHelper::NEXT,1,nCurPos)) ; // run through after last row
+				// now I know all
+				seekRow(IResultSetHelper::PRIOR,1,nCurPos);
+			}
+			break;
+		case IResultSetHelper::RELATIVE:
+			if(nOffset > 0)
+			{
+				for(sal_Int32 i = 0;i<nOffset;++i)
+					seekRow(IResultSetHelper::NEXT,1,nCurPos);
+			}
+			else if(nOffset < 0)
+			{
+				for(sal_Int32 i = nOffset;i;++i)
+					seekRow(IResultSetHelper::PRIOR,1,nCurPos);
+			}
+			break;
+		case IResultSetHelper::ABSOLUTE:
+			{
+				if(nOffset < 0)
+					nOffset = m_nRowPos + nOffset;
+				::std::map<sal_Int32,sal_Int32>::const_iterator aIter = m_aRowToFilePos.find(nOffset);
+				if(aIter != m_aRowToFilePos.end())
+				{
+					m_nFilePos = aIter->second;
+					m_pFileStream->Seek(m_nFilePos);
+					if (m_pFileStream->IsEof() || !checkHeaderLine())
+						return sal_False;
+					m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+					if (m_pFileStream->IsEof())
+						return sal_False;
+					nCurPos = m_pFileStream->Tell();
+				}
+				else if(m_nMaxRowCount && nOffset > m_nMaxRowCount) // offset is outside the table
+				{
+					m_nRowPos = m_nMaxRowCount;
+					return sal_False;
+				}
+				else
+				{
+					aIter = m_aRowToFilePos.upper_bound(nOffset);
+					if(aIter == m_aRowToFilePos.end())
+					{
+						m_nRowPos	= m_aRowToFilePos.rbegin()->first;
+						nCurPos = m_nFilePos = m_aRowToFilePos.rbegin()->second;
+						while(m_nRowPos != nOffset)
+							seekRow(IResultSetHelper::NEXT,1,nCurPos);
+					}
+					else
+					{
+						--aIter;
+						m_nRowPos	= aIter->first;
+						m_nFilePos	= aIter->second;
+						m_pFileStream->Seek(m_nFilePos);
+						if (m_pFileStream->IsEof() || !checkHeaderLine())
+							return sal_False;
+						m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+						if (m_pFileStream->IsEof())
+							return sal_False;
+						nCurPos = m_pFileStream->Tell();
+					}
+				}
+			}
+
+			break;
+		case IResultSetHelper::BOOKMARK:
+			m_pFileStream->Seek(nOffset);
+			if (m_pFileStream->IsEof())
+				return sal_False;
+
+			m_nFilePos = m_pFileStream->Tell();	// Byte-Position in der Datei merken (am ZeilenANFANG)
+			m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+			if (m_pFileStream->IsEof())
+				return sal_False;
+			nCurPos  = m_pFileStream->Tell();
+			break;
+	}
+
+
+	return sal_True;
+}
+=====================================================================
+Found a 145 line (748 tokens) duplication in the following files: 
+Starting at line 773 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 686 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+	OFlatConnection* pConnection = (OFlatConnection*)m_pConnection;
+	// ----------------------------------------------------------
+	// Positionierung vorbereiten:
+
+	m_nFilePos = nCurPos;
+
+	switch(eCursorPosition)
+	{
+		case IResultSetHelper::FIRST:
+			m_nFilePos = 0;
+			m_nRowPos = 1;
+			// run through
+		case IResultSetHelper::NEXT:
+			if(eCursorPosition != IResultSetHelper::FIRST)
+				++m_nRowPos;
+			m_pFileStream->Seek(m_nFilePos);
+			if (m_pFileStream->IsEof() || !checkHeaderLine())
+			{
+				m_nMaxRowCount = m_nRowPos;
+				return sal_False;
+			}
+
+			m_aRowToFilePos.insert(::std::map<sal_Int32,sal_Int32>::value_type(m_nRowPos,m_nFilePos));
+
+			m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+			if (m_pFileStream->IsEof())
+			{
+				m_nMaxRowCount = m_nRowPos;
+				return sal_False;
+			}
+			nCurPos = m_pFileStream->Tell();
+			break;
+		case IResultSetHelper::PRIOR:
+			--m_nRowPos;
+			if(m_nRowPos > 0)
+			{
+				m_nFilePos = m_aRowToFilePos.find(m_nRowPos)->second;
+				m_pFileStream->Seek(m_nFilePos);
+				if (m_pFileStream->IsEof() || !checkHeaderLine())
+					return sal_False;
+				m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+				if (m_pFileStream->IsEof())
+					return sal_False;
+				nCurPos = m_pFileStream->Tell();
+			}
+			else
+				m_nRowPos = 0;
+
+			break;
+		case IResultSetHelper::LAST:
+			if(m_nMaxRowCount)
+			{
+				m_nFilePos = m_aRowToFilePos.rbegin()->second;
+				m_nRowPos  = m_aRowToFilePos.rbegin()->first;
+				m_pFileStream->Seek(m_nFilePos);
+				if (m_pFileStream->IsEof() || !checkHeaderLine())
+					return sal_False;
+				m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+				if (m_pFileStream->IsEof())
+					return sal_False;
+				nCurPos = m_pFileStream->Tell();
+			}
+			else
+			{
+				while(seekRow(IResultSetHelper::NEXT,1,nCurPos)) ; // run through after last row
+				// now I know all
+				seekRow(IResultSetHelper::PRIOR,1,nCurPos);
+			}
+			break;
+		case IResultSetHelper::RELATIVE:
+			if(nOffset > 0)
+			{
+				for(sal_Int32 i = 0;i<nOffset;++i)
+					seekRow(IResultSetHelper::NEXT,1,nCurPos);
+			}
+			else if(nOffset < 0)
+			{
+				for(sal_Int32 i = nOffset;i;++i)
+					seekRow(IResultSetHelper::PRIOR,1,nCurPos);
+			}
+			break;
+		case IResultSetHelper::ABSOLUTE:
+			{
+				if(nOffset < 0)
+					nOffset = m_nRowPos + nOffset;
+				::std::map<sal_Int32,sal_Int32>::const_iterator aIter = m_aRowToFilePos.find(nOffset);
+				if(aIter != m_aRowToFilePos.end())
+				{
+					m_nFilePos = aIter->second;
+					m_pFileStream->Seek(m_nFilePos);
+					if (m_pFileStream->IsEof() || !checkHeaderLine())
+						return sal_False;
+					m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+					if (m_pFileStream->IsEof())
+						return sal_False;
+					nCurPos = m_pFileStream->Tell();
+				}
+				else if(m_nMaxRowCount && nOffset > m_nMaxRowCount) // offset is outside the table
+				{
+					m_nRowPos = m_nMaxRowCount;
+					return sal_False;
+				}
+				else
+				{
+					aIter = m_aRowToFilePos.upper_bound(nOffset);
+					if(aIter == m_aRowToFilePos.end())
+					{
+						m_nRowPos	= m_aRowToFilePos.rbegin()->first;
+						nCurPos = m_nFilePos = m_aRowToFilePos.rbegin()->second;
+						while(m_nRowPos != nOffset)
+							seekRow(IResultSetHelper::NEXT,1,nCurPos);
+					}
+					else
+					{
+						--aIter;
+						m_nRowPos	= aIter->first;
+						m_nFilePos	= aIter->second;
+						m_pFileStream->Seek(m_nFilePos);
+						if (m_pFileStream->IsEof() || !checkHeaderLine())
+							return sal_False;
+						m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+						if (m_pFileStream->IsEof())
+							return sal_False;
+						nCurPos = m_pFileStream->Tell();
+					}
+				}
+			}
+
+			break;
+		case IResultSetHelper::BOOKMARK:
+			m_pFileStream->Seek(nOffset);
+			if (m_pFileStream->IsEof())
+				return sal_False;
+
+			m_nFilePos = m_pFileStream->Tell();	// Byte-Position in der Datei merken (am ZeilenANFANG)
+			m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+			if (m_pFileStream->IsEof())
+				return sal_False;
+			nCurPos  = m_pFileStream->Tell();
+			break;
+	}
+
+
+	return sal_True;
+}
+=====================================================================
+Found a 256 line (746 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/sal/typesconfig/typesconfig.c
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/solar/solar.c
+
+  return nStackAlignment;
+}
+
+
+/*************************************************************************
+|*
+|*	Typdeclarations for memory access test functions
+|*
+*************************************************************************/
+typedef enum { t_char, t_short, t_int, t_long, t_double } Type;
+typedef int (*TestFunc)( Type, void* );
+
+
+/*************************************************************************
+|*
+|*	PrintArgs()
+|*
+|*	Beschreibung		Testfunktion fuer variable Parameter
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+#ifdef I_STDARG
+void PrintArgs( int p, ... )
+#else
+void PrintArgs( p, va_alist )
+int p;
+va_dcl
+#endif
+{
+	int value;
+	va_list ap;
+
+#ifdef I_STDARG
+    va_start( ap, p );
+#else
+    va_start( ap );
+#endif
+
+	printf( "value = %d", p );
+
+	while ( ( value = va_arg(ap, int) ) != 0 )
+	  printf( " %d", value );
+
+	printf( "\n" );
+	va_end(ap);
+}
+
+#ifndef USE_FORK_TO_CHECK
+/*************************************************************************
+|*
+|*	SignalHdl()
+|*
+|*	Beschreibung		faengt SIGBUS und SIGSEGV in check() ab
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+static jmp_buf check_env;
+static int bSignal;
+void SignalHdl( int sig )
+{
+  bSignal = 1;
+  
+  fprintf( stderr, "Signal %d caught\n", sig );
+  signal( SIGSEGV,	SIG_DFL );
+  signal( SIGBUS,	SIG_DFL );
+  siglongjmp( check_env, sig );
+}
+#endif
+
+/*************************************************************************
+|*
+|*	check()
+|*
+|*	Beschreibung		Testet MemoryZugriff (read/write)
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+int check( TestFunc func, Type eT, void* p )
+{
+#ifdef USE_FORK_TO_CHECK
+  pid_t nChild = fork();
+  if ( nChild )
+  {
+    int exitVal;
+    wait( &exitVal );
+    if ( exitVal & 0xff )
+      return -1;
+    else
+      return exitVal >> 8;
+  }
+  else
+  {
+    exit( func( eT, p ) );
+  }
+#else
+  int result;
+
+  bSignal = 0;
+
+  if ( !sigsetjmp( check_env, 1 ) )
+  {
+	signal( SIGSEGV,	SignalHdl );
+	signal( SIGBUS,		SignalHdl );
+	result = func( eT, p );
+	signal( SIGSEGV,	SIG_DFL );
+	signal( SIGBUS,		SIG_DFL );
+  }
+
+  if ( bSignal )
+	return -1;
+  else
+	return 0;
+#endif
+}
+
+/*************************************************************************
+|*
+|*	GetAtAddress()
+|*
+|*	Beschreibung		memory read access
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+int GetAtAddress( Type eT, void* p )
+{
+  switch ( eT )
+  {
+  case t_char:		return *((char*)p);
+  case t_short:		return *((short*)p);
+  case t_int:		return *((int*)p);
+  case t_long:		return *((long*)p);
+  case t_double:	return *((double*)p);
+  }
+  abort();
+}
+
+/*************************************************************************
+|*
+|*	SetAtAddress()
+|*
+|*	Beschreibung		memory write access
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+int SetAtAddress( Type eT, void* p )
+{
+  switch ( eT )
+  {
+  case t_char:		return *((char*)p)	= 0;
+  case t_short:		return *((short*)p)	= 0;
+  case t_int:		return *((int*)p)	= 0;
+  case t_long:		return *((long*)p)	= 0;
+  case t_double:	return *((double*)p)= 0;
+  }
+  abort();
+}
+
+char* TypeName( Type eT )
+{
+  switch ( eT )
+  {
+  case t_char:		return "char";
+  case t_short:		return "short";
+  case t_int:		return "int";
+  case t_long:		return "long";
+  case t_double:	return "double";
+  }
+  abort();
+}
+
+/*************************************************************************
+|*
+|*	Check(Get|Set)Access()
+|*
+|*	Beschreibung		Testet MemoryZugriff (read/write)
+|*						Zugriffsverletzungen werden abgefangen
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+int CheckGetAccess( Type eT, void* p )
+{
+  int b;
+  b = -1 != check( (TestFunc)GetAtAddress, eT, p );
+#if OSL_DEBUG_LEVEL > 1
+  fprintf( stderr,
+		   "%s read %s at %p\n",
+		   (b? "can" : "can not" ), TypeName(eT), p );
+#endif
+  return b;
+}
+int CheckSetAccess( Type eT, void* p )
+{
+  int b;
+
+  b = -1 != check( (TestFunc)SetAtAddress, eT, p );
+#if OSL_DEBUG_LEVEL > 1
+  fprintf( stderr,
+		   "%s write %s at %p\n",
+		   (b? "can" : "can not" ), TypeName(eT), p );
+#endif
+  return b;
+}
+
+/*************************************************************************
+|*
+|*	GetAlignment()
+|*
+|*	Beschreibung		Bestimmt das Alignment verschiedener Typen
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+int GetAlignment( Type eT )
+{
+  char	a[ 16*8 ];
+  long	p = (long)(void*)a;
+  int	i;
+
+  /* clear a[...] to set legal value for double access */
+  for ( i = 0; i < 16*8; i++ )
+	a[i] = 0;
+
+  p = ( p + 0xF ) & ~0xF;
+  for ( i = 1; i < 16; i++ )
+	if ( CheckGetAccess( eT, (void*)(p+i) ) )
+	  return i;
+  return 0;
+}
+
+/*************************************************************************
+|*
+|*	struct Description
+|*
+|*	Beschreibung		Beschreibt die Parameter der Architektur
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+struct Description
+{
+  int	bBigEndian;
+  int	bStackGrowsDown;
+=====================================================================
+Found a 145 line (743 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/ipwin.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/hatchwindow/ipwin.cxx
+
+SvResizeHelper::SvResizeHelper()
+	: aBorder( 5, 5 )
+	, nGrab( -1 )
+	, bResizeable( TRUE )
+{
+}
+
+/*************************************************************************
+|*    SvResizeHelper::FillHandleRects()
+|*
+|*    Beschreibung: Die acht Handles zum vergroessern
+*************************************************************************/
+void SvResizeHelper::FillHandleRectsPixel( Rectangle aRects[ 8 ] ) const
+{
+	// nur wegen EMPTY_RECT
+	Point aBottomRight = aOuter.BottomRight();
+
+	// Links Oben
+	aRects[ 0 ] = Rectangle( aOuter.TopLeft(), aBorder );
+	// Oben Mitte
+	aRects[ 1 ] = Rectangle( Point( aOuter.Center().X() - aBorder.Width() / 2,
+									aOuter.Top() ),
+							aBorder );
+	// Oben Rechts
+	aRects[ 2 ] = Rectangle( Point( aBottomRight.X() - aBorder.Width() +1,
+									aOuter.Top() ),
+							aBorder );
+	// Mitte Rechts
+	aRects[ 3 ] = Rectangle( Point( aBottomRight.X() - aBorder.Width() +1,
+									aOuter.Center().Y() - aBorder.Height() / 2 ),
+							aBorder );
+	// Unten Rechts
+	aRects[ 4 ] = Rectangle( Point( aBottomRight.X() - aBorder.Width() +1,
+									aBottomRight.Y() - aBorder.Height() +1 ),
+							aBorder );
+	// Mitte Unten
+	aRects[ 5 ] = Rectangle( Point( aOuter.Center().X() - aBorder.Width() / 2,
+									aBottomRight.Y() - aBorder.Height() +1),
+							aBorder );
+	// Links Unten
+	aRects[ 6 ] = Rectangle( Point( aOuter.Left(),
+									aBottomRight.Y() - aBorder.Height() +1),
+							aBorder );
+	// Mitte Links
+	aRects[ 7 ] = Rectangle( Point( aOuter.Left(),
+									aOuter.Center().Y() - aBorder.Height() / 2 ),
+							aBorder );
+}
+
+/*************************************************************************
+|*    SvResizeHelper::FillMoveRectsPixel()
+|*
+|*    Beschreibung: Die vier Kanten werden berechnet
+*************************************************************************/
+void SvResizeHelper::FillMoveRectsPixel( Rectangle aRects[ 4 ] ) const
+{
+	// Oben
+	aRects[ 0 ] = aOuter;
+	aRects[ 0 ].Bottom() = aRects[ 0 ].Top() + aBorder.Height() -1;
+	// Rechts
+	aRects[ 1 ] = aOuter;
+	aRects[ 1 ].Left() = aRects[ 1 ].Right() - aBorder.Width() -1;
+	//Unten
+	aRects[ 2 ] = aOuter;
+	aRects[ 2 ].Top() = aRects[ 2 ].Bottom() - aBorder.Height() -1;
+	//Links
+	aRects[ 3 ] = aOuter;
+	aRects[ 3 ].Right() = aRects[ 3 ].Left() + aBorder.Width() -1;
+}
+
+/*************************************************************************
+|*    SvResizeHelper::Draw()
+|*
+|*    Beschreibung
+*************************************************************************/
+void SvResizeHelper::Draw( OutputDevice * pDev )
+{
+	pDev->Push();
+	pDev->SetMapMode( MapMode() );
+	Color aColBlack;
+	Color aFillColor( COL_LIGHTGRAY );
+
+	pDev->SetFillColor( aFillColor );
+	pDev->SetLineColor();
+
+	Rectangle   aMoveRects[ 4 ];
+	FillMoveRectsPixel( aMoveRects );
+	USHORT i;
+	for( i = 0; i < 4; i++ )
+		pDev->DrawRect( aMoveRects[ i ] );
+	if( bResizeable )
+	{
+		// Handles malen
+		pDev->SetFillColor( aColBlack );
+		Rectangle   aRects[ 8 ];
+		FillHandleRectsPixel( aRects );
+		for( i = 0; i < 8; i++ )
+			pDev->DrawRect( aRects[ i ] );
+	}
+	pDev->Pop();
+}
+
+/*************************************************************************
+|*    SvResizeHelper::InvalidateBorder()
+|*
+|*    Beschreibung
+*************************************************************************/
+void SvResizeHelper::InvalidateBorder( Window * pWin )
+{
+	Rectangle   aMoveRects[ 4 ];
+	FillMoveRectsPixel( aMoveRects );
+	for( USHORT i = 0; i < 4; i++ )
+		pWin->Invalidate( aMoveRects[ i ] );
+}
+
+/*************************************************************************
+|*    SvResizeHelper::SelectBegin()
+|*
+|*    Beschreibung
+*************************************************************************/
+BOOL SvResizeHelper::SelectBegin( Window * pWin, const Point & rPos )
+{
+	if( -1 == nGrab )
+	{
+		nGrab = SelectMove( pWin, rPos );
+		if( -1 != nGrab )
+		{
+			aSelPos = rPos; // Start-Position merken
+			pWin->CaptureMouse();
+			return TRUE;
+		}
+	}
+	return FALSE;
+}
+
+/*************************************************************************
+|*    SvResizeHelper::SelectBegin()
+|*
+|*    Beschreibung
+*************************************************************************/
+void SvResizeHelper::SelectBegin( Window * pWin, short nGrabP )
+{
+	nGrab = nGrabP;
+	// aSelPos = GetInnerRectPixel().TopLeft(); // Start-Position merken
+	aSelPos = GetOuterRectPixel().TopLeft(); // Start-Position merken
+=====================================================================
+Found a 87 line (740 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/EDatabaseMetaData.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+    Reference< XTablesSupplier > xTables = m_pConnection->createCatalog();
+	if(!xTables.is())
+        throw SQLException();
+
+	Reference< XNameAccess> xNames = xTables->getTables();
+	if(!xNames.is())
+		throw SQLException();
+
+	ODatabaseMetaDataResultSet::ORows aRows;
+	ODatabaseMetaDataResultSet::ORow aRow(19);
+	aRow[10] = new ORowSetValueDecorator((sal_Int32)10);
+	Sequence< ::rtl::OUString> aTabNames(xNames->getElementNames());
+	const ::rtl::OUString* pTabBegin	= aTabNames.getConstArray();
+	const ::rtl::OUString* pTabEnd		= pTabBegin + aTabNames.getLength();
+	for(;pTabBegin != pTabEnd;++pTabBegin)
+	{
+		if(match(tableNamePattern,*pTabBegin,'\0'))
+		{
+			Reference< XColumnsSupplier> xTable;
+			::cppu::extractInterface(xTable,xNames->getByName(*pTabBegin));
+			aRow[3] = new ORowSetValueDecorator(*pTabBegin);
+
+			Reference< XNameAccess> xColumns = xTable->getColumns();
+			if(!xColumns.is())
+				throw SQLException();
+
+			Sequence< ::rtl::OUString> aColNames(xColumns->getElementNames());
+
+			const ::rtl::OUString* pBegin = aColNames.getConstArray();
+			const ::rtl::OUString* pEnd = pBegin + aColNames.getLength();
+			Reference< XPropertySet> xColumn;
+			for(sal_Int32 i=1;pBegin != pEnd;++pBegin,++i)
+			{
+				if(match(columnNamePattern,*pBegin,'\0'))
+				{
+					aRow[4] = new ORowSetValueDecorator(*pBegin);
+
+					::cppu::extractInterface(xColumn,xColumns->getByName(*pBegin));
+					OSL_ENSURE(xColumn.is(),"Columns contains a column who isn't a fastpropertyset!");
+					aRow[5] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE))));
+					aRow[6] = new ORowSetValueDecorator(getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME))));
+					aRow[7] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION))));
+					aRow[9] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE))));
+					aRow[11] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE))));
+					aRow[13] = new ORowSetValueDecorator(getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE))));
+
+					switch((sal_Int32)aRow[5]->getValue())
+					{
+					case DataType::CHAR:
+					case DataType::VARCHAR:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)254);
+						break;
+					case DataType::LONGVARCHAR:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)65535);
+						break;
+					default:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)0);
+					}
+					aRow[17] = new ORowSetValueDecorator(i);
+					switch(sal_Int32(aRow[11]->getValue()))
+					{
+					case ColumnValue::NO_NULLS:
+						aRow[18]  = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("NO"));
+						break;
+					case ColumnValue::NULLABLE:
+						aRow[18]  = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES"));
+						break;
+					default:
+						aRow[18]  = new ORowSetValueDecorator(::rtl::OUString());
+					}
+					aRows.push_back(aRow);
+				}
+			}
+		}
+	}
+
+	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet();
+	Reference< XResultSet > xRef = pResult;
+	pResult->setColumnsMap();
+	pResult->setRows(aRows);
+
+	return xRef;
+}
+// -------------------------------------------------------------------------
+Reference< XResultSet > SAL_CALL OFlatDatabaseMetaData::getVersionColumns(
+=====================================================================
+Found a 17 line (725 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c00 - 2c07
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c08 - 2c0f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c10 - 2c17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c18 - 2c1f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c20 - 2c27
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c28 - 2c2f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c30 - 2c37
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c38 - 2c3f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c40 - 2c47
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c48 - 2c4f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c50 - 2c57
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c58 - 2c5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c60 - 2c67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c68 - 2c6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c70 - 2c77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c78 - 2c7f
+    {0x6a, 0x2c81}, {0x15, 0x2c80}, {0x6a, 0x2c83}, {0x15, 0x2c82}, {0x6a, 0x2c85}, {0x15, 0x2c84}, {0x6a, 0x2c87}, {0x15, 0x2c86}, // 2c80 - 2c87, Coptic
+=====================================================================
+Found a 17 line (723 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x14, 0x2168}, {0x14, 0x2169}, {0x14, 0x216A}, {0x14, 0x216B}, {0x14, 0x216C}, {0x14, 0x216D}, {0x14, 0x216E}, {0x14, 0x216F}, // 2178 - 217f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2180 - 2187
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2188 - 218f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2190 - 2197
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2198 - 219f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21a0 - 21a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21a8 - 21af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21b0 - 21b7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21b8 - 21bf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21c0 - 21c7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21c8 - 21cf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21d0 - 21d7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21d8 - 21df
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21e0 - 21e7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21e8 - 21ef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21f0 - 21f7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 21f8 - 21ff
+=====================================================================
+Found a 204 line (715 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgupdate.cxx
+
+using namespace std;
+
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/Type.hxx>
+#include <com/sun/star/uno/TypeClass.hpp>
+
+#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/container/XHierarchicalName.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/container/XChild.hpp>
+#include <com/sun/star/beans/XExactName.hpp>
+#ifndef _COM_SUN_STAR_UTIL_XCHANGESBATCH_HPP_
+#include <com/sun/star/util/XChangesBatch.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XHIERARCHICALPROPERTYSET_HPP_
+#include <com/sun/star/beans/XHierarchicalPropertySet.hpp>
+#endif
+
+
+#include <rtl/ustring.hxx>
+#include <rtl/string.hxx>
+#include <osl/time.h>
+
+#ifndef _CPPUHELPER_SERVICEFACTORY_HXX_
+#include <cppuhelper/servicefactory.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_H_
+#include <com/sun/star/uno/Sequence.h>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_ANY_H_
+#include <com/sun/star/uno/Any.h>
+#endif
+
+#include "createpropertyvalue.hxx"
+
+#include "typeconverter.hxx"
+
+// #include <com/sun/star/configuration/XConfigurationSync.hpp>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+//using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::util;
+
+using ::rtl::OUString;
+using ::rtl::OString;
+//using namespace ::configmgr;
+
+using namespace ::cppu;
+
+#define ASCII(x) ::rtl::OUString::createFromAscii(x)
+
+ostream& operator << (ostream& out, rtl::OUString const& aStr)
+{
+	sal_Unicode const* const pStr = aStr.getStr();
+	sal_Unicode const* const pEnd = pStr + aStr.getLength();
+	for (sal_Unicode const* p = pStr; p < pEnd; ++p)
+		if (0 < *p && *p < 127) // ASCII
+			out << char(*p);
+		else
+			out << "[\\u" << hex << *p << "]";
+	return out;
+}
+
+void showSequence(const Sequence<OUString> &aSeq)
+{
+	OUString aArray;
+	const OUString *pStr = aSeq.getConstArray();
+	for (int i=0;i<aSeq.getLength();i++)
+	{
+		OUString aStr = pStr[i];
+		// aArray += aStr + ASCII(", ");
+		cout << aStr << endl;
+	}
+	volatile int dummy = 0;
+}
+
+//=============================================================================
+//=============================================================================
+void test_read_access(Reference< XInterface >& xIface, Reference< XMultiServiceFactory > &xMSF);
+//=============================================================================
+struct prompt_and_wait
+{
+	char const* myText;
+	prompt_and_wait(char const* text = "") : myText(text) {}
+	~prompt_and_wait() 
+	{
+		cout << myText << ">" << endl;
+		int const mx = int( (+0u - +1u) >> 1);
+
+		char c=0; 
+		if (cin.get(c) && c != '\n')
+			cin.ignore(mx,'\n'); 
+	}
+}; 
+static prompt_and_wait exit_prompt("Quitting\nQ");
+
+
+// -----------------------------------------------------------------------------
+Sequence<Any> createSequence(const OUString &sUser, const OUString &sPasswd)
+{
+	Sequence< Any > aCPArgs;
+		
+	if (sUser.getLength() > 0)
+	{
+		aCPArgs.realloc(1);
+		aCPArgs[0] <<= configmgr::createPropertyValue(ASCII("user"), sUser);
+	}
+	if (sPasswd.getLength() > 0)
+	{
+		aCPArgs.realloc(2);
+		aCPArgs[1] <<= configmgr::createPropertyValue(ASCII("password"), sPasswd);
+	}
+	return aCPArgs;
+}
+
+//=============================================================================
+#include <string.h>
+#if (defined UNX) || (defined OS2)
+#else
+#include <conio.h>
+#endif
+
+OString input(const char* pDefaultText, char cEcho)
+{
+	// PRE: a Default Text would be shown, cEcho is a Value which will show if a key is pressed.
+	const int MAX_INPUT_LEN = 500;
+	char aBuffer[MAX_INPUT_LEN];
+
+	strcpy(aBuffer, pDefaultText);
+	int nLen = strlen(aBuffer);
+
+#ifdef WNT
+	char ch = '\0';
+
+	cout << aBuffer;
+	cout.flush();
+
+	while(ch != 13)
+	{
+		ch = getch();
+		if (ch == 8)
+		{
+			if (nLen > 0)
+			{
+				cout << "\b \b";
+				cout.flush();
+				--nLen;
+				aBuffer[nLen] = '\0';
+			}
+			else
+			{
+				cout << "\a";
+				cout.flush();
+			}
+		}
+		else if (ch != 13)
+		{
+			if (nLen < MAX_INPUT_LEN)
+			{
+				if (cEcho == 0)
+				{
+					cout << ch;
+				}
+				else
+				{
+					cout << cEcho;
+				}
+				cout.flush();
+				aBuffer[nLen++] = ch;
+				aBuffer[nLen] = '\0';
+			}
+			else
+			{
+				cout << "\a";
+				cout.flush();
+			}
+		}
+	}
+#else
+	if (!cin.getline(aBuffer,sizeof aBuffer))
+		return OString();
+#endif
+	return OString(aBuffer);
+}
+
+// -----------------------------------------------------------------------------
+rtl::OUString enterValue(const char* _aStr, const char* _aDefault, bool _bIsAPassword)
+{
+	cout << _aStr;
+	cout.flush();
+	OString aTxt = input(_aDefault, _bIsAPassword ? '*' : 0);
+
+	OUString sValue = OUString::createFromAscii(aTxt);
+	return sValue;
+}
+=====================================================================
+Found a 31 line (707 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_OHEIGHT),	SC_WID_UNO_OHEIGHT,	&getBooleanCppuType(),					0, 0 },
+        {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
+        {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_WRITING),	ATTR_WRITINGDIR,	&getCppuType((sal_Int16*)0),			0, 0 },
+        {0,0,0,0,0,0}
+	};
+	return aRowPropertyMap_Impl;
+=====================================================================
+Found a 71 line (706 tokens) duplication in the following files: 
+Starting at line 4189 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 4314 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+void PDFWriterImpl::createDefaultRadioButtonAppearance( PDFWidget& rBox, const PDFWriter::RadioButtonWidget& rWidget )
+{
+    const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
+
+    // save graphics state
+    push( sal::static_int_cast<sal_uInt16>(~0U) );
+
+    if( rWidget.Background || rWidget.Border )
+    {
+        setLineColor( rWidget.Border ? replaceColor( rWidget.BorderColor, rSettings.GetCheckedColor() ) : Color( COL_TRANSPARENT ) );
+        setFillColor( rWidget.Background ? replaceColor( rWidget.BackgroundColor, rSettings.GetFieldColor() ) : Color( COL_TRANSPARENT ) );
+        drawRectangle( rBox.m_aRect );
+    }
+
+    Font aFont = replaceFont( rWidget.TextFont, rSettings.GetRadioCheckFont() );
+    setFont( aFont );
+    Size aFontSize = aFont.GetSize();
+    if( aFontSize.Height() > rBox.m_aRect.GetHeight() )
+        aFontSize.Height() = rBox.m_aRect.GetHeight();
+    sal_Int32 nDelta = aFontSize.Height()/10;
+    if( nDelta < 1 )
+        nDelta = 1;
+
+    Rectangle aCheckRect, aTextRect;
+    if( rWidget.ButtonIsLeft )
+    {
+        aCheckRect.Left()	= rBox.m_aRect.Left() + nDelta;
+        aCheckRect.Top()	= rBox.m_aRect.Top() + (rBox.m_aRect.GetHeight()-aFontSize.Height())/2;
+        aCheckRect.Right()	= aCheckRect.Left() + aFontSize.Height();
+        aCheckRect.Bottom()	= aCheckRect.Top() + aFontSize.Height();
+
+        // #i74206# handle small controls without text area
+        while( aCheckRect.GetWidth() > rBox.m_aRect.GetWidth() && aCheckRect.GetWidth() > nDelta )
+        {
+            aCheckRect.Right()  -= nDelta;
+            aCheckRect.Top()    += nDelta/2;
+            aCheckRect.Bottom() -= nDelta - (nDelta/2);
+        }
+
+        aTextRect.Left()	= rBox.m_aRect.Left() + aCheckRect.GetWidth()+5*nDelta;
+        aTextRect.Top()		= rBox.m_aRect.Top();
+        aTextRect.Right()	= aTextRect.Left() + rBox.m_aRect.GetWidth() - aCheckRect.GetWidth()-6*nDelta;
+        aTextRect.Bottom()	= rBox.m_aRect.Bottom();
+    }
+    else
+    {
+        aCheckRect.Left()	= rBox.m_aRect.Right() - nDelta - aFontSize.Height();
+        aCheckRect.Top()	= rBox.m_aRect.Top() + (rBox.m_aRect.GetHeight()-aFontSize.Height())/2;
+        aCheckRect.Right()	= aCheckRect.Left() + aFontSize.Height();
+        aCheckRect.Bottom()	= aCheckRect.Top() + aFontSize.Height();
+
+        // #i74206# handle small controls without text area
+        while( aCheckRect.GetWidth() > rBox.m_aRect.GetWidth() && aCheckRect.GetWidth() > nDelta )
+        {
+            aCheckRect.Left()   += nDelta;
+            aCheckRect.Top()    += nDelta/2;
+            aCheckRect.Bottom() -= nDelta - (nDelta/2);
+        }
+        
+        aTextRect.Left()	= rBox.m_aRect.Left();
+        aTextRect.Top()		= rBox.m_aRect.Top();
+        aTextRect.Right()	= aTextRect.Left() + rBox.m_aRect.GetWidth() - aCheckRect.GetWidth()-6*nDelta;
+        aTextRect.Bottom()	= rBox.m_aRect.Bottom();
+    }
+    setLineColor( Color( COL_BLACK ) );
+    setFillColor( Color( COL_TRANSPARENT ) );
+    OStringBuffer aLW( 32 );
+    aLW.append( "q " );
+    m_aPages[ m_nCurrentPage ].appendMappedLength( nDelta, aLW );
+    aLW.append( " w " );
+    writeBuffer( aLW.getStr(), aLW.getLength() );
+=====================================================================
+Found a 243 line (706 tokens) duplication in the following files: 
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+namespace osl_Socket
+{
+
+	/** testing the methods:
+		inline Socket( );
+		inline Socket( const Socket & socket );
+		inline Socket( oslSocket socketHandle );
+		inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire );
+	*/
+
+	/**  test writer's comment:
+	
+		class Socket can not be initialized by its protected constructor, though the protected 
+		constructor is the most convenient way to create a new socket. 
+		it only allow the method of C function osl_createSocket like:
+		::osl::Socket sSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, 
+		                                  osl_Socket_ProtocolIp ) );
+		the use of C method lost some of the transparent of tester using C++ wrapper.
+	*/
+
+	
+	class ctors : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void ctors_none()
+		{
+			/// Socket constructor.
+			::osl::Socket sSocket();
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the socket was created successfully, if no exception occured", 
+									1 == 1 );
+		}
+	
+		void ctors_acquire()
+		{
+			/// Socket constructor.
+			::osl::Socket sSocket( sHandle );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully", 
+									osl_Socket_TypeStream == sSocket.getType( ) );
+		}
+
+		void ctors_no_acquire()
+		{
+			/// Socket constructor.
+			::osl::Socket sSocket( sHandle, SAL_NO_ACQUIRE );
+	
+			CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully", 
+									osl_Socket_TypeStream == sSocket.getType( ) );
+		}
+		
+		void ctors_copy_ctor()
+		{
+			::osl::Socket sSocket( sHandle );
+			/// Socket copy constructor.
+			::osl::Socket copySocket( sSocket );
+	
+			CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor", 
+									osl_Socket_TypeStream == copySocket.getType( ) );
+		}
+
+		void ctors_TypeRaw()
+		{
+#ifdef WNT
+			oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
+// LLA: ?			::osl::Socket sSocket( sHandleRaw );
+			CPPUNIT_ASSERT_MESSAGE( " type osl_Socket_TypeRaw socket create failed on UNX ", sHandleRaw != NULL);			
+#else
+			oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
+			CPPUNIT_ASSERT_MESSAGE( " can't create socket with type osl_Socket_TypeRaw within UNX is ok.", sHandleRaw == NULL);
+#endif
+		}
+		
+		void ctors_family_Ipx()
+		{
+			oslSocket sHandleIpx = osl_createSocket( osl_Socket_FamilyIpx, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+			CPPUNIT_ASSERT_MESSAGE( " family osl_Socket_FamilyIpx socket create failed! ", sHandleIpx != NULL);
+			::osl::Socket sSocket( sHandleIpx );		//, SAL_NO_ACQUIRE );
+			t_print("#Type is %d \n", sSocket.getType( ) );
+			
+			CPPUNIT_ASSERT_MESSAGE(" test for create new Socket instance that family is osl_Socket_FamilyIpx", 
+									osl_Socket_TypeStream == sSocket.getType( ) );
+		}
+
+		
+		
+		CPPUNIT_TEST_SUITE( ctors );
+		CPPUNIT_TEST( ctors_none );
+		CPPUNIT_TEST( ctors_acquire );
+		CPPUNIT_TEST( ctors_no_acquire );
+		CPPUNIT_TEST( ctors_copy_ctor );
+		CPPUNIT_TEST( ctors_TypeRaw );
+		CPPUNIT_TEST( ctors_family_Ipx );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class ctors
+	
+	
+	/** testing the methods:
+		inline Socket& SAL_CALL operator= ( oslSocket socketHandle);
+		inline Socket& SAL_CALL operator= (const Socket& sock);
+		inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ;
+		inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const;
+	*/
+	
+	class operators : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+	/**  test writer's comment:
+	
+		the assignment operator does not support direct assinment like:
+		::osl::Socket sSocket = sHandle.
+	*/
+		void operators_assignment_handle()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::Socket assignSocket = sSocket.getHandle();
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.", 
+									osl_Socket_TypeStream == assignSocket.getType( )  );
+		}
+	
+		void operators_assignment()
+		{
+			::osl::Socket sSocket( sHandle );
+			::osl::Socket assignSocket = sSocket;
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator", 
+									osl_Socket_TypeStream == assignSocket.getType( ) );
+		}
+
+		void operators_equal_handle_001()
+		{
+			/// Socket constructor.
+			::osl::Socket sSocket( sHandle );
+			::osl::Socket equalSocket = sSocket;
+	
+			CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check equal.", 
+									equalSocket == sHandle );
+		}
+		
+		void operators_equal_handle_002()
+		{
+			/// Socket constructor.
+			::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
+	
+			CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check unequal.", 
+									!( equalSocket == sHandle ) );
+		}
+		
+		void operators_equal_001()
+		{
+			::osl::Socket sSocket( sHandle );
+			/// Socket copy constructor.
+			::osl::Socket equalSocket( sSocket );
+	
+			CPPUNIT_ASSERT_MESSAGE(" test for operators_equal function: check equal.", 
+									equalSocket == sSocket );
+		}
+		
+		void operators_equal_002()
+		{
+			::osl::Socket sSocket( sHandle );
+			/// Socket copy constructor.
+			::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
+	
+			CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_002 function: check unequal.", 
+									!( equalSocket == sSocket ) );
+		}
+		
+		CPPUNIT_TEST_SUITE( operators );
+		CPPUNIT_TEST( operators_assignment_handle );
+		CPPUNIT_TEST( operators_assignment );
+		CPPUNIT_TEST( operators_equal_handle_001 );
+		CPPUNIT_TEST( operators_equal_handle_002 );
+		CPPUNIT_TEST( operators_equal_001 );
+		CPPUNIT_TEST( operators_equal_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class operators
+	
+	
+	/** testing the methods:
+		inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite );
+		inline void SAL_CALL close();
+	*/
+	
+	class close : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void close_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			sSocket.close();
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for close_001 function: this function is reserved for test.", 
+									sSocket.getHandle() == sHandle );
+		}
+		
+		void close_002()
+		{
+//#if defined(LINUX)
+			::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+			AcceptorThread myAcceptorThread( asSocket, rtl::OUString::createFromAscii("127.0.0.1") );
+=====================================================================
+Found a 159 line (704 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/xmlnamespaces.cxx
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/xmlnamespaces.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::xml::sax;
+using namespace ::com::sun::star::uno;
+
+const OUString aXMLAttributeNamespace( RTL_CONSTASCII_USTRINGPARAM( "xmlns" ));
+
+namespace framework
+{
+
+XMLNamespaces::XMLNamespaces()
+{
+}
+
+XMLNamespaces::XMLNamespaces( const XMLNamespaces& aXMLNamespaces )
+{
+	m_aDefaultNamespace = aXMLNamespaces.m_aDefaultNamespace;
+	m_aNamespaceMap = aXMLNamespaces.m_aNamespaceMap;
+}
+
+XMLNamespaces::~XMLNamespaces()
+{
+}
+
+void XMLNamespaces::addNamespace( const OUString& aName, const OUString& aValue ) throw( SAXException )
+{
+	NamespaceMap::iterator p;
+	OUString aNamespaceName( aName );
+	sal_Int32 nXMLNamespaceLength = aXMLAttributeNamespace.getLength();
+
+	// delete preceding "xmlns"
+	if ( aNamespaceName.compareTo( aXMLAttributeNamespace, nXMLNamespaceLength ) == 0 )
+	{
+		if ( aNamespaceName.getLength() == nXMLNamespaceLength )
+		{
+			aNamespaceName = OUString();
+		}
+		else if ( aNamespaceName.getLength() >= nXMLNamespaceLength+2 )
+		{	
+			aNamespaceName = aNamespaceName.copy( nXMLNamespaceLength+1 );
+		}
+		else
+		{
+			// a xml namespace without name is not allowed (e.g. "xmlns:" )
+			OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "A xml namespace without name is not allowed!" ));
+			throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+		}
+	}
+
+	if ( aValue.getLength() == 0 && aNamespaceName.getLength() > 0 )
+	{
+		// namespace should be reseted - as xml draft states this is only allowed
+		// for the default namespace - check and throw exception if check fails
+		OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "Clearing xml namespace only allowed for default namespace!" ));
+		throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+	}
+	else
+	{
+		if ( aNamespaceName.getLength() == 0 )
+			m_aDefaultNamespace = aValue;
+		else
+		{
+			p = m_aNamespaceMap.find( aNamespaceName );
+			if ( p != m_aNamespaceMap.end() )
+			{
+				// replace current namespace definition
+				m_aNamespaceMap.erase( p );
+				m_aNamespaceMap.insert( NamespaceMap::value_type( aNamespaceName, aValue ));
+			}	
+			else
+			{
+				m_aNamespaceMap.insert( NamespaceMap::value_type( aNamespaceName, aValue ));
+			}
+		}
+	}
+}
+
+OUString XMLNamespaces::applyNSToAttributeName( const OUString& aName ) const throw( SAXException )
+{
+	// xml draft: there is no default namespace for attributes!
+
+	int	index;
+	if (( index = aName.indexOf( ':' )) > 0 )
+	{
+		if ( aName.getLength() > index+1 )
+		{
+			OUString aAttributeName = getNamespaceValue( aName.copy( 0, index ) );
+			aAttributeName += OUString::createFromAscii( "^" );
+			aAttributeName += aName.copy( index+1 );
+			return aAttributeName;
+		}
+		else
+		{
+			// attribute with namespace but without name "namespace:" is not allowed!!
+			OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "Attribute has no name only preceding namespace!" ));
+			throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+		}
+	}
+
+	return aName;
+}
+
+OUString XMLNamespaces::applyNSToElementName( const OUString& aName ) const	throw( SAXException )
+{
+	// xml draft: element names can have a default namespace
+
+	int			index = aName.indexOf( ':' );
+	OUString	aNamespace;
+	OUString	aElementName = aName;
+
+	if ( index > 0 )
+		aNamespace = getNamespaceValue( aName.copy( 0, index ) );
+	else
+		aNamespace = m_aDefaultNamespace;
+
+	if ( aNamespace.getLength() > 0 )
+	{
+		aElementName = aNamespace;
+		aElementName += OUString::createFromAscii( "^" );
+	}
+	else
+		return aName;
+
+	if ( index > 0 )
+	{
+		if ( aName.getLength() > index+1 )
+			aElementName += aName.copy( index+1 );
+		else
+		{
+			// attribute with namespace but without a name is not allowed (e.g. "cfg:" )
+			OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "Attribute has no name only preceding namespace!" ));
+			throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+		}
+	}
+	else
+		aElementName += aName;
+			
+	return aElementName;
+}
+
+OUString XMLNamespaces::getNamespaceValue( const OUString& aNamespace ) const throw( SAXException )
+{
+	if ( aNamespace.getLength() == 0 )
+		return m_aDefaultNamespace;
+	else
+	{
+		NamespaceMap::const_iterator p;
+		p = m_aNamespaceMap.find( aNamespace );
+		if ( p != m_aNamespaceMap.end() )
+			return p->second;
+		else
+		{
+			// namespace not defined => throw exception!
+			OUString aErrorMessage( RTL_CONSTASCII_USTRINGPARAM( "XML namespace used but not defined!" ));
+			throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+		}
+	}
+}
+
+}
+=====================================================================
+Found a 215 line (702 tokens) duplication in the following files: 
+Starting at line 5562 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5828 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    else if (rFib.nFib < 67) // old Version ? (need to find this again to fix)
+        cbStshi = 4;    // -> Laengenfeld fehlt
+    else    // neue Version:
+        // lies die Laenge der in der Datei gespeicherten Struktur
+        rSt >> cbStshi;
+
+    UINT16 nRead = cbStshi;
+    do
+    {
+        UINT16 a16Bit;
+
+        if(  2 > nRead ) break;
+        rSt >> cstd;
+
+        if(  4 > nRead ) break;
+        rSt >> cbSTDBaseInFile;
+
+        if(  6 > nRead ) break;
+        rSt >> a16Bit;
+        fStdStylenamesWritten = a16Bit & 0x0001;
+
+        if(  8 > nRead ) break;
+        rSt >> stiMaxWhenSaved;
+
+        if( 10 > nRead ) break;
+        rSt >> istdMaxFixedWhenSaved;
+
+        if( 12 > nRead ) break;
+        rSt >> nVerBuiltInNamesWhenSaved;
+
+        if( 14 > nRead ) break;
+        rSt >> ftcStandardChpStsh;
+
+        if( 16 > nRead ) break;
+        rSt >> ftcStandardChpCJKStsh;
+
+        if ( 18 > nRead ) break;
+        rSt >> ftcStandardChpCTLStsh;
+
+        // ggfs. den Rest ueberlesen
+        if( 18 < nRead )
+            rSt.SeekRel( nRead-18 );
+    }
+    while( !this ); // Trick: obiger Block wird genau einmal durchlaufen
+                    //   und kann vorzeitig per "break" verlassen werden.
+
+    if( 0 != rSt.GetError() )
+    {
+        // wie denn nun den Error melden?
+    }
+}
+
+// Read1STDFixed() liest ein Style ein. Wenn der Style vollstaendig vorhanden
+// ist, d.h. kein leerer Slot, dann wird Speicher alloziert und ein Pointer auf
+// die ( evtl. mit Nullen aufgefuellten ) STD geliefert. Ist es ein leerer
+// Slot, dann wird ein Nullpointer zurueckgeliefert.
+WW8_STD* WW8Style::Read1STDFixed( short& rSkip, short* pcbStd )
+{
+    WW8_STD* pStd = 0;
+
+    UINT16 cbStd;
+    rSt >> cbStd;   // lies Laenge
+
+    UINT16 nRead = cbSTDBaseInFile;
+    if( cbStd >= cbSTDBaseInFile )
+    {
+        // Fixed part vollst. vorhanden
+
+        // read fixed part of STD
+        pStd = new WW8_STD;
+        memset( pStd, 0, sizeof( *pStd ) );
+
+        do
+        {
+            UINT16 a16Bit;
+
+            if( 2 > nRead ) break;
+            rSt >> a16Bit;
+            pStd->sti          =        a16Bit & 0x0fff  ;
+            pStd->fScratch     = 0 != ( a16Bit & 0x1000 );
+            pStd->fInvalHeight = 0 != ( a16Bit & 0x2000 );
+            pStd->fHasUpe      = 0 != ( a16Bit & 0x4000 );
+            pStd->fMassCopy    = 0 != ( a16Bit & 0x8000 );
+
+            if( 4 > nRead ) break;
+            rSt >> a16Bit;
+            pStd->sgc      =   a16Bit & 0x000f       ;
+            pStd->istdBase = ( a16Bit & 0xfff0 ) >> 4;
+
+            if( 6 > nRead ) break;
+            rSt >> a16Bit;
+            pStd->cupx     =   a16Bit & 0x000f       ;
+            pStd->istdNext = ( a16Bit & 0xfff0 ) >> 4;
+
+            if( 8 > nRead ) break;
+            rSt >> pStd->bchUpe;
+
+            // ab Ver8 sollten diese beiden Felder dazukommen:
+            if(10 > nRead ) break;
+            rSt >> a16Bit;
+            pStd->fAutoRedef =   a16Bit & 0x0001       ;
+            pStd->fHidden    = ( a16Bit & 0x0002 ) >> 2;
+
+            // man kann nie wissen: vorsichtshalber ueberlesen
+            // wir eventuelle Fuellsel, die noch zum BASE-Part gehoeren...
+            if( 10 < nRead )
+                rSt.SeekRel( nRead-10 );
+        }
+        while( !this ); // Trick: obiger Block wird genau einmal durchlaufen
+                        //   und kann vorzeitig per "break" verlassen werden.
+
+        if( (0 != rSt.GetError()) || !nRead )
+            DELETEZ( pStd );        // per NULL den Error melden
+
+      rSkip = cbStd - cbSTDBaseInFile;
+    }
+    else
+    {           // Fixed part zu kurz
+        if( cbStd )
+            rSt.SeekRel( cbStd );           // ueberlies Reste
+        rSkip = 0;
+    }
+    if( pcbStd )
+        *pcbStd = cbStd;
+    return pStd;
+}
+
+WW8_STD* WW8Style::Read1Style( short& rSkip, String* pString, short* pcbStd )
+{
+    // Attention: MacWord-Documents have their Stylenames
+    // always in ANSI, even if eStructCharSet == CHARSET_MAC !!
+
+    WW8_STD* pStd = Read1STDFixed( rSkip, pcbStd );         // lese STD
+
+    // String gewuenscht ?
+    if( pString )
+    {   // echter Style ?
+        if ( pStd )
+        {
+            switch( rFib.nVersion )
+            {
+                case 6:
+                case 7:
+                    // lies Pascal-String
+                    *pString = WW8ReadPString( rSt, RTL_TEXTENCODING_MS_1252 );
+                    // leading len and trailing zero --> 2
+                    rSkip -= 2+ pString->Len();
+                    break;
+                case 8:
+                    // handle Unicode-String with leading length short and
+                    // trailing zero
+                    if (ww8String::TestBeltAndBraces(rSt))
+                    {
+                        *pString = WW8Read_xstz(rSt, 0, true);
+                        rSkip -= (pString->Len() + 2) * 2;
+                    }
+                    else
+                    {
+                        /*
+                        #i8114#
+                        This is supposed to be impossible, its just supposed
+                        to be 16 bit count followed by the string and ending
+                        in a 0 short. But "Lotus SmartSuite Product: Word Pro"
+                        is creating invalid style names in ww7- format. So we
+                        use the belt and braces of the ms strings to see if
+                        they are not corrupt. If they are then we try them as
+                        8bit ones
+                        */
+                        *pString = WW8ReadPString(rSt,RTL_TEXTENCODING_MS_1252);
+                        // leading len and trailing zero --> 2
+                        rSkip -= 2+ pString->Len();
+                    }
+                    break;
+                default:
+                    ASSERT(!this, "Es wurde vergessen, nVersion zu kodieren!");
+                    break;
+            }
+        }
+        else
+            *pString = aEmptyStr;   // Kann keinen Namen liefern
+    }
+    return pStd;
+}
+
+
+//-----------------------------------------
+
+
+struct WW8_FFN_Ver6 : public WW8_FFN_BASE
+{
+    // ab Ver6
+    sal_Char szFfn[65]; // 0x6 bzw. 0x40 ab Ver8 zero terminated string that
+                        // records name of font.
+                        // Maximal size of szFfn is 65 characters.
+                        // Vorsicht: Dieses Array kann auch kleiner sein!!!
+                        // Possibly followed by a second sz which records the
+                        // name of an alternate font to use if the first named
+                        // font does not exist on this system.
+};
+struct WW8_FFN_Ver8 : public WW8_FFN_BASE
+{
+    // ab Ver8 sind folgende beiden Felder eingeschoben,
+    // werden von uns ignoriert.
+    sal_Char panose[ 10 ];  //  0x6   PANOSE
+    sal_Char fs[ 24     ];  //  0x10  FONTSIGNATURE
+
+    // ab Ver8 als Unicode
+    UINT16 szFfn[65];   // 0x6 bzw. 0x40 ab Ver8 zero terminated string that
+                        // records name of font.
+                        // Maximal size of szFfn is 65 characters.
+                        // Vorsicht: Dieses Array kann auch kleiner sein!!!
+                        // Possibly followed by a second sz which records the
+                        // name of an alternate font to use if the first named
+                        // font does not exist on this system.
+};
+=====================================================================
+Found a 16 line (699 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x15, 0x0550}, {0x15, 0x0551}, {0x15, 0x0552}, {0x15, 0x0553}, {0x15, 0x0554}, {0x15, 0x0555}, {0x15, 0x0556}, {0xd5, 0x004C}, // 0580 - 0587
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0588 - 058f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0590 - 0597
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0598 - 059f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05a0 - 05a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05a8 - 05af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05b0 - 05b7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05b8 - 05bf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05c0 - 05c7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05c8 - 05cf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05d0 - 05d7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05d8 - 05df
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05e0 - 05e7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05e8 - 05ef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05f0 - 05f7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05f8 - 05ff
+=====================================================================
+Found a 115 line (696 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/attributelist.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/attributelist.cxx
+
+	return sal::static_int_cast< sal_Int16 >(m_pImpl->vecAttribute.size());
+}
+
+OUString SAL_CALL AttributeList::getNameByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
+{
+	if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size()) ) {
+		return m_pImpl->vecAttribute[i].sName;
+	}
+	return OUString();
+}
+
+OUString SAL_CALL AttributeList::getTypeByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
+{
+	if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size() ) ) {
+		return m_pImpl->vecAttribute[i].sType;
+	}
+	return OUString();
+}
+
+OUString SAL_CALL  AttributeList::getValueByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
+{
+	if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size() ) ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString SAL_CALL AttributeList::getTypeByName( const OUString& sName ) throw( ::com::sun::star::uno::RuntimeException )
+{
+	::std::vector<struct TagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString SAL_CALL AttributeList::getValueByName(const OUString& sName) throw( ::com::sun::star::uno::RuntimeException )
+{
+	::std::vector<struct TagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+AttributeList::AttributeList()
+{
+	m_pImpl = new AttributeList_Impl;
+}
+
+
+
+AttributeList::~AttributeList()
+{
+	delete m_pImpl;
+}
+
+void AttributeList::AddAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute_Impl( sName , sType , sValue ) );
+}
+
+void AttributeList::Clear()
+{
+	m_pImpl->vecAttribute.clear();
+
+	VOS_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
+}
+
+void AttributeList::RemoveAttribute( const OUString sName )
+{
+	::std::vector<struct TagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			m_pImpl->vecAttribute.erase( ii );
+			break;
+		}
+	}
+}
+
+
+void AttributeList::SetAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+{
+	Clear();
+	AppendAttributeList( r );
+}
+
+void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+{
+	VOS_ENSURE( r.is(), "r isn't!" );
+
+	sal_Int32 nMax = r->getLength();
+	sal_Int32 nTotalSize = m_pImpl->vecAttribute.size() + nMax;
+	m_pImpl->vecAttribute.reserve( nTotalSize );
+
+	for( sal_Int16 i = 0 ; i < nMax ; i ++ ) {
+		m_pImpl->vecAttribute.push_back( TagAttribute_Impl(
+			r->getNameByIndex( i ) ,
+			r->getTypeByIndex( i ) ,
+			r->getValueByIndex( i )));
+	}
+
+	VOS_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
+}
+=====================================================================
+Found a 115 line (693 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/xml/attributelist.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/attributelist.cxx
+
+	return static_cast< sal_Int16 >( m_pImpl->vecAttribute.size() );
+}
+
+OUString SAL_CALL AttributeList::getNameByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
+{
+	if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size()) ) {
+		return m_pImpl->vecAttribute[i].sName;
+	}
+	return OUString();
+}
+
+OUString SAL_CALL AttributeList::getTypeByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
+{
+	if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size() ) ) {
+		return m_pImpl->vecAttribute[i].sType;
+	}
+	return OUString();
+}
+
+OUString SAL_CALL  AttributeList::getValueByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
+{
+	if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size() ) ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString SAL_CALL AttributeList::getTypeByName( const OUString& sName ) throw( ::com::sun::star::uno::RuntimeException )
+{
+	::std::vector<struct TagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString SAL_CALL AttributeList::getValueByName(const OUString& sName) throw( ::com::sun::star::uno::RuntimeException )
+{
+	::std::vector<struct TagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+AttributeList::AttributeList()
+{
+	m_pImpl = new AttributeList_Impl;
+}
+
+
+
+AttributeList::~AttributeList()
+{
+	delete m_pImpl;
+}
+
+void AttributeList::AddAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute_Impl( sName , sType , sValue ) );
+}
+
+void AttributeList::Clear()
+{
+	m_pImpl->vecAttribute.clear();
+
+	VOS_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
+}
+
+void AttributeList::RemoveAttribute( const OUString sName )
+{
+	::std::vector<struct TagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			m_pImpl->vecAttribute.erase( ii );
+			break;
+		}
+	}
+}
+
+
+void AttributeList::SetAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+{
+	Clear();
+	AppendAttributeList( r );
+}
+
+void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+{
+	VOS_ENSURE( r.is(), "r isn't!" );
+
+	sal_Int32 nMax = r->getLength();
+	sal_Int32 nTotalSize = m_pImpl->vecAttribute.size() + nMax;
+	m_pImpl->vecAttribute.reserve( nTotalSize );
+
+	for( sal_Int16 i = 0 ; i < nMax ; i ++ ) {
+		m_pImpl->vecAttribute.push_back( TagAttribute_Impl(
+			r->getNameByIndex( i ) ,
+			r->getTypeByIndex( i ) ,
+			r->getValueByIndex( i )));
+	}
+
+	VOS_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
+}
+=====================================================================
+Found a 88 line (691 tokens) duplication in the following files: 
+Starting at line 1919 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2696 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0x69, 0xdd },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x01, 0xe0, 0xc0 },
+=====================================================================
+Found a 60 line (688 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+int Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+=====================================================================
+Found a 16 line (687 tokens) duplication in the following files: 
+Starting at line 410 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xd5, 0x014F}, {0xd5, 0x0152}, {0xd5, 0x0155}, {0xd5, 0x0158}, {0xd5, 0x015B}, // fb10 - fb17
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb18 - fb1f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb20 - fb27
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb28 - fb2f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb30 - fb37
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb38 - fb3f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb40 - fb47
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb48 - fb4f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb50 - fb57
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb58 - fb5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb60 - fb67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb68 - fb6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb70 - fb77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb78 - fb7f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb80 - fb87
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fb88 - fb8f
+=====================================================================
+Found a 153 line (682 tokens) duplication in the following files: 
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+Starting at line 2268 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+
+sal_Bool ODbaseTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos)
+{
+	// ----------------------------------------------------------
+	// Positionierung vorbereiten:
+	OSL_ENSURE(m_pFileStream,"ODbaseTable::seekRow: FileStream is NULL!");
+
+	sal_uInt32  nNumberOfRecords = (sal_uInt32)m_aHeader.db_anz;
+	sal_uInt32 nTempPos = m_nFilePos;
+	m_nFilePos = nCurPos;
+
+	switch(eCursorPosition)
+	{
+		case IResultSetHelper::NEXT:
+			++m_nFilePos;
+			break;
+		case IResultSetHelper::PRIOR:
+			if (m_nFilePos > 0)
+				--m_nFilePos;
+			break;
+		case IResultSetHelper::FIRST:
+			m_nFilePos = 1;
+			break;
+		case IResultSetHelper::LAST:
+			m_nFilePos = nNumberOfRecords;
+			break;
+		case IResultSetHelper::RELATIVE:
+			m_nFilePos = (((sal_Int32)m_nFilePos) + nOffset < 0) ? 0L
+							: (sal_uInt32)(((sal_Int32)m_nFilePos) + nOffset);
+			break;
+		case IResultSetHelper::ABSOLUTE:
+		case IResultSetHelper::BOOKMARK:
+			m_nFilePos = (sal_uInt32)nOffset;
+			break;
+	}
+
+	if (m_nFilePos > (sal_Int32)nNumberOfRecords)
+		m_nFilePos = (sal_Int32)nNumberOfRecords + 1;
+
+	if (m_nFilePos == 0 || m_nFilePos == (sal_Int32)nNumberOfRecords + 1)
+		goto Error;
+	else
+	{
+		sal_uInt16 nEntryLen = m_aHeader.db_slng;
+
+		OSL_ENSURE(m_nFilePos >= 1,"SdbDBFCursor::FileFetchRow: ungueltige Record-Position");
+		sal_Int32 nPos = m_aHeader.db_kopf + (sal_Int32)(m_nFilePos-1) * nEntryLen;
+
+		ULONG nLen = m_pFileStream->Seek(nPos);
+		if (m_pFileStream->GetError() != ERRCODE_NONE)
+			goto Error;
+
+		nLen = m_pFileStream->Read((char*)m_pBuffer, nEntryLen);
+		if (m_pFileStream->GetError() != ERRCODE_NONE)
+			goto Error;
+	}
+	goto End;
+
+Error:
+	switch(eCursorPosition)
+	{
+		case IResultSetHelper::PRIOR:
+		case IResultSetHelper::FIRST:
+			m_nFilePos = 0;
+			break;
+		case IResultSetHelper::LAST:
+		case IResultSetHelper::NEXT:
+		case IResultSetHelper::ABSOLUTE:
+		case IResultSetHelper::RELATIVE:
+			if (nOffset > 0)
+				m_nFilePos = nNumberOfRecords + 1;
+			else if (nOffset < 0)
+				m_nFilePos = 0;
+			break;
+		case IResultSetHelper::BOOKMARK:
+			m_nFilePos = nTempPos;	 // vorherige Position
+	}
+	//	aStatus.Set(SDB_STAT_NO_DATA_FOUND);
+	return sal_False;
+
+End:
+	nCurPos = m_nFilePos;
+	return sal_True;
+}
+// -----------------------------------------------------------------------------
+BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable)
+{
+	BOOL bIsText = TRUE;
+	//	SdbConnection* pConnection = GetConnection();
+
+	m_pMemoStream->Seek(nBlockNo * m_aMemoHeader.db_size);
+	switch (m_aMemoHeader.db_typ)
+	{
+		case MemodBaseIII: // dBase III-Memofeld, endet mit Ctrl-Z
+		{
+			const char cEOF = (char) 0x1a;
+			ByteString aBStr;
+			static char aBuf[514];
+			aBuf[512] = 0;			// sonst kann der Zufall uebel mitspielen
+			BOOL bReady = sal_False;
+
+			do
+			{
+				m_pMemoStream->Read(&aBuf,512);
+
+				USHORT i = 0;
+				while (aBuf[i] != cEOF && ++i < 512)
+					;
+				bReady = aBuf[i] == cEOF;
+
+				aBuf[i] = 0;
+				aBStr += aBuf;
+
+			} while (!bReady && !m_pMemoStream->IsEof() && aBStr.Len() < STRING_MAXLEN);
+
+			::rtl::OUString aStr(aBStr.GetBuffer(), aBStr.Len(),getConnection()->getTextEncoding());
+			aVariable = aStr;
+
+		} break;
+		case MemoFoxPro:
+		case MemodBaseIV: // dBase IV-Memofeld mit Laengenangabe
+		{
+			char sHeader[4];
+			m_pMemoStream->Read(sHeader,4);
+			// Foxpro stores text and binary data
+			if (m_aMemoHeader.db_typ == MemoFoxPro)
+			{
+				if (((BYTE)sHeader[0]) != 0 || ((BYTE)sHeader[1]) != 0 || ((BYTE)sHeader[2]) != 0)
+				{
+//					String aText = String(SdbResId(STR_STAT_IResultSetHelper::INVALID));
+//					aText.SearchAndReplace(String::CreateFromAscii("%%d"),m_pMemoStream->GetFileName());
+//					aText.SearchAndReplace(String::CreateFromAscii("%%t"),aStatus.TypeToString(MEMO));
+//					aStatus.Set(SDB_STAT_ERROR,
+//							String::CreateFromAscii("01000"),
+//							aStatus.CreateErrorMessage(aText),
+//							0, String() );
+					return sal_False;
+				}
+
+				bIsText = sHeader[3] != 0;
+			}
+			else if (((BYTE)sHeader[0]) != 0xFF || ((BYTE)sHeader[1]) != 0xFF || ((BYTE)sHeader[2]) != 0x08)
+			{
+//				String aText = String(SdbResId(STR_STAT_IResultSetHelper::INVALID));
+//				aText.SearchAndReplace(String::CreateFromAscii("%%d"),m_pMemoStream->GetFileName());
+//				aText.SearchAndReplace(String::CreateFromAscii("%%t"),aStatus.TypeToString(MEMO));
+//				aStatus.Set(SDB_STAT_ERROR,
+//						String::CreateFromAscii("01000"),
+//						aStatus.CreateErrorMessage(aText),
+//						0, String() );
+				return sal_False;
+			}
+
+			sal_uInt32 nLength(0);
+=====================================================================
+Found a 130 line (680 tokens) duplication in the following files: 
+Starting at line 5874 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+
+            }
+            // <--
+
+			pTextObj->SetMergedItemSet(aSet);
+            pTextObj->SetModel(pSdrModel);
+
+            if (bVerticalText)
+                pTextObj->SetVerticalWriting(sal_True);
+
+            if (nTextRotationAngle)
+			{
+                long nMinWH = rTextRect.GetWidth() < rTextRect.GetHeight() ?
+                    rTextRect.GetWidth() : rTextRect.GetHeight();
+                nMinWH /= 2;
+                Point aPivot(rTextRect.TopLeft());
+                aPivot.X() += nMinWH;
+                aPivot.Y() += nMinWH;
+				double a = nTextRotationAngle * nPi180;
+				pTextObj->NbcRotate(aPivot, nTextRotationAngle, sin(a), cos(a));
+			}
+
+			// rotate text with shape ?
+			if ( mnFix16Angle )
+			{
+				double a = mnFix16Angle * nPi180;
+				pTextObj->NbcRotate( rObjData.rBoundRect.Center(), mnFix16Angle,
+                    sin( a ), cos( a ) );
+			}
+
+			if( !pObj )
+			{
+				pObj = pTextObj;
+			}
+			else
+			{
+				if( pTextObj != pObj )
+				{
+					SdrObject* pGroup = new SdrObjGroup;
+					pGroup->GetSubList()->NbcInsertObject( pObj );
+					pGroup->GetSubList()->NbcInsertObject( pTextObj );
+                    if (pOrgObj == pObj)
+                        pOrgObj = pGroup;
+                    else
+					    pOrgObj = pObj;
+                    pObj = pGroup;
+				}
+			}
+		}
+		else if( !pObj )
+		{
+			// simple rectangular objects are ignored by ImportObj()  :-(
+			// this is OK for Draw but not for Calc and Writer
+			// cause here these objects have a default border
+			pObj = new SdrRectObj(rTextRect);
+			pOrgObj = pObj;
+			pObj->SetModel( pSdrModel );
+            SfxItemSet aSet( pSdrModel->GetItemPool() );
+            ApplyAttributes( rSt, aSet, rObjData.eShapeType, rObjData.nSpFlags );
+
+			const SfxPoolItem* pPoolItem=NULL;
+			SfxItemState eState = aSet.GetItemState( XATTR_FILLCOLOR,
+													 FALSE, &pPoolItem );
+			if( SFX_ITEM_DEFAULT == eState )
+				aSet.Put( XFillColorItem( String(),
+						  Color( mnDefaultColor ) ) );
+			pObj->SetMergedItemSet(aSet);
+		}
+
+        //Means that fBehindDocument is set
+        if (GetPropertyValue(DFF_Prop_fPrint) & 0x20)
+		    pImpRec->bDrawHell = TRUE;
+        else
+		    pImpRec->bDrawHell = FALSE;
+        if (GetPropertyValue(DFF_Prop_fPrint) & 0x02)
+            pImpRec->bHidden = TRUE;
+		pTextImpRec->bDrawHell	= pImpRec->bDrawHell;
+		pTextImpRec->bHidden = pImpRec->bHidden;
+		pImpRec->nNextShapeId	= GetPropertyValue( DFF_Prop_hspNext, 0 );
+		pTextImpRec->nNextShapeId=pImpRec->nNextShapeId;
+
+		if ( nTextId )
+		{
+			pTextImpRec->aTextId.nTxBxS = (UINT16)( nTextId >> 16 );
+			pTextImpRec->aTextId.nSequence = (UINT16)nTextId;
+		}
+
+		pTextImpRec->nDxWrapDistLeft = GetPropertyValue(
+									DFF_Prop_dxWrapDistLeft, 114935L ) / 635L;
+		pTextImpRec->nDyWrapDistTop = GetPropertyValue(
+									DFF_Prop_dyWrapDistTop, 0 ) / 635L;
+		pTextImpRec->nDxWrapDistRight = GetPropertyValue(
+									DFF_Prop_dxWrapDistRight, 114935L ) / 635L;
+		pTextImpRec->nDyWrapDistBottom = GetPropertyValue(
+									DFF_Prop_dyWrapDistBottom, 0 ) / 635L;
+        // 16.16 fraction times total image width or height, as appropriate.
+
+        if (SeekToContent(DFF_Prop_pWrapPolygonVertices, rSt))
+        {
+            delete pTextImpRec->pWrapPolygon;
+            sal_uInt16 nNumElemVert, nNumElemMemVert, nElemSizeVert;
+            rSt >> nNumElemVert >> nNumElemMemVert >> nElemSizeVert;
+            if (nNumElemVert && ((nElemSizeVert == 8) || (nElemSizeVert == 4)))
+            {
+                pTextImpRec->pWrapPolygon = new Polygon(nNumElemVert);
+                for (sal_uInt16 i = 0; i < nNumElemVert; ++i)
+                {
+                    sal_Int32 nX, nY;
+                    if (nElemSizeVert == 8)
+                        rSt >> nX >> nY;
+                    else
+                    {
+                        sal_Int16 nSmallX, nSmallY;
+                        rSt >> nSmallX >> nSmallY;
+                        nX = nSmallX;
+                        nY = nSmallY;
+                    }
+                    (*(pTextImpRec->pWrapPolygon))[i].X() = nX;
+                    (*(pTextImpRec->pWrapPolygon))[i].Y() = nY;
+                }
+            }
+        }
+
+		pImpRec->nCropFromTop = GetPropertyValue(
+									DFF_Prop_cropFromTop, 0 );
+		pImpRec->nCropFromBottom = GetPropertyValue(
+									DFF_Prop_cropFromBottom, 0 );
+		pImpRec->nCropFromLeft = GetPropertyValue(
+									DFF_Prop_cropFromLeft, 0 );
+		pImpRec->nCropFromRight = GetPropertyValue(
+									DFF_Prop_cropFromRight, 0 );
+=====================================================================
+Found a 40 line (676 tokens) duplication in the following files: 
+Starting at line 5296 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4961 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptCloudCalloutVert[] =
+{
+	{ 1930,7160 },										// p
+	{ 1530,4490	}, { 3400,1970 }, { 5270,1970 },		// ccp
+	{ 5860,1950	}, { 6470,2210 }, { 6970,2600 },		// ccp
+	{ 7450,1390	}, { 8340,650 }, { 9340,650	},			// ccp
+	{ 10004,690	}, { 10710,1050	}, { 11210,1700	},		// ccp
+	{ 11570,630	}, { 12330,0 }, { 13150,0 },			// ccp
+	{ 13840,0 }, { 14470,460 }, { 14870,1160 },			// ccp
+	{ 15330,440 }, { 16020,0 }, { 16740,0 },			// ccp
+	{ 17910,0 }, { 18900,1130 }, { 19110,2710 },		// ccp
+	{ 20240,3150 }, { 21060,4580 }, { 21060,6220 },		// ccp
+	{ 21060,6720 }, { 21000,7200 }, { 20830,7660 },		// ccp
+	{ 21310,8460 }, { 21600,9450 }, { 21600,10460 },	// ccp
+	{ 21600,12750 }, { 20310,14680 }, { 18650,15010	},	// ccp
+	{ 18650,17200 }, { 17370,18920 }, { 15770,18920 },	// ccp
+	{ 15220,18920 }, { 14700,18710 }, { 14240,18310	},	// ccp
+	{ 13820,20240 }, { 12490,21600 }, { 11000,21600 },	// ccp
+	{ 9890,21600 }, { 8840,20790 }, { 8210,19510 },		// ccp
+	{ 7620,20000 }, { 7930,20290 }, { 6240,20290 },		// ccp
+	{ 4850,20290 }, { 3570,19280 }, { 2900,17640 },		// ccp
+	{ 1300,17600 }, { 480,16300 }, { 480,14660 },		// ccp
+	{ 480,13900	}, { 690,13210 }, { 1070,12640 },		// ccp
+	{ 380,12160	}, { 0,11210 }, { 0,10120 },			// ccp
+	{ 0,8590 },	{ 840,7330 }, { 1930,7160 },			// ccp
+
+	{ 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 },			// pccp
+	{ 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 },			// pccp
+	{ 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 },		// pccp
+	{ 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 },		// pccp
+	{ 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 },		// pccp
+	{ 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 },		// pccp
+	{ 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 },	// pccp
+	{ 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 },	// pccp
+	{ 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 },		// pccp
+	{ 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 },		// pccp
+	{ 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 }		// pccp
+=====================================================================
+Found a 77 line (676 tokens) duplication in the following files: 
+Starting at line 2724 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3146 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+				fSQR += -pQ->GetDouble(i, M+1)*pE->GetDouble(i);
+			fSQE = fSQT-fSQR;
+			if (fSQT == 0.0)
+				pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 0, 2);
+			else
+				pResMat->PutDouble (fSQE/fSQT, 0, 2);
+			pResMat->PutDouble(fSQE, 0, 4);
+			pResMat->PutDouble(fSQR, 1, 4);
+			for (i = 2; i < 5; i++)
+				for (j = 2; j < M+1; j++)
+					pResMat->PutString(ScGlobal::GetRscString(STR_NV_STR), j, i);
+			if (bConstant)
+			{
+				if (N-M-1 == 0)
+				{
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 1, 2);
+					for (i = 0; i < M+1; i++)
+						pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), i, 1);
+				}
+				else
+				{
+					double fSE2 = fSQR/(N-M-1);
+					pResMat->PutDouble(sqrt(fSE2), 1, 2);
+					if ( RGetVariances( pV, pMatX, M+1, N, nCase != 2, FALSE ) )
+					{
+						for (i = 0; i < M+1; i++)
+							pResMat->PutDouble( sqrt(fSE2 * pV->GetDouble(i)), M-i, 1 );
+					}
+					else
+					{
+						for (i = 0; i < M+1; i++)
+							pResMat->PutString(ScGlobal::GetRscString(STR_NV_STR), i, 1);
+					}
+				}
+				if (fSQR == 0.0)
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 0, 3);
+				else
+					pResMat->PutDouble(((double)(N-M-1))*fSQE/fSQR/((double)M),0, 3);
+				pResMat->PutDouble(((double)(N-M-1)), 1, 3);
+			}
+			else
+			{
+				if (N-M == 0)
+				{
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 1, 2);
+					for (i = 0; i < M+1; i++)
+						pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), i, 1);
+				}
+				else
+				{
+					double fSE2 = fSQR/(N-M);
+					pResMat->PutDouble(sqrt(fSE2), 1, 2);
+					if ( RGetVariances( pV, pMatX, M, N, nCase != 2, TRUE ) )
+					{
+						for (i = 0; i < M; i++)
+							pResMat->PutDouble( sqrt(fSE2 * pV->GetDouble(i)), M-i-1, 1 );
+						pResMat->PutString(ScGlobal::GetRscString(STR_NV_STR), M, 1);
+					}
+					else
+					{
+						for (i = 0; i < M+1; i++)
+							pResMat->PutString(ScGlobal::GetRscString(STR_NV_STR), i, 1);
+					}
+				}
+				if (fSQR == 0.0)
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 0, 3);
+				else
+					pResMat->PutDouble(((double)(N-M))*fSQE/fSQR/((double)M),0, 3);
+				pResMat->PutDouble(((double)(N-M)), 1, 3);
+			}
+		}
+	}
+	PushMatrix(pResMat);
+}
+
+
+void ScInterpreter::ScTrend()
+=====================================================================
+Found a 13 line (673 tokens) duplication in the following files: 
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+/* N */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* O */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* P */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* Q */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* R */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* S */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* T */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* U */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* V */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* W */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* X */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* Y */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* Z */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+=====================================================================
+Found a 108 line (672 tokens) duplication in the following files: 
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_color_rgba.h
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_color_rgba.h
+
+            a(value_type((             a_ << 8) | c.a)) {}
+
+        //--------------------------------------------------------------------
+        void clear()
+        {
+            r = g = b = a = 0;
+        }
+        
+        //--------------------------------------------------------------------
+        const self_type& transparent()
+        {
+            a = 0;
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& opacity(double a_)
+        {
+            if(a_ < 0.0) a_ = 0.0;
+            if(a_ > 1.0) a_ = 1.0;
+            a = value_type(a_ * double(base_mask) + 0.5);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        double opacity() const
+        {
+            return double(a) / double(base_mask);
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& premultiply()
+        {
+            if(a == base_mask) return *this;
+            if(a == 0)
+            {
+                r = g = b = 0;
+                return *this;
+            }
+            r = value_type((calc_type(r) * a) >> base_shift);
+            g = value_type((calc_type(g) * a) >> base_shift);
+            b = value_type((calc_type(b) * a) >> base_shift);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& premultiply(unsigned a_)
+        {
+            if(a == base_mask && a_ >= base_mask) return *this;
+            if(a == 0 || a_ == 0)
+            {
+                r = g = b = a = 0;
+                return *this;
+            }
+            calc_type r_ = (calc_type(r) * a_) / a;
+            calc_type g_ = (calc_type(g) * a_) / a;
+            calc_type b_ = (calc_type(b) * a_) / a;
+            r = value_type((r_ > a_) ? a_ : r_);
+            g = value_type((g_ > a_) ? a_ : g_);
+            b = value_type((b_ > a_) ? a_ : b_);
+            a = value_type(a_);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& demultiply()
+        {
+            if(a == base_mask) return *this;
+            if(a == 0)
+            {
+                r = g = b = 0;
+                return *this;
+            }
+            calc_type r_ = (calc_type(r) * base_mask) / a;
+            calc_type g_ = (calc_type(g) * base_mask) / a;
+            calc_type b_ = (calc_type(b) * base_mask) / a;
+            r = value_type((r_ > base_mask) ? base_mask : r_);
+            g = value_type((g_ > base_mask) ? base_mask : g_);
+            b = value_type((b_ > base_mask) ? base_mask : b_);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        self_type gradient(const self_type& c, double k) const
+        {
+            self_type ret;
+            calc_type ik = calc_type(k * base_size);
+            ret.r = value_type(calc_type(r) + (((calc_type(c.r) - r) * ik) >> base_shift));
+            ret.g = value_type(calc_type(g) + (((calc_type(c.g) - g) * ik) >> base_shift));
+            ret.b = value_type(calc_type(b) + (((calc_type(c.b) - b) * ik) >> base_shift));
+            ret.a = value_type(calc_type(a) + (((calc_type(c.a) - a) * ik) >> base_shift));
+            return ret;
+        }
+
+        //--------------------------------------------------------------------
+        static self_type no_color() { return self_type(0,0,0,0); }
+
+        //--------------------------------------------------------------------
+        static self_type from_wavelength(double wl, double gamma = 1.0)
+        {
+            return self_type(rgba::from_wavelength(wl, gamma));
+        }
+    };
+
+
+
+    //--------------------------------------------------------------rgba16_pre
+    inline rgba16 rgba16_pre(unsigned r, unsigned g, unsigned b, 
+=====================================================================
+Found a 28 line (671 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_OWIDTH),	SC_WID_UNO_OWIDTH,	&getBooleanCppuType(),					0, 0 },
+        {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
+        {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLWID),	SC_WID_UNO_CELLWID,	&getCppuType((sal_Int32*)0),			0, 0 },
+=====================================================================
+Found a 124 line (671 tokens) duplication in the following files: 
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+Starting at line 952 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/dindexnode.cxx
+
+		rStream.Write((BYTE*)pEmptyData,nRemainSize);
+		rStream.Seek(nTell);
+		delete [] pEmptyData;
+	}
+	return rStream;
+}
+// -----------------------------------------------------------------------------
+#if OSL_DEBUG_LEVEL > 1
+//------------------------------------------------------------------
+void ONDXPage::PrintPage()
+{
+	DBG_TRACE4("\nSDB: -----------Page: %d  Parent: %d  Count: %d  Child: %d-----",
+		nPagePos, HasParent() ? aParent->GetPagePos() : 0 ,nCount, aChild.GetPagePos());
+
+	for (USHORT i = 0; i < nCount; i++)
+	{
+		ONDXNode rNode = (*this)[i];
+		ONDXKey&  rKey = rNode.GetKey();
+		if (!IsLeaf())
+			rNode.GetChild(&rIndex, this);
+
+		if (rKey.getValue().isNull())
+		{
+			DBG_TRACE2("SDB: [%d,NULL,%d]",rKey.GetRecord(), rNode.GetChild().GetPagePos());
+		}
+		else if (rIndex.getHeader().db_keytype)
+		{
+			DBG_TRACE3("SDB: [%d,%f,%d]",rKey.GetRecord(), rKey.getValue().getDouble(),rNode.GetChild().GetPagePos());
+		}
+		else
+		{
+			DBG_TRACE3("SDB: [%d,%s,%d]",rKey.GetRecord(), (const char* )ByteString(rKey.getValue().getString().getStr(), rIndex.m_pTable->getConnection()->getTextEncoding()).GetBuffer(),rNode.GetChild().GetPagePos());
+		}
+	}
+	DBG_TRACE("SDB: -----------------------------------------------\n");
+	if (!IsLeaf())
+	{
+#if OSL_DEBUG_LEVEL > 1
+		GetChild(&rIndex)->PrintPage();
+		for (USHORT i = 0; i < nCount; i++)
+		{
+			ONDXNode rNode = (*this)[i];
+			rNode.GetChild(&rIndex,this)->PrintPage();
+		}
+#endif
+	}
+	DBG_TRACE("SDB: ===============================================\n");
+}
+#endif
+// -----------------------------------------------------------------------------
+BOOL ONDXPage::IsFull() const
+{
+	return Count() == rIndex.getHeader().db_maxkeys;
+}
+// -----------------------------------------------------------------------------
+//------------------------------------------------------------------
+USHORT ONDXPage::Search(const ONDXKey& rSearch)
+{
+	// binare Suche spaeter
+	USHORT i = 0xFFFF;
+	while (++i < Count())
+		if ((*this)[i].GetKey() == rSearch)
+			break;
+
+	return (i < Count()) ? i : NODE_NOTFOUND;
+}
+
+//------------------------------------------------------------------
+USHORT ONDXPage::Search(const ONDXPage* pPage)
+{
+	USHORT i = 0xFFFF;
+	while (++i < Count())
+		if (((*this)[i]).GetChild() == pPage)
+			break;
+
+	// wenn nicht gefunden, dann wird davon ausgegangen, dass die Seite selbst
+	// auf die Page zeigt
+	return (i < Count()) ? i : NODE_NOTFOUND;
+}
+// -----------------------------------------------------------------------------
+// laeuft rekursiv
+void ONDXPage::SearchAndReplace(const ONDXKey& rSearch,
+								  ONDXKey& rReplace)
+{
+	OSL_ENSURE(rSearch != rReplace,"Invalid here:rSearch == rReplace");
+	if (rSearch != rReplace)
+	{
+		USHORT nPos = NODE_NOTFOUND;
+		ONDXPage* pPage = this;
+
+		while (pPage && (nPos = pPage->Search(rSearch)) == NODE_NOTFOUND)
+			pPage = pPage->aParent;
+
+		if (pPage)
+		{
+			(*pPage)[nPos].GetKey() = rReplace;
+			pPage->SetModified(TRUE);
+		}
+	}
+}
+// -----------------------------------------------------------------------------
+ONDXNode& ONDXPage::operator[] (USHORT nPos)
+{
+	DBG_ASSERT(nCount > nPos, "falscher Indexzugriff");
+	return ppNodes[nPos];
+}
+
+//------------------------------------------------------------------
+const ONDXNode& ONDXPage::operator[] (USHORT nPos) const
+{
+	DBG_ASSERT(nCount > nPos, "falscher Indexzugriff");
+	return ppNodes[nPos];
+}
+// -----------------------------------------------------------------------------
+void ONDXPage::Remove(USHORT nPos)
+{
+	DBG_ASSERT(nCount > nPos, "falscher Indexzugriff");
+
+	for (USHORT i = nPos; i < (nCount-1); i++)
+		(*this)[i] = (*this)[i+1];
+
+	nCount--;
+	bModified = TRUE;
+}
+=====================================================================
+Found a 186 line (665 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/getcwd.c
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/pwd/getcwd.c
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/xenix/pwd/getcwd.c
+
+typedef char	*pointer;		/* (void *) if you have it */
+
+extern void	free();
+extern pointer	malloc();
+extern int	fstat(), stat();
+
+extern int	errno;			/* normally done by <errno.h> */
+
+#ifndef NULL
+#define	NULL	0			/* amorphous null pointer constant */
+#endif
+
+#ifndef NAME_MAX
+#define	NAME_MAX	255		/* maximum directory entry size */
+#endif
+
+
+char	*
+getcwd( buf, size )			/* returns pointer to CWD pathname */
+	char		*buf;		/* where to put name (NULL to malloc) */
+	int		size;		/* size of buf[] or malloc()ed memory */
+	{
+	static char	dotdots[] =
+"../../../../../../../../../../../../../../../../../../../../../../../../../..";
+	char		*dotdot;	/* -> dotdots[.], right to left */
+	DIR		*dirp;		/* -> parent directory stream */
+	struct dirent	*dir;		/* -> directory entry */
+	struct stat	stat1,
+			stat2;		/* info from stat() */
+	struct stat	*d = &stat1;	/* -> info about "." */
+	struct stat	*dd = &stat2;	/* -> info about ".." */
+	register char	*buffer;	/* local copy of buf, or malloc()ed */
+	char		*bufend;	/* -> buffer[size] */
+	register char	*endp;		/* -> end of reversed string */
+	register char	*dname;		/* entry name ("" for root) */
+	int		serrno = errno;	/* save entry errno */
+
+	if ( buf != NULL && size <= 0
+#ifndef XPG2
+	  || buf == NULL
+#endif
+	   )	{
+		errno = EINVAL;		/* invalid argument */
+		return NULL;
+		}
+
+	buffer = buf;
+#ifdef XPG2
+	if ( buf == NULL		/* wants us to malloc() the string */
+	  && (buffer = (char *) malloc( (unsigned) size )) == NULL
+	/* XXX -- actually should probably not pay attention to "size" arg */
+	   )	{
+		errno = ENOMEM;		/* cannot malloc() specified size */
+		return NULL;
+		}
+#endif
+
+	if ( stat( ".", dd ) != 0 )	/* prime the pump */
+		goto error;		/* errno already set */
+
+	endp = buffer;			/* initially, empty string */
+	bufend = &buffer[size];
+
+	for ( dotdot = &dotdots[sizeof dotdots]; dotdot != dotdots; )
+		{
+		dotdot -= 3;		/* include one more "/.." section */
+					/* (first time is actually "..") */
+
+		/* swap stat() info buffers */
+		{
+		register struct stat	*temp = d;
+
+		d = dd;			/* new current dir is old parent dir */
+		dd = temp;
+		}
+
+		if ( (dirp = opendir( dotdot )) == NULL )	/* new parent */
+			goto error;	/* errno already set */
+
+		if ( fstat( dirp->dd_fd, dd ) != 0 )
+			{
+			serrno = errno;	/* set by fstat() */
+			(void)closedir( dirp );
+			errno = serrno;	/* in case closedir() clobbered it */
+			goto error;
+			}
+
+		if ( d->st_dev == dd->st_dev )
+			{		/* not crossing a mount point */
+			if ( d->st_ino == dd->st_ino )
+				{	/* root directory */
+				dname = "";
+				goto append;
+				}
+
+			do
+				if ( (dir = readdir( dirp )) == NULL )
+					{
+					(void)closedir( dirp );
+					errno = ENOENT;	/* missing entry */
+					goto error;
+					}
+			while ( dir->d_ino != d->st_ino );
+			}
+		else	{		/* crossing a mount point */
+			struct stat	t;	/* info re. test entry */
+			char		name[sizeof dotdots + 1 + NAME_MAX];
+
+			(void)strcpy( name, dotdot );
+			dname = &name[strlen( name )];
+			*dname++ = '/';
+
+			do	{
+				if ( (dir = readdir( dirp )) == NULL )
+					{
+					(void)closedir( dirp );
+					errno = ENOENT;	/* missing entry */
+					goto error;
+					}
+
+				(void)strcpy( dname, dir->d_name );
+				/* must fit if NAME_MAX is not a lie */
+				}
+			while ( stat( name, &t ) != 0
+			     || t.st_ino != d->st_ino
+			     || t.st_dev != d->st_dev
+			      );
+			}
+
+		dname = dir->d_name;
+
+		/* append "/" and reversed dname string onto buffer */
+    append:
+		if ( endp != buffer	/* avoid trailing / in final name */
+		  || dname[0] == '\0'	/* but allow "/" when CWD is root */
+		   )
+			*endp++ = '/';
+
+		{
+		register char	*app;	/* traverses dname string */
+
+		for ( app = dname; *app != '\0'; ++app )
+			;
+
+		if ( app - dname >= bufend - endp )
+			{
+			(void)closedir( dirp );
+			errno = ERANGE;	/* won't fit allotted space */
+			goto error;
+			}
+
+		while ( app != dname )
+			*endp++ = *--app;
+		}
+
+		(void)closedir( dirp );
+
+		if ( dname[0] == '\0' )	/* reached root; wrap it up */
+			{
+			register char	*startp;	/* -> buffer[.] */
+
+			*endp = '\0';	/* plant null terminator */
+
+			/* straighten out reversed pathname string */
+			for ( startp = buffer; --endp > startp; ++startp )
+				{
+				char	temp = *endp;
+
+				*endp = *startp;
+				*startp = temp;
+				}
+
+			errno = serrno;	/* restore entry errno */
+			/* XXX -- if buf==NULL, realloc here? */
+			return buffer;
+			}
+		}
+
+	errno = ENOMEM;			/* actually, algorithm failure */
+
+    error:
+	if ( buf == NULL )
+		free( (pointer)buffer );
+
+	return NULL;
+	}
+=====================================================================
+Found a 86 line (662 tokens) duplication in the following files: 
+Starting at line 3282 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3541 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xad, 0xbd }, /* g'' */
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x01, 0xa3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 }, /* IE */
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 }, /* I */
+{ 0x00, 0xb7, 0xb7 }, /* II */
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xe0 },
+{ 0x00, 0xc1, 0xe1 },
+{ 0x00, 0xc2, 0xe2 },
+{ 0x00, 0xc3, 0xe3 },
+{ 0x00, 0xc4, 0xe4 },
+{ 0x00, 0xc5, 0xe5 },
+{ 0x00, 0xc6, 0xe6 },
+{ 0x00, 0xc7, 0xe7 },
+{ 0x00, 0xc8, 0xe8 },
+{ 0x00, 0xc9, 0xe9 },
+{ 0x00, 0xca, 0xea },
+{ 0x00, 0xcb, 0xeb },
+{ 0x00, 0xcc, 0xec },
+{ 0x00, 0xcd, 0xed },
+{ 0x00, 0xce, 0xee },
+{ 0x00, 0xcf, 0xef },
+{ 0x00, 0xd0, 0xf0 },
+{ 0x00, 0xd1, 0xf1 },
+{ 0x00, 0xd2, 0xf2 },
+{ 0x00, 0xd3, 0xf3 },
+{ 0x00, 0xd4, 0xf4 },
+{ 0x00, 0xd5, 0xf5 },
+{ 0x00, 0xd6, 0xf6 },
+{ 0x00, 0xd7, 0xf7 },
+{ 0x00, 0xd8, 0xf8 },
+{ 0x00, 0xd9, 0xf9 },
+{ 0x00, 0xda, 0xfa },
+{ 0x00, 0xdb, 0xfb },
+{ 0x00, 0xdc, 0xfc },
+{ 0x00, 0xdd, 0xfd },
+{ 0x00, 0xde, 0xfe },
+{ 0x00, 0xdf, 0xff },
+{ 0x01, 0xc0, 0xe0 },
+{ 0x01, 0xc1, 0xe1 },
+{ 0x01, 0xc2, 0xe2 },
+{ 0x01, 0xc3, 0xe3 },
+{ 0x01, 0xc4, 0xe4 },
+{ 0x01, 0xc5, 0xe5 },
+{ 0x01, 0xc6, 0xe6 },
+{ 0x01, 0xc7, 0xe7 },
+{ 0x01, 0xc8, 0xe8 },
+{ 0x01, 0xc9, 0xe9 },
+{ 0x01, 0xca, 0xea },
+{ 0x01, 0xcb, 0xeb },
+{ 0x01, 0xcc, 0xec },
+{ 0x01, 0xcd, 0xed },
+{ 0x01, 0xce, 0xee },
+{ 0x01, 0xcf, 0xef },
+{ 0x01, 0xd0, 0xf0 },
+{ 0x01, 0xd1, 0xf1 },
+{ 0x01, 0xd2, 0xf2 },
+{ 0x01, 0xd3, 0xf3 },
+{ 0x01, 0xd4, 0xf4 },
+{ 0x01, 0xd5, 0xf5 },
+{ 0x01, 0xd6, 0xf6 },
+{ 0x01, 0xd7, 0xf7 },
+{ 0x01, 0xd8, 0xf8 },
+{ 0x01, 0xd9, 0xf9 },
+{ 0x01, 0xda, 0xfa },
+{ 0x01, 0xdb, 0xfb },
+{ 0x01, 0xdc, 0xfc },
+{ 0x01, 0xdd, 0xfd },
+{ 0x01, 0xde, 0xfe },
+{ 0x01, 0xdf, 0xff },
+};
+
+struct cs_info cp1251_tbl[] = {
+=====================================================================
+Found a 57 line (661 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+int Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+=====================================================================
+Found a 144 line (656 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx
+
+namespace rtl
+{
+	inline OString& operator+=( OString& rString, sal_Char cAdd )
+	{
+		sal_Char add[2];
+		add[0] = cAdd;
+		add[1] = 0;
+		return rString += add;
+	}
+}
+
+using namespace std;
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star::uno;
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+//==================================================================================================
+static OString toUNOname( const OString & rRTTIname )
+{
+	OString aRet;
+
+	const sal_Char* pRTTI = rRTTIname.getStr();
+	const sal_Char* pOrg  = pRTTI;
+	const sal_Char* pLast = pRTTI;
+
+	while( 1 )
+	{
+		if( *pRTTI == ':' || ! *pRTTI )
+		{
+			if( aRet.getLength() )
+				aRet += ".";
+			aRet += rRTTIname.copy( pLast - pOrg, pRTTI - pLast );
+			while( *pRTTI == ':' )
+				pRTTI++;
+			pLast = pRTTI;
+			if( ! *pRTTI )
+				break;
+		}
+		else
+			pRTTI++;
+	}
+
+	return aRet;
+}
+//==================================================================================================
+static OString toRTTIname( const OString & rUNOname )
+{
+	OStringBuffer aRet( rUNOname.getLength()*2 );
+
+    sal_Int32 nIndex = 0;
+    do
+    {
+        if( nIndex > 0 )
+            aRet.append( "::" );
+        aRet.append( rUNOname.getToken( 0, '.', nIndex ) );
+    } while( nIndex != -1 );
+
+	return aRet.makeStringAndClear();
+}
+//==================================================================================================
+
+static OString toRTTImangledname( const OString & rRTTIname )
+{
+	if( ! rRTTIname.getLength() )
+		return OString();
+
+	OStringBuffer aRet( rRTTIname.getLength()*2 );
+
+    aRet.append( "__1n" );
+    sal_Int32 nIndex = 0;
+    do
+    {
+        OString aToken( rRTTIname.getToken( 0, ':', nIndex ) );
+        int nBytes = aToken.getLength();
+        if( nBytes )
+        {
+            if( nBytes  > 25 )
+            {
+                aRet.append( (sal_Char)( nBytes/26 + 'a' ) );
+                aRet.append( (sal_Char)( nBytes%26 + 'A' ) );
+            }
+            else
+                aRet.append( (sal_Char)( nBytes + 'A' ) );
+            aRet.append( aToken );
+        }
+    } while( nIndex != -1 );
+
+	aRet.append( '_' );
+
+	return aRet.makeStringAndClear();
+}
+
+
+//##################################################################################################
+//#### RTTI simulation #############################################################################
+//##################################################################################################
+
+class RTTIHolder
+{
+	std::map< OString, void* > aAllRTTI;
+public:
+	~RTTIHolder();
+
+	void* getRTTI( const OString& rTypename );
+	void* getRTTI_UnoName( const OString& rUnoTypename )
+		{ return getRTTI( toRTTIname( rUnoTypename ) ); }
+
+	void* insertRTTI( const OString& rTypename );
+	void* insertRTTI_UnoName( const OString& rTypename )
+		{ return insertRTTI( toRTTIname( rTypename ) ); }
+	void* generateRTTI( typelib_CompoundTypeDescription* pCompTypeDescr );
+};
+
+RTTIHolder::~RTTIHolder()
+{
+	for ( std::map< OString, void* >::const_iterator iPos( aAllRTTI.begin() );
+		  iPos != aAllRTTI.end(); ++iPos )
+	{
+        delete[] static_cast< char * >(iPos->second);
+	}
+}
+
+#if OSL_DEBUG_LEVEL > 1
+#include <stdio.h>
+#endif
+
+void* RTTIHolder::getRTTI( const OString& rTypename )
+{
+	std::map< OString, void* >::iterator element;
+
+	element = aAllRTTI.find( rTypename );
+	if( element != aAllRTTI.end() )
+		return (*element).second;
+
+	// create rtti structure
+	element = aAllRTTI.find( rTypename );
+	if( element != aAllRTTI.end() )
+		return (*element).second;
+
+	return NULL;
+}
+=====================================================================
+Found a 70 line (655 tokens) duplication in the following files: 
+Starting at line 2530 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 2961 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+			pResMat->PutDouble(exp(b), 1, 0);
+			if (bStats)
+			{
+				double fY = fCount*fSumSqrY-fSumY*fSumY;
+				double fSyx = fSumSqrY-b*fSumY-m*fSumXY;
+				double fR2 = f1*f1/(fX*fY);
+				pResMat->PutDouble (fR2, 0, 2);
+				if (fCount < 3.0)
+				{
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 0, 1 );
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 1, 1 );
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 1, 2 );
+					pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 0, 3 );
+				}
+				else
+				{
+					pResMat->PutDouble(sqrt(fSyx*fCount/(fX*(fCount-2.0))), 0, 1);
+					pResMat->PutDouble(sqrt(fSyx*fSumSqrX/fX/(fCount-2.0)), 1, 1);
+					pResMat->PutDouble(
+						sqrt((fCount*fSumSqrY - fSumY*fSumY - f1*f1/fX)/
+							 (fCount*(fCount-2.0))), 1, 2);
+					if (fR2 == 1.0)
+						pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), 0, 3 );
+					else
+						pResMat->PutDouble(fR2*(fCount-2.0)/(1.0-fR2), 0, 3);
+				}
+				pResMat->PutDouble(((double)(nCY*nRY))-2.0, 1, 3);
+				pResMat->PutDouble(fY/fCount-fSyx, 0, 4);
+				pResMat->PutDouble(fSyx, 1, 4);
+			}
+		}
+	}
+	else
+	{
+		SCSIZE i, j, k;
+		if (!bStats)
+			pResMat = GetNewMat(M+1,1);
+		else
+			pResMat = GetNewMat(M+1,5);
+		if (!pResMat)
+		{
+			PushError();
+			return;
+		}
+		ScMatrixRef pQ = GetNewMat(M+1, M+2);
+		ScMatrixRef pE = GetNewMat(M+2, 1);
+		ScMatrixRef pV = GetNewMat(M+1, 1);
+		pE->PutDouble(0.0, M+1);
+		pQ->FillDouble(0.0, 0, 0, M, M+1);
+		if (nCase == 2)
+		{
+			for (k = 0; k < N; k++)
+			{
+				double Yk = pMatY->GetDouble(k);
+				pE->PutDouble( pE->GetDouble(M+1)+Yk*Yk, M+1 );
+				double sumYk = pQ->GetDouble(0, M+1) + Yk;
+				pQ->PutDouble( sumYk, 0, M+1 );
+				pE->PutDouble( sumYk, 0 );
+				for (i = 0; i < M; i++)
+				{
+					double Xik = pMatX->GetDouble(i,k);
+					double sumXik = pQ->GetDouble(0, i+1) + Xik;
+					pQ->PutDouble( sumXik, 0, i+1);
+					pQ->PutDouble( sumXik, i+1, 0);
+					double sumXikYk = pQ->GetDouble(i+1, M+1) + Xik * Yk;
+					pQ->PutDouble( sumXikYk, i+1, M+1);
+					pE->PutDouble( sumXikYk, i+1);
+					for (j = i; j < M; j++)
+					{
+						double sumXikXjk = pQ->GetDouble(j+1, i+1) +
+=====================================================================
+Found a 214 line (653 tokens) duplication in the following files: 
+Starting at line 344 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BDriver.cxx
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ORealDriver.cxx
+
+			pFunction = (oslGenericFunction)pODBC3SQLAllocHandle;
+			break;
+		case ODBC3SQLConnect:
+			pFunction = (oslGenericFunction)pODBC3SQLConnect;
+			break;
+		case ODBC3SQLDriverConnect:
+			pFunction = (oslGenericFunction)pODBC3SQLDriverConnect;
+			break;
+		case ODBC3SQLBrowseConnect:
+			pFunction = (oslGenericFunction)pODBC3SQLBrowseConnect;
+			break;
+		case ODBC3SQLDataSources:
+			pFunction = (oslGenericFunction)pODBC3SQLDataSources;
+			break;
+		case ODBC3SQLDrivers:
+			pFunction = (oslGenericFunction)pODBC3SQLDrivers;
+			break;
+		case ODBC3SQLGetInfo:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetInfo;
+			break;
+		case ODBC3SQLGetFunctions:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetFunctions;
+			break;
+		case ODBC3SQLGetTypeInfo:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetTypeInfo;
+			break;
+		case ODBC3SQLSetConnectAttr:
+
+			pFunction = (oslGenericFunction)pODBC3SQLSetConnectAttr;
+			break;
+		case ODBC3SQLGetConnectAttr:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetConnectAttr;
+			break;
+		case ODBC3SQLSetEnvAttr:
+
+			pFunction = (oslGenericFunction)pODBC3SQLSetEnvAttr;
+			break;
+		case ODBC3SQLGetEnvAttr:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetEnvAttr;
+			break;
+		case ODBC3SQLSetStmtAttr:
+
+			pFunction = (oslGenericFunction)pODBC3SQLSetStmtAttr;
+			break;
+		case ODBC3SQLGetStmtAttr:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetStmtAttr;
+			break;
+		case ODBC3SQLPrepare:
+
+			pFunction = (oslGenericFunction)pODBC3SQLPrepare;
+			break;
+		case ODBC3SQLBindParameter:
+
+			pFunction = (oslGenericFunction)pODBC3SQLBindParameter;
+			break;
+		case ODBC3SQLSetCursorName:
+
+			pFunction = (oslGenericFunction)pODBC3SQLSetCursorName;
+			break;
+		case ODBC3SQLExecute:
+
+			pFunction = (oslGenericFunction)pODBC3SQLExecute;
+			break;
+		case ODBC3SQLExecDirect:
+
+			pFunction = (oslGenericFunction)pODBC3SQLExecDirect;
+			break;
+		case ODBC3SQLDescribeParam:
+
+			pFunction = (oslGenericFunction)pODBC3SQLDescribeParam;
+			break;
+		case ODBC3SQLNumParams:
+
+			pFunction = (oslGenericFunction)pODBC3SQLNumParams;
+			break;
+		case ODBC3SQLParamData:
+
+			pFunction = (oslGenericFunction)pODBC3SQLParamData;
+			break;
+		case ODBC3SQLPutData:
+
+			pFunction = (oslGenericFunction)pODBC3SQLPutData;
+			break;
+		case ODBC3SQLRowCount:
+
+			pFunction = (oslGenericFunction)pODBC3SQLRowCount;
+			break;
+		case ODBC3SQLNumResultCols:
+
+			pFunction = (oslGenericFunction)pODBC3SQLNumResultCols;
+			break;
+		case ODBC3SQLDescribeCol:
+
+			pFunction = (oslGenericFunction)pODBC3SQLDescribeCol;
+			break;
+		case ODBC3SQLColAttribute:
+
+			pFunction = (oslGenericFunction)pODBC3SQLColAttribute;
+			break;
+		case ODBC3SQLBindCol:
+
+			pFunction = (oslGenericFunction)pODBC3SQLBindCol;
+			break;
+		case ODBC3SQLFetch:
+
+			pFunction = (oslGenericFunction)pODBC3SQLFetch;
+			break;
+		case ODBC3SQLFetchScroll:
+
+			pFunction = (oslGenericFunction)pODBC3SQLFetchScroll;
+			break;
+		case ODBC3SQLGetData:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetData;
+			break;
+		case ODBC3SQLSetPos:
+
+			pFunction = (oslGenericFunction)pODBC3SQLSetPos;
+			break;
+		case ODBC3SQLBulkOperations:
+
+			pFunction = (oslGenericFunction)pODBC3SQLBulkOperations;
+			break;
+		case ODBC3SQLMoreResults:
+
+			pFunction = (oslGenericFunction)pODBC3SQLMoreResults;
+			break;
+		case ODBC3SQLGetDiagRec:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetDiagRec;
+			break;
+		case ODBC3SQLColumnPrivileges:
+
+			pFunction = (oslGenericFunction)pODBC3SQLColumnPrivileges;
+			break;
+		case ODBC3SQLColumns:
+
+			pFunction = (oslGenericFunction)pODBC3SQLColumns;
+			break;
+		case ODBC3SQLForeignKeys:
+
+			pFunction = (oslGenericFunction)pODBC3SQLForeignKeys;
+			break;
+		case ODBC3SQLPrimaryKeys:
+
+			pFunction = (oslGenericFunction)pODBC3SQLPrimaryKeys;
+			break;
+		case ODBC3SQLProcedureColumns:
+
+			pFunction = (oslGenericFunction)pODBC3SQLProcedureColumns;
+			break;
+		case ODBC3SQLProcedures:
+
+			pFunction = (oslGenericFunction)pODBC3SQLProcedures;
+			break;
+		case ODBC3SQLSpecialColumns:
+
+			pFunction = (oslGenericFunction)pODBC3SQLSpecialColumns;
+			break;
+		case ODBC3SQLStatistics:
+
+			pFunction = (oslGenericFunction)pODBC3SQLStatistics;
+			break;
+		case ODBC3SQLTablePrivileges:
+
+			pFunction = (oslGenericFunction)pODBC3SQLTablePrivileges;
+			break;
+		case ODBC3SQLTables:
+
+			pFunction = (oslGenericFunction)pODBC3SQLTables;
+			break;
+		case ODBC3SQLFreeStmt:
+
+			pFunction = (oslGenericFunction)pODBC3SQLFreeStmt;
+			break;
+		case ODBC3SQLCloseCursor:
+
+			pFunction = (oslGenericFunction)pODBC3SQLCloseCursor;
+			break;
+		case ODBC3SQLCancel:
+
+			pFunction = (oslGenericFunction)pODBC3SQLCancel;
+			break;
+		case ODBC3SQLEndTran:
+
+			pFunction = (oslGenericFunction)pODBC3SQLEndTran;
+			break;
+		case ODBC3SQLDisconnect:
+
+			pFunction = (oslGenericFunction)pODBC3SQLDisconnect;
+			break;
+		case ODBC3SQLFreeHandle:
+
+			pFunction = (oslGenericFunction)pODBC3SQLFreeHandle;
+			break;
+		case ODBC3SQLGetCursorName:
+
+			pFunction = (oslGenericFunction)pODBC3SQLGetCursorName;
+			break;
+		case ODBC3SQLNativeSql:
+
+			pFunction = (oslGenericFunction)pODBC3SQLNativeSql;
+			break;
+		default:
+			OSL_ENSURE(0,"Function unknown!");
+	}
+	return pFunction;
+}
+=====================================================================
+Found a 166 line (652 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Utils.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Utils.cxx
+
+    return( i == len );
+}
+//------------------------------------------------------------------------
+sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2, sal_uInt32 len )
+{
+    const sal_Unicode* pBuf1 = str1;
+    const sal_Unicode* pBuf2 = str2;
+    sal_uInt32 i = 0;
+
+    while ( (*pBuf1 == *pBuf2) && i < len )
+    {
+        (pBuf1)++;
+        (pBuf2)++;
+        i++;
+    }
+    return( i == len );
+}
+
+//-----------------------------------------------------------------------
+sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2 )
+{
+    const sal_Unicode* pBuf1 = str1;
+    const sal_Unicode* pBuf2 = str2;
+    sal_Bool res = sal_True;
+   
+    while ( (*pBuf1 == *pBuf2) && *pBuf1 !='\0' && *pBuf2 != '\0')
+    {
+        (pBuf1)++;
+        (pBuf2)++;
+    }
+    if (*pBuf1 == '\0' && *pBuf2 == '\0')
+        res = sal_True;
+    else
+        res = sal_False;
+    return (res);
+}
+
+sal_Char* createName( sal_Char* dst, const sal_Char* meth, sal_uInt32 cnt )
+{
+    sal_Char* pdst = dst;
+    sal_Char nstr[16];
+    sal_Char* pstr = nstr;
+    rtl_str_valueOfInt32( pstr, cnt, 10 );
+
+    cpystr( pdst, meth );
+    cpystr( pdst+ AStringLen(meth), "_" );
+
+    if ( cnt < 100 )
+    {
+        cpystr(pdst + AStringLen(pdst), "0" );
+    }
+    if ( cnt < 10 )
+    {
+        cpystr(pdst + AStringLen(pdst), "0" );
+    }
+
+    cpystr( pdst + AStringLen(pdst), nstr );
+    return( pdst );
+}
+
+//------------------------------------------------------------------------
+//  testing the method compareTo( const OString & aStr )
+//------------------------------------------------------------------------
+void makeComment( char *com, const char *str1, const char *str2,
+                                                            sal_Int32 sgn )
+{
+    cpystr(com, str1);
+    int str1Length = AStringLen( str1 );
+    const char *sign = (sgn == 0) ? " == " : (sgn > 0) ? " > " : " < " ;
+    cpystr(com + str1Length, sign);
+    int signLength = AStringLen(sign);
+    cpystr(com + str1Length + signLength, str2);
+    com[str1Length + signLength + AStringLen(str2)] = 0;
+}
+
+
+//------------------------------------------------------------------------
+
+sal_Bool AStringToFloatCompare ( const sal_Char  *pStr,
+                                 const float      nX,
+                                 const float      nEPS
+                                )
+{
+	sal_Bool cmp = sal_False;
+
+	if ( pStr != NULL )
+	{
+		::rtl::OString aStr(pStr);
+
+		float actNum = 0;
+		float expNum = nX;
+		float eps    = nEPS;
+
+		actNum = aStr.toFloat();
+
+        if ( abs( (int)(actNum - expNum) ) <= eps )
+		{
+			cmp = sal_True;
+		} // if
+	} // if
+
+	return cmp;
+} // AStringToFloatCompare
+
+//------------------------------------------------------------------------
+
+sal_Bool AStringToDoubleCompare ( const sal_Char  *pStr,
+                                  const double     nX,
+                                  const double     nEPS
+                                )
+{
+	sal_Bool cmp = sal_False;
+
+	if ( pStr != NULL )
+	{
+		::rtl::OString aStr(pStr);
+
+		double actNum = 0;
+		double expNum = nX;
+		double eps    = nEPS;
+
+		actNum = aStr.toDouble();
+
+        if ( abs( (int)(actNum - expNum) ) <= eps )
+		{
+			cmp = sal_True;
+		} // if
+	} // if
+
+	return cmp;
+} // AStringToDoubleCompare
+
+//------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------
+
+sal_uInt32 UStringLen( const sal_Unicode *pUStr )
+{
+	sal_uInt32 nUStrLen = 0;
+
+	if ( pUStr != NULL )
+	{
+		const sal_Unicode *pTempUStr = pUStr;
+
+		while( *pTempUStr )
+		{
+			pTempUStr++;
+		} // while
+
+		nUStrLen = (sal_uInt32)( pTempUStr - pUStr );
+	} // if
+
+	return nUStrLen;
+} // UStringLen
+
+//------------------------------------------------------------------------
+
+sal_Bool AStringIsValid( const sal_Char  *pAStr )
+{
+	if ( pAStr != NULL )
+	{
+		sal_uInt32 nLen  = AStringLen( pAStr );
+		sal_uChar  uChar = 0;
+
+		while ( ( nLen >= 0 ) && ( *pAStr ) )
+=====================================================================
+Found a 121 line (652 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+		for( sal_uInt32 i = 0; i < nQuadCount; i++ )
+		{
+			const sal_Int32 nA = *pTmpSrc++;
+			const sal_Int32 nB = *pTmpSrc++;
+			const sal_Int32 nC = *pTmpSrc++;
+
+			*pTmpDst++ = pBase64[ ( nA >> 2 ) & 0x3f ];
+			*pTmpDst++ = pBase64[ ( ( nA << 4 ) & 0x30 ) + ( ( nB >> 4 ) & 0xf ) ];
+			*pTmpDst++ = pBase64[ ( ( nB << 2 ) & 0x3c ) + ( ( nC >> 6 ) & 0x3 ) ];
+			*pTmpDst++ = pBase64[ nC & 0x3f ];
+		}
+
+		if( 1 == nRest )
+		{
+			const sal_Int32 nA = *pTmpSrc;
+
+			*pTmpDst++ = pBase64[ ( nA >> 2 ) & 0x3f ];
+			*pTmpDst++ = pBase64[ ( nA << 4 ) & 0x30 ];
+			*pTmpDst++ = '=';
+			*pTmpDst = '=';
+		}
+		else if( 2 == nRest )
+		{
+			const sal_Int32 nA = *pTmpSrc++;
+			const sal_Int32 nB = *pTmpSrc;
+
+			*pTmpDst++ = pBase64[ ( nA >> 2 ) & 0x3f ];
+			*pTmpDst++ = pBase64[ ( ( nA << 4 ) & 0x30 ) + ( ( nB >> 4 ) & 0xf ) ];
+			*pTmpDst++ = pBase64[ ( nB << 2 ) & 0x3c ];
+			*pTmpDst = '=';
+		}
+	}
+	else
+	{
+		mpBuffer = new sal_Unicode[ ( mnBufLen = 1 ) * sizeof( sal_Unicode ) ];
+		mnCurLen = 0;
+	}
+}
+
+// -----------------------------------------------------------------------------
+
+FastString::~FastString()
+{
+	delete[] mpBuffer;
+}
+
+// -----------------------------------------------------------------------------
+
+FastString& FastString::operator+=( const NMSP_RTL::OUString& rStr )
+{
+	if( rStr.getLength() )
+	{
+		if( ( mnCurLen + rStr.getLength() ) > mnBufLen )
+		{
+			const sal_uInt32	nNewBufLen = ( mnBufLen + ( ( ( mnCurLen + rStr.getLength() ) - mnBufLen ) / mnBufInc + 1 ) * mnBufInc );
+			sal_Unicode*		pNewBuffer = new sal_Unicode[ nNewBufLen * sizeof( sal_Unicode ) ];
+
+			memcpy( pNewBuffer, mpBuffer, mnBufLen * sizeof( sal_Unicode )  );
+			delete[] mpBuffer;
+			mpBuffer = pNewBuffer;
+			mnBufLen = nNewBufLen;
+		}
+
+		memcpy( mpBuffer + mnCurLen, rStr.getStr(), rStr.getLength() * sizeof( sal_Unicode ) );
+		mnCurLen += rStr.getLength();
+
+		if( maString.getLength() )
+			maString = NMSP_RTL::OUString();
+	}
+
+	return *this;
+}
+
+// -----------------------------------------------------------------------------
+
+const NMSP_RTL::OUString& FastString::GetString() const
+{
+	if( !maString.getLength() && mnCurLen )
+		( (FastString*) this )->maString = NMSP_RTL::OUString( mpBuffer, mnCurLen );
+
+	return maString;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool FastString::GetFirstPartString( const sal_uInt32 nPartLen, NMSP_RTL::OUString& rPartString )
+{
+	const sal_uInt32 nLength = Min( mnCurLen, nPartLen );
+
+	mnPartPos = 0;
+
+	if( nLength )
+	{
+		rPartString = NMSP_RTL::OUString( mpBuffer, nLength );
+		mnPartPos = nLength;
+	}
+
+	return( rPartString.getLength() > 0 );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool FastString::GetNextPartString( const sal_uInt32 nPartLen, NMSP_RTL::OUString& rPartString )
+{
+	if( mnPartPos < mnCurLen )
+	{
+		const sal_uInt32 nLength = Min( mnCurLen - mnPartPos, nPartLen );
+		rPartString = NMSP_RTL::OUString( mpBuffer + mnPartPos, nLength );
+		mnPartPos += nLength;
+	}
+	else
+		rPartString = NMSP_RTL::OUString();
+
+	return( rPartString.getLength() > 0 );
+}
+
+// ----------------------
+// - SVGAttributeWriter -
+// ----------------------
+
+SVGAttributeWriter::SVGAttributeWriter( SvXMLExport& rExport, SVGFontExport& rFontExport ) :
+=====================================================================
+Found a 88 line (651 tokens) duplication in the following files: 
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salgdi.h
+
+    virtual void			GetResolution( sal_Int32& rDPIX, sal_Int32& rDPIY );
+    virtual void			GetScreenFontResolution( sal_Int32& rDPIX, sal_Int32& rDPIY );
+    virtual USHORT			GetBitCount();
+    virtual long			GetGraphicsWidth() const;
+
+    virtual void			ResetClipRegion();
+    virtual void			BeginSetClipRegion( ULONG nCount );
+    virtual BOOL			unionClipRegion( long nX, long nY, long nWidth, long nHeight );
+    virtual void			EndSetClipRegion();
+
+    virtual void			SetLineColor();
+    virtual void			SetLineColor( SalColor nSalColor );
+    virtual void			SetFillColor();
+
+    virtual void          	SetFillColor( SalColor nSalColor );
+
+    virtual void			SetXORMode( BOOL bSet );
+
+    virtual void			SetROPLineColor( SalROPColor nROPColor );
+    virtual void			SetROPFillColor( SalROPColor nROPColor );
+
+    virtual void			SetTextColor( SalColor nSalColor );
+    virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
+    virtual void			GetFontMetric( ImplFontMetricData* );
+    virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+    virtual ImplFontCharMap* GetImplFontCharMap() const;
+    virtual void			GetDevFontList( ImplDevFontList* );
+    virtual void			GetDevFontSubstList( OutputDevice* );
+    virtual bool			AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
+    virtual BOOL			CreateFontSubset( const rtl::OUString& rToFile,
+                                              ImplFontData* pFont,
+                                              sal_Int32* pGlyphIDs,
+                                              sal_uInt8* pEncoding,
+                                              sal_Int32* pWidths,
+                                              int nGlyphs,
+                                              FontSubsetInfo& rInfo
+                                              );
+    virtual const std::map< sal_Unicode, sal_Int32 >* GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** ppNonEncoded );
+    virtual const void*	GetEmbedFontData( ImplFontData* pFont,
+                                          const sal_Unicode* pUnicodes,
+                                          sal_Int32* pWidths,
+                                          FontSubsetInfo& rInfo,
+                                          long* pDataLen );
+    virtual void			FreeEmbedFontData( const void* pData, long nDataLen );
+    virtual void            GetGlyphWidths( ImplFontData* pFont,
+                                            bool bVertical,
+                                            std::vector< sal_Int32 >& rWidths,
+                                            std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc );
+    virtual BOOL			GetGlyphBoundRect( long nIndex, Rectangle& );
+    virtual BOOL			GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& );
+    virtual SalLayout*		GetTextLayout( ImplLayoutArgs&, int nFallbackLevel );
+    virtual void			DrawServerFontLayout( const ServerFontLayout& );
+    virtual void			drawPixel( long nX, long nY );
+    virtual void			drawPixel( long nX, long nY, SalColor nSalColor );
+    virtual void			drawLine( long nX1, long nY1, long nX2, long nY2 );
+    virtual void			drawRect( long nX, long nY, long nWidth, long nHeight );
+    virtual void			drawPolyLine( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void			drawPolygon( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void			drawPolyPolygon( sal_uInt32 nPoly,
+                                             const sal_uInt32* pPoints,
+                                             PCONSTSALPOINT* pPtAry );
+    virtual sal_Bool		drawPolyLineBezier( ULONG nPoints,
+                                                const SalPoint* pPtAry,
+                                                const BYTE* pFlgAry );
+    virtual sal_Bool		drawPolygonBezier( ULONG nPoints,
+                                               const SalPoint* pPtAry,
+                                               const BYTE* pFlgAry );
+    virtual sal_Bool		drawPolyPolygonBezier( sal_uInt32 nPoly,
+                                                   const sal_uInt32* pPoints,
+                                                   const SalPoint* const* pPtAry,
+                                                   const BYTE* const* pFlgAry );
+	virtual void			copyArea( long nDestX,
+                                      long nDestY,
+                                      long nSrcX,
+                                      long nSrcY,
+                                      long nSrcWidth,
+                                      long nSrcHeight,
+                                      USHORT nFlags );
+    virtual void			copyBits( const SalTwoRect* pPosAry,
+                                      SalGraphics* pSrcGraphics );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap,
+                                        SalColor nTransparentColor );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap,
+                                        const SalBitmap& rMaskBitmap );
+=====================================================================
+Found a 133 line (643 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+
+                rtti = iFind2->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 143 line (641 tokens) duplication in the following files: 
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+		sal_Int32 eType;
+		UINT16 nPrecision = 0;
+		UINT16 nScale = 0;
+
+		BOOL bNumeric = FALSE;
+		ULONG  nIndex = 0;
+
+		// first without fielddelimiter
+		String aField;
+		aFirstLine.GetTokenSpecial(aField,nStartPosFirstLine,pConnection->getFieldDelimiter(),'\0');
+		//OSL_TRACE("OEvoabTable::aField = %s\n", ((OUtoCStr(::rtl::OUString(aField))) ? (OUtoCStr(::rtl::OUString(aField))):("NULL")) );
+
+		if (aField.Len() == 0 ||
+			(pConnection->getStringDelimiter() && pConnection->getStringDelimiter() == aField.GetChar(0)))
+		{
+			bNumeric = FALSE;
+		}
+		else
+		{
+			String aField2;
+			if ( pConnection->getStringDelimiter() != '\0' )
+				aFirstLine.GetTokenSpecial(aField2,nStartPosFirstLine2,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+			else
+				aField2 = aField;
+
+			//OSL_TRACE("OEvoabTable::aField2 = %s\n", ((OUtoCStr(::rtl::OUString(aField2))) ? (OUtoCStr(::rtl::OUString(aField2))):("NULL")) );
+
+			if (aField2.Len() == 0)
+			{
+				bNumeric = FALSE;
+			}
+			else
+			{
+				bNumeric = TRUE;
+				xub_StrLen nDot = 0;
+				for (xub_StrLen j = 0; j < aField2.Len(); j++)
+				{
+					sal_Unicode c = aField2.GetChar(j);
+					// nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen?
+					if ((!cDecimalDelimiter || c != cDecimalDelimiter) &&
+						(!cThousandDelimiter || c != cThousandDelimiter) &&
+						!aCharClass.isDigit(aField2,j))
+					{
+						bNumeric = FALSE;
+						break;
+					}
+					if (cDecimalDelimiter && c == cDecimalDelimiter)
+					{
+						nPrecision = 15; // we have an decimal value
+						nScale = 2;
+						nDot++;
+					}
+				}
+
+				if (nDot > 1) // if there is more than one dot it isn't a number
+					bNumeric = FALSE;
+				if (bNumeric && cThousandDelimiter)
+				{
+					// Ist der Trenner richtig angegeben?
+					String aValue = aField2.GetToken(0,cDecimalDelimiter);
+					for (sal_Int32 j = aValue.Len() - 4; j >= 0; j -= 4)
+					{
+						sal_Unicode c = aValue.GetChar(j);
+						// nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen?
+						if (c == cThousandDelimiter && j)
+							continue;
+						else
+						{
+							bNumeric = FALSE;
+							break;
+						}
+					}
+				}
+
+                // jetzt koennte es noch ein Datumsfeld sein
+				if (!bNumeric)
+				{
+					try
+					{
+						nIndex = m_xNumberFormatter->detectNumberFormat(::com::sun::star::util::NumberFormat::ALL,aField2);
+					}
+					catch(Exception&)
+					{
+					}
+				}
+			}
+		}
+
+		sal_Int32 nFlags = 0;
+		if (bNumeric)
+		{
+			if (cDecimalDelimiter)
+			{
+				if(nPrecision)
+				{
+					eType = DataType::DECIMAL;
+					aTypeName = ::rtl::OUString::createFromAscii("DECIMAL");
+				}
+				else
+				{
+					eType = DataType::DOUBLE;
+					aTypeName = ::rtl::OUString::createFromAscii("DOUBLE");
+				}
+			}
+			else
+				eType = DataType::INTEGER;
+			nFlags = ColumnSearch::BASIC;
+		}
+		else
+		{
+
+			switch (comphelper::getNumberFormatType(m_xNumberFormatter,nIndex))
+			{
+				case NUMBERFORMAT_DATE:
+					eType = DataType::DATE;
+					aTypeName = ::rtl::OUString::createFromAscii("DATE");
+					break;
+				case NUMBERFORMAT_DATETIME:
+					eType = DataType::TIMESTAMP;
+					aTypeName = ::rtl::OUString::createFromAscii("TIMESTAMP");
+					break;
+				case NUMBERFORMAT_TIME:
+					eType = DataType::TIME;
+					aTypeName = ::rtl::OUString::createFromAscii("TIME");
+					break;
+				default:
+					eType = DataType::VARCHAR;
+					nPrecision = 0;	// nyi: Daten koennen aber laenger sein!
+					nScale = 0;
+					aTypeName = ::rtl::OUString::createFromAscii("VARCHAR");
+			};
+			nFlags |= ColumnSearch::CHAR;
+		}
+
+		// check if the columname already exists
+		String aAlias(aColumnName);
+		OSQLColumns::const_iterator aFind = connectivity::find(m_aColumns->begin(),m_aColumns->end(),aAlias,aCase);
+		sal_Int32 nExprCnt = 0;
+		while(aFind != m_aColumns->end())
+		{
+			(aAlias = aColumnName) += String::CreateFromInt32(++nExprCnt);
+			aFind = connectivity::find(m_aColumns->begin(),m_aColumns->end(),aAlias,aCase);
+		}
+=====================================================================
+Found a 151 line (639 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+	int m_iCharCount;
+};
+
+//--------------------------------------
+// helper implementation for writing
+// implements an XAttributeList
+//-------------------------------------
+struct AttributeListImpl_impl;
+class AttributeListImpl : public WeakImplHelper1< XAttributeList >
+{
+public:
+	AttributeListImpl();
+	AttributeListImpl( const AttributeListImpl & );
+	~AttributeListImpl();
+
+public:
+    virtual sal_Int16 SAL_CALL getLength(void) throw  (RuntimeException);
+    virtual OUString SAL_CALL getNameByIndex(sal_Int16 i) throw  (RuntimeException);
+    virtual OUString SAL_CALL getTypeByIndex(sal_Int16 i) throw  (RuntimeException);
+    virtual OUString SAL_CALL getTypeByName(const OUString& aName) throw  (RuntimeException);
+    virtual OUString SAL_CALL getValueByIndex(sal_Int16 i) throw  (RuntimeException);
+    virtual OUString SAL_CALL getValueByName(const OUString& aName) throw  (RuntimeException);
+
+public:
+	void addAttribute( const OUString &sName ,
+					   const OUString &sType ,
+					   const OUString &sValue );
+	void clear();
+
+private:
+	struct AttributeListImpl_impl *m_pImpl;
+};
+
+
+struct TagAttribute
+{
+	TagAttribute(){}
+	TagAttribute( const OUString &sName,
+				  const OUString &sType ,
+				  const OUString &sValue )
+	{
+		this->sName 	= sName;
+		this->sType 	= sType;
+		this->sValue 	= sValue;
+	}
+
+	OUString sName;
+	OUString sType;
+	OUString sValue;
+};
+
+struct AttributeListImpl_impl
+{
+	AttributeListImpl_impl()
+	{
+		// performance improvement during adding
+		vecAttribute.reserve(20);
+	}
+	vector<struct TagAttribute> vecAttribute;
+};
+
+
+
+sal_Int16 AttributeListImpl::getLength(void) throw  (RuntimeException)
+{
+	return m_pImpl->vecAttribute.size();
+}
+
+
+AttributeListImpl::AttributeListImpl( const AttributeListImpl &r )
+{
+	m_pImpl = new AttributeListImpl_impl;
+	*m_pImpl = *(r.m_pImpl);
+}
+
+OUString AttributeListImpl::getNameByIndex(sal_Int16 i) throw  (RuntimeException)
+{
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sName;
+	}
+	return OUString();
+}
+
+
+OUString AttributeListImpl::getTypeByIndex(sal_Int16 i) throw  (RuntimeException)
+{
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sType;
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByIndex(sal_Int16 i) throw  (RuntimeException)
+{
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+	m_pImpl->vecAttribute.clear();
+}
+=====================================================================
+Found a 131 line (639 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+            }
+    }
+    else
+    {
+        rtti = iRttiFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 154 line (638 tokens) duplication in the following files: 
+Starting at line 2004 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 2063 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+xub_StrLen WW8ScannerBase::WW8ReadString( SvStream& rStrm, String& rStr,
+    WW8_CP nAktStartCp, long nTotalLen, rtl_TextEncoding eEnc ) const
+{
+    // Klartext einlesen, der sich ueber mehrere Pieces erstrecken kann
+    rStr.Erase();
+
+    long nTotalRead = 0;
+    WW8_CP nBehindTextCp = nAktStartCp + nTotalLen;
+    WW8_CP nNextPieceCp  = nBehindTextCp; // Initialisierung wichtig fuer Ver6
+    do
+    {
+        bool bIsUnicode, bPosOk;
+        WW8_FC fcAct = WW8Cp2Fc(nAktStartCp,&bIsUnicode,&nNextPieceCp,&bPosOk);
+
+        // vermutlich uebers Dateiende hinaus gezielt, macht nix!
+        if( !bPosOk )
+            break;
+
+        rStrm.Seek( fcAct );
+
+        long nLen = ( (nNextPieceCp < nBehindTextCp) ? nNextPieceCp
+            : nBehindTextCp ) - nAktStartCp;
+
+        if( 0 >= nLen )
+            break;
+
+        if( nLen > USHRT_MAX - 1 )
+            nLen = USHRT_MAX - 1;
+
+        if( bIsUnicode )
+            rStr.Append(WW8Read_xstz(rStrm, (USHORT)nLen, false));
+        else
+        {
+            // Alloc method automatically sets Zero at the end
+            ByteString aByteStr;
+            SafeReadString(aByteStr,(USHORT)nLen,rStrm);
+            rStr += String( aByteStr, eEnc );
+        }
+        nTotalRead  += nLen;
+        nAktStartCp += nLen;
+        if ( nTotalRead != rStr.Len() )
+            break;
+    }
+    while( nTotalRead < nTotalLen );
+
+    return rStr.Len();
+}
+
+//-----------------------------------------
+//              WW8PLCFspecial
+//-----------------------------------------
+
+// Bei nStartPos < 0 wird das erste Element des PLCFs genommen
+WW8PLCFspecial::WW8PLCFspecial(SvStream* pSt, long nFilePos, long nPLCF,
+    long nStruct, long nStartPos, bool bNoEnd)
+    : nIdx(0), nStru(nStruct)
+{
+    nIMax = ( nPLCF - 4 ) / ( 4 + nStruct );
+    // Pointer auf Pos- u. Struct-Array
+    pPLCF_PosArray = new INT32[ ( nPLCF + 3 ) / 4 ];
+
+    long nOldPos = pSt->Tell();
+
+    pSt->Seek( nFilePos );
+    pSt->Read( pPLCF_PosArray, nPLCF );
+#ifdef OSL_BIGENDIAN
+    for( nIdx = 0; nIdx <= nIMax; nIdx++ )
+        pPLCF_PosArray[nIdx] = SWAPLONG( pPLCF_PosArray[nIdx] );
+    nIdx = 0;
+#endif // OSL_BIGENDIAN
+    if( bNoEnd )
+        nIMax++;
+    if( nStruct ) // Pointer auf Inhalts-Array
+        pPLCF_Contents = (BYTE*)&pPLCF_PosArray[nIMax + 1];
+    else
+        pPLCF_Contents = 0;                         // kein Inhalt
+    if( nStartPos >= 0 )
+        SeekPos( nStartPos );
+
+    pSt->Seek( nOldPos );
+}
+
+// WW8PLCFspecial::SeekPos() stellt den WW8PLCFspecial auf die Stelle nPos, wobei auch noch der
+// Eintrag benutzt wird, der vor nPos beginnt und bis hinter nPos reicht.
+// geeignet fuer normale Attribute. Allerdings wird der Attributanfang nicht
+// auf die Position nPos korrigiert.
+bool WW8PLCFspecial::SeekPos(long nP)
+{
+    if( nP < pPLCF_PosArray[0] )
+    {
+        nIdx = 0;
+        return false;   // Not found: nP unterhalb kleinstem Eintrag
+    }
+
+    // Search from beginning?
+    if( (1 > nIdx) || (nP < pPLCF_PosArray[ nIdx-1 ]) )
+        nIdx = 1;
+
+    long nI   = nIdx ? nIdx : 1;
+    long nEnd = nIMax;
+
+    for(int n = (1==nIdx ? 1 : 2); n; --n )
+    {
+        for( ; nI <=nEnd; ++nI)
+        {                                   // Suchen mit um 1 erhoehtem Index
+            if( nP < pPLCF_PosArray[nI] )
+            {                               // Position gefunden
+                nIdx = nI - 1;              // nI - 1 ist der richtige Index
+                return true;                // ... und fertig
+            }
+        }
+        nI   = 1;
+        nEnd = nIdx-1;
+    }
+    nIdx = nIMax;               // Nicht gefunden, groesser als alle Eintraege
+    return false;
+}
+
+// WW8PLCFspecial::SeekPosExact() wie SeekPos(), aber es wird sichergestellt,
+// dass kein Attribut angeschnitten wird, d.h. das naechste gelieferte
+// Attribut beginnt auf oder hinter nPos. Wird benutzt fuer Felder +
+// Bookmarks.
+bool WW8PLCFspecial::SeekPosExact(long nP)
+{
+    if( nP < pPLCF_PosArray[0] )
+    {
+        nIdx = 0;
+        return false;       // Not found: nP unterhalb kleinstem Eintrag
+    }
+    // Search from beginning?
+    if( nP <=pPLCF_PosArray[nIdx] )
+        nIdx = 0;
+
+    long nI   = nIdx ? nIdx-1 : 0;
+    long nEnd = nIMax;
+
+    for(int n = (0==nIdx ? 1 : 2); n; --n )
+    {
+        for( ; nI < nEnd; ++nI)
+        {
+            if( nP <=pPLCF_PosArray[nI] )
+            {                           // Position gefunden
+                nIdx = nI;              // nI     ist der richtige Index
+                return true;            // ... und fertig
+            }
+        }
+        nI   = 0;
+        nEnd = nIdx;
+    }
+    nIdx = nIMax;               // Not found, groesser als alle Eintraege
+    return false;
+}
+
+bool WW8PLCFspecial::Get(WW8_CP& rPos, void*& rpValue) const
+=====================================================================
+Found a 93 line (636 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/editview.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/lingu/olmenu.cxx
+
+static LanguageType lcl_GuessLocale2Lang( const lang::Locale &rLocale )
+{
+	struct Loc2Lang
+	{
+		const char *	pLang;
+		const char *	pCountry;
+		LanguageType	nLang;
+	};
+	static const Loc2Lang aLoc2Lang[] =
+	{
+		{"af", "",      LANGUAGE_AFRIKAANS},
+		{"sq", "",      LANGUAGE_ALBANIAN},
+		{"am", "",      LANGUAGE_AMHARIC_ETHIOPIA},
+		{"ar", "",      LANGUAGE_ARABIC_EGYPT},
+		{"eu", "",      LANGUAGE_BASQUE},
+		{"be", "",      LANGUAGE_BELARUSIAN},
+		{"bs", "",      LANGUAGE_BOSNIAN_LATIN_BOSNIA_HERZEGOVINA},
+		{"br", "",      LANGUAGE_BRETON_FRANCE},
+		{"ca", "",      LANGUAGE_CATALAN},
+		{"zh", "CN",    LANGUAGE_CHINESE_SIMPLIFIED},
+		{"zh", "TW",    LANGUAGE_CHINESE_TRADITIONAL},
+		{"hr", "",      LANGUAGE_CROATIAN},
+		{"cs", "",      LANGUAGE_CZECH},
+		{"da", "",      LANGUAGE_DANISH},
+		{"nl", "",      LANGUAGE_DUTCH},
+		{"en", "",      LANGUAGE_ENGLISH_US},
+		{"eo", "",      LANGUAGE_USER_ESPERANTO},
+		{"et", "",      LANGUAGE_ESTONIAN},
+		{"fi", "",      LANGUAGE_FINNISH},
+		{"fr", "",      LANGUAGE_FRENCH},
+		{"fy", "",      LANGUAGE_FRISIAN_NETHERLANDS},
+		{"ka", "",      LANGUAGE_GEORGIAN},
+		{"de", "",      LANGUAGE_GERMAN},
+		{"el", "",      LANGUAGE_GREEK},
+		{"he", "",      LANGUAGE_HEBREW},
+		{"hi", "",      LANGUAGE_HINDI},
+		{"hu", "",      LANGUAGE_HUNGARIAN},
+		{"is", "",      LANGUAGE_ICELANDIC},
+		{"id", "",      LANGUAGE_INDONESIAN},
+		{"ga", "",      LANGUAGE_GAELIC_IRELAND},
+		{"it", "",      LANGUAGE_ITALIAN},
+		{"ja", "",      LANGUAGE_JAPANESE},
+		{"ko", "",      LANGUAGE_KOREAN},
+		{"la", "",      LANGUAGE_LATIN},
+		{"lv", "",      LANGUAGE_LATVIAN},
+		{"lt", "",      LANGUAGE_LITHUANIAN},
+		{"ms", "",      LANGUAGE_MALAY_MALAYSIA},
+		{"gv", "",        LANGUAGE_NONE},
+		{"mr", "",      LANGUAGE_MARATHI},
+		{"ne", "",      LANGUAGE_NEPALI},
+		{"nb", "",      LANGUAGE_NORWEGIAN_BOKMAL},
+		{"fa", "",      LANGUAGE_FARSI},
+		{"pl", "",      LANGUAGE_POLISH},
+		{"pt", "PT",    LANGUAGE_PORTUGUESE},
+		{"ro", "",      LANGUAGE_ROMANIAN},
+		{"rm", "",      LANGUAGE_RHAETO_ROMAN},
+		{"ru", "",      LANGUAGE_RUSSIAN},
+		{"sa", "",      LANGUAGE_SANSKRIT},
+		{"sco","",        LANGUAGE_NONE},
+		{"gd", "",      LANGUAGE_GAELIC_SCOTLAND},
+		{"sh", "YU",    LANGUAGE_SERBIAN_LATIN},
+		{"sk", "SK",    LANGUAGE_SLOVAK},
+		{"sl", "",      LANGUAGE_SLOVENIAN},
+		{"es", "",      LANGUAGE_SPANISH},
+		{"sw", "",      LANGUAGE_SWAHILI},
+		{"sv", "",      LANGUAGE_SWEDISH},
+		{"tl", "",        LANGUAGE_NONE},
+		{"ta", "",      LANGUAGE_TAMIL},
+		{"th", "",      LANGUAGE_THAI},
+		{"tr", "",      LANGUAGE_TURKISH},
+		{"uk", "",      LANGUAGE_UKRAINIAN},
+		{"vi", "",      LANGUAGE_VIETNAMESE},
+		{"cy", "",      LANGUAGE_WELSH}
+	};
+
+	LanguageType nRes = LANGUAGE_DONTKNOW;
+	const sal_Int16 nNum = sizeof(aLoc2Lang) / sizeof(aLoc2Lang[0]);
+	for (sal_Int16 i = 0;  i < nNum;  ++i)
+	{
+		if (rLocale.Language.equalsAscii( aLoc2Lang[i].pLang ) &&
+			rLocale.Country .equalsAscii( aLoc2Lang[i].pCountry ))
+		{
+			nRes = aLoc2Lang[i].nLang;
+			break;
+		}
+	}
+	return nRes;
+}
+
+// tries to determine the language of 'rText'
+// 
+LanguageType lcl_CheckLanguage( 
+	const OUString &rText,
+=====================================================================
+Found a 50 line (636 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BFunctions.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OFunctions.cxx
+
+	if( ( pODBC3SQLBulkOperations	=	(T3SQLBulkOperations)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBulkOperations").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLMoreResults	=	(T3SQLMoreResults)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLMoreResults").pData )) == NULL )
+		return sal_False;
+	/*if( ( pODBC3SQLGetDiagField	=	(T3SQLGetDiagField)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDiagField").pData )) == NULL )
+		return sal_False;*/
+	if( ( pODBC3SQLGetDiagRec	=	(T3SQLGetDiagRec)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDiagRec").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLColumnPrivileges = (T3SQLColumnPrivileges)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLColumnPrivileges").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLColumns		=	(T3SQLColumns)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLColumns").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLForeignKeys	=	(T3SQLForeignKeys)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLForeignKeys").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLPrimaryKeys	=	(T3SQLPrimaryKeys)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLPrimaryKeys").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLProcedureColumns =  (T3SQLProcedureColumns)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLProcedureColumns").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLProcedures	=	(T3SQLProcedures)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLProcedures").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLSpecialColumns =  (T3SQLSpecialColumns)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSpecialColumns").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLStatistics	=   (T3SQLStatistics)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLStatistics").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLTablePrivileges =	(T3SQLTablePrivileges)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLTablePrivileges").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLTables		=   (T3SQLTables)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLTables").pData )) == NULL )
+		return sal_False;					
+	if( ( pODBC3SQLFreeStmt		=	(T3SQLFreeStmt)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFreeStmt").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLCloseCursor	=	(T3SQLCloseCursor)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLCloseCursor").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLCancel		=	(T3SQLCancel)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLCancel").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLEndTran		=	(T3SQLEndTran)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLEndTran").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLDisconnect	=	(T3SQLDisconnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDisconnect").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLFreeHandle	=	(T3SQLFreeHandle)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFreeHandle").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLGetCursorName	=	(T3SQLGetCursorName)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetCursorName").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLNativeSql	=	(T3SQLNativeSql)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNativeSql").pData )) == NULL )
+		return sal_False;
+
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+
+}
+=====================================================================
+Found a 57 line (633 tokens) duplication in the following files: 
+Starting at line 1818 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxdr.cxx
+
+	if (aGeo.nShearWink!=0) ShearPoint(aPos,aTmpRect.TopLeft(),-aGeo.nTan);
+	//
+	FASTBOOL bLft=(eHdl==HDL_UPLFT || eHdl==HDL_LEFT  || eHdl==HDL_LWLFT);
+	FASTBOOL bRgt=(eHdl==HDL_UPRGT || eHdl==HDL_RIGHT || eHdl==HDL_LWRGT);
+	FASTBOOL bTop=(eHdl==HDL_UPRGT || eHdl==HDL_UPPER || eHdl==HDL_UPLFT);
+	FASTBOOL bBtm=(eHdl==HDL_LWRGT || eHdl==HDL_LOWER || eHdl==HDL_LWLFT);
+	if (bLft) aTmpRect.Left()  =aPos.X();
+	if (bRgt) aTmpRect.Right() =aPos.X();
+	if (bTop) aTmpRect.Top()   =aPos.Y();
+	if (bBtm) aTmpRect.Bottom()=aPos.Y();
+	if (bOrtho) { // Ortho
+		long nWdt0=aRect.Right() -aRect.Left();
+		long nHgt0=aRect.Bottom()-aRect.Top();
+		long nXMul=aTmpRect.Right() -aTmpRect.Left();
+		long nYMul=aTmpRect.Bottom()-aTmpRect.Top();
+		long nXDiv=nWdt0;
+		long nYDiv=nHgt0;
+		FASTBOOL bXNeg=(nXMul<0)!=(nXDiv<0);
+		FASTBOOL bYNeg=(nYMul<0)!=(nYDiv<0);
+		nXMul=Abs(nXMul);
+		nYMul=Abs(nYMul);
+		nXDiv=Abs(nXDiv);
+		nYDiv=Abs(nYDiv);
+		Fraction aXFact(nXMul,nXDiv); // Fractions zum kuerzen
+		Fraction aYFact(nYMul,nYDiv); // und zum vergleichen
+		nXMul=aXFact.GetNumerator();
+		nYMul=aYFact.GetNumerator();
+		nXDiv=aXFact.GetDenominator();
+		nYDiv=aYFact.GetDenominator();
+		if (bEcke) { // Eckpunkthandles
+			FASTBOOL bUseX=(aXFact<aYFact) != bBigOrtho;
+			if (bUseX) {
+				long nNeed=long(BigInt(nHgt0)*BigInt(nXMul)/BigInt(nXDiv));
+				if (bYNeg) nNeed=-nNeed;
+				if (bTop) aTmpRect.Top()=aTmpRect.Bottom()-nNeed;
+				if (bBtm) aTmpRect.Bottom()=aTmpRect.Top()+nNeed;
+			} else {
+				long nNeed=long(BigInt(nWdt0)*BigInt(nYMul)/BigInt(nYDiv));
+				if (bXNeg) nNeed=-nNeed;
+				if (bLft) aTmpRect.Left()=aTmpRect.Right()-nNeed;
+				if (bRgt) aTmpRect.Right()=aTmpRect.Left()+nNeed;
+			}
+		} else { // Scheitelpunkthandles
+			if ((bLft || bRgt) && nXDiv!=0) {
+				long nHgt0b=aRect.Bottom()-aRect.Top();
+				long nNeed=long(BigInt(nHgt0b)*BigInt(nXMul)/BigInt(nXDiv));
+				aTmpRect.Top()-=(nNeed-nHgt0b)/2;
+				aTmpRect.Bottom()=aTmpRect.Top()+nNeed;
+			}
+			if ((bTop || bBtm) && nYDiv!=0) {
+				long nWdt0b=aRect.Right()-aRect.Left();
+				long nNeed=long(BigInt(nWdt0b)*BigInt(nYMul)/BigInt(nYDiv));
+				aTmpRect.Left()-=(nNeed-nWdt0b)/2;
+				aTmpRect.Right()=aTmpRect.Left()+nNeed;
+			}
+		}
+	}
+=====================================================================
+Found a 127 line (632 tokens) duplication in the following files: 
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr(
+        OUStringToOString(
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
+#endif
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+    {
+        throw RuntimeException(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
+            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
+            Reference< XInterface >() );
+    }
+    }
+
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
+{
+    if (! header)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+#if OSL_DEBUG_LEVEL > 1
+    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
+#endif
+	typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    if (0 == pExcTypeDescr)
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+    }
+    else
+    {
+        // construct uno exception any
+        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+        typelib_typedescription_release( pExcTypeDescr );
+    }
+}
+
+}
+=====================================================================
+Found a 157 line (627 tokens) duplication in the following files: 
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sspellimp.cxx
+
+	return A2OU( "OpenOffice example spellchecker" );
+}
+
+
+void SAL_CALL 
+	SpellChecker::initialize( const Sequence< Any >& rArguments ) 
+		throw(Exception, RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	if (!pPropHelper)
+	{
+		INT32 nLen = rArguments.getLength();
+		if (2 == nLen)
+		{
+			Reference< XPropertySet	>	xPropSet;
+			rArguments.getConstArray()[0] >>= xPropSet;
+			//rArguments.getConstArray()[1] >>= xDicList;
+
+			//! Pointer allows for access of the non-UNO functions.
+			//! And the reference to the UNO-functions while increasing
+			//! the ref-count and will implicitly free the memory
+			//! when the object is not longer used.
+			pPropHelper = new PropertyHelper_Spell( (XSpellChecker *) this, xPropSet );
+			xPropHelper = pPropHelper;
+			pPropHelper->AddAsPropListener();	//! after a reference is established
+		}
+		else
+			DBG_ERROR( "wrong number of arguments in sequence" );
+	}
+}
+
+
+void SAL_CALL 
+	SpellChecker::dispose() 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	if (!bDisposing)
+	{
+		bDisposing = TRUE;
+		EventObject	aEvtObj( (XSpellChecker *) this );
+		aEvtListeners.disposeAndClear( aEvtObj );
+	}
+}
+
+
+void SAL_CALL 
+	SpellChecker::addEventListener( const Reference< XEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	if (!bDisposing && rxListener.is())
+		aEvtListeners.addInterface( rxListener );
+}
+
+
+void SAL_CALL 
+	SpellChecker::removeEventListener( const Reference< XEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	if (!bDisposing && rxListener.is())
+		aEvtListeners.removeInterface( rxListener );
+}
+
+
+///////////////////////////////////////////////////////////////////////////
+// Service specific part
+//
+
+OUString SAL_CALL SpellChecker::getImplementationName() 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return getImplementationName_Static();
+}
+
+
+sal_Bool SAL_CALL SpellChecker::supportsService( const OUString& ServiceName )
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	Sequence< OUString > aSNL = getSupportedServiceNames();
+	const OUString * pArray = aSNL.getConstArray();
+	for( INT32 i = 0; i < aSNL.getLength(); i++ )
+		if( pArray[i] == ServiceName )
+			return TRUE;
+	return FALSE;
+}
+
+
+Sequence< OUString > SAL_CALL SpellChecker::getSupportedServiceNames()
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return getSupportedServiceNames_Static();
+}
+
+
+Sequence< OUString > SpellChecker::getSupportedServiceNames_Static() 
+		throw()
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	Sequence< OUString > aSNS( 1 );	// auch mehr als 1 Service moeglich
+	aSNS.getArray()[0] = A2OU( SN_SPELLCHECKER );
+	return aSNS;
+}
+
+
+sal_Bool SAL_CALL SpellChecker_writeInfo(
+			void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
+{
+	try
+	{
+		String aImpl( '/' );
+		aImpl += SpellChecker::getImplementationName_Static().getStr();
+		aImpl.AppendAscii( "/UNO/SERVICES" );
+		Reference< registry::XRegistryKey > xNewKey =
+				pRegistryKey->createKey( aImpl );
+		Sequence< OUString > aServices =
+				SpellChecker::getSupportedServiceNames_Static();
+		for( INT32 i = 0; i < aServices.getLength(); i++ )
+			xNewKey->createKey( aServices.getConstArray()[i] );
+
+		return sal_True;
+	}
+	catch(Exception &)
+	{
+		return sal_False;
+	}
+}
+
+
+void * SAL_CALL SpellChecker_getFactory( const sal_Char * pImplName,
+			XMultiServiceFactory * pServiceManager, void *  )
+{
+	void * pRet = 0;
+	if ( !SpellChecker::getImplementationName_Static().compareToAscii( pImplName ) )
+	{
+		Reference< XSingleServiceFactory > xFactory =
+			cppu::createOneInstanceFactory(
+				pServiceManager,
+				SpellChecker::getImplementationName_Static(),
+				SpellChecker_CreateInstance,
+				SpellChecker::getSupportedServiceNames_Static());
+		// acquire, because we return an interface pointer instead of a reference
+		xFactory->acquire();
+		pRet = xFactory.get();
+	}
+	return pRet;
+}
+=====================================================================
+Found a 64 line (624 tokens) duplication in the following files: 
+Starting at line 7316 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 5096 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+		case mso_sptCube :						pCustomShape = &msoCube; break;
+		case mso_sptActionButtonBlank :			pCustomShape = &msoActionButtonBlank; break;
+		case mso_sptActionButtonHome :			pCustomShape = &msoActionButtonHome; break;
+		case mso_sptActionButtonHelp :			pCustomShape = &msoActionButtonHelp; break;
+		case mso_sptActionButtonInformation :	pCustomShape = &msoActionButtonInformation; break;
+		case mso_sptActionButtonBackPrevious :	pCustomShape = &msoActionButtonBackPrevious; break;
+		case mso_sptActionButtonForwardNext :	pCustomShape = &msoActionButtonForwardNext; break;
+		case mso_sptActionButtonBeginning :		pCustomShape = &msoActionButtonBeginning; break;
+		case mso_sptActionButtonEnd :			pCustomShape = &msoActionButtonEnd; break;
+		case mso_sptActionButtonReturn :		pCustomShape = &msoActionButtonReturn;	break;
+		case mso_sptActionButtonDocument :		pCustomShape = &msoActionButtonDocument; break;
+		case mso_sptActionButtonSound :			pCustomShape = &msoActionButtonSound; break;
+		case mso_sptActionButtonMovie :			pCustomShape = &msoActionButtonMovie; break;
+		case mso_sptBevel :						pCustomShape = &msoBevel; break;
+		case mso_sptFoldedCorner :				pCustomShape = &msoFoldedCorner; break;
+		case mso_sptSmileyFace :				pCustomShape = &msoSmileyFace;	break;
+		case mso_sptDonut :						pCustomShape = &msoDonut; break;
+		case mso_sptNoSmoking :					pCustomShape = &msoNoSmoking; break;
+		case mso_sptBlockArc :					pCustomShape = &msoBlockArc; break;
+		case mso_sptHeart :						pCustomShape = &msoHeart; break;
+		case mso_sptLightningBolt :				pCustomShape = &msoLightningBold; break;
+		case mso_sptSun	:						pCustomShape = &msoSun; break;
+		case mso_sptMoon :						pCustomShape = &msoMoon; break;
+		case mso_sptBracketPair :				pCustomShape = &msoBracketPair; break;
+		case mso_sptBracePair :					pCustomShape = &msoBracePair; break;
+		case mso_sptPlaque :					pCustomShape = &msoPlaque; break;
+		case mso_sptLeftBracket :				pCustomShape = &msoLeftBracket; break;
+		case mso_sptRightBracket :				pCustomShape = &msoRightBracket; break;
+		case mso_sptLeftBrace :					pCustomShape = &msoLeftBrace; break;
+		case mso_sptRightBrace :				pCustomShape = &msoRightBrace; break;
+		case mso_sptArrow :						pCustomShape = &msoArrow; break;
+		case mso_sptUpArrow :					pCustomShape = &msoUpArrow; break;
+		case mso_sptDownArrow :					pCustomShape = &msoDownArrow; break;
+		case mso_sptLeftArrow :					pCustomShape = &msoLeftArrow; break;
+		case mso_sptLeftRightArrow :			pCustomShape = &msoLeftRightArrow; break;
+		case mso_sptUpDownArrow :				pCustomShape = &msoUpDownArrow; break;
+		case mso_sptQuadArrow :					pCustomShape = &msoQuadArrow; break;
+		case mso_sptLeftRightUpArrow :			pCustomShape = &msoLeftRightUpArrow; break;
+		case mso_sptBentArrow :					pCustomShape = &msoBentArrow; break;
+		case mso_sptUturnArrow :				pCustomShape = &msoUturnArrow; break;
+		case mso_sptLeftUpArrow :				pCustomShape = &msoLeftUpArrow; break;
+		case mso_sptBentUpArrow :				pCustomShape = &msoBentUpArrow; break;
+		case mso_sptCurvedRightArrow :			pCustomShape = &msoCurvedArrow; break;
+		case mso_sptCurvedLeftArrow :			pCustomShape = &msoCurvedArrow; break;
+		case mso_sptCurvedUpArrow :				pCustomShape = &msoCurvedArrow; break;
+		case mso_sptCurvedDownArrow :			pCustomShape = &msoCurvedArrow; break;
+		case mso_sptStripedRightArrow :			pCustomShape = &msoStripedRightArrow; break;
+		case mso_sptNotchedRightArrow :			pCustomShape = &msoNotchedRightArrow; break;
+		case mso_sptHomePlate :					pCustomShape = &msoHomePlate; break;
+		case mso_sptChevron :					pCustomShape = &msoChevron; break;
+		case mso_sptRightArrowCallout :			pCustomShape = &msoRightArrowCallout; break;
+		case mso_sptLeftArrowCallout :			pCustomShape = &msoLeftArrowCallout; break;
+		case mso_sptUpArrowCallout :			pCustomShape = &msoUpArrowCallout; break;
+		case mso_sptDownArrowCallout :			pCustomShape = &msoDownArrowCallout; break;
+		case mso_sptLeftRightArrowCallout :		pCustomShape = &msoLeftRightArrowCallout; break;
+		case mso_sptUpDownArrowCallout :		pCustomShape = &msoUpDownArrowCallout; break;
+		case mso_sptQuadArrowCallout :			pCustomShape = &msoQuadArrowCallout; break;
+		case mso_sptCircularArrow :				pCustomShape = &msoCircularArrow; break;
+		case mso_sptIrregularSeal1 :			pCustomShape = &msoIrregularSeal1; break;
+		case mso_sptIrregularSeal2 :			pCustomShape = &msoIrregularSeal2; break;
+		case mso_sptSeal4 :						pCustomShape = &msoSeal4; break;
+		case mso_sptStar :						pCustomShape = &msoStar; break;
+		case mso_sptSeal8 :						pCustomShape = &msoSeal8; break;
+		case mso_sptSeal16 :					pCustomShape = &msoSeal16; break;
+=====================================================================
+Found a 50 line (618 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+=====================================================================
+Found a 100 line (617 tokens) duplication in the following files: 
+Starting at line 574 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 677 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        a.getValueType() == getCppuType(static_cast< sal_uInt16 const * >(0)));
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b) && b == 1);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+    }
+    {
+        sal_Unicode b = '2';
+        if (boost::is_same< sal_Unicode, sal_uInt16 >::value) {
+            CPPUNIT_ASSERT_MESSAGE("@sal_Unicode", (a >>= b) && b == 1);
+        } else {
+            CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+        }
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testLong() {
+=====================================================================
+Found a 50 line (615 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/public.h
+
+t_attr Rcp_attribute ANSI((char *));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+=====================================================================
+Found a 50 line (614 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/gnu/public.h
+
+PUBLIC int main ANSI((int argc, char **argv));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+=====================================================================
+Found a 78 line (611 tokens) duplication in the following files: 
+Starting at line 2178 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2696 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0x69, 0xdd },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+{ 0x00, 0xa2, 0xa2 },
+{ 0x00, 0xa3, 0xa3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+=====================================================================
+Found a 80 line (610 tokens) duplication in the following files: 
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/license.cxx
+
+	return 0;
+}
+
+static DateTime _oslDateTimeToDateTime(const oslDateTime& aDateTime)
+{
+    return DateTime(
+        Date(aDateTime.Day, aDateTime.Month, aDateTime.Year), 
+        Time(aDateTime.Hours, aDateTime.Minutes, aDateTime.Seconds));
+}
+
+static OUString _makeDateTimeString (const DateTime& aDateTime, sal_Bool bUTC = sal_False)
+{
+    OStringBuffer aDateTimeString;
+    aDateTimeString.append((sal_Int32)aDateTime.GetYear());
+    aDateTimeString.append("-");
+    if (aDateTime.GetMonth()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetMonth());
+    aDateTimeString.append("-");
+    if (aDateTime.GetDay()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetDay());
+    aDateTimeString.append("T");
+    if (aDateTime.GetHour()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetHour());
+    aDateTimeString.append(":");
+    if (aDateTime.GetMin()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetMin());
+    aDateTimeString.append(":");
+    if (aDateTime.GetSec()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetSec());
+    if (bUTC) aDateTimeString.append("Z");
+
+    return OStringToOUString(aDateTimeString.makeStringAndClear(), RTL_TEXTENCODING_ASCII_US);
+}
+
+static sal_Bool _parseDateTime(const OUString& aString, DateTime& aDateTime)
+{
+    // take apart a canonical literal xsd:dateTime string
+    //CCYY-MM-DDThh:mm:ss(Z)
+
+    OUString aDateTimeString = aString.trim();
+
+    // check length
+    if (aDateTimeString.getLength() < 19 || aDateTimeString.getLength() > 20)
+        return sal_False;
+
+    sal_Int32 nDateLength = 10;
+    sal_Int32 nTimeLength = 8;
+
+    OUString aDateTimeSep = OUString::createFromAscii("T");
+    OUString aDateSep = OUString::createFromAscii("-");
+    OUString aTimeSep = OUString::createFromAscii(":");
+    OUString aUTCString = OUString::createFromAscii("Z");
+
+    OUString aDateString = aDateTimeString.copy(0, nDateLength);
+    OUString aTimeString = aDateTimeString.copy(nDateLength+1, nTimeLength);
+
+    sal_Int32 nIndex = 0;
+    sal_Int32 nYear = aDateString.getToken(0, '-', nIndex).toInt32();
+    sal_Int32 nMonth = aDateString.getToken(0, '-', nIndex).toInt32();
+    sal_Int32 nDay = aDateString.getToken(0, '-', nIndex).toInt32();
+    nIndex = 0;
+    sal_Int32 nHour = aTimeString.getToken(0, ':', nIndex).toInt32();
+    sal_Int32 nMinute = aTimeString.getToken(0, ':', nIndex).toInt32();
+    sal_Int32 nSecond = aTimeString.getToken(0, ':', nIndex).toInt32();
+
+    Date tmpDate((USHORT)nDay, (USHORT)nMonth, (USHORT)nYear);
+    Time tmpTime(nHour, nMinute, nSecond);
+    DateTime tmpDateTime(tmpDate, tmpTime);
+    if (aString.indexOf(aUTCString) < 0)
+        tmpDateTime.ConvertToUTC();
+
+    aDateTime = tmpDateTime;
+    return sal_True;
+}
+
+static OUString _getCurrentDateString()
+{
+    OUString aString;
+    return _makeDateTimeString(DateTime());   
+}
+=====================================================================
+Found a 212 line (608 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/helper.cxx
+Starting at line 8 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/helper.cxx
+
+Reference< XInputStream > createStreamFromFile( const OUString sFile )
+{
+	const sal_Char* pcFile ;
+	OString aString ;
+
+	aString = OUStringToOString( sFile , RTL_TEXTENCODING_ASCII_US ) ;
+	pcFile = aString.getStr() ;
+	if( pcFile != NULL ) {
+		FILE *f = fopen( pcFile , "rb" );
+		Reference<  XInputStream >  r;
+	
+		if( f ) {
+			fseek( f , 0 , SEEK_END );
+			int nLength = ftell( f );
+			fseek( f , 0 , SEEK_SET );
+
+			Sequence<sal_Int8> seqIn(nLength);
+			fread( seqIn.getArray() , nLength , 1 , f );
+
+			r = Reference< XInputStream > ( new OInputStream( seqIn ) );
+			fclose( f );				
+		}
+		return r;
+	} else {
+		return NULL ;
+	}
+
+	return NULL ;
+}
+
+/*-
+ * Helper : set a output stream to a file
+ */
+Reference< XOutputStream > createStreamToFile( const OUString sFile )
+{
+	const sal_Char* pcFile ;
+	OString aString ;
+
+	aString = OUStringToOString( sFile , RTL_TEXTENCODING_ASCII_US ) ;
+	pcFile = aString.getStr() ;
+	if( pcFile != NULL )
+		return Reference< XOutputStream >( new OOutputStream( pcFile ) ) ;
+	else
+		return NULL ;
+}
+
+/*-
+ * Helper : get service manager and context
+ */
+Reference< XMultiComponentFactory > serviceManager( Reference< XComponentContext >& xContext , OUString sUnoUrl , OUString sRdbUrl ) throw( RuntimeException , Exception )
+{
+	Reference< XMultiComponentFactory > xLocalServiceManager = NULL ;
+	Reference< XComponentContext > xLocalComponentContext = NULL ;
+	Reference< XMultiComponentFactory > xUsedServiceManager = NULL ;
+	Reference< XComponentContext > xUsedComponentContext = NULL ;
+
+	OSL_ENSURE( !sUnoUrl.equalsAscii( "" ) ,
+		"serviceManager - "
+		"No uno URI specified" ) ;
+
+	OSL_ENSURE( !sRdbUrl.equalsAscii( "" ) ,
+		"serviceManager - "
+		"No rdb URI specified" ) ;
+
+	if( sUnoUrl.equalsAscii( "local" ) ) {
+		Reference< XSimpleRegistry > xSimpleRegistry = createSimpleRegistry(); 
+		OSL_ENSURE( xSimpleRegistry.is() ,
+			"serviceManager - "
+			"Cannot create simple registry" ) ;
+
+		//xSimpleRegistry->open(OUString::createFromAscii("xmlsecurity.rdb"), sal_False, sal_False);
+		xSimpleRegistry->open(sRdbUrl, sal_True, sal_False);
+		OSL_ENSURE( xSimpleRegistry->isValid() ,
+			"serviceManager - "
+			"Cannot open xml security registry rdb" ) ;
+
+		xLocalComponentContext = bootstrap_InitialComponentContext( xSimpleRegistry ) ;
+		OSL_ENSURE( xLocalComponentContext.is() ,
+			"serviceManager - "
+			"Cannot create intial component context" ) ;
+
+		xLocalServiceManager = xLocalComponentContext->getServiceManager() ;
+		OSL_ENSURE( xLocalServiceManager.is() ,
+			"serviceManager - "
+			"Cannot create intial service manager" ) ;
+
+		/*-
+		 * Because of the exception rasied from
+		 * ucbhelper/source/provider/provconf.cxx, lin 323
+		 * I do not use the content broker at present
+		 ********************************************************************
+		//init ucb
+		if( ::ucb::ContentBroker::get() == NULL ) {
+			Reference< lang::XMultiServiceFactory > xSvmg( xLocalServiceManager , UNO_QUERY ) ;
+			OSL_ENSURE( xLocalServiceManager.is() ,
+				"serviceManager - "
+				"Cannot get multi-service factory" ) ;
+
+			Sequence< Any > args( 2 ) ;
+			args[ 0 ] <<= OUString::createFromAscii( UCB_CONFIGURATION_KEY1_LOCAL ) ;
+			args[ 1 ] <<= OUString::createFromAscii( UCB_CONFIGURATION_KEY2_OFFICE ) ;
+			if( ! ::ucb::ContentBroker::initialize( xSvmg , args ) ) {
+				throw RuntimeException( OUString::createFromAscii( "Cannot inlitialize ContentBroker" ) , Reference< XInterface >() , Any() ) ;
+			}
+		}
+		********************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_xmlsecurity.hxx"
+
+		xUsedComponentContext = xLocalComponentContext ;
+		xUsedServiceManager = xLocalServiceManager ;
+	} else {
+		Reference< XComponentContext > xLocalComponentContext = defaultBootstrap_InitialComponentContext() ;
+		OSL_ENSURE( xLocalComponentContext.is() ,
+			"serviceManager - "
+			"Cannot create intial component context" ) ;
+
+		Reference< XMultiComponentFactory > xLocalServiceManager = xLocalComponentContext->getServiceManager();
+		OSL_ENSURE( xLocalServiceManager.is() ,
+			"serviceManager - "
+			"Cannot create intial service manager" ) ;
+
+		Reference< XInterface > urlResolver =
+			xLocalServiceManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.bridge.UnoUrlResolver") , xLocalComponentContext ) ;
+		OSL_ENSURE( urlResolver.is() ,
+			"serviceManager - "
+			"Cannot get service instance of \"bridge.UnoUrlResolver\"" ) ;
+
+		Reference< XUnoUrlResolver > xUnoUrlResolver( urlResolver , UNO_QUERY ) ;
+		OSL_ENSURE( xUnoUrlResolver.is() ,
+			"serviceManager - "
+			"Cannot get interface of \"XUnoUrlResolver\" from service \"bridge.UnoUrlResolver\"" ) ;
+
+		Reference< XInterface > initialObject = xUnoUrlResolver->resolve( sUnoUrl ) ;
+		OSL_ENSURE( initialObject.is() ,
+			"serviceManager - "
+			"Cannot resolve uno url" ) ;
+
+		/*-
+		 * Method 1: with Naming Service
+		 ********************************************************************
+		Reference< XNamingService > xNamingService( initialObject , UNO_QUERY ) ;
+		OSL_ENSURE( xNamingService.is() ,
+			"serviceManager - "
+			"Cannot get interface of \"XNamingService\" from URL resolver" ) ;
+
+		Reference< XInterface > serviceManager =
+			xNamingService->getRegisteredObject( OUString::createFromAscii( "StarOffice.ServiceManager" ) ) ;
+		OSL_ENSURE( serviceManager.is() ,
+			"serviceManager - "
+			"Cannot get service instance of \"StarOffice.ServiceManager\"" ) ;
+
+		xUsedServiceManager = Reference< XMultiComponentFactory >( serviceManager , UNO_QUERY );
+		OSL_ENSURE( xUsedServiceManager.is() ,
+			"serviceManager - "
+			"Cannot get interface of \"XMultiComponentFactory\" from service \"StarOffice.ServiceManager\"" ) ;
+
+		Reference< XPropertySet > xPropSet( xUsedServiceManager , UNO_QUERY ) ;
+		OSL_ENSURE( xPropSet.is() ,
+			"serviceManager - "
+			"Cannot get interface of \"XPropertySet\" from service \"StarOffice.ServiceManager\"" ) ;
+
+		xPropSet->getPropertyValue( OUString::createFromAscii( "DefaultContext" ) ) >>= xUsedComponentContext ;
+		OSL_ENSURE( xUsedComponentContext.is() ,
+			"serviceManager - "
+			"Cannot create remote component context" ) ;
+
+		********************************************************************/
+
+		/*-
+		 * Method 2: with Componnent context
+		 ********************************************************************
+		Reference< XPropertySet > xPropSet( initialObject , UNO_QUERY ) ;
+		OSL_ENSURE( xPropSet.is() ,
+			"serviceManager - "
+			"Cannot get interface of \"XPropertySet\" from URL resolver" ) ;
+
+		xPropSet->getPropertyValue( OUString::createFromAscii( "DefaultContext" ) ) >>= xUsedComponentContext ;
+		OSL_ENSURE( xUsedComponentContext.is() ,
+			"serviceManager - "
+			"Cannot create remote component context" ) ;
+
+		xUsedServiceManager = xUsedComponentContext->getServiceManager();
+		OSL_ENSURE( xUsedServiceManager.is() ,
+			"serviceManager - "
+			"Cannot create remote service manager" ) ;
+		********************************************************************/
+
+		/*-
+		 * Method 3: with Service Manager
+		 ********************************************************************/
+		xUsedServiceManager = Reference< XMultiComponentFactory >( initialObject , UNO_QUERY );
+		OSL_ENSURE( xUsedServiceManager.is() ,
+			"serviceManager - "
+			"Cannot create remote service manager" ) ;
+
+		Reference< XPropertySet > xPropSet( xUsedServiceManager , UNO_QUERY ) ;
+		OSL_ENSURE( xPropSet.is() ,
+			"serviceManager - "
+			"Cannot get interface of \"XPropertySet\" from service \"StarOffice.ServiceManager\"" ) ;
+
+		xPropSet->getPropertyValue( OUString::createFromAscii( "DefaultContext" ) ) >>= xUsedComponentContext ;
+		OSL_ENSURE( xUsedComponentContext.is() ,
+			"serviceManager - "
+			"Cannot create remote component context" ) ;
+		/********************************************************************/
+	}
+
+	xContext = xUsedComponentContext ;
+	return xUsedServiceManager ;
+}
+=====================================================================
+Found a 32 line (607 tokens) duplication in the following files: 
+Starting at line 4051 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3673 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x2082, 0x400, 10800, 3543 }
+};
+static const SvxMSDffVertPair mso_sptSeal32Vert[] =
+{
+	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
+	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
+	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
+	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
+	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
+	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
+	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
+	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
+	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
+	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
+	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
+	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
+	{ 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
+	{ 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I },
+	{ 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I },
+	{ 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I },
+	{ 0x05 MSO_I, 0x06 MSO_I }
+};
+static const mso_CustomShape msoSeal32 = 
+{
+	(SvxMSDffVertPair*)mso_sptSeal32Vert, sizeof( mso_sptSeal32Vert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	(SvxMSDffCalculationData*)mso_sptSeal32Calc, sizeof( mso_sptSeal32Calc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptDefault2500,
+	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 89 line (604 tokens) duplication in the following files: 
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+
+	Point   aCenter( aRect.Left() + nZWidth, aRect.Top() + nZHeight );
+
+	// Rand beruecksichtigen
+	aSize.Width()   -= nBorderX;
+	aSize.Height()  -= nBorderY;
+
+	// Ausgaberechteck neu setzen
+	aRect.Left() = aCenter.X() - (aSize.Width() >> 1);
+	aRect.Top()  = aCenter.Y() - (aSize.Height() >> 1);
+	aRect.SetSize( aSize );
+
+	long nMinRect = Min( aRect.GetWidth(), aRect.GetHeight() );
+
+	// Anzahl der Schritte berechnen, falls nichts uebergeben wurde
+	if ( !nStepCount )
+	{
+		long nInc = ((nMinRect >> 9) + 1) << 3;
+
+		if ( !nInc )
+			nInc = 1;
+
+		nStepCount = (USHORT)(nMinRect / nInc);
+	}
+	// minimal drei Schritte
+	long nSteps = Max( nStepCount, (USHORT)3 );
+
+	// Ausgabebegrenzungen und Schrittweite fuer jede Richtung festlegen
+	double fScanLeft   = aRect.Left();
+	double fScanTop    = aRect.Top();
+	double fScanRight  = aRect.Right();
+	double fScanBottom = aRect.Bottom();
+	double fScanInc    = (double)nMinRect / (double)nSteps * 0.5;
+
+	// Intensitaeten von Start- und Endfarbe ggf. aendern und
+	// Farbschrittweiten berechnen
+	long            nFactor;
+	const Color&    rStartCol   = rGradient.GetStartColor();
+	const Color&    rEndCol     = rGradient.GetEndColor();
+	long            nRed        = rStartCol.GetRed();
+	long            nGreen      = rStartCol.GetGreen();
+	long            nBlue       = rStartCol.GetBlue();
+	long            nEndRed     = rEndCol.GetRed();
+	long            nEndGreen   = rEndCol.GetGreen();
+	long            nEndBlue    = rEndCol.GetBlue();
+	nFactor                     = rGradient.GetStartIntensity();
+	nRed                        = (nRed   * nFactor) / 100;
+	nGreen                      = (nGreen * nFactor) / 100;
+	nBlue                       = (nBlue  * nFactor) / 100;
+	nFactor                     = rGradient.GetEndIntensity();
+	nEndRed                     = (nEndRed   * nFactor) / 100;
+	nEndGreen                   = (nEndGreen * nFactor) / 100;
+	nEndBlue                    = (nEndBlue  * nFactor) / 100;
+	long            nStepRed    = (nEndRed   - nRed)   / nSteps;
+	long            nStepGreen  = (nEndGreen - nGreen) / nSteps;
+	long            nStepBlue   = (nEndBlue  - nBlue)  / nSteps;
+	Color           aCol( (BYTE) nRed, (BYTE) nGreen, (BYTE) nBlue );
+
+	// GDI-Objekte sichern und setzen
+	aSetFillInBrushRecordHdl.Call(&aCol);
+
+	// Recteck erstmal ausgeben
+	PolyPolygon aPolyPoly( 2 );
+	Polygon     aPoly( rRect );
+
+	aPolyPoly.Insert( aPoly );
+	aPoly = Polygon( aRect );
+	aPoly.Rotate( aCenter, rGradient.GetAngle() );
+	aPolyPoly.Insert( aPoly );
+
+	PolyPolygon aTempPolyPoly = aPolyPoly;
+	aTempPolyPoly.Clip( aClipRect );
+	aDrawPolyPolyRecordHdl.Call(&aTempPolyPoly);
+
+	// Schleife, um nacheinander die Polygone/PolyPolygone auszugeben
+	for ( long i = 0; i < nSteps; i++ )
+	{
+		Color aCol( (BYTE) nRed, (BYTE) nGreen, (BYTE) nBlue );
+		aSetFillInBrushRecordHdl.Call(&aCol);
+
+		// neues Polygon berechnen
+		aRect.Left()    = (long)(fScanLeft  += fScanInc);
+		aRect.Top()     = (long)(fScanTop   += fScanInc);
+		aRect.Right()   = (long)(fScanRight -= fScanInc);
+		aRect.Bottom()  = (long)(fScanBottom-= fScanInc);
+
+		if ( (aRect.GetWidth() < 2) || (aRect.GetHeight() < 2) )
+			break;
+
+		aPoly = Polygon( aRect );
+=====================================================================
+Found a 142 line (603 tokens) duplication in the following files: 
+Starting at line 6472 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6818 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        Set_UInt16(pData, a16Bit);
+    }
+    rStrm.Write( aData, nLen );
+    return 0 == rStrm.GetError();
+}
+
+void WW8DopTypography::ReadFromMem(BYTE *&pData)
+{
+    USHORT a16Bit = Get_UShort(pData);
+    fKerningPunct = (a16Bit & 0x0001);
+    iJustification = (a16Bit & 0x0006) >>  1;
+    iLevelOfKinsoku = (a16Bit & 0x0018) >>  3;
+    f2on1 = (a16Bit & 0x0020) >>  5;
+    reserved1 = (a16Bit & 0x03C0) >>  6;
+    reserved2 = (a16Bit & 0xFC00) >>  10;
+
+    cchFollowingPunct = Get_Short(pData);
+    cchLeadingPunct = Get_Short(pData);
+
+    INT16 i;
+    for (i=0; i < nMaxFollowing; ++i)
+        rgxchFPunct[i] = Get_Short(pData);
+    for (i=0; i < nMaxLeading; ++i)
+        rgxchLPunct[i] = Get_Short(pData);
+
+    rgxchFPunct[cchFollowingPunct]=0;
+    rgxchLPunct[cchLeadingPunct]=0;
+}
+
+void WW8DopTypography::WriteToMem(BYTE *&pData) const
+{
+    USHORT a16Bit = fKerningPunct;
+    a16Bit |= (iJustification << 1) & 0x0006;
+    a16Bit |= (iLevelOfKinsoku << 3) & 0x0018;
+    a16Bit |= (f2on1 << 5) & 0x002;
+    a16Bit |= (reserved1 << 6) & 0x03C0;
+    a16Bit |= (reserved2 << 10) & 0xFC00;
+    Set_UInt16(pData,a16Bit);
+
+    Set_UInt16(pData,cchFollowingPunct);
+    Set_UInt16(pData,cchLeadingPunct);
+
+    INT16 i;
+    for (i=0; i < nMaxFollowing; ++i)
+        Set_UInt16(pData,rgxchFPunct[i]);
+    for (i=0; i < nMaxLeading; ++i)
+        Set_UInt16(pData,rgxchLPunct[i]);
+}
+
+USHORT WW8DopTypography::GetConvertedLang() const
+{
+    USHORT nLang;
+    //I have assumed peoples republic/taiwan == simplified/traditional
+
+    //This isn't a documented issue, so we might have it all wrong,
+    //i.e. i.e. whats with the powers of two ?
+
+    /*
+    #84082#
+    One example of 3 for reserved1 which was really Japanese, perhaps last bit
+    is for some other use ?, or redundant. If more examples trigger the assert
+    we might be able to figure it out.
+    */
+    switch(reserved1 & 0xE)
+    {
+        case 2:     //Japan
+            nLang = LANGUAGE_JAPANESE;
+            break;
+        case 4:     //Chinese (Peoples Republic)
+            nLang = LANGUAGE_CHINESE_SIMPLIFIED;
+            break;
+        case 6:     //Korean
+            nLang = LANGUAGE_KOREAN;
+            break;
+        case 8:     //Chinese (Taiwan)
+            nLang = LANGUAGE_CHINESE_TRADITIONAL;
+            break;
+        default:
+            ASSERT(!this, "Unknown MS Asian Typography language, report");
+            nLang = LANGUAGE_CHINESE;
+            break;
+        case 0:
+            //And here we have the possibility that it says 2, but its really
+            //a bug and only japanese level 2 has been selected after a custom
+            //version was chosen on last save!
+            nLang = LANGUAGE_JAPANESE;
+            break;
+    }
+    return nLang;
+}
+
+//-----------------------------------------
+//              Sprms
+//-----------------------------------------
+USHORT wwSprmParser::GetSprmTailLen(sal_uInt16 nId, const sal_uInt8* pSprm)
+    const
+{
+    SprmInfo aSprm = GetSprmInfo(nId);
+    USHORT nL = 0;                      // number of Bytes to read
+
+    //sprmPChgTabs
+    switch( nId )
+    {
+        case 23:
+        case 0xC615:
+            if( pSprm[1 + mnDelta] != 255 )
+                nL = pSprm[1 + mnDelta] + aSprm.nLen;
+            else
+            {
+                BYTE nDel = pSprm[2 + mnDelta];
+                BYTE nIns = pSprm[3 + mnDelta + 4 * nDel];
+
+                nL = 2 + 4 * nDel + 3 * nIns;
+            }
+            break;
+        case 0xD608:
+            nL = SVBT16ToShort( &pSprm[1 + mnDelta] );
+            break;
+        default:
+            switch (aSprm.nVari)
+            {
+                case L_FIX:
+                    nL = aSprm.nLen;        // Excl. Token
+                    break;
+                case L_VAR:
+                    // Variable 1-Byte Length?
+                    // Excl. Token + Var-Lengthbyte
+                    nL = pSprm[1 + mnDelta] + aSprm.nLen;
+                    break;
+                case L_VAR2:
+                    // Variable 2-Byte Length?
+                    // Excl. Token + Var-Lengthbyte
+                    nL = SVBT16ToShort( &pSprm[1 + mnDelta] ) + aSprm.nLen - 1;
+                    break;
+                default:
+                    ASSERT(!this, "Unknown sprm varient");
+                    break;
+            }
+            break;
+    }
+    return nL;
+}
+=====================================================================
+Found a 96 line (603 tokens) duplication in the following files: 
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+Starting at line 508 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+
+		delete p;
+		return FALSE;
+	}
+	return TRUE;
+}
+
+/************************************************************************/
+void Impl_OlePres::Write( SvStream & rStm )
+{
+	WriteClipboardFormat( rStm, FORMAT_GDIMETAFILE );
+	rStm << (INT32)(nJobLen +4);       // immer leeres TargetDevice
+	if( nJobLen )
+		rStm.Write( pJob, nJobLen );
+	rStm << (UINT32)nAspect;
+	rStm << (INT32)-1;      //L-Index immer -1
+	rStm << (INT32)nAdvFlags;
+	rStm << (INT32)0;       //Compression
+	rStm << (INT32)aSize.Width();
+	rStm << (INT32)aSize.Height();
+	ULONG nPos = rStm.Tell();
+	rStm << (INT32)0;
+
+	if( GetFormat() == FORMAT_GDIMETAFILE && pMtf )
+	{
+		// Immer auf 1/100 mm, bis Mtf-Loesung gefunden
+		// Annahme (keine Skalierung, keine Org-Verschiebung)
+		DBG_ASSERT( pMtf->GetPrefMapMode().GetScaleX() == Fraction( 1, 1 ),
+					"X-Skalierung im Mtf" )
+		DBG_ASSERT( pMtf->GetPrefMapMode().GetScaleY() == Fraction( 1, 1 ),
+					"Y-Skalierung im Mtf" )
+		DBG_ASSERT( pMtf->GetPrefMapMode().GetOrigin() == Point(),
+					"Origin-Verschiebung im Mtf" )
+		MapUnit nMU = pMtf->GetPrefMapMode().GetMapUnit();
+		if( MAP_100TH_MM != nMU )
+		{
+			Size aPrefS( pMtf->GetPrefSize() );
+			Size aS( aPrefS );
+			aS = OutputDevice::LogicToLogic( aS, nMU, MAP_100TH_MM );
+
+			pMtf->Scale( Fraction( aS.Width(), aPrefS.Width() ),
+						 Fraction( aS.Height(), aPrefS.Height() ) );
+			pMtf->SetPrefMapMode( MAP_100TH_MM );
+			pMtf->SetPrefSize( aS );
+		}
+		WriteWindowMetafileBits( rStm, *pMtf );
+	}
+	else
+	{
+		DBG_ERROR( "unknown format" )
+	}
+	ULONG nEndPos = rStm.Tell();
+	rStm.Seek( nPos );
+	rStm << (UINT32)(nEndPos - nPos - 4);
+	rStm.Seek( nEndPos );
+}
+
+Impl_OlePres * CreateCache_Impl( SotStorage * pStor )
+{
+	SotStorageStreamRef xOleObjStm =pStor->OpenSotStream( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "Ole-Object" ) ),
+														STREAM_READ | STREAM_NOCREATE );
+	if( xOleObjStm->GetError() )
+		return NULL;
+	SotStorageRef xOleObjStor = new SotStorage( *xOleObjStm );
+	if( xOleObjStor->GetError() )
+		return NULL;
+
+	String aStreamName;
+	if( xOleObjStor->IsContained( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\002OlePres000" ) ) ) )
+		aStreamName = String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\002OlePres000" ) );
+	else if( xOleObjStor->IsContained( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\1Ole10Native" ) ) ) )
+		aStreamName = String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\1Ole10Native" ) );
+
+	if( aStreamName.Len() == 0 )
+		return NULL;
+
+
+	for( USHORT i = 1; i < 10; i++ )
+	{
+		SotStorageStreamRef xStm = xOleObjStor->OpenSotStream( aStreamName,
+												STREAM_READ | STREAM_NOCREATE );
+		if( xStm->GetError() )
+			break;
+
+		xStm->SetBufferSize( 8192 );
+        Impl_OlePres * pEle = new Impl_OlePres( 0 );
+		if( pEle->Read( *xStm ) && !xStm->GetError() )
+		{
+			if( pEle->GetFormat() == FORMAT_GDIMETAFILE || pEle->GetFormat() == FORMAT_BITMAP )
+				return pEle;
+		}
+		delete pEle;
+		aStreamName = String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\002OlePres00" ) );
+		aStreamName += String( i );
+	};
+	return NULL;
+}
+=====================================================================
+Found a 105 line (603 tokens) duplication in the following files: 
+Starting at line 1574 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1658 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+static const sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Line, sal_uInt32 LineNo)
+{
+	if (pProfile->m_NoLines >= pProfile->m_MaxLines)
+	{
+		if (pProfile->m_Lines == NULL)
+		{
+			pProfile->m_MaxLines = LINES_INI;
+			pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *));
+			memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *));
+		}
+		else
+		{
+			pProfile->m_MaxLines += LINES_ADD;
+			pProfile->m_Lines = (sal_Char **)realloc(pProfile->m_Lines,
+												 pProfile->m_MaxLines * sizeof(sal_Char *));
+
+			memset(&pProfile->m_Lines[pProfile->m_NoLines],
+				0,
+				(pProfile->m_MaxLines - pProfile->m_NoLines - 1) * sizeof(sal_Char*));
+		}
+
+		if (pProfile->m_Lines == NULL)
+		{
+			pProfile->m_NoLines  = 0;
+			pProfile->m_MaxLines = 0;
+			return (NULL);
+		}
+	}
+
+	LineNo = LineNo > pProfile->m_NoLines ? pProfile->m_NoLines : LineNo;
+
+	if (LineNo < pProfile->m_NoLines)
+	{
+		sal_uInt32 i, n;
+		osl_TProfileSection* pSec;
+
+		memmove(&pProfile->m_Lines[LineNo + 1], &pProfile->m_Lines[LineNo],
+				(pProfile->m_NoLines - LineNo) * sizeof(sal_Char *));
+
+
+		/* adjust line references */
+		for (i = 0; i < pProfile->m_NoSections; i++)
+		{
+			pSec = &pProfile->m_Sections[i];
+
+			if (pSec->m_Line >= LineNo)
+				pSec->m_Line++;
+
+			for (n = 0; n < pSec->m_NoEntries; n++)
+				if (pSec->m_Entries[n].m_Line >= LineNo)
+					pSec->m_Entries[n].m_Line++;
+		}
+	}
+
+	pProfile->m_NoLines++;
+
+	pProfile->m_Lines[LineNo] = strdup(Line);
+
+	return (pProfile->m_Lines[LineNo]);
+}
+
+static void removeLine(osl_TProfileImpl* pProfile, sal_uInt32 LineNo)
+{
+	if (LineNo < pProfile->m_NoLines)
+	{
+		free(pProfile->m_Lines[LineNo]);
+		pProfile->m_Lines[LineNo]=0;
+		if (pProfile->m_NoLines - LineNo > 1)
+		{
+			sal_uInt32 i, n;
+			osl_TProfileSection* pSec;
+
+			memmove(&pProfile->m_Lines[LineNo], &pProfile->m_Lines[LineNo + 1],
+					(pProfile->m_NoLines - LineNo - 1) * sizeof(sal_Char *));
+
+			memset(&pProfile->m_Lines[pProfile->m_NoLines - 1],
+				0,
+				(pProfile->m_MaxLines - pProfile->m_NoLines) * sizeof(sal_Char*));
+
+			/* adjust line references */
+			for (i = 0; i < pProfile->m_NoSections; i++)
+			{
+				pSec = &pProfile->m_Sections[i];
+
+				if (pSec->m_Line > LineNo)
+					pSec->m_Line--;
+
+				for (n = 0; n < pSec->m_NoEntries; n++)
+					if (pSec->m_Entries[n].m_Line > LineNo)
+						pSec->m_Entries[n].m_Line--;
+			}
+		}
+		else
+		{
+			pProfile->m_Lines[LineNo] = 0;
+		}
+
+		pProfile->m_NoLines--;
+	}
+
+	return;
+}
+
+static void setEntry(osl_TProfileImpl* pProfile, osl_TProfileSection* pSection,
+					 sal_uInt32 NoEntry, sal_uInt32 Line,
+=====================================================================
+Found a 140 line (598 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/Hservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/Yservices.cxx
+
+using namespace connectivity::mysql;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "ADABAS::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+			ODriverDelegator::getImplementationName_Static(),
+			ODriverDelegator::getSupportedServiceNames_Static(), xKey);
+
+		return sal_True;
+	}
+	catch (::com::sun::star::registry::InvalidRegistryException& )
+	{
+		OSL_ENSURE(sal_False, "ODBC::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+	}
+
+	return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+					const sal_Char* pImplementationName,
+					void* pServiceManager,
+					void* /*pRegistryKey*/)
+{
+	void* pRet = 0;
+	if (pServiceManager)
+	{
+		ProviderRequest aReq(pServiceManager,pImplementationName);
+
+		aReq.CREATE_PROVIDER(
+			ODriverDelegator::getImplementationName_Static(),
+			ODriverDelegator::getSupportedServiceNames_Static(),
+			ODriverDelegator_CreateInstance, ::cppu::createSingleFactory)
+		;
+
+		if(aReq.xRet.is())
+			aReq.xRet->acquire();
+
+		pRet = aReq.getProvider();
+	}
+
+	return pRet;
+};
+=====================================================================
+Found a 140 line (598 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/Cservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/Dservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/Eservices.cxx
+
+using namespace connectivity::flat;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+			ODriver::getImplementationName_Static(),
+			ODriver::getSupportedServiceNames_Static(), xKey);
+
+		return sal_True;
+	}
+	catch (::com::sun::star::registry::InvalidRegistryException& )
+	{
+		OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+	}
+
+	return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+					const sal_Char* pImplementationName,
+					void* pServiceManager,
+					void* /*pRegistryKey*/)
+{
+	void* pRet = 0;
+	if (pServiceManager)
+	{
+		ProviderRequest aReq(pServiceManager,pImplementationName);
+
+		aReq.CREATE_PROVIDER(
+			ODriver::getImplementationName_Static(),
+			ODriver::getSupportedServiceNames_Static(),
+			ODriver_CreateInstance, ::cppu::createSingleFactory)
+		;
+
+		if(aReq.xRet.is())
+			aReq.xRet->acquire();
+
+		pRet = aReq.getProvider();
+	}
+
+	return pRet;
+};
+=====================================================================
+Found a 13 line (597 tokens) duplication in the following files: 
+Starting at line 465 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x15, 0xFF38}, {0x15, 0xFF39}, {0x15, 0xFF3A}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff58 - ff5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff60 - ff67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff68 - ff6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff70 - ff77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff78 - ff7f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff80 - ff87
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff88 - ff8f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff90 - ff97
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ff98 - ff9f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa0 - ffa7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa8 - ffaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb0 - ffb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb8 - ffbf
+=====================================================================
+Found a 68 line (597 tokens) duplication in the following files: 
+Starting at line 318 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+void Test_Impl::setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+						   sal_Int16 nShort, sal_uInt16 nUShort,
+						   sal_Int32 nLong, sal_uInt32 nULong,
+						   sal_Int64 nHyper, sal_uInt64 nUHyper,
+						   float fFloat, double fDouble,
+						   test::TestEnum eEnum, const ::rtl::OUString& rStr,
+						   const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+						   const ::com::sun::star::uno::Any& rAny,
+						   const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+						   const test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+	assign( _aData,
+			bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
+			eEnum, rStr, xTest, rAny, rSequence );
+	_aStructData = rStruct;
+}
+//__________________________________________________________________________________________________
+test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									  sal_Int16& nShort, sal_uInt16& nUShort,
+									  sal_Int32& nLong, sal_uInt32& nULong,
+									  sal_Int64& nHyper, sal_uInt64& nUHyper,
+									  float& fFloat, double& fDouble,
+									  test::TestEnum& eEnum, rtl::OUString& rStr,
+									  ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									  ::com::sun::star::uno::Any& rAny,
+									  ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									  test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+	assign( _aData,
+			bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
+			eEnum, rStr, xTest, rAny, rSequence );
+	_aStructData = rStruct;
+	return _aStructData;
+}
+//__________________________________________________________________________________________________
+test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									 sal_Int16& nShort, sal_uInt16& nUShort,
+									 sal_Int32& nLong, sal_uInt32& nULong,
+									 sal_Int64& nHyper, sal_uInt64& nUHyper,
+									 float& fFloat, double& fDouble,
+									 test::TestEnum& eEnum, rtl::OUString& rStr,
+									 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									 ::com::sun::star::uno::Any& rAny,
+									 ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									 test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+	 bBool = _aData.Bool;
+	 cChar = _aData.Char;
+	 nByte = _aData.Byte;
+	 nShort = _aData.Short;
+	 nUShort = _aData.UShort;
+	 nLong = _aData.Long;
+	 nULong = _aData.ULong;
+	 nHyper = _aData.Hyper;
+	 nUHyper = _aData.UHyper;
+	 fFloat = _aData.Float;
+	 fDouble = _aData.Double;
+	 eEnum = _aData.Enum;
+	 rStr = _aData.String;
+	 xTest = _aData.Interface;
+	 rAny = _aData.Any;
+	 rSequence = _aData.Sequence;
+	 rStruct = _aStructData;
+	 return _aStructData;
+}
+=====================================================================
+Found a 81 line (596 tokens) duplication in the following files: 
+Starting at line 2630 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3059 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+							 Xki * pMatX->GetDouble(k,j);
+						pQ->PutDouble( sumXkiXkj, j+1, i+1);
+						pQ->PutDouble( sumXkiXkj, i+1, j+1);
+					}
+				}
+			}
+		}
+		pQ->PutDouble((double)N, 0, 0);
+		if (bConstant)
+		{
+			SCSIZE S, L;
+			for (S = 0; S < M+1; S++)
+			{
+				i = S;
+				while (i < M+1 && pQ->GetDouble(i, S) == 0.0)
+					i++;
+				if (i >= M+1)
+				{
+					SetNoValue();
+					return;
+				}
+				double fVal;
+				for (L = 0; L < M+2; L++)
+				{
+					fVal = pQ->GetDouble(S, L);
+					pQ->PutDouble(pQ->GetDouble(i, L), S, L);
+					pQ->PutDouble(fVal, i, L);
+				}
+				fVal = 1.0/pQ->GetDouble(S, S);
+				for (L = 0; L < M+2; L++)
+					pQ->PutDouble(pQ->GetDouble(S, L)*fVal, S, L);
+				for (i = 0; i < M+1; i++)
+				{
+					if (i != S)
+					{
+						fVal = -pQ->GetDouble(i, S);
+						for (L = 0; L < M+2; L++)
+							pQ->PutDouble(
+								pQ->GetDouble(i,L)+fVal*pQ->GetDouble(S,L),i,L);
+					}
+				}
+			}
+		}
+		else
+		{
+			SCSIZE S, L;
+			for (S = 1; S < M+1; S++)
+			{
+				i = S;
+				while (i < M+1 && pQ->GetDouble(i, S) == 0.0)
+					i++;
+				if (i >= M+1)
+				{
+					SetNoValue();
+					return;
+				}
+				double fVal;
+				for (L = 1; L < M+2; L++)
+				{
+					fVal = pQ->GetDouble(S, L);
+					pQ->PutDouble(pQ->GetDouble(i, L), S, L);
+					pQ->PutDouble(fVal, i, L);
+				}
+				fVal = 1.0/pQ->GetDouble(S, S);
+				for (L = 1; L < M+2; L++)
+					pQ->PutDouble(pQ->GetDouble(S, L)*fVal, S, L);
+				for (i = 1; i < M+1; i++)
+				{
+					if (i != S)
+					{
+						fVal = -pQ->GetDouble(i, S);
+						for (L = 1; L < M+2; L++)
+							pQ->PutDouble(
+								pQ->GetDouble(i,L)+fVal*pQ->GetDouble(S,L),i,L);
+					}
+				}
+				pQ->PutDouble(0.0, 0, M+1);
+			}
+		}
+		for (i = 0; i < M+1; i++)
+			pResMat->PutDouble(exp(pQ->GetDouble(M-i,M+1)), i, 0);
+=====================================================================
+Found a 94 line (593 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/swdetect.cxx
+
+::rtl::OUString SAL_CALL SwFilterDetect::detect( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lDescriptor ) throw( ::com::sun::star::uno::RuntimeException )
+{
+    REFERENCE< XInputStream > xStream;
+    REFERENCE< XContent > xContent;
+    REFERENCE< XInteractionHandler > xInteraction;
+    String aURL;
+	::rtl::OUString sTemp;
+    String aTypeName;            // a name describing the type (from MediaDescriptor, usually from flat detection)
+    String aPreselectedFilterName;      // a name describing the filter to use (from MediaDescriptor, usually from UI action)
+
+	::rtl::OUString aDocumentTitle; // interesting only if set in this method
+
+	// opening as template is done when a parameter tells to do so and a template filter can be detected
+    // (otherwise no valid filter would be found) or if the detected filter is a template filter and
+	// there is no parameter that forbids to open as template
+	sal_Bool bOpenAsTemplate = sal_False;
+    sal_Bool bWasReadOnly = sal_False, bReadOnly = sal_False;
+
+	sal_Bool bRepairPackage = sal_False;
+	sal_Bool bRepairAllowed = sal_False;
+
+	// now some parameters that can already be in the array, but may be overwritten or new inserted here
+	// remember their indices in the case new values must be added to the array
+	sal_Int32 nPropertyCount = lDescriptor.getLength();
+    sal_Int32 nIndexOfFilterName = -1;
+    sal_Int32 nIndexOfInputStream = -1;
+    sal_Int32 nIndexOfContent = -1;
+    sal_Int32 nIndexOfReadOnlyFlag = -1;
+    sal_Int32 nIndexOfTemplateFlag = -1;
+    sal_Int32 nIndexOfDocumentTitle = -1;
+
+    for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
+	{
+        // extract properties
+        if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("URL")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+			aURL = sTemp;
+		}
+        else if( !aURL.Len() && lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("FileName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+			aURL = sTemp;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("TypeName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+            aTypeName = sTemp;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("FilterName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+            aPreselectedFilterName = sTemp;
+
+            // if the preselected filter name is not correct, it must be erased after detection
+            // remember index of property to get access to it later
+            nIndexOfFilterName = nProperty;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("InputStream")) )
+            nIndexOfInputStream = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("ReadOnly")) )
+            nIndexOfReadOnlyFlag = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("UCBContent")) )
+            nIndexOfContent = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("AsTemplate")) )
+		{
+			lDescriptor[nProperty].Value >>= bOpenAsTemplate;
+            nIndexOfTemplateFlag = nProperty;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("InteractionHandler")) )
+            lDescriptor[nProperty].Value >>= xInteraction;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("RapairPackage")) )
+            lDescriptor[nProperty].Value >>= bRepairPackage;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("DocumentTitle")) )
+            nIndexOfDocumentTitle = nProperty;
+	}
+
+    // can't check the type for external filters, so set the "dont" flag accordingly
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+    //SfxFilterFlags nMust = SFX_FILTER_IMPORT, nDont = SFX_FILTER_NOTINSTALLED;
+
+    SfxApplication* pApp = SFX_APP();
+    SfxAllItemSet *pSet = new SfxAllItemSet( pApp->GetPool() );
+    TransformParameters( SID_OPENDOC, lDescriptor, *pSet );
+    SFX_ITEMSET_ARG( pSet, pItem, SfxBoolItem, SID_DOC_READONLY, FALSE );
+
+    bWasReadOnly = pItem && pItem->GetValue();
+
+	const SfxFilter* pFilter = 0;
+	String aFilterName;
+	String aPrefix = String::CreateFromAscii( "private:factory/" );
+	if( aURL.Match( aPrefix ) == aPrefix.Len() )
+	{
+		if( SvtModuleOptions().IsWriter() )
+=====================================================================
+Found a 96 line (592 tokens) duplication in the following files: 
+Starting at line 972 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1069 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_uInt64 >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testFloat() {
+=====================================================================
+Found a 75 line (591 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2590 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+struct cs_info iso9_tbl[] = {
+{ 0x00, 0x00, 0x00 },
+{ 0x00, 0x01, 0x01 },
+{ 0x00, 0x02, 0x02 },
+{ 0x00, 0x03, 0x03 },
+{ 0x00, 0x04, 0x04 },
+{ 0x00, 0x05, 0x05 },
+{ 0x00, 0x06, 0x06 },
+{ 0x00, 0x07, 0x07 },
+{ 0x00, 0x08, 0x08 },
+{ 0x00, 0x09, 0x09 },
+{ 0x00, 0x0a, 0x0a },
+{ 0x00, 0x0b, 0x0b },
+{ 0x00, 0x0c, 0x0c },
+{ 0x00, 0x0d, 0x0d },
+{ 0x00, 0x0e, 0x0e },
+{ 0x00, 0x0f, 0x0f },
+{ 0x00, 0x10, 0x10 },
+{ 0x00, 0x11, 0x11 },
+{ 0x00, 0x12, 0x12 },
+{ 0x00, 0x13, 0x13 },
+{ 0x00, 0x14, 0x14 },
+{ 0x00, 0x15, 0x15 },
+{ 0x00, 0x16, 0x16 },
+{ 0x00, 0x17, 0x17 },
+{ 0x00, 0x18, 0x18 },
+{ 0x00, 0x19, 0x19 },
+{ 0x00, 0x1a, 0x1a },
+{ 0x00, 0x1b, 0x1b },
+{ 0x00, 0x1c, 0x1c },
+{ 0x00, 0x1d, 0x1d },
+{ 0x00, 0x1e, 0x1e },
+{ 0x00, 0x1f, 0x1f },
+{ 0x00, 0x20, 0x20 },
+{ 0x00, 0x21, 0x21 },
+{ 0x00, 0x22, 0x22 },
+{ 0x00, 0x23, 0x23 },
+{ 0x00, 0x24, 0x24 },
+{ 0x00, 0x25, 0x25 },
+{ 0x00, 0x26, 0x26 },
+{ 0x00, 0x27, 0x27 },
+{ 0x00, 0x28, 0x28 },
+{ 0x00, 0x29, 0x29 },
+{ 0x00, 0x2a, 0x2a },
+{ 0x00, 0x2b, 0x2b },
+{ 0x00, 0x2c, 0x2c },
+{ 0x00, 0x2d, 0x2d },
+{ 0x00, 0x2e, 0x2e },
+{ 0x00, 0x2f, 0x2f },
+{ 0x00, 0x30, 0x30 },
+{ 0x00, 0x31, 0x31 },
+{ 0x00, 0x32, 0x32 },
+{ 0x00, 0x33, 0x33 },
+{ 0x00, 0x34, 0x34 },
+{ 0x00, 0x35, 0x35 },
+{ 0x00, 0x36, 0x36 },
+{ 0x00, 0x37, 0x37 },
+{ 0x00, 0x38, 0x38 },
+{ 0x00, 0x39, 0x39 },
+{ 0x00, 0x3a, 0x3a },
+{ 0x00, 0x3b, 0x3b },
+{ 0x00, 0x3c, 0x3c },
+{ 0x00, 0x3d, 0x3d },
+{ 0x00, 0x3e, 0x3e },
+{ 0x00, 0x3f, 0x3f },
+{ 0x00, 0x40, 0x40 },
+{ 0x01, 0x61, 0x41 },
+{ 0x01, 0x62, 0x42 },
+{ 0x01, 0x63, 0x43 },
+{ 0x01, 0x64, 0x44 },
+{ 0x01, 0x65, 0x45 },
+{ 0x01, 0x66, 0x46 },
+{ 0x01, 0x67, 0x47 },
+{ 0x01, 0x68, 0x48 },
+{ 0x01, 0xfd, 0x49 },
+=====================================================================
+Found a 96 line (589 tokens) duplication in the following files: 
+Starting at line 778 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 875 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_uInt32 >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testHyper() {
+=====================================================================
+Found a 93 line (589 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2104 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        == getCppuType< css::uno::Reference< Interface2a > >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+=====================================================================
+Found a 137 line (589 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
+            = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+                        aVtableSlot.index += 1; //get then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 130 line (585 tokens) duplication in the following files: 
+Starting at line 3387 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 1610 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+					 IdlOptions* pOptions)
+	throw( CannotDumpException )
+{
+	if (typeDependencies.isGenerated(typeName))
+		return sal_True;
+
+	TypeReader reader(typeMgr.getTypeReader(typeName));
+
+	if (!reader.isValid())
+	{
+		if (typeName.equals("/"))
+			return sal_True;
+		else
+			return sal_False;
+	}
+
+	if( !checkTypeDependencies(typeMgr, typeDependencies, typeName))
+		return sal_False;
+
+	RTTypeClass typeClass = reader.getTypeClass();
+	sal_Bool 	ret = sal_False;
+	switch (typeClass)
+	{
+		case RT_TYPE_INTERFACE:
+			{
+				InterfaceType iType(reader, typeName, typeMgr, typeDependencies);
+				ret = iType.dump(pOptions);
+				if (ret) typeDependencies.setGenerated(typeName);
+				ret = iType.dumpDependedTypes(pOptions);
+			}
+			break;
+		case RT_TYPE_MODULE:
+			{
+				ModuleType mType(reader, typeName, typeMgr, typeDependencies);
+				if (mType.hasConstants())
+				{
+					ret = mType.dump(pOptions);
+					if (ret) typeDependencies.setGenerated(typeName);
+//					ret = mType.dumpDependedTypes(pOptions);
+				} else
+				{
+					typeDependencies.setGenerated(typeName);
+					ret = sal_True;
+				}
+			}
+			break;
+		case RT_TYPE_STRUCT:
+			{
+				StructureType sType(reader, typeName, typeMgr, typeDependencies);
+				ret = sType.dump(pOptions);
+				if (ret) typeDependencies.setGenerated(typeName);
+				ret = sType.dumpDependedTypes(pOptions);
+			}
+			break;
+		case RT_TYPE_ENUM:
+			{
+				EnumType enType(reader, typeName, typeMgr, typeDependencies);
+				ret = enType.dump(pOptions);
+				if (ret) typeDependencies.setGenerated(typeName);
+				ret = enType.dumpDependedTypes(pOptions);
+			}
+			break;
+		case RT_TYPE_EXCEPTION:
+			{
+				ExceptionType eType(reader, typeName, typeMgr, typeDependencies);
+				ret = eType.dump(pOptions);
+				if (ret) typeDependencies.setGenerated(typeName);
+				ret = eType.dumpDependedTypes(pOptions);
+			}
+			break;
+		case RT_TYPE_TYPEDEF:
+			{
+				TypeDefType tdType(reader, typeName, typeMgr, typeDependencies);
+				ret = tdType.dump(pOptions);
+				if (ret) typeDependencies.setGenerated(typeName);
+				ret = tdType.dumpDependedTypes(pOptions);
+			}
+			break;
+		case RT_TYPE_CONSTANTS:
+			{
+				ConstantsType cType(reader, typeName, typeMgr, typeDependencies);
+				if (cType.hasConstants())
+				{
+					ret = cType.dump(pOptions);
+					if (ret) typeDependencies.setGenerated(typeName);
+//					ret = cType.dumpDependedTypes(pOptions);
+				} else
+				{
+					typeDependencies.setGenerated(typeName);
+					ret = sal_True;
+				}
+			}
+			break;
+		case RT_TYPE_SERVICE:
+		case RT_TYPE_OBJECT:
+			ret = sal_True;
+			break;
+	}
+
+	return ret;
+}
+
+//*************************************************************************
+// scopedName
+//*************************************************************************
+OString scopedName(const OString& scope, const OString& type,
+				   sal_Bool bNoNameSpace)
+{
+    sal_Int32 nPos = type.lastIndexOf( '/' );
+	if (nPos == -1)
+		return type;
+
+	if (bNoNameSpace)
+		return type.copy(nPos+1);
+
+	OStringBuffer tmpBuf(type.getLength()*2);
+    nPos = 0;
+    do
+	{
+		tmpBuf.append("::");
+		tmpBuf.append(type.getToken(0, '/', nPos));
+	} while( nPos != -1 );
+
+	return tmpBuf.makeStringAndClear();
+}
+
+//*************************************************************************
+// shortScopedName
+//*************************************************************************
+OString scope(const OString& scope, const OString& type )
+=====================================================================
+Found a 225 line (584 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/eval.c
+Starting at line 12 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_eval.c
+
+struct value
+{
+    long val;
+    int type;
+};
+
+/* conversion types */
+#define	RELAT	1
+#define	ARITH	2
+#define	LOGIC	3
+#define	SPCL	4
+#define	SHIFT	5
+#define	UNARY	6
+
+/* operator priority, arity, and conversion type, indexed by tokentype */
+struct pri
+{
+    char pri;
+    char arity;
+    char ctype;
+}   priority[] =
+
+{
+    {
+        0, 0, 0
+    },                                  /* END */
+    {
+        0, 0, 0
+    },                                  /* UNCLASS */
+    {
+        0, 0, 0
+    },                                  /* NAME */
+    {
+        0, 0, 0
+    },                                  /* NUMBER */
+    {
+        0, 0, 0
+    },                                  /* STRING */
+    {
+        0, 0, 0
+    },                                  /* CCON */
+    {
+        0, 0, 0
+    },                                  /* NL */
+    {
+        0, 0, 0
+    },                                  /* WS */
+    {
+        0, 0, 0
+    },                                  /* DSHARP */
+    {
+        11, 2, RELAT
+    },                                  /* EQ */
+    {
+        11, 2, RELAT
+    },                                  /* NEQ */
+    {
+        12, 2, RELAT
+    },                                  /* LEQ */
+    {
+        12, 2, RELAT
+    },                                  /* GEQ */
+    {
+        13, 2, SHIFT
+    },                                  /* LSH */
+    {
+        13, 2, SHIFT
+    },                                  /* RSH */
+    {
+        7, 2, LOGIC
+    },                                  /* LAND */
+    {
+        6, 2, LOGIC
+    },                                  /* LOR */
+    {
+        0, 0, 0
+    },                                  /* PPLUS */
+    {
+        0, 0, 0
+    },                                  /* MMINUS */
+    {
+        0, 0, 0
+    },                                  /* ARROW */
+    {
+        0, 0, 0
+    },                                  /* SBRA */
+    {
+        0, 0, 0
+    },                                  /* SKET */
+    {
+        3, 0, 0
+    },                                  /* LP */
+    {
+        3, 0, 0
+    },                                  /* RP */
+    {
+        0, 0, 0
+    },                                  /* DOT */
+    {
+        10, 2, ARITH
+    },                                  /* AND */
+    {
+        15, 2, ARITH
+    },                                  /* STAR */
+    {
+        14, 2, ARITH
+    },                                  /* PLUS */
+    {
+        14, 2, ARITH
+    },                                  /* MINUS */
+    {
+        16, 1, UNARY
+    },                                  /* TILDE */
+    {
+        16, 1, UNARY
+    },                                  /* NOT */
+    {
+        15, 2, ARITH
+    },                                  /* SLASH */
+    {
+        15, 2, ARITH
+    },                                  /* PCT */
+    {
+        12, 2, RELAT
+    },                                  /* LT */
+    {
+        12, 2, RELAT
+    },                                  /* GT */
+    {
+        9, 2, ARITH
+    },                                  /* CIRC */
+    {
+        8, 2, ARITH
+    },                                  /* OR */
+    {
+        5, 2, SPCL
+    },                                  /* QUEST */
+    {
+        5, 2, SPCL
+    },                                  /* COLON */
+    {
+        0, 0, 0
+    },                                  /* ASGN */
+    {
+        4, 2, 0
+    },                                  /* COMMA */
+    {
+        0, 0, 0
+    },                                  /* SHARP */
+    {
+        0, 0, 0
+    },                                  /* SEMIC */
+    {
+        0, 0, 0
+    },                                  /* CBRA */
+    {
+        0, 0, 0
+    },                                  /* CKET */
+    {
+        0, 0, 0
+    },                                  /* ASPLUS */
+    {
+        0, 0, 0
+    },                                  /* ASMINUS */
+    {
+        0, 0, 0
+    },                                  /* ASSTAR */
+    {
+        0, 0, 0
+    },                                  /* ASSLASH */
+    {
+        0, 0, 0
+    },                                  /* ASPCT */
+    {
+        0, 0, 0
+    },                                  /* ASCIRC */
+    {
+        0, 0, 0
+    },                                  /* ASLSH */
+    {
+        0, 0, 0
+    },                                  /* ASRSH */
+    {
+        0, 0, 0
+    },                                  /* ASOR */
+    {
+        0, 0, 0
+    },                                  /* ASAND */
+    {
+        0, 0, 0
+    },                                  /* ELLIPS */
+    {
+        0, 0, 0
+    },                                  /* DSHARP1 */
+    {
+        0, 0, 0
+    },                                  /* NAME1 */
+    {
+        0, 0, 0
+    },                                  /* NAME2 */
+    {
+        16, 1, UNARY
+    },                                  /* DEFINED */
+    {
+        16, 0, UNARY
+    },                                  /* UMINUS */
+    {
+        16, 1, UNARY
+    },                                  /* ARCHITECTURE */
+};
+
+int evalop(struct pri);
+struct value tokval(Token *);
+struct value vals[NSTAK], *vp;
+enum toktype ops[NSTAK], *op;
+
+/*
+ * Evaluate an #if #elif #ifdef #ifndef line.  trp->tp points to the keyword.
+ */
+long
+    eval(Tokenrow * trp, int kw)
+{
+    Token *tp;
+    Nlist *np;
+    int ntok, rnd;
+=====================================================================
+Found a 73 line (578 tokens) duplication in the following files: 
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/alpha.cxx
+Starting at line 1050 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap.cxx
+
+							for( long nSrcY = aRectSrc.Top(); nSrcY < nSrcEndY; nSrcY++, nDstY++ )
+								for( long nSrcX = aRectSrc.Left(), nDstX = aRectDst.Left(); nSrcX < nSrcEndX; nSrcX++, nDstX++ )
+									pWriteAcc->SetPixel( nDstY, nDstX, pReadAcc->GetPixel( nSrcY, nSrcX ) );
+
+						ReleaseAccess( pWriteAcc );
+						bRet = ( nWidth > 0L ) && ( nHeight > 0L );
+					}
+
+					pSrc->ReleaseAccess( pReadAcc );
+				}
+			}
+		}
+		else
+		{
+			Rectangle aRectSrc( rRectSrc );
+
+			aRectSrc.Intersection( Rectangle( Point(), aSizePix ) );
+
+			if( !aRectSrc.IsEmpty() && ( aRectSrc != aRectDst ) )
+			{
+				BitmapWriteAccess*	pWriteAcc = AcquireWriteAccess();
+
+				if( pWriteAcc )
+				{
+					const long	nWidth = Min( aRectSrc.GetWidth(), aRectDst.GetWidth() );
+					const long	nHeight = Min( aRectSrc.GetHeight(), aRectDst.GetHeight() );
+					const long	nSrcX = aRectSrc.Left();
+					const long	nSrcY = aRectSrc.Top();
+					const long	nSrcEndX1 = nSrcX + nWidth - 1L;
+					const long	nSrcEndY1 = nSrcY + nHeight - 1L;
+					const long	nDstX = aRectDst.Left();
+					const long	nDstY = aRectDst.Top();
+					const long	nDstEndX1 = nDstX + nWidth - 1L;
+					const long	nDstEndY1 = nDstY + nHeight - 1L;
+
+					if( ( nDstX <= nSrcX ) && ( nDstY <= nSrcY ) )
+					{
+						for( long nY = nSrcY, nYN = nDstY; nY <= nSrcEndY1; nY++, nYN++ )
+							for( long nX = nSrcX, nXN = nDstX; nX <= nSrcEndX1; nX++, nXN++ )
+								pWriteAcc->SetPixel( nYN, nXN, pWriteAcc->GetPixel( nY, nX ) );
+					}
+					else if( ( nDstX <= nSrcX ) && ( nDstY >= nSrcY ) )
+					{
+						for( long nY = nSrcEndY1, nYN = nDstEndY1; nY >= nSrcY; nY--, nYN-- )
+							for( long nX = nSrcX, nXN = nDstX; nX <= nSrcEndX1; nX++, nXN++ )
+								pWriteAcc->SetPixel( nYN, nXN, pWriteAcc->GetPixel( nY, nX ) );
+					}
+					else if( ( nDstX >= nSrcX ) && ( nDstY <= nSrcY ) )
+					{
+						for( long nY = nSrcY, nYN = nDstY; nY <= nSrcEndY1; nY++, nYN++ )
+							for( long nX = nSrcEndX1, nXN = nDstEndX1; nX >= nSrcX; nX--, nXN-- )
+								pWriteAcc->SetPixel( nYN, nXN, pWriteAcc->GetPixel( nY, nX ) );
+					}
+					else
+					{
+						for( long nY = nSrcEndY1, nYN = nDstEndY1; nY >= nSrcY; nY--, nYN-- )
+							for( long nX = nSrcEndX1, nXN = nDstEndX1; nX >= nSrcX; nX--, nXN-- )
+								pWriteAcc->SetPixel( nYN, nXN, pWriteAcc->GetPixel( nY, nX ) );
+					}
+
+					ReleaseAccess( pWriteAcc );
+					bRet = TRUE;
+				}
+			}
+		}
+	}
+
+	return bRet;
+}
+
+// ------------------------------------------------------------------
+
+BOOL Bitmap::Expand( ULONG nDX, ULONG nDY, const Color* pInitColor )
+=====================================================================
+Found a 133 line (577 tokens) duplication in the following files: 
+Starting at line 2872 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zformat.cxx
+Starting at line 3194 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zformat.cxx
+
+                OutString += ImpIntToString( nIx, nSec, 2 );
+            break;
+            case NF_KEY_M:                  // M
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_MONTH, nNatNum );
+            break;
+            case NF_KEY_MM:                 // MM
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_MONTH, nNatNum );
+            break;
+            case NF_KEY_MMM:                // MMM
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_MONTH_NAME, nNatNum );
+            break;
+            case NF_KEY_MMMM:               // MMMM
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_MONTH_NAME, nNatNum );
+            break;
+            case NF_KEY_MMMMM:              // MMMMM
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_MONTH_NAME, nNatNum ).GetChar(0);
+            break;
+            case NF_KEY_Q:                  // Q
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_QUARTER, nNatNum );
+            break;
+            case NF_KEY_QQ:                 // QQ
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_QUARTER, nNatNum );
+            break;
+            case NF_KEY_D:                  // D
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_DAY, nNatNum );
+            break;
+            case NF_KEY_DD:                 // DD
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_DAY, nNatNum );
+            break;
+            case NF_KEY_DDD:                // DDD
+            {
+                if ( bOtherCalendar )
+                    SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
+                if ( bOtherCalendar )
+                    SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
+            }
+            break;
+            case NF_KEY_DDDD:               // DDDD
+            {
+                if ( bOtherCalendar )
+                    SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+                if ( bOtherCalendar )
+                    SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
+            }
+            break;
+            case NF_KEY_YY:                 // YY
+            {
+                if ( bOtherCalendar )
+                    SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_YEAR, nNatNum );
+                if ( bOtherCalendar )
+                    SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
+            }
+            break;
+            case NF_KEY_YYYY:               // YYYY
+            {
+                if ( bOtherCalendar )
+                    SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_YEAR, nNatNum );
+                if ( bOtherCalendar )
+                    SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
+            }
+            break;
+            case NF_KEY_EC:                 // E
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_YEAR, nNatNum );
+            break;
+            case NF_KEY_EEC:                // EE
+            case NF_KEY_R:                  // R
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_YEAR, nNatNum );
+            break;
+            case NF_KEY_NN:                 // NN
+            case NF_KEY_AAA:                // AAA
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
+            break;
+            case NF_KEY_NNN:                // NNN
+            case NF_KEY_AAAA:               // AAAA
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+            break;
+            case NF_KEY_NNNN:               // NNNN
+            {
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+                OutString += rLoc().getLongDateDayOfWeekSep();
+            }
+            break;
+            case NF_KEY_WW :                // WW
+            {
+                sal_Int16 nVal = rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR );
+                OutString += ImpIntToString( nIx, nVal );
+            }
+            break;
+            case NF_KEY_G:                  // G
+                ImpAppendEraG( OutString, rCal, nNatNum );
+            break;
+            case NF_KEY_GG:                 // GG
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::SHORT_ERA, nNatNum );
+            break;
+            case NF_KEY_GGG:                // GGG
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_ERA, nNatNum );
+            break;
+            case NF_KEY_RR:                 // RR => GGGEE
+                OutString += rCal.getDisplayString(
+                        CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum );
+            break;
+        }
+    }
+    if ( aOrgCalendar.Len() )
+        rCal.loadCalendar( aOrgCalendar, rLoc().getLocale() );  // restore calendar
+    return bRes;
+}
+
+BOOL SvNumberformat::ImpGetNumberOutput(double fNumber,
+=====================================================================
+Found a 106 line (576 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+            pJobSetup->mnPaperBin = 0;
+    }
+	
+
+	// copy the whole context
+	if( pJobSetup->mpDriverData )
+		rtl_freeMemory( pJobSetup->mpDriverData );
+
+	int nBytes;
+	void* pBuffer = NULL;
+	if( rData.getStreamBuffer( pBuffer, nBytes ) )
+	{
+		pJobSetup->mnDriverDataLen = nBytes;
+		pJobSetup->mpDriverData = (BYTE*)pBuffer;
+	}
+	else
+	{
+		pJobSetup->mnDriverDataLen = 0;
+		pJobSetup->mpDriverData = NULL;
+	}
+}
+
+static bool passFileToCommandLine( const String& rFilename, const String& rCommandLine, bool bRemoveFile = true )
+{
+	bool bSuccess = false;
+
+	rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
+	ByteString aCmdLine( rCommandLine, aEncoding );
+	ByteString aFilename( rFilename, aEncoding );
+
+	bool bPipe = aCmdLine.Search( "(TMP)" ) != STRING_NOTFOUND ? false : true;
+
+	// setup command line for exec
+	if( ! bPipe )
+		while( aCmdLine.SearchAndReplace( "(TMP)", aFilename ) != STRING_NOTFOUND )
+			;
+
+#if OSL_DEBUG_LEVEL > 1
+	fprintf( stderr, "%s commandline: \"%s\"\n",
+			 bPipe ? "piping to" : "executing",
+			 aCmdLine.GetBuffer() );
+    struct stat aStat;
+    if( stat( aFilename.GetBuffer(), &aStat ) )
+        fprintf( stderr, "stat( %s ) failed\n", aFilename.GetBuffer() );
+    fprintf( stderr, "Tmp file %s has modes: %o\n", aFilename.GetBuffer(), aStat.st_mode );
+#endif
+	const char* argv[4];
+	if( ! ( argv[ 0 ] = getenv( "SHELL" ) ) )
+		argv[ 0 ] = "/bin/sh";
+	argv[ 1 ] = "-c";
+	argv[ 2 ] = aCmdLine.GetBuffer();
+	argv[ 3 ] = 0;
+
+	bool bHavePipes = false;
+	int pid, fd[2];
+
+	if( bPipe )
+		bHavePipes = pipe( fd ) ? false : true;
+	if( ( pid = fork() ) > 0 )
+	{
+		if( bPipe && bHavePipes )
+		{
+			close( fd[0] );
+			char aBuffer[ 2048 ];
+			FILE* fp = fopen( aFilename.GetBuffer(), "r" );
+			while( fp && ! feof( fp ) )
+			{
+				int nBytes = fread( aBuffer, 1, sizeof( aBuffer ), fp );
+				if( nBytes )
+					write( fd[ 1 ], aBuffer, nBytes );
+			}
+			fclose( fp );
+			close( fd[ 1 ] );
+		}
+		int status = 0;
+		waitpid( pid, &status, 0 );
+		if( ! status )
+			bSuccess = true;
+	}
+	else if( ! pid )
+	{
+		if( bPipe && bHavePipes )
+		{
+			close( fd[1] );
+			if( fd[0] != STDIN_FILENO ) // not probable, but who knows :)
+				dup2( fd[0], STDIN_FILENO );
+		}
+		execv( argv[0], const_cast<char**>(argv) );
+		fprintf( stderr, "failed to execute \"%s\"\n", aCmdLine.GetBuffer() );
+		_exit( 1 );
+	}
+	else
+		fprintf( stderr, "failed to fork\n" );
+
+	// clean up the mess
+    if( bRemoveFile )
+        unlink( aFilename.GetBuffer() );
+
+	return bSuccess;
+}
+
+static bool sendAFax( const String& rFaxNumber, const String& rFileName, const String& rCommand )
+{
+    std::list< OUString > aFaxNumbers;
+
+	if( ! rFaxNumber.Len() )
+=====================================================================
+Found a 94 line (575 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svppspgraphics.cxx
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/pspgraphics.cxx
+
+    DBG_ASSERT( !bSet, "Error: PrinterGfx::SetXORMode() not implemented" );
+}
+
+void PspGraphics::drawPixel( long nX, long nY )
+{
+    m_pPrinterGfx->DrawPixel (Point(nX, nY));
+}
+
+void PspGraphics::drawPixel( long nX, long nY, SalColor nSalColor )
+{
+    psp::PrinterColor aColor (SALCOLOR_RED   (nSalColor),
+                              SALCOLOR_GREEN (nSalColor),
+                              SALCOLOR_BLUE  (nSalColor));
+    m_pPrinterGfx->DrawPixel (Point(nX, nY), aColor);
+}
+
+void PspGraphics::drawLine( long nX1, long nY1, long nX2, long nY2 )
+{
+    m_pPrinterGfx->DrawLine (Point(nX1, nY1), Point(nX2, nY2));
+}
+
+void PspGraphics::drawRect( long nX, long nY, long nDX, long nDY )
+{
+    m_pPrinterGfx->DrawRect (Rectangle(Point(nX, nY), Size(nDX, nDY)));
+}
+
+void PspGraphics::drawPolyLine( ULONG nPoints, const SalPoint *pPtAry )
+{
+    m_pPrinterGfx->DrawPolyLine (nPoints, (Point*)pPtAry);
+}
+
+void PspGraphics::drawPolygon( ULONG nPoints, const SalPoint* pPtAry )
+{
+	// Point must be equal to SalPoint! see vcl/inc/salgtype.hxx
+    m_pPrinterGfx->DrawPolygon (nPoints, (Point*)pPtAry);
+}
+
+void PspGraphics::drawPolyPolygon( sal_uInt32			nPoly,
+								   const sal_uInt32   *pPoints,
+								   PCONSTSALPOINT  *pPtAry )
+{
+    m_pPrinterGfx->DrawPolyPolygon (nPoly, pPoints, (const Point**)pPtAry);
+}
+
+sal_Bool PspGraphics::drawPolyLineBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry )
+{
+    m_pPrinterGfx->DrawPolyLineBezier (nPoints, (Point*)pPtAry, pFlgAry);
+    return sal_True;
+}
+
+sal_Bool PspGraphics::drawPolygonBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry )
+{
+    m_pPrinterGfx->DrawPolygonBezier (nPoints, (Point*)pPtAry, pFlgAry);
+    return sal_True;
+}
+
+sal_Bool PspGraphics::drawPolyPolygonBezier( sal_uInt32 nPoly,
+                                             const sal_uInt32* pPoints,
+                                             const SalPoint* const* pPtAry,
+                                             const BYTE* const* pFlgAry )
+{
+	// Point must be equal to SalPoint! see vcl/inc/salgtype.hxx
+    m_pPrinterGfx->DrawPolyPolygonBezier (nPoly, pPoints, (Point**)pPtAry, (BYTE**)pFlgAry);
+    return sal_True;
+}
+
+void PspGraphics::invert( ULONG,
+                          const SalPoint*,
+                          SalInvert )
+{
+    DBG_ASSERT( 0, "Error: PrinterGfx::Invert() not implemented" );
+}
+BOOL PspGraphics::drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize )
+{
+    return m_pPrinterGfx->DrawEPS( Rectangle( Point( nX, nY ), Size( nWidth, nHeight ) ), pPtr, nSize );
+}
+
+void PspGraphics::copyBits( const SalTwoRect*,
+                            SalGraphics* )
+{
+    DBG_ERROR( "Error: PrinterGfx::CopyBits() not implemented" );
+}
+
+void PspGraphics::copyArea ( long,long,long,long,long,long,USHORT )
+{
+    DBG_ERROR( "Error: PrinterGfx::CopyArea() not implemented" );
+}
+
+void PspGraphics::drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap )
+{
+    Rectangle aSrc (Point(pPosAry->mnSrcX, pPosAry->mnSrcY),
+                    Size(pPosAry->mnSrcWidth, pPosAry->mnSrcHeight));
+    Rectangle aDst (Point(pPosAry->mnDestX, pPosAry->mnDestY),
+                    Size(pPosAry->mnDestWidth, pPosAry->mnDestHeight));
+=====================================================================
+Found a 93 line (574 tokens) duplication in the following files: 
+Starting at line 2101 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2217 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    css::uno::Any a = css::uno::Any(css::uno::Reference< Interface2a >());
+    CPPUNIT_ASSERT(
+        a.getValueType()
+        == getCppuType< css::uno::Reference< Interface2a > >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > b(new Impl1);
+=====================================================================
+Found a 142 line (571 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sprophelp.cxx
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/ntprophelp.cxx
+
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::linguistic2;
+using namespace linguistic;
+
+
+#define A2OU(x)	::rtl::OUString::createFromAscii( x )
+
+///////////////////////////////////////////////////////////////////////////
+
+	
+PropertyChgHelper::PropertyChgHelper(
+		const Reference< XInterface > & rxSource,
+		Reference< XPropertySet > &rxPropSet,
+		const char *pPropNames[], USHORT nPropCount ) :
+    aPropNames          (nPropCount),
+    xMyEvtObj           (rxSource),
+    aLngSvcEvtListeners (GetLinguMutex()),
+    xPropSet            (rxPropSet)
+{
+	OUString *pName = aPropNames.getArray();
+	for (INT32 i = 0;  i < nPropCount;  ++i)
+	{
+		pName[i] = A2OU( pPropNames[i] );
+	}
+}
+
+
+/*PropertyChgHelper::PropertyChgHelper( const PropertyChgHelper &rHelper ) :
+	aLngSvcEvtListeners	(GetLinguMutex())
+{
+	xPropSet	= rHelper.xPropSet;
+	aPropNames	= rHelper.aPropNames;
+	AddAsPropListener();
+	
+	xMyEvtObj	= rHelper.xMyEvtObj;
+} */
+
+
+PropertyChgHelper::~PropertyChgHelper()
+{	
+}
+
+
+void PropertyChgHelper::AddAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->addPropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+void PropertyChgHelper::RemoveAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->removePropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+		 
+
+void PropertyChgHelper::LaunchEvent( const LinguServiceEvent &rEvt )
+{
+	cppu::OInterfaceIteratorHelper aIt( aLngSvcEvtListeners );
+	while (aIt.hasMoreElements())
+	{
+		Reference< XLinguServiceEventListener > xRef( aIt.next(), UNO_QUERY );
+		if (xRef.is())
+			xRef->processLinguServiceEvent( rEvt );
+	}
+}
+
+
+void SAL_CALL PropertyChgHelper::disposing( const EventObject& rSource ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	if (rSource.Source == xPropSet)
+	{
+		RemoveAsPropListener();
+		xPropSet = NULL;
+		aPropNames.realloc( 0 );
+	}
+}
+    
+	
+sal_Bool SAL_CALL 
+	PropertyChgHelper::addLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.addInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL 
+	PropertyChgHelper::removeLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.removeInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+static const char *aSP[] =
+{
+	UPN_IS_GERMAN_PRE_REFORM,
+	UPN_IS_IGNORE_CONTROL_CHARACTERS,
+	UPN_IS_USE_DICTIONARY_LIST,
+=====================================================================
+Found a 99 line (570 tokens) duplication in the following files: 
+Starting at line 360 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+    UIElementType& rElementTypeData = m_aUIElements[nElementType];
+
+    Reference< XStorage > xElementTypeStorage = rElementTypeData.xStorage;
+    if ( xElementTypeStorage.is() && aUIElementData.aName.getLength() )
+    {
+        try
+        {
+            Reference< XStream > xStream = xElementTypeStorage->openStreamElement( aUIElementData.aName, ElementModes::READ );
+            Reference< XInputStream > xInputStream = xStream->getInputStream();
+
+            if ( xInputStream.is() )
+            {
+                switch ( nElementType )
+                {
+                    case ::com::sun::star::ui::UIElementType::UNKNOWN:
+                    break;
+
+                    case ::com::sun::star::ui::UIElementType::MENUBAR:
+                    {
+                        try
+                        {
+                            MenuConfiguration aMenuCfg( m_xServiceManager );
+                            Reference< XIndexAccess > xContainer( aMenuCfg.CreateMenuBarConfigurationFromXML( xInputStream ));
+                            RootItemContainer* pRootItemContainer = RootItemContainer::GetImplementation( xContainer );
+                            if ( pRootItemContainer )
+                                aUIElementData.xSettings = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( pRootItemContainer, sal_True ) ), UNO_QUERY );
+                            else
+                                aUIElementData.xSettings = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( xContainer, sal_True ) ), UNO_QUERY );
+                            return;
+                        }
+                        catch ( ::com::sun::star::lang::WrappedTargetException& )
+                        {
+                        }
+                    }
+                    break;
+
+                    case ::com::sun::star::ui::UIElementType::POPUPMENU:
+                    {
+                        break;
+                    }
+
+                    case ::com::sun::star::ui::UIElementType::TOOLBAR:
+                    {
+                        try
+                        {
+                            Reference< XIndexContainer > xIndexContainer( static_cast< OWeakObject * >( new RootItemContainer() ), UNO_QUERY );
+                            ToolBoxConfiguration::LoadToolBox( m_xServiceManager, xInputStream, xIndexContainer );
+                            RootItemContainer* pRootItemContainer = RootItemContainer::GetImplementation( xIndexContainer );
+                            aUIElementData.xSettings = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( pRootItemContainer, sal_True ) ), UNO_QUERY );
+                            return;
+                        }
+                        catch ( ::com::sun::star::lang::WrappedTargetException& )
+                        {
+                        }
+
+                        break;
+                    }
+
+                    case ::com::sun::star::ui::UIElementType::STATUSBAR:
+                    {
+                        try
+                        {
+                            Reference< XIndexContainer > xIndexContainer( static_cast< OWeakObject * >( new RootItemContainer() ), UNO_QUERY );
+                            StatusBarConfiguration::LoadStatusBar( m_xServiceManager, xInputStream, xIndexContainer );
+                            RootItemContainer* pRootItemContainer = RootItemContainer::GetImplementation( xIndexContainer );
+                            aUIElementData.xSettings = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( pRootItemContainer, sal_True ) ), UNO_QUERY );
+                            return;
+                        }
+                        catch ( ::com::sun::star::lang::WrappedTargetException& )
+                        {
+                        }
+                        
+                        break;
+                    }
+
+                    case ::com::sun::star::ui::UIElementType::FLOATINGWINDOW:
+                    {
+                        break;
+                    }
+                }
+            }
+        }
+        catch ( ::com::sun::star::embed::InvalidStorageException& )
+        {
+        }
+		catch (	::com::sun::star::lang::IllegalArgumentException& )
+        {
+        }
+        catch ( ::com::sun::star::io::IOException& )
+        {
+        }
+        catch ( ::com::sun::star::embed::StorageWrappedTargetException& )
+        {
+        }
+    }
+
+    // At least we provide an empty settings container!
+    aUIElementData.xSettings = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer()), UNO_QUERY );
+}
+=====================================================================
+Found a 127 line (568 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 128 line (566 tokens) duplication in the following files: 
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+        TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+    }
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+            {
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 20 line (565 tokens) duplication in the following files: 
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0,// 1690 - 169f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16a0 - 16af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16b0 - 16bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16c0 - 16cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16d0 - 16df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16e0 - 16ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 11 line (563 tokens) duplication in the following files: 
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 562 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+/* A */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* B */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* C */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* D */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* E */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* F */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* G */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* H */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* I */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* J */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* K */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+=====================================================================
+Found a 66 line (562 tokens) duplication in the following files: 
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+
+			::cppu::extractInterface(xTable,xNames->getByName(*pTabBegin));
+			aRow[3] = new ORowSetValueDecorator(*pTabBegin);
+
+			Reference< XNameAccess> xColumns = xTable->getColumns();
+			if(!xColumns.is())
+				throw SQLException();
+
+			Sequence< ::rtl::OUString> aColNames(xColumns->getElementNames());
+
+			const ::rtl::OUString* pBegin = aColNames.getConstArray();
+			const ::rtl::OUString* pEnd = pBegin + aColNames.getLength();
+			Reference< XPropertySet> xColumn;
+			for(sal_Int32 i=1;pBegin != pEnd;++pBegin,++i)
+			{
+				if(match(columnNamePattern,*pBegin,'\0'))
+				{
+					aRow[4] = new ORowSetValueDecorator(*pBegin);
+
+					::cppu::extractInterface(xColumn,xColumns->getByName(*pBegin));
+					OSL_ENSURE(xColumn.is(),"Columns contains a column who isn't a fastpropertyset!");
+					aRow[5] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE))));
+					aRow[6] = new ORowSetValueDecorator(getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME))));
+					aRow[7] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION))));
+					aRow[9] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE))));
+					aRow[11] = new ORowSetValueDecorator(getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE))));
+					aRow[13] = new ORowSetValueDecorator(getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE))));
+
+					switch((sal_Int32)aRow[5]->getValue())
+					{
+					case DataType::CHAR:
+					case DataType::VARCHAR:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)254);
+						break;
+					case DataType::LONGVARCHAR:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)65535);
+						break;
+					default:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)0);
+					}
+					aRow[17] = new ORowSetValueDecorator(i);
+					switch(sal_Int32(aRow[11]->getValue()))
+					{
+					case ColumnValue::NO_NULLS:
+						aRow[18]  = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("NO"));
+						break;
+					case ColumnValue::NULLABLE:
+						aRow[18]  = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES"));
+						break;
+					default:
+						aRow[18]  = new ORowSetValueDecorator(::rtl::OUString());
+					}
+					aRows.push_back(aRow);
+				}
+			}
+		}
+	}
+
+	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet();
+	Reference< XResultSet > xRef = pResult;
+	pResult->setColumnsMap();
+	pResult->setRows(aRows);
+
+	return xRef;
+}
+// -------------------------------------------------------------------------
+Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getVersionColumns(
+=====================================================================
+Found a 128 line (561 tokens) duplication in the following files: 
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	free( pCppStackStart );
+#endif
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 129 line (560 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/ostring/rtl_OString2.cxx
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/oustring/rtl_OUString2.cxx
+
+                double nValueToDouble = suValue.toDouble();
+                //t_print("result data is %e\n", nValueToDouble);
+
+                bool bEqualResult = is_double_equal(nValueToDouble, nValueATOF);
+                CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
+            }
+        
+        void toDouble_test(rtl::OString const& _sValue)
+            {
+                toDouble_test_impl(_sValue);
+
+                // test also the negativ part.
+                rtl::OString sNegativValue("-");
+                sNegativValue += _sValue;
+                toDouble_test_impl(sNegativValue);
+            }
+        
+        // insert your test code here.
+        void toDouble_selftest()
+            {
+                t_print("Start selftest:\n");
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.01) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.0001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.00001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.000001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000001) == false);                
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000001) == false);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000001) == false);
+                // we check til 15 values after comma
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000000001) == true);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000000001) == true);
+                CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000000001) == true);
+                t_print("Selftest done.\n");
+            }
+        
+        void toDouble_test_3()
+            {
+                rtl::OString sValue("3");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_3_5()
+            {
+                rtl::OString sValue("3.5");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_3_0625()
+            {
+                rtl::OString sValue("3.0625");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_pi()
+            {
+                // value from http://www.angio.net/pi/digits/50.txt
+                rtl::OString sValue("3.141592653589793238462643383279502884197169399375");
+                toDouble_test(sValue);
+            }
+        
+        void toDouble_test_1()
+            {
+                rtl::OString sValue("1");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_10()
+            {
+                rtl::OString sValue("10");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_100()
+            {
+                rtl::OString sValue("100");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_1000()
+            {
+                rtl::OString sValue("1000");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_10000()
+            {
+                rtl::OString sValue("10000");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_1e99()
+            {
+                rtl::OString sValue("1e99");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_1e_n99()
+            {
+                rtl::OString sValue("1e-99");
+                toDouble_test(sValue);
+            }
+        void toDouble_test_1e308()
+            {
+                rtl::OString sValue("1e308");
+                toDouble_test(sValue);
+            }
+        
+        // Change the following lines only, if you add, remove or rename 
+        // member functions of the current class, 
+        // because these macros are need by auto register mechanism.
+        
+        CPPUNIT_TEST_SUITE(toDouble);
+        CPPUNIT_TEST(toDouble_selftest);
+        
+        CPPUNIT_TEST(toDouble_test_3);
+        CPPUNIT_TEST(toDouble_test_3_5);
+        CPPUNIT_TEST(toDouble_test_3_0625);
+        CPPUNIT_TEST(toDouble_test_pi);
+        CPPUNIT_TEST(toDouble_test_1);
+        CPPUNIT_TEST(toDouble_test_10);
+        CPPUNIT_TEST(toDouble_test_100);
+        CPPUNIT_TEST(toDouble_test_1000);
+        CPPUNIT_TEST(toDouble_test_10000);
+        CPPUNIT_TEST(toDouble_test_1e99);
+        CPPUNIT_TEST(toDouble_test_1e_n99);
+        CPPUNIT_TEST(toDouble_test_1e308);
+        CPPUNIT_TEST_SUITE_END();
+    }; // class toDouble
+
+// -----------------------------------------------------------------------------
+// - toFloat (tests)
+// -----------------------------------------------------------------------------
+    class toFloat : public CppUnit::TestFixture
+=====================================================================
+Found a 138 line (560 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hprophelp.cxx
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sprophelp.cxx
+
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::linguistic2;
+using namespace linguistic;
+
+
+#define A2OU(x)	::rtl::OUString::createFromAscii( x )
+
+///////////////////////////////////////////////////////////////////////////
+
+	
+PropertyChgHelper::PropertyChgHelper(
+		const Reference< XInterface > & rxSource,
+		Reference< XPropertySet > &rxPropSet,
+		const char *pPropNames[], USHORT nPropCount ) :
+    aPropNames          (nPropCount),
+    xMyEvtObj           (rxSource),
+    aLngSvcEvtListeners (GetLinguMutex()),
+    xPropSet            (rxPropSet)
+{
+	OUString *pName = aPropNames.getArray();
+	for (INT32 i = 0;  i < nPropCount;  ++i)
+	{
+		pName[i] = A2OU( pPropNames[i] );
+	}
+}
+
+
+/*PropertyChgHelper::PropertyChgHelper( const PropertyChgHelper &rHelper ) :
+	aLngSvcEvtListeners	(GetLinguMutex())
+{
+	xPropSet	= rHelper.xPropSet;
+	aPropNames	= rHelper.aPropNames;
+	AddAsPropListener();
+	
+	xMyEvtObj	= rHelper.xMyEvtObj;
+} */
+
+
+PropertyChgHelper::~PropertyChgHelper()
+{	
+}
+
+
+void PropertyChgHelper::AddAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->addPropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+void PropertyChgHelper::RemoveAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->removePropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+		 
+
+void PropertyChgHelper::LaunchEvent( const LinguServiceEvent &rEvt )
+{
+	cppu::OInterfaceIteratorHelper aIt( aLngSvcEvtListeners );
+	while (aIt.hasMoreElements())
+	{
+		Reference< XLinguServiceEventListener > xRef( aIt.next(), UNO_QUERY );
+		if (xRef.is())
+			xRef->processLinguServiceEvent( rEvt );
+	}
+}
+
+
+void SAL_CALL PropertyChgHelper::disposing( const EventObject& rSource ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	if (rSource.Source == xPropSet)
+	{
+		RemoveAsPropListener();
+		xPropSet = NULL;
+		aPropNames.realloc( 0 );
+	}
+}
+    
+	
+sal_Bool SAL_CALL 
+	PropertyChgHelper::addLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.addInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL 
+	PropertyChgHelper::removeLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.removeInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+static const char *aSP[] =
+=====================================================================
+Found a 126 line (560 tokens) duplication in the following files: 
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+}
+}
+
+//==================================================================================================
+
+namespace bridges { namespace cpp_uno { namespace shared {
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 77 line (556 tokens) duplication in the following files: 
+Starting at line 2632 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3447 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+						pQ->PutDouble(pQ->GetDouble(j+1, i+1), i+1, j+1);
+					}
+				}
+			}
+		}
+		pQ->PutDouble((double)N, 0, 0);
+		if (bConstant)
+		{
+			SCSIZE S, L;
+			for (S = 0; S < M+1; S++)
+			{
+				i = S;
+				while (i < M+1 && pQ->GetDouble(i, S) == 0.0)
+					i++;
+				if (i >= M+1)
+				{
+					SetNoValue();
+					return;
+				}
+				double fVal;
+				for (L = 0; L < M+2; L++)
+				{
+					fVal = pQ->GetDouble(S, L);
+					pQ->PutDouble(pQ->GetDouble(i, L), S, L);
+					pQ->PutDouble(fVal, i, L);
+				}
+				fVal = 1.0/pQ->GetDouble(S, S);
+				for (L = 0; L < M+2; L++)
+					pQ->PutDouble(pQ->GetDouble(S, L)*fVal, S, L);
+				for (i = 0; i < M+1; i++)
+				{
+					if (i != S)
+					{
+						fVal = -pQ->GetDouble(i, S);
+						for (L = 0; L < M+2; L++)
+							pQ->PutDouble(
+								pQ->GetDouble(i,L)+fVal*pQ->GetDouble(S,L),i,L);
+					}
+				}
+			}
+		}
+		else
+		{
+			SCSIZE S, L;
+			for (S = 1; S < M+1; S++)
+			{
+				i = S;
+				while (i < M+1 && pQ->GetDouble(i, S) == 0.0)
+					i++;
+				if (i >= M+1)
+				{
+					SetNoValue();
+					return;
+				}
+				double fVal;
+				for (L = 1; L < M+2; L++)
+				{
+					fVal = pQ->GetDouble(S, L);
+					pQ->PutDouble(pQ->GetDouble(i, L), S, L);
+					pQ->PutDouble(fVal, i, L);
+				}
+				fVal = 1.0/pQ->GetDouble(S, S);
+				for (L = 1; L < M+2; L++)
+					pQ->PutDouble(pQ->GetDouble(S, L)*fVal, S, L);
+				for (i = 1; i < M+1; i++)
+				{
+					if (i != S)
+					{
+						fVal = -pQ->GetDouble(i, S);
+						for (L = 1; L < M+2; L++)
+							pQ->PutDouble(
+								pQ->GetDouble(i,L)+fVal*pQ->GetDouble(S,L),i,L);
+					}
+				}
+				pQ->PutDouble(0.0, 0, M+1);
+			}
+		}
+=====================================================================
+Found a 105 line (556 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 674 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+sal_Bool ModuleImageManager::implts_storeUserImages(
+    ImageType nImageType,
+    const uno::Reference< XStorage >& xUserImageStorage,
+    const uno::Reference< XStorage >& xUserBitmapsStorage )
+{
+    ResetableGuard aGuard( m_aLock );
+
+    if ( m_bModified )
+    {
+        ImageList* pImageList = implts_getUserImageList( nImageType );
+        if ( pImageList->GetImageCount() > 0 )
+        {
+            ImageListsDescriptor aUserImageListInfo;
+            aUserImageListInfo.pImageList = new ImageListDescriptor;
+
+            ImageListItemDescriptor* pList = new ImageListItemDescriptor;
+            aUserImageListInfo.pImageList->Insert( pList, 0 );
+
+            pList->pImageItemList = new ImageItemListDescriptor;
+            for ( USHORT i=0; i < pImageList->GetImageCount(); i++ )
+            {
+                ImageItemDescriptor* pItem = new ::framework::ImageItemDescriptor;
+
+                pItem->nIndex = i;
+                pItem->aCommandURL = pImageList->GetImageName( i );
+                pList->pImageItemList->Insert( pItem, pList->pImageItemList->Count() );
+            }
+
+            pList->aURL = String::CreateFromAscii("Bitmaps/");
+            pList->aURL += String::CreateFromAscii( BITMAP_FILE_NAMES[nImageType] );
+
+            uno::Reference< XTransactedObject > xTransaction;
+            uno::Reference< XOutputStream >     xOutputStream;
+            uno::Reference< XStream > xStream = xUserImageStorage->openStreamElement( rtl::OUString::createFromAscii( IMAGELIST_XML_FILE[nImageType] ),
+                                                                                      ElementModes::WRITE|ElementModes::TRUNCATE );
+            if ( xStream.is() )
+            {
+                uno::Reference< XStream > xBitmapStream =
+                    xUserBitmapsStorage->openStreamElement( rtl::OUString::createFromAscii( BITMAP_FILE_NAMES[nImageType] ),
+                                                            ElementModes::WRITE|ElementModes::TRUNCATE );
+                if ( xBitmapStream.is() )
+                {
+                    SvStream* pSvStream = utl::UcbStreamHelper::CreateStream( xBitmapStream );
+                    {
+                        vcl::PNGWriter aPngWriter( pImageList->GetAsHorizontalStrip() );
+                        aPngWriter.Write( *pSvStream );
+                    }
+                    delete pSvStream;
+
+                    // Commit user bitmaps storage
+                    xTransaction = uno::Reference< XTransactedObject >( xUserBitmapsStorage, UNO_QUERY );
+					if ( xTransaction.is() )
+                    	xTransaction->commit();
+                }
+
+                xOutputStream = xStream->getOutputStream();
+                if ( xOutputStream.is() )
+                    ImagesConfiguration::StoreImages( m_xServiceManager, xOutputStream, aUserImageListInfo );
+
+                // Commit user image storage
+                xTransaction = uno::Reference< XTransactedObject >( xUserImageStorage, UNO_QUERY );
+				if ( xTransaction.is() )
+                	xTransaction->commit();
+            }
+
+            return sal_True;
+        }
+        else
+        {
+            // Remove the streams from the storage, if we have no data. We have to catch
+            // the NoSuchElementException as it can be possible that there is no stream at all!
+            try
+            {
+                xUserImageStorage->removeElement( rtl::OUString::createFromAscii( IMAGELIST_XML_FILE[nImageType] ));
+            }
+            catch ( ::com::sun::star::container::NoSuchElementException& )
+            {
+            }
+
+            try
+            {
+                xUserBitmapsStorage->removeElement( rtl::OUString::createFromAscii( BITMAP_FILE_NAMES[nImageType] ));
+            }
+            catch ( ::com::sun::star::container::NoSuchElementException& )
+            {
+            }
+
+            uno::Reference< XTransactedObject > xTransaction;
+            
+            // Commit user image storage
+            xTransaction = uno::Reference< XTransactedObject >( xUserImageStorage, UNO_QUERY );
+			if ( xTransaction.is() )
+                xTransaction->commit();
+
+            // Commit user bitmaps storage
+            xTransaction = uno::Reference< XTransactedObject >( xUserBitmapsStorage, UNO_QUERY );
+			if ( xTransaction.is() )
+                xTransaction->commit();
+            
+            return sal_True;
+        }
+    }
+
+    return sal_False;
+}
+=====================================================================
+Found a 102 line (554 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/signer.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/verifier.cxx
+
+		n_pCertStore = argv[3] ;
+		n_hStoreHandle = CertOpenSystemStore( NULL, n_pCertStore ) ;
+		if( n_hStoreHandle == NULL ) {
+			fprintf( stderr, "Can not open the system cert store %s\n", n_pCertStore ) ;
+			return 1 ;
+		}
+	} else {
+		n_pCertStore = NULL ;
+		n_hStoreHandle = NULL ;
+	}
+	xmlSecMSCryptoAppInit( n_pCertStore ) ;
+
+	//Load XML document
+	doc = xmlParseFile( argv[1] ) ;
+	if( doc == NULL || xmlDocGetRootElement( doc ) == NULL ) {
+		fprintf( stderr , "### Cannot load template xml document!\n" ) ;
+		goto done ;
+	}
+
+	//Find the signature template
+	tplNode = xmlSecFindNode( xmlDocGetRootElement( doc ), xmlSecNodeSignature, xmlSecDSigNs ) ;
+	if( tplNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature template!\n" ) ;
+		goto done ;
+	}
+
+	//Find the element with ID attribute
+	tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", ( xmlChar* )"http://openoffice.org/2000/office" ) ;
+	if( tarNode == NULL ) {
+		tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", NULL ) ;
+	}
+										
+	//Find the "id" attrbute in the element
+	if( tarNode != NULL ) {
+		if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"id" ) ) != NULL ) {
+			//NULL
+		} else if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"Id" ) ) != NULL ) {
+			//NULL
+		} else {
+			idAttr = NULL ;
+		}
+	}
+										
+	//Add ID to DOM
+	if( idAttr != NULL ) {
+		idValue = xmlNodeListGetString( tarNode->doc, idAttr->children, 1 ) ;
+		if( idValue == NULL ) {
+			fprintf( stderr , "### the ID value is NULL!\n" ) ;
+			goto done ;
+		}
+										
+		if( xmlAddID( NULL, doc, idValue, idAttr ) == NULL ) {
+			fprintf( stderr , "### Can not add the ID value!\n" ) ;
+			goto done ;
+		}
+	}
+
+	//Reference handler
+	//Find the signature reference
+	tarNode = xmlSecFindNode( tplNode, xmlSecNodeReference, xmlSecDSigNs ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature reference!\n" ) ;
+		goto done ;
+	}
+
+	//Find the "URI" attrbute in the reference
+	uriAttr = xmlHasProp( tarNode, ( xmlChar* )"URI" ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find URI of the reference!\n" ) ;
+		goto done ;
+	}
+
+	//Get the "URI" attrbute value
+	uriValue = xmlNodeListGetString( tarNode->doc, uriAttr->children, 1 ) ;
+	if( uriValue == NULL ) {
+		fprintf( stderr , "### the URI value is NULL!\n" ) ;
+		goto done ;
+	}
+
+	if( strchr( ( const char* )uriValue, '/' ) != NULL && strchr( ( const char* )uriValue, '#' ) == NULL ) {
+		fprintf( stdout , "### Find a stream URI [%s]\n", uriValue ) ;
+	//	uri = new ::rtl::OUString( ( const sal_Unicode* )uriValue ) ;
+		uri = new ::rtl::OUString( ( const sal_Char* )uriValue, xmlStrlen( uriValue ), RTL_TEXTENCODING_ASCII_US ) ;
+	}
+
+	if( uri != NULL ) {
+		fprintf( stdout , "### Find the URI [%s]\n", OUStringToOString( *uri , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		Reference< XInputStream > xStream = createStreamFromFile( *uri ) ;
+		if( !xStream.is() ) {
+			fprintf( stderr , "### Can not get the URI stream!\n" ) ;
+			goto done ;
+		}
+
+		xUriBinding = new OUriBinding( *uri, xStream ) ;
+	}
+
+
+	try {
+		Reference< XMultiComponentFactory > xManager = NULL ;
+		Reference< XComponentContext > xContext = NULL ;
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ),  OUString::createFromAscii( argv[2] ) ) ;
+=====================================================================
+Found a 97 line (553 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+Starting at line 996 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+
+StarWriter::StarWriter( GenericInformationList *pStandLst, ByteString &rVersion,         
+	BOOL bLocal, const char *pSourceRoot )
+/*****************************************************************************/
+{
+	ByteString sPath( rVersion );
+	String sSrcRoot;
+	if ( pSourceRoot )
+		sSrcRoot = String::CreateFromAscii( pSourceRoot );
+
+#ifdef UNX
+	sPath += "/settings/UNXSOLARLIST";
+#else
+	sPath += "/settings/SOLARLIST";
+#endif
+	GenericInformation *pInfo = pStandLst->GetInfo( sPath, TRUE );
+
+	if( pInfo && pInfo->GetValue().Len()) {
+		ByteString sFile( pInfo->GetValue());
+		if ( bLocal ) {
+			IniManager aIniManager;
+			aIniManager.ToLocal( sFile );
+		}
+		String sFileName( sFile, RTL_TEXTENCODING_ASCII_US );
+		nStarMode = STAR_MODE_SINGLE_PARSE;
+		Read( sFileName );
+	}
+	else {
+		SolarFileList *pFileList = new SolarFileList();
+
+		sPath = rVersion;
+		sPath += "/drives";
+
+		GenericInformation *pInfo2 = pStandLst->GetInfo( sPath, TRUE );
+		if ( pInfo2 && pInfo2->GetSubList())  {
+			GenericInformationList *pDrives = pInfo2->GetSubList();
+			for ( ULONG i = 0; i < pDrives->Count(); i++ ) {
+				GenericInformation *pDrive = pDrives->GetObject( i );
+				if ( pDrive ) {
+					DirEntry aEntry;
+					BOOL bOk = FALSE;
+					if ( sSrcRoot.Len()) {
+						aEntry = DirEntry( sSrcRoot );
+						bOk = TRUE;
+					}
+					else {
+#ifdef UNX
+						sPath = "UnixVolume";
+						GenericInformation *pUnixVolume = pDrive->GetSubInfo( sPath );
+						if ( pUnixVolume ) {
+							String sRoot( pUnixVolume->GetValue(), RTL_TEXTENCODING_ASCII_US );
+							aEntry = DirEntry( sRoot );
+							bOk = TRUE;
+				 		}
+#else
+						bOk = TRUE;
+						String sRoot( *pDrive, RTL_TEXTENCODING_ASCII_US );
+						sRoot += String::CreateFromAscii( "\\" );
+						aEntry = DirEntry( sRoot );
+#endif
+					}
+					if ( bOk ) {
+						sPath = "projects";
+						GenericInformation *pProjectsKey = pDrive->GetSubInfo( sPath, TRUE );
+						if ( pProjectsKey ) {
+							if ( !sSrcRoot.Len()) {
+								sPath = rVersion;
+								sPath += "/settings/PATH";
+								GenericInformation *pPath = pStandLst->GetInfo( sPath, TRUE );
+								if( pPath ) {
+									ByteString sAddPath( pPath->GetValue());
+#ifdef UNX
+									sAddPath.SearchAndReplaceAll( "\\", "/" );
+#else
+									sAddPath.SearchAndReplaceAll( "/", "\\" );
+#endif
+									String ssAddPath( sAddPath, RTL_TEXTENCODING_ASCII_US );
+									aEntry += DirEntry( ssAddPath );
+								}
+							}
+							GenericInformationList *pProjects = pProjectsKey->GetSubList();
+							if ( pProjects ) {
+								String sPrjDir( String::CreateFromAscii( "prj" ));
+								String sSolarFile( String::CreateFromAscii( "build.lst" ));
+
+								for ( ULONG j = 0; j < pProjects->Count(); j++ ) {
+									ByteString sProject( *pProjects->GetObject( j ));
+									String ssProject( sProject, RTL_TEXTENCODING_ASCII_US );
+
+									DirEntry aPrjEntry( aEntry );
+
+									aPrjEntry += DirEntry( ssProject );
+									aPrjEntry += DirEntry( sPrjDir );
+									aPrjEntry += DirEntry( sSolarFile );
+
+									pFileList->Insert( new String( aPrjEntry.GetFull()), LIST_APPEND );										   
+
+									ByteString sFile( aPrjEntry.GetFull(), RTL_TEXTENCODING_ASCII_US );
+=====================================================================
+Found a 19 line (553 tokens) duplication in the following files: 
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18f0 - 18ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f00 - 1f0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f10 - 1f1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f20 - 1f2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f30 - 1f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f40 - 1f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f50 - 1f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f60 - 1f6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f70 - 1f7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f80 - 1f8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f90 - 1f9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1fa0 - 1faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,// 1fb0 - 1fbf
+=====================================================================
+Found a 89 line (552 tokens) duplication in the following files: 
+Starting at line 484 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 585 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b) && b == 1);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+    }
+    {
+        sal_Unicode b = '2';
+        if (boost::is_same< sal_Unicode, sal_uInt16 >::value) {
+            CPPUNIT_ASSERT_MESSAGE("@sal_Unicode", (a >>= b) && b == 1);
+        } else {
+            CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+        }
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testUnsignedShort() {
+=====================================================================
+Found a 119 line (551 tokens) duplication in the following files: 
+Starting at line 4422 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4632 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    else if (p->nSprmsLen)  //Normal
+    {
+        // Length of actual sprm
+        pRes->nMemLen = maSprmParser.GetSprmSize(pRes->nSprmId, pRes->pMemPos);
+    }
+}
+
+void WW8PLCFMan::GetSprmEnd( short nIdx, WW8PLCFManResult* pRes ) const
+{
+    memset( pRes, 0, sizeof( WW8PLCFManResult ) );
+
+    register const WW8PLCFxDesc* p = &aD[nIdx];
+
+    if (!(p->pIdStk->empty()))
+        pRes->nSprmId = p->pIdStk->top();       // get end position
+    else
+    {
+        ASSERT( !this, "No Id on the Stack" );
+        pRes->nSprmId = 0;
+    }
+}
+
+void WW8PLCFMan::GetNoSprmStart( short nIdx, WW8PLCFManResult* pRes ) const
+{
+    register const WW8PLCFxDesc* p = &aD[nIdx];
+
+    pRes->nCpPos = p->nStartPos;
+    pRes->nMemLen = p->nSprmsLen;
+    pRes->nCp2OrIdx = p->nCp2OrIdx;
+
+    if( p == pFld )
+        pRes->nSprmId = eFLD;
+    else if( p == pFtn )
+        pRes->nSprmId = eFTN;
+    else if( p == pEdn )
+        pRes->nSprmId = eEDN;
+    else if( p == pBkm )
+        pRes->nSprmId = eBKN;
+    else if( p == pAnd )
+        pRes->nSprmId = eAND;
+    else if( p == pPcd )
+    {
+        //We slave the piece table attributes to the piece table, the piece
+        //table attribute iterator contains the sprms for this piece.
+        GetSprmStart( nIdx+1, pRes );
+    }
+    else
+        pRes->nSprmId = 0;          // default: not found
+}
+
+void WW8PLCFMan::GetNoSprmEnd( short nIdx, WW8PLCFManResult* pRes ) const
+{
+    pRes->nMemLen = -1;     // Ende-Kennzeichen
+
+    if( &aD[nIdx] == pBkm )
+        pRes->nSprmId = eBKN;
+    else if( &aD[nIdx] == pPcd )
+    {
+        //We slave the piece table attributes to the piece table, the piece
+        //table attribute iterator contains the sprms for this piece.
+        GetSprmEnd( nIdx+1, pRes );
+    }
+    else
+        pRes->nSprmId = 0;
+}
+
+bool WW8PLCFMan::TransferOpenSprms(std::stack<USHORT> &rStack)
+{
+    for (int i = 0; i < nPLCF; ++i)
+    {
+        WW8PLCFxDesc* p = &aD[i];
+        if (!p || !p->pIdStk)
+            continue;
+        while (!p->pIdStk->empty())
+        {
+            rStack.push(p->pIdStk->top());
+            p->pIdStk->pop();
+        }
+    }
+    return rStack.empty();
+}
+
+void WW8PLCFMan::AdvSprm(short nIdx, bool bStart)
+{
+    WW8PLCFxDesc* p = &aD[nIdx];    // Sprm-Klasse(!) ermitteln
+
+    p->bFirstSprm = false;
+    if( bStart )
+    {
+        USHORT nLastId = GetId(p);
+        p->pIdStk->push(nLastId);   // merke Id fuer Attribut-Ende
+
+        if( p->nSprmsLen )
+        {   /*
+                Pruefe, ob noch Sprm(s) abzuarbeiten sind
+            */
+            if( p->pMemPos )
+            {
+                // Length of last sprm
+                USHORT nSprmL = maSprmParser.GetSprmSize(nLastId, p->pMemPos);
+
+                // Gesamtlaenge Sprms um SprmLaenge verringern
+                p->nSprmsLen -= nSprmL;
+
+                // Pos des evtl. naechsten Sprm
+                if (p->nSprmsLen < maSprmParser.MinSprmLen())
+                {
+                    // sicherheitshalber auf Null setzen, da Enden folgen!
+                    p->pMemPos = 0;
+                    p->nSprmsLen = 0;
+                }
+                else
+                    p->pMemPos += nSprmL;
+            }
+            else
+                p->nSprmsLen = 0;
+        }
+        if (p->nSprmsLen < maSprmParser.MinSprmLen())
+            p->nStartPos = WW8_CP_MAX;    // es folgen Enden
+=====================================================================
+Found a 87 line (551 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/smdetect.cxx
+
+::rtl::OUString SAL_CALL SmFilterDetect::detect( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lDescriptor ) throw( ::com::sun::star::uno::RuntimeException )
+{
+    REFERENCE< XInputStream > xStream;
+    REFERENCE< XContent > xContent;
+    REFERENCE< XInteractionHandler > xInteraction;
+    String aURL;
+	::rtl::OUString sTemp;
+    String aTypeName;            // a name describing the type (from MediaDescriptor, usually from flat detection)
+    String aPreselectedFilterName;      // a name describing the filter to use (from MediaDescriptor, usually from UI action)
+
+	::rtl::OUString aDocumentTitle; // interesting only if set in this method
+
+	// opening as template is done when a parameter tells to do so and a template filter can be detected
+    // (otherwise no valid filter would be found) or if the detected filter is a template filter and
+	// there is no parameter that forbids to open as template
+	sal_Bool bOpenAsTemplate = sal_False;
+    sal_Bool bWasReadOnly = sal_False, bReadOnly = sal_False;
+
+	sal_Bool bRepairPackage = sal_False;
+	sal_Bool bRepairAllowed = sal_False;
+
+	// now some parameters that can already be in the array, but may be overwritten or new inserted here
+	// remember their indices in the case new values must be added to the array
+	sal_Int32 nPropertyCount = lDescriptor.getLength();
+    sal_Int32 nIndexOfFilterName = -1;
+    sal_Int32 nIndexOfInputStream = -1;
+    sal_Int32 nIndexOfContent = -1;
+    sal_Int32 nIndexOfReadOnlyFlag = -1;
+    sal_Int32 nIndexOfTemplateFlag = -1;
+    sal_Int32 nIndexOfDocumentTitle = -1;
+
+    for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
+	{
+        // extract properties
+        if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("URL")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+			aURL = sTemp;
+		}
+        else if( !aURL.Len() && lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("FileName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+			aURL = sTemp;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("TypeName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+            aTypeName = sTemp;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("FilterName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+            aPreselectedFilterName = sTemp;
+
+            // if the preselected filter name is not correct, it must be erased after detection
+            // remember index of property to get access to it later
+            nIndexOfFilterName = nProperty;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("InputStream")) )
+            nIndexOfInputStream = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("ReadOnly")) )
+            nIndexOfReadOnlyFlag = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("UCBContent")) )
+            nIndexOfContent = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("AsTemplate")) )
+		{
+			lDescriptor[nProperty].Value >>= bOpenAsTemplate;
+            nIndexOfTemplateFlag = nProperty;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("InteractionHandler")) )
+            lDescriptor[nProperty].Value >>= xInteraction;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("RapairPackage")) )
+            lDescriptor[nProperty].Value >>= bRepairPackage;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("DocumentTitle")) )
+            nIndexOfDocumentTitle = nProperty;
+	}
+
+    // can't check the type for external filters, so set the "dont" flag accordingly
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+    //SfxFilterFlags nMust = SFX_FILTER_IMPORT, nDont = SFX_FILTER_NOTINSTALLED;
+
+    SfxApplication* pApp = SFX_APP();
+    SfxAllItemSet *pSet = new SfxAllItemSet( pApp->GetPool() );
+    TransformParameters( SID_OPENDOC, lDescriptor, *pSet );
+    SFX_ITEMSET_ARG( pSet, pItem, SfxBoolItem, SID_DOC_READONLY, FALSE );
+
+    bWasReadOnly = pItem && pItem->GetValue();
+=====================================================================
+Found a 19 line (551 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18f0 - 18ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f00 - 1f0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f10 - 1f1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f20 - 1f2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f30 - 1f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f40 - 1f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f50 - 1f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f60 - 1f6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f70 - 1f7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f80 - 1f8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f90 - 1f9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1fa0 - 1faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,// 1fb0 - 1fbf
+=====================================================================
+Found a 117 line (551 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			    break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+                        *pPT++='I';
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+  
+        // terminate the signature string
+        *pPT++='X';
+        *pPT=0;
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
+           = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * > (pUnoI);
+=====================================================================
+Found a 87 line (545 tokens) duplication in the following files: 
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1223 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::insertImages( ::sal_Int16 nImageType, const Sequence< ::rtl::OUString >& aCommandURLSequence, const Sequence< uno::Reference< XGraphic > >& aGraphicSequence )
+throw ( ::com::sun::star::container::ElementExistException,
+        ::com::sun::star::lang::IllegalArgumentException,
+        ::com::sun::star::lang::IllegalAccessException,
+        ::com::sun::star::uno::RuntimeException)
+{
+    CmdToXGraphicNameAccess* pInsertedImages( 0 );
+    CmdToXGraphicNameAccess* pReplacedImages( 0 );
+
+    {
+        ResetableGuard aLock( m_aLock );
+
+        /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        if (( aCommandURLSequence.getLength() != aGraphicSequence.getLength() ) ||
+            (( nImageType < 0 ) || ( nImageType > MAX_IMAGETYPE_VALUE )))
+            throw IllegalArgumentException();
+
+        if ( m_bReadOnly )
+            throw IllegalAccessException();
+
+        sal_Int16 nIndex = implts_convertImageTypeToIndex( nImageType );
+        ImageList* pImageList = implts_getUserImageList( ImageType( nIndex ));
+
+        uno::Reference< XGraphic > xGraphic;
+        for ( sal_Int32 i = 0; i < aCommandURLSequence.getLength(); i++ )
+        {
+            if ( !implts_checkAndScaleGraphic( xGraphic, aGraphicSequence[i], nIndex ))
+                continue;
+
+            USHORT nPos = pImageList->GetImagePos( aCommandURLSequence[i] );
+            if ( nPos == IMAGELIST_IMAGE_NOTFOUND )
+            {
+                pImageList->AddImage( aCommandURLSequence[i], xGraphic );
+                if ( !pInsertedImages )
+                    pInsertedImages = new CmdToXGraphicNameAccess();
+                pInsertedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+            else
+            {
+                pImageList->ReplaceImage( aCommandURLSequence[i], xGraphic );
+                if ( !pReplacedImages )
+                    pReplacedImages = new CmdToXGraphicNameAccess();
+                pReplacedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+        }
+        
+        if (( pInsertedImages != 0 ) || ( pReplacedImages != 0 ))
+        {
+            m_bModified = sal_True;
+            m_bUserImageListModified[nIndex] = true;
+        }
+    }
+
+    // Notify listeners
+    uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+
+    if ( pInsertedImages != 0 )
+    {
+        ConfigurationEvent aInsertEvent;
+        aInsertEvent.aInfo           = uno::makeAny( nImageType );
+        aInsertEvent.Accessor        = uno::makeAny( xThis );
+        aInsertEvent.Source          = xIfac;
+        aInsertEvent.ResourceURL     = m_aResourceString;
+        aInsertEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                        static_cast< OWeakObject *>( pInsertedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aInsertEvent, NotifyOp_Insert );
+    }
+    if ( pReplacedImages != 0 )
+    {
+        ConfigurationEvent aReplaceEvent;
+        aReplaceEvent.aInfo           = uno::makeAny( nImageType );
+        aReplaceEvent.Accessor        = uno::makeAny( xThis );
+        aReplaceEvent.Source          = xIfac;
+        aReplaceEvent.ResourceURL     = m_aResourceString;
+        aReplaceEvent.ReplacedElement = Any();
+        aReplaceEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                         static_cast< OWeakObject *>( pReplacedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aReplaceEvent, NotifyOp_Replace );
+    }
+}
+
+// XUIConfiguration
+void SAL_CALL ModuleImageManager::addConfigurationListener( const uno::Reference< ::com::sun::star::ui::XUIConfigurationListener >& xListener ) 
+=====================================================================
+Found a 89 line (545 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1986 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< Exception2a >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+=====================================================================
+Found a 54 line (544 tokens) duplication in the following files: 
+Starting at line 1560 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 1662 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_ImageButton::Export(SvStorageRef &rObj,
+	const uno::Reference< beans::XPropertySet > &rPropSet,
+	const awt::Size &rSize)
+{
+	static sal_uInt8 __READONLY_DATA aCompObj[] = {
+			0x01, 0x00, 0xFE, 0xFF, 0x03, 0x0A, 0x00, 0x00,
+			0xFF, 0xFF, 0xFF, 0xFF, 0x40, 0x32, 0x05, 0xD7,
+			0x69, 0xCE, 0xCD, 0x11, 0xA7, 0x77, 0x00, 0xDD,
+			0x01, 0x14, 0x3C, 0x57, 0x22, 0x00, 0x00, 0x00,
+			0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66,
+			0x74, 0x20, 0x46, 0x6F, 0x72, 0x6d, 0x73, 0x20,
+			0x32, 0x2e, 0x30, 0x20, 0x43, 0x6F, 0x6D, 0x6D,
+			0x61, 0x6E, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6F,
+			0x6E, 0x00, 0x10, 0x00, 0x00, 0x00, 0x45, 0x6D,
+			0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x4F,
+			0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x16, 0x00,
+			0x00, 0x00, 0x46, 0x6F, 0x72, 0x6D, 0x73, 0x2E,
+			0x43, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x42,
+			0x75, 0x74, 0x74, 0x6F, 0x6E, 0x2E, 0x31, 0x00,
+			0xF4, 0x39, 0xB2, 0x71, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+		0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x6D, 0x00,
+		0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x42, 0x00,
+		0x75, 0x00, 0x74, 0x00, 0x74, 0x00, 0x6F, 0x00,
+		0x6E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00
+	};
+
+	{
+	SvStorageStreamRef xStor2( rObj->OpenSotStream( C2S("\3OCXNAME")));
+	xStor2->Write(aOCXNAME,sizeof(aOCXNAME));
+	DBG_ASSERT((xStor2.Is() && (SVSTREAM_OK == xStor2->GetError())),"damn");
+	}
+
+	SvStorageStreamRef xContents( rObj->OpenSotStream( C2S("contents")));
+	return WriteContents(xContents,rPropSet,rSize);
+}
+
+
+sal_Bool OCX_OptionButton::Import(com::sun::star::uno::Reference<
+=====================================================================
+Found a 92 line (542 tokens) duplication in the following files: 
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+        span_image_resample_rgba(alloc_type& alloc,
+                                 const rendering_buffer& src, 
+                                 const color_type& back_color,
+                                 interpolator_type& inter,
+                                 const image_filter_lut& filter) :
+            base_type(alloc, src, back_color, inter, filter)
+        {}
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            long_type fg[4];
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                int rx;
+                int ry;
+                int rx_inv = image_subpixel_size;
+                int ry_inv = image_subpixel_size;
+                base_type::interpolator().coordinates(&x,  &y);
+                base_type::interpolator().local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr = y >> image_subpixel_shift;
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                               ry_inv) >> 
+                                   image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + (x_lr << 2);
+=====================================================================
+Found a 226 line (542 tokens) duplication in the following files: 
+Starting at line 1227 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1268 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    return nCpStart + (nStartPos - nFcStart) / nUnicodeFactor;
+}
+
+//-----------------------------------------
+//      Hilfsroutinen fuer alle
+//-----------------------------------------
+
+short WW8_BRC::DetermineBorderProperties(bool bVer67, short *pSpace,
+    BYTE *pCol, short *pIdx) const
+{
+    /*
+        Word does not factor the width of the border into the width/height
+        stored in the information for graphic/table/object widths, so we need
+        to figure out this extra width here and utilize the returned size in
+        our calculations
+    */
+    short nMSTotalWidth;
+    BYTE nCol;
+    short nIdx,nSpace;
+    if( bVer67 )
+    {
+        UINT16 aBrc1 = SVBT16ToShort(aBits1);
+        nCol = ((aBrc1 >> 6) & 0x1f);   // aBor.ico
+        nSpace = (aBrc1 & 0xF800) >> 11;
+
+        nMSTotalWidth = aBrc1 & 0x07;
+        nIdx = (aBrc1 & 0x18) >> 3;
+        //Dashed/Dotted unsets double/thick
+        if (nMSTotalWidth > 5)
+        {
+            nMSTotalWidth=1;
+            nIdx = 1;
+        }
+        nMSTotalWidth *= nIdx;
+        nMSTotalWidth *= 15;
+    }
+    else
+    {
+        nIdx = aBits1[1];
+        nCol = aBits2[0];   // aBor.ico
+        nSpace = aBits2[1] & 0x1F; //space between line and object
+
+        //Specification in 8ths of a point, 1 Point = 20 Twips, so by 2.5
+        nMSTotalWidth  = aBits1[ 0 ] * 20 / 8;
+
+        //Figure out the real size of the border according to word
+        switch (nIdx)
+        {
+            //Note that codes over 25 are undocumented, and I can't create
+            //these 4 here in the wild.
+            default:
+            case 2:
+            case 4:
+            case 5:
+            case 22:
+                DBG_WARNING("Can't create these from the menus, please report");
+            case 1:
+            case 6:
+            case 7:
+            case 8:
+            case 9:
+            case 23:    //Only 3pt in the menus, but honours the size setting.
+                break;
+            case 3:
+                /*
+                double line is three times the width of an ordinary line,
+                except for the smallest 1/4 point size which appears to have
+                exactly the same total border width as a 1/2 point size
+                ordinary line, i.e. twice the nominal line width
+                */
+                nMSTotalWidth = (nMSTotalWidth == 5) ?
+                    nMSTotalWidth*2 : nMSTotalWidth*3;
+                break;
+            case 10:
+                /*
+                triple line is five times the width of an ordinary line,
+                except that the smallest 1/4 point size appears to have
+                exactly the same total border width as a 3/4 point size
+                ordinary line, i.e. three times the nominal line width.  The
+                second smallest 1/2 point size appears to have exactly the
+                total border width as a 2 1/4 border, i.e 4.5 times the size.
+                */
+                if (nMSTotalWidth == 5)
+                    nMSTotalWidth*=3;
+                else if (nMSTotalWidth == 10)
+                    nMSTotalWidth = nMSTotalWidth*9/2;
+                else
+                    nMSTotalWidth*=5;
+                break;
+            case 11:
+            case 12:
+                /*
+                small gap thin thick and thick thin appears to have a 3/4
+                point line, a 3/4 point gap and a thick line of the specified
+                width
+                */
+                nMSTotalWidth = nMSTotalWidth + 15*2;
+                break;
+            case 13:
+                /*
+                thin thick thin appears to have two outside 3/4 point lines,
+                two 3/4 point gaps and a thick line of the specified width
+                */
+                nMSTotalWidth = nMSTotalWidth + 15*4;
+                break;
+            case 14:
+            case 15:
+                /*
+                medium gap thin thick and thick thin appears to have a line
+                50% of the thick line, and an equal sized gap and then the
+                thick line of the specified width. But it appears to only
+                use one of the existing predefined widths for the thin line,
+                so the closest smallest existing border to the halved thick
+                line is used.
+                */
+                switch (nMSTotalWidth)
+                {
+                    case 45:    //2 1/4, closest to half is 1
+                        nMSTotalWidth += 20 + (nMSTotalWidth-1)/2;
+                        break;
+                    case 5:
+                    case 10:
+                        nMSTotalWidth += 5;
+                        break;
+                    case 15:    //3/4, closest to half is 1/4
+                        nMSTotalWidth += 5 + (nMSTotalWidth-1)/2;
+                        break;
+                    default:
+                        nMSTotalWidth*=2;
+                        break;
+                }
+                break;
+            case 16:
+                /*
+                medium gap thin thick thin appears to have a line
+                50% of the thick line, and an equal sized gap and then the
+                thick line of the specified width. But it appears to only
+                use one of the existing predefined widths for the thin
+                line, so the closest smallest existing border to the halved
+                thick line is used. Though some fudging at smaller sizes is
+                still required.
+                */
+                switch (nMSTotalWidth)
+                {
+                    case 45:    //2 1/4, closest to half is 1
+                        nMSTotalWidth += nMSTotalWidth + 20 * 2;
+                        break;
+                    case 20:
+                    case 15:
+                        nMSTotalWidth += nMSTotalWidth + 7 * 2;
+                        break;
+                    case 10:
+                    case 5:
+                        nMSTotalWidth += 5 + 4;
+                        break;
+                    default:
+                        nMSTotalWidth*=3;
+                        break;
+                }
+                break;
+            case 17:
+            case 18:
+                /*
+                large gap thin thick and thick thin appears to have a thick
+                line of 1 1/2 pt and a narrow of 3/4 point, with a distance
+                between the two of the explicitly set line width
+                */
+                nMSTotalWidth+=15+30;
+                break;
+            case 19:
+                /*
+                large gap thin thick thin appears to have a thick line of 1
+                1/2 pt and two narrows of 3/4 point, with a distance between
+                the two of the explicitly set line width, though the narrowest
+                line appears to behave as if it was even smaller
+                */
+                if (nMSTotalWidth == 5)
+                    nMSTotalWidth = 3;
+                nMSTotalWidth = nMSTotalWidth*2 + 15*2 + 30;
+                break;
+            case 20:
+                /*
+                wave, the dimensions appear to be created by the drawing of
+                the wave, so we have only two possibilites in the menus, 3/4
+                point is equal to solid 3 point. This calculation seems to
+                match well to results.
+                */
+                nMSTotalWidth +=45;
+                break;
+            case 21:
+                /*
+                double wave, the dimensions appear to be created by the
+                drawing of the wave, so we have only one possibilites in the
+                menus, that of 3/4 point is equal to solid 3 point. This
+                calculation seems to match well to results.
+                */
+                nMSTotalWidth += 45*2;
+                break;
+            case 24:
+            case 25:
+                /*
+                emboss and engrave consist of a three lines, the central is of
+                the explicit point width, the other two (of equal size to each
+                other are the shadows and are either 3/4 pt of 1 1/2 depending
+                on if the central line is greater of less than 2 1/4 pt
+                */
+                if (nMSTotalWidth <= 45)
+                    nMSTotalWidth += 2*15;
+                else
+                    nMSTotalWidth += 2*30;
+                break;
+        }
+    }
+
+    if (pIdx)
+        *pIdx = nIdx;
+    if (pSpace)
+        *pSpace = nSpace*20;
+    if (pCol)
+        *pCol = nCol;
+    return nMSTotalWidth;
+}
+
+WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC nFcPos ) const
+{
+    WW8_CP nFallBackCpEnd = WW8_CP_MAX;
+=====================================================================
+Found a 187 line (541 tokens) duplication in the following files: 
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Utils.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Utils.cxx
+
+	while ( ( nLen >= 0 ) && ( *pAStr ) )
+	{
+		uChar = (unsigned char)*pAStr;
+
+		if ( uChar > 127 )
+		{
+			return sal_False;
+		} // if
+
+		pAStr++;
+
+		// Since we are dealing with unsigned integers
+		// we want to make sure that the last number is
+		// indeed zero.
+
+		if ( nLen > 0 )
+		{
+			nLen--;
+		} // if
+		else
+		{
+			break;
+		} // else
+	} // while
+
+	return sal_True;
+} // AStringNIsValid
+
+//------------------------------------------------------------------------
+
+static inline sal_Int32 ACharToUCharCompare( const sal_Unicode *pUStr,
+                                             const sal_Char    *pAStr
+                                           )
+{
+	sal_Int32  nCmp   = 0;
+	sal_Int32  nUChar = (sal_Int32)*pUStr;
+	sal_Int32  nChar  = (sal_Int32)((unsigned char)*pAStr);
+
+	nCmp = nUChar - nChar;
+
+	return  nCmp;
+} // ACharToUCharCompare
+
+//------------------------------------------------------------------------
+
+sal_Int32 AStringToUStringCompare( const sal_Unicode *pUStr,
+                                   const sal_Char    *pAStr
+                                 )
+{
+ 	sal_Int32 nCmp = kErrCompareAStringToUString;
+
+	if ( ( pUStr != NULL ) && ( pAStr != NULL ) )
+	{
+		nCmp = ACharToUCharCompare( pUStr, pAStr );
+
+		while ( ( nCmp == 0 ) && ( *pAStr ) )
+		{
+			pUStr++;
+			pAStr++;
+
+			nCmp = ACharToUCharCompare( pUStr, pAStr );
+		} // while
+	} // if
+
+	return nCmp;
+} // AStringToUStringCompare
+
+//------------------------------------------------------------------------
+
+sal_Int32 AStringToUStringNCompare( const sal_Unicode  *pUStr,
+                                    const sal_Char     *pAStr,
+                                    const sal_uInt32    nAStrCount
+                                   )
+{
+	sal_Int32 nCmp = kErrCompareNAStringToUString;
+
+	if ( ( pUStr != NULL ) && ( pAStr != NULL ) )
+	{
+		sal_uInt32 nCount = nAStrCount;
+
+		nCmp = ACharToUCharCompare( pUStr, pAStr );
+
+		while ( ( nCmp == 0 ) && ( *pAStr ) && ( nCount ) )
+		{
+			pUStr++;
+			pAStr++;
+
+			nCmp = ACharToUCharCompare( pUStr, pAStr );
+
+			// Since we are dealing with unsigned integers
+			// we want to make sure that the last number is
+			// indeed zero.
+
+			if ( nCount > 0 )
+			{
+				nCount--;
+			} // if
+			else
+			{
+				break;
+			} // else
+		} // while
+	} // if
+
+	return nCmp;
+} // AStringToUStringNCompare
+
+//------------------------------------------------------------------------
+
+sal_Int32 AStringToRTLUStringCompare( const rtl_uString  *pRTLUStr,
+                                      const sal_Char     *pAStr
+                                    )
+{
+	sal_Int32 nCmp = kErrCompareAStringToRTLUString;
+
+	if ( ( pRTLUStr != NULL ) && ( pAStr != NULL ) )
+	{
+		rtl_uString *pRTLUStrCopy = NULL;
+
+		rtl_uString_newFromString( &pRTLUStrCopy, pRTLUStr );
+
+		if ( pRTLUStrCopy != NULL )
+		{
+			const sal_Unicode *pUStr = rtl_uString_getStr( pRTLUStrCopy );
+
+			if ( pUStr != NULL )
+			{
+				nCmp = AStringToUStringCompare( pUStr, pAStr );
+			} // if
+
+			rtl_uString_release( pRTLUStrCopy );
+
+			pRTLUStrCopy = NULL;
+		} // if
+	} // if
+
+	return nCmp;
+} // AStringToRTLUStringCompare
+
+//------------------------------------------------------------------------
+
+sal_Int32 AStringToRTLUStringNCompare( const rtl_uString  *pRTLUStr,
+                                       const sal_Char     *pAStr,
+                                       const sal_uInt32    nAStrCount
+                                     )
+{
+	sal_Int32 nCmp = kErrCompareNAStringToRTLUString;
+
+	if ( ( pRTLUStr != NULL ) && ( pAStr != NULL ) )
+	{
+		rtl_uString *pRTLUStrCopy = NULL;
+
+		rtl_uString_newFromString( &pRTLUStrCopy, pRTLUStr );
+
+		if ( pRTLUStrCopy != NULL )
+		{
+			const sal_Unicode  *pUStr = rtl_uString_getStr( pRTLUStrCopy );
+
+			if ( pUStr != NULL )
+			{
+				nCmp = AStringToUStringNCompare( pUStr, pAStr, nAStrCount );
+			} // if
+
+			rtl_uString_release( pRTLUStrCopy );
+
+			pRTLUStrCopy = NULL;
+		} // if
+	} // if
+
+	return nCmp;
+} // AStringToRTLUStringNCompare
+
+//------------------------------------------------------------------------
+
+sal_Bool AStringToUStringCopy( sal_Unicode     *pDest,
+                               const sal_Char  *pSrc
+                             )
+{
+	sal_Bool    bCopied = sal_False;
+	sal_uInt32  nCount  = AStringLen( pSrc );
+	sal_uInt32  nLen    = nCount;
+
+	if (    ( pDest != NULL )
+	     && ( pSrc  != NULL )
+	     && ( AStringNIsValid( pSrc, nLen ) )
+	   )
+	{
+=====================================================================
+Found a 105 line (540 tokens) duplication in the following files: 
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 482 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+				( parens < 0 && ((lp - 1)->type != LP)))
+        {
+            if (*narg >= NARG - 1)
+				error(FATAL, "Sorry, too many macro arguments");
+            ttr.bp = ttr.tp = bp;
+            ttr.lp = lp;
+            atr[(*narg)++] = normtokenrow(&ttr);
+            bp = lp + 1;
+        }
+    }
+    return ntok;
+}
+
+/*
+ * substitute the argument list into the replacement string
+ *  This would be simple except for ## and #
+ */
+void
+	substargs(Nlist * np, Tokenrow * rtr, Tokenrow ** atr)
+{
+	Tokenrow tatr;
+	Token *tp;
+	int ntok, argno;
+
+	for (rtr->tp = rtr->bp; rtr->tp < rtr->lp;)
+	{
+		if (rtr->tp->type == SHARP)
+		{                               /* string operator */
+			tp = rtr->tp;
+			rtr->tp += 1;
+			if ((argno = lookuparg(np, rtr->tp)) < 0)
+			{
+				error(ERROR, "# not followed by macro parameter");
+				continue;
+			}
+			ntok = 1 + (rtr->tp - tp);
+			rtr->tp = tp;
+			insertrow(rtr, ntok, stringify(atr[argno]));
+			continue;
+		}
+		if (rtr->tp->type == NAME
+			&& (argno = lookuparg(np, rtr->tp)) >= 0)
+		{
+			if (((rtr->tp + 1) < rtr->lp && (rtr->tp + 1)->type == DSHARP)
+				|| (rtr->tp != rtr->bp  && (rtr->tp - 1)->type == DSHARP))
+			{
+				copytokenrow(&tatr, atr[argno]);
+				makespace(&tatr, rtr->tp);
+				insertrow(rtr, 1, &tatr);
+				dofree(tatr.bp);
+			}
+            else
+            {
+                copytokenrow(&tatr, atr[argno]);
+				makespace(&tatr, rtr->tp);
+                expandrow(&tatr, "<macro>");
+                insertrow(rtr, 1, &tatr);
+                dofree(tatr.bp);
+            }
+            continue;
+        }
+        rtr->tp++;
+    }
+}
+
+/*
+ * Evaluate the ## operators in a tokenrow
+ */
+void
+    doconcat(Tokenrow * trp)
+{
+    Token *ltp, *ntp;
+    Tokenrow ntr;
+    int len;
+
+    for (trp->tp = trp->bp; trp->tp < trp->lp; trp->tp++)
+    {
+        if (trp->tp->type == DSHARP1)
+            trp->tp->type = DSHARP;
+        else
+            if (trp->tp->type == DSHARP)
+            {
+				int  i;
+                char tt[NCONCAT];
+
+                ltp = trp->tp - 1;
+				ntp = trp->tp + 1;
+
+				if (ltp < trp->bp || ntp >= trp->lp)
+                {
+                    error(ERROR, "## occurs at border of replacement");
+                    continue;
+				}
+
+				ntp = ltp;
+				i   = 1;
+				len = 0;
+
+				do
+				{
+					if (len + ntp->len + ntp->wslen > sizeof(tt))
+					{
+						error(ERROR, "## string concatination buffer overrun");
+						break;
+					}
+=====================================================================
+Found a 114 line (538 tokens) duplication in the following files: 
+Starting at line 4187 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 4322 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+	if (!reader.isValid()) {
+        return false;
+    }
+
+	RTTypeClass typeClass = reader.getTypeClass();
+	bool ret = false;
+	switch (typeClass)
+	{
+		case RT_TYPE_INTERFACE:
+			{
+				InterfaceType iType(reader, typeName, typeMgr);
+				ret = iType.dump(pOptions);
+				if (ret) generated.add(typeName);
+				iType.dumpDependedTypes(generated, pOptions);
+			}
+			break;
+		case RT_TYPE_MODULE:
+			{
+				ModuleType mType(reader, typeName, typeMgr);
+				if (mType.hasConstants())
+				{
+					ret = mType.dump(pOptions);
+					if (ret) generated.add(typeName);
+				} else
+				{
+					generated.add(typeName);
+					ret = true;
+				}
+			}
+			break;
+		case RT_TYPE_STRUCT:
+			{
+				StructureType sType(reader, typeName, typeMgr);
+				ret = sType.dump(pOptions);
+				if (ret) generated.add(typeName);
+				sType.dumpDependedTypes(generated, pOptions);
+			}
+			break;
+		case RT_TYPE_ENUM:
+			{
+				EnumType enType(reader, typeName, typeMgr);
+				ret = enType.dump(pOptions);
+				if (ret) generated.add(typeName);
+				enType.dumpDependedTypes(generated, pOptions);
+			}
+			break;
+		case RT_TYPE_EXCEPTION:
+			{
+				ExceptionType eType(reader, typeName, typeMgr);
+				ret = eType.dump(pOptions);
+				if (ret) generated.add(typeName);
+				eType.dumpDependedTypes(generated, pOptions);
+			}
+			break;
+		case RT_TYPE_TYPEDEF:
+			{
+				TypeDefType tdType(reader, typeName, typeMgr);
+				ret = tdType.dump(pOptions);
+				if (ret) generated.add(typeName);
+				tdType.dumpDependedTypes(generated, pOptions);
+			}
+			break;
+		case RT_TYPE_CONSTANTS:
+			{
+				ConstantsType cType(reader, typeName, typeMgr);
+				if (cType.hasConstants())
+				{
+					ret = cType.dump(pOptions);
+					if (ret) generated.add(typeName);
+				} else
+				{
+					generated.add(typeName);
+					ret = true;
+				}
+			}
+			break;
+        case RT_TYPE_SERVICE:
+            {
+                ServiceType t(reader, typeName, typeMgr);
+                if (t.isSingleInterfaceBased()) {
+                    ret = t.dump(pOptions);
+                    if (ret) {
+                        generated.add(typeName);
+                        t.dumpDependedTypes(generated, pOptions);
+                    }
+                } else {
+                    ret = true;
+                }
+            }
+            break;
+        case RT_TYPE_SINGLETON:
+            {
+                SingletonType t(reader, typeName, typeMgr);
+                if (t.isInterfaceBased()) {
+                    ret = t.dump(pOptions);
+                    if (ret) {
+                        generated.add(typeName);
+                        t.dumpDependedTypes(generated, pOptions);
+                    }
+                } else {
+                    ret = true;
+                }
+            }
+            break;
+		case RT_TYPE_OBJECT:
+			ret = true;
+			break;
+        default:
+            OSL_ASSERT(false);
+            break;
+	}
+	
+	return ret;
+}
+=====================================================================
+Found a 89 line (534 tokens) duplication in the following files: 
+Starting at line 703 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1043 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::replaceImages(
+    ::sal_Int16 nImageType,
+    const Sequence< ::rtl::OUString >& aCommandURLSequence,
+    const Sequence< uno::Reference< XGraphic > >& aGraphicsSequence )
+throw ( ::com::sun::star::lang::IllegalArgumentException,
+        ::com::sun::star::lang::IllegalAccessException,
+        ::com::sun::star::uno::RuntimeException)
+{
+    CmdToXGraphicNameAccess* pInsertedImages( 0 );
+    CmdToXGraphicNameAccess* pReplacedImages( 0 );
+
+    {
+        ResetableGuard aLock( m_aLock );
+
+        /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        if (( aCommandURLSequence.getLength() != aGraphicsSequence.getLength() ) ||
+            (( nImageType < 0 ) || ( nImageType > MAX_IMAGETYPE_VALUE )))
+            throw IllegalArgumentException();
+
+        if ( m_bReadOnly )
+            throw IllegalAccessException();
+
+        sal_Int16 nIndex = implts_convertImageTypeToIndex( nImageType );
+        ImageList* pImageList = implts_getUserImageList( ImageType( nIndex ));
+
+        uno::Reference< XGraphic > xGraphic;
+        for ( sal_Int32 i = 0; i < aCommandURLSequence.getLength(); i++ )
+        {
+            // Check size and scale. If we don't have any graphics ignore it
+            if ( !implts_checkAndScaleGraphic( xGraphic, aGraphicsSequence[i], nIndex ))
+                continue;
+
+            USHORT nPos = pImageList->GetImagePos( aCommandURLSequence[i] );
+            if ( nPos == IMAGELIST_IMAGE_NOTFOUND )
+            {
+                pImageList->AddImage( aCommandURLSequence[i], xGraphic );
+                if ( !pInsertedImages )
+                    pInsertedImages = new CmdToXGraphicNameAccess();
+                pInsertedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+            else
+            {
+                pImageList->ReplaceImage( aCommandURLSequence[i], xGraphic );
+                if ( !pReplacedImages )
+                    pReplacedImages = new CmdToXGraphicNameAccess();
+                pReplacedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+        }
+
+        if (( pInsertedImages != 0 ) || (  pReplacedImages != 0 ))
+        {
+            m_bModified = sal_True;
+            m_bUserImageListModified[nIndex] = true;
+        }
+    }
+
+    // Notify listeners
+    uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+
+    if ( pInsertedImages != 0 )
+    {
+        ConfigurationEvent aInsertEvent;
+        aInsertEvent.aInfo           = uno::makeAny( nImageType );
+        aInsertEvent.Accessor        = uno::makeAny( xThis );
+        aInsertEvent.Source          = xIfac;
+        aInsertEvent.ResourceURL     = m_aResourceString;
+        aInsertEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >(
+                                        static_cast< OWeakObject *>( pInsertedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aInsertEvent, NotifyOp_Insert );
+    }
+    if ( pReplacedImages != 0 )
+    {
+        ConfigurationEvent aReplaceEvent;
+        aReplaceEvent.aInfo           = uno::makeAny( nImageType );
+        aReplaceEvent.Accessor        = uno::makeAny( xThis );
+        aReplaceEvent.Source          = xIfac;
+        aReplaceEvent.ResourceURL     = m_aResourceString;
+        aReplaceEvent.ReplacedElement = Any();
+        aReplaceEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >(
+                                            static_cast< OWeakObject *>( pReplacedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aReplaceEvent, NotifyOp_Replace );
+    }
+}
+
+void SAL_CALL ModuleImageManager::removeImages( ::sal_Int16 nImageType, const Sequence< ::rtl::OUString >& aCommandURLSequence )
+=====================================================================
+Found a 118 line (533 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) );
+=====================================================================
+Found a 113 line (532 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+=====================================================================
+Found a 74 line (531 tokens) duplication in the following files: 
+Starting at line 843 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/view/vprint.cxx
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/view/vprint.cxx
+
+        pPrtDoc->setPrinter( new SfxPrinter(*pPrt), true, true );
+
+    const SfxPoolItem* pCpyItem;
+    const SfxItemPool& rPool = GetAttrPool();
+    for( USHORT nWh = POOLATTR_BEGIN; nWh < POOLATTR_END; ++nWh )
+        if( 0 != ( pCpyItem = rPool.GetPoolDefaultItem( nWh ) ) )
+            pPrtDoc->GetAttrPool().SetPoolDefaultItem( *pCpyItem );
+
+    // JP 29.07.99 - Bug 67951 - set all Styles from the SourceDoc into
+    //                              the PrintDoc - will be replaced!
+    pPrtDoc->ReplaceStyles( *GetDoc() );
+
+    SwShellCrsr *pActCrsr = pFESh->_GetCrsr();
+    SwShellCrsr *pFirstCrsr = (SwShellCrsr*)*((SwCursor*)pActCrsr->GetNext());
+    if( !pActCrsr->HasMark() ) // bei Multiselektion kann der aktuelle Cursor leer sein
+        pActCrsr = (SwShellCrsr*)*((SwCursor*)pActCrsr->GetPrev());
+    // Die Y-Position der ersten Selektion
+    long nMinY = pFESh->IsTableMode() ? pFESh->GetTableCrsr()->GetSttPos().Y()
+                               : pFirstCrsr->GetSttPos().Y();
+    SwPageFrm* pPage = (SwPageFrm*)GetLayout()->Lower();
+    // Suche die zugehoerige Seite
+    while ( pPage->GetNext() && nMinY >= pPage->GetNext()->Frm().Top() )
+        pPage = (SwPageFrm*)pPage->GetNext();
+    // und ihren Seitendescribtor
+    SwPageDesc *pSrc = pPage->GetPageDesc();
+    SwPageDesc* pPageDesc = pPrtDoc->FindPageDescByName(
+                                pPage->GetPageDesc()->GetName() );
+
+    if( !pFESh->IsTableMode() && pActCrsr->HasMark() )
+    {   // Am letzten Absatz die Absatzattribute richten:
+        SwNodeIndex aNodeIdx( *pPrtDoc->GetNodes().GetEndOfContent().StartOfSectionNode() );
+        SwTxtNode* pTxtNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx )->GetTxtNode();
+        SwCntntNode *pLastNd =
+            pActCrsr->GetCntntNode( (*pActCrsr->GetMark()) <= (*pActCrsr->GetPoint()) );
+        // Hier werden die Absatzattribute des ersten Absatzes uebertragen
+        if( pLastNd && pLastNd->IsTxtNode() )
+            ((SwTxtNode*)pLastNd)->CopyCollFmt( *pTxtNd );
+    }
+
+    // es wurde in der CORE eine neu angelegt (OLE-Objekte kopiert!)
+//      if( aDocShellRef.Is() )
+//          SwDataExchange::InitOle( aDocShellRef, pPrtDoc );
+    // und fuellen es mit dem selektierten Bereich
+    pFESh->Copy( pPrtDoc );
+
+    //Jetzt noch am ersten Absatz die Seitenvorlage setzen
+    {
+        SwNodeIndex aNodeIdx( *pPrtDoc->GetNodes().GetEndOfContent().StartOfSectionNode() );
+        SwCntntNode* pCNd = pPrtDoc->GetNodes().GoNext( &aNodeIdx ); // gehe zum 1. ContentNode
+        if( pFESh->IsTableMode() )
+        {
+            SwTableNode* pTNd = pCNd->FindTableNode();
+            if( pTNd )
+                pTNd->GetTable().GetFrmFmt()->SetAttr( SwFmtPageDesc( pPageDesc ) );
+        }
+        else
+        {
+            pCNd->SetAttr( SwFmtPageDesc( pPageDesc ) );
+            if( pFirstCrsr->HasMark() )
+            {
+                SwTxtNode *pTxtNd = pCNd->GetTxtNode();
+                if( pTxtNd )
+                {
+                    SwCntntNode *pFirstNd =
+                        pFirstCrsr->GetCntntNode( (*pFirstCrsr->GetMark()) > (*pFirstCrsr->GetPoint()) );
+                    // Hier werden die Absatzattribute des ersten Absatzes uebertragen
+                    if( pFirstNd && pFirstNd->IsTxtNode() )
+                        ((SwTxtNode*)pFirstNd)->CopyCollFmt( *pTxtNd );
+                }
+            }
+        }
+    }
+    return pPrtDoc;
+}
+=====================================================================
+Found a 34 line (530 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/simpleregistry/simpleregistry.cxx
+
+	~RegistryKeyImpl();
+
+	// XRegistryKey	
+    virtual OUString SAL_CALL getKeyName() throw(RuntimeException);
+    virtual sal_Bool SAL_CALL isReadOnly(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual sal_Bool SAL_CALL isValid(  ) throw(RuntimeException);
+    virtual RegistryKeyType SAL_CALL getKeyType( const OUString& rKeyName ) throw(InvalidRegistryException, RuntimeException);
+    virtual RegistryValueType SAL_CALL getValueType(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual sal_Int32 SAL_CALL getLongValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setLongValue( sal_Int32 value ) throw(InvalidRegistryException, RuntimeException);
+    virtual Sequence< sal_Int32 > SAL_CALL getLongListValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setLongListValue( const ::com::sun::star::uno::Sequence< sal_Int32 >& seqValue ) throw(InvalidRegistryException, RuntimeException);
+    virtual OUString SAL_CALL getAsciiValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setAsciiValue( const OUString& value ) throw(InvalidRegistryException, RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getAsciiListValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setAsciiListValue( const ::com::sun::star::uno::Sequence< OUString >& seqValue ) throw(InvalidRegistryException, RuntimeException);
+    virtual OUString SAL_CALL getStringValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setStringValue( const OUString& value ) throw(InvalidRegistryException, RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getStringListValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setStringListValue( const ::com::sun::star::uno::Sequence< OUString >& seqValue ) throw(InvalidRegistryException, RuntimeException);
+    virtual Sequence< sal_Int8 > SAL_CALL getBinaryValue(  ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
+    virtual void SAL_CALL setBinaryValue( const ::com::sun::star::uno::Sequence< sal_Int8 >& value ) throw(InvalidRegistryException, RuntimeException);
+    virtual Reference< XRegistryKey > SAL_CALL openKey( const OUString& aKeyName ) throw(InvalidRegistryException, RuntimeException);
+    virtual Reference< XRegistryKey > SAL_CALL createKey( const OUString& aKeyName ) throw(InvalidRegistryException, RuntimeException);
+    virtual void SAL_CALL closeKey(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual void SAL_CALL deleteKey( const OUString& rKeyName ) throw(InvalidRegistryException, RuntimeException);
+    virtual Sequence< Reference< XRegistryKey > > SAL_CALL openKeys(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getKeyNames(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual sal_Bool SAL_CALL createLink( const OUString& aLinkName, const OUString& aLinkTarget ) throw(InvalidRegistryException, RuntimeException);
+    virtual void SAL_CALL deleteLink( const OUString& rLinkName ) throw(InvalidRegistryException, RuntimeException);
+    virtual OUString SAL_CALL getLinkTarget( const OUString& rLinkName ) throw(InvalidRegistryException, RuntimeException);
+    virtual OUString SAL_CALL getResolvedName( const OUString& aKeyName ) throw(InvalidRegistryException, RuntimeException);
+
+protected:
+=====================================================================
+Found a 114 line (529 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsdocumenthandler.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsdocumenthandler.cxx
+
+	for ( int i = 0; i < (int)EV_XML_ENTRY_COUNT; i++ )
+	{
+		if ( EventEntries[i].nNamespace == EV_NS_EVENT )
+		{
+			OUString temp( aNamespaceEvent );
+			temp += aSeparator;
+			temp += OUString::createFromAscii( EventEntries[i].aEntryName );
+			m_aEventsMap.insert( EventsHashMap::value_type( temp, (Events_XML_Entry)i ) );
+		}
+		else
+		{
+			OUString temp( aNamespaceXLink );
+			temp += aSeparator;
+			temp += OUString::createFromAscii( EventEntries[i].aEntryName );
+			m_aEventsMap.insert( EventsHashMap::value_type( temp, (Events_XML_Entry)i ) );
+		}
+	}
+
+	m_bEventsStartFound				= sal_False;
+	m_bEventsEndFound				= sal_False;
+	m_bEventStartFound				= sal_False;
+}
+
+OReadEventsDocumentHandler::~OReadEventsDocumentHandler()
+{
+}
+
+Any SAL_CALL OReadEventsDocumentHandler::queryInterface( const Type & rType )
+throw( RuntimeException )
+{
+	Any a = ::cppu::queryInterface(
+				rType ,
+				SAL_STATIC_CAST( XDocumentHandler*, this ));
+	if ( a.hasValue() )
+		return a;
+
+	return OWeakObject::queryInterface( rType );
+}
+
+// XDocumentHandler
+void SAL_CALL OReadEventsDocumentHandler::startDocument(void)
+throw (	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadEventsDocumentHandler::endDocument(void)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	if (( m_bEventsStartFound && !m_bEventsEndFound ) ||
+		( !m_bEventsStartFound && m_bEventsEndFound )		)
+	{
+		OUString aErrorMessage = getErrorLineString();
+		aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'event:events' found!" ));
+		throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+	}
+}
+
+void SAL_CALL OReadEventsDocumentHandler::startElement(
+	const OUString& aName, const Reference< XAttributeList > &xAttribs )
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	EventsHashMap::const_iterator pEventEntry = m_aEventsMap.find( aName );
+	if ( pEventEntry != m_aEventsMap.end() )
+	{
+		switch ( pEventEntry->second )
+		{
+			case EV_ELEMENT_EVENTS:
+			{
+				if ( m_bEventsStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'event:events' cannot be embeded into 'event:events'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bEventsStartFound = sal_True;
+			}
+			break;
+
+			case EV_ELEMENT_EVENT:
+			{
+				if ( !m_bEventsStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'event:event' must be embeded into element 'event:events'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( m_bEventStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element event:event is not a container!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				OUString aLanguage;
+				OUString aURL;
+				OUString aMacroName;
+				OUString aLibrary;
+				OUString aEventName;
+
+				m_bEventStartFound = sal_True;
+
+				long					  nIndex = m_aEventItems.aEventNames.getLength();
+				long					  nPropCount = 2; // every event config entry needs at least 2 properties
+				Sequence< PropertyValue > aEventProperties( nPropCount ); 
+
+				m_aEventItems.aEventNames.realloc(  nIndex + 1 );
+
+				for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+=====================================================================
+Found a 100 line (529 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LNoException.cxx
+Starting at line 820 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+				m_nRowPos = 0;
+
+			break;
+		case IResultSetHelper::LAST:
+			if(m_nMaxRowCount)
+			{
+				m_nFilePos = m_aRowToFilePos.rbegin()->second;
+				m_nRowPos  = m_aRowToFilePos.rbegin()->first;
+				m_pFileStream->Seek(m_nFilePos);
+				if (m_pFileStream->IsEof() || !checkHeaderLine())
+					return sal_False;
+				m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+				if (m_pFileStream->IsEof())
+					return sal_False;
+				nCurPos = m_pFileStream->Tell();
+			}
+			else
+			{
+				while(seekRow(IResultSetHelper::NEXT,1,nCurPos)) ; // run through after last row
+				// now I know all
+				seekRow(IResultSetHelper::PRIOR,1,nCurPos);
+			}
+			break;
+		case IResultSetHelper::RELATIVE:
+			if(nOffset > 0)
+			{
+				for(sal_Int32 i = 0;i<nOffset;++i)
+					seekRow(IResultSetHelper::NEXT,1,nCurPos);
+			}
+			else if(nOffset < 0)
+			{
+				for(sal_Int32 i = nOffset;i;++i)
+					seekRow(IResultSetHelper::PRIOR,1,nCurPos);
+			}
+			break;
+		case IResultSetHelper::ABSOLUTE:
+			{
+				if(nOffset < 0)
+					nOffset = m_nRowPos + nOffset;
+				::std::map<sal_Int32,sal_Int32>::const_iterator aIter = m_aRowToFilePos.find(nOffset);
+				if(aIter != m_aRowToFilePos.end())
+				{
+					m_nFilePos = aIter->second;
+					m_pFileStream->Seek(m_nFilePos);
+					if (m_pFileStream->IsEof() || !checkHeaderLine())
+						return sal_False;
+					m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+					if (m_pFileStream->IsEof())
+						return sal_False;
+					nCurPos = m_pFileStream->Tell();
+				}
+				else if(m_nMaxRowCount && nOffset > m_nMaxRowCount) // offset is outside the table
+				{
+					m_nRowPos = m_nMaxRowCount;
+					return sal_False;
+				}
+				else
+				{
+					aIter = m_aRowToFilePos.upper_bound(nOffset);
+					if(aIter == m_aRowToFilePos.end())
+					{
+						m_nRowPos	= m_aRowToFilePos.rbegin()->first;
+						nCurPos = m_nFilePos = m_aRowToFilePos.rbegin()->second;
+						while(m_nRowPos != nOffset)
+							seekRow(IResultSetHelper::NEXT,1,nCurPos);
+					}
+					else
+					{
+						--aIter;
+						m_nRowPos	= aIter->first;
+						m_nFilePos	= aIter->second;
+						m_pFileStream->Seek(m_nFilePos);
+						if (m_pFileStream->IsEof() || !checkHeaderLine())
+							return sal_False;
+						m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+						if (m_pFileStream->IsEof())
+							return sal_False;
+						nCurPos = m_pFileStream->Tell();
+					}
+				}
+			}
+
+			break;
+		case IResultSetHelper::BOOKMARK:
+			m_pFileStream->Seek(nOffset);
+			if (m_pFileStream->IsEof())
+				return sal_False;
+
+			m_nFilePos = m_pFileStream->Tell();	// Byte-Position in der Datei merken (am ZeilenANFANG)
+			m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+			if (m_pFileStream->IsEof())
+				return sal_False;
+			nCurPos  = m_pFileStream->Tell();
+			break;
+	}
+
+	//OSL_TRACE("OEvoabTable::(after SeekRow)m_aCurrentLine = %d\n", ((OUtoCStr(::rtl::OUString(m_aCurrentLine))) ? (OUtoCStr(::rtl::OUString(m_aCurrentLine))):("NULL")) );
+
+	return sal_True;
+}
+=====================================================================
+Found a 116 line (529 tokens) duplication in the following files: 
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx
+
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+       = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+	 VtableSlot aVtableSlot(
+  	           getVtableSlot(
+  	               reinterpret_cast<
+  	                   typelib_InterfaceAttributeTypeDescription const * >(
+  	                       pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+			aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		VtableSlot aVtableSlot(
+		getVtableSlot(
+		 reinterpret_cast<
+		  typelib_InterfaceMethodTypeDescription const * >(
+		  pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+ 		(*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+ 		  pThis->pBridge->getUnoEnv(),
+				   (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 84 line (527 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+static bool m_bChange = false;
+// -----------------------------------------------------------------------------
+static void loadDefaults()
+{
+	if (s_bInitialized)
+		return;
+
+	s_bInitialized = sal_True;
+
+	try
+	{
+		// the executable file name
+		::rtl::OUString sExecutable;
+		osl_getExecutableFile(&sExecutable.pData);
+		// cut the name, add a cfgapi.ini to the path
+		sal_Int32 nLastSep = sExecutable.lastIndexOf('/');
+		if (-1 != nLastSep)
+			sExecutable = sExecutable.copy(0, nLastSep + 1);
+#ifdef UNX
+		sExecutable += ::rtl::OUString::createFromAscii("cfgapirc");
+#else
+		sExecutable += ::rtl::OUString::createFromAscii("cfgapi.ini");
+#endif
+		::rtl::OUString sNormalized;
+		sNormalized = sExecutable;
+		if (1) // osl_File_E_None == osl_normalizePath(sExecutable.pData, &sNormalized.pData))
+		{
+			::osl::Profile aProfile(sNormalized);
+
+			static ::rtl::OString	sSection("defaults");
+			static ::rtl::OString	sSourcePath("sourcepath");
+			static ::rtl::OString	sUpdatePath("updatepath");
+			static ::rtl::OString	sRootNode("rootnode");
+			static ::rtl::OString	sServerType("servertype");
+			static ::rtl::OString	sLocale("Locale");
+			static ::rtl::OString	sServer("Server");
+			static ::rtl::OString	sUser("User");
+			static ::rtl::OString	sPassword("Password");
+
+			// read some strings.
+			// Do this static because we want to redirect the global static character pointers to the buffers.
+			static ::rtl::OString s_sSourcePath	= aProfile.readString(sSection, sSourcePath, s_pSourcePath);
+			static ::rtl::OString s_sUpdatePath	= aProfile.readString(sSection, sUpdatePath, s_pUpdatePath);
+			static ::rtl::OString s_sRootNode	= aProfile.readString(sSection, sRootNode, s_pRootNode);
+			static ::rtl::OString s_sServerType	= aProfile.readString(sSection, sServerType, s_pServerType);
+			static ::rtl::OString s_sLocale		= aProfile.readString(sSection, sLocale, s_pLocale);
+			static ::rtl::OString s_sServer		= aProfile.readString(sSection, sServer, s_pServer);
+			static ::rtl::OString s_sUser		= aProfile.readString(sSection, sUser, s_pUser);
+			static ::rtl::OString s_sPassword	= aProfile.readString(sSection, sPassword, s_pPassword);
+
+			// do this redirection
+			s_pSourcePath	=	s_sSourcePath.getStr();
+			s_pUpdatePath	=	s_sUpdatePath.getStr();
+			s_pRootNode		=	s_sRootNode.getStr();
+			s_pServerType	=	s_sServerType.getStr();
+			s_pLocale		=	s_sLocale.getStr();
+			s_pServer		=	s_sServer.getStr();
+			s_pUser			=	s_sUser.getStr();
+			s_pPassword		=	s_sPassword.getStr();
+		}
+	}
+	catch(std::exception& e)
+	{
+		e.what();	// silence warnings
+	}
+}
+
+// -----------------------------------------------------------------------------
+Sequence<Any> createSequence(const OUString &sUser, const OUString &sPasswd)
+{
+	Sequence< Any > aCPArgs;
+		
+	if (sUser.getLength() > 0)
+	{
+		aCPArgs.realloc(1);
+		aCPArgs[0] <<= configmgr::createPropertyValue(ASCII("user"), sUser);
+	}
+	if (sPasswd.getLength() > 0)
+	{
+		aCPArgs.realloc(2);
+		aCPArgs[1] <<= configmgr::createPropertyValue(ASCII("password"), sPasswd);
+	}
+	return aCPArgs;
+}
+=====================================================================
+Found a 69 line (526 tokens) duplication in the following files: 
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1486 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbe, 0xae },
+{ 0x00, 0xbf, 0xbf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+{ 0x00, 0xfe, 0xde },
+{ 0x00, 0xff, 0xff },
+};
+
+struct cs_info iso5_tbl[] = {
+=====================================================================
+Found a 94 line (526 tokens) duplication in the following files: 
+Starting at line 617 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/lex.c
+Starting at line 595 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_lex.c
+
+    while (s->inp + (n + 1) >= s->inl && fillbuf(s) != EOF);
+
+    /* skip DOS line ends */
+    if (((s->inp[n] == '\r') && (s->inp[n+1] == '\n')) ||
+		((s->inp[n] == '\n') && (s->inp[n+1] == '\r')))
+        n++;
+
+    if ((s->inp[n] == '\n') || (s->inp[n] == '\r'))
+    {
+        memmove(s->inp, s->inp + n + 1, s->inl - s->inp + n + 2);
+        s->inl -= n + 1;
+        return 1;
+    }
+    return 0;
+}
+
+int
+    fillbuf(Source * s)
+{
+    int n;
+
+    if (s->fd < 0 || (n = read(s->fd, (char *) s->inl, INS / 8)) <= 0)
+        n = 0;
+    s->inl += n;
+    s->inl[0] = s->inl[1] = s->inl[2] = s->inl[3] = EOB;
+    if (n == 0)
+    {
+        s->inl[0] = s->inl[1] = s->inl[2] = s->inl[3] = EOFC;
+        return EOF;
+    }
+    return 0;
+}
+
+/*
+ * Push down to new source of characters.
+ * If fd>0 and str==NULL, then from a file `name';
+ * if fd==-1 and str, then from the string.
+ */
+Source *
+    setsource(char *name, int path, int fd, char *str, int wrap)
+{
+    Source *s = new(Source);
+    int len;
+
+    s->line = 1;
+    s->lineinc = 0;
+    s->fd = fd;
+    s->filename = name;
+    s->next = cursource;
+    s->ifdepth = 0;
+    s->pathdepth = path;
+	s->wrap = wrap;
+
+    cursource = s;
+
+	if (s->wrap)
+		genwrap(0);
+
+    /* slop at right for EOB */
+    if (str)
+    {
+        len = strlen(str);
+        s->inb = domalloc(len + 4);
+        s->inp = s->inb;
+        strncpy((char *) s->inp, str, len);
+    }
+    else
+    {
+        s->inb = domalloc(INS + 4);
+        s->inp = s->inb;
+        len = 0;
+    }
+    s->inl = s->inp + len;
+    s->inl[0] = s->inl[1] = EOB;
+
+    return s;
+}
+
+void
+    unsetsource(void)
+{
+    Source *s = cursource;
+
+	if (s->wrap)
+		genwrap(1);
+
+    if (s->fd >= 0)
+    {
+        close(s->fd);
+        dofree(s->inb);
+    }
+    cursource = s->next;
+    dofree(s);
+}
+=====================================================================
+Found a 116 line (523 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_devicehelper.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_devicehelper.cxx
+
+        return geometry::RealSize2D( 210, 280 );
+    }
+
+    uno::Reference< rendering::XLinePolyPolygon2D > DeviceHelper::createCompatibleLinePolyPolygon( 
+        const uno::Reference< rendering::XGraphicDevice >& 				/*rDevice*/,
+        const uno::Sequence< uno::Sequence< geometry::RealPoint2D > >&	points )
+    {
+        // disposed?
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XLinePolyPolygon2D >(); // we're disposed
+
+        return uno::Reference< rendering::XLinePolyPolygon2D >( 
+            new ::canvas::LinePolyPolygonBase( 
+                ::basegfx::unotools::polyPolygonFromPoint2DSequenceSequence( points ) ) );
+    }
+
+    uno::Reference< rendering::XBezierPolyPolygon2D > DeviceHelper::createCompatibleBezierPolyPolygon( 
+        const uno::Reference< rendering::XGraphicDevice >& 						/*rDevice*/,
+        const uno::Sequence< uno::Sequence< geometry::RealBezierSegment2D > >&	points )
+    {
+        // disposed?
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XBezierPolyPolygon2D >(); // we're disposed
+
+        return uno::Reference< rendering::XBezierPolyPolygon2D >( 
+            new ::canvas::LinePolyPolygonBase( 
+                ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence( points ) ) );
+    }
+
+    uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	/*rDevice*/,
+        const geometry::IntegerSize2D& 						size )
+    {
+        // disposed?
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XBitmap >(); // we're disposed
+
+        return uno::Reference< rendering::XBitmap >(
+            new CanvasBitmap(
+                ::basegfx::unotools::b2ISizeFromIntegerSize2D( size ),
+                mpSpriteCanvas,
+                false )); 
+    }
+
+    uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	/*rDevice*/,
+        const geometry::IntegerSize2D& 						/*size*/ )
+    {
+        return uno::Reference< rendering::XVolatileBitmap >();
+    }
+
+    uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleAlphaBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	/*rDevice*/,
+        const geometry::IntegerSize2D& 						size )
+    {
+        // disposed?
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XBitmap >(); // we're disposed
+
+        return uno::Reference< rendering::XBitmap >(
+            new CanvasBitmap(
+                ::basegfx::unotools::b2ISizeFromIntegerSize2D( size ),
+                mpSpriteCanvas,
+                true )); 
+    }
+
+    uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileAlphaBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	/*rDevice*/,
+        const geometry::IntegerSize2D& 						/*size*/ )
+    {
+        return uno::Reference< rendering::XVolatileBitmap >();
+    }
+
+    sal_Bool DeviceHelper::hasFullScreenMode()
+    {
+        // TODO(F3): offer fullscreen mode the XCanvas way
+        return false;
+    }
+
+    sal_Bool DeviceHelper::enterFullScreenMode( sal_Bool /*bEnter*/ )
+    {
+        // TODO(F3): offer fullscreen mode the XCanvas way
+        return false;
+    }
+    
+    ::sal_Int32 DeviceHelper::createBuffers( ::sal_Int32 /*nBuffers*/ )
+    {
+        // TODO(F3): implement XBufferStrategy interface. For now, we
+        // _always_ will have exactly one backbuffer
+        return 1;
+    }
+
+    void DeviceHelper::destroyBuffers()
+    {
+        // TODO(F3): implement XBufferStrategy interface. For now, we
+        // _always_ will have exactly one backbuffer
+    }
+
+    ::sal_Bool DeviceHelper::showBuffer( ::sal_Bool bUpdateAll )
+    {
+        // forward to sprite canvas helper
+        if( !mpSpriteCanvas )
+            return false;
+
+        return mpSpriteCanvas->updateScreen( bUpdateAll );
+    }
+
+    ::sal_Bool DeviceHelper::switchBuffer( ::sal_Bool bUpdateAll )
+    {
+        // no difference for VCL canvas
+        return showBuffer( bUpdateAll );
+    }
+
+    uno::Any DeviceHelper::getDeviceHandle() const
+    {
+        return uno::Any();
+=====================================================================
+Found a 38 line (521 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  WEIGHT_BOLD, // weight type
+  ITALIC_NONE, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+    600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+    600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+    600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+    600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+    600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+    600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+    600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+    600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+    600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+    600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+    600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+    600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
+    600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
+    0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
+    600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
+    600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+    600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+    600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+    600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+    600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+    600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+    600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+    600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+    600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+    600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+    600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+    600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+    }
+},
+
+{ "Courier", // family name
+=====================================================================
+Found a 66 line (521 tokens) duplication in the following files: 
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4595 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xff, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+{ 0x00, 0xfe, 0xde },
+{ 0x00, 0xff, 0xbe },
+=====================================================================
+Found a 116 line (521 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 495 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
+       = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+//	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+	 VtableSlot aVtableSlot(
+  	           getVtableSlot(
+  	               reinterpret_cast<
+  	                   typelib_InterfaceAttributeTypeDescription const * >(
+  	                       pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+			aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		VtableSlot aVtableSlot(
+		getVtableSlot(
+		 reinterpret_cast<
+		  typelib_InterfaceMethodTypeDescription const * >(
+		  pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+ 		(*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+ 		  pThis->pBridge->getUnoEnv(),
+				   (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 37 line (519 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  ITALIC_NORMAL, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    278, 278, 355, 556, 556, 889, 667, 191, // 32 - 39
+    333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
+    556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
+    556, 556, 278, 278, 584, 584, 584, 556, // 56 - 63
+    1015, 667, 667, 722, 722, 667, 611, 778, // 64 - 71
+    722, 278, 500, 667, 556, 833, 722, 778, // 72 - 79
+    667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
+    667, 667, 611, 278, 278, 278, 469, 556, // 88 - 95
+    333, 556, 556, 500, 556, 556, 278, 556, // 96 - 103
+    556, 222, 222, 500, 222, 833, 556, 556, // 104 - 111
+    556, 556, 333, 500, 278, 556, 500, 722, // 112 - 119
+    500, 500, 500, 334, 260, 334, 584, 0, // 120 - 127
+    556, 0, 222, 556, 333, 1000, 556, 556, // 128 - 135
+    333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
+    0, 222, 222, 333, 333, 350, 556, 1000, // 144 - 151
+    333, 1000, 500, 333, 944, 0, 500, 667, // 152 - 159
+    278, 333, 556, 556, 556, 556, 260, 556, // 160 - 167
+    333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
+    400, 584, 333, 333, 333, 556, 537, 278, // 176 - 183
+    333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
+    667, 667, 667, 667, 667, 667, 1000, 722, // 192 - 199
+    667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
+    722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
+    778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
+    556, 556, 556, 556, 556, 556, 889, 500, // 224 - 231
+    556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
+    556, 556, 556, 556, 556, 556, 556, 584, // 240 - 247
+    611, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
+    }
+},
+
+{ "Helvetica", // family name
+=====================================================================
+Found a 37 line (519 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  ITALIC_NONE, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+    600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+    600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+    600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+    600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+    600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+    600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+    600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+    600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+    600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+    600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+    600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+    600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
+    600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
+    0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
+    600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
+    600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+    600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+    600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+    600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+    600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+    600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+    600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+    600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+    600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+    600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+    600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+    600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+    }
+},
+
+{ "Courier", // family name
+=====================================================================
+Found a 38 line (519 tokens) duplication in the following files: 
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  WEIGHT_BOLD, // weight type
+  ITALIC_NORMAL, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+    600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+    600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+    600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+    600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+    600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+    600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+    600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+    600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+    600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+    600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+    600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+    600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
+    600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
+    0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
+    600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
+    600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+    600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+    600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+    600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+    600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+    600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+    600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+    600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+    600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+    600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+    600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+    600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+    }
+},
+
+{ "Helvetica", // family name
+=====================================================================
+Found a 37 line (519 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  ITALIC_NORMAL, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+    600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+    600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+    600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+    600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+    600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+    600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+    600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+    600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+    600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+    600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+    600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+    600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
+    600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
+    0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
+    600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
+    600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+    600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+    600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+    600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+    600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+    600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+    600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+    600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+    600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+    600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+    600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+    600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+    }
+},
+
+{ "Courier", // family name
+=====================================================================
+Found a 67 line (519 tokens) duplication in the following files: 
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    static const SprmInfo aSprms[] =
+    {
+        {  0, 0, L_FIX}, // "Default-sprm",  wird uebersprungen
+        {  2, 2, L_FIX}, // "sprmPIstd",  pap.istd (style code)
+        {  3, 3, L_VAR}, // "sprmPIstdPermute pap.istd permutation
+        {  4, 1, L_FIX}, // "sprmPIncLv1" pap.istddifference
+        {  5, 1, L_FIX}, // "sprmPJc" pap.jc (justification)
+        {  6, 1, L_FIX}, // "sprmPFSideBySide" pap.fSideBySide
+        {  7, 1, L_FIX}, // "sprmPFKeep" pap.fKeep
+        {  8, 1, L_FIX}, // "sprmPFKeepFollow " pap.fKeepFollow
+        {  9, 1, L_FIX}, // "sprmPPageBreakBefore" pap.fPageBreakBefore
+        { 10, 1, L_FIX}, // "sprmPBrcl" pap.brcl
+        { 11, 1, L_FIX}, // "sprmPBrcp" pap.brcp
+        { 12, 0, L_VAR}, // "sprmPAnld" pap.anld (ANLD structure)
+        { 13, 1, L_FIX}, // "sprmPNLvlAnm" pap.nLvlAnm nn
+        { 14, 1, L_FIX}, // "sprmPFNoLineNumb" pap.fNoLnn
+        { 15, 0, L_VAR}, // "?sprmPChgTabsPapx" pap.itbdMac, ...
+        { 16, 2, L_FIX}, // "sprmPDxaRight" pap.dxaRight
+        { 17, 2, L_FIX}, // "sprmPDxaLeft" pap.dxaLeft
+        { 18, 2, L_FIX}, // "sprmPNest" pap.dxaLeft
+        { 19, 2, L_FIX}, // "sprmPDxaLeft1" pap.dxaLeft1
+        { 20, 4, L_FIX}, // "sprmPDyaLine" pap.lspd an LSPD
+        { 21, 2, L_FIX}, // "sprmPDyaBefore" pap.dyaBefore
+        { 22, 2, L_FIX}, // "sprmPDyaAfter" pap.dyaAfter
+        { 23, 0, L_VAR}, // "?sprmPChgTabs" pap.itbdMac, pap.rgdxaTab, ...
+        { 24, 1, L_FIX}, // "sprmPFInTable" pap.fInTable
+        { 25, 1, L_FIX}, // "sprmPTtp" pap.fTtp
+        { 26, 2, L_FIX}, // "sprmPDxaAbs" pap.dxaAbs
+        { 27, 2, L_FIX}, // "sprmPDyaAbs" pap.dyaAbs
+        { 28, 2, L_FIX}, // "sprmPDxaWidth" pap.dxaWidth
+        { 29, 1, L_FIX}, // "sprmPPc" pap.pcHorz, pap.pcVert
+        { 30, 2, L_FIX}, // "sprmPBrcTop10" pap.brcTop BRC10
+        { 31, 2, L_FIX}, // "sprmPBrcLeft10" pap.brcLeft BRC10
+        { 32, 2, L_FIX}, // "sprmPBrcBottom10" pap.brcBottom BRC10
+        { 33, 2, L_FIX}, // "sprmPBrcRight10" pap.brcRight BRC10
+        { 34, 2, L_FIX}, // "sprmPBrcBetween10" pap.brcBetween BRC10
+        { 35, 2, L_FIX}, // "sprmPBrcBar10" pap.brcBar BRC10
+        { 36, 2, L_FIX}, // "sprmPFromText10" pap.dxaFromText dxa
+        { 37, 1, L_FIX}, // "sprmPWr" pap.wr wr
+        { 38, 2, L_FIX}, // "sprmPBrcTop" pap.brcTop BRC
+        { 39, 2, L_FIX}, // "sprmPBrcLeft" pap.brcLeft BRC
+        { 40, 2, L_FIX}, // "sprmPBrcBottom" pap.brcBottom BRC
+        { 41, 2, L_FIX}, // "sprmPBrcRight" pap.brcRight BRC
+        { 42, 2, L_FIX}, // "sprmPBrcBetween" pap.brcBetween BRC
+        { 43, 2, L_FIX}, // "sprmPBrcBar" pap.brcBar BRC word
+        { 44, 1, L_FIX}, // "sprmPFNoAutoHyph" pap.fNoAutoHyph
+        { 45, 2, L_FIX}, // "sprmPWHeightAbs" pap.wHeightAbs w
+        { 46, 2, L_FIX}, // "sprmPDcs" pap.dcs DCS
+        { 47, 2, L_FIX}, // "sprmPShd" pap.shd SHD
+        { 48, 2, L_FIX}, // "sprmPDyaFromText" pap.dyaFromText dya
+        { 49, 2, L_FIX}, // "sprmPDxaFromText" pap.dxaFromText dxa
+        { 50, 1, L_FIX}, // "sprmPFLocked" pap.fLocked 0 or 1 byte
+        { 51, 1, L_FIX}, // "sprmPFWidowControl" pap.fWidowControl 0 or 1 byte
+        { 52, 0, L_FIX}, // "?sprmPRuler 52"
+        { 64, 0, L_VAR}, // rtl property ?
+        { 65, 1, L_FIX}, // "sprmCFStrikeRM" chp.fRMarkDel 1 or 0 bit
+        { 66, 1, L_FIX}, // "sprmCFRMark" chp.fRMark 1 or 0 bit
+        { 67, 1, L_FIX}, // "sprmCFFldVanish" chp.fFldVanish 1 or 0 bit
+        { 68, 0, L_VAR}, // "sprmCPicLocation" chp.fcPic and chp.fSpec
+        { 69, 2, L_FIX}, // "sprmCIbstRMark" chp.ibstRMark index into sttbRMark
+        { 70, 4, L_FIX}, // "sprmCDttmRMark" chp.dttm DTTM long
+        { 71, 1, L_FIX}, // "sprmCFData" chp.fData 1 or 0 bit
+        { 72, 2, L_FIX}, // "sprmCRMReason" chp.idslRMReason an index to a table
+        { 73, 3, L_FIX}, // "sprmCChse" chp.fChsDiff and chp.chse
+        { 74, 0, L_VAR}, // "sprmCSymbol" chp.fSpec, chp.chSym and chp.ftcSym
+        { 75, 1, L_FIX}, // "sprmCFOle2" chp.fOle2 1 or 0   bit
+        { 77, 0, L_VAR}, // unknown
+=====================================================================
+Found a 101 line (519 tokens) duplication in the following files: 
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/sax_expat.cxx
+Starting at line 664 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/fastsax/fastparser.cxx
+
+Sequence< OUString > FastSaxParser::getSupportedServiceNames(void) throw (RuntimeException)
+{
+    
+    Sequence<OUString> seq(1);
+    seq.getArray()[0] = OUString::createFromAscii( SERVICE_NAME );
+    return seq;
+}
+
+
+/*---------------------------------------
+*
+* Helper functions and classes
+*
+*-------------------------------------------*/
+OUString getErrorMessage( XML_Error xmlE, OUString sSystemId , sal_Int32 nLine )
+{
+	OUString Message;
+	if( XML_ERROR_NONE == xmlE ) {
+		Message = OUString::createFromAscii( "No" );
+	}
+	else if( XML_ERROR_NO_MEMORY == xmlE ) {
+		Message = OUString::createFromAscii( "no memory" );
+	}
+	else if( XML_ERROR_SYNTAX == xmlE ) {
+		Message = OUString::createFromAscii( "syntax" );
+	}
+	else if( XML_ERROR_NO_ELEMENTS == xmlE ) {
+		Message = OUString::createFromAscii( "no elements" );
+	}
+	else if( XML_ERROR_INVALID_TOKEN == xmlE ) {
+		Message = OUString::createFromAscii( "invalid token" );
+	}
+	else if( XML_ERROR_UNCLOSED_TOKEN == xmlE ) {
+		Message = OUString::createFromAscii( "unclosed token" );
+	}
+	else if( XML_ERROR_PARTIAL_CHAR == xmlE ) {
+		Message = OUString::createFromAscii( "partial char" );
+	}
+	else if( XML_ERROR_TAG_MISMATCH == xmlE ) {
+		Message = OUString::createFromAscii( "tag mismatch" );
+	}
+	else if( XML_ERROR_DUPLICATE_ATTRIBUTE == xmlE ) {
+		Message = OUString::createFromAscii( "duplicate attribute" );
+	}
+	else if( XML_ERROR_JUNK_AFTER_DOC_ELEMENT == xmlE ) {
+		Message = OUString::createFromAscii( "junk after doc element" );
+	}
+	else if( XML_ERROR_PARAM_ENTITY_REF == xmlE ) {
+		Message = OUString::createFromAscii( "parameter entity reference" );
+	}
+	else if( XML_ERROR_UNDEFINED_ENTITY == xmlE ) {
+		Message = OUString::createFromAscii( "undefined entity" );
+	}
+	else if( XML_ERROR_RECURSIVE_ENTITY_REF == xmlE ) {
+		Message = OUString::createFromAscii( "recursive entity reference" );
+	}
+	else if( XML_ERROR_ASYNC_ENTITY == xmlE ) {
+		Message = OUString::createFromAscii( "async entity" );
+	}
+	else if( XML_ERROR_BAD_CHAR_REF == xmlE ) {
+		Message = OUString::createFromAscii( "bad char reference" );
+	}
+	else if( XML_ERROR_BINARY_ENTITY_REF == xmlE ) {
+		Message = OUString::createFromAscii( "binary entity reference" );
+	}
+	else if( XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF == xmlE ) {
+		Message = OUString::createFromAscii( "attribute external entity reference" );
+	}
+	else if( XML_ERROR_MISPLACED_XML_PI == xmlE ) {
+		Message = OUString::createFromAscii( "misplaced xml processing instruction" );
+	}
+	else if( XML_ERROR_UNKNOWN_ENCODING == xmlE ) {
+		Message = OUString::createFromAscii( "unknown encoding" );
+	}
+	else if( XML_ERROR_INCORRECT_ENCODING == xmlE ) {
+		Message = OUString::createFromAscii( "incorrect encoding" );
+	}
+	else if( XML_ERROR_UNCLOSED_CDATA_SECTION == xmlE ) {
+		Message = OUString::createFromAscii( "unclosed cdata section" );
+	}
+	else if( XML_ERROR_EXTERNAL_ENTITY_HANDLING == xmlE ) {
+		Message = OUString::createFromAscii( "external entity reference" );
+	}
+	else if( XML_ERROR_NOT_STANDALONE == xmlE ) {
+		Message = OUString::createFromAscii( "not standalone" );	
+	}
+
+	OUString str = OUString::createFromAscii( "[" );
+	str += sSystemId;
+	str += OUString::createFromAscii( " line " );
+	str += OUString::valueOf( nLine );
+	str += OUString::createFromAscii( "]: " );
+	str += Message;
+	str += OUString::createFromAscii( "error" );
+
+	return str;
+}
+
+
+// starts parsing with actual parser !
+void FastSaxParser::parse( )
+=====================================================================
+Found a 18 line (519 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10a0 - 10af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10b0 - 10bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10c0 - 10cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10d0 - 10df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10e0 - 10ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10f0 - 10ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1600 - 160f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1610 - 161f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1630 - 163f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1650 - 165f
+=====================================================================
+Found a 69 line (518 tokens) duplication in the following files: 
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 968 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbf, 0xaf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+{ 0x00, 0xfe, 0xde },
+{ 0x00, 0xff, 0xff },
+};
+
+
+struct cs_info iso3_tbl[] = {
+=====================================================================
+Found a 35 line (518 tokens) duplication in the following files: 
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/idl/source/cmptools/char.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/string/strcvt.cxx
+
+static sal_uChar aImplByteTab[256] =
+{
+	0,	 1,   2,   3,	4,	 5,   6,   7,
+	8,	 9,  10,  11,  12,	13,  14,  15,
+   16,	17,  18,  19,  20,	21,  22,  23,
+   24,	25,  26,  27,  28,	29,  30,  31,
+   32,	33,  34,  35,  36,	37,  38,  39,
+   40,	41,  42,  43,  44,	45,  46,  47,
+   48,	49,  50,  51,  52,	53,  54,  55,
+   56,	57,  58,  59,  60,	61,  62,  63,
+   64,	65,  66,  67,  68,	69,  70,  71,
+   72,	73,  74,  75,  76,	77,  78,  79,
+   80,	81,  82,  83,  84,	85,  86,  87,
+   88,	89,  90,  91,  92,	93,  94,  95,
+   96,	97,  98,  99, 100, 101, 102, 103,
+  104, 105, 106, 107, 108, 109, 110, 111,
+  112, 113, 114, 115, 116, 117, 118, 119,
+  120, 121, 122, 123, 124, 125, 126, 127,
+  128, 129, 130, 131, 132, 133, 134, 135,
+  136, 137, 138, 139, 140, 141, 142, 143,
+  144, 145, 146, 147, 148, 149, 150, 151,
+  152, 153, 154, 155, 156, 157, 158, 159,
+  160, 161, 162, 163, 164, 165, 166, 167,
+  168, 169, 170, 171, 172, 173, 174, 175,
+  176, 177, 178, 179, 180, 181, 182, 183,
+  184, 185, 186, 187, 188, 189, 190, 191,
+  192, 193, 194, 195, 196, 197, 198, 199,
+  200, 201, 202, 203, 204, 205, 206, 207,
+  208, 209, 210, 211, 212, 213, 214, 215,
+  216, 217, 218, 219, 220, 221, 222, 223,
+  224, 225, 226, 227, 228, 229, 230, 231,
+  232, 233, 234, 235, 236, 237, 238, 239,
+  240, 241, 242, 243, 244, 245, 246, 247,
+  248, 249, 250, 251, 252, 253, 254, 255
+};
+=====================================================================
+Found a 37 line (517 tokens) duplication in the following files: 
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  ITALIC_NORMAL, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    278, 333, 474, 556, 556, 889, 722, 238, // 32 - 39
+    333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
+    556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
+    556, 556, 333, 333, 584, 584, 584, 611, // 56 - 63
+    975, 722, 722, 722, 722, 667, 611, 778, // 64 - 71
+    722, 278, 556, 722, 611, 833, 722, 778, // 72 - 79
+    667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
+    667, 667, 611, 333, 278, 333, 584, 556, // 88 - 95
+    333, 556, 611, 556, 611, 556, 333, 611, // 96 - 103
+    611, 278, 278, 556, 278, 889, 611, 611, // 104 - 111
+    611, 611, 389, 556, 333, 611, 556, 778, // 112 - 119
+    556, 556, 500, 389, 280, 389, 584, 0, // 120 - 127
+    556, 0, 278, 556, 500, 1000, 556, 556, // 128 - 135
+    333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
+    0, 278, 278, 500, 500, 350, 556, 1000, // 144 - 151
+    333, 1000, 556, 333, 944, 0, 500, 667, // 152 - 159
+    278, 333, 556, 556, 556, 556, 280, 556, // 160 - 167
+    333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
+    400, 584, 333, 333, 333, 611, 556, 278, // 176 - 183
+    333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
+    722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
+    667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
+    722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
+    778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
+    556, 556, 556, 556, 556, 556, 889, 556, // 224 - 231
+    556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
+    611, 611, 611, 611, 611, 611, 611, 584, // 240 - 247
+    611, 611, 611, 611, 611, 556, 611, 556 // 248 - 255
+    }
+},
+
+{ "Times", // family name
+=====================================================================
+Found a 37 line (517 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+  ITALIC_NORMAL, // italic type
+  { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
+    0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
+    0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
+    0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
+    600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+    600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+    600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+    600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+    600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+    600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+    600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+    600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+    600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+    600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+    600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+    600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+    600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
+    600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
+    0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
+    600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
+    600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+    600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+    600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+    600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+    600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+    600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+    600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+    600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+    600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+    600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+    600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+    600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+    }
+},
+
+{ "Helvetica", // family name
+=====================================================================
+Found a 103 line (517 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/crc.c
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storbase.cxx
+
+const sal_uInt32 store::OStorePageGuard::m_pTable[] =
+{
+	/* 0 */
+	0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 
+	0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 
+	0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 
+	0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 
+
+	/* 1 */
+	0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 
+	0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 
+	0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 
+	0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 
+
+	/* 2 */
+	0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 
+	0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 
+	0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 
+	0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 
+
+	/* 3 */
+	0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 
+	0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 
+	0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 
+	0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 
+
+	/* 4 */
+	0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 
+	0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 
+	0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 
+	0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 
+
+	/* 5 */
+	0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 
+	0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 
+	0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 
+	0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 
+
+	/* 6 */
+	0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 
+	0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 
+	0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 
+	0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 
+
+	/* 7 */
+	0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 
+	0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 
+	0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 
+	0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 
+
+	/* 8 */
+	0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 
+	0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 
+	0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 
+	0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 
+
+	/* 9 */
+	0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 
+	0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 
+	0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 
+	0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 
+
+	/* A */
+	0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 
+	0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 
+	0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 
+	0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 
+
+	/* B */
+	0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 
+	0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 
+	0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 
+	0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 
+
+	/* C */
+	0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 
+	0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 
+	0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 
+	0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 
+
+	/* D */
+	0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 
+	0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 
+	0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 
+	0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 
+
+	/* E */
+	0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 
+	0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 
+	0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 
+	0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 
+
+	/* F */
+	0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 
+	0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 
+	0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 
+	0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
+};
+
+/*
+ * crc32.
+ */
+sal_uInt32 OStorePageGuard::crc32 (
+=====================================================================
+Found a 39 line (517 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+void Print_cmnd ANSI((char *, int, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+=====================================================================
+Found a 84 line (516 tokens) duplication in the following files: 
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/plfilter.cxx
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/plfilter.cxx
+
+using namespace std;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::plugin;
+
+struct ltstr
+{
+	bool operator()( const String& s1, const String& s2 ) const
+	{
+		return ( s1.CompareTo( s2 ) == COMPARE_LESS );
+	}
+};
+
+typedef set< String, ltstr > StrSet;
+typedef map< String, StrSet, ltstr > FilterMap;
+
+
+//==================================================================================================
+void fillNetscapePluginFilters( Sequence< rtl::OUString >& rPluginNames, Sequence< rtl::OUString >& rPluginTypes )
+{
+	Reference< XMultiServiceFactory > xMan( ::utl::getProcessServiceFactory() );
+	Reference< XPluginManager > xPMgr( xMan->createInstance(
+		rtl::OUString::createFromAscii("com.sun.star.plugin.PluginManager") ), UNO_QUERY );
+
+	if ( xPMgr.is() )
+	{
+		FilterMap aMap;
+
+		// mimetypes zusammenfassen: eine description, mehrere extensions
+
+		Sequence<PluginDescription > aDescriptions( xPMgr->getPluginDescriptions() );
+		const PluginDescription * pDescriptions = aDescriptions.getConstArray();
+		for ( UINT32 nPos = aDescriptions.getLength(); nPos--; )
+		{
+			const PluginDescription & rDescr = pDescriptions[nPos];
+
+			StrSet& rTypes = aMap[ rDescr.Description ];
+			String aExtension( rDescr.Extension );
+
+			for ( USHORT nCnt = aExtension.GetTokenCount( ';' ); nCnt--; )
+			{
+				// no default plugins anymore
+				String aExt( aExtension.GetToken( nCnt, ';' ) );
+				if ( aExt.CompareToAscii( "*.*" ) != COMPARE_EQUAL )
+					rTypes.insert( aExt );
+			}
+		}
+
+        rPluginNames = Sequence< rtl::OUString >( aMap.size() );
+        rPluginTypes = Sequence< rtl::OUString >( aMap.size() );
+        rtl::OUString* pPluginNames = rPluginNames.getArray();
+        rtl::OUString* pPluginTypes = rPluginTypes.getArray();
+        int nIndex = 0;
+		for ( FilterMap::iterator iPos = aMap.begin(); iPos != aMap.end(); ++iPos )
+		{
+			String aText( (*iPos).first );
+			String aType;
+			StrSet& rTypes = (*iPos).second;
+			StrSet::iterator i = rTypes.begin();
+			while ( i != rTypes.end() )
+			{
+				aType += (*i);
+				++i;
+				if ( i != rTypes.end() )
+					aType += ';';
+			}
+
+			if ( aType.Len() )
+			{
+				aText += String::CreateFromAscii( " (" );
+				aText += aType;
+				aText += ')';
+                pPluginNames[nIndex] = aText;
+                pPluginTypes[nIndex] = aType;
+                nIndex++;
+			}
+		}
+        rPluginNames.realloc( nIndex );
+        rPluginTypes.realloc( nIndex );
+	}
+	else
+		ShowServiceNotAvailableError( NULL,
+			String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.plugin.PluginManager" ) ), TRUE );
+}
+=====================================================================
+Found a 114 line (514 tokens) duplication in the following files: 
+Starting at line 3291 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3459 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            p->nStartPos = p->nEndPos = WW8_CP_MAX;   // Sepx empty
+            p->pMemPos = 0;
+            p->nSprmsLen = 0;
+        }
+        else
+        {
+            pStrm->Seek( nPo );
+            *pStrm >> nSprmSiz; // read len
+
+            if( nSprmSiz > nArrMax )
+            {               // passt nicht
+                delete[] pSprms;
+                nArrMax = nSprmSiz;                 // Hole mehr Speicher
+                pSprms = new BYTE[nArrMax];
+            }
+            pStrm->Read( pSprms, nSprmSiz );        // read Sprms
+
+            p->nSprmsLen = nSprmSiz;
+            p->pMemPos = pSprms;                    // return Position
+        }
+    }
+}
+
+WW8PLCFx& WW8PLCFx_SEPX::operator ++( int )
+{
+    if( pPLCF )
+        (*pPLCF)++;
+    return *this;
+}
+
+const BYTE* WW8PLCFx_SEPX::HasSprm( USHORT nId ) const
+{
+    return HasSprm( nId, pSprms, nSprmSiz);
+}
+
+const BYTE* WW8PLCFx_SEPX::HasSprm( USHORT nId, const BYTE*  pOtherSprms,
+    long nOtherSprmSiz ) const
+{
+    const BYTE *pRet = 0;
+    if (pPLCF)
+    {
+        WW8SprmIter aIter(pOtherSprms, nOtherSprmSiz, maSprmParser);
+        pRet = aIter.FindSprm(nId);
+    }
+    return pRet;
+}
+
+bool WW8PLCFx_SEPX::Find4Sprms(USHORT nId1,USHORT nId2,USHORT nId3,USHORT nId4,
+    BYTE*& p1, BYTE*& p2, BYTE*& p3, BYTE*& p4) const
+{
+    if( !pPLCF )
+        return 0;
+
+    bool bFound = false;
+    p1 = 0;
+    p2 = 0;
+    p3 = 0;
+    p4 = 0;
+
+    BYTE* pSp = pSprms;
+    USHORT i=0;
+    while (i + maSprmParser.MinSprmLen() <= nSprmSiz)
+    {
+        // Sprm gefunden?
+        USHORT nAktId = maSprmParser.GetSprmId(pSp);
+        bool bOk = true;
+        if( nAktId  == nId1 )
+            p1 = pSp + maSprmParser.DistanceToData(nId1);
+        else if( nAktId  == nId2 )
+            p2 = pSp + maSprmParser.DistanceToData(nId2);
+        else if( nAktId  == nId3 )
+            p3 = pSp + maSprmParser.DistanceToData(nId3);
+        else if( nAktId  == nId4 )
+            p4 = pSp + maSprmParser.DistanceToData(nId4);
+        else
+            bOk = false;
+        bFound |= bOk;
+        // erhoehe Zeiger, so dass er auf naechsten Sprm zeigt
+        USHORT x = maSprmParser.GetSprmSize(nAktId, pSp);
+        i += x;
+        pSp += x;
+    }
+    return bFound;
+}
+
+const BYTE* WW8PLCFx_SEPX::HasSprm( USHORT nId, BYTE n2nd ) const
+{
+    if( !pPLCF )
+        return 0;
+
+    BYTE* pSp = pSprms;
+
+    USHORT i=0;
+    while (i + maSprmParser.MinSprmLen() <= nSprmSiz)
+    {
+        // Sprm gefunden?
+        USHORT nAktId = maSprmParser.GetSprmId(pSp);
+        if (nAktId == nId)
+        {
+            BYTE *pRet = pSp + maSprmParser.DistanceToData(nId);
+            if (*pRet == n2nd)
+                return pRet;
+        }
+        // erhoehe Zeiger, so dass er auf naechsten Sprm zeigt
+        USHORT x = maSprmParser.GetSprmSize(nAktId, pSp);
+        i += x;
+        pSp += x;
+    }
+
+    return 0;   // Sprm nicht gefunden
+}
+
+//-----------------------------------------
+WW8PLCFx_SubDoc::WW8PLCFx_SubDoc(SvStream* pSt, ww::WordVersion eVersion,
+=====================================================================
+Found a 18 line (513 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0,// 1690 - 169f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16a0 - 16af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16b0 - 16bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16c0 - 16cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16d0 - 16df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16e0 - 16ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+=====================================================================
+Found a 125 line (512 tokens) duplication in the following files: 
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/WinImplHelper.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/sysui/source/win32/misc/WinImplHelper.cxx
+
+        hwnd, CB_ADDSTRING, 0, reinterpret_cast< LPARAM >(aString.getStr( )) );
+
+    OSL_ASSERT( (CB_ERR != rc) && (CB_ERRSPACE != rc) );
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+OUString SAL_CALL ListboxGetString( HWND hwnd, sal_Int32 aPosition )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+    
+    OUString aString;
+	
+	LRESULT lItem = 
+        SendMessageW( hwnd, CB_GETLBTEXTLEN, aPosition, 0 );			
+
+	if ( (CB_ERR != lItem) && (lItem > 0) )
+	{
+	    // message returns the len of a combobox item 
+		// without trailing '\0' that's why += 1
+		lItem++;
+            
+        CAutoUnicodeBuffer aBuff( lItem );
+
+		LRESULT lRet = 
+            SendMessageW( 
+                hwnd, CB_GETLBTEXT, aPosition, 
+                reinterpret_cast<LPARAM>(&aBuff) );
+
+        OSL_ASSERT( lRet != CB_ERR );
+
+	    if ( CB_ERR != lRet )			
+            aString = OUString( aBuff, lRet );			            
+    } 
+
+    return aString;
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+void SAL_CALL ListboxAddItem( HWND hwnd, const Any& aItem, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+    if ( !aItem.hasValue( ) || 
+         aItem.getValueType( ) != getCppuType((OUString*)0) )
+         throw IllegalArgumentException(
+            OUString::createFromAscii( "invalid value type or any has no value" ),
+            rXInterface,
+            aArgPos );
+
+    OUString cbItem;
+    aItem >>= cbItem;
+
+    ListboxAddString( hwnd, cbItem );
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+void SAL_CALL ListboxAddItems( HWND hwnd, const Any& aItemList, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+    
+    if ( !aItemList.hasValue( ) || 
+         aItemList.getValueType( ) != getCppuType((Sequence<OUString>*)0) )
+         throw IllegalArgumentException(
+            OUString::createFromAscii( "invalid value type or any has no value" ),
+            rXInterface,
+            aArgPos );
+
+    Sequence< OUString > aStringList;
+    aItemList >>= aStringList;
+
+    sal_Int32 nItemCount = aStringList.getLength( );
+    for( sal_Int32 i = 0; i < nItemCount; i++ )
+    {
+        ListboxAddString( hwnd, aStringList[i] );
+    }
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+void SAL_CALL ListboxDeleteItem( HWND hwnd, const Any& aPosition, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+    if ( !aPosition.hasValue( ) || 
+         ( (aPosition.getValueType( ) != getCppuType((sal_Int32*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int16*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int8*)0)) ) )
+         throw IllegalArgumentException(
+            OUString::createFromAscii( "invalid value type or any has no value" ),
+            rXInterface,
+            aArgPos );
+
+    sal_Int32 nPos;
+    aPosition >>= nPos;
+
+    LRESULT lRet = SendMessage( hwnd, CB_DELETESTRING, nPos, 0 );
+
+    // if the return value is CB_ERR the given
+    // index was not correct
+    if ( CB_ERR == lRet )
+        throw IllegalArgumentException(
+            OUString::createFromAscii( "inavlid item position" ),
+            rXInterface,
+            aArgPos );
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+void SAL_CALL ListboxDeleteItems( HWND hwnd, const Any& /*unused*/, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+=====================================================================
+Found a 133 line (511 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpresultsetbase.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/resultsetbase.cxx
+
+using namespace chelp;
+using namespace com::sun::star;
+
+ResultSetBase::ResultSetBase( const uno::Reference< lang::XMultiServiceFactory >&  xMSF,
+							  const uno::Reference< ucb::XContentProvider >&  xProvider,
+							  sal_Int32 nOpenMode,
+							  const uno::Sequence< beans::Property >& seq,
+							  const uno::Sequence< ucb::NumberedSortingInfo >& seqSort )
+	: m_xMSF( xMSF ),
+	  m_xProvider( xProvider ),
+	  m_nRow( -1 ),
+	  m_nWasNull( true ),
+	  m_nOpenMode( nOpenMode ),
+	  m_bRowCountFinal( true ),
+	  m_sProperty( seq ),
+	  m_sSortingInfo( seqSort ),
+	  m_pDisposeEventListeners( 0 ),
+	  m_pRowCountListeners( 0 ),
+	  m_pIsFinalListeners( 0 )
+{
+}
+
+ResultSetBase::~ResultSetBase()
+{
+	delete m_pIsFinalListeners;
+	delete m_pRowCountListeners;
+	delete m_pDisposeEventListeners;
+}
+
+
+// XInterface
+
+void SAL_CALL
+ResultSetBase::acquire(
+	void )
+	throw()
+{
+	OWeakObject::acquire();
+}
+
+
+void SAL_CALL
+ResultSetBase::release(
+	void )
+	throw()
+{
+	OWeakObject::release();
+}
+
+
+
+uno::Any SAL_CALL
+ResultSetBase::queryInterface(
+	const uno::Type& rType )
+	throw( uno::RuntimeException )
+{
+	uno::Any aRet = cppu::queryInterface( rType,
+										  SAL_STATIC_CAST( lang::XComponent*, this),
+										  SAL_STATIC_CAST( sdbc::XRow*, this),
+										  SAL_STATIC_CAST( sdbc::XResultSet*, this),
+										  SAL_STATIC_CAST( sdbc::XResultSetMetaDataSupplier*, this),
+										  SAL_STATIC_CAST( beans::XPropertySet*, this ),
+										  SAL_STATIC_CAST( ucb::XContentAccess*, this) );
+	return aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType );
+}
+
+
+
+// XComponent
+
+
+void SAL_CALL
+ResultSetBase::addEventListener(
+	const uno::Reference< lang::XEventListener >& Listener )
+	throw( uno::RuntimeException )
+{
+	osl::MutexGuard aGuard( m_aMutex );
+	
+	if ( ! m_pDisposeEventListeners )
+		m_pDisposeEventListeners =
+			new cppu::OInterfaceContainerHelper( m_aMutex );
+	
+	m_pDisposeEventListeners->addInterface( Listener );
+}
+
+
+void SAL_CALL
+ResultSetBase::removeEventListener(
+	const uno::Reference< lang::XEventListener >& Listener )
+	throw( uno::RuntimeException )
+{
+	osl::MutexGuard aGuard( m_aMutex );
+
+	if ( m_pDisposeEventListeners )
+		m_pDisposeEventListeners->removeInterface( Listener );
+}
+
+
+
+void SAL_CALL
+ResultSetBase::dispose()
+	throw( uno::RuntimeException )
+{
+	osl::MutexGuard aGuard( m_aMutex );
+
+	lang::EventObject aEvt;
+	aEvt.Source = static_cast< lang::XComponent * >( this );
+
+	if ( m_pDisposeEventListeners && m_pDisposeEventListeners->getLength() )
+	{
+		m_pDisposeEventListeners->disposeAndClear( aEvt );
+	}
+	if( m_pRowCountListeners && m_pRowCountListeners->getLength() )
+	{
+		m_pRowCountListeners->disposeAndClear( aEvt );
+	}
+	if( m_pIsFinalListeners && m_pIsFinalListeners->getLength() )
+	{
+		m_pIsFinalListeners->disposeAndClear( aEvt );
+	}
+}
+
+
+
+//  XResultSet
+
+sal_Bool SAL_CALL
+ResultSetBase::next(
+	void )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	sal_Bool test;
+=====================================================================
+Found a 41 line (511 tokens) duplication in the following files: 
+Starting at line 4084 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3705 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptRibbon2Vert[] =	// adjustment1 : x 2700	 - 8100		def 5400
+{														// adjustment2 : y 14400 - 21600	def 18900
+	{ 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },										// pp
+	{ 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 },					// ccp
+	{ 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },				// pppp
+	{ 0 MSO_I, 4 MSO_I },																// p
+	{ 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 },								// ccp
+	{ 17 MSO_I, 0 },																	// p
+	{ 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I },						// ccp
+	{ 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 },	// pppp
+	{ 20 MSO_I, 21600 },																// p
+	{ 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I },				// ccp
+	{ 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },				// ppp
+	{ 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I },				// ccp
+	{ 11 MSO_I, 24 MSO_I },																// p
+	{ 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I },				// ccp
+	{ 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I },				// ccp
+
+	{ 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I },										// pp
+	{ 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I },				// ccp
+	{ 17 MSO_I, 24 MSO_I },																// p
+	{ 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I },				// ccp
+	{ 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I },				// ccp
+
+	{ 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I },										// pp
+
+	{ 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I }										// pp
+};
+static const sal_uInt16 mso_sptRibbon2Segm[] =
+{
+	0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000,
+	0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
+	0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
+	0x4000, 0x0001, 0x8000,
+	0x4000, 0x0001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptRibbon2Calc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },				// 00
+=====================================================================
+Found a 65 line (511 tokens) duplication in the following files: 
+Starting at line 968 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4596 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbf, 0xbf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+{ 0x00, 0xfe, 0xde },
+{ 0x00, 0xff, 0xbe },
+=====================================================================
+Found a 18 line (511 tokens) duplication in the following files: 
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1232 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16b0 - 16bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16c0 - 16cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16d0 - 16df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16e0 - 16ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 57 line (509 tokens) duplication in the following files: 
+Starting at line 5751 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 8823 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 11470 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 14542 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+        CPPUNIT_TEST_SUITE( append_007_Int64_Negative );
+        CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
+        CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
+        CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
+        CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
+        CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
+        CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
+        CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
+        CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
+        CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
+        CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
+        CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
+        CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
+        CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
+        CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
+        CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
+        CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
+        CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
+        CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
+        CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
+        CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
+        CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
+        CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
+        CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
+        CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
+        CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
+        CPPUNIT_TEST( append_051 ); CPPUNIT_TEST( append_052 );
+        CPPUNIT_TEST( append_053 ); CPPUNIT_TEST( append_054 );
+        CPPUNIT_TEST( append_055 ); CPPUNIT_TEST( append_056 );
+        CPPUNIT_TEST( append_057 ); CPPUNIT_TEST( append_058 );
+        CPPUNIT_TEST( append_059 ); CPPUNIT_TEST( append_060 );
+        CPPUNIT_TEST( append_061 ); CPPUNIT_TEST( append_062 );
+        CPPUNIT_TEST( append_063 ); CPPUNIT_TEST( append_064 );
+        CPPUNIT_TEST( append_065 ); CPPUNIT_TEST( append_066 );
+        CPPUNIT_TEST( append_067 ); CPPUNIT_TEST( append_068 );
+        CPPUNIT_TEST( append_069 ); CPPUNIT_TEST( append_070 );
+        CPPUNIT_TEST( append_071 ); CPPUNIT_TEST( append_072 );
+        CPPUNIT_TEST( append_073 ); CPPUNIT_TEST( append_074 );
+        CPPUNIT_TEST( append_075 ); CPPUNIT_TEST( append_076 );
+        CPPUNIT_TEST( append_077 ); CPPUNIT_TEST( append_078 );
+        CPPUNIT_TEST( append_079 ); CPPUNIT_TEST( append_080 );
+        CPPUNIT_TEST( append_081 ); CPPUNIT_TEST( append_082 );
+        CPPUNIT_TEST( append_083 ); CPPUNIT_TEST( append_084 );
+        CPPUNIT_TEST( append_085 ); CPPUNIT_TEST( append_086 );
+        CPPUNIT_TEST( append_087 ); CPPUNIT_TEST( append_088 );
+        CPPUNIT_TEST( append_089 ); CPPUNIT_TEST( append_090 );
+        CPPUNIT_TEST( append_091 ); CPPUNIT_TEST( append_092 );
+        CPPUNIT_TEST( append_093 ); CPPUNIT_TEST( append_094 );
+        CPPUNIT_TEST( append_095 ); CPPUNIT_TEST( append_096 );
+        CPPUNIT_TEST( append_097 ); CPPUNIT_TEST( append_098 );
+        CPPUNIT_TEST( append_099 ); CPPUNIT_TEST( append_100 );
+        CPPUNIT_TEST_SUITE_END();
+    };
+//------------------------------------------------------------------------
+// testing the method append( sal_Int64 i, sal_Int16 radix ) where radix = -5
+//------------------------------------------------------------------------
+    class  append_007_Int64_WrongRadix : public CppUnit::TestFixture
+=====================================================================
+Found a 18 line (509 tokens) duplication in the following files: 
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d700 - d70f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d710 - d71f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d720 - d72f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d730 - d73f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d740 - d74f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d750 - d75f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d760 - d76f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d770 - d77f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d780 - d78f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d790 - d79f
+     5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7a0 - d7af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7b0 - d7bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7c0 - d7cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7d0 - d7df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7e0 - d7ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7f0 - d7ff
+=====================================================================
+Found a 87 line (508 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/performance/ubtest.cxx
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/processfactory/componentfactory.cxx
+
+	oslModule lib = osl_loadModule( rLibName.pData, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL );
+	if (lib)
+	{
+		void * pSym;
+
+		// ========================= LATEST VERSION =========================
+		OUString aGetEnvName( RTL_CONSTASCII_USTRINGPARAM(COMPONENT_GETENV) );
+		if (pSym = osl_getSymbol( lib, aGetEnvName.pData ))
+		{
+			uno_Environment * pCurrentEnv = 0;
+			uno_Environment * pEnv = 0;
+			const sal_Char * pEnvTypeName = 0;
+			(*((component_getImplementationEnvironmentFunc)pSym))( &pEnvTypeName, &pEnv );
+
+			sal_Bool bNeedsMapping =
+				(pEnv || 0 != rtl_str_compare( pEnvTypeName, CPPU_CURRENT_LANGUAGE_BINDING_NAME ));
+
+			OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+			if (bNeedsMapping)
+			{
+				if (! pEnv)
+					uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+				if (pEnv)
+				{
+					OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
+					uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+					if (pCurrentEnv)
+						bNeedsMapping = (pEnv != pCurrentEnv);
+				}
+			}
+
+			OUString aGetFactoryName( RTL_CONSTASCII_USTRINGPARAM(COMPONENT_GETFACTORY) );
+			if (pSym = osl_getSymbol( lib, aGetFactoryName.pData ))
+			{
+				OString aImplName( OUStringToOString( rImplName, RTL_TEXTENCODING_ASCII_US ) );
+
+				if (bNeedsMapping)
+				{
+					if (pEnv && pCurrentEnv)
+					{
+						Mapping aCurrent2Env( pCurrentEnv, pEnv );
+						Mapping aEnv2Current( pEnv, pCurrentEnv );
+
+						if (aCurrent2Env.is() && aEnv2Current.is())
+						{
+							void * pSMgr = aCurrent2Env.mapInterface(
+								xSF.get(), ::getCppuType( (const Reference< XMultiServiceFactory > *)0 ) );
+							void * pKey = aCurrent2Env.mapInterface(
+								xKey.get(), ::getCppuType( (const Reference< XRegistryKey > *)0 ) );
+
+							void * pSSF = (*((component_getFactoryFunc)pSym))(
+								aImplName.getStr(), pSMgr, pKey );
+
+							if (pKey)
+								(*pEnv->pExtEnv->releaseInterface)( pEnv->pExtEnv, pKey );
+							if (pSMgr)
+								(*pEnv->pExtEnv->releaseInterface)( pEnv->pExtEnv, pSMgr );
+
+							if (pSSF)
+							{
+								aEnv2Current.mapInterface(
+									reinterpret_cast< void ** >( &xRet ),
+									pSSF, ::getCppuType( (const Reference< XSingleServiceFactory > *)0 ) );
+								(*pEnv->pExtEnv->releaseInterface)( pEnv->pExtEnv, pSSF );
+							}
+						}
+					}
+				}
+				else
+				{
+					XSingleServiceFactory * pRet = (XSingleServiceFactory *)
+						(*((component_getFactoryFunc)pSym))(
+							aImplName.getStr(), xSF.get(), xKey.get() );
+					if (pRet)
+					{
+						xRet = pRet;
+						pRet->release();
+					}
+				}
+			}
+
+			if (pEnv)
+				(*pEnv->release)( pEnv );
+			if (pCurrentEnv)
+				(*pCurrentEnv->release)( pCurrentEnv );
+		}
+=====================================================================
+Found a 89 line (506 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/signer.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/verifier.cxx
+
+	doc = xmlParseFile( argv[2] ) ;
+	if( doc == NULL || xmlDocGetRootElement( doc ) == NULL ) {
+		fprintf( stderr , "### Cannot load template xml document!\n" ) ;
+		goto done ;
+	}
+
+	//Find the signature template
+	tplNode = xmlSecFindNode( xmlDocGetRootElement( doc ), xmlSecNodeSignature, xmlSecDSigNs ) ;
+	if( tplNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature template!\n" ) ;
+		goto done ;
+	}
+
+	//Find the element with ID attribute
+	tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", ( xmlChar* )"http://openoffice.org/2000/office" ) ;
+	if( tarNode == NULL ) {
+		tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", NULL ) ;
+	}
+										
+	//Find the "id" attrbute in the element
+	if( tarNode != NULL ) {
+		if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"id" ) ) != NULL ) {
+			//NULL
+		} else if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"Id" ) ) != NULL ) {
+			//NULL
+		} else {
+			idAttr = NULL ;
+		}
+	}
+										
+	//Add ID to DOM
+	if( idAttr != NULL ) {
+		idValue = xmlNodeListGetString( tarNode->doc, idAttr->children, 1 ) ;
+		if( idValue == NULL ) {
+			fprintf( stderr , "### the ID value is NULL!\n" ) ;
+			goto done ;
+		}
+										
+		if( xmlAddID( NULL, doc, idValue, idAttr ) == NULL ) {
+			fprintf( stderr , "### Can not add the ID value!\n" ) ;
+			goto done ;
+		}
+	}
+
+	//Reference handler
+	//Find the signature reference
+	tarNode = xmlSecFindNode( tplNode, xmlSecNodeReference, xmlSecDSigNs ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature reference!\n" ) ;
+		goto done ;
+	}
+
+	//Find the "URI" attrbute in the reference
+	uriAttr = xmlHasProp( tarNode, ( xmlChar* )"URI" ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find URI of the reference!\n" ) ;
+		goto done ;
+	}
+
+	//Get the "URI" attrbute value
+	uriValue = xmlNodeListGetString( tarNode->doc, uriAttr->children, 1 ) ;
+	if( uriValue == NULL ) {
+		fprintf( stderr , "### the URI value is NULL!\n" ) ;
+		goto done ;
+	}
+
+	if( strchr( ( const char* )uriValue, '/' ) != NULL && strchr( ( const char* )uriValue, '#' ) == NULL ) {
+		fprintf( stdout , "### Find a stream URI [%s]\n", uriValue ) ;
+	//	uri = new ::rtl::OUString( ( const sal_Unicode* )uriValue ) ;
+		uri = new ::rtl::OUString( ( const sal_Char* )uriValue, xmlStrlen( uriValue ), RTL_TEXTENCODING_ASCII_US ) ;
+	}
+
+	if( uri != NULL ) {
+		fprintf( stdout , "### Find the URI [%s]\n", OUStringToOString( *uri , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		Reference< XInputStream > xStream = createStreamFromFile( *uri ) ;
+		if( !xStream.is() ) {
+			fprintf( stderr , "### Can not get the URI stream!\n" ) ;
+			goto done ;
+		}
+
+		xUriBinding = new OUriBinding( *uri, xStream ) ;
+	}
+
+
+	try {
+		Reference< XMultiComponentFactory > xManager = NULL ;
+		Reference< XComponentContext > xContext = NULL ;
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ),  OUString::createFromAscii( argv[3] ) ) ;
+=====================================================================
+Found a 75 line (506 tokens) duplication in the following files: 
+Starting at line 2641 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4803 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+void SAL_CALL OStorage::insertRelationships(  const uno::Sequence< uno::Sequence< beans::StringPair > >& aEntries, ::sal_Bool bReplace  )
+		throw ( container::ElementExistException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	::rtl::OUString aIDTag( RTL_CONSTASCII_USTRINGPARAM( "Id" ) );
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	uno::Sequence< uno::Sequence< beans::StringPair > > aResultSeq( aSeq.getLength() + aEntries.getLength() );
+	sal_Int32 nResultInd = 0;
+
+	for ( sal_Int32 nIndTarget1 = 0; nIndTarget1 < aSeq.getLength(); nIndTarget1++ )
+		for ( sal_Int32 nIndTarget2 = 0; nIndTarget2 < aSeq[nIndTarget1].getLength(); nIndTarget2++ )
+			if ( aSeq[nIndTarget1][nIndTarget2].First.equals( aIDTag ) )
+			{
+				sal_Int32 nIndSourceSame = -1;
+
+				for ( sal_Int32 nIndSource1 = 0; nIndSource1 < aEntries.getLength(); nIndSource1++ )
+					for ( sal_Int32 nIndSource2 = 0; nIndSource2 < aEntries[nIndSource1].getLength(); nIndSource2++ )
+					{
+						if ( aEntries[nIndSource1][nIndSource2].First.equals( aIDTag ) )
+						{
+							if ( aEntries[nIndSource1][nIndSource2].Second.equals( aSeq[nIndTarget1][nIndTarget2].Second ) )
+							{
+								if ( !bReplace )
+									throw container::ElementExistException();
+
+								nIndSourceSame = nIndSource1;
+							}
+							
+							break;
+						}
+					}
+
+				if ( nIndSourceSame == -1 )
+				{
+					// no such element in the provided sequence
+					aResultSeq[nResultInd++] = aSeq[nIndTarget1];
+				}
+
+				break;
+			}
+
+	for ( sal_Int32 nIndSource1 = 0; nIndSource1 < aEntries.getLength(); nIndSource1++ )
+	{
+		aResultSeq[nResultInd].realloc( aEntries[nIndSource1].getLength() );
+		sal_Bool bHasID = sal_False;
+		sal_Int32 nResInd2 = 1;
+
+		for ( sal_Int32 nIndSource2 = 0; nIndSource2 < aEntries[nIndSource1].getLength(); nIndSource2++ )
+			if ( aEntries[nIndSource1][nIndSource2].First.equals( aIDTag ) )
+			{
+				aResultSeq[nResultInd][0] = aEntries[nIndSource1][nIndSource2];
+				bHasID = sal_True;
+			}
+			else if ( nResInd2 < aResultSeq[nResultInd].getLength() )
+				aResultSeq[nResultInd][nResInd2++] = aEntries[nIndSource1][nIndSource2];
+			else
+				throw io::IOException(); // TODO: illegal relation ( no ID )
+
+		if ( !bHasID )
+			throw io::IOException(); // TODO: illegal relations
+
+		nResultInd++;
+	}
+
+	aResultSeq.realloc( nResultInd );
+	m_pImpl->m_aRelInfo = aResultSeq;
+=====================================================================
+Found a 89 line (504 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/verifier.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/signer.cxx
+
+	doc = xmlParseFile( argv[1] ) ;
+	if( doc == NULL || xmlDocGetRootElement( doc ) == NULL ) {
+		fprintf( stderr , "### Cannot load template xml document!\n" ) ;
+		goto done ;
+	}
+
+	//Find the signature template
+	tplNode = xmlSecFindNode( xmlDocGetRootElement( doc ), xmlSecNodeSignature, xmlSecDSigNs ) ;
+	if( tplNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature template!\n" ) ;
+		goto done ;
+	}
+
+	//Find the element with ID attribute
+	//Here we only try to find the "document" node.
+	tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", ( xmlChar* )"http://openoffice.org/2000/office" ) ;
+	if( tarNode == NULL ) {
+		tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", NULL ) ;
+	}
+
+	//Find the "id" attrbute in the element
+	if( tarNode != NULL ) {
+		if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"id" ) ) != NULL ) {
+			//NULL
+		} else if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"Id" ) ) != NULL ) {
+			//NULL
+		} else {
+			idAttr = NULL ;
+		}
+	}
+
+	//Add ID to DOM
+	if( idAttr != NULL ) {
+		idValue = xmlNodeListGetString( tarNode->doc, idAttr->children, 1 ) ;
+		if( idValue == NULL ) {
+			fprintf( stderr , "### the ID value is NULL!\n" ) ;
+			goto done ;
+		}
+
+		if( xmlAddID( NULL, doc, idValue, idAttr ) == NULL ) {
+			fprintf( stderr , "### Can not add the ID value!\n" ) ;
+			goto done ;
+		}
+	}
+
+	//Reference handler
+	//Find the signature reference
+	tarNode = xmlSecFindNode( tplNode, xmlSecNodeReference, xmlSecDSigNs ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature reference!\n" ) ;
+		goto done ;
+	}
+
+	//Find the "URI" attrbute in the reference
+	uriAttr = xmlHasProp( tarNode, ( xmlChar* )"URI" ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find URI of the reference!\n" ) ;
+		goto done ;
+	}
+
+	//Get the "URI" attrbute value
+	uriValue = xmlNodeListGetString( tarNode->doc, uriAttr->children, 1 ) ;
+	if( uriValue == NULL ) {
+		fprintf( stderr , "### the URI value is NULL!\n" ) ;
+		goto done ;
+	}
+
+	if( strchr( ( const char* )uriValue, '/' ) != NULL && strchr( ( const char* )uriValue, '#' ) == NULL ) {
+		fprintf( stdout , "### Find a stream URI [%s]\n", uriValue ) ;
+	//	uri = new ::rtl::OUString( ( const sal_Unicode* )uriValue ) ;
+		uri = new ::rtl::OUString( ( const sal_Char* )uriValue, xmlStrlen( uriValue ), RTL_TEXTENCODING_ASCII_US ) ;
+	}
+
+	if( uri != NULL ) {
+		fprintf( stdout , "### Find the URI [%s]\n", OUStringToOString( *uri , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		Reference< XInputStream > xStream = createStreamFromFile( *uri ) ;
+		if( !xStream.is() ) {
+			fprintf( stderr , "### Can not get the URI stream!\n" ) ;
+			goto done ;
+		}
+
+		xUriBinding = new OUriBinding( *uri, xStream ) ;
+	}
+
+	try {
+		Reference< XMultiComponentFactory > xManager = NULL ;
+		Reference< XComponentContext > xContext = NULL ;
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ), OUString::createFromAscii( argv[3] ) ) ;
+=====================================================================
+Found a 129 line (504 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/padmin/source/prgsbar.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/prgsbar.cxx
+
+		Color aColor = rStyleSettings.GetHighlightColor();
+		if ( IsControlForeground() )
+			aColor = GetControlForeground();
+		if ( aColor.IsRGBEqual( GetBackground().GetColor() ) )
+		{
+			if ( aColor.GetLuminance() > 100 )
+				aColor.DecreaseLuminance( 64 );
+			else
+				aColor.IncreaseLuminance( 64 );
+		}
+		SetLineColor();
+		SetFillColor( aColor );
+/* !!! Derzeit unterstuetzen wir keine Textausgaben
+		SetTextColor( aColor );
+		SetTextFillColor();
+*/
+	}
+}
+
+// -----------------------------------------------------------------------
+
+void ProgressBar::ImplDrawProgress( USHORT nOldPerc, USHORT nNewPerc )
+{
+	if ( mbCalcNew )
+	{
+		mbCalcNew = FALSE;
+
+		Size aSize = GetOutputSizePixel();
+		mnPrgsHeight = aSize.Height()-(PROGRESSBAR_WIN_OFFSET*2);
+		mnPrgsWidth = (mnPrgsHeight*2)/3;
+		maPos.Y() = PROGRESSBAR_WIN_OFFSET;
+		long nMaxWidth = (aSize.Width()-(PROGRESSBAR_WIN_OFFSET*2)+PROGRESSBAR_OFFSET);
+		USHORT nMaxCount = (USHORT)(nMaxWidth / (mnPrgsWidth+PROGRESSBAR_OFFSET));
+		if ( nMaxCount <= 1 )
+			nMaxCount = 1;
+		else
+		{
+			while ( ((10000/(10000/nMaxCount))*(mnPrgsWidth+PROGRESSBAR_OFFSET)) > nMaxWidth )
+				nMaxCount--;
+		}
+		mnPercentCount = 10000/nMaxCount;
+		nMaxWidth = ((10000/(10000/nMaxCount))*(mnPrgsWidth+PROGRESSBAR_OFFSET))-PROGRESSBAR_OFFSET;
+		maPos.X() = (aSize.Width()-nMaxWidth)/2;
+	}
+
+	::DrawProgress( this, maPos, PROGRESSBAR_OFFSET, mnPrgsWidth, mnPrgsHeight,
+					nOldPerc*100, nNewPerc*100, mnPercentCount,
+                    Rectangle( Point(), GetSizePixel() ) );
+}
+
+// -----------------------------------------------------------------------
+
+void ProgressBar::Paint( const Rectangle& )
+{
+	ImplDrawProgress( 0, mnPercent );
+}
+
+// -----------------------------------------------------------------------
+
+void ProgressBar::Resize()
+{
+	mbCalcNew = TRUE;
+	if ( IsReallyVisible() )
+		Invalidate();
+}
+
+// -----------------------------------------------------------------------
+
+void ProgressBar::SetValue( USHORT nNewPercent )
+{
+	DBG_ASSERTWARNING( nNewPercent <= 100, "StatusBar::SetProgressValue(): nPercent > 100" );
+
+	if ( nNewPercent < mnPercent )
+	{
+		mbCalcNew = TRUE;
+		mnPercent = nNewPercent;
+		if ( IsReallyVisible() )
+		{
+			Invalidate();
+			Update();
+		}
+	}
+	else
+	{
+		ImplDrawProgress( mnPercent, nNewPercent );
+		mnPercent = nNewPercent;
+	}
+}
+
+// -----------------------------------------------------------------------
+
+void ProgressBar::StateChanged( StateChangedType nType )
+{
+/* !!! Derzeit unterstuetzen wir keine Textausgaben
+	if ( (nType == STATE_CHANGE_ZOOM) ||
+		 (nType == STATE_CHANGE_CONTROLFONT) )
+	{
+		ImplInitSettings( TRUE, FALSE, FALSE );
+		Invalidate();
+	}
+	else
+*/
+	if ( nType == STATE_CHANGE_CONTROLFOREGROUND )
+	{
+		ImplInitSettings( FALSE, TRUE, FALSE );
+		Invalidate();
+	}
+	else if ( nType == STATE_CHANGE_CONTROLBACKGROUND )
+	{
+		ImplInitSettings( FALSE, FALSE, TRUE );
+		Invalidate();
+	}
+
+	Window::StateChanged( nType );
+}
+
+// -----------------------------------------------------------------------
+
+void ProgressBar::DataChanged( const DataChangedEvent& rDCEvt )
+{
+	if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
+		 (rDCEvt.GetFlags() & SETTINGS_STYLE) )
+	{
+		ImplInitSettings( TRUE, TRUE, TRUE );
+		Invalidate();
+	}
+
+	Window::DataChanged( rDCEvt );
+}
+=====================================================================
+Found a 18 line (503 tokens) duplication in the following files: 
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0490 - 049f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04a0 - 04af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04b0 - 04bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04c0 - 04cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04d0 - 04df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04e0 - 04ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04f0 - 04ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0500 - 050f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 80 line (502 tokens) duplication in the following files: 
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testByte() {
+=====================================================================
+Found a 96 line (501 tokens) duplication in the following files: 
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpresultsetbase.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/resultsetbase.cxx
+
+	if( 0 <= m_nRow && sal::static_int_cast<sal_uInt32>( m_nRow ) < m_aItems.size() )
+		return m_xProvider->queryContent( queryContentIdentifier() );
+	else
+		return uno::Reference< ucb::XContent >();
+}
+
+
+
+class XPropertySetInfoImpl
+    : public cppu::OWeakObject,
+      public beans::XPropertySetInfo
+{
+public:
+    
+    XPropertySetInfoImpl( const uno::Sequence< beans::Property >& aSeq )
+        : m_aSeq( aSeq )
+    {
+    }
+    
+    void SAL_CALL acquire( void )
+        throw()
+    {
+        OWeakObject::acquire();
+    }
+
+    
+    void SAL_CALL release( void )
+        throw()
+    {
+        OWeakObject::release();
+    }
+    
+    uno::Any SAL_CALL queryInterface( const uno::Type& rType )
+        throw( uno::RuntimeException )
+    {
+        uno::Any aRet = cppu::queryInterface( rType,
+                                              SAL_STATIC_CAST( beans::XPropertySetInfo*, this ) );
+        return aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType );
+    }    
+    
+    uno::Sequence< beans::Property > SAL_CALL getProperties()
+        throw( uno::RuntimeException )
+    {
+        return m_aSeq;
+    }
+    
+    beans::Property SAL_CALL getPropertyByName( const ::rtl::OUString& aName )
+        throw( beans::UnknownPropertyException,
+               uno::RuntimeException)
+    {
+        for( int i = 0; i < m_aSeq.getLength(); ++i )
+            if( aName == m_aSeq[i].Name )
+                return m_aSeq[i];
+        throw beans::UnknownPropertyException();
+    }
+    
+    sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& Name )
+        throw( uno::RuntimeException )
+    {
+        for( int i = 0; i < m_aSeq.getLength(); ++i )
+            if( Name == m_aSeq[i].Name )
+                return true;
+        return false;
+    }
+
+private:
+    
+    uno::Sequence< beans::Property > m_aSeq;
+};
+
+
+
+// XPropertySet
+uno::Reference< beans::XPropertySetInfo > SAL_CALL
+ResultSetBase::getPropertySetInfo()
+	throw( uno::RuntimeException)
+{
+	uno::Sequence< beans::Property > seq(2);
+	seq[0].Name = rtl::OUString::createFromAscii( "RowCount" );
+	seq[0].Handle = -1;
+	seq[0].Type = getCppuType( static_cast< sal_Int32* >(0) );
+	seq[0].Attributes = beans::PropertyAttribute::READONLY;
+    
+	seq[1].Name = rtl::OUString::createFromAscii( "IsRowCountFinal" );
+	seq[1].Handle = -1;
+	seq[1].Type = getCppuType( static_cast< sal_Bool* >(0) );
+	seq[1].Attributes = beans::PropertyAttribute::READONLY;
+
+	//t
+	return uno::Reference< beans::XPropertySetInfo > ( new XPropertySetInfoImpl( seq ) );
+}
+
+
+
+void SAL_CALL ResultSetBase::setPropertyValue(
+	const rtl::OUString& aPropertyName, const uno::Any& aValue )
+=====================================================================
+Found a 85 line (500 tokens) duplication in the following files: 
+Starting at line 1249 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 1401 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+                                     const ::rtl::OUString& rString )
+{
+    sal_Bool bSuccess = sal_True;
+
+    rtl::OUString aDateStr, aTimeStr, sDoubleStr;
+    sal_Int32 nPos = rString.indexOf( (sal_Unicode) 'T' );
+    sal_Int32 nPos2 = rString.indexOf( (sal_Unicode) ',' );
+    if (nPos2 < 0)
+        nPos2 = rString.indexOf( (sal_Unicode) '.' );
+    if ( nPos >= 0 )
+    {
+        aDateStr = rString.copy( 0, nPos );
+        if ( nPos2 >= 0 )
+        {
+            aTimeStr = rString.copy( nPos + 1, nPos2 - nPos - 1 );
+            sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0."));
+            sDoubleStr += rString.copy( nPos2 + 1 );
+        }
+        else
+        {
+            aTimeStr = rString.copy(nPos + 1);
+            sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0.0"));
+        }
+    }
+    else
+        aDateStr = rString;         // no separator: only date part
+
+    sal_Int32 nYear  = 1899;
+    sal_Int32 nMonth = 12;
+    sal_Int32 nDay   = 30;
+    sal_Int32 nHour  = 0;
+    sal_Int32 nMin   = 0;
+    sal_Int32 nSec   = 0;
+
+    const sal_Unicode* pStr = aDateStr.getStr();
+    sal_Int32 nDateTokens = 1;
+    while ( *pStr )
+    {
+        if ( *pStr == '-' )
+            nDateTokens++;
+        pStr++;
+    }
+    if ( nDateTokens > 3 || aDateStr.getLength() == 0 )
+        bSuccess = sal_False;
+    else
+    {
+        sal_Int32 n = 0;
+        if ( !convertNumber( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) )
+            bSuccess = sal_False;
+        if ( nDateTokens >= 2 )
+            if ( !convertNumber( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) )
+                bSuccess = sal_False;
+        if ( nDateTokens >= 3 )
+            if ( !convertNumber( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) )
+                bSuccess = sal_False;
+    }
+
+    if ( aTimeStr.getLength() > 0 )           // time is optional
+    {
+        pStr = aTimeStr.getStr();
+        sal_Int32 nTimeTokens = 1;
+        while ( *pStr )
+        {
+            if ( *pStr == ':' )
+                nTimeTokens++;
+            pStr++;
+        }
+        if ( nTimeTokens > 3 )
+            bSuccess = sal_False;
+        else
+        {
+            sal_Int32 n = 0;
+            if ( !convertNumber( nHour, aTimeStr.getToken( 0, ':', n ), 0, 23 ) )
+                bSuccess = sal_False;
+            if ( nTimeTokens >= 2 )
+                if ( !convertNumber( nMin, aTimeStr.getToken( 0, ':', n ), 0, 59 ) )
+                    bSuccess = sal_False;
+            if ( nTimeTokens >= 3 )
+                if ( !convertNumber( nSec, aTimeStr.getToken( 0, ':', n ), 0, 59 ) )
+                    bSuccess = sal_False;
+        }
+    }
+
+    if (bSuccess)
+    {
+=====================================================================
+Found a 121 line (500 tokens) duplication in the following files: 
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+	PrinterInfoManager& rManager( PrinterInfoManager::get() );
+	return rManager.getDefaultPrinter();
+}
+
+// =======================================================================
+
+PspSalInfoPrinter::PspSalInfoPrinter()
+{
+	m_pGraphics = NULL;
+    m_bPapersInit = false;
+}
+
+// -----------------------------------------------------------------------
+
+PspSalInfoPrinter::~PspSalInfoPrinter()
+{
+	if( m_pGraphics )
+	{
+		delete m_pGraphics;
+		m_pGraphics = NULL;
+	}
+}
+
+// -----------------------------------------------------------------------
+
+void PspSalInfoPrinter::InitPaperFormats( const ImplJobSetup* )
+{
+    m_aPaperFormats.clear();
+    m_bPapersInit = true;
+
+    if( m_aJobData.m_pParser )
+    {
+        const PPDKey* pKey = m_aJobData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) ) );
+        if( pKey )
+        {
+            int nValues = pKey->countValues();
+            for( int i = 0; i < nValues; i++ )
+            {
+                const PPDValue* pValue = pKey->getValue( i );
+                vcl::PaperInfo aInfo;
+                aInfo.m_aPaperName = pValue->m_aOptionTranslation;
+                if( ! aInfo.m_aPaperName.Len() )
+                    aInfo.m_aPaperName = pValue->m_aOption;
+                int nWidth = 0, nHeight = 0;
+                m_aJobData.m_pParser->getPaperDimension( pValue->m_aOption, nWidth, nHeight );
+                aInfo.m_nPaperWidth = (unsigned long)((PtTo10Mu( nWidth )+50)/100);
+                aInfo.m_nPaperHeight = (unsigned long)((PtTo10Mu( nHeight )+50)/100);
+                m_aPaperFormats.push_back( aInfo );
+            }
+        }
+    }
+}
+
+// -----------------------------------------------------------------------
+
+DuplexMode PspSalInfoPrinter::GetDuplexMode( const ImplJobSetup* pJobSetup )
+{
+    DuplexMode aRet = DUPLEX_UNKNOWN;
+	PrinterInfo aInfo( PrinterInfoManager::get().getPrinterInfo( pJobSetup->maPrinterName ) );
+	if ( pJobSetup->mpDriverData )
+		JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, aInfo );
+    if( aInfo.m_pParser )
+    {
+        const PPDKey * pKey = aInfo.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "Duplex" ) ) );
+        if( pKey )
+        {
+            const PPDValue* pVal = aInfo.m_aContext.getValue( pKey );
+            if( pVal && (
+                pVal->m_aOption.EqualsIgnoreCaseAscii( "None" )          ||
+                pVal->m_aOption.EqualsIgnoreCaseAscii( "Simplex", 0, 7 )
+                ) )
+            {
+                aRet = DUPLEX_OFF;
+            }
+            else
+                aRet = DUPLEX_ON;
+        }
+    }
+    return aRet;
+}
+
+// -----------------------------------------------------------------------
+
+int PspSalInfoPrinter::GetLandscapeAngle( const ImplJobSetup* )
+{
+    return 900;
+}
+
+// -----------------------------------------------------------------------
+
+SalGraphics* PspSalInfoPrinter::GetGraphics()
+{
+	// return a valid pointer only once
+	// the reasoning behind this is that we could have different
+	// SalGraphics that can run in multiple threads
+	// (future plans)
+	SalGraphics* pRet = NULL;
+	if( ! m_pGraphics )
+	{
+		m_pGraphics = new PspGraphics( &m_aJobData, &m_aPrinterGfx, NULL, false, this );
+        m_pGraphics->SetLayout( 0 );
+		pRet = m_pGraphics;
+	}
+	return pRet;
+}
+
+// -----------------------------------------------------------------------
+
+void PspSalInfoPrinter::ReleaseGraphics( SalGraphics* pGraphics )
+{
+	if( pGraphics == m_pGraphics )
+	{
+		delete pGraphics;
+		m_pGraphics = NULL;
+	}
+	return;
+}
+
+// -----------------------------------------------------------------------
+
+BOOL PspSalInfoPrinter::Setup( SalFrame* pFrame, ImplJobSetup* pJobSetup )
+=====================================================================
+Found a 41 line (500 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+int Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char *, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char *));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+=====================================================================
+Found a 89 line (499 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/signer.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/verifier.cxx
+
+	doc = xmlParseFile( argv[1] ) ;
+	if( doc == NULL || xmlDocGetRootElement( doc ) == NULL ) {
+		fprintf( stderr , "### Cannot load template xml document!\n" ) ;
+		goto done ;
+	}
+
+	//Find the signature template
+	tplNode = xmlSecFindNode( xmlDocGetRootElement( doc ), xmlSecNodeSignature, xmlSecDSigNs ) ;
+	if( tplNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature template!\n" ) ;
+		goto done ;
+	}
+
+	//Find the element with ID attribute
+	tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", ( xmlChar* )"http://openoffice.org/2000/office" ) ;
+	if( tarNode == NULL ) {
+		tarNode = xmlSecFindNode( xmlDocGetRootElement( doc ), ( xmlChar* )"document", NULL ) ;
+	}
+										
+	//Find the "id" attrbute in the element
+	if( tarNode != NULL ) {
+		if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"id" ) ) != NULL ) {
+			//NULL
+		} else if( ( idAttr = xmlHasProp( tarNode, ( xmlChar* )"Id" ) ) != NULL ) {
+			//NULL
+		} else {
+			idAttr = NULL ;
+		}
+	}
+										
+	//Add ID to DOM
+	if( idAttr != NULL ) {
+		idValue = xmlNodeListGetString( tarNode->doc, idAttr->children, 1 ) ;
+		if( idValue == NULL ) {
+			fprintf( stderr , "### the ID value is NULL!\n" ) ;
+			goto done ;
+		}
+										
+		if( xmlAddID( NULL, doc, idValue, idAttr ) == NULL ) {
+			fprintf( stderr , "### Can not add the ID value!\n" ) ;
+			goto done ;
+		}
+	}
+
+	//Reference handler
+	//Find the signature reference
+	tarNode = xmlSecFindNode( tplNode, xmlSecNodeReference, xmlSecDSigNs ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find the signature reference!\n" ) ;
+		goto done ;
+	}
+
+	//Find the "URI" attrbute in the reference
+	uriAttr = xmlHasProp( tarNode, ( xmlChar* )"URI" ) ;
+	if( tarNode == NULL ) {
+		fprintf( stderr , "### Cannot find URI of the reference!\n" ) ;
+		goto done ;
+	}
+
+	//Get the "URI" attrbute value
+	uriValue = xmlNodeListGetString( tarNode->doc, uriAttr->children, 1 ) ;
+	if( uriValue == NULL ) {
+		fprintf( stderr , "### the URI value is NULL!\n" ) ;
+		goto done ;
+	}
+
+	if( strchr( ( const char* )uriValue, '/' ) != NULL && strchr( ( const char* )uriValue, '#' ) == NULL ) {
+		fprintf( stdout , "### Find a stream URI [%s]\n", uriValue ) ;
+	//	uri = new ::rtl::OUString( ( const sal_Unicode* )uriValue ) ;
+		uri = new ::rtl::OUString( ( const sal_Char* )uriValue, xmlStrlen( uriValue ), RTL_TEXTENCODING_ASCII_US ) ;
+	}
+
+	if( uri != NULL ) {
+		fprintf( stdout , "### Find the URI [%s]\n", OUStringToOString( *uri , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		Reference< XInputStream > xStream = createStreamFromFile( *uri ) ;
+		if( !xStream.is() ) {
+			fprintf( stderr , "### Can not get the URI stream!\n" ) ;
+			goto done ;
+		}
+
+		xUriBinding = new OUriBinding( *uri, xStream ) ;
+	}
+
+
+	try {
+		Reference< XMultiComponentFactory > xManager = NULL ;
+		Reference< XComponentContext > xContext = NULL ;
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ),  OUString::createFromAscii( argv[2] ) ) ;
+=====================================================================
+Found a 96 line (499 tokens) duplication in the following files: 
+Starting at line 4327 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4535 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            if( (pD->nEndPos < nNext) && (pD->nStartPos == WW8_CP_MAX) )
+            {
+                // sonst ist Anfang = Ende
+                nNext = pD->nEndPos;
+                nNextIdx = i;
+                bStart = false;
+            }
+        }
+    }
+    for (i=nPLCF; i > 0; i--)
+    {
+        pD = &aD[i-1];
+        if (pD != pPcdA)
+        {
+            if( pD->nStartPos < nNext )
+            {
+                nNext = pD->nStartPos;
+                nNextIdx = i-1;
+                bStart = true;
+            }
+        }
+    }
+    if( pPos )
+        *pPos = nNext;
+    if( pbStart )
+        *pbStart = bStart;
+    return nNextIdx;
+}
+
+// gibt die CP-Pos der naechsten Attribut-Aenderung zurueck
+WW8_CP WW8PLCFMan::Where() const
+{
+    long l;
+    WhereIdx(0, &l);
+    return l;
+}
+
+void WW8PLCFMan::SeekPos( long nNewCp )
+{
+    pChp->pPLCFx->SeekPos( nNewCp + nCpO ); // Attribute neu
+    pPap->pPLCFx->SeekPos( nNewCp + nCpO ); // aufsetzen
+    pFld->pPLCFx->SeekPos( nNewCp );
+    if( pPcd )
+        pPcd->pPLCFx->SeekPos( nNewCp + nCpO );
+    if( pBkm )
+        pBkm->pPLCFx->SeekPos( nNewCp + nCpO );
+}
+
+void WW8PLCFMan::SaveAllPLCFx( WW8PLCFxSaveAll& rSave ) const
+{
+    USHORT i, n=0;
+    if( pPcd )
+        pPcd->Save(  rSave.aS[n++] );
+    if( pPcdA )
+        pPcdA->Save( rSave.aS[n++] );
+
+    for(i=0; i<nPLCF; ++i)
+        if( pPcd != &aD[i] && pPcdA != &aD[i] )
+            aD[i].Save( rSave.aS[n++] );
+}
+
+void WW8PLCFMan::RestoreAllPLCFx( const WW8PLCFxSaveAll& rSave )
+{
+    USHORT i, n=0;
+    if( pPcd )
+        pPcd->Restore(  rSave.aS[n++] );
+    if( pPcdA )
+        pPcdA->Restore( rSave.aS[n++] );
+
+    for(i=0; i<nPLCF; ++i)
+        if( pPcd != &aD[i] && pPcdA != &aD[i] )
+            aD[i].Restore( rSave.aS[n++] );
+}
+
+void WW8PLCFMan::GetSprmStart( short nIdx, WW8PLCFManResult* pRes ) const
+{
+    memset( pRes, 0, sizeof( WW8PLCFManResult ) );
+
+    // Pruefen !!!
+
+    pRes->nMemLen = 0;
+
+    register const WW8PLCFxDesc* p = &aD[nIdx];
+
+    // first Sprm in a Group
+    if( p->bFirstSprm )
+    {
+        if( p == pPap )
+            pRes->nFlags |= MAN_MASK_NEW_PAP;
+        else if( p == pSep )
+            pRes->nFlags |= MAN_MASK_NEW_SEP;
+    }
+    pRes->pMemPos = p->pMemPos;
+    pRes->nSprmId = GetId(p);
+    pRes->nCp2OrIdx = p->nCp2OrIdx;
+    if ((p == pFtn) || (p == pEdn) || (p == pAnd))
+=====================================================================
+Found a 84 line (499 tokens) duplication in the following files: 
+Starting at line 1861 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2220 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        == getCppuType< css::uno::Reference< Interface2a > >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+=====================================================================
+Found a 77 line (498 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2120 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+=====================================================================
+Found a 84 line (498 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1861 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< Struct2a >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+=====================================================================
+Found a 114 line (497 tokens) duplication in the following files: 
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+
+        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
+	
+	switch (pMemberDescr->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription const * >(
+                        pMemberDescr)));
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+            aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot,
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+        VtableSlot aVtableSlot(
+            getVtableSlot(
+                reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription const * >(
+                        pMemberDescr)));
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
+                    pThis->pBridge->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 53 line (496 tokens) duplication in the following files: 
+Starting at line 2154 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2302 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_FieldControl::Export(SvStorageRef &rObj,
+	const uno::Reference< beans::XPropertySet > &rPropSet,
+	const awt::Size &rSize)
+{
+	static sal_uInt8 __READONLY_DATA aCompObj[] = {
+		0x01, 0x00, 0xFE, 0xFF, 0x03, 0x0A, 0x00, 0x00,
+		0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x1D, 0xD2, 0x8B,
+		0x42, 0xEC, 0xCE, 0x11, 0x9E, 0x0D, 0x00, 0xAA,
+		0x00, 0x60, 0x02, 0xF3, 0x1C, 0x00, 0x00, 0x00,
+		0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66,
+		0x74, 0x20, 0x46, 0x6F, 0x72, 0x6D, 0x73, 0x20,
+		0x32, 0x2E, 0x30, 0x20, 0x54, 0x65, 0x78, 0x74,
+		0x42, 0x6F, 0x78, 0x00, 0x10, 0x00, 0x00, 0x00,
+		0x45, 0x6D, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64,
+		0x20, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00,
+		0x10, 0x00, 0x00, 0x00, 0x46, 0x6F, 0x72, 0x6D,
+		0x73, 0x2E, 0x54, 0x65, 0x78, 0x74, 0x42, 0x6F,
+		0x78, 0x2E, 0x31, 0x00, 0xF4, 0x39, 0xB2, 0x71,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+		0x54, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00,
+		0x42, 0x00, 0x6F, 0x00, 0x78, 0x00, 0x31, 0x00,
+		0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor2( rObj->OpenSotStream( C2S("\3OCXNAME")));
+	xStor2->Write(aOCXNAME,sizeof(aOCXNAME));
+	DBG_ASSERT((xStor2.Is() && (SVSTREAM_OK == xStor2->GetError())),"damn");
+	}
+
+	SvStorageStreamRef xContents( rObj->OpenSotStream( C2S("contents")));
+	return WriteContents(xContents, rPropSet, rSize);
+}
+
+
+
+sal_Bool OCX_ToggleButton::Import(com::sun::star::uno::Reference<
+=====================================================================
+Found a 79 line (496 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+
+::rtl::OUString SAL_CALL SdFilterDetect::detect( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lDescriptor ) throw( ::com::sun::star::uno::RuntimeException )
+{
+    REFERENCE< XInputStream > xStream;
+    REFERENCE< XContent > xContent;
+    REFERENCE< XInteractionHandler > xInteraction;
+    String aURL;
+	::rtl::OUString sTemp;
+    String aTypeName;            // a name describing the type (from MediaDescriptor, usually from flat detection)
+    String aPreselectedFilterName;      // a name describing the filter to use (from MediaDescriptor, usually from UI action)
+
+	::rtl::OUString aDocumentTitle; // interesting only if set in this method
+
+	// opening as template is done when a parameter tells to do so and a template filter can be detected
+    // (otherwise no valid filter would be found) or if the detected filter is a template filter and
+	// there is no parameter that forbids to open as template
+	sal_Bool bOpenAsTemplate = sal_False;
+    sal_Bool bWasReadOnly = sal_False, bReadOnly = sal_False;
+
+	sal_Bool bRepairPackage = sal_False;
+	sal_Bool bRepairAllowed = sal_False;
+
+	// now some parameters that can already be in the array, but may be overwritten or new inserted here
+	// remember their indices in the case new values must be added to the array
+	sal_Int32 nPropertyCount = lDescriptor.getLength();
+    sal_Int32 nIndexOfFilterName = -1;
+    sal_Int32 nIndexOfInputStream = -1;
+    sal_Int32 nIndexOfContent = -1;
+    sal_Int32 nIndexOfReadOnlyFlag = -1;
+    sal_Int32 nIndexOfTemplateFlag = -1;
+    sal_Int32 nIndexOfDocumentTitle = -1;
+
+    for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
+	{
+        // extract properties
+        if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("URL")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+			aURL = sTemp;
+		}
+        else if( !aURL.Len() && lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("FileName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+			aURL = sTemp;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("TypeName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+            aTypeName = sTemp;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("FilterName")) )
+		{
+			lDescriptor[nProperty].Value >>= sTemp;
+            aPreselectedFilterName = sTemp;
+
+            // if the preselected filter name is not correct, it must be erased after detection
+            // remember index of property to get access to it later
+            nIndexOfFilterName = nProperty;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("InputStream")) )
+            nIndexOfInputStream = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("ReadOnly")) )
+            nIndexOfReadOnlyFlag = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("UCBContent")) )
+            nIndexOfContent = nProperty;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("AsTemplate")) )
+		{
+			lDescriptor[nProperty].Value >>= bOpenAsTemplate;
+            nIndexOfTemplateFlag = nProperty;
+		}
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("InteractionHandler")) )
+            lDescriptor[nProperty].Value >>= xInteraction;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("RapairPackage")) )
+            lDescriptor[nProperty].Value >>= bRepairPackage;
+        else if( lDescriptor[nProperty].Name == OUString(RTL_CONSTASCII_USTRINGPARAM("DocumentTitle")) )
+            nIndexOfDocumentTitle = nProperty;
+	}
+
+    // can't check the type for external filters, so set the "dont" flag accordingly
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+=====================================================================
+Found a 89 line (495 tokens) duplication in the following files: 
+Starting at line 482 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/pastedlg.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/insdlg.cxx
+
+String SvPasteObjectHelper::GetSotFormatUIName( SotFormatStringId nId )
+{
+    struct SotResourcePair
+    {
+        SotFormatStringId   mnSotId;
+        USHORT              mnResId;
+    };
+
+    static const SotResourcePair aSotResourcePairs[] =
+    {
+        { SOT_FORMAT_STRING,                    STR_FORMAT_STRING },
+        { SOT_FORMAT_BITMAP,                    STR_FORMAT_BITMAP },
+        { SOT_FORMAT_GDIMETAFILE,               STR_FORMAT_GDIMETAFILE },
+        { SOT_FORMAT_RTF,                       STR_FORMAT_RTF },
+        { SOT_FORMATSTR_ID_DRAWING,             STR_FORMAT_ID_DRAWING },
+        { SOT_FORMATSTR_ID_SVXB,                STR_FORMAT_ID_SVXB },
+        { SOT_FORMATSTR_ID_INTERNALLINK_STATE,  STR_FORMAT_ID_INTERNALLINK_STATE },
+        { SOT_FORMATSTR_ID_SOLK,                STR_FORMAT_ID_SOLK },
+        { SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK,   STR_FORMAT_ID_NETSCAPE_BOOKMARK },
+        { SOT_FORMATSTR_ID_STARSERVER,          STR_FORMAT_ID_STARSERVER },
+        { SOT_FORMATSTR_ID_STAROBJECT,          STR_FORMAT_ID_STAROBJECT },
+        { SOT_FORMATSTR_ID_APPLETOBJECT,        STR_FORMAT_ID_APPLETOBJECT },
+        { SOT_FORMATSTR_ID_PLUGIN_OBJECT,       STR_FORMAT_ID_PLUGIN_OBJECT },
+        { SOT_FORMATSTR_ID_STARWRITER_30,       STR_FORMAT_ID_STARWRITER_30 },
+        { SOT_FORMATSTR_ID_STARWRITER_40,       STR_FORMAT_ID_STARWRITER_40 },
+        { SOT_FORMATSTR_ID_STARWRITER_50,       STR_FORMAT_ID_STARWRITER_50 },
+        { SOT_FORMATSTR_ID_STARWRITERWEB_40,    STR_FORMAT_ID_STARWRITERWEB_40 },
+        { SOT_FORMATSTR_ID_STARWRITERWEB_50,    STR_FORMAT_ID_STARWRITERWEB_50 },
+        { SOT_FORMATSTR_ID_STARWRITERGLOB_40,   STR_FORMAT_ID_STARWRITERGLOB_40 },
+        { SOT_FORMATSTR_ID_STARWRITERGLOB_50,   STR_FORMAT_ID_STARWRITERGLOB_50 },
+        { SOT_FORMATSTR_ID_STARDRAW,            STR_FORMAT_ID_STARDRAW },
+        { SOT_FORMATSTR_ID_STARDRAW_40,         STR_FORMAT_ID_STARDRAW_40 },
+        { SOT_FORMATSTR_ID_STARIMPRESS_50,      STR_FORMAT_ID_STARIMPRESS_50 },
+        { SOT_FORMATSTR_ID_STARDRAW_50,         STR_FORMAT_ID_STARDRAW_50 },
+        { SOT_FORMATSTR_ID_STARCALC,            STR_FORMAT_ID_STARCALC },
+        { SOT_FORMATSTR_ID_STARCALC_40,         STR_FORMAT_ID_STARCALC_40 },
+        { SOT_FORMATSTR_ID_STARCALC_50,         STR_FORMAT_ID_STARCALC_50 },
+        { SOT_FORMATSTR_ID_STARCHART,           STR_FORMAT_ID_STARCHART },
+        { SOT_FORMATSTR_ID_STARCHART_40,        STR_FORMAT_ID_STARCHART_40 },
+        { SOT_FORMATSTR_ID_STARCHART_50,        STR_FORMAT_ID_STARCHART_50 },
+        { SOT_FORMATSTR_ID_STARIMAGE,           STR_FORMAT_ID_STARIMAGE },
+        { SOT_FORMATSTR_ID_STARIMAGE_40,        STR_FORMAT_ID_STARIMAGE_40 },
+        { SOT_FORMATSTR_ID_STARIMAGE_50,        STR_FORMAT_ID_STARIMAGE_50 },
+        { SOT_FORMATSTR_ID_STARMATH,            STR_FORMAT_ID_STARMATH },
+        { SOT_FORMATSTR_ID_STARMATH_40,         STR_FORMAT_ID_STARMATH_40 },
+        { SOT_FORMATSTR_ID_STARMATH_50,         STR_FORMAT_ID_STARMATH_50 },
+        { SOT_FORMATSTR_ID_STAROBJECT_PAINTDOC, STR_FORMAT_ID_STAROBJECT_PAINTDOC },
+        { SOT_FORMATSTR_ID_HTML,                STR_FORMAT_ID_HTML },
+        { SOT_FORMATSTR_ID_HTML_SIMPLE,         STR_FORMAT_ID_HTML_SIMPLE },
+        { SOT_FORMATSTR_ID_BIFF_5,              STR_FORMAT_ID_BIFF_5 },
+        { SOT_FORMATSTR_ID_BIFF_8,              STR_FORMAT_ID_BIFF_8 },
+        { SOT_FORMATSTR_ID_SYLK,                STR_FORMAT_ID_SYLK },
+        { SOT_FORMATSTR_ID_LINK,                STR_FORMAT_ID_LINK },
+        { SOT_FORMATSTR_ID_DIF,                 STR_FORMAT_ID_DIF },
+        { SOT_FORMATSTR_ID_MSWORD_DOC,          STR_FORMAT_ID_MSWORD_DOC },
+        { SOT_FORMATSTR_ID_STAR_FRAMESET_DOC,   STR_FORMAT_ID_STAR_FRAMESET_DOC },
+        { SOT_FORMATSTR_ID_OFFICE_DOC,          STR_FORMAT_ID_OFFICE_DOC },
+        { SOT_FORMATSTR_ID_NOTES_DOCINFO,       STR_FORMAT_ID_NOTES_DOCINFO },
+        { SOT_FORMATSTR_ID_SFX_DOC,             STR_FORMAT_ID_SFX_DOC },
+        { SOT_FORMATSTR_ID_STARCHARTDOCUMENT_50,STR_FORMAT_ID_STARCHARTDOCUMENT_50 },
+        { SOT_FORMATSTR_ID_GRAPHOBJ,            STR_FORMAT_ID_GRAPHOBJ },
+        { SOT_FORMATSTR_ID_STARWRITER_60,       STR_FORMAT_ID_STARWRITER_60 },
+        { SOT_FORMATSTR_ID_STARWRITERWEB_60,    STR_FORMAT_ID_STARWRITERWEB_60 },
+        { SOT_FORMATSTR_ID_STARWRITERGLOB_60,   STR_FORMAT_ID_STARWRITERGLOB_60 },
+        { SOT_FORMATSTR_ID_STARDRAW_60,         STR_FORMAT_ID_STARDRAW_60 },
+        { SOT_FORMATSTR_ID_STARIMPRESS_60,      STR_FORMAT_ID_STARIMPRESS_60 },
+        { SOT_FORMATSTR_ID_STARCALC_60,         STR_FORMAT_ID_STARCALC_60 },
+        { SOT_FORMATSTR_ID_STARCHART_60,        STR_FORMAT_ID_STARCHART_60 },
+        { SOT_FORMATSTR_ID_STARMATH_60,         STR_FORMAT_ID_STARMATH_60 },
+        { SOT_FORMATSTR_ID_WMF,                 STR_FORMAT_ID_WMF },
+        { SOT_FORMATSTR_ID_DBACCESS_QUERY,      STR_FORMAT_ID_DBACCESS_QUERY },
+        { SOT_FORMATSTR_ID_DBACCESS_TABLE,      STR_FORMAT_ID_DBACCESS_TABLE },
+        { SOT_FORMATSTR_ID_DBACCESS_COMMAND,    STR_FORMAT_ID_DBACCESS_COMMAND },
+        { SOT_FORMATSTR_ID_DIALOG_60,           STR_FORMAT_ID_DIALOG_60 },
+        { SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR,   STR_FORMAT_ID_FILEGRPDESCRIPTOR },
+        { SOT_FORMATSTR_ID_HTML_NO_COMMENT,     STR_FORMAT_ID_HTML_NO_COMMENT }
+    };
+
+    String aUIName;
+    USHORT nResId = 0;
+
+    for( sal_uInt32 i = 0, nCount = sizeof( aSotResourcePairs ) / sizeof( aSotResourcePairs[ 0 ] ); ( i < nCount ) && !nResId; i++ )
+    {
+        if( aSotResourcePairs[ i ].mnSotId == nId )
+            nResId = aSotResourcePairs[ i ].mnResId;
+    }
+
+    if( nResId )
+        aUIName = String( SvtResId( nResId ) );
+=====================================================================
+Found a 11 line (494 tokens) duplication in the following files: 
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffa8 - ffaf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb0 - ffb7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffb8 - ffbf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc0 - ffc7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc8 - ffcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd0 - ffd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd8 - ffdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe0 - ffe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff0 - fff7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff8 - ffff
+=====================================================================
+Found a 118 line (493 tokens) duplication in the following files: 
+Starting at line 1275 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/embobj.cxx
+Starting at line 7275 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+
+	return xStm->GetError() == SVSTREAM_OK;
+}
+
+struct ClsIDs {
+	UINT32		nId;
+	const sal_Char* pSvrName;
+	const sal_Char* pDspName;
+};
+static ClsIDs aClsIDs[] = {
+
+	{ 0x000212F0, "MSWordArt",     		"Microsoft Word Art"	 		},
+	{ 0x000212F0, "MSWordArt.2",   		"Microsoft Word Art 2.0" 		},
+
+	// MS Apps
+	{ 0x00030000, "ExcelWorksheet",		"Microsoft Excel Worksheet"		},
+	{ 0x00030001, "ExcelChart",			"Microsoft Excel Chart"			},
+	{ 0x00030002, "ExcelMacrosheet",	"Microsoft Excel Macro"			},
+	{ 0x00030003, "WordDocument",		"Microsoft Word Document"		},
+	{ 0x00030004, "MSPowerPoint",		"Microsoft PowerPoint"			},
+	{ 0x00030005, "MSPowerPointSho",	"Microsoft PowerPoint Slide Show"},
+	{ 0x00030006, "MSGraph",			"Microsoft Graph"				},
+	{ 0x00030007, "MSDraw",				"Microsoft Draw"				},
+	{ 0x00030008, "Note-It",			"Microsoft Note-It"				},
+	{ 0x00030009, "WordArt",			"Microsoft Word Art"			},
+	{ 0x0003000a, "PBrush",				"Microsoft PaintBrush Picture"	},
+	{ 0x0003000b, "Equation",			"Microsoft Equation Editor"		},
+	{ 0x0003000c, "Package",			"Package"						},
+	{ 0x0003000d, "SoundRec",			"Sound"							},
+	{ 0x0003000e, "MPlayer",			"Media Player"					},
+	// MS Demos
+	{ 0x0003000f, "ServerDemo",			"OLE 1.0 Server Demo"			},
+	{ 0x00030010, "Srtest",				"OLE 1.0 Test Demo"				},
+	{ 0x00030011, "SrtInv",				"OLE 1.0 Inv Demo"				},
+	{ 0x00030012, "OleDemo",			"OLE 1.0 Demo"					},
+
+	// Coromandel / Dorai Swamy / 718-793-7963
+	{ 0x00030013, "CoromandelIntegra",	"Coromandel Integra"			},
+	{ 0x00030014, "CoromandelObjServer","Coromandel Object Server"		},
+
+	// 3-d Visions Corp / Peter Hirsch / 310-325-1339
+	{ 0x00030015, "StanfordGraphics",	"Stanford Graphics"				},
+
+	// Deltapoint / Nigel Hearne / 408-648-4000
+	{ 0x00030016, "DGraphCHART",		"DeltaPoint Graph Chart"		},
+	{ 0x00030017, "DGraphDATA",			"DeltaPoint Graph Data"			},
+
+	// Corel / Richard V. Woodend / 613-728-8200 x1153
+	{ 0x00030018, "PhotoPaint",			"Corel PhotoPaint"				},
+	{ 0x00030019, "CShow",				"Corel Show"					},
+	{ 0x0003001a, "CorelChart",			"Corel Chart"					},
+	{ 0x0003001b, "CDraw",				"Corel Draw"					},
+
+	// Inset Systems / Mark Skiba / 203-740-2400
+	{ 0x0003001c, "HJWIN1.0",			"Inset Systems"					},
+
+	// Mark V Systems / Mark McGraw / 818-995-7671
+	{ 0x0003001d, "ObjMakerOLE",		"MarkV Systems Object Maker"	},
+
+	// IdentiTech / Mike Gilger / 407-951-9503
+	{ 0x0003001e, "FYI",				"IdentiTech FYI"				},
+	{ 0x0003001f, "FYIView",			"IdentiTech FYI Viewer"			},
+
+	// Inventa Corporation / Balaji Varadarajan / 408-987-0220
+	{ 0x00030020, "Stickynote",			"Inventa Sticky Note"			},
+
+	// ShapeWare Corp. / Lori Pearce / 206-467-6723
+	{ 0x00030021, "ShapewareVISIO10",   "Shapeware Visio 1.0"			},
+	{ 0x00030022, "ImportServer",		"Spaheware Import Server"		},
+
+	// test app SrTest
+	{ 0x00030023, "SrvrTest",			"OLE 1.0 Server Test"			},
+
+	// test app ClTest.  Doesn't really work as a server but is in reg db
+	{ 0x00030025, "Cltest",				"OLE 1.0 Client Test"			},
+
+	// Microsoft ClipArt Gallery   Sherry Larsen-Holmes
+	{ 0x00030026, "MS_ClipArt_Gallery",	"Microsoft ClipArt Gallery"		},
+	// Microsoft Project  Cory Reina
+	{ 0x00030027, "MSProject",			"Microsoft Project"				},
+
+	// Microsoft Works Chart
+	{ 0x00030028, "MSWorksChart",		"Microsoft Works Chart"			},
+
+	// Microsoft Works Spreadsheet
+	{ 0x00030029, "MSWorksSpreadsheet",	"Microsoft Works Spreadsheet"	},
+
+	// AFX apps - Dean McCrory
+	{ 0x0003002A, "MinSvr",				"AFX Mini Server"				},
+	{ 0x0003002B, "HierarchyList",		"AFX Hierarchy List"			},
+	{ 0x0003002C, "BibRef",				"AFX BibRef"					},
+	{ 0x0003002D, "MinSvrMI",			"AFX Mini Server MI"			},
+	{ 0x0003002E, "TestServ",			"AFX Test Server"				},
+
+	// Ami Pro
+	{ 0x0003002F, "AmiProDocument",		"Ami Pro Document"				},
+
+	// WordPerfect Presentations For Windows
+	{ 0x00030030, "WPGraphics",			"WordPerfect Presentation"		},
+	{ 0x00030031, "WPCharts",			"WordPerfect Chart"				},
+
+	// MicroGrafx Charisma
+	{ 0x00030032, "Charisma",			"MicroGrafx Charisma"			},
+	{ 0x00030033, "Charisma_30",		"MicroGrafx Charisma 3.0"		},
+	{ 0x00030034, "CharPres_30",		"MicroGrafx Charisma 3.0 Pres"	},
+	// MicroGrafx Draw
+	{ 0x00030035, "Draw",				"MicroGrafx Draw"				},
+	// MicroGrafx Designer
+	{ 0x00030036, "Designer_40",		"MicroGrafx Designer 4.0"		},
+
+	// STAR DIVISION
+//	{ 0x000424CA, "StarMath",			"StarMath 1.0"					},
+	{ 0x00043AD2, "FontWork",			"Star FontWork"					},
+//	{ 0x000456EE, "StarMath2",			"StarMath 2.0"					},
+
+	{ 0, "", "" } };
+
+
+BOOL SvxMSDffManager::ConvertToOle2( SvStream& rStm, UINT32 nReadLen,
+=====================================================================
+Found a 113 line (492 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+					break;
+				case 'G':
+					if (av[i][2] == 'c')
+					{
+						if (av[i][3] != '\0')
+						{
+							OString tmp("'-Gc', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i]) + "'";
+							}
+
+							throw IllegalArgument(tmp);
+						}
+
+						m_options["-Gc"] = OString("");
+						break;
+					} else
+					if (av[i][2] != '\0')
+					{
+						OString tmp("'-G', please check");
+						if (i <= ac - 1)
+						{
+							tmp += " your input '" + OString(av[i]) + "'";
+						}
+
+						throw IllegalArgument(tmp);
+					}
+					
+					m_options["-G"] = OString("");
+					break;
+				case 'X': // support for eXtra type rdbs
+                {
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-X', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+                    
+                    m_extra_input_files.push_back( s );
+					break;
+                }
+                
+				default:
+					throw IllegalArgument("the option is unknown" + OString(av[i]));
+			}
+		} else
+		{
+			if (av[i][0] == '@')
+			{
+				FILE* cmdFile = fopen(av[i]+1, "r");
+		  		if( cmdFile == NULL )
+      			{
+					fprintf(stderr, "%s", prepareHelp().getStr());
+					ret = sal_False;
+				} else
+				{
+					int rargc=0;
+					char* rargv[512];
+					char  buffer[512];
+
+					while ( fscanf(cmdFile, "%s", buffer) != EOF )
+					{
+						rargv[rargc]= strdup(buffer);
+						rargc++;
+					}
+					fclose(cmdFile);
+					
+					ret = initOptions(rargc, rargv, bCmdFile);
+					
+					for (long j=0; j < rargc; j++) 
+					{
+						free(rargv[j]);
+					}
+				}		
+			} else
+			{
+                if (bCmdFile)
+                {
+                    m_inputFiles.push_back(av[i]);
+                } else
+                {
+                    OUString system_filepath;
+                    if (osl_getCommandArg( i-1, &system_filepath.pData )
+                        != osl_Process_E_None)
+                    {
+                        OSL_ASSERT(false);
+                    }
+                    m_inputFiles.push_back(OUStringToOString(system_filepath, osl_getThreadTextEncoding()));
+                }
+			}		
+		}
+	}
+	
+	return ret;	
+}	
+
+OString	JavaOptions::prepareHelp()
+=====================================================================
+Found a 109 line (491 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+	for ( int i = 0; i < (int)IMG_XML_ENTRY_COUNT; i++ )
+	{
+		OUStringBuffer temp( 20 );
+
+		if ( ImagesEntries[i].nNamespace == IMG_NS_IMAGE )
+			temp.appendAscii( XMLNS_IMAGE );
+		else
+			temp.appendAscii( XMLNS_XLINK );
+
+		temp.appendAscii( XMLNS_FILTER_SEPARATOR );
+		temp.appendAscii( ImagesEntries[i].aEntryName );
+		m_aImageMap.insert( ImageHashMap::value_type( temp.makeStringAndClear(), (Image_XML_Entry)i ) );
+	}
+
+	// reset states
+	m_bImageContainerStartFound		= sal_False;
+	m_bImageContainerEndFound		= sal_False;
+	m_bImagesStartFound				= sal_False;
+	m_bImagesEndFound				= sal_False;
+	m_bImageStartFound				= sal_False;
+	m_bExternalImagesStartFound		= sal_False;
+	m_bExternalImagesEndFound		= sal_False;
+	m_bExternalImageStartFound		= sal_False;
+}
+
+OReadImagesDocumentHandler::~OReadImagesDocumentHandler()
+{
+}
+
+Any SAL_CALL OReadImagesDocumentHandler::queryInterface( const Type & rType )
+throw( RuntimeException )
+{
+	Any a = ::cppu::queryInterface(
+				rType ,
+				SAL_STATIC_CAST( XDocumentHandler*, this ));
+	if ( a.hasValue() )
+		return a;
+
+	return OWeakObject::queryInterface( rType );
+}
+
+// XDocumentHandler
+void SAL_CALL OReadImagesDocumentHandler::startDocument(void)
+throw (	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadImagesDocumentHandler::endDocument(void)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	if (( m_bImageContainerStartFound && !m_bImageContainerEndFound ) ||
+		( !m_bImageContainerStartFound && m_bImageContainerEndFound )	 )
+	{
+		OUString aErrorMessage = getErrorLineString();
+		aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'image:imagecontainer' found!" ));
+		throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+	}
+}
+
+void SAL_CALL OReadImagesDocumentHandler::startElement(
+	const OUString& aName, const Reference< XAttributeList > &xAttribs )
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	ImageHashMap::const_iterator pImageEntry = m_aImageMap.find( aName ) ;
+	if ( pImageEntry != m_aImageMap.end() )
+	{
+		switch ( pImageEntry->second )
+		{
+			case IMG_ELEMENT_IMAGECONTAINER:
+			{
+				// image:imagecontainer element (container element for all further image elements)
+				if ( m_bImageContainerStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:imagecontainer' cannot be embeded into 'image:imagecontainer'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bImageContainerStartFound = sal_True;
+			}
+			break;
+
+			case IMG_ELEMENT_IMAGES:
+			{
+				if ( !m_bImageContainerStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:images' must be embeded into element 'image:imagecontainer'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( m_bImagesStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:images' cannot be embeded into 'image:images'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( !m_aImageList.pImageList )
+					m_aImageList.pImageList = new ImageListDescriptor;
+
+				m_bImagesStartFound = sal_True;
+				m_pImages = new ImageListItemDescriptor;
+
+				for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+=====================================================================
+Found a 119 line (487 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nFunctionIndex,
+    sal_Int32 nVtableOffset,
+	void ** pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+=====================================================================
+Found a 70 line (486 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/UriReferenceFactory.cxx
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.cxx
+
+            scheme, false, false, rtl::OUString(), path, false, rtl::OUString())
+    {}
+
+    virtual rtl::OUString SAL_CALL getUriReference()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getUriReference(); }
+
+    virtual sal_Bool SAL_CALL isAbsolute()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.isAbsolute(); }
+
+    virtual rtl::OUString SAL_CALL getScheme()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getScheme(); }
+
+    virtual rtl::OUString SAL_CALL getSchemeSpecificPart()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getSchemeSpecificPart(); }
+
+    virtual sal_Bool SAL_CALL isHierarchical()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.isHierarchical(); }
+
+    virtual sal_Bool SAL_CALL hasAuthority()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.hasAuthority(); }
+
+    virtual rtl::OUString SAL_CALL getAuthority()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getAuthority(); }
+
+    virtual rtl::OUString SAL_CALL getPath()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getPath(); }
+
+    virtual sal_Bool SAL_CALL hasRelativePath()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.hasRelativePath(); }
+
+    virtual sal_Int32 SAL_CALL getPathSegmentCount()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getPathSegmentCount(); }
+
+    virtual rtl::OUString SAL_CALL getPathSegment(sal_Int32 index)
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getPathSegment(index); }
+
+    virtual sal_Bool SAL_CALL hasQuery()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.hasQuery(); }
+
+    virtual rtl::OUString SAL_CALL getQuery()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getQuery(); }
+
+    virtual sal_Bool SAL_CALL hasFragment()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.hasFragment(); }
+
+    virtual rtl::OUString SAL_CALL getFragment()
+        throw (com::sun::star::uno::RuntimeException)
+    { return m_base.getFragment(); }
+
+    virtual void SAL_CALL setFragment(rtl::OUString const & fragment)
+        throw (com::sun::star::uno::RuntimeException)
+    { m_base.setFragment(fragment); }
+
+    virtual void SAL_CALL clearFragment()
+        throw (com::sun::star::uno::RuntimeException)
+    { m_base.clearFragment(); }
+=====================================================================
+Found a 119 line (485 tokens) duplication in the following files: 
+Starting at line 709 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+	::rtl::OUString aValue;
+	return aValue;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getDatabaseProductName(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aValue;
+	return aValue;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getProcedureTerm(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aValue;
+	return aValue;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getSchemaTerm(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aValue;
+	return aValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMajorVersion(  ) throw(RuntimeException)
+{
+	return 1;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getDefaultTransactionIsolation(  ) throw(SQLException, RuntimeException)
+{
+	return TransactionIsolation::NONE;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMinorVersion(  ) throw(RuntimeException)
+{
+	return 0;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getSQLKeywords(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aValue;
+	return aValue;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getSearchStringEscape(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aValue;
+	return aValue;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getStringFunctions(  ) throw(SQLException, RuntimeException)
+{
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getTimeDateFunctions(  ) throw(SQLException, RuntimeException)
+{
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getSystemFunctions(  ) throw(SQLException, RuntimeException)
+{
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getNumericFunctions(  ) throw(SQLException, RuntimeException)
+{
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsExtendedSQLGrammar(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCoreSQLGrammar(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMinimumSQLGrammar(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsFullOuterJoins(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsLimitedOuterJoins(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInGroupBy(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInOrderBy(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInSelect(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxUserNameLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 78 line (484 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/borland/tempnam.c
+
+extern char *mktemp();
+extern int access();
+int d_access();
+
+/* Turbo C stdio.h doesn't define P_tmpdir, so let's do it here */
+/* Under DOS leave the default tmpdir pointing here!		*/
+#ifndef P_tmpdir
+static char *P_tmpdir = "";
+#endif
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+#if defined(__WIN32__)
+	unsigned int _psp = rand();
+#endif
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q   = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 62 line (480 tokens) duplication in the following files: 
+Starting at line 361 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/bigint.cxx
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/bigint.cxx
+
+    short  i, j;
+    long   nTmp;
+    sal_uInt16 nK, nQ, nMult;
+    short  nLenB  = rB.nLen;
+    short  nLenB1 = rB.nLen - 1;
+    BigInt aTmpA, aTmpB;
+
+    nMult = (sal_uInt16)(0x10000L / ((long)rB.nNum[nLenB1] + 1));
+
+    aTmpA.Mult( *this, nMult);
+    if ( aTmpA.nLen == nLen )
+    {
+        aTmpA.nNum[aTmpA.nLen] = 0;
+        aTmpA.nLen++;
+    }
+
+    aTmpB.Mult( rB, nMult);
+
+    for (j = aTmpA.nLen - 1; j >= nLenB; j--)
+    { // Raten des Divisors
+        nTmp = ( (long)aTmpA.nNum[j] << 16 ) + aTmpA.nNum[j - 1];
+        if (aTmpA.nNum[j] == aTmpB.nNum[nLenB1])
+            nQ = 0xFFFF;
+        else
+            nQ = (sal_uInt16)(((sal_uInt32)nTmp) / aTmpB.nNum[nLenB1]);
+
+        if ( ((sal_uInt32)aTmpB.nNum[nLenB1 - 1] * nQ) >
+            ((((sal_uInt32)nTmp) - aTmpB.nNum[nLenB1] * nQ) << 16) + aTmpA.nNum[j - 2])
+            nQ--;
+        // Und hier faengt das Teilen an
+        nK = 0;
+        nTmp = 0;
+        for (i = 0; i < nLenB; i++)
+        {
+            nTmp = (long)aTmpA.nNum[j - nLenB + i]
+                   - ((long)aTmpB.nNum[i] * nQ)
+                   - nK;
+            aTmpA.nNum[j - nLenB + i] = (sal_uInt16)nTmp;
+            nK = (sal_uInt16) (nTmp >> 16);
+            if ( nK )
+                nK = (sal_uInt16)(0x10000UL - nK);
+        }
+        unsigned short& rNum( aTmpA.nNum[j - nLenB + i] );
+        rNum = rNum - nK;
+        if (aTmpA.nNum[j - nLenB + i] == 0)
+            rErg.nNum[j - nLenB] = nQ;
+        else
+        {
+            rErg.nNum[j - nLenB] = nQ - 1;
+            nK = 0;
+            for (i = 0; i < nLenB; i++) {
+                nTmp = aTmpA.nNum[j - nLenB + i] + aTmpB.nNum[i] + nK;
+                aTmpA.nNum[j - nLenB + i] = (sal_uInt16)(nTmp & 0xFFFFL);
+                if (nTmp & 0xFFFF0000L)
+                    nK = 1;
+                else
+                    nK = 0;
+            }
+        }
+    }
+
+    rErg = aTmpA;
+=====================================================================
+Found a 74 line (479 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/microsft/tempnam.c
+
+extern char *mktemp();
+extern int access();
+int d_access();
+
+/* MSC stdio.h defines P_tmpdir, so let's undo it here */
+/* Under DOS leave the default tmpdir pointing here!		*/
+#ifdef P_tmpdir
+#undef P_tmpdir
+#endif
+static char *P_tmpdir = "";
+
+char *
+dtempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 36 line (479 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/gnu/public.h
+
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+=====================================================================
+Found a 93 line (479 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/Map/Map.test.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/Shield/Shield.test.cxx
+
+using namespace com::sun::star;
+
+
+static rtl::OUString    s_comment;
+static uno::Environment s_env;
+
+extern "C" {
+static void s_callee_in(rtl_uString *  pMethod_name)
+{
+	rtl::OUString method_name(pMethod_name);
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in  method:\""));
+	s_comment += method_name;
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
+	s_comment += uno::Environment::getCurrent().getTypeName();
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
+
+	if (!s_env.is())
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
+		return;
+	}
+
+	rtl::OUString reason;
+	int valid = s_env.isValid(&reason);
+
+	if (valid)
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+	else
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: "));
+		s_comment += reason;
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+	}
+}
+
+static void s_callee_out(rtl_uString *  pMethod_name)
+{
+	rtl::OUString method_name(pMethod_name);
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\""));
+	s_comment += method_name;
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
+	s_comment += uno::Environment::getCurrent().getTypeName();
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
+
+	if (!s_env.is())
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
+		return;
+	}
+
+	rtl::OUString reason;
+	int valid = s_env.isValid(&reason);
+
+	if (!valid)
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+	else
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n"));
+}
+}
+
+static uno::Reference<uno::XInterface> s_get_envObject(void)
+{
+	cppu::EnvGuard envGuard(s_env);
+
+	uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
+		createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
+					 s_callee_in));
+	
+	return uno::Reference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
+}
+
+static uno::XInterface * s_x_get_flatObject(void)
+{
+	uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
+		createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
+					 s_callee_out));
+	
+	return pObject;
+}
+
+static uno::Reference<uno::XInterface> s_get_flatObject(void)
+{
+	return uno::Reference<uno::XInterface>(s_x_get_flatObject(), SAL_NO_ACQUIRE);
+}
+
+
+static void s_test__shield(void)
+=====================================================================
+Found a 107 line (479 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0 , RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
+=====================================================================
+Found a 39 line (478 tokens) duplication in the following files: 
+Starting at line 1066 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+Starting at line 1202 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+
+         bRet = FALSE;
+    //calculate number of data sets to be printed
+
+    Sequence<PropertyValue> aViewProperties(16);
+    PropertyValue* pViewProperties =  aViewProperties.getArray();
+    pViewProperties[0].Name = C2U("MailMergeCount");
+    pViewProperties[0].Value <<= (sal_Int32)rOpt.nMergeCnt;
+    pViewProperties[1].Name = C2U("PrintGraphics");
+    pViewProperties[1].Value <<= (sal_Bool)rOpt.IsPrintGraphic();
+    pViewProperties[2].Name = C2U("PrintTables");
+    pViewProperties[2].Value <<= (sal_Bool)rOpt.IsPrintTable();
+    pViewProperties[3].Name = C2U("PrintDrawings");
+    pViewProperties[3].Value <<= (sal_Bool)rOpt.IsPrintDraw();
+    pViewProperties[4].Name = C2U("PrintLeftPages");
+    pViewProperties[4].Value <<= (sal_Bool)rOpt.IsPrintLeftPage();
+    pViewProperties[5].Name = C2U("PrintRightPages");
+    pViewProperties[5].Value <<= (sal_Bool)rOpt.IsPrintRightPage();
+    pViewProperties[6].Name = C2U("PrintControls");
+    pViewProperties[6].Value <<= (sal_Bool)rOpt.IsPrintControl();
+    pViewProperties[7].Name = C2U("PrintReversed");
+    pViewProperties[7].Value <<= (sal_Bool)rOpt.IsPrintReverse();
+    pViewProperties[8].Name = C2U("PrintPaperFromSetup");
+    pViewProperties[8].Value <<= (sal_Bool)rOpt.IsPaperFromSetup();
+    pViewProperties[9].Name = C2U("PrintFaxName");
+    pViewProperties[9].Value <<= rOpt.GetFaxName();
+    pViewProperties[10].Name = C2U("PrintAnnotationMode");
+    pViewProperties[10].Value <<= (com::sun::star::text::NotePrintMode) rOpt.GetPrintPostIts();
+    pViewProperties[11].Name = C2U("PrintProspect");
+    pViewProperties[11].Value <<= (sal_Bool)rOpt.IsPrintProspect();
+    pViewProperties[12].Name = C2U("PrintPageBackground");
+    pViewProperties[12].Value <<= (sal_Bool)rOpt.IsPrintPageBackground();
+    pViewProperties[13].Name = C2U("PrintBlackFonts");
+    pViewProperties[13].Value <<= (sal_Bool)rOpt.IsPrintBlackFont();
+    pViewProperties[14].Name = C2U("IsSinglePrintJob");
+    pViewProperties[14].Value <<= (sal_Bool)rOpt.IsPrintSingleJobs();
+    pViewProperties[15].Name = C2U("PrintEmptyPages");
+    pViewProperties[15].Value <<= (sal_Bool)rOpt.IsPrintEmptyPages();
+
+    rView.SetAdditionalPrintOptions(aViewProperties);
+=====================================================================
+Found a 27 line (478 tokens) duplication in the following files: 
+Starting at line 3888 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3511 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+static const SvxMSDffVertPair mso_sptSeal24Vert[] =
+{
+	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
+	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
+	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
+	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
+	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
+	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
+	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
+	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
+	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
+	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
+	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
+	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
+	{ 0x05 MSO_I, 0x06 MSO_I }
+};
+static const mso_CustomShape msoSeal24 = 
+{
+	(SvxMSDffVertPair*)mso_sptSeal24Vert, sizeof( mso_sptSeal24Vert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	(SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptDefault2500,
+	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 78 line (478 tokens) duplication in the following files: 
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/padmin/source/padialog.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svptest.cxx
+
+}
+
+// -----------------------------------------------------------------------
+
+static Point project( const Point& rPoint )
+{
+	const double angle_x = M_PI / 6.0;
+	const double angle_z = M_PI / 6.0;
+
+	// transform planar coordinates to 3d
+	double x = rPoint.X();
+	double y = rPoint.Y();
+	//double z = 0;
+
+	// rotate around X axis
+	double x1 = x;
+	double y1 = y * cos( angle_x );
+	double z1 = y * sin( angle_x );
+
+	// rotate around Z axis
+	double x2 = x1 * cos( angle_z ) + y1 * sin( angle_z );
+	//double y2 = y1 * cos( angle_z ) - x1 * sin( angle_z );
+	double z2 = z1;
+
+	return Point( (sal_Int32)x2, (sal_Int32)z2 );
+}
+
+static Color approachColor( const Color& rFrom, const Color& rTo )
+{
+	Color aColor;
+	UINT8 nDiff;
+	// approach red
+	if( rFrom.GetRed() < rTo.GetRed() )
+	{
+		nDiff = rTo.GetRed() - rFrom.GetRed();
+		aColor.SetRed( rFrom.GetRed() + ( nDiff < 10 ? nDiff : 10 ) );
+	}
+	else if( rFrom.GetRed() > rTo.GetRed() )
+	{
+		nDiff = rFrom.GetRed() - rTo.GetRed();
+		aColor.SetRed( rFrom.GetRed() - ( nDiff < 10 ? nDiff : 10 ) );
+	}
+	else
+		aColor.SetRed( rFrom.GetRed() );
+
+	// approach Green
+	if( rFrom.GetGreen() < rTo.GetGreen() )
+	{
+		nDiff = rTo.GetGreen() - rFrom.GetGreen();
+		aColor.SetGreen( rFrom.GetGreen() + ( nDiff < 10 ? nDiff : 10 ) );
+	}
+	else if( rFrom.GetGreen() > rTo.GetGreen() )
+	{
+		nDiff = rFrom.GetGreen() - rTo.GetGreen();
+		aColor.SetGreen( rFrom.GetGreen() - ( nDiff < 10 ? nDiff : 10 ) );
+	}
+	else
+		aColor.SetGreen( rFrom.GetGreen() );
+
+	// approach blue
+	if( rFrom.GetBlue() < rTo.GetBlue() )
+	{
+		nDiff = rTo.GetBlue() - rFrom.GetBlue();
+		aColor.SetBlue( rFrom.GetBlue() + ( nDiff < 10 ? nDiff : 10 ) );
+	}
+	else if( rFrom.GetBlue() > rTo.GetBlue() )
+	{
+		nDiff = rFrom.GetBlue() - rTo.GetBlue();
+		aColor.SetBlue( rFrom.GetBlue() - ( nDiff < 10 ? nDiff : 10 ) );
+	}
+	else
+		aColor.SetBlue( rFrom.GetBlue() );
+
+	return aColor;
+}
+
+#define DELTA 5.0
+void MyWin::Paint( const Rectangle& rRect )
+=====================================================================
+Found a 17 line (477 tokens) duplication in the following files: 
+Starting at line 767 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d700 - d70f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d710 - d71f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d720 - d72f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d730 - d73f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d740 - d74f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d750 - d75f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d760 - d76f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d770 - d77f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d780 - d78f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d790 - d79f
+     5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7a0 - d7af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7b0 - d7bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7c0 - d7cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7d0 - d7df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7e0 - d7ef
+=====================================================================
+Found a 74 line (477 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/vpp40/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/winnt/microsft/vpp40/tempnam.c
+
+extern char *mktemp();
+extern int access();
+int d_access();
+
+/* MSC stdio.h defines P_tmpdir, so let's undo it here */
+/* Under DOS leave the default tmpdir pointing here!		*/
+#ifdef P_tmpdir
+#undef P_tmpdir
+#endif
+static char *P_tmpdir = "";
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 100 line (474 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+    fprintf(stderr, "calling %s\n", rtl::OUStringToOString(aMemberDescr.get()->pTypeName, RTL_TEXTENCODING_UTF8).getStr());
+#endif    
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pReturnValue );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pReturnValue );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *static_cast< void ** >(pReturnValue) = pCallStack[1];
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				pCallStack, pReturnValue );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("no member description found!"),
+            (XInterface *)pThis );
+	}
+	}
+}
+
+//==================================================================================================
+extern "C" void privateSnippetExecutorGeneral();
+extern "C" void privateSnippetExecutorVoid();
+extern "C" void privateSnippetExecutorHyper();
+extern "C" void privateSnippetExecutorFloat();
+extern "C" void privateSnippetExecutorDouble();
+extern "C" void privateSnippetExecutorClass();
+extern "C" typedef void (*PrivateSnippetExecutor)();
+
+int const codeSnippetSize = 16;
+
+unsigned char * codeSnippet(
+    unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
+=====================================================================
+Found a 100 line (473 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/statusbardocumenthandler.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/statusbardocumenthandler.cxx
+
+	for ( int i = 0; i < (int)SB_XML_ENTRY_COUNT; i++ )
+	{
+		if ( StatusBarEntries[i].nNamespace == SB_NS_STATUSBAR )
+		{
+			OUString temp( aNamespaceStatusBar );
+			temp += aSeparator;
+			temp += OUString::createFromAscii( StatusBarEntries[i].aEntryName );
+			m_aStatusBarMap.insert( StatusBarHashMap::value_type( temp, (StatusBar_XML_Entry)i ) );
+		}
+		else
+		{
+			OUString temp( aNamespaceXLink );
+			temp += aSeparator;
+			temp += OUString::createFromAscii( StatusBarEntries[i].aEntryName );
+			m_aStatusBarMap.insert( StatusBarHashMap::value_type( temp, (StatusBar_XML_Entry)i ) );
+		}
+	}
+
+	m_bStatusBarStartFound			= sal_False;
+	m_bStatusBarEndFound			= sal_False;
+	m_bStatusBarItemStartFound		= sal_False;
+}
+
+OReadStatusBarDocumentHandler::~OReadStatusBarDocumentHandler()
+{
+}
+
+Any SAL_CALL OReadStatusBarDocumentHandler::queryInterface( const Type & rType ) 
+throw( RuntimeException )
+{
+	Any a = ::cppu::queryInterface(
+				rType ,
+				SAL_STATIC_CAST( XDocumentHandler*, this ));
+	if ( a.hasValue() )
+		return a;
+
+	return OWeakObject::queryInterface( rType );
+}
+
+// XDocumentHandler
+void SAL_CALL OReadStatusBarDocumentHandler::startDocument(void)
+throw (	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadStatusBarDocumentHandler::endDocument(void)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	if (( m_bStatusBarStartFound && !m_bStatusBarEndFound ) ||
+		( !m_bStatusBarStartFound && m_bStatusBarEndFound )		)
+	{
+		OUString aErrorMessage = getErrorLineString();
+		aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'statusbar' found!" ));
+		throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+	}
+}
+
+void SAL_CALL OReadStatusBarDocumentHandler::startElement(
+	const OUString& aName, const Reference< XAttributeList > &xAttribs )
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	StatusBarHashMap::const_iterator pStatusBarEntry = m_aStatusBarMap.find( aName ) ;
+	if ( pStatusBarEntry != m_aStatusBarMap.end() )
+	{
+		switch ( pStatusBarEntry->second )
+		{
+			case SB_ELEMENT_STATUSBAR:
+			{
+				if ( m_bStatusBarStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'statusbar:statusbar' cannot be embeded into 'statusbar:statusbar'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bStatusBarStartFound = sal_True;
+			}
+			break;
+
+			case SB_ELEMENT_STATUSBARITEM:
+			{
+				if ( !m_bStatusBarStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'statusbar:statusbaritem' must be embeded into element 'statusbar:statusbar'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+				
+				if ( m_bStatusBarItemStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element statusbar:statusbaritem is not a container!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				OUString    aCommandURL;
+=====================================================================
+Found a 80 line (473 tokens) duplication in the following files: 
+Starting at line 1760 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1986 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< Exception2a >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+=====================================================================
+Found a 67 line (472 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/tempnam.c
+Starting at line 36 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/tempnam.c
+
+extern char *mktemp();
+extern int access();
+int d_access();
+
+char *
+dtempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 80 line (472 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1760 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< Enum2 >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+=====================================================================
+Found a 107 line (470 tokens) duplication in the following files: 
+Starting at line 1288 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/embobj.cxx
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/soconv.cxx
+
+} aClsIDs[] = {
+
+	{ 0x000212F0, "MSWordArt",     		"Microsoft Word Art"	 		},
+	{ 0x000212F0, "MSWordArt.2",   		"Microsoft Word Art 2.0" 		},
+
+	// MS Apps
+	{ 0x00030000, "ExcelWorksheet",		"Microsoft Excel Worksheet"		},
+	{ 0x00030001, "ExcelChart",			"Microsoft Excel Chart"			},
+	{ 0x00030002, "ExcelMacrosheet",	"Microsoft Excel Macro"			},
+	{ 0x00030003, "WordDocument",		"Microsoft Word Document"		},
+	{ 0x00030004, "MSPowerPoint",		"Microsoft PowerPoint"			},
+	{ 0x00030005, "MSPowerPointSho",	"Microsoft PowerPoint Slide Show"},
+	{ 0x00030006, "MSGraph",			"Microsoft Graph"				},
+	{ 0x00030007, "MSDraw",				"Microsoft Draw"				},
+	{ 0x00030008, "Note-It",			"Microsoft Note-It"				},
+	{ 0x00030009, "WordArt",			"Microsoft Word Art"			},
+	{ 0x0003000a, "PBrush",				"Microsoft PaintBrush Picture"	},
+	{ 0x0003000b, "Equation",			"Microsoft Equation Editor"		},
+	{ 0x0003000c, "Package",			"Package"						},
+	{ 0x0003000d, "SoundRec",			"Sound"							},
+	{ 0x0003000e, "MPlayer",			"Media Player"					},
+	// MS Demos
+	{ 0x0003000f, "ServerDemo",			"OLE 1.0 Server Demo"			},
+	{ 0x00030010, "Srtest",				"OLE 1.0 Test Demo"				},
+	{ 0x00030011, "SrtInv",				"OLE 1.0 Inv Demo"				},
+	{ 0x00030012, "OleDemo",			"OLE 1.0 Demo"					},
+
+	// Coromandel / Dorai Swamy / 718-793-7963
+	{ 0x00030013, "CoromandelIntegra",	"Coromandel Integra"			},
+	{ 0x00030014, "CoromandelObjServer","Coromandel Object Server"		},
+
+	// 3-d Visions Corp / Peter Hirsch / 310-325-1339
+	{ 0x00030015, "StanfordGraphics",	"Stanford Graphics"				},
+
+	// Deltapoint / Nigel Hearne / 408-648-4000
+	{ 0x00030016, "DGraphCHART",		"DeltaPoint Graph Chart"		},
+	{ 0x00030017, "DGraphDATA",			"DeltaPoint Graph Data"			},
+
+	// Corel / Richard V. Woodend / 613-728-8200 x1153
+	{ 0x00030018, "PhotoPaint",			"Corel PhotoPaint"				},
+	{ 0x00030019, "CShow",				"Corel Show"					},
+	{ 0x0003001a, "CorelChart",			"Corel Chart"					},
+	{ 0x0003001b, "CDraw",				"Corel Draw"					},
+
+	// Inset Systems / Mark Skiba / 203-740-2400
+	{ 0x0003001c, "HJWIN1.0",			"Inset Systems"					},
+
+	// Mark V Systems / Mark McGraw / 818-995-7671
+	{ 0x0003001d, "ObjMakerOLE",		"MarkV Systems Object Maker"	},
+
+	// IdentiTech / Mike Gilger / 407-951-9503
+	{ 0x0003001e, "FYI",				"IdentiTech FYI"				},
+	{ 0x0003001f, "FYIView",			"IdentiTech FYI Viewer"			},
+
+	// Inventa Corporation / Balaji Varadarajan / 408-987-0220
+	{ 0x00030020, "Stickynote",			"Inventa Sticky Note"			},
+
+	// ShapeWare Corp. / Lori Pearce / 206-467-6723
+	{ 0x00030021, "ShapewareVISIO10",   "Shapeware Visio 1.0"			},
+	{ 0x00030022, "ImportServer",		"Spaheware Import Server"		},
+
+	// test app SrTest
+	{ 0x00030023, "SrvrTest",			"OLE 1.0 Server Test"			},
+
+	// test app ClTest.  Doesn't really work as a server but is in reg db
+	{ 0x00030025, "Cltest",				"OLE 1.0 Client Test"			},
+
+	// Microsoft ClipArt Gallery   Sherry Larsen-Holmes
+	{ 0x00030026, "MS_ClipArt_Gallery",	"Microsoft ClipArt Gallery"		},
+	// Microsoft Project  Cory Reina
+	{ 0x00030027, "MSProject",			"Microsoft Project"				},
+
+	// Microsoft Works Chart
+	{ 0x00030028, "MSWorksChart",		"Microsoft Works Chart"			},
+
+	// Microsoft Works Spreadsheet
+	{ 0x00030029, "MSWorksSpreadsheet",	"Microsoft Works Spreadsheet"	},
+
+	// AFX apps - Dean McCrory
+	{ 0x0003002A, "MinSvr",				"AFX Mini Server"				},
+	{ 0x0003002B, "HierarchyList",		"AFX Hierarchy List"			},
+	{ 0x0003002C, "BibRef",				"AFX BibRef"					},
+	{ 0x0003002D, "MinSvrMI",			"AFX Mini Server MI"			},
+	{ 0x0003002E, "TestServ",			"AFX Test Server"				},
+
+	// Ami Pro
+	{ 0x0003002F, "AmiProDocument",		"Ami Pro Document"				},
+
+	// WordPerfect Presentations For Windows
+	{ 0x00030030, "WPGraphics",			"WordPerfect Presentation"		},
+	{ 0x00030031, "WPCharts",			"WordPerfect Chart"				},
+
+	// MicroGrafx Charisma
+	{ 0x00030032, "Charisma",			"MicroGrafx Charisma"			},
+	{ 0x00030033, "Charisma_30",		"MicroGrafx Charisma 3.0"		},
+	{ 0x00030034, "CharPres_30",		"MicroGrafx Charisma 3.0 Pres"	},
+	// MicroGrafx Draw
+	{ 0x00030035, "Draw",				"MicroGrafx Draw"				},
+	// MicroGrafx Designer
+	{ 0x00030036, "Designer_40",		"MicroGrafx Designer 4.0"		},
+
+	// STAR DIVISION
+//	{ 0x000424CA, "StarMath",			"StarMath 1.0"					},
+	{ 0x00043AD2, "FontWork",			"Star FontWork"					},
+//	{ 0x000456EE, "StarMath2",			"StarMath 2.0"					},
+
+	{ 0, "", "" } };
+=====================================================================
+Found a 63 line (469 tokens) duplication in the following files: 
+Starting at line 2076 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/tabview.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/chartins.cxx
+
+        BOOL bLayoutRTL = ::GetActiveView()->GetWrtShell().IsTableRightToLeft();
+        bool bCenterHor = false;
+
+        if ( aDesktop.Bottom() - aObjAbs.Bottom() >= rDialogSize.Height() + aSpace.Height() )
+        {
+            // first preference: below the chart
+            aRet.Y() = aObjAbs.Bottom() + aSpace.Height();
+            bCenterHor = true;
+        }
+        else if ( aObjAbs.Top() - aDesktop.Top() >= rDialogSize.Height() + aSpace.Height() )
+        {
+            // second preference: above the chart
+            aRet.Y() = aObjAbs.Top() - rDialogSize.Height() - aSpace.Height();
+            bCenterHor = true;
+        }
+        else
+        {
+            bool bFitLeft = ( aObjAbs.Left() - aDesktop.Left() >= rDialogSize.Width() + aSpace.Width() );
+            bool bFitRight = ( aDesktop.Right() - aObjAbs.Right() >= rDialogSize.Width() + aSpace.Width() );
+
+            if ( bFitLeft || bFitRight )
+            {
+                // if both fit, prefer right in RTL mode, left otherwise
+                bool bPutRight = bFitRight && ( bLayoutRTL || !bFitLeft );
+                if ( bPutRight )
+                    aRet.X() = aObjAbs.Right() + aSpace.Width();
+                else
+                    aRet.X() = aObjAbs.Left() - rDialogSize.Width() - aSpace.Width();
+
+                // center vertically
+                aRet.Y() = aObjAbs.Top() + ( aObjAbs.GetHeight() - rDialogSize.Height() ) / 2;
+            }
+            else
+            {
+                // doesn't fit on any edge - put at the bottom of the screen
+                aRet.Y() = aDesktop.Bottom() - rDialogSize.Height();
+                bCenterHor = true;
+            }
+        }
+        if ( bCenterHor )
+            aRet.X() = aObjAbs.Left() + ( aObjAbs.GetWidth() - rDialogSize.Width() ) / 2;
+
+        // limit to screen (centering might lead to invalid positions)
+        if ( aRet.X() + rDialogSize.Width() - 1 > aDesktop.Right() )
+            aRet.X() = aDesktop.Right() - rDialogSize.Width() + 1;
+        if ( aRet.X() < aDesktop.Left() )
+            aRet.X() = aDesktop.Left();
+        if ( aRet.Y() + rDialogSize.Height() - 1 > aDesktop.Bottom() )
+            aRet.Y() = aDesktop.Bottom() - rDialogSize.Height() + 1;
+        if ( aRet.Y() < aDesktop.Top() )
+            aRet.Y() = aDesktop.Top();
+    }
+
+    return aRet;
+}
+
+
+/*------------------------------------------------------------------------
+	Beschreibung:
+------------------------------------------------------------------------*/
+
+
+void SwInsertChart(Window* pParent, SfxBindings* pBindings )
+=====================================================================
+Found a 80 line (469 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+using namespace com::sun::star::uno;
+
+namespace
+{
+//==================================================================================================
+static typelib_TypeClass cpp2uno_call(
+	 bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	// pCallStack: [ret ptr], this, params
+	char * pCppStack = (char *)pCallStack;
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+			pUnoReturn = pRegisterReturn; // direct way for simple types
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void**)pCppStack;
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                             pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+            		case typelib_TypeClass_DOUBLE:
+            		{
+			if ((reinterpret_cast< long >(pCppStack) & 7) != 0)
+              		{
+		   		OSL_ASSERT( sizeof (double) == sizeof (sal_Int64) );
+                   		void * pDest = alloca( sizeof (sal_Int64) );
+                  	 	*reinterpret_cast< sal_Int32 * >(pDest) =
+                   		*reinterpret_cast< sal_Int32 const * >(pCppStack);
+                   		*(reinterpret_cast< sal_Int32 * >(pDest) + 1) =
+                   		*(reinterpret_cast< sal_Int32 const * >(pCppStack) + 1);
+                   		pCppArgs[nPos] = pUnoArgs[nPos] = pDest;
+			}
+		   	pCppStack += sizeof (sal_Int32); // extra long
+                   	break;
+=====================================================================
+Found a 117 line (465 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nFunctionIndex,
+    sal_Int32 nVtableOffset,
+	void ** pCallStack,
+=====================================================================
+Found a 95 line (464 tokens) duplication in the following files: 
+Starting at line 696 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 856 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+				if( nPaperBin >= pKey->countValues() )
+					pValue = pKey->getDefaultValue();
+				else
+                    pValue = pKey->getValue( pJobSetup->mnPaperBin );
+
+                // may fail due to constraints;
+                // real paper bin is copied back to jobsetup in that case
+				aData.m_aContext.setValue( pKey, pValue );
+			}
+			// if printer has no InputSlot key simply ignore this setting
+			// (e.g. SGENPRT has no InputSlot)
+		}
+
+		// merge orientation if necessary
+		if( nSetDataFlags & SAL_JOBSET_ORIENTATION )
+			aData.m_eOrientation = pJobSetup->meOrientation == ORIENTATION_LANDSCAPE ? orientation::Landscape : orientation::Portrait;
+
+		m_aJobData = aData;
+		copyJobDataToJobSetup( pJobSetup, aData );
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+// -----------------------------------------------------------------------
+
+void PspSalInfoPrinter::GetPageInfo(
+	const ImplJobSetup* pJobSetup,
+	long& rOutWidth, long& rOutHeight,
+	long& rPageOffX, long& rPageOffY,
+	long& rPageWidth, long& rPageHeight )
+{
+	if( ! pJobSetup )
+		return;
+
+	JobData aData;
+	JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, aData );
+
+	// get the selected page size
+	if( aData.m_pParser )
+	{
+
+		String aPaper;
+		int width, height;
+		int left = 0, top = 0, right = 0, bottom = 0;
+		int nDPI = aData.m_aContext.getRenderResolution();
+
+
+        if( aData.m_eOrientation == psp::orientation::Portrait )
+        {
+            aData.m_aContext.getPageSize( aPaper, width, height );
+            aData.m_pParser->getMargins( aPaper, left, right, top, bottom );
+        }
+        else
+        {
+            aData.m_aContext.getPageSize( aPaper, height, width );
+            aData.m_pParser->getMargins( aPaper, top, bottom, right, left );
+        }
+
+		rPageWidth	= width * nDPI / 72;
+		rPageHeight	= height * nDPI / 72;
+		rPageOffX	= left * nDPI / 72;
+		rPageOffY	= top * nDPI / 72;
+		rOutWidth	= ( width  - left - right ) * nDPI / 72;
+		rOutHeight	= ( height - top  - bottom ) * nDPI / 72;
+	}
+}
+
+// -----------------------------------------------------------------------
+
+ULONG PspSalInfoPrinter::GetPaperBinCount( const ImplJobSetup* pJobSetup )
+{
+	if( ! pJobSetup )
+		return 0;
+
+	JobData aData;
+	JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, aData );
+
+	const PPDKey* pKey = aData.m_pParser ? aData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "InputSlot" ) ) ): NULL;
+    return pKey ? pKey->countValues() : 0;
+}
+
+// -----------------------------------------------------------------------
+
+String PspSalInfoPrinter::GetPaperBinName( const ImplJobSetup* pJobSetup, ULONG nPaperBin )
+{
+	JobData aData;
+	JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, aData );
+
+	String aRet;
+	if( aData.m_pParser )
+	{
+		const PPDKey* pKey = aData.m_pParser ? aData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "InputSlot" ) ) ): NULL;
+		if( ! pKey || nPaperBin >= (ULONG)pKey->countValues() )
+=====================================================================
+Found a 89 line (464 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/propertysethelper.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/config/ldap/propertysethelper.cxx
+
+namespace extensions {
+    namespace apihelper {
+//..........................................................................
+        namespace uno   = com::sun::star::uno;
+        namespace lang  = com::sun::star::lang;
+        namespace beans = com::sun::star::beans;
+//..........................................................................
+PropertySetHelper::PropertySetHelper()
+: BroadcasterBase()
+, cppu::OWeakObject()
+, cppu::OPropertySetHelper( BroadcasterBase::getBroadcastHelper() )
+, m_pHelper(0)
+{
+}
+
+//..........................................................................
+PropertySetHelper::~PropertySetHelper()
+{
+    delete m_pHelper;
+}
+
+//..........................................................................
+// XInterface
+uno::Any SAL_CALL PropertySetHelper::queryInterface( uno::Type const & rType ) throw (uno::RuntimeException)
+{
+    uno::Any aResult = cppu::OPropertySetHelper::queryInterface(rType);
+    if (!aResult.hasValue())
+        aResult = OWeakObject::queryInterface(rType);
+    return aResult;
+}
+
+void SAL_CALL PropertySetHelper::acquire() throw ()
+{
+    OWeakObject::acquire();
+}
+
+void SAL_CALL PropertySetHelper::release() throw ()
+{
+    if (m_refCount == 1)
+        this->disposing();
+
+    OWeakObject::release();
+}
+
+//..........................................................................
+// XTypeProvider
+uno::Sequence< uno::Type > SAL_CALL PropertySetHelper::getTypes() throw (uno::RuntimeException)
+{
+    // could be static instance
+    cppu::OTypeCollection aTypes(
+        ::getCppuType( static_cast< uno::Reference< beans::XPropertySet > const * >(0) ),
+        ::getCppuType( static_cast< uno::Reference< beans::XMultiPropertySet > const * >(0) ),
+        ::getCppuType( static_cast< uno::Reference< beans::XFastPropertySet > const * >(0) ),
+        ::getCppuType( static_cast< uno::Reference< lang::XTypeProvider > const * >(0) ) );
+
+    return aTypes.getTypes();
+}
+
+//..........................................................................
+// cppu::OPropertySetHelper
+uno::Reference< beans::XPropertySetInfo > SAL_CALL PropertySetHelper::getPropertySetInfo(  ) 
+    throw (uno::RuntimeException)
+{
+    return createPropertySetInfo(getInfoHelper());
+}
+	
+//..........................................................................
+cppu::IPropertyArrayHelper & SAL_CALL PropertySetHelper::getInfoHelper()
+{
+    osl::MutexGuard aGuard( getBroadcastMutex() );
+    if (!m_pHelper)
+        m_pHelper = newInfoHelper();
+
+    OSL_ENSURE(m_pHelper,"Derived class did not create new PropertyInfoHelper");
+    if (!m_pHelper)
+        throw uno::RuntimeException(rtl::OUString::createFromAscii("No PropertyArrayHelper available"),*this);
+
+    return *m_pHelper;
+}
+
+//..........................................................................
+sal_Bool SAL_CALL PropertySetHelper::convertFastPropertyValue(
+    uno::Any & rConvertedValue, uno::Any & rOldValue, sal_Int32 nHandle, const uno::Any& rValue )
+		throw (lang::IllegalArgumentException)
+{
+    this->getFastPropertyValue(rOldValue, nHandle);
+    rConvertedValue = rValue;
+    return rValue.isExtractableTo( rOldValue.getValueType() );   
+}
+=====================================================================
+Found a 116 line (464 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( 
+         pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( 
+                    &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+                // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nFunctionIndex,
+        sal_Int32 nVtableOffset,
+        void ** gpreg, void ** fpreg, void ** ovrflw,
+=====================================================================
+Found a 96 line (462 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linksrc.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linksrc.cxx
+
+				p->xSink->DataChanged( rMimeType, rVal );
+
+				if( p->nAdviseModes & ADVISEMODE_ONLYONCE )
+				{
+					USHORT nFndPos = pImpl->aArr.GetPos( p );
+					if( USHRT_MAX != nFndPos )
+						pImpl->aArr.DeleteAndDestroy( nFndPos );
+				}
+			}
+		}
+
+		if( pImpl->pTimer )
+		{
+			delete pImpl->pTimer;
+			pImpl->pTimer = NULL;
+		}
+	}
+}
+
+
+// only one link is correct
+void SvLinkSource::AddDataAdvise( SvBaseLink * pLink, const String& rMimeType,
+									USHORT nAdviseModes )
+{
+	SvLinkSource_Entry_ImplPtr pNew = new SvLinkSource_Entry_Impl(
+					pLink, rMimeType, nAdviseModes );
+	pImpl->aArr.Insert( pNew, pImpl->aArr.Count() );
+}
+
+void SvLinkSource::RemoveAllDataAdvise( SvBaseLink * pLink )
+{
+	SvLinkSource_EntryIter_Impl aIter( pImpl->aArr );
+	for( SvLinkSource_Entry_ImplPtr p = aIter.Curr(); p; p = aIter.Next() )
+		if( p->bIsDataSink && &p->xSink == pLink )
+		{
+			USHORT nFndPos = pImpl->aArr.GetPos( p );
+			if( USHRT_MAX != nFndPos )
+				pImpl->aArr.DeleteAndDestroy( nFndPos );
+		}
+}
+
+// only one link is correct
+void SvLinkSource::AddConnectAdvise( SvBaseLink * pLink )
+{
+	SvLinkSource_Entry_ImplPtr pNew = new SvLinkSource_Entry_Impl( pLink );
+	pImpl->aArr.Insert( pNew, pImpl->aArr.Count() );
+}
+
+void SvLinkSource::RemoveConnectAdvise( SvBaseLink * pLink )
+{
+	SvLinkSource_EntryIter_Impl aIter( pImpl->aArr );
+	for( SvLinkSource_Entry_ImplPtr p = aIter.Curr(); p; p = aIter.Next() )
+		if( !p->bIsDataSink && &p->xSink == pLink )
+		{
+			USHORT nFndPos = pImpl->aArr.GetPos( p );
+			if( USHRT_MAX != nFndPos )
+				pImpl->aArr.DeleteAndDestroy( nFndPos );
+		}
+}
+
+BOOL SvLinkSource::HasDataLinks( const SvBaseLink* pLink ) const
+{
+	BOOL bRet = FALSE;
+	const SvLinkSource_Entry_Impl* p;
+	for( USHORT n = 0, nEnd = pImpl->aArr.Count(); n < nEnd; ++n )
+		if( ( p = pImpl->aArr[ n ] )->bIsDataSink &&
+			( !pLink || &p->xSink == pLink ) )
+		{
+			bRet = TRUE;
+			break;
+		}
+	return bRet;
+}
+
+// TRUE => waitinmg for data
+BOOL SvLinkSource::IsPending() const
+{
+	return FALSE;
+}
+
+// TRUE => data complete loaded
+BOOL SvLinkSource::IsDataComplete() const
+{
+	return TRUE;
+}
+
+BOOL SvLinkSource::Connect( SvBaseLink * )
+{
+	return TRUE;
+}
+
+BOOL SvLinkSource::GetData( ::com::sun::star::uno::Any & ,
+						const String & , BOOL )
+{
+	return FALSE;
+}
+=====================================================================
+Found a 115 line (462 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilteradaptor/streamwrap.cxx
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.cxx
+
+	return nAvailable;
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OInputStreamWrapper::closeInput() throw( stario::NotConnectedException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	if (m_bSvStreamOwner)
+		delete m_pSvStream;
+
+	m_pSvStream = NULL;
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkConnected() const
+{
+	if (!m_pSvStream)
+		throw stario::NotConnectedException(::rtl::OUString(), const_cast<staruno::XWeak*>(static_cast<const staruno::XWeak*>(this)));
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkError() const
+{
+	checkConnected();
+}
+
+//==================================================================
+//= OSeekableInputStreamWrapper
+//==================================================================
+//------------------------------------------------------------------------------
+OSeekableInputStreamWrapper::OSeekableInputStreamWrapper(File& _rStream)
+	:OInputStreamWrapper(_rStream)
+{
+}
+
+//------------------------------------------------------------------------------
+OSeekableInputStreamWrapper::OSeekableInputStreamWrapper(File* _pStream, sal_Bool _bOwner)
+	:OInputStreamWrapper(_pStream, _bOwner)
+{
+}
+
+//------------------------------------------------------------------------------
+Any SAL_CALL OSeekableInputStreamWrapper::queryInterface( const Type& _rType ) throw (RuntimeException)
+{
+	Any aReturn = OInputStreamWrapper::queryInterface(_rType);
+	if (!aReturn.hasValue())
+		aReturn = OSeekableInputStreamWrapper_Base::queryInterface(_rType);
+	return aReturn;
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSeekableInputStreamWrapper::acquire(  ) throw ()
+{
+	OInputStreamWrapper::acquire();
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSeekableInputStreamWrapper::release(  ) throw ()
+{
+	OInputStreamWrapper::release();
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSeekableInputStreamWrapper::seek( sal_Int64 _nLocation ) throw (IllegalArgumentException, IOException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	m_pSvStream->setPos(Pos_Current,(sal_uInt32)_nLocation);
+	checkError();
+}
+
+//------------------------------------------------------------------------------
+sal_Int64 SAL_CALL OSeekableInputStreamWrapper::getPosition(  ) throw (IOException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	sal_uInt64 nPos = 0;
+	nPos = m_pSvStream->getPos(nPos);
+	checkError();
+	return nPos;
+}
+
+//------------------------------------------------------------------------------
+sal_Int64 SAL_CALL OSeekableInputStreamWrapper::getLength(  ) throw (IOException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	sal_uInt64 nCurrentPos = 0;
+	m_pSvStream->getPos(nCurrentPos);
+	checkError();
+
+	m_pSvStream->setPos(osl_Pos_End,0);
+	sal_uInt64 nEndPos = 0;
+	m_pSvStream->getPos(nEndPos);
+	m_pSvStream->setPos(osl_Pos_Absolut,nCurrentPos);
+
+	checkError();
+
+	return nEndPos;
+}
+
+//==================================================================
+//= OOutputStreamWrapper
+//==================================================================
+//------------------------------------------------------------------------------
+void SAL_CALL OOutputStreamWrapper::writeBytes(const staruno::Sequence< sal_Int8 >& aData) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	sal_uInt64 nWritten = 0;
+	rStream.write(aData.getConstArray(),aData.getLength(),nWritten);
+	if (nWritten != aData.getLength())
+=====================================================================
+Found a 95 line (462 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propertysethelper.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/property/propertysethelper.cxx
+
+		delete [] pEntries;
+
+		if( bUnknown )
+			throw UnknownPropertyException();
+	}
+
+	return aValues;
+}
+
+void SAL_CALL PropertySetHelper::addPropertiesChangeListener( const Sequence< ::rtl::OUString >& /*aPropertyNames*/, const Reference< XPropertiesChangeListener >& /*xListener*/ ) throw(RuntimeException)
+{
+	// todo
+}
+
+void SAL_CALL PropertySetHelper::removePropertiesChangeListener( const Reference< XPropertiesChangeListener >& /*xListener*/ ) throw(RuntimeException)
+{
+	// todo
+}
+
+void SAL_CALL PropertySetHelper::firePropertiesChangeEvent( const Sequence< ::rtl::OUString >& /*aPropertyNames*/, const Reference< XPropertiesChangeListener >& /*xListener*/ ) throw(RuntimeException)
+{
+	// todo
+}
+
+// XPropertyState
+PropertyState SAL_CALL PropertySetHelper::getPropertyState( const ::rtl::OUString& PropertyName ) throw(UnknownPropertyException, RuntimeException)
+{
+	PropertyMapEntry* aEntries[2];
+
+	aEntries[0] = mp->find( PropertyName );
+	if( aEntries[0] == NULL )
+		throw UnknownPropertyException();
+
+	aEntries[1] = NULL;
+
+	PropertyState aState;
+	_getPropertyStates( (const PropertyMapEntry**)aEntries, &aState );
+
+	return aState;
+}
+
+Sequence< PropertyState > SAL_CALL PropertySetHelper::getPropertyStates( const Sequence< ::rtl::OUString >& aPropertyName ) throw(UnknownPropertyException, RuntimeException)
+{
+	const sal_Int32 nCount = aPropertyName.getLength();
+
+	Sequence< PropertyState > aStates( nCount );
+
+	if( nCount )
+	{
+		const OUString* pNames = aPropertyName.getConstArray();
+
+		sal_Bool bUnknown = sal_False;
+
+		PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
+
+		sal_Int32 n;
+		for( n = 0; !bUnknown && (n < nCount); n++, pNames++ )
+		{
+			pEntries[n] = mp->find( *pNames );
+			bUnknown = NULL == pEntries[n];
+		}
+
+		pEntries[nCount] = NULL;
+
+		if( !bUnknown )
+			_getPropertyStates( (const PropertyMapEntry**)pEntries, aStates.getArray() );
+
+		delete [] pEntries;
+
+		if( bUnknown )
+			throw UnknownPropertyException();
+	}
+
+	return aStates;
+}
+
+void SAL_CALL PropertySetHelper::setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(UnknownPropertyException, RuntimeException)
+{
+	PropertyMapEntry *pEntry  = mp->find( PropertyName );
+	if( NULL == pEntry )
+		throw UnknownPropertyException();
+
+	_setPropertyToDefault( pEntry );
+}
+
+Any SAL_CALL PropertySetHelper::getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+{
+	PropertyMapEntry* pEntry = mp->find( aPropertyName );
+	if( NULL == pEntry )
+		throw UnknownPropertyException();
+
+	return _getPropertyDefault( pEntry );
+}
+
+void PropertySetHelper::_getPropertyStates( const utl::PropertyMapEntry** /*ppEntries*/, PropertyState* /*pStates*/ ) throw(UnknownPropertyException )
+=====================================================================
+Found a 95 line (462 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idlmaker.cxx
+
+	IdlOptions options;
+
+	try 
+	{
+		if (!options.initOptions(argc, argv))
+		{
+			exit(1);
+		}
+	}
+	catch( IllegalArgument& e)
+	{
+		fprintf(stderr, "Illegal option: %s\n", e.m_message.getStr());
+		exit(99);
+	}
+
+	RegistryTypeManager typeMgr;
+	TypeDependency		typeDependencies;
+	
+	if (!typeMgr.init(!options.isValid("-T"), options.getInputFiles()))
+	{
+		fprintf(stderr, "%s : init registries failed, check your registry files.\n", options.getProgramName().getStr());
+		exit(99);
+	}
+
+	if (options.isValid("-B"))
+	{
+		typeMgr.setBase(options.getOption("-B"));
+	}
+
+	try 
+	{
+		if (options.isValid("-T"))
+		{
+			OString tOption(options.getOption("-T"));
+
+			OString typeName, tmpName;
+			sal_Bool ret = sal_False;
+            sal_Int32 nIndex = 0;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+                tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope, but the scope is not recursively  generated.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+					ret = produceAllTypes(tmpName, typeMgr, typeDependencies, &options, sal_False);
+				} else
+				{
+					// produce only this type
+					ret = produceType(typeName.replace('.', '/'), typeMgr, typeDependencies, &options);
+				}
+
+				if (!ret)
+				{
+					fprintf(stderr, "%s ERROR: %s\n", 
+							options.getProgramName().getStr(), 
+							OString("cannot dump Type '" + typeName + "'").getStr());
+					exit(99);
+				}
+			} while( nIndex != -1 );
+		} else
+		{
+			// produce all types
+			if (!produceAllTypes("/", typeMgr, typeDependencies, &options, sal_True))
+			{
+				fprintf(stderr, "%s ERROR: %s\n", 
+						options.getProgramName().getStr(), 
+						"an error occurs while dumping all types.");
+				exit(99);
+			}
+		}
+	}
+	catch( CannotDumpException& e)
+	{
+		fprintf(stderr, "%s ERROR: %s\n", 
+				options.getProgramName().getStr(), 
+				e.m_message.getStr());
+		exit(99);
+	}
+
+	return 0;
+}
+=====================================================================
+Found a 81 line (460 tokens) duplication in the following files: 
+Starting at line 1565 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+Starting at line 1753 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+
+    ScInvertMerger aInvert( &rPixelRects );
+
+	Point aScrPos = pViewData->GetScrPos( nX1, nY1, eWhich );
+	long nScrY = aScrPos.Y();
+	BOOL bWasHidden = FALSE;
+	for (SCROW nY=nY1; nY<=nY2; nY++)
+	{
+		BOOL bFirstRow = ( nY == nPosY );						// first visible row?
+		BOOL bDoHidden = FALSE;									// versteckte nachholen ?
+		USHORT nHeightTwips = pDoc->GetRowHeight( nY,nTab );
+		BOOL bDoRow = ( nHeightTwips != 0 );
+		if (bDoRow)
+		{
+			if (bTestMerge)
+				if (bWasHidden)					// auf versteckte zusammengefasste testen
+				{
+					bDoHidden = TRUE;
+					bDoRow = TRUE;
+				}
+
+			bWasHidden = FALSE;
+		}
+		else
+		{
+			bWasHidden = TRUE;
+			if (bTestMerge)
+				if (nY==nY2)
+					bDoRow = TRUE;				// letzte Zeile aus Block
+		}
+
+		if ( bDoRow )
+		{
+			SCCOL nLoopEndX = nX2;
+			if (nX2 < nX1)						// Rest von zusammengefasst
+			{
+				SCCOL nStartX = nX1;
+				while ( ((const ScMergeFlagAttr*)pDoc->
+							GetAttr(nStartX,nY,nTab,ATTR_MERGE_FLAG))->IsHorOverlapped() )
+					--nStartX;
+				if (nStartX <= nX2)
+					nLoopEndX = nX1;
+			}
+
+			long nEndY = nScrY + ScViewData::ToPixel( nHeightTwips, nPPTY ) - 1;
+			long nScrX = aScrPos.X();
+			for (SCCOL nX=nX1; nX<=nLoopEndX; nX++)
+			{
+				long nWidth = ScViewData::ToPixel( pDoc->GetColWidth( nX,nTab ), nPPTX );
+				if ( nWidth > 0 )
+				{
+					long nEndX = nScrX + ( nWidth - 1 ) * nLayoutSign;
+					if (bTestMerge)
+					{
+						SCROW nThisY = nY;
+						const ScPatternAttr* pPattern = pDoc->GetPattern( nX, nY, nTab );
+						const ScMergeFlagAttr* pMergeFlag = (const ScMergeFlagAttr*) &pPattern->
+																		GetItem(ATTR_MERGE_FLAG);
+						if ( pMergeFlag->IsVerOverlapped() && ( bDoHidden || bFirstRow ) )
+						{
+							while ( pMergeFlag->IsVerOverlapped() && nThisY > 0 &&
+										( (pDoc->GetRowFlags( nThisY-1, nTab ) & CR_HIDDEN) || bFirstRow ) )
+							{
+								--nThisY;
+								pPattern = pDoc->GetPattern( nX, nThisY, nTab );
+								pMergeFlag = (const ScMergeFlagAttr*) &pPattern->GetItem(ATTR_MERGE_FLAG);
+							}
+						}
+
+						// nur Rest von zusammengefasster zu sehen ?
+						SCCOL nThisX = nX;
+						if ( pMergeFlag->IsHorOverlapped() && nX == nPosX && nX > nRealX1 )
+						{
+							while ( pMergeFlag->IsHorOverlapped() )
+							{
+								--nThisX;
+								pPattern = pDoc->GetPattern( nThisX, nThisY, nTab );
+								pMergeFlag = (const ScMergeFlagAttr*) &pPattern->GetItem(ATTR_MERGE_FLAG);
+							}
+						}
+
+						if ( aMultiMark.IsCellMarked( nThisX, nThisY, TRUE ) == bRepeat )
+=====================================================================
+Found a 81 line (459 tokens) duplication in the following files: 
+Starting at line 3757 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3958 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : WW8PLCFx(rFib.GetFIBVersion(), false), pStatus(0), nIsEnd(0)
+{
+    if( !rFib.fcPlcfbkf || !rFib.lcbPlcfbkf || !rFib.fcPlcfbkl ||
+        !rFib.lcbPlcfbkl || !rFib.fcSttbfbkmk || !rFib.lcbSttbfbkmk )
+    {
+        pBook[0] = pBook[1] = 0;
+        nIMax = 0;
+    }
+    else
+    {
+        pBook[0] = new WW8PLCFspecial(pTblSt,rFib.fcPlcfbkf,rFib.lcbPlcfbkf,4);
+
+        pBook[1] = new WW8PLCFspecial( pTblSt, rFib.fcPlcfbkl, rFib.lcbPlcfbkl,
+            0, -1, true);
+
+        rtl_TextEncoding eStructChrSet = WW8Fib::GetFIBCharset(rFib.chseTables);
+
+        WW8ReadSTTBF( (7 < rFib.nVersion), *pTblSt, rFib.fcSttbfbkmk,
+            rFib.lcbSttbfbkmk, 0, eStructChrSet, aBookNames );
+
+        nIMax = aBookNames.size();
+
+        if( pBook[0]->GetIMax() < nIMax )   // Count of Bookmarks
+            nIMax = pBook[0]->GetIMax();
+        if( pBook[1]->GetIMax() < nIMax )
+            nIMax = pBook[1]->GetIMax();
+        pStatus = new eBookStatus[ nIMax ];
+        memset( pStatus, 0, nIMax * sizeof( eBookStatus ) );
+    }
+}
+
+WW8PLCFx_Book::~WW8PLCFx_Book()
+{
+    delete[] pStatus;
+    delete pBook[1];
+    delete pBook[0];
+}
+
+ULONG WW8PLCFx_Book::GetIdx() const
+{
+    return nIMax ? pBook[0]->GetIdx() : 0;
+}
+
+void WW8PLCFx_Book::SetIdx( ULONG nI )
+{
+    if( nIMax )
+        pBook[0]->SetIdx( nI );
+}
+
+ULONG WW8PLCFx_Book::GetIdx2() const
+{
+    return nIMax ? ( pBook[1]->GetIdx() | ( ( nIsEnd ) ? 0x80000000 : 0 ) ) : 0;
+}
+
+void WW8PLCFx_Book::SetIdx2( ULONG nI )
+{
+    if( nIMax )
+    {
+        pBook[1]->SetIdx( nI & 0x7fffffff );
+        nIsEnd = (USHORT)( ( nI >> 31 ) & 1 );  // 0 oder 1
+    }
+}
+
+bool WW8PLCFx_Book::SeekPos(WW8_CP nCpPos)
+{
+    if( !pBook[0] )
+        return false;
+
+    bool bOk = pBook[0]->SeekPosExact( nCpPos );
+    bOk &= pBook[1]->SeekPosExact( nCpPos );
+    nIsEnd = 0;
+
+    return bOk;
+}
+
+WW8_CP WW8PLCFx_Book::Where()
+{
+    return pBook[nIsEnd]->Where();
+}
+
+long WW8PLCFx_Book::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, sal_Int32& rLen )
+=====================================================================
+Found a 10 line (459 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2468 - 246f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2470 - 2477
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2478 - 247f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2480 - 2487
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2488 - 248f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2490 - 2497
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2498 - 249f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a0 - 24a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a8 - 24af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x68, 0x24D0}, {0x68, 0x24D1}, // 24b0 - 24b7
+=====================================================================
+Found a 75 line (458 tokens) duplication in the following files: 
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1393 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+	for ( size_t nPos = 0; nPos < _radios.size(); ++nPos )
+	{
+		Reference< xml::input::XElement > xRadio( _radios[ nPos ] );
+		Reference< xml::input::XAttributes > xAttributes(
+            xRadio->getAttributes() );
+		
+		ControlImportContext ctx(
+			_pImport, getControlId( xAttributes ),
+			OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlRadioButtonModel") ) );
+		Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+		
+		Reference< xml::input::XElement > xStyle( getStyle( xAttributes ) );
+		if (xStyle.is())
+		{
+			StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+            pStyle->importBackgroundColorStyle( xControlModel );
+			pStyle->importTextColorStyle( xControlModel );
+            pStyle->importTextLineColorStyle( xControlModel );
+			pStyle->importFontStyle( xControlModel );
+			pStyle->importVisualEffectStyle( xControlModel );
+		}
+		
+		ctx.importDefaults( _nBasePosX, _nBasePosY, xAttributes );
+		ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+								   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+								   xAttributes );
+		ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
+								  OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
+								  xAttributes );
+        ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
+                                 OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
+                                 xAttributes );
+        ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
+                                         OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
+                                         xAttributes );
+        ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
+                                  OUString( RTL_CONSTASCII_USTRINGPARAM("image-src") ),
+                                  xAttributes );
+        ctx.importImagePositionProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImagePosition") ),
+                                         OUString( RTL_CONSTASCII_USTRINGPARAM("image-position") ),
+                                         xAttributes );
+        ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
+                                   OUString( RTL_CONSTASCII_USTRINGPARAM("multiline") ),
+                                   xAttributes );
+		
+		sal_Int16 nVal = 0;
+		sal_Bool bChecked = sal_False;
+		if (getBoolAttr( &bChecked,
+                         OUString( RTL_CONSTASCII_USTRINGPARAM("checked") ),
+                         xAttributes,
+                         _pImport->XMLNS_DIALOGS_UID ) &&
+			bChecked)
+		{
+			nVal = 1;
+		}
+		xControlModel->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ),
+										 makeAny( nVal ) );
+		
+        ::std::vector< Reference< xml::input::XElement > > * radioEvents =
+            static_cast< RadioElement * >( xRadio.get() )->getEvents();
+		ctx.importEvents( *radioEvents );
+        // avoid ring-reference:
+        // vector< event elements > holding event elements holding this (via _pParent)
+        radioEvents->clear();
+	}
+    // avoid ring-reference:
+    // vector< radio elements > holding radio elements holding this (via _pParent)
+    _radios.clear();
+}
+
+//##################################################################################################
+
+// menupopup
+//__________________________________________________________________________________________________
+Reference< xml::input::XElement > MenuPopupElement::startChildElement(
+=====================================================================
+Found a 17 line (457 tokens) duplication in the following files: 
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f00 - 2f0f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f10 - 2f1f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f20 - 2f2f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f30 - 2f3f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f40 - 2f4f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f50 - 2f5f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f60 - 2f6f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f70 - 2f7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f80 - 2f8f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f90 - 2f9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fa0 - 2faf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fb0 - 2fbf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fc0 - 2fcf
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fd0 - 2fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fe0 - 2fef
+=====================================================================
+Found a 102 line (457 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/Cservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LServices.cxx
+
+using namespace connectivity::evoab;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+=====================================================================
+Found a 102 line (457 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/Hservices.cxx
+
+using namespace connectivity::hsqldb;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "ADABAS::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+=====================================================================
+Found a 74 line (456 tokens) duplication in the following files: 
+Starting at line 878 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/registry_tdprovider/testregistrytdprovider.cxx
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/tdmanager/testtdmanager.cxx
+
+    return rtl::OUString::createFromAscii("test.tdmanager.impl");
+}
+
+css::uno::Sequence< rtl::OUString > Service::getSupportedServiceNames() {
+    return css::uno::Sequence< rtl::OUString >();
+}
+
+css::uno::Reference< css::uno::XInterface > Service::createInstance(
+    css::uno::Reference< css::uno::XComponentContext > const & context)
+    throw (css::uno::Exception)
+{
+    return static_cast< cppu::OWeakObject * >(new Service(context));
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, uno_Environment **)
+{
+    if (envTypeName != 0) {
+        *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+    }
+}
+
+extern "C" void * SAL_CALL component_getFactory(char const * implName,
+                                                void * serviceManager, void *) {
+    void * p = 0;
+    if (serviceManager != 0) {
+        css::uno::Reference< css::lang::XSingleComponentFactory > f;
+        if (Service::getImplementationName().equalsAscii(implName)) {
+            f = cppu::createSingleComponentFactory(
+                &Service::createInstance, Service::getImplementationName(),
+                Service::getSupportedServiceNames());
+        }
+        if (f.is()) {
+            f->acquire();
+            p = f.get();
+        }
+    }
+    return p;
+}
+
+namespace {
+
+bool writeInfo(void * registryKey, rtl::OUString const & implementationName,
+               css::uno::Sequence< rtl::OUString > const & serviceNames) {
+    rtl::OUString keyName(rtl::OUString::createFromAscii("/"));
+    keyName += implementationName;
+    keyName += rtl::OUString::createFromAscii("/UNO/SERVICES");
+    css::uno::Reference< css::registry::XRegistryKey > key;
+    try {
+        key = static_cast< css::registry::XRegistryKey * >(registryKey)->
+            createKey(keyName);
+    } catch (css::registry::InvalidRegistryException &) {}
+    if (!key.is()) {
+        return false;
+    }
+    bool success = true;
+    for (sal_Int32 i = 0; i < serviceNames.getLength(); ++i) {
+        try {
+            key->createKey(serviceNames[i]);
+        } catch (css::registry::InvalidRegistryException &) {
+            success = false;
+            break;
+        }
+    }
+    return success;
+}
+
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(void *, void * registryKey) {
+    return registryKey
+        && writeInfo(registryKey, Service::getImplementationName(),
+                     Service::getSupportedServiceNames());
+}
+=====================================================================
+Found a 65 line (455 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/tempnam.c
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/tempnam.c
+
+static char *P_tmpdir = "";
+
+char *
+dtempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 21 line (455 tokens) duplication in the following files: 
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+
+	 wht,fig,wht,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // 48 ...
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // 80 ...
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,err  // 112 ...
+	};
+
+	const INT16 A_nBezeichnerStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+	 err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+	 fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err  // 112 ...
+	};
+
+	const INT16 A_nPunctDefStatus[C_nStatusSize] =
+=====================================================================
+Found a 84 line (452 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/spelldta.cxx
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldta.cxx
+
+using namespace utl;
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::linguistic2;
+
+namespace linguistic
+{
+	
+///////////////////////////////////////////////////////////////////////////
+
+
+#define MAX_PROPOSALS	40
+
+Reference< XSpellAlternatives > MergeProposals(
+			Reference< XSpellAlternatives > &rxAlt1,
+			Reference< XSpellAlternatives > &rxAlt2)
+{
+	Reference< XSpellAlternatives > xMerged;
+
+	if (!rxAlt1.is())
+		xMerged = rxAlt2;
+	else if (!rxAlt2.is())
+		xMerged = rxAlt1;
+	else
+	{
+		INT32 nAltCount1 = rxAlt1->getAlternativesCount();
+		Sequence< OUString > aAlt1( rxAlt1->getAlternatives() );
+		const OUString *pAlt1 = aAlt1.getConstArray();
+
+		INT32 nAltCount2 = rxAlt2->getAlternativesCount();
+		Sequence< OUString > aAlt2( rxAlt2->getAlternatives() );
+		const OUString *pAlt2 = aAlt2.getConstArray();
+
+		INT32 nCountNew = Min( nAltCount1 + nAltCount2, (INT32) MAX_PROPOSALS );
+		Sequence< OUString > aAltNew( nCountNew );
+		OUString *pAltNew = aAltNew.getArray();
+
+		INT32 nIndex = 0;
+		INT32 i = 0;
+		for (int j = 0;  j < 2;  j++)
+		{
+			INT32 			nCount 	= j == 0 ? nAltCount1 : nAltCount2;
+			const OUString  *pAlt 	= j == 0 ? pAlt1 : pAlt2;
+			for (i = 0;  i < nCount  &&  nIndex < MAX_PROPOSALS;  i++)
+			{
+				if (pAlt[i].getLength())
+					pAltNew[ nIndex++ ] = pAlt[ i ];
+			}
+		}
+		DBG_ASSERT(nIndex == nCountNew, "lng : wrong number of proposals");
+
+		SpellAlternatives *pSpellAlt = new SpellAlternatives;
+		pSpellAlt->SetWordLanguage( rxAlt1->getWord(),
+							LocaleToLanguage( rxAlt1->getLocale() ) );
+		pSpellAlt->SetFailureType( rxAlt1->getFailureType() );
+		pSpellAlt->SetAlternatives( aAltNew );
+		xMerged = pSpellAlt;
+	}
+
+	return xMerged;
+}
+
+
+BOOL SeqHasEntry( 
+        const Sequence< OUString > &rSeq, 
+        const OUString &rTxt)
+{
+    BOOL bRes = FALSE;
+    INT32 nLen = rSeq.getLength();
+    const OUString *pEntry = rSeq.getConstArray();
+    for (INT32 i = 0;  i < nLen  &&  !bRes;  ++i)
+    {
+        if (rTxt == pEntry[i])
+            bRes = TRUE;
+    }
+    return bRes;
+}
+
+
+void SearchSimilarText( const OUString &rText, INT16 nLanguage, 
+=====================================================================
+Found a 76 line (451 tokens) duplication in the following files: 
+Starting at line 1657 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2104 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        == getCppuType< css::uno::Reference< Interface2a > >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+=====================================================================
+Found a 83 line (450 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localschemasupplier.cxx
+Starting at line 623 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localsinglebackend.cxx
+
+    LocalSingleBackend::getComponentSchema(const rtl::OUString& aComponent) 
+        throw (backend::BackendAccessException, lang::IllegalArgumentException,
+                uno::RuntimeException)
+{
+    rtl::OUString subPath = componentToPath(aComponent) ;
+
+    osl::File * schemaFile = NULL;
+    OUString errorMessage;
+    bool bInsufficientAccess = false;
+    for (sal_Int32 ix = 0; ix < mSchemaDataUrls.getLength(); ++ix)
+    {
+        rtl::OUStringBuffer schemaUrl(mSchemaDataUrls[ix]) ;
+
+        schemaUrl.append(subPath).append(kSchemaSuffix) ;
+
+        OUString const aFileUrl = schemaUrl.makeStringAndClear();
+
+        std::auto_ptr<osl::File> checkFile( new osl::File(aFileUrl) );
+        osl::File::RC rc = checkFile->open(OpenFlag_Read) ;
+
+        if (rc == osl::File::E_None)
+        {
+            schemaFile = checkFile.release();
+            break;
+        }
+        else if (rc != osl::File::E_NOENT)
+        {
+            if (rc == osl::File::E_ACCES)
+                bInsufficientAccess =true;
+
+            // accumulate error messages
+            rtl::OUStringBuffer sMsg(errorMessage);
+            if (errorMessage.getLength())
+                sMsg.appendAscii("LocalFile SchemaSupplier - Error accessing schema: ");
+
+            sMsg.appendAscii("\n- Cannot open input file \"");
+            sMsg.append(aFileUrl);
+            sMsg.appendAscii("\" : ");
+            sMsg.append(FileHelper::createOSLErrorString(rc));
+            
+            errorMessage = sMsg.makeStringAndClear();
+        }
+    }
+
+    if (NULL == schemaFile)
+    {
+        if (errorMessage.getLength() != 0)
+        {
+            // a real error occured
+            io::IOException ioe(errorMessage,*this);
+
+            rtl::OUStringBuffer sMsg;
+            sMsg.appendAscii("LocalFileLayer - Cannot readData: ").append(errorMessage);
+        
+            if (bInsufficientAccess)
+                throw backend::InsufficientAccessRightsException(sMsg.makeStringAndClear(),*this,uno::makeAny(ioe));
+            else
+                throw backend::BackendAccessException(sMsg.makeStringAndClear(),*this,uno::makeAny(ioe));
+        }
+        // simply not found
+        return NULL;
+    }
+
+    uno::Sequence<uno::Any> arguments(1) ;
+    uno::Reference<io::XInputStream> stream( new OSLInputStreamWrapper(schemaFile, true) );
+
+    arguments [0] <<= stream ;
+    uno::Reference<backend::XSchema> schema(
+            mFactory->createInstanceWithArguments(kXMLSchemaParser, arguments),
+            uno::UNO_QUERY) ;
+
+    if (!schema.is()) 
+    {
+        throw uno::RuntimeException(
+                rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                        "Cannot instantiate Schema Parser for ")) + aComponent, 
+                *this) ;
+    }
+    return schema ;
+}
+//------------------------------------------------------------------------------
+
+static
+=====================================================================
+Found a 76 line (449 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1657 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        a.getValueType() == getCppuType< css::uno::Sequence< sal_Int32 > >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+=====================================================================
+Found a 76 line (448 tokens) duplication in the following files: 
+Starting at line 2398 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 2609 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+						  padd(ascii("fo:border"), sXML_CDATA, ascii("none"));
+                    break;
+                case 1:                           /* ���½Ǽ� */
+                case 3:                           /* a�� -> ��Ÿ���ǽ����� a���� ���. */
+                    padd(ascii("fo:border"), sXML_CDATA,ascii("0.002cm solid #000000"));
+                    break;
+                case 2:                           /* ��:�Ǽ� */
+                    padd(ascii("fo:border"), sXML_CDATA,ascii("0.035cm solid #000000"));
+                    break;
+                case 4:                           /* 2�߼� */
+                    padd(ascii("style:border-line-width"), sXML_CDATA,ascii("0.002cm 0.035cm 0.002cm"));
+                    padd(ascii("fo:border"), sXML_CDATA,ascii("0.039cm double #000000"));
+                    break;
+            }
+        }
+        else
+        {
+            switch( cell->linetype[0] )
+            {
+                case 1:                           /* ���½Ǽ� */
+                case 3:                           /* a�� -> ��Ÿ���ǽ����� a���� ���. */
+                    padd(ascii("fo:border-left"), sXML_CDATA,ascii("0.002cm solid #000000"));
+                    break;
+                case 2:                           /* ��:�Ǽ� */
+                    padd(ascii("fo:border-left"), sXML_CDATA,ascii("0.035cm solid #000000"));
+                    break;
+                case 4:                           /* 2�߼� */
+                    padd(ascii("style:border-line-width-left"), sXML_CDATA,ascii("0.002cm 0.035cm 0.002cm"));
+                    padd(ascii("fo:border-left"), sXML_CDATA,ascii("0.039cm double #000000"));
+                    break;
+            }
+            switch( cell->linetype[1] )
+            {
+                case 1:                           /* ���½Ǽ� */
+                case 3:                           /* a�� -> ��Ÿ���ǽ����� a���� ���. */
+                    padd(ascii("fo:border-right"), sXML_CDATA,ascii("0.002cm solid #000000"));
+                    break;
+                case 2:                           /* ��:�Ǽ� */
+                    padd(ascii("fo:border-right"), sXML_CDATA,ascii("0.035cm solid #000000"));
+                    break;
+                case 4:                           /* 2�߼� */
+                    padd(ascii("style:border-line-width-right"), sXML_CDATA,ascii("0.002cm 0.035cm 0.002cm"));
+                    padd(ascii("fo:border-right"), sXML_CDATA,ascii("0.039cm double #000000"));
+                    break;
+            }
+            switch( cell->linetype[2] )
+            {
+                case 1:                           /* ���½Ǽ� */
+                case 3:                           /* a�� -> ��Ÿ���ǽ����� a���� ���. */
+                    padd(ascii("fo:border-top"), sXML_CDATA,ascii("0.002cm solid #000000"));
+                    break;
+                case 2:                           /* ��:�Ǽ� */
+                    padd(ascii("fo:border-top"), sXML_CDATA,ascii("0.035cm solid #000000"));
+                    break;
+                case 4:                           /* 2�߼� */
+                    padd(ascii("style:border-line-width-top"), sXML_CDATA,ascii("0.002cm 0.035cm 0.002cm"));
+                    padd(ascii("fo:border-top"), sXML_CDATA,ascii("0.039cm double #000000"));
+                    break;
+            }
+            switch( cell->linetype[3] )
+            {
+                case 1:                           /* ���½Ǽ� */
+                case 3:                           /* a�� -> ��Ÿ���ǽ����� a���� ���. */
+                    padd(ascii("fo:border-bottom"), sXML_CDATA,ascii("0.002cm solid #000000"));
+                    break;
+                case 2:                           /* ��:�Ǽ� */
+                    padd(ascii("fo:border-bottom"), sXML_CDATA,ascii("0.035cm solid #000000"));
+                    break;
+                case 4:                           /* 2�߼� */
+                    padd(ascii("style:border-line-width-bottom"), sXML_CDATA,ascii("0.002cm 0.035cm 0.002cm"));
+                    padd(ascii("fo:border-bottom"), sXML_CDATA,ascii("0.039cm double #000000"));
+                    break;
+            }
+        }
+
+		  if( cell->linetype[0] == 0 && cell->linetype[1] == 0 &&
+=====================================================================
+Found a 83 line (448 tokens) duplication in the following files: 
+Starting at line 507 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 959 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+OString	CunoType::getTypeClass(const OString& type, sal_Bool bCStyle)
+{
+	OString 	typeName = (type.getLength() > 0 ? type : m_typeName);
+	RTTypeClass	rtTypeClass = RT_TYPE_INVALID;
+
+	if (type.getLength() > 0)
+	{
+		typeName = type;
+		rtTypeClass = m_typeMgr.getTypeClass(typeName);
+	} else
+	{
+		typeName = m_typeName;
+		rtTypeClass = m_reader.getTypeClass();
+	}
+
+	if (typeName.lastIndexOf(']') > 0)
+		return bCStyle ? "typelib_TypeClass_SEQUENCE" : "::com::sun::star::uno::TypeClass_SEQUENCE";
+
+	switch (rtTypeClass)
+	{
+		case RT_TYPE_INTERFACE:
+			return bCStyle ? "typelib_TypeClass_INTERFACE" : "::com::sun::star::uno::TypeClass_INTERFACE";
+			break;
+		case RT_TYPE_MODULE:
+			return bCStyle ? "typelib_TypeClass_MODULE" : "::com::sun::star::uno::TypeClass_MODULE";
+			break;
+		case RT_TYPE_STRUCT:
+			return bCStyle ? "typelib_TypeClass_STRUCT" : "::com::sun::star::uno::TypeClass_STRUCT";
+			break;
+		case RT_TYPE_ENUM:
+			return bCStyle ? "typelib_TypeClass_ENUM" : "::com::sun::star::uno::TypeClass_ENUM";
+			break;
+		case RT_TYPE_EXCEPTION:
+			return bCStyle ? "typelib_TypeClass_EXCEPTION" : "::com::sun::star::uno::TypeClass_EXCEPTION";
+			break;
+		case RT_TYPE_TYPEDEF:
+			{
+				OString realType = checkRealBaseType( typeName );
+				return getTypeClass( realType, bCStyle );
+			}
+//			return bCStyle ? "typelib_TypeClass_TYPEDEF" : "::com::sun::star::uno::TypeClass_TYPEDEF";
+			break;
+		case RT_TYPE_SERVICE:
+			return bCStyle ? "typelib_TypeClass_SERVICE" : "::com::sun::star::uno::TypeClass_SERVICE";
+			break;
+		case RT_TYPE_INVALID:
+			{
+				if (type.equals("long"))
+					return bCStyle ? "typelib_TypeClass_LONG" : "::com::sun::star::uno::TypeClass_LONG";
+				if (type.equals("short"))
+					return bCStyle ? "typelib_TypeClass_SHORT" : "::com::sun::star::uno::TypeClass_SHORT";
+				if (type.equals("hyper"))
+					return bCStyle ? "typelib_TypeClass_HYPER" : "::com::sun::star::uno::TypeClass_HYPER";
+				if (type.equals("string"))
+					return bCStyle ? "typelib_TypeClass_STRING" : "::com::sun::star::uno::TypeClass_STRING";
+				if (type.equals("boolean"))
+					return bCStyle ? "typelib_TypeClass_BOOLEAN" : "::com::sun::star::uno::TypeClass_BOOLEAN";
+				if (type.equals("char"))
+					return bCStyle ? "typelib_TypeClass_CHAR" : "::com::sun::star::uno::TypeClass_CHAR";
+				if (type.equals("byte"))
+					return bCStyle ? "typelib_TypeClass_BYTE" : "::com::sun::star::uno::TypeClass_BYTE";
+				if (type.equals("any"))
+					return bCStyle ? "typelib_TypeClass_ANY" : "::com::sun::star::uno::TypeClass_ANY";
+				if (type.equals("type"))
+					return bCStyle ? "typelib_TypeClass_TYPE" : "::com::sun::star::uno::TypeClass_TYPE";
+				if (type.equals("float"))
+					return bCStyle ? "typelib_TypeClass_FLOAT" : "::com::sun::star::uno::TypeClass_FLOAT";
+				if (type.equals("double"))
+					return bCStyle ? "typelib_TypeClass_DOUBLE" : "::com::sun::star::uno::TypeClass_DOUBLE";
+				if (type.equals("void"))
+					return bCStyle ? "typelib_TypeClass_VOID" : "::com::sun::star::uno::TypeClass_VOID";
+				if (type.equals("unsigned long"))
+					return bCStyle ? "typelib_TypeClass_UNSIGNED_LONG" : "::com::sun::star::uno::TypeClass_UNSIGNED_LONG";
+				if (type.equals("unsigned short"))
+					return bCStyle ? "typelib_TypeClass_UNSIGNED_SHORT" : "::com::sun::star::uno::TypeClass_UNSIGNED_SHORT";
+				if (type.equals("unsigned hyper"))
+					return bCStyle ? "typelib_TypeClass_UNSIGNED_HYPER" : "::com::sun::star::uno::TypeClass_UNSIGNED_HYPER";
+			}
+			break;
+	}
+
+	return bCStyle ? "typelib_TypeClass_UNKNOWN" : "::com::sun::star::uno::TypeClass_UNKNOWN";
+}
+=====================================================================
+Found a 102 line (447 tokens) duplication in the following files: 
+Starting at line 153 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+
+BOOL Impl_OlePres::Read( SvStream & rStm )
+{
+	ULONG nBeginPos = rStm.Tell();
+	INT32 n;
+	rStm >> n;
+	if( n != -1 )
+	{
+		pBmp = new Bitmap;
+		rStm >> *pBmp;
+		if( rStm.GetError() == SVSTREAM_OK )
+		{
+			nFormat = FORMAT_BITMAP;
+			aSize = pBmp->GetPrefSize();
+			MapMode aMMSrc;
+			if( !aSize.Width() || !aSize.Height() )
+			{
+				// letzte Chance
+				aSize = pBmp->GetSizePixel();
+				aMMSrc = MAP_PIXEL;
+			}
+			else
+				aMMSrc = pBmp->GetPrefMapMode();
+			MapMode aMMDst( MAP_100TH_MM );
+			aSize = OutputDevice::LogicToLogic( aSize, aMMSrc, aMMDst );
+			return TRUE;
+		}
+		else
+		{
+			delete pBmp;
+			pBmp = NULL;
+
+			pMtf = new GDIMetaFile();
+			rStm.ResetError();
+			rStm >> *pMtf;
+			if( rStm.GetError() == SVSTREAM_OK )
+			{
+				nFormat = FORMAT_GDIMETAFILE;
+				aSize = pMtf->GetPrefSize();
+				MapMode aMMSrc = pMtf->GetPrefMapMode();
+				MapMode aMMDst( MAP_100TH_MM );
+				aSize = OutputDevice::LogicToLogic( aSize, aMMSrc, aMMDst );
+				return TRUE;
+			}
+			else
+			{
+				delete pMtf;
+				pMtf = NULL;
+			}
+		}
+
+	}
+
+	rStm.ResetError();
+	rStm.Seek( nBeginPos );
+	nFormat = ReadClipboardFormat( rStm );
+	// JobSetup, bzw. TargetDevice ueberlesen
+	// Information aufnehmen, um sie beim Schreiben nicht zu verlieren
+	nJobLen = 0;
+	rStm >> nJobLen;
+	if( nJobLen >= 4 )
+	{
+		nJobLen -= 4;
+		if( nJobLen )
+		{
+			pJob = new BYTE[ nJobLen ];
+			rStm.Read( pJob, nJobLen );
+		}
+	}
+	else
+	{
+		rStm.SetError( SVSTREAM_GENERALERROR );
+		return FALSE;
+	}
+	UINT32 nAsp;
+	rStm >> nAsp;
+	USHORT nSvAsp = USHORT( nAsp );
+	SetAspect( nSvAsp );
+	rStm.SeekRel( 4 ); //L-Index ueberlesen
+	rStm >> nAdvFlags;
+	rStm.SeekRel( 4 ); //Compression
+	UINT32 nWidth  = 0;
+	UINT32 nHeight = 0;
+	UINT32 nSize   = 0;
+	rStm >> nWidth >> nHeight >> nSize;
+	aSize.Width() = nWidth;
+	aSize.Height() = nHeight;
+
+	if( nFormat == FORMAT_GDIMETAFILE )
+	{
+		pMtf = new GDIMetaFile();
+		ReadWindowMetafile( rStm, *pMtf, NULL );
+	}
+	else if( nFormat == FORMAT_BITMAP )
+	{
+		pBmp = new Bitmap();
+		rStm >> *pBmp;
+	}
+	else
+	{
+		BYTE * p = new BYTE[ nSize ];
+		rStm.Read( p, nSize );
+		delete p;
+=====================================================================
+Found a 11 line (447 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 415 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c30 - 2c37
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c38 - 2c3f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c40 - 2c47
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c48 - 2c4f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c50 - 2c57
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c58 - 2c5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c60 - 2c67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c68 - 2c6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c70 - 2c77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c78 - 2c7f
+    {0x6a, 0x2c81}, {0x15, 0x2c80}, {0x6a, 0x2c83}, {0x15, 0x2c82}, {0x6a, 0x2c85}, {0x15, 0x2c84}, {0x6a, 0x2c87}, {0x15, 0x2c86}, // 2c80 - 2c87, Coptic
+=====================================================================
+Found a 109 line (446 tokens) duplication in the following files: 
+Starting at line 901 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 1351 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+
+								EnhancedCustomShapeSegment& rSegInfo = seqSegments2[ i ];
+								sal_uInt16 nSDat = pDefCustomShape->pElements[ i ];
+								switch( nSDat >> 8 )
+								{
+									case 0x00 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::LINETO;
+										rSegInfo.Count   = nSDat & 0xff;
+										if ( !rSegInfo.Count )
+											rSegInfo.Count = 1;
+									}
+									break;
+									case 0x20 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::CURVETO;
+										rSegInfo.Count   = nSDat & 0xff;
+										if ( !rSegInfo.Count )
+											rSegInfo.Count = 1;
+									}
+									break;
+									case 0x40 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::MOVETO;
+										rSegInfo.Count   = nSDat & 0xff;
+										if ( !rSegInfo.Count )
+											rSegInfo.Count = 1;
+									}
+									break;
+									case 0x60 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::CLOSESUBPATH;
+										rSegInfo.Count   = 0;
+									}
+									break;
+									case 0x80 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ENDSUBPATH;
+										rSegInfo.Count   = 0;
+									}
+									break;
+									case 0xa1 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ANGLEELLIPSETO;
+										rSegInfo.Count   = ( nSDat & 0xff ) / 3;
+									}
+									break;
+									case 0xa2 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ANGLEELLIPSE;
+										rSegInfo.Count   = ( nSDat & 0xff ) / 3;
+									}
+									break;
+									case 0xa3 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ARCTO;
+										rSegInfo.Count   = ( nSDat & 0xff ) >> 2;
+									}
+									break;
+									case 0xa4 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ARC;
+										rSegInfo.Count   = ( nSDat & 0xff ) >> 2;
+									}
+									break;
+									case 0xa5 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::CLOCKWISEARCTO;
+										rSegInfo.Count   = ( nSDat & 0xff ) >> 2;
+									}
+									break;
+									case 0xa6 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::CLOCKWISEARC;
+										rSegInfo.Count   = ( nSDat & 0xff ) >> 2;
+									}
+									break;
+									case 0xa7 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ELLIPTICALQUADRANTX;
+										rSegInfo.Count   = nSDat & 0xff;
+									}
+									break;
+									case 0xa8 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::ELLIPTICALQUADRANTY;
+										rSegInfo.Count   = nSDat & 0xff;
+									}
+									break;
+									case 0xaa :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::NOFILL;
+										rSegInfo.Count   = 0;
+									}
+									break;
+									case 0xab :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::NOSTROKE;
+										rSegInfo.Count   = 0;
+									}
+									break;
+									default:
+									case 0xf8 :
+									{
+										rSegInfo.Command = EnhancedCustomShapeSegmentCommand::UNKNOWN;
+										rSegInfo.Count   = nSDat;
+									}
+									break;
+								}
+							}
+=====================================================================
+Found a 72 line (443 tokens) duplication in the following files: 
+Starting at line 5440 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5700 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    Set_UInt32( pData, lcbSttbfAssoc );
+    Set_UInt32( pData, fcClx );
+    Set_UInt32( pData, lcbClx );
+    Set_UInt32( pData, fcPlcfpgdFtn );
+    Set_UInt32( pData, lcbPlcfpgdFtn );
+    Set_UInt32( pData, fcAutosaveSource );
+    Set_UInt32( pData, lcbAutosaveSource );
+    Set_UInt32( pData, fcGrpStAtnOwners );
+    Set_UInt32( pData, lcbGrpStAtnOwners );
+    Set_UInt32( pData, fcSttbfAtnbkmk );
+    Set_UInt32( pData, lcbSttbfAtnbkmk );
+
+    // weiteres short nur bei Ver67 ueberspringen
+    if( !bVer8 )
+    {
+        pData += 1*sizeof( INT16);
+        Set_UInt16( pData, (UINT16)pnChpFirst );
+        Set_UInt16( pData, (UINT16)pnPapFirst );
+        Set_UInt16( pData, (UINT16)cpnBteChp );
+        Set_UInt16( pData, (UINT16)cpnBtePap );
+    }
+
+    Set_UInt32( pData, fcPlcfdoaMom ); // nur bei Ver67, in Ver8 unused
+    Set_UInt32( pData, lcbPlcfdoaMom ); // nur bei Ver67, in Ver8 unused
+    Set_UInt32( pData, fcPlcfdoaHdr ); // nur bei Ver67, in Ver8 unused
+    Set_UInt32( pData, lcbPlcfdoaHdr ); // nur bei Ver67, in Ver8 unused
+
+    Set_UInt32( pData, fcPlcfspaMom ); // in Ver67 leere Reserve
+    Set_UInt32( pData, lcbPlcfspaMom ); // in Ver67 leere Reserve
+    Set_UInt32( pData, fcPlcfspaHdr ); // in Ver67 leere Reserve
+    Set_UInt32( pData, lcbPlcfspaHdr ); // in Ver67 leere Reserve
+
+    Set_UInt32( pData, fcPlcfAtnbkf );
+    Set_UInt32( pData, lcbPlcfAtnbkf );
+    Set_UInt32( pData, fcPlcfAtnbkl );
+    Set_UInt32( pData, lcbPlcfAtnbkl );
+    Set_UInt32( pData, fcPms );
+    Set_UInt32( pData, lcbPMS );
+    Set_UInt32( pData, fcFormFldSttbf );
+    Set_UInt32( pData, lcbFormFldSttbf );
+    Set_UInt32( pData, fcPlcfendRef );
+    Set_UInt32( pData, lcbPlcfendRef );
+    Set_UInt32( pData, fcPlcfendTxt );
+    Set_UInt32( pData, lcbPlcfendTxt );
+    Set_UInt32( pData, fcPlcffldEdn );
+    Set_UInt32( pData, lcbPlcffldEdn );
+    Set_UInt32( pData, fcPlcfpgdEdn );
+    Set_UInt32( pData, lcbPlcfpgdEdn );
+    Set_UInt32( pData, fcDggInfo ); // in Ver67 leere Reserve
+    Set_UInt32( pData, lcbDggInfo ); // in Ver67 leere Reserve
+    Set_UInt32( pData, fcSttbfRMark );
+    Set_UInt32( pData, lcbSttbfRMark );
+    Set_UInt32( pData, fcSttbfCaption );
+    Set_UInt32( pData, lcbSttbfCaption );
+    Set_UInt32( pData, fcSttbAutoCaption );
+    Set_UInt32( pData, lcbSttbAutoCaption );
+    Set_UInt32( pData, fcPlcfwkb );
+    Set_UInt32( pData, lcbPlcfwkb );
+    Set_UInt32( pData, fcPlcfspl ); // in Ver67 leere Reserve
+    Set_UInt32( pData, lcbPlcfspl ); // in Ver67 leere Reserve
+    Set_UInt32( pData, fcPlcftxbxTxt );
+    Set_UInt32( pData, lcbPlcftxbxTxt );
+    Set_UInt32( pData, fcPlcffldTxbx );
+    Set_UInt32( pData, lcbPlcffldTxbx );
+    Set_UInt32( pData, fcPlcfHdrtxbxTxt );
+    Set_UInt32( pData, lcbPlcfHdrtxbxTxt );
+    Set_UInt32( pData, fcPlcffldHdrTxbx );
+    Set_UInt32( pData, lcbPlcffldHdrTxbx );
+
+    if( bVer8 )
+    {
+        pData += 0x2da - 0x27a;         // Pos + Offset (fcPlcfLst - fcStwUser)
+=====================================================================
+Found a 117 line (443 tokens) duplication in the following files: 
+Starting at line 950 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        if (IsSevenMinus(GetFIBVersion()))
+        {
+            aShortSprm[0] = (BYTE)( ( nPrm & 0xfe) >> 1 );
+            aShortSprm[1] = (BYTE)(   nPrm         >> 8 );
+            p->nSprmsLen = ( nPrm ) ? 2 : 0;        // Laenge
+
+            // store Postion of internal mini storage in Data Pointer
+            p->pMemPos = aShortSprm;
+        }
+        else
+        {
+            p->pMemPos = 0;
+            p->nSprmsLen = 0;
+            BYTE nSprmListIdx = (BYTE)((nPrm & 0xfe) >> 1);
+            if( nSprmListIdx )
+            {
+                // process Sprm Id Matching as explained in MS Doku
+                //
+                // ''Property Modifier(variant 1) (PRM)''
+                // see file: s62f39.htm
+                //
+                // Since isprm is 7 bits, rgsprmPrm can hold 0x80 entries.
+                static const USHORT aSprmId[0x80] =
+                {
+                    // sprmNoop, sprmNoop, sprmNoop, sprmNoop
+                    0x0000,0x0000,0x0000,0x0000,
+                    // sprmPIncLvl, sprmPJc, sprmPFSideBySide, sprmPFKeep
+                    0x2402,0x2403,0x2404,0x2405,
+                    // sprmPFKeepFollow, sprmPFPageBreakBefore, sprmPBrcl,
+                    // sprmPBrcp
+                    0x2406,0x2407,0x2408,0x2409,
+                    // sprmPIlvl, sprmNoop, sprmPFNoLineNumb, sprmNoop
+                    0x260A,0x0000,0x240C,0x0000,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmNoop
+                    0x0000,0x0000,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmNoop
+                    0x0000,0x0000,0x0000,0x0000,
+                    // sprmPFInTable, sprmPFTtp, sprmNoop, sprmNoop
+                    0x2416,0x2417,0x0000,0x0000,
+                    // sprmNoop, sprmPPc,  sprmNoop, sprmNoop
+                    0x0000,0x261B,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmNoop
+                    0x0000,0x0000,0x0000,0x0000,
+                    // sprmNoop, sprmPWr,  sprmNoop, sprmNoop
+                    0x0000,0x2423,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmNoop
+                    0x0000,0x0000,0x0000,0x0000,
+                    // sprmPFNoAutoHyph, sprmNoop, sprmNoop, sprmNoop
+                    0x242A,0x0000,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmPFLocked, sprmPFWidowControl
+                    0x0000,0x0000,0x2430,0x2431,
+                    // sprmNoop, sprmPFKinsoku, sprmPFWordWrap,
+                    // sprmPFOverflowPunct
+                    0x0000,0x2433,0x2434,0x2435,
+                    // sprmPFTopLinePunct, sprmPFAutoSpaceDE,
+                    // sprmPFAutoSpaceDN, sprmNoop
+                    0x2436,0x2437,0x2438,0x0000,
+                    // sprmNoop, sprmPISnapBaseLine, sprmNoop, sprmNoop
+                    0x0000,0x243B,0x000,0x0000,
+                    // sprmNoop, sprmCFStrikeRM, sprmCFRMark, sprmCFFldVanish
+                    0x0000,0x0800,0x0801,0x0802,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmCFData
+                    0x0000,0x0000,0x0000,0x0806,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmCFOle2
+                    0x0000,0x0000,0x0000,0x080A,
+                    // sprmNoop, sprmCHighlight, sprmCFEmboss, sprmCSfxText
+                    0x0000,0x2A0C,0x0858,0x2859,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmCPlain
+                    0x0000,0x0000,0x0000,0x2A33,
+                    // sprmNoop, sprmCFBold, sprmCFItalic, sprmCFStrike
+                    0x0000,0x0835,0x0836,0x0837,
+                    // sprmCFOutline, sprmCFShadow, sprmCFSmallCaps, sprmCFCaps,
+                    0x0838,0x0839,0x083a,0x083b,
+                    // sprmCFVanish, sprmNoop, sprmCKul, sprmNoop,
+                    0x083C,0x0000,0x2A3E,0x0000,
+                    // sprmNoop, sprmNoop, sprmCIco, sprmNoop,
+                    0x0000,0x0000,0x2A42,0x0000,
+                    // sprmCHpsInc, sprmNoop, sprmCHpsPosAdj, sprmNoop,
+                    0x2A44,0x0000,0x2A46,0x0000,
+                    // sprmCIss, sprmNoop, sprmNoop, sprmNoop,
+                    0x2A48,0x0000,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmNoop,
+                    0x0000,0x0000,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmNoop, sprmCFDStrike,
+                    0x0000,0x0000,0x0000,0x2A53,
+                    // sprmCFImprint, sprmCFSpec, sprmCFObj, sprmPicBrcl,
+                    0x0854,0x0855,0x0856,0x2E00,
+                    // sprmPOutLvl, sprmPFBiDi, sprmNoop, sprmNoop,
+                    0x2640,0x2441,0x0000,0x0000,
+                    // sprmNoop, sprmNoop, sprmPPnbrRMarkNot
+                    0x0000,0x0000,0x0000,0x0000
+                };
+
+                // find real Sprm Id:
+                USHORT nSprmId = aSprmId[ nSprmListIdx ];
+
+                if( nSprmId )
+                {
+                    // move Sprm Id and Sprm Param to internal mini storage:
+                    aShortSprm[0] = (BYTE)( ( nSprmId & 0x00ff)      );
+                    aShortSprm[1] = (BYTE)( ( nSprmId & 0xff00) >> 8 );
+                    aShortSprm[2] = (BYTE)( nPrm >> 8 );
+
+                    // store Sprm Length in member:
+                    p->nSprmsLen = ( nPrm ) ? 3 : 0;
+
+                    // store Postion of internal mini storage in Data Pointer
+                    p->pMemPos = aShortSprm;
+                }
+            }
+        }
+    }
+}
+
+//------------------------------------------------------------------------
+
+WW8PLCFx_PCD::WW8PLCFx_PCD(ww::WordVersion eVersion, WW8PLCFpcd* pPLCFpcd,
+=====================================================================
+Found a 59 line (443 tokens) duplication in the following files: 
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/animations/AnimationSchemesPane.cxx
+Starting at line 616 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/animations/SlideTransitionPane.cxx
+
+    const long nTextIndent = LogicToPixel( ::Point( RSC_SP_CHK_TEXTINDENT, 1 ), MAP_APPFONT ).getX();
+
+	::Point aUpperLeft( nOffsetX, aPaneSize.getHeight() - nOffsetY );
+    long nMaxWidth = aPaneSize.getWidth() - 2 * nOffsetX;
+
+    // auto preview check-box
+    ::Size aCtrlSize = maCB_AUTO_PREVIEW.GetSizePixel();
+    aCtrlSize.setWidth( maCB_AUTO_PREVIEW.CalcMinimumSize( nMaxWidth ).getWidth());
+    aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight());
+    maCB_AUTO_PREVIEW.SetPosSizePixel( aUpperLeft, aCtrlSize );
+
+    // fixed line above check-box
+    aCtrlSize = maFL_EMPTY2.GetSizePixel();
+    aCtrlSize.setWidth( nMaxWidth );
+    aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight());
+    maFL_EMPTY2.SetPosSizePixel( aUpperLeft, aCtrlSize );
+
+    // buttons "Play" and "Slide Show"
+    long nPlayButtonWidth = maPB_PLAY.CalcMinimumSize().getWidth() + 2 * nOffsetBtnX;
+    long nSlideShowButtonWidth = maPB_SLIDE_SHOW.CalcMinimumSize().getWidth() + 2 * nOffsetBtnX;
+
+    if( (nPlayButtonWidth + nSlideShowButtonWidth + nOffsetX) <= nMaxWidth )
+    {
+        // place buttons side by side
+        aCtrlSize = maPB_PLAY.GetSizePixel();
+        aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight());
+        aCtrlSize.setWidth( nPlayButtonWidth );
+        maPB_PLAY.SetPosSizePixel( aUpperLeft, aCtrlSize );
+
+        aUpperLeft.setX( aUpperLeft.getX() + nPlayButtonWidth + nOffsetX );
+        aCtrlSize.setWidth( nSlideShowButtonWidth );
+        maPB_SLIDE_SHOW.SetPosSizePixel( aUpperLeft, aCtrlSize );
+        aUpperLeft.setX( nOffsetX );
+    }
+    else
+    {
+        // place buttons on top of each other
+        aCtrlSize = maPB_SLIDE_SHOW.GetSizePixel();
+        aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight());
+        aCtrlSize.setWidth( nSlideShowButtonWidth );
+        maPB_SLIDE_SHOW.SetPosSizePixel( aUpperLeft, aCtrlSize );
+
+        aCtrlSize = maPB_PLAY.GetSizePixel();
+        aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight() - nOffsetY );
+        aCtrlSize.setWidth( nPlayButtonWidth );
+        maPB_PLAY.SetPosSizePixel( aUpperLeft, aCtrlSize );
+    }
+
+    // "Apply to All Slides" button
+    aCtrlSize = maPB_APPLY_TO_ALL.GetSizePixel();
+    aCtrlSize.setWidth( maPB_APPLY_TO_ALL.CalcMinimumSize( nMaxWidth ).getWidth() + 2 * nOffsetBtnX );
+    aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight() - nOffsetY );
+    maPB_APPLY_TO_ALL.SetPosSizePixel( aUpperLeft, aCtrlSize );
+
+    // fixed line above "Apply to All Slides" button
+    aCtrlSize = maFL_EMPTY1.GetSizePixel();
+    aCtrlSize.setWidth( nMaxWidth );
+    aUpperLeft.setY( aUpperLeft.getY() - aCtrlSize.getHeight());
+    maFL_EMPTY1.SetPosSizePixel( aUpperLeft, aCtrlSize );
+=====================================================================
+Found a 57 line (443 tokens) duplication in the following files: 
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2696 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0x69, 0xdd },
+{ 0x00, 0x6a, 0x4a },
+{ 0x00, 0x6b, 0x4b },
+{ 0x00, 0x6c, 0x4c },
+{ 0x00, 0x6d, 0x4d },
+{ 0x00, 0x6e, 0x4e },
+{ 0x00, 0x6f, 0x4f },
+{ 0x00, 0x70, 0x50 },
+{ 0x00, 0x71, 0x51 },
+{ 0x00, 0x72, 0x52 },
+{ 0x00, 0x73, 0x53 },
+{ 0x00, 0x74, 0x54 },
+{ 0x00, 0x75, 0x55 },
+{ 0x00, 0x76, 0x56 },
+{ 0x00, 0x77, 0x57 },
+{ 0x00, 0x78, 0x58 },
+{ 0x00, 0x79, 0x59 },
+{ 0x00, 0x7a, 0x5a },
+{ 0x00, 0x7b, 0x7b },
+{ 0x00, 0x7c, 0x7c },
+{ 0x00, 0x7d, 0x7d },
+{ 0x00, 0x7e, 0x7e },
+{ 0x00, 0x7f, 0x7f },
+{ 0x00, 0x80, 0x80 },
+{ 0x00, 0x81, 0x81 },
+{ 0x00, 0x82, 0x82 },
+{ 0x00, 0x83, 0x83 },
+{ 0x00, 0x84, 0x84 },
+{ 0x00, 0x85, 0x85 },
+{ 0x00, 0x86, 0x86 },
+{ 0x00, 0x87, 0x87 },
+{ 0x00, 0x88, 0x88 },
+{ 0x00, 0x89, 0x89 },
+{ 0x00, 0x8a, 0x8a },
+{ 0x00, 0x8b, 0x8b },
+{ 0x00, 0x8c, 0x8c },
+{ 0x00, 0x8d, 0x8d },
+{ 0x00, 0x8e, 0x8e },
+{ 0x00, 0x8f, 0x8f },
+{ 0x00, 0x90, 0x90 },
+{ 0x00, 0x91, 0x91 },
+{ 0x00, 0x92, 0x92 },
+{ 0x00, 0x93, 0x93 },
+{ 0x00, 0x94, 0x94 },
+{ 0x00, 0x95, 0x95 },
+{ 0x00, 0x96, 0x96 },
+{ 0x00, 0x97, 0x97 },
+{ 0x00, 0x98, 0x98 },
+{ 0x00, 0x99, 0x99 },
+{ 0x00, 0x9a, 0x9a },
+{ 0x00, 0x9b, 0x9b },
+{ 0x00, 0x9c, 0x9c },
+{ 0x00, 0x9d, 0x9d },
+{ 0x00, 0x9e, 0x9e },
+{ 0x00, 0x9f, 0x9f },
+{ 0x00, 0xa0, 0xa0 },
+{ 0x00, 0xa1, 0xa1 },
+=====================================================================
+Found a 102 line (443 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/testcomponent.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/testcomponent.cxx
+
+		aDllName += OUString( RTL_CONSTASCII_USTRINGPARAM(".so"));
+#endif
+
+		xReg->registerImplementation(
+			OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ) ,
+			aDllName,
+			xSimpleReg );
+	}
+	catch( Exception & e )
+	{
+		printf( "Couldn't reach dll %s\n" , szBuf );
+		exit(1);
+	}
+
+
+	// Instantiate test service
+	sTestName = "test.";
+	sTestName += argv[1];
+
+	Reference < XInterface > xIntTest =
+		xSMgr->createInstance( OStringToOUString( sTestName , RTL_TEXTENCODING_ASCII_US ) );
+	Reference< XSimpleTest > xTest( xIntTest , UNO_QUERY );
+
+	if( ! xTest.is() ) {
+		printf( "Couldn't instantiate test service \n" );
+		exit( 1 );
+	}
+
+
+	sal_Int32 nHandle = 0;
+	sal_Int32 nNewHandle;
+	sal_Int32 nErrorCount = 0;
+	sal_Int32 nWarningCount = 0;
+
+	// loop until all test are performed
+	while( nHandle != -1 )
+	{
+		// Instantiate serivce
+		Reference< XInterface > x =
+			xSMgr->createInstance( OStringToOUString( argv[1] , RTL_TEXTENCODING_ASCII_US ) );
+		if( ! x.is() )
+		{
+			printf( "Couldn't instantiate service !\n" );
+			exit( 1 );
+		}
+
+		// do the test
+		try
+		{
+			nNewHandle = xTest->test(
+				OStringToOUString( argv[1] , RTL_TEXTENCODING_ASCII_US ) , x , nHandle );
+		}
+		catch( Exception & e ) {
+			OString o  = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
+			printf( "testcomponent : uncaught exception %s\n" , o.getStr() );
+			exit(1);
+		}
+		catch( ... )
+		{
+			printf( "testcomponent : uncaught unknown exception\n"  );
+			exit(1);
+		}
+
+
+		// print errors and warning
+		Sequence<OUString> seqErrors = xTest->getErrors();
+		Sequence<OUString> seqWarnings = xTest->getWarnings();
+		if( seqWarnings.getLength() > nWarningCount )
+		{
+			printf( "Warnings during test %d!\n" , nHandle );
+			for( ; nWarningCount < seqWarnings.getLength() ; nWarningCount ++ )
+			{
+				OString o = OUStringToOString(
+					seqWarnings.getArray()[nWarningCount], RTL_TEXTENCODING_ASCII_US );
+				printf( "Warning\n%s\n---------\n" , o.getStr() );
+			}
+		}
+
+
+		if( seqErrors.getLength() > nErrorCount ) {
+			printf( "Errors during test %d!\n" , nHandle );
+			for( ; nErrorCount < seqErrors.getLength() ; nErrorCount ++ ) {
+				OString o = OUStringToOString(
+					seqErrors.getArray()[nErrorCount], RTL_TEXTENCODING_ASCII_US );
+				printf( "%s\n" , o.getStr() );
+			}
+		}
+
+		nHandle = nNewHandle;
+	}
+
+	if( xTest->testPassed() ) {
+		printf( "Test passed !\n" );
+	}
+	else {
+		printf( "Test failed !\n" );
+	}
+
+	Reference <XComponent >  rComp( xSMgr , UNO_QUERY );
+	rComp->dispose();
+	return 0;
+}
+=====================================================================
+Found a 97 line (442 tokens) duplication in the following files: 
+Starting at line 5039 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par6.cxx
+Starting at line 5195 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par6.cxx
+
+const wwSprmDispatcher *GetWW6SprmDispatcher()
+{
+    static SprmReadInfo aSprms[] =
+    {
+          {0, 0},                                    // "0" Default bzw. Error
+                                                     //wird uebersprungen! ,
+          {2, &SwWW8ImplReader::Read_StyleCode},     //"sprmPIstd",  pap.istd
+                                                     //(style code)
+          {3, 0},                                    //"sprmPIstdPermute", pap.istd
+                                                     //permutation
+          {4, 0},                                    //"sprmPIncLv1",
+                                                     //pap.istddifference
+          {5, &SwWW8ImplReader::Read_Justify},       //"sprmPJc", pap.jc
+                                                     //(justification)
+          {6, 0},                                    //"sprmPFSideBySide",
+                                                     //pap.fSideBySide
+          {7, &SwWW8ImplReader::Read_KeepLines},     //"sprmPFKeep", pap.fKeep
+          {8, &SwWW8ImplReader::Read_KeepParas},     //"sprmPFKeepFollow ",
+                                                     //pap.fKeepFollow
+          {9, &SwWW8ImplReader::Read_BreakBefore},   //"sprmPPageBreakBefore",
+                                                     //pap.fPageBreakBefore
+         {10, 0},                                    //"sprmPBrcl", pap.brcl
+         {11, 0},                                    //"sprmPBrcp ", pap.brcp
+         {12, &SwWW8ImplReader::Read_ANLevelDesc},   //"sprmPAnld", pap.anld (ANLD
+                                                     //structure)
+         {13, &SwWW8ImplReader::Read_ANLevelNo},     //"sprmPNLvlAnm", pap.nLvlAnm
+                                                     //nn
+         {14, &SwWW8ImplReader::Read_NoLineNumb},    //"sprmPFNoLineNumb", ap.fNoLnn
+         {15, &SwWW8ImplReader::Read_Tab},           //"?sprmPChgTabsPapx",
+                                                     //pap.itbdMac, ...
+         {16, &SwWW8ImplReader::Read_LR},            //"sprmPDxaRight", pap.dxaRight
+         {17, &SwWW8ImplReader::Read_LR},            //"sprmPDxaLeft", pap.dxaLeft
+         {18, 0},                                    //"sprmPNest", pap.dxaLeft
+         {19, &SwWW8ImplReader::Read_LR},            //"sprmPDxaLeft1", pap.dxaLeft1
+         {20, &SwWW8ImplReader::Read_LineSpace},     //"sprmPDyaLine", pap.lspd
+                                                     //an LSPD
+         {21, &SwWW8ImplReader::Read_UL},            //"sprmPDyaBefore",
+                                                     //pap.dyaBefore
+         {22, &SwWW8ImplReader::Read_UL},            //"sprmPDyaAfter", pap.dyaAfter
+         {23, 0},                                    //"?sprmPChgTabs", pap.itbdMac,
+                                                     //pap.rgdxaTab, ...
+         {24, 0},                                    //"sprmPFInTable", pap.fInTable
+         {25, &SwWW8ImplReader::Read_TabRowEnd},     //"sprmPTtp", pap.fTtp
+         {26, 0},                                    //"sprmPDxaAbs", pap.dxaAbs
+         {27, 0},                                    //"sprmPDyaAbs", pap.dyaAbs
+         {28, 0},                                    //"sprmPDxaWidth", pap.dxaWidth
+         {29, &SwWW8ImplReader::Read_ApoPPC},        //"sprmPPc", pap.pcHorz,
+                                                     //pap.pcVert
+         {30, 0},                                    //"sprmPBrcTop10", pap.brcTop
+                                                     //BRC10
+         {31, 0},                                    //"sprmPBrcLeft10",
+                                                     //pap.brcLeft BRC10
+         {32, 0},                                    //"sprmPBrcBottom10",
+                                                     //pap.brcBottom BRC10
+         {33, 0},                                    //"sprmPBrcRight10",
+                                                     //pap.brcRight BRC10
+         {34, 0},                                    //"sprmPBrcBetween10",
+                                                     //pap.brcBetween BRC10
+         {35, 0},                                    //"sprmPBrcBar10", pap.brcBar
+                                                     //BRC10
+         {36, 0},                                    //"sprmPFromText10",
+                                                     //pap.dxaFromText dxa
+         {37, 0},                                    //"sprmPWr", pap.wr wr
+         {38, &SwWW8ImplReader::Read_Border},        //"sprmPBrcTop", pap.brcTop BRC
+         {39, &SwWW8ImplReader::Read_Border},        //"sprmPBrcLeft",
+                                                     //pap.brcLeft BRC
+         {40, &SwWW8ImplReader::Read_Border},        //"sprmPBrcBottom",
+                                                     //pap.brcBottom BRC
+         {41, &SwWW8ImplReader::Read_Border},        //"sprmPBrcRight",
+                                                     //pap.brcRight BRC
+         {42, &SwWW8ImplReader::Read_Border},        //"sprmPBrcBetween",
+                                                     //pap.brcBetween BRC
+         {43, 0},                                    //"sprmPBrcBar", pap.brcBar
+                                                     //BRC word
+         {44, &SwWW8ImplReader::Read_Hyphenation},   //"sprmPFNoAutoHyph",
+                                                     //pap.fNoAutoHyph
+         {45, 0},                                    //"sprmPWHeightAbs",
+                                                     //pap.wHeightAbs w
+         {46, 0},                                    //"sprmPDcs", pap.dcs DCS
+         {47, &SwWW8ImplReader::Read_Shade},         //"sprmPShd", pap.shd SHD
+         {48, 0},                                    //"sprmPDyaFromText",
+                                                     //pap.dyaFromText dya
+         {49, 0},                                    //"sprmPDxaFromText",
+                                                     //pap.dxaFromText dxa
+         {50, 0},                                    //"sprmPFLocked", pap.fLocked
+                                                     //0 or 1 byte
+         {51, &SwWW8ImplReader::Read_WidowControl},  //"sprmPFWidowControl",
+                                                     //pap.fWidowControl 0 or 1 byte
+         {52, 0},                                    //"?sprmPRuler 52",
+         {53, 0},                                    //"??53",
+         {54, 0},                                    //"??54",
+         {55, 0},                                    //"??55",
+         {56, 0},                                    //"??56",
+         {57, 0},                                    //"??57",
+         {58, 0},                                    //"??58",
+         {59, 0},                                    //"??59",
+         {60, 0},                                    //"??60",
+=====================================================================
+Found a 117 line (441 tokens) duplication in the following files: 
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 1589 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+long SwScriptInfo::Compress( sal_Int32* pKernArray, xub_StrLen nIdx, xub_StrLen nLen,
+                             const USHORT nCompress, const USHORT nFontHeight,
+                             Point* pPoint ) const
+{
+	ASSERT( nCompress, "Compression without compression?!" );
+	ASSERT( nLen, "Compression without text?!" );
+    USHORT nCompCount = CountCompChg();
+
+    // In asian typography, there are full width and half width characters.
+    // Full width punctuation characters can be compressed by 50 %
+    // to determine this, we compare the font width with 75 % of its height
+    USHORT nMinWidth = ( 3 * nFontHeight ) / 4;
+
+    USHORT nCompIdx = HasKana( nIdx, nLen );
+
+    if ( USHRT_MAX == nCompIdx )
+        return 0;
+
+    xub_StrLen nChg = GetCompStart( nCompIdx );
+    xub_StrLen nCompLen = GetCompLen( nCompIdx );
+    USHORT nI = 0;
+    nLen += nIdx;
+
+    if( nChg > nIdx )
+    {
+        nI = nChg - nIdx;
+        nIdx = nChg;
+    }
+    else if( nIdx < nChg + nCompLen )
+        nCompLen -= nIdx - nChg;
+
+    if( nIdx > nLen || nCompIdx >= nCompCount )
+		return 0;
+
+    long nSub = 0;
+	long nLast = nI ? pKernArray[ nI - 1 ] : 0;
+	do
+	{
+        USHORT nType = GetCompType( nCompIdx );
+#if OSL_DEBUG_LEVEL > 1
+        ASSERT( nType == CompType( nIdx ), "Gimme the right type!" );
+#endif
+		nCompLen += nIdx;
+		if( nCompLen > nLen )
+			nCompLen = nLen;
+
+        // are we allowed to compress the character?
+        if ( pKernArray[ nI ] - nLast < nMinWidth )
+        {
+            nIdx++; nI++;
+        }
+        else
+        {
+            while( nIdx < nCompLen )
+            {
+                ASSERT( SwScriptInfo::NONE != nType, "None compression?!" );
+
+                // nLast is width of current character
+                nLast -= pKernArray[ nI ];
+
+                nLast *= nCompress;
+                long nMove = 0;
+                if( SwScriptInfo::KANA != nType )
+                {
+                    nLast /= 20000;
+                    if( pPoint && SwScriptInfo::SPECIAL_LEFT == nType )
+                    {
+                        if( nI )
+                            nMove = nLast;
+                        else
+                        {
+                            pPoint->X() += nLast;
+                            nLast = 0;
+                        }
+                    }
+                }
+                else
+                    nLast /= 100000;
+                nSub -= nLast;
+                nLast = pKernArray[ nI ];
+                if( nMove )
+                    pKernArray[ nI - 1 ] += nMove;
+                pKernArray[ nI++ ] -= nSub;
+                ++nIdx;
+            }
+        }
+
+        if( nIdx < nLen )
+		{
+			xub_StrLen nChg;
+			if( ++nCompIdx < nCompCount )
+			{
+                nChg = GetCompStart( nCompIdx );
+				if( nChg > nLen )
+					nChg = nLen;
+                nCompLen = GetCompLen( nCompIdx );
+			}
+			else
+				nChg = nLen;
+			while( nIdx < nChg )
+			{
+				nLast = pKernArray[ nI ];
+				pKernArray[ nI++ ] -= nSub;
+				++nIdx;
+			}
+		}
+		else
+			break;
+	} while( nIdx < nLen );
+	return nSub;
+}
+
+/*************************************************************************
+ *                      SwScriptInfo::KashidaJustify()
+ *************************************************************************/
+
+USHORT SwScriptInfo::KashidaJustify( sal_Int32* pKernArray, sal_Int32* pScrArray,
+=====================================================================
+Found a 105 line (440 tokens) duplication in the following files: 
+Starting at line 436 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/tokens.c
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_tokens.c
+
+            if( Aflag )
+            {
+                /* keyword __ToLatin1__ found? -> do conversion! */
+                if( EBCDIC_StartTokenDetected )
+                {
+                    /* previous token was 'extern'? -> don't convert current token! */
+                    if( EBCDIC_ExternTokenDetected )
+                    {
+                        EBCDIC_ExternTokenDetected = 0;
+                        memcpy(wbp, p, len);
+                    }
+                    else
+                    {
+                        /* current token is keyword 'extern'? -> don't convert following token! */
+                        if( (tp->wslen == 0) && (strncmp( (char*)p, "extern", len ) == 0) )
+                        {
+                            EBCDIC_ExternTokenDetected = 1;
+                            memcpy(wbp, p, len);
+                        }
+                        else
+                        {
+                            /* token is string or char? -> process EBCDIC to ANSI conversion */
+                            if ((tp->type == STRING) || (tp->type == CCON))
+                                len = memcpy_EBCDIC(wbp,  p, len);
+                            else
+                                memcpy(wbp, p, len);
+                        }
+                    }
+                }
+                else
+                    /* keyword __ToLatin1__ found? -> don't copy keyword and start conversion */
+                    if( (tp->type == NAME) && (strncmp( (char*)p, "__ToLatin1__", len) == 0) )
+                    {
+                        EBCDIC_StartTokenDetected = 1;
+                        len = 0;
+                    }
+                    else
+                        memcpy(wbp, p, len);
+            }
+            else
+                memcpy(wbp, p, len);
+
+            wbp += len;
+        }
+        else
+            *wbp++ = '\n';
+
+        if (wbp >= &wbuf[OBS])
+        {
+            write(1, wbuf, OBS);
+            if (wbp > &wbuf[OBS])
+                memcpy(wbuf, wbuf + OBS, wbp - &wbuf[OBS]);
+            wbp -= OBS;
+        }
+    }
+    trp->tp = tp;
+    if (cursource->fd == 0)
+        flushout();
+}
+
+void
+    flushout(void)
+{
+    if (wbp > wbuf)
+    {
+        write(1, wbuf, wbp - wbuf);
+        wbp = wbuf;
+    }
+}
+
+/*
+ * turn a row into just a newline
+ */
+void
+    setempty(Tokenrow * trp)
+{
+    trp->tp = trp->bp;
+    trp->lp = trp->bp + 1;
+    *trp->bp = nltoken;
+}
+
+/*
+ * generate a number
+ */
+char *
+    outnum(char *p, int n)
+{
+    if (n >= 10)
+        p = outnum(p, n / 10);
+    *p++ = (char) (n % 10 + '0');
+    return p;
+}
+
+/*
+ * allocate and initialize a new string from s, of length l, at offset o
+ * Null terminated.
+ */
+uchar *
+    newstring(uchar * s, int l, int o)
+{
+    uchar *ns = (uchar *) domalloc(l + o + 1);
+
+    ns[l + o] = '\0';
+    return (uchar *) strncpy((char *) ns + o, (char *) s, l) - o;
+}
+=====================================================================
+Found a 60 line (440 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/tempnam.c
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/zortech/tempnam.c
+
+const char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 21 line (438 tokens) duplication in the following files: 
+Starting at line 3081 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 3387 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u gse8x16_bold[] = 
+    {
+        16, 0, 32, 128-32,
+
+        0x00,0x00,0x11,0x00,0x22,0x00,0x33,0x00,0x44,0x00,0x55,0x00,0x66,0x00,0x77,0x00,0x88,0x00,
+        0x99,0x00,0xaa,0x00,0xbb,0x00,0xcc,0x00,0xdd,0x00,0xee,0x00,0xff,0x00,0x10,0x01,0x21,0x01,
+        0x32,0x01,0x43,0x01,0x54,0x01,0x65,0x01,0x76,0x01,0x87,0x01,0x98,0x01,0xa9,0x01,0xba,0x01,
+        0xcb,0x01,0xdc,0x01,0xed,0x01,0xfe,0x01,0x0f,0x02,0x20,0x02,0x31,0x02,0x42,0x02,0x53,0x02,
+        0x64,0x02,0x75,0x02,0x86,0x02,0x97,0x02,0xa8,0x02,0xb9,0x02,0xca,0x02,0xdb,0x02,0xec,0x02,
+        0xfd,0x02,0x0e,0x03,0x1f,0x03,0x30,0x03,0x41,0x03,0x52,0x03,0x63,0x03,0x74,0x03,0x85,0x03,
+        0x96,0x03,0xa7,0x03,0xb8,0x03,0xc9,0x03,0xda,0x03,0xeb,0x03,0xfc,0x03,0x0d,0x04,0x1e,0x04,
+        0x2f,0x04,0x40,0x04,0x51,0x04,0x62,0x04,0x73,0x04,0x84,0x04,0x95,0x04,0xa6,0x04,0xb7,0x04,
+        0xc8,0x04,0xd9,0x04,0xea,0x04,0xfb,0x04,0x0c,0x05,0x1d,0x05,0x2e,0x05,0x3f,0x05,0x50,0x05,
+        0x61,0x05,0x72,0x05,0x83,0x05,0x94,0x05,0xa5,0x05,0xb6,0x05,0xc7,0x05,0xd8,0x05,0xe9,0x05,
+        0xfa,0x05,0x0b,0x06,0x1c,0x06,0x2d,0x06,0x3e,0x06,0x4f,0x06,
+
+        8, // 0x20 ' '
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        8, // 0x21 '!'
+        0x00,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 21 line (436 tokens) duplication in the following files: 
+Starting at line 2469 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 2775 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u gse7x15_bold[] = 
+    {
+        15, 0, 32, 128-32,
+
+        0x00,0x00,0x10,0x00,0x20,0x00,0x30,0x00,0x40,0x00,0x50,0x00,0x60,0x00,0x70,0x00,0x80,0x00,
+        0x90,0x00,0xa0,0x00,0xb0,0x00,0xc0,0x00,0xd0,0x00,0xe0,0x00,0xf0,0x00,0x00,0x01,0x10,0x01,
+        0x20,0x01,0x30,0x01,0x40,0x01,0x50,0x01,0x60,0x01,0x70,0x01,0x80,0x01,0x90,0x01,0xa0,0x01,
+        0xb0,0x01,0xc0,0x01,0xd0,0x01,0xe0,0x01,0xf0,0x01,0x00,0x02,0x10,0x02,0x20,0x02,0x30,0x02,
+        0x40,0x02,0x50,0x02,0x60,0x02,0x70,0x02,0x80,0x02,0x90,0x02,0xa0,0x02,0xb0,0x02,0xc0,0x02,
+        0xd0,0x02,0xe0,0x02,0xf0,0x02,0x00,0x03,0x10,0x03,0x20,0x03,0x30,0x03,0x40,0x03,0x50,0x03,
+        0x60,0x03,0x70,0x03,0x80,0x03,0x90,0x03,0xa0,0x03,0xb0,0x03,0xc0,0x03,0xd0,0x03,0xe0,0x03,
+        0xf0,0x03,0x00,0x04,0x10,0x04,0x20,0x04,0x30,0x04,0x40,0x04,0x50,0x04,0x60,0x04,0x70,0x04,
+        0x80,0x04,0x90,0x04,0xa0,0x04,0xb0,0x04,0xc0,0x04,0xd0,0x04,0xe0,0x04,0xf0,0x04,0x00,0x05,
+        0x10,0x05,0x20,0x05,0x30,0x05,0x40,0x05,0x50,0x05,0x60,0x05,0x70,0x05,0x80,0x05,0x90,0x05,
+        0xa0,0x05,0xb0,0x05,0xc0,0x05,0xd0,0x05,0xe0,0x05,0xf0,0x05,
+
+        7, // 0x20 ' '
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x21 '!'
+        0x00,0x00,0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,
+=====================================================================
+Found a 69 line (436 tokens) duplication in the following files: 
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+				COUT << "SetMode, insert a Number" << endl;
+				cin.getline(buf,sizeof buf);
+				bInserted = true;
+			}
+
+			else if ((buf[0] == 'p' || buf[0] == 'P') && (0 == buf[1]))
+			{
+				Reference< XChild > xChild(xIface, UNO_QUERY);
+				if (xChild.is())
+					xNext = xChild->getParent();
+				bHandled = true;
+			}
+
+			if (bHandled == false)
+			{
+				Reference< XNameAccess > xAccess(xIface, UNO_QUERY);
+				Reference< XHierarchicalNameAccess > xDeepAccess(xIface, UNO_QUERY);
+				Reference< XExactName > xExactName(xIface, UNO_QUERY);
+
+				if (xAccess.is() || xDeepAccess.is())
+				{
+					OUString aName;
+					OUString aInput = OUString::createFromAscii(buf);
+
+					if (xExactName.is())
+					{
+						::rtl::OUString sTemp = xExactName->getExactName(aInput);
+						if (sTemp.getLength())
+							aInput = sTemp;
+					}
+
+					if (xAccess.is() && xAccess->hasByName(aInput))
+					{
+						aName = aInput;
+					}
+					else if (xDeepAccess.is() && xDeepAccess->hasByHierarchicalName(aInput))
+					{
+						aName = aInput;
+					}
+					else if ('0' <= buf[0] && buf[0] <= '9' && xAccess.is())
+					{
+						unsigned int n = unsigned(atoi(buf));
+						Sequence<OUString> aNames = xAccess->getElementNames();
+						if (n < aNames.getLength())
+							aName = aNames[n];
+					}
+
+					if (aName.getLength())
+					{ 
+						bool bNest = aInput.indexOf(sal_Unicode('/')) >= 0;
+
+						Any aElement = bNest	? ( xDeepAccess.is() ? xDeepAccess->getByHierarchicalName(aName) : Any()) 
+												: ( xAccess.    is() ? xAccess->    getByName(aName)             : Any() );
+
+						while (aElement.getValueTypeClass() == TypeClass_ANY)
+						{
+							Any aWrap(aElement);
+							aWrap >>= aElement;
+						}
+						sal_Bool bValue = true;
+						sal_Bool bValueOk = false;
+
+						switch (aElement.getValueTypeClass() )
+						{
+						case TypeClass_INTERFACE: bValue = false; break;
+						case TypeClass_BOOLEAN:
+							{
+								sal_Bool* pVal = (sal_Bool*)aElement.getValue();
+								bValueOk = (pVal != 0);
+=====================================================================
+Found a 94 line (433 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpptest/cpptest.cpp
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpptest/cpptest.cxx
+
+CComModule _Module;
+#include<atlcom.h>
+#include<atlimpl.cpp>
+
+//CComModule _Module;
+BEGIN_OBJECT_MAP(ObjectMap)
+END_OBJECT_MAP()
+
+
+HRESULT doTest();
+
+int main(int argc, char* argv[])
+{
+	HRESULT hr;
+	if( FAILED( hr=CoInitialize(NULL)))
+	{
+		_tprintf(_T("CoInitialize failed \n"));
+		return -1;
+	}
+
+	
+	_Module.Init( ObjectMap, GetModuleHandle( NULL));
+
+	if( FAILED(hr=doTest()))
+	{
+		_com_error err( hr);
+		const TCHAR * errMsg= err.ErrorMessage();
+		MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+	}
+
+
+	_Module.Term();
+	CoUninitialize();
+	return 0;
+}
+
+HRESULT doTest()
+{
+	HRESULT hr;
+	CComPtr<IUnknown> spUnkMgr;
+
+
+	if( FAILED(hr= spUnkMgr.CoCreateInstance(L"com.sun.star.ServiceManager")))
+		return hr;
+
+	IDispatchPtr starManager;
+    //    var starManager=new ActiveXObject("com.sun.star.ServiceManager");
+	hr= starManager.CreateInstance(_T("com.sun.star.ServiceManager"));
+    //    var starDesktop=starManager.createInstance("com.sun.star.frame.Desktop");
+	_variant_t varP1(L"com.sun.star.frame.Desktop");
+	_variant_t varRet;
+	CComDispatchDriver dispMgr(starManager);
+	hr=	dispMgr.Invoke1(L"createInstance", &varP1, &varRet);
+	CComDispatchDriver dispDesk(varRet.pdispVal);
+	varP1.Clear();
+	varRet.Clear();
+	//    var bOK=new Boolean(true);
+
+    //    var noArgs=new Array();
+    //    var oDoc=starDesktop.loadComponentFromURL("private:factory/swriter", "Test", 40, noArgs);
+	IDispatchPtr oDoc;
+	SAFEARRAY* ar= SafeArrayCreateVector(VT_DISPATCH, 0, 0);
+	_variant_t args[4];
+	args[3]= _variant_t(L"private:factory/swriter");
+	args[2]= _variant_t(L"Test");
+	args[1]= _variant_t((long) 40);
+	args[0].vt= VT_ARRAY | VT_DISPATCH;;
+	args[0].parray= ar;
+	hr= dispDesk.InvokeN(L"loadComponentFromURL", args, 4, &varRet);
+	CComDispatchDriver dispDoc(varRet.pdispVal);
+	varRet.Clear();
+
+    //var oFieldMaster = oDoc.createInstance("com.sun.star.text.FieldMaster.Database");
+	varP1= _variant_t(L"com.sun.star.text.FieldMaster.Database");
+	hr= dispDoc.Invoke1(L"createInstance", &varP1, &varRet);
+	CComDispatchDriver dispFieldMaster(varRet.pdispVal);
+	varP1.Clear();
+	varRet.Clear();
+
+    //var oObj = oDoc.createInstance("com.sun.star.text.TextField.Database");
+	varP1= _variant_t(L"com.sun.star.text.TextField.Database");
+	hr= dispDoc.Invoke1(L"createInstance", &varP1, &varRet);
+	CComDispatchDriver dispField(varRet.pdispVal);
+	varP1.Clear();
+	varRet.Clear();
+
+    //oObj.attachTextFieldMaster(oFieldMaster);
+	varP1= _variant_t(dispFieldMaster);
+	hr= dispField.Invoke1(L"attachTextFieldMaster", &varP1);
+
+
+	return S_OK;
+	
+}
+=====================================================================
+Found a 86 line (432 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/spelldta.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldta.cxx
+
+}
+
+
+void SeqRemoveNegEntries( Sequence< OUString > &rSeq, 
+        Reference< XDictionaryList > &rxDicList, 
+        INT16 nLanguage )
+{
+    static const OUString aEmpty;
+    BOOL bSthRemoved = FALSE;
+    INT32 nLen = rSeq.getLength();
+    OUString *pEntries = rSeq.getArray();
+    for (INT32 i = 0;  i < nLen;  ++i)
+    {
+        Reference< XDictionaryEntry > xNegEntry( SearchDicList( rxDicList, 
+                    pEntries[i], nLanguage, FALSE, TRUE ) );
+        if (xNegEntry.is())
+        {
+            pEntries[i] = aEmpty;
+            bSthRemoved = TRUE;
+        }
+    }
+    if (bSthRemoved)
+    {
+        Sequence< OUString > aNew;
+        // merge sequence without duplicates and empty strings in new empty sequence
+        aNew = MergeProposalSeqs( aNew, rSeq, FALSE );
+        rSeq = aNew;
+    }
+}
+
+
+Sequence< OUString > MergeProposalSeqs(
+            Sequence< OUString > &rAlt1,
+            Sequence< OUString > &rAlt2,
+            BOOL bAllowDuplicates )
+{
+    Sequence< OUString > aMerged;
+
+    if (0 == rAlt1.getLength() && bAllowDuplicates)
+        aMerged = rAlt2;
+    else if (0 == rAlt2.getLength() && bAllowDuplicates)
+        aMerged = rAlt1;
+    else
+    {
+        INT32 nAltCount1 = rAlt1.getLength();
+        const OUString *pAlt1 = rAlt1.getConstArray();
+        INT32 nAltCount2 = rAlt2.getLength();
+        const OUString *pAlt2 = rAlt2.getConstArray();
+
+        INT32 nCountNew = Min( nAltCount1 + nAltCount2, (INT32) MAX_PROPOSALS );
+        aMerged.realloc( nCountNew );
+        OUString *pMerged = aMerged.getArray();
+
+        INT32 nIndex = 0;
+        INT32 i = 0;
+        for (int j = 0;  j < 2;  j++)
+        {
+            INT32           nCount  = j == 0 ? nAltCount1 : nAltCount2;
+            const OUString  *pAlt   = j == 0 ? pAlt1 : pAlt2;
+            for (i = 0;  i < nCount  &&  nIndex < MAX_PROPOSALS;  i++)
+            {
+                if (pAlt[i].getLength() && 
+                    (bAllowDuplicates || !SeqHasEntry(aMerged, pAlt[i] )))
+                    pMerged[ nIndex++ ] = pAlt[ i ];
+            }
+        }
+        //DBG_ASSERT(nIndex == nCountNew, "wrong number of proposals");
+        aMerged.realloc( nIndex );
+    }
+
+    return aMerged;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+
+SpellAlternatives::SpellAlternatives()
+{
+	nLanguage	= LANGUAGE_NONE;
+	nType 		= SpellFailure::IS_NEGATIVE_WORD;
+}
+
+
+SpellAlternatives::SpellAlternatives( 
+			const OUString &rWord, INT16 nLang,
+			INT16 nFailureType, const OUString &rRplcWord ) :
+=====================================================================
+Found a 15 line (431 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 794 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fb0 - 9fbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fc0 - 9fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fd0 - 9fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fe0 - 9fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9ff0 - 9fff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a400 - a40f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a410 - a41f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a420 - a42f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a430 - a43f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a440 - a44f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a450 - a45f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a460 - a46f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// a470 - a47f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,// a480 - a48f
+=====================================================================
+Found a 99 line (431 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+						sal_Unicode c = aValue.GetChar(static_cast<sal_uInt16>(j));
+						// nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen?
+						if (c == cThousandDelimiter && j)
+							continue;
+						else
+						{
+							bNumeric = FALSE;
+							break;
+						}
+					}
+				}
+
+                // jetzt koennte es noch ein Datumsfeld sein
+				if (!bNumeric)
+				{
+					try
+					{
+						nIndex = m_xNumberFormatter->detectNumberFormat(::com::sun::star::util::NumberFormat::ALL,aField2);
+					}
+					catch(Exception&)
+					{
+					}
+				}
+			}
+		}
+
+		sal_Int32 nFlags = 0;
+		if (bNumeric)
+		{
+			if (cDecimalDelimiter)
+			{
+				if(nPrecision)
+				{
+					eType = DataType::DECIMAL;
+					aTypeName = ::rtl::OUString::createFromAscii("DECIMAL");
+				}
+				else
+				{
+					eType = DataType::DOUBLE;
+					aTypeName = ::rtl::OUString::createFromAscii("DOUBLE");
+				}
+			}
+			else
+				eType = DataType::INTEGER;
+			nFlags = ColumnSearch::BASIC;
+		}
+		else
+		{
+
+			switch (comphelper::getNumberFormatType(m_xNumberFormatter,nIndex))
+			{
+				case NUMBERFORMAT_DATE:
+					eType = DataType::DATE;
+					aTypeName = ::rtl::OUString::createFromAscii("DATE");
+					break;
+				case NUMBERFORMAT_DATETIME:
+					eType = DataType::TIMESTAMP;
+					aTypeName = ::rtl::OUString::createFromAscii("TIMESTAMP");
+					break;
+				case NUMBERFORMAT_TIME:
+					eType = DataType::TIME;
+					aTypeName = ::rtl::OUString::createFromAscii("TIME");
+					break;
+				default:
+					eType = DataType::VARCHAR;
+					nPrecision = 0;	// nyi: Daten koennen aber laenger sein!
+					nScale = 0;
+					aTypeName = ::rtl::OUString::createFromAscii("VARCHAR");
+			};
+			nFlags |= ColumnSearch::CHAR;
+		}
+
+		// check if the columname already exists
+		String aAlias(aColumnName);
+		OSQLColumns::const_iterator aFind = connectivity::find(m_aColumns->begin(),m_aColumns->end(),aAlias,aCase);
+		sal_Int32 nExprCnt = 0;
+		while(aFind != m_aColumns->end())
+		{
+			(aAlias = aColumnName) += String::CreateFromInt32(++nExprCnt);
+			aFind = connectivity::find(m_aColumns->begin(),m_aColumns->end(),aAlias,aCase);
+		}
+
+		sdbcx::OColumn* pColumn = new sdbcx::OColumn(aAlias,aTypeName,::rtl::OUString(),
+												ColumnValue::NULLABLE,
+												nPrecision,
+												nScale,
+												eType,
+												sal_False,
+												sal_False,
+												sal_False,
+												bCase);
+		Reference< XPropertySet> xCol = pColumn;
+		m_aColumns->push_back(xCol);
+		m_aTypes.push_back(eType);
+		m_aPrecisions.push_back(nPrecision);
+		m_aScales.push_back(nScale);
+	}
+	m_pFileStream->Seek(STREAM_SEEK_TO_BEGIN);
+}
+=====================================================================
+Found a 81 line (430 tokens) duplication in the following files: 
+Starting at line 4189 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4397 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    pSubdocs = pBase->pSubdocs;
+
+    switch( nType )                 // Feld-Initialisierung
+    {
+        case MAN_HDFT:
+            pFld->pPLCFx = pBase->pFldHdFtPLCF;
+            nCpO = pWwFib->ccpText + pWwFib->ccpFtn;
+            pFdoa = pBase->pHdFtFdoa;
+            pTxbx = pBase->pHdFtTxbx;
+            pTxbxBkd = pBase->pHdFtTxbxBkd;
+            break;
+        case MAN_FTN:
+            pFld->pPLCFx = pBase->pFldFtnPLCF;
+            nCpO = pWwFib->ccpText;
+            pFdoa = pTxbx = pTxbxBkd = 0;
+            break;
+        case MAN_EDN:
+            pFld->pPLCFx = pBase->pFldEdnPLCF;
+            nCpO = pWwFib->ccpText + pWwFib->ccpFtn + pWwFib->ccpHdr +
+                pWwFib->ccpAtn;
+            pFdoa = pTxbx = pTxbxBkd = 0;
+            break;
+        case MAN_AND:
+            pFld->pPLCFx = pBase->pFldAndPLCF;
+            nCpO = pWwFib->ccpText + pWwFib->ccpFtn + pWwFib->ccpHdr;
+            pFdoa = pTxbx = pTxbxBkd = 0;
+            break;
+        case MAN_TXBX:
+            pFld->pPLCFx = pBase->pFldTxbxPLCF;
+            nCpO = pWwFib->ccpText + pWwFib->ccpFtn + pWwFib->ccpHdr +
+                pWwFib->ccpMcr + pWwFib->ccpAtn + pWwFib->ccpEdn;
+            pTxbx = pBase->pMainTxbx;
+            pTxbxBkd = pBase->pMainTxbxBkd;
+            pFdoa = 0;
+            break;
+        case MAN_TXBX_HDFT:
+            pFld->pPLCFx = pBase->pFldTxbxHdFtPLCF;
+            nCpO = pWwFib->ccpText + pWwFib->ccpFtn + pWwFib->ccpHdr +
+                pWwFib->ccpMcr + pWwFib->ccpAtn + pWwFib->ccpEdn +
+                pWwFib->ccpTxbx;
+            pTxbx = pBase->pHdFtTxbx;
+            pTxbxBkd = pBase->pHdFtTxbxBkd;
+            pFdoa = 0;
+            break;
+        default:
+            pFld->pPLCFx = pBase->pFldPLCF;
+            nCpO = 0;
+            pFdoa = pBase->pMainFdoa;
+            pTxbx = pBase->pMainTxbx;
+            pTxbxBkd = pBase->pMainTxbxBkd;
+            break;
+    }
+
+    if( nStartCp || nCpO )
+        SeekPos( nStartCp );    // PLCFe auf Text-StartPos einstellen
+
+    // initialisieren der Member-Vars Low-Level
+    GetChpPLCF()->ResetAttrStartEnd();
+    GetPapPLCF()->ResetAttrStartEnd();
+    for( i=0; i < nPLCF; i++)
+    {
+        register WW8PLCFxDesc* p = &aD[i];
+
+        /*
+        ##516##,##517##
+        For subdocuments we modify the cp of properties to be relative to
+        the beginning of subdocuments, we should also do the same for
+        piecetable changes, and piecetable properties, otherwise a piece
+        change that happens in a subdocument is lost.
+        */
+        p->nCpOfs = ( p == pChp || p == pPap || p == pBkm || p == pPcd ||
+            p == pPcdA ) ? nCpO : 0;
+
+        p->nCp2OrIdx = 0;
+        p->bFirstSprm = false;
+        p->pIdStk = 0;
+
+        if ((p == pChp) || (p == pPap))
+            p->nStartPos = p->nEndPos = nStartCp;
+        else
+            p->nStartPos = p->nEndPos = WW8_CP_MAX;
+=====================================================================
+Found a 17 line (429 tokens) duplication in the following files: 
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_hi.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/inputchecker/inputsequencechecker_hi.cxx
+
+static const sal_uInt16 dev_cell_check[14][14] = {
+  /*        ND, UP, NP, IV, CN, CK, RC, NM, RM, IM, HL, NK, VD, HD, */
+  /* 0  */ { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* ND */
+  /* 1  */ { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* UP */
+  /* 2  */ { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* NP */
+  /* 3  */ { 0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* IV */
+  /* 4  */ { 0,  1,  1,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  0 }, /* CN */
+  /* 5  */ { 0,  1,  1,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,  0 }, /* CK */
+  /* 6  */ { 0,  1,  1,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  0 }, /* RC */
+  /* 7  */ { 0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* NM */
+  /* 8  */ { 0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* RM */
+  /* 9  */ { 0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* IM */
+  /* 10 */ { 0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0 }, /* HL */
+  /* 11 */ { 0,  1,  1,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  0 }, /* NK */
+  /* 12 */ { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }, /* VD */
+  /* 13 */ { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }  /* HD */
+};
+=====================================================================
+Found a 72 line (428 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+}
+
+inline int PtTo10Mu( int nPoints ) { return (int)((((double)nPoints)*35.27777778)+0.5); }
+
+inline int TenMuToPt( int nUnits ) { return (int)((((double)nUnits)/35.27777778)+0.5); }
+
+static struct
+{
+	int			width;
+	int			height;
+	const char*	name;
+	int			namelength;
+	Paper		paper;
+} aPaperTab[] =
+{
+	{ 29700, 42000,	"A3",			2,	PAPER_A3		},
+	{ 21000, 29700,	"A4",			2,	PAPER_A4		},
+	{ 14800, 21000,	"A5",			2,	PAPER_A5		},
+	{ 25000, 35300,	"B4",			2,	PAPER_B4		},
+	{ 17600, 25000,	"B5",			2,	PAPER_B5		},
+	{ 21600, 27900,	"Letter",		6,	PAPER_LETTER	},
+	{ 21600, 35600,	"Legal",		5,	PAPER_LEGAL		},
+	{ 27900, 43100,	"Tabloid",		7,	PAPER_TABLOID	},
+	{ 0, 0,	  		"USER",			4,	PAPER_USER		}
+};
+
+static Paper getPaperType( const String& rPaperName )
+{
+	ByteString aPaper( rPaperName, RTL_TEXTENCODING_ISO_8859_1 );
+	for( unsigned int i = 0; i < sizeof( aPaperTab )/sizeof( aPaperTab[0] ); i++ )
+	{
+		if( ! strcmp( aPaper.GetBuffer(), aPaperTab[i].name ) )
+			return aPaperTab[i].paper;
+	}
+	return PAPER_USER;
+}
+
+static void copyJobDataToJobSetup( ImplJobSetup* pJobSetup, JobData& rData )
+{
+	pJobSetup->meOrientation	= (Orientation)(rData.m_eOrientation == orientation::Landscape ? ORIENTATION_LANDSCAPE : ORIENTATION_PORTRAIT);
+
+	// copy page size
+	String aPaper;
+	int width, height;
+
+	rData.m_aContext.getPageSize( aPaper, width, height );
+	pJobSetup->mePaperFormat	= getPaperType( aPaper );
+	pJobSetup->mnPaperWidth		= 0;
+	pJobSetup->mnPaperHeight	= 0;
+	if( pJobSetup->mePaperFormat == PAPER_USER )
+	{
+		// transform to 100dth mm
+		width				= PtTo10Mu( width );
+		height				= PtTo10Mu( height );
+
+        if( rData.m_eOrientation == psp::orientation::Portrait )
+        {
+            pJobSetup->mnPaperWidth	= width;
+            pJobSetup->mnPaperHeight= height;
+        }
+        else
+        {
+            pJobSetup->mnPaperWidth	= height;
+            pJobSetup->mnPaperHeight= width;
+        }
+	}
+
+	// copy input slot
+	const PPDKey* pKey = NULL;
+	const PPDValue* pValue = NULL;
+
+    pJobSetup->mnPaperBin = 0;
+=====================================================================
+Found a 21 line (426 tokens) duplication in the following files: 
+Starting at line 1857 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 2163 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u gse7x11_bold[] = 
+    {
+        11, 0, 32, 128-32,
+
+        0x00,0x00,0x0c,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+        0x6c,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9c,0x00,0xa8,0x00,0xb4,0x00,0xc0,0x00,0xcc,0x00,
+        0xd8,0x00,0xe4,0x00,0xf0,0x00,0xfc,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2c,0x01,0x38,0x01,
+        0x44,0x01,0x50,0x01,0x5c,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8c,0x01,0x98,0x01,0xa4,0x01,
+        0xb0,0x01,0xbc,0x01,0xc8,0x01,0xd4,0x01,0xe0,0x01,0xec,0x01,0xf8,0x01,0x04,0x02,0x10,0x02,
+        0x1c,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4c,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7c,0x02,
+        0x88,0x02,0x94,0x02,0xa0,0x02,0xac,0x02,0xb8,0x02,0xc4,0x02,0xd0,0x02,0xdc,0x02,0xe8,0x02,
+        0xf4,0x02,0x00,0x03,0x0c,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3c,0x03,0x48,0x03,0x54,0x03,
+        0x60,0x03,0x6c,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9c,0x03,0xa8,0x03,0xb4,0x03,0xc0,0x03,
+        0xcc,0x03,0xd8,0x03,0xe4,0x03,0xf0,0x03,0xfc,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2c,0x04,
+        0x38,0x04,0x44,0x04,0x50,0x04,0x5c,0x04,0x68,0x04,0x74,0x04,
+
+        7, // 0x20 ' '
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x21 '!'
+        0x00,0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x30,0x00,0x00,
+=====================================================================
+Found a 49 line (426 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 466 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+				(::_tcslen(CXMergeFilter::m_pszPXLImportShortDesc) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	// Create the DefaultIcon key.  For the moment, use one of the Async supplied ones
+	lRet = ::RegCreateKeyEx(hKey, _T("DefaultIcon"), 0, _T(""), 0, KEY_ALL_ACCESS, NULL, &hDataKey, NULL);
+	if (lRet != ERROR_SUCCESS)
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	lRet = ::RegSetValueEx(hDataKey, NULL, 0, REG_SZ, (LPBYTE)_T("C:\\Program Files\\Microsoft ActiveSync\\pwdcnv.dll,0"),
+							(::_tcslen(_T("C:\\Program Files\\Microsoft ActiveSync\\pwdcnv.dll,0")) 
+							   * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS)
+		return _signalRegError(lRet, hKey, hDataKey);
+	::RegCloseKey(hDataKey);  hDataKey = NULL;
+
+	
+	// Create the InprocServer32 key
+	lRet = ::RegCreateKeyEx(hKey, _T("InProcServer32"), 0, _T(""), 0, KEY_ALL_ACCESS, NULL, &hDataKey, NULL);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	lRet = ::RegSetValueEx(hDataKey, _T("ThreadingModel"), 0, REG_SZ, (LPBYTE)_T("Apartment"), 10);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	// Create the key for the DLL file.  First find the filename of the dll
+	if (!::GetModuleFileName((HMODULE)_Module.m_hInst, sTemp, (_MAX_PATH + 1)))
+	{
+		lRet = ::GetLastError();
+		if (lRet != ERROR_SUCCESS) 
+			return _signalRegError(lRet, hKey, hDataKey);	
+	}
+	
+	
+	lRet = ::RegSetValueEx(hDataKey, NULL, 0, REG_SZ, (LPBYTE)sTemp, 
+				(::_tcslen(sTemp) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+	::RegCloseKey(hDataKey);	hDataKey = NULL;
+
+
+	// Setup the PegasusFilter key values
+	lRet = ::RegCreateKeyEx(hKey, _T("PegasusFilter"), 0, _T(""), 0, KEY_ALL_ACCESS, NULL, &hDataKey, NULL);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+		lRet = ::RegSetValueEx(hDataKey, _T("Description"), 0, REG_SZ, (LPBYTE)CXMergeFilter::m_pszPXLImportDesc,
+=====================================================================
+Found a 32 line (426 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+void Print_cmnd ANSI((char *, int, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+=====================================================================
+Found a 35 line (425 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/autoform.cxx
+Starting at line 480 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblafmt.cxx
+
+{
+    SvxOrientationItem aOrientation( aRotateAngle.GetValue(), aStacked.GetValue(), 0 );
+
+	aFont.Store( rStream, aFont.GetVersion(SOFFICE_FILEFORMAT_40)  );
+	aHeight.Store( rStream, aHeight.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aWeight.Store( rStream, aWeight.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aPosture.Store( rStream, aPosture.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aCJKFont.Store( rStream, aCJKFont.GetVersion(SOFFICE_FILEFORMAT_40)  );
+    aCJKHeight.Store( rStream, aCJKHeight.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aCJKWeight.Store( rStream, aCJKWeight.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aCJKPosture.Store( rStream, aCJKPosture.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aCTLFont.Store( rStream, aCTLFont.GetVersion(SOFFICE_FILEFORMAT_40)  );
+    aCTLHeight.Store( rStream, aCTLHeight.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aCTLWeight.Store( rStream, aCTLWeight.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aCTLPosture.Store( rStream, aCTLPosture.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aUnderline.Store( rStream, aUnderline.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aCrossedOut.Store( rStream, aCrossedOut.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aContour.Store( rStream, aContour.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aShadowed.Store( rStream, aShadowed.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aColor.Store( rStream, aColor.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aBox.Store( rStream, aBox.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aTLBR.Store( rStream, aTLBR.GetVersion(SOFFICE_FILEFORMAT_40) );
+    aBLTR.Store( rStream, aBLTR.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aBackground.Store( rStream, aBackground.GetVersion(SOFFICE_FILEFORMAT_40) );
+
+	aAdjust.Store( rStream, aAdjust.GetVersion(SOFFICE_FILEFORMAT_40) );
+
+	aHorJustify.Store( rStream, aHorJustify.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aVerJustify.Store( rStream, aVerJustify.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aOrientation.Store( rStream, aOrientation.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aMargin.Store( rStream, aMargin.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aLinebreak.Store( rStream, aLinebreak.GetVersion(SOFFICE_FILEFORMAT_40) );
+	// Calc Rotation ab SO5
+	aRotateAngle.Store( rStream, aRotateAngle.GetVersion(SOFFICE_FILEFORMAT_40) );
+	aRotateMode.Store( rStream, aRotateMode.GetVersion(SOFFICE_FILEFORMAT_40) );
+=====================================================================
+Found a 85 line (423 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/swpossizetabpage.cxx
+Starting at line 591 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/frmdlg/frmpage.cxx
+
+		::InsertStringSorted(*aIt, rBox, nStartPos );
+}
+
+/* -----------------------------20.08.2002 16:12------------------------------
+
+ ---------------------------------------------------------------------------*/
+SvxSwFramePosString::StringId lcl_ChangeResIdToVerticalOrRTL(SvxSwFramePosString::StringId eStringId, BOOL bVertical, BOOL bRTL)
+{
+    //special handling of STR_FROMLEFT
+    if(SwFPos::FROMLEFT == eStringId)
+    {
+        eStringId = bVertical ?
+            bRTL ? SwFPos::FROMBOTTOM : SwFPos::FROMTOP :
+            bRTL ? SwFPos::FROMRIGHT : SwFPos::FROMLEFT;
+        return eStringId;
+    }
+    if(bVertical)
+    {
+        //exchange horizontal strings with vertical strings and vice versa
+        static const StringIdPair_Impl aHoriIds[] =
+        {
+            {SwFPos::LEFT,           SwFPos::TOP},
+            {SwFPos::RIGHT,          SwFPos::BOTTOM},
+            {SwFPos::CENTER_HORI,    SwFPos::CENTER_VERT},
+            {SwFPos::FROMTOP,        SwFPos::FROMRIGHT},
+            {SwFPos::REL_PG_LEFT,    SwFPos::REL_PG_TOP},
+            {SwFPos::REL_PG_RIGHT,   SwFPos::REL_PG_BOTTOM} ,
+            {SwFPos::REL_FRM_LEFT,   SwFPos::REL_FRM_TOP},
+            {SwFPos::REL_FRM_RIGHT,  SwFPos::REL_FRM_BOTTOM}
+        };
+        static const StringIdPair_Impl aVertIds[] =
+        {
+            {SwFPos::TOP,            SwFPos::RIGHT},
+            {SwFPos::BOTTOM,         SwFPos::LEFT },
+            {SwFPos::CENTER_VERT,    SwFPos::CENTER_HORI},
+            {SwFPos::FROMTOP,        SwFPos::FROMRIGHT },
+            {SwFPos::REL_PG_TOP,     SwFPos::REL_PG_LEFT },
+            {SwFPos::REL_PG_BOTTOM,  SwFPos::REL_PG_RIGHT } ,
+            {SwFPos::REL_FRM_TOP,    SwFPos::REL_FRM_LEFT },
+            {SwFPos::REL_FRM_BOTTOM, SwFPos::REL_FRM_RIGHT }
+        };
+        USHORT nIndex;
+        for(nIndex = 0; nIndex < sizeof(aHoriIds) / sizeof(StringIdPair_Impl); ++nIndex)
+        {
+            if(aHoriIds[nIndex].eHori == eStringId)
+            {
+                eStringId = aHoriIds[nIndex].eVert;
+                return eStringId;
+            }
+        }
+        nIndex = 0;
+        for(nIndex = 0; nIndex < sizeof(aVertIds) / sizeof(StringIdPair_Impl); ++nIndex)
+        {
+            if(aVertIds[nIndex].eHori == eStringId)
+            {
+                eStringId = aVertIds[nIndex].eVert;
+                break;
+            }
+        }
+    }
+    return eStringId;
+}
+
+// OD 12.11.2003 #i22341# - helper method in order to determine all possible
+// listbox relations in a relation map for a given relation
+ULONG lcl_GetLBRelationsForRelations( const USHORT _nRel )
+{
+    ULONG nLBRelations = 0L;
+
+    sal_uInt16 nRelMapSize = sizeof(aRelationMap) / sizeof(RelationMap);
+    for ( sal_uInt16 nRelMapPos = 0; nRelMapPos < nRelMapSize; ++nRelMapPos )
+    {
+        if ( aRelationMap[nRelMapPos].nRelation == _nRel )
+        {
+            nLBRelations |= aRelationMap[nRelMapPos].nLBRelation;
+        }
+    }
+
+    return nLBRelations;
+}
+
+// OD 14.11.2003 #i22341# - helper method on order to determine all possible
+// listbox relations in a relation map for a given string ID
+ULONG lcl_GetLBRelationsForStrID( const FrmMap* _pMap,
+                                  const USHORT _eStrId,
+=====================================================================
+Found a 101 line (422 tokens) duplication in the following files: 
+Starting at line 2866 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3033 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    if( pFkp->Where() == WW8_FC_MAX )
+        NewFkp();
+
+    return *this;
+}
+
+USHORT WW8PLCFx_Fc_FKP::GetIstd() const
+{
+    return pFkp ? pFkp->GetIstd() : 0xFFFF;
+}
+
+void WW8PLCFx_Fc_FKP::GetPCDSprms( WW8PLCFxDesc& rDesc )
+{
+    rDesc.pMemPos   = 0;
+    rDesc.nSprmsLen = 0;
+    if( pPCDAttrs )
+    {
+        if( !pFkp )
+        {
+            DBG_WARNING(
+                "+Problem: GetPCDSprms: NewFkp necessay (not possible!)" );
+            if( !NewFkp() )
+                return;
+        }
+        pPCDAttrs->GetSprms(&rDesc);
+    }
+}
+
+const BYTE* WW8PLCFx_Fc_FKP::HasSprm( USHORT nId )
+{
+    // const waere schoener, aber dafuer muesste NewFkp() ersetzt werden oder
+    // wegfallen
+    if( !pFkp )
+    {
+        DBG_WARNING( "+Motz: HasSprm: NewFkp noetig ( kein const moeglich )" );
+        // Passiert bei BugDoc 31722
+        if( !NewFkp() )
+            return 0;
+    }
+
+    const BYTE* pRes = pFkp->HasSprm( nId );
+
+    if( !pRes )
+    {
+        WW8PLCFxDesc aDesc;
+        GetPCDSprms( aDesc );
+
+        if (aDesc.pMemPos)
+        {
+            WW8SprmIter aIter(aDesc.pMemPos, aDesc.nSprmsLen,
+                pFkp->GetSprmParser());
+            pRes = aIter.FindSprm(nId);
+        }
+    }
+
+    return pRes;
+}
+
+bool WW8PLCFx_Fc_FKP::HasSprm(USHORT nId, std::vector<const BYTE *> &rResult)
+{
+    // const waere schoener, aber dafuer muesste NewFkp() ersetzt werden oder
+    // wegfallen
+    if (!pFkp)
+    {
+       DBG_WARNING( "+Motz: HasSprm: NewFkp noetig ( kein const moeglich )" );
+       // Passiert bei BugDoc 31722
+       if( !NewFkp() )
+           return 0;
+    }
+
+    pFkp->HasSprm(nId, rResult);
+
+    WW8PLCFxDesc aDesc;
+    GetPCDSprms( aDesc );
+
+    if (aDesc.pMemPos)
+    {
+        WW8SprmIter aIter(aDesc.pMemPos, aDesc.nSprmsLen,
+            pFkp->GetSprmParser());
+        while(aIter.GetSprms())
+        {
+            if (aIter.GetAktId() == nId)
+                rResult.push_back(aIter.GetAktParams());
+            aIter++;
+        };
+    }
+    return !rResult.empty();
+}
+
+//-----------------------------------------
+
+WW8PLCFx_Cp_FKP::WW8PLCFx_Cp_FKP( SvStream* pSt, SvStream* pTblSt,
+    SvStream* pDataSt, const WW8ScannerBase& rBase, ePLCFT ePl )
+    : WW8PLCFx_Fc_FKP(pSt, pTblSt, pDataSt, *rBase.pWw8Fib, ePl,
+    rBase.WW8Cp2Fc(0)), rSBase(rBase), nAttrStart(-1), nAttrEnd(-1),
+    bLineEnd(false),
+    bComplex( (7 < rBase.pWw8Fib->nVersion) || (0 != rBase.pWw8Fib->fComplex) )
+{
+    ResetAttrStartEnd();
+
+    pPcd = rSBase.pPiecePLCF ? new WW8PLCFx_PCD(GetFIBVersion(),
+=====================================================================
+Found a 15 line (421 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0,10,10, 0,10, 0, 0, 0, 0, 0, 0, 0, 0,// 0380 - 038f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0390 - 039f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 03a0 - 03af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 03b0 - 03bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 03c0 - 03cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 03d0 - 03df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 03e0 - 03ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 03f0 - 03ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0400 - 040f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0410 - 041f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0420 - 042f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0430 - 043f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+=====================================================================
+Found a 102 line (420 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/ntprophelp.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sprophelp.cxx
+
+}
+
+
+PropertyChgHelper::~PropertyChgHelper()
+{	
+}
+
+
+void PropertyChgHelper::AddAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->addPropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+void PropertyChgHelper::RemoveAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->removePropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+		 
+
+void PropertyChgHelper::LaunchEvent( const LinguServiceEvent &rEvt )
+{
+	cppu::OInterfaceIteratorHelper aIt( aLngSvcEvtListeners );
+	while (aIt.hasMoreElements())
+	{
+		Reference< XLinguServiceEventListener > xRef( aIt.next(), UNO_QUERY );
+		if (xRef.is())
+			xRef->processLinguServiceEvent( rEvt );
+	}
+}
+
+
+void SAL_CALL PropertyChgHelper::disposing( const EventObject& rSource ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	if (rSource.Source == xPropSet)
+	{
+		RemoveAsPropListener();
+		xPropSet = NULL;
+		aPropNames.realloc( 0 );
+	}
+}
+    
+	
+sal_Bool SAL_CALL 
+	PropertyChgHelper::addLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.addInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL 
+	PropertyChgHelper::removeLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.removeInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+static const char *aSP[] =
+{
+	UPN_IS_GERMAN_PRE_REFORM,
+	UPN_IS_IGNORE_CONTROL_CHARACTERS,
+	UPN_IS_USE_DICTIONARY_LIST,
+=====================================================================
+Found a 17 line (419 tokens) duplication in the following files: 
+Starting at line 6143 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6449 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        12, 4, 32, 128-32,
+        0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4E,0x00,0x5B,0x00,0x68,0x00,
+        0x75,0x00,0x82,0x00,0x8F,0x00,0x9C,0x00,0xA9,0x00,0xB6,0x00,0xC3,0x00,0xD0,0x00,0xDD,0x00,
+        0xEA,0x00,0xF7,0x00,0x04,0x01,0x11,0x01,0x1E,0x01,0x2B,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+        0x5F,0x01,0x6C,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xA0,0x01,0xAD,0x01,0xBA,0x01,0xC7,0x01,
+        0xD4,0x01,0xE1,0x01,0xEE,0x01,0xFB,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2F,0x02,0x3C,0x02,
+        0x49,0x02,0x56,0x02,0x63,0x02,0x70,0x02,0x7D,0x02,0x8A,0x02,0x97,0x02,0xA4,0x02,0xB1,0x02,
+        0xBE,0x02,0xCB,0x02,0xD8,0x02,0xE5,0x02,0xF2,0x02,0xFF,0x02,0x0C,0x03,0x19,0x03,0x26,0x03,
+        0x33,0x03,0x40,0x03,0x4D,0x03,0x5A,0x03,0x67,0x03,0x74,0x03,0x81,0x03,0x8E,0x03,0x9B,0x03,
+        0xA8,0x03,0xB5,0x03,0xC2,0x03,0xCF,0x03,0xDC,0x03,0xE9,0x03,0xF6,0x03,0x03,0x04,0x10,0x04,
+        0x1D,0x04,0x2A,0x04,0x37,0x04,0x44,0x04,0x51,0x04,0x5E,0x04,0x6B,0x04,0x78,0x04,0x85,0x04,
+        0x92,0x04,0x9F,0x04,0xAC,0x04,0xB9,0x04,0xC6,0x04,0xD3,0x04,
+
+        7, // 0x20 ' '
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x21 '!'
+=====================================================================
+Found a 20 line (419 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_FORMRT),	SC_WID_UNO_FORMRT,	&getCppuType((table::CellContentType*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
+		{MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
+        {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+=====================================================================
+Found a 64 line (419 tokens) duplication in the following files: 
+Starting at line 413 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+	CComPtr< CComObject< SOComWindowPeer > > pPeerToSend = new CComObject<SOComWindowPeer>( hwnd );
+	pPeerToSend->SetHWNDInternally( hwnd );
+	CComQIPtr< IDispatch, &IID_IDispatch > pIDispToSend( pPeerToSend );
+
+	// create rectangle structure
+	CComPtr<IDispatch> pdispRectangle;
+	HRESULT hr = GetUnoStruct( L"com.sun.star.awt.Rectangle", pdispRectangle );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	OLECHAR* sRectMemberNames[4] = { L"X", 
+								 	 L"Y", 
+								 	 L"Width", 
+								 	 L"Height" };
+	CComVariant pRectVariant[4];
+	pRectVariant[0] = pRectVariant[1] = pRectVariant[2] = pRectVariant[3] = CComVariant( 0 );
+
+	hr = PutPropertiesToIDisp( pdispRectangle, sRectMemberNames, pRectVariant, 4 );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// create WindowDescriptor structure
+	CComPtr<IDispatch> pdispWinDescr;
+	hr = GetUnoStruct( L"com.sun.star.awt.WindowDescriptor", pdispWinDescr );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// fill in descriptor with info
+	OLECHAR* sDescriptorMemberNames[6] = { L"Type", 
+								 L"WindowServiceName", 
+								 L"ParentIndex", 
+								 L"Parent", 
+								 L"Bounds",
+								 L"WindowAttributes" };
+	CComVariant pDescriptorVar[6];
+	pDescriptorVar[0] = CComVariant( 0 );
+	pDescriptorVar[1] = CComVariant( L"workwindow" );
+	pDescriptorVar[2] = CComVariant( 1 );
+	pDescriptorVar[3] = CComVariant( pIDispToSend );
+	pDescriptorVar[4] = CComVariant( pdispRectangle );
+	pDescriptorVar[5] = CComVariant( 33 );
+	hr = PutPropertiesToIDisp( pdispWinDescr, sDescriptorMemberNames, pDescriptorVar, 6 );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// create XToolkit instance
+	CComPtr<IDispatch> pdispToolkit;
+	hr = GetIDispByFunc( mpDispFactory, L"createInstance", &CComVariant( L"com.sun.star.awt.Toolkit" ), 1, pdispToolkit );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// create window with toolkit
+	hr = GetIDispByFunc( pdispToolkit, L"createWindow", &CComVariant( pdispWinDescr ), 1, mpDispWin );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// create frame
+	hr = GetIDispByFunc( mpDispFactory, L"createInstance", &CComVariant( L"com.sun.star.frame.Task" ), 1, mpDispFrame );
+	if( !SUCCEEDED( hr ) || !mpDispFrame )
+	{
+		// the interface com.sun.star.frame.Task is removed in 6.1
+		// but the interface com.sun.star.frame.Frame has some bugs in 6.0
+		hr = GetIDispByFunc( mpDispFactory, L"createInstance", &CComVariant( L"com.sun.star.frame.Frame" ), 1, mpDispFrame );
+		if( !SUCCEEDED( hr ) ) return hr;
+	}
+
+	// initialize frame
+	CComVariant dummyResult;
+	hr = ExecuteFunc( mpDispFrame, L"initialize", &CComVariant( mpDispWin ), 1, &dummyResult );
+	if( !SUCCEEDED( hr ) ) return hr;
+=====================================================================
+Found a 94 line (419 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_textlayout.cxx
+
+                                              nFontSize/2 );
+        }
+    }
+
+    double SAL_CALL TextLayout::justify( double /*nSize*/ ) throw (lang::IllegalArgumentException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return 0.0;
+    }
+
+    double SAL_CALL TextLayout::combinedJustify( const uno::Sequence< uno::Reference< rendering::XTextLayout > >& /*aNextLayouts*/, 
+                                                 double /*nSize*/ ) throw (lang::IllegalArgumentException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return 0.0;
+    }
+
+    rendering::TextHit SAL_CALL TextLayout::getTextHit( const geometry::RealPoint2D& /*aHitPoint*/ ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return rendering::TextHit();
+    }
+
+    rendering::Caret SAL_CALL TextLayout::getCaret( sal_Int32 /*nInsertionIndex*/, 
+                                                    sal_Bool  /*bExcludeLigatures*/ ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return rendering::Caret();
+    }
+
+    sal_Int32 SAL_CALL TextLayout::getNextInsertionIndex( sal_Int32 /*nStartIndex*/, 
+                                                          sal_Int32 /*nCaretAdvancement*/, 
+                                                          sal_Bool  /*bExcludeLigatures*/ ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return 0;
+    }
+
+    uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryVisualHighlighting( sal_Int32 /*nStartIndex*/, 
+                                                                                              sal_Int32 /*nEndIndex*/ ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return uno::Reference< rendering::XPolyPolygon2D >();
+    }
+
+    uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryLogicalHighlighting( sal_Int32 /*nStartIndex*/, 
+                                                                                               sal_Int32 /*nEndIndex*/ ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return uno::Reference< rendering::XPolyPolygon2D >();
+    }
+
+    double SAL_CALL TextLayout::getBaselineOffset(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return 0.0;
+    }
+
+    sal_Int8 SAL_CALL TextLayout::getMainTextDirection(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        return mnTextDirection;
+    }
+
+    uno::Reference< rendering::XCanvasFont > SAL_CALL TextLayout::getFont(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        return mpFont.getRef();
+    }
+
+    rendering::StringContext SAL_CALL TextLayout::getText(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        return maText;
+    }
+=====================================================================
+Found a 87 line (418 tokens) duplication in the following files: 
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 410 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	fprintf(stderr, "members are %d %d\n", nMemberPos, pTypeDescr->nAllMembers);
+#endif
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData, 
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( gpreg[0] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = gpreg[0];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+			}
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+=====================================================================
+Found a 85 line (416 tokens) duplication in the following files: 
+Starting at line 699 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+		for ( USHORT i = 0; i < m_aImageListsItems.pImageList->Count(); i++ )
+		{
+			const ImageListItemDescriptor* pImageItems = (*pImageList)[i];
+			WriteImageList( pImageItems );
+		}
+	}
+
+	if ( m_aImageListsItems.pExternalImageList )
+	{
+		WriteExternalImageList( m_aImageListsItems.pExternalImageList );
+	}
+
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGESCONTAINER )) );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endDocument();
+}
+
+//_________________________________________________________________________________________________________________
+//	protected member functions
+//_________________________________________________________________________________________________________________
+
+void OWriteImagesDocumentHandler::WriteImageList( const ImageListItemDescriptor* pImageList ) throw
+( SAXException, RuntimeException )
+{
+	AttributeListImpl*			pList = new AttributeListImpl;
+	Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+    // save required attributes
+	pList->addAttribute( m_aAttributeXlinkType,
+						 m_aAttributeType,
+						 m_aAttributeValueSimple );
+
+	pList->addAttribute( m_aXMLXlinkNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HREF )),
+						 m_aAttributeType,
+						 pImageList->aURL );
+
+	if ( pImageList->nMaskMode == ImageMaskMode_Bitmap )
+	{
+		pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE )),
+							 m_aAttributeType,
+							 OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_BITMAP )) );
+
+		pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKURL )),
+							 m_aAttributeType,
+							 pImageList->aMaskURL );
+		
+		if ( pImageList->aHighContrastMaskURL.Len() > 0 )
+		{
+			pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HIGHCONTRASTMASKURL )),
+								 m_aAttributeType,
+								 pImageList->aHighContrastMaskURL );
+		}
+	}
+	else
+	{
+		OUStringBuffer	aColorStrBuffer( 8 );
+		sal_Int64		nValue = pImageList->aMaskColor.GetRGBColor();
+
+		aColorStrBuffer.appendAscii( "#" );
+		aColorStrBuffer.append( OUString::valueOf( nValue, 16 ));
+
+		pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKCOLOR )),
+							 m_aAttributeType,
+							 aColorStrBuffer.makeStringAndClear() );
+
+		pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE )),
+							 m_aAttributeType,
+							 OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_COLOR )) );
+	}
+
+	if ( pImageList->aHighContrastURL.Len() > 0 )
+	{
+		pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HIGHCONTRASTURL )),
+							 m_aAttributeType,
+							 pImageList->aHighContrastURL );
+	}
+	
+    m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGES )), xList );
+    m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	ImageItemListDescriptor* pImageItemList = pImageList->pImageItemList;
+	if ( pImageItemList )
+	{
+		for ( USHORT i = 0; i < pImageItemList->Count(); i++ )
+=====================================================================
+Found a 31 line (416 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/macosx/gnu/public.h
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr3/gnu/public.h
+
+void Print_cmnd ANSI((char *, int, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+=====================================================================
+Found a 87 line (416 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+
+	for (i; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'G':
+=====================================================================
+Found a 15 line (415 tokens) duplication in the following files: 
+Starting at line 3695 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 5225 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        11, 3, 32, 128-32,
+        0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+        0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+        0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+        0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+        0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+        0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+        0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+        0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+        0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+        0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+        0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+
+        5, // 0x20 ' '
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 83 line (415 tokens) duplication in the following files: 
+Starting at line 696 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/SwStyleNameMapper.cxx
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/SwStyleNameMapper.cxx
+
+void SwStyleNameMapper::fillNameFromId( sal_uInt16 nId, String& rFillName, sal_Bool bProgName )
+{
+	sal_uInt16 nStt = 0;
+	const SvStringsDtor* pStrArr = 0;
+
+	switch( (USER_FMT | COLL_GET_RANGE_BITS | POOLGRP_NOCOLLID) & nId )
+	{
+	case COLL_TEXT_BITS:
+		if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END )
+		{
+			pStrArr = bProgName ? &GetTextProgNameArray() : &GetTextUINameArray();
+			nStt = RES_POOLCOLL_TEXT_BEGIN;
+		}
+		break;
+	case COLL_LISTS_BITS:
+		if( RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END )
+		{
+			pStrArr = bProgName ? &GetListsProgNameArray() : &GetListsUINameArray();
+			nStt = RES_POOLCOLL_LISTS_BEGIN;
+		}
+		break;
+	case COLL_EXTRA_BITS:
+		if( RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END )
+		{
+			pStrArr = bProgName ? &GetExtraProgNameArray() : &GetExtraUINameArray();
+			nStt = RES_POOLCOLL_EXTRA_BEGIN;
+		}
+		break;
+	case COLL_REGISTER_BITS:
+		if( RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END )
+		{
+			pStrArr = bProgName ? &GetRegisterProgNameArray() : &GetRegisterUINameArray();
+			nStt = RES_POOLCOLL_REGISTER_BEGIN;
+		}
+		break;
+	case COLL_DOC_BITS:
+		if( RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END )
+		{
+			pStrArr = bProgName ? &GetDocProgNameArray() : &GetDocUINameArray();
+			nStt = RES_POOLCOLL_DOC_BEGIN;
+		}
+		break;
+	case COLL_HTML_BITS:
+		if( RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END )
+		{
+			pStrArr = bProgName ? &GetHTMLProgNameArray() : &GetHTMLUINameArray();
+			nStt = RES_POOLCOLL_HTML_BEGIN;
+		}
+		break;
+	case POOLGRP_CHARFMT:
+		if( RES_POOLCHR_NORMAL_BEGIN <= nId && nId < RES_POOLCHR_NORMAL_END )
+		{
+			pStrArr = bProgName ? &GetChrFmtProgNameArray() : &GetChrFmtUINameArray();
+			nStt = RES_POOLCHR_NORMAL_BEGIN;
+		}
+		else if( RES_POOLCHR_HTML_BEGIN <= nId && nId < RES_POOLCHR_HTML_END )
+		{
+			pStrArr = bProgName ? &GetHTMLChrFmtProgNameArray() : &GetHTMLChrFmtUINameArray();
+			nStt = RES_POOLCHR_HTML_BEGIN;
+		}
+		break;
+	case POOLGRP_FRAMEFMT:
+		if( RES_POOLFRM_BEGIN <= nId && nId < RES_POOLFRM_END )
+		{
+			pStrArr = bProgName ? &GetFrmFmtProgNameArray() : &GetFrmFmtUINameArray();
+			nStt = RES_POOLFRM_BEGIN;
+		}
+		break;
+	case POOLGRP_PAGEDESC:
+		if( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END )
+		{
+			pStrArr = bProgName ? &GetPageDescProgNameArray() : &GetPageDescUINameArray();
+			nStt = RES_POOLPAGE_BEGIN;
+		}
+		break;
+	case POOLGRP_NUMRULE:
+		if( RES_POOLNUMRULE_BEGIN <= nId && nId < RES_POOLNUMRULE_END )
+		{
+			pStrArr = bProgName ? &GetNumRuleProgNameArray() : &GetNumRuleUINameArray();
+			nStt = RES_POOLNUMRULE_BEGIN;
+		}
+		break;
+	}
+=====================================================================
+Found a 81 line (415 tokens) duplication in the following files: 
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+sal_Bool ModuleImageManager::implts_loadUserImages(
+    ImageType nImageType,
+    const uno::Reference< XStorage >& xUserImageStorage,
+    const uno::Reference< XStorage >& xUserBitmapsStorage )
+{
+    ResetableGuard aGuard( m_aLock );
+
+    if ( xUserImageStorage.is() && xUserBitmapsStorage.is() )
+    {
+        try
+        {
+            uno::Reference< XStream > xStream = xUserImageStorage->openStreamElement( rtl::OUString::createFromAscii( IMAGELIST_XML_FILE[nImageType] ),
+                                                                                      ElementModes::READ );
+            uno::Reference< XInputStream > xInputStream = xStream->getInputStream();
+
+            ImageListsDescriptor aUserImageListInfo;
+            ImagesConfiguration::LoadImages( m_xServiceManager,
+                                             xInputStream,
+                                             aUserImageListInfo );
+            if (( aUserImageListInfo.pImageList != 0 ) &&
+                ( aUserImageListInfo.pImageList->Count() > 0 ))
+            {
+                ImageListItemDescriptor* pList = aUserImageListInfo.pImageList->GetObject(0);
+                sal_Int32 nCount = pList->pImageItemList->Count();
+
+                std::vector< OUString > aUserImagesVector;
+                for ( USHORT i=0; i < nCount; i++ )
+                {
+                    const ImageItemDescriptor* pItem = pList->pImageItemList->GetObject(i);
+                    aUserImagesVector.push_back( pItem->aCommandURL );
+                }
+
+                uno::Reference< XStream > xBitmapStream = xUserBitmapsStorage->openStreamElement(
+                                                        rtl::OUString::createFromAscii( BITMAP_FILE_NAMES[nImageType] ),
+                                                        ElementModes::READ );
+
+                if ( xBitmapStream.is() )
+                {
+                    SvStream* pSvStream( 0 );
+		            BitmapEx aUserBitmap;
+		            {
+		                pSvStream = utl::UcbStreamHelper::CreateStream( xBitmapStream );
+		                vcl::PNGReader aPngReader( *pSvStream );
+		                aUserBitmap = aPngReader.Read();
+		            }
+                    delete pSvStream;
+
+                    // Delete old image list and create a new one from the read bitmap
+                    delete m_pUserImageList[nImageType];
+                    m_pUserImageList[nImageType] = new ImageList();
+					m_pUserImageList[nImageType]->InsertFromHorizontalStrip
+						( aUserBitmap, aUserImagesVector );
+                    return sal_True;
+                }
+            }
+        }
+        catch ( com::sun::star::container::NoSuchElementException& )
+        {
+        }
+        catch ( ::com::sun::star::embed::InvalidStorageException& )
+        {
+        }
+        catch ( ::com::sun::star::lang::IllegalArgumentException& )
+        {
+        }
+        catch ( ::com::sun::star::io::IOException& )
+        {
+        }
+        catch ( ::com::sun::star::embed::StorageWrappedTargetException& )
+        {
+        }
+    }
+
+    // Destroy old image list - create a new empty one
+    delete m_pUserImageList[nImageType];
+    m_pUserImageList[nImageType] = new ImageList;
+
+    return sal_True;
+}
+
+sal_Bool ModuleImageManager::implts_storeUserImages(
+=====================================================================
+Found a 71 line (415 tokens) duplication in the following files: 
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsdarm32/tempnam.c
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/solaris/tempnam.c
+
+extern char *mktemp();
+extern int access();
+
+static char *cpdir();
+static char  seed[4]="AAA";
+
+/* BSD stdio.h doesn't define P_tmpdir, so let's do it here */
+#ifndef P_tmpdir
+static char *P_tmpdir = "/tmp";
+#endif
+
+char *
+tempnam(dir, prefix)
+const char *dir;		/* use this directory please (if non-NULL) */
+const char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+     if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+	if( access( cpdir(p, P_tmpdir),   3) != 0 )
+	   if( access( cpdir(p, "/tmp"),  3) != 0 )
+	      return(NULL);
+
+   (void) strcat(p, "/");
+   if(prefix)
+   {
+      *(p+strlen(p)+5) = '\0';
+      (void)strncat(p, prefix, 5);
+   }
+
+   (void)strcat(p, seed);
+   (void)strcat(p, "XXXXXX");
+
+   q = seed;
+   while(*q == 'Z') *q++ = 'A';
+   ++*q;
+
+   if(*mktemp(p) == '\0') return(NULL);
+   return(p);
+}
+
+
+
+static char *
+cpdir(buf, str)
+char *buf;
+char *str;
+{
+   char *p;
+
+   if(str != NULL)
+   {
+      (void) strcpy(buf, str);
+      p = buf - 1 + strlen(buf);
+      if(*p == '/') *p = '\0';
+   }
+
+   return(buf);
+}
+=====================================================================
+Found a 72 line (414 tokens) duplication in the following files: 
+Starting at line 1422 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/helper/xsecctl.cxx
+
+			sHundredth = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"));
+        }
+    }
+    else
+        aDateStr = rString;         // no separator: only date part
+
+    sal_Int32 nYear  = 1899;
+    sal_Int32 nMonth = 12;
+    sal_Int32 nDay   = 30;
+    sal_Int32 nHour  = 0;
+    sal_Int32 nMin   = 0;
+    sal_Int32 nSec   = 0;
+
+    const sal_Unicode* pStr = aDateStr.getStr();
+    sal_Int32 nDateTokens = 1;
+    while ( *pStr )
+    {
+        if ( *pStr == '-' )
+            nDateTokens++;
+        pStr++;
+    }
+    if ( nDateTokens > 3 || aDateStr.getLength() == 0 )
+        bSuccess = sal_False;
+    else
+    {
+        sal_Int32 n = 0;
+        if ( !convertNumber( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) )
+            bSuccess = sal_False;
+        if ( nDateTokens >= 2 )
+            if ( !convertNumber( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) )
+                bSuccess = sal_False;
+        if ( nDateTokens >= 3 )
+            if ( !convertNumber( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) )
+                bSuccess = sal_False;
+    }
+
+    if ( aTimeStr.getLength() > 0 )           // time is optional
+    {
+        pStr = aTimeStr.getStr();
+        sal_Int32 nTimeTokens = 1;
+        while ( *pStr )
+        {
+            if ( *pStr == ':' )
+                nTimeTokens++;
+            pStr++;
+        }
+        if ( nTimeTokens > 3 )
+            bSuccess = sal_False;
+        else
+        {
+            sal_Int32 n = 0;
+            if ( !convertNumber( nHour, aTimeStr.getToken( 0, ':', n ), 0, 23 ) )
+                bSuccess = sal_False;
+            if ( nTimeTokens >= 2 )
+                if ( !convertNumber( nMin, aTimeStr.getToken( 0, ':', n ), 0, 59 ) )
+                    bSuccess = sal_False;
+            if ( nTimeTokens >= 3 )
+                if ( !convertNumber( nSec, aTimeStr.getToken( 0, ':', n ), 0, 59 ) )
+                    bSuccess = sal_False;
+        }
+    }
+
+    if (bSuccess)
+    {
+        rDateTime.Year = (sal_uInt16)nYear;
+        rDateTime.Month = (sal_uInt16)nMonth;
+        rDateTime.Day = (sal_uInt16)nDay;
+        rDateTime.Hours = (sal_uInt16)nHour;
+        rDateTime.Minutes = (sal_uInt16)nMin;
+        rDateTime.Seconds = (sal_uInt16)nSec;
+ //       rDateTime.HundredthSeconds = sDoubleStr.toDouble() * 100;
+		rDateTime.HundredthSeconds = static_cast<sal_uInt16>(sHundredth.toInt32());
+=====================================================================
+Found a 99 line (414 tokens) duplication in the following files: 
+Starting at line 2431 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 2862 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+			if (!pMatX->IsValue(nElem))
+			{
+				SetIllegalArgument();
+				return;
+			}
+		if (nCX == nCY && nRX == nRY)
+			nCase = 1;					// einfache Regression
+		else if (nCY != 1 && nRY != 1)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else if (nCY == 1)
+		{
+			if (nRX != nRY)
+			{
+				SetIllegalParameter();
+				return;
+			}
+			else
+			{
+				nCase = 2;				// zeilenweise
+				N = nRY;
+				M = nCX;
+			}
+		}
+		else if (nCX != nCY)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else
+		{
+			nCase = 3;					// spaltenweise
+			N = nCY;
+			M = nRX;
+		}
+	}
+	else
+	{
+		pMatX = GetNewMat(nCY, nRY);
+		if (!pMatX)
+		{
+			PushError();
+			return;
+		}
+		for ( SCSIZE i = 1; i <= nCountY; i++ )
+			pMatX->PutDouble((double)i, i-1);
+		nCase = 1;
+	}
+	ScMatrixRef pResMat;
+	if (nCase == 1)
+	{
+		if (!bStats)
+			pResMat = GetNewMat(2,1);
+		else
+			pResMat = GetNewMat(2,5);
+		if (!pResMat)
+		{
+			PushError();
+			return;
+		}
+		double fCount   = 0.0;
+		double fSumX    = 0.0;
+		double fSumSqrX = 0.0;
+		double fSumY    = 0.0;
+		double fSumSqrY = 0.0;
+		double fSumXY   = 0.0;
+		double fValX, fValY;
+		for (SCSIZE i = 0; i < nCY; i++)
+			for (SCSIZE j = 0; j < nRY; j++)
+			{
+				fValX = pMatX->GetDouble(i,j);
+				fValY = pMatY->GetDouble(i,j);
+				fSumX    += fValX;
+				fSumSqrX += fValX * fValX;
+				fSumY    += fValY;
+				fSumSqrY += fValY * fValY;
+				fSumXY   += fValX*fValY;
+				fCount++;
+			}
+		if (fCount < 1.0)
+			SetNoValue();
+		else
+		{
+			double f1 = fCount*fSumXY-fSumX*fSumY;
+			double fX = fCount*fSumSqrX-fSumX*fSumX;
+			double b, m;
+			if (bConstant)
+			{
+				b = fSumY/fCount - f1/fX*fSumX/fCount;
+				m = f1/fX;
+			}
+			else
+			{
+				b = 0.0;
+				m = fSumXY/fSumSqrX;
+			}
+			pResMat->PutDouble(exp(m), 0, 0);
+=====================================================================
+Found a 117 line (412 tokens) duplication in the following files: 
+Starting at line 509 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+	return ContentImplHelper::getIdentifier();
+}
+
+//=========================================================================
+//
+// XCommandProcessor methods.
+//
+//=========================================================================
+
+// virtual
+uno::Any SAL_CALL Content::execute(
+        const ucb::Command& aCommand,
+        sal_Int32 /*CommandId*/,
+        const uno::Reference< ucb::XCommandEnvironment >& Environment )
+    throw( uno::Exception,
+           ucb::CommandAbortedException,
+           uno::RuntimeException )
+{
+    uno::Any aRet;
+
+    if ( aCommand.Name.equalsAsciiL(
+			RTL_CONSTASCII_STRINGPARAM( "getPropertyValues" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getPropertyValues
+		//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::Property > Properties;
+        if ( !( aCommand.Argument >>= Properties ) )
+		{
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= getPropertyValues( Properties );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "setPropertyValues" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// setPropertyValues
+		//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::PropertyValue > aProperties;
+        if ( !( aCommand.Argument >>= aProperties ) )
+		{
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        if ( !aProperties.getLength() )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "No properties!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getPropertySetInfo
+		//////////////////////////////////////////////////////////////////
+
+		aRet <<= getPropertySetInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "getCommandInfo" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getCommandInfo
+		//////////////////////////////////////////////////////////////////
+
+		aRet <<= getCommandInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "open" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+        // open
+		//////////////////////////////////////////////////////////////////
+
+        ucb::OpenCommandArgument2 aOpenCommand;
+        if ( !( aCommand.Argument >>= aOpenCommand ) )
+		{
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet = open( aOpenCommand, Environment );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+=====================================================================
+Found a 54 line (412 tokens) duplication in the following files: 
+Starting at line 1590 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2002 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+	if ((rv) && (compoundroot) && 
+	    (TESTAFF(rv->astr, compoundroot, rv->alen))) {
+		wordnum++;
+	}
+
+	// first word is acceptable in compound words?
+	if (((rv) && 
+	  ( checked_prefix || (words && words[wnum]) ||
+	    (compoundflag && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
+	    ((oldwordnum == 0) && compoundbegin && TESTAFF(rv->astr, compoundbegin, rv->alen)) ||
+	    ((oldwordnum > 0) && compoundmiddle && TESTAFF(rv->astr, compoundmiddle, rv->alen)) 
+// LANG_hu section: spec. Hungarian rule
+	    || ((langnum == LANG_hu) &&	// hu_mov_rule
+	        hu_mov_rule && (
+		    TESTAFF(rv->astr, 'F', rv->alen) ||
+		    TESTAFF(rv->astr, 'G', rv->alen) ||
+		    TESTAFF(rv->astr, 'H', rv->alen)
+		)
+	      )
+// END of LANG_hu section
+	  )
+	  && ! (( checkcompoundtriple && // test triple letters
+                   (word[i-1]==word[i]) && (
+                      ((i>1) && (word[i-1]==word[i-2])) || 
+                      ((word[i-1]==word[i+1])) // may be word[i+1] == '\0'
+		   )
+               ) ||
+	       (
+	           // test CHECKCOMPOUNDPATTERN
+                   numcheckcpd && cpdpat_check(word, i)
+	       ) ||
+               ( 
+	         checkcompoundcase && cpdcase_check(word, i)
+               ))
+         )
+// LANG_hu section: spec. Hungarian rule
+         || ((!rv) && (langnum == LANG_hu) && hu_mov_rule && (rv = affix_check(st,i)) &&
+              (sfx && ((SfxEntry*)sfx)->getCont() && (
+                        TESTAFF(((SfxEntry*)sfx)->getCont(), (unsigned short) 'x', ((SfxEntry*)sfx)->getContLen()) ||
+                        TESTAFF(((SfxEntry*)sfx)->getCont(), (unsigned short) '%', ((SfxEntry*)sfx)->getContLen())
+                    )                
+               )
+	     )
+// END of LANG_hu section
+         ) {
+
+// LANG_hu section: spec. Hungarian rule
+            if (langnum == LANG_hu) {
+	        // calculate syllable number of the word
+	        numsyllable += get_syllable(st, i);
+
+	        // + 1 word, if syllable number of the prefix > 1 (hungarian convention)
+	        if (pfx && (get_syllable(((PfxEntry *)pfx)->getKey(),strlen(((PfxEntry *)pfx)->getKey())) > 1)) wordnum++;
+            }
+=====================================================================
+Found a 59 line (412 tokens) duplication in the following files: 
+Starting at line 807 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/hw2fw.cxx
+
+  MAKE_PAIR( 0xFF65, 0x30FB ),	// HALFWIDTH KATAKANA MIDDLE DOT --> KATAKANA MIDDLE DOT
+  MAKE_PAIR( 0xFF66, 0x30F2 ),	// HALFWIDTH KATAKANA LETTER WO --> KATAKANA LETTER WO
+  MAKE_PAIR( 0xFF67, 0x30A1 ),	// HALFWIDTH KATAKANA LETTER SMALL A --> KATAKANA LETTER SMALL A
+  MAKE_PAIR( 0xFF68, 0x30A3 ),	// HALFWIDTH KATAKANA LETTER SMALL I --> KATAKANA LETTER SMALL I
+  MAKE_PAIR( 0xFF69, 0x30A5 ),	// HALFWIDTH KATAKANA LETTER SMALL U --> KATAKANA LETTER SMALL U
+  MAKE_PAIR( 0xFF6A, 0x30A7 ),	// HALFWIDTH KATAKANA LETTER SMALL E --> KATAKANA LETTER SMALL E
+  MAKE_PAIR( 0xFF6B, 0x30A9 ),	// HALFWIDTH KATAKANA LETTER SMALL O --> KATAKANA LETTER SMALL O
+  MAKE_PAIR( 0xFF6C, 0x30E3 ),	// HALFWIDTH KATAKANA LETTER SMALL YA --> KATAKANA LETTER SMALL YA
+  MAKE_PAIR( 0xFF6D, 0x30E5 ),	// HALFWIDTH KATAKANA LETTER SMALL YU --> KATAKANA LETTER SMALL YU
+  MAKE_PAIR( 0xFF6E, 0x30E7 ),	// HALFWIDTH KATAKANA LETTER SMALL YO --> KATAKANA LETTER SMALL YO
+  MAKE_PAIR( 0xFF6F, 0x30C3 ),	// HALFWIDTH KATAKANA LETTER SMALL TU --> KATAKANA LETTER SMALL TU
+  MAKE_PAIR( 0xFF70, 0x30FC ),	// HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK --> KATAKANA-HIRAGANA PROLONGED SOUND MARK
+  MAKE_PAIR( 0xFF71, 0x30A2 ),	// HALFWIDTH KATAKANA LETTER A --> KATAKANA LETTER A
+  MAKE_PAIR( 0xFF72, 0x30A4 ),	// HALFWIDTH KATAKANA LETTER I --> KATAKANA LETTER I
+  MAKE_PAIR( 0xFF73, 0x30A6 ),	// HALFWIDTH KATAKANA LETTER U --> KATAKANA LETTER U
+  MAKE_PAIR( 0xFF74, 0x30A8 ),	// HALFWIDTH KATAKANA LETTER E --> KATAKANA LETTER E
+  MAKE_PAIR( 0xFF75, 0x30AA ),	// HALFWIDTH KATAKANA LETTER O --> KATAKANA LETTER O
+  MAKE_PAIR( 0xFF76, 0x30AB ),	// HALFWIDTH KATAKANA LETTER KA --> KATAKANA LETTER KA
+  MAKE_PAIR( 0xFF77, 0x30AD ),	// HALFWIDTH KATAKANA LETTER KI --> KATAKANA LETTER KI
+  MAKE_PAIR( 0xFF78, 0x30AF ),	// HALFWIDTH KATAKANA LETTER KU --> KATAKANA LETTER KU
+  MAKE_PAIR( 0xFF79, 0x30B1 ),	// HALFWIDTH KATAKANA LETTER KE --> KATAKANA LETTER KE
+  MAKE_PAIR( 0xFF7A, 0x30B3 ),	// HALFWIDTH KATAKANA LETTER KO --> KATAKANA LETTER KO
+  MAKE_PAIR( 0xFF7B, 0x30B5 ),	// HALFWIDTH KATAKANA LETTER SA --> KATAKANA LETTER SA
+  MAKE_PAIR( 0xFF7C, 0x30B7 ),	// HALFWIDTH KATAKANA LETTER SI --> KATAKANA LETTER SI
+  MAKE_PAIR( 0xFF7D, 0x30B9 ),	// HALFWIDTH KATAKANA LETTER SU --> KATAKANA LETTER SU
+  MAKE_PAIR( 0xFF7E, 0x30BB ),	// HALFWIDTH KATAKANA LETTER SE --> KATAKANA LETTER SE
+  MAKE_PAIR( 0xFF7F, 0x30BD ),	// HALFWIDTH KATAKANA LETTER SO --> KATAKANA LETTER SO
+  MAKE_PAIR( 0xFF80, 0x30BF ),	// HALFWIDTH KATAKANA LETTER TA --> KATAKANA LETTER TA
+  MAKE_PAIR( 0xFF81, 0x30C1 ),	// HALFWIDTH KATAKANA LETTER TI --> KATAKANA LETTER TI
+  MAKE_PAIR( 0xFF82, 0x30C4 ),	// HALFWIDTH KATAKANA LETTER TU --> KATAKANA LETTER TU
+  MAKE_PAIR( 0xFF83, 0x30C6 ),	// HALFWIDTH KATAKANA LETTER TE --> KATAKANA LETTER TE
+  MAKE_PAIR( 0xFF84, 0x30C8 ),	// HALFWIDTH KATAKANA LETTER TO --> KATAKANA LETTER TO
+  MAKE_PAIR( 0xFF85, 0x30CA ),	// HALFWIDTH KATAKANA LETTER NA --> KATAKANA LETTER NA
+  MAKE_PAIR( 0xFF86, 0x30CB ),	// HALFWIDTH KATAKANA LETTER NI --> KATAKANA LETTER NI
+  MAKE_PAIR( 0xFF87, 0x30CC ),	// HALFWIDTH KATAKANA LETTER NU --> KATAKANA LETTER NU
+  MAKE_PAIR( 0xFF88, 0x30CD ),	// HALFWIDTH KATAKANA LETTER NE --> KATAKANA LETTER NE
+  MAKE_PAIR( 0xFF89, 0x30CE ),	// HALFWIDTH KATAKANA LETTER NO --> KATAKANA LETTER NO
+  MAKE_PAIR( 0xFF8A, 0x30CF ),	// HALFWIDTH KATAKANA LETTER HA --> KATAKANA LETTER HA
+  MAKE_PAIR( 0xFF8B, 0x30D2 ),	// HALFWIDTH KATAKANA LETTER HI --> KATAKANA LETTER HI
+  MAKE_PAIR( 0xFF8C, 0x30D5 ),	// HALFWIDTH KATAKANA LETTER HU --> KATAKANA LETTER HU
+  MAKE_PAIR( 0xFF8D, 0x30D8 ),	// HALFWIDTH KATAKANA LETTER HE --> KATAKANA LETTER HE
+  MAKE_PAIR( 0xFF8E, 0x30DB ),	// HALFWIDTH KATAKANA LETTER HO --> KATAKANA LETTER HO
+  MAKE_PAIR( 0xFF8F, 0x30DE ),	// HALFWIDTH KATAKANA LETTER MA --> KATAKANA LETTER MA
+  MAKE_PAIR( 0xFF90, 0x30DF ),	// HALFWIDTH KATAKANA LETTER MI --> KATAKANA LETTER MI
+  MAKE_PAIR( 0xFF91, 0x30E0 ),	// HALFWIDTH KATAKANA LETTER MU --> KATAKANA LETTER MU
+  MAKE_PAIR( 0xFF92, 0x30E1 ),	// HALFWIDTH KATAKANA LETTER ME --> KATAKANA LETTER ME
+  MAKE_PAIR( 0xFF93, 0x30E2 ),	// HALFWIDTH KATAKANA LETTER MO --> KATAKANA LETTER MO
+  MAKE_PAIR( 0xFF94, 0x30E4 ),	// HALFWIDTH KATAKANA LETTER YA --> KATAKANA LETTER YA
+  MAKE_PAIR( 0xFF95, 0x30E6 ),	// HALFWIDTH KATAKANA LETTER YU --> KATAKANA LETTER YU
+  MAKE_PAIR( 0xFF96, 0x30E8 ),	// HALFWIDTH KATAKANA LETTER YO --> KATAKANA LETTER YO
+  MAKE_PAIR( 0xFF97, 0x30E9 ),	// HALFWIDTH KATAKANA LETTER RA --> KATAKANA LETTER RA
+  MAKE_PAIR( 0xFF98, 0x30EA ),	// HALFWIDTH KATAKANA LETTER RI --> KATAKANA LETTER RI
+  MAKE_PAIR( 0xFF99, 0x30EB ),	// HALFWIDTH KATAKANA LETTER RU --> KATAKANA LETTER RU
+  MAKE_PAIR( 0xFF9A, 0x30EC ),	// HALFWIDTH KATAKANA LETTER RE --> KATAKANA LETTER RE
+  MAKE_PAIR( 0xFF9B, 0x30ED ),	// HALFWIDTH KATAKANA LETTER RO --> KATAKANA LETTER RO
+  MAKE_PAIR( 0xFF9C, 0x30EF ),	// HALFWIDTH KATAKANA LETTER WA --> KATAKANA LETTER WA
+  MAKE_PAIR( 0xFF9D, 0x30F3 ),	// HALFWIDTH KATAKANA LETTER N --> KATAKANA LETTER N
+  MAKE_PAIR( 0xFF9E, 0x3099 ),	// HALFWIDTH KATAKANA VOICED SOUND MARK --> COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+  MAKE_PAIR( 0xFF9F, 0x309A )	// HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK --> COMBINING KATAKANA-
+=====================================================================
+Found a 40 line (412 tokens) duplication in the following files: 
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MColumnAlias.cxx
+Starting at line 508 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/mozillasrc/MQueryHelper.cxx
+
+    static const ::rtl::OUString sAttributeNames[] =
+    {
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FirstName")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LastName")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("DisplayName")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NickName")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PrimaryEmail")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SecondEmail")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PreferMailFormat")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkPhone")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomePhone")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FaxNumber")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PagerNumber")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CellularNumber")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomeAddress")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomeAddress2")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomeCity")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomeState")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomeZipCode")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HomeCountry")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkAddress")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkAddress2")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkCity")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkState")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkZipCode")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WorkCountry")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("JobTitle")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Department")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Company")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WebPage1")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("WebPage2")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BirthYear")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BirthMonth")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BirthDay")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Custom1")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Custom2")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Custom3")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Custom4")),
+	    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Notes"))
+    };
+=====================================================================
+Found a 97 line (412 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx
+
+                break;
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+=====================================================================
+Found a 76 line (412 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+			break;
+	}
+}
+
+//================================================================================================== 
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+    bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+	// push this
+    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+        + aVtableSlot.offset;
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 97 line (412 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+=====================================================================
+Found a 76 line (412 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+			break;
+	}
+}
+
+//================================================================================================== 
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+    bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+	// push this
+    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+        + aVtableSlot.offset;
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 97 line (412 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+=====================================================================
+Found a 77 line (412 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/win/window.cxx
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/xine/window.cxx
+
+void Window::implLayoutVideoWindow()
+{
+    if( media::ZoomLevel_NOT_AVAILABLE != meZoomLevel )
+    {
+        awt::Size           aPrefSize( mrPlayer.getPreferredPlayerWindowSize() );
+        awt::Rectangle      aRect = getPosSize();
+        int                 nW = aRect.Width, nH = aRect.Height;
+        int                 nVideoW = nW, nVideoH = nH;
+        int                 nX = 0, nY = 0, nWidth = 0, nHeight = 0;
+        bool                bDone = false, bZoom = false;
+
+        if( media::ZoomLevel_ORIGINAL == meZoomLevel )
+        {
+            bZoom = true;
+        }
+        else if( media::ZoomLevel_ZOOM_1_TO_4 == meZoomLevel )
+        {
+            aPrefSize.Width >>= 2;
+            aPrefSize.Height >>= 2;
+            bZoom = true;
+        }
+        else if( media::ZoomLevel_ZOOM_1_TO_2 == meZoomLevel )
+        {
+            aPrefSize.Width >>= 1;
+            aPrefSize.Height >>= 1;
+            bZoom = true;
+        }
+        else if( media::ZoomLevel_ZOOM_2_TO_1 == meZoomLevel )
+        {
+            aPrefSize.Width <<= 1;
+            aPrefSize.Height <<= 1;
+            bZoom = true;
+        }
+        else if( media::ZoomLevel_ZOOM_4_TO_1 == meZoomLevel )
+        {
+            aPrefSize.Width <<= 2;
+            aPrefSize.Height <<= 2;
+            bZoom = true;
+        }
+        else if( media::ZoomLevel_FIT_TO_WINDOW == meZoomLevel )
+        {
+            nWidth = nVideoW;
+            nHeight = nVideoH;
+            bDone = true;
+        }
+
+        if( bZoom )
+        {
+            if( ( aPrefSize.Width <= nVideoW ) && ( aPrefSize.Height <= nVideoH ) )
+            {
+                nX = ( nVideoW - aPrefSize.Width ) >> 1;
+                nY = ( nVideoH - aPrefSize.Height ) >> 1;
+                nWidth = aPrefSize.Width;
+                nHeight = aPrefSize.Height;
+                bDone = true;
+            }
+        }
+
+        if( !bDone )
+        {
+            if( aPrefSize.Width > 0 && aPrefSize.Height > 0 && nVideoW > 0 && nVideoH > 0 )
+            {
+                double fPrefWH = (double) aPrefSize.Width / aPrefSize.Height;
+
+                if( fPrefWH < ( (double) nVideoW / nVideoH ) )
+                    nVideoW = (int)( nVideoH * fPrefWH );
+                else
+                    nVideoH = (int)( nVideoW / fPrefWH );
+
+                nX = ( nW - nVideoW ) >> 1;
+                nY = ( nH - nVideoH ) >> 1;
+                nWidth = nVideoW;
+                nHeight = nVideoH;
+            }
+            else
+                nX = nY = nWidth = nHeight = 0;
+        }
+=====================================================================
+Found a 9 line (411 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 390 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2470 - 2477
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2478 - 247f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2480 - 2487
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2488 - 248f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2490 - 2497
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2498 - 249f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a0 - 24a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a8 - 24af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x68, 0x24D0}, {0x68, 0x24D1}, // 24b0 - 24b7
+=====================================================================
+Found a 63 line (410 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Const.h
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Const.h
+
+static const sal_Char *kTestStr1PlusStr6  = "Sun Microsystems" "Java Technology";
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+
+static const sal_Int32 kTestStr1Len  = 16;
+static const sal_Int32 kTestStr2Len  = 32;
+static const sal_Int32 kTestStr3Len  = 16;
+static const sal_Int32 kTestStr4Len  = 16;
+static const sal_Int32 kTestStr5Len  = 16;
+static const sal_Int32 kTestStr6Len  = 15;
+static const sal_Int32 kTestStr7Len  = 4;
+static const sal_Int32 kTestStr8Len  = 12;
+static const sal_Int32 kTestStr9Len  = 32;
+static const sal_Int32 kTestStr10Len = 17;
+static const sal_Int32 kTestStr11Len = 17;
+static const sal_Int32 kTestStr12Len = 18;
+static const sal_Int32 kTestStr13Len = 19;
+static const sal_Int32 kTestStr14Len = 19;
+static const sal_Int32 kTestStr15Len = 20;
+static const sal_Int32 kTestStr16Len = 20;
+static const sal_Int32 kTestStr17Len = 22;
+static const sal_Int32 kTestStr18Len = 16;
+static const sal_Int32 kTestStr19Len = 22;
+static const sal_Int32 kTestStr20Len = 3;
+static const sal_Int32 kTestStr21Len = 3;
+static const sal_Int32 kTestStr22Len = 32;
+static const sal_Int32 kTestStr23Len = 16;
+static const sal_Int32 kTestStr24Len = 31;
+static const sal_Int32 kTestStr25Len = 0;
+static const sal_Int32 kTestStr26Len = 4;
+static const sal_Int32 kTestStr27Len = 1;
+static const sal_Int32 kTestStr28Len = 11;
+static const sal_Int32 kTestStr29Len = 18;
+static const sal_Int32 kTestStr30Len = 10;
+static const sal_Int32 kTestStr31Len = 16;
+static const sal_Int32 kTestStr32Len = 16;
+static const sal_Int32 kTestStr33Len = 1;
+static const sal_Int32 kTestStr34Len = 11;
+static const sal_Int32 kTestStr35Len = 11;
+static const sal_Int32 kTestStr36Len = 28;
+static const sal_Int32 kTestStr37Len = 20;
+static const sal_Int32 kTestStr38Len = 7;
+static const sal_Int32 kTestStr39Len = 33;
+static const sal_Int32 kTestStr40Len = 27;
+static const sal_Int32 kTestStr41Len = 3;
+static const sal_Int32 kTestStr42Len = 10;
+static const sal_Int32 kTestStr43Len = 13;
+static const sal_Int32 kTestStr44Len = 2;
+static const sal_Int32 kTestStr45Len = 8;
+static const sal_Int32 kTestStr46Len = 9;
+static const sal_Int32 kTestStr47Len = 4;
+static const sal_Int32 kTestStr48Len = 5;
+static const sal_Int32 kTestStr49Len = 15;
+static const sal_Int32 kTestStr50Len = 16;
+static const sal_Int32 kTestStr51Len = 5;
+static const sal_Int32 kTestStr52Len = 5;
+static const sal_Int32 kTestStr53Len = 5;
+static const sal_Int32 kTestStr54Len = 1;
+static const sal_Int32 kTestStr55Len = 1;
+static const sal_Int32 kTestStr56Len = 12;
+static const sal_Int32 kTestStr57Len = 12;
+static const sal_Int32 kTestStr58Len = 12;
+static const sal_Int32 kTestStr1PlusStr6Len = kTestStr1Len + kTestStr6Len;
+=====================================================================
+Found a 59 line (409 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+        span_image_resample_rgba_affine(alloc_type& alloc,
+                                        const rendering_buffer& src, 
+                                        const color_type& back_color,
+                                        interpolator_type& inter,
+                                        const image_filter_lut& filter) :
+            base_type(alloc, src, back_color, inter, filter) 
+        {}
+
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+
+            long_type fg[4];
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            color_type* span = base_type::allocator().span();
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+            int radius_x = (diameter * base_type::m_rx) >> 1;
+            int radius_y = (diameter * base_type::m_ry) >> 1;
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                base_type::interpolator().coordinates(&x, &y);
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr = y >> image_subpixel_shift;
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                                base_type::m_ry_inv) >> 
+                                    image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   base_type::m_rx_inv) >> 
+                                       image_subpixel_shift;
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + (x_lr << 2);
+=====================================================================
+Found a 100 line (409 tokens) duplication in the following files: 
+Starting at line 2190 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 2576 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+void ScInterpreter::ScSkew()
+{
+	BYTE nParamCount = GetByte();
+	if ( !MustHaveParamCountMin( nParamCount, 1 )  )
+		return;
+	USHORT i;
+	double fSum    = 0.0;
+	double vSum    = 0.0;
+	std::vector<double> values;
+	double fCount  = 0.0;
+	double fVal = 0.0;
+	ScAddress aAdr;
+	ScRange aRange;
+	for (i = 0; i < nParamCount; i++)
+	{
+		switch (GetStackType())
+		{
+			case svDouble :
+			{
+				fVal = GetDouble();
+				fSum += fVal;
+				values.push_back(fVal);
+				fCount++;
+			}
+				break;
+			case svSingleRef :
+			{
+				PopSingleRef( aAdr );
+				ScBaseCell* pCell = GetCell( aAdr );
+				if (HasCellValueData(pCell))
+				{
+					fVal = GetCellValue( aAdr, pCell );
+					fSum += fVal;
+					values.push_back(fVal);
+					fCount++;
+				}
+			}
+			break;
+			case svDoubleRef :
+			{
+				PopDoubleRef( aRange );
+				USHORT nErr = 0;
+				ScValueIterator aValIter(pDok, aRange);
+				if (aValIter.GetFirst(fVal, nErr))
+				{
+					fSum += fVal;
+					values.push_back(fVal);
+					fCount++;
+					SetError(nErr);
+					while ((nErr == 0) && aValIter.GetNext(fVal, nErr))
+					{
+						fSum += fVal;
+						values.push_back(fVal);
+						fCount++;
+					}
+					SetError(nErr);
+				}
+			}
+			break;
+			case svMatrix :
+			{
+				ScMatrixRef pMat = PopMatrix();
+				if (pMat)
+				{
+                    SCSIZE nCount = pMat->GetElementCount();
+					if (pMat->IsNumeric())
+					{
+                        for (SCSIZE nElem = 0; nElem < nCount; nElem++)
+                        {
+                            fVal = pMat->GetDouble(nElem);
+                            fSum += fVal;
+                            values.push_back(fVal);
+                            fCount++;
+                        }
+					}
+					else
+					{
+                        for (SCSIZE nElem = 0; nElem < nCount; nElem++)
+                            if (!pMat->IsString(nElem))
+                            {
+                                fVal = pMat->GetDouble(nElem);
+                                fSum += fVal;
+                                values.push_back(fVal);
+                                fCount++;
+                            }
+					}
+				}
+			}
+			break;
+			default :
+				SetError(errIllegalParameter);
+			break;
+		}
+	}
+	
+	if (nGlobalError)
+	{
+		PushInt(0);
+		return;
+	}
+=====================================================================
+Found a 98 line (409 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hprophelp.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sprophelp.cxx
+
+}
+
+
+PropertyChgHelper::~PropertyChgHelper()
+{	
+}
+
+
+void PropertyChgHelper::AddAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->addPropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+void PropertyChgHelper::RemoveAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->removePropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+		 
+
+void PropertyChgHelper::LaunchEvent( const LinguServiceEvent &rEvt )
+{
+	cppu::OInterfaceIteratorHelper aIt( aLngSvcEvtListeners );
+	while (aIt.hasMoreElements())
+	{
+		Reference< XLinguServiceEventListener > xRef( aIt.next(), UNO_QUERY );
+		if (xRef.is())
+			xRef->processLinguServiceEvent( rEvt );
+	}
+}
+
+
+void SAL_CALL PropertyChgHelper::disposing( const EventObject& rSource ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	if (rSource.Source == xPropSet)
+	{
+		RemoveAsPropListener();
+		xPropSet = NULL;
+		aPropNames.realloc( 0 );
+	}
+}
+    
+	
+sal_Bool SAL_CALL 
+	PropertyChgHelper::addLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.addInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL 
+	PropertyChgHelper::removeLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxListener ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.removeInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+static const char *aSP[] =
+=====================================================================
+Found a 83 line (408 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/so_comp/services.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/splash/services_spl.cxx
+
+    FirstStart::interfaces,
+    NULL
+};	
+
+static Sequence<OUString>
+getSupportedServiceNames(int p) {
+    const char **names = pSupportedServices[p];
+    Sequence<OUString> aSeq;
+    for(int i = 0; names[i] != NULL; i++) {
+        aSeq.realloc(i+1);
+        aSeq[i] = OUString::createFromAscii(names[i]);
+    }
+    return aSeq;
+}   
+
+extern "C"
+{
+void SAL_CALL 
+component_getImplementationEnvironment(
+    const sal_Char** ppEnvironmentTypeName, 
+    uno_Environment**)
+{
+	*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+sal_Bool SAL_CALL 
+component_writeInfo(
+    void* pServiceManager, 
+    void* pRegistryKey)
+{
+    Reference<XMultiServiceFactory> xMan( 
+        reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+    Reference<XRegistryKey> xKey( 
+        reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
+
+    // iterate over service names and register them...
+    OUString aImpl;
+    const char* pServiceName = NULL;
+    const char* pImplName = NULL;
+    for (int i = 0; (pServices[i]!=NULL)&&(pImplementations[i]!=NULL); i++) {
+        pServiceName= pServices[i];
+        pImplName = pImplementations[i];
+        aImpl = OUString::createFromAscii("/") 
+              + OUString::createFromAscii(pImplName)
+              + OUString::createFromAscii("/UNO/SERVICES");
+        Reference<XRegistryKey> xNewKey = xKey->createKey(aImpl);
+        xNewKey->createKey(OUString::createFromAscii(pServiceName));
+    }
+	return sal_True;
+}
+
+void* SAL_CALL 
+component_getFactory(
+    const sal_Char* pImplementationName,
+    void* pServiceManager,
+    void*)
+{
+	// Set default return value for this operation - if it failed.
+    if  ( pImplementationName && pServiceManager )
+	{
+        Reference< XSingleServiceFactory > xFactory;
+        Reference< XMultiServiceFactory > xServiceManager( 
+            reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+    
+        // search implementation
+        for (int i = 0; (pImplementations[i]!=NULL); i++) {            
+            if ( strcmp(pImplementations[i], pImplementationName ) == 0 ) {
+                // found implementation
+			    xFactory = Reference<XSingleServiceFactory>(cppu::createSingleFactory(
+                    xServiceManager, OUString::createFromAscii(pImplementationName),
+                    pInstanceProviders[i], getSupportedServiceNames(i)));
+                if ( xFactory.is() ) {
+                    // Factory is valid - service was found.
+			        xFactory->acquire();
+			        return xFactory.get();
+		        }
+            }
+        } // for()
+	}
+	// Return with result of this operation.
+	return NULL;
+}
+} // extern "C"
+=====================================================================
+Found a 68 line (407 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1877 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+=====================================================================
+Found a 101 line (405 tokens) duplication in the following files: 
+Starting at line 5651 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 508 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+
+            if (bIsSimpleDrawingTextBox)
+            {
+                SdrObject::Free( pObj );
+                pObj = pOrgObj = 0;
+            }
+
+            // Distance of Textbox to it's surrounding Autoshape
+			INT32 nTextLeft = GetPropertyValue( DFF_Prop_dxTextLeft, 91440L);
+			INT32 nTextRight = GetPropertyValue( DFF_Prop_dxTextRight, 91440L );
+			INT32 nTextTop = GetPropertyValue( DFF_Prop_dyTextTop, 45720L  );
+			INT32 nTextBottom = GetPropertyValue( DFF_Prop_dyTextBottom, 45720L );
+
+			ScaleEmu( nTextLeft );
+			ScaleEmu( nTextRight );
+			ScaleEmu( nTextTop );
+			ScaleEmu( nTextBottom );
+
+            INT32 nTextRotationAngle=0;
+            bool bVerticalText = false;
+            if ( IsProperty( DFF_Prop_txflTextFlow ) )
+            {
+                MSO_TextFlow eTextFlow = (MSO_TextFlow)(GetPropertyValue(
+                    DFF_Prop_txflTextFlow) & 0xFFFF);
+                switch( eTextFlow )
+                {
+                    case mso_txflBtoT:
+                        nTextRotationAngle = 9000;
+                    break;
+                    case mso_txflVertN:
+                    case mso_txflTtoBN:
+                        nTextRotationAngle = 27000;
+                        break;
+                    case mso_txflTtoBA:
+                        bVerticalText = true;
+                    break;
+                    case mso_txflHorzA:
+                        bVerticalText = true;
+                        nTextRotationAngle = 9000;
+                    case mso_txflHorzN:
+                    default :
+                        break;
+                }
+            }
+
+            if (nTextRotationAngle)
+			{
+                while (nTextRotationAngle > 360000)
+                    nTextRotationAngle-=9000;
+                switch (nTextRotationAngle)
+                {
+                    case 9000:
+                        {
+                            long nWidth = rTextRect.GetWidth();
+                            rTextRect.Right() = rTextRect.Left() + rTextRect.GetHeight();
+                            rTextRect.Bottom() = rTextRect.Top() + nWidth;
+
+                            INT32 nOldTextLeft = nTextLeft;
+                            INT32 nOldTextRight = nTextRight;
+                            INT32 nOldTextTop = nTextTop;
+                            INT32 nOldTextBottom = nTextBottom;
+
+                            nTextLeft = nOldTextBottom;
+                            nTextRight = nOldTextTop;
+                            nTextTop = nOldTextLeft;
+                            nTextBottom = nOldTextRight;
+                        }
+                        break;
+                    case 27000:
+                        {
+                            long nWidth = rTextRect.GetWidth();
+                            rTextRect.Right() = rTextRect.Left() + rTextRect.GetHeight();
+                            rTextRect.Bottom() = rTextRect.Top() + nWidth;
+
+                            INT32 nOldTextLeft = nTextLeft;
+                            INT32 nOldTextRight = nTextRight;
+                            INT32 nOldTextTop = nTextTop;
+                            INT32 nOldTextBottom = nTextBottom;
+
+                            nTextLeft = nOldTextTop;
+                            nTextRight = nOldTextBottom;
+                            nTextTop = nOldTextRight;
+                            nTextBottom = nOldTextLeft;
+                        }
+                        break;
+                    default:
+                        break;
+                }
+			}
+
+            pTextObj = new SdrRectObj(OBJ_TEXT, rTextRect);
+            pTextImpRec = new SvxMSDffImportRec(*pImpRec);
+
+            // Die vertikalen Absatzeinrueckungen sind im BoundRect mit drin,
+            // hier rausrechnen
+            Rectangle aNewRect(rTextRect);
+			aNewRect.Bottom() -= nTextTop + nTextBottom;
+            aNewRect.Right() -= nTextLeft + nTextRight;
+
+			// Nur falls es eine einfache Textbox ist, darf der Writer
+			// das Objekt durch einen Rahmen ersetzen, ansonsten
+			if( bIsSimpleDrawingTextBox )
+=====================================================================
+Found a 114 line (405 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+
+                aIn.Ignore( 4 );
+
+				bArrayFormula = TRUE;
+				break;
+			case 0x03: // Addition								[312 264]
+				aStack >> nMerk0;
+				aPool <<  aStack << ocAdd << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x04: // Subtraction							[313 264]
+				// SECOMD-TOP minus TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocSub << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x05: // Multiplication						[313 264]
+				aStack >> nMerk0;
+				aPool << aStack << ocMul << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x06: // Division								[313 264]
+				// divide TOP by SECOND-TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocDiv << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x07: // Exponetiation							[313 265]
+				// raise SECOND-TOP to power of TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocPow << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x08: // Concatenation							[313 265]
+				// append TOP to SECOND-TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocAmpersand << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x09: // Less Than								[313 265]
+				// SECOND-TOP < TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocLess << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x0A: // Less Than or Equal					[313 265]
+				// SECOND-TOP <= TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocLessEqual << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x0B: // Equal									[313 265]
+				// SECOND-TOP == TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocEqual << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x0C: // Greater Than or Equal					[313 265]
+				// SECOND-TOP == TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocGreaterEqual << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x0D: // Greater Than							[313 265]
+				// SECOND-TOP == TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocGreater << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x0E: // Not Equal								[313 265]
+				// SECOND-TOP == TOP
+				aStack >> nMerk0;
+				aPool << aStack << ocNotEqual << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x0F: // Intersection							[314 265]
+				aStack >> nMerk0;
+				aPool << aStack << ocIntersect << nMerk0;
+				aPool >> aStack;
+				break;
+			case 0x10: // Union									[314 265]
+				// ocSep behelfsweise statt 'ocUnion'
+				aStack >> nMerk0;
+//#100928#      aPool << ocOpen << aStack << ocSep << nMerk0 << ocClose;
+                aPool << aStack << ocSep << nMerk0;
+					// doesn't fit exactly, but is more Excel-like
+				aPool >> aStack;
+				break;
+			case 0x11: // Range									[314 265]
+                PushRangeOperator();
+				break;
+			case 0x12: // Unary Plus							[312 264]
+                aPool << ocAdd << aStack;
+                aPool >> aStack;
+				break;
+			case 0x13: // Unary Minus							[312 264]
+				aPool << ocNegSub << aStack;
+				aPool >> aStack;
+				break;
+			case 0x14: // Percent Sign							[312 264]
+                aPool << aStack << ocPercentSign;
+				aPool >> aStack;
+				break;
+			case 0x15: // Parenthesis							[326 278]
+				aPool << ocOpen << aStack << ocClose;
+				aPool >> aStack;
+				break;
+			case 0x16: // Missing Argument						[314 266]
+				aPool << ocMissing;
+				aPool >> aStack;
+                GetTracer().TraceFormulaMissingArg();
+				break;
+			case 0x17: // String Constant						[314 266]
+				aIn >> nLen;		// und?
+                aString = aIn.ReadUniString( nLen );            // reads Grbit even if nLen==0
+=====================================================================
+Found a 76 line (405 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdate.cxx
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdbl.cxx
+
+				pVal->PutDouble( n );
+			else
+				SbxBase::SetError( SbxERR_NO_OBJECT );
+			break;
+		}
+		case SbxBYREF | SbxCHAR:
+			if( n > SbxMAXCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXCHAR;
+			}
+			else if( n < SbxMINCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINCHAR;
+			}
+			*p->pChar = (xub_Unicode) n; break;
+		case SbxBYREF | SbxBYTE:
+			if( n > SbxMAXBYTE )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXBYTE;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pByte = (BYTE) n; break;
+		case SbxBYREF | SbxINTEGER:
+		case SbxBYREF | SbxBOOL:
+			if( n > SbxMAXINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXINT;
+			}
+			else if( n < SbxMININT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMININT;
+			}
+			*p->pInteger = (INT16) n; break;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			if( n > SbxMAXUINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXUINT;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pUShort = (UINT16) n; break;
+		case SbxBYREF | SbxLONG:
+			if( n > SbxMAXLNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXLNG;
+			}
+			else if( n < SbxMINLNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINLNG;
+			}
+			*p->pLong = (INT32) n; break;
+		case SbxBYREF | SbxULONG:
+			if( n > SbxMAXULNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXULNG;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pULong = (UINT32) n; break;
+		case SbxBYREF | SbxSINGLE:
+			if( n > SbxMAXSNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXSNG;
+			}
+			else if( n < SbxMINSNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINSNG;
+			}
+=====================================================================
+Found a 89 line (404 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_color_gray.h
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_color_gray.h
+
+            a((value_type(a_) << 8) | c.a) {}
+
+        //--------------------------------------------------------------------
+        void clear()
+        {
+            v = a = 0;
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& transparent()
+        {
+            a = 0;
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        void opacity(double a_)
+        {
+            if(a_ < 0.0) a_ = 0.0;
+            if(a_ > 1.0) a_ = 1.0;
+            a = value_type(a_ * double(base_mask));
+        }
+
+        //--------------------------------------------------------------------
+        double opacity() const
+        {
+            return double(a) / double(base_mask);
+        }
+
+
+        //--------------------------------------------------------------------
+        const self_type& premultiply()
+        {
+            if(a == base_mask) return *this;
+            if(a == 0)
+            {
+                v = 0;
+                return *this;
+            }
+            v = value_type((calc_type(v) * a) >> base_shift);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& premultiply(unsigned a_)
+        {
+            if(a == base_mask && a_ >= base_mask) return *this;
+            if(a == 0 || a_ == 0)
+            {
+                v = a = 0;
+                return *this;
+            }
+            calc_type v_ = (calc_type(v) * a_) / a;
+            v = value_type((v_ > a_) ? a_ : v_);
+            a = value_type(a_);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        const self_type& demultiply()
+        {
+            if(a == base_mask) return *this;
+            if(a == 0)
+            {
+                v = 0;
+                return *this;
+            }
+            calc_type v_ = (calc_type(v) * base_mask) / a;
+            v = value_type((v_ > base_mask) ? base_mask : v_);
+            return *this;
+        }
+
+        //--------------------------------------------------------------------
+        self_type gradient(self_type c, double k) const
+        {
+            self_type ret;
+            calc_type ik = calc_type(k * base_size);
+            ret.v = value_type(calc_type(v) + (((calc_type(c.v) - v) * ik) >> base_shift));
+            ret.a = value_type(calc_type(a) + (((calc_type(c.a) - a) * ik) >> base_shift));
+            return ret;
+        }
+
+        //--------------------------------------------------------------------
+        static self_type no_color() { return self_type(0,0); }
+    };
+
+
+    //------------------------------------------------------------gray16_pre
+    inline gray16 gray16_pre(unsigned v, unsigned a = gray16::base_mask)
+=====================================================================
+Found a 93 line (402 tokens) duplication in the following files: 
+Starting at line 1859 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 2026 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+        = static_cast< Content * >( createNewContent( aContentInfo ).get() );
+    if ( !xTarget.is() )
+    {
+        uno::Any aProps
+            = uno::makeAny(beans::PropertyValue(
+                                  rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                                    "Folder")),
+                                  -1,
+                                  uno::makeAny(aId),
+                                  beans::PropertyState_DIRECT_VALUE));
+        ucbhelper::cancelCommandExecution(
+            ucb::IOErrorCode_CANT_CREATE,
+            uno::Sequence< uno::Any >(&aProps, 1),
+            xEnv,
+            rtl::OUString::createFromAscii(
+                "XContentCreator::createNewContent failed!" ),
+            this );
+        // Unreachable
+    }
+
+    //////////////////////////////////////////////////////////////////////
+    // 2) Copy data from source content to child content.
+    //////////////////////////////////////////////////////////////////////
+
+    uno::Sequence< beans::Property > aSourceProps
+                    = xSource->getPropertySetInfo( xEnv )->getProperties();
+    sal_Int32 nCount = aSourceProps.getLength();
+
+    if ( nCount )
+    {
+        sal_Bool bHadTitle = ( rInfo.NewTitle.getLength() == 0 );
+
+        // Get all source values.
+        uno::Reference< sdbc::XRow > xRow
+            = xSource->getPropertyValues( aSourceProps );
+
+        uno::Sequence< beans::PropertyValue > aValues( nCount );
+        beans::PropertyValue* pValues = aValues.getArray();
+
+        const beans::Property* pProps = aSourceProps.getConstArray();
+        for ( sal_Int32 n = 0; n < nCount; ++n )
+        {
+            const beans::Property& rProp  = pProps[ n ];
+            beans::PropertyValue&  rValue = pValues[ n ];
+
+            rValue.Name   = rProp.Name;
+            rValue.Handle = rProp.Handle;
+
+            if ( !bHadTitle && rProp.Name.equalsAsciiL(
+                                RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+            {
+                // Set new title instead of original.
+                bHadTitle = sal_True;
+                rValue.Value <<= rInfo.NewTitle;
+            }
+            else
+                rValue.Value
+                    = xRow->getObject( n + 1,
+                                       uno::Reference<
+                                            container::XNameAccess >() );
+
+            rValue.State = beans::PropertyState_DIRECT_VALUE;
+
+            if ( rProp.Attributes & beans::PropertyAttribute::REMOVABLE )
+            {
+                // Add Additional Core Property.
+                try
+                {
+                    xTarget->addProperty( rProp.Name,
+                                          rProp.Attributes,
+                                          rValue.Value );
+                }
+                catch ( beans::PropertyExistException const & )
+                {
+                }
+                catch ( beans::IllegalTypeException const & )
+                {
+                }
+                catch ( lang::IllegalArgumentException const & )
+                {
+                }
+            }
+        }
+
+        // Set target values.
+        xTarget->setPropertyValues( aValues, xEnv );
+    }
+
+    //////////////////////////////////////////////////////////////////////
+    // 3) Commit (insert) child.
+    //////////////////////////////////////////////////////////////////////
+
+    xTarget->insert( xSource->getInputStream(), rInfo.NameClash, xEnv );
+=====================================================================
+Found a 87 line (402 tokens) duplication in the following files: 
+Starting at line 564 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpresultsetbase.cxx
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/resultsetbase.cxx
+
+	if( aPropertyName == rtl::OUString::createFromAscii( "IsRowCountFinal" ) ||
+		aPropertyName == rtl::OUString::createFromAscii( "RowCount" ) )
+		return;
+    
+	throw beans::UnknownPropertyException();
+}
+
+
+uno::Any SAL_CALL ResultSetBase::getPropertyValue(
+	const rtl::OUString& PropertyName )
+	throw( beans::UnknownPropertyException,
+		   lang::WrappedTargetException,
+		   uno::RuntimeException)
+{
+	if( PropertyName == rtl::OUString::createFromAscii( "IsRowCountFinal" ) )
+	{
+		uno::Any aAny;
+		aAny <<= m_bRowCountFinal;
+		return aAny;
+	}
+	else if ( PropertyName == rtl::OUString::createFromAscii( "RowCount" ) )
+	{
+		uno::Any aAny;
+		sal_Int32 count = m_aItems.size();
+		aAny <<= count;
+		return aAny;
+	}
+	else
+		throw beans::UnknownPropertyException();
+}
+
+
+void SAL_CALL ResultSetBase::addPropertyChangeListener(
+	const rtl::OUString& aPropertyName,
+	const uno::Reference< beans::XPropertyChangeListener >& xListener )
+	throw( beans::UnknownPropertyException,
+		   lang::WrappedTargetException,
+		   uno::RuntimeException)
+{
+	if( aPropertyName == rtl::OUString::createFromAscii( "IsRowCountFinal" ) )
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		if ( ! m_pIsFinalListeners )
+			m_pIsFinalListeners =
+				new cppu::OInterfaceContainerHelper( m_aMutex );
+
+		m_pIsFinalListeners->addInterface( xListener );
+	}
+	else if ( aPropertyName == rtl::OUString::createFromAscii( "RowCount" ) )
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		if ( ! m_pRowCountListeners )
+			m_pRowCountListeners =
+				new cppu::OInterfaceContainerHelper( m_aMutex );
+		m_pRowCountListeners->addInterface( xListener );
+	}
+	else
+		throw beans::UnknownPropertyException();
+}
+
+
+void SAL_CALL ResultSetBase::removePropertyChangeListener(
+	const rtl::OUString& aPropertyName,
+	const uno::Reference< beans::XPropertyChangeListener >& aListener )
+	throw( beans::UnknownPropertyException,
+		   lang::WrappedTargetException,
+		   uno::RuntimeException)
+{
+	if( aPropertyName == rtl::OUString::createFromAscii( "IsRowCountFinal" ) &&
+		m_pIsFinalListeners )
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		m_pIsFinalListeners->removeInterface( aListener );
+	}
+	else if ( aPropertyName == rtl::OUString::createFromAscii( "RowCount" ) &&
+			  m_pRowCountListeners )
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		m_pRowCountListeners->removeInterface( aListener );
+	}
+	else
+		throw beans::UnknownPropertyException();
+}
+
+
+void SAL_CALL ResultSetBase::addVetoableChangeListener(
+	const rtl::OUString& PropertyName,
+=====================================================================
+Found a 116 line (402 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/xml2utf.cxx
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/fastsax/xml2utf.cxx
+
+		delete pbTempMem;
+	}
+
+	// set to correct unicode size
+	seqUnicode.realloc( nTargetCount );
+
+	return seqUnicode;
+}
+
+
+
+//----------------------------------------------
+//
+// Unicode2TextConverter
+//
+//----------------------------------------------
+Unicode2TextConverter::Unicode2TextConverter( const OString &sEncoding )
+{
+	rtl_TextEncoding encoding = rtl_getTextEncodingFromMimeCharset( sEncoding.getStr() );
+	if( RTL_TEXTENCODING_DONTKNOW == encoding ) {
+		m_bCanContinue = sal_False;
+		m_bInitialized = sal_False;
+	}
+	else {
+		init( encoding );
+	}
+
+}
+
+Unicode2TextConverter::Unicode2TextConverter( rtl_TextEncoding encoding )
+{
+	init( encoding );
+}
+
+
+Unicode2TextConverter::~Unicode2TextConverter()
+{
+	if( m_bInitialized ) {
+		rtl_destroyUnicodeToTextContext( m_convUnicode2Text , m_contextUnicode2Text );
+		rtl_destroyUnicodeToTextConverter( m_convUnicode2Text );
+	}
+}
+
+
+Sequence<sal_Int8> Unicode2TextConverter::convert(const sal_Unicode *puSource , sal_Int32 nSourceSize)
+{
+	sal_Unicode *puTempMem = 0;
+
+	if( m_seqSource.getLength() ) {
+		// For surrogates !
+		// put old rest and new byte sequence into one array
+		// In general when surrogates are used, they should be rarely
+		// cut off between two convert()-calls. So this code is used
+		// rarely and the extra copy is acceptable.
+		puTempMem = new sal_Unicode[ nSourceSize + m_seqSource.getLength()];
+		memcpy( puTempMem ,
+				m_seqSource.getConstArray() ,
+				m_seqSource.getLength() * sizeof( sal_Unicode ) );
+		memcpy(
+			&(puTempMem[ m_seqSource.getLength() ]) ,
+			puSource ,
+			nSourceSize*sizeof( sal_Unicode ) );
+		puSource = puTempMem;
+		nSourceSize += m_seqSource.getLength();
+
+		m_seqSource = Sequence< sal_Unicode > ();
+	}
+
+
+	sal_Size nTargetCount = 0;
+	sal_Size nSourceCount = 0;
+
+	sal_uInt32 uiInfo;
+	sal_Size nSrcCvtChars;
+
+	// take nSourceSize * 3 as preference
+	// this is an upper boundary for converting to utf8,
+	// which most often used as the target.
+	sal_Int32 nSeqSize =  nSourceSize * 3;
+
+	Sequence<sal_Int8> 	seqText( nSeqSize );
+	sal_Char *pTarget = (sal_Char *) seqText.getArray();
+	while( sal_True ) {
+
+		nTargetCount += rtl_convertUnicodeToText(
+									m_convUnicode2Text,
+									m_contextUnicode2Text,
+									&( puSource[nSourceCount] ),
+									nSourceSize - nSourceCount ,
+									&( pTarget[nTargetCount] ),
+									nSeqSize - nTargetCount,
+									RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT |
+									RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT ,
+									&uiInfo,
+									&nSrcCvtChars);
+		nSourceCount += nSrcCvtChars;
+
+		if( uiInfo & RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL ) {
+			nSeqSize = nSeqSize *2;
+			seqText.realloc( nSeqSize );  // double array size
+			pTarget = ( sal_Char * ) seqText.getArray();
+			continue;
+		}
+		break;
+	}
+
+	// for surrogates
+	if( uiInfo & RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL ) {
+		m_seqSource.realloc( nSourceSize - nSourceCount );
+		memcpy( m_seqSource.getArray() ,
+				&(puSource[nSourceCount]),
+				(nSourceSize - nSourceCount) * sizeof( sal_Unicode ) );
+	}
+
+	if( puTempMem ) {
+		delete puTempMem;
+=====================================================================
+Found a 86 line (401 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/solar/solar.c
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/solar.c
+
+	signal( SIGBUS,	SignalHandler );
+#else
+#endif
+	result = func( eT, p );
+	signal( SIGSEGV,	SIG_DFL );
+#ifdef UNX
+	signal( SIGBUS,	SIG_DFL );
+#else
+#endif
+  }
+
+  if ( bSignal )
+	return -1;
+  else
+	return 0;
+#endif
+}
+
+#endif
+
+
+int GetAtAddress( Type eT, void* p )
+{
+  switch ( eT )
+  {
+  case t_char:		return *((char*)p);
+  case t_short:		return *((short*)p);
+  case t_int:		return *((int*)p);
+  case t_long:		return *((long*)p);
+  case t_double:	return *((double*)p);
+  }
+  abort();
+}
+
+int SetAtAddress( Type eT, void* p )
+{
+  switch ( eT )
+  {
+  case t_char:		return *((char*)p)	= 0;
+  case t_short:		return *((short*)p)	= 0;
+  case t_int:		return *((int*)p)	= 0;
+  case t_long:		return *((long*)p)	= 0;
+  case t_double:	return *((double*)p)= 0;
+  }
+  abort();
+}
+
+char* TypeName( Type eT )
+{
+  switch ( eT )
+  {
+  case t_char:		return "char";
+  case t_short:		return "short";
+  case t_int:		return "int";
+  case t_long:		return "long";
+  case t_double:	return "double";
+  }
+  abort();
+}
+
+int CheckGetAccess( Type eT, void* p )
+{
+  int b;
+  b = -1 != check( (TestFunc)GetAtAddress, eT, p );
+#if OSL_DEBUG_LEVEL > 1
+  fprintf( stderr,
+		   "%s read %s at %p\n",
+		   (b? "can" : "can not" ), TypeName(eT), p );
+#endif
+  return b;
+}
+int CheckSetAccess( Type eT, void* p )
+{
+  int b;
+  b = -1 != check( (TestFunc)SetAtAddress, eT, p );
+#if OSL_DEBUG_LEVEL > 1
+  fprintf( stderr,
+		   "%s write %s at %p\n",
+		   (b? "can" : "can not" ), TypeName(eT), p );
+#endif
+  return b;
+}
+
+int GetAlignment( Type eT )
+{
+  char	a[ 16*8 ];
+=====================================================================
+Found a 92 line (401 tokens) duplication in the following files: 
+Starting at line 5778 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6077 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : pFontA(0), nMax(0)
+{
+    // Attention: MacWord-Documents have their Fontnames
+    // always in ANSI, even if eStructCharSet == CHARSET_MAC !!
+    if( rFib.lcbSttbfffn <= 2 )
+    {
+        ASSERT( !this, "Fonttabelle kaputt! (rFib.lcbSttbfffn < 2)" );
+        pFontA = 0;
+        nMax = 0;
+        return;
+    }
+
+    bool bVer67 = (8 > rFib.nVersion);
+
+    rSt.Seek( rFib.fcSttbfffn );
+
+    // allocate Font Array
+    BYTE* pA   = new BYTE[ rFib.lcbSttbfffn - 2 ];
+    WW8_FFN* p = (WW8_FFN*)pA;
+
+    if( !bVer67 )
+    {
+        // bVer8: read the count of strings in nMax
+        rSt >> nMax;
+    }
+
+    // Ver8:  skip undefined uint16
+    // Ver67: skip the herein stored total byte of structure
+    //        - we already got that information in rFib.lcbSttbfffn
+    rSt.SeekRel( 2 );
+
+    // read all font information
+    rSt.Read( pA, rFib.lcbSttbfffn - 2 );
+
+    if( bVer67 )
+    {
+        // try to figure out how many fonts are defined here
+        nMax = 0;
+        long nLeft = rFib.lcbSttbfffn - 2;
+        for(;;)
+        {
+            short nNextSiz;
+
+            nNextSiz = p->cbFfnM1 + 1;
+            if( nNextSiz > nLeft )
+                break;
+            nMax++;
+            nLeft -= nNextSiz;
+            if( nLeft < 1 )     // can we read the given ammount of bytes ?
+                break;
+            // increase p by nNextSiz Bytes
+            p = (WW8_FFN *)( ( (BYTE*)p ) + nNextSiz );
+        }
+    }
+
+    if( nMax )
+    {
+        // allocate Index Array
+        pFontA = new WW8_FFN[ nMax ];
+        p = pFontA;
+
+        if( bVer67 )
+        {
+            WW8_FFN_Ver6* pVer6 = (WW8_FFN_Ver6*)pA;
+            BYTE c2;
+            for(USHORT i=0; i<nMax; ++i, ++p)
+            {
+                p->cbFfnM1   = pVer6->cbFfnM1;
+                c2           = *(((BYTE*)pVer6) + 1);
+
+                p->prg       =  c2 & 0x02;
+                p->fTrueType = (c2 & 0x04) >> 2;
+                // ein Reserve-Bit ueberspringen
+                p->ff        = (c2 & 0x70) >> 4;
+
+                p->wWeight   = SVBT16ToShort( *(SVBT16*)&pVer6->wWeight );
+                p->chs       = pVer6->chs;
+                p->ibszAlt   = pVer6->ibszAlt;
+                /*
+                 #i8726# 7- seems to encode the name in the same encoding as
+                 the font, e.g load the doc in 97 and save to see the unicode
+                 ver of the asian fontnames in that example to confirm.
+                 */
+                rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs);
+                if ((eEnc == RTL_TEXTENCODING_SYMBOL) || (eEnc == RTL_TEXTENCODING_DONTKNOW))
+                    eEnc = RTL_TEXTENCODING_MS_1252;
+                p->sFontname = String(pVer6->szFfn, eEnc);
+                if (p->ibszAlt)
+                {
+                    p->sFontname.Append(';');
+                    p->sFontname += String(pVer6->szFfn+p->ibszAlt, eEnc);
+                }
+=====================================================================
+Found a 86 line (401 tokens) duplication in the following files: 
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/sal/typesconfig/typesconfig.c
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/solar.c
+
+	signal( SIGBUS,	SignalHandler );
+#else
+#endif
+	result = func( eT, p );
+	signal( SIGSEGV,	SIG_DFL );
+#ifdef UNX
+	signal( SIGBUS,	SIG_DFL );
+#else
+#endif
+  }
+
+  if ( bSignal )
+	return -1;
+  else
+	return 0;
+#endif
+}
+
+#endif
+
+
+int GetAtAddress( Type eT, void* p )
+{
+  switch ( eT )
+  {
+  case t_char:		return *((char*)p);
+  case t_short:		return *((short*)p);
+  case t_int:		return *((int*)p);
+  case t_long:		return *((long*)p);
+  case t_double:	return *((double*)p);
+  }
+  abort();
+}
+
+int SetAtAddress( Type eT, void* p )
+{
+  switch ( eT )
+  {
+  case t_char:		return *((char*)p)	= 0;
+  case t_short:		return *((short*)p)	= 0;
+  case t_int:		return *((int*)p)	= 0;
+  case t_long:		return *((long*)p)	= 0;
+  case t_double:	return *((double*)p)= 0;
+  }
+  abort();
+}
+
+char* TypeName( Type eT )
+{
+  switch ( eT )
+  {
+  case t_char:		return "char";
+  case t_short:		return "short";
+  case t_int:		return "int";
+  case t_long:		return "long";
+  case t_double:	return "double";
+  }
+  abort();
+}
+
+int CheckGetAccess( Type eT, void* p )
+{
+  int b;
+  b = -1 != check( (TestFunc)GetAtAddress, eT, p );
+#if OSL_DEBUG_LEVEL > 1
+  fprintf( stderr,
+		   "%s read %s at %p\n",
+		   (b? "can" : "can not" ), TypeName(eT), p );
+#endif
+  return b;
+}
+int CheckSetAccess( Type eT, void* p )
+{
+  int b;
+  b = -1 != check( (TestFunc)SetAtAddress, eT, p );
+#if OSL_DEBUG_LEVEL > 1
+  fprintf( stderr,
+		   "%s write %s at %p\n",
+		   (b? "can" : "can not" ), TypeName(eT), p );
+#endif
+  return b;
+}
+
+int GetAlignment( Type eT )
+{
+  char	a[ 16*8 ];
+=====================================================================
+Found a 57 line (401 tokens) duplication in the following files: 
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tempnam.c
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/tempnam.c
+
+	unsigned int _psp = rand();
+#endif
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q   = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 113 line (401 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+
+namespace
+{
+
+//==================================================================================================
+// The call instruction within the asm section of callVirtualMethod may throw
+// exceptions.  So that the compiler handles this correctly, it is important
+// that (a) callVirtualMethod might call dummy_can_throw_anything (although this
+// never happens at runtime), which in turn can throw exceptions, and (b)
+// callVirtualMethod is not inlined at its call site (so that any exceptions are
+// caught which are thrown from the instruction calling callVirtualMethod):
+void callVirtualMethod(
+    void * pAdjustedThisPtr,
+    sal_Int32 nVtableIndex,
+    void * pRegisterReturn,
+    typelib_TypeClass eReturnType,
+    sal_Int32 * pStackLongs,
+    sal_Int32 nStackLongs ) __attribute__((noinline));
+
+void callVirtualMethod(
+    void * pAdjustedThisPtr,
+    sal_Int32 nVtableIndex,
+    void * pRegisterReturn,
+    typelib_TypeClass eReturnType,
+    sal_Int32 * pStackLongs,
+    sal_Int32 nStackLongs )
+{
+	// parameter list is mixed list of * and values
+	// reference parameters are pointers
+    
+	OSL_ENSURE( pStackLongs && pAdjustedThisPtr, "### null ptr!" );
+	OSL_ENSURE( (sizeof(void *) == 4) && (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
+	OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
+    
+    // never called
+    if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
+
+	volatile long edx = 0, eax = 0; // for register returns
+    void * stackptr;
+	asm volatile (
+        "mov   %%esp, %6\n\t"
+		// copy values
+		"mov   %0, %%eax\n\t"
+		"mov   %%eax, %%edx\n\t"
+		"dec   %%edx\n\t"
+		"shl   $2, %%edx\n\t"
+		"add   %1, %%edx\n"
+		"Lcopy:\n\t"
+		"pushl 0(%%edx)\n\t"
+		"sub   $4, %%edx\n\t"
+		"dec   %%eax\n\t"
+		"jne   Lcopy\n\t"
+		// do the actual call
+		"mov   %2, %%edx\n\t"
+		"mov   0(%%edx), %%edx\n\t"
+		"mov   %3, %%eax\n\t"
+		"shl   $2, %%eax\n\t"
+		"add   %%eax, %%edx\n\t"
+		"mov   0(%%edx), %%edx\n\t"
+		"call  *%%edx\n\t"
+		// save return registers
+ 		"mov   %%eax, %4\n\t"
+ 		"mov   %%edx, %5\n\t"
+		// cleanup stack
+        "mov   %6, %%esp\n\t"
+		:
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
+          "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+        default:
+            break;
+	}
+}
+
+//================================================================================================== 
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+    bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+#ifdef BROKEN_ALLOCA
+  		(char *)malloc( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+=====================================================================
+Found a 42 line (400 tokens) duplication in the following files: 
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/propertyids.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/propertyids.cxx
+
+{
+		const sal_Char* getPROPERTY_QUERYTIMEOUT()			{ return	"QueryTimeOut"; }
+		const sal_Char* getPROPERTY_MAXFIELDSIZE()			{ return	"MaxFieldSize"; }
+		const sal_Char* getPROPERTY_MAXROWS()				{ return	"MaxRows"; }
+		const sal_Char* getPROPERTY_CURSORNAME()			{ return	"CursorName"; }
+		const sal_Char* getPROPERTY_RESULTSETCONCURRENCY()	{ return	"ResultSetConcurrency"; }
+		const sal_Char* getPROPERTY_RESULTSETTYPE()			{ return	"ResultSetType"; }
+		const sal_Char* getPROPERTY_FETCHDIRECTION()		{ return	"FetchDirection"; }
+		const sal_Char* getPROPERTY_FETCHSIZE()				{ return	"FetchSize"; }
+		const sal_Char* getPROPERTY_ESCAPEPROCESSING()		{ return	"EscapeProcessing"; }
+		const sal_Char* getPROPERTY_USEBOOKMARKS()			{ return	"UseBookmarks"; }
+															
+		const sal_Char* getPROPERTY_NAME()					{ return	"Name"; }
+		const sal_Char* getPROPERTY_TYPE()					{ return	"Type"; }
+		const sal_Char* getPROPERTY_TYPENAME()				{ return 	"TypeName"; }
+		const sal_Char* getPROPERTY_PRECISION()				{ return 	"Precision"; }
+		const sal_Char* getPROPERTY_SCALE()					{ return 	"Scale"; }
+		const sal_Char* getPROPERTY_ISNULLABLE()			{ return 	"IsNullable"; }
+		const sal_Char* getPROPERTY_ISAUTOINCREMENT()		{ return 	"IsAutoIncrement"; }
+		const sal_Char* getPROPERTY_ISROWVERSION()			{ return 	"IsRowVersion"; }
+		const sal_Char* getPROPERTY_DESCRIPTION()			{ return 	"Description"; }
+		const sal_Char* getPROPERTY_DEFAULTVALUE()			{ return 	"DefaultValue"; }
+																		
+		const sal_Char* getPROPERTY_REFERENCEDTABLE()		{ return 	"ReferencedTable"; }
+		const sal_Char* getPROPERTY_UPDATERULE()			{ return 	"UpdateRule"; }
+		const sal_Char* getPROPERTY_DELETERULE()			{ return 	"DeleteRule"; }
+		const sal_Char* getPROPERTY_CATALOG()				{ return 	"Catalog"; }
+		const sal_Char* getPROPERTY_ISUNIQUE()				{ return 	"IsUnique"; }
+		const sal_Char* getPROPERTY_ISPRIMARYKEYINDEX()		{ return 	"IsPrimaryKeyIndex"; }
+		const sal_Char* getPROPERTY_ISCLUSTERED()			{ return 	"IsClustered"; }
+		const sal_Char* getPROPERTY_ISASCENDING()			{ return 	"IsAscending"; }
+		const sal_Char* getPROPERTY_SCHEMANAME()			{ return 	"SchemaName"; }
+		const sal_Char* getPROPERTY_CATALOGNAME()			{ return 	"CatalogName"; }
+		const sal_Char* getPROPERTY_COMMAND()				{ return 	"Command"; }
+		const sal_Char* getPROPERTY_CHECKOPTION()			{ return 	"CheckOption"; }
+		const sal_Char* getPROPERTY_PASSWORD()				{ return 	"Password"; }
+		const sal_Char* getPROPERTY_RELATEDCOLUMN()			{ return 	"RelatedColumn"; }
+																		
+		const sal_Char* getSTAT_INVALID_INDEX()				{ return 	"Invalid descriptor index"; }
+																		
+		const sal_Char* getPROPERTY_FUNCTION()				{ return 	"Function"; }
+		const sal_Char* getPROPERTY_TABLENAME()				{ return 	"TableName"; }
+=====================================================================
+Found a 14 line (398 tokens) duplication in the following files: 
+Starting at line 5223 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 5835 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u mcs6x11_mono[] = 
+    {
+        11, 3, 32, 128-32,
+        0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+        0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+        0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+        0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+        0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+        0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+        0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+        0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+        0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+        0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+        0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+=====================================================================
+Found a 14 line (398 tokens) duplication in the following files: 
+Starting at line 3693 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 3999 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u mcs11_prop_condensed[] = 
+    {
+        11, 2, 32, 128-32,
+        0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+        0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+        0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+        0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+        0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+        0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+        0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+        0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+        0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+        0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+        0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+=====================================================================
+Found a 15 line (398 tokens) duplication in the following files: 
+Starting at line 939 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 1551 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u gse6x9[] = 
+    {
+        9, 0, 32, 128-32,
+
+        0x00,0x00,0x0a,0x00,0x14,0x00,0x1e,0x00,0x28,0x00,0x32,0x00,0x3c,0x00,0x46,0x00,0x50,0x00,
+        0x5a,0x00,0x64,0x00,0x6e,0x00,0x78,0x00,0x82,0x00,0x8c,0x00,0x96,0x00,0xa0,0x00,0xaa,0x00,
+        0xb4,0x00,0xbe,0x00,0xc8,0x00,0xd2,0x00,0xdc,0x00,0xe6,0x00,0xf0,0x00,0xfa,0x00,0x04,0x01,
+        0x0e,0x01,0x18,0x01,0x22,0x01,0x2c,0x01,0x36,0x01,0x40,0x01,0x4a,0x01,0x54,0x01,0x5e,0x01,
+        0x68,0x01,0x72,0x01,0x7c,0x01,0x86,0x01,0x90,0x01,0x9a,0x01,0xa4,0x01,0xae,0x01,0xb8,0x01,
+        0xc2,0x01,0xcc,0x01,0xd6,0x01,0xe0,0x01,0xea,0x01,0xf4,0x01,0xfe,0x01,0x08,0x02,0x12,0x02,
+        0x1c,0x02,0x26,0x02,0x30,0x02,0x3a,0x02,0x44,0x02,0x4e,0x02,0x58,0x02,0x62,0x02,0x6c,0x02,
+        0x76,0x02,0x80,0x02,0x8a,0x02,0x94,0x02,0x9e,0x02,0xa8,0x02,0xb2,0x02,0xbc,0x02,0xc6,0x02,
+        0xd0,0x02,0xda,0x02,0xe4,0x02,0xee,0x02,0xf8,0x02,0x02,0x03,0x0c,0x03,0x16,0x03,0x20,0x03,
+        0x2a,0x03,0x34,0x03,0x3e,0x03,0x48,0x03,0x52,0x03,0x5c,0x03,0x66,0x03,0x70,0x03,0x7a,0x03,
+        0x84,0x03,0x8e,0x03,0x98,0x03,0xa2,0x03,0xac,0x03,0xb6,0x03,
+=====================================================================
+Found a 30 line (398 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/parseAFM.cxx
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/parseAFM.cxx
+
+    false, false,  true,  true, false, false, false, false, // 56-63
+    
+    false, false, false, false, false, false, false, false, // 64 -
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false, // 127
+    
+    false, false, false, false, false, false, false, false, // 128 -
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false, // 191
+
+    false, false, false, false, false, false, false, false, // 192 -
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false, // 255
+};
+static char *token( FileInputStream* stream, int& rLen )
+=====================================================================
+Found a 86 line (398 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/attributelist.cxx
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+
+sal_Int16 AttributeListImpl::getLength(void) throw  (RuntimeException)
+{
+	return m_pImpl->vecAttribute.size();
+}
+
+
+AttributeListImpl::AttributeListImpl( const AttributeListImpl &r )
+{
+	m_pImpl = new AttributeListImpl_impl;
+	*m_pImpl = *(r.m_pImpl);
+}
+
+OUString AttributeListImpl::getNameByIndex(sal_Int16 i) throw  (RuntimeException)
+{
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sName;
+	}
+	return OUString();
+}
+
+
+OUString AttributeListImpl::getTypeByIndex(sal_Int16 i) throw  (RuntimeException)
+{
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sType;
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByIndex(sal_Int16 i) throw  (RuntimeException)
+{
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 89 line (397 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hprophelp.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/prophelp.cxx
+
+}
+
+
+void PropertyChgHelper::AddAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->addPropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+void PropertyChgHelper::RemoveAsPropListener()
+{
+	if (xPropSet.is())
+	{
+		INT32 nLen = aPropNames.getLength();
+		const OUString *pPropName = aPropNames.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			if (pPropName[i].getLength())
+				xPropSet->removePropertyChangeListener( pPropName[i], this );
+		}
+	}
+}
+
+
+void PropertyChgHelper::LaunchEvent( const LinguServiceEvent &rEvt )
+{
+	cppu::OInterfaceIteratorHelper aIt( aLngSvcEvtListeners );
+	while (aIt.hasMoreElements())
+	{
+		Reference< XLinguServiceEventListener > xRef( aIt.next(), UNO_QUERY );
+		if (xRef.is())
+			xRef->processLinguServiceEvent( rEvt );
+	}
+}
+
+
+void SAL_CALL PropertyChgHelper::disposing( const EventObject& rSource )
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	if (rSource.Source == xPropSet)
+	{
+		RemoveAsPropListener();
+		xPropSet = NULL;
+		aPropNames.realloc( 0 );
+	}
+}
+
+
+sal_Bool SAL_CALL
+	PropertyChgHelper::addLinguServiceEventListener(
+			const Reference< XLinguServiceEventListener >& rxListener )
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.addInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL
+	PropertyChgHelper::removeLinguServiceEventListener(
+			const Reference< XLinguServiceEventListener >& rxListener )
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	BOOL bRes = FALSE;
+	if (rxListener.is())
+	{
+		INT32	nCount = aLngSvcEvtListeners.getLength();
+		bRes = aLngSvcEvtListeners.removeInterface( rxListener ) != nCount;
+	}
+	return bRes;
+}
+=====================================================================
+Found a 128 line (397 tokens) duplication in the following files: 
+Starting at line 1653 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1247 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+int yyFlexLexer::yy_get_next_buffer()
+	{
+	register char *dest = yy_current_buffer->yy_ch_buf;
+	register char *source = yytext_ptr;
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( yy_current_buffer->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+	else
+		{
+		int num_to_read =
+			yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = yy_current_buffer;
+
+			int yy_c_buf_p_offset =
+				(int) (yy_c_buf_p - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				int new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yy_flex_realloc( (void *) b->yy_ch_buf,
+							 b->yy_buf_size + 2 );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = yy_current_buffer->yy_buf_size -
+						number_to_move - 1;
+#endif
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+			yy_n_chars, num_to_read );
+
+		yy_current_buffer->yy_n_chars = yy_n_chars;
+		}
+
+	if ( yy_n_chars == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart( yyin );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			yy_current_buffer->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	yy_n_chars += number_to_move;
+	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+	return ret_val;
+	}
+=====================================================================
+Found a 105 line (397 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Aservices.cxx
+
+	OSL_ENSURE(xNewKey.is(), "ADO::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+			ODriver::getImplementationName_Static(),
+			ODriver::getSupportedServiceNames_Static(), xKey);
+
+		return sal_True;
+	}
+	catch (::com::sun::star::registry::InvalidRegistryException& )
+	{
+		OSL_ENSURE(sal_False, "ODBC::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+	}
+
+	return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+					const sal_Char* pImplementationName,
+					void* pServiceManager,
+					void* /*pRegistryKey*/)
+{
+	void* pRet = 0;
+	if (pServiceManager)
+	{
+		ProviderRequest aReq(pServiceManager,pImplementationName);
+
+		aReq.CREATE_PROVIDER(
+			ODriver::getImplementationName_Static(),
+			ODriver::getSupportedServiceNames_Static(),
+			ODriver_CreateInstance, ::cppu::createSingleFactory)
+		;
+
+		if(aReq.xRet.is())
+			aReq.xRet->acquire();
+
+		pRet = aReq.getProvider();
+	}
+
+	return pRet;
+};
+=====================================================================
+Found a 65 line (397 tokens) duplication in the following files: 
+Starting at line 3341 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/classes/sbunoobj.cxx
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/eventattacher/source/eventattacher.cxx
+
+class InvocationToAllListenerMapper : public WeakImplHelper1< XInvocation >
+{
+public:
+	InvocationToAllListenerMapper( const Reference< XIdlClass >& ListenerType, 
+		const Reference< XAllListener >& AllListener, const Any& Helper );
+
+	// XInvocation
+    virtual Reference< XIntrospectionAccess > SAL_CALL getIntrospection(void) throw( RuntimeException );
+    virtual Any SAL_CALL invoke(const OUString& FunctionName, const Sequence< Any >& Params, Sequence< sal_Int16 >& OutParamIndex, Sequence< Any >& OutParam) 
+		throw( IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException );
+    virtual void SAL_CALL setValue(const OUString& PropertyName, const Any& Value) 
+		throw( UnknownPropertyException, CannotConvertException, InvocationTargetException, RuntimeException );
+    virtual Any SAL_CALL getValue(const OUString& PropertyName) throw( UnknownPropertyException, RuntimeException );
+    virtual sal_Bool SAL_CALL hasMethod(const OUString& Name) throw( RuntimeException );
+    virtual sal_Bool SAL_CALL hasProperty(const OUString& Name) throw( RuntimeException );
+
+private:
+	Reference< XIdlReflection >  m_xCoreReflection;
+	Reference< XAllListener >	 m_xAllListener;
+	Reference< XIdlClass >  	 m_xListenerType;
+	Any 						 m_Helper;
+};
+
+
+// Function to replace AllListenerAdapterService::createAllListerAdapter
+Reference< XInterface > createAllListenerAdapter
+(
+	const Reference< XInvocationAdapterFactory >& xInvocationAdapterFactory,
+	const Reference< XIdlClass >& xListenerType,
+	const Reference< XAllListener >& xListener,
+	const Any& Helper
+)
+{
+	Reference< XInterface > xAdapter;
+	if( xInvocationAdapterFactory.is() && xListenerType.is() && xListener.is() )
+	{
+	   Reference< XInvocation >	xInvocationToAllListenerMapper =
+			(XInvocation*)new InvocationToAllListenerMapper( xListenerType, xListener, Helper );
+		Type aListenerType( xListenerType->getTypeClass(), xListenerType->getName());
+		xAdapter = xInvocationAdapterFactory->createAdapter( xInvocationToAllListenerMapper, aListenerType );
+	}
+	return xAdapter;
+}
+
+
+//--------------------------------------------------------------------------------------------------
+// InvocationToAllListenerMapper
+InvocationToAllListenerMapper::InvocationToAllListenerMapper
+	( const Reference< XIdlClass >& ListenerType, const Reference< XAllListener >& AllListener, const Any& Helper )
+		: m_xAllListener( AllListener )
+		, m_xListenerType( ListenerType )
+		, m_Helper( Helper )
+{
+}
+
+//*************************************************************************
+Reference< XIntrospectionAccess > SAL_CALL InvocationToAllListenerMapper::getIntrospection(void) 
+	throw( RuntimeException )
+{
+	return Reference< XIntrospectionAccess >();
+}
+
+//*************************************************************************
+Any SAL_CALL InvocationToAllListenerMapper::invoke(const OUString& FunctionName, const Sequence< Any >& Params, 
+	Sequence< sal_Int16 >& , Sequence< Any >& ) 
+=====================================================================
+Found a 136 line (396 tokens) duplication in the following files: 
+Starting at line 1217 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unofored.cxx
+
+	return rEditEngine.CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
+}
+
+USHORT GetSvxEditEngineItemState( EditEngine& rEditEngine, const ESelection& rSel, USHORT nWhich )
+{
+	EECharAttribArray aAttribs;
+
+	const SfxPoolItem*	pLastItem = NULL;
+
+	SfxItemState eState = SFX_ITEM_DEFAULT;
+
+	// check all paragraphs inside the selection
+	for( USHORT nPara = rSel.nStartPara; nPara <= rSel.nEndPara; nPara++ )
+	{
+		SfxItemState eParaState = SFX_ITEM_DEFAULT;
+
+		// calculate start and endpos for this paragraph
+		USHORT nPos = 0;
+		if( rSel.nStartPara == nPara )
+			nPos = rSel.nStartPos;
+
+		USHORT nEndPos = rSel.nEndPos;
+		if( rSel.nEndPara != nPara )
+			nEndPos = rEditEngine.GetTextLen( nPara );
+
+
+		// get list of char attribs
+		rEditEngine.GetCharAttribs( nPara, aAttribs );
+
+		BOOL bEmpty = TRUE;		// we found no item inside the selektion of this paragraph
+		BOOL bGaps  = FALSE;	// we found items but theire gaps between them
+		USHORT nLastEnd = nPos;
+
+		const SfxPoolItem* pParaItem = NULL;
+
+		for( USHORT nAttrib = 0; nAttrib < aAttribs.Count(); nAttrib++ )
+		{
+			struct EECharAttrib aAttrib = aAttribs.GetObject( nAttrib );
+			DBG_ASSERT( aAttrib.pAttr, "GetCharAttribs gives corrupt data" );
+
+			const sal_Bool bEmptyPortion = aAttrib.nStart == aAttrib.nEnd;
+			if( (!bEmptyPortion && (aAttrib.nStart >= nEndPos)) || (bEmptyPortion && (aAttrib.nStart > nEndPos)) )
+				break;	// break if we are already behind our selektion
+
+			if( (!bEmptyPortion && (aAttrib.nEnd <= nPos)) || (bEmptyPortion && (aAttrib.nEnd < nPos)) )
+				continue;	// or if the attribute ends before our selektion
+
+			if( aAttrib.pAttr->Which() != nWhich )
+				continue; // skip if is not the searched item
+
+			// if we already found an item
+			if( pParaItem )
+			{
+				// ... and its different to this one than the state is dont care
+				if( *pParaItem != *aAttrib.pAttr )
+					return SFX_ITEM_DONTCARE;
+			}
+			else
+			{
+				pParaItem = aAttrib.pAttr;
+			}
+
+			if( bEmpty )
+				bEmpty = FALSE;
+
+			if( !bGaps && aAttrib.nStart > nLastEnd )
+				bGaps = TRUE;
+
+			nLastEnd = aAttrib.nEnd;
+		}
+
+		if( !bEmpty && !bGaps && nLastEnd < ( nEndPos - 1 ) )
+			bGaps = TRUE;
+/*
+		// since we have no portion with our item or if there were gaps
+		if( bEmpty || bGaps )
+		{
+			// we need to check the paragraph item
+			const SfxItemSet& rParaSet = rEditEngine.GetParaAttribs( nPara );
+			if( rParaSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				eState = SFX_ITEM_SET;
+				// get item from the paragraph
+				const SfxPoolItem* pTempItem = rParaSet.GetItem( nWhich );
+				if( pParaItem )
+				{
+					if( *pParaItem != *pTempItem )
+						return SFX_ITEM_DONTCARE;
+				} 
+				else
+				{
+					pParaItem = pTempItem;
+				}
+
+				// set if theres no last item or if its the same
+				eParaState = SFX_ITEM_SET;
+			}
+			else if( bEmpty )
+			{
+				eParaState = SFX_ITEM_DEFAULT;
+			}
+			else if( bGaps )
+			{
+				// gaps and item not set in paragraph, thats a dont care
+				return SFX_ITEM_DONTCARE;
+			}
+		}
+		else
+		{
+			eParaState = SFX_ITEM_SET;
+		}
+*/
+		if( bEmpty )
+			eParaState = SFX_ITEM_DEFAULT;
+		else if( bGaps )
+			eParaState = SFX_ITEM_DONTCARE;
+		else
+			eParaState = SFX_ITEM_SET;
+
+		// if we already found an item check if we found the same
+		if( pLastItem )
+		{
+			if( (pParaItem == NULL) || (*pLastItem != *pParaItem) )
+				return SFX_ITEM_DONTCARE;
+		}
+		else
+		{
+			pLastItem = pParaItem;
+			eState = eParaState;
+		}
+	}
+
+	return eState;
+}
+
+USHORT SvxEditEngineForwarder::GetItemState( const ESelection& rSel, USHORT nWhich ) const
+=====================================================================
+Found a 87 line (395 tokens) duplication in the following files: 
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 628 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+	const OUString& /*aTarget*/, const OUString& /*aData*/ )
+throw(	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadImagesDocumentHandler::setDocumentLocator(
+	const Reference< XLocator > &xLocator)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	m_xLocator = xLocator;
+}
+
+::rtl::OUString OReadImagesDocumentHandler::getErrorLineString()
+{
+	ResetableGuard aGuard( m_aLock );
+
+	char buffer[32];
+
+	if ( m_xLocator.is() )
+	{
+		snprintf( buffer, sizeof(buffer), "Line: %ld - ", m_xLocator->getLineNumber() );
+		return OUString::createFromAscii( buffer );
+	}
+	else
+		return OUString();
+}
+
+
+//_________________________________________________________________________________________________________________
+//	OWriteImagesDocumentHandler
+//_________________________________________________________________________________________________________________
+
+OWriteImagesDocumentHandler::OWriteImagesDocumentHandler(
+	const ImageListsDescriptor& aItems,
+	Reference< XDocumentHandler > rWriteDocumentHandler ) :
+    ThreadHelpBase( &Application::GetSolarMutex() ),
+	m_aImageListsItems( aItems ),
+	m_xWriteDocumentHandler( rWriteDocumentHandler )
+{
+	m_xEmptyList			= Reference< XAttributeList >( (XAttributeList *)new AttributeListImpl, UNO_QUERY );
+	m_aAttributeType		= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
+	m_aXMLImageNS			= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_IMAGE_PREFIX ));
+	m_aXMLXlinkNS			= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
+	m_aAttributeXlinkType	= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XLINK_TYPE ));
+	m_aAttributeValueSimple = OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XLINK_TYPE_VALUE ));
+}
+
+OWriteImagesDocumentHandler::~OWriteImagesDocumentHandler()
+{
+}
+
+void OWriteImagesDocumentHandler::WriteImagesDocument() throw
+( SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	m_xWriteDocumentHandler->startDocument();
+
+	// write DOCTYPE line!
+	Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
+	if ( xExtendedDocHandler.is() )
+	{
+		xExtendedDocHandler->unknown( OUString( RTL_CONSTASCII_USTRINGPARAM( IMAGES_DOCTYPE )) );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	}
+
+	AttributeListImpl* pList = new AttributeListImpl;
+	Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_IMAGE )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_IMAGE )) );
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
+
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGESCONTAINER )), pList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	if ( m_aImageListsItems.pImageList )
+	{
+		ImageListDescriptor* pImageList = m_aImageListsItems.pImageList;
+
+		for ( USHORT i = 0; i < m_aImageListsItems.pImageList->Count(); i++ )
+=====================================================================
+Found a 74 line (394 tokens) duplication in the following files: 
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 28 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+    Tokenrow *def, *args;
+	static uchar location[(PATH_MAX + 8) * NINC], *cp;
+
+    tp = trp->tp + 1;
+    if (tp >= trp->lp || tp->type != NAME)
+    {
+        error(ERROR, "#defined token is not a name");
+        return;
+    }
+    np = lookup(tp, 1);
+    if (np->flag & ISUNCHANGE)
+    {
+        error(ERROR, "#defined token %t can't be redefined", tp);
+        return;
+    }
+    /* collect arguments */
+    tp += 1;
+    args = NULL;
+    if (tp < trp->lp && tp->type == LP && tp->wslen == 0)
+    {
+        /* macro with args */
+        int narg = 0;
+
+        tp += 1;
+        args = new(Tokenrow);
+        maketokenrow(2, args);
+        if (tp->type != RP)
+        {
+            int err = 0;
+
+            for (;;)
+            {
+                Token *atp;
+
+                if (tp->type != NAME)
+                {
+                    err++;
+                    break;
+                }
+                if (narg >= args->max)
+                    growtokenrow(args);
+                for (atp = args->bp; atp < args->lp; atp++)
+                    if (atp->len == tp->len
+                        && strncmp((char *) atp->t, (char *) tp->t, tp->len) == 0)
+                        error(ERROR, "Duplicate macro argument");
+                *args->lp++ = *tp;
+                narg++;
+                tp += 1;
+                if (tp->type == RP)
+                    break;
+                if (tp->type != COMMA)
+                {
+                    err++;
+                    break;
+                }
+                tp += 1;
+            }
+            if (err)
+            {
+                error(ERROR, "Syntax error in macro parameters");
+                return;
+            }
+        }
+        tp += 1;
+    }
+    trp->tp = tp;
+    if (((trp->lp) - 1)->type == NL)
+        trp->lp -= 1;
+    def = normtokenrow(trp);
+    if (np->flag & ISDEFINED)
+    {
+        if (comparetokens(def, np->vp)
+            || (np->ap == NULL) != (args == NULL)
+            || (np->ap && comparetokens(args, np->ap)))
+=====================================================================
+Found a 69 line (394 tokens) duplication in the following files: 
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propertysethelper.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/property/propertysethelper.cxx
+
+	delete mp;
+}
+
+// XPropertySet
+Reference< XPropertySetInfo > SAL_CALL PropertySetHelper::getPropertySetInfo(  ) throw(RuntimeException)
+{
+	return mp->mpInfo;
+}
+
+void SAL_CALL PropertySetHelper::setPropertyValue( const ::rtl::OUString& aPropertyName, const Any& aValue ) throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+{
+	PropertyMapEntry* aEntries[2];
+	aEntries[0] = mp->find( aPropertyName );
+
+	if( NULL == aEntries[0] )
+		throw UnknownPropertyException();
+
+	aEntries[1] = NULL;
+
+	_setPropertyValues( (const PropertyMapEntry**)aEntries, &aValue );
+}
+
+Any SAL_CALL PropertySetHelper::getPropertyValue( const ::rtl::OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+{
+	PropertyMapEntry* aEntries[2];
+	aEntries[0] = mp->find( PropertyName );
+
+	if( NULL == aEntries[0] )
+		throw UnknownPropertyException();
+
+	aEntries[1] = NULL;
+
+	Any aAny;
+	_getPropertyValues( (const PropertyMapEntry**)aEntries, &aAny );
+
+	return aAny;
+}
+
+void SAL_CALL PropertySetHelper::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, const Reference< XPropertyChangeListener >& /*xListener*/ ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+{
+	// todo
+}
+
+void SAL_CALL PropertySetHelper::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, const Reference< XPropertyChangeListener >& /*aListener*/ ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+{
+	// todo
+}
+
+void SAL_CALL PropertySetHelper::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, const Reference< XVetoableChangeListener >& /*aListener*/ ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+{
+	// todo
+}
+
+void SAL_CALL PropertySetHelper::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, const Reference< XVetoableChangeListener >& /*aListener*/ ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+{
+	// todo
+}
+
+// XMultiPropertySet
+void SAL_CALL PropertySetHelper::setPropertyValues( const Sequence< ::rtl::OUString >& aPropertyNames, const Sequence< Any >& aValues ) throw(PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+{
+	const sal_Int32 nCount = aPropertyNames.getLength();
+
+	if( nCount != aValues.getLength() )
+		throw IllegalArgumentException();
+
+	if( nCount )
+	{
+		PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
+=====================================================================
+Found a 81 line (394 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataPointProperties.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/FillProperties.cxx
+
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    //optional
+//    rOutProperties.push_back(
+//        Property( C2U( "FillBitmap" ),
+//                  FillProperties::PROP_FILL_BITMAP,
+//                  ::getCppuType( reinterpret_cast< const uno::Reference< awt::XBitmap > * >(0)),
+//                  beans::PropertyAttribute::BOUND
+//                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    //optional
+//    rOutProperties.push_back(
+//        Property( C2U( "FillBitmapURL" ),
+//                  FillProperties::PROP_FILL_BITMAP_URL,
+//                  ::getCppuType( reinterpret_cast< const ::rtl::OUString * >(0)),
+//                  beans::PropertyAttribute::BOUND
+//                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapOffsetX" ),
+                  FillProperties::PROP_FILL_BITMAP_OFFSETX,
+                  ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapOffsetY" ),
+                  FillProperties::PROP_FILL_BITMAP_OFFSETY,
+                  ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapPositionOffsetX" ),
+                  FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX,
+                  ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapPositionOffsetY" ),
+                  FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY,
+                  ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapRectanglePoint" ),
+                  FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT,
+                  ::getCppuType( reinterpret_cast< const drawing::RectanglePoint * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapLogicalSize" ),
+                  FillProperties::PROP_FILL_BITMAP_LOGICALSIZE,
+                  ::getCppuType( reinterpret_cast< const sal_Bool * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapSizeX" ),
+                  FillProperties::PROP_FILL_BITMAP_SIZEX,
+                  ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapSizeY" ),
+                  FillProperties::PROP_FILL_BITMAP_SIZEY,
+                  ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+
+    rOutProperties.push_back(
+        Property( C2U( "FillBitmapMode" ),
+                  FillProperties::PROP_FILL_BITMAP_MODE,
+                  ::getCppuType( reinterpret_cast< const drawing::BitmapMode * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+=====================================================================
+Found a 52 line (393 tokens) duplication in the following files: 
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 735 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        {0x7629, 4, L_FIX}, // "sprmTTextFlow" tap.rgtc[].fVerticaltap,
+                            // rgtc[].fBackwardtap, rgtc[].fRotateFont;0 or 10
+                            // or 10 or 1;word;
+        {0xD62A, 1, L_FIX}, // "sprmTDiagLine" ;;;
+        {0xD62B, 0, L_VAR}, // "sprmTVertMerge" tap.rgtc[].vertMerge
+        {0xD62C, 0, L_VAR}, // "sprmTVertAlign" tap.rgtc[].vertAlign
+        {0xCA78, 0, L_VAR}, // undocumented "sprmCDoubleLine ?"
+        {0x6649, 4, L_FIX}, // undocumented
+        {0xF614, 3, L_FIX}, // undocumented
+        {0xD612, 0, L_VAR}, // undocumented, new background colours.
+        {0xD613, 0, L_VAR}, // undocumented
+        {0xD61A, 0, L_VAR}, // undocumented
+        {0xD61B, 0, L_VAR}, // undocumented
+        {0xD61C, 0, L_VAR}, // undocumented
+        {0xD61D, 0, L_VAR}, // undocumented
+        {0xD632, 0, L_VAR}, // undocumented
+        {0xD634, 0, L_VAR}, // undocumented
+        {0xD238, 0, L_VAR}, // undocumented sep
+        {0xC64E, 0, L_VAR}, // undocumented
+        {0xC64F, 0, L_VAR}, // undocumented
+        {0xC650, 0, L_VAR}, // undocumented
+        {0xC651, 0, L_VAR}, // undocumented
+        {0xF661, 3, L_FIX}, // undocumented
+        {0x4873, 2, L_FIX}, // undocumented
+        {0x4874, 2, L_FIX}, // undocumented
+        {0x6463, 4, L_FIX}, // undocumented
+        {0x2461, 1, L_FIX}, // undoc, must be asian version of "sprmPJc"
+        {0x845D, 2, L_FIX}, // undoc, must be asian version of "sprmPDxaRight"
+        {0x845E, 2, L_FIX}, // undoc, must be asian version of "sprmPDxaLeft"
+        {0x8460, 2, L_FIX}, // undoc, must be asian version of "sprmPDxaLeft1"
+        {0x3615, 1, L_FIX}, // undocumented
+        {0x360D, 1, L_FIX}, // undocumented
+        {0x703A, 4, L_FIX}, // undocumented, sep, perhaps related to textgrids ?
+        {0x303B, 1, L_FIX}, // undocumented, sep
+        {0x244B, 1, L_FIX}, // undocumented, subtable "sprmPFInTable" equiv ?
+        {0x244C, 1, L_FIX}, // undocumented, subtable "sprmPFTtp" equiv ?
+        {0x940E, 2, L_FIX}, // undocumented
+        {0x940F, 2, L_FIX}, // undocumented
+        {0x9410, 2, L_FIX}, // undocumented
+        {0x6815, 4, L_FIX}, // undocumented
+        {0x6816, 4, L_FIX}, // undocumented
+        {0x6870, 4, L_FIX}, // undocumented, text colour
+        {0xC64D, 0, L_VAR}, // undocumented, para back colour
+        {0x6467, 4, L_FIX}, // undocumented
+        {0x646B, 4, L_FIX}, // undocumented
+        {0xF617, 3, L_FIX}, // undocumented
+        {0xD660, 0, L_VAR}, // undocumented, something to do with colour.
+        {0xD670, 0, L_VAR}, // undocumented, something to do with colour.
+        {0xCA71, 0, L_VAR}, // undocumented, text backcolour
+        {0x303C, 1, L_FIX}, // undocumented, sep
+        {0x245B, 1, L_FIX}, // undocumented, para autobefore
+        {0x245C, 1, L_FIX}, // undocumented, para autoafter
+=====================================================================
+Found a 97 line (393 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+	dofree(ntr.bp);
+
+	return;
+}
+
+/*
+ * Gather an arglist, starting in trp with tp pointing at the macro name.
+ * Return total number of tokens passed, stash number of args found.
+ * trp->tp is not changed relative to the tokenrow.
+ */
+int
+	gatherargs(Tokenrow * trp, Tokenrow ** atr, int *narg)
+{
+	int parens = 1;
+	int ntok = 0;
+	Token *bp, *lp;
+	Tokenrow ttr;
+	int ntokp;
+	int needspace;
+
+	*narg = -1;                         /* means that there is no macro
+										 * call */
+	/* look for the ( */
+	for (;;)
+	{
+		trp->tp++;
+		ntok++;
+		if (trp->tp >= trp->lp)
+		{
+			gettokens(trp, 0);
+			if ((trp->lp - 1)->type == END)
+			{
+				trp->lp -= 1;
+				trp->tp -= ntok;
+				return ntok;
+			}
+		}
+		if (trp->tp->type == LP)
+			break;
+		if (trp->tp->type != NL)
+			return ntok;
+	}
+	*narg = 0;
+	ntok++;
+	ntokp = ntok;
+	trp->tp++;
+	/* search for the terminating ), possibly extending the row */
+	needspace = 0;
+	while (parens > 0)
+	{
+		if (trp->tp >= trp->lp)
+			gettokens(trp, 0);
+		if (needspace)
+		{
+			needspace = 0;
+			/* makespace(trp); [rh] */
+		}
+		if (trp->tp->type == END)
+		{
+			trp->lp -= 1;
+			trp->tp -= ntok;
+			error(ERROR, "EOF in macro arglist");
+			return ntok;
+		}
+		if (trp->tp->type == NL)
+		{
+			trp->tp += 1;
+			adjustrow(trp, -1);
+			trp->tp -= 1;
+			/* makespace(trp); [rh] */
+			needspace = 1;
+			continue;
+		}
+		if (trp->tp->type == LP)
+			parens++;
+		else
+			if (trp->tp->type == RP)
+				parens--;
+		trp->tp++;
+		ntok++;
+	}
+	trp->tp -= ntok;
+	/* Now trp->tp won't move underneath us */
+	lp = bp = trp->tp + ntokp;
+	for (; parens >= 0; lp++)
+	{
+		if (lp->type == LP)
+		{
+            parens++;
+            continue;
+        }
+        if (lp->type == RP)
+            parens--;
+        if (lp->type == DSHARP)
+			lp->type = DSHARP1;         /* ## not special in arg */
+        if ((lp->type == COMMA && parens == 0) ||
+				( parens < 0 && ((lp - 1)->type != LP)))
+=====================================================================
+Found a 15 line (393 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2e80 - 2e8f
+=====================================================================
+Found a 29 line (392 tokens) duplication in the following files: 
+Starting at line 1308 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/test.cxx
+Starting at line 1341 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/test.cxx
+
+	nFlags = FrameSearchFlag::CHILDREN | FrameSearchFlag::SIBLINGS;
+	if	(
+			( xD->findFrame( DECLARE_ASCII("T1"		), nFlags )	!=	xT1		)	||
+			( xD->findFrame( DECLARE_ASCII("T2"		), nFlags )	!=	xT2		)	||
+			( xD->findFrame( DECLARE_ASCII("T3"		), nFlags )	!=	xT3		)	||
+			( xD->findFrame( DECLARE_ASCII("F11"	), nFlags )	!=	xF11	)	||
+			( xD->findFrame( DECLARE_ASCII("F12"	), nFlags )	!=	xF12	)	||
+			( xD->findFrame( DECLARE_ASCII("F21"	), nFlags )	!=	xF21	)	||
+			( xD->findFrame( DECLARE_ASCII("F22"	), nFlags )	!=	xF22	)	||
+			( xD->findFrame( DECLARE_ASCII("F211"	), nFlags )	!=	xF211	)	||
+			( xD->findFrame( DECLARE_ASCII("F212"	), nFlags )	!=	xF212	)	||
+			( xD->findFrame( DECLARE_ASCII("F2111"	), nFlags )	!=	xF2111	)	||
+			( xD->findFrame( DECLARE_ASCII("F2112"	), nFlags )	!=	xF2112	)	||
+			( xD->findFrame( DECLARE_ASCII("F2121"	), nFlags )	!=	xF2121	)	||
+			( xD->findFrame( DECLARE_ASCII("F2122"	), nFlags )	!=	xF2122	)	||
+			( xD->findFrame( DECLARE_ASCII("F21111"	), nFlags )	!=	xF21111	)	||
+			( xD->findFrame( DECLARE_ASCII("F21112"	), nFlags )	!=	xF21112	)	||
+			( xD->findFrame( DECLARE_ASCII("F21121"	), nFlags )	!=	xF21121	)	||
+			( xD->findFrame( DECLARE_ASCII("F21122"	), nFlags )	!=	xF21122	)	||
+			( xD->findFrame( DECLARE_ASCII("F21211"	), nFlags )	!=	xF21211	)	||
+			( xD->findFrame( DECLARE_ASCII("F21212"	), nFlags )	!=	xF21212	)	||
+			( xD->findFrame( DECLARE_ASCII("F21221"	), nFlags )	!=	xF21221	)	||
+			( xD->findFrame( DECLARE_ASCII("F21222"	), nFlags )	!=	xF21222	)	||
+			( xD->findFrame( DECLARE_ASCII("F221"	), nFlags )	!=	xF221	)	||
+			( xD->findFrame( DECLARE_ASCII("F2211"	), nFlags )	!=	xF2211	)	||
+			( xD->findFrame( DECLARE_ASCII("F22111"	), nFlags )	!=	xF22111	)
+		)
+	{
+		LOG_ERROR( "TestApplikation::impl_testTreeSearch()", "flat down search failed" )
+=====================================================================
+Found a 12 line (391 tokens) duplication in the following files: 
+Starting at line 4919 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 5531 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        10, 3, 32, 128-32,
+        0x00,0x00,0x0B,0x00,0x16,0x00,0x21,0x00,0x2C,0x00,0x37,0x00,0x42,0x00,0x4D,0x00,0x58,0x00,
+        0x63,0x00,0x6E,0x00,0x79,0x00,0x84,0x00,0x8F,0x00,0x9A,0x00,0xA5,0x00,0xB0,0x00,0xBB,0x00,
+        0xC6,0x00,0xD1,0x00,0xDC,0x00,0xE7,0x00,0xF2,0x00,0xFD,0x00,0x08,0x01,0x13,0x01,0x1E,0x01,
+        0x29,0x01,0x34,0x01,0x3F,0x01,0x4A,0x01,0x55,0x01,0x60,0x01,0x6B,0x01,0x76,0x01,0x81,0x01,
+        0x8C,0x01,0x97,0x01,0xA2,0x01,0xAD,0x01,0xB8,0x01,0xC3,0x01,0xCE,0x01,0xD9,0x01,0xE4,0x01,
+        0xEF,0x01,0xFA,0x01,0x05,0x02,0x10,0x02,0x1B,0x02,0x26,0x02,0x31,0x02,0x3C,0x02,0x47,0x02,
+        0x52,0x02,0x5D,0x02,0x68,0x02,0x73,0x02,0x7E,0x02,0x89,0x02,0x94,0x02,0x9F,0x02,0xAA,0x02,
+        0xB5,0x02,0xC0,0x02,0xCB,0x02,0xD6,0x02,0xE1,0x02,0xEC,0x02,0xF7,0x02,0x02,0x03,0x0D,0x03,
+        0x18,0x03,0x23,0x03,0x2E,0x03,0x39,0x03,0x44,0x03,0x4F,0x03,0x5A,0x03,0x65,0x03,0x70,0x03,
+        0x7B,0x03,0x86,0x03,0x91,0x03,0x9C,0x03,0xA7,0x03,0xB2,0x03,0xBD,0x03,0xC8,0x03,0xD3,0x03,
+        0xDE,0x03,0xE9,0x03,0xF4,0x03,0xFF,0x03,0x0A,0x04,0x15,0x04,
+=====================================================================
+Found a 12 line (391 tokens) duplication in the following files: 
+Starting at line 3695 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 5837 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        11, 3, 32, 128-32,
+        0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+        0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+        0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+        0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+        0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+        0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+        0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+        0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+        0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+        0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+        0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+=====================================================================
+Found a 9 line (391 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x15, 0x01B7}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0290 - 0297
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0298 - 029f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02a0 - 02a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02a8 - 02af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02b0 - 02b7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02b8 - 02bf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02c0 - 02c7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02c8 - 02cf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02d0 - 02d7
+=====================================================================
+Found a 60 line (390 tokens) duplication in the following files: 
+Starting at line 962 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1331 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::reload() 
+throw ( ::com::sun::star::uno::Exception, 
+        ::com::sun::star::uno::RuntimeException )
+{
+    ResetableGuard aGuard( m_aLock );
+
+    uno::Reference< uno::XInterface > xRefThis( static_cast< OWeakObject* >( this ));
+
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    CommandMap                   aOldUserCmdImageSet;   
+    std::vector< rtl::OUString > aNewUserCmdImageSet;
+    
+    if ( m_bModified )
+    {
+        uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+        uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+                
+        for ( sal_Int16 i = 0; i < sal_Int16( ImageType_COUNT ); i++ )
+        {
+            if ( !m_bDisposed && m_bUserImageListModified[i] )
+            {
+                std::vector< rtl::OUString > aOldUserCmdImageVector;
+                ImageList* pImageList = implts_getUserImageList( (ImageType)i );
+                pImageList->GetImageNames( aOldUserCmdImageVector );
+
+                // Fill hash map to speed up search afterwards
+                sal_uInt32 j( 0 );
+				for ( j = 0; j < aOldUserCmdImageVector.size(); j++ )
+                    aOldUserCmdImageSet.insert( CommandMap::value_type( aOldUserCmdImageVector[j], false ));
+                
+                // Attention: This can make the old image list pointer invalid!
+                implts_loadUserImages( (ImageType)i, m_xUserImageStorage, m_xUserBitmapsStorage );
+                pImageList = implts_getUserImageList( (ImageType)i );
+                pImageList->GetImageNames( aNewUserCmdImageSet );
+            
+                CmdToXGraphicNameAccess* pInsertedImages( 0 );
+                CmdToXGraphicNameAccess* pReplacedImages( 0 );
+                CmdToXGraphicNameAccess* pRemovedImages( 0 );
+
+                for ( j = 0; j < aNewUserCmdImageSet.size(); j++ )
+                {
+                    CommandMap::iterator pIter = aOldUserCmdImageSet.find( aNewUserCmdImageSet[j] );
+                    if ( pIter != aOldUserCmdImageSet.end() )
+                    {
+                        pIter->second = true; // mark entry as replaced
+                        if ( !pReplacedImages )
+                            pReplacedImages = new CmdToXGraphicNameAccess();
+                        pReplacedImages->addElement( aNewUserCmdImageSet[j], 
+                                                     pImageList->GetImage( aNewUserCmdImageSet[j] ).GetXGraphic() );
+                    }
+                    else
+                    {
+                        if ( !pInsertedImages )
+                            pInsertedImages = new CmdToXGraphicNameAccess();
+                        pInsertedImages->addElement( aNewUserCmdImageSet[j], 
+                                                     pImageList->GetImage( aNewUserCmdImageSet[j] ).GetXGraphic() );
+                    }
+                }
+=====================================================================
+Found a 15 line (389 tokens) duplication in the following files: 
+Starting at line 3889 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4053 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptSeal32Vert[] =
+{
+	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
+	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
+	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
+	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
+	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
+	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
+	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
+	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
+	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
+	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
+	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
+	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
+	{ 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
+=====================================================================
+Found a 67 line (389 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Const.h
+Starting at line 758 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Const.h
+
+        };
+static const sal_Unicode  expValChar[nCharCount] =
+        {
+            65,97,48,45,95,
+            21,27,29,
+            64,10,39,34,
+            0,0,83
+        };
+//------------------------------------------------------------------------
+static const sal_Int32 nDefaultCount=6;
+static const sal_Unicode input1Default[nDefaultCount] =
+        {
+            77,115,85,119,32,0
+        };
+static const sal_Int32 input2Default[nDefaultCount] =
+        {
+            0,0,0,0,0,0
+        };
+static const sal_Int32  expValDefault[nDefaultCount] =
+        {
+            4,9,-1,-1,3,-1
+        };
+//------------------------------------------------------------------------
+static const sal_Int32 nNormalCount=10;
+static const sal_Unicode input1Normal[nNormalCount] =
+        {
+            77,77,77,115,115,115,119,119,0,0
+        };
+static const sal_Int32 input2Normal[nNormalCount] =
+        {
+            0,32,80,0,13,20,0,80,0,32
+        };
+static const sal_Int32  expValNormal[nNormalCount] =
+        {
+            4,-1,-1,9,15,-1,-1,-1,-1,-1
+        };
+//------------------------------------------------------------------------
+static const sal_Int32 nlastDefaultCount=5;
+static const sal_Unicode input1lastDefault[nlastDefaultCount] =
+        {
+            77,115,119,32,0
+        };
+static const sal_Int32 input2lastDefault[nlastDefaultCount] =
+        {
+            31,31,31,31,31
+        };
+static const sal_Int32  expVallastDefault[nlastDefaultCount] =
+        {
+            4,15,-1,21,-1
+        };
+//------------------------------------------------------------------------
+static const sal_Int32 nlastNormalCount=8;
+static const sal_Unicode input1lastNormal[nlastNormalCount] =
+        {
+            77,77,77,115,115,119,119,0
+        };
+static const sal_Int32 input2lastNormal[nlastNormalCount] =
+        {
+            29,0,80,31,3,31,80,31
+        };
+static const sal_Int32  expVallastNormal[nlastNormalCount] =
+        {
+            4,-1,4,15,-1,-1,-1,-1
+        };
+//------------------------------------------------------------------------
+static const sal_Int32 nStrDefaultCount=6;
+static const sal_Unicode *input1StrDefault[nStrDefaultCount] =
+=====================================================================
+Found a 96 line (389 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/unix.c
+Starting at line 26 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_unix.c
+
+int Dflag = 0;                          /* add parameter check to delete op */
+int Cplusplus = 0;
+
+extern void setup_kwtab(void);
+
+void
+    setup(int argc, char **argv)
+{
+    int c, fd, i, n;
+    char *fp, *dp;
+    Tokenrow tr;
+
+    setup_kwtab();
+    while ((c = getopt(argc, argv, "NOPV:I:D:U:F:A:X:u:l:+")) != -1)
+        switch (c)
+        {
+            case 'N':
+                for (i = 0; i < NINCLUDE; i++)
+                    if (includelist[i].always == 1)
+                        includelist[i].deleted = 1;
+                break;
+
+            case 'I':
+                for (i = NINCLUDE - 2; i >= 0; i--)
+                {
+                    if (includelist[i].file == NULL)
+                    {
+                        includelist[i].always = 1;
+                        includelist[i].file = optarg;
+                        break;
+                    }
+                }
+                if (i < 0)
+                    error(FATAL, "Too many -I directives");
+                break;
+
+            case 'D':
+            case 'U':
+            case 'A':
+                setsource("<cmdarg>", -1, -1, optarg, 0);
+                maketokenrow(3, &tr);
+                gettokens(&tr, 1);
+                doadefine(&tr, c);
+                unsetsource();
+                break;
+
+            case 'P':                   /* Lineinfo */
+                Pflag++;
+                break;
+
+            case 'V':
+				for (n = 0; (c = optarg[n]) != '\0'; n++)
+					switch (c)
+					{
+						case 'i':
+							Iflag++;
+							break;
+
+						case 'm':
+			                Mflag = 1;
+							break;
+
+						case 'x':
+			                Mflag = 2;
+							break;
+
+						case 't':
+							Vflag++;
+							break;
+
+						case 'v':
+			                fprintf(stderr, "%s %s\n", argv[0], rcsid);
+							break;
+
+						default:								
+							error(WARNING, "Unknown verbose option %c", c);
+					}
+				break;
+
+            case 'X':
+				for (n = 0; (c = optarg[n]) != '\0'; n++)
+					switch (c)
+					{
+						case 'a':
+							Aflag++;
+							break;
+
+						case 'i':
+							Xflag++;
+							break;
+
+						case 'c':
+							Cflag++;
+							break;
+
+						case 'd':
+=====================================================================
+Found a 15 line (389 tokens) duplication in the following files: 
+Starting at line 1029 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2e80 - 2e8f
+=====================================================================
+Found a 14 line (389 tokens) duplication in the following files: 
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 14 line (389 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1029 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04c0 - 04cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04d0 - 04df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04e0 - 04ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 04f0 - 04ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0500 - 050f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 9 line (389 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf4, 0x0032}, {0x00, 0x0000}, {0x00, 0x0000}, // 0340 - 0347
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0348 - 034f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0350 - 0357
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0358 - 035f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0360 - 0367
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0368 - 036f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0370 - 0377
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0378 - 037f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x6a, 0x03AC}, {0x00, 0x0000}, // 0380 - 0387
+=====================================================================
+Found a 81 line (389 tokens) duplication in the following files: 
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+					 : : "m"(&nRegReturn) );
+			break;
+	}
+
+	if( bComplex )
+	{
+		__asm__( "add %i7, 4, %i7\n\t" );
+		// after call to complex return valued funcion there is an unimp instruction
+	}
+
+}
+//__________________________________________________________________________________________________
+
+int const codeSnippetSize = 56;
+unsigned char * codeSnippet(
+    unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
+    bool simpleRetType)
+{
+    sal_uInt32 index = functionIndex;
+    if (!simpleRetType) {
+        index |= 0x80000000;
+    }
+    unsigned int * p = reinterpret_cast< unsigned int * >(code);
+    OSL_ASSERT(sizeof (unsigned int) == 4);
+    // st %o0, [%sp+68]:
+    *p++ = 0xD023A044;
+    // st %o1, [%sp+72]:
+    *p++ = 0xD223A048;
+    // st %o2, [%sp+76]:
+    *p++ = 0xD423A04C;
+    // st %o3, [%sp+80]:
+    *p++ = 0xD623A050;
+    // st %o4, [%sp+84]:
+    *p++ = 0xD823A054;
+    // st %o5, [%sp+88]:
+    *p++ = 0xDA23A058;
+    // sethi %hi(index), %o0:
+    *p++ = 0x11000000 | (index >> 10);
+    // or %o0, %lo(index), %o0:
+    *p++ = 0x90122000 | (index & 0x3FF);
+    // sethi %hi(vtableOffset), %o2:
+    *p++ = 0x15000000 | (vtableOffset >> 10);
+    // or %o2, %lo(vtableOffset), %o2:
+    *p++ = 0x9412A000 | (vtableOffset & 0x3FF);
+    // sethi %hi(cpp_vtable_call), %o3:
+    *p++ = 0x17000000 | (reinterpret_cast< unsigned int >(cpp_vtable_call) >> 10);
+    // or %o3, %lo(cpp_vtable_call), %o3:
+    *p++ = 0x9612E000 | (reinterpret_cast< unsigned int >(cpp_vtable_call) & 0x3FF);
+    // jmpl %o3, %g0:
+    *p++ = 0x81C2C000;
+    // mov %sp, %o1:
+    *p++ = 0x9210000E;
+    OSL_ASSERT(
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0; //null
+    slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vTableOffset)
+=====================================================================
+Found a 39 line (388 tokens) duplication in the following files: 
+Starting at line 6657 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6978 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            nId = 0;
+    }
+
+    return nId;
+}
+
+// with tokens and length byte
+USHORT wwSprmParser::GetSprmSize(sal_uInt16 nId, const sal_uInt8* pSprm) const
+{
+    return GetSprmTailLen(nId, pSprm) + 1 + mnDelta + SprmDataOfs(nId);
+}
+
+BYTE wwSprmParser::SprmDataOfs(USHORT nId) const
+{
+    return GetSprmInfo(nId).nVari;
+}
+
+USHORT wwSprmParser::DistanceToData(USHORT nId) const
+{
+    return 1 + mnDelta + SprmDataOfs(nId);
+}
+
+SEPr::SEPr() :
+    bkc(2), fTitlePage(0), fAutoPgn(0), nfcPgn(0), fUnlocked(0), cnsPgn(0),
+    fPgnRestart(0), fEndNote(1), lnc(0), grpfIhdt(0), nLnnMod(0), dxaLnn(0),
+    dxaPgn(720), dyaPgn(720), fLBetween(0), vjc(0), dmBinFirst(0),
+    dmBinOther(0), dmPaperReq(0), fPropRMark(0), ibstPropRMark(0),
+    dttmPropRMark(0), dxtCharSpace(0), dyaLinePitch(0), clm(0), reserved1(0),
+    dmOrientPage(0), iHeadingPgn(0), pgnStart(1), lnnMin(0), wTextFlow(0),
+    reserved2(0), pgbApplyTo(0), pgbPageDepth(0), pgbOffsetFrom(0),
+    xaPage(12240), yaPage(15840), xaPageNUp(12240), yaPageNUp(15840),
+    dxaLeft(1800), dxaRight(1800), dyaTop(1440), dyaBottom(1440), dzaGutter(0),
+    dyaHdrTop(720), dyaHdrBottom(720), ccolM1(0), fEvenlySpaced(1),
+    reserved3(0), fBiDi(0), fFacingCol(0), fRTLGutter(0), fRTLAlignment(0),
+    dxaColumns(720), dxaColumnWidth(0), dmOrientFirst(0), fLayout(0),
+    reserved4(0)
+{
+    memset(rgdxaColumnWidthSpacing, 0, sizeof(rgdxaColumnWidthSpacing));
+}
+=====================================================================
+Found a 14 line (387 tokens) duplication in the following files: 
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0, 0, 0, 0,// 00f0 - 00ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0200 - 020f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0210 - 021f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0220 - 022f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0230 - 023f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0240 - 024f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0250 - 025f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0260 - 026f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0270 - 027f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0290 - 029f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 02a0 - 02af
+     0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0,// 02b0 - 02bf
+=====================================================================
+Found a 9 line (387 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf4, 0x0032}, {0x00, 0x0000}, {0x00, 0x0000}, // 0340 - 0347
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0348 - 034f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0350 - 0357
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0358 - 035f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0360 - 0367
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0368 - 036f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0370 - 0377
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0378 - 037f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x6a, 0x03AC}, {0x00, 0x0000}, // 0380 - 0387
+=====================================================================
+Found a 67 line (387 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/tos/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/tempnam.c
+
+static char  seed[4]="AAA";
+
+/* BSD stdio.h doesn't define P_tmpdir, so let's do it here */
+#ifndef P_tmpdir
+static char *P_tmpdir = "/tmp";
+#endif
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+     if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+	if( access( cpdir(p, P_tmpdir),   3) != 0 )
+	   if( access( cpdir(p, "/tmp"),  3) != 0 )
+	      return(NULL);
+
+   (void) strcat(p, "/");
+   if(prefix)
+   {
+      *(p+strlen(p)+5) = '\0';
+      (void)strncat(p, prefix, 5);
+   }
+
+   (void)strcat(p, seed);
+   (void)strcat(p, "XXXXXX");
+
+   q = seed;
+   while(*q == 'Z') *q++ = 'A';
+   ++*q;
+
+   if(*mktemp(p) == '\0') return(NULL);
+   return(p);
+}
+
+
+
+static char *
+cpdir(buf, str)
+char *buf;
+char *str;
+{
+   char *p;
+
+   if(str != NULL)
+   {
+      (void) strcpy(buf, str);
+      p = buf - 1 + strlen(buf);
+      if(*p == '/') *p = '\0';
+   }
+
+   return(buf);
+}
+=====================================================================
+Found a 82 line (386 tokens) duplication in the following files: 
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 674 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+        for (i = 0, cp = tp->t; (unsigned int)i < tp->len; i++)
+        {
+            if (instring && (*cp == '"' || *cp == '\\'))
+                *sp++ = '\\';
+            *sp++ = *cp++;
+        }
+    }
+    *sp++ = '"';
+    *sp = '\0';
+	sp = s;
+    t.len = strlen((char *) sp);
+    t.t = newstring(sp, t.len, 0);
+    return &tr;
+}
+
+/*
+ * expand a builtin name
+ */
+void
+    builtin(Tokenrow * trp, int biname)
+{
+    char *op;
+    Token *tp;
+    Source *s;
+
+    tp = trp->tp;
+    trp->tp++;
+    /* need to find the real source */
+    s = cursource;
+    while (s && s->fd == -1)
+        s = s->next;
+    if (s == NULL)
+        s = cursource;
+	/* most are strings */
+    tp->type = STRING;
+    if (tp->wslen)
+    {
+        *outptr++ = ' ';
+        tp->wslen = 1;
+    }
+    op = outptr;
+    *op++ = '"';
+    switch (biname)
+    {
+
+        case KLINENO:
+            tp->type = NUMBER;
+            op = outnum(op - 1, s->line);
+            break;
+
+        case KFILE:
+            {
+                char *src = s->filename;
+
+                while ((*op++ = *src++) != 0)
+                    if (src[-1] == '\\')
+                        *op++ = '\\';
+                op--;
+                break;
+            }
+
+        case KDATE:
+            strncpy(op, curtime + 4, 7);
+            strncpy(op + 7, curtime + 20, 4);
+            op += 11;
+            break;
+
+        case KTIME:
+            strncpy(op, curtime + 11, 8);
+            op += 8;
+            break;
+
+        default:
+            error(ERROR, "cpp botch: unknown internal macro");
+            return;
+    }
+    if (tp->type == STRING)
+        *op++ = '"';
+    tp->t = (uchar *) outptr;
+    tp->len = op - outptr;
+    outptr = op;
+}
+=====================================================================
+Found a 24 line (386 tokens) duplication in the following files: 
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 91 line (386 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+                rtti = iiFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+    void * pCppExc;
+    type_info * rtti;
+
+    {
+    // construct cpp exception object
+	typelib_TypeDescription * pTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
+    OSL_ASSERT( pTypeDescr );
+    if (! pTypeDescr)
+        terminate();
+    
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+	
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+        terminate();
+    }
+    
+	__cxa_throw( pCppExc, rtti, deleteException );
+}
+
+//==================================================================================================
+void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno )
+{
+    OSL_ENSURE( header, "### no exception header!!!" );
+    if (! header)
+        terminate();
+    
+	typelib_TypeDescription * pExcTypeDescr = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+	::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
+    OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" );
+    if (! pExcTypeDescr)
+        terminate();
+    
+    // construct uno exception any
+    ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
+    ::typelib_typedescription_release( pExcTypeDescr );
+}
+
+}
+=====================================================================
+Found a 88 line (385 tokens) duplication in the following files: 
+Starting at line 782 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+
+                                pFilter = aMatch.GetFilter4FilterName( aName );
+                            }
+                        }
+                    }
+				}
+			}
+		}
+	}
+
+    if ( nIndexOfInputStream == -1 && xStream.is() )
+    {
+        // if input stream wasn't part of the descriptor, now it should be, otherwise the content would be opend twice
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("InputStream");
+        lDescriptor[nPropertyCount].Value <<= xStream;
+        nPropertyCount++;
+    }
+
+    if ( nIndexOfContent == -1 && xContent.is() )
+    {
+        // if input stream wasn't part of the descriptor, now it should be, otherwise the content would be opend twice
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("UCBContent");
+        lDescriptor[nPropertyCount].Value <<= xContent;
+        nPropertyCount++;
+    }
+
+    if ( bReadOnly != bWasReadOnly )
+    {
+        if ( nIndexOfReadOnlyFlag == -1 )
+        {
+            lDescriptor.realloc( nPropertyCount + 1 );
+            lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("ReadOnly");
+            lDescriptor[nPropertyCount].Value <<= bReadOnly;
+            nPropertyCount++;
+        }
+        else
+            lDescriptor[nIndexOfReadOnlyFlag].Value <<= bReadOnly;
+    }
+
+	if ( !bRepairPackage && bRepairAllowed )
+	{
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("RepairPackage");
+        lDescriptor[nPropertyCount].Value <<= bRepairAllowed;
+        nPropertyCount++;
+
+		bOpenAsTemplate = sal_True;
+
+		// TODO/LATER: set progress bar that should be used
+	}
+
+	if ( bOpenAsTemplate )
+	{
+		if ( nIndexOfTemplateFlag == -1 )
+		{
+        	lDescriptor.realloc( nPropertyCount + 1 );
+        	lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("AsTemplate");
+        	lDescriptor[nPropertyCount].Value <<= bOpenAsTemplate;
+        	nPropertyCount++;
+		}
+		else
+        	lDescriptor[nIndexOfTemplateFlag].Value <<= bOpenAsTemplate;
+	}
+
+	if ( aDocumentTitle.getLength() )
+	{
+		// the title was set here
+		if ( nIndexOfDocumentTitle == -1 )
+		{
+        	lDescriptor.realloc( nPropertyCount + 1 );
+        	lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("DocumentTitle");
+        	lDescriptor[nPropertyCount].Value <<= aDocumentTitle;
+        	nPropertyCount++;
+		}
+		else
+        	lDescriptor[nIndexOfDocumentTitle].Value <<= aDocumentTitle;
+	}
+
+    if ( pFilter )
+        aTypeName = pFilter->GetTypeName();
+    else
+        aTypeName.Erase();
+
+    return aTypeName;
+}
+
+SFX_IMPL_SINGLEFACTORY( SdFilterDetect )
+=====================================================================
+Found a 24 line (385 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 80 line (383 tokens) duplication in the following files: 
+Starting at line 1448 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/embobj.cxx
+Starting at line 7421 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+
+                aSvrName.Assign( String( pBuf, (USHORT) nStrLen-1, gsl_getSystemTextEncoding() ) );
+                delete[] pBuf;
+			}
+			else
+				break;
+		}
+		rStm >> nDummy0;
+		rStm >> nDummy1;
+		rStm >> nDataLen;
+
+		nBytesRead += 6 * sizeof( UINT32 ) + nStrLen + nDataLen;
+
+		if( !rStm.IsEof() && nReadLen > nBytesRead && nDataLen )
+		{
+			if( xOle10Stm.Is() )
+			{
+				pData = new BYTE[ nDataLen ];
+				if( !pData )
+					return FALSE;
+
+				rStm.Read( pData, nDataLen );
+
+				// write to ole10 stream
+				*xOle10Stm << nDataLen;
+				xOle10Stm->Write( pData, nDataLen );
+				xOle10Stm = SotStorageStreamRef();
+
+				// set the compobj stream
+				ClsIDs* pIds;
+				for( pIds = aClsIDs; pIds->nId; pIds++ )
+				{
+					if( COMPARE_EQUAL == aSvrName.CompareToAscii( pIds->pSvrName ) )
+						break;
+				}
+//				SvGlobalName* pClsId = NULL;
+				String aShort, aFull;
+				if( pIds->nId )
+				{
+					// gefunden!
+					ULONG nCbFmt = SotExchange::RegisterFormatName( aSvrName );
+					rDest->SetClass( SvGlobalName( pIds->nId, 0, 0, 0xc0,0,0,0,0,0,0,0x46 ), nCbFmt,
+									String( pIds->pDspName, RTL_TEXTENCODING_ASCII_US ) );
+				}
+				else
+				{
+					ULONG nCbFmt = SotExchange::RegisterFormatName( aSvrName );
+					rDest->SetClass( SvGlobalName(), nCbFmt, aSvrName );
+				}
+
+                delete[] pData;
+			}
+			else if( nRecType == 5 && !pMtf )
+			{
+				ULONG nPos = rStm.Tell();
+				UINT16 sz[4];
+				rStm.Read( sz, 8 );
+				//rStm.SeekRel( 8 );
+				Graphic aGraphic;
+				if( ERRCODE_NONE == GraphicConverter::Import( rStm, aGraphic ) && aGraphic.GetType() )
+				{
+					const GDIMetaFile& rMtf = aGraphic.GetGDIMetaFile();
+					MakeContentStream( rDest, rMtf );
+					bMtfRead = TRUE;
+				}
+				// set behind the data
+				rStm.Seek( nPos + nDataLen );
+            }
+			else
+				rStm.SeekRel( nDataLen );
+		}
+	} while( !rStm.IsEof() && nReadLen >= nBytesRead );
+
+	if( !bMtfRead && pMtf )
+	{
+		MakeContentStream( rDest, *pMtf );
+		return TRUE;
+    }
+
+	return FALSE;
+}
+=====================================================================
+Found a 45 line (383 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconpol.cxx
+Starting at line 534 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconbez.cxx
+
+					aPoly.append(aInnerPoly);
+					break;
+				}
+				case SID_DRAW_POLYGON:
+				case SID_DRAW_POLYGON_NOFILL:
+				{
+					basegfx::B2DPolygon aInnerPoly;
+					const sal_Int32 nWdt(rRectangle.GetWidth());
+					const sal_Int32 nHgt(rRectangle.GetHeight());
+					
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Bottom()));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left() + (nWdt * 30) / 100, rRectangle.Top() + (nHgt * 70) / 100));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Top() + (nHgt * 15) / 100));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left() + (nWdt * 65) / 100, rRectangle.Top()));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left() + nWdt, rRectangle.Top() + (nHgt * 30) / 100));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left() + (nWdt * 80) / 100, rRectangle.Top() + (nHgt * 50) / 100));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left() + (nWdt * 80) / 100, rRectangle.Top() + (nHgt * 75) / 100));
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Bottom(), rRectangle.Right()));
+					
+					if(SID_DRAW_POLYGON_NOFILL == nID)
+					{
+						aInnerPoly.append(basegfx::B2DPoint(rRectangle.Center().X(), rRectangle.Bottom()));
+					}
+					else
+					{
+						aInnerPoly.setClosed(true);
+					}
+
+					aPoly.append(aInnerPoly);
+					break;
+				}
+			}
+
+			((SdrPathObj*)pObj)->SetPathPoly(aPoly);
+		}
+		else
+		{
+			DBG_ERROR("Object is NO path object");
+		}
+
+		pObj->SetLogicRect(rRectangle);
+	}
+
+	return pObj;
+}
+=====================================================================
+Found a 85 line (382 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/shapes/drawinglayeranimation.cxx
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/sdr/animation/ainfoscrolltext.cxx
+
+					double fZeroLogicAlternate(0.0), fOneLogicAlternate(1.0);
+					double fZeroRelative, fOneRelative, fInitRelative, fDistanceRelative;
+
+					if(ScrollHorizontal())
+					{
+						if(DoAlternate())
+						{
+							if(maPaintRectangleLogic.GetWidth() > maScrollRectangleLogic.GetWidth())
+							{
+								fZeroLogicAlternate = maScrollRectangleLogic.Right() - maPaintRectangleLogic.GetWidth();
+								fOneLogicAlternate = maScrollRectangleLogic.Left();
+							}
+							else
+							{
+								fZeroLogicAlternate = maScrollRectangleLogic.Left();
+								fOneLogicAlternate = maScrollRectangleLogic.Right() - maPaintRectangleLogic.GetWidth();
+							}
+						}
+						
+						fZeroLogic = maScrollRectangleLogic.Left() - maPaintRectangleLogic.GetWidth();
+						fOneLogic = maScrollRectangleLogic.Right();
+						fInitLogic = maPaintRectangleLogic.Left();
+					}
+					else
+					{
+						if(DoAlternate())
+						{
+							if(maPaintRectangleLogic.GetHeight() > maScrollRectangleLogic.GetHeight())
+							{
+								fZeroLogicAlternate = maScrollRectangleLogic.Bottom() - maPaintRectangleLogic.GetHeight();
+								fOneLogicAlternate = maScrollRectangleLogic.Top();
+							}
+							else
+							{
+								fZeroLogicAlternate = maScrollRectangleLogic.Top();
+								fOneLogicAlternate = maScrollRectangleLogic.Bottom() - maPaintRectangleLogic.GetHeight();
+							}
+						}
+						
+						fZeroLogic = maScrollRectangleLogic.Top() - maPaintRectangleLogic.GetHeight();
+						fOneLogic = maScrollRectangleLogic.Bottom();
+						fInitLogic = maPaintRectangleLogic.Top();
+					}
+
+					fDistanceLogic = fOneLogic - fZeroLogic;
+					fInitRelative = (fInitLogic - fZeroLogic) / fDistanceLogic;
+
+					if(DoAlternate())
+					{
+						fZeroRelative = (fZeroLogicAlternate - fZeroLogic) / fDistanceLogic;
+						fOneRelative = (fOneLogicAlternate - fZeroLogic) / fDistanceLogic;
+						fDistanceRelative = fOneRelative - fZeroRelative;
+					}
+					else
+					{
+						fZeroRelative = 0.0;
+						fOneRelative = 1.0;
+						fDistanceRelative = 1.0;
+					}
+
+					if(mnStartTime)
+					{
+						// Start time loop
+						ScrollTextAnimNode aStartNode(mnStartTime, 1L, 0.0, 0.0, mnStartTime, false);
+						maVector.push_back(aStartNode);
+					}
+
+					if(IsVisibleWhenStarted())
+					{
+						double fRelativeStartValue, fRelativeEndValue, fRelativeDistance;
+
+						if(DoScrollForward())
+						{
+							fRelativeStartValue = fInitRelative;
+							fRelativeEndValue = fOneRelative;
+							fRelativeDistance = fRelativeEndValue - fRelativeStartValue;
+						}
+						else
+						{
+							fRelativeStartValue = fInitRelative;
+							fRelativeEndValue = fZeroRelative;
+							fRelativeDistance = fRelativeStartValue - fRelativeEndValue;
+						}
+						
+						const double fNumberSteps = (fRelativeDistance * fDistanceLogic) / GetStepWidthLogic(100L);
+=====================================================================
+Found a 72 line (381 tokens) duplication in the following files: 
+Starting at line 1690 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1774 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+						int Line, const sal_Char* Entry, sal_uInt32 Len)
+{
+	if (pSection != NULL)
+	{
+		if (pSection->m_NoEntries >= pSection->m_MaxEntries)
+		{
+			if (pSection->m_Entries == NULL)
+			{
+				pSection->m_MaxEntries = ENTRIES_INI;
+				pSection->m_Entries = (osl_TProfileEntry *)malloc(
+								pSection->m_MaxEntries * sizeof(osl_TProfileEntry));
+			}
+			else
+			{
+				pSection->m_MaxEntries += ENTRIES_ADD;
+				pSection->m_Entries = (osl_TProfileEntry *)realloc(pSection->m_Entries,
+								pSection->m_MaxEntries * sizeof(osl_TProfileEntry));
+			}
+
+			if (pSection->m_Entries == NULL)
+			{
+				pSection->m_NoEntries  = 0;
+				pSection->m_MaxEntries = 0;
+				return (sal_False);
+			}
+		}
+
+		pSection->m_NoEntries++;
+
+		Entry = stripBlanks(Entry, &Len);
+		setEntry(pProfile, pSection, pSection->m_NoEntries - 1, Line,
+				 Entry, Len);
+
+		return (sal_True);
+	}
+
+	return (sal_False);
+}
+
+static void removeEntry(osl_TProfileSection *pSection, sal_uInt32 NoEntry)
+{
+	if (NoEntry < pSection->m_NoEntries)
+	{
+		if (pSection->m_NoEntries - NoEntry > 1)
+		{
+			memmove(&pSection->m_Entries[NoEntry],
+					&pSection->m_Entries[NoEntry + 1],
+					(pSection->m_NoEntries - NoEntry - 1) * sizeof(osl_TProfileEntry));
+			pSection->m_Entries[pSection->m_NoEntries - 1].m_Line=0;
+			pSection->m_Entries[pSection->m_NoEntries - 1].m_Offset=0;
+			pSection->m_Entries[pSection->m_NoEntries - 1].m_Len=0;
+		}
+
+		pSection->m_NoEntries--;
+	}
+
+	return;
+}
+
+static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* Section, sal_uInt32 Len)
+{
+	if (pProfile->m_NoSections >= pProfile->m_MaxSections)
+	{
+		if (pProfile->m_Sections == NULL)
+		{
+			pProfile->m_MaxSections = SECTIONS_INI;
+			pProfile->m_Sections = (osl_TProfileSection *)malloc(pProfile->m_MaxSections * sizeof(osl_TProfileSection));
+			memset(pProfile->m_Sections,0,pProfile->m_MaxSections * sizeof(osl_TProfileSection));
+		}
+		else
+		{
+			unsigned int index=0;
+=====================================================================
+Found a 64 line (381 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1776 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+=====================================================================
+Found a 80 line (380 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'U':
+=====================================================================
+Found a 93 line (379 tokens) duplication in the following files: 
+Starting at line 2702 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 1377 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_FTP );
+			::osl::SocketAddr saLocalSocketAddr;
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
+			//on Solaris, the error no is EACCES, but it has no mapped value, so getError() returned osl_Socket_E_InvalidError.
+#if defined(SOLARIS)
+			CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. ", 
+									osl_Socket_E_InvalidError == sSocket.getError( )  );
+#else
+			//while on Linux & Win32, the errno is EADDRNOTAVAIL, getError returned osl_Socket_E_AddrNotAvail.
+			
+			CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. Passed on Linux & Win32", 
+									osl_Socket_E_AddrNotAvail == sSocket.getError( )  );
+#endif
+		}
+
+		CPPUNIT_TEST_SUITE( getError );
+		CPPUNIT_TEST( getError_001 );
+		CPPUNIT_TEST( getError_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getError
+
+	
+
+	/** testing the methods:
+		inline oslSocket getHandle() const;
+	*/
+	
+	class getHandle : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+		void getHandle_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::Socket assignSocket = sSocket.getHandle();
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.", 
+									osl_Socket_TypeStream == assignSocket.getType( )  );
+		}
+	
+		void getHandle_002()
+		{
+			::osl::Socket sSocket( sHandle );
+			::osl::Socket assignSocket ( sSocket.getHandle( ) );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator", 
+									osl_Socket_TypeStream == assignSocket.getType( ) );
+		}
+
+		CPPUNIT_TEST_SUITE( getHandle );
+		CPPUNIT_TEST( getHandle_001 );
+		CPPUNIT_TEST( getHandle_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getHandle
+
+
+// -----------------------------------------------------------------------------
+
+
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::ctors, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::operators, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::close, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalAddr, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalPort, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalHost, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getPeer, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::bind, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isRecvReady, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isSendReady, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getType, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getOption, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::setOption, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::enableNonBlockingMode, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isNonBlockingMode, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::clearError, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getError, "osl_Socket");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getHandle, "osl_Socket"); 
+
+} // namespace osl_Socket
+=====================================================================
+Found a 46 line (378 tokens) duplication in the following files: 
+Starting at line 1983 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/fetab.cxx
+
+			_FndBox* pFndBox = &aFndBox;
+			while( 1 == pFndBox->GetLines().Count() &&
+					1 == pFndBox->GetLines()[0]->GetBoxes().Count() )
+			{
+				_FndBox* pTmp = pFndBox->GetLines()[0]->GetBoxes()[0];
+				if( pTmp->GetBox()->GetSttNd() )
+					break;		// das ist sonst zu weit
+				pFndBox = pTmp;
+			}
+
+			SwTableLine* pDelLine = pFndBox->GetLines()[
+							pFndBox->GetLines().Count()-1 ]->GetLine();
+			SwTableBox* pDelBox = pDelLine->GetTabBoxes()[
+								pDelLine->GetTabBoxes().Count() - 1 ];
+			while( !pDelBox->GetSttNd() )
+			{
+				SwTableLine* pLn = pDelBox->GetTabLines()[
+							pDelBox->GetTabLines().Count()-1 ];
+				pDelBox = pLn->GetTabBoxes()[ pLn->GetTabBoxes().Count() - 1 ];
+			}
+			SwTableBox* pNextBox = pDelLine->FindNextBox( pTblNd->GetTable(),
+															pDelBox, TRUE );
+			while( pNextBox &&
+					pNextBox->GetFrmFmt()->GetProtect().IsCntntProtected() )
+				pNextBox = pNextBox->FindNextBox( pTblNd->GetTable(), pNextBox );
+
+			if( !pNextBox )			// keine nachfolgende? dann die vorhergehende
+			{
+				pDelLine = pFndBox->GetLines()[ 0 ]->GetLine();
+				pDelBox = pDelLine->GetTabBoxes()[ 0 ];
+				while( !pDelBox->GetSttNd() )
+					pDelBox = pDelBox->GetTabLines()[0]->GetTabBoxes()[0];
+				pNextBox = pDelLine->FindPreviousBox( pTblNd->GetTable(),
+															pDelBox, TRUE );
+				while( pNextBox &&
+						pNextBox->GetFrmFmt()->GetProtect().IsCntntProtected() )
+					pNextBox = pNextBox->FindPreviousBox( pTblNd->GetTable(), pNextBox );
+			}
+
+			ULONG nIdx;
+			if( pNextBox )		// dann den Cursor hier hinein
+				nIdx = pNextBox->GetSttIdx() + 1;
+			else				// ansonsten hinter die Tabelle
+				nIdx = pTblNd->EndOfSectionIndex() + 1;
+
+			SwNodeIndex aIdx( GetDoc()->GetNodes(), nIdx );
+=====================================================================
+Found a 77 line (378 tokens) duplication in the following files: 
+Starting at line 1382 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+Starting at line 1903 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+
+    ,
+	USHORT
+)
+/*	[Beschreibung]
+
+	Ein Ausgabe ist nicht m"oglich. Deswegen wird eine Bitmap
+	und als Unterschrift der URL ausgegeben,
+
+	[Querverweise]
+
+	<SvInPlaceObject::Draw>
+*/
+{
+	if( !pImpl->pOP )
+		pImpl->pOP = CreateCache_Impl( pImpl->xWorkingStg );
+
+	Rectangle aOutRect = GetVisArea( ASPECT_CONTENT );
+	if( pImpl->pOP )
+	{
+		GDIMetaFile * pMtf = pImpl->pOP->GetMetaFile();
+		if( pMtf )
+		{
+			pMtf->WindStart();
+			pMtf->Play( pDev, aOutRect.TopLeft(), aOutRect.GetSize() );
+		}
+		else
+		{
+			Bitmap * pBmp = pImpl->pOP->GetBitmap();
+			if( pBmp )
+				pDev->DrawBitmap( aOutRect.TopLeft(), aOutRect.GetSize(), *pBmp );
+		}
+
+		return;
+	}
+	else
+	{
+#ifdef WNT
+		BOOL bPlayed = FALSE;
+		if (!pImpl->pSO_Cont)
+			LoadSO_Cont();
+
+		if( pImpl->pSO_Cont )
+		{
+			long nMapMode;
+			Size aSize;
+			HMETAFILE hMet;
+			if ( pImpl->pSO_Cont->GetMetaFile( nMapMode, aSize, hMet ) )
+			{
+				ULONG nBufSize = GetMetaFileBitsEx( hMet, 0, NULL );
+				unsigned char* pBuf = new unsigned char[nBufSize+22];
+				*((long*)pBuf) = 0x9ac6cdd7L;
+				*((short*)(pBuf+6)) = (SHORT) 0;
+				*((short*)(pBuf+8)) = (SHORT) 0;
+				*((short*)(pBuf+10)) = (SHORT) aSize.Width();
+				*((short*)(pBuf+12)) = (SHORT) aSize.Height();
+				*((short*)(pBuf+14)) = (USHORT) 2540;
+				if ( nBufSize && nBufSize == GetMetaFileBitsEx( hMet, nBufSize, pBuf+22 ) )
+				{
+					SvMemoryStream aStream( pBuf, nBufSize+22, STREAM_READ );
+					//SvFileStream aFile(String::CreateFromAscii("file:///d:/test.wmf"), STREAM_STD_READWRITE);
+					//aStream >> aFile;
+					aStream.Seek(0);
+					GDIMetaFile aMtf;
+					if( ReadWindowMetafile( aStream, aMtf, NULL ) )
+					{
+						aMtf.WindStart();
+						MapMode aMode( MAP_100TH_MM );
+						//Size aSize = OutputDevice::LogicToLogic( aOutRect.GetSize(), aMode, pDev->GetMapMode() );
+	//						AllSettings aNew( pDev->GetSettings() );
+	//						StyleSettings aSet ( aNew.GetStyleSettings() );
+	//						aSet.SetAntialiasingMinPixelHeight( 5 );
+	//						aNew.SetStyleSettings( aSet );
+	//						pDev->SetSettings( aNew );
+
+						//Point aPoint;
+						//Size aSize( aOutRect.GetSize() );
+						Size aSize = OutputDevice::LogicToLogic( rSize, aMode, pDev->GetMapMode() );
+=====================================================================
+Found a 96 line (378 tokens) duplication in the following files: 
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 399 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+                                              break;          
+						}
+					}
+				}
+
+				// Check required attribute "bitmap-index"
+				if ( pItem->nIndex < 0 )
+				{
+					delete pItem;
+					delete m_pImages;
+					m_pImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'image:bitmap-index' must have a value >= 0!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				// Check required attribute "command"
+				if ( pItem->aCommandURL.Len() == 0 )
+				{
+					delete pItem;
+					delete m_pImages;
+					m_pImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'image:command' must have a value!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( m_pImages )
+					m_pImages->pImageItemList->Insert( pItem, m_pImages->pImageItemList->Count() );
+			}
+			break;
+
+			case IMG_ELEMENT_EXTERNALIMAGES:
+			{
+				// Check that image:externalimages is embeded into image:imagecontainer
+				if ( !m_bImageContainerStartFound )
+				{
+					delete m_pImages;
+					m_pImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalimages' must be embeded into element 'image:imagecontainer'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				// Check that image:externalentry is NOT embeded into image:externalentry
+				if ( m_bExternalImagesStartFound )
+				{
+					delete m_pImages;
+					m_pImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalimages' cannot be embeded into 'image:externalimages'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				// Create unique external image container
+				m_bExternalImagesStartFound = sal_True;
+				m_pExternalImages = new ExternalImageItemListDescriptor;
+			}
+			break;
+
+			case IMG_ELEMENT_EXTERNALENTRY:
+			{
+				if ( !m_bExternalImagesStartFound )
+				{
+					delete m_pImages;
+					delete m_pExternalImages;
+					m_pImages = NULL;
+					m_pExternalImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalentry' must be embeded into 'image:externalimages'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( m_bExternalImageStartFound )
+				{
+					delete m_pImages;
+					delete m_pExternalImages;
+					m_pImages = NULL;
+					m_pExternalImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:externalentry' cannot be embeded into 'image:externalentry'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bExternalImageStartFound = sal_True;
+
+				ExternalImageItemDescriptor* pItem = new ExternalImageItemDescriptor;
+
+				// Read attributes for this external image definition
+				for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+=====================================================================
+Found a 17 line (377 tokens) duplication in the following files: 
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_CFONT),	ATTR_FONT,			&::getCppuType((const sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFCHARS),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNONAME_CFFAMIL),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFNAME),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFNAME),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFNAME),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CFPITCH),	ATTR_FONT,			&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),			0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNONAME_CFSTYLE),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),		0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CHEIGHT),	ATTR_FONT_HEIGHT,	&::getCppuType((const float*)0),			0, MID_FONTHEIGHT | CONVERT_TWIPS },
+=====================================================================
+Found a 116 line (376 tokens) duplication in the following files: 
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/impldde.cxx
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/impldde.cxx
+
+}
+
+BOOL SvDDEObject::ImplHasOtherFormat( DdeTransaction& rReq )
+{
+	USHORT nFmt = 0;
+	switch( rReq.GetFormat() )
+	{
+	case FORMAT_RTF:
+		nFmt = FORMAT_STRING;
+		break;
+
+	case SOT_FORMATSTR_ID_HTML_SIMPLE:
+	case SOT_FORMATSTR_ID_HTML:
+		nFmt = FORMAT_RTF;
+		break;
+
+	case FORMAT_GDIMETAFILE:
+		nFmt = FORMAT_BITMAP;
+		break;
+
+	case SOT_FORMATSTR_ID_SVXB:
+		nFmt = FORMAT_GDIMETAFILE;
+		break;
+
+	// sonst noch irgendwas ??
+	}
+	if( nFmt )
+		rReq.SetFormat( nFmt );		// damit nochmal versuchen
+	return 0 != nFmt;
+}
+
+BOOL SvDDEObject::IsPending() const
+/*	[Beschreibung]
+
+	Die Methode stellt fest, ob aus einem DDE-Object die Daten gelesen
+	werden kann.
+	Zurueckgegeben wird:
+		ERRCODE_NONE 			wenn sie komplett gelesen wurde
+		ERRCODE_SO_PENDING		wenn sie noch nicht komplett gelesen wurde
+		ERRCODE_SO_FALSE		sonst
+*/
+{
+	return bWaitForData;
+}
+
+BOOL SvDDEObject::IsDataComplete() const
+{
+	return bWaitForData;
+}
+
+IMPL_LINK( SvDDEObject, ImplGetDDEData, DdeData*, pData )
+{
+	ULONG nFmt = pData->GetFormat();
+	switch( nFmt )
+	{
+	case FORMAT_GDIMETAFILE:
+		break;
+
+	case FORMAT_BITMAP:
+		break;
+
+	default:
+		{
+			const sal_Char* p = (sal_Char*)( pData->operator const void*() );
+			long nLen = FORMAT_STRING == nFmt ? (p ? strlen( p ) : 0) : (long)*pData;
+
+			Sequence< sal_Int8 > aSeq( (const sal_Int8*)p, nLen );
+			if( pGetData )
+			{
+				*pGetData <<= aSeq; 	// Daten kopieren
+				pGetData = 0;			// und den Pointer bei mir zuruecksetzen
+			}
+			else
+			{
+				Any aVal;
+				aVal <<= aSeq;
+				DataChanged( SotExchange::GetFormatMimeType(
+												pData->GetFormat() ), aVal );
+				bWaitForData = FALSE;
+			}
+		}
+	}
+
+	return 0;
+}
+
+IMPL_LINK( SvDDEObject, ImplDoneDDEData, void*, pData )
+{
+	BOOL bValid = (BOOL)(ULONG)pData;
+	if( !bValid && ( pRequest || pLink ))
+	{
+		DdeTransaction* pReq = 0;
+		if( !pLink || ( pLink && pLink->IsBusy() ))
+			pReq = pRequest;		// dann kann nur der fertig sein
+		else if( pRequest && pRequest->IsBusy() )
+			pReq = pLink;			// dann kann nur der fertig sein
+
+		if( pReq )
+		{
+			if( ImplHasOtherFormat( *pReq ) )
+			{
+				pReq->Execute();
+			}
+			else if( pReq == pRequest )
+			{
+				// das wars dann
+				bWaitForData = FALSE;
+			}
+		}
+	}
+	else
+		// das warten ist beendet
+		bWaitForData = FALSE;
+
+	return 0;
+}
+=====================================================================
+Found a 101 line (376 tokens) duplication in the following files: 
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/WinImplHelper.cxx
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/sysui/source/win32/misc/WinImplHelper.cxx
+
+void SAL_CALL ListboxDeleteItems( HWND hwnd, const Any& /*unused*/, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+    LRESULT lRet = 0;
+
+    do
+    {
+        // the return value on success is the number 
+        // of remaining elements in the listbox 
+        lRet = SendMessageW( hwnd, CB_DELETESTRING, 0, 0 );
+    }
+    while ( (lRet != CB_ERR) && (lRet > 0) );  
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+void SAL_CALL ListboxSetSelectedItem( HWND hwnd, const Any& aPosition, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+     if ( !aPosition.hasValue( ) || 
+         ( (aPosition.getValueType( ) != getCppuType((sal_Int32*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int16*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int8*)0)) ) )
+         throw IllegalArgumentException(
+            OUString::createFromAscii( "invalid value type or any has no value" ),
+            rXInterface,
+            aArgPos );
+
+    sal_Int32 nPos;
+    aPosition >>= nPos;
+
+    if ( nPos < -1 )
+        throw IllegalArgumentException(
+            OUString::createFromAscii("invalid index"),
+            rXInterface,
+            aArgPos );
+
+    LRESULT lRet = SendMessageW( hwnd, CB_SETCURSEL, nPos, 0 );
+
+    if ( (CB_ERR == lRet) && (-1 != nPos) )
+        throw IllegalArgumentException(
+            OUString::createFromAscii("invalid index"),
+            rXInterface,
+            aArgPos );
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+Any SAL_CALL ListboxGetItems( HWND hwnd )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+    LRESULT nItemCount = SendMessageW( hwnd, CB_GETCOUNT, 0, 0 );
+    
+    Sequence< OUString > aItemList;
+    
+    if ( CB_ERR != nItemCount )
+    {
+        aItemList.realloc( nItemCount );
+
+        for ( sal_Int32 i = 0; i < nItemCount; i++ )
+        {
+            aItemList[i] = ListboxGetString( hwnd, i );
+        }
+    }
+
+    Any aAny;
+    aAny <<= aItemList;
+
+    return aAny;
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+Any SAL_CALL ListboxGetSelectedItem( HWND hwnd )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+    LRESULT idxItem = SendMessageW( hwnd, CB_GETCURSEL, 0, 0 );
+
+    Any aAny;
+    aAny <<= ListboxGetString( hwnd, idxItem );
+
+    return aAny;
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+Any SAL_CALL CheckboxGetState( HWND hwnd )
+=====================================================================
+Found a 74 line (375 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_pipe.cxx
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/ctr_pipe.cxx
+
+	PipeConnection::PipeConnection( const OUString & sConnectionDescription ) :
+		m_nStatus( 0 ),
+		m_sDescription( sConnectionDescription )
+	{
+		g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
+		// make it unique
+		m_sDescription += OUString::createFromAscii( ",uniqueValue=" );
+		m_sDescription += OUString::valueOf(
+            sal::static_int_cast< sal_Int64 >(
+                reinterpret_cast< sal_IntPtr >(&m_pipe)),
+            10 );
+	}
+
+	PipeConnection::~PipeConnection()
+	{
+		g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
+	}
+
+	sal_Int32 PipeConnection::read( Sequence < sal_Int8 > & aReadBytes , sal_Int32 nBytesToRead )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+		if( ! m_nStatus )
+		{
+			if( aReadBytes.getLength() != nBytesToRead )
+			{
+				aReadBytes.realloc( nBytesToRead );
+			}
+			return m_pipe.read( aReadBytes.getArray()  , aReadBytes.getLength() );
+		}
+		else {
+			throw IOException();
+		}
+	}
+
+	void PipeConnection::write( const Sequence < sal_Int8 > &seq )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+		if( ! m_nStatus )
+		{
+			if( m_pipe.write( seq.getConstArray() , seq.getLength() ) != seq.getLength() )
+			{
+				throw IOException();
+			}
+		}
+		else {
+			throw IOException();
+		}
+	}
+
+	void PipeConnection::flush( )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+
+	}
+
+	void PipeConnection::close()
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+		// ensure that close is called only once
+		if(1 == osl_incrementInterlockedCount( (&m_nStatus) ) )
+		{
+			m_pipe.close();
+		}
+	}
+
+	OUString PipeConnection::getDescription()
+			throw( ::com::sun::star::uno::RuntimeException)
+	{
+		return m_sDescription;
+	}
+=====================================================================
+Found a 68 line (375 tokens) duplication in the following files: 
+Starting at line 2571 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 1057 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+    return true;
+}
+
+bool GetCommandOption( const ::std::vector< OUString >& rArgs, const OUString& rSwitch, OUString& rParam )
+{
+	bool        bRet = false;
+    OUString    aSwitch( OUString::createFromAscii( "-" ));
+
+    aSwitch += rSwitch;
+    for( int i = 0, nCount = rArgs.size(); ( i < nCount ) && !bRet; i++ )
+	{
+		for( int n = 0; ( n < 2 ) && !bRet; n++ )
+		{
+			if ( aSwitch.equalsIgnoreAsciiCase( rArgs[ i ] ))
+			{
+				bRet = true;
+
+				if( i < ( nCount - 1 ) )
+					rParam = rArgs[ i + 1 ];
+				else
+					rParam = OUString();
+			}
+		}
+	}
+
+	return bRet;
+}
+
+// -----------------------------------------------------------------------
+
+bool GetCommandOptions( const ::std::vector< OUString >& rArgs, const OUString& rSwitch, ::std::vector< OUString >& rParams )
+{
+	bool bRet = false;
+
+    OUString    aSwitch( OUString::createFromAscii( "-" ));
+
+    aSwitch += rSwitch;
+    for( int i = 0, nCount = rArgs.size(); ( i < nCount ); i++ )
+	{
+		for( int n = 0; ( n < 2 ) && !bRet; n++ )
+		{
+			if ( aSwitch.equalsIgnoreAsciiCase( rArgs[ i ] ))
+			{
+				if( i < ( nCount - 1 ) )
+					rParams.push_back( rArgs[ i + 1 ] );
+				else
+					rParams.push_back( OUString() );
+
+			    break;
+			}
+		}
+	}
+
+	return( rParams.size() > 0 );
+}
+
+void ShowUsage()
+{
+    fprintf( stderr, "Usage: uicmdxml output_dir -r res -v version [-p] -s platform -i input_dir [-i input_dir] [-f errfile]\n" );
+    fprintf( stderr, "Options:" );
+    fprintf( stderr, "   -r [oo|so]    use resources from ooo, so\n" );
+    fprintf( stderr, "   -v            name of the version used, f.e. SRX645, SRC680\n" );
+    fprintf( stderr, "   -p            use product version\n" );
+    fprintf( stderr, "   -s            name of the system to use, f.e. wntmsci8, unxsols4, unxlngi5\n" );
+    fprintf( stderr, "   -i ...        name of directory to be searched for input files [multiple occurence is possible]\n" );
+    fprintf( stderr, "   -f            name of file, error output should be written to\n" );
+    fprintf( stderr, "Examples:\n" );
+    fprintf( stderr, "    uicmd2html /home/out -r so -v SRC680 -p unxlngi5 -i /home/res -f /home/out/log.err\n" );
+=====================================================================
+Found a 89 line (374 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+		aId += m_pImpl->m_aResults[ nIndex ]->rData.aTitle;
+
+		m_pImpl->m_aResults[ nIndex ]->aId = aId;
+		return aId;
+	}
+	return rtl::OUString();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContentIdentifier > 
+DataSupplier::queryContentIdentifier( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+		uno::Reference< ucb::XContentIdentifier > xId
+								= m_pImpl->m_aResults[ nIndex ]->xId;
+		if ( xId.is() )
+		{
+			// Already cached.
+			return xId;
+		}
+	}
+
+	rtl::OUString aId = queryContentIdentifierString( nIndex );
+	if ( aId.getLength() )
+	{
+		uno::Reference< ucb::XContentIdentifier > xId 
+            = new ::ucbhelper::ContentIdentifier( aId );
+		m_pImpl->m_aResults[ nIndex ]->xId = xId;
+		return xId;
+	}
+	return uno::Reference< ucb::XContentIdentifier >();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContent > 
+DataSupplier::queryContent( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+		uno::Reference< ucb::XContent > xContent
+								= m_pImpl->m_aResults[ nIndex ]->xContent;
+		if ( xContent.is() )
+		{
+			// Already cached.
+			return xContent;
+		}
+	}
+
+	uno::Reference< ucb::XContentIdentifier > xId 
+        = queryContentIdentifier( nIndex );
+	if ( xId.is() )
+	{
+		try
+		{
+			uno::Reference< ucb::XContent > xContent
+				= m_pImpl->m_xContent->getProvider()->queryContent( xId );
+			m_pImpl->m_aResults[ nIndex ]->xContent = xContent;
+			return xContent;
+
+		}
+		catch ( ucb::IllegalIdentifierException& )
+		{
+		}
+	}
+	return uno::Reference< ucb::XContent >();
+}
+
+//=========================================================================
+// virtual
+sal_Bool DataSupplier::getResult( sal_uInt32 nIndex )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( m_pImpl->m_aResults.size() > nIndex )
+	{
+		// Result already present.
+		return sal_True;
+	}
+
+	// Result not (yet) present.
+
+	if ( m_pImpl->m_bCountFinal )
+=====================================================================
+Found a 64 line (374 tokens) duplication in the following files: 
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+Starting at line 1181 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+
+	    else
+	    {
+            SfxItemState eState = SFX_ITEM_DISABLED;
+		    SfxPoolItem* pItem = NULL;
+		    if ( rEvent.IsEnabled )
+		    {
+			    eState = SFX_ITEM_AVAILABLE;
+			    ::com::sun::star::uno::Type pType =	rEvent.State.getValueType();
+
+                if ( pType == ::getVoidCppuType() )
+                {
+                    pItem = new SfxVoidItem( nSlotId );
+                    eState = SFX_ITEM_UNKNOWN;
+                }
+                else if ( pType == ::getBooleanCppuType() )
+			    {
+				    sal_Bool bTemp = false;
+				    rEvent.State >>= bTemp ;
+				    pItem = new SfxBoolItem( nSlotId, bTemp );
+			    }
+			    else if ( pType == ::getCppuType((const sal_uInt16*)0) )
+			    {
+				    sal_uInt16 nTemp = 0;
+				    rEvent.State >>= nTemp ;
+				    pItem = new SfxUInt16Item( nSlotId, nTemp );
+			    }
+			    else if ( pType == ::getCppuType((const sal_uInt32*)0) )
+			    {
+				    sal_uInt32 nTemp = 0;
+				    rEvent.State >>= nTemp ;
+				    pItem = new SfxUInt32Item( nSlotId, nTemp );
+			    }
+			    else if ( pType == ::getCppuType((const ::rtl::OUString*)0) )
+			    {
+				    ::rtl::OUString sTemp ;
+				    rEvent.State >>= sTemp ;
+				    pItem = new SfxStringItem( nSlotId, sTemp );
+			    }
+                else if ( pType == ::getCppuType((const ::com::sun::star::frame::status::ItemStatus*)0) )
+                {
+                    ItemStatus aItemStatus;
+                    rEvent.State >>= aItemStatus;
+                    eState = aItemStatus.State;
+                    pItem = new SfxVoidItem( nSlotId );
+                }
+                else if ( pType == ::getCppuType((const ::com::sun::star::frame::status::Visibility*)0) )
+                {
+                    Visibility aVisibilityStatus;
+                    rEvent.State >>= aVisibilityStatus;
+                    pItem = new SfxVisibilityItem( nSlotId, aVisibilityStatus.bVisible );
+                }
+			    else
+                {
+                    if ( pSlot )
+                        pItem = pSlot->GetType()->CreateItem();
+                    if ( pItem )
+                    {
+                        pItem->SetWhich( nSlotId );
+                        pItem->PutValue( rEvent.State );
+                    }
+                    else
+                        pItem = new SfxVoidItem( nSlotId );
+                }
+		    }
+=====================================================================
+Found a 100 line (374 tokens) duplication in the following files: 
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/XMLRangeHelper.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/XMLRangeHelper.cxx
+
+    static const sal_Unicode aDoubleQuote( '\"' );
+    static const sal_Unicode aDollar( '$' );
+    static const sal_Unicode aBackslash( '\\' );
+
+    sal_Int32 nStartPos = 0;
+    sal_Int32 nEndPos = nStartPos;
+    const sal_Int32 nLength = rXMLString.getLength();
+
+    // reset
+    CellRange aResult;
+
+    // iterate over different ranges
+    for( sal_Int32 i = 0;
+         nEndPos < nLength;
+         nStartPos = ++nEndPos, i++ )
+    {
+        // find start point of next range
+
+        // ignore leading '$'
+        if( rXMLString[ nEndPos ] == aDollar)
+            nEndPos++;
+
+        bool bInQuotation = false;
+        // parse range
+        while( nEndPos < nLength &&
+               ( bInQuotation || rXMLString[ nEndPos ] != aSpace ))
+        {
+            // skip escaped characters (with backslash)
+            if( rXMLString[ nEndPos ] == aBackslash )
+                ++nEndPos;
+            // toggle quotation mode when finding single quotes
+            else if( rXMLString[ nEndPos ] == aQuote )
+                bInQuotation = ! bInQuotation;
+
+            ++nEndPos;
+        }
+
+        if( ! lcl_getCellRangeAddressFromXMLString(
+                rXMLString,
+                nStartPos, nEndPos - 1,
+                aResult ))
+        {
+            // if an error occured, bail out
+            return CellRange();
+        }
+    }
+
+    return aResult;
+}
+
+OUString getXMLStringFromCellRange( const CellRange & rRange )
+{
+    static const sal_Unicode aSpace( ' ' );
+    static const sal_Unicode aQuote( '\'' );
+
+    ::rtl::OUStringBuffer aBuffer;
+
+    if( (rRange.aTableName).getLength())
+    {
+        bool bNeedsEscaping = ( rRange.aTableName.indexOf( aQuote ) > -1 );
+        bool bNeedsQuoting = bNeedsEscaping || ( rRange.aTableName.indexOf( aSpace ) > -1 );
+
+        // quote table name if it contains spaces or quotes
+        if( bNeedsQuoting )
+        {
+            // leading quote
+            aBuffer.append( aQuote );
+
+            // escape existing quotes
+            if( bNeedsEscaping )
+            {
+                const sal_Unicode * pTableNameBeg = rRange.aTableName.getStr();
+
+                // append the quoted string at the buffer
+                ::std::for_each( pTableNameBeg,
+                                 pTableNameBeg + rRange.aTableName.getLength(),
+                                 lcl_Escape( aBuffer ) );
+            }
+            else
+                aBuffer.append( rRange.aTableName );
+
+            // final quote
+            aBuffer.append( aQuote );
+        }
+        else
+            aBuffer.append( rRange.aTableName );
+    }
+    aBuffer.append( lcl_getXMLStringForCell( rRange.aUpperLeft ));
+
+    if( ! rRange.aLowerRight.empty())
+    {
+        // we have a range (not a single cell)
+        aBuffer.append( sal_Unicode( ':' ));
+        aBuffer.append( lcl_getXMLStringForCell( rRange.aLowerRight ));
+    }
+
+    return aBuffer.makeStringAndClear();
+}
+
+} //  namespace XMLRangeHelper
+=====================================================================
+Found a 105 line (373 tokens) duplication in the following files: 
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 752 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+	copyJobDataToJobSetup( pJobSetup, m_aJobData );
+	
+    return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+// This function merges the independ driver data
+// and sets the new independ data in pJobSetup
+// Only the data must be changed, where the bit
+// in nGetDataFlags is set
+BOOL PspSalInfoPrinter::SetData(
+	ULONG nSetDataFlags,
+	ImplJobSetup* pJobSetup )
+{
+	JobData aData;
+	JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, aData );
+
+	if( aData.m_pParser )
+	{
+		const PPDKey* pKey;
+		const PPDValue* pValue;
+
+		// merge papersize if necessary
+		if( nSetDataFlags & SAL_JOBSET_PAPERSIZE )
+		{
+            int nWidth, nHeight;
+            if( pJobSetup->meOrientation == ORIENTATION_PORTRAIT )
+            {
+                nWidth	= pJobSetup->mnPaperWidth;
+                nHeight	= pJobSetup->mnPaperHeight;
+            }
+            else
+            {
+                nWidth	= pJobSetup->mnPaperHeight;
+                nHeight	= pJobSetup->mnPaperWidth;
+            }
+			String aPaper;
+
+#ifdef MACOSX
+			// For Mac OS X, many printers are directly attached
+			// USB/Serial printers with a stripped-down PPD that gives us
+			// problems.  We need to do PS->PDF conversion for these printers
+			// but they are not able to handle multiple page sizes in the same
+			// document at all, since we must pass -o media=... to them to get
+			// a good printout.
+			// So, we must find a match between the paper size from OOo and what
+			// the PPD of the printer has, and pass that paper size to -o media=...
+			// If a match cannot be found (ie the paper size from Format->Page is
+			// nowhere near anything in the PPD), we default to what has been
+			// chosen in File->Print->Properties.
+			//
+			// For printers capable of directly accepting PostScript data, none
+			// of this occurs and we default to the normal OOo behavior.
+			const PPDKey	*pCupsFilterKey;
+			const PPDValue	*pCupsFilterValue;
+			BOOL			bIsCUPSPrinter = TRUE;
+
+			// Printers that need PS->PDF conversion have a "cupsFilter" key and
+			// a value of "application/pdf" in that key
+			pCupsFilterKey = aData.m_pParser->getKey( String(RTL_CONSTASCII_USTRINGPARAM("cupsFilter")) );
+			pCupsFilterValue = pCupsFilterKey != NULL ? aData.m_aContext.getValue( pCupsFilterKey ) : NULL;
+			if ( pCupsFilterValue )
+			{
+				// PPD had a cupsFilter key, check for PS->PDF conversion requirement
+				ByteString    aCupsFilterString( pCupsFilterValue->m_aOption, RTL_TEXTENCODING_ISO_8859_1 );
+				if ( aCupsFilterString.Search("application/pdf") == 0 )
+					bIsCUPSPrinter = FALSE;
+			}
+			else
+				bIsCUPSPrinter = FALSE;
+
+			if ( TRUE == bIsCUPSPrinter )
+			{
+				// If its a directly attached printer, with a
+				// stripped down PPD (most OS X printers are) always
+				// match the paper size.
+ 				aPaper = aData.m_pParser->matchPaper(
+ 					TenMuToPt( pJobSetup->mnPaperWidth ),
+ 					TenMuToPt( pJobSetup->mnPaperHeight ) );
+			}
+ 			else
+#endif
+			{
+				if( pJobSetup->mePaperFormat == PAPER_USER )
+					aPaper = aData.m_pParser->matchPaper(
+						TenMuToPt( pJobSetup->mnPaperWidth ),
+						TenMuToPt( pJobSetup->mnPaperHeight ) );
+				else
+					aPaper = String( ByteString( aPaperTab[ pJobSetup->mePaperFormat ].name ), RTL_TEXTENCODING_ISO_8859_1 );
+			}
+			pKey = aData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) ) );
+			pValue = pKey ? pKey->getValue( aPaper ) : NULL;
+			if( ! ( pKey && pValue && aData.m_aContext.setValue( pKey, pValue, false ) == pValue ) )
+				return FALSE;
+		}
+
+		// merge paperbin if necessary
+		if( nSetDataFlags & SAL_JOBSET_PAPERBIN )
+		{
+			pKey = aData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "InputSlot" ) ) );
+			if( pKey )
+			{
+				int nPaperBin = pJobSetup->mnPaperBin;
+				if( nPaperBin >= pKey->countValues() )
+=====================================================================
+Found a 94 line (373 tokens) duplication in the following files: 
+Starting at line 719 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/filtdlg.cxx
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pfiltdlg.cxx
+
+IMPL_LINK( ScPivotFilterDlg, LbSelectHdl, ListBox*, pLb )
+{
+	/*
+	 * Behandlung der Enable/Disable-Logik,
+	 * abhaengig davon, welche ListBox angefasst wurde:
+	 */
+
+	if ( pLb == &aLbConnect1 )
+	{
+		if ( !aLbField2.IsEnabled() )
+		{
+			aLbField2.Enable();
+			aLbCond2.Enable();
+			aEdVal2.Enable();
+		}
+	}
+	else if ( pLb == &aLbConnect2 )
+	{
+		if ( !aLbField3.IsEnabled() )
+		{
+			aLbField3.Enable();
+			aLbCond3.Enable();
+			aEdVal3.Enable();
+		}
+	}
+	else if ( pLb == &aLbField1 )
+	{
+		if ( aLbField1.GetSelectEntryPos() == 0 )
+		{
+			aLbConnect1.SetNoSelection();
+			aLbConnect2.SetNoSelection();
+			aLbField2.SelectEntryPos( 0 );
+			aLbField3.SelectEntryPos( 0 );
+			aLbCond2.SelectEntryPos( 0 );
+			aLbCond3.SelectEntryPos( 0 );
+			ClearValueList( 1 );
+			ClearValueList( 2 );
+			ClearValueList( 3 );
+
+			aLbConnect1.Disable();
+			aLbConnect2.Disable();
+			aLbField2.Disable();
+			aLbField3.Disable();
+			aLbCond2.Disable();
+			aLbCond3.Disable();
+			aEdVal2.Disable();
+			aEdVal3.Disable();
+		}
+		else
+		{
+			UpdateValueList( 1 );
+			if ( !aLbConnect1.IsEnabled() )
+			{
+				aLbConnect1.Enable();
+			}
+		}
+	}
+	else if ( pLb == &aLbField2 )
+	{
+		if ( aLbField2.GetSelectEntryPos() == 0 )
+		{
+			aLbConnect2.SetNoSelection();
+			aLbField3.SelectEntryPos( 0 );
+			aLbCond3.SelectEntryPos( 0 );
+			ClearValueList( 2 );
+			ClearValueList( 3 );
+
+			aLbConnect2.Disable();
+			aLbField3.Disable();
+			aLbCond3.Disable();
+			aEdVal3.Disable();
+		}
+		else
+		{
+			UpdateValueList( 2 );
+			if ( !aLbConnect2.IsEnabled() )
+			{
+				aLbConnect2.Enable();
+			}
+		}
+	}
+	else if ( pLb == &aLbField3 )
+	{
+		( aLbField3.GetSelectEntryPos() == 0 )
+			? ClearValueList( 3 )
+			: UpdateValueList( 3 );
+	}
+
+	return 0;
+}
+
+//----------------------------------------------------------------------------
+
+IMPL_LINK( ScPivotFilterDlg, CheckBoxHdl, CheckBox*, pBox )
+=====================================================================
+Found a 73 line (373 tokens) duplication in the following files: 
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+	sal_Int32 nFontWeight;
+
+	switch( rFont.GetWeight() )
+	{
+		case WEIGHT_THIN:			nFontWeight = 100; break;
+		case WEIGHT_ULTRALIGHT:		nFontWeight = 200; break;
+		case WEIGHT_LIGHT:			nFontWeight = 300; break;
+		case WEIGHT_SEMILIGHT:		nFontWeight = 400; break;
+		case WEIGHT_NORMAL:			nFontWeight = 400; break;
+		case WEIGHT_MEDIUM:			nFontWeight = 500; break;
+		case WEIGHT_SEMIBOLD:		nFontWeight = 600; break;
+		case WEIGHT_BOLD:			nFontWeight = 700; break;
+		case WEIGHT_ULTRABOLD:		nFontWeight = 800; break;
+		case WEIGHT_BLACK:			nFontWeight = 900; break;
+		default:					nFontWeight = 400; break;
+	}
+
+	aStyle += B2UCONST( ";" );
+	aStyle += B2UCONST( "font-weight:" );
+	aStyle += NMSP_RTL::OUString::valueOf( nFontWeight );
+			
+	// !!!
+	// font-variant
+	// font-stretch
+	// font-size-adjust
+
+#ifdef _SVG_USE_NATIVE_TEXTDECORATION
+
+	if( rFont.GetUnderline() != UNDERLINE_NONE || rFont.GetStrikeout() != STRIKEOUT_NONE )
+	{
+		aStyle += B2UCONST( ";" );
+		aStyle += B2UCONST( "text-decoration:" );
+
+		if( rFont.GetUnderline() != UNDERLINE_NONE )
+			aStyle += B2UCONST( " underline" );
+
+		if( rFont.GetStrikeout() != STRIKEOUT_NONE )
+ 			aStyle += B2UCONST( " line-through" );
+	}
+
+#endif // _SVG_USE_NATIVE_TEXTDECORATION
+
+	return aStyle.GetString();
+}
+
+// -----------------------------------------------------------------------------
+
+NMSP_RTL::OUString SVGAttributeWriter::GetPaintStyle( const Color& rLineColor, const Color& rFillColor )
+{
+	FastString aStyle;
+
+	// line color
+	aStyle += B2UCONST( "stroke:" );
+	
+	if( rLineColor.GetTransparency() == 255 )
+		aStyle += B2UCONST( "none" );
+	else
+	{
+		// line color value in rgb
+		aStyle += B2UCONST( "rgb(" );
+		aStyle += NMSP_RTL::OUString::valueOf( (sal_Int32) rLineColor.GetRed() );
+		aStyle += B2UCONST( "," );
+		aStyle += NMSP_RTL::OUString::valueOf( (sal_Int32) rLineColor.GetGreen() );
+		aStyle += B2UCONST( "," );
+		aStyle += NMSP_RTL::OUString::valueOf( (sal_Int32) rLineColor.GetBlue() );
+		aStyle += B2UCONST( ")" );
+
+		// line color opacity in percent if neccessary
+		if( rLineColor.GetTransparency() )
+		{
+			aStyle += B2UCONST( ";" );
+			aStyle += B2UCONST( "stroke-opacity:" );
+			aStyle += NMSP_RTL::OUString::valueOf( ( 255 - (double) rLineColor.GetTransparency() ) / 255.0 );
+=====================================================================
+Found a 74 line (371 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/decrypter.cxx
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/decrypter.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::registry ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+
+int SAL_CALL main( int argc, char **argv )
+{
+	CERTCertDBHandle*	certHandle = NULL ;
+	PK11SlotInfo*		slot = NULL ;
+	xmlDocPtr			doc = NULL ;
+	xmlNodePtr			tplNode ;
+	xmlNodePtr			tarNode ;
+	FILE*				dstFile = NULL ;
+
+
+	if( argc != 5 ) {
+		fprintf( stderr, "Usage: %s < CertDir > <input file_url> <output file_url> <rdb file>\n\n" , argv[0] ) ;
+		return 1 ;
+	}
+
+	//Init libxml and libxslt libraries
+	xmlInitParser();
+	LIBXML_TEST_VERSION
+	xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
+	xmlSubstituteEntitiesDefault(1);
+
+	#ifndef XMLSEC_NO_XSLT
+	xmlIndentTreeOutput = 1; 
+	#endif // XMLSEC_NO_XSLT
+
+
+	//Initialize NSPR and NSS
+	PR_Init( PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1 ) ;
+	PK11_SetPasswordFunc( PriPK11PasswordFunc ) ;
+	if( NSS_Init( argv[1] ) != SECSuccess ) {
+		fprintf( stderr , "### cannot intialize NSS!\n" ) ;
+		goto done ;
+	}
+
+	certHandle = CERT_GetDefaultCertDB() ;
+	slot = PK11_GetInternalKeySlot() ;
+
+	//Load XML document
+	doc = xmlParseFile( argv[2] ) ;
+	if( doc == NULL || xmlDocGetRootElement( doc ) == NULL ) {
+		fprintf( stderr , "### Cannot load template xml document!\n" ) ;
+		goto done ;
+	}
+
+	//Find the encryption template
+	tplNode = xmlSecFindNode( xmlDocGetRootElement( doc ), xmlSecNodeEncryptedData, xmlSecEncNs ) ;
+	if( tplNode == NULL ) {
+		fprintf( stderr , "### Cannot find the encryption template!\n" ) ;
+		goto done ;
+	}
+
+
+	try {
+		Reference< XMultiComponentFactory > xManager = NULL ;
+		Reference< XComponentContext > xContext = NULL ;
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ), OUString::createFromAscii( argv[4] ) ) ;
+
+		//Create encryption template
+		Reference< XInterface > tplElement =
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.xsec.XMLElementWrapper" ) , xContext ) ;
+=====================================================================
+Found a 38 line (371 tokens) duplication in the following files: 
+Starting at line 7380 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 5159 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+		case mso_sptSeal16 :					pCustomShape = &msoSeal16; break;
+		case mso_sptSeal24 :					pCustomShape = &msoSeal24; break;
+		case mso_sptSeal32 :					pCustomShape = &msoSeal32; break;
+		case mso_sptRibbon2 :					pCustomShape = &msoRibbon2; break;
+		case mso_sptRibbon :					pCustomShape = &msoRibbon2; break;
+		case mso_sptEllipseRibbon2 :			pCustomShape = &msoRibbon2; break;	//!!!!!
+		case mso_sptEllipseRibbon :				pCustomShape = &msoRibbon2; break; //!!!!!
+		case mso_sptVerticalScroll :			pCustomShape = &msoVerticalScroll;	break;
+		case mso_sptHorizontalScroll :			pCustomShape = &msoHorizontalScroll; break;
+		case mso_sptFlowChartProcess :			pCustomShape = &msoFlowChartProcess; break;
+		case mso_sptFlowChartAlternateProcess :	pCustomShape = &msoFlowChartAlternateProcess; break;
+		case mso_sptFlowChartDecision :			pCustomShape = &msoFlowChartDecision; break;
+		case mso_sptFlowChartInputOutput :		pCustomShape = &msoFlowChartInputOutput; break;
+		case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break;
+		case mso_sptFlowChartInternalStorage :	pCustomShape = &msoFlowChartInternalStorage; break;
+		case mso_sptFlowChartDocument :			pCustomShape = &msoFlowChartDocument; break;
+		case mso_sptFlowChartMultidocument :	pCustomShape = &msoFlowChartMultidocument; break;
+		case mso_sptFlowChartTerminator :		pCustomShape = &msoFlowChartTerminator; break;
+		case mso_sptFlowChartPreparation :		pCustomShape = &msoFlowChartPreparation; break;
+		case mso_sptFlowChartManualInput :		pCustomShape = &msoFlowChartManualInput; break;
+		case mso_sptFlowChartManualOperation :	pCustomShape = &msoFlowChartManualOperation; break;
+		case mso_sptFlowChartConnector :		pCustomShape = &msoFlowChartConnector; break;
+		case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break;
+		case mso_sptFlowChartPunchedCard :		pCustomShape = &msoFlowChartPunchedCard; break;
+		case mso_sptFlowChartPunchedTape :		pCustomShape = &msoFlowChartPunchedTape; break;
+		case mso_sptFlowChartSummingJunction :	pCustomShape = &msoFlowChartSummingJunction; break;
+		case mso_sptFlowChartOr :				pCustomShape = &msoFlowChartOr; break;
+		case mso_sptFlowChartCollate :			pCustomShape = &msoFlowChartCollate; break;
+		case mso_sptFlowChartSort :				pCustomShape = &msoFlowChartSort; break;
+		case mso_sptFlowChartExtract :			pCustomShape = &msoFlowChartExtract; break;
+		case mso_sptFlowChartMerge :			pCustomShape = &msoFlowChartMerge; break;
+		case mso_sptFlowChartOnlineStorage :	pCustomShape = &msoFlowChartOnlineStorage; break;
+		case mso_sptFlowChartDelay :			pCustomShape = &msoFlowChartDelay; break;
+		case mso_sptFlowChartMagneticTape :		pCustomShape = &msoFlowChartMagneticTape; break;
+		case mso_sptFlowChartMagneticDisk :		pCustomShape = &msoFlowChartMagneticDisk; break;
+		case mso_sptFlowChartMagneticDrum :		pCustomShape = &msoFlowChartMagneticDrum; break;
+		case mso_sptFlowChartDisplay :			pCustomShape = &msoFlowChartDisplay; break;
+		case mso_sptWave :						pCustomShape = &msoWave; break;
+=====================================================================
+Found a 9 line (371 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x9f, 0x0000}, // 0300 - 0307
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0308 - 030f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0310 - 0317
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0318 - 031f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0320 - 0327
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0328 - 032f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0330 - 0337
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0338 - 033f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf4, 0x0032}, {0x00, 0x0000}, {0x00, 0x0000}, // 0340 - 0347
+=====================================================================
+Found a 36 line (371 tokens) duplication in the following files: 
+Starting at line 624 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+Starting at line 664 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+
+		case (B3D_TXT_MODE_BND|B3D_TXT_KIND_COL) :
+		{
+			fS = fS - floor(fS);
+			fT = fT - floor(fT);
+			long nX2, nY2;
+
+			if(fS > 0.5) {
+				nX2 = (nX + 1) % GetBitmapSize().Width();
+				fS = 1.0 - fS;
+			} else
+				nX2 = nX ? nX - 1 : GetBitmapSize().Width() - 1;
+
+			if(fT > 0.5) {
+				nY2 = (nY + 1) % GetBitmapSize().Height();
+				fT = 1.0 - fT;
+			} else
+				nY2 = nY ? nY - 1 : GetBitmapSize().Height() - 1;
+
+			fS += 0.5;
+			fT += 0.5;
+			double fRight = 1.0 - fS;
+			double fBottom = 1.0 - fT;
+
+			BitmapColor aColTL = pReadAccess->GetColor(nY, nX);
+			BitmapColor aColTR = pReadAccess->GetColor(nY, nX2);
+			BitmapColor aColBL = pReadAccess->GetColor(nY2, nX);
+			BitmapColor aColBR = pReadAccess->GetColor(nY2, nX2);
+
+			double fRed = ((double)aColTL.GetRed() * fS + (double)aColTR.GetRed() * fRight) * fT
+				+ ((double)aColBL.GetRed() * fS + (double)aColBR.GetRed() * fRight) * fBottom;
+			double fGreen = ((double)aColTL.GetGreen() * fS + (double)aColTR.GetGreen() * fRight) * fT
+				+ ((double)aColBL.GetGreen() * fS + (double)aColBR.GetGreen() * fRight) * fBottom;
+			double fBlue = ((double)aColTL.GetBlue() * fS + (double)aColTR.GetBlue() * fRight) * fT
+				+ ((double)aColBL.GetBlue() * fS + (double)aColBR.GetBlue() * fRight) * fBottom;
+
+			rCol.SetRed((sal_uInt8)((((double)rCol.GetRed() * (255.0 - fRed)) + ((double)aColBlend.GetRed() * fRed)) / 255.0));
+=====================================================================
+Found a 35 line (370 tokens) duplication in the following files: 
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap3.cxx
+Starting at line 973 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap3.cxx
+
+uno::Any SAL_CALL Svx3DExtrudeObject::getPropertyValue( const OUString& aPropertyName )
+	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+	OGuard aGuard( Application::GetSolarMutex() );
+
+	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+	{
+		// Transformation in eine homogene Matrix packen
+		drawing::HomogenMatrix aHomMat; 
+		basegfx::B3DHomMatrix aMat = ((E3dObject*)mpObj.get())->GetTransform(); 
+
+		// pack evtl. transformed matrix to output
+		aHomMat.Line1.Column1 = aMat.get(0, 0); 
+		aHomMat.Line1.Column2 = aMat.get(0, 1); 
+		aHomMat.Line1.Column3 = aMat.get(0, 2); 
+		aHomMat.Line1.Column4 = aMat.get(0, 3); 
+		aHomMat.Line2.Column1 = aMat.get(1, 0); 
+		aHomMat.Line2.Column2 = aMat.get(1, 1); 
+		aHomMat.Line2.Column3 = aMat.get(1, 2); 
+		aHomMat.Line2.Column4 = aMat.get(1, 3); 
+		aHomMat.Line3.Column1 = aMat.get(2, 0); 
+		aHomMat.Line3.Column2 = aMat.get(2, 1); 
+		aHomMat.Line3.Column3 = aMat.get(2, 2); 
+		aHomMat.Line3.Column4 = aMat.get(2, 3); 
+		aHomMat.Line4.Column1 = aMat.get(3, 0); 
+		aHomMat.Line4.Column2 = aMat.get(3, 1); 
+		aHomMat.Line4.Column3 = aMat.get(3, 2); 
+		aHomMat.Line4.Column4 = aMat.get(3, 3); 
+
+		return uno::Any( &aHomMat, ::getCppuType((const drawing::HomogenMatrix*)0) );
+	}
+	else if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_POLYPOLYGON3D)) )
+	{
+		// Polygondefinition packen
+		const basegfx::B2DPolyPolygon& rPolyPoly = ((E3dExtrudeObj*)mpObj.get())->GetExtrudePolygon();
+=====================================================================
+Found a 71 line (370 tokens) duplication in the following files: 
+Starting at line 2516 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zformat.cxx
+Starting at line 3048 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zformat.cxx
+
+    ULONG nSeconds = (ULONG)floor( fTime );
+    String sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
+                rtl_math_StringFormat_F, int(nCntPost), '.'));
+    sSecStr.EraseLeadingChars('0');
+    sSecStr.EraseLeadingChars('.');
+    if ( bInputLine )
+    {
+        sSecStr.EraseTrailingChars('0');
+        if ( sSecStr.Len() < xub_StrLen(rInfo.nCntPost) )
+            sSecStr.Expand( xub_StrLen(rInfo.nCntPost), '0' );
+        ImpTransliterate( sSecStr, NumFor[nIx].GetNatNum() );
+        nCntPost = sSecStr.Len();
+    }
+    else
+        ImpTransliterate( sSecStr, NumFor[nIx].GetNatNum() );
+
+    xub_StrLen nSecPos = 0;                     // Zum Ziffernweisen
+                                            // abarbeiten
+    ULONG nHour, nMin, nSec;
+    if (!rInfo.bThousand)      // [] Format
+    {
+        nHour = (nSeconds/3600) % 24;
+        nMin = (nSeconds%3600) / 60;
+        nSec = nSeconds%60;
+    }
+    else if (rInfo.nThousand == 3) // [ss]
+    {
+        nHour = 0;
+        nMin = 0;
+        nSec = nSeconds;
+    }
+    else if (rInfo.nThousand == 2) // [mm]:ss
+    {
+        nHour = 0;
+        nMin = nSeconds / 60;
+        nSec = nSeconds % 60;
+    }
+    else if (rInfo.nThousand == 1) // [hh]:mm:ss
+    {
+        nHour = nSeconds / 3600;
+        nMin = (nSeconds%3600) / 60;
+        nSec = nSeconds%60;
+    }
+    else {
+        nHour = 0;  // TODO What should these values be?
+        nMin  = 0;
+        nSec  = 0;
+    }
+    sal_Unicode cAmPm = ' ';                   // a oder p
+    if (rInfo.nCntExp)     // AM/PM
+    {
+        if (nHour == 0)
+        {
+            nHour = 12;
+            cAmPm = 'a';
+        }
+        else if (nHour < 12)
+            cAmPm = 'a';
+        else
+        {
+            cAmPm = 'p';
+            if (nHour > 12)
+                nHour -= 12;
+        }
+    }
+    const USHORT nAnz = NumFor[nIx].GetnAnz();
+    for (USHORT i = 0; i < nAnz; i++)
+    {
+        switch (rInfo.nTypeArray[i])
+        {
+            case NF_SYMBOLTYPE_CALENDAR :
+=====================================================================
+Found a 93 line (370 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+    
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+    
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+    
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+    
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+    
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+    
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+    
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+    
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+#if __FreeBSD_version < 602103
+    : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) )
+#else
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+#endif
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+    
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+    
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+=====================================================================
+Found a 42 line (368 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+    virtual BOOL		unionClipRegion( long nX, long nY, long nWidth, long nHeight );
+    // draw --> LineColor and FillColor and RasterOp and ClipRegion
+    virtual void		drawPixel( long nX, long nY );
+    virtual void		drawPixel( long nX, long nY, SalColor nSalColor );
+    virtual void		drawLine( long nX1, long nY1, long nX2, long nY2 );
+    virtual void		drawRect( long nX, long nY, long nWidth, long nHeight );
+    virtual void		drawPolyLine( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void		drawPolygon( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void		drawPolyPolygon( sal_uInt32 nPoly, const sal_uInt32* pPoints, PCONSTSALPOINT* pPtAry );
+    virtual sal_Bool	drawPolyLineBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry );
+    virtual sal_Bool	drawPolygonBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry );
+    virtual sal_Bool	drawPolyPolygonBezier( sal_uInt32 nPoly, const sal_uInt32* pPoints, const SalPoint* const* pPtAry, const BYTE* const* pFlgAry );
+
+    // CopyArea --> No RasterOp, but ClipRegion
+    virtual void		copyArea( long nDestX, long nDestY, long nSrcX, long nSrcY, long nSrcWidth,
+                                  long nSrcHeight, USHORT nFlags );
+
+    // CopyBits and DrawBitmap --> RasterOp and ClipRegion
+    // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics
+    virtual void		copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry,
+                                    const SalBitmap& rSalBitmap,
+                                    SalColor nTransparentColor );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry,
+                                    const SalBitmap& rSalBitmap,
+                                    const SalBitmap& rTransparentBitmap );
+    virtual void		drawMask( const SalTwoRect* pPosAry,
+                                  const SalBitmap& rSalBitmap,
+                                  SalColor nMaskColor );
+
+    virtual SalBitmap*	getBitmap( long nX, long nY, long nWidth, long nHeight );
+    virtual SalColor	getPixel( long nX, long nY );
+
+    // invert --> ClipRegion (only Windows or VirDevs)
+    virtual void		invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags);
+    virtual void		invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+
+    virtual BOOL		drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+
+    // native widget rendering methods that require mirroring
+    virtual BOOL        hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion,
+=====================================================================
+Found a 28 line (367 tokens) duplication in the following files: 
+Starting at line 2741 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2461 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
+	{ 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I },
+	{ 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },
+	{ 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I },
+	{ 0x10 MSO_I, 0x28 MSO_I },	{ 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonMovieSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0012, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 78 line (367 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objuno.cxx
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/meta/xmlmetae.cxx
+
+rtl::OUString lcl_GetProductName()
+{
+    //  get the correct product name from the configuration
+
+    rtl::OUStringBuffer aName;
+
+	// First product: branded name + version
+	// version is <product_versions>_<product_extension>$<platform>
+    utl::ConfigManager* pMgr = utl::ConfigManager::GetConfigManager();
+    if (pMgr)
+    {
+		// plain product name
+        rtl::OUString aValue;
+        uno::Any aAny = pMgr->GetDirectConfigProperty(
+											utl::ConfigManager::PRODUCTNAME);
+        if ( (aAny >>= aValue) && aValue.getLength() )
+		{
+            aName.append( aValue.replace( ' ', '_' ) );
+			aName.append( (sal_Unicode)'/' );
+
+			aAny = pMgr->GetDirectConfigProperty(
+										utl::ConfigManager::PRODUCTVERSION);
+			if ( (aAny >>= aValue) && aValue.getLength() )
+			{
+				aName.append( aValue.replace( ' ', '_' ) );
+
+				aAny = pMgr->GetDirectConfigProperty(
+										utl::ConfigManager::PRODUCTEXTENSION);
+				if ( (aAny >>= aValue) && aValue.getLength() )
+				{
+					aName.append( (sal_Unicode)'_' );
+					aName.append( aValue.replace( ' ', '_' ) );
+				}
+			}
+
+			aName.append( (sal_Unicode)'$' );
+			aName.append( ::rtl::OUString::createFromAscii( 
+									TOOLS_INETDEF_OS ).replace( ' ', '_' ) );
+
+			aName.append( (sal_Unicode)' ' );
+		}
+    }
+
+	// second product: OpenOffice.org_project/<build_information>
+	// build_information has '(' and '[' encoded as '$', ')' and ']' ignored
+	// and ':' replaced by '-'
+	{
+		aName.appendAscii( sOpenOfficeOrgProject );
+		aName.append( (sal_Unicode)'/' );
+        ::rtl::OUString aDefault;
+        ::rtl::OUString aBuildId( utl::Bootstrap::getBuildIdData( aDefault ) );
+		for( sal_Int32 i=0; i < aBuildId.getLength(); i++ )
+		{
+			sal_Unicode c = aBuildId[i];
+			switch( c )
+			{
+			case '(':
+			case '[':
+				aName.append( (sal_Unicode)'$' );
+				break;
+			case ')':
+			case ']':
+				break;
+			case ':':
+				aName.append( (sal_Unicode)'-' );
+				break;
+			default:
+				aName.append( c );
+				break;
+			}
+		}
+	}
+
+
+    return aName.makeStringAndClear();
+}
+
+void SfxXMLMetaExport::Export()
+=====================================================================
+Found a 14 line (367 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 764 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0,// 33f0 - 33ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d00 - 4d0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d10 - 4d1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d20 - 4d2f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d30 - 4d3f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d40 - 4d4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d50 - 4d5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d60 - 4d6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d70 - 4d7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d80 - 4d8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d90 - 4d9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4da0 - 4daf
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+=====================================================================
+Found a 55 line (366 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/nlist.c
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_nlist.c
+
+    static Token deftoken[1] = {{NAME, 0, 0, 7, (uchar *) "defined", 0}};
+    static Tokenrow deftr = {deftoken, deftoken, deftoken + 1, 1};
+
+    for (kp = kwtab; kp->kw; kp++)
+    {
+        t.t = (uchar *) kp->kw;
+        t.len = strlen(kp->kw);
+        np = lookup(&t, 1);
+        np->flag = (char) kp->flag;
+        np->val = (char) kp->val;
+        if (np->val == KDEFINED)
+        {
+            kwdefined = np;
+            np->val = NAME;
+            np->vp = &deftr;
+            np->ap = 0;
+        }
+    }
+}
+
+Nlist *
+    lookup(Token * tp, int install)
+{
+    unsigned int h;
+    Nlist *np;
+    uchar *cp, *cpe;
+
+    h = 0;
+    for (cp = tp->t, cpe = cp + tp->len; cp < cpe;)
+        h += *cp++;
+    h %= NLSIZE;
+    np = nlist[h];
+    while (np)
+    {
+        if (*tp->t == *np->name && tp->len == (unsigned int)np->len
+            && strncmp((char *)tp->t, (char *)np->name, tp->len) == 0)
+            return np;
+        np = np->next;
+    }
+    if (install)
+    {
+        np = new(Nlist);
+        np->vp = NULL;
+        np->ap = NULL;
+        np->flag = 0;
+        np->val = 0;
+        np->len = tp->len;
+        np->name = newstring(tp->t, tp->len, 0);
+        np->next = nlist[h];
+        nlist[h] = np;
+        quickset(tp->t[0], tp->len > 1 ? tp->t[1] : 0);
+        return np;
+    }
+    return NULL;
+}
+=====================================================================
+Found a 71 line (366 tokens) duplication in the following files: 
+Starting at line 1106 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 1007 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+void MenuBarManager::UpdateSpecialWindowMenu( Menu* pMenu )
+{
+	// update window list
+	::std::vector< ::rtl::OUString > aNewWindowListVector;
+
+	// #110897#
+	// Reference< XDesktop > xDesktop( ::comphelper::getProcessServiceFactory()->createInstance( DESKTOP_SERVICE ), UNO_QUERY );
+	Reference< XDesktop > xDesktop( getServiceFactory()->createInstance( DESKTOP_SERVICE ), UNO_QUERY );
+
+	USHORT	nActiveItemId = 0;
+	USHORT	nItemId = START_ITEMID_WINDOWLIST;
+
+	if ( xDesktop.is() )
+	{
+        Reference< XFramesSupplier > xTasksSupplier( xDesktop, UNO_QUERY );
+		Reference< XFrame > xCurrentFrame = xDesktop->getCurrentFrame();
+        Reference< XIndexAccess > xList( xTasksSupplier->getFrames(), UNO_QUERY );
+        sal_Int32 nCount = xList->getCount();
+        for (sal_Int32 i=0; i<nCount; ++i )
+		{
+            Any aItem = xList->getByIndex(i);
+            Reference< XFrame > xFrame;
+            aItem >>= xFrame;
+            if (xFrame.is())
+            {
+                if ( xFrame == xCurrentFrame )
+                    nActiveItemId = nItemId;
+
+                Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
+                if ( pWin && pWin->IsVisible() )
+                {
+                    aNewWindowListVector.push_back( pWin->GetText() );
+                    ++nItemId;
+                }
+            }
+		}
+	}
+
+	{
+		ResetableGuard aGuard( m_aLock );
+
+		int	nItemCount = pMenu->GetItemCount();
+
+		if ( nItemCount > 0 )
+		{
+			// remove all old window list entries from menu
+			sal_uInt16 nPos = pMenu->GetItemPos( START_ITEMID_WINDOWLIST );
+            for ( sal_uInt16 n = nPos; n < pMenu->GetItemCount(); )
+                pMenu->RemoveItem( n );
+
+			if ( pMenu->GetItemType( pMenu->GetItemCount()-1 ) == MENUITEM_SEPARATOR )
+                pMenu->RemoveItem( pMenu->GetItemCount()-1 );
+		}
+
+		if ( aNewWindowListVector.size() > 0 )
+		{
+			// append new window list entries to menu
+			pMenu->InsertSeparator();
+			nItemId = START_ITEMID_WINDOWLIST;
+			for ( sal_uInt32 i = 0; i < aNewWindowListVector.size(); i++ )
+			{
+				pMenu->InsertItem( nItemId, aNewWindowListVector.at( i ), MIB_RADIOCHECK );
+				if ( nItemId == nActiveItemId )
+					pMenu->CheckItem( nItemId );
+				++nItemId;
+			}
+		}
+	}
+}
+
+void MenuBarManager::CheckAndAddMenuExtension( Menu* pMenu )
+=====================================================================
+Found a 57 line (366 tokens) duplication in the following files: 
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1011 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testUnsignedHyper() {
+=====================================================================
+Found a 68 line (366 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdate.cxx
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+				pVal->PutInt64( n );
+			else
+				SbxBase::SetError( SbxERR_NO_OBJECT );
+			break;
+		}
+		case SbxBYREF | SbxCHAR:
+			if( n > SbxMAXCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXCHAR;
+			}
+			else if( n < SbxMINCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINCHAR;
+			}
+			*p->pChar = (xub_Unicode) n; break;
+		case SbxBYREF | SbxBYTE:
+			if( n > SbxMAXBYTE )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXBYTE;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pByte = (BYTE) n; break;
+		case SbxBYREF | SbxINTEGER:
+		case SbxBYREF | SbxBOOL:
+			if( n > SbxMAXINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXINT;
+			}
+			else if( n < SbxMININT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMININT;
+			}
+			*p->pInteger = (INT16) n; break;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			if( n > SbxMAXUINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXUINT;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pUShort = (UINT16) n; break;
+		case SbxBYREF | SbxLONG:
+			if( n > SbxMAXLNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXLNG;
+			}
+			else if( n < SbxMINLNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINLNG;
+			}
+			*p->pLong = (INT32) n; break;
+		case SbxBYREF | SbxULONG:
+			if( n > SbxMAXULNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXULNG;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pULong = (UINT32) n; break;
+		case SbxBYREF | SbxSINGLE:
+=====================================================================
+Found a 47 line (365 tokens) duplication in the following files: 
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+		if (tp->type != NAME
+			|| quicklook(tp->t[0], tp->len > 1 ? tp->t[1] : 0) == 0
+			|| (np = lookup(tp, 0)) == NULL
+			|| (np->flag & (ISDEFINED | ISMAC)) == 0
+			|| (np->flag & ISACTIVE) != 0)
+		{
+			tp++;
+			continue;
+		}
+		trp->tp = tp;
+		if (np->val == KDEFINED)
+		{
+			tp->type = DEFINED;
+			if ((tp + 1) < trp->lp && (tp + 1)->type == NAME)
+				(tp + 1)->type = NAME1;
+			else
+				if ((tp + 3) < trp->lp && (tp + 1)->type == LP
+					&& (tp + 2)->type == NAME && (tp + 3)->type == RP)
+					(tp + 2)->type = NAME1;
+				else
+					error(ERROR, "Incorrect syntax for `defined'");
+			tp++;
+			continue;
+		}
+		else
+			if (np->val == KMACHINE)
+			{
+				if (((tp - 1) >= trp->bp) && ((tp - 1)->type == SHARP))
+				{
+					tp->type = ARCHITECTURE;
+					if ((tp + 1) < trp->lp && (tp + 1)->type == NAME)
+						(tp + 1)->type = NAME2;
+					else
+						if ((tp + 3) < trp->lp && (tp + 1)->type == LP
+							&& (tp + 2)->type == NAME && (tp + 3)->type == RP)
+							(tp + 2)->type = NAME2;
+						else
+							error(ERROR, "Incorrect syntax for `#machine'");
+				}
+				tp++;
+				continue;
+			}
+
+		if (np->flag & ISMAC)
+			builtin(trp, np->val);
+		else
+			expand(trp, np, &validators);
+=====================================================================
+Found a 58 line (365 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/tos/tempnam.c
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsdarm32/tempnam.c
+
+const char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+     if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+	if( access( cpdir(p, P_tmpdir),   3) != 0 )
+	   if( access( cpdir(p, "/tmp"),  3) != 0 )
+	      return(NULL);
+
+   (void) strcat(p, "/");
+   if(prefix)
+   {
+      *(p+strlen(p)+5) = '\0';
+      (void)strncat(p, prefix, 5);
+   }
+
+   (void)strcat(p, seed);
+   (void)strcat(p, "XXXXXX");
+
+   q = seed;
+   while(*q == 'Z') *q++ = 'A';
+   ++*q;
+
+   if(*mktemp(p) == '\0') return(NULL);
+   return(p);
+}
+
+
+
+
+static char *
+cpdir(buf, str)
+char *buf;
+char *str;
+{
+   char *p;
+
+   if(str != NULL)
+   {
+      (void) strcpy(buf, str);
+      p = buf - 1 + strlen(buf);
+      if(*p == '/') *p = '\0';
+   }
+
+   return(buf);
+}
+=====================================================================
+Found a 57 line (365 tokens) duplication in the following files: 
+Starting at line 817 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1302 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testChar() {
+=====================================================================
+Found a 13 line (363 tokens) duplication in the following files: 
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14b0 - 14bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14c0 - 14cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14d0 - 14df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14e0 - 14ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14f0 - 14ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1600 - 160f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1610 - 161f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1620 - 162f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1630 - 163f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1640 - 164f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1650 - 165f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,23,23, 5,// 1660 - 166f
+=====================================================================
+Found a 73 line (363 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesconfiguration.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesconfiguration.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::xml::sax;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::io;
+
+
+namespace framework
+{
+
+SV_IMPL_PTRARR( ImageItemListDescriptor, ImageItemDescriptorPtr );
+SV_IMPL_PTRARR( ExternalImageItemListDescriptor, ExternalImageItemDescriptorPtr ); 
+SV_IMPL_PTRARR( ImageListDescriptor, ImageListItemDescriptorPtr );
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	//return Reference< XParser >( xServiceManager->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	//return Reference< XDocumentHandler >( xServiceManager->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ImagesConfiguration::LoadImages( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+	SvStream& rInStream, ImageListsDescriptor& aItems )
+{
+	Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
+	Reference< XInputStream > xInputStream( 
+								(::cppu::OWeakObject *)new utl::OInputStreamWrapper( rInStream ), 
+								UNO_QUERY );
+
+	// connect stream to input stream to the parser
+	InputSource aInputSource;
+
+	aInputSource.aInputStream = xInputStream;
+
+	// create namespace filter and set document handler inside to support xml namespaces
+	Reference< XDocumentHandler > xDocHandler( new OReadImagesDocumentHandler( aItems ));
+	Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
+
+	// connect parser and filter
+	xParser->setDocumentHandler( xFilter );
+
+	try
+	{
+		xParser->parseStream( aInputSource );
+		return sal_True;
+	}
+	catch ( RuntimeException& )
+	{
+		return sal_False;
+	}
+	catch( SAXException& )
+	{
+		return sal_False;
+	}
+	catch( ::com::sun::star::io::IOException& )
+	{
+		return sal_False;
+	}
+=====================================================================
+Found a 22 line (362 tokens) duplication in the following files: 
+Starting at line 1631 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1718 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+
+				const MetaChordAction*	pA = (const MetaChordAction*) pMA;
+				Point					aStartPos,aCenter;
+				double					fdx,fdy,fa1,fa2;
+
+				aCenter.X()=(pA->GetRect().Left()+pA->GetRect().Right())/2;
+				aCenter.Y()=(pA->GetRect().Top()+pA->GetRect().Bottom())/2;
+				fdx=(double)(pA->GetStartPoint().X()-aCenter.X());
+				fdy=(double)(pA->GetStartPoint().Y()-aCenter.Y());
+				fdx*=(double)pA->GetRect().GetHeight();
+				fdy*=(double)pA->GetRect().GetWidth();
+				if (fdx==0.0 && fdy==0.0) fdx=1.0;
+				fa1=atan2(-fdy,fdx);
+				fdx=(double)(pA->GetEndPoint().X()-aCenter.X());
+				fdy=(double)(pA->GetEndPoint().Y()-aCenter.Y());
+				fdx*=(double)pA->GetRect().GetHeight();
+				fdy*=(double)pA->GetRect().GetWidth();
+				if (fdx==0.0 && fdy==0.0) fdx=1.0;
+				fa2=atan2(-fdy,fdx);
+				aStartPos.X()=aCenter.X()+(long)(((double)pA->GetRect().GetWidth())*cos(fa1)/2.0+0.5);
+				aStartPos.Y()=aCenter.Y()-(long)(((double)pA->GetRect().GetHeight())*sin(fa1)/2.0+0.5);
+
+				if( aGDIFillColor != Color( COL_TRANSPARENT ) )
+=====================================================================
+Found a 54 line (362 tokens) duplication in the following files: 
+Starting at line 1108 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2143 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+=====================================================================
+Found a 206 line (362 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx
+
+                        sal_Int32 nStackLongs )
+{
+	// parameter list is mixed list of * and values
+	// reference parameters are pointers
+
+	OSL_ENSURE( pStackLongs && pAdjustedThisPtr, "### null ptr!" );
+	OSL_ENSURE( (sizeof(void *) == 4) &&
+				 (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
+	OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
+
+    // never called
+    if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
+
+	volatile long o0 = 0, o1 = 0; // for register returns
+	volatile double f0d = 0;
+	volatile float f0f = 0;
+	volatile long long saveReg[7];
+
+	__asm__ (
+		// save registers
+		"std %%l0, [%4]\n\t"
+		"mov %4, %%l0\n\t"
+		"mov %%l0, %%l1\n\t"
+		"add %%l0, 8, %%l0\n\t"
+		"std %%l2, [%%l0]\n\t"
+		"add %%l0, 8, %%l0\n\t"
+		"std %%l4, [%%l0]\n\t"
+		"add %%l0, 8, %%l0\n\t"
+		"std %%o0, [%%l0]\n\t"
+		"add %%l0, 8, %%l0\n\t"
+		"std %%o2, [%%l0]\n\t"
+		"add %%l0, 8, %%l0\n\t"
+		"std %%o4, [%%l0]\n\t"
+		"add %%l0, 8, %%l0\n\t"
+		"std %%l6, [%%l0]\n\t"
+		"mov %%l1, %%l7\n\t"
+
+		// increase our own stackframe if necessary
+		"mov %%sp, %%l3\n\t"		// save stack ptr for readjustment
+
+		"subcc %%i5, 7, %%l0\n\t"
+		"ble .LmoveOn\n\t"
+		"nop\n\t"
+
+		"sll %%l0, 2, %%l0\n\t"
+		"add %%l0, 96, %%l0\n\t"
+		"mov %%sp, %%l1\n\t"		// old stack ptr
+		"sub %%sp, %%l0, %%l0\n\t"	// future stack ptr
+		"andcc %%l0, 7, %%g0\n\t"	// align stack to 8
+		"be .LisAligned\n\t"
+		"nop\n\t"
+		"sub %%l0, 4, %%l0\n"
+	".LisAligned:\n\t"
+		"mov %%l0, %%o5\n\t"			// save newly computed stack ptr
+		"add %%g0, 16, %%o4\n"
+
+		// now copy longs down to save register window
+		// and local variables
+	".LcopyDown:\n\t"
+		"ld [%%l1], %%l2\n\t"
+		"st %%l2,[%%l0]\n\t"
+		"add %%l0, 4, %%l0\n\t"
+		"add %%l1, 4, %%l1\n\t"
+		"subcc %%o4, 1, %%o4\n\t"
+		"bne .LcopyDown\n\t"
+
+		"mov %%o5, %%sp\n\t"		// move new stack ptr (hopefully) atomically
+		// while register window is valid in both spaces
+		// (scheduling might hit in copyDown loop)
+
+		"sub %%i5, 7, %%l0\n\t"		// copy parameters past the sixth to stack
+		"add %%i4, 28, %%l1\n\t"
+		"add %%sp, 92, %%l2\n"
+	".LcopyLong:\n\t"
+		"ld [%%l1], %%o0\n\t"
+		"st %%o0, [%%l2]\n\t"
+		"add %%l1, 4, %%l1\n\t"
+		"add %%l2, 4, %%l2\n\t"
+		"subcc %%l0, 1, %%l0\n\t"
+		"bne .LcopyLong\n\t"
+		"nop\n"
+
+	".LmoveOn:\n\t"
+		"mov %%i5, %%l0\n\t"		// prepare out registers
+		"mov %%i4, %%l1\n\t"
+
+		"ld [%%l1], %%o0\n\t"		// prepare complex return ptr
+		"st %%o0, [%%sp+64]\n\t"
+		"sub %%l0, 1, %%l0\n\t"
+		"add %%l1, 4, %%l1\n\t"
+
+		"ld [%%l1], %%o0\n\t"
+		"subcc %%l0, 1, %%l0\n\t"
+		"be .LdoCall\n\t"
+		"nop\n\t"
+
+		"add %%l1, 4, %%l1\n\t"
+		"ld [%%l1], %%o1\n\t"
+		"subcc %%l0, 1, %%l0\n\t"
+		"be .LdoCall\n\t"
+		"nop\n\t"
+
+		"add %%l1, 4, %%l1\n\t"
+		"ld [%%l1], %%o2\n\t"
+		"subcc %%l0, 1, %%l0\n\t"
+		"be .LdoCall\n\t"
+		"nop\n\t"
+
+		"add %%l1, 4, %%l1\n\t"
+		"ld [%%l1], %%o3\n\t"
+		"subcc %%l0, 1, %%l0\n\t"
+		"be .LdoCall\n\t"
+		"nop\n\t"
+
+		"add %%l1, 4, %%l1\n\t"
+		"ld [%%l1], %%o4\n\t"
+		"subcc %%l0, 1, %%l0\n\t"
+		"be .LdoCall\n\t"
+		"nop\n\t"
+
+		"add %%l1, 4, %%l1\n\t"
+		"ld [%%l1], %%o5\n"
+
+	".LdoCall:\n\t"
+		"ld [%%i0], %%l0\n\t"		// get vtable ptr
+
+"sll %%i1, 2, %%l6\n\t"
+//        "add %%l6, 8, %%l6\n\t"
+		"add %%l6, %%l0, %%l0\n\t"
+// 		// vtable has 8byte wide entries,
+// 		// upper half contains 2 half words, of which the first
+// 		// is the this ptr patch !
+// 		// first entry is (or __tf)
+
+// 		"ldsh [%%l0], %%l6\n\t"		// load this ptr patch
+// 		"add %%l6, %%o0, %%o0\n\t"	// patch this ptr
+
+// 		"add %%l0, 4, %%l0\n\t"		// get virtual function ptr
+		"ld [%%l0], %%l0\n\t"
+
+		"ld [%%i4], %%l2\n\t"
+		"subcc %%l2, %%g0, %%l2\n\t"
+		"bne .LcomplexCall\n\t"
+		"nop\n\t"
+		"call %%l0\n\t"
+		"nop\n\t"
+		"ba .LcallReturned\n\t"
+		"nop\n"
+	".LcomplexCall:\n\t"
+		"call %%l0\n\t"
+		"nop\n\t"
+		"unimp\n"
+
+	".LcallReturned:\n\t"
+		"mov %%l3, %%sp\n\t"		// readjust stack so that our locals are where they belong
+		"st %%o0, %0\n\t"			// save possible return registers into our locals
+		"st %%o1, %1\n\t"
+		"std %%f0, %2\n\t"
+		"st %%f0, %3\n\t"
+
+		// restore registers
+		"ldd [%%l7], %%l0\n\t"
+		"add %%l7, 8, %%l7\n\t"
+		"ldd [%%l7], %%l2\n\t"
+		"add %%l7, 8, %%l7\n\t"
+		"ldd [%%l7], %%l4\n\t"
+		"add %%l7, 8, %%l7\n\t"
+		"ldd [%%l7], %%o0\n\t"
+		"add %%l7, 8, %%l7\n\t"
+		"ldd [%%l7], %%o2\n\t"
+		"add %%l7, 8, %%l7\n\t"
+		"ldd [%%l7], %%o4\n\t"
+		"add %%l7, 8, %%l7\n\t"
+		"ldd [%%l7], %%l6\n\t"
+		: :
+		"m"(o0),
+		"m"(o1),
+		"m"(f0d),
+		"m"(f0f),
+		"r"(&saveReg[0])
+		);
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = o1;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = o0;
+			break;
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = (unsigned short)o0;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = (unsigned char)o0;
+			break;
+		case typelib_TypeClass_FLOAT:
+			*(float*)pRegisterReturn = f0f;
+			break;
+		case typelib_TypeClass_DOUBLE:
+			*(double*)pRegisterReturn = f0d;
+			break;
+=====================================================================
+Found a 80 line (361 tokens) duplication in the following files: 
+Starting at line 5555 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+
+SdrObject* SwMSDffManager::ProcessObj(SvStream& rSt,
+									   DffObjData& rObjData,
+									   void* pData,
+									   Rectangle& rTextRect,
+									   SdrObject* pObj
+									   )
+{
+	if( !rTextRect.IsEmpty() )
+	{
+		SvxMSDffImportData& rImportData = *(SvxMSDffImportData*)pData;
+		SvxMSDffImportRec* pImpRec = new SvxMSDffImportRec;
+		SvxMSDffImportRec* pTextImpRec = pImpRec;
+
+		// fill Import Record with data
+		pImpRec->nShapeId   = rObjData.nShapeId;
+		pImpRec->eShapeType = rObjData.eShapeType;
+
+		MSO_WrapMode eWrapMode( (MSO_WrapMode)GetPropertyValue(
+															DFF_Prop_WrapText,
+															mso_wrapSquare ) );
+		rObjData.bClientAnchor = maShapeRecords.SeekToContent( rSt,
+											DFF_msofbtClientAnchor,
+											SEEK_FROM_CURRENT_AND_RESTART );
+		if( rObjData.bClientAnchor )
+			ProcessClientAnchor( rSt,
+					maShapeRecords.Current()->nRecLen,
+					pImpRec->pClientAnchorBuffer, pImpRec->nClientAnchorLen );
+
+		rObjData.bClientData = maShapeRecords.SeekToContent( rSt,
+											DFF_msofbtClientData,
+											SEEK_FROM_CURRENT_AND_RESTART );
+		if( rObjData.bClientData )
+			ProcessClientData( rSt,
+					maShapeRecords.Current()->nRecLen,
+					pImpRec->pClientDataBuffer, pImpRec->nClientDataLen );
+
+
+		// process user (== Winword) defined parameters in 0xF122 record
+		if(    maShapeRecords.SeekToContent( rSt,
+											 DFF_msofbtUDefProp,
+											 SEEK_FROM_CURRENT_AND_RESTART )
+			&& maShapeRecords.Current()->nRecLen )
+		{
+			UINT32  nBytesLeft = maShapeRecords.Current()->nRecLen;
+			UINT32	nUDData;
+			UINT16  nPID;
+			while( 5 < nBytesLeft )
+			{
+				rSt >> nPID;
+				if ( rSt.GetError() != 0 )
+					break;
+				rSt >> nUDData;
+				switch( nPID )
+				{
+					case 0x038F: pImpRec->nXAlign = nUDData; break;
+					case 0x0390: pImpRec->nXRelTo = nUDData; break;
+					case 0x0391: pImpRec->nYAlign = nUDData; break;
+					case 0x0392: pImpRec->nYRelTo = nUDData; break;
+                    case 0x03BF: pImpRec->nLayoutInTableCell = nUDData; break;
+				}
+				if ( rSt.GetError() != 0 )
+					break;
+				pImpRec->bHasUDefProp = TRUE;
+				nBytesLeft  -= 6;
+			}
+		}
+
+		//  Textrahmen, auch Title oder Outline
+		SdrObject*  pOrgObj  = pObj;
+		SdrRectObj* pTextObj = 0;
+		UINT32 nTextId = GetPropertyValue( DFF_Prop_lTxid, 0 );
+		if( nTextId )
+		{
+			SfxItemSet aSet( pSdrModel->GetItemPool() );
+
+            //Originally anything that as a mso_sptTextBox was created as a
+            //textbox, this was changed for #88277# to be created as a simple
+            //rect to keep impress happy. For the rest of us we'd like to turn
+            //it back into a textbox again.
+            FASTBOOL bIsSimpleDrawingTextBox = (pImpRec->eShapeType == mso_sptTextBox);
+=====================================================================
+Found a 51 line (361 tokens) duplication in the following files: 
+Starting at line 5209 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 1884 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+
+	MapMode aOld = GetMapMode(); SetMapMode(MAP_PIXEL);
+
+	SCTAB nTab = pViewData->GetTabNo();
+
+	SCCOL nPosX = pViewData->GetPosX(WhichH(eWhich));
+	SCROW nPosY = pViewData->GetPosY(WhichV(eWhich));
+	if (nX1 < nPosX) nX1 = nPosX;
+	if (nX2 < nPosX) nX2 = nPosX;
+	if (nY1 < nPosY) nY1 = nPosY;
+	if (nY2 < nPosY) nY2 = nPosY;
+
+	Point aScrPos( pViewData->GetScrPos( nX1, nY1, eWhich ) );
+
+	long nSizeXPix=0;
+	long nSizeYPix=0;
+	ScDocument* pDoc = pViewData->GetDocument();
+	double nPPTX = pViewData->GetPPTX();
+	double nPPTY = pViewData->GetPPTY();
+	SCCOLROW i;
+
+	BOOL bLayoutRTL = pDoc->IsLayoutRTL( nTab );
+	long nLayoutSign = bLayoutRTL ? -1 : 1;
+
+    if (ValidCol(nX2) && nX2>=nX1)
+        for (i=nX1; i<=nX2; i++)
+            nSizeXPix += ScViewData::ToPixel( pDoc->GetColWidth( static_cast<SCCOL>(i), nTab ), nPPTX );
+    else
+    {
+        aScrPos.X() -= nLayoutSign;
+        nSizeXPix   += 2;
+    }
+
+	if (ValidRow(nY2) && nY2>=nY1)
+		for (i=nY1; i<=nY2; i++)
+			nSizeYPix += ScViewData::ToPixel( pDoc->GetRowHeight( i, nTab ), nPPTY );
+	else
+	{
+		aScrPos.Y() -= 1;
+		nSizeYPix   += 2;
+	}
+
+	aScrPos.X() -= 2 * nLayoutSign;
+	aScrPos.Y() -= 2;
+//	Rectangle aRect( aScrPos, Size( nSizeXPix + 3, nSizeYPix + 3 ) );
+	Rectangle aRect( aScrPos.X(), aScrPos.Y(),
+					 aScrPos.X() + ( nSizeXPix + 2 ) * nLayoutSign, aScrPos.Y() + nSizeYPix + 2 );
+	if ( bLayoutRTL )
+	{
+		aRect.Left() = aRect.Right();	// end position is left
+		aRect.Right() = aScrPos.X();
+	}
+=====================================================================
+Found a 13 line (361 tokens) duplication in the following files: 
+Starting at line 979 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1472 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a400 - a40f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a410 - a41f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a420 - a42f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a430 - a43f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a440 - a44f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a450 - a45f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a460 - a46f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a470 - a47f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a480 - a48f
+=====================================================================
+Found a 16 line (360 tokens) duplication in the following files: 
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/defltuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_CFCHARS),	ATTR_FONT,			&getCppuType((sal_Int16*)0),		0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),		0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),		0, MID_FONT_CHAR_SET },
+		{MAP_CHAR_LEN(SC_UNONAME_CFFAMIL),	ATTR_FONT,			&getCppuType((sal_Int16*)0),		0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),		0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),		0, MID_FONT_FAMILY },
+		{MAP_CHAR_LEN(SC_UNONAME_CFNAME),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),	0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFNAME),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),	0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFNAME),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),	0, MID_FONT_FAMILY_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CFPITCH),	ATTR_FONT,			&getCppuType((sal_Int16*)0),		0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH),	ATTR_CJK_FONT,		&getCppuType((sal_Int16*)0),		0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH),	ATTR_CTL_FONT,		&getCppuType((sal_Int16*)0),		0, MID_FONT_PITCH },
+		{MAP_CHAR_LEN(SC_UNONAME_CFSTYLE),	ATTR_FONT,			&getCppuType((rtl::OUString*)0),	0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE),	ATTR_CJK_FONT,		&getCppuType((rtl::OUString*)0),	0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE),	ATTR_CTL_FONT,		&getCppuType((rtl::OUString*)0),	0, MID_FONT_STYLE_NAME },
+		{MAP_CHAR_LEN(SC_UNONAME_CLOCAL),	ATTR_FONT_LANGUAGE,	&getCppuType((lang::Locale*)0),		0, MID_LANG_LOCALE },
+=====================================================================
+Found a 43 line (360 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/tempnam.c
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/tempnam.c
+
+dtempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+=====================================================================
+Found a 77 line (359 tokens) duplication in the following files: 
+Starting at line 785 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/smdetect.cxx
+
+                    }
+				}
+			}
+		}
+	}
+
+    if ( nIndexOfInputStream == -1 && xStream.is() )
+    {
+        // if input stream wasn't part of the descriptor, now it should be, otherwise the content would be opend twice
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("InputStream");
+        lDescriptor[nPropertyCount].Value <<= xStream;
+        nPropertyCount++;
+    }
+
+    if ( nIndexOfContent == -1 && xContent.is() )
+    {
+        // if input stream wasn't part of the descriptor, now it should be, otherwise the content would be opend twice
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("UCBContent");
+        lDescriptor[nPropertyCount].Value <<= xContent;
+        nPropertyCount++;
+    }
+
+    if ( bReadOnly != bWasReadOnly )
+    {
+        if ( nIndexOfReadOnlyFlag == -1 )
+        {
+            lDescriptor.realloc( nPropertyCount + 1 );
+            lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("ReadOnly");
+            lDescriptor[nPropertyCount].Value <<= bReadOnly;
+            nPropertyCount++;
+        }
+        else
+            lDescriptor[nIndexOfReadOnlyFlag].Value <<= bReadOnly;
+    }
+
+	if ( !bRepairPackage && bRepairAllowed )
+	{
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("RepairPackage");
+        lDescriptor[nPropertyCount].Value <<= bRepairAllowed;
+        nPropertyCount++;
+
+		bOpenAsTemplate = sal_True;
+
+		// TODO/LATER: set progress bar that should be used
+	}
+
+	if ( bOpenAsTemplate )
+	{
+		if ( nIndexOfTemplateFlag == -1 )
+		{
+        	lDescriptor.realloc( nPropertyCount + 1 );
+        	lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("AsTemplate");
+        	lDescriptor[nPropertyCount].Value <<= bOpenAsTemplate;
+        	nPropertyCount++;
+		}
+		else
+        	lDescriptor[nIndexOfTemplateFlag].Value <<= bOpenAsTemplate;
+	}
+
+	if ( aDocumentTitle.getLength() )
+	{
+		// the title was set here
+		if ( nIndexOfDocumentTitle == -1 )
+		{
+        	lDescriptor.realloc( nPropertyCount + 1 );
+        	lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("DocumentTitle");
+        	lDescriptor[nPropertyCount].Value <<= aDocumentTitle;
+        	nPropertyCount++;
+		}
+		else
+        	lDescriptor[nIndexOfDocumentTitle].Value <<= aDocumentTitle;
+	}
+
+    if ( !aFilterName.Len() )
+=====================================================================
+Found a 63 line (358 tokens) duplication in the following files: 
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hdft.cxx
+Starting at line 1303 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/page.cxx
+
+void SvxPageDescPage::ResetBackground_Impl( const SfxItemSet& rSet )
+{
+	USHORT nWhich = GetWhich( SID_ATTR_PAGE_HEADERSET );
+
+	if ( rSet.GetItemState( nWhich, FALSE ) == SFX_ITEM_SET )
+	{
+		const SvxSetItem& rSetItem =
+			(const SvxSetItem&)rSet.Get( nWhich, FALSE );
+		const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
+		const SfxBoolItem& rOn =
+			(const SfxBoolItem&)rTmpSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+
+		if ( rOn.GetValue() )
+		{
+			nWhich = GetWhich( SID_ATTR_BRUSH );
+
+			if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				const SvxBrushItem& rItem =
+					(const SvxBrushItem&)rTmpSet.Get( nWhich );
+				aBspWin.SetHdColor( rItem.GetColor() );
+			}
+			nWhich = GetWhich( SID_ATTR_BORDER_OUTER );
+
+			if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				const SvxBoxItem& rItem =
+					(const SvxBoxItem&)rTmpSet.Get( nWhich );
+				aBspWin.SetHdBorder( rItem );
+			}
+		}
+	}
+
+	nWhich = GetWhich( SID_ATTR_PAGE_FOOTERSET );
+
+	if ( rSet.GetItemState( nWhich, FALSE ) == SFX_ITEM_SET )
+	{
+		const SvxSetItem& rSetItem =
+			(const SvxSetItem&)rSet.Get( nWhich, FALSE );
+		const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
+		const SfxBoolItem& rOn =
+			(const SfxBoolItem&)rTmpSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+
+		if ( rOn.GetValue() )
+		{
+			nWhich = GetWhich( SID_ATTR_BRUSH );
+
+			if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				const SvxBrushItem& rItem =
+					(const SvxBrushItem&)rTmpSet.Get( nWhich );
+				aBspWin.SetFtColor( rItem.GetColor() );
+			}
+			nWhich = GetWhich( SID_ATTR_BORDER_OUTER );
+
+			if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				const SvxBoxItem& rItem =
+					(const SvxBoxItem&)rTmpSet.Get( nWhich );
+				aBspWin.SetFtBorder( rItem );
+			}
+		}
+	}
+=====================================================================
+Found a 51 line (358 tokens) duplication in the following files: 
+Starting at line 36 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/tempnam.c
+
+extern char *mktemp();
+extern int access();
+int d_access();
+
+/* MSC stdio.h defines P_tmpdir, so let's undo it here */
+/* Under DOS leave the default tmpdir pointing here!		*/
+#ifdef P_tmpdir
+#undef P_tmpdir
+#endif
+static char *P_tmpdir = "";
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+=====================================================================
+Found a 60 line (358 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1673 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+=====================================================================
+Found a 42 line (358 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/surface.cxx
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/surface.cxx
+
+		const ::basegfx::B2DPoint& p3(aTransform * ::basegfx::B2DPoint(aSize.getX(),0.0));
+
+		canvas::Vertex vertex;
+		vertex.r = 1.0f;
+		vertex.g = 1.0f;
+		vertex.b = 1.0f;
+		vertex.a = static_cast<float>(fAlpha);
+		vertex.z = 0.0f;
+
+        {
+            pRenderModule->beginPrimitive( canvas::IRenderModule::PRIMITIVE_TYPE_QUAD );
+
+            // issue an endPrimitive() when leaving the scope
+            const ::comphelper::ScopeGuard aScopeGuard(
+                boost::bind( &::canvas::IRenderModule::endPrimitive,
+                             ::boost::ref(pRenderModule) ) );
+
+            vertex.u=static_cast<float>(u2); vertex.v=static_cast<float>(v2);
+            vertex.x=static_cast<float>(p0.getX()); vertex.y=static_cast<float>(p0.getY());
+            pRenderModule->pushVertex(vertex);
+
+            vertex.u=static_cast<float>(u1); vertex.v=static_cast<float>(v2);
+            vertex.x=static_cast<float>(p1.getX()); vertex.y=static_cast<float>(p1.getY());
+            pRenderModule->pushVertex(vertex);
+
+            vertex.u=static_cast<float>(u1); vertex.v=static_cast<float>(v1);
+            vertex.x=static_cast<float>(p2.getX()); vertex.y=static_cast<float>(p2.getY());
+            pRenderModule->pushVertex(vertex);
+
+            vertex.u=static_cast<float>(u2); vertex.v=static_cast<float>(v1);
+            vertex.x=static_cast<float>(p3.getX()); vertex.y=static_cast<float>(p3.getY());
+            pRenderModule->pushVertex(vertex);
+        }
+
+		return !(pRenderModule->isError());
+	}
+
+	//////////////////////////////////////////////////////////////////////////////////
+	// Surface::drawWithClip
+	//////////////////////////////////////////////////////////////////////////////////
+
+	bool Surface::drawWithClip( double                          fAlpha,
+=====================================================================
+Found a 89 line (358 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+{
+}
+//__________________________________________________________________________________________________
+RTTI::~RTTI() SAL_THROW( () )
+{
+    dlclose( m_hApp );
+}
+
+//__________________________________________________________________________________________________
+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
+{
+    type_info * rtti;
+
+    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+
+    MutexGuard guard( m_mutex );
+    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+=====================================================================
+Found a 86 line (357 tokens) duplication in the following files: 
+Starting at line 932 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docbm.cxx
+Starting at line 1073 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docbm.cxx
+
+				}
+				break;
+
+			case 0x0800:
+			case 0x0801:
+				{
+					USHORT nCnt = 0;
+					SwCrsrShell* pShell = pDoc->GetEditShell();
+					if( pShell )
+					{
+						FOREACHSHELL_START( pShell )
+							register SwPaM *_pStkCrsr = PCURSH->GetStkCrsr();
+							if( _pStkCrsr )
+							do {
+								if( aSave.GetCount() == nCnt )
+								{
+									pPos = &_pStkCrsr->GetBound( 0x0800 ==
+												aSave.GetType() );
+									break;
+								}
+								++nCnt;
+							} while ( (_pStkCrsr != 0 ) &&
+								((_pStkCrsr=(SwPaM *)_pStkCrsr->GetNext()) != PCURSH->GetStkCrsr()) );
+
+							if( pPos )
+								break;
+
+							FOREACHPAM_START( PCURSH->_GetCrsr() )
+								if( aSave.GetCount() == nCnt )
+								{
+									pPos = &PCURCRSR->GetBound( 0x0800 ==
+												aSave.GetType() );
+									break;
+								}
+								++nCnt;
+							FOREACHPAM_END()
+							if( pPos )
+								break;
+
+						FOREACHSHELL_END( pShell )
+					}
+				}
+				break;
+
+			case 0x0400:
+			case 0x0401:
+				{
+					USHORT nCnt = 0;
+					register const SwUnoCrsrTbl& rTbl = pDoc->GetUnoCrsrTbl();
+					for( USHORT i = 0; i < rTbl.Count(); ++i )
+					{
+						FOREACHPAM_START( rTbl[ i ] )
+							if( aSave.GetCount() == nCnt )
+							{
+								pPos = &PCURCRSR->GetBound( 0x0400 ==
+													aSave.GetType() );
+								break;
+							}
+							++nCnt;
+						FOREACHPAM_END()
+						if( pPos )
+							break;
+
+						SwUnoTableCrsr* pUnoTblCrsr = (SwUnoTableCrsr*)*rTbl[ i ];
+						if( pUnoTblCrsr )
+						{
+							FOREACHPAM_START( &pUnoTblCrsr->GetSelRing() )
+								if( aSave.GetCount() == nCnt )
+								{
+									pPos = &PCURCRSR->GetBound( 0x0400 ==
+													aSave.GetType() );
+									break;
+								}
+								++nCnt;
+							FOREACHPAM_END()
+						}
+						if( pPos )
+							break;
+					}
+				}
+				break;
+			}
+
+			if( pPos )
+			{
+				pPos->nNode = rNd;
+=====================================================================
+Found a 63 line (357 tokens) duplication in the following files: 
+Starting at line 3838 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3904 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+void ScInterpreter::ScIntercept()
+{
+	if ( !MustHaveParamCount( GetByte(), 2 ) )
+		return;
+	ScMatrixRef pMat1 = GetMatrix();
+	ScMatrixRef pMat2 = GetMatrix();
+	if (!pMat1 || !pMat2)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	SCSIZE nC1, nC2;
+	SCSIZE nR1, nR2;
+	pMat1->GetDimensions(nC1, nR1);
+	pMat2->GetDimensions(nC2, nR2);
+	if (nR1 != nR2 || nC1 != nC2)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	// #i78250# numerical stability improved
+	double fCount           = 0.0;
+	double fSumX            = 0.0;
+	double fSumY            = 0.0;
+	double fSumDeltaXDeltaY = 0.0; // sum of (ValX-MeanX)*(ValY-MeanY)
+	double fSumSqrDeltaX    = 0.0; // sum of (ValX-MeanX)^2
+	for (SCSIZE i = 0; i < nC1; i++)
+    {
+		for (SCSIZE j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				double fValX = pMat1->GetDouble(i,j);
+				double fValY = pMat2->GetDouble(i,j);
+				fSumX += fValX;
+				fSumY += fValY;
+				fCount++;
+			}
+		}
+    }
+	if (fCount < 1.0)
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+                    fSumSqrDeltaX    += (fValX - fMeanX) * (fValX - fMeanX);
+                }
+            }
+        }
+		if (fSumSqrDeltaX == 0.0)
+            PushError( errDivisionByZero);
+		else
+			PushDouble( fMeanY - fSumDeltaXDeltaY / fSumSqrDeltaX * fMeanX);
+=====================================================================
+Found a 13 line (357 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4df0 - 4dff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f00 - 9f0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f10 - 9f1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f20 - 9f2f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f30 - 9f3f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f40 - 9f4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f50 - 9f5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f60 - 9f6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f70 - 9f7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f80 - 9f8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f90 - 9f9f
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fa0 - 9faf
+=====================================================================
+Found a 10 line (357 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05c0 - 05c7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05c8 - 05cf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05d0 - 05d7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05d8 - 05df
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05e0 - 05e7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05e8 - 05ef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05f0 - 05f7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 05f8 - 05ff
+
+    {0x6a, 0x1E01}, {0x15, 0x1E00}, {0x6a, 0x1E03}, {0x15, 0x1E02}, {0x6a, 0x1E05}, {0x15, 0x1E04}, {0x6a, 0x1E07}, {0x15, 0x1E06}, // 1e00 - 1e07
+=====================================================================
+Found a 64 line (356 tokens) duplication in the following files: 
+Starting at line 1270 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/helper/xsecctl.cxx
+
+			sHundredth = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"));
+        }
+    }
+    else
+        aDateStr = rString;         // no separator: only date part
+
+    sal_Int32 nYear  = 1899;
+    sal_Int32 nMonth = 12;
+    sal_Int32 nDay   = 30;
+    sal_Int32 nHour  = 0;
+    sal_Int32 nMin   = 0;
+    sal_Int32 nSec   = 0;
+
+    const sal_Unicode* pStr = aDateStr.getStr();
+    sal_Int32 nDateTokens = 1;
+    while ( *pStr )
+    {
+        if ( *pStr == '-' )
+            nDateTokens++;
+        pStr++;
+    }
+    if ( nDateTokens > 3 || aDateStr.getLength() == 0 )
+        bSuccess = sal_False;
+    else
+    {
+        sal_Int32 n = 0;
+        if ( !convertNumber( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) )
+            bSuccess = sal_False;
+        if ( nDateTokens >= 2 )
+            if ( !convertNumber( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) )
+                bSuccess = sal_False;
+        if ( nDateTokens >= 3 )
+            if ( !convertNumber( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) )
+                bSuccess = sal_False;
+    }
+
+    if ( aTimeStr.getLength() > 0 )           // time is optional
+    {
+        pStr = aTimeStr.getStr();
+        sal_Int32 nTimeTokens = 1;
+        while ( *pStr )
+        {
+            if ( *pStr == ':' )
+                nTimeTokens++;
+            pStr++;
+        }
+        if ( nTimeTokens > 3 )
+            bSuccess = sal_False;
+        else
+        {
+            sal_Int32 n = 0;
+            if ( !convertNumber( nHour, aTimeStr.getToken( 0, ':', n ), 0, 23 ) )
+                bSuccess = sal_False;
+            if ( nTimeTokens >= 2 )
+                if ( !convertNumber( nMin, aTimeStr.getToken( 0, ':', n ), 0, 59 ) )
+                    bSuccess = sal_False;
+            if ( nTimeTokens >= 3 )
+                if ( !convertNumber( nSec, aTimeStr.getToken( 0, ':', n ), 0, 59 ) )
+                    bSuccess = sal_False;
+        }
+    }
+
+    if (bSuccess)
+    {
+=====================================================================
+Found a 60 line (356 tokens) duplication in the following files: 
+Starting at line 367 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 817 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+  double* v = new double[n];
+  if ( !v )
+    return 0;
+
+  for (j = 0; j < n; j++)
+  {
+    for (i = 0; i < j; i++)
+      v[i] = A[j][i]*A[i][i];
+
+    v[j] = A[j][j];
+    for (i = 0; i < j; i++)
+      v[j] -= A[j][i]*v[i];
+
+    A[j][j] = v[j];
+    if ( fabs(v[j]) <= tolerance )
+    {
+      delete[] v;
+      return 0;
+    }
+    for (i = j+1; i < n; i++)
+    {
+      for (k = 0; k < j; k++)
+	A[i][j] -= A[i][k]*v[k];
+      A[i][j] /= v[j];
+    }
+  }
+  delete[] v;
+
+	// Solve Ax = b.
+
+	// Forward substitution:  Let z = DL^t x, then Lz = b.  Algorithm
+	// stores z terms in b vector.
+  for (i = 0; i < n; i++)
+  {
+    for (j = 0; j < i; j++)
+      b[i] -= A[i][j]*b[j];
+
+  }
+
+  // Diagonal division:  Let y = L^t x, then Dy = z.  Algorithm stores
+  // y terms in b vector.
+  for (i = 0; i < n; i++)
+  {
+    if ( fabs(A[i][i]) <= tolerance )
+      return 0;
+    b[i] /= A[i][i];
+  }
+
+  // Back substitution:  Solve L^t x = y.  Algorithm stores x terms in
+  // b vector.
+  for (i = n-2; i >= 0; i--)
+  {
+    for (j = i+1; j < n; j++)
+      b[i] -= A[j][i]*b[j];
+  }
+
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystemD::SymmetricInverse (int n, double** A, double** Ainv)
+=====================================================================
+Found a 63 line (356 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1559 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< css::uno::Type >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type", (a >>= b) && b == getCppuType< sal_Int32 >());
+=====================================================================
+Found a 67 line (356 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/misc/componentcontext.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/propctrlr/pcrcomponentcontext.cxx
+
+{
+//........................................................................
+
+    /** === begin UNO using === **/
+    using ::com::sun::star::uno::Reference;
+    using ::com::sun::star::uno::XComponentContext;
+    using ::com::sun::star::lang::NullPointerException;
+    using ::com::sun::star::lang::ServiceNotRegisteredException;
+    using ::com::sun::star::uno::Exception;
+    using ::com::sun::star::uno::Any;
+    using ::com::sun::star::uno::XInterface;
+    using ::com::sun::star::uno::UNO_QUERY_THROW;
+    using ::com::sun::star::lang::XMultiServiceFactory;
+    using ::com::sun::star::beans::XPropertySet;
+    using ::com::sun::star::uno::UNO_QUERY;
+    using ::com::sun::star::uno::RuntimeException;
+    /** === end UNO using === **/
+
+    //====================================================================
+	//= ComponentContext
+	//====================================================================
+	//--------------------------------------------------------------------
+    ComponentContext::ComponentContext( const Reference< XComponentContext >& _rxContext )
+        :m_xContext( _rxContext )
+    {
+        if ( m_xContext.is() )
+            m_xORB = m_xContext->getServiceManager();
+        if ( !m_xORB.is() )
+            throw NullPointerException();
+    }
+
+    //------------------------------------------------------------------------
+    ComponentContext::ComponentContext( const Reference< XMultiServiceFactory >& _rxLegacyFactory )
+    {
+        if ( !_rxLegacyFactory.is() )
+            throw NullPointerException();
+
+        try
+        {
+            Reference< XPropertySet > xFactoryProperties( _rxLegacyFactory, UNO_QUERY_THROW );
+            m_xContext = Reference< XComponentContext >(
+                xFactoryProperties->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ) ) ),
+                UNO_QUERY );
+        }
+        catch( const RuntimeException& ) { throw; }
+        catch( const Exception& )
+        {
+            throw RuntimeException();
+        }
+
+        if ( m_xContext.is() )
+            m_xORB = m_xContext->getServiceManager();
+        if ( !m_xORB.is() )
+            throw NullPointerException();
+    }
+
+    //------------------------------------------------------------------------
+    Any ComponentContext::getContextValueByName( const ::rtl::OUString& _rName ) const
+    {
+        Any aReturn;
+        try
+        {
+            aReturn = m_xContext->getValueByName( _rName );
+        }
+        catch( const Exception& )
+        {
+            OSL_ENSURE( sal_False, "PropertyHandler::getContextValueByName: caught an exception!" );
+=====================================================================
+Found a 80 line (356 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+sal_Bool JavaOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) 
+	throw( IllegalArgument )
+{
+	sal_Bool 	ret = sal_True;
+	sal_uInt16	i=0;
+
+	if (!bCmdFile)
+	{
+		bCmdFile = sal_True;
+		
+		m_program = av[0];
+
+		if (ac < 2)
+		{
+			fprintf(stderr, "%s", prepareHelp().getStr());
+			ret = sal_False;
+		}
+
+		i = 1;
+	} else
+	{
+		i = 0;
+	}
+
+	char	*s=NULL;
+	for( ; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'n':
+=====================================================================
+Found a 72 line (356 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/global.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/codemaker/global.cxx
+
+OString createFileNameFromType( const OString& destination,
+								const OString typeName,
+								const OString postfix,
+								sal_Bool bLowerCase,
+								const OString prefix )
+{
+	OString type(typeName);
+
+	if (bLowerCase)
+	{
+		type = typeName.toAsciiLowerCase();
+	}
+
+	sal_uInt32 length = destination.getLength();
+
+	sal_Bool withPoint = sal_False;
+	if (length == 0)
+	{
+		length++;
+		withPoint = sal_True;
+	}
+
+	length += prefix.getLength() + type.getLength() + postfix.getLength();
+
+	sal_Bool withSeperator = sal_False;
+	if (destination.getStr()[destination.getLength()] != '\\' &&
+		destination.getStr()[destination.getLength()] != '/' &&
+		type.getStr()[0] != '\\' &&
+		type.getStr()[0] != '/')
+	{
+		length++;
+		withSeperator = sal_True;
+	}
+
+	OStringBuffer nameBuffer(length);
+
+	if (withPoint)
+		nameBuffer.append('.');
+	else
+		nameBuffer.append(destination.getStr(), destination.getLength());
+
+	if (withSeperator)
+		nameBuffer.append("/", 1);
+
+	OString tmpStr(type);
+	if (prefix.getLength() > 0)
+	{
+		tmpStr = type.replaceAt(type.lastIndexOf('/')+1, 0, prefix);
+	}
+
+	nameBuffer.append(tmpStr.getStr(), tmpStr.getLength());
+	nameBuffer.append(postfix.getStr(), postfix.getLength());
+
+	OString fileName(nameBuffer);
+
+	sal_Char token;
+#ifdef SAL_UNX
+	fileName = fileName.replace('\\', '/');
+	token = '/';
+#else
+	fileName = fileName.replace('/', '\\');
+	token = '\\';
+#endif
+
+	nameBuffer = OStringBuffer(length);
+
+    sal_Int32 nIndex = 0;
+    do
+	{
+		nameBuffer.append(fileName.getToken( 0, token, nIndex ).getStr());
+
+		if (nameBuffer.getLength() == 0 || OString(".") == nameBuffer.getStr())
+=====================================================================
+Found a 106 line (355 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+    virtual bool		drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency );
+
+public:
+    // public SalGraphics methods, the interface to teh independent vcl part
+
+    // get device resolution
+    virtual void			GetResolution( long& rDPIX, long& rDPIY );
+    // get resolution for fonts (an implementations specific adjustment,
+    // ideally would be the same as the Resolution)
+    virtual void			GetScreenFontResolution( long& rDPIX, long& rDPIY );
+    // get the depth of the device
+    virtual USHORT			GetBitCount();
+    // get the width of the device
+    virtual long			GetGraphicsWidth() const;
+
+    // set the clip region to empty
+    virtual void			ResetClipRegion();
+    // begin setting the clip region, add rectangles to the
+    // region with the UnionClipRegion call
+    virtual void			BeginSetClipRegion( ULONG nCount );
+    // all rectangles were added and the clip region should be set now
+    virtual void			EndSetClipRegion();
+
+    // set the line color to transparent (= don't draw lines)
+    virtual void			SetLineColor();
+    // set the line color to a specific color
+    virtual void			SetLineColor( SalColor nSalColor );
+    // set the fill color to transparent (= don't fill)
+    virtual void			SetFillColor();
+    // set the fill color to a specific color, shapes will be
+    // filled accordingly
+    virtual void          	SetFillColor( SalColor nSalColor );
+    // enable/disable XOR drawing
+    virtual void			SetXORMode( BOOL bSet );
+    // set line color for raster operations
+    virtual void			SetROPLineColor( SalROPColor nROPColor );
+    // set fill color for raster operations
+    virtual void			SetROPFillColor( SalROPColor nROPColor );
+    // set the text color to a specific color
+    virtual void			SetTextColor( SalColor nSalColor );
+    // set the font
+    virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
+    // get the current font's etrics
+    virtual void			GetFontMetric( ImplFontMetricData* );
+    // get kernign pairs of the current font
+    // return only PairCount if (pKernPairs == NULL)
+    virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+    // get the repertoire of the current font
+    virtual ImplFontCharMap* GetImplFontCharMap() const;
+    // graphics must fill supplied font list
+    virtual void			GetDevFontList( ImplDevFontList* );
+    // graphics should call ImplAddDevFontSubstitute on supplied
+    // OutputDevice for all its device specific preferred font substitutions
+    virtual void			GetDevFontSubstList( OutputDevice* );
+    virtual bool			AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
+    // CreateFontSubset: a method to get a subset of glyhps of a font
+    // inside a new valid font file
+    // returns TRUE if creation of subset was successfull
+    // parameters: rToFile: contains a osl file URL to write the subset to
+    //             pFont: describes from which font to create a subset
+    //             pGlyphIDs: the glyph ids to be extracted
+    //             pEncoding: the character code corresponding to each glyph
+    //             pWidths: the advance widths of the correspoding glyphs (in PS font units)
+    //             nGlyphs: the number of glyphs
+    //             rInfo: additional outgoing information
+    // implementation note: encoding 0 with glyph id 0 should be added implicitly
+    // as "undefined character"
+    virtual BOOL			CreateFontSubset( const rtl::OUString& rToFile,
+                                              ImplFontData* pFont,
+                                              long* pGlyphIDs,
+                                              sal_uInt8* pEncoding,
+                                              sal_Int32* pWidths,
+                                              int nGlyphs,
+                                              FontSubsetInfo& rInfo // out parameter
+                                              );
+
+    // GetFontEncodingVector: a method to get the encoding map Unicode
+	// to font encoded character; this is only used for type1 fonts and
+    // may return NULL in case of unknown encoding vector
+    // if ppNonEncoded is set and non encoded characters (that is type1
+    // glyphs with only a name) exist it is set to the corresponding
+    // map for non encoded glyphs; the encoding vector contains -1
+    // as encoding for these cases
+    virtual const std::map< sal_Unicode, sal_Int32 >* GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** ppNonEncoded );
+
+    // GetEmbedFontData: gets the font data for a font marked
+    // embeddable by GetDevFontList or NULL in case of error
+    // parameters: pFont: describes the font in question
+    //             pWidths: the widths of all glyphs from char code 0 to 255
+    //                      pWidths MUST support at least 256 members;
+    //             rInfo: additional outgoing information
+    //             pDataLen: out parameter, contains the byte length of the returned buffer
+    virtual const void*	GetEmbedFontData( ImplFontData* pFont,
+                                          const sal_Unicode* pUnicodes,
+                                          sal_Int32* pWidths,
+                                          FontSubsetInfo& rInfo,
+                                          long* pDataLen );
+    // frees the font data again
+    virtual void			FreeEmbedFontData( const void* pData, long nDataLen );
+    virtual void            GetGlyphWidths( ImplFontData* pFont,
+                                            bool bVertical,
+                                            std::vector< sal_Int32 >& rWidths,
+                                            std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc );
+
+    virtual BOOL                    GetGlyphBoundRect( long nIndex, Rectangle& );
+    virtual BOOL                    GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& );
+=====================================================================
+Found a 94 line (355 tokens) duplication in the following files: 
+Starting at line 2979 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            rSBase.pWw8Fib->GetFIBVersion(), pPcd, &rSBase) : 0;
+    }
+
+    pPieceIter = rSBase.pPieceIter;
+}
+
+WW8PLCFx_Cp_FKP::~WW8PLCFx_Cp_FKP()
+{
+    delete pPcd;
+}
+
+void WW8PLCFx_Cp_FKP::ResetAttrStartEnd()
+{
+    nAttrStart = -1;
+    nAttrEnd   = -1;
+    bLineEnd   = false;
+}
+
+ULONG WW8PLCFx_Cp_FKP::GetPCDIMax() const
+{
+    return pPcd ? pPcd->GetIMax() : 0;
+}
+
+ULONG WW8PLCFx_Cp_FKP::GetPCDIdx() const
+{
+    return pPcd ? pPcd->GetIdx() : 0;
+}
+
+void WW8PLCFx_Cp_FKP::SetPCDIdx( ULONG nIdx )
+{
+    if( pPcd )
+        pPcd->SetIdx( nIdx );
+}
+
+bool WW8PLCFx_Cp_FKP::SeekPos(WW8_CP nCpPos)
+{
+    if( pPcd )  // Complex
+    {
+        if( !pPcd->SeekPos( nCpPos ) )  // Piece setzen
+            return false;
+        if (pPCDAttrs && !pPCDAttrs->GetIter()->SeekPos(nCpPos))
+            return false;
+        return WW8PLCFx_Fc_FKP::SeekPos(pPcd->AktPieceStartCp2Fc(nCpPos));
+    }
+                                    // KEINE Piece-Table !!!
+    return WW8PLCFx_Fc_FKP::SeekPos( rSBase.WW8Cp2Fc(nCpPos) );
+}
+
+WW8_CP WW8PLCFx_Cp_FKP::Where()
+{
+    WW8_FC nFc = WW8PLCFx_Fc_FKP::Where();
+    if( pPcd )
+        return pPcd->AktPieceStartFc2Cp( nFc ); // Piece ermitteln
+    return rSBase.WW8Fc2Cp( nFc );      // KEINE Piece-Table !!!
+}
+
+void WW8PLCFx_Cp_FKP::GetSprms(WW8PLCFxDesc* p)
+{
+    WW8_CP nOrigCp = p->nStartPos;
+
+    if (!GetDirty())        //Normal case
+    {
+        p->pMemPos = WW8PLCFx_Fc_FKP::GetSprmsAndPos(p->nStartPos, p->nEndPos,
+            p->nSprmsLen);
+    }
+    else
+    {
+        /*
+        #93702#
+        For the odd case where we have a location in a fastsaved file which
+        does not have an entry in the FKP, perhaps its para end is in the next
+        piece, or perhaps the cp just doesn't exist at all in this document.
+        AdvSprm doesn't know so it sets the PLCF as dirty and we figure out
+        in this method what the situation is
+
+        It doesn't exist then the piece iterator will not be able to find it.
+        Otherwise our cool fastsave algorithm can be brought to bear on the
+        problem.
+        */
+        ULONG nOldPos = pPieceIter->GetIdx();
+        bool bOk = pPieceIter->SeekPos(nOrigCp);
+        pPieceIter->SetIdx( nOldPos );
+        if (!bOk)
+            return;
+    }
+
+    if( pPcd )  // Piece-Table vorhanden !!!
+    {
+        // Init ( noch kein ++ gerufen )
+        if( (nAttrStart >  nAttrEnd) || (nAttrStart == -1) )
+        {
+            p->bRealLineEnd = (ePLCF == PAP);
+
+            if ( ((ePLCF == PAP ) || (ePLCF == CHP)) && (nOrigCp != WW8_CP_MAX) )
+=====================================================================
+Found a 71 line (355 tokens) duplication in the following files: 
+Starting at line 787 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 391 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/swdetect.cxx
+
+            }
+		}
+	}
+
+    if ( nIndexOfInputStream == -1 && xStream.is() )
+    {
+        // if input stream wasn't part of the descriptor, now it should be, otherwise the content would be opend twice
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("InputStream");
+        lDescriptor[nPropertyCount].Value <<= xStream;
+        nPropertyCount++;
+    }
+
+    if ( nIndexOfContent == -1 && xContent.is() )
+    {
+        // if input stream wasn't part of the descriptor, now it should be, otherwise the content would be opend twice
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("UCBContent");
+        lDescriptor[nPropertyCount].Value <<= xContent;
+        nPropertyCount++;
+    }
+
+    if ( bReadOnly != bWasReadOnly )
+    {
+        if ( nIndexOfReadOnlyFlag == -1 )
+        {
+            lDescriptor.realloc( nPropertyCount + 1 );
+            lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("ReadOnly");
+            lDescriptor[nPropertyCount].Value <<= bReadOnly;
+            nPropertyCount++;
+        }
+        else
+            lDescriptor[nIndexOfReadOnlyFlag].Value <<= bReadOnly;
+    }
+
+	if ( !bRepairPackage && bRepairAllowed )
+	{
+        lDescriptor.realloc( nPropertyCount + 1 );
+        lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("RepairPackage");
+        lDescriptor[nPropertyCount].Value <<= bRepairAllowed;
+        nPropertyCount++;
+		bOpenAsTemplate = sal_True;
+		// TODO/LATER: set progress bar that should be used
+	}
+
+	if ( bOpenAsTemplate )
+	{
+		if ( nIndexOfTemplateFlag == -1 )
+		{
+        	lDescriptor.realloc( nPropertyCount + 1 );
+        	lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("AsTemplate");
+        	lDescriptor[nPropertyCount].Value <<= bOpenAsTemplate;
+        	nPropertyCount++;
+		}
+		else
+        	lDescriptor[nIndexOfTemplateFlag].Value <<= bOpenAsTemplate;
+	}
+
+	if ( aDocumentTitle.getLength() )
+	{
+		// the title was set here
+		if ( nIndexOfDocumentTitle == -1 )
+		{
+        	lDescriptor.realloc( nPropertyCount + 1 );
+        	lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("DocumentTitle");
+        	lDescriptor[nPropertyCount].Value <<= aDocumentTitle;
+        	nPropertyCount++;
+		}
+		else
+        	lDescriptor[nIndexOfDocumentTitle].Value <<= aDocumentTitle;
+	}
+=====================================================================
+Found a 46 line (354 tokens) duplication in the following files: 
+Starting at line 3808 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 2051 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap2.cxx
+
+			GeoStat aNewGeo( aCustomShapeGeoData.aGeo );
+			if ( bMirroredX )
+			{
+				Polygon aPol( Rect2Poly( aRect, aNewGeo ) );
+				Rectangle aBoundRect( aPol.GetBoundRect() );
+
+				Point aRef1( ( aBoundRect.Left() + aBoundRect.Right() ) >> 1, aBoundRect.Top() );
+				Point aRef2( aRef1.X(), aRef1.Y() + 1000 );
+				USHORT i;
+				USHORT nPntAnz=aPol.GetSize();
+				for (i=0; i<nPntAnz; i++)
+				{
+					MirrorPoint(aPol[i],aRef1,aRef2);
+				}
+				// Polygon wenden und etwas schieben
+				Polygon aPol0(aPol);
+				aPol[0]=aPol0[1];
+				aPol[1]=aPol0[0];
+				aPol[2]=aPol0[3];
+				aPol[3]=aPol0[2];
+				aPol[4]=aPol0[1];
+				Poly2Rect(aPol,aRectangle,aNewGeo);
+			}
+			if ( bMirroredY )
+			{
+				Polygon aPol( Rect2Poly( aRectangle, aNewGeo ) );
+				Rectangle aBoundRect( aPol.GetBoundRect() );
+
+				Point aRef1( aBoundRect.Left(), ( aBoundRect.Top() + aBoundRect.Bottom() ) >> 1 );
+				Point aRef2( aRef1.X() + 1000, aRef1.Y() );
+				USHORT i;
+				USHORT nPntAnz=aPol.GetSize();
+				for (i=0; i<nPntAnz; i++)
+				{
+					MirrorPoint(aPol[i],aRef1,aRef2);
+				}
+				// Polygon wenden und etwas schieben
+				Polygon aPol0(aPol);
+				aPol[0]=aPol0[1];
+				aPol[1]=aPol0[0];
+				aPol[2]=aPol0[3];
+				aPol[3]=aPol0[2];
+				aPol[4]=aPol0[1];
+				Poly2Rect( aPol, aRectangle, aNewGeo );
+			}
+		}
+=====================================================================
+Found a 54 line (354 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/component_context.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno.cxx
+
+		TYPELIB_DANGER_RELEASE( pTypeDescr );
+		break;
+	}
+	case typelib_TypeClass_BOOLEAN:
+		if (*(sal_Bool *)pVal)
+			buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("true") );
+		else
+			buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("false") );
+		break;
+	case typelib_TypeClass_CHAR:
+		buf.append( (sal_Unicode)'\'' );
+		buf.append( *(sal_Unicode *)pVal );
+		buf.append( (sal_Unicode)'\'' );
+		break;
+	case typelib_TypeClass_FLOAT:
+		buf.append( *(float *)pVal );
+		break;
+	case typelib_TypeClass_DOUBLE:
+		buf.append( *(double *)pVal );
+		break;
+	case typelib_TypeClass_BYTE:
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") );
+		buf.append( (sal_Int32)*(sal_Int8 *)pVal, 16 );
+		break;
+	case typelib_TypeClass_SHORT:
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") );
+		buf.append( (sal_Int32)*(sal_Int16 *)pVal, 16 );
+		break;
+	case typelib_TypeClass_UNSIGNED_SHORT:
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") );
+		buf.append( (sal_Int32)*(sal_uInt16 *)pVal, 16 );
+		break;
+	case typelib_TypeClass_LONG:
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") );
+		buf.append( *(sal_Int32 *)pVal, 16 );
+		break;
+	case typelib_TypeClass_UNSIGNED_LONG:
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") );
+		buf.append( (sal_Int64)*(sal_uInt32 *)pVal, 16 );
+		break;
+	case typelib_TypeClass_HYPER:
+	case typelib_TypeClass_UNSIGNED_HYPER:
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") );
+#if defined(GCC) && defined(SPARC)
+		{
+			sal_Int64 aVal;
+			*(sal_Int32 *)&aVal = *(sal_Int32 *)pVal;
+			*((sal_Int32 *)&aVal +1)= *((sal_Int32 *)pVal +1);
+			buf.append( aVal, 16 );
+		}
+#else
+		buf.append( *(sal_Int64 *)pVal, 16 );
+#endif
+		break;
+=====================================================================
+Found a 57 line (353 tokens) duplication in the following files: 
+Starting at line 2540 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4702 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+void SAL_CALL OStorage::insertRelationshipByID(  const ::rtl::OUString& sID, const uno::Sequence< beans::StringPair >& aEntry, ::sal_Bool bReplace  )
+		throw ( container::ElementExistException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	::rtl::OUString aIDTag( RTL_CONSTASCII_USTRINGPARAM( "Id" ) );
+
+	sal_Int32 nIDInd = -1;
+
+	// TODO/LATER: in future the unification of the ID could be checked
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equals( aIDTag ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
+					nIDInd = nInd1;
+
+				break;
+			}
+
+	if ( nIDInd == -1 || bReplace )
+	{
+		if ( nIDInd == -1 )
+		{
+			nIDInd = aSeq.getLength();
+			aSeq.realloc( nIDInd + 1 );
+		}
+
+		aSeq[nIDInd].realloc( aEntry.getLength() + 1 );
+
+		aSeq[nIDInd][0].First = aIDTag;
+		aSeq[nIDInd][0].Second = sID;
+		sal_Int32 nIndTarget = 0;
+		for ( sal_Int32 nIndOrig = 0;
+			  nIndOrig <= aEntry.getLength();
+			  nIndOrig++ )
+		{
+			if ( !aEntry[nIndOrig].First.equals( aIDTag ) )
+				aSeq[nIDInd][nIndTarget++] = aEntry[nIndOrig];
+		}
+
+		aSeq[nIDInd].realloc( nIndTarget );
+	}
+	else
+		throw container::ElementExistException(); // TODO
+
+
+	m_pImpl->m_aRelInfo = aSeq;
+=====================================================================
+Found a 66 line (353 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/propshlp.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/constitemcontainer.cxx
+
+static int SAL_CALL compare_OUString_Property_Impl( const void *arg1, const void *arg2 ) SAL_THROW( () )
+{
+   return ((OUString *)arg1)->compareTo( ((Property *)arg2)->Name );
+}
+}
+ 
+class OPropertySetHelperInfo_Impl
+    : public WeakImplHelper1< ::com::sun::star::beans::XPropertySetInfo >
+{
+	Sequence < Property > aInfos;
+
+public:	
+	OPropertySetHelperInfo_Impl( IPropertyArrayHelper & rHelper_ ) SAL_THROW( () );
+	
+	// XPropertySetInfo-Methoden
+    virtual Sequence< Property > SAL_CALL getProperties(void) throw(::com::sun::star::uno::RuntimeException);
+    virtual Property SAL_CALL getPropertyByName(const OUString& PropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasPropertyByName(const OUString& PropertyName) throw(::com::sun::star::uno::RuntimeException);
+};
+
+
+/**
+ * Create an object that implements XPropertySetInfo IPropertyArrayHelper.
+ */
+OPropertySetHelperInfo_Impl::OPropertySetHelperInfo_Impl(
+	IPropertyArrayHelper & rHelper_ )
+	SAL_THROW( () )
+	:aInfos( rHelper_.getProperties() )
+{
+}
+
+/**
+ * Return the sequence of properties, which are provided throug the constructor.
+ */
+Sequence< Property > OPropertySetHelperInfo_Impl::getProperties(void) throw(::com::sun::star::uno::RuntimeException)
+{
+	return aInfos;
+}
+
+/**
+ * Return the sequence of properties, which are provided throug the constructor.
+ */
+Property OPropertySetHelperInfo_Impl::getPropertyByName( const OUString & PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException) 
+{
+	Property * pR;
+	pR = (Property *)bsearch( &PropertyName, aInfos.getConstArray(), aInfos.getLength(),
+                              sizeof( Property ),
+							  compare_OUString_Property_Impl );
+	if( !pR ) {
+		throw UnknownPropertyException();
+	}
+
+	return *pR;	
+}
+
+/**
+ * Return the sequence of properties, which are provided throug the constructor.
+ */
+sal_Bool OPropertySetHelperInfo_Impl::hasPropertyByName( const OUString & PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+{
+	Property * pR;
+	pR = (Property *)bsearch( &PropertyName, aInfos.getConstArray(), aInfos.getLength(),
+                              sizeof( Property ),
+							  compare_OUString_Property_Impl );
+	return pR != NULL;
+}
+=====================================================================
+Found a 57 line (353 tokens) duplication in the following files: 
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+    }
+    unsigned char * p = code;
+    OSL_ASSERT(sizeof (sal_Int32) == 4);
+    // mov function_index, %eax:
+    *p++ = 0xB8;
+    *reinterpret_cast< sal_Int32 * >(p) = functionIndex;
+    p += sizeof (sal_Int32);
+    // mov vtable_offset, %edx:
+    *p++ = 0xBA;
+    *reinterpret_cast< sal_Int32 * >(p) = vtableOffset;
+    p += sizeof (sal_Int32);
+    // jmp privateSnippetExecutor:
+    *p++ = 0xE9;
+    *reinterpret_cast< sal_Int32 * >(p)
+        = ((unsigned char *) exec) - p - sizeof (sal_Int32);
+    p += sizeof (sal_Int32);
+    OSL_ASSERT(p - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+                    member)->pAttributeTypeRef);
+=====================================================================
+Found a 30 line (351 tokens) duplication in the following files: 
+Starting at line 2434 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 3429 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+        nLineY = aPos.Y() + aSize.Height()/2;
+
+        rMouseRect          = Rectangle( aPos, aSize );
+        rMouseRect.Left()   = rPos.X();
+        rStateRect.Left()   = rPos.X();
+        rStateRect.Top()    = rMouseRect.Top();
+
+        if ( aSize.Height() > rImageSize.Height() )
+            rStateRect.Top() += ( aSize.Height() - rImageSize.Height() ) / 2;
+        rStateRect.Right()  = rStateRect.Left()+rImageSize.Width()-1;
+        rStateRect.Bottom() = rStateRect.Top()+rImageSize.Height()-1;
+        if ( rStateRect.Bottom() > rMouseRect.Bottom() )
+            rMouseRect.Bottom() = rStateRect.Bottom();
+    }
+    else
+    {
+        if ( nWinStyle & WB_CENTER )
+            rStateRect.Left() = rPos.X()+((rSize.Width()-rImageSize.Width())/2);
+        else if ( nWinStyle & WB_RIGHT )
+            rStateRect.Left() = rPos.X()+rSize.Width()-rImageSize.Width();
+        else
+            rStateRect.Left() = rPos.X();
+        if ( nWinStyle & WB_VCENTER )
+            rStateRect.Top() = rPos.Y()+((rSize.Height()-rImageSize.Height())/2);
+        else if ( nWinStyle & WB_BOTTOM )
+            rStateRect.Top() = rPos.Y()+rSize.Height()-rImageSize.Height();
+        else
+            rStateRect.Top() = rPos.Y();
+        rStateRect.Right()  = rStateRect.Left()+rImageSize.Width()-1;
+        rStateRect.Bottom() = rStateRect.Top()+rImageSize.Height()-1;
+=====================================================================
+Found a 60 line (351 tokens) duplication in the following files: 
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/source/bridge/remote_bridge.cxx
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/source/factory/bridgeimpl.cxx
+
+			uno_getEnvironment( &pEnvRemote , sProtocol.pData , pContext );
+
+			if( ! pEnvRemote )
+			{
+				pContext->aBase.release( (uno_Context*) pContext );
+				throw RuntimeException(
+					OUString( RTL_CONSTASCII_USTRINGPARAM( "RemoteBridge: bridge already disposed" ) ),
+					Reference< XInterface > () );
+			}
+
+			Type type = getCppuType( (Reference < XInterface > * ) 0 );
+		
+			remote_Interface *pRemoteI = 0;
+			uno_Any exception;
+			uno_Any *pException = &exception;
+			
+			pContext->getRemoteInstance(
+				pEnvRemote,
+				&pRemoteI,
+				sInstanceName.pData,
+				type.getTypeLibType(),
+				&pException );
+			pContext->aBase.release( (uno_Context*) pContext );
+			pContext = 0;
+
+			uno_Environment *pEnvCpp =0;
+			OUString sCppuName( RTL_CONSTASCII_USTRINGPARAM( CPPU_CURRENT_LANGUAGE_BINDING_NAME ) );
+			uno_getEnvironment( &pEnvCpp ,
+								sCppuName.pData ,
+								0 );
+			Mapping map( pEnvRemote , pEnvCpp );
+
+			pEnvCpp->release( pEnvCpp );
+			pEnvRemote->release( pEnvRemote );
+
+			if( pException )
+			{
+				typelib_CompoundTypeDescription * pCompType = 0 ;
+				getCppuType( (Exception*)0 ).getDescription( (typelib_TypeDescription **) &pCompType );
+
+				if( ! ((typelib_TypeDescription *)pCompType)->bComplete )
+				{
+					typelib_typedescription_complete( (typelib_TypeDescription**) &pCompType );
+				}
+				XInterface *pXInterface = (XInterface *) map.mapInterface(
+					*(remote_Interface**) ( ((char*)pException->pData)+pCompType->pMemberOffsets[1] ),
+					getCppuType( (Reference< XInterface > *)0 ) );
+				RuntimeException myException(
+					*((rtl_uString **)pException->pData),
+					Reference< XInterface > ( pXInterface , SAL_NO_ACQUIRE) );
+				uno_any_destruct( pException , 0 );
+
+				throw myException;
+			}
+			else if( pRemoteI )
+			{
+				// got an interface !
+				XInterface * pCppI = ( XInterface * ) map.mapInterface( pRemoteI, type );
+				rReturn = Reference<XInterface > ( pCppI, SAL_NO_ACQUIRE );
+				pRemoteI->release( pRemoteI );
+=====================================================================
+Found a 8 line (351 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x15, 0x0058}, {0x15, 0x0059}, {0x15, 0x005A}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0078 - 007f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0080 - 0087
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0088 - 008f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0090 - 0097
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0098 - 009f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 00a0 - 00a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 00a8 - 00af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf5, 0x0005}, {0x00, 0x0000}, {0x00, 0x0000}, // 00b0 - 00b7
+=====================================================================
+Found a 58 line (349 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 689 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+      double* rowptr = a[irow];
+      a[irow] = a[icol];
+      a[icol] = rowptr;
+
+      save = b[irow];
+      b[irow] = b[icol];
+      b[icol] = save;
+    }
+
+    indxr[i] = irow;
+    indxc[i] = icol;
+    if ( a[icol][icol] == 0 )
+    {
+      delete[] ipiv;
+      delete[] indxr;
+      delete[] indxc;
+      return 0;
+    }
+
+    pivinv = 1/a[icol][icol];
+    a[icol][icol] = 1;
+    for (k = 0; k < n; k++)
+      a[icol][k] *= pivinv;
+    b[icol] *= pivinv;
+
+    for (j = 0; j < n; j++)
+    {
+      if ( j != icol )
+      {
+	save = a[j][icol];
+	a[j][icol] = 0;
+	for (k = 0; k < n; k++)
+	  a[j][k] -= a[icol][k]*save;
+	b[j] -= b[icol]*save;
+      }
+    }
+  }
+
+  for (j = n-1; j >= 0; j--)
+  {
+    if ( indxr[j] != indxc[j] )
+    {
+      for (k = 0; k < n; k++)
+      {
+	save = a[k][indxr[j]];
+	a[k][indxr[j]] = a[k][indxc[j]];
+	a[k][indxc[j]] = save;
+      }
+    }
+  }
+
+  delete[] ipiv;
+  delete[] indxr;
+  delete[] indxc;
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystemD::SolveTri (int n, double* a, double* b, double* c,
+=====================================================================
+Found a 96 line (348 tokens) duplication in the following files: 
+Starting at line 748 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 826 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        if (ww::IsEightPlus(meVersion)) //We can recover perfectly in this case
+        {
+            aSrch.nVari = L_FIX;
+            switch (nId >> 13)
+            {
+                case 0:
+                case 1:
+                    aSrch.nLen = 1;
+                    break;
+                case 2:
+                    aSrch.nLen = 2;
+                    break;
+                case 3:
+                    aSrch.nLen = 4;
+                    break;
+                case 4:
+                case 5:
+                    aSrch.nLen = 2;
+                    break;
+                case 6:
+                    aSrch.nLen = 0;
+                    aSrch.nVari =  L_VAR;
+                    break;
+                case 7:
+                default:
+                    aSrch.nLen = 3;
+                    break;
+            }
+        }
+
+        pFound = &aSrch;
+    }
+    return *pFound;
+}
+
+//-end
+
+inline BYTE Get_Byte( BYTE *& p )
+{
+    BYTE n = SVBT8ToByte( *(SVBT8*)p );
+    p += 1;
+    return n;
+}
+
+inline USHORT Get_UShort( BYTE *& p )
+{
+    USHORT n = SVBT16ToShort( *(SVBT16*)p );
+    p += 2;
+    return n;
+}
+
+inline short Get_Short( BYTE *& p )
+{
+    return Get_UShort(p);
+}
+
+inline ULONG Get_ULong( BYTE *& p )
+{
+    ULONG n = SVBT32ToUInt32( *(SVBT32*)p );
+    p += 4;
+    return n;
+}
+
+inline long Get_Long( BYTE *& p )
+{
+    return Get_ULong(p);
+}
+
+WW8SprmIter::WW8SprmIter(const BYTE* pSprms_, long nLen_,
+    const wwSprmParser &rParser)
+    :  mrSprmParser(rParser), pSprms( pSprms_), nRemLen( nLen_)
+{
+    UpdateMyMembers();
+}
+
+void WW8SprmIter::SetSprms(const BYTE* pSprms_, long nLen_)
+{
+    pSprms = pSprms_;
+    nRemLen = nLen_;
+    UpdateMyMembers();
+}
+
+const BYTE* WW8SprmIter::operator ++( int )
+{
+    if (nRemLen > 0)
+    {
+        pSprms += nAktSize;
+        nRemLen -= nAktSize;
+        UpdateMyMembers();
+    }
+    return pSprms;
+}
+
+void WW8SprmIter::UpdateMyMembers()
+{
+    if (pSprms && nRemLen > (mrSprmParser.getVersion()?1:0)) //see #125180#
+=====================================================================
+Found a 65 line (348 tokens) duplication in the following files: 
+Starting at line 846 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodel.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodelapi.cxx
+
+				Reference< XSimpleMailMessage > xSimpleMailMessage = xSimpleMailClient->createSimpleMailMessage();
+				if ( xSimpleMailMessage.is() )
+				{
+					sal_Int32 nSendFlags = SimpleMailClientFlags::DEFAULTS;
+					if ( maFromAddress.Len() == 0 )
+					{
+						// from address not set, try figure out users e-mail address
+						CreateFromAddress_Impl( maFromAddress );
+					}
+					xSimpleMailMessage->setOriginator( maFromAddress );
+
+					sal_Int32 nToCount		= mpToList ? mpToList->Count() : 0;
+					sal_Int32 nCcCount		= mpCcList ? mpCcList->Count() : 0;
+					sal_Int32 nCcSeqCount	= nCcCount;
+
+					// set recipient (only one) for this simple mail server!!
+					if ( nToCount > 1 )
+					{
+						nCcSeqCount = nToCount - 1 + nCcCount;
+						xSimpleMailMessage->setRecipient( *mpToList->GetObject( 0 ));
+						nSendFlags = SimpleMailClientFlags::NO_USER_INTERFACE;
+					}
+					else if ( nToCount == 1 )
+					{
+						xSimpleMailMessage->setRecipient( *mpToList->GetObject( 0 ));
+						nSendFlags = SimpleMailClientFlags::NO_USER_INTERFACE;
+					}
+
+					// all other recipient must be handled with CC recipients!
+					if ( nCcSeqCount > 0 )
+					{
+						sal_Int32				nIndex = 0;
+						Sequence< OUString >	aCcRecipientSeq;
+
+						aCcRecipientSeq.realloc( nCcSeqCount );
+						if ( nCcSeqCount > nCcCount )
+    					{
+							for ( sal_Int32 i = 1; i < nToCount; ++i )
+							{
+								aCcRecipientSeq[nIndex++] = *mpToList->GetObject(i);
+							}
+						}
+
+						for ( sal_Int32 i = 0; i < nCcCount; i++ )
+						{
+							aCcRecipientSeq[nIndex++] = *mpCcList->GetObject(i);
+						}
+						xSimpleMailMessage->setCcRecipient( aCcRecipientSeq );
+					}
+
+					sal_Int32 nBccCount = mpBccList ? mpBccList->Count() : 0;
+					if ( nBccCount > 0 )
+					{
+	    				Sequence< OUString > aBccRecipientSeq( nBccCount );
+						for ( sal_Int32 i = 0; i < nBccCount; ++i )
+						{
+							aBccRecipientSeq[i] = *mpBccList->GetObject(i);
+						}
+						xSimpleMailMessage->setBccRecipient( aBccRecipientSeq );
+					}
+
+					Sequence< OUString > aAttachmentSeq(&(maAttachedDocuments[0]),maAttachedDocuments.size());
+
+					xSimpleMailMessage->setSubject( maSubject );
+					xSimpleMailMessage->setAttachement( aAttachmentSeq );
+=====================================================================
+Found a 86 line (348 tokens) duplication in the following files: 
+Starting at line 494 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+void UIConfigurationManager::impl_storeElementTypeData( Reference< XStorage >& xStorage, UIElementType& rElementType, bool bResetModifyState )
+{
+    UIElementDataHashMap& rHashMap          = rElementType.aElementsHashMap;
+    UIElementDataHashMap::iterator pIter    = rHashMap.begin();
+
+    while ( pIter != rHashMap.end() )
+    {
+        UIElementData& rElement = pIter->second;
+        if ( rElement.bModified )
+        {
+            if ( rElement.bDefault )
+            {
+                xStorage->removeElement( rElement.aName );
+                rElement.bModified = sal_False; // mark as not modified
+            }
+            else
+            {
+                Reference< XStream > xStream( xStorage->openStreamElement( rElement.aName, ElementModes::WRITE|ElementModes::TRUNCATE ), UNO_QUERY );
+                Reference< XOutputStream > xOutputStream( xStream->getOutputStream() );
+
+                if ( xOutputStream.is() )
+                {
+                    switch( rElementType.nElementType )
+                    {
+                        case ::com::sun::star::ui::UIElementType::MENUBAR:
+                        {
+                            try
+                            {
+                                MenuConfiguration aMenuCfg( m_xServiceManager );
+                                aMenuCfg.StoreMenuBarConfigurationToXML( rElement.xSettings, xOutputStream );
+                            }
+                            catch ( ::com::sun::star::lang::WrappedTargetException& )
+                            {
+                            }
+                        }
+                        break;
+
+                        case ::com::sun::star::ui::UIElementType::TOOLBAR:
+                        {
+                            try
+                            {
+                                ToolBoxConfiguration::StoreToolBox( m_xServiceManager, xOutputStream, rElement.xSettings );
+                            }
+                            catch ( ::com::sun::star::lang::WrappedTargetException& )
+                            {
+                            }
+                        }
+                        break;
+
+                        case ::com::sun::star::ui::UIElementType::STATUSBAR:
+                        {
+                            try
+                            {
+                                StatusBarConfiguration::StoreStatusBar( m_xServiceManager, xOutputStream, rElement.xSettings );
+                            }
+                            catch ( ::com::sun::star::lang::WrappedTargetException& )
+                            {
+                            }
+                        }
+                        break;
+                        
+                        default:
+                        break;
+                    }
+                }
+
+                // mark as not modified if we store to our own storage
+                if ( bResetModifyState )
+                    rElement.bModified = sal_False;
+            }
+        }
+
+        ++pIter;
+    }
+
+    // commit element type storage
+    Reference< XTransactedObject > xTransactedObject( xStorage, UNO_QUERY );
+	if ( xTransactedObject.is() )
+    	xTransactedObject->commit();
+
+    // mark UIElementType as not modified if we store to our own storage
+    if ( bResetModifyState )
+        rElementType.bModified = sal_False;
+}
+
+void UIConfigurationManager::impl_resetElementTypeData(
+=====================================================================
+Found a 96 line (348 tokens) duplication in the following files: 
+Starting at line 408 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 level ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInDataManipulation(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92FullSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92EntryLevelSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True; // should be supported at least
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsIntegrityEnhancementFacility(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInIndexDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInTableDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInTableDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInIndexDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInDataManipulation(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxStatements(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxProcedureNameLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxSchemaNameLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::allProceduresAreCallable(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsStoredProcedures(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+=====================================================================
+Found a 71 line (347 tokens) duplication in the following files: 
+Starting at line 1429 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+Starting at line 1563 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+
+	awt::Point aStart(0,0);
+	awt::Point aEnd(1,1);
+
+    // --> OD 2004-08-09 #i36248# - Get <StartPositionInHoriL2R> and
+    // <EndPositionInHoriL2R>, if they exist and if the document is exported
+    // into the OpenOffice.org file format.
+    // These properties only exist at service com::sun::star::text::Shape - the
+    // Writer UNO service for shapes.
+    // This code is needed, because the positioning attributes in the
+    // OpenOffice.org file format are given in horizontal left-to-right layout
+    // regardless the layout direction the shape is in. In the OASIS Open Office
+    // file format the positioning attributes are correctly given in the layout
+    // direction the shape is in. Thus, this code provides the conversion from
+    // the OASIS Open Office file format to the OpenOffice.org file format.
+    if ( ( GetExport().getExportFlags() & EXPORT_OASIS ) == 0 &&
+         xProps->getPropertySetInfo()->hasPropertyByName(
+            OUString(RTL_CONSTASCII_USTRINGPARAM("StartPositionInHoriL2R"))) &&
+         xProps->getPropertySetInfo()->hasPropertyByName(
+            OUString(RTL_CONSTASCII_USTRINGPARAM("EndPositionInHoriL2R"))) )
+    {
+        xProps->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("StartPositionInHoriL2R"))) >>= aStart;
+        xProps->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("EndPositionInHoriL2R"))) >>= aEnd;
+    }
+    else
+    {
+        xProps->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("StartPosition"))) >>= aStart;
+        xProps->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("EndPosition"))) >>= aEnd;
+    }
+    // <--
+
+	if( pRefPoint )
+	{
+		aStart.X -= pRefPoint->X;
+		aStart.Y -= pRefPoint->Y;
+		aEnd.X -= pRefPoint->X;
+		aEnd.Y -= pRefPoint->Y;
+	}
+
+	if( nFeatures & SEF_EXPORT_X )
+	{
+		// svg: x1
+		mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aStart.X);
+		aStr = sStringBuffer.makeStringAndClear();
+		mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_X1, aStr);
+	}
+	else
+	{
+		aEnd.X -= aStart.X;
+	}
+
+	if( nFeatures & SEF_EXPORT_Y )
+	{
+		// svg: y1
+		mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aStart.Y);
+		aStr = sStringBuffer.makeStringAndClear();
+		mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_Y1, aStr);
+	}
+	else
+	{
+		aEnd.Y -= aStart.Y;
+	}
+
+	// svg: x2
+	mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aEnd.X);
+	aStr = sStringBuffer.makeStringAndClear();
+	mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_X2, aStr);
+
+	// svg: y2
+	mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aEnd.Y);
+	aStr = sStringBuffer.makeStringAndClear();
+	mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_Y2, aStr);
+=====================================================================
+Found a 39 line (347 tokens) duplication in the following files: 
+Starting at line 905 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/astexpression.cxx
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/astexpression.cxx
+
+sal_Bool AstExpression::compare(AstExpression *pExpr)
+{	
+	if (m_combOperator != pExpr->getCombOperator())
+		return sal_False;
+	evaluate(EK_const);
+	pExpr->evaluate(EK_const);
+	if (m_exprValue == NULL || pExpr->getExprValue() == NULL)
+		return sal_False;
+	if (m_exprValue->et != pExpr->getExprValue()->et)
+		return sal_False;
+	switch (m_exprValue->et) 
+	{
+		case ET_short:
+			return (m_exprValue->u.sval == pExpr->getExprValue()->u.sval) ? sal_True : sal_False;
+		case ET_ushort:
+			return (m_exprValue->u.usval == pExpr->getExprValue()->u.usval) ? sal_True : sal_False;
+		case ET_long:
+			return (m_exprValue->u.lval == pExpr->getExprValue()->u.lval) ? sal_True : sal_False;
+		case ET_ulong:
+			return (m_exprValue->u.ulval == pExpr->getExprValue()->u.ulval) ? sal_True : sal_False;
+		case ET_hyper:
+			return (m_exprValue->u.hval == pExpr->getExprValue()->u.hval) ? sal_True : sal_False;
+		case ET_uhyper:
+			return (m_exprValue->u.uhval == pExpr->getExprValue()->u.uhval) ? sal_True : sal_False;
+		case ET_float:
+			return (m_exprValue->u.fval == pExpr->getExprValue()->u.fval) ? sal_True : sal_False;
+		case ET_double:
+			return (m_exprValue->u.dval == pExpr->getExprValue()->u.dval) ? sal_True : sal_False;
+		case ET_byte:
+			return (m_exprValue->u.byval == pExpr->getExprValue()->u.byval) ? sal_True : sal_False;
+		case ET_boolean:
+			return (m_exprValue->u.lval == pExpr->getExprValue()->u.lval) ? sal_True : sal_False;
+        default:
+            OSL_ASSERT(false);
+			return sal_False;
+	}
+
+	return sal_False;
+}	
+=====================================================================
+Found a 9 line (347 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x9f, 0x0000}, // 0300 - 0307
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0308 - 030f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0310 - 0317
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0318 - 031f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0320 - 0327
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0328 - 032f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0330 - 0337
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0338 - 033f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf4, 0x0032}, {0x00, 0x0000}, {0x00, 0x0000}, // 0340 - 0347
+=====================================================================
+Found a 65 line (346 tokens) duplication in the following files: 
+Starting at line 3700 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 2211 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const basegfx::B2DPolyPolygon& /*rPolyPolygon*/)
+{
+	// break up matrix
+	basegfx::B2DTuple aScale;
+	basegfx::B2DTuple aTranslate;
+	double fRotate, fShearX;
+	rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+
+	// #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+	// in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+	if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+	{
+		aScale.setX(fabs(aScale.getX()));
+		aScale.setY(fabs(aScale.getY()));
+		fRotate = fmod(fRotate + F_PI, F_2PI);
+	}
+
+	// reset object shear and rotations
+	aGeo.nDrehWink = 0;
+	aGeo.RecalcSinCos();
+	aGeo.nShearWink = 0;
+	aGeo.RecalcTan();
+
+	// force metric to pool metric
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// position
+				aTranslate.setX(ImplMMToTwips(aTranslate.getX()));
+				aTranslate.setY(ImplMMToTwips(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplMMToTwips(aScale.getX()));
+				aScale.setY(ImplMMToTwips(aScale.getY()));
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRSetBaseGeometry: Missing unit translation to PoolMetric!");
+			}
+		}
+	}
+
+	// if anchor is used, make position relative to it
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate += basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// build and set BaseRect (use scale)
+	Point aPoint = Point();
+	Size aSize(FRound(aScale.getX()), FRound(aScale.getY()));
+	Rectangle aBaseRect(aPoint, aSize);
+	SetSnapRect(aBaseRect);
+
+	// shear?
+    if(!basegfx::fTools::equalZero(fShearX))
+=====================================================================
+Found a 26 line (346 tokens) duplication in the following files: 
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual TestData SAL_CALL getStruct() throw(com::sun::star::uno::RuntimeException)
+		{ return _aStructData; }
+
+    virtual void SAL_CALL setBool( sal_Bool _bool ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Bool = _bool; }
+    virtual void SAL_CALL setByte( sal_Int8 _byte ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Byte = _byte; }
+    virtual void SAL_CALL setChar( sal_Unicode _char ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Char = _char; }
+    virtual void SAL_CALL setShort( sal_Int16 _short ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Short = _short; }
+    virtual void SAL_CALL setUShort( sal_uInt16 _ushort ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.UShort = _ushort; }
+    virtual void SAL_CALL setLong( sal_Int32 _long ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Long = _long; }
+    virtual void SAL_CALL setULong( sal_uInt32 _ulong ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.ULong = _ulong; }
+    virtual void SAL_CALL setHyper( sal_Int64 _hyper ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Hyper = _hyper; }
+    virtual void SAL_CALL setUHyper( sal_uInt64 _uhyper ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.UHyper = _uhyper; }
+    virtual void SAL_CALL setFloat( float _float ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Float = _float; }
+    virtual void SAL_CALL setDouble( double _double ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Double = _double; }
+    virtual void SAL_CALL setEnum( TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 55 line (346 tokens) duplication in the following files: 
+Starting at line 2290 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 2544 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+            if( fstyle->boxtype == 'G' || fstyle->boxtype == 'B' || fstyle->boxtype == 'O')
+                padd(ascii("style:run-through"), sXML_CDATA, ascii("background"));
+            padd(ascii("style:wrap"), sXML_CDATA, ascii("run-through"));
+            break;
+        case 2:
+            padd(ascii("style:wrap"), sXML_CDATA, ascii("dynamic"));
+            break;
+    }
+    if (fstyle->anchor_type == CHAR_ANCHOR)
+    {
+        padd(ascii("style:vertical-pos"), sXML_CDATA, ascii("top"));
+        padd(ascii("style:vertical-rel"), sXML_CDATA, ascii("baseline"));
+        padd(ascii("style:horizontal-pos"), sXML_CDATA, ascii("center"));
+        padd(ascii("style:horizontal-rel"), sXML_CDATA, ascii("paragraph"));
+    }
+    else
+    {
+
+        switch (-(fstyle->xpos))
+        {
+            case 2:
+                padd(ascii("style:horizontal-pos"), sXML_CDATA, ascii("right"));
+                break;
+            case 3:
+                padd(ascii("style:horizontal-pos"), sXML_CDATA, ascii("center"));
+                break;
+            case 1:
+            default:
+                padd(ascii("style:horizontal-pos"), sXML_CDATA, ascii("from-left"));
+                break;
+        }
+        switch (-(fstyle->ypos))
+        {
+            case 2:
+                padd(ascii("style:vertical-pos"), sXML_CDATA, ascii("bottom"));
+                break;
+            case 3:
+                padd(ascii("style:vertical-pos"), sXML_CDATA, ascii("middle"));
+                break;
+            case 1:
+            default:
+                padd(ascii("style:vertical-pos"), sXML_CDATA, ascii("from-top"));
+                break;
+        }
+        if ( fstyle->anchor_type == PARA_ANCHOR )
+        {
+            padd(ascii("style:vertical-rel"), sXML_CDATA, ascii("paragraph"));
+            padd(ascii("style:horizontal-rel"), sXML_CDATA, ascii("paragraph"));
+        }
+        else
+        {
+            padd(ascii("style:vertical-rel"), sXML_CDATA, ascii("page-content"));
+            padd(ascii("style:horizontal-rel"), sXML_CDATA, ascii("page-content"));
+        }
+    }
+=====================================================================
+Found a 26 line (346 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual TestData SAL_CALL getStruct() throw(com::sun::star::uno::RuntimeException)
+		{ return _aStructData; }
+
+    virtual void SAL_CALL setBool( sal_Bool _bool ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Bool = _bool; }
+    virtual void SAL_CALL setByte( sal_Int8 _byte ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Byte = _byte; }
+    virtual void SAL_CALL setChar( sal_Unicode _char ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Char = _char; }
+    virtual void SAL_CALL setShort( sal_Int16 _short ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Short = _short; }
+    virtual void SAL_CALL setUShort( sal_uInt16 _ushort ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.UShort = _ushort; }
+    virtual void SAL_CALL setLong( sal_Int32 _long ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Long = _long; }
+    virtual void SAL_CALL setULong( sal_uInt32 _ulong ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.ULong = _ulong; }
+    virtual void SAL_CALL setHyper( sal_Int64 _hyper ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Hyper = _hyper; }
+    virtual void SAL_CALL setUHyper( sal_uInt64 _uhyper ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.UHyper = _uhyper; }
+    virtual void SAL_CALL setFloat( float _float ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Float = _float; }
+    virtual void SAL_CALL setDouble( double _double ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Double = _double; }
+    virtual void SAL_CALL setEnum( TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 79 line (345 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/support/simstr.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/xml2cmp/source/support/sistr.cxx
+
+}
+
+Simstr::Simstr(char c, int anzahl)
+{
+   if (anzahl < 1)
+      {
+         len = 0;
+         sz = new char[1];
+         *sz = 0;
+      }
+   else
+      {
+         len = anzahl;
+         sz = new char[len+1];
+         memset(sz,c,anzahl);
+         sz[len] = 0;
+      }
+}
+
+Simstr::Simstr( const char *   anybytes,
+				int            firstBytesPos,
+				int            nrOfBytes)
+{
+   unsigned slen = strlen(anybytes);
+   if (anybytes == 0 || slen <= unsigned(firstBytesPos))
+	  {
+		 len = 0;
+		 sz = new char[1];
+		 *sz = 0;
+	  }
+   else
+	  {
+         int maxLen = slen - unsigned(firstBytesPos);
+         len =  maxLen < nrOfBytes
+                  ? maxLen
+                  : nrOfBytes;
+         sz = new char[len+1];
+         memcpy(sz,anybytes+firstBytesPos,len);
+         *(sz+len) = 0;
+      }
+}
+
+
+Simstr::Simstr(const Simstr & S)
+{
+   len = S.len;
+   sz = new char[len+1];
+   memcpy(sz,S.sz,len+1);
+}
+
+Simstr & Simstr::operator=(const Simstr & S)
+{
+   if (sz == S.sz)
+      return *this;
+
+   delete [] sz;
+
+   len = S.len;
+   sz = new char[len+1];
+   memcpy(sz,S.sz,len+1);
+
+   return *this;
+}
+
+Simstr::~Simstr()
+{
+   delete [] sz;
+}
+
+char &
+Simstr::ch(int  n)
+{
+   static char nullCh = NULCH;
+   nullCh = NULCH;
+   if (n >= long(len) || n < 0)
+      return nullCh;
+   else
+      return sz[unsigned(n)];
+}
+=====================================================================
+Found a 81 line (345 tokens) duplication in the following files: 
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+						sal_Unicode c = aValue.GetChar(static_cast<sal_uInt16>(j));
+						// nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen?
+						if (c == cThousandDelimiter && j)
+							continue;
+						else
+						{
+							bNumeric = FALSE;
+							break;
+						}
+					}
+				}
+
+                // jetzt koennte es noch ein Datumsfeld sein
+				if (!bNumeric)
+				{
+					try
+					{
+						nIndex = m_xNumberFormatter->detectNumberFormat(::com::sun::star::util::NumberFormat::ALL,aField2);
+					}
+					catch(Exception&)
+					{
+					}
+				}
+			}
+		}
+
+		sal_Int32 nFlags = 0;
+		if (bNumeric)
+		{
+			if (cDecimalDelimiter)
+			{
+				if(nPrecision)
+				{
+					eType = DataType::DECIMAL;
+					aTypeName = ::rtl::OUString::createFromAscii("DECIMAL");
+				}
+				else
+				{
+					eType = DataType::DOUBLE;
+					aTypeName = ::rtl::OUString::createFromAscii("DOUBLE");
+				}
+			}
+			else
+				eType = DataType::INTEGER;
+			nFlags = ColumnSearch::BASIC;
+		}
+		else
+		{
+
+			switch (comphelper::getNumberFormatType(m_xNumberFormatter,nIndex))
+			{
+				case NUMBERFORMAT_DATE:
+					eType = DataType::DATE;
+					aTypeName = ::rtl::OUString::createFromAscii("DATE");
+					break;
+				case NUMBERFORMAT_DATETIME:
+					eType = DataType::TIMESTAMP;
+					aTypeName = ::rtl::OUString::createFromAscii("TIMESTAMP");
+					break;
+				case NUMBERFORMAT_TIME:
+					eType = DataType::TIME;
+					aTypeName = ::rtl::OUString::createFromAscii("TIME");
+					break;
+				default:
+					eType = DataType::VARCHAR;
+					nPrecision = 0;	// nyi: Daten koennen aber laenger sein!
+					nScale = 0;
+					aTypeName = ::rtl::OUString::createFromAscii("VARCHAR");
+			};
+			nFlags |= ColumnSearch::CHAR;
+		}
+
+		// check if the columname already exists
+		String aAlias(aColumnName);
+		OSQLColumns::const_iterator aFind = connectivity::find(m_aColumns->begin(),m_aColumns->end(),aAlias,aCase);
+		sal_Int32 nExprCnt = 0;
+		while(aFind != m_aColumns->end())
+		{
+			(aAlias = aColumnName) += String::CreateFromInt32(++nExprCnt);
+			aFind = connectivity::find(m_aColumns->begin(),m_aColumns->end(),aAlias,aCase);
+		}
+=====================================================================
+Found a 67 line (344 tokens) duplication in the following files: 
+Starting at line 659 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription * >(
+                        member)->pAttributeTypeRef));
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+=====================================================================
+Found a 75 line (343 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/typeblop.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/unodevtools/typeblob.cxx
+
+void writeConstantData(typereg::Writer& rWriter, sal_uInt16 fieldIndex,
+                       const Reference< XConstantTypeDescription >& xConstant)
+    
+{					  
+	RTConstValue constValue;						  
+	OUString uConstTypeName;
+	OUString uConstName = xConstant->getName();
+	Any aConstantAny = xConstant->getConstantValue();
+    
+	switch ( aConstantAny.getValueTypeClass() )
+	{
+    case TypeClass_BOOLEAN:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("boolean"));
+        constValue.m_type = RT_TYPE_BOOL; 
+        aConstantAny >>= constValue.m_value.aBool;
+    }
+    break;
+    case TypeClass_BYTE:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("byte"));
+        constValue.m_type = RT_TYPE_BYTE; 
+        aConstantAny >>= constValue.m_value.aByte;
+    }
+    break;
+    case TypeClass_SHORT:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("short"));
+        constValue.m_type = RT_TYPE_INT16; 
+        aConstantAny >>= constValue.m_value.aShort;
+    }
+    break;
+    case TypeClass_UNSIGNED_SHORT:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned short"));
+        constValue.m_type = RT_TYPE_UINT16; 
+        aConstantAny >>= constValue.m_value.aUShort;
+    }
+    break;
+    case TypeClass_LONG:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("long"));
+        constValue.m_type = RT_TYPE_INT32; 
+        aConstantAny >>= constValue.m_value.aLong;
+    }
+    break;
+    case TypeClass_UNSIGNED_LONG:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned long"));
+        constValue.m_type = RT_TYPE_UINT32; 
+        aConstantAny >>= constValue.m_value.aULong;
+    }
+    break;
+    case TypeClass_FLOAT:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("float"));
+        constValue.m_type = RT_TYPE_FLOAT; 
+        aConstantAny >>= constValue.m_value.aFloat;
+    }
+    break;
+    case TypeClass_DOUBLE:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("double"));
+        constValue.m_type = RT_TYPE_DOUBLE; 
+        aConstantAny >>= constValue.m_value.aDouble;
+    }
+    break;
+    case TypeClass_STRING:
+    {
+        uConstTypeName = OUString(RTL_CONSTASCII_USTRINGPARAM("string"));
+        constValue.m_type = RT_TYPE_STRING; 
+        constValue.m_value.aString = ((OUString*)aConstantAny.getValue())->getStr();
+    }
+	break;
+    default:
+=====================================================================
+Found a 69 line (342 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsconfiguration.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsconfiguration.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::xml::sax;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::io;
+
+
+namespace framework
+{
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	//return Reference< XParser >( xServiceManager->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	//return Reference< XDocumentHandler >( xServiceManager->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool EventsConfiguration::LoadEventsConfig( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+	SvStream& rInStream, EventsConfig& aItems )
+{
+	Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
+	Reference< XInputStream > xInputStream( 
+								(::cppu::OWeakObject *)new utl::OInputStreamWrapper( rInStream ), 
+								UNO_QUERY );
+
+	// connect stream to input stream to the parser
+	InputSource aInputSource;
+
+	aInputSource.aInputStream = xInputStream;
+
+	// create namespace filter and set events document handler inside to support xml namespaces
+	Reference< XDocumentHandler > xDocHandler( new OReadEventsDocumentHandler( aItems ));
+	Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
+
+	// connect parser and filter
+	xParser->setDocumentHandler( xFilter );
+
+	try
+	{
+		xParser->parseStream( aInputSource );
+		return sal_True;
+	}
+	catch ( RuntimeException& )
+	{
+		return sal_False;
+	}
+	catch( SAXException& )
+	{
+		return sal_False;
+	}
+	catch( ::com::sun::star::io::IOException& )
+	{
+		return sal_False;
+	}
+=====================================================================
+Found a 67 line (342 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/control/FieldDescControl.cxx
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/control/FieldDescControl.cxx
+
+	:TabPage( pParent, WB_3DLOOK | WB_DIALOGCONTROL )
+	,pHelp( pHelpBar )
+	,pLastFocusWindow(NULL)
+	,m_pActFocusWindow(NULL)
+	,pDefaultText(NULL)
+	,pRequiredText(NULL)
+	,pAutoIncrementText(NULL)
+	,pTextLenText(NULL)
+	,pNumTypeText(NULL)
+	,pLengthText(NULL)
+	,pScaleText(NULL)
+	,pFormatText(NULL)
+	,pBoolDefaultText(NULL)
+	,m_pColumnNameText(NULL)
+	,m_pTypeText(NULL)
+	,m_pAutoIncrementValueText(NULL)
+	,pRequired(NULL)
+	,pNumType(NULL)
+	,pAutoIncrement(NULL)
+	,pDefault(NULL)
+	,pTextLen(NULL)
+	,pLength(NULL)
+	,pScale(NULL)
+	,pFormatSample(NULL)
+	,pBoolDefault(NULL)
+	,m_pColumnName(NULL)
+	,m_pType(NULL)
+	,m_pAutoIncrementValue(NULL)
+	,pFormat(NULL)
+    ,m_pVertScroll( NULL )
+    ,m_pHorzScroll( NULL )
+    ,m_pPreviousType()
+	,nCurChildId(1)
+	,m_nPos(-1)
+    ,aYes(ModuleRes(STR_VALUE_YES))
+	,aNo(ModuleRes(STR_VALUE_NO))
+    ,m_nOldVThumb( 0 )
+    ,m_nOldHThumb( 0 )
+	,m_nWidth(50)
+    ,nDelayedGrabFocusEvent(0)
+    ,m_bAdded(sal_False)
+	,m_bRightAligned(false)
+    ,pActFieldDescr(NULL)
+{
+	DBG_CTOR(OFieldDescControl,NULL);
+
+	m_pVertScroll = new ScrollBar(this, WB_VSCROLL | WB_REPEAT | WB_DRAG);
+	m_pHorzScroll = new ScrollBar(this, WB_HSCROLL | WB_REPEAT | WB_DRAG);
+	m_pVertScroll->SetScrollHdl(LINK(this, OFieldDescControl, OnScroll));
+	m_pHorzScroll->SetScrollHdl(LINK(this, OFieldDescControl, OnScroll));
+	m_pVertScroll->Show();
+	m_pHorzScroll->Show();
+
+	m_pVertScroll->EnableClipSiblings();
+	m_pHorzScroll->EnableClipSiblings();
+
+	m_pVertScroll->SetLineSize(1);
+	m_pVertScroll->SetPageSize(1);
+	m_pHorzScroll->SetLineSize(1);
+	m_pHorzScroll->SetPageSize(1);
+
+	m_nOldVThumb = m_nOldHThumb = 0;
+
+}
+
+//------------------------------------------------------------------------------
+OFieldDescControl::~OFieldDescControl()
+=====================================================================
+Found a 53 line (342 tokens) duplication in the following files: 
+Starting at line 821 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testDouble() {
+=====================================================================
+Found a 57 line (341 tokens) duplication in the following files: 
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/connctrl.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/measctrl.cxx
+
+void SvxXMeasurePreview::MouseButtonDown( const MouseEvent& rMEvt )
+{
+	BOOL bZoomIn  = rMEvt.IsLeft() && !rMEvt.IsShift();
+	BOOL bZoomOut = rMEvt.IsRight() || rMEvt.IsShift();
+	BOOL bCtrl	  = rMEvt.IsMod1();
+
+	if( bZoomIn || bZoomOut )
+	{
+		MapMode aMapMode = GetMapMode();
+		Fraction aXFrac = aMapMode.GetScaleX();
+		Fraction aYFrac = aMapMode.GetScaleY();
+		Fraction* pMultFrac;
+
+		if( bZoomIn )
+		{
+			if( bCtrl )
+				pMultFrac = new Fraction( 3, 2 );
+			else
+				pMultFrac = new Fraction( 11, 10 );
+		}
+		else
+		{
+			if( bCtrl )
+				pMultFrac = new Fraction( 2, 3 );
+			else
+				pMultFrac = new Fraction( 10, 11 );
+		}
+
+		aXFrac *= *pMultFrac;
+		aYFrac *= *pMultFrac;
+		if( (double)aXFrac > 0.001 && (double)aXFrac < 1000.0 &&
+			(double)aYFrac > 0.001 && (double)aYFrac < 1000.0 )
+		{
+			aMapMode.SetScaleX( aXFrac );
+			aMapMode.SetScaleY( aYFrac );
+			SetMapMode( aMapMode );
+
+			Size aOutSize( GetOutputSize() );
+
+			Point aPt( aMapMode.GetOrigin() );
+			long nX = (long)( ( (double)aOutSize.Width() - ( (double)aOutSize.Width() * (double)*pMultFrac  ) ) / 2.0 + 0.5 );
+			long nY = (long)( ( (double)aOutSize.Height() - ( (double)aOutSize.Height() * (double)*pMultFrac  ) ) / 2.0 + 0.5 );
+			aPt.X() +=  nX;
+			aPt.Y() +=  nY;
+
+			aMapMode.SetOrigin( aPt );
+			SetMapMode( aMapMode );
+
+			Invalidate();
+		}
+		delete pMultFrac;
+	}
+}
+
+// -----------------------------------------------------------------------
+
+void SvxXMeasurePreview::DataChanged( const DataChangedEvent& rDCEvt )
+=====================================================================
+Found a 111 line (341 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/resourceprovider.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/resourceprovider.cxx
+
+using rtl::OUString;
+using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
+using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
+
+//------------------------------------------------------------
+// 
+//------------------------------------------------------------
+
+#define RES_NAME fps_office
+#define OTHER_RES_NAME svt
+
+//------------------------------------------------------------
+// we have to translate control ids to resource ids 
+//------------------------------------------------------------
+
+struct _Entry
+{
+    sal_Int32 ctrlId;
+    sal_Int16 resId;
+};
+
+_Entry CtrlIdToResIdTable[] = {
+    { CHECKBOX_AUTOEXTENSION,                   STR_SVT_FILEPICKER_AUTO_EXTENSION },
+    { CHECKBOX_PASSWORD,                        STR_SVT_FILEPICKER_PASSWORD },
+    { CHECKBOX_FILTEROPTIONS,                   STR_SVT_FILEPICKER_FILTER_OPTIONS },
+    { CHECKBOX_READONLY,                        STR_SVT_FILEPICKER_READONLY },
+    { CHECKBOX_LINK,                            STR_SVT_FILEPICKER_INSERT_AS_LINK },
+    { CHECKBOX_PREVIEW,                         STR_SVT_FILEPICKER_SHOW_PREVIEW },
+    { PUSHBUTTON_PLAY,                          STR_SVT_FILEPICKER_PLAY },
+    { LISTBOX_VERSION_LABEL,                    STR_SVT_FILEPICKER_VERSION },
+    { LISTBOX_TEMPLATE_LABEL,                   STR_SVT_FILEPICKER_TEMPLATES },
+    { LISTBOX_IMAGE_TEMPLATE_LABEL,             STR_SVT_FILEPICKER_IMAGE_TEMPLATE },
+    { CHECKBOX_SELECTION,                       STR_SVT_FILEPICKER_SELECTION },
+    { FOLDERPICKER_TITLE,                       STR_SVT_FOLDERPICKER_DEFAULT_TITLE },
+    { FOLDER_PICKER_DEF_DESCRIPTION,            STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION },
+    { FILE_PICKER_OVERWRITE,                    STR_SVT_ALREADYEXISTOVERWRITE }
+};
+
+_Entry OtherCtrlIdToResIdTable[] = {
+    { FILE_PICKER_TITLE_OPEN,                   STR_FILEDLG_OPEN },
+    { FILE_PICKER_TITLE_SAVE,                   STR_FILEDLG_SAVE },
+    { FILE_PICKER_FILE_TYPE,                    STR_FILEDLG_TYPE },
+};
+
+
+const sal_Int32 SIZE_TABLE = sizeof( CtrlIdToResIdTable ) / sizeof( _Entry );
+const sal_Int32 OTHER_SIZE_TABLE = sizeof( OtherCtrlIdToResIdTable ) / sizeof( _Entry );
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+sal_Int16 CtrlIdToResId( sal_Int32 aControlId )
+{    
+    sal_Int16 aResId = -1;
+
+    for ( sal_Int32 i = 0; i < SIZE_TABLE; i++ )
+    {
+        if ( CtrlIdToResIdTable[i].ctrlId == aControlId )
+        {
+            aResId = CtrlIdToResIdTable[i].resId;
+            break;
+        }
+    }    
+    
+    return aResId;
+}
+
+sal_Int16 OtherCtrlIdToResId( sal_Int32 aControlId )
+{    
+    sal_Int16 aResId = -1;
+
+    for ( sal_Int32 i = 0; i < OTHER_SIZE_TABLE; i++ )
+    {
+        if ( OtherCtrlIdToResIdTable[i].ctrlId == aControlId )
+        {
+            aResId = OtherCtrlIdToResIdTable[i].resId;
+            break;
+        }
+    }    
+    
+    return aResId;
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+class CResourceProvider_Impl
+{
+public:
+
+    //-------------------------------------
+    //
+    //-------------------------------------
+
+    CResourceProvider_Impl( )
+    {        
+        m_ResMgr = CREATEVERSIONRESMGR( RES_NAME );
+        m_OtherResMgr = CREATEVERSIONRESMGR( OTHER_RES_NAME );
+    }
+
+    //-------------------------------------
+    //
+    //-------------------------------------
+
+    ~CResourceProvider_Impl( )
+    {
+        delete m_ResMgr;
+        delete m_OtherResMgr;
+    }
+=====================================================================
+Found a 109 line (340 tokens) duplication in the following files: 
+Starting at line 5912 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6223 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                pVer8 = (WW8_FFN_Ver8*)( ((BYTE*)pVer8) + pVer8->cbFfnM1 + 1 );
+            }
+        }
+    }
+    delete[] pA;
+}
+
+const WW8_FFN* WW8Fonts::GetFont( USHORT nNum ) const
+{
+    if( !pFontA || nNum >= nMax )
+        return 0;
+
+    return &pFontA[ nNum ];
+}
+
+
+
+//-----------------------------------------
+
+
+// Suche zu einem Header / Footer den Index in der WW-Liste von Headern / Footern
+//
+// Pferdefuesse bei WinWord6 und -7:
+// 1) Am Anfang des Einlesens muss WWPLCF_HdFt mit Fib und Dop konstruiert werden
+// 2) Der Haupttext muss sequentiell ueber alle Sections gelesen werden
+// 3) Fuer jedes vorkommende Header / Footer - Attribut des Haupttextes
+//  ( Darf pro Section maximal eins sein ) muss UpdateIndex() genau einmal
+//  mit dem Parameter des Attributes gerufen werden. Dieser Aufruf muss *nach*
+//  dem letzten Aufruf von GetTextPos() passieren.
+// 4) GetTextPos() darf mit genau einem der obenstehen WW_... aufgerufen werden
+//   ( nicht verodern ! )
+// -> dann liefert GetTextPos() vielleicht auch ein richtiges Ergebnis
+
+WW8PLCF_HdFt::WW8PLCF_HdFt( SvStream* pSt, WW8Fib& rFib, WW8Dop& rDop )
+    : aPLCF( pSt, rFib.fcPlcfhdd , rFib.lcbPlcfhdd , 0 )
+{
+    nIdxOffset = 0;
+
+     /*
+      cmc 23/02/2000: This dop.grpfIhdt has a bit set for each special
+      footnote *and endnote!!* seperator,continuation seperator, and
+      continuation notice entry, the documentation does not mention the
+      endnote seperators, the documentation also gets the index numbers
+      backwards when specifiying which bits to test. The bottom six bits
+      of this value must be tested and skipped over. Each section's
+      grpfIhdt is then tested for the existence of the appropiate headers
+      and footers, at the end of each section the nIdxOffset must be updated
+      to point to the beginning of the next section's group of headers and
+      footers in this PLCF, UpdateIndex does that task.
+      */
+    for( BYTE nI = 0x1; nI <= 0x20; nI <<= 1 )
+        if( nI & rDop.grpfIhdt )                // Bit gesetzt ?
+            nIdxOffset++;
+
+    nTextOfs = rFib.ccpText + rFib.ccpFtn;  // Groesse des Haupttextes
+                                            // und der Fussnoten
+}
+
+bool WW8PLCF_HdFt::GetTextPos(BYTE grpfIhdt, BYTE nWhich, WW8_CP& rStart,
+    long& rLen)
+{
+    BYTE nI = 0x01;
+    short nIdx = nIdxOffset;
+    while (true)
+    {
+        if( nI & nWhich )
+            break;                      // found
+        if( grpfIhdt & nI )
+            nIdx++;                     // uninteresting Header / Footer
+        nI <<= 1;                       // text next bit
+        if( nI > 0x20 )
+            return false;               // not found
+    }
+                                        // nIdx ist HdFt-Index
+    WW8_CP nEnd;
+    void* pData;
+
+    aPLCF.SetIdx( nIdx );               // Lookup suitable CP
+    aPLCF.Get( rStart, nEnd, pData );
+    rLen = nEnd - rStart;
+    aPLCF++;
+
+    return true;
+}
+
+bool WW8PLCF_HdFt::GetTextPosExact(short nIdx, WW8_CP& rStart, long& rLen)
+{
+    WW8_CP nEnd;
+    void* pData;
+
+    aPLCF.SetIdx( nIdx );               // Lookup suitable CP
+    aPLCF.Get( rStart, nEnd, pData );
+    rLen = nEnd - rStart;
+    return true;
+}
+
+void WW8PLCF_HdFt::UpdateIndex( BYTE grpfIhdt )
+{
+    // Caution: Description is not correct
+    for( BYTE nI = 0x01; nI <= 0x20; nI <<= 1 )
+        if( nI & grpfIhdt )
+            nIdxOffset++;
+}
+
+//-----------------------------------------
+//          WW8Dop
+//-----------------------------------------
+
+WW8Dop::WW8Dop(SvStream& rSt, INT16 nFib, INT32 nPos, sal_uInt32 nSize) : bUseThaiLineBreakingRules(false)
+=====================================================================
+Found a 37 line (340 tokens) duplication in the following files: 
+Starting at line 2169 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3509 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+
+	if ( !pHitObj && HasText() )
+	{
+		// paint text over object
+		double fTextRotation = GetExtraTextRotation();
+		if ( fTextRotation != 0.0 )
+		{
+			GeoStat aOldGeoStat( aGeo );
+			Rectangle aOldRect( aRect );
+			Rectangle aTextBound( aRect );
+			GetTextBounds( aTextBound );
+
+			// determining the correct refpoint
+			Point aRef( aTextBound.Center() );
+			Rectangle aUnrotatedSnapRect( aOutRect );
+			RotatePoint( aRef, aUnrotatedSnapRect.Center(), -aGeo.nSin, -aGeo.nCos );
+
+			long dx = aRect.Right()-aRect.Left();
+			long dy = aRect.Bottom()-aRect.Top();
+			Point aP( aRect.TopLeft() );
+			double sn = sin( F_PI180 * fTextRotation );
+			double cs = cos( F_PI180 * fTextRotation );
+			RotatePoint( aP, aRef, sn, cs );
+			((SdrObjCustomShape*)this)->aRect.Left()=aP.X();
+			((SdrObjCustomShape*)this)->aRect.Top()=aP.Y();
+			((SdrObjCustomShape*)this)->aRect.Right()=aRect.Left()+dx;
+			((SdrObjCustomShape*)this)->aRect.Bottom()=aRect.Top()+dy;
+			if ( aGeo.nDrehWink == 0 )
+			{
+				((SdrObjCustomShape*)this)->aGeo.nDrehWink=NormAngle360( (sal_Int32)( fTextRotation * 100.0 ) );
+				((SdrObjCustomShape*)this)->aGeo.nSin = sn;
+				((SdrObjCustomShape*)this)->aGeo.nCos = cs;
+			}
+			else
+			{
+				((SdrObjCustomShape*)this)->aGeo.nDrehWink=NormAngle360( aGeo.nDrehWink + (sal_Int32)( fTextRotation * 100.0 ) );
+				((SdrObjCustomShape*)this)->aGeo.RecalcSinCos();
+			}
+=====================================================================
+Found a 63 line (340 tokens) duplication in the following files: 
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+    static Token onetoken[1] = {{NUMBER, 0, 0, 1, onestr, 0}};
+    static Tokenrow onetr = {onetoken, onetoken, onetoken + 1, 1};
+
+    trp->tp = trp->bp;
+    if (type == 'U')
+    {
+        if (trp->lp - trp->tp != 2 || trp->tp->type != NAME)
+            goto syntax;
+        if ((np = lookup(trp->tp, 0)) == NULL)
+            return;
+        np->flag &= ~ISDEFINED;
+        return;
+    }
+
+    if (type == 'A')
+    {
+        if (trp->tp >= trp->lp || trp->tp->type != NAME)
+            goto syntax;
+        trp->tp->type = ARCHITECTURE;
+        np = lookup(trp->tp, 1);
+        np->flag |= ISARCHITECTURE;
+        trp->tp += 1;
+        if (trp->tp >= trp->lp || trp->tp->type == END)
+        {
+            np->vp = &onetr;
+            return;
+        }
+        else
+            error(FATAL, "Illegal -A argument %r", trp);
+    }
+
+    if (trp->tp >= trp->lp || trp->tp->type != NAME)
+        goto syntax;
+    np = lookup(trp->tp, 1);
+    np->flag |= ISDEFINED;
+    trp->tp += 1;
+    if (trp->tp >= trp->lp || trp->tp->type == END)
+    {
+        np->vp = &onetr;
+        return;
+	}
+	if (trp->tp->type != ASGN)
+		goto syntax;
+	trp->tp += 1;
+	if ((trp->lp - 1)->type == END)
+		trp->lp -= 1;
+	np->vp = normtokenrow(trp);
+	return;
+syntax:
+	error(FATAL, "Illegal -D or -U argument %r", trp);
+}
+
+
+
+/*
+ * Do macro expansion in a row of tokens.
+ * Flag is NULL if more input can be gathered.
+ */
+void
+	expandrow(Tokenrow * trp, char *flag)
+{
+	Token *	tp;
+	Nlist *	np;
+=====================================================================
+Found a 58 line (340 tokens) duplication in the following files: 
+Starting at line 1075 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+Starting at line 1252 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+            if ( !implts_checkAndScaleGraphic( xGraphic, aGraphicSequence[i], nIndex ))
+                continue;
+
+            USHORT nPos = pImageList->GetImagePos( aCommandURLSequence[i] );
+            if ( nPos == IMAGELIST_IMAGE_NOTFOUND )
+            {
+                pImageList->AddImage( aCommandURLSequence[i], xGraphic );
+                if ( !pInsertedImages )
+                    pInsertedImages = new CmdToXGraphicNameAccess();
+                pInsertedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+            else
+            {
+                pImageList->ReplaceImage( aCommandURLSequence[i], xGraphic );
+                if ( !pReplacedImages )
+                    pReplacedImages = new CmdToXGraphicNameAccess();
+                pReplacedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+        }
+        
+        if (( pInsertedImages != 0 ) || ( pReplacedImages != 0 ))
+        {
+            m_bModified = sal_True;
+            m_bUserImageListModified[nIndex] = true;
+        }
+    }
+
+    // Notify listeners
+    uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+
+    if ( pInsertedImages != 0 )
+    {
+        ConfigurationEvent aInsertEvent;
+        aInsertEvent.aInfo           = uno::makeAny( nImageType );
+        aInsertEvent.Accessor        = uno::makeAny( xThis );
+        aInsertEvent.Source          = xIfac;
+        aInsertEvent.ResourceURL     = m_aResourceString;
+        aInsertEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                        static_cast< OWeakObject *>( pInsertedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aInsertEvent, NotifyOp_Insert );
+    }
+    if ( pReplacedImages != 0 )
+    {
+        ConfigurationEvent aReplaceEvent;
+        aReplaceEvent.aInfo           = uno::makeAny( nImageType );
+        aReplaceEvent.Accessor        = uno::makeAny( xThis );
+        aReplaceEvent.Source          = xIfac;
+        aReplaceEvent.ResourceURL     = m_aResourceString;
+        aReplaceEvent.ReplacedElement = Any();
+        aReplaceEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                         static_cast< OWeakObject *>( pReplacedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aReplaceEvent, NotifyOp_Replace );
+    }
+}
+
+// XUIConfiguration
+void SAL_CALL ModuleImageManager::addConfigurationListener( const uno::Reference< ::com::sun::star::ui::XUIConfigurationListener >& xListener ) 
+=====================================================================
+Found a 58 line (340 tokens) duplication in the following files: 
+Starting at line 735 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 883 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+
+            if ( !implts_checkAndScaleGraphic( xGraphic, aGraphicSequence[i], nIndex ))
+                continue;
+
+            USHORT nPos = pImageList->GetImagePos( aCommandURLSequence[i] );
+            if ( nPos == IMAGELIST_IMAGE_NOTFOUND )
+            {
+                pImageList->AddImage( aCommandURLSequence[i], xGraphic );
+                if ( !pInsertedImages )
+                    pInsertedImages = new CmdToXGraphicNameAccess();
+                pInsertedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+            else
+            {
+                pImageList->ReplaceImage( aCommandURLSequence[i], xGraphic );
+                if ( !pReplacedImages )
+                    pReplacedImages = new CmdToXGraphicNameAccess();
+                pReplacedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+        }
+        
+        if (( pInsertedImages != 0 ) || ( pReplacedImages != 0 ))
+        {
+            m_bModified = sal_True;
+            m_bUserImageListModified[nIndex] = true;
+        }
+    }
+
+    // Notify listeners
+    uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+
+    if ( pInsertedImages != 0 )
+    {
+        ConfigurationEvent aInsertEvent;
+        aInsertEvent.aInfo           = uno::makeAny( nImageType );
+        aInsertEvent.Accessor        = uno::makeAny( xThis );
+        aInsertEvent.Source          = xIfac;
+        aInsertEvent.ResourceURL     = m_aResourceString;
+        aInsertEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                        static_cast< OWeakObject *>( pInsertedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aInsertEvent, NotifyOp_Insert );
+    }
+    if ( pReplacedImages != 0 )
+    {
+        ConfigurationEvent aReplaceEvent;
+        aReplaceEvent.aInfo           = uno::makeAny( nImageType );
+        aReplaceEvent.Accessor        = uno::makeAny( xThis );
+        aReplaceEvent.Source          = xIfac;
+        aReplaceEvent.ResourceURL     = m_aResourceString;
+        aReplaceEvent.ReplacedElement = Any();
+        aReplaceEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                         static_cast< OWeakObject *>( pReplacedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aReplaceEvent, NotifyOp_Replace );
+    }
+}
+
+// XUIConfiguration
+void SAL_CALL ImageManager::addConfigurationListener( const uno::Reference< ::com::sun::star::ui::XUIConfigurationListener >& xListener ) 
+=====================================================================
+Found a 92 line (340 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+
+Sequence<Any> createSequence(const OUString &sUser, const OUString &sPasswd)
+{
+	Sequence< Any > aCPArgs;
+		
+	if (sUser.getLength() > 0)
+	{
+		aCPArgs.realloc(1);
+		aCPArgs[0] <<= configmgr::createPropertyValue(ASCII("user"), sUser);
+	}
+	if (sPasswd.getLength() > 0)
+	{
+		aCPArgs.realloc(2);
+		aCPArgs[1] <<= configmgr::createPropertyValue(ASCII("password"), sPasswd);
+	}
+	return aCPArgs;
+}
+
+//=============================================================================
+#include <string.h>
+#if (defined UNX) || (defined OS2)
+#else
+#include <conio.h>
+#endif
+
+OString input(const char* pDefaultText, char cEcho)
+{
+	// PRE: a Default Text would be shown, cEcho is a Value which will show if a key is pressed.
+	const int MAX_INPUT_LEN = 500;
+	char aBuffer[MAX_INPUT_LEN];
+
+	strcpy(aBuffer, pDefaultText);
+	int nLen = strlen(aBuffer);
+
+#ifdef WNT
+	char ch = '\0';
+
+	cout << aBuffer;
+	cout.flush();
+
+	while(ch != 13)
+	{
+		ch = getch();
+		if (ch == 8)
+		{
+			if (nLen > 0)
+			{
+				cout << "\b \b";
+				cout.flush();
+				--nLen;
+				aBuffer[nLen] = '\0';
+			}
+			else
+			{
+				cout << "\a";
+				cout.flush();
+			}
+		}
+		else if (ch != 13)
+		{
+			if (nLen < MAX_INPUT_LEN)
+			{
+				if (cEcho == 0)
+				{
+					cout << ch;
+				}
+				else
+				{
+					cout << cEcho;
+				}
+				cout.flush();
+				aBuffer[nLen++] = ch;
+				aBuffer[nLen] = '\0';
+			}
+			else
+			{
+				cout << "\a";
+				cout.flush();
+			}
+		}
+	}
+#else
+	if (!cin.getline(aBuffer,sizeof aBuffer))
+		return OString();
+#endif
+	return OString(aBuffer);
+}
+
+// -----------------------------------------------------------------------------
+rtl::OUString enterValue(const char* _aStr, const char* _aDefault, bool _bIsAPassword)
+{
+	cout << _aStr;
+	cout.flush();
+=====================================================================
+Found a 78 line (339 tokens) duplication in the following files: 
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+    if ( isContentCreator() )
+    {
+        static cppu::OTypeCollection* pFolderTypes = 0;
+
+        pCollection = pFolderTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pFolderTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                    CPPU_TYPE_REF( lang::XTypeProvider ),
+                    CPPU_TYPE_REF( lang::XServiceInfo ),
+                    CPPU_TYPE_REF( lang::XComponent ),
+                    CPPU_TYPE_REF( ucb::XContent ),
+                    CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                    CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                    CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                    CPPU_TYPE_REF( beans::XPropertyContainer ),
+                    CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                    CPPU_TYPE_REF( container::XChild ),
+                    CPPU_TYPE_REF( ucb::XContentCreator ) ); // !!
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pFolderTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+    else
+    {
+        static cppu::OTypeCollection* pDocumentTypes = 0;
+
+        pCollection = pDocumentTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pDocumentTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                    CPPU_TYPE_REF( lang::XTypeProvider ),
+                    CPPU_TYPE_REF( lang::XServiceInfo ),
+                    CPPU_TYPE_REF( lang::XComponent ),
+                    CPPU_TYPE_REF( ucb::XContent ),
+                    CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                    CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                    CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                    CPPU_TYPE_REF( beans::XPropertyContainer ),
+                    CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                    CPPU_TYPE_REF( container::XChild ) );
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pDocumentTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+
+    return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+    throw( uno::RuntimeException )
+{
+    return rtl::OUString::createFromAscii(
+=====================================================================
+Found a 58 line (339 tokens) duplication in the following files: 
+Starting at line 2405 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 957 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+    return true;
+}
+
+bool Convert( sal_Bool        bUseProduct,
+              const OUString& aUseRes,
+              const OUString& rVersion,
+              const OUString& rOutputDirName,
+              const OUString& rPlatformName,
+              const std::vector< OUString >& rInDirVector,
+              const OUString& rErrOutputFileName )
+{
+    OUString aWorkDir;
+
+    osl_getProcessWorkingDir( &aWorkDir.pData );
+
+    // Try to find xx*.csv file and put all commands into hash table
+    for ( int i = 0; i < (int)rInDirVector.size(); i++ )
+    {
+        OUString aAbsInDirURL;
+        OUString aInDirURL;
+        OUString aInDir( rInDirVector[i] );
+
+        osl::FileBase::getFileURLFromSystemPath( aInDir, aInDirURL );
+        osl::FileBase::getAbsoluteFileURL( aWorkDir, aInDirURL, aAbsInDirURL );
+        osl::Directory aDir( aAbsInDirURL );
+        if ( aDir.open() == osl::FileBase::E_None )
+        {
+            osl::DirectoryItem aItem;
+            while ( aDir.getNextItem( aItem ) == osl::FileBase::E_None )
+            {
+                osl::FileStatus aFileStatus( FileStatusMask_FileName );
+
+                aItem.getFileStatus( aFileStatus );
+
+                int j=0;
+                OUString aFileName = aFileStatus.getFileName();
+
+                while ( ProjectModule_Mapping[j].pProjectFolder != 0 &&
+                        ProjectModule_Mapping[j].bSlotCommands == true )
+                {
+                    if ( aFileName.equalsAscii( ProjectModule_Mapping[j].pProjectFolder ))
+                    {
+                        OUStringBuffer aBuf( aAbsInDirURL );
+
+                        aBuf.appendAscii( "/" );
+                        aBuf.append( aFileStatus.getFileName() );
+                        aBuf.appendAscii( "/" );
+                        aBuf.append( rPlatformName );
+                        if ( bUseProduct )
+                            aBuf.appendAscii( ".pro" );
+                        aBuf.appendAscii( "/misc/xx" );
+                        aBuf.appendAscii( ProjectModule_Mapping[j].pCSVPrefix );
+                        aBuf.appendAscii( ".csv" );
+
+                        OUString aCSVFileURL( aBuf.makeStringAndClear() );
+                        ReadCSVFile( aCSVFileURL, ProjectModule_Mapping[j].eBelongsTo, OUString::createFromAscii( ProjectModule_Mapping[j].pProjectFolder ));
+                        break;
+                    }
+=====================================================================
+Found a 68 line (339 tokens) duplication in the following files: 
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvashelper.cxx
+
+        return uno::Reference< rendering::XBitmap >();
+    }
+
+    uno::Sequence< sal_Int8 > CanvasHelper::getData( rendering::IntegerBitmapLayout&     /*bitmapLayout*/, 
+                                                     const geometry::IntegerRectangle2D& /*rect*/ )
+    {
+        // TODO
+        return uno::Sequence< sal_Int8 >();
+    }
+
+    void CanvasHelper::setData( const uno::Sequence< sal_Int8 >& 		/*data*/, 
+                                const rendering::IntegerBitmapLayout&   /*bitmapLayout*/, 
+                                const geometry::IntegerRectangle2D& 	/*rect*/ )
+    {
+    }
+
+    void CanvasHelper::setPixel( const uno::Sequence< sal_Int8 >&       /*color*/, 
+                                 const rendering::IntegerBitmapLayout&  /*bitmapLayout*/, 
+                                 const geometry::IntegerPoint2D&        /*pos*/ )
+    {
+    }
+
+    uno::Sequence< sal_Int8 > CanvasHelper::getPixel( rendering::IntegerBitmapLayout&   /*bitmapLayout*/, 
+                                                      const geometry::IntegerPoint2D&   /*pos*/ )
+    {
+        return uno::Sequence< sal_Int8 >();
+    }
+
+    uno::Reference< rendering::XBitmapPalette > CanvasHelper::getPalette()
+    {
+        // TODO(F1): Palette bitmaps NYI
+        return uno::Reference< rendering::XBitmapPalette >();
+    }
+
+    rendering::IntegerBitmapLayout CanvasHelper::getMemoryLayout()
+    {
+        // TODO(F1): finish memory layout initialization
+        rendering::IntegerBitmapLayout aLayout;
+
+        const geometry::IntegerSize2D& rBmpSize( getSize() );
+
+        aLayout.ScanLines = rBmpSize.Width;
+        aLayout.ScanLineBytes = rBmpSize.Height * 4;
+        aLayout.ScanLineStride = aLayout.ScanLineBytes;
+        aLayout.PlaneStride = 0;
+        aLayout.ColorSpace.set( mpDevice ); 
+        aLayout.NumComponents = 4;
+        aLayout.ComponentMasks.realloc(4);
+        aLayout.ComponentMasks[0] = 0x00FF0000;
+        aLayout.ComponentMasks[1] = 0x0000FF00;
+        aLayout.ComponentMasks[2] = 0x000000FF;
+        aLayout.ComponentMasks[3] = 0xFF000000;
+        aLayout.Palette.clear();
+        aLayout.Endianness = rendering::Endianness::LITTLE;
+        aLayout.Format = rendering::IntegerBitmapFormat::CHUNKY_32BIT;
+        aLayout.IsMsbFirst = sal_False;
+
+        return aLayout;
+    }
+
+    void CanvasHelper::flush() const
+    {
+    }
+
+    bool CanvasHelper::hasAlpha() const
+    {
+        return mbHaveAlpha;
+    }
+=====================================================================
+Found a 66 line (338 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtfsl/RTFSLParser.cxx
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx
+
+    virtual ~XmlRtfScannerHandler() {}
+
+	void dump()
+	{
+	}
+};
+
+class RtfInputSourceImpl : public rtftok::RTFInputSource
+{
+private:
+	uno::Reference< io::XInputStream > xInputStream;
+	uno::Reference< io::XSeekable > xSeekable;
+	uno::Reference< task::XStatusIndicator > xStatusIndicator;
+	sal_Int64 bytesTotal;
+	sal_Int64 bytesRead;
+public:
+	RtfInputSourceImpl(uno::Reference< io::XInputStream > &xInputStream_, uno::Reference< task::XStatusIndicator > &xStatusIndicator_) :
+	  xInputStream(xInputStream_),
+	  xStatusIndicator(xStatusIndicator_),
+	  bytesRead(0)
+	{
+		xSeekable=uno::Reference< io::XSeekable >(xInputStream, uno::UNO_QUERY);
+		if (xSeekable.is())
+			bytesTotal=xSeekable->getLength();
+		if (xStatusIndicator.is() && xSeekable.is())
+		{
+			xStatusIndicator->start(::rtl::OUString::createFromAscii("Converting"), 100);
+		}
+	}
+
+    virtual ~RtfInputSourceImpl() {}
+
+	int read(void *buf, int maxlen)
+	{
+		uno::Sequence< sal_Int8 > buffer;
+		int len=xInputStream->readSomeBytes(buffer,maxlen);
+		if (len>0)
+		{
+			sal_Int8 *_buffer=buffer.getArray();
+			memcpy(buf, _buffer, len);
+			bytesRead+=len;
+			if (xStatusIndicator.is())
+			{
+				if (xSeekable.is())
+				{
+					xStatusIndicator->setValue((int)(bytesRead*100/bytesTotal));
+				}
+				else
+				{
+					char buf1[100];
+					sprintf(buf1, "Converted %Li KB", bytesRead/1024);
+					xStatusIndicator->start(::rtl::OUString::createFromAscii(buf1), 0);
+				}
+			}
+			return len;
+		}
+		else
+		{
+			if (xStatusIndicator.is())
+			{
+				xStatusIndicator->end();
+			}
+			return 0;
+		}
+	}
+};
+=====================================================================
+Found a 63 line (338 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/registry_tdprovider/testregistrytdprovider.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/tdmanager/testtdmanager.cxx
+
+namespace css = com::sun::star;
+
+namespace {
+
+class Service: public cppu::WeakImplHelper1< css::lang::XMain > {
+public:
+    virtual sal_Int32 SAL_CALL
+    run(css::uno::Sequence< rtl::OUString > const & arguments)
+        throw (css::uno::RuntimeException);
+
+    static rtl::OUString getImplementationName();
+
+    static css::uno::Sequence< rtl::OUString > getSupportedServiceNames();
+
+    static css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(
+        css::uno::Reference< css::uno::XComponentContext > const & context)
+        throw (css::uno::Exception);
+
+private:
+    explicit Service(
+        css::uno::Reference< css::uno::XComponentContext > const & context):
+        m_context(context)
+    {}
+
+    css::uno::Reference< css::uno::XComponentContext > m_context;
+};
+
+}
+
+namespace {
+
+std::ostream & operator <<(std::ostream & out, rtl::OUString const & value) {
+    return out << rtl::OUStringToOString(value, RTL_TEXTENCODING_UTF8).getStr();
+}
+
+void assertTrue(bool argument) {
+    if (!argument) {
+        std::cerr
+            << "assertTrue(" << argument << ") failed" << std::endl;
+        /*MSVC trouble: std::*/abort();
+    }
+}
+
+void assertFalse(bool argument) {
+    if (argument) {
+        std::cerr
+            << "assertFalse(" << argument << ") failed" << std::endl;
+        /*MSVC trouble: std::*/abort();
+    }
+}
+
+template< typename T > void assertEqual(T const & value, T const & argument) {
+    if (argument != value) {
+        std::cerr
+            << "assertEqual(" << value << ", " << argument << ") failed"
+            << std::endl;
+        /*MSVC trouble: std::*/abort();
+    }
+}
+
+}
+
+sal_Int32 Service::run(css::uno::Sequence< rtl::OUString > const & arguments)
+=====================================================================
+Found a 58 line (338 tokens) duplication in the following files: 
+Starting at line 735 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1252 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+            if ( !implts_checkAndScaleGraphic( xGraphic, aGraphicSequence[i], nIndex ))
+                continue;
+
+            USHORT nPos = pImageList->GetImagePos( aCommandURLSequence[i] );
+            if ( nPos == IMAGELIST_IMAGE_NOTFOUND )
+            {
+                pImageList->AddImage( aCommandURLSequence[i], xGraphic );
+                if ( !pInsertedImages )
+                    pInsertedImages = new CmdToXGraphicNameAccess();
+                pInsertedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+            else
+            {
+                pImageList->ReplaceImage( aCommandURLSequence[i], xGraphic );
+                if ( !pReplacedImages )
+                    pReplacedImages = new CmdToXGraphicNameAccess();
+                pReplacedImages->addElement( aCommandURLSequence[i], xGraphic );
+            }
+        }
+        
+        if (( pInsertedImages != 0 ) || ( pReplacedImages != 0 ))
+        {
+            m_bModified = sal_True;
+            m_bUserImageListModified[nIndex] = true;
+        }
+    }
+
+    // Notify listeners
+    uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+
+    if ( pInsertedImages != 0 )
+    {
+        ConfigurationEvent aInsertEvent;
+        aInsertEvent.aInfo           = uno::makeAny( nImageType );
+        aInsertEvent.Accessor        = uno::makeAny( xThis );
+        aInsertEvent.Source          = xIfac;
+        aInsertEvent.ResourceURL     = m_aResourceString;
+        aInsertEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                        static_cast< OWeakObject *>( pInsertedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aInsertEvent, NotifyOp_Insert );
+    }
+    if ( pReplacedImages != 0 )
+    {
+        ConfigurationEvent aReplaceEvent;
+        aReplaceEvent.aInfo           = uno::makeAny( nImageType );
+        aReplaceEvent.Accessor        = uno::makeAny( xThis );
+        aReplaceEvent.Source          = xIfac;
+        aReplaceEvent.ResourceURL     = m_aResourceString;
+        aReplaceEvent.ReplacedElement = Any();
+        aReplaceEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                         static_cast< OWeakObject *>( pReplacedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aReplaceEvent, NotifyOp_Replace );
+    }
+}
+
+// XUIConfiguration
+void SAL_CALL ModuleImageManager::addConfigurationListener( const uno::Reference< ::com::sun::star::ui::XUIConfigurationListener >& xListener ) 
+=====================================================================
+Found a 48 line (338 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/aqua/HtmlFmtFlt.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/dtobj/FmtFilter.cxx
+
+}
+
+// the office allways writes the start and end html tag in upper cases and
+// without spaces both tags don't allow parameters
+const std::string TAG_HTML = std::string("<HTML>");
+const std::string TAG_END_HTML = std::string("</HTML>");
+
+// The body tag may have parameters so we need to search for the
+// closing '>' manually e.g. <BODY param> #92840#
+const std::string TAG_BODY = std::string("<BODY");
+const std::string TAG_END_BODY = std::string("</BODY");
+
+Sequence<sal_Int8> SAL_CALL TextHtmlToHTMLFormat(Sequence<sal_Int8>& aTextHtml)
+{
+	OSL_ASSERT(aTextHtml.getLength() > 0);
+	
+	if (!(aTextHtml.getLength() > 0))
+		return Sequence<sal_Int8>();
+	        		
+	// fill the buffer with dummy values to calc the exact length
+    std::string dummyHtmlHeader = GetHtmlFormatHeader(0, 0, 0, 0);		
+	size_t lHtmlFormatHeader = dummyHtmlHeader.length();
+	    	   
+	std::string textHtml(
+	    reinterpret_cast<const sal_Char*>(aTextHtml.getConstArray()), 
+		reinterpret_cast<const sal_Char*>(aTextHtml.getConstArray()) + aTextHtml.getLength());
+								    			    	    
+	std::string::size_type nStartHtml = textHtml.find(TAG_HTML) + lHtmlFormatHeader - 1; // we start one before '<HTML>' Word 2000 does also so
+	std::string::size_type nEndHtml = textHtml.find(TAG_END_HTML) + lHtmlFormatHeader + TAG_END_HTML.length() + 1; // our SOffice 5.2 wants 2 behind </HTML>?
+	
+	// The body tag may have parameters so we need to search for the
+	// closing '>' manually e.g. <BODY param> #92840#
+	std::string::size_type nStartFragment = textHtml.find(">", textHtml.find(TAG_BODY)) + lHtmlFormatHeader + 1; 
+	std::string::size_type nEndFragment = textHtml.find(TAG_END_BODY) + lHtmlFormatHeader;
+
+	std::string htmlFormat = GetHtmlFormatHeader(nStartHtml, nEndHtml, nStartFragment, nEndFragment);	
+	htmlFormat += textHtml;
+		
+	Sequence<sal_Int8> byteSequence(htmlFormat.length() + 1); // space the trailing '\0'
+	rtl_zeroMemory(byteSequence.getArray(), byteSequence.getLength());						
+		
+	rtl_copyMemory(
+		static_cast<void*>(byteSequence.getArray()),
+		static_cast<const void*>(htmlFormat.c_str()),
+		htmlFormat.length());
+	
+	return byteSequence;
+}
+=====================================================================
+Found a 78 line (337 tokens) duplication in the following files: 
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    if ( bFolder )
+    {
+        static cppu::OTypeCollection* pFolderTypes = 0;
+
+        pCollection = pFolderTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pFolderTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                    CPPU_TYPE_REF( lang::XTypeProvider ),
+                        CPPU_TYPE_REF( lang::XServiceInfo ),
+                        CPPU_TYPE_REF( lang::XComponent ),
+                        CPPU_TYPE_REF( ucb::XContent ),
+                        CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                        CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                        CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                        CPPU_TYPE_REF( beans::XPropertyContainer ),
+                        CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                        CPPU_TYPE_REF( container::XChild ),
+                        CPPU_TYPE_REF( ucb::XContentCreator ) ); // !!
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pFolderTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+    else
+    {
+        static cppu::OTypeCollection* pDocumentTypes = 0;
+
+        pCollection = pDocumentTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pDocumentTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                        CPPU_TYPE_REF( lang::XTypeProvider ),
+                        CPPU_TYPE_REF( lang::XServiceInfo ),
+                        CPPU_TYPE_REF( lang::XComponent ),
+                        CPPU_TYPE_REF( ucb::XContent ),
+                        CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                        CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                        CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                        CPPU_TYPE_REF( beans::XPropertyContainer ),
+                        CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                        CPPU_TYPE_REF( container::XChild ) );
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pDocumentTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+
+    return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+    throw( uno::RuntimeException )
+{
+    return rtl::OUString::createFromAscii(
+=====================================================================
+Found a 104 line (337 tokens) duplication in the following files: 
+Starting at line 27 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOComWindowPeer.h
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOComWindowPeer.h
+
+class SOComWindowPeer : 
+	public IDispatchImpl<ISOComWindowPeer, &IID_ISOComWindowPeer, &LIBID_SO_ACTIVEXLib>, 
+	public ISupportErrorInfo,
+	public CComObjectRoot,
+	public CComCoClass<SOComWindowPeer,&CLSID_SOComWindowPeer>
+{
+	HWND m_hwnd;
+public:
+	SOComWindowPeer() : m_hwnd( NULL ) {}
+
+BEGIN_COM_MAP(SOComWindowPeer)
+	COM_INTERFACE_ENTRY(IDispatch)
+	COM_INTERFACE_ENTRY(ISOComWindowPeer)
+	COM_INTERFACE_ENTRY(ISupportErrorInfo)
+END_COM_MAP()
+DECLARE_NOT_AGGREGATABLE(SOComWindowPeer) 
+// Remove the comment from the line above if you don't want your object to 
+// support aggregation. 
+
+DECLARE_REGISTRY_RESOURCEID(IDR_SOCOMWINDOWPEER)
+
+// ISupportsErrorInfo
+	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
+
+// ISOComWindowPeer
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getWindowHandle( 
+            /* [in] */ SAFEARRAY __RPC_FAR * procId,
+            /* [in] */ short s,
+            /* [retval][out] */ long __RPC_FAR *ret)
+		{
+			*ret = (long) m_hwnd;
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getToolkit( 
+            /* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *retVal)
+		{
+			*retVal = NULL;
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setPointer( 
+            /* [in] */ IDispatch __RPC_FAR *xPointer)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setBackground( 
+            /* [in] */ int nColor)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE invalidate( 
+            /* [in] */ short __MIDL_0015)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE invalidateRect( 
+            /* [in] */ IDispatch __RPC_FAR *aRect,
+            /* [in] */ short nFlags)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE dispose( void)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addEventListener( 
+            /* [in] */ IDispatch __RPC_FAR *xListener)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeEventListener( 
+            /* [in] */ IDispatch __RPC_FAR *xListener)
+		{
+			return S_OK;
+		}
+        
+        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Bridge_implementedInterfaces( 
+            /* [retval][out] */ SAFEARRAY __RPC_FAR * __RPC_FAR *pVal)
+		{
+			*pVal = SafeArrayCreateVector( VT_BSTR, 0, 2 );
+
+			if( !*pVal )
+				return E_FAIL;
+
+			long ix = 0;
+            CComBSTR aInterface( OLESTR( "com.sun.star.awt.XSystemDependentWindowPeer" ) );
+			SafeArrayPutElement( *pVal, &ix, aInterface );
+
+			ix = 1;
+            aInterface = CComBSTR( OLESTR( "com.sun.star.awt.XWindowPeer" ) );
+			SafeArrayPutElement( *pVal, &ix, aInterface );
+
+			return S_OK;
+		}
+
+		void SetHWNDInternally( HWND hwnd ) { m_hwnd = hwnd; }
+};
+=====================================================================
+Found a 65 line (336 tokens) duplication in the following files: 
+Starting at line 1605 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docvor.cxx
+Starting at line 1700 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docvor.cxx
+
+		com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, SFXWB_MULTISELECTION );
+
+    // add "All" filter
+    pFileDlg->AddFilter( String( SfxResId( STR_SFX_FILTERNAME_ALL ) ),
+                         DEFINE_CONST_UNICODE( FILEDIALOG_FILTER_ALL ) );
+
+    // add template filter
+    String sFilterName( SfxResId( STR_TEMPLATE_FILTER ) );
+    String sFilterExt;
+    // add filters of modules which are installed
+    SvtModuleOptions aModuleOpt;
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+        sFilterExt += DEFINE_CONST_UNICODE( "*.ott;*.stw;*.oth" );
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+    {
+        if ( sFilterExt.Len() > 0 )
+            sFilterExt += ';';
+        sFilterExt += DEFINE_CONST_UNICODE( "*.ots;*.stc" );
+    }
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+    {
+        if ( sFilterExt.Len() > 0 )
+            sFilterExt += ';';
+        sFilterExt += DEFINE_CONST_UNICODE( "*.otp;*.sti" );
+    }
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+    {
+        if ( sFilterExt.Len() > 0 )
+            sFilterExt += ';';
+        sFilterExt += DEFINE_CONST_UNICODE( "*.otg;*.std" );
+    }
+    if ( sFilterExt.Len() > 0 )
+        sFilterExt += ';';
+    sFilterExt += DEFINE_CONST_UNICODE( "*.vor" );
+
+    sFilterName += DEFINE_CONST_UNICODE( " (" );
+    sFilterName += sFilterExt;
+    sFilterName += ')';
+    pFileDlg->AddFilter( sFilterName, sFilterExt );
+    pFileDlg->SetCurrentFilter( sFilterName );
+
+    if ( aLastDir.Len() || rFileName.Len() )
+    {
+        INetURLObject aObj;
+        if ( aLastDir.Len() )
+        {
+            aObj.SetURL( aLastDir );
+            if ( rFileName.Len() )
+                aObj.insertName( rFileName );
+        }
+        else
+            aObj.SetURL( rFileName );
+
+        if ( aObj.hasExtension() )
+        {
+            m_sExtension4Save = aObj.getExtension(
+                 INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
+            aObj.removeExtension();
+        }
+
+        DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" );
+        pFileDlg->SetDisplayDirectory( aObj.GetMainURL( INetURLObject::NO_DECODE ) );
+    }
+
+    pFileDlg->StartExecuteModal( LINK( this, SfxOrganizeDlg_Impl, ExportHdl ) );
+=====================================================================
+Found a 69 line (336 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
+                                  *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
+            = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
+=====================================================================
+Found a 9 line (335 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x04F9}, {0x15, 0x04F8}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 04f8 - 04ff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0500 - 0507
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0508 - 050f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0510 - 0517
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0518 - 051f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0520 - 0527
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0528 - 052f
+    {0x00, 0x0000}, {0x6a, 0x0561}, {0x6a, 0x0562}, {0x6a, 0x0563}, {0x6a, 0x0564}, {0x6a, 0x0565}, {0x6a, 0x0566}, {0x6a, 0x0567}, // 0530 - 0537
+=====================================================================
+Found a 80 line (334 tokens) duplication in the following files: 
+Starting at line 1701 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+Starting at line 1810 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+
+	case IDocumentRedlineAccess::REDLINE_INSERT:
+		{
+			SwDoc& rDoc = *pRedl->GetDoc();
+			const SwPosition *pDelStt = 0, *pDelEnd = 0;
+			BOOL bDelRedl = FALSE;
+			switch( eCmp )
+			{
+			case POS_INSIDE:
+				if( bCallDelete )
+				{
+					pDelStt = pSttRng;
+					pDelEnd = pEndRng;
+				}
+				break;
+
+			case POS_OVERLAP_BEFORE:
+				if( bCallDelete )
+				{
+					pDelStt = pRStt;
+					pDelEnd = pEndRng;
+				}
+				break;
+			case POS_OVERLAP_BEHIND:
+				if( bCallDelete )
+				{
+					pDelStt = pREnd;
+					pDelEnd = pSttRng;
+				}
+				break;
+			case POS_OUTSIDE:
+			case POS_EQUAL:
+				{
+					// dann den Bereich wieder loeschen
+					rArr.Remove( rPos-- );
+					bDelRedl = TRUE;
+					if( bCallDelete )
+					{
+						pDelStt = pRedl->Start();
+						pDelEnd = pRedl->End();
+					}
+				}
+				break;
+
+			default:
+				bRet = FALSE;
+			}
+			if( pDelStt && pDelEnd )
+			{
+				SwPaM aPam( *pDelStt, *pDelEnd );
+
+				SwCntntNode* pCSttNd = pDelStt->nNode.GetNode().GetCntntNode();
+				SwCntntNode* pCEndNd = pDelEnd->nNode.GetNode().GetCntntNode();
+
+				if( bDelRedl )
+					delete pRedl;
+
+				IDocumentRedlineAccess::RedlineMode_t eOld = rDoc.GetRedlineMode();
+				rDoc.SetRedlineMode_intern( (IDocumentRedlineAccess::RedlineMode_t)(eOld & ~(IDocumentRedlineAccess::REDLINE_ON | IDocumentRedlineAccess::REDLINE_IGNORE)));
+
+				if( pCSttNd && pCEndNd )
+					rDoc.DeleteAndJoin( aPam );
+				else
+				{
+					rDoc.Delete( aPam );
+
+					if( pCSttNd && !pCEndNd )
+					{
+						aPam.GetBound( TRUE ).nContent.Assign( 0, 0 );
+						aPam.GetBound( FALSE ).nContent.Assign( 0, 0 );
+						aPam.DeleteMark();
+						rDoc.DelFullPara( aPam );
+					}
+				}
+				rDoc.SetRedlineMode_intern( eOld );
+			}
+			else if( bDelRedl )
+				delete pRedl;
+		}
+		break;
+	case IDocumentRedlineAccess::REDLINE_DELETE:
+=====================================================================
+Found a 50 line (334 tokens) duplication in the following files: 
+Starting at line 1038 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/dbdocfun.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+				SCCOLROW nOutEndRow;
+				pTable->GetColArray()->GetRange( nOutStartCol, nOutEndCol );
+				pTable->GetRowArray()->GetRange( nOutStartRow, nOutEndRow );
+
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, TRUE, TRUE );
+				pDoc->CopyToDocument( static_cast<SCCOL>(nOutStartCol), 0, nTab, static_cast<SCCOL>(nOutEndCol), MAXROW, nTab, IDF_NONE, FALSE, pUndoDoc );
+				pDoc->CopyToDocument( 0, nOutStartRow, nTab, MAXCOL, nOutEndRow, nTab, IDF_NONE, FALSE, pUndoDoc );
+			}
+			else
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, FALSE, bOldFilter );
+
+			//	Datenbereich sichern - incl. Filter-Ergebnis
+			pDoc->CopyToDocument( 0,rParam.nRow1+1,nTab, MAXCOL,rParam.nRow2,nTab,
+									IDF_ALL, FALSE, pUndoDoc );
+
+			//	alle Formeln wegen Referenzen
+			pDoc->CopyToDocument( 0,0,0, MAXCOL,MAXROW,nTabCount-1,
+										IDF_FORMULA, FALSE, pUndoDoc );
+
+			//	DB- und andere Bereiche
+			ScRangeName* pDocRange = pDoc->GetRangeName();
+			if (pDocRange->GetCount())
+				pUndoRange = new ScRangeName( *pDocRange );
+			ScDBCollection* pDocDB = pDoc->GetDBCollection();
+			if (pDocDB->GetCount())
+				pUndoDB = new ScDBCollection( *pDocDB );
+		}
+
+//		pDoc->SetOutlineTable( nTab, NULL );
+		ScOutlineTable*	pOut = pDoc->GetOutlineTable( nTab );
+		if (pOut)
+			pOut->GetRowArray()->RemoveAll();		// nur Zeilen-Outlines loeschen
+
+		if (rParam.bReplace)
+			pDoc->RemoveSubTotals( nTab, aNewParam );
+		BOOL bSuccess = TRUE;
+		if (bDo)
+		{
+			// Sortieren
+			if ( rParam.bDoSort || pForceNewSort )
+			{
+				pDBData->SetArea( nTab, aNewParam.nCol1,aNewParam.nRow1, aNewParam.nCol2,aNewParam.nRow2 );
+
+				//	Teilergebnis-Felder vor die Sortierung setzen
+				//	(doppelte werden weggelassen, kann darum auch wieder aufgerufen werden)
+
+				ScSortParam aOldSort;
+				pDBData->GetSortParam( aOldSort );
+				ScSortParam aSortParam( aNewParam, pForceNewSort ? *pForceNewSort : aOldSort );
+				Sort( aSortParam, FALSE, FALSE );
+=====================================================================
+Found a 100 line (333 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svppspgraphics.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/pspgraphics.cxx
+
+		return 0;
+}
+
+/*******************************************************
+ * PspGraphics                                         *
+ *******************************************************/
+
+PspGraphics::~PspGraphics()
+{
+    ReleaseFonts();
+}
+
+void PspGraphics::GetResolution( sal_Int32 &rDPIX, sal_Int32 &rDPIY )
+{
+	if (m_pJobData != NULL)
+	{
+		int x = m_pJobData->m_aContext.getRenderResolution();
+
+		rDPIX = x;
+		rDPIY = x;
+	}
+}
+
+void PspGraphics::GetScreenFontResolution( sal_Int32 &rDPIX, sal_Int32 &rDPIY )
+{
+    m_pPrinterGfx->GetScreenFontResolution (rDPIX, rDPIY);
+}
+
+USHORT PspGraphics::GetBitCount()
+{
+    return m_pPrinterGfx->GetBitCount();
+}
+
+long PspGraphics::GetGraphicsWidth() const
+{
+    return 0;
+}
+
+void PspGraphics::ResetClipRegion()
+{
+    m_pPrinterGfx->ResetClipRegion ();
+}
+
+void PspGraphics::BeginSetClipRegion( ULONG n )
+{
+    m_pPrinterGfx->BeginSetClipRegion(n);
+}
+
+BOOL PspGraphics::unionClipRegion( long nX, long nY, long nDX, long nDY )
+{
+    return (BOOL)m_pPrinterGfx->UnionClipRegion (nX, nY, nDX, nDY);
+}
+
+void PspGraphics::EndSetClipRegion()
+{
+    m_pPrinterGfx->EndSetClipRegion ();
+}
+
+void PspGraphics::SetLineColor()
+{
+    m_pPrinterGfx->SetLineColor ();
+}
+
+void PspGraphics::SetLineColor( SalColor nSalColor )
+{
+    psp::PrinterColor aColor (SALCOLOR_RED   (nSalColor),
+                              SALCOLOR_GREEN (nSalColor),
+                              SALCOLOR_BLUE  (nSalColor));
+    m_pPrinterGfx->SetLineColor (aColor);
+}
+
+void PspGraphics::SetFillColor()
+{
+    m_pPrinterGfx->SetFillColor ();
+}
+
+void PspGraphics::SetFillColor( SalColor nSalColor )
+{
+    psp::PrinterColor aColor (SALCOLOR_RED   (nSalColor),
+                              SALCOLOR_GREEN (nSalColor),
+                              SALCOLOR_BLUE  (nSalColor));
+    m_pPrinterGfx->SetFillColor (aColor);
+}
+
+void PspGraphics::SetROPLineColor( SalROPColor )
+{
+    DBG_ASSERT( 0, "Error: PrinterGfx::SetROPLineColor() not implemented" );
+}
+
+void PspGraphics::SetROPFillColor( SalROPColor )
+{
+    DBG_ASSERT( 0, "Error: PrinterGfx::SetROPFillColor() not implemented" );
+}
+
+void PspGraphics::SetXORMode( BOOL
+#ifdef DBG_UTIL
+bSet
+#endif
+)
+{
+=====================================================================
+Found a 13 line (333 tokens) duplication in the following files: 
+Starting at line 1422 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a400 - a40f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a410 - a41f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a420 - a42f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a430 - a43f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a440 - a44f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a450 - a45f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a460 - a46f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a470 - a47f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a480 - a48f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// a490 - a49f
+    10,10, 0, 0,10,10,10,10,10,10,10,10,10,10,10,10,// a4a0 - a4af
+=====================================================================
+Found a 9 line (333 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x04F9}, {0x15, 0x04F8}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 04f8 - 04ff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0500 - 0507
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0508 - 050f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0510 - 0517
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0518 - 051f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0520 - 0527
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0528 - 052f
+    {0x00, 0x0000}, {0x6a, 0x0561}, {0x6a, 0x0562}, {0x6a, 0x0563}, {0x6a, 0x0564}, {0x6a, 0x0565}, {0x6a, 0x0566}, {0x6a, 0x0567}, // 0530 - 0537
+=====================================================================
+Found a 49 line (331 tokens) duplication in the following files: 
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+
+		sal_Int32 an[4];
+
+		for( i = 0 ; i < 4 ; i ++ ) {
+			as[i].realloc(1);
+			as[i].getArray()[0] = i;
+			an[i] = rMarkable->createMark();
+			rOutput->writeBytes( as[i] );
+		}
+
+		// check offset to mark
+		for( i = 0 ; i < 4 ; i ++ ) {
+			ERROR_ASSERT( rMarkable->offsetToMark( an[i] ) == 4-i , "offsetToMark failure" );
+		}
+
+		rMarkable->jumpToMark( an[1] );
+		ERROR_ASSERT( rMarkable->offsetToMark( an[3] ) == -2 , "offsetToMark failure" );
+
+		rMarkable->jumpToFurthest( );
+		ERROR_ASSERT( rMarkable->offsetToMark( an[0] ) == 4 , "offsetToMark failure" );
+
+		// now do a rewrite !
+		for( i = 0 ; i < 4 ; i ++ ) {
+			rMarkable->jumpToMark( an[3-i] );
+			rOutput->writeBytes( as[i] );
+		}
+		// NOTE : CursorPos 1
+
+		// now delete the marks !
+		for( i = 0 ; i < 4 ; i ++ ) {
+			rMarkable->deleteMark( an[i] );
+		}
+		ERROR_ASSERT( rInput->available() == 1 , "wrong number of bytes flushed" );
+
+		rMarkable->jumpToFurthest();
+
+		ERROR_ASSERT( rInput->available() == 4 , "wrong number of bytes flushed" );
+
+		rInput->readBytes( seqRead , 4 );
+
+		ERROR_ASSERT( 3 == seqRead.getArray()[0] , "rewrite didn't work" );
+		ERROR_ASSERT( 2 == seqRead.getArray()[1] , "rewrite didn't work" );
+		ERROR_ASSERT( 1 == seqRead.getArray()[2] , "rewrite didn't work" );
+		ERROR_ASSERT( 0 == seqRead.getArray()[3] , "rewrite didn't work" );
+
+		rOutput->closeOutput();
+		rInput->closeInput();
+	}
+
+}
+=====================================================================
+Found a 68 line (330 tokens) duplication in the following files: 
+Starting at line 893 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 620 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+			rData.bIsFolder );
+
+		// @@@ Append other properties supported directly.
+
+		// @@@ Note: If your data source supports adding/removing
+		//     properties, you should implement the interface
+		//     XPropertyContainer by yourself and supply your own
+		//     logic here. The base class uses the service
+		//     "com.sun.star.ucb.Store" to maintain Additional Core
+		//     properties. But using server functionality is preferred!
+
+		// Append all Additional Core Properties.
+
+        uno::Reference< beans::XPropertySet > xSet(
+			rProvider->getAdditionalPropertySet( rContentId, sal_False ),
+            uno::UNO_QUERY );
+		xRow->appendPropertySet( xSet );
+	}
+
+    return uno::Reference< sdbc::XRow >( xRow.get() );
+}
+
+//=========================================================================
+uno::Reference< sdbc::XRow > Content::getPropertyValues(
+            const uno::Sequence< beans::Property >& rProperties,
+            const uno::Reference< ucb::XCommandEnvironment >& /* xEnv */)
+{
+	osl::Guard< osl::Mutex > aGuard( m_aMutex );
+	return getPropertyValues( m_xSMgr,
+							  rProperties,
+							  m_aProps,
+                              rtl::Reference<
+                                ::ucbhelper::ContentProviderImplHelper >(
+                                    m_xProvider.get() ),
+							  m_xIdentifier->getContentIdentifier() );
+}
+
+//=========================================================================
+uno::Sequence< uno::Any > Content::setPropertyValues(
+            const uno::Sequence< beans::PropertyValue >& rValues,
+            const uno::Reference< ucb::XCommandEnvironment >& /* xEnv */)
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+    uno::Sequence< uno::Any > aRet( rValues.getLength() );
+    uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() );
+	sal_Int32 nChanged = 0;
+
+    beans::PropertyChangeEvent aEvent;
+    aEvent.Source         = static_cast< cppu::OWeakObject * >( this );
+	aEvent.Further 		  = sal_False;
+//	aEvent.PropertyName	  =
+	aEvent.PropertyHandle = -1;
+//	aEvent.OldValue		  =
+//	aEvent.NewValue       =
+
+    const beans::PropertyValue* pValues = rValues.getConstArray();
+	sal_Int32 nCount = rValues.getLength();
+
+    uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet;
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+	for ( sal_Int32 n = 0; n < nCount; ++n )
+	{
+        const beans::PropertyValue& rValue = pValues[ n ];
+
+        if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+=====================================================================
+Found a 59 line (330 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+using namespace lang;
+
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::util;
+
+using ::rtl::OUString;
+using ::rtl::OString;
+
+using namespace ::cppu;
+
+#define ASCII(x) ::rtl::OUString::createFromAscii(x)
+
+ostream& operator << (ostream& out, rtl::OUString const& aStr)
+{
+	sal_Unicode const* const pStr = aStr.getStr();
+	sal_Unicode const* const pEnd = pStr + aStr.getLength();
+	for (sal_Unicode const* p = pStr; p < pEnd; ++p)
+		if (0 < *p && *p < 127) // ASCII
+			out << char(*p);
+		else
+			out << "[\\u" << hex << *p << "]";
+	return out;
+}
+
+void showSequence(const Sequence<OUString> &aSeq)
+{
+	OUString aArray;
+	const OUString *pStr = aSeq.getConstArray();
+	for (int i=0;i<aSeq.getLength();i++)
+	{
+		OUString aStr = pStr[i];
+		// aArray += aStr + ASCII(", ");
+		cout << aStr << endl;
+	}
+	volatile int dummy = 0;
+}
+
+//=============================================================================
+
+inline void operator <<= (::rtl::OUString& _rUnicodeString, const sal_Char* _pAsciiString)
+{
+	_rUnicodeString = ::rtl::OUString::createFromAscii(_pAsciiString);
+}
+
+inline void operator <<= (::rtl::OUString& _rUnicodeString, const ::rtl::OString& _rAsciiString)
+{
+	_rUnicodeString <<= _rAsciiString.getStr();
+}
+
+inline void operator <<= (Any& _rUnoValue, const sal_Char* _pAsciiString)
+{
+	_rUnoValue <<= ::rtl::OUString::createFromAscii(_pAsciiString);
+}
+
+inline void operator <<= (Any& _rUnoValue, const ::rtl::OString& _rAsciiString)
+{
+	_rUnoValue <<= _rAsciiString.getStr();
+}
+=====================================================================
+Found a 18 line (330 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 1192 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+
+	SdUnoEventsAccess( SdXShape* pShape ) throw();
+
+    // XNameReplace
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    
+    // XNameAccess
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+    // XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements(  ) throw(::com::sun::star::uno::RuntimeException);
+
+	// XServiceInfo
+    virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 62 line (329 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtfsl/RTFSLParser.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx
+
+	}
+};
+
+class RtfInputSourceImpl : public rtftok::RTFInputSource
+{
+private:
+	uno::Reference< io::XInputStream > xInputStream;
+	uno::Reference< io::XSeekable > xSeekable;
+	uno::Reference< task::XStatusIndicator > xStatusIndicator;
+	sal_Int64 bytesTotal;
+	sal_Int64 bytesRead;
+public:
+	RtfInputSourceImpl(uno::Reference< io::XInputStream > &xInputStream_, uno::Reference< task::XStatusIndicator > &xStatusIndicator_) :
+	  xInputStream(xInputStream_),
+	  xStatusIndicator(xStatusIndicator_),
+	  bytesRead(0)
+	{
+		xSeekable=uno::Reference< io::XSeekable >(xInputStream, uno::UNO_QUERY);
+		if (xSeekable.is())
+			bytesTotal=xSeekable->getLength();
+		if (xStatusIndicator.is() && xSeekable.is())
+		{
+			xStatusIndicator->start(::rtl::OUString::createFromAscii("Converting"), 100);
+		}
+	}
+
+    virtual ~RtfInputSourceImpl() {}
+
+	int read(void *buf, int maxlen)
+	{
+		uno::Sequence< sal_Int8 > buffer;
+		int len=xInputStream->readSomeBytes(buffer,maxlen);
+		if (len>0)
+		{
+			sal_Int8 *_buffer=buffer.getArray();
+			memcpy(buf, _buffer, len);
+			bytesRead+=len;
+			if (xStatusIndicator.is())
+			{
+				if (xSeekable.is())
+				{
+					xStatusIndicator->setValue((int)(bytesRead*100/bytesTotal));
+				}
+				else
+				{
+					char buf1[100];
+					sprintf(buf1, "Converted %Li KB", bytesRead/1024);
+					xStatusIndicator->start(::rtl::OUString::createFromAscii(buf1), 0);
+				}
+			}
+			return len;
+		}
+		else
+		{
+			if (xStatusIndicator.is())
+			{
+				xStatusIndicator->end();
+			}
+			return 0;
+		}
+	}
+};
+=====================================================================
+Found a 57 line (329 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drawsh4.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drtxtob2.cxx
+
+	ScDrawView* 		pDrView 	= pViewData->GetView()->GetScDrawView();
+	const SdrMarkList&	rMarkList	= pDrView->GetMarkedObjectList();
+	USHORT				nId = SvxFontWorkChildWindow::GetChildWindowId();
+
+	SfxViewFrame* pViewFrm = pViewData->GetViewShell()->GetViewFrame();
+	if ( pViewFrm->HasChildWindow(nId) )
+		pDlg = (SvxFontWorkDialog*)(pViewFrm->GetChildWindow(nId)->GetWindow());
+
+	if ( rMarkList.GetMarkCount() == 1 )
+		pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+
+	if ( pObj == NULL || !pObj->ISA(SdrTextObj) ||
+		!((SdrTextObj*) pObj)->HasText() )
+	{
+		if ( pDlg )
+			pDlg->SetActive(FALSE);
+
+		rSet.DisableItem(XATTR_FORMTXTSTYLE);
+		rSet.DisableItem(XATTR_FORMTXTADJUST);
+		rSet.DisableItem(XATTR_FORMTXTDISTANCE);
+		rSet.DisableItem(XATTR_FORMTXTSTART);
+		rSet.DisableItem(XATTR_FORMTXTMIRROR);
+		rSet.DisableItem(XATTR_FORMTXTSTDFORM);
+		rSet.DisableItem(XATTR_FORMTXTHIDEFORM);
+		rSet.DisableItem(XATTR_FORMTXTOUTLINE);
+		rSet.DisableItem(XATTR_FORMTXTSHADOW);
+		rSet.DisableItem(XATTR_FORMTXTSHDWCOLOR);
+		rSet.DisableItem(XATTR_FORMTXTSHDWXVAL);
+		rSet.DisableItem(XATTR_FORMTXTSHDWYVAL);
+	}
+	else
+	{
+		if ( pDlg )
+		{
+			SfxObjectShell* pDocSh = SfxObjectShell::Current();
+
+			if ( pDocSh )
+			{
+                const SfxPoolItem*  pItem = pDocSh->GetItem( SID_COLOR_TABLE );
+				XColorTable*		pColorTable = NULL;
+
+				if ( pItem )
+					pColorTable = ((SvxColorTableItem*)pItem)->GetColorTable();
+
+				pDlg->SetActive();
+
+				if ( pColorTable )
+					pDlg->SetColorTable( pColorTable );
+				else
+					{ DBG_ERROR( "ColorList not found :-/" ); }
+			}
+		}
+		SfxItemSet aViewAttr(pDrView->GetModel()->GetItemPool());
+		pDrView->GetAttributes(aViewAttr);
+		rSet.Set(aViewAttr);
+	}
+}
+=====================================================================
+Found a 41 line (328 tokens) duplication in the following files: 
+Starting at line 829 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 494 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/swparrtf.cxx
+
+		SwTxtNode* pTxtNode = pSttNdIdx->GetNode().GetTxtNode();
+		SwNodeIndex aNxtIdx( *pSttNdIdx );
+		if( pTxtNode && pTxtNode->CanJoinNext( &aNxtIdx ))
+		{
+			xub_StrLen nStt = pTxtNode->GetTxt().Len();
+			// wenn der Cursor noch in dem Node steht, dann setze in an das Ende
+			if( pPam->GetPoint()->nNode == aNxtIdx )
+			{
+				pPam->GetPoint()->nNode = *pSttNdIdx;
+				pPam->GetPoint()->nContent.Assign( pTxtNode, nStt );
+			}
+
+#ifndef PRODUCT
+// !!! sollte nicht moeglich sein, oder ??
+ASSERT( pSttNdIdx->GetIndex()+1 != pPam->GetBound( TRUE ).nNode.GetIndex(),
+			"Pam.Bound1 steht noch im Node" );
+ASSERT( pSttNdIdx->GetIndex()+1 != pPam->GetBound( FALSE ).nNode.GetIndex(),
+			"Pam.Bound2 steht noch im Node" );
+
+if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( TRUE ).nNode.GetIndex() )
+{
+	register xub_StrLen nCntPos = pPam->GetBound( TRUE ).nContent.GetIndex();
+	pPam->GetBound( TRUE ).nContent.Assign( pTxtNode,
+					pTxtNode->GetTxt().Len() + nCntPos );
+}
+if( pSttNdIdx->GetIndex()+1 == pPam->GetBound( FALSE ).nNode.GetIndex() )
+{
+	register xub_StrLen nCntPos = pPam->GetBound( FALSE ).nContent.GetIndex();
+	pPam->GetBound( FALSE ).nContent.Assign( pTxtNode,
+					pTxtNode->GetTxt().Len() + nCntPos );
+}
+#endif
+			// Zeichen Attribute beibehalten!
+			SwTxtNode* pDelNd = aNxtIdx.GetNode().GetTxtNode();
+			if( pTxtNode->GetTxt().Len() )
+				pDelNd->FmtToTxtAttr( pTxtNode );
+			else
+				pTxtNode->ChgFmtColl( pDelNd->GetTxtColl() );
+			pTxtNode->JoinNext();
+		}
+	}
+=====================================================================
+Found a 48 line (328 tokens) duplication in the following files: 
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+
+  Reference< XPossibleHyphens > xRes;
+        
+  k = -1;
+  for (int j = 0; j < numdict; j++)
+     if (aLocale == aDicts[j].aLoc) k = j;
+
+        
+  // if we have a hyphenation dictionary matching this locale
+  if (k != -1) {
+
+      // if this dictioanry has not been loaded yet do that
+      if (!aDicts[k].aPtr) {
+               
+         OUString DictFN = aDicts[k].aName + A2OU(".dic");
+         OUString userdictpath;
+         OUString dictpath;
+         osl::FileBase::getSystemPathFromFileURL(
+	  				    aPathOpt.GetUserDictionaryPath() + A2OU("/"),
+		  			    userdictpath);
+	    
+	 osl::FileBase::getSystemPathFromFileURL(
+		  			    aPathOpt.GetLinguisticPath() + A2OU("/ooo/"),
+			  		    dictpath);
+         OString uTmp(OU2ENC(userdictpath + DictFN,osl_getThreadTextEncoding()));
+         OString sTmp(OU2ENC(dictpath + DictFN,osl_getThreadTextEncoding()));
+
+
+	 if ( ( dict = hnj_hyphen_load ( uTmp.getStr() ) ) == NULL )
+	    if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
+	    {
+	       fprintf(stderr, "Couldn't find file %s and %s\n", OU2ENC(userdictpath + DictFN, osl_getThreadTextEncoding()),  OU2ENC(userdictpath + DictFN, osl_getThreadTextEncoding() ));
+	       return NULL;
+	    }
+	 aDicts[k].aPtr = dict;
+         aDicts[k].aEnc = rtl_getTextEncodingFromUnixCharset(dict->cset);
+         if (aDicts[k].aEnc == RTL_TEXTENCODING_DONTKNOW) {
+            if (strcmp("ISCII-DEVANAGARI", dict->cset) == 0) {
+               aDicts[k].aEnc = RTL_TEXTENCODING_ISCII_DEVANAGARI;
+            } else if (strcmp("UTF-8", dict->cset) == 0) {
+               aDicts[k].aEnc = RTL_TEXTENCODING_UTF8;
+            }
+         }
+      }
+
+      // other wise hyphenate the word with that dictionary
+      dict = aDicts[k].aPtr;
+      aEnc = aDicts[k].aEnc;
+      pCC  = aDicts[k].apCC;
+=====================================================================
+Found a 59 line (327 tokens) duplication in the following files: 
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwtxtsh.cxx
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/viewling.cxx
+
+                    i18n::TextConversionOption::CHARACTER_BY_CHARACTER, sal_True );
+            break;
+        case SID_CHINESE_CONVERSION:
+        {
+            //open ChineseTranslationDialog
+            Reference< XComponentContext > xContext(
+                ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one
+            if(xContext.is())
+            {
+                Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
+                if(xMCF.is())
+                {
+			        Reference< ui::dialogs::XExecutableDialog > xDialog(
+                            xMCF->createInstanceWithContext(
+                                rtl::OUString::createFromAscii("com.sun.star.linguistic2.ChineseTranslationDialog")
+                                , xContext), UNO_QUERY);
+                    Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
+                    if( xInit.is() )
+			        {
+                        //	initialize dialog
+                        Reference< awt::XWindow > xDialogParentWindow(0);
+					    Sequence<Any> aSeq(1);
+					    Any* pArray = aSeq.getArray();
+                        PropertyValue aParam;
+                        aParam.Name = rtl::OUString::createFromAscii("ParentWindow");
+                        aParam.Value <<= makeAny(xDialogParentWindow);
+					    pArray[0] <<= makeAny(aParam);
+                        xInit->initialize( aSeq );
+
+                        //execute dialog
+				        sal_Int16 nDialogRet = xDialog->execute();
+                        if( RET_OK == nDialogRet )
+                        {
+                            //get some parameters from the dialog
+                            sal_Bool bToSimplified = sal_True;
+                            sal_Bool bUseVariants = sal_True;
+                            sal_Bool bCommonTerms = sal_True;
+                            Reference< beans::XPropertySet >  xProp( xDialog, UNO_QUERY );
+                            if( xProp.is() )
+                            {
+                                try
+                                {
+                                    xProp->getPropertyValue( C2U("IsDirectionToSimplified") ) >>= bToSimplified;
+                                    xProp->getPropertyValue( C2U("IsUseCharacterVariants") ) >>= bUseVariants;
+                                    xProp->getPropertyValue( C2U("IsTranslateCommonTerms") ) >>= bCommonTerms;
+                                }
+                                catch( Exception& )
+                                {
+                                }
+                            }
+
+                            //execute translation
+                            sal_Int16 nSourceLang = bToSimplified ? LANGUAGE_CHINESE_TRADITIONAL : LANGUAGE_CHINESE_SIMPLIFIED;
+                            sal_Int16 nTargetLang = bToSimplified ? LANGUAGE_CHINESE_SIMPLIFIED : LANGUAGE_CHINESE_TRADITIONAL;
+                            sal_Int32 nOptions    = bUseVariants ? i18n::TextConversionOption::USE_CHARACTER_VARIANTS : 0;
+                            if( !bCommonTerms )
+                                nOptions = nOptions | i18n::TextConversionOption::CHARACTER_BY_CHARACTER;
+
+                            Font aTargetFont = GetEditWin().GetDefaultFont( DEFAULTFONT_CJK_TEXT,
+=====================================================================
+Found a 74 line (327 tokens) duplication in the following files: 
+Starting at line 1849 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_TELNET);
+#ifdef WNT
+			::osl::Socket sSocket(sHandle);
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
+			sSocket.bind( saBindSocketAddr );
+			//Invalid IP, so bind should fail
+			::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )), 
+				::rtl::OUString::valueOf((sal_Int32)OSL_INVALID_PORT), 
+				"test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned.");
+			bOK = ( OSL_INVALID_PORT == sSocket.getLocalPort( ) );
+#else
+			//on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT
+			::rtl::OUString suError = ::rtl::OUString::createFromAscii( "on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT, but can not create Addr of that case");
+#endif
+			CPPUNIT_ASSERT_MESSAGE( suError, sal_False ); 
+
+		}
+		
+		void getLocalPort_003()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_INVAL);
+			
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			
+			sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
+			::rtl::OUString suError1 = ::rtl::OUString::createFromAscii("Socket bind fail:") + sSocket.getErrorAsString();
+			CPPUNIT_ASSERT_MESSAGE( suError1, sal_True == bOK1 );
+			::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )), 
+				::rtl::OUString::createFromAscii("34463"), 
+				"test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned");			
+			sal_Bool bOK = ( sSocket.getLocalPort( ) >= 1 &&  sSocket.getLocalPort( ) <= 65535);
+	
+			CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK ); 
+		}
+		
+		CPPUNIT_TEST_SUITE( getLocalPort );
+		CPPUNIT_TEST( getLocalPort_001 );
+// LLA:		CPPUNIT_TEST( getLocalPort_002 );
+		CPPUNIT_TEST( getLocalPort_003 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getLocalPort
+
+	
+	/** testing the method:
+		inline ::rtl::OUString SAL_CALL getLocalHost() const;
+
+	    Mindyliu: on Linux, at first it will check the binded in /etc/hosts, if it has the binded IP, it will return the hostname in it;
+	    else if the binded IP is "127.0.0.1", it will return "localhost", if it's the machine's ethernet ip such as "129.158.217.90", it
+	    will return hostname of current processor such as "aegean.PRC.Sun.COM"	    			
+	*/
+	
+	class getLocalHost : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void getLocalHost_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			//port number from IP_PORT_HTTP1 to IP_PORT_MYPORT6, mindyliu
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT6 );
+=====================================================================
+Found a 73 line (327 tokens) duplication in the following files: 
+Starting at line 1188 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 570 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+    return NULL;
+}
+
+static const char ENCODED_AMPERSAND[]  = "&amp;";
+static const char ENCODED_LESS[]       = "&lt;";
+static const char ENCODED_GREATER[]    = "&gt;";
+static const char ENCODED_QUOTE[]      = "&quot;";
+static const char ENCODED_APOS[]       = "&apos;";
+
+struct EncodeChars
+{
+    char  cChar;
+    const char* pEncodedChars;
+};
+
+EncodeChars EncodeChar_Map[] =
+{
+    { '&', ENCODED_AMPERSAND    },
+    { '<', ENCODED_LESS         },
+    { '>', ENCODED_GREATER      },
+    { '"', ENCODED_QUOTE        },
+    { '\'', ENCODED_APOS        },
+    { ' ', 0                    }
+};
+
+// Encodes a string to UTF-8 and uses "Built-in entity reference" to
+// to escape character data that is not markup!
+OString EncodeString( const OUString& aToEncodeStr )
+{
+    OString aString = OUStringToOString( aToEncodeStr, RTL_TEXTENCODING_UTF8 );
+
+    int     i = 0;
+    bool    bMustCopy( sal_False );
+    while ( EncodeChar_Map[i].pEncodedChars != 0 )
+    {
+        OStringBuffer aBuf;
+        bool bEncoded( false );
+
+        sal_Int32 nCurIndex = 0;
+        sal_Int32 nIndex    = 0;
+        while ( nIndex < aString.getLength() )
+        {
+            nIndex = aString.indexOf( EncodeChar_Map[i].cChar, nIndex );
+            if ( nIndex > 0 )
+            {
+                bEncoded = true;
+                if ( nIndex > nCurIndex )
+                    aBuf.append( aString.copy( nCurIndex, nIndex-nCurIndex ));
+                aBuf.append( EncodeChar_Map[i].pEncodedChars );
+                nCurIndex = nIndex+1;
+            }
+            else if ( nIndex == 0 )
+            {
+                bEncoded = true;
+                aBuf.append( EncodeChar_Map[i].pEncodedChars );
+                nCurIndex = nIndex+1;
+            }
+            else
+            {
+                if ( bEncoded && nCurIndex < aString.getLength() )
+                    aBuf.append( aString.copy( nCurIndex ));
+                break;
+            }
+            ++nIndex;
+        }
+
+        if ( bEncoded )
+            aString = aBuf.makeStringAndClear();
+        ++i;
+    }
+
+    return aString;
+}
+=====================================================================
+Found a 70 line (327 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MStatement.cxx
+
+    m_pSQLIterator->dispose();
+
+    dispose_ChildImpl();
+    OStatement_Base::disposing();
+}
+//-----------------------------------------------------------------------------
+void SAL_CALL OStatement_BASE2::release() throw()
+{
+	relase_ChildImpl();
+}
+//-----------------------------------------------------------------------------
+Any SAL_CALL OStatement_Base::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	Any aRet = OStatement_BASE::queryInterface(rType);
+	if(!aRet.hasValue())
+		aRet = OPropertySetHelper::queryInterface(rType);
+	return aRet;
+}
+// -------------------------------------------------------------------------
+Sequence< Type > SAL_CALL OStatement_Base::getTypes(  ) throw(RuntimeException)
+{
+	::cppu::OTypeCollection aTypes(	::getCppuType( (const Reference< XMultiPropertySet > *)0 ),
+									::getCppuType( (const Reference< XFastPropertySet > *)0 ),
+									::getCppuType( (const Reference< XPropertySet > *)0 ));
+
+	return ::comphelper::concatSequences(aTypes.getTypes(),OStatement_BASE::getTypes());
+}
+// -------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::close(  ) throw(SQLException, RuntimeException)
+{
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+	}
+	dispose();
+}
+// -------------------------------------------------------------------------
+
+void OStatement_Base::reset() throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+
+	clearWarnings ();
+
+	if (m_xResultSet.get().is())
+		clearMyResultSet();
+}
+//--------------------------------------------------------------------
+// clearMyResultSet
+// If a ResultSet was created for this Statement, close it
+//--------------------------------------------------------------------
+
+void OStatement_Base::clearMyResultSet () throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+    try
+    {
+	    Reference<XCloseable> xCloseable;
+	    if ( ::comphelper::query_interface( m_xResultSet.get(), xCloseable ) )
+		    xCloseable->close();
+    }
+    catch( const DisposedException& ) { }
+
+    m_xResultSet = Reference< XResultSet >();
+}
+=====================================================================
+Found a 75 line (327 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/XMLRangeHelper.cxx
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/XMLRangeHelper.cxx
+
+    /*::chart::*/XMLRangeHelper::Cell & rOutCell,
+    ::rtl::OUString& rOutTableName )
+{
+    static const sal_Unicode aDot( '.' );
+    static const sal_Unicode aQuote( '\'' );
+    static const sal_Unicode aBackslash( '\\' );
+
+    sal_Int32 nNextDelimiterPos = nStartPos;
+
+    sal_Int32 nDelimiterPos = nStartPos;
+    bool bInQuotation = false;
+    // parse table name
+    while( nDelimiterPos < nEndPos &&
+           ( bInQuotation || rXMLString[ nDelimiterPos ] != aDot ))
+    {
+        // skip escaped characters (with backslash)
+        if( rXMLString[ nDelimiterPos ] == aBackslash )
+            ++nDelimiterPos;
+        // toggle quotation mode when finding single quotes
+        else if( rXMLString[ nDelimiterPos ] == aQuote )
+            bInQuotation = ! bInQuotation;
+
+        ++nDelimiterPos;
+    }
+
+    if( nDelimiterPos == -1 ||
+        nDelimiterPos >= nEndPos )
+    {
+        return false;
+    }
+    if( nDelimiterPos > nStartPos )
+    {
+        // there is a table name before the address
+
+        ::rtl::OUStringBuffer aTableNameBuffer;
+        const sal_Unicode * pTableName = rXMLString.getStr();
+
+        // remove escapes from table name
+        ::std::for_each( pTableName + nStartPos,
+                         pTableName + nDelimiterPos,
+                         lcl_UnEscape( aTableNameBuffer ));
+
+        // unquote quoted table name
+        const sal_Unicode * pBuf = aTableNameBuffer.getStr();
+        if( pBuf[ 0 ] == aQuote &&
+            pBuf[ aTableNameBuffer.getLength() - 1 ] == aQuote )
+        {
+            ::rtl::OUString aName = aTableNameBuffer.makeStringAndClear();
+            rOutTableName = aName.copy( 1, aName.getLength() - 2 );
+        }
+        else
+            rOutTableName = aTableNameBuffer.makeStringAndClear();
+    }
+
+    for( sal_Int32 i = 0;
+         nNextDelimiterPos < nEndPos;
+         nDelimiterPos = nNextDelimiterPos, i++ )
+    {
+        nNextDelimiterPos = rXMLString.indexOf( aDot, nDelimiterPos + 1 );
+        if( nNextDelimiterPos == -1 ||
+            nNextDelimiterPos > nEndPos )
+            nNextDelimiterPos = nEndPos + 1;
+
+        if( i==0 )
+            // only take first cell
+            lcl_getSingleCellAddressFromXMLString(
+                rXMLString, nDelimiterPos + 1, nNextDelimiterPos - 1, rOutCell );
+    }
+
+    return true;
+}
+
+bool lcl_getCellRangeAddressFromXMLString(
+    const ::rtl::OUString& rXMLString,
+    sal_Int32 nStartPos, sal_Int32 nEndPos,
+=====================================================================
+Found a 62 line (326 tokens) duplication in the following files: 
+Starting at line 1683 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1735 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        pWwFib->lcbPlcfandTxt, IsSevenMinus(pWwFib->GetFIBVersion()) ? 20 : 30);
+
+    // Fields Main Text
+    pFldPLCF    = new WW8PLCFx_FLD(pTblSt, *pWwFib, MAN_MAINTEXT);
+    // Fields Header / Footer
+    pFldHdFtPLCF= new WW8PLCFx_FLD(pTblSt, *pWwFib, MAN_HDFT);
+    // Fields Footnote
+    pFldFtnPLCF = new WW8PLCFx_FLD(pTblSt, *pWwFib, MAN_FTN);
+    // Fields Endnote
+    pFldEdnPLCF = new WW8PLCFx_FLD(pTblSt, *pWwFib, MAN_EDN);
+    // Fields Anmerkungen
+    pFldAndPLCF = new WW8PLCFx_FLD(pTblSt, *pWwFib, MAN_AND);
+    // Fields in Textboxes in Main Text
+    pFldTxbxPLCF= new WW8PLCFx_FLD(pTblSt, *pWwFib, MAN_TXBX);
+    // Fields in Textboxes in Header / Footer
+    pFldTxbxHdFtPLCF = new WW8PLCFx_FLD(pTblSt,*pWwFib,MAN_TXBX_HDFT);
+
+    // Note: 6 stands for "6 OR 7",  7 stands for "ONLY 7"
+    switch( pWw8Fib->nVersion )
+    {
+        case 6:
+        case 7:
+            if( pWwFib->fcPlcfdoaMom && pWwFib->lcbPlcfdoaMom )
+            {
+                pMainFdoa = new WW8PLCFspecial( pTblSt, pWwFib->fcPlcfdoaMom,
+                    pWwFib->lcbPlcfdoaMom, 6 );
+            }
+            if( pWwFib->fcPlcfdoaHdr && pWwFib->lcbPlcfdoaHdr )
+            {
+                pHdFtFdoa = new WW8PLCFspecial( pTblSt, pWwFib->fcPlcfdoaHdr,
+                pWwFib->lcbPlcfdoaHdr, 6 );
+            }
+            break;
+        case 8:
+            if( pWwFib->fcPlcfspaMom && pWwFib->lcbPlcfspaMom )
+            {
+                pMainFdoa = new WW8PLCFspecial( pTblSt, pWwFib->fcPlcfspaMom,
+                    pWwFib->lcbPlcfspaMom, 26 );
+            }
+            if( pWwFib->fcPlcfspaHdr && pWwFib->lcbPlcfspaHdr )
+            {
+                pHdFtFdoa = new WW8PLCFspecial( pTblSt, pWwFib->fcPlcfspaHdr,
+                    pWwFib->lcbPlcfspaHdr, 26 );
+            }
+            // PLCF fuer TextBox-Break-Deskriptoren im Maintext
+            if( pWwFib->fcPlcftxbxBkd && pWwFib->lcbPlcftxbxBkd )
+            {
+                pMainTxbxBkd = new WW8PLCFspecial( pTblSt,
+                    pWwFib->fcPlcftxbxBkd, pWwFib->lcbPlcftxbxBkd, 0);
+            }
+            // PLCF fuer TextBox-Break-Deskriptoren im Header-/Footer-Bereich
+            if( pWwFib->fcPlcfHdrtxbxBkd && pWwFib->lcbPlcfHdrtxbxBkd )
+            {
+                pHdFtTxbxBkd = new WW8PLCFspecial( pTblSt,
+                    pWwFib->fcPlcfHdrtxbxBkd, pWwFib->lcbPlcfHdrtxbxBkd, 0);
+            }
+            // Sub table cp positions
+            if (pWwFib->fcMagicTable && pWwFib->lcbMagicTable)
+            {
+                pMagicTables = new WW8PLCFspecial( pTblSt,
+                    pWwFib->fcMagicTable, pWwFib->lcbMagicTable, 4);
+            }
+=====================================================================
+Found a 66 line (326 tokens) duplication in the following files: 
+Starting at line 3857 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 2141 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+	basegfx::B2DTuple aScale(aRectangle.GetWidth(), aRectangle.GetHeight());
+	basegfx::B2DTuple aTranslate(aRectangle.Left(), aRectangle.Top());
+
+	// position maybe relative to anchorpos, convert
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate -= basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// force MapUnit to 100th mm
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// postion
+				aTranslate.setX(ImplTwipsToMM(aTranslate.getX()));
+				aTranslate.setY(ImplTwipsToMM(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplTwipsToMM(aScale.getX()));
+				aScale.setY(ImplTwipsToMM(aScale.getY()));
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRGetBaseGeometry: Missing unit translation to 100th mm!");
+			}
+		}
+	}
+
+	// build matrix
+	rMatrix.identity();
+
+    if(!basegfx::fTools::equal(aScale.getX(), 1.0) || !basegfx::fTools::equal(aScale.getY(), 1.0))
+	{
+		rMatrix.scale(aScale.getX(), aScale.getY());
+	}
+
+    if(!basegfx::fTools::equalZero(fShearX))
+	{
+		rMatrix.shearX(tan(fShearX));
+	}
+
+    if(!basegfx::fTools::equalZero(fRotate))
+	{
+        // #i78696#
+        // fRotate is from the old GeoStat and thus mathematically wrong orientated. For 
+        // the linear combination of matrices it needed to be fixed in the API, so it needs to
+        // be mirrored here
+		rMatrix.rotate(-fRotate);
+	}
+
+    if(!aTranslate.equalZero())
+	{
+		rMatrix.translate(aTranslate.getX(), aTranslate.getY());
+	}
+
+	return sal_False;
+}
+=====================================================================
+Found a 22 line (326 tokens) duplication in the following files: 
+Starting at line 814 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 848 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_ISO_8859_8,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
+                0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
+                0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
+                0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
+                0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
+=====================================================================
+Found a 69 line (326 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+        
+        OString symName( buf.makeStringAndClear() );
+#if __FreeBSD_version < 602103  /* #i22253# */
+        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
+#else
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+#endif
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+=====================================================================
+Found a 98 line (325 tokens) duplication in the following files: 
+Starting at line 8882 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 14601 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+        sal_Int64 intVal;
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            intVal = 11;
+
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            OString                expVal( kTestStr59 );
+
+            aStrBuf.append( intVal, -5 );
+
+            CPPUNIT_ASSERT_MESSAGE
+            (   
+                "Appends the WrongRadix to the string buffer arrOUS[0]",
+                sal_True
+            );
+        
+        }
+
+        void append_002()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[1] );
+            OString                expVal( kTestStr60 );
+
+            aStrBuf.append( intVal, -5 );
+
+            CPPUNIT_ASSERT_MESSAGE
+            (   
+                "Appends the WrongRadix to the string buffer arrOUS[1]",
+                sal_True
+            );
+        
+        }
+
+        void append_003()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[2] );
+            OString                expVal( kTestStr60 );
+
+            aStrBuf.append( intVal, -5 );
+
+            CPPUNIT_ASSERT_MESSAGE
+            (   
+                "Appends the WrongRadix to the string buffer arrOUS[2]",
+                sal_True
+            );
+        
+        }
+
+        void append_004()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[3] );
+            OString                expVal( kTestStr60 );
+
+            aStrBuf.append( intVal, -5 );
+
+            CPPUNIT_ASSERT_MESSAGE
+            (   
+                "Appends the WrongRadix to the string buffer arrOUS[3]",
+                sal_True
+            );
+        
+        }
+
+        void append_005()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[4] );
+            OString                expVal( kTestStr61 );
+
+            aStrBuf.append( intVal, -5 );
+
+            CPPUNIT_ASSERT_MESSAGE
+            (   
+                "Appends the WrongRadix to the string buffer arrOUS[4]",
+                sal_True
+            );
+        
+        }
+#ifdef WITH_CORE
+        void append_006()
+        {
+            ::rtl::OStringBuffer   aStrBuf( kSInt64Max );
+=====================================================================
+Found a 12 line (325 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 679 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f00 - 2f0f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f10 - 2f1f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f20 - 2f2f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f30 - 2f3f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f40 - 2f4f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f50 - 2f5f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f60 - 2f6f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f70 - 2f7f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f80 - 2f8f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f90 - 2f9f
+=====================================================================
+Found a 37 line (324 tokens) duplication in the following files: 
+Starting at line 4692 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4275 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] =
+{
+	{ 0, 2230 },											// p
+	{ 820, 3990 }, { 3410, 3980 }, { 5370, 4360 },			// ccp
+	{ 7430, 4030 },	{ 10110, 3890 }, { 10690, 2270 },		// ccp
+	{ 11440, 300 }, { 14200, 160 }, { 16150, 0 },			// ccp
+	{ 18670, 170 }, {  20690, 390 }, { 21600, 2230 },		// ccp
+	{ 21600, 19420 },										// p
+	{ 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 },	// ccp
+	{ 14710, 17370 }, {	11310, 17510 }, { 10770, 19430 },	// ccp
+	{ 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 },		// ccp
+	{ 3220, 21250 }, { 610, 21130 }, { 0, 19420	}			// ccp
+};
+static const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] =
+{
+	0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] = 
+{
+	{ { 0, 4360 }, { 21600, 17240 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] =
+{
+	{ 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoFlowChartPunchedTape =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeVert, sizeof( mso_sptFlowChartPunchedTapeVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartPunchedTapeSegm, sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartPunchedTapeTextRect, sizeof( mso_sptFlowChartPunchedTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeGluePoints, sizeof( mso_sptFlowChartPunchedTapeGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 22 line (324 tokens) duplication in the following files: 
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 747 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 780 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 814 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_TIS_620,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
+                0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
+                0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
+                0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
+                0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, // !
+=====================================================================
+Found a 50 line (324 tokens) duplication in the following files: 
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CacheSet.cxx
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CacheSet.cxx
+
+	Reference<XKeysSupplier> xKeySup(_xTable,UNO_QUERY);
+	Reference<XIndexAccess> xKeys;
+	if(xKeySup.is())
+		xKeys = xKeySup->getKeys();
+
+	Reference<XColumnsSupplier> xKeyColsSup;
+	Reference<XNameAccess> xKeyColumns;
+	if(xKeys.is() && xKeys->getCount())
+	{
+		Reference<XPropertySet> xProp;
+		Reference<XColumnsSupplier> xColumnsSupplier;
+		// search the one and only primary key
+		for(sal_Int32 i=0;i< xKeys->getCount();++i)
+		{
+			::cppu::extractInterface(xProp,xKeys->getByIndex(i));
+			sal_Int32 nKeyType = 0;
+			xProp->getPropertyValue(PROPERTY_TYPE) >>= nKeyType;
+			if(KeyType::PRIMARY == nKeyType)
+			{
+				xKeyColsSup.set(xProp,UNO_QUERY);
+				break;
+			}
+		}
+		if(xKeyColsSup.is())
+			xKeyColumns = xKeyColsSup->getColumns();
+	}
+	// second the indexes
+	Reference<XIndexesSupplier> xIndexSup(_xTable,UNO_QUERY);
+	Reference<XIndexAccess> xIndexes;
+	if(xIndexSup.is())
+		xIndexes.set(xIndexSup->getIndexes(),UNO_QUERY);
+
+	//	Reference<XColumnsSupplier>
+	Reference<XPropertySet> xIndexColsSup;
+	Reference<XNameAccess> xIndexColumns;
+	::std::vector< Reference<XNameAccess> > aAllIndexColumns;
+	if(xIndexes.is())
+	{
+		for(sal_Int32 j=0;j<xIndexes->getCount();++j)
+		{
+			::cppu::extractInterface(xIndexColsSup,xIndexes->getByIndex(j));
+			if(	xIndexColsSup.is()
+				&& comphelper::getBOOL(xIndexColsSup->getPropertyValue(PROPERTY_ISUNIQUE))
+				&& !comphelper::getBOOL(xIndexColsSup->getPropertyValue(PROPERTY_ISPRIMARYKEYINDEX))
+			  )
+				aAllIndexColumns.push_back(Reference<XColumnsSupplier>(xIndexColsSup,UNO_QUERY)->getColumns());
+		}
+	}
+
+	::rtl::OUString aColumnName;
+=====================================================================
+Found a 72 line (323 tokens) duplication in the following files: 
+Starting at line 2319 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 2413 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        return WW8_CP_MAX;
+
+    return pPLCF_PosArray[nIdx];
+}
+
+//-----------------------------------------
+//              WW8PLCFpcd
+//-----------------------------------------
+
+WW8PLCFpcd::WW8PLCFpcd( SvStream* pSt, long nFilePos, long nPLCF, long nStruct )
+    :nStru( nStruct )
+{
+    nIMax = ( nPLCF - 4 ) / ( 4 + nStruct );
+    pPLCF_PosArray = new INT32[ ( nPLCF + 3 ) / 4 ];    // Pointer auf Pos-Array
+
+    long nOldPos = pSt->Tell();
+
+    pSt->Seek( nFilePos );
+    pSt->Read( pPLCF_PosArray, nPLCF );
+#ifdef OSL_BIGENDIAN
+    for( long nI = 0; nI <= nIMax; nI++ )
+      pPLCF_PosArray[nI] = SWAPLONG( pPLCF_PosArray[nI] );
+#endif // OSL_BIGENDIAN
+
+    // Pointer auf Inhalts-Array
+    pPLCF_Contents = (BYTE*)&pPLCF_PosArray[nIMax + 1];
+
+    pSt->Seek( nOldPos );
+}
+
+// Bei nStartPos < 0 wird das erste Element des PLCFs genommen
+WW8PLCFpcd_Iter::WW8PLCFpcd_Iter( WW8PLCFpcd& rPLCFpcd, long nStartPos )
+    :rPLCF( rPLCFpcd ), nIdx( 0 )
+{
+    if( nStartPos >= 0 )
+        SeekPos( nStartPos );
+}
+
+bool WW8PLCFpcd_Iter::SeekPos(long nPos)
+{
+    long nP = nPos;
+
+    if( nP < rPLCF.pPLCF_PosArray[0] )
+    {
+        nIdx = 0;
+        return false;       // Nicht gefunden: nPos unterhalb kleinstem Eintrag
+    }
+    // Search from beginning?
+    if( (1 > nIdx) || (nP < rPLCF.pPLCF_PosArray[ nIdx-1 ]) )
+        nIdx = 1;
+
+    long nI   = nIdx ? nIdx : 1;
+    long nEnd = rPLCF.nIMax;
+
+    for(int n = (1==nIdx ? 1 : 2); n; --n )
+    {
+        for( ; nI <=nEnd; ++nI)
+        {                               // Suchen mit um 1 erhoehtem Index
+            if( nP < rPLCF.pPLCF_PosArray[nI] )
+            {                           // Position gefunden
+                nIdx = nI - 1;          // nI - 1 ist der richtige Index
+                return true;            // ... und fertig
+            }
+        }
+        nI   = 1;
+        nEnd = nIdx-1;
+    }
+    nIdx = rPLCF.nIMax;         // Nicht gefunden, groesser als alle Eintraege
+    return false;
+}
+
+bool WW8PLCFpcd_Iter::Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const
+=====================================================================
+Found a 8 line (323 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x9f, 0x0000}, // 0300 - 0307
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0308 - 030f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0310 - 0317
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0318 - 031f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0320 - 0327
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0328 - 032f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0330 - 0337
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0338 - 033f
+=====================================================================
+Found a 41 line (322 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/certmngr.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/certmngr.cxx
+
+			"No personal certificates found\n" ) ;
+
+		Sequence < Reference< XCertificate > > xCertPath ;
+		for( int i = 0; i < xPersonalCerts.getLength(); i ++ ) {
+			//Print the certificate infomation.
+			fprintf( stdout, "\nPersonal Certificate Info\n" ) ;
+			fprintf( stdout, "\tCertificate Issuer[%s]\n", OUStringToOString( xPersonalCerts[i]->getIssuerName(), RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+			fprintf( stdout, "\tCertificate Serial Number[%s]\n", OUStringToOString( bigIntegerToNumericString( xPersonalCerts[i]->getSerialNumber() ), RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+			fprintf( stdout, "\tCertificate Subject[%s]\n", OUStringToOString( xPersonalCerts[i]->getSubjectName(), RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+
+			//build the certificate path 
+			xCertPath = pSecEnv->buildCertificatePath( xPersonalCerts[i] ) ;
+			//Print the certificate path.
+			fprintf( stdout, "\tCertificate Path\n" ) ;
+			for( int j = 0; j < xCertPath.getLength(); j ++ ) {
+				fprintf( stdout, "\t\tCertificate Authority Subject[%s]\n", OUStringToOString( xCertPath[j]->getSubjectName(), RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+			}
+
+			//Get the certificate
+			Sequence < sal_Int8 > serial = xPersonalCerts[i]->getSerialNumber() ;
+			Reference< XCertificate > xcert = pSecEnv->getCertificate( xPersonalCerts[i]->getIssuerName(), xPersonalCerts[i]->getSerialNumber() ) ;
+			if( !xcert.is() ) {
+				fprintf( stdout, "The personal certificate is not in the certificate database\n" ) ;
+			}
+
+			//Get the certificate characters
+			sal_Int32 chars = pSecEnv->getCertificateCharacters( xPersonalCerts[i] ) ;
+			fprintf( stdout, "The certificate characters are %d\n", chars ) ;
+
+			//Get the certificate status
+			sal_Int32 validity = pSecEnv->verifyCertificate( xPersonalCerts[i] ) ;
+			fprintf( stdout, "The certificate validities are %d\n", validity ) ;
+
+		}
+	} catch( Exception& e ) {
+		fprintf( stderr , "Error Message: %s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		goto done ;
+	}
+
+done:
+	if( n_hStoreHandle != NULL )
+=====================================================================
+Found a 21 line (322 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 681 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_ASCII_US,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, // !
+                0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF, // !
+                0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, // !
+                0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178, // !
+=====================================================================
+Found a 87 line (321 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+uno::Any SAL_CALL Content::execute(
+        const ucb::Command& aCommand,
+        sal_Int32 /*CommandId*/,
+        const uno::Reference< ucb::XCommandEnvironment >& Environment )
+    throw( uno::Exception,
+           ucb::CommandAbortedException,
+           uno::RuntimeException )
+{
+    uno::Any aRet;
+
+    if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "getPropertyValues" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// getPropertyValues
+		//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::Property > Properties;
+		if ( !( aCommand.Argument >>= Properties ) )
+		{
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+		aRet <<= getPropertyValues( Properties );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "setPropertyValues" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// setPropertyValues
+		//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::PropertyValue > aProperties;
+		if ( !( aCommand.Argument >>= aProperties ) )
+		{
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+		if ( !aProperties.getLength() )
+		{
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "No properties!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// getPropertySetInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getPropertySetInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "getCommandInfo" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// getCommandInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getCommandInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+=====================================================================
+Found a 12 line (321 tokens) duplication in the following files: 
+Starting at line 1328 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1372 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24f0 - 24ff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2500 - 250f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2510 - 251f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2520 - 252f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2530 - 253f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2540 - 254f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2550 - 255f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2560 - 256f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2570 - 257f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2580 - 258f
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+=====================================================================
+Found a 37 line (321 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tempnam.c
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/zortech/tempnam.c
+
+const char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+=====================================================================
+Found a 26 line (321 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/namecontainer.cxx
+
+		virtual ~NameContainer();
+
+		// XNameContainer
+		virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement )
+			throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException,
+			::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+		virtual void SAL_CALL removeByName( const ::rtl::OUString& Name )
+			throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException,
+				::com::sun::star::uno::RuntimeException);
+
+		// XNameReplace
+		virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement )
+			throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException,
+				::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+		// XNameAccess
+		virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
+			throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException,
+				::com::sun::star::uno::RuntimeException);
+		virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  )
+			throw(::com::sun::star::uno::RuntimeException);
+		virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
+			throw(::com::sun::star::uno::RuntimeException);
+
+		// XElementAccess
+		virtual sal_Bool SAL_CALL hasElements(  )
+=====================================================================
+Found a 72 line (321 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 75 line (320 tokens) duplication in the following files: 
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+    if ( isFolder() )
+    {
+        static cppu::OTypeCollection* pFolderTypes = 0;
+
+        pCollection = pFolderTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pFolderTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                    CPPU_TYPE_REF( lang::XTypeProvider ),
+                    CPPU_TYPE_REF( lang::XServiceInfo ),
+                    CPPU_TYPE_REF( lang::XComponent ),
+                    CPPU_TYPE_REF( ucb::XContent ),
+                    CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                    CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                    CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                    CPPU_TYPE_REF( beans::XPropertyContainer ),
+                    CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                    CPPU_TYPE_REF( container::XChild ),
+                    CPPU_TYPE_REF( ucb::XContentCreator ) ); // !!
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pFolderTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+    else
+    {
+        static cppu::OTypeCollection* pDocumentTypes = 0;
+
+        pCollection = pDocumentTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pDocumentTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                    CPPU_TYPE_REF( lang::XTypeProvider ),
+                    CPPU_TYPE_REF( lang::XServiceInfo ),
+                    CPPU_TYPE_REF( lang::XComponent ),
+                    CPPU_TYPE_REF( ucb::XContent ),
+                    CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                    CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                    CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                    CPPU_TYPE_REF( beans::XPropertyContainer ),
+                    CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                    CPPU_TYPE_REF( container::XChild ) );
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pDocumentTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+
+    return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+=====================================================================
+Found a 54 line (320 tokens) duplication in the following files: 
+Starting at line 3480 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 966 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdocapt.cxx
+
+void SdrCaptionObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const basegfx::B2DPolyPolygon& /*rPolyPolygon*/)
+{
+	// break up matrix
+	basegfx::B2DTuple aScale;
+	basegfx::B2DTuple aTranslate;
+	double fRotate, fShearX;
+	rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+
+	// #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+	// in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+	if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+	{
+		aScale.setX(fabs(aScale.getX()));
+		aScale.setY(fabs(aScale.getY()));
+		fRotate = fmod(fRotate + F_PI, F_2PI);
+	}
+
+	// force metric to pool metric
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// position
+				aTranslate.setX(ImplMMToTwips(aTranslate.getX()));
+				aTranslate.setY(ImplMMToTwips(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplMMToTwips(aScale.getX()));
+				aScale.setY(ImplMMToTwips(aScale.getY()));
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRSetBaseGeometry: Missing unit translation to PoolMetric!");
+			}
+		}
+	}
+
+	// if anchor is used, make position relative to it
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate += basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// build BaseRect
+	Point aPoint(FRound(aTranslate.getX()), FRound(aTranslate.getY()));
+	Rectangle aBaseRect(aPoint, Size(FRound(aScale.getX()), FRound(aScale.getY())));
+=====================================================================
+Found a 56 line (320 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuhhconv.cxx
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwtxtsh.cxx
+
+            {
+                //open ChineseTranslationDialog
+                Reference< XComponentContext > xContext(
+                    ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one
+                if(xContext.is())
+                {
+                    Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
+                    if(xMCF.is())
+                    {
+                        Reference< ui::dialogs::XExecutableDialog > xDialog(
+                                xMCF->createInstanceWithContext(
+                                    rtl::OUString::createFromAscii("com.sun.star.linguistic2.ChineseTranslationDialog")
+                                    , xContext), UNO_QUERY);
+                        Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
+                        if( xInit.is() )
+                        {
+                            //  initialize dialog
+                            Reference< awt::XWindow > xDialogParentWindow(0);
+                            Sequence<Any> aSeq(1);
+                            Any* pArray = aSeq.getArray();
+                            PropertyValue aParam;
+                            aParam.Name = rtl::OUString::createFromAscii("ParentWindow");
+                            aParam.Value <<= makeAny(xDialogParentWindow);
+                            pArray[0] <<= makeAny(aParam);
+                            xInit->initialize( aSeq );
+
+                            //execute dialog
+                            sal_Int16 nDialogRet = xDialog->execute();
+                            if( RET_OK == nDialogRet )
+                            {
+                                //get some parameters from the dialog
+                                sal_Bool bToSimplified = sal_True;
+                                sal_Bool bUseVariants = sal_True;
+                                sal_Bool bCommonTerms = sal_True;
+                                Reference< beans::XPropertySet >  xProp( xDialog, UNO_QUERY );
+                                if( xProp.is() )
+                                {
+                                    try
+                                    {
+                                        xProp->getPropertyValue( C2U("IsDirectionToSimplified") ) >>= bToSimplified;
+                                        xProp->getPropertyValue( C2U("IsUseCharacterVariants") ) >>= bUseVariants;
+                                        xProp->getPropertyValue( C2U("IsTranslateCommonTerms") ) >>= bCommonTerms;
+                                    }
+                                    catch( Exception& )
+                                    {
+                                    }
+                                }
+
+                                //execute translation
+                                sal_Int16 nSourceLang = bToSimplified ? LANGUAGE_CHINESE_TRADITIONAL : LANGUAGE_CHINESE_SIMPLIFIED;
+                                sal_Int16 nTargetLang = bToSimplified ? LANGUAGE_CHINESE_SIMPLIFIED : LANGUAGE_CHINESE_TRADITIONAL;
+                                sal_Int32 nOptions    = bUseVariants ? i18n::TextConversionOption::USE_CHARACTER_VARIANTS : 0;
+                                if( !bCommonTerms )
+                                    nOptions = nOptions | i18n::TextConversionOption::CHARACTER_BY_CHARACTER;
+
+                                Font aTargetFont = pOLV->GetWindow()->GetDefaultFont( DEFAULTFONT_CJK_TEXT,
+=====================================================================
+Found a 61 line (320 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/nlist.c
+Starting at line 6 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_nlist.c
+
+extern int getopt(int, char *const *, const char *);
+extern char *optarg;
+extern int optind;
+extern int Cplusplus;
+Nlist *kwdefined;
+char wd[128];
+
+/* 
+	ER: Tabelle extra gross gemacht, da es anscheinend ein Problem mit der
+	der Verkettung gibt, irgendwann irgendwo wird mal ein nlist->next
+	ueberschrieben, was in eineme SIGSEGV resultiert.
+	Den GDB mit watchpoint hab ich aber nach 2 Tagen abgebrochen..
+	so loeppt's jedenfalls erstmal..
+ */
+#define	NLSIZE 15000
+
+static Nlist *nlist[NLSIZE];
+
+struct kwtab
+{
+    char *kw;
+    int val;
+    int flag;
+}   kwtab[] =
+
+{
+		{"if", KIF, ISKW},
+		{"ifdef", KIFDEF, ISKW},
+		{"ifndef", KIFNDEF, ISKW},
+		{"elif", KELIF, ISKW},
+		{"else", KELSE, ISKW},
+		{"endif", KENDIF, ISKW},
+		{"include", KINCLUDE, ISKW},
+		{"include_next", KINCLUDENEXT, ISKW},
+		{"import", KIMPORT, ISKW},
+		{"define", KDEFINE, ISKW},
+		{"undef", KUNDEF, ISKW},
+		{"line", KLINE, ISKW},
+		{"error", KERROR, ISKW},
+		{"pragma", KPRAGMA, ISKW},
+		{"ident", KIDENT, ISKW},
+		{"eval", KEVAL, ISKW},
+		{"defined", KDEFINED, ISDEFINED + ISUNCHANGE},
+		{"machine", KMACHINE, ISDEFINED + ISUNCHANGE},
+		{"__LINE__", KLINENO, ISMAC + ISUNCHANGE},
+		{"__FILE__", KFILE, ISMAC + ISUNCHANGE},
+		{"__DATE__", KDATE, ISMAC + ISUNCHANGE},
+		{"__TIME__", KTIME, ISMAC + ISUNCHANGE},
+		{"__STDC__", KSTDC, ISUNCHANGE},
+		{NULL, 0, 0}
+};
+
+unsigned long namebit[077 + 1];
+
+void
+    setup_kwtab(void)
+{
+    struct kwtab *kp;
+    Nlist *np;
+    Token t;
+    static Token deftoken[1] = {{NAME, 0, 0, 7, (uchar *) "defined", 0}};
+=====================================================================
+Found a 7 line (320 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffc8 - ffcf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd0 - ffd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd8 - ffdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe0 - ffe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff0 - fff7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff8 - ffff
+=====================================================================
+Found a 49 line (320 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 825 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testUnsignedLong() {
+=====================================================================
+Found a 79 line (319 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 552 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+                      break;                    
+		}
+	}
+}
+
+void SAL_CALL OReadToolBoxDocumentHandler::endElement(const OUString& aName)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	ToolBoxHashMap::const_iterator pToolBoxEntry = m_aToolBoxMap.find( aName ) ;
+	if ( pToolBoxEntry != m_aToolBoxMap.end() )
+	{
+		switch ( pToolBoxEntry->second )
+		{
+			case TB_ELEMENT_TOOLBAR:
+			{
+				if ( !m_bToolBarStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar' found, but no start element 'toolbar'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bToolBarStartFound = sal_False;
+			}
+			break;
+
+			case TB_ELEMENT_TOOLBARITEM:
+			{
+				if ( !m_bToolBarItemStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbaritem' found, but no start element 'toolbar:toolbaritem'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bToolBarItemStartFound = sal_False;
+			}
+			break;
+
+			case TB_ELEMENT_TOOLBARBREAK:
+			{
+				if ( !m_bToolBarBreakStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbarbreak' found, but no start element 'toolbar:toolbarbreak'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bToolBarBreakStartFound = sal_False;
+			}
+			break;
+
+			case TB_ELEMENT_TOOLBARSPACE:
+			{
+				if ( !m_bToolBarSpaceStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbarspace' found, but no start element 'toolbar:toolbarspace'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bToolBarSpaceStartFound = sal_False;
+			}
+			break;
+
+			case TB_ELEMENT_TOOLBARSEPARATOR:
+			{
+				if ( !m_bToolBarSeparatorStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'toolbar:toolbarseparator' found, but no start element 'toolbar:toolbarseparator'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bToolBarSeparatorStartFound = sal_False;
+			}
+			break;
+=====================================================================
+Found a 49 line (319 tokens) duplication in the following files: 
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/tempnam.c
+Starting at line 34 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/tempnam.c
+
+extern int access();
+
+static char *cpdir();
+static char  seed[4]="AAA";
+
+/* BSD stdio.h doesn't define P_tmpdir, so let's do it here */
+#ifndef P_tmpdir
+static char *P_tmpdir = "/tmp";
+#endif
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+     if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+	if( access( cpdir(p, P_tmpdir),   3) != 0 )
+	   if( access( cpdir(p, "/tmp"),  3) != 0 )
+	      return(NULL);
+
+   (void) strcat(p, "/");
+   if(prefix)
+   {
+      *(p+strlen(p)+5) = '\0';
+      (void)strncat(p, prefix, 5);
+   }
+
+   (void)strcat(p, seed);
+   (void)strcat(p, "XXXXXX");
+
+   q = seed;
+   while(*q == 'Z') *q++ = 'A';
+   ++*q;
+
+   if(*mktemp(p) == '\0') return(NULL);
+=====================================================================
+Found a 68 line (319 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+
+                        pFPR, nFPR );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
+                                  *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+	void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+	// is my surrogate
+        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
+            = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
+=====================================================================
+Found a 75 line (318 tokens) duplication in the following files: 
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    if ( bFolder )
+    {
+        static cppu::OTypeCollection* pFolderTypes = 0;
+
+        pCollection = pFolderTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pFolderTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                    CPPU_TYPE_REF( lang::XTypeProvider ),
+                        CPPU_TYPE_REF( lang::XServiceInfo ),
+                        CPPU_TYPE_REF( lang::XComponent ),
+                        CPPU_TYPE_REF( ucb::XContent ),
+                        CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                        CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                        CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                        CPPU_TYPE_REF( beans::XPropertyContainer ),
+                        CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                        CPPU_TYPE_REF( container::XChild ),
+                        CPPU_TYPE_REF( ucb::XContentCreator ) ); // !!
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pFolderTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+    else
+    {
+        static cppu::OTypeCollection* pDocumentTypes = 0;
+
+        pCollection = pDocumentTypes;
+        if ( !pCollection )
+        {
+            osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+
+            pCollection = pDocumentTypes;
+            if ( !pCollection )
+            {
+                static cppu::OTypeCollection aCollection(
+                        CPPU_TYPE_REF( lang::XTypeProvider ),
+                        CPPU_TYPE_REF( lang::XServiceInfo ),
+                        CPPU_TYPE_REF( lang::XComponent ),
+                        CPPU_TYPE_REF( ucb::XContent ),
+                        CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                        CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                        CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                        CPPU_TYPE_REF( beans::XPropertyContainer ),
+                        CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                        CPPU_TYPE_REF( container::XChild ) );
+                pCollection = &aCollection;
+                OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+                pDocumentTypes = pCollection;
+            }
+        }
+        else
+            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+    }
+
+    return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+=====================================================================
+Found a 60 line (318 tokens) duplication in the following files: 
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+Starting at line 1264 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+
+        DoUndo( FALSE );
+    }
+
+    // die Bookmarks loeschen und die Cursor der CrsrShell verschieben
+    _DelBookmarks( pStt->nNode, pEnd->nNode, 0,
+                    &pStt->nContent, &pEnd->nContent );
+    ::PaMCorrAbs( aOriginal, *pEnd );
+
+    // sorge dafuer, das der Bereich auf Node-Grenzen liegt
+    SwNodeRange aRg( pStt->nNode, pEnd->nNode );
+    if( pStt->nContent.GetIndex() )
+        SplitNode( *pStt, false );
+
+    BOOL bEndCntnt = 0 != pEnd->nContent.GetIndex();
+    // nicht splitten am Ende der Zeile (aber am Ende vom Doc!!)
+    if( bEndCntnt )
+    {
+        if( pEnd->nNode.GetNode().GetCntntNode()->Len() != pEnd->nContent.GetIndex()
+            || pEnd->nNode.GetIndex() >= GetNodes().GetEndOfContent().GetIndex()-1 )
+        {
+            SplitNode( *pEnd, false );
+            ((SwNodeIndex&)pEnd->nNode)--;
+            ((SwIndex&)pEnd->nContent).Assign(
+                                pEnd->nNode.GetNode().GetCntntNode(), 0 );
+            // ein Node und am Ende ??
+            if( pStt->nNode.GetIndex() >= pEnd->nNode.GetIndex() )
+                aRg.aStart--;
+        }
+        else
+            aRg.aEnd++;
+    }
+
+
+    if( aRg.aEnd.GetIndex() == aRg.aStart.GetIndex() )
+    {
+        ASSERT( FALSE, "Kein Bereich" );
+        aRg.aEnd++;
+    }
+
+    // Wir gehen jetzt immer ueber die Upper, um die Tabelle einzufuegen:
+    SwNode2Layout aNode2Layout( aRg.aStart.GetNode() );
+
+    DoUndo( 0 != pUndo );
+
+    // dann erstelle die Box/Line/Table-Struktur
+    SwTableBoxFmt* pBoxFmt = MakeTableBoxFmt();
+    SwTableLineFmt* pLineFmt = MakeTableLineFmt();
+    SwTableFmt* pTableFmt = MakeTblFrmFmt( GetUniqueTblName(), GetDfltFrmFmt() );
+
+    // alle Zeilen haben die Fill-Order von links nach rechts !
+    pLineFmt->SetAttr( SwFmtFillOrder( ATT_LEFT_TO_RIGHT ));
+    // die Tabelle bekommt USHRT_MAX als default SSize
+    pTableFmt->SetAttr( SwFmtFrmSize( ATT_VAR_SIZE, USHRT_MAX ));
+//    if( !(rInsTblOpts.mnInsMode & tabopts::SPLIT_LAYOUT) )
+//        pTableFmt->SetAttr( SwFmtLayoutSplit( FALSE ));
+
+    /* #106283# If the first node in the selection is a context node and if it
+       has an item FRAMEDIR set (no default) propagate the item to the
+       replacing table. */
+    if (pSttCntntNd)
+=====================================================================
+Found a 7 line (317 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2480 - 2487
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2488 - 248f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2490 - 2497
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2498 - 249f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a0 - 24a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24a8 - 24af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x68, 0x24D0}, {0x68, 0x24D1}, // 24b0 - 24b7
+=====================================================================
+Found a 71 line (317 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+		throw RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("illegal vtable index!") ),
+								(XInterface *)pThis );
+	}
+
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+			// standard XInterface vtable calls
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+            {
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[2] ),
+=====================================================================
+Found a 43 line (316 tokens) duplication in the following files: 
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+			aRet <<= _xLBT->getValues( aBool, aChar, nByte, nShort, nUShort, nLong, nULong,
+									   nHyper, nUHyper, fFloat, fDouble, eEnum, aString, xInterface,
+									   aAny, aSeq, aData );
+			
+			rOutParamIndex.realloc( 17 );
+			rOutParamIndex[0] = 0;
+			rOutParamIndex[1] = 1;
+			rOutParamIndex[2] = 2;
+			rOutParamIndex[3] = 3;
+			rOutParamIndex[4] = 4;
+			rOutParamIndex[5] = 5;
+			rOutParamIndex[6] = 6;
+			rOutParamIndex[7] = 7;
+			rOutParamIndex[8] = 8;
+			rOutParamIndex[9] = 9;
+			rOutParamIndex[10] = 10;
+			rOutParamIndex[11] = 11;
+			rOutParamIndex[12] = 12;
+			rOutParamIndex[13] = 13;
+			rOutParamIndex[14] = 14;
+			rOutParamIndex[15] = 15;
+			rOutParamIndex[16] = 16;
+			
+			rOutParam.realloc( 17 );
+			rOutParam[0].setValue( &aBool, ::getCppuBooleanType() );
+			rOutParam[1].setValue( &aChar, ::getCppuCharType() );
+			rOutParam[2] <<= nByte;
+			rOutParam[3] <<= nShort;
+			rOutParam[4] <<= nUShort;
+			rOutParam[5] <<= nLong;
+			rOutParam[6] <<= nULong;
+			rOutParam[7] <<= nHyper;
+			rOutParam[8] <<= nUHyper;
+			rOutParam[9] <<= fFloat;
+			rOutParam[10] <<= fDouble;
+			rOutParam[11] <<= eEnum;
+			rOutParam[12] <<= aString;
+			rOutParam[13] <<= xInterface;
+			rOutParam[14] <<= aAny;
+			rOutParam[15] <<= aSeq;
+			rOutParam[16] <<= aData;
+		}
+		else if (rFunctionName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("raiseException") ))
+=====================================================================
+Found a 75 line (316 tokens) duplication in the following files: 
+Starting at line 2005 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP );
+			::osl::StreamSocket ssConnection;
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			/// launch server socket 
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind '127.0.0.1' address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+			asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
+
+			/// launch client socket 
+			csConnectorSocket.connect( saTargetSocketAddr, pTimeout );   /// connecting to server...
+
+			/// get peer information
+			csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
+			sal_Int32 peerPort = csConnectorSocket.getPeerPort( );
+			::rtl::OUString peerHost = csConnectorSocket.getPeerHost( );
+				
+			CPPUNIT_ASSERT_MESSAGE( "test for getPeer function: setup a connection and then get the peer address, port and host from client side.", 
+									( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) )&&
+									( sal_True == compareUString( peerHost, saLocalSocketAddr.getHostname( 0 ) ) ) && 
+									( peerPort == saLocalSocketAddr.getPort( ) ));
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( getPeer );
+		CPPUNIT_TEST( getPeer_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getPeer
+	
+
+	/** testing the methods:
+		inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface);
+	*/
+	
+
+	class bind : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void bind_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			//bind must use local IP address ---mindyliu
+			::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_MYPORT5 );
+			
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);			
+			sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "Socket bind fail.", sal_True == bOK1 );
+			
+			sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname( ) ) ;
+						
+			sSocket.close();
+			CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.", sal_True == bOK2 );
+		}
+	
+		void bind_002()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_NETBIOS );
+=====================================================================
+Found a 16 line (316 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/nativenumber/data/numberchar.h
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/data/numberchar.h
+
+static const sal_Unicode NumberChar[][10] = {
+//	0	1	2	3	4	5	6	7	8	9
+    { 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039 }, // Half Width (Ascii)
+    { 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, 0xFF18, 0xFF19 }, // Full Width
+    { 0x3007, 0x4E00, 0x4E8c, 0x4E09, 0x56DB, 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D }, // Chinese Lower
+    { 0x96F6, 0x58F9, 0x8D30, 0x53C1, 0x8086, 0x4F0D, 0x9646, 0x67D2, 0x634C, 0x7396 }, // S. Chinese Upper
+    { 0x96F6, 0x58F9, 0x8CB3, 0x53C3, 0x8086, 0x4F0D, 0x9678, 0x67D2, 0x634C, 0x7396 }, // T. Chinese Upper
+    { 0x3007, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D }, // Japanese Modern
+    { 0x96F6, 0x58F1, 0x5F10, 0x53C2, 0x56DB, 0x4F0D, 0x516D, 0x4E03, 0x516B, 0x4E5D }, // Japanese Trad.
+    { 0x3007, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D }, // Korean Lower
+    { 0xF9B2, 0x58F9, 0x8CB3, 0x53C3, 0x56DB, 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D }, // Korean Upper
+    { 0xC601, 0xC77C, 0xC774, 0xC0BC, 0xC0AC, 0xC624, 0xC721, 0xCE60, 0xD314, 0xAD6C }, // Korean Hangul
+    { 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669 }, // Arabic Indic
+    { 0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7, 0x06F8, 0x06F9 }, // Est. Arabic Indic
+    { 0x0966, 0x0967, 0x0968, 0x0969, 0x096A, 0x096B, 0x096C, 0x096D, 0x096E, 0x096F }, // Indic
+    { 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, 0x0E58, 0x0E59 }  // Thai
+=====================================================================
+Found a 62 line (316 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+static typelib_TypeClass cpp2uno_call(
+	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	// pCallStack: ret, [return ptr], this, params
+	char * pCppStack = (char *)(pCallStack +1);
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pUnoReturn = pRegisterReturn; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void **)pCppStack;
+			pCppStack += sizeof(void *);
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 71 line (315 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/encrypter.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/encrypter.cxx
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ), OUString::createFromAscii( argv[5] ) ) ;
+
+		//Create encryption template
+		Reference< XInterface > tplElement =
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.security.bridge.xmlsec.XMLElementWrapper_XmlSecImpl" ) , xContext ) ;
+		OSL_ENSURE( tplElement.is() ,
+			"Encryptor - "
+			"Cannot get service instance of \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XXMLElementWrapper > xTplElement( tplElement , UNO_QUERY ) ;
+		OSL_ENSURE( xTplElement.is() ,
+			"Encryptor - "
+			"Cannot get interface of \"XXMLElementWrapper\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XUnoTunnel > xTplEleTunnel( xTplElement , UNO_QUERY ) ;
+		OSL_ENSURE( xTplEleTunnel.is() ,
+			"Encryptor - "
+			"Cannot get interface of \"XUnoTunnel\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		XMLElementWrapper_XmlSecImpl* pTplElement = ( XMLElementWrapper_XmlSecImpl* )xTplEleTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
+		OSL_ENSURE( pTplElement != NULL ,
+			"Encryptor - "
+			"Cannot get implementation of \"xsec.XMLElementWrapper\"" ) ;
+
+		pTplElement->setNativeElement( tplNode ) ;
+
+		//Create encryption target element
+		Reference< XInterface > tarElement =
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.security.bridge.xmlsec.XMLElementWrapper_XmlSecImpl" ) , xContext ) ;
+		OSL_ENSURE( tarElement.is() ,
+			"Encryptor - "
+			"Cannot get service instance of \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XXMLElementWrapper > xTarElement( tarElement , UNO_QUERY ) ;
+		OSL_ENSURE( xTarElement.is() ,
+			"Encryptor - "
+			"Cannot get interface of \"XXMLElementWrapper\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XUnoTunnel > xTarEleTunnel( xTarElement , UNO_QUERY ) ;
+		OSL_ENSURE( xTarEleTunnel.is() ,
+			"Encryptor - "
+			"Cannot get interface of \"XUnoTunnel\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		XMLElementWrapper_XmlSecImpl* pTarElement = ( XMLElementWrapper_XmlSecImpl* )xTarEleTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
+		OSL_ENSURE( pTarElement != NULL ,
+			"Encryptor - "
+			"Cannot get implementation of \"xsec.XMLElementWrapper\"" ) ;
+
+		pTarElement->setNativeElement( tarNode ) ;
+
+
+		//Build XML Encryption template
+		Reference< XInterface > enctpl =
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.crypto.XMLEncryptionTemplate"), xContext ) ;
+		OSL_ENSURE( enctpl.is() ,
+			"Encryptor - "
+			"Cannot get service instance of \"xsec.XMLEncryptionTemplate\"" ) ;
+
+		Reference< XXMLEncryptionTemplate > xTemplate( enctpl , UNO_QUERY ) ;
+		OSL_ENSURE( xTemplate.is() ,
+			"Encryptor - "
+			"Cannot get interface of \"XXMLEncryptionTemplate\" from service \"xsec.XMLEncryptionTemplate\"" ) ;
+
+		//Import the encryption template
+		xTemplate->setTemplate( xTplElement ) ;
+		xTemplate->setTarget( xTarElement ) ;
+
+		//Create security environment
+		//Build Security Environment
+		Reference< XInterface > xsecenv =
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl"), xContext ) ;
+=====================================================================
+Found a 22 line (315 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/criface.cxx
+
+		: IdlMemberImpl( pReflection, rName, pTypeDescr, pDeclTypeDescr )
+		{}
+	
+	// XInterface
+	virtual Any SAL_CALL queryInterface( const Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL acquire() throw();
+	virtual void SAL_CALL release() throw();
+	
+	// XTypeProvider
+	virtual Sequence< Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
+	virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+	
+	// XIdlMember
+    virtual Reference< XIdlClass > SAL_CALL getDeclaringClass() throw(::com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
+	// XIdlField
+    virtual Reference< XIdlClass > SAL_CALL getType() throw(::com::sun::star::uno::RuntimeException);
+    virtual FieldAccessMode SAL_CALL getAccessMode() throw(::com::sun::star::uno::RuntimeException);
+    virtual Any SAL_CALL get( const Any & rObj ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);    
+    virtual void SAL_CALL set( const Any & rObj, const Any & rValue ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException);
+	// XIdlField2: getType, getAccessMode and get are equal to XIdlField
+    virtual void SAL_CALL set( Any & rObj, const Any & rValue ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 8 line (315 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x6a, 0x006B}, {0x6a, 0x00E5}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2128 - 212f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2130 - 2137
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2138 - 213f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2140 - 2147
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2148 - 214f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2150 - 2157
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2158 - 215f
+    {0x68, 0x2170}, {0x68, 0x2171}, {0x68, 0x2172}, {0x68, 0x2173}, {0x68, 0x2174}, {0x68, 0x2175}, {0x68, 0x2176}, {0x68, 0x2177}, // 2160 - 2167
+=====================================================================
+Found a 57 line (315 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< rtl::OUString >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+=====================================================================
+Found a 19 line (314 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crenum.cxx
+
+	virtual Any SAL_CALL queryInterface( const Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL acquire() throw();
+	virtual void SAL_CALL release() throw();
+	
+	// XTypeProvider
+	virtual Sequence< Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
+	virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+	
+	// XIdlMember
+    virtual Reference< XIdlClass > SAL_CALL getDeclaringClass() throw(::com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
+	// XIdlField
+    virtual Reference< XIdlClass > SAL_CALL getType() throw(::com::sun::star::uno::RuntimeException);
+    virtual FieldAccessMode SAL_CALL getAccessMode() throw(::com::sun::star::uno::RuntimeException);
+    virtual Any SAL_CALL get( const Any & rObj ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL set( const Any & rObj, const Any & rValue ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException);
+	// XIdlField2: getType, getAccessMode and get are equal to XIdlField
+    virtual void SAL_CALL set( Any & rObj, const Any & rValue ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException);
+};
+=====================================================================
+Found a 92 line (314 tokens) duplication in the following files: 
+Starting at line 570 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/socket.c
+Starting at line 540 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/socket.cxx
+
+	memcpy( &(pAddr->m_sockaddr), pSystemSockAddr, sizeof( sockaddr ) );
+	return pAddr;
+}
+
+static void __osl_destroySocketAddr( oslSocketAddr addr )
+{
+#if OSL_DEBUG_LEVEL > 1
+	g_nSocketAddr --;
+#endif
+	rtl_freeMemory( addr );
+}
+/*****************************************************************************/
+/* osl_createEmptySocketAddr */
+/*****************************************************************************/
+oslSocketAddr SAL_CALL osl_createEmptySocketAddr(oslAddrFamily Family)
+{
+	oslSocketAddr pAddr = 0;
+
+	/* is it an internet-Addr? */
+	if (Family == osl_Socket_FamilyInet)
+	{
+		pAddr = __osl_createSocketAddrWithFamily(Family, 0 , htonl(INADDR_ANY) );
+	}
+	else
+	{
+		pAddr = __osl_createSocketAddrWithFamily( Family , 0 , 0 );
+	}
+
+	return pAddr;
+}
+
+/*****************************************************************************/
+/* osl_copySocketAddr */
+/*****************************************************************************/
+// @deprecated, to be removed
+oslSocketAddr SAL_CALL osl_copySocketAddr(oslSocketAddr Addr)
+{
+	oslSocketAddr pCopy = 0;
+	if (Addr)
+	{
+		pCopy = __osl_createSocketAddr();
+
+		if (pCopy)
+			memcpy(&(pCopy->m_sockaddr),&(Addr->m_sockaddr), sizeof(struct sockaddr));
+	}
+	return pCopy;
+}
+
+/*****************************************************************************/
+/* osl_isEqualSocketAddr */
+/*****************************************************************************/
+sal_Bool SAL_CALL osl_isEqualSocketAddr(oslSocketAddr Addr1, oslSocketAddr Addr2)
+{
+	struct sockaddr* pAddr1= &(Addr1->m_sockaddr);
+	struct sockaddr* pAddr2= &(Addr2->m_sockaddr);
+
+	OSL_ASSERT(pAddr1);
+	OSL_ASSERT(pAddr2);
+
+	if (pAddr1->sa_family == pAddr2->sa_family)
+	{
+		switch (pAddr1->sa_family)
+		{
+			case AF_INET:
+			{
+				struct sockaddr_in* pInetAddr1= (struct sockaddr_in*)pAddr1;
+				struct sockaddr_in* pInetAddr2= (struct sockaddr_in*)pAddr2;
+
+				if ((pInetAddr1->sin_family == pInetAddr2->sin_family) &&
+					(pInetAddr1->sin_addr.s_addr == pInetAddr2->sin_addr.s_addr) &&
+					(pInetAddr1->sin_port == pInetAddr2->sin_port))
+					return (sal_True);
+			}
+
+			default:
+			{
+				return (memcmp(pAddr1, Addr2, sizeof(struct sockaddr)) == 0);
+			}
+		}
+	}
+
+	return (sal_False);
+}
+
+/*****************************************************************************/
+/* osl_createInetBroadcastAddr */
+/*****************************************************************************/
+oslSocketAddr SAL_CALL osl_createInetBroadcastAddr (
+	rtl_uString *strDottedAddr,
+	sal_Int32    Port)
+{
+	sal_uInt32          nAddr = OSL_INADDR_NONE;
+=====================================================================
+Found a 38 line (312 tokens) duplication in the following files: 
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salinst.h
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salinst.h
+
+    virtual ~WinSalInstance();
+
+    virtual SalFrame*      	CreateChildFrame( SystemParentData* pParent, ULONG nStyle );
+    virtual SalFrame*      	CreateFrame( SalFrame* pParent, ULONG nStyle );
+    virtual void			DestroyFrame( SalFrame* pFrame );
+    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
+    virtual void			DestroyObject( SalObject* pObject );
+    virtual SalVirtualDevice*	CreateVirtualDevice( SalGraphics* pGraphics,
+                                                     long nDX, long nDY,
+                                                     USHORT nBitCount, const SystemGraphicsData *pData );
+    virtual void			DestroyVirtualDevice( SalVirtualDevice* pDevice );
+
+    virtual SalInfoPrinter*	CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
+                                               ImplJobSetup* pSetupData );
+    virtual void			DestroyInfoPrinter( SalInfoPrinter* pPrinter );
+    virtual SalPrinter*		CreatePrinter( SalInfoPrinter* pInfoPrinter );
+    virtual void			DestroyPrinter( SalPrinter* pPrinter );
+    virtual void			GetPrinterQueueInfo( ImplPrnQueueList* pList );
+    virtual void			GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+    virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+    virtual String             GetDefaultPrinter();
+    virtual SalSound*			CreateSalSound();
+    virtual SalTimer*			CreateSalTimer();
+    virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+    virtual SalI18NImeStatus*	CreateI18NImeStatus();
+    virtual SalSystem*			CreateSalSystem();
+    virtual SalBitmap*			CreateSalBitmap();
+    virtual vos::IMutex*		GetYieldMutex();
+    virtual ULONG				ReleaseYieldMutex();
+    virtual void				AcquireYieldMutex( ULONG nCount );
+    virtual void				Yield( bool bWait, bool bHandleAllCurrentEvents );
+    virtual bool				AnyInput( USHORT nType );
+    virtual SalMenu*				CreateMenu( BOOL bMenuBar );
+    virtual void				DestroyMenu( SalMenu* );
+    virtual SalMenuItem*			CreateMenuItem( const SalItemParams* pItemData );
+    virtual void				DestroyMenuItem( SalMenuItem* );
+    virtual SalSession*                         CreateSalSession();
+    virtual void*				GetConnectionIdentifier( ConnectionIdentifierType& rReturnedType, int& rReturnedBytes );
+=====================================================================
+Found a 31 line (312 tokens) duplication in the following files: 
+Starting at line 3572 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3205 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] =
+{
+	{ 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 },
+	{ 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 },
+	{ 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 },
+	{ 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 },
+	{ 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 },
+	{ 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 },
+	{ 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 },
+	{ 11464, 4340 }
+};
+static const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] =
+{
+	{ { 5400, 6570 }, { 14160, 15290 } }
+};
+static const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] =
+{
+	{ 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 }
+};
+static const mso_CustomShape msoIrregularSeal2 =
+{
+	(SvxMSDffVertPair*)mso_sptIrregularSeal2Vert, sizeof( mso_sptIrregularSeal2Vert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0, 
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptIrregularSeal2TextRect, sizeof( mso_sptIrregularSeal2TextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptIrregularSeal2GluePoints, sizeof( mso_sptIrregularSeal2GluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 18 line (312 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crenum.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/criface.cxx
+
+	virtual Any SAL_CALL queryInterface( const Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL acquire() throw();
+	virtual void SAL_CALL release() throw();
+	
+	// XTypeProvider
+	virtual Sequence< Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
+	virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+	
+	// XIdlMember
+    virtual Reference< XIdlClass > SAL_CALL getDeclaringClass() throw(::com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
+	// XIdlField
+    virtual Reference< XIdlClass > SAL_CALL getType() throw(::com::sun::star::uno::RuntimeException);
+    virtual FieldAccessMode SAL_CALL getAccessMode() throw(::com::sun::star::uno::RuntimeException);
+    virtual Any SAL_CALL get( const Any & rObj ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);    
+    virtual void SAL_CALL set( const Any & rObj, const Any & rValue ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException);
+	// XIdlField2: getType, getAccessMode and get are equal to XIdlField
+    virtual void SAL_CALL set( Any & rObj, const Any & rValue ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 58 line (312 tokens) duplication in the following files: 
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsdocumenthandler.cxx
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsdocumenthandler.cxx
+
+                                              break; // nothing to do
+						}
+					}
+				} // for
+
+				OUString aRequiredAttributeName;
+				if ( aLanguage.getLength() == 0 )
+					aRequiredAttributeName = OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE ));
+				else if ( aEventName.getLength() == 0 )
+					aRequiredAttributeName = OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NAME ));
+					
+				// check for missing attribute values
+				if ( aRequiredAttributeName.getLength() > 0 )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute "));
+					aErrorMessage += aRequiredAttributeName;
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( " must have a value!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				Any a;
+
+				// set properties
+				a <<= aLanguage;
+				aEventProperties[0].Value <<= a;
+				aEventProperties[0].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_EVENT_TYPE ));
+
+				a <<= aMacroName;
+				aEventProperties[1].Value <<= a;
+				aEventProperties[1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_MACRO_NAME ));
+
+				if ( aLibrary.getLength() > 0 )
+				{
+					++nPropCount;
+					aEventProperties.realloc( nPropCount );
+					a <<= aLibrary;
+					aEventProperties[nPropCount-1].Value <<= a;
+					aEventProperties[nPropCount-1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_LIBRARY ));
+				}
+
+				if ( aURL.getLength() > 0 )
+				{				
+					++nPropCount;
+					aEventProperties.realloc( nPropCount );
+					a <<= aURL;
+					aEventProperties[nPropCount-1].Value <<= a;
+					aEventProperties[nPropCount-1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( PROP_SCRIPT ));
+				}
+
+				// set event name
+				m_aEventItems.aEventNames[ nIndex ] = aEventName;
+
+				m_aEventItems.aEventsProperties.realloc( nIndex + 1 );
+				a <<= aEventProperties;
+				m_aEventItems.aEventsProperties[ nIndex ] = a;
+			}
+			break;
+=====================================================================
+Found a 90 line (311 tokens) duplication in the following files: 
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/scaddins/source/analysis/analysishelper.cxx
+Starting at line 655 of /local/ooo-build/ooo-build/src/oog680-m3/scaddins/source/datefunc/datefunc.cxx
+
+            return aDaysInMonth[nMonth-1];
+    }
+}
+
+/**
+ * Convert a date to a count of days starting from 01/01/0001
+ *
+ * The internal representation of a Date used in this Addin
+ * is the number of days between 01/01/0001 and the date
+ * this function converts a Day , Month, Year representation
+ * to this internal Date value.
+ */
+
+sal_Int32 DateToDays( sal_uInt16 nDay, sal_uInt16 nMonth, sal_uInt16 nYear )
+{
+    sal_Int32 nDays = ((sal_Int32)nYear-1) * 365;
+    nDays += ((nYear-1) / 4) - ((nYear-1) / 100) + ((nYear-1) / 400);
+
+    for( sal_uInt16 i = 1; i < nMonth; i++ )
+        nDays += DaysInMonth(i,nYear);
+    nDays += nDay;
+
+    return nDays;
+}
+
+/**
+ * Convert a count of days starting from 01/01/0001 to a date
+ *
+ * The internal representation of a Date used in this Addin
+ * is the number of days between 01/01/0001 and the date
+ * this function converts this internal Date value
+ * to a Day , Month, Year representation of a Date.
+ */
+
+void DaysToDate( sal_Int32 nDays,
+                sal_uInt16& rDay, sal_uInt16& rMonth, sal_uInt16& rYear )
+        throw( lang::IllegalArgumentException )
+{
+    if( nDays < 0 )
+        throw lang::IllegalArgumentException();
+
+    sal_Int32   nTempDays;
+    sal_Int32   i = 0;
+    sal_Bool    bCalc;
+
+    do
+    {
+        nTempDays = nDays;
+        rYear = (sal_uInt16)((nTempDays / 365) - i);
+        nTempDays -= ((sal_Int32) rYear -1) * 365;
+        nTempDays -= (( rYear -1) / 4) - (( rYear -1) / 100) + ((rYear -1) / 400);
+        bCalc = sal_False;
+        if ( nTempDays < 1 )
+        {
+            i++;
+            bCalc = sal_True;
+        }
+        else
+        {
+            if ( nTempDays > 365 )
+            {
+                if ( (nTempDays != 366) || !IsLeapYear( rYear ) )
+                {
+                    i--;
+                    bCalc = sal_True;
+                }
+            }
+        }
+    }
+    while ( bCalc );
+
+    rMonth = 1;
+    while ( (sal_Int32)nTempDays > DaysInMonth( rMonth, rYear ) )
+    {
+        nTempDays -= DaysInMonth( rMonth, rYear );
+        rMonth++;
+    }
+    rDay = (sal_uInt16)nTempDays;
+}
+
+/**
+ * Get the null date used by the spreadsheet document
+ *
+ * The internal representation of a Date used in this Addin
+ * is the number of days between 01/01/0001 and the date
+ * this function returns this internal Date value for the document null date
+ *
+ */
+
+sal_Int32 GetNullDate( const uno::Reference< beans::XPropertySet >& xOptions )
+=====================================================================
+Found a 11 line (311 tokens) duplication in the following files: 
+Starting at line 1239 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,18,18,18,18, 0,// 1800 - 180f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1810 - 181f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1820 - 182f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1830 - 183f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1840 - 184f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1850 - 185f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 78 line (311 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		CPPU_CURRENT_NAMESPACE::raiseException(&aUnoExc, pThis->getBridge()->getUno2Cpp() );
+  	           // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32	nFunctionIndex,
+	sal_Int32	nVtableOffset,
+	void **	pCallStack,
+=====================================================================
+Found a 27 line (310 tokens) duplication in the following files: 
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+Starting at line 564 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+
+				const BYTE	cLz = (BYTE) VOS_BOUND( nLz, 0, 255 );
+
+				// fill mapping tables
+				pHMap[ 0 ] = 0;
+				for( nX = 1; nX <= nWidth; nX++ )
+					pHMap[ nX ] = nX - 1;
+				pHMap[ nWidth + 1 ] = nWidth - 1;
+
+				pVMap[ 0 ] = 0;
+				for( nY = 1; nY <= nHeight; nY++ )
+					pVMap[ nY ] = nY - 1;
+				pVMap[ nHeight + 1 ] = nHeight - 1;
+
+				for( nY = 0; nY < nHeight ; nY++ )
+				{
+					nGrey11 = pReadAcc->GetPixel( pVMap[ nY ], pHMap[ 0 ] ).GetIndex();
+					nGrey12 = pReadAcc->GetPixel( pVMap[ nY ], pHMap[ 1 ] ).GetIndex();
+					nGrey13 = pReadAcc->GetPixel( pVMap[ nY ], pHMap[ 2 ] ).GetIndex();
+					nGrey21 = pReadAcc->GetPixel( pVMap[ nY + 1 ], pHMap[ 0 ] ).GetIndex();
+					nGrey22 = pReadAcc->GetPixel( pVMap[ nY + 1 ], pHMap[ 1 ] ).GetIndex();
+					nGrey23 = pReadAcc->GetPixel( pVMap[ nY + 1 ], pHMap[ 2 ] ).GetIndex();
+					nGrey31 = pReadAcc->GetPixel( pVMap[ nY + 2 ], pHMap[ 0 ] ).GetIndex();
+					nGrey32 = pReadAcc->GetPixel( pVMap[ nY + 2 ], pHMap[ 1 ] ).GetIndex();
+					nGrey33 = pReadAcc->GetPixel( pVMap[ nY + 2 ], pHMap[ 2 ] ).GetIndex();
+
+					for( nX = 0; nX < nWidth; nX++ )
+					{
+=====================================================================
+Found a 29 line (310 tokens) duplication in the following files: 
+Starting at line 2975 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxat.cxx
+
+		if (!bFitToSize && (bWdtGrow || bHgtGrow)) {
+			Rectangle aR0(rR);
+			long nHgt=0,nMinHgt=0,nMaxHgt=0;
+			long nWdt=0,nMinWdt=0,nMaxWdt=0;
+			Size aSiz(rR.GetSize()); aSiz.Width()--; aSiz.Height()--;
+			Size aMaxSiz(100000,100000);
+			Size aTmpSiz(pModel->GetMaxObjSize());
+			if (aTmpSiz.Width()!=0) aMaxSiz.Width()=aTmpSiz.Width();
+			if (aTmpSiz.Height()!=0) aMaxSiz.Height()=aTmpSiz.Height();
+			if (bWdtGrow) {
+				nMinWdt=GetMinTextFrameWidth();
+				nMaxWdt=GetMaxTextFrameWidth();
+				if (nMaxWdt==0 || nMaxWdt>aMaxSiz.Width()) nMaxWdt=aMaxSiz.Width();
+				if (nMinWdt<=0) nMinWdt=1;
+				aSiz.Width()=nMaxWdt;
+			}
+			if (bHgtGrow) {
+				nMinHgt=GetMinTextFrameHeight();
+				nMaxHgt=GetMaxTextFrameHeight();
+				if (nMaxHgt==0 || nMaxHgt>aMaxSiz.Height()) nMaxHgt=aMaxSiz.Height();
+				if (nMinHgt<=0) nMinHgt=1;
+				aSiz.Height()=nMaxHgt;
+			}
+			long nHDist=GetTextLeftDistance()+GetTextRightDistance();
+			long nVDist=GetTextUpperDistance()+GetTextLowerDistance();
+			aSiz.Width()-=nHDist;
+			aSiz.Height()-=nVDist;
+			if (aSiz.Width()<2) aSiz.Width()=2;   // Mindestgroesse 2
+			if (aSiz.Height()<2) aSiz.Height()=2; // Mindestgroesse 2
+=====================================================================
+Found a 36 line (310 tokens) duplication in the following files: 
+Starting at line 5162 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4867 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+static const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] =
+{
+	{ 3590, 0 },
+	{ 0, 3590 },
+	{ 2 MSO_I, 3 MSO_I }, { 0, 8970 },
+	{ 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
+	{ 3590, 21600 },
+	{ 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
+	{ 12630, 21600 }, { 8 MSO_I, 9 MSO_I },	{ 18010, 21600 },
+	{ 21600, 18010 },	
+	{ 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
+	{ 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
+	{ 18010, 0 },
+	{ 14 MSO_I, 15 MSO_I }, { 12630, 0 },
+	{ 8970, 0 }, { 16 MSO_I, 17 MSO_I }
+};
+static const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] =
+{
+	0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] =
+{
+	{ { 800, 800 }, { 20800, 20800 } }
+};
+static const mso_CustomShape msoWedgeRRectCallout =
+{
+	(SvxMSDffVertPair*)mso_sptWedgeRRectCalloutVert, sizeof( mso_sptWedgeRRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptWedgeRRectCalloutSegm, sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
+	(SvxMSDffTextRectangles*)mso_sptWedgeRRectCalloutTextRect, sizeof( mso_sptWedgeRRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 64 line (310 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+IMPL_LINK_INLINE_START( SvInsertOleDlg, DoubleClickHdl, ListBox *, EMPTYARG )
+{
+	EndDialog( RET_OK );
+	return 0;
+}
+IMPL_LINK_INLINE_END( SvInsertOleDlg, DoubleClickHdl, ListBox *, pListBox )
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SvInsertOleDlg, BrowseHdl, PushButton *, EMPTYARG )
+{
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add filter
+            try
+            {
+                xFilterMgr->appendFilter(
+                     OUString(),
+                     OUString( RTL_CONSTASCII_USTRINGPARAM( "*.*" ) )
+                     );
+            }
+            catch( IllegalArgumentException& )
+            {
+                DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" );
+            }
+
+            if( xFilePicker->execute() == ExecutableDialogResults::OK )
+            {
+                Sequence< OUString > aPathSeq( xFilePicker->getFiles() );
+				INetURLObject aObj( aPathSeq[0] );
+				aEdFilepath.SetText( aObj.PathToFileName() );
+            }
+        }
+    }
+
+	return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SvInsertOleDlg, RadioHdl, RadioButton *, EMPTYARG )
+{
+	if ( aRbNewObject.IsChecked() )
+	{
+		aLbObjecttype.Show();
+		aEdFilepath.Hide();
+		aBtnFilepath.Hide();
+		aCbFilelink.Hide();
+		aGbObject.SetText( _aOldStr );
+	}
+	else
+	{
+=====================================================================
+Found a 56 line (309 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/longcurr.cxx
+
+				for ( i = (USHORT)(aStr.Len()-1); i > 0; i++ )
+				{
+					if ( (aStr.GetChar( i ) >= '0') && (aStr.GetChar( i ) <= '9') )
+						break;
+					else if ( aStr.GetChar( i ) == '-' )
+					{
+						bNegative = TRUE;
+						break;
+					}
+				}
+			}
+		}
+	}
+	else
+	{
+		if ( aStr1.GetChar( 0 ) == '-' )
+			bNegative = TRUE;
+	}
+
+	// Alle unerwuenschten Zeichen rauswerfen
+	for ( i=0; i < aStr1.Len(); )
+	{
+		if ( (aStr1.GetChar( i ) >= '0') && (aStr1.GetChar( i ) <= '9') )
+			i++;
+		else
+			aStr1.Erase( i, 1 );
+	}
+	for ( i=0; i < aStr2.Len(); )
+	{
+		if ( (aStr2.GetChar( i ) >= '0') && (aStr2.GetChar( i ) <= '9') )
+			i++;
+		else
+			aStr2.Erase( i, 1 );
+	}
+
+	if ( !aStr1.Len() && !aStr2.Len() )
+		return FALSE;
+
+	if ( !aStr1.Len() )
+		aStr1.Insert( '0' );
+	if ( bNegative )
+		aStr1.Insert( '-', 0 );
+
+	// Nachkommateil zurechtstutzen und dabei runden
+	BOOL bRound = FALSE;
+	if ( aStr2.Len() > nDecDigits )
+	{
+		if ( aStr2.GetChar( nDecDigits ) >= '5' )
+			bRound = TRUE;
+		aStr2.Erase( nDecDigits );
+	}
+	if ( aStr2.Len() < nDecDigits )
+		aStr2.Expand( nDecDigits, '0' );
+
+	aStr  = aStr1;
+	aStr += aStr2;
+=====================================================================
+Found a 57 line (309 tokens) duplication in the following files: 
+Starting at line 4133 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4340 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    nLineEnd = WW8_CP_MAX;
+    nManType = nType;
+    USHORT i;
+
+    if( MAN_MAINTEXT == nType )
+    {
+        // Suchreihenfolge der Attribute
+        nPLCF = MAN_ANZ_PLCF;
+        pFld = &aD[0];
+        pBkm = &aD[1];
+        pEdn = &aD[2];
+        pFtn = &aD[3];
+        pAnd = &aD[4];
+
+        pPcd = ( pBase->pPLCFx_PCD ) ? &aD[5] : 0;
+        //pPcdA index == pPcd index + 1
+        pPcdA = ( pBase->pPLCFx_PCDAttrs ) ? &aD[6] : 0;
+
+        pChp = &aD[7];
+        pPap = &aD[8];
+        pSep = &aD[9];
+
+        pSep->pPLCFx = pBase->pSepPLCF;
+        pFtn->pPLCFx = pBase->pFtnPLCF;
+        pEdn->pPLCFx = pBase->pEdnPLCF;
+        pBkm->pPLCFx = pBase->pBook;
+        pAnd->pPLCFx = pBase->pAndPLCF;
+
+    }
+    else
+    {
+        // Suchreihenfolge der Attribute
+        nPLCF = 7;
+        pFld = &aD[0];
+        pBkm = ( pBase->pBook ) ? &aD[1] : 0;
+
+        pPcd = ( pBase->pPLCFx_PCD ) ? &aD[2] : 0;
+        //pPcdA index == pPcd index + 1
+        pPcdA= ( pBase->pPLCFx_PCDAttrs ) ? &aD[3] : 0;
+
+        pChp = &aD[4];
+        pPap = &aD[5];
+        pSep = &aD[6]; // Dummy
+
+        pAnd = pFtn = pEdn = 0;     // unbenutzt bei SpezText
+    }
+
+    pChp->pPLCFx = pBase->pChpPLCF;
+    pPap->pPLCFx = pBase->pPapPLCF;
+    if( pPcd )
+        pPcd->pPLCFx = pBase->pPLCFx_PCD;
+    if( pPcdA )
+        pPcdA->pPLCFx= pBase->pPLCFx_PCDAttrs;
+    if( pBkm )
+        pBkm->pPLCFx = pBase->pBook;
+
+    pMagicTables = pBase->pMagicTables;
+=====================================================================
+Found a 11 line (309 tokens) duplication in the following files: 
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,18,18,18,18, 0,// 1800 - 180f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1810 - 181f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1820 - 182f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1830 - 183f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1840 - 184f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1850 - 185f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 8 line (309 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf4, 0x0032}, {0x00, 0x0000}, {0x00, 0x0000}, // 0340 - 0347
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0348 - 034f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0350 - 0357
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0358 - 035f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0360 - 0367
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0368 - 036f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0370 - 0377
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0378 - 037f
+=====================================================================
+Found a 65 line (309 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+=====================================================================
+Found a 43 line (308 tokens) duplication in the following files: 
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+			aRet <<= _xLBT->raiseException( aBool, aChar, nByte, nShort, nUShort, nLong, nULong,
+											nHyper, nUHyper, fFloat, fDouble, eEnum, aString, xInterface,
+											aAny, aSeq, aData );
+			
+			rOutParamIndex.realloc( 17 );
+			rOutParamIndex[0] = 0;
+			rOutParamIndex[1] = 1;
+			rOutParamIndex[2] = 2;
+			rOutParamIndex[3] = 3;
+			rOutParamIndex[4] = 4;
+			rOutParamIndex[5] = 5;
+			rOutParamIndex[6] = 6;
+			rOutParamIndex[7] = 7;
+			rOutParamIndex[8] = 8;
+			rOutParamIndex[9] = 9;
+			rOutParamIndex[10] = 10;
+			rOutParamIndex[11] = 11;
+			rOutParamIndex[12] = 12;
+			rOutParamIndex[13] = 13;
+			rOutParamIndex[14] = 14;
+			rOutParamIndex[15] = 15;
+			rOutParamIndex[16] = 16;
+			
+			rOutParam.realloc( 17 );
+			rOutParam[0].setValue( &aBool, ::getCppuBooleanType() );
+			rOutParam[1].setValue( &aChar, ::getCppuCharType() );
+			rOutParam[2] <<= nByte;
+			rOutParam[3] <<= nShort;
+			rOutParam[4] <<= nUShort;
+			rOutParam[5] <<= nLong;
+			rOutParam[6] <<= nULong;
+			rOutParam[7] <<= nHyper;
+			rOutParam[8] <<= nUHyper;
+			rOutParam[9] <<= fFloat;
+			rOutParam[10] <<= fDouble;
+			rOutParam[11] <<= eEnum;
+			rOutParam[12] <<= aString;
+			rOutParam[13] <<= xInterface;
+			rOutParam[14] <<= aAny;
+			rOutParam[15] <<= aSeq;
+			rOutParam[16] <<= aData;
+		}
+		else
+=====================================================================
+Found a 71 line (308 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
+
+        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 35 line (307 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                    y_hr += ry_inv;
+                    y_lr = ++m_wrap_mode_y;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)fg[order_type::A];
+
+                ++span;
+                ++intr;
+            } while(--len);
+            return base_type::allocator().span();
+        }
+
+    private:
+        WrapModeX m_wrap_mode_x;
+        WrapModeY m_wrap_mode_y;
+    };
+=====================================================================
+Found a 8 line (307 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02d0 - 02d7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02d8 - 02df
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02e0 - 02e7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02e8 - 02ef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02f0 - 02f7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 02f8 - 02ff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x9f, 0x0000}, // 0300 - 0307
+=====================================================================
+Found a 14 line (307 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // 9000 - 97ff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // 9800 - 9fff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // a000 - a7ff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // a800 - afff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // b000 - b7ff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // b800 - bfff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // c000 - c7ff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // c800 - cfff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // d000 - d7ff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // d800 - dfff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // e000 - e7ff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // e800 - efff
+      -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, // f000 - f7ff
+      -1,   -1,   -1, 0x0b,   -1,   -1,   -1, 0x0c, // f800 - ffff
+=====================================================================
+Found a 50 line (307 tokens) duplication in the following files: 
+Starting at line 878 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+				ExecuteFunc( mpDispFrame, L"dispose", NULL, 0, &dummyResult );
+				mpDispFrame = CComPtr<IDispatch>();
+			}
+
+            mParentWin = hwnd;
+            mOffWin = CreateWindow( 
+								STAROFFICE_WINDOWCLASS,
+								"OfficeContainer",
+								WS_CHILD | WS_CLIPCHILDREN | WS_BORDER,
+								di.prcBounds->left,
+								di.prcBounds->top,
+								di.prcBounds->right - di.prcBounds->left,
+								di.prcBounds->bottom - di.prcBounds->top,
+								mParentWin,
+								NULL,
+								NULL,
+								NULL );
+
+			::ShowWindow( mOffWin, SW_SHOW );
+        }
+        else
+        {
+            RECT aRect;
+            ::GetWindowRect( mOffWin, &aRect );
+            
+            if( aRect.left !=  di.prcBounds->left || aRect.top != di.prcBounds->top
+             || aRect.right != di.prcBounds->right || aRect.bottom != di.prcBounds->bottom )
+			{
+				// on this state the office window should exist already
+                ::SetWindowPos( mOffWin,
+                              HWND_TOP,
+							  di.prcBounds->left, 
+							  di.prcBounds->top, 
+							  di.prcBounds->right - di.prcBounds->left, 
+							  di.prcBounds->bottom - di.prcBounds->top,
+                              SWP_NOZORDER );
+
+				CComVariant aPosArgs[5];
+				aPosArgs[4] = CComVariant( 0 );
+				aPosArgs[3] = CComVariant( 0 );
+				aPosArgs[2] = CComVariant( int(di.prcBounds->right - di.prcBounds->left) );
+				aPosArgs[1] = CComVariant( int(di.prcBounds->bottom - di.prcBounds->top) );
+				aPosArgs[0] = CComVariant( 12 );
+				CComVariant dummyResult;
+				hr = ExecuteFunc( mpDispWin, L"setPosSize", aPosArgs, 5, &dummyResult );
+				if( !SUCCEEDED( hr ) ) return hr;
+			}
+        }                      
+
+		if( ! mpDispFrame )
+=====================================================================
+Found a 51 line (307 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/bootstrap/MNSINIParser.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/iniParser/main.cxx
+
+			osl_File_E_None == osl_openFile(iniUrl.pData, &handle, osl_File_OpenFlag_Read))
+		{
+			rtl::ByteSequence seq;
+			sal_uInt64 nSize = 0;
+
+			osl_getFileSize(handle, &nSize);
+			OUString sectionName = OUString::createFromAscii("no name section");
+			while (true)
+			{
+				sal_uInt64 nPos;
+				if (osl_File_E_None != osl_getFilePos(handle, &nPos) || nPos >= nSize)
+					break;
+				if (osl_File_E_None != osl_readLine(handle , (sal_Sequence **) &seq))
+					break;
+				OString line( (const sal_Char *) seq.getConstArray(), seq.getLength() );
+				sal_Int32 nIndex = line.indexOf('=');
+				if (nIndex >= 1)
+				{
+					ini_Section *aSection = &mAllSection[sectionName];
+					struct ini_NameValue nameValue;
+					nameValue.sName = OStringToOUString(
+						line.copy(0,nIndex).trim(), RTL_TEXTENCODING_ASCII_US );
+					nameValue.sValue = OStringToOUString(
+						line.copy(nIndex+1).trim(), RTL_TEXTENCODING_UTF8 );
+
+					aSection->lList.push_back(nameValue);
+
+				}
+				else
+				{
+					sal_Int32 nIndexStart = line.indexOf('[');
+					sal_Int32 nIndexEnd = line.indexOf(']');
+					if ( nIndexEnd > nIndexStart && nIndexStart >=0)
+					{
+						sectionName =  OStringToOUString(
+							line.copy(nIndexStart + 1,nIndexEnd - nIndexStart -1).trim(), RTL_TEXTENCODING_ASCII_US );
+						if (!sectionName.getLength())
+							sectionName = OUString::createFromAscii("no name section");
+
+						ini_Section *aSection = &mAllSection[sectionName];
+						aSection->sName = sectionName;
+					}
+				}
+			}
+			osl_closeFile(handle);
+		}
+#if OSL_DEBUG_LEVEL > 1
+		else
+		{
+			OString file_tmp = OUStringToOString(iniUrl, RTL_TEXTENCODING_ASCII_US);
+			OSL_TRACE( __FILE__" -- couldn't open file: %s", file_tmp.getStr() );
+=====================================================================
+Found a 77 line (307 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+                // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+=====================================================================
+Found a 34 line (306 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salframe.h
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salframe.h
+
+    virtual void                SetExtendedFrameStyle( SalExtStyle nExtStyle );
+    virtual void				Show( BOOL bVisible, BOOL bNoActivate = FALSE );
+    virtual void				Enable( BOOL bEnable );
+    virtual void                SetMinClientSize( long nWidth, long nHeight );
+    virtual void                SetMaxClientSize( long nWidth, long nHeight );
+    virtual void				SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags );
+    virtual void				GetClientSize( long& rWidth, long& rHeight );
+    virtual void				GetWorkArea( Rectangle& rRect );
+    virtual SalFrame*			GetParent() const;
+    virtual void				SetWindowState( const SalFrameState* pState );
+    virtual BOOL				GetWindowState( SalFrameState* pState );
+    virtual void				ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay );
+    virtual void				StartPresentation( BOOL bStart );
+    virtual void				SetAlwaysOnTop( BOOL bOnTop );
+    virtual void				ToTop( USHORT nFlags );
+    virtual void				SetPointer( PointerStyle ePointerStyle );
+    virtual void				CaptureMouse( BOOL bMouse );
+    virtual void				SetPointerPos( long nX, long nY );
+    virtual void				Flush();
+    virtual void				Sync();
+    virtual void				SetInputContext( SalInputContext* pContext );
+    virtual void				EndExtTextInput( USHORT nFlags );
+    virtual String				GetKeyName( USHORT nKeyCode );
+    virtual String				GetSymbolKeyName( const XubString& rFontName, USHORT nKeyCode );
+    virtual BOOL                MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
+    virtual LanguageType		GetInputLanguage();
+    virtual SalBitmap*			SnapShot();
+    virtual void				UpdateSettings( AllSettings& rSettings );
+    virtual void				Beep( SoundType eSoundType );
+    virtual const SystemEnvData*	GetSystemData() const;
+    virtual SalPointerState		GetPointerState();
+    virtual void				SetParent( SalFrame* pNewParent );
+    virtual bool				SetPluginParent( SystemParentData* pNewParent );
+    virtual void                SetBackgroundBitmap( SalBitmap* );
+=====================================================================
+Found a 80 line (306 tokens) duplication in the following files: 
+Starting at line 1393 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1364 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            }
+        }
+		else
+		{
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue = xAdditionalPropSet->getPropertyValue(
+																rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( bExchange )
+	{
+        uno::Reference< ucb::XContentIdentifier > xOldId
+            = m_xIdentifier;
+        uno::Reference< ucb::XContentIdentifier > xNewId
+            = makeNewIdentifier( m_aProps.getTitle() );
+
+		aGuard.clear();
+		if ( exchangeIdentity( xNewId ) )
+		{
+			// Adapt persistent data.
+			renameData( xOldId, xNewId );
+
+			// Adapt Additional Core Properties.
+            renameAdditionalPropertySet( xOldId->getContentIdentifier(),
+                                         xNewId->getContentIdentifier(),
+                                         sal_True );
+		}
+		else
+		{
+            // Roll-back.
+            m_aProps.setTitle( aOldTitle );
+=====================================================================
+Found a 52 line (306 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 581 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+      double* rowptr = a[irow];
+      a[irow] = a[icol];
+      a[icol] = rowptr;
+    }
+
+    indxr[i] = irow;
+    indxc[i] = icol;
+    if ( a[icol][icol] == 0 )
+    {
+      delete[] ipiv;
+      delete[] indxr;
+      delete[] indxc;
+      return 0;
+    }
+
+    pivinv = 1/a[icol][icol];
+    a[icol][icol] = 1;
+    for (k = 0; k < n; k++)
+      a[icol][k] *= pivinv;
+
+    for (j = 0; j < n; j++)
+    {
+      if ( j != icol )
+      {
+	save = a[j][icol];
+	a[j][icol] = 0;
+	for (k = 0; k < n; k++)
+	  a[j][k] -= a[icol][k]*save;
+      }
+    }
+  }
+
+  for (j = n-1; j >= 0; j--)
+  {
+    if ( indxr[j] != indxc[j] )
+    {
+      for (k = 0; k < n; k++)
+      {
+	save = a[k][indxr[j]];
+	a[k][indxr[j]] = a[k][indxc[j]];
+	a[k][indxc[j]] = save;
+      }
+    }
+  }
+
+  delete[] ipiv;
+  delete[] indxr;
+  delete[] indxc;
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystemD::Solve (int n, double** a, double* b)
+=====================================================================
+Found a 40 line (305 tokens) duplication in the following files: 
+Starting at line 2211 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1959 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+
+						Point aOrigin = aSrcMapMode.GetOrigin();
+						BigInt aX( aOrigin.X() );
+						aX *= BigInt( aScaleX.GetDenominator() );
+						if( aOrigin.X() >= 0 )
+						{
+							if( aScaleX.GetNumerator() >= 0 )
+								aX += BigInt( aScaleX.GetNumerator()/2 );
+							else
+								aX -= BigInt( (aScaleX.GetNumerator()+1)/2 );
+						}
+						else
+						{
+							if( aScaleX.GetNumerator() >= 0 )
+								aX -= BigInt( (aScaleX.GetNumerator()-1)/2 );
+							else
+								aX += BigInt( aScaleX.GetNumerator()/2 );
+						}
+
+						aX /= BigInt( aScaleX.GetNumerator() );
+						aOrigin.X() = (long)aX + aMM.GetOrigin().X();
+						BigInt aY( aOrigin.Y() );
+						aY *= BigInt( aScaleY.GetDenominator() );
+
+						if( aOrigin.Y() >= 0 )
+						{
+							if( aScaleY.GetNumerator() >= 0 )
+								aY += BigInt( aScaleY.GetNumerator()/2 );
+							else
+								aY -= BigInt( (aScaleY.GetNumerator()+1)/2 );
+						}
+						else
+						{
+							if( aScaleY.GetNumerator() >= 0 )
+								aY -= BigInt( (aScaleY.GetNumerator()-1)/2 );
+							else
+								aY += BigInt( aScaleY.GetNumerator()/2 );
+						}
+
+						aY /= BigInt( aScaleY.GetNumerator() );
+						aOrigin.Y() = (long)aY + aMM.GetOrigin().Y();
+=====================================================================
+Found a 74 line (305 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/pages.cxx
+Starting at line 576 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/license.cxx
+
+        aPBPageDown.Enable();
+        
+}
+
+
+LicenseView::LicenseView( Window* pParent, const ResId& rResId )
+    : MultiLineEdit( pParent, rResId )
+{
+    SetLeftMargin( 5 );
+
+    mbEndReached = IsEndReached();
+
+	StartListening( *GetTextEngine() );
+}
+
+LicenseView::~LicenseView()
+{
+    maEndReachedHdl = Link();
+    maScrolledHdl   = Link();
+
+    EndListeningAll();
+}
+
+void LicenseView::ScrollDown( ScrollType eScroll )
+{
+    ScrollBar*  pScroll = GetVScrollBar();
+
+    if ( pScroll )
+        pScroll->DoScrollAction( eScroll );
+}
+
+BOOL LicenseView::IsEndReached() const
+{
+    BOOL bEndReached;
+
+    ExtTextView*    pView = GetTextView();
+    ExtTextEngine*  pEdit = GetTextEngine();
+    ULONG           nHeight = pEdit->GetTextHeight();
+    Size            aOutSize = pView->GetWindow()->GetOutputSizePixel();
+    Point           aBottom( 0, aOutSize.Height() );
+
+    if ( (ULONG) pView->GetDocPos( aBottom ).Y() >= nHeight - 1 )
+        bEndReached = TRUE;
+    else
+        bEndReached = FALSE;
+
+    return bEndReached;
+}
+
+void LicenseView::Notify( SfxBroadcaster&, const SfxHint& rHint )
+{
+    if ( rHint.IsA( TYPE(TextHint) ) )
+    {
+        BOOL    bLastVal = EndReached();
+        ULONG   nId = ((const TextHint&)rHint).GetId();
+
+        if ( nId == TEXT_HINT_PARAINSERTED )
+        {
+            if ( bLastVal )
+                mbEndReached = IsEndReached();
+        }
+        else if ( nId == TEXT_HINT_VIEWSCROLLED )
+        {
+            if ( ! mbEndReached )
+                mbEndReached = IsEndReached();
+            maScrolledHdl.Call( this );
+        }
+
+        if ( EndReached() && !bLastVal )
+        {
+            maEndReachedHdl.Call( this );
+        }
+    }
+}
+=====================================================================
+Found a 64 line (304 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/misc/db.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/db.cxx
+
+    db_internal::check_error( db_create(&m_pDBP,0,0),"Db::Db" );
+}
+
+
+Db::~Db()
+{
+    if (m_pDBP)
+    {
+        // should not happen
+        // TODO: add assert
+    }
+  
+}
+
+
+int Db::close(u_int32_t flags)
+{
+    int error = m_pDBP->close(m_pDBP,flags);
+    m_pDBP = 0;
+    return db_internal::check_error(error,"Db::close"); 
+}
+
+int Db::open(DB_TXN *txnid, 
+			 const char *file,
+			 const char *database, 
+			 DBTYPE type, 
+			 u_int32_t flags, 
+			 int mode)
+{
+    int err = m_pDBP->open(m_pDBP,txnid,file,database,type,flags,mode);
+    return db_internal::check_error( err,"Db::open" );
+}
+
+	
+int Db::get(DB_TXN *txnid, Dbt *key, Dbt *data, u_int32_t flags)
+{
+    int err = m_pDBP->get(m_pDBP,txnid,key,data,flags);
+
+    // these are non-exceptional outcomes
+    if (err != DB_NOTFOUND && err != DB_KEYEMPTY) 
+        db_internal::check_error( err,"Db::get" );
+
+    return err;
+}
+
+int Db::put(DB_TXN* txnid, Dbt *key, Dbt *data, u_int32_t flags)
+{
+    int err = m_pDBP->put(m_pDBP,txnid,key,data,flags);
+
+    if (err != DB_KEYEXIST) // this is a non-exceptional outcome
+        db_internal::check_error( err,"Db::put" );
+    return err;
+}
+
+int Db::cursor(DB_TXN *txnid, Dbc **cursorp, u_int32_t flags)
+{
+    DBC * dbc = 0;
+    int error = m_pDBP->cursor(m_pDBP,txnid,&dbc,flags);
+  
+    if (!db_internal::check_error(error,"Db::cursor"))
+        *cursorp = new Dbc(dbc);
+
+    return error;
+}
+=====================================================================
+Found a 54 line (304 tokens) duplication in the following files: 
+Starting at line 1650 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+Starting at line 2152 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+
+		const basegfx::B2DPolygon aPolygon(aPolyPolygon.getB2DPolygon(nPolygon));
+		const sal_uInt32 nPointCount(aPolygon.count());
+
+		if(nPointCount)
+		{
+			if(aPolygon.areControlPointsUsed())
+			{
+				// prepare edge-based loop
+				basegfx::B2DPoint aCurrentPoint(aPolygon.getB2DPoint(0));
+				const sal_uInt32 nEdgeCount(aPolygon.isClosed() ? nPointCount - 1 : nPointCount);
+
+				// first vertex
+				path.move_to(aCurrentPoint.getX(), aCurrentPoint.getY());
+
+				for(sal_uInt32 a(0); a < nEdgeCount; a++)
+				{
+					// access next point
+					const sal_uInt32 nNextIndex((a + 1) % nPointCount);
+					const basegfx::B2DPoint aNextPoint(aPolygon.getB2DPoint(nNextIndex));
+
+					// get control points
+					const basegfx::B2DPoint aControlNext(aPolygon.getNextControlPoint(a));
+					const basegfx::B2DPoint aControlPrev(aPolygon.getPrevControlPoint(nNextIndex));
+
+					// specify first cp, second cp, next vertex
+					path.curve4(
+						aControlNext.getX(), aControlNext.getY(),
+						aControlPrev.getX(), aControlPrev.getY(),
+						aNextPoint.getX(), aNextPoint.getY());
+
+					// prepare next step
+					aCurrentPoint = aNextPoint;
+				}
+			}
+			else
+			{
+				const basegfx::B2DPoint aPoint(aPolygon.getB2DPoint(0));
+				ras.move_to_d(aPoint.getX(), aPoint.getY());
+
+				for(sal_uInt32 a(1); a < nPointCount; a++)
+				{
+					const basegfx::B2DPoint aVertexPoint(aPolygon.getB2DPoint(a));
+					ras.line_to_d(aVertexPoint.getX(), aVertexPoint.getY());
+				}
+
+				if(aPolygon.isClosed())
+				{
+					ras.close_polygon();
+				}
+			}
+		}
+	}
+
+	ras.add_path(curve);
+=====================================================================
+Found a 88 line (303 tokens) duplication in the following files: 
+Starting at line 1144 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 1705 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+USHORT SwScriptInfo::KashidaJustify( sal_Int32* pKernArray, sal_Int32* pScrArray,
+                                     xub_StrLen nStt, xub_StrLen nLen,
+                                     long nSpaceAdd ) const
+{
+    ASSERT( nLen, "Kashida justification without text?!" )
+
+    // evaluate kashida informatin in collected in SwScriptInfo
+
+    USHORT nCntKash = 0;
+    while( nCntKash < CountKashida() )
+    {
+        if ( nStt <= GetKashida( nCntKash ) )
+            break;
+        else
+            nCntKash++;
+    }
+
+    const xub_StrLen nEnd = nStt + nLen;
+
+    if ( ! pKernArray )
+    {
+        USHORT nCntKashEnd = nCntKash;
+        while ( nCntKashEnd < CountKashida() )
+        {
+            if ( nEnd <= GetKashida( nCntKashEnd ) )
+                break;
+            else
+                nCntKashEnd++;
+        }
+
+        return nCntKashEnd - nCntKash;
+    }
+
+    // do nothing if there is no more kashida
+    if ( nCntKash < CountKashida() )
+    {
+        xub_StrLen nKashidaPos = GetKashida( nCntKash );
+        xub_StrLen nIdx = nKashidaPos;
+        long nKashAdd = nSpaceAdd;
+
+        while ( nIdx < nEnd )
+        {
+            USHORT nArrayPos = nIdx - nStt;
+
+            // next kashida position
+            nIdx = ++nCntKash  < CountKashida() ? GetKashida( nCntKash ) : nEnd;
+            if ( nIdx > nEnd )
+                nIdx = nEnd;
+
+            const USHORT nArrayEnd = nIdx - nStt;
+
+            while ( nArrayPos < nArrayEnd )
+            {
+                pKernArray[ nArrayPos ] += nKashAdd;
+                if ( pScrArray )
+                   pScrArray[ nArrayPos ] += nKashAdd;
+                ++nArrayPos;
+            }
+
+            nKashAdd += nSpaceAdd;
+        }
+    }
+
+    return 0;
+}
+
+/*************************************************************************
+ *                      SwScriptInfo::IsArabicLanguage()
+ *************************************************************************/
+
+sal_Bool SwScriptInfo::IsArabicLanguage( LanguageType aLang )
+{
+    return LANGUAGE_ARABIC == aLang || LANGUAGE_ARABIC_SAUDI_ARABIA == aLang ||
+           LANGUAGE_ARABIC_IRAQ == aLang || LANGUAGE_ARABIC_EGYPT == aLang ||
+           LANGUAGE_ARABIC_LIBYA == aLang || LANGUAGE_ARABIC_ALGERIA == aLang ||
+           LANGUAGE_ARABIC_MOROCCO == aLang || LANGUAGE_ARABIC_TUNISIA == aLang ||
+           LANGUAGE_ARABIC_OMAN == aLang || LANGUAGE_ARABIC_YEMEN == aLang ||
+           LANGUAGE_ARABIC_SYRIA == aLang || LANGUAGE_ARABIC_JORDAN == aLang ||
+           LANGUAGE_ARABIC_LEBANON == aLang || LANGUAGE_ARABIC_KUWAIT == aLang ||
+           LANGUAGE_ARABIC_UAE == aLang || LANGUAGE_ARABIC_BAHRAIN == aLang ||
+           LANGUAGE_ARABIC_QATAR == aLang;
+}
+
+/*************************************************************************
+ *                      SwScriptInfo::ThaiJustify()
+ *************************************************************************/
+
+USHORT SwScriptInfo::ThaiJustify( const XubString& rTxt, sal_Int32* pKernArray,
+=====================================================================
+Found a 32 line (303 tokens) duplication in the following files: 
+Starting at line 2289 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2510 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+    result[0] = '\0';
+
+    PfxEntry* ep = (PfxEntry *) ppfx;
+
+    // first handle the special case of 0 length suffixes
+    SfxEntry * se = (SfxEntry *) sStart[0];
+    while (se) {
+        if (!cclass || se->getCont()) {
+	    // suffixes are not allowed in beginning of compounds
+            if (((((in_compound != IN_CPD_BEGIN)) || // && !cclass
+	     // except when signed with compoundpermitflag flag
+	     (se->getCont() && compoundpermitflag &&
+	        TESTAFF(se->getCont(),compoundpermitflag,se->getContLen()))) && (!circumfix ||
+              // no circumfix flag in prefix and suffix
+              ((!ppfx || !(ep->getCont()) || !TESTAFF(ep->getCont(),
+                   circumfix, ep->getContLen())) &&
+               (!se->getCont() || !(TESTAFF(se->getCont(),circumfix,se->getContLen())))) ||
+              // circumfix flag in prefix AND suffix
+              ((ppfx && (ep->getCont()) && TESTAFF(ep->getCont(),
+                   circumfix, ep->getContLen())) &&
+               (se->getCont() && (TESTAFF(se->getCont(),circumfix,se->getContLen())))))  &&
+            // fogemorpheme
+              (in_compound || 
+                 !((se->getCont() && (TESTAFF(se->getCont(), onlyincompound, se->getContLen()))))) &&
+	    // pseudoroot on prefix or first suffix
+	      (cclass || 
+                   !(se->getCont() && TESTAFF(se->getCont(), pseudoroot, se->getContLen())) ||
+                   (ppfx && !((ep->getCont()) &&
+                     TESTAFF(ep->getCont(), pseudoroot,
+                       ep->getContLen())))
+              )
+            ))
+=====================================================================
+Found a 65 line (303 tokens) duplication in the following files: 
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/license_dialog.cxx
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/pages.cxx
+
+LicenseView::LicenseView( Window* pParent, const ResId& rResId )
+    : MultiLineEdit( pParent, rResId )
+{
+    SetLeftMargin( 5 );
+    mbEndReached = IsEndReached();
+    StartListening( *GetTextEngine() );
+}
+
+LicenseView::~LicenseView()
+{
+    maEndReachedHdl = Link();
+    maScrolledHdl   = Link();
+    EndListeningAll();
+}
+
+void LicenseView::ScrollDown( ScrollType eScroll )
+{
+    ScrollBar*  pScroll = GetVScrollBar();
+    if ( pScroll )
+        pScroll->DoScrollAction( eScroll );
+}
+
+BOOL LicenseView::IsEndReached() const
+{
+    BOOL bEndReached;
+
+    ExtTextView*    pView = GetTextView();
+    ExtTextEngine*  pEdit = GetTextEngine();
+    ULONG           nHeight = pEdit->GetTextHeight();
+    Size            aOutSize = pView->GetWindow()->GetOutputSizePixel();
+    Point           aBottom( 0, aOutSize.Height() );
+
+    if ( (ULONG) pView->GetDocPos( aBottom ).Y() >= nHeight - 1 )
+        bEndReached = TRUE;
+    else
+        bEndReached = FALSE;
+
+    return bEndReached;
+}
+
+void LicenseView::Notify( SfxBroadcaster&, const SfxHint& rHint )
+{
+    if ( rHint.IsA( TYPE(TextHint) ) )
+    {
+        BOOL    bLastVal = EndReached();
+        ULONG   nId = ((const TextHint&)rHint).GetId();
+
+        if ( nId == TEXT_HINT_PARAINSERTED )
+        {
+            if ( bLastVal )
+                mbEndReached = IsEndReached();
+        }
+        else if ( nId == TEXT_HINT_VIEWSCROLLED )
+        {
+            if ( ! mbEndReached )
+                mbEndReached = IsEndReached();
+            maScrolledHdl.Call( this );
+        }
+
+        if ( EndReached() && !bLastVal )
+        {
+            maEndReachedHdl.Call( this );
+        }
+    }
+}
+=====================================================================
+Found a 37 line (301 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readRadioButtonModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x8 | 0x20 | 0x40 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (readProp( OUSTR("VisualEffect") ) >>= aStyle._visualEffect)
+        aStyle._set |= 0x40;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+    readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
+                    OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":value") ) );
+    readAlignAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
+                   OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":align") ) );
+    readVerticalAlignAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
+                           OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":valign") ) );
+    readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
+                    OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":image-src") ) );
+    readImagePositionAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ImagePosition") ),
+                           OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":image-position") ) );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":multiline") ) );
+=====================================================================
+Found a 11 line (301 tokens) duplication in the following files: 
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a400 - a40f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a410 - a41f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a420 - a42f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a430 - a43f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a440 - a44f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a450 - a45f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a460 - a46f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a470 - a47f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a480 - a48f
+=====================================================================
+Found a 73 line (301 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+                // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+=====================================================================
+Found a 68 line (300 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/editview.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/lingu/olmenu.cxx
+
+    uno::Reference< linguistic2::XLanguageGuessing > xLangGuess,
+	sal_Bool bIsParaText )
+{
+	LanguageType  nLang = LANGUAGE_NONE;
+	if (bIsParaText)	// check longer texts with language-guessing...
+	{
+		if (!xLangGuess.is())
+			return nLang;
+
+		lang::Locale aLocale( xLangGuess->guessPrimaryLanguage( rText, 0, rText.getLength()) );
+
+		// get language as from "Tools/Options - Language Settings - Languages: Locale setting"
+		LanguageType nTmpLang = Application::GetSettings().GetLanguage();
+
+		nLang = lcl_GuessLocale2Lang( aLocale );
+
+		// if the result from language guessing does not provide a 'Country' part
+		// try to get it by looking up the locale setting of the office.
+//		if (aLocale.Country.getLength() == 0)
+//		{
+//			lang::Locale aTmpLocale = SvxCreateLocale( nTmpLang );
+//			if (aTmpLocale.Language == aLocale.Language)
+//				nLang = nTmpLang;
+//		}
+//		if (nLang == LANGUAGE_NONE)	// language not found by looking up the sytem language...
+//		{
+//			nLang = MsLangId::convertLocaleToLanguage( aLocale );
+//		}
+		if (nLang == LANGUAGE_SYSTEM)
+			nLang = nTmpLang;
+		if (nLang == LANGUAGE_DONTKNOW)
+			nLang = LANGUAGE_NONE;
+	}
+	else	// check single word
+	{
+			if (!xSpell.is())
+			return nLang;
+
+		//
+		// build list of languages to check
+		//
+		LanguageType aLangList[4];
+		const AllSettings& rSettings  = Application::GetSettings();
+		SvtLinguOptions aLinguOpt;
+		SvtLinguConfig().GetOptions( aLinguOpt );
+		// The default document language from "Tools/Options - Language Settings - Languages: Western"
+		aLangList[0] = aLinguOpt.nDefaultLanguage;
+		// The one from "Tools/Options - Language Settings - Languages: User interface"
+		aLangList[1] = rSettings.GetUILanguage();
+		// The one from "Tools/Options - Language Settings - Languages: Locale setting"
+		aLangList[2] = rSettings.GetLanguage();
+		// en-US
+		aLangList[3] = LANGUAGE_ENGLISH_US;
+#ifdef DEBUG
+		lang::Locale a0( SvxCreateLocale( aLangList[0] ) );
+		lang::Locale a1( SvxCreateLocale( aLangList[1] ) );
+		lang::Locale a2( SvxCreateLocale( aLangList[2] ) );
+		lang::Locale a3( SvxCreateLocale( aLangList[3] ) );
+#endif
+
+		INT32   nCount = sizeof(aLangList) / sizeof(aLangList[0]);
+		for (INT32 i = 0;  i < nCount;  i++)
+		{
+			INT16 nTmpLang = aLangList[i];
+			if (nTmpLang != LANGUAGE_NONE  &&  nTmpLang != LANGUAGE_DONTKNOW)
+			{
+				if (xSpell->hasLanguage( nTmpLang ) &&
+                    xSpell->isValid( rText, nTmpLang, uno::Sequence< beans::PropertyValue >() ))
+=====================================================================
+Found a 44 line (300 tokens) duplication in the following files: 
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/cpp.h
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/cpp.h
+
+void expand(Tokenrow *, Nlist *, MacroValidatorList *);
+void builtin(Tokenrow *, int);
+int gatherargs(Tokenrow *, Tokenrow **, int *);
+void substargs(Nlist *, Tokenrow *, Tokenrow **);
+void expandrow(Tokenrow *, char *);
+void maketokenrow(int, Tokenrow *);
+Tokenrow *copytokenrow(Tokenrow *, Tokenrow *);
+Token *growtokenrow(Tokenrow *);
+Tokenrow *normtokenrow(Tokenrow *);
+void adjustrow(Tokenrow *, int);
+void movetokenrow(Tokenrow *, Tokenrow *);
+void insertrow(Tokenrow *, int, Tokenrow *);
+void peektokens(Tokenrow *, char *);
+void doconcat(Tokenrow *);
+Tokenrow *stringify(Tokenrow *);
+int lookuparg(Nlist *, Token *);
+long eval(Tokenrow *, int);
+void genline(void);
+void genimport(char *, int, char *, int);
+void genwrap(int);
+void setempty(Tokenrow *);
+void makespace(Tokenrow *, Token *);
+char *outnum(char *, int);
+int digit(int);
+uchar *newstring(uchar *, int, int);
+
+#define	rowlen(tokrow)	((tokrow)->lp - (tokrow)->bp)
+
+extern char *outptr;
+extern Token nltoken;
+extern Source *cursource;
+extern char *curtime;
+extern int incdepth;
+extern int ifdepth;
+extern int ifsatisfied[NIF];
+extern int Mflag;
+extern int Iflag;
+extern int Pflag;
+extern int Aflag;
+extern int Lflag;
+extern int Xflag;
+extern int Vflag;
+extern int Cflag;
+extern int Dflag;
+=====================================================================
+Found a 46 line (300 tokens) duplication in the following files: 
+Starting at line 36 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/tempnam.c
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/tos/tempnam.c
+
+static char  *seed="AAA";
+
+/* BSD stdio.h doesn't define P_tmpdir, so let's do it here */
+#ifndef P_tmpdir
+static char *P_tmpdir = "/tmp";
+#endif
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+     if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+	if( access( cpdir(p, P_tmpdir),   3) != 0 )
+	   if( access( cpdir(p, "/tmp"),  3) != 0 )
+	      return(NULL);
+
+   (void) strcat(p, "/");
+   if(prefix)
+   {
+      *(p+strlen(p)+5) = '\0';
+      (void)strncat(p, prefix, 5);
+   }
+
+   (void)strcat(p, seed);
+   (void)strcat(p, "XXXXXX");
+
+   q = seed;
+   while(*q == 'Z') *q++ = 'A';
+   ++*q;
+
+   if(*mktemp(p) == '\0') return(NULL);
+=====================================================================
+Found a 32 line (300 tokens) duplication in the following files: 
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+			::osl::Profile aProfile(sExecutable);
+
+			static ::rtl::OString	sSection("defaults");
+			static ::rtl::OString	sSourcePath("sourcepath");
+			static ::rtl::OString	sUpdatePath("updatepath");
+			static ::rtl::OString	sRootNode("rootnode");
+			static ::rtl::OString	sServerType("servertype");
+			static ::rtl::OString	sLocale("Locale");
+			static ::rtl::OString	sServer("Server");
+			static ::rtl::OString	sUser("User");
+			static ::rtl::OString	sPassword("Password");
+
+			// read some strings.
+			// Do this static because we want to redirect the global static character pointers to the buffers.
+			static ::rtl::OString s_sSourcePath	= aProfile.readString(sSection, sSourcePath, s_pSourcePath);
+			static ::rtl::OString s_sUpdatePath	= aProfile.readString(sSection, sUpdatePath, s_pUpdatePath);
+			static ::rtl::OString s_sRootNode	= aProfile.readString(sSection, sRootNode, s_pRootNode);
+			static ::rtl::OString s_sServerType	= aProfile.readString(sSection, sServerType, s_pServerType);
+			static ::rtl::OString s_sLocale		= aProfile.readString(sSection, sLocale, s_pLocale);
+			static ::rtl::OString s_sServer		= aProfile.readString(sSection, sServer, s_pServer);
+			static ::rtl::OString s_sUser		= aProfile.readString(sSection, sUser, s_pUser);
+			static ::rtl::OString s_sPassword	= aProfile.readString(sSection, sPassword, s_pPassword);
+
+			// do this redirection
+			s_pSourcePath	=	s_sSourcePath.getStr();
+			s_pUpdatePath	=	s_sUpdatePath.getStr();
+			s_pRootNode		=	s_sRootNode.getStr();
+			s_pServerType	=	s_sServerType.getStr();
+			s_pLocale		=	s_sLocale.getStr();
+			s_pServer		=	s_sServer.getStr();
+			s_pUser			=	s_sUser.getStr();
+			s_pPassword		=	s_sPassword.getStr();
+=====================================================================
+Found a 64 line (300 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+					m_options["-nD"] = OString("");
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'G':
+					if (av[i][2] == 'c')
+					{
+						if (av[i][3] != '\0')
+						{
+							OString tmp("'-Gc', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i]) + "'";
+							}
+
+							throw IllegalArgument(tmp);
+						}
+
+						m_options["-Gc"] = OString("");
+						break;
+					} else
+					if (av[i][2] != '\0')
+					{
+						OString tmp("'-G', please check");
+						if (i <= ac - 1)
+						{
+							tmp += " your input '" + OString(av[i]) + "'";
+						}
+
+						throw IllegalArgument(tmp);
+					}
+					
+					m_options["-G"] = OString("");
+					break;
+=====================================================================
+Found a 65 line (299 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+		return aId;
+	}
+    return rtl::OUString();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContentIdentifier >
+DataSupplier::queryContentIdentifier( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+            = m_pImpl->m_aResults[ nIndex ]->xId;
+		if ( xId.is() )
+		{
+			// Already cached.
+			return xId;
+		}
+	}
+
+    rtl::OUString aId = queryContentIdentifierString( nIndex );
+	if ( aId.getLength() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+            = new ::ucbhelper::ContentIdentifier( aId );
+		m_pImpl->m_aResults[ nIndex ]->xId = xId;
+		return xId;
+	}
+    return uno::Reference< ucb::XContentIdentifier >();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContent >
+DataSupplier::queryContent( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContent > xContent
+            = m_pImpl->m_aResults[ nIndex ]->xContent;
+		if ( xContent.is() )
+		{
+			// Already cached.
+			return xContent;
+		}
+	}
+
+    uno::Reference< ucb::XContentIdentifier > xId
+        = queryContentIdentifier( nIndex );
+	if ( xId.is() )
+	{
+		try
+		{
+            uno::Reference< ucb::XContent > xContent
+				= m_pImpl->m_xContent->getProvider()->queryContent( xId );
+			m_pImpl->m_aResults[ nIndex ]->xContent = xContent;
+			return xContent;
+
+		}
+        catch ( ucb::IllegalIdentifierException& )
+=====================================================================
+Found a 82 line (299 tokens) duplication in the following files: 
+Starting at line 595 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/lnkbase2.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/lnkbase2.cxx
+
+		xObj->RemoveAllDataAdvise( this );
+}
+
+
+ImplDdeItem::~ImplDdeItem()
+{
+	bIsInDTOR = TRUE;
+	// damit im Disconnect nicht jemand auf die Idee kommt, den Pointer zu
+	// loeschen!!
+	SvBaseLinkRef aRef( pLink );
+	aRef->Disconnect();
+}
+
+DdeData* ImplDdeItem::Get( ULONG nFormat )
+{
+	if( pLink->GetObj() )
+	{
+		// ist das noch gueltig?
+		if( bIsValidData && nFormat == aData.GetFormat() )
+			return &aData;
+
+		Any aValue;
+		String sMimeType( SotExchange::GetFormatMimeType( nFormat ));
+		if( pLink->GetObj()->GetData( aValue, sMimeType ) )
+		{
+			if( aValue >>= aSeq )
+			{
+				aData = DdeData( (const char *)aSeq.getConstArray(), aSeq.getLength(), nFormat );
+
+				bIsValidData = TRUE;
+				return &aData;
+			}
+		}
+	}
+	aSeq.realloc( 0 );
+	bIsValidData = FALSE;
+	return 0;
+}
+
+
+BOOL ImplDdeItem::Put( const DdeData*  )
+{
+	DBG_ERROR( "ImplDdeItem::Put not implemented" );
+	return FALSE;
+}
+
+
+void ImplDdeItem::AdviseLoop( BOOL bOpen )
+{
+	// Verbindung wird geschlossen, also Link abmelden
+	if( pLink->GetObj() )
+	{
+		if( bOpen )
+		{
+			// es wird wieder eine Verbindung hergestellt
+			if( OBJECT_DDE_EXTERN == pLink->GetObjType() )
+			{
+				pLink->GetObj()->AddDataAdvise( pLink, String::CreateFromAscii( "text/plain;charset=utf-16" ),	ADVISEMODE_NODATA );
+				pLink->GetObj()->AddConnectAdvise( pLink );
+			}
+		}
+		else
+		{
+			// damit im Disconnect nicht jemand auf die Idee kommt,
+			// den Pointer zu loeschen!!
+			SvBaseLinkRef aRef( pLink );
+			aRef->Disconnect();
+		}
+	}
+}
+
+
+static DdeTopic* FindTopic( const String & rLinkName, USHORT* pItemStt )
+{
+	if( 0 == rLinkName.Len() )
+		return 0;
+
+	String sNm( rLinkName );
+	USHORT nTokenPos = 0;
+	String sService(
+        sNm.GetToken(
+            0, sal::static_int_cast< sal_Unicode >(cTokenSeperator),
+=====================================================================
+Found a 54 line (299 tokens) duplication in the following files: 
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fudraw.cxx
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fudraw.cxx
+
+		mpView->SetDragWithCopy(rMEvt.IsMod1() && pFrameView->IsDragWithCopy());
+
+		BOOL bGridSnap = pFrameView->IsGridSnap();
+		bGridSnap = (bCntrl != bGridSnap);
+
+		if (mpView->IsGridSnap() != bGridSnap)
+			mpView->SetGridSnap(bGridSnap);
+
+		BOOL bBordSnap = pFrameView->IsBordSnap();
+		bBordSnap = (bCntrl != bBordSnap);
+
+		if (mpView->IsBordSnap() != bBordSnap)
+			mpView->SetBordSnap(bBordSnap);
+
+		BOOL bHlplSnap = pFrameView->IsHlplSnap();
+		bHlplSnap = (bCntrl != bHlplSnap);
+
+		if (mpView->IsHlplSnap() != bHlplSnap)
+			mpView->SetHlplSnap(bHlplSnap);
+
+		BOOL bOFrmSnap = pFrameView->IsOFrmSnap();
+		bOFrmSnap = (bCntrl != bOFrmSnap);
+
+		if (mpView->IsOFrmSnap() != bOFrmSnap)
+			mpView->SetOFrmSnap(bOFrmSnap);
+
+		BOOL bOPntSnap = pFrameView->IsOPntSnap();
+		bOPntSnap = (bCntrl != bOPntSnap);
+
+		if (mpView->IsOPntSnap() != bOPntSnap)
+			mpView->SetOPntSnap(bOPntSnap);
+
+		BOOL bOConSnap = pFrameView->IsOConSnap();
+		bOConSnap = (bCntrl != bOConSnap);
+
+		if (mpView->IsOConSnap() != bOConSnap)
+			mpView->SetOConSnap(bOConSnap);
+
+		BOOL bAngleSnap = rMEvt.IsShift() == !pFrameView->IsAngleSnapEnabled();
+
+		if (mpView->IsAngleSnapEnabled() != bAngleSnap)
+			mpView->SetAngleSnapEnabled(bAngleSnap);
+
+		if (mpView->IsOrtho() != bOrtho)
+			mpView->SetOrtho(bOrtho);
+
+		BOOL bCenter = rMEvt.IsMod2();
+
+		if ( mpView->IsCreate1stPointAsCenter() != bCenter ||
+			 mpView->IsResizeAtCenter() != bCenter )
+		{
+			mpView->SetCreate1stPointAsCenter(bCenter);
+			mpView->SetResizeAtCenter(bCenter);
+		}
+=====================================================================
+Found a 32 line (299 tokens) duplication in the following files: 
+Starting at line 2324 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2554 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+            rv = se->get_next_homonym(rv, sfxopts, ppfx, cclass, needflag);
+         }
+       }
+       se = se->getNext();
+    }
+  
+    // now handle the general case
+    unsigned char sp = *((const unsigned char *)(word + len - 1));
+    SfxEntry * sptr = (SfxEntry *) sStart[sp];
+
+    while (sptr) {
+        if (isRevSubset(sptr->getKey(), word + len - 1, len)
+        ) {
+	    // suffixes are not allowed in beginning of compounds
+            if (((((in_compound != IN_CPD_BEGIN)) || // && !cclass
+	     // except when signed with compoundpermitflag flag
+	     (sptr->getCont() && compoundpermitflag &&
+	        TESTAFF(sptr->getCont(),compoundpermitflag,sptr->getContLen()))) && (!circumfix ||
+              // no circumfix flag in prefix and suffix
+              ((!ppfx || !(ep->getCont()) || !TESTAFF(ep->getCont(),
+                   circumfix, ep->getContLen())) &&
+               (!sptr->getCont() || !(TESTAFF(sptr->getCont(),circumfix,sptr->getContLen())))) ||
+              // circumfix flag in prefix AND suffix
+              ((ppfx && (ep->getCont()) && TESTAFF(ep->getCont(),
+                   circumfix, ep->getContLen())) &&
+               (sptr->getCont() && (TESTAFF(sptr->getCont(),circumfix,sptr->getContLen())))))  &&
+            // fogemorpheme
+              (in_compound || 
+                 !((sptr->getCont() && (TESTAFF(sptr->getCont(), onlyincompound, sptr->getContLen()))))) &&
+	    // pseudoroot on first suffix
+	      (cclass || !(sptr->getCont() && 
+	           TESTAFF(sptr->getCont(), pseudoroot, sptr->getContLen())))
+=====================================================================
+Found a 11 line (299 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a400 - a40f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a410 - a41f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a420 - a42f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a430 - a43f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a440 - a44f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a450 - a45f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a460 - a46f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a470 - a47f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a480 - a48f
+=====================================================================
+Found a 67 line (298 tokens) duplication in the following files: 
+Starting at line 3433 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objstor.cxx
+Starting at line 3572 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objstor.cxx
+
+			else if ( xSource->isStorageElement( aSubElements[nInd] ) )
+			{
+				::rtl::OUString aMediaType;
+				::rtl::OUString aMediaTypePropName( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) );
+				sal_Bool bGotMediaType = sal_False;
+
+				try
+				{
+					uno::Reference< embed::XOptimizedStorage > xOptStorage( xSource, uno::UNO_QUERY_THROW );
+					bGotMediaType =
+						( xOptStorage->getElementPropertyValue( aSubElements[nInd], aMediaTypePropName ) >>= aMediaType );
+				}
+				catch( uno::Exception& )
+				{}
+
+				if ( !bGotMediaType )
+				{
+					uno::Reference< embed::XStorage > xSubStorage;
+					try {
+						xSubStorage = xSource->openStorageElement( aSubElements[nInd], embed::ElementModes::READ );
+					} catch( uno::Exception& )
+					{}
+
+					if ( !xSubStorage.is() )
+					{
+						// TODO/LATER: as optimization in future a substorage of target storage could be used
+						//             instead of the temporary storage; this substorage should be removed later
+						//             if the MimeType is wrong
+						xSubStorage = ::comphelper::OStorageHelper::GetTemporaryStorage();
+						xSource->copyStorageElementLastCommitTo( aSubElements[nInd], xSubStorage );
+					}
+
+					uno::Reference< beans::XPropertySet > xProps( xSubStorage, uno::UNO_QUERY_THROW );
+					bGotMediaType = ( xProps->getPropertyValue( aMediaTypePropName ) >>= aMediaType );
+				}
+
+				// TODO/LATER: there should be a way to detect whether an object with such a MediaType can exist
+				//             probably it should be placed in the MimeType-ClassID table or in standalone table
+				if ( aMediaType.getLength()
+				  && aMediaType.compareToAscii( "application/vnd.sun.star.oleobject" ) != COMPARE_EQUAL )
+				{
+					::com::sun::star::datatransfer::DataFlavor aDataFlavor;
+					aDataFlavor.MimeType = aMediaType;
+					sal_uInt32 nFormat = SotExchange::GetFormat( aDataFlavor );
+
+    				switch ( nFormat )
+    				{
+        				case SOT_FORMATSTR_ID_STARWRITER_60 :
+        				case SOT_FORMATSTR_ID_STARWRITERWEB_60 :
+        				case SOT_FORMATSTR_ID_STARWRITERGLOB_60 :
+        				case SOT_FORMATSTR_ID_STARDRAW_60 :
+        				case SOT_FORMATSTR_ID_STARIMPRESS_60 :
+        				case SOT_FORMATSTR_ID_STARCALC_60 :
+        				case SOT_FORMATSTR_ID_STARCHART_60 :
+        				case SOT_FORMATSTR_ID_STARMATH_60 :
+						case SOT_FORMATSTR_ID_STARWRITER_8:
+						case SOT_FORMATSTR_ID_STARWRITERWEB_8:
+						case SOT_FORMATSTR_ID_STARWRITERGLOB_8:
+						case SOT_FORMATSTR_ID_STARDRAW_8:
+						case SOT_FORMATSTR_ID_STARIMPRESS_8:
+						case SOT_FORMATSTR_ID_STARCALC_8:
+						case SOT_FORMATSTR_ID_STARCHART_8:
+						case SOT_FORMATSTR_ID_STARMATH_8:
+							break;
+
+						default:
+						{
+=====================================================================
+Found a 46 line (298 tokens) duplication in the following files: 
+Starting at line 527 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1415 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+            CPPUNIT_ASSERT_MESSAGE("sal_Unicode", (a >>= b) && b == '1');
+        }
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testString() {
+=====================================================================
+Found a 71 line (298 tokens) duplication in the following files: 
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		CPPU_CURRENT_NAMESPACE::raiseException(&aUnoExc, pThis->getBridge()->getUno2Cpp() );
+  	           // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+=====================================================================
+Found a 35 line (297 tokens) duplication in the following files: 
+Starting at line 1130 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/docsh2.cxx
+Starting at line 1201 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/docsh2.cxx
+
+					if ( nWhich == FN_OUTLINE_TO_IMPRESS )
+					{
+						uno::Reference< com::sun::star::lang::XMultiServiceFactory > xORB = ::comphelper::getProcessServiceFactory();
+						uno::Reference< com::sun::star::frame::XDispatchProvider > xProv(
+							xORB->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.drawing.ModuleDispatcher")), UNO_QUERY );
+						if ( xProv.is() )
+						{
+							::rtl::OUString aCmd = ::rtl::OUString::createFromAscii( "SendOutlineToImpress" );
+							uno::Reference< com::sun::star::frame::XDispatchHelper > xHelper(
+								xORB->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.frame.DispatchHelper")), UNO_QUERY );
+							if ( xHelper.is() )
+							{
+								pStrm->Seek( STREAM_SEEK_TO_END );
+								*pStrm << '\0';
+								pStrm->Seek( STREAM_SEEK_TO_BEGIN );
+
+								// Transfer ownership of stream to a lockbytes object
+								SvLockBytes aLockBytes( pStrm, TRUE );
+								SvLockBytesStat aStat;
+								if ( aLockBytes.Stat( &aStat, SVSTATFLAG_DEFAULT ) == ERRCODE_NONE )
+								{
+									sal_uInt32 nLen = aStat.nSize;
+									ULONG nRead = 0;
+									com::sun::star::uno::Sequence< sal_Int8 > aSeq( nLen );
+									aLockBytes.ReadAt( 0, aSeq.getArray(), nLen, &nRead );
+
+							        ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aArgs(1);
+									aArgs[0].Name = ::rtl::OUString::createFromAscii("RtfOutline");
+									aArgs[0].Value <<= aSeq;
+									xHelper->executeDispatch( xProv, aCmd, ::rtl::OUString(), 0, aArgs );
+								}
+							}
+						}
+					}
+					else
+=====================================================================
+Found a 11 line (297 tokens) duplication in the following files: 
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a400 - a40f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a410 - a41f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a420 - a42f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a430 - a43f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a440 - a44f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a450 - a45f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a460 - a46f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a470 - a47f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a480 - a48f
+=====================================================================
+Found a 69 line (297 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+                // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+=====================================================================
+Found a 41 line (296 tokens) duplication in the following files: 
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/xforms/xpathlib/xpathlib.cxx
+
+static sal_Bool parseDateTime(const OUString& aString, DateTime& aDateTime)
+{
+    // take apart a canonical literal xsd:dateTime string
+    //CCYY-MM-DDThh:mm:ss(Z)
+
+    OUString aDateTimeString = aString.trim();
+
+    // check length
+    if (aDateTimeString.getLength() < 19 || aDateTimeString.getLength() > 20)
+        return sal_False;
+
+    sal_Int32 nDateLength = 10;
+    sal_Int32 nTimeLength = 8;
+
+    OUString aDateTimeSep = OUString::createFromAscii("T");
+    OUString aDateSep = OUString::createFromAscii("-");
+    OUString aTimeSep = OUString::createFromAscii(":");
+    OUString aUTCString = OUString::createFromAscii("Z");
+
+    OUString aDateString = aDateTimeString.copy(0, nDateLength);
+    OUString aTimeString = aDateTimeString.copy(nDateLength+1, nTimeLength);
+
+    sal_Int32 nIndex = 0;
+    sal_Int32 nYear = aDateString.getToken(0, '-', nIndex).toInt32();
+    sal_Int32 nMonth = aDateString.getToken(0, '-', nIndex).toInt32();
+    sal_Int32 nDay = aDateString.getToken(0, '-', nIndex).toInt32();
+    nIndex = 0;
+    sal_Int32 nHour = aTimeString.getToken(0, ':', nIndex).toInt32();
+    sal_Int32 nMinute = aTimeString.getToken(0, ':', nIndex).toInt32();
+    sal_Int32 nSecond = aTimeString.getToken(0, ':', nIndex).toInt32();
+
+    Date tmpDate((USHORT)nDay, (USHORT)nMonth, (USHORT)nYear);
+    Time tmpTime(nHour, nMinute, nSecond);
+    DateTime tmpDateTime(tmpDate, tmpTime);
+    if (aString.indexOf(aUTCString) < 0)
+        tmpDateTime.ConvertToUTC();
+
+    aDateTime = tmpDateTime;
+
+    return sal_True;
+}
+=====================================================================
+Found a 11 line (295 tokens) duplication in the following files: 
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1423 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2e80 - 2e8f
+=====================================================================
+Found a 44 line (295 tokens) duplication in the following files: 
+Starting at line 328 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 529 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testShort() {
+=====================================================================
+Found a 59 line (295 tokens) duplication in the following files: 
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgupdate.cxx
+
+	aArgs[0] <<= configmgr::createPropertyValue(ASCII("nodepath"),sPath);		
+
+	cout << "starting update for node:" << sPath << endl;	
+
+	Reference< XNameAccess > xTree(xFactory->createInstanceWithArguments(OUString::createFromAscii("com.sun.star.configuration.ConfigurationUpdateAccess"),
+			aArgs), UNO_QUERY);
+
+	return xTree;
+}
+
+template <class Type>
+// -----------------------------------------------------------------------------
+void update(Reference< XInterface > xIFace, OUString sRelPath, Type sValue)
+{
+	Reference< XHierarchicalPropertySet > xTree(xIFace, UNO_QUERY);	
+	Any aValue;
+	aValue <<= sValue;
+
+	cout << "updating node:" << sRelPath << endl;
+	xTree->setHierarchicalPropertyValue(sRelPath, aValue);
+}
+
+// -----------------------------------------------------------------------------
+Reference< XHierarchicalPropertySet > insertTree(Reference< XInterface > xIFace, OUString aName)
+{
+	if (!aName.getLength())
+		aName =   enterValue("/nEnter a Tree to insert: ", "", false);	
+	
+	Reference< XSingleServiceFactory > xFactory(xIFace, UNO_QUERY);
+	Reference< XHierarchicalPropertySet > xNewElement(xFactory->createInstance(), UNO_QUERY);		
+
+	cout << "inserting new tree element:" << aName << endl;
+	
+	Any aTree;
+	aTree <<= xNewElement;
+	Reference< XNameContainer >(xFactory, UNO_QUERY)->insertByName(aName, aTree);		
+
+	return xNewElement;
+}
+
+// -----------------------------------------------------------------------------
+void removeTree(Reference< XInterface > xIFace, OUString aName)
+{
+	if (!aName.getLength())
+		aName =   enterValue("/nEnter a Tree to remove: ", "", false);	
+	
+	cout << "removing new tree element:" << aName << endl;
+	
+	Reference< XNameContainer >(xIFace, UNO_QUERY)->removeByName(aName);			
+}
+
+// -----------------------------------------------------------------------------
+void commitChanges(Reference< XInterface > xIFace)
+{
+	cout << "committing changes:" << endl;
+	
+	Reference< XChangesBatch > xChangesBatch(xIFace, UNO_QUERY);
+	xChangesBatch->commitChanges();	
+}
+=====================================================================
+Found a 45 line (294 tokens) duplication in the following files: 
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JDriver.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODriver.cxx
+
+				,::rtl::OUString()
+				,Sequence< ::rtl::OUString >())
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParameterNameSubstitution"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Change named parameters with '?'."))
+				,sal_False
+				,::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) )
+				,aBooleanValues)
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IgnoreDriverPrivileges"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Ignore the privileges from the database driver."))
+				,sal_False
+				,::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) )
+				,aBooleanValues)
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsAutoRetrievingEnabled"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Retrieve generated values."))
+				,sal_False
+				,::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) )
+				,aBooleanValues)
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AutoRetrievingStatement"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Auto-increment statement."))
+				,sal_False
+				,::rtl::OUString()
+				,Sequence< ::rtl::OUString >())
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GenerateASBeforeCorrelationName"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Generate AS before table correlation names."))
+				,sal_False
+				,::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) )
+				,aBooleanValues)
+				);
+		return Sequence< DriverPropertyInfo >(&aDriverInfo[0],aDriverInfo.size());
+	}
+	::dbtools::throwGenericSQLException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Invalid URL!")) ,*this);
+	return Sequence< DriverPropertyInfo >();
+}
+// --------------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODBCDriver::getMajorVersion(  ) throw(RuntimeException)
+=====================================================================
+Found a 75 line (294 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/Cservices.cxx
+
+	OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+			ODriver::getImplementationName_Static(),
+			ODriver::getSupportedServiceNames_Static(), xKey);
+
+		return sal_True;
+	}
+	catch (::com::sun::star::registry::InvalidRegistryException& )
+	{
+		OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+=====================================================================
+Found a 65 line (294 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 424 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+			 nStackLongs);
+		// NO exception occured...
+		*ppUnoExc = 0;
+
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch( ... )
+ 	{
+ 		// get exception
+		   fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
+								*ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+
+}
+
+namespace bridges { namespace cpp_uno { namespace shared {
+
+void unoInterfaceProxyDispatch(
+	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+    void * pReturn, void * pArgs[], uno_Any ** ppException )
+{
+=====================================================================
+Found a 36 line (293 tokens) duplication in the following files: 
+Starting at line 3044 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxat.cxx
+
+				rOutliner.Clear();
+			}
+			if (nWdt<nMinWdt) nWdt=nMinWdt;
+			if (nWdt>nMaxWdt) nWdt=nMaxWdt;
+			nWdt+=nHDist;
+			if (nWdt<1) nWdt=1; // nHDist kann auch negativ sein
+			if (nHgt<nMinHgt) nHgt=nMinHgt;
+			if (nHgt>nMaxHgt) nHgt=nMaxHgt;
+			nHgt+=nVDist;
+			if (nHgt<1) nHgt=1; // nVDist kann auch negativ sein
+			long nWdtGrow=nWdt-(rR.Right()-rR.Left());
+			long nHgtGrow=nHgt-(rR.Bottom()-rR.Top());
+			if (nWdtGrow==0) bWdtGrow=FALSE;
+			if (nHgtGrow==0) bHgtGrow=FALSE;
+			if (bWdtGrow || bHgtGrow) {
+				if (bWdtGrow) {
+					SdrTextHorzAdjust eHAdj=GetTextHorizontalAdjust();
+					if (eHAdj==SDRTEXTHORZADJUST_LEFT) rR.Right()+=nWdtGrow;
+					else if (eHAdj==SDRTEXTHORZADJUST_RIGHT) rR.Left()-=nWdtGrow;
+					else {
+						long nWdtGrow2=nWdtGrow/2;
+						rR.Left()-=nWdtGrow2;
+						rR.Right()=rR.Left()+nWdt;
+					}
+				}
+				if (bHgtGrow) {
+					SdrTextVertAdjust eVAdj=GetTextVerticalAdjust();
+					if (eVAdj==SDRTEXTVERTADJUST_TOP) rR.Bottom()+=nHgtGrow;
+					else if (eVAdj==SDRTEXTVERTADJUST_BOTTOM) rR.Top()-=nHgtGrow;
+					else {
+						long nHgtGrow2=nHgtGrow/2;
+						rR.Top()-=nHgtGrow2;
+						rR.Bottom()=rR.Top()+nHgt;
+					}
+				}
+				if (aGeo.nDrehWink!=0) {
+=====================================================================
+Found a 74 line (293 tokens) duplication in the following files: 
+Starting at line 552 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/selector.cxx
+Starting at line 1029 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/selector.cxx
+
+				try {
+					if ( rootNode->hasChildNodes() )
+					{
+						Sequence< Reference< browse::XBrowseNode > > children =
+							rootNode->getChildNodes();
+						BOOL bIsRootNode = FALSE;
+
+						OUString user = OUString::createFromAscii("user");
+						OUString share = OUString::createFromAscii("share");
+						if ( rootNode->getName().equals(OUString::createFromAscii("Root") ))
+						{
+							bIsRootNode = TRUE;
+						}
+
+						OUString sDisplayTitle;
+						OUString sModelTitle;
+						SfxObjectShell* pCurrentDoc = SfxObjectShell::GetWorkingDocument();
+						if ( pCurrentDoc )
+						{
+							sDisplayTitle = pCurrentDoc->GetTitle();
+                            //sModelTitle = xModelToDocTitle( pCurrentDoc->GetModel() );
+                            SvxScriptSelectorDialog::GetDocTitle( pCurrentDoc->GetModel(), sModelTitle );
+						}
+
+						if ( sDisplayTitle.getLength() == 0 && sModelTitle.getLength() != 0 )
+						{
+							sDisplayTitle = sModelTitle;
+						}
+
+                        for ( long n = 0; n < children.getLength(); n++ )
+						{
+							/* To mimic current starbasic behaviour we
+							need to make sure that only the current document
+							is displayed in the config tree. Tests below
+							set the bDisplay flag to FALSE if the current
+							node is a first level child of the Root and is NOT
+							either the current document, user or share */
+							Reference< browse::XBrowseNode >& theChild = children[n];
+
+                            //#139111# some crash reports show that it might be unset
+							if ( !theChild.is() )
+								continue;
+							::rtl::OUString uiName = theChild->getName();
+							BOOL bDisplay = TRUE;
+
+							if ( bIsRootNode )
+							{
+								if ( uiName.equals( sModelTitle ) )
+								{
+									uiName = sDisplayTitle;
+                                }
+                                else if ( uiName.equals( user ) )
+                                {
+                                    uiName = m_sMyMacros;
+                                }
+                                else if ( uiName.equals( share ) )
+                                {
+                                    uiName = m_sProdMacros;
+                                }
+								else
+								{
+									bDisplay = FALSE;
+								}
+                            }
+							if (children[n]->getType() != browse::BrowseNodeTypes::SCRIPT  && bDisplay )
+							{
+
+								/*
+									We call acquire on the XBrowseNode so that it does not
+									get autodestructed and become invalid when accessed later.
+								*/
+								theChild->acquire();
+
+                                SvxGroupInfo_Impl* _pGroupInfo =
+=====================================================================
+Found a 60 line (293 tokens) duplication in the following files: 
+Starting at line 676 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+Starting at line 763 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+
+    uno::Sequence< beans::PropertyValue > aPropSeq( 5 );
+
+    aPropSeq[0].Name = aDescriptorCommandURL;
+    aPropSeq[0].Value <<= rtl::OUString( pEntry->GetCommand() );
+
+    aPropSeq[1].Name = aDescriptorType;
+    aPropSeq[1].Value <<= css::ui::ItemType::DEFAULT;
+
+    // If the name has not been changed and the name is the same as
+    // in the default command to label map then the label can be stored
+    // as an empty string.
+    // It will be initialised again later using the command to label map.
+    aPropSeq[2].Name = aDescriptorLabel;
+    if ( pEntry->HasChangedName() == FALSE && pEntry->GetCommand().getLength() )
+    {
+        BOOL isDefaultName = FALSE;
+        try
+        {
+            uno::Any a( xCommandToLabelMap->getByName( pEntry->GetCommand() ) );
+            uno::Sequence< beans::PropertyValue > tmpPropSeq;
+            if ( a >>= tmpPropSeq )
+            {
+                for ( sal_Int32 i = 0; i < tmpPropSeq.getLength(); i++ )
+                {
+                    if ( tmpPropSeq[i].Name.equals( aDescriptorLabel ) )
+                    {
+                        OUString tmpLabel;
+                        tmpPropSeq[i].Value >>= tmpLabel;
+
+                        if ( tmpLabel.equals( pEntry->GetName() ) )
+                        {
+                            isDefaultName = TRUE;
+                        }
+
+                        break;
+                    }
+                }
+            }
+        }
+        catch ( container::NoSuchElementException& )
+        {
+            // isDefaultName is left as FALSE
+        }
+
+        if ( isDefaultName )
+        {
+            aPropSeq[2].Value <<= rtl::OUString();
+        }
+        else
+        {
+            aPropSeq[2].Value <<= rtl::OUString( pEntry->GetName() );
+        }
+    }
+    else
+    {
+        aPropSeq[2].Value <<= rtl::OUString( pEntry->GetName() );
+    }
+
+    aPropSeq[3].Name = aDescriptorHelpURL;
+    aPropSeq[3].Value <<= rtl::OUString( pEntry->GetHelpURL() );
+=====================================================================
+Found a 26 line (293 tokens) duplication in the following files: 
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+											   TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Bool; }
+    virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Byte; }
+    virtual sal_Unicode SAL_CALL getChar() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Char; }
+    virtual sal_Int16 SAL_CALL getShort() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Short; }
+    virtual sal_uInt16 SAL_CALL getUShort() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.UShort; }
+    virtual sal_Int32 SAL_CALL getLong() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Long; }
+    virtual sal_uInt32 SAL_CALL getULong() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.ULong; }
+    virtual sal_Int64 SAL_CALL getHyper() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Hyper; }
+    virtual sal_uInt64 SAL_CALL getUHyper() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.UHyper; }
+    virtual float SAL_CALL getFloat() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Float; }
+    virtual double SAL_CALL getDouble() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Double; }
+    virtual TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 11 line (293 tokens) duplication in the following files: 
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1218 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10e0 - 10ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10f0 - 10ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1600 - 160f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1610 - 161f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1630 - 163f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1650 - 165f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1660 - 166f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1670 - 167f
+=====================================================================
+Found a 12 line (293 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1397 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2660 - 266f
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2680 - 268f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 26 line (293 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+											   TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Bool; }
+    virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Byte; }
+    virtual sal_Unicode SAL_CALL getChar() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Char; }
+    virtual sal_Int16 SAL_CALL getShort() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Short; }
+    virtual sal_uInt16 SAL_CALL getUShort() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.UShort; }
+    virtual sal_Int32 SAL_CALL getLong() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Long; }
+    virtual sal_uInt32 SAL_CALL getULong() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.ULong; }
+    virtual sal_Int64 SAL_CALL getHyper() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Hyper; }
+    virtual sal_uInt64 SAL_CALL getUHyper() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.UHyper; }
+    virtual float SAL_CALL getFloat() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Float; }
+    virtual double SAL_CALL getDouble() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Double; }
+    virtual TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 77 line (293 tokens) duplication in the following files: 
+Starting at line 265 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->pUnoI->pDispatcher)( pThis->pUnoI, pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		raiseException( &aUnoExc, &pThis->pBridge->aUno2Cpp ); // has to destruct the any
+		// is here for dummy
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										&pThis->pBridge->aUno2Cpp );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										&pThis->pBridge->aUno2Cpp );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nVtableCall,
+	void ** pCallStack,
+=====================================================================
+Found a 24 line (292 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataPointProperties.cxx
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/FillProperties.cxx
+
+    uno::Any aSalInt16Zero = uno::makeAny( sal_Int16( 0 ));
+    uno::Any aSalInt32SizeDefault = uno::makeAny( sal_Int32( 0 ));
+
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_OFFSETX ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_OFFSETX ] = aSalInt16Zero;
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_OFFSETY ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_OFFSETY ] = aSalInt16Zero;
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETX ] = aSalInt16Zero;
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_POSITION_OFFSETY ] = aSalInt16Zero;
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_RECTANGLEPOINT ] =
+        uno::makeAny( drawing::RectanglePoint_MIDDLE_MIDDLE );
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_LOGICALSIZE ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_LOGICALSIZE ] =
+        uno::makeAny( true );
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_SIZEX ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_SIZEX ] = aSalInt32SizeDefault;
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_SIZEY ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_SIZEY ] = aSalInt32SizeDefault;
+    OSL_ASSERT( rOutMap.end() == rOutMap.find( FillProperties::PROP_FILL_BITMAP_MODE ));
+    rOutMap[ FillProperties::PROP_FILL_BITMAP_MODE ] =
+        uno::makeAny( drawing::BitmapMode_REPEAT );
+=====================================================================
+Found a 44 line (291 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+IMPL_LINK( SvInsertPlugInDialog, BrowseHdl, PushButton *, EMPTYARG )
+{
+    Sequence< OUString > aFilterNames, aFilterTypes;
+    void fillNetscapePluginFilters( Sequence< OUString >& rNames, Sequence< OUString >& rTypes );
+    fillNetscapePluginFilters( aFilterNames, aFilterTypes );
+
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add the filters
+            try
+            {
+                const OUString* pNames = aFilterNames.getConstArray();
+                const OUString* pTypes = aFilterTypes.getConstArray();
+                for( int i = 0; i < aFilterNames.getLength(); i++ )
+                    xFilterMgr->appendFilter( pNames[i], pTypes[i] );
+            }
+            catch( IllegalArgumentException& )
+            {
+                DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" );
+            }
+
+            if( xFilePicker->execute() == ExecutableDialogResults::OK )
+            {
+                Sequence< OUString > aPathSeq( xFilePicker->getFiles() );
+				INetURLObject aObj( aPathSeq[0] );
+				aEdFileurl.SetText( aObj.PathToFileName() );
+            }
+        }
+    }
+
+	return 0;
+}
+=====================================================================
+Found a 36 line (291 tokens) duplication in the following files: 
+Starting at line 1577 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/guisaveas.cxx
+Starting at line 1657 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/guisaveas.cxx
+
+	sal_Bool bIsModified = bNoModify && xModifiable->isModified();
+
+    try
+    {
+        uno::Reference< beans::XPropertySet > xSet( xDocInfoToFill, uno::UNO_QUERY );
+        uno::Reference< beans::XPropertyContainer > xContainer( xSet, uno::UNO_QUERY );
+        uno::Reference< beans::XPropertySetInfo > xSetInfo = xSet->getPropertySetInfo();
+        uno::Sequence< beans::Property > lProps = xSetInfo->getProperties();
+        const beans::Property* pProps = lProps.getConstArray();
+        sal_Int32 c = lProps.getLength();
+        sal_Int32 i = 0;
+        for (i=0; i<c; ++i)
+        {
+            uno::Any aValue = xPropSet->getPropertyValue( pProps[i].Name );
+            if ( pProps[i].Attributes & ::com::sun::star::beans::PropertyAttribute::REMOVABLE )
+                // QUESTION: DefaultValue?!
+                xContainer->addProperty( pProps[i].Name, pProps[i].Attributes, aValue );
+            try
+            {
+                // it is possible that the propertysets from XML and binary files differ; we shouldn't break then
+                xSet->setPropertyValue( pProps[i].Name, aValue );
+            }
+            catch ( uno::Exception& ) {}
+        }
+
+        sal_Int16 nCount = xDocInfo->getUserFieldCount();
+        sal_Int16 nSupportedCount = xDocInfoToFill->getUserFieldCount();
+        for ( sal_Int16 nInd = 0; nInd < nCount && nInd < nSupportedCount; nInd++ )
+        {
+            ::rtl::OUString aPropName = xDocInfo->getUserFieldName( nInd );
+            xDocInfoToFill->setUserFieldName( nInd, aPropName );
+            ::rtl::OUString aPropVal = xDocInfo->getUserFieldValue( nInd );
+            xDocInfoToFill->setUserFieldValue( nInd, aPropVal );
+        }
+    }
+    catch ( uno::Exception& ) {}
+=====================================================================
+Found a 70 line (291 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_socket.cxx
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/ctr_socket.cxx
+
+	template<class T>
+	void notifyListeners(SocketConnection * pCon, sal_Bool * notified, T t)
+	{
+  		XStreamListener_hash_set listeners;
+
+		{
+			::osl::MutexGuard guard(pCon->_mutex);
+			if(!*notified) 
+			{
+				*notified = sal_True;
+				listeners = pCon->_listeners;
+			}
+		}
+
+		::std::for_each(listeners.begin(), listeners.end(), t);
+	}
+
+
+	static void callStarted(Reference<XStreamListener> xStreamListener)
+	{
+		xStreamListener->started();
+	}
+
+	struct callError {
+		const Any & any;
+
+		callError(const Any & any);
+
+		void operator () (Reference<XStreamListener> xStreamListener);
+	};
+
+	callError::callError(const Any & aAny)
+		: any(aAny)
+	{
+	}
+
+	void callError::operator () (Reference<XStreamListener> xStreamListener)
+	{
+		xStreamListener->error(any);
+	}
+
+	static void callClosed(Reference<XStreamListener> xStreamListener)
+	{
+		xStreamListener->closed();
+	}
+
+	
+	SocketConnection::SocketConnection( const OUString &sConnectionDescription ) :
+		m_nStatus( 0 ),
+		m_sDescription( sConnectionDescription ),
+		_started(sal_False),
+		_closed(sal_False),
+		_error(sal_False)
+	{
+		// make it unique
+		g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
+		m_sDescription += OUString( RTL_CONSTASCII_USTRINGPARAM( ",uniqueValue=" ) );
+		m_sDescription += OUString::valueOf(
+            sal::static_int_cast< sal_Int64 >(
+                reinterpret_cast< sal_IntPtr >(&m_socket)),
+            10 );
+	}
+
+	SocketConnection::~SocketConnection()
+	{
+		g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
+	}
+	
+	void SocketConnection::completeConnectionString()
+	{
+=====================================================================
+Found a 12 line (291 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1397 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2660 - 266f
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2680 - 268f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 11 line (291 tokens) duplication in the following files: 
+Starting at line 619 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c00 - 2c0f      Block index 0x26
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c10 - 2c1f      (Coptic inserted)
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c20 - 2c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c30 - 2c3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c40 - 2c4f
+=====================================================================
+Found a 11 line (291 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0,// 1690 - 169f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16a0 - 16af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16b0 - 16bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16c0 - 16cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16d0 - 16df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16e0 - 16ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+=====================================================================
+Found a 76 line (290 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linksrc.cxx
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linksrc.cxx
+
+{
+
+TYPEINIT0( SvLinkSource )
+
+/************** class SvLinkSourceTimer *********************************/
+class SvLinkSourceTimer : public Timer
+{
+	SvLinkSource *  pOwner;
+	virtual void    Timeout();
+public:
+			SvLinkSourceTimer( SvLinkSource * pOwn );
+};
+
+SvLinkSourceTimer::SvLinkSourceTimer( SvLinkSource * pOwn )
+	: pOwner( pOwn )
+{
+}
+
+void SvLinkSourceTimer::Timeout()
+{
+	// sicher gegen zerstoeren im Handler
+	SvLinkSourceRef aAdv( pOwner );
+	pOwner->SendDataChanged();
+}
+
+static void StartTimer( SvLinkSourceTimer ** ppTimer, SvLinkSource * pOwner,
+						ULONG nTimeout )
+{
+	if( !*ppTimer )
+	{
+		*ppTimer = new SvLinkSourceTimer( pOwner );
+		(*ppTimer)->SetTimeout( nTimeout );
+		(*ppTimer)->Start();
+	}
+}
+
+
+struct SvLinkSource_Entry_Impl
+{
+	SvBaseLinkRef		xSink;
+	String				aDataMimeType;
+	USHORT				nAdviseModes;
+	BOOL 				bIsDataSink;
+
+	SvLinkSource_Entry_Impl( SvBaseLink* pLink, const String& rMimeType,
+								USHORT nAdvMode )
+		: xSink( pLink ), aDataMimeType( rMimeType ),
+			nAdviseModes( nAdvMode ), bIsDataSink( TRUE )
+	{}
+
+	SvLinkSource_Entry_Impl( SvBaseLink* pLink )
+		: xSink( pLink ), nAdviseModes( 0 ), bIsDataSink( FALSE )
+	{}
+
+	~SvLinkSource_Entry_Impl();
+};
+
+SvLinkSource_Entry_Impl::~SvLinkSource_Entry_Impl()
+{
+}
+
+typedef SvLinkSource_Entry_Impl* SvLinkSource_Entry_ImplPtr;
+SV_DECL_PTRARR_DEL( SvLinkSource_Array_Impl, SvLinkSource_Entry_ImplPtr, 4, 4 )
+SV_IMPL_PTRARR( SvLinkSource_Array_Impl, SvLinkSource_Entry_ImplPtr );
+
+class SvLinkSource_EntryIter_Impl
+{
+	SvLinkSource_Array_Impl aArr;
+	const SvLinkSource_Array_Impl& rOrigArr;
+	USHORT nPos;
+public:
+	SvLinkSource_EntryIter_Impl( const SvLinkSource_Array_Impl& rArr );
+	~SvLinkSource_EntryIter_Impl();
+	SvLinkSource_Entry_Impl* Curr()
+							{ return nPos < aArr.Count() ? aArr[ nPos ] : 0; }
+	SvLinkSource_Entry_Impl* Next();
+=====================================================================
+Found a 65 line (290 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+    m_nHashCode_Style_DropDownOnly  = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_DROPDOWNONLY ).hashCode();
+
+	m_bToolBarStartFound			= sal_False;
+	m_bToolBarEndFound				= sal_False;
+	m_bToolBarItemStartFound		= sal_False;
+	m_bToolBarSpaceStartFound		= sal_False;
+	m_bToolBarBreakStartFound		= sal_False;
+	m_bToolBarSeparatorStartFound	= sal_False;
+}
+
+OReadToolBoxDocumentHandler::~OReadToolBoxDocumentHandler()
+{
+}
+
+Any SAL_CALL OReadToolBoxDocumentHandler::queryInterface( const Type & rType )
+throw( RuntimeException )
+{
+	Any a = ::cppu::queryInterface(
+				rType ,
+				SAL_STATIC_CAST( XDocumentHandler*, this ));
+	if ( a.hasValue() )
+		return a;
+
+	return OWeakObject::queryInterface( rType );
+}
+
+// XDocumentHandler
+void SAL_CALL OReadToolBoxDocumentHandler::startDocument(void)
+throw (	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadToolBoxDocumentHandler::endDocument(void)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	if (( m_bToolBarStartFound && !m_bToolBarEndFound ) ||
+		( !m_bToolBarStartFound && m_bToolBarEndFound )		)
+	{
+		OUString aErrorMessage = getErrorLineString();
+		aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'toolbar' found!" ));
+		throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+	}
+}
+
+void SAL_CALL OReadToolBoxDocumentHandler::startElement(
+	const OUString& aName, const Reference< XAttributeList > &xAttribs )
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	ToolBoxHashMap::const_iterator pToolBoxEntry = m_aToolBoxMap.find( aName ) ;
+	if ( pToolBoxEntry != m_aToolBoxMap.end() )
+	{
+		switch ( pToolBoxEntry->second )
+		{
+			case TB_ELEMENT_TOOLBAR:
+			{
+				if ( m_bToolBarStartFound )
+				{
+				    OUString aErrorMessage = getErrorLineString();
+				    aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'toolbar:toolbar' cannot be embeded into 'toolbar:toolbar'!" ));
+				    throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+=====================================================================
+Found a 30 line (289 tokens) duplication in the following files: 
+Starting at line 3541 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3175 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] =
+{
+	{ 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 },
+	{ 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 },
+	{ 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 },
+	{ 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 },
+	{ 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 },
+	{ 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 }
+};
+static const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] =
+{
+	{ { 4680, 6570 }, { 16140, 13280 } }
+};
+static const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] =
+{
+	{ 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 }
+};
+static const mso_CustomShape msoIrregularSeal1 =
+{
+	(SvxMSDffVertPair*)mso_sptIrregularSeal1Vert, sizeof( mso_sptIrregularSeal1Vert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0, 
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptIrregularSeal1TextRect, sizeof( mso_sptIrregularSeal1TextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptIrregularSeal1GluePoints, sizeof( mso_sptIrregularSeal1GluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 14 line (289 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_PAGESTL),	SC_WID_UNO_PAGESTL,	&getCppuType((rtl::OUString*)0),		0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PRINTBORD),SC_WID_UNO_PRINTBORD,&getBooleanCppuType(),					0, 0 },
+=====================================================================
+Found a 11 line (289 tokens) duplication in the following files: 
+Starting at line 1274 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2680 - 268f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 11 line (289 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0, 0, 0, 0,// 00f0 - 00ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0200 - 020f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0210 - 021f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0220 - 022f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0230 - 023f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0240 - 024f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0250 - 025f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0260 - 026f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0270 - 027f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+=====================================================================
+Found a 60 line (289 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'G':
+					if (av[i][2] == 'c')
+=====================================================================
+Found a 85 line (288 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/ostring/rtl_OString2.cxx
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/oustring/rtl_OUString2.cxx
+
+            sValue <<= suValue;
+            t_print(T_VERBOSE, "nDouble := %.20f  sValue := %s\n", _nValue, sValue.getStr());
+
+            double nValueATOF = atof( sValue.getStr() );
+            
+            bool bEqualResult = is_double_equal(_nValue, nValueATOF);
+            CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true);
+        }
+    
+    void valueOf_double_test(double _nValue)
+        {
+            valueOf_double_test_impl(_nValue);
+            
+            // test also the negative part.
+            double nNegativeValue = -_nValue;
+            valueOf_double_test_impl(nNegativeValue);
+        }
+public:
+    
+    // valueOf double
+    void valueOf_double_test_001()
+        {
+            double nValue = 3.0;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_002()
+        {
+            double nValue = 3.5;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_003()
+        {
+            double nValue = 3.0625;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_004()
+        {
+            double nValue = 3.1415926535;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_005()
+        {
+            double nValue = 3.141592653589793;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_006()
+        {
+            double nValue = 3.1415926535897932;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_007()
+        {
+            double nValue = 3.14159265358979323;
+            valueOf_double_test(nValue);
+        }
+    void valueOf_double_test_008()
+        {
+            double nValue = 3.141592653589793238462643;
+            valueOf_double_test(nValue);
+        }
+
+
+    // Change the following lines only, if you add, remove or rename 
+    // member functions of the current class, 
+    // because these macros are need by auto register mechanism.
+
+    CPPUNIT_TEST_SUITE(valueOf);
+    CPPUNIT_TEST(valueOf_float_test_001);
+    CPPUNIT_TEST(valueOf_float_test_002);
+    CPPUNIT_TEST(valueOf_float_test_003);
+    CPPUNIT_TEST(valueOf_float_test_004);
+    CPPUNIT_TEST(valueOf_float_test_005);
+    CPPUNIT_TEST(valueOf_float_test_006);
+    CPPUNIT_TEST(valueOf_float_test_007);
+
+    CPPUNIT_TEST(valueOf_double_test_001);
+    CPPUNIT_TEST(valueOf_double_test_002);
+    CPPUNIT_TEST(valueOf_double_test_003);
+    CPPUNIT_TEST(valueOf_double_test_004);
+    CPPUNIT_TEST(valueOf_double_test_005);
+    CPPUNIT_TEST(valueOf_double_test_006);
+    CPPUNIT_TEST(valueOf_double_test_007);
+    CPPUNIT_TEST(valueOf_double_test_008);
+    CPPUNIT_TEST_SUITE_END();
+}; // class valueOf
+=====================================================================
+Found a 75 line (288 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+void callVirtualMethod(
+    void * pAdjustedThisPtr,
+    sal_Int32 nVtableIndex,
+    void * pRegisterReturn,
+    typelib_TypeClass eReturnType,
+    sal_Int32 * pStackLongs,
+    sal_Int32 nStackLongs )
+{
+	// parameter list is mixed list of * and values
+	// reference parameters are pointers
+    
+	OSL_ENSURE( pStackLongs && pAdjustedThisPtr, "### null ptr!" );
+	OSL_ENSURE( (sizeof(void *) == 4) && (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
+	OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
+    
+    // never called
+    if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
+
+	volatile long edx = 0, eax = 0; // for register returns
+    void * stackptr;
+	asm volatile (
+        "mov   %%esp, %6\n\t"
+		// copy values
+		"mov   %0, %%eax\n\t"
+		"mov   %%eax, %%edx\n\t"
+		"dec   %%edx\n\t"
+		"shl   $2, %%edx\n\t"
+		"add   %1, %%edx\n"
+		"Lcopy:\n\t"
+		"pushl 0(%%edx)\n\t"
+		"sub   $4, %%edx\n\t"
+		"dec   %%eax\n\t"
+		"jne   Lcopy\n\t"
+		// do the actual call
+		"mov   %2, %%edx\n\t"
+		"mov   0(%%edx), %%edx\n\t"
+		"mov   %3, %%eax\n\t"
+		"shl   $2, %%eax\n\t"
+		"add   %%eax, %%edx\n\t"
+		"mov   0(%%edx), %%edx\n\t"
+		"call  *%%edx\n\t"
+		// save return registers
+ 		"mov   %%eax, %4\n\t"
+ 		"mov   %%edx, %5\n\t"
+		// cleanup stack
+        "mov   %6, %%esp\n\t"
+		:
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
+          "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+=====================================================================
+Found a 72 line (288 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+
+    void * m_hApp;
+
+public:
+    RTTI() SAL_THROW( () );
+    ~RTTI() SAL_THROW( () );
+
+    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+RTTI::RTTI() SAL_THROW( () )
+    : m_hApp( dlopen( 0, RTLD_LAZY ) )
+=====================================================================
+Found a 42 line (287 tokens) duplication in the following files: 
+Starting at line 415 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/swpossizetabpage.cxx
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/frmdlg/frmpage.cxx
+
+		int aSizeOf = sizeof(FrmMap);
+		if( pMap == aVParaHtmlMap)
+			return sizeof(aVParaHtmlMap) / aSizeOf;
+		if( pMap == aVAsCharHtmlMap)
+			return sizeof(aVAsCharHtmlMap) / aSizeOf;
+		if( pMap == aHParaHtmlMap)
+			return sizeof(aHParaHtmlMap) / aSizeOf;
+		if( pMap == aHParaHtmlAbsMap)
+			return sizeof(aHParaHtmlAbsMap) / aSizeOf;
+		if ( pMap == aVPageMap )
+			return sizeof(aVPageMap) / aSizeOf;
+		if ( pMap == aVPageHtmlMap )
+			return sizeof(aVPageHtmlMap) / aSizeOf;
+		if ( pMap == aVAsCharMap )
+			return sizeof(aVAsCharMap) / aSizeOf;
+		if ( pMap == aVParaMap )
+			return sizeof(aVParaMap) / aSizeOf;
+		if ( pMap == aHParaMap )
+			return sizeof(aHParaMap) / aSizeOf;
+		if ( pMap == aHFrameMap )
+			return sizeof(aHFrameMap) / aSizeOf;
+        // OD 19.09.2003 #i18732# - own vertical alignment map for to frame anchored objects
+        if ( pMap == aVFrameMap )
+            return sizeof(aVFrameMap) / aSizeOf;
+		if ( pMap == aHCharMap )
+			return sizeof(aHCharMap) / aSizeOf;
+		if ( pMap == aHCharHtmlMap )
+			return sizeof(aHCharHtmlMap) / aSizeOf;
+		if ( pMap == aHCharHtmlAbsMap )
+			return sizeof(aHCharHtmlAbsMap) / aSizeOf;
+		if ( pMap == aVCharMap )
+			return sizeof(aVCharMap) / aSizeOf;
+		if ( pMap == aVCharHtmlMap )
+			return sizeof(aVCharHtmlMap) / aSizeOf;
+		if ( pMap == aVCharHtmlAbsMap )
+			return sizeof(aVCharHtmlAbsMap) / aSizeOf;
+		if ( pMap == aHPageHtmlMap )
+			return sizeof(aHPageHtmlMap) / aSizeOf;
+		if ( pMap == aHFlyHtmlMap )
+			return sizeof(aHFlyHtmlMap) / aSizeOf;
+		if ( pMap == aVFlyHtmlMap )
+			return sizeof(aVFlyHtmlMap) / aSizeOf;
+=====================================================================
+Found a 27 line (287 tokens) duplication in the following files: 
+Starting at line 2605 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2327 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
+	{ 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonDocumentSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+
+	0x4000, 0x0004, 0x6001, 0x8000,
+	0x4000, 0x0002, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 20 line (287 tokens) duplication in the following files: 
+Starting at line 1715 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1511 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] =
+{
+	{ 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I },
+	{ 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I },
+	{ 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I },
+	{ 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I },
+	{ 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I },
+	{ 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
+};
+static const sal_uInt16 mso_sptQuadArrowCalloutSegm[] =
+{
+	0x4000, 0x001f, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 11 line (287 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 620 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2680 - 268f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,27,27,27,27, 0,27,27,27,27, 0, 0,27,27,27,27,// 2700 - 270f
+=====================================================================
+Found a 62 line (287 tokens) duplication in the following files: 
+Starting at line 2735 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 3486 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+	return ret;
+}
+
+//*************************************************************************
+// scopedName
+//*************************************************************************
+OString scopedName(const OString& scope, const OString& type,
+				   sal_Bool bNoNameSpace)
+{
+    sal_Int32 nPos = type.lastIndexOf( '/' );
+	if (nPos == -1)
+		return type;
+
+	if (bNoNameSpace)
+		return type.copy(nPos+1);
+
+	OStringBuffer tmpBuf(type.getLength()*2);
+    nPos = 0;
+    do
+	{
+		tmpBuf.append("::");
+		tmpBuf.append(type.getToken(0, '/', nPos));
+	} while( nPos != -1 );
+
+	return tmpBuf.makeStringAndClear();
+}
+
+//*************************************************************************
+// shortScopedName
+//*************************************************************************
+OString shortScopedName(const OString& scope, const OString& type,
+				   		sal_Bool bNoNameSpace)
+{
+    sal_Int32 nPos = type.lastIndexOf( '/' );
+    if( nPos == -1 )
+        return OString();
+
+	if (bNoNameSpace)
+		return OString();
+
+	// scoped name only if the namespace is not equal
+	if (scope.lastIndexOf('/') > 0)
+	{
+		OString tmpScp(scope.copy(0, scope.lastIndexOf('/')));
+		OString tmpScp2(type.copy(0, nPos));
+
+		if (tmpScp == tmpScp2)
+			return OString();
+	}
+
+    OString aScope( type.copy( 0, nPos ) );
+	OStringBuffer tmpBuf(aScope.getLength()*2);
+
+    nPos = 0;
+    do
+	{
+		tmpBuf.append("::");
+		tmpBuf.append(aScope.getToken(0, '/', nPos));
+	} while( nPos != -1 );
+
+	return tmpBuf.makeStringAndClear();
+}
+=====================================================================
+Found a 16 line (286 tokens) duplication in the following files: 
+Starting at line 3792 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3416 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+static const SvxMSDffVertPair mso_sptSeal16Vert[] =	// adj value 0 -> 10800
+{
+	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
+	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
+	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
+	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
+	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
+	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
+	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
+	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
+	{ 0x05 MSO_I, 0x06 MSO_I }
+};
+static const SvxMSDffCalculationData mso_sptSeal16Calc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },		// 0x00
+=====================================================================
+Found a 49 line (286 tokens) duplication in the following files: 
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/graphhelp.cxx
+Starting at line 2447 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+           sal::static_int_cast< unsigned long >(aSizePix.Height()) >
+               nMaximumExtent ) )
+	{
+		const Size  aOldSizePix( aSizePix );
+		double      fWH = static_cast< double >( aSizePix.Width() ) / aSizePix.Height();
+
+		if ( fWH <= 1.0 )
+		{
+			aSizePix.Width() = FRound( nMaximumExtent * fWH );
+			aSizePix.Height() = nMaximumExtent;
+		}
+		else
+		{
+			aSizePix.Width() = nMaximumExtent;
+			aSizePix.Height() = FRound(  nMaximumExtent / fWH );
+		}
+		
+		aDrawSize.Width() = FRound( ( static_cast< double >( aDrawSize.Width() ) * aSizePix.Width() ) / aOldSizePix.Width() );
+		aDrawSize.Height() = FRound( ( static_cast< double >( aDrawSize.Height() ) * aSizePix.Height() ) / aOldSizePix.Height() );
+	}
+	
+	Size 		aFullSize;
+	Point		aBackPosPix;
+	Rectangle 	aOverlayRect;
+
+	// calculate addigtional positions and sizes if an overlay image is used
+	if (  pOverlay )
+	{
+		aFullSize = Size( nMaximumExtent, nMaximumExtent );
+		aOverlayRect = Rectangle( aNullPt, aFullSize  );
+		
+		aOverlayRect.Intersection( pOverlayRect ? *pOverlayRect : Rectangle( aNullPt, pOverlay->GetSizePixel() ) );
+ 		
+		if ( !aOverlayRect.IsEmpty() )
+			aBackPosPix = Point( ( nMaximumExtent - aSizePix.Width() ) >> 1, ( nMaximumExtent - aSizePix.Height() ) >> 1 );
+		else
+			pOverlay = NULL;
+	}
+	else
+	{
+		aFullSize = aSizePix;
+		pOverlay = NULL;
+	}
+		
+	// draw image(s) into VDev and get resulting image
+	if ( aVDev.SetOutputSizePixel( aFullSize ) )
+	{
+		// draw metafile into VDev
+		const_cast<GDIMetaFile *>(this)->WindStart();
+=====================================================================
+Found a 19 line (286 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 581 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1254,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
+                0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
+=====================================================================
+Found a 61 line (286 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/getopt.c
+Starting at line 7 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_getopt.c
+
+int opterr = 1;
+int optind = 1;
+int optopt;
+char *optarg;
+
+int
+    getopt(int argc, char *const argv[], const char *opts)
+{
+    static int sp = 1;
+    register int c;
+    register char *cp;
+
+    if (sp == 1)
+	{
+        if (optind >= argc ||
+            argv[optind][0] != '-' || argv[optind][1] == '\0')
+            return -1;
+        else
+            if (strcmp(argv[optind], "--") == 0)
+            {
+                optind++;
+                return -1;
+            }
+	}
+    optopt = c = argv[optind][sp];
+    if (c == ':' || (cp = strchr(opts, c)) == 0)
+    {
+        ERR(": illegal option -- ", c);
+        if (argv[optind][++sp] == '\0')
+        {
+            optind++;
+            sp = 1;
+        }
+        return '?';
+    }
+    if (*++cp == ':')
+    {
+        if (argv[optind][sp + 1] != '\0')
+            optarg = &argv[optind++][sp + 1];
+        else
+            if (++optind >= argc)
+            {
+                ERR(": option requires an argument -- ", c);
+                sp = 1;
+                return '?';
+            }
+            else
+                optarg = argv[optind++];
+        sp = 1;
+    }
+    else
+    {
+        if (argv[optind][++sp] == '\0')
+        {
+            sp = 1;
+            optind++;
+        }
+        optarg = 0;
+    }
+    return c;
+}
+=====================================================================
+Found a 47 line (286 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+using ::rtl::OUString;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::XInterface;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::RuntimeException;
+using ::com::sun::star::uno::UNO_QUERY;
+using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::makeAny;
+using ::com::sun::star::graphic::XGraphic;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::embed;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::ui;
+
+// Image sizes for our toolbars/menus
+const sal_Int32 IMAGE_SIZE_NORMAL         = 16;
+const sal_Int32 IMAGE_SIZE_LARGE          = 26;
+const sal_Int16 MAX_IMAGETYPE_VALUE       = ::com::sun::star::ui::ImageType::COLOR_HIGHCONTRAST|
+                                            ::com::sun::star::ui::ImageType::SIZE_LARGE;
+
+static const char   IMAGE_FOLDER[]        = "images";
+static const char   BITMAPS_FOLDER[]      = "Bitmaps";
+static const char   IMAGE_EXTENSION[]     = ".png";
+
+static const char*  IMAGELIST_XML_FILE[]  =
+{
+    "sc_imagelist.xml",
+    "lc_imagelist.xml",
+    "sch_imagelist.xml",
+    "lch_imagelist.xml"
+};
+
+static const char*  BITMAP_FILE_NAMES[]   =
+{
+    "sc_userimages.png",
+    "lc_userimages.png",
+    "sch_userimages.png",
+    "lch_userimages.png"
+};
+
+namespace framework
+{
+
+static osl::Mutex*          pImageListWrapperMutex = 0;
+=====================================================================
+Found a 63 line (286 tokens) duplication in the following files: 
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+	fprintf( stderr, "calling %s, nFunctionIndex=%d\n", cstr.getStr(), nFunctionIndex );
+#endif
+
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[2] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+		(*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+		    pCppI->getBridge()->getCppEnv(),
+		    (void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[0] ),
+                        &pInterface, pTD, cpp_acquire );
+=====================================================================
+Found a 68 line (286 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+=====================================================================
+Found a 92 line (285 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+}
+
+//=========================================================================
+//
+// XInterface methods.
+//
+//=========================================================================
+
+// virtual
+void SAL_CALL Content::acquire()
+    throw()
+{
+	ContentImplHelper::acquire();
+}
+
+//=========================================================================
+// virtual
+void SAL_CALL Content::release()
+    throw()
+{
+	ContentImplHelper::release();
+}
+
+//=========================================================================
+// virtual
+uno::Any SAL_CALL Content::queryInterface( const uno::Type & rType )
+    throw ( uno::RuntimeException )
+{
+    uno::Any aRet;
+
+	// @@@ Add support for additional interfaces.
+#if 0
+  	aRet = cppu::queryInterface( rType,
+                                 static_cast< yyy::Xxxxxxxxx * >( this ) );
+#endif
+
+ 	return aRet.hasValue() ? aRet : ContentImplHelper::queryInterface( rType );
+}
+
+//=========================================================================
+//
+// XTypeProvider methods.
+//
+//=========================================================================
+
+XTYPEPROVIDER_COMMON_IMPL( Content );
+
+//=========================================================================
+// virtual
+uno::Sequence< uno::Type > SAL_CALL Content::getTypes()
+    throw( uno::RuntimeException )
+{
+	// @@@ Add own interfaces.
+
+    static cppu::OTypeCollection* pCollection = 0;
+
+	if ( !pCollection )
+	{
+		osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+	  	if ( !pCollection )
+	  	{
+            static cppu::OTypeCollection aCollection(
+                CPPU_TYPE_REF( lang::XTypeProvider ),
+                CPPU_TYPE_REF( lang::XServiceInfo ),
+                CPPU_TYPE_REF( lang::XComponent ),
+                CPPU_TYPE_REF( ucb::XContent ),
+                CPPU_TYPE_REF( ucb::XCommandProcessor ),
+                CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+                CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+                CPPU_TYPE_REF( beans::XPropertyContainer ),
+                CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+                CPPU_TYPE_REF( container::XChild ) );
+	  		pCollection = &aCollection;
+		}
+	}
+
+	return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+    throw( uno::RuntimeException )
+{
+    // @@@ Adjust implementation name. 
+    // Prefix with reversed company domain name.
+    return rtl::OUString::createFromAscii( "com.sun.star.comp.myucp.Content" );
+=====================================================================
+Found a 24 line (285 tokens) duplication in the following files: 
+Starting at line 1518 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1908 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+        }
+        
+        if (!rv) {
+            if (compoundflag && 
+             !(rv = prefix_check(st, i, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN, compoundflag))) {
+                if ((rv = suffix_check(st, i, 0, NULL, NULL, 0, NULL,
+                        FLAG_NULL, compoundflag, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN)) && !hu_mov_rule &&
+                    ((SfxEntry*)sfx)->getCont() &&
+                        ((compoundforbidflag && TESTAFF(((SfxEntry*)sfx)->getCont(), compoundforbidflag, 
+                            ((SfxEntry*)sfx)->getContLen())) || (compoundend &&
+                        TESTAFF(((SfxEntry*)sfx)->getCont(), compoundend, 
+                            ((SfxEntry*)sfx)->getContLen())))) {
+                        rv = NULL;
+                }
+            }
+            
+            if (rv ||
+              (((wordnum == 0) && compoundbegin &&
+                ((rv = suffix_check(st, i, 0, NULL, NULL, 0, NULL, FLAG_NULL, compoundbegin, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN)) ||
+                (rv = prefix_check(st, i, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN, compoundbegin)))) ||
+              ((wordnum > 0) && compoundmiddle &&
+                ((rv = suffix_check(st, i, 0, NULL, NULL, 0, NULL, FLAG_NULL, compoundmiddle, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN)) ||
+                (rv = prefix_check(st, i, hu_mov_rule ? IN_CPD_OTHER : IN_CPD_BEGIN, compoundmiddle)))))
+              ) {
+=====================================================================
+Found a 81 line (284 tokens) duplication in the following files: 
+Starting at line 1214 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/oustring/rtl_ustr.cxx
+Starting at line 1312 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/oustring/rtl_ustr.cxx
+
+        void getToken_000()
+            {
+                rtl_ustr_ascii_compareIgnoreAsciiCase( NULL, NULL);
+                // should not GPF
+            }
+
+        void ascii_compareIgnoreAsciiCase_000_1()
+            {
+                rtl::OUString aStr1 = rtl::OUString::createFromAscii("Line must be equal.");
+                rtl_ustr_ascii_compareIgnoreAsciiCase( aStr1.getStr(), NULL);
+                // should not GPF
+            }
+        void ascii_compareIgnoreAsciiCase_001()
+            {
+                rtl::OUString suStr1;
+                rtl::OString sStr2;
+
+                sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1, sStr2.getStr());
+                CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
+            }
+
+        void ascii_compareIgnoreAsciiCase_002()
+            {
+                rtl::OUString suStr1 = rtl::OUString::createFromAscii("Line must be equal.");
+                rtl::OString sStr2 =                                  "Line must be equal.";
+
+                sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
+                CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal.", nValue == 0);
+            }
+
+        void ascii_compareIgnoreAsciiCase_002_1()
+            {
+                rtl::OUString suStr1 = rtl::OUString::createFromAscii("Line must be equal, when ignore case.");
+                rtl::OString sStr2 =                                 "LINE MUST BE EQUAL, WHEN IGNORE CASE.";
+
+                sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
+                CPPUNIT_ASSERT_MESSAGE("compare failed, strings are equal (if case insensitve).", nValue == 0);
+            }
+        
+        void ascii_compareIgnoreAsciiCase_003()
+            {
+                rtl::OUString suStr1 = rtl::OUString::createFromAscii("Line must differ.");
+                rtl::OString sStr2 = "Line foo bar, ok, differ.";
+
+                sal_Int32 nValue = rtl_ustr_ascii_compareIgnoreAsciiCase( suStr1.getStr(), sStr2.getStr());
+                CPPUNIT_ASSERT_MESSAGE("compare failed, strings differ.", nValue != 0);
+            }
+        
+        //! LLA: some more tests with some high level strings
+
+        // void ascii_compareIgnoreAsciiCase_001()
+        //     {
+        //         rtl::OUString suStr1 = rtl::OUString::createFromAscii("change this to ascii upper case.");
+        //         rtl::OUString aShouldStr1 = rtl::OUString::createFromAscii("CHANGE THIS TO ASCII UPPER CASE.");
+        //         
+        //         sal_uInt32 nLength = suStr1.getLength() * sizeof(sal_Unicode);
+        //         sal_Unicode* pStr = (sal_Unicode*) malloc(nLength + sizeof(sal_Unicode)); // length + null terminator
+        //         CPPUNIT_ASSERT_MESSAGE("can't get memory for test", pStr != NULL);
+        //         memset(pStr, 0, nLength + sizeof(sal_Unicode));
+        //         memcpy(pStr, suStr1.getStr(), nLength);
+        // 
+        //         rtl_ustr_ascii_compareIgnoreAsciiCase( pStr );
+        //         rtl::OUString suStr(pStr, suStr1.getLength());
+        //         
+        //         CPPUNIT_ASSERT_MESSAGE("failed", aShouldStr1.equals(suStr) == sal_True);
+        //         free(pStr);
+        //     }
+
+        // Change the following lines only, if you add, remove or rename 
+        // member functions of the current class, 
+        // because these macros are need by auto register mechanism.
+        
+        CPPUNIT_TEST_SUITE(ascii_compareIgnoreAsciiCase);
+        CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_000);
+        CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_000_1);
+        CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_001);
+        CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_002);
+        CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_002_1);
+        CPPUNIT_TEST(ascii_compareIgnoreAsciiCase_003);
+        CPPUNIT_TEST_SUITE_END();
+    }; // class ascii_compareIgnoreAsciiCase
+=====================================================================
+Found a 43 line (284 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BUser.cxx
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUser.cxx
+
+::rtl::OUString OMySQLUser::getPrivilegeString(sal_Int32 nRights) const
+{
+	::rtl::OUString sPrivs;
+	if((nRights & Privilege::INSERT) == Privilege::INSERT)
+		sPrivs += ::rtl::OUString::createFromAscii("INSERT");
+	
+	if((nRights & Privilege::DELETE) == Privilege::DELETE)
+	{
+		if(sPrivs.getLength())
+			sPrivs += ::rtl::OUString::createFromAscii(",");
+		sPrivs += ::rtl::OUString::createFromAscii("DELETE");
+	}
+	
+	if((nRights & Privilege::UPDATE) == Privilege::UPDATE)
+	{
+		if(sPrivs.getLength())
+			sPrivs += ::rtl::OUString::createFromAscii(",");
+		sPrivs += ::rtl::OUString::createFromAscii("UPDATE");
+	}
+	
+	if((nRights & Privilege::ALTER) == Privilege::ALTER)
+	{
+		if(sPrivs.getLength())
+			sPrivs += ::rtl::OUString::createFromAscii(",");
+		sPrivs += ::rtl::OUString::createFromAscii("ALTER");
+	}
+	
+	if((nRights & Privilege::SELECT) == Privilege::SELECT)
+	{
+		if(sPrivs.getLength())
+			sPrivs += ::rtl::OUString::createFromAscii(",");
+		sPrivs += ::rtl::OUString::createFromAscii("SELECT");
+	}
+	
+	if((nRights & Privilege::REFERENCE) == Privilege::REFERENCE)
+	{
+		if(sPrivs.getLength())
+			sPrivs += ::rtl::OUString::createFromAscii(",");
+		sPrivs += ::rtl::OUString::createFromAscii("REFERENCES");
+	}
+
+	return sPrivs;
+}
+=====================================================================
+Found a 51 line (283 tokens) duplication in the following files: 
+Starting at line 5511 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5773 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+		Set_UInt32( pData, lcbSttbFnm);
+        Set_UInt32( pData, fcPlcfLst );
+        Set_UInt32( pData, lcbPlcfLst );
+        Set_UInt32( pData, fcPlfLfo );
+        Set_UInt32( pData, lcbPlfLfo );
+        Set_UInt32( pData, fcPlcftxbxBkd );
+        Set_UInt32( pData, lcbPlcftxbxBkd );
+        Set_UInt32( pData, fcPlcfHdrtxbxBkd );
+        Set_UInt32( pData, lcbPlcfHdrtxbxBkd );
+
+        pData += 0x372 - 0x302; // Pos + Offset (fcSttbListNames - fcDocUndo)
+        Set_UInt32( pData, fcSttbListNames );
+        Set_UInt32( pData, lcbSttbListNames );
+
+        pData += 0x382 - 0x37A;
+        Set_UInt32( pData, fcMagicTable );
+        Set_UInt32( pData, lcbMagicTable );
+
+        pData += 0x3FA - 0x38A;
+        Set_UInt16( pData, (UINT16)0x0002);
+        Set_UInt16( pData, (UINT16)0x00D9);
+    }
+
+    rStrm.Write( pDataPtr, fcMin );
+    delete[] pDataPtr;
+    return 0 == rStrm.GetError();
+}
+
+rtl_TextEncoding WW8Fib::GetFIBCharset(UINT16 chs)
+{
+    ASSERT(chs <= 0x100, "overflowed winword charset set");
+    rtl_TextEncoding eCharSet =
+        (0x0100 == chs)
+        ? RTL_TEXTENCODING_APPLE_ROMAN
+        : rtl_getTextEncodingFromWindowsCharset( static_cast<BYTE>(chs) );
+    return eCharSet;
+}
+
+WW8Style::WW8Style(SvStream& rStream, WW8Fib& rFibPara)
+    : rFib(rFibPara), rSt(rStream), cstd(0), cbSTDBaseInFile(0),
+    stiMaxWhenSaved(0), istdMaxFixedWhenSaved(0), nVerBuiltInNamesWhenSaved(0),
+    ftcStandardChpStsh(0), ftcStandardChpCJKStsh(0), ftcStandardChpCTLStsh(0)
+{
+    nStyleStart = rFib.fcStshf;
+    nStyleLen = rFib.lcbStshf;
+
+    rSt.Seek(nStyleStart);
+
+    USHORT cbStshi = 0; //  2 bytes size of the following STSHI structure
+
+    if (rFib.GetFIBVersion() <= ww::eWW2)
+=====================================================================
+Found a 10 line (283 tokens) duplication in the following files: 
+Starting at line 770 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 0, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb40 - fb4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb50 - fb5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb60 - fb6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb70 - fb7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb80 - fb8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb90 - fb9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fba0 - fbaf
+     5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fbb0 - fbbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fbc0 - fbcf
+     0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbd0 - fbdf
+=====================================================================
+Found a 33 line (283 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/tempnam.c
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/tempnam.c
+
+	unsigned int _psp = rand();
+#endif
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q   = buf[3];
+=====================================================================
+Found a 19 line (282 tokens) duplication in the following files: 
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1047 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1258,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
+                0x02C6,0x2030,0xFFFF,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
+=====================================================================
+Found a 52 line (282 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+
+	asm("ta 3");
+#endif
+	/* get stack- and framepointer */
+	setjmp(ctx);
+	fp = (struct frame*)(((size_t*)(ctx))[FRAME_PTR_OFFSET]);
+	for ( i=0; (i<FRAME_OFFSET) && (fp!=0); i++)
+		fp = fp->fr_savfp;
+
+	/* iterate through backtrace */
+	for (i=0; fp && fp->fr_savpc && i<max_frames; i++)
+	{
+		/* store frame */
+		*(buffer++) = (void *)fp->fr_savpc;
+		/* next frame */
+		fp=fp->fr_savfp;
+	}
+	return i;
+}
+
+void backtrace_symbols_fd( void **buffer, int size, int fd )
+{
+	FILE	*fp = fdopen( fd, "w" );
+
+	if ( fp )
+	{
+		void **pFramePtr;
+
+		for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
+		{
+			Dl_info		dli;
+			ptrdiff_t	offset;
+
+			if ( 0 != dladdr( *pFramePtr, &dli ) )
+			{
+				if ( dli.dli_fname && dli.dli_fbase )
+				{
+					offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
+					fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
+				}
+				if ( dli.dli_sname && dli.dli_saddr )
+				{
+					offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
+					fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
+				}
+			}
+			fprintf( fp, "[0x%x]\n", *pFramePtr );
+		}
+
+		fflush( fp );
+		fclose( fp );
+	}
+}
+=====================================================================
+Found a 51 line (282 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1361 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Unicode >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+=====================================================================
+Found a 56 line (281 tokens) duplication in the following files: 
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconcustomshape.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/ribbar/concustomshape.cxx
+
+void ConstCustomShape::SetAttributes( SdrObject* pObj )
+{
+	sal_Bool bAttributesAppliedFromGallery = sal_False;
+
+	if ( GalleryExplorer::GetSdrObjCount( GALLERY_THEME_POWERPOINT ) )
+	{
+		std::vector< rtl::OUString > aObjList;
+		if ( GalleryExplorer::FillObjListTitle( GALLERY_THEME_POWERPOINT, aObjList ) )
+		{
+			sal_uInt16 i;
+			for ( i = 0; i < aObjList.size(); i++ )
+			{
+				if ( aObjList[ i ].equalsIgnoreAsciiCase( aCustomShape ) )
+				{
+					FmFormModel aFormModel;
+					SfxItemPool& rPool = aFormModel.GetItemPool();
+					rPool.FreezeIdRanges();
+					if ( GalleryExplorer::GetSdrObj( GALLERY_THEME_POWERPOINT, i, &aFormModel ) )
+					{
+						const SdrObject* pSourceObj = aFormModel.GetPage( 0 )->GetObj( 0 );
+						if( pSourceObj )
+						{
+							const SfxItemSet& rSource = pSourceObj->GetMergedItemSet();
+							SfxItemSet aDest( pObj->GetModel()->GetItemPool(), 				// ranges from SdrAttrObj
+							SDRATTR_START, SDRATTR_SHADOW_LAST,
+							SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST,
+							SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION,
+							// Graphic Attributes
+							SDRATTR_GRAF_FIRST, SDRATTR_GRAF_LAST,
+							// 3d Properties
+							SDRATTR_3D_FIRST, SDRATTR_3D_LAST,
+							// CustomShape properties
+							SDRATTR_CUSTOMSHAPE_FIRST, SDRATTR_CUSTOMSHAPE_LAST,
+							// range from SdrTextObj
+							EE_ITEMS_START, EE_ITEMS_END,
+							// end
+							0, 0);
+							aDest.Set( rSource );
+							pObj->SetMergedItemSet( aDest );
+							sal_Int32 nAngle = pSourceObj->GetRotateAngle();
+							if ( nAngle )
+							{
+								double a = nAngle * F_PI18000;
+								pObj->NbcRotate( pObj->GetSnapRect().Center(), nAngle, sin( a ), cos( a ) );
+							}
+							bAttributesAppliedFromGallery = sal_True;
+						}
+					}
+					break;
+				}
+			}
+		}
+	}
+	if ( !bAttributesAppliedFromGallery )
+	{
+        pObj->SetMergedItem( SvxAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST ) );
+=====================================================================
+Found a 10 line (281 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1240 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 11 line (281 tokens) duplication in the following files: 
+Starting at line 800 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d700 - d70f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d710 - d71f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d720 - d72f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d730 - d73f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d740 - d74f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d750 - d75f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d760 - d76f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d770 - d77f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d780 - d78f
+=====================================================================
+Found a 41 line (281 tokens) duplication in the following files: 
+Starting at line 391 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+Starting at line 465 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+
+				ImplGetPoint( aEndingPoint );
+
+				double fA = aIntermediatePoint.X - aStartingPoint.X;
+				double fB = aIntermediatePoint.Y - aStartingPoint.Y;
+				double fC = aEndingPoint.X - aStartingPoint.X;
+				double fD = aEndingPoint.Y - aStartingPoint.Y;
+
+				double fE = fA * ( aStartingPoint.X + aIntermediatePoint.X ) + fB * ( aStartingPoint.Y + aIntermediatePoint.Y );
+				double fF = fC * ( aStartingPoint.X + aEndingPoint.X ) + fD * ( aStartingPoint.Y + aEndingPoint.Y );
+
+				double fG = 2.0 * ( fA * ( aEndingPoint.Y - aIntermediatePoint.Y ) - fB * ( aEndingPoint.X - aIntermediatePoint.X ) );
+
+				aCenterPoint.X = ( fD * fE - fB * fF ) / fG;
+				aCenterPoint.Y = ( fA * fF - fC * fE ) / fG;
+
+				if ( fG != 0 )
+				{
+					double fStartAngle = ImplGetOrientation( aCenterPoint, aStartingPoint );
+					double fInterAngle = ImplGetOrientation( aCenterPoint, aIntermediatePoint );
+					double fEndAngle = ImplGetOrientation( aCenterPoint, aEndingPoint );
+
+					if ( fStartAngle > fEndAngle )
+					{
+						nSwitch ^=1;
+						aIntermediatePoint = aEndingPoint;
+						aEndingPoint = aStartingPoint;
+						aStartingPoint = aIntermediatePoint;
+						fG = fStartAngle;
+						fStartAngle = fEndAngle;
+						fEndAngle = fG;
+					}
+					if ( ! ( fInterAngle > fStartAngle )  && ( fInterAngle < fEndAngle ) )
+					{
+						nSwitch ^=1;
+						aIntermediatePoint = aEndingPoint;
+						aEndingPoint = aStartingPoint;
+						aStartingPoint = aIntermediatePoint;
+						fG = fStartAngle;
+						fStartAngle = fEndAngle;
+						fEndAngle = fG;
+					}
+=====================================================================
+Found a 66 line (281 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+				for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+				{
+					pImageEntry = m_aImageMap.find( xAttribs->getNameByIndex( n ) );
+					if ( pImageEntry != m_aImageMap.end() )
+					{
+						switch ( pImageEntry->second )
+						{
+							case IMG_ATTRIBUTE_HREF:
+							{
+								m_pImages->aURL = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case IMG_ATTRIBUTE_MASKCOLOR:
+							{
+								OUString aColor = xAttribs->getValueByIndex( n );
+
+								if ( aColor.getLength() > 0 )
+								{
+									if ( aColor.getStr()[0] == '#' )
+									{
+										// the color value is given as #rrggbb and used the hexadecimal system!!
+										sal_uInt32 nColor = aColor.copy( 1 ).toInt32( 16 );
+
+										m_pImages->aMaskColor = Color( COLORDATA_RGB( nColor ) );
+									}
+								}
+							}
+							break;
+
+							case IMG_ATTRIBUTE_MASKURL:
+							{
+								m_pImages->aMaskURL = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case IMG_ATTRIBUTE_MASKMODE:
+							{
+								sal_Int32 nHashCode = xAttribs->getValueByIndex( n ).hashCode();
+								if ( nHashCode == m_nHashMaskModeBitmap )
+									m_pImages->nMaskMode = ImageMaskMode_Bitmap;
+								else if ( nHashCode == m_nHashMaskModeColor )
+									m_pImages->nMaskMode = ImageMaskMode_Color;
+								else
+								{
+									delete m_pImages;
+									m_pImages = NULL;
+
+									OUString aErrorMessage = getErrorLineString();
+									aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Attribute image:maskmode must be 'maskcolor' or 'maskbitmap'!" ));
+									throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+								}
+							}
+							break;
+
+							case IMG_ATTRIBUTE_HIGHCONTRASTURL:
+							{
+								m_pImages->aHighContrastURL = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case IMG_ATTRIBUTE_HIGHCONTRASTMASKURL:
+							{
+								m_pImages->aHighContrastMaskURL = xAttribs->getValueByIndex( n );
+							}
+							break;
+=====================================================================
+Found a 46 line (281 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tempnam.c
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/tempnam.c
+
+extern int access();
+int d_access();
+
+/* MSC stdio.h defines P_tmpdir, so let's undo it here */
+/* Under DOS leave the default tmpdir pointing here!		*/
+#ifdef P_tmpdir
+#undef P_tmpdir
+#endif
+static char *P_tmpdir = "";
+
+char *
+tempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL )
+      tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL )
+      tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+=====================================================================
+Found a 56 line (280 tokens) duplication in the following files: 
+Starting at line 2097 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 1118 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/TransformerBase.cxx
+
+								xFactory->createInstance(
+									OUString::createFromAscii(
+						"com.sun.star.i18n.CharacterClassification_Unicode") ),
+								UNO_QUERY );
+
+							OSL_ENSURE( xCharClass.is(),
+					"can't instantiate character clossification component" );
+						}
+						catch( com::sun::star::uno::Exception& )
+						{
+						}
+					}
+				}
+				if( xCharClass.is() )
+				{
+					sal_Int16 nType = xCharClass->getType( rName, i );
+
+					switch( nType )
+					{
+					case UnicodeType::UPPERCASE_LETTER:		// Lu
+					case UnicodeType::LOWERCASE_LETTER:		// Ll
+					case UnicodeType::TITLECASE_LETTER:		// Lt
+					case UnicodeType::OTHER_LETTER:			// Lo
+					case UnicodeType::LETTER_NUMBER: 		// Nl
+						bValidChar = sal_True;
+						break;
+					case UnicodeType::NON_SPACING_MARK:		// Ms
+					case UnicodeType::ENCLOSING_MARK:		// Me
+					case UnicodeType::COMBINING_SPACING_MARK:	//Mc
+					case UnicodeType::MODIFIER_LETTER:		// Lm
+					case UnicodeType::DECIMAL_DIGIT_NUMBER:	// Nd
+						bValidChar = i > 0;
+						break;
+					}
+				}
+			}
+		}
+		if( bValidChar )
+		{
+			aBuffer.append( c );
+		}
+		else
+		{
+			aBuffer.append( static_cast< sal_Unicode >( '_' ) );
+			if( c > 0x0fff )
+				aBuffer.append( static_cast< sal_Unicode >(
+							aHexTab[ (c >> 12) & 0x0f ]  ) );
+			if( c > 0x00ff )
+				aBuffer.append( static_cast< sal_Unicode >(
+						aHexTab[ (c >> 8) & 0x0f ] ) );
+			if( c > 0x000f )
+				aBuffer.append( static_cast< sal_Unicode >(
+						aHexTab[ (c >> 4) & 0x0f ] ) );
+			aBuffer.append( static_cast< sal_Unicode >(
+						aHexTab[ c & 0x0f ] ) );
+			aBuffer.append( static_cast< sal_Unicode >( '_' ) );
+=====================================================================
+Found a 14 line (280 tokens) duplication in the following files: 
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_OWIDTH),	SC_WID_UNO_OWIDTH,	&getBooleanCppuType(),					0, 0 },
+        {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+=====================================================================
+Found a 43 line (280 tokens) duplication in the following files: 
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/privsplt.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/privsplt.cxx
+
+	nOldY=(short)a2Pos.Y();
+	Point a3Pos=a2Pos;
+
+	if(eScSplit==SC_SPLIT_HORZ)
+	{
+		nNewX=(short)aPos.X();
+		nDeltaX=nNewX-nOldX;
+		a2Pos.X()+=nDeltaX;
+		if(a2Pos.X()<aXMovingRange.Min())
+		{
+			nDeltaX=(short)(aXMovingRange.Min()-a3Pos.X());
+			a2Pos.X()=aXMovingRange.Min();
+		}
+		else if(a2Pos.X()>aXMovingRange.Max())
+		{
+			nDeltaX=(short)(aXMovingRange.Max()-a3Pos.X());
+			a2Pos.X()=aXMovingRange.Max();
+		}
+	}
+	else
+	{
+		nNewY=(short)aPos.Y();
+		nDeltaY=nNewY-nOldY;
+		a2Pos.Y()+=nDeltaY;
+		if(a2Pos.Y()<aYMovingRange.Min())
+		{
+			nDeltaY=(short)(aYMovingRange.Min()-a3Pos.Y());
+			a2Pos.Y()=aYMovingRange.Min();
+		}
+		else if(a2Pos.Y()>aYMovingRange.Max())
+		{
+			nDeltaY=(short)(aYMovingRange.Max()-a3Pos.Y());
+			a2Pos.Y()=aYMovingRange.Max();
+		}
+	}
+	SetPosPixel(a2Pos);
+	Invalidate();
+	Update();
+	CtrModified();
+}
+
+
+void ScPrivatSplit::ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground )
+=====================================================================
+Found a 98 line (280 tokens) duplication in the following files: 
+Starting at line 862 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/signal.c
+Starting at line 342 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/signal.c
+
+	pHandler = calloc(1, sizeof(oslSignalHandlerImpl));
+
+	if (pHandler != NULL)
+	{	
+		pHandler->Handler = Handler;
+		pHandler->pData   = pData;
+
+		osl_acquireMutex(SignalListMutex);
+	
+		pHandler->pNext = SignalList;
+		SignalList      = pHandler;
+
+		osl_releaseMutex(SignalListMutex);
+
+		return (pHandler);
+	}
+
+	return (NULL);
+}
+
+/*****************************************************************************/
+/* osl_removeSignalHandler */
+/*****************************************************************************/
+sal_Bool SAL_CALL osl_removeSignalHandler(oslSignalHandler Handler)
+{
+	oslSignalHandlerImpl *pHandler, *pPrevious = NULL;
+
+	OSL_ASSERT(Handler != NULL);
+
+	if (! bInitSignal)
+		bInitSignal = InitSignal();
+
+	osl_acquireMutex(SignalListMutex);
+
+	pHandler = SignalList;
+
+	while (pHandler != NULL)
+	{
+		if (pHandler == Handler)
+		{
+			if (pPrevious)
+				pPrevious->pNext = pHandler->pNext;
+			else
+				SignalList = pHandler->pNext;
+
+			osl_releaseMutex(SignalListMutex);
+
+			if (SignalList == NULL)
+				bInitSignal = DeInitSignal();
+
+			free(pHandler);
+
+			return (sal_True);
+		}
+
+		pPrevious = pHandler;
+		pHandler  = pHandler->pNext;
+	}
+			
+	osl_releaseMutex(SignalListMutex);
+
+	return (sal_False);
+}
+
+/*****************************************************************************/
+/* osl_raiseSignal */
+/*****************************************************************************/
+oslSignalAction SAL_CALL osl_raiseSignal(sal_Int32 UserSignal, void* UserData)
+{
+	oslSignalInfo   Info;
+	oslSignalAction Action;
+
+	if (! bInitSignal)
+		bInitSignal = InitSignal();
+
+	osl_acquireMutex(SignalListMutex);
+
+	Info.Signal     = osl_Signal_User;
+	Info.UserSignal = UserSignal;
+	Info.UserData   = UserData;
+
+	Action = CallSignalHandler(&Info);
+			
+	osl_releaseMutex(SignalListMutex);
+
+	return (Action);
+}
+
+/*****************************************************************************/
+/* osl_setErrorReporting */
+/*****************************************************************************/
+sal_Bool SAL_CALL osl_setErrorReporting( sal_Bool bEnable )
+{
+	sal_Bool bOld = bErrorReportingEnabled;
+	bErrorReportingEnabled = bEnable;
+
+	return bOld;
+}
+=====================================================================
+Found a 68 line (280 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+
+                    pCppStack, pParamTypeDescr );
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case no exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+
+		CPPU_CURRENT_NAMESPACE::cc50_solaris_sparc_raiseException(
+=====================================================================
+Found a 60 line (279 tokens) duplication in the following files: 
+Starting at line 1543 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1588 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            return WW8_FC_MAX;
+        }
+        if( pNextPieceCp )
+            *pNextPieceCp = nCpEnd;
+
+        WW8_FC nRet = SVBT32ToUInt32( ((WW8_PCD*)pData)->fc );
+        if (8 > pWw8Fib->nVersion)
+            *pIsUnicode = false;
+        else
+            nRet = WW8PLCFx_PCD::TransformPieceAddress( nRet, *pIsUnicode );
+
+
+        nRet += (nCpPos - nCpStart) * (*pIsUnicode ? 2 : 1);
+
+        return nRet;
+    }
+
+    // No complex file
+    if (pWw8Fib->fExtChar)
+        *pIsUnicode = true;
+    else
+        *pIsUnicode = false;
+    return pWw8Fib->fcMin + nCpPos * (*pIsUnicode ? 2 : 1);
+}
+
+//-----------------------------------------
+//      class WW8ScannerBase
+//-----------------------------------------
+
+WW8PLCFpcd* WW8ScannerBase::OpenPieceTable( SvStream* pStr, const WW8Fib* pWwF )
+{
+    if ( ((8 > pWw8Fib->nVersion) && !pWwF->fComplex) || !pWwF->lcbClx )
+        return 0;
+
+    WW8_FC nClxPos = pWwF->fcClx;
+    INT32 nClxLen = pWwF->lcbClx;
+    register INT32 nLeft = nClxLen;
+    INT16 nGrpprl = 0;
+    BYTE clxt;
+
+    pStr->Seek( nClxPos );
+    while( 1 ) // Zaehle Zahl der Grpprls
+    {
+        *pStr >> clxt;
+        nLeft--;
+        if( 2 == clxt )                         // PLCFfpcd ?
+            break;                              // PLCFfpcd gefunden
+        if( 1 == clxt )                         // clxtGrpprl ?
+            nGrpprl++;
+        UINT16 nLen;
+        *pStr >> nLen;
+        nLeft -= 2 + nLen;
+        if( nLeft < 0 )
+            return 0;                           // schiefgegangen
+        pStr->SeekRel( nLen );                  // ueberlies grpprl
+    }
+    pStr->Seek( nClxPos );
+    nLeft = nClxLen;
+    pPieceGrpprls = new BYTE*[nGrpprl + 1];
+    memset( pPieceGrpprls, 0, ( nGrpprl + 1 ) * sizeof(BYTE *) );
+=====================================================================
+Found a 10 line (279 tokens) duplication in the following files: 
+Starting at line 1219 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,18,18,18,18, 0,// 1800 - 180f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1810 - 181f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1820 - 182f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1830 - 183f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1840 - 184f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1850 - 185f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+=====================================================================
+Found a 75 line (279 tokens) duplication in the following files: 
+Starting at line 2193 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 964 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	}
+}
+
+
+sal_uInt32 InterfaceType::getMemberCount()
+{
+	sal_uInt32 count = m_reader.getMethodCount();
+
+	if (count)
+		m_hasMethods = sal_True;
+
+	sal_uInt32 fieldCount = m_reader.getFieldCount();
+	RTFieldAccess access = RT_ACCESS_INVALID;
+	for (sal_uInt16 i=0; i < fieldCount; i++)
+	{
+		access = m_reader.getFieldAccess(i);
+
+		if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+		{
+			m_hasAttributes = sal_True;
+			count++;
+		}
+	}
+	return count;
+}
+
+sal_uInt32 InterfaceType::checkInheritedMemberCount(const TypeReader* pReader)
+{
+	sal_uInt32 cout = 0;
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if (aSuperReader.isValid())
+		{
+			count = checkInheritedMemberCount(&aSuperReader);
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+			{
+				count++;
+			}
+		}
+	}
+
+	return count;
+}
+
+sal_uInt32 InterfaceType::getInheritedMemberCount()
+{
+	if (m_inheritedMemberCount == 0)
+	{
+		m_inheritedMemberCount = checkInheritedMemberCount(0);
+	}
+
+	return m_inheritedMemberCount;
+}
+=====================================================================
+Found a 55 line (278 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                int rx;
+                int ry;
+                int rx_inv = image_subpixel_size;
+                int ry_inv = image_subpixel_size;
+                base_type::interpolator().coordinates(&x,  &y);
+                base_type::interpolator().local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 61 line (278 tokens) duplication in the following files: 
+Starting at line 632 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontentcaps.cxx
+Starting at line 722 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontentcaps.cxx
+
+        static com::sun::star::ucb::CommandInfo aDocumentCommandInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+			// Required commands
+			///////////////////////////////////////////////////////////////
+
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+				-1,
+                getCppuType( static_cast<
+                                uno::Sequence< beans::Property > * >( 0 ) )
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+				-1,
+                getCppuType( static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+			),
+
+			///////////////////////////////////////////////////////////////
+			// Optional standard commands
+			///////////////////////////////////////////////////////////////
+
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+				-1,
+				getCppuBooleanType()
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+				-1,
+                getCppuType( static_cast<
+                    com::sun::star::ucb::InsertCommandArgument * >( 0 ) )
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+				-1,
+                getCppuType( static_cast<
+                    com::sun::star::ucb::OpenCommandArgument2 * >( 0 ) )
+            ),
+
+			///////////////////////////////////////////////////////////////
+			// New commands
+			///////////////////////////////////////////////////////////////
+
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "post" ) ),
+=====================================================================
+Found a 51 line (278 tokens) duplication in the following files: 
+Starting at line 1602 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/cellsh1.cxx
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwtxtsh.cxx
+
+                    i18n::TextConversionOption::CHARACTER_BY_CHARACTER, sal_True, sal_False );
+            break;
+
+        case SID_CHINESE_CONVERSION:
+            {
+                //open ChineseTranslationDialog
+                Reference< XComponentContext > xContext(
+                    ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one
+                if(xContext.is())
+                {
+                    Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
+                    if(xMCF.is())
+                    {
+                        Reference< ui::dialogs::XExecutableDialog > xDialog(
+                                xMCF->createInstanceWithContext(
+                                    rtl::OUString::createFromAscii("com.sun.star.linguistic2.ChineseTranslationDialog")
+                                    , xContext), UNO_QUERY);
+                        Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
+                        if( xInit.is() )
+                        {
+                            //  initialize dialog
+                            Reference< awt::XWindow > xDialogParentWindow(0);
+                            Sequence<Any> aSeq(1);
+                            Any* pArray = aSeq.getArray();
+                            PropertyValue aParam;
+                            aParam.Name = rtl::OUString::createFromAscii("ParentWindow");
+                            aParam.Value <<= makeAny(xDialogParentWindow);
+                            pArray[0] <<= makeAny(aParam);
+                            xInit->initialize( aSeq );
+
+                            //execute dialog
+                            sal_Int16 nDialogRet = xDialog->execute();
+                            if( RET_OK == nDialogRet )
+                            {
+                                //get some parameters from the dialog
+                                sal_Bool bToSimplified = sal_True;
+                                sal_Bool bUseVariants = sal_True;
+                                sal_Bool bCommonTerms = sal_True;
+                                Reference< beans::XPropertySet >  xProp( xDialog, UNO_QUERY );
+                                if( xProp.is() )
+                                {
+                                    try
+                                    {
+                                        xProp->getPropertyValue( C2U("IsDirectionToSimplified") ) >>= bToSimplified;
+                                        xProp->getPropertyValue( C2U("IsUseCharacterVariants") ) >>= bUseVariants;
+                                        xProp->getPropertyValue( C2U("IsTranslateCommonTerms") ) >>= bCommonTerms;
+                                    }
+                                    catch( Exception& )
+                                    {
+                                    }
+                                }
+=====================================================================
+Found a 19 line (278 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1255,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
+                0x02C6,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
+=====================================================================
+Found a 19 line (278 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1014 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1257,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
+                0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0x00A8,0x02C7,0x00B8,
+=====================================================================
+Found a 31 line (278 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/logging/consolehandler.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/logging/filehandler.cxx
+
+        virtual ~FileHandler();
+
+        // XLogHandler
+        virtual ::rtl::OUString SAL_CALL getEncoding() throw (RuntimeException);
+        virtual void SAL_CALL setEncoding( const ::rtl::OUString& _encoding ) throw (RuntimeException);
+        virtual Reference< XLogFormatter > SAL_CALL getFormatter() throw (RuntimeException);
+        virtual void SAL_CALL setFormatter( const Reference< XLogFormatter >& _formatter ) throw (RuntimeException);
+        virtual ::sal_Int32 SAL_CALL getLevel() throw (RuntimeException);
+        virtual void SAL_CALL setLevel( ::sal_Int32 _level ) throw (RuntimeException);
+        virtual void SAL_CALL flush(  ) throw (RuntimeException);
+        virtual ::sal_Bool SAL_CALL publish( const LogRecord& Record ) throw (RuntimeException);
+
+        // XInitialization
+        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+        // XServiceInfo
+		virtual ::rtl::OUString SAL_CALL getImplementationName() throw(RuntimeException);
+        virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& _rServiceName ) throw(RuntimeException);
+        virtual Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
+
+        // OComponentHelper
+        virtual void SAL_CALL disposing();
+
+    public:
+        // XServiceInfo - static version
+		static ::rtl::OUString SAL_CALL getImplementationName_static();
+        static Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+        static Reference< XInterface > Create( const Reference< XComponentContext >& _rxContext );
+
+    public:
+        typedef ComponentMethodGuard< FileHandler > MethodGuard;
+=====================================================================
+Found a 55 line (278 tokens) duplication in the following files: 
+Starting at line 1367 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olecomponent.cxx
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olemisc.cxx
+
+void SAL_CALL OleEmbeddedObject::close( sal_Bool bDeliverOwnership )
+	throw ( util::CloseVetoException,
+			uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+    uno::Reference< uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >( this ) );
+    lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
+
+	if ( m_pInterfaceContainer )
+	{
+    	::cppu::OInterfaceContainerHelper* pContainer =
+			m_pInterfaceContainer->getContainer( ::getCppuType( ( const uno::Reference< util::XCloseListener >*) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+        	while (pIterator.hasMoreElements())
+        	{
+            	try
+            	{
+                	((util::XCloseListener*)pIterator.next())->queryClosing( aSource, bDeliverOwnership );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pIterator.remove();
+            	}
+        	}
+		}
+
+    	pContainer = m_pInterfaceContainer->getContainer(
+									::getCppuType( ( const uno::Reference< util::XCloseListener >*) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pCloseIterator(*pContainer);
+        	while (pCloseIterator.hasMoreElements())
+        	{
+            	try
+            	{
+                	((util::XCloseListener*)pCloseIterator.next())->notifyClosing( aSource );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pCloseIterator.remove();
+            	}
+        	}
+		}
+	}
+
+	Dispose();
+}
+
+//----------------------------------------------
+void SAL_CALL OleEmbeddedObject::addCloseListener( const uno::Reference< util::XCloseListener >& xListener )
+=====================================================================
+Found a 36 line (278 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/tempnam.c
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsdarm32/tempnam.c
+
+const char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+     if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+	if( access( cpdir(p, P_tmpdir),   3) != 0 )
+	   if( access( cpdir(p, "/tmp"),  3) != 0 )
+	      return(NULL);
+
+   (void) strcat(p, "/");
+   if(prefix)
+   {
+      *(p+strlen(p)+5) = '\0';
+      (void)strncat(p, prefix, 5);
+   }
+
+   (void)strcat(p, seed);
+   (void)strcat(p, "XXXXXX");
+
+   q = seed;
+   while(*q == 'Z') *q++ = 'A';
+   ++*q;
+
+   if(*mktemp(p) == '\0') return(NULL);
+=====================================================================
+Found a 59 line (278 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'L':
+=====================================================================
+Found a 38 line (278 tokens) duplication in the following files: 
+Starting at line 1057 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper.cxx
+
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTexturedPolyPolygon( const rendering::XCanvas* 							, 
+                                                                                           const uno::Reference< rendering::XPolyPolygon2D >& 	,
+                                                                                           const rendering::ViewState& 							,
+                                                                                           const rendering::RenderState& 						,
+                                                                                           const uno::Sequence< rendering::Texture >& 			,
+                                                                                           const rendering::StrokeAttributes& 					 )
+    {
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTextureMappedPolyPolygon( const rendering::XCanvas* 							, 
+                                                                                                const uno::Reference< rendering::XPolyPolygon2D >& 	,
+                                                                                                const rendering::ViewState& 						,
+                                                                                                const rendering::RenderState& 						,
+                                                                                                const uno::Sequence< rendering::Texture >& 			,
+                                                                                                const uno::Reference< geometry::XMapping2D >& 		,
+                                                                                                const rendering::StrokeAttributes& 					 )
+    {
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XPolyPolygon2D >   CanvasHelper::queryStrokeShapes( const rendering::XCanvas* 							, 
+                                                                                   const uno::Reference< rendering::XPolyPolygon2D >& 	,
+                                                                                   const rendering::ViewState& 							,
+                                                                                   const rendering::RenderState& 						,
+                                                                                   const rendering::StrokeAttributes& 					 )
+    {
+        return uno::Reference< rendering::XPolyPolygon2D >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillPolyPolygon( const rendering::XCanvas* 							, 
+                                                                                 const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
+                                                                                 const rendering::ViewState& 						viewState,
+                                                                                 const rendering::RenderState& 						renderState )
+    {
+=====================================================================
+Found a 95 line (277 tokens) duplication in the following files: 
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+		}
+#endif
+		else
+		{
+			// @@@ Note: If your data source supports adding/removing
+			//     properties, you should implement the interface
+			//     XPropertyContainer by yourself and supply your own
+			//     logic here. The base class uses the service
+			//     "com.sun.star.ucb.Store" to maintain Additional Core
+			//     properties. But using server functionality is preferred!
+
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue
+                        = xAdditionalPropSet->getPropertyValue( rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+                    else
+                    {
+                        // Old value equals new value. No error!
+                    }
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( nChanged > 0 )
+	{
+		// @@@ Save changes.
+//		storeData();
+
+		aGuard.clear();
+		aChanges.realloc( nChanged );
+		notifyPropertiesChange( aChanges );
+	}
+
+    return aRet;
+}
+
+#ifdef IMPLEMENT_COMMAND_INSERT
+
+//=========================================================================
+void Content::queryChildren( ContentRefList& rChildren )
+{
+	// @@@ Adapt method to your URL scheme...
+
+	// Obtain a list with a snapshot of all currently instanciated contents
+	// from provider and extract the contents which are direct children
+	// of this content.
+
+	::ucbhelper::ContentRefList aAllContents;
+	m_xProvider->queryExistingContents( aAllContents );
+=====================================================================
+Found a 9 line (277 tokens) duplication in the following files: 
+Starting at line 1240 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2680 - 268f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+=====================================================================
+Found a 71 line (276 tokens) duplication in the following files: 
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 550 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+			}
+#endif
+			else
+			{
+				// @@@ Note: If your data source supports adding/removing
+				//     properties, you should implement the interface
+				//     XPropertyContainer by yourself and supply your own
+				//     logic here. The base class uses the service
+				//     "com.sun.star.ucb.Store" to maintain Additional Core
+				//     properties. But using server functionality is preferred!
+
+				// Not a Core Property! Maybe it's an Additional Core Property?!
+
+				if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+				{
+					xAdditionalPropSet
+                        = uno::Reference< beans::XPropertySet >(
+							rProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "ContentType" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+			rData.aContentType );
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "Title" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND ),
+			rData.aTitle );
+		xRow->appendBoolean(
+            beans::Property( rtl::OUString::createFromAscii( "IsDocument" ),
+					  -1,
+					  getCppuBooleanType(),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+			rData.bIsDocument );
+		xRow->appendBoolean(
+            beans::Property( rtl::OUString::createFromAscii( "IsFolder" ),
+					  -1,
+					  getCppuBooleanType(),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+			rData.bIsFolder );
+=====================================================================
+Found a 15 line (276 tokens) duplication in the following files: 
+Starting at line 2578 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/typelib/typelib.cxx
+Starting at line 638 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/testcppu.cxx
+
+static sal_Bool s_aAssignableFromTab[11][11] =
+{
+						 /* from CH,BO,BY,SH,US,LO,UL,HY,UH,FL,DO */
+/* TypeClass_CHAR */			{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_BOOLEAN */			{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_BYTE */			{ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_SHORT */			{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_UNSIGNED_SHORT */	{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_LONG */			{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* TypeClass_UNSIGNED_LONG */	{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* TypeClass_HYPER */			{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+/* TypeClass_UNSIGNED_HYPER */	{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+/* TypeClass_FLOAT */			{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0 },
+/* TypeClass_DOUBLE */			{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1 }
+};
+=====================================================================
+Found a 9 line (275 tokens) duplication in the following files: 
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1275 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f30 - 1f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f40 - 1f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f50 - 1f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f60 - 1f6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f70 - 1f7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f80 - 1f8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f90 - 1f9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1fa0 - 1faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,// 1fb0 - 1fbf
+=====================================================================
+Found a 9 line (275 tokens) duplication in the following files: 
+Starting at line 768 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe70 - fe7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe80 - fe8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 62 line (275 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/attributelist.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/attributelist.cxx
+
+          sal::static_int_cast< sal_uInt32 >( i ) < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+	vector<struct TagAttribute> dummy;
+	m_pImpl->vecAttribute.swap( dummy );
+
+	assert( ! getLength() );
+}
+
+//..........................................................................
+}	// namespace framework
+=====================================================================
+Found a 15 line (275 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 1067 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+Starting at line 1292 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+Starting at line 1367 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+Starting at line 1606 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+
+    virtual ~WrappedAttributedDataPointsProperty();
+
+    virtual void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+private: //member
+    ::boost::shared_ptr< Chart2ModelContact >   m_spChart2ModelContact;
+    mutable Any                                 m_aOuterValue;
+};
+=====================================================================
+Found a 53 line (274 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+            long_type fg[4];
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                int rx;
+                int ry;
+                int rx_inv = image_subpixel_size;
+                int ry_inv = image_subpixel_size;
+                intr.coordinates(&x,  &y);
+                intr.local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 55 line (274 tokens) duplication in the following files: 
+Starting at line 906 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 494 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+}
+
+//=========================================================================
+// static
+uno::Reference< sdbc::XRow > Content::getPropertyValues(
+            const uno::Reference< lang::XMultiServiceFactory >& rSMgr,
+            const uno::Sequence< beans::Property >& rProperties,
+            const ContentProperties& rData,
+            const rtl::Reference< 
+                ::ucbhelper::ContentProviderImplHelper >& rProvider,
+            const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+					RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+            {
+				xRow->appendString ( rProp, rData.aContentType );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+			{
+				xRow->appendString ( rProp, rData.aTitle );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) )
+			{
+				xRow->appendBoolean( rProp, rData.bIsDocument );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) )
+			{
+				xRow->appendBoolean( rProp, rData.bIsFolder );
+			}
+
+			// @@@ Process other properties supported directly.
+#if 0
+            else if ( rProp.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "xxxxxx" ) ) )
+=====================================================================
+Found a 58 line (274 tokens) duplication in the following files: 
+Starting at line 581 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+Starting at line 1580 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+					else
+						delete pStream;
+				}
+			}
+	
+			if ( !xResult.is() )
+				throw io::IOException();
+	
+			if ( ( nOpenMode & embed::ElementModes::TRUNCATE ) )
+			{
+				uno::Reference< io::XTruncate > xTrunc( xResult->getOutputStream(), uno::UNO_QUERY_THROW );
+				xTrunc->truncate();
+			}
+		}
+		else
+		{
+			if ( ( nOpenMode & embed::ElementModes::TRUNCATE )
+		  	|| !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
+				throw io::IOException(); // TODO: access denied
+	
+			::ucbhelper::Content aResultContent( aFileURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
+			uno::Reference< io::XInputStream > xInStream = aResultContent.openStream();
+			xResult = static_cast< io::XStream* >( new OFSInputStreamContainer( xInStream ) );
+		}
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( packages::WrongPasswordException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+												 uno::Reference< io::XInputStream >(),
+												 aCaught );
+	}
+
+	return uno::Reference< embed::XExtendedStorageStream >( xResult, uno::UNO_QUERY_THROW );
+=====================================================================
+Found a 71 line (274 tokens) duplication in the following files: 
+Starting at line 4787 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 5044 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+			rParam.nRow2       = nRow2;
+            rParam.bMixedComparison = TRUE;
+
+			ScQueryEntry& rEntry = rParam.GetEntry(0);
+			rEntry.bDoQuery = TRUE;
+			if ( bSorted )
+				rEntry.eOp = SC_LESS_EQUAL;
+			switch ( GetStackType() )
+			{
+				case svDouble:
+				{
+					rEntry.bQueryByString = FALSE;
+					rEntry.nVal = GetDouble();
+				}
+				break;
+				case svString:
+				{
+					sStr = GetString();
+					rEntry.bQueryByString = TRUE;
+					*rEntry.pStr = sStr;
+				}
+				break;
+				case svDoubleRef :
+				case svSingleRef :
+				{
+					ScAddress aAdr;
+					if ( !PopDoubleRefOrSingleRef( aAdr ) )
+					{
+						PushInt(0);
+						return ;
+					}
+					ScBaseCell* pCell = GetCell( aAdr );
+					if (HasCellValueData(pCell))
+					{
+						rEntry.bQueryByString = FALSE;
+						rEntry.nVal = GetCellValue( aAdr, pCell );
+					}
+					else
+					{
+						if ( GetCellType( pCell ) == CELLTYPE_NOTE )
+						{
+							rEntry.bQueryByString = FALSE;
+							rEntry.nVal = 0.0;
+						}
+						else
+						{
+							GetCellString(sStr, pCell);
+							rEntry.bQueryByString = TRUE;
+							*rEntry.pStr = sStr;
+						}
+					}
+				}
+				break;
+                case svMatrix :
+                {
+                    ScMatValType nType = GetDoubleOrStringFromMatrix(
+                            rEntry.nVal, *rEntry.pStr);
+                    rEntry.bQueryByString = ScMatrix::IsStringType( nType);
+                }
+                break;
+				default:
+				{
+					SetIllegalParameter();
+					return;
+				}
+			}
+			if ( rEntry.bQueryByString )
+                rParam.bRegExp = MayBeRegExp( *rEntry.pStr, pDok );
+			if (pMat)
+			{
+				SCSIZE nMatCount = nR;
+=====================================================================
+Found a 18 line (274 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1253,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
+=====================================================================
+Found a 51 line (274 tokens) duplication in the following files: 
+Starting at line 29 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_hi.cxx
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/inputchecker/inputsequencechecker_hi.cxx
+
+InputSequenceChecker_hi::~InputSequenceChecker_hi()
+{
+}
+/* Non-Defined Class type */
+#define __ND		0
+
+/*
+ * Devanagari character type definitions
+ */
+#define __UP  1  // ChandraBindu & Anuswar
+#define	__NP  2  // Visarg
+#define __IV	3  // Independant Vowels
+#define __CN	4  // Consonants except _CK & _RC 
+#define __CK	5  // Consonants that can be followed by Nukta
+#define __RC	6  // Ra
+#define __NM	7  // Matra
+#define __RM	8  // Ra + HAL
+#define __IM	9  // Choti I Matra
+#define __HL	10 // HAL
+#define __NK	11 // Nukta
+#define __VD	12 // Vedic
+#define __HD	13 // Hindu Numerals
+
+/*
+ * Devanagari character type table
+ */
+static const sal_uInt16 devaCT[128] = {
+/*         0,    1,    2,    3,    4,    5,    6,    7,
+           8,    9,    A,    B,    C,    D,    E,    F, */
+/* 0900 */ __ND, __UP, __UP, __NP, __ND, __IV, __IV, __IV,
+           __IV, __IV, __IV, __IV, __IV, __IV, __IV, __IV,
+/* 0910 */ __IV, __IV, __IV, __IV, __IV, __CK, __CK, __CK,
+           __CN, __CN, __CN, __CN, __CK, __CN, __CN, __CN,
+/* 0920 */ __CN, __CK, __CK, __CN, __CN, __CN, __CN, __CN,
+           __CN, __CN, __CN, __CK, __CN, __CN, __CN, __CN,
+/* 0930 */ __RC, __CN, __CN, __CN, __CN, __CN, __CN, __CN,
+           __CN, __CN, __ND, __ND, __NK, __VD, __NM, __IM,
+/* 0940 */ __RM, __NM, __NM, __NM, __NM, __RM, __RM, __RM,
+           __RM, __RM, __RM, __RM, __RM, __HL, __ND, __ND,
+/* 0950 */ __ND, __VD, __VD, __VD, __VD, __ND, __ND, __ND,
+           __CN, __CN, __CN, __CN, __CN, __CN, __CN, __CN,
+/* 0960 */ __IV, __IV, __NM, __NM, __ND, __ND, __HD, __HD,
+           __HD, __HD, __HD, __HD, __HD, __HD, __HD, __HD,
+/* 0970 */ __ND, __ND, __ND, __ND, __ND, __ND, __ND, __ND,
+           __ND, __ND, __ND, __ND, __ND, __ND, __ND, __ND,
+};
+
+/*
+ * Devanagari character composition table
+ */
+static const sal_uInt16 dev_cell_check[14][14] = {
+=====================================================================
+Found a 34 line (274 tokens) duplication in the following files: 
+Starting at line 1894 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpnt/cpnt.cxx
+Starting at line 2002 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpnt/cpnt.cxx
+
+			xInv->invoke( OUString( L"inoutValuesAll"), params, seqIndizes, seqOutParams);
+
+			if( seqOutParams.getLength() == 12)
+			{
+				Reference<XSimple> xSimple= *(XSimple**)seqOutParams[0].getValue();
+				xSimple->func( L"Call from OleTest on XSimple");
+				SimpleStruct aStruct;
+				seqOutParams[1] >>= aStruct;
+				SimpleEnum aEnum= *(SimpleEnum*)seqOutParams[2].getValue();
+
+				Sequence<Any> seqAny;
+				seqOutParams[3] >>= seqAny;
+				for( int i=0; i<seqAny.getLength(); i++)
+				{
+					OUString _s;
+					seqAny[i] >>= _s;
+				}
+				
+				Any _any= *(Any*)seqOutParams[4].getValue();
+				sal_Bool _bool= *(sal_Bool*)seqOutParams[5].getValue();
+				sal_Unicode _char= *( sal_Unicode*) seqOutParams[6].getValue();
+				OUString _str= *( rtl_uString**)seqOutParams[7].getValue();
+
+				float _f= *( float*)seqOutParams[8].getValue();
+				double _d= *( double*) seqOutParams[9].getValue();
+				sal_Int8 _byte= *( sal_Int8*) seqOutParams[10].getValue();
+				sal_Int16 _short= *( sal_Int16*) seqOutParams[11].getValue();
+
+				sal_Int32 _long= *( sal_Int32*) seqOutParams[12].getValue();
+
+			}
+			break;
+		}
+	case 303:
+=====================================================================
+Found a 48 line (274 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTables.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTables.cxx
+
+using namespace connectivity::mysql;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+using namespace dbtools;
+typedef connectivity::sdbcx::OCollection OCollection_TYPE;
+
+sdbcx::ObjectType OTables::createObject(const ::rtl::OUString& _rName)
+{
+	::rtl::OUString sCatalog,sSchema,sTable;
+	::dbtools::qualifiedNameComponents(m_xMetaData,_rName,sCatalog,sSchema,sTable,::dbtools::eInDataManipulation);
+
+    static const ::rtl::OUString s_sTableTypeView(RTL_CONSTASCII_USTRINGPARAM("VIEW"));
+	static const ::rtl::OUString s_sTableTypeTable(RTL_CONSTASCII_USTRINGPARAM("TABLE"));
+	static const ::rtl::OUString s_sAll(RTL_CONSTASCII_USTRINGPARAM("%"));
+
+	Sequence< ::rtl::OUString > sTableTypes(3);
+	sTableTypes[0] = s_sTableTypeView;
+	sTableTypes[1] = s_sTableTypeTable;
+	sTableTypes[2] = s_sAll;	// just to be sure to include anything else ....
+
+	Any aCatalog;
+	if ( sCatalog.getLength() )
+		aCatalog <<= sCatalog;
+    Reference< XResultSet > xResult = m_xMetaData->getTables(aCatalog,sSchema,sTable,sTableTypes);
+
+    sdbcx::ObjectType xRet = NULL;
+	if ( xResult.is() )
+	{
+        Reference< XRow > xRow(xResult,UNO_QUERY);
+		if ( xResult->next() ) // there can be only one table with this name
+		{
+//			Reference<XStatement> xStmt = m_xConnection->createStatement();
+//			if ( xStmt.is() )
+//			{
+//				Reference< XResultSet > xPrivRes = xStmt->executeQuery();
+//				Reference< XRow > xPrivRow(xPrivRes,UNO_QUERY);
+//				while ( xPrivRes.is() && xPrivRes->next() )
+//				{
+//					if ( xPrivRow->getString(1) )
+//					{
+//					}
+//				}
+//			}
+			sal_Int32 nPrivileges =	Privilege::DROP			|
+=====================================================================
+Found a 46 line (273 tokens) duplication in the following files: 
+Starting at line 1893 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1979 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+ScXMLRejectionContext::ScXMLRejectionContext( ScXMLImport& rImport,
+											  USHORT nPrfx,
+				   	  						  const ::rtl::OUString& rLName,
+									  		const uno::Reference<xml::sax::XAttributeList>& xAttrList,
+											ScXMLChangeTrackingImportHelper* pTempChangeTrackingImportHelper ) :
+	SvXMLImportContext( rImport, nPrfx, rLName ),
+	pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
+{
+	sal_uInt32 nActionNumber(0);
+	sal_uInt32 nRejectingNumber(0);
+	ScChangeActionState nActionState(SC_CAS_VIRGIN);
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+				nActionNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_ACCEPTANCE_STATE))
+			{
+				if (IsXMLToken(sValue, XML_ACCEPTED))
+					nActionState = SC_CAS_ACCEPTED;
+				else if (IsXMLToken(sValue, XML_REJECTED))
+					nActionState = SC_CAS_REJECTED;
+			}
+			else if (IsXMLToken(aLocalName, XML_REJECTING_CHANGE_ID))
+			{
+				nRejectingNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+		}
+	}
+
+	pChangeTrackingImportHelper->StartChangeAction(SC_CAT_MOVE);
+	pChangeTrackingImportHelper->SetActionNumber(nActionNumber);
+	pChangeTrackingImportHelper->SetActionState(nActionState);
+	pChangeTrackingImportHelper->SetRejectingNumber(nRejectingNumber);
+}
+=====================================================================
+Found a 63 line (273 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+				pUnoArgs[nPos] = pCppStack;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( 
+         pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( 
+                    &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+=====================================================================
+Found a 62 line (272 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+=====================================================================
+Found a 58 line (272 tokens) duplication in the following files: 
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr, bSimpleReturn,
+			pStackStart, ( pStack - pStackStart ),
+			pGPR, nGPR,
+			pFPR, nFPR );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+=====================================================================
+Found a 59 line (272 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										  pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		CPPU_CURRENT_NAMESPACE::raiseException(&aUnoExc, pThis->getBridge()->getUno2Cpp() );
+=====================================================================
+Found a 59 line (272 tokens) duplication in the following files: 
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+
+                        pCppReturn, pReturnTypeDescr, 
+                        pStackStart, ( pStack - pStackStart ),
+                        pGPR, nGPR,
+                        pFPR, nFPR );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
+                                  *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+=====================================================================
+Found a 59 line (272 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										  pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		CPPU_CURRENT_NAMESPACE::raiseException(&aUnoExc, pThis->getBridge()->getUno2Cpp() );
+=====================================================================
+Found a 25 line (271 tokens) duplication in the following files: 
+Starting at line 155 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                    y_lr = ++m_wrap_mode_y;
+                } while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)fg[order_type::A];
+
+                ++span;
+                ++intr;
+=====================================================================
+Found a 32 line (271 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+
+                    y_hr += ry_inv;
+                    ++y_lr;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[3] > base_mask) fg[3] = base_mask;
+                if(fg[0] > fg[3])     fg[0] = fg[3];
+                if(fg[1] > fg[3])     fg[1] = fg[3];
+                if(fg[2] > fg[3])     fg[2] = fg[3];
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)fg[3];
+
+                ++span;
+                ++base_type::interpolator();
+            } while(--len);
+            return base_type::allocator().span();
+        }
+        
+    };
+=====================================================================
+Found a 65 line (271 tokens) duplication in the following files: 
+Starting at line 1232 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 1793 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+                                  sal_Int32* pScrArray, xub_StrLen nStt,
+                                  xub_StrLen nLen, xub_StrLen nNumberOfBlanks,
+                                  long nSpaceAdd )
+{
+    ASSERT( nStt + nLen <= rTxt.Len(), "String in ThaiJustify too small" )
+
+    SwTwips nNumOfTwipsToDistribute = nSpaceAdd * nNumberOfBlanks /
+                                      SPACING_PRECISION_FACTOR;
+
+    long nSpaceSum = 0;
+    USHORT nCnt = 0;
+
+    for ( USHORT nI = 0; nI < nLen; ++nI )
+    {
+        const xub_Unicode cCh = rTxt.GetChar( nStt + nI );
+
+        // check if character is not above or below base
+        if ( ( 0xE34 > cCh || cCh > 0xE3A ) &&
+             ( 0xE47 > cCh || cCh > 0xE4E ) && cCh != 0xE31 )
+        {
+            if ( nNumberOfBlanks > 0 )
+            {
+                nSpaceAdd = nNumOfTwipsToDistribute / nNumberOfBlanks;
+                --nNumberOfBlanks;
+                nNumOfTwipsToDistribute -= nSpaceAdd;
+            }
+            nSpaceSum += nSpaceAdd;
+            ++nCnt;
+        }
+
+        if ( pKernArray ) pKernArray[ nI ] += nSpaceSum;
+        if ( pScrArray ) pScrArray[ nI ] += nSpaceSum;
+    }
+
+    return nCnt;
+}
+
+/*************************************************************************
+ *                      SwScriptInfo::GetScriptInfo()
+ *************************************************************************/
+
+SwScriptInfo* SwScriptInfo::GetScriptInfo( const SwTxtNode& rTNd,
+                                           sal_Bool bAllowInvalid )
+{
+    SwClientIter aClientIter( (SwTxtNode&)rTNd );
+    SwClient* pLast = aClientIter.GoStart();
+    SwScriptInfo* pScriptInfo = 0;
+
+    while( pLast )
+    {
+        if ( pLast->ISA( SwTxtFrm ) )
+        {
+            pScriptInfo = (SwScriptInfo*)((SwTxtFrm*)pLast)->GetScriptInfo();
+            if ( pScriptInfo )
+            {
+                if ( !bAllowInvalid && STRING_LEN != pScriptInfo->GetInvalidity() )
+                    pScriptInfo = 0;
+                else break;
+            }
+        }
+        pLast = ++aClientIter;
+    }
+
+    return pScriptInfo;
+}
+=====================================================================
+Found a 47 line (271 tokens) duplication in the following files: 
+Starting at line 1606 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/cellsh1.cxx
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuhhconv.cxx
+
+{
+    //open ChineseTranslationDialog
+    Reference< XComponentContext > xContext(
+        ::cppu::defaultBootstrap_InitialComponentContext() ); //@todo get context from calc if that has one
+    if(xContext.is())
+    {
+        Reference< lang::XMultiComponentFactory > xMCF( xContext->getServiceManager() );
+        if(xMCF.is())
+        {
+            Reference< ui::dialogs::XExecutableDialog > xDialog(
+                    xMCF->createInstanceWithContext(
+                        rtl::OUString::createFromAscii("com.sun.star.linguistic2.ChineseTranslationDialog")
+                        , xContext), UNO_QUERY);
+            Reference< lang::XInitialization > xInit( xDialog, UNO_QUERY );
+            if( xInit.is() )
+            {
+                //  initialize dialog
+                Reference< awt::XWindow > xDialogParentWindow(0);
+                Sequence<Any> aSeq(1);
+                Any* pArray = aSeq.getArray();
+                PropertyValue aParam;
+                aParam.Name = rtl::OUString::createFromAscii("ParentWindow");
+                aParam.Value <<= makeAny(xDialogParentWindow);
+                pArray[0] <<= makeAny(aParam);
+                xInit->initialize( aSeq );
+
+                //execute dialog
+                sal_Int16 nDialogRet = xDialog->execute();
+                if( RET_OK == nDialogRet )
+                {
+                    //get some parameters from the dialog
+                    sal_Bool bToSimplified = sal_True;
+                    sal_Bool bUseVariants = sal_True;
+                    sal_Bool bCommonTerms = sal_True;
+                    Reference< beans::XPropertySet >  xProp( xDialog, UNO_QUERY );
+                    if( xProp.is() )
+                    {
+                        try
+                        {
+                            xProp->getPropertyValue( C2U("IsDirectionToSimplified") ) >>= bToSimplified;
+                            xProp->getPropertyValue( C2U("IsUseCharacterVariants") ) >>= bUseVariants;
+                            xProp->getPropertyValue( C2U("IsTranslateCommonTerms") ) >>= bCommonTerms;
+                        }
+                        catch( Exception& )
+                        {
+                        }
+                    }
+=====================================================================
+Found a 17 line (271 tokens) duplication in the following files: 
+Starting at line 1632 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1669 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+
+				Point					aCenter;
+				double					fdx,fdy,fa1,fa2;
+
+				aCenter.X()=(pA->GetRect().Left()+pA->GetRect().Right())/2;
+				aCenter.Y()=(pA->GetRect().Top()+pA->GetRect().Bottom())/2;
+				fdx=(double)(pA->GetStartPoint().X()-aCenter.X());
+				fdy=(double)(pA->GetStartPoint().Y()-aCenter.Y());
+				fdx*=(double)pA->GetRect().GetHeight();
+				fdy*=(double)pA->GetRect().GetWidth();
+				if (fdx==0.0 && fdy==0.0) fdx=1.0;
+				fa1=atan2(-fdy,fdx);
+				fdx=(double)(pA->GetEndPoint().X()-aCenter.X());
+				fdy=(double)(pA->GetEndPoint().Y()-aCenter.Y());
+				fdx*=(double)pA->GetRect().GetHeight();
+				fdy*=(double)pA->GetRect().GetWidth();
+				if (fdx==0.0 && fdy==0.0) fdx=1.0;
+				fa2=atan2(-fdy,fdx);
+=====================================================================
+Found a 49 line (271 tokens) duplication in the following files: 
+Starting at line 1035 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1421 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+                    }
+                    ++pIter;
+                }
+                
+                aGuard.unlock();
+                
+                // Now notify our listeners. Unlock mutex to prevent deadlocks
+                if ( pInsertedImages != 0 )
+                {
+                    ConfigurationEvent aInsertEvent;
+                    aInsertEvent.aInfo           = uno::makeAny( i );
+                    aInsertEvent.Accessor        = uno::makeAny( xThis );
+                    aInsertEvent.Source          = xIfac;
+                    aInsertEvent.ResourceURL     = m_aResourceString;
+                    aInsertEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                                    static_cast< OWeakObject *>( pInsertedImages ), UNO_QUERY ));
+                    implts_notifyContainerListener( aInsertEvent, NotifyOp_Insert );
+                }
+                if ( pReplacedImages != 0 )
+                {
+                    ConfigurationEvent aReplaceEvent;
+                    aReplaceEvent.aInfo           = uno::makeAny( i );
+                    aReplaceEvent.Accessor        = uno::makeAny( xThis );
+                    aReplaceEvent.Source          = xIfac;
+                    aReplaceEvent.ResourceURL     = m_aResourceString;
+                    aReplaceEvent.ReplacedElement = Any();
+                    aReplaceEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                                    static_cast< OWeakObject *>( pReplacedImages ), UNO_QUERY ));
+                    implts_notifyContainerListener( aReplaceEvent, NotifyOp_Replace );
+                }
+                if ( pRemovedImages != 0 )
+                {
+                    ConfigurationEvent aRemoveEvent;
+                    aRemoveEvent.aInfo           = uno::makeAny( i );
+                    aRemoveEvent.Accessor        = uno::makeAny( xThis );
+                    aRemoveEvent.Source          = xIfac;
+                    aRemoveEvent.ResourceURL     = m_aResourceString;
+                    aRemoveEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >( 
+                                                        static_cast< OWeakObject *>( pRemovedImages ), UNO_QUERY ));
+                    implts_notifyContainerListener( aRemoveEvent, NotifyOp_Remove );
+                }
+
+                aGuard.lock();
+            }
+        }
+    }
+}
+
+void SAL_CALL ModuleImageManager::store() 
+=====================================================================
+Found a 26 line (271 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/386ix/public.h
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+
+const int in_quit ANSI((void));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char *));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+=====================================================================
+Found a 75 line (271 tokens) duplication in the following files: 
+Starting at line 920 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtEnd(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtStart(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedHigh(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedLow(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCorrelatedSubqueries(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInComparisons(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInExists(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInIns(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getURL(  ) throw(SQLException, RuntimeException)
+{
+=====================================================================
+Found a 14 line (271 tokens) duplication in the following files: 
+Starting at line 491 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+
+    virtual ~WrappedHasSubTitleProperty();
+
+    virtual void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+private: //member
+    ::boost::shared_ptr< Chart2ModelContact > m_spChart2ModelContact;
+};
+=====================================================================
+Found a 31 line (270 tokens) duplication in the following files: 
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+Starting at line 597 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: xml2xcd.cxx,v $
+ *
+ *  $Revision: 1.11 $
+ *
+ *  last change: $Author: obo $ $Date: 2006/09/16 14:33:43 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+=====================================================================
+Found a 48 line (270 tokens) duplication in the following files: 
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+Starting at line 1367 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olecomponent.cxx
+
+void SAL_CALL OleComponent::close( sal_Bool bDeliverOwnership )
+	throw ( util::CloseVetoException,
+			uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+    uno::Reference< uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >( this ) );
+    lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
+
+	if ( m_pInterfaceContainer )
+	{
+    	::cppu::OInterfaceContainerHelper* pContainer =
+			m_pInterfaceContainer->getContainer( ::getCppuType( ( const uno::Reference< util::XCloseListener >* ) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pIterator( *pContainer );
+        	while ( pIterator.hasMoreElements() )
+        	{
+            	try
+            	{
+                	( (util::XCloseListener* )pIterator.next() )->queryClosing( aSource, bDeliverOwnership );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pIterator.remove();
+            	}
+        	}
+		}
+
+    	pContainer = m_pInterfaceContainer->getContainer(
+									::getCppuType( ( const uno::Reference< util::XCloseListener >* ) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pCloseIterator( *pContainer );
+        	while ( pCloseIterator.hasMoreElements() )
+        	{
+            	try
+            	{
+                	( (util::XCloseListener* )pCloseIterator.next() )->notifyClosing( aSource );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pCloseIterator.remove();
+            	}
+        	}
+		}
+=====================================================================
+Found a 42 line (270 tokens) duplication in the following files: 
+Starting at line 669 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+
+void DeferredSetNodeImpl::failedCommit(data::Accessor const& _aAccessor, SubtreeChange& rChanges)
+{
+	OSL_ENSURE(rChanges.isSetNodeChange(),"ERROR: Change type GROUP does not match set");
+	OSL_ENSURE(	rChanges.getElementTemplateName() ==  getElementTemplate()->getName().toString(),
+				"ERROR: Element template of change does not match the template of the set");
+	OSL_ENSURE(	rChanges.getElementTemplateModule() ==  getElementTemplate()->getModule().toString(),
+				"ERROR: Element template module of change does not match the template of the set");
+
+	for(SubtreeChange::MutatingChildIterator it = rChanges.begin_changes(), stop = rChanges.end_changes();
+		it != stop;
+		++it)
+	{
+		Name aElementName = makeElementName(it->getNodeName(), Name::NoValidate());
+
+		Element* pOriginal = getStoredElement(aElementName);
+
+		if (Element* pNewElement = m_aChangedData.getElement(aElementName)) 
+		{
+			Element aOriginal;
+			if (pOriginal)
+			{
+				aOriginal = *pOriginal;
+				OSL_ASSERT(aOriginal.isValid());
+			}
+			else
+				OSL_ASSERT(!aOriginal.isValid());
+
+			// handle a added, replaced or deleted node
+            data::TreeSegment aRemovedTree;
+
+			if (pNewElement->isValid())
+			{
+				OSL_ENSURE( it->ISA(AddNode) , "Unexpected type of element change");
+				if (!it->ISA(AddNode)) throw Exception("Unexpected type of element change");
+
+				AddNode& rAddNode =  static_cast<AddNode&>(*it);
+
+				aRemovedTree = rAddNode.getReplacedTree();
+				OSL_ASSERT( rAddNode.isReplacing() == (0!=pOriginal)  );
+				OSL_ASSERT( rAddNode.isReplacing() == aRemovedTree.is()  );
+
+				if (rAddNode.wasInserted())
+=====================================================================
+Found a 14 line (270 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+
+    virtual ~WrappedAxisLabelExistenceProperty();
+ 
+    virtual void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+private: //member
+    ::boost::shared_ptr< Chart2ModelContact >   m_spChart2ModelContact;
+    bool        m_bMain;
+=====================================================================
+Found a 46 line (269 tokens) duplication in the following files: 
+Starting at line 2027 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleEditableTextPara.cxx
+Starting at line 2126 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleEditableTextPara.cxx
+
+        aPropSet.SetSelection( MakeSelection( nIndex ) );
+        uno::Reference< beans::XPropertySetInfo > xPropSetInfo = aPropSet.getPropertySetInfo();
+        if (!xPropSetInfo.is())
+            throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Cannot query XPropertySetInfo")),
+                                        uno::Reference< uno::XInterface >
+                                        ( static_cast< XAccessible* > (this) ) );   // disambiguate hierarchy
+
+        // build sequence of available properties to check
+        sal_Int32 nLenReqAttr = rRequestedAttributes.getLength();
+        uno::Sequence< beans::Property > aProperties;
+        if (nLenReqAttr)
+        {
+            const rtl::OUString *pRequestedAttributes = rRequestedAttributes.getConstArray();
+
+            aProperties.realloc( nLenReqAttr );
+            beans::Property *pProperties = aProperties.getArray();
+            sal_Int32 nCurLen = 0;
+            for (sal_Int32 i = 0;  i < nLenReqAttr;  ++i)
+            {
+                beans::Property aProp;
+                try
+                {
+                    aProp = xPropSetInfo->getPropertyByName( pRequestedAttributes[i] );
+                }
+                catch (beans::UnknownPropertyException &)
+                {
+                    continue;
+                }
+                pProperties[ nCurLen++ ] = aProp;
+            }
+            aProperties.realloc( nCurLen );
+        }
+        else
+            aProperties = xPropSetInfo->getProperties();
+        
+        sal_Int32 nLength = aProperties.getLength();
+        const beans::Property *pProperties = aProperties.getConstArray();
+
+        // build resulting sequence
+        uno::Sequence< beans::PropertyValue > aOutSequence( nLength );
+        beans::PropertyValue* pOutSequence = aOutSequence.getArray();
+        sal_Int32 nOutLen = 0;
+        for (sal_Int32 i = 0;  i < nLength;  ++i)
+        {
+            // calling 'regular' functions that will operate on the selection 
+            PropertyState eState = aPropSet.getPropertyState( pProperties->Name );
+=====================================================================
+Found a 13 line (269 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 491 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+Starting at line 234 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+
+    virtual ~WrappedAxisTitleExistenceProperty();
+
+    virtual void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+private: //member
+    ::boost::shared_ptr< Chart2ModelContact >   m_spChart2ModelContact;
+=====================================================================
+Found a 18 line (268 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fucon3d.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fucon3d.cxx
+
+		case SID_3D_PYRAMID:
+		{
+			::basegfx::B2DPolygon aInnerPoly;
+
+			aInnerPoly.append(::basegfx::B2DPoint(0, -1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(25*5, -900*5));
+			aInnerPoly.append(::basegfx::B2DPoint(50*5, -800*5));
+			aInnerPoly.append(::basegfx::B2DPoint(100*5, -600*5));
+			aInnerPoly.append(::basegfx::B2DPoint(200*5, -200*5));
+			aInnerPoly.append(::basegfx::B2DPoint(300*5, 200*5));
+			aInnerPoly.append(::basegfx::B2DPoint(400*5, 600*5));
+			aInnerPoly.append(::basegfx::B2DPoint(500*5, 1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(400*5, 1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(300*5, 1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(200*5, 1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(100*5, 1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(50*5, 1000*5));
+			aInnerPoly.append(::basegfx::B2DPoint(0, 1000*5));
+=====================================================================
+Found a 51 line (268 tokens) duplication in the following files: 
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+#endif
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 15 line (268 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	};
+
+	const INT16 A_nPunctDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err  // 112 ...
+	};
+
+	DYN StmArrayStatu2 * dpStatusTop
+=====================================================================
+Found a 12 line (268 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/kernel/namesort.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/kernel/namesort.cxx
+
+       42, 44, 46, 48,  50, 52, 54, 56,      58, 60, 62,255, 255,255,255,255,
+
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255, //128 ..
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255, //160 ..
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+        
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255
+    };
+=====================================================================
+Found a 59 line (267 tokens) duplication in the following files: 
+Starting at line 3409 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 1013 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+			((SdrTextObj*)this)->pOutlinerParaObject=rOutliner.CreateParaObject();
+	}
+
+	Point aTextPos(aAnkRect.TopLeft());
+	Size aTextSiz(rOutliner.GetPaperSize()); // GetPaperSize() hat etwas Toleranz drauf, oder?
+
+	// #106653#
+	// For draw objects containing text correct hor/ver alignment if text is bigger
+	// than the object itself. Without that correction, the text would always be
+	// formatted to the left edge (or top edge when vertical) of the draw object.
+	if(!IsTextFrame())
+	{
+		if(aAnkRect.GetWidth() < aTextSiz.Width() && !IsVerticalWriting())
+		{
+			// #110129#
+			// Horizontal case here. Correct only if eHAdj == SDRTEXTHORZADJUST_BLOCK,
+			// else the alignment is wanted.
+			if(SDRTEXTHORZADJUST_BLOCK == eHAdj)
+			{
+				eHAdj = SDRTEXTHORZADJUST_CENTER;
+			}
+		}
+
+		if(aAnkRect.GetHeight() < aTextSiz.Height() && IsVerticalWriting())
+		{
+			// #110129#
+			// Vertical case here. Correct only if eHAdj == SDRTEXTVERTADJUST_BLOCK,
+			// else the alignment is wanted.
+			if(SDRTEXTVERTADJUST_BLOCK == eVAdj)
+			{
+				eVAdj = SDRTEXTVERTADJUST_CENTER;
+			}
+		}
+	}
+
+	if (eHAdj==SDRTEXTHORZADJUST_CENTER || eHAdj==SDRTEXTHORZADJUST_RIGHT)
+	{
+		long nFreeWdt=aAnkRect.GetWidth()-aTextSiz.Width();
+		if (eHAdj==SDRTEXTHORZADJUST_CENTER)
+			aTextPos.X()+=nFreeWdt/2;
+		if (eHAdj==SDRTEXTHORZADJUST_RIGHT)
+			aTextPos.X()+=nFreeWdt;
+	}
+	if (eVAdj==SDRTEXTVERTADJUST_CENTER || eVAdj==SDRTEXTVERTADJUST_BOTTOM)
+	{
+		long nFreeHgt=aAnkRect.GetHeight()-aTextSiz.Height();
+		if (eVAdj==SDRTEXTVERTADJUST_CENTER)
+			aTextPos.Y()+=nFreeHgt/2;
+		if (eVAdj==SDRTEXTVERTADJUST_BOTTOM)
+			aTextPos.Y()+=nFreeHgt;
+	}
+	if (aGeo.nDrehWink!=0)
+		RotatePoint(aTextPos,aAnkRect.TopLeft(),aGeo.nSin,aGeo.nCos);
+
+	if (pAnchorRect)
+		*pAnchorRect=aAnkRect;
+
+	// rTextRect ist bei ContourFrame in einigen Faellen nicht korrekt
+	rTextRect=Rectangle(aTextPos,aTextSiz);
+=====================================================================
+Found a 12 line (267 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND),		WID_PAGE_BACK,		&ITYPE(beans::XPropertySet),					0,  0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM),			WID_PAGE_BOTTOM,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT),				WID_PAGE_LEFT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT),			WID_PAGE_RIGHT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),		WID_PAGE_LDBITMAP,	&ITYPE(awt::XBitmap),							beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	    WID_PAGE_LDNAME,	&::getCppuType((const OUString*)0),			    beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER),			WID_PAGE_NUMBER,	&::getCppuType((const sal_Int16*)0),			beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION),		WID_PAGE_ORIENT,	&::getCppuType((const view::PaperOrientation*)0),0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH),			WID_PAGE_WIDTH,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN("BackgroundFullSize"),			WID_PAGE_BACKFULL,	&::getBooleanCppuType(),						0, 0},
+=====================================================================
+Found a 67 line (267 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Utils.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Utils.cxx
+
+using namespace rtl;
+
+sal_uInt32 AStringLen( const sal_Char *pAStr )
+{
+	sal_uInt32  nStrLen = 0;
+
+	if ( pAStr != NULL )
+	{
+		const sal_Char *pTempStr = pAStr;
+
+		while( *pTempStr )
+		{
+			pTempStr++;
+		} // while
+
+		nStrLen = (sal_uInt32)( pTempStr - pAStr );
+	} // if
+
+	return nStrLen;
+} // AStringLen
+sal_Char* cpystr( sal_Char* dst, const sal_Char* src )
+{
+    const sal_Char* psrc = src;
+    sal_Char* pdst = dst;
+
+    while( *pdst++ = *psrc++ );
+    return ( dst );
+}
+
+sal_Char* cpynstr( sal_Char* dst, const sal_Char* src, sal_uInt32 cnt )
+{
+
+    const sal_Char* psrc = src;
+    sal_Char* pdst = dst;
+    sal_uInt32 len = cnt;
+    sal_uInt32 i;
+
+    if ( len >= AStringLen(src) )
+    {
+        return( cpystr( dst, src ) );
+    }
+
+    // copy string by char
+    for( i = 0; i < len; i++ )
+        *pdst++ = *psrc++;
+    *pdst = '\0';
+
+    return ( dst );
+}
+
+//------------------------------------------------------------------------
+sal_Bool cmpstr( const sal_Char* str1, const sal_Char* str2, sal_uInt32 len )
+{
+    const sal_Char* pBuf1 = str1;
+    const sal_Char* pBuf2 = str2;
+    sal_uInt32 i = 0;
+
+    while ( (*pBuf1 == *pBuf2) && i < len )
+    {
+        (pBuf1)++;
+        (pBuf2)++;
+        i++;
+    }
+    return( i == len );
+}
+//------------------------------------------------------------------------
+sal_Bool cmpustr( const sal_Unicode* str1, const sal_Unicode* str2, sal_uInt32 len )
+=====================================================================
+Found a 7 line (267 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c50 - 2c57
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c58 - 2c5f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c60 - 2c67
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c68 - 2c6f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c70 - 2c77
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c78 - 2c7f
+    {0x6a, 0x2c81}, {0x15, 0x2c80}, {0x6a, 0x2c83}, {0x15, 0x2c82}, {0x6a, 0x2c85}, {0x15, 0x2c84}, {0x6a, 0x2c87}, {0x15, 0x2c86}, // 2c80 - 2c87, Coptic
+=====================================================================
+Found a 51 line (267 tokens) duplication in the following files: 
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_textlayout.cxx
+
+        mpFont.reset();
+    }
+
+    // XTextLayout
+    uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > > SAL_CALL TextLayout::queryTextShapes(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > >();
+    }
+
+    uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryInkMeasures(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return uno::Sequence< geometry::RealRectangle2D >();
+    }
+
+    uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryMeasures(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // TODO
+        return uno::Sequence< geometry::RealRectangle2D >();
+    }
+
+    uno::Sequence< double > SAL_CALL TextLayout::queryLogicalAdvancements(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        return maLogicalAdvancements;
+    }
+
+    void SAL_CALL TextLayout::applyLogicalAdvancements( const uno::Sequence< double >& aAdvancements ) throw (lang::IllegalArgumentException, uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        if( aAdvancements.getLength() != maText.Length )
+        {
+            OSL_TRACE( "TextLayout::applyLogicalAdvancements(): mismatching number of advancements" );
+            throw lang::IllegalArgumentException();
+        }
+
+        maLogicalAdvancements = aAdvancements;
+    }
+
+    geometry::RealRectangle2D SAL_CALL TextLayout::queryTextBounds(  ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+=====================================================================
+Found a 52 line (267 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+                break;
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+=====================================================================
+Found a 13 line (267 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+
+	};
+
+	const INT16 A_nPunctDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err  // 112 ...
+	};
+=====================================================================
+Found a 11 line (266 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 6 line (266 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd0 - ffd7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd8 - ffdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe0 - ffe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff0 - fff7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff8 - ffff
+=====================================================================
+Found a 10 line (266 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+=====================================================================
+Found a 57 line (265 tokens) duplication in the following files: 
+Starting at line 1118 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodel.cxx
+Starting at line 553 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomod.cxx
+
+		return (::cppu::OWeakObject * )new SvxUnoTextField( ID_EXT_DATEFIELD );
+	}
+
+	uno::Reference< uno::XInterface > xRet;
+
+	const String aType( aServiceSpecifier );
+	if( aType.EqualsAscii( "com.sun.star.presentation.", 0, 26 ) )
+	{
+		SvxShape* pShape = NULL;
+
+		sal_uInt16 nType = OBJ_TEXT;
+		// create a shape wrapper
+		if( aType.EqualsAscii( "TitleTextShape", 26, 14 ) )
+		{
+			nType = OBJ_TEXT;
+		}
+		else if( aType.EqualsAscii( "OutlinerShape", 26, 13 ) )
+		{
+			nType = OBJ_TEXT;
+		}
+		else if( aType.EqualsAscii( "SubtitleShape", 26, 13 ) )
+		{
+			nType = OBJ_TEXT;
+		}
+		else if( aType.EqualsAscii( "GraphicObjectShape", 26, 18 ) )
+		{
+			nType = OBJ_GRAF;
+		}
+		else if( aType.EqualsAscii( "PageShape", 26, 9 ) )
+		{
+			nType = OBJ_PAGE;
+		}
+		else if( aType.EqualsAscii( "OLE2Shape", 26, 9 ) )
+		{
+			nType = OBJ_OLE2;
+		}
+		else if( aType.EqualsAscii( "ChartShape", 26, 10 ) )
+		{
+			nType = OBJ_OLE2;
+		}
+		else if( aType.EqualsAscii( "TableShape", 26, 10 ) )
+		{
+			nType = OBJ_OLE2;
+		}
+		else if( aType.EqualsAscii( "OrgChartShape", 26, 13 ) )
+		{
+			nType = OBJ_OLE2;
+		}
+		else if( aType.EqualsAscii( "NotesShape", 26, 13 ) )
+		{
+			nType = OBJ_TEXT;
+		}
+		else if( aType.EqualsAscii( "HandoutShape", 26, 13 ) )
+		{
+			nType = OBJ_PAGE;
+		}
+		else
+=====================================================================
+Found a 42 line (265 tokens) duplication in the following files: 
+Starting at line 3925 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3992 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	double fCount           = 0.0;
+	double fSumX            = 0.0;
+	double fSumY            = 0.0;
+	double fSumDeltaXDeltaY = 0.0; // sum of (ValX-MeanX)*(ValY-MeanY)
+	double fSumSqrDeltaX    = 0.0; // sum of (ValX-MeanX)^2
+	for (SCSIZE i = 0; i < nC1; i++)
+    {
+		for (SCSIZE j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				double fValX = pMat1->GetDouble(i,j);
+				double fValY = pMat2->GetDouble(i,j);
+				fSumX += fValX;
+				fSumY += fValY;
+				fCount++;
+			}
+		}
+    }
+	if (fCount < 1.0)
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+                    fSumSqrDeltaX    += (fValX - fMeanX) * (fValX - fMeanX);
+                }
+            }
+        }
+		if (fSumSqrDeltaX == 0.0)
+            PushError( errDivisionByZero);
+		else
+			PushDouble( fMeanY + fSumDeltaXDeltaY / fSumSqrDeltaX * (fVal - fMeanX));
+=====================================================================
+Found a 45 line (265 tokens) duplication in the following files: 
+Starting at line 1789 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1875 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+	Section = (sal_Char *)stripBlanks(Section, &Len);
+	pProfile->m_Sections[pProfile->m_NoSections - 1].m_Line = Line;
+	pProfile->m_Sections[pProfile->m_NoSections - 1].m_Offset = Section - pProfile->m_Lines[Line];
+	pProfile->m_Sections[pProfile->m_NoSections - 1].m_Len = Len;
+
+	return (sal_True);
+}
+
+static void removeSection(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection)
+{
+	sal_uInt32 Section;
+
+	if ((Section = pSection - pProfile->m_Sections) < pProfile->m_NoSections)
+	{
+		free (pSection->m_Entries);
+		pSection->m_Entries=0;
+		if (pProfile->m_NoSections - Section > 1)
+		{
+			memmove(&pProfile->m_Sections[Section], &pProfile->m_Sections[Section + 1],
+					(pProfile->m_NoSections - Section - 1) * sizeof(osl_TProfileSection));
+
+			memset(&pProfile->m_Sections[pProfile->m_NoSections - 1],
+				0,
+				(pProfile->m_MaxSections - pProfile->m_NoSections) * sizeof(osl_TProfileSection));
+			pProfile->m_Sections[pProfile->m_NoSections - 1].m_Entries = 0;
+		}
+		else
+		{
+			pSection->m_Entries = 0;
+		}
+
+		pProfile->m_NoSections--;
+	}
+
+	return;
+}
+
+static osl_TProfileSection* findEntry(osl_TProfileImpl* pProfile, const sal_Char* Section,
+                                      const sal_Char* Entry, sal_uInt32 *pNoEntry)
+{
+static  sal_uInt32    Sect = 0;
+		sal_uInt32    i, n;
+		sal_uInt32    Len;
+		const sal_Char* pStr;
+		osl_TProfileSection* pSec = NULL;
+=====================================================================
+Found a 11 line (265 tokens) duplication in the following files: 
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,21,21,21,21,11,21,21,// 2cf0 - 2cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f	Block index 0x27
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2e80 - 2e8f
+=====================================================================
+Found a 47 line (265 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1575 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+            !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type", (a >>= b) && b == getCppuType< sal_Int32 >());
+=====================================================================
+Found a 14 line (265 tokens) duplication in the following files: 
+Starting at line 834 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+	m_pDbgWin->AddText( "Reading Conmmand:" );
+	m_pDbgWin->AddText( " Methode: " );
+	m_pDbgWin->AddText( aSmartMethodId.GetText() );
+	m_pDbgWin->AddText( " Params:" );
+	if( nParams & PARAM_USHORT_1 )	{m_pDbgWin->AddText( " n1:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr1 ) );}
+	if( nParams & PARAM_USHORT_2 )	{m_pDbgWin->AddText( " n2:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr2 ) );}
+	if( nParams & PARAM_USHORT_3 )	{m_pDbgWin->AddText( " n3:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr3 ) );}
+	if( nParams & PARAM_USHORT_4 )	{m_pDbgWin->AddText( " n4:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr4 ) );}
+	if( nParams & PARAM_ULONG_1 )	{m_pDbgWin->AddText( " nl1:" );m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );}
+	if( nParams & PARAM_STR_1 )		{m_pDbgWin->AddText( " s1:" );m_pDbgWin->AddText( aString1 );}
+	if( nParams & PARAM_STR_2 )		{m_pDbgWin->AddText( " s2:" );m_pDbgWin->AddText( aString2 );}
+	if( nParams & PARAM_BOOL_1 )    {m_pDbgWin->AddText( " b1:" );m_pDbgWin->AddText( bBool1 ? "TRUE" : "FALSE" );}
+	if( nParams & PARAM_BOOL_2 )    {m_pDbgWin->AddText( " b2:" );m_pDbgWin->AddText( bBool2 ? "TRUE" : "FALSE" );}
+	m_pDbgWin->AddText( "\n" );
+=====================================================================
+Found a 42 line (264 tokens) duplication in the following files: 
+Starting at line 3859 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3992 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	double fCount           = 0.0;
+	double fSumX            = 0.0;
+	double fSumY            = 0.0;
+	double fSumDeltaXDeltaY = 0.0; // sum of (ValX-MeanX)*(ValY-MeanY)
+	double fSumSqrDeltaX    = 0.0; // sum of (ValX-MeanX)^2
+	for (SCSIZE i = 0; i < nC1; i++)
+    {
+		for (SCSIZE j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				double fValX = pMat1->GetDouble(i,j);
+				double fValY = pMat2->GetDouble(i,j);
+				fSumX += fValX;
+				fSumY += fValY;
+				fCount++;
+			}
+		}
+    }
+	if (fCount < 1.0)
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+                    fSumSqrDeltaX    += (fValX - fMeanX) * (fValX - fMeanX);
+                }
+            }
+        }
+		if (fSumSqrDeltaX == 0.0)
+            PushError( errDivisionByZero);
+		else
+			PushDouble( fMeanY + fSumDeltaXDeltaY / fSumSqrDeltaX * (fVal - fMeanX));
+=====================================================================
+Found a 18 line (264 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1252,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
+=====================================================================
+Found a 60 line (264 tokens) duplication in the following files: 
+Starting at line 3107 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 878 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_StreamSocket.cxx
+
+                osl::Condition aCondition;
+                SendClientThread mySendThread;
+                mySendThread.create();
+            
+                asSocket.enableNonBlockingMode( sal_False );
+                ::osl::StreamSocket ssConnectionSocket;
+                oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
+                CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
+            
+                thread_sleep( 1 );
+                //shutdown write after client the first send complete
+                ssConnectionSocket.shutdown( osl_Socket_DirWrite );
+            
+                // recv should not shutdown
+                sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
+            
+                sal_Int32 nWrite = ssConnectionSocket.write( pReadBuffer, 11 );
+                // still can read
+                sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 , 12 );
+                t_print("after read 2, nRead1 is %d, nWrite is %d, nRead3 is %d\n", nRead1, nWrite, nRead3 );
+                mySendThread.join();
+                ssConnectionSocket.close();
+                asSocket.close();
+                        
+                CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not send(write).", 
+                                        nRead1  > 0  && nWrite == 0 && nRead3 > 0);
+            
+            }
+        
+        CPPUNIT_TEST_SUITE( shutdown );
+        CPPUNIT_TEST( shutdown_001 );
+        CPPUNIT_TEST( shutdown_002 );
+        CPPUNIT_TEST( shutdown_003 );
+        CPPUNIT_TEST_SUITE_END();
+    }; // class shutdown
+
+    class isExceptionPending: public CppUnit::TestFixture
+    {
+    public:
+        void isExPending_001()
+            {
+                ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+                TimeValue *pTimeout;
+                pTimeout  = ( TimeValue* )malloc( sizeof( TimeValue ) );            
+                pTimeout->Seconds = 3;
+                pTimeout->Nanosec = 0;
+                sal_Bool bOk = asSocket.isExceptionPending( pTimeout );
+                free( pTimeout );
+                                        
+                CPPUNIT_ASSERT_MESSAGE( "test for isExceptionPending.", 
+                                        bOk == sal_False );
+            }
+        
+        /**tester's comments: lack of a case that return sal_True, do not know when it will return sal_True*/
+        
+        
+        CPPUNIT_TEST_SUITE( isExceptionPending );
+        CPPUNIT_TEST( isExPending_001 );
+        CPPUNIT_TEST_SUITE_END();
+    }; // class isExceptionPending
+=====================================================================
+Found a 70 line (264 tokens) duplication in the following files: 
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/cpp/remoteclient/remoteclient.cxx
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/examples/officeclient.cxx
+
+			seqNames.getArray()[0] = OUString::createFromAscii( "com.sun.star.bridge.example.OfficeClientExample" );
+			pNames = &seqNames;
+		}
+	}
+	return *pNames;
+}
+
+}
+
+using namespace remotebridges_officeclient;
+#define IMPLEMENTATION_NAME "com.sun.star.comp.remotebridges.example.OfficeClientSample"
+
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+					OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
+			
+			const Sequence< OUString > & rSNL = getSupportedServiceNames();
+			const OUString * pArray = rSNL.getConstArray();
+			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+				xNewKey->createKey( pArray[nPos] );
+			
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	void * pRet = 0;
+	
+	if (pServiceManager && rtl_str_compare( pImplName, IMPLEMENTATION_NAME ) == 0)
+	{
+		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
+			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+			OUString::createFromAscii( pImplName ),
+			CreateInstance, getSupportedServiceNames() ) );
+		
+		if (xFactory.is())
+		{
+			xFactory->acquire();
+			pRet = xFactory.get();
+		}
+	}
+	
+	return pRet;
+}
+}
+=====================================================================
+Found a 75 line (264 tokens) duplication in the following files: 
+Starting at line 312 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx
+
+			seqNames.getArray()[0] = OUString::createFromAscii( "com.sun.star.documentconversion.XFlatXml" );
+			pNames = &seqNames;
+		}
+	}
+	return *pNames;
+}
+
+}
+
+using namespace XFlatXml;
+#define IMPLEMENTATION_NAME "com.sun.star.documentconversion.XFlatXml"
+
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+{
+        // printf("\ncomponent_getImplementationEnvironment\n");
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+	 
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+
+        //fprintf(stderr,"\ncomponent_writeInfo\n");
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+					OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
+			
+			const Sequence< OUString > & rSNL = getSupportedServiceNames();
+			const OUString * pArray = rSNL.getConstArray();
+			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+				xNewKey->createKey( pArray[nPos] );
+			
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+        //fprintf(stderr,"\ncomponent_getFactory");
+	void * pRet = 0;
+	
+	if (pServiceManager && rtl_str_compare( pImplName, IMPLEMENTATION_NAME ) == 0)
+	{
+		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
+			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+			OUString::createFromAscii( pImplName ),
+			CreateInstance, getSupportedServiceNames() ) );
+		
+		if (xFactory.is())
+		{
+			xFactory->acquire();
+			pRet = xFactory.get();
+		}
+	}
+	
+	return pRet;
+}
+}
+=====================================================================
+Found a 137 line (264 tokens) duplication in the following files: 
+Starting at line 1506 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+case 20:
+YY_RULE_SETUP
+#line 345 "RTFScanner.lex"
+ECHO;
+	YY_BREAK
+#line 1027 "RTFScanner.cxx"
+			case YY_STATE_EOF(INITIAL):
+				yyterminate();
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = yy_hold_char;
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between yy_current_buffer and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			yy_n_chars = yy_current_buffer->yy_n_chars;
+			yy_current_buffer->yy_input_file = yyin;
+			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state();
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++yy_c_buf_p;
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = yy_c_buf_p;
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer() )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				yy_did_buffer_switch_on_eof = 0;
+
+				if ( yywrap() )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				yy_c_buf_p =
+					yytext_ptr + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				yy_c_buf_p =
+				&yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of yylex */
+=====================================================================
+Found a 33 line (264 tokens) duplication in the following files: 
+Starting at line 946 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	if ( ( m_nObjectState != -1 || nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
+	  && ( m_nObjectState == -1 || nEntryConnectionMode != embed::EntryInitModes::NO_INIT ) )
+	{
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "Can't change persistant representation of activated object!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+    if ( m_bWaitSaveCompleted )
+	{
+		if ( nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
+			saveCompleted( ( m_xParentStorage != xStorage || !m_aEntryName.equals( sEntName ) ) );
+		else
+			throw embed::WrongStateException(
+						::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+						uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( nEntryConnectionMode == embed::EntryInitModes::DEFAULT_INIT
+=====================================================================
+Found a 47 line (264 tokens) duplication in the following files: 
+Starting at line 941 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1461 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObject::setPersistentEntry" );
+
+	// TODO: use lObjArgs
+
+	// the type of the object must be already set
+	// a kind of typedetection should be done in the factory;
+	// the only exception is object initialized from a stream,
+	// the class ID will be detected from the stream
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	// May be LOADED should be forbidden here ???
+	if ( ( m_nObjectState != -1 || nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
+	  && ( m_nObjectState == -1 || nEntryConnectionMode != embed::EntryInitModes::NO_INIT ) )
+	{
+		// if the object is not loaded
+		// it can not get persistant representation without initialization
+
+		// if the object is loaded
+		// it can switch persistant representation only without initialization
+
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "Can't change persistant representation of activated object!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+	{
+		if ( nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
+			saveCompleted( ( m_xParentStorage != xStorage || !m_aEntryName.equals( sEntName ) ) );
+		else
+			throw embed::WrongStateException(
+						::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+						uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+
+static char nodrop_mask_bits[] = {
+   0xc0, 0x0f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00,
+   0xfc, 0xff, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x7e, 0xfe, 0x01, 0x00,
+   0x3f, 0xff, 0x03, 0x00, 0x9f, 0xff, 0x03, 0x00, 0xdf, 0xff, 0x03, 0x00,
+   0xff, 0xef, 0x03, 0x00, 0xff, 0xe7, 0x03, 0x00, 0xff, 0xf3, 0x03, 0x00,
+   0xfe, 0xf9, 0x01, 0x00, 0xfe, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x00, 0x00,
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+
+static char nodrop_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00,
+   0xf8, 0x7f, 0x00, 0x00, 0x7c, 0xf8, 0x00, 0x00, 0x1c, 0xfc, 0x00, 0x00,
+   0x1e, 0xfe, 0x01, 0x00, 0x0e, 0xdf, 0x01, 0x00, 0x8e, 0xcf, 0x01, 0x00,
+   0xce, 0xc7, 0x01, 0x00, 0xee, 0xc3, 0x01, 0x00, 0xfe, 0xe1, 0x01, 0x00,
+   0xfc, 0xe0, 0x00, 0x00, 0x7c, 0xf8, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00,
+   0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedata_mask.h
+
+static char movedata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xe0, 0x01, 0x00,
+   0x3c, 0xe0, 0x01, 0x00, 0x3c, 0xe0, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xf8, 0xff, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedata_curs.h
+
+static char movedata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00,
+   0x10, 0x40, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00,
+   0xa8, 0xaa, 0x00, 0x00, 0x50, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/linkdata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkdata_mask.h
+
+static char linkdata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xf8, 0x3f, 0x00,
+   0x3c, 0xf8, 0x3f, 0x00, 0x3c, 0xf8, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00,
+   0xfc, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/linkdata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkdata_curs.h
+
+static char linkdata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+   0x10, 0xf0, 0x1f, 0x00, 0x08, 0x70, 0x18, 0x00, 0x10, 0xf0, 0x18, 0x00,
+   0xa8, 0x72, 0x18, 0x00, 0x50, 0x35, 0x1a, 0x00, 0x00, 0x30, 0x1f, 0x00,
+   0x00, 0xb0, 0x1f, 0x00, 0x00, 0x70, 0x1f, 0x00, 0x00, 0xf0, 0x1f, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_mask.h
+
+static char copydata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xf8, 0x3f, 0x00,
+   0x3c, 0xf8, 0x3f, 0x00, 0x3c, 0xf8, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00,
+   0xfc, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_curs.h
+
+static char copydata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+   0x10, 0xf0, 0x1f, 0x00, 0x08, 0xf0, 0x1f, 0x00, 0x10, 0xf0, 0x1e, 0x00,
+   0xa8, 0xf2, 0x1e, 0x00, 0x50, 0x35, 0x18, 0x00, 0x00, 0xf0, 0x1e, 0x00,
+   0x00, 0xf0, 0x1e, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf0, 0x1f, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 39 line (264 tokens) duplication in the following files: 
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1519 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+            (a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("1")));
+    }
+    {
+        css::uno::Type b(getCppuType< rtl::OUString >());
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Type",
+            !(a >>= b) && b == getCppuType< rtl::OUString >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testType() {
+=====================================================================
+Found a 13 line (264 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+
+	const INT16 A_nPunctDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err  // 112 ...
+	};
+
+	const INT16 A_nKeywordDefStatus[C_nStatusSize] =
+=====================================================================
+Found a 12 line (264 tokens) duplication in the following files: 
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	};
+
+	const INT16 A_nWhitespaceStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fof,err,err,err,err,err,err,err,err,wht,fig,wht,wht,fig,err,err,
+	 err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+	 wht,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // ... 63
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // ... 95
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig  // ... 127
+=====================================================================
+Found a 13 line (264 tokens) duplication in the following files: 
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+
+	const INT16 A_nAtTagDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+	 err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+	 faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 63
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+	};
+
+	const INT16 A_nPunctDefStatus[C_nStatusSize] =
+=====================================================================
+Found a 44 line (263 tokens) duplication in the following files: 
+Starting at line 1919 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 1976 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	else if (fTyp == 3.0)
+	{
+		double fCount1  = 0.0;
+		double fCount2  = 0.0;
+		double fSum1    = 0.0;
+		double fSumSqr1 = 0.0;
+		double fSum2    = 0.0;
+		double fSumSqr2 = 0.0;
+		double fVal;
+		for (i = 0; i < nC1; i++)
+			for (j = 0; j < nR1; j++)
+			{
+				if (!pMat1->IsString(i,j))
+				{
+					fVal = pMat1->GetDouble(i,j);
+					fSum1    += fVal;
+					fSumSqr1 += fVal * fVal;
+					fCount1++;
+				}
+			}
+		for (i = 0; i < nC2; i++)
+			for (j = 0; j < nR2; j++)
+			{
+				if (!pMat2->IsString(i,j))
+				{
+					fVal = pMat2->GetDouble(i,j);
+					fSum2    += fVal;
+					fSumSqr2 += fVal * fVal;
+					fCount2++;
+				}
+			}
+		if (fCount1 < 2.0 || fCount2 < 2.0)
+		{
+			SetNoValue();
+			return;
+		}
+		double fS1 = (fSumSqr1-fSum1*fSum1/fCount1)/(fCount1-1.0)/fCount1;
+		double fS2 = (fSumSqr2-fSum2*fSum2/fCount2)/(fCount2-1.0)/fCount2;
+		if (fS1 + fS2 == 0.0)
+		{
+			SetNoValue();
+			return;
+		}
+		fT = fabs(fSum1/fCount1 - fSum2/fCount2)/sqrt(fS1+fS2);
+=====================================================================
+Found a 33 line (263 tokens) duplication in the following files: 
+Starting at line 529 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+    if (!aRef.Ref1.IsColRel())
+        rBuffer.append(sal_Unicode('$'));
+    if ( aRef.Ref1.IsColDeleted() )
+        rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+    else
+        MakeColStr(rBuffer, aRef.Ref1.nCol );
+    if (!aRef.Ref1.IsRowRel())
+        rBuffer.append(sal_Unicode('$'));
+    if ( aRef.Ref1.IsRowDeleted() )
+        rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+    else
+        MakeRowStr( rBuffer, aRef.Ref1.nRow );
+    if (!bSingleRef)
+    {
+        rBuffer.append(sal_Unicode(':'));
+        if (aRef.Ref2.IsFlag3D() || aRef.Ref2.nTab != aRef.Ref1.nTab)
+        {
+            if (aRef.Ref2.IsTabDeleted())
+            {
+                if (!aRef.Ref2.IsTabRel())
+                    rBuffer.append(sal_Unicode('$'));
+                rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+                rBuffer.append(sal_Unicode('.'));
+            }
+            else
+            {
+                String aDoc;
+                String aRefStr( MakeTabStr( rComp, aRef.Ref2.nTab, aDoc ) );
+                rBuffer.append(aDoc);
+                if (!aRef.Ref2.IsTabRel()) rBuffer.append(sal_Unicode('$'));
+                rBuffer.append(aRefStr);
+            }
+        }
+=====================================================================
+Found a 48 line (263 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1263 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< double >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
+=====================================================================
+Found a 13 line (263 tokens) duplication in the following files: 
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+Starting at line 1447 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+
+    virtual ~WrappedNumberOfLinesProperty();
+
+    virtual void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+protected: //methods
+    bool    detectInnerValue( uno::Any& rInnerValue ) const;
+=====================================================================
+Found a 13 line (263 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+
+	const INT16 A_nKeywordDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+	 err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+	 fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err  // 112 ...
+	};
+
+	DYN StmArrayStatu2 * dpStatusTop
+=====================================================================
+Found a 18 line (262 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 915 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_874,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2026,0xFFFF,0xFFFF,
+=====================================================================
+Found a 54 line (262 tokens) duplication in the following files: 
+Starting at line 3051 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 820 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_StreamSocket.cxx
+
+                ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT9);
+                asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
+                CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
+                CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
+                sal_Char pReadBuffer[40];
+//          osl::Condition aCondition;
+                SendClientThread mySendThread;
+                mySendThread.create();
+            
+                asSocket.enableNonBlockingMode( sal_False );
+                ::osl::StreamSocket ssConnectionSocket;
+                oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
+                CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
+            
+                /* set socket option SO_LINGER 0, so close immediatly */
+                linger aLingerSet;
+                sal_Int32 nBufferLen = sizeof( struct linger );
+                aLingerSet.l_onoff = 0;
+                aLingerSet.l_linger = 0;
+
+                ssConnectionSocket.setOption( osl_Socket_OptionLinger,  &aLingerSet, nBufferLen );                    
+                thread_sleep( 1 );
+                //sal_uInt32 nRecv1 = 0;
+                sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
+                        
+                //shutdown read after client the first send complete
+                ssConnectionSocket.shutdown( osl_Socket_DirRead );
+            
+                sal_Int32 nRead2 = ssConnectionSocket.read( pReadBuffer + nRead1, 12 );         
+                sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 + nRead2, 12 );
+                t_print("after read 2, nRead1 is %d, nRead2 is %d, nRead3 is %d \n", nRead1, nRead2, nRead3 );
+                mySendThread.join();
+            
+                ssConnectionSocket.close();
+                asSocket.close();
+            
+                /* on Linux, if send is before shutdown(DirRead), can read, nRecv2 still > 0, 
+                   http://dbforums.com/arch/186/2002/12/586417
+                   While on Solaris, after shutdown(DirRead), all read will return 0
+                */
+#ifdef LINUX
+                CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).", 
+                                        nRead1 > 0  && nRead3 == 0 );
+#else
+                CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).", 
+                                        nRead1 > 0  && nRead2 == 0 && nRead3 == 0 );
+#endif
+            
+            }
+        
+        void shutdown_003()
+            {
+                ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+                ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT9);
+=====================================================================
+Found a 42 line (262 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+};
+=====================================================================
+Found a 38 line (262 tokens) duplication in the following files: 
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+Starting at line 1470 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	// May be LOADED should be forbidden here ???
+	if ( ( m_nObjectState != -1 || nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
+	  && ( m_nObjectState == -1 || nEntryConnectionMode != embed::EntryInitModes::NO_INIT ) )
+	{
+		// if the object is not loaded
+		// it can not get persistant representation without initialization
+
+		// if the object is loaded
+		// it can switch persistant representation only without initialization
+
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "Can't change persistant representation of activated object!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+	{
+		if ( nEntryConnectionMode == embed::EntryInitModes::NO_INIT )
+			saveCompleted( ( m_xParentStorage != xStorage || !m_aEntryName.equals( sEntName ) ) );
+		else
+			throw embed::WrongStateException(
+						::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+						uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+=====================================================================
+Found a 55 line (262 tokens) duplication in the following files: 
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+	for( ; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'n':
+=====================================================================
+Found a 36 line (262 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/remote/static/proxy.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/remote/static/stub.cxx
+
+	sal_Int32 i;
+	//--------------------------------
+	// Collect all needed types !
+	//--------------------------------
+	if( typelib_TypeClass_INTERFACE_ATTRIBUTE == pType->eTypeClass )
+	{
+		pAttributeType = ( typelib_InterfaceAttributeTypeDescription * ) pType;
+		if( pReturn )
+		{
+			TYPELIB_DANGER_GET( &pReturnType , pAttributeType->pAttributeTypeRef );
+			bConversionNeededForReturn = remote_relatesToInterface( pReturnType );
+		}
+		else
+		{
+			nArgCount = 1;
+			ppArgType = (typelib_TypeDescription **) alloca( sizeof( void * ) );
+			pbIsIn  = ( sal_Bool * ) alloca( sizeof( sal_Bool ) );
+			pbIsOut = ( sal_Bool * ) alloca( sizeof( sal_Bool ) );
+			pbConversionNeeded = ( sal_Bool * ) alloca( sizeof( sal_Bool ) );
+			pbIsIn[0]  = sal_True;
+			pbIsOut[0] = sal_False;
+			ppArgType[0] = 0;
+			TYPELIB_DANGER_GET( &( ppArgType[0] ) , pAttributeType->pAttributeTypeRef );
+			pbConversionNeeded[0] = remote_relatesToInterface( ppArgType[0] );
+		}
+	}
+	if( typelib_TypeClass_INTERFACE_METHOD == pType->eTypeClass )
+	{
+		pMethodType = ( typelib_InterfaceMethodTypeDescription * ) pType;
+		TYPELIB_DANGER_GET( &pReturnType , pMethodType->pReturnTypeRef );
+		bConversionNeededForReturn = remote_relatesToInterface( pReturnType );
+		nArgCount = pMethodType->nParams;
+		ppArgType = (typelib_TypeDescription **) alloca( sizeof( void * ) * nArgCount );
+		pbIsIn  = (sal_Bool * ) alloca( sizeof( sal_Bool ) * nArgCount );
+		pbIsOut = (sal_Bool * ) alloca( sizeof( sal_Bool ) * nArgCount );
+		pbConversionNeeded = ( sal_Bool * ) alloca( sizeof( sal_Bool ) * nArgCount );
+=====================================================================
+Found a 11 line (262 tokens) duplication in the following files: 
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+
+	const INT16 A_nKeywordDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+	 err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+	 fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err  // 112 ...
+	};
+=====================================================================
+Found a 11 line (262 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	const INT16 A_nPunctDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err  // 112 ...
+	};
+=====================================================================
+Found a 11 line (262 tokens) duplication in the following files: 
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+
+	const INT16 A_nBezDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+	 err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+	 fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+	 fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+	 bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err
+	};
+=====================================================================
+Found a 11 line (262 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/cx_c_std.cxx
+
+	const INT16 A_nOperatorDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err
+	};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotfld_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotrow_mask.h
+
+static char pivotrow_mask_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00,
+   0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0x00,
+   0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0x00,
+   0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x1f, 0x00, 0x00,
+   0x00, 0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
+   0x00, 0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00,
+   0x00, 0x7f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00,
+   0x00, 0xe1, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00,
+   0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefile_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/moveflnk_mask.h
+
+static char moveflnk_mask_bits[] = {
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00,
+   0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00,
+   0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00,
+   0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00,
+   0x00, 0xc0, 0x07, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x80, 0x07, 0x00,
+   0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawmirror_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/mirror_mask.h
+
+static char mirror_mask_bits[] = {
+   0x00, 0x00, 0x04, 0x00, 0xfe, 0x0f, 0x0e, 0x00, 0xfe, 0x0f, 0x1f, 0x00,
+   0xfe, 0x8f, 0x3f, 0x00, 0xfe, 0x0f, 0x1f, 0x00, 0xfe, 0x8f, 0x0f, 0x00,
+   0xbe, 0x8f, 0x0f, 0x00, 0xbe, 0xcf, 0x07, 0x00, 0xbe, 0xcf, 0x87, 0x00,
+   0xbe, 0xef, 0xc3, 0x01, 0xbe, 0xef, 0xe3, 0x03, 0xfe, 0xff, 0xf1, 0x07,
+   0xfe, 0xff, 0x79, 0x0f, 0xfe, 0xff, 0x3c, 0x1e, 0xfe, 0xff, 0x1e, 0x3c,
+   0xfe, 0x7f, 0x0f, 0x1e, 0x00, 0xfc, 0x07, 0x0f, 0x00, 0xfe, 0x83, 0x07,
+   0x00, 0xbe, 0xc7, 0x03, 0x00, 0x1f, 0xef, 0x01, 0x00, 0x1f, 0xfe, 0x00,
+   0x80, 0x0f, 0x7c, 0x00, 0xc0, 0x1d, 0x38, 0x00, 0x80, 0x0f, 0x10, 0x00,
+   0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawmirror_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/mirror_curs.h
+
+static char mirror_curs_bits[] = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x03, 0xf8, 0xf5, 0xff,
+   0xfb, 0xfb, 0xee, 0xff, 0x0b, 0xfa, 0xf5, 0xff, 0xeb, 0xfa, 0xfa, 0xff,
+   0xeb, 0xfa, 0xfa, 0xff, 0xeb, 0x7a, 0xfd, 0xff, 0xeb, 0x7a, 0xfd, 0xff,
+   0xeb, 0xba, 0x7e, 0xff, 0xeb, 0xba, 0xbe, 0xfe, 0xeb, 0x5a, 0x5f, 0xfd,
+   0x0b, 0x5a, 0xaf, 0xfa, 0xfb, 0xab, 0xd7, 0xf5, 0x03, 0xa8, 0xeb, 0xeb,
+   0xff, 0xd7, 0xf5, 0xf5, 0xff, 0xd7, 0xfa, 0xfa, 0xff, 0x6b, 0x7d, 0xfd,
+   0xff, 0xeb, 0xba, 0xfe, 0xff, 0xf5, 0x55, 0xff, 0xff, 0xf5, 0xab, 0xff,
+   0xff, 0xfa, 0xd7, 0xff, 0x7f, 0xf7, 0xef, 0xff, 0xff, 0xfa, 0xff, 0xff,
+   0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/crop_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcrop_mask.h
+
+static char drawcrop_mask_bits[] = {
+   0x00, 0xf8, 0x01, 0x00, 0x00, 0xf8, 0x01, 0x00, 0xfc, 0xff, 0x0f, 0x00,
+   0xfc, 0xff, 0x0f, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0xfc, 0xff, 0x0f, 0x00,
+   0xfc, 0xff, 0x0f, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0xfc, 0xf8, 0x01, 0x00,
+   0xfc, 0xf8, 0x01, 0x00, 0xfc, 0xf8, 0x01, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x01, 0x00, 0xfc, 0x00, 0x00, 0x00,
+   0xfc, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/crop_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcrop_curs.h
+
+static char drawcrop_curs_bits[] = {
+   0xff, 0x0f, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff,
+   0x07, 0x60, 0xf8, 0xff, 0xf7, 0x6f, 0xfb, 0xff, 0xf7, 0x6f, 0xfb, 0xff,
+   0x37, 0x60, 0xf8, 0xff, 0xb7, 0x6f, 0xff, 0xff, 0xb7, 0x6f, 0xff, 0xff,
+   0xb7, 0x6f, 0xff, 0xff, 0xb7, 0x6f, 0xff, 0xff, 0xb7, 0x6f, 0xff, 0xff,
+   0x30, 0x60, 0xff, 0xff, 0xb6, 0x7f, 0xff, 0xff, 0xb6, 0x7f, 0xff, 0xff,
+   0x30, 0x00, 0xff, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xb7, 0xff, 0xff, 0xff,
+   0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/crook_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcrook_mask.h
+
+static char drawcrook_mask_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x83, 0xc1, 0x00, 0x80, 0xc7, 0xe3, 0x01, 0xc0, 0xef, 0xf7, 0x03,
+   0xcc, 0xef, 0xf7, 0x33, 0x9e, 0xff, 0xff, 0x79, 0xbf, 0xff, 0xff, 0xfd,
+   0x77, 0xff, 0xff, 0xee, 0xee, 0xf6, 0x6f, 0x77, 0xfc, 0xff, 0xff, 0x3f,
+   0xb8, 0xff, 0xff, 0x1d, 0xf0, 0xff, 0xff, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f,
+   0xf8, 0x01, 0x80, 0x1f, 0x7c, 0x00, 0x00, 0x3e, 0x38, 0x00, 0x00, 0x1c,
+   0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/crook_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcrook_curs.h
+
+static char drawcrook_curs_bits[] = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0x3e, 0xff, 0x7f, 0xbb, 0xdd, 0xfe,
+   0x7f, 0xbb, 0xdd, 0xfe, 0xf3, 0xb6, 0x6d, 0xcf, 0xed, 0xb6, 0x6d, 0xb7,
+   0xdd, 0x75, 0xae, 0xbb, 0xbb, 0x0b, 0xd0, 0xdd, 0xb7, 0xf1, 0x8f, 0xed,
+   0x4f, 0x0e, 0x70, 0xf2, 0xbf, 0xf1, 0x8f, 0xfd, 0x5f, 0xfe, 0x7f, 0xfa,
+   0xaf, 0xff, 0xff, 0xf5, 0xd7, 0xff, 0xff, 0xeb, 0xef, 0xff, 0xff, 0xf7,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfile_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyflnk_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkfile_mask.h
+
+static char linkfile_mask_bits[] = {
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00,
+   0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00,
+   0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xf1, 0x7f,
+   0x00, 0xff, 0xf1, 0x7f, 0x00, 0xe7, 0xf3, 0x7f, 0x00, 0xe0, 0xf3, 0x7f,
+   0x00, 0xc0, 0xf7, 0x7f, 0x00, 0xc0, 0xf7, 0x7f, 0x00, 0x80, 0xf7, 0x7f,
+   0x00, 0x80, 0xf7, 0x7f, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0xf0, 0x7f,
+   0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkdata_mask.h
+
+static char linkdata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xf8, 0x3f, 0x00,
+   0x3c, 0xf8, 0x3f, 0x00, 0x3c, 0xf8, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00,
+   0xfc, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 10 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_mask.h
+
+static char assw_mask_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x00,0x10,0x1f,
+ 0x00,0x00,0x18,0x0e,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xfc,
+ 0x00,0x00,0x00,0xfc,0x03,0x00,0x00,0xfc,0x01,0x00,0x00,0x3c,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 34 line (261 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        { 20, 2, L_FIX}, // "sprmPDyaLine" pap.lspd an LSPD
+        { 21, 2, L_FIX}, // "sprmPDyaBefore" pap.dyaBefore
+        { 22, 2, L_FIX}, // "sprmPDyaAfter" pap.dyaAfter
+        { 23, 0, L_VAR}, // "?sprmPChgTabs" pap.itbdMac, pap.rgdxaTab, ...
+        { 24, 1, L_FIX}, // "sprmPFInTable" pap.fInTable
+        { 25, 1, L_FIX}, // "sprmPTtp" pap.fTtp
+        { 26, 2, L_FIX}, // "sprmPDxaAbs" pap.dxaAbs
+        { 27, 2, L_FIX}, // "sprmPDyaAbs" pap.dyaAbs
+        { 28, 2, L_FIX}, // "sprmPDxaWidth" pap.dxaWidth
+        { 29, 1, L_FIX}, // "sprmPPc" pap.pcHorz, pap.pcVert
+        { 30, 2, L_FIX}, // "sprmPBrcTop10" pap.brcTop BRC10
+        { 31, 2, L_FIX}, // "sprmPBrcLeft10" pap.brcLeft BRC10
+        { 32, 2, L_FIX}, // "sprmPBrcBottom10" pap.brcBottom BRC10
+        { 33, 2, L_FIX}, // "sprmPBrcRight10" pap.brcRight BRC10
+        { 34, 2, L_FIX}, // "sprmPBrcBetween10" pap.brcBetween BRC10
+        { 35, 2, L_FIX}, // "sprmPBrcBar10" pap.brcBar BRC10
+        { 36, 2, L_FIX}, // "sprmPFromText10" pap.dxaFromText dxa
+        { 37, 1, L_FIX}, // "sprmPWr" pap.wr wr
+        { 38, 2, L_FIX}, // "sprmPBrcTop" pap.brcTop BRC
+        { 39, 2, L_FIX}, // "sprmPBrcLeft" pap.brcLeft BRC
+        { 40, 2, L_FIX}, // "sprmPBrcBottom" pap.brcBottom BRC
+        { 41, 2, L_FIX}, // "sprmPBrcRight" pap.brcRight BRC
+        { 42, 2, L_FIX}, // "sprmPBrcBetween" pap.brcBetween BRC
+        { 43, 2, L_FIX}, // "sprmPBrcBar" pap.brcBar BRC word
+        { 44, 1, L_FIX}, // "sprmPFNoAutoHyph" pap.fNoAutoHyph
+        { 45, 2, L_FIX}, // "sprmPWHeightAbs" pap.wHeightAbs w
+        { 46, 2, L_FIX}, // "sprmPDcs" pap.dcs DCS
+        { 47, 2, L_FIX}, // "sprmPShd" pap.shd SHD
+        { 48, 2, L_FIX}, // "sprmPDyaFromText" pap.dyaFromText dya
+        { 49, 2, L_FIX}, // "sprmPDxaFromText" pap.dxaFromText dxa
+        { 50, 1, L_FIX}, // "sprmPFBiDi" pap.fBiDi 0 or 1 byte
+        { 51, 1, L_FIX}, // "sprmPFWidowControl" pap.fWidowControl 0 or 1 byte
+        { 52, 0, L_FIX}, // "?sprmPRuler 52"
+        { 53, 1, L_FIX}, // "sprmCFStrikeRM" chp.fRMarkDel 1 or 0 bit
+=====================================================================
+Found a 11 line (261 tokens) duplication in the following files: 
+Starting at line 3793 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3889 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptSeal24Vert[] =
+{
+	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
+	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
+	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
+	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
+	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
+	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
+	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
+	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
+	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
+=====================================================================
+Found a 12 line (261 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/linkdata_mask.h
+
+static char linkdata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xf8, 0x3f, 0x00,
+   0x3c, 0xf8, 0x3f, 0x00, 0x3c, 0xf8, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00,
+   0xfc, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00,
+   0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 28 line (261 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+void OFlatTable::construct()
+{
+	Any aValue = ConfigManager::GetDirectConfigProperty(ConfigManager::LOCALE);
+	LanguageType eLanguage = MsLangId::convertIsoStringToLanguage(comphelper::getString(aValue),'-');
+
+	::com::sun::star::lang::Locale aAppLocale(MsLangId::convertLanguageToLocale(eLanguage));
+	Sequence< ::com::sun::star::uno::Any > aArg(1);
+	aArg[0] <<= aAppLocale;
+
+	Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(m_pConnection->getDriver()->getFactory()->createInstanceWithArguments(::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatsSupplier"),aArg),UNO_QUERY);
+	m_xNumberFormatter = Reference< ::com::sun::star::util::XNumberFormatter >(m_pConnection->getDriver()->getFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatter")),UNO_QUERY);
+	m_xNumberFormatter->attachNumberFormatsSupplier(xSupplier);
+
+	INetURLObject aURL;
+	aURL.SetURL(getEntry());
+
+	if(aURL.getExtension() != rtl::OUString(m_pConnection->getExtension()))
+		aURL.setExtension(m_pConnection->getExtension());
+
+	String aFileName = aURL.GetMainURL(INetURLObject::NO_DECODE);
+
+	m_pFileStream = createStream_simpleError( aFileName,STREAM_READWRITE | STREAM_NOCREATE | STREAM_SHARE_DENYWRITE);
+
+	if(!m_pFileStream)
+		m_pFileStream = createStream_simpleError( aFileName,STREAM_READ | STREAM_NOCREATE | STREAM_SHARE_DENYNONE);
+
+	if(m_pFileStream)
+	{
+=====================================================================
+Found a 25 line (261 tokens) duplication in the following files: 
+Starting at line 907 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+Starting at line 1160 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+
+	m_aStrValueRange[18] = aMap1;
+
+	TInt2IntMap aMap;
+	aMap[adEmpty]			= ADOS::MapADOType2Jdbc(adEmpty);
+	aMap[adTinyInt]			= ADOS::MapADOType2Jdbc(adTinyInt);
+	aMap[adSmallInt]		= ADOS::MapADOType2Jdbc(adSmallInt);
+	aMap[adInteger]			= ADOS::MapADOType2Jdbc(adInteger);
+	aMap[adBigInt]			= ADOS::MapADOType2Jdbc(adBigInt);
+	aMap[adUnsignedTinyInt]	= ADOS::MapADOType2Jdbc(adUnsignedTinyInt);
+	aMap[adUnsignedSmallInt]= ADOS::MapADOType2Jdbc(adUnsignedSmallInt);
+	aMap[adUnsignedInt]		= ADOS::MapADOType2Jdbc(adUnsignedInt);
+	aMap[adUnsignedBigInt]	= ADOS::MapADOType2Jdbc(adUnsignedBigInt);
+	aMap[adSingle]			= ADOS::MapADOType2Jdbc(adSingle);
+	aMap[adDouble]			= ADOS::MapADOType2Jdbc(adDouble);
+	aMap[adCurrency]		= ADOS::MapADOType2Jdbc(adCurrency);
+	aMap[adDecimal]			= ADOS::MapADOType2Jdbc(adDecimal);
+	aMap[adNumeric]			= ADOS::MapADOType2Jdbc(adNumeric);
+	aMap[adBoolean]			= ADOS::MapADOType2Jdbc(adBoolean);
+	aMap[adError]			= ADOS::MapADOType2Jdbc(adError);
+	aMap[adUserDefined]		= ADOS::MapADOType2Jdbc(adUserDefined);
+	aMap[adVariant]			= ADOS::MapADOType2Jdbc(adVariant);
+	aMap[adIDispatch]		= ADOS::MapADOType2Jdbc(adIDispatch);
+	aMap[adIUnknown]		= ADOS::MapADOType2Jdbc(adIUnknown);
+	aMap[adGUID]			= ADOS::MapADOType2Jdbc(adGUID);
+	aMap[adDate]			= _bJetEngine ? ADOS::MapADOType2Jdbc(adDBTimeStamp) : ADOS::MapADOType2Jdbc(adDate);
+=====================================================================
+Found a 38 line (261 tokens) duplication in the following files: 
+Starting at line 1057 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvashelper.cxx
+
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTexturedPolyPolygon( const rendering::XCanvas* 							/*pCanvas*/, 
+                                                                                           const uno::Reference< rendering::XPolyPolygon2D >& 	/*xPolyPolygon*/, 
+                                                                                           const rendering::ViewState& 							/*viewState*/, 
+                                                                                           const rendering::RenderState& 						/*renderState*/, 
+                                                                                           const uno::Sequence< rendering::Texture >& 			/*textures*/, 
+                                                                                           const rendering::StrokeAttributes& 					/*strokeAttributes*/ )
+    {
+        // TODO
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTextureMappedPolyPolygon( const rendering::XCanvas* 							/*pCanvas*/, 
+                                                                                                const uno::Reference< rendering::XPolyPolygon2D >&	/*xPolyPolygon*/, 
+                                                                                                const rendering::ViewState& 						/*viewState*/, 
+                                                                                                const rendering::RenderState& 						/*renderState*/, 
+                                                                                                const uno::Sequence< rendering::Texture >& 			/*textures*/, 
+                                                                                                const uno::Reference< geometry::XMapping2D >& 		/*xMapping*/, 
+                                                                                                const rendering::StrokeAttributes& 					/*strokeAttributes*/ )
+    {
+        // TODO
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XPolyPolygon2D >   CanvasHelper::queryStrokeShapes( const rendering::XCanvas* 							/*pCanvas*/, 
+                                                                                   const uno::Reference< rendering::XPolyPolygon2D >& 	/*xPolyPolygon*/, 
+                                                                                   const rendering::ViewState& 							/*viewState*/, 
+                                                                                   const rendering::RenderState& 						/*renderState*/, 
+                                                                                   const rendering::StrokeAttributes& 					/*strokeAttributes*/ )
+    {
+        // TODO
+        return uno::Reference< rendering::XPolyPolygon2D >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillPolyPolygon( const rendering::XCanvas* 							/*pCanvas*/, 
+                                                                                 const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 
+=====================================================================
+Found a 40 line (260 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/odsl/ODSLParser.cxx
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/StorageXXmlReader.cxx
+
+  MyHandler handler;
+
+  if (aArguments.getLength()!=1)
+  {
+	  return 1;
+  }
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+		// construct an URL of the input file name
+		rtl::OUString arg=aArguments[0];
+		rtl_uString *dir=NULL;
+		osl_getProcessWorkingDir(&dir);
+		rtl::OUString absFileUrl;
+		osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+		rtl_uString_release(dir);
+/*
+		// get file simple file access service
+		uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+		xFactory->createInstanceWithContext(
+			::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")), 
+			xContext), uno::UNO_QUERY_THROW );
+
+		// open file
+		uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+*/
+
+		uno::Reference <lang::XSingleServiceFactory> xStorageFactory(
+			xServiceFactory->createInstance (rtl::OUString::createFromAscii("com.sun.star.embed.StorageFactory")), uno::UNO_QUERY_THROW);
+		uno::Sequence< uno::Any > aArgs( 2 );
+		aArgs[0] <<= absFileUrl;
+		aArgs[1] <<= embed::ElementModes::READ;
+		uno::Reference<embed::XStorage> xStorage(xStorageFactory->createInstanceWithArguments(aArgs), uno::UNO_QUERY_THROW);
+
+		// parse file. The reader will close the input stream.
+		std::auto_ptr<xxml::XXmlReader> reader=xxml::XXmlReader::createXXmlReader(handler);
+=====================================================================
+Found a 41 line (260 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 59 line (260 tokens) duplication in the following files: 
+Starting at line 2494 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 2645 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    mnIdx = 0;
+
+    if (nStartFc >= 0)
+        SeekPos(nStartFc);
+
+    pSt->Seek(nOldPos);
+}
+
+WW8PLCFx_Fc_FKP::WW8Fkp::Entry::Entry(const Entry &rEntry)
+    : mnFC(rEntry.mnFC), mnLen(rEntry.mnLen), mnIStd(rEntry.mnIStd),
+    mbMustDelete(rEntry.mbMustDelete)
+{
+    if (mbMustDelete)
+    {
+        mpData = new sal_uInt8[mnLen];
+        memcpy(mpData, rEntry.mpData, mnLen);
+    }
+    else
+        mpData = rEntry.mpData;
+}
+
+WW8PLCFx_Fc_FKP::WW8Fkp::Entry&
+    WW8PLCFx_Fc_FKP::WW8Fkp::Entry::operator=(const Entry &rEntry)
+{
+    if (mbMustDelete)
+        delete[] mpData;
+
+    mnFC = rEntry.mnFC;
+    mnLen = rEntry.mnLen;
+    mnIStd = rEntry.mnIStd;
+    mbMustDelete = rEntry.mbMustDelete;
+
+    if (mbMustDelete)
+    {
+        mpData = new sal_uInt8[mnLen];
+        memcpy(mpData, rEntry.mpData, mnLen);
+    }
+    else
+        mpData = rEntry.mpData;
+    return *this;
+}
+
+WW8PLCFx_Fc_FKP::WW8Fkp::Entry::~Entry()
+{
+    if (mbMustDelete)
+        delete[] mpData;
+}
+
+void WW8PLCFx_Fc_FKP::WW8Fkp::Reset(WW8_FC nFc)
+{
+    SetIdx(0);
+    if (nFc >= 0)
+        SeekPos(nFc);
+}
+
+bool WW8PLCFx_Fc_FKP::WW8Fkp::SeekPos(WW8_FC nFc)
+{
+    if (nFc < maEntries[0].mnFC)
+    {
+=====================================================================
+Found a 41 line (260 tokens) duplication in the following files: 
+Starting at line 930 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/swparrtf.cxx
+
+						pAktNd->EndOfSectionIndex() )
+				{
+					pPos->nContent.Assign( 0, 0 );
+					pPam->SetMark(); pPam->DeleteMark();
+					pDoc->GetNodes().Delete( pPos->nNode, 1 );
+					pPam->Move( fnMoveBackward );
+				}
+			}
+		}
+		// nun noch das SplitNode vom Ende aufheben
+		else if( !IsNewDoc() )
+		{
+			if( pPos->nContent.GetIndex() )		// dann gabs am Ende kein \par,
+				pPam->Move( fnMoveForward, fnGoNode ); 	// als zum naechsten Node
+			SwTxtNode* pTxtNode = pPos->nNode.GetNode().GetTxtNode();
+			SwNodeIndex aPrvIdx( pPos->nNode );
+			if( pTxtNode && pTxtNode->CanJoinPrev( &aPrvIdx ) &&
+				*pSttNdIdx <= aPrvIdx )
+			{
+				// eigentlich muss hier ein JoinNext erfolgen, aber alle Cursor
+				// usw. sind im pTxtNode angemeldet, so dass der bestehen
+				// bleiben MUSS.
+
+				// Absatz in Zeichen-Attribute umwandeln, aus dem Prev die
+				// Absatzattribute und die Vorlage uebernehmen!
+				SwTxtNode* pPrev = aPrvIdx.GetNode().GetTxtNode();
+				pTxtNode->ChgFmtColl( pPrev->GetTxtColl() );
+				pTxtNode->FmtToTxtAttr( pPrev );
+				pTxtNode->SwCntntNode::ResetAllAttr();
+
+                if( pPrev->HasSwAttrSet() )
+					pTxtNode->SwCntntNode::SetAttr( *pPrev->GetpSwAttrSet() );
+
+				if( &pPam->GetBound(TRUE).nNode.GetNode() == pPrev )
+					pPam->GetBound(TRUE).nContent.Assign( pTxtNode, 0 );
+				if( &pPam->GetBound(FALSE).nNode.GetNode() == pPrev )
+					pPam->GetBound(FALSE).nContent.Assign( pTxtNode, 0 );
+
+				pTxtNode->JoinPrev();
+			}
+		}
+=====================================================================
+Found a 40 line (260 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+	double	fAngle	= nAngle * F_PI1800;
+	double	fWidth	= aRect.GetWidth();
+	double	fHeight = aRect.GetHeight();
+	double	fDX 	= fWidth  * fabs( cos( fAngle ) ) +
+					  fHeight * fabs( sin( fAngle ) );
+	double	fDY 	= fHeight * fabs( cos( fAngle ) ) +
+					  fWidth  * fabs( sin( fAngle ) );
+			fDX 	= (fDX - fWidth)  * 0.5 + 0.5;
+			fDY 	= (fDY - fHeight) * 0.5 + 0.5;
+	aRect.Left()   -= (long)fDX;
+	aRect.Right()  += (long)fDX;
+	aRect.Top()    -= (long)fDY;
+	aRect.Bottom() += (long)fDY;
+
+	// Rand berechnen und Rechteck neu setzen
+	Point		aCenter = rRect.Center();
+	Rectangle	aFullRect = aRect;
+	long		nBorder = (long)rGradient.GetBorder() * aRect.GetHeight() / 100;
+	BOOL		bLinear;
+
+	// Rand berechnen und Rechteck neu setzen fuer linearen Farbverlauf
+	if ( rGradient.GetStyle() == GRADIENT_LINEAR )
+	{
+		bLinear = TRUE;
+		aRect.Top() += nBorder;
+	}
+	// Rand berechnen und Rechteck neu setzen fuer axiale Farbverlauf
+	else
+	{
+		bLinear = FALSE;
+		nBorder >>= 1;
+
+		aRect.Top()    += nBorder;
+		aRect.Bottom() -= nBorder;
+	}
+
+	// Top darf nicht groesser als Bottom sein
+	aRect.Top() = Min( aRect.Top(), (long)(aRect.Bottom() - 1) );
+
+	long nMinRect = aRect.GetHeight();
+=====================================================================
+Found a 51 line (260 tokens) duplication in the following files: 
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+
+		String aRefStr;
+		ScChangeActionType eType=pScChangeAction->GetType();
+		String aString;
+		String aDesc;
+
+
+		ScRedlinData* pNewData=new ScRedlinData;
+		pNewData->pData=(void *)pScChangeAction;
+		pNewData->nActionNo=pScChangeAction->GetActionNumber();
+		pNewData->bIsAcceptable=pScChangeAction->IsClickable();
+		pNewData->bIsRejectable=pScChangeAction->IsRejectable();
+		pNewData->bDisabled=!pNewData->bIsAcceptable | bDisabled;
+		pNewData->aDateTime=aDateTime;
+		pNewData->nRow	= aRef.aStart.Row();
+		pNewData->nCol	= aRef.aStart.Col();
+		pNewData->nTable= aRef.aStart.Tab();
+
+		if(eType==SC_CAT_CONTENT)
+		{
+			if(pScChangeAction->IsDialogParent())
+			{
+				aString=aStrContentWithChild;
+				pNewData->nInfo=RD_SPECIAL_VISCONTENT;
+				pNewData->bIsRejectable=FALSE;
+				pNewData->bIsAcceptable=FALSE;
+			}
+			else
+			{
+				aString=*MakeTypeString(eType);
+				pScChangeAction->GetDescription( aDesc, pDoc, TRUE);
+			}
+		}
+		else
+		{
+			aString=*MakeTypeString(eType);
+
+			if(bDelMaster)
+			{
+				pScChangeAction->GetDescription( aDesc, pDoc,TRUE);
+				pNewData->bDisabled=TRUE;
+				pNewData->bIsRejectable=FALSE;
+			}
+			else
+				pScChangeAction->GetDescription( aDesc, pDoc,!pScChangeAction->IsMasterDelete());
+
+		}
+
+		aString+='\t';
+		pScChangeAction->GetRefString(aRefStr, pDoc, TRUE);
+		aString+=aRefStr;
+		aString+='\t';
+=====================================================================
+Found a 18 line (260 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_MS_1256,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+                0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
+=====================================================================
+Found a 41 line (260 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 33 line (260 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tempnam.c
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/tempnam.c
+
+dtempnam(dir, prefix)
+char *dir;		/* use this directory please (if non-NULL) */
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+=====================================================================
+Found a 71 line (260 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/misc/db.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/db.cxx
+
+    return err;
+}
+
+//----------------------------------------------------------------------------
+
+
+Dbt::Dbt()
+{  
+    using namespace std;
+    DBT * thispod = this;
+    memset(thispod, 0, sizeof *thispod);
+}
+
+
+Dbt::Dbt(void *data_arg, u_int32_t size_arg)
+{
+    using namespace std;
+    DBT * thispod = this;
+    memset(thispod, 0, sizeof *thispod);
+    this->set_data(data_arg);
+    this->set_size(size_arg);
+}
+
+Dbt::Dbt(const Dbt & other)
+{
+    using namespace std;
+	const DBT *otherpod = &other;
+	DBT *thispod = this;
+	memcpy(thispod, otherpod, sizeof *thispod);
+}
+
+Dbt& Dbt::operator = (const Dbt & other)
+{
+	if (this != &other) 
+    {
+        using namespace std;
+        const DBT *otherpod = &other;
+        DBT *thispod = this;
+        memcpy(thispod, otherpod, sizeof *thispod);
+	}
+	return *this;
+}
+
+Dbt::~Dbt() 
+{
+}
+
+void * Dbt::get_data() const
+{ 
+    return this->data;
+}
+
+void Dbt::set_data(void *value)
+{
+    this->data = value;
+}
+
+u_int32_t Dbt::get_size() const
+{ 
+    return this->size;
+}
+
+void Dbt::set_size(u_int32_t value)
+{
+    this->size = value; 
+}
+
+void Dbt::set_flags(u_int32_t value)
+{ 
+    this->flags = value;
+}
+=====================================================================
+Found a 53 line (259 tokens) duplication in the following files: 
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            long_type fg[3];
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                int rx;
+                int ry;
+                int rx_inv = image_subpixel_size;
+                int ry_inv = image_subpixel_size;
+                intr.coordinates(&x,  &y);
+                intr.local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+=====================================================================
+Found a 49 line (259 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+
+        span_interpolator_persp_lerp(const double* quad, 
+                                     double x1, double y1, 
+                                     double x2, double y2)
+        {
+            quad_to_rect(quad, x1, y1, x2, y2);
+        }
+
+        //--------------------------------------------------------------------
+        // Set the transformations using two arbitrary quadrangles.
+        void quad_to_quad(const double* src, const double* dst)
+        {
+            m_trans_dir.quad_to_quad(src, dst);
+            m_trans_inv.quad_to_quad(dst, src);
+        }
+
+        //--------------------------------------------------------------------
+        // Set the direct transformations, i.e., rectangle -> quadrangle
+        void rect_to_quad(double x1, double y1, double x2, double y2, 
+                          const double* quad)
+        {
+            double src[8];
+            src[0] = src[6] = x1;
+            src[2] = src[4] = x2;
+            src[1] = src[3] = y1;
+            src[5] = src[7] = y2;
+            quad_to_quad(src, quad);
+        }
+
+
+        //--------------------------------------------------------------------
+        // Set the reverse transformations, i.e., quadrangle -> rectangle
+        void quad_to_rect(const double* quad, 
+                          double x1, double y1, double x2, double y2)
+        {
+            double dst[8];
+            dst[0] = dst[6] = x1;
+            dst[2] = dst[4] = x2;
+            dst[1] = dst[3] = y1;
+            dst[5] = dst[7] = y2;
+            quad_to_quad(quad, dst);
+        }
+
+        //--------------------------------------------------------------------
+        // Check if the equations were solved successfully
+        bool is_valid() const { return m_trans_dir.is_valid(); }
+
+        //----------------------------------------------------------------
+        void begin(double x, double y, unsigned len)
+        {
+=====================================================================
+Found a 47 line (259 tokens) duplication in the following files: 
+Starting at line 2108 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2737 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+    SvxOcxString aValue( rPropSet->getPropertyValue(WW8_ASCII2STR("Text")) );
+    aValue.WriteLenField( *rContents );
+    if (aValue.HasData())
+		pBlockFlags[2] |= 0x40;
+
+	WriteAlign(rContents,4);
+    aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("BorderColor"));
+    if (aTmp.hasValue())
+        aTmp >>= nBorderColor;
+    *rContents << ExportColor(nBorderColor);
+    pBlockFlags[3] |= 0x02;
+
+	*rContents << nSpecialEffect;
+	pBlockFlags[3] |= 0x04;
+
+	WriteAlign(rContents,4);
+	*rContents << rSize.Width;
+	*rContents << rSize.Height;
+
+    aValue.WriteCharArray( *rContents );
+
+	WriteAlign(rContents,4);
+
+    nFixedAreaLen = static_cast<sal_uInt16>(rContents->Tell()-nOldPos-4);
+
+	bRet = aFontData.Export(rContents,rPropSet);
+
+    rContents->Seek(nOldPos);
+	*rContents << nStandardId;
+	*rContents << nFixedAreaLen;
+
+	*rContents << pBlockFlags[0];
+	*rContents << pBlockFlags[1];
+	*rContents << pBlockFlags[2];
+	*rContents << pBlockFlags[3];
+	*rContents << pBlockFlags[4];
+	*rContents << pBlockFlags[5];
+	*rContents << pBlockFlags[6];
+	*rContents << pBlockFlags[7];
+
+	DBG_ASSERT((rContents.Is() &&
+		(SVSTREAM_OK==rContents->GetError())),"damn");
+	return bRet;
+}
+
+
+sal_Bool OCX_ComboBox::Export(SvStorageRef &rObj,
+=====================================================================
+Found a 41 line (259 tokens) duplication in the following files: 
+Starting at line 6787 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 12506 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+        CPPUNIT_TEST_SUITE( append_007_Int64_Bounderies );
+        CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
+        CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
+        CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
+        CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
+        CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
+        CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
+        CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
+        CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
+        CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
+        CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
+        CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
+        CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
+        CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
+        CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
+        CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
+        CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
+        CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
+        CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
+        CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
+        CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
+        CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
+        CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
+        CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
+        CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
+        CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
+        CPPUNIT_TEST_SUITE_END();
+    };
+//------------------------------------------------------------------------
+// testing the method append( sal_Int64 i, sal_Int16 radix=2 )
+// for negative value
+// testing the method append( sal_Int64 i, sal_Int16 radix=8 )
+// for negative value
+// testing the method append( sal_Int64 i, sal_Int16 radix=10 )
+// for negative value
+// testing the method append( sal_Int64 i, sal_Int16 radix=16 )
+// for negative value
+// testing the method append( sal_Int64 i, sal_Int16 radix=36 )
+// for negative value
+//------------------------------------------------------------------------
+    class  append_007_Int64_Negative : public CppUnit::TestFixture
+=====================================================================
+Found a 43 line (259 tokens) duplication in the following files: 
+Starting at line 1359 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+Starting at line 1644 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+
+	agg::rasterizer_scanline_aa<> ras;
+	agg::path_storage path;
+	agg::conv_curve<agg::path_storage> curve(path);
+
+	for(sal_uInt32 nPolygon(0); nPolygon < rPolyPolygon.count(); nPolygon++)
+    {
+		const basegfx::B2DPolygon aPolygon(rPolyPolygon.getB2DPolygon(nPolygon));
+		const sal_uInt32 nPointCount(aPolygon.count());
+
+		if(nPointCount)
+		{
+			if(aPolygon.areControlPointsUsed())
+			{
+				// prepare edge-based loop
+				basegfx::B2DPoint aCurrentPoint(aPolygon.getB2DPoint(0));
+				const sal_uInt32 nEdgeCount(aPolygon.isClosed() ? nPointCount - 1 : nPointCount);
+
+				// first vertex
+				path.move_to(aCurrentPoint.getX(), aCurrentPoint.getY());
+
+				for(sal_uInt32 a(0); a < nEdgeCount; a++)
+				{
+					// access next point
+					const sal_uInt32 nNextIndex((a + 1) % nPointCount);
+					const basegfx::B2DPoint aNextPoint(aPolygon.getB2DPoint(nNextIndex));
+
+					// get control points
+					const basegfx::B2DPoint aControlNext(aPolygon.getNextControlPoint(a));
+					const basegfx::B2DPoint aControlPrev(aPolygon.getPrevControlPoint(nNextIndex));
+
+					// specify first cp, second cp, next vertex
+					path.curve4(
+						aControlNext.getX(), aControlNext.getY(),
+						aControlPrev.getX(), aControlPrev.getY(),
+						aNextPoint.getX(), aNextPoint.getY());
+
+					// prepare next step
+					aCurrentPoint = aNextPoint;
+				}
+			}
+			else
+			{
+				const basegfx::B2DPoint aPoint(aPolygon.getB2DPoint(0));
+=====================================================================
+Found a 13 line (258 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_PAGESTL),	SC_WID_UNO_PAGESTL,	&getCppuType((rtl::OUString*)0),		0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PADJUST),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PBMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PINDENT),	ATTR_INDENT,		&getCppuType((sal_Int16*)0),			0, 0 }, //! CONVERT_TWIPS
+		{MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHANG),	ATTR_HANGPUNCTUATION,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_PLASTADJ),	ATTR_HOR_JUSTIFY,	&::getCppuType((const sal_Int16*)0),	0, MID_HORJUST_ADJUST },
+		{MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+=====================================================================
+Found a 17 line (258 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 482 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1080 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1113 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1212 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_PT154,
+              { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+                0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+                0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+                0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+=====================================================================
+Found a 10 line (258 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+
+    virtual ~WrappedStackingProperty();
+
+    virtual void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual ::com::sun::star::uno::Any getPropertyDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 27 line (257 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salgdi.h
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+    virtual BOOL		unionClipRegion( long nX, long nY, long nWidth, long nHeight );
+    // draw --> LineColor and FillColor and RasterOp and ClipRegion
+    virtual void		drawPixel( long nX, long nY );
+    virtual void		drawPixel( long nX, long nY, SalColor nSalColor );
+    virtual void		drawLine( long nX1, long nY1, long nX2, long nY2 );
+    virtual void		drawRect( long nX, long nY, long nWidth, long nHeight );
+    virtual void		drawPolyLine( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void		drawPolygon( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void		drawPolyPolygon( sal_uInt32 nPoly, const sal_uInt32* pPoints, PCONSTSALPOINT* pPtAry );
+    virtual sal_Bool	drawPolyLineBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry );
+    virtual sal_Bool	drawPolygonBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry );
+    virtual sal_Bool	drawPolyPolygonBezier( sal_uInt32 nPoly, const sal_uInt32* pPoints, const SalPoint* const* pPtAry, const BYTE* const* pFlgAry );
+
+    // CopyArea --> No RasterOp, but ClipRegion
+    virtual void		copyArea( long nDestX, long nDestY, long nSrcX, long nSrcY, long nSrcWidth,
+                                  long nSrcHeight, USHORT nFlags );
+
+    // CopyBits and DrawBitmap --> RasterOp and ClipRegion
+    // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics
+    virtual void		copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry,
+                                    const SalBitmap& rSalBitmap,
+                                    SalColor nTransparentColor );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry,
+                                    const SalBitmap& rSalBitmap,
+                                    const SalBitmap& rTransparentBitmap );
+=====================================================================
+Found a 58 line (257 tokens) duplication in the following files: 
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linkmgr2.cxx
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linkmgr2.cxx
+
+            int nRet = QueryBox( pParentWin, WB_YES_NO | WB_DEF_YES, String(aId) ).Execute();
+			if( RET_YES != nRet )
+				return ;		// es soll nichts geupdatet werden
+
+			bAskUpdate = FALSE;		// einmal reicht
+		}
+
+		pLink->Update();
+	}
+}
+
+/************************************************************************
+|*    SvBaseLink::CreateObject()
+|*
+|*    Beschreibung
+*************************************************************************/
+
+SvLinkSourceRef SvLinkManager::CreateObj( SvBaseLink * pLink )
+{
+	if( OBJECT_CLIENT_DDE == pLink->GetObjType() )
+		return new SvDDEObject();
+	return SvLinkSourceRef();
+}
+
+BOOL SvLinkManager::InsertServer( SvLinkSource* pObj )
+{
+	// keine doppelt einfuegen
+	if( !pObj || USHRT_MAX != aServerTbl.GetPos( pObj ) )
+		return FALSE;
+
+	aServerTbl.Insert( pObj, aServerTbl.Count() );
+	return TRUE;
+}
+
+
+void SvLinkManager::RemoveServer( SvLinkSource* pObj )
+{
+	USHORT nPos = aServerTbl.GetPos( pObj );
+	if( USHRT_MAX != nPos )
+		aServerTbl.Remove( nPos, 1 );
+}
+
+
+void MakeLnkName( String& rName, const String* pType, const String& rFile,
+					const String& rLink, const String* pFilter )
+{
+	if( pType )
+		(rName = *pType).EraseLeadingChars().EraseTrailingChars() += cTokenSeperator;
+	else if( rName.Len() )
+		rName.Erase();
+
+	((rName += rFile).EraseLeadingChars().EraseTrailingChars() +=
+		cTokenSeperator ).EraseLeadingChars().EraseTrailingChars() += rLink;
+	if( pFilter )
+		((rName += cTokenSeperator ) += *pFilter).EraseLeadingChars().EraseTrailingChars();
+}
+
+}
+=====================================================================
+Found a 82 line (257 tokens) duplication in the following files: 
+Starting at line 1311 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 705 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_SocketAddr.cxx
+
+			::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("deuce.PRC.Sun.COM"), IP_PORT_MYPORT4 );
+			oslSocketAddr poslSocketAddr = saSocketAddr.getHandle( );
+
+			sal_Bool bOK = ( saSocketAddr == poslSocketAddr );
+			//t_print("getSocketAddrHandle_002\n");
+			CPPUNIT_ASSERT_MESSAGE( "test for getHandle() function: use getHandle() function as an intermediate way to create identical address.", 
+									  sal_True == bOK );
+		}
+		
+		CPPUNIT_TEST_SUITE( getSocketAddrHandle );
+		CPPUNIT_TEST( getSocketAddrHandle_001 );
+		CPPUNIT_TEST( getSocketAddrHandle_002 );
+		CPPUNIT_TEST_SUITE_END( );
+		
+	}; // class getSocketAddrHandle
+
+
+	/** testing the method:
+		static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0);		
+	*/
+
+	class getLocalHostname : public CppUnit::TestFixture
+	{
+	public:
+		/* the process of getLocalHostname: 1.gethostname (same as /bin/hostname) returned name A
+		   2. search A in /etc/hosts, if there is an alias name is A, return the name in the same row
+		*/
+
+		void getLocalHostname_000()
+            {
+                // _osl_getFullQualifiedDomainName( );
+                oslSocketResult aResult = osl_Socket_Error;
+                rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
+                CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
+            }
+        
+		void getLocalHostname_001()
+		{
+			oslSocketResult *pResult = NULL;
+			//printSocketResult(*pResult);
+			::rtl::OUString suResult = ::osl::SocketAddr::getLocalHostname( pResult );
+			
+            // LLA: IMHO localhost, or hostname by itself should be ok.
+            rtl::OUString suThisHost = getThisHostname( );
+            bool bOk = false;
+            if (suThisHost.equals(rtl::OUString::createFromAscii("localhost")))
+            {
+                bOk = true;
+            }
+            else
+            {
+                if (suThisHost.equals(suResult))
+                {
+                    bOk = true;
+                }
+            }
+
+			::rtl::OUString suError;
+            suError = outputError(suResult, getThisHostname( ), "test for getLocalHostname() function");
+			
+			CPPUNIT_ASSERT_MESSAGE( suError, bOk == true );
+		}
+		
+		CPPUNIT_TEST_SUITE( getLocalHostname );
+		CPPUNIT_TEST( getLocalHostname_000 );
+		CPPUNIT_TEST( getLocalHostname_001 );
+		CPPUNIT_TEST_SUITE_END( );
+		
+	}; // class getLocalHostname
+
+
+	/** testing the method:
+		static inline void SAL_CALL resolveHostname( const ::rtl::OUString & strHostName , SocketAddr & Addr );		
+	*/
+
+	class resolveHostname : public CppUnit::TestFixture
+	{
+	public:
+		void resolveHostname_001()
+		{
+			::osl::SocketAddr saSocketAddr;
+			::osl::SocketAddr::resolveHostname( rtl::OUString::createFromAscii("127.0.0.1"), saSocketAddr );
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 3850 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4369 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xd7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+{ 0x00, 0xfe, 0xde },
+{ 0x00, 0xff, 0xff },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 2812 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4626 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2664 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xfd, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0xdd },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 1517 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2812 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0x69, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0x49 },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 1511 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4361 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xf7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xd7 },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2664 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xfd, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0xdd },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 998 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2812 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0x69, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0x49 },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 992 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4361 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xf7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xd7 },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 850 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2664 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xfd, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0xdd },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 738 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2812 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0x69, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0x49 },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 732 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4361 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xf7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xd7 },
+=====================================================================
+Found a 33 line (257 tokens) duplication in the following files: 
+Starting at line 590 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2664 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xfd, 0x49 },
+{ 0x01, 0x6a, 0x4a },
+{ 0x01, 0x6b, 0x4b },
+{ 0x01, 0x6c, 0x4c },
+{ 0x01, 0x6d, 0x4d },
+{ 0x01, 0x6e, 0x4e },
+{ 0x01, 0x6f, 0x4f },
+{ 0x01, 0x70, 0x50 },
+{ 0x01, 0x71, 0x51 },
+{ 0x01, 0x72, 0x52 },
+{ 0x01, 0x73, 0x53 },
+{ 0x01, 0x74, 0x54 },
+{ 0x01, 0x75, 0x55 },
+{ 0x01, 0x76, 0x56 },
+{ 0x01, 0x77, 0x57 },
+{ 0x01, 0x78, 0x58 },
+{ 0x01, 0x79, 0x59 },
+{ 0x01, 0x7a, 0x5a },
+{ 0x00, 0x5b, 0x5b },
+{ 0x00, 0x5c, 0x5c },
+{ 0x00, 0x5d, 0x5d },
+{ 0x00, 0x5e, 0x5e },
+{ 0x00, 0x5f, 0x5f },
+{ 0x00, 0x60, 0x60 },
+{ 0x00, 0x61, 0x41 },
+{ 0x00, 0x62, 0x42 },
+{ 0x00, 0x63, 0x43 },
+{ 0x00, 0x64, 0x44 },
+{ 0x00, 0x65, 0x45 },
+{ 0x00, 0x66, 0x46 },
+{ 0x00, 0x67, 0x47 },
+{ 0x00, 0x68, 0x48 },
+{ 0x00, 0x69, 0xdd },
+=====================================================================
+Found a 10 line (257 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,21,21,21,21,11,21,21,// 2cf0 - 2cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f	Block index 0x27
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 28 line (257 tokens) duplication in the following files: 
+Starting at line 4233 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 4626 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+                case HWPDO_TEXTBOX:
+                    if( !bIsRotate )
+                    {
+                        padd(ascii("svg:x"), sXML_CDATA,
+                            Double2Str (WTMM( x + a + drawobj->offset2.x)) + ascii("mm"));
+                        padd(ascii("svg:y"), sXML_CDATA,
+                            Double2Str (WTMM( y + b + drawobj->offset2.y)) + ascii("mm"));
+                    }
+                    padd(ascii("svg:width"), sXML_CDATA,
+                        Double2Str (WTMM( drawobj->extent.w )) + ascii("mm"));
+                    padd(ascii("svg:height"), sXML_CDATA,
+                        Double2Str (WTMM( drawobj->extent.h )) + ascii("mm"));
+                    if( drawobj->property.flag & 0x01 )
+                    {
+                        int value = drawobj->extent.w < drawobj->extent.h ?
+                            drawobj->extent.w : drawobj->extent.h ;
+                        padd(ascii("draw:corner-radius"), sXML_CDATA,
+                            Double2Str (WTMM( value/10 )) + ascii("mm"));
+                    }
+                    else if( drawobj->property.flag & 0x04 )
+                    {
+                        int value = drawobj->extent.w < drawobj->extent.h ?
+                            drawobj->extent.w : drawobj->extent.h ;
+                        padd(ascii("draw:corner-radius"), sXML_CDATA,
+                            Double2Str (WTMM( value / 2)) + ascii("mm"));
+                    }
+
+                    rstartEl(ascii("draw:text-box"), rList);
+=====================================================================
+Found a 10 line (257 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,21,21,21,21,11,21,21,// 2cf0 - 2cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f	Block index 0x27
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 62 line (257 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+=====================================================================
+Found a 46 line (256 tokens) duplication in the following files: 
+Starting at line 1374 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+
+    static beans::Property aPropertyInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Required properties
+		///////////////////////////////////////////////////////////////
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND
+		),
+		///////////////////////////////////////////////////////////////
+		// Optional standard properties
+		///////////////////////////////////////////////////////////////
+		beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateCreated" ) ),
+			-1,
+			getCppuType(static_cast< const util::DateTime * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+		beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DateModified" ) ),
+			-1,
+			getCppuType(static_cast< const util::DateTime * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+		beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsReadOnly" ) ),
+=====================================================================
+Found a 35 line (256 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/privsplt.cxx
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/privsplt.cxx
+
+		if(eScSplit==SC_SPLIT_HORZ)
+		{
+			nNewX=(short)aPos.X();
+			nDeltaX=nNewX-nOldX;
+			a2Pos.X()+=nDeltaX;
+
+			if(a2Pos.X()<aXMovingRange.Min())
+			{
+				nDeltaX=(short)(aXMovingRange.Min()-a3Pos.X());
+				a2Pos.X()=aXMovingRange.Min();
+			}
+			else if(a2Pos.X()>aXMovingRange.Max())
+			{
+				nDeltaX=(short)(aXMovingRange.Max()-a3Pos.X());
+				a2Pos.X()=aXMovingRange.Max();
+			}
+		}
+		else
+		{
+			nNewY=(short)aPos.Y();
+			nDeltaY=nNewY-nOldY;
+			a2Pos.Y()+=nDeltaY;
+			if(a2Pos.Y()<aYMovingRange.Min())
+			{
+				nDeltaY=(short)(aYMovingRange.Min()-a3Pos.Y());
+				a2Pos.Y()=aYMovingRange.Min();
+			}
+			else if(a2Pos.Y()>aYMovingRange.Max())
+			{
+				nDeltaY=(short)(aYMovingRange.Max()-a3Pos.Y());
+				a2Pos.Y()=aYMovingRange.Max();
+			}
+		}
+
+		SetPosPixel(a2Pos);
+=====================================================================
+Found a 9 line (256 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 67 line (256 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KServices.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MServices.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/oservices.cxx
+
+	OSL_ENSURE(xNewKey.is(), "ODBC::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+=====================================================================
+Found a 55 line (256 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+
+			pFPR, nFPR );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		// return type
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+	}
+}
+=====================================================================
+Found a 59 line (256 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										  pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		CPPU_CURRENT_NAMESPACE::raiseException(&aUnoExc, pThis->getBridge()->getUno2Cpp() );
+=====================================================================
+Found a 43 line (255 tokens) duplication in the following files: 
+Starting at line 1103 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+Starting at line 1177 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+
+        rLogFont.lfFaceName[nNameLen] = '\0';
+
+    if( !pFont->mpFontData )
+    {
+        rLogFont.lfCharSet = pFont->IsSymbolFont() ? SYMBOL_CHARSET : DEFAULT_CHARSET;
+        rLogFont.lfPitchAndFamily = ImplPitchToWin( pFont->mePitch )
+                                  | ImplFamilyToWin( pFont->meFamily );
+    }
+    else
+    {
+        ImplWinFontData* pWinFontData = static_cast<ImplWinFontData*>( pFont->mpFontData );
+        rLogFont.lfCharSet        = pWinFontData->GetCharSet();
+        rLogFont.lfPitchAndFamily = pWinFontData->GetPitchAndFamily();
+    }
+
+    rLogFont.lfWeight           = ImplWeightToWin( pFont->meWeight );
+    rLogFont.lfHeight           = (LONG)-pFont->mnHeight;
+    rLogFont.lfWidth            = (LONG)pFont->mnWidth;
+    rLogFont.lfUnderline        = 0;
+    rLogFont.lfStrikeOut        = 0;
+    rLogFont.lfItalic           = (pFont->meItalic) != ITALIC_NONE;
+    rLogFont.lfEscapement       = pFont->mnOrientation;
+    rLogFont.lfOrientation      = rLogFont.lfEscapement; // ignored by W98
+    rLogFont.lfClipPrecision    = CLIP_DEFAULT_PRECIS;
+    rLogFont.lfQuality          = DEFAULT_QUALITY;
+    rLogFont.lfOutPrecision     = OUT_TT_PRECIS;
+    if( pFont->mnOrientation )
+        rLogFont.lfClipPrecision |= CLIP_LH_ANGLES;
+
+    // disable antialiasing if requested
+    if( pFont->mbNonAntialiased )
+        rLogFont.lfQuality = NONANTIALIASED_QUALITY;
+
+    // select vertical mode if requested and available
+    if( pFont->mbVertical && nNameLen )
+    {
+        // vertical fonts start with an '@'
+        memmove( &rLogFont.lfFaceName[1], &rLogFont.lfFaceName[0],
+                    sizeof(rLogFont.lfFaceName)-sizeof(rLogFont.lfFaceName[0]) );
+        rLogFont.lfFaceName[0] = '@';
+
+        // check availability of vertical mode for this font
+        bool bAvailable = false;
+=====================================================================
+Found a 46 line (255 tokens) duplication in the following files: 
+Starting at line 2752 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 2916 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : WW8PLCFx(rFib.GetFIBVersion(), true), pFKPStrm(pSt), pDataStrm(pDataSt),
+    pFkp(0), ePLCF(ePl), pPCDAttrs(0)
+{
+    SetStartFc(nStartFcL);
+    long nLenStruct = (8 > rFib.nVersion) ? 2 : 4;
+    if (ePl == CHP)
+    {
+        pPLCF = new WW8PLCF(pTblSt, rFib.fcPlcfbteChpx, rFib.lcbPlcfbteChpx,
+            nLenStruct, GetStartFc(), rFib.pnChpFirst, rFib.cpnBteChp);
+    }
+    else
+    {
+        pPLCF = new WW8PLCF(pTblSt, rFib.fcPlcfbtePapx, rFib.lcbPlcfbtePapx,
+            nLenStruct, GetStartFc(), rFib.pnPapFirst, rFib.cpnBtePap);
+    }
+}
+
+WW8PLCFx_Fc_FKP::~WW8PLCFx_Fc_FKP()
+{
+    myiter aEnd = maFkpCache.end();
+    for (myiter aIter = maFkpCache.begin(); aIter != aEnd; ++aIter)
+        delete *aIter;
+    delete pPLCF;
+    delete pPCDAttrs;
+}
+
+ULONG WW8PLCFx_Fc_FKP::GetIdx() const
+{
+    ULONG u = pPLCF->GetIdx() << 8;
+    if (pFkp)
+        u |= pFkp->GetIdx();
+    return u;
+}
+
+void WW8PLCFx_Fc_FKP::SetIdx( ULONG nIdx )
+{
+    if( !( nIdx & 0xffffff00L ) )
+    {
+        pPLCF->SetIdx( nIdx >> 8 );
+        pFkp = 0;
+    }
+    else
+    {                                   //Es gab einen Fkp
+        //Lese PLCF um 1 Pos zurueck, um die Adresse des Fkp wiederzubekommen
+        pPLCF->SetIdx( ( nIdx >> 8 ) - 1 );
+        if (NewFkp())                       // und lese Fkp wieder ein
+=====================================================================
+Found a 36 line (255 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+			aStartPos = basegfx::B2DPoint(aRange.getMinX(), aCenter.getY());
+			aEndPos = basegfx::B2DPoint(aRange.getMinX(), aRange.getMinY());
+
+			if(rG.aGradient.GetBorder())
+			{
+				basegfx::B2DVector aFullVec(aStartPos - aEndPos);
+				const double fLen = (aFullVec.getLength() * (100.0 - (double)rG.aGradient.GetBorder())) / 100.0;
+				aFullVec.normalize();
+				aStartPos = aEndPos + (aFullVec * fLen);
+			}
+			
+			if(rG.aGradient.GetAngle())
+			{
+				const double fAngle = (double)rG.aGradient.GetAngle() * (F_PI180 / 10.0);
+				basegfx::B2DHomMatrix aTransformation;
+
+				aTransformation.translate(-aEndPos.getX(), -aEndPos.getY());
+				aTransformation.rotate(-fAngle);
+				aTransformation.translate(aEndPos.getX(), aEndPos.getY());
+
+				aStartPos *= aTransformation;
+				aEndPos *= aTransformation;
+			}
+			
+			if(rG.aGradient.GetXOffset() || rG.aGradient.GetYOffset())
+			{
+				basegfx::B2DPoint aOffset(
+					(aRange.getWidth() * rG.aGradient.GetXOffset()) / 100.0,
+					(aRange.getHeight() * rG.aGradient.GetYOffset()) / 100.0);
+
+				aStartPos += aOffset;
+				aEndPos += aOffset;
+			}
+
+			break;
+		}
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 1397 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 9 line (255 tokens) duplication in the following files: 
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1426 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2e80 - 2e8f
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 9 line (255 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0500 - 050f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 620 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 9 line (255 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 665 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2e80 - 2e8f
+    27,27,27,27,27,27,27,27,27,27, 0,27,27,27,27,27,// 2e90 - 2e9f
+=====================================================================
+Found a 8 line (255 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 46 line (255 tokens) duplication in the following files: 
+Starting at line 695 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+static CommandInfoVector commandInfoVector;
+
+bool ExtractVersionNumber( const OUString& rVersion, OUString& rVersionNumber )
+{
+    bool bCheckNumOnly( false );
+
+    OUStringBuffer aBuf;
+
+    rVersionNumber = OUString();
+    for ( int i = 0; i < rVersion.getLength(); i++ )
+    {
+        if ( rVersion[i] >= sal_Unicode( '0' ) && rVersion[i] <= sal_Unicode( '9' ))
+        {
+            bCheckNumOnly = true;
+            aBuf.append( rVersion[i] );
+        }
+        else if ( bCheckNumOnly )
+            return false;
+    }
+
+    rVersionNumber = aBuf.makeStringAndClear();
+    return true;
+}
+
+bool ReadCSVFile( const OUString& aCVSFileURL, MODULES eModule, const OUString& aProjectName )
+{
+    osl::File  aCSVFile( aCVSFileURL );
+    fprintf(stdout, "############ read csv \"%s\" ... ", ::rtl::OUStringToOString(aCVSFileURL, RTL_TEXTENCODING_UTF8).getStr());
+    if ( aCSVFile.open( OpenFlag_Read ) != osl::FileBase::E_None )
+    {
+        fprintf(stdout, "failed!\n");
+        return false;
+    }
+    fprintf(stdout, "OK!\n");
+    
+    {
+        sal_Bool            bEOF;
+        ::rtl::ByteSequence aCSVLine;
+        OUString            aUnoCmd( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ));
+
+        while ( aCSVFile.isEndOfFile( &bEOF ) == osl::FileBase::E_None && !bEOF )
+        {
+            aCSVFile.readLine( aCSVLine );
+
+            OString     aLine( (const char *)aCSVLine.getConstArray(), aCSVLine.getLength() );
+            OString     aDefine;
+=====================================================================
+Found a 42 line (255 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUsers.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUsers.cxx
+
+	return new OMySQLUser(m_xConnection,_rName);
+}
+// -------------------------------------------------------------------------
+void OUsers::impl_refresh() throw(RuntimeException)
+{
+	m_pParent->refreshUsers();
+}
+// -------------------------------------------------------------------------
+Reference< XPropertySet > OUsers::createDescriptor()
+{
+	OUserExtend* pNew = new OUserExtend(m_xConnection);
+	return pNew;
+}
+// -------------------------------------------------------------------------
+// XAppend
+sdbcx::ObjectType OUsers::appendObject( const ::rtl::OUString& _rForName, const Reference< XPropertySet >& descriptor )
+{
+	::rtl::OUString aSql	= ::rtl::OUString::createFromAscii("GRANT USAGE ON * TO ");
+	::rtl::OUString aQuote	= m_xConnection->getMetaData()->getIdentifierQuoteString(  );
+	::rtl::OUString sUserName( _rForName );
+	aSql += ::dbtools::quoteName(aQuote,sUserName)
+				+ ::rtl::OUString::createFromAscii(" @\"%\" ");
+	::rtl::OUString sPassword;
+	descriptor->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PASSWORD)) >>= sPassword;
+	if ( sPassword.getLength() )
+	{
+		aSql += ::rtl::OUString::createFromAscii(" IDENTIFIED BY '");
+		aSql += sPassword;
+		aSql += ::rtl::OUString::createFromAscii("'");
+	}
+
+	Reference< XStatement > xStmt = m_xConnection->createStatement(  );
+	if(xStmt.is())
+		xStmt->execute(aSql);
+	::comphelper::disposeComponent(xStmt);
+
+    return createObject( _rForName );
+}
+// -------------------------------------------------------------------------
+// XDrop
+void OUsers::dropObject(sal_Int32 /*_nPos*/,const ::rtl::OUString _sElementName)
+{
+=====================================================================
+Found a 55 line (255 tokens) duplication in the following files: 
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 465 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+                    member)->pAttributeTypeRef);
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(
+                    code, functionOffset++, vtableOffset,
+                    0 /* indicates VOID */);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+                    member)->pReturnTypeRef);
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+
+void bridges::cpp_uno::shared::VtableFactory::flushCode(
+    unsigned char const *, unsigned char const *)
+{}
+=====================================================================
+Found a 70 line (254 tokens) duplication in the following files: 
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+	{
+        //=================================================================
+        //
+        // Folder: Supported commands
+        //
+        //=================================================================
+
+        static const ucb::CommandInfo aFolderCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                -1,
+                getCppuBooleanType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                -1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                -1,
+                getCppuType( static_cast< ucb::TransferInfo * >( 0 ) )
+            )
+            ///////////////////////////////////////////////////////////
+            // New commands
+            ///////////////////////////////////////////////////////////
+        };
+        return uno::Sequence<
+                ucb::CommandInfo >( aFolderCommandInfoTable, 8 );
+	}
+=====================================================================
+Found a 39 line (254 tokens) duplication in the following files: 
+Starting at line 977 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 895 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+									const NMSP_RTL::OUString* /* pStyle */ )
+{
+	if( !!rBmpEx )
+	{
+		BitmapEx		aBmpEx( rBmpEx );
+	 	Point aPoint = Point(); 	
+		const Rectangle	aBmpRect( aPoint, rBmpEx.GetSizePixel() );
+		const Rectangle aSrcRect( rSrcPt, rSrcSz );
+
+		if( aSrcRect != aBmpRect )
+			aBmpEx.Crop( aSrcRect );
+
+		if( !!aBmpEx )
+		{
+			SvMemoryStream aOStm( 65535, 65535 );
+
+			if( GraphicConverter::Export( aOStm, rBmpEx, CVT_PNG ) == ERRCODE_NONE )
+			{
+				const Point									aPt( ImplMap( rPt ) );
+				const Size									aSz( ImplMap( rSz ) );
+				FastString									aImageData( (sal_Char*) aOStm.GetData(), aOStm.Tell() );
+				REF( NMSP_SAX::XExtendedDocumentHandler )	xExtDocHandler( mrExport.GetDocHandler(), NMSP_UNO::UNO_QUERY );
+
+				if( xExtDocHandler.is() )
+				{
+					static const sal_uInt32		nPartLen = 64;
+					const NMSP_RTL::OUString	aSpace( ' ' );
+					const NMSP_RTL::OUString	aLineFeed( NMSP_RTL::OUString::valueOf( (sal_Unicode) 0x0a ) );
+					NMSP_RTL::OUString			aString;
+					NMSP_RTL::OUString			aImageString;
+
+					aString = aLineFeed;
+					aString +=  B2UCONST( "<" );
+					aString += NMSP_RTL::OUString::createFromAscii( aXMLElemImage );
+					aString += aSpace;
+					
+					aString += NMSP_RTL::OUString::createFromAscii( aXMLAttrX );
+					aString += B2UCONST( "=\"" );
+					aString += GetValueString( aPt.X() );
+=====================================================================
+Found a 47 line (254 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_base.h
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/cli_ure/source/uno_bridge/cli_base.h
+
+struct rtl_mem
+{
+	inline static void * operator new ( size_t nSize )
+		{ return rtl_allocateMemory( nSize ); }
+	inline static void operator delete ( void * mem )
+		{ if (mem) rtl_freeMemory( mem ); }
+	inline static void * operator new ( size_t, void * mem )
+		{ return mem; }
+	inline static void operator delete ( void *, void * )
+		{}
+    
+    static inline ::std::auto_ptr< rtl_mem > allocate( ::std::size_t bytes );
+};
+//--------------------------------------------------------------------------------------------------
+inline ::std::auto_ptr< rtl_mem > rtl_mem::allocate( ::std::size_t bytes )
+{
+    void * p = rtl_allocateMemory( bytes );
+    if (0 == p)
+        throw BridgeRuntimeError(OUSTR("out of memory!") );
+    return ::std::auto_ptr< rtl_mem >( (rtl_mem *)p );
+}
+
+//==================================================================================================
+class TypeDescr
+{
+    typelib_TypeDescription * m_td;
+    
+    TypeDescr( TypeDescr & ); // not impl
+    void operator = ( TypeDescr ); // not impl
+    
+public:
+    inline explicit TypeDescr( typelib_TypeDescriptionReference * td_ref );
+    inline ~TypeDescr() SAL_THROW( () )
+        { TYPELIB_DANGER_RELEASE( m_td ); }
+    
+    inline typelib_TypeDescription * get() const
+        { return m_td; }
+};
+
+inline TypeDescr::TypeDescr( typelib_TypeDescriptionReference * td_ref )
+    : m_td( 0 )
+{
+    TYPELIB_DANGER_GET( &m_td, td_ref );
+    if (0 == m_td)
+    {
+        throw BridgeRuntimeError(
+            OUSTR("cannot get comprehensive type description for ") +
+=====================================================================
+Found a 48 line (254 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdate.cxx
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxlng.cxx
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxsng.cxx
+
+				pVal->PutSingle( n );
+			else
+				SbxBase::SetError( SbxERR_NO_OBJECT );
+			break;
+		}
+		case SbxBYREF | SbxCHAR:
+			if( n > SbxMAXCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXCHAR;
+			}
+			else if( n < SbxMINCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINCHAR;
+			}
+			*p->pChar = (xub_Unicode) n; break;
+		case SbxBYREF | SbxBYTE:
+			if( n > SbxMAXBYTE )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXBYTE;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pByte = (BYTE) n; break;
+		case SbxBYREF | SbxINTEGER:
+		case SbxBYREF | SbxBOOL:
+			if( n > SbxMAXINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXINT;
+			}
+			else if( n < SbxMININT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMININT;
+			}
+			*p->pInteger = (INT16) n; break;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			if( n > SbxMAXUINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXUINT;
+			}
+			else if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pUShort = (UINT16) n; break;
+		case SbxBYREF | SbxLONG:
+=====================================================================
+Found a 47 line (254 tokens) duplication in the following files: 
+Starting at line 3412 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/classes/sbunoobj.cxx
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/eventattacher/source/eventattacher.cxx
+
+	Any aRet;
+
+	// Check if to firing or approveFiring has to be called
+	Reference< XIdlMethod > xMethod = m_xListenerType->getMethod( FunctionName );
+	sal_Bool bApproveFiring = sal_False;
+	if( !xMethod.is() )
+		return aRet;
+    Reference< XIdlClass > xReturnType = xMethod->getReturnType();
+    Sequence< Reference< XIdlClass > > aExceptionSeq = xMethod->getExceptionTypes();
+	if( ( xReturnType.is() && xReturnType->getTypeClass() != TypeClass_VOID ) ||
+		aExceptionSeq.getLength() > 0 )
+	{
+		bApproveFiring = sal_True;
+	}
+	else
+	{
+	    Sequence< ParamInfo > aParamSeq = xMethod->getParameterInfos();
+		sal_uInt32 nParamCount = aParamSeq.getLength();
+		if( nParamCount > 1 )
+		{
+			const ParamInfo* pInfos = aParamSeq.getConstArray();
+			for( sal_uInt32 i = 0 ; i < nParamCount ; i++ )
+			{
+				if( pInfos[ i ].aMode != ParamMode_IN )
+				{
+					bApproveFiring = sal_True;
+					break;
+				}
+			}
+		}
+	}
+
+    AllEventObject aAllEvent;
+    aAllEvent.Source = (OWeakObject*) this;
+    aAllEvent.Helper = m_Helper;
+    aAllEvent.ListenerType = Type(m_xListenerType->getTypeClass(), m_xListenerType->getName());
+    aAllEvent.MethodName = FunctionName;
+    aAllEvent.Arguments = Params;
+	if( bApproveFiring )
+		aRet = m_xAllListener->approveFiring( aAllEvent );
+	else
+		m_xAllListener->firing( aAllEvent );
+	return aRet;
+}
+
+//*************************************************************************
+void SAL_CALL InvocationToAllListenerMapper::setValue(const OUString& , const Any& ) 
+=====================================================================
+Found a 64 line (253 tokens) duplication in the following files: 
+Starting at line 1410 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1362 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                                "documents" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+            }
+        }
+		else
+		{
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue = xAdditionalPropSet->getPropertyValue(
+																rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( bExchange )
+	{
+        uno::Reference< ucb::XContentIdentifier > xOldId
+            = m_xIdentifier;
+=====================================================================
+Found a 36 line (253 tokens) duplication in the following files: 
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/plugin.cxx
+Starting at line 709 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/embedhlp.cxx
+
+void EmbeddedObjectRef::DrawPaintReplacement( const Rectangle &rRect, const String &rText, OutputDevice *pOut )
+{
+	MapMode aMM( MAP_APPFONT );
+	Size aAppFontSz = pOut->LogicToLogic( Size( 0, 8 ), &aMM, NULL );
+	Font aFnt( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "Helvetica" ) ), aAppFontSz );
+	aFnt.SetTransparent( TRUE );
+	aFnt.SetColor( Color( COL_LIGHTRED ) );
+	aFnt.SetWeight( WEIGHT_BOLD );
+	aFnt.SetFamily( FAMILY_SWISS );
+
+	pOut->Push();
+	pOut->SetBackground();
+	pOut->SetFont( aFnt );
+
+	Point aPt;
+	// Nun den Text so skalieren, dass er in das Rect passt.
+	// Wir fangen mit der Defaultsize an und gehen 1-AppFont runter
+	for( USHORT i = 8; i > 2; i-- )
+	{
+		aPt.X() = (rRect.GetWidth()  - pOut->GetTextWidth( rText )) / 2;
+		aPt.Y() = (rRect.GetHeight() - pOut->GetTextHeight()) / 2;
+
+		BOOL bTiny = FALSE;
+		if( aPt.X() < 0 ) bTiny = TRUE, aPt.X() = 0;
+		if( aPt.Y() < 0 ) bTiny = TRUE, aPt.Y() = 0;
+		if( bTiny )
+		{
+			// heruntergehen bei kleinen Bildern
+			aFnt.SetSize( Size( 0, aAppFontSz.Height() * i / 8 ) );
+			pOut->SetFont( aFnt );
+		}
+		else
+			break;
+	}
+
+    Bitmap aBmp( SvtResId( BMP_PLUGIN ) );
+=====================================================================
+Found a 40 line (253 tokens) duplication in the following files: 
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+=====================================================================
+Found a 48 line (253 tokens) duplication in the following files: 
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/miscobj.cxx
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+    uno::Reference< uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >( this ) );
+    lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
+
+	if ( m_pInterfaceContainer )
+	{
+    	::cppu::OInterfaceContainerHelper* pContainer =
+			m_pInterfaceContainer->getContainer( ::getCppuType( ( const uno::Reference< util::XCloseListener >*) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+        	while (pIterator.hasMoreElements())
+        	{
+            	try
+            	{
+                	((util::XCloseListener*)pIterator.next())->queryClosing( aSource, bDeliverOwnership );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pIterator.remove();
+            	}
+        	}
+		}
+
+    	pContainer = m_pInterfaceContainer->getContainer(
+									::getCppuType( ( const uno::Reference< util::XCloseListener >*) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pCloseIterator(*pContainer);
+        	while (pCloseIterator.hasMoreElements())
+        	{
+            	try
+            	{
+                	((util::XCloseListener*)pCloseIterator.next())->notifyClosing( aSource );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pCloseIterator.remove();
+            	}
+        	}
+		}
+
+		m_pInterfaceContainer->disposeAndClear( aSource );
+	}
+
+	m_bDisposed = sal_True; // the object is disposed now for outside
+=====================================================================
+Found a 60 line (253 tokens) duplication in the following files: 
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut 
+                    && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+
+                          // we need to know type of each param so that we know whether to use
+                          // gpr or fpr to pass in parameters:
+                          // Key: I - int, long, pointer, etc means pass in gpr
+                          //      B - byte value passed in gpr
+                          //      S - short value passed in gpr
+                          //      F - float value pass in fpr
+                          //      D - double value pass in fpr
+                          //      H - long long int pass in proper pairs of gpr (3,4) (5,6), etc
+                          //      X - indicates end of parameter description string
+
+		          case typelib_TypeClass_LONG:
+		          case typelib_TypeClass_UNSIGNED_LONG:
+		          case typelib_TypeClass_ENUM:
+			    *pPT++ = 'I';
+			    break;
+ 		          case typelib_TypeClass_SHORT:
+		          case typelib_TypeClass_CHAR:
+		          case typelib_TypeClass_UNSIGNED_SHORT:
+                            *pPT++ = 'S';
+                            break;
+		          case typelib_TypeClass_BOOLEAN:
+		          case typelib_TypeClass_BYTE:
+                            *pPT++ = 'B';
+                            break;
+		          case typelib_TypeClass_FLOAT:
+                            *pPT++ = 'F';
+			    break;
+		        case typelib_TypeClass_DOUBLE:
+			    *pPT++ = 'D';
+			    pCppStack += sizeof(sal_Int32); // extra long
+			    break;
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			    *pPT++ = 'H';
+			    pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 59 line (252 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/wldcrd.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/proxydecider.cxx
+
+    int pos  = 0;
+    int flag = 0;
+
+    while ( *pWild || flag )
+    {
+        switch ( *pWild )
+        {
+            case '?':
+                if ( *pStr == '\0' )
+                    return 0;
+                break;
+
+            default:
+                if ( ( *pWild == '\\' ) && ( ( *( pWild + 1 ) == '?' )
+                                             || ( *( pWild + 1 ) == '*') ) )
+                    pWild++;
+                if ( *pWild != *pStr )
+                    if ( !pos )
+                        return 0;
+                    else
+                        pWild += pos;
+                else
+                    break;
+
+                // Note: fall-thru's are intended!
+
+            case '*':
+                while ( *pWild == '*' )
+                    pWild++;
+                if ( *pWild == '\0' )
+                    return 1;
+                flag = 1;
+                pos  = 0;
+                if ( *pStr == '\0' )
+                    return ( *pWild == '\0' );
+                while ( *pStr && *pStr != *pWild )
+                {
+                    if ( *pWild == '?' ) {
+                        pWild++;
+                        while ( *pWild == '*' )
+                            pWild++;
+                    }
+                    pStr++;
+                    if ( *pStr == '\0' )
+                        return ( *pWild == '\0' );
+                }
+                break;
+        }
+        if ( *pWild != '\0' )
+            pWild++;
+        if ( *pStr != '\0' )
+            pStr++;
+        else
+            flag = 0;
+        if ( flag )
+            pos--;
+    }
+    return ( *pStr == '\0' ) && ( *pWild == '\0' );
+}
+=====================================================================
+Found a 64 line (252 tokens) duplication in the following files: 
+Starting at line 3499 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3670 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : WW8PLCFx(rMyFib.GetFIBVersion(), true), pPLCF(0), rFib(rMyFib)
+{
+    long nFc, nLen;
+
+    switch( nType )
+    {
+    case MAN_HDFT:
+        nFc = rFib.fcPlcffldHdr;
+        nLen = rFib.lcbPlcffldHdr;
+        break;
+    case MAN_FTN:
+        nFc = rFib.fcPlcffldFtn;
+        nLen = rFib.lcbPlcffldFtn;
+        break;
+    case MAN_EDN:
+        nFc = rFib.fcPlcffldEdn;
+        nLen = rFib.lcbPlcffldEdn;
+        break;
+    case MAN_AND:
+        nFc = rFib.fcPlcffldAtn;
+        nLen = rFib.lcbPlcffldAtn;
+        break;
+    case MAN_TXBX:
+        nFc = rFib.fcPlcffldTxbx;
+        nLen = rFib.lcbPlcffldTxbx;
+        break;
+    case MAN_TXBX_HDFT:
+        nFc = rFib.fcPlcffldHdrTxbx;
+        nLen = rFib.lcbPlcffldHdrTxbx;
+        break;
+    default:
+        nFc = rFib.fcPlcffldMom;
+        nLen = rFib.lcbPlcffldMom;
+        break;
+    }
+
+    if( nLen )
+        pPLCF = new WW8PLCFspecial( pSt, nFc, nLen, 2 );
+}
+
+WW8PLCFx_FLD::~WW8PLCFx_FLD()
+{
+    delete pPLCF;
+}
+
+ULONG WW8PLCFx_FLD::GetIdx() const
+{
+    return pPLCF ? pPLCF->GetIdx() : 0;
+}
+
+void WW8PLCFx_FLD::SetIdx( ULONG nIdx )
+{
+    if( pPLCF )
+        pPLCF->SetIdx( nIdx );
+}
+
+bool WW8PLCFx_FLD::SeekPos(WW8_CP nCpPos)
+{
+    return pPLCF ? pPLCF->SeekPosExact( nCpPos ) : false;
+}
+
+WW8_CP WW8PLCFx_FLD::Where()
+{
+    return pPLCF ? pPLCF->Where() : WW8_CP_MAX;
+=====================================================================
+Found a 20 line (252 tokens) duplication in the following files: 
+Starting at line 1229 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+Starting at line 1261 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+
+BOOL SdrObjEditView::MouseButtonUp(const MouseEvent& rMEvt, Window* pWin)
+{
+    if (pTextEditOutlinerView!=NULL) {
+        BOOL bPostIt=pTextEditOutliner->IsInSelectionMode();
+        if (!bPostIt) {
+            Point aPt(rMEvt.GetPosPixel());
+            if (pWin!=NULL) aPt=pWin->PixelToLogic(aPt);
+            else if (pTextEditWin!=NULL) aPt=pTextEditWin->PixelToLogic(aPt);
+            bPostIt=IsTextEditHit(aPt,nHitTolLog);
+        }
+        if (bPostIt) {
+            Point aPixPos(rMEvt.GetPosPixel());
+            Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
+            if (aPixPos.X()<aR.Left  ()) aPixPos.X()=aR.Left  ();
+            if (aPixPos.X()>aR.Right ()) aPixPos.X()=aR.Right ();
+            if (aPixPos.Y()<aR.Top   ()) aPixPos.Y()=aR.Top   ();
+            if (aPixPos.Y()>aR.Bottom()) aPixPos.Y()=aR.Bottom();
+            MouseEvent aMEvt(aPixPos,rMEvt.GetClicks(),rMEvt.GetMode(),
+                             rMEvt.GetButtons(),rMEvt.GetModifier());
+            if (pTextEditOutlinerView->MouseButtonUp(aMEvt)) {
+=====================================================================
+Found a 26 line (252 tokens) duplication in the following files: 
+Starting at line 5751 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 6787 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+        CPPUNIT_TEST_SUITE( append_006_Int32_Bounderies );
+        CPPUNIT_TEST( append_001 ); CPPUNIT_TEST( append_002 );
+        CPPUNIT_TEST( append_003 ); CPPUNIT_TEST( append_004 );
+        CPPUNIT_TEST( append_005 ); CPPUNIT_TEST( append_006 );
+        CPPUNIT_TEST( append_007 ); CPPUNIT_TEST( append_008 );
+        CPPUNIT_TEST( append_009 ); CPPUNIT_TEST( append_010 );
+        CPPUNIT_TEST( append_011 ); CPPUNIT_TEST( append_012 );
+        CPPUNIT_TEST( append_013 ); CPPUNIT_TEST( append_014 );
+        CPPUNIT_TEST( append_015 ); CPPUNIT_TEST( append_016 );
+        CPPUNIT_TEST( append_017 ); CPPUNIT_TEST( append_018 );
+        CPPUNIT_TEST( append_019 ); CPPUNIT_TEST( append_020 );
+        CPPUNIT_TEST( append_021 ); CPPUNIT_TEST( append_022 );
+        CPPUNIT_TEST( append_023 ); CPPUNIT_TEST( append_024 );
+        CPPUNIT_TEST( append_025 ); CPPUNIT_TEST( append_026 );
+        CPPUNIT_TEST( append_027 ); CPPUNIT_TEST( append_028 );
+        CPPUNIT_TEST( append_029 ); CPPUNIT_TEST( append_030 );
+        CPPUNIT_TEST( append_031 ); CPPUNIT_TEST( append_032 );
+        CPPUNIT_TEST( append_033 ); CPPUNIT_TEST( append_034 );
+        CPPUNIT_TEST( append_035 ); CPPUNIT_TEST( append_036 );
+        CPPUNIT_TEST( append_037 ); CPPUNIT_TEST( append_038 );
+        CPPUNIT_TEST( append_039 ); CPPUNIT_TEST( append_040 );
+        CPPUNIT_TEST( append_041 ); CPPUNIT_TEST( append_042 );
+        CPPUNIT_TEST( append_043 ); CPPUNIT_TEST( append_044 );
+        CPPUNIT_TEST( append_045 ); CPPUNIT_TEST( append_046 );
+        CPPUNIT_TEST( append_047 ); CPPUNIT_TEST( append_048 );
+        CPPUNIT_TEST( append_049 ); CPPUNIT_TEST( append_050 );
+=====================================================================
+Found a 40 line (252 tokens) duplication in the following files: 
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/utime.c
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsdarm32/utime.c
+
+int
+utime(name, timep)
+char*	name;
+time_t	timep[2];
+{
+	struct timeval tv[2], *tvp;
+	struct stat buf;
+	int	fil;
+	char	data;
+
+	if (timep!=0)
+	{
+		tvp = tv, tv[0].tv_sec = timep[0], tv[1].tv_sec = timep[1];
+		if (utimes(name, tvp)==0)
+			return (0);
+	}
+
+	if (stat(name, &buf) != 0)
+		return (-1);
+	if (buf.st_size != 0)  {
+		if ((fil = open(name, O_RDWR, 0666)) < 0)
+			return (-1);
+		if (read(fil, &data, 1) < 1) {
+			close(fil);
+			return (-1);
+		}
+		lseek(fil, 0L, 0);
+		if (write(fil, &data, 1) < 1) {
+			close(fil);
+			return (-1);
+		}
+		close(fil);
+		return (0);
+	} else 	if ((fil = creat(name, 0666)) < 0) {
+		return (-1);
+	} else {
+		close(fil);
+		return (0);
+	}
+}
+=====================================================================
+Found a 72 line (252 tokens) duplication in the following files: 
+Starting at line 657 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return bValue;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionIgnoredInTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionCausesTransactionCommit(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsDataManipulationTransactionsOnly(  ) throw(SQLException, RuntimeException)
+{
+	//We support create table
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossCommit(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossCommit(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossRollback(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 /*level*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInDataManipulation(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92FullSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92EntryLevelSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True; // should be supported at least
+=====================================================================
+Found a 48 line (252 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx
+
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pUnoReturn = pReturnValue; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void **)pCppStack;
+			pCppStack += sizeof(void *);
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 44 line (252 tokens) duplication in the following files: 
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	nFunctionIndex, nVtableOffset, !simpleRetType, raw[2]);
+#endif
+    return (code + codeSnippetSize);
+}
+
+}
+
+
+#define MIN_LINE_SIZE 32
+
+void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const * bptr, unsigned char const * eptr)
+{
+  unsigned char * eaddr = (unsigned char *) eptr + MIN_LINE_SIZE + 1;
+  for (  unsigned char * addr  = (unsigned char *) bptr; addr < eaddr; addr += MIN_LINE_SIZE) {
+      __asm__ volatile ( "dcbf 0,%0;" "icbi 0,%0;" : : "r"(addr) : "memory");
+  }
+  __asm__ volatile ( "sync;" "isync;" : : : "memory");
+}
+
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code, 
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+{
+=====================================================================
+Found a 45 line (252 tokens) duplication in the following files: 
+Starting at line 640 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 636 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+    * p++ = 0x38e10018;
+    * p++ = 0x4e800420;
+
+    return (code + codeSnippetSize);
+
+}
+
+
+}
+
+
+#define MIN_LINE_SIZE 32
+
+void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const * bptr, unsigned char const * eptr)
+{
+  unsigned char * eaddr = (unsigned char *) eptr + MIN_LINE_SIZE + 1;
+  for (  unsigned char * addr  = (unsigned char *) bptr; addr < eaddr; addr += MIN_LINE_SIZE) {
+      __asm__ volatile ( "dcbf 0,%0;" "icbi 0,%0;" : : "r"(addr) : "memory");
+  }
+  __asm__ volatile ( "sync;" "isync;" : : : "memory");
+}
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
+=====================================================================
+Found a 47 line (252 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+		if (CPPU_CURRENT_NAMESPACE::isSimpleReturnType( pReturnTypeDescr ))
+		{
+			pUnoReturn = pReturnValue; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+            pCppReturn = *(void **)pCppStack;
+            pCppStack += sizeof(void *);
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 12 line (252 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	 faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+	};
+
+	const INT16 A_nAtTagDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+	 err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+	 faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,faw,awd,awd,awd, // ... 63
+=====================================================================
+Found a 33 line (251 tokens) duplication in the following files: 
+Starting at line 3818 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4337 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbf, 0xbb },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x01, 0xf7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+=====================================================================
+Found a 9 line (251 tokens) duplication in the following files: 
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1241 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 9 line (251 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 9 line (251 tokens) duplication in the following files: 
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1017 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0400 - 040f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0410 - 041f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0420 - 042f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0430 - 043f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0460 - 046f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0470 - 047f
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+=====================================================================
+Found a 8 line (251 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 7 line (251 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x1F78}, {0x6a, 0x1F79}, {0x6a, 0x1F7C}, {0x6a, 0x1F7D}, {0xec, 0x0137}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 1ff8 - 1fff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2100 - 2107
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2108 - 210f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2110 - 2117
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2118 - 211f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x6a, 0x03C9}, {0x00, 0x0000}, // 2120 - 2127
+=====================================================================
+Found a 86 line (251 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::xml::sax;
+
+#define ELEMENT_IMAGECONTAINER		"imagescontainer"
+#define ELEMENT_IMAGES				"images"
+#define ELEMENT_ENTRY				"entry"
+#define ELEMENT_EXTERNALIMAGES		"externalimages"
+#define ELEMENT_EXTERNALENTRY		"externalentry"
+
+#define ELEMENT_NS_IMAGESCONTAINER	"image:imagescontainer"
+#define ELEMENT_NS_IMAGES			"image:images"
+#define ELEMENT_NS_ENTRY			"image:entry"
+#define ELEMENT_NS_EXTERNALIMAGES	"image:externalimages"
+#define ELEMENT_NS_EXTERNALENTRY	"image:externalentry"
+
+#define ATTRIBUTE_HREF					"href"
+#define ATTRIBUTE_MASKCOLOR				"maskcolor"
+#define ATTRIBUTE_COMMAND				"command"
+#define ATTRIBUTE_BITMAPINDEX			"bitmap-index"
+#define ATTRIBUTE_MASKURL				"maskurl"
+#define ATTRIBUTE_MASKMODE				"maskmode"
+#define ATTRIBUTE_HIGHCONTRASTURL		"highcontrasturl"
+#define ATTRIBUTE_HIGHCONTRASTMASKURL	"highcontrastmaskurl"
+#define ATTRIBUTE_TYPE_CDATA			"CDATA"
+
+#define ATTRIBUTE_MASKMODE_BITMAP	"maskbitmap"
+#define ATTRIBUTE_MASKMODE_COLOR	"maskcolor"
+
+#define ATTRIBUTE_XMLNS_IMAGE		"xmlns:image"
+#define ATTRIBUTE_XMLNS_XLINK		"xmlns:xlink"
+
+#define ATTRIBUTE_XLINK_TYPE		"xlink:type"
+#define ATTRIBUTE_XLINK_TYPE_VALUE	"simple"
+
+#define XMLNS_IMAGE					"http://openoffice.org/2001/image"
+#define XMLNS_XLINK					"http://www.w3.org/1999/xlink"
+#define XMLNS_IMAGE_PREFIX			"image:"
+#define XMLNS_XLINK_PREFIX			"xlink:"
+
+#define XMLNS_FILTER_SEPARATOR		"^"
+
+#define IMAGES_DOCTYPE	"<!DOCTYPE image:imagecontainer PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"image.dtd\">"
+
+namespace framework
+{
+
+struct ImageXMLEntryProperty
+{
+	OReadImagesDocumentHandler::Image_XML_Namespace	nNamespace;
+	char											aEntryName[20];
+};
+
+ImageXMLEntryProperty ImagesEntries[OReadImagesDocumentHandler::IMG_XML_ENTRY_COUNT] =
+{
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_IMAGECONTAINER			},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_IMAGES					},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_ENTRY					},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_EXTERNALIMAGES			},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_EXTERNALENTRY			},
+	{ OReadImagesDocumentHandler::IMG_NS_XLINK,	ATTRIBUTE_HREF					},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ATTRIBUTE_MASKCOLOR				},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE,	ATTRIBUTE_COMMAND				},
+    { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_BITMAPINDEX			},
+    { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKURL				},
+    { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKMODE				},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_HIGHCONTRASTURL		},
+	{ OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_HIGHCONTRASTMASKURL	}
+};
+
+
+OReadImagesDocumentHandler::OReadImagesDocumentHandler( ImageListsDescriptor& aItems ) :
+	ThreadHelpBase( &Application::GetSolarMutex() ),
+	::cppu::OWeakObject(),
+	m_aImageList( aItems ),
+	m_pImages( 0 ),
+	m_pExternalImages( 0 )
+{
+	m_aImageList.pImageList			= NULL;
+	m_aImageList.pExternalImageList = NULL;
+
+	m_nHashMaskModeBitmap	= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_BITMAP )).hashCode();
+	m_nHashMaskModeColor	= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_COLOR )).hashCode();
+
+	// create hash map to speed up lookup
+	for ( int i = 0; i < (int)IMG_XML_ENTRY_COUNT; i++ )
+=====================================================================
+Found a 33 line (251 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/zortech/tempnam.c
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/tempnam.c
+
+char *prefix;		/* use this (if non-NULL) as filename prefix */
+{
+   static         int count = 0;
+   register char *p, *q, *tmpdir;
+   int            tl=0, dl=0, pl;
+   char		  buf[30];
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL )
+      tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL )
+      tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", getpid() );
+=====================================================================
+Found a 57 line (251 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/xmlExport.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlExport.cxx
+
+	Sequence< ::rtl::OUString > ODBFullExportHelper::getSupportedServiceNames_Static(  ) throw(RuntimeException)
+	{
+		Sequence< ::rtl::OUString > aSupported(1);
+		aSupported[0] = ::rtl::OUString::createFromAscii("com.sun.star.document.ExportFilter");
+		return aSupported;
+	}
+	
+	//---------------------------------------------------------------------
+	::rtl::OUString lcl_implGetPropertyXMLType(const Type& _rType)
+	{
+		// possible types we can write (either because we recognize them directly or because we convert _rValue
+		// into one of these types)
+		static const ::rtl::OUString s_sTypeBoolean	(RTL_CONSTASCII_USTRINGPARAM("boolean"));
+		static const ::rtl::OUString s_sTypeShort	(RTL_CONSTASCII_USTRINGPARAM("short"));
+		static const ::rtl::OUString s_sTypeInteger	(RTL_CONSTASCII_USTRINGPARAM("int"));
+		static const ::rtl::OUString s_sTypeLong	(RTL_CONSTASCII_USTRINGPARAM("long"));
+		static const ::rtl::OUString s_sTypeDouble	(RTL_CONSTASCII_USTRINGPARAM("double"));
+		static const ::rtl::OUString s_sTypeString	(RTL_CONSTASCII_USTRINGPARAM("string"));
+
+		// handle the type description
+		switch (_rType.getTypeClass())
+		{
+			case TypeClass_STRING:
+				return s_sTypeString;
+			case TypeClass_DOUBLE:
+				return s_sTypeDouble;
+			case TypeClass_BOOLEAN:
+				return s_sTypeBoolean;
+			case TypeClass_BYTE:
+			case TypeClass_SHORT:
+				return s_sTypeShort;
+			case TypeClass_LONG:
+				return s_sTypeInteger;
+			case TypeClass_HYPER:
+				return s_sTypeLong;
+			case TypeClass_ENUM:
+				return s_sTypeInteger;
+
+			default:
+				return s_sTypeDouble;
+		}
+	}
+
+	class OSpecialHanldeXMLExportPropertyMapper : public SvXMLExportPropertyMapper
+	{
+	public:
+		OSpecialHanldeXMLExportPropertyMapper(const UniReference< XMLPropertySetMapper >& rMapper) : SvXMLExportPropertyMapper(rMapper )
+		{
+		}
+		/** this method is called for every item that has the
+	    MID_FLAG_SPECIAL_ITEM_EXPORT flag set */
+		virtual void handleSpecialItem(
+				SvXMLAttributeList& /*rAttrList*/,
+				const XMLPropertyState& /*rProperty*/,
+				const SvXMLUnitConverter& /*rUnitConverter*/,
+				const SvXMLNamespaceMap& /*rNamespaceMap*/,
+				const ::std::vector< XMLPropertyState >* /*pProperties*/ = 0,
+=====================================================================
+Found a 62 line (250 tokens) duplication in the following files: 
+Starting at line 1595 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1581 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                uno::Reference< io::XInputStream > xIn = getInputStream( xEnv );
+                if ( !xIn.is() )
+                {
+                    // No interaction if we are not persistent!
+                    uno::Any aProps
+                        = uno::makeAny(
+                                 beans::PropertyValue(
+                                     rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                                       "Uri")),
+                                     -1,
+                                     uno::makeAny(m_xIdentifier->
+                                                      getContentIdentifier()),
+                                     beans::PropertyState_DIRECT_VALUE));
+                    ucbhelper::cancelCommandExecution(
+                        ucb::IOErrorCode_CANT_READ,
+                        uno::Sequence< uno::Any >(&aProps, 1),
+                        m_eState == PERSISTENT
+                            ? xEnv
+                            : uno::Reference< ucb::XCommandEnvironment >(),
+                        rtl::OUString::createFromAscii( "Got no data stream!" ),
+                        this );
+                    // Unreachable
+                }
+
+                try
+                {
+                    uno::Sequence< sal_Int8 > aBuffer;
+                    sal_Int32  nRead = xIn->readSomeBytes( aBuffer, 65536 );
+
+                    while ( nRead > 0 )
+                    {
+                        aBuffer.realloc( nRead );
+                        xOut->writeBytes( aBuffer );
+                        aBuffer.realloc( 0 );
+                        nRead = xIn->readSomeBytes( aBuffer, 65536 );
+                    }
+
+                    xOut->closeOutput();
+                }
+                catch ( io::NotConnectedException const & )
+                {
+                    // closeOutput, readSomeBytes, writeBytes
+                }
+                catch ( io::BufferSizeExceededException const & )
+                {
+                    // closeOutput, readSomeBytes, writeBytes
+                }
+                catch ( io::IOException const & )
+                {
+                    // closeOutput, readSomeBytes, writeBytes
+                }
+            }
+            else
+            {
+                uno::Reference< io::XActiveDataSink > xDataSink(
+                                                rArg.Sink, uno::UNO_QUERY );
+                if ( xDataSink.is() )
+                {
+                    // PULL: wait for client read
+
+                    // May throw CommandFailedException, DocumentPasswordRequest!
+                    uno::Reference< io::XInputStream > xIn = getInputStream( xEnv );
+=====================================================================
+Found a 24 line (250 tokens) duplication in the following files: 
+Starting at line 3767 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3392 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x2082, 0x400, 10800, 3525 }
+};
+static const SvxMSDffVertPair mso_sptSeal8Vert[] =	// adj value 0 -> 10800
+{
+	{ 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I },
+	{ 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I },
+	{ 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I },
+	{ 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I },
+	{ 5 MSO_I, 6 MSO_I }
+};
+static const SvxMSDffTextRectangles mso_sptSealTextRect[] =
+{
+	{ { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
+};
+static const mso_CustomShape msoSeal8 = 
+{
+	(SvxMSDffVertPair*)mso_sptSeal8Vert, sizeof( mso_sptSeal8Vert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	(SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptDefault2500,
+	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 44 line (250 tokens) duplication in the following files: 
+Starting at line 974 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodel.cxx
+Starting at line 493 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomod.cxx
+
+	OGuard aGuard( Application::GetSolarMutex() );
+
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.DashTable") ) )
+	{
+		if( !mxDashTable.is() )
+			mxDashTable = SvxUnoDashTable_createInstance( mpDoc );
+		return mxDashTable;
+	}
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.GradientTable") ) )
+	{
+		if( !mxGradientTable.is() )
+			mxGradientTable = SvxUnoGradientTable_createInstance( mpDoc );
+		return mxGradientTable;
+	}
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.HatchTable") ) )
+	{
+		if( !mxHatchTable.is() )
+			mxHatchTable = SvxUnoHatchTable_createInstance( mpDoc );
+		return mxHatchTable;
+	}
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.BitmapTable") ) )
+	{
+		if( !mxBitmapTable.is() )
+			mxBitmapTable = SvxUnoBitmapTable_createInstance( mpDoc );
+		return mxBitmapTable;
+	}
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.TransparencyGradientTable") ) )
+	{
+		if( !mxTransGradientTable.is() )
+			mxTransGradientTable = SvxUnoTransGradientTable_createInstance( mpDoc );
+		return mxTransGradientTable;
+	}
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.MarkerTable") ) )
+	{
+		if( !mxMarkerTable.is() )
+			mxMarkerTable = SvxUnoMarkerTable_createInstance( mpDoc );
+		return mxMarkerTable;
+	}
+	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.NumberingRules" ) ) )
+	{
+		return uno::Reference< uno::XInterface >( SvxCreateNumRule( mpDoc ), uno::UNO_QUERY );
+	}
+
+	if( aServiceSpecifier.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.image.ImageMapRectangleObject") ) )
+=====================================================================
+Found a 12 line (250 tokens) duplication in the following files: 
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_WRITING),	ATTR_WRITINGDIR,	&getCppuType((sal_Int16*)0),			0, 0 },
+        {0,0,0,0,0,0}
+	};
+	return aRangePropertyMap_Impl;
+=====================================================================
+Found a 28 line (250 tokens) duplication in the following files: 
+Starting at line 2601 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3031 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+							 Xik * pMatX->GetDouble(j,k);
+						pQ->PutDouble( sumXikXjk, j+1, i+1);
+						pQ->PutDouble( sumXikXjk, i+1, j+1);
+					}
+				}
+			}
+		}
+		else
+		{
+			for (k = 0; k < N; k++)
+			{
+				double Yk = pMatY->GetDouble(k);
+				pE->PutDouble( pE->GetDouble(M+1)+Yk*Yk, M+1 );
+				double sumYk = pQ->GetDouble(0, M+1) + Yk;
+				pQ->PutDouble( sumYk, 0, M+1 );
+				pE->PutDouble( sumYk, 0 );
+				for (i = 0; i < M; i++)
+				{
+					double Xki = pMatX->GetDouble(k,i);
+					double sumXki = pQ->GetDouble(0, i+1) + Xki;
+					pQ->PutDouble( sumXki, 0, i+1);
+					pQ->PutDouble( sumXki, i+1, 0);
+					double sumXkiYk = pQ->GetDouble(i+1, M+1) + Xki * Yk;
+					pQ->PutDouble( sumXkiYk, i+1, M+1);
+					pE->PutDouble( sumXkiYk, i+1);
+					for (j = i; j < M; j++)
+					{
+						double sumXkiXkj = pQ->GetDouble(j+1, i+1) +
+=====================================================================
+Found a 56 line (250 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/sal/test/unloading/samplelib1.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/sal/test/unloading/samplelib2.cxx
+
+using namespace ::com::sun::star::registry;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::rtl;
+using namespace ::cppu;
+
+#define IMPLNAME1 "com.sun.star.comp.sal.UnloadingTest21"
+#define SERVICENAME1 "com.sun.star.UnloadingTest21"
+#define IMPLNAME2 "com.sun.star.comp.sal.UnloadingTest22"
+#define SERVICENAME2 "com.sun.star.UnloadingTest22"
+#define IMPLNAME3 "com.sun.star.comp.sal.UnloadingTest23"
+#define SERVICENAME3 "com.sun.star.UnloadingTest23"
+
+// Unloading Support ----------------------------------------------
+rtl_StandardModuleCount globalModuleCount= MODULE_COUNT_INIT;
+//rtl_StandardModuleCount globalModuleCount= { {rtl_moduleCount_acquire,rtl_moduleCount_release}, rtl_moduleCount_canUnload,0,{0,0}}; //, 0, {0, 0}};
+// Services -------------------------------------------------------
+class TestService: public WeakImplHelper1<XServiceInfo>
+{
+OUString m_implName;
+OUString m_serviceName;
+public:
+	TestService( OUString implName, OUString serviceName);
+	~TestService();
+	virtual OUString SAL_CALL getImplementationName(  )  throw (RuntimeException);
+    virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw (RuntimeException);
+    virtual Sequence<OUString > SAL_CALL getSupportedServiceNames(  ) throw (RuntimeException);
+};
+
+TestService::TestService( OUString implName, OUString serviceName):
+			m_implName(implName),m_serviceName(serviceName)
+{	// Library unloading support
+	globalModuleCount.modCnt.acquire( &globalModuleCount.modCnt);
+}
+
+TestService::~TestService()
+{	// Library unloading support
+	globalModuleCount.modCnt.release( &globalModuleCount.modCnt);
+}
+
+OUString SAL_CALL TestService::getImplementationName(  )  throw (RuntimeException)
+{
+	return m_implName;
+}
+sal_Bool SAL_CALL TestService::supportsService( const OUString& ServiceName ) throw (RuntimeException)
+{
+	return ServiceName.equals( m_serviceName);
+}
+Sequence<OUString > SAL_CALL TestService::getSupportedServiceNames(  ) throw (RuntimeException)
+{
+	return Sequence<OUString>( &m_serviceName, 1);
+}
+
+
+// Creator functions for Services -------------------------------------------------
+static Reference<XInterface> SAL_CALL test21_createInstance(const Reference<XMultiServiceFactory> & rSMgr)
+=====================================================================
+Found a 44 line (250 tokens) duplication in the following files: 
+Starting at line 1459 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1537 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+static sal_Bool putLine(osl_TFile* pFile, const sal_Char *pszLine)
+{
+	unsigned int Len = strlen(pszLine);
+
+#ifdef DEBUG_OSL_PROFILE
+	int strLen=0;
+#endif
+
+	if ( pFile == 0 || pFile->m_Handle < 0 )
+    {
+		return (sal_False);
+    }
+
+    if ( pFile->m_pWriteBuf == 0 )
+    {
+        pFile->m_pWriteBuf = (sal_Char*) malloc(Len+3);
+        pFile->m_nWriteBufLen = Len+3;
+		pFile->m_nWriteBufFree = Len+3;
+    }
+    else
+    {
+        if ( pFile->m_nWriteBufFree <= Len + 3 )
+        {
+            sal_Char* pTmp;
+
+            pTmp=(sal_Char*) realloc(pFile->m_pWriteBuf,( ( pFile->m_nWriteBufLen + Len ) * 2) );
+            if ( pTmp == 0 )
+            {
+                return sal_False;
+            }
+            pFile->m_pWriteBuf = pTmp;
+            pFile->m_nWriteBufFree = pFile->m_nWriteBufFree + pFile->m_nWriteBufLen + ( 2 * Len );
+            pFile->m_nWriteBufLen = ( pFile->m_nWriteBufLen + Len ) * 2;
+            memset( (pFile->m_pWriteBuf) + ( pFile->m_nWriteBufLen - pFile->m_nWriteBufFree ), 0, pFile->m_nWriteBufFree);
+        }
+    }
+
+
+
+    memcpy(pFile->m_pWriteBuf + ( pFile->m_nWriteBufLen - pFile->m_nWriteBufFree ),pszLine,Len+1);
+#ifdef DEBUG_OSL_PROFILE
+	strLen = strlen(pFile->m_pWriteBuf);
+#endif
+    pFile->m_pWriteBuf[pFile->m_nWriteBufLen - pFile->m_nWriteBufFree + Len]='\r';
+=====================================================================
+Found a 54 line (250 tokens) duplication in the following files: 
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartTypeTemplate.cxx
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ScatterChartTypeTemplate.cxx
+
+    const Reference< chart2::XDiagram >& xDiagram,
+    sal_Bool bAdaptProperties )
+    throw (uno::RuntimeException)
+{
+    sal_Bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, bAdaptProperties );
+
+    // check symbol-style and line-style
+    // for a template with symbols (or with lines) it is ok, if there is at least one series
+    // with symbols (or with lines)
+    if( bResult )
+    {
+        ::std::vector< Reference< chart2::XDataSeries > > aSeriesVec(
+            DiagramHelper::getDataSeriesFromDiagram( xDiagram ));
+
+        for( ::std::vector< Reference< chart2::XDataSeries > >::const_iterator aIt =
+                 aSeriesVec.begin(); aIt != aSeriesVec.end(); ++aIt )
+        {
+            try
+            {
+                chart2::Symbol aSymbProp;
+                drawing::LineStyle eLineStyle;
+                Reference< beans::XPropertySet > xProp( *aIt, uno::UNO_QUERY_THROW );
+
+                if( (xProp->getPropertyValue( C2U( "Symbol" )) >>= aSymbProp) &&
+                    (aSymbProp.Style != chart2::SymbolStyle_NONE) &&
+                    (!m_bHasSymbols) )
+                {
+                    bResult = false;
+                    break;
+                }
+
+                if( (xProp->getPropertyValue( C2U( "LineStyle" )) >>= eLineStyle) &&
+                    (m_bHasLines != ( eLineStyle != drawing::LineStyle_NONE )) )
+                {
+                    bResult = false;
+                    break;
+                }
+            }
+            catch( uno::Exception & ex )
+            {
+                ASSERT_EXCEPTION( ex );
+            }
+        }
+    }
+
+    // adapt curve style, spline order and resolution
+    if( bResult && bAdaptProperties )
+    {
+        try
+        {
+            uno::Reference< beans::XPropertySet > xChartTypeProp(
+                DiagramHelper::getChartTypeByIndex( xDiagram, 0 ),
+                uno::UNO_QUERY_THROW );
+            setFastPropertyValue_NoBroadcast( PROP_SCATTERCHARTTYPE_TEMPLATE_CURVE_STYLE, xChartTypeProp->getPropertyValue(C2U("CurveStyle" )) );
+=====================================================================
+Found a 59 line (250 tokens) duplication in the following files: 
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 671 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
+{
+
+  // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+  // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+  // fflush(stderr);
+
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription * >(
+                        member)->pAttributeTypeRef));
+
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+=====================================================================
+Found a 52 line (250 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/exes/adc_uni/cmd_run.cxx
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/exes/adc_uni/cmd_run.cxx
+
+    i_rProject.aRootDirectory.Get( aDir );
+
+    uintt nProjectDir_AddPosition =
+            ( strcmp(aDir.c_str(),".\\") == 0 OR strcmp(aDir.c_str(),"./") == 0 )
+                ?   0
+                :   uintt( aDir.tellp() );
+
+    for ( it = rSources.aDirectories.begin();
+          it != itDirsEnd;
+          ++it )
+    {
+        aDir.seekp( nProjectDir_AddPosition );
+        aDir << *it;
+
+        for ( itExt = rExtensions.begin();
+              itExt != itExtEnd;
+              ++itExt )
+        {
+            ret += o_rFiles.AddFilesFrom( aDir.c_str(),
+                                          *itExt,
+                                          FileCollector_Ifc::flat );
+        }   // end for itExt
+    }   // end for it
+    for ( it = rSources.aTrees.begin();
+          it != itTreesEnd;
+          ++it )
+    {
+        aDir.seekp( nProjectDir_AddPosition );
+        aDir << *it;
+
+        for ( itExt = rExtensions.begin();
+              itExt != itExtEnd;
+              ++itExt )
+        {
+            ret += o_rFiles.AddFilesFrom( aDir.c_str(),
+                                          *itExt,
+                                          FileCollector_Ifc::recursive );
+        }   // end for itExt
+    }   // end for it
+    for ( it = rSources.aFiles.begin();
+          it != itFilesEnd;
+          ++it )
+    {
+        aDir.seekp( nProjectDir_AddPosition );
+        aDir << *it;
+
+        o_rFiles.AddFile( aDir.c_str() );
+    }   // end for it
+    ret += rSources.aFiles.size();
+
+    return ret;
+}
+=====================================================================
+Found a 51 line (249 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/propread.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/dinfos2.cxx
+
+void Dictionary::AddProperty( UINT32 nId, const String& rString )
+{
+	if ( rString.Len() )		// eindeutige namen bei properties
+	{
+		// pruefen, ob es die Propertybeschreibung in der Dictionary schon gibt
+		for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
+		{
+			if ( pDict->mnId == nId )
+			{
+				pDict->aString = rString;
+				return;
+			}
+		}
+		Insert( new Dict( nId, rString ), LIST_APPEND );
+	}
+}
+
+//	-----------------------------------------------------------------------
+
+UINT32 Dictionary::GetProperty( const String& rString )
+{
+	for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
+	{
+		if ( pDict->aString == rString )
+			return pDict->mnId;
+	}
+	return 0;
+}
+
+//	-----------------------------------------------------------------------
+
+Dictionary& Dictionary::operator=( Dictionary& rDictionary )
+{
+	void* pPtr;
+
+	if ( this != &rDictionary )
+	{
+		for ( pPtr = First(); pPtr; pPtr = Next() )
+			delete (Dict*)pPtr;
+
+		for ( pPtr = rDictionary.First(); pPtr; pPtr = rDictionary.Next() )
+			Insert( new Dict( ((Dict*)pPtr)->mnId, ((Dict*)pPtr)->aString ), LIST_APPEND );
+	}
+	return *this;
+}
+
+//	-----------------------------------------------------------------------
+
+Section::Section( Section& rSection )
+: List()
+{
+=====================================================================
+Found a 35 line (249 tokens) duplication in the following files: 
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen5.cxx
+Starting at line 652 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen5.cxx
+
+			const ScRangeListRef& rNewRangeListRef )
+{
+    // called from ChartListener
+
+    if (!pDrawLayer)
+        return;
+
+    for (SCTAB nTab=0; nTab<=MAXTAB && pTab[nTab]; nTab++)
+    {
+        SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
+        DBG_ASSERT(pPage,"Page ?");
+
+        SdrObjListIter aIter( *pPage, IM_DEEPNOGROUPS );
+        SdrObject* pObject = aIter.Next();
+        while (pObject)
+        {
+            if ( pObject->GetObjIdentifier() == OBJ_OLE2 &&
+                    ((SdrOle2Obj*)pObject)->GetPersistName() == rChartName )
+            {
+                uno::Reference< embed::XEmbeddedObject > xIPObj = ((SdrOle2Obj*)pObject)->GetObjRef();
+                if ( xIPObj.is() )
+                {
+                    svt::EmbeddedObjectRef::TryRunningState( xIPObj );
+
+                    uno::Reference< util::XCloseable > xComponent = xIPObj->getComponent();
+                    uno::Reference< chart2::XChartDocument > xChartDoc( xComponent, uno::UNO_QUERY );
+                    uno::Reference< chart2::data::XDataReceiver > xReceiver( xComponent, uno::UNO_QUERY );
+                    if ( xChartDoc.is() && xReceiver.is() )
+                    {
+                        ScRangeListRef aNewRanges;
+                        chart::ChartDataRowSource eDataRowSource = chart::ChartDataRowSource_COLUMNS;
+                        bool bHasCategories = false;
+                        bool bFirstCellAsLabel = false;
+                        rtl::OUString aRangesStr;
+                        lcl_GetChartParameters( xChartDoc, aRangesStr, eDataRowSource, bHasCategories, bFirstCellAsLabel );
+=====================================================================
+Found a 8 line (249 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 9 line (249 tokens) duplication in the following files: 
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 7 line (249 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x1F78}, {0x6a, 0x1F79}, {0x6a, 0x1F7C}, {0x6a, 0x1F7D}, {0xec, 0x0137}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 1ff8 - 1fff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2100 - 2107
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2108 - 210f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2110 - 2117
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2118 - 211f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x6a, 0x03C9}, {0x00, 0x0000}, // 2120 - 2127
+=====================================================================
+Found a 55 line (249 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/attributelist.cxx
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 61 line (249 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/headermenucontroller.cxx
+
+                            a = xPropSet->getPropertyValue( aHeaderIsOnStr );
+                            a >>= bHeaderIsOn;
+                            
+                            rtl::OUStringBuffer aStrBuf( aCmd );
+                            aStrBuf.appendAscii( "?PageStyle:string=");
+                            aStrBuf.append( aDisplayName );
+                            aStrBuf.appendAscii( "&On:bool=" );
+                            if ( !bHeaderIsOn )
+                                aStrBuf.appendAscii( "true" );
+                            else
+                                aStrBuf.appendAscii( "false" );
+                            rtl::OUString aCommand( aStrBuf.makeStringAndClear() );
+                            pVCLPopupMenu->InsertItem( nId, aDisplayName, MIB_CHECKABLE );
+                            if ( !bFirstItemInserted )
+                            {
+                                bFirstItemInserted = sal_True;
+                                bFirstChecked      = bHeaderIsOn;
+                            }
+                            
+                            pVCLPopupMenu->SetItemCommand( nId, aCommand );
+
+                            if ( bHeaderIsOn )
+                                pVCLPopupMenu->CheckItem( nId, sal_True );
+                            ++nId;
+			                
+                            // Check if all entries have the same state
+                            if( bAllOneState && n && bHeaderIsOn != bLastCheck )
+				                bAllOneState = FALSE;
+                            bLastCheck = bHeaderIsOn;
+                            ++nCount;
+                        }
+                    }
+                }
+
+                if ( bAllOneState && ( nCount > 1 ))
+                {
+                    // Insert special item for all command
+                    pVCLPopupMenu->InsertItem( ALL_MENUITEM_ID, String( FwkResId( STR_MENU_HEADFOOTALL )), 0, 0 );
+
+                    rtl::OUStringBuffer aStrBuf( aCmd );
+                    aStrBuf.appendAscii( "?On:bool=" );
+                    
+                    // Command depends on check state of first menu item entry
+                    if ( !bFirstChecked )
+                        aStrBuf.appendAscii( "true" );
+                    else
+                        aStrBuf.appendAscii( "false" );
+
+                    pVCLPopupMenu->SetItemCommand( 1, aStrBuf.makeStringAndClear() );
+				    pVCLPopupMenu->InsertSeparator( 1 );
+                }
+            }
+        }
+        catch ( com::sun::star::container::NoSuchElementException& )
+        {
+        }
+    }
+}
+
+// XEventListener
+void SAL_CALL HeaderMenuController::disposing( const EventObject& ) throw ( RuntimeException )
+=====================================================================
+Found a 38 line (249 tokens) duplication in the following files: 
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/urltransformer.cxx
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/urltransformer.cxx
+
+	if ( bOk )
+	{
+		// Get all information about this URL.
+		aURL.Protocol	= INetURLObject::GetScheme( aParser.GetProtocol() );
+		aURL.User		= aParser.GetUser	( INetURLObject::DECODE_WITH_CHARSET );
+		aURL.Password	= aParser.GetPass	( INetURLObject::DECODE_WITH_CHARSET );
+		aURL.Server		= aParser.GetHost	( INetURLObject::DECODE_WITH_CHARSET );
+		aURL.Port		= (sal_Int16)aParser.GetPort();
+
+		sal_Int32 nCount = aParser.getSegmentCount( false );
+		if ( nCount > 0 )
+		{
+			// Don't add last segment as it is the name!
+			--nCount;
+
+			rtl::OUStringBuffer aPath;
+			for ( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ )
+			{
+				aPath.append( sal_Unicode( '/' ));
+				aPath.append( aParser.getName( nIndex, false, INetURLObject::NO_DECODE ));
+			}
+		
+			if ( nCount > 0 )
+				aPath.append( sal_Unicode( '/' )); // final slash!
+
+			aURL.Path = aPath.makeStringAndClear();
+			aURL.Name = aParser.getName( INetURLObject::LAST_SEGMENT, false, INetURLObject::NO_DECODE );
+		}
+		else
+		{
+			aURL.Path       = aParser.GetURLPath( INetURLObject::NO_DECODE           );
+			aURL.Name		= aParser.GetName	(									 );
+		}
+
+		aURL.Arguments  = aParser.GetParam  ( INetURLObject::NO_DECODE           );
+		aURL.Mark		= aParser.GetMark	( INetURLObject::DECODE_WITH_CHARSET );
+
+		aURL.Complete	= aParser.GetMainURL( INetURLObject::NO_DECODE           );
+=====================================================================
+Found a 9 line (249 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 42 line (248 tokens) duplication in the following files: 
+Starting at line 1428 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1893 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+ScXMLMovementContext::ScXMLMovementContext( ScXMLImport& rImport,
+											  USHORT nPrfx,
+				   	  						  const ::rtl::OUString& rLName,
+									  		const uno::Reference<xml::sax::XAttributeList>& xAttrList,
+											ScXMLChangeTrackingImportHelper* pTempChangeTrackingImportHelper ) :
+	SvXMLImportContext( rImport, nPrfx, rLName ),
+	pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
+{
+	sal_uInt32 nActionNumber(0);
+	sal_uInt32 nRejectingNumber(0);
+	ScChangeActionState nActionState(SC_CAS_VIRGIN);
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+				nActionNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_ACCEPTANCE_STATE))
+			{
+				if (IsXMLToken(sValue, XML_ACCEPTED))
+					nActionState = SC_CAS_ACCEPTED;
+				else if (IsXMLToken(sValue, XML_REJECTED))
+					nActionState = SC_CAS_REJECTED;
+			}
+			else if (IsXMLToken(aLocalName, XML_REJECTING_CHANGE_ID))
+			{
+				nRejectingNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+		}
+	}
+
+	pChangeTrackingImportHelper->StartChangeAction(SC_CAT_MOVE);
+=====================================================================
+Found a 31 line (248 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// create desktop
+	CComPtr<IDispatch> pdispDesktop;
+	hr = GetIDispByFunc( mpDispFactory, L"createInstance", &CComVariant( L"com.sun.star.frame.Desktop" ), 1, pdispDesktop );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// create tree of frames
+	CComPtr<IDispatch> pdispChildren;
+	hr = GetIDispByFunc( pdispDesktop, L"getFrames", NULL, 0, pdispChildren );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// insert new frame into desctop hierarchy
+	hr = ExecuteFunc( pdispChildren, L"append", &CComVariant( mpDispFrame ), 1, &dummyResult );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	// initialize window
+	hr = ExecuteFunc( mpDispWin, L"setBackground", &CComVariant( (long)0xFFFFFFFF ), 1, &dummyResult );
+	if( !SUCCEEDED( hr ) ) return hr;
+	
+	hr = ExecuteFunc( mpDispWin, L"setVisible", &CComVariant( TRUE ), 1, &dummyResult );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	CComVariant aPosArgs[5];
+	aPosArgs[4] = CComVariant( 0 );
+	aPosArgs[3] = CComVariant( 0 );
+	aPosArgs[2] = CComVariant( width );
+	aPosArgs[1] = CComVariant( height );
+	aPosArgs[0] = CComVariant( 12 );
+	hr = ExecuteFunc( mpDispWin, L"setPosSize", aPosArgs, 5, &dummyResult );
+	if( !SUCCEEDED( hr ) ) return hr;
+=====================================================================
+Found a 35 line (248 tokens) duplication in the following files: 
+Starting at line 551 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+			return bCStyle ? "typelib_TypeClass_SERVICE" : "::com::sun::star::uno::TypeClass_SERVICE";
+		case RT_TYPE_INVALID:
+			{
+				if (type.equals("long"))
+					return bCStyle ? "typelib_TypeClass_LONG" : "::com::sun::star::uno::TypeClass_LONG";
+				if (type.equals("short"))
+					return bCStyle ? "typelib_TypeClass_SHORT" : "::com::sun::star::uno::TypeClass_SHORT";
+				if (type.equals("hyper"))
+					return bCStyle ? "typelib_TypeClass_HYPER" : "::com::sun::star::uno::TypeClass_HYPER";
+				if (type.equals("string"))
+					return bCStyle ? "typelib_TypeClass_STRING" : "::com::sun::star::uno::TypeClass_STRING";
+				if (type.equals("boolean"))
+					return bCStyle ? "typelib_TypeClass_BOOLEAN" : "::com::sun::star::uno::TypeClass_BOOLEAN";
+				if (type.equals("char"))
+					return bCStyle ? "typelib_TypeClass_CHAR" : "::com::sun::star::uno::TypeClass_CHAR";
+				if (type.equals("byte"))
+					return bCStyle ? "typelib_TypeClass_BYTE" : "::com::sun::star::uno::TypeClass_BYTE";
+				if (type.equals("any"))
+					return bCStyle ? "typelib_TypeClass_ANY" : "::com::sun::star::uno::TypeClass_ANY";
+				if (type.equals("type"))
+					return bCStyle ? "typelib_TypeClass_TYPE" : "::com::sun::star::uno::TypeClass_TYPE";
+				if (type.equals("float"))
+					return bCStyle ? "typelib_TypeClass_FLOAT" : "::com::sun::star::uno::TypeClass_FLOAT";
+				if (type.equals("double"))
+					return bCStyle ? "typelib_TypeClass_DOUBLE" : "::com::sun::star::uno::TypeClass_DOUBLE";
+				if (type.equals("void"))
+					return bCStyle ? "typelib_TypeClass_VOID" : "::com::sun::star::uno::TypeClass_VOID";
+				if (type.equals("unsigned long"))
+					return bCStyle ? "typelib_TypeClass_UNSIGNED_LONG" : "::com::sun::star::uno::TypeClass_UNSIGNED_LONG";
+				if (type.equals("unsigned short"))
+					return bCStyle ? "typelib_TypeClass_UNSIGNED_SHORT" : "::com::sun::star::uno::TypeClass_UNSIGNED_SHORT";
+				if (type.equals("unsigned hyper"))
+					return bCStyle ? "typelib_TypeClass_UNSIGNED_HYPER" : "::com::sun::star::uno::TypeClass_UNSIGNED_HYPER";
+			}
+			break;
+=====================================================================
+Found a 35 line (247 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+
+void IdlCompFieldImpl::set( Any & rObj, const Any & rValue )
+	throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException)
+{
+	if (rObj.getValueTypeClass() == com::sun::star::uno::TypeClass_STRUCT ||
+		rObj.getValueTypeClass() == com::sun::star::uno::TypeClass_EXCEPTION)
+	{
+		typelib_TypeDescription * pObjTD = 0;
+		TYPELIB_DANGER_GET( &pObjTD, rObj.getValueTypeRef() );
+		
+		typelib_TypeDescription * pTD = pObjTD;
+		typelib_TypeDescription * pDeclTD = getDeclTypeDescr();
+		while (pTD && !typelib_typedescription_equals( pTD, pDeclTD ))
+			pTD = (typelib_TypeDescription *)((typelib_CompoundTypeDescription *)pTD)->pBaseTypeDescription;
+		
+		OSL_ENSURE( pTD, "### illegal object type!" );
+		if (pTD)
+		{
+			TYPELIB_DANGER_RELEASE( pObjTD );
+			if (coerce_assign( (char *)rObj.getValue() + _nOffset, getTypeDescr(), rValue, getReflection() ))
+			{
+				return;
+			}
+			else
+			{
+				throw IllegalArgumentException(
+					OUString( RTL_CONSTASCII_USTRINGPARAM("illegal value given!") ),
+					(XWeak *)(OWeakObject *)this, 1 );
+			}
+		}
+		TYPELIB_DANGER_RELEASE( pObjTD );
+	}
+	throw IllegalArgumentException(
+		OUString( RTL_CONSTASCII_USTRINGPARAM("illegal object given!") ),
+		(XWeak *)(OWeakObject *)this, 0 );
+}
+=====================================================================
+Found a 33 line (247 tokens) duplication in the following files: 
+Starting at line 633 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+Starting at line 716 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+
+BOOL ScOutlineDocFunc::HideOutline( SCTAB nTab, BOOL bColumns, USHORT nLevel, USHORT nEntry,
+                                    BOOL bRecord, BOOL bPaint, BOOL /* bApi */ )
+{
+	ScDocument* pDoc = rDocShell.GetDocument();
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+
+	ScOutlineTable* pTable = pDoc->GetOutlineTable( nTab );
+	ScOutlineArray* pArray = bColumns ? pTable->GetColArray() : pTable->GetRowArray();
+	ScOutlineEntry* pEntry = pArray->GetEntry( nLevel, nEntry );
+	SCCOLROW nStart = pEntry->GetStart();
+	SCCOLROW nEnd	= pEntry->GetEnd();
+
+	if ( bRecord )
+	{
+		ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+		if (bColumns)
+		{
+			pUndoDoc->InitUndo( pDoc, nTab, nTab, TRUE, FALSE );
+            pDoc->CopyToDocument( static_cast<SCCOL>(nStart), 0, nTab,
+                    static_cast<SCCOL>(nEnd), MAXROW, nTab, IDF_NONE, FALSE,
+                    pUndoDoc );
+		}
+		else
+		{
+			pUndoDoc->InitUndo( pDoc, nTab, nTab, FALSE, TRUE );
+			pDoc->CopyToDocument( 0, nStart, nTab, MAXCOL, nEnd, nTab, IDF_NONE, FALSE, pUndoDoc );
+		}
+
+		rDocShell.GetUndoManager()->AddUndoAction(
+			new ScUndoDoOutline( &rDocShell,
+									nStart, nEnd, nTab, pUndoDoc,
+									bColumns, nLevel, nEntry, FALSE ) );
+=====================================================================
+Found a 9 line (247 tokens) duplication in the following files: 
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Pchar */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
+=====================================================================
+Found a 10 line (247 tokens) duplication in the following files: 
+Starting at line 533 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* RegName */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
+=====================================================================
+Found a 8 line (247 tokens) duplication in the following files: 
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 11 line (247 tokens) duplication in the following files: 
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 10 line (247 tokens) duplication in the following files: 
+Starting at line 597 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 747 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0,// 32f0 - 32ff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3300 - 330f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3310 - 331f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3320 - 332f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3330 - 333f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3340 - 334f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3350 - 335f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3360 - 336f
+    27,27,27,27,27,27,27, 0, 0, 0, 0,27,27,27,27,27,// 3370 - 337f
+=====================================================================
+Found a 57 line (247 tokens) duplication in the following files: 
+Starting at line 655 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 728 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+void SAL_CALL OReadMenuPopupHandler::characters(const rtl::OUString&)
+throw(	SAXException, RuntimeException )
+{
+}
+
+
+void SAL_CALL OReadMenuPopupHandler::endElement( const OUString& aName )
+	throw( SAXException, RuntimeException )
+{
+	--m_nElementDepth;
+	if ( m_bMenuMode )
+	{
+		if ( 0 == m_nElementDepth )
+		{
+			m_xReader->endDocument();
+			m_xReader = Reference< XDocumentHandler >();
+			m_bMenuMode = sal_False;
+			if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENU )))
+			{
+				OUString aErrorMessage = getErrorLineString();
+				aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menu expected!" ));
+				throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+			}
+		}
+		else
+			m_xReader->endElement( aName );
+	}
+	else
+	{
+		if ( m_nNextElementExpected == ELEM_CLOSE_MENUITEM )
+		{
+			if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUITEM )))
+			{
+				OUString aErrorMessage = getErrorLineString();
+				aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menuitem expected!" ));
+				throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+			}
+		}
+		else if ( m_nNextElementExpected == ELEM_CLOSE_MENUSEPARATOR )
+		{
+			if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUSEPARATOR )))
+			{
+				OUString aErrorMessage = getErrorLineString();
+				aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menuseparator expected!" ));
+				throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+			}
+		}
+
+		m_nNextElementExpected = ELEM_CLOSE_NONE;
+	}
+}
+
+
+// --------------------------------- Write XML ---------------------------------
+
+
+OWriteMenuDocumentHandler::OWriteMenuDocumentHandler( 
+=====================================================================
+Found a 61 line (247 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/accelerators/acceleratorexecute.cxx
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/acceleratorexecute.cxx
+
+AcceleratorExecute::AcceleratorExecute(const AcceleratorExecute&)
+    : TMutexInit      (                                                     )
+    , m_aAsyncCallback(LINK(this, AcceleratorExecute, impl_ts_asyncCallback))
+{
+    // copy construction sint supported in real ...
+    // but we need this ctor to init our async callback ...
+}
+
+//-----------------------------------------------
+AcceleratorExecute::~AcceleratorExecute()
+{
+    // does nothing real
+}
+
+//-----------------------------------------------
+AcceleratorExecute* AcceleratorExecute::createAcceleratorHelper()
+{
+    AcceleratorExecute* pNew = new AcceleratorExecute();
+    return pNew;
+}
+
+//-----------------------------------------------
+void AcceleratorExecute::init(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR,
+                              const css::uno::Reference< css::frame::XFrame >&              xEnv )
+{
+    // SAFE -> ----------------------------------
+    ::osl::ResettableMutexGuard aLock(m_aLock);
+
+    // take over the uno service manager
+    m_xSMGR = xSMGR;
+
+    // specify our internal dispatch provider
+    // frame or desktop?! => document or global config.
+    sal_Bool bDesktopIsUsed = sal_False;
+             m_xDispatcher  = css::uno::Reference< css::frame::XDispatchProvider >(xEnv, css::uno::UNO_QUERY);
+    if (!m_xDispatcher.is())
+    {
+        aLock.clear();
+        // <- SAFE ------------------------------
+
+        css::uno::Reference< css::frame::XDispatchProvider > xDispatcher(
+                            xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop")),
+                            css::uno::UNO_QUERY_THROW);
+
+        // SAFE -> ------------------------------
+        aLock.reset();
+
+        m_xDispatcher  = xDispatcher;
+        bDesktopIsUsed = sal_True;
+    }
+
+    aLock.clear();
+    // <- SAFE ----------------------------------
+
+    // open all needed configuration objects
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xGlobalCfg;
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xModuleCfg;
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xDocCfg   ;
+
+    // global cfg
+    xGlobalCfg = AcceleratorExecute::st_openGlobalConfig(xSMGR);
+=====================================================================
+Found a 9 line (247 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0500 - 050f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 66 line (247 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+							   aTitle );
+		Control->statusChanged(aStateEvent);
+		
+		
+		{
+			osl::MutexGuard aGuard(m_aMutex);
+			if(!m_pStatCL)
+				m_pStatCL = 
+					new StatusChangeListenerContainer(m_aMutex);
+		}
+		
+		m_pStatCL->addInterface(URL.Complete,Control);
+		return;
+	}
+
+	if(URL.Complete == m_aInterceptedURL[5]) 
+	{   // SaveAs
+		frame::FeatureStateEvent aStateEvent;
+		aStateEvent.FeatureURL.Complete = m_aInterceptedURL[5];
+		aStateEvent.FeatureDescriptor = rtl::OUString(
+			RTL_CONSTASCII_USTRINGPARAM("SaveCopyTo"));
+		aStateEvent.IsEnabled = sal_True;
+		aStateEvent.Requery = sal_False;
+		aStateEvent.State <<= (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("($3)")));
+		Control->statusChanged(aStateEvent);
+		
+		{
+			osl::MutexGuard aGuard(m_aMutex);
+			if(!m_pStatCL)
+				m_pStatCL = 
+					new StatusChangeListenerContainer(m_aMutex);
+		}
+		
+		m_pStatCL->addInterface(URL.Complete,Control);
+		return;
+	}
+
+}
+
+
+void SAL_CALL
+Interceptor::removeStatusListener(
+	const uno::Reference< 
+	frame::XStatusListener >& Control, 
+	const util::URL& URL ) 
+	throw (
+		uno::RuntimeException
+	)
+{
+	if(!(Control.is() && m_pStatCL))
+		return;
+	else {
+		m_pStatCL->removeInterface(URL.Complete,Control);
+		return;
+	}
+}
+
+
+//XInterceptorInfo
+uno::Sequence< ::rtl::OUString > 
+SAL_CALL 
+Interceptor::getInterceptedURLs(  )
+	throw (
+		uno::RuntimeException
+	)
+{
+=====================================================================
+Found a 27 line (246 tokens) duplication in the following files: 
+Starting at line 780 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+Starting at line 824 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+    : InsertObjectDialog_Impl( pParent, SVX_RES( MD_INSERT_OBJECT_IFRAME ), uno::Reference < embed::XStorage >() )
+	, aFTName ( this, SVX_RES( FT_FRAMENAME ) )
+	, aEDName ( this, SVX_RES( ED_FRAMENAME ) )
+	, aFTURL ( this, SVX_RES( FT_URL ) )
+	, aEDURL ( this, SVX_RES( ED_URL ) )
+	, aBTOpen ( this, SVX_RES(BT_FILEOPEN ) )
+	, aRBScrollingOn ( this, SVX_RES( RB_SCROLLINGON ) )
+	, aRBScrollingOff ( this, SVX_RES( RB_SCROLLINGOFF ) )
+	, aRBScrollingAuto ( this, SVX_RES( RB_SCROLLINGAUTO ) )
+    , aFLScrolling ( this, SVX_RES( GB_SCROLLING ) )
+    , aFLSepLeft( this, SVX_RES( FL_SEP_LEFT ) )
+	, aRBFrameBorderOn ( this, SVX_RES( RB_FRMBORDER_ON ) )
+	, aRBFrameBorderOff ( this, SVX_RES( RB_FRMBORDER_OFF ) )
+    , aFLFrameBorder( this, SVX_RES( GB_BORDER ) )
+    , aFLSepRight( this, SVX_RES( FL_SEP_RIGHT ) )
+	, aFTMarginWidth ( this, SVX_RES( FT_MARGINWIDTH ) )
+	, aNMMarginWidth ( this, SVX_RES( NM_MARGINWIDTH ) )
+	, aCBMarginWidthDefault( this, SVX_RES( CB_MARGINHEIGHTDEFAULT ) )
+	, aFTMarginHeight ( this, SVX_RES( FT_MARGINHEIGHT ) )
+	, aNMMarginHeight ( this, SVX_RES( NM_MARGINHEIGHT ) )
+	, aCBMarginHeightDefault( this, SVX_RES( CB_MARGINHEIGHTDEFAULT ) )
+    , aFLMargin( this, SVX_RES( GB_MARGIN ) )
+    , aOKButton1( this, SVX_RES( 1 ) )
+    , aCancelButton1( this, SVX_RES( 1 ) )
+    , aHelpButton1( this, SVX_RES( 1 ) )
+{
+	FreeResource();
+=====================================================================
+Found a 61 line (246 tokens) duplication in the following files: 
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/cpp/remoteclient/remoteclient.cxx
+
+using namespace remotebridges_officeclient;
+#define IMPLEMENTATION_NAME "com.sun.star.comp.product.example.RemoteClientSample"
+
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+					OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
+			
+			const Sequence< OUString > & rSNL = getSupportedServiceNames();
+			const OUString * pArray = rSNL.getConstArray();
+			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+				xNewKey->createKey( pArray[nPos] );
+			
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	void * pRet = 0;
+	
+	if (pServiceManager && rtl_str_compare( pImplName, IMPLEMENTATION_NAME ) == 0)
+	{
+		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
+			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+			OUString::createFromAscii( pImplName ),
+			CreateInstance, getSupportedServiceNames() ) );
+		
+		if (xFactory.is())
+		{
+			xFactory->acquire();
+			pRet = xFactory.get();
+		}
+	}
+	
+	return pRet;
+}
+}
+=====================================================================
+Found a 50 line (246 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/unix.c
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_unix.c
+
+							Dflag++;
+							break;
+
+						case 'w':
+							dp = &optarg[n + 1];
+							n += strlen(dp);
+							while (isspace(*dp)) dp++;
+
+							for (i = NINCLUDE - 1; i >= 0; i--)
+							{
+								if (wraplist[i].file == NULL)
+								{
+									wraplist[i].file = dp;
+									break;
+								}
+							}
+							if (i < 0)
+								error(WARNING, "Too many -Xw directives");
+							break;
+
+						default:								
+							error(WARNING, "Unknown extension option %c", c);
+					}
+				break;
+
+            case '+':
+                Cplusplus++;
+                break;
+
+            case 'u':                   /* -undef fuer GCC (dummy) */
+            case 'l':                   /* -lang-c++ fuer GCC (dummy) */
+                break;
+
+            default:
+                break;
+        }
+    dp = ".";
+    fp = "<stdin>";
+    fd = 0;
+    if (optind < argc)
+    {
+        if ((fp = strrchr(argv[optind], '/')) != NULL)
+        {
+            int len = fp - argv[optind];
+
+            dp = (char *) newstring((uchar *) argv[optind], len + 1, 0);
+            dp[len] = '\0';
+        }
+        fp = (char *) newstring((uchar *) argv[optind], strlen(argv[optind]), 0);
+        if ((fd = open(fp, O_RDONLY)) <= 0)
+=====================================================================
+Found a 71 line (246 tokens) duplication in the following files: 
+Starting at line 547 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/lex.c
+Starting at line 517 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_lex.c
+
+                        s->lineinc = 0;;
+                        tp->type = COMMENT;
+						tp->flag |= XTWS;
+					}
+            }
+            break;
+        }
+        ip += runelen;
+        runelen = 1;
+        tp->len = ip - tp->t;
+        tp++;
+    }
+}
+
+/* have seen ?; handle the trigraph it starts (if any) else 0 */
+int
+    trigraph(Source * s)
+{
+    uchar c;
+
+    while (s->inp + 2 >= s->inl && fillbuf(s) != EOF);
+	;
+    if (s->inp[1] != '?')
+        return 0;
+    c = 0;
+    switch (s->inp[2])
+    {
+        case '=':
+            c = '#';
+            break;
+        case '(':
+            c = '[';
+            break;
+        case '/':
+            c = '\\';
+            break;
+        case ')':
+            c = ']';
+            break;
+        case '\'':
+            c = '^';
+            break;
+        case '<':
+            c = '{';
+            break;
+        case '!':
+            c = '|';
+            break;
+        case '>':
+            c = '}';
+            break;
+        case '-':
+            c = '~';
+            break;
+    }
+    if (c)
+    {
+        *s->inp = c;
+        memmove(s->inp + 1, s->inp + 3, s->inl - s->inp + 2);
+        s->inl -= 2;
+    }
+    return c;
+}
+
+int
+    foldline(Source * s)
+{
+    int n = 1;
+
+	/* skip pending wihite spaces */
+	while ((s->inp[n] == ' ') || (s->inp[n] == '\t'))
+=====================================================================
+Found a 8 line (246 tokens) duplication in the following files: 
+Starting at line 1017 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 33 line (246 tokens) duplication in the following files: 
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 889 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+      Ainv[i][j] = ( i != j ? 0 : 1 );
+  }
+
+  for (j = 0; j < n; j++)
+  {
+    for (i = 0; i < j; i++)
+      v[i] = A[j][i]*A[i][i];
+
+    v[j] = A[j][j];
+    for (i = 0; i < j; i++)
+      v[j] -= A[j][i]*v[i];
+
+    A[j][j] = v[j];
+    for (i = j+1; i < n; i++)
+    {
+      for (k = 0; k < j; k++)
+	A[i][j] -= A[i][k]*v[k];
+      A[i][j] /= v[j];
+    }
+  }
+  delete[] v;
+
+  for (int col = 0; col < n; col++)
+  {
+    // forward substitution
+    for (i = 0; i < n; i++)
+    {
+      for (j = 0; j < i; j++)
+	Ainv[i][col] -= A[i][j]*Ainv[j][col];
+    }
+
+    // diagonal division
+    const double tolerance = 1e-06;
+=====================================================================
+Found a 67 line (246 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LServices.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+			OEvoabDriver::getImplementationName_Static(),
+			OEvoabDriver::getSupportedServiceNames_Static(), xKey);
+
+		return sal_True;
+	}
+	catch (::com::sun::star::registry::InvalidRegistryException& )
+	{
+		OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+	}
+
+	return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+					const sal_Char* pImplementationName,
+					void* pServiceManager,
+					void* /*pRegistryKey*/)
+{
+	void* pRet = 0;
+	if (pServiceManager)
+	{
+		ProviderRequest aReq(pServiceManager,pImplementationName);
+
+		aReq.CREATE_PROVIDER(
+			OEvoabDriver::getImplementationName_Static(),
+			OEvoabDriver::getSupportedServiceNames_Static(),
+			OEvoabDriver_CreateInstance, ::cppu::createSingleFactory)
+		;
+
+		if(aReq.xRet.is())
+			aReq.xRet->acquire();
+
+		pRet = aReq.getProvider();
+	}
+
+	return pRet;
+};
+=====================================================================
+Found a 44 line (246 tokens) duplication in the following files: 
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+Starting at line 637 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+    * p++ = 0x4e800420;
+
+    return (code + codeSnippetSize);
+
+}
+
+
+}
+
+
+#define MIN_LINE_SIZE 32
+
+void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const * bptr, unsigned char const * eptr)
+{
+  unsigned char * eaddr = (unsigned char *) eptr + MIN_LINE_SIZE + 1;
+  for (  unsigned char * addr  = (unsigned char *) bptr; addr < eaddr; addr += MIN_LINE_SIZE) {
+      __asm__ volatile ( "dcbf 0,%0;" "icbi 0,%0;" : : "r"(addr) : "memory");
+  }
+  __asm__ volatile ( "sync;" "isync;" : : : "memory");
+}
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
+=====================================================================
+Found a 46 line (245 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx
+
+			ooxml::OOXMLDocument::Pointer_t pDocument(ooxml::OOXMLDocumentFactory::createDocument(pDocStream));
+
+#if 0
+		TimeValue t1; osl_getSystemTime(&t1);
+#endif
+
+		doctok::Stream::Pointer_t pStream = doctok::createStreamHandler();
+		pDocument->resolve(*pStream);
+
+#if 0
+		TimeValue t2; osl_getSystemTime(&t2);
+		printf("time=%is\n", t2.Seconds-t1.Seconds);
+#endif
+
+        ::ucbhelper::ContentBroker::deinitialize();
+	}
+	else
+	{
+		fprintf(stderr, "can't initialize UCB");
+	}
+	return 0;
+}
+
+::rtl::OUString ScannerTestService_getImplementationName ()
+{
+	return rtl::OUString::createFromAscii ( ScannerTestService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName )
+{
+	return ServiceName.equals( rtl::OUString::createFromAscii( ScannerTestService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames(  ) throw (uno::RuntimeException)
+{
+	uno::Sequence < rtl::OUString > aRet(1);
+	rtl::OUString* pArray = aRet.getArray();
+	pArray[0] =  rtl::OUString::createFromAscii ( ScannerTestService::SERVICE_NAME );
+	return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL ScannerTestService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+	return (cppu::OWeakObject*) new ScannerTestService( xContext );
+}
+
+} } /* end namespace writerfilter::ooxml */
+=====================================================================
+Found a 33 line (245 tokens) duplication in the following files: 
+Starting at line 853 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 895 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readFormattedFieldModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+    
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":readonly") ) );
+    readBoolAttr( OUSTR("HideInactiveSelection"),
+                  OUSTR(XMLNS_DIALOGS_PREFIX ":hide-inactive-selection") );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":strict-format") ) );
+    readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
+                    OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":text") ) );
+=====================================================================
+Found a 9 line (245 tokens) duplication in the following files: 
+Starting at line 534 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Pchar */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
+=====================================================================
+Found a 71 line (245 tokens) duplication in the following files: 
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Const.h
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Const.h
+
+static const sal_Int32 uTestStr1Len  = 16;
+static const sal_Int32 uTestStr2Len  = 32;
+static const sal_Int32 uTestStr3Len  = 16;
+static const sal_Int32 uTestStr4Len  = 16;
+static const sal_Int32 uTestStr5Len  = 16;
+static const sal_Int32 uTestStr9Len  = 32;
+static const sal_Int32 uTestStr22Len = 32;
+ 
+
+
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+const sal_Unicode uTestStr31[]= {0x400,0x410,0x4DF};
+const sal_Unicode uTestStr32[]= {0x9F9F,0xA000,0x8F80,0x9AD9};
+
+
+
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+
+static const sal_Int32 uTestStr31Len  = 3;
+static const sal_Int32 uTestStr32Len  = 4;
+
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+
+static const sal_Int16 kRadixBinary     = 2;
+static const sal_Int16 kRadixOctol      = 8;
+static const sal_Int16 kRadixDecimal    = 10;
+static const sal_Int16 kRadixHexdecimal = 16;
+static const sal_Int16 kRadixBase36     = 36;
+
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+
+static const sal_Int8  kSInt8Max  = SCHAR_MAX;
+static const sal_Int16 kUInt8Max  = UCHAR_MAX;
+static const sal_Int16 kSInt16Max = SHRT_MAX;
+static const sal_Int32 kUInt16Max = USHRT_MAX;
+static const sal_Int32 kSInt32Max = INT_MAX;
+static const sal_Int64 kUInt32Max = UINT_MAX;
+#ifdef UNX
+static const sal_Int64 kSInt64Max = 9223372036854775807LL;
+#else
+static const sal_Int64 kSInt64Max = 9223372036854775807;
+#endif
+//------------------------------------------------------------------------
+
+static const sal_Int32 kInt32MaxNumsCount = 5;
+
+static const sal_Int32 kInt32MaxNums[kInt32MaxNumsCount] =
+                        {
+                            kSInt8Max,  kUInt8Max,
+                            kSInt16Max, kUInt16Max,
+                            kSInt32Max
+                        };
+
+static const sal_Int32 kInt64MaxNumsCount = 7;
+
+static const sal_Int64 kInt64MaxNums[kInt64MaxNumsCount] =
+                        {
+                            kSInt8Max,  kUInt8Max,
+                            kSInt16Max, kUInt16Max,
+                            kSInt32Max, kUInt32Max,
+                            kSInt64Max
+                        };
+
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+
+static const sal_Char *kSInt8MaxBinaryStr  = "1111111";
+=====================================================================
+Found a 8 line (245 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 33 line (245 tokens) duplication in the following files: 
+Starting at line 2730 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/X11_selection.cxx
+Starting at line 3874 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/X11_selection.cxx
+
+        if( it != m_aDropTargets.end() )
+        {
+            DropTargetEvent dte;
+            dte.Source = static_cast< OWeakObject* >( it->second.m_pTarget );
+            aGuard.clear();
+            it->second.m_pTarget->dragExit( dte );
+        }
+        else if( m_aDropProxy != None && m_nCurrentProtocolVersion >= 0 )
+        {
+            // send XdndLeave
+            XEvent aEvent;
+            aEvent.type = ClientMessage;
+            aEvent.xclient.display		= m_pDisplay;
+            aEvent.xclient.format		= 32;
+            aEvent.xclient.message_type	= m_nXdndLeave;
+            aEvent.xclient.window		= m_aDropWindow;
+            aEvent.xclient.data.l[0]	= m_aWindow;
+            memset( aEvent.xclient.data.l+1, 0, sizeof(long)*4);
+            m_aDropWindow = m_aDropProxy = None;
+            XSendEvent( m_pDisplay, m_aDropProxy, False, NoEventMask, &aEvent );
+        }
+        // notify the listener
+        DragSourceDropEvent dsde;
+        dsde.Source				= static_cast< OWeakObject* >(this);
+        dsde.DragSourceContext	= new DragSourceContext( m_aDropWindow, m_nDragTimestamp, *this );
+        dsde.DragSource			= static_cast< XDragSource* >(this);
+        dsde.DropAction			= DNDConstants::ACTION_NONE;
+        dsde.DropSuccess		= sal_False;
+        Reference< XDragSourceListener > xListener( m_xDragSourceListener );
+        m_xDragSourceListener.clear();
+        aGuard.clear();
+        xListener->dragDropEnd( dsde );
+    }
+=====================================================================
+Found a 52 line (245 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+
+					if (av[i][2] != '\0')
+					{
+						OString tmp("'-G', please check");
+						if (i <= ac - 1)
+						{
+							tmp += " your input '" + OString(av[i]) + "'";
+						}
+
+						throw IllegalArgument(tmp);
+					}
+					
+					m_options["-G"] = OString("");
+					break;
+				default:
+					throw IllegalArgument("the option is unknown" + OString(av[i]));
+					break;					
+			}
+		} else
+		{
+			if (av[i][0] == '@')
+			{
+				FILE* cmdFile = fopen(av[i]+1, "r");
+		  		if( cmdFile == NULL )
+      			{
+					fprintf(stderr, "%s", prepareHelp().getStr());
+					ret = sal_False;
+				} else
+				{
+					int rargc=0;
+					char* rargv[512];
+					char  buffer[512];
+
+					while ( fscanf(cmdFile, "%s", buffer) != EOF )
+					{
+						rargv[rargc]= strdup(buffer);
+						rargc++;
+					}
+					fclose(cmdFile);
+					
+					ret = initOptions(rargc, rargv, bCmdFile);
+					
+					for (long i=0; i < rargc; i++) 
+					{
+						free(rargv[i]);
+					}
+				}		
+			} else
+			{
+				m_inputFiles.push_back(av[i]);
+			}		
+		}
+	}
+=====================================================================
+Found a 72 line (244 tokens) duplication in the following files: 
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+					m_pImpl->m_xUrlTransformer->parseStrict( aTargetURL );
+                
+                Reference< XDispatch > xDispatch( pIter->second );
+                if ( xDispatch.is() )
+                {
+                    // We already have a dispatch object => we have to requery.
+                    // Release old dispatch object and remove it as listener
+                    try
+                    {
+                        xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+                    }
+                    catch ( Exception& )
+                    {
+                    }
+                }
+                
+                pIter->second.clear();
+                xDispatch.clear();
+                
+                // Query for dispatch object. Old dispatch will be released with this, too.
+                try
+                {
+                    xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+                }
+                catch ( Exception& )
+                {
+                }
+                pIter->second = xDispatch;
+                
+                Listener aListener( aTargetURL, xDispatch );
+                aDispatchVector.push_back( aListener );
+                ++pIter;
+            }
+        }
+    }
+    
+    // Call without locked mutex as we are called back from dispatch implementation
+    if ( xStatusListener.is() )
+    {
+        try
+        {
+            for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
+            {
+                Listener& rListener = aDispatchVector[i];
+                if ( rListener.xDispatch.is() )
+                    rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
+                else if ( rListener.aURL.Complete == m_aCommandURL )
+                {
+                    try
+                    {
+                        // Send status changed for the main URL, if we cannot get a valid dispatch object.
+                        // UI disables the button. Catch exception as we release our mutex, it is possible
+                        // that someone else already disposed this instance!
+                        FeatureStateEvent aFeatureStateEvent;
+                        aFeatureStateEvent.IsEnabled = sal_False;
+                        aFeatureStateEvent.FeatureURL = rListener.aURL;
+                        aFeatureStateEvent.State = Any();
+                        xStatusListener->statusChanged( aFeatureStateEvent );
+                    }
+                    catch ( Exception& )
+                    {
+                    }
+                }
+            }
+        }
+        catch ( Exception& )
+        {
+        }
+    }
+}
+
+void ToolboxController::unbindListener()
+=====================================================================
+Found a 30 line (244 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 517 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+    else if( rGradient.GetStyle() == GRADIENT_SQUARE )
+    {
+		if ( aSize.Width() > aSize.Height() )
+			aSize.Height() = aSize.Width();
+		else
+			aSize.Width() = aSize.Height();
+    }
+
+	// neue Mittelpunkte berechnen
+	long	nZWidth = aRect.GetWidth()	* (long) rGradient.GetOfsX() / 100;
+	long	nZHeight = aRect.GetHeight() * (long) rGradient.GetOfsY() / 100;
+	long	nBorderX = (long) rGradient.GetBorder() * aSize.Width()  / 100;
+	long	nBorderY = (long) rGradient.GetBorder() * aSize.Height() / 100;
+	Point	aCenter( aRect.Left() + nZWidth, aRect.Top() + nZHeight );
+
+	// Rand beruecksichtigen
+	aSize.Width() -= nBorderX;
+	aSize.Height() -= nBorderY;
+
+	// Ausgaberechteck neu setzen
+	aRect.Left() = aCenter.X() - ( aSize.Width() >> 1 );
+	aRect.Top() = aCenter.Y() - ( aSize.Height() >> 1 );
+    
+    aRect.SetSize( aSize );
+	long nMinRect = Min( aRect.GetWidth(), aRect.GetHeight() );
+
+	// Anzahl der Schritte berechnen, falls nichts uebergeben wurde
+    if( !nStepCount )
+	{
+		long nInc;
+=====================================================================
+Found a 41 line (244 tokens) duplication in the following files: 
+Starting at line 1043 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+Sequence< Sequence< PropertyValue > > SAL_CALL UIConfigurationManager::getUIElementsInfo( sal_Int16 ElementType )
+throw ( IllegalArgumentException, RuntimeException )
+{
+    if (( ElementType < 0 ) || ( ElementType >= ::com::sun::star::ui::UIElementType::COUNT ))
+        throw IllegalArgumentException();
+
+    ResetableGuard aGuard( m_aLock );
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    Sequence< Sequence< PropertyValue > > aElementInfoSeq;
+    UIElementInfoHashMap aUIElementInfoCollection;
+
+    if ( ElementType == ::com::sun::star::ui::UIElementType::UNKNOWN )
+    {
+        for ( sal_Int16 i = 0; i < ::com::sun::star::ui::UIElementType::COUNT; i++ )
+            impl_fillSequenceWithElementTypeInfo( aUIElementInfoCollection, sal_Int16( i ) );
+    }
+    else
+        impl_fillSequenceWithElementTypeInfo( aUIElementInfoCollection, ElementType );
+
+    Sequence< PropertyValue > aUIElementInfo( 2 );
+    aUIElementInfo[0].Name = m_aPropResourceURL;
+    aUIElementInfo[1].Name = m_aPropUIName;
+
+    aElementInfoSeq.realloc( aUIElementInfoCollection.size() );
+    UIElementInfoHashMap::const_iterator pIter = aUIElementInfoCollection.begin();
+
+    sal_Int32 n = 0;
+    while ( pIter != aUIElementInfoCollection.end() )
+    {
+        aUIElementInfo[0].Value <<= pIter->second.aResourceURL;
+        aUIElementInfo[1].Value <<= pIter->second.aUIName;
+        aElementInfoSeq[n++] = aUIElementInfo;
+        ++pIter;
+    }
+
+    return aElementInfoSeq;
+}
+
+Reference< XIndexContainer > SAL_CALL UIConfigurationManager::createSettings() throw (::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 52 line (244 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/networkdomain.cxx
+Starting at line 36 of /local/ooo-build/ooo-build/src/oog680-m3/sal/systools/win32/uwinapi/GetUserDomain_WINDOWS.cpp
+
+{
+	HKEY	hkeyLogon;
+	HKEY	hkeyWorkgroup;
+	DWORD	dwResult = 0;
+
+
+	if ( ERROR_SUCCESS  == RegOpenKeyEx( 
+		HKEY_LOCAL_MACHINE, 
+		TEXT("Network\\Logon"), 
+		0, KEY_READ, &hkeyLogon ) ) 
+	{
+		DWORD	dwLogon = 0;
+		DWORD	dwLogonSize = sizeof(dwLogon);
+		RegQueryValueEx( hkeyLogon, TEXT("LMLogon"), 0, NULL, (LPBYTE)&dwLogon, &dwLogonSize );
+		RegCloseKey( hkeyLogon );
+
+		if ( dwLogon )
+		{
+			HKEY	hkeyNetworkProvider;
+
+			if ( ERROR_SUCCESS  == RegOpenKeyEx( 
+				HKEY_LOCAL_MACHINE, 
+				TEXT("SYSTEM\\CurrentControlSet\\Services\\MSNP32\\NetworkProvider"), 
+				0, KEY_READ, &hkeyNetworkProvider ) )
+			{
+				DWORD	dwBufferSize = nSize;
+				LONG	lResult = RegQueryValueEx( hkeyNetworkProvider, TEXT("AuthenticatingAgent"), 0, NULL, (LPBYTE)lpBuffer, &dwBufferSize );
+
+				if ( ERROR_SUCCESS == lResult || ERROR_MORE_DATA == lResult )
+					dwResult = dwBufferSize / sizeof(TCHAR);
+
+				RegCloseKey( hkeyNetworkProvider );
+			}
+		}
+	}
+	else if ( ERROR_SUCCESS == RegOpenKeyEx(
+		HKEY_LOCAL_MACHINE,
+		TEXT("SYSTEM\\CurrentControlSet\\Services\\VxD\\VNETSUP"),
+		0, KEY_READ, &hkeyWorkgroup ) )
+	{
+		DWORD	dwBufferSize = nSize;
+		LONG	lResult = RegQueryValueEx( hkeyWorkgroup, TEXT("Workgroup"), 0, NULL, (LPBYTE)lpBuffer, &dwBufferSize );
+
+		if ( ERROR_SUCCESS == lResult || ERROR_MORE_DATA == lResult )
+			dwResult = dwBufferSize / sizeof(TCHAR);
+
+		RegCloseKey( hkeyWorkgroup );
+	}
+
+
+	return dwResult;
+}
+=====================================================================
+Found a 72 line (244 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.h
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.h
+
+	HWND					mOffWin;
+public:
+	CSOActiveX();
+	~CSOActiveX();
+
+DECLARE_REGISTRY_RESOURCEID(IDR_SOACTIVEX)
+
+DECLARE_PROTECT_FINAL_CONSTRUCT()
+
+BEGIN_COM_MAP(CSOActiveX)
+	COM_INTERFACE_ENTRY(ISOActiveX)
+	COM_INTERFACE_ENTRY(IDispatch)
+	COM_INTERFACE_ENTRY(IViewObjectEx)
+	COM_INTERFACE_ENTRY(IViewObject2)
+	COM_INTERFACE_ENTRY(IViewObject)
+	COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless)
+	COM_INTERFACE_ENTRY(IOleInPlaceObject)
+	COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless)
+	COM_INTERFACE_ENTRY(IOleInPlaceActiveObject)
+	COM_INTERFACE_ENTRY(IOleControl)
+	COM_INTERFACE_ENTRY(IOleObject)
+	COM_INTERFACE_ENTRY(IPersistStreamInit)
+	COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit)
+//	COM_INTERFACE_ENTRY(IConnectionPointContainer)
+	COM_INTERFACE_ENTRY(IProvideClassInfo)
+	COM_INTERFACE_ENTRY(IProvideClassInfo2)
+	COM_INTERFACE_ENTRY(IPersistPropertyBag)
+	COM_INTERFACE_ENTRY(IObjectSafety)
+END_COM_MAP()
+
+BEGIN_PROP_MAP(CSOActiveX)
+	PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
+	PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
+	// Example entries
+	// PROP_ENTRY("Property Description", dispid, clsid)
+	// PROP_PAGE(CLSID_StockColorPage)
+END_PROP_MAP()
+
+BEGIN_CONNECTION_POINT_MAP(CSOActiveX)
+END_CONNECTION_POINT_MAP()
+
+BEGIN_MSG_MAP(CSOActiveX)
+	CHAIN_MSG_MAP(CComControl<CSOActiveX>)
+	DEFAULT_REFLECTION_HANDLER()
+END_MSG_MAP()
+// Handler prototypes:
+//  LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+//  LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
+//  LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
+
+
+
+// IViewObjectEx
+	DECLARE_VIEW_STATUS(VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE)
+
+// ISOActiveX
+public:
+    
+	STDMETHOD(SetClientSite)( IOleClientSite* aClientSite );
+	STDMETHOD(Invoke)(  DISPID dispidMember, 
+						REFIID riid, 
+						LCID lcid, 
+                        WORD wFlags, 
+						DISPPARAMS* pDispParams,
+                        VARIANT* pvarResult, 
+						EXCEPINFO* pExcepInfo,
+                        UINT* puArgErr);
+	STDMETHOD(Load) ( LPPROPERTYBAG pPropBag, LPERRORLOG pErrorLog );
+	STDMETHOD(Load) ( LPSTREAM pStm );
+    STDMETHOD(InitNew) ();
+	HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);
+	HRESULT OnDraw(ATL_DRAWINFO& di) { return S_OK; }
+=====================================================================
+Found a 41 line (244 tokens) duplication in the following files: 
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FStatement.cxx
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MStatement.cxx
+
+	const OSQLParseNode* pOrderbyClause = m_pSQLIterator->getOrderTree();
+	if(pOrderbyClause)
+	{
+		OSQLParseNode * pOrderingSpecCommalist = pOrderbyClause->getChild(2);
+		OSL_ENSURE(SQL_ISRULE(pOrderingSpecCommalist,ordering_spec_commalist),"OResultSet: Fehler im Parse Tree");
+
+		for (sal_uInt32 m = 0; m < pOrderingSpecCommalist->count(); m++)
+		{
+			OSQLParseNode * pOrderingSpec = pOrderingSpecCommalist->getChild(m);
+			OSL_ENSURE(SQL_ISRULE(pOrderingSpec,ordering_spec),"OResultSet: Fehler im Parse Tree");
+			OSL_ENSURE(pOrderingSpec->count() == 2,"OResultSet: Fehler im Parse Tree");
+
+			OSQLParseNode * pColumnRef = pOrderingSpec->getChild(0);
+			if(!SQL_ISRULE(pColumnRef,column_ref))
+			{
+				throw SQLException();
+			}
+			OSQLParseNode * pAscendingDescending = pOrderingSpec->getChild(1);
+			setOrderbyColumn(pColumnRef,pAscendingDescending);
+		}
+	}
+}
+//------------------------------------------------------------------
+void OStatement_Base::setOrderbyColumn(	OSQLParseNode* pColumnRef,
+										OSQLParseNode* pAscendingDescending)
+{
+	::rtl::OUString aColumnName;
+	if (pColumnRef->count() == 1)
+		aColumnName = pColumnRef->getChild(0)->getTokenValue();
+	else if (pColumnRef->count() == 3)
+	{
+        pColumnRef->getChild(2)->parseNodeToStr( aColumnName, getOwnConnection(), NULL, sal_False, sal_False );
+	}
+	else
+	{
+		throw SQLException();
+	}
+
+	Reference<XColumnLocate> xColLocate(m_xColNames,UNO_QUERY);
+	if(!xColLocate.is())
+		return;
+=====================================================================
+Found a 46 line (244 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+			pUnoReturn = pRegisterReturn; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void **)pCppStack;
+			pCppStack += sizeof(void *);
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 39 line (243 tokens) duplication in the following files: 
+Starting at line 1017 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+=====================================================================
+Found a 56 line (243 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+
+sal_Bool IdlOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) 
+	throw( IllegalArgument )
+{
+	sal_Bool 	ret = sal_True;
+	sal_uInt16	i=0;
+
+	if (!bCmdFile)
+	{
+		bCmdFile = sal_True;
+		
+		m_program = av[0];
+
+		if (ac < 2)
+		{
+			fprintf(stderr, "%s", prepareHelp().getStr());
+			ret = sal_False;
+		}
+
+		i = 1;
+	} else
+	{
+		i = 0;
+	}
+
+	char	*s=NULL;
+	for (i; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+=====================================================================
+Found a 40 line (243 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 1;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 3) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block) + 2;
+    slots[-3] = 0; // RTTI
+    slots[-2] = 0; // null
+    slots[-1] = 0; // destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+=====================================================================
+Found a 58 line (242 tokens) duplication in the following files: 
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_scanline.h
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_scanline.h
+
+        renderer_scanline_aa_opaque(base_ren_type& ren, SpanGenerator& span_gen) :
+            m_ren(&ren),
+            m_span_gen(&span_gen)
+        {
+        }
+        
+        //--------------------------------------------------------------------
+        void prepare(unsigned max_span_len) 
+        { 
+            m_span_gen->prepare(max_span_len); 
+        }
+
+        //--------------------------------------------------------------------
+        template<class Scanline> void render(const Scanline& sl)
+        {
+            int y = sl.y();
+            m_ren->first_clip_box();
+            do
+            {
+                int xmin = m_ren->xmin();
+                int xmax = m_ren->xmax();
+
+                if(y >= m_ren->ymin() && y <= m_ren->ymax())
+                {
+                    unsigned num_spans = sl.num_spans();
+                    typename Scanline::const_iterator span = sl.begin();
+                    do
+                    {
+                        int x = span->x;
+                        int len = span->len;
+                        bool solid = false;
+                        const typename Scanline::cover_type* covers = span->covers;
+
+                        if(len < 0)
+                        {
+                            solid = true;
+                            len = -len;
+                        }
+
+                        if(x < xmin)
+                        {
+                            len -= xmin - x;
+                            if(!solid) 
+                            {
+                                covers += xmin - x;
+                            }
+                            x = xmin;
+                        }
+
+                        if(len > 0)
+                        {
+                            if(x + len > xmax)
+                            {
+                                len = xmax - x + 1;
+                            }
+                            if(len > 0)
+                            {
+                                m_ren->blend_opaque_color_hspan_no_clip(
+=====================================================================
+Found a 45 line (242 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FResultSetMetaData.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MResultSetMetaData.cxx
+
+    return sColumnName;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL OResultSetMetaData::getTableName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
+{
+	return m_aTableName;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL OResultSetMetaData::getCatalogName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
+{
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL OResultSetMetaData::getColumnTypeName( sal_Int32 column ) throw(SQLException, RuntimeException)
+{
+	checkColumnIndex(column);
+	return getString((*m_xColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME)));
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL OResultSetMetaData::getColumnLabel( sal_Int32 column ) throw(SQLException, RuntimeException)
+{
+	return getColumnName(column);
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL OResultSetMetaData::getColumnServiceName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
+{
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+
+sal_Bool SAL_CALL OResultSetMetaData::isCurrency( sal_Int32 column ) throw(SQLException, RuntimeException)
+{
+	checkColumnIndex(column);
+	return getBOOL((*m_xColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY)));
+}
+// -------------------------------------------------------------------------
+
+sal_Bool SAL_CALL OResultSetMetaData::isAutoIncrement( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL OResultSetMetaData::isSigned( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+=====================================================================
+Found a 56 line (242 tokens) duplication in the following files: 
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+sal_Bool RdbOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) 
+	throw( IllegalArgument )
+{
+	sal_Bool 	ret = sal_True;
+	sal_uInt16	i=0;
+
+	if (!bCmdFile)
+	{
+		bCmdFile = sal_True;
+		
+		m_program = av[0];
+
+		if (ac < 2)
+		{
+			fprintf(stderr, "%s", prepareHelp().getStr());
+			ret = sal_False;
+		}
+
+		i = 1;
+	} else
+	{
+		i = 0;
+	}
+
+	char	*s=NULL;
+	for (; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'X':
+=====================================================================
+Found a 44 line (242 tokens) duplication in the following files: 
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/XMLRangeHelper.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/XMLRangeHelper.cxx
+
+    /*::chart::*/XMLRangeHelper::Cell & rOutCell )
+{
+    // expect "\$?[a-zA-Z]+\$?[1-9][0-9]*"
+    static const sal_Unicode aDollar( '$' );
+    static const sal_Unicode aLetterA( 'A' );
+
+    ::rtl::OUString aCellStr = rXMLString.copy( nStartPos, nEndPos - nStartPos + 1 ).toAsciiUpperCase();
+    const sal_Unicode* pStrArray = aCellStr.getStr();
+    sal_Int32 nLength = aCellStr.getLength();
+    sal_Int32 i = nLength - 1, nColumn = 0;
+
+    // parse number for row
+    while( CharClass::isAsciiDigit( pStrArray[ i ] ) && i >= 0 )
+        i--;
+    rOutCell.nRow = (aCellStr.copy( i + 1 )).toInt32() - 1;
+    // a dollar in XML means absolute (whereas in UI it means relative)
+    if( pStrArray[ i ] == aDollar )
+    {
+        i--;
+        rOutCell.bRelativeRow = false;
+    }
+    else
+        rOutCell.bRelativeRow = true;
+
+    // parse rest for column
+    sal_Int32 nPower = 1;
+    while( CharClass::isAsciiAlpha( pStrArray[ i ] ))
+    {
+        nColumn += (pStrArray[ i ] - aLetterA + 1) * nPower;
+        i--;
+        nPower *= 26;
+    }
+    rOutCell.nColumn = nColumn - 1;
+
+    rOutCell.bRelativeColumn = true;
+    if( i >= 0 &&
+        pStrArray[ i ] == aDollar )
+        rOutCell.bRelativeColumn = false;
+    rOutCell.bIsEmpty = false;
+}
+
+bool lcl_getCellAddressFromXMLString(
+    const ::rtl::OUString& rXMLString,
+    sal_Int32 nStartPos, sal_Int32 nEndPos,
+=====================================================================
+Found a 72 line (241 tokens) duplication in the following files: 
+Starting at line 1225 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/wmadaptor.cxx
+Starting at line 1315 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/wmadaptor.cxx
+
+                         );
+        if( pFrame->mbMaximizedHorz
+           && pFrame->mbMaximizedVert
+           && ! ( pFrame->nStyle_ & SAL_FRAME_STYLE_SIZEABLE ) )
+        {
+            /*
+             *  for maximizing use NorthWestGravity (including decoration)
+             */
+            XSizeHints	hints;
+            long		supplied;
+            bool bHint = false;
+            if( XGetWMNormalHints( m_pDisplay,
+                                   pFrame->GetShellWindow(),
+                                   &hints,
+                                   &supplied ) )
+            {
+                bHint = true;
+                hints.flags |= PWinGravity;
+                hints.win_gravity = NorthWestGravity;
+                XSetWMNormalHints( m_pDisplay,
+                                   pFrame->GetShellWindow(),
+                                   &hints );
+                XSync( m_pDisplay, False );
+            }
+
+            // SetPosSize necessary to set width/height, min/max w/h
+            sal_Int32 nCurrent = 0;
+            /*
+             *  get current desktop here if work areas have different size
+             *  (does this happen on any platform ?)
+             */
+            if( ! m_bEqualWorkAreas )
+            {
+                nCurrent = getCurrentWorkArea();
+                if( nCurrent < 0 )
+                    nCurrent = 0;
+            }
+            Rectangle aPosSize = m_aWMWorkAreas[nCurrent];
+            const SalFrameGeometry& rGeom( pFrame->GetUnmirroredGeometry() );
+            aPosSize = Rectangle( Point( aPosSize.Left() + rGeom.nLeftDecoration,
+                                         aPosSize.Top()  + rGeom.nTopDecoration ),
+                                  Size( aPosSize.GetWidth()
+                                        - rGeom.nLeftDecoration
+                                        - rGeom.nRightDecoration,
+                                        aPosSize.GetHeight()
+                                        - rGeom.nTopDecoration
+                                        - rGeom.nBottomDecoration )
+                                  );
+            pFrame->SetPosSize( aPosSize );
+
+            /*
+             *  reset gravity hint to static gravity
+             *  (this should not move window according to ICCCM)
+             */
+            if( bHint && pFrame->nShowState_ != SHOWSTATE_UNKNOWN )
+            {
+                hints.win_gravity = StaticGravity;
+                XSetWMNormalHints( m_pDisplay,
+                                   pFrame->GetShellWindow(),
+                                   &hints );
+            }
+        }
+    }
+}
+
+/*
+ *  WMAdaptor::setFrameDecoration
+ *  sets _MOTIF_WM_HINTS
+ *		 WM_TRANSIENT_FOR
+ */
+
+void WMAdaptor::setFrameTypeAndDecoration( X11SalFrame* pFrame, WMWindowType eType, int nDecorationFlags, X11SalFrame* pReferenceFrame ) const
+=====================================================================
+Found a 43 line (241 tokens) duplication in the following files: 
+Starting at line 1361 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 2013 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+            }
+        }
+    }
+
+    // If there are any hidden ranges in the current text node, we have
+    // to unhide the redlining ranges:
+    const IDocumentRedlineAccess& rIDRA = *rNode.getIDocumentRedlineAccess();
+    if ( rHiddenMulti.GetRangeCount() && IDocumentRedlineAccess::IsShowChanges( rIDRA.GetRedlineMode() ) )
+    {
+        USHORT nAct = rIDRA.GetRedlinePos( rNode, USHRT_MAX );
+
+        for ( ; nAct < rIDRA.GetRedlineTbl().Count(); nAct++ )
+        {
+            const SwRedline* pRed = rIDRA.GetRedlineTbl()[ nAct ];
+
+            if ( pRed->Start()->nNode > rNode.GetIndex() )
+                break;
+
+            xub_StrLen nRedlStart;
+            xub_StrLen nRedlnEnd;
+            pRed->CalcStartEnd( rNode.GetIndex(), nRedlStart, nRedlnEnd );
+            if ( nRedlnEnd > nRedlStart )
+            {
+                Range aTmp( nRedlStart, nRedlnEnd - 1 );
+                rHiddenMulti.Select( aTmp, false );
+            }
+        }
+    }
+
+    //
+    // We calculated a lot of stuff. Finally we can update the flags at the text node.
+    //
+    const bool bNewContainsHiddenChars = rHiddenMulti.GetRangeCount() > 0;
+    bool bNewHiddenCharsHidePara = false;
+    if ( bNewContainsHiddenChars )
+    {
+        const Range& rRange = rHiddenMulti.GetRange( 0 );
+        const xub_StrLen nHiddenStart = (xub_StrLen)rRange.Min();
+        const xub_StrLen nHiddenEnd = (xub_StrLen)rRange.Max() + 1;
+        bNewHiddenCharsHidePara = ( nHiddenStart == 0 && nHiddenEnd >= rNode.GetTxt().Len() );
+    }
+    rNode.SetHiddenCharAttribute( bNewHiddenCharsHidePara, bNewContainsHiddenChars );
+}
+=====================================================================
+Found a 40 line (241 tokens) duplication in the following files: 
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/camera3d.cxx
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/camera3d.cxx
+
+	basegfx::B3DVector aDiff(aPosition - aLookAt);
+	const double fV(sqrt(aDiff.getX() * aDiff.getX() + aDiff.getZ() * aDiff.getZ()));
+
+	if ( fV != 0.0 )	
+	{
+		basegfx::B3DHomMatrix aTemp;
+		const double fSin(aDiff.getZ() / fV);
+		const double fCos(aDiff.getX() / fV);
+
+		aTemp.set(0, 0, fCos);
+		aTemp.set(2, 2, fCos);
+		aTemp.set(0, 2, fSin);
+		aTemp.set(2, 0, -fSin);
+
+		aTf *= aTemp;
+	}
+
+	{
+		aTf.rotate(0.0, 0.0, fVAngle);
+	}
+
+	if ( fV != 0.0 )	
+	{
+		basegfx::B3DHomMatrix aTemp;
+		const double fSin(-aDiff.getZ() / fV);
+		const double fCos(aDiff.getX() / fV);
+
+		aTemp.set(0, 0, fCos);
+		aTemp.set(2, 2, fCos);
+		aTemp.set(0, 2, fSin);
+		aTemp.set(2, 0, -fSin);
+
+		aTf *= aTemp;
+	}
+
+	{
+		aTf.rotate(0.0, fHAngle, 0.0);
+	}
+
+	aDiff *= aTf;
+=====================================================================
+Found a 30 line (241 tokens) duplication in the following files: 
+Starting at line 1063 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 965 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptUturnArrowVert[] =
+{
+	{ 0, 21600 }, { 0, 8550 },											// pp
+	{ 0, 3540 }, { 4370, 0 }, { 9270, 0 },								// ccp
+	{ 13890, 0 }, { 18570, 3230 }, { 18600, 8300 },						// ccp
+	{ 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp
+	{ 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 },					// ccp
+	{ 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 },						// ccp
+	{ 6110, 21600 }
+};
+static const sal_uInt16 mso_sptUturnArrowSegm[] =
+{
+	0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] = 
+{
+	{ { 0, 8280 }, { 6110, 21600 } }
+};
+static const mso_CustomShape msoUturnArrow =
+{
+	(SvxMSDffVertPair*)mso_sptUturnArrowVert, sizeof( mso_sptUturnArrowVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptUturnArrowSegm, sizeof( mso_sptUturnArrowSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptUturnArrowTextRect, sizeof( mso_sptUturnArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 43 line (241 tokens) duplication in the following files: 
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+IMPL_LINK( SvInsertAppletDialog, BrowseHdl, PushButton *, EMPTYARG )
+{
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add filter
+            try
+            {
+                xFilterMgr->appendFilter(
+                     OUString( RTL_CONSTASCII_USTRINGPARAM( "Applet" ) ),
+                     OUString( RTL_CONSTASCII_USTRINGPARAM( "*.class" ) )
+                     );
+            }
+            catch( IllegalArgumentException& )
+            {
+                DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" );
+            }
+
+            if( xFilePicker->execute() == ExecutableDialogResults::OK )
+            {
+                Sequence< OUString > aPathSeq( xFilePicker->getFiles() );
+
+				INetURLObject aObj( aPathSeq[0] );
+                aEdClassfile.SetText( aObj.getName() );
+                aObj.removeSegment();
+				aEdClasslocation.SetText( aObj.PathToFileName() );
+            }
+        }
+    }
+
+	return 0;
+}
+=====================================================================
+Found a 120 line (241 tokens) duplication in the following files: 
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/lnkbase2.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/lnkbase2.cxx
+
+	delete pImplData;
+}
+
+/************************************************************************
+|*	  SvBaseLink::SetObjType()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+void SvBaseLink::SetObjType( USHORT nObjTypeP )
+{
+	DBG_ASSERT( nObjType != OBJECT_CLIENT_DDE, "type already set" )
+	DBG_ASSERT( !xObj.Is(), "object exist" )
+
+	nObjType = nObjTypeP;
+}
+
+/************************************************************************
+|*	  SvBaseLink::SetName()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+void SvBaseLink::SetName( const String & rNm )
+{
+	aLinkName = rNm;
+}
+
+/************************************************************************
+|*	  SvBaseLink::GetName()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+String SvBaseLink::GetName() const
+{
+	return aLinkName;
+}
+
+/************************************************************************
+|*	  SvBaseLink::SetObj()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+void SvBaseLink::SetObj( SvLinkSource * pObj )
+{
+	DBG_ASSERT( (nObjType & OBJECT_CLIENT_SO &&
+				pImplData->ClientType.bIntrnlLnk) ||
+				nObjType == OBJECT_CLIENT_GRF,
+				"no intern link" )
+	xObj = pObj;
+}
+
+/************************************************************************
+|*	  SvBaseLink::SetLinkSourceName()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+void SvBaseLink::SetLinkSourceName( const String & rLnkNm )
+{
+	if( aLinkName == rLnkNm )
+		return;
+
+	AddNextRef(); // sollte ueberfluessig sein
+	// Alte Verbindung weg
+	Disconnect();
+
+	aLinkName = rLnkNm;
+
+	// Neu verbinden
+	_GetRealObject();
+	ReleaseRef(); // sollte ueberfluessig sein
+}
+
+/************************************************************************
+|*	  SvBaseLink::GetLinkSourceName()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+String  SvBaseLink::GetLinkSourceName() const
+{
+	return aLinkName;
+}
+
+
+/************************************************************************
+|*	  SvBaseLink::SetUpdateMode()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+void SvBaseLink::SetUpdateMode( USHORT nMode )
+{
+	if( ( OBJECT_CLIENT_SO & nObjType ) &&
+		pImplData->ClientType.nUpdateMode != nMode )
+	{
+		AddNextRef();
+		Disconnect();
+
+		pImplData->ClientType.nUpdateMode = nMode;
+		_GetRealObject();
+		ReleaseRef();
+	}
+}
+
+
+BOOL SvBaseLink::Update()
+{
+	if( OBJECT_CLIENT_SO & nObjType )
+	{
+		AddNextRef();
+		Disconnect();
+
+		_GetRealObject();
+		ReleaseRef();
+		if( xObj.Is() )
+		{
+=====================================================================
+Found a 9 line (241 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1149 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cd0 - 0cdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ce0 - 0cef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cf0 - 0cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d00 - 0d0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d10 - 0d1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d20 - 0d2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d30 - 0d3f
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+=====================================================================
+Found a 9 line (241 tokens) duplication in the following files: 
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 552 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 2270 - 227f
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 2280 - 228f
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 2290 - 229f
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 22a0 - 22af
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 22b0 - 22bf
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 22c0 - 22cf
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 22d0 - 22df
+    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,// 22e0 - 22ef
+    24,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 22f0 - 22ff
+=====================================================================
+Found a 43 line (241 tokens) duplication in the following files: 
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/miscobj.cxx
+Starting at line 1372 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olecomponent.cxx
+
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+    uno::Reference< uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >( this ) );
+    lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
+
+	if ( m_pInterfaceContainer )
+	{
+    	::cppu::OInterfaceContainerHelper* pContainer =
+			m_pInterfaceContainer->getContainer( ::getCppuType( ( const uno::Reference< util::XCloseListener >* ) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pIterator( *pContainer );
+        	while ( pIterator.hasMoreElements() )
+        	{
+            	try
+            	{
+                	( (util::XCloseListener* )pIterator.next() )->queryClosing( aSource, bDeliverOwnership );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pIterator.remove();
+            	}
+        	}
+		}
+
+    	pContainer = m_pInterfaceContainer->getContainer(
+									::getCppuType( ( const uno::Reference< util::XCloseListener >* ) NULL ) );
+    	if ( pContainer != NULL )
+		{
+        	::cppu::OInterfaceIteratorHelper pCloseIterator( *pContainer );
+        	while ( pCloseIterator.hasMoreElements() )
+        	{
+            	try
+            	{
+                	( (util::XCloseListener* )pCloseIterator.next() )->notifyClosing( aSource );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	pCloseIterator.remove();
+            	}
+        	}
+		}
+=====================================================================
+Found a 60 line (241 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/purpenvhelper/TestEnv.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/bootstrap/TestEnv.cxx
+
+TestEnv::TestEnv()
+	: m_inCount(0)
+{
+	LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::TestEnv(...)", this));
+}
+
+TestEnv::~TestEnv(void)
+{
+	LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::~TestEnv(void)", this));
+}
+
+
+void TestEnv::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam)
+{
+	++ m_inCount;
+	pCallee(pParam);
+	-- m_inCount;
+}
+
+void TestEnv::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam)
+{
+	-- m_inCount;
+	pCallee(pParam);
+	++ m_inCount;
+}
+
+void TestEnv::v_enter(void)
+{
+	++ m_inCount;
+}
+	
+void TestEnv::v_leave(void)
+{
+	-- m_inCount;
+}
+
+int  TestEnv::v_isValid(rtl::OUString * pReason)
+{
+	int result = m_inCount & 1;
+
+	if (result)
+		*pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OK"));
+
+	else
+		*pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("not entered/invoked"));
+
+	return result;
+}
+
+extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * pEnv) SAL_THROW_EXTERN_C()
+{
+    cppu::helper::purpenv::Environment_initWithEnterable(pEnv, new TestEnv());
+}
+
+extern "C" void uno_ext_getMapping(uno_Mapping     ** ppMapping,
+								   uno_Environment  * pFrom,
+								   uno_Environment  * pTo )
+{
+	cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo);
+}
+=====================================================================
+Found a 54 line (241 tokens) duplication in the following files: 
+Starting at line 2890 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 3362 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+sal_Bool ExceptionType::dumpSuperMember(FileStream& o, const OString& superType, sal_Bool bWithType)
+{
+	sal_Bool hasMember = sal_False;
+
+	if (superType.getLength() > 0)
+	{
+		typereg::Reader aSuperReader(m_typeMgr.getTypeReader(superType));
+		
+		if (aSuperReader.isValid())
+		{
+            rtl::OString superSuper;
+            if (aSuperReader.getSuperTypeCount() >= 1) {
+                superSuper = rtl::OUStringToOString(
+                    aSuperReader.getSuperTypeName(0), RTL_TEXTENCODING_UTF8);
+            }
+			hasMember = dumpSuperMember(o, superSuper, bWithType);
+
+			sal_uInt16 		fieldCount = aSuperReader.getFieldCount();
+			RTFieldAccess 	access = RT_ACCESS_INVALID;
+			OString 		fieldName;
+			OString 		fieldType;	
+			for (sal_uInt16 i=0; i < fieldCount; i++)
+			{
+				access = aSuperReader.getFieldFlags(i);
+				
+				if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
+					continue;
+
+				fieldName = rtl::OUStringToOString(
+                    aSuperReader.getFieldName(i), RTL_TEXTENCODING_UTF8);
+				fieldType = rtl::OUStringToOString(
+                    aSuperReader.getFieldTypeName(i), RTL_TEXTENCODING_UTF8);
+			
+				if (hasMember) 
+				{
+					o << ", ";
+				} else
+				{
+					hasMember = (fieldCount > 0);
+				}
+
+				if (bWithType)
+				{
+					dumpType(o, fieldType, sal_True, sal_True);	
+					o << " ";
+				}					
+//				o << "__" << fieldName;
+				o << fieldName << "_";
+			}
+		}
+	}
+	
+	return hasMember;
+}	
+=====================================================================
+Found a 55 line (241 tokens) duplication in the following files: 
+Starting at line 1980 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2194 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+}
+
+sal_uInt32 InterfaceType::getMemberCount()
+{
+	sal_uInt32 count = m_reader.getMethodCount();
+
+	if (count)
+		m_hasMethods = sal_True;
+
+	sal_uInt32 fieldCount = m_reader.getFieldCount();
+	RTFieldAccess access = RT_ACCESS_INVALID;
+	for (sal_uInt16 i=0; i < fieldCount; i++)
+	{
+		access = m_reader.getFieldAccess(i);
+
+		if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+		{
+			m_hasAttributes = sal_True;
+			count++;
+		}
+	}
+	return count;
+}
+
+sal_uInt32 InterfaceType::checkInheritedMemberCount(const TypeReader* pReader)
+{
+	sal_uInt32 cout = 0;
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if (aSuperReader.isValid())
+		{
+			count = checkInheritedMemberCount(&aSuperReader);
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+=====================================================================
+Found a 37 line (240 tokens) duplication in the following files: 
+Starting at line 1095 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+Starting at line 1240 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+
+						xCont->insertByName(pSubNodeNames[j], aVal);
+					}
+				}
+				try	{ xBatch->commitChanges(); }
+                CATCH_INFO("Exception from commitChanges(): ")
+
+				const PropertyValue* pProperties = rValues.getConstArray();
+
+				Sequence< OUString > aSetNames(rValues.getLength());
+				OUString* pSetNames = aSetNames.getArray();
+
+				Sequence< Any> aSetValues(rValues.getLength());
+				Any* pSetValues = aSetValues.getArray();
+
+                sal_Bool bEmptyNode = rNode.getLength() == 0;
+                for(sal_Int32 k = 0; k < rValues.getLength(); k++)
+				{
+                    pSetNames[k] =  pProperties[k].Name.copy( bEmptyNode ? 1 : 0);
+					pSetValues[k] = pProperties[k].Value;
+				}
+				bRet = PutProperties(aSetNames, aSetValues);
+			}
+			else
+			{
+				const PropertyValue* pValues = rValues.getConstArray();
+
+				//if no factory is available then the node contains basic data elements
+				for(int nValue = 0; nValue < rValues.getLength();nValue++)
+				{
+					try
+					{
+						OUString sSubNode = lcl_extractSetPropertyName( pValues[nValue].Name, rNode );
+
+                        if(xCont->hasByName(sSubNode))
+							xCont->replaceByName(sSubNode, pValues[nValue].Value);
+						else
+							xCont->insertByName(sSubNode, pValues[nValue].Value);
+=====================================================================
+Found a 68 line (240 tokens) duplication in the following files: 
+Starting at line 556 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+                    ucb::CommandInfo >( aRootFolderCommandInfoTable, 7 );
+        }
+        else
+        {
+            //=================================================================
+            //
+            // Folder: Supported commands
+            //
+            //=================================================================
+
+            static const ucb::CommandInfo aFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                    -1,
+                    getCppuBooleanType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::TransferInfo * >( 0 ) )
+                ),
+=====================================================================
+Found a 34 line (240 tokens) duplication in the following files: 
+Starting at line 1658 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewse.cxx
+Starting at line 1697 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewse.cxx
+
+                                mpDrawView->GetSdrPageView()->GetPage(), GetDoc());
+
+		uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
+
+		if( !xControlModel.is())
+			return;
+
+		uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+
+		uno::Any aTmp;
+
+		aTmp <<= rtl::OUString(rText);
+		xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" )), aTmp );
+
+        aTmp <<= rtl::OUString( ::URIHelper::SmartRel2Abs( INetURLObject( GetDocSh()->GetMedium()->GetBaseURL() ), rURL, URIHelper::GetMaybeFileHdl(), true, false,
+															INetURLObject::WAS_ENCODED,
+															INetURLObject::DECODE_UNAMBIGUOUS ) );
+		xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" )), aTmp );
+
+		if( rTarget.Len() )
+		{
+			aTmp <<= rtl::OUString(rTarget);
+			xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetFrame" )), aTmp );
+		}
+
+		form::FormButtonType eButtonType = form::FormButtonType_URL;
+		aTmp <<= eButtonType;
+		xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
+		// #105638# OJ
+		if ( Sound::IsSoundFile( rURL ) )
+		{
+			aTmp <<= sal_True;
+			xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DispatchURLInternal" )), aTmp );
+		}
+=====================================================================
+Found a 49 line (240 tokens) duplication in the following files: 
+Starting at line 535 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/printergfx/glyphset.cxx
+Starting at line 668 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/printergfx/glyphset.cxx
+
+        GetCharID (pStr[nChar], pGlyphID + nChar, pGlyphSetID + nChar);
+        aGlyphSet.insert (pGlyphSetID[nChar]); 
+    }
+
+    // loop over all glyph sets to detect substrings that can be xshown together
+    // without changing the postscript font
+    sal_Int32 *pDeltaSubset = (sal_Int32*)alloca (nLen * sizeof(sal_Int32));
+    sal_uChar *pGlyphSubset = (sal_uChar*)alloca (nLen * sizeof(sal_uChar));
+   
+    std::set< sal_Int32 >::iterator aSet;
+    for (aSet = aGlyphSet.begin(); aSet != aGlyphSet.end(); ++aSet)
+    {
+        Point     aPoint  = rPoint;
+        sal_Int32 nOffset = 0;
+        sal_Int32 nGlyphs = 0;
+        sal_Int32 nChar;
+
+        // get offset to first glyph 
+        for (nChar = 0; (nChar < nLen) && (pGlyphSetID[nChar] != *aSet); nChar++)
+        {
+            nOffset = pDeltaArray [nChar];
+        }
+        
+        // loop over all chars to extract those that share the current glyph set    
+        for (nChar = 0; nChar < nLen; nChar++)
+        {
+            if (pGlyphSetID[nChar] == *aSet)
+            {
+                pGlyphSubset [nGlyphs] = pGlyphID [nChar];
+                // the offset to the next glyph is determined by the glyph in
+                // front of the next glyph with the same glyphset id
+                // most often, this will be the current glyph
+                while ((nChar + 1) < nLen)
+                {
+                    if (pGlyphSetID[nChar + 1] == *aSet)
+                        break;
+                    else
+                        nChar += 1;
+                }
+                pDeltaSubset [nGlyphs] = pDeltaArray[nChar] - nOffset;
+
+                nGlyphs += 1;
+            }
+        }
+
+        // show the text using the PrinterGfx text api
+        aPoint.Move (nOffset, 0);
+
+        OString aGlyphSetName(GetCharSetName(*aSet));
+=====================================================================
+Found a 53 line (240 tokens) duplication in the following files: 
+Starting at line 478 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/popupmenucontrollerfactory.cxx
+Starting at line 478 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/toolbarcontrollerfactory.cxx
+
+Reference< XInterface > SAL_CALL ToolbarControllerFactory::createInstanceWithArgumentsAndContext( 
+    const ::rtl::OUString&                  ServiceSpecifier, 
+    const Sequence< Any >&                  Arguments, 
+    const Reference< XComponentContext >& )
+throw (Exception, RuntimeException)
+{
+    const rtl::OUString aPropModuleName( RTL_CONSTASCII_USTRINGPARAM( "ModuleName" ));
+    
+    rtl::OUString   aPropName;
+    PropertyValue   aPropValue;
+    
+    // Retrieve the optional module name form the Arguments sequence. It is used as a part of
+    // the hash map key to support different controller implementation for the same URL but different
+    // module!!
+    for ( int i = 0; i < Arguments.getLength(); i++ )
+    {
+        if (( Arguments[i] >>= aPropValue ) && ( aPropValue.Name.equals( aPropModuleName )))
+        {
+            aPropValue.Value >>= aPropName;
+            break;
+        }
+    }
+    
+    // Append the command URL to the Arguments sequence so that one controller can be
+    // used for more than one command URL.
+    Sequence< Any > aNewArgs( Arguments );
+    
+    sal_Int32 nAppendIndex = aNewArgs.getLength();
+    aNewArgs.realloc( aNewArgs.getLength()+1 );
+    aPropValue.Name     = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ));
+    aPropValue.Value  <<= ServiceSpecifier;
+    aNewArgs[nAppendIndex] <<= aPropValue;
+
+    // SAFE
+    {
+        ResetableGuard aLock( m_aLock );
+        
+        if ( !m_bConfigRead )
+        {
+            m_bConfigRead = sal_True;
+            m_pConfigAccess->readConfigurationData();
+        }
+
+        rtl::OUString aServiceName = m_pConfigAccess->getServiceFromCommandModule( ServiceSpecifier, aPropName );
+        if ( aServiceName.getLength() > 0 )
+            return m_xServiceManager->createInstanceWithArguments( aServiceName, aNewArgs );
+        else
+            return Reference< XInterface >();
+    }
+    // SAFE
+}
+
+Sequence< ::rtl::OUString > SAL_CALL ToolbarControllerFactory::getAvailableServiceNames()
+=====================================================================
+Found a 44 line (240 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< float >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
+=====================================================================
+Found a 42 line (240 tokens) duplication in the following files: 
+Starting at line 539 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/java_uno/acquire/testacquire.cxx
+Starting at line 908 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/registry_tdprovider/testregistrytdprovider.cxx
+
+                Service::getSupportedServiceNames());
+        }
+        if (f.is()) {
+            f->acquire();
+            p = f.get();
+        }
+    }
+    return p;
+}
+
+namespace {
+
+bool writeInfo(void * registryKey, rtl::OUString const & implementationName,
+               css::uno::Sequence< rtl::OUString > const & serviceNames) {
+    rtl::OUString keyName(rtl::OUString::createFromAscii("/"));
+    keyName += implementationName;
+    keyName += rtl::OUString::createFromAscii("/UNO/SERVICES");
+    css::uno::Reference< css::registry::XRegistryKey > key;
+    try {
+        key = static_cast< css::registry::XRegistryKey * >(registryKey)->
+            createKey(keyName);
+    } catch (css::registry::InvalidRegistryException &) {}
+    if (!key.is()) {
+        return false;
+    }
+    bool success = true;
+    for (sal_Int32 i = 0; i < serviceNames.getLength(); ++i) {
+        try {
+            key->createKey(serviceNames[i]);
+        } catch (css::registry::InvalidRegistryException &) {
+            success = false;
+            break;
+        }
+    }
+    return success;
+}
+
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(void *, void * registryKey) {
+    return registryKey
+        && writeInfo(registryKey, Service::getImplementationName(),
+=====================================================================
+Found a 61 line (239 tokens) duplication in the following files: 
+Starting at line 1393 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1412 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+            }
+		}
+		else
+		{
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue
+                        = xAdditionalPropSet->getPropertyValue( rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( bExchange )
+	{
+        uno::Reference< ucb::XContentIdentifier > xOldId = m_xIdentifier;
+=====================================================================
+Found a 10 line (239 tokens) duplication in the following files: 
+Starting at line 1315 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ea0 - 2eaf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f00 - 2f0f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f10 - 2f1f
+=====================================================================
+Found a 8 line (239 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_th.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_th.cxx
+
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // BD   9
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // TONE 10
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AD1  11
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AD2  12
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AD3  13
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_COM, ST_COM, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AV1  14
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_COM, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AV2  15
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_COM, ST_NXT, ST_COM, ST_NXT, ST_NXT, ST_NXT, ST_NXT   } // AV3  16
+=====================================================================
+Found a 43 line (239 tokens) duplication in the following files: 
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/statusbardocumenthandler.cxx
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/statusbardocumenthandler.cxx
+
+    const Reference< XDocumentHandler >& rWriteDocumentHandler ) :
+    ThreadHelpBase( &Application::GetSolarMutex() ),
+	m_aStatusBarItems( aStatusBarItems ),
+	m_xWriteDocumentHandler( rWriteDocumentHandler )
+{
+	m_xEmptyList		= Reference< XAttributeList >( (XAttributeList *)new AttributeListImpl, UNO_QUERY );
+	m_aAttributeType	= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
+	m_aXMLXlinkNS		= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
+	m_aXMLStatusBarNS	= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_STATUSBAR_PREFIX ));
+}
+
+OWriteStatusBarDocumentHandler::~OWriteStatusBarDocumentHandler()
+{
+}
+
+void OWriteStatusBarDocumentHandler::WriteStatusBarDocument() throw 
+( SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	m_xWriteDocumentHandler->startDocument();
+
+	// write DOCTYPE line!
+	Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
+	if ( xExtendedDocHandler.is() )
+	{
+		xExtendedDocHandler->unknown( OUString( RTL_CONSTASCII_USTRINGPARAM( STATUSBAR_DOCTYPE )) );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	}
+
+	AttributeListImpl* pList = new AttributeListImpl;
+	Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_STATUSBAR )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_STATUSBAR )) );
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_XLINK )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK )) );
+
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_STATUSBAR )), pList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+=====================================================================
+Found a 37 line (239 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+
+	~OMarkableInputStreamTest();
+
+public: // refcounting
+	BOOL						queryInterface( Uik aUik, XInterfaceRef & rOut );
+	void 						acquire() 						 { OWeakObject::acquire(); }
+	void 						release() 						 { OWeakObject::release(); }
+	void* 						getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); }
+
+public: // implementation names
+    static Sequence< UString > 	getSupportedServiceNames_Static(void) THROWS( () );
+	static UString 				getImplementationName_Static() THROWS( () );
+
+public:
+    virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject)
+    															THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual INT32 test(	const UString& TestName,
+    					const XInterfaceRef& TestObject,
+    					INT32 hTestHandle) 						THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual BOOL testPassed(void) 								THROWS( (	UsrSystemException) );
+    virtual Sequence< UString > getErrors(void) 				THROWS( (UsrSystemException) );
+    virtual Sequence< UsrAny > getErrorExceptions(void) 		THROWS( (UsrSystemException) );
+    virtual Sequence< UString > getWarnings(void) 				THROWS( (UsrSystemException) );
+
+private:
+	void testSimple( const XOutputStreamRef &r, const XInputStreamRef &rInput );
+
+private:
+	Sequence<UsrAny>  m_seqExceptions;
+	Sequence<UString> m_seqErrors;
+	Sequence<UString> m_seqWarnings;
+	XMultiServiceFactoryRef m_rFactory;
+
+};
+=====================================================================
+Found a 15 line (239 tokens) duplication in the following files: 
+Starting at line 2575 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/typelib/typelib.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crbase.cxx
+
+}
+
+static sal_Bool s_aAssignableFromTab[11][11] =
+{
+						 /* from CH,BO,BY,SH,US,LO,UL,HY,UH,FL,DO */
+/* TypeClass_CHAR */			{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_BOOLEAN */			{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_BYTE */			{ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_SHORT */			{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_UNSIGNED_SHORT */	{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_LONG */			{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* TypeClass_UNSIGNED_LONG */	{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* TypeClass_HYPER */			{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+/* TypeClass_UNSIGNED_HYPER */	{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+/* TypeClass_FLOAT */			{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
+=====================================================================
+Found a 34 line (239 tokens) duplication in the following files: 
+Starting at line 869 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+Starting at line 1071 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+	TInt2IntMap aMap;
+	aMap[SQL_BIT]				= DataType::BIT;
+	aMap[SQL_TINYINT]			= DataType::TINYINT;
+	aMap[SQL_SMALLINT]			= DataType::SMALLINT;
+	aMap[SQL_INTEGER]			= DataType::INTEGER;
+	aMap[SQL_FLOAT]				= DataType::FLOAT;
+	aMap[SQL_REAL]				= DataType::REAL;
+	aMap[SQL_DOUBLE]			= DataType::DOUBLE;
+	aMap[SQL_BIGINT]			= DataType::BIGINT;
+
+	aMap[SQL_CHAR]				= DataType::CHAR;
+	aMap[SQL_WCHAR]				= DataType::CHAR;
+	aMap[SQL_VARCHAR]			= DataType::VARCHAR;
+	aMap[SQL_WVARCHAR]			= DataType::VARCHAR;
+	aMap[SQL_LONGVARCHAR]		= DataType::LONGVARCHAR;
+	aMap[SQL_WLONGVARCHAR]		= DataType::LONGVARCHAR;
+
+	aMap[SQL_TYPE_DATE]			= DataType::DATE;
+	aMap[SQL_DATE]				= DataType::DATE;
+	aMap[SQL_TYPE_TIME]			= DataType::TIME;
+	aMap[SQL_TIME]				= DataType::TIME;
+	aMap[SQL_TYPE_TIMESTAMP]	= DataType::TIMESTAMP;
+	aMap[SQL_TIMESTAMP]			= DataType::TIMESTAMP;
+
+	aMap[SQL_DECIMAL]			= DataType::DECIMAL;
+	aMap[SQL_NUMERIC]			= DataType::NUMERIC;
+
+	aMap[SQL_BINARY]			= DataType::BINARY;
+	aMap[SQL_VARBINARY]			= DataType::VARBINARY;
+	aMap[SQL_LONGVARBINARY]		= DataType::LONGVARBINARY;
+
+	aMap[SQL_GUID]				= DataType::VARBINARY;
+
+	m_aValueRange[5] = aMap;
+=====================================================================
+Found a 39 line (239 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+            *(void **)pCppStack = pCppReturn;
+            pCppStack += sizeof(void *);
+		}
+	}
+	// push this
+    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+        + aVtableSlot.offset;
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 40 line (238 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/helper/xsecctl.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/demo/util2.cxx
+
+void convertDateTime( ::rtl::OUStringBuffer& rBuffer,
+	const com::sun::star::util::DateTime& rDateTime )
+{
+    String aString( String::CreateFromInt32( rDateTime.Year ) );
+    aString += '-';
+    if( rDateTime.Month < 10 )
+        aString += '0';
+    aString += String::CreateFromInt32( rDateTime.Month );
+    aString += '-';
+    if( rDateTime.Day < 10 )
+        aString += '0';
+    aString += String::CreateFromInt32( rDateTime.Day );
+
+    if( rDateTime.Seconds != 0 ||
+        rDateTime.Minutes != 0 ||
+        rDateTime.Hours   != 0 )
+    {
+        aString += 'T';
+        if( rDateTime.Hours < 10 )
+            aString += '0';
+        aString += String::CreateFromInt32( rDateTime.Hours );
+        aString += ':';
+        if( rDateTime.Minutes < 10 )
+            aString += '0';
+        aString += String::CreateFromInt32( rDateTime.Minutes );
+        aString += ':';
+        if( rDateTime.Seconds < 10 )
+            aString += '0';
+        aString += String::CreateFromInt32( rDateTime.Seconds );
+		if ( rDateTime.HundredthSeconds > 0)
+		{
+	        aString += ',';
+			if (rDateTime.HundredthSeconds < 10)
+				aString += '0';
+			aString += String::CreateFromInt32( rDateTime.HundredthSeconds );
+		}
+    }
+
+    rBuffer.append( aString );
+}
+=====================================================================
+Found a 30 line (238 tokens) duplication in the following files: 
+Starting at line 1997 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 2568 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+        aTypes.push_back(ITYPE(container::XNamed));
+        aTypes.push_back(ITYPE(lang::XServiceInfo));
+        aTypes.push_back(ITYPE(util::XReplaceable));
+        aTypes.push_back(ITYPE(document::XLinkTargetSupplier));
+        aTypes.push_back(ITYPE( drawing::XShapeCombiner ));
+        aTypes.push_back(ITYPE( drawing::XShapeBinder ));
+        if( bPresPage )
+            aTypes.push_back(ITYPE(presentation::XPresentationPage));
+        if( bPresPage && ePageKind == PK_STANDARD )
+            aTypes.push_back(ITYPE(XAnimationNodeSupplier));
+
+        // Get types of base class.
+        const uno::Sequence< uno::Type > aBaseTypes( SdGenericDrawPage::getTypes() );
+        const sal_Int32 nBaseTypes = aBaseTypes.getLength();
+        const uno::Type* pBaseTypes = aBaseTypes.getConstArray();
+
+        // Join those types in a sequence.
+        maTypeSequence.realloc(aTypes.size() + nBaseTypes);
+        uno::Type* pTypes = maTypeSequence.getArray();
+        ::std::vector<uno::Type>::const_iterator iType;
+        for (iType=aTypes.begin(); iType!=aTypes.end(); ++iType)
+            *pTypes++ = *iType;
+        for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ )
+            *pTypes++ = *pBaseTypes++;
+	}
+
+	return maTypeSequence;
+}
+
+uno::Sequence< sal_Int8 > SAL_CALL SdMasterPage::getImplementationId() throw(uno::RuntimeException)
+=====================================================================
+Found a 33 line (238 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/security.c
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/security/osl_Security.cxx
+
+	Ident=(sal_Char * )malloc(88*sizeof(sal_Char));
+
+	/* prepare S-SID_REVISION- */
+	dwSidSize=wsprintf(Ident, TEXT("S-%lu-"), dwSidRev);
+
+	/* prepare SidIdentifierAuthority */
+	if ((psia->Value[0] != 0) || (psia->Value[1] != 0))
+	{
+	    dwSidSize+=wsprintf(Ident + strlen(Ident),
+	                TEXT("0x%02hx%02hx%02hx%02hx%02hx%02hx"),
+	                (USHORT)psia->Value[0],
+	                (USHORT)psia->Value[1],
+	                (USHORT)psia->Value[2],
+	                (USHORT)psia->Value[3],
+	                (USHORT)psia->Value[4],
+	                (USHORT)psia->Value[5]);
+	}
+	else
+	{
+	    dwSidSize+=wsprintf(Ident + strlen(Ident),
+	                TEXT("%lu"),
+	                (ULONG)(psia->Value[5]      )   +
+	                (ULONG)(psia->Value[4] <<  8)   +
+	                (ULONG)(psia->Value[3] << 16)   +
+	                (ULONG)(psia->Value[2] << 24)   );
+	}
+
+	/* loop through SidSubAuthorities */
+	for (dwCounter=0; dwCounter < dwSubAuthorities; dwCounter++)
+	{
+		dwSidSize+=wsprintf(Ident + dwSidSize, TEXT("-%lu"),
+		            *GetSidSubAuthority(pSid, dwCounter) );
+	}
+=====================================================================
+Found a 24 line (238 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				{
+					const MetaFloatTransparentAction*	pA = (const MetaFloatTransparentAction*) pAction;
+					GDIMetaFile							aTmpMtf( pA->GetGDIMetaFile() );
+					Point								aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size							aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point							aDestPt( pA->GetPoint() );
+					const Size							aDestSize( pA->GetSize() );
+					const double						fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double						fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long								nMoveX, nMoveY;
+
+					if( fScaleX != 1.0 || fScaleY != 1.0 )
+					{
+						aTmpMtf.Scale( fScaleX, fScaleY );
+						aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+					}
+
+					nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+					if( nMoveX || nMoveY )
+						aTmpMtf.Move( nMoveX, nMoveY );
+
+					mpVDev->Push();
+					ImplWriteActions( aTmpMtf, pStyle, nWriteFlags );
+=====================================================================
+Found a 13 line (238 tokens) duplication in the following files: 
+Starting at line 638 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/testcppu.cxx
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crbase.cxx
+
+static sal_Bool s_aAssignableFromTab[11][11] =
+{
+						 /* from CH,BO,BY,SH,US,LO,UL,HY,UH,FL,DO */
+/* TypeClass_CHAR */			{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_BOOLEAN */			{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_BYTE */			{ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_SHORT */			{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_UNSIGNED_SHORT */	{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
+/* TypeClass_LONG */			{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* TypeClass_UNSIGNED_LONG */	{ 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* TypeClass_HYPER */			{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+/* TypeClass_UNSIGNED_HYPER */	{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+/* TypeClass_FLOAT */			{ 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
+=====================================================================
+Found a 88 line (238 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+
+using namespace std;
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/Type.hxx>
+#include <com/sun/star/uno/TypeClass.hpp>
+
+#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/container/XHierarchicalName.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/container/XChild.hpp>
+#include <com/sun/star/beans/XExactName.hpp>
+#ifndef _COM_SUN_STAR_UTIL_XCHANGESBATCH_HPP_
+#include <com/sun/star/util/XChangesBatch.hpp>
+#endif
+
+
+#include <rtl/ustring.hxx>
+#include <rtl/string.hxx>
+
+#ifndef _CPPUHELPER_SERVICEFACTORY_HXX_
+#include <cppuhelper/servicefactory.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_H_
+#include <com/sun/star/uno/Sequence.h>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_ANY_H_
+#include <com/sun/star/uno/Any.h>
+#endif
+
+#ifndef _OSL_PROFILE_HXX_
+#include <osl/profile.hxx>
+#endif
+#ifndef _OSL_PROCESS_H_
+#include <osl/process.h>
+#endif
+#ifndef _OSL_FILE_H_
+#include <osl/file.h>
+#endif
+
+#include "createpropertyvalue.hxx"
+
+#include "typeconverter.hxx"
+
+// #include <com/sun/star/configuration/XConfigurationSync.hpp>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+//using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::util;
+
+using ::rtl::OUString;
+using ::rtl::OString;
+//using namespace ::configmgr;
+
+using namespace ::cppu;
+
+#define ASCII(x) ::rtl::OUString::createFromAscii(x)
+
+ostream& operator << (ostream& out, rtl::OUString const& aStr)
+{
+	sal_Unicode const* const pStr = aStr.getStr();
+	sal_Unicode const* const pEnd = pStr + aStr.getLength();
+	for (sal_Unicode const* p = pStr; p < pEnd; ++p)
+		if (0 < *p && *p < 127) // ASCII
+			out << char(*p);
+		else
+			out << "[\\u" << hex << *p << "]";
+	return out;
+}
+
+void showSequence(const Sequence<OUString> &aSeq)
+{
+	OUString aArray;
+	const OUString *pStr = aSeq.getConstArray();
+	for (int i=0;i<aSeq.getLength();i++)
+	{
+		OUString aStr = pStr[i];
+		// aArray += aStr + ASCII(", ");
+		cout << aStr << endl;
+	}
+	volatile int dummy = 0;
+}
+=====================================================================
+Found a 40 line (238 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/BarPositionHelper.cxx
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/PlottingPositionHelper.cxx
+
+        doLogicScaling( &MaxX, &MaxY, &MaxZ);
+
+        if(m_bSwapXAndY)
+        {
+            std::swap(MinX,MinY);
+            std::swap(MaxX,MaxY);
+            std::swap(nXAxisOrientation,nYAxisOrientation);
+        }
+
+        if( AxisOrientation_MATHEMATICAL==nXAxisOrientation )
+            aMatrix.translate(-MinX, 0.0, 0.0);
+        else
+            aMatrix.translate(-MaxX, 0.0, 0.0);
+        if( AxisOrientation_MATHEMATICAL==nYAxisOrientation )
+            aMatrix.translate(0.0, -MinY, 0.0);
+        else
+            aMatrix.translate(0.0, -MaxY, 0.0);
+        if( AxisOrientation_MATHEMATICAL==nZAxisOrientation )
+            aMatrix.translate(0.0, 0.0, -MaxZ);//z direction in draw is reverse mathematical direction
+        else
+            aMatrix.translate(0.0, 0.0, -MinZ);
+
+        double fWidthX = MaxX - MinX;
+        double fWidthY = MaxY - MinY;
+        double fWidthZ = MaxZ - MinZ;
+
+        double fScaleDirectionX = AxisOrientation_MATHEMATICAL==nXAxisOrientation ? 1.0 : -1.0;
+        double fScaleDirectionY = AxisOrientation_MATHEMATICAL==nYAxisOrientation ? 1.0 : -1.0;
+        double fScaleDirectionZ = AxisOrientation_MATHEMATICAL==nZAxisOrientation ? -1.0 : 1.0;
+
+        aMatrix.scale(fScaleDirectionX*FIXED_SIZE_FOR_3D_CHART_VOLUME/fWidthX,
+			fScaleDirectionY*FIXED_SIZE_FOR_3D_CHART_VOLUME/fWidthY,
+	        fScaleDirectionZ*FIXED_SIZE_FOR_3D_CHART_VOLUME/fWidthZ);
+
+        aMatrix = m_aMatrixScreenToScene*aMatrix;
+
+        m_xTransformationLogicToScene = new Linear3DTransformation(B3DHomMatrixToHomogenMatrix( aMatrix ),m_bSwapXAndY);
+    }
+    return m_xTransformationLogicToScene;
+}
+=====================================================================
+Found a 41 line (237 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/include.c
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_include.c
+
+	}
+
+    if (fd >= 0)
+    {
+        if (++incdepth > NINC )
+            error(FATAL, "#%s too deeply nested", import ? "import" : "include");
+		if (Xflag)
+			genimport(fname, angled, iname, import);
+ 		if (Iflag)
+			error(INFO, "Open %s file [%s]", import ? "import" : "include", iname );
+
+        for (i = NINCLUDE - 1; i >= 0; i--)
+        {
+            if ((wraplist[i].file != NULL) &&
+			    (strncmp(wraplist[i].file, iname, strlen(wraplist[i].file)) == 0))
+				break;
+		}
+
+        setsource((char *) newstring((uchar *) iname, strlen(iname), 0), i, fd, NULL, (i >= 0) ? 1 : 0);
+
+        if (!Pflag)
+            genline();
+    }
+    else
+    {
+        trp->tp = trp->bp + 2;
+        error(ERROR, "Could not find %s file %r", import ? "import" : "include", trp);
+    }
+    return;
+syntax:
+    error(ERROR, "Syntax error in #%s", import ? "import" : "include");
+    return;
+}
+
+/*
+ * Generate a line directive for cursource
+ */
+void
+    genline(void)
+{
+    static Token ta = {UNCLASS, 0, 0, 0, NULL, 0};
+=====================================================================
+Found a 8 line (237 tokens) duplication in the following files: 
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1242 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 10 line (237 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,17,17, 0, 0,// 0cc0 - 0ccf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cd0 - 0cdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ce0 - 0cef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cf0 - 0cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d00 - 0d0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d10 - 0d1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d20 - 0d2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d30 - 0d3f
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+=====================================================================
+Found a 9 line (237 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1017 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0400 - 040f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0410 - 041f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0420 - 042f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0430 - 043f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0460 - 046f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0470 - 047f
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+=====================================================================
+Found a 32 line (236 tokens) duplication in the following files: 
+Starting at line 636 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 853 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readPatternFieldModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+    
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );   
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":readonly") ) );  
+    readBoolAttr( OUSTR("HideInactiveSelection"),
+                  OUSTR(XMLNS_DIALOGS_PREFIX ":hide-inactive-selection") );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":strict-format") ) ); 
+    readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ),
+=====================================================================
+Found a 63 line (236 tokens) duplication in the following files: 
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+	{
+        //=================================================================
+        //
+        // Folder: Supported commands
+        //
+        //=================================================================
+
+        static const ucb::CommandInfo aFolderCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                -1,
+                getCppuBooleanType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                -1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                -1,
+                getCppuType( static_cast< ucb::TransferInfo * >( 0 ) )
+            )
+=====================================================================
+Found a 5 line (236 tokens) duplication in the following files: 
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffd8 - ffdf
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe0 - ffe7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff0 - fff7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff8 - ffff
+=====================================================================
+Found a 28 line (236 tokens) duplication in the following files: 
+Starting at line 2331 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 2080 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+
+						WriteOpcode_Poly( PDM_FRAME, rPolyPoly.GetObject( i ) );
+				}
+			}
+			break;
+
+			case META_FLOATTRANSPARENT_ACTION:
+			{
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+				}
+
+				nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+				if( nMoveX || nMoveY )
+					aTmpMtf.Move( nMoveX, nMoveY );
+=====================================================================
+Found a 32 line (236 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/uicommanddescription.cxx
+
+        virtual                   ~ConfigurationAccess_UICommand();
+
+        //  XInterface, XTypeProvider
+		FWK_DECLARE_XINTERFACE
+		FWK_DECLARE_XTYPEPROVIDER
+
+        // XNameAccess
+        virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
+            throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
+            throw (::com::sun::star::uno::RuntimeException);
+
+        virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // XElementAccess
+        virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
+            throw (::com::sun::star::uno::RuntimeException);
+
+        virtual sal_Bool SAL_CALL hasElements()
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // container.XContainerListener
+        virtual void SAL_CALL     elementInserted( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL     elementRemoved ( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL     elementReplaced( const ContainerEvent& aEvent ) throw(RuntimeException);
+
+        // lang.XEventListener
+        virtual void SAL_CALL disposing( const EventObject& aEvent ) throw(RuntimeException);
+
+    protected:
+=====================================================================
+Found a 25 line (236 tokens) duplication in the following files: 
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataImpl.cxx
+
+		DataType::VARCHAR);
+	m_mColumns[11] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NULLABLE"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+	m_mColumns[12] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("REMARKS"),
+		ColumnValue::NULLABLE,
+		0,0,0,
+		DataType::VARCHAR);
+	m_mColumns[13] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("COLUMN_DEF"),
+		ColumnValue::NULLABLE,
+		0,0,0,
+		DataType::VARCHAR);
+	m_mColumns[14] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATA_TYPE"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+	m_mColumns[15] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATETIME_SUB"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+	m_mColumns[16] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("CHAR_OCTET_LENGTH"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+=====================================================================
+Found a 36 line (236 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxchar.cxx
+
+			aTmp.nByte = *p->pByte; goto ref;
+		case SbxBYREF | SbxINTEGER:
+		case SbxBYREF | SbxBOOL:
+			aTmp.nInteger = *p->pInteger; goto ref;
+		case SbxBYREF | SbxLONG:
+			aTmp.nLong = *p->pLong; goto ref;
+		case SbxBYREF | SbxULONG:
+			aTmp.nULong = *p->pULong; goto ref;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			aTmp.nUShort = *p->pUShort; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+		case SbxBYREF | SbxSALINT64:
+			aTmp.nInt64 = *p->pnInt64; goto ref;
+		case SbxBYREF | SbxSALUINT64:
+			aTmp.uInt64 = *p->puInt64; goto ref;
+		ref:
+			aTmp.eType = SbxDataType( p->eType & 0x0FFF );
+			p = &aTmp; goto start;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION ); nRes = 0;
+	}
+	return nRes;
+}
+
+void ImpPutChar( SbxValues* p, xub_Unicode n )
+=====================================================================
+Found a 38 line (235 tokens) duplication in the following files: 
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drawsh.cxx
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwtxtsh.cxx
+
+void SwDrawTextShell::GetFormTextState(SfxItemSet& rSet)
+{
+	SwWrtShell &rSh = GetShell();
+	SdrView* pDrView = rSh.GetDrawView();
+	const SdrMarkList& rMarkList = pDrView->GetMarkedObjectList();
+	const SdrObject* pObj = NULL;
+	SvxFontWorkDialog* pDlg = NULL;
+
+	const USHORT nId = SvxFontWorkChildWindow::GetChildWindowId();
+
+	SfxViewFrame* pVFrame = GetView().GetViewFrame();
+	if ( pVFrame->HasChildWindow(nId) )
+		pDlg = (SvxFontWorkDialog*)(pVFrame->GetChildWindow(nId)->GetWindow());
+
+	if ( rMarkList.GetMarkCount() == 1 )
+		pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+
+	if ( pObj == NULL || !pObj->ISA(SdrTextObj) ||
+		!((SdrTextObj*) pObj)->HasText() )
+	{
+#define	XATTR_ANZ 12
+		static const USHORT nXAttr[ XATTR_ANZ ] =
+		{ 	XATTR_FORMTXTSTYLE, XATTR_FORMTXTADJUST, XATTR_FORMTXTDISTANCE,
+			XATTR_FORMTXTSTART, XATTR_FORMTXTMIRROR, XATTR_FORMTXTSTDFORM,
+			XATTR_FORMTXTHIDEFORM, XATTR_FORMTXTOUTLINE, XATTR_FORMTXTSHADOW,
+			XATTR_FORMTXTSHDWCOLOR, XATTR_FORMTXTSHDWXVAL, XATTR_FORMTXTSHDWYVAL
+		};
+		for( USHORT i = 0; i < XATTR_ANZ; )
+			rSet.DisableItem( nXAttr[ i++ ] );
+	}
+	else
+	{
+		if ( pDlg )
+			pDlg->SetColorTable(XColorTable::GetStdColorTable());
+
+		pDrView->GetAttributes( rSet );
+	}
+}
+=====================================================================
+Found a 45 line (235 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+String OFlatTable::getEntry()
+{
+	::rtl::OUString sURL;
+	try
+	{
+		Reference< XResultSet > xDir = m_pConnection->getDir()->getStaticResultSet();
+		Reference< XRow> xRow(xDir,UNO_QUERY);
+		::rtl::OUString sName;
+		::rtl::OUString sExt;
+
+		INetURLObject aURL;
+		xDir->beforeFirst();
+		static const ::rtl::OUString s_sSeparator(RTL_CONSTASCII_USTRINGPARAM("/"));
+		while(xDir->next())
+		{
+			sName = xRow->getString(1);
+			aURL.SetSmartProtocol(INET_PROT_FILE);
+			String sUrl = m_pConnection->getURL() +  s_sSeparator + sName;
+			aURL.SetSmartURL( sUrl );
+
+			// cut the extension
+			sExt = aURL.getExtension();
+
+			// name and extension have to coincide
+			if ( m_pConnection->matchesExtension( sExt ) )
+			{
+				sName = sName.replaceAt(sName.getLength()-(sExt.getLength()+1),sExt.getLength()+1,::rtl::OUString());
+				if ( sName == m_Name )
+				{
+					Reference< XContentAccess > xContentAccess( xDir, UNO_QUERY );
+					sURL = xContentAccess->queryContentIdentifierString();
+					break;
+				}
+			}
+		}
+		xDir->beforeFirst(); // move back to before first record
+	}
+	catch(Exception&)
+	{
+		OSL_ASSERT(0);
+	}
+	return sURL.getStr();
+}
+// -------------------------------------------------------------------------
+void OFlatTable::refreshColumns()
+=====================================================================
+Found a 60 line (235 tokens) duplication in the following files: 
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/verifyinput.cxx
+Starting at line 711 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/verifyinput.cxx
+
+        void verifyInput( const rendering::FloatingPointBitmapLayout&	bitmapLayout,
+                          const char*									pStr,
+                          const uno::Reference< uno::XInterface >&		xIf,
+                          ::sal_Int16									nArgPos )
+        {
+            (void)pStr; (void)xIf; (void)nArgPos;
+
+            if( bitmapLayout.ScanLines < 0 )
+            {
+#if OSL_DEBUG_LEVEL > 0
+                throw lang::IllegalArgumentException(
+                    ::rtl::OUString::createFromAscii(pStr) +
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's ScanLines is negative"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }
+
+            if( bitmapLayout.ScanLineBytes < 0 )
+            {
+#if OSL_DEBUG_LEVEL > 0
+                throw lang::IllegalArgumentException(
+                    ::rtl::OUString::createFromAscii(pStr) +
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's ScanLineBytes is negative"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }
+
+            if( !bitmapLayout.ColorSpace.is() )
+            {
+#if OSL_DEBUG_LEVEL > 0
+                throw lang::IllegalArgumentException(
+                    ::rtl::OUString::createFromAscii(pStr) +
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's ColorSpace is invalid"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }
+
+            if( bitmapLayout.NumComponents < 0 )
+            {
+#if OSL_DEBUG_LEVEL > 0
+                throw lang::IllegalArgumentException(
+                    ::rtl::OUString::createFromAscii(pStr) +
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's NumComponents is negative"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }
+
+            if( bitmapLayout.Endianness < rendering::Endianness::LITTLE ||
+=====================================================================
+Found a 30 line (234 tokens) duplication in the following files: 
+Starting at line 2022 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+Starting at line 2100 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+				UInt32ToSVBT32( pAct->GetBitmapEx().GetChecksum(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestSize().Width(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestSize().Height(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcSize().Width(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcSize().Height(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+			}
+			break;
+
+			case( META_MASK_ACTION ):
+=====================================================================
+Found a 32 line (234 tokens) duplication in the following files: 
+Starting at line 5011 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4583 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] =
+{
+	{ 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 },
+	{ 0, 10800 }, { 3400, 0 },
+
+	{ 18200, 0 }, { 14800, 10800 }, { 18200, 21600 }
+};
+static const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] =
+{
+	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000,
+	0x4000, 0xa702, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] = 
+{
+	{ { 3400, 0 }, { 14800, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] =
+{
+	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoFlowChartMagneticDrum =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumVert, sizeof( mso_sptFlowChartMagneticDrumVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartMagneticDrumSegm, sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDrumTextRect, sizeof( mso_sptFlowChartMagneticDrumTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumGluePoints, sizeof( mso_sptFlowChartMagneticDrumGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 32 line (234 tokens) duplication in the following files: 
+Starting at line 4978 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4551 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] =
+{
+	{ 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 },
+	{ 10800, 21600 }, { 0, 18200 },
+
+	{ 0, 3400 }, { 10800, 6800 }, { 21600, 3400 }
+};
+static const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] =
+{
+	0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000,
+	0x4000, 0xa802, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] = 
+{
+	{ { 0, 6800 }, { 21600, 18200 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] =
+{
+	{ 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoFlowChartMagneticDisk =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskVert, sizeof( mso_sptFlowChartMagneticDiskVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartMagneticDiskSegm, sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDiskTextRect, sizeof( mso_sptFlowChartMagneticDiskTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskGluePoints, sizeof( mso_sptFlowChartMagneticDiskGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 44 line (234 tokens) duplication in the following files: 
+Starting at line 818 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+	for ( USHORT i = 0; i < pExternalImageList->Count(); i++ )
+	{
+		ExternalImageItemDescriptor* pItem = (*pExternalImageList)[i];
+		WriteExternalImage( pItem );
+	}
+
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALIMAGES )) );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+}
+
+void OWriteImagesDocumentHandler::WriteExternalImage( const ExternalImageItemDescriptor* pExternalImage ) throw
+( SAXException, RuntimeException )
+{
+	AttributeListImpl*			pList = new AttributeListImpl;
+	Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+    // save required attributes
+	pList->addAttribute( m_aAttributeXlinkType,
+						 m_aAttributeType,
+						 m_aAttributeValueSimple );
+
+	if ( pExternalImage->aURL.Len() > 0 )
+	{
+		pList->addAttribute( m_aXMLXlinkNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_HREF )),
+							 m_aAttributeType,
+							 pExternalImage->aURL );
+	}
+
+	if ( pExternalImage->aCommandURL.Len() > 0 )
+	{
+		pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_COMMAND )),
+							 m_aAttributeType,
+							 pExternalImage->aCommandURL );
+	}
+
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALENTRY )), xList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALENTRY )) );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+}
+
+} // namespace framework
+=====================================================================
+Found a 28 line (234 tokens) duplication in the following files: 
+Starting at line 290 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/accelerators/acceleratorexecute.cxx
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/acceleratorexecute.cxx
+
+css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st_openModuleConfig(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+                                                                                                   const css::uno::Reference< css::frame::XFrame >&              xFrame)
+{
+    css::uno::Reference< css::frame::XModuleManager > xModuleDetection(
+        xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.ModuleManager")),
+        css::uno::UNO_QUERY_THROW);
+
+    ::rtl::OUString sModule;
+    try
+    {
+        sModule = xModuleDetection->identify(xFrame);
+    }
+    catch(const css::uno::RuntimeException& exRuntime)
+        { throw exRuntime; }
+    catch(const css::uno::Exception&)
+        { return css::uno::Reference< css::ui::XAcceleratorConfiguration >(); }
+
+    css::uno::Reference< css::ui::XModuleUIConfigurationManagerSupplier > xUISupplier(
+        xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")),
+        css::uno::UNO_QUERY_THROW);
+
+    css::uno::Reference< css::ui::XUIConfigurationManager >   xUIManager = xUISupplier->getUIConfigurationManager(sModule);
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xAccCfg    (xUIManager->getShortCutManager(), css::uno::UNO_QUERY_THROW);
+    return xAccCfg;
+}
+
+//-----------------------------------------------
+css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st_openDocConfig(const css::uno::Reference< css::frame::XModel >& xModel)
+=====================================================================
+Found a 39 line (233 tokens) duplication in the following files: 
+Starting at line 5871 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6179 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                }
+                pVer6 = (WW8_FFN_Ver6*)( ((BYTE*)pVer6) + pVer6->cbFfnM1 + 1 );
+            }
+        }
+        else
+        {
+            WW8_FFN_Ver8* pVer8 = (WW8_FFN_Ver8*)pA;
+            BYTE c2;
+            for(USHORT i=0; i<nMax; ++i, ++p)
+            {
+                p->cbFfnM1   = pVer8->cbFfnM1;
+                c2           = *(((BYTE*)pVer8) + 1);
+
+                p->prg       =  c2 & 0x02;
+                p->fTrueType = (c2 & 0x04) >> 2;
+                // ein Reserve-Bit ueberspringen
+                p->ff        = (c2 & 0x70) >> 4;
+
+                p->wWeight   = SVBT16ToShort( *(SVBT16*)&pVer8->wWeight );
+                p->chs       = pVer8->chs;
+                p->ibszAlt   = pVer8->ibszAlt;
+
+#ifdef __WW8_NEEDS_COPY
+                {
+                    BYTE nLen = 0x28;
+                    for( UINT16* pTmp = pVer8->szFfn;
+                        nLen < pVer8->cbFfnM1 + 1 ; ++pTmp, nLen+=2 )
+                    {
+                        *pTmp = SVBT16ToShort( *(SVBT16*)pTmp );
+                    }
+                }
+#endif // defined __WW8_NEEDS_COPY
+
+                p->sFontname = pVer8->szFfn;
+                if (p->ibszAlt)
+                {
+                    p->sFontname.Append(';');
+                    p->sFontname.Append(pVer8->szFfn+p->ibszAlt);
+                }
+=====================================================================
+Found a 46 line (233 tokens) duplication in the following files: 
+Starting at line 2111 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2954 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+	WriteAlign(rContents,4);
+#endif
+
+    WriteAlign(rContents,4);
+    aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("BorderColor"));
+    if (aTmp.hasValue())
+        aTmp >>= nBorderColor;
+    *rContents << ExportColor(nBorderColor);
+    pBlockFlags[3] |= 0x02;
+
+    *rContents << nSpecialEffect;
+    pBlockFlags[3] |= 0x04;
+
+    WriteAlign(rContents,4);
+	*rContents << rSize.Width;
+	*rContents << rSize.Height;
+
+#if 0
+    aValue.WriteCharArray( *rContents );
+#endif
+
+	WriteAlign(rContents,4);
+
+    nFixedAreaLen = static_cast<sal_uInt16>(rContents->Tell()-nOldPos-4);
+
+	bRet = aFontData.Export(rContents,rPropSet);
+
+    rContents->Seek(nOldPos);
+	*rContents << nStandardId;
+	*rContents << nFixedAreaLen;
+
+	*rContents << pBlockFlags[0];
+	*rContents << pBlockFlags[1];
+	*rContents << pBlockFlags[2];
+	*rContents << pBlockFlags[3];
+	*rContents << pBlockFlags[4];
+	*rContents << pBlockFlags[5];
+	*rContents << pBlockFlags[6];
+	*rContents << pBlockFlags[7];
+
+	DBG_ASSERT((rContents.Is() &&
+		(SVSTREAM_OK==rContents->GetError())),"damn");
+	return bRet;
+}
+
+sal_Bool OCX_ListBox::Export(SvStorageRef &rObj,
+=====================================================================
+Found a 54 line (233 tokens) duplication in the following files: 
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_socket.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/ctr_socket.cxx
+
+			OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::write: error - connection already closed"));
+
+			IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
+
+			Any any;
+			any <<= ioException;
+
+			notifyListeners(this, &_error, callError(any));
+
+			throw ioException;
+		}
+	}
+
+	void SocketConnection::flush( )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+
+	}
+
+	void SocketConnection::close()
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+			// ensure that close is called only once
+		if( 1 == osl_incrementInterlockedCount( (&m_nStatus) ) )
+		{
+			m_socket.shutdown();
+			notifyListeners(this, &_closed, callClosed);
+		}
+	}
+
+	OUString SocketConnection::getDescription()
+			throw( ::com::sun::star::uno::RuntimeException)
+	{
+		return m_sDescription;
+	}
+
+
+
+	// XConnectionBroadcaster
+	void SAL_CALL SocketConnection::addStreamListener(const Reference<XStreamListener> & aListener) throw(RuntimeException)
+	{
+		MutexGuard guard(_mutex);
+
+		_listeners.insert(aListener);
+	}
+
+	void SAL_CALL SocketConnection::removeStreamListener(const Reference<XStreamListener> & aListener) throw(RuntimeException)
+	{
+		MutexGuard guard(_mutex);
+
+		_listeners.erase(aListener);
+	}
+=====================================================================
+Found a 33 line (233 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/include.c
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_include.c
+
+    static Token ta = {UNCLASS, 0, 0, 0, NULL, 0};
+    static Tokenrow tr = {&ta, &ta, &ta + 1, 1};
+    uchar *p;
+
+    ta.t = p = (uchar *) outptr;
+    strcpy((char *) p, "#line ");
+    p += sizeof("#line ") - 1;
+    p = (uchar *) outnum((char *) p, cursource->line);
+    *p++ = ' ';
+    *p++ = '"';
+    if (cursource->filename[0] != '/' && wd[0])
+    {
+        strcpy((char *) p, wd);
+        p += strlen(wd);
+        *p++ = '/';
+    }
+    strcpy((char *) p, cursource->filename);
+    p += strlen((char *) p);
+    *p++ = '"';
+    *p++ = '\n';
+    ta.len = (char *) p - outptr;
+    outptr = (char *) p;
+    tr.tp = tr.bp;
+    puttokens(&tr);
+}
+
+/*
+ * Generate a pragma import/include directive
+ */
+void
+    genimport(char *fname, int angled, char *iname, int import)
+{
+    static Token ta = {UNCLASS, 0, 0, 0, NULL, 0};
+=====================================================================
+Found a 8 line (233 tokens) duplication in the following files: 
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1158 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 26 line (233 tokens) duplication in the following files: 
+Starting at line 2333 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1169 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+
+            }
+			break;
+
+			case META_FLOATTRANSPARENT_ACTION:
+			{
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+				}
+
+				nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+				if( nMoveX || nMoveY )
+					aTmpMtf.Move( nMoveX, nMoveY );
+=====================================================================
+Found a 48 line (233 tokens) duplication in the following files: 
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/tos/putenv.c
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsd43/putenv.c
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/bsdarm32/putenv.c
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/sysvr1/putenv.c
+
+int
+putenv( str )/*
+===============
+   Take a string of the form NAME=value and stick it into the environment.
+   We do this by allocating a new set of pointers if we have to add a new
+   string and by replacing an existing pointer if the value replaces the value
+   of an existing string. */
+char *str;
+{
+   extern char **environ;		/* The current environment. */
+   static char **ourenv = NULL;		/* A new environment	    */
+   register char **p;
+   register char *q;
+   int      size;
+
+   /* First search the current environment and see if we can replace a
+    * string. */
+   for( p=environ; *p; p++ ) {
+      register char *s = str;
+
+      for( q = *p; *q && *s && *s == *q; q++, s++ )
+	 if( *s == '=' ) {
+	    *p = str;
+	    return(0);			/* replaced it so go away */
+	 }
+   }
+
+   /* Ok, can't replace a string so need to grow the environment. */
+   size = p - environ + 2;	/* size of new environment */
+				/* size of old is size-1   */
+
+   /* It's the first time, so allocate a new environment since we don't know
+    * where the old one is comming from. */
+   if( ourenv == NULL ) {
+      if( (ourenv = (char **) malloc( sizeof(char *)*size )) == NULL )
+	 return(1);
+
+      memcpy( (char *)ourenv, (char *)environ, (size-2)*sizeof(char *) );
+   }
+   else if( (ourenv = (char **)realloc( ourenv, size*sizeof(char *))) == NULL )
+      return(1);
+
+   ourenv[--size] = NULL;
+   ourenv[--size] = str;
+
+   environ = ourenv;
+   return(0);
+}
+=====================================================================
+Found a 64 line (232 tokens) duplication in the following files: 
+Starting at line 840 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+Starting at line 1452 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+
+							pDepList2->PutString( new ByteString( aItem ));
+						}
+					}
+					else
+					{
+						ByteString aItem = yytext;
+						if ( aItem == "NULL" )
+						{
+							// Liste zu Ende
+							i = -1;
+							bPrjDep= FALSE;
+						}
+						else
+						{
+							aProjectName = aDirName.GetToken ( 0, '\\');
+							if ( HasProject( aProjectName ))
+							{
+								pPrj = GetPrj( aProjectName );
+								// Projekt exist. schon, neue Eintraege anhaengen
+							}
+							else
+							{
+								// neues Project anlegen
+								pPrj = new Prj ( aProjectName );
+								pPrj->SetPreFix( aPrefix );
+								Insert(pPrj,LIST_APPEND);
+							}
+							pPrj->AddDependencies( aItem );
+							pPrj->HasHardDependencies( bHardDep );
+
+							if ( nStarMode == STAR_MODE_RECURSIVE_PARSE ) {
+								String sItem( aItem, RTL_TEXTENCODING_ASCII_US );
+								InsertSolarList( sItem );
+							}
+						}
+
+					}
+					break;
+		}
+		/* Wenn dieses Project noch nicht vertreten ist, in die Liste
+		   der Solar-Projekte einfuegen */
+		if ( i == -1 )
+		{
+			aProjectName = aDirName.GetToken ( 0, '\\');
+			if ( HasProject( aProjectName ))
+			{
+				pPrj = GetPrj( aProjectName );
+				// Projekt exist. schon, neue Eintraege anhaengen
+			}
+			else
+			{
+				// neues Project anlegen
+				pPrj = new Prj ( aProjectName );
+				pPrj->SetPreFix( aPrefix );
+				Insert(pPrj,LIST_APPEND);
+			}
+
+			pCmdData = new CommandData;
+			pCmdData->SetPath( aDirName );
+			pCmdData->SetCommandType( nCommandType );
+			pCmdData->SetCommandPara( aCommandPara );
+			pCmdData->SetOSType( nOSType );
+			pCmdData->SetLogFile( aLogFileName );
+			pCmdData->SetComment( aCommentString );
+=====================================================================
+Found a 33 line (232 tokens) duplication in the following files: 
+Starting at line 3443 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 3587 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+				{
+					SwDoc* pDoc = pFmt->GetDoc();
+					SwClientIter aIter( *pFmt );
+					//Tabellen ohne Layout (unsichtbare Header/Footer )
+					if(0 != aIter.First( TYPE( SwFrm )))
+					{
+						lcl_FormatTable(pFmt);
+						SwTable* pTable = SwTable::FindTable( pFmt );
+						SwTableLines &rLines = pTable->GetTabLines();
+
+						// hier muessen die Actions aufgehoben werden
+						UnoActionRemoveContext aRemoveContext(pDoc);
+						SwTableBox* pTLBox = rLines[0]->GetTabBoxes()[0];
+						const SwStartNode* pSttNd = pTLBox->GetSttNd();
+						SwPosition aPos(*pSttNd);
+						// Cursor in die obere linke Zelle des Ranges setzen
+						SwUnoCrsr* pUnoCrsr = pDoc->CreateUnoCrsr(aPos, sal_True);
+						pUnoCrsr->Move( fnMoveForward, fnGoNode );
+						pUnoCrsr->SetRemainInSection( sal_False );
+
+						SwTableLine* pLastLine = rLines[rLines.Count() - 1];
+						SwTableBoxes &rBoxes = pLastLine->GetTabBoxes();
+						const SwTableBox* pBRBox = rBoxes[rBoxes.Count() -1];
+						pUnoCrsr->SetMark();
+						pUnoCrsr->GetPoint()->nNode = *pBRBox->GetSttNd();
+						pUnoCrsr->Move( fnMoveForward, fnGoNode );
+						SwUnoTableCrsr* pCrsr = *pUnoCrsr;
+						pCrsr->MakeBoxSels();
+
+						SfxItemSet aSet(pDoc->GetAttrPool(),
+										RES_BOX, RES_BOX,
+										SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
+										0);
+=====================================================================
+Found a 93 line (232 tokens) duplication in the following files: 
+Starting at line 2798 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_StreamSocket.cxx
+
+namespace osl_StreamSocket
+{
+
+    /** testing the methods:
+        inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet, 
+        oslProtocol Protocol = osl_Socket_ProtocolIp,
+        oslSocketType   Type = osl_Socket_TypeStream);
+
+        inline StreamSocket( const StreamSocket & );
+
+        inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire );
+
+        inline StreamSocket( oslSocket Socket );
+    */
+
+    class ctors : public CppUnit::TestFixture
+    {
+    public:
+        oslSocket sHandle;
+        // initialization
+        void setUp( )
+            {
+                sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+            }
+
+        void tearDown( )
+            {
+                sHandle = NULL;
+            }
+
+    
+        void ctors_none()
+            {
+                /// Socket constructor.
+                ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+    
+                CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the stream socket was created successfully.", 
+                                        osl_Socket_TypeStream ==  ssSocket.getType( ) );
+            }
+    
+        void ctors_acquire()
+            {
+                /// Socket constructor.
+                ::osl::StreamSocket ssSocket( sHandle );
+    
+                CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully", 
+                                        osl_Socket_TypeStream == ssSocket.getType( ) );
+            }
+
+        void ctors_no_acquire()
+            {
+                /// Socket constructor.
+                ::osl::StreamSocket ssSocket( sHandle, SAL_NO_ACQUIRE );
+    
+                CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully", 
+                                       osl_Socket_TypeStream == ssSocket.getType( ) );
+            }
+        
+        void ctors_copy_ctor()
+            {
+                /// Socket constructor.
+                ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+                /// Socket copy constructor.
+                ::osl::StreamSocket copySocket( ssSocket );
+    
+                CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor", 
+                                       osl_Socket_TypeStream == copySocket.getType( ) );
+            }
+        
+        CPPUNIT_TEST_SUITE( ctors );
+        CPPUNIT_TEST( ctors_none );
+        CPPUNIT_TEST( ctors_acquire );
+        CPPUNIT_TEST( ctors_no_acquire );
+        CPPUNIT_TEST( ctors_copy_ctor );
+        CPPUNIT_TEST_SUITE_END();
+        
+    }; // class ctors
+    
+    class send_recv: public CppUnit::TestFixture
+    {
+    public:
+        // initialization
+        void setUp( )
+            {
+            }
+
+        void tearDown( )
+            {
+        
+            }
+        
+        void send_recv1()
+            {
+=====================================================================
+Found a 32 line (232 tokens) duplication in the following files: 
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/accelerators/acceleratorexecute.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/acceleratorexecute.cxx
+
+    return bRet;
+}
+
+//-----------------------------------------------
+css::awt::KeyEvent AcceleratorExecute::st_VCLKey2AWTKey(const KeyCode& aVCLKey)
+{
+    css::awt::KeyEvent aAWTKey;
+    aAWTKey.Modifiers = 0;
+    aAWTKey.KeyCode   = (sal_Int16)aVCLKey.GetCode();
+    
+	if (aVCLKey.IsShift())
+        aAWTKey.Modifiers |= css::awt::KeyModifier::SHIFT; 
+	if (aVCLKey.IsMod1())
+        aAWTKey.Modifiers |= css::awt::KeyModifier::MOD1; 
+	if (aVCLKey.IsMod2())
+        aAWTKey.Modifiers |= css::awt::KeyModifier::MOD2;
+    
+    return aAWTKey;    
+}
+
+//-----------------------------------------------
+KeyCode AcceleratorExecute::st_AWTKey2VCLKey(const css::awt::KeyEvent& aAWTKey)
+{
+    sal_Bool bShift = ((aAWTKey.Modifiers & css::awt::KeyModifier::SHIFT) == css::awt::KeyModifier::SHIFT );
+    sal_Bool bMod1  = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD1 ) == css::awt::KeyModifier::MOD1  );
+    sal_Bool bMod2  = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD2 ) == css::awt::KeyModifier::MOD2  );
+    USHORT   nKey   = (USHORT)aAWTKey.KeyCode;
+    
+    return KeyCode(nKey, bShift, bMod1, bMod2);
+}
+//-----------------------------------------------
+::rtl::OUString AcceleratorExecute::findCommand(const css::awt::KeyEvent& aKey)
+=====================================================================
+Found a 8 line (231 tokens) duplication in the following files: 
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1449 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f70 - 2f7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f80 - 2f8f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f90 - 2f9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fa0 - 2faf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fb0 - 2fbf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fc0 - 2fcf
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fd0 - 2fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fe0 - 2fef
+=====================================================================
+Found a 9 line (231 tokens) duplication in the following files: 
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17,17,17,17,17,17,17,17,17,17,17,17, 0, 0, 0,// 0fb0 - 0fbf
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1000 - 100f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1010 - 101f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,17,// 1020 - 102f
+=====================================================================
+Found a 9 line (231 tokens) duplication in the following files: 
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1217 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10d0 - 10df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10e0 - 10ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10f0 - 10ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1600 - 160f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1610 - 161f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1630 - 163f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+=====================================================================
+Found a 8 line (231 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1242 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 10 line (231 tokens) duplication in the following files: 
+Starting at line 1032 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,17,17, 0, 0,// 0cc0 - 0ccf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cd0 - 0cdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ce0 - 0cef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cf0 - 0cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d00 - 0d0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d10 - 0d1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d20 - 0d2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d30 - 0d3f
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+=====================================================================
+Found a 10 line (231 tokens) duplication in the following files: 
+Starting at line 1018 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0bc0 - 0bcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bd0 - 0bdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0be0 - 0bef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bf0 - 0bff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c10 - 0c1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c20 - 0c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,// 0c30 - 0c3f
+    17, 0, 0, 0, 0, 0,17,17,17, 0,17,17,17,17, 0, 0,// 0c40 - 0c4f
+=====================================================================
+Found a 37 line (231 tokens) duplication in the following files: 
+Starting at line 746 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 831 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+                             OUString::valueOf( sal_Int32( nWidth )) );
+    }
+
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARITEM )), xList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARITEM )) );
+}
+
+void OWriteToolBoxDocumentHandler::WriteToolBoxSpace() throw
+( SAXException, RuntimeException )
+{
+    m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSPACE )), m_xEmptyList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSPACE )) );
+}
+
+void OWriteToolBoxDocumentHandler::WriteToolBoxBreak() throw
+( SAXException, RuntimeException )
+{
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARBREAK )), m_xEmptyList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARBREAK )) );
+}
+
+void OWriteToolBoxDocumentHandler::WriteToolBoxSeparator() throw
+( SAXException, RuntimeException )
+{
+    m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSEPARATOR )), m_xEmptyList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_TOOLBARSEPARATOR )) );
+}
+
+} // namespace framework
+=====================================================================
+Found a 10 line (231 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,17,17, 0, 0,// 0cc0 - 0ccf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cd0 - 0cdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ce0 - 0cef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cf0 - 0cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d00 - 0d0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d10 - 0d1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d20 - 0d2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d30 - 0d3f
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+=====================================================================
+Found a 64 line (231 tokens) duplication in the following files: 
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::doesMaxRowSizeIncludeBlobs(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithAddColumn(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithDropColumn(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxIndexLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsNonNullableColumns(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getCatalogTerm(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aVal;
+=====================================================================
+Found a 60 line (231 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+using namespace ::std;
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::__cxxabiv1;
+
+
+namespace CPPU_CURRENT_NAMESPACE
+{
+
+void dummy_can_throw_anything( char const * )
+{
+}
+
+//==================================================================================================
+static OUString toUNOname( char const * p ) SAL_THROW( () )
+{
+#if OSL_DEBUG_LEVEL > 1
+    char const * start = p;
+#endif
+
+    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
+
+	OUStringBuffer buf( 64 );
+    OSL_ASSERT( 'N' == *p );
+    ++p; // skip N
+
+    while ('E' != *p)
+    {
+        // read chars count
+        long n = (*p++ - '0');
+        while ('0' <= *p && '9' >= *p)
+        {
+            n *= 10;
+            n += (*p++ - '0');
+        }
+        buf.appendAscii( p, n );
+        p += n;
+        if ('E' != *p)
+            buf.append( (sal_Unicode)'.' );
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString ret( buf.makeStringAndClear() );
+    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
+    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
+    return ret;
+#else
+    return buf.makeStringAndClear();
+#endif
+}
+
+//==================================================================================================
+class RTTI
+{
+    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
+
+    Mutex m_mutex;
+	t_rtti_map m_rttis;
+    t_rtti_map m_generatedRttis;
+=====================================================================
+Found a 31 line (230 tokens) duplication in the following files: 
+Starting at line 636 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 694 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 802 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readTimeFieldModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+    
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":readonly") ) );
+    readBoolAttr( OUSTR("HideInactiveSelection"),
+                  OUSTR(XMLNS_DIALOGS_PREFIX ":hide-inactive-selection") );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":strict-format") ) );
+=====================================================================
+Found a 32 line (230 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
+Starting at line 1287 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/XMLSectionExport.cxx
+
+	{ XML_BIBLIOGRAPHY_TYPE,    BibliographyDataField::BIBILIOGRAPHIC_TYPE },
+	{ XML_BOOKTITLE,			BibliographyDataField::BOOKTITLE },
+	{ XML_CHAPTER,				BibliographyDataField::CHAPTER },
+	{ XML_CUSTOM1,				BibliographyDataField::CUSTOM1 },
+	{ XML_CUSTOM2,				BibliographyDataField::CUSTOM2 },
+	{ XML_CUSTOM3,				BibliographyDataField::CUSTOM3 },
+	{ XML_CUSTOM4,				BibliographyDataField::CUSTOM4 },
+	{ XML_CUSTOM5,				BibliographyDataField::CUSTOM5 },
+	{ XML_EDITION,				BibliographyDataField::EDITION },
+	{ XML_EDITOR,				BibliographyDataField::EDITOR },
+	{ XML_HOWPUBLISHED,		    BibliographyDataField::HOWPUBLISHED },
+	{ XML_IDENTIFIER,			BibliographyDataField::IDENTIFIER },
+	{ XML_INSTITUTION,			BibliographyDataField::INSTITUTION },
+	{ XML_ISBN,				    BibliographyDataField::ISBN },
+	{ XML_JOURNAL,				BibliographyDataField::JOURNAL },
+	{ XML_MONTH,				BibliographyDataField::MONTH },
+	{ XML_NOTE,				    BibliographyDataField::NOTE },
+	{ XML_NUMBER,				BibliographyDataField::NUMBER },
+	{ XML_ORGANIZATIONS,		BibliographyDataField::ORGANIZATIONS },
+	{ XML_PAGES,				BibliographyDataField::PAGES },
+	{ XML_PUBLISHER,			BibliographyDataField::PUBLISHER },
+	{ XML_REPORT_TYPE,			BibliographyDataField::REPORT_TYPE },
+	{ XML_SCHOOL,				BibliographyDataField::SCHOOL },
+    { XML_SERIES,				BibliographyDataField::SERIES },
+	{ XML_TITLE,				BibliographyDataField::TITLE },
+	{ XML_URL,					BibliographyDataField::URL },
+	{ XML_VOLUME,				BibliographyDataField::VOLUME },
+	{ XML_YEAR,				    BibliographyDataField::YEAR },
+	{ XML_TOKEN_INVALID, 0 }
+};
+
+void XMLSectionExport::ExportIndexTemplateElement(
+=====================================================================
+Found a 43 line (230 tokens) duplication in the following files: 
+Starting at line 1066 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                ContentProvider* pProvider,
+                const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+			{
+                xRow->appendString ( rProp, rData.getContentType() );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+			{
+                xRow->appendString ( rProp, rData.getTitle() );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) )
+			{
+                xRow->appendBoolean( rProp, rData.getIsDocument() );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) )
+			{
+                xRow->appendBoolean( rProp, rData.getIsFolder() );
+			}
+            else if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "Storage" ) ) )
+=====================================================================
+Found a 32 line (230 tokens) duplication in the following files: 
+Starting at line 991 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+
+                			aSize = OutputDevice::LogicToLogic( Size(14100, 10000), MAP_100TH_MM, aMapUnit );
+                			aSz.Width = aSize.Width();
+                			aSz.Height = aSize.Height();
+                			xObj->setVisualAreaSize( aObjDesc.mnViewAspect, aSz );
+            			}
+
+            			aSize = OutputDevice::LogicToLogic( aSize, aMapUnit, MAP_100TH_MM );
+					}
+
+            		Size aMaxSize( mpDoc->GetMaxObjSize() );
+
+            		maDropPos.X() -= Min( aSize.Width(), aMaxSize.Width() ) >> 1;
+            		maDropPos.Y() -= Min( aSize.Height(), aMaxSize.Height() ) >> 1;
+
+            		Rectangle       aRect( maDropPos, aSize );
+            		SdrOle2Obj*     pObj = new SdrOle2Obj( aObjRef, aName, aRect );
+            		SdrPageView*    pPV = GetSdrPageView();
+            		ULONG           nOptions = SDRINSERT_SETDEFLAYER;
+
+            		if (mpViewSh!=NULL)
+            		{
+                		OSL_ASSERT (mpViewSh->GetViewShell()!=NULL);
+                		SfxInPlaceClient* pIpClient
+                    		= mpViewSh->GetViewShell()->GetIPClient();
+                		if (pIpClient!=NULL && pIpClient->IsObjectInPlaceActive())
+                    		nOptions |= SDRINSERT_DONTMARK;
+            		}
+
+            		InsertObjectAtView( pObj, *pPV, nOptions );
+
+            		if( pImageMap )
+                		pObj->InsertUserData( new SdIMapInfo( *pImageMap ) );
+=====================================================================
+Found a 52 line (230 tokens) duplication in the following files: 
+Starting at line 694 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fudraw.cxx
+Starting at line 674 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/graphctl.cxx
+
+		{
+			const SdrHdlList& rHdlList = pView->GetHdlList();
+			SdrHdl* pHdl = rHdlList.GetFocusHdl();
+
+			if(pHdl)
+			{
+				if(pHdl->GetKind() == HDL_POLY)
+				{
+					// rescue ID of point with focus
+					sal_uInt32 nPol(pHdl->GetPolyNum());
+					sal_uInt32 nPnt(pHdl->GetPointNum());
+
+					if(pView->IsPointMarked(*pHdl))
+					{
+						if(rKEvt.GetKeyCode().IsShift())
+						{
+							pView->UnmarkPoint(*pHdl);
+						}
+					}
+					else
+					{
+						if(!rKEvt.GetKeyCode().IsShift())
+						{
+							pView->UnmarkAllPoints();
+						}
+
+						pView->MarkPoint(*pHdl);
+					}
+
+					if(0L == rHdlList.GetFocusHdl())
+					{
+						// restore point with focus
+						SdrHdl* pNewOne = 0L;
+
+						for(sal_uInt32 a(0); !pNewOne && a < rHdlList.GetHdlCount(); a++)
+						{
+							SdrHdl* pAct = rHdlList.GetHdl(a);
+
+							if(pAct
+								&& pAct->GetKind() == HDL_POLY
+								&& pAct->GetPolyNum() == nPol
+								&& pAct->GetPointNum() == nPnt)
+							{
+								pNewOne = pAct;
+							}
+						}
+
+						if(pNewOne)
+						{
+							((SdrHdlList&)rHdlList).SetFocusHdl(pNewOne);
+						}
+					}
+=====================================================================
+Found a 48 line (230 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+
+					if (av[i][2] != '\0')
+					{
+						OString tmp("'-C', please check");
+						if (i <= ac - 1)
+						{
+							tmp += " your input '" + OString(av[i]) + "'";
+						}
+
+						throw IllegalArgument(tmp);
+					}
+					
+					if (isValid("-L") || isValid("-CS"))
+					{
+						OString tmp("'-C' could not be combined with '-L' or '-CS' option");
+						throw IllegalArgument(tmp);
+					}
+					m_options["-C"] = OString("");
+					break;
+				case 'G':
+					if (av[i][2] == 'c')
+					{
+						if (av[i][3] != '\0')
+						{
+							OString tmp("'-Gc', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i]) + "'";
+							}
+
+							throw IllegalArgument(tmp);
+						}
+
+						m_options["-Gc"] = OString("");
+						break;
+					} else
+					if (av[i][2] != '\0')
+					{
+						OString tmp("'-G', please check");
+						if (i <= ac - 1)
+						{
+							tmp += " your input '" + OString(av[i]) + "'";
+						}
+
+						throw IllegalArgument(tmp);
+					}
+					
+					m_options["-G"] = OString("");
+					break;
+=====================================================================
+Found a 37 line (230 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/XMLRangeHelper.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/XMLRangeHelper.cxx
+
+OUStringBuffer lcl_getXMLStringForCell( const /*::chart::*/XMLRangeHelper::Cell & rCell )
+{
+    ::rtl::OUStringBuffer aBuffer;
+    if( rCell.empty())
+        return aBuffer;
+
+    sal_Int32 nCol = rCell.nColumn;
+    aBuffer.append( (sal_Unicode)'.' );
+    if( ! rCell.bRelativeColumn )
+        aBuffer.append( (sal_Unicode)'$' );
+
+    // get A, B, C, ..., AA, AB, ... representation of column number
+    if( nCol < 26 )
+        aBuffer.append( (sal_Unicode)('A' + nCol) );
+    else if( nCol < 702 )
+    {
+        aBuffer.append( (sal_Unicode)('A' + nCol / 26 - 1 ));
+        aBuffer.append( (sal_Unicode)('A' + nCol % 26) );
+    }
+    else    // works for nCol <= 18,278
+    {
+        aBuffer.append( (sal_Unicode)('A' + nCol / 702 - 1 ));
+        aBuffer.append( (sal_Unicode)('A' + (nCol % 702) / 26 ));
+        aBuffer.append( (sal_Unicode)('A' + nCol % 26) );
+    }
+
+    // write row number as number
+    if( ! rCell.bRelativeRow )
+        aBuffer.append( (sal_Unicode)'$' );
+    aBuffer.append( rCell.nRow + (sal_Int32)1 );
+
+    return aBuffer;
+}
+
+void lcl_getSingleCellAddressFromXMLString(
+    const ::rtl::OUString& rXMLString,
+    sal_Int32 nStartPos, sal_Int32 nEndPos,
+=====================================================================
+Found a 30 line (229 tokens) duplication in the following files: 
+Starting at line 2022 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+Starting at line 2187 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+				UInt32ToSVBT32( pAct->GetColor().GetColor(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestSize().Width(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetDestSize().Height(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcSize().Width(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSrcSize().Height(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+			}
+			break;
+
+			case META_EPS_ACTION :
+=====================================================================
+Found a 55 line (229 tokens) duplication in the following files: 
+Starting at line 747 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+Starting at line 1358 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+
+					pDepList2 = NULL;
+					break;
+			case 1:
+						aDirName = yytext;
+					break;
+			case 2:
+					if ( !strcmp( yytext, ":" ))
+					{
+						bPrjDep = TRUE;
+						bHardDep = FALSE;
+						i = 9;
+					}
+					else if ( !strcmp( yytext, "::" ))
+					{
+						bPrjDep = TRUE;
+						bHardDep = TRUE;
+						i = 9;
+					}
+					else
+					{
+						bPrjDep = FALSE;
+						bHardDep = FALSE;
+
+						aWhat = yytext;
+						if ( aWhat == "nmake" )
+							nCommandType = COMMAND_NMAKE;
+						else if ( aWhat == "get" )
+							nCommandType = COMMAND_GET;
+						else {
+							ULONG nOffset = aWhat.Copy( 3 ).ToInt32();
+							nCommandType = sal::static_int_cast< USHORT >(
+                                COMMAND_USER_START + nOffset - 1);
+						}
+					}
+					break;
+			case 3:
+					if ( !bPrjDep )
+					{
+						aWhat = yytext;
+						if ( aWhat == "-" )
+						{
+							aCommandPara = ByteString();
+						}
+						else
+							aCommandPara = aWhat;
+					}
+					break;
+			case 4:
+					if ( !bPrjDep )
+					{
+						aWhatOS = yytext;
+						if ( aWhatOS.GetTokenCount( ',' ) > 1 ) {
+							sClientRestriction = aWhatOS.Copy( aWhatOS.GetToken( 0, ',' ).Len() + 1 );
+							aWhatOS = aWhatOS.GetToken( 0, ',' );
+						}
+=====================================================================
+Found a 38 line (229 tokens) duplication in the following files: 
+Starting at line 1173 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/glossary.cxx
+Starting at line 1221 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/glossary.cxx
+
+sal_Bool  SwGlTreeListBox::NotifyCopying(   SvLBoxEntry*  pTarget,
+									SvLBoxEntry*  pEntry,
+									SvLBoxEntry*& rpNewParent,
+									ULONG&        rNewChildPos
+								)
+{
+	pDragEntry = 0;
+	// 1. wird in verschiedene Gruppen verschoben?
+	// 2. darf in beiden Gruppen geschrieben werden?
+	if(!pTarget) //An den Anfang verschieben
+	{
+		pTarget = GetEntry(0);
+	}
+	SvLBoxEntry* pSrcParent = GetParent(pEntry);
+	SvLBoxEntry* pDestParent =
+		GetParent(pTarget) ? GetParent(pTarget) : pTarget;
+	sal_Bool bRet = sal_False;
+	if(pDestParent != pSrcParent)
+	{
+		SwGlossaryDlg* pDlg = (SwGlossaryDlg*)Window::GetParent();
+		SwWait aWait( *pDlg->pSh->GetView().GetDocShell(), sal_True );
+
+		GroupUserData* pGroupData = (GroupUserData*)pSrcParent->GetUserData();
+		String sSourceGroup(pGroupData->sGroupName);
+		sSourceGroup += GLOS_DELIM;
+		sSourceGroup += String::CreateFromInt32(pGroupData->nPathIdx);
+
+		pDlg->pGlossaryHdl->SetCurGroup(sSourceGroup);
+		String sTitle(GetEntryText(pEntry));
+		String sShortName(*(String*)pEntry->GetUserData());
+
+		GroupUserData* pDestData = (GroupUserData*)pDestParent->GetUserData();
+		String sDestName = pDestData->sGroupName;
+		sDestName += GLOS_DELIM;
+		sDestName += String::CreateFromInt32(pDestData->nPathIdx);
+
+		bRet = pDlg->pGlossaryHdl->CopyOrMove( sSourceGroup,  sShortName,
+						sDestName, sTitle, sal_False );
+=====================================================================
+Found a 57 line (229 tokens) duplication in the following files: 
+Starting at line 3164 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3331 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                            if (IsEightPlus(GetFIBVersion()))
+                            {
+                                nFcStart =
+                                    WW8PLCFx_PCD::TransformPieceAddress(
+                                    nFcStart,bIsUnicode );
+                            }
+
+                            nLimitFC = nFcStart + (nCpEnd - nCpStart) *
+                                (bIsUnicode ? 2 : 1);
+
+                            //if it doesn't exist, skip it
+                            if (!SeekPos(nCpStart))
+                                continue;
+
+                            WW8_FC nOne,nSmallest;
+                            p->pMemPos = WW8PLCFx_Fc_FKP::GetSprmsAndPos(nOne,
+                                nSmallest, p->nSprmsLen);
+
+                            if (nSmallest <= nLimitFC)
+                            {
+                                p->nEndPos = nCpEnd -
+                                    (nLimitFC-nSmallest) / (bIsUnicode ? 2 : 1);
+                                break;
+                            }
+                        }
+                    }
+                }
+                pPieceIter->SetIdx( nOldPos );
+            }
+            else
+                pPcd->AktPieceFc2Cp( p->nStartPos, p->nEndPos,&rSBase );
+        }
+        else
+        {
+            p->nStartPos = nAttrStart;
+            p->nEndPos = nAttrEnd;
+            p->bRealLineEnd = bLineEnd;
+        }
+    }
+    else        // KEINE Piece-Table !!!
+    {
+        p->nStartPos = rSBase.WW8Fc2Cp( p->nStartPos );
+        p->nEndPos   = rSBase.WW8Fc2Cp( p->nEndPos );
+        p->bRealLineEnd = ePLCF == PAP;
+    }
+}
+
+WW8PLCFx& WW8PLCFx_Cp_FKP::operator ++( int )
+{
+    WW8PLCFx_Fc_FKP::operator ++( 0 );
+    // !pPcd: Notbremse
+    if ( !bComplex || !pPcd )
+        return *this;
+
+    if( GetPCDIdx() >= GetPCDIMax() )           // End of PLCF
+    {
+        nAttrStart = nAttrEnd = WW8_CP_MAX;
+=====================================================================
+Found a 36 line (229 tokens) duplication in the following files: 
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 798 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+		for ( USHORT i = 0; i < pImageItemList->Count(); i++ )
+			WriteImage( (*pImageItemList)[i] );
+	}
+
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_IMAGES )) );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+}
+
+void OWriteImagesDocumentHandler::WriteImage( const ImageItemDescriptor* pImage ) throw
+( SAXException, RuntimeException )
+{
+	AttributeListImpl*			pList = new AttributeListImpl;
+	Reference< XAttributeList > xList( (XAttributeList *) pList , UNO_QUERY );
+
+	pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_BITMAPINDEX )),
+						 m_aAttributeType,
+						 OUString::valueOf( (sal_Int32)pImage->nIndex ) );
+
+	pList->addAttribute( m_aXMLImageNS + OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_COMMAND )),
+						 m_aAttributeType,
+						 pImage->aCommandURL );
+
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_ENTRY )), xList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_ENTRY )) );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+}
+
+void OWriteImagesDocumentHandler::WriteExternalImageList( const ExternalImageItemListDescriptor* pExternalImageList ) throw
+( SAXException, RuntimeException )
+{
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_EXTERNALIMAGES )), m_xEmptyList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	for ( USHORT i = 0; i < pExternalImageList->Count(); i++ )
+=====================================================================
+Found a 36 line (229 tokens) duplication in the following files: 
+Starting at line 1287 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/app/AppDetailPageHelper.cxx
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/gallery2/galctrl.cxx
+
+BOOL GalleryPreview::ImplGetGraphicCenterRect( const Graphic& rGraphic, Rectangle& rResultRect ) const
+{
+	const Size	aWinSize( GetOutputSizePixel() );
+	Size		aNewSize( LogicToPixel( rGraphic.GetPrefSize(), rGraphic.GetPrefMapMode() ) );
+	BOOL		bRet = FALSE;
+
+	if( aNewSize.Width() && aNewSize.Height() )
+	{
+		// scale to fit window
+		const double fGrfWH = (double) aNewSize.Width() / aNewSize.Height();
+		const double fWinWH = (double) aWinSize.Width() / aWinSize.Height();
+
+		if ( fGrfWH < fWinWH )
+		{
+			aNewSize.Width() = (long) ( aWinSize.Height() * fGrfWH );
+			aNewSize.Height()= aWinSize.Height();
+		}
+		else
+		{
+			aNewSize.Width() = aWinSize.Width();
+			aNewSize.Height()= (long) ( aWinSize.Width() / fGrfWH);
+		}
+
+		const Point aNewPos( ( aWinSize.Width()  - aNewSize.Width() ) >> 1,
+							 ( aWinSize.Height() - aNewSize.Height() ) >> 1 );
+
+		rResultRect = Rectangle( aNewPos, aNewSize );
+		bRet = TRUE;
+	}
+
+	return bRet;
+}
+
+// ------------------------------------------------------------------------
+
+void GalleryPreview::Paint( const Rectangle& rRect )
+=====================================================================
+Found a 68 line (228 tokens) duplication in the following files: 
+Starting at line 38714 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 39019 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+     case OOXML_ELEMENT_wordprocessingml_tblW:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_jc:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Jc(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblCellSpacing:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblInd:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblBorders:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblBorders(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_shd:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Shd(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblLayout:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblLayoutType(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblCellMar:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblCellMar(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblLook:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_ShortHexNumber(*this));
+         }
+             break;
+     case OOXML_TOKENS_END:
+         break;
+     default:
+         pResult = elementFromRefs(nToken);
+              break;
+     }
+
+    if (pResult.get() != NULL)
+        pResult->setToken(nToken);
+
+    return pResult;
+}
+     
+bool OOXMLContext_wordprocessingml_CT_TblPrExBase::lcl_attribute(TokenEnum_t /*nToken*/, const rtl::OUString & /*rValue*/)
+=====================================================================
+Found a 27 line (228 tokens) duplication in the following files: 
+Starting at line 3065 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2757 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptLightningBoldVert[] =
+{
+	{ 8458,	0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 },
+	{ 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 },
+	{ 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] =
+{
+	{ { 8680, 7410 }, { 13970, 14190 } }
+};
+static const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] =
+{
+	{ 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 },
+	{ 16558, 12016 }, { 12831, 6120 }
+};
+static const mso_CustomShape msoLightningBold = 
+{
+	(SvxMSDffVertPair*)mso_sptLightningBoldVert, sizeof( mso_sptLightningBoldVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptLightningBoldTextRect, sizeof( mso_sptLightningBoldTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptLightningBoldGluePoints, sizeof( mso_sptLightningBoldGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 62 line (228 tokens) duplication in the following files: 
+Starting at line 2133 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 808 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP );
+			::osl::StreamSocket ssConnection;
+			/// launch server socket 
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+			asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
+
+			/// launch client socket 
+			csConnectorSocket.connect( saTargetSocketAddr, pTimeout );   /// connecting to server...
+
+			/// is receive ready?
+			sal_Bool bOK3 = asAcceptorSocket.isRecvReady( pTimeout );
+				
+			CPPUNIT_ASSERT_MESSAGE( "test for isRecvReady function: setup a connection and then check if it can transmit data.", 
+  									( sal_True == bOK3 ) );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( isRecvReady );
+		CPPUNIT_TEST( isRecvReady_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class isRecvReady
+
+
+	/** testing the methods:
+		inline sal_Bool	SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const;
+	*/
+	class isSendReady : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		TimeValue *pTimeout;
+		::osl::AcceptorSocket asAcceptorSocket;
+		::osl::ConnectorSocket csConnectorSocket;
+		
+		
+		// initialization
+		void setUp( )
+		{
+			pTimeout  = ( TimeValue* )malloc( sizeof( TimeValue ) );
+			pTimeout->Seconds = 3;
+			pTimeout->Nanosec = 0;
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			free( pTimeout );
+			sHandle = NULL;
+			asAcceptorSocket.close( );
+			csConnectorSocket.close( );
+		}
+
+	
+		void isSendReady_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT );
+=====================================================================
+Found a 25 line (228 tokens) duplication in the following files: 
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 1383 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+
+        virtual Reference< XPersistObject > SAL_CALL readObject( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+
+public: // XMarkableStream
+    virtual sal_Int32 SAL_CALL createMark(void)
+		throw (IOException, RuntimeException);
+	virtual void SAL_CALL deleteMark(sal_Int32 Mark)			throw (IOException, IllegalArgumentException, RuntimeException);
+	virtual void SAL_CALL jumpToMark(sal_Int32 nMark) 		throw (IOException, IllegalArgumentException, RuntimeException);
+	virtual void SAL_CALL jumpToFurthest(void) 			throw (IOException, RuntimeException);
+	virtual sal_Int32 SAL_CALL offsetToMark(sal_Int32 nMark)
+		throw (IOException, IllegalArgumentException, RuntimeException);
+
+public: //XTypeProvider
+	virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL
+	        getTypes(  ) throw(::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
+            getImplementationId(  ) throw(::com::sun::star::uno::RuntimeException);
+
+public: // XServiceInfo
+    OUString                     SAL_CALL getImplementationName() throw ();
+	Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw ();
+    sal_Bool                     SAL_CALL supportsService(const OUString& ServiceName) throw ();
+
+private:
+	void connectToMarkable();
+private:
+=====================================================================
+Found a 45 line (228 tokens) duplication in the following files: 
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+										)
+
+static sal_Bool implts_checkAndScaleGraphic( uno::Reference< XGraphic >& rOutGraphic, const uno::Reference< XGraphic >& rInGraphic, sal_Int16 nImageType )
+{
+    static Size   aNormSize( IMAGE_SIZE_NORMAL, IMAGE_SIZE_NORMAL );
+    static Size   aLargeSize( IMAGE_SIZE_LARGE, IMAGE_SIZE_LARGE );
+
+    if ( !rInGraphic.is() )
+    {
+        rOutGraphic = Image().GetXGraphic();
+        return sal_False;
+    }
+
+    // Check size and scale it
+    Image  aImage( rInGraphic );
+    Size   aSize = aImage.GetSizePixel();
+    bool   bMustScale( false );
+
+    if (( nImageType == ImageType_Color_Large ) ||
+        ( nImageType == ImageType_HC_Large ))
+        bMustScale = ( aSize != aLargeSize );
+    else
+        bMustScale = ( aSize != aNormSize );
+
+    if ( bMustScale )
+    {
+        BitmapEx aBitmap = aImage.GetBitmapEx();
+        aBitmap.Scale( aNormSize );
+        aImage = Image( aBitmap );
+        rOutGraphic = aImage.GetXGraphic();
+    }
+    else
+        rOutGraphic = rInGraphic;
+    return sal_True;
+}
+
+static sal_Int16 implts_convertImageTypeToIndex( sal_Int16 nImageType )
+{
+    sal_Int16 nIndex( 0 );
+    if ( nImageType & ::com::sun::star::ui::ImageType::SIZE_LARGE )
+        nIndex += 1;
+    if ( nImageType & ::com::sun::star::ui::ImageType::COLOR_HIGHCONTRAST )
+        nIndex += 2;
+    return nIndex;
+}
+=====================================================================
+Found a 23 line (228 tokens) duplication in the following files: 
+Starting at line 1229 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1015 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+
+			case META_FLOATTRANSPARENT_ACTION:
+			{
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pAction;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+				}
+
+				nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+				if( nMoveX || nMoveY )
+					aTmpMtf.Move( nMoveX, nMoveY );
+=====================================================================
+Found a 19 line (228 tokens) duplication in the following files: 
+Starting at line 929 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 848 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+            }
+#endif
+        }
+
+#ifndef _SVG_USE_NATIVE_TEXTDECORATION
+		// write strikeout if neccessary
+		if( rFont.GetStrikeout() || rFont.GetUnderline() )
+		{
+			Polygon		aPoly( 4 );
+			const long	nLineHeight = Max( (long) FRound( aMetric.GetLineHeight() * 0.05 ), (long) 1 );
+
+			if( rFont.GetStrikeout() )
+			{
+				const long	nYLinePos = aBaseLinePos.Y() - FRound( aMetric.GetAscent() * 0.26 );
+
+				aPoly[ 0 ].X() = aBaseLinePos.X(); aPoly[ 0 ].Y() = nYLinePos - ( nLineHeight >> 1 );
+				aPoly[ 1 ].X() = aBaseLinePos.X() + aNormSize.Width() - 1; aPoly[ 1 ].Y() = aPoly[ 0 ].Y();
+				aPoly[ 2 ].X() = aPoly[ 1 ].X(); aPoly[ 2 ].Y() = aPoly[ 0 ].Y() + nLineHeight - 1;
+				aPoly[ 3 ].X() = aPoly[ 0 ].X(); aPoly[ 3 ].Y() = aPoly[ 2 ].Y();
+=====================================================================
+Found a 5 line (227 tokens) duplication in the following files: 
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 550 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+/* 5 */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* 6 */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* 7 */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* 8 */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* 9 */ PA+PB+PC+PD+PE+PF+PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+=====================================================================
+Found a 57 line (227 tokens) duplication in the following files: 
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/linkdlg2.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/linkdlg.cxx
+
+			SvBaseLinkRef xLink = aLnkArr[ n ];
+
+			// suche erstmal im Array nach dem Eintrag
+			for( USHORT i = 0; i < pLinkMgr->GetLinks().Count(); ++i )
+				if( &xLink == *pLinkMgr->GetLinks()[ i ] )
+				{
+					xLink->SetUseCache( FALSE );
+					SetType( *xLink, aPosArr[ n ], xLink->GetUpdateMode() );
+					xLink->SetUseCache( TRUE );
+					break;
+				}
+		}
+
+		// falls jemand der Meinung ist, seine Links auszutauschen (SD)
+		SvLinkManager* pNewMgr = pLinkMgr;
+		pLinkMgr = 0;
+		SetManager( pNewMgr );
+
+
+		if( 0 == (pE = rListBox.GetEntry( aPosArr[ 0 ] )) ||
+			pE->GetUserData() != aLnkArr[ 0 ] )
+		{
+			// suche mal den Link
+			pE = rListBox.First();
+			while( pE )
+			{
+				if( pE->GetUserData() == aLnkArr[ 0 ] )
+					break;
+				pE = rListBox.Next( pE );
+			}
+
+			if( !pE )
+				pE = rListBox.FirstSelected();
+		}
+
+		if( pE )
+		{
+			SvLBoxEntry* pSelEntry = rListBox.FirstSelected();
+			if( pE != pSelEntry )
+				rListBox.Select( pSelEntry, FALSE );
+			rListBox.Select( pE );
+			rListBox.MakeVisible( pE );
+		}
+	}
+	return 0;
+}
+
+/*
+IMPL_LINK_INLINE_START( SvBaseLinksDlg, OpenSourceClickHdl, PushButton *, pPushButton )
+{
+	DBG_ASSERT( !this, "Open noch nicht impl." )
+	return 0;
+}
+IMPL_LINK_INLINE_END( SvBaseLinksDlg, OpenSourceClickHdl, PushButton *, pPushButton )
+*/
+
+IMPL_LINK( SvBaseLinksDlg, ChangeSourceClickHdl, PushButton *, pPushButton )
+=====================================================================
+Found a 39 line (227 tokens) duplication in the following files: 
+Starting at line 648 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/viewshe2.cxx
+Starting at line 699 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/viewshe2.cxx
+
+		pPage = GetDoc()->GetSdPage(i, ePageKind);
+
+		SdUndoAction* pUndo = new SdPageFormatUndoAction(GetDoc(), pPage,
+								pPage->GetSize(),
+								pPage->GetLftBorder(), pPage->GetRgtBorder(),
+								pPage->GetUppBorder(), pPage->GetLwrBorder(),
+								pPage->IsScaleObjects(),
+								pPage->GetOrientation(),
+								pPage->GetPaperBin(),
+								pPage->IsBackgroundFullSize(),
+								rNewSize,
+								nLeft, nRight,
+								nUpper, nLower,
+								bScaleAll,
+								eOrientation,
+								nPaperBin,
+								bBackgroundFullSize);
+		pUndoGroup->AddAction(pUndo);
+
+		if (rNewSize.Width() > 0 ||
+			nLeft  >= 0 || nRight >= 0 || nUpper >= 0 || nLower >= 0)
+		{
+			Rectangle aNewBorderRect(nLeft, nUpper, nRight, nLower);
+			pPage->ScaleObjects(rNewSize, aNewBorderRect, bScaleAll);
+
+			if (rNewSize.Width() > 0)
+				pPage->SetSize(rNewSize);
+		}
+
+		if( nLeft  >= 0 || nRight >= 0 || nUpper >= 0 || nLower >= 0 )
+		{
+			pPage->SetBorder(nLeft, nUpper, nRight, nLower);
+		}
+
+		pPage->SetOrientation(eOrientation);
+		pPage->SetPaperBin( nPaperBin );
+		pPage->SetBackgroundFullSize( bBackgroundFullSize );
+
+		if ( ePageKind == PK_STANDARD )
+=====================================================================
+Found a 23 line (227 tokens) duplication in the following files: 
+Starting at line 2517 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 1474 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/sfxbasecontroller.cxx
+
+void ImplInitMouseEvent( ::com::sun::star::awt::MouseEvent& rEvent, const MouseEvent& rEvt )
+{
+	rEvent.Modifiers = 0;
+	if ( rEvt.IsShift() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::SHIFT;
+	if ( rEvt.IsMod1() )
+	rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
+	if ( rEvt.IsMod2() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+
+	rEvent.Buttons = 0;
+	if ( rEvt.IsLeft() )
+		rEvent.Buttons |= ::com::sun::star::awt::MouseButton::LEFT;
+	if ( rEvt.IsRight() )
+		rEvent.Buttons |= ::com::sun::star::awt::MouseButton::RIGHT;
+	if ( rEvt.IsMiddle() )
+		rEvent.Buttons |= ::com::sun::star::awt::MouseButton::MIDDLE;
+
+	rEvent.X = rEvt.GetPosPixel().X();
+	rEvent.Y = rEvt.GetPosPixel().Y();
+	rEvent.ClickCount = rEvt.GetClicks();
+	rEvent.PopupTrigger = sal_False;
+}
+=====================================================================
+Found a 9 line (227 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* UnoParamValue */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, /* !"#$%&'()*+,-./*/
+=====================================================================
+Found a 61 line (227 tokens) duplication in the following files: 
+Starting at line 1287 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/digest.c
+Starting at line 1475 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/digest.c
+
+	if (!(pImpl->m_digest.m_algorithm == rtl_Digest_AlgorithmSHA1))
+		return rtl_Digest_E_Algorithm;
+
+	if (nDatLen == 0)
+		return rtl_Digest_E_None;
+
+	ctx = &(pImpl->m_context);
+
+	len = ctx->m_nL + (nDatLen << 3);
+	if (len < ctx->m_nL) ctx->m_nH += 1;
+	ctx->m_nH += (nDatLen >> 29);
+	ctx->m_nL  = len;
+
+	if (ctx->m_nDatLen)
+	{
+		sal_uInt8  *p = (sal_uInt8 *)(ctx->m_pData) + ctx->m_nDatLen;
+		sal_uInt32  n = DIGEST_CBLOCK_SHA - ctx->m_nDatLen;
+
+		if (nDatLen < n)
+		{
+			rtl_copyMemory (p, d, nDatLen);
+			ctx->m_nDatLen += nDatLen;
+
+			return rtl_Digest_E_None;
+		}
+
+		rtl_copyMemory (p, d, n);
+		d       += n;
+		nDatLen -= n;
+
+#ifndef OSL_BIGENDIAN
+		__rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_SHA);
+#endif /* OSL_BIGENDIAN */
+
+		__rtl_digest_updateSHA (ctx);
+		ctx->m_nDatLen = 0;
+	}
+
+	while (nDatLen >= DIGEST_CBLOCK_SHA)
+	{
+		rtl_copyMemory (ctx->m_pData, d, DIGEST_CBLOCK_SHA);
+		d       += DIGEST_CBLOCK_SHA;
+		nDatLen -= DIGEST_CBLOCK_SHA;
+
+#ifndef OSL_BIGENDIAN
+		__rtl_digest_swapLong (ctx->m_pData, DIGEST_LBLOCK_SHA);
+#endif /* OSL_BIGENDIAN */
+
+		__rtl_digest_updateSHA (ctx);
+	}
+
+	rtl_copyMemory (ctx->m_pData, d, nDatLen);
+	ctx->m_nDatLen = nDatLen;
+
+	return rtl_Digest_E_None;
+}
+
+/*
+ * rtl_digest_getSHA1.
+ */
+rtlDigestError SAL_CALL rtl_digest_getSHA1 (
+=====================================================================
+Found a 8 line (227 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1158 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 8 line (227 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10a0 - 10af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10b0 - 10bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10c0 - 10cf
+=====================================================================
+Found a 8 line (227 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1035 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 22 line (227 tokens) duplication in the following files: 
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+Starting at line 1016 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+
+			{
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pAction;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+				}
+
+				nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+				if( nMoveX || nMoveY )
+					aTmpMtf.Move( nMoveX, nMoveY );
+=====================================================================
+Found a 17 line (226 tokens) duplication in the following files: 
+Starting at line 1232 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+Starting at line 1296 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+
+        BOOL bPostIt=bSelMode;
+        if (!bPostIt) {
+            Point aPt(rMEvt.GetPosPixel());
+            if (pWin!=NULL) aPt=pWin->PixelToLogic(aPt);
+            else if (pTextEditWin!=NULL) aPt=pTextEditWin->PixelToLogic(aPt);
+            bPostIt=IsTextEditHit(aPt,nHitTolLog);
+        }
+        if (bPostIt) {
+            Point aPixPos(rMEvt.GetPosPixel());
+            Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
+            if (aPixPos.X()<aR.Left  ()) aPixPos.X()=aR.Left  ();
+            if (aPixPos.X()>aR.Right ()) aPixPos.X()=aR.Right ();
+            if (aPixPos.Y()<aR.Top   ()) aPixPos.Y()=aR.Top   ();
+            if (aPixPos.Y()>aR.Bottom()) aPixPos.Y()=aR.Bottom();
+            MouseEvent aMEvt(aPixPos,rMEvt.GetClicks(),rMEvt.GetMode(),
+                             rMEvt.GetButtons(),rMEvt.GetModifier());
+            if (pTextEditOutlinerView->MouseMove(aMEvt) && bSelMode) {
+=====================================================================
+Found a 38 line (226 tokens) duplication in the following files: 
+Starting at line 933 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+Starting at line 1001 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+
+			TENANTTYPE tType;
+			HRESULT hr = OleQueryCreateFromData( pDO );
+			if( S_OK == GetScode( hr ) )
+				tType=TENANTTYPE_EMBEDDEDOBJECTFROMDATA;
+			else if( OLE_S_STATIC == GetScode( hr ) )
+				tType=TENANTTYPE_STATIC;
+			else
+			{
+				pDO->Release();
+				return &xRet;
+			}
+			xRet = new SvOutPlaceObject();
+			xRet->DoInitNew( pIStorage );
+
+			xRet->pImpl->pSO_Cont = new CSO_Cont( 1, NULL, xRet );
+			xRet->pImpl->pSO_Cont->AddRef();
+			POINTL			ptl;
+			SIZEL			szl;
+			FORMATETC       fe;
+			SETDefFormatEtc(fe, 0, TYMED_NULL);
+			UINT uRet = xRet->pImpl->pSO_Cont->Create(tType, pDO, &fe, &ptl, &szl, pIStorage, NULL, 0 );
+
+			if (CREATE_FAILED==uRet)
+				xRet = SvOutPlaceObjectRef();
+			else
+			{
+				xRet->pImpl->pSO_Cont->Update();
+				xRet->pImpl->pSO_Cont->Invalidate();
+				//RECTL rcl;
+				//SETRECTL(rcl, 0, 0, szl.cx, szl.cy);
+				//xRet->pImpl->pSO_Cont->RectSet(&rcl, FALSE, TRUE);
+				xRet->SetVisAreaSize( Size( szl.cx, szl.cy ) );
+				WIN_BOOL fSetExtent;
+				xRet->pImpl->pSO_Cont->GetInfo( xRet->pImpl->dwAspect, fSetExtent );
+				xRet->pImpl->bSetExtent = fSetExtent;
+			}
+			pDO->Release();
+		}
+=====================================================================
+Found a 60 line (226 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/checksingleton.cxx
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/regcompare.cxx
+
+sal_Bool isFileUrl(const OString& fileName)
+{
+    if (fileName.indexOf("file://") == 0 )
+        return sal_True;
+    return sal_False;
+}
+
+OUString convertToFileUrl(const OString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return OStringToOUString(fileName, osl_getThreadTextEncoding());
+    }
+
+    OUString uUrlFileName;
+    OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding());
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None)
+        {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+
+#define U2S( s ) \
+	OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr()
+#define S2U( s ) \
+	OStringToOUString(s, RTL_TEXTENCODING_UTF8)
+
+struct LessString
+{
+	sal_Bool operator()(const OUString& str1, const OUString& str2) const
+	{
+		return (str1 < str2);
+	}
+};
+
+typedef ::std::set< OUString, LessString > StringSet;
+
+class Options
+{
+public:
+	Options()
+		: m_bFullCheck(sal_False)
+=====================================================================
+Found a 26 line (226 tokens) duplication in the following files: 
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngopt.cxx
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngopt.cxx
+
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	INT16 *pnVal = 0;
+	BOOL  *pbVal = 0;
+
+	switch( nWID )
+	{
+		case WID_IS_GERMAN_PRE_REFORM :		pbVal = &pData->bIsGermanPreReform;	break;
+		case WID_IS_USE_DICTIONARY_LIST :	pbVal = &pData->bIsUseDictionaryList;	break;
+		case WID_IS_IGNORE_CONTROL_CHARACTERS :	pbVal = &pData->bIsIgnoreControlCharacters;	break;
+		case WID_IS_HYPH_AUTO : 			pbVal = &pData->bIsHyphAuto;	break;
+		case WID_IS_HYPH_SPECIAL : 			pbVal = &pData->bIsHyphSpecial;	break;
+		case WID_IS_SPELL_AUTO : 			pbVal = &pData->bIsSpellAuto;	break;
+		case WID_IS_SPELL_HIDE : 			pbVal = &pData->bIsSpellHideMarkings;	break;
+		case WID_IS_SPELL_IN_ALL_LANGUAGES :pbVal = &pData->bIsSpellInAllLanguages;	break;
+		case WID_IS_SPELL_SPECIAL : 		pbVal = &pData->bIsSpellSpecial;	break;
+		case WID_IS_WRAP_REVERSE : 			pbVal = &pData->bIsSpellReverse;	break;
+		case WID_DEFAULT_LANGUAGE :			pnVal = &pData->nDefaultLanguage;	break;
+		case WID_IS_SPELL_CAPITALIZATION :	pbVal = &pData->bIsSpellCapitalization;		break;
+		case WID_IS_SPELL_WITH_DIGITS :		pbVal = &pData->bIsSpellWithDigits;	break;
+		case WID_IS_SPELL_UPPER_CASE :		pbVal = &pData->bIsSpellUpperCase;		break;
+		case WID_HYPH_MIN_LEADING :			pnVal = &pData->nHyphMinLeading;		break;
+		case WID_HYPH_MIN_TRAILING :		pnVal = &pData->nHyphMinTrailing;	break;
+		case WID_HYPH_MIN_WORD_LENGTH :		pnVal = &pData->nHyphMinWordLength;	break;
+		case WID_DEFAULT_LOCALE :
+		{
+=====================================================================
+Found a 43 line (226 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+    }
+    if (args)
+    {
+        Tokenrow *tap;
+
+        tap = normtokenrow(args);
+        dofree(args->bp);
+        args = tap;
+    }
+    np->ap = args;
+    np->vp = def;
+    np->flag |= ISDEFINED;
+
+	/* build location string of macro definition */
+    for (cp = location, s = cursource; s; s = s->next)
+        if (*s->filename)
+		{
+			if (cp != location)
+				*cp++ = ' ';
+            sprintf((char *)cp, "%s:%d", s->filename, s->line);
+			cp += strlen((char *)cp);
+		}
+
+	np->loc = newstring(location, strlen((char *)location), 0);
+
+	if (Mflag)
+	{
+		if (np->ap)
+			error(INFO, "Macro definition of %s(%r) [%r]", np->name, np->ap, np->vp);
+		else
+			error(INFO, "Macro definition of %s [%r]", np->name, np->vp);
+	}
+}
+
+/*
+ * Definition received via -D or -U
+ */
+void
+    doadefine(Tokenrow * trp, int type)
+{
+    Nlist *np;
+	static uchar onestr[2] = "1";
+    static Token onetoken[1] = {{NUMBER, 0, 0, 1, onestr, 0}};
+=====================================================================
+Found a 48 line (226 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'n':
+=====================================================================
+Found a 15 line (226 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/testcomp.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/performance/ubobject.cxx
+
+    virtual void SAL_CALL sync() throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual ComplexTypes SAL_CALL complex_in( const ::com::sun::star::test::performance::ComplexTypes& aVal ) throw(::com::sun::star::uno::RuntimeException)
+		{ return aVal; }
+    virtual ComplexTypes SAL_CALL complex_inout( ::com::sun::star::test::performance::ComplexTypes& aVal ) throw(::com::sun::star::uno::RuntimeException)
+		{ return aVal; }
+    virtual void SAL_CALL complex_oneway( const ::com::sun::star::test::performance::ComplexTypes& aVal ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual void SAL_CALL complex_noreturn( const ::com::sun::star::test::performance::ComplexTypes& aVal ) throw(::com::sun::star::uno::RuntimeException)
+		{}
+    virtual Reference< XPerformanceTest > SAL_CALL createObject() throw(::com::sun::star::uno::RuntimeException)
+		{ return new ServiceImpl(); }
+    virtual void SAL_CALL raiseRuntimeException(  ) throw(::com::sun::star::uno::RuntimeException)
+		{ throw _aDummyRE; }
+};
+=====================================================================
+Found a 48 line (226 tokens) duplication in the following files: 
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+    void * pReturnValue )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+	
+	// pCallStack: ret adr, [ret *], this, params
+    void * pThis;
+	if( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+        pThis = pCallStack[2];
+	}
+	else
+    {
+        pThis = pCallStack[1];
+    }
+    pThis = static_cast< char * >(pThis) - nVtableOffset;
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+            pThis);
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pReturnValue );
+=====================================================================
+Found a 54 line (225 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+	m_pImpl->m_bCountFinal = sal_True;
+
+	rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+	if ( xResultSet.is() )
+	{
+		// Callbacks follow!
+		aGuard.clear();
+
+		if ( nOldCount < m_pImpl->m_aResults.size() )
+			xResultSet->rowCountChanged(
+									nOldCount, m_pImpl->m_aResults.size() );
+
+		xResultSet->rowCountFinal();
+	}
+
+	return m_pImpl->m_aResults.size();
+}
+
+//=========================================================================
+// virtual
+sal_uInt32 DataSupplier::currentCount()
+{
+	return m_pImpl->m_aResults.size();
+}
+
+//=========================================================================
+// virtual
+sal_Bool DataSupplier::isCountFinal()
+{
+	return m_pImpl->m_bCountFinal;
+}
+
+//=========================================================================
+// virtual
+uno::Reference< sdbc::XRow > 
+DataSupplier::queryPropertyValues( sal_uInt32 nIndex  )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+		uno::Reference< sdbc::XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow;
+		if ( xRow.is() )
+		{
+			// Already cached.
+			return xRow;
+		}
+	}
+
+	if ( getResult( nIndex ) )
+	{
+		uno::Reference< sdbc::XRow > xRow = Content::getPropertyValues(
+									m_pImpl->m_xSMgr,
+									getResultSet()->getProperties(),
+=====================================================================
+Found a 63 line (225 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/cacher/cacheserv.cxx
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/core/ucbserv.cxx
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/sorter/sortmain.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_services.cxx
+
+using namespace rtl;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::registry;
+
+//=========================================================================
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const OUString & rImplementationName,
+   						   Sequence< OUString > const & rServiceNames )
+{
+	OUString aKeyName( OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
+
+	Reference< XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// Write info into registry.
+	//////////////////////////////////////////////////////////////////////
+
+	// @@@ Adjust namespace names.
+	writeInfo( pRegistryKey,
+=====================================================================
+Found a 56 line (225 tokens) duplication in the following files: 
+Starting at line 1460 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1505 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+            WW8_CP nCpStart, nCpEnd;
+            void* pData;
+            if( !pPieceIter->Get( nCpStart, nCpEnd, pData ) )
+            {   // ausserhalb PLCFfpcd ?
+                ASSERT( !this, "PLCFpcd-WW8Fc2Cp() ging schief" );
+                break;
+            }
+            INT32 nFcStart  = SVBT32ToUInt32( ((WW8_PCD*)pData)->fc );
+            if( 8 <= pWw8Fib->nVersion )
+                nFcStart = WW8PLCFx_PCD::TransformPieceAddress( nFcStart,
+                                                                bIsUnicode );
+            INT32 nLen = (nCpEnd - nCpStart) * (bIsUnicode ? 2 : 1);
+
+            /*
+            If this cp is inside this piece, or its the last piece and we are
+            on the very last cp of that piece
+            */
+            if (nFcPos >= nFcStart)
+            {
+                // found
+                WW8_CP nTempCp =
+                    nCpStart + ((nFcPos - nFcStart) / (bIsUnicode ? 2 : 1));
+                if (nFcPos < nFcStart + nLen)
+                {
+                    pPieceIter->SetIdx( nOldPos );
+                    return nTempCp;
+                }
+                else if (nFcPos == nFcStart + nLen)
+                {
+                    //Keep this cp as its on a piece boundary because we might
+                    //need it if tests fail
+                    nFallBackCpEnd = nTempCp;
+                }
+            }
+        }
+        // not found
+        pPieceIter->SetIdx( nOldPos );      // not found
+        /*
+        If it was not found, then this is because it has fallen between two
+        stools, i.e. either it is the last cp/fc of the last piece, or it is
+        the last cp/fc of a disjoint piece.
+        */
+        return nFallBackCpEnd;
+    }
+    // No complex file
+    if (pWw8Fib->fExtChar)
+        bIsUnicode=true;
+    return ((nFcPos - pWw8Fib->fcMin) / (bIsUnicode ? 2 : 1));
+}
+
+WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP nCpPos, bool* pIsUnicode,
+    WW8_CP* pNextPieceCp, bool* pTestFlag) const
+{
+    if( pTestFlag )
+        *pTestFlag = true;
+    if( WW8_CP_MAX == nCpPos )
+=====================================================================
+Found a 51 line (225 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/postuninstall.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/registerextensions.cxx
+
+static std::_tstring GetMsiProperty( MSIHANDLE handle, const std::_tstring& sProperty )
+{
+    std::_tstring result;
+    TCHAR szDummy[1] = TEXT("");
+    DWORD nChars = 0;
+
+    if ( MsiGetProperty( handle, sProperty.c_str(), szDummy, &nChars ) == ERROR_MORE_DATA )
+    {
+        DWORD nBytes = ++nChars * sizeof(TCHAR);
+        LPTSTR buffer = reinterpret_cast<LPTSTR>(_alloca(nBytes));
+        ZeroMemory( buffer, nBytes );
+        MsiGetProperty(handle, sProperty.c_str(), buffer, &nChars);
+        result = buffer;
+    }
+
+    return result;
+}
+
+static BOOL ExecuteCommand( LPCTSTR lpCommand, BOOL bSync )
+{
+    BOOL                fSuccess = FALSE;
+    STARTUPINFO         si;
+    PROCESS_INFORMATION pi;
+
+    ZeroMemory( &si, sizeof(si) );
+    si.cb = sizeof(si);
+
+    fSuccess = CreateProcess(
+        NULL,
+        (LPTSTR)lpCommand,
+        NULL,
+        NULL,
+        FALSE,
+        0,
+        NULL,
+        NULL,
+        &si,
+        &pi
+        );
+
+    if ( fSuccess )
+    {
+        if ( bSync )
+            WaitForSingleObject( pi.hProcess, INFINITE );
+
+        CloseHandle( pi.hProcess );
+        CloseHandle( pi.hThread );
+    }
+
+    return fSuccess;
+}
+=====================================================================
+Found a 23 line (225 tokens) duplication in the following files: 
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/fielduno.cxx
+Starting at line 1170 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/fielduno.cxx
+
+uno::Sequence<uno::Type> SAL_CALL ScHeaderFieldObj::getTypes() throw(uno::RuntimeException)
+{
+	static uno::Sequence<uno::Type> aTypes;
+	if ( aTypes.getLength() == 0 )
+	{
+		uno::Sequence<uno::Type> aParentTypes(OComponentHelper::getTypes());
+		long nParentLen = aParentTypes.getLength();
+		const uno::Type* pParentPtr = aParentTypes.getConstArray();
+
+		aTypes.realloc( nParentLen + 4 );
+		uno::Type* pPtr = aTypes.getArray();
+		pPtr[nParentLen + 0] = getCppuType((const uno::Reference<text::XTextField>*)0);
+		pPtr[nParentLen + 1] = getCppuType((const uno::Reference<beans::XPropertySet>*)0);
+		pPtr[nParentLen + 2] = getCppuType((const uno::Reference<lang::XUnoTunnel>*)0);
+		pPtr[nParentLen + 3] = getCppuType((const uno::Reference<lang::XServiceInfo>*)0);
+
+		for (long i=0; i<nParentLen; i++)
+			pPtr[i] = pParentPtr[i];				// parent types first
+	}
+	return aTypes;
+}
+
+uno::Sequence<sal_Int8> SAL_CALL ScHeaderFieldObj::getImplementationId()
+=====================================================================
+Found a 58 line (225 tokens) duplication in the following files: 
+Starting at line 436 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+
+					DoMulArgs( ocSum, 1 );
+			}
+				break;
+			case 0x1C: // Error Value							[314 266]
+			{
+				aIn >> nByte;
+				DefTokenId			eOc;
+				switch( nByte )
+				{
+                    case EXC_ERR_NULL:
+                    case EXC_ERR_DIV0:
+                    case EXC_ERR_VALUE:
+                    case EXC_ERR_REF:
+                    case EXC_ERR_NAME:
+                    case EXC_ERR_NUM:   eOc = ocStop;       break;
+                    case EXC_ERR_NA:    eOc = ocNotAvail;   break;
+                    default:            eOc = ocNoName;
+				}
+				aPool << eOc;
+				if( eOc != ocStop )
+					aPool << ocOpen << ocClose;
+
+				aPool >> aStack;
+			}
+				break;
+			case 0x1D: // Boolean								[315 266]
+				aIn >> nByte;
+				if( nByte == 0 )
+					aPool << ocFalse << ocOpen << ocClose;
+				else
+					aPool << ocTrue << ocOpen << ocClose;
+				aPool >> aStack;
+				break;
+			case 0x1E: // Integer								[315 266]
+				aIn >> nUINT16;
+				aStack << aPool.Store( ( double ) nUINT16 );
+				break;
+			case 0x1F: // Number								[315 266]
+				aIn >> fDouble;
+				aStack << aPool.Store( fDouble );
+				break;
+			case 0x40:
+			case 0x60:
+			case 0x20: // Array Constant						[317 268]
+                if( bAllowArrays )
+                {
+                    aIn >> nByte >> nUINT16;
+                    aIn.Ignore( 4 );
+
+                    SCSIZE nC = nByte + 1;
+                    SCSIZE nR = nUINT16 + 1;
+
+                    aStack << aPool.StoreMatrix( nC, nR );
+                    aExtensions.push_back( EXTENSION_ARRAY );
+                }
+                else
+                {
+                    aIn.Ignore( 7 );
+=====================================================================
+Found a 31 line (225 tokens) duplication in the following files: 
+Starting at line 3706 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3863 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	double fSumSqrDeltaX    = 0.0; // sum of (ValX-MeanX)^2
+	for (SCSIZE i = 0; i < nC1; i++)
+    {
+		for (SCSIZE j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				double fValX = pMat1->GetDouble(i,j);
+				double fValY = pMat2->GetDouble(i,j);
+				fSumX += fValX;
+				fSumY += fValY;
+				fCount++;
+			}
+		}
+    }
+	if (fCount < 1.0)
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+                    fSumSqrDeltaX    += (fValX - fMeanX) * (fValX - fMeanX);
+=====================================================================
+Found a 75 line (225 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/spelldta.cxx
+Starting at line 294 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldta.cxx
+
+    nLanguage   (nLang)
+{
+}
+
+
+SpellAlternatives::~SpellAlternatives()
+{
+}
+
+
+OUString SAL_CALL SpellAlternatives::getWord()
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return aWord;
+}
+
+
+Locale SAL_CALL SpellAlternatives::getLocale()
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return CreateLocale( nLanguage );
+}
+
+
+sal_Int16 SAL_CALL SpellAlternatives::getFailureType()
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return nType;
+}
+
+
+sal_Int16 SAL_CALL SpellAlternatives::getAlternativesCount()
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return (INT16) aAlt.getLength();
+}
+
+
+Sequence< OUString > SAL_CALL SpellAlternatives::getAlternatives()
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	return aAlt;
+}
+
+
+void SpellAlternatives::SetWordLanguage(const OUString &rWord, INT16 nLang)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	aWord = rWord;
+	nLanguage = nLang;
+}
+
+
+void SpellAlternatives::SetFailureType(INT16 nTypeP)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	nType = nTypeP;
+}
+
+
+void SpellAlternatives::SetAlternatives( const Sequence< OUString > &rAlt )
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	aAlt = rAlt;
+}
+
+
+///////////////////////////////////////////////////////////////////////////
+
+}	// namespace linguistic
+=====================================================================
+Found a 8 line (225 tokens) duplication in the following files: 
+Starting at line 1314 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1331 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2280 - 228f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2290 - 229f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22a0 - 22af
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22b0 - 22bf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22c0 - 22cf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22d0 - 22df
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22e0 - 22ef
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 22f0 - 22ff
+=====================================================================
+Found a 9 line (225 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1217 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10d0 - 10df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10e0 - 10ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10f0 - 10ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1600 - 160f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1610 - 161f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1630 - 163f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+=====================================================================
+Found a 9 line (225 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17,17,17,17,17,17,17,17,17,17,17,17, 0, 0, 0,// 0fb0 - 0fbf
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1000 - 100f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1010 - 101f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,17,// 1020 - 102f
+=====================================================================
+Found a 9 line (225 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0bc0 - 0bcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bd0 - 0bdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0be0 - 0bef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bf0 - 0bff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c10 - 0c1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c20 - 0c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,// 0c30 - 0c3f
+=====================================================================
+Found a 25 line (225 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CRowSetColumn.cxx
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CRowSetDataColumn.cxx
+
+		DECL_PROP1(DESCRIPTION,				::rtl::OUString,	READONLY);
+		DECL_PROP1(DISPLAYSIZE,				sal_Int32,			READONLY);
+		DECL_PROP2(NUMBERFORMAT,			sal_Int32,			BOUND,MAYBEVOID);
+		DECL_PROP2(HELPTEXT,			::rtl::OUString,	BOUND,MAYBEVOID);
+		DECL_PROP1_BOOL(HIDDEN,	 							BOUND);
+		DECL_PROP1_BOOL(ISAUTOINCREMENT,						READONLY);
+		DECL_PROP1_BOOL(ISCASESENSITIVE,						READONLY);
+		DECL_PROP1_BOOL(ISCURRENCY,								READONLY);
+		DECL_PROP1_BOOL(ISDEFINITELYWRITABLE,					READONLY);
+		DECL_PROP1(ISNULLABLE,				sal_Int32,			READONLY);
+		DECL_PROP1_BOOL(ISREADONLY,								READONLY);
+		DECL_PROP1_BOOL(ISROWVERSION,                           READONLY);
+		DECL_PROP1_BOOL(ISSEARCHABLE,							READONLY);
+		DECL_PROP1_BOOL(ISSIGNED,								READONLY);
+		DECL_PROP1_BOOL(ISWRITABLE,								READONLY);
+		DECL_PROP1(LABEL,					::rtl::OUString,	READONLY);
+		DECL_PROP1(NAME,					::rtl::OUString,	READONLY);
+		DECL_PROP1(PRECISION,				sal_Int32,			READONLY);
+		DECL_PROP2(RELATIVEPOSITION,	sal_Int32,			BOUND, MAYBEVOID);
+		DECL_PROP1(SCALE,					sal_Int32,			READONLY);
+		DECL_PROP1(SCHEMANAME,				::rtl::OUString,	READONLY);
+		DECL_PROP1(SERVICENAME,				::rtl::OUString,	READONLY);
+		DECL_PROP1(TABLENAME,				::rtl::OUString,	READONLY);
+		DECL_PROP1(TYPE,					sal_Int32,			READONLY);
+		DECL_PROP1(TYPENAME,				::rtl::OUString,	READONLY);
+=====================================================================
+Found a 24 line (224 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtfsl/RTFSLParser.cxx
+
+sal_Int32 SAL_CALL RTFSLParser::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+ 
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+			rtl::OUString arg=aArguments[0];
+
+			uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+			xFactory->createInstanceWithContext(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")), 
+				xContext), uno::UNO_QUERY_THROW );
+
+			rtl_uString *dir=NULL;
+			osl_getProcessWorkingDir(&dir);
+			rtl::OUString absFileUrl;
+			osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+			rtl_uString_release(dir);
+
+			uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+=====================================================================
+Found a 40 line (224 tokens) duplication in the following files: 
+Starting at line 2050 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 1069 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/TransformerBase.cxx
+
+	sal_Bool bEncoded = sal_False;
+
+	sal_Int32 nLen = rName.getLength();
+	OUStringBuffer aBuffer( nLen );
+
+	for( sal_Int32 i = 0; i < nLen; i++ )
+	{
+		sal_Unicode c = rName[i];
+		sal_Bool bValidChar = sal_False;
+		if( c < 0x00ffU )
+		{
+			bValidChar =
+				(c >= 0x0041 && c <= 0x005a) ||
+				(c >= 0x0061 && c <= 0x007a) ||
+				(c >= 0x00c0 && c <= 0x00d6) ||
+				(c >= 0x00d8 && c <= 0x00f6) ||
+				(c >= 0x00f8 && c <= 0x00ff) ||
+				( i > 0 && ( (c >= 0x0030 && c <= 0x0039) ||
+							 c == 0x00b7 || c == '-' || c == '.') );
+		}
+		else
+		{
+			if( (c >= 0xf900U && c <= 0xfffeU) ||
+			 	(c >= 0x20ddU && c <= 0x20e0U))
+			{
+				bValidChar = sal_False;
+			}
+			else if( (c >= 0x02bbU && c <= 0x02c1U) || c == 0x0559 ||
+					 c == 0x06e5 || c == 0x06e6 )
+			{
+				bValidChar = sal_True;
+			}
+			else if( c == 0x0387 )
+			{
+				bValidChar = i > 0;
+			}
+			else
+			{
+				if( !xCharClass.is() )
+				{
+=====================================================================
+Found a 65 line (224 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgservices.cxx
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_services.cxx
+
+using namespace com::sun::star;
+
+namespace {
+
+//=========================================================================
+sal_Bool writeInfo( void * pRegistryKey,
+                    const rtl::OUString & rImplementationName,
+                    uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// Write info into registry.
+	//////////////////////////////////////////////////////////////////////
+
+	// @@@ Adjust namespace names.
+	writeInfo( pRegistryKey,
+			   ::myucp::ContentProvider::getImplementationName_Static(),
+=====================================================================
+Found a 49 line (224 tokens) duplication in the following files: 
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/tempfile.cxx
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/tempfile.cxx
+
+        ensuredir( aName );
+    }
+
+    // Make sure that directory ends with a separator
+    xub_StrLen i = aName.Len();
+    if( i>0 && aName.GetChar(i-1) != '/' )
+        aName += '/';
+
+    return aName;
+}
+
+void CreateTempName_Impl( String& rName, sal_Bool bKeep, sal_Bool bDir = sal_True )
+{
+    // add a suitable tempname
+    // Prefix can have 5 chars, leaving 3 for numbers. 26 ** 3 == 17576
+	// ER 13.07.00  why not radix 36 [0-9A-Z] ?!?
+	const unsigned nRadix = 26;
+    String aName( rName );
+    aName += String::CreateFromAscii( "sv" );
+
+    rName.Erase();
+    static unsigned long u = Time::GetSystemTicks();
+    for ( unsigned long nOld = u; ++u != nOld; )
+    {
+        u %= (nRadix*nRadix*nRadix);
+        String aTmp( aName );
+        aTmp += String::CreateFromInt32( (sal_Int32) (unsigned) u, nRadix );
+        aTmp += String::CreateFromAscii( ".tmp" );
+
+        if ( bDir )
+        {
+            FileBase::RC err = Directory::create( aTmp );
+            if (  err == FileBase::E_None )
+            {
+                // !bKeep: only for creating a name, not a file or directory
+                if ( bKeep || Directory::remove( aTmp ) == FileBase::E_None )
+                    rName = aTmp;
+                break;
+            }
+            else if ( err != FileBase::E_EXIST )
+            {
+                // if f.e. name contains invalid chars stop trying to create dirs
+                break;
+            }
+        }
+        else
+        {
+            DBG_ASSERT( bKeep, "Too expensive, use directory for creating name!" );
+            File aFile( aTmp );
+=====================================================================
+Found a 32 line (224 tokens) duplication in the following files: 
+Starting at line 4453 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4045 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0x80000000, 0x80000000,
+	NULL, 0
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 17360 },
+	{ 13050, 17220 }, {	13340, 20770 }, { 5620, 21600 },	// ccp
+	{ 2860, 21100 }, { 1850, 20700 }, { 0,	20120 }			// ccp
+};
+static const sal_uInt16 mso_sptFlowChartDocumentSegm[] =
+{
+	0x4000, 0x0002, 0x2002, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] = 
+{
+	{ { 0, 0 }, { 21600, 17360 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] =
+{
+	{ 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoFlowChartDocument =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartDocumentVert, sizeof( mso_sptFlowChartDocumentVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartDocumentSegm, sizeof( mso_sptFlowChartDocumentSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartDocumentTextRect, sizeof( mso_sptFlowChartDocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartDocumentGluePoints, sizeof( mso_sptFlowChartDocumentGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 42 line (224 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/filtdlg.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pfiltdlg.cxx
+
+		aValueEdArr[i]->SetModifyHdl( LINK( this, ScPivotFilterDlg, ValModifyHdl ) );
+	}
+
+	// Disable/Enable Logik:
+
+	   (aLbField1.GetSelectEntryPos() != 0)
+	&& (aLbField2.GetSelectEntryPos() != 0)
+		? aLbConnect1.SelectEntryPos( (USHORT)theQueryData.GetEntry(1).eConnect )
+		: aLbConnect1.SetNoSelection();
+
+	   (aLbField2.GetSelectEntryPos() != 0)
+	&& (aLbField3.GetSelectEntryPos() != 0)
+		? aLbConnect2.SelectEntryPos( (USHORT)theQueryData.GetEntry(2).eConnect )
+		: aLbConnect2.SetNoSelection();
+
+	if ( aLbField1.GetSelectEntryPos() == 0 )
+	{
+		aLbConnect1.Disable();
+		aLbField2.Disable();
+		aLbCond2.Disable();
+		aEdVal2.Disable();
+	}
+	else if ( aLbConnect1.GetSelectEntryCount() == 0 )
+	{
+		aLbField2.Disable();
+		aLbCond2.Disable();
+		aEdVal2.Disable();
+	}
+
+	if ( aLbField2.GetSelectEntryPos() == 0 )
+	{
+		aLbConnect2.Disable();
+		aLbField3.Disable();
+		aLbCond3.Disable();
+		aEdVal3.Disable();
+	}
+	else if ( aLbConnect2.GetSelectEntryCount() == 0 )
+	{
+		aLbField3.Disable();
+		aLbCond3.Disable();
+		aEdVal3.Disable();
+	}
+=====================================================================
+Found a 30 line (224 tokens) duplication in the following files: 
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleCellBase.cxx
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleCellBase.cxx
+
+sal_Int32 SAL_CALL ScAccessibleCellBase::getBackground()
+    throw (uno::RuntimeException)
+{
+    ScUnoGuard aGuard;
+    IsObjectValid();
+    sal_Int32 nColor(0);
+
+    if (mpDoc)
+    {
+        SfxObjectShell* pObjSh = mpDoc->GetDocumentShell();
+        if ( pObjSh )
+        {
+            uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( pObjSh->GetModel(), uno::UNO_QUERY );
+            if ( xSpreadDoc.is() )
+            {
+                uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
+                uno::Reference<container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
+                if ( xIndex.is() )
+                {
+                    uno::Any aTable = xIndex->getByIndex(maCellAddress.Tab());
+                    uno::Reference<sheet::XSpreadsheet> xTable;
+                    if (aTable>>=xTable)
+                    {
+                        uno::Reference<table::XCell> xCell = xTable->getCellByPosition(maCellAddress.Col(), maCellAddress.Row());
+                        if (xCell.is())
+                        {
+                            uno::Reference<beans::XPropertySet> xCellProps(xCell, uno::UNO_QUERY);
+                            if (xCellProps.is())
+                            {
+                                uno::Any aAny = xCellProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLBACK)));
+=====================================================================
+Found a 41 line (224 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1478 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+        CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
+    }
+    {
+        rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
+        CPPUNIT_ASSERT_MESSAGE(
+            "rtl::OUString",
+=====================================================================
+Found a 49 line (224 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localschemasupplier.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localsinglebackend.cxx
+
+    uno::Any const aSchemaDataSetting = context->getValueByName(kSchemaDataUrl);
+	uno::Sequence< OUString > aSchemas;
+	rtl::OUString schemas;
+
+    if (aSchemaDataSetting >>= schemas) 
+    {
+        fillFromBlankSeparated(schemas, aSchemas) ;
+    }
+    else 
+    {
+        aSchemaDataSetting >>=  aSchemas;
+    }
+    //validate SchemaDataUrls
+	mSchemaDataUrls.realloc(aSchemas.getLength());
+
+    sal_Int32 nSchemaLocations = 0;
+    sal_Int32 nExistingSchemaLocations = 0;
+    for (sal_Int32 j = 0; j < aSchemas.getLength(); ++j)
+    {
+        bool bOptional = checkOptionalArg(aSchemas[j]);
+
+        if (!bOptional)
+			validateFileURL(aSchemas[j],*this);
+
+		else if (!isValidFileURL(aSchemas[j]))
+			continue;
+		
+		OSL_ASSERT(isValidFileURL(aSchemas[j]));
+
+        //NormalizeURL
+        implEnsureAbsoluteURL(aSchemas[j]);
+        if (!normalizeURL(aSchemas[j],*this,bOptional))
+            continue;
+
+        // now we have a correct file URL, which we will use
+		mSchemaDataUrls[nSchemaLocations++] = aSchemas[j];
+		
+        // check existence
+		if (!bOptional)
+            checkFileExists(aSchemas[j], *this);
+
+        else if(!FileHelper::fileExists(aSchemas[j]))
+            continue; // skip the directory check
+
+
+        checkIfDirectory(aSchemas[j],*this);
+
+        ++nExistingSchemaLocations;
+    }
+=====================================================================
+Found a 43 line (224 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+	sal_uInt32 length = 3+ m_typeName.getLength() + strlen(prefix);
+
+	if (bExtended)
+		length += m_name.getLength() + 1;
+
+	OStringBuffer tmpBuf(length);
+
+	tmpBuf.append('_');
+	tmpBuf.append(typeName);
+	tmpBuf.append('_');
+	if (bExtended)
+	{
+		tmpBuf.append(m_name);
+		tmpBuf.append('_');
+	}
+	tmpBuf.append(prefix);
+	tmpBuf.append('_');
+
+	OString tmp(tmpBuf.makeStringAndClear().replace('/', '_').toAsciiUpperCase());
+
+	length = 1 + typeName.getLength() + strlen(prefix);
+	if (bExtended)
+		length += m_name.getLength() + 1;
+
+	tmpBuf.ensureCapacity(length);
+	tmpBuf.append(typeName);
+	if (bExtended)
+	{
+		tmpBuf.append('/');
+		tmpBuf.append(m_name);
+	}
+	tmpBuf.append('.');
+	tmpBuf.append(prefix);
+
+	o << "#ifndef " << tmp << "\n#include <";
+	if (bCaseSensitive)
+	{
+		o << tmpBuf.makeStringAndClear();
+	} else
+	{
+		o << tmpBuf.makeStringAndClear();
+	}
+	o << ">\n#endif\n";
+=====================================================================
+Found a 43 line (223 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_alpha_mask_u8.h
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_alpha_mask_u8.h
+
+        void combine_vspan(int x, int y, cover_type* dst, int num_pix) const
+        {
+            int xmax = m_rbuf->width() - 1;
+            int ymax = m_rbuf->height() - 1;
+
+            int count = num_pix;
+            cover_type* covers = dst;
+
+            if(x < 0 || x > xmax)
+            {
+                memset(dst, 0, num_pix * sizeof(cover_type));
+                return;
+            }
+
+            if(y < 0)
+            {
+                count += y;
+                if(count <= 0) 
+                {
+                    memset(dst, 0, num_pix * sizeof(cover_type));
+                    return;
+                }
+                memset(covers, 0, -y * sizeof(cover_type));
+                covers -= y;
+                y = 0;
+            }
+
+            if(y + count > ymax)
+            {
+                int rest = y + count - ymax - 1;
+                count -= rest;
+                if(count <= 0) 
+                {
+                    memset(dst, 0, num_pix * sizeof(cover_type));
+                    return;
+                }
+                memset(covers + count, 0, rest * sizeof(cover_type));
+            }
+
+            const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+            do
+            {
+                *covers = (cover_type)(((*covers) * 
+=====================================================================
+Found a 43 line (223 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_alpha_mask_u8.h
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_alpha_mask_u8.h
+
+        void combine_hspan(int x, int y, cover_type* dst, int num_pix) const
+        {
+            int xmax = m_rbuf->width() - 1;
+            int ymax = m_rbuf->height() - 1;
+
+            int count = num_pix;
+            cover_type* covers = dst;
+
+            if(y < 0 || y > ymax)
+            {
+                memset(dst, 0, num_pix * sizeof(cover_type));
+                return;
+            }
+
+            if(x < 0)
+            {
+                count += x;
+                if(count <= 0) 
+                {
+                    memset(dst, 0, num_pix * sizeof(cover_type));
+                    return;
+                }
+                memset(covers, 0, -x * sizeof(cover_type));
+                covers -= x;
+                x = 0;
+            }
+
+            if(x + count > xmax)
+            {
+                int rest = x + count - xmax - 1;
+                count -= rest;
+                if(count <= 0) 
+                {
+                    memset(dst, 0, num_pix * sizeof(cover_type));
+                    return;
+                }
+                memset(covers + count, 0, rest * sizeof(cover_type));
+            }
+
+            const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+            do
+            {
+                *covers = (cover_type)(((*covers) * 
+=====================================================================
+Found a 28 line (223 tokens) duplication in the following files: 
+Starting at line 4949 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4523 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] =
+{
+	{ 20980, 18150 }, {	20980, 21600 }, { 10670, 21600 },
+	{ 4770, 21540 }, { 0, 16720 }, { 0, 10800 },			// ccp
+	{ 0, 4840 }, { 4840, 0 }, { 10800, 0 },					// ccp
+	{ 16740, 0 }, { 21600, 4840 }, { 21600, 10800 },		// ccp
+	{ 21600, 13520 }, {	20550, 16160 }, { 18670, 18170 }	// ccp
+};
+static const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] =
+{
+	0x4000, 0x0002, 0x2004, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] = 
+{
+	{ { 3100, 3100 }, { 18500, 18500 } }
+};
+static const mso_CustomShape msoFlowChartMagneticTape =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartMagneticTapeVert, sizeof( mso_sptFlowChartMagneticTapeVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartMagneticTapeSegm, sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticTapeTextRect, sizeof( mso_sptFlowChartMagneticTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 18 line (223 tokens) duplication in the following files: 
+Starting at line 920 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 844 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptQuadArrowVert[] =	// adjustment1: x 0 - 10800, adjustment2: x 0 - 10800	
+{														// adjustment3: y 0 - 10800
+	{ 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I },
+	{ 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I },
+	{ 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I },
+	{ 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I },
+	{ 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I },
+	{ 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I }
+};
+static const sal_uInt16 mso_sptQuadArrowSegm[] =
+{
+	0x4000, 0x0017, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptQuadArrowCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjust3Value, 0, 0 },
+=====================================================================
+Found a 43 line (223 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/include.c
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_include.c
+
+    static Token ta = {UNCLASS, 0, 0, 0, NULL, 0};
+    static Tokenrow tr = {&ta, &ta, &ta + 1, 1};
+    uchar *p;
+
+    ta.t = p = (uchar *) outptr;
+
+	if (import)
+		strcpy((char *) p, "#pragma import");
+	else
+		strcpy((char *) p, "#pragma include");
+
+	p += strlen((char *) p);
+
+	*p++ = '(';
+
+    *p++ = angled ? '<' : '"';
+	strcpy((char *) p, fname);
+	p += strlen(fname);
+    *p++ = angled ? '>' : '"';
+
+	*p++ = ',';
+
+	*p++ = '"';
+	strcpy((char *) p, iname);
+	p += strlen(iname);
+	*p++ = '"';
+
+	*p++ = ')';
+    *p++ = '\n';
+
+    ta.len = (char *) p - outptr;
+    outptr = (char *) p;
+    tr.tp = tr.bp;
+    puttokens(&tr);
+}
+
+/*
+ * Generate a extern C directive
+ */
+void
+    genwrap(int end)
+{
+    static Token ta = {UNCLASS, 0, 0, 0, NULL, 0};
+=====================================================================
+Found a 8 line (223 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1159 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+     0, 0,17,17,17, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0dd0 - 0ddf
+=====================================================================
+Found a 33 line (223 tokens) duplication in the following files: 
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1621 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+            "css::uno::Type", (a >>= b) && b == getCppuType< sal_Int32 >());
+    }
+    {
+        css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
+        CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
+    }
+    {
+        css::uno::Sequence< rtl::OUString > b(2);
+        CPPUNIT_ASSERT_MESSAGE(
+            "css::uno::Sequence<rtl::OUString>",
+            !(a >>= b) && b.getLength() == 2);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testSequence() {
+=====================================================================
+Found a 36 line (223 tokens) duplication in the following files: 
+Starting at line 1269 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+Starting at line 1321 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+
+        const bool bLocal = !aDefaulter.hasDoneSet();
+
+        if (!aChanges.test().compact().isEmpty())
+		{
+			Broadcaster aSender(rNode.getNotifier().makeBroadcaster(aChanges,bLocal));
+
+			aSender.queryConstraints(aChanges);
+
+			aTree.integrate(aChanges, aNode, bLocal);
+
+			lock.clearForBroadcast();
+			aSender.notifyListeners(aChanges, bLocal);
+		}
+
+	}
+	catch (configuration::InvalidName& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot restore Defaults: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw UnknownPropertyException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::ConstraintViolation & ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot restore Defaults: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw UnknownPropertyException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+}
+=====================================================================
+Found a 53 line (223 tokens) duplication in the following files: 
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+=====================================================================
+Found a 61 line (222 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavservices.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/services.cxx
+
+using namespace com::sun::star;
+
+//=========================================================================
+static sal_Bool writeInfo( 
+    void * pRegistryKey,
+    const rtl::OUString & rImplementationName,
+    uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+            pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// Write info into registry.
+	//////////////////////////////////////////////////////////////////////
+
+	writeInfo( pRegistryKey,
+			   ::chelp::ContentProvider::getImplementationName_Static(),
+=====================================================================
+Found a 34 line (222 tokens) duplication in the following files: 
+Starting at line 746 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/flycnt.cxx
+Starting at line 823 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/flycnt.cxx
+
+						}
+						else
+						{
+							pLay = pSect->GetUpper();
+                            if( pLay->IsVertical() )
+                            {
+                                nFrmTop = pSect->Frm().Left();
+                                nPrtHeight = pSect->Frm().Left() -
+                                        pLay->Frm().Left() - pLay->Prt().Left();
+                            }
+                            else
+                            {
+                                nFrmTop = pSect->Frm().Bottom();
+                                nPrtHeight = pLay->Frm().Top()+pLay->Prt().Top()
+                                     + pLay->Prt().Height() - pSect->Frm().Top()
+                                     - pSect->Frm().Height();
+                            }
+							pSect = 0;
+						}
+					}
+					else if( pLay )
+					{
+                        if( pLay->IsVertical() )
+                        {
+                             nFrmTop = pLay->Frm().Left() + pLay->Frm().Width();
+                             nPrtHeight = pLay->Prt().Width();
+                        }
+                        else
+                        {
+                            nFrmTop = pLay->Frm().Top();
+                            nPrtHeight = pLay->Prt().Height();
+                        }
+						bSct = 0 != pSect;
+					}
+=====================================================================
+Found a 34 line (222 tokens) duplication in the following files: 
+Starting at line 2492 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4654 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OStorage::getRelationshipsByType(  const ::rtl::OUString& sType  )
+		throw ( io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
+	sal_Int32 nEntriesNum = 0;
+
+	// TODO/LATER: in future the unification of the ID could be checked
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sType ) )
+				{
+					aResult.realloc( nEntriesNum );
+					aResult[nEntriesNum-1] = aSeq[nInd1];
+				}
+				break;
+			}
+
+	return aResult;
+}
+
+//-----------------------------------------------
+uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OStorage::getAllRelationships()
+=====================================================================
+Found a 33 line (222 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/largeToSmall_ja_JP.cxx
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/smallToLarge_ja_JP.cxx
+
+OneToOneMappingTable_t small2large[] = {        
+    MAKE_PAIR( 0x3041, 0x3042 ),  // HIRAGANA LETTER SMALL A --> HIRAGANA LETTER A
+    MAKE_PAIR( 0x3043, 0x3044 ),  // HIRAGANA LETTER SMALL I --> HIRAGANA LETTER I
+    MAKE_PAIR( 0x3045, 0x3046 ),  // HIRAGANA LETTER SMALL U --> HIRAGANA LETTER U
+    MAKE_PAIR( 0x3047, 0x3048 ),  // HIRAGANA LETTER SMALL E --> HIRAGANA LETTER E
+    MAKE_PAIR( 0x3049, 0x304A ),  // HIRAGANA LETTER SMALL O --> HIRAGANA LETTER O
+    MAKE_PAIR( 0x3063, 0x3064 ),  // HIRAGANA LETTER SMALL TU --> HIRAGANA LETTER TU
+    MAKE_PAIR( 0x3083, 0x3084 ),  // HIRAGANA LETTER SMALL YA --> HIRAGANA LETTER YA
+    MAKE_PAIR( 0x3085, 0x3086 ),  // HIRAGANA LETTER SMALL YU --> HIRAGANA LETTER YU
+    MAKE_PAIR( 0x3087, 0x3088 ),  // HIRAGANA LETTER SMALL YO --> HIRAGANA LETTER YO
+    MAKE_PAIR( 0x308E, 0x308F ),  // HIRAGANA LETTER SMALL WA --> HIRAGANA LETTER WA
+    MAKE_PAIR( 0x30A1, 0x30A2 ),  // KATAKANA LETTER SMALL A --> KATAKANA LETTER A
+    MAKE_PAIR( 0x30A3, 0x30A4 ),  // KATAKANA LETTER SMALL I --> KATAKANA LETTER I
+    MAKE_PAIR( 0x30A5, 0x30A6 ),  // KATAKANA LETTER SMALL U --> KATAKANA LETTER U
+    MAKE_PAIR( 0x30A7, 0x30A8 ),  // KATAKANA LETTER SMALL E --> KATAKANA LETTER E
+    MAKE_PAIR( 0x30A9, 0x30AA ),  // KATAKANA LETTER SMALL O --> KATAKANA LETTER O
+    MAKE_PAIR( 0x30C3, 0x30C4 ),  // KATAKANA LETTER SMALL TU --> KATAKANA LETTER TU
+    MAKE_PAIR( 0x30E3, 0x30E4 ),  // KATAKANA LETTER SMALL YA --> KATAKANA LETTER YA
+    MAKE_PAIR( 0x30E5, 0x30E6 ),  // KATAKANA LETTER SMALL YU --> KATAKANA LETTER YU
+    MAKE_PAIR( 0x30E7, 0x30E8 ),  // KATAKANA LETTER SMALL YO --> KATAKANA LETTER YO
+    MAKE_PAIR( 0x30EE, 0x30EF ),  // KATAKANA LETTER SMALL WA --> KATAKANA LETTER WA
+    MAKE_PAIR( 0x30F5, 0x30AB ),  // KATAKANA LETTER SMALL KA --> KATAKANA LETTER KA
+    MAKE_PAIR( 0x30F6, 0x30B1 ),  // KATAKANA LETTER SMALL KE --> KATAKANA LETTER KE
+    MAKE_PAIR( 0xFF67, 0xFF71 ),  // HALFWIDTH KATAKANA LETTER SMALL A --> HALFWIDTH KATAKANA LETTER A
+    MAKE_PAIR( 0xFF68, 0xFF72 ),  // HALFWIDTH KATAKANA LETTER SMALL I --> HALFWIDTH KATAKANA LETTER I
+    MAKE_PAIR( 0xFF69, 0xFF73 ),  // HALFWIDTH KATAKANA LETTER SMALL U --> HALFWIDTH KATAKANA LETTER U
+    MAKE_PAIR( 0xFF6A, 0xFF74 ),  // HALFWIDTH KATAKANA LETTER SMALL E --> HALFWIDTH KATAKANA LETTER E
+    MAKE_PAIR( 0xFF6B, 0xFF75 ),  // HALFWIDTH KATAKANA LETTER SMALL O --> HALFWIDTH KATAKANA LETTER O
+    MAKE_PAIR( 0xFF6C, 0xFF94 ),  // HALFWIDTH KATAKANA LETTER SMALL YA --> HALFWIDTH KATAKANA LETTER YA
+    MAKE_PAIR( 0xFF6D, 0xFF95 ),  // HALFWIDTH KATAKANA LETTER SMALL YU --> HALFWIDTH KATAKANA LETTER YU
+    MAKE_PAIR( 0xFF6E, 0xFF96 ),  // HALFWIDTH KATAKANA LETTER SMALL YO --> HALFWIDTH KATAKANA LETTER YO
+    MAKE_PAIR( 0xFF6F, 0xFF82 )   // HALFWIDTH KATAKANA LETTER SMALL TU --> HALFWIDTH KATAKANA LETTER TU
+};
+=====================================================================
+Found a 113 line (222 tokens) duplication in the following files: 
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/workbench/XTDo.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testcopy/XTDataObject.cxx
+
+	}
+
+	return hr;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->EnumFormatEtc
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC** ppenumFormatetc )
+{
+	if ( ( NULL == ppenumFormatetc ) || ( DATADIR_SET == dwDirection ) )
+		return E_INVALIDARG;
+	
+	*ppenumFormatetc = NULL;
+
+	HRESULT hr = E_FAIL;
+
+	if ( DATADIR_GET == dwDirection )
+	{
+		*ppenumFormatetc = new CEnumFormatEtc( this );
+		static_cast< LPUNKNOWN >( *ppenumFormatetc )->AddRef( );
+		hr = S_OK;
+	}
+
+	return hr;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->QueryGetData
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::QueryGetData( LPFORMATETC pFormatetc )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->GetDataHere
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::GetDataHere( LPFORMATETC, LPSTGMEDIUM )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->GetCanonicalFormatEtc
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::GetCanonicalFormatEtc( LPFORMATETC, LPFORMATETC )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->SetData
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::SetData( LPFORMATETC, LPSTGMEDIUM, BOOL )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->DAdvise
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::DAdvise( LPFORMATETC, DWORD, LPADVISESINK, DWORD * )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->DUnadvise
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::DUnadvise( DWORD )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->EnumDAdvise
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::EnumDAdvise( LPENUMSTATDATA * )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// for our convenience
+//------------------------------------------------------------------------
+
+CXTDataObject::operator IDataObject*( )
+{
+	return static_cast< IDataObject* >( this );
+}
+
+
+//============================================================================
+// CEnumFormatEtc
+//============================================================================
+
+
+//----------------------------------------------------------------------------
+// ctor
+//----------------------------------------------------------------------------
+
+CEnumFormatEtc::CEnumFormatEtc( LPUNKNOWN pUnkDataObj ) :
+	m_nRefCnt( 0 ),
+	m_pUnkDataObj( pUnkDataObj ),
+=====================================================================
+Found a 49 line (222 tokens) duplication in the following files: 
+Starting at line 773 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ENoException.cxx
+
+	OFlatConnection* pConnection = (OFlatConnection*)m_pConnection;
+	// ----------------------------------------------------------
+	// Positionierung vorbereiten:
+
+	m_nFilePos = nCurPos;
+
+	switch(eCursorPosition)
+	{
+		case IResultSetHelper::FIRST:
+			m_nFilePos = 0;
+			m_nRowPos = 1;
+			// run through
+		case IResultSetHelper::NEXT:
+			if(eCursorPosition != IResultSetHelper::FIRST)
+				++m_nRowPos;
+			m_pFileStream->Seek(m_nFilePos);
+			if (m_pFileStream->IsEof() || !checkHeaderLine())
+			{
+				m_nMaxRowCount = m_nRowPos;
+				return sal_False;
+			}
+
+			m_aRowToFilePos.insert(::std::map<sal_Int32,sal_Int32>::value_type(m_nRowPos,m_nFilePos));
+
+			m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+			if (m_pFileStream->IsEof())
+			{
+				m_nMaxRowCount = m_nRowPos;
+				return sal_False;
+			}
+			nCurPos = m_pFileStream->Tell();
+			break;
+		case IResultSetHelper::PRIOR:
+			--m_nRowPos;
+			if(m_nRowPos > 0)
+			{
+				m_nFilePos = m_aRowToFilePos.find(m_nRowPos)->second;
+				m_pFileStream->Seek(m_nFilePos);
+				if (m_pFileStream->IsEof() || !checkHeaderLine())
+					return sal_False;
+				m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding());
+				if (m_pFileStream->IsEof())
+					return sal_False;
+				nCurPos = m_pFileStream->Tell();
+			}
+			else
+				m_nRowPos = 0;
+
+			break;
+=====================================================================
+Found a 53 line (221 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/signer.cxx
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/signer.cxx
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ), OUString::createFromAscii( argv[3] ) ) ;
+		OSL_ENSURE( xManager.is() ,
+			"ServicesManager - "
+			"Cannot get service manager" ) ;
+
+		//Create signature template
+		Reference< XInterface > element =
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.security.bridge.xmlsec.XMLElementWrapper_XmlSecImpl" ) , xContext ) ;
+		OSL_ENSURE( element.is() ,
+			"Signer - "
+			"Cannot get service instance of \"wrapper.XMLElementWrapper\"" ) ;
+
+		Reference< XXMLElementWrapper > xElement( element , UNO_QUERY ) ;
+		OSL_ENSURE( xElement.is() ,
+			"Signer - "
+			"Cannot get interface of \"XXMLElement\" from service \"xsec.XMLElement\"" ) ;
+
+		Reference< XUnoTunnel > xEleTunnel( xElement , UNO_QUERY ) ;
+		OSL_ENSURE( xEleTunnel.is() ,
+			"Signer - "
+			"Cannot get interface of \"XUnoTunnel\" from service \"xsec.XMLElement\"" ) ;
+
+		XMLElementWrapper_XmlSecImpl* pElement = ( XMLElementWrapper_XmlSecImpl* )xEleTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
+		OSL_ENSURE( pElement != NULL ,
+			"Signer - "
+			"Cannot get implementation of \"xsec.XMLElement\"" ) ;
+
+		//Set signature template
+		pElement->setNativeElement( tplNode ) ;
+
+		//Build XML Signature template
+		Reference< XInterface > signtpl =
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.crypto.XMLSignatureTemplate" ) , xContext ) ;
+		OSL_ENSURE( signtpl.is() ,
+			"Signer - "
+			"Cannot get service instance of \"xsec.XMLSignatureTemplate\"" ) ;
+
+		Reference< XXMLSignatureTemplate > xTemplate( signtpl , UNO_QUERY ) ;
+		OSL_ENSURE( xTemplate.is() ,
+			"Signer - "
+			"Cannot get interface of \"XXMLSignatureTemplate\" from service \"xsec.XMLSignatureTemplate\"" ) ;
+
+		//Import the signature template
+		xTemplate->setTemplate( xElement ) ;
+
+		//Import the URI/Stream binding
+		if( xUriBinding.is() )
+			xTemplate->setBinding( xUriBinding ) ;
+
+		//Create security environment
+		//Build Security Environment
+		Reference< XInterface > xsecenv =
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl"), xContext ) ;
+=====================================================================
+Found a 58 line (221 tokens) duplication in the following files: 
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const ucb::CommandInfo aStreamCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                -1,
+                getCppuBooleanType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                -1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+            )
+            ///////////////////////////////////////////////////////////
+            // New commands
+            ///////////////////////////////////////////////////////////
+        };
+        return uno::Sequence<
+                ucb::CommandInfo >( aStreamCommandInfoTable, 7 );
+	}
+=====================================================================
+Found a 44 line (221 tokens) duplication in the following files: 
+Starting at line 691 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+Starting at line 875 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+
+		}
+
+		if ((io.dwFlags & IOF_CHECKDISPLAYASICON)
+			&& NULL!=io.hMetaPict)
+		{
+			fe.dwAspect=DVASPECT_ICON;
+			dwData=(DWORD)(UINT)io.hMetaPict;
+		}
+
+		xRet = new SvOutPlaceObject();
+		xRet->DoInitNew( pIStorage );
+
+		xRet->pImpl->pSO_Cont = new CSO_Cont( 1, NULL, xRet );
+		xRet->pImpl->pSO_Cont->AddRef();
+
+		POINTL      ptl;
+		SIZEL       szl;
+		UINT uRet = xRet->pImpl->pSO_Cont->Create(tType, pv, &fe, &ptl, &szl, pIStorage, NULL, dwData);
+		if (CREATE_FAILED==uRet)
+		{
+			xRet = SvOutPlaceObjectRef();
+			bOk = FALSE;
+		}
+		else
+		{
+			xRet->pImpl->pSO_Cont->Invalidate();
+			if( tType == TENANTTYPE_EMBEDDEDFILE )
+				xRet->pImpl->pSO_Cont->Update();
+
+			//RECTL rcl;
+			//SETRECTL(rcl, 0, 0, szl.cx, szl.cy);
+			//xRet->pImpl->pSO_Cont->RectSet(&rcl, FALSE, TRUE);
+			xRet->SetVisAreaSize( Size( szl.cx, szl.cy ) );
+			WIN_BOOL fSetExtent;
+			xRet->pImpl->pSO_Cont->GetInfo( xRet->pImpl->dwAspect, fSetExtent );
+			xRet->pImpl->bSetExtent = fSetExtent;
+
+			//Free this regardless of what we do with it.
+			StarObject_MetafilePictIconFree(io.hMetaPict);
+		}
+	}
+#else
+	(void)pIStorage;
+	(void)rInternalClassName;
+=====================================================================
+Found a 11 line (221 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_TABLAYOUT),SC_WID_UNO_TABLAYOUT,&getCppuType((sal_Int16*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_WRITING),	ATTR_WRITINGDIR,	&getCppuType((sal_Int16*)0),			0, 0 },
+        {0,0,0,0,0,0}
+	};
+	return aSheetPropertyMap_Impl;
+=====================================================================
+Found a 8 line (221 tokens) duplication in the following files: 
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1331 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2280 - 228f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2290 - 229f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22a0 - 22af
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22b0 - 22bf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22c0 - 22cf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22d0 - 22df
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 22e0 - 22ef
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 22f0 - 22ff
+=====================================================================
+Found a 7 line (221 tokens) duplication in the following files: 
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 894 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 22 line (221 tokens) duplication in the following files: 
+Starting at line 395 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/xforms/xpathlib/xpathlib.cxx
+
+static OString makeDateTimeString (const DateTime& aDateTime, sal_Bool bUTC = sal_True)
+{
+    OStringBuffer aDateTimeString;
+    aDateTimeString.append((sal_Int32)aDateTime.GetYear());
+    aDateTimeString.append("-");
+    if (aDateTime.GetMonth()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetMonth());
+    aDateTimeString.append("-");
+    if (aDateTime.GetDay()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetDay());
+    aDateTimeString.append("T");
+    if (aDateTime.GetHour()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetHour());
+    aDateTimeString.append(":");
+    if (aDateTime.GetMin()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetMin());
+    aDateTimeString.append(":");
+    if (aDateTime.GetSec()<10) aDateTimeString.append("0");
+    aDateTimeString.append((sal_Int32)aDateTime.GetSec());
+    if (bUTC) aDateTimeString.append("Z");
+
+    return aDateTimeString.makeStringAndClear();
+=====================================================================
+Found a 22 line (221 tokens) duplication in the following files: 
+Starting at line 992 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/UITools.cxx
+Starting at line 318 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/helper/vclunohelper.cxx
+
+float VCLUnoHelper::ConvertFontWeight( FontWeight eWeight )
+{
+	if( eWeight == WEIGHT_DONTKNOW )
+		return ::com::sun::star::awt::FontWeight::DONTKNOW;
+	else if( eWeight == WEIGHT_THIN )
+		return ::com::sun::star::awt::FontWeight::THIN;
+	else if( eWeight == WEIGHT_ULTRALIGHT )
+		return ::com::sun::star::awt::FontWeight::ULTRALIGHT;
+	else if( eWeight == WEIGHT_LIGHT )
+		return ::com::sun::star::awt::FontWeight::LIGHT;
+	else if( eWeight == WEIGHT_SEMILIGHT )
+		return ::com::sun::star::awt::FontWeight::SEMILIGHT;
+	else if( ( eWeight == WEIGHT_NORMAL ) || ( eWeight == WEIGHT_MEDIUM ) )
+		return ::com::sun::star::awt::FontWeight::NORMAL;
+	else if( eWeight == WEIGHT_SEMIBOLD )
+		return ::com::sun::star::awt::FontWeight::SEMIBOLD;
+	else if( eWeight == WEIGHT_BOLD )
+		return ::com::sun::star::awt::FontWeight::BOLD;
+	else if( eWeight == WEIGHT_ULTRABOLD )
+		return ::com::sun::star::awt::FontWeight::ULTRABOLD;
+	else if( eWeight == WEIGHT_BLACK )
+		return ::com::sun::star::awt::FontWeight::BLACK;
+=====================================================================
+Found a 44 line (221 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idlmaker.cxx
+
+						 IdlOptions* pOptions,
+						 sal_Bool bFullScope)
+	throw( CannotDumpException )
+{
+	if (!produceType(typeName, typeMgr,	typeDependencies, pOptions))
+	{
+		fprintf(stderr, "%s ERROR: %s\n", 
+				pOptions->getProgramName().getStr(), 
+				OString("cannot dump Type '" + typeName + "'").getStr());
+		exit(99);
+	}
+
+	RegistryKey	typeKey = typeMgr.getTypeKey(typeName);
+	RegistryKeyNames subKeys;
+	
+	if (typeKey.getKeyNames(OUString(), subKeys))
+		return sal_False;
+	
+	OString tmpName;
+	for (sal_uInt32 i=0; i < subKeys.getLength(); i++)
+	{
+		tmpName = OUStringToOString(subKeys.getElement(i), RTL_TEXTENCODING_UTF8);
+
+		if (pOptions->isValid("-B"))
+			tmpName = tmpName.copy(tmpName.indexOf('/', 1) + 1);
+		else
+			tmpName = tmpName.copy(1);
+
+		if (bFullScope)
+		{
+			if (!produceAllTypes(tmpName, typeMgr, typeDependencies, pOptions, sal_True))
+				return sal_False;
+		} else
+		{
+			if (!produceType(tmpName, typeMgr, typeDependencies, pOptions))
+				return sal_False;
+		}
+	}
+	
+	return sal_True;			
+}
+
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
+{
+=====================================================================
+Found a 41 line (221 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+}
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
+{
+
+  // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+  // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+  // fflush(stderr);
+
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+=====================================================================
+Found a 30 line (220 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+
+                                                   const sal_uInt32* pPoints,
+                                                   const SalPoint* const* pPtAry,
+                                                   const BYTE* const* pFlgAry );
+    virtual void			copyArea( long nDestX,
+                                      long nDestY,
+                                      long nSrcX,
+                                      long nSrcY,
+                                      long nSrcWidth,
+                                      long nSrcHeight,
+                                      USHORT nFlags );
+    virtual void			copyBits( const SalTwoRect* pPosAry,
+                                      SalGraphics* pSrcGraphics );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap,
+                                        SalColor nTransparentColor );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap,
+                                        const SalBitmap& rTransparentBitmap );
+    virtual void			drawMask( const SalTwoRect* pPosAry,
+                                      const SalBitmap& rSalBitmap,
+                                      SalColor nMaskColor );
+    virtual SalBitmap*		getBitmap( long nX, long nY, long nWidth, long nHeight );
+    virtual SalColor		getPixel( long nX, long nY );
+    virtual void			invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags );
+    virtual void			invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+
+    virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+    virtual bool            filterText( const String& rOrigText, String& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
+=====================================================================
+Found a 51 line (220 tokens) duplication in the following files: 
+Starting at line 718 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drtxtob.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drtxtob1.cxx
+
+					break;
+					case SID_ATTR_PARA_LINESPACE_10:
+					{
+                        SvxLineSpacingItem aItem( SVX_LINESPACE_ONE_LINE, EE_PARA_SBL );
+						aItem.SetPropLineSpace( 100 );
+						aNewAttr.Put( aItem );
+					}
+					break;
+					case SID_ATTR_PARA_LINESPACE_15:
+					{
+                        SvxLineSpacingItem aItem( SVX_LINESPACE_ONE_POINT_FIVE_LINES, EE_PARA_SBL );
+						aItem.SetPropLineSpace( 150 );
+						aNewAttr.Put( aItem );
+					}
+					break;
+					case SID_ATTR_PARA_LINESPACE_20:
+					{
+                        SvxLineSpacingItem aItem( SVX_LINESPACE_TWO_LINES, EE_PARA_SBL );
+						aItem.SetPropLineSpace( 200 );
+						aNewAttr.Put( aItem );
+					}
+    				break;
+					case SID_SET_SUPER_SCRIPT:
+					{
+                        SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
+						SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
+                                        aEditAttr.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
+
+						if( eEsc == SVX_ESCAPEMENT_SUPERSCRIPT )
+							aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
+						else
+							aItem.SetEscapement( SVX_ESCAPEMENT_SUPERSCRIPT );
+						aNewAttr.Put( aItem );
+					}
+					break;
+					case SID_SET_SUB_SCRIPT:
+					{
+                        SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
+						SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
+                                        aEditAttr.Get( EE_CHAR_ESCAPEMENT ) ).GetEnumValue();
+
+						if( eEsc == SVX_ESCAPEMENT_SUBSCRIPT )
+							aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
+						else
+							aItem.SetEscapement( SVX_ESCAPEMENT_SUBSCRIPT );
+						aNewAttr.Put( aItem );
+					}
+					break;
+
+					// Attribute fuer die TextObjectBar
+					case SID_ATTR_CHAR_FONT:
+=====================================================================
+Found a 76 line (220 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+using namespace osl;
+using namespace rtl;
+
+#define IP_PORT_FTP     21
+#define IP_PORT_TELNET  23
+#define IP_PORT_HTTP2   8080
+#define IP_PORT_INVAL   99999
+#define IP_PORT_POP3    110
+#define IP_PORT_NETBIOS 139
+#define IP_PORT_MYPORT  8881
+#define IP_PORT_MYPORT1 8882
+#define IP_PORT_MYPORT5 8886
+#define IP_PORT_MYPORT6 8887
+#define IP_PORT_MYPORT7 8895
+#define IP_PORT_MYPORT8 8896
+#define IP_PORT_MYPORT9 8897
+
+//------------------------------------------------------------------------
+// helper functions
+//------------------------------------------------------------------------
+
+// just used to test socket::close() when accepting
+class AcceptorThread : public Thread
+{
+	::osl::AcceptorSocket asAcceptorSocket;
+	::rtl::OUString aHostIP;
+	sal_Bool bOK;
+protected:	
+	void SAL_CALL run( )
+	{
+		::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
+		::osl::StreamSocket ssStreamConnection;
+		
+		asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
+		sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+		if  ( sal_True != bOK1 )
+		{
+			t_print("# AcceptorSocket bind address failed.\n" ) ;
+			return;
+		}
+		sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+		if  ( sal_True != bOK2 )
+		{ 
+			t_print("# AcceptorSocket listen address failed.\n" ) ;
+			return;
+		}
+
+		asAcceptorSocket.enableNonBlockingMode( sal_False );
+		
+		oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
+		if (eResult != osl_Socket_Ok )
+		{
+			bOK = sal_True;
+			t_print("AcceptorThread: acceptConnection failed! \n");			
+		}	
+	}
+public:
+	AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
+		: asAcceptorSocket( asSocket ), aHostIP( aBindIP )
+	{
+		bOK = sal_False;
+	}
+	
+	sal_Bool isOK() { return bOK; }
+	
+	~AcceptorThread( )
+	{
+		if ( isRunning( ) )
+		{
+			asAcceptorSocket.shutdown();
+			t_print("# error: Acceptor thread not terminated.\n" );
+		}
+	}
+};
+
+namespace osl_Socket
+=====================================================================
+Found a 20 line (220 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/descriptor.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unopool.cxx
+
+uno::Any SAL_CALL SvxUnoDrawPool::queryAggregation( const uno::Type & rType )
+	throw(uno::RuntimeException)
+{
+	uno::Any aAny;
+
+	if( rType == ::getCppuType((const uno::Reference< lang::XServiceInfo >*)0) )
+		aAny <<= uno::Reference< lang::XServiceInfo >(this);
+	else if( rType == ::getCppuType((const uno::Reference< lang::XTypeProvider >*)0) )
+		aAny <<= uno::Reference< lang::XTypeProvider >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XPropertySet >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertyState >*)0) )
+		aAny <<= uno::Reference< beans::XPropertyState >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XMultiPropertySet >(this);
+	else
+		aAny <<= OWeakAggObject::queryAggregation( rType );
+
+	return aAny;
+}
+=====================================================================
+Found a 42 line (219 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 243 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                intr.local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+=====================================================================
+Found a 18 line (219 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/components/display.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/components/display.cxx
+
+	DisplayAccess ();
+
+    // XPropertySet
+    virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw (RuntimeException);
+    virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const Any& aValue ) throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException);
+    virtual Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& xListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+
+    // XPropertySetInfo
+    virtual Sequence< Property > SAL_CALL getProperties(  ) throw (RuntimeException);
+    virtual Property SAL_CALL getPropertyByName( const OUString& aName ) throw (UnknownPropertyException, RuntimeException);
+    virtual ::sal_Bool SAL_CALL hasPropertyByName( const OUString& Name ) throw (RuntimeException);
+
+    // XIndexAccess
+    virtual ::sal_Int32 SAL_CALL getCount() throw (RuntimeException);
+=====================================================================
+Found a 31 line (219 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+    virtual sal_Bool	drawPolyPolygonBezier( sal_uInt32 nPoly, const sal_uInt32* pPoints, const SalPoint* const* pPtAry, const BYTE* const* pFlgAry );
+
+    // CopyArea --> No RasterOp, but ClipRegion
+    virtual void		copyArea( long nDestX, long nDestY, long nSrcX, long nSrcY, long nSrcWidth,
+                                  long nSrcHeight, USHORT nFlags );
+
+    // CopyBits and DrawBitmap --> RasterOp and ClipRegion
+    // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics
+    virtual void		copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry,
+                                    const SalBitmap& rSalBitmap,
+                                    SalColor nTransparentColor );
+    virtual void		drawBitmap( const SalTwoRect* pPosAry,
+                                    const SalBitmap& rSalBitmap,
+                                    const SalBitmap& rTransparentBitmap );
+    virtual void		drawMask( const SalTwoRect* pPosAry,
+                                  const SalBitmap& rSalBitmap,
+                                  SalColor nMaskColor );
+
+    virtual SalBitmap*	getBitmap( long nX, long nY, long nWidth, long nHeight );
+    virtual SalColor	getPixel( long nX, long nY );
+
+    // invert --> ClipRegion (only Windows or VirDevs)
+    virtual void		invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags);
+    virtual void		invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+
+    virtual BOOL		drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+
+    // native widget rendering methods that require mirroring
+    virtual BOOL        hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion,
+=====================================================================
+Found a 36 line (219 tokens) duplication in the following files: 
+Starting at line 1129 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape2d.cxx
+Starting at line 5856 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+Color SvxMSDffCustomShape::ImplGetColorData( const Color& rFillColor, sal_uInt32 nIndex )
+{
+	Color aRetColor;
+
+	sal_uInt32 i, nColor, nTmp, nCount = nColorData >> 28;
+
+	if ( nCount )
+	{
+		if ( nIndex >= nCount )
+			nIndex = nCount - 1;
+
+		sal_uInt32 nFillColor = (sal_uInt32)rFillColor.GetRed() |
+									((sal_uInt32)rFillColor.GetGreen() << 8 ) |
+										((sal_uInt32)rFillColor.GetBlue() << 16 );
+
+		sal_Int32 nLumDat = nColorData << ( ( 1 + nIndex ) << 2 );
+		sal_Int32 nLuminance = ( nLumDat >> 28 ) * 12;
+
+		nTmp = nFillColor;
+		nColor = 0;
+		for ( i = 0; i < 3; i++ )
+		{
+			sal_Int32 nC = (sal_uInt8)nTmp;
+			nTmp >>= 8;
+			nC += ( ( nLuminance * nC ) >> 8 );
+			if ( nC < 0 )
+				nC = 0;
+			else if ( nC &~ 0xff )
+				nC = 0xff;
+			nColor >>= 8;
+			nColor |= nC << 16;
+		}
+		aRetColor = Color( (sal_uInt8)nColor, (sal_uInt8)( nColor >> 8 ), (sal_uInt8)( nColor >> 16 ) );
+	}
+	return aRetColor;
+}
+=====================================================================
+Found a 23 line (219 tokens) duplication in the following files: 
+Starting at line 2517 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 584 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindow.cxx
+
+void ImplInitMouseEvent( awt::MouseEvent& rEvent, const MouseEvent& rEvt )
+{
+	rEvent.Modifiers = 0;
+	if ( rEvt.IsShift() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::SHIFT;
+	if ( rEvt.IsMod1() )
+	rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
+	if ( rEvt.IsMod2() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+
+	rEvent.Buttons = 0;
+	if ( rEvt.IsLeft() )
+		rEvent.Buttons |= ::com::sun::star::awt::MouseButton::LEFT;
+	if ( rEvt.IsRight() )
+		rEvent.Buttons |= ::com::sun::star::awt::MouseButton::RIGHT;
+	if ( rEvt.IsMiddle() )
+		rEvent.Buttons |= ::com::sun::star::awt::MouseButton::MIDDLE;
+
+	rEvent.X = rEvt.GetPosPixel().X();
+	rEvent.Y = rEvt.GetPosPixel().Y();
+	rEvent.ClickCount = rEvt.GetClicks();
+	rEvent.PopupTrigger = sal_False;
+}
+=====================================================================
+Found a 61 line (219 tokens) duplication in the following files: 
+Starting at line 4529 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 4793 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+				rEntry.eOp = SC_LESS_EQUAL;
+			switch ( GetStackType() )
+			{
+				case svDouble:
+				{
+					rEntry.bQueryByString = FALSE;
+					rEntry.nVal = GetDouble();
+				}
+				break;
+				case svString:
+				{
+					sStr = GetString();
+					rEntry.bQueryByString = TRUE;
+					*rEntry.pStr = sStr;
+				}
+				break;
+				case svDoubleRef :
+				case svSingleRef :
+				{
+					ScAddress aAdr;
+					if ( !PopDoubleRefOrSingleRef( aAdr ) )
+					{
+						PushInt(0);
+						return ;
+					}
+					ScBaseCell* pCell = GetCell( aAdr );
+					if (HasCellValueData(pCell))
+					{
+						rEntry.bQueryByString = FALSE;
+						rEntry.nVal = GetCellValue( aAdr, pCell );
+					}
+					else
+					{
+						if ( GetCellType( pCell ) == CELLTYPE_NOTE )
+						{
+							rEntry.bQueryByString = FALSE;
+							rEntry.nVal = 0.0;
+						}
+						else
+						{
+							GetCellString(sStr, pCell);
+							rEntry.bQueryByString = TRUE;
+							*rEntry.pStr = sStr;
+						}
+					}
+				}
+				break;
+                case svMatrix :
+                {
+                    ScMatValType nType = GetDoubleOrStringFromMatrix(
+                            rEntry.nVal, *rEntry.pStr);
+                    rEntry.bQueryByString = ScMatrix::IsStringType( nType);
+                }
+                break;
+				default:
+				{
+					SetIllegalParameter();
+					return;
+				}
+			}
+			if ( rEntry.bQueryByString )
+=====================================================================
+Found a 9 line (219 tokens) duplication in the following files: 
+Starting at line 533 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* UnoParamValue */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, /* !"#$%&'()*+,-./*/
+=====================================================================
+Found a 26 line (219 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+
+            rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionBoth, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
+            CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
+
+            sal_uInt32     nPlainTextLen = 16;
+            sal_uInt8     *pPlainTextBuffer = new sal_uInt8[ nPlainTextLen ];
+            memset(pPlainTextBuffer, 0, nPlainTextLen);
+            strncpy((char*)pPlainTextBuffer, _sPlainTextStr.getStr(), 16);
+
+            sal_uInt32     nCipherLen = 16;
+            sal_uInt8     *pCipherBuffer = new sal_uInt8[ nCipherLen ];
+            memset(pCipherBuffer, 0, nCipherLen);
+
+            /* rtlCipherError */ aError = rtl_cipher_encode(aCipher, pPlainTextBuffer, nPlainTextLen, pCipherBuffer, nCipherLen);
+            CPPUNIT_ASSERT_MESSAGE("wrong encode", aError == rtl_Cipher_E_None);
+
+            t_print(T_VERBOSE, "       Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "       Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+            t_print(T_VERBOSE, "     Plain: %s\n", createHex(pPlainTextBuffer, nPlainTextLen).getStr());
+            t_print(           "Cipher Buf: %s\n", createHex(pCipherBuffer, nCipherLen).getStr());
+
+            sal_uInt32     nPlainText2Len = 16;
+            sal_uInt8     *pPlainText2Buffer = new sal_uInt8[ nPlainText2Len ];
+            memset(pPlainText2Buffer, 0, nPlainText2Len);
+
+            /* rtlCipherError */ aError = rtl_cipher_decode(aCipher, pCipherBuffer, nCipherLen, pPlainText2Buffer, nPlainText2Len);
+            CPPUNIT_ASSERT_MESSAGE("wrong decode", aError == rtl_Cipher_E_None);
+=====================================================================
+Found a 39 line (219 tokens) duplication in the following files: 
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+Starting at line 687 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+
+                                }
+                            }
+                        }
+                        break;
+
+                        case 2:
+                        {
+                            const sal_uInt8* pSubTable = pTable;
+                            /*sal_uInt16 nRowWidth    =*/ getUInt16BE( pTable );
+                            sal_uInt16 nOfLeft      = getUInt16BE( pTable );
+                            sal_uInt16 nOfRight     = getUInt16BE( pTable );
+                            /*sal_uInt16 nOfArray     =*/ getUInt16BE( pTable );
+                            const sal_uInt8* pTmp = pSubTable + nOfLeft;
+                            sal_uInt16 nFirstLeft   = getUInt16BE( pTmp );
+                            sal_uInt16 nLastLeft    = getUInt16BE( pTmp ) + nFirstLeft - 1;
+                            pTmp = pSubTable + nOfRight;
+                            sal_uInt16 nFirstRight  = getUInt16BE( pTmp );
+                            sal_uInt16 nLastRight   = getUInt16BE( pTmp ) + nFirstRight -1;
+
+                            for( aPair.first = nFirstLeft; aPair.first < nLastLeft; aPair.first++ )
+                            {
+                                for( aPair.second = 0; aPair.second < nLastRight; aPair.second++ )
+                                {
+                                    sal_Int16 nKern = (sal_Int16)getUInt16BE( pTmp );
+                                    switch( nCoverage & 1 )
+                                    {
+                                        case 1:
+                                            aPair.kern_x = (int)nKern * 1000 / pImplTTFont->unitsPerEm;
+                                            m_pMetrics->m_aXKernPairs.push_back( aPair );
+                                            break;
+                                        case 0:
+                                            aPair.kern_y = (int)nKern * 1000 / pImplTTFont->unitsPerEm;
+                                            m_pMetrics->m_aYKernPairs.push_back( aPair );
+                                            break;                                          
+                                    }
+                                }
+                            }
+                        }
+                        break;
+=====================================================================
+Found a 44 line (219 tokens) duplication in the following files: 
+Starting at line 1266 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+			m_nSymbolsStyle		= nSymbolsStyle;
+			AddonsOptions		aAddonOptions;
+
+			for ( USHORT nPos = 0; nPos < pMenu->GetItemCount(); nPos++ )
+			{
+				USHORT nId = pMenu->GetItemId( nPos );
+				if ( pMenu->GetItemType( nPos ) != MENUITEM_SEPARATOR )
+				{
+					if ( bShowMenuImages )
+					{
+						sal_Bool		bImageSet = sal_False;
+						::rtl::OUString aImageId;
+
+						::framework::MenuConfiguration::Attributes* pMenuAttributes =
+							(::framework::MenuConfiguration::Attributes*)pMenu->GetUserValue( nId );
+
+						if ( pMenuAttributes )
+							aImageId = pMenuAttributes->aImageId; // Retrieve image id from menu attributes
+
+						if ( aImageId.getLength() > 0 )
+						{
+							Image aImage = GetImageFromURL( m_xFrame, aImageId, FALSE, bIsHiContrast );
+							if ( !!aImage )
+							{
+								bImageSet = sal_True;
+								pMenu->SetItemImage( nId, aImage );
+							}
+						}
+
+						if ( !bImageSet )
+						{
+							rtl::OUString aMenuItemCommand = pMenu->GetItemCommand( nId );
+							Image aImage = GetImageFromURL( m_xFrame, aMenuItemCommand, FALSE, bIsHiContrast );
+							if ( !aImage )
+								aImage = aAddonOptions.GetImageFromURL( aMenuItemCommand, FALSE, bIsHiContrast );
+
+							pMenu->SetItemImage( nId, aImage );
+						}
+					}
+					else
+						pMenu->SetItemImage( nId, Image() );
+				}
+			}
+		}
+=====================================================================
+Found a 55 line (219 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/office/OfficeFilePicker.cxx
+Starting at line 508 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+struct FilterEntry
+{
+protected:
+	::rtl::OUString		m_sTitle;
+	::rtl::OUString		m_sFilter;
+
+	UnoFilterList		m_aSubFilters;
+
+public:
+	FilterEntry( const ::rtl::OUString& _rTitle, const ::rtl::OUString& _rFilter )
+		:m_sTitle( _rTitle )
+		,m_sFilter( _rFilter )
+	{
+	}
+
+	FilterEntry( const ::rtl::OUString& _rTitle, const UnoFilterList& _rSubFilters );
+
+	::rtl::OUString		getTitle() const { return m_sTitle; }
+	::rtl::OUString		getFilter() const { return m_sFilter; }
+
+	/// determines if the filter has sub filter (i.e., the filter is a filter group in real)
+	sal_Bool		hasSubFilters( ) const;
+
+	/** retrieves the filters belonging to the entry
+	@return
+		the number of sub filters
+	*/
+	sal_Int32		getSubFilters( UnoFilterList& _rSubFilterList );
+
+	// helpers for iterating the sub filters
+	const UnoFilterEntry*	beginSubFilters() const { return m_aSubFilters.getConstArray(); }
+	const UnoFilterEntry*	endSubFilters() const { return m_aSubFilters.getConstArray() + m_aSubFilters.getLength(); }
+};
+
+//=====================================================================
+
+//---------------------------------------------------------------------
+FilterEntry::FilterEntry( const ::rtl::OUString& _rTitle, const UnoFilterList& _rSubFilters )
+	:m_sTitle( _rTitle )
+	,m_aSubFilters( _rSubFilters )
+{
+}
+
+//---------------------------------------------------------------------
+sal_Bool FilterEntry::hasSubFilters() const
+{
+	return( 0 < m_aSubFilters.getLength() );
+}
+
+//---------------------------------------------------------------------
+sal_Int32 FilterEntry::getSubFilters( UnoFilterList& _rSubFilterList )
+{
+	_rSubFilterList = m_aSubFilters;
+	return m_aSubFilters.getLength();
+}
+=====================================================================
+Found a 45 line (219 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilteradaptor/streamwrap.cxx
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.cxx
+
+	return nRead;
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OInputStreamWrapper::readSomeBytes(staruno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	checkError();
+
+	if (nMaxBytesToRead < 0)
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+
+	return readBytes(aData, nMaxBytesToRead);
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OInputStreamWrapper::skipBytes(sal_Int32 nBytesToSkip) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkError();
+
+	m_pSvStream->setPos(osl_Pos_Current,nBytesToSkip);
+	checkError();
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OInputStreamWrapper::available() throw( stario::NotConnectedException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	sal_uInt64 nPos = 0;
+	m_pSvStream->getPos(nPos);
+	checkError();
+
+	m_pSvStream->setPos(Pos_End,0);
+	checkError();
+
+	sal_uInt64 nAvailable = 0;
+	m_pSvStream->getPos(nAvailable);
+	nAvailable -= nPos;
+
+	m_pSvStream->setPos(Pos_Absolut,nPos);
+	checkError();
+
+	return nAvailable;
+=====================================================================
+Found a 20 line (219 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/filter/XMLFilter.cxx
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+		{ MAP_LEN( "PageLayouts" ), 0, SEQTYPE(::getCppuType((const uno::Reference< container::XNameAccess >*)0)), 	::com::sun::star::beans::PropertyAttribute::MAYBEVOID,     0},
+		{ MAP_LEN( "PrivateData" ), 0,
+			  &::getCppuType( (Reference<XInterface> *)0 ),
+			  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ MAP_LEN( "BaseURI" ), 0,
+			  &::getCppuType( (OUString *)0 ),
+			  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ MAP_LEN( "StreamRelPath" ), 0,
+			  &::getCppuType( (OUString *)0 ),
+			  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ MAP_LEN( "StreamName" ), 0,
+			  &::getCppuType( (OUString *)0 ),
+			  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ MAP_LEN( "BuildId" ), 0,
+			  &::getCppuType( (OUString *)0 ),
+			  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },			
+		{ NULL, 0, 0, NULL, 0, 0 }
+	};
+
+	uno::Reference< beans::XPropertySet > xInfoSet( GenericPropertySet_CreateInstance( new PropertySetInfo( aImportInfoMap ) ) );
+=====================================================================
+Found a 42 line (218 tokens) duplication in the following files: 
+Starting at line 3676 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3769 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+void ScInterpreter::ScSTEXY()
+{
+	if ( !MustHaveParamCount( GetByte(), 2 ) )
+		return;
+	ScMatrixRef pMat1 = GetMatrix();
+	ScMatrixRef pMat2 = GetMatrix();
+	if (!pMat1 || !pMat2)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	SCSIZE nC1, nC2;
+	SCSIZE nR1, nR2;
+	pMat1->GetDimensions(nC1, nR1);
+	pMat2->GetDimensions(nC2, nR2);
+	if (nR1 != nR2 || nC1 != nC2)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	// #i78250# numerical stability improved
+	double fCount           = 0.0;
+	double fSumX            = 0.0;
+	double fSumY            = 0.0;
+	double fSumDeltaXDeltaY = 0.0; // sum of (ValX-MeanX)*(ValY-MeanY)
+	double fSumSqrDeltaX    = 0.0; // sum of (ValX-MeanX)^2
+	double fSumSqrDeltaY    = 0.0; // sum of (ValY-MeanY)^2
+	for (SCSIZE i = 0; i < nC1; i++)
+    {
+		for (SCSIZE j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				double fValX = pMat1->GetDouble(i,j);
+				double fValY = pMat2->GetDouble(i,j);
+				fSumX += fValX;
+				fSumY += fValY;
+				fCount++;
+			}
+		}
+    }
+	if (fCount < 3.0)
+=====================================================================
+Found a 32 line (217 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+                    y_hr += ry_inv;
+                    y_lr = ++m_wrap_mode_y;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+
+                if(fg[0] > base_mask) fg[0] = base_mask;
+                if(fg[1] > base_mask) fg[1] = base_mask;
+                if(fg[2] > base_mask) fg[2] = base_mask;
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)base_mask;
+
+                ++span;
+                ++intr;
+            } while(--len);
+            return base_type::allocator().span();
+        }
+
+    private:
+        WrapModeX m_wrap_mode_x;
+        WrapModeY m_wrap_mode_y;
+    };
+=====================================================================
+Found a 28 line (217 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/calcmove.cxx
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/calcmove.cxx
+
+			if ( !bUseUpper && pPrv )
+            {
+                aFrm.Pos( pPrv->Frm().Pos() );
+                if( FRM_NEIGHBOUR & nMyType )
+                {
+                    BOOL bR2L = IsRightToLeft();
+                    if( bR2L )
+                        (aFrm.*fnRect->fnSetPosX)( (aFrm.*fnRect->fnGetLeft)() -
+                                                 (aFrm.*fnRect->fnGetWidth)() );
+                    else
+                        (aFrm.*fnRect->fnSetPosX)( (aFrm.*fnRect->fnGetLeft)() +
+                                          (pPrv->Frm().*fnRect->fnGetWidth)() );
+
+                    // cells may now leave their uppers
+                    if( bVert && FRM_CELL & nMyType && !bReverse )
+                        aFrm.Pos().X() -= aFrm.Width() -pPrv->Frm().Width();
+                }
+                else if( bVert && FRM_NOTE_VERT & nMyType )
+                {
+                    if( bReverse )
+                        aFrm.Pos().X() += pPrv->Frm().Width();
+                    else
+                        aFrm.Pos().X() -= aFrm.Width();
+                }
+                else
+                    aFrm.Pos().Y() += pPrv->Frm().Height();
+			}
+			else
+=====================================================================
+Found a 34 line (217 tokens) duplication in the following files: 
+Starting at line 3257 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/crsrsh.cxx
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edlingu.cxx
+
+                pNode->SetWrongDirty( true );
+#endif
+				// make sure the selection build later from the
+				// data below does not include footnotes and other
+				// "in word" character to the left and right in order
+				// to preserve those. Therefore count those "in words"
+				// in order to modify the selection accordingly.
+				const sal_Unicode* pChar = aText.GetBuffer();
+				xub_StrLen nLeft = 0;
+				while (pChar && *pChar++ == CH_TXTATR_INWORD)
+					++nLeft;
+				pChar = aText.Len() ? aText.GetBuffer() + aText.Len() - 1 : 0;
+				xub_StrLen nRight = 0;
+				while (pChar && *pChar-- == CH_TXTATR_INWORD)
+					++nRight;
+
+				aPos.nContent = nBegin + nLeft;
+                pCrsr = GetCrsr();
+				*pCrsr->GetPoint() = aPos;
+				pCrsr->SetMark();
+				ExtendSelection( sal_True, nLen - nLeft - nRight );
+                //no determine the rectangle in the current line
+                xub_StrLen nWordStart = (nBegin + nLeft) < nLineStart ? nLineStart : nBegin + nLeft;
+                //take one less than the line end - otherwise the next line would be calculated
+                xub_StrLen nWordEnd = (nBegin + nLen - nLeft - nRight) > nLineEnd ? nLineEnd - 1: (nBegin + nLen - nLeft - nRight);
+                Push();
+                pCrsr->DeleteMark();
+                SwIndex& rContent = GetCrsr()->GetPoint()->nContent;
+                rContent = nWordStart;
+                SwRect aStartRect;
+                SwCrsrMoveState aState;
+                aState.bRealWidth = TRUE;
+                SwCntntNode* pCntntNode = pCrsr->GetCntntNode();
+                SwCntntFrm *pCntntFrame = pCntntNode->GetFrm(pPt, pCrsr->GetPoint(), FALSE);
+=====================================================================
+Found a 34 line (217 tokens) duplication in the following files: 
+Starting at line 980 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/acccfg.cxx
+Starting at line 1064 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/acccfg.cxx
+
+IMPL_LINK( SfxAcceleratorConfigPage, SaveHdl, sfx2::FileDialogHelper*, EMPTYARG )
+{
+    DBG_ASSERT( m_pFileDlg, "SfxInternetPage::DialogClosedHdl(): no file dialog" );
+
+    ::rtl::OUString sCfgName;
+    if ( ERRCODE_NONE == m_pFileDlg->GetError() )
+        sCfgName = m_pFileDlg->GetPath();
+
+    if ( !sCfgName.getLength() )
+        return 0;
+
+    GetTabDialog()->EnterWait();
+
+    css::uno::Reference< css::frame::XModel >                xDoc        ;
+    css::uno::Reference< css::ui::XUIConfigurationManager > xCfgMgr     ;
+    css::uno::Reference< css::embed::XStorage >              xRootStorage;
+
+    try
+    {
+        // first check if URL points to a document already loaded
+        xDoc = SearchForAlreadyLoadedDoc(sCfgName);
+        if (xDoc.is())
+        {
+            // get config manager, force creation if there was none before
+            css::uno::Reference< css::ui::XUIConfigurationManagerSupplier > xCfgSupplier(xDoc, css::uno::UNO_QUERY_THROW);
+            xCfgMgr = xCfgSupplier->getUIConfigurationManager();
+        }
+        else
+        {
+            // URL doesn't point to a loaded document, try to access it as a single storage
+            css::uno::Reference< css::lang::XSingleServiceFactory > xStorageFactory(m_xSMGR->createInstance(SERVICE_STORAGEFACTORY), css::uno::UNO_QUERY_THROW);
+            css::uno::Sequence< css::uno::Any >                     lArgs(2);
+            lArgs[0] <<= sCfgName;
+            lArgs[1] <<= css::embed::ElementModes::WRITE;
+=====================================================================
+Found a 72 line (217 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testpaste/cbptest.cxx
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testviewer/cbvtest.cxx
+
+	if( !InitInstance( g_hInst, nCmdShow ) ) 
+	{
+		return FALSE;
+	}
+
+	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TESTWIN32);
+
+	// Hauptnachrichtenschleife:
+	while( GetMessage(&msg, NULL, 0, 0) ) 
+	{
+		if( !TranslateAccelerator (msg.hwnd, hAccelTable, &msg) ) 
+		{
+			TranslateMessage( &msg );
+			DispatchMessage( &msg );
+		}
+	}
+
+	// uninitializing the ole libraries
+	//OleUninitialize( );
+	CoUninitialize( );
+
+	return msg.wParam;
+}
+
+
+
+//
+//  FUNKTION: MyRegisterClass()
+//
+//  AUFGABE: Registriert die Fensterklasse.
+//
+//  KOMMENTARE:
+//
+//    Diese Funktion und ihre Verwendung sind nur notwendig, wenn dieser Code
+//    mit Win32-Systemen vor der 'RegisterClassEx'-Funktion kompatibel sein soll,
+//    die zu Windows 95 hinzugef�gt wurde. Es ist wichtig diese Funktion aufzurufen,
+//    damit der Anwendung kleine Symbole mit den richtigen Proportionen zugewiesen
+//    werden.
+//
+ATOM MyRegisterClass( HINSTANCE hInstance )
+{
+	WNDCLASSEXW wcex;
+
+	wcex.cbSize = sizeof(WNDCLASSEX); 
+
+	wcex.style			= CS_HREDRAW | CS_VREDRAW;
+	wcex.lpfnWndProc	= (WNDPROC)WndProc;
+	wcex.cbClsExtra		= 0;
+	wcex.cbWndExtra		= 0;
+	wcex.hInstance		= hInstance;
+	wcex.hIcon			= LoadIcon(hInstance, (LPCTSTR)IDI_TESTWIN32);
+	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW);
+	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);
+	wcex.lpszMenuName	= (LPCWSTR)IDC_TESTWIN32;
+	wcex.lpszClassName	= szWindowClass;
+	wcex.hIconSm		= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
+
+	return RegisterClassExW(&wcex);
+}
+
+//
+//   FUNKTION: InitInstance(HANDLE, int)
+//
+//   AUFGABE: Speichert die Instanzzugriffsnummer und erstellt das Hauptfenster
+//
+//   KOMMENTARE:
+//
+//        In dieser Funktion wird die Instanzzugriffsnummer in einer globalen Variable
+//        gespeichert und das Hauptprogrammfenster erstellt und angezeigt.
+//
+BOOL InitInstance( HINSTANCE hInstance, int nCmdShow )
+{
+=====================================================================
+Found a 8 line (217 tokens) duplication in the following files: 
+Starting at line 1506 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13, 0,13, 0,13,13,13,13,13,13,13,13,13,13,// fe70 - fe7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe80 - fe8f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe90 - fe9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fea0 - feaf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// feb0 - febf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fec0 - fecf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fed0 - fedf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fee0 - feef
+=====================================================================
+Found a 8 line (217 tokens) duplication in the following files: 
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 864 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbd0 - fbdf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbe0 - fbef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbf0 - fbff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd00 - fd0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd10 - fd1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd20 - fd2f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21,// fd30 - fd3f
+=====================================================================
+Found a 8 line (217 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c20 - 2c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c30 - 2c3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c40 - 2c4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c50 - 2c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c60 - 2c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c70 - 2c7f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 2c80 - 2c8f
+     1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2c90 - 2c9f
+=====================================================================
+Found a 46 line (217 tokens) duplication in the following files: 
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+			nStartPosFirstLine2 = nStartPosFirstLine;
+		}
+		else
+		{
+			String aField2;
+			if ( pConnection->getStringDelimiter() != '\0' )
+				aFirstLine.GetTokenSpecial(aField2,nStartPosFirstLine2,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+			else
+				aField2 = aField;
+
+			if (aField2.Len() == 0)
+			{
+				bNumeric = FALSE;
+			}
+			else
+			{
+				bNumeric = TRUE;
+				xub_StrLen nDot = 0;
+				for (xub_StrLen j = 0; j < aField2.Len(); j++)
+				{
+					sal_Unicode c = aField2.GetChar(j);
+					// nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen?
+					if ((!cDecimalDelimiter || c != cDecimalDelimiter) &&
+						(!cThousandDelimiter || c != cThousandDelimiter) &&
+						!aCharClass.isDigit(aField2,j))
+					{
+						bNumeric = FALSE;
+						break;
+					}
+					if (cDecimalDelimiter && c == cDecimalDelimiter)
+					{
+						nPrecision = 15; // we have an decimal value
+						nScale = 2;
+						nDot++;
+					}
+				}
+
+				if (nDot > 1) // if there is more than one dot it isn't a number
+					bNumeric = FALSE;
+				if (bNumeric && cThousandDelimiter)
+				{
+					// Ist der Trenner richtig angegeben?
+					String aValue = aField2.GetToken(0,cDecimalDelimiter);
+					for (sal_Int32 j = aValue.Len() - 4; j >= 0; j -= 4)
+					{
+						sal_Unicode c = aValue.GetChar(static_cast<sal_uInt16>(j));
+=====================================================================
+Found a 50 line (216 tokens) duplication in the following files: 
+Starting at line 374 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlsect.cxx
+Starting at line 770 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlsect.cxx
+
+		aFrmItemSet.Put( aFmtCol );
+
+		const SfxPoolItem *pItem;
+		if( SFX_ITEM_SET == aItemSet.GetItemState( RES_BACKGROUND, sal_False,
+												   &pItem ) )
+		{
+			aFrmItemSet.Put( *pItem );
+			aItemSet.ClearItem( RES_BACKGROUND );
+		}
+		if( SFX_ITEM_SET == aItemSet.GetItemState( RES_FRAMEDIR, sal_False,
+												   &pItem ) )
+		{
+			aFrmItemSet.Put( *pItem );
+			aItemSet.ClearItem( RES_FRAMEDIR );
+		}
+		pDoc->Insert( *pPam, aSection, &aFrmItemSet, sal_False );
+
+		// Jump to section, if this is requested.
+		if( JUMPTO_REGION == eJumpTo && aName == sJmpMark )
+		{
+			bChkJumpMark = sal_True;
+			eJumpTo = JUMPTO_NONE;
+		}
+
+		SwTxtNode* pOldTxtNd =
+			bAppended ? 0 : pDoc->GetNodes()[pPam->GetPoint()->nNode]
+								->GetTxtNode();
+
+		pPam->Move( fnMoveBackward );
+
+		// Move PageDesc and SwFmtBreak attributes of the current node
+		// to the section's first node.
+		if( pOldTxtNd )
+			MovePageDescAttrs( pOldTxtNd, pPam->GetPoint()->nNode.GetIndex(),
+							   sal_True	 );
+
+		if( pPostIts )
+		{
+			// Move pending PostIts into the section.
+			InsertAttrs( *pPostIts );
+			delete pPostIts;
+			pPostIts = 0;
+		}
+
+		pCntxt->SetSpansSection( sal_True );
+
+		// Insert a bookmark if its name differs from the section's name only.
+		if( aPropInfo.aId.Len() && aPropInfo.aId==aName )
+			aPropInfo.aId.Erase();
+	}
+=====================================================================
+Found a 61 line (216 tokens) duplication in the following files: 
+Starting at line 797 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 699 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+    OSL_TRACE("Out osl_writeProfileString [ok]\n");
+#endif
+	return bRet;
+}
+
+
+sal_Bool SAL_CALL osl_writeProfileBool(oslProfile Profile,
+							 const sal_Char* pszSection, const sal_Char* pszEntry,
+							 sal_Bool Value)
+{
+    sal_Bool bRet = sal_False;
+
+#ifdef TRACE_OSL_PROFILE
+    OSL_TRACE("In  osl_writeProfileBool\n");
+#endif
+
+	if (Value)
+		bRet=osl_writeProfileString(Profile, pszSection, pszEntry, STR_INI_BOOLONE);
+	else
+		bRet=osl_writeProfileString(Profile, pszSection, pszEntry, STR_INI_BOOLZERO);
+
+#ifdef TRACE_OSL_PROFILE
+    OSL_TRACE("Out osl_writeProfileBool [ok]\n");
+#endif
+
+    return bRet;
+}
+
+
+sal_Bool SAL_CALL osl_writeProfileIdent(oslProfile Profile,
+							  const sal_Char* pszSection, const sal_Char* pszEntry,
+							  sal_uInt32 FirstId, const sal_Char* Strings[],
+							  sal_uInt32 Value)
+{
+	int i, n;
+    sal_Bool bRet = sal_False;
+
+#ifdef TRACE_OSL_PROFILE
+    OSL_TRACE("In  osl_writeProfileIdent\n");
+#endif
+
+	for (n = 0; Strings[n] != NULL; n++);
+
+	if ((i = Value - FirstId) >= n)
+		bRet=sal_False;
+	else
+		bRet=osl_writeProfileString(Profile, pszSection, pszEntry, Strings[i]);
+
+#ifdef TRACE_OSL_PROFILE
+    OSL_TRACE("Out osl_writeProfileIdent\n");
+#endif
+    return bRet;
+}
+
+
+sal_Bool SAL_CALL osl_removeProfileEntry(oslProfile Profile,
+							   const sal_Char *pszSection, const sal_Char *pszEntry)
+{
+	sal_uInt32    NoEntry;
+	osl_TProfileSection* pSec;
+	osl_TProfileImpl*    pProfile = 0;
+=====================================================================
+Found a 30 line (216 tokens) duplication in the following files: 
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+
+			case 0x10 : ComOut( CGM_LEVEL1 | CGM_EXTENDED_PRIMITIVES_SET, "Circular Arc Centre Close" )
+			{
+				double fOrientation, fStartAngle, fEndAngle, vector[ 4 ];
+				FloatPoint aCenter, aRadius;
+
+				if ( mbFigure )
+					mpOutAct->CloseRegion();
+
+				ImplGetPoint( aCenter, sal_True );
+				ImplGetVector( &vector[ 0 ] );
+				if ( pElement->eVDCType == VDC_REAL )
+				{
+					aRadius.X = (double)ImplGetFloat( pElement->eVDCRealPrecision, pElement->nVDCRealSize );
+				}
+				else
+				{
+					aRadius.X = (double)ImplGetI( pElement->nVDCIntegerPrecision );
+				}
+				ImplMapDouble( aRadius.X );
+				aRadius.Y = aRadius.X;
+				fStartAngle = acos( vector[ 0 ] / sqrt( vector[ 0 ] * vector[ 0 ] + vector[ 1 ] * vector[ 1 ] ) ) * 57.29577951308;
+				fEndAngle = acos( vector[ 2 ] / sqrt( vector[ 2 ] * vector[ 2 ] + vector[ 3 ] * vector[ 3 ] ) ) * 57.29577951308;
+
+				if ( vector[ 1 ] > 0 )
+					fStartAngle = 360 - fStartAngle;
+				if ( vector[ 3 ] > 0 )
+					fEndAngle = 360 - fEndAngle;
+
+				if ( mbAngReverse )
+					ImplSwitchStartEndAngle( fStartAngle, fEndAngle );
+=====================================================================
+Found a 30 line (216 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx
+
+    virtual sal_Bool SAL_CALL importer(
+            const Sequence<PropertyValue>& aSourceData, 
+            const Reference<XDocumentHandler>& xHandler, 
+            const Sequence<OUString>& msUserData) 
+        throw(RuntimeException);
+
+    // XExportFilter
+    virtual sal_Bool SAL_CALL exporter(
+            const Sequence<PropertyValue>& aSourceData, 
+            const Sequence<OUString>& msUserData) 
+        throw(RuntimeException);
+
+    // XDocumentHandler
+    virtual void SAL_CALL startDocument() 
+        throw (SAXException,RuntimeException);
+    virtual void SAL_CALL endDocument() 
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL startElement(const OUString& str, const Reference<XAttributeList>& attriblist) 
+        throw (SAXException,RuntimeException);
+    virtual void SAL_CALL endElement(const OUString& str)  
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL characters(const OUString& str)  
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL ignorableWhitespace(const OUString& str) 
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL processingInstruction(const OUString& str, const OUString& str2) 
+        throw (com::sun::star::xml::sax::SAXException,RuntimeException);
+    virtual void SAL_CALL setDocumentLocator(const Reference<XLocator>& doclocator) 
+        throw (SAXException,RuntimeException);    
+};
+=====================================================================
+Found a 61 line (216 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BDriver.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ORealDriver.cxx
+
+	extern T3SQLAllocHandle pODBC3SQLAllocHandle;
+	extern T3SQLConnect pODBC3SQLConnect;
+	extern T3SQLDriverConnect pODBC3SQLDriverConnect;
+	extern T3SQLBrowseConnect pODBC3SQLBrowseConnect;
+	extern T3SQLDataSources pODBC3SQLDataSources;
+	extern T3SQLDrivers pODBC3SQLDrivers;
+	extern T3SQLGetInfo pODBC3SQLGetInfo;
+	extern T3SQLGetFunctions pODBC3SQLGetFunctions;
+	extern T3SQLGetTypeInfo pODBC3SQLGetTypeInfo;
+	extern T3SQLSetConnectAttr pODBC3SQLSetConnectAttr;
+	extern T3SQLGetConnectAttr pODBC3SQLGetConnectAttr;
+	extern T3SQLSetEnvAttr pODBC3SQLSetEnvAttr;
+	extern T3SQLGetEnvAttr pODBC3SQLGetEnvAttr;
+	extern T3SQLSetStmtAttr pODBC3SQLSetStmtAttr;
+	extern T3SQLGetStmtAttr pODBC3SQLGetStmtAttr;
+	//extern T3SQLSetDescField pODBC3SQLSetDescField;
+	//extern T3SQLGetDescField pODBC3SQLGetDescField;
+	//extern T3SQLGetDescRec pODBC3SQLGetDescRec;
+	//extern T3SQLSetDescRec pODBC3SQLSetDescRec;
+	extern T3SQLPrepare pODBC3SQLPrepare;
+	extern T3SQLBindParameter pODBC3SQLBindParameter;
+	//extern T3SQLGetCursorName pODBC3SQLGetCursorName;
+	extern T3SQLSetCursorName pODBC3SQLSetCursorName;
+	extern T3SQLExecute pODBC3SQLExecute;
+	extern T3SQLExecDirect pODBC3SQLExecDirect;
+	//extern T3SQLNativeSql pODBC3SQLNativeSql;
+	extern T3SQLDescribeParam pODBC3SQLDescribeParam;
+	extern T3SQLNumParams pODBC3SQLNumParams;
+	extern T3SQLParamData pODBC3SQLParamData;
+	extern T3SQLPutData pODBC3SQLPutData;
+	extern T3SQLRowCount pODBC3SQLRowCount;
+	extern T3SQLNumResultCols pODBC3SQLNumResultCols;
+	extern T3SQLDescribeCol pODBC3SQLDescribeCol;
+	extern T3SQLColAttribute pODBC3SQLColAttribute;
+	extern T3SQLBindCol pODBC3SQLBindCol;
+	extern T3SQLFetch pODBC3SQLFetch;
+	extern T3SQLFetchScroll pODBC3SQLFetchScroll;
+	extern T3SQLGetData pODBC3SQLGetData;
+	extern T3SQLSetPos pODBC3SQLSetPos;
+	extern T3SQLBulkOperations pODBC3SQLBulkOperations;
+	extern T3SQLMoreResults pODBC3SQLMoreResults;
+	//extern T3SQLGetDiagField pODBC3SQLGetDiagField;
+	extern T3SQLGetDiagRec pODBC3SQLGetDiagRec;
+	extern T3SQLColumnPrivileges pODBC3SQLColumnPrivileges;
+	extern T3SQLColumns pODBC3SQLColumns;
+	extern T3SQLForeignKeys pODBC3SQLForeignKeys;
+	extern T3SQLPrimaryKeys pODBC3SQLPrimaryKeys;
+	extern T3SQLProcedureColumns pODBC3SQLProcedureColumns;
+	extern T3SQLProcedures pODBC3SQLProcedures;
+	extern T3SQLSpecialColumns pODBC3SQLSpecialColumns;
+	extern T3SQLStatistics pODBC3SQLStatistics;
+	extern T3SQLTablePrivileges pODBC3SQLTablePrivileges;
+	extern T3SQLTables pODBC3SQLTables;
+	extern T3SQLFreeStmt pODBC3SQLFreeStmt;
+	extern T3SQLCloseCursor pODBC3SQLCloseCursor;
+	extern T3SQLCancel pODBC3SQLCancel;
+	extern T3SQLEndTran pODBC3SQLEndTran;
+	extern T3SQLDisconnect pODBC3SQLDisconnect;
+	extern T3SQLFreeHandle pODBC3SQLFreeHandle;
+	extern T3SQLGetCursorName pODBC3SQLGetCursorName;
+	extern T3SQLNativeSql pODBC3SQLNativeSql;
+=====================================================================
+Found a 30 line (215 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_rasterizer_outline_aa.h
+Starting at line 430 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_rasterizer_outline_aa.h
+
+                    v = &m_src_vertices[2];
+                    dv.x1    = v->x;
+                    dv.y1    = v->y;
+                    dv.lnext = v->len;
+                    dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr);
+
+                    v = &m_src_vertices[dv.idx];
+                    dv.x2 = v->x;
+                    dv.y2 = v->y;
+                    dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext);
+
+                    dv.xb1 = 0;
+                    dv.yb1 = 0;
+                    dv.xb2 = 0;
+                    dv.yb2 = 0;
+
+                    if(m_accurate_join)
+                    {
+                        dv.flags = 0;
+                    }
+                    else
+                    {
+                        dv.flags = 
+                                (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) |
+                            ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1);
+                    }
+
+                    if((dv.flags & 1) == 0)
+                    {
+                        bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1);
+=====================================================================
+Found a 26 line (215 tokens) duplication in the following files: 
+Starting at line 839 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/enhwmf.cxx
+Starting at line 887 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/enhwmf.cxx
+
+				UINT32 nSize = cbBmiSrc + cbBitsSrc + 14;
+				char* pBuf = new char[ nSize ];
+				SvMemoryStream aTmp( pBuf, nSize, STREAM_READ | STREAM_WRITE );
+				aTmp.ObjectOwnsMemory( TRUE );
+				aTmp << (BYTE)'B'
+					 << (BYTE)'M'
+					 << (UINT32)cbBitsSrc
+					 << (UINT16)0
+					 << (UINT16)0
+					 << (UINT32)cbBmiSrc + 14;
+				pWMF->Seek( nStart + offBmiSrc );
+				pWMF->Read( pBuf + 14, cbBmiSrc );
+				pWMF->Seek( nStart + offBitsSrc );
+				pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
+				aTmp.Seek( 0 );
+				aBitmap.Read( aTmp, TRUE );
+
+                // test if it is sensible to crop
+                if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
+                    ( xSrc >= 0 ) && ( ySrc >= 0 ) &&
+                        ( xSrc + cxSrc <= aBitmap.GetSizePixel().Width() ) &&
+                            ( ySrc + cySrc <= aBitmap.GetSizePixel().Height() ) )
+                {
+                    Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
+                    aBitmap.Crop( aCropRect );
+                }
+=====================================================================
+Found a 22 line (215 tokens) duplication in the following files: 
+Starting at line 408 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/lingucfg.cxx
+Starting at line 508 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/lingucfg.cxx
+
+    SvtLinguOptions &rOpt = aOpt;
+    switch (nPropertyHandle)
+    {
+        case UPH_IS_GERMAN_PRE_REFORM :     pbVal = &rOpt.bIsGermanPreReform;  break;
+        case UPH_IS_USE_DICTIONARY_LIST :   pbVal = &rOpt.bIsUseDictionaryList;    break;
+        case UPH_IS_IGNORE_CONTROL_CHARACTERS : pbVal = &rOpt.bIsIgnoreControlCharacters;  break;
+        case UPH_IS_HYPH_AUTO :             pbVal = &rOpt.bIsHyphAuto; break;
+        case UPH_IS_HYPH_SPECIAL :          pbVal = &rOpt.bIsHyphSpecial;  break;
+        case UPH_IS_SPELL_AUTO :            pbVal = &rOpt.bIsSpellAuto;    break;
+        case UPH_IS_SPELL_HIDE :            pbVal = &rOpt.bIsSpellHideMarkings;    break;
+        case UPH_IS_SPELL_IN_ALL_LANGUAGES :pbVal = &rOpt.bIsSpellInAllLanguages;  break;
+        case UPH_IS_SPELL_SPECIAL :         pbVal = &rOpt.bIsSpellSpecial; break;
+        case UPH_IS_WRAP_REVERSE :          pbVal = &rOpt.bIsSpellReverse; break;
+        case UPH_DEFAULT_LANGUAGE :         pnVal = &rOpt.nDefaultLanguage;    break;
+        case UPH_IS_SPELL_CAPITALIZATION :  pbVal = &rOpt.bIsSpellCapitalization;      break;
+        case UPH_IS_SPELL_WITH_DIGITS :     pbVal = &rOpt.bIsSpellWithDigits;  break;
+        case UPH_IS_SPELL_UPPER_CASE :      pbVal = &rOpt.bIsSpellUpperCase;       break;
+        case UPH_HYPH_MIN_LEADING :         pnVal = &rOpt.nHyphMinLeading;     break;
+        case UPH_HYPH_MIN_TRAILING :        pnVal = &rOpt.nHyphMinTrailing;    break;
+        case UPH_HYPH_MIN_WORD_LENGTH :     pnVal = &rOpt.nHyphMinWordLength;  break;
+        case UPH_ACTIVE_DICTIONARIES :
+        {
+=====================================================================
+Found a 7 line (215 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c50 - 0c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c60 - 0c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c70 - 0c7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c80 - 0c8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c90 - 0c9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ca0 - 0caf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,// 0cb0 - 0cbf
+=====================================================================
+Found a 21 line (215 tokens) duplication in the following files: 
+Starting at line 2338 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1017 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pAction;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+				}
+
+				nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+				if( nMoveX || nMoveY )
+					aTmpMtf.Move( nMoveX, nMoveY );
+=====================================================================
+Found a 28 line (215 tokens) duplication in the following files: 
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+Starting at line 775 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+
+		case (B3D_TXT_MODE_BND|B3D_TXT_KIND_LUM) :
+		{
+			fS = fS - floor(fS);
+			fT = fT - floor(fT);
+			long nX2, nY2;
+
+			if(fS > 0.5) {
+				nX2 = (nX + 1) % GetBitmapSize().Width();
+				fS = 1.0 - fS;
+			} else
+				nX2 = nX ? nX - 1 : GetBitmapSize().Width() - 1;
+
+			if(fT > 0.5) {
+				nY2 = (nY + 1) % GetBitmapSize().Height();
+				fT = 1.0 - fT;
+			} else
+				nY2 = nY ? nY - 1 : GetBitmapSize().Height() - 1;
+
+			fS += 0.5;
+			fT += 0.5;
+			double fRight = 1.0 - fS;
+			double fBottom = 1.0 - fT;
+
+			double fMidVal = (
+				(double)pReadAccess->GetLuminance(nY, nX) * fS +
+				(double)pReadAccess->GetLuminance(nY, nX2) * fRight) * fT + (
+				(double)pReadAccess->GetLuminance(nY2, nX) * fS +
+				(double)pReadAccess->GetLuminance(nY2, nX2) * fRight) * fBottom;
+=====================================================================
+Found a 53 line (215 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilteradaptor/streamwrap.cxx
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.cxx
+
+namespace foo
+{
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::osl;
+
+//==================================================================
+//= OInputStreamWrapper
+//==================================================================
+//------------------------------------------------------------------
+OInputStreamWrapper::OInputStreamWrapper( File& _rStream )
+				 :m_pSvStream(&_rStream)
+				 ,m_bSvStreamOwner(sal_False)
+{
+}
+
+//------------------------------------------------------------------
+OInputStreamWrapper::OInputStreamWrapper( File* pStream, sal_Bool bOwner )
+				 :m_pSvStream( pStream )
+				 ,m_bSvStreamOwner( bOwner )
+{
+}
+
+//------------------------------------------------------------------
+OInputStreamWrapper::~OInputStreamWrapper()
+{
+	if( m_bSvStreamOwner )
+		delete m_pSvStream;
+
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OInputStreamWrapper::readBytes(staruno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
+				throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	checkConnected();
+
+	if (nBytesToRead < 0)
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	aData.realloc(nBytesToRead);
+
+	sal_uInt64 nRead = 0;
+	m_pSvStream->read((void*)aData.getArray(), nBytesToRead,nRead);
+
+	checkError();
+
+	// Wenn gelesene Zeichen < MaxLength, staruno::Sequence anpassen
+	if (nRead < nBytesToRead)
+=====================================================================
+Found a 21 line (215 tokens) duplication in the following files: 
+Starting at line 1231 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 2338 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+				}
+
+				nMoveX = aDestPt.X() - aSrcPt.X(), nMoveY = aDestPt.Y() - aSrcPt.Y();
+
+				if( nMoveX || nMoveY )
+					aTmpMtf.Move( nMoveX, nMoveY );
+=====================================================================
+Found a 41 line (215 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+
+                    pThis->getBridge()->getUnoEnv(),
+                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pReturn ),
+                        &pInterface, pTD, 0 );
+                    (*pInterface->release)( pInterface );
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *ppException = 0;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+} } }
+=====================================================================
+Found a 42 line (214 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_trans_bilinear.h
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_trans_perspective.h
+
+            m_valid = simul_eq<8, 1>::solve(left, right, m_mtx);
+        }
+
+
+        //--------------------------------------------------------------------
+        // Set the direct transformations, i.e., rectangle -> quadrangle
+        void rect_to_quad(double x1, double y1, double x2, double y2, 
+                          const double* quad)
+        {
+            double src[8];
+            src[0] = src[6] = x1;
+            src[2] = src[4] = x2;
+            src[1] = src[3] = y1;
+            src[5] = src[7] = y2;
+            quad_to_quad(src, quad);
+        }
+
+
+        //--------------------------------------------------------------------
+        // Set the reverse transformations, i.e., quadrangle -> rectangle
+        void quad_to_rect(const double* quad, 
+                          double x1, double y1, double x2, double y2)
+        {
+            double dst[8];
+            dst[0] = dst[6] = x1;
+            dst[2] = dst[4] = x2;
+            dst[1] = dst[3] = y1;
+            dst[5] = dst[7] = y2;
+            quad_to_quad(quad, dst);
+        }
+
+        //--------------------------------------------------------------------
+        // Check if the equations were solved successfully
+        bool is_valid() const { return m_valid; }
+
+        //--------------------------------------------------------------------
+        // Transform a point (x, y)
+        void transform(double* x, double* y) const
+        {
+            double tx = *x;
+            double ty = *y;
+            double d = 1.0 / (m_mtx[6][0] * tx + m_mtx[7][0] * ty + 1.0);
+=====================================================================
+Found a 59 line (214 tokens) duplication in the following files: 
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+
+            m_dy <<= line_subpixel_shift;
+        }
+
+        //---------------------------------------------------------------------
+        void inc_x() { m_dist += m_dy; }
+        void dec_x() { m_dist -= m_dy; }
+        void inc_y() { m_dist -= m_dx; }
+        void dec_y() { m_dist += m_dx; }
+
+        //---------------------------------------------------------------------
+        void inc_x(int _dy)
+        {
+            m_dist += m_dy; 
+            if(_dy > 0) m_dist -= m_dx; 
+            if(_dy < 0) m_dist += m_dx; 
+        }
+
+        //---------------------------------------------------------------------
+        void dec_x(int _dy)
+        {
+            m_dist -= m_dy; 
+            if(_dy > 0) m_dist -= m_dx; 
+            if(_dy < 0) m_dist += m_dx; 
+        }
+
+        //---------------------------------------------------------------------
+        void inc_y(int _dx)
+        {
+            m_dist -= m_dx; 
+            if(_dx > 0) m_dist += m_dy; 
+            if(_dx < 0) m_dist -= m_dy; 
+        }
+
+        void dec_y(int _dx)
+        //---------------------------------------------------------------------
+        {
+            m_dist += m_dx; 
+            if(_dx > 0) m_dist += m_dy; 
+            if(_dx < 0) m_dist -= m_dy; 
+        }
+
+        //---------------------------------------------------------------------
+        int dist() const { return m_dist; }
+        int dx()   const { return m_dx;   }
+        int dy()   const { return m_dy;   }
+
+    private:
+        //---------------------------------------------------------------------
+        int m_dx;
+        int m_dy;
+        int m_dist;
+    };
+
+
+
+
+
+    //===================================================distance_interpolator2
+    class distance_interpolator2
+=====================================================================
+Found a 59 line (214 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchyservices.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_services.cxx
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavservices.cxx
+
+using namespace com::sun::star;
+
+//=========================================================================
+static sal_Bool writeInfo( void * pRegistryKey,
+                           const rtl::OUString & rImplementationName,
+                           uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+    rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+    aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+    uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+        xKey = static_cast< registry::XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+    catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+        catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// WebDAV Content Provider.
+	//////////////////////////////////////////////////////////////////////
+
+	writeInfo( pRegistryKey,
+=====================================================================
+Found a 57 line (214 tokens) duplication in the following files: 
+Starting at line 155 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/provider.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavservices.cxx
+
+static sal_Bool writeInfo( void * pRegistryKey,
+                           const rtl::OUString & rImplementationName,
+                           uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+    rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+    aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+    uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+        xKey = static_cast< registry::XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+    catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+        catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// WebDAV Content Provider.
+	//////////////////////////////////////////////////////////////////////
+
+	writeInfo( pRegistryKey,
+			   ::webdav_ucp::ContentProvider::getImplementationName_Static(),
+=====================================================================
+Found a 59 line (214 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpservices.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchyservices.cxx
+
+using namespace hierarchy_ucp;
+
+//=========================================================================
+static sal_Bool writeInfo( void * pRegistryKey,
+                           const rtl::OUString & rImplementationName,
+                           uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+    rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+    aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+    uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+        xKey = static_cast< registry::XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+    catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+        catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// Hierarchy Content Provider.
+	//////////////////////////////////////////////////////////////////////
+
+	writeInfo( pRegistryKey,
+=====================================================================
+Found a 41 line (214 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/view/viewpg.cxx
+Starting at line 495 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/view/viewpg.cxx
+
+		( !rOptions.bPrintLeftPage && !rOptions.bPrintRightPage ))
+		return;
+
+	MultiSelection aMulti( rOptions.aMulti );
+	Range aPages( aMulti.FirstSelected(), aMulti.LastSelected() );
+	if ( aPages.Max() > USHRT_MAX )
+		aPages.Max() = USHRT_MAX;
+
+	ASSERT( aPages.Min() > 0,
+			"Seite 0 Drucken?" );
+	ASSERT( aPages.Min() <= aPages.Max(),
+			"MinSeite groesser MaxSeite." );
+
+	// eine neue Shell fuer den Printer erzeugen
+	ViewShell aShell( *this, 0 );
+	if ( &GetRefDev() == pPrt )
+        aShell.mpTmpRef = new SfxPrinter( *pPrt );
+
+	SET_CURR_SHELL( &aShell );
+
+	aShell.PrepareForPrint( rOptions );
+
+	// gibt es versteckte Absatzfelder, unnoetig wenn die Absaetze bereits
+	// ausgeblendet sind.
+	int bHiddenFlds = FALSE;
+	SwFieldType* pFldType = 0;
+	if ( GetViewOptions()->IsShowHiddenPara() )
+	{
+        pFldType = getIDocumentFieldsAccess()->GetSysFldType( RES_HIDDENPARAFLD );
+		bHiddenFlds = 0 != pFldType->GetDepends();
+		if( bHiddenFlds )
+		{
+			SwMsgPoolItem aHnt( RES_HIDDENPARA_PRINT );
+			pFldType->Modify( &aHnt, 0);
+		}
+	}
+
+	// Seiten fuers Drucken formatieren
+	aShell.CalcPagesForPrint( (USHORT)aPages.Max(), &rProgress );
+
+	USHORT nCopyCnt = rOptions.bCollate ? rOptions.nCopyCount : 1;
+=====================================================================
+Found a 48 line (214 tokens) duplication in the following files: 
+Starting at line 2674 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 2730 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+	const Rectangle& rRect = GetBoundingRect( pRefEntry );
+	Size aEntrySize( rRect.GetSize() );
+	Rectangle aPrevEntryRect( aDDLastEntryPos, aEntrySize );
+	Rectangle aCurEntryRect( aCurEntryPos, aEntrySize );
+
+	if( !aPrevEntryRect.IsOver( aCurEntryRect ) )
+	{
+		HideDDIcon();
+		ShowDDIcon( pRefEntry, rPosPix );
+		return;
+	}
+
+	// Ueberlappung des neuen und alten D&D-Pointers!
+
+	Rectangle aFullRect( aPrevEntryRect.Union( aCurEntryRect ) );
+	if( !pDDTempDev )
+	{
+		pDDTempDev = new VirtualDevice( *pView );
+		pDDTempDev->SetFont( pView->GetFont() );
+	}
+
+	Size aFullSize( aFullRect.GetSize() );
+	Point aFullPos( aFullRect.TopLeft() );
+
+	pDDTempDev->SetOutputSizePixel( aFullSize );
+
+	// Hintergrund (mit dem alten D&D-Pointer!) sichern
+	pDDTempDev->DrawOutDev( aEmptyPoint, aFullSize, aFullPos, aFullSize, *pView );
+	// den alten Buffer in den neuen Buffer pasten
+	aDDLastRectPos = aDDLastRectPos - aFullPos;
+
+	pDDTempDev->DrawOutDev(
+		aDDLastRectPos,
+		pDDDev->GetOutputSizePixel(),
+		aEmptyPoint,
+		pDDDev->GetOutputSizePixel(),
+		*pDDDev );
+
+	// Swap
+	VirtualDevice* pTemp = pDDDev;
+	pDDDev = pDDTempDev;
+	pDDTempDev = pTemp;
+
+	// in den restaurierten Hintergrund den neuen D&D-Pointer zeichnen
+	pDDTempDev->SetOutputSizePixel( pDDDev->GetOutputSizePixel() );
+	pDDTempDev->DrawOutDev(
+		aEmptyPoint, aFullSize, aEmptyPoint, aFullSize, *pDDDev );
+	Point aRelPos = aCurEntryPos - aFullPos;
+=====================================================================
+Found a 25 line (214 tokens) duplication in the following files: 
+Starting at line 1142 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appserv.cxx
+Starting at line 1172 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appserv.cxx
+
+				xORB->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.text.ModuleDispatcher")), UNO_QUERY );
+
+			if ( xProv.is() )
+			{
+				::rtl::OUString aCmd = ::rtl::OUString::createFromAscii( GetInterface()->GetSlot( rReq.GetSlot() )->GetUnoName() );
+				Reference< com::sun::star::frame::XDispatchHelper > xHelper(
+					xORB->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.frame.DispatchHelper")), UNO_QUERY );
+				if ( xHelper.is() )
+				{
+					Sequence < com::sun::star::beans::PropertyValue > aSeq;
+					if ( rReq.GetArgs() )
+						TransformItems( rReq.GetSlot(), *rReq.GetArgs(), aSeq );
+					Any aResult = xHelper->executeDispatch( xProv, aCmd, ::rtl::OUString(), 0, aSeq );
+					::com::sun::star::frame::DispatchResultEvent aEvent;
+					sal_Bool bSuccess = (
+										 (aResult >>= aEvent) &&
+                                         (aEvent.State == ::com::sun::star::frame::DispatchResultState::SUCCESS)
+										);
+					rReq.SetReturnValue( SfxBoolItem( rReq.GetSlot(), bSuccess ) );
+				}
+			}
+		}
+		break;
+
+		case SID_ADDRESS_DATA_SOURCE:
+=====================================================================
+Found a 56 line (214 tokens) duplication in the following files: 
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+	uno::Reference<lang::XMultiServiceFactory> & rFactory,
+	const sal_Char* pFilterName,
+	Sequence<Any> rFilterArguments,
+	const OUString& rName,
+	sal_Bool bMustBeSuccessfull)
+{
+    DBG_ASSERT(xStorage.is(), "Need storage!");
+	DBG_ASSERT(NULL != pStreamName, "Please, please, give me a name!");
+
+	// open stream (and set parser input)
+	OUString sStreamName = OUString::createFromAscii(pStreamName);
+    sal_Bool bContainsStream = sal_False;
+    try
+    {
+        bContainsStream = xStorage->isStreamElement(sStreamName);
+    }
+    catch( container::NoSuchElementException& )
+    {
+    }
+
+    if (!bContainsStream )
+	{
+		// stream name not found! Then try the compatibility name.
+		// if no stream can be opened, return immediatly with OK signal
+
+		// do we even have an alternative name?
+		if ( NULL == pCompatibilityStreamName )
+			return 0;
+
+		// if so, does the stream exist?
+		sStreamName = OUString::createFromAscii(pCompatibilityStreamName);
+        try
+        {
+            bContainsStream = xStorage->isStreamElement(sStreamName);
+        }
+        catch( container::NoSuchElementException& )
+        {
+        }
+
+        if (! bContainsStream )
+			return 0;
+	}
+
+	// set Base URL
+	uno::Reference< beans::XPropertySet > xInfoSet;
+	if( rFilterArguments.getLength() > 0 )
+		rFilterArguments.getConstArray()[0] >>= xInfoSet;
+	DBG_ASSERT( xInfoSet.is(), "missing property set" );
+	if( xInfoSet.is() )
+	{
+		OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("StreamName") );
+		xInfoSet->setPropertyValue( sPropName, makeAny( sStreamName ) );
+	}
+
+    try
+    {
+=====================================================================
+Found a 9 line (214 tokens) duplication in the following files: 
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 539 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLWID),	SC_WID_UNO_CELLWID,	&getCppuType((sal_Int32*)0),			0, 0 },
+=====================================================================
+Found a 17 line (214 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+
+		case  1: strncpy( sText, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
+		case  2: strncpy( sTagStr, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
+		case 70: nAttrFlags=rDGR.GetI(); break;
+		case 73: nFieldLen=rDGR.GetI(); break;
+		case 50: fRotAngle=rDGR.GetF(); break;
+		case 41: fXScale=rDGR.GetF(); break;
+		case 51: fOblAngle=rDGR.GetF(); break;
+		case  7: strncpy( sStyle, rDGR.GetS(), DXF_MAX_STRING_LEN + 1 ); break;
+		case 71: nGenFlags=rDGR.GetI(); break;
+		case 72: nHorzJust=rDGR.GetI(); break;
+		case 74: nVertJust=rDGR.GetI(); break;
+		case 11: aAlign.fx=rDGR.GetF(); break;
+		case 21: aAlign.fy=rDGR.GetF(); break;
+		case 31: aAlign.fz=rDGR.GetF(); break;
+		default: DXFBasicEntity::EvaluateGroup(rDGR);
+	}
+}
+=====================================================================
+Found a 42 line (214 tokens) duplication in the following files: 
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/statusbarfactory.cxx
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/toolboxfactory.cxx
+
+    if ( aResourceURL.indexOf( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/" ))) != 0 )
+        throw IllegalArgumentException();
+    else
+    {
+        // Identify frame and determine document based ui configuration manager/module ui configuration manager
+        if ( xFrame.is() && !xConfigSource.is() )
+        {
+            bool bHasSettings( false );
+            Reference< XModel > xModel;
+
+            Reference< XController > xController = xFrame->getController();
+            if ( xController.is() )
+                xModel = xController->getModel();
+
+            if ( xModel.is() )
+            {
+                Reference< XUIConfigurationManagerSupplier > xUIConfigurationManagerSupplier( xModel, UNO_QUERY );
+                if ( xUIConfigurationManagerSupplier.is() )
+                {
+                    xCfgMgr = xUIConfigurationManagerSupplier->getUIConfigurationManager();
+                    bHasSettings = xCfgMgr->hasSettings( aResourceURL );
+                }
+            }
+
+            if ( !bHasSettings )
+            {
+                rtl::OUString aModuleIdentifier = m_xModuleManager->identify( Reference< XInterface >( xFrame, UNO_QUERY ));
+                if ( aModuleIdentifier.getLength() )
+                {
+                    Reference< ::com::sun::star::ui::XModuleUIConfigurationManagerSupplier > xModuleCfgSupplier(
+                        m_xServiceManager->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( 
+                            "com.sun.star.ui.ModuleUIConfigurationManagerSupplier" ))), 
+                        UNO_QUERY );
+                    xCfgMgr = xModuleCfgSupplier->getUIConfigurationManager( aModuleIdentifier );
+                    bHasSettings = xCfgMgr->hasSettings( aResourceURL );
+                }
+            }
+        }
+    }
+
+    PropertyValue aPropValue;
+    Sequence< Any > aPropSeq( 5 );
+=====================================================================
+Found a 56 line (214 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LNoException.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/quotedstring.cxx
+
+    void QuotedTokenizedString::GetTokenSpecial( String& _rStr,xub_StrLen& nStartPos, sal_Unicode cTok, sal_Unicode cStrDel ) const
+    {
+	    _rStr.Erase();
+	    xub_StrLen nLen = Len();
+	    if ( nLen )
+	    {
+		    BOOL bInString = (nStartPos < nLen) && ((*this).GetChar(nStartPos) == cStrDel);	// Befinden wir uns INNERHALB eines (cStrDel delimited) String?
+
+		    // Erstes Zeichen ein String-Delimiter?
+		    if (bInString )
+			    ++nStartPos;			// dieses Zeichen ueberlesen!
+		    // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen
+		    for( xub_StrLen i = nStartPos; i < nLen; ++i )
+		    {
+			    if (bInString)
+			    {
+				    // Wenn jetzt das String-Delimiter-Zeichen auftritt ...
+				    if ( (*this).GetChar(i) == cStrDel )
+				    {
+					    if ((i+1 < nLen) && ((*this).GetChar(i+1) == cStrDel))
+					    {
+						    // Verdoppeltes String-Delimiter-Zeichen:
+						    ++i;	// kein String-Ende, naechstes Zeichen ueberlesen.
+
+						    _rStr += (*this).GetChar(i);	// Zeichen gehoert zum Resultat-String
+					    }
+					    else
+					    {
+						    // String-Ende
+						    bInString = FALSE;
+					    }
+				    }
+				    else
+				    {
+					    _rStr += (*this).GetChar(i);	// Zeichen gehoert zum Resultat-String
+				    }
+
+			    }
+			    else
+			    {
+				    // Stimmt das Tokenzeichen ueberein, dann erhoehe nTok
+				    if ( (*this).GetChar(i) == cTok )
+				    {
+					    // Vorzeitiger Abbruch der Schleife moeglich, denn
+					    // wir haben, was wir wollten.
+					    nStartPos = i+1;
+					    break;
+				    }
+				    else
+				    {
+					    _rStr += (*this).GetChar(i);	// Zeichen gehoert zum Resultat-String
+				    }
+			    }
+		    }
+	    }
+    }
+=====================================================================
+Found a 37 line (214 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+using namespace lang;
+
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::util;
+
+using ::rtl::OUString;
+using ::rtl::OString;
+
+using namespace ::cppu;
+
+#define ASCII(x) ::rtl::OUString::createFromAscii(x)
+
+ostream& operator << (ostream& out, rtl::OUString const& aStr)
+{
+	sal_Unicode const* const pStr = aStr.getStr();
+	sal_Unicode const* const pEnd = pStr + aStr.getLength();
+	for (sal_Unicode const* p = pStr; p < pEnd; ++p)
+		if (0 < *p && *p < 127) // ASCII
+			out << char(*p);
+		else
+			out << "[\\u" << hex << *p << "]";
+	return out;
+}
+
+void showSequence(const Sequence<OUString> &aSeq)
+{
+	OUString aArray;
+	const OUString *pStr = aSeq.getConstArray();
+	for (int i=0;i<aSeq.getLength();i++)
+	{
+		OUString aStr = pStr[i];
+		// aArray += aStr + ASCII(", ");
+		cout << aStr << endl;
+	}
+	volatile int dummy = 0;
+}
+=====================================================================
+Found a 41 line (214 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+	if (!produceType(typeName, typeMgr,	generated, pOptions))
+	{
+		fprintf(stderr, "%s ERROR: %s\n", 
+				pOptions->getProgramName().getStr(), 
+				OString("cannot dump Type '" + typeName + "'").getStr());
+		exit(99);
+	}
+
+    RegistryKeyList typeKeys = typeMgr.getTypeKeys(typeName);
+	RegistryKeyList::const_iterator iter = typeKeys.begin();
+    RegistryKey key, subKey;
+    RegistryKeyArray subKeys;
+
+	while (iter != typeKeys.end())
+	{
+        key = (*iter).first;
+        if (!(*iter).second  && !key.openSubKeys(OUString(), subKeys))
+        {
+            for (sal_uInt32 i = 0; i < subKeys.getLength(); i++)
+            {
+                subKey = subKeys.getElement(i);
+                if (bFullScope)
+                {
+                    if (!produceAllTypes(
+                            subKey, (*iter).second,
+                            typeMgr, generated, pOptions, sal_True))
+                        return sal_False;
+                } else
+                {
+                    if (!produceType(subKey, (*iter).second,
+                                     typeMgr, generated, pOptions))
+                        return sal_False;
+                }
+            }
+        }      
+        
+        ++iter;
+	}
+    
+	return sal_True;			
+}
+=====================================================================
+Found a 54 line (214 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+Starting at line 1195 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+sal_Bool ConstantsType::dump(IdlOptions* pOptions)
+	throw( CannotDumpException )
+{
+	sal_Bool ret = sal_False;
+
+	OString outPath;
+	if (pOptions->isValid("-O"))
+		outPath = pOptions->getOption("-O");
+
+	OString tmpFileName;
+	OString hFileName = createFileNameFromType(outPath, m_typeName, ".idl");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tml");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+
+	return ret;
+}
+=====================================================================
+Found a 35 line (213 tokens) duplication in the following files: 
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+Starting at line 1706 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/iahndl.cxx
+
+                                                 xIH));
+                if (aRec.UserList.getLength() != 0)
+                {
+                    OSL_ENSURE(aRec.UserList[0].Passwords.getLength() != 0,
+                               "empty password list");
+                    if (!rRequest.HasPassword
+                        || rRequest.Password != aRec.UserList[0].Passwords[0])
+                    {
+                        if (xSupplyAuthentication->canSetUserName())
+                            xSupplyAuthentication->
+                                setUserName(
+				    aRec.UserList[0].UserName.getStr());
+                        if (xSupplyAuthentication->canSetPassword())
+                            xSupplyAuthentication->
+                                setPassword(aRec.UserList[0].Passwords[0].
+                                            getStr());
+                        if (aRec.UserList[0].Passwords.getLength() > 1)
+                            if (rRequest.HasRealm)
+                            {
+                                if (xSupplyAuthentication->canSetRealm())
+                                    xSupplyAuthentication->
+                                        setRealm(aRec.UserList[0].Passwords[1].
+                                                                  getStr());
+                            }
+                            else if (xSupplyAuthentication->canSetAccount())
+                                xSupplyAuthentication->
+                                    setAccount(aRec.UserList[0].Passwords[1].
+                                               getStr());
+                        xSupplyAuthentication->select();
+                        return;
+                    }
+                }
+            }
+        }
+        catch (star::task::NoMasterException const &)
+=====================================================================
+Found a 47 line (213 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpservices.cxx
+Starting at line 155 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/provider.cxx
+
+static sal_Bool
+writeInfo( void                                 *pRegistryKey,
+	   const rtl::OUString                  &rImplementationName,
+	   uno::Sequence< rtl::OUString > const &rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try {
+		xKey = static_cast< registry::XRegistryKey * >
+			(pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & ) {
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n ) {
+		try {
+			xKey->createKey( rServiceNames[ n ] );
+
+		} catch ( registry::InvalidRegistryException const & ) {
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+extern "C" void SAL_CALL 
+component_getImplementationEnvironment( const sal_Char  **ppEnvTypeName,
+					uno_Environment **/*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" sal_Bool SAL_CALL 
+component_writeInfo( void */*pServiceManager*/,
+		     void *pRegistryKey )
+{
+	return pRegistryKey &&
+		writeInfo( pRegistryKey,
+=====================================================================
+Found a 8 line (213 tokens) duplication in the following files: 
+Starting at line 1440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1448 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f60 - 2f6f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f70 - 2f7f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f80 - 2f8f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f90 - 2f9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fa0 - 2faf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fb0 - 2fbf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2fc0 - 2fcf
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fd0 - 2fdf
+=====================================================================
+Found a 7 line (213 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1243 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 19 line (213 tokens) duplication in the following files: 
+Starting at line 507 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipict/ipict.cxx
+Starting at line 531 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipict/ipict.cxx
+
+	Point aStartPt, aEndPt, aCenter;
+
+	*pPict >> nstartAngle >> narcAngle;
+	if (narcAngle<0) {
+		nstartAngle = nstartAngle + narcAngle;
+		narcAngle=-narcAngle;
+	}
+	fAng1=((double)nstartAngle)/180.0*3.14159265359;
+	fAng2=((double)(nstartAngle+narcAngle))/180.0*3.14159265359;
+	aCenter=Point((aLastArcRect.Left()+aLastArcRect.Right())/2,
+				  (aLastArcRect.Top()+aLastArcRect.Bottom())/2);
+	aStartPt=Point(aCenter.X()+(long)( sin(fAng2)*256.0),
+				   aCenter.Y()+(long)(-cos(fAng2)*256.0));
+	aEndPt=  Point(aCenter.X()+(long)( sin(fAng1)*256.0),
+				   aCenter.Y()+(long)(-cos(fAng1)*256.0));
+		DrawingMethod(eMethod);
+	if (eMethod==PDM_FRAME) pVirDev->DrawArc(aLastArcRect,aStartPt,aEndPt);
+	else pVirDev->DrawPie(aLastArcRect,aStartPt,aEndPt);
+	return 4;
+=====================================================================
+Found a 27 line (213 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/os2/ibm/tempnam.c
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/borland/tempnam.c
+
+	unsigned int _psp = rand();
+#endif
+
+   pl = strlen(P_tmpdir);
+
+   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+   else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir);
+   if( dir != NULL ) dl = strlen(dir);
+
+   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
+     return(NULL);
+
+   *p = '\0';
+
+   if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) )
+     if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) )
+	if( d_access( strcpy(p, P_tmpdir), 0) != 0 )
+	   if( !prefix )
+	      prefix = "tp";
+
+   if(prefix)
+   {
+      *(p+strlen(p)+2) = '\0';
+      (void)strncat(p, prefix, 2);
+   }
+
+   sprintf( buf, "%08x", _psp );
+=====================================================================
+Found a 22 line (213 tokens) duplication in the following files: 
+Starting at line 1019 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/UITools.cxx
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/helper/vclunohelper.cxx
+
+float VCLUnoHelper::ConvertFontWidth( FontWidth eWidth )
+{
+	if( eWidth == WIDTH_DONTKNOW )
+		return ::com::sun::star::awt::FontWidth::DONTKNOW;
+	else if( eWidth == WIDTH_ULTRA_CONDENSED )
+		return ::com::sun::star::awt::FontWidth::ULTRACONDENSED;
+	else if( eWidth == WIDTH_EXTRA_CONDENSED )
+		return ::com::sun::star::awt::FontWidth::EXTRACONDENSED;
+	else if( eWidth == WIDTH_CONDENSED )
+		return ::com::sun::star::awt::FontWidth::CONDENSED;
+	else if( eWidth == WIDTH_SEMI_CONDENSED )
+		return ::com::sun::star::awt::FontWidth::SEMICONDENSED;
+	else if( eWidth == WIDTH_NORMAL )
+		return ::com::sun::star::awt::FontWidth::NORMAL;
+	else if( eWidth == WIDTH_SEMI_EXPANDED )
+		return ::com::sun::star::awt::FontWidth::SEMIEXPANDED;
+	else if( eWidth == WIDTH_EXPANDED )
+		return ::com::sun::star::awt::FontWidth::EXPANDED;
+	else if( eWidth == WIDTH_EXTRA_EXPANDED )
+		return ::com::sun::star::awt::FontWidth::EXTRAEXPANDED;
+	else if( eWidth == WIDTH_ULTRA_EXPANDED )
+		return ::com::sun::star::awt::FontWidth::ULTRAEXPANDED;
+=====================================================================
+Found a 24 line (213 tokens) duplication in the following files: 
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+Sequence< Type > SAL_CALL OFlatTable::getTypes(  ) throw(RuntimeException)
+{
+	Sequence< Type > aTypes = OTable_TYPEDEF::getTypes();
+	::std::vector<Type> aOwnTypes;
+	aOwnTypes.reserve(aTypes.getLength());
+	const Type* pBegin = aTypes.getConstArray();
+	const Type* pEnd = pBegin + aTypes.getLength();
+	for(;pBegin != pEnd;++pBegin)
+	{
+		if(!(*pBegin == ::getCppuType((const Reference<XKeysSupplier>*)0)	||
+			*pBegin == ::getCppuType((const Reference<XRename>*)0)			||
+			*pBegin == ::getCppuType((const Reference<XIndexesSupplier>*)0) ||
+			*pBegin == ::getCppuType((const Reference<XAlterTable>*)0)		||
+			*pBegin == ::getCppuType((const Reference<XDataDescriptorFactory>*)0)))
+		{
+			aOwnTypes.push_back(*pBegin);
+		}
+	}
+	Type *pTypes = aOwnTypes.empty() ? 0 : &aOwnTypes[0];
+	return Sequence< Type >(pTypes, aOwnTypes.size());
+}
+
+// -------------------------------------------------------------------------
+Any SAL_CALL OFlatTable::queryInterface( const Type & rType ) throw(RuntimeException)
+=====================================================================
+Found a 21 line (213 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+Starting at line 1184 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+
+	aMap[adDate]			= _bJetEngine ? ADOS::MapADOType2Jdbc(adDBTimeStamp) : ADOS::MapADOType2Jdbc(adDate);
+	aMap[adDBDate]			= ADOS::MapADOType2Jdbc(adDBDate);
+	aMap[adDBTime]			= ADOS::MapADOType2Jdbc(adDBTime);
+	aMap[adDBTimeStamp]		= ADOS::MapADOType2Jdbc(adDBTimeStamp);
+	aMap[adBSTR]			= ADOS::MapADOType2Jdbc(adBSTR);
+	aMap[adChar]			= ADOS::MapADOType2Jdbc(adChar);
+	aMap[adVarChar]			= ADOS::MapADOType2Jdbc(adVarChar);
+	aMap[adLongVarChar]		= ADOS::MapADOType2Jdbc(adLongVarChar);
+	aMap[adWChar]			= ADOS::MapADOType2Jdbc(adWChar);
+	aMap[adVarWChar]		= ADOS::MapADOType2Jdbc(adVarWChar);
+	aMap[adLongVarWChar]	= ADOS::MapADOType2Jdbc(adLongVarWChar);
+	aMap[adBinary]			= ADOS::MapADOType2Jdbc(adBinary);
+	aMap[adVarBinary]		= ADOS::MapADOType2Jdbc(adVarBinary);
+	aMap[adLongVarBinary]	= ADOS::MapADOType2Jdbc(adLongVarBinary);
+	aMap[adChapter]			= ADOS::MapADOType2Jdbc(adChapter);
+	aMap[adFileTime]		= ADOS::MapADOType2Jdbc(adFileTime);
+	aMap[adPropVariant]		= ADOS::MapADOType2Jdbc(adPropVariant);
+	aMap[adVarNumeric]		= ADOS::MapADOType2Jdbc(adVarNumeric);
+//	aMap[adArray]			= ADOS::MapADOType2Jdbc(adArray);
+
+	m_aValueRange[2] = aMap;
+=====================================================================
+Found a 37 line (213 tokens) duplication in the following files: 
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+Starting at line 2152 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+
+		const basegfx::B2DPolygon aPolygon(aPolyPolygon.getB2DPolygon(nPolygon));
+		const sal_uInt32 nPointCount(aPolygon.count());
+
+		if(nPointCount)
+		{
+			if(aPolygon.areControlPointsUsed())
+			{
+				// prepare edge-based loop
+				basegfx::B2DPoint aCurrentPoint(aPolygon.getB2DPoint(0));
+				const sal_uInt32 nEdgeCount(aPolygon.isClosed() ? nPointCount - 1 : nPointCount);
+
+				// first vertex
+				path.move_to(aCurrentPoint.getX(), aCurrentPoint.getY());
+
+				for(sal_uInt32 a(0); a < nEdgeCount; a++)
+				{
+					// access next point
+					const sal_uInt32 nNextIndex((a + 1) % nPointCount);
+					const basegfx::B2DPoint aNextPoint(aPolygon.getB2DPoint(nNextIndex));
+
+					// get control points
+					const basegfx::B2DPoint aControlNext(aPolygon.getNextControlPoint(a));
+					const basegfx::B2DPoint aControlPrev(aPolygon.getPrevControlPoint(nNextIndex));
+
+					// specify first cp, second cp, next vertex
+					path.curve4(
+						aControlNext.getX(), aControlNext.getY(),
+						aControlPrev.getX(), aControlPrev.getY(),
+						aNextPoint.getX(), aNextPoint.getY());
+
+					// prepare next step
+					aCurrentPoint = aNextPoint;
+				}
+			}
+			else
+			{
+				const basegfx::B2DPoint aPoint(aPolygon.getB2DPoint(0));
+=====================================================================
+Found a 49 line (213 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx
+
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if defined BRIDGES_DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+=====================================================================
+Found a 28 line (212 tokens) duplication in the following files: 
+Starting at line 622 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 804 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+							  OUString( RTL_CONSTASCII_USTRINGPARAM("currency-symbol") ),
+							  _xAttributes );	
+	ctx.importShortProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DecimalAccuracy") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("decimal-accuracy") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ShowThousandsSeparator") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("thousands-separator") ),
+							   _xAttributes );
+	ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Value") ),
+							  OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
+							  _xAttributes );
+	ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueMin") ),
+							  OUString( RTL_CONSTASCII_USTRINGPARAM("value-min") ),
+							  _xAttributes );
+	ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueMax") ),
+							  OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
+							  _xAttributes );
+	ctx.importDoubleProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ValueStep") ),
+							  OUString( RTL_CONSTASCII_USTRINGPARAM("value-step") ),
+							  _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Spin") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("spin") ),
+							   _xAttributes );
+	if (ctx.importLongProperty( OUSTR("RepeatDelay"), OUSTR("repeat"),
+                                _xAttributes ))
+		ctx.getControlModel()->setPropertyValue(
+            OUSTR("Repeat"), makeAny(true) );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("PrependCurrencySymbol") ),
+=====================================================================
+Found a 39 line (212 tokens) duplication in the following files: 
+Starting at line 391 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+	PrinterInfoManager& rManager( PrinterInfoManager::get() );
+    static const char* pNoSyncDetection = getenv( "SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION" );
+    if( ! pNoSyncDetection || ! *pNoSyncDetection )
+    {
+        // #i62663# synchronize possible asynchronouse printer detection now
+        rManager.checkPrintersChanged( true );
+    }
+	::std::list< OUString > aPrinters;
+	rManager.listPrinters( aPrinters );
+
+	for( ::std::list< OUString >::iterator it = aPrinters.begin(); it != aPrinters.end(); ++it )
+	{
+		const PrinterInfo& rInfo( rManager.getPrinterInfo( *it ) );
+		// Neuen Eintrag anlegen
+		SalPrinterQueueInfo* pInfo = new SalPrinterQueueInfo;
+		pInfo->maPrinterName	= *it;
+		pInfo->maDriver			= rInfo.m_aDriverName;
+		pInfo->maLocation		= rInfo.m_aLocation;
+		pInfo->maComment      	= rInfo.m_aComment;
+		pInfo->mpSysData		= NULL;
+
+        sal_Int32 nIndex = 0;
+        while( nIndex != -1 )
+		{
+			String aToken( rInfo.m_aFeatures.getToken( 0, ',', nIndex ) );
+			if( aToken.CompareToAscii( "pdf=", 4 ) == COMPARE_EQUAL )
+			{
+				pInfo->maLocation = getPdfDir( rInfo );
+				break;
+			}
+		}
+
+		pList->Add( pInfo );
+	}
+}
+
+// -----------------------------------------------------------------------
+
+void X11SalInstance::DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo )
+=====================================================================
+Found a 18 line (212 tokens) duplication in the following files: 
+Starting at line 1271 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/print2.cxx
+Starting at line 1314 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/print2.cxx
+
+                pOut->DrawGradient( rPolyPoly, rGradient );
+        }
+        else
+        {
+            const Color&    rStartColor = rGradient.GetStartColor();
+            const Color&    rEndColor = rGradient.GetEndColor();
+            const long      nR = ( ( (long) rStartColor.GetRed() * rGradient.GetStartIntensity() ) / 100L +
+                                   ( (long) rEndColor.GetRed() * rGradient.GetEndIntensity() ) / 100L ) >> 1;
+            const long      nG = ( ( (long) rStartColor.GetGreen() * rGradient.GetStartIntensity() ) / 100L +
+                                   ( (long) rEndColor.GetGreen() * rGradient.GetEndIntensity() ) / 100L ) >> 1;
+            const long      nB = ( ( (long) rStartColor.GetBlue() * rGradient.GetStartIntensity() ) / 100L +
+                                   ( (long) rEndColor.GetBlue() * rGradient.GetEndIntensity() ) / 100L ) >> 1;
+            const Color     aColor( (BYTE) nR, (BYTE) nG, (BYTE) nB );
+
+            pOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
+            pOut->SetLineColor( aColor );
+            pOut->SetFillColor( aColor );
+            pOut->DrawPolyPolygon( rPolyPoly );
+=====================================================================
+Found a 27 line (212 tokens) duplication in the following files: 
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcfg.cxx
+Starting at line 436 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcfg.cxx
+
+                    aVal.Value <<= OUString( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.VCL/FontSubstitutions" ) );
+                    aArgs.getArray()[0] <<= aVal;
+                    m_xConfigAccess =
+                        Reference< XNameAccess >(
+                            m_xConfigProvider->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+                                                "com.sun.star.configuration.ConfigurationAccess" )),
+                                                                            aArgs ),
+                            UNO_QUERY );
+                    if( m_xConfigAccess.is() )
+                    {
+                        Sequence< OUString > aLocales = m_xConfigAccess->getElementNames();
+                        // fill config hash with empty interfaces
+                        int nLocales = aLocales.getLength();
+                        const OUString* pLocaleStrings = aLocales.getConstArray();
+                        Locale aLoc;
+                        for( int i = 0; i < nLocales; i++ )
+                        {
+                            sal_Int32 nIndex = 0;
+                            aLoc.Language = pLocaleStrings[i].getToken( 0, sal_Unicode('-'), nIndex ).toAsciiLowerCase();
+                            if( nIndex != -1 )
+                                aLoc.Country = pLocaleStrings[i].getToken( 0, sal_Unicode('-'), nIndex ).toAsciiUpperCase();
+                            else
+                                aLoc.Country = OUString();
+                            if( nIndex != -1 )
+                                aLoc.Variant = pLocaleStrings[i].getToken( 0, sal_Unicode('-'), nIndex ).toAsciiUpperCase();
+                            else
+                                aLoc.Variant = OUString();
+=====================================================================
+Found a 21 line (212 tokens) duplication in the following files: 
+Starting at line 5070 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4640 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] =
+{
+	{ 0, 0 },
+	{ 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
+	{ 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
+	{ 0, 21600 },
+	{ 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
+	{ 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
+	{ 21600, 21600 },
+	{ 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
+	{ 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
+	{ 21600, 0 },
+	{ 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
+	{ 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 },
+	{ 0, 0 }
+};
+static const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 10800 },		//0x400
+=====================================================================
+Found a 32 line (212 tokens) duplication in the following files: 
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/digest.c
+Starting at line 1150 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/digest.c
+
+static void __rtl_digest_endSHA (DigestContextSHA *ctx)
+{
+	static const sal_uInt8 end[4] =
+	{
+		0x80, 0x00, 0x00, 0x00
+	};
+	register const sal_uInt8 *p = end;
+	
+	register sal_uInt32 *X;
+	register int         i;
+
+	X = ctx->m_pData;
+	i = (ctx->m_nDatLen >> 2);
+
+#ifdef OSL_BIGENDIAN
+	__rtl_digest_swapLong (X, i + 1);
+#endif /* OSL_BIGENDIAN */
+
+	switch (ctx->m_nDatLen & 0x03)
+	{
+		case 1: X[i] &= 0x000000ff; break;
+		case 2: X[i] &= 0x0000ffff; break;
+		case 3: X[i] &= 0x00ffffff; break;
+	}
+
+	switch (ctx->m_nDatLen & 0x03)
+	{
+		case 0: X[i]  = ((sal_uInt32)(*(p++))) <<  0L;
+		case 1: X[i] |= ((sal_uInt32)(*(p++))) <<  8L;
+		case 2: X[i] |= ((sal_uInt32)(*(p++))) << 16L;
+		case 3: X[i] |= ((sal_uInt32)(*(p++))) << 24L;
+	}
+=====================================================================
+Found a 59 line (212 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_StreamSocket.cxx
+
+const char * pTestString2 = " Passed#OK";
+
+//------------------------------------------------------------------------
+// helper functions
+//------------------------------------------------------------------------
+
+// just used to test socket::close() when accepting
+class AcceptorThread : public Thread
+{
+    ::osl::AcceptorSocket asAcceptorSocket;
+    ::rtl::OUString aHostIP;
+    sal_Bool bOK;
+protected:  
+    void SAL_CALL run( )
+        {
+            ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
+            ::osl::StreamSocket ssStreamConnection;
+        
+            asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
+            sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+            if  ( sal_True != bOK1 )
+            {
+                t_print("# AcceptorSocket bind address failed.\n" ) ;
+                return;
+            }
+            sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+            if  ( sal_True != bOK2 )
+            { 
+                t_print("# AcceptorSocket listen address failed.\n" ) ;
+                return;
+            }
+
+            asAcceptorSocket.enableNonBlockingMode( sal_False );
+        
+            oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
+            if (eResult != osl_Socket_Ok )
+            {
+                bOK = sal_True;
+                t_print("AcceptorThread: acceptConnection failed! \n");            
+            }   
+        }
+public:
+    AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
+            : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
+        {
+            bOK = sal_False;
+        }
+    
+    sal_Bool isOK() { return bOK; }
+    
+    ~AcceptorThread( )
+        {
+            if ( isRunning( ) )
+            {
+                asAcceptorSocket.shutdown();
+                t_print("# error: Acceptor thread not terminated.\n" );
+            }
+        }
+};
+=====================================================================
+Found a 92 line (212 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/AutoBuffer.cxx
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/sysui/source/win32/misc/AutoBuffer.cxx
+
+	if ( new_size != m_buffSize )
+	{
+		if ( new_size > m_buffSize )
+		{
+			delete [] m_pBuff;
+			m_pBuff = NULL;
+		}
+
+		m_buffSize = new_size;
+	}
+
+	return sal_True;
+}
+
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+void SAL_CALL CAutoUnicodeBuffer::empty( )
+{
+	if ( m_pBuff )
+		ZeroMemory( m_pBuff, m_buffSize * sizeof( sal_Unicode ) );
+}
+
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+sal_Bool SAL_CALL CAutoUnicodeBuffer::fill( const sal_Unicode* pContent, size_t nLen )
+{
+	OSL_ASSERT( pContent && m_buffSize && (m_buffSize >= nLen) );
+
+	init( );
+
+	sal_Bool bRet = sal_False;
+
+	if ( m_pBuff && pContent && nLen )
+	{
+		CopyMemory( m_pBuff, pContent, nLen * sizeof( sal_Unicode ) );
+		bRet = sal_True;
+	}
+
+	return bRet;
+}
+
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+size_t SAL_CALL CAutoUnicodeBuffer::size( ) const
+{
+	return m_buffSize;
+}
+	
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+CAutoUnicodeBuffer::operator sal_Unicode*( )
+{
+	return m_pBuff;
+}
+	
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+sal_Unicode* CAutoUnicodeBuffer::operator&( )
+{
+	return m_pBuff;
+}
+
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+const sal_Unicode* CAutoUnicodeBuffer::operator&( ) const
+{
+	return m_pBuff;
+}
+
+//------------------------------------------------------------------------
+// 
+//------------------------------------------------------------------------
+
+void SAL_CALL CAutoUnicodeBuffer::init( )
+{
+	if ( !m_pBuff && (m_buffSize > 0) )
+		m_pBuff = new sal_Unicode[ m_buffSize ];		
+
+	empty( );
+}
+=====================================================================
+Found a 20 line (212 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+class Impl2b: public Interface2b, private Base {
+public:
+    virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type)
+        throw (css::uno::RuntimeException)
+    {
+        if (type
+            == getCppuType< css::uno::Reference< css::uno::XInterface > >())
+        {
+            css::uno::Reference< css::uno::XInterface > ref(
+                static_cast< css::uno::XInterface * >(
+                    static_cast< Interface2a * >(this)));
+            return css::uno::Any(&ref, type);
+        } else if (type == getCppuType< css::uno::Reference< Interface2 > >()) {
+            css::uno::Reference< Interface2 > ref(this);
+            return css::uno::Any(&ref, type);
+        } else if (type == getCppuType< css::uno::Reference< Interface2a > >())
+        {
+            css::uno::Reference< Interface2a > ref(this);
+            return css::uno::Any(&ref, type);
+        } else if (type == getCppuType< css::uno::Reference< Interface2b > >())
+=====================================================================
+Found a 44 line (212 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	void ** pCppArgs  = (void **)malloc( 3 * sizeof(void *) * nParams );
+#else
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+#endif
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+                break;
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+#ifdef BROKEN_ALLOCA
+					*(void **)pCppStack = pCppArgs[nPos] = malloc( pParamTypeDescr->nSize ),
+=====================================================================
+Found a 47 line (212 tokens) duplication in the following files: 
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription * >(
+                        member)->pAttributeTypeRef));
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+
+void bridges::cpp_uno::shared::VtableFactory::flushCode(
+    unsigned char const *, unsigned char const *)
+=====================================================================
+Found a 39 line (212 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+			pUnoReturn = pReturnValue; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void **)pCppStack;
+			pCppStack += sizeof(void *);
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 23 line (211 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx
+
+sal_Int32 SAL_CALL XMLScanner::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+  	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+			rtl::OUString arg=aArguments[0];
+
+			uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+			xFactory->createInstanceWithContext(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")),
+				xContext), uno::UNO_QUERY_THROW );
+
+			rtl_uString *dir=NULL;
+			osl_getProcessWorkingDir(&dir);
+			rtl::OUString absFileUrl;
+			osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+			rtl_uString_release(dir);
+
+			uno::Reference <lang::XSingleServiceFactory> xStorageFactory(
+=====================================================================
+Found a 20 line (211 tokens) duplication in the following files: 
+Starting at line 751 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 821 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                            y_lr++;
+
+                        } while(--y_count);
+
+
+                        fg[0] >>= image_filter_shift;
+                        fg[1] >>= image_filter_shift;
+                        fg[2] >>= image_filter_shift;
+                        fg[3] >>= image_filter_shift;
+
+                        if(fg[0] < 0) fg[0] = 0;
+                        if(fg[1] < 0) fg[1] = 0;
+                        if(fg[2] < 0) fg[2] = 0;
+                        if(fg[3] < 0) fg[3] = 0;
+
+                        if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                        if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                        if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                        if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+                    }
+=====================================================================
+Found a 34 line (211 tokens) duplication in the following files: 
+Starting at line 698 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+Starting at line 737 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+
+    XubString aFontName( reinterpret_cast<const xub_Unicode*>(rLogFont.lfFaceName) );
+    if ( aFontName.Len() )
+    {
+        rFont.SetName( aFontName );
+        rFont.SetCharSet( ImplCharSetToSal( rLogFont.lfCharSet ) );
+        rFont.SetFamily( ImplFamilyToSal( rLogFont.lfPitchAndFamily ) );
+        rFont.SetPitch( ImplLogPitchToSal( rLogFont.lfPitchAndFamily ) );
+        rFont.SetWeight( ImplWeightToSal( rLogFont.lfWeight ) );
+
+        long nFontHeight = rLogFont.lfHeight;
+        if ( nFontHeight < 0 )
+            nFontHeight = -nFontHeight;
+        long nDPIY = GetDeviceCaps( hDC, LOGPIXELSY );
+        if( !nDPIY )
+            nDPIY = 600;
+        nFontHeight *= 72;
+        nFontHeight += nDPIY/2;
+        nFontHeight /= nDPIY;
+        rFont.SetSize( Size( 0, nFontHeight ) );
+        rFont.SetOrientation( (short)rLogFont.lfEscapement );
+        if ( rLogFont.lfItalic )
+            rFont.SetItalic( ITALIC_NORMAL );
+        else
+            rFont.SetItalic( ITALIC_NONE );
+        if ( rLogFont.lfUnderline )
+            rFont.SetUnderline( UNDERLINE_SINGLE );
+        else
+            rFont.SetUnderline( UNDERLINE_NONE );
+        if ( rLogFont.lfStrikeOut )
+            rFont.SetStrikeout( STRIKEOUT_SINGLE );
+        else
+            rFont.SetStrikeout( STRIKEOUT_NONE );
+    }
+}
+=====================================================================
+Found a 31 line (211 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+
+									  const sal_uInt32* pData, sal_uInt32 nOffset, sal_uInt32 nScanSize )
+{
+	DBG_ASSERT( !!maBitmap && !!maMask, "Missing call to ImageConsumer::SetColorModel(...)!" );
+
+	BitmapWriteAccess*	pBmpAcc = maBitmap.AcquireWriteAccess();
+	BitmapWriteAccess*	pMskAcc = maMask.AcquireWriteAccess();
+	sal_Bool			bDataChanged = sal_False;
+
+	if( pBmpAcc && pMskAcc )
+	{
+		const long	nWidth = pBmpAcc->Width();
+		const long	nHeight = pBmpAcc->Height();
+
+		maChangedRect = Rectangle( Point(), Size( nWidth, nHeight ) );
+		maChangedRect.Intersection( Rectangle( Point( nConsX, nConsY ), Size( nConsWidth, nConsHeight ) ) );
+
+		if( !maChangedRect.IsEmpty() )
+		{
+			const long nStartX = maChangedRect.Left();
+			const long nEndX = maChangedRect.Right();
+			const long nStartY = maChangedRect.Top();
+			const long nEndY = maChangedRect.Bottom();
+
+			if( mpMapper && ( pBmpAcc->GetBitCount() > 8 ) )
+			{
+				BitmapColor aCol;
+				BitmapColor	aMskWhite( pMskAcc->GetBestMatchingColor( Color( COL_WHITE ) ) );
+
+				for( long nY = nStartY; nY <= nEndY; nY++ )
+				{
+					const sal_Int32* pTmp = (sal_Int32*) pData + ( nY - nStartY ) * nScanSize + nOffset;
+=====================================================================
+Found a 38 line (211 tokens) duplication in the following files: 
+Starting at line 2049 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 3416 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+IMPL_LINK( SvxNumPositionTabPage, LevelHdl_Impl, ListBox *, pBox )
+{
+	USHORT nSaveNumLvl = nActNumLvl;
+	nActNumLvl = 0;
+	if(pBox->IsEntryPosSelected( pActNum->GetLevelCount() ) &&
+			(pBox->GetSelectEntryCount() == 1 || nSaveNumLvl != 0xffff))
+	{
+		nActNumLvl = 0xFFFF;
+		pBox->SetUpdateMode(FALSE);
+		for( USHORT i = 0; i < pActNum->GetLevelCount(); i++ )
+			pBox->SelectEntryPos( i, FALSE );
+		pBox->SetUpdateMode(TRUE);
+	}
+	else if(pBox->GetSelectEntryCount())
+	{
+		USHORT nMask = 1;
+		for( USHORT i = 0; i < pActNum->GetLevelCount(); i++ )
+		{
+			if(pBox->IsEntryPosSelected( i ))
+				nActNumLvl |= nMask;
+			nMask <<= 1;
+		}
+		pBox->SelectEntryPos( pActNum->GetLevelCount(), FALSE );
+	}
+	else
+	{
+		nActNumLvl = nSaveNumLvl;
+		USHORT nMask = 1;
+		for( USHORT i = 0; i < pActNum->GetLevelCount(); i++ )
+		{
+			if(nActNumLvl & nMask)
+			{
+				pBox->SelectEntryPos(i);
+				break;
+			}
+			nMask <<=1;
+		}
+	}
+=====================================================================
+Found a 30 line (211 tokens) duplication in the following files: 
+Starting at line 3639 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3706 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	double fSumSqrDeltaY    = 0.0; // sum of (ValY-MeanY)^2
+	for (SCSIZE i = 0; i < nC1; i++)
+    {
+		for (SCSIZE j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				double fValX = pMat1->GetDouble(i,j);
+				double fValY = pMat2->GetDouble(i,j);
+				fSumX += fValX;
+				fSumY += fValY;
+				fCount++;
+			}
+		}
+    }
+	if (fCount < 1.0) // fCount==1 is handled by checking denominator later on
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+=====================================================================
+Found a 43 line (211 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/cpp.h
+Starting at line 19 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/cpp.h
+
+typedef unsigned char uchar;
+
+#endif
+
+enum toktype
+{
+    END, UNCLASS, NAME, NUMBER, STRING, CCON, NL, WS, DSHARP,
+    EQ, NEQ, LEQ, GEQ, LSH, RSH, LAND, LOR, PPLUS, MMINUS,
+    ARROW, SBRA, SKET, LP, RP, DOT, AND, STAR, PLUS, MINUS,
+    TILDE, NOT, SLASH, PCT, LT, GT, CIRC, OR, QUEST,
+    COLON, ASGN, COMMA, SHARP, SEMIC, CBRA, CKET,
+    ASPLUS, ASMINUS, ASSTAR, ASSLASH, ASPCT, ASCIRC, ASLSH,
+    ASRSH, ASOR, ASAND, ELLIPS,
+    DSHARP1, NAME1, NAME2, DEFINED, UMINUS, ARCHITECTURE, IDENT,
+	COMMENT
+};
+
+enum kwtype
+{
+    KIF, KIFDEF, KIFNDEF, KELIF, KELSE, KENDIF, KINCLUDE, KINCLUDENEXT,
+    KIMPORT, KDEFINE, KUNDEF, KLINE, KERROR, KPRAGMA, KIDENT, KDEFINED, 
+	KMACHINE, KLINENO, KFILE, KDATE, KTIME, KSTDC, KEVAL
+};
+
+#define	ISDEFINED		0x01            /* has #defined value */
+#define	ISKW			0x02            /* is PP keyword */
+#define	ISUNCHANGE		0x04            /* can't be #defined in PP */
+#define	ISMAC			0x08            /* builtin macro, e.g. __LINE__ */
+#define	ISARCHITECTURE	0x10            /* architecture */
+#define ISACTIVE        0x80            /* is macro currently expanded */
+
+#define	EOB		0xFE                    /* sentinel for end of input buffer */
+#define	EOFC	0xFD                    /* sentinel for end of input file */
+#define	XPWS	1                       /* token flag: white space to assure token sep. */
+#define XTWS	2
+
+typedef struct token
+{
+    unsigned char type;
+    unsigned char flag;
+    unsigned int wslen;
+    unsigned int len;
+	uchar *t;
+=====================================================================
+Found a 9 line (211 tokens) duplication in the following files: 
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1400 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 9 line (211 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1149 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cd0 - 0cdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ce0 - 0cef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cf0 - 0cff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d00 - 0d0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d10 - 0d1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d20 - 0d2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d30 - 0d3f
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+=====================================================================
+Found a 7 line (211 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c50 - 0c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c60 - 0c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c70 - 0c7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c80 - 0c8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c90 - 0c9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ca0 - 0caf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,// 0cb0 - 0cbf
+=====================================================================
+Found a 9 line (211 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 622 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2690 - 269f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26a0 - 26af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,27,27,27,27, 0,27,27,27,27, 0, 0,27,27,27,27,// 2700 - 270f
+=====================================================================
+Found a 28 line (211 tokens) duplication in the following files: 
+Starting at line 3875 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 3947 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+					 padd(ascii("draw:z-index"), sXML_CDATA,
+                    ascii(Int2Str(hbox->zorder, "%d", buf)));
+                switch (hbox->style.anchor_type)
+                {
+                    case CHAR_ANCHOR:
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("as-char"));
+                        break;
+                    case PARA_ANCHOR:
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("paragraph"));
+                        break;
+                    case PAGE_ANCHOR:
+                    case PAPER_ANCHOR:
+                    {
+                        // os unused
+                        // HWPInfo *hwpinfo = hwpfile.GetHWPInfo();
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("page"));
+                        padd(ascii("text:anchor-page-number"), sXML_CDATA,
+                            ascii(Int2Str(hbox->pgno +1, "%d", buf)));
+                        break;
+                    }
+                }
+                if (hbox->style.anchor_type != CHAR_ANCHOR)
+                {
+                    padd(ascii("svg:x"), sXML_CDATA,
+                        Double2Str(WTMM( hbox->pgx + hbox->style.margin[0][0] )) + ascii("mm"));
+                    padd(ascii("svg:y"), sXML_CDATA,
+                        Double2Str(WTMM( hbox->pgy + hbox->style.margin[0][2] )) + ascii("mm"));
+                }
+=====================================================================
+Found a 21 line (211 tokens) duplication in the following files: 
+Starting at line 1124 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+Starting at line 947 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("VARCHAR"))));
+		aRow.push_back(new ORowSetValueDecorator(DataType::VARCHAR));
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)s_nCHAR_OCTET_LENGTH));
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		// aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnValue::NULLABLE));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+=====================================================================
+Found a 41 line (211 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+Starting at line 2420 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+
+			sal_uInt32 nLength(0);
+			(*m_pMemoStream) >> nLength;
+
+			if (m_aMemoHeader.db_typ == MemodBaseIV)
+				nLength -= 8;
+
+			//	char cChar;
+			::rtl::OUString aStr;
+			while ( nLength > STRING_MAXLEN )
+			{
+				ByteString aBStr;
+				aBStr.Expand(STRING_MAXLEN);
+				m_pMemoStream->Read(aBStr.AllocBuffer(STRING_MAXLEN),STRING_MAXLEN);
+				aStr += ::rtl::OUString(aBStr.GetBuffer(),aBStr.Len(), getConnection()->getTextEncoding());
+				nLength -= STRING_MAXLEN;
+			}
+			if ( nLength > 0 )
+			{
+				ByteString aBStr;
+				aBStr.Expand(static_cast<xub_StrLen>(nLength));
+				m_pMemoStream->Read(aBStr.AllocBuffer(static_cast<xub_StrLen>(nLength)),nLength);
+				//	aBStr.ReleaseBufferAccess();
+
+				aStr += ::rtl::OUString(aBStr.GetBuffer(),aBStr.Len(), getConnection()->getTextEncoding());
+
+			}
+			if ( aStr.getLength() )
+				aVariable = aStr;
+		}
+	}
+	return sal_True;
+}
+// -----------------------------------------------------------------------------
+void ODbaseTable::AllocBuffer()
+{
+	UINT16 nSize = m_aHeader.db_slng;
+	OSL_ENSURE(nSize > 0, "Size too small");
+
+	if (m_nBufferSize != nSize)
+	{
+		delete m_pBuffer;
+=====================================================================
+Found a 35 line (211 tokens) duplication in the following files: 
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+			nRes = *p->pInteger; break;
+
+		// ab hier muss getestet werden
+		case SbxBYREF | SbxLONG:
+			aTmp.nLong = *p->pLong; goto ref;
+		case SbxBYREF | SbxULONG:
+			aTmp.nULong = *p->pULong; goto ref;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			aTmp.nUShort = *p->pUShort; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+		case SbxBYREF | SbxSALINT64:
+			aTmp.nInt64 = *p->pnInt64; goto ref;
+		case SbxBYREF | SbxSALUINT64:
+			aTmp.uInt64 = *p->puInt64; goto ref;
+		ref:
+			aTmp.eType = SbxDataType( p->eType & 0x0FFF );
+			p = &aTmp; goto start;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION ); nRes = 0;
+	}
+	return nRes;
+}
+
+void ImpPutInteger( SbxValues* p, INT16 n )
+=====================================================================
+Found a 17 line (210 tokens) duplication in the following files: 
+Starting at line 751 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                    y_lr = ++m_wrap_mode_y;
+                } while(--y_count);
+
+                fg[0] >>= image_filter_shift;
+                fg[1] >>= image_filter_shift;
+                fg[2] >>= image_filter_shift;
+                fg[3] >>= image_filter_shift;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+=====================================================================
+Found a 44 line (210 tokens) duplication in the following files: 
+Starting at line 1341 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/glyphs/gcach_ftyp.cxx
+Starting at line 1496 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/glyphs/gcach_ftyp.cxx
+
+    if( mnPrioEmbedded <= mnPrioAntiAlias )
+        nLoadFlags |= FT_LOAD_NO_BITMAP;
+
+    FT_Error rc = -1;
+#if (FTVERSION <= 2008)
+    // #88364# freetype<=2005 prefers autohinting to embedded bitmaps
+    // => first we have to try without hinting
+    if( (nLoadFlags & (FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP)) == 0 )
+    {
+        rc = FT_Load_Glyph( maFaceFT, nGlyphIndex, nLoadFlags|FT_LOAD_NO_HINTING );
+        if( (rc==FT_Err_Ok) && (maFaceFT->glyph->format != FT_GLYPH_FORMAT_BITMAP) )
+            rc = -1; // mark as "loading embedded bitmap" was unsuccessful
+        nLoadFlags |= FT_LOAD_NO_BITMAP;
+    }
+
+    if( rc != FT_Err_Ok )
+#endif
+        rc = FT_Load_Glyph( maFaceFT, nGlyphIndex, nLoadFlags );
+
+    if( rc != FT_Err_Ok )
+        return false;
+
+    if( mbArtBold && pFTEmbolden )
+        (*pFTEmbolden)( maFaceFT->glyph );
+
+    FT_Glyph pGlyphFT;
+    rc = FT_Get_Glyph( maFaceFT->glyph, &pGlyphFT );
+    if( rc != FT_Err_Ok )
+        return false;
+
+    int nAngle = ApplyGlyphTransform( nGlyphFlags, pGlyphFT, true );
+
+    if( mbArtItalic )
+    {
+        FT_Matrix aMatrix;
+        aMatrix.xx = aMatrix.yy = 0x10000L;
+        if( nFTVERSION >= 2102 )    // Freetype 2.1.2 API swapped xy with yx
+            aMatrix.xy = 0x6000L, aMatrix.yx = 0;
+        else
+            aMatrix.yx = 0x6000L, aMatrix.xy = 0;
+        FT_Glyph_Transform( pGlyphFT, &aMatrix, NULL );
+    }
+
+    if( pGlyphFT->format == FT_GLYPH_FORMAT_OUTLINE )
+=====================================================================
+Found a 39 line (210 tokens) duplication in the following files: 
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 826 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+void  SvxNumPickTabPage::ActivatePage(const SfxItemSet& rSet)
+{
+	const SfxPoolItem* pItem;
+	bPreset = FALSE;
+	BOOL bIsPreset = FALSE;
+	const SfxItemSet* pExampleSet = GetTabDialog()->GetExampleSet();
+	if(pExampleSet)
+	{
+		if(SFX_ITEM_SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, FALSE, &pItem))
+			bIsPreset = ((const SfxBoolItem*)pItem)->GetValue();
+		if(SFX_ITEM_SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, FALSE, &pItem))
+			nActNumLvl = ((const SfxUInt16Item*)pItem)->GetValue();
+	}
+	if(SFX_ITEM_SET == rSet.GetItemState(nNumItemId, FALSE, &pItem))
+	{
+		delete pSaveNum;
+		pSaveNum = new SvxNumRule(*((SvxNumBulletItem*)pItem)->GetNumRule());
+	}
+	if(*pSaveNum != *pActNum)
+	{
+		*pActNum = *pSaveNum;
+		pExamplesVS->SetNoSelection();
+	}
+	// ersten Eintrag vorselektieren
+	if(pActNum && (!lcl_IsNumFmtSet(pActNum, nActNumLvl) || bIsPreset))
+	{
+		pExamplesVS->SelectItem(1);
+		NumSelectHdl_Impl(pExamplesVS);
+		bPreset = TRUE;
+	}
+	bPreset |= bIsPreset;
+	bModified = FALSE;
+}
+
+/* -----------------08.02.97 11.29-------------------
+
+--------------------------------------------------*/
+
+int  SvxNumPickTabPage::DeactivatePage(SfxItemSet *_pSet)
+=====================================================================
+Found a 32 line (210 tokens) duplication in the following files: 
+Starting at line 2007 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/printfun.cxx
+Starting at line 2073 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/printfun.cxx
+
+	if ( bClearWin && bDoPrint )
+	{
+		//	muss genau zum Zeichnen des Rahmens in preview.cxx passen !!!
+
+		Color aBackgroundColor( COL_WHITE );
+		if ( bUseStyleColor )
+            aBackgroundColor.SetColor( SC_MOD()->GetColorConfig().GetColorValue(svtools::DOCCOLOR).nColor );
+
+		pDev->SetMapMode(aOffsetMode);
+		pDev->SetLineColor();
+		pDev->SetFillColor(aBackgroundColor);
+		pDev->DrawRect(Rectangle(Point(),
+				Size((long)(aPageSize.Width() * nScaleX * 100 / nZoom),
+					 (long)(aPageSize.Height() * nScaleY * 100 / nZoom))));
+	}
+
+
+	//		aPageRect auf linke / rechte Seiten anpassen
+
+	Rectangle aTempRect = Rectangle( Point(), aPageSize );
+	if (IsMirror(nPageNo))
+	{
+		aPageRect.Left()  = ( aTempRect.Left()  + nRightMargin ) * 100 / nZoom;
+		aPageRect.Right() = ( aTempRect.Right() - nLeftMargin  ) * 100 / nZoom;
+	}
+	else
+	{
+		aPageRect.Left()  = ( aTempRect.Left()  + nLeftMargin  ) * 100 / nZoom;
+		aPageRect.Right() = ( aTempRect.Right() - nRightMargin ) * 100 / nZoom;
+	}
+
+	if ( aAreaParam.bRepeatCol )
+=====================================================================
+Found a 56 line (210 tokens) duplication in the following files: 
+Starting at line 883 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+Starting at line 1597 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+
+			if(pScChangeAction==NULL) continue;
+
+
+			switch(pScChangeAction->GetState())
+			{
+				case SC_CAS_VIRGIN:
+
+					if(pScChangeAction->IsDialogRoot())
+					{
+						if(pScChangeAction->IsDialogParent())
+							pParent=InsertChangeAction(pScChangeAction,SC_CAS_VIRGIN);
+						else
+							pParent=InsertFilteredAction(pScChangeAction,SC_CAS_VIRGIN);
+					}
+					else
+						pParent=NULL;
+
+					bTheFlag=TRUE;
+					break;
+
+				case SC_CAS_ACCEPTED:
+					pParent=NULL;
+					nAcceptCount++;
+					break;
+
+				case SC_CAS_REJECTED:
+					pParent=NULL;
+					nRejectCount++;
+					break;
+			}
+
+			if(pParent!=NULL && pScChangeAction->IsDialogParent())
+			{
+				if(!bFilterFlag)
+				{
+					pParent->EnableChildsOnDemand(TRUE);
+				}
+				else
+				{
+					BOOL bTestFlag=bHasFilterEntry;
+					bHasFilterEntry=FALSE;
+					if(Expand(pChanges,pScChangeAction,pParent,!bTestFlag)&&!bTestFlag)
+                        pTheView->RemoveEntry(pParent);
+				}
+			}
+
+			pScChangeAction=pScChangeAction->GetNext();
+		}
+
+        if( bTheFlag && (!pDoc->IsDocEditable() || pChanges->IsProtected()) )
+			bTheFlag=FALSE;
+
+		pTPView->EnableAccept(bTheFlag);
+		pTPView->EnableAcceptAll(bTheFlag);
+		pTPView->EnableReject(bTheFlag);
+		pTPView->EnableRejectAll(bTheFlag);
+=====================================================================
+Found a 43 line (210 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+class OFileWriter :
+		public WeakImplHelper1< XOutputStream >
+{
+public:
+	OFileWriter( char *pcFile ) { strncpy( m_pcFile , pcFile, 256 - 1 ); m_f = 0; }
+
+
+public:
+    virtual void SAL_CALL writeBytes(const Sequence< sal_Int8 >& aData)
+		throw  (NotConnectedException, BufferSizeExceededException, RuntimeException);
+    virtual void SAL_CALL flush(void)
+		throw  (NotConnectedException, BufferSizeExceededException, RuntimeException);
+    virtual void SAL_CALL closeOutput(void)
+		throw  (NotConnectedException, BufferSizeExceededException, RuntimeException);
+private:
+	char m_pcFile[256];
+	FILE *m_f;
+};
+
+
+void OFileWriter::writeBytes(const Sequence< sal_Int8 >& aData)
+	throw  (NotConnectedException, BufferSizeExceededException, RuntimeException)
+{
+	if( ! m_f ) {
+		m_f = fopen( m_pcFile , "w" );
+	}
+
+	fwrite( aData.getConstArray() , 1 , aData.getLength() , m_f );
+}
+
+
+void OFileWriter::flush(void)
+	throw  (NotConnectedException, BufferSizeExceededException, RuntimeException)
+{
+	fflush( m_f );
+}
+
+void OFileWriter::closeOutput(void)
+	throw  (NotConnectedException, BufferSizeExceededException, RuntimeException)
+{
+	fclose( m_f );
+	m_f = 0;
+}
+=====================================================================
+Found a 23 line (210 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvasfont.cxx
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvasfont.cxx
+
+    CanvasFont::CanvasFont( const rendering::FontRequest& 					rFontRequest,
+                            const uno::Sequence< beans::PropertyValue >&	, 
+                            const geometry::Matrix2D& 						rFontMatrix,
+                            const DeviceRef&								rDevice ) :
+        CanvasFont_Base( m_aMutex ),
+        maFont( Font( rFontRequest.FontDescription.FamilyName,
+                      rFontRequest.FontDescription.StyleName,
+                      Size( 0, ::basegfx::fround(rFontRequest.CellSize) ) ) ),
+        maFontRequest( rFontRequest ),
+        mpRefDevice( rDevice )
+    {
+        maFont->SetAlign( ALIGN_BASELINE );
+        maFont->SetCharSet( (rFontRequest.FontDescription.IsSymbolFont==com::sun::star::util::TriState_YES) ? RTL_TEXTENCODING_SYMBOL : RTL_TEXTENCODING_UNICODE );
+        maFont->SetVertical( (rFontRequest.FontDescription.IsVertical==com::sun::star::util::TriState_YES) ? TRUE : FALSE );
+
+        // TODO(F2): improve panose->vclenum conversion
+        maFont->SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
+        maFont->SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
+
+        // adjust to stretched/shrinked font
+        if( !::rtl::math::approxEqual( rFontMatrix.m00, rFontMatrix.m11) )
+        {
+            OutputDevice* pOutDev( mpRefDevice->getOutDev() );
+=====================================================================
+Found a 38 line (210 tokens) duplication in the following files: 
+Starting at line 909 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxulng.cxx
+
+				pVal->PutULong( n );
+			else
+				SbxBase::SetError( SbxERR_NO_OBJECT );
+			break;
+		}
+		case SbxBYREF | SbxCHAR:
+			if( n > SbxMAXCHAR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXCHAR;
+			}
+			*p->pChar = (xub_Unicode) n; break;
+		case SbxBYREF | SbxBYTE:
+			if( n > SbxMAXBYTE )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXBYTE;
+			}
+			*p->pByte = (BYTE) n; break;
+		case SbxBYREF | SbxINTEGER:
+		case SbxBYREF | SbxBOOL:
+			if( n > SbxMAXINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXINT;
+			}
+			*p->pInteger = (INT16) n; break;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			if( n > SbxMAXUINT )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXUINT;
+			}
+			*p->pUShort = (UINT16) n; break;
+		case SbxBYREF | SbxLONG:
+			if( n > SbxMAXLNG )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXLNG;
+			}
+			*p->pLong = (INT32) n; break;
+		case SbxBYREF | SbxULONG:
+=====================================================================
+Found a 40 line (210 tokens) duplication in the following files: 
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblebutton.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblecheckbox.cxx
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessibleradiobutton.cxx
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleRadioButton::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+    OExternalLockGuard aGuard( this );
+
+    if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+        throw IndexOutOfBoundsException();
+	
+    OAccessibleKeyBindingHelper* pKeyBindingHelper = new OAccessibleKeyBindingHelper();
+    Reference< XAccessibleKeyBinding > xKeyBinding = pKeyBindingHelper;
+
+    Window* pWindow = GetWindow();
+    if ( pWindow )
+    {
+        KeyEvent aKeyEvent = pWindow->GetActivationKey();
+        KeyCode aKeyCode = aKeyEvent.GetKeyCode();
+        if ( aKeyCode.GetCode() != 0 )
+        {
+            awt::KeyStroke aKeyStroke;
+            aKeyStroke.Modifiers = 0;
+            if ( aKeyCode.IsShift() )
+                aKeyStroke.Modifiers |= awt::KeyModifier::SHIFT;
+            if ( aKeyCode.IsMod1() )
+                aKeyStroke.Modifiers |= awt::KeyModifier::MOD1;
+            if ( aKeyCode.IsMod2() )
+                aKeyStroke.Modifiers |= awt::KeyModifier::MOD2;
+            aKeyStroke.KeyCode = aKeyCode.GetCode();
+            aKeyStroke.KeyChar = aKeyEvent.GetCharCode();
+            aKeyStroke.KeyFunc = static_cast< sal_Int16 >( aKeyCode.GetFunction() );
+            pKeyBindingHelper->AddKeyBinding( aKeyStroke );
+        }
+    }
+
+    return xKeyBinding;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleRadioButton::getCurrentValue(  ) throw (RuntimeException)
+=====================================================================
+Found a 50 line (209 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/verifier.cxx
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/verifier.cxx
+
+		xManager = serviceManager( xContext , OUString::createFromAscii( "local" ),  OUString::createFromAscii( argv[2] ) ) ;
+
+		//Create signature template
+		Reference< XInterface > element =
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.security.bridge.xmlsec.XMLElementWrapper_XmlSecImpl" ) , xContext ) ;
+		OSL_ENSURE( element.is() ,
+			"Verifier - "
+			"Cannot get service instance of \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XXMLElementWrapper > xElement( element , UNO_QUERY ) ;
+		OSL_ENSURE( xElement.is() ,
+			"Verifier - "
+			"Cannot get interface of \"XXMLElementWrapper\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XUnoTunnel > xEleTunnel( xElement , UNO_QUERY ) ;
+		OSL_ENSURE( xEleTunnel.is() ,
+			"Verifier - "
+			"Cannot get interface of \"XUnoTunnel\" from service \"xsec.XMLElement\"" ) ;
+
+		XMLElementWrapper_XmlSecImpl* pElement = ( XMLElementWrapper_XmlSecImpl* )xEleTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
+		OSL_ENSURE( pElement != NULL ,
+			"Verifier - "
+			"Cannot get implementation of \"xsec.XMLElementWrapper\"" ) ;
+
+		//Set signature template
+		pElement->setNativeElement( tplNode ) ;
+
+		//Build XML Signature template
+		Reference< XInterface > signtpl =
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.crypto.XMLSignatureTemplate"), xContext ) ;
+		OSL_ENSURE( signtpl.is() ,
+			"Verifier - "
+			"Cannot get service instance of \"xsec.XMLSignatureTemplate\"" ) ;
+
+		Reference< XXMLSignatureTemplate > xTemplate( signtpl , UNO_QUERY ) ;
+		OSL_ENSURE( xTemplate.is() ,
+			"Verifier - "
+			"Cannot get interface of \"XXMLSignatureTemplate\" from service \"xsec.XMLSignatureTemplate\"" ) ;
+
+		//Import the signature template
+		xTemplate->setTemplate( xElement ) ;
+
+		//Import the URI/Stream binding
+		if( xUriBinding.is() )
+			xTemplate->setBinding( xUriBinding ) ;
+
+		//Create security environment
+		//Build Security Environment
+		Reference< XInterface > xsecenv =
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl"), xContext ) ;
+=====================================================================
+Found a 51 line (209 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/tempfile.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/tempfile.cxx
+
+        FileBase::getSystemPathFromFileURL( aName, aTmp );
+    return aTmp;
+}
+
+TempFile::TempFile( const String* pParent, sal_Bool bDirectory )
+    : pImp( new TempFile_Impl )
+    , bKillingFileEnabled( sal_False )
+{
+    pImp->bIsDirectory = bDirectory;
+
+    // get correct directory
+    pImp->aName = ConstructTempDir_Impl( pParent );
+
+    // get TempFile with default naming scheme
+    CreateTempName_Impl( pImp->aName, sal_True, bDirectory );
+}
+
+TempFile::TempFile( const String& rLeadingChars, const String* pExtension, const String* pParent, sal_Bool bDirectory )
+    : pImp( new TempFile_Impl )
+    , bKillingFileEnabled( sal_False )
+{
+    pImp->bIsDirectory = bDirectory;
+
+    // get correct directory
+    String aName = ConstructTempDir_Impl( pParent );
+
+    // now use special naming scheme ( name takes leading chars and an index counting up from zero
+    aName += rLeadingChars;
+    for ( sal_Int32 i=0;; i++ )
+    {
+        String aTmp( aName );
+        aTmp += String::CreateFromInt32( i );
+        if ( pExtension )
+            aTmp += *pExtension;
+        else
+            aTmp += String::CreateFromAscii( ".tmp" );
+        if ( bDirectory )
+        {
+            FileBase::RC err = Directory::create( aTmp );
+            if ( err == FileBase::E_None )
+            {
+                pImp->aName = aTmp;
+                break;
+            }
+            else if ( err != FileBase::E_EXIST )
+                // if f.e. name contains invalid chars stop trying to create dirs
+                break;
+        }
+        else
+        {
+            File aFile( aTmp );
+=====================================================================
+Found a 33 line (209 tokens) duplication in the following files: 
+Starting at line 2033 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+Starting at line 2440 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+
+void UnoComboBoxControl::removeItems( sal_Int16 nPos, sal_Int16 nCount ) throw(uno::RuntimeException)
+{
+	uno::Any aVal = ImplGetPropertyValue( GetPropertyName( BASEPROPERTY_STRINGITEMLIST ) );
+	uno::Sequence< ::rtl::OUString> aSeq;
+	aVal >>= aSeq;
+	sal_uInt16 nOldLen = (sal_uInt16)aSeq.getLength();
+	if ( nOldLen && ( nPos < nOldLen ) )
+	{
+		if ( nCount > ( nOldLen-nPos ) )
+			nCount = nOldLen-nPos;
+
+		sal_uInt16 nNewLen = nOldLen - nCount;
+
+		uno::Sequence< ::rtl::OUString> aNewSeq( nNewLen );
+		::rtl::OUString* pNewData = aNewSeq.getArray();
+		::rtl::OUString* pOldData = aSeq.getArray();
+
+		sal_uInt16 n;
+		// Items vor der Entfern-Position
+		for ( n = 0; n < nPos; n++ )
+			pNewData[n] = pOldData[n];
+
+		// Rest der Items
+		for ( n = nPos; n < (nOldLen-nCount); n++ )
+			pNewData[n] = pOldData[n+nCount];
+
+		uno::Any aAny;
+		aAny <<= aNewSeq;
+		ImplSetPropertyValue( GetPropertyName( BASEPROPERTY_STRINGITEMLIST ), aAny, sal_True );
+	}
+}
+
+sal_Int16 UnoComboBoxControl::getItemCount() throw(uno::RuntimeException)
+=====================================================================
+Found a 25 line (209 tokens) duplication in the following files: 
+Starting at line 704 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl1.cxx
+Starting at line 980 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl1.cxx
+
+				const SwCellFrm *pCell = (const SwCellFrm*)aCellArr[j];
+                const sal_Bool bVert = pTab->IsVertical();
+                const sal_Bool bRTL = pTab->IsRightToLeft();
+                sal_Bool bTopOver, bLeftOver, bRightOver, bBottomOver;
+                if ( bVert )
+                {
+                    bTopOver = pCell->Frm().Right() >= rUnion.Right();
+                    bLeftOver = pCell->Frm().Top() <= rUnion.Top();
+                    bRightOver = pCell->Frm().Bottom() >= rUnion.Bottom();
+                    bBottomOver = pCell->Frm().Left() <= rUnion.Left();
+                }
+                else
+                {
+                    bTopOver = pCell->Frm().Top() <= rUnion.Top();
+                    bLeftOver = pCell->Frm().Left() <= rUnion.Left();
+                    bRightOver = pCell->Frm().Right() >= rUnion.Right();
+                    bBottomOver = pCell->Frm().Bottom() >= rUnion.Bottom();
+                }
+
+                if ( bRTL )
+                {
+                    sal_Bool bTmp = bRightOver;
+                    bRightOver = bLeftOver;
+                    bLeftOver = bTmp;
+                }
+=====================================================================
+Found a 20 line (209 tokens) duplication in the following files: 
+Starting at line 2286 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2369 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
+	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
+	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
+	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
+	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
+	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
+	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
+	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
+	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
+
+	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
+	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
+	{ 0x4001, { -8050, 0x0406, 1 } },	// b
+	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
+	{ 0x4001, { 8050, 0x0406, 1 } },	// d
+	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
+	{ 0x4001, { 8050, 0x0406, 1 } },	// f
+	{ 0x6000, { 0x040f, 0x0408, 0 } }	// 10
+=====================================================================
+Found a 35 line (209 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+
+BOOL ScInterpreter::CreateCellArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
+								  SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
+								  BYTE* pCellArr)
+{
+#if SC_ROWLIMIT_MORE_THAN_64K
+#error row limit 64k
+#endif
+	USHORT nCount = 0;
+	USHORT* p = (USHORT*) pCellArr;
+	*p++ = static_cast<USHORT>(nCol1);
+	*p++ = static_cast<USHORT>(nRow1);
+	*p++ = static_cast<USHORT>(nTab1);
+	*p++ = static_cast<USHORT>(nCol2);
+	*p++ = static_cast<USHORT>(nRow2);
+	*p++ = static_cast<USHORT>(nTab2);
+	USHORT* pCount = p;
+	*p++ = 0;
+	USHORT nPos = 14;
+	SCTAB nTab = nTab1;
+	ScAddress aAdr;
+	while (nTab <= nTab2)
+	{
+		aAdr.SetTab( nTab );
+		SCROW nRow = nRow1;
+		while (nRow <= nRow2)
+		{
+			aAdr.SetRow( nRow );
+			SCCOL nCol = nCol1;
+			while (nCol <= nCol2)
+			{
+				aAdr.SetCol( nCol );
+				ScBaseCell* pCell = pDok->GetCell( aAdr );
+				if (pCell)
+				{
+					USHORT	nErr = 0;
+=====================================================================
+Found a 7 line (209 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 843 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa90 - fa9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faa0 - faaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fab0 - fabf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fac0 - facf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fad0 - fadf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fae0 - faef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faf0 - faff
+=====================================================================
+Found a 7 line (209 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10, 0,10,10,10,10,10, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23e0 - 23ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23f0 - 23ff
+=====================================================================
+Found a 9 line (209 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x308F, 0x308F, 0x308F, 0x308F, 0x3042, 0x304B, 0x304B, 0x308F, 0x308F, 0x308F, 0x308F, 0x30FB, 0x30FC, 0x30FD, 0x30FE, 0x30FF,  // 30F0
+
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF00
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF10
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF20
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF30
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF40
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF50
+	0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0x308F, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3084, 0x3084, 0x3084, 0x305F,  // FF60
+=====================================================================
+Found a 7 line (209 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c50 - 0c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c60 - 0c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c70 - 0c7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c80 - 0c8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c90 - 0c9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ca0 - 0caf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,// 0cb0 - 0cbf
+=====================================================================
+Found a 32 line (209 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/cpputools/source/unoexe/unoexe.cxx
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/unodevtools/options.cxx
+
+sal_Bool readOption( OUString * pValue, const sal_Char * pOpt,
+                     sal_Int32 * pnIndex, const OUString & aArg)
+	throw (RuntimeException)
+{
+	const OUString dash = OUString(RTL_CONSTASCII_USTRINGPARAM("-"));
+	if(aArg.indexOf(dash) != 0)
+		return sal_False;
+
+	OUString aOpt = OUString::createFromAscii( pOpt );
+
+	if (aArg.getLength() < aOpt.getLength())
+		return sal_False;
+
+	if (aOpt.equalsIgnoreAsciiCase( aArg.copy(1) )) {
+		// take next argument
+		++(*pnIndex);
+
+		rtl_getAppCommandArg(*pnIndex, &pValue->pData);
+		if (*pnIndex >= (sal_Int32)rtl_getAppCommandArgCount() ||
+            pValue->copy(1).equals(dash))
+		{
+			OUStringBuffer buf( 32 );
+			buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("incomplete option \"-") );
+			buf.appendAscii( pOpt );
+			buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("\" given!") );
+			throw RuntimeException( buf.makeStringAndClear(), Reference< XInterface >() );
+		} else {
+#if OSL_DEBUG_LEVEL > 1
+			out( "\n> identified option -" );
+			out( pOpt );
+			out( " = " );
+			OString tmp = OUStringToOString(*pValue, RTL_TEXTENCODING_ASCII_US);
+=====================================================================
+Found a 39 line (208 tokens) duplication in the following files: 
+Starting at line 585 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/plugin.cxx
+Starting at line 744 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/embedhlp.cxx
+
+    Bitmap aBmp( SvtResId( BMP_PLUGIN ) );
+	long nHeight = rRect.GetHeight() - pOut->GetTextHeight();
+	long nWidth = rRect.GetWidth();
+	if( nHeight > 0 )
+	{
+		aPt.Y() = nHeight;
+		Point	aP = rRect.TopLeft();
+		Size	aBmpSize = aBmp.GetSizePixel();
+		// Bitmap einpassen
+		if( nHeight * 10 / nWidth
+		  > aBmpSize.Height() * 10 / aBmpSize.Width() )
+		{
+			// nach der Breite ausrichten
+			// Proportion beibehalten
+			long nH = nWidth * aBmpSize.Height() / aBmpSize.Width();
+			// zentrieren
+			aP.Y() += (nHeight - nH) / 2;
+			nHeight = nH;
+		}
+		else
+		{
+			// nach der H"ohe ausrichten
+			// Proportion beibehalten
+			long nW = nHeight * aBmpSize.Width() / aBmpSize.Height();
+			// zentrieren
+			aP.X() += (nWidth - nW) / 2;
+			nWidth = nW;
+		}
+
+		pOut->DrawBitmap( aP, Size( nWidth, nHeight ), aBmp );
+	}
+
+	pOut->IntersectClipRegion( rRect );
+	aPt += rRect.TopLeft();
+	pOut->DrawText( aPt, rText );
+	pOut->Pop();
+}
+
+void EmbeddedObjectRef::DrawShading( const Rectangle &rRect, OutputDevice *pOut )
+=====================================================================
+Found a 49 line (208 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessiblePageShape.cxx
+Starting at line 591 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleShape.cxx
+
+		::Size aPixelSize = maShapeTreeInfo.GetViewForwarder()->LogicToPixel (
+			::Size (aBoundingBox.Width, aBoundingBox.Height));
+		::Point aPixelPosition = maShapeTreeInfo.GetViewForwarder()->LogicToPixel (
+			::Point (aBoundingBox.X, aBoundingBox.Y));
+
+		// Clip the shape's bounding box with the bounding box of its parent.
+		Reference<XAccessibleComponent> xParentComponent (
+			getAccessibleParent(), uno::UNO_QUERY);
+		if (xParentComponent.is())
+		{
+			// Make the coordinates relative to the parent.
+			awt::Point aParentLocation (xParentComponent->getLocationOnScreen());
+			int x = aPixelPosition.getX() - aParentLocation.X;
+			int y = aPixelPosition.getY() - aParentLocation.Y;
+
+			/*        //  The following block is a workarround for bug #99889# (property
+			//  BoundRect returnes coordinates relative to document window
+			//  instead of absolute coordinates for shapes in Writer).  Has to
+			//  be removed as soon as bug is fixed.
+
+			// Use a non-null anchor position as flag that the shape is in a
+			// Writer document.
+			if (xSetInfo.is())
+				if (xSetInfo->hasPropertyByName (sAnchorPositionName))
+				{
+					uno::Any aPos = xSet->getPropertyValue (sAnchorPositionName);
+					awt::Point aAnchorPosition;
+					aPos >>= aAnchorPosition;
+					if (aAnchorPosition.X > 0)
+					{
+						x = aPixelPosition.getX();
+						y = aPixelPosition.getY();
+					}
+				}
+			//  End of workarround.
+			*/
+			// Clip with parent (with coordinates relative to itself).
+			::Rectangle aBBox (
+				x, y, x + aPixelSize.getWidth(), y + aPixelSize.getHeight());
+			awt::Size aParentSize (xParentComponent->getSize());
+			::Rectangle aParentBBox (0,0, aParentSize.Width, aParentSize.Height);
+			aBBox = aBBox.GetIntersection (aParentBBox);
+			aBoundingBox = awt::Rectangle (
+				aBBox.getX(),
+				aBBox.getY(),
+				aBBox.getWidth(),
+				aBBox.getHeight());
+		}
+		else
+=====================================================================
+Found a 18 line (208 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+
+void DXFSolidEntity::EvaluateGroup(DXFGroupReader & rDGR)
+{
+	switch (rDGR.GetG()) {
+		case 10: aP0.fx=rDGR.GetF(); break;
+		case 20: aP0.fy=rDGR.GetF(); break;
+		case 30: aP0.fz=rDGR.GetF(); break;
+		case 11: aP1.fx=rDGR.GetF(); break;
+		case 21: aP1.fy=rDGR.GetF(); break;
+		case 31: aP1.fz=rDGR.GetF(); break;
+		case 12: aP2.fx=rDGR.GetF(); break;
+		case 22: aP2.fy=rDGR.GetF(); break;
+		case 32: aP2.fz=rDGR.GetF(); break;
+		case 13: aP3.fx=rDGR.GetF(); break;
+		case 23: aP3.fy=rDGR.GetF(); break;
+		case 33: aP3.fz=rDGR.GetF(); break;
+		default: DXFBasicEntity::EvaluateGroup(rDGR);
+	}
+}
+=====================================================================
+Found a 38 line (208 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/services/autocorrmigration.cxx
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/services/basicmigration.cxx
+
+    TStringVectorPtr BasicMigration::getFiles( const ::rtl::OUString& rBaseURL ) const
+    {
+        TStringVectorPtr aResult( new TStringVector );
+        ::osl::Directory aDir( rBaseURL);
+
+        if ( aDir.open() == ::osl::FileBase::E_None )
+        {
+            // iterate over directory content
+            TStringVector aSubDirs;
+            ::osl::DirectoryItem aItem;
+            while ( aDir.getNextItem( aItem ) == ::osl::FileBase::E_None )
+            {
+                ::osl::FileStatus aFileStatus( FileStatusMask_Type | FileStatusMask_FileURL );
+                if ( aItem.getFileStatus( aFileStatus ) == ::osl::FileBase::E_None )
+                {
+                    if ( aFileStatus.getFileType() == ::osl::FileStatus::Directory )
+                        aSubDirs.push_back( aFileStatus.getFileURL() );
+                    else
+                        aResult->push_back( aFileStatus.getFileURL() );
+                }
+            }
+
+            // iterate recursive over subfolders
+            TStringVector::const_iterator aI = aSubDirs.begin();
+            while ( aI != aSubDirs.end() )
+            {
+                TStringVectorPtr aSubResult = getFiles( *aI );
+                aResult->insert( aResult->end(), aSubResult->begin(), aSubResult->end() );
+                ++aI;
+            }
+        }
+
+        return aResult;
+    }
+
+    // -----------------------------------------------------------------------------
+
+    ::osl::FileBase::RC BasicMigration::checkAndCreateDirectory( INetURLObject& rDirURL )
+=====================================================================
+Found a 39 line (208 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propertysetinfo.cxx
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/property/propertysetinfo.cxx
+
+			DBG_ERROR( "No type in PropertyMapEntry!" );
+			pMap->mpType = &::getCppuType((const sal_Int32*)0);
+		}
+
+		maPropertyMap[aName] = pMap;
+
+		if( maProperties.getLength() )
+			maProperties.realloc( 0 );
+
+		pMap = &pMap[1];
+	}
+}
+
+void PropertyMapImpl::remove( const OUString& aName ) throw()
+{
+	maPropertyMap.erase( aName );
+
+	if( maProperties.getLength() )
+		maProperties.realloc( 0 );
+}
+
+Sequence< Property > PropertyMapImpl::getProperties() throw()
+{
+	// maybe we have to generate the properties after
+	// a change in the property map or at first call
+	// to getProperties
+	if( maProperties.getLength() != (sal_Int32)maPropertyMap.size() )
+	{
+		maProperties = Sequence< Property >( maPropertyMap.size() );
+		Property* pProperties = maProperties.getArray();
+
+		PropertyMap::iterator aIter = maPropertyMap.begin();
+		const PropertyMap::iterator aEnd = maPropertyMap.end();
+		while( aIter != aEnd )
+		{
+			PropertyMapEntry* pEntry = (*aIter).second;
+
+			pProperties->Name = OUString( pEntry->mpName, pEntry->mnNameLen, RTL_TEXTENCODING_ASCII_US );
+			pProperties->Handle = pEntry->mnWhich;
+=====================================================================
+Found a 34 line (208 tokens) duplication in the following files: 
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+OString	IdlType::checkRealBaseType(const OString& type, sal_Bool bResolveTypeOnly)
+{
+	sal_uInt32 index = type.lastIndexOf(']');
+	OString baseType = (index > 0 ? ((OString)type).copy(index+1) : type);
+	OString seqPrefix = (index > 0 ? ((OString)type).copy(0, index+1) : OString());
+
+	RegistryTypeReaderLoader & rReaderLoader = getRegistryTypeReaderLoader();
+
+	RegistryKey 	key;
+	sal_uInt8*		pBuffer=NULL;
+	RTTypeClass 	typeClass;
+	sal_Bool 		mustBeChecked = (m_typeMgr.getTypeClass(baseType) == RT_TYPE_TYPEDEF);
+	TypeReader		reader;
+
+	while (mustBeChecked)
+	{
+		reader = m_typeMgr.getTypeReader(baseType);
+
+		if (reader.isValid())
+		{
+			typeClass = reader.getTypeClass();
+
+			if (typeClass == RT_TYPE_TYPEDEF)
+			{
+				baseType = reader.getSuperTypeName();
+				index = baseType.lastIndexOf(']');
+		  		if (index > 0)
+				{
+					seqPrefix += baseType.copy(0, index+1);
+					baseType = baseType.copy(index+1);
+				}
+			} else
+				mustBeChecked = sal_False;
+		} else
+=====================================================================
+Found a 50 line (208 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+=====================================================================
+Found a 40 line (207 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+                intr.local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+=====================================================================
+Found a 43 line (207 tokens) duplication in the following files: 
+Starting at line 436 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+
+	{ XML_NAMESPACE_FO, XML_MIN_HEIGHT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_OFFICE, XML_TOKEN_INVALID, XML_ATACTION_EOT, NO_PARAMS }
+=====================================================================
+Found a 43 line (207 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+Starting at line 294 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+
+	{ XML_NAMESPACE_FO, XML_MIN_HEIGHT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_OFFICE, XML_TOKEN_INVALID, XML_ATACTION_EOT, NO_PARAMS }
+=====================================================================
+Found a 52 line (207 tokens) duplication in the following files: 
+Starting at line 1424 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static const ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+			-1,
+			getCppuBooleanType()
+		)
+#endif
+#ifdef IMPLEMENT_COMMAND_INSERT
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+			-1,
+            getCppuType(
+                static_cast< ucb::InsertCommandArgument * >( 0 ) )
+		)
+#endif
+#ifdef IMPLEMENT_COMMAND_OPEN
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+			-1,
+            getCppuType( static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+		)
+=====================================================================
+Found a 38 line (207 tokens) duplication in the following files: 
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/crstrvl.cxx
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/crstrvl.cxx
+
+			( !pFnd || pFnd->GetIndex() < pSectNd->GetIndex() ) &&
+// JP 10.12.96: solange wir nur 3 Typen kennen und UI-seitig keine anderen
+//				einstellbar sind, muss ueber den Titel gesucht werden!
+//			( !pName || *pName == ((SwTOXBaseSection*)pSect)->GetTypeName() ) &&
+			( !pName || *pName == ((SwTOXBaseSection*)pSect)->GetTOXName() )
+			)
+		{
+			SwNodeIndex aIdx( *pSectNd, 1 );
+			SwCntntNode* pCNd = aIdx.GetNode().GetCntntNode();
+			if( !pCNd )
+				pCNd = GetDoc()->GetNodes().GoNext( &aIdx );
+			const SwCntntFrm* pCFrm;
+			if( pCNd &&
+				pCNd->EndOfSectionIndex() <= pSectNd->EndOfSectionIndex() &&
+				0 != ( pCFrm = pCNd->GetFrm() ) &&
+				( IsReadOnlyAvailable() || !pCFrm->IsProtected() ))
+			{
+				pFnd = pCNd;
+			}
+		}
+	}
+
+	if( pFnd )
+	{
+		SwCallLink aLk( *this );        // Crsr-Moves ueberwachen,
+		SwCrsrSaveState aSaveState( *pCurCrsr );
+		pCurCrsr->GetPoint()->nNode = *pFnd;
+		pCurCrsr->GetPoint()->nContent.Assign( pFnd, 0 );
+		bRet = !pCurCrsr->IsSelOvr();
+		if( bRet )
+			UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
+	}
+	return bRet;
+}
+
+// springe zum Verzeichnis vom TOXMark
+
+FASTBOOL SwCrsrShell::GotoTOXMarkBase()
+=====================================================================
+Found a 36 line (207 tokens) duplication in the following files: 
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/sdtreelb.cxx
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/sdtreelb.cxx
+
+			SetCollapsedEntryBmp( pEntry, aImgPageH, BMP_COLOR_HIGHCONTRAST );
+
+			SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+
+			while( aIter.IsMore() )
+			{
+				pObj = aIter.Next();
+				String aStr( GetObjectName( pObj ) );
+				if( aStr.Len() )
+				{
+					if( pObj->GetObjInventor() == SdrInventor && pObj->GetObjIdentifier() == OBJ_OLE2 )
+					{
+						SvLBoxEntry* pNewEntry = InsertEntry( aStr, maImgOle, maImgOle, pEntry ); // pEntry entspr. Parent
+
+						SetExpandedEntryBmp( pNewEntry, maImgOleH, BMP_COLOR_HIGHCONTRAST );
+						SetCollapsedEntryBmp( pNewEntry, maImgOleH, BMP_COLOR_HIGHCONTRAST );
+					}
+					else if( pObj->GetObjInventor() == SdrInventor && pObj->GetObjIdentifier() == OBJ_GRAF )
+					{
+						SvLBoxEntry* pNewEntry = InsertEntry( aStr, maImgGraphic, maImgGraphic, pEntry ); // pEntry entspr. Parent
+
+						SetExpandedEntryBmp( pNewEntry, maImgGraphicH, BMP_COLOR_HIGHCONTRAST );
+						SetCollapsedEntryBmp( pNewEntry, maImgGraphicH, BMP_COLOR_HIGHCONTRAST );
+					}
+					else
+					{
+						SvLBoxEntry* pNewEntry = InsertEntry( aStr, aImgObjects, aImgObjects, pEntry );
+
+						SetExpandedEntryBmp( pNewEntry, aImgObjectsH, BMP_COLOR_HIGHCONTRAST );
+						SetCollapsedEntryBmp( pNewEntry, aImgObjectsH, BMP_COLOR_HIGHCONTRAST );
+					}
+				}
+			}
+			if( pEntry->HasChilds() )
+			{
+				SetExpandedEntryBmp( pEntry, aImgPageObjs );
+=====================================================================
+Found a 44 line (207 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/signal.c
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/result/signal.cxx
+
+    { SIGIOT,    ACT_ABORT,  NULL },    /* IOT instruction */
+#endif 
+//      { SIGABRT,   ACT_ABORT,  NULL },    /* used by abort, replace SIGIOT in the future */
+#ifdef SIGEMT   
+    { SIGEMT,    ACT_SYSTEM,  NULL },    /* EMT instruction */
+/* changed from ACT_ABORT to ACT_SYSTEM to remove handler*/
+/* SIGEMT may also be used by the profiler - so it is probably not a good
+   plan to have the new handler use this signal*/
+#endif  
+    { SIGFPE,    ACT_ABORT,  NULL },    /* floating point exception */
+    { SIGKILL,   ACT_SYSTEM, NULL },    /* kill (cannot be caught or ignored) */
+    { SIGBUS,    ACT_ABORT,  NULL },    /* bus error */
+    { SIGSEGV,   ACT_ABORT,  NULL },    /* segmentation violation */
+#ifdef SIGSYS
+    { SIGSYS,    ACT_ABORT,  NULL },    /* bad argument to system call */
+#endif
+    { SIGPIPE,   ACT_HIDE,   NULL },    /* write on a pipe with no one to read it */
+    { SIGALRM,   ACT_EXIT,   NULL },    /* alarm clock */
+    { SIGTERM,   ACT_EXIT,   NULL },    /* software termination signal from kill */
+    { SIGUSR1,   ACT_SYSTEM, NULL },    /* user defined signal 1 */
+    { SIGUSR2,   ACT_SYSTEM, NULL },    /* user defined signal 2 */
+    { SIGCHLD,   ACT_SYSTEM, NULL },    /* child status change */
+#ifdef SIGPWR
+    { SIGPWR,    ACT_IGNORE, NULL },    /* power-fail restart */
+#endif
+    { SIGWINCH,  ACT_IGNORE, NULL },    /* window size change */
+    { SIGURG,    ACT_EXIT,   NULL },    /* urgent socket condition */
+#ifdef SIGPOLL
+    { SIGPOLL,   ACT_EXIT,   NULL },    /* pollable event occured */
+#endif
+    { SIGSTOP,   ACT_SYSTEM, NULL },    /* stop (cannot be caught or ignored) */
+    { SIGTSTP,   ACT_SYSTEM, NULL },    /* user stop requested from tty */
+    { SIGCONT,   ACT_SYSTEM, NULL },    /* stopped process has been continued */
+    { SIGTTIN,   ACT_SYSTEM, NULL },    /* background tty read attempted */
+    { SIGTTOU,   ACT_SYSTEM, NULL },    /* background tty write attempted */
+    { SIGVTALRM, ACT_EXIT,   NULL },    /* virtual timer expired */
+    { SIGPROF,   ACT_SYSTEM,   NULL },    /* profiling timer expired */
+/*Change from ACT_EXIT to ACT_SYSTEM for SIGPROF is so that profiling signals do
+  not get taken by the new handler - the new handler does not pass on context 
+  information which causes 'collect' to crash. This is a way of avoiding
+  what looks like a bug in the new handler*/
+    { SIGXCPU,   ACT_ABORT,  NULL },    /* exceeded cpu limit */
+    { SIGXFSZ,   ACT_ABORT,  NULL }     /* exceeded file size limit */
+};
+=====================================================================
+Found a 43 line (207 tokens) duplication in the following files: 
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+        OSL_TRACE("Out osl_getProfileSectionEntries [pProfile=0]\n");
+#endif
+
+
+		return (0);
+    }
+
+
+	if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
+	{
+		if ((pSec = findEntry(pProfile, pszSection, "", &NoEntry)) != NULL)
+		{
+			if (MaxLen != 0)
+			{
+				for (i = 0; i < pSec->m_NoEntries; i++)
+				{
+					if ((n + pSec->m_Entries[i].m_Len + 1) < MaxLen)
+					{
+						strncpy(&pszBuffer[n], &pProfile->m_Lines[pSec->m_Entries[i].m_Line]
+								[pSec->m_Entries[i].m_Offset], pSec->m_Entries[i].m_Len);
+						n += pSec->m_Entries[i].m_Len;
+						pszBuffer[n++] = '\0';
+					}
+					else
+						break;
+
+				}
+
+				pszBuffer[n++] = '\0';
+			}
+			else
+			{
+				for (i = 0; i < pSec->m_NoEntries; i++)
+					n += pSec->m_Entries[i].m_Len + 1;
+
+				n += 1;
+			}
+		}
+		else
+			n = 0;
+	}
+	else
+	{
+=====================================================================
+Found a 7 line (207 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10, 0,10,10,10,10,10, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23e0 - 23ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23f0 - 23ff
+=====================================================================
+Found a 7 line (207 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10a0 - 10af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10b0 - 10bf
+=====================================================================
+Found a 8 line (207 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1000 - 100f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1010 - 101f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,17,// 1020 - 102f
+=====================================================================
+Found a 9 line (207 tokens) duplication in the following files: 
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1182 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17, 0, 0,// 0ec0 - 0ecf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ed0 - 0edf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ee0 - 0eef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ef0 - 0eff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f00 - 0f0f
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 0f10 - 0f1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f20 - 0f2f
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+=====================================================================
+Found a 8 line (207 tokens) duplication in the following files: 
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 829 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7c0 - d7cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7d0 - d7df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7e0 - d7ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7f0 - d7ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fa00 - fa0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fa10 - fa1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,// fa20 - fa2f
+=====================================================================
+Found a 16 line (207 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/descriptor.cxx
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/renderer.cxx
+
+uno::Any SAL_CALL GraphicRendererVCL::queryAggregation( const uno::Type & rType ) 
+	throw( uno::RuntimeException )
+{
+	uno::Any aAny;
+
+	if( rType == ::getCppuType((const uno::Reference< lang::XServiceInfo >*)0) )
+		aAny <<= uno::Reference< lang::XServiceInfo >(this);
+	else if( rType == ::getCppuType((const uno::Reference< lang::XTypeProvider >*)0) )
+		aAny <<= uno::Reference< lang::XTypeProvider >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XPropertySet >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertyState >*)0) )
+		aAny <<= uno::Reference< beans::XPropertyState >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XMultiPropertySet >(this);
+	else if( rType == ::getCppuType((const uno::Reference< graphic::XGraphicRenderer >*)0) )
+=====================================================================
+Found a 58 line (207 tokens) duplication in the following files: 
+Starting at line 546 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupBy(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByBeyondSelect(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByUnrelated(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleResultSets(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsLikeEscapeClause(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOrderByUnrelated(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsUnion(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsUnionAll(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+=====================================================================
+Found a 59 line (207 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/XMLRangeHelper.cxx
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/XMLRangeHelper.cxx
+
+    /*::chart::*/XMLRangeHelper::CellRange & rOutRange )
+{
+    bool bResult = true;
+    static const sal_Unicode aColon( ':' );
+    static const sal_Unicode aQuote( '\'' );
+    static const sal_Unicode aBackslash( '\\' );
+
+    sal_Int32 nDelimiterPos = nStartPos;
+    bool bInQuotation = false;
+    // parse table name
+    while( nDelimiterPos < nEndPos &&
+           ( bInQuotation || rXMLString[ nDelimiterPos ] != aColon ))
+    {
+        // skip escaped characters (with backslash)
+        if( rXMLString[ nDelimiterPos ] == aBackslash )
+            ++nDelimiterPos;
+        // toggle quotation mode when finding single quotes
+        else if( rXMLString[ nDelimiterPos ] == aQuote )
+            bInQuotation = ! bInQuotation;
+
+        ++nDelimiterPos;
+    }
+
+    if( nDelimiterPos == nEndPos )
+    {
+        // only one cell
+        bResult = lcl_getCellAddressFromXMLString( rXMLString, nStartPos, nEndPos,
+                                                   rOutRange.aUpperLeft,
+                                                   rOutRange.aTableName );
+    }
+    else
+    {
+        // range (separated by a colon)
+        bResult = lcl_getCellAddressFromXMLString( rXMLString, nStartPos, nDelimiterPos - 1,
+                                                   rOutRange.aUpperLeft,
+                                                   rOutRange.aTableName );
+        ::rtl::OUString sTableSecondName;
+        if( bResult )
+        {
+            bResult = lcl_getCellAddressFromXMLString( rXMLString, nDelimiterPos + 1, nEndPos,
+                                                       rOutRange.aLowerRight,
+                                                       sTableSecondName );
+        }
+        if( bResult &&
+            sTableSecondName.getLength() &&
+            ! sTableSecondName.equals( rOutRange.aTableName ))
+            bResult = false;
+    }
+
+    return bResult;
+}
+
+} // anonymous namespace
+
+// ================================================================================
+
+//namespace chart
+//{
+namespace XMLRangeHelper
+=====================================================================
+Found a 46 line (206 tokens) duplication in the following files: 
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_scanline.h
+Starting at line 337 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_scanline.h
+
+        renderer_scanline_bin_opaque(base_ren_type& ren, SpanGenerator& span_gen) :
+            m_ren(&ren),
+            m_span_gen(&span_gen)
+        {
+        }
+        
+        //--------------------------------------------------------------------
+        void prepare(unsigned max_span_len) 
+        { 
+            m_span_gen->prepare(max_span_len); 
+        }
+
+        //--------------------------------------------------------------------
+        template<class Scanline> void render(const Scanline& sl)
+        {
+            int y = sl.y();
+            m_ren->first_clip_box();
+            do
+            {
+                int xmin = m_ren->xmin();
+                int xmax = m_ren->xmax();
+
+                if(y >= m_ren->ymin() && y <= m_ren->ymax())
+                {
+                    unsigned num_spans = sl.num_spans();
+                    typename Scanline::const_iterator span = sl.begin();
+                    do
+                    {
+                        int x = span->x;
+                        int len = span->len;
+
+                        if(len < 0) len = -len;
+                        if(x < xmin)
+                        {
+                            len -= xmin - x;
+                            x = xmin;
+                        }
+                        if(len > 0)
+                        {
+                            if(x + len > xmax)
+                            {
+                                len = xmax - x + 1;
+                            }
+                            if(len > 0)
+                            {
+                                m_ren->blend_opaque_color_hspan_no_clip(
+=====================================================================
+Found a 61 line (206 tokens) duplication in the following files: 
+Starting at line 5191 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5451 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+			rSt >> lcbSttbFnm;
+            rSt >> fcPlcfLst;
+            rSt >> lcbPlcfLst;
+            rSt >> fcPlfLfo;
+            rSt >> lcbPlfLfo;
+            rSt >> fcPlcftxbxBkd;
+            rSt >> lcbPlcftxbxBkd;
+            rSt >> fcPlcfHdrtxbxBkd;
+            rSt >> lcbPlcfHdrtxbxBkd;
+            if( 0 != rSt.GetError() )
+            {
+                nFibError = ERR_SWG_READ_ERROR;
+            }
+
+            rSt.Seek( 0x372 );          // fcSttbListNames
+            rSt >> fcSttbListNames;
+            rSt >> lcbSttbListNames;
+            rSt.Seek( 0x382 );          // MagicTables
+            rSt >> fcMagicTable;
+            rSt >> lcbMagicTable;
+            if( 0 != rSt.GetError() )
+                nFibError = ERR_SWG_READ_ERROR;
+
+            rSt.Seek( nOldPos );
+        }
+    }
+    else
+    {
+        nFibError = ERR_SWG_READ_ERROR;     // Error melden
+    }
+}
+
+
+WW8Fib::WW8Fib(BYTE nVer)
+{
+    memset(this, 0, sizeof(*this));
+    nVersion = nVer;
+    if (8 == nVer)
+    {
+        fcMin = 0x400;
+        wIdent = 0xa5ec;
+        nFib = 0xc2;
+        nFibBack = 0xbf;
+        nProduct = 0x204D;
+
+        csw = 0x0e;     // muss das sein ???
+        cfclcb = 0x6c;  //      -""-
+        clw = 0x16;     //      -""-
+        pnFbpChpFirst = pnFbpPapFirst = pnFbpLvcFirst = 0x000fffff;
+        fExtChar = true;
+        fWord97Saved = fWord2000Saved = true;
+
+        // diese Flags muessen nicht gesetzt werden; koennen aber.
+        //  wMagicCreated = wMagicRevised = 0x6a62;
+        //  wMagicCreatedPrivate = wMagicRevisedPrivate = 0xb3b2;
+        //
+
+        wMagicCreated = 0x6143;
+        wMagicRevised = 0x6C6F;
+        wMagicCreatedPrivate = 0x6E61;
+        wMagicRevisedPrivate = 0x3038;
+=====================================================================
+Found a 36 line (206 tokens) duplication in the following files: 
+Starting at line 1844 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4914 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+    *rContents << nSpecialEffect;
+    pBlockFlags[3] |= 0x04;
+
+	WriteAlign(rContents,4);
+	*rContents << rSize.Width;
+	*rContents << rSize.Height;
+
+	nDefault += 0x30;
+	*rContents << sal_uInt8(nDefault);
+	*rContents << sal_uInt8(0x00);
+
+    aCaption.WriteCharArray( *rContents );
+
+	WriteAlign(rContents,4);
+    nFixedAreaLen = static_cast<sal_uInt16>(rContents->Tell()-nOldPos-4);
+	bRet = aFontData.Export(rContents,rPropSet);
+    rContents->Seek(nOldPos);
+	*rContents << nStandardId;
+	*rContents << nFixedAreaLen;
+
+	*rContents << pBlockFlags[0];
+	*rContents << pBlockFlags[1];
+	*rContents << pBlockFlags[2];
+	*rContents << pBlockFlags[3];
+	*rContents << pBlockFlags[4];
+	*rContents << pBlockFlags[5];
+	*rContents << pBlockFlags[6];
+	*rContents << pBlockFlags[7];
+
+	DBG_ASSERT((rContents.Is() &&
+		(SVSTREAM_OK==rContents->GetError())),"damn");
+	return bRet;
+}
+
+
+sal_Bool OCX_CheckBox::Export(SvStorageRef &rObj,
+=====================================================================
+Found a 29 line (206 tokens) duplication in the following files: 
+Starting at line 913 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/passwordcontainer/passwordcontainer.cxx
+Starting at line 955 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/passwordcontainer/passwordcontainer.cxx
+
+void SAL_CALL PasswordContainer::removePersistent( const ::rtl::OUString& url, const ::rtl::OUString& name ) throw(RuntimeException)
+{
+	// this feature still should not be used
+    //throw RuntimeException( ::rtl::OUString::createFromAscii( "Not implememted!" ), Reference< XInterface >() );
+
+	::osl::MutexGuard aGuard( mMutex );
+	
+	::rtl::OUString aUrl( url );
+	if( !container.empty() )
+	{
+		PassMap::iterator aIter = container.find( aUrl );
+
+		if( aIter == container.end() )
+		{
+			sal_Int32 aInd = aUrl.lastIndexOf( sal_Unicode( '/' ) );
+			if( aInd > 0 && aUrl.getLength()-1 == aInd )
+				aUrl = aUrl.copy( 0, aUrl.getLength() - 1 );
+			else
+				aUrl += ::rtl::OUString::createFromAscii( "/" );
+
+			aIter = container.find( aUrl );
+		}
+
+		if( aIter != container.end() )
+		{
+			for( vector< NamePassRecord >::iterator aVIter = aIter->second.begin(); aVIter != aIter->second.end(); aVIter++ )
+				if( aVIter->mName.equals( name ) )
+				{
+					if( aVIter->mStatus == PERSISTENT_RECORD && storageFile )
+=====================================================================
+Found a 61 line (206 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+rtl::OString input(const char* pDefaultText, char cEcho)
+{
+	// PRE: a Default Text would be shown, cEcho is a Value which will show if a key is pressed.
+	const int MAX_INPUT_LEN = 500;
+	char aBuffer[MAX_INPUT_LEN];
+
+	strcpy(aBuffer, pDefaultText);
+	int nLen = strlen(aBuffer);
+
+#ifdef WNT
+	char ch = '\0';
+
+	cout << aBuffer;
+	cout.flush();
+
+	while(ch != 13)
+	{
+		ch = getch();
+		if (ch == 8)
+		{
+			if (nLen > 0)
+			{
+				cout << "\b \b";
+				cout.flush();
+				--nLen;
+				aBuffer[nLen] = '\0';
+			}
+			else
+			{
+				cout << "\a";
+				cout.flush();
+			}
+		}
+		else if (ch != 13)
+		{
+			if (nLen < MAX_INPUT_LEN)
+			{
+				if (cEcho == 0)
+				{
+					cout << ch;
+				}
+				else
+				{
+					cout << cEcho;
+				}
+				cout.flush();
+				aBuffer[nLen++] = ch;
+				aBuffer[nLen] = '\0';
+			}
+			else
+			{
+				cout << "\a";
+				cout.flush();
+			}
+		}
+	}
+#else
+	if (!cin.getline(aBuffer,sizeof aBuffer))
+		return OString();
+#endif
+	return rtl::OString(aBuffer);
+=====================================================================
+Found a 35 line (206 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_devicehelper.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/devicehelper.cxx
+
+    }
+
+    geometry::RealSize2D DeviceHelper::getPhysicalResolution()
+    {
+        if( !mpOutputWindow )
+            return ::canvas::tools::createInfiniteSize2D(); // we're disposed
+
+        // Map a one-by-one millimeter box to pixel
+        const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
+        mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
+        const Size aPixelSize( mpOutputWindow->LogicToPixel(Size(1,1)) );
+        mpOutputWindow->SetMapMode( aOldMapMode );
+
+        return ::vcl::unotools::size2DFromSize( aPixelSize );
+    }
+
+    geometry::RealSize2D DeviceHelper::getPhysicalSize()
+    {
+        if( !mpOutputWindow )
+            return ::canvas::tools::createInfiniteSize2D(); // we're disposed
+
+        // Map the pixel dimensions of the output window to millimeter
+        const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
+        mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
+        const Size aLogSize( mpOutputWindow->PixelToLogic(mpOutputWindow->GetOutputSizePixel()) );
+        mpOutputWindow->SetMapMode( aOldMapMode );
+
+        return ::vcl::unotools::size2DFromSize( aLogSize );
+    }
+
+    uno::Reference< rendering::XLinePolyPolygon2D > DeviceHelper::createCompatibleLinePolyPolygon( 
+        const uno::Reference< rendering::XGraphicDevice >& 				,
+        const uno::Sequence< uno::Sequence< geometry::RealPoint2D > >&	points )
+    {
+        if( !mpOutputWindow )
+=====================================================================
+Found a 42 line (205 tokens) duplication in the following files: 
+Starting at line 929 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 856 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+    if ( !m_aProps.getIsFolder() )
+		return;
+
+	// Obtain a list with a snapshot of all currently instanciated contents
+	// from provider and extract the contents which are direct children
+	// of this content.
+
+	::ucbhelper::ContentRefList aAllContents;
+	m_xProvider->queryExistingContents( aAllContents );
+
+    rtl::OUString aURL = m_xIdentifier->getContentIdentifier();
+	sal_Int32 nURLPos = aURL.lastIndexOf( '/' );
+
+	if ( nURLPos != ( aURL.getLength() - 1 ) )
+	{
+		// No trailing slash found. Append.
+        aURL += rtl::OUString::createFromAscii( "/" );
+	}
+
+	sal_Int32 nLen = aURL.getLength();
+
+	::ucbhelper::ContentRefList::const_iterator it  = aAllContents.begin();
+	::ucbhelper::ContentRefList::const_iterator end = aAllContents.end();
+
+	while ( it != end )
+	{
+		::ucbhelper::ContentImplHelperRef xChild = (*it);
+        rtl::OUString aChildURL
+            = xChild->getIdentifier()->getContentIdentifier();
+
+		// Is aURL a prefix of aChildURL?
+		if ( ( aChildURL.getLength() > nLen ) &&
+			 ( aChildURL.compareTo( aURL, nLen ) == 0 ) )
+		{
+			sal_Int32 nPos = nLen;
+			nPos = aChildURL.indexOf( '/', nPos );
+
+			if ( ( nPos == -1 ) ||
+				 ( nPos == ( aChildURL.getLength() - 1 ) ) )
+			{
+                // No further slashes / only a final slash. It's a child!
+				rChildren.push_back(
+=====================================================================
+Found a 18 line (205 tokens) duplication in the following files: 
+Starting at line 4486 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4077 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] =
+{
+	{ 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 },
+	{ 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 },
+	{ 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 },
+	{ 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 },						// ccp
+	{ 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 },							// ccp
+
+	{ 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 },
+
+	{ 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 }
+};
+static const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] =
+{
+	0x4000, 0x000a, 0x2002, 0x6000, 0x8000,
+	0x4000, 0x0002, 0x8000,
+=====================================================================
+Found a 23 line (205 tokens) duplication in the following files: 
+Starting at line 2317 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+Starting at line 2450 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+
+            fprintf( stderr, "adding cache directory: %s\n", aDir.getStr() );
+#endif
+            for( ::std::list< PrintFont* >::iterator it = aCacheFonts.begin(); it != aCacheFonts.end(); ++it )
+            {
+                fontID aFont = m_nNextFontID++;
+                m_aFonts[ aFont ] = *it;
+                if( (*it)->m_eType == fonttype::Type1 )
+                    m_aFontFileToFontID[ static_cast<Type1FontFile*>(*it)->m_aFontFile ].insert( aFont );
+                else if( (*it)->m_eType == fonttype::TrueType )
+                    m_aFontFileToFontID[ static_cast<TrueTypeFontFile*>(*it)->m_aFontFile ].insert( aFont );
+                else if( (*it)->m_eType == fonttype::Builtin )
+                    m_aFontFileToFontID[ static_cast<BuiltinFont*>(*it)->m_aMetricFile ].insert( aFont );
+#if OSL_DEBUG_LEVEL > 1
+                if( (*it)->m_eType == fonttype::Builtin )
+                    nBuiltinFonts++;
+                nCached++;
+#if OSL_DEBUG_LEVEL > 2
+                fprintf( stderr, "adding cached font %d: \"%s\" from %s\n", aFont,
+                         OUStringToOString( getFontFamily( aFont ), RTL_TEXTENCODING_MS_1252 ).getStr(),
+                         getFontFileSysPath( aFont ).getStr() );
+#endif
+#endif
+            }
+=====================================================================
+Found a 7 line (205 tokens) duplication in the following files: 
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ea0 - 2eaf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 9 line (205 tokens) duplication in the following files: 
+Starting at line 1277 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10, 0,10,10,10,10,10, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23e0 - 23ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23f0 - 23ff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2400 - 240f
+=====================================================================
+Found a 9 line (205 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1215 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10b0 - 10bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10c0 - 10cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10d0 - 10df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10e0 - 10ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10f0 - 10ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1600 - 160f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1610 - 161f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+=====================================================================
+Found a 7 line (205 tokens) duplication in the following files: 
+Starting at line 1115 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1124 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b50 - 0b5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b60 - 0b6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b70 - 0b7f
+     0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b80 - 0b8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b90 - 0b9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ba0 - 0baf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bb0 - 0bbf
+=====================================================================
+Found a 7 line (205 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,  // 9000
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,  // a000
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,  // b000
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,  // c000
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,  // d000
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,  // e000
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0100,  // f000
+=====================================================================
+Found a 8 line (205 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1000 - 100f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1010 - 101f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,17,// 1020 - 102f
+=====================================================================
+Found a 36 line (205 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LServices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+
+using namespace connectivity::evoab;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "EVOAB::component_writeInfo : could not create a registry key !");
+=====================================================================
+Found a 63 line (205 tokens) duplication in the following files: 
+Starting at line 674 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 509 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+                code += 20;
+            }
+            TYPELIB_DANGER_RELEASE( pTD );
+        }
+        OSL_ASSERT( vtable_pos == nSlots );
+    }
+    else
+    {
+        buffer = iFind->second;
+    }
+    }
+    
+    return ((void **)buffer +2);
+}
+
+//==================================================================================================
+void SAL_CALL cppu_cppInterfaceProxy_patchVtable(
+	XInterface * pCppI, typelib_InterfaceTypeDescription * pTypeDescr ) throw ()
+{
+	static MediateClassData * s_pMediateClassData = 0;
+	if (! s_pMediateClassData)
+	{
+		MutexGuard aGuard( Mutex::getGlobalMutex() );
+		if (! s_pMediateClassData)
+		{
+#ifdef LEAK_STATIC_DATA
+			s_pMediateClassData = new MediateClassData();
+#else
+			static MediateClassData s_aMediateClassData;
+			s_pMediateClassData = &s_aMediateClassData;
+#endif
+		}
+	}
+	*(void const **)pCppI = s_pMediateClassData->get_vtable( pTypeDescr );
+}
+
+}
+
+extern "C"
+{
+//##################################################################################################
+sal_Bool SAL_CALL component_canUnload( TimeValue * pTime )
+	SAL_THROW_EXTERN_C()
+{
+	return CPPU_CURRENT_NAMESPACE::g_moduleCount.canUnload(
+        &CPPU_CURRENT_NAMESPACE::g_moduleCount, pTime );
+}
+//##################################################################################################
+void SAL_CALL uno_initEnvironment( uno_Environment * pCppEnv )
+	SAL_THROW_EXTERN_C()
+{
+	CPPU_CURRENT_NAMESPACE::cppu_cppenv_initEnvironment(
+        pCppEnv );
+}
+//##################################################################################################
+void SAL_CALL uno_ext_getMapping(
+	uno_Mapping ** ppMapping, uno_Environment * pFrom, uno_Environment * pTo )
+	SAL_THROW_EXTERN_C()
+{
+	CPPU_CURRENT_NAMESPACE::cppu_ext_getMapping(
+        ppMapping, pFrom, pTo );
+}
+}
+=====================================================================
+Found a 46 line (204 tokens) duplication in the following files: 
+Starting at line 3237 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3405 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : WW8PLCFx(rFib.GetFIBVersion(), true), maSprmParser(rFib.GetFIBVersion()), 
+    pStrm(pSt), nArrMax(256), nSprmSiz(0)
+{
+    pPLCF =   rFib.lcbPlcfsed
+            ? new WW8PLCF(pTblSt, rFib.fcPlcfsed, rFib.lcbPlcfsed, 12, nStartCp)
+            : 0;
+
+    pSprms = new BYTE[nArrMax];     // maximum length
+}
+
+WW8PLCFx_SEPX::~WW8PLCFx_SEPX()
+{
+    delete pPLCF;
+    delete[] pSprms;
+}
+
+ULONG WW8PLCFx_SEPX::GetIdx() const
+{
+    return pPLCF ? pPLCF->GetIdx() : 0;
+}
+
+void WW8PLCFx_SEPX::SetIdx( ULONG nIdx )
+{
+    if( pPLCF ) pPLCF->SetIdx( nIdx );
+}
+
+bool WW8PLCFx_SEPX::SeekPos(WW8_CP nCpPos)
+{
+    return pPLCF ? pPLCF->SeekPos( nCpPos ) : 0;
+}
+
+WW8_CP WW8PLCFx_SEPX::Where()
+{
+    return pPLCF ? pPLCF->Where() : 0;
+}
+
+void WW8PLCFx_SEPX::GetSprms(WW8PLCFxDesc* p)
+{
+    if( !pPLCF ) return;
+
+    void* pData;
+
+    p->bRealLineEnd = false;
+    if (!pPLCF->Get( p->nStartPos, p->nEndPos, pData ))
+    {
+        p->nStartPos = p->nEndPos = WW8_CP_MAX;       // PLCF fertig abgearbeitet
+=====================================================================
+Found a 29 line (204 tokens) duplication in the following files: 
+Starting at line 4893 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4469 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] =
+{
+	{ 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 },
+	{ 18000, 10800 }, { 21600, 21600 }
+};
+static const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] =
+{
+	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] = 
+{
+	{ { 3600, 0 }, { 18000, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] =
+{
+	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 }
+};
+static const mso_CustomShape msoFlowChartOnlineStorage =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageVert, sizeof( mso_sptFlowChartOnlineStorageVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartOnlineStorageSegm, sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartOnlineStorageTextRect, sizeof( mso_sptFlowChartOnlineStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageGluePoints, sizeof( mso_sptFlowChartOnlineStorageGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 29 line (204 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/pipetest.cxx
+
+	~OPipeTest();
+
+public: // refcounting
+	BOOL						queryInterface( Uik aUik, XInterfaceRef & rOut );
+	void 						acquire() 						 { OWeakObject::acquire(); }
+	void 						release() 						 { OWeakObject::release(); }
+	void* 						getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); }
+
+public: // implementation names
+    static Sequence< UString > 	getSupportedServiceNames_Static(void) THROWS( () );
+	static UString 				getImplementationName_Static() THROWS( () );
+
+public:
+    virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject)
+    															THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual INT32 test(	const UString& TestName,
+    					const XInterfaceRef& TestObject,
+    					INT32 hTestHandle) 						THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual BOOL testPassed(void) 								THROWS( (	UsrSystemException) );
+    virtual Sequence< UString > getErrors(void) 				THROWS( (UsrSystemException) );
+    virtual Sequence< UsrAny > getErrorExceptions(void) 		THROWS( (UsrSystemException) );
+    virtual Sequence< UString > getWarnings(void) 				THROWS( (UsrSystemException) );
+
+private:
+	void testSimple( const XInterfaceRef & );
+=====================================================================
+Found a 41 line (204 tokens) duplication in the following files: 
+Starting at line 1116 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1491 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+
+				Impl_writeEllipse( rRect.Center(), rRect.GetWidth() >> 1, rRect.GetHeight() >> 1 );
+			}
+			break;
+
+			case( META_ARC_ACTION ):
+			case( META_PIE_ACTION ):
+			case( META_CHORD_ACTION	):
+			case( META_POLYGON_ACTION ):
+			{
+				Polygon aPoly;
+
+				switch( nType )
+				{
+					case( META_ARC_ACTION ):
+					{
+						const MetaArcAction* pA = (const MetaArcAction*) pAction;
+						aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_ARC );
+					}
+					break;
+
+					case( META_PIE_ACTION ):
+					{
+						const MetaPieAction* pA = (const MetaPieAction*) pAction;
+						aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_PIE );
+					}
+					break;
+
+					case( META_CHORD_ACTION	):
+					{
+						const MetaChordAction* pA = (const MetaChordAction*) pAction;
+						aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_CHORD );
+					}
+					break;
+					
+					case( META_POLYGON_ACTION ):
+						aPoly = ( (const MetaPolygonAction*) pAction )->GetPolygon();
+					break;
+				}
+
+				if( aPoly.GetSize() )
+				{
+=====================================================================
+Found a 42 line (204 tokens) duplication in the following files: 
+Starting at line 670 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/verifyinput.cxx
+Starting at line 762 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/verifyinput.cxx
+
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's NumComponents is negative"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }
+
+            if( bitmapLayout.Endianness < rendering::Endianness::LITTLE ||
+                bitmapLayout.Endianness > rendering::Endianness::BIG )
+            {
+#if OSL_DEBUG_LEVEL > 0
+                throw lang::IllegalArgumentException(
+                    ::rtl::OUString::createFromAscii(pStr) +
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's Endianness value is out of range (") +
+                    ::rtl::OUString::valueOf(sal::static_int_cast<sal_Int32>(bitmapLayout.Endianness)) +
+                    ::rtl::OUString::createFromAscii(" not known)"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }                
+
+            if( bitmapLayout.Format < rendering::IntegerBitmapFormat::CHUNKY_1BIT ||
+                bitmapLayout.Format > rendering::IntegerBitmapFormat::PLANES_64BIT )
+            {
+#if OSL_DEBUG_LEVEL > 0
+                throw lang::IllegalArgumentException(
+                    ::rtl::OUString::createFromAscii(pStr) +
+                    ::rtl::OUString::createFromAscii(": verifyInput(): bitmap layout's Format value is out of range (") +
+                    ::rtl::OUString::valueOf(sal::static_int_cast<sal_Int32>(bitmapLayout.Format)) +
+                    ::rtl::OUString::createFromAscii(" not known)"),
+                    xIf,
+                    nArgPos );
+#else
+                throw lang::IllegalArgumentException();
+#endif
+            }
+        }
+
+        void verifyInput( const rendering::FontInfo&				/*fontInfo*/,
+=====================================================================
+Found a 34 line (204 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+
+			pCppReturn = *pCallStack;
+			pCppStack += sizeof( void* );
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes   = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[ nPos ] = pUnoArgs[ nPos ] =
+=====================================================================
+Found a 36 line (203 tokens) duplication in the following files: 
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_aa.h
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_bin.h
+
+        serialized_scanlines_adaptor_bin(const int8u* data, unsigned size,
+                                         double dx, double dy) :
+            m_data(data),
+            m_end(data + size),
+            m_ptr(data),
+            m_dx(int(floor(dx + 0.5))),
+            m_dy(int(floor(dy + 0.5))),
+            m_min_x(0x7FFFFFFF),
+            m_min_y(0x7FFFFFFF),
+            m_max_x(-0x7FFFFFFF),
+            m_max_y(-0x7FFFFFFF)
+        {}
+
+        //--------------------------------------------------------------------
+        void init(const int8u* data, unsigned size, double dx, double dy)
+        {
+            m_data  = data;
+            m_end   = data + size;
+            m_ptr   = data;
+            m_dx    = int(floor(dx + 0.5));
+            m_dy    = int(floor(dy + 0.5));
+            m_min_x = 0x7FFFFFFF;
+            m_min_y = 0x7FFFFFFF;
+            m_max_x = -0x7FFFFFFF;
+            m_max_y = -0x7FFFFFFF;
+        }
+
+    private:
+        //--------------------------------------------------------------------
+        int read_int16()
+        {
+            int16 val;
+            ((int8u*)&val)[0] = *m_ptr++;
+            ((int8u*)&val)[1] = *m_ptr++;
+            return val;
+        }
+=====================================================================
+Found a 41 line (203 tokens) duplication in the following files: 
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linksrc.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linksrc.cxx
+
+	delete pImpl;
+}
+
+void  SvLinkSource::Closed()
+{
+	SvLinkSource_EntryIter_Impl aIter( pImpl->aArr );
+	for( SvLinkSource_Entry_Impl* p = aIter.Curr(); p; p = aIter.Next() )
+		if( !p->bIsDataSink )
+			p->xSink->Closed();
+}
+
+ULONG SvLinkSource::GetUpdateTimeout() const
+{
+	return pImpl->nTimeout;
+}
+
+void SvLinkSource::SetUpdateTimeout( ULONG nTimeout )
+{
+	pImpl->nTimeout = nTimeout;
+	if( pImpl->pTimer )
+		pImpl->pTimer->SetTimeout( nTimeout );
+}
+
+void SvLinkSource::SendDataChanged()
+{
+	SvLinkSource_EntryIter_Impl aIter( pImpl->aArr );
+	for( SvLinkSource_Entry_ImplPtr p = aIter.Curr(); p; p = aIter.Next() )
+	{
+		if( p->bIsDataSink )
+		{
+			String sDataMimeType( pImpl->aDataMimeType );
+			if( !sDataMimeType.Len() )
+				sDataMimeType = p->aDataMimeType;
+
+			Any aVal;
+			if( ( p->nAdviseModes & ADVISEMODE_NODATA ) ||
+				GetData( aVal, sDataMimeType, TRUE ) )
+			{
+				p->xSink->DataChanged( sDataMimeType, aVal );
+
+				if( p->nAdviseModes & ADVISEMODE_ONLYONCE )
+=====================================================================
+Found a 28 line (203 tokens) duplication in the following files: 
+Starting at line 1922 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 597 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT6 );
+			
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			
+			sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
+			::rtl::OUString suError1 = ::rtl::OUString::createFromAscii("Socket bind fail:") + sSocket.getErrorAsString();
+			CPPUNIT_ASSERT_MESSAGE( suError1, sal_True == bOK1 );
+			sal_Bool bOK;
+			::rtl::OUString suError;
+#ifdef WNT
+			bOK = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
+			suError = outputError(sSocket.getLocalHost( ), getThisHostname( ), 
+"test for getLocalHost function: create localhost socket and check name");
+#else	
+			::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) "localhost" );
+			sal_Bool bRes1, bRes2;
+			bRes1 = compareUString( sSocket.getLocalHost( ), aUString ) ;
+			bRes2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname(0) ) ;
+			bOK = bRes1 || bRes2;
+			suError = outputError(sSocket.getLocalHost( ), aUString, "test for getLocalHost function: create localhost socket and check name");
+#endif				
+			CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK );
+		}
+	
+		void getLocalHost_002()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_POP3);
+=====================================================================
+Found a 9 line (203 tokens) duplication in the following files: 
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+=====================================================================
+Found a 7 line (203 tokens) duplication in the following files: 
+Starting at line 1332 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ea0 - 2eaf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 13 line (203 tokens) duplication in the following files: 
+Starting at line 1222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+=====================================================================
+Found a 8 line (203 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17,17, 0,// 0e40 - 0e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e50 - 0e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e60 - 0e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e70 - 0e7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e80 - 0e8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e90 - 0e9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ea0 - 0eaf
+     0,17, 0, 0,17,17,17,17,17,17, 0,17,17, 0, 0, 0,// 0eb0 - 0ebf
+=====================================================================
+Found a 8 line (203 tokens) duplication in the following files: 
+Starting at line 1058 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1506 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0,13,13,13,13,13,13,13,13,13,13,13,13,13,// fbd0 - fbdf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fbe0 - fbef
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fbf0 - fbff
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd00 - fd0f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd10 - fd1f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd20 - fd2f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,10,// fd30 - fd3f
+=====================================================================
+Found a 8 line (203 tokens) duplication in the following files: 
+Starting at line 1036 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,18,18,18,18, 0,// 1800 - 180f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1810 - 181f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1820 - 182f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1830 - 183f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1840 - 184f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1850 - 185f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 7 line (203 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 756 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27, 0, 0, 0, 0,27,27,27,27,27,// 3370 - 337f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3380 - 338f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3390 - 339f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33a0 - 33af
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33b0 - 33bf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33c0 - 33cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0, 0,// 33d0 - 33df
+=====================================================================
+Found a 8 line (203 tokens) duplication in the following files: 
+Starting at line 573 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 31b0 - 31bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31c0 - 31cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31d0 - 31df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31e0 - 31ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31f0 - 31ff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3200 - 320f
+    27,27,27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0,// 3210 - 321f
+=====================================================================
+Found a 7 line (203 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23e0 - 23ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23f0 - 23ff
+=====================================================================
+Found a 38 line (203 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 790 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+};
+
+
+//=======================================================================
+
+static sal_Unicode ImplStarSymbolToStarBats( sal_Unicode c )
+=====================================================================
+Found a 31 line (203 tokens) duplication in the following files: 
+Starting at line 3602 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 3869 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+            if( hbox->style.cap_len > 0 )
+            {
+                padd(ascii("draw:style-name"), sXML_CDATA,
+                    ascii(Int2Str(hbox->style.boxnum, "CapBox%d", buf)));
+                padd(ascii("draw:name"), sXML_CDATA,
+                    ascii(Int2Str(hbox->style.boxnum, "CaptionBox%d", buf)));
+					 padd(ascii("draw:z-index"), sXML_CDATA,
+                    ascii(Int2Str(hbox->zorder, "%d", buf)));
+                switch (hbox->style.anchor_type)
+                {
+                    case CHAR_ANCHOR:
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("as-char"));
+                        break;
+                    case PARA_ANCHOR:
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("paragraph"));
+                        break;
+                    case PAGE_ANCHOR:
+                    case PAPER_ANCHOR:
+                    {
+                        // os unused
+                        // HWPInfo *hwpinfo = hwpfile.GetHWPInfo();
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("page"));
+                        padd(ascii("text:anchor-page-number"), sXML_CDATA,
+                            ascii(Int2Str(hbox->pgno +1, "%d", buf)));
+                        break;
+                    }
+                }
+                if (hbox->style.anchor_type != CHAR_ANCHOR)
+                {
+                    padd(ascii("svg:x"), sXML_CDATA,
+                        Double2Str(WTMM(  hbox->pgx + hbox->style.margin[0][0] )) + ascii("mm"));
+=====================================================================
+Found a 7 line (203 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23e0 - 23ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23f0 - 23ff
+=====================================================================
+Found a 55 line (203 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 538 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+		else if( !m_bLink && m_aInterceptedURL[4] == Requests[i].FeatureURL.Complete )
+			aRet[i] = (frame::XDispatch*) this;
+		else if(m_aInterceptedURL[5] == Requests[i].FeatureURL.Complete)
+			aRet[i] = (frame::XDispatch*) this;
+
+	return aRet;
+}
+
+
+
+//XDispatchProviderInterceptor
+
+uno::Reference< frame::XDispatchProvider > SAL_CALL 
+Interceptor::getSlaveDispatchProvider(  ) 
+	throw (
+		uno::RuntimeException
+	)
+{
+	osl::MutexGuard aGuard(m_aMutex);
+	return m_xSlaveDispatchProvider;
+}
+
+void SAL_CALL
+Interceptor::setSlaveDispatchProvider( 
+	const uno::Reference< frame::XDispatchProvider >& NewDispatchProvider )
+	throw (
+		uno::RuntimeException
+	)
+{
+	osl::MutexGuard aGuard(m_aMutex);
+	m_xSlaveDispatchProvider = NewDispatchProvider;
+}
+
+
+uno::Reference< frame::XDispatchProvider > SAL_CALL
+Interceptor::getMasterDispatchProvider(  ) 
+	throw (
+		uno::RuntimeException
+	)
+{
+	osl::MutexGuard aGuard(m_aMutex);
+	return m_xMasterDispatchProvider;	
+}
+
+	
+void SAL_CALL
+Interceptor::setMasterDispatchProvider( 
+	const uno::Reference< frame::XDispatchProvider >& NewSupplier )
+	throw (
+		uno::RuntimeException
+	)
+{
+	osl::MutexGuard aGuard(m_aMutex);
+	m_xMasterDispatchProvider = NewSupplier;
+}
+=====================================================================
+Found a 37 line (203 tokens) duplication in the following files: 
+Starting at line 1002 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+
+		const basegfx::B2DPolygon aPolygon(rPolyPolygon.getB2DPolygon(nPolygon));
+		const sal_uInt32 nPointCount(aPolygon.count());
+
+		if(nPointCount)
+		{
+			if(aPolygon.areControlPointsUsed())
+			{
+				// prepare edge-based loop
+				basegfx::B2DPoint aCurrentPoint(aPolygon.getB2DPoint(0));
+				const sal_uInt32 nEdgeCount(aPolygon.isClosed() ? nPointCount - 1 : nPointCount);
+
+				// first vertex
+				path.move_to(aCurrentPoint.getX(), aCurrentPoint.getY());
+
+				for(sal_uInt32 a(0); a < nEdgeCount; a++)
+				{
+					// access next point
+					const sal_uInt32 nNextIndex((a + 1) % nPointCount);
+					const basegfx::B2DPoint aNextPoint(aPolygon.getB2DPoint(nNextIndex));
+
+					// get control points
+					const basegfx::B2DPoint aControlNext(aPolygon.getNextControlPoint(a));
+					const basegfx::B2DPoint aControlPrev(aPolygon.getPrevControlPoint(nNextIndex));
+
+					// specify first cp, second cp, next vertex
+					path.curve4(
+						aControlNext.getX(), aControlNext.getY(),
+						aControlPrev.getX(), aControlPrev.getY(),
+						aNextPoint.getX(), aNextPoint.getY());
+
+					// prepare next step
+					aCurrentPoint = aNextPoint;
+				}
+			}
+			else
+			{
+				const basegfx::B2DPoint aPoint(aPolygon.getB2DPoint(0));
+=====================================================================
+Found a 55 line (203 tokens) duplication in the following files: 
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/textlayout.cxx
+
+        return true;
+    }
+
+    namespace
+    {
+        class OffsetTransformer
+        {
+        public:
+            OffsetTransformer( const ::basegfx::B2DHomMatrix& rMat ) :
+                maMatrix( rMat )
+            {
+            }
+
+            sal_Int32 operator()( const double& rOffset )
+            {
+                // This is an optimization of the normal rMat*[x,0]
+                // transformation of the advancement vector (in x
+                // direction), followed by a length calculation of the
+                // resulting vector: advancement' =
+                // ||rMat*[x,0]||. Since advancements are vectors, we
+                // can ignore translational components, thus if [x,0],
+                // it follows that rMat*[x,0]=[x',0] holds. Thus, we
+                // just have to calc the transformation of the x
+                // component.
+
+                // TODO(F2): Handle non-horizontal advancements!
+                return ::basegfx::fround( hypot(maMatrix.get(0,0)*rOffset,
+												maMatrix.get(1,0)*rOffset) );
+            }
+
+        private:
+            ::basegfx::B2DHomMatrix maMatrix;
+        };
+    }
+
+    void TextLayout::setupTextOffsets( sal_Int32*						outputOffsets,
+                                       const uno::Sequence< double >& 	inputOffsets,
+                                       const rendering::ViewState& 		viewState,
+                                       const rendering::RenderState& 	renderState		) const
+    {
+        ENSURE_AND_THROW( outputOffsets!=NULL,
+                          "TextLayout::setupTextOffsets offsets NULL" );
+
+        ::basegfx::B2DHomMatrix aMatrix;
+
+        ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
+                                                     viewState,
+                                                     renderState);
+
+        // fill integer offsets
+        ::std::transform( const_cast< uno::Sequence< double >& >(inputOffsets).getConstArray(),
+                          const_cast< uno::Sequence< double >& >(inputOffsets).getConstArray()+inputOffsets.getLength(),
+                          outputOffsets,
+                          OffsetTransformer( aMatrix ) );
+    }
+=====================================================================
+Found a 28 line (202 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 776 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlCurrencyFieldModel") ) );
+	
+	Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
+	if (xStyle.is())
+	{
+		StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+		Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+		pStyle->importBackgroundColorStyle( xControlModel );
+		pStyle->importTextColorStyle( xControlModel );
+		pStyle->importTextLineColorStyle( xControlModel );
+		pStyle->importBorderStyle( xControlModel );
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
+							   _xAttributes );
+	ctx.importBooleanProperty(
+        OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
+        _xAttributes );
+	ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("CurrencySymbol") ),
+=====================================================================
+Found a 41 line (202 tokens) duplication in the following files: 
+Starting at line 928 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/epptso.cxx
+Starting at line 3463 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/escherex.cxx
+
+sal_Bool EscherPropertyValueHelper::GetPropertyValue(
+	::com::sun::star::uno::Any& rAny,
+		const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
+			const String& rString,
+					sal_Bool bTestPropertyAvailability )
+{
+    sal_Bool bRetValue = sal_True;
+	if ( bTestPropertyAvailability )
+	{
+		bRetValue = sal_False;
+		try
+		{
+			::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+				aXPropSetInfo( rXPropSet->getPropertySetInfo() );
+			if ( aXPropSetInfo.is() )
+				bRetValue = aXPropSetInfo->hasPropertyByName( rString );
+		}
+		catch( ::com::sun::star::uno::Exception& )
+		{
+			bRetValue = sal_False;
+		}
+	}
+	if ( bRetValue )
+	{
+		try
+		{
+			rAny = rXPropSet->getPropertyValue( rString );
+			if ( !rAny.hasValue() )
+				bRetValue = sal_False;
+		}
+		catch( ::com::sun::star::uno::Exception& )
+		{
+			bRetValue = sal_False;
+		}
+	}
+    return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+::com::sun::star::beans::PropertyState EscherPropertyValueHelper::GetPropertyState(
+=====================================================================
+Found a 14 line (202 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,   19,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0
+
+    } ;
+=====================================================================
+Found a 35 line (201 tokens) duplication in the following files: 
+Starting at line 1203 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+void ListBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, ULONG nFlags )
+{
+	mpImplLB->GetMainWindow()->ImplInitSettings( TRUE, TRUE, TRUE );
+
+	Point aPos = pDev->LogicToPixel( rPos );
+	Size aSize = pDev->LogicToPixel( rSize );
+	Font aFont = mpImplLB->GetMainWindow()->GetDrawPixelFont( pDev );
+	OutDevType eOutDevType = pDev->GetOutDevType();
+
+	pDev->Push();
+	pDev->SetMapMode();
+	pDev->SetFont( aFont );
+	pDev->SetTextFillColor();
+
+	// Border/Background
+	pDev->SetLineColor();
+	pDev->SetFillColor();
+	BOOL bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
+	BOOL bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+	if ( bBorder || bBackground )
+	{
+		Rectangle aRect( aPos, aSize );
+		if ( bBorder )
+		{
+            ImplDrawFrame( pDev, aRect );
+		}
+		if ( bBackground )
+		{
+			pDev->SetFillColor( GetControlBackground() );
+			pDev->DrawRect( aRect );
+		}
+	}
+
+	// Inhalt
+	if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+=====================================================================
+Found a 35 line (201 tokens) duplication in the following files: 
+Starting at line 936 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 2288 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    ::ucbhelper::ContentRefList aAllContents;
+    m_xProvider->queryExistingContents( aAllContents );
+
+    rtl::OUString aURL = m_xIdentifier->getContentIdentifier();
+    sal_Int32 nURLPos = aURL.lastIndexOf( '/' );
+	
+    if ( nURLPos != ( aURL.getLength() - 1 ) )
+    {
+        // No trailing slash found. Append.
+        aURL += rtl::OUString::createFromAscii( "/" );
+    }
+
+    sal_Int32 nLen = aURL.getLength();
+    
+    ::ucbhelper::ContentRefList::const_iterator it  = aAllContents.begin();
+    ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end();
+
+    while ( it != end )
+    {
+        ::ucbhelper::ContentImplHelperRef xChild = (*it);
+        rtl::OUString aChildURL
+            = xChild->getIdentifier()->getContentIdentifier();
+	    
+        // Is aURL a prefix of aChildURL?
+        if ( ( aChildURL.getLength() > nLen ) &&
+             ( aChildURL.compareTo( aURL, nLen ) == 0 ) )
+        {
+            sal_Int32 nPos = nLen;
+            nPos = aChildURL.indexOf( '/', nPos );
+	    
+            if ( ( nPos == -1 ) ||
+                 ( nPos == ( aChildURL.getLength() - 1 ) ) )
+            {
+                // No further slashes / only a final slash. It's a child!
+                rChildren.push_back(
+=====================================================================
+Found a 23 line (201 tokens) duplication in the following files: 
+Starting at line 5273 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4939 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+static const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] =
+{
+	2, 1350, 25920
+};
+static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] =
+{
+	{ 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I }
+};
+static const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] =
+{
+	{ { 3200, 3200 }, { 18400, 18400 } }
+};
+static const mso_CustomShape msoWedgeEllipseCallout =
+{
+	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutVert, sizeof( mso_sptWedgeEllipseCalloutVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptWedgeEllipseCalloutSegm, sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptWedgeEllipseCalloutCalc, sizeof( mso_sptWedgeEllipseCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptWedgeEllipseCalloutDefault,
+	(SvxMSDffTextRectangles*)mso_sptWedgeEllipseCalloutTextRect, sizeof( mso_sptWedgeEllipseCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 13 line (201 tokens) duplication in the following files: 
+Starting at line 3093 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2784 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptSunVert[] =	// adj value 2700 -> 10125
+{
+	{ 0, 10800 },				{ 4 MSO_I, 8 MSO_I },		{ 4 MSO_I, 9 MSO_I },
+	{ 0x0a MSO_I, 0x0b MSO_I },	{ 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I },
+	{ 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I },
+	{ 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I },
+	{ 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I },
+	{ 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I },
+	{ 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I },
+	{ 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I },
+	{ 0 MSO_I, 0 MSO_I },		{ 1 MSO_I, 1 MSO_I }
+=====================================================================
+Found a 60 line (201 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/insdlg.cxx
+
+};
+
+/********************** SvObjectServerList ********************************
+**************************************************************************/
+PRV_SV_IMPL_OWNER_LIST( SvObjectServerList, SvObjectServer )
+
+/*************************************************************************
+|*    SvObjectServerList::SvObjectServerList()
+|*
+|*    Beschreibung
+*************************************************************************/
+const SvObjectServer * SvObjectServerList::Get( const String & rHumanName ) const
+{
+	for( ULONG i = 0; i < Count(); i++ )
+	{
+		if( rHumanName == GetObject( i ).GetHumanName() )
+			return &GetObject( i );
+	}
+	return NULL;
+}
+
+/*************************************************************************
+|*    SvObjectServerList::SvObjectServerList()
+|*
+|*    Beschreibung
+*************************************************************************/
+const SvObjectServer * SvObjectServerList::Get( const SvGlobalName & rName ) const
+{
+	for( ULONG i = 0; i < Count(); i++ )
+	{
+		if( rName == GetObject( i ).GetClassName() )
+			return &GetObject( i );
+	}
+	return NULL;
+}
+
+void SvObjectServerList::Remove( const SvGlobalName & rName )
+{
+	SvObjectServer * pS = (SvObjectServer *)aTypes.First();
+	while( pS )
+	{
+		if( rName == pS->GetClassName() )
+		{
+			Remove();
+			pS = (SvObjectServer *)aTypes.GetCurObject();
+		}
+		else
+			pS = (SvObjectServer *)aTypes.Next();
+	}
+}
+
+//---------------------------------------------------------------------
+void SvObjectServerList::FillInsertObjects()
+/* [Beschreibung]
+
+	Die Liste wird mit allen Typen gef"ullt, die im Insert-Dialog
+	ausgew"ahlt werden k"onnen.
+*/
+{
+	try{
+=====================================================================
+Found a 56 line (201 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/ppt/pptatom.cpp
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/svx/workben/msview/msview.cxx
+
+	if( isContainer() )
+	{
+		if( seekToContent() )
+		{
+			DffRecordHeader aChildHeader;
+
+			Atom* pLastAtom = NULL;
+
+			while( (mrStream.GetError() == 0 ) && ( mrStream.Tell() < maRecordHeader.GetRecEndFilePos() ) )
+			{
+				mrStream >> aChildHeader;
+
+				if( mrStream.GetError() == 0 )
+				{
+					Atom* pAtom = new Atom( aChildHeader, mrStream );
+
+					if( pLastAtom )
+						pLastAtom->mpNextAtom = pAtom;
+					if( mpFirstChild == NULL )
+						mpFirstChild = pAtom;
+
+					pLastAtom = pAtom;
+				}
+			}
+		}
+	}
+
+	maRecordHeader.SeekToEndOfRecord( mrStream );
+}
+
+Atom::~Atom()
+{
+	Atom* pChild = mpFirstChild;
+	while( pChild )
+	{
+		Atom* pNextChild = pChild->mpNextAtom;
+		delete pChild;
+		pChild = pNextChild;
+	}
+}
+
+/** imports this atom and its child atoms */
+Atom* Atom::import( const DffRecordHeader& rRootRecordHeader, SvStream& rStCtrl )
+{
+	Atom* pRootAtom = new Atom( rRootRecordHeader, rStCtrl );
+
+	if( rStCtrl.GetError() == 0 )
+	{
+		return pRootAtom;
+	}
+	else
+	{
+		delete pRootAtom;
+		return NULL;
+	}
+}
+=====================================================================
+Found a 35 line (201 tokens) duplication in the following files: 
+Starting at line 1921 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 2056 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	double fCount1  = 0.0;
+	double fCount2  = 0.0;
+	double fSum1    = 0.0;
+	double fSumSqr1 = 0.0;
+	double fSum2    = 0.0;
+	double fSumSqr2 = 0.0;
+	double fVal;
+	for (i = 0; i < nC1; i++)
+		for (j = 0; j < nR1; j++)
+		{
+			if (!pMat1->IsString(i,j))
+			{
+				fVal = pMat1->GetDouble(i,j);
+				fSum1    += fVal;
+				fSumSqr1 += fVal * fVal;
+				fCount1++;
+			}
+		}
+	for (i = 0; i < nC2; i++)
+		for (j = 0; j < nR2; j++)
+		{
+			if (!pMat2->IsString(i,j))
+			{
+				fVal = pMat2->GetDouble(i,j);
+				fSum2    += fVal;
+				fSumSqr2 += fVal * fVal;
+				fCount2++;
+			}
+		}
+	if (fCount1 < 2.0 || fCount2 < 2.0)
+	{
+		SetNoValue();
+		return;
+	}
+	double fS1 = (fSumSqr1-fSum1*fSum1/fCount1)/(fCount1-1.0);
+=====================================================================
+Found a 50 line (201 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+
+		fp=fp->fr_savfp;
+	}
+	return i;
+}
+
+void backtrace_symbols_fd( void **buffer, int size, int fd )
+{
+	FILE	*fp = fdopen( fd, "w" );
+
+	if ( fp )
+	{
+		void **pFramePtr;
+		for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
+		{
+			Dl_info		dli;
+			ptrdiff_t	offset;
+
+			if ( 0 != dladdr( *pFramePtr, &dli ) )
+			{
+				if ( dli.dli_fname && dli.dli_fbase )
+				{
+					offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
+					fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
+				}
+				if ( dli.dli_sname && dli.dli_saddr )
+				{
+					offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
+					fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
+				}
+			}
+			fprintf( fp, "[0x%x]\n", *pFramePtr );
+		}
+		fflush( fp );
+		fclose( fp );
+	}
+}
+#endif /* defined FREEBSD */
+
+#if defined(IRIX)
+#include <stdio.h>
+#include <rld_interface.h>
+#include <exception.h>
+#include <sys/signal.h>
+#include <unistd.h>
+ 
+/* Need extra libs -lexc -ldwarf -lelf */
+
+int backtrace( void **buffer, int max_frames )
+{
+	struct sigcontext context;
+=====================================================================
+Found a 7 line (201 tokens) duplication in the following files: 
+Starting at line 1497 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1536 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe90 - fe9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fea0 - feaf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// feb0 - febf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fec0 - fecf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fed0 - fedf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fee0 - feef
+    13,13,13,13,13,13,13,13,13,13,13,13,13, 0, 0,18,// fef0 - feff
+=====================================================================
+Found a 7 line (201 tokens) duplication in the following files: 
+Starting at line 1314 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10, 4, 4,10,10,10,10,10,10,10,10,10,10,10,10,// 2210 - 221f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2220 - 222f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2230 - 223f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2240 - 224f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2250 - 225f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2260 - 226f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2270 - 227f
+=====================================================================
+Found a 9 line (201 tokens) duplication in the following files: 
+Starting at line 1222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+=====================================================================
+Found a 8 line (201 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17,17, 0,// 0e40 - 0e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e50 - 0e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e60 - 0e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e70 - 0e7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e80 - 0e8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e90 - 0e9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ea0 - 0eaf
+     0,17, 0, 0,17,17,17,17,17,17, 0,17,17, 0, 0, 0,// 0eb0 - 0ebf
+=====================================================================
+Found a 7 line (201 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1600 - 160f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1610 - 161f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1620 - 162f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1630 - 163f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1640 - 164f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1650 - 165f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,23,23, 5,// 1660 - 166f
+=====================================================================
+Found a 8 line (201 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 28 line (201 tokens) duplication in the following files: 
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/oleobjw.cxx
+Starting at line 1144 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/oleobjw.cxx
+
+        throw IllegalArgumentException();
+        break;
+    case DISP_E_OVERFLOW:
+        throw CannotConvertException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("call to OLE object failed")), static_cast<XInterface*>(
+                                         static_cast<XWeak*>(this)), TypeClass_UNKNOWN, FailReason::OUT_OF_RANGE, uArgErr);
+        break;
+    case DISP_E_PARAMNOTFOUND:
+        throw IllegalArgumentException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("call to OLE object failed")), static_cast<XInterface*>(
+                                           static_cast<XWeak*>(this)), uArgErr);
+        break;
+    case DISP_E_TYPEMISMATCH:
+        throw CannotConvertException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("call to OLE object failed")),static_cast<XInterface*>(
+                                         static_cast<XWeak*>(this)) , TypeClass_UNKNOWN, FailReason::UNKNOWN, uArgErr);
+        break;
+    case DISP_E_UNKNOWNINTERFACE:
+        throw RuntimeException() ;
+        break;
+    case DISP_E_UNKNOWNLCID:
+        throw RuntimeException() ;
+        break;
+    case DISP_E_PARAMNOTOPTIONAL:
+        throw CannotConvertException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("call to OLE object failed")), static_cast<XInterface*>(
+                                         static_cast<XWeak*>(this)), TypeClass_UNKNOWN, FailReason::NO_DEFAULT_AVAILABLE, uArgErr);
+				break;
+    default:
+        throw RuntimeException();
+        break;
+    }		
+=====================================================================
+Found a 28 line (201 tokens) duplication in the following files: 
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUser.cxx
+
+void SAL_CALL OMySQLUser::revokePrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(SQLException, RuntimeException)
+{
+    if ( objType != PrivilegeObject::TABLE )
+        ::dbtools::throwSQLException( "Privilege not revoked: Only table privileges can be revoked", "01006", *this );
+
+	::osl::MutexGuard aGuard(m_aMutex);
+	checkDisposed(OUser_BASE_RBHELPER::rBHelper.bDisposed);
+    ::rtl::OUString sPrivs = getPrivilegeString(objPrivileges);
+	if(sPrivs.getLength())
+	{
+		::rtl::OUString sGrant;
+		sGrant += ::rtl::OUString::createFromAscii("REVOKE ");
+		sGrant += sPrivs;
+		sGrant += ::rtl::OUString::createFromAscii(" ON ");
+		Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+		sGrant += ::dbtools::quoteTableName(xMeta,objName,::dbtools::eInDataManipulation);
+		sGrant += ::rtl::OUString::createFromAscii(" FROM ");
+		sGrant += m_Name;
+		
+		Reference<XStatement> xStmt = m_xConnection->createStatement();
+		if(xStmt.is())
+			xStmt->execute(sGrant);
+		::comphelper::disposeComponent(xStmt);
+	}
+}
+// -----------------------------------------------------------------------------
+// XUser
+void SAL_CALL OMySQLUser::changePassword( const ::rtl::OUString& /*oldPassword*/, const ::rtl::OUString& newPassword ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 27 line (201 tokens) duplication in the following files: 
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+
+Reference< XResultSet > SAL_CALL ODbaseDatabaseMetaData::getColumns(
+	const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern,
+        const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+
+
+    Reference< XTablesSupplier > xTables = m_pConnection->createCatalog();
+	if(!xTables.is())
+        throw SQLException();
+
+	Reference< XNameAccess> xNames = xTables->getTables();
+	if(!xNames.is())
+        throw SQLException();
+
+	ODatabaseMetaDataResultSet::ORows aRows;
+	ODatabaseMetaDataResultSet::ORow aRow(19);
+
+	aRow[10] = new ORowSetValueDecorator((sal_Int32)10);
+	Sequence< ::rtl::OUString> aTabNames(xNames->getElementNames());
+	const ::rtl::OUString* pTabBegin	= aTabNames.getConstArray();
+	const ::rtl::OUString* pTabEnd		= pTabBegin + aTabNames.getLength();
+	for(;pTabBegin != pTabEnd;++pTabBegin)
+	{
+		if(match(tableNamePattern,*pTabBegin,'\0'))
+		{
+			Reference< XColumnsSupplier> xTable;
+=====================================================================
+Found a 31 line (201 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper_text.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+
+            if( !::rtl::math::approxEqual(aScale.getX(), aScale.getY()) )
+            {
+                // retrieve true font width
+                const sal_Int32 nFontWidth( rOutDev.GetFontMetric( io_rVCLFont ).GetWidth() );
+
+                const sal_Int32 nScaledFontWidth( ::basegfx::fround(nFontWidth * aScale.getX()) );
+
+                if( !nScaledFontWidth )
+                {
+                    // scale is smaller than one pixel - disable text
+                    // output altogether
+                    return false;
+                }
+
+                io_rVCLFont.SetWidth( nScaledFontWidth );
+            }
+
+            if( !::rtl::math::approxEqual(aScale.getY(), 1.0) )
+            {
+                const sal_Int32 nFontHeight( io_rVCLFont.GetHeight() );
+                io_rVCLFont.SetHeight( ::basegfx::fround(nFontHeight * aScale.getY()) );
+            }
+
+            io_rVCLFont.SetOrientation( static_cast< short >( ::basegfx::fround(-fmod(nRotate, 2*M_PI)*(1800.0/M_PI)) ) );
+
+            // TODO(F2): Missing functionality in VCL: shearing
+            o_rPoint.X() = ::basegfx::fround(aTranslate.getX());
+            o_rPoint.Y() = ::basegfx::fround(aTranslate.getY());
+
+            return true;
+        }
+=====================================================================
+Found a 30 line (201 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedfunc.cxx
+Starting at line 1515 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/report/ViewsWindow.cxx
+
+		    const SdrHdlList& rHdlList = pView->GetHdlList();
+		    SdrHdl* pHdl = rHdlList.GetFocusHdl();
+
+		    if ( pHdl == 0 )
+		    {
+			    // no handle selected
+			    if ( pView->IsMoveAllowed() )
+			    {
+				    // restrict movement to work area
+				    const Rectangle& rWorkArea = pView->GetWorkArea();
+
+				    if ( !rWorkArea.IsEmpty() )
+				    {
+					    Rectangle aMarkRect( pView->GetMarkedObjRect() );
+					    aMarkRect.Move( nX, nY );
+
+					    if ( !rWorkArea.IsInside( aMarkRect ) )
+					    {
+						    if ( aMarkRect.Left() < rWorkArea.Left() )
+							    nX += rWorkArea.Left() - aMarkRect.Left();
+
+						    if ( aMarkRect.Right() > rWorkArea.Right() )
+							    nX -= aMarkRect.Right() - rWorkArea.Right();
+
+						    if ( aMarkRect.Top() < rWorkArea.Top() )
+							    nY += rWorkArea.Top() - aMarkRect.Top();
+
+						    if ( aMarkRect.Bottom() > rWorkArea.Bottom() )
+							    nY -= aMarkRect.Bottom() - rWorkArea.Bottom();
+					    }
+=====================================================================
+Found a 53 line (200 tokens) duplication in the following files: 
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/cfgmerge.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/xrmmerge.cxx
+
+		else if ( ByteString( argv[ i ] ).ToUpperAscii() == "-ISO99" ) {
+			nState = STATE_ISOCODE99;
+		}
+		else {
+			switch ( nState ) {
+				case STATE_NON: {
+					return NULL;	// no valid command line
+				}
+				case STATE_INPUT: {
+					sInputFileName = argv[ i ];
+					bInput = TRUE; // source file found
+				}
+				break;
+				case STATE_OUTPUT: {
+					sOutputFile = argv[ i ]; // the dest. file
+				}
+				break;
+				case STATE_PRJ: {
+					sPrj = ByteString( argv[ i ]);
+				}
+				break;
+				case STATE_ROOT: {
+					sPrjRoot = ByteString( argv[ i ]); // path to project root
+				}
+				break;
+				case STATE_MERGESRC: {
+					sMergeSrc = ByteString( argv[ i ]);
+					bMergeMode = TRUE; // activate merge mode, cause merge database found
+				}
+				break;
+				case STATE_LANGUAGES: {
+					Export::sLanguages = ByteString( argv[ i ]);
+				}
+				break;
+				case STATE_ISOCODE99: {
+					Export::sIsoCode99 = ByteString( argv[ i ]);
+				}
+				break;
+			}
+		}
+	}
+
+	if ( bInput ) {
+		// command line is valid
+		bEnableExport = TRUE;
+		char *pReturn = new char[ sOutputFile.Len() + 1 ];
+		strcpy( pReturn, sOutputFile.GetBuffer());  // #100211# - checked
+		return pReturn;
+	}
+
+	// command line is not valid
+	return NULL;
+}
+=====================================================================
+Found a 41 line (200 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlflyt.cxx
+Starting at line 465 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlflyt.cxx
+
+		TE(GRFFRM,	INSIDE,	NONE)		// Netscape 4
+	},
+	{
+		// Grafik-Node
+		TE(GRFNODE,	INSIDE,	NONE),		// HTML 3.2
+		TE(GRFNODE,	INSIDE,	NONE),		// IE 4
+		TE(GRFNODE,	INSIDE,	NONE),		// SW
+		TE(GRFNODE,	INSIDE,	NONE)		// Netscape 4
+	},
+	{
+		// Plugin
+		TE(OLENODE,	INSIDE,	NONE),		// HTML 3.2
+		TE(OLENODE,	INSIDE,	NONE),		// IE 4
+		TE(OLENODE,	INSIDE,	NONE),		// SW
+		TE(OLENODE,	INSIDE,	NONE)		// Netscape 4
+	},
+	{
+		// Applet
+		TE(OLENODE,	INSIDE,	NONE),		// HTML 3.2
+		TE(OLENODE,	INSIDE,	NONE),		// IE 4
+		TE(OLENODE,	INSIDE,	NONE),		// SW
+		TE(OLENODE,	INSIDE,	NONE)		// Netscape 4
+	},
+	{
+		// Floating-Frame
+		TE(OLEGRF,	INSIDE,	NONE),		// HTML 3.2
+		TE(OLENODE,	INSIDE,	NONE),		// IE 4
+		TE(OLENODE,	INSIDE,	NONE),		// SW
+		TE(OLEGRF,	INSIDE,	NONE)		// Netscape 4
+	},
+	{
+		// sonstige OLE-Objekte
+		TE(OLEGRF,	INSIDE,	NONE),		// HTML 3.2
+		TE(OLEGRF,	INSIDE,	NONE),		// IE 4
+		TE(OLEGRF,	INSIDE,	NONE),		// SW
+		TE(OLEGRF,	INSIDE,	NONE)		// Netscape 4
+	},
+	{
+		// Laufschrift (kann immer als MARQUEE exportiert werden, weil
+		// der Inhalt an der richtigen Stelle erscheint
+		TE(MARQUEE,	INSIDE,	NONE),		// HTML 3.2
+=====================================================================
+Found a 17 line (200 tokens) duplication in the following files: 
+Starting at line 3721 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 3830 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+OCX_Page::OCX_Page( SotStorageRef& parent,
+            const ::rtl::OUString& storageName,
+            const ::rtl::OUString& sN,
+            const uno::Reference< container::XNameContainer >  &rDialog,
+            OCX_Control* pParent):
+		OCX_ContainerControl(parent, storageName, sN, rDialog, pParent ),
+        fUnknown1(0), fEnabled(1), fLocked(0),
+		fBackStyle(1), fWordWrap(1), fAutoSize(0), nCaptionLen(0), nVertPos(1),
+		nHorzPos(7), nMousePointer(0), nBorderColor(0x80000012),
+		nKeepScrollBarsVisible(3), nCycle(0), nBorderStyle(0), nSpecialEffect(0),
+		nPicture(0), nPictureAlignment(2), nPictureSizeMode(0),
+		bPictureTiling(FALSE), nAccelerator(0), nIcon(0), pCaption(0),
+		nScrollWidth(0), nScrollHeight(0), nIconLen(0), pIcon(0), nPictureLen(0),
+		pPicture(0)
+{
+    msDialogType = C2U("NotSupported");
+    mnForeColor = 0x80000012,
+=====================================================================
+Found a 44 line (200 tokens) duplication in the following files: 
+Starting at line 509 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/textconv.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/lingu/hhcwrp.cxx
+
+        SwTxtNode *pStartTxtNode = aStartNodeIndex.GetNode().GetTxtNode();
+
+        const sal_Int32  nIndices = pOffsets->getLength();
+        const sal_Int32 *pIndices = pOffsets->getConstArray();
+        xub_StrLen nConvTextLen = rNewText.Len();
+        xub_StrLen nPos = 0;
+        xub_StrLen nChgPos = STRING_NOTFOUND;
+        xub_StrLen nChgLen = 0;
+        xub_StrLen nConvChgPos = STRING_NOTFOUND;
+        xub_StrLen nConvChgLen = 0;
+		
+		// offset to calculate the position in the text taking into 
+		// account that text may have been replaced with new text of
+		// different length. Negative values allowed!
+		long nCorrectionOffset = 0;
+        
+		DBG_ASSERT(nIndices == 0 || nIndices == nConvTextLen, 
+                "mismatch between string length and sequence length!" );
+        
+        // find all substrings that need to be replaced (and only those)
+        while (sal_True)
+        {
+			// get index in original text that matches nPos in new text
+			xub_StrLen nIndex;
+			if (nPos < nConvTextLen)
+				nIndex = (sal_Int32) nPos < nIndices ? (xub_StrLen) pIndices[nPos] : nPos;
+			else
+			{
+				nPos   = nConvTextLen;
+				nIndex = static_cast< xub_StrLen >( rOrigText.getLength() );
+			}
+
+            if (rOrigText.getStr()[nIndex] == rNewText.GetChar(nPos) ||
+				nPos == nConvTextLen /* end of string also terminates non-matching char sequence */)
+            {
+                // substring that needs to be replaced found?
+                if (nChgPos != STRING_NOTFOUND && nConvChgPos != STRING_NOTFOUND)
+                {
+                    nChgLen = nIndex - nChgPos;
+                    nConvChgLen = nPos - nConvChgPos;
+#ifdef DEBUG
+                    String aInOrig( rOrigText.copy( nChgPos, nChgLen ) );
+#endif
+                    String aInNew( rNewText.Copy( nConvChgPos, nConvChgLen ) );
+=====================================================================
+Found a 44 line (200 tokens) duplication in the following files: 
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drtxtob.cxx
+Starting at line 691 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/editsh.cxx
+
+		pClipEvtLstnr = new TransferableClipboardListener( LINK( this, ScEditShell, ClipboardChanged ) );
+		pClipEvtLstnr->acquire();
+		Window* pWin = pViewData->GetActiveWin();
+		pClipEvtLstnr->AddRemoveListener( pWin, TRUE );
+
+		// get initial state
+		TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( pViewData->GetActiveWin() ) );
+		bPastePossible = ( aDataHelper.HasFormat( SOT_FORMAT_STRING ) || aDataHelper.HasFormat( SOT_FORMAT_RTF ) );
+	}
+
+	SfxWhichIter aIter( rSet );
+	USHORT nWhich = aIter.FirstWhich();
+	while (nWhich)
+	{
+		switch (nWhich)
+		{
+			case SID_PASTE:
+			case FID_PASTE_CONTENTS:
+				if( !bPastePossible )
+					rSet.DisableItem( nWhich );
+				break;
+			case SID_CLIPBOARD_FORMAT_ITEMS:
+				if( bPastePossible )
+				{
+					SvxClipboardFmtItem aFormats( SID_CLIPBOARD_FORMAT_ITEMS );
+					TransferableDataHelper aDataHelper(
+							TransferableDataHelper::CreateFromSystemClipboard( pViewData->GetActiveWin() ) );
+
+					if ( aDataHelper.HasFormat( SOT_FORMAT_STRING ) )
+						aFormats.AddClipbrdFormat( SOT_FORMAT_STRING );
+					if ( aDataHelper.HasFormat( SOT_FORMAT_RTF ) )
+						aFormats.AddClipbrdFormat( SOT_FORMAT_RTF );
+
+					rSet.Put( aFormats );
+				}
+				else
+					rSet.DisableItem( nWhich );
+				break;
+		}
+		nWhich = aIter.NextWhich();
+	}
+}
+
+void lcl_InvalidateUnder( SfxBindings& rBindings )
+=====================================================================
+Found a 45 line (200 tokens) duplication in the following files: 
+Starting at line 4727 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 4985 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+void ScInterpreter::ScVLookup()
+{
+	BYTE nParamCount = GetByte();
+	if ( MustHaveParamCount( nParamCount, 3, 4 ) )
+	{
+		BOOL bSorted;
+		if (nParamCount == 4)
+			bSorted = GetBool();
+		else
+			bSorted = TRUE;
+		double fIndex = ::rtl::math::approxFloor( GetDouble() ) - 1.0;
+		ScMatrixRef pMat = NULL;
+        SCSIZE nC = 0, nR = 0;
+        SCCOL nCol1 = 0;
+        SCROW nRow1 = 0;
+        SCTAB nTab1 = 0;
+        SCCOL nCol2 = 0;
+        SCROW nRow2 = 0;
+        SCTAB nTab2;
+		if (GetStackType() == svDoubleRef)
+		{
+			PopDoubleRef(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2);
+			if (nTab1 != nTab2)
+			{
+				SetIllegalParameter();
+				return;
+			}
+		}
+		else if (GetStackType() == svMatrix)
+		{
+			pMat = PopMatrix();
+			if (pMat)
+				pMat->GetDimensions(nC, nR);
+			else
+			{
+				SetIllegalParameter();
+				return;
+			}
+		}
+		else
+		{
+			SetIllegalParameter();
+			return;
+		}
+        if ( fIndex < 0.0 || (pMat ? (fIndex >= nC) : (fIndex+nCol1 > nCol2)) )
+=====================================================================
+Found a 32 line (200 tokens) duplication in the following files: 
+Starting at line 1022 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+Starting at line 1116 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+
+    String  aNode( String::CreateFromAscii( "ServiceManager/ThesaurusList" ) );
+    Sequence< OUString > aNames( /*aCfg.*/GetNodeNames( aNode ) );
+    OUString *pNames = aNames.getArray();
+    INT32 nLen = aNames.getLength();
+
+	// append path prefix need for 'GetProperties' call below
+	String aPrefix( aNode );
+	aPrefix.Append( (sal_Unicode) '/' );
+	for (int i = 0;  i < nLen;  ++i)
+	{
+		OUString aTmp( aPrefix );
+		aTmp += pNames[i];
+		pNames[i] = aTmp;
+	}
+
+    Sequence< Any > aValues( /*aCfg.*/GetProperties( aNames ) );
+    if (nLen  &&  nLen == aValues.getLength())
+    {
+        const Any *pValues = aValues.getConstArray();
+        for (INT32 i = 0;  i < nLen;  ++i)
+        {
+            Sequence< OUString > aSvcImplNames;
+            if (pValues[i] >>= aSvcImplNames)
+            {
+#if OSL_DEBUG_LEVEL > 1
+//                INT32 nSvcs = aSvcImplNames.getLength();
+//                const OUString *pSvcImplNames = aSvcImplNames.getConstArray();
+#endif
+				String aLocaleStr( pNames[i] );
+				xub_StrLen nSeperatorPos = aLocaleStr.SearchBackward( sal_Unicode( '/' ) );
+				aLocaleStr = aLocaleStr.Copy( nSeperatorPos + 1 );
+                Locale aLocale( CreateLocale( MsLangId::convertIsoStringToLanguage(aLocaleStr) ) );
+=====================================================================
+Found a 36 line (200 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+
+	    DictMgr* sdMgr = new DictMgr(sTmp.getStr(),"DICT");
+            numshr = 0;
+            if (sdMgr) 
+                 numshr = sdMgr->get_list(&spdict);
+
+            //Test for existence of the dictionaries
+            for (int i = 0; i < numusr; i++)
+	    {
+            	OUString str = aPathOpt.GetUserDictionaryPath() + A2OU("/") + A2OU(updict[i].filename) + 
+			A2OU(".dic");
+		osl::File aTest(str);
+		if (aTest.open(osl_File_OpenFlag_Read))
+			continue;
+		aTest.close();
+		postupdict.push_back(&updict[i]);
+            }
+
+            for (int i = 0; i < numshr; i++)
+	    {
+                OUString str = aPathOpt.GetLinguisticPath() + A2OU("/ooo/") + A2OU(spdict[i].filename) + 
+			A2OU(".dic");
+		osl::File aTest(str);
+		if (aTest.open(osl_File_OpenFlag_Read))
+			continue;
+		aTest.close();
+		postspdict.push_back(&spdict[i]);
+            }
+
+	    numusr = postupdict.size();
+            numshr = postspdict.size();
+
+            // we really should merge these and remove duplicates but since 
+            // users can name their dictionaries anything they want it would
+            // be impossible to know if a real duplication exists unless we
+            // add some unique key to each myspell dictionary
+            numdict = numshr + numusr;
+=====================================================================
+Found a 8 line (200 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+=====================================================================
+Found a 37 line (200 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/headermenucontroller.cxx
+
+void SAL_CALL HeaderMenuController::select( const css::awt::MenuEvent& rEvent ) throw (RuntimeException)
+{
+    Reference< css::awt::XPopupMenu >   xPopupMenu;
+    Reference< XDispatch >              xDispatch;
+    Reference< XMultiServiceFactory >   xServiceManager;
+
+    ResetableGuard aLock( m_aLock );
+    xPopupMenu      = m_xPopupMenu;
+    xDispatch       = m_xDispatch;
+    xServiceManager = m_xServiceManager;
+    aLock.unlock();
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs( 1 );
+            Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance( 
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                        UNO_QUERY );
+
+            {
+                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+
+                aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+            }
+            
+            xURLTransformer->parseStrict( aTargetURL );
+            xDispatch->dispatch( aTargetURL, aArgs );
+        }
+    }
+}
+
+void SAL_CALL HeaderMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
+=====================================================================
+Found a 32 line (200 tokens) duplication in the following files: 
+Starting at line 1158 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1547 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+Starting at line 1637 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 1382 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+void UIConfigurationManager::implts_notifyContainerListener( const ConfigurationEvent& aEvent, NotifyOp eOp )
+{
+    ::cppu::OInterfaceContainerHelper* pContainer = m_aListenerContainer.getContainer( ::getCppuType( ( const css::uno::Reference< ::com::sun::star::ui::XUIConfigurationListener >*) NULL ) );
+    if ( pContainer != NULL )
+	{
+        ::cppu::OInterfaceIteratorHelper pIterator( *pContainer );
+        while ( pIterator.hasMoreElements() )
+        {
+            try
+            {
+                switch ( eOp )
+                {
+                    case NotifyOp_Replace:
+                        ((::com::sun::star::ui::XUIConfigurationListener*)pIterator.next())->elementReplaced( aEvent );
+                        break;
+                    case NotifyOp_Insert:
+                        ((::com::sun::star::ui::XUIConfigurationListener*)pIterator.next())->elementInserted( aEvent );
+                        break;
+                    case NotifyOp_Remove:
+                        ((::com::sun::star::ui::XUIConfigurationListener*)pIterator.next())->elementRemoved( aEvent );
+                        break;
+                }
+            }
+            catch( css::uno::RuntimeException& )
+            {
+                pIterator.remove();
+            }
+        }
+	}
+}
+
+} // namespace framework
+=====================================================================
+Found a 75 line (200 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsdocumenthandler.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsdocumenthandler.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::xml::sax;
+
+
+#define XMLNS_EVENT				"http://openoffice.org/2001/event"
+#define XMLNS_XLINK				"http://www.w3.org/1999/xlink"
+#define XMLNS_EVENT_PREFIX		"event:"
+#define XMLNS_XLINK_PREFIX		"xlink:"
+
+#define ATTRIBUTE_XMLNS_EVENT	"xmlns:event"
+#define ATTRIBUTE_XMLNS_XLINK	"xmlns:xlink"
+
+#define XMLNS_FILTER_SEPARATOR	"^"
+
+#define ELEMENT_EVENTS			"events"
+#define ELEMENT_EVENT			"event"
+
+#define ATTRIBUTE_LANGUAGE		"language"
+#define ATTRIBUTE_LIBRARY		"library"
+#define ATTRIBUTE_NAME			"name"
+#define ATTRIBUTE_HREF			"href"
+#define ATTRIBUTE_TYPE			"type"
+#define ATTRIBUTE_MACRONAME		"macro-name"
+
+#define ELEMENT_NS_EVENTS		"event:events"
+#define ELEMENT_NS_EVENT		"event:event"
+
+#define ATTRIBUTE_TYPE_CDATA	"CDATA"
+
+#define EVENTS_DOCTYPE			"<!DOCTYPE event:events PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"event.dtd\">"
+
+// Property names for events
+#define	PROP_EVENT_TYPE		"EventType"
+#define PROP_LIBRARY		"Library"
+#define PROP_SCRIPT			"Script"
+#define PROP_MACRO_NAME		"MacroName"
+#define STAR_BASIC			"StarBasic"
+#define JAVA_SCRIPT			"JavaScript"
+
+
+namespace framework
+{
+
+struct EventEntryProperty
+{
+	OReadEventsDocumentHandler::Event_XML_Namespace	nNamespace;
+	char											aEntryName[20];
+};
+
+static EventEntryProperty EventEntries[OReadEventsDocumentHandler::EV_XML_ENTRY_COUNT] =
+{
+	{ OReadEventsDocumentHandler::EV_NS_EVENT,	ELEMENT_EVENTS			},
+	{ OReadEventsDocumentHandler::EV_NS_EVENT,	ELEMENT_EVENT			},
+	{ OReadEventsDocumentHandler::EV_NS_EVENT,	ATTRIBUTE_LANGUAGE		},
+	{ OReadEventsDocumentHandler::EV_NS_EVENT,	ATTRIBUTE_NAME			},
+	{ OReadEventsDocumentHandler::EV_NS_XLINK,	ATTRIBUTE_HREF			},
+	{ OReadEventsDocumentHandler::EV_NS_XLINK,	ATTRIBUTE_TYPE			},
+	{ OReadEventsDocumentHandler::EV_NS_EVENT,	ATTRIBUTE_MACRONAME		},
+	{ OReadEventsDocumentHandler::EV_NS_EVENT,	ATTRIBUTE_LIBRARY		}
+};
+
+
+OReadEventsDocumentHandler::OReadEventsDocumentHandler( EventsConfig& aItems ) :
+	ThreadHelpBase( &Application::GetSolarMutex() ),
+	::cppu::OWeakObject(),
+	m_aEventItems( aItems )
+{
+	OUString aNamespaceEvent( RTL_CONSTASCII_USTRINGPARAM( XMLNS_EVENT ));
+	OUString aNamespaceXLink( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK ));
+	OUString aSeparator( RTL_CONSTASCII_USTRINGPARAM( XMLNS_FILTER_SEPARATOR ));
+
+	// create hash map
+	for ( int i = 0; i < (int)EV_XML_ENTRY_COUNT; i++ )
+=====================================================================
+Found a 36 line (200 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/oservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SServices.cxx
+
+using namespace connectivity::skeleton;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName, 
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pTemp
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName, 
+		const Sequence< OUString>& Services, 
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "SKELETON::component_writeInfo : could not create a registry key !");
+=====================================================================
+Found a 56 line (200 tokens) duplication in the following files: 
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCorrelatedSubqueries(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInComparisons(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInExists(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInIns(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getURL(  ) throw(SQLException, RuntimeException)
+{
+	::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:skeleton:");
+=====================================================================
+Found a 36 line (200 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KServices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/oservices.cxx
+
+using namespace connectivity::odbc;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pTemp
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "ODBC::component_writeInfo : could not create a registry key !");
+=====================================================================
+Found a 36 line (200 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Aservices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/Cservices.cxx
+
+using namespace connectivity::calc;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+		);
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+
+//---------------------------------------------------------------------------------------
+void REGISTER_PROVIDER(
+		const OUString& aServiceImplName,
+		const Sequence< OUString>& Services,
+		const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
+{
+	OUString aMainKeyName;
+	aMainKeyName = OUString::createFromAscii("/");
+	aMainKeyName += aServiceImplName;
+	aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
+
+	Reference< ::com::sun::star::registry::XRegistryKey >  xNewKey( xKey->createKey(aMainKeyName) );
+	OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
+=====================================================================
+Found a 48 line (200 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
+
+        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+=====================================================================
+Found a 35 line (199 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + (x_lr << 2);
+                        do
+                        {
+                            int weight = (weight_y * weight_array[x_hr] + 
+                                         image_filter_size / 2) >> 
+                                         downscale_shift;
+
+                            if(x_lr >= 0 && x_lr <= maxx)
+                            {
+                                fg[0] += fg_ptr[0] * weight;
+                                fg[1] += fg_ptr[1] * weight;
+                                fg[2] += fg_ptr[2] * weight;
+                                fg[3] += fg_ptr[3] * weight;
+                            }
+                            else
+                            {
+                                fg[order_type::R] += back_r * weight;
+                                fg[order_type::G] += back_g * weight;
+                                fg[order_type::B] += back_b * weight;
+                                fg[order_type::A] += back_a * weight;
+                            }
+                            total_weight += weight;
+                            fg_ptr += 4;
+                            x_hr   += rx_inv;
+=====================================================================
+Found a 38 line (199 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparae.cxx
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparae.cxx
+
+                    rPropSet, sal_True ), uno::UNO_QUERY);
+				if( xNumRule.is() && xNumRule->getCount() )
+				{
+					Reference < XNamed > xNamed( xNumRule, UNO_QUERY );
+					OUString sName;
+					if( xNamed.is() )
+						sName = xNamed->getName();
+					sal_Bool bAdd = !sName.getLength();
+					if( !bAdd )
+					{
+						Reference < XPropertySet > xNumPropSet( xNumRule,
+																UNO_QUERY );
+                        const OUString sIsAutomatic( RTL_CONSTASCII_USTRINGPARAM( "IsAutomatic" ) );
+						if( xNumPropSet.is() &&
+							xNumPropSet->getPropertySetInfo()
+									   ->hasPropertyByName( sIsAutomatic ) )
+						{
+							bAdd = *(sal_Bool *)xNumPropSet->getPropertyValue( sIsAutomatic ).getValue();
+                            // --> OD 2007-01-12 #i73361# - check on outline style
+                            const OUString sNumberingIsOutline( RTL_CONSTASCII_USTRINGPARAM( "NumberingIsOutline" ) );
+                            if ( bAdd &&
+                                 xNumPropSet->getPropertySetInfo()
+                                           ->hasPropertyByName( sNumberingIsOutline ) )
+                            {
+                                bAdd = !(*(sal_Bool *)xNumPropSet->getPropertyValue( sNumberingIsOutline ).getValue());
+                            }
+                            // <--
+						}
+						else
+						{
+							bAdd = sal_True;
+						}
+					}
+					if( bAdd )
+						pListAutoPool->Add( xNumRule );
+				}
+			}
+			break;
+=====================================================================
+Found a 44 line (199 tokens) duplication in the following files: 
+Starting at line 3421 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 2138 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+	Rectangle aRectangle(aRect);
+
+	// fill other values
+	basegfx::B2DTuple aScale(aRectangle.GetWidth(), aRectangle.GetHeight());
+	basegfx::B2DTuple aTranslate(aRectangle.Left(), aRectangle.Top());
+
+	// position maybe relative to anchorpos, convert
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate -= basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// force MapUnit to 100th mm
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// postion
+				aTranslate.setX(ImplTwipsToMM(aTranslate.getX()));
+				aTranslate.setY(ImplTwipsToMM(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplTwipsToMM(aScale.getX()));
+				aScale.setY(ImplTwipsToMM(aScale.getY()));
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRGetBaseGeometry: Missing unit translation to 100th mm!");
+			}
+		}
+	}
+
+	// build matrix
+	rMatrix.identity();
+
+    if(!basegfx::fTools::equal(aScale.getX(), 1.0) || !basegfx::fTools::equal(aScale.getY(), 1.0))
+=====================================================================
+Found a 53 line (199 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 518 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+				const basegfx::B2DVector aOldVec(aCenterLeft - aTopLeft);
+				const double fFullLen(aFullVec.getLength());
+				const double fOldLen(aOldVec.getLength());
+				const double fNewBorder((fFullLen * 100.0) / fOldLen);
+				sal_Int32 nNewBorder(100L - FRound(fNewBorder));
+
+				// clip
+				if(nNewBorder < 0L)
+				{
+					nNewBorder = 0L;
+				}
+
+				if(nNewBorder > 100L)
+				{
+					nNewBorder = 100L;
+				}
+
+				// set
+				if(nNewBorder != rG.aGradient.GetBorder())
+				{
+					rG.aGradient.SetBorder((sal_uInt16)nNewBorder);
+				}
+
+				// angle is not definitely necessary for these modes, but it makes
+				// controlling more fun for the user
+				aFullVec.normalize();
+				double fNewFullAngle(atan2(aFullVec.getY(), aFullVec.getX()));
+				fNewFullAngle /= F_PI180;
+				fNewFullAngle *= -10.0;
+				fNewFullAngle += 900.0;
+
+				// clip
+				while(fNewFullAngle < 0.0)
+				{
+					fNewFullAngle += 3600.0;
+				}
+
+				while(fNewFullAngle >= 3600.0)
+				{
+					fNewFullAngle -= 3600.0;
+				}
+
+				// to int and set
+				const sal_Int32 nNewAngle(FRound(fNewFullAngle));
+
+				if(nNewAngle != rGOld.aGradient.GetAngle())
+				{
+					rG.aGradient.SetAngle(nNewAngle);
+				}
+			}
+
+			break;
+		}
+=====================================================================
+Found a 29 line (199 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/graphhelp.cxx
+Starting at line 2510 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+		GDIMetaFile aMonchromeMtf( GetMonochromeMtf( COL_BLACK ) );
+		aVDev.DrawWallpaper( Rectangle( aNullPt, aSizePix ), Wallpaper( Color( COL_WHITE ) ) );
+		aMonchromeMtf.WindStart();
+		aMonchromeMtf.Play( &aVDev, aBackPosPix, aDrawSize );
+		
+		// watch for overlay mask
+		if ( pOverlay  )
+		{
+			Bitmap aOverlayMergeBmp( aVDev.GetBitmap( aOverlayRect.TopLeft(), aOverlayRect.GetSize() ) );
+			
+			// create ANDed resulting mask at overlay area
+			if ( pOverlay->IsTransparent() )
+				aVDev.DrawBitmap( aOverlayRect.TopLeft(), aOverlayRect.GetSize(), pOverlay->GetMask() );
+			else
+			{
+				aVDev.SetLineColor( COL_BLACK );
+				aVDev.SetFillColor( COL_BLACK );
+				aVDev.DrawRect( aOverlayRect);
+			}			
+				
+			aOverlayMergeBmp.CombineSimple( aVDev.GetBitmap( aOverlayRect.TopLeft(), aOverlayRect.GetSize() ), BMP_COMBINE_AND );
+			aVDev.DrawBitmap( aOverlayRect.TopLeft(), aOverlayRect.GetSize(), aOverlayMergeBmp );
+		}
+		
+		rBmpEx = BitmapEx( aBmp, aVDev.GetBitmap( aNullPt, aVDev.GetOutputSizePixel() ) );
+	}
+	
+	return !rBmpEx.IsEmpty();
+}
+=====================================================================
+Found a 31 line (199 tokens) duplication in the following files: 
+Starting at line 1677 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1707 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+            { RTL_TEXTENCODING_SHIFT_JIS,
+              RTL_CONSTASCII_STRINGPARAM(
+                  "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
+                  "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
+                  "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
+                  "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
+                  "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
+                  "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
+                  "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
+                  "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
+                  "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
+                  "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
+                  "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
+                  "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
+              { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
+                0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
+                0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
+                0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
+                0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
+                0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
+                0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
+                0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
+                0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
+                0x2229,0x222A },
+              83,
+              true,
+              true,
+              false,
+              false,
+              RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
+            { RTL_TEXTENCODING_ISO_2022_JP,
+=====================================================================
+Found a 15 line (199 tokens) duplication in the following files: 
+Starting at line 1856 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 1903 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+									,	::getCppuType( ( const uno::Reference< embed::XEncryptionProtectedSource >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+				}
+				else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL )
+									,	::getCppuType( ( const uno::Reference< lang::XComponent >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XRelationshipAccess >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+=====================================================================
+Found a 36 line (199 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/tokens.c
+Starting at line 367 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_tokens.c
+
+        fprintf(stderr, "(tp offset %ld) ", (long int) (tp - trp->bp));
+    for (tp = trp->bp; tp < trp->lp && tp < trp->bp + 32; tp++)
+    {
+        if (tp->type != NL)
+        {
+            int c = tp->t[tp->len];
+
+            tp->t[tp->len] = 0;
+            fprintf(stderr, "%s", tp->t);
+            tp->t[tp->len] = (uchar) c;
+        }
+        fprintf(stderr, tp == trp->tp ? "{%x*} " : "{%x} ", tp->type);
+    }
+    fprintf(stderr, "\n");
+    fflush(stderr);
+}
+
+void
+    puttokens(Tokenrow * trp)
+{
+    Token *tp;
+    int len;
+    uchar *p;
+
+    if (Vflag)
+        peektokens(trp, "");
+    tp = trp->bp;
+    for (; tp < trp->lp; tp++)
+    {
+        if (tp->type != NL)
+        {
+            len = tp->len + tp->wslen;
+            p = tp->t - tp->wslen;
+
+			/* add parameter check to delete operator? */
+			if( Dflag )
+=====================================================================
+Found a 7 line (199 tokens) duplication in the following files: 
+Starting at line 1377 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ea0 - 2eaf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 7 line (199 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1243 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 7 line (199 tokens) duplication in the following files: 
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1175 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e50 - 0e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e60 - 0e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e70 - 0e7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e80 - 0e8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e90 - 0e9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ea0 - 0eaf
+     0,17, 0, 0,17,17,17,17,17,17, 0,17,17, 0, 0, 0,// 0eb0 - 0ebf
+=====================================================================
+Found a 7 line (199 tokens) duplication in the following files: 
+Starting at line 681 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 756 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27, 0, 0, 0, 0,27,27,27,27,27,// 3370 - 337f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3380 - 338f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3390 - 339f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33a0 - 33af
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33b0 - 33bf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33c0 - 33cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0, 0,// 33d0 - 33df
+=====================================================================
+Found a 7 line (199 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1400 - 140f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1410 - 141f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1420 - 142f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1430 - 143f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1440 - 144f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1450 - 145f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1460 - 146f
+=====================================================================
+Found a 55 line (199 tokens) duplication in the following files: 
+Starting at line 940 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCorrelatedSubqueries(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInComparisons(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInExists(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInIns(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODatabaseMetaData::getURL(  ) throw(SQLException, RuntimeException)
+{
+=====================================================================
+Found a 35 line (199 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+			pCppReturn = *(void **)pCppStack;
+			pCppStack += sizeof(void *);
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                              pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 9 line (199 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/kernel/namesort.cxx
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/kernel/namesort.cxx
+
+int C_cAryNameOrdering2[256] =
+    {   0,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255, //  0 ..
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255, // 32 ..
+       71, 72, 73, 74,  75, 76, 77, 78,      79, 80,255,255, 255,255,255,255,
+        
+      255, 11, 13, 15,  17, 19, 21, 23,      25, 27, 29, 31,  33, 35, 37, 39, // 64 ..
+       41, 43, 45, 47,  49, 51, 53, 55,      57, 59, 61,255, 255,255,255, 63,
+      255, 12, 14, 16,  18, 20, 22, 24,      26, 28, 30, 32,  34, 36, 38, 40, // 96 ..
+=====================================================================
+Found a 9 line (198 tokens) duplication in the following files: 
+Starting at line 6753 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 7059 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u verdana12_bold[] = 
+    {
+        12, 3, 32, 128-32,
+        0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x5A,0x00,0x67,0x00,0x74,0x00,
+        0x81,0x00,0x8E,0x00,0x9B,0x00,0xA8,0x00,0xB5,0x00,0xC2,0x00,0xCF,0x00,0xDC,0x00,0xE9,0x00,
+        0xF6,0x00,0x03,0x01,0x10,0x01,0x1D,0x01,0x2A,0x01,0x37,0x01,0x44,0x01,0x51,0x01,0x5E,0x01,
+        0x6B,0x01,0x78,0x01,0x85,0x01,0x92,0x01,0x9F,0x01,0xAC,0x01,0xC5,0x01,0xD2,0x01,0xDF,0x01,
+        0xEC,0x01,0xF9,0x01,0x06,0x02,0x13,0x02,0x20,0x02,0x2D,0x02,0x3A,0x02,0x47,0x02,0x54,0x02,
+        0x61,0x02,0x6E,0x02,0x7B,0x02,0x88,0x02,0x95,0x02,0xA2,0x02,0xAF,0x02,0xBC,0x02,0xC9,0x02,
+=====================================================================
+Found a 9 line (198 tokens) duplication in the following files: 
+Starting at line 4305 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6141 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+    const int8u mcs7x12_mono_high[] = 
+    {
+        12, 3, 32, 128-32,
+        0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4E,0x00,0x5B,0x00,0x68,0x00,
+        0x75,0x00,0x82,0x00,0x8F,0x00,0x9C,0x00,0xA9,0x00,0xB6,0x00,0xC3,0x00,0xD0,0x00,0xDD,0x00,
+        0xEA,0x00,0xF7,0x00,0x04,0x01,0x11,0x01,0x1E,0x01,0x2B,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+        0x5F,0x01,0x6C,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xA0,0x01,0xAD,0x01,0xBA,0x01,0xC7,0x01,
+        0xD4,0x01,0xE1,0x01,0xEE,0x01,0xFB,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2F,0x02,0x3C,0x02,
+        0x49,0x02,0x56,0x02,0x63,0x02,0x70,0x02,0x7D,0x02,0x8A,0x02,0x97,0x02,0xA4,0x02,0xB1,0x02,
+=====================================================================
+Found a 41 line (198 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+		case XGRAD_RECT :
+		{
+			if(!bMoveSingle || (bMoveSingle && !bMoveFirst))
+			{
+				const basegfx::B2DPoint aTopLeft(aRange.getMinX(), aRange.getMinY());
+				const basegfx::B2DPoint aOffset(aEndPos - aTopLeft);
+				sal_Int32 nNewXOffset(FRound((aOffset.getX() * 100.0) / aRange.getWidth()));
+				sal_Int32 nNewYOffset(FRound((aOffset.getY() * 100.0) / aRange.getHeight()));
+
+				// clip
+				if(nNewXOffset < 0L)
+				{
+					nNewXOffset = 0L;
+				}
+
+				if(nNewXOffset > 100L)
+				{
+					nNewXOffset = 100L;
+				}
+
+				if(nNewYOffset < 0L)
+				{
+					nNewYOffset = 0L;
+				}
+
+				if(nNewYOffset > 100L)
+				{
+					nNewYOffset = 100L;
+				}
+
+				rG.aGradient.SetXOffset((sal_uInt16)nNewXOffset);
+				rG.aGradient.SetYOffset((sal_uInt16)nNewYOffset);
+
+				aStartPos -= aOffset;
+				aEndPos -= aOffset;
+			}
+
+			if(!bMoveSingle || (bMoveSingle && bMoveFirst))
+			{
+				basegfx::B2DVector aFullVec(aStartPos - aEndPos);
+				const basegfx::B2DPoint aTopLeft(aRange.getMinX(), aRange.getMinY());
+=====================================================================
+Found a 12 line (198 tokens) duplication in the following files: 
+Starting at line 2665 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2386 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
+	{ 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 10800 }, { 0x1a MSO_I, 10800 },
+=====================================================================
+Found a 74 line (198 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertbig5hkscs.c
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/converteuctw.c
+
+            *pDestBufPtr++ = (sal_Char) (0xA0 + pCns116431992Data[nOffset]);
+        }
+        nHighSurrogate = 0;
+        continue;
+
+    bad_input:
+        switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined,
+                                                          nChar,
+                                                          nFlags,
+                                                          &pDestBufPtr,
+                                                          pDestBufEnd,
+                                                          &nInfo,
+                                                          NULL,
+                                                          0,
+                                                          NULL))
+        {
+        case IMPL_BAD_INPUT_STOP:
+            nHighSurrogate = 0;
+            break;
+
+        case IMPL_BAD_INPUT_CONTINUE:
+            nHighSurrogate = 0;
+            continue;
+
+        case IMPL_BAD_INPUT_NO_OUTPUT:
+            goto no_output;
+        }
+        break;
+
+    no_output:
+        --pSrcBuf;
+        nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
+        break;
+    }
+
+    if (nHighSurrogate != 0
+        && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
+                         | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
+               == 0)
+    {
+        if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
+            nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
+        else
+            switch (ImplHandleBadInputUnicodeToTextConversion(sal_False,
+                                                              0,
+                                                              nFlags,
+                                                              &pDestBufPtr,
+                                                              pDestBufEnd,
+                                                              &nInfo,
+                                                              NULL,
+                                                              0,
+                                                              NULL))
+            {
+            case IMPL_BAD_INPUT_STOP:
+            case IMPL_BAD_INPUT_CONTINUE:
+                nHighSurrogate = 0;
+                break;
+
+            case IMPL_BAD_INPUT_NO_OUTPUT:
+                nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
+                break;
+            }
+    }
+
+    if (pContext)
+        ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate
+            = nHighSurrogate;
+    if (pInfo)
+        *pInfo = nInfo;
+    if (pSrcCvtChars)
+        *pSrcCvtChars = nConverted;
+
+    return pDestBufPtr - pDestBuf;
+}
+=====================================================================
+Found a 8 line (198 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x307E, 0x307E, 0x307E, 0x307E, 0x3084, 0x3084, 0x3084, 0x3089, 0x3089, 0x3089, 0x3089, 0x3089, 0x308F, 0x308F, 0xFF9E, 0xFF9F,  // FF90
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFA0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFB0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFC0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFD0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFE0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000   // FFF0
+};
+=====================================================================
+Found a 50 line (198 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+	mxServiceFactory(xServiceFactory)
+{
+}
+
+// #110897#
+const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& OReadMenuDocumentHandler::getServiceFactory()
+{
+	// #110897#
+	return mxServiceFactory;
+}
+
+OReadMenuDocumentHandler::~OReadMenuDocumentHandler()
+{
+}
+
+
+void SAL_CALL OReadMenuDocumentHandler::startDocument(void)
+	throw ( SAXException, RuntimeException )
+{
+}
+
+
+void SAL_CALL OReadMenuDocumentHandler::endDocument(void)
+	throw( SAXException, RuntimeException )
+{
+	if ( m_nElementDepth > 0 )
+	{
+		OUString aErrorMessage = getErrorLineString();
+		aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "A closing element is missing!" ));
+		throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+	}
+}
+
+
+void SAL_CALL OReadMenuDocumentHandler::startElement(
+	const OUString& aName, const Reference< XAttributeList > &xAttrList )
+throw( SAXException, RuntimeException )
+{
+	if ( m_bMenuBarMode )
+	{
+		++m_nElementDepth;
+		m_xReader->startElement( aName, xAttrList );
+	}
+	else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUBAR )))
+	{
+		++m_nElementDepth;
+		m_bMenuBarMode = sal_True;
+
+		// #110897# m_xReader = Reference< XDocumentHandler >( new OReadMenuBarHandler( m_xMenuBarContainer, m_xContainerFactory ));
+		m_xReader = Reference< XDocumentHandler >( new OReadMenuBarHandler( getServiceFactory(), m_xMenuBarContainer, m_xContainerFactory ));
+=====================================================================
+Found a 44 line (198 tokens) duplication in the following files: 
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/propctrlr/formmetadata.cxx
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/inspection/metadata.cxx
+
+        return s_pPropertyInfos;
+	}
+
+	//------------------------------------------------------------------------
+	sal_Int32 OPropertyInfoService::getPropertyId(const String& _rName) const
+	{
+		const OPropertyInfoImpl* pInfo = getPropertyInfo(_rName);
+		return pInfo ? pInfo->nId : -1;
+	}
+
+	//------------------------------------------------------------------------
+	String OPropertyInfoService::getPropertyName( sal_Int32 _nPropId )
+    {
+		const OPropertyInfoImpl* pInfo = getPropertyInfo(_nPropId);
+		return pInfo ? pInfo->sName : String();
+    }
+
+	//------------------------------------------------------------------------
+	String OPropertyInfoService::getPropertyTranslation(sal_Int32 _nId) const
+	{
+		const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+		return (pInfo) ? pInfo->sTranslation : String();
+	}
+
+	//------------------------------------------------------------------------
+	sal_Int32 OPropertyInfoService::getPropertyHelpId(sal_Int32 _nId) const
+	{
+		const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+		return (pInfo) ? pInfo->nHelpId : 0;
+	}
+
+	//------------------------------------------------------------------------
+	sal_Int16 OPropertyInfoService::getPropertyPos(sal_Int32 _nId) const
+	{
+		const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+		return (pInfo) ? pInfo->nPos : 0xFFFF;
+	}
+
+	//------------------------------------------------------------------------
+	sal_uInt32 OPropertyInfoService::getPropertyUIFlags(sal_Int32 _nId) const
+	{
+		const OPropertyInfoImpl* pInfo = getPropertyInfo(_nId);
+		return (pInfo) ? pInfo->nUIFlags : 0;
+	}
+=====================================================================
+Found a 21 line (198 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 1126 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)s_nCHAR_OCTET_LENGTH));
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		// aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnValue::NULLABLE));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+=====================================================================
+Found a 46 line (198 tokens) duplication in the following files: 
+Starting at line 1989 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/dbtools.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDriver.cxx
+
+	{
+//.........................................................................
+
+void release(oslInterlockedCount& _refCount,
+			 ::cppu::OBroadcastHelper& rBHelper,
+			 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xInterface,
+			 ::com::sun::star::lang::XComponent* _pObject)
+{
+	if (osl_decrementInterlockedCount( &_refCount ) == 0)
+	{
+		osl_incrementInterlockedCount( &_refCount );
+
+		if (!rBHelper.bDisposed && !rBHelper.bInDispose)
+		{
+			// remember the parent
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xParent;
+			{
+				::osl::MutexGuard aGuard( rBHelper.rMutex );
+				xParent = _xInterface;
+				_xInterface = NULL;
+			}
+
+			// First dispose
+			_pObject->dispose();
+
+			// only the alive ref holds the object
+			OSL_ASSERT( _refCount == 1 );
+
+			// release the parent in the ~
+			if (xParent.is())
+			{
+				::osl::MutexGuard aGuard( rBHelper.rMutex );
+				_xInterface = xParent;
+			}
+		}
+	}
+	else
+		osl_incrementInterlockedCount( &_refCount );
+}
+
+void checkDisposed(sal_Bool _bThrow) throw ( DisposedException )
+{
+	if (_bThrow)
+		throw DisposedException();
+		
+}
+=====================================================================
+Found a 40 line (198 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr, bSimpleReturn,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+=====================================================================
+Found a 48 line (198 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr, bSimpleReturn,
+=====================================================================
+Found a 40 line (198 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr, bSimpleReturn,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+=====================================================================
+Found a 48 line (198 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+            default:
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr, bSimpleReturn,
+=====================================================================
+Found a 32 line (198 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+            		case typelib_TypeClass_DOUBLE:
+=====================================================================
+Found a 44 line (197 tokens) duplication in the following files: 
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 403 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+            }
+        }
+    }
+
+    bool bSuccess = true;
+    if( aFaxNumbers.begin() != aFaxNumbers.end() )
+	{
+        while( aFaxNumbers.begin() != aFaxNumbers.end() && bSuccess )
+        {
+            String aCmdLine( rCommand );
+            String aFaxNumber( aFaxNumbers.front() );
+            aFaxNumbers.pop_front();
+            while( aCmdLine.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "(PHONE)" ) ), aFaxNumber ) != STRING_NOTFOUND )
+                ;
+#if OSL_DEBUG_LEVEL > 1
+            fprintf( stderr, "sending fax to \"%s\"\n", OUStringToOString( aFaxNumber, osl_getThreadTextEncoding() ).getStr() );
+#endif
+            bSuccess = passFileToCommandLine( rFileName, aCmdLine, false );
+        }
+	}
+    else
+        bSuccess = false;
+
+    // clean up temp file
+    unlink( ByteString( rFileName, osl_getThreadTextEncoding() ).GetBuffer() );
+
+    return bSuccess;
+}
+
+static bool createPdf( const String& rToFile, const String& rFromFile, const String& rCommandLine )
+{
+	String aCommandLine( rCommandLine );
+	while( aCommandLine.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "(OUTFILE)" ) ), rToFile ) != STRING_NOTFOUND )
+		;
+	return passFileToCommandLine( rFromFile, aCommandLine );
+}
+
+/*
+ *	SalInstance
+ */
+
+// -----------------------------------------------------------------------
+
+SalInfoPrinter* X11SalInstance::CreateInfoPrinter( SalPrinterQueueInfo*	pQueueInfo,
+=====================================================================
+Found a 51 line (197 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+        static const ucb::CommandInfo aStreamCommandInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+			// Required commands
+			///////////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+				-1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+			),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+				-1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+			),
+			///////////////////////////////////////////////////////////////
+			// Optional standard commands
+			///////////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+				-1,
+				getCppuBooleanType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+				-1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+			)
+=====================================================================
+Found a 52 line (197 tokens) duplication in the following files: 
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 551 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const ucb::CommandInfo aDocCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                -1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                -1,
+                getCppuType( static_cast< ucb::TransferInfo * >( 0 ) )
+            )
+            ///////////////////////////////////////////////////////////
+            // New commands
+            ///////////////////////////////////////////////////////////
+        };
+        return uno::Sequence<
+                ucb::CommandInfo >( aDocCommandInfoTable, 6 );
+=====================================================================
+Found a 51 line (197 tokens) duplication in the following files: 
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+        static const ucb::CommandInfo aStreamCommandInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+			// Required commands
+			///////////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+				-1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+			),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+				-1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+			),
+			///////////////////////////////////////////////////////////////
+			// Optional standard commands
+			///////////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+				-1,
+				getCppuBooleanType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+				-1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+			)
+=====================================================================
+Found a 41 line (197 tokens) duplication in the following files: 
+Starting at line 1082 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+Starting at line 3206 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+		AddFormat( SOT_FORMATSTR_ID_EMBED_SOURCE );
+		AddFormat( SOT_FORMATSTR_ID_OBJECTDESCRIPTOR );
+
+		//RTF vor das Metafile von OLE stellen, weil mit weniger verlusten
+		//behaftet.
+		if( !pWrtShell->IsObjSelected() )
+		{
+			AddFormat( FORMAT_RTF );
+			AddFormat( SOT_FORMATSTR_ID_HTML );
+		}
+		if( pWrtShell->IsSelection() )
+			AddFormat( FORMAT_STRING );
+
+		if( nSelection & ( SwWrtShell::SEL_DRW | SwWrtShell::SEL_DRW_FORM ))
+		{
+			AddFormat( SOT_FORMATSTR_ID_DRAWING );
+			if ( nSelection & SwWrtShell::SEL_DRW )
+			{
+				AddFormat( FORMAT_GDIMETAFILE );
+				AddFormat( FORMAT_BITMAP );
+			}
+			eBufferType = (TransferBufferType)( TRNSFR_GRAPHIC | eBufferType );
+
+			pClpGraphic = new Graphic;
+			if( !pWrtShell->GetDrawObjGraphic( FORMAT_GDIMETAFILE, *pClpGraphic ))
+				pOrigGrf = pClpGraphic;
+			pClpBitmap = new Graphic;
+			if( !pWrtShell->GetDrawObjGraphic( FORMAT_BITMAP, *pClpBitmap ))
+				pOrigGrf = pClpBitmap;
+
+			// ist es ein URL-Button ?
+			String sURL, sDesc;
+			if( pWrtShell->GetURLFromButton( sURL, sDesc ) )
+			{
+				AddFormat( FORMAT_STRING );
+ 				AddFormat( SOT_FORMATSTR_ID_SOLK );
+ 				AddFormat( SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK );
+ 				AddFormat( SOT_FORMATSTR_ID_FILECONTENT );
+ 				AddFormat( SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR );
+ 				AddFormat( SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR );
+				eBufferType = (TransferBufferType)( TRNSFR_INETFLD | eBufferType );
+=====================================================================
+Found a 41 line (197 tokens) duplication in the following files: 
+Starting at line 3857 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3424 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+
+	basegfx::B2DTuple aScale(aRectangle.GetWidth(), aRectangle.GetHeight());
+	basegfx::B2DTuple aTranslate(aRectangle.Left(), aRectangle.Top());
+
+	// position maybe relative to anchorpos, convert
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate -= basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// force MapUnit to 100th mm
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// postion
+				aTranslate.setX(ImplTwipsToMM(aTranslate.getX()));
+				aTranslate.setY(ImplTwipsToMM(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplTwipsToMM(aScale.getX()));
+				aScale.setY(ImplTwipsToMM(aScale.getY()));
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRGetBaseGeometry: Missing unit translation to 100th mm!");
+			}
+		}
+	}
+
+	// build matrix
+	rMatrix.identity();
+	
+	if(1.0 != aScale.getX() || 1.0 != aScale.getY())
+=====================================================================
+Found a 33 line (197 tokens) duplication in the following files: 
+Starting at line 1640 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/view3d.cxx
+Starting at line 1060 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdmrkv.cxx
+
+		{
+			// Erstmal die laenge der Spiegelachsenlinie berechnen
+			long nOutMin=0;
+			long nOutMax=0;
+			long nMinLen=0;
+			long nObjDst=0;
+			long nOutHgt=0;
+			OutputDevice* pOut=GetFirstOutputDevice();
+			//OutputDevice* pOut=GetWin(0);
+			if (pOut!=NULL) {
+				// Mindestlaenge 50 Pixel
+				nMinLen=pOut->PixelToLogic(Size(0,50)).Height();
+				// 20 Pixel fuer RefPt-Abstand vom Obj
+				nObjDst=pOut->PixelToLogic(Size(0,20)).Height();
+				// MinY/MaxY
+				// Abstand zum Rand = Mindestlaenge = 10 Pixel
+				long nDst=pOut->PixelToLogic(Size(0,10)).Height();
+				nOutMin=-pOut->GetMapMode().GetOrigin().Y();
+				nOutMax=pOut->GetOutputSize().Height()-1+nOutMin;
+				nOutMin+=nDst;
+				nOutMax-=nDst;
+				// Absolute Mindestlaenge jedoch 10 Pixel
+				if (nOutMax-nOutMin<nDst) {
+					nOutMin+=nOutMax+1;
+					nOutMin/=2;
+					nOutMin-=(nDst+1)/2;
+					nOutMax=nOutMin+nDst;
+				}
+				nOutHgt=nOutMax-nOutMin;
+				// Sonst Mindestlaenge = 1/4 OutHgt
+				long nTemp=nOutHgt/4;
+				if (nTemp>nMinLen) nMinLen=nTemp;
+			}
+=====================================================================
+Found a 69 line (197 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/lnkbase2.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/lnkbase2.cxx
+
+class  ImplDdeItem;
+
+// nur fuer die interne Verwaltung
+struct ImplBaseLinkData
+{
+	struct tClientType
+	{
+		// gilt fuer alle Links
+		ULONG				nCntntType; // Update Format
+		// nicht Ole-Links
+		BOOL 			bIntrnlLnk; // ist es ein interner Link
+		USHORT 			nUpdateMode;// UpdateMode
+	};
+
+	struct tDDEType
+	{
+		ImplDdeItem* pItem;
+	};
+
+	union {
+		tClientType ClientType;
+		tDDEType DDEType;
+	};
+	ImplBaseLinkData()
+	{
+		ClientType.nCntntType = 0;
+		ClientType.bIntrnlLnk = FALSE;
+		ClientType.nUpdateMode = 0;
+		DDEType.pItem = NULL;
+	}
+};
+
+
+class ImplDdeItem : public DdeGetPutItem
+{
+	SvBaseLink* pLink;
+	DdeData aData;
+	Sequence< sal_Int8 > aSeq;		    // Datacontainer for DdeData !!!
+	BOOL bIsValidData : 1;
+	BOOL bIsInDTOR : 1;
+public:
+	ImplDdeItem( SvBaseLink& rLink, const String& rStr )
+		: DdeGetPutItem( rStr ), pLink( &rLink ), bIsValidData( FALSE ),
+		bIsInDTOR( FALSE )
+	{}
+	virtual ~ImplDdeItem();
+
+	virtual DdeData* Get( ULONG );
+	virtual BOOL Put( const DdeData* );
+	virtual void AdviseLoop( BOOL );
+
+	void Notify()
+	{
+		bIsValidData = FALSE;
+		DdeGetPutItem::NotifyClient();
+	}
+
+	BOOL IsInDTOR() const { return bIsInDTOR; }
+};
+
+
+/************************************************************************
+|*	  SvBaseLink::SvBaseLink()
+|*
+|*	  Beschreibung
+*************************************************************************/
+
+SvBaseLink::SvBaseLink()
+{
+=====================================================================
+Found a 18 line (197 tokens) duplication in the following files: 
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbaworksheet.cxx
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbaworksheet.cxx
+
+ScVbaWorksheet::Copy( const uno::Any& Before, const uno::Any& After ) throw (uno::RuntimeException) 
+{
+	rtl::OUString aSheetName;
+	uno::Reference<excel::XWorksheet> xSheet;
+	rtl::OUString aCurrSheetName =getName();
+	if (!(Before >>= xSheet) && !(After >>=xSheet)&& !(Before.hasValue()) && !(After.hasValue()))
+	{
+		uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor = getSheet()->createCursor( );
+		uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
+        	uno::Reference< table::XCellRange > xRange1( xSheetCellCursor, uno::UNO_QUERY);
+		uno::Reference<excel::XRange> xRange =  new ScVbaRange(m_xContext, xRange1);
+		if (xRange.is())
+			xRange->Select();
+		implnCopy();
+		uno::Reference<frame::XModel> xModel = openNewDoc(aCurrSheetName);
+		if (xModel.is())
+		{
+			implnPaste();
+=====================================================================
+Found a 33 line (197 tokens) duplication in the following files: 
+Starting at line 1444 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/inputwin.cxx
+Starting at line 694 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/navipi/content.cxx
+
+		return;
+
+	ScRangeName* pRangeNames = pDoc->GetRangeName();
+	USHORT nCount = pRangeNames->GetCount();
+	if ( nCount > 0 )
+	{
+		USHORT nValidCount = 0;
+		ScRange aDummy;
+		USHORT i;
+		for ( i=0; i<nCount; i++ )
+		{
+			ScRangeData* pData = (*pRangeNames)[i];
+			if (pData->IsValidReference(aDummy))
+				nValidCount++;
+		}
+		if ( nValidCount )
+		{
+			ScRangeData** ppSortArray = new ScRangeData* [ nValidCount ];
+			USHORT j;
+			for ( i=0, j=0; i<nCount; i++ )
+			{
+				ScRangeData* pData = (*pRangeNames)[i];
+				if (pData->IsValidReference(aDummy))
+					ppSortArray[j++] = pData;
+			}
+#ifndef ICC
+			qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*),
+				&ScRangeData_QsortNameCompare );
+#else
+			qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*),
+				ICCQsortNameCompare );
+#endif
+			for ( j=0; j<nValidCount; j++ )
+=====================================================================
+Found a 8 line (197 tokens) duplication in the following files: 
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* RegName */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
+=====================================================================
+Found a 44 line (197 tokens) duplication in the following files: 
+Starting at line 3005 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 3060 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+sal_Bool SAL_CALL OStorage::isStorageElement( const ::rtl::OUString& aElementName )
+		throw ( embed::InvalidStorageException,
+				lang::IllegalArgumentException,
+				container::NoSuchElementException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( !aElementName.getLength() )
+		throw lang::IllegalArgumentException();
+
+	if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+	  && aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
+		throw lang::IllegalArgumentException();
+
+	SotElement_Impl* pElement = NULL;
+	
+	try
+	{
+		pElement = m_pImpl->FindElement( aElementName );
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( container::NoSuchElementException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't detect whether it is a storage" ),
+=====================================================================
+Found a 25 line (197 tokens) duplication in the following files: 
+Starting at line 2602 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4764 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+void SAL_CALL OStorage::removeRelationshipByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Id" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
+				{
+					sal_Int32 nLength = aSeq.getLength();
+					aSeq[nInd1] = aSeq[nLength-1];
+					aSeq.realloc( nLength - 1 );
+
+					m_pImpl->m_aRelInfo = aSeq;
+=====================================================================
+Found a 8 line (197 tokens) duplication in the following files: 
+Starting at line 1497 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1506 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0,13,13,13,13,13,13,13,13,13,13,13,13,13,// fbd0 - fbdf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fbe0 - fbef
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fbf0 - fbff
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd00 - fd0f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd10 - fd1f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd20 - fd2f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,10,// fd30 - fd3f
+=====================================================================
+Found a 9 line (197 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1215 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10b0 - 10bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10c0 - 10cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10d0 - 10df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10e0 - 10ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10f0 - 10ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1600 - 160f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1610 - 161f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+=====================================================================
+Found a 8 line (197 tokens) duplication in the following files: 
+Starting at line 1058 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1497 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,// fb40 - fb4f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fb50 - fb5f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fb60 - fb6f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fb70 - fb7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fb80 - fb8f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fb90 - fb9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fba0 - fbaf
+    13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fbb0 - fbbf
+=====================================================================
+Found a 8 line (197 tokens) duplication in the following files: 
+Starting at line 667 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 31b0 - 31bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31c0 - 31cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31d0 - 31df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31e0 - 31ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31f0 - 31ff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3200 - 320f
+    27,27,27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0,// 3210 - 321f
+=====================================================================
+Found a 7 line (197 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,// 3120 - 312f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3130 - 313f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3140 - 314f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3150 - 315f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3160 - 316f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3170 - 317f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,// 3180 - 318f
+=====================================================================
+Found a 8 line (197 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17,17, 0,// 0e40 - 0e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e50 - 0e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e60 - 0e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e70 - 0e7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e80 - 0e8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e90 - 0e9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ea0 - 0eaf
+     0,17, 0, 0,17,17,17,17,17,17, 0,17,17, 0, 0, 0,// 0eb0 - 0ebf
+=====================================================================
+Found a 15 line (197 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+
+void DXF3DFaceEntity::EvaluateGroup(DXFGroupReader & rDGR)
+{
+	switch (rDGR.GetG()) {
+		case 10: aP0.fx=rDGR.GetF(); break;
+		case 20: aP0.fy=rDGR.GetF(); break;
+		case 30: aP0.fz=rDGR.GetF(); break;
+		case 11: aP1.fx=rDGR.GetF(); break;
+		case 21: aP1.fy=rDGR.GetF(); break;
+		case 31: aP1.fz=rDGR.GetF(); break;
+		case 12: aP2.fx=rDGR.GetF(); break;
+		case 22: aP2.fy=rDGR.GetF(); break;
+		case 32: aP2.fz=rDGR.GetF(); break;
+		case 13: aP3.fx=rDGR.GetF(); break;
+		case 23: aP3.fy=rDGR.GetF(); break;
+		case 33: aP3.fz=rDGR.GetF(); break;
+=====================================================================
+Found a 37 line (197 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/objectmenucontroller.cxx
+
+void SAL_CALL ObjectMenuController::select( const css::awt::MenuEvent& rEvent ) throw (RuntimeException)
+{
+    Reference< css::awt::XPopupMenu >   xPopupMenu;
+    Reference< XDispatch >              xDispatch;
+    Reference< XMultiServiceFactory >   xServiceManager;
+
+    ResetableGuard aLock( m_aLock );
+    xPopupMenu      = m_xPopupMenu;
+    xDispatch       = m_xDispatch;
+    xServiceManager = m_xServiceManager;
+    aLock.unlock();
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs;
+            Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance(
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
+                                                        UNO_QUERY );
+
+            {
+                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+
+                aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+            }
+
+            xURLTransformer->parseStrict( aTargetURL );
+            xDispatch->dispatch( aTargetURL, aArgs );
+        }
+    }
+}
+
+void SAL_CALL ObjectMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
+=====================================================================
+Found a 39 line (197 tokens) duplication in the following files: 
+Starting at line 958 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 660 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+    DBG_ASSERT( pTextView, "Noch keine View, aber Syntax-Highlight ?!" );
+	// pTextEngine->SetUpdateMode( FALSE );
+
+	bHighlighting = TRUE;
+	USHORT nLine;
+	USHORT nCount  = 0;
+	// zuerst wird der Bereich um dem Cursor bearbeitet
+	TextSelection aSel = pTextView->GetSelection();
+    USHORT nCur = (USHORT)aSel.GetStart().GetPara();
+	if(nCur > 40)
+		nCur -= 40;
+	else
+		nCur = 0;
+	if(aSyntaxLineTable.Count())
+		for(USHORT i = 0; i < 80 && nCount < 40; i++, nCur++)
+		{
+			void * p = aSyntaxLineTable.Get(nCur);
+			if(p)
+			{
+				DoSyntaxHighlight( nCur );
+				aSyntaxLineTable.Remove( nCur );
+				nCount++;
+                if(!aSyntaxLineTable.Count())
+                    break;
+                if((Time().GetTime() - aSyntaxCheckStart.GetTime()) > MAX_HIGHLIGHTTIME )
+                {
+                    pTimer->SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
+                    break;
+                }
+            }
+		}
+
+	// wenn dann noch etwas frei ist, wird von Beginn an weitergearbeitet
+	void* p = aSyntaxLineTable.First();
+	while ( p && nCount < MAX_SYNTAX_HIGHLIGHT)
+	{
+		nLine = (USHORT)aSyntaxLineTable.GetCurKey();
+		DoSyntaxHighlight( nLine );
+		USHORT nCur = (USHORT)aSyntaxLineTable.GetCurKey();
+=====================================================================
+Found a 8 line (197 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17,17, 0,// 0e40 - 0e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e50 - 0e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e60 - 0e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e70 - 0e7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e80 - 0e8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e90 - 0e9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ea0 - 0eaf
+     0,17, 0, 0,17,17,17,17,17,17, 0,17,17, 0, 0, 0,// 0eb0 - 0ebf
+=====================================================================
+Found a 41 line (197 tokens) duplication in the following files: 
+Starting at line 30 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/runargv.c
+Starting at line 36 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/win95/microsft/vpp40/runargv.c
+
+typedef struct prp {
+   char *prp_cmd;
+   int   prp_group;
+   int   prp_ignore;
+   int   prp_last;
+   int	 prp_shell;
+   struct prp *prp_next;
+} RCP, *RCPPTR;
+
+typedef struct pr {
+   int		pr_valid;
+   int		pr_pid;
+   CELLPTR	pr_target;
+   int		pr_ignore;
+   int		pr_last;
+   RCPPTR  	pr_recipe;
+   RCPPTR  	pr_recipe_end;
+   char        *pr_dir;
+} PR;
+
+static PR  *_procs    = NIL(PR);
+static int  _proc_cnt = 0;
+static int  _abort_flg= FALSE;
+static int  _use_i    = -1;
+static int  _do_upd   = 0;
+
+static  void	_add_child ANSI((int, CELLPTR, int, int));
+static  void	_attach_cmd ANSI((char *, int, int, CELLPTR, int, int));
+static  void    _finished_child ANSI((int, int));
+static  int     _running ANSI((CELLPTR));
+
+PUBLIC int
+runargv(target, ignore, group, last, shell, cmd)
+CELLPTR target;
+int     ignore;
+int	group;
+int	last;
+int     shell;
+char	*cmd;
+{
+   extern  int  errno;
+=====================================================================
+Found a 11 line (197 tokens) duplication in the following files: 
+Starting at line 677 of /local/ooo-build/ooo-build/src/oog680-m3/cosv/source/strings/streamstr.cxx
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/idl/source/cmptools/char.cxx
+
+static unsigned char EqualTab[ 256 ] = {
+  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
+ 10,  11,  12,  13,  14,  15,  16,  17,  18,  19,
+ 20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+ 30,  31,  32,  33,  34,  35,  36,  37,  38,  39,
+ 40,  41,  42,  43,  44,  45,  46,  47,  48,  49,
+ 50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+ 60,  61,  62,  63,  64,  65,  66,  67,  68,  69,
+ 70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+ 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
+ 90,  91,  92,  93,  94,  95,  96,  97,  98,  99,
+=====================================================================
+Found a 35 line (197 tokens) duplication in the following files: 
+Starting at line 580 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+			(*_rRow)[i]->setNull();
+		else
+		{
+			// Laengen je nach Datentyp:
+			sal_Int32	nLen,
+						nType = 0;
+			if(bIsTable)
+			{
+				nLen	= m_aPrecisions[i];
+				nType	= m_aTypes[i];
+			}
+			else
+			{
+				Reference< XPropertySet> xColumn = *aIter;
+				xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION))	>>= nLen;
+				xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE))		>>= nType;
+			}
+			switch(nType)
+			{
+				case DataType::TIMESTAMP:
+				case DataType::DATE:
+				case DataType::TIME:
+				{
+					double nRes = 0.0;
+					try
+					{
+						nRes = m_xNumberFormatter->convertStringToNumber(::com::sun::star::util::NumberFormat::ALL,aStr);
+						Reference<XPropertySet> xProp(m_xNumberFormatter->getNumberFormatsSupplier()->getNumberFormatSettings(),UNO_QUERY);
+						com::sun::star::util::Date aDate;
+						xProp->getPropertyValue(::rtl::OUString::createFromAscii("NullDate")) >>= aDate;
+
+						switch(nType)
+						{
+							case DataType::DATE:
+								*(*_rRow)[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDate(nRes,aDate));
+=====================================================================
+Found a 36 line (197 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/apinotifierimpl.cxx
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/apinotifierimpl.cxx
+
+void implAddListener( NodeGroupInfoAccess& rNode, const uno::Reference< beans::XPropertyChangeListener >& xListener, const OUString& sPropertyName ) 
+	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+	using namespace css::beans;
+	try
+	{
+		if (!genericAddChildListener(rNode,xListener,sPropertyName))
+		{
+			throw UnknownPropertyException(
+					OUString(RTL_CONSTASCII_USTRINGPARAM("Configuration: cannot add listener - node not found !")),
+					rNode.getUnoInstance() );
+		}
+	}
+	catch (configuration::InvalidName& ex)
+	{
+		ExceptionMapper e(ex);
+		throw UnknownPropertyException(
+				OUString(RTL_CONSTASCII_USTRINGPARAM("Configuration: cannot add listener - node not found:")) += ex.message(),
+				rNode.getUnoInstance() );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		throw css::lang::WrappedTargetException(
+				OUString(RTL_CONSTASCII_USTRINGPARAM("Configuration: adding a listener failed: ")) += ex.message(),
+				rNode.getUnoInstance(), 
+				ex.getAnyUnoException());
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );
+		e.unhandled();
+	}
+}
+
+void implRemoveListener( NodeGroupInfoAccess& rNode, const uno::Reference< beans::XPropertyChangeListener >& xListener, const OUString& sPropertyName ) 
+=====================================================================
+Found a 12 line (197 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/namecontainer.cxx
+Starting at line 1192 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+
+	SdUnoEventsAccess( SdXShape* pShape ) throw();
+
+    // XNameReplace
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    
+    // XNameAccess
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+    // XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 44 line (197 tokens) duplication in the following files: 
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription * >(
+                        member)->pAttributeTypeRef));
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+=====================================================================
+Found a 44 line (197 tokens) duplication in the following files: 
+Starting at line 517 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+    sal_Int32 functionCount, sal_Int32 vTableOffset)
+{
+	for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vTableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+		    typelib_InterfaceAttributeTypeDescription * >(
+		    member)->pAttributeTypeRef));
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vTableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vTableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+=====================================================================
+Found a 50 line (197 tokens) duplication in the following files: 
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+{
+
+  // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+  // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+  // fflush(stderr);
+
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription * >(
+                        member)->pAttributeTypeRef));
+
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+=====================================================================
+Found a 18 line (196 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                fg[3] >>= image_filter_shift;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)fg[order_type::A];
+                ++span;
+                ++base_type::interpolator();
+
+            } while(--len);
+
+            return base_type::allocator().span();
+        }
+=====================================================================
+Found a 34 line (196 tokens) duplication in the following files: 
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 923 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+                value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+                calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+                if(alpha == base_mask)
+                {
+                    pixel_type v;
+                    ((value_type*)&v)[order_type::R] = c.r;
+                    ((value_type*)&v)[order_type::G] = c.g;
+                    ((value_type*)&v)[order_type::B] = c.b;
+                    ((value_type*)&v)[order_type::A] = c.a;
+                    do
+                    {
+                        *(pixel_type*)p = v;
+                        p += 4;
+                    }
+                    while(--len);
+                }
+                else
+                {
+                    do
+                    {
+                        blender_type::blend_pix(p, c.r, c.g, c.b, alpha, cover);
+                        p += 4;
+                    }
+                    while(--len);
+                }
+            }
+        }
+
+        //--------------------------------------------------------------------
+        void blend_vline(int x, int y, unsigned len, 
+                         const color_type& c, int8u cover)
+        {
+            if (c.a)
+            {
+=====================================================================
+Found a 28 line (196 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 511 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 597 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 685 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlDateFieldModel") ) );
+	
+	Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
+	if (xStyle.is())
+	{
+		StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+		Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+		pStyle->importBackgroundColorStyle( xControlModel );
+		pStyle->importTextColorStyle( xControlModel );
+		pStyle->importTextLineColorStyle( xControlModel );
+		pStyle->importBorderStyle( xControlModel );
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("readonly") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("StrictFormat") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("strict-format") ),
+							   _xAttributes );
+	ctx.importBooleanProperty(
+        OUSTR("HideInactiveSelection"), OUSTR("hide-inactive-selection"),
+        _xAttributes );
+	ctx.importDateFormatProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DateFormat") ),
+=====================================================================
+Found a 31 line (196 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xline.cxx
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xline.cxx
+
+		aP2.Y() += nDy;
+		SegEnd.X() += nDx;
+		SegEnd.Y() += nDy;
+
+		// wenn das Ende ueberschritten wurde, hat das Vorzeichen
+		// der Abstaende vom Endpunkt gewechselt; durch Xor-Verknuepfung
+		// wird dieser Wechsel festgestellt
+		long nEndDiffX = (SegEnd.X() - rEnd.X());
+		long nEndDiffY = (SegEnd.Y() - rEnd.Y());
+
+		if ( (nEndDiffX ^ (SegStart.X() - rEnd.X())) < 0 ||
+			 (nEndDiffY ^ (SegStart.Y() - rEnd.Y())) < 0 ||
+			 (!nEndDiffX && !nEndDiffY) )
+		{
+			if ( nDx || nDy )
+			{
+				if ( Abs(nDx) >= Abs(nDy) )
+				{
+					long nDiffX = SegEnd.X() - rEnd.X();
+					rParam.nPatRemain = nPattern * nDiffX / nDx;
+				}
+				else
+				{
+					long nDiffY = SegEnd.Y() - rEnd.Y();
+					rParam.nPatRemain = nPattern * nDiffY / nDy;
+				}
+			}
+			else
+				rParam.nPatRemain = 0;
+
+			rParam.nPatSeg = nSeg;
+=====================================================================
+Found a 35 line (196 tokens) duplication in the following files: 
+Starting at line 2204 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2657 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_ComboBox::WriteContents(SvStorageStreamRef &rContents,
+	const uno::Reference< beans::XPropertySet > &rPropSet,
+	const awt::Size &rSize)
+{
+	sal_Bool bRet=sal_True;
+    sal_uInt32 nOldPos = rContents->Tell();
+	rContents->SeekRel(12);
+
+	pBlockFlags[0] = 0;
+	pBlockFlags[1] = 0x01;
+	pBlockFlags[2] = 0x00;
+	pBlockFlags[3] = 0x80;
+	pBlockFlags[4] = 0;
+	pBlockFlags[5] = 0;
+	pBlockFlags[6] = 0;
+	pBlockFlags[7] = 0;
+
+
+	sal_uInt8 nTemp=0x19;//fEnabled;
+	uno::Any aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Enabled"));
+	fEnabled = any2bool(aTmp);
+	if (fEnabled)
+		nTemp |= 0x02;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("ReadOnly"));
+	fLocked = any2bool(aTmp);
+	if (fLocked)
+		nTemp |= 0x04;
+
+	*rContents << nTemp;
+	pBlockFlags[0] |= 0x01;
+	*rContents << sal_uInt8(0x48);
+	*rContents << sal_uInt8(0x80);
+
+    nTemp = 0x0C;
+=====================================================================
+Found a 44 line (196 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testregistry.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testsmgr.cxx
+
+OString userRegEnv("STAR_USER_REGISTRY=");
+
+OUString getExePath()
+{
+	OUString 		exe;
+
+	OSL_VERIFY( osl_getExecutableFile( &exe.pData) == osl_Process_E_None);
+
+#if defined(WIN32) || defined(__OS2__) || defined(WNT)
+	exe = exe.copy(0, exe.getLength() - 16);
+#else
+	exe = exe.copy(0, exe.getLength() - 12);
+#endif
+	return exe;
+}
+
+void setStarUserRegistry()
+{
+	RegistryLoader* pLoader = new RegistryLoader();
+
+	if (!pLoader->isLoaded())
+	{
+		delete pLoader;
+		return;
+	}
+
+	Registry *myRegistry = new Registry(*pLoader);
+	delete pLoader;
+
+	RegistryKey rootKey, rKey, rKey2;
+
+	OUString userReg = getExePath();
+	userReg += OUString::createFromAscii("user.rdb");
+	if(myRegistry->open(userReg, REG_READWRITE))
+	{
+		TEST_ENSHURE(!myRegistry->create(userReg), "setStarUserRegistry error 1");
+	}
+
+	TEST_ENSHURE(!myRegistry->close(), "setStarUserRegistry error 9");
+	delete myRegistry;
+
+	userRegEnv += OUStringToOString(userReg, RTL_TEXTENCODING_ASCII_US);
+	putenv((char *)userRegEnv.getStr());
+}
+=====================================================================
+Found a 34 line (196 tokens) duplication in the following files: 
+Starting at line 4505 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 935 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin2.cxx
+
+		if ( nDx != 0 ) pViewData->GetView()->ScrollX( nDx, WhichH(eWhich) );
+		if ( nDy != 0 ) pViewData->GetView()->ScrollY( nDy, WhichV(eWhich) );
+		bTimer = TRUE;
+	}
+
+	//	Umschalten bei Fixierung (damit Scrolling funktioniert)
+
+	if ( eWhich == pViewData->GetActivePart() )		//??
+	{
+		if ( pViewData->GetHSplitMode() == SC_SPLIT_FIX )
+			if ( nDx > 0 )
+			{
+				if ( eWhich == SC_SPLIT_TOPLEFT )
+					pViewData->GetView()->ActivatePart( SC_SPLIT_TOPRIGHT );
+				else if ( eWhich == SC_SPLIT_BOTTOMLEFT )
+					pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT );
+			}
+
+		if ( pViewData->GetVSplitMode() == SC_SPLIT_FIX )
+			if ( nDy > 0 )
+			{
+				if ( eWhich == SC_SPLIT_TOPLEFT )
+					pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMLEFT );
+				else if ( eWhich == SC_SPLIT_TOPRIGHT )
+					pViewData->GetView()->ActivatePart( SC_SPLIT_BOTTOMRIGHT );
+			}
+	}
+
+	//	ab hier neu
+
+	//	gesucht wird eine Position zwischen den Zellen (vor nPosX / nPosY)
+	SCsCOL nPosX;
+	SCsROW nPosY;
+	pViewData->GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nPosX, nPosY );
+=====================================================================
+Found a 51 line (196 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/smdetect.cxx
+
+                        aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pFilter ? pFilter->IsAllowedAsTemplate() : FALSE, &aTmpFilterName );
+					}
+					catch( lang::WrappedTargetException& aWrap )
+					{
+						packages::zip::ZipIOException aZipException;
+
+						// repairing is done only if this type is requested from outside
+						if ( ( aWrap.TargetException >>= aZipException ) && aTypeName.Len() )
+						{
+							if ( xInteraction.is() )
+							{
+								// the package is broken one
+       							aDocumentTitle = aMedium.GetURLObject().getName(
+															INetURLObject::LAST_SEGMENT,
+															true,
+															INetURLObject::DECODE_WITH_CHARSET );
+
+								if ( !bRepairPackage )
+								{
+									// ask the user whether he wants to try to repair
+            						RequestPackageReparation* pRequest = new RequestPackageReparation( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pRequest );
+
+            						xInteraction->handle( xRequest );
+
+            						bRepairAllowed = pRequest->isApproved();
+								}
+
+								if ( !bRepairAllowed )
+								{
+									// repair either not allowed or not successful
+	        						NotifyBrokenPackage* pNotifyRequest = new NotifyBrokenPackage( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pNotifyRequest );
+           							xInteraction->handle( xRequest );
+								}
+							}
+
+							if ( !bRepairAllowed )
+								aTypeName.Erase();
+						}
+					}
+					catch( uno::RuntimeException& )
+					{
+						throw;
+					}
+					catch( uno::Exception& )
+					{
+						aTypeName.Erase();
+					}
+
+                   	if ( aTypeName.Len() )
+=====================================================================
+Found a 72 line (196 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertbig5hkscs.c
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertgb18030.c
+
+        nHighSurrogate = 0;
+        continue;
+
+    bad_input:
+        switch (ImplHandleBadInputUnicodeToTextConversion(bUndefined,
+                                                          nChar,
+                                                          nFlags,
+                                                          &pDestBufPtr,
+                                                          pDestBufEnd,
+                                                          &nInfo,
+                                                          NULL,
+                                                          0,
+                                                          NULL))
+        {
+        case IMPL_BAD_INPUT_STOP:
+            nHighSurrogate = 0;
+            break;
+
+        case IMPL_BAD_INPUT_CONTINUE:
+            nHighSurrogate = 0;
+            continue;
+
+        case IMPL_BAD_INPUT_NO_OUTPUT:
+            goto no_output;
+        }
+        break;
+
+    no_output:
+        --pSrcBuf;
+        nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
+        break;
+    }
+
+    if (nHighSurrogate != 0
+        && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR
+                         | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL))
+               == 0)
+    {
+        if ((nFlags & RTL_UNICODETOTEXT_FLAGS_FLUSH) != 0)
+            nInfo |= RTL_UNICODETOTEXT_INFO_SRCBUFFERTOSMALL;
+        else
+            switch (ImplHandleBadInputUnicodeToTextConversion(sal_False,
+                                                              0,
+                                                              nFlags,
+                                                              &pDestBufPtr,
+                                                              pDestBufEnd,
+                                                              &nInfo,
+                                                              NULL,
+                                                              0,
+                                                              NULL))
+            {
+            case IMPL_BAD_INPUT_STOP:
+            case IMPL_BAD_INPUT_CONTINUE:
+                nHighSurrogate = 0;
+                break;
+
+            case IMPL_BAD_INPUT_NO_OUTPUT:
+                nInfo |= RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
+                break;
+            }
+    }
+
+    if (pContext)
+        ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate
+            = nHighSurrogate;
+    if (pInfo)
+        *pInfo = nInfo;
+    if (pSrcCvtChars)
+        *pSrcCvtChars = nConverted;
+
+    return pDestBufPtr - pDestBuf;
+}
+=====================================================================
+Found a 14 line (196 tokens) duplication in the following files: 
+Starting at line 902 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 935 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
+                0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,
+                0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
+                0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
+                0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
+                0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
+                0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
+                0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
+                0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
+                0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
+                0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
+                0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
+                0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
+            { RTL_TEXTENCODING_MS_1255,
+=====================================================================
+Found a 14 line (196 tokens) duplication in the following files: 
+Starting at line 535 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
+                0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
+                0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
+                0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
+                0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
+                0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
+                0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
+                0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
+                0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
+                0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
+                0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
+                0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
+                0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
+            { RTL_TEXTENCODING_ISO_8859_2,
+=====================================================================
+Found a 27 line (196 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+Starting at line 624 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+
+		case (B3D_TXT_MODE_MOD|B3D_TXT_KIND_COL) :
+		{
+			fS = fS - floor(fS);
+			fT = fT - floor(fT);
+			long nX2, nY2;
+
+			if(fS > 0.5) {
+				nX2 = (nX + 1) % GetBitmapSize().Width();
+				fS = 1.0 - fS;
+			} else
+				nX2 = nX ? nX - 1 : GetBitmapSize().Width() - 1;
+
+			if(fT > 0.5) {
+				nY2 = (nY + 1) % GetBitmapSize().Height();
+				fT = 1.0 - fT;
+			} else
+				nY2 = nY ? nY - 1 : GetBitmapSize().Height() - 1;
+
+			fS += 0.5;
+			fT += 0.5;
+			double fRight = 1.0 - fS;
+			double fBottom = 1.0 - fT;
+
+			BitmapColor aColTL = pReadAccess->GetColor(nY, nX);
+			BitmapColor aColTR = pReadAccess->GetColor(nY, nX2);
+			BitmapColor aColBL = pReadAccess->GetColor(nY2, nX);
+			BitmapColor aColBR = pReadAccess->GetColor(nY2, nX2);
+=====================================================================
+Found a 34 line (196 tokens) duplication in the following files: 
+Starting at line 1124 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1064 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				{
+					Polygon aPoly;
+
+					switch( nType )
+					{
+						case( META_ARC_ACTION ):
+						{
+							const MetaArcAction* pA = (const MetaArcAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_ARC );
+						}
+						break;
+
+						case( META_PIE_ACTION ):
+						{
+							const MetaPieAction* pA = (const MetaPieAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_PIE );
+						}
+						break;
+
+						case( META_CHORD_ACTION	):
+						{
+							const MetaChordAction* pA = (const MetaChordAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_CHORD );
+						}
+						break;
+						
+						case( META_POLYGON_ACTION ):
+							aPoly = ( (const MetaPolygonAction*) pAction )->GetPolygon();
+						break;
+					}
+
+					if( aPoly.GetSize() )
+					{
+						mpContext->SetPaintAttr( mpVDev->GetLineColor(), mpVDev->GetFillColor() );
+=====================================================================
+Found a 46 line (196 tokens) duplication in the following files: 
+Starting at line 2287 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2482 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+sal_Bool ExceptionType::dumpSuperMember(FileStream& o, const OString& superType, sal_Bool bWithType)
+{
+	sal_Bool hasMember = sal_False;
+
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		
+		if (aSuperReader.isValid())
+		{
+			hasMember = dumpSuperMember(o, aSuperReader.getSuperTypeName(), bWithType);
+
+			sal_uInt32 		fieldCount = aSuperReader.getFieldCount();
+			RTFieldAccess 	access = RT_ACCESS_INVALID;
+			OString 		fieldName;
+			OString 		fieldType;	
+			for (sal_uInt16 i=0; i < fieldCount; i++)
+			{
+				access = aSuperReader.getFieldAccess(i);
+				
+				if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
+					continue;
+
+				fieldName = aSuperReader.getFieldName(i);
+				fieldType = aSuperReader.getFieldType(i);
+						
+				if (hasMember) 
+				{
+					o << ", ";
+				} else
+				{
+					hasMember = (fieldCount > 0);
+				}
+
+				if (bWithType)
+				{
+					dumpUnoType(o, fieldType, sal_True, sal_True);	
+					o << " ";
+				}		
+				o << "__" << fieldName;
+			}
+		}
+	}
+	
+	return hasMember;
+}	
+=====================================================================
+Found a 34 line (195 tokens) duplication in the following files: 
+Starting at line 5261 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    lid = lidFE = 0x409;
+}
+
+bool WW8Fib::Write(SvStream& rStrm)
+{
+    BYTE *pDataPtr = new BYTE[ fcMin ];
+    BYTE *pData = pDataPtr;
+    memset( pData, 0, fcMin );
+
+    bool bVer8 = 8 == nVersion;
+
+    ULONG nPos = rStrm.Tell();
+    cbMac = rStrm.Seek( STREAM_SEEK_TO_END );
+    rStrm.Seek( nPos );
+
+    Set_UInt16( pData, wIdent );
+    Set_UInt16( pData, nFib );
+    Set_UInt16( pData, nProduct );
+    Set_UInt16( pData, lid );
+    Set_UInt16( pData, pnNext );
+
+    UINT16 nBits16 = 0;
+    if( fDot )          nBits16 |= 0x0001;
+    if( fGlsy)          nBits16 |= 0x0002;
+    if( fComplex )      nBits16 |= 0x0004;
+    if( fHasPic )       nBits16 |= 0x0008;
+    nBits16 |= (0xf0 & ( cQuickSaves << 4 ));
+    if( fEncrypted )    nBits16 |= 0x0100;
+    if( fWhichTblStm )  nBits16 |= 0x0200;
+    if( fExtChar )      nBits16 |= 0x1000;
+    Set_UInt16( pData, nBits16 );
+
+    Set_UInt16( pData, nFibBack );
+    Set_UInt16( pData, nHash );
+=====================================================================
+Found a 38 line (195 tokens) duplication in the following files: 
+Starting at line 1163 of /local/ooo-build/ooo-build/src/oog680-m3/svx/workben/msview/msview.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/workben/signaturetest.cxx
+
+    uno::Reference< lang::XMultiServiceFactory > xMSF;
+	try
+	{
+        uno::Reference< uno::XComponentContext > xCtx( cppu::defaultBootstrap_InitialComponentContext() );
+        if ( !xCtx.is() )
+        {
+            DBG_ERROR( "Error creating initial component context!" );
+            return -1;
+        }
+
+        xMSF = uno::Reference< lang::XMultiServiceFactory >(xCtx->getServiceManager(), uno::UNO_QUERY );
+
+        if ( !xMSF.is() )
+        {
+            DBG_ERROR( "No service manager!" );
+            return -1;
+        }
+
+        // Init USB
+        uno::Sequence< uno::Any > aArgs( 2 );
+        aArgs[ 0 ] <<= rtl::OUString::createFromAscii( UCB_CONFIGURATION_KEY1_LOCAL );
+	    aArgs[ 1 ] <<= rtl::OUString::createFromAscii( UCB_CONFIGURATION_KEY2_OFFICE );
+	    sal_Bool bSuccess = ::ucb::ContentBroker::initialize( xMSF, aArgs );
+	    if ( !bSuccess )
+	    {
+		    DBG_ERROR( "Error creating UCB!" );
+		    return -1;
+	    }
+
+	}
+    catch ( uno::Exception const & )
+	{
+        DBG_ERROR( "Exception during creation of initial component context!" );
+		return -1;
+	}
+	comphelper::setProcessServiceFactory( xMSF );
+
+    InitVCL( xMSF );
+=====================================================================
+Found a 14 line (195 tokens) duplication in the following files: 
+Starting at line 3721 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 3900 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+OCX_Frame::OCX_Frame( SotStorageRef& parent,
+            const ::rtl::OUString& storageName,
+            const ::rtl::OUString& sN,
+            const uno::Reference< container::XNameContainer >  &rDialog, OCX_Control* pParent):
+		OCX_ContainerControl(parent, storageName, sN, rDialog, pParent ),fUnknown1(0),fEnabled(1), fLocked(0),
+		fBackStyle(1), fWordWrap(1), fAutoSize(0), nCaptionLen(0), nVertPos(1),
+		nHorzPos(7), nMousePointer(0), nBorderColor(0x80000012),
+		nKeepScrollBarsVisible(3), nCycle(0), nBorderStyle(0), nSpecialEffect(0),
+		nPicture(0), nPictureAlignment(2), nPictureSizeMode(0),
+		bPictureTiling(FALSE), nAccelerator(0), nIcon(0), pCaption(0),
+		nScrollWidth(0), nScrollHeight(0), nIconLen(0), pIcon(0), nPictureLen(0),
+		pPicture(0)
+{
+    msDialogType = C2U("com.sun.star.awt.UnoControlGroupBoxModel");
+=====================================================================
+Found a 34 line (195 tokens) duplication in the following files: 
+Starting at line 1845 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2517 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+        pBlockFlags[2] |= 0x80;
+
+    WriteAlign(rContents,4);
+    *rContents << rSize.Width;
+    *rContents << rSize.Height;
+
+    nDefault += 0x30;
+    *rContents << sal_uInt8(nDefault);
+    *rContents << sal_uInt8(0x00);
+
+    aCaption.WriteCharArray( *rContents );
+
+    WriteAlign(rContents,4);
+    nFixedAreaLen = static_cast<sal_uInt16>(rContents->Tell()-nOldPos-4);
+    bRet = aFontData.Export(rContents,rPropSet);
+    rContents->Seek(nOldPos);
+    *rContents << nStandardId;
+    *rContents << nFixedAreaLen;
+
+    *rContents << pBlockFlags[0];
+    *rContents << pBlockFlags[1];
+    *rContents << pBlockFlags[2];
+    *rContents << pBlockFlags[3];
+    *rContents << pBlockFlags[4];
+    *rContents << pBlockFlags[5];
+    *rContents << pBlockFlags[6];
+    *rContents << pBlockFlags[7];
+
+    DBG_ASSERT((rContents.Is() &&
+        (SVSTREAM_OK==rContents->GetError())),"damn");
+    return bRet;
+}
+
+sal_Bool OCX_Label::Import(uno::Reference< beans::XPropertySet > &rPropSet)
+=====================================================================
+Found a 13 line (195 tokens) duplication in the following files: 
+Starting at line 2516 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2239 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonReturnVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600,	21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I },	{ 0xe MSO_I, 0x10 MSO_I },							// ppp
+	{ 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I },						// ccp
+	{ 10800, 0x16 MSO_I },																					// p
+=====================================================================
+Found a 40 line (195 tokens) duplication in the following files: 
+Starting at line 2441 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/dispatch.cxx
+Starting at line 2560 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/dispatch.cxx
+
+	for ( sal_uInt16 i=0 ; i < nTotCount; ++i )
+	{
+		SfxShell *pObjShell = GetShell(i);
+		SfxInterface *pIFace = pObjShell->GetInterface();
+		const SfxSlot *pSlot = pIFace->GetSlot(nSlot);
+		if ( pSlot && pSlot->nDisableFlags && ( pSlot->nDisableFlags & pObjShell->GetDisableFlags() ) != 0 )
+			return sal_False;
+
+		if ( pSlot && !( pSlot->nFlags & SFX_SLOT_READONLYDOC ) && bReadOnly )
+			return sal_False;
+
+		if ( pSlot )
+		{
+			// Slot geh"ort zum Container?
+			FASTBOOL bIsContainerSlot = pSlot->IsMode(SFX_SLOT_CONTAINER);
+            FASTBOOL bIsInPlace = pImp->pFrame && pImp->pFrame->GetObjectShell()->IsInPlaceActive();
+
+            // Shell geh"ort zum Server?
+			// AppDispatcher oder IPFrame-Dispatcher
+			FASTBOOL bIsServerShell = !pImp->pFrame || bIsInPlace;
+
+			// Nat"urlich sind ServerShell-Slots auch ausf"uhrbar, wenn sie auf
+			// einem Container-Dispatcher ohne IPClient ausgef"uhrt werden sollen.
+			if ( !bIsServerShell )
+			{
+				SfxViewShell *pViewSh = pImp->pFrame->GetViewShell();
+                bIsServerShell = !pViewSh || !pViewSh->GetUIActiveClient();
+			}
+
+			// Shell geh"ort zum Container?
+			// AppDispatcher oder kein IPFrameDispatcher
+			FASTBOOL bIsContainerShell = !pImp->pFrame || !bIsInPlace;
+
+			// Shell und Slot passen zusammen
+			if ( !( ( bIsContainerSlot && bIsContainerShell ) ||
+					( !bIsContainerSlot && bIsServerShell ) ) )
+				pSlot = 0;
+		}
+
+		if ( pSlot && !IsAllowed( nSlot ) )
+=====================================================================
+Found a 45 line (195 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/sal/systools/win32/uwinapi/MoveFileExA.cpp
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+
+static BOOL MoveFileEx9x( LPCSTR lpExistingFileNameA, LPCSTR lpNewFileNameA, DWORD dwFlags )
+{
+	BOOL	fSuccess = FALSE;	// assume failure
+
+	// Windows 9x has a special mechanism to move files after reboot
+
+	if ( dwFlags & MOVEFILE_DELAY_UNTIL_REBOOT )
+	{
+		CHAR	szExistingFileNameA[MAX_PATH];
+		CHAR	szNewFileNameA[MAX_PATH] = "NUL";
+
+		// Path names in WININIT.INI must be in short path name form
+
+		if ( 
+			GetShortPathNameA( lpExistingFileNameA, szExistingFileNameA, MAX_PATH ) &&
+			(!lpNewFileNameA || GetShortPathNameA( lpNewFileNameA, szNewFileNameA, MAX_PATH ))
+			)
+		{
+			CHAR	szBuffer[32767];	// The buffer size must not exceed 32K
+			DWORD	dwBufLen = GetPrivateProfileSectionA( RENAME_SECTION, szBuffer, elementsof(szBuffer), WININIT_FILENAME );
+
+			CHAR	szRename[MAX_PATH];	// This is enough for at most to times 67 chracters
+			strcpy( szRename, szNewFileNameA );
+			strcat( szRename, "=" );
+			strcat( szRename, szExistingFileNameA );
+			size_t	lnRename = strlen(szRename);
+
+			if ( dwBufLen + lnRename + 2 <= elementsof(szBuffer) )
+			{
+				CopyMemory( &szBuffer[dwBufLen], szRename, lnRename );
+				szBuffer[dwBufLen + lnRename ] = 0;
+				szBuffer[dwBufLen + lnRename + 1 ] = 0;
+
+				fSuccess = WritePrivateProfileSectionA( RENAME_SECTION, szBuffer, WININIT_FILENAME );
+			}
+			else
+				SetLastError( ERROR_BUFFER_OVERFLOW );
+		}
+	}
+	else
+	{
+
+		fSuccess = MoveFileA( lpExistingFileNameA, lpNewFileNameA );
+
+		if ( !fSuccess && GetLastError() != ERROR_ACCESS_DENIED &&
+=====================================================================
+Found a 14 line (195 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/parseAFM.cxx
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/parseAFM.cxx
+
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false, // 191
+
+    false, false, false, false, false, false, false, false, // 192 -
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false,
+    false, false, false, false, false, false, false, false, // 255
+=====================================================================
+Found a 29 line (195 tokens) duplication in the following files: 
+Starting at line 2464 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4626 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+uno::Sequence< beans::StringPair > SAL_CALL OStorage::getRelationshipByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	// TODO/LATER: in future the unification of the ID could be checked
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Id" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
+					return aSeq[nInd1];
+				break;
+			}
+	
+	throw container::NoSuchElementException();
+}
+
+//-----------------------------------------------
+uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OStorage::getRelationshipsByType(  const ::rtl::OUString& sType  )
+=====================================================================
+Found a 26 line (195 tokens) duplication in the following files: 
+Starting at line 967 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3817 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbe, 0xbd },
+{ 0x00, 0xbf, 0xaf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x01, 0xf7, 0xd7 },
+=====================================================================
+Found a 7 line (195 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0,10,10,// 3030 - 303f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3040 - 304f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3050 - 305f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3060 - 306f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3070 - 307f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3080 - 308f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+=====================================================================
+Found a 6 line (195 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x1F78}, {0x6a, 0x1F79}, {0x6a, 0x1F7C}, {0x6a, 0x1F7D}, {0xec, 0x0137}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 1ff8 - 1fff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2100 - 2107
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2108 - 210f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2110 - 2117
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2118 - 211f
+=====================================================================
+Found a 32 line (195 tokens) duplication in the following files: 
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+
+			aTree.integrate(aChanges, aNode, false);
+
+			lock.clearForBroadcast();
+			aSender.notifyListeners(aChanges, true); // if we use 'false' we don't need 'Deep' change objects
+		}
+	}
+	catch (configuration::TypeMismatch& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::ConstraintViolation& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw PropertyVetoException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+}
+=====================================================================
+Found a 39 line (195 tokens) duplication in the following files: 
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedfunc.cxx
+Starting at line 640 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fudraw.cxx
+
+							}
+						}
+						else
+						{
+							// move handle with index nHandleIndex
+							if(pHdl && (nX || nY))
+							{
+								// now move the Handle (nX, nY)
+								Point aStartPoint(pHdl->GetPos());
+								Point aEndPoint(pHdl->GetPos() + Point(nX, nY));
+								const SdrDragStat& rDragStat = pView->GetDragStat();
+
+								// start dragging
+								pView->BegDragObj(aStartPoint, 0, pHdl, 0);
+
+								if(pView->IsDragObj())
+								{
+									FASTBOOL bWasNoSnap = rDragStat.IsNoSnap();
+									BOOL bWasSnapEnabled = pView->IsSnapEnabled();
+
+									// switch snapping off
+									if(!bWasNoSnap)
+										((SdrDragStat&)rDragStat).SetNoSnap(TRUE);
+									if(bWasSnapEnabled)
+										pView->SetSnapEnabled(FALSE);
+
+									pView->MovAction(aEndPoint);
+									pView->EndDragObj();
+
+									// restore snap
+									if(!bWasNoSnap)
+										((SdrDragStat&)rDragStat).SetNoSnap(bWasNoSnap);
+									if(bWasSnapEnabled)
+										pView->SetSnapEnabled(bWasSnapEnabled);
+								}
+
+								// make moved handle visible
+								Rectangle aVisRect(aEndPoint - Point(100, 100), Size(200, 200));
+								pView->MakeVisible(aVisRect, *pWindow);
+=====================================================================
+Found a 40 line (194 tokens) duplication in the following files: 
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+
+                intr.local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg = image_filter_size / 2;
+=====================================================================
+Found a 39 line (194 tokens) duplication in the following files: 
+Starting at line 955 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+Starting at line 1599 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+
+	}
+
+	if( nFeatures & SEF_EXPORT_X )
+	{
+		// svg: x1
+		mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aStart.X);
+		aStr = sStringBuffer.makeStringAndClear();
+		mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_X1, aStr);
+	}
+	else
+	{
+		aEnd.X -= aStart.X;
+	}
+
+	if( nFeatures & SEF_EXPORT_Y )
+	{
+		// svg: y1
+		mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aStart.Y);
+		aStr = sStringBuffer.makeStringAndClear();
+		mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_Y1, aStr);
+	}
+	else
+	{
+		aEnd.Y -= aStart.Y;
+	}
+
+	// svg: x2
+	mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aEnd.X);
+	aStr = sStringBuffer.makeStringAndClear();
+	mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_X2, aStr);
+
+	// svg: y2
+	mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aEnd.Y);
+	aStr = sStringBuffer.makeStringAndClear();
+	mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_Y2, aStr);
+
+	// write measure shape
+	sal_Bool bCreateNewline( (nFeatures & SEF_EXPORT_NO_WS) == 0 ); // #86116#/#92210#
+	SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_MEASURE, bCreateNewline, sal_True);
+=====================================================================
+Found a 41 line (194 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+        static const beans::Property aStreamPropertyInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+			// Required properties
+			///////////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+			),
+			///////////////////////////////////////////////////////////////
+			// Optional standard properties
+			///////////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+			),
+=====================================================================
+Found a 30 line (194 tokens) duplication in the following files: 
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edlingu.cxx
+Starting at line 1394 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edlingu.cxx
+
+                    xSpeller, 0, 0 ) >>= xSpellRet;
+        bGoOn = GetCrsrCnt() > 1;
+        if( xSpellRet.is() )
+        {
+            bGoOn = sal_False;
+            SwPosition* pNewPoint = new SwPosition( *pCrsr->GetPoint() );
+            SwPosition* pNewMark = new SwPosition( *pCrsr->GetMark() );
+
+            SetCurr( pNewPoint );
+            SetCurrX( pNewMark );
+        }
+        if( bGoOn )
+        {
+            pSh->Pop( sal_False );
+            pCrsr = pSh->GetCrsr();
+            if ( *pCrsr->GetPoint() > *pCrsr->GetMark() )
+                pCrsr->Exchange();
+            SwPosition* pNew = new SwPosition( *pCrsr->GetPoint() );
+            SetStart( pNew );
+            pNew = new SwPosition( *pCrsr->GetMark() );
+            SetEnd( pNew );
+            pNew = new SwPosition( *GetStart() );
+            SetCurr( pNew );
+            pNew = new SwPosition( *pNew );
+            SetCurrX( pNew );
+            pCrsr->SetMark();
+            --GetCrsrCnt();
+        }
+    }
+    while ( bGoOn );
+=====================================================================
+Found a 31 line (194 tokens) duplication in the following files: 
+Starting at line 959 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docedt.cxx
+Starting at line 1053 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docedt.cxx
+
+	sal_uInt16 nNewAttrCnt = pNode->GetpSwpHints()
+								? pNode->GetpSwpHints()->Count() : 0;
+	if( nOldAttrCnt != nNewAttrCnt )
+	{
+		SwUpdateAttr aHint( 0, 0, 0 );
+		SwClientIter aIter( *pNode );
+		SwClient* pGTO = aIter.First(TYPE( SwCrsrShell ));
+		while( pGTO )
+		{
+			pGTO->Modify( 0, &aHint );
+			pGTO = aIter.Next();
+		}
+	}
+
+	if( !DoesUndo() && !IsIgnoreRedline() && GetRedlineTbl().Count() )
+	{
+		SwPaM aPam( rPt.nNode, nStart, rPt.nNode, rPt.nContent.GetIndex() );
+		DeleteRedline( aPam, true, USHRT_MAX );
+	}
+	else if( IsRedlineOn() )
+	{
+		SwPaM aPam( rPt.nNode, nStart, rPt.nNode, rPt.nContent.GetIndex() );
+		AppendRedline( new SwRedline( IDocumentRedlineAccess::REDLINE_INSERT, aPam ), true);
+	}
+
+	SetModified();
+	return sal_True;
+}
+
+
+bool SwDoc::MoveAndJoin( SwPaM& rPaM, SwPosition& rPos, SwMoveFlags eMvFlags )
+=====================================================================
+Found a 33 line (194 tokens) duplication in the following files: 
+Starting at line 2019 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2204 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_FieldControl::WriteContents(SvStorageStreamRef &rContents,
+	const uno::Reference< beans::XPropertySet > &rPropSet,
+	const awt::Size &rSize)
+{
+	sal_Bool bRet=sal_True;
+    sal_uInt32 nOldPos = rContents->Tell();
+	rContents->SeekRel(12);
+
+	pBlockFlags[0] = 0;
+	pBlockFlags[1] = 0x01;
+	pBlockFlags[2] = 0x00;
+	pBlockFlags[3] = 0x80;
+	pBlockFlags[4] = 0;
+	pBlockFlags[5] = 0;
+	pBlockFlags[6] = 0;
+	pBlockFlags[7] = 0;
+
+
+	sal_uInt8 nTemp=0x19;
+	uno::Any aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Enabled"));
+	fEnabled = any2bool(aTmp);
+	if (fEnabled)
+		nTemp |= 0x02;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("ReadOnly"));
+	fLocked = any2bool(aTmp);
+	if (fLocked)
+		nTemp |= 0x04;
+
+	*rContents << nTemp;
+	pBlockFlags[0] |= 0x01;
+	*rContents << sal_uInt8(0x48);
+	*rContents << sal_uInt8(0x80);
+=====================================================================
+Found a 35 line (194 tokens) duplication in the following files: 
+Starting at line 1640 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 3309 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+			sEntry.Append( UniString::CreateFromInt32( pSaveNum->GetLevelCount() ) );
+			aLevelLB.InsertEntry(sEntry);
+			aLevelLB.SelectEntry(sEntry);
+		}
+		else
+			aLevelLB.SelectEntryPos(0);
+	}
+	else
+		aLevelLB.SelectEntryPos(aLevelLB.GetEntryCount() - 1);
+//	nActNumLvl =
+//		pOutlineDlg ? pOutlineDlg->GetActNumLevel() : 0;
+//		((SwNumBulletTabDialog*)GetTabDialog())->GetActNumLevel();
+	USHORT nMask = 1;
+	aLevelLB.SetUpdateMode(FALSE);
+	aLevelLB.SetNoSelection();
+	if(nActNumLvl == USHRT_MAX)
+	{
+		aLevelLB.SelectEntryPos( pSaveNum->GetLevelCount(), TRUE);
+	}
+	else
+		for(USHORT i = 0; i < pSaveNum->GetLevelCount(); i++)
+		{
+			if(nActNumLvl & nMask)
+				aLevelLB.SelectEntryPos( i, TRUE);
+			nMask <<= 1;
+		}
+	aLevelLB.SetUpdateMode(TRUE);
+
+	if(SFX_ITEM_SET == rSet.GetItemState(SID_PARAM_CHILD_LEVELS, FALSE, &pItem))
+		bHasChild = ((const SfxBoolItem*)pItem)->GetValue();
+	if(!pActNum)
+		pActNum = new  SvxNumRule(*pSaveNum);
+	else if(*pSaveNum != *pActNum)
+		*pActNum = *pSaveNum;
+	pPreviewWIN->SetNumRule(pActNum);
+=====================================================================
+Found a 31 line (194 tokens) duplication in the following files: 
+Starting at line 5011 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 5067 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+    if ( aPixelRects.size() && pViewData->IsActive() )
+    {
+        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
+
+        std::vector<Rectangle>::const_iterator aPixelEnd( aPixelRects.end() );
+        for ( std::vector<Rectangle>::const_iterator aPixelIter( aPixelRects.begin() );
+              aPixelIter != aPixelEnd; ++aPixelIter )
+        {
+            Rectangle aLogic( PixelToLogic( *aPixelIter, aDrawMode ) );
+
+            const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
+            const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
+            const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
+
+            aRanges.push_back( a2DRange );
+        }
+
+		// #i70788# get the OverlayManager safely
+		::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
+
+		if(pOverlayManager)
+		{
+			ScOverlayType eType = SC_OVERLAY_INVERT;
+//		          ScOverlayType eType = SC_OVERLAY_HATCH;
+//			      ScOverlayType eType = SC_OVERLAY_LIGHT_TRANSPARENT;
+
+			Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
+            sdr::overlay::OverlayObjectCell* pOverlay =
+	            new sdr::overlay::OverlayObjectCell( eType, aHighlight, aRanges );
+
+            pOverlayManager->add(*pOverlay);
+=====================================================================
+Found a 34 line (194 tokens) duplication in the following files: 
+Starting at line 724 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drawsh5.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drtxtob2.cxx
+
+	ScDrawView* 		pDrView 	= pTabView->GetScDrawView();
+	const SdrMarkList&	rMarkList	= pDrView->GetMarkedObjectList();
+
+	if ( rMarkList.GetMarkCount() == 1 && rReq.GetArgs() )
+	{
+		const SfxItemSet& rSet = *rReq.GetArgs();
+		const SfxPoolItem* pItem;
+
+		if ( pDrView->IsTextEdit() )
+			pDrView->ScEndTextEdit();
+
+		if (	SFX_ITEM_SET ==
+				rSet.GetItemState(XATTR_FORMTXTSTDFORM, TRUE, &pItem)
+			 && XFTFORM_NONE !=
+				((const XFormTextStdFormItem*) pItem)->GetValue() )
+		{
+
+			USHORT nId				= SvxFontWorkChildWindow::GetChildWindowId();
+			SfxViewFrame* pViewFrm	= pViewData->GetViewShell()->GetViewFrame();
+			SvxFontWorkDialog* pDlg	= (SvxFontWorkDialog*)
+									   (pViewFrm->
+											GetChildWindow(nId)->GetWindow());
+
+			pDlg->CreateStdFormObj(*pDrView, *pDrView->GetSdrPageView(),
+									rSet, *rMarkList.GetMark(0)->GetMarkedSdrObj(),
+								   ((const XFormTextStdFormItem*) pItem)->
+								   GetValue());
+		}
+		else
+			pDrView->SetAttributes(rSet);
+	}
+}
+
+void ScDrawTextObjectBar::GetFormTextState(SfxItemSet& rSet)
+=====================================================================
+Found a 31 line (194 tokens) duplication in the following files: 
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/chartarr.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/chartarr.cxx
+
+		{
+			for ( nRow = 0; nRow < nRowCount; nRow++, nIndex++ )
+			{
+				double nVal = DBL_MIN;		// Hack fuer Chart, um leere Zellen zu erkennen
+				const ScAddress* pPos = GetPositionMap()->GetPosition( nIndex );
+				if ( pPos )
+				{	// sonst: Luecke
+					ScBaseCell* pCell = pDocument->GetCell( *pPos );
+					if (pCell)
+					{
+						CellType eType = pCell->GetCellType();
+						if (eType == CELLTYPE_VALUE)
+						{
+							nVal = ((ScValueCell*)pCell)->GetValue();
+							if ( bCalcAsShown && nVal != 0.0 )
+							{
+								ULONG nFormat = pDocument->GetNumberFormat( *pPos );
+								nVal = pDocument->RoundValueAsShown( nVal, nFormat );
+							}
+						}
+						else if (eType == CELLTYPE_FORMULA)
+						{
+							ScFormulaCell* pFCell = (ScFormulaCell*)pCell;
+							if ( (pFCell->GetErrCode() == 0) && pFCell->IsValue() )
+								nVal = pFCell->GetValue();
+						}
+					}
+				}
+				pMemChart->SetData(static_cast<short>(nCol), static_cast<short>(nRow), nVal);
+			}
+		}
+=====================================================================
+Found a 53 line (194 tokens) duplication in the following files: 
+Starting at line 2079 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 754 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_NETBIOS );
+			::osl::SocketAddr saLocalSocketAddr;
+			
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1); // sal_True);
+			sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
+			sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.", 
+									( sal_False == bOK1 ) && ( sal_False == bOK2 ) );
+		}
+				
+		CPPUNIT_TEST_SUITE( bind );
+		CPPUNIT_TEST( bind_001 );
+		CPPUNIT_TEST( bind_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class bind
+
+
+	/** testing the methods:
+		inline sal_Bool	SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const;
+		
+	*/
+	class isRecvReady : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		TimeValue *pTimeout;
+		::osl::AcceptorSocket asAcceptorSocket;
+		::osl::ConnectorSocket csConnectorSocket;
+		
+		
+		// initialization
+		void setUp( )
+		{
+			pTimeout  = ( TimeValue* )malloc( sizeof( TimeValue ) );
+			pTimeout->Seconds = 3;
+			pTimeout->Nanosec = 0;
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			free( pTimeout );
+			sHandle = NULL;
+			asAcceptorSocket.close( );
+			csConnectorSocket.close( );
+		}
+
+	
+		void isRecvReady_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT1 );
+=====================================================================
+Found a 32 line (194 tokens) duplication in the following files: 
+Starting at line 2969 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 2125 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+	OSL_ENSURE( !m_pData->m_bReadOnlyWrap, "The storage can not be modified at all!\n" );
+
+   	lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >(this) );
+
+   	::cppu::OInterfaceContainerHelper* pContainer =
+			m_pData->m_aListenersContainer.getContainer(
+				::getCppuType( ( const uno::Reference< embed::XTransactionListener >*) NULL ) );
+   	if ( pContainer )
+	{
+       	::cppu::OInterfaceIteratorHelper pIterator( *pContainer );
+       	while ( pIterator.hasMoreElements( ) )
+       	{
+			OSL_ENSURE( nMessage >= 1 && nMessage <= 4, "Wrong internal notification code is used!\n" );
+
+			switch( nMessage )
+			{
+				case STOR_MESS_PRECOMMIT:
+           			( ( embed::XTransactionListener* )pIterator.next( ) )->preCommit( aSource );
+					break;
+				case STOR_MESS_COMMITED:
+           			( ( embed::XTransactionListener* )pIterator.next( ) )->commited( aSource );
+					break;
+				case STOR_MESS_PREREVERT:
+           			( ( embed::XTransactionListener* )pIterator.next( ) )->preRevert( aSource );
+					break;
+				case STOR_MESS_REVERTED:
+           			( ( embed::XTransactionListener* )pIterator.next( ) )->reverted( aSource );
+					break;
+			}
+       	}
+	}
+}
+=====================================================================
+Found a 25 line (194 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/cpp.h
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/cpp.h
+
+void tokenrow_zeroTokenIdentifiers(Tokenrow* trp);
+
+void expandlex(void);
+void fixlex(void);
+void setup(int, char **);
+int gettokens(Tokenrow *, int);
+int comparetokens(Tokenrow *, Tokenrow *);
+Source *setsource(char *, int, int, char *, int);
+void unsetsource(void);
+void puttokens(Tokenrow *);
+void process(Tokenrow *);
+void *domalloc(int);
+void dofree(void *);
+void error(enum errtype, char *,...);
+void flushout(void);
+int fillbuf(Source *);
+int trigraph(Source *);
+int foldline(Source *);
+Nlist *lookup(Token *, int);
+void control(Tokenrow *);
+void dodefine(Tokenrow *);
+void doadefine(Tokenrow *, int);
+void doinclude(Tokenrow *, int, int);
+void doif(Tokenrow *, enum kwtype);
+void expand(Tokenrow *, Nlist *, MacroValidatorList *);
+=====================================================================
+Found a 53 line (194 tokens) duplication in the following files: 
+Starting at line 2597 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/etiff/etiff.cxx
+
+	TIFFLZWCTreeNode*	 p;
+	USHORT				i;
+	BYTE				nV;
+
+	if( !pPrefix )
+	{
+		pPrefix = pTable + nCompThis;
+	}
+	else
+	{
+		nV = nCompThis;
+		for( p = pPrefix->pFirstChild; p != NULL; p = p->pBrother )
+		{
+			if ( p->nValue == nV )
+				break;
+		}
+
+		if( p )
+			pPrefix = p;
+		else
+		{
+			WriteBits( pPrefix->nCode, nCodeSize );
+
+			if ( nTableSize == 409 )
+			{
+				WriteBits( nClearCode, nCodeSize );
+
+				for ( i = 0; i < nClearCode; i++ )
+					pTable[ i ].pFirstChild = NULL;
+
+				nCodeSize = nDataSize + 1;
+				nTableSize = nEOICode + 1;
+			}
+			else
+			{
+				if( nTableSize == (USHORT)( ( 1 << nCodeSize ) - 1 ) )
+					nCodeSize++;
+
+				p = pTable + ( nTableSize++ );
+				p->pBrother = pPrefix->pFirstChild;
+				pPrefix->pFirstChild = p;
+				p->nValue = nV;
+				p->pFirstChild = NULL;
+			}
+
+			pPrefix = pTable + nV;
+		}
+	}
+}
+
+// ------------------------------------------------------------------------
+
+void TIFFWriter::EndCompression()
+=====================================================================
+Found a 18 line (194 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/dlgeos2.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/dlgepct.cxx
+
+				ModalDialog			( rPara.pWindow, ResId( DLG_EXPORT_EPCT, *rPara.pResMgr ) ),
+				rFltCallPara		( rPara ),
+				aBtnOK				( this, ResId( BTN_OK, *rPara.pResMgr ) ),
+				aBtnCancel			( this, ResId( BTN_CANCEL, *rPara.pResMgr ) ),
+				aBtnHelp			( this, ResId( BTN_HELP, *rPara.pResMgr ) ),
+				aRbOriginal			( this, ResId( RB_ORIGINAL, *rPara.pResMgr ) ),
+				aRbSize				( this, ResId( RB_SIZE, *rPara.pResMgr ) ),
+				aGrpMode			( this, ResId( GRP_MODE, *rPara.pResMgr ) ),
+				aFtSizeX			( this, ResId( FT_SIZEX, *rPara.pResMgr ) ),
+				aMtfSizeX			( this, ResId( MTF_SIZEX, *rPara.pResMgr ) ),
+				aFtSizeY			( this, ResId( FT_SIZEY, *rPara.pResMgr ) ),
+				aMtfSizeY			( this, ResId( MTF_SIZEY, *rPara.pResMgr ) ),
+				aGrpSize			( this, ResId( GRP_SIZE, *rPara.pResMgr ) ),
+				pMgr				( rPara.pResMgr )
+{
+	FreeResource();
+
+	String	aFilterConfigPath( RTL_CONSTASCII_USTRINGPARAM( "Office.Common/Filter/Graphic/Export/PCT" ) );
+=====================================================================
+Found a 40 line (194 tokens) duplication in the following files: 
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 788 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+	m_xWriteDocumentHandler( rDocumentHandler )
+{
+	m_xEmptyList = Reference< XAttributeList >( (XAttributeList *)new AttributeListImpl, UNO_QUERY );
+	m_aAttributeType = 	OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
+}
+
+
+OWriteMenuDocumentHandler::~OWriteMenuDocumentHandler()
+{
+}
+
+
+void OWriteMenuDocumentHandler::WriteMenuDocument()
+throw ( SAXException, RuntimeException )
+{
+	AttributeListImpl* pList = new AttributeListImpl;
+	Reference< XAttributeList > rList( (XAttributeList *) pList , UNO_QUERY );
+
+	m_xWriteDocumentHandler->startDocument();
+
+	// write DOCTYPE line!
+	Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
+	if ( xExtendedDocHandler.is() )
+	{
+		xExtendedDocHandler->unknown( OUString( RTL_CONSTASCII_USTRINGPARAM( MENUBAR_DOCTYPE )) );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	}
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_XMLNS_MENU )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_MENU )) );
+
+	pList->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_ID )),
+						 m_aAttributeType,
+						 OUString( RTL_CONSTASCII_USTRINGPARAM( "menubar" )) );
+
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUBAR )), pList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+
+	WriteMenu( m_xMenuBarContainer );
+=====================================================================
+Found a 39 line (194 tokens) duplication in the following files: 
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilterdetect/filterdetect.cxx
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/filterdetect.cxx
+
+                sTypeName = OUString::createFromAscii("devguide_FlatXMLType_Cpp_impress");                 
+        }
+    }
+    return sTypeName;
+}
+
+
+// XInitialization
+void SAL_CALL FilterDetect::initialize( const Sequence< Any >& aArguments ) 
+	throw (Exception, RuntimeException)
+{
+	Sequence < PropertyValue > aAnySeq;
+	sal_Int32 nLength = aArguments.getLength();
+	if ( nLength && ( aArguments[0] >>= aAnySeq ) )
+	{
+		const PropertyValue * pValue = aAnySeq.getConstArray();
+		nLength = aAnySeq.getLength();
+		for ( sal_Int32 i = 0 ; i < nLength; i++)
+		{		  
+			if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) )
+			{
+                pValue[i].Value >>= msFilterName;     
+			}
+			else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "UserData" ) ) )
+			{
+				pValue[i].Value >>= msUserData;
+			}
+			else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "TemplateName" ) ) )
+			{
+                pValue[i].Value>>=msTemplateName;
+			}
+		}
+	}
+}
+
+OUString FilterDetect_getImplementationName ()
+	throw (RuntimeException)
+{
+	return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "devguide.officedev.samples.filter.FlatXmlDetect" ) );
+=====================================================================
+Found a 36 line (194 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 972 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int64 >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+=====================================================================
+Found a 27 line (194 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTables.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTables.cxx
+
+	Reference< XConnection > xConnection = static_cast<OMySQLCatalog&>(m_rParent).getConnection();
+	::rtl::OUString aSql = ::dbtools::createSqlCreateTableStatement(descriptor,xConnection);
+
+    Reference< XStatement > xStmt = xConnection->createStatement(  );
+	if ( xStmt.is() )
+	{
+		xStmt->execute(aSql);
+		::comphelper::disposeComponent(xStmt);
+	}
+}
+// -----------------------------------------------------------------------------
+void OTables::appendNew(const ::rtl::OUString& _rsNewTable)
+{
+	insertElement(_rsNewTable,NULL);
+
+	// notify our container listeners
+	ContainerEvent aEvent(static_cast<XContainer*>(this), makeAny(_rsNewTable), Any(), Any());
+	OInterfaceIteratorHelper aListenerLoop(m_aContainerListeners);
+	while (aListenerLoop.hasMoreElements())
+		static_cast<XContainerListener*>(aListenerLoop.next())->elementInserted(aEvent);
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString OTables::getNameForObject(const sdbcx::ObjectType& _xObject)
+{
+    OSL_ENSURE(_xObject.is(),"OTables::getNameForObject: Object is NULL!");
+	return ::dbtools::composeTableName( m_xMetaData, _xObject, ::dbtools::eInDataManipulation, false, false, false );
+}
+=====================================================================
+Found a 49 line (194 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx
+
+	m_pConnection(_pConnection)
+{
+	m_pConnection->acquire();
+}
+// -----------------------------------------------------------------------------
+OStatement_Base::~OStatement_Base()
+{
+}
+//------------------------------------------------------------------------------
+void OStatement_Base::disposeResultSet()
+{
+	// free the cursor if alive
+	Reference< XComponent > xComp(m_xResultSet.get(), UNO_QUERY);
+	if (xComp.is())
+		xComp->dispose();
+	m_xResultSet = Reference< XResultSet>();
+}
+//------------------------------------------------------------------------------
+void OStatement_BASE2::disposing()
+{
+	::osl::MutexGuard aGuard(m_aMutex);
+
+	disposeResultSet();
+
+	if (m_pConnection)
+		m_pConnection->release();
+	m_pConnection = NULL;
+
+	dispose_ChildImpl();
+	OStatement_Base::disposing();
+}
+//-----------------------------------------------------------------------------
+void SAL_CALL OStatement_BASE2::release() throw()
+{
+	relase_ChildImpl();
+}
+//-----------------------------------------------------------------------------
+Any SAL_CALL OStatement_Base::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	Any aRet = OStatement_BASE::queryInterface(rType);
+	if(!aRet.hasValue())
+		aRet = OPropertySetHelper::queryInterface(rType);
+	return aRet;
+}
+// -------------------------------------------------------------------------
+Sequence< Type > SAL_CALL OStatement_Base::getTypes(  ) throw(RuntimeException)
+{
+	::cppu::OTypeCollection aTypes(
+        ::cppu::UnoType< Reference< XMultiPropertySet > >::get(),
+=====================================================================
+Found a 37 line (194 tokens) duplication in the following files: 
+Starting at line 741 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+	return ::rtl::OUString();
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper* ODatabaseMetaDataResultSet::createArrayHelper( ) const
+{
+
+	Sequence< com::sun::star::beans::Property > aProps(5);
+	com::sun::star::beans::Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,			::rtl::OUString);
+	DECL_PROP0(FETCHDIRECTION,		sal_Int32);
+	DECL_PROP0(FETCHSIZE,			sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,		sal_Int32);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & ODatabaseMetaDataResultSet::getInfoHelper()
+{
+	return *const_cast<ODatabaseMetaDataResultSet*>(this)->getArrayHelper();
+}
+// -------------------------------------------------------------------------
+sal_Bool ODatabaseMetaDataResultSet::convertFastPropertyValue(
+							Any & rConvertedValue,
+							Any & rOldValue,
+							sal_Int32 nHandle,
+							const Any& rValue )
+								throw (::com::sun::star::lang::IllegalArgumentException)
+{
+	switch(nHandle)
+	{
+		case PROPERTY_ID_CURSORNAME:
+		case PROPERTY_ID_RESULTSETCONCURRENCY:
+		case PROPERTY_ID_RESULTSETTYPE:
+			throw ::com::sun::star::lang::IllegalArgumentException();
+=====================================================================
+Found a 48 line (194 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 2749 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+		m_cunoTypeDynamic = sal_True;
+
+	OString outPath;
+	if (pOptions->isValid("-O"))
+		outPath = pOptions->getOption("-O");
+
+	OString tmpFileName;
+	OString hFileName = createFileNameFromType(outPath, m_typeName, ".h");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tmh");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+=====================================================================
+Found a 46 line (194 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+=====================================================================
+Found a 40 line (193 tokens) duplication in the following files: 
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 243 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                intr.local_scale(&rx, &ry);
+
+                rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+                ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+                if(rx < image_subpixel_size)
+                {
+                    rx = image_subpixel_size;
+                }
+                else
+                {
+                    if(rx > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        rx = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    rx_inv = image_subpixel_size * image_subpixel_size / rx;
+                }
+
+                if(ry < image_subpixel_size)
+                {
+                    ry = image_subpixel_size;
+                }
+                else
+                {
+                    if(ry > image_subpixel_size * base_type::m_scale_limit) 
+                    {
+                        ry = image_subpixel_size * base_type::m_scale_limit;
+                    }
+                    ry_inv = image_subpixel_size * image_subpixel_size / ry;
+                }
+
+                int radius_x = (diameter * rx) >> 1;
+                int radius_y = (diameter * ry) >> 1;
+                int maxx = base_type::source_image().width() - 1;
+                int maxy = base_type::source_image().height() - 1;
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 33 line (193 tokens) duplication in the following files: 
+Starting at line 493 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_base.h
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_base.h
+
+        void blend_from(const SrcPixelFormatRenderer& src, 
+                       const rect* rect_src_ptr = 0, 
+                       int dx = 0, 
+                       int dy = 0)
+        {
+            rect rsrc(0, 0, src.width(), src.height());
+            if(rect_src_ptr)
+            {
+                rsrc.x1 = rect_src_ptr->x1; 
+                rsrc.y1 = rect_src_ptr->y1;
+                rsrc.x2 = rect_src_ptr->x2 + 1;
+                rsrc.y2 = rect_src_ptr->y2 + 1;
+            }
+
+            // Version with xdst, ydst (absolute positioning)
+            //rect rdst(xdst, ydst, xdst + rsrc.x2 - rsrc.x1, ydst + rsrc.y2 - rsrc.y1);
+
+            // Version with dx, dy (relative positioning)
+            rect rdst(rsrc.x1 + dx, rsrc.y1 + dy, rsrc.x2 + dx, rsrc.y2 + dy);
+
+            rect rc = clip_rect_area(rdst, rsrc, src.width(), src.height());
+
+            if(rc.x2 > 0)
+            {
+                int incy = 1;
+                if(rdst.y1 > rsrc.y1)
+                {
+                    rsrc.y1 += rc.y2 - 1;
+                    rdst.y1 += rc.y2 - 1;
+                    incy = -1;
+                }
+                while(rc.y2 > 0)
+                {
+=====================================================================
+Found a 13 line (193 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/base14.cxx
+
+    600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
+    600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+    600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+    600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+    600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+    600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+    600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+    600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+    600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+    600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+    600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+    600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+    600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+=====================================================================
+Found a 25 line (193 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/uiregionsw.cxx
+Starting at line 1637 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/uiregionsw.cxx
+
+    aCurName            ( this, SW_RES( ED_RNAME ) ),
+    aLinkFL             ( this, SW_RES( FL_LINK ) ),
+    aFileCB             ( this, SW_RES( CB_FILE ) ),
+#ifdef DDE_AVAILABLE
+	aDDECB              ( this, SW_RES( CB_DDE ) ) ,
+	aDDECommandFT       ( this, SW_RES( FT_DDE ) ) ,
+#endif
+    aFileNameFT         ( this, SW_RES( FT_FILE ) ) ,
+	aFileNameED         ( this, SW_RES( ED_FILE ) ),
+    aFilePB             ( this, SW_RES( PB_FILE ) ),
+    aSubRegionFT        ( this, SW_RES( FT_SUBREG ) ) ,
+	aSubRegionED        ( this, SW_RES( LB_SUBREG ) ) ,
+
+    aProtectFL          ( this, SW_RES( FL_PROTECT ) ),
+    aProtectCB          ( this, SW_RES( CB_PROTECT ) ),
+    aPasswdCB           ( this, SW_RES( CB_PASSWD ) ),
+    aPasswdPB           ( this, SW_RES( PB_PASSWD ) ),
+
+    aHideFL             ( this, SW_RES( FL_HIDE ) ),
+    aHideCB             ( this, SW_RES( CB_HIDE ) ),
+    aConditionFT             ( this, SW_RES( FT_CONDITION ) ),
+    aConditionED        ( this, SW_RES( ED_CONDITION ) ),
+    // --> FME 2004-06-22 #114856# edit in readonly sections
+    aPropertiesFL       ( this, SW_RES( FL_PROPERTIES ) ),
+    aEditInReadonlyCB   ( this, SW_RES( CB_EDIT_IN_READONLY ) ),
+=====================================================================
+Found a 26 line (193 tokens) duplication in the following files: 
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape3d.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape3d.cxx
+
+			p3DObj->NbcSetLayer( pObj->GetLayer() );
+			p3DObj->SetMergedItemSet( aSet );
+			if ( bIsPlaceholderObject )
+				aPlaceholderObjectList.push_back( p3DObj );
+			else if ( bUseTwoFillStyles )
+			{			
+				Bitmap aFillBmp;
+				sal_Bool bFillBmpTile = ((XFillBmpTileItem&)p3DObj->GetMergedItem( XATTR_FILLBMP_TILE )).GetValue();
+				if ( bFillBmpTile )
+				{
+					const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem( XATTR_FILLBITMAP );
+					const XOBitmap& rXOBmp = rBmpItm.GetBitmapValue();
+					aFillBmp = rXOBmp.GetBitmap();
+					Size aLogicalSize = aFillBmp.GetPrefSize();
+					if ( aFillBmp.GetPrefMapMode() == MAP_PIXEL )
+						aLogicalSize = Application::GetDefaultDevice()->PixelToLogic( aLogicalSize, MAP_100TH_MM ); 
+					else
+						aLogicalSize = OutputDevice::LogicToLogic( aLogicalSize, aFillBmp.GetPrefMapMode(), MAP_100TH_MM );
+					aLogicalSize.Width()  *= 5;			;//				:-(		nice scaling, look at engine3d/obj3d.cxx
+					aLogicalSize.Height() *= 5;
+					aFillBmp.SetPrefSize( aLogicalSize );
+					aFillBmp.SetPrefMapMode( MAP_100TH_MM );
+					p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) );
+				}
+				else
+				{
+=====================================================================
+Found a 11 line (193 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN("HeaderText"),					WID_PAGE_HEADERTEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("IsBackgroundDark" ),			WID_PAGE_ISDARK,	&::getBooleanCppuType(),						beans::PropertyAttribute::READONLY, 0},
+		{ MAP_CHAR_LEN("IsFooterVisible"),				WID_PAGE_FOOTERVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("FooterText"),					WID_PAGE_FOOTERTEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("IsPageNumberVisible"),			WID_PAGE_PAGENUMBERVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("IsDateTimeVisible"),			WID_PAGE_DATETIMEVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("IsDateTimeFixed"),				WID_PAGE_DATETIMEFIXED, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("DateTimeText"),					WID_PAGE_DATETIMETEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("DateTimeFormat"),				WID_PAGE_DATETIMEFORMAT, &::getCppuType((const sal_Int32*)0),			0,	0},
+
+		{0,0,0,0,0,0}
+=====================================================================
+Found a 33 line (193 tokens) duplication in the following files: 
+Starting at line 3081 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 3181 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+							double fStart, double fStep, double fMax,
+							BOOL bRecord, BOOL bApi )
+{
+	ScDocShellModificator aModificator( rDocShell );
+
+	BOOL bSuccess = FALSE;
+	ScDocument* pDoc = rDocShell.GetDocument();
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCTAB nStartTab = rRange.aStart.Tab();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nEndTab = rRange.aEnd.Tab();
+
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+
+	ScMarkData aMark;
+	if (pTabMark)
+		aMark = *pTabMark;
+	else
+	{
+		for (SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++)
+			aMark.SelectTable( nTab, TRUE );
+	}
+
+	ScEditableTester aTester( pDoc, nStartCol,nStartRow, nEndCol,nEndRow, aMark );
+	if ( aTester.IsEditable() )
+	{
+		WaitObject aWait( rDocShell.GetActiveDialogParent() );
+
+		ScRange aSourceArea = rRange;
+		ScRange aDestArea   = rRange;
+=====================================================================
+Found a 44 line (193 tokens) duplication in the following files: 
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+
+    char *pLeap = pBuffer;
+
+    while( *pRun )
+    {
+        if( *pRun && isSpace( *pRun ) )
+        {
+            *pLeap = ' ';
+            pLeap++;
+            pRun++;
+        }
+        while( *pRun && isSpace( *pRun ) )
+            pRun++;
+        while( *pRun && ! isSpace( *pRun ) )
+        {
+            if( *pRun == '\\' )
+            {
+                // escapement
+                pRun++;
+                *pLeap = *pRun;
+                pLeap++;
+                if( *pRun )
+                    pRun++;
+            }
+            else if( bProtect && *pRun == '`' )
+                CopyUntil( pLeap, pRun, '`', TRUE );
+            else if( bProtect && *pRun == '\'' )
+                CopyUntil( pLeap, pRun, '\'', TRUE );
+            else if( bProtect && *pRun == '"' )
+                CopyUntil( pLeap, pRun, '"', TRUE );
+            else
+            {
+                *pLeap = *pRun;
+                *pLeap++;
+                *pRun++;
+            }
+        }
+    }
+
+    *pLeap = 0;
+
+    // there might be a space at beginning or end
+    pLeap--;
+    if( *pLeap == ' ' )
+        *pLeap = 0;
+=====================================================================
+Found a 25 line (193 tokens) duplication in the following files: 
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3850 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xff, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xd7 },
+=====================================================================
+Found a 7 line (193 tokens) duplication in the following files: 
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1426 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 7 line (193 tokens) duplication in the following files: 
+Starting at line 1315 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1383 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25a0 - 25af
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25b0 - 25bf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25c0 - 25cf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25d0 - 25df
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25e0 - 25ef
+    10,10,10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0,// 25f0 - 25ff
+=====================================================================
+Found a 7 line (193 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 988 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0250 - 025f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0260 - 026f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0270 - 027f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0290 - 029f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 02a0 - 02af
+     0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0,// 02b0 - 02bf
+=====================================================================
+Found a 7 line (193 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+=====================================================================
+Found a 5 line (193 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0020 - 0027
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0028 - 002f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0030 - 0037
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0038 - 003f
+    {0x00, 0x0000}, {0x6a, 0x0061}, {0x6a, 0x0062}, {0x6a, 0x0063}, {0x6a, 0x0064}, {0x6a, 0x0065}, {0x6a, 0x0066}, {0x6a, 0x0067}, // 0040 - 0047
+=====================================================================
+Found a 42 line (193 tokens) duplication in the following files: 
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/canvastools.cxx
+Starting at line 1267 of /local/ooo-build/ooo-build/src/oog680-m3/basebmp/source/bitmapdevice.cxx
+
+    bool clipAreaImpl( ::basegfx::B2IRange&       io_rSourceArea,
+                       ::basegfx::B2IPoint&       io_rDestPoint,
+                       const ::basegfx::B2IRange& rSourceBounds,
+                       const ::basegfx::B2IRange& rDestBounds )
+    {
+        const ::basegfx::B2IPoint aSourceTopLeft( 
+            io_rSourceArea.getMinimum() );
+
+        ::basegfx::B2IRange aLocalSourceArea( io_rSourceArea );
+
+        // clip source area (which must be inside rSourceBounds)
+        aLocalSourceArea.intersect( rSourceBounds );
+
+        if( aLocalSourceArea.isEmpty() )
+            return false;
+            
+        // calc relative new source area points (relative to orig
+        // source area)
+        const ::basegfx::B2IVector aUpperLeftOffset( 
+            aLocalSourceArea.getMinimum()-aSourceTopLeft );
+        const ::basegfx::B2IVector aLowerRightOffset( 
+            aLocalSourceArea.getMaximum()-aSourceTopLeft );
+
+        ::basegfx::B2IRange aLocalDestArea( io_rDestPoint + aUpperLeftOffset,
+                                            io_rDestPoint + aLowerRightOffset );
+            
+        // clip dest area (which must be inside rDestBounds)
+        aLocalDestArea.intersect( rDestBounds );
+            
+        if( aLocalDestArea.isEmpty() )
+            return false;
+
+        // calc relative new dest area points (relative to orig
+        // source area)
+        const ::basegfx::B2IVector aDestUpperLeftOffset( 
+            aLocalDestArea.getMinimum()-io_rDestPoint );
+        const ::basegfx::B2IVector aDestLowerRightOffset( 
+            aLocalDestArea.getMaximum()-io_rDestPoint );
+
+        io_rSourceArea = ::basegfx::B2IRange( aSourceTopLeft + aDestUpperLeftOffset,
+                                              aSourceTopLeft + aDestLowerRightOffset );
+        io_rDestPoint  = aLocalDestArea.getMinimum();
+=====================================================================
+Found a 50 line (193 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+=====================================================================
+Found a 35 line (192 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + x_lr * 3;
+                        do
+                        {
+                            int weight = (weight_y * weight_array[x_hr] + 
+                                         image_filter_size / 2) >> 
+                                         downscale_shift;
+
+                            if(x_lr >= 0 && x_lr <= maxx)
+                            {
+                                fg[0] += fg_ptr[0] * weight;
+                                fg[1] += fg_ptr[1] * weight;
+                                fg[2] += fg_ptr[2] * weight;
+                                fg[3] += base_mask * weight;
+                            }
+                            else
+                            {
+                                fg[order_type::R] += back_r * weight;
+                                fg[order_type::G] += back_g * weight;
+                                fg[order_type::B] += back_b * weight;
+                                fg[3]             += back_a * weight;
+                            }
+                            total_weight += weight;
+                            fg_ptr += 3;
+                            x_hr   += rx_inv;
+=====================================================================
+Found a 32 line (192 tokens) duplication in the following files: 
+Starting at line 682 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+Starting at line 1042 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+
+            m_di(lp.x1, lp.y1, lp.x2, lp.y2, sx, sy, ex, ey, 
+                 lp.x1 & ~line_subpixel_mask, lp.y1 & ~line_subpixel_mask)
+        {
+            int dist1_start;
+            int dist2_start;
+            int npix = 1;
+            if(lp.vertical)
+            {
+                do
+                {
+                    --base_type::m_li;
+                    base_type::m_y -= lp.inc;
+                    base_type::m_x = (base_type::m_lp->x1 + base_type::m_li.y()) >> line_subpixel_shift;
+
+                    if(lp.inc > 0) m_di.dec_y(base_type::m_x - base_type::m_old_x);
+                    else           m_di.inc_y(base_type::m_x - base_type::m_old_x);
+
+                    base_type::m_old_x = base_type::m_x;
+
+                    dist1_start = dist2_start = m_di.dist_start(); 
+
+                    int dx = 0;
+                    if(dist1_start < 0) ++npix;
+                    do
+                    {
+                        dist1_start += m_di.dy_start();
+                        dist2_start -= m_di.dy_start();
+                        if(dist1_start < 0) ++npix;
+                        if(dist2_start < 0) ++npix;
+                        ++dx;
+                    }
+                    while(base_type::m_dist[dx] <= base_type::m_width);
+=====================================================================
+Found a 35 line (192 tokens) duplication in the following files: 
+Starting at line 2740 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtflde.cxx
+Starting at line 3577 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtfldi.cxx
+
+}
+
+// TODO: this is the same map as is used in the text field export
+SvXMLEnumMapEntry __READONLY_DATA aBibliographyDataTypeMap[] =
+{
+	{ XML_ARTICLE,			BibliographyDataType::ARTICLE },
+	{ XML_BOOK,			    BibliographyDataType::BOOK },
+	{ XML_BOOKLET,			BibliographyDataType::BOOKLET },
+	{ XML_CONFERENCE,		BibliographyDataType::CONFERENCE },
+	{ XML_CUSTOM1,			BibliographyDataType::CUSTOM1 },
+	{ XML_CUSTOM2,			BibliographyDataType::CUSTOM2 },
+	{ XML_CUSTOM3,			BibliographyDataType::CUSTOM3 },
+	{ XML_CUSTOM4,			BibliographyDataType::CUSTOM4 },
+	{ XML_CUSTOM5,			BibliographyDataType::CUSTOM5 },
+	{ XML_EMAIL,			BibliographyDataType::EMAIL },
+	{ XML_INBOOK,			BibliographyDataType::INBOOK },
+	{ XML_INCOLLECTION,	    BibliographyDataType::INCOLLECTION },
+	{ XML_INPROCEEDINGS,	BibliographyDataType::INPROCEEDINGS },
+	{ XML_JOURNAL,			BibliographyDataType::JOURNAL },
+	{ XML_MANUAL,			BibliographyDataType::MANUAL },
+	{ XML_MASTERSTHESIS,	BibliographyDataType::MASTERSTHESIS },
+	{ XML_MISC,			    BibliographyDataType::MISC },
+	{ XML_PHDTHESIS,		BibliographyDataType::PHDTHESIS },
+	{ XML_PROCEEDINGS,		BibliographyDataType::PROCEEDINGS },
+	{ XML_TECHREPORT,		BibliographyDataType::TECHREPORT },
+	{ XML_UNPUBLISHED,		BibliographyDataType::UNPUBLISHED },
+	{ XML_WWW,				BibliographyDataType::WWW },
+	{ XML_TOKEN_INVALID, 0 }
+};
+
+
+// we'll process attributes on our own and forfit the standard
+// tecfield mechanism, because our attributes have zero overlp with
+// all the oher textfields.
+void XMLBibliographyFieldImportContext::StartElement(
+=====================================================================
+Found a 36 line (192 tokens) duplication in the following files: 
+Starting at line 529 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/spinbtn.cxx
+Starting at line 915 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/spinfld.cxx
+
+long SpinField::PreNotify( NotifyEvent& rNEvt )
+{
+    long nDone = 0;
+    const MouseEvent* pMouseEvt = NULL;
+
+    if( (rNEvt.GetType() == EVENT_MOUSEMOVE) && (pMouseEvt = rNEvt.GetMouseEvent()) != NULL )
+    {
+        if( !pMouseEvt->GetButtons() && !pMouseEvt->IsSynthetic() && !pMouseEvt->IsModifierChanged() )
+        {
+            // trigger redraw if mouse over state has changed
+            if( IsNativeControlSupported(CTRL_SPINBOX, PART_ENTIRE_CONTROL) ||
+                IsNativeControlSupported(CTRL_SPINBOX, PART_ALL_BUTTONS) )
+            {
+                Rectangle* pRect = ImplFindPartRect( GetPointerPosPixel() );
+                Rectangle* pLastRect = ImplFindPartRect( GetLastPointerPosPixel() );
+                if( pRect != pLastRect || (pMouseEvt->IsLeaveWindow() || pMouseEvt->IsEnterWindow()) )
+                {
+                    Region aRgn( GetActiveClipRegion() );
+                    if( pLastRect )
+                    {
+                        SetClipRegion( *pLastRect );
+                        Paint( *pLastRect );
+                        SetClipRegion( aRgn );
+                    }
+                    if( pRect )
+                    {
+                        SetClipRegion( *pRect );
+                        Paint( *pRect );
+                        SetClipRegion( aRgn );
+                    }
+                }
+            }
+        }
+    }
+
+    return nDone ? nDone : Edit::PreNotify(rNEvt);
+=====================================================================
+Found a 55 line (192 tokens) duplication in the following files: 
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+        {
+            //=================================================================
+            //
+            // Root Folder: Supported commands
+            //
+            //=================================================================
+
+            static const ucb::CommandInfo aRootFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::TransferInfo * >( 0 ) )
+                ),
+=====================================================================
+Found a 38 line (192 tokens) duplication in the following files: 
+Starting at line 1242 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1167 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+    rtl::OUString aNewTitle;
+    sal_Int32 nTitlePos = -1;
+
+	for ( sal_Int32 n = 0; n < nCount; ++n )
+	{
+        const beans::PropertyValue& rValue = pValues[ n ];
+
+        if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+		{
+            if ( m_aUri.isRootFolder() )
+=====================================================================
+Found a 16 line (192 tokens) duplication in the following files: 
+Starting at line 3687 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 3703 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x10
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x11
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x12
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x13
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x14
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x15
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x16
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x17
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x18
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x19
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x1A
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x1B
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x1C
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x1D
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x1E
+		INetMIMEEncodedWordOutputSink::CONTEXT_TEXT | INetMIMEEncodedWordOutputSink::CONTEXT_COMMENT | INetMIMEEncodedWordOutputSink::CONTEXT_PHRASE,   // 0x1F
+=====================================================================
+Found a 32 line (192 tokens) duplication in the following files: 
+Starting at line 2726 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/untbl.cxx
+Starting at line 2809 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/untbl.cxx
+
+		}
+		pEntry->pUndo = pUndo;
+        // b62341295: Redline for copying tables - End.
+
+		aInsIdx = rBox.GetSttIdx() + 1;
+		rDoc.GetNodes().Delete( aInsIdx, 1 );
+
+		SfxItemSet aTmpSet( rDoc.GetAttrPool(), RES_BOXATR_FORMAT, RES_BOXATR_VALUE,
+												RES_VERT_ORIENT, RES_VERT_ORIENT, 0 );
+		aTmpSet.Put( rBox.GetFrmFmt()->GetAttrSet() );
+		if( aTmpSet.Count() )
+		{
+			SwFrmFmt* pBoxFmt = rBox.ClaimFrmFmt();
+			pBoxFmt->ResetAttr( RES_BOXATR_FORMAT, RES_BOXATR_VALUE );
+			pBoxFmt->ResetAttr( RES_VERT_ORIENT );
+		}
+		if( pEntry->pBoxNumAttr )
+		{
+			rBox.ClaimFrmFmt()->SetAttr( *pEntry->pBoxNumAttr );
+			delete pEntry->pBoxNumAttr, pEntry->pBoxNumAttr = 0;
+		}
+
+		if( aTmpSet.Count() )
+		{
+			pEntry->pBoxNumAttr = new SfxItemSet( rDoc.GetAttrPool(),
+									RES_BOXATR_FORMAT, RES_BOXATR_VALUE,
+									RES_VERT_ORIENT, RES_VERT_ORIENT, 0 );
+			pEntry->pBoxNumAttr->Put( aTmpSet );
+		}
+
+		pEntry->nOffset = rBox.GetSttIdx() - pEntry->nBoxIdx;
+	}
+=====================================================================
+Found a 35 line (192 tokens) duplication in the following files: 
+Starting at line 800 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx
+Starting at line 1420 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/slidvish.cxx
+
+	Size aPageSize(pSlideView->GetPageArea(0).GetSize());
+
+	Rectangle aRect(rZoomRect);
+
+	if (aRect.GetWidth()  < aPageSize.Width())
+	{
+		long nWidthDiff  = (aPageSize.Width() - aRect.GetWidth()) / 2;
+
+		aRect.Left() -= nWidthDiff;
+		aRect.Right() += nWidthDiff;
+
+		if (aRect.Left() < 0)
+		{
+			aRect.SetPos(Point(0, aRect.Top()));
+		}
+	}
+
+	if (aRect.GetHeight()  < aPageSize.Height())
+	{
+		long nHeightDiff  = (aPageSize.Height() - aRect.GetHeight()) / 2;
+
+		aRect.Top() -= nHeightDiff;
+		aRect.Bottom() += nHeightDiff;
+
+		if (aRect.Top() < 0)
+		{
+			aRect.SetPos(Point(aRect.Left(), 0));
+		}
+	}
+
+	ViewShell::SetZoomRect(aRect);
+
+	// #106268#
+	GetViewFrame()->GetBindings().Invalidate( SID_ATTR_ZOOM );
+}
+=====================================================================
+Found a 12 line (192 tokens) duplication in the following files: 
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/textenc.cxx
+
+    = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
+        0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+        0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
+        0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+        0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
+        0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+        0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
+        0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+        0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
+        0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+        0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
+        0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF };
+=====================================================================
+Found a 64 line (192 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_StreamSocket.cxx
+
+                t_print("# error: client thread not terminated.\n" );
+        }
+
+};
+
+// -----------------------------------------------------------------------------
+// Helper functions, to create buffers, check buffers
+class ValueCheckProvider
+{
+    bool m_bFoundFailure;
+    char *m_pBuffer;
+    sal_Int32 m_nBufferSize;
+  
+public:
+    ValueCheckProvider()
+            :m_bFoundFailure(false),
+             m_pBuffer(NULL),
+             m_nBufferSize(0)
+        {
+        }
+    
+    bool       isFailure() {return m_bFoundFailure;}
+
+    const char* getBuffer() {return m_pBuffer;}
+    char*       getWriteBuffer() {return m_pBuffer;}
+    
+    sal_Int32   getBufferSize() {return m_nBufferSize;}
+
+    bool checkValues(sal_Int32 _nLength, int _nValue)
+        {
+            m_bFoundFailure = false;
+            for(sal_Int32 i=0;i<_nLength;i++)
+            {
+                if (m_pBuffer[i] != _nValue)
+                {
+                    m_bFoundFailure = true;
+                }
+            }
+            return m_bFoundFailure;
+        }
+
+    void createBuffer(sal_Int32 _nLength, int _nValue)
+        {
+            m_nBufferSize = _nLength;
+            m_pBuffer = (char*) malloc(m_nBufferSize);
+            if (m_pBuffer)
+            {
+                memset(m_pBuffer, _nValue, m_nBufferSize);
+            }
+        }
+
+    void freeBuffer()
+        {
+            if (m_pBuffer) free(m_pBuffer);
+        }
+
+};
+
+// -----------------------------------------------------------------------------
+/** Client Socket Thread, served as a temp little client to communicate with server.
+ */
+
+class ReadSocketThread : public Thread
+{
+=====================================================================
+Found a 47 line (192 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+Starting at line 942 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+
+RegError ORegKey::getUnicodeListValue(const OUString& valueName, sal_Unicode*** pValueList, sal_uInt32* pLen) const
+{
+    OStoreStream    rValue;
+    sal_uInt8*      pBuffer;
+    RegValueType    valueType;
+    sal_uInt32      valueSize;
+    storeAccessMode accessMode = VALUE_MODE_OPEN;
+
+    if (m_pRegistry->isReadOnly())
+    {
+        accessMode = VALUE_MODE_OPENREAD;
+    }
+
+    OUString sImplValueName( RTL_CONSTASCII_USTRINGPARAM(VALUE_PREFIX) );
+    sImplValueName += valueName;
+
+    REG_GUARD(m_pRegistry->m_mutex);
+
+    if ( rValue.create(m_storeFile, m_name + m_pRegistry->ROOT, sImplValueName, accessMode) )
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        return REG_VALUE_NOT_EXISTS;
+    }
+
+    pBuffer = (sal_uInt8*)rtl_allocateMemory(VALUE_HEADERSIZE);
+
+    sal_uInt32  readBytes;
+    if ( rValue.readAt(0, pBuffer, VALUE_HEADERSIZE, readBytes) )
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+    if (readBytes != VALUE_HEADERSIZE)
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+
+    sal_uInt8   type = *((sal_uInt8*)pBuffer);
+    valueType = (RegValueType)type;
+
+    if (valueType != RG_VALUETYPE_UNICODELIST)
+=====================================================================
+Found a 10 line (192 tokens) duplication in the following files: 
+Starting at line 590 of /local/ooo-build/ooo-build/src/oog680-m3/padmin/source/padialog.cxx
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svptest.cxx
+
+		DrawLine( project( aP1 ) + aCenter,
+                  project( aP2 ) + aCenter,
+                  aLineInfo );
+		aPoint.X() = (int)((((double)aP1.X())*cosd - ((double)aP1.Y())*sind)*factor);
+		aPoint.Y() = (int)((((double)aP1.Y())*cosd + ((double)aP1.X())*sind)*factor);
+		aP1 = aPoint;
+		aPoint.X() = (int)((((double)aP2.X())*cosd - ((double)aP2.Y())*sind)*factor);
+		aPoint.Y() = (int)((((double)aP2.Y())*cosd + ((double)aP2.X())*sind)*factor);
+		aP2 = aPoint;
+	}
+=====================================================================
+Found a 58 line (192 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/UnoRegister.cxx
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/cacher/cacheserv.cxx
+
+using namespace com::sun::star::registry;
+
+//=========================================================================
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const OUString & rImplementationName,
+   						   Sequence< OUString > const & rServiceNames )
+{
+	OUString aKeyName( OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
+
+	Reference< XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
+{
+	return pRegistryKey &&
+
+	//////////////////////////////////////////////////////////////////////
+	// CachedContentResultSetFactory.
+	//////////////////////////////////////////////////////////////////////
+
+	writeInfo( pRegistryKey,
+=====================================================================
+Found a 7 line (192 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x307F, 0x3080, 0x3081, 0x3082, 0x3084, 0x3086, 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308F, 0x3093, 0xFF9E, 0xFF9F,  // FF90
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFA0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFB0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFC0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFD0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FFE0
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000   // FFF0
+=====================================================================
+Found a 29 line (192 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/headermenucontroller.cxx
+
+            const rtl::OUString aHeaderIsOnStr( RTL_CONSTASCII_USTRINGPARAM( "HeaderIsOn" ));
+
+            Reference< XNameContainer > xNameContainer;
+            Any a = xStyleFamilies->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageStyles" )));
+            if ( a >>= xNameContainer )
+            {
+                Sequence< rtl::OUString > aSeqNames = xNameContainer->getElementNames();
+
+                USHORT   nId = 2;
+                USHORT  nCount = 0;
+                sal_Bool bAllOneState( sal_True );
+                sal_Bool bLastCheck( sal_True );
+                sal_Bool bFirstChecked( sal_False );
+                sal_Bool bFirstItemInserted( sal_False );
+                for ( sal_Int32 n = 0; n < aSeqNames.getLength(); n++ )
+                {
+                    rtl::OUString aName = aSeqNames[n];
+                    Reference< XPropertySet > xPropSet( xNameContainer->getByName( aName ), UNO_QUERY );
+                    if ( xPropSet.is() )
+                    {
+                        sal_Bool bIsPhysical( sal_False );
+                        a = xPropSet->getPropertyValue( aIsPhysicalStr );
+                        if (( a >>= bIsPhysical ) && bIsPhysical )
+                        {
+                            rtl::OUString aDisplayName;
+                            sal_Bool      bHeaderIsOn( sal_False );
+                            a = xPropSet->getPropertyValue( aDisplayNameStr );
+                            a >>= aDisplayName;
+                            a = xPropSet->getPropertyValue( aHeaderIsOnStr );
+=====================================================================
+Found a 32 line (192 tokens) duplication in the following files: 
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1502 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::storeToStorage( const uno::Reference< XStorage >& Storage ) 
+throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aGuard( m_aLock );
+
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( m_bModified && Storage.is() )
+    {
+        long nModes = ElementModes::READWRITE;
+
+        uno::Reference< XStorage > xUserImageStorage = Storage->openStorageElement( OUString::createFromAscii( IMAGE_FOLDER ), 
+                                                                                    nModes );
+        if ( xUserImageStorage.is() )
+        {
+            uno::Reference< XStorage > xUserBitmapsStorage = xUserImageStorage->openStorageElement( OUString::createFromAscii( BITMAPS_FOLDER ),
+                                                                                                    nModes );
+            for ( sal_Int32 i = 0; i < ImageType_COUNT; i++ )
+            {
+                implts_getUserImageList( (ImageType)i );
+                implts_storeUserImages( (ImageType)i, xUserImageStorage, xUserBitmapsStorage );
+            }
+        
+            uno::Reference< XTransactedObject > xTransaction( Storage, UNO_QUERY );
+			if ( xTransaction.is() )
+            	xTransaction->commit();
+        }
+    }
+}
+
+sal_Bool SAL_CALL ModuleImageManager::isModified() 
+=====================================================================
+Found a 24 line (192 tokens) duplication in the following files: 
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/dockingareadefaultacceptor.cxx
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/dockingareadefaultacceptor.cxx
+
+void SAL_CALL DockingAreaDefaultAcceptor::setDockingAreaSpace( const css::awt::Rectangle& BorderSpace ) throw (css::uno::RuntimeException)
+{
+	// Ready for multithreading
+	ResetableGuard aGuard( m_aLock );
+
+	// Try to "lock" the frame for access to taskscontainer.
+	Reference< XFrame > xFrame( m_xOwner.get(), UNO_QUERY );
+	if ( xFrame.is() == sal_True )
+	{
+        Reference< css::awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
+        Reference< css::awt::XWindow > xComponentWindow( xFrame->getComponentWindow() );
+
+        if (( xContainerWindow.is() == sal_True ) &&
+            ( xComponentWindow.is() == sal_True )       )
+        {
+            css::uno::Reference< css::awt::XDevice > xDevice( xContainerWindow, css::uno::UNO_QUERY );
+            // Convert relativ size to output size.
+            css::awt::Rectangle  aRectangle  = xContainerWindow->getPosSize();
+            css::awt::DeviceInfo aInfo       = xDevice->getInfo();
+            css::awt::Size       aSize       (  aRectangle.Width  - aInfo.LeftInset - aInfo.RightInset  ,
+                                                aRectangle.Height - aInfo.TopInset  - aInfo.BottomInset );
+            // client size of container window
+//            css::uno::Reference< css::awt::XLayoutConstrains > xLayoutContrains( xComponentWindow, css::uno::UNO_QUERY );
+            css::awt::Size aMinSize( 0, 0 );// = xLayoutContrains->getMinimumSize();
+=====================================================================
+Found a 27 line (192 tokens) duplication in the following files: 
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUser.cxx
+
+void SAL_CALL OMySQLUser::grantPrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(SQLException, RuntimeException)
+{
+    if ( objType != PrivilegeObject::TABLE )
+        ::dbtools::throwSQLException( "Privilege not granted: Only table privileges can be granted", "01007", *this );
+
+	::osl::MutexGuard aGuard(m_aMutex);
+
+	::rtl::OUString sPrivs = getPrivilegeString(objPrivileges);
+	if(sPrivs.getLength())
+	{
+		::rtl::OUString sGrant;
+		sGrant += ::rtl::OUString::createFromAscii("GRANT ");
+		sGrant += sPrivs;
+		sGrant += ::rtl::OUString::createFromAscii(" ON ");
+		Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+		sGrant += ::dbtools::quoteTableName(xMeta,objName,::dbtools::eInDataManipulation);
+		sGrant += ::rtl::OUString::createFromAscii(" TO ");
+		sGrant += m_Name;
+		
+		Reference<XStatement> xStmt = m_xConnection->createStatement();
+		if(xStmt.is())
+			xStmt->execute(sGrant);
+		::comphelper::disposeComponent(xStmt);
+	}
+}
+// -------------------------------------------------------------------------
+void SAL_CALL OMySQLUser::revokePrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 43 line (192 tokens) duplication in the following files: 
+Starting at line 483 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 678 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceAttributeTypeDescription * >(
+                        member)->pAttributeTypeRef));
+
+            // Setter:
+            if (!reinterpret_cast<
+                typelib_InterfaceAttributeTypeDescription * >(
+                    member)->bReadOnly)
+            {
+                *slots++ = code;
+                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+            }
+            break;
+
+        case typelib_TypeClass_INTERFACE_METHOD:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                bridges::cpp_uno::shared::isSimpleType(
+                    reinterpret_cast<
+                    typelib_InterfaceMethodTypeDescription * >(
+                        member)->pReturnTypeRef));
+            break;
+
+        default:
+            OSL_ASSERT(false);
+            break;
+        }
+        TYPELIB_DANGER_RELEASE(member);
+    }
+    return code;
+}
+=====================================================================
+Found a 7 line (191 tokens) duplication in the following files: 
+Starting at line 4307 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6449 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        12, 4, 32, 128-32,
+        0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4E,0x00,0x5B,0x00,0x68,0x00,
+        0x75,0x00,0x82,0x00,0x8F,0x00,0x9C,0x00,0xA9,0x00,0xB6,0x00,0xC3,0x00,0xD0,0x00,0xDD,0x00,
+        0xEA,0x00,0xF7,0x00,0x04,0x01,0x11,0x01,0x1E,0x01,0x2B,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+        0x5F,0x01,0x6C,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xA0,0x01,0xAD,0x01,0xBA,0x01,0xC7,0x01,
+        0xD4,0x01,0xE1,0x01,0xEE,0x01,0xFB,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2F,0x02,0x3C,0x02,
+        0x49,0x02,0x56,0x02,0x63,0x02,0x70,0x02,0x7D,0x02,0x8A,0x02,0x97,0x02,0xA4,0x02,0xB1,0x02,
+=====================================================================
+Found a 51 line (191 tokens) duplication in the following files: 
+Starting at line 584 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_aa.h
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_bin.h
+
+                    return val;
+                }
+
+                const int8u* m_ptr;
+                span         m_span;
+                int          m_dx;
+            };
+
+            friend class const_iterator;
+
+
+            //----------------------------------------------------------------
+            embedded_scanline() : m_ptr(0), m_y(0), m_num_spans(0) {}
+
+            //----------------------------------------------------------------
+            void     reset(int, int)     {}
+            unsigned num_spans()   const { return m_num_spans;  }
+            int      y()           const { return m_y;          }
+            const_iterator begin() const { return const_iterator(*this); }
+
+
+        private:
+            //----------------------------------------------------------------
+            int read_int16()
+            {
+                int16 val;
+                ((int8u*)&val)[0] = *m_ptr++;
+                ((int8u*)&val)[1] = *m_ptr++;
+                return val;
+            }
+
+        public:
+            //----------------------------------------------------------------
+            void init(const int8u* ptr, int dx, int dy)
+            {
+                m_ptr       = ptr;
+                m_y         = read_int16() + dy;
+                m_num_spans = unsigned(read_int16());
+                m_dx        = dx;
+            }
+
+        private:
+            const int8u* m_ptr;
+            int          m_y;
+            unsigned     m_num_spans;
+            int          m_dx;
+        };
+
+
+
+    public:
+=====================================================================
+Found a 30 line (191 tokens) duplication in the following files: 
+Starting at line 743 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+Starting at line 911 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+		Gradient aGradient( rGradient );
+
+		if ( mnDrawMode & ( DRAWMODE_GRAYGRADIENT | DRAWMODE_GHOSTEDGRADIENT ) )
+		{
+			Color aStartCol( aGradient.GetStartColor() );
+			Color aEndCol( aGradient.GetEndColor() );
+
+			if ( mnDrawMode & DRAWMODE_GRAYGRADIENT )
+			{
+				BYTE cStartLum = aStartCol.GetLuminance(), cEndLum = aEndCol.GetLuminance();
+				aStartCol = Color( cStartLum, cStartLum, cStartLum );
+				aEndCol = Color( cEndLum, cEndLum, cEndLum );
+			}
+			
+			if ( mnDrawMode & DRAWMODE_GHOSTEDGRADIENT )
+			{
+				aStartCol = Color( ( aStartCol.GetRed() >> 1 ) | 0x80, 
+								   ( aStartCol.GetGreen() >> 1 ) | 0x80,
+								   ( aStartCol.GetBlue() >> 1 ) | 0x80 );
+
+				aEndCol = Color( ( aEndCol.GetRed() >> 1 ) | 0x80, 
+								 ( aEndCol.GetGreen() >> 1 ) | 0x80,
+								 ( aEndCol.GetBlue() >> 1 ) | 0x80 );
+			}
+
+			aGradient.SetStartColor( aStartCol );
+			aGradient.SetEndColor( aEndCol );
+		}
+
+		if( OUTDEV_PRINTER == meOutDevType )
+=====================================================================
+Found a 13 line (191 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 55 line (191 tokens) duplication in the following files: 
+Starting at line 1743 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1801 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                    pWwFib->fcPlcfwkb, pWwFib->lcbPlcfwkb, 12);
+            }
+            break;
+        default:
+            ASSERT( !this, "Es wurde vergessen, nVersion zu kodieren!" );
+            break;
+    }
+
+    // PLCF fuer TextBox-Stories im Maintext
+    long nLenTxBxS = (8 > pWw8Fib->nVersion) ? 0 : 22;
+    if( pWwFib->fcPlcftxbxTxt && pWwFib->lcbPlcftxbxTxt )
+    {
+        pMainTxbx = new WW8PLCFspecial( pTblSt, pWwFib->fcPlcftxbxTxt,
+            pWwFib->lcbPlcftxbxTxt, nLenTxBxS );
+    }
+
+    // PLCF fuer TextBox-Stories im Header-/Footer-Bereich
+    if( pWwFib->fcPlcfHdrtxbxTxt && pWwFib->lcbPlcfHdrtxbxTxt )
+    {
+        pHdFtTxbx = new WW8PLCFspecial( pTblSt, pWwFib->fcPlcfHdrtxbxTxt,
+            pWwFib->lcbPlcfHdrtxbxTxt, nLenTxBxS );
+    }
+
+    pBook = new WW8PLCFx_Book(pTblSt, *pWwFib);
+}
+
+WW8ScannerBase::~WW8ScannerBase()
+{
+    DeletePieceTable();
+    delete pPLCFx_PCDAttrs;
+    delete pPLCFx_PCD;
+    delete pPieceIter;
+    delete pPiecePLCF;
+    delete pBook;
+    delete pFldEdnPLCF;
+    delete pFldFtnPLCF;
+    delete pFldAndPLCF;
+    delete pFldHdFtPLCF;
+    delete pFldPLCF;
+    delete pFldTxbxPLCF;
+    delete pFldTxbxHdFtPLCF;
+    delete pEdnPLCF;
+    delete pFtnPLCF;
+    delete pAndPLCF;
+    delete pSepPLCF;
+    delete pPapPLCF;
+    delete pChpPLCF;
+    // vergessene Schaeflein
+    delete pMainFdoa;
+    delete pHdFtFdoa;
+    delete pMainTxbx;
+    delete pMainTxbxBkd;
+    delete pHdFtTxbx;
+    delete pHdFtTxbxBkd;
+    delete pMagicTables;
+=====================================================================
+Found a 18 line (191 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoctabl.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomtabl.cxx
+
+    virtual uno::Sequence<  OUString > SAL_CALL getSupportedServiceNames(  ) throw( uno::RuntimeException);
+
+	// XNameContainer
+	virtual void SAL_CALL insertByName( const  OUString& aName, const  uno::Any& aElement ) throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException);
+	virtual void SAL_CALL removeByName( const  OUString& Name ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+	// XNameReplace
+    virtual void SAL_CALL replaceByName( const  OUString& aName, const  uno::Any& aElement ) throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+	// XNameAccess
+    virtual uno::Any SAL_CALL getByName( const  OUString& aName ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+    virtual uno::Sequence<  OUString > SAL_CALL getElementNames(  ) throw( uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const  OUString& aName ) throw( uno::RuntimeException);
+
+	// XElementAccess
+    virtual uno::Type SAL_CALL getElementType(  ) throw( uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements(  ) throw( uno::RuntimeException);
+};
+=====================================================================
+Found a 41 line (191 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linkmgr2.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linkmgr2.cxx
+
+	SvStringsDtor aApps, aTopics, aItems;
+	String sApp, sTopic, sItem;
+
+	// erstmal eine Kopie vom Array machen, damit sich updatende Links in
+	// Links in ... nicht dazwischen funken!!
+	SvPtrarr aTmpArr( 255, 50 );
+	USHORT n;
+	for( n = 0; n < aLinkTbl.Count(); ++n )
+	{
+		SvBaseLink* pLink = *aLinkTbl[ n ];
+		if( !pLink )
+		{
+			Remove( n-- );
+			continue;
+		}
+		aTmpArr.Insert( pLink, aTmpArr.Count() );
+	}
+
+	for( n = 0; n < aTmpArr.Count(); ++n )
+	{
+		SvBaseLink* pLink = (SvBaseLink*)aTmpArr[ n ];
+
+		// suche erstmal im Array nach dem Eintrag
+		USHORT nFndPos = USHRT_MAX;
+		for( USHORT i = 0; i < aLinkTbl.Count(); ++i )
+			if( pLink == *aLinkTbl[ i ] )
+			{
+				nFndPos = i;
+				break;
+			}
+
+		if( USHRT_MAX == nFndPos )
+			continue;					// war noch nicht vorhanden!
+
+		// Graphic-Links noch nicht updaten
+		if( !pLink->IsVisible() ||
+			( !bUpdateGrfLinks && OBJECT_CLIENT_GRF == pLink->GetObjType() ))
+			continue;
+
+		if( bAskUpdate )
+		{
+=====================================================================
+Found a 33 line (191 tokens) duplication in the following files: 
+Starting at line 2113 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 2150 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+void ScInterpreter::ScSumX2DY2()
+{
+	if ( !MustHaveParamCount( GetByte(), 2 ) )
+		return;
+
+	ScMatrixRef pMat1 = NULL;
+	ScMatrixRef pMat2 = NULL;
+	SCSIZE i, j;
+	pMat2 = GetMatrix();
+	pMat1 = GetMatrix();
+	if (!pMat2 || !pMat1)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	SCSIZE nC1, nC2;
+	SCSIZE nR1, nR2;
+	pMat2->GetDimensions(nC2, nR2);
+	pMat1->GetDimensions(nC1, nR1);
+	if (nC1 != nC2 || nR1 != nR2)
+	{
+		SetNoValue();
+		return;
+	}
+	double fVal, fSum = 0.0;
+	for (i = 0; i < nC1; i++)
+		for (j = 0; j < nR1; j++)
+			if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+			{
+				fVal = pMat1->GetDouble(i,j);
+				fSum += fVal * fVal;
+				fVal = pMat2->GetDouble(i,j);
+				fSum += fVal * fVal;
+=====================================================================
+Found a 13 line (191 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 618 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                  0x18,  0x19,  0x1A,  0x1B,  0x1C,  0x1D,  0x1E,  0x1F,
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+                0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+                0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+                0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+                0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,  0x7F,
+=====================================================================
+Found a 47 line (191 tokens) duplication in the following files: 
+Starting at line 739 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+
+RegError ORegKey::getStringListValue(const OUString& valueName, sal_Char*** pValueList, sal_uInt32* pLen) const
+{
+    OStoreStream    rValue;
+    sal_uInt8*      pBuffer;
+    RegValueType    valueType;
+    sal_uInt32      valueSize;
+    storeAccessMode accessMode = VALUE_MODE_OPEN;
+
+    if (m_pRegistry->isReadOnly())
+    {
+        accessMode = VALUE_MODE_OPENREAD;
+    }
+
+    OUString sImplValueName( RTL_CONSTASCII_USTRINGPARAM(VALUE_PREFIX) );
+    sImplValueName += valueName;
+
+    REG_GUARD(m_pRegistry->m_mutex);
+
+    if ( rValue.create(m_storeFile, m_name + m_pRegistry->ROOT, sImplValueName, accessMode) )
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        return REG_VALUE_NOT_EXISTS;
+    }
+
+    pBuffer = (sal_uInt8*)rtl_allocateMemory(VALUE_HEADERSIZE);
+
+    sal_uInt32  readBytes;
+    if ( rValue.readAt(0, pBuffer, VALUE_HEADERSIZE, readBytes) )
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+    if (readBytes != VALUE_HEADERSIZE)
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+
+    sal_uInt8   type = *((sal_uInt8*)pBuffer);
+    valueType = (RegValueType)type;
+
+    if (valueType != RG_VALUETYPE_STRINGLIST)
+=====================================================================
+Found a 7 line (191 tokens) duplication in the following files: 
+Starting at line 1427 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 6 line (191 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1427 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 7 line (191 tokens) duplication in the following files: 
+Starting at line 718 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 894 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 8 line (191 tokens) duplication in the following files: 
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 764 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0,// 33f0 - 33ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d00 - 4d0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d10 - 4d1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d20 - 4d2f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d30 - 4d3f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d40 - 4d4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d50 - 4d5f
+=====================================================================
+Found a 7 line (191 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d50 - 4d5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d60 - 4d6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d70 - 4d7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d80 - 4d8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d90 - 4d9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4da0 - 4daf
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+=====================================================================
+Found a 7 line (191 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 347 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,// 10a0 - 10af
+     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,// 10b0 - 10bf
+     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10c0 - 10cf
+=====================================================================
+Found a 20 line (191 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/public.h
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+
+const int in_quit ANSI((void));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+=====================================================================
+Found a 35 line (191 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1377 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+    }
+    {
+        double b = 2;
+        CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Unicode b = '2';
+=====================================================================
+Found a 25 line (191 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDriver.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDriver.cxx
+
+	return getSupportedServiceNames_Static();
+}
+
+//------------------------------------------------------------------
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >  SAL_CALL connectivity::evoab::OEvoabDriver_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception )
+{
+	return *(new OEvoabDriver(_rxFactory));
+}
+// --------------------------------------------------------------------------------
+Reference< XConnection > SAL_CALL OEvoabDriver::connect( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if (ODriver_BASE::rBHelper.bDisposed)
+		throw DisposedException();
+	
+	if ( ! acceptsURL(url) )
+		return NULL;
+	
+	OEvoabConnection* pCon = new OEvoabConnection(this);
+	pCon->construct(url,info);
+        Reference< XConnection > xCon = pCon;
+        m_xConnections.push_back(WeakReferenceHelper(*pCon));
+	
+	return xCon;
+}
+=====================================================================
+Found a 34 line (190 tokens) duplication in the following files: 
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/FileXXmlReader.cxx
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/StorageXXmlReader.cxx
+
+sal_Int32 SAL_CALL StorageXXmlReader::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+  MyHandler handler;
+
+  if (aArguments.getLength()!=1)
+  {
+	  return 1;
+  }
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+		// construct an URL of the input file name
+		rtl::OUString arg=aArguments[0];
+		rtl_uString *dir=NULL;
+		osl_getProcessWorkingDir(&dir);
+		rtl::OUString absFileUrl;
+		osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+		rtl_uString_release(dir);
+/*
+		// get file simple file access service
+		uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+		xFactory->createInstanceWithContext(
+			::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")), 
+			xContext), uno::UNO_QUERY_THROW );
+
+		// open file
+		uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+*/
+
+		uno::Reference <lang::XSingleServiceFactory> xStorageFactory(
+=====================================================================
+Found a 27 line (190 tokens) duplication in the following files: 
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readFileControlModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+    readBoolAttr( OUSTR("HideInactiveSelection"),
+                  OUSTR(XMLNS_DIALOGS_PREFIX ":hide-inactive-selection") );
+=====================================================================
+Found a 37 line (190 tokens) duplication in the following files: 
+Starting at line 1242 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1237 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+    rtl::OUString aOldTitle;
+    sal_Int32 nTitlePos = -1;
+
+	for ( sal_Int32 n = 0; n < nCount; ++n )
+	{
+        const beans::PropertyValue& rValue = pValues[ n ];
+
+        if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM(  "ContentType" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+		{
+=====================================================================
+Found a 35 line (190 tokens) duplication in the following files: 
+Starting at line 4914 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+Starting at line 4972 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+
+                                    SwRect aVert( Point(aTmp.Pos().X()-nHeight,
+                                            aGrid.Top() ), Size( nHeight, 1 ) );
+                                    if( bLeft )
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    if( bRight )
+                                    {
+                                        aVert.Pos().Y() = nGridBottom;
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    }
+                                }
+                            }
+                        }
+                        else
+                        {
+                            nY -= nRuby;
+                            if( bBorder )
+                            {
+                                SwTwips nPos = Max( aInter.Left(), nY );
+                                SwTwips nW = Min(nRight, aTmp.Pos().X()) - nPos;
+                                SwRect aVert( Point( nPos, aGrid.Top() ),
+                                              Size( nW, 1 ) );
+                                if( nW > 0 )
+                                {
+                                    if( bLeft )
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    if( bRight )
+                                    {
+                                        aVert.Pos().Y() = nGridBottom;
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    }
+                                }
+                            }
+                        }
+                        bGrid = !bGrid;
+                    }
+=====================================================================
+Found a 29 line (190 tokens) duplication in the following files: 
+Starting at line 5013 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 5270 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
+
+        std::vector<Rectangle>::const_iterator aPixelEnd( aPixelRects.end() );
+        for ( std::vector<Rectangle>::const_iterator aPixelIter( aPixelRects.begin() );
+              aPixelIter != aPixelEnd; ++aPixelIter )
+        {
+            Rectangle aLogic( PixelToLogic( *aPixelIter, aDrawMode ) );
+
+            const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
+            const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
+            const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
+
+            aRanges.push_back( a2DRange );
+        }
+
+		// #i70788# get the OverlayManager safely
+		::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
+
+		if(pOverlayManager)
+		{
+			ScOverlayType eType = SC_OVERLAY_INVERT;
+//		          ScOverlayType eType = SC_OVERLAY_HATCH;
+//			      ScOverlayType eType = SC_OVERLAY_TRANSPARENT;
+
+			Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
+            sdr::overlay::OverlayObjectCell* pOverlay =
+	            new sdr::overlay::OverlayObjectCell( eType, aHighlight, aRanges );
+
+		    pOverlayManager->add(*pOverlay);
+=====================================================================
+Found a 55 line (190 tokens) duplication in the following files: 
+Starting at line 1510 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1705 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+void ScInterpreter::ScSub()
+{
+	ScMatrixRef pMat1 = NULL;
+	ScMatrixRef pMat2 = NULL;
+    double fVal1 = 0.0, fVal2 = 0.0;
+	short nFmt1, nFmt2;
+	nFmt1 = nFmt2 = NUMBERFORMAT_UNDEFINED;
+	short nFmtCurrencyType = nCurFmtType;
+	ULONG nFmtCurrencyIndex = nCurFmtIndex;
+    short nFmtPercentType = nCurFmtType;
+	if ( GetStackType() == svMatrix )
+		pMat2 = GetMatrix();
+	else
+	{
+		fVal2 = GetDouble();
+		switch ( nCurFmtType )
+		{
+			case NUMBERFORMAT_DATE :
+			case NUMBERFORMAT_TIME :
+			case NUMBERFORMAT_DATETIME :
+				nFmt2 = nCurFmtType;
+			break;
+			case NUMBERFORMAT_CURRENCY :
+				nFmtCurrencyType = nCurFmtType;
+				nFmtCurrencyIndex = nCurFmtIndex;
+			break;
+            case NUMBERFORMAT_PERCENT :
+                nFmtPercentType = NUMBERFORMAT_PERCENT;
+            break;
+		}
+	}
+	if ( GetStackType() == svMatrix )
+		pMat1 = GetMatrix();
+	else
+	{
+		fVal1 = GetDouble();
+		switch ( nCurFmtType )
+		{
+			case NUMBERFORMAT_DATE :
+			case NUMBERFORMAT_TIME :
+			case NUMBERFORMAT_DATETIME :
+				nFmt1 = nCurFmtType;
+			break;
+			case NUMBERFORMAT_CURRENCY :
+				nFmtCurrencyType = nCurFmtType;
+				nFmtCurrencyIndex = nCurFmtIndex;
+			break;
+            case NUMBERFORMAT_PERCENT :
+                nFmtPercentType = NUMBERFORMAT_PERCENT;
+            break;
+		}
+	}
+	if (pMat1 && pMat2)
+	{
+		ScMatrixRef pResMat = MatSub(pMat1, pMat2);
+=====================================================================
+Found a 51 line (190 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/localedata/saxparser.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+    virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip )
+		throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
+		{
+			// not implemented
+		}
+    virtual sal_Int32 SAL_CALL available(  )
+		throw(NotConnectedException, IOException, RuntimeException)
+		{
+			return m_seq.getLength() - nPos;
+		}
+    virtual void SAL_CALL closeInput(  )
+		throw(NotConnectedException, IOException, RuntimeException)
+		{
+			// not needed
+		}
+	sal_Int32 nPos;
+	Sequence< sal_Int8> m_seq;
+};
+
+//-------------------------------
+// Helper : create an input stream from a file
+//------------------------------
+Reference< XInputStream > createStreamFromFile(
+	const char *pcFile )
+{
+	FILE *f = fopen( pcFile , "rb" );
+	Reference<  XInputStream >  r;
+
+	if( f ) {
+		fseek( f , 0 , SEEK_END );
+		int nLength = ftell( f );
+		fseek( f , 0 , SEEK_SET );
+
+		Sequence<sal_Int8> seqIn(nLength);
+		fread( seqIn.getArray() , nLength , 1 , f );
+
+		r = Reference< XInputStream > ( new OInputStream( seqIn ) );
+		fclose( f );
+	}
+	return r;
+}
+
+//-----------------------------------------
+// The document handler, which is needed for the saxparser
+// The Documenthandler for reading sax
+//-----------------------------------------
+class TestDocumentHandler :
+	public WeakImplHelper3< XExtendedDocumentHandler , XEntityResolver , XErrorHandler >
+{
+public:
+	TestDocumentHandler(  )
+=====================================================================
+Found a 42 line (190 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/scanwin.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/twain.cxx
+
+			if( ( ( pDSM = (DSMENTRYPROC) pMod->getSymbol( TWAIN_FUNCNAME ) ) != NULL ) &&
+				( PFUNC( &aAppIdent, NULL, DG_CONTROL, DAT_PARENT, MSG_OPENDSM, &hTwainWnd ) == TWRC_SUCCESS ) )
+			{
+				nCurState = 3;
+			}
+		}
+		else
+		{
+			delete pMod;
+			pMod = NULL;
+		}
+	}
+}
+
+// -----------------------------------------------------------------------------
+
+void ImpTwain::ImplOpenSource()
+{
+	if( 3 == nCurState )
+	{
+		if( ( PFUNC( &aAppIdent, NULL, DG_CONTROL, DAT_IDENTITY, MSG_GETDEFAULT, &aSrcIdent ) == TWRC_SUCCESS ) &&
+			( PFUNC( &aAppIdent, NULL, DG_CONTROL, DAT_IDENTITY, MSG_OPENDS, &aSrcIdent ) == TWRC_SUCCESS ) )
+		{
+#ifdef OS2
+
+			// negotiate capabilities
+			
+#else
+
+			TW_CAPABILITY	aCap = { CAP_XFERCOUNT, TWON_ONEVALUE, GlobalAlloc( GHND, sizeof( TW_ONEVALUE ) ) };
+			TW_ONEVALUE*	pVal = (TW_ONEVALUE*) GlobalLock( aCap.hContainer );
+
+			pVal->ItemType = TWTY_INT16, pVal->Item = 1;
+			GlobalUnlock( aCap.hContainer );
+			PFUNC( &aAppIdent, &aSrcIdent, DG_CONTROL, DAT_CAPABILITY, MSG_SET, &aCap );
+			GlobalFree( aCap.hContainer );
+#endif
+
+			nCurState = 4;
+		}
+	}
+}
+=====================================================================
+Found a 16 line (189 tokens) duplication in the following files: 
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_image.h
+
+                               int len, double scale, int x, int y) :
+            m_dx(x2 - x1),
+            m_dy(y2 - y1),
+            m_dx_start(line_mr(sx) - line_mr(x1)),
+            m_dy_start(line_mr(sy) - line_mr(y1)),
+            m_dx_end(line_mr(ex) - line_mr(x2)),
+            m_dy_end(line_mr(ey) - line_mr(y2)),
+
+            m_dist(int(double(x + line_subpixel_size/2 - x2) * double(m_dy) - 
+                       double(y + line_subpixel_size/2 - y2) * double(m_dx))),
+
+            m_dist_start((line_mr(x + line_subpixel_size/2) - line_mr(sx)) * m_dy_start - 
+                         (line_mr(y + line_subpixel_size/2) - line_mr(sy)) * m_dx_start),
+
+            m_dist_end((line_mr(x + line_subpixel_size/2) - line_mr(ex)) * m_dy_end - 
+                       (line_mr(y + line_subpixel_size/2) - line_mr(ey)) * m_dx_end),
+=====================================================================
+Found a 42 line (189 tokens) duplication in the following files: 
+Starting at line 535 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+Starting at line 617 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+
+    if( rMetric.ntmFlags & NTM_TYPE1 )
+        aDFA.mbEmbeddable = true;
+
+    // heuristics for font quality
+    // -   standard-type1 > opentypeTT > truetype > non-standard-type1 > raster
+    // -   subsetting > embedding > none
+    aDFA.mnQuality = 0;
+    if( rMetric.tmPitchAndFamily & TMPF_TRUETYPE )
+        aDFA.mnQuality += 50;
+    if( rMetric.ntmFlags & NTM_TT_OPENTYPE )
+        aDFA.mnQuality += 10;
+    if( aDFA.mbSubsettable )
+        aDFA.mnQuality += 200;
+    else if( aDFA.mbEmbeddable )
+        aDFA.mnQuality += 100;
+
+    // #i38665# prefer Type1 versions of the standard postscript fonts
+    if( aDFA.mbEmbeddable )
+    {
+        if( aDFA.maName.EqualsAscii( "AvantGarde" )
+        ||  aDFA.maName.EqualsAscii( "Bookman" )
+        ||  aDFA.maName.EqualsAscii( "Courier" )
+        ||  aDFA.maName.EqualsAscii( "Helvetica" )
+        ||  aDFA.maName.EqualsAscii( "NewCenturySchlbk" )
+        ||  aDFA.maName.EqualsAscii( "Palatino" )
+        ||  aDFA.maName.EqualsAscii( "Symbol" )
+        ||  aDFA.maName.EqualsAscii( "Times" )
+        ||  aDFA.maName.EqualsAscii( "ZapfChancery" )
+        ||  aDFA.maName.EqualsAscii( "ZapfDingbats" ) )
+            aDFA.mnQuality += 500;
+    }
+
+    aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+    aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+
+    // TODO: add alias names
+    return aDFA;
+}
+
+// -----------------------------------------------------------------------
+
+static ImplWinFontData* ImplLogMetricToDevFontDataA( const ENUMLOGFONTEXA* pLogFont,
+=====================================================================
+Found a 37 line (189 tokens) duplication in the following files: 
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+	PspSalInfoPrinter* pPrinter = new PspSalInfoPrinter;
+
+	if( pJobSetup )
+	{
+		PrinterInfoManager& rManager( PrinterInfoManager::get() );
+		PrinterInfo aInfo( rManager.getPrinterInfo( pQueueInfo->maPrinterName ) );
+		pPrinter->m_aJobData = aInfo;
+		pPrinter->m_aPrinterGfx.Init( pPrinter->m_aJobData );
+
+		if( pJobSetup->mpDriverData )
+			JobData::constructFromStreamBuffer( pJobSetup->mpDriverData, pJobSetup->mnDriverDataLen, aInfo );
+
+		pJobSetup->mnSystem			= JOBSETUP_SYSTEM_UNIX;
+		pJobSetup->maPrinterName	= pQueueInfo->maPrinterName;
+		pJobSetup->maDriver			= aInfo.m_aDriverName;
+		copyJobDataToJobSetup( pJobSetup, aInfo );
+        
+        // set/clear backwards compatibility flag
+        bool bStrictSO52Compatibility = false;
+        std::hash_map<rtl::OUString, rtl::OUString, rtl::OUStringHash >::const_iterator compat_it =
+            pJobSetup->maValueMap.find( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StrictSO52Compatibility" ) ) );
+           
+        if( compat_it != pJobSetup->maValueMap.end() )
+        {
+            if( compat_it->second.equalsIgnoreAsciiCaseAscii( "true" ) )
+                bStrictSO52Compatibility = true;
+        }
+        pPrinter->m_aPrinterGfx.setStrictSO52Compatibility( bStrictSO52Compatibility );
+	}
+
+
+	return pPrinter;
+}
+
+// -----------------------------------------------------------------------
+
+void X11SalInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter )
+=====================================================================
+Found a 28 line (189 tokens) duplication in the following files: 
+Starting at line 1146 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/print2.cxx
+Starting at line 1215 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/print2.cxx
+
+            const Size      aBmpSize( aBmpEx.GetSizePixel() );
+            const double    fBmpPixelX = aBmpSize.Width();
+            const double    fBmpPixelY = aBmpSize.Height();
+            const double    fMaxPixelX = aDstSizeTwip.Width() * nMaxBmpDPIX / 1440.0;
+            const double    fMaxPixelY = aDstSizeTwip.Height() * nMaxBmpDPIY / 1440.0;
+
+            // check, if the bitmap DPI exceeds the maximum DPI (allow 4 pixel rounding tolerance)
+            if( ( ( fBmpPixelX > ( fMaxPixelX + 4 ) ) || 
+                  ( fBmpPixelY > ( fMaxPixelY + 4 ) ) ) && 
+                ( fBmpPixelY > 0.0 ) && ( fMaxPixelY > 0.0 ) )
+            {
+                // do scaling
+                Size            aNewBmpSize;
+		        const double    fBmpWH = fBmpPixelX / fBmpPixelY;
+		        const double    fMaxWH = fMaxPixelX / fMaxPixelY;
+
+			    if( fBmpWH < fMaxWH )
+			    {
+				    aNewBmpSize.Width() = FRound( fMaxPixelY * fBmpWH );
+				    aNewBmpSize.Height() = FRound( fMaxPixelY );
+			    }
+			    else if( fBmpWH > 0.0 )
+			    {
+				    aNewBmpSize.Width() = FRound( fMaxPixelX );
+				    aNewBmpSize.Height() = FRound( fMaxPixelX / fBmpWH);
+			    }
+
+                if( aNewBmpSize.Width() && aNewBmpSize.Height() )
+=====================================================================
+Found a 24 line (189 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+
+BOOL Bitmap::ImplMedianFilter( const BmpFilterParam* /*pFilterParam*/, const Link* /*pProgress*/ )
+{
+	BitmapReadAccess*	pReadAcc = AcquireReadAccess();
+	BOOL				bRet = FALSE;
+
+	if( pReadAcc )
+	{
+		Bitmap				aNewBmp( GetSizePixel(), 24 );
+		BitmapWriteAccess*	pWriteAcc = aNewBmp.AcquireWriteAccess();
+
+		if( pWriteAcc )
+		{
+			const long		nWidth = pWriteAcc->Width(), nWidth2 = nWidth + 2;
+			const long		nHeight = pWriteAcc->Height(), nHeight2 = nHeight + 2;
+			long*			pColm = new long[ nWidth2 ];
+			long*			pRows = new long[ nHeight2 ];
+			BitmapColor*	pColRow1 = (BitmapColor*) new BYTE[ sizeof( BitmapColor ) * nWidth2 ];
+			BitmapColor*	pColRow2 = (BitmapColor*) new BYTE[ sizeof( BitmapColor ) * nWidth2 ];
+			BitmapColor*	pColRow3 = (BitmapColor*) new BYTE[ sizeof( BitmapColor ) * nWidth2 ];
+			BitmapColor*	pRowTmp1 = pColRow1;
+			BitmapColor*	pRowTmp2 = pColRow2;
+			BitmapColor*	pRowTmp3 = pColRow3;
+			BitmapColor*	pColor;
+			long			nY, nX, i;
+=====================================================================
+Found a 32 line (189 tokens) duplication in the following files: 
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+Starting at line 1671 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/iahndl.cxx
+
+                    aRec(xContainer->find(rRequest.ServerName, xIH));
+                if (aRec.UserList.getLength() != 0)
+                {
+                    if (xSupplyAuthentication->canSetUserName())
+                        xSupplyAuthentication->
+                            setUserName(aRec.UserList[0].UserName.getStr());
+                    if (xSupplyAuthentication->canSetPassword())
+                    {
+                        OSL_ENSURE(aRec.UserList[0].Passwords.getLength() != 0,
+                                   "empty password list");
+                        xSupplyAuthentication->
+                            setPassword(
+				aRec.UserList[0].Passwords[0].getStr());
+                    }
+                    if (aRec.UserList[0].Passwords.getLength() > 1)
+                        if (rRequest.HasRealm)
+                        {
+                            if (xSupplyAuthentication->canSetRealm())
+                                xSupplyAuthentication->
+                                    setRealm(aRec.UserList[0].Passwords[1].
+                                             getStr());
+                        }
+                        else if (xSupplyAuthentication->canSetAccount())
+                            xSupplyAuthentication->
+                                setAccount(aRec.UserList[0].Passwords[1].
+                                           getStr());
+                    xSupplyAuthentication->select();
+                    return;
+                }
+            }
+            else
+            {
+=====================================================================
+Found a 19 line (189 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+                sizeof( aArr1 ), aArr1 );
+
+    static const sal_uInt8 aComboData1[] =
+    {
+        0,0,0,0,        // len of struct
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+    };
+    pDataStrm->Write( aComboData1, sizeof(aComboData1) );
+
+    static const sal_uInt8 aComboData2[] =
+    {
+        0xFF, 0xFF, 0xFF, 0xFF
+    };
+    pDataStrm->Write( aComboData2, sizeof(aComboData2) );
+=====================================================================
+Found a 24 line (189 tokens) duplication in the following files: 
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+
+	double fScanInc    = (double)nMinRect / (double)nSteps * 0.5;
+
+	// Intensitaeten von Start- und Endfarbe ggf. aendern und
+	// Farbschrittweiten berechnen
+	long            nFactor;
+	const Color&    rStartCol   = rGradient.GetStartColor();
+	const Color&    rEndCol     = rGradient.GetEndColor();
+	long            nRed        = rStartCol.GetRed();
+	long            nGreen      = rStartCol.GetGreen();
+	long            nBlue       = rStartCol.GetBlue();
+	long            nEndRed     = rEndCol.GetRed();
+	long            nEndGreen   = rEndCol.GetGreen();
+	long            nEndBlue    = rEndCol.GetBlue();
+	nFactor                     = rGradient.GetStartIntensity();
+	nRed                        = (nRed   * nFactor) / 100;
+	nGreen                      = (nGreen * nFactor) / 100;
+	nBlue                       = (nBlue  * nFactor) / 100;
+	nFactor                     = rGradient.GetEndIntensity();
+	nEndRed                     = (nEndRed   * nFactor) / 100;
+	nEndGreen                   = (nEndGreen * nFactor) / 100;
+	nEndBlue                    = (nEndBlue  * nFactor) / 100;
+	long            nStepRed    = (nEndRed   - nRed)   / nSteps;
+	long            nStepGreen  = (nEndGreen - nGreen) / nSteps;
+	long            nStepBlue   = (nEndBlue  - nBlue)  / nSteps;
+=====================================================================
+Found a 8 line (189 tokens) duplication in the following files: 
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 562 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Pchar */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
+=====================================================================
+Found a 52 line (189 tokens) duplication in the following files: 
+Starting at line 2599 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 1274 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT );
+			::osl::StreamSocket ssConnection;
+			
+			/// launch server socket 
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			
+			sal_Bool bOK3 = asAcceptorSocket.isNonBlockingMode( );
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+ 			asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
+ 
+			/// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default. 
+			sal_Bool bOK4 = asAcceptorSocket.isNonBlockingMode( );
+			asAcceptorSocket.close( );
+				
+			CPPUNIT_ASSERT_MESSAGE( "test for isNonBlockingMode function: launch a server socket and make it non blocking. it is expected to change from blocking mode to non-blocking mode.",
+  									( sal_False == bOK3 ) && ( sal_True == bOK4 ) );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( isNonBlockingMode );
+		CPPUNIT_TEST( isNonBlockingMode_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class isNonBlockingMode
+
+	/** testing the method:
+		inline void	SAL_CALL clearError() const;
+	*/
+	class clearError : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void clearError_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_HTTP2 );
+=====================================================================
+Found a 39 line (189 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+
+	~OMarkableInputStreamTest();
+
+public: // implementation names
+    static Sequence< OUString > 	getSupportedServiceNames_Static(void) throw () ;
+	static OUString 				getImplementationName_Static() throw () ;
+
+public:
+    virtual void SAL_CALL testInvariant(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject)
+		throw (	IllegalArgumentException, RuntimeException) ;
+
+    virtual sal_Int32 SAL_CALL test(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject,
+		sal_Int32 hTestHandle)
+		throw (	IllegalArgumentException,
+				RuntimeException) ;
+
+    virtual sal_Bool SAL_CALL testPassed(void)
+		throw (	RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getErrors(void)
+		throw (RuntimeException);
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void)
+		throw (RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getWarnings(void)
+		throw (RuntimeException);
+
+private:
+	void testSimple( const Reference< XOutputStream > &r,
+					 const Reference < XInputStream > &rInput );
+
+private:
+	Sequence<Any>  m_seqExceptions;
+	Sequence<OUString> m_seqErrors;
+	Sequence<OUString> m_seqWarnings;
+	Reference< XMultiServiceFactory > m_rFactory;
+
+};
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 1372 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0,10,10,10,10,10,10,10,// 2610 - 261f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2620 - 262f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2630 - 263f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2640 - 264f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2650 - 265f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2660 - 266f
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 1349 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 1314 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0,10,10,10,10,10,10,10,// 2610 - 261f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2620 - 262f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2630 - 263f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2640 - 264f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2650 - 265f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2660 - 266f
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 1018 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 6 line (189 tokens) duplication in the following files: 
+Starting at line 968 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1544 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10, 4, 4, 4,10,10,10,10,10, 4, 6, 4, 6, 3,// ff00 - ff0f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6,10,10,10,10,10,// ff10 - ff1f
+    10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff20 - ff2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,10,10,10,// ff30 - ff3f
+    10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff40 - ff4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,10,10, 0,// ff50 - ff5f
+=====================================================================
+Found a 6 line (189 tokens) duplication in the following files: 
+Starting at line 773 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd90 - fd9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fda0 - fdaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fdb0 - fdbf
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fdd0 - fddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fde0 - fdef
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 475 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 1e90 - 1e9f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1ea0 - 1eaf
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1eb0 - 1ebf
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1ec0 - 1ecf
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1ed0 - 1edf
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1ee0 - 1eef
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0,// 1ef0 - 1eff
+=====================================================================
+Found a 8 line (189 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 13f0 - 13ff
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1400 - 140f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1410 - 141f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1420 - 142f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1430 - 143f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1440 - 144f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1450 - 145f
+=====================================================================
+Found a 6 line (189 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 718 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3130 - 313f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3140 - 314f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3150 - 315f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3160 - 316f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3170 - 317f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,// 3180 - 318f
+=====================================================================
+Found a 6 line (189 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 902 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,23,23,23,25,23,23,23,20,21,23,24,23,19,23,23,// ff00 - ff0f
+     9, 9, 9, 9, 9, 9, 9, 9, 9, 9,23,23,24,24,24,23,// ff10 - ff1f
+    23, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,// ff20 - ff2f
+     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,20,23,21,26,22,// ff30 - ff3f
+    26, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// ff40 - ff4f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,20,24,21,24, 0,// ff50 - ff5f
+=====================================================================
+Found a 5 line (189 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x0231}, {0x15, 0x0230}, {0x6a, 0x0233}, {0x15, 0x0232}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0230 - 0237
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0238 - 023f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0240 - 0247
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0248 - 024f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x15, 0x0181}, {0x15, 0x0186}, {0x00, 0x0000}, {0x15, 0x0189}, {0x15, 0x018A}, // 0250 - 0257
+=====================================================================
+Found a 6 line (189 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1223 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1620 - 162f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1630 - 163f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1650 - 165f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1660 - 166f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1670 - 167f
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0240 - 024f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 0250 - 025f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 0260 - 026f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 0270 - 027f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 0280 - 028f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 0290 - 029f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,// 02a0 - 02af
+=====================================================================
+Found a 7 line (189 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 9 line (189 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 3703 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+	m_pDbgWin->AddText( String::CreateFromInt32( nMethodId ) );
+	m_pDbgWin->AddText( " Params:" );
+	if( nParams & PARAM_USHORT_1 )	{m_pDbgWin->AddText( " n1:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr1 ) );}
+	if( nParams & PARAM_USHORT_2 )	{m_pDbgWin->AddText( " n2:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr2 ) );}
+	if( nParams & PARAM_USHORT_3 )	{m_pDbgWin->AddText( " n3:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr3 ) );}
+	if( nParams & PARAM_USHORT_4 )	{m_pDbgWin->AddText( " n4:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr4 ) );}
+	if( nParams & PARAM_ULONG_1 )	{m_pDbgWin->AddText( " nl1:" );m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );}
+	if( nParams & PARAM_STR_1 )		{m_pDbgWin->AddText( " s1:" );m_pDbgWin->AddText( aString1 );}
+	if( nParams & PARAM_STR_2 )		{m_pDbgWin->AddText( " s2:" );m_pDbgWin->AddText( aString2 );}
+=====================================================================
+Found a 35 line (188 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx
+
+			xTransact->commit();
+
+
+        ::ucbhelper::ContentBroker::deinitialize();
+	}
+	else
+	{
+		fprintf(stderr, "can't initialize UCB");
+	}
+	return 0;
+}
+
+::rtl::OUString ScannerTestService_getImplementationName ()
+{
+	return rtl::OUString::createFromAscii ( ScannerTestService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName )
+{
+	return ServiceName.equals( rtl::OUString::createFromAscii( ScannerTestService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames(  ) throw (uno::RuntimeException)
+{
+	uno::Sequence < rtl::OUString > aRet(1);
+	rtl::OUString* pArray = aRet.getArray();
+	pArray[0] =  rtl::OUString::createFromAscii ( ScannerTestService::SERVICE_NAME );
+	return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL ScannerTestService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+	return (cppu::OWeakObject*) new ScannerTestService( xContext );
+}
+
+} } /* end namespace writerfilter::rtftok */
+=====================================================================
+Found a 34 line (188 tokens) duplication in the following files: 
+Starting at line 6176 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6473 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        if (nFib > 105)
+        {
+            adt = Get_Short( pData );
+
+            doptypography.ReadFromMem(pData);
+
+            memcpy( &dogrid, pData, sizeof( WW8_DOGRID ));
+            pData += sizeof( WW8_DOGRID );
+
+            a16Bit = Get_UShort( pData );
+            // die untersten 9 Bit sind uninteressant
+            fHtmlDoc                = ( a16Bit &  0x0200 ) >>  9 ;
+            fSnapBorder             = ( a16Bit &  0x0800 ) >> 11 ;
+            fIncludeHeader          = ( a16Bit &  0x1000 ) >> 12 ;
+            fIncludeFooter          = ( a16Bit &  0x2000 ) >> 13 ;
+            fForcePageSizePag       = ( a16Bit &  0x4000 ) >> 14 ;
+            fMinFontSizePag         = ( a16Bit &  0x8000 ) >> 15 ;
+
+            a16Bit = Get_UShort( pData );
+            fHaveVersions   = 0 != ( a16Bit  &  0x0001 );
+            fAutoVersion    = 0 != ( a16Bit  &  0x0002 );
+
+            pData += 12;
+
+            cChWS = Get_Long( pData );
+            cChWSFtnEdn = Get_Long( pData );
+            grfDocEvents = Get_Long( pData );
+
+            pData += 4+30+8;
+
+            cDBC = Get_Long( pData );
+            cDBCFtnEdn = Get_Long( pData );
+
+            pData += 1 * sizeof( INT32);
+=====================================================================
+Found a 28 line (188 tokens) duplication in the following files: 
+Starting at line 784 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+Starting at line 2398 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/sectfrm.cxx
+
+void SwSectionFrm::Modify( SfxPoolItem * pOld, SfxPoolItem * pNew )
+{
+	BYTE nInvFlags = 0;
+
+	if( pNew && RES_ATTRSET_CHG == pNew->Which() )
+	{
+		SfxItemIter aNIter( *((SwAttrSetChg*)pNew)->GetChgSet() );
+		SfxItemIter aOIter( *((SwAttrSetChg*)pOld)->GetChgSet() );
+		SwAttrSetChg aOldSet( *(SwAttrSetChg*)pOld );
+		SwAttrSetChg aNewSet( *(SwAttrSetChg*)pNew );
+		while( TRUE )
+		{
+			_UpdateAttr( (SfxPoolItem*)aOIter.GetCurItem(),
+						 (SfxPoolItem*)aNIter.GetCurItem(), nInvFlags,
+						 &aOldSet, &aNewSet );
+			if( aNIter.IsAtEnd() )
+				break;
+			aNIter.NextItem();
+			aOIter.NextItem();
+		}
+		if ( aOldSet.Count() || aNewSet.Count() )
+			SwLayoutFrm::Modify( &aOldSet, &aNewSet );
+	}
+	else
+		_UpdateAttr( pOld, pNew, nInvFlags );
+
+	if ( nInvFlags != 0 )
+	{
+=====================================================================
+Found a 43 line (188 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+Starting at line 1165 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+
+	storeError eErrCode = find (e, *m_pNode[0]);
+	if (eErrCode != store_E_None)
+		return eErrCode;
+
+	// Find Index.
+	sal_uInt16 i = m_pNode[0]->find(e), n = m_pNode[0]->usageCount();
+	if (!(i < n))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Check for exact match.
+	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Existing entry. Check address.
+	e = m_pNode[0]->m_pData[i];
+	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Check for hardlink.
+	if (!(e.m_nAttrib & STORE_ATTRIB_ISLINK))
+	{
+		// Check directory page buffer.
+		if (!m_pDirect)
+			m_pDirect = new(m_nPageSize) inode(m_nPageSize);
+		if (!m_pDirect)
+			return store_E_OutOfMemory;
+
+		// Load directory page.
+		OStoreDirectoryPageObject aPage (*m_pDirect);
+		aPage.location (e.m_aLink.m_nAddr);
+
+		eErrCode = base::load (aPage);
+		if (eErrCode != store_E_None)
+			return eErrCode;
+=====================================================================
+Found a 32 line (188 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/linkdlg2.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/linkdlg.cxx
+
+IMPL_LINK( SvBaseLinksDlg, LinksSelectHdl, SvTabListBox *, pSvTabListBox )
+{
+	USHORT nSelectionCount = pSvTabListBox ?
+		(USHORT)pSvTabListBox->GetSelectionCount() : 0;
+	if(nSelectionCount > 1)
+	{
+		//bei Mehrfachselektion ggf. alte Eintraege deselektieren
+		SvLBoxEntry* pEntry = 0;
+		SvBaseLink* pLink = 0;
+		pEntry = pSvTabListBox->GetHdlEntry();
+		pLink = (SvBaseLink*)pEntry->GetUserData();
+		USHORT nObjectType = pLink->GetObjType();
+		if((OBJECT_CLIENT_FILE & nObjectType) != OBJECT_CLIENT_FILE)
+		{
+			pSvTabListBox->SelectAll(FALSE);
+			pSvTabListBox->Select(pEntry);
+			nSelectionCount = 1;
+		}
+		else
+		{
+			for( USHORT i = 0; i < nSelectionCount; i++)
+			{
+				pEntry = i == 0 ? pSvTabListBox->FirstSelected() :
+									pSvTabListBox->NextSelected(pEntry);
+				DBG_ASSERT(pEntry, "Wo ist der Entry?")
+				pLink = (SvBaseLink*)pEntry->GetUserData();
+				DBG_ASSERT(pLink, "Wo ist der Link?")
+				if( (OBJECT_CLIENT_FILE & pLink->GetObjType()) != OBJECT_CLIENT_FILE )
+					pSvTabListBox->Select( pEntry, FALSE );
+
+			}
+		}
+=====================================================================
+Found a 37 line (188 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/macropg.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/macropg.cxx
+
+}
+
+_HeaderTabListBox::~_HeaderTabListBox()
+{
+}
+
+void _HeaderTabListBox::ConnectElements( void )
+{
+    // calc pos and size of header bar
+    Point    aPnt( 0, 0 );
+    Size    aSize( maHeaderBar.CalcWindowSizePixel() );
+    Size    aCtrlSize( GetOutputSizePixel() );
+    aSize.Width() = aCtrlSize.Width();
+    maHeaderBar.SetPosSizePixel( aPnt, aSize );
+
+    // calc pos and size of ListBox
+    aPnt.Y() += aSize.Height();
+    aSize.Height() = aCtrlSize.Height() - aSize.Height();
+    maListBox.SetPosSizePixel( aPnt, aSize );
+
+    // set handler
+    maHeaderBar.SetEndDragHdl( LINK( this, _HeaderTabListBox, HeaderEndDrag_Impl ) );
+
+    maListBox.InitHeaderBar( &maHeaderBar );
+}
+
+void _HeaderTabListBox::Show( BOOL bVisible, USHORT nFlags )
+{
+    maListBox.Show( bVisible, nFlags );
+    maHeaderBar.Show( bVisible, nFlags );
+}
+
+void _HeaderTabListBox::Enable( bool bEnable, bool bChild )
+{
+    maListBox.Enable( bEnable, bChild );
+    maHeaderBar.Enable( bEnable, bChild );
+}
+=====================================================================
+Found a 12 line (188 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/bastyp/fltfnc.cxx
+Starting at line 1266 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/bastyp/fltfnc.cxx
+
+    {
+        // get the FilterFactory service to access the registered filters ... and types!
+        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+        ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >     xFilterCFG                                                ;
+        ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >     xTypeCFG                                                  ;
+        if( xServiceManager.is() == sal_True )
+        {
+            xFilterCFG = ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >( xServiceManager->createInstance( DEFINE_CONST_UNICODE( "com.sun.star.document.FilterFactory" ) ), ::com::sun::star::uno::UNO_QUERY );
+            xTypeCFG   = ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >( xServiceManager->createInstance( DEFINE_CONST_UNICODE( "com.sun.star.document.TypeDetection" ) ), ::com::sun::star::uno::UNO_QUERY );
+        }
+
+        if(
+=====================================================================
+Found a 38 line (188 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+
+		fp=fp->fr_savfp;
+	}
+	return i;
+}
+
+void backtrace_symbols_fd( void **buffer, int size, int fd )
+{
+	FILE	*fp = fdopen( fd, "w" );
+
+	if ( fp )
+	{
+		void **pFramePtr;
+
+		for ( pFramePtr = buffer; size > 0 && pFramePtr && *pFramePtr; pFramePtr++, size-- )
+		{
+			Dl_info		dli;
+			ptrdiff_t	offset;
+
+			if ( 0 != dladdr( *pFramePtr, &dli ) )
+			{
+				if ( dli.dli_fname && dli.dli_fbase )
+				{
+					offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_fbase;
+					fprintf( fp, "%s+0x%x", dli.dli_fname, offset );
+				}
+				if ( dli.dli_sname && dli.dli_saddr )
+				{
+					offset = (ptrdiff_t)*pFramePtr - (ptrdiff_t)dli.dli_saddr;
+					fprintf( fp, "(%s+0x%x)", dli.dli_sname, offset );
+				}
+			}
+			fprintf( fp, "[0x%x]\n", *pFramePtr );
+		}
+
+		fflush( fp );
+		fclose( fp );
+	}
+}
+=====================================================================
+Found a 28 line (188 tokens) duplication in the following files: 
+Starting at line 2058 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 2258 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+
+    sal_Int32 nLastPos( 0 );
+
+    for ( j = 0; j < sal_Int32( aWindowVector.size()); j++ )
+    {
+        const UIElement& rElement = aWindowVector[j];
+        Reference< css::awt::XWindow > xWindow;
+        Reference< XUIElement > xUIElement( rElement.m_xUIElement );
+        css::awt::Rectangle aPosSize;
+        if ( xUIElement.is() )
+        {
+            vos::OGuard	aGuard( Application::GetSolarMutex() );
+            xWindow = Reference< css::awt::XWindow >( xUIElement->getRealInterface(), UNO_QUERY );
+            aPosSize = xWindow->getPosSize();
+
+            Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+            if ( pWindow->GetType() == WINDOW_TOOLBOX )
+            {
+                ::Size aSize = ((ToolBox*)pWindow)->CalcWindowSizePixel( 1 );
+                aPosSize.Width = aSize.Width();
+                aPosSize.Height = aSize.Height();
+            }
+        }
+        else
+            continue;
+
+        if (( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
+            ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ))
+        {
+=====================================================================
+Found a 26 line (188 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+void  SwSrcEditWindow::Resize()
+{
+	// ScrollBars, etc. passiert in Adjust...
+	if ( pTextView )
+	{
+		long nVisY = pTextView->GetStartDocPos().Y();
+		pTextView->ShowCursor();
+		Size aOutSz( GetOutputSizePixel() );
+		long nMaxVisAreaStart = pTextView->GetTextEngine()->GetTextHeight() - aOutSz.Height();
+		if ( nMaxVisAreaStart < 0 )
+			nMaxVisAreaStart = 0;
+		if ( pTextView->GetStartDocPos().Y() > nMaxVisAreaStart )
+		{
+			Point aStartDocPos( pTextView->GetStartDocPos() );
+			aStartDocPos.Y() = nMaxVisAreaStart;
+			pTextView->SetStartDocPos( aStartDocPos );
+			pTextView->ShowCursor();
+		}
+        long nScrollStd = GetSettings().GetStyleSettings().GetScrollBarSize();
+		Size aScrollSz(aOutSz.Width() - nScrollStd, nScrollStd );
+		Point aScrollPos(0, aOutSz.Height() - nScrollStd);
+
+		pHScrollbar->SetPosSizePixel( aScrollPos, aScrollSz);
+
+		aScrollSz.Width() = aScrollSz.Height();
+		aScrollSz.Height() = aOutSz.Height();
+=====================================================================
+Found a 30 line (188 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/tempnam.c
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/tempnam.c
+
+   sprintf( buf, "%08x", getpid() );
+   buf[6]='\0';
+   (void)strcat(p, buf );
+   sprintf( buf, "%04d", count++ );
+   q=p+strlen(p)-6;
+   *q++ = buf[0]; *q++ = buf[1];
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 34 line (188 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 625 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+						(*_rRow)[i+1]->setNull();
+					}
+				}	break;
+				case DataType::DOUBLE:
+				case DataType::INTEGER:
+				case DataType::DECIMAL:				// #99178# OJ
+				case DataType::NUMERIC:
+				{
+					sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter();
+					sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter();
+					String aStrConverted;
+
+					OSL_ENSURE(cDecimalDelimiter && nType != DataType::INTEGER ||
+							   !cDecimalDelimiter && nType == DataType::INTEGER,
+							   "FalscherTyp");
+
+					// In Standard-Notation (DezimalPUNKT ohne Tausender-Komma) umwandeln:
+					for (xub_StrLen j = 0; j < aStr.Len(); ++j)
+					{
+						if (cDecimalDelimiter && aStr.GetChar(j) == cDecimalDelimiter)
+							aStrConverted += '.';
+						else if ( aStr.GetChar(j) == '.' ) // special case, if decimal seperator isn't '.' we have to vut the string after it
+							break; // #99189# OJ
+						else if (cThousandDelimiter && aStr.GetChar(j) == cThousandDelimiter)
+						{
+							// weglassen
+						}
+						else
+							aStrConverted += aStr.GetChar(j) ;
+					}
+					double nVal = ::rtl::math::stringToDouble(aStrConverted.GetBuffer(),',','.',NULL,NULL);
+
+					// #99178# OJ
+					if ( DataType::DECIMAL == nType || DataType::NUMERIC == nType )
+=====================================================================
+Found a 16 line (188 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx
+
+::com::sun::star::uno::Any WrappedUpDownProperty::getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& /*xInnerPropertySet*/ ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+    Reference< chart2::XChartDocument > xChartDoc( m_spChart2ModelContact->getChart2Document() );
+    Reference< chart2::XDiagram > xDiagram( m_spChart2ModelContact->getChart2Diagram() );
+    if( xDiagram.is() && xChartDoc.is() )
+    {
+        ::std::vector< uno::Reference< chart2::XDataSeries > > aSeriesVector(
+            DiagramHelper::getDataSeriesFromDiagram( xDiagram ) );
+        if( aSeriesVector.size() > 0 )
+        {
+            Reference< lang::XMultiServiceFactory > xFact( xChartDoc->getChartTypeManager(), uno::UNO_QUERY );
+            DiagramHelper::tTemplateWithServiceName aTemplateAndService =
+                    DiagramHelper::getTemplateForDiagram( xDiagram, xFact );
+
+            if(    aTemplateAndService.second.equals( C2U( "com.sun.star.chart2.template.StockOpenLowHighClose" ) )
+=====================================================================
+Found a 29 line (188 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 23 line (187 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salframe.h
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salframe.h
+
+    virtual void				ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay );
+    virtual void				StartPresentation( BOOL bStart );
+    virtual void				SetAlwaysOnTop( BOOL bOnTop );
+    virtual void				ToTop( USHORT nFlags );
+    virtual void				SetPointer( PointerStyle ePointerStyle );
+    virtual void				CaptureMouse( BOOL bMouse );
+    virtual void				SetPointerPos( long nX, long nY );
+    virtual void				Flush();
+    virtual void				Sync();
+    virtual void				SetInputContext( SalInputContext* pContext );
+    virtual void				EndExtTextInput( USHORT nFlags );
+    virtual String				GetKeyName( USHORT nKeyCode );
+    virtual String				GetSymbolKeyName( const XubString& rFontName, USHORT nKeyCode );
+    virtual BOOL                MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
+    virtual LanguageType		GetInputLanguage();
+    virtual SalBitmap*			SnapShot();
+    virtual void				UpdateSettings( AllSettings& rSettings );
+    virtual void				Beep( SoundType eSoundType );
+    virtual const SystemEnvData*	GetSystemData() const;
+    virtual SalPointerState		GetPointerState();
+    virtual void				SetParent( SalFrame* pNewParent );
+    virtual bool				SetPluginParent( SystemParentData* pNewParent );
+    virtual void                SetBackgroundBitmap( SalBitmap* );
+=====================================================================
+Found a 40 line (187 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+
+						pWriteAcc->SetPixel( nY, nX, aGrey );
+
+						if( nX < ( nWidth - 1 ) )
+						{
+							const long nNextX = pHMap[ nX + 3 ];
+
+							nGrey11 = nGrey12; nGrey12 = nGrey13; nGrey13 = pReadAcc->GetPixel( pVMap[ nY ], nNextX ).GetIndex();
+							nGrey21 = nGrey22; nGrey22 = nGrey23; nGrey23 = pReadAcc->GetPixel( pVMap[ nY + 1 ], nNextX ).GetIndex();
+							nGrey31 = nGrey32; nGrey32 = nGrey33; nGrey33 = pReadAcc->GetPixel( pVMap[ nY + 2 ], nNextX ).GetIndex();
+						}
+					}
+				}
+
+				delete[] pHMap;
+				delete[] pVMap;
+				aNewBmp.ReleaseAccess( pWriteAcc );
+				bRet = TRUE;
+			}
+
+			ReleaseAccess( pReadAcc );
+
+			if( bRet )
+			{
+				const MapMode	aMap( maPrefMapMode );
+				const Size		aSize( maPrefSize );
+
+				*this = aNewBmp;
+
+				maPrefMapMode = aMap;
+				maPrefSize = aSize;
+			}
+		}
+	}
+
+	return bRet;
+}
+
+// -----------------------------------------------------------------------------
+
+BOOL Bitmap::ImplSolarize( const BmpFilterParam* pFilterParam, const Link* /*pProgress*/ )
+=====================================================================
+Found a 41 line (187 tokens) duplication in the following files: 
+Starting at line 1733 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svddrgmt.cxx
+Starting at line 2099 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svddrgmt.cxx
+
+		aDistortedRect=XPolygon(aMarkRect);
+		SetDragPolys();
+		
+		// #96920# Add extended XOR frame raster
+		SdrPageView* pPV = rView.GetSdrPageView();
+
+		if(pPV)
+		{
+			if(pPV->PageWindowCount())
+			{
+				OutputDevice& rOut = (pPV->GetPageWindow(0)->GetPaintWindow().GetOutputDevice());
+				Rectangle aPixelSize = rOut.LogicToPixel(aMarkRect);
+
+				sal_uInt32 nHorDiv(aPixelSize.GetWidth() / DRAG_CROOK_RASTER_DISTANCE);
+				sal_uInt32 nVerDiv(aPixelSize.GetHeight() / DRAG_CROOK_RASTER_DISTANCE);
+
+				if(nHorDiv > DRAG_CROOK_RASTER_MAXIMUM)
+					nHorDiv = DRAG_CROOK_RASTER_MAXIMUM;
+				if(nHorDiv < DRAG_CROOK_RASTER_MINIMUM)
+					nHorDiv = DRAG_CROOK_RASTER_MINIMUM;
+
+				if(nVerDiv > DRAG_CROOK_RASTER_MAXIMUM)
+					nVerDiv = DRAG_CROOK_RASTER_MAXIMUM;
+				if(nVerDiv < DRAG_CROOK_RASTER_MINIMUM)
+					nVerDiv = DRAG_CROOK_RASTER_MINIMUM;
+
+				basegfx::B2DPolyPolygon aPolyPolygon(pPV->getDragPoly0());
+				aPolyPolygon.append(ImplCreateDragRaster(aMarkRect, nHorDiv, nVerDiv));
+				pPV->setDragPoly0(aPolyPolygon);
+				pPV->setDragPoly(pPV->getDragPoly0());
+			}
+		}
+
+		Show();
+		return TRUE;
+	} else {
+		return FALSE;
+	}
+}
+
+void SdrDragDistort::MovAllPoints()
+=====================================================================
+Found a 39 line (187 tokens) duplication in the following files: 
+Starting at line 2118 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2264 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		pBlockFlags[2] |= 0x40;
+#endif
+
+	*rContents << nSpecialEffect;
+	pBlockFlags[3] |= 0x04;
+
+	WriteAlign(rContents,4);
+	*rContents << rSize.Width;
+	*rContents << rSize.Height;
+
+#if 0
+    aValue.WriteCharArray( *rContents );
+#endif
+
+	WriteAlign(rContents,4);
+
+    nFixedAreaLen = static_cast<sal_uInt16>(rContents->Tell()-nOldPos-4);
+
+	bRet = aFontData.Export(rContents,rPropSet);
+
+    rContents->Seek(nOldPos);
+	*rContents << nStandardId;
+	*rContents << nFixedAreaLen;
+
+	*rContents << pBlockFlags[0];
+	*rContents << pBlockFlags[1];
+	*rContents << pBlockFlags[2];
+	*rContents << pBlockFlags[3];
+	*rContents << pBlockFlags[4];
+	*rContents << pBlockFlags[5];
+	*rContents << pBlockFlags[6];
+	*rContents << pBlockFlags[7];
+
+	DBG_ASSERT((rContents.Is() &&
+		(SVSTREAM_OK==rContents->GetError())),"damn");
+	return bRet;
+}
+
+sal_Bool OCX_FieldControl::Export(SvStorageRef &rObj,
+=====================================================================
+Found a 27 line (187 tokens) duplication in the following files: 
+Starting at line 568 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptPentagonVert[] =
+{
+	{ 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 },
+	{ 21600, 8260 }, { 10800, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptPentagonTextRect[] =
+{
+	{ { 4230, 5080 }, { 17370, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptPentagonGluePoints[] =
+{
+	{ 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 },
+	{ 17370, 21600 }, { 21600, 8260 }
+};
+static const mso_CustomShape msoPentagon =
+{
+	(SvxMSDffVertPair*)mso_sptPentagonVert, sizeof( mso_sptPentagonVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0, 
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptPentagonTextRect, sizeof( mso_sptPentagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptPentagonGluePoints, sizeof( mso_sptPentagonGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 94 line (187 tokens) duplication in the following files: 
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+Starting at line 1641 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+
+		ocGetDiffDate360,	//  166 D360 (US-Version, ersatzweise wie ander D360-Funktion)
+		ocNoName,			//  167
+		ocNoName,			//  168
+		ocNoName,			//  169
+		ocNoName,			//  170
+		ocNoName,			//  171
+		ocNoName,			//  172
+		ocNoName,			//  173
+		ocNoName,			//  174
+		ocNoName,			//  175
+		ocNoName,			//  176
+		ocNoName,			//  177
+		ocNoName,			//  178
+		ocNoName,			//  179
+		ocNoName,			//  180
+		ocNoName,			//  181
+		ocNoName,			//  182
+		ocNoName,			//  183
+		ocNoName,			//  184
+		ocNoName,			//  185
+		ocNoName,			//  186
+		ocNoName,			//  187
+		ocNoName,			//  188
+		ocNoName,			//  189
+		ocNoName,			//  190
+		ocNoName,			//  191
+		ocNoName,			//  192
+		ocNoName,			//  193
+		ocNoName,			//  194
+		ocNoName,			//  195
+		ocNoName,			//  196
+		ocNoName,			//  197
+		ocNoName,			//  198
+		ocNoName,			//  199
+		ocNoName,			//  200
+		ocNoName,			//  201
+		ocNoName,			//  202
+		ocNoName,			//  203
+		ocNoName,			//  204
+		ocNoName,			//  205
+		ocNoName,			//  206 ?
+		ocNoName,			//  207
+		ocNoName,			//  208
+		ocNoName,			//  209
+		ocNoName,			//  210
+		ocNoName,			//  211
+		ocNoName,			//  212
+		ocNoName,			//  213
+		ocNoName,			//  214
+		ocNoName,			//  215
+		ocNoName,			//  216
+		ocNoName,			//  217
+		ocNoName,			//  218
+		ocNoName,			//  219
+		ocNoName,			//  220
+		ocNoName,			//  221
+		ocNoName,			//  222
+		ocNoName,			//  223
+		ocNoName,			//  224
+		ocNoName,			//  225
+		ocNoName,			//  226
+		ocNoName,			//  227
+		ocNoName,			//  228
+		ocNoName,			//  229
+		ocNoName,			//  230
+		ocNoName,			//  231
+		ocNoName,			//  232
+		ocNoName,			//  233
+		ocNoName,			//  234
+		ocNoName,			//  235
+		ocNoName,			//  236
+		ocNoName,			//  237
+		ocNoName,			//  238
+		ocNoName,			//  239
+		ocNoName,			//  240
+		ocNoName,			//  241
+		ocNoName,			//  242
+		ocNoName,			//  243
+		ocNoName,			//  244
+		ocNoName,			//  245
+		ocNoName,			//  246
+		ocNoName,			//  247
+		ocNoName,			//  248
+		ocNoName,			//  249
+		ocNoName,			//  250
+		ocNoName,			//  251
+		ocNoName,			//  252
+		ocNoName,			//  253
+		ocNoName,			//  254
+		ocNoName			//  255 ?
+	};
+
+	return pToken[ nIndex ];
+}
+=====================================================================
+Found a 22 line (187 tokens) duplication in the following files: 
+Starting at line 545 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+Starting at line 618 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+
+	if (bArea)
+		rAttrSet.Put( XLineWidthItem( 50 ) );				// Bereich
+	else
+		rAttrSet.Put( XLineWidthItem( 0 ) );				// einzelne Referenz
+
+	ColorData nColorData = ( bRed ? GetErrorColor() : GetArrowColor() );
+	rAttrSet.Put( XLineColorItem( String(), Color( nColorData ) ) );
+
+	basegfx::B2DPolygon aTempPoly;
+	aTempPoly.append(basegfx::B2DPoint(aStartPos.X(), aStartPos.Y()));
+	aTempPoly.append(basegfx::B2DPoint(aEndPos.X(), aEndPos.Y()));
+	SdrPathObj* pArrow = new SdrPathObj(OBJ_LINE, basegfx::B2DPolyPolygon(aTempPoly));
+	pArrow->NbcSetLogicRect(Rectangle(aStartPos,aEndPos));	//! noetig ???
+
+	pArrow->SetMergedItemSetAndBroadcast(rAttrSet);
+
+	ScDrawLayer::SetAnchor( pArrow, SCA_CELL );
+	pArrow->SetLayer( SC_LAYER_INTERN );
+	pPage->InsertObject( pArrow );
+	pModel->AddCalcUndo( new SdrUndoInsertObj( *pArrow ) );
+
+	ScDrawObjData* pData = ScDrawLayer::GetObjData( pArrow, TRUE );
+=====================================================================
+Found a 8 line (187 tokens) duplication in the following files: 
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 535 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* RelSegment */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
+=====================================================================
+Found a 37 line (187 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 1712 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+void ThreeByteToFourByte (const sal_Int8* pBuffer, const sal_Int32 nStart, const sal_Int32 nFullLen, rtl::OUStringBuffer& sBuffer)
+{
+    sal_Int32 nLen(nFullLen - nStart);
+    if (nLen > 3)
+        nLen = 3;
+    if (nLen == 0)
+    {
+        sBuffer.setLength(0);
+        return;
+    }
+
+    sal_Int32 nBinaer;
+    switch (nLen)
+    {
+        case 1:
+        {
+            nBinaer = ((sal_uInt8)pBuffer[nStart + 0]) << 16;
+        }
+        break;
+        case 2:
+        {
+            nBinaer = (((sal_uInt8)pBuffer[nStart + 0]) << 16) +
+                    (((sal_uInt8)pBuffer[nStart + 1]) <<  8);
+        }
+        break;
+        default:
+        {
+            nBinaer = (((sal_uInt8)pBuffer[nStart + 0]) << 16) +
+                    (((sal_uInt8)pBuffer[nStart + 1]) <<  8) +
+                    ((sal_uInt8)pBuffer[nStart + 2]);
+        }
+        break;
+    }
+
+    sBuffer.appendAscii("====");
+
+    sal_uInt8 nIndex (static_cast<sal_uInt8>((nBinaer & 0xFC0000) >> 18));
+=====================================================================
+Found a 25 line (187 tokens) duplication in the following files: 
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 4337 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbf, 0xbb },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x01, 0xf7, 0xd7 },
+=====================================================================
+Found a 7 line (187 tokens) duplication in the following files: 
+Starting at line 1383 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0,10,10,10,10,10,10,10,// 2610 - 261f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2620 - 262f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2630 - 263f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2640 - 264f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2650 - 265f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2660 - 266f
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2670 - 267f
+=====================================================================
+Found a 8 line (187 tokens) duplication in the following files: 
+Starting at line 1142 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,17,17,17, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0dd0 - 0ddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0de0 - 0def
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0df0 - 0dff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e00 - 0e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e10 - 0e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e20 - 0e2f
+     0,17, 0, 0,17,17,17,17,17,17,17, 0, 0, 0, 0, 4,// 0e30 - 0e3f
+=====================================================================
+Found a 6 line (187 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c20 - 2c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c30 - 2c3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c40 - 2c4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c50 - 2c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c60 - 2c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c70 - 2c7f
+=====================================================================
+Found a 37 line (187 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1712 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+void ThreeByteToFourByte (const sal_Int8* pBuffer, const sal_Int32 nStart, const sal_Int32 nFullLen, rtl::OUStringBuffer& sBuffer)
+{
+    sal_Int32 nLen(nFullLen - nStart);
+    if (nLen > 3)
+        nLen = 3;
+    if (nLen == 0)
+    {
+        sBuffer.setLength(0);
+        return;
+    }
+
+    sal_Int32 nBinaer;
+    switch (nLen)
+    {
+        case 1:
+        {
+            nBinaer = ((sal_uInt8)pBuffer[nStart + 0]) << 16;
+        }
+        break;
+        case 2:
+        {
+            nBinaer = (((sal_uInt8)pBuffer[nStart + 0]) << 16) +
+                    (((sal_uInt8)pBuffer[nStart + 1]) <<  8);
+        }
+        break;
+        default:
+        {
+            nBinaer = (((sal_uInt8)pBuffer[nStart + 0]) << 16) +
+                    (((sal_uInt8)pBuffer[nStart + 1]) <<  8) +
+                    ((sal_uInt8)pBuffer[nStart + 2]);
+        }
+        break;
+    }
+
+    sBuffer.appendAscii("====");
+
+    sal_uInt8 nIndex (static_cast<sal_uInt8>((nBinaer & 0xFC0000) >> 18));
+=====================================================================
+Found a 48 line (187 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SServices.cxx
+
+	for (sal_uInt32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname, 
+				const Sequence< OUString > & Services, 
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try																							
+		{																								
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);	
+		}
+		catch(...)
+		{
+		}
+		return xRet.is();
+	}
+	
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	**ppEnv
+=====================================================================
+Found a 29 line (187 tokens) duplication in the following files: 
+Starting at line 1388 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+Starting at line 1456 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+
+        }
+	}
+	catch (configuration::InvalidName& ex)
+	{
+		ExceptionMapper e(ex);
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw UnknownPropertyException( e.message(), xContext );
+	}
+	catch (configuration::ConstraintViolation & ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot get Default: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw UnknownPropertyException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot get Default: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+
+	return aDefaults;
+=====================================================================
+Found a 32 line (187 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+Starting at line 652 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+
+		throw UnknownPropertyException( e.message(), xContext );
+	}
+	catch (configuration::TypeMismatch& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::ConstraintViolation& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw PropertyVetoException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+}
+
+// XMultiHierarchicalPropertySet
+//-----------------------------------------------------------------------------------
+void implSetHierarchicalPropertyValues( NodeGroupAccess& rNode, const Sequence< OUString >& aPropertyNames, const Sequence< Any >& aValues ) 
+=====================================================================
+Found a 7 line (187 tokens) duplication in the following files: 
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idl/cx_idlco.cxx
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	 err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+	 wht,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // ... 63
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // ... 95
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+	 fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig  // ... 127
+=====================================================================
+Found a 23 line (186 tokens) duplication in the following files: 
+Starting at line 3963 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/com/sun/star/help/HelpLinker.cxx
+Starting at line 4013 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/com/sun/star/help/HelpLinker.cxx
+
+                for (int max = n1; max < n2; a >>= 1, power2 <<= 1, lev++)
+                    if ((a & 1) != 0)
+                        min -= power2;
+                    else
+                        max += power2;
+            else
+                for ( ; min > n2; a >>= 1, power2 <<= 1, lev++)
+                    if ((a & 1) != 0)
+                        min -= power2;
+            // lev 0s, 1, lev bits of (n2 - min) plus following value
+            if (lev*2 + 1 + k <= NBits)
+                _buffer.append((1<<lev | (n2 - min)) << k | rem, lev*2+1+k);
+            else 
+            {
+                if (lev*2 + 1 <= NBits)
+                    _buffer.append(1 << lev | (n2 - min), lev*2 + 1);
+                else 
+                {
+                    _buffer.append(0, lev);
+                    _buffer.append(1 << lev | (n2 - min), lev + 1);
+                }
+                _buffer.append(rem, k);
+            }
+=====================================================================
+Found a 9 line (186 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfile_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkfile_curs.h
+
+static char linkfile_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00,
+   0xfe, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00,
+   0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00,
+   0xfe, 0x02, 0x00, 0x00, 0xfe, 0x06, 0x00, 0x00, 0xfe, 0x0e, 0x00, 0x00,
+   0xfe, 0x1e, 0x00, 0x00, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
+   0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x03, 0x00,
+   0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
+   0x00, 0xc2, 0xe0, 0x3f, 0x00, 0xc0, 0xe0, 0x30, 0x00, 0x80, 0xe1, 0x31,
+=====================================================================
+Found a 46 line (186 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/provider.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/helpprovider/helpcontentprovider.cxx
+
+	return Seq;
+}
+
+
+//=========================================================================
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const rtl::OUString & rImplementationName,
+   						   uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 30 line (186 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+	return Sequence< OUString >( &aName, 1 );
+}
+
+//==================================================================================================
+static void assign( TestElement & rData,
+					sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+					sal_Int16 nShort, sal_uInt16 nUShort,
+					sal_Int32 nLong, sal_uInt32 nULong,
+					sal_Int64 nHyper, sal_uInt64 nUHyper,
+					float fFloat, double fDouble,
+					TestEnum eEnum, const ::rtl::OUString& rStr,
+					const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+					const ::com::sun::star::uno::Any& rAny )
+{
+	rData.Bool = bBool;
+	rData.Char = cChar;
+	rData.Byte = nByte;
+	rData.Short = nShort;
+	rData.UShort = nUShort;
+	rData.Long = nLong;
+	rData.ULong = nULong;
+	rData.Hyper = nHyper;
+	rData.UHyper = nUHyper;
+	rData.Float = fFloat;
+	rData.Double = fDouble;
+	rData.Enum = eEnum;
+	rData.String = rStr;
+	rData.Interface = xTest;
+	rData.Any = rAny;
+}
+=====================================================================
+Found a 22 line (186 tokens) duplication in the following files: 
+Starting at line 3270 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxed.cxx
+
+	if (pViewMin!=NULL) {
+		*pViewMin=aViewInit;
+
+		long nXFree=aAnkSiz.Width()-aPaperMin.Width();
+		if (eHAdj==SDRTEXTHORZADJUST_LEFT) pViewMin->Right()-=nXFree;
+		else if (eHAdj==SDRTEXTHORZADJUST_RIGHT) pViewMin->Left()+=nXFree;
+		else { pViewMin->Left()+=nXFree/2; pViewMin->Right()=pViewMin->Left()+aPaperMin.Width(); }
+
+		long nYFree=aAnkSiz.Height()-aPaperMin.Height();
+		if (eVAdj==SDRTEXTVERTADJUST_TOP) pViewMin->Bottom()-=nYFree;
+		else if (eVAdj==SDRTEXTVERTADJUST_BOTTOM) pViewMin->Top()+=nYFree;
+		else { pViewMin->Top()+=nYFree/2; pViewMin->Bottom()=pViewMin->Top()+aPaperMin.Height(); }
+	}
+
+	// Die PaperSize soll in den meisten Faellen von selbst wachsen
+	// #89459#
+	if(IsVerticalWriting())
+		aPaperMin.Width() = 0;
+	else
+		aPaperMin.Height() = 0; // #33102#
+
+	if(eHAdj!=SDRTEXTHORZADJUST_BLOCK || bFitToSize) {
+=====================================================================
+Found a 38 line (186 tokens) duplication in the following files: 
+Starting at line 851 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+
+Sequence< OUString > SAL_CALL NestedKeyImpl::getKeyNames(  ) 
+	throw(InvalidRegistryException, RuntimeException)
+{
+	Guard< Mutex > aGuard( m_pRegistry->m_mutex );
+	if ( !m_localKey.is() && !m_defaultKey.is() )
+	{
+		throw InvalidRegistryException();
+	}
+
+	Sequence<OUString> localSeq, defaultSeq;
+
+	if ( m_localKey.is() && m_localKey->isValid() )
+	{
+		localSeq = m_localKey->getKeyNames();	
+	}
+	if ( m_defaultKey.is() && m_defaultKey->isValid() )
+	{
+		defaultSeq = m_defaultKey->getKeyNames();	
+	}
+
+	sal_uInt32 local = localSeq.getLength();
+	sal_uInt32 def = defaultSeq.getLength();
+	sal_uInt32 len = 0;
+	
+	sal_uInt32 i, j;
+	for (i=0; i < local; i++)
+	{
+		for (j=0 ; j < def; j++)
+		{
+			if ( localSeq.getConstArray()[i] == defaultSeq.getConstArray()[j] )
+			{
+				len++;
+				break;
+			}
+		}
+	}
+	
+	Sequence<OUString> 	retSeq(local + def - len);
+=====================================================================
+Found a 46 line (186 tokens) duplication in the following files: 
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/regmerge.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/regview.cxx
+
+using namespace ::rtl;
+using namespace ::osl;
+
+sal_Bool isFileUrl(const OString& fileName)
+{
+    if (fileName.indexOf("file://") == 0 )
+        return sal_True;
+    return sal_False;
+}
+
+OUString convertToFileUrl(const OString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return OStringToOUString(fileName, osl_getThreadTextEncoding());
+    }
+
+    OUString uUrlFileName;
+    OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding());
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None)
+        {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+
+
+#if (defined UNX) || (defined OS2)
+int main( int argc, char * argv[] )
+=====================================================================
+Found a 25 line (186 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+	for ( int i = 0; i < (int)TB_XML_ENTRY_COUNT; i++ )
+	{
+		if ( ToolBoxEntries[i].nNamespace == TB_NS_TOOLBAR )
+		{
+			OUString temp( aNamespaceToolBar );
+			temp += aSeparator;
+			temp += OUString::createFromAscii( ToolBoxEntries[i].aEntryName );
+			m_aToolBoxMap.insert( ToolBoxHashMap::value_type( temp, (ToolBox_XML_Entry)i ) );
+		}
+		else
+		{
+			OUString temp( aNamespaceXLink );
+			temp += aSeparator;
+			temp += OUString::createFromAscii( ToolBoxEntries[i].aEntryName );
+			m_aToolBoxMap.insert( ToolBoxHashMap::value_type( temp, (ToolBox_XML_Entry)i ) );
+		}
+	}
+
+	// pre-calculate a hash code for all style strings to speed up xml read process
+	m_nHashCode_Style_Radio		    = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_RADIO ).hashCode();
+	m_nHashCode_Style_Auto		    = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_AUTO ).hashCode();
+	m_nHashCode_Style_Left		    = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_LEFT ).hashCode();
+	m_nHashCode_Style_AutoSize	    = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_AUTOSIZE ).hashCode();
+	m_nHashCode_Style_DropDown	    = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_DROPDOWN ).hashCode();
+	m_nHashCode_Style_Repeat	    = OUString::createFromAscii( ATTRIBUTE_ITEMSTYLE_REPEAT ).hashCode();
+=====================================================================
+Found a 25 line (186 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/datatest.cxx
+
+	ODataStreamTest( const XMultiServiceFactoryRef & rFactory ) : m_rFactory( rFactory ){}
+
+public: // refcounting
+	BOOL						queryInterface( Uik aUik, XInterfaceRef & rOut );
+	void 						acquire() 						 { OWeakObject::acquire(); }
+	void 						release() 						 { OWeakObject::release(); }
+	void* 						getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); }
+
+public:
+    virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject)
+    															THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual INT32 test(	const UString& TestName,
+    					const XInterfaceRef& TestObject,
+    					INT32 hTestHandle) 						THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual BOOL testPassed(void) 								THROWS( (	UsrSystemException) );
+    virtual Sequence< UString > getErrors(void) 				THROWS( (UsrSystemException) );
+    virtual Sequence< UsrAny > getErrorExceptions(void) 		THROWS( (UsrSystemException) );
+    virtual Sequence< UString > getWarnings(void) 				THROWS( (UsrSystemException) );
+
+private:
+	void testSimple( const XDataInputStreamRef & , const XDataOutputStreamRef &);
+=====================================================================
+Found a 29 line (186 tokens) duplication in the following files: 
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+	else if( !m_bLink && URL.Complete == m_aInterceptedURL[4] )
+		return (frame::XDispatch*)this;
+	else if(URL.Complete == m_aInterceptedURL[5])
+		return (frame::XDispatch*)this;
+	else {
+		if(m_xSlaveDispatchProvider.is())
+			return m_xSlaveDispatchProvider->queryDispatch(
+				URL,TargetFrameName,SearchFlags);
+		else
+			return uno::Reference<frame::XDispatch>(0);
+	}
+}
+
+uno::Sequence< uno::Reference< frame::XDispatch > > SAL_CALL
+Interceptor::queryDispatches(
+	const uno::Sequence<frame::DispatchDescriptor >& Requests )
+	throw (
+		uno::RuntimeException
+	)
+{
+	uno::Sequence< uno::Reference< frame::XDispatch > > aRet;
+	osl::MutexGuard aGuard(m_aMutex);
+	if(m_xSlaveDispatchProvider.is())
+		aRet = m_xSlaveDispatchProvider->queryDispatches(Requests);
+	else
+		aRet.realloc(Requests.getLength());
+	
+	for(sal_Int32 i = 0; i < Requests.getLength(); ++i)
+		if ( !m_bLink && m_aInterceptedURL[0] == Requests[i].FeatureURL.Complete )
+=====================================================================
+Found a 37 line (186 tokens) duplication in the following files: 
+Starting at line 360 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/dbloader2.cxx
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/browser/dbloader.cxx
+
+	static ::dbaui::OMultiInstanceAutoRegistration< DBContentLoader > aAutoRegistration;
+}
+// -------------------------------------------------------------------------
+Reference< XInterface > SAL_CALL DBContentLoader::Create( const Reference< XMultiServiceFactory >  & rSMgr )
+{
+	return *(new DBContentLoader(rSMgr));
+}
+// -------------------------------------------------------------------------
+// XServiceInfo
+::rtl::OUString SAL_CALL DBContentLoader::getImplementationName() throw(  )
+{
+	return getImplementationName_Static();
+}
+// -------------------------------------------------------------------------
+
+// XServiceInfo
+sal_Bool SAL_CALL DBContentLoader::supportsService(const ::rtl::OUString& ServiceName) throw(  )
+{
+	Sequence< ::rtl::OUString > aSNL = getSupportedServiceNames();
+	const ::rtl::OUString * pBegin	= aSNL.getConstArray();
+	const ::rtl::OUString * pEnd	= pBegin + aSNL.getLength();
+	for( ; pBegin != pEnd; ++pBegin)
+		if( *pBegin == ServiceName )
+			return sal_True;
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+// XServiceInfo
+Sequence< ::rtl::OUString > SAL_CALL DBContentLoader::getSupportedServiceNames(void) throw(  )
+{
+	return getSupportedServiceNames_Static();
+}
+// -------------------------------------------------------------------------
+// ORegistryServiceManager_Static
+Sequence< ::rtl::OUString > DBContentLoader::getSupportedServiceNames_Static(void) throw(  )
+{
+	Sequence< ::rtl::OUString > aSNS( 2 );
+=====================================================================
+Found a 38 line (186 tokens) duplication in the following files: 
+Starting at line 935 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx
+
+	m_aLastWarning = SQLWarning();
+}
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper* OStatement_Base::createArrayHelper( ) const
+{
+	// this properties are define by the service statement
+	// they must in alphabetic order
+	Sequence< Property > aProps(10);
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & OStatement_Base::getInfoHelper()
+{
+	return *const_cast<OStatement_Base*>(this)->getArrayHelper();
+}
+// -------------------------------------------------------------------------
+sal_Bool OStatement_Base::convertFastPropertyValue(
+							Any & rConvertedValue,
+							Any & rOldValue,
+							sal_Int32 nHandle,
+							const Any& rValue )
+								throw (::com::sun::star::lang::IllegalArgumentException)
+{
+	sal_Bool bConverted = sal_False;
+=====================================================================
+Found a 44 line (186 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/PageBackground.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/Wall.cxx
+
+    rOutMap[ ::chart::LineProperties::PROP_LINE_STYLE ] =
+        uno::makeAny( drawing::LineStyle_NONE );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::FillProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+// ================================================================================
+
+namespace chart
+{
+=====================================================================
+Found a 43 line (186 tokens) duplication in the following files: 
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx
+
+void cc50_solaris_sparc_fillUnoException(
+	void* pCppExc,
+	const char* pInfo,
+	uno_Any* pUnoExc,
+	uno_Mapping * pCpp2Uno )
+{
+    OSL_ASSERT( pInfo != 0 );
+    OString uno_name( toUNOname( pInfo ) );
+    OUString aName( OStringToOUString(
+                        uno_name, RTL_TEXTENCODING_ASCII_US ) );
+    typelib_TypeDescription * pExcTypeDescr = 0;
+    typelib_typedescription_getByName( &pExcTypeDescr, aName.pData );
+
+    if (pExcTypeDescr == 0) // the thing that should not be
+    {
+        RuntimeException aRE(
+            OUString( RTL_CONSTASCII_USTRINGPARAM(
+                          "exception type not found: ") ) + aName,
+            Reference< XInterface >() );
+        Type const & rType = ::getCppuType( &aRE );
+        uno_type_any_constructAndConvert(
+            pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
+#if OSL_DEBUG_LEVEL > 0
+        OString cstr( OUStringToOString(
+                          aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
+        OSL_ENSURE( 0, cstr.getStr() );
+#endif
+        return;
+    }
+
+#if OSL_DEBUG_LEVEL > 1
+    fprintf( stderr, "> c++ exception occured: %s\n",
+             ::rtl::OUStringToOString(
+                 pExcTypeDescr->pTypeName,
+                 RTL_TEXTENCODING_ASCII_US ).getStr() );
+#endif
+    // construct uno exception any
+    uno_any_constructAndConvert(
+        pUnoExc, pCppExc, pExcTypeDescr, pCpp2Uno );
+    typelib_typedescription_release( pExcTypeDescr );
+}
+
+}
+=====================================================================
+Found a 30 line (185 tokens) duplication in the following files: 
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+            calc_type fg[4];
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            color_type* span = base_type::allocator().span();
+            const int16* weight_array = base_type::filter().weight_array() + 
+                                        ((base_type::filter().diameter()/2 - 1) << 
+                                          image_subpixel_shift);
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                int x_hr;
+                int y_hr;
+
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                unsigned weight;
+=====================================================================
+Found a 48 line (185 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/decrypter.cxx
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/decrypter.cxx
+
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.xsec.XMLEncryption"), xContext ) ;
+		OSL_ENSURE( xmlencrypter.is() ,
+			"Decryptor - "
+			"Cannot get service instance of \"xsec.XMLEncryption\"" ) ;
+
+		Reference< XXMLEncryption > xEncrypter( xmlencrypter , UNO_QUERY ) ;
+		OSL_ENSURE( xEncrypter.is() ,
+			"Decryptor - "
+			"Cannot get interface of \"XXMLEncryption\" from service \"xsec.XMLEncryption\"" ) ;
+
+
+		//Perform decryption
+		Reference< XXMLElementWrapper> xDecrRes = xEncrypter->decrypt( xTemplate , xSecCtx ) ;
+		OSL_ENSURE( xDecrRes.is() ,
+			"Decryptor - "
+			"Cannot decrypt the xml document" ) ;
+	} catch( Exception& e ) {
+		fprintf( stderr , "Error Message: %s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		goto done ;
+	}
+
+	dstFile = fopen( argv[3], "w" ) ;
+	if( dstFile == NULL ) {
+		fprintf( stderr , "### Can not open file %s\n", argv[3] ) ;
+		goto done ;
+	}
+
+	//Save result
+	xmlDocDump( dstFile, doc ) ;
+
+done:
+	if( dstFile != NULL )
+		fclose( dstFile ) ;
+
+	if( slot != NULL )
+		PK11_FreeSlot( slot ) ;
+
+	PK11_LogoutAll() ;
+	NSS_Shutdown() ;
+
+	/* Shutdown libxslt/libxml */
+	#ifndef XMLSEC_NO_XSLT
+	xsltCleanupGlobals();            
+	#endif /* XMLSEC_NO_XSLT */
+	xmlCleanupParser();
+
+	return 0;
+}
+=====================================================================
+Found a 40 line (185 tokens) duplication in the following files: 
+Starting at line 1973 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev.cxx
+Starting at line 1518 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+	DBG_TRACE( "OutputDevice::DrawPixel()" );
+	DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice );
+
+	Color aColor( rColor );
+
+	if( mnDrawMode & ( DRAWMODE_BLACKLINE | DRAWMODE_WHITELINE | 
+					   DRAWMODE_GRAYLINE | DRAWMODE_GHOSTEDLINE |
+                       DRAWMODE_SETTINGSLINE ) )
+	{
+		if( !ImplIsColorTransparent( aColor ) )
+		{
+			if( mnDrawMode & DRAWMODE_BLACKLINE )
+			{
+				aColor = Color( COL_BLACK );
+			}
+			else if( mnDrawMode & DRAWMODE_WHITELINE )
+			{
+				aColor = Color( COL_WHITE );
+			}
+			else if( mnDrawMode & DRAWMODE_GRAYLINE )
+			{
+				const UINT8 cLum = aColor.GetLuminance();
+				aColor = Color( cLum, cLum, cLum );
+			}
+            else if( mnDrawMode & DRAWMODE_SETTINGSLINE )
+            {
+                aColor = GetSettings().GetStyleSettings().GetFontColor();
+            }
+
+			if( mnDrawMode & DRAWMODE_GHOSTEDLINE )
+			{
+				aColor = Color( ( aColor.GetRed() >> 1 ) | 0x80,
+								( aColor.GetGreen() >> 1 ) | 0x80,
+								( aColor.GetBlue() >> 1 ) | 0x80 );
+			}
+		}
+	}
+
+	if ( mpMetaFile )
+		mpMetaFile->AddAction( new MetaPixelAction( rPt, aColor ) );
+=====================================================================
+Found a 46 line (185 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 551 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const ucb::CommandInfo aDocCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                -1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                -1,
+                getCppuType( static_cast< ucb::TransferInfo * >( 0 ) )
+            )
+=====================================================================
+Found a 68 line (185 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+using namespace myucp;
+
+//=========================================================================
+//
+// Content implementation.
+//
+//=========================================================================
+
+//=========================================================================
+//
+// IMPORTENT: If any property data ( name / type / ... ) are changed, then
+//            Content::getPropertyValues(...) must be adapted too!
+//
+//=========================================================================
+
+// virtual
+uno::Sequence< beans::Property > Content::getProperties(
+    const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
+{
+	// @@@ Add additional properties...
+
+	// @@@ Note: If your data source supports adding/removing properties,
+	//           you should implement the interface XPropertyContainer
+	//           by yourself and supply your own logic here. The base class
+	//           uses the service "com.sun.star.ucb.Store" to maintain
+	//           Additional Core properties. But using server functionality
+	//           is preferred! In fact you should return a table conatining
+	//           even that dynamicly added properties.
+
+//	osl::Guard< osl::Mutex > aGuard( m_aMutex );
+
+	//=================================================================
+	//
+	// Supported properties
+	//
+	//=================================================================
+
+	#define PROPERTY_COUNT 4
+
+    static beans::Property aPropertyInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory properties
+		///////////////////////////////////////////////////////////////
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND
+		)
+=====================================================================
+Found a 30 line (185 tokens) duplication in the following files: 
+Starting at line 4393 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3987 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+
+	{ 2540, 0 }, { 2540, 21600 },
+
+	{ 21600 - 2540, 0 }, { 21600 - 2540, 21600 }
+};
+static const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] =
+{
+	0x4000, 0x0003, 0x6000, 0x8000,
+	0x4000, 0x0001, 0x8000,
+	0x4000, 0x0001, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] = 
+{
+	{ { 2540, 0 }, { 21600 - 2540, 21600 } }
+};
+static const mso_CustomShape msoFlowChartPredefinedProcess =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartPredefinedProcessVert, sizeof( mso_sptFlowChartPredefinedProcessVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartPredefinedProcessSegm, sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartPredefinedProcessTextRect, sizeof( mso_sptFlowChartPredefinedProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 8 line (185 tokens) duplication in the following files: 
+Starting at line 540 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_TABLAYOUT),SC_WID_UNO_TABLAYOUT,&getCppuType((sal_Int16*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_VALIXML),	SC_WID_UNO_VALIXML,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS),	ATTR_VER_JUSTIFY,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_WRITING),	ATTR_WRITINGDIR,	&getCppuType((sal_Int16*)0),			0, 0 },
+=====================================================================
+Found a 33 line (185 tokens) duplication in the following files: 
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dociter.cxx
+Starting at line 663 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dociter.cxx
+
+	nEndTab( rRange.aEnd.Tab() ),
+	bSubTotal(bSTotal)
+
+{
+	PutInOrder( nStartCol, nEndCol);
+	PutInOrder( nStartRow, nEndRow);
+	PutInOrder( nStartTab, nEndTab );
+
+	if (!ValidCol(nStartCol)) nStartCol = MAXCOL;
+	if (!ValidCol(nEndCol)) nEndCol = MAXCOL;
+	if (!ValidRow(nStartRow)) nStartRow = MAXROW;
+	if (!ValidRow(nEndRow)) nEndRow = MAXROW;
+	if (!ValidTab(nStartTab)) nStartTab = MAXTAB;
+	if (!ValidTab(nEndTab)) nEndTab = MAXTAB;
+
+	while (nEndTab>0 && !pDoc->pTab[nEndTab])
+		--nEndTab;										// nur benutzte Tabellen
+	if (nStartTab>nEndTab)
+		nStartTab = nEndTab;
+
+	nCol = nStartCol;
+	nRow = nStartRow;
+	nTab = nStartTab;
+	nColRow = 0;					// wird bei GetFirst initialisiert
+
+	if (!pDoc->pTab[nTab])
+	{
+		DBG_ERROR("Tabelle nicht gefunden");
+		nStartCol = nCol = MAXCOL+1;
+		nStartRow = nRow = MAXROW+1;
+		nStartTab = nTab = MAXTAB+1;	// -> Abbruch bei GetFirst
+	}
+}
+=====================================================================
+Found a 42 line (185 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/checksingleton.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/regmerge.cxx
+
+using namespace ::rtl;
+using namespace ::osl;
+
+sal_Bool isFileUrl(const OString& fileName)
+{
+    if (fileName.indexOf("file://") == 0 )
+        return sal_True;
+    return sal_False;
+}
+
+OUString convertToFileUrl(const OString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return OStringToOUString(fileName, osl_getThreadTextEncoding());
+    }
+
+    OUString uUrlFileName;
+    OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding());
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None)
+        {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+=====================================================================
+Found a 8 line (185 tokens) duplication in the following files: 
+Starting at line 1350 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+=====================================================================
+Found a 8 line (185 tokens) duplication in the following files: 
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1000 - 100f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1010 - 101f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,17,// 1020 - 102f
+=====================================================================
+Found a 7 line (185 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 988 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0250 - 025f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0260 - 026f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0270 - 027f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0290 - 029f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 02a0 - 02af
+     0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0,// 02b0 - 02bf
+=====================================================================
+Found a 7 line (185 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,22, 4, 4, 4, 0,// 30f0 - 30ff
+=====================================================================
+Found a 6 line (185 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 895 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 7 line (185 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,22, 4, 4, 4, 0,// 30f0 - 30ff
+=====================================================================
+Found a 5 line (185 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x9f, 0x0000}, // 0300 - 0307
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0308 - 030f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0310 - 0317
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0318 - 031f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0320 - 0327
+=====================================================================
+Found a 6 line (185 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 827 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7a0 - d7af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7b0 - d7bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7c0 - d7cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7d0 - d7df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7e0 - d7ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7f0 - d7ff
+=====================================================================
+Found a 39 line (185 tokens) duplication in the following files: 
+Starting at line 1798 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+Starting at line 1861 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+
+					ImplWriteLine( "/Decode[0 255]" );
+					*mpPS << "/ImageMatrix[";
+					ImplWriteLong( nWidth );
+					*mpPS << "0 0 ";
+					ImplWriteLong( -nHeight );
+					ImplWriteLong( 0);
+					ImplWriteLong( nHeight, PS_NONE );
+					ImplWriteByte( ']', PS_RET );
+					ImplWriteLine( "/DataSource currentfile" );
+					ImplWriteLine( "/ASCIIHexDecode filter" );
+					if ( mbCompression )
+						ImplWriteLine( "/LZWDecode filter" );
+					ImplWriteLine( ">>" );
+					ImplWriteLine( "image" );
+					if ( mbCompression )
+					{
+						StartCompression();
+						for ( long y = 0; y < nHeight; y++ )
+						{
+							for ( long x = 0; x < nWidth; x++ )
+							{
+								Compress( (BYTE)pAcc->GetPixel( y, x ) );
+							}
+						}
+						EndCompression();
+					}
+					else
+					{
+						for ( long y = 0; y < nHeight; y++ )
+						{
+							for ( long x = 0; x < nWidth; x++ )
+							{
+								ImplWriteHexByte( (BYTE)pAcc->GetPixel( y, x ) );
+							}
+						}
+					}
+				}
+				else // 24 bit color
+				{
+=====================================================================
+Found a 6 line (185 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 827 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7a0 - d7af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7b0 - d7bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7c0 - d7cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7d0 - d7df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7e0 - d7ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7f0 - d7ff
+=====================================================================
+Found a 30 line (185 tokens) duplication in the following files: 
+Starting at line 342 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+	return hr;
+}
+
+HRESULT CSOActiveX::GetUnoStruct( OLECHAR* sStructName, CComPtr<IDispatch>& pdispResult )
+{
+	return GetIDispByFunc( mpDispFactory, L"Bridge_GetStruct", &CComVariant( sStructName ), 1, pdispResult );
+}
+
+HRESULT CSOActiveX::GetUrlStruct( OLECHAR* sUrl, CComPtr<IDispatch>& pdispUrl )
+{
+	HRESULT hr = GetUnoStruct( L"com.sun.star.util.URL", pdispUrl );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	OLECHAR* sURLMemberName = L"Complete";
+	DISPID nURLID;
+	hr = pdispUrl->GetIDsOfNames( IID_NULL, &sURLMemberName, 1, LOCALE_USER_DEFAULT, &nURLID );
+	if( !SUCCEEDED( hr ) ) return hr;
+	hr = CComDispatchDriver::PutProperty( pdispUrl, nURLID, &CComVariant( sUrl ) );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	CComPtr<IDispatch> pdispTransformer;
+	hr = GetIDispByFunc( mpDispFactory, 
+						 L"createInstance", 
+						 &CComVariant( L"com.sun.star.util.URLTransformer" ), 
+						 1, 
+						 pdispTransformer );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	CComVariant dummyResult;
+	CComVariant aInOutParam;
+=====================================================================
+Found a 28 line (185 tokens) duplication in the following files: 
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HViews.cxx
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YViews.cxx
+
+	Reference<XConnection> xConnection = static_cast<OMySQLCatalog&>(m_rParent).getConnection();
+	connectivity::sdbcx::OView* pNew = new connectivity::sdbcx::OView(sal_True,xConnection->getMetaData());
+	return pNew;
+}
+// -------------------------------------------------------------------------
+// XAppend
+sdbcx::ObjectType OViews::appendObject( const ::rtl::OUString& _rForName, const Reference< XPropertySet >& descriptor )
+{
+	createView(descriptor);
+    return createObject( _rForName );
+}
+// -------------------------------------------------------------------------
+// XDrop
+void OViews::dropObject(sal_Int32 _nPos,const ::rtl::OUString /*_sElementName*/)
+{
+	if ( m_bInDrop )
+		return;
+
+    Reference< XInterface > xObject( getObject( _nPos ) );
+    sal_Bool bIsNew = connectivity::sdbcx::ODescriptor::isNew( xObject );
+	if (!bIsNew)
+	{
+		::rtl::OUString aSql = ::rtl::OUString::createFromAscii("DROP VIEW");
+		
+		Reference<XPropertySet> xProp(xObject,UNO_QUERY);
+		aSql += ::dbtools::composeTableName( m_xMetaData, xProp, ::dbtools::eInTableDefinitions, false, false, true );
+		
+		Reference<XConnection> xConnection = static_cast<OMySQLCatalog&>(m_rParent).getConnection();
+=====================================================================
+Found a 41 line (185 tokens) duplication in the following files: 
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AConnection.cxx
+Starting at line 497 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OConnection.cxx
+
+	return nTxn;
+}
+// --------------------------------------------------------------------------------
+Reference< ::com::sun::star::container::XNameAccess > SAL_CALL OConnection::getTypeMap(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+
+	return NULL;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setTypeMap( const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(SQLException, RuntimeException)
+{
+    ::dbtools::throwFeatureNotImplementedException( "XConnection::setTypeMap", *this );
+}
+// --------------------------------------------------------------------------------
+// XCloseable
+void SAL_CALL OConnection::close(  ) throw(SQLException, RuntimeException)
+{
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+	}
+	dispose();
+}
+// --------------------------------------------------------------------------------
+// XWarningsSupplier
+Any SAL_CALL OConnection::getWarnings(  ) throw(SQLException, RuntimeException)
+{
+	return Any();
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::clearWarnings(  ) throw(SQLException, RuntimeException)
+{
+}
+//--------------------------------------------------------------------
+void OConnection::buildTypeInfo() throw( SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+=====================================================================
+Found a 55 line (185 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/XMLRangeHelper.cxx
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/XMLRangeHelper.cxx
+
+using ::rtl::OUString;
+using ::rtl::OUStringBuffer;
+
+// ================================================================================
+
+namespace
+{
+/** unary function that escapes backslashes and single quotes in a sal_Unicode
+    array (which you can get from an OUString with getStr()) and puts the result
+    into the OUStringBuffer given in the CTOR
+ */
+class lcl_Escape : public ::std::unary_function< sal_Unicode, void >
+{
+public:
+    lcl_Escape( ::rtl::OUStringBuffer & aResultBuffer ) : m_aResultBuffer( aResultBuffer ) {}
+    void operator() ( sal_Unicode aChar )
+    {
+        static const sal_Unicode m_aQuote( '\'' );
+        static const sal_Unicode m_aBackslash( '\\' );
+
+        if( aChar == m_aQuote ||
+            aChar == m_aBackslash )
+            m_aResultBuffer.append( m_aBackslash );
+        m_aResultBuffer.append( aChar );
+    }
+
+private:
+    ::rtl::OUStringBuffer & m_aResultBuffer;
+};
+
+// ----------------------------------------
+
+/** unary function that removes backslash escapes in a sal_Unicode array (which
+    you can get from an OUString with getStr()) and puts the result into the
+    OUStringBuffer given in the CTOR
+ */
+class lcl_UnEscape : public ::std::unary_function< sal_Unicode, void >
+{
+public:
+    lcl_UnEscape( ::rtl::OUStringBuffer & aResultBuffer ) : m_aResultBuffer( aResultBuffer ) {}
+    void operator() ( sal_Unicode aChar )
+    {
+        static const sal_Unicode m_aBackslash( '\\' );
+
+        if( aChar != m_aBackslash )
+            m_aResultBuffer.append( aChar );
+    }
+
+private:
+    ::rtl::OUStringBuffer & m_aResultBuffer;
+};
+
+// ----------------------------------------
+
+OUStringBuffer lcl_getXMLStringForCell( const /*::chart::*/XMLRangeHelper::Cell & rCell )
+=====================================================================
+Found a 34 line (184 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+            calc_type fg[4];
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            color_type* span = base_type::allocator().span();
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                int x_hr;
+                int y_hr;
+
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                unsigned weight;
+
+                if(x_lr >= 0    && y_lr >= 0 &&
+                   x_lr <  maxx && y_lr <  maxy) 
+                {
+                    fg[0] = 
+                    fg[1] = 
+                    fg[2] = 
+=====================================================================
+Found a 41 line (184 tokens) duplication in the following files: 
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_services.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/helpprovider/helpcontentprovider.cxx
+
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const rtl::OUString & rImplementationName,
+   						   uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 36 line (184 tokens) duplication in the following files: 
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+	for ( sal_Int32 n = 0; n < nCount; ++n )
+	{
+        const beans::PropertyValue& rValue = pValues[ n ];
+
+        if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+        {
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+		{
+=====================================================================
+Found a 41 line (184 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchyservices.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/helpprovider/helpcontentprovider.cxx
+
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const rtl::OUString & rImplementationName,
+   						   uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 36 line (184 tokens) duplication in the following files: 
+Starting at line 1243 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+	for ( sal_Int32 n = 0; n < nCount; ++n )
+	{
+        const beans::PropertyValue& rValue = pValues[ n ];
+
+        if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+        {
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "IsDocument" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "IsFolder" ) ) )
+		{
+			// Read-only property!
+            aRet[ n ] <<= lang::IllegalAccessException(
+                            rtl::OUString::createFromAscii(
+                                "Property is read-only!" ),
+                            static_cast< cppu::OWeakObject * >( this ) );
+		}
+        else if ( rValue.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+		{
+=====================================================================
+Found a 41 line (184 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpservices.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/helpprovider/helpcontentprovider.cxx
+
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const rtl::OUString & rImplementationName,
+   						   uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 34 line (184 tokens) duplication in the following files: 
+Starting at line 5044 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+Starting at line 5102 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+
+                                        aTmp.Pos().Y() ), Size( 1, nHeight ) );
+                                    if( bLeft )
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    if( bRight )
+                                    {
+                                        aVert.Pos().X() = nGridRight;
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    }
+                                }
+                            }
+                        }
+                        else
+                        {
+                            nY += nRuby;
+                            if( bBorder )
+                            {
+                                SwTwips nPos = Max(aInter.Top(),aTmp.Pos().Y());
+                                SwTwips nH = Min( nBottom, nY ) - nPos;
+                                SwRect aVert( Point( aGrid.Left(), nPos ),
+                                            Size( 1, nH ) );
+                                if( nH > 0 )
+                                {
+                                    if( bLeft )
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    if( bRight )
+                                    {
+                                        aVert.Pos().X() = nGridRight;
+                                        PaintBorderLine(rRect,aVert,this,pCol);
+                                    }
+                                }
+                            }
+                        }
+                        bGrid = !bGrid;
+                    }
+=====================================================================
+Found a 41 line (184 tokens) duplication in the following files: 
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edundo.cxx
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edundo.cxx
+
+			UpdateAttr();
+
+		if( aUndoIter.pSelFmt )		// dann erzeuge eine Rahmen-Selection
+		{
+			if( RES_DRAWFRMFMT == aUndoIter.pSelFmt->Which() )
+			{
+				SdrObject* pSObj = aUndoIter.pSelFmt->FindSdrObject();
+				((SwFEShell*)this)->SelectObj( pSObj->GetCurrentBoundRect().Center() );
+			}
+			else
+			{
+				Point aPt;
+				SwFlyFrm* pFly = ((SwFlyFrmFmt*)aUndoIter.pSelFmt)->GetFrm(
+															&aPt, FALSE );
+				if( pFly )
+					((SwFEShell*)this)->SelectFlyFrm( *pFly, TRUE );
+			}
+		}
+		else if( aUndoIter.pMarkList )
+		{
+            lcl_SelectSdrMarkList( this, aUndoIter.pMarkList );
+		}
+		else if( GetCrsr()->GetNext() != GetCrsr() )	// gehe nach einem
+			GoNextCrsr();					// Redo zur alten Undo-Position !!
+
+		GetDoc()->SetRedlineMode( eOld );
+		GetDoc()->CompressRedlines();
+
+		//JP 18.09.97: autom. Erkennung  fuer die neue "Box"
+		SaveTblBoxCntnt();
+	}
+
+	EndAllAction();
+
+    // #105332# undo state was not restored but set FALSE everytime
+	GetDoc()->DoUndo( bSaveDoesUndo );
+	return bRet;
+}
+
+
+USHORT SwEditShell::Repeat( USHORT nCount )
+=====================================================================
+Found a 31 line (184 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/crstrvl.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/crstrvl.cxx
+
+	FASTBOOL bRet = GetDoc()->GotoPrevNum( *pCurCrsr->GetPoint() );
+	if( bRet )
+	{
+		SwCallLink aLk( *this );        // Crsr-Moves ueberwachen,
+		SwCrsrSaveState aSaveState( *pCurCrsr );
+		if( !ActionPend() )
+		{
+			SET_CURR_SHELL( this );
+			// dann versuche den Cursor auf die Position zu setzen,
+			// auf halber Heohe vom Char-SRectangle
+			Point aPt( pCurCrsr->GetPtPos() );
+			SwCntntFrm * pFrm = pCurCrsr->GetCntntNode()->GetFrm( &aPt,
+														pCurCrsr->GetPoint() );
+			pFrm->GetCharRect( aCharRect, *pCurCrsr->GetPoint() );
+			aPt.Y() = aCharRect.Center().Y();
+			pFrm->Calc();
+			aPt.X() = pFrm->Frm().Left() + nUpDownX;
+			pFrm->GetCrsrOfst( pCurCrsr->GetPoint(), aPt );
+			bRet = !pCurCrsr->IsSelOvr( SELOVER_TOGGLE | SELOVER_CHANGEPOS );
+			if( bRet )
+				UpdateCrsr(SwCrsrShell::UPDOWN |
+						SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
+						SwCrsrShell::READONLY );
+		}
+	}
+	return bRet;
+}
+
+// springe aus dem Content zum Header
+
+FASTBOOL SwCrsrShell::GotoHeaderTxt()
+=====================================================================
+Found a 32 line (184 tokens) duplication in the following files: 
+Starting at line 1485 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdomeas.cxx
+Starting at line 1517 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdomeas.cxx
+
+	else if(nCount == 5)
+	{
+		// five lines, first two are the outer ones
+		//INT32 nStartWidth = ((const XLineStartWidthItem&)(aSet.Get(XATTR_LINESTARTWIDTH))).GetValue();
+		INT32 nEndWidth = ((const XLineEndWidthItem&)(aSet.Get(XATTR_LINEENDWIDTH))).GetValue();
+
+		aSet.Put(XLineEndWidthItem(0L));
+
+		aPolyPoly.clear();
+		aPolyPoly.append(aTmpPolyPolygon[0].getB2DPolygon());
+		pPath = new SdrPathObj(OBJ_PATHLINE, aPolyPoly);
+		pPath->SetModel(GetModel());
+
+		pPath->SetMergedItemSet(aSet);
+
+		pGroup->GetSubList()->NbcInsertObject(pPath);
+
+		aSet.Put(XLineEndWidthItem(nEndWidth));
+		aSet.Put(XLineStartWidthItem(0L));
+
+		aPolyPoly.clear();
+		aPolyPoly.append(aTmpPolyPolygon[1].getB2DPolygon());
+		pPath = new SdrPathObj(OBJ_PATHLINE, aPolyPoly);
+		pPath->SetModel(GetModel());
+
+		pPath->SetMergedItemSet(aSet);
+
+		pGroup->GetSubList()->NbcInsertObject(pPath);
+
+		aSet.Put(XLineEndWidthItem(0L));
+		nLoopStart = 2;
+	}
+=====================================================================
+Found a 39 line (184 tokens) duplication in the following files: 
+Starting at line 3355 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3706 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+		for (SCSIZE i = 0; i < nCY; i++)
+			for (SCSIZE j = 0; j < nRY; j++)
+			{
+				fValX = pMatX->GetDouble(i,j);
+				fValY = pMatY->GetDouble(i,j);
+				fSumX    += fValX;
+				fSumSqrX += fValX * fValX;
+				fSumY    += fValY;
+				fSumSqrY += fValY * fValY;
+				fSumXY   += fValX*fValY;
+				fCount++;
+			}
+		if (fCount < 1.0)
+		{
+			SetNoValue();
+			return;
+		}
+		else
+		{
+			double f1 = fCount*fSumXY-fSumX*fSumY;
+			double fX = fCount*fSumSqrX-fSumX*fSumX;
+			double b, m;
+			if (bConstant)
+			{
+				b = fSumY/fCount - f1/fX*fSumX/fCount;
+				m = f1/fX;
+			}
+			else
+			{
+				b = 0.0;
+				m = fSumXY/fSumSqrX;
+			}
+			pResMat = GetNewMat(nCXN, nRXN);
+			if (!pResMat)
+			{
+				PushError();
+				return;
+			}
+			for (SCSIZE i = 0; i < nCountXN; i++)
+=====================================================================
+Found a 45 line (184 tokens) duplication in the following files: 
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+						fy = fx * fy / ScGetGGT(fx, fy);
+					}
+					SetError(nErr);
+				}
+				else
+					SetError(errIllegalArgument);
+			}
+			break;
+			case svMatrix :
+			{
+				ScMatrixRef pMat = PopMatrix();
+				if (pMat)
+				{
+                    SCSIZE nC, nR;
+                    pMat->GetDimensions(nC, nR);
+					if (nC == 0 || nR == 0)
+						SetError(errIllegalArgument);
+					else
+					{
+						if (!pMat->IsValue(0))
+						{
+							SetIllegalArgument();
+							return;
+						}
+						fy = pMat->GetDouble(0);
+						if (fy < 0.0)
+						{
+							fy *= -1.0;
+							fSign *= -1.0;
+						}
+						SCSIZE nCount = nC * nR;
+						for ( SCSIZE j = 1; j < nCount; j++ )
+						{
+							if (!pMat->IsValue(j))
+							{
+								SetIllegalArgument();
+								return;
+							}
+							fx = pMat->GetDouble(j);
+							if (fx < 0.0)
+							{
+								fx *= -1.0;
+								fSign *= -1.0;
+							}
+							fy = fx * fy / ScGetGGT(fx, fy);
+=====================================================================
+Found a 18 line (184 tokens) duplication in the following files: 
+Starting at line 1690 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1809 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                  "\xAD\xF7\xAD\xF8\xAD\xF9\xAD\xFA\xAD\xFB\xAD\xFC"),
+              { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
+                0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
+                0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
+                0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
+                0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
+                0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
+                0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
+                0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
+                0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
+                0x2229,0x222A },
+              83,
+              true,
+              true,
+              false,
+              false,
+              RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
+            { RTL_TEXTENCODING_EUC_JP,
+=====================================================================
+Found a 50 line (184 tokens) duplication in the following files: 
+Starting at line 478 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/libhnj/hyphen.c
+Starting at line 618 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/libhnj/hyphen.c
+
+    hyphens[i] = '0';    
+
+#ifdef VERBOSE
+  printf ("prep_word = %s\n", prep_word);
+#endif
+
+  /* now, run the finite state machine */
+  state = 0;
+  for (i = 0; i < j; i++)
+    {
+      ch = prep_word[i];
+      for (;;)
+	{
+
+	  if (state == -1) {
+            /* return 1; */
+	    /*  KBH: FIXME shouldn't this be as follows? */
+            state = 0;
+            goto try_next_letter;
+          }          
+
+#ifdef VERBOSE
+	  char *state_str;
+	  state_str = get_state_str (state);
+
+	  for (k = 0; k < i - strlen (state_str); k++)
+	    putchar (' ');
+	  printf ("%s", state_str);
+#endif
+
+	  hstate = &dict->states[state];
+	  for (k = 0; k < hstate->num_trans; k++)
+	    if (hstate->trans[k].ch == ch)
+	      {
+		state = hstate->trans[k].new_state;
+		goto found_state;
+	      }
+	  state = hstate->fallback_state;
+#ifdef VERBOSE
+	  printf (" falling back, fallback_state %d\n", state);
+#endif
+	}
+    found_state:
+#ifdef VERBOSE
+      printf ("found state %d\n",state);
+#endif
+      /* Additional optimization is possible here - especially,
+	 elimination of trailing zeroes from the match. Leading zeroes
+	 have already been optimized. */
+      match = dict->states[state].match;
+=====================================================================
+Found a 45 line (184 tokens) duplication in the following files: 
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/unix.c
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_unix.c
+
+        int fdo = creat(argv[optind + 1], 0666);
+
+        if (fdo < 0)
+            error(FATAL, "Can't open output file %s", argv[optind + 1]);
+
+        dup2(fdo, 1);
+    }
+    includelist[NINCLUDE - 1].always = 0;
+    includelist[NINCLUDE - 1].file = dp;
+    setsource(fp, -1, fd, NULL, 0);
+}
+
+
+/* memmove is defined here because some vendors don't provide it at
+   all and others do a terrible job (like calling malloc) */
+
+#if !defined(__IBMC__) && !defined(_WIN32) && !defined(__GLIBC__)
+
+void *
+    memmove(void *dp, const void *sp, size_t n)
+{
+    unsigned char *cdp, *csp;
+
+    if (n <= 0)
+        return 0;
+    cdp = dp;
+    csp = (unsigned char *) sp;
+    if (cdp < csp)
+    {
+        do
+        {
+            *cdp++ = *csp++;
+        } while (--n);
+    }
+    else
+    {
+        cdp += n;
+        csp += n;
+        do
+        {
+            *--cdp = *--csp;
+        } while (--n);
+    }
+    return 0;
+}
+=====================================================================
+Found a 82 line (184 tokens) duplication in the following files: 
+Starting at line 603 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest/threadtest.cxx
+Starting at line 605 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest.cxx
+
+		}
+        else
+        if( nA % 3 == 0 )
+		{
+			m_pClass->setA( nA, m_nThreadID );
+		}
+		else
+		{
+			nA = m_pClass->getA( m_nThreadID );
+		}
+		#ifdef ENABLE_THREADDELAY
+		// Sleep - use random value to do that too!
+		nDelay.Seconds = 0;
+		nDelay.Nanosec = getRandomValue();
+		sleep( nDelay );
+		#endif
+	}
+
+	// Don't forget to "close" teset object if you are the owner!
+	if( m_bOwner == sal_True )
+	{
+		m_pClass->close( m_nThreadID );
+	}
+}
+
+//_________________________________________________________________________________________________________________
+void SAL_CALL TestThread::onTerminated()
+{
+	// Destroy yourself if you finished.
+	// But don't forget to call listener before.
+	m_pListener->set();
+
+	m_pClass	= NULL;
+	m_pListener	= NULL;
+
+	delete this;
+}
+
+/*-****************************************************************************************************//**
+	@descr	This is our test application.
+			We create one ThreadSafeClass object and a lot of threads
+			which use it at different times.
+*//*-*****************************************************************************************************/
+
+struct ThreadInfo
+{
+	Condition*	pCondition	;
+	TestThread*	pThread		;
+};
+
+class TestApplication : public Application
+{
+	public:
+		void		Main		(								);
+		sal_Int32	measureTime	(	sal_Int32	nThreadCount	,
+									sal_Int32	nOwner			,
+									sal_Int32	nLoops=0		);
+};
+
+//_________________________________________________________________________________________________________________
+//	definition
+//_________________________________________________________________________________________________________________
+
+TestApplication aApplication;
+
+//_________________________________________________________________________________________________________________
+// This function start "nThreadCount" threads to use same test class.
+// You can specify the owner thread of this test class which start/stop it by using "nOwner". [1..nThreadcount]!
+// If you specify "nLoops" different from 0 we use it as loop count for every started thread.
+// Otherwise we work with random values.
+sal_Int32 TestApplication::measureTime(	sal_Int32	nThreadCount	,
+	  	 								sal_Int32	nOwner			,
+	  									sal_Int32	nLoops			)
+{
+	// This is the class which should be tested.
+	ThreadSafeClass aClass;
+
+	// Create list of threads.
+	ThreadInfo* pThreads	=	new ThreadInfo[nThreadCount];
+	sal_Int32	nLoopCount	=	nLoops						;
+	sal_Bool	bOwner		=	sal_False					;
+	for( sal_Int32 nI=1; nI<=nThreadCount; ++nI )
+=====================================================================
+Found a 30 line (184 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/attributelist.cxx
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/attrlistimpl.cxx
+
+	if( std::vector< TagAttribute >::size_type(i) < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+=====================================================================
+Found a 14 line (184 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/PColumn.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/PColumn.cxx
+
+									 ,sal_Bool _bAscending)
+	: connectivity::sdbcx::OColumn(	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME)))
+								,	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME)))
+								,	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE)))
+								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE)))
+								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION)))
+								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)))
+								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))
+								,	getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT)))
+								,	sal_False
+								,	getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY)))
+								,	_bCase
+								)
+	, m_bAscending(_bAscending)
+=====================================================================
+Found a 25 line (184 tokens) duplication in the following files: 
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+
+	::com::sun::star::uno::Sequence< sal_Int32 > aSeq;
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv ){
+		createStatement(t.pEnv);
+		// temporaere Variable initialisieren
+		static const char * cSignature = "()[I";
+		static const char * cMethodName = "executeBatch";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			jintArray out = (jintArray)t.pEnv->CallObjectMethod( object, mID );
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			if(out)
+			{
+				jboolean p = sal_False;
+				aSeq.realloc(t.pEnv->GetArrayLength(out));
+				memcpy(aSeq.getArray(),t.pEnv->GetIntArrayElements(out,&p),aSeq.getLength());
+				t.pEnv->DeleteLocalRef(out);
+			}
+		} //mID
+	} //t.pEnv
+	return aSeq;
+}
+=====================================================================
+Found a 19 line (184 tokens) duplication in the following files: 
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LResultSet.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/EResultSet.cxx
+
+Sequence<  Type > SAL_CALL OFlatResultSet::getTypes(  ) throw( RuntimeException)
+{
+	Sequence< Type > aTypes = OResultSet::getTypes();
+	::std::vector<Type> aOwnTypes;
+	aOwnTypes.reserve(aTypes.getLength());	
+	const Type* pBegin = aTypes.getConstArray();
+	const Type* pEnd = pBegin + aTypes.getLength();
+	for(;pBegin != pEnd;++pBegin)
+	{
+		if(!(*pBegin == ::getCppuType((const Reference<XDeleteRows>*)0) ||
+			*pBegin == ::getCppuType((const Reference<XResultSetUpdate>*)0) ||
+			*pBegin == ::getCppuType((const Reference<XRowUpdate>*)0)))
+		{
+			aOwnTypes.push_back(*pBegin);
+		}
+	}
+	Type* pTypes = aOwnTypes.empty() ? 0 : &aOwnTypes[0];
+	Sequence< Type > aRet(pTypes, aOwnTypes.size());
+	return ::comphelper::concatSequences(aRet,OFlatResultSet_BASE::getTypes());
+=====================================================================
+Found a 43 line (184 tokens) duplication in the following files: 
+Starting at line 1286 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+Starting at line 1406 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	o << indent() << "any _derivedException;\n";
+	OString superType(m_reader.getSuperTypeName());
+	if (superType.getLength() > 0)
+		dumpSuperMember(o, superType);
+
+	sal_uInt32 		fieldCount = m_reader.getFieldCount();
+	RTFieldAccess 	access = RT_ACCESS_INVALID;
+	OString 		fieldName;
+	OString 		fieldType;
+	sal_uInt16 		i = 0;
+
+	for (i=0; i < fieldCount; i++)
+	{
+		access = m_reader.getFieldAccess(i);
+
+		if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
+			continue;
+
+		fieldName = m_reader.getFieldName(i);
+		fieldType = m_reader.getFieldType(i);
+
+		// write documentation
+		OString aDoc = m_reader.getFieldDoku(i);
+		if( aDoc.getLength() )
+			o << "/**\n" << aDoc << "\n*/";
+
+		o << indent();
+		dumpType(o, fieldType);
+		o << " " << fieldName << ";\n";
+	}
+
+
+	dec();
+	o << "};\n\n";
+
+	dumpNameSpace(o, sal_False);
+
+	o << "#endif /* "<< headerDefine << "*/" << "\n";
+
+	return sal_True;
+}
+
+void ExceptionType::dumpSuperMember(FileStream& o, const OString& superType)
+=====================================================================
+Found a 15 line (184 tokens) duplication in the following files: 
+Starting at line 3936 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 3955 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+		case M_GetPosY:
+			if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r FloatingWindows
+			if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r TabDialoge
+			if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r Border
+            if ( (nParams & PARAM_BOOL_1) && bBool1 )
+                pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+			if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_SPLITWINDOW )
+			{
+				Point aPos = pControl->GetPosPixel();
+				aPos = pControl->GET_REAL_PARENT()->OutputToScreenPixel( aPos );
+				pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)aPos.Y() );
+=====================================================================
+Found a 23 line (183 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salframe.h
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salframe.h
+
+    virtual void				ShowFullScreen( BOOL bFullScreen, sal_Int32 nMonitor );
+    virtual void				StartPresentation( BOOL bStart );
+    virtual void				SetAlwaysOnTop( BOOL bOnTop );
+    virtual void				ToTop( USHORT nFlags );
+    virtual void				SetPointer( PointerStyle ePointerStyle );
+    virtual void				CaptureMouse( BOOL bMouse );
+    virtual void				SetPointerPos( long nX, long nY );
+    virtual void				Flush();
+    virtual void				Sync();
+    virtual void				SetInputContext( SalInputContext* pContext );
+    virtual void				EndExtTextInput( USHORT nFlags );
+    virtual String				GetKeyName( USHORT nKeyCode );
+    virtual String				GetSymbolKeyName( const XubString& rFontName, USHORT nKeyCode );
+    virtual BOOL                MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
+    virtual LanguageType		GetInputLanguage();
+    virtual SalBitmap*			SnapShot();
+    virtual void				UpdateSettings( AllSettings& rSettings );
+    virtual void				Beep( SoundType eSoundType );
+    virtual const SystemEnvData*	GetSystemData() const;
+    virtual SalPointerState     GetPointerState();
+    virtual void				SetParent( SalFrame* pNewParent );
+    virtual bool				SetPluginParent( SystemParentData* pNewParent );
+    virtual void                SetBackgroundBitmap( SalBitmap* pBitmap );
+=====================================================================
+Found a 33 line (183 tokens) duplication in the following files: 
+Starting at line 1275 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/servicemanager/servicemanager.cxx
+Starting at line 1339 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/servicemanager/servicemanager.cxx
+
+    Sequence< Any > const & rArguments,
+    Reference< XComponentContext > const & xContext )
+    throw (Exception, RuntimeException)
+{
+    check_undisposed();
+#if OSL_DEBUG_LEVEL > 0
+    Reference< beans::XPropertySet > xProps( xContext->getServiceManager(), UNO_QUERY );
+    OSL_ASSERT( xProps.is() );
+    if (xProps.is())
+    {
+        Reference< XComponentContext > xDefContext;
+        xProps->getPropertyValue(
+            OUString( RTL_CONSTASCII_USTRINGPARAM("DefaultContext") ) ) >>= xDefContext;
+        OSL_ENSURE(
+            xContext == xDefContext,
+            "### default context of service manager singleton differs from context holding it!" );
+    }
+#endif
+
+    Sequence< Reference< XInterface > > factories(
+        queryServiceFactories( rServiceSpecifier, xContext ) );
+    Reference< XInterface > const * p = factories.getConstArray();
+    for ( sal_Int32 nPos = 0; nPos < factories.getLength(); ++nPos )
+    {
+        try
+        {
+            Reference< XInterface > const & xFactory = p[ nPos ];
+            if (xFactory.is())
+            {
+                Reference< XSingleComponentFactory > xFac( xFactory, UNO_QUERY );
+                if (xFac.is())
+                {
+                    return xFac->createInstanceWithArgumentsAndContext( rArguments, xContext );
+=====================================================================
+Found a 59 line (183 tokens) duplication in the following files: 
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodel.cxx
+Starting at line 591 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodelapi.cxx
+
+	m_xCurrentFrame	( _xFrame ),
+	mePriority	( PRIO_NORMAL ),
+	mbLoadDone	( sal_True )
+
+{
+}
+
+SfxMailModel::~SfxMailModel()
+{
+	ClearList( mpToList );
+	delete mpToList;
+	ClearList( mpCcList );
+	delete mpCcList;
+	ClearList( mpBccList );
+	delete mpBccList;
+}
+
+void SfxMailModel::AddAddress( const String& rAddress, AddressRole eRole )
+{
+	// don't add a empty address
+	if ( rAddress.Len() > 0 )
+	{
+		AddressList_Impl* pList = NULL;
+		if ( ROLE_TO == eRole )
+		{
+			if ( !mpToList )
+				// create the list
+				mpToList = new AddressList_Impl;
+			pList = mpToList;
+		}
+		else if ( ROLE_CC == eRole )
+		{
+			if ( !mpCcList )
+				// create the list
+				mpCcList = new AddressList_Impl;
+			pList = mpCcList;
+		}
+		else if ( ROLE_BCC == eRole )
+		{
+			if ( !mpBccList )
+				// create the list
+				mpBccList = new AddressList_Impl;
+			pList = mpBccList;
+		}
+		else
+		{
+			DBG_ERRORFILE( "invalid address role" );
+		}
+
+		if ( pList )
+		{
+			// add address to list
+			AddressItemPtr_Impl pAddress = new String( rAddress );
+			pList->Insert( pAddress, LIST_APPEND );
+		}
+	}
+}
+
+SfxMailModel::SendMailResult SfxMailModel::Send( )
+=====================================================================
+Found a 24 line (183 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/formatsh.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/docst.cxx
+
+                    com::sun::star::uno::Reference< com::sun::star::style::XStyleFamiliesSupplier > xModel(GetModel(), com::sun::star::uno::UNO_QUERY);
+                    try
+                    {
+                        com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > xStyles;
+                        com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > xCont = xModel->getStyleFamilies();
+                        xCont->getByName(pFamilyItem->GetValue()) >>= xStyles;
+                        com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xInfo;
+                        xStyles->getByName( pNameItem->GetValue() ) >>= xInfo;
+                        ::rtl::OUString aUIName;
+                        xInfo->getPropertyValue( ::rtl::OUString::createFromAscii("DisplayName") ) >>= aUIName;
+                        if ( aUIName.getLength() )
+                            rReq.AppendItem( SfxStringItem( SID_STYLE_APPLY, aUIName ) );
+                    }
+                    catch( com::sun::star::uno::Exception& )
+                    {
+                    }
+                }
+            }
+
+            // intentionally no break
+
+		case SID_STYLE_EDIT:
+		case SID_STYLE_DELETE:
+		case SID_STYLE_WATERCAN:
+=====================================================================
+Found a 39 line (183 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/linkuno.cxx
+Starting at line 767 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/linkuno.cxx
+
+void SAL_CALL ScAreaLinkObj::setPropertyValue(
+						const rtl::OUString& aPropertyName, const uno::Any& aValue )
+				throw(beans::UnknownPropertyException, beans::PropertyVetoException,
+						lang::IllegalArgumentException, lang::WrappedTargetException,
+						uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	String aNameString(aPropertyName);
+	rtl::OUString aValStr;
+	if ( aNameString.EqualsAscii( SC_UNONAME_LINKURL ) )
+	{
+		if ( aValue >>= aValStr )
+			setFileName( aValStr );
+	}
+	else if ( aNameString.EqualsAscii( SC_UNONAME_FILTER ) )
+	{
+		if ( aValue >>= aValStr )
+			setFilter( aValStr );
+	}
+	else if ( aNameString.EqualsAscii( SC_UNONAME_FILTOPT ) )
+	{
+		if ( aValue >>= aValStr )
+			setFilterOptions( aValStr );
+	}
+	else if ( aNameString.EqualsAscii( SC_UNONAME_REFPERIOD ) )
+	{
+		sal_Int32 nRefresh = 0;
+		if ( aValue >>= nRefresh )
+			setRefreshDelay( nRefresh );
+	}
+	else if ( aNameString.EqualsAscii( SC_UNONAME_REFDELAY ) )
+	{
+		sal_Int32 nRefresh = 0;
+		if ( aValue >>= nRefresh )
+			setRefreshDelay( nRefresh );
+	}
+}
+
+uno::Any SAL_CALL ScAreaLinkObj::getPropertyValue( const rtl::OUString& aPropertyName )
+=====================================================================
+Found a 29 line (183 tokens) duplication in the following files: 
+Starting at line 3008 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 3081 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+							FillDir eDir, BOOL bRecord, BOOL bApi )
+{
+	ScDocShellModificator aModificator( rDocShell );
+
+	BOOL bSuccess = FALSE;
+	ScDocument* pDoc = rDocShell.GetDocument();
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCTAB nStartTab = rRange.aStart.Tab();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nEndTab = rRange.aEnd.Tab();
+
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+
+	ScMarkData aMark;
+	if (pTabMark)
+		aMark = *pTabMark;
+	else
+	{
+		for (SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++)
+			aMark.SelectTable( nTab, TRUE );
+	}
+
+	ScEditableTester aTester( pDoc, nStartCol,nStartRow, nEndCol,nEndRow, aMark );
+	if ( aTester.IsEditable() )
+	{
+		WaitObject aWait( rDocShell.GetActiveDialogParent() );
+=====================================================================
+Found a 31 line (183 tokens) duplication in the following files: 
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/drwtrans.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/transobj.cxx
+
+                ::utl::TempFile     aTempFile;
+                aTempFile.EnableKillingFile();
+                uno::Reference< embed::XStorage > xWorkStore =
+                    ::comphelper::OStorageHelper::GetStorageFromURL( aTempFile.GetURL(), embed::ElementModes::READWRITE );
+
+                // write document storage
+                pEmbObj->SetupStorage( xWorkStore, SOFFICE_FILEFORMAT_CURRENT, sal_False );
+
+                // mba: no relative ULRs for clipboard!
+                SfxMedium aMedium( xWorkStore, String() );
+                bRet = pEmbObj->DoSaveObjectAs( aMedium, FALSE );
+                pEmbObj->DoSaveCompleted();
+
+                uno::Reference< embed::XTransactedObject > xTransact( xWorkStore, uno::UNO_QUERY );
+                if ( xTransact.is() )
+                    xTransact->commit();
+
+                SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), STREAM_READ );
+                if( pSrcStm )
+                {
+                    rxOStm->SetBufferSize( 0xff00 );
+                    *rxOStm << *pSrcStm;
+                    delete pSrcStm;
+                }
+
+                bRet = TRUE;
+
+                xWorkStore->dispose();
+                xWorkStore = uno::Reference < embed::XStorage >();
+                rxOStm->Commit();
+			}
+=====================================================================
+Found a 7 line (183 tokens) duplication in the following files: 
+Starting at line 1397 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0,10,10,// 3030 - 303f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3040 - 304f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3050 - 305f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3060 - 306f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3070 - 307f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3080 - 308f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+=====================================================================
+Found a 6 line (183 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1427 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 7 line (183 tokens) duplication in the following files: 
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1243 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 7 line (183 tokens) duplication in the following files: 
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10a0 - 10af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 10b0 - 10bf
+=====================================================================
+Found a 7 line (183 tokens) duplication in the following files: 
+Starting at line 1091 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1116 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ae0 - 0aef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0af0 - 0aff
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b00 - 0b0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b10 - 0b1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b20 - 0b2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,17,// 0b30 - 0b3f
+=====================================================================
+Found a 8 line (183 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,17,17,17, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0dd0 - 0ddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0de0 - 0def
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0df0 - 0dff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e00 - 0e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e10 - 0e1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0e20 - 0e2f
+     0,17, 0, 0,17,17,17,17,17,17,17, 0, 0, 0, 0, 4,// 0e30 - 0e3f
+=====================================================================
+Found a 8 line (183 tokens) duplication in the following files: 
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 764 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0,// 33f0 - 33ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d00 - 4d0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d10 - 4d1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d20 - 4d2f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d30 - 4d3f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d40 - 4d4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d50 - 4d5f
+=====================================================================
+Found a 6 line (183 tokens) duplication in the following files: 
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 757 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3380 - 338f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3390 - 339f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33a0 - 33af
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33b0 - 33bf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33c0 - 33cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0, 0,// 33d0 - 33df
+=====================================================================
+Found a 6 line (183 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0,27,27,27,27,27,27,27,// 2610 - 261f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2620 - 262f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2630 - 263f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2640 - 264f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2650 - 265f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,24,// 2660 - 266f
+=====================================================================
+Found a 6 line (183 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c20 - 2c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c30 - 2c3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c40 - 2c4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c50 - 2c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c60 - 2c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c70 - 2c7f
+=====================================================================
+Found a 7 line (183 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0,10,10,// 3030 - 303f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3040 - 304f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3050 - 305f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3060 - 306f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3070 - 307f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3080 - 308f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+=====================================================================
+Found a 7 line (183 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1780 - 178f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1790 - 179f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 17a0 - 17af
+=====================================================================
+Found a 19 line (183 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 949 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)s_nCHAR_OCTET_LENGTH));
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		// aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnValue::NULLABLE));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+=====================================================================
+Found a 34 line (183 tokens) duplication in the following files: 
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/apinotifierimpl.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/apinotifierimpl.cxx
+
+void implRemoveListener( NodeGroupInfoAccess& rNode, const uno::Reference< beans::XPropertyChangeListener >& xListener, const OUString& sPropertyName ) 
+	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+	using namespace css::beans;
+	try
+	{
+		if (!genericRemoveChildListener(rNode,xListener,sPropertyName))
+		{
+			throw UnknownPropertyException(
+					OUString(RTL_CONSTASCII_USTRINGPARAM("Configuration: cannot remove listener - node not found !")),
+					rNode.getUnoInstance() );
+		}
+	}
+	catch (configuration::InvalidName& ex)
+	{
+		ExceptionMapper e(ex);
+		throw UnknownPropertyException(
+				OUString(RTL_CONSTASCII_USTRINGPARAM("Configuration: cannot remove listener - node not found:")) += ex.message(),
+				rNode.getUnoInstance() );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		throw css::lang::WrappedTargetException(
+				OUString(RTL_CONSTASCII_USTRINGPARAM("Configuration: removing a listener failed: ")) += ex.message(),
+				rNode.getUnoInstance(), 
+				ex.getAnyUnoException());
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );
+		e.unhandled();
+	}
+}
+=====================================================================
+Found a 46 line (183 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/global.cxx
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/codemaker/global.cxx
+
+	return *(aGlobalMap.insert( sValue ).first);
+}
+
+static sal_Bool isFileUrl(const OString& fileName)
+{
+    if (fileName.indexOf("file://") == 0 )
+        return sal_True;
+    return sal_False;
+}
+
+OUString convertToFileUrl(const OString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return OStringToOUString(fileName, osl_getThreadTextEncoding());
+    }
+
+    OUString uUrlFileName;
+    OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding());
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+
+//*************************************************************************
+// FileStream
+//*************************************************************************
+FileStream::FileStream()
+=====================================================================
+Found a 49 line (183 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nFunctionIndex,
+    sal_Int32 nVtableOffset,
+	void ** pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+	
+	// pCallStack: ret adr, [ret *], this, params
+    void * pThis;
+	if( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+        pThis = pCallStack[2];
+=====================================================================
+Found a 19 line (183 tokens) duplication in the following files: 
+Starting at line 2071 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 1638 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/app/dbggui.cxx
+
+                    if ( (pTempChild->GetType() == WINDOW_EDIT) ||
+                         (pTempChild->GetType() == WINDOW_MULTILINEEDIT) ||
+                         (pTempChild->GetType() == WINDOW_SPINFIELD) ||
+                         (pTempChild->GetType() == WINDOW_PATTERNFIELD) ||
+                         (pTempChild->GetType() == WINDOW_NUMERICFIELD) ||
+                         (pTempChild->GetType() == WINDOW_METRICFIELD) ||
+                         (pTempChild->GetType() == WINDOW_CURRENCYFIELD) ||
+                         (pTempChild->GetType() == WINDOW_DATEFIELD) ||
+                         (pTempChild->GetType() == WINDOW_TIMEFIELD) ||
+                         (pTempChild->GetType() == WINDOW_LISTBOX) ||
+                         (pTempChild->GetType() == WINDOW_MULTILISTBOX) ||
+                         (pTempChild->GetType() == WINDOW_COMBOBOX) ||
+                         (pTempChild->GetType() == WINDOW_PATTERNBOX) ||
+                         (pTempChild->GetType() == WINDOW_NUMERICBOX) ||
+                         (pTempChild->GetType() == WINDOW_METRICBOX) ||
+                         (pTempChild->GetType() == WINDOW_CURRENCYBOX) ||
+                         (pTempChild->GetType() == WINDOW_DATEBOX) ||
+                         (pTempChild->GetType() == WINDOW_TIMEBOX) )
+                    {
+=====================================================================
+Found a 26 line (182 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 636 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readCurrencyFieldModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+=====================================================================
+Found a 36 line (182 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/OOo2Oasis.cxx
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/Oasis2OOo.cxx
+
+		  				XML_FAMILY_TYPE_PAGE_LAYOUT ),
+	ENTRY1( NUMBER, NUMBER_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( NUMBER, CURRENCY_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( NUMBER, PERCENTAGE_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( NUMBER, DATE_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( NUMBER, TIME_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( NUMBER, BOOLEAN_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( NUMBER, TEXT_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_DATA ),
+	ENTRY1( TEXT, LIST_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_LIST ),
+//	ENTRY0( TEXT, OUTLINE_STYLE, STYLE ),
+
+	ENTRY1( STYLE, HEADER_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_HEADER_FOOTER ),
+	ENTRY1( STYLE, FOOTER_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_HEADER_FOOTER ),
+	ENTRY1( TEXT, LIST_LEVEL_STYLE_NUMBER, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_LIST ),
+	ENTRY1( TEXT, LIST_LEVEL_STYLE_BULLET, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_LIST ),
+	ENTRY1( TEXT, LIST_LEVEL_STYLE_IMAGE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_LIST ),
+	ENTRY1( TEXT, OUTLINE_LEVEL_STYLE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_LIST ),
+	ENTRY1( DRAW, GRADIENT, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_GRADIENT ),
+	ENTRY1( DRAW, FILL_IMAGE, XML_ETACTION_STYLE,
+		 		XML_FAMILY_TYPE_FILL_IMAGE ),
+	ENTRY2QN( DRAW, OPACITY, XML_ETACTION_STYLE_RENAME,
+=====================================================================
+Found a 9 line (182 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkdata_curs.h
+
+static char linkdata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+   0x10, 0xf0, 0x1f, 0x00, 0x08, 0x70, 0x18, 0x00, 0x10, 0xf0, 0x18, 0x00,
+=====================================================================
+Found a 40 line (182 tokens) duplication in the following files: 
+Starting at line 1138 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/gdi/salatslayout.cxx
+Starting at line 1005 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/winlayout.cxx
+
+        mpGlyphOrigAdvs = new int[ mnGlyphCount ];
+        for( int k = 0; k < mnGlyphCount; ++k )
+            mpGlyphOrigAdvs[ k ] = mpGlyphAdvances[ k ];
+    }
+
+    // remove dropped glyphs inside the layout
+    int nNewGC = 0;
+    for( i = 0; i < mnGlyphCount; ++i )
+    {
+        if( mpOutGlyphs[ i ] == DROPPED_OUTGLYPH )
+        {
+            // adjust relative position to last valid glyph
+            int nDroppedWidth = mpGlyphAdvances[ i ];
+            mpGlyphAdvances[ i ] = 0;
+            if( nNewGC > 0 )
+                mpGlyphAdvances[ nNewGC-1 ] += nDroppedWidth;
+            else
+                mnBaseAdv += nDroppedWidth;
+
+            // zero the virtual char width for the char that has a fallback
+            int nRelCharPos = mpGlyphs2Chars[ i ] - mnMinCharPos;
+            if( nRelCharPos >= 0 )
+                mpCharWidths[ nRelCharPos ] = 0;
+        }
+        else
+        {
+            if( nNewGC != i )
+            {
+                // rearrange the glyph array to get rid of the dropped glyph
+                mpOutGlyphs[ nNewGC ]     = mpOutGlyphs[ i ];
+                mpGlyphAdvances[ nNewGC ] = mpGlyphAdvances[ i ];
+                mpGlyphOrigAdvs[ nNewGC ] = mpGlyphOrigAdvs[ i ];
+                mpGlyphs2Chars[ nNewGC ]  = mpGlyphs2Chars[ i ];
+            }
+            ++nNewGC;
+        }
+    }
+
+    mnGlyphCount = nNewGC;
+    if( mnGlyphCount <= 0 )
+=====================================================================
+Found a 31 line (182 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    IMPLCONSTSTRINGARRAY(ListBox);
+    IMPLCONSTSTRINGARRAY(TextBox);
+    IMPLCONSTSTRINGARRAY(TextField);
+    IMPLCONSTSTRINGARRAY(MSMacroCmds);
+}
+
+template<class C> bool wwString<C>::TestBeltAndBraces(const SvStream& rStrm)
+{
+    bool bRet = false;
+    sal_uInt32 nOldPos = rStrm.Tell();
+    SvStream &rMutableStrm = const_cast<SvStream &>(rStrm);
+    sal_uInt32 nLen = rMutableStrm.Seek(STREAM_SEEK_TO_END);
+    rMutableStrm.Seek(nOldPos);
+    C nBelt;
+    rMutableStrm >> nBelt;
+    nBelt *= sizeof(C);
+    if (nOldPos + sizeof(C) + nBelt + sizeof(C) <= nLen &&
+        !rStrm.GetError() && !rStrm.IsEof())
+    {
+        rMutableStrm.SeekRel(nBelt);
+        if (!rStrm.GetError())
+        {
+            C cBraces;
+            rMutableStrm >> cBraces;
+            if (!rMutableStrm.GetError() && cBraces == 0)
+                bRet = true;
+        }
+    }
+    rMutableStrm.Seek(nOldPos);
+    return bRet;
+}
+=====================================================================
+Found a 37 line (182 tokens) duplication in the following files: 
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 1596 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+
+    aStyleHelper.ApplyAttrs();
+#else
+    if (bFontNodeNeeded)
+    {
+        SmToken aToken;
+        aToken.cMathChar = '\0';
+        aToken.nGroup = 0;
+        aToken.nLevel = 5;
+
+        if (nIsBold != -1)
+        {
+            if (nIsBold)
+                aToken.eType = TBOLD;
+            else
+                aToken.eType = TNBOLD;
+            SmStructureNode *pFontNode = static_cast<SmStructureNode *>
+                (new SmFontNode(aToken));
+            pFontNode->SetSubNodes(0,rNodeStack.Pop());
+            rNodeStack.Push(pFontNode);
+        }
+        if (nIsItalic != -1)
+        {
+            if (nIsItalic)
+                aToken.eType = TITALIC;
+            else
+                aToken.eType = TNITALIC;
+            SmStructureNode *pFontNode = static_cast<SmStructureNode *>
+                (new SmFontNode(aToken));
+            pFontNode->SetSubNodes(0,rNodeStack.Pop());
+            rNodeStack.Push(pFontNode);
+        }
+        if (nFontSize != 0.0)
+        {
+            aToken.eType = TSIZE;
+            SmFontNode *pFontNode = new SmFontNode(aToken);
+
+            if (MAP_RELATIVE == GetSmImport().GetMM100UnitConverter().
+=====================================================================
+Found a 15 line (182 tokens) duplication in the following files: 
+Starting at line 2512 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/dapiuno.cxx
+Starting at line 937 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+    switch (nPart)
+    {
+        //! use translated strings from globstr.src
+        case com::sun::star::sheet::DataPilotFieldGroupBy::SECONDS:  aRet = String::CreateFromAscii("Seconds");  break;
+        case com::sun::star::sheet::DataPilotFieldGroupBy::MINUTES:  aRet = String::CreateFromAscii("Minutes");  break;
+        case com::sun::star::sheet::DataPilotFieldGroupBy::HOURS:    aRet = String::CreateFromAscii("Hours");    break;
+        case com::sun::star::sheet::DataPilotFieldGroupBy::DAYS:     aRet = String::CreateFromAscii("Days");     break;
+        case com::sun::star::sheet::DataPilotFieldGroupBy::MONTHS:   aRet = String::CreateFromAscii("Months");   break;
+        case com::sun::star::sheet::DataPilotFieldGroupBy::QUARTERS: aRet = String::CreateFromAscii("Quarters"); break;
+        case com::sun::star::sheet::DataPilotFieldGroupBy::YEARS:    aRet = String::CreateFromAscii("Years");    break;
+        default:
+            DBG_ERROR("invalid date part");
+    }
+    return aRet;
+}
+=====================================================================
+Found a 30 line (182 tokens) duplication in the following files: 
+Starting at line 2293 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/table2.cxx
+Starting at line 2345 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/table2.cxx
+
+void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
+{
+	SCROW nStartRow = nRow1;
+	nRecalcLvl++;
+	while (nStartRow <= nRow2)
+	{
+		BYTE nOldFlag = pRowFlags->GetValue(nStartRow) & CR_HIDDEN;
+        SCROW nEndRow = pRowFlags->GetBitStateEnd( nStartRow, CR_HIDDEN, nOldFlag);
+        if (nEndRow > nRow2)
+            nEndRow = nRow2;
+
+		BOOL bWasVis = ( nOldFlag == 0 );
+		BOOL bChanged = ( bWasVis != bShow );
+		if ( bChanged )
+		{
+			ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
+			if (pDrawLayer)
+			{
+				long nHeight = (long) pRowHeight->SumValues( nStartRow, nEndRow);
+				if (bShow)
+					pDrawLayer->HeightChanged( nTab, nStartRow, nHeight );
+				else
+					pDrawLayer->HeightChanged( nTab, nStartRow, -nHeight );
+			}
+		}
+
+		if (bShow)
+            pRowFlags->AndValue( nStartRow, nEndRow, sal::static_int_cast<BYTE>(~(CR_HIDDEN | CR_FILTERED)) );
+		else
+            pRowFlags->OrValue( nStartRow, nEndRow, CR_HIDDEN);
+=====================================================================
+Found a 44 line (182 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+Starting at line 290 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+
+    const char *pRun = rLine.GetBuffer();
+    
+
+    while( *pRun )
+    {
+        while( *pRun && isSpace( *pRun ) )
+            pRun++;
+        if( ! *pRun )
+            break;
+        while( *pRun && ! isSpace( *pRun ) )
+        {
+            if( *pRun == '\\' )
+            {
+                // escapement
+                pRun++;
+                if( *pRun )
+                    pRun++;
+            }
+            else if( *pRun == '`' )
+            {
+                do pRun++; while( *pRun && *pRun != '`' );
+                if( *pRun )
+                    pRun++;
+            }
+            else if( *pRun == '\'' )
+            {
+                do pRun++; while( *pRun && *pRun != '\'' );
+                if( *pRun )
+                    pRun++;
+            }
+            else if( *pRun == '"' )
+            {
+                do pRun++; while( *pRun && *pRun != '"' );
+                if( *pRun )
+                    pRun++;
+            }
+            else
+                pRun++;
+        }
+        nTokenCount++;
+    }
+    
+    return nTokenCount;
+}
+=====================================================================
+Found a 24 line (182 tokens) duplication in the following files: 
+Starting at line 751 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+            aID                     = aLine.getToken( 0, ',', nIndex );
+            aAccelState             = aLine.getToken( 2, ',', nIndex );
+            aMenuState              = aLine.getToken( 0, ',', nIndex );
+            aStatusState            = aLine.getToken( 0, ',', nIndex );
+            aToolbarState           = aLine.getToken( 0, ',', nIndex );
+            aImageRotationState     = aLine.getToken( 8, ',', nIndex );
+            aImageReflectionState   = aLine.getToken( 0, ',', nIndex );
+            aCmdName                = aLine.getToken( 10, ',', nIndex );
+            aSlotName               = aLine.getToken( 1, ',', nIndex );
+
+            if ( aCmdName.getLength() == 0 )
+                aCmdName = aSlotName;
+
+            int nID = aID.toInt32();
+
+            if ( nID > 5000 && ( aAccelState.equalsIgnoreAsciiCase( "TRUE" ) ||
+                                 aMenuState.equalsIgnoreAsciiCase( "TRUE" ) ||
+                                 aStatusState.equalsIgnoreAsciiCase( "TRUE" ) ||
+                                 aToolbarState.equalsIgnoreAsciiCase( "TRUE" ) ))
+            {
+                CommandLabels aCmdLabel;
+
+                aCmdLabel.nID = nID;
+                aCmdLabel.aCommand += OStringToOUString( aCmdName, RTL_TEXTENCODING_ASCII_US );
+=====================================================================
+Found a 9 line (182 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/linkdata_curs.h
+
+static char linkdata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+   0x10, 0xf0, 0x1f, 0x00, 0x08, 0x70, 0x18, 0x00, 0x10, 0xf0, 0x18, 0x00,
+=====================================================================
+Found a 33 line (182 tokens) duplication in the following files: 
+Starting at line 362 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+	return xRS;
+}
+// -------------------------------------------------------------------------
+
+Reference< XConnection > SAL_CALL OStatement_Base::getConnection(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+	return (Reference< XConnection >)m_pConnection;
+}
+// -------------------------------------------------------------------------
+
+Any SAL_CALL OStatement::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	Any aRet = ::cppu::queryInterface(rType,static_cast< XBatchExecution*> (this));
+	return aRet.hasValue() ? aRet : OStatement_Base::queryInterface(rType);
+}
+// -------------------------------------------------------------------------
+
+void SAL_CALL OStatement::addBatch( const ::rtl::OUString& sql ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+
+	m_aBatchList.push_back(sql);
+}
+// -------------------------------------------------------------------------
+Sequence< sal_Int32 > SAL_CALL OStatement::executeBatch(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 37 line (182 tokens) duplication in the following files: 
+Starting at line 1328 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+Starting at line 1448 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+void ExceptionType::dumpSuperMember(FileStream& o, const OString& superType)
+{
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+
+		if (aSuperReader.isValid())
+		{
+			dumpSuperMember(o, aSuperReader.getSuperTypeName());
+
+			sal_uInt32 		fieldCount = aSuperReader.getFieldCount();
+			RTFieldAccess 	access = RT_ACCESS_INVALID;
+			OString 		fieldName;
+			OString 		fieldType;
+			for (sal_uInt16 i=0; i < fieldCount; i++)
+			{
+				access = aSuperReader.getFieldAccess(i);
+
+				if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
+					continue;
+
+				fieldName = aSuperReader.getFieldName(i);
+				fieldType = aSuperReader.getFieldType(i);
+
+				// write documentation
+				OString aDoc = aSuperReader.getFieldDoku(i);
+				if( aDoc.getLength() )
+					o << "/**\n" << aDoc << "\n*/";
+
+				o << indent();
+				dumpType(o, fieldType);
+				o << " ";
+				o << fieldName << ";\n";
+			}
+		}
+	}
+}
+=====================================================================
+Found a 35 line (182 tokens) duplication in the following files: 
+Starting at line 1015 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 1239 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 554 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+BASETYPE IdlType::isBaseType(const OString& type)
+{
+	if (type.equals("long"))
+		return BT_LONG;
+	if (type.equals("short"))
+		return BT_SHORT;
+	if (type.equals("hyper"))
+		return BT_HYPER;
+	if (type.equals("string"))
+		return BT_STRING;
+	if (type.equals("boolean"))
+		return BT_BOOLEAN;
+	if (type.equals("char"))
+		return BT_CHAR;
+	if (type.equals("byte"))
+		return BT_BYTE;
+	if (type.equals("any"))
+		return BT_ANY;
+	if (type.equals("float"))
+		return BT_FLOAT;
+	if (type.equals("double"))
+		return BT_DOUBLE;
+	if (type.equals("void"))
+		return BT_VOID;
+	if (type.equals("unsigned long"))
+		return BT_UNSIGNED_LONG;
+	if (type.equals("unsigned short"))
+		return BT_UNSIGNED_SHORT;
+	if (type.equals("unsigned hyper"))
+		return BT_UNSIGNED_HYPER;
+
+	return BT_INVALID;
+}
+
+OString	IdlType::checkSpecialIdlType(const OString& type)
+=====================================================================
+Found a 39 line (181 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/GradientStyle.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/TransGradientStyle.cxx
+
+	SvXMLTokenMap aTokenMap( aTrGradientAttrTokenMap );
+    SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap();
+
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rFullAttrName = xAttrList->getNameByIndex( i );
+		OUString aStrAttrName;
+		sal_uInt16 nPrefix = rNamespaceMap.GetKeyByAttrName( rFullAttrName, &aStrAttrName );
+		const OUString& rStrValue = xAttrList->getValueByIndex( i );
+
+		sal_Int32 nTmpValue;
+
+		switch( aTokenMap.Get( nPrefix, aStrAttrName ) )
+		{
+		case XML_TOK_GRADIENT_NAME:
+			{
+				rStrName = rStrValue;
+				bHasName = sal_True;
+			}			
+			break;
+		case XML_TOK_GRADIENT_DISPLAY_NAME:
+			{
+				aDisplayName = rStrValue;
+			}			
+			break;
+		case XML_TOK_GRADIENT_STYLE:
+			{
+				sal_uInt16 eValue;
+				if( SvXMLUnitConverter::convertEnum( eValue, rStrValue, pXML_GradientStyle_Enum ) )
+				{
+					aGradient.Style = (awt::GradientStyle) eValue;
+					bHasStyle = sal_True;
+				}
+			}
+			break;
+		case XML_TOK_GRADIENT_CX:
+			SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
+			aGradient.XOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
+=====================================================================
+Found a 36 line (181 tokens) duplication in the following files: 
+Starting at line 914 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi.cxx
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salobj.cxx
+
+void WinSalObject::UnionClipRegion( long nX, long nY, long nWidth, long nHeight )
+{
+	RECT*		pRect = mpNextClipRect;
+	RECT*		pBoundRect = &(mpClipRgnData->rdh.rcBound);
+	long		nRight = nX + nWidth;
+	long		nBottom = nY + nHeight;
+
+	if ( mbFirstClipRect )
+	{
+		pBoundRect->left	= nX;
+		pBoundRect->top 	= nY;
+		pBoundRect->right	= nRight;
+		pBoundRect->bottom	= nBottom;
+		mbFirstClipRect = FALSE;
+	}
+	else
+	{
+		if ( nX < pBoundRect->left )
+			pBoundRect->left = (int)nX;
+
+		if ( nY < pBoundRect->top )
+			pBoundRect->top = (int)nY;
+
+		if ( nRight > pBoundRect->right )
+			pBoundRect->right = (int)nRight;
+
+		if ( nBottom > pBoundRect->bottom )
+			pBoundRect->bottom = (int)nBottom;
+	}
+
+	pRect->left 	= (int)nX;
+	pRect->top		= (int)nY;
+	pRect->right	= (int)nRight;
+	pRect->bottom	= (int)nBottom;
+	mpNextClipRect++;
+}
+=====================================================================
+Found a 22 line (181 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+
+	Rectangle   aClipRect = rRect;
+	Rectangle 	aRect = rRect;
+
+	aRect.Left()--;
+	aRect.Top()--;
+	aRect.Right()++;
+	aRect.Bottom()++;
+
+	// rotiertes BoundRect ausrechnen
+	double  fAngle  = (rGradient.GetAngle() % 3600) * F_PI1800;
+	double  fWidth  = aRect.GetWidth();
+	double  fHeight = aRect.GetHeight();
+	double  fDX     = fWidth  * fabs( cos( fAngle ) ) +
+					  fHeight * fabs( sin( fAngle ) );
+	double  fDY     = fHeight * fabs( cos( fAngle ) ) +
+					  fWidth  * fabs( sin( fAngle ) );
+			fDX = (fDX - fWidth)  * 0.5 + 0.5;
+			fDY = (fDY - fHeight) * 0.5 + 0.5;
+	aRect.Left()   -= (long)fDX;
+	aRect.Right()  += (long)fDX;
+	aRect.Top()    -= (long)fDY;
+	aRect.Bottom() += (long)fDY;
+=====================================================================
+Found a 18 line (181 tokens) duplication in the following files: 
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/registry_tdprovider/tdprovider.cxx
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/tdmanager/tdmgr.cxx
+
+    virtual void SAL_CALL remove( const Any & rElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
+
+	// XHierarchicalNameAccess
+	virtual Any SAL_CALL getByHierarchicalName( const OUString & rName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL hasByHierarchicalName( const OUString & rName ) throw(::com::sun::star::uno::RuntimeException);
+
+    // XTypeDescriptionEnumerationAccess
+    virtual ::com::sun::star::uno::Reference<
+        ::com::sun::star::reflection::XTypeDescriptionEnumeration > SAL_CALL
+    createTypeDescriptionEnumeration(
+        const ::rtl::OUString& moduleName,
+        const ::com::sun::star::uno::Sequence<
+            ::com::sun::star::uno::TypeClass >& types,
+        ::com::sun::star::reflection::TypeDescriptionSearchDepth depth )
+            throw ( ::com::sun::star::reflection::NoSuchTypeNameException,
+                    ::com::sun::star::reflection::InvalidTypeNameException,
+                    ::com::sun::star::uno::RuntimeException );
+};
+=====================================================================
+Found a 49 line (181 tokens) duplication in the following files: 
+Starting at line 969 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodel.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodelapi.cxx
+
+	BOOL CreateFromAddress_Impl( String& rFrom )
+
+	/*	[Beschreibung]
+
+		Diese Funktion versucht mit Hilfe des IniManagers eine From-Adresse
+		zu erzeugen. daf"ur werden die Felder 'Vorname', 'Name' und 'EMail'
+		aus der Applikations-Ini-Datei ausgelesen. Sollten diese Felder
+		nicht gesetzt sein, wird FALSE zur"uckgegeben.
+
+		[R"uckgabewert]
+
+		TRUE:	Adresse konnte erzeugt werden.
+		FALSE:	Adresse konnte nicht erzeugt werden.
+	*/
+
+	{
+		SvtUserOptions aUserCFG;
+		String aName		= aUserCFG.GetLastName	();
+		String aFirstName	= aUserCFG.GetFirstName	();
+		if ( aFirstName.Len() || aName.Len() )
+		{
+			if ( aFirstName.Len() )
+			{
+				rFrom = TRIM( aFirstName );
+
+				if ( aName.Len() )
+					rFrom += ' ';
+			}
+			rFrom += TRIM( aName );
+			// unerlaubte Zeichen entfernen
+			rFrom.EraseAllChars( '<' );
+			rFrom.EraseAllChars( '>' );
+			rFrom.EraseAllChars( '@' );
+		}
+		String aEmailName = aUserCFG.GetEmail();
+		// unerlaubte Zeichen entfernen
+		aEmailName.EraseAllChars( '<' );
+		aEmailName.EraseAllChars( '>' );
+
+		if ( aEmailName.Len() )
+		{
+			if ( rFrom.Len() )
+				rFrom += ' ';
+			( ( rFrom += '<' ) += TRIM( aEmailName ) ) += '>';
+		}
+		else
+			rFrom.Erase();
+		return ( rFrom.Len() > 0 );
+	}
+=====================================================================
+Found a 30 line (181 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/attrlistimpl.cxx
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+
+	if( i < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw  (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+=====================================================================
+Found a 37 line (181 tokens) duplication in the following files: 
+Starting at line 801 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+Starting at line 856 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+
+    c_rtl_tres_state_start( hRtlTestResult, "getStr");
+	sal_Char methName[MAXBUFLENGTH];
+	sal_Char* pMeth = methName;
+
+	const sal_Unicode tmpUC=0x0;
+	rtl_uString* tmpUstring = NULL;
+	const sal_Char *tmpStr=kTestStr1;
+	sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
+	//sal_Int32 cmpLen = 0;
+        OUString tempString(aUStr1);
+
+	rtl_string2UString( &tmpUstring, tmpStr,  tmpLen,                                
+		osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
+    OSL_ASSERT(tmpUstring != NULL);
+
+
+    typedef struct TestCase
+    {
+        sal_Char*			comments;
+        const sal_Unicode*		expVal;
+        sal_Int32			cmpLen;
+        OUStringBuffer*                 input1;
+        ~TestCase()                     {  delete input1;}
+    } TestCase;
+
+    TestCase arrTestCase[] =
+    {
+      	{"test normal ustring",(*tmpUstring).buffer,kTestStr1Len, 
+      				new OUStringBuffer(tempString)},
+        {"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
+    };
+
+    sal_Bool res = sal_True;
+    sal_Int32 i;
+    for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+       const sal_Unicode* pstr = arrTestCase[i].input1->getStr();
+=====================================================================
+Found a 8 line (181 tokens) duplication in the following files: 
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f00 - 2f0f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f10 - 2f1f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f20 - 2f2f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f30 - 2f3f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f40 - 2f4f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f50 - 2f5f
+=====================================================================
+Found a 29 line (181 tokens) duplication in the following files: 
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+=====================================================================
+Found a 7 line (181 tokens) duplication in the following files: 
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1488 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0,10,10,10, 0,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fb00 - fb0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,17, 1,// fb10 - fb1f
+=====================================================================
+Found a 7 line (181 tokens) duplication in the following files: 
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,// fa20 - fa2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa30 - fa3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa40 - fa4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa50 - fa5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa60 - fa6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa70 - fa7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa80 - fa8f
+=====================================================================
+Found a 7 line (181 tokens) duplication in the following files: 
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d50 - 4d5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d60 - 4d6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d70 - 4d7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d80 - 4d8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d90 - 4d9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4da0 - 4daf
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+=====================================================================
+Found a 7 line (181 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27, 0,27,27,27,27,27,// 2e90 - 2e9f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ea0 - 2eaf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2eb0 - 2ebf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ec0 - 2ecf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ed0 - 2edf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ee0 - 2eef
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 6 line (181 tokens) duplication in the following files: 
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,22, 4, 4, 4, 0,// 30f0 - 30ff
+=====================================================================
+Found a 7 line (181 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1390 - 139f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13a0 - 13af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13b0 - 13bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13c0 - 13cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13d0 - 13df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13e0 - 13ef
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 13f0 - 13ff
+=====================================================================
+Found a 8 line (181 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,23, 0, 0, 0, 0,// 10f0 - 10ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1100 - 110f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1110 - 111f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1120 - 112f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1130 - 113f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1140 - 114f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5,// 1150 - 115f
+=====================================================================
+Found a 6 line (181 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fa0 - 9faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fb0 - 9fbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fc0 - 9fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fd0 - 9fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fe0 - 9fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9ff0 - 9fff
+=====================================================================
+Found a 36 line (181 tokens) duplication in the following files: 
+Starting at line 1995 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/newmenucontroller.cxx
+
+    if ( m_bModuleIdentified )
+    {
+        Reference< XAcceleratorConfiguration > xDocAccelCfg( m_xDocAcceleratorManager );
+        Reference< XAcceleratorConfiguration > xModuleAccelCfg( m_xModuleAcceleratorManager );
+        Reference< XAcceleratorConfiguration > xGlobalAccelCfg( m_xGlobalAcceleratorManager );
+
+        if ( !m_bAcceleratorCfg )
+        {
+            // Retrieve references on demand
+            m_bAcceleratorCfg = sal_True;
+            if ( !xDocAccelCfg.is() )
+            {
+                Reference< XController > xController = m_xFrame->getController();
+                Reference< XModel > xModel;
+                if ( xController.is() )
+                {
+                    xModel = xController->getModel();
+                    if ( xModel.is() )
+                    {
+                        Reference< XUIConfigurationManagerSupplier > xSupplier( xModel, UNO_QUERY );
+                        if ( xSupplier.is() )
+                        {
+                            Reference< XUIConfigurationManager > xDocUICfgMgr( xSupplier->getUIConfigurationManager(), UNO_QUERY );
+                            if ( xDocUICfgMgr.is() )
+                            {
+                                xDocAccelCfg = Reference< XAcceleratorConfiguration >( xDocUICfgMgr->getShortCutManager(), UNO_QUERY );
+                                m_xDocAcceleratorManager = xDocAccelCfg;
+                            }
+                        }
+                    }
+                }
+            }
+
+            if ( !xModuleAccelCfg.is() )
+            {
+                Reference< XModuleUIConfigurationManagerSupplier > xModuleCfgMgrSupplier( m_xServiceManager->createInstance(
+=====================================================================
+Found a 30 line (181 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/attributelist.cxx
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/attrlistimpl.cxx
+
+	if( std::vector< TagAttribute >::size_type(i) < m_pImpl->vecAttribute.size() ) {
+		return m_pImpl->vecAttribute[i].sValue;
+	}
+	return OUString();
+
+}
+
+OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sType;
+		}
+	}
+	return OUString();
+}
+
+OUString AttributeListImpl::getValueByName(const OUString& sName) throw (RuntimeException)
+{
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+=====================================================================
+Found a 38 line (181 tokens) duplication in the following files: 
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 1418 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+			 pMenu->GetItemType( nCurPos ) != MENUITEM_SEPARATOR )
+		{
+			if ( nCurItemId >= START_ITEMID_WINDOWLIST &&
+				 nCurItemId <= END_ITEMID_WINDOWLIST )
+			{
+				// window list menu item selected
+
+				// #110897#
+                // Reference< XFramesSupplier > xDesktop( ::comphelper::getProcessServiceFactory()->createInstance( DESKTOP_SERVICE ), UNO_QUERY );
+                Reference< XFramesSupplier > xDesktop( getServiceFactory()->createInstance( DESKTOP_SERVICE ), UNO_QUERY );
+
+				if ( xDesktop.is() )
+				{
+					USHORT nTaskId = START_ITEMID_WINDOWLIST;
+                    Reference< XIndexAccess > xList( xDesktop->getFrames(), UNO_QUERY );
+                    sal_Int32 nCount = xList->getCount();
+                    for ( sal_Int32 i=0; i<nCount; ++i )
+					{
+                        Any aItem = xList->getByIndex(i);
+                        Reference< XFrame > xFrame;
+                        aItem >>= xFrame;
+                        if ( xFrame.is() && nTaskId == nCurItemId )
+						{
+                            Window* pWin = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
+							pWin->GrabFocus();
+							pWin->ToTop( TOTOP_RESTOREWHENMIN );
+							break;
+						}
+
+						nTaskId++;
+					}
+				}
+			}
+			else
+			{
+				MenuItemHandler* pMenuItemHandler = GetMenuItemHandler( nCurItemId );
+				if ( pMenuItemHandler && pMenuItemHandler->xMenuItemDispatch.is() )
+				{
+=====================================================================
+Found a 6 line (181 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fa0 - 9faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fb0 - 9fbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fc0 - 9fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fd0 - 9fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fe0 - 9fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9ff0 - 9fff
+=====================================================================
+Found a 12 line (181 tokens) duplication in the following files: 
+Starting at line 2074 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 1103 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/poly.cxx
+
+    {
+        // deCasteljau bezier arc, split at t=0.5
+        // Foley/vanDam, p. 508
+        const double L1x( P1x ), 		   	 L1y( P1y );
+        const double L2x( (P1x + P2x)*0.5 ), L2y( (P1y + P2y)*0.5 );
+        const double Hx ( (P2x + P3x)*0.5 ), Hy ( (P2y + P3y)*0.5 );
+        const double L3x( (L2x + Hx)*0.5 ),  L3y( (L2y + Hy)*0.5 );
+        const double R4x( P4x ), 		   	 R4y( P4y );
+        const double R3x( (P3x + P4x)*0.5 ), R3y( (P3y + P4y)*0.5 );
+        const double R2x( (Hx + R3x)*0.5 ),  R2y( (Hy + R3y)*0.5 );
+        const double R1x( (L3x + R2x)*0.5 ), R1y( (L3y + R2y)*0.5 );
+        const double L4x( R1x ), 		     L4y( R1y );
+=====================================================================
+Found a 42 line (181 tokens) duplication in the following files: 
+Starting at line 701 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/mergechange.cxx
+Starting at line 1086 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/mergechange.cxx
+
+	void OMergeChanges::handle(SubtreeChange const& _rSubtree)
+	{
+		// Handle a SubtreeChange
+		// we must check if exact this SubtreeChange is in the TreeChangeList, if not,
+		// we must add this SubtreeChange to the TreeChangeList
+		// with the pointer m_pCurrentParent we remember our SubtreeChange in witch we
+		// add all other Changes.
+
+        OUString aNodeName = _rSubtree.getNodeName();
+
+        Change *pChange = findExistingChange(m_pCurrentParent,aNodeName);
+
+		// const sal_Char* pType = pChange ? pChange->getType() : NULL;
+		SubtreeChange* pSubtreeChange = NULL;
+		if (pChange == NULL || pChange->ISA(SubtreeChange))
+		{
+			// need to create a new Subtreechange
+			if (!pChange)
+			{
+				// create a new SubtreeChange
+				auto_ptr<SubtreeChange> pNewChange(new SubtreeChange(_rSubtree, SubtreeChange::NoChildCopy()));
+                pSubtreeChange = pNewChange.get();
+
+				// add the new SubtreeChange in m_aTreeChangeList
+				m_pCurrentParent->addChange(auto_ptr<Change>(pNewChange.release()));
+				// check list for this new SubtreeChange
+				OSL_ASSERT(pSubtreeChange == findExistingChange(m_pCurrentParent,aNodeName));
+			}
+			else // hard cast(!) to SubtreeChange because we are a SubtreeChange
+            {
+			    pSubtreeChange = static_cast<SubtreeChange*>(pChange);
+                adjustElementTemplate(*pSubtreeChange,_rSubtree);
+            }
+
+			// save this SubtreeChange so we allways have the last Subtree
+            SubtreeChange* pSaveParent = pushTree(*pSubtreeChange);
+			this->applyToChildren(_rSubtree);
+            popTree( pSaveParent );
+		}
+		else if (pChange->ISA(AddNode))
+		{
+			AddNode* pAddNode = static_cast<AddNode*>(pChange);
+=====================================================================
+Found a 35 line (181 tokens) duplication in the following files: 
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+        pThis = pCallStack[1];
+    }
+    pThis = static_cast< char * >(pThis) - nVtableOffset;
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+            pThis);
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+=====================================================================
+Found a 39 line (181 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+=====================================================================
+Found a 35 line (181 tokens) duplication in the following files: 
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+        pThis = pCallStack[1];
+    }
+    pThis = static_cast< char * >(pThis) - nVtableOffset;
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+            pThis);
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+=====================================================================
+Found a 39 line (181 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+=====================================================================
+Found a 43 line (181 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+                          break;
+                        }
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                                	pUnoArgs[nPos], pParamTypeDescr,
+					pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		int nStackLongs = (pCppStack - pCppStackStart)/sizeof(sal_Int32);
+=====================================================================
+Found a 28 line (180 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+
+        span_pattern_resample_gray(alloc_type& alloc,
+                                   const rendering_buffer& src, 
+                                   interpolator_type& inter,
+                                   const image_filter_lut& filter) :
+            base_type(alloc, src, color_type(0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg;
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+=====================================================================
+Found a 8 line (180 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotfld_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotrow_curs.h
+
+   0x29, 0xa5, 0x06, 0x00, 0x7f, 0xc9, 0x07, 0x00, 0x00, 0x11, 0x00, 0x00,
+   0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00,
+   0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x07, 0x00,
+   0x00, 0x59, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00,
+   0x00, 0x21, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00,
+   0x00, 0x80, 0x02, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 43 line (180 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/prov.cxx
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+static sal_Bool writeInfo( void * pRegistryKey,
+						   const rtl::OUString & rImplementationName,
+   						   Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+	
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 32 line (180 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dbregister.cxx
+Starting at line 719 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optpath.cxx
+
+IMPL_LINK( SvxPathTabPage, HeaderEndDrag_Impl, HeaderBar*, pBar )
+{
+	if ( pBar && !pBar->GetCurItemId() )
+		return 0;
+
+	if ( !pHeaderBar->IsItemMode() )
+	{
+		Size aSz;
+		USHORT nTabs = pHeaderBar->GetItemCount();
+		long nTmpSz = 0;
+		long nWidth = pHeaderBar->GetItemSize(ITEMID_TYPE);
+		long nBarWidth = pHeaderBar->GetSizePixel().Width();
+
+        if(nWidth < TAB_WIDTH_MIN)
+            pHeaderBar->SetItemSize( ITEMID_TYPE, TAB_WIDTH_MIN);
+        else if ( ( nBarWidth - nWidth ) < TAB_WIDTH_MIN )
+            pHeaderBar->SetItemSize( ITEMID_TYPE, nBarWidth - TAB_WIDTH_MIN );
+
+		for ( USHORT i = 1; i <= nTabs; ++i )
+		{
+			long _nWidth = pHeaderBar->GetItemSize(i);
+			aSz.Width() =  _nWidth + nTmpSz;
+			nTmpSz += _nWidth;
+			pPathBox->SetTab( i, PixelToLogic( aSz, MapMode(MAP_APPFONT) ).Width(), MAP_APPFONT );
+		}
+	}
+	return 1;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SvxPathTabPage, DialogClosedHdl, DialogClosedEvent*, pEvt )
+=====================================================================
+Found a 24 line (180 tokens) duplication in the following files: 
+Starting at line 4368 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3963 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] =
+{
+	{ 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] = 
+{
+	{ { 4230, 0 }, { 17370, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] =
+{
+	{ 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 }
+};
+static const mso_CustomShape msoFlowChartInputOutput =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartInputOutputVert, sizeof( mso_sptFlowChartInputOutputVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartInputOutputTextRect, sizeof( mso_sptFlowChartInputOutputTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartInputOutputGluePoints, sizeof( mso_sptFlowChartInputOutputGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 26 line (180 tokens) duplication in the following files: 
+Starting at line 593 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+Starting at line 1147 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+
+        xController = m_xFrame->getController();
+
+    Reference < XDispatchProvider > xProvider( xController, UNO_QUERY );
+    if ( xProvider.is() )
+    {
+        Reference < XDispatch > xDisp = xProvider->queryDispatch( rEvent.FeatureURL, ::rtl::OUString(), 0 );
+        if ( xDisp.is() )
+        {
+            Reference< XUnoTunnel > xTunnel( xDisp, UNO_QUERY );
+            SfxOfficeDispatch* pDisp = NULL;
+            if ( xTunnel.is() )
+            {
+                sal_Int64 nImplementation = xTunnel->getSomething(SfxOfficeDispatch::impl_getStaticIdentifier());
+                pDisp = reinterpret_cast< SfxOfficeDispatch* >( sal::static_int_cast< sal_IntPtr >( nImplementation ));
+            }
+
+            if ( pDisp )
+                pViewFrame = pDisp->GetDispatcher_Impl()->GetFrame();
+        }
+    }
+
+    USHORT nSlotId = 0;
+    SfxSlotPool& rPool = SfxSlotPool::GetSlotPool( pViewFrame );
+    const SfxSlot* pSlot = rPool.GetUnoSlot( rEvent.FeatureURL.Path );
+    if ( pSlot )
+        nSlotId = pSlot->GetSlotId();
+=====================================================================
+Found a 45 line (180 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+void ScInterpreter:: ScKGV()
+{
+	BYTE nParamCount = GetByte();
+	if ( MustHaveParamCountMin( nParamCount, 1 ) )
+	{
+		double fSign = 1.0;
+        double fx, fy = 0.0;
+		switch (GetStackType())
+		{
+			case svDouble :
+			case svString:
+			case svSingleRef:
+			{
+				fy = GetDouble();
+				if (fy < 0.0)
+				{
+					fy *= -1.0;
+					fSign *= -1.0;
+				}
+			}
+			break;
+			case svDoubleRef :
+			{
+				ScRange aRange;
+				USHORT nErr = 0;
+				PopDoubleRef( aRange );
+				double nCellVal;
+				ScValueIterator aValIter(pDok, aRange, glSubTotal);
+				if (aValIter.GetFirst(nCellVal, nErr))
+				{
+					fy = nCellVal;
+					if (fy < 0.0)
+					{
+						fy *= -1.0;
+						fSign *= -1.0;
+					}
+					while (nErr == 0 && aValIter.GetNext(nCellVal, nErr))
+					{
+						fx = nCellVal;
+						if (fx < 0.0)
+						{
+							fx *= -1.0;
+							fSign *= -1.0;
+						}
+						fy = fx * fy / ScGetGGT(fx, fy);
+=====================================================================
+Found a 25 line (180 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/autoform.cxx
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblafmt.cxx
+
+    READ( aHeight,      SvxFontHeightItem  , rVersions.nFontHeightVersion)
+    READ( aWeight,      SvxWeightItem      , rVersions.nWeightVersion)
+    READ( aPosture,     SvxPostureItem     , rVersions.nPostureVersion)
+    // --- from 641 on: CJK and CTL font settings
+    if( AUTOFORMAT_DATA_ID_641 <= nVer )
+    {
+        READ( aCJKFont,                        SvxFontItem         , rVersions.nFontVersion)
+        READ( aCJKHeight,       SvxFontHeightItem   , rVersions.nFontHeightVersion)
+        READ( aCJKWeight,     SvxWeightItem       , rVersions.nWeightVersion)
+        READ( aCJKPosture,   SvxPostureItem      , rVersions.nPostureVersion)
+        READ( aCTLFont,                        SvxFontItem         , rVersions.nFontVersion)
+        READ( aCTLHeight,        SvxFontHeightItem   , rVersions.nFontHeightVersion)
+        READ( aCTLWeight,       SvxWeightItem       , rVersions.nWeightVersion)
+        READ( aCTLPosture,   SvxPostureItem      , rVersions.nPostureVersion)
+    }
+    READ( aUnderline,   SvxUnderlineItem   , rVersions.nUnderlineVersion)
+    READ( aCrossedOut,  SvxCrossedOutItem  , rVersions.nCrossedOutVersion)
+    READ( aContour,     SvxContourItem     , rVersions.nContourVersion)
+    READ( aShadowed,    SvxShadowedItem       , rVersions.nShadowedVersion)
+    READ( aColor,       SvxColorItem       , rVersions.nColorVersion)
+
+    READ( aBox,         SvxBoxItem         , rVersions.nBoxVersion)
+
+    // --- from 680/dr14 on: diagonal frame lines
+    if( nVer >= AUTOFORMAT_DATA_ID_680DR14 )
+=====================================================================
+Found a 36 line (180 tokens) duplication in the following files: 
+Starting at line 885 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+Starting at line 942 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+    c_rtl_tres_state_start( hRtlTestResult, "getStr");
+	sal_Char methName[MAXBUFLENGTH];
+	sal_Char* pMeth = methName;
+
+	const sal_Unicode tmpUC=0x0;
+	rtl_uString* tmpUstring = NULL;
+	const sal_Char *tmpStr=kTestStr1;
+	sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
+	sal_Int32 cmpLen = 0;
+
+	rtl_string2UString( &tmpUstring, tmpStr,  tmpLen,                                
+                        osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
+    OSL_ASSERT(tmpUstring != NULL);
+
+
+	typedef struct TestCase
+    {
+        sal_Char*				comments;
+        const sal_Unicode*		expVal;
+        sal_Int32				cmpLen;
+        OUString*                input1;
+        ~TestCase() {  delete input1;}
+ 	} TestCase;
+
+    TestCase arrTestCase[] =
+    {
+      	{"test normal ustring",(*tmpUstring).buffer,kTestStr1Len, 
+         new OUString(aUStr1)},
+        {"test empty ustring",&tmpUC, 1, new OUString()}
+    };
+
+    sal_Bool res = sal_True;
+    sal_Int32 i;
+    for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+        const sal_Unicode* pstr = arrTestCase[i].input1->getStr();
+=====================================================================
+Found a 51 line (180 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/test/Container1/nativelib/nativeview.c
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/windows/nativeview.c
+
+    return ((jlong)hWnd);
+}
+
+/*****************************************************************************
+ *
+ * Class      : -
+ * Method     : NativeViewWndProc
+ * Signature  : -
+ * Description: registered window handler to intercept window messages between
+ *              java and office process
+ */
+static LRESULT APIENTRY NativeViewWndProc(
+    HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    HANDLE hFuncPtr;
+
+    /* resize new created child window to fill out the java window complete */
+    if (uMsg==WM_PARENTNOTIFY)
+    {
+        if (wParam == WM_CREATE)
+        {
+            RECT rect;
+            HWND hChild = (HWND) lParam;
+
+            GetClientRect(hWnd, &rect);
+
+            SetWindowPos(hChild,
+                        NULL,
+                        rect.left,
+                        rect.top,
+                        rect.right - rect.left,
+                        rect.bottom - rect.top,
+                        SWP_NOZORDER);
+        }
+    }
+    /* handle normal resize events */
+    else if(uMsg==WM_SIZE)
+    {
+        WORD newHeight = HIWORD(lParam);
+        WORD newWidth  = LOWORD(lParam);
+        HWND hChild    = GetWindow(hWnd, GW_CHILD);
+
+        if (hChild != NULL)
+            SetWindowPos(hChild, NULL, 0, 0, newWidth, newHeight, SWP_NOZORDER);
+    }
+
+    /* forward request to original handler which is intercepted by this window procedure */
+    hFuncPtr = GetProp(hWnd, OLD_PROC_KEY);
+    MY_ASSERT(hFuncPtr,"lost original window proc handler");
+    return CallWindowProc( hFuncPtr, hWnd, uMsg, wParam, lParam);
+}
+=====================================================================
+Found a 22 line (180 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	Reference< XTablesSupplier > xTables = m_pConnection->createCatalog();
+	if(!xTables.is())
+		throw SQLException();
+
+	Reference< XNameAccess> xNames = xTables->getTables();
+	if(!xNames.is())
+		throw SQLException();
+
+	ODatabaseMetaDataResultSet::ORows aRows;
+	ODatabaseMetaDataResultSet::ORow aRow(19);
+	aRow[10] = new ORowSetValueDecorator((sal_Int32)10);
+	Sequence< ::rtl::OUString> aTabNames(xNames->getElementNames());
+	const ::rtl::OUString* pTabBegin	= aTabNames.getConstArray();
+	const ::rtl::OUString* pTabEnd		= pTabBegin + aTabNames.getLength();
+	for(;pTabBegin != pTabEnd;++pTabBegin)
+	{
+		if(match(tableNamePattern,*pTabBegin,'\0'))
+		{
+			Reference< XColumnsSupplier> xTable;
+			::cppu::extractInterface(xTable,xNames->getByName(*pTabBegin));
+=====================================================================
+Found a 13 line (179 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                fg[3] >>= image_filter_shift;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+                span->r = fg[order_type::R];
+=====================================================================
+Found a 24 line (179 tokens) duplication in the following files: 
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cpptypemaker.cxx
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/javatypemaker.cxx
+
+    OString const & type, bool referenceType, bool defaultvalue)
+{
+    RTTypeClass typeClass;
+    OString name;
+    sal_Int32 rank;
+    std::vector< OString > arguments;
+    codemaker::UnoType::Sort sort = codemaker::decomposeAndResolve(
+        manager, type, true, true, true, &typeClass, &name, &rank, &arguments);
+    printType(o,
+        options, manager, sort, typeClass, name, rank, arguments,
+        referenceType, defaultvalue);
+}
+
+bool printConstructorParameters(std::ostream & o,
+    ProgramOptions const & options, TypeManager const & manager,
+    typereg::Reader const & reader, typereg::Reader const & outerReader,
+    std::vector< OString > const & arguments)
+{
+    bool previous = false;
+    if ( reader.getSuperTypeCount() != 0 ) {
+        OString super(
+            codemaker::convertString(reader.getSuperTypeName(0)));
+        typereg::Reader superReader(manager.getTypeReader(super));
+        if ( !superReader.isValid() ) {
+=====================================================================
+Found a 25 line (179 tokens) duplication in the following files: 
+Starting at line 2902 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+Starting at line 3133 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+
+SvXMLImportContext * SdXMLPluginShapeContext::CreateChildContext( USHORT p_nPrefix, const ::rtl::OUString& rLocalName, const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	if( p_nPrefix == XML_NAMESPACE_DRAW && IsXMLToken( rLocalName, XML_PARAM ) )
+	{
+		OUString aParamName, aParamValue;
+		const sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+		// now parse the attribute list and look for draw:name and draw:value
+		for(sal_Int16 a(0); a < nAttrCount; a++)
+		{
+			const OUString& rAttrName = xAttrList->getNameByIndex(a);
+			OUString aLocalName;
+			sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName(rAttrName, &aLocalName);
+			const OUString aValue( xAttrList->getValueByIndex(a) );
+
+			if( nPrefix == XML_NAMESPACE_DRAW )
+			{
+				if( IsXMLToken( aLocalName, XML_NAME ) )
+				{
+					aParamName = aValue;
+				}
+				else if( IsXMLToken( aLocalName, XML_VALUE ) )
+				{
+					aParamValue = aValue;
+				}
+			}
+=====================================================================
+Found a 31 line (179 tokens) duplication in the following files: 
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1206 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+							  m_pProvider,
+							  m_xIdentifier->getContentIdentifier() );
+}
+
+//=========================================================================
+uno::Sequence< uno::Any > Content::setPropertyValues(
+        const uno::Sequence< beans::PropertyValue >& rValues,
+        const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+    throw( uno::Exception )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+    uno::Sequence< uno::Any > aRet( rValues.getLength() );
+    uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() );
+	sal_Int32 nChanged = 0;
+
+    beans::PropertyChangeEvent aEvent;
+    aEvent.Source         = static_cast< cppu::OWeakObject * >( this );
+	aEvent.Further 		  = sal_False;
+//	aEvent.PropertyName	  =
+	aEvent.PropertyHandle = -1;
+//	aEvent.OldValue		  =
+//	aEvent.NewValue       =
+
+    const beans::PropertyValue* pValues = rValues.getConstArray();
+	sal_Int32 nCount = rValues.getLength();
+
+    uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet;
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+	sal_Bool bExchange = sal_False;
+=====================================================================
+Found a 18 line (179 tokens) duplication in the following files: 
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+			false, false,  true,  true, false,  true, false, false, //()*+,-./
+			 true,  true,  true,  true,  true,  true,  true,  true, //01234567
+			 true,  true, false, false, false, false, false, false, //89:;<=>?
+			false,  true,  true,  true,  true,  true,  true,  true, //@ABCDEFG
+			 true,  true,  true,  true,  true,  true,  true,  true, //HIJKLMNO
+			 true,  true,  true,  true,  true,  true,  true,  true, //PQRSTUVW
+			 true,  true,  true, false, false, false,  true,  true, //XYZ[\]^_
+			 true,  true,  true,  true,  true,  true,  true,  true, //`abcdefg
+			 true,  true,  true,  true,  true,  true,  true,  true, //hijklmno
+			 true,  true,  true,  true,  true,  true,  true,  true, //pqrstuvw
+			 true,  true,  true,  true,  true,  true,  true, false  //xyz{|}~
+		  };
+	return isUSASCII(nChar) && aMap[nChar];
+}
+
+//============================================================================
+// static
+bool INetMIME::isIMAPAtomChar(sal_uInt32 nChar)
+=====================================================================
+Found a 20 line (179 tokens) duplication in the following files: 
+Starting at line 6152 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 6584 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    fNoTabForInd                = ( a32Bit &  0x00000001 )       ;
+    fNoSpaceRaiseLower          = ( a32Bit &  0x00000002 ) >>  1 ;
+    fSupressSpbfAfterPageBreak  = ( a32Bit &  0x00000004 ) >>  2 ;
+    fWrapTrailSpaces            = ( a32Bit &  0x00000008 ) >>  3 ;
+    fMapPrintTextColor          = ( a32Bit &  0x00000010 ) >>  4 ;
+    fNoColumnBalance            = ( a32Bit &  0x00000020 ) >>  5 ;
+    fConvMailMergeEsc           = ( a32Bit &  0x00000040 ) >>  6 ;
+    fSupressTopSpacing          = ( a32Bit &  0x00000080 ) >>  7 ;
+    fOrigWordTableRules         = ( a32Bit &  0x00000100 ) >>  8 ;
+    fTransparentMetafiles       = ( a32Bit &  0x00000200 ) >>  9 ;
+    fShowBreaksInFrames         = ( a32Bit &  0x00000400 ) >> 10 ;
+    fSwapBordersFacingPgs       = ( a32Bit &  0x00000800 ) >> 11 ;
+    fSuppressTopSpacingMac5     = ( a32Bit &  0x00010000 ) >> 16 ;
+    fTruncDxaExpand             = ( a32Bit &  0x00020000 ) >> 17 ;
+    fPrintBodyBeforeHdr         = ( a32Bit &  0x00040000 ) >> 18 ;
+    fNoLeading                  = ( a32Bit &  0x00080000 ) >> 19 ;
+    fMWSmallCaps                = ( a32Bit &  0x00200000 ) >> 21 ;
+
+    fUsePrinterMetrics          = ( a32Bit &  0x80000000 ) >> 31 ;
+}
+=====================================================================
+Found a 30 line (179 tokens) duplication in the following files: 
+Starting at line 939 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/view.cxx
+Starting at line 1030 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/view.cxx
+
+	String	aText;
+
+	for (USHORT i = 0; i < nLines; i++)
+	{
+		aLine = rText.GetToken(i, '\n');
+		aLine.EraseAllChars('\r');
+		aLine.EraseLeadingChars('\n');
+		aLine.EraseTrailingChars('\n');
+		aSize = GetTextLineSize(rDevice, aLine);
+		if (aSize.Width() > MaxWidth)
+		{
+			do
+			{
+				xub_StrLen m	= aLine.Len();
+				xub_StrLen nLen = m;
+
+				for (xub_StrLen n = 0; n < nLen; n++)
+				{
+					sal_Unicode cLineChar = aLine.GetChar(n);
+					if ((cLineChar == ' ') || (cLineChar == '\t'))
+					{
+						aText = aLine.Copy(0, n);
+						if (GetTextLineSize(rDevice, aText).Width() < MaxWidth)
+							m = n;
+						else
+							break;
+					}
+				}
+				aText = aLine.Copy(0, m);
+				aLine.Erase(0, m);
+=====================================================================
+Found a 25 line (179 tokens) duplication in the following files: 
+Starting at line 1466 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1850 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+    if (utf8) {
+        for (cmin = 0, i = 0; (i < cpdmin) && word[cmin]; i++) {
+          cmin++;
+          for (; (word[cmin] & 0xc0) == 0x80; cmin++);
+        }
+        for (cmax = len, i = 0; (i < (cpdmin - 1)) && cmax; i++) {
+          cmax--;
+          for (; (word[cmax] & 0xc0) == 0x80; cmax--);
+        }
+    } else {
+        cmin = cpdmin;
+        cmax = len - cpdmin + 1;
+    }
+
+    strcpy(st, word);
+
+    for (i = cmin; i < cmax; i++) {
+	oldnumsyllable = numsyllable;
+	oldwordnum = wordnum;
+        checked_prefix = 0;
+
+        // go to end of the UTF-8 character
+        if (utf8) {
+            for (; (st[i] & 0xc0) == 0x80; i++);
+            if (i >= cmax) return 0;
+=====================================================================
+Found a 7 line (179 tokens) duplication in the following files: 
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 7 line (179 tokens) duplication in the following files: 
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ea0 - 2eaf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 7 line (179 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0,10,10,// 3030 - 303f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3040 - 304f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3050 - 305f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3060 - 306f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3070 - 307f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3080 - 308f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+=====================================================================
+Found a 17 line (179 tokens) duplication in the following files: 
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/descriptor.cxx
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unopool.cxx
+
+uno::Sequence< uno::Type > SAL_CALL SvxUnoDrawPool::getTypes()
+	throw (uno::RuntimeException)
+{
+	uno::Sequence< uno::Type > aTypes( 6 );
+	uno::Type* pTypes = aTypes.getArray();
+
+	*pTypes++ = ::getCppuType((const uno::Reference< uno::XAggregation>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< lang::XServiceInfo>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< lang::XTypeProvider>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< beans::XPropertySet>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< beans::XPropertyState>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< beans::XMultiPropertySet>*)0);
+
+	return aTypes;
+}
+
+uno::Sequence< sal_Int8 > SAL_CALL SvxUnoDrawPool::getImplementationId()
+=====================================================================
+Found a 25 line (179 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/SalAquaFilePicker.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::ui::dialogs;
+using namespace ::com::sun::star::ui::dialogs::TemplateDescription;
+using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
+using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::uno;
+
+//------------------------------------------------------------------------
+// helper functions
+//------------------------------------------------------------------------
+
+namespace
+{
+	// controling event notifications    
+	const bool STARTUP_SUSPENDED = true;
+	const bool STARTUP_ALIVE     = false;
+    
+	uno::Sequence<rtl::OUString> SAL_CALL FilePicker_getSupportedServiceNames()
+	{
+		uno::Sequence<rtl::OUString> aRet(3);
+	        aRet[0] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.FilePicker" );
+		aRet[1] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.SystemFilePicker" );
+		aRet[2] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.GtkFilePicker" );
+=====================================================================
+Found a 7 line (179 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0,10,10,// 3030 - 303f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3040 - 304f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3050 - 305f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3060 - 306f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3070 - 307f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3080 - 308f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+=====================================================================
+Found a 33 line (179 tokens) duplication in the following files: 
+Starting at line 1499 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 1064 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				{
+					Polygon aPoly;
+
+					switch( nType )
+					{
+						case( META_ARC_ACTION ):
+						{
+							const MetaArcAction* pA = (const MetaArcAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_ARC );
+						}
+						break;
+
+						case( META_PIE_ACTION ):
+						{
+							const MetaPieAction* pA = (const MetaPieAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_PIE );
+						}
+						break;
+
+						case( META_CHORD_ACTION	):
+						{
+							const MetaChordAction* pA = (const MetaChordAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_CHORD );
+						}
+						break;
+						
+						case( META_POLYGON_ACTION ):
+							aPoly = ( (const MetaPolygonAction*) pAction )->GetPolygon();
+						break;
+					}
+
+					if( aPoly.GetSize() )
+					{
+=====================================================================
+Found a 53 line (179 tokens) duplication in the following files: 
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LNoException.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/quotedstring.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ENoException.cxx
+
+xub_StrLen OFlatString::GetTokenCount( sal_Unicode cTok, sal_Unicode cStrDel ) const
+{
+	if ( !Len() )
+		return 0;
+
+	xub_StrLen nTokCount = 1;
+	BOOL bStart = TRUE;		// Stehen wir auf dem ersten Zeichen im Token?
+	BOOL bInString = FALSE;	// Befinden wir uns INNERHALB eines (cStrDel delimited) String?
+
+	// Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen
+	for( xub_StrLen i = 0; i < Len(); i++ )
+	{
+		if (bStart)
+		{
+			bStart = FALSE;
+			// Erstes Zeichen ein String-Delimiter?
+			if ((*this).GetChar(i) == cStrDel)
+			{
+				bInString = TRUE;	// dann sind wir jetzt INNERHALB des Strings!
+				continue;			// dieses Zeichen ueberlesen!
+			}
+		}
+
+		if (bInString) {
+			// Wenn jetzt das String-Delimiter-Zeichen auftritt ...
+			if ( (*this).GetChar(i) == cStrDel )
+			{
+				if ((i+1 < Len()) && ((*this).GetChar(i+1) == cStrDel))
+				{
+					// Verdoppeltes String-Delimiter-Zeichen:
+					i++;	// kein String-Ende, naechstes Zeichen ueberlesen.
+				}
+				else
+				{
+					// String-Ende
+					bInString = FALSE;
+				}
+			}
+		} else {
+			// Stimmt das Tokenzeichen ueberein, dann erhoehe TokCount
+			if ( (*this).GetChar(i) == cTok )
+			{
+				nTokCount++;
+				bStart = TRUE;
+			}
+		}
+	}
+
+	return nTokCount;
+}
+
+//------------------------------------------------------------------
+void OFlatString::GetTokenSpecial( String& _rStr,xub_StrLen& nStartPos, sal_Unicode cTok, sal_Unicode cStrDel ) const
+=====================================================================
+Found a 42 line (179 tokens) duplication in the following files: 
+Starting at line 2896 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 3006 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+	o << "\n/* Exception type */\ntypedef struct _" << m_name << "\n{\n";
+	inc();
+
+	OString superType(m_reader.getSuperTypeName());
+	if (superType.getLength() > 0)
+		o << indent() << superType.replace('/', '_').getStr() << " _Base;\n";
+		//dumpInheritedMembers(o, superType);
+
+	sal_uInt32 		fieldCount = m_reader.getFieldCount();
+	RTFieldAccess 	access = RT_ACCESS_INVALID;
+	OString 		fieldName;
+	OString 		fieldType;
+	sal_uInt16 		i = 0;
+
+	for (i=0; i < fieldCount; i++)
+	{
+		access = m_reader.getFieldAccess(i);
+
+		if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
+			continue;
+
+		fieldName = m_reader.getFieldName(i);
+		fieldType = m_reader.getFieldType(i);
+
+		o << indent();
+		dumpType(o, fieldType);
+		o << " " << fieldName << ";\n";
+	}
+
+	dec();
+	o << "} " << m_name << ";\n\n";
+
+	o << "#ifdef SAL_W32\n"
+	  << "#   pragma pack(pop)\n"
+	  << "#elif defined(SAL_OS2)\n"
+	  << "#   pragma pack()\n"
+	  << "#endif\n\n";
+
+	return sal_True;
+}
+
+sal_Bool ExceptionType::dumpCFile(FileStream& o)
+=====================================================================
+Found a 38 line (179 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper_texturefill.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper_texturefill.cxx
+
+{
+    namespace
+    {
+        bool textureFill( OutputDevice&			rOutDev,
+                          GraphicObject&		rGraphic,
+                          const ::Point&		rPosPixel,
+                          const ::Size&			rNextTileX,
+                          const ::Size&			rNextTileY,
+                          sal_Int32				nTilesX,
+                          sal_Int32				nTilesY,
+                          const ::Size&			rTileSize,
+                          const GraphicAttr&	rAttr)
+        {
+            BOOL	bRet( false );
+            Point 	aCurrPos;
+            int 	nX, nY;
+
+            for( nY=0; nY < nTilesY; ++nY )
+            {
+                aCurrPos.X() = rPosPixel.X() + nY*rNextTileY.Width();
+                aCurrPos.Y() = rPosPixel.Y() + nY*rNextTileY.Height();
+
+                for( nX=0; nX < nTilesX; ++nX )
+                {
+                    // update return value. This method should return true, if
+                    // at least one of the looped Draws succeeded.
+                    bRet |= rGraphic.Draw( &rOutDev, 
+                                           aCurrPos,
+                                           rTileSize,
+                                           &rAttr );
+                    
+                    aCurrPos.X() += rNextTileX.Width();
+                    aCurrPos.Y() += rNextTileX.Height();
+                }
+            }
+
+            return bRet;
+        }
+=====================================================================
+Found a 25 line (179 tokens) duplication in the following files: 
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+	}
+	// push this
+	void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+  	       + aVtableSlot.offset;
+  	       *(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 26 line (178 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readEditModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+    readBoolAttr( OUSTR("HideInactiveSelection"),
+=====================================================================
+Found a 69 line (178 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpresultsetbase.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/resultsetbase.cxx
+
+	return 0 <= m_nRow && sal::static_int_cast<sal_uInt32>( m_nRow ) < m_aItems.size();
+}
+
+
+void SAL_CALL
+ResultSetBase::refreshRow(
+	void )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException)
+{
+}
+
+
+sal_Bool SAL_CALL
+ResultSetBase::rowUpdated(
+	void )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	return false;
+}
+
+sal_Bool SAL_CALL
+ResultSetBase::rowInserted(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	return false;
+}
+
+sal_Bool SAL_CALL
+ResultSetBase::rowDeleted(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	return false;
+}
+
+
+uno::Reference< uno::XInterface > SAL_CALL
+ResultSetBase::getStatement(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	uno::Reference< uno::XInterface > test( 0 );
+	return test;
+}
+
+
+// XCloseable
+
+void SAL_CALL
+ResultSetBase::close(
+	void )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException)
+{
+}
+
+
+rtl::OUString SAL_CALL
+ResultSetBase::queryContentIdentifierString(
+	void )
+	throw( uno::RuntimeException )
+{
+	if( 0 <= m_nRow && sal::static_int_cast<sal_uInt32>( m_nRow ) < m_aItems.size() )
+=====================================================================
+Found a 21 line (178 tokens) duplication in the following files: 
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fmtui/tmpdlg.cxx
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fmtui/tmpdlg.cxx
+
+				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageCreatorFunc fail!");//CHINA001
+				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageRangesFunc fail!");//CHINA001
+				AddTabPage(TP_CHAR_STD, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) ); //CHINA001 AddTabPage(TP_CHAR_STD, 	SvxCharNamePage::Create,
+										//CHINA001 SvxCharNamePage::GetRanges );
+				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageCreatorFunc fail!");//CHINA001
+				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageRangesFunc fail!");//CHINA001
+				AddTabPage(TP_CHAR_EXT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) ); //CHINA001 AddTabPage(TP_CHAR_EXT, 	SvxCharEffectsPage::Create,
+										//CHINA001 SvxCharEffectsPage::GetRanges );
+				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), "GetTabPageCreatorFunc fail!");//CHINA001
+				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) , "GetTabPageRangesFunc fail!");//CHINA001
+				AddTabPage(TP_CHAR_POS, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) ); //CHINA001 AddTabPage(TP_CHAR_POS, 	SvxCharPositionPage::Create,
+										//CHINA001 SvxCharPositionPage::GetRanges );
+				DBG_ASSERT(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), "GetTabPageCreatorFunc fail!");//CHINA001
+				DBG_ASSERT(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) , "GetTabPageRangesFunc fail!");//CHINA001
+				AddTabPage(TP_CHAR_TWOLN, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) ); //CHINA001 AddTabPage(TP_CHAR_TWOLN, 	SvxCharTwoLinesPage::Create,
+										//CHINA001 SvxCharTwoLinesPage::GetRanges );
+
+
+			//CHINA001 AddTabPage(TP_TABULATOR, 	SvxTabulatorTabPage::Create,
+			//CHINA001 							SvxTabulatorTabPage::GetRanges );
+			DBG_ASSERT(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_TABULATOR), "GetTabPageCreatorFunc fail!");//CHINA001
+=====================================================================
+Found a 37 line (178 tokens) duplication in the following files: 
+Starting at line 1566 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doclay.cxx
+Starting at line 1840 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doclay.cxx
+
+	ASSERT( pNew, "No Label inserted" );
+
+	if( pNew )
+	{
+        // prepare string
+        String aTxt;
+        if ( pType )
+        {
+            aTxt += pType->GetName();
+            aTxt += ' ';
+        }
+		xub_StrLen nIdx = aTxt.Len();
+        aTxt += rSeparator;
+        xub_StrLen nSepIdx = aTxt.Len();
+        aTxt += rTxt;
+
+        // insert text
+		SwIndex aIdx( pNew, 0 );
+		pNew->Insert( aTxt, aIdx );
+
+        // insert field
+        if ( pType )
+        {
+            SwSetExpField aFld( (SwSetExpFieldType*)pType, aEmptyStr, SVX_NUM_ARABIC );
+            pNew->InsertItem( SwFmtFld( aFld ), nIdx, nIdx );
+            if ( rCharacterStyle.Len() )
+            {
+                SwCharFmt* pCharFmt = FindCharFmtByName( rCharacterStyle );
+                if ( !pCharFmt )
+                {
+                    const USHORT nId = SwStyleNameMapper::GetPoolIdFromUIName( rCharacterStyle, GET_POOLID_CHRFMT );
+                    pCharFmt = GetCharFmtFromPool( nId );
+                }
+                if ( pCharFmt )
+                    pNew->InsertItem( SwFmtCharFmt( pCharFmt ), 0, nSepIdx + 1, SETATTR_DONTEXPAND );
+            }
+        }
+=====================================================================
+Found a 30 line (178 tokens) duplication in the following files: 
+Starting at line 4278 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdfppt.cxx
+Starting at line 4463 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdfppt.cxx
+
+					while ( rIn.GetError() == 0 && rIn.Tell() < aTxMasterStyleHd2.GetRecEndFilePos() && nLev < nLevelAnz )
+					{
+						if ( nLev )
+						{
+							mpParaSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maParaLevel[ nLev ] = mpParaSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maParaLevel[ nLev - 1 ];
+							mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maCharLevel[ nLev ] = mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maCharLevel[ nLev - 1 ];
+						}
+						mpParaSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->Read( rManager, rIn, sal_True, nLev, bFirst );
+                        if ( !nLev )
+                        {
+                            // set paragraph defaults for instance 4 (TSS_TYPE_TEXT_IN_SHAPE)
+                            if ( rTxPFStyle.bValid )
+                            {
+                                PPTParaLevel& rParaLevel = mpParaSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maParaLevel[ 0 ];
+                                rParaLevel.mnAsianLineBreak = 0;
+                                if ( rTxPFStyle.bForbiddenRules )
+                                    rParaLevel.mnAsianLineBreak |= 1;
+                                if ( !rTxPFStyle.bLatinTextWrap )
+                                    rParaLevel.mnAsianLineBreak |= 2;
+                                if ( rTxPFStyle.bHangingPunctuation )
+                                    rParaLevel.mnAsianLineBreak |= 4;
+                            }
+                        }
+						mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->Read( rIn, sal_True, nLev, bFirst );
+						bFirst = sal_False;
+						nLev++;
+					}
+					break;
+				}
+				else
+=====================================================================
+Found a 25 line (178 tokens) duplication in the following files: 
+Starting at line 3108 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/num.cxx
+
+				pFirstOrient = aNumFmtArr[nLvl]->GetGraphicOrientation();
+//				nFirstLSpace = nLvl > 0 ?
+//					aNumFmtArr[nLvl]->GetAbsLSpace() - aNumFmtArr[nLvl - 1]->GetAbsLSpace():
+//						aNumFmtArr[nLvl]->GetAbsLSpace();
+				nFirstBorderText = nLvl > 0 ?
+					aNumFmtArr[nLvl]->GetAbsLSpace() + aNumFmtArr[nLvl]->GetFirstLineOffset() -
+					aNumFmtArr[nLvl - 1]->GetAbsLSpace() + aNumFmtArr[nLvl - 1]->GetFirstLineOffset():
+						aNumFmtArr[nLvl]->GetAbsLSpace() + aNumFmtArr[nLvl]->GetFirstLineOffset();
+			}
+
+			if( i > nLvl)
+			{
+				if(bRelative)
+				{
+					if(nFirstBorderTextRelative == -1)
+						nFirstBorderTextRelative =
+						(aNumFmtArr[i]->GetAbsLSpace() + aNumFmtArr[i]->GetFirstLineOffset() -
+						aNumFmtArr[i - 1]->GetAbsLSpace() + aNumFmtArr[i - 1]->GetFirstLineOffset());
+					else
+						bSameDistBorderNum &= nFirstBorderTextRelative ==
+						(aNumFmtArr[i]->GetAbsLSpace() + aNumFmtArr[i]->GetFirstLineOffset() -
+						aNumFmtArr[i - 1]->GetAbsLSpace() + aNumFmtArr[i - 1]->GetFirstLineOffset());
+
+				}
+				else
+=====================================================================
+Found a 25 line (178 tokens) duplication in the following files: 
+Starting at line 3467 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3117 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x8000, 21600, 0, 0x409 }
+};
+static const sal_uInt16 mso_sptBraceSegm[] =
+{
+	0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
+};
+static const sal_Int32 mso_sptBraceDefault[] =
+{
+	2, 1800, 10800
+};
+static const SvxMSDffVertPair mso_sptLeftBraceVert[] =
+{
+	{ 21600, 0 },												// p
+	{ 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },		// ccp
+	{ 10800, 2 MSO_I },											// p
+	{ 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I },		// ccp
+	{ 5400, 4 MSO_I }, 	{ 10800, 5 MSO_I }, { 10800, 6 MSO_I },	// ccp
+	{ 10800, 7 MSO_I },											// p
+	{ 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 }		// ccp
+};
+static const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] =
+{
+	{ { 13800, 9 MSO_I }, { 21600, 10 MSO_I } }
+};
+static const mso_CustomShape msoLeftBrace =		// adj value0 0 -> 5400
+=====================================================================
+Found a 33 line (178 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+void ScInterpreter::ScChoseJump()
+{
+	const short* pJump = pCur->GetJump();
+	short nJumpCount = pJump[ 0 ];
+    MatrixDoubleRefToMatrix();
+    switch ( GetStackType() )
+    {
+        case svMatrix:
+        {
+            ScMatrixRef pMat = PopMatrix();
+            if ( !pMat )
+                SetIllegalArgument();
+            else
+            {
+                ScTokenRef xNew;
+                ScTokenMatrixMap::const_iterator aMapIter;
+                // DoubleError handled by JumpMatrix
+                pMat->SetErrorInterpreter( NULL);
+                SCSIZE nCols, nRows;
+                pMat->GetDimensions( nCols, nRows );
+                if ( nCols == 0 || nRows == 0 )
+                    SetIllegalParameter();
+                else if (pTokenMatrixMap && ((aMapIter = pTokenMatrixMap->find(
+                                    pCur)) != pTokenMatrixMap->end()))
+                    xNew = (*aMapIter).second;
+                else
+                {
+                    ScJumpMatrix* pJumpMat = new ScJumpMatrix( nCols, nRows );
+                    for ( SCSIZE nC=0; nC < nCols; ++nC )
+                    {
+                        for ( SCSIZE nR=0; nR < nRows; ++nR )
+                        {
+                            double fVal;
+=====================================================================
+Found a 36 line (178 tokens) duplication in the following files: 
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/attarray.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/markarr.cxx
+
+BOOL ScMarkArray::Search( SCROW nRow, SCSIZE& nIndex ) const
+{
+	long	nLo 		= 0;
+	long	nHi 		= static_cast<long>(nCount) - 1;
+	long	nStartRow	= 0;
+	long	nEndRow 	= 0;
+	long	i			= 0;
+	BOOL	bFound		= (nCount == 1);
+	if (pData)
+	{
+		while ( !bFound && nLo <= nHi )
+		{
+			i = (nLo + nHi) / 2;
+			if (i > 0)
+				nStartRow = (long) pData[i - 1].nRow;
+			else
+				nStartRow = -1;
+			nEndRow = (long) pData[i].nRow;
+			if (nEndRow < (long) nRow)
+				nLo = ++i;
+			else
+				if (nStartRow >= (long) nRow)
+					nHi = --i;
+				else
+					bFound = TRUE;
+		}
+	}
+	else
+		bFound = FALSE;
+
+	if (bFound)
+		nIndex=(SCSIZE)i;
+	else
+		nIndex=0;
+	return bFound;
+}
+=====================================================================
+Found a 17 line (178 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/ttcr.c
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/ttcr.c
+
+_inline void PutInt32(sal_Int32 val, sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+{
+    assert(ptr != 0);
+
+    if (bigendian) {
+        ptr[offset]   = (sal_uInt8)((val >> 24) & 0xFF);
+        ptr[offset+1] = (sal_uInt8)((val >> 16) & 0xFF);
+        ptr[offset+2] = (sal_uInt8)((val >> 8) & 0xFF);
+        ptr[offset+3] = (sal_uInt8)(val & 0xFF);
+    } else {
+        ptr[offset+3] = (sal_uInt8)((val >> 24) & 0xFF);
+        ptr[offset+2] = (sal_uInt8)((val >> 16) & 0xFF);
+        ptr[offset+1] = (sal_uInt8)((val >> 8) & 0xFF);
+        ptr[offset]   = (sal_uInt8)(val & 0xFF);
+    }
+
+}
+=====================================================================
+Found a 30 line (178 tokens) duplication in the following files: 
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sprophelp.cxx
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/ntprophelp.cxx
+
+PropertyHelper_Thes::PropertyHelper_Thes(
+		const Reference< XInterface > & rxSource,
+		Reference< XPropertySet > &rxPropSet ) :
+	PropertyChgHelper	( rxSource, rxPropSet, aSP, sizeof(aSP) / sizeof(aSP[0]) )
+{
+	SetDefault();
+	INT32 nLen = GetPropNames().getLength();
+	if (rxPropSet.is() && nLen)
+	{
+		const OUString *pPropName = GetPropNames().getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			BOOL *pbVal		= NULL,
+				 *pbResVal	= NULL;
+
+			if (A2OU( UPN_IS_GERMAN_PRE_REFORM ) == pPropName[i])
+			{
+				pbVal	 = &bIsGermanPreReform;
+				pbResVal = &bResIsGermanPreReform;
+			}
+                        else if (A2OU( UPN_IS_IGNORE_CONTROL_CHARACTERS ) == pPropName[i])
+                        {
+                                pbVal    = &bIsIgnoreControlCharacters;
+                                pbResVal = &bResIsIgnoreControlCharacters;
+                        }
+                        else if (A2OU( UPN_IS_USE_DICTIONARY_LIST ) == pPropName[i])
+                        {
+                                pbVal    = &bIsUseDictionaryList;
+                                pbResVal = &bResIsUseDictionaryList;
+                        }
+=====================================================================
+Found a 73 line (178 tokens) duplication in the following files: 
+Starting at line 529 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest/threadtest.cxx
+Starting at line 531 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest.cxx
+
+    return nReturn;
+}
+
+/*-****************************************************************************************************//**
+	@descr	Every thread instance of these class lopp from 0 up to "nLoops".
+			He sleep for a random time and work with given test class "pClass" then.
+			We use random values for waiting for better results!
+			Otherwise all threads are sychron after first 2,3...5 calls - I think!
+*//*-*****************************************************************************************************/
+
+class TestThread : public OThread
+{
+	public:
+
+		TestThread(	ThreadSafeClass*	pClass						,
+					sal_Int32			nLoops						,
+					Condition*			pListener					,
+					sal_Bool			bOwner		=	sal_False	);
+
+	private:
+
+   		virtual void SAL_CALL	run				();
+   		virtual void SAL_CALL	onTerminated	();
+
+	private:
+
+		ThreadSafeClass*	m_pClass		;
+		sal_Int32			m_nLoops		;
+		sal_Int32			m_nThreadID		;
+		Condition*			m_pListener		;
+		sal_Bool			m_bOwner		;
+};
+
+//_________________________________________________________________________________________________________________
+TestThread::TestThread(	ThreadSafeClass*	pClass		,
+						sal_Int32			nLoops		,
+						Condition*			pListener	,
+						sal_Bool			bOwner		)
+	:	m_pClass	( pClass	)
+	,	m_nLoops	( nLoops	)
+	,	m_pListener	( pListener	)
+	,	m_bOwner	( bOwner	)
+{
+}
+
+//_________________________________________________________________________________________________________________
+void SAL_CALL TestThread::run()
+{
+	// Get ID of this thread.
+	// Is used for logging information ...
+	m_nThreadID = getCurrentIdentifier();
+
+	// If we are the owner of given pClass
+	// we must initialize ... and close
+	// it. See at the end of this method too.
+	if( m_bOwner == sal_True )
+	{
+		m_pClass->init( 0, m_nThreadID );
+	}
+
+	#ifdef ENABLE_THREADDELAY
+	TimeValue	nDelay	;
+	#endif
+
+	sal_Int32	nA		;
+
+	for( sal_Int32 nCount=0; nCount<m_nLoops; ++nCount )
+	{
+		// Work with class.
+		// Use random to select called method.
+		nA = (sal_Int32)getRandomValue();
+        if( nA % 5 == 0 )
+		{
+=====================================================================
+Found a 27 line (178 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+
+		ULONG	 nHelpId = 0;
+		OUString aCommandId;
+		OUString aLabel;
+
+		m_bMenuMode = sal_True;
+		PopupMenu* pMenu = new PopupMenu();
+
+		// read attributes for menu
+		for ( int i=0; i< xAttrList->getLength(); i++ )
+		{
+			OUString aName = xAttrList->getNameByIndex( i );
+			OUString aValue = xAttrList->getValueByIndex( i );
+			if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
+				aCommandId = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
+				aLabel = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
+				nHelpId = aValue.toInt32();
+		}
+
+		if ( aCommandId.getLength() > 0 )
+		{
+            USHORT nItemId;
+            if ( aCommandId.compareTo( aSlotProtocol, aSlotProtocol.getLength() ) == 0 )
+                nItemId = (USHORT) aCommandId.copy( aSlotProtocol.getLength() ).toInt32();
+            else
+                nItemId = ++(*m_pItemId);
+=====================================================================
+Found a 25 line (178 tokens) duplication in the following files: 
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/cpputools/source/unoexe/unoexe.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/performance/ubtest.cxx
+
+		x = xMgr->createInstance( rServiceName );
+	}
+
+	if (! x.is())
+	{
+		OUStringBuffer buf( 64 );
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("cannot get service instance \"") );
+		buf.append( rServiceName );
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("\"!") );
+		throw RuntimeException( buf.makeStringAndClear(), Reference< XInterface >() );
+	}
+
+	rxOut = Reference< T >::query( x );
+	if (! rxOut.is())
+	{
+		OUStringBuffer buf( 64 );
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("service instance \"") );
+		buf.append( rServiceName );
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("\" does not support demanded interface \"") );
+		const Type & rType = ::getCppuType( (const Reference< T > *)0 );
+		buf.append( rType.getTypeName() );
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("\"!") );
+		throw RuntimeException( buf.makeStringAndClear(), Reference< XInterface >() );
+	}
+}
+=====================================================================
+Found a 15 line (178 tokens) duplication in the following files: 
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+void OEvoabTable::construct()
+{
+	Any aValue = ConfigManager::GetDirectConfigProperty(ConfigManager::LOCALE);
+	LanguageType eLanguage = MsLangId::convertIsoStringToLanguage(comphelper::getString(aValue),'-');
+
+	::com::sun::star::lang::Locale aAppLocale(MsLangId::convertLanguageToLocale(eLanguage));
+	Sequence< ::com::sun::star::uno::Any > aArg(1);
+	aArg[0] <<= aAppLocale;
+
+	Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(m_pConnection->getDriver()->getFactory()->createInstanceWithArguments(::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatsSupplier"),aArg),UNO_QUERY);
+	m_xNumberFormatter = Reference< ::com::sun::star::util::XNumberFormatter >(m_pConnection->getDriver()->getFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatter")),UNO_QUERY);
+	m_xNumberFormatter->attachNumberFormatsSupplier(xSupplier);
+
+	INetURLObject aURL;
+	aURL.SetURL(getEntry());
+=====================================================================
+Found a 31 line (178 tokens) duplication in the following files: 
+Starting at line 480 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+
+	}
+	catch (configuration::TypeMismatch& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::ConstraintViolation& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw PropertyVetoException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+}
+
+// XHierarchicalPropertySet
+//-----------------------------------------------------------------------------------
+void implSetHierarchicalPropertyValue( NodeGroupAccess& rNode, const OUString& aPropertyName, const Any& aValue ) 
+=====================================================================
+Found a 52 line (177 tokens) duplication in the following files: 
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/performance/ubobject.cxx
+Starting at line 1284 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/performance/ubtest.cxx
+
+	return 0;
+}
+
+}
+
+
+//##################################################################################################
+//##################################################################################################
+//##################################################################################################
+
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+					OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) );
+			xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM(SERVICENAME) ) );
+
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	void * pRet = 0;
+
+	if (pServiceManager && rtl_str_compare( pImplName, IMPLNAME ) == 0)
+	{
+		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
+			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
+			OUString( RTL_CONSTASCII_USTRINGPARAM(IMPLNAME) ),
+=====================================================================
+Found a 32 line (177 tokens) duplication in the following files: 
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/utlui/content.cxx
+Starting at line 843 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/utlui/content.cxx
+
+		}
+		break;
+		case CONTENT_TYPE_POSTIT:
+		{
+			nMemberCount = 0;
+			if(!pMember)
+				pMember = new SwContentArr;
+			else if(pMember->Count())
+				pMember->DeleteAndDestroy(0, pMember->Count());
+			SwFieldType* pType = pWrtShell->GetFldType(
+									RES_POSTITFLD, aEmptyStr);
+			SwClientIter aIter( *pType );
+			SwClient * pFirst = aIter.GoStart();
+			while(pFirst)
+			{
+				if(((SwFmtFld*)pFirst)->GetTxtFld() &&
+						((SwFmtFld*)pFirst)->IsFldInDoc())
+				{
+					SwField* pField = (SwField*)((SwFmtFld*)pFirst)
+																	->GetFld();
+					String sEntry = pField->GetPar2();
+					RemoveNewline(sEntry);
+					SwPostItContent* pCnt = new SwPostItContent(
+										this,
+										sEntry, // hier steht der Text
+										(const SwFmtFld*)pFirst,
+										nMemberCount);
+					pMember->Insert(pCnt);//, nMemberCount);
+					nMemberCount++;
+				}
+				pFirst = aIter++;
+			}
+=====================================================================
+Found a 27 line (177 tokens) duplication in the following files: 
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edlingu.cxx
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edlingu.cxx
+
+        if( aConvText.getLength() )
+        {
+            bGoOn = sal_False;
+            SwPosition* pNewPoint = new SwPosition( *pCrsr->GetPoint() );
+            SwPosition* pNewMark = new SwPosition( *pCrsr->GetMark() );
+
+            SetCurr( pNewPoint );
+            SetCurrX( pNewMark );
+        }
+        if( bGoOn )
+        {
+            pSh->Pop( sal_False );
+            pCrsr = pSh->GetCrsr();
+            if ( *pCrsr->GetPoint() > *pCrsr->GetMark() )
+                pCrsr->Exchange();
+            SwPosition* pNew = new SwPosition( *pCrsr->GetPoint() );
+            SetStart( pNew );
+            pNew = new SwPosition( *pCrsr->GetMark() );
+            SetEnd( pNew );
+            pNew = new SwPosition( *GetStart() );
+            SetCurr( pNew );
+            pNew = new SwPosition( *pNew );
+            SetCurrX( pNew );
+            pCrsr->SetMark();
+            --GetCrsrCnt();
+        }
+    }while ( bGoOn );
+=====================================================================
+Found a 27 line (177 tokens) duplication in the following files: 
+Starting at line 1715 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4777 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_CheckBox::Import(com::sun::star::uno::Reference<
+    com::sun::star::beans::XPropertySet> &rPropSet)
+{
+	uno::Any aTmp(&sName,getCppuType((OUString *)0));
+	rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
+
+    // background color: fBackStyle==0 -> transparent
+    if( fBackStyle )
+        aTmp <<= ImportColor(mnBackColor);
+    else
+        aTmp = uno::Any();
+    rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
+
+	sal_Bool bTemp;
+	if ((!(fEnabled)) || (fLocked))
+		bTemp = sal_False;
+	else
+		bTemp = sal_True;
+	aTmp = bool2any(bTemp);
+	rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
+
+    bTemp = fWordWrap != 0;
+    aTmp = bool2any(bTemp);
+    rPropSet->setPropertyValue( WW8_ASCII2STR("MultiLine"), aTmp);
+
+	aTmp <<= ImportColor(mnForeColor);
+	rPropSet->setPropertyValue( WW8_ASCII2STR("TextColor"), aTmp);
+=====================================================================
+Found a 21 line (177 tokens) duplication in the following files: 
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+Starting at line 6775 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev3.cxx
+
+    }
+
+    if ( nStyle & TEXT_DRAW_RIGHT )
+        aRect.Left() = aRect.Right()-nMaxWidth+1;
+    else if ( nStyle & TEXT_DRAW_CENTER )
+    {
+        aRect.Left() += (nWidth-nMaxWidth)/2;
+        aRect.Right() = aRect.Left()+nMaxWidth-1;
+    }
+    else
+        aRect.Right() = aRect.Left()+nMaxWidth-1;
+
+    if ( nStyle & TEXT_DRAW_BOTTOM )
+        aRect.Top() = aRect.Bottom()-(nTextHeight*nLines)+1;
+    else if ( nStyle & TEXT_DRAW_VCENTER )
+    {
+        aRect.Top()   += (aRect.GetHeight()-(nTextHeight*nLines))/2;
+        aRect.Bottom() = aRect.Top()+(nTextHeight*nLines)-1;
+    }
+    else
+        aRect.Bottom() = aRect.Top()+(nTextHeight*nLines)-1;
+=====================================================================
+Found a 28 line (177 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/languagepacks/respintest.cxx
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/upgrade.cxx
+
+    string GetMsiProperty(MSIHANDLE handle, const string& sProperty)
+    {
+	    string	result;
+	    TCHAR	szDummy[1] = TEXT("");
+	    DWORD	nChars = 0;
+
+	    if (MsiGetProperty(handle, sProperty.c_str(), szDummy, &nChars) == ERROR_MORE_DATA)
+	    {
+            DWORD nBytes = ++nChars * sizeof(TCHAR);
+            LPTSTR buffer = reinterpret_cast<LPTSTR>(_alloca(nBytes));
+            ZeroMemory( buffer, nBytes );
+            MsiGetProperty(handle, sProperty.c_str(), buffer, &nChars);
+            result = buffer;            
+	    }
+	    return	result;
+    }
+
+    inline bool IsSetMsiProperty(MSIHANDLE handle, const string& sProperty)
+    {    
+        return (GetMsiProperty(handle, sProperty).length() > 0);
+    }
+
+    inline void UnsetMsiProperty(MSIHANDLE handle, const string& sProperty)
+    {
+        MsiSetProperty(handle, sProperty.c_str(), NULL);
+    }
+
+    inline void SetMsiProperty(MSIHANDLE handle, const string& sProperty)
+=====================================================================
+Found a 26 line (177 tokens) duplication in the following files: 
+Starting at line 1646 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+Starting at line 1833 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+
+						if ( aMultiMark.IsCellMarked( nThisX, nThisY, TRUE ) == bRepeat )
+						{
+							if ( !pMergeFlag->IsOverlapped() )
+							{
+								ScMergeAttr* pMerge = (ScMergeAttr*)&pPattern->GetItem(ATTR_MERGE);
+								if (pMerge->GetColMerge() > 0 || pMerge->GetRowMerge() > 0)
+								{
+									Point aEndPos = pViewData->GetScrPos(
+											nThisX + pMerge->GetColMerge(),
+											nThisY + pMerge->GetRowMerge(), eWhich );
+									if ( aEndPos.X() * nLayoutSign > nScrX * nLayoutSign && aEndPos.Y() > nScrY )
+									{
+										aInvert.AddRect( Rectangle( nScrX,nScrY,
+													aEndPos.X()-nLayoutSign,aEndPos.Y()-1 ) );
+									}
+								}
+								else if ( nEndX * nLayoutSign >= nScrX * nLayoutSign && nEndY >= nScrY )
+								{
+									aInvert.AddRect( Rectangle( nScrX,nScrY,nEndX,nEndY ) );
+								}
+							}
+						}
+					}
+					else		// !bTestMerge
+					{
+						if ( aMultiMark.IsCellMarked( nX, nY, TRUE ) == bRepeat &&
+=====================================================================
+Found a 28 line (177 tokens) duplication in the following files: 
+Starting at line 1438 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	ScChangeActionType nActionType(SC_CAT_INSERT_COLS);
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+				nActionNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_ACCEPTANCE_STATE))
+			{
+				if (IsXMLToken(sValue, XML_ACCEPTED))
+					nActionState = SC_CAS_ACCEPTED;
+				else if (IsXMLToken(sValue, XML_REJECTED))
+					nActionState = SC_CAS_REJECTED;
+			}
+			else if (IsXMLToken(aLocalName, XML_REJECTING_CHANGE_ID))
+			{
+				nRejectingNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+=====================================================================
+Found a 40 line (177 tokens) duplication in the following files: 
+Starting at line 573 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+					ntr.lp--;
+
+			    doconcat(&ntr);
+                trp->tp = ltp;
+				makespace(&ntr, ltp);
+                insertrow(trp, ntp - ltp, &ntr);
+                dofree(ntr.bp);
+                trp->tp--;
+            }
+    }
+}
+
+/*
+ * tp is a potential parameter name of macro mac;
+ * look it up in mac's arglist, and if found, return the
+ * corresponding index in the argname array.  Return -1 if not found.
+ */
+int
+    lookuparg(Nlist * mac, Token * tp)
+{
+    Token *ap;
+
+    if (tp->type != NAME || mac->ap == NULL)
+        return -1;
+    for (ap = mac->ap->bp; ap < mac->ap->lp; ap++)
+    {
+        if (ap->len == tp->len && strncmp((char *) ap->t, (char *) tp->t, ap->len) == 0)
+            return ap - mac->ap->bp;
+    }
+    return -1;
+}
+
+/*
+ * Return a quoted version of the tokenrow (from # arg)
+ */
+#define	STRLEN	512
+Tokenrow *
+    stringify(Tokenrow * vp)
+{
+    static Token t = {STRING, 0, 0, 0, NULL, 0};
+=====================================================================
+Found a 7 line (177 tokens) duplication in the following files: 
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1383 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25a0 - 25af
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25b0 - 25bf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25c0 - 25cf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25d0 - 25df
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25e0 - 25ef
+    10,10,10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0,// 25f0 - 25ff
+=====================================================================
+Found a 12 line (177 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 7 line (177 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1488 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0,10,10,10, 0,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fb00 - fb0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,17, 1,// fb10 - fb1f
+=====================================================================
+Found a 6 line (177 tokens) duplication in the following files: 
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3080 - 308f
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+=====================================================================
+Found a 6 line (177 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13a0 - 13af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13b0 - 13bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13c0 - 13cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13d0 - 13df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13e0 - 13ef
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 13f0 - 13ff
+=====================================================================
+Found a 6 line (177 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3080 - 308f
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+=====================================================================
+Found a 5 line (177 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x14, 0x24CE}, {0x14, 0x24CF}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24e8 - 24ef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24f0 - 24f7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 24f8 - 24ff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2c00 - 2c07
+=====================================================================
+Found a 20 line (177 tokens) duplication in the following files: 
+Starting at line 398 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxf2mtf.cxx
+Starting at line 458 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxf2mtf.cxx
+
+	if ((rE.nAttrFlags&1)==0) {
+		DXFVector aV;
+		Point aPt;
+		double fA;
+		USHORT nHeight;
+		short nAng;
+		ByteString aStr( rE.sText );
+		DXFTransform aT( DXFTransform( rE.fXScale, rE.fHeight, 1.0, rE.fRotAngle, rE.aP0 ), rTransform ); 
+		aT.TransDir(DXFVector(0,1,0),aV);
+		nHeight=(USHORT)(aV.Abs()+0.5);
+		fA=aT.CalcRotAngle();
+		nAng=(short)(fA*10.0+0.5);
+		aT.TransDir(DXFVector(1,0,0),aV);
+		if (SetFontAttribute(rE,nAng,nHeight,aV.Abs()))
+		{
+			String aUString( aStr, pDXF->getTextEncoding() );
+			aT.Transform( DXFVector( 0, 0, 0 ), aPt );
+			pVirDev->DrawText( aPt, aUString );
+		}
+	}
+=====================================================================
+Found a 11 line (177 tokens) duplication in the following files: 
+Starting at line 949 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 868 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				ImplWritePolyPolygon( aPoly, sal_False );
+			}
+
+			if( rFont.GetUnderline() )
+			{
+				const long	nYLinePos = aBaseLinePos.Y() + ( nLineHeight << 1 );
+
+				aPoly[ 0 ].X() = aBaseLinePos.X(); aPoly[ 0 ].Y() = nYLinePos - ( nLineHeight >> 1 );
+				aPoly[ 1 ].X() = aBaseLinePos.X() + aNormSize.Width() - 1; aPoly[ 1 ].Y() = aPoly[ 0 ].Y();
+				aPoly[ 2 ].X() = aPoly[ 1 ].X(); aPoly[ 2 ].Y() = aPoly[ 0 ].Y() + nLineHeight - 1;
+				aPoly[ 3 ].X() = aPoly[ 0 ].X(); aPoly[ 3 ].Y() = aPoly[ 2 ].Y();
+=====================================================================
+Found a 41 line (177 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1307 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+
+	sal_Bool bTryOptimization = sal_False;
+	for ( sal_Int32 nInd = 0; nInd < lObjArgs.getLength(); nInd++ )
+	{
+		// StoreVisualReplacement and VisualReplacement args have no sence here
+		if ( lObjArgs[nInd].Name.equalsAscii( "CanTryOptimization" ) )
+			lObjArgs[nInd].Value >>= bTryOptimization;
+	}
+
+	sal_Bool bSwitchBackToLoaded = sal_False;
+
+	// Storing to different format can be done only in running state.
+	if ( m_nObjectState == embed::EmbedStates::LOADED )
+	{
+		// TODO/LATER: copying is not legal for documents with relative links.
+		if ( nTargetStorageFormat == nOriginalStorageFormat )
+		{
+			sal_Bool bOptimizationWorks = sal_False;
+			if ( bTryOptimization )
+			{
+				try
+				{
+					// try to use optimized copying
+					uno::Reference< embed::XOptimizedStorage > xSource( m_xParentStorage, uno::UNO_QUERY_THROW );
+					uno::Reference< embed::XOptimizedStorage > xTarget( xStorage, uno::UNO_QUERY_THROW );
+					xSource->copyElementDirectlyTo( m_aEntryName, xTarget, sEntName );
+					bOptimizationWorks = sal_True;
+				}
+				catch( uno::Exception& )
+				{
+				}
+			}
+
+			if ( !bOptimizationWorks )
+				m_xParentStorage->copyElementTo( m_aEntryName, xStorage, sEntName );
+		}
+		else
+		{
+			changeState( embed::EmbedStates::RUNNING );
+			bSwitchBackToLoaded = sal_True;
+		}
+	}
+=====================================================================
+Found a 24 line (177 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FResultSetMetaData.cxx
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MResultSetMetaData.cxx
+
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL OResultSetMetaData::getPrecision( sal_Int32 column ) throw(SQLException, RuntimeException)
+{
+	checkColumnIndex(column);
+	return getINT32((*m_xColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION)));
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL OResultSetMetaData::getScale( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
+{
+	checkColumnIndex(column);
+	return getINT32((*m_xColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)));
+}
+// -------------------------------------------------------------------------
+
+sal_Int32 SAL_CALL OResultSetMetaData::isNullable( sal_Int32 column ) throw(SQLException, RuntimeException)
+{
+	checkColumnIndex(column);
+	return getINT32((*m_xColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE)));
+}
+// -------------------------------------------------------------------------
+
+sal_Bool SAL_CALL OResultSetMetaData::isSearchable( sal_Int32 column ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 39 line (177 tokens) duplication in the following files: 
+Starting at line 607 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+	COUT << "\n:> " << flush;
+	char buf[200] = {0};
+	try
+	{
+		bool bHandled = false;
+		bool bInserted = false;
+
+		if (cin.getline(buf,sizeof buf))  
+		{
+			Reference< XInterface > xNext;
+			if ((buf[0] == 'q' || buf[0] == 'Q') && (0 == buf[1]))
+			{
+				return false;
+			}
+			else if (buf[0] == 0)
+			{
+				return true;
+			}
+			else if((buf[0] == 0 || buf[0] == 'o' || buf[0] == 'O') && (0 == buf[1]))
+			{
+/*
+				COUT << "work Offline" << endl;
+				Reference<com::sun::star::configuration::XConfigurationSync> xSync(xMSF, UNO_QUERY);
+
+				Sequence< Any > aArgs2(5);
+				sal_Int32 n=0;
+				aArgs2[n++] <<= configmgr::createPropertyValue(ASCII("path"), ASCII("org.openoffice.Setup"));
+				// aArgs2[n++] <<= configmgr::createPropertyValue(ASCII("path"), ASCII("org.openoffice.Office.Common"));
+				// aArgs2[n++] <<= configmgr::createPropertyValue(ASCII("path"), ASCII("org.openoffice.Office.Java"));
+				// aArgs2[n++] <<= configmgr::createPropertyValue(ASCII("path"), ASCII("org.openoffice.Office.Writer"));
+				// aArgs2[n++] <<= configmgr::createPropertyValue(ASCII("path"), ASCII("org.openoffice.Office.ucb.Hierarchy"));
+				xSync->offline(aArgs2);
+				bHandled = true;
+*/
+			}
+			else if((buf[0] == 0 || buf[0] == 's' || buf[0] == 'S') && (0 == buf[1]))
+			{
+				// Replace a Value
+				Reference< XNameAccess > xAccess(xIface, UNO_QUERY);
+=====================================================================
+Found a 27 line (177 tokens) duplication in the following files: 
+Starting at line 480 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+Starting at line 745 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/propsetaccessimpl.cxx
+
+	}
+	catch (configuration::TypeMismatch& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::ConstraintViolation& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw PropertyVetoException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot set Property Value: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+}
+=====================================================================
+Found a 48 line (177 tokens) duplication in the following files: 
+Starting at line 2563 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 1076 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	OString hFileName = createFileNameFromType(outPath, tmpName, ".idl");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tml");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+
+	return ret;
+}
+
+sal_Bool ModuleType::dumpHFile(FileStream& o)
+	throw( CannotDumpException )
+{
+=====================================================================
+Found a 34 line (177 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/textlayout.cxx
+
+        OutputDevice* pOutDev = mpRefDevice->getOutDev();
+    	if( !pOutDev )
+            return geometry::RealRectangle2D();
+
+        VirtualDevice aVDev( *pOutDev );
+        aVDev.SetFont( mpFont->getVCLFont() );
+
+        // need metrics for Y offset, the XCanvas always renders
+        // relative to baseline
+        const ::FontMetric& aMetric( aVDev.GetFontMetric() );
+
+        setupLayoutMode( aVDev, mnTextDirection );
+
+        const sal_Int32 nAboveBaseline( -aMetric.GetIntLeading() - aMetric.GetAscent() );
+        const sal_Int32 nBelowBaseline( aMetric.GetDescent() );
+
+        if( maLogicalAdvancements.getLength() )
+        {
+            return geometry::RealRectangle2D( 0, nAboveBaseline,
+                                              maLogicalAdvancements[ maLogicalAdvancements.getLength()-1 ],
+                                              nBelowBaseline );
+        }
+        else
+        {
+            return geometry::RealRectangle2D( 0, nAboveBaseline,
+                                              aVDev.GetTextWidth(
+                                                  maText.Text,
+                                                  ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
+                                                  ::canvas::tools::numeric_cast<USHORT>(maText.Length) ),
+                                              nBelowBaseline );
+        }
+    }
+
+    double SAL_CALL TextLayout::justify( double nSize ) throw (lang::IllegalArgumentException, uno::RuntimeException)
+=====================================================================
+Found a 35 line (177 tokens) duplication in the following files: 
+Starting at line 1287 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvashelper.cxx
+
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas* 						/*pCanvas*/, 
+                                                                                     const uno::Reference< rendering::XBitmap >& 	/*xBitmap*/, 
+                                                                                     const rendering::ViewState& 					/*viewState*/, 
+                                                                                     const rendering::RenderState& 					/*renderState*/ )
+    {
+        // TODO(P1): Provide caching here.
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice()
+    {
+        return uno::Reference< rendering::XGraphicDevice >(mpDevice);
+    }
+
+    void CanvasHelper::copyRect( const rendering::XCanvas* 							/*pCanvas*/, 
+                                 const uno::Reference< rendering::XBitmapCanvas >&	/*sourceCanvas*/, 
+                                 const geometry::RealRectangle2D& 					/*sourceRect*/, 
+                                 const rendering::ViewState& 						/*sourceViewState*/, 
+                                 const rendering::RenderState& 						/*sourceRenderState*/, 
+                                 const geometry::RealRectangle2D& 					/*destRect*/, 
+                                 const rendering::ViewState& 						/*destViewState*/, 
+                                 const rendering::RenderState& 						/*destRenderState*/ )
+    {
+        // TODO(F2): copyRect NYI
+    }
+
+    geometry::IntegerSize2D CanvasHelper::getSize()
+    {
+        if( !mpDevice )
+            geometry::IntegerSize2D(1, 1); // we're disposed
+
+        return ::basegfx::unotools::integerSize2DFromB2ISize( maSize );
+=====================================================================
+Found a 30 line (177 tokens) duplication in the following files: 
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+        = ((unsigned char *) cpp_vtable_call) - p - sizeof (sal_Int32);
+    p += sizeof (sal_Int32);
+    OSL_ASSERT(p - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+=====================================================================
+Found a 34 line (176 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_trans_bilinear.h
+
+            m_valid = simul_eq<4, 2>::solve(left, right, m_mtx);
+        }
+
+
+        //--------------------------------------------------------------------
+        // Set the direct transformations, i.e., rectangle -> quadrangle
+        void rect_to_quad(double x1, double y1, double x2, double y2, 
+                          const double* quad)
+        {
+            double src[8];
+            src[0] = src[6] = x1;
+            src[2] = src[4] = x2;
+            src[1] = src[3] = y1;
+            src[5] = src[7] = y2;
+            quad_to_quad(src, quad);
+        }
+
+
+        //--------------------------------------------------------------------
+        // Set the reverse transformations, i.e., quadrangle -> rectangle
+        void quad_to_rect(const double* quad, 
+                          double x1, double y1, double x2, double y2)
+        {
+            double dst[8];
+            dst[0] = dst[6] = x1;
+            dst[2] = dst[4] = x2;
+            dst[1] = dst[3] = y1;
+            dst[5] = dst[7] = y2;
+            quad_to_quad(quad, dst);
+        }
+
+        //--------------------------------------------------------------------
+        // Check if the equations were solved successfully
+        bool is_valid() const { return m_valid; }
+=====================================================================
+Found a 39 line (176 tokens) duplication in the following files: 
+Starting at line 312 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_aa.h
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_bin.h
+
+                int x2 = sp.x + sp.len - 1;
+                if(x1 < m_min_x) m_min_x = x1;
+                if(x2 > m_max_x) m_max_x = x2;
+                ++span_iterator;
+            }
+            while(--num_spans);
+            m_scanlines.add(sl_this);
+        }
+
+
+        //---------------------------------------------------------------
+        // Iterate scanlines interface
+        int min_x() const { return m_min_x; }
+        int min_y() const { return m_min_y; }
+        int max_x() const { return m_max_x; }
+        int max_y() const { return m_max_y; }
+
+        //---------------------------------------------------------------
+        bool rewind_scanlines()
+        {
+            m_cur_scanline = 0;
+            return m_scanlines.size() > 0;
+        }
+
+
+        //---------------------------------------------------------------
+        template<class Scanline> bool sweep_scanline(Scanline& sl)
+        {
+            sl.reset_spans();
+            for(;;)
+            {
+                if(m_cur_scanline >= m_scanlines.size()) return false;
+                const scanline_data& sl_this = m_scanlines[m_cur_scanline];
+
+                unsigned num_spans = sl_this.num_spans;
+                unsigned span_idx  = sl_this.start_span;
+                do
+                {
+                    const span_data& sp = m_spans[span_idx++];
+=====================================================================
+Found a 25 line (176 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readListBoxModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+
+    // collect elements
+    readDefaults();
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tabstop") ) );
+=====================================================================
+Found a 50 line (176 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svdem.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/vcldemo.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+// -----------------------------------------------------------------------
+
+// Forward declaration
+void Main();
+
+// -----------------------------------------------------------------------
+
+SAL_IMPLEMENT_MAIN()
+{
+    Reference< XMultiServiceFactory > xMS;
+    xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+
+    InitVCL( xMS );
+    ::Main();
+    DeInitVCL();
+
+    return 0;
+}
+
+// -----------------------------------------------------------------------
+
+class MyWin : public WorkWindow
+{
+public:
+				MyWin( Window* pParent, WinBits nWinStyle );
+
+	void		MouseMove( const MouseEvent& rMEvt );
+	void		MouseButtonDown( const MouseEvent& rMEvt );
+	void		MouseButtonUp( const MouseEvent& rMEvt );
+	void		KeyInput( const KeyEvent& rKEvt );
+	void		KeyUp( const KeyEvent& rKEvt );
+	void		Paint( const Rectangle& rRect );
+	void		Resize();
+};
+
+// -----------------------------------------------------------------------
+
+void Main()
+{
+    /*
+    IntroWindow splash;
+    splash.Show();
+    sleep(5);
+    splash.Hide();
+    */
+
+	MyWin aMainWin( NULL, WB_APP | WB_STDWORK );
+	aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "VCLDemo - VCL Workbench" ) ) );
+=====================================================================
+Found a 9 line (176 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkfile_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefile_curs.h
+
+static char movefile_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00,
+   0xfe, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00,
+   0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00,
+   0xfe, 0x02, 0x00, 0x00, 0xfe, 0x06, 0x00, 0x00, 0xfe, 0x0e, 0x00, 0x00,
+   0xfe, 0x1e, 0x00, 0x00, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
+   0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x03, 0x00,
+   0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
+   0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
+=====================================================================
+Found a 9 line (176 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyflnk_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/moveflnk_curs.h
+
+static char moveflnk_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00,
+   0xfe, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00,
+   0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00,
+   0xbe, 0x02, 0x00, 0x00, 0xa6, 0x06, 0x00, 0x00, 0xa2, 0x0e, 0x00, 0x00,
+   0xba, 0x1e, 0x00, 0x00, 0xbe, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
+   0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x03, 0x00,
+   0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
+   0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
+=====================================================================
+Found a 9 line (176 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfiles_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefiles_curs.h
+
+static char movefiles_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xe0, 0x2f, 0x00, 0x00,
+   0xe8, 0x0f, 0x00, 0x00, 0xe8, 0x7f, 0x00, 0x00, 0xea, 0x7f, 0x00, 0x00,
+   0xea, 0x7f, 0x00, 0x00, 0xea, 0x7f, 0x00, 0x00, 0x6a, 0x7e, 0x00, 0x00,
+   0x6a, 0x7d, 0x00, 0x00, 0x6a, 0x7b, 0x00, 0x00, 0x6a, 0x77, 0x00, 0x00,
+   0x6a, 0x6f, 0x00, 0x00, 0x6a, 0x5f, 0x00, 0x00, 0x0a, 0x3f, 0x00, 0x00,
+   0x7a, 0x7f, 0x00, 0x00, 0x02, 0xff, 0x00, 0x00, 0x7e, 0xff, 0x01, 0x00,
+   0x00, 0x3f, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
+   0x00, 0x61, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+=====================================================================
+Found a 9 line (176 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfile_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefile_curs.h
+
+static char movefile_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00,
+   0xfe, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00,
+   0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00,
+   0xfe, 0x02, 0x00, 0x00, 0xfe, 0x06, 0x00, 0x00, 0xfe, 0x0e, 0x00, 0x00,
+   0xfe, 0x1e, 0x00, 0x00, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
+   0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x03, 0x00,
+   0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
+   0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
+=====================================================================
+Found a 31 line (176 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpinst.cxx
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/saldata.cxx
+
+	FD_ZERO( &aExceptionFDS_ );
+
+	m_pTimeoutFDS[0] = m_pTimeoutFDS[1] = -1;
+	if (pipe (m_pTimeoutFDS) != -1)
+	{
+		// initialize 'wakeup' pipe.
+		int flags;
+
+		// set close-on-exec descriptor flag.
+		if ((flags = fcntl (m_pTimeoutFDS[0], F_GETFD)) != -1)
+		{
+			flags |= FD_CLOEXEC;
+			fcntl (m_pTimeoutFDS[0], F_SETFD, flags);
+		}
+		if ((flags = fcntl (m_pTimeoutFDS[1], F_GETFD)) != -1)
+		{
+			flags |= FD_CLOEXEC;
+			fcntl (m_pTimeoutFDS[1], F_SETFD, flags);
+		}
+
+		// set non-blocking I/O flag.
+		if ((flags = fcntl (m_pTimeoutFDS[0], F_GETFL)) != -1)
+		{
+			flags |= O_NONBLOCK;
+			fcntl (m_pTimeoutFDS[0], F_SETFL, flags);
+		}
+		if ((flags = fcntl (m_pTimeoutFDS[1], F_GETFL)) != -1)
+		{
+			flags |= O_NONBLOCK;
+			fcntl (m_pTimeoutFDS[1], F_SETFL, flags);
+		}
+=====================================================================
+Found a 32 line (176 tokens) duplication in the following files: 
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+
+					const sal_Int32* pTmp = (sal_Int32*) pData + ( nY - nStartY ) * nScanSize + nOffset;
+
+					for( long nX = nStartX; nX <= nEndX; nX++ )
+					{
+						const Color& rCol = mpMapper->ImplGetColor( *pTmp++ );
+			
+						// 0: Transparent; >0: Non-Transparent
+						if( !rCol.GetTransparency() )
+						{
+							pMskAcc->SetPixel( nY, nX, aMskWhite );
+							mbTrans = TRUE;
+						}
+						else
+						{
+							aCol.SetRed( rCol.GetRed() );
+							aCol.SetGreen( rCol.GetGreen() );
+							aCol.SetBlue( rCol.GetBlue() );
+							pBmpAcc->SetPixel( nY, nX, aCol );
+						}
+					}
+				}
+
+				bDataChanged = sal_True;
+			}
+			else if( mpPal && ( pBmpAcc->GetBitCount() <= 8 ) )
+			{
+				BitmapColor aIndex( (BYTE) 0 );
+				BitmapColor	aMskWhite( pMskAcc->GetBestMatchingColor( Color( COL_WHITE ) ) );
+
+				for( long nY = nStartY; nY <= nEndY; nY++ )
+				{
+					const sal_Int32* pTmp = (sal_Int32*) pData + ( nY - nStartY ) * nScanSize + nOffset;
+=====================================================================
+Found a 45 line (176 tokens) duplication in the following files: 
+Starting at line 5105 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5357 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        rSt >> fcPlcfdoaMom;
+        rSt >> lcbPlcfdoaMom;
+        rSt >> fcPlcfdoaHdr;
+        rSt >> lcbPlcfdoaHdr;
+        rSt >> fcPlcfspaMom;
+        rSt >> lcbPlcfspaMom;
+        rSt >> fcPlcfspaHdr;
+        rSt >> lcbPlcfspaHdr;
+
+        rSt >> fcPlcfAtnbkf;
+        rSt >> lcbPlcfAtnbkf;
+        rSt >> fcPlcfAtnbkl;
+        rSt >> lcbPlcfAtnbkl;
+        rSt >> fcPms;
+        rSt >> lcbPMS;
+        rSt >> fcFormFldSttbf;
+        rSt >> lcbFormFldSttbf;
+        rSt >> fcPlcfendRef;
+        rSt >> lcbPlcfendRef;
+        rSt >> fcPlcfendTxt;
+        rSt >> lcbPlcfendTxt;
+        rSt >> fcPlcffldEdn;
+        rSt >> lcbPlcffldEdn;
+        rSt >> fcPlcfpgdEdn;
+        rSt >> lcbPlcfpgdEdn;
+        rSt >> fcDggInfo;
+        rSt >> lcbDggInfo;
+        rSt >> fcSttbfRMark;
+        rSt >> lcbSttbfRMark;
+        rSt >> fcSttbfCaption;
+        rSt >> lcbSttbfCaption;
+        rSt >> fcSttbAutoCaption;
+        rSt >> lcbSttbAutoCaption;
+        rSt >> fcPlcfwkb;
+        rSt >> lcbPlcfwkb;
+        rSt >> fcPlcfspl;
+        rSt >> lcbPlcfspl;
+        rSt >> fcPlcftxbxTxt;
+        rSt >> lcbPlcftxbxTxt;
+        rSt >> fcPlcffldTxbx;
+        rSt >> lcbPlcffldTxbx;
+        rSt >> fcPlcfHdrtxbxTxt;
+        rSt >> lcbPlcfHdrtxbxTxt;
+        rSt >> fcPlcffldHdrTxbx;
+        rSt >> lcbPlcffldHdrTxbx;
+=====================================================================
+Found a 41 line (176 tokens) duplication in the following files: 
+Starting at line 3407 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3575 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : WW8PLCFx(eVersion, true), pRef(0), pTxt(0)
+{
+    if( nLenRef && nLenTxt )
+    {
+        pRef = new WW8PLCF( pSt, nFcRef, nLenRef, nStruct, nStartCp );
+        pTxt = new WW8PLCF( pSt, nFcTxt, nLenTxt, 0, nStartCp );
+    }
+}
+
+WW8PLCFx_SubDoc::~WW8PLCFx_SubDoc()
+{
+    delete pRef;
+    delete pTxt;
+}
+
+ULONG WW8PLCFx_SubDoc::GetIdx() const
+{
+    // Wahrscheinlich pTxt... nicht noetig
+    if( pRef )
+        return ( pRef->GetIdx() << 16 | pTxt->GetIdx() );
+    return 0;
+}
+
+void WW8PLCFx_SubDoc::SetIdx( ULONG nIdx )
+{
+    if( pRef )
+    {
+        pRef->SetIdx( nIdx >> 16 );
+        // Wahrscheinlich pTxt... nicht noetig
+        pTxt->SetIdx( nIdx & 0xFFFF );
+    }
+}
+
+bool WW8PLCFx_SubDoc::SeekPos( WW8_CP nCpPos )
+{
+    return ( pRef ) ? pRef->SeekPos( nCpPos ) : false;
+}
+
+WW8_CP WW8PLCFx_SubDoc::Where()
+{
+    return ( pRef ) ? pRef->Where() : WW8_CP_MAX;
+=====================================================================
+Found a 26 line (176 tokens) duplication in the following files: 
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/pagechg.cxx
+
+	BYTE nInvFlags = 0;
+
+	if( pNew && RES_ATTRSET_CHG == pNew->Which() )
+	{
+		SfxItemIter aNIter( *((SwAttrSetChg*)pNew)->GetChgSet() );
+		SfxItemIter aOIter( *((SwAttrSetChg*)pOld)->GetChgSet() );
+		SwAttrSetChg aOldSet( *(SwAttrSetChg*)pOld );
+		SwAttrSetChg aNewSet( *(SwAttrSetChg*)pNew );
+		while( TRUE )
+		{
+			_UpdateAttr( (SfxPoolItem*)aOIter.GetCurItem(),
+						 (SfxPoolItem*)aNIter.GetCurItem(), nInvFlags,
+						 &aOldSet, &aNewSet );
+			if( aNIter.IsAtEnd() )
+				break;
+			aNIter.NextItem();
+			aOIter.NextItem();
+		}
+		if ( aOldSet.Count() || aNewSet.Count() )
+			SwLayoutFrm::Modify( &aOldSet, &aNewSet );
+	}
+	else
+		_UpdateAttr( pOld, pNew, nInvFlags );
+
+	if ( nInvFlags != 0 )
+	{
+=====================================================================
+Found a 23 line (176 tokens) duplication in the following files: 
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+
+			aPixRect.Bottom()++;
+			
+			{ 
+				// xPixRect Begrenzen, wegen Treiberproblem bei zu weit hinausragenden Pixelkoordinaten
+				Size aMaxXY(pWin->GetOutputSizePixel());
+				long a(2 * nPixSiz);
+				long nMaxX(aMaxXY.Width() + a);
+				long nMaxY(aMaxXY.Height() + a);
+
+				if (aPixRect.Left  ()<-a) aPixRect.Left()=-a;
+				if (aPixRect.Top   ()<-a) aPixRect.Top ()=-a;
+				if (aPixRect.Right ()>nMaxX) aPixRect.Right ()=nMaxX;
+				if (aPixRect.Bottom()>nMaxY) aPixRect.Bottom()=nMaxY;
+			}
+
+			Rectangle aOuterPix(aPixRect);
+			aOuterPix.Left()-=nPixSiz;
+			aOuterPix.Top()-=nPixSiz;
+			aOuterPix.Right()+=nPixSiz;
+			aOuterPix.Bottom()+=nPixSiz;
+
+			bool bMerk(pWin->IsMapModeEnabled());
+			pWin->EnableMapMode(FALSE);
+=====================================================================
+Found a 42 line (176 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/ViewShellImplementation.cxx
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviews2.cxx
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* modal dialog for #90356#
+|*
+\************************************************************************/
+
+class ImpUndoDeleteWarning : public ModalDialog
+{
+private:
+	FixedImage		maImage;
+	FixedText		maWarningFT;
+	CheckBox		maDisableCB;
+	OKButton		maYesBtn;
+	CancelButton	maNoBtn;
+
+public:
+	ImpUndoDeleteWarning(Window* pParent);
+	BOOL IsWarningDisabled() const { return maDisableCB.IsChecked(); }
+};
+
+ImpUndoDeleteWarning::ImpUndoDeleteWarning(Window* pParent)
+:	ModalDialog(pParent, SdResId(RID_UNDO_DELETE_WARNING)),
+	maImage(this, SdResId(IMG_UNDO_DELETE_WARNING)),
+	maWarningFT(this, SdResId(FT_UNDO_DELETE_WARNING)),
+	maDisableCB(this, SdResId(CB_UNDO_DELETE_DISABLE)),
+	maYesBtn(this, SdResId(BTN_UNDO_DELETE_YES)),
+	maNoBtn(this, SdResId(BTN_UNDO_DELETE_NO))
+{
+	FreeResource();
+
+	SetHelpId( HID_SD_UNDODELETEWARNING_DLG );
+	maDisableCB.SetHelpId( HID_SD_UNDODELETEWARNING_CBX );
+
+	maYesBtn.SetText(Button::GetStandardText(BUTTON_YES));
+	maNoBtn.SetText(Button::GetStandardText(BUTTON_NO));
+	maImage.SetImage(WarningBox::GetStandardImage());
+
+	// #93721# Set focus to YES-Button
+	maYesBtn.GrabFocus();
+}
+=====================================================================
+Found a 17 line (176 tokens) duplication in the following files: 
+Starting at line 3126 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/frame.cxx
+Starting at line 3169 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/frame.cxx
+
+    TransactionGuard aTransaction( m_aTransactionManager, E_SOFTEXCEPTIONS );
+
+    /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+    // Make snapshot of neccessary member!
+    ReadGuard aReadLock( m_aLock );
+    css::uno::Reference< css::awt::XWindow >                            xContainerWindow    = m_xContainerWindow   ;
+    css::uno::Reference< css::lang::XMultiServiceFactory >              xFactory            = m_xFactory           ;
+    css::uno::Reference< css::datatransfer::dnd::XDropTargetListener >  xDragDropListener   = m_xDropTargetListener;
+    css::uno::Reference< css::awt::XWindowListener >                    xWindowListener     ( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY );
+    css::uno::Reference< css::awt::XFocusListener >                     xFocusListener      ( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY );
+    css::uno::Reference< css::awt::XTopWindowListener >                 xTopWindowListener  ( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY );
+    aReadLock.unlock();
+    /* UNSAFE AREA --------------------------------------------------------------------------------------------- */
+
+    if( xContainerWindow.is() == sal_True )
+    {
+        xContainerWindow->removeWindowListener( xWindowListener);
+=====================================================================
+Found a 30 line (176 tokens) duplication in the following files: 
+Starting at line 2202 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 2311 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+
+bool ReadResourceWriteSubToolBarXML( const OUString& aOutDirURL,
+                                     const OUString& aResourceDirURL,
+                                     const OUString& aResourceFilePrefix,
+                                     MODULES eModule,
+                                     const OUString& aProjectName )
+{
+    static const char ToolBarDocType[]  = "<!DOCTYPE toolbar:toolbar PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"toolbar.dtd\">\n";
+    static const char ToolBarStart[]    = "<toolbar:toolbar xmlns:toolbar=\"http://openoffice.org/2001/toolbar\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" toolbar:id=\"toolbar\">\n";
+    static const char ToolBarEnd[]      = "</toolbar:toolbar>";
+
+    OUString aSysDirPath;
+    OString  aResFilePrefix = OUStringToOString( aResourceFilePrefix, RTL_TEXTENCODING_ASCII_US );
+
+    osl::FileBase::getSystemPathFromFileURL( aResourceDirURL, aSysDirPath );
+
+    String aSysDirPathStr( aSysDirPath );
+
+    ::com::sun::star::lang::Locale aLocale;
+    aLocale.Language = OUString::createFromAscii( Language_codes[0].pLanguage );
+    aLocale.Country = OUString::createFromAscii( Language_codes[0].pCountry );
+    ResMgr* pResMgr = ResMgr::CreateResMgr( aResFilePrefix.getStr(),
+                                            aLocale,
+                                            NULL,
+                                            &aSysDirPathStr );
+
+    WorkWindow* pWindow = new WorkWindow( NULL, WB_APP | WB_STDWORK | WB_HIDE );
+    if ( pResMgr )
+    {
+        int i = 0;
+        while ( TBSubResourceModule_Mapping[i].nParentResId > 0 )
+=====================================================================
+Found a 25 line (176 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testwriter.cxx
+
+	~OSaxWriterTest() {}
+
+public: // refcounting
+	BOOL						queryInterface( Uik aUik, XInterfaceRef & rOut );
+	void 						acquire() 						 { OWeakObject::acquire(); }
+	void 						release() 						 { OWeakObject::release(); }
+	void* 						getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); }
+
+public:
+    virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject)
+    															THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual INT32 test(	const UString& TestName,
+    					const XInterfaceRef& TestObject,
+    					INT32 hTestHandle) 						THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual BOOL testPassed(void) 								THROWS( (	UsrSystemException) );
+    virtual Sequence< UString > getErrors(void) 				THROWS( (UsrSystemException) );
+    virtual Sequence< UsrAny > getErrorExceptions(void) 		THROWS( (UsrSystemException) );
+    virtual Sequence< UString > getWarnings(void) 				THROWS( (UsrSystemException) );
+
+private:
+	void testSimple( const XExtendedDocumentHandlerRef &r );
+=====================================================================
+Found a 21 line (176 tokens) duplication in the following files: 
+Starting at line 1224 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1592 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+
+					Impl_writePolyPolygon( rPolyPoly, sal_True, nTransparence );
+				}
+			}
+			break;
+
+			case( META_FLOATTRANSPARENT_ACTION ):
+			{
+				const MetaFloatTransparentAction*	pA = (const MetaFloatTransparentAction*) pAction;
+				GDIMetaFile							aTmpMtf( pA->GetGDIMetaFile() );
+				Point								aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size							aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point							aDestPt( pA->GetPoint() );
+				const Size							aDestSize( pA->GetSize() );
+				const double						fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double						fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long								nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX );
+=====================================================================
+Found a 25 line (176 tokens) duplication in the following files: 
+Starting at line 617 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/DiagramHelper.cxx
+Starting at line 665 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/DiagramHelper.cxx
+
+    if( !xGivenChartType.is() )
+        return 0;
+
+	//iterate through the model to find the given xChartType
+	//the found parent indicates the coordinate system
+
+    //iterate through all coordinate systems
+    uno::Reference< XCoordinateSystemContainer > xCooSysContainer( xDiagram, uno::UNO_QUERY );
+    if( !xCooSysContainer.is())
+        return 0;
+
+    uno::Sequence< uno::Reference< XCoordinateSystem > > aCooSysList( xCooSysContainer->getCoordinateSystems() );
+    for( sal_Int32 nCS = 0; nCS < aCooSysList.getLength(); ++nCS )
+    {
+        uno::Reference< XCoordinateSystem > xCooSys( aCooSysList[nCS] );
+
+        //iterate through all chart types in the current coordinate system
+        uno::Reference< XChartTypeContainer > xChartTypeContainer( xCooSys, uno::UNO_QUERY );
+        OSL_ASSERT( xChartTypeContainer.is());
+        if( !xChartTypeContainer.is() )
+            continue;
+        uno::Sequence< uno::Reference< XChartType > > aChartTypeList( xChartTypeContainer->getChartTypes() );
+        for( sal_Int32 nT = 0; nT < aChartTypeList.getLength(); ++nT )
+        {
+            uno::Reference< XChartType > xChartType( aChartTypeList[nT] );
+=====================================================================
+Found a 11 line (175 tokens) duplication in the following files: 
+Starting at line 758 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+=====================================================================
+Found a 40 line (175 tokens) duplication in the following files: 
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 1207 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+            value_type* pdst = (value_type*)m_rbuf->span_ptr(xdst, ydst, len);
+
+            int incp = 4;
+            if(xdst > xsrc)
+            {
+                psrc += (len-1) << 2;
+                pdst += (len-1) << 2;
+                incp = -4;
+            }
+            do 
+            {
+                value_type alpha = psrc[src_order::A];
+
+                if(alpha)
+                {
+                    if(alpha == base_mask)
+                    {
+                        pdst[order_type::R] = psrc[src_order::R];
+                        pdst[order_type::G] = psrc[src_order::G];
+                        pdst[order_type::B] = psrc[src_order::B];
+                        pdst[order_type::A] = psrc[src_order::A];
+                    }
+                    else
+                    {
+                        blender_type::blend_pix(pdst, 
+                                                psrc[src_order::R],
+                                                psrc[src_order::G],
+                                                psrc[src_order::B],
+                                                alpha,
+                                                255);
+                    }
+                }
+                psrc += incp;
+                pdst += incp;
+            }
+            while(--len);
+        }
+
+
+    private:
+=====================================================================
+Found a 35 line (175 tokens) duplication in the following files: 
+Starting at line 955 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+Starting at line 1465 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+
+	}
+
+	if( nFeatures & SEF_EXPORT_X )
+	{
+		// svg: x1
+		mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aStart.X);
+		aStr = sStringBuffer.makeStringAndClear();
+		mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_X1, aStr);
+	}
+	else
+	{
+		aEnd.X -= aStart.X;
+	}
+
+	if( nFeatures & SEF_EXPORT_Y )
+	{
+		// svg: y1
+		mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aStart.Y);
+		aStr = sStringBuffer.makeStringAndClear();
+		mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_Y1, aStr);
+	}
+	else
+	{
+		aEnd.Y -= aStart.Y;
+	}
+
+	// svg: x2
+	mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aEnd.X);
+	aStr = sStringBuffer.makeStringAndClear();
+	mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_X2, aStr);
+
+	// svg: y2
+	mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, aEnd.Y);
+	aStr = sStringBuffer.makeStringAndClear();
+	mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_Y2, aStr);
+=====================================================================
+Found a 28 line (175 tokens) duplication in the following files: 
+Starting at line 4500 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 4565 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+bool INetURLObject::setExtension(rtl::OUString const & rTheExtension,
+								 sal_Int32 nIndex, bool bIgnoreFinalSlash,
+								 EncodeMechanism eMechanism,
+								 rtl_TextEncoding eCharset)
+{
+	SubString aSegment(getSegment(nIndex, bIgnoreFinalSlash));
+	if (!aSegment.isPresent())
+		return false;
+
+	sal_Unicode const * pPathBegin
+		= m_aAbsURIRef.getStr() + m_aPath.getBegin();
+	sal_Unicode const * pPathEnd = pPathBegin + m_aPath.getLength();
+	sal_Unicode const * pSegBegin
+		= m_aAbsURIRef.getStr() + aSegment.getBegin();
+	sal_Unicode const * pSegEnd = pSegBegin + aSegment.getLength();
+
+    if (pSegBegin < pSegEnd && *pSegBegin == '/')
+        ++pSegBegin;
+	sal_Unicode const * pExtension = 0;
+	sal_Unicode const * p = pSegBegin;
+	for (; p != pSegEnd && *p != ';'; ++p)
+		if (*p == '.' && p != pSegBegin)
+			pExtension = p;
+	if (!pExtension)
+		pExtension = p;
+
+	rtl::OUStringBuffer aNewPath;
+	aNewPath.append(pPathBegin, pExtension - pPathBegin);
+=====================================================================
+Found a 34 line (175 tokens) duplication in the following files: 
+Starting at line 2634 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+Starting at line 2863 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+
+{
+	const SwTableBox* pBox;
+	SwTabFrm *pTab;
+
+	if( pBoxFrm )
+	{
+		pTab = ((SwFrm*)pBoxFrm)->ImplFindTabFrm();
+		pBox = pBoxFrm->GetTabBox();
+	}
+	else if( pCrsr )
+	{
+		const SwCntntNode* pCNd = pCrsr->GetCntntNode();
+		if( !pCNd )
+			return ;
+
+		Point aPt;
+		const SwShellCrsr *pShCrsr = *pCrsr;
+		if( pShCrsr )
+			aPt = pShCrsr->GetPtPos();
+
+		const SwFrm* pTmpFrm = pCNd->GetFrm( &aPt, 0, FALSE );
+		do {
+			pTmpFrm = pTmpFrm->GetUpper();
+		} while ( !pTmpFrm->IsCellFrm() );
+
+		pBoxFrm = (SwCellFrm*)pTmpFrm;
+		pTab = ((SwFrm*)pBoxFrm)->ImplFindTabFrm();
+		pBox = pBoxFrm->GetTabBox();
+	}
+	else if( !pCrsr && !pBoxFrm )
+	{
+		ASSERT( !this, "einer von beiden muss angegeben werden!" );
+		return ;
+	}
+=====================================================================
+Found a 21 line (175 tokens) duplication in the following files: 
+Starting at line 3220 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxed.cxx
+
+	if (aGeo.nDrehWink!=0) {
+		Point aCenter(aViewInit.Center());
+		aCenter-=aViewInit.TopLeft();
+		Point aCenter0(aCenter);
+		RotatePoint(aCenter,Point(),aGeo.nSin,aGeo.nCos);
+		aCenter-=aCenter0;
+		aViewInit.Move(aCenter.X(),aCenter.Y());
+	}
+	Size aAnkSiz(aViewInit.GetSize());
+	aAnkSiz.Width()--; aAnkSiz.Height()--; // weil GetSize() ein draufaddiert
+	Size aMaxSiz(1000000,1000000);
+	if (pModel!=NULL) {
+		Size aTmpSiz(pModel->GetMaxObjSize());
+		if (aTmpSiz.Width()!=0) aMaxSiz.Width()=aTmpSiz.Width();
+		if (aTmpSiz.Height()!=0) aMaxSiz.Height()=aTmpSiz.Height();
+	}
+	
+	// #106879#
+	// Done earlier since used in else tree below
+	SdrTextHorzAdjust eHAdj(GetTextHorizontalAdjust());
+	SdrTextVertAdjust eVAdj(GetTextVerticalAdjust());
+=====================================================================
+Found a 31 line (175 tokens) duplication in the following files: 
+Starting at line 3259 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 3349 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_Label::Read(SvStorageStream *pS)
+{
+    long nStart = pS->Tell();
+	*pS >> nIdentifier;
+	DBG_ASSERT(nStandardId==nIdentifier,
+			"A control that has a different identifier");
+	*pS >> nFixedAreaLen;
+	pS->Read(pBlockFlags,4);
+
+
+	if (pBlockFlags[0] & 0x01)
+		*pS >> mnForeColor;
+	if (pBlockFlags[0] & 0x02)
+		*pS >> mnBackColor;
+
+
+	if (pBlockFlags[0] & 0x04)
+	{
+		sal_uInt8 nTemp;
+		*pS >> nTemp;
+		fEnabled = (nTemp&0x02)>>1;
+		fLocked = (nTemp&0x04)>>2;
+		fBackStyle = (nTemp&0x08)>>3;
+		*pS >> nTemp;
+		*pS >> nTemp;
+		fWordWrap = (nTemp&0x80)>>7;
+		*pS >> nTemp;
+		fAutoSize = (nTemp&0x10)>>4;
+	}
+    bool bCaption = (pBlockFlags[0] & 0x08) != 0;
+    if (bCaption)
+=====================================================================
+Found a 20 line (175 tokens) duplication in the following files: 
+Starting at line 2018 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2096 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+	{ 0x6000, DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 },
+	{ 0x6000, DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 },
+	{ 0xa000, DFF_Prop_geoRight, 0, DFF_Prop_adjustValue },
+	{ 0xa000, DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue },
+	{ 0x8000, 10800, 0, DFF_Prop_adjustValue },
+	{ 0x2001, 0x0405, 1, 10800 },							// scaling	 6
+	{ 0x6000, DFF_Prop_geoRight, DFF_Prop_geoLeft, 10800 },	// lr center 7
+	{ 0x6000, DFF_Prop_geoBottom, DFF_Prop_geoTop, 10800 },	// ul center 8
+
+	{ 0x4001, -8050, 0x0406, 1 },	// 9
+	{ 0x6000, 0x0409, 0x0407, 0 },	// a
+	{ 0x4001, -8050, 0x0406, 1 },	// b
+	{ 0x6000, 0x040b, 0x0408, 0 },	// c
+	{ 0x4001, 8050, 0x0406, 1 },	// d
+	{ 0x6000, 0x040d, 0x0407, 0 },	// e
+	{ 0x4001, 8050, 0x0406, 1 },	// f
+	{ 0x6000, 0x040f, 0x0408, 0 }	// 10
+=====================================================================
+Found a 29 line (175 tokens) duplication in the following files: 
+Starting at line 1427 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/srchdlg.cxx
+Starting at line 2413 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/srchdlg.cxx
+
+	}
+
+	pSearchItem->SetRegExp( FALSE );
+	pSearchItem->SetLevenshtein( FALSE );
+	if (GetCheckBoxValue( aRegExpBtn ))
+		pSearchItem->SetRegExp( TRUE );
+	else if (GetCheckBoxValue( aSimilarityBox ))
+		pSearchItem->SetLevenshtein( TRUE );
+
+	pSearchItem->SetWordOnly( GetCheckBoxValue( aWordBtn ) );
+	pSearchItem->SetBackward( GetCheckBoxValue( aBackwardsBtn ) );
+	pSearchItem->SetPattern( GetCheckBoxValue( aLayoutBtn ) );
+	pSearchItem->SetSelection( GetCheckBoxValue( aSelectionBtn ) );
+
+	pSearchItem->SetUseAsianOptions( GetCheckBoxValue( aJapOptionsCB ) );
+	INT32 nFlags = GetTransliterationFlags();
+	if( !pSearchItem->IsUseAsianOptions())
+		nFlags &= (TransliterationModules_IGNORE_CASE |
+				   TransliterationModules_IGNORE_WIDTH );
+	pSearchItem->SetTransliterationFlags( nFlags );
+
+	if ( !bWriter )
+	{
+        if ( aCalcSearchInLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND )
+            pSearchItem->SetCellType( aCalcSearchInLB.GetSelectEntryPos() );
+
+		pSearchItem->SetRowDirection( aRowsBtn.IsChecked() );
+        pSearchItem->SetAllTables( aAllSheetsCB.IsChecked() );
+	}
+=====================================================================
+Found a 17 line (175 tokens) duplication in the following files: 
+Starting at line 1662 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] =
+{
+	{ 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I },
+	{ 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I },
+	{ 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I },
+	{ 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I },
+	{ 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
+};
+static const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] =
+{
+	0x4000, 0x0011, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 17 line (175 tokens) duplication in the following files: 
+Starting at line 1609 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1425 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] =
+{
+	{ 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I },
+	{ 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I },
+	{ 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I },
+	{ 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I },
+	{ 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
+};
+static const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] =
+{
+	0x4000, 0x0011, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 19 line (175 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1080 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptCurvedArrowVert[] =	// adjustment1 : y 10800 - 21600, adjustment2 : y 16424 - 21600
+{															// adjustment3 : x 0 - 21600
+	{ 21600, 0 },
+	{ 9675,	0 }, { 0, 10 MSO_I }, { 0, 9 MSO_I },										// ccp
+	{ 0, 11 MSO_I },
+	{ 0, 14 MSO_I }, { 15 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },						// ccp
+	{ 2 MSO_I, 21600 }, { 21600, 7 MSO_I }, { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 16 MSO_I },// pppp
+	{ 2 MSO_I, 16 MSO_I }, { 80, 8 MSO_I },	{ 80, 8 MSO_I },							// ccp
+	{ 80, 8 MSO_I }, { 21600, 5 MSO_I }, { 21600, 0	}									// ccp
+};
+static const sal_uInt16 mso_sptCurvedArrowSegm[] =
+{
+	0x4000, 0x2001, 0x0001, 0x2001, 0x0004, 0x2002, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptCurvedArrowCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },						// 0
+=====================================================================
+Found a 32 line (175 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linkmgr2.cxx
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linkmgr2.cxx
+
+			(*(*ppRef))->pLinkMgr = 0;
+			(*(*ppRef)).Clear();
+			bFound = TRUE;
+		}
+
+		// falls noch leere rum stehen sollten, weg damit
+		if( !(*ppRef)->Is() )
+		{
+			delete *ppRef;
+			aLinkTbl.Remove( aLinkTbl.Count() - n, 1 );
+			if( bFound )
+				return ;
+			--ppRef;
+		}
+	}
+}
+
+
+void SvLinkManager::Remove( USHORT nPos, USHORT nCnt )
+{
+	if( nCnt && nPos < aLinkTbl.Count() )
+	{
+		if( nPos + nCnt > aLinkTbl.Count() )
+			nCnt = aLinkTbl.Count() - nPos;
+
+		SvBaseLinkRef** ppRef = (SvBaseLinkRef**)aLinkTbl.GetData() + nPos;
+		for( USHORT n = nCnt; n; --n, ++ppRef )
+		{
+			if( (*ppRef)->Is() )
+			{
+				(*(*ppRef))->Disconnect();
+				(*(*ppRef))->pLinkMgr = 0;
+=====================================================================
+Found a 30 line (175 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/editsrc.cxx
+Starting at line 403 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/notesuno.cxx
+
+SdrObject* ScAnnotationShapeObj::GetCaptionObj()
+{
+    SdrObject* pRet = NULL;
+
+	ScDrawLayer* pModel = pDocShell->GetDocument()->GetDrawLayer();
+	if (!pModel)
+		return FALSE;
+	SdrPage* pPage = pModel->GetPage(static_cast<sal_uInt16>(aCellPos.Tab()));
+	DBG_ASSERT(pPage,"Page ?");
+
+	pPage->RecalcObjOrdNums();
+
+	SdrObjListIter aIter( *pPage, IM_FLAT );
+	SdrObject* pObject = aIter.Next();
+	while (pObject && !pRet)
+	{
+		if ( pObject->GetLayer() == SC_LAYER_INTERN && pObject->ISA( SdrCaptionObj ) )
+		{
+			ScDrawObjData* pData = ScDrawLayer::GetObjData( pObject );
+			if ( pData && aCellPos.Col() == pData->aStt.Col() && aCellPos.Row() == pData->aStt.Row() )
+			{
+                pRet = pObject;
+			}
+		}
+
+		pObject = aIter.Next();
+	}
+
+	return pRet;
+}
+=====================================================================
+Found a 33 line (175 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fudraw.cxx
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/graphctl.cxx
+
+				if(0L == pHdl)
+				{
+					// #90129# restrict movement to WorkArea
+					const Rectangle& rWorkArea = pView->GetWorkArea();
+
+					if(!rWorkArea.IsEmpty())
+					{
+						Rectangle aMarkRect(pView->GetMarkedObjRect());
+						aMarkRect.Move(nX, nY);
+
+						if(!aMarkRect.IsInside(rWorkArea))
+						{
+							if(aMarkRect.Left() < rWorkArea.Left())
+							{
+								nX += rWorkArea.Left() - aMarkRect.Left();
+							}
+
+							if(aMarkRect.Right() > rWorkArea.Right())
+							{
+								nX -= aMarkRect.Right() - rWorkArea.Right();
+							}
+
+							if(aMarkRect.Top() < rWorkArea.Top())
+							{
+								nY += rWorkArea.Top() - aMarkRect.Top();
+							}
+
+							if(aMarkRect.Bottom() > rWorkArea.Bottom())
+							{
+								nY -= aMarkRect.Bottom() - rWorkArea.Bottom();
+							}
+						}
+					}
+=====================================================================
+Found a 19 line (175 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docsh.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+
+static const sal_Char __FAR_DATA pFilterSc30Temp[]	= "StarCalc 3.0 Vorlage/Template";
+static const sal_Char __FAR_DATA pFilterSc10[]		= "StarCalc 1.0";
+static const sal_Char __FAR_DATA pFilterXML[]		= "StarOffice XML (Calc)";
+static const sal_Char __FAR_DATA pFilterAscii[]		= "Text - txt - csv (StarCalc)";
+static const sal_Char __FAR_DATA pFilterLotus[]		= "Lotus";
+static const sal_Char __FAR_DATA pFilterQPro6[]		= "Quattro Pro 6.0";
+static const sal_Char __FAR_DATA pFilterExcel4[]	= "MS Excel 4.0";
+static const sal_Char __FAR_DATA pFilterEx4Temp[]	= "MS Excel 4.0 Vorlage/Template";
+static const sal_Char __FAR_DATA pFilterExcel5[]	= "MS Excel 5.0/95";
+static const sal_Char __FAR_DATA pFilterEx5Temp[]	= "MS Excel 5.0/95 Vorlage/Template";
+static const sal_Char __FAR_DATA pFilterExcel95[]	= "MS Excel 95";
+static const sal_Char __FAR_DATA pFilterEx95Temp[]	= "MS Excel 95 Vorlage/Template";
+static const sal_Char __FAR_DATA pFilterExcel97[]	= "MS Excel 97";
+static const sal_Char __FAR_DATA pFilterEx97Temp[]	= "MS Excel 97 Vorlage/Template";
+static const sal_Char __FAR_DATA pFilterDBase[]		= "dBase";
+static const sal_Char __FAR_DATA pFilterDif[]		= "DIF";
+static const sal_Char __FAR_DATA pFilterSylk[]		= "SYLK";
+static const sal_Char __FAR_DATA pFilterHtml[]		= "HTML (StarCalc)";
+static const sal_Char __FAR_DATA pFilterHtmlWeb[]	= "calc_HTML_WebQuery";
+=====================================================================
+Found a 26 line (175 tokens) duplication in the following files: 
+Starting at line 1595 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 2030 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+SvXMLImportContext *ScXMLRejectionContext::CreateChildContext( USHORT nPrefix,
+									 const ::rtl::OUString& rLocalName,
+									 const ::com::sun::star::uno::Reference<
+									  	::com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext *pContext(0);
+
+	if ((nPrefix == XML_NAMESPACE_OFFICE) && (IsXMLToken(rLocalName, XML_CHANGE_INFO)))
+	{
+		pContext = new ScXMLChangeInfoContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+	}
+	else if (nPrefix == XML_NAMESPACE_TABLE)
+	{
+		if (IsXMLToken(rLocalName, XML_DEPENDENCIES))
+			pContext = new ScXMLDependingsContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+		else if (IsXMLToken(rLocalName, XML_DELETIONS))
+			pContext = new ScXMLDeletionsContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+	}
+
+	if( !pContext )
+		pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
+
+	return pContext;
+}
+
+void ScXMLRejectionContext::EndElement()
+=====================================================================
+Found a 39 line (175 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/codemaker/global.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/checksingleton.cxx
+
+sal_Bool isFileUrl(const OString& fileName)
+{
+    if (fileName.indexOf("file://") == 0 )
+        return sal_True;
+    return sal_False;
+}
+
+OUString convertToFileUrl(const OString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return OStringToOUString(fileName, osl_getThreadTextEncoding());
+    }
+
+    OUString uUrlFileName;
+    OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding());
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None)
+        {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+=====================================================================
+Found a 6 line (175 tokens) duplication in the following files: 
+Starting at line 1500 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1519 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd90 - fd9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fda0 - fdaf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fdb0 - fdbf
+    13,13,13,13,13,13,13,13, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fdd0 - fddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fde0 - fdef
+=====================================================================
+Found a 6 line (175 tokens) duplication in the following files: 
+Starting at line 1488 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1550 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff60 - ff6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff70 - ff7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff80 - ff8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ff90 - ff9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+=====================================================================
+Found a 7 line (175 tokens) duplication in the following files: 
+Starting at line 1384 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1434 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10, 0,10,10,10,10,10,// 2e90 - 2e9f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ea0 - 2eaf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 8 line (175 tokens) duplication in the following files: 
+Starting at line 1311 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1352 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23e0 - 23ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23f0 - 23ff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2400 - 240f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2410 - 241f
+    10,10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2420 - 242f
+=====================================================================
+Found a 8 line (175 tokens) duplication in the following files: 
+Starting at line 1243 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 0,// 27b0 - 27bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27c0 - 27cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27d0 - 27df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27e0 - 27ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 27f0 - 27ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e00 - 2e0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e10 - 2e1f
+=====================================================================
+Found a 6 line (175 tokens) duplication in the following files: 
+Starting at line 858 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd90 - fd9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fda0 - fdaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fdb0 - fdbf
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fdd0 - fddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fde0 - fdef
+=====================================================================
+Found a 7 line (175 tokens) duplication in the following files: 
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27, 0,27,27,27,27,27,// 2e90 - 2e9f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ea0 - 2eaf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2eb0 - 2ebf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ec0 - 2ecf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ed0 - 2edf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2ee0 - 2eef
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 6 line (175 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 895 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 7 line (175 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,22, 4, 4, 4, 0,// 30f0 - 30ff
+=====================================================================
+Found a 8 line (175 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 13f0 - 13ff
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1400 - 140f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1410 - 141f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1420 - 142f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1430 - 143f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1440 - 144f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1450 - 145f
+=====================================================================
+Found a 6 line (175 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,// 11a0 - 11af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11b0 - 11bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11c0 - 11cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11d0 - 11df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11e0 - 11ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0,// 11f0 - 11ff
+=====================================================================
+Found a 31 line (175 tokens) duplication in the following files: 
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 347 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/headermenucontroller.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/objectmenucontroller.cxx
+
+void SAL_CALL ObjectMenuController::setPopupMenu( const Reference< css::awt::XPopupMenu >& xPopupMenu ) throw ( RuntimeException )
+{
+    ResetableGuard aLock( m_aLock );
+
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( m_xFrame.is() && !m_xPopupMenu.is() )
+    {
+        // Create popup menu on demand
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        m_xPopupMenu = xPopupMenu;
+	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+
+        Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance(
+                                                        rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
+                                                    UNO_QUERY );
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+
+        com::sun::star::util::URL aTargetURL;
+        aTargetURL.Complete = m_aCommandURL;
+        xURLTransformer->parseStrict( aTargetURL );
+        m_xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+
+        updatePopupMenu();
+    }
+}
+
+// XInitialization
+void SAL_CALL ObjectMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+=====================================================================
+Found a 57 line (175 tokens) duplication in the following files: 
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 553 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+                      break;  
+		}
+	}
+}
+
+void SAL_CALL OReadImagesDocumentHandler::endElement(const OUString& aName)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	ImageHashMap::const_iterator pImageEntry = m_aImageMap.find( aName ) ;
+	if ( pImageEntry != m_aImageMap.end() )
+	{
+		switch ( pImageEntry->second )
+		{
+			case IMG_ELEMENT_IMAGECONTAINER:
+			{
+				m_bImageContainerEndFound = sal_True;
+			}
+			break;
+
+			case IMG_ELEMENT_IMAGES:
+			{
+				if ( m_pImages )
+				{
+					if ( m_aImageList.pImageList )
+						m_aImageList.pImageList->Insert( m_pImages, m_aImageList.pImageList->Count() );
+					m_pImages = NULL;
+				}
+				m_bImagesStartFound = sal_False;
+			}
+			break;
+
+			case IMG_ELEMENT_ENTRY:
+			{
+				m_bImageStartFound = sal_False;
+			}
+			break;
+
+			case IMG_ELEMENT_EXTERNALIMAGES:
+			{
+				if ( m_pExternalImages && !m_aImageList.pExternalImageList )
+				{
+					if ( !m_aImageList.pExternalImageList )
+						m_aImageList.pExternalImageList = m_pExternalImages;
+				}
+
+				m_bExternalImagesStartFound = sal_False;
+				m_pExternalImages = NULL;
+			}
+			break;
+
+			case IMG_ELEMENT_EXTERNALENTRY:
+			{
+				m_bExternalImageStartFound = sal_False;
+			}
+			break;
+=====================================================================
+Found a 46 line (175 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilterdetect/filterdetect.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/filterdetect.cxx
+
+	return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "devguide.officedev.samples.filter.FlatXmlDetect" ) );
+}
+
+#define SERVICE_NAME1 "com.sun.star.document.ExtendedTypeDetection"
+
+sal_Bool SAL_CALL FilterDetect_supportsService( const OUString& ServiceName ) 
+	throw (RuntimeException)
+{
+    return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) );
+}
+
+Sequence< OUString > SAL_CALL FilterDetect_getSupportedServiceNames(  ) 
+	throw (RuntimeException)
+{
+    Sequence < OUString > aRet(2);
+    OUString* pArray = aRet.getArray();
+    pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
+    return aRet;
+}
+#undef SERVICE_NAME1
+#undef SERVICE_NAME2
+
+Reference< XInterface > SAL_CALL FilterDetect_createInstance( const Reference< XMultiServiceFactory > & rSMgr)
+	throw( Exception )
+{
+	return (cppu::OWeakObject*) new FilterDetect( rSMgr );
+}
+
+// XServiceInfo
+OUString SAL_CALL FilterDetect::getImplementationName(  ) 
+	throw (RuntimeException)
+{
+	return FilterDetect_getImplementationName();
+}
+
+sal_Bool SAL_CALL FilterDetect::supportsService( const OUString& rServiceName ) 
+	throw (RuntimeException)
+{
+    return FilterDetect_supportsService( rServiceName );
+}
+
+Sequence< OUString > SAL_CALL FilterDetect::getSupportedServiceNames(  ) 
+	throw (RuntimeException)
+{
+    return FilterDetect_getSupportedServiceNames();
+}
+=====================================================================
+Found a 29 line (175 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+
+					switch((sal_Int32)aRow[5]->getValue())
+					{
+					case DataType::CHAR:
+					case DataType::VARCHAR:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)254);
+						break;
+					case DataType::LONGVARCHAR:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)65535);
+						break;
+					default:
+						aRow[16] = new ORowSetValueDecorator((sal_Int32)0);
+					}
+					aRow[17] = new ORowSetValueDecorator(i);
+					switch(sal_Int32(aRow[11]->getValue()))
+					{
+					case ColumnValue::NO_NULLS:
+						aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("NO"));
+						break;
+					case ColumnValue::NULLABLE:
+						aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES"));
+						break;
+					default:
+						aRow[18] = new ORowSetValueDecorator(::rtl::OUString());
+					}
+					aRows.push_back(aRow);
+				}
+			}
+		}
+	}
+=====================================================================
+Found a 39 line (175 tokens) duplication in the following files: 
+Starting at line 258 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/global.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/checksingleton.cxx
+
+sal_Bool isFileUrl(const OString& fileName)
+{
+    if (fileName.indexOf("file://") == 0 )
+        return sal_True;
+    return sal_False;
+}
+
+OUString convertToFileUrl(const OString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return OStringToOUString(fileName, osl_getThreadTextEncoding());
+    }
+
+    OUString uUrlFileName;
+    OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding());
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None)
+        {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+=====================================================================
+Found a 32 line (174 tokens) duplication in the following files: 
+Starting at line 916 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi.cxx
+Starting at line 3203 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salframe.cxx
+
+	RECT*		pRect = mpNextClipRect;
+	RECT*		pBoundRect = &(mpClipRgnData->rdh.rcBound);
+	long		nRight = nX + nWidth;
+	long		nBottom = nY + nHeight;
+
+	if ( mbFirstClipRect )
+	{
+		pBoundRect->left	= nX;
+		pBoundRect->top 	= nY;
+		pBoundRect->right	= nRight;
+		pBoundRect->bottom	= nBottom;
+		mbFirstClipRect = FALSE;
+	}
+	else
+	{
+		if ( nX < pBoundRect->left )
+			pBoundRect->left = (int)nX;
+
+		if ( nY < pBoundRect->top )
+			pBoundRect->top = (int)nY;
+
+		if ( nRight > pBoundRect->right )
+			pBoundRect->right = (int)nRight;
+
+		if ( nBottom > pBoundRect->bottom )
+			pBoundRect->bottom = (int)nBottom;
+	}
+
+	pRect->left 	= (int)nX;
+	pRect->top		= (int)nY;
+	pRect->right	= (int)nRight;
+	pRect->bottom	= (int)nBottom;
+=====================================================================
+Found a 25 line (174 tokens) duplication in the following files: 
+Starting at line 1129 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 1233 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+								nTemp = pLutFrac[ nY ];
+
+								lXR1 = aCol1.GetRed() - ( lXR0 = aCol0.GetRed() );
+								lXG1 = aCol1.GetGreen() - ( lXG0 = aCol0.GetGreen() );
+								lXB1 = aCol1.GetBlue() - ( lXB0 = aCol0.GetBlue() );
+
+								aCol0.SetRed( (BYTE) ( ( lXR1 * nTemp + ( lXR0 << 10 ) ) >> 10 ) );
+								aCol0.SetGreen( (BYTE) ( ( lXG1 * nTemp + ( lXG0 << 10 ) ) >> 10 ) );
+								aCol0.SetBlue( (BYTE) ( ( lXB1 * nTemp + ( lXB0 << 10 ) ) >> 10 ) );
+
+								pWriteAcc->SetPixel( nY, nX, aCol0 );
+							}
+						}
+					}
+				}
+
+				delete[] pLutInt;
+				delete[] pLutFrac;
+				bRet = TRUE;
+			}
+
+			ReleaseAccess( pReadAcc );
+			aNewBmp.ReleaseAccess( pWriteAcc );
+
+			if( bRet )
+=====================================================================
+Found a 50 line (174 tokens) duplication in the following files: 
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_stgelems.cxx
+Starting at line 803 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_stgelems.cxx
+
+  m_xWrappedInputStream( xStreamToWrap->getInputStream(), uno::UNO_QUERY ),
+  m_xWrappedComponent( xStreamToWrap, uno::UNO_QUERY ),
+  m_xWrappedTypeProv( xStreamToWrap, uno::UNO_QUERY )
+{
+    OSL_ENSURE( m_xWrappedStream.is(),
+                "OutputStream::OutputStream: No stream to wrap!" );
+
+    OSL_ENSURE( m_xWrappedComponent.is(),
+                "OutputStream::OutputStream: No component to wrap!" );
+
+    OSL_ENSURE( m_xWrappedTypeProv.is(),
+                "OutputStream::OutputStream: No Type Provider!" );
+
+    // Use proxy factory service to create aggregatable proxy.
+    try
+    {
+        uno::Reference< reflection::XProxyFactory > xProxyFac(
+            xSMgr->createInstance(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+                    "com.sun.star.reflection.ProxyFactory" ) ) ),
+            uno::UNO_QUERY );
+        if ( xProxyFac.is() )
+        {
+            m_xAggProxy = xProxyFac->createProxy( m_xWrappedStream );
+        }
+    }
+    catch ( uno::Exception const & )
+    {
+        OSL_ENSURE( false, "OutputStream::OutputStream: Caught exception!" );
+    }
+
+    OSL_ENSURE( m_xAggProxy.is(),
+            "OutputStream::OutputStream: Wrapped stream cannot be aggregated!" );
+
+    if ( m_xAggProxy.is() )
+    {
+        osl_incrementInterlockedCount( &m_refCount );
+		{
+			// Solaris compiler problem:
+			// Extra block to enforce destruction of temporary object created
+            // in next statement _before_ osl_decrementInterlockedCount is
+            // called.  Otherwise 'this' will destroy itself even before ctor
+            // is completed (See impl. of XInterface::release())!
+
+        	m_xAggProxy->setDelegator(
+				static_cast< cppu::OWeakObject * >( this ) );
+		}
+        osl_decrementInterlockedCount( &m_refCount );
+    }
+}
+=====================================================================
+Found a 36 line (174 tokens) duplication in the following files: 
+Starting at line 1768 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 2085 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                                -1 ) ),
+            xEnv );
+        // Unreachable
+    }
+
+	// Is source not a parent of me / not me?
+    rtl::OUString aId = m_xIdentifier->getContentIdentifier();
+	sal_Int32 nPos = aId.lastIndexOf( '/' );
+	if ( nPos != ( aId.getLength() - 1 ) )
+	{
+		// No trailing slash found. Append.
+        aId += rtl::OUString::createFromAscii( "/" );
+	}
+
+	if ( rInfo.SourceURL.getLength() <= aId.getLength() )
+	{
+		if ( aId.compareTo(
+				rInfo.SourceURL, rInfo.SourceURL.getLength() ) == 0 )
+        {
+            uno::Any aProps
+                = uno::makeAny(beans::PropertyValue(
+                                      rtl::OUString(
+                                          RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                      -1,
+                                      uno::makeAny( rInfo.SourceURL ),
+                                      beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_RECURSIVE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                xEnv,
+                rtl::OUString::createFromAscii(
+                    "Target is equal to or is a child of source!" ),
+                this );
+            // Unreachable
+        }
+	}
+=====================================================================
+Found a 36 line (174 tokens) duplication in the following files: 
+Starting at line 3447 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 3500 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+							   _HTMLAttr **ppAttr3, const SfxPoolItem *pItem3 )
+{
+	String aId, aStyle, aClass, aLang, aDir;
+
+	const HTMLOptions *pOptions = GetOptions();
+	for( USHORT i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		switch( pOption->GetToken() )
+		{
+		case HTML_O_ID:
+			aId = pOption->GetString();
+			break;
+		case HTML_O_STYLE:
+			aStyle = pOption->GetString();
+			break;
+		case HTML_O_CLASS:
+			aClass = pOption->GetString();
+			break;
+		case HTML_O_LANG:
+			aLang = pOption->GetString();
+			break;
+		case HTML_O_DIR:
+			aDir = pOption->GetString();
+			break;
+		}
+	}
+
+	// einen neuen Kontext anlegen
+	_HTMLAttrContext *pCntxt = new _HTMLAttrContext( nToken );
+
+	// Styles parsen
+	if( HasStyleOptions( aStyle, aId, aClass, &aLang, &aDir ) )
+	{
+		SfxItemSet aItemSet( pDoc->GetAttrPool(), pCSS1Parser->GetWhichMap() );
+		SvxCSS1PropertyInfo aPropInfo;
+=====================================================================
+Found a 15 line (174 tokens) duplication in the following files: 
+Starting at line 2062 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1793 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] =
+{
+	{ { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
+};
+static const SvxMSDffVertPair mso_sptActionButtonHomeVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 10800, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },
+=====================================================================
+Found a 17 line (174 tokens) duplication in the following files: 
+Starting at line 639 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 606 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 68, 10800 }, { 88, 4 MSO_I }, { 88, 3 MSO_I },	// ccp
+	{ 88, 0 MSO_I },									// p
+	{ 88, 2 MSO_I }, { 68, 0 }, { 44, 0 },				// ccp
+	{ 44, 0 },											// p
+	{ 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },			// ccp
+	{ 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I },	// ccp
+	{ 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I },	// ccp
+	{ 88, 2 MSO_I },{ 68, 0 }, { 44, 0 }				// ccp
+};
+static const sal_uInt16 mso_sptCanSegm[] =
+{
+	0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000,
+	0x4000, 0x2004, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptCanCalc[] =
+{
+	{ 0x2001, DFF_Prop_adjustValue, 1, 4 },		// 1/4
+=====================================================================
+Found a 24 line (174 tokens) duplication in the following files: 
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptRightTriangleVert[] =
+{
+	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
+{
+	{ { 1900, 12700 }, { 12700, 19700 } }
+};
+static const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
+{
+	{ 10800, 0 }, { 5400, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 16200, 10800 }
+};
+static const mso_CustomShape msoRightTriangle =
+{
+	(SvxMSDffVertPair*)mso_sptRightTriangleVert, sizeof( mso_sptRightTriangleVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0, 
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptRightTriangleTextRect, sizeof( mso_sptRightTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptRightTriangleGluePoints, sizeof( mso_sptRightTriangleGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 37 line (174 tokens) duplication in the following files: 
+Starting at line 258 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linksrc.cxx
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linksrc.cxx
+
+				p->xSink->DataChanged( sDataMimeType, aVal );
+
+				if( p->nAdviseModes & ADVISEMODE_ONLYONCE )
+				{
+					USHORT nFndPos = pImpl->aArr.GetPos( p );
+					if( USHRT_MAX != nFndPos )
+						pImpl->aArr.DeleteAndDestroy( nFndPos );
+				}
+
+			}
+		}
+	}
+	if( pImpl->pTimer )
+	{
+		delete pImpl->pTimer;
+		pImpl->pTimer = NULL;
+	}
+	pImpl->aDataMimeType.Erase();
+}
+
+void SvLinkSource::NotifyDataChanged()
+{
+	if( pImpl->nTimeout )
+		StartTimer( &pImpl->pTimer, this, pImpl->nTimeout ); // Timeout neu
+	else
+	{
+		SvLinkSource_EntryIter_Impl aIter( pImpl->aArr );
+		for( SvLinkSource_Entry_ImplPtr p = aIter.Curr(); p; p = aIter.Next() )
+			if( p->bIsDataSink )
+			{
+				Any aVal;
+				if( ( p->nAdviseModes & ADVISEMODE_NODATA ) ||
+					GetData( aVal, p->aDataMimeType, TRUE ) )
+				{
+					p->xSink->DataChanged( p->aDataMimeType, aVal );
+
+					if( p->nAdviseModes & ADVISEMODE_ONLYONCE )
+=====================================================================
+Found a 30 line (174 tokens) duplication in the following files: 
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/drwtrans.cxx
+Starting at line 809 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+			xStream->SetBufferSize( 16348 );
+
+			// #108584#
+			// for the changed pool defaults from drawing layer pool set those
+			// attributes as hard attributes to preserve them for saving
+			const SfxItemPool& rItemPool = pModel->GetItemPool();
+			const SvxFontHeightItem& rDefaultFontHeight = (const SvxFontHeightItem&)rItemPool.GetDefaultItem(EE_CHAR_FONTHEIGHT);
+
+			// SW should have no MasterPages
+			DBG_ASSERT(0L == pModel->GetMasterPageCount(), "SW with MasterPages (!)");
+
+			for(sal_uInt16 a(0); a < pModel->GetPageCount(); a++)
+			{
+				const SdrPage* pPage = pModel->GetPage(a);
+				SdrObjListIter aIter(*pPage, IM_DEEPNOGROUPS);
+
+				while(aIter.IsMore())
+				{
+					SdrObject* pObj = aIter.Next();
+					const SvxFontHeightItem& rItem = (const SvxFontHeightItem&)pObj->GetMergedItem(EE_CHAR_FONTHEIGHT);
+
+					if(rItem.GetHeight() == rDefaultFontHeight.GetHeight())
+					{
+						pObj->SetMergedItem(rDefaultFontHeight);
+					}
+				}
+			}
+
+			{
+				com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> xDocOut( new utl::OOutputStreamWrapper( *xStream ) );
+=====================================================================
+Found a 28 line (174 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/rsc/source/res/rscmgr.cxx
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/rsc/source/res/rscmgr.cxx
+
+ERRTYPE RscMgr::WriteCxxHeader( const RSCINST & rInst, FILE * fOutput,
+								RscTypCont * pTC, const RscId & rId )
+{
+	RscMgrInst *	pClassData;
+	ERRTYPE 		aError;
+	ObjNode *		pObjNode = NULL;
+
+	pClassData = (RscMgrInst *)(rInst.pData + RscClass::Size());
+
+	if( pClassData->aRefId.IsId() )
+	{
+		pObjNode = rInst.pClass->GetObjNode( pClassData->aRefId );
+		if( !pObjNode && pTC )
+		{
+			ByteString	aMsg( pHS->getString( rInst.pClass->GetId() ).getStr() );
+			aMsg += ' ';
+			aMsg += pClassData->aRefId.GetName();
+			aError = WRN_MGR_REFNOTFOUND;
+			pTC->pEH->Error( aError, rInst.pClass, rId, aMsg.GetBuffer() );
+		}
+	}
+
+	if( pObjNode )
+	{
+		RSCINST 	aRefI;
+
+		aRefI = RSCINST( rInst.pClass, pObjNode->GetRscObj() );
+		aError = aRefI.pClass->WriteCxxHeader( aRefI, fOutput, pTC,
+=====================================================================
+Found a 12 line (174 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 38 line (174 tokens) duplication in the following files: 
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+    ATLASSERT( hr >= 0 );
+    if( !SUCCEEDED( hr ) )
+    {
+        delete[] hvs;
+        delete[] aVal;
+        delete[] aPropNames;
+        return hr;
+    }
+
+	USES_CONVERSION;
+    for( unsigned long ind = 0; ind < aNum; ind++ )
+    {
+		// all information from the 'object' tag is in strings
+		if( aVal[ind].vt == VT_BSTR && !strcmp( OLE2T( aPropNames[ind].pstrName ), "src" ) )
+		{
+            mCurFileUrl = wcsdup( aVal[ind].bstrVal );
+		}
+		else if( aVal[ind].vt == VT_BSTR 
+				&& !strcmp( OLE2T( aPropNames[ind].pstrName ), "readonly" ) )
+		{
+			if( !strcmp( OLE2T( aVal[ind].bstrVal ), "true" ) )
+			{
+				mbViewOnly = TRUE;
+			}
+			else
+			{
+				// the default value
+				mbViewOnly = FALSE;
+			}
+		}
+    }
+
+    delete[] hvs;
+    delete[] aVal;
+    delete[] aPropNames;
+
+	if( !mpDispFactory )
+		return hr;
+=====================================================================
+Found a 27 line (174 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propertysetinfo.cxx
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/property/propertysetinfo.cxx
+
+	mpMap->add( pMap );
+}
+
+void PropertySetInfo::remove( const rtl::OUString& aName ) throw()
+{
+	mpMap->remove( aName );
+}
+
+Sequence< ::com::sun::star::beans::Property > SAL_CALL PropertySetInfo::getProperties() throw(::com::sun::star::uno::RuntimeException)
+{
+	return mpMap->getProperties();
+}
+
+Property SAL_CALL PropertySetInfo::getPropertyByName( const ::rtl::OUString& aName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException)
+{
+	return mpMap->getPropertyByName( aName );
+}
+
+sal_Bool SAL_CALL PropertySetInfo::hasPropertyByName( const ::rtl::OUString& Name ) throw(::com::sun::star::uno::RuntimeException)
+{
+	return mpMap->hasPropertyByName( Name );
+}
+
+const PropertyMap* PropertySetInfo::getPropertyMap() const throw()
+{
+	return mpMap->getPropertyMap();
+}
+=====================================================================
+Found a 29 line (174 tokens) duplication in the following files: 
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	void ** pCppArgs  = (void **)malloc( 3 * sizeof(void *) * nParams );
+#else
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+#endif
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 28 line (174 tokens) duplication in the following files: 
+Starting at line 342 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+=====================================================================
+Found a 29 line (174 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	void ** pCppArgs  = (void **)malloc( 3 * sizeof(void *) * nParams );
+#else
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+#endif
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+=====================================================================
+Found a 39 line (174 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 342 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut 
+                    && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+
+                          // we need to know type of each param so that we know whether to use
+                          // gpr or fpr to pass in parameters:
+                          // Key: I - int, long, pointer, etc means pass in gpr
+                          //      B - byte value passed in gpr
+                          //      S - short value passed in gpr
+                          //      F - float value pass in fpr
+                          //      D - double value pass in fpr
+                          //      H - long long int pass in proper pairs of gpr (3,4) (5,6), etc
+                          //      X - indicates end of parameter description string
+
+		          case typelib_TypeClass_LONG:
+=====================================================================
+Found a 13 line (173 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/components/display.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/PropertySetMerger.cxx
+
+	virtual ~PropertySetMergerImpl();
+
+    // XPropertySet
+    virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(RuntimeException);
+    virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const Any& aValue ) throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException);
+    virtual Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& xListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& aListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException);
+
+    // XPropertyState
+    virtual PropertyState SAL_CALL getPropertyState( const OUString& PropertyName ) throw(UnknownPropertyException, RuntimeException);
+=====================================================================
+Found a 49 line (173 tokens) duplication in the following files: 
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+	{
+		//=================================================================
+		//
+		// Folder: Supported properties
+		//
+		//=================================================================
+
+        static const beans::Property aFolderPropertyInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory properties
+            ///////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard properties
+            ///////////////////////////////////////////////////////////
+            ///////////////////////////////////////////////////////////
+            // New properties
+            ///////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Storage" ) ),
+=====================================================================
+Found a 41 line (173 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const beans::Property aRootPropertyInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+            // Mandatory properties
+			///////////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			)
+			///////////////////////////////////////////////////////////////
+			// Optional standard properties
+			///////////////////////////////////////////////////////////////
+			///////////////////////////////////////////////////////////////
+			// New properties
+			///////////////////////////////////////////////////////////////
+		};
+        return uno::Sequence< beans::Property >( aRootPropertyInfoTable, 4 );
+=====================================================================
+Found a 53 line (173 tokens) duplication in the following files: 
+Starting at line 986 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 1057 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+			if (*pBegin == nClosing)
+			{
+				++rLength;
+				return ++pBegin;
+			}
+			else
+			{
+				sal_uInt32 c = *pBegin++;
+				switch (c)
+				{
+					case 0x0D: // CR
+						if (pBegin != pEnd && *pBegin == 0x0A) // LF
+							if (pEnd - pBegin >= 2 && isWhiteSpace(pBegin[1]))
+							{
+								++rLength;
+								rModify = true;
+								pBegin += 2;
+							}
+							else
+							{
+								rLength += 3;
+								rModify = true;
+								++pBegin;
+							}
+						else
+							++rLength;
+						break;
+
+					case '\\':
+						++rLength;
+						if (pBegin != pEnd)
+							if (startsWithLineBreak(pBegin, pEnd)
+								&& (pEnd - pBegin < 3
+									|| !isWhiteSpace(pBegin[2])))
+							{
+								rLength += 3;
+								rModify = true;
+								pBegin += 2;
+							}
+							else
+								++pBegin;
+						break;
+
+					default:
+						++rLength;
+						if (!isUSASCII(c))
+							rModify = true;
+						break;
+				}
+			}
+	}
+	return pBegin;
+}
+=====================================================================
+Found a 41 line (173 tokens) duplication in the following files: 
+Starting at line 2181 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/table/swtable.cxx
+Starting at line 2307 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/table/swtable.cxx
+
+		if( !pAttrSet || SFX_ITEM_SET != pAttrSet->
+			GetItemState( RES_CHRATR_COLOR, FALSE, &pItem ))
+			pItem = 0;
+
+		const Color* pOldNumFmtColor = rBox.GetSaveNumFmtColor();
+		const Color* pNewUserColor = pItem ? &((SvxColorItem*)pItem)->GetValue() : 0;
+
+		if( ( pNewUserColor && pOldNumFmtColor &&
+				*pNewUserColor == *pOldNumFmtColor ) ||
+			( !pNewUserColor && !pOldNumFmtColor ))
+		{
+			// User Color nicht veraendern aktuellen Werte setzen
+			// ggfs. die alte NumFmtColor loeschen
+			if( pCol )
+				// ggfs. die Farbe setzen
+				pTNd->SwCntntNode::SetAttr( SvxColorItem( *pCol, RES_CHRATR_COLOR ));
+			else if( pItem )
+			{
+				pNewUserColor = rBox.GetSaveUserColor();
+				if( pNewUserColor )
+					pTNd->SwCntntNode::SetAttr( SvxColorItem( *pNewUserColor, RES_CHRATR_COLOR ));
+				else
+					pTNd->SwCntntNode::ResetAttr( RES_CHRATR_COLOR );
+			}
+		}
+		else
+		{
+			// User Color merken, ggfs. die NumFormat Color setzen, aber
+			// nie die Farbe zurueck setzen
+			rBox.SetSaveUserColor( pNewUserColor );
+
+			if( pCol )
+				// ggfs. die Farbe setzen
+				pTNd->SwCntntNode::SetAttr( SvxColorItem( *pCol, RES_CHRATR_COLOR ));
+
+		}
+		rBox.SetSaveNumFmtColor( pCol );
+
+
+		// vertikale Ausrichtung umsetzen
+		if( bChgAlign &&
+=====================================================================
+Found a 10 line (173 tokens) duplication in the following files: 
+Starting at line 2607 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2667 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
+	{ 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I },
+=====================================================================
+Found a 18 line (173 tokens) duplication in the following files: 
+Starting at line 846 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+		TestData aRet, aRet2;
+		aRet.Hyper = xLBT->getHyper();
+		aRet.UHyper = xLBT->getUHyper();
+		aRet.Float = xLBT->getFloat();
+		aRet.Double = xLBT->getDouble();
+		aRet.Byte = xLBT->getByte();
+		aRet.Char = xLBT->getChar();
+		aRet.Bool = xLBT->getBool();
+		aRet.Short = xLBT->getShort();
+		aRet.UShort = xLBT->getUShort();
+		aRet.Long = xLBT->getLong();
+		aRet.ULong = xLBT->getULong();
+		aRet.Enum = xLBT->getEnum();
+		aRet.String = xLBT->getString();
+		aRet.Interface = xLBT->getInterface();
+		aRet.Any = xLBT->getAny();
+		aRet.Sequence = xLBT->getSequence();
+		aRet2 = xLBT->getStruct();
+=====================================================================
+Found a 8 line (173 tokens) duplication in the following files: 
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LAYOUT), 			WID_PAGE_LAYOUT,	&::getCppuType((const sal_Int16*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),		WID_PAGE_LDBITMAP,	&ITYPE( awt::XBitmap),						    beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),		WID_PAGE_LDNAME,	&::getCppuType((const OUString*)0),				beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER),			WID_PAGE_NUMBER,	&::getCppuType((const sal_Int16*)0),			beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION),		WID_PAGE_ORIENT,	&::getCppuType((const view::PaperOrientation*)0),0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH),			WID_PAGE_WIDTH,		&::getCppuType((const sal_Int32*)0),			0,	0},
+=====================================================================
+Found a 14 line (173 tokens) duplication in the following files: 
+Starting at line 1872 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 1916 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+									,	::getCppuType( ( const uno::Reference< embed::XRelationshipAccess >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+				}
+				else // if ( m_pData->m_nStorageType == ZIP_STORAGE )
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL )
+									,	::getCppuType( ( const uno::Reference< lang::XComponent >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+=====================================================================
+Found a 13 line (173 tokens) duplication in the following files: 
+Starting at line 1842 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 1892 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+			{
+				if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL )
+									,	::getCppuType( ( const uno::Reference< lang::XComponent >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XEncryptionProtectedSource >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+=====================================================================
+Found a 46 line (173 tokens) duplication in the following files: 
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sspellimp.cxx
+
+		}
+	}
+
+	return nRes;
+}
+
+
+sal_Bool SAL_CALL 
+	SpellChecker::isValid( const OUString& rWord, const Locale& rLocale, 
+			const PropertyValues& rProperties ) 
+		throw(IllegalArgumentException, RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+ 	if (rLocale == Locale()  ||  !rWord.getLength())
+		return TRUE;
+
+	if (!hasLocale( rLocale ))
+#ifdef LINGU_EXCEPTIONS
+		throw( IllegalArgumentException() );
+#else
+		return TRUE;
+#endif
+
+	// Get property values to be used.
+	// These are be the default values set in the SN_LINGU_PROPERTIES
+	// PropertySet which are overridden by the supplied ones from the
+	// last argument.
+	// You'll probably like to use a simplier solution than the provided
+	// one using the PropertyHelper_Spell.
+	PropertyHelper_Spell &rHelper = GetPropHelper();
+	rHelper.SetTmpPropVals( rProperties );
+
+	INT16 nFailure = GetSpellFailure( rWord, rLocale );
+	if (nFailure != -1)
+	{
+		INT16 nLang = LocaleToLanguage( rLocale );
+		// postprocess result for errors that should be ignored
+		if (   (!rHelper.IsSpellUpperCase()  && IsUpper( rWord, nLang ))
+			|| (!rHelper.IsSpellWithDigits() && HasDigits( rWord ))
+			|| (!rHelper.IsSpellCapitalization()
+				&&  nFailure == SpellFailure::CAPTION_ERROR)
+		)
+			nFailure = -1;
+	}
+	return nFailure == -1;
+=====================================================================
+Found a 9 line (173 tokens) duplication in the following files: 
+Starting at line 1488 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+=====================================================================
+Found a 12 line (173 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, // a000 - a7ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // a800 - afff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // b000 - b7ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // b800 - bfff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // c000 - c7ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // c800 - cfff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // d000 - d7ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // d800 - dfff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // e000 - e7ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // e800 - efff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // f000 - f7ff
+    0x00, 0x00, 0x00, 0x22, 0x02, 0x23, 0x24, 0x25, // f800 - ffff
+=====================================================================
+Found a 6 line (173 tokens) duplication in the following files: 
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 686 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f50 - 2f5f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f60 - 2f6f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f70 - 2f7f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f80 - 2f8f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f90 - 2f9f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2fa0 - 2faf
+=====================================================================
+Found a 6 line (173 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18f0 - 18ff
+=====================================================================
+Found a 6 line (173 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3080 - 308f
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+=====================================================================
+Found a 6 line (173 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x30a0, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x304B, 0x304B, 0x304B, 0x304B, 0x304B,  // 30A0
+	0x304B, 0x304B, 0x304B, 0x304B, 0x304B, 0x3055, 0x3055, 0x3055, 0x3055, 0x3055, 0x3055, 0x3055, 0x3055, 0x3055, 0x3055, 0x305F,  // 30B0
+	0x305F, 0x305F, 0x305F, 0x305F, 0x305F, 0x305F, 0x305F, 0x305F, 0x305F, 0x305F, 0x306A, 0x306A, 0x306A, 0x306A, 0x306A, 0x306F,  // 30C0
+	0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x306F, 0x307E, 0x307E,  // 30D0
+	0x307E, 0x307E, 0x307E, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3089, 0x3089, 0x3089, 0x3089, 0x3089, 0x308F, 0x308F,  // 30E0
+	0x308F, 0x308F, 0x308F, 0x308F, 0x3042, 0x304B, 0x304B, 0x308F, 0x308F, 0x308F, 0x308F, 0x30FB, 0x30FC, 0x30FD, 0x30FE, 0x30FF,  // 30F0
+=====================================================================
+Found a 6 line (173 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18f0 - 18ff
+=====================================================================
+Found a 18 line (173 tokens) duplication in the following files: 
+Starting at line 477 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+		TestData aRet, aRet2;
+		aRet.Hyper = xLBT->getHyper();
+		aRet.UHyper = xLBT->getUHyper();
+		aRet.Float = xLBT->getFloat();
+		aRet.Double = xLBT->getDouble();
+		aRet.Byte = xLBT->getByte();
+		aRet.Char = xLBT->getChar();
+		aRet.Bool = xLBT->getBool();
+		aRet.Short = xLBT->getShort();
+		aRet.UShort = xLBT->getUShort();
+		aRet.Long = xLBT->getLong();
+		aRet.ULong = xLBT->getULong();
+		aRet.Enum = xLBT->getEnum();
+		aRet.String = xLBT->getString();
+		aRet.Interface = xLBT->getInterface();
+		aRet.Any = xLBT->getAny();
+		aRet.Sequence = xLBT->getSequence();
+		aRet2 = xLBT->getStruct();
+=====================================================================
+Found a 18 line (173 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+		aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)65535);
+=====================================================================
+Found a 37 line (173 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/drawinglayer/DrawViewWrapper.cxx
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/DrawModelWrapper.cxx
+
+SfxObjectShell * lcl_GetParentObjectShell( const uno::Reference< frame::XModel > & xModel )
+{
+    SfxObjectShell* pResult = NULL;
+
+    try
+    {
+        uno::Reference< container::XChild > xChildModel( xModel, uno::UNO_QUERY );
+        if ( xChildModel.is() )
+        {
+            uno::Reference< lang::XUnoTunnel > xParentTunnel( xChildModel->getParent(), uno::UNO_QUERY );
+            if ( xParentTunnel.is() )
+            {
+                SvGlobalName aSfxIdent( SFX_GLOBAL_CLASSID );
+                pResult = reinterpret_cast< SfxObjectShell * >(
+                    xParentTunnel->getSomething( uno::Sequence< sal_Int8 >( aSfxIdent.GetByteSequence() ) ) );
+            }
+        }
+    }
+    catch( uno::Exception& )
+    {
+        // TODO: error handling
+    }
+
+    return pResult;
+}
+
+// this code is copied from sfx2/source/doc/objembed.cxx.  It is a workaround to
+// get the reference device (e.g. printer) fromthe parent document
+OutputDevice * lcl_GetParentRefDevice( const uno::Reference< frame::XModel > & xModel )
+{
+    SfxObjectShell * pParent = lcl_GetParentObjectShell( xModel );
+    if ( pParent )
+        return pParent->GetDocumentRefDev();
+    return NULL;
+}
+
+} // anonymous namespace
+=====================================================================
+Found a 27 line (173 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+=====================================================================
+Found a 43 line (172 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+                                              long* pGlyphIDs,
+                                              sal_uInt8* pEncoding,
+                                              sal_Int32* pWidths,
+                                              int nGlyphs,
+                                              FontSubsetInfo& rInfo // out parameter
+                                              );
+
+    // GetFontEncodingVector: a method to get the encoding map Unicode
+	// to font encoded character; this is only used for type1 fonts and
+    // may return NULL in case of unknown encoding vector
+    // if ppNonEncoded is set and non encoded characters (that is type1
+    // glyphs with only a name) exist it is set to the corresponding
+    // map for non encoded glyphs; the encoding vector contains -1
+    // as encoding for these cases
+    virtual const std::map< sal_Unicode, sal_Int32 >* GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** ppNonEncoded );
+
+    // GetEmbedFontData: gets the font data for a font marked
+    // embeddable by GetDevFontList or NULL in case of error
+    // parameters: pFont: describes the font in question
+    //             pWidths: the widths of all glyphs from char code 0 to 255
+    //                      pWidths MUST support at least 256 members;
+    //             rInfo: additional outgoing information
+    //             pDataLen: out parameter, contains the byte length of the returned buffer
+    virtual const void*	GetEmbedFontData( ImplFontData* pFont,
+                                          const sal_Unicode* pUnicodes,
+                                          sal_Int32* pWidths,
+                                          FontSubsetInfo& rInfo,
+                                          long* pDataLen );
+    // frees the font data again
+    virtual void			FreeEmbedFontData( const void* pData, long nDataLen );
+    virtual void            GetGlyphWidths( ImplFontData* pFont,
+                                            bool bVertical,
+                                            std::vector< sal_Int32 >& rWidths,
+                                            std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc );
+
+    virtual BOOL                    GetGlyphBoundRect( long nIndex, Rectangle& );
+    virtual BOOL                    GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& );
+
+    virtual SalLayout*              GetTextLayout( ImplLayoutArgs&, int nFallbackLevel );
+    virtual void					 DrawServerFontLayout( const ServerFontLayout& );
+
+    // Query the platform layer for control support
+    virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart );
+=====================================================================
+Found a 43 line (172 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const beans::Property aDocPropertyInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory properties
+            ///////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard properties
+            ///////////////////////////////////////////////////////////
+            ///////////////////////////////////////////////////////////
+            // New properties
+            ///////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DocumentModel" ) ),
+=====================================================================
+Found a 36 line (172 tokens) duplication in the following files: 
+Starting at line 1101 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 1583 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+
+					seqHandles2.realloc( nCount );
+					for ( i = 0; i < nCount; i++, pData++ )
+					{
+						sal_Int32 nPropertiesNeeded = 1;	// position is always needed
+						sal_Int32 nFlags = pData->nFlags;
+						if ( nFlags & MSDFF_HANDLE_FLAGS_MIRRORED_X )
+							nPropertiesNeeded++;
+						if ( nFlags & MSDFF_HANDLE_FLAGS_MIRRORED_Y )
+							nPropertiesNeeded++;
+						if ( nFlags & MSDFF_HANDLE_FLAGS_SWITCHED )
+							nPropertiesNeeded++;
+						if ( nFlags & MSDFF_HANDLE_FLAGS_POLAR )
+						{
+							nPropertiesNeeded++;
+							if ( nFlags & MSDFF_HANDLE_FLAGS_RADIUS_RANGE )
+							{
+								if ( pData->nRangeXMin != DEFAULT_MINIMUM_SIGNED_COMPARE )
+									nPropertiesNeeded++;
+								if ( pData->nRangeXMax != DEFAULT_MAXIMUM_SIGNED_COMPARE )
+									nPropertiesNeeded++;
+							}
+						}
+						else if ( nFlags & MSDFF_HANDLE_FLAGS_RANGE )
+						{
+							if ( pData->nRangeXMin != DEFAULT_MINIMUM_SIGNED_COMPARE )
+								nPropertiesNeeded++;
+							if ( pData->nRangeXMax != DEFAULT_MAXIMUM_SIGNED_COMPARE )
+								nPropertiesNeeded++;
+							if ( pData->nRangeYMin != DEFAULT_MINIMUM_SIGNED_COMPARE )
+								nPropertiesNeeded++;
+							if ( pData->nRangeYMax != DEFAULT_MAXIMUM_SIGNED_COMPARE )
+								nPropertiesNeeded++;
+						}
+
+						n = 0;
+						com::sun::star::beans::PropertyValues& rPropValues = seqHandles2[ i ];
+=====================================================================
+Found a 30 line (172 tokens) duplication in the following files: 
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+
+		aPoly = Polygon( aRect );
+		aPoly.Rotate( aCenter, rGradient.GetAngle() );
+
+		aPolyPoly.Replace( aPolyPoly.GetObject( 1 ), 0 );
+		aPolyPoly.Replace( aPoly, 1 );
+
+		PolyPolygon aTempPolyPoly = aPolyPoly;
+		aTempPolyPoly.Clip( aClipRect );
+		aDrawPolyPolyRecordHdl.Call(&aTempPolyPoly);
+
+		// Farben aendern
+		nRed   += nStepRed;
+		nGreen += nStepGreen;
+		nBlue  += nStepBlue;
+
+		nRed    = MinMax( nRed,   0, 0xFF );
+		nGreen  = MinMax( nGreen, 0, 0xFF );
+		nBlue   = MinMax( nBlue,  0, 0xFF );
+	}
+
+	aCol = Color( (BYTE) nRed, (BYTE) nGreen, (BYTE) nBlue );
+	aSetFillInBrushRecordHdl.Call(&aCol);
+
+	aPoly = aPolyPoly.GetObject( 1 );
+	if ( !aPoly.GetBoundRect().IsEmpty() )
+	{
+		aPoly.Clip( aClipRect );
+		aDrawPolyRecordHdl.Call(&aPoly);
+	}
+}
+=====================================================================
+Found a 25 line (172 tokens) duplication in the following files: 
+Starting at line 896 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 977 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+ScXMLChangeDeletionContext::ScXMLChangeDeletionContext(  ScXMLImport& rImport,
+											  USHORT nPrfx,
+				   	  						  const ::rtl::OUString& rLName,
+									  		const uno::Reference<xml::sax::XAttributeList>& xAttrList,
+											ScXMLChangeTrackingImportHelper* pTempChangeTrackingImportHelper ) :
+	SvXMLImportContext( rImport, nPrfx, rLName ),
+	pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
+{
+    sal_uInt32 nID(0);
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+				nID = pChangeTrackingImportHelper->GetIDFromString(sValue);
+		}
+	}
+	pChangeTrackingImportHelper->AddDeleted(nID);
+=====================================================================
+Found a 12 line (172 tokens) duplication in the following files: 
+Starting at line 1690 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1751 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                  "\x1B(B"),
+              { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
+                0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
+                0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
+                0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
+                0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
+                0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
+                0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
+                0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
+                0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
+                0x2229,0x222A },
+              83,
+=====================================================================
+Found a 49 line (172 tokens) duplication in the following files: 
+Starting at line 1777 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT8 );
+			::osl::SocketAddr saLocalSocketAddr;
+			
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+
+			sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
+			::rtl::OUString suError1 = ::rtl::OUString::createFromAscii("Socket bind fail:") + sSocket.getErrorAsString();
+			CPPUNIT_ASSERT_MESSAGE( suError1, sal_True == bOK1 );
+			
+			sSocket.getLocalAddr( saLocalSocketAddr );
+			
+			sal_Bool bOK = compareUString( saLocalSocketAddr.getHostname( 0 ), sSocket.getLocalHost() ) ;
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for getLocalAddr function: first create a new socket, then a socket address, bind them, and check the address.", 
+									sal_True == bOK );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( getLocalAddr );
+		CPPUNIT_TEST( getLocalAddr_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getLocalAddr
+
+	
+	/** testing the method:
+		inline sal_Int32	SAL_CALL getLocalPort() const;
+	*/
+	
+	class getLocalPort : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void getLocalPort_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT7 );  // aHostIp1 localhost
+=====================================================================
+Found a 54 line (172 tokens) duplication in the following files: 
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/pipe.c
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/pipe.c
+
+	return (nBytes);
+}
+
+sal_Int32 SAL_CALL osl_writePipe( oslPipe pPipe, const void *pBuffer , sal_Int32 n )
+{
+	/* loop until all desired bytes were send or an error occured */
+	sal_Int32 BytesSend= 0;
+	sal_Int32 BytesToSend= n;
+
+	OSL_ASSERT(pPipe);
+	while (BytesToSend > 0) 
+	{
+		sal_Int32 RetVal;
+
+		RetVal= osl_sendPipe(pPipe, pBuffer, BytesToSend);
+
+		/* error occured? */
+		if(RetVal <= 0)
+		{
+			break;
+		}
+
+		BytesToSend -= RetVal;
+		BytesSend += RetVal;
+		pBuffer= (sal_Char*)pBuffer + RetVal;
+	}
+
+	return BytesSend;   
+}
+
+sal_Int32 SAL_CALL osl_readPipe( oslPipe pPipe, void *pBuffer , sal_Int32 n )
+{
+	/* loop until all desired bytes were read or an error occured */
+	sal_Int32 BytesRead= 0;
+	sal_Int32 BytesToRead= n;
+
+	OSL_ASSERT( pPipe );
+	while (BytesToRead > 0) 
+	{
+		sal_Int32 RetVal;
+		RetVal= osl_receivePipe(pPipe, pBuffer, BytesToRead);
+
+		/* error occured? */
+		if(RetVal <= 0)
+		{
+			break;
+		}
+
+		BytesToRead -= RetVal;
+		BytesRead += RetVal;
+		pBuffer= (sal_Char*)pBuffer + RetVal;
+	}
+	return BytesRead;
+}
+=====================================================================
+Found a 31 line (172 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/javaunohelper/source/javaunohelper.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/javaunohelper/source/javaunohelper.cxx
+
+	jobject joSLL_cpp = 0;
+	
+	oslModule lib = osl_loadModule( aLibName.pData, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL );
+	if (lib)
+	{
+		// ========================= LATEST VERSION =========================
+		OUString aGetEnvName( RTL_CONSTASCII_USTRINGPARAM(COMPONENT_GETENV) );
+		oslGenericFunction pSym =
+            osl_getFunctionSymbol( lib, aGetEnvName.pData );
+		if (pSym)
+		{
+			Environment java_env, loader_env;
+            
+			const sal_Char * pEnvTypeName = 0;
+			(*((component_getImplementationEnvironmentFunc)pSym))(
+                &pEnvTypeName, (uno_Environment **)&loader_env );
+
+            if (! loader_env.is())
+            {
+                OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+				uno_getEnvironment( (uno_Environment **)&loader_env, aEnvTypeName.pData, 0 );
+            }
+            
+            // create vm access
+            ::rtl::Reference< ::jvmaccess::UnoVirtualMachine > vm_access(
+                ::javaunohelper::create_vm_access( pJEnv, loader ) );
+            OUString java_env_name = OUSTR(UNO_LB_JAVA);
+            uno_getEnvironment(
+                (uno_Environment **)&java_env, java_env_name.pData, vm_access.get() );
+			
+			OUString aGetFactoryName( RTL_CONSTASCII_USTRINGPARAM(COMPONENT_GETFACTORY) );
+=====================================================================
+Found a 49 line (172 tokens) duplication in the following files: 
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipbm/ipbm.cxx
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipbm/ipbm.cxx
+
+					nRGB[ 0 ] = nRGB[ 1 ] = nRGB[ 2 ] = 0;
+					if ( nWidth == mnWidth )
+					{
+						nWidth = 0;
+						if ( ++nHeight == mnHeight )
+							bFinished = TRUE;
+						ImplCallback( (USHORT) ( ( 100 * nHeight ) / mnHeight ) );	// processing output in percent
+					}
+					continue;
+				}
+
+				if ( mpPBM->IsEof() || mpPBM->GetError() )
+					return FALSE;
+
+				*mpPBM >> nDat;
+
+				if ( nDat == '#' )
+				{
+					mbRemark = TRUE;
+					if ( bPara )
+					{
+						bPara = FALSE;
+						nCount++;
+					}
+					continue;
+				}
+				else if ( ( nDat == 0x0d ) || ( nDat == 0x0a ) )
+				{
+					mbRemark = FALSE;
+					if ( bPara )
+					{
+						bPara = FALSE;
+						nCount++;
+					}
+					continue;
+				}
+
+				if ( nDat == 0x20 || nDat == 0x09 )
+				{
+					if ( bPara )
+					{
+						bPara = FALSE;
+						nCount++;
+					}
+					continue;
+				}
+				if ( nDat >= '0' && nDat <= '9' )
+				{
+					bPara = TRUE;
+=====================================================================
+Found a 34 line (172 tokens) duplication in the following files: 
+Starting at line 1765 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/bibliography/datman.cxx
+Starting at line 1810 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/bibliography/datman.cxx
+
+void BibDataManager::RemoveMeAsUidListener()
+{
+try
+{
+	Reference< XNameAccess >  xFields = getColumns( m_xForm );
+	if (!xFields.is())
+		return;
+
+
+	Sequence< ::rtl::OUString > aFields(xFields->getElementNames());
+	const ::rtl::OUString* pFields = aFields.getConstArray();
+	sal_Int32 nCount=aFields.getLength();
+	String StrUID(C2S(STR_UID));
+	::rtl::OUString theFieldName;
+	for( sal_Int32 i=0; i<nCount; i++ )
+	{
+		String aName= pFields[i];
+
+		if(aName.EqualsIgnoreCaseAscii(StrUID))
+		{
+			theFieldName=pFields[i];
+			break;
+		}
+	}
+
+	if(theFieldName.getLength()>0)
+	{
+		Reference< XPropertySet >  xPropSet;
+		Any aElement;
+
+		aElement = xFields->getByName(theFieldName);
+		xPropSet = *(Reference< XPropertySet > *)aElement.getValue();
+
+		xPropSet->removePropertyChangeListener(FM_PROP_VALUE, this);
+=====================================================================
+Found a 64 line (172 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/workbench/XTDo.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testcopy/XTDataObject.cxx
+
+CXTDataObject::~CXTDataObject( )
+{
+}
+
+//------------------------------------------------------------------------
+// IUnknown->QueryInterface
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::QueryInterface( REFIID iid, LPVOID* ppvObject )
+{	
+	OSL_ASSERT( NULL != ppvObject );
+
+	if ( NULL == ppvObject )
+		return E_INVALIDARG;
+
+	HRESULT hr = E_NOINTERFACE;
+
+	*ppvObject = NULL;
+
+	if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IDataObject ) == iid ) )
+	{
+		*ppvObject = static_cast< IUnknown* >( this );
+		( (LPUNKNOWN)*ppvObject )->AddRef( );
+		hr = S_OK;
+	}
+
+	return hr;
+}
+
+//------------------------------------------------------------------------
+// IUnknown->AddRef
+//------------------------------------------------------------------------
+
+STDMETHODIMP_(ULONG) CXTDataObject::AddRef( )
+{
+	return static_cast< ULONG >( InterlockedIncrement( &m_nRefCnt ) );
+}
+
+//------------------------------------------------------------------------
+// IUnknown->Release
+//------------------------------------------------------------------------
+
+STDMETHODIMP_(ULONG) CXTDataObject::Release( )
+{
+	// we need a helper variable because it's
+	// not allowed to access a member variable
+	// after an object is destroyed
+	ULONG nRefCnt = static_cast< ULONG >( InterlockedDecrement( &m_nRefCnt ) );
+
+	if ( 0 == nRefCnt )
+	{		
+		delete this;
+	}
+
+	return nRefCnt;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->GetData
+// warning: 'goto' ahead (to easy error handling without using exceptions)
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::GetData(LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium )
+{	
+=====================================================================
+Found a 31 line (171 tokens) duplication in the following files: 
+Starting at line 415 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_aa.h
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_bin.h
+
+                        unsigned(m_scanlines[i].num_spans) * sizeof(int16) * 2; // X, span_len
+            }
+            return size;
+        }
+
+
+        //---------------------------------------------------------------
+        static void write_int16(int8u* dst, int16 val)
+        {
+            dst[0] = ((const int8u*)&val)[0];
+            dst[1] = ((const int8u*)&val)[1];
+        }
+
+
+        //---------------------------------------------------------------
+        void serialize(int8u* data) const
+        {
+            unsigned i;
+
+            write_int16(data, int16u(min_x())); // min_x
+            data += sizeof(int16u);
+            write_int16(data, int16u(min_y())); // min_y
+            data += sizeof(int16u);
+            write_int16(data, int16u(max_x())); // max_x
+            data += sizeof(int16u);
+            write_int16(data, int16u(max_y())); // max_y
+            data += sizeof(int16u);
+
+            for(i = 0; i < m_scanlines.size(); ++i)
+            {
+                const scanline_data& sl_this = m_scanlines[i];
+=====================================================================
+Found a 28 line (171 tokens) duplication in the following files: 
+Starting at line 720 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+Starting at line 1077 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_outline_aa.h
+
+                while(--base_type::m_step >= -base_type::m_max_extent);
+            }
+            else
+            {
+                do
+                {
+                    --base_type::m_li;
+                    base_type::m_x -= lp.inc;
+                    base_type::m_y = (base_type::m_lp->y1 + base_type::m_li.y()) >> line_subpixel_shift;
+
+                    if(lp.inc > 0) m_di.dec_x(base_type::m_y - base_type::m_old_y);
+                    else           m_di.inc_x(base_type::m_y - base_type::m_old_y);
+
+                    base_type::m_old_y = base_type::m_y;
+
+                    dist1_start = dist2_start = m_di.dist_start(); 
+
+                    int dy = 0;
+                    if(dist1_start < 0) ++npix;
+                    do
+                    {
+                        dist1_start -= m_di.dx_start();
+                        dist2_start += m_di.dx_start();
+                        if(dist1_start < 0) ++npix;
+                        if(dist2_start < 0) ++npix;
+                        ++dy;
+                    }
+                    while(base_type::m_dist[dy] <= base_type::m_width);
+=====================================================================
+Found a 29 line (171 tokens) duplication in the following files: 
+Starting at line 1569 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 1632 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+sal_Bool SvXMLUnitConverter::convertPosition3D( drawing::Position3D& rPosition,
+    const OUString& rValue )
+{
+    if(!rValue.getLength() || rValue[0] != '(')
+        return sal_False;
+
+    sal_Int32 nPos(1L);
+    sal_Int32 nFound = rValue.indexOf(sal_Unicode(' '), nPos);
+
+    if(nFound == -1 || nFound <= nPos)
+        return sal_False;
+
+    OUString aContentX = rValue.copy(nPos, nFound - nPos);
+
+    nPos = nFound + 1;
+    nFound = rValue.indexOf(sal_Unicode(' '), nPos);
+
+    if(nFound == -1 || nFound <= nPos)
+        return sal_False;
+
+    OUString aContentY = rValue.copy(nPos, nFound - nPos);
+
+    nPos = nFound + 1;
+    nFound = rValue.indexOf(sal_Unicode(')'), nPos);
+
+    if(nFound == -1 || nFound <= nPos)
+        return sal_False;
+
+    OUString aContentZ = rValue.copy(nPos, nFound - nPos);
+=====================================================================
+Found a 15 line (171 tokens) duplication in the following files: 
+Starting at line 499 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 600 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+    BYTE* pDataAdr = aArr1 + 5;
+    Set_UInt32( pDataAdr, nDataStt );
+
+    pChpPlc->AppendFkpEntry(Strm().Tell(),
+                sizeof( aArr1 ), aArr1 );
+
+    static const sal_uInt8 aComboData1[] =
+    {
+        0,0,0,0,        // len of struct
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+=====================================================================
+Found a 30 line (171 tokens) duplication in the following files: 
+Starting at line 1292 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/itrcrsr.cxx
+Starting at line 1337 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/itrcrsr.cxx
+
+		nWidth = pPor->Width();
+        if ( pCurr->IsSpaceAdd() || pKanaComp )
+		{
+			if ( pPor->InSpaceGrp() && nSpaceAdd )
+			{
+				((SwTxtSizeInfo&)GetInfo()).SetIdx( nCurrStart );
+				nWidth += USHORT( pPor->CalcSpacing( nSpaceAdd, GetInfo() ) );
+			}
+
+            if( ( pPor->InFixMargGrp() && ! pPor->IsMarginPortion() ) ||
+                ( pPor->IsMultiPortion() && ((SwMultiPortion*)pPor)->HasTabulator() )
+              )
+			{
+                if ( pCurr->IsSpaceAdd() )
+                {
+                    if ( ++nSpaceIdx < pCurr->GetLLSpaceAddCount() )
+                        nSpaceAdd = pCurr->GetLLSpaceAdd( nSpaceIdx );
+                    else
+                        nSpaceAdd = 0;
+                }
+
+                if ( pKanaComp )
+                {
+                    if( nKanaIdx + 1 < pKanaComp->Count() )
+                        nKanaComp = (*pKanaComp)[++nKanaIdx];
+                    else
+                        nKanaComp = 0;
+                }
+			}
+		}
+=====================================================================
+Found a 44 line (171 tokens) duplication in the following files: 
+Starting at line 6005 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+
+									DFF_Prop_cropFromRight, 0 );
+
+		UINT32 nLineFlags = GetPropertyValue( DFF_Prop_fNoLineDrawDash );
+		pImpRec->eLineStyle = (nLineFlags & 8)
+							? (MSO_LineStyle)GetPropertyValue(
+												DFF_Prop_lineStyle,
+												mso_lineSimple )
+							: (MSO_LineStyle)USHRT_MAX;
+		pTextImpRec->eLineStyle = pImpRec->eLineStyle;
+
+		if( pImpRec->nShapeId )
+		{
+			// Import-Record-Liste ergaenzen
+			if( pOrgObj )
+			{
+				pImpRec->pObj = pOrgObj;
+				rImportData.aRecords.Insert( pImpRec );
+			}
+
+			if( pTextObj && (pOrgObj != pTextObj) )
+			{
+				// Modify ShapeId (must be unique)
+				pImpRec->nShapeId |= 0x8000000;
+				pTextImpRec->pObj = pTextObj;
+				rImportData.aRecords.Insert( pTextImpRec );
+			}
+
+			// Eintrag in Z-Order-Liste um Zeiger auf dieses Objekt ergaenzen
+			/*Only store objects which are not deep inside the tree*/
+			if( ( rObjData.nCalledByGroup == 0 )
+				||
+				( (rObjData.nSpFlags & SP_FGROUP)
+				 && (rObjData.nCalledByGroup < 2) )
+			  )
+				StoreShapeOrder( pImpRec->nShapeId,
+								( ( (ULONG)pImpRec->aTextId.nTxBxS ) << 16 )
+									+ pImpRec->aTextId.nSequence, pObj );
+		}
+		else
+			delete pImpRec;
+	}
+
+	return pObj;
+}
+=====================================================================
+Found a 23 line (171 tokens) duplication in the following files: 
+Starting at line 1498 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+Starting at line 1674 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+
+void FillAttrLB::SetVirtualDevice()
+{
+	if( aBitmap.GetSizePixel().Width() > 8 ||
+		aBitmap.GetSizePixel().Height() > 8 )
+	{
+		aVD.DrawBitmap( Point( 0, 0 ), Size( 32, 16 ), aBitmap );
+	}
+	else
+	{
+		aVD.DrawBitmap( Point( 0, 0 ), aBitmap );
+		aVD.DrawBitmap( Point( 8, 0 ), aBitmap );
+		aVD.DrawBitmap( Point( 16, 0 ), aBitmap );
+		aVD.DrawBitmap( Point( 24, 0 ), aBitmap );
+		aVD.DrawBitmap( Point( 0, 8 ), aBitmap );
+		aVD.DrawBitmap( Point( 8, 8 ), aBitmap );
+		aVD.DrawBitmap( Point( 16, 8 ), aBitmap );
+		aVD.DrawBitmap( Point( 24, 8 ), aBitmap );
+	}
+}
+
+/************************************************************************/
+
+void FillAttrLB::Fill( const XBitmapList* pList )
+=====================================================================
+Found a 42 line (171 tokens) duplication in the following files: 
+Starting at line 1221 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+Starting at line 4775 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+
+			aHelpURL, aLabel, nType, bIsVisible, nStyle, xSubMenu );
+
+        if ( bItem )
+        {
+            if ( nType == css::ui::ItemType::DEFAULT )
+            {
+				uno::Any a;
+				try
+				{
+					a = m_xCommandToLabelMap->getByName( aCommandURL );
+					bIsUserDefined = FALSE;
+				}
+				catch ( container::NoSuchElementException& )
+				{
+					bIsUserDefined = TRUE;
+				}
+
+				// If custom label not set retrieve it from the command
+				// to info service
+				if ( aLabel.equals( OUString() ) )
+				{
+					uno::Sequence< beans::PropertyValue > aPropSeq;
+					if ( a >>= aPropSeq )
+					{
+						for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
+						{
+							if ( aPropSeq[i].Name.equalsAscii( ITEM_DESCRIPTOR_LABEL ) )
+							{
+								aPropSeq[i].Value >>= aLabel;
+								break;
+							}
+						}
+					}
+				}
+
+                if ( xSubMenu.is() )
+                {
+					SvxConfigEntry* pEntry = new SvxConfigEntry(
+						aLabel, aCommandURL, TRUE );
+
+					pEntry->SetUserDefined( bIsUserDefined );
+                    pEntry->SetHelpURL( aHelpURL );
+=====================================================================
+Found a 25 line (171 tokens) duplication in the following files: 
+Starting at line 5044 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4615 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] =
+{
+	{ 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 },
+	{ 3600, 21600 }, { 0, 10800 }
+};
+static const sal_uInt16 mso_sptFlowChartDisplaySegm[] =
+{
+	0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] = 
+{
+	{ { 3600, 0 }, { 17800, 21600 } }
+};
+static const mso_CustomShape msoFlowChartDisplay =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartDisplayVert, sizeof( mso_sptFlowChartDisplayVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartDisplaySegm, sizeof( mso_sptFlowChartDisplaySegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartDisplayTextRect, sizeof( mso_sptFlowChartDisplayTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 25 line (171 tokens) duplication in the following files: 
+Starting at line 4525 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4115 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] =
+{
+	{ 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 },
+	{ 21600, 10800 }, { 18130, 21600 }
+};
+static const sal_uInt16 mso_sptFlowChartTerminatorSegm[] =
+{
+	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] = 
+{
+	{ { 1060, 3180 }, { 20540, 18420 } }
+};
+static const mso_CustomShape msoFlowChartTerminator =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartTerminatorVert, sizeof( mso_sptFlowChartTerminatorVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartTerminatorSegm, sizeof( mso_sptFlowChartTerminatorSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartTerminatorTextRect, sizeof( mso_sptFlowChartTerminatorTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 28 line (171 tokens) duplication in the following files: 
+Starting at line 478 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/imap2.cxx
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/imap2.cxx
+
+Point ImageMap::ImpReadNCSACoords( const char** ppStr )
+{
+	String	aStrX;
+	String	aStrY;
+	Point	aPt;
+	char	cChar = *(*ppStr)++;
+
+	while( NOTEOL( cChar ) && ( ( cChar < '0' ) || ( cChar > '9' ) ) )
+		cChar = *(*ppStr)++;
+
+	if ( NOTEOL( cChar ) )
+	{
+		while( NOTEOL( cChar ) && ( cChar >= '0' ) && ( cChar <= '9' ) )
+		{
+			aStrX += cChar;
+			cChar = *(*ppStr)++;
+		}
+
+		if ( NOTEOL( cChar ) )
+		{
+			while( NOTEOL( cChar ) && ( ( cChar < '0' ) || ( cChar > '9' ) ) )
+				cChar = *(*ppStr)++;
+
+			while( NOTEOL( cChar ) && ( cChar >= '0' ) && ( cChar <= '9' ) )
+			{
+				aStrY += cChar;
+				cChar = *(*ppStr)++;
+			}
+=====================================================================
+Found a 37 line (171 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/pastedlg.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/pastedlg.cxx
+
+			aTypeName = aDesc.maTypeName;
+		}
+
+		if( !aTypeName.Len() && !aSourceName.Len() )
+			aSourceName = String( ResId( STR_UNKNOWN_SOURCE, *SOAPP->GetResMgr() ) );
+	}
+
+	pDlg->ObjectLB().SetUpdateMode( TRUE );
+	pDlg->SelectObject();
+
+	if( aSourceName.Len() )
+	{
+		if( aTypeName.Len() )
+			aTypeName += '\n';
+
+		aTypeName += aSourceName;
+		aTypeName.ConvertLineEnd();
+	}
+
+	pDlg->ObjectSource().SetText( aTypeName );
+
+	SetDefault();
+
+	if( pDlg->Execute() )
+	{
+		bLink = pDlg->PasteLink().IsChecked();
+
+		if( pDlg->AsIconBox().IsChecked() )
+			nAspect = ASPECT_ICON;
+
+		nSelFormat  = (ULONG)pDlg->ObjectLB().GetEntryData( pDlg->ObjectLB().GetSelectEntryPos() );
+	}
+
+	delete pDlg;
+
+	return nSelFormat;
+}
+=====================================================================
+Found a 39 line (171 tokens) duplication in the following files: 
+Starting at line 382 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/registerextensions.cxx
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/registerextensions.cxx
+
+extern "C" UINT __stdcall RemoveExtensions(MSIHANDLE handle)
+{
+    std::_tstring mystr;
+
+    // Finding the product with the help of the propery FINDPRODUCT,
+    // that contains a Windows Registry key, that points to the install location.
+
+    TCHAR szValue[8192];
+    DWORD nValueSize = sizeof(szValue);
+    HKEY  hKey;
+    std::_tstring sInstDir;
+    
+    std::_tstring sProductKey = GetMsiProperty( handle, TEXT("FINDPRODUCT") );
+    // MessageBox( NULL, sProductKey.c_str(), "Titel", MB_OK );
+    
+    if ( ERROR_SUCCESS == RegOpenKey( HKEY_CURRENT_USER,  sProductKey.c_str(), &hKey ) )
+    {
+        if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+        {
+            sInstDir = szValue;
+        }
+        RegCloseKey( hKey );
+    }
+    else if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE,  sProductKey.c_str(), &hKey ) )
+    {
+        if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+        {
+            sInstDir = szValue;
+        }
+        RegCloseKey( hKey );
+    }
+    else
+    {
+        return ERROR_SUCCESS;
+    }
+
+    // Removing complete directory "share\uno_packages\cache"
+
+    std::_tstring sCacheDir = sInstDir + TEXT("share\\uno_packages\\cache");
+=====================================================================
+Found a 34 line (171 tokens) duplication in the following files: 
+Starting at line 637 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/ViewShellManager.cxx
+Starting at line 711 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/ViewShellManager.cxx
+
+void ViewShellManager::Implementation::DeactivateShell (const SfxShell& rShell)
+{
+    ::osl::MutexGuard aGuard (maMutex);
+
+    ActiveShellList::iterator iShell (::std::find_if (
+        maActiveViewShells.begin(),
+        maActiveViewShells.end(),
+        IsShell(&rShell)));
+    if (iShell != maActiveViewShells.end())
+    {
+        UpdateLock aLocker (*this);
+
+        ShellDescriptor aDescriptor(*iShell);
+        mrBase.GetDocShell()->Disconnect(dynamic_cast<ViewShell*>(aDescriptor.mpShell));
+        maActiveViewShells.erase(iShell);
+        TakeShellsFromStack(aDescriptor.mpShell);
+
+        // Deactivate sub shells.
+        SubShellList::iterator iList (maActiveSubShells.find(&rShell));
+        if (iList != maActiveSubShells.end())
+        {
+            SubShellSubList& rList (iList->second);
+            while ( ! rList.empty())
+                DeactivateSubShell(rShell, rList.front().mnId);
+        }
+
+        DestroyViewShell(aDescriptor);
+    }
+}
+
+
+
+
+void ViewShellManager::Implementation::ActivateSubShell (
+=====================================================================
+Found a 22 line (171 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleTableBase.cxx
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleTableBase.cxx
+
+sal_Int32 SAL_CALL ScAccessibleTableBase::getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
+    throw (uno::RuntimeException, lang::IndexOutOfBoundsException)
+{
+	ScUnoGuard aGuard;
+    IsObjectValid();
+
+    if ((nColumn > (maRange.aEnd.Col() - maRange.aStart.Col())) || (nColumn < 0) ||
+        (nRow > (maRange.aEnd.Row() - maRange.aStart.Row())) || (nRow < 0))
+        throw lang::IndexOutOfBoundsException();
+
+    sal_Int32 nCount(1); // the same cell
+	nRow += maRange.aStart.Row();
+	nColumn += maRange.aStart.Col();
+
+	if (mpDoc)
+	{
+		SCROW nEndRow(0);
+        SCCOL nEndCol(0);
+		if (mpDoc->ExtendMerge(static_cast<SCCOL>(nColumn), static_cast<SCROW>(nRow),
+			nEndCol, nEndRow, maRange.aStart.Tab()))
+        {
+		    if (nEndCol > nColumn)
+=====================================================================
+Found a 63 line (171 tokens) duplication in the following files: 
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+Starting at line 3381 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+			AcceptorThread myAcceptorThread( asSocketAssign, aHostIp1 );
+			myAcceptorThread.create();
+			
+			thread_sleep( 1 );
+			//when accepting, assign another socket to the socket, the thread will not be closed, so is blocking
+			asSocketAssign = asSocket;
+			
+			t_print("#asSocketAssign port number is %d\n", asSocketAssign.getLocalPort() );
+			
+			asSocketAssign.shutdown();
+			myAcceptorThread.join();
+						
+			CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.", 
+								myAcceptorThread.isOK()	== sal_True );
+			
+			
+#endif /* LINUX */
+		}
+		
+			
+		CPPUNIT_TEST_SUITE( operator_assign  );
+		CPPUNIT_TEST( assign_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class operator_assign
+#endif
+	
+	/** testing the method:
+		inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
+		inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection);
+		inline oslSocketResult SAL_CALL acceptConnection( StreamSocket&	Connection, SocketAddr & PeerAddr);
+	*/
+
+	class listen_accept : public CppUnit::TestFixture
+	{
+	public:
+		TimeValue *pTimeout;
+		::osl::AcceptorSocket asAcceptorSocket;
+		::osl::ConnectorSocket csConnectorSocket;
+		
+		
+		// initialization
+		void setUp( )
+		{
+			pTimeout  = ( TimeValue* )malloc( sizeof( TimeValue ) );
+			pTimeout->Seconds = 3;
+			pTimeout->Nanosec = 0;
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1);
+		//	sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			free( pTimeout );
+		//	sHandle = NULL;
+			asAcceptorSocket.close( );
+			csConnectorSocket.close( );
+		}
+
+	
+		void listen_accept_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
+=====================================================================
+Found a 38 line (171 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx
+
+        }
+    }
+    if (!bRt)
+        return false;
+
+    // init m_sLD_LIBRARY_PATH
+    OSL_ASSERT(m_sHome.getLength());
+    size = 0;
+    char const * const * arLDPaths = getLibraryPaths( & size);
+    vector<OUString> ld_paths = getVectorFromCharArray(arLDPaths, size);
+
+    char arSep[]= {SAL_PATHSEPARATOR, 0};
+    OUString sPathSep= OUString::createFromAscii(arSep);
+    bool bLdPath = true;
+    int c = 0;
+    for(i_path il = ld_paths.begin(); il != ld_paths.end(); il ++, c++)
+    {
+        OUString usAbsUrl= m_sHome + *il;
+        // convert to system path
+        OUString usSysPath;
+        if(File::getSystemPathFromFileURL(usAbsUrl, usSysPath) == File::E_None)
+        {
+
+            if(c > 0)
+                m_sLD_LIBRARY_PATH+= sPathSep;
+            m_sLD_LIBRARY_PATH+= usSysPath;
+        }
+        else
+        {
+            bLdPath = false;
+            break;
+        }
+    }
+    if (bLdPath == false)
+        return false;
+    
+    return true;
+}
+=====================================================================
+Found a 7 line (171 tokens) duplication in the following files: 
+Starting at line 1278 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30e0 - 30ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0,// 30f0 - 30ff
+=====================================================================
+Found a 7 line (171 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 701 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    19, 4, 4, 4, 4, 4,27,27,10,10,10, 0, 0, 0,27,27,// 3030 - 303f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3080 - 308f
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+=====================================================================
+Found a 6 line (171 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1450 - 145f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1460 - 146f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1470 - 147f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1480 - 148f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1490 - 149f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14a0 - 14af
+=====================================================================
+Found a 8 line (171 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 5, 0,// 0cd0 - 0cdf
+     5, 5, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,// 0ce0 - 0cef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0cf0 - 0cff
+
+     0, 0, 8, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5,// 0d00 - 0d0f
+     5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0d10 - 0d1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5,// 0d20 - 0d2f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 8, 8,// 0d30 - 0d3f
+=====================================================================
+Found a 7 line (171 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1390 - 139f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13a0 - 13af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13b0 - 13bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13c0 - 13cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13d0 - 13df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 13e0 - 13ef
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 13f0 - 13ff
+=====================================================================
+Found a 4 line (171 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0098 - 009f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 00a0 - 00a7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 00a8 - 00af
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0xf5, 0x0005}, {0x00, 0x0000}, {0x00, 0x0000}, // 00b0 - 00b7
+=====================================================================
+Found a 24 line (171 tokens) duplication in the following files: 
+Starting at line 1237 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+Starting at line 1310 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+Starting at line 1408 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+
+        css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pFilterCache->getAllContentHandlerNames();
+        css::uno::Sequence< ::rtl::OUString > lEncNames ( lNames )                              ;
+        sal_Int32                             nCount = lNames.getLength()                       ;
+        sal_Int32                             nItem  = 0                                        ;
+
+        XCDGenerator::impl_orderAlphabetical( lNames );
+
+        if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 )
+        {
+            ::rtl::OUString sName   ;
+            ::rtl::OUString sEncName;
+            for( nItem=0; nItem<nCount; ++nItem )
+            {
+                sName            = lNames[nItem]              ;
+                lEncNames[nItem] = impl_encodeSetName( sName );
+
+                m_aData.sNew2OldSCPStandard.appendAscii ( "org.openoffice.Office."  );
+                m_aData.sNew2OldSCPStandard.append      ( m_aData.sPackageStandard  );
+                m_aData.sNew2OldSCPStandard.append      ( CFG_PATH_SEPERATOR        );
+                m_aData.sNew2OldSCPStandard.append      ( sName                     );
+                m_aData.sNew2OldSCPStandard.appendAscii ( "\torg.openoffice.Office.");
+                m_aData.sNew2OldSCPStandard.append      ( m_aData.sPackageStandard  );
+                m_aData.sNew2OldSCPStandard.append      ( CFG_PATH_SEPERATOR        );
+                m_aData.sNew2OldSCPStandard.appendAscii ( "ContentHandler"          );
+=====================================================================
+Found a 31 line (171 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/menubarfactory.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/statusbarfactory.cxx
+
+    if ( aResourceURL.indexOf( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:resource/statusbar/" ))) != 0 )
+        throw IllegalArgumentException();
+    else
+    {
+        // Identify frame and determine document based ui configuration manager/module ui configuration manager
+        if ( xFrame.is() && !xConfigSource.is() )
+        {
+            bool bHasSettings( false );
+            Reference< XModel > xModel;
+
+            Reference< XController > xController = xFrame->getController();
+            if ( xController.is() )
+                xModel = xController->getModel();
+
+            if ( xModel.is() )
+            {
+                Reference< XUIConfigurationManagerSupplier > xUIConfigurationManagerSupplier( xModel, UNO_QUERY );
+                if ( xUIConfigurationManagerSupplier.is() )
+                {
+                    xCfgMgr = xUIConfigurationManagerSupplier->getUIConfigurationManager();
+                    bHasSettings = xCfgMgr->hasSettings( aResourceURL );
+                }
+            }
+
+            if ( !bHasSettings )
+            {
+                rtl::OUString aModuleIdentifier = m_xModuleManager->identify( Reference< XInterface >( xFrame, UNO_QUERY ));
+                if ( aModuleIdentifier.getLength() )
+                {
+                    Reference< ::com::sun::star::ui::XModuleUIConfigurationManagerSupplier > xModuleCfgSupplier(
+                        m_xServiceManager->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( 
+=====================================================================
+Found a 31 line (171 tokens) duplication in the following files: 
+Starting at line 1063 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+Starting at line 936 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+
+				if( maVDev.IsLineColor() || maVDev.IsFillColor() )
+				{
+					Polygon aPoly;
+
+					switch( nType )
+					{
+						case( META_ARC_ACTION ):
+						{
+							const MetaArcAction* pA = (const MetaArcAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_ARC );
+						}
+						break;
+
+						case( META_PIE_ACTION ):
+						{
+							const MetaPieAction* pA = (const MetaPieAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_PIE );
+						}
+						break;
+
+						case( META_CHORD_ACTION	):
+						{
+							const MetaChordAction* pA = (const MetaChordAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_CHORD );
+						}
+						break;
+						
+						case( META_POLYGON_ACTION ):
+							aPoly = ( (const MetaPolygonAction*) pAction )->GetPolygon();
+						break;
+					}
+=====================================================================
+Found a 26 line (171 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx
+
+                | IMPLEMENTS_PROPERTY_ACCESS),
+            css::uno::Sequence< rtl::OUString >())
+    {}
+
+    virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL acquire() throw () { OWeakObject::acquire(); }
+
+    virtual void SAL_CALL release() throw () { OWeakObject::release(); }
+
+    virtual void SAL_CALL dispose() throw (css::uno::RuntimeException) {
+        cppu::PropertySetMixin< css::lang::XComponent >::dispose();
+    }
+
+    virtual void SAL_CALL addEventListener(
+        css::uno::Reference< css::lang::XEventListener > const &)
+        throw (css::uno::RuntimeException)
+    {}
+
+    virtual void SAL_CALL removeEventListener(
+        css::uno::Reference< css::lang::XEventListener > const &)
+        throw (css::uno::RuntimeException)
+    {}
+
+private:
+=====================================================================
+Found a 32 line (171 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HViews.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YViews.cxx
+
+using namespace connectivity::mysql;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+using namespace dbtools;
+typedef connectivity::sdbcx::OCollection OCollection_TYPE;
+
+sdbcx::ObjectType OViews::createObject(const ::rtl::OUString& _rName)
+{
+	::rtl::OUString sCatalog,sSchema,sTable;
+	::dbtools::qualifiedNameComponents(m_xMetaData,
+										_rName,
+										sCatalog, 
+										sSchema, 
+										sTable,
+										::dbtools::eInDataManipulation);
+	return new ::connectivity::sdbcx::OView(isCaseSensitive(),
+							sTable,
+							m_xMetaData,
+							0,
+							::rtl::OUString(),
+							sSchema,
+							sCatalog
+							);
+}
+// -------------------------------------------------------------------------
+void OViews::impl_refresh(  ) throw(RuntimeException)
+{
+	static_cast<OMySQLCatalog&>(m_rParent).refreshTables();
+=====================================================================
+Found a 46 line (171 tokens) duplication in the following files: 
+Starting at line 234 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FStatement.cxx
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MStatement.cxx
+
+}
+// -------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::close(  ) throw(SQLException, RuntimeException)
+{
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+	}
+	dispose();
+}
+// -------------------------------------------------------------------------
+
+void OStatement_Base::reset() throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+
+	clearWarnings ();
+
+	if (m_xResultSet.get().is())
+		clearMyResultSet();
+}
+//--------------------------------------------------------------------
+// clearMyResultSet
+// If a ResultSet was created for this Statement, close it
+//--------------------------------------------------------------------
+
+void OStatement_Base::clearMyResultSet () throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+    try
+    {
+	    Reference<XCloseable> xCloseable;
+	    if ( ::comphelper::query_interface( m_xResultSet.get(), xCloseable ) )
+		    xCloseable->close();
+    }
+    catch( const DisposedException& ) { }
+
+    m_xResultSet = Reference< XResultSet >();
+}
+
+void OStatement_Base::createTable( )
+=====================================================================
+Found a 39 line (171 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NColumns.cxx
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KColumns.cxx
+
+sdbcx::ObjectType KabColumns::createObject(const ::rtl::OUString& _rName)
+{
+	Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(
+		Any(),
+		m_pTable->getSchema(),
+		m_pTable->getTableName(),
+		_rName);
+
+	sdbcx::ObjectType xRet = NULL;
+	if (xResult.is())
+	{
+		Reference< XRow > xRow(xResult,UNO_QUERY);
+
+		while (xResult->next())
+		{
+			if (xRow->getString(4) == _rName)
+			{
+				OColumn* pRet = new OColumn(
+						_rName,
+						xRow->getString(6),
+						xRow->getString(13),
+						xRow->getInt(11),
+						xRow->getInt(7),
+						xRow->getInt(9),
+						xRow->getInt(5),
+						sal_False,
+						sal_False,
+						sal_False,
+						sal_True);
+				xRet = pRet;
+				break;
+			}
+		}
+	}
+
+	return xRet;
+}
+// -------------------------------------------------------------------------
+void KabColumns::impl_refresh() throw(RuntimeException)
+=====================================================================
+Found a 34 line (171 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+	OFlatConnection* pConnection = (OFlatConnection*)m_pConnection;
+	if (pConnection->isHeaderLine())
+	{
+		while(bRead && !aHeaderLine.Len())
+		{
+			bRead = m_pFileStream->ReadByteStringLine(aHeaderLine,pConnection->getTextEncoding());
+		}
+	}
+
+	// read first row
+	QuotedTokenizedString aFirstLine;
+
+	bRead = m_pFileStream->ReadByteStringLine(aFirstLine,pConnection->getTextEncoding());
+
+	if (!pConnection->isHeaderLine() || !aHeaderLine.Len())
+	{
+		while(bRead && !aFirstLine.Len())
+		{
+			bRead = m_pFileStream->ReadByteStringLine(aFirstLine,pConnection->getTextEncoding());
+		}
+		// use first row as headerline because we need the number of columns
+		aHeaderLine = aFirstLine;
+	}
+	// column count
+	xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+
+	if(!m_aColumns.isValid())
+		m_aColumns = new OSQLColumns();
+	else
+		m_aColumns->clear();
+
+	m_aTypes.clear();
+	m_aPrecisions.clear();
+	m_aScales.clear();
+=====================================================================
+Found a 68 line (171 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BFunctions.cxx
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OFunctions.cxx
+
+{
+	T3SQLAllocHandle pODBC3SQLAllocHandle;
+T3SQLConnect pODBC3SQLConnect;
+T3SQLDriverConnect pODBC3SQLDriverConnect;
+T3SQLBrowseConnect pODBC3SQLBrowseConnect;
+T3SQLDataSources pODBC3SQLDataSources;
+T3SQLDrivers pODBC3SQLDrivers; 
+T3SQLGetInfo pODBC3SQLGetInfo;
+T3SQLGetFunctions pODBC3SQLGetFunctions;
+T3SQLGetTypeInfo pODBC3SQLGetTypeInfo;
+T3SQLSetConnectAttr pODBC3SQLSetConnectAttr;
+T3SQLGetConnectAttr pODBC3SQLGetConnectAttr;
+T3SQLSetEnvAttr pODBC3SQLSetEnvAttr;
+T3SQLGetEnvAttr pODBC3SQLGetEnvAttr;
+T3SQLSetStmtAttr pODBC3SQLSetStmtAttr;
+T3SQLGetStmtAttr pODBC3SQLGetStmtAttr;
+//T3SQLSetDescField pODBC3SQLSetDescField;
+//T3SQLGetDescField pODBC3SQLGetDescField;
+//T3SQLGetDescRec pODBC3SQLGetDescRec;
+//T3SQLSetDescRec pODBC3SQLSetDescRec;
+T3SQLPrepare pODBC3SQLPrepare;
+T3SQLBindParameter pODBC3SQLBindParameter;
+//T3SQLGetCursorName pODBC3SQLGetCursorName;
+T3SQLSetCursorName pODBC3SQLSetCursorName;
+T3SQLExecute pODBC3SQLExecute;
+T3SQLExecDirect pODBC3SQLExecDirect;
+//T3SQLNativeSql pODBC3SQLNativeSql;
+T3SQLDescribeParam pODBC3SQLDescribeParam;
+T3SQLNumParams pODBC3SQLNumParams;
+T3SQLParamData pODBC3SQLParamData;
+T3SQLPutData pODBC3SQLPutData;
+T3SQLRowCount pODBC3SQLRowCount;
+T3SQLNumResultCols pODBC3SQLNumResultCols;
+T3SQLDescribeCol pODBC3SQLDescribeCol;
+T3SQLColAttribute pODBC3SQLColAttribute;
+T3SQLBindCol pODBC3SQLBindCol;
+T3SQLFetch pODBC3SQLFetch;
+T3SQLFetchScroll pODBC3SQLFetchScroll;
+T3SQLGetData pODBC3SQLGetData;
+T3SQLSetPos pODBC3SQLSetPos;
+T3SQLBulkOperations pODBC3SQLBulkOperations;
+T3SQLMoreResults pODBC3SQLMoreResults;
+//T3SQLGetDiagField pODBC3SQLGetDiagField;
+T3SQLGetDiagRec pODBC3SQLGetDiagRec;
+T3SQLColumnPrivileges pODBC3SQLColumnPrivileges;
+T3SQLColumns pODBC3SQLColumns;
+T3SQLForeignKeys pODBC3SQLForeignKeys;
+T3SQLPrimaryKeys pODBC3SQLPrimaryKeys;
+T3SQLProcedureColumns pODBC3SQLProcedureColumns;
+T3SQLProcedures pODBC3SQLProcedures;
+T3SQLSpecialColumns pODBC3SQLSpecialColumns;						
+T3SQLStatistics pODBC3SQLStatistics;
+T3SQLTablePrivileges pODBC3SQLTablePrivileges;
+T3SQLTables pODBC3SQLTables;
+T3SQLFreeStmt pODBC3SQLFreeStmt;
+T3SQLCloseCursor pODBC3SQLCloseCursor;
+T3SQLCancel pODBC3SQLCancel;
+T3SQLEndTran pODBC3SQLEndTran;
+T3SQLDisconnect pODBC3SQLDisconnect;
+T3SQLFreeHandle pODBC3SQLFreeHandle;
+T3SQLGetCursorName pODBC3SQLGetCursorName;
+T3SQLNativeSql pODBC3SQLNativeSql;
+
+sal_Bool LoadFunctions(oslModule pODBCso);
+// -------------------------------------------------------------------------
+// Dynamisches Laden der DLL/shared lib und Adressen der Funktionen besorgen:
+// Liefert sal_True bei Erfolg.
+sal_Bool LoadLibrary_ODBC3(::rtl::OUString &_rPath)
+=====================================================================
+Found a 29 line (171 tokens) duplication in the following files: 
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/cmdtools/configimport.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/cmdtools/setofficelang.cxx
+
+static uno::Reference< uno::XInterface > createService(uno::Reference< uno::XComponentContext > const & xContext, OUString aService)
+{
+
+    uno::Reference< lang::XMultiComponentFactory > xFactory = xContext->getServiceManager();
+    if (!xFactory.is())
+    {
+        rtl::OUStringBuffer sMsg;
+        sMsg.appendAscii("Missing object ! ");
+        sMsg.appendAscii("UNO context has no service manager.");
+
+        throw uno::RuntimeException(sMsg.makeStringAndClear(),NULL);
+    }
+
+    uno::Reference< uno::XInterface > xInstance = xFactory->createInstanceWithContext(aService,xContext);
+    if (!xInstance.is())
+    {
+        rtl::OUStringBuffer sMsg;
+        sMsg.appendAscii("Missing service ! ");
+        sMsg.appendAscii("Service manager can't instantiate service ");
+        sMsg.append(aService).appendAscii(". ");
+
+        throw lang::ServiceNotRegisteredException(sMsg.makeStringAndClear(),NULL);
+    }
+  
+    return xInstance;
+}
+
+// --------------------------------------------------------------------------
+static uno::Reference< lang::XMultiServiceFactory >  createProvider(uno::Reference< uno::XComponentContext > const & xContext, bool bAdmin)
+=====================================================================
+Found a 10 line (171 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/IndexedPropertyValuesContainer.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomod.cxx
+
+    virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+	// XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+
+    // XServiceInfo
+    virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 36 line (170 tokens) duplication in the following files: 
+Starting at line 689 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_aa.h
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_bin.h
+
+            int16 val;
+            ((int8u*)&val)[0] = *m_ptr++;
+            ((int8u*)&val)[1] = *m_ptr++;
+            return val;
+        }
+       
+    public:
+        // Iterate scanlines interface
+        //--------------------------------------------------------------------
+        bool rewind_scanlines()
+        {
+            m_ptr = m_data;
+            if(m_ptr < m_end)
+            {
+                m_min_x = read_int16() + m_dx; 
+                m_min_y = read_int16() + m_dy;
+                m_max_x = read_int16() + m_dx;
+                m_max_y = read_int16() + m_dy;
+                return true;
+            }
+            return false;
+        }
+
+        //--------------------------------------------------------------------
+        int min_x() const { return m_min_x; }
+        int min_y() const { return m_min_y; }
+        int max_x() const { return m_max_x; }
+        int max_y() const { return m_max_y; }
+
+        //--------------------------------------------------------------------
+        template<class Scanline> bool sweep_scanline(Scanline& sl)
+        {
+            sl.reset_spans();
+            for(;;)
+            {
+                if(m_ptr >= m_end) return false;
+=====================================================================
+Found a 28 line (170 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/DlgOASISTContext.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/EventOASISTContext.cxx
+Starting at line 1382 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/OOo2Oasis.cxx
+
+		GetTransformer().GetUserDefinedActions( OOO_TAB_STOP_ACTIONS  );
+	OSL_ENSURE( pActions, "go no actions" );
+
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList =
+					new XMLMutableAttributeList( xAttrList );
+				xAttrList = pMutableAttrList;
+			}
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_RENAME:
+=====================================================================
+Found a 43 line (170 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndevdis.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndevdis.cxx
+
+void SAL_CALL DNDEventDispatcher::dropActionChanged( const DropTargetDragEvent& dtde )
+	throw(RuntimeException)
+{
+	MutexGuard aImplGuard( m_aMutex );
+
+	Point location( dtde.LocationX, dtde.LocationY );
+	sal_Int32 nListeners;
+
+	// find the window that is toplevel for this coordinates
+	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
+
+    // because those coordinates come from outside, they must be mirrored if RTL layout is active
+    if( Application::GetSettings().GetLayoutRTL() )
+        m_pTopWindow->ImplMirrorFramePos( location );
+	Window * pChildWindow = m_pTopWindow->ImplFindWindow( location );
+
+	if( NULL == pChildWindow )
+        pChildWindow = m_pTopWindow;
+
+    while( pChildWindow->ImplGetClientWindow() )
+        pChildWindow = pChildWindow->ImplGetClientWindow();
+
+    if( pChildWindow->ImplHasMirroredGraphics() && !pChildWindow->IsRTLEnabled() )
+        pChildWindow->ImplReMirror( location );
+
+	aSolarGuard.clear();
+
+	if( pChildWindow != m_pCurrentWindow )
+	{
+		// fire dragExit on listeners of previous window
+		fireDragExitEvent( m_pCurrentWindow );
+
+		// remember new window
+		m_pCurrentWindow = pChildWindow;
+
+		// fire dragEnter on listeners of current window
+		nListeners = fireDragEnterEvent( pChildWindow, dtde.Context, dtde.DropAction, location,
+			dtde.SourceActions, m_aDataFlavorList );
+	}
+	else
+	{
+		// fire dropActionChanged on listeners of current window
+		nListeners = fireDropActionChangedEvent( pChildWindow, dtde.Context, dtde.DropAction, location,
+=====================================================================
+Found a 24 line (170 tokens) duplication in the following files: 
+Starting at line 3348 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+Starting at line 3499 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+
+	if( pCntntSect )
+	{
+		const SwPosition* pStt = Start(),
+						* pEnd = pStt == GetPoint() ? GetMark() : GetPoint();
+
+		SwDoc* pDoc = GetDoc();
+		SwPaM aPam( *pStt, *pEnd );
+		SwCntntNode* pCSttNd = pStt->nNode.GetNode().GetCntntNode();
+		SwCntntNode* pCEndNd = pEnd->nNode.GetNode().GetCntntNode();
+
+		if( !pCSttNd )
+		{
+			// damit die Indizies der anderen Redlines nicht mitverschoben
+			// werden, diese aufs Ende setzen (ist exclusive).
+			const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
+			for( USHORT n = 0; n < rTbl.Count(); ++n )
+			{
+				SwRedline* pRedl = rTbl[ n ];
+				if( pRedl->GetBound(TRUE) == *pStt )
+					pRedl->GetBound(TRUE) = *pEnd;
+				if( pRedl->GetBound(FALSE) == *pStt )
+					pRedl->GetBound(FALSE) = *pEnd;
+			}
+		}
+=====================================================================
+Found a 25 line (170 tokens) duplication in the following files: 
+Starting at line 3562 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 4078 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+Point SvImpIconView::AdjustAtGrid( const Rectangle& rCenterRect,
+	const Rectangle& rBoundRect ) const
+{
+	Point aPos( rCenterRect.TopLeft() );
+	Size aSize( rCenterRect.GetSize() );
+
+	aPos.X() -= LROFFS_WINBORDER;
+	aPos.Y() -= TBOFFS_WINBORDER;
+
+	// align (ref ist mitte des rects)
+	short nGridX = (short)((aPos.X()+(aSize.Width()/2)) / nGridDX);
+	short nGridY = (short)((aPos.Y()+(aSize.Height()/2)) / nGridDY);
+	aPos.X() = nGridX * nGridDX;
+	aPos.Y() = nGridY * nGridDY;
+	// hor. center
+	aPos.X() += (nGridDX - rBoundRect.GetSize().Width() ) / 2;
+
+	aPos.X() += LROFFS_WINBORDER;
+	aPos.Y() += TBOFFS_WINBORDER;
+
+	return aPos;
+}
+
+
+void SvImpIconView::SetTextMode( SvIconViewTextMode eMode, SvLBoxEntry* pEntry )
+=====================================================================
+Found a 22 line (170 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/javavm/javavm.cxx
+Starting at line 445 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/javavm/javavm.cxx
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/javavm/javavm.cxx
+
+void getJavaPropsFromSafetySettings(
+    stoc_javavm::JVM * pjvm,
+    const css::uno::Reference<css::lang::XMultiComponentFactory> & xSMgr,
+    const css::uno::Reference<css::uno::XComponentContext> &xCtx) throw(css::uno::Exception)
+{
+    css::uno::Reference<css::uno::XInterface> xConfRegistry =
+        xSMgr->createInstanceWithContext(
+            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                              "com.sun.star.configuration.ConfigurationRegistry")),
+            xCtx);
+	if(!xConfRegistry.is())
+        throw css::uno::RuntimeException(
+            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("javavm.cxx: couldn't get ConfigurationRegistry")), 0);
+
+	css::uno::Reference<css::registry::XSimpleRegistry> xConfRegistry_simple(
+        xConfRegistry, css::uno::UNO_QUERY);
+	if(!xConfRegistry_simple.is())
+        throw css::uno::RuntimeException(
+            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("javavm.cxx: couldn't get ConfigurationRegistry")), 0);
+
+	xConfRegistry_simple->open(
+        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.Java")),
+=====================================================================
+Found a 10 line (170 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN("HeaderText"),					WID_PAGE_HEADERTEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("IsFooterVisible"),				WID_PAGE_FOOTERVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("FooterText"),					WID_PAGE_FOOTERTEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("IsPageNumberVisible"),			WID_PAGE_PAGENUMBERVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("IsDateTimeVisible"),			WID_PAGE_DATETIMEVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("IsDateTimeFixed"),				WID_PAGE_DATETIMEFIXED, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("DateTimeText"),					WID_PAGE_DATETIMETEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("DateTimeFormat"),				WID_PAGE_DATETIMEFORMAT, &::getCppuType((const sal_Int32*)0),			0,	0},
+		{0,0,0,0,0,0}
+	};
+=====================================================================
+Found a 39 line (170 tokens) duplication in the following files: 
+Starting at line 2867 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/CustomAnimationEffect.cxx
+Starting at line 2981 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/CustomAnimationEffect.cxx
+
+	sal_Int32 nTextGrouping = pTextGroup->mnTextGrouping;
+
+	EffectSequence aEffects( pTextGroup->maEffects );
+	pTextGroup->reset();
+
+	EffectSequence::iterator aIter( aEffects.begin() );
+	const EffectSequence::iterator aEnd( aEffects.end() );
+	while( aIter != aEnd )
+	{
+		CustomAnimationEffectPtr pEffect( (*aIter++) );
+
+		if( pEffect->getTarget().getValueType() == ::getCppuType((const ParagraphTarget*)0) )
+		{
+			// set correct node type
+			if( pEffect->getParaDepth() < nTextGrouping )
+			{
+				if( fTextGroupingAuto == -1.0 )
+				{
+					pEffect->setNodeType( EffectNodeType::ON_CLICK );
+					pEffect->setBegin( 0.0 );
+				}
+				else
+				{
+					pEffect->setNodeType( EffectNodeType::AFTER_PREVIOUS );
+					pEffect->setBegin( fTextGroupingAuto );
+				}
+			}
+			else
+			{
+				pEffect->setNodeType( EffectNodeType::WITH_PREVIOUS );
+				pEffect->setBegin( 0.0 );
+			}
+		}
+
+		pTextGroup->addEffect( pEffect );
+
+	}
+	notify_listeners();
+}
+=====================================================================
+Found a 44 line (170 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertbig5hkscs.c
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/converteuctw.c
+
+              m_pUnicodeToCns116431992PlaneOffsets;
+    sal_Unicode nHighSurrogate = 0;
+    sal_uInt32 nInfo = 0;
+    sal_Size nConverted = 0;
+    sal_Char * pDestBufPtr = pDestBuf;
+    sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
+
+    if (pContext)
+        nHighSurrogate
+            = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate;
+
+    for (; nConverted < nSrcChars; ++nConverted)
+    {
+        sal_Bool bUndefined = sal_True;
+        sal_uInt32 nChar = *pSrcBuf++;
+        if (nHighSurrogate == 0)
+        {
+            if (ImplIsHighSurrogate(nChar))
+            {
+                nHighSurrogate = (sal_Unicode) nChar;
+                continue;
+            }
+        }
+        else if (ImplIsLowSurrogate(nChar))
+            nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
+        else
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (nChar < 0x80)
+            if (pDestBufPtr != pDestBufEnd)
+                *pDestBufPtr++ = (sal_Char) nChar;
+            else
+                goto no_output;
+        else
+        {
+=====================================================================
+Found a 32 line (170 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/sal/test/unloading/samplelib1.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/sal/test/unloading/samplelib2.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3)) )), UNO_QUERY);
+}
+
+
+// Standard UNO library interface -------------------------------------------------
+extern "C" {
+	void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv){
+		*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+	}
+
+	sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey) throw()
+	{
+		if (pRegistryKey)
+		{
+			try
+			{
+				Reference< XRegistryKey > xNewKey(
+					reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+						OUString::createFromAscii( "/" IMPLNAME1 "/UNO/SERVICES" ) ) );
+
+				xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME1)));
+
+				xNewKey= 
+					reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+						OUString::createFromAscii( "/" IMPLNAME2 "/UNO/SERVICES" ) );
+
+				xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME2)));
+				xNewKey= 
+					reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+						OUString::createFromAscii( "/" IMPLNAME3 "/UNO/SERVICES" )   );
+
+				xNewKey->createKey(OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME3)));
+=====================================================================
+Found a 65 line (170 tokens) duplication in the following files: 
+Starting at line 2363 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 1934 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_Negative(
+    hTestResult hRtlTestResult )
+{
+    sal_Bool bRes = sal_False;
+
+    sal_Int64 inArr[36];
+	sal_Int32 i;
+
+    for (i = 0; i < 36; i++) {
+        inArr[i] = -i;
+    }
+
+
+    bRes = c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64( kBinaryNumsStr, kBinaryNumsCount,
+                                kRadixBinary, hRtlTestResult, inArr ),
+            "negative Int64, kRadixBinary",
+            "valueOf( negative Int64, radix 2 )"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64( kOctolNumsStr, kOctolNumsCount,
+                                kRadixOctol, hRtlTestResult, inArr ),
+            "negative Int64, kRadixOctol",
+            "valueOf( negative Int64, radix 8 )"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64( kDecimalNumsStr, kDecimalNumsCount,
+                                kRadixDecimal, hRtlTestResult, inArr ),
+            "negative Int64, kRadixDecimal",
+            "valueOf( negative Int64, radix 10 )"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64( kHexDecimalNumsStr, kHexDecimalNumsCount,
+                                kRadixHexdecimal, hRtlTestResult, inArr ),
+            "negative Int64, kRadixHexDecimal",
+            "valueOf( negative Int64, radix 16 )"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64( kBase36NumsStr, kBase36NumsCount,
+                                kRadixBase36, hRtlTestResult, inArr),
+            "negative Int64, kRadixBase36",
+            "valueOf( negative Int64, radix 36 )"
+            );
+
+    return (bRes);
+}
+//------------------------------------------------------------------------
+// testing the method valueOf( sal_Int64 l, sal_Int32 radix )
+// where radix = -5
+//------------------------------------------------------------------------
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_WrongRadix(
+=====================================================================
+Found a 10 line (170 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+    // XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements(  ) throw(::com::sun::star::uno::RuntimeException);
+
+	// XServiceInfo
+    virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 30 line (170 tokens) duplication in the following files: 
+Starting at line 1124 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 937 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+
+				{
+					Polygon aPoly;
+
+					switch( nType )
+					{
+						case( META_ARC_ACTION ):
+						{
+							const MetaArcAction* pA = (const MetaArcAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_ARC );
+						}
+						break;
+
+						case( META_PIE_ACTION ):
+						{
+							const MetaPieAction* pA = (const MetaPieAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_PIE );
+						}
+						break;
+
+						case( META_CHORD_ACTION	):
+						{
+							const MetaChordAction* pA = (const MetaChordAction*) pAction;
+							aPoly = Polygon( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint(), POLY_CHORD );
+						}
+						break;
+						
+						case( META_POLYGON_ACTION ):
+							aPoly = ( (const MetaPolygonAction*) pAction )->GetPolygon();
+						break;
+					}
+=====================================================================
+Found a 19 line (170 tokens) duplication in the following files: 
+Starting at line 1923 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1965 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	OLEVariant varCriteria[4];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schemaPattern.getLength() && schemaPattern.toChar() != '%')
+		varCriteria[nPos].setString(schemaPattern);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+
+	if(procedureNamePattern.toChar() != '%')
+		varCriteria[nPos].setString(procedureNamePattern);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_NAME
+=====================================================================
+Found a 19 line (170 tokens) duplication in the following files: 
+Starting at line 1826 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 2075 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	OLEVariant varCriteria[4];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schemaPattern.getLength() && schemaPattern.toChar() != '%')
+		varCriteria[nPos].setString(schemaPattern);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+
+	if(tableNamePattern.toChar() != '%')
+		varCriteria[nPos].setString(tableNamePattern);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_NAME
+=====================================================================
+Found a 18 line (170 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+
+        virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
+            throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
+            throw (::com::sun::star::uno::RuntimeException);
+
+        virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // XElementAccess
+        virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
+            throw (::com::sun::star::uno::RuntimeException);
+
+        virtual sal_Bool SAL_CALL hasElements()
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // container.XContainerListener
+        virtual void SAL_CALL     elementInserted( const ContainerEvent& aEvent ) throw(RuntimeException);
+=====================================================================
+Found a 54 line (170 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/options.cxx
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/codemaker/options.cxx
+
+using namespace rtl;
+
+Options::Options()
+{
+}	
+
+Options::~Options()
+{
+	
+}
+
+const OString& Options::getProgramName() const
+{
+	return m_program;
+}	
+
+sal_Bool Options::isValid(const OString& option)
+{
+	return (m_options.count(option) > 0);	
+}	
+
+const OString Options::getOption(const OString& option)
+	throw( IllegalArgument )
+{
+	if (m_options.count(option) > 0)
+	{
+		return m_options[option];
+	} else
+	{
+		throw IllegalArgument("Option is not valid or currently not set.");
+	}
+}
+
+const OptionMap& Options::getOptions()
+{
+	return m_options;	
+}	
+
+const OString Options::getInputFile(sal_uInt16 index)
+	throw( IllegalArgument )
+{
+	if (index < m_inputFiles.size())
+	{
+		return m_inputFiles[index];		
+	} else
+	{
+		throw IllegalArgument("index is out of bound.");
+	}
+}	
+
+const StringVector& Options::getInputFiles()
+{
+	return m_inputFiles;	
+}	
+=====================================================================
+Found a 36 line (170 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+					m_options["-nD"] = OString("");
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'G':
+					if (av[i][2] == 'c')
+=====================================================================
+Found a 33 line (170 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxlng.cxx
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxulng.cxx
+
+				nRes = (UINT32) ( p->nSingle + 0.5 );
+			break;
+		case SbxDATE:
+		case SbxDOUBLE:
+		case SbxLONG64:
+		case SbxULONG64:
+		case SbxSALINT64:
+		case SbxSALUINT64:
+		case SbxCURRENCY:
+		case SbxDECIMAL:
+		case SbxBYREF | SbxDECIMAL:
+			{
+			double dVal;
+			if( p->eType ==	SbxCURRENCY )
+				dVal = ImpCurrencyToDouble( p->nLong64 );
+			else if( p->eType == SbxLONG64 )
+				dVal = ImpINT64ToDouble( p->nLong64 );
+			else if( p->eType == SbxULONG64 )
+				dVal = ImpUINT64ToDouble( p->nULong64 );
+			else if( p->eType == SbxSALINT64 )
+				dVal = static_cast< double >(p->nInt64);
+			else if( p->eType == SbxSALUINT64 )
+				dVal = ImpSalUInt64ToDouble( p->uInt64 );
+			else if( p->eType == SbxDECIMAL )
+			{
+				dVal = 0.0;
+				if( p->pDecimal )
+					p->pDecimal->getDouble( dVal );
+			}
+			else
+				dVal = p->nDouble;
+
+			if( dVal > SbxMAXULNG )
+=====================================================================
+Found a 31 line (169 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/longcurr.cxx
+
+	nDecPos = aStr.Search( rLocaleDataWrapper.getNumDecimalSep() );
+
+	if ( nDecPos != STRING_NOTFOUND )
+	{
+		aStr1 = aStr.Copy( 0, nDecPos );
+		aStr2 = aStr.Copy( nDecPos+1 );
+	}
+	else
+		aStr1 = aStr;
+
+	// Negativ ?
+	if ( bCurrency )
+	{
+		if ( (aStr.GetChar( 0 ) == '(') && (aStr.GetChar( aStr.Len()-1 ) == ')') )
+			bNegative = TRUE;
+		if ( !bNegative )
+		{
+			for ( i=0; i < aStr.Len(); i++ )
+			{
+				if ( (aStr.GetChar( i ) >= '0') && (aStr.GetChar( i ) <= '9') )
+					break;
+				else if ( aStr.GetChar( i ) == '-' )
+				{
+					bNegative = TRUE;
+					break;
+				}
+			}
+		}
+		if ( !bNegative && bCurrency && aStr.Len() )
+		{
+			USHORT nFormat = rLocaleDataWrapper.getCurrNegativeFormat();
+=====================================================================
+Found a 18 line (169 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/attributesmap.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/attributesmap.cxx
+
+    Reference< XNode > SAL_CALL CAttributesMap::removeNamedItemNS(const OUString& namespaceURI, const OUString& localName) throw (RuntimeException)
+    {
+        Reference< XNode > aNode;
+        xmlNodePtr pNode = m_pElement->m_aNodePtr;
+        if (pNode != NULL)
+        {
+            OString o1 = OUStringToOString(localName, RTL_TEXTENCODING_UTF8);
+            xmlChar* xName = (xmlChar*)o1.getStr();
+            OString o2 = OUStringToOString(namespaceURI, RTL_TEXTENCODING_UTF8);
+            xmlChar* xNs = (xmlChar*)o1.getStr();
+            xmlNsPtr pNs = xmlSearchNs(pNode->doc, pNode, xNs);
+            xmlAttrPtr cur = pNode->properties;
+            while (cur != NULL && pNs != NULL)
+            {
+                if( strcmp((char*)xName, (char*)cur->name) == 0 &&
+                    cur->ns == pNs)
+                {
+                    aNode = Reference< XNode >(static_cast< CNode* >(CNode::get((xmlNodePtr)cur)));
+=====================================================================
+Found a 31 line (169 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxsystemdependentwindow.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxtopwindow.cxx
+
+		const SystemEnvData* pSysData = ((SystemWindow *)pWindow)->GetSystemData();
+		if( pSysData )
+		{
+#if (defined WNT)
+			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_WIN32 )
+			{
+				 aRet <<= (sal_Int32)pSysData->hWnd;
+			}
+#elif (defined OS2)
+			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_OS2 )
+			{
+				 aRet <<= (sal_Int32)pSysData->hWnd;
+			}
+#elif (defined QUARTZ)
+			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_MAC )
+			{
+				 aRet <<= (sal_IntPtr)pSysData->rWindow;
+			}
+#elif (defined UNX)
+			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW )
+			{
+				::com::sun::star::awt::SystemDependentXWindow aSD;
+				aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay));
+				aSD.WindowHandle = pSysData->aWindow;
+				aRet <<= aSD;
+			}
+#endif
+		}
+	}
+	return aRet;
+}
+=====================================================================
+Found a 23 line (169 tokens) duplication in the following files: 
+Starting at line 756 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+Starting at line 909 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+
+			aClass = pOption->GetString();
+			break;
+		case HTML_O_ALT:
+			aAlt = pOption->GetString();
+			break;
+		case HTML_O_ALIGN:
+			eVertOri = (SwVertOrient)pOption->GetEnum( aHTMLImgVAlignTable, eVertOri );
+			eHoriOri = (SwHoriOrient)pOption->GetEnum( aHTMLImgHAlignTable, eHoriOri );
+			break;
+		case HTML_O_WIDTH:
+			bPrcWidth = (pOption->GetString().Search('%') != STRING_NOTFOUND);
+			aSize.Width() = (long)pOption->GetNumber();
+			break;
+		case HTML_O_HEIGHT:
+			bPrcHeight = (pOption->GetString().Search('%') != STRING_NOTFOUND);
+			aSize.Height() = (long)pOption->GetNumber();
+			break;
+		case HTML_O_HSPACE:
+			aSpace.Width() = (long)pOption->GetNumber();
+			break;
+		case HTML_O_VSPACE:
+			aSpace.Height() = (long)pOption->GetNumber();
+			break;
+=====================================================================
+Found a 17 line (169 tokens) duplication in the following files: 
+Starting at line 970 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 886 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] =	// adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
+{																// adjustment3: y 0 - 21600
+	{ 10800, 0 }, { 3 MSO_I, 2 MSO_I },	{ 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I },
+	{ 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I },	{ 21600, 10800 }, { 5 MSO_I, 3 MSO_I },
+	{ 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I },	{ 2 MSO_I, 3 MSO_I }, { 0, 10800 },
+	{ 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I },	{ 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 0 MSO_I, 2 MSO_I }
+};
+static const sal_uInt16 mso_sptLeftRightUpArrowSegm[] =
+{
+	0x4000, 0x0010, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },				// 0
+=====================================================================
+Found a 15 line (169 tokens) duplication in the following files: 
+Starting at line 1700 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/dispatch.cxx
+Starting at line 2909 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/dispatch.cxx
+
+	if ( pImp->pFrame )
+	{
+        SfxTopViewFrame* pTop= PTR_CAST( SfxTopViewFrame, pImp->pFrame->GetTopViewFrame() );
+        if ( pTop && pTop->GetBindings().GetDispatcher() == this )
+        {
+			SfxTopFrame* pFrm = pTop->GetTopFrame_Impl();
+            if ( pFrm->IsMenuBarOn_Impl() )
+            {
+                com::sun::star::uno::Reference < com::sun::star::beans::XPropertySet > xPropSet( pFrm->GetFrameInterface(), com::sun::star::uno::UNO_QUERY );
+                if ( xPropSet.is() )
+                {
+                    com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManager > xLayoutManager;
+                    com::sun::star::uno::Any aValue = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" )));
+                    aValue >>= xLayoutManager;
+                    if ( xLayoutManager.is() )
+=====================================================================
+Found a 35 line (169 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+Starting at line 1075 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+
+				if ( xObj.is() )
+				{
+					svt::EmbeddedObjectRef aObjRef( xObj, aObjDesc.mnViewAspect );
+
+					// try to get the replacement image from the clipboard
+					Graphic aGraphic;
+					ULONG nGrFormat = 0;
+					if( aDataHelper.GetGraphic( SOT_FORMATSTR_ID_SVXB, aGraphic ) )
+						nGrFormat = SOT_FORMATSTR_ID_SVXB;
+					else if( aDataHelper.GetGraphic( FORMAT_GDIMETAFILE, aGraphic ) )
+						nGrFormat = SOT_FORMAT_GDIMETAFILE;
+					else if( aDataHelper.GetGraphic( FORMAT_BITMAP, aGraphic ) )
+						nGrFormat = SOT_FORMAT_BITMAP;
+
+					// insert replacement image ( if there is one ) into the object helper
+					if ( nGrFormat )
+					{
+						datatransfer::DataFlavor aDataFlavor;
+						SotExchange::GetFormatDataFlavor( nGrFormat, aDataFlavor );
+						aObjRef.SetGraphic( aGraphic, aDataFlavor.MimeType );
+					}
+
+					Size aSize;
+					if ( aObjDesc.mnViewAspect == embed::Aspects::MSOLE_ICON )
+					{
+                    	if( aObjDesc.maSize.Width() && aObjDesc.maSize.Height() )
+							aSize = aObjDesc.maSize;
+						else
+						{
+							MapMode aMapMode( MAP_100TH_MM );
+							aSize = aObjRef.GetSize( &aMapMode );
+						}
+					}
+					else
+					{
+=====================================================================
+Found a 30 line (169 tokens) duplication in the following files: 
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewsf.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvsh.cxx
+
+	{
+        SvtCJKOptions aCJKOptions;
+		if( !aCJKOptions.IsChangeCaseMapEnabled() )
+		{
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_HALFWIDTH, sal_False );
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_FULLWIDTH, sal_False );
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_HIRAGANA, sal_False );
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_KATAGANA, sal_False );
+			rSet.DisableItem( SID_TRANSLITERATE_HALFWIDTH );
+			rSet.DisableItem( SID_TRANSLITERATE_FULLWIDTH );
+			rSet.DisableItem( SID_TRANSLITERATE_HIRAGANA );
+			rSet.DisableItem( SID_TRANSLITERATE_KATAGANA );
+		}
+        else
+        {
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_HALFWIDTH, sal_True );
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_FULLWIDTH, sal_True );
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_HIRAGANA, sal_True );
+            GetViewFrame()->GetBindings().SetVisibleState( SID_TRANSLITERATE_KATAGANA, sal_True );
+        }
+	}
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Support-Funktionen
+|*
+\************************************************************************/
+
+void OutlineViewShell::FuSupport(SfxRequest &rReq)
+=====================================================================
+Found a 43 line (169 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertbig5hkscs.c
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertgb18030.c
+
+              m_pUnicodeToGb18030Ranges;
+    sal_Unicode nHighSurrogate = 0;
+    sal_uInt32 nInfo = 0;
+    sal_Size nConverted = 0;
+    sal_Char * pDestBufPtr = pDestBuf;
+    sal_Char * pDestBufEnd = pDestBuf + nDestBytes;
+
+    if (pContext)
+        nHighSurrogate
+            = ((ImplUnicodeToTextContext *) pContext)->m_nHighSurrogate;
+
+    for (; nConverted < nSrcChars; ++nConverted)
+    {
+        sal_Bool bUndefined = sal_True;
+        sal_uInt32 nChar = *pSrcBuf++;
+        if (nHighSurrogate == 0)
+        {
+            if (ImplIsHighSurrogate(nChar))
+            {
+                nHighSurrogate = (sal_Unicode) nChar;
+                continue;
+            }
+        }
+        else if (ImplIsLowSurrogate(nChar))
+            nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
+        else
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (nChar < 0x80)
+            if (pDestBufPtr != pDestBufEnd)
+                *pDestBufPtr++ = (sal_Char) nChar;
+            else
+                goto no_output;
+        else if (nChar < 0x10000)
+=====================================================================
+Found a 86 line (169 tokens) duplication in the following files: 
+Starting at line 2676 of /local/ooo-build/ooo-build/src/oog680-m3/regexp/orig/regex.c
+Starting at line 1515 of /local/ooo-build/ooo-build/src/oog680-m3/regexp/source/reclass.cxx
+
+	    goto unfetch_interval;
+	  }
+
+	  /* If the upper bound is zero, don't want to succeed at
+	     all; jump from `laststart' to `b + 3', which will be
+	     the end of the buffer after we insert the jump.  */
+	  if (upper_bound == 0) {
+	    GET_BUFFER_SPACE(3);
+	    INSERT_JUMP(jump, laststart, b + 3);
+	    b += 3;
+	  }
+
+	  /* Otherwise, we have a nontrivial interval.  When
+	     we're all done, the pattern will look like:
+	     set_number_at <jump count> <upper bound>
+	     set_number_at <succeed_n count> <lower bound>
+	     succeed_n <after jump addr> <succeed_n count>
+	     <body of loop>
+	     jump_n <succeed_n addr> <jump count>
+	     (The upper bound and `jump_n' are omitted if
+	     `upper_bound' is 1, though.)  */
+	  else {
+	    /* If the upper bound is > 1, we need to insert
+	       more at the end of the loop.  */
+	    unsigned nbytes = 10 + (upper_bound > 1) * 10;
+
+	    GET_BUFFER_SPACE(nbytes);
+
+	    /* Initialize lower bound of the `succeed_n', even
+	       though it will be set during matching by its
+	       attendant `set_number_at' (inserted next),
+	       because `re_compile_fastmap' needs to know.
+	       Jump to the `jump_n' we might insert below.  */
+	    INSERT_JUMP2(succeed_n, laststart,
+			 b + 5 + (upper_bound > 1) * 5,
+			 lower_bound);
+	    b += 5;
+
+	    /* Code to initialize the lower bound.  Insert
+	       before the `succeed_n'.  The `5' is the last two
+	       bytes of this `set_number_at', plus 3 bytes of
+	       the following `succeed_n'.  */
+	    insert_op2(set_number_at, laststart, 5, lower_bound, b);
+	    b += 5;
+
+	    if (upper_bound > 1) {
+				/* More than one repetition is allowed, so
+				   append a backward jump to the `succeed_n'
+				   that starts this interval.
+
+				   When we've reached this during matching,
+				   we'll have matched the interval once, so
+				   jump back only `upper_bound - 1' times.  */
+	      STORE_JUMP2(jump_n, b, laststart + 5,
+			  upper_bound - 1);
+	      b += 5;
+
+				/* The location we want to set is the second
+				   parameter of the `jump_n'; that is `b-2' as
+				   an absolute address.  `laststart' will be
+				   the `set_number_at' we're about to insert;
+				   `laststart+3' the number to set, the source
+				   for the relative address.  But we are
+				   inserting into the middle of the pattern --
+				   so everything is getting moved up by 5.
+				   Conclusion: (b - 2) - (laststart + 3) + 5,
+				   i.e., b - laststart.
+
+				   We insert this at the beginning of the loop
+				   so that if we fail during matching, we'll
+				   reinitialize the bounds.  */
+	      insert_op2(set_number_at, laststart, b - laststart,
+			 upper_bound - 1, b);
+	      b += 5;
+	    }
+	  }
+	  pending_exact = 0;
+	  beg_interval = NULL;
+	}
+	break;
+
+      unfetch_interval:
+	/* If an invalid interval, match the characters as literals.  */
+	assert (beg_interval);
+	p = beg_interval;
+	beg_interval = NULL;
+=====================================================================
+Found a 25 line (169 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ocompinstream.cxx
+Starting at line 2501 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
+	sal_Int32 nEntriesNum = 0;
+
+	// TODO/LATER: in future the unification of the ID could be checked
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sType ) )
+				{
+					aResult.realloc( nEntriesNum );
+					aResult[nEntriesNum-1] = aSeq[nInd1];
+				}
+				break;
+			}
+
+	return aResult;
+}
+
+//-----------------------------------------------
+uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OWriteStream::getAllRelationships()
+=====================================================================
+Found a 20 line (169 tokens) duplication in the following files: 
+Starting at line 1499 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1883 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+        if (partresult) strcat(presult, partresult);
+	
+	rv = lookup(st); // perhaps without prefix
+
+        // search homonym with compound flag
+        while ((rv) && !hu_mov_rule && 
+            ((pseudoroot && TESTAFF(rv->astr, pseudoroot, rv->alen)) ||
+		!((compoundflag && !words && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
+	        (compoundbegin && !wordnum &&
+                        TESTAFF(rv->astr, compoundbegin, rv->alen)) ||
+                (compoundmiddle && wordnum && !words &&
+                    TESTAFF(rv->astr, compoundmiddle, rv->alen)) ||
+                  (numdefcpd &&
+                    ((!words && !wordnum && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0)) ||
+                    (words && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0))))
+                  ))) {
+            rv = rv->next_homonym;
+        }
+
+        if (rv)	 {
+=====================================================================
+Found a 6 line (169 tokens) duplication in the following files: 
+Starting at line 1083 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1109 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a70 - 0a7f
+     0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a80 - 0a8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a90 - 0a9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0aa0 - 0aaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0ab0 - 0abf
+     0,17,17,17,17,17, 0,17,17, 0, 0, 0, 0,17, 0, 0,// 0ac0 - 0acf
+=====================================================================
+Found a 6 line (169 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 6 line (169 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 895 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 7 line (169 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,22, 4, 4, 4, 0,// 30f0 - 30ff
+=====================================================================
+Found a 6 line (169 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3080 - 308f
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+=====================================================================
+Found a 35 line (169 tokens) duplication in the following files: 
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+	
+	// pCallStack: ret adr, [ret *], this, params
+    void * pThis;
+	if( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+        pThis = pCallStack[2];
+	}
+	else
+    {
+        pThis = pCallStack[1];
+    }
+    pThis = static_cast< char * >(pThis) - nVtableOffset;
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+            pThis);
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+=====================================================================
+Found a 8 line (168 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyflnk_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefile_mask.h
+
+static char movefile_mask_bits[] = {
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00,
+   0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00,
+   0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00,
+=====================================================================
+Found a 8 line (168 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfiles_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefiles_mask.h
+
+static char movefiles_mask_bits[] = {
+   0xf0, 0x1f, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00,
+   0xfc, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+   0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+   0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+   0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+   0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0x03, 0x00,
+   0xff, 0xff, 0x03, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00,
+=====================================================================
+Found a 8 line (168 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfile_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefile_mask.h
+
+static char movefile_mask_bits[] = {
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00,
+   0xff, 0x0f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00,
+   0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00,
+   0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00,
+=====================================================================
+Found a 38 line (168 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpservices.cxx
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgservices.cxx
+
+sal_Bool writeInfo( 
+    void * pRegistryKey,
+    const rtl::OUString & rImplementationName,
+    uno::Sequence< rtl::OUString > const & rServiceNames )
+{
+	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+	aKeyName += rImplementationName;
+	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+=====================================================================
+Found a 24 line (168 tokens) duplication in the following files: 
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoftn.cxx
+Starting at line 415 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unosect.cxx
+
+void SwXTextSection::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
+    throw( lang::IllegalArgumentException, uno::RuntimeException )
+{
+    if(!m_bIsDescriptor)
+        throw uno::RuntimeException();
+
+    uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+    SwXTextRange* pRange = 0;
+    OTextCursorHelper* pCursor = 0;
+    if(xRangeTunnel.is())
+    {
+        pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+                                SwXTextRange::getUnoTunnelId());
+        pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+                                OTextCursorHelper::getUnoTunnelId());
+    }
+
+    SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+    if(pDoc)
+    {
+        SwUnoInternalPaM aPam(*pDoc);
+        //das muss jetzt sal_True liefern
+        SwXTextRange::XTextRangeToSwPaM(aPam, xTextRange);
+        UnoActionContext aCont(pDoc);
+=====================================================================
+Found a 16 line (168 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomtabl.cxx
+
+    virtual uno::Sequence<  OUString > SAL_CALL getSupportedServiceNames(  ) throw( uno::RuntimeException);
+
+	// XNameContainer
+	virtual void SAL_CALL insertByName( const  OUString& aName, const  uno::Any& aElement ) throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException);
+	virtual void SAL_CALL removeByName( const  OUString& Name ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+	// XNameReplace
+    virtual void SAL_CALL replaceByName( const  OUString& aName, const  uno::Any& aElement ) throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+	// XNameAccess
+    virtual uno::Any SAL_CALL getByName( const  OUString& aName ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+    virtual uno::Sequence<  OUString > SAL_CALL getElementNames(  ) throw( uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const  OUString& aName ) throw( uno::RuntimeException);
+
+	// XElementAccess
+    virtual uno::Type SAL_CALL getElementType(  ) throw( uno::RuntimeException);
+=====================================================================
+Found a 26 line (168 tokens) duplication in the following files: 
+Starting at line 3010 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxat.cxx
+
+			if(pEdtOutl)
+			{
+				pEdtOutl->SetMaxAutoPaperSize(aSiz);
+				if (bWdtGrow) {
+					Size aSiz2(pEdtOutl->CalcTextSize());
+					nWdt=aSiz2.Width()+1; // lieber etwas Tolleranz
+					if (bHgtGrow) nHgt=aSiz2.Height()+1; // lieber etwas Tolleranz
+				} else {
+					nHgt=pEdtOutl->GetTextHeight()+1; // lieber etwas Tolleranz
+				}
+			} else {
+				Outliner& rOutliner=ImpGetDrawOutliner();
+				rOutliner.SetPaperSize(aSiz);
+				rOutliner.SetUpdateMode(TRUE);
+				// !!! hier sollte ich wohl auch noch mal die Optimierung mit
+				// bPortionInfoChecked usw einbauen
+				if ( pOutlinerParaObject != NULL )
+				{
+					rOutliner.SetText(*pOutlinerParaObject);
+					rOutliner.SetFixedCellHeight(((const SdrTextFixedCellHeightItem&)GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT)).GetValue());
+				}
+				if (bWdtGrow) {
+					Size aSiz2(rOutliner.CalcTextSize());
+					nWdt=aSiz2.Width()+1; // lieber etwas Tolleranz
+					if (bHgtGrow) nHgt=aSiz2.Height()+1; // lieber etwas Tolleranz
+				} else {
+=====================================================================
+Found a 26 line (168 tokens) duplication in the following files: 
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 1111 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+void  SvxBitmapPickTabPage::ActivatePage(const SfxItemSet& rSet)
+{
+	const SfxPoolItem* pItem;
+	bPreset = FALSE;
+	BOOL bIsPreset = FALSE;
+//	nActNumLvl = ((SwNumBulletTabDialog*)GetTabDialog())->GetActNumLevel();
+	const SfxItemSet* pExampleSet = GetTabDialog()->GetExampleSet();
+	if(pExampleSet)
+	{
+		if(SFX_ITEM_SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, FALSE, &pItem))
+			bIsPreset = ((const SfxBoolItem*)pItem)->GetValue();
+		if(SFX_ITEM_SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, FALSE, &pItem))
+			nActNumLvl = ((const SfxUInt16Item*)pItem)->GetValue();
+	}
+	if(SFX_ITEM_SET == rSet.GetItemState(nNumItemId, FALSE, &pItem))
+	{
+		delete pSaveNum;
+		pSaveNum = new SvxNumRule(*((SvxNumBulletItem*)pItem)->GetNumRule());
+	}
+	if(*pSaveNum != *pActNum)
+	{
+		*pActNum = *pSaveNum;
+		pExamplesVS->SetNoSelection();
+	}
+	// ersten Eintrag vorselektieren
+	if(aGrfNames.Count() &&
+=====================================================================
+Found a 24 line (168 tokens) duplication in the following files: 
+Starting at line 4598 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4185 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] = 
+{
+	{ { 4350, 0 }, { 17250, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] =
+{
+	{ 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 }
+};
+static const mso_CustomShape msoFlowChartManualOperation =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartManualOperationVert, sizeof( mso_sptFlowChartManualOperationVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartManualOperationTextRect, sizeof( mso_sptFlowChartManualOperationTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartManualOperationGluePoints, sizeof( mso_sptFlowChartManualOperationGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 24 line (168 tokens) duplication in the following files: 
+Starting at line 4573 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4161 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] =
+{
+	{ 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] = 
+{
+	{ { 0, 4300 }, { 21600, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] =
+{
+	{ 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoFlowChartManualInput =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartManualInputVert, sizeof( mso_sptFlowChartManualInputVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartManualInputTextRect, sizeof( mso_sptFlowChartManualInputTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartManualInputGluePoints, sizeof( mso_sptFlowChartManualInputGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 18 line (168 tokens) duplication in the following files: 
+Starting at line 3327 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2994 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptBracePairVert[] =	// adj value 0 -> 5400
+{
+	{ 4 MSO_I, 0 },	{ 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 },			// left bracket
+	{ 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I },	{ 4 MSO_I, 21600 },
+	{ 8 MSO_I, 21600 },	{ 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 },	// right bracket
+	{ 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 }
+};
+static const sal_uInt16 mso_sptBracePairSegm[] =
+{
+	0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000,
+	0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptBracePairCalc[] =
+{
+	{ 0x6000, DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 },
+=====================================================================
+Found a 23 line (168 tokens) duplication in the following files: 
+Starting at line 3902 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 3989 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+
+        if (NULL != (pCSub = pNode->GetSubNode(CSUB+1))
+            && NULL != (pCSup=pNode->GetSubNode(CSUP+1)))
+        {
+            pThing2 = new SvXMLElementExport(*this,XML_NAMESPACE_MATH,
+                XML_MUNDEROVER, sal_True,sal_True);
+        }
+        else if (NULL != (pCSub = pNode->GetSubNode(CSUB+1)))
+        {
+            pThing2 = new SvXMLElementExport(*this,XML_NAMESPACE_MATH,
+                XML_MUNDER, sal_True,sal_True);
+        }
+        else if (NULL != (pCSup = pNode->GetSubNode(CSUP+1)))
+        {
+            pThing2 = new SvXMLElementExport(*this,XML_NAMESPACE_MATH,
+                XML_MOVER, sal_True,sal_True);
+        }
+        ExportNodes(pNode->GetSubNode(0), nLevel+1);    //Main Term
+
+        if (pCSub)
+            ExportNodes(pCSub, nLevel+1);
+        if (pCSup)
+            ExportNodes(pCSup, nLevel+1);
+        delete pThing2;
+=====================================================================
+Found a 27 line (168 tokens) duplication in the following files: 
+Starting at line 2312 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+Starting at line 3149 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+
+								pSet->Put( SvxAdjustItem( eSvxAdjust, EE_PARA_JUST ) );
+
+								pEngine->SetDefaults( pSet );
+								pOldPattern = pPattern;
+								pOldCondSet = pCondSet;
+
+								ULONG nControl = pEngine->GetControlWord();
+								if (eOrient==SVX_ORIENTATION_STACKED)
+									nControl |= EE_CNTRL_ONECHARPERLINE;
+								else
+									nControl &= ~EE_CNTRL_ONECHARPERLINE;
+								pEngine->SetControlWord( nControl );
+
+								if ( !bHyphenatorSet && ((const SfxBoolItem&)pSet->Get(EE_PARA_HYPHENATE)).GetValue() )
+								{
+									//	set hyphenator the first time it is needed
+                                    com::sun::star::uno::Reference<com::sun::star::linguistic2::XHyphenator> xXHyphenator( LinguMgr::GetHyphenator() );
+									pEngine->SetHyphenator( xXHyphenator );
+									bHyphenatorSet = TRUE;
+								}
+
+								Color aBackCol = ((const SvxBrushItem&)
+									pPattern->GetItem( ATTR_BACKGROUND, pCondSet )).GetColor();
+								if ( bUseStyleColor && ( aBackCol.GetTransparency() > 0 || bCellContrast ) )
+									aBackCol.SetColor( nConfBackColor );
+								pEngine->SetBackgroundColor( aBackCol );
+							}
+=====================================================================
+Found a 22 line (168 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+Starting at line 532 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+
+	OutputDevice* pRefDevice = pOutput->pRefDevice;
+	OutputDevice* pFmtDevice = pOutput->pFmtDevice;
+	aTextSize.Width() = pFmtDevice->GetTextWidth( aString );
+	aTextSize.Height() = pFmtDevice->GetTextHeight();
+
+	if ( !pRefDevice->GetConnectMetaFile() || pRefDevice->GetOutDevType() == OUTDEV_PRINTER )
+	{
+		double fMul = pOutput->GetStretch();
+		aTextSize.Width() = (long)(aTextSize.Width() / fMul + 0.5);
+	}
+
+	aTextSize.Height() = aMetric.GetAscent() + aMetric.GetDescent();
+	if ( GetOrient() != SVX_ORIENTATION_STANDARD )
+	{
+		long nTemp = aTextSize.Height();
+		aTextSize.Height() = aTextSize.Width();
+		aTextSize.Width() = nTemp;
+	}
+
+	nOriginalWidth = aTextSize.Width();
+	if ( bPixelToLogic )
+		aTextSize = pRefDevice->LogicToPixel( aTextSize );
+=====================================================================
+Found a 48 line (168 tokens) duplication in the following files: 
+Starting at line 2424 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3612 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+			pMatY->PutDouble(log(pMatY->GetDouble(nElem)), nElem);
+	}
+	if (pMatX)
+	{
+		pMatX->GetDimensions(nCX, nRX);
+		SCSIZE nCountX = nCX * nRX;
+		for ( SCSIZE i = 0; i < nCountX; i++ )
+			if (!pMatX->IsValue(i))
+			{
+				SetIllegalArgument();
+				return;
+			}
+		if (nCX == nCY && nRX == nRY)
+			nCase = 1;					// einfache Regression
+		else if (nCY != 1 && nRY != 1)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else if (nCY == 1)
+		{
+			if (nRX != nRY)
+			{
+				SetIllegalParameter();
+				return;
+			}
+			else
+			{
+				nCase = 2;				// zeilenweise
+				N = nRY;
+				M = nCX;
+			}
+		}
+		else if (nCX != nCY)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else
+		{
+			nCase = 3;					// spaltenweise
+			N = nCY;
+			M = nRX;
+		}
+	}
+	else
+	{
+		pMatX = GetNewMat(nCY, nRY);
+=====================================================================
+Found a 71 line (168 tokens) duplication in the following files: 
+Starting at line 2293 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 1864 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_Bounderies(
+    hTestResult hRtlTestResult )
+{
+    sal_Bool bRes = sal_False;
+
+    bRes =  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kBinaryMaxNumsStr,
+                               kInt64MaxNumsCount, kRadixBinary,
+                               hRtlTestResult, kInt64MaxNums),
+            "kRadixBinary",
+            "valueOf(salInt64, radix 2) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kOctolMaxNumsStr,
+                               kInt64MaxNumsCount, kRadixOctol,
+                               hRtlTestResult, kInt64MaxNums),
+            "kRadixOctol",
+            "valueOf(salInt64, radix 8) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kDecimalMaxNumsStr,
+                               kInt64MaxNumsCount, kRadixDecimal,
+                               hRtlTestResult, kInt64MaxNums),
+            "kRadixDecimal",
+            "valueOf(salInt64, radix 10) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kHexDecimalMaxNumsStr,
+                               kInt64MaxNumsCount, kRadixHexdecimal,
+                               hRtlTestResult, kInt64MaxNums),
+            "kRadixHexdecimal",
+            "valueOf(salInt64, radix 16) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kBase36MaxNumsStr,
+                               kInt64MaxNumsCount, kRadixBase36,
+                               hRtlTestResult, kInt64MaxNums),
+            "kRadixBase36",
+            "valueOf(salInt64, radix 36) Bounderies"
+            );
+
+    return ( bRes );
+}
+
+//------------------------------------------------------------------------
+// testing the method valueOf( sal_Int64 l, sal_Int16 radix=2 )
+// for negative value
+// testing the method valueOf( sal_Int64 l, sal_Int16 radix=8 )
+// for negative value
+// testing the method valueOf( sal_Int64 l, sal_Int16 radix=10 )
+// for negative value
+// testing the method valueOf( sal_Int64 l, sal_Int16 radix=16 )
+// for negative value
+// testing the method valueOf( sal_Int64 l, sal_Int16 radix=36 )
+// for negative value
+//------------------------------------------------------------------------
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_Negative(
+=====================================================================
+Found a 65 line (168 tokens) duplication in the following files: 
+Starting at line 2229 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 1800 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64(
+    hTestResult hRtlTestResult )
+{
+    sal_Bool bRes = sal_False;
+
+    bRes =  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kBinaryNumsStr,
+                               kBinaryNumsCount, kRadixBinary, hRtlTestResult, 0),
+            "kRadixBinary",
+            "valueOf(sal_Int64, radix 2)_"
+            );
+
+    bRes &=  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kOctolNumsStr,
+                               kOctolNumsCount, kRadixOctol, hRtlTestResult, 0),
+            "kRadixOctol",
+            "valueOf(sal_Int64, radix 8)_"
+            );
+
+    bRes &=  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kDecimalNumsStr,
+                               kDecimalNumsCount, kRadixDecimal, hRtlTestResult, 0),
+            "kRadixDecimal",
+            "valueOf(sal_Int64, radix 10)_"
+            );
+    bRes &=  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kHexDecimalNumsStr,
+                               kHexDecimalNumsCount, kRadixHexdecimal, hRtlTestResult, 0),
+            "kRadixHexdecimal",
+            "valueOf(sal_Int64, radix 16)_"
+            );
+
+    bRes &=  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int64((const char**)kBase36NumsStr,
+                               kBase36NumsCount, kRadixBase36, hRtlTestResult, 0),
+            "kRadixBase36",
+            "valueOf(sal_Int64, radix 36)_"
+            );
+
+    return (bRes);
+}
+
+//------------------------------------------------------------------------
+// testing the method valueOf( sal_Int64 l, sal_Int32 radix=2 )
+// where l = large constants
+// testing the method valueOf( sal_Int64 l, sal_Int32 radix=8 )
+// where l = large constants
+// testing the method valueOf( sal_Int64 l, sal_Int32 radix=10 )
+// where l = large constants
+// testing the method valueOf( sal_Int64 l, sal_Int32 radix=16 )
+// where l = large constants
+// testing the method valueOf( sal_Int64 l, sal_Int32 radix=36 )
+// where l = large constants
+//------------------------------------------------------------------------
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int64_Bounderies(
+=====================================================================
+Found a 63 line (168 tokens) duplication in the following files: 
+Starting at line 2117 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 1639 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_Negative(
+    hTestResult hRtlTestResult )
+{
+    sal_Bool bRes = sal_False;
+    sal_Int32 inArr[kBase36NumsCount];
+    sal_Int32 i;
+
+    for (i = 0; i < kBase36NumsCount; i++ )
+        inArr[i] = -i;
+
+    bRes =  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32( kBinaryNumsStr, kBinaryNumsCount,
+                                kRadixBinary, hRtlTestResult, inArr ),
+            "negative Int32, kRadixBinary",
+            "valueOf( negative Int32, radix 2 )"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32( kOctolNumsStr, kOctolNumsCount,
+                                kRadixOctol, hRtlTestResult, inArr ),
+            "negative Int32, kRadixOctol",
+            "valueOf( negative Int32, radix 8 )"
+            );
+
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32( kDecimalNumsStr, kDecimalNumsCount,
+                                kRadixDecimal, hRtlTestResult, inArr ),
+            "negative Int32, kRadixDecimal",
+            "valueOf( negative Int32, radix 10 )"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32( kHexDecimalNumsStr, kHexDecimalNumsCount,
+                                kRadixHexdecimal, hRtlTestResult, inArr ),
+            "negative Int32, kRadixHexdecimal",
+            "valueOf( negative Int32, radix 16 )"
+            );
+
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32( kBase36NumsStr, kBase36NumsCount,
+                                kRadixBase36, hRtlTestResult, inArr ),
+            "negative Int32, kRadixBase36",
+            "valueOf( negative Int32, radix 36 )"
+            );
+
+    return ( bRes );
+}
+//------------------------------------------------------------------------
+// testing the method valueOf( sal_Int32 l, sal_Int32 radix ) where radix = -5
+//------------------------------------------------------------------------
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_WrongRadix(
+=====================================================================
+Found a 71 line (168 tokens) duplication in the following files: 
+Starting at line 2047 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 1569 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_Bounderies(
+    hTestResult hRtlTestResult )
+{
+    sal_Bool bRes = sal_False;
+
+    bRes =  c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kBinaryMaxNumsStr,
+                               kInt32MaxNumsCount, kRadixBinary, 
+                               hRtlTestResult, kInt32MaxNums),
+            "kRadixBinary",
+            "valueOf(salInt32, radix 2) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kOctolMaxNumsStr,
+                               kInt32MaxNumsCount, kRadixOctol, 
+                               hRtlTestResult, kInt32MaxNums),
+            "kRadixOctol",
+            "valueOf(salInt32, radix 8) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kDecimalMaxNumsStr,
+                               kInt32MaxNumsCount, kRadixDecimal,
+                               hRtlTestResult, kInt32MaxNums),
+            "kRadixDecimal",
+            "valueOf(salInt32, radix 10) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kHexDecimalMaxNumsStr,
+                               kInt32MaxNumsCount, kRadixHexdecimal,
+                               hRtlTestResult, kInt32MaxNums),
+            "kRadixHexdecimal",
+            "valueOf(salInt32, radix 16) Bounderies"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kBase36MaxNumsStr,
+                               kInt32MaxNumsCount, kRadixBase36,
+                               hRtlTestResult, kInt32MaxNums),
+            "kRadixBase36",
+            "valueOf(salInt32, radix 36) Bounderies"
+            );
+
+    return ( bRes );
+}
+
+//------------------------------------------------------------------------
+// testing the method valueOf( sal_Int32 i, sal_Int16 radix=2 )
+// for negative value
+// testing the method valueOf( sal_Int32 i, sal_Int16 radix=8 )
+// for negative value
+// testing the method valueOf( sal_Int32 i, sal_Int16 radix=10 )
+// for negative value
+// testing the method valueOf( sal_Int32 i, sal_Int16 radix=16 )
+// for negative value
+// testing the method valueOf( sal_Int32 i, sal_Int16 radix=36 )
+// for negative value
+//------------------------------------------------------------------------
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_Negative(
+=====================================================================
+Found a 68 line (168 tokens) duplication in the following files: 
+Starting at line 1980 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 1502 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32(
+    hTestResult hRtlTestResult )
+{
+    sal_Bool bRes = sal_False;
+
+    bRes = c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kBinaryNumsStr,
+                               kBinaryNumsCount, kRadixBinary, hRtlTestResult, 0 ),
+            "kRadixBinary",
+            "valueOf(sal_Int32, radix 2)"
+            );
+
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kOctolNumsStr,
+                               kOctolNumsCount, kRadixOctol, hRtlTestResult, 0),
+            "kRadixOctol",
+            "valueOf(sal_Int32, radix 8)"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kDecimalNumsStr,
+                               kDecimalNumsCount, kRadixDecimal, hRtlTestResult, 0),
+            "kRadixDecimal",
+            "valueOf(sal_Int32, radix 10)"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kHexDecimalNumsStr,
+                               kHexDecimalNumsCount, kRadixHexdecimal, hRtlTestResult, 0),
+            "kRadixHexdecimal",
+            "valueOf(sal_Int32, radix 16)"
+            );
+
+    bRes &= c_rtl_tres_state
+        (
+            hRtlTestResult,
+            test_valueOf_Int32((const char**)kBase36NumsStr,
+                               kBase36NumsCount, kRadixBase36, hRtlTestResult, 0),
+            "kRadixBase36",
+            "valueOf(sal_Int32, radix 36)"
+            );
+
+
+    return ( bRes );
+}
+
+//------------------------------------------------------------------------
+// testing the method valueOf( sal_Int32 l, sal_Int32 radix=2 )
+// where l = large constants
+// testing the method valueOf( sal_Int32 l, sal_Int32 radix=8 )
+// where l = large constants
+// testing the method valueOf( sal_Int32 l, sal_Int32 radix=10 )
+// where l = large constants
+// testing the method valueOf( sal_Int32 l, sal_Int32 radix=16 )
+// where l = large constants
+// testing the method valueOf( sal_Int32 l, sal_Int32 radix=36 )
+// where l = large constants
+//------------------------------------------------------------------------
+sal_Bool SAL_CALL test_rtl_OUString_valueOf_Int32_Bounderies(
+=====================================================================
+Found a 29 line (168 tokens) duplication in the following files: 
+Starting at line 3487 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 3582 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+		uno::Reference< io::XInputStream > xRawInStream = pElement->m_pStream->GetRawInStream();
+		if ( !xRawInStream.is() )
+			throw io::IOException();
+
+		uno::Reference < io::XOutputStream > xTempOut( 
+							m_pImpl->GetServiceFactory()->createInstance ( 
+									::rtl::OUString::createFromAscii( "com.sun.star.io.TempFile" ) ),
+							uno::UNO_QUERY );
+		xTempIn = uno::Reference < io::XInputStream >( xTempOut, uno::UNO_QUERY );
+		uno::Reference < io::XSeekable > xSeek( xTempOut, uno::UNO_QUERY );
+
+		if ( !xTempOut.is() || !xTempIn.is() || !xSeek.is() )
+			throw io::IOException();
+
+		// Copy temporary file to a new one
+		::comphelper::OStorageHelper::CopyInputToOutput( xRawInStream, xTempOut );
+		xTempOut->closeOutput();
+		xSeek->seek( 0 );
+
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( packages::NoEncryptionException& )
+=====================================================================
+Found a 25 line (168 tokens) duplication in the following files: 
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+
+		OUString aLabel;
+
+		// read attributes for menu item
+		for ( int i=0; i< xAttrList->getLength(); i++ )
+		{
+			OUString aName = xAttrList->getNameByIndex( i );
+			OUString aValue = xAttrList->getValueByIndex( i );
+			if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
+				aCommandId = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
+				aLabel = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
+				nHelpId = aValue.toInt32();
+		}
+
+		if ( aCommandId.getLength() > 0 )
+		{
+            USHORT nItemId;
+            if ( aCommandId.compareTo( aSlotProtocol, aSlotProtocol.getLength() ) == 0 )
+                nItemId = (USHORT) aCommandId.copy( aSlotProtocol.getLength() ).toInt32();
+            else
+                nItemId = ++(*m_pItemId);
+
+			m_pMenu->InsertItem( nItemId, String() );
+			m_pMenu->SetItemCommand( nItemId, aCommandId );
+=====================================================================
+Found a 28 line (168 tokens) duplication in the following files: 
+Starting at line 2686 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 1156 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+        osl::FileBase::getSystemPathFromFileURL( aOutDirURL, aOutputDirName );
+        
+        GetCommandOption( aArgs, OUString::createFromAscii( "v" ), aVersion );
+        bUseProduct = GetCommandOption( aArgs, OUString::createFromAscii( "p" ), aDummy );
+        GetCommandOption( aArgs, OUString::createFromAscii( "s" ), aPlatformName );
+        GetCommandOptions( aArgs, OUString::createFromAscii( "i" ), aInDirVector );
+		GetCommandOption( aArgs, OUString::createFromAscii( "f" ), aErrOutputFileName );
+        GetCommandOption( aArgs, OUString::createFromAscii( "r" ), aUseRes );
+
+        if ( aVersion.getLength() > 0 &&
+             aPlatformName.getLength() > 0 &&
+             aUseRes.getLength() > 0 &&
+             aInDirVector.size() > 0 )
+        {
+            Convert( bUseProduct, aUseRes, aVersion, aOutputDirName, aPlatformName, aInDirVector, aErrOutputFileName );
+        }
+        else
+        {
+            ShowUsage();
+            exit( -1 );
+        }
+    }
+    else
+    {
+        ShowUsage();
+        exit( -1 );
+    }
+}
+=====================================================================
+Found a 63 line (168 tokens) duplication in the following files: 
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/workbench/XTDo.cxx
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testcopy/XTDataObject.cxx
+
+CEnumFormatEtc::~CEnumFormatEtc( )
+{
+}
+
+//----------------------------------------------------------------------------
+// IUnknown->QueryInterface
+//----------------------------------------------------------------------------
+
+STDMETHODIMP CEnumFormatEtc::QueryInterface( REFIID iid, LPVOID* ppvObject )
+{
+	if ( NULL == ppvObject )
+		return E_INVALIDARG;
+
+	HRESULT hr = E_NOINTERFACE;
+
+	*ppvObject = NULL;
+
+	if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IEnumFORMATETC ) == iid ) )
+	{
+		*ppvObject = static_cast< IUnknown* >( this );
+		static_cast< LPUNKNOWN >( *ppvObject )->AddRef( );
+		hr = S_OK;
+	}
+
+	return hr;
+}
+
+//----------------------------------------------------------------------------
+// IUnknown->AddRef
+//----------------------------------------------------------------------------
+
+STDMETHODIMP_(ULONG) CEnumFormatEtc::AddRef( )
+{
+	// keep the dataobject alive
+	m_pUnkDataObj->AddRef( );		
+	return InterlockedIncrement( &m_nRefCnt );
+}
+
+//----------------------------------------------------------------------------
+// IUnknown->Release
+//----------------------------------------------------------------------------
+
+STDMETHODIMP_(ULONG) CEnumFormatEtc::Release( )
+{
+	// release the outer dataobject		
+	m_pUnkDataObj->Release( );
+
+	// we need a helper variable because it's
+	// not allowed to access a member variable
+	// after an object is destroyed
+	ULONG nRefCnt = InterlockedDecrement( &m_nRefCnt );
+	if ( 0 == nRefCnt )
+		delete this;
+
+	return nRefCnt;
+}
+
+//----------------------------------------------------------------------------
+// IEnumFORMATETC->Next
+//----------------------------------------------------------------------------
+
+STDMETHODIMP CEnumFormatEtc::Next( ULONG celt, LPFORMATETC rgelt, ULONG* pceltFetched )
+{
+=====================================================================
+Found a 44 line (168 tokens) duplication in the following files: 
+Starting at line 153 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 234 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FStatement.cxx
+
+}
+// -------------------------------------------------------------------------
+
+void SAL_CALL OStatement_Base::close(  ) throw(SQLException, RuntimeException)
+{
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+	}
+	dispose();
+}
+// -------------------------------------------------------------------------
+
+void OStatement_Base::reset() throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+                
+
+	clearWarnings ();
+
+	if (m_xResultSet.get().is())
+		clearMyResultSet();
+}
+//--------------------------------------------------------------------
+// clearMyResultSet
+// If a ResultSet was created for this Statement, close it
+//--------------------------------------------------------------------
+
+void OStatement_Base::clearMyResultSet () throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+		
+    try
+    {
+        Reference<XCloseable> xCloseable;
+        if ( ::comphelper::query_interface( m_xResultSet.get(), xCloseable ) )
+            xCloseable->close();
+    }
+    catch( const DisposedException& ) { }
+
+	m_xResultSet = Reference< XResultSet>();
+}
+=====================================================================
+Found a 30 line (168 tokens) duplication in the following files: 
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localfilelayer.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localfilelayer.cxx
+
+void SAL_CALL FullCompositeLocalFileLayer::replaceWith(
+        const uno::Reference<backend::XLayer>& aNewLayer) 
+    throw (backend::MalformedDataException, lang::NullPointerException,
+			lang::WrappedTargetException, uno::RuntimeException)
+{
+    if (!aNewLayer.is())
+    {
+        rtl::OUString const sMessage(RTL_CONSTASCII_USTRINGPARAM(
+            "LocalFileLayer - Cannot replaceWith: Replacement layer is NULL."));
+
+        throw  lang::NullPointerException(sMessage,*this);
+    }
+    OSL_ENSURE( !uno::Reference<backend::XCompositeLayer>::query(aNewLayer).is(),
+                "Warning: correct updates with composite layers are not implemented");
+
+    uno::Reference<io::XActiveDataSource> xAS(mLayerWriter, uno::UNO_QUERY_THROW);
+
+    LocalOutputStream * pStream = new LocalOutputStream(getFileUrl());
+    uno::Reference<io::XOutputStream> xStream( pStream );
+        
+    xAS->setOutputStream(xStream);
+
+    aNewLayer->readData(mLayerWriter) ;
+
+    pStream->finishOutput();
+
+    // clear the output stream
+    xStream.clear();
+    xAS->setOutputStream(xStream);
+}
+=====================================================================
+Found a 34 line (168 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+				default:
+					throw IllegalArgument("the option is unknown" + OString(av[i]));
+			}
+		} else
+		{
+			if (av[i][0] == '@')
+			{
+				FILE* cmdFile = fopen(av[i]+1, "r");
+		  		if( cmdFile == NULL )
+      			{
+					fprintf(stderr, "%s", prepareHelp().getStr());
+					ret = sal_False;
+				} else
+				{
+					int rargc=0;
+					char* rargv[512];
+					char  buffer[512];
+
+					while ( fscanf(cmdFile, "%s", buffer) != EOF )
+					{
+						rargv[rargc]= strdup(buffer);
+						rargc++;
+					}
+					fclose(cmdFile);
+					
+					ret = initOptions(rargc, rargv, bCmdFile);
+					
+					for (long j=0; j < rargc; j++) 
+					{
+						free(rargv[j]);
+					}
+				}		
+			} else
+			{
+=====================================================================
+Found a 20 line (168 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VPolarCoordinateSystem.cxx
+
+void VPolarCoordinateSystem::initVAxisInList()
+{
+    if(!m_xLogicTargetForAxes.is() || !m_xFinalTarget.is() || !m_xCooSysModel.is() )
+        return;
+
+    sal_Int32 nDimensionCount = m_xCooSysModel->getDimension();
+    bool bSwapXAndY = this->getPropertySwapXAndYAxis();
+
+    tVAxisMap::iterator aIt( m_aAxisMap.begin() );
+    tVAxisMap::const_iterator aEnd( m_aAxisMap.end() );
+    for( ; aIt != aEnd; ++aIt )
+    {
+        VAxisBase* pVAxis = aIt->second.get();
+        if( pVAxis )
+        {
+            sal_Int32 nDimensionIndex = aIt->first.first;
+            sal_Int32 nAxisIndex = aIt->first.second;
+            pVAxis->setExplicitScaleAndIncrement( this->getExplicitScale( nDimensionIndex, nAxisIndex ), this->getExplicitIncrement(nDimensionIndex, nAxisIndex) );
+            pVAxis->initPlotter(m_xLogicTargetForAxes,m_xFinalTarget,m_xShapeFactory
+                , this->createCIDForAxis( getAxisByDimension( nDimensionIndex, nAxisIndex ), nDimensionIndex, nAxisIndex ) );
+=====================================================================
+Found a 27 line (168 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+=====================================================================
+Found a 42 line (168 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 365 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx
+
+                          break;
+                        }
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                                	pUnoArgs[nPos], pParamTypeDescr,
+					pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+=====================================================================
+Found a 27 line (168 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+=====================================================================
+Found a 35 line (168 tokens) duplication in the following files: 
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
+=====================================================================
+Found a 42 line (168 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+=====================================================================
+Found a 29 line (168 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 35 line (168 tokens) duplication in the following files: 
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
+
+				aParam.pTypeRef = pAttrTypeRef;
+				aParam.bIn		= sal_True;
+				aParam.bOut		= sal_False;
+
+				eRet = cpp2uno_call( pCppI, aMemberDescr.get(),
+						0, // indicates void return
+						1, &aParam,
+						gpreg, fpreg, ovrflw, pRegisterReturn );
+			}
+			break;
+		}
+		case typelib_TypeClass_INTERFACE_METHOD:
+		{
+			// is METHOD
+			switch ( nFunctionIndex )
+			{
+				case 1: // acquire()
+					pCppI->acquireProxy(); // non virtual call!
+					eRet = typelib_TypeClass_VOID;
+					break;
+				case 2: // release()
+					pCppI->releaseProxy(); // non virtual call!
+					eRet = typelib_TypeClass_VOID;
+					break;
+				case 0: // queryInterface() opt
+				{
+					typelib_TypeDescription * pTD = 0;
+					TYPELIB_DANGER_GET( &pTD, reinterpret_cast<Type *>( gpreg[2] )->getTypeLibType() );
+					if ( pTD )
+					{
+						XInterface * pInterface = 0;
+						(*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)
+							( pCppI->getBridge()->getCppEnv(),
+							  (void **)&pInterface,
+							  pCppI->getOid().pData,
+=====================================================================
+Found a 42 line (168 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+                          break;
+                        }
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                                	pUnoArgs[nPos], pParamTypeDescr,
+					pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+=====================================================================
+Found a 27 line (168 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+=====================================================================
+Found a 35 line (168 tokens) duplication in the following files: 
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData, 
+=====================================================================
+Found a 42 line (168 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+                          break;
+                        }
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+  	                        pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                                	pUnoArgs[nPos], pParamTypeDescr,
+					pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+=====================================================================
+Found a 27 line (168 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+			pCppStack += sizeof( void* );
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+	 	if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))  // value
+		{
+			pCppArgs[nPos] = pUnoArgs[nPos] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr);
+=====================================================================
+Found a 35 line (167 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+
+	{ XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_STYLE, XML_FOOTNOTE_MAX_HEIGHT, XML_ATACTION_INCH2IN,
+=====================================================================
+Found a 35 line (167 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+Starting at line 721 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+
+	{ XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_ATACTION_COPY,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_FO, XML_KEEP_WITH_NEXT, XML_PTACTION_KEEP_WITH_NEXT,
+=====================================================================
+Found a 39 line (167 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static beans::Property aPropertyInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory properties
+		///////////////////////////////////////////////////////////////
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard properties
+		///////////////////////////////////////////////////////////////
+
+		///////////////////////////////////////////////////////////////
+		// New properties
+		///////////////////////////////////////////////////////////////
+	};
+    return uno::Sequence<
+            beans::Property >( aPropertyInfoTable, PROPERTY_COUNT );
+=====================================================================
+Found a 41 line (167 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 505 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+		if ( rRect.nLeft < 0 )
+		{
+			cAry[0] |= 0x80;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[0] |= 0x40;
+					}
+					else
+						cAry[0] |= 0x30;
+				}
+				else
+					cAry[0] |= 0x20;
+			}
+			else
+				cAry[0] |= 0x10;
+		}
+
+		nNum = (UINT32)(INT32)rRect.nTop;
+=====================================================================
+Found a 39 line (167 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+                Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+                aTargetURL.Complete = aCommandURL;
+                xURLTransformer->parseStrict( aTargetURL );
+                xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+
+                xStatusListener = Reference< XStatusListener >( static_cast< OWeakObject* >( this ), UNO_QUERY );
+                URLToDispatchMap::iterator aIter = m_aListenerMap.find( aCommandURL );
+                if ( aIter != m_aListenerMap.end() )
+                {
+                    Reference< XDispatch > xOldDispatch( aIter->second );
+                    aIter->second = xDispatch;
+
+                    try
+                    {
+                        if ( xOldDispatch.is() )
+                            xOldDispatch->removeStatusListener( xStatusListener, aTargetURL );
+                    }
+                    catch ( Exception& )
+                    {
+                    }
+                }
+                else
+                    m_aListenerMap.insert( URLToDispatchMap::value_type( aCommandURL, xDispatch ));
+            }
+        }
+    }
+
+    // Call without locked mutex as we are called back from dispatch implementation
+    try
+    {
+        if ( xDispatch.is() )
+            xDispatch->addStatusListener( xStatusListener, aTargetURL );
+    }
+    catch ( Exception& )
+    {
+    }
+}
+
+void StatusbarController::removeStatusListener( const rtl::OUString& aCommandURL )
+=====================================================================
+Found a 36 line (167 tokens) duplication in the following files: 
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/store.cxx
+Starting at line 723 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/store.cxx
+
+storeError SAL_CALL store_rename (
+	storeFileHandle Handle,
+	rtl_uString *pSrcPath, rtl_uString *pSrcName,
+	rtl_uString *pDstPath, rtl_uString *pDstName
+) SAL_THROW_EXTERN_C()
+{
+	storeError eErrCode = store_E_None;
+
+	OStoreHandle<OStorePageManager> xManager (
+		OStoreHandle<OStorePageManager>::query (Handle));
+	if (!xManager.is())
+		return store_E_InvalidHandle;
+
+	if (!(pSrcPath && pSrcName))
+		return store_E_InvalidParameter;
+
+	if (!(pDstPath && pDstName))
+		return store_E_InvalidParameter;
+
+	// Setup 'Source' page key.
+	OString aSrcPath (
+		pSrcPath->buffer, pSrcPath->length, RTL_TEXTENCODING_UTF8);
+	OString aSrcName (
+		pSrcName->buffer, pSrcName->length, RTL_TEXTENCODING_UTF8);
+	OStorePageKey aSrcKey;
+
+	eErrCode = OStorePageNameBlock::namei (
+		aSrcPath.pData, aSrcName.pData, aSrcKey);
+	if (eErrCode != store_E_None)
+		return eErrCode;
+
+	// Rename 'Source' into 'Destination'.
+	OString aDstPath (
+		pDstPath->buffer, pDstPath->length, RTL_TEXTENCODING_UTF8);
+	OString aDstName (
+		pDstName->buffer, pDstName->length, RTL_TEXTENCODING_UTF8);
+=====================================================================
+Found a 9 line (167 tokens) duplication in the following files: 
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual void SAL_CALL setEnum( TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Enum = _enum; }
+    virtual void SAL_CALL setString( const ::rtl::OUString& _string ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.String = _string; }
+    virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _interface ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Interface = _interface; }
+    virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& _any ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Any = _any; }
+    virtual void SAL_CALL setSequence( const ::com::sun::star::uno::Sequence<TestElement >& _sequence ) throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 20 line (167 tokens) duplication in the following files: 
+Starting at line 1455 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/sfxbasecontroller.cxx
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindow.cxx
+
+	pWindow->GetBorder( rEvent.LeftInset, rEvent.TopInset, rEvent.RightInset, rEvent.BottomInset );
+}
+
+void ImplInitKeyEvent( ::com::sun::star::awt::KeyEvent& rEvent, const KeyEvent& rEvt )
+{
+	rEvent.Modifiers = 0;
+	if ( rEvt.GetKeyCode().IsShift() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::SHIFT;
+	if ( rEvt.GetKeyCode().IsMod1() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
+	if ( rEvt.GetKeyCode().IsMod2() )
+		rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+
+	rEvent.KeyCode = rEvt.GetKeyCode().GetCode();
+	rEvent.KeyChar = rEvt.GetCharCode();
+	rEvent.KeyFunc = sal::static_int_cast< sal_Int16 >(
+        rEvt.GetKeyCode().GetFunction());
+}
+
+void ImplInitMouseEvent( awt::MouseEvent& rEvent, const MouseEvent& rEvt )
+=====================================================================
+Found a 34 line (167 tokens) duplication in the following files: 
+Starting at line 1781 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output.cxx
+Starting at line 1819 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output.cxx
+
+BOOL ScOutputData::SetChangedClip()
+{
+	PolyPolygon aPoly;
+
+	Rectangle aDrawingRect;
+	aDrawingRect.Left() = nScrX;
+	aDrawingRect.Right() = nScrX+nScrW-1;
+
+	BOOL	bHad	= FALSE;
+	long	nPosY	= nScrY;
+	SCSIZE	nArrY;
+	for (nArrY=1; nArrY+1<nArrCount; nArrY++)
+	{
+		RowInfo* pThisRowInfo = &pRowInfo[nArrY];
+
+		if ( pThisRowInfo->bChanged )
+		{
+			if (!bHad)
+			{
+				aDrawingRect.Top() = nPosY;
+				bHad = TRUE;
+			}
+			aDrawingRect.Bottom() = nPosY + pRowInfo[nArrY].nHeight - 1;
+		}
+		else if (bHad)
+		{
+			aPoly.Insert( Polygon( pDev->PixelToLogic(aDrawingRect) ) );
+			bHad = FALSE;
+		}
+		nPosY += pRowInfo[nArrY].nHeight;
+	}
+
+	if (bHad)
+		aPoly.Insert( Polygon( pDev->PixelToLogic(aDrawingRect) ) );
+=====================================================================
+Found a 14 line (167 tokens) duplication in the following files: 
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/pagedlg/scuitphfedit.cxx
+Starting at line 755 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/pagedlg/scuitphfedit.cxx
+
+        case ePageFileNameEntry:
+        {
+            ClearTextAreas();
+            ESelection aSel(0,0,0,0);
+            String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
+            aPageEntry += ' ';
+            aWndCenter.GetEditEngine()->SetText(aPageEntry);
+            aSel.nEndPos = aPageEntry.Len();
+            aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+            ++aSel.nEndPos;
+            String aCommaSpace(RTL_CONSTASCII_STRINGPARAM(", "));
+            aWndCenter.GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+            aSel.nEndPos = sal::static_int_cast<xub_StrLen>( aSel.nEndPos + aCommaSpace.Len() );
+            aWndCenter.GetEditEngine()->QuickInsertField( SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+=====================================================================
+Found a 38 line (167 tokens) duplication in the following files: 
+Starting at line 3316 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3668 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+			pMatX->PutDouble((double)i, i-1);
+		nCase = 1;
+	}
+	SCSIZE nCXN, nRXN;
+	SCSIZE nCountXN;
+	if (!pMatNewX)
+	{
+		nCXN = nCX;
+		nRXN = nRX;
+		nCountXN = nCXN * nRXN;
+		pMatNewX = pMatX;
+	}
+	else
+	{
+		pMatNewX->GetDimensions(nCXN, nRXN);
+		if ((nCase == 2 && nCX != nCXN) || (nCase == 3 && nRX != nRXN))
+		{
+			SetIllegalArgument();
+			return;
+		}
+		nCountXN = nCXN * nRXN;
+		for ( SCSIZE i = 0; i < nCountXN; i++ )
+			if (!pMatNewX->IsValue(i))
+			{
+				SetIllegalArgument();
+				return;
+			}
+	}
+	ScMatrixRef pResMat;
+	if (nCase == 1)
+	{
+		double fCount   = 0.0;
+		double fSumX    = 0.0;
+		double fSumSqrX = 0.0;
+		double fSumY    = 0.0;
+		double fSumSqrY = 0.0;
+		double fSumXY   = 0.0;
+		double fValX, fValY;
+=====================================================================
+Found a 48 line (167 tokens) duplication in the following files: 
+Starting at line 2855 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3260 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+			return;
+		}
+	if (pMatX)
+	{
+		pMatX->GetDimensions(nCX, nRX);
+		SCSIZE nCountX = nCX * nRX;
+		for (nElem = 0; nElem < nCountX; nElem++)
+			if (!pMatX->IsValue(nElem))
+			{
+				SetIllegalArgument();
+				return;
+			}
+		if (nCX == nCY && nRX == nRY)
+			nCase = 1;					// einfache Regression
+		else if (nCY != 1 && nRY != 1)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else if (nCY == 1)
+		{
+			if (nRX != nRY)
+			{
+				SetIllegalParameter();
+				return;
+			}
+			else
+			{
+				nCase = 2;				// zeilenweise
+				N = nRY;
+				M = nCX;
+			}
+		}
+		else if (nCX != nCY)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else
+		{
+			nCase = 3;					// spaltenweise
+			N = nCY;
+			M = nRX;
+		}
+	}
+	else
+	{
+		pMatX = GetNewMat(nCY, nRY);
+=====================================================================
+Found a 51 line (167 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/cpp/DocumentLoader/DocumentLoader.cxx
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/workben/treecontrol/treetest.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("treetest.rdb") ), sal_True, sal_False );
+
+    /* Bootstraps an initial component context with service manager upon a given
+       registry. This includes insertion of initial services:
+       - (registry) service manager, shared lib loader,
+       - simple registry, nested registry,
+       - implementation registration
+       - registry typedescription provider, typedescription manager (also
+         installs it into cppu core)
+    */
+    Reference< XComponentContext > xComponentContext(
+        ::cppu::bootstrap_InitialComponentContext( xSimpleRegistry ) );
+    
+    /* Gets the service manager instance to be used (or null). This method has
+       been added for convenience, because the service manager is a often used
+       object.
+    */
+	Reference< XMultiComponentFactory > xMultiComponentFactoryClient(
+		xComponentContext->getServiceManager() );
+
+    /* Creates an instance of a component which supports the services specified
+       by the factory.
+    */
+    Reference< XInterface > xInterface =
+        xMultiComponentFactoryClient->createInstanceWithContext( 
+            OUString::createFromAscii( "com.sun.star.bridge.UnoUrlResolver" ),
+            xComponentContext );
+
+    Reference< XUnoUrlResolver > resolver( xInterface, UNO_QUERY );
+
+    // Resolves the component context from the office, on the uno URL given by argv[1].
+    try
+    {
+        xInterface = Reference< XInterface >( 
+            resolver->resolve( sConnectionString ), UNO_QUERY );
+    }
+    catch ( Exception& e )
+    {
+		printf("Error: cannot establish a connection using '%s':\n       %s\n",
+               OUStringToOString(sConnectionString, RTL_TEXTENCODING_ASCII_US).getStr(),
+               OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US).getStr());
+		exit(1);        
+    }
+    
+    // gets the server component context as property of the office component factory
+    Reference< XPropertySet > xPropSet( xInterface, UNO_QUERY );
+    xPropSet->getPropertyValue( OUString::createFromAscii("DefaultContext") ) >>= xComponentContext;
+
+    // gets the service manager from the office
+    Reference< XMultiComponentFactory > xMultiComponentFactoryServer(
+        xComponentContext->getServiceManager() );
+=====================================================================
+Found a 6 line (167 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 772 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d60 - 4d6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d70 - 4d7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d80 - 4d8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4d90 - 4d9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 4da0 - 4daf
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+=====================================================================
+Found a 6 line (167 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_th.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_th.cxx
+
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_COM, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // BV2  8
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // BD   9
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // TONE 10
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AD1  11
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AD2  12
+	{   ST_NDP, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT, ST_NXT   }, // AD3  13
+=====================================================================
+Found a 24 line (167 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/recentfilesmenucontroller.cxx
+
+void SAL_CALL RecentFilesMenuController::setPopupMenu( const Reference< css::awt::XPopupMenu >& xPopupMenu ) throw ( RuntimeException )
+{
+    ResetableGuard aLock( m_aLock );
+
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( m_xFrame.is() && !m_xPopupMenu.is() )
+    {
+        // Create popup menu on demand
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        m_xPopupMenu = xPopupMenu;
+	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+
+        Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance(
+                                                        rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
+                                                    UNO_QUERY );
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+
+        com::sun::star::util::URL aTargetURL;
+        aTargetURL.Complete = m_aCommandURL;
+        xURLTransformer->parseStrict( aTargetURL );
+        m_xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+=====================================================================
+Found a 30 line (167 tokens) duplication in the following files: 
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/controlmenucontroller.cxx
+Starting at line 644 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/newmenucontroller.cxx
+
+void SAL_CALL NewMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+{
+    const rtl::OUString aFrameName( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+    const rtl::OUString aCommandURLName( RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ));
+
+    ResetableGuard aLock( m_aLock );
+
+    sal_Bool bInitalized( m_bInitialized );
+    if ( !bInitalized )
+    {
+        PropertyValue       aPropValue;
+        rtl::OUString       aCommandURL;
+        Reference< XFrame > xFrame;
+
+        for ( int i = 0; i < aArguments.getLength(); i++ )
+        {
+            if ( aArguments[i] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "Frame" ))
+                    aPropValue.Value >>= xFrame;
+                else if ( aPropValue.Name.equalsAscii( "CommandURL" ))
+                    aPropValue.Value >>= aCommandURL;
+            }
+        }
+
+        if ( xFrame.is() && aCommandURL.getLength() )
+        {
+            m_xFrame        = xFrame;
+            m_aCommandURL   = aCommandURL;
+            m_bInitialized  = sal_True;
+=====================================================================
+Found a 28 line (167 tokens) duplication in the following files: 
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+			else if ( URL.Complete == m_aInterceptedURL[5] )
+			{
+				uno::Sequence< beans::PropertyValue > aNewArgs = Arguments;
+				sal_Int32 nInd = 0;
+	
+				while( nInd < aNewArgs.getLength() )
+				{
+					if ( aNewArgs[nInd].Name.equalsAscii( "SaveTo" ) )
+					{
+						aNewArgs[nInd].Value <<= sal_True;
+						break;
+					}
+					nInd++;
+				}
+			
+				if ( nInd == aNewArgs.getLength() )
+				{
+					aNewArgs.realloc( nInd + 1 );
+					aNewArgs[nInd].Name = ::rtl::OUString::createFromAscii( "SaveTo" );
+					aNewArgs[nInd].Value <<= sal_True;
+				}
+
+				uno::Reference< frame::XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(
+					URL, ::rtl::OUString::createFromAscii( "_self" ), 0 );
+				if ( xDispatch.is() )
+					xDispatch->dispatch( URL, aNewArgs );
+			}
+		}
+=====================================================================
+Found a 45 line (167 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/implbase.cxx
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/implbase.cxx
+
+void WeakAggComponentImplHelperBase::dispose()
+    throw (RuntimeException)
+{
+    ClearableMutexGuard aGuard( rBHelper.rMutex );
+    if (!rBHelper.bDisposed && !rBHelper.bInDispose)
+    {
+        rBHelper.bInDispose = sal_True;
+        aGuard.clear();
+        try
+        {
+            // side effect: keeping a reference to this
+            lang::EventObject aEvt( static_cast< OWeakObject * >( this ) );
+            try
+            {
+                rBHelper.aLC.disposeAndClear( aEvt );
+                disposing();
+            }
+            catch (...)
+            {
+                MutexGuard aGuard2( rBHelper.rMutex );
+                // bDisposed and bInDispose must be set in this order:
+                rBHelper.bDisposed = sal_True;
+                rBHelper.bInDispose = sal_False;
+                throw;
+            }
+            MutexGuard aGuard2( rBHelper.rMutex );
+            // bDisposed and bInDispose must be set in this order:
+            rBHelper.bDisposed = sal_True;
+            rBHelper.bInDispose = sal_False;
+        }
+        catch (RuntimeException &)
+        {
+            throw;
+        }
+        catch (Exception & exc)
+        {
+            throw RuntimeException(
+                OUString( RTL_CONSTASCII_USTRINGPARAM(
+                              "unexpected UNO exception caught: ") ) +
+                exc.Message, Reference< XInterface >() );
+        }
+    }
+}
+//__________________________________________________________________________________________________
+void WeakAggComponentImplHelperBase::addEventListener(
+=====================================================================
+Found a 9 line (167 tokens) duplication in the following files: 
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual void SAL_CALL setEnum( TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Enum = _enum; }
+    virtual void SAL_CALL setString( const ::rtl::OUString& _string ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.String = _string; }
+    virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _interface ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Interface = _interface; }
+    virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& _any ) throw(::com::sun::star::uno::RuntimeException)
+		{ _aData.Any = _any; }
+    virtual void SAL_CALL setSequence( const ::com::sun::star::uno::Sequence<TestElement >& _sequence ) throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 42 line (167 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+
+                break;
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+=====================================================================
+Found a 23 line (166 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/odsl/ODSLParser.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/FileXXmlReader.cxx
+
+  MyHandler handler;
+
+  if (aArguments.getLength()!=1)
+  {
+	  return 1;
+  }
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+		// construct an URL of the input file name
+		rtl::OUString arg=aArguments[0];
+		rtl_uString *dir=NULL;
+		osl_getProcessWorkingDir(&dir);
+		rtl::OUString absFileUrl;
+		osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+		rtl_uString_release(dir);
+
+		// get file simple file access service
+		uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+=====================================================================
+Found a 45 line (166 tokens) duplication in the following files: 
+Starting at line 153 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx
+
+ 	setErrorRecorder();
+
+	pMngr = pSecEnv->createKeysManager() ; //i39448
+	if( !pMngr ) {
+		throw RuntimeException() ;
+	}
+
+	//Create Signature context
+	pDsigCtx = xmlSecDSigCtxCreate( pMngr ) ;
+	if( pDsigCtx == NULL )
+	{
+		pSecEnv->destroyKeysManager( pMngr ) ; //i39448
+		//throw XMLSignatureException() ;
+		clearErrorRecorder();
+		return aTemplate;
+	}
+
+	//Sign the template
+	if( xmlSecDSigCtxSign( pDsigCtx , pNode ) == 0 ) 
+	{
+        if (pDsigCtx->status == xmlSecDSigStatusSucceeded)
+            aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED);
+        else
+            aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
+	}
+    else
+	{
+        aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
+	}
+
+
+	xmlSecDSigCtxDestroy( pDsigCtx ) ;
+	pSecEnv->destroyKeysManager( pMngr ) ; //i39448
+
+	//Unregistered the stream/URI binding
+	if( xUriBinding.is() )
+		xmlUnregisterStreamInputCallbacks() ;
+
+	clearErrorRecorder();
+	return aTemplate ;
+}
+
+/* XXMLSignature */
+Reference< XXMLSignatureTemplate >
+SAL_CALL XMLSignature_NssImpl :: validate(
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkdata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedata_mask.h
+
+static char movedata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xe0, 0x01, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/linkdata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedata_curs.h
+
+static char movedata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydlnk_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedlnk_mask.h
+
+static char movedlnk_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xf8, 0xe3, 0x01, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydlnk_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedlnk_curs.h
+
+static char movedlnk_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xf0, 0x81, 0x00, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedata_mask.h
+
+static char movedata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xe0, 0x01, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movedata_curs.h
+
+static char movedata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00,
+=====================================================================
+Found a 39 line (166 tokens) duplication in the following files: 
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+            static const beans::Property aFolderPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                ),
+                ///////////////////////////////////////////////////////////////
+                // Optional standard properties
+                ///////////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) ),
+=====================================================================
+Found a 27 line (166 tokens) duplication in the following files: 
+Starting at line 1215 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1211 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+uno::Sequence< uno::Any > Content::setPropertyValues(
+        const uno::Sequence< beans::PropertyValue >& rValues,
+        const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+    throw( uno::Exception )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+    uno::Sequence< uno::Any > aRet( rValues.getLength() );
+    uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() );
+	sal_Int32 nChanged = 0;
+
+    beans::PropertyChangeEvent aEvent;
+    aEvent.Source         = static_cast< cppu::OWeakObject * >( this );
+	aEvent.Further 		  = sal_False;
+//	aEvent.PropertyName	  =
+	aEvent.PropertyHandle = -1;
+//	aEvent.OldValue		  =
+//	aEvent.NewValue       =
+
+    const beans::PropertyValue* pValues = rValues.getConstArray();
+	sal_Int32 nCount = rValues.getLength();
+
+    uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet;
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+	sal_Bool bExchange = sal_False;
+    rtl::OUString aOldTitle;
+=====================================================================
+Found a 39 line (166 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 1374 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static beans::Property aLinkPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" ) ),
+=====================================================================
+Found a 21 line (166 tokens) duplication in the following files: 
+Starting at line 1146 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+Starting at line 1290 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+
+			if( lcl_HasRotation( *pTmp, pRotate, bTwo ) )
+			{
+				if( bTwo == bOn )
+				{
+					if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() )
+						aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
+				}
+				else
+				{
+					bOn = bTwo;
+					if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() )
+						aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() );
+					else if( aEnd.Count() > 1 )
+						aEnd.Remove( aEnd.Count()-1, 1 );
+					else
+						aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
+				}
+			}
+		}
+		if( bOn && aEnd.Count() )
+			rPos = aEnd[ aEnd.Count()-1 ];
+=====================================================================
+Found a 22 line (166 tokens) duplication in the following files: 
+Starting at line 4306 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+Starting at line 4345 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+
+        {
+            SwRect aPaintRect( aRect );
+            ::SwAlignRect( aPaintRect, _rFrm.GetShell() );
+            // if <SwAlignRect> reveals rectangle with no width, adjust
+            // rectangle to the prior top postion with width of one twip.
+            if ( (aPaintRect.*_rRectFn->fnGetHeight)() == 0 )
+            {
+                if ( _bTop )
+                {
+                    (aPaintRect.*_rRectFn->fnSetTop)( (aRect.*_rRectFn->fnGetTop)() );
+                    (aPaintRect.*_rRectFn->fnSetBottom)( (aRect.*_rRectFn->fnGetTop)() );
+                    (aPaintRect.*_rRectFn->fnAddBottom)( 1 );
+                }
+                else
+                {
+                    (aPaintRect.*_rRectFn->fnSetTop)( (aRect.*_rRectFn->fnGetBottom)() - 1 );
+                    (aPaintRect.*_rRectFn->fnSetBottom)( (aRect.*_rRectFn->fnGetBottom)() - 1 );
+                    (aPaintRect.*_rRectFn->fnAddBottom)( 1 );
+                }
+            }
+            _rFrm.PaintBorderLine( _rRect, aPaintRect, &_rPage, &pTopBottomBorder->GetColor() );
+        }
+=====================================================================
+Found a 22 line (166 tokens) duplication in the following files: 
+Starting at line 4202 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+Starting at line 4242 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/paintfrm.cxx
+
+        {
+            SwRect aPaintRect( aRect );
+            ::SwAlignRect( aPaintRect, _rFrm.GetShell() );
+            // if <SwAlignRect> reveals rectangle with no width, adjust
+            // rectangle to the prior left postion with width of one twip.
+            if ( (aPaintRect.*_rRectFn->fnGetWidth)() == 0 )
+            {
+                if ( _bLeft )
+                {
+                    (aPaintRect.*_rRectFn->fnSetLeft)( (aRect.*_rRectFn->fnGetLeft)() );
+                    (aPaintRect.*_rRectFn->fnSetRight)( (aRect.*_rRectFn->fnGetLeft)() );
+                    (aPaintRect.*_rRectFn->fnAddRight)( 1 );
+                }
+                else
+                {
+                    (aPaintRect.*_rRectFn->fnSetLeft)( (aRect.*_rRectFn->fnGetRight)() - 1 );
+                    (aPaintRect.*_rRectFn->fnSetRight)( (aRect.*_rRectFn->fnGetRight)() - 1 );
+                    (aPaintRect.*_rRectFn->fnAddRight)( 1 );
+                }
+            }
+            _rFrm.PaintBorderLine( _rRect, aPaintRect, &_rPage, &pLeftRightBorder->GetColor() );
+        }
+=====================================================================
+Found a 26 line (166 tokens) duplication in the following files: 
+Starting at line 4845 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4423 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0x80000000, 0x80000000,
+	NULL, 0
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartExtractVert[] =
+{
+	{ 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] = 
+{
+	{ { 5400, 10800 }, { 16200, 21600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] =
+{
+	{ 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 }
+};
+static const mso_CustomShape msoFlowChartExtract =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartExtractVert, sizeof( mso_sptFlowChartExtractVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartExtractTextRect, sizeof( mso_sptFlowChartExtractTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 19 line (166 tokens) duplication in the following files: 
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuoaprms.cxx
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuoaprms.cxx
+
+		if (pInfo)
+		{
+			bActive         = pInfo->mbActive;          nAnimationSet       = ATTR_SET;
+			eEffect         = pInfo->meEffect;          nEffectSet          = ATTR_SET;
+			eTextEffect     = pInfo->meTextEffect;      nTextEffectSet      = ATTR_SET;
+			eSpeed          = pInfo->meSpeed;           nSpeedSet           = ATTR_SET;
+			bFadeOut        = pInfo->mbDimPrevious;     nFadeOutSet         = ATTR_SET;
+			aFadeColor      = pInfo->maDimColor;        nFadeColorSet       = ATTR_SET;
+			bInvisible      = pInfo->mbDimHide;         nInvisibleSet       = ATTR_SET;
+			bSoundOn        = pInfo->mbSoundOn;         nSoundOnSet         = ATTR_SET;
+			aSound          = pInfo->maSoundFile;       nSoundFileSet       = ATTR_SET;
+			bPlayFull       = pInfo->mbPlayFull;        nPlayFullSet        = ATTR_SET;
+			eClickAction    = pInfo->meClickAction;     nClickActionSet     = ATTR_SET;
+			aBookmark       = pInfo->maBookmark;        nBookmarkSet        = ATTR_SET;
+			eSecondEffect   = pInfo->meSecondEffect;    nSecondEffectSet    = ATTR_SET;
+			eSecondSpeed    = pInfo->meSecondSpeed;     nSecondSpeedSet     = ATTR_SET;
+			bSecondSoundOn  = pInfo->mbSecondSoundOn;   nSecondSoundOnSet   = ATTR_SET;
+			bSecondPlayFull = pInfo->mbSecondPlayFull;  nSecondPlayFullSet  = ATTR_SET;
+		}
+=====================================================================
+Found a 25 line (166 tokens) duplication in the following files: 
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 907 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+	delete pFilterBox;
+	delete pFilterFloat;
+
+	USHORT i;
+	ScDocument* pDoc = pViewData->GetDocument();
+	SCTAB nTab = pViewData->GetTabNo();
+	BOOL bLayoutRTL = pDoc->IsLayoutRTL( nTab );
+
+	long nSizeX  = 0;
+	long nSizeY  = 0;
+	long nHeight = 0;
+	pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
+	Point aPos = pViewData->GetScrPos( nCol, nRow, eWhich );
+	if ( bLayoutRTL )
+		aPos.X() -= nSizeX;
+
+	Rectangle aCellRect( OutputToScreenPixel(aPos), Size(nSizeX,nSizeY) );
+
+	aPos.X() -= 1;
+	aPos.Y() += nSizeY - 1;
+
+	pFilterFloat = new ScFilterFloatingWindow( this, WinBits(WB_BORDER) );		// nicht resizable etc.
+	pFilterFloat->SetPopupModeEndHdl( LINK( this, ScGridWindow, PopupModeEndHdl ) );
+	pFilterBox = new ScFilterListBox(
+		pFilterFloat, this, nCol, nRow, bDataSelect ? SC_FILTERBOX_DATASELECT : SC_FILTERBOX_FILTER );
+=====================================================================
+Found a 20 line (166 tokens) duplication in the following files: 
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+Starting at line 1667 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+			SCTAB nTabCount = pDoc->GetTableCount();
+			pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+			ScOutlineTable* pTable = pDoc->GetOutlineTable( nTab );
+			if (pTable)
+			{
+				pUndoTab = new ScOutlineTable( *pTable );
+
+				SCCOLROW nOutStartCol;							// Zeilen/Spaltenstatus
+				SCCOLROW nOutStartRow;
+				SCCOLROW nOutEndCol;
+				SCCOLROW nOutEndRow;
+				pTable->GetColArray()->GetRange( nOutStartCol, nOutEndCol );
+				pTable->GetRowArray()->GetRange( nOutStartRow, nOutEndRow );
+
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, TRUE, TRUE );
+				pDoc->CopyToDocument( static_cast<SCCOL>(nOutStartCol), 0, nTab, static_cast<SCCOL>(nOutEndCol), MAXROW, nTab, IDF_NONE, FALSE, pUndoDoc );
+				pDoc->CopyToDocument( 0, nOutStartRow, nTab, MAXCOL, nOutEndRow, nTab, IDF_NONE, FALSE, pUndoDoc );
+			}
+			else
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, FALSE, TRUE );
+=====================================================================
+Found a 28 line (166 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+
+    else if ( aNameString.EqualsAscii( SC_UNONAME_VERTPOS ) )
+    {
+        sal_Int32 nPos = 0;
+        if (aValue >>= nPos)
+        {
+            SdrObject *pObj = GetSdrObject();
+		    if (pObj)
+		    {
+		        ScDrawLayer* pModel = (ScDrawLayer*)pObj->GetModel();
+		        SdrPage* pPage = pObj->GetPage();
+		        if ( pModel && pPage )
+		        {
+					SCTAB nTab = 0;
+					if ( lcl_GetPageNum( pPage, *pModel, nTab ) )
+					{
+			            ScDocument* pDoc = pModel->GetDocument();
+			            if ( pDoc )
+			            {
+				            SfxObjectShell* pObjSh = pDoc->GetDocumentShell();
+				            if ( pObjSh && pObjSh->ISA(ScDocShell) )
+				            {
+					            ScDocShell* pDocSh = (ScDocShell*)pObjSh;
+                                uno::Reference<drawing::XShape> xShape( mxShapeAgg, uno::UNO_QUERY );
+                                if (xShape.is())
+                                {
+                                    if (ScDrawLayer::GetAnchor(pObj) == SCA_PAGE)
+                                    {
+                                        awt::Point aPoint = xShape->getPosition();
+=====================================================================
+Found a 36 line (166 tokens) duplication in the following files: 
+Starting at line 639 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fudraw.cxx
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/graphctl.cxx
+
+						pView->MoveAllMarked(Size(nX, nY));
+					}
+				}
+				else
+				{
+					// move handle with index nHandleIndex
+					if(pHdl && (nX || nY))
+					{
+						// now move the Handle (nX, nY)
+						Point aStartPoint(pHdl->GetPos());
+						Point aEndPoint(pHdl->GetPos() + Point(nX, nY));
+						const SdrDragStat& rDragStat = pView->GetDragStat();
+
+						// start dragging
+						pView->BegDragObj(aStartPoint, 0, pHdl, 0);
+
+					    if(pView->IsDragObj())
+						{
+							FASTBOOL bWasNoSnap = rDragStat.IsNoSnap();
+							BOOL bWasSnapEnabled = pView->IsSnapEnabled();
+
+							// switch snapping off
+							if(!bWasNoSnap)
+								((SdrDragStat&)rDragStat).SetNoSnap(TRUE);
+							if(bWasSnapEnabled)
+								pView->SetSnapEnabled(FALSE);
+
+							pView->MovAction(aEndPoint);
+							pView->EndDragObj();
+
+							// restore snap
+							if(!bWasNoSnap)
+								((SdrDragStat&)rDragStat).SetNoSnap(bWasNoSnap);
+							if(bWasSnapEnabled)
+								pView->SetSnapEnabled(bWasSnapEnabled);
+						}
+=====================================================================
+Found a 17 line (166 tokens) duplication in the following files: 
+Starting at line 1597 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 1015 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+
+			case META_FLOATTRANSPARENT_ACTION:
+			{
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pAction;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+=====================================================================
+Found a 34 line (166 tokens) duplication in the following files: 
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/miscobj.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+void ODummyEmbeddedObject::PostEvent_Impl( const ::rtl::OUString& aEventName,
+											const uno::Reference< uno::XInterface >& /*xSource*/ )
+{
+	if ( m_pInterfaceContainer )
+	{
+		::cppu::OInterfaceContainerHelper* pIC = m_pInterfaceContainer->getContainer(
+											::getCppuType((const uno::Reference< document::XEventListener >*)0) );
+		if( pIC )
+		{
+			document::EventObject aEvent;
+			aEvent.EventName = aEventName;
+			aEvent.Source = uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >( this ) );
+			// For now all the events are sent as object events
+			// aEvent.Source = ( xSource.is() ? xSource
+			//					   : uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >( this ) ) );
+			::cppu::OInterfaceIteratorHelper aIt( *pIC );
+			while( aIt.hasMoreElements() )
+        	{
+            	try
+            	{
+                	((document::XEventListener *)aIt.next())->notifyEvent( aEvent );
+            	}
+            	catch( uno::RuntimeException& )
+            	{
+                	aIt.remove();
+            	}
+
+				// the listener could dispose the object.
+				if ( m_bDisposed )
+					return;
+        	}
+		}
+	}
+}
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_mask.h
+
+static char copydata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xf8, 0x3f, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_curs.h
+
+static char copydata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/linkdata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_mask.h
+
+static char movedata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xe0, 0x01, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/linkdata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_curs.h
+
+static char movedata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_mask.h
+
+static char movedata_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x3c, 0xe0, 0x01, 0x00,
+=====================================================================
+Found a 8 line (166 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/movedata_curs.h
+
+static char movedata_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00,
+=====================================================================
+Found a 26 line (166 tokens) duplication in the following files: 
+Starting at line 390 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+::com::sun::star::util::Time SAL_CALL java_sql_ResultSet::getTime( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+{
+	jobject out(0);
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv )
+	{
+		// temporaere Variable initialisieren
+		static const char * cSignature = "(I)Ljava/sql/Time;";
+		static const char * cMethodName = "getTime";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out ? static_cast <com::sun::star::util::Time> (java_sql_Time( t.pEnv, out )) : ::com::sun::star::util::Time();
+}
+// -------------------------------------------------------------------------
+
+
+::com::sun::star::util::DateTime SAL_CALL java_sql_ResultSet::getTimestamp( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 17 line (166 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+		aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR);
+		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
+		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
+=====================================================================
+Found a 46 line (166 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+Starting at line 1076 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	OString hFileName = createFileNameFromType(outPath, tmpName, ".idl");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tml");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+
+	return ret;
+}
+
+sal_Bool ModuleType::dumpHFile(FileStream& o)
+=====================================================================
+Found a 37 line (166 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			    pCppStack += sizeof(sal_Int32); // extra long
+			default:
+			    break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 35 line (165 tokens) duplication in the following files: 
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+Starting at line 721 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+
+	{ XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_ATACTION_COPY,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_INCH2IN,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_FO, XML_KEEP_WITH_NEXT, XML_PTACTION_KEEP_WITH_NEXT,
+=====================================================================
+Found a 26 line (165 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/EventOOoTContext.cxx
+Starting at line 1430 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/Oasis2OOo.cxx
+
+	sal_Int16 nLeaderText = -1;
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList =
+					new XMLMutableAttributeList( xAttrList );
+				xAttrList = pMutableAttrList;
+			}
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_REMOVE:
+=====================================================================
+Found a 27 line (165 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOASISTContext.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOOoTContext.cxx
+
+	sal_Int16 nClassName = -1;
+	OUString aAddInName;
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList = 
+						new XMLMutableAttributeList( xAttrList );
+				xAttrList = pMutableAttrList;
+			}
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_INCH2IN:
+=====================================================================
+Found a 50 line (165 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/helpprovider/helpcontentprovider.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+{
+	(void)ppEnv;
+
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	(void)pServiceManager;
+
+	return pRegistryKey && writeInfo( pRegistryKey,
+=====================================================================
+Found a 47 line (165 tokens) duplication in the following files: 
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 634 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const ucb::CommandInfo aRootCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                -1,
+                getCppuType(
+                    static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+            )
+            ///////////////////////////////////////////////////////////
+            // New commands
+            ///////////////////////////////////////////////////////////
+        };
+        return uno::Sequence<
+                ucb::CommandInfo >( aRootCommandInfoTable, 5 );
+=====================================================================
+Found a 45 line (165 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static const ucb::CommandInfo aFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                    -1,
+                    getCppuBooleanType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+=====================================================================
+Found a 9 line (165 tokens) duplication in the following files: 
+Starting at line 2329 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2463 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
+=====================================================================
+Found a 11 line (165 tokens) duplication in the following files: 
+Starting at line 1882 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 1991 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonInformationVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I },
+
+	{ 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 0x18 MSO_I },
+=====================================================================
+Found a 9 line (165 tokens) duplication in the following files: 
+Starting at line 2607 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2743 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
+=====================================================================
+Found a 20 line (165 tokens) duplication in the following files: 
+Starting at line 1252 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1132 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0x80000000, 0x80000000,
+	NULL, 0
+};
+
+static const SvxMSDffVertPair mso_sptStripedRightArrowVert[] =	// adjustment1 : x 3375 - 21600
+{																// adjustment2 : y 0 - 10800
+	{ 3375,	0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
+	{ 1 MSO_I, 21600 },	{ 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I },
+	{ 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I },
+	{ 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I }
+};
+static const sal_uInt16 mso_sptStripedRightArrowSegm[] =
+{
+	0x4000, 0x0006, 0x6001,	0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjust2Value, 0, 0 },
+=====================================================================
+Found a 33 line (165 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/bmpmaker/bmp.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/bmpmaker/bmpsum.cxx
+
+BOOL BmpSum::GetCommandOptions( const ::std::vector< String >& rArgs, const String& rSwitch, ::std::vector< String >& rParams )
+{
+	BOOL bRet = FALSE;
+
+	for( int i = 0, nCount = rArgs.size(); ( i < nCount ); i++ )
+	{
+		String	aTestStr( '-' );
+
+		for( int n = 0; ( n < 2 ) && !bRet; n++ )
+		{
+			aTestStr += rSwitch;
+
+			if( aTestStr.CompareIgnoreCaseToAscii( rArgs[ i ] ) == COMPARE_EQUAL )
+			{
+				if( i < ( nCount - 1 ) )
+					rParams.push_back( rArgs[ i + 1 ] );
+				else
+					rParams.push_back( String() );
+			
+			    break;
+			}
+
+			if( 0 == n )
+				aTestStr = '/';
+		}
+	}
+
+	return( rParams.size() > 0 );
+}
+
+// -----------------------------------------------------------------------
+
+void BmpSum::Message( const String& rText, BYTE nExitCode )
+=====================================================================
+Found a 47 line (165 tokens) duplication in the following files: 
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconrec.cxx
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconrec.cxx
+
+					DBG_ERROR("Object is NO connector object");
+				}
+
+				break;
+			}
+			case SID_DRAW_CAPTION:
+			case SID_DRAW_CAPTION_VERTICAL:
+			{
+				if(pObj->ISA(SdrCaptionObj))
+				{
+					sal_Bool bIsVertical(SID_DRAW_CAPTION_VERTICAL == nID);
+
+					((SdrTextObj*)pObj)->SetVerticalWriting(bIsVertical);
+
+					if(bIsVertical)
+					{
+						SfxItemSet aSet(pObj->GetMergedItemSet());
+						aSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_CENTER));
+						aSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT));
+						pObj->SetMergedItemSet(aSet);
+					}
+
+                    // For task #105815# the default text is not inserted anymore.
+                    //	String aText(SdResId(STR_POOLSHEET_TEXT));
+                    //	((SdrCaptionObj*)pObj)->SetText(aText);
+
+					((SdrCaptionObj*)pObj)->SetLogicRect(aRect);
+					((SdrCaptionObj*)pObj)->SetTailPos(
+						aRect.TopLeft() - Point(aRect.GetWidth() / 2, aRect.GetHeight() / 2));
+				}
+				else
+				{
+					DBG_ERROR("Object is NO caption object");
+				}
+
+				break;
+			}
+
+			default:
+			{
+				pObj->SetLogicRect(aRect);
+
+				break;
+			}
+		}
+
+		SfxItemSet aAttr(mpDoc->GetPool());
+=====================================================================
+Found a 17 line (165 tokens) duplication in the following files: 
+Starting at line 831 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column2.cxx
+Starting at line 996 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column2.cxx
+
+				double nRealOrient = nRotate * F_PI18000;	// nRotate sind 1/100 Grad
+				double nCosAbs = fabs( cos( nRealOrient ) );
+				double nSinAbs = fabs( sin( nRealOrient ) );
+				long nHeight = (long)( aSize.Height() * nCosAbs + aSize.Width() * nSinAbs );
+				long nWidth;
+				if ( eRotMode == SVX_ROTATE_MODE_STANDARD )
+					nWidth  = (long)( aSize.Width() * nCosAbs + aSize.Height() * nSinAbs );
+				else if ( rOptions.bTotalSize )
+				{
+					nWidth = (long) ( pDocument->GetColWidth( nCol,nTab ) * nPPT );
+					bAddMargin = FALSE;
+					if ( pPattern->GetRotateDir( pCondSet ) == SC_ROTDIR_RIGHT )
+						nWidth += (long)( pDocument->GetRowHeight( nRow,nTab ) *
+											nPPT * nCosAbs / nSinAbs );
+				}
+				else
+					nWidth  = (long)( aSize.Height() / nSinAbs );	//! begrenzen?
+=====================================================================
+Found a 29 line (165 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/file.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/SysShExec.cxx
+
+        {  ERROR_NO_MORE_FILES,          osl_File_E_NOENT    },  /* 18 */
+        {  ERROR_LOCK_VIOLATION,         osl_File_E_ACCES    },  /* 33 */
+        {  ERROR_BAD_NETPATH,            osl_File_E_NOENT    },  /* 53 */
+        {  ERROR_NETWORK_ACCESS_DENIED,  osl_File_E_ACCES    },  /* 65 */
+        {  ERROR_BAD_NET_NAME,           osl_File_E_NOENT    },  /* 67 */
+        {  ERROR_FILE_EXISTS,            osl_File_E_EXIST    },  /* 80 */
+        {  ERROR_CANNOT_MAKE,            osl_File_E_ACCES    },  /* 82 */
+        {  ERROR_FAIL_I24,               osl_File_E_ACCES    },  /* 83 */
+        {  ERROR_INVALID_PARAMETER,      osl_File_E_INVAL    },  /* 87 */
+        {  ERROR_NO_PROC_SLOTS,          osl_File_E_AGAIN    },  /* 89 */
+        {  ERROR_DRIVE_LOCKED,           osl_File_E_ACCES    },  /* 108 */
+        {  ERROR_BROKEN_PIPE,            osl_File_E_PIPE     },  /* 109 */
+        {  ERROR_DISK_FULL,              osl_File_E_NOSPC    },  /* 112 */
+        {  ERROR_INVALID_TARGET_HANDLE,  osl_File_E_BADF     },  /* 114 */
+        {  ERROR_INVALID_HANDLE,         osl_File_E_INVAL    },  /* 124 */
+        {  ERROR_WAIT_NO_CHILDREN,       osl_File_E_CHILD    },  /* 128 */
+        {  ERROR_CHILD_NOT_COMPLETE,     osl_File_E_CHILD    },  /* 129 */
+        {  ERROR_DIRECT_ACCESS_HANDLE,   osl_File_E_BADF     },  /* 130 */
+        {  ERROR_NEGATIVE_SEEK,          osl_File_E_INVAL    },  /* 131 */
+        {  ERROR_SEEK_ON_DEVICE,         osl_File_E_ACCES    },  /* 132 */
+        {  ERROR_DIR_NOT_EMPTY,          osl_File_E_NOTEMPTY },  /* 145 */
+        {  ERROR_NOT_LOCKED,             osl_File_E_ACCES    },  /* 158 */
+        {  ERROR_BAD_PATHNAME,           osl_File_E_NOENT    },  /* 161 */
+        {  ERROR_MAX_THRDS_REACHED,      osl_File_E_AGAIN    },  /* 164 */
+        {  ERROR_LOCK_FAILED,            osl_File_E_ACCES    },  /* 167 */
+        {  ERROR_ALREADY_EXISTS,         osl_File_E_EXIST    },  /* 183 */
+        {  ERROR_FILENAME_EXCED_RANGE,   osl_File_E_NOENT    },  /* 206 */
+        {  ERROR_NESTING_NOT_ALLOWED,    osl_File_E_AGAIN    },  /* 215 */
+        {  ERROR_NOT_ENOUGH_QUOTA,       osl_File_E_NOMEM    }    /* 1816 */
+=====================================================================
+Found a 43 line (165 tokens) duplication in the following files: 
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sspellimp.cxx
+
+			const Reference< XMultiServiceFactory > & rSMgr )
+		throw(Exception)
+{
+	Reference< XInterface > xService = (cppu::OWeakObject*) new SpellChecker;
+	return xService;
+}
+    
+	
+sal_Bool SAL_CALL 
+	SpellChecker::addLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxLstnr ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;   
+	if (!bDisposing && rxLstnr.is())
+	{
+		bRes = GetPropHelper().addLinguServiceEventListener( rxLstnr );
+	}
+	return bRes;
+}
+
+
+sal_Bool SAL_CALL 
+	SpellChecker::removeLinguServiceEventListener( 
+			const Reference< XLinguServiceEventListener >& rxLstnr ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+	
+	BOOL bRes = FALSE;   
+	if (!bDisposing && rxLstnr.is())
+	{
+		DBG_ASSERT( xPropHelper.is(), "xPropHelper non existent" );
+		bRes = GetPropHelper().removeLinguServiceEventListener( rxLstnr );
+	}
+	return bRes;
+}
+
+
+OUString SAL_CALL 
+	SpellChecker::getServiceDisplayName( const Locale& rLocale ) 
+=====================================================================
+Found a 27 line (165 tokens) duplication in the following files: 
+Starting at line 745 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+Starting at line 525 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
+
+sal_uInt16 SAL_CALL Thesaurus::capitalType(const OUString& aTerm, CharClass * pCC)
+{
+        sal_Int32 tlen = aTerm.getLength();
+        if ((pCC) && (tlen)) {
+              String aStr(aTerm);
+              sal_Int32 nc = 0;
+              for (sal_Int32 tindex = 0; tindex < tlen;  tindex++) {
+	           if (pCC->getCharacterType(aStr,tindex) & 
+                       ::com::sun::star::i18n::KCharacterType::UPPER) nc++;
+	      }
+
+              if (nc == 0) return (sal_uInt16) CAPTYPE_NOCAP;
+
+              if (nc == tlen) return (sal_uInt16) CAPTYPE_ALLCAP;
+
+              if ((nc == 1) && (pCC->getCharacterType(aStr,0) & 
+                      ::com::sun::star::i18n::KCharacterType::UPPER)) 
+                   return (sal_uInt16) CAPTYPE_INITCAP;
+
+              return (sal_uInt16) CAPTYPE_MIXED;
+	}
+        return (sal_uInt16) CAPTYPE_UNKNOWN;
+}
+
+
+
+OUString SAL_CALL Thesaurus::makeLowerCase(const OUString& aTerm, CharClass * pCC)
+=====================================================================
+Found a 10 line (165 tokens) duplication in the following files: 
+Starting at line 1278 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+=====================================================================
+Found a 7 line (165 tokens) duplication in the following files: 
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1133 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0be0 - 0bef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bf0 - 0bff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c10 - 0c1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c20 - 0c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,// 0c30 - 0c3f
+=====================================================================
+Found a 8 line (165 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1078 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,17,17,17,17,17,17,17,17,17,17,// 07a0 - 07af
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07f0 - 07ff
+
+     0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0900 - 090f
+=====================================================================
+Found a 6 line (165 tokens) duplication in the following files: 
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 844 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faa0 - faaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fab0 - fabf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fac0 - facf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fad0 - fadf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fae0 - faef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faf0 - faff
+=====================================================================
+Found a 6 line (165 tokens) duplication in the following files: 
+Starting at line 564 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 600 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2540 - 254f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2550 - 255f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2560 - 256f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2570 - 257f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2580 - 258f
+    27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+=====================================================================
+Found a 6 line (165 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1450 - 145f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1460 - 146f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1470 - 147f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1480 - 148f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1490 - 149f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14a0 - 14af
+=====================================================================
+Found a 8 line (165 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27, 6,27,27,27,27,27,27, 0, 0,27,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1000 - 100f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1010 - 101f
+     5, 5, 0, 5, 5, 5, 5, 5, 0, 5, 5, 0, 8, 6, 6, 6,// 1020 - 102f
+=====================================================================
+Found a 6 line (165 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,// 11a0 - 11af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11b0 - 11bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11c0 - 11cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11d0 - 11df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 11e0 - 11ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0,// 11f0 - 11ff
+=====================================================================
+Found a 5 line (165 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0510 - 0517
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0518 - 051f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0520 - 0527
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0528 - 052f
+    {0x00, 0x0000}, {0x6a, 0x0561}, {0x6a, 0x0562}, {0x6a, 0x0563}, {0x6a, 0x0564}, {0x6a, 0x0565}, {0x6a, 0x0566}, {0x6a, 0x0567}, // 0530 - 0537
+=====================================================================
+Found a 6 line (165 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1244 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 33 line (165 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/actmeta.cxx
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/actmeta.cxx
+
+void CGMMetaOutAct::DrawPolyLine( Polygon& rPolygon )
+{
+	sal_uInt32			nColor;
+
+	if ( mpCGM->pElement->nAspectSourceFlags & ASF_LINETYPE )
+		nColor = mpCGM->pElement->pLineBundle->GetColor();
+	else
+		nColor = mpCGM->pElement->aLineBundle.GetColor();
+
+	mpCGM->mpVirDev->SetLineColor( BMCOL( nColor ) );
+
+	FillInteriorStyle eFillStyle;
+	if ( mpCGM->pElement->nAspectSourceFlags & ASF_FILLINTERIORSTYLE )
+	{
+		nColor = mpCGM->pElement->pFillBundle->GetColor();
+		eFillStyle = mpCGM->pElement->pFillBundle->eFillInteriorStyle;
+	}
+	else
+	{
+		nColor = mpCGM->pElement->aFillBundle.GetColor();
+		eFillStyle = mpCGM->pElement->aFillBundle.eFillInteriorStyle;
+	}
+
+	mpCGM->mpVirDev->SetFillColor( BMCOL( nColor ) );
+	switch ( eFillStyle )
+	{
+		case FIS_EMPTY :
+			mpCGM->mpVirDev->SetDrawMode( DRAWMODE_NOFILL );
+			break;
+		default:
+			mpCGM->mpVirDev->SetDrawMode( DRAWMODE_DEFAULT );
+	}
+	mpCGM->mpVirDev->DrawPolyLine( rPolygon );
+=====================================================================
+Found a 30 line (165 tokens) duplication in the following files: 
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/controlmenucontroller.cxx
+Starting at line 913 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarsmenucontroller.cxx
+
+void SAL_CALL ToolbarsMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+{
+    const rtl::OUString aFrameName( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+    const rtl::OUString aCommandURLName( RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ));
+
+    ResetableGuard aLock( m_aLock );
+    
+    sal_Bool bInitalized( m_bInitialized );
+    if ( !bInitalized )
+    {
+        PropertyValue       aPropValue;
+        rtl::OUString       aCommandURL;
+        Reference< XFrame > xFrame;
+        
+        for ( int i = 0; i < aArguments.getLength(); i++ )
+        {
+            if ( aArguments[i] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "Frame" ))
+                    aPropValue.Value >>= xFrame;
+                else if ( aPropValue.Name.equalsAscii( "CommandURL" ))
+                    aPropValue.Value >>= aCommandURL;
+            }
+        }
+
+        if ( xFrame.is() && aCommandURL.getLength() )
+        {
+            m_xFrame        = xFrame;
+            m_aCommandURL   = aCommandURL;
+            m_bInitialized  = true;
+=====================================================================
+Found a 19 line (165 tokens) duplication in the following files: 
+Starting at line 1146 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 934 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+void SAL_CALL UIConfigurationManager::replaceSettings( const ::rtl::OUString& ResourceURL, const Reference< ::com::sun::star::container::XIndexAccess >& aNewData ) 
+throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException)
+{
+    sal_Int16 nElementType = RetrieveTypeFromResourceURL( ResourceURL );
+    
+    if (( nElementType == ::com::sun::star::ui::UIElementType::UNKNOWN ) || 
+        ( nElementType >= ::com::sun::star::ui::UIElementType::COUNT   ))
+        throw IllegalArgumentException();
+    else if ( m_bReadOnly )
+        throw IllegalAccessException();
+    else
+    {
+        ResetableGuard aGuard( m_aLock );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        UIElementData* pDataSettings = impl_findUIElementData( ResourceURL, nElementType );
+        if ( pDataSettings && !pDataSettings->bDefault )
+=====================================================================
+Found a 15 line (165 tokens) duplication in the following files: 
+Starting at line 1598 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				{
+					const MetaFloatTransparentAction*	pA = (const MetaFloatTransparentAction*) pAction;
+					GDIMetaFile							aTmpMtf( pA->GetGDIMetaFile() );
+					Point								aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size							aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point							aDestPt( pA->GetPoint() );
+					const Size							aDestSize( pA->GetSize() );
+					const double						fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double						fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long								nMoveX, nMoveY;
+
+					if( fScaleX != 1.0 || fScaleY != 1.0 )
+					{
+						aTmpMtf.Scale( fScaleX, fScaleY );
+						aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+=====================================================================
+Found a 45 line (165 tokens) duplication in the following files: 
+Starting at line 632 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx
+
+void OStatement_Base::getFastPropertyValue(Any& rValue,sal_Int32 nHandle) const
+{
+	switch(nHandle)
+	{
+		case PROPERTY_ID_QUERYTIMEOUT:
+		case PROPERTY_ID_MAXFIELDSIZE:
+		case PROPERTY_ID_MAXROWS:
+		case PROPERTY_ID_CURSORNAME:
+		case PROPERTY_ID_RESULTSETCONCURRENCY:
+		case PROPERTY_ID_RESULTSETTYPE:
+		case PROPERTY_ID_FETCHDIRECTION:
+		case PROPERTY_ID_FETCHSIZE:
+		case PROPERTY_ID_ESCAPEPROCESSING:
+		case PROPERTY_ID_USEBOOKMARKS:
+		default:
+			;
+	}
+}
+// -------------------------------------------------------------------------
+IMPLEMENT_SERVICE_INFO(OStatement,"com.sun.star.sdbcx.OStatement","com.sun.star.sdbc.Statement");
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::acquire() throw()
+{
+	OStatement_BASE::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::release() throw()
+{
+	OStatement_BASE::release();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement::acquire() throw()
+{
+	OStatement_BASE2::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement::release() throw()
+{
+	OStatement_BASE2::release();
+}
+// -----------------------------------------------------------------------------
+Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL OStatement_Base::getPropertySetInfo(  ) throw(RuntimeException)
+{
+	return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
+}
+=====================================================================
+Found a 44 line (165 tokens) duplication in the following files: 
+Starting at line 1076 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+Starting at line 1205 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	OString hFileName = createFileNameFromType(outPath, m_typeName, ".idl");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tml");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+
+	return ret;
+}
+=====================================================================
+Found a 28 line (165 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbamaker.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+
+		if (options.isValid("-T"))
+		{
+			OString tOption(options.getOption("-T"));
+
+			OString typeName, tmpName;
+			sal_Bool ret = sal_False;
+            sal_Int32 nIndex = 0;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+                tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope, but the scope is not recursively  generated.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+					ret = produceAllTypes(tmpName, typeMgr, typeDependencies, &options, sal_False);
+=====================================================================
+Found a 31 line (165 tokens) duplication in the following files: 
+Starting at line 385 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/VLegendSymbolFactory.cxx
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/VLegendSymbolFactory.cxx
+
+        tStockLineType eType )
+{
+    Reference< drawing::XShape > xResult;
+
+    if( ! (xSymbolContainer.is() &&
+           xShapeFactory.is()))
+        return xResult;
+
+    xResult.set( xShapeFactory->createInstance(
+                     C2U( "com.sun.star.drawing.GroupShape" )), uno::UNO_QUERY );
+    xSymbolContainer->add( xResult );
+    Reference< drawing::XShapes > xResultGroup( xResult, uno::UNO_QUERY );
+    if( ! xResultGroup.is())
+        return xResult;
+
+    // aspect ratio of symbols is always 3:2
+    awt::Size aBoundSize( 3000, 2000 );
+
+    try
+    {
+        // create bound
+        Reference< drawing::XShape > xBound( ShapeFactory(xShapeFactory).createInvisibleRectangle(
+            xResultGroup, aBoundSize  ));
+
+        Reference< drawing::XShape > xLine(
+            xShapeFactory->createInstance(
+                C2U( "com.sun.star.drawing.LineShape" )), uno::UNO_QUERY );
+        if( xLine.is())
+        {
+            xResultGroup->add( xLine );
+            xLine->setSize(  awt::Size( 0, 2000 ));
+=====================================================================
+Found a 17 line (165 tokens) duplication in the following files: 
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+
+    Reference< beans::XPropertySet > xPropSet(0);
+
+    Reference< chart2::XDiagram > xDiagram( m_spChart2ModelContact->getChart2Diagram() );
+    Sequence< Reference< chart2::XChartType > > aTypes(
+            ::chart::DiagramHelper::getChartTypesFromDiagram( xDiagram ) );
+    for( sal_Int32 nN = 0; nN < aTypes.getLength(); nN++ )
+    {
+        Reference< chart2::XChartType > xType( aTypes[nN] );
+        if( xType->getChartType().equals(CHART2_SERVICE_NAME_CHARTTYPE_CANDLESTICK) )
+        {
+            Reference< chart2::XDataSeriesContainer > xSeriesContainer(xType,uno::UNO_QUERY);
+            if( xSeriesContainer.is() )
+            {
+                Sequence< Reference< chart2::XDataSeries > > aSeriesSeq( xSeriesContainer->getDataSeries() );
+                if(aSeriesSeq.getLength())
+                {
+                    xPropSet = Reference< beans::XPropertySet >(aSeriesSeq[0],uno::UNO_QUERY);
+=====================================================================
+Found a 27 line (165 tokens) duplication in the following files: 
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									&pThis->pBridge->aUno2Cpp );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+=====================================================================
+Found a 25 line (165 tokens) duplication in the following files: 
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+        buffer = ::rtl_allocateMemory( ((2+ nSlots) * sizeof (void *)) + (nSlots *20) );
+        
+        ::std::pair< t_classdata_map::iterator, bool > insertion(
+            m_map.insert( t_classdata_map::value_type( unoName, buffer ) ) );
+        OSL_ENSURE( insertion.second, "### inserting new vtable buffer failed?!" );
+        
+        void ** slots = (void **)buffer;
+        *slots++ = 0;
+        *slots++ = 0; // rtti
+        char * code = (char *)(slots + nSlots);
+        
+        sal_uInt32 vtable_pos = 0;
+        sal_Int32 nAllMembers = pTD->nAllMembers;
+        typelib_TypeDescriptionReference ** ppAllMembers = pTD->ppAllMembers;
+        for ( sal_Int32 nPos = 0; nPos < nAllMembers; ++nPos )
+        {
+            typelib_TypeDescription * pTD = 0;
+            TYPELIB_DANGER_GET( &pTD, ppAllMembers[ nPos ] );
+            OSL_ASSERT( pTD );
+            if (typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass)
+            {
+                bool simple_ret = cppu_isSimpleType(
+                    ((typelib_InterfaceAttributeTypeDescription *)pTD)->pAttributeTypeRef->eTypeClass );
+                // get method
+                *slots++ = code;
+=====================================================================
+Found a 35 line (165 tokens) duplication in the following files: 
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedfunc.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/graphctl.cxx
+
+					}
+				}
+				else
+				{
+					// move handle with index nHandleIndex
+					if(pHdl && (nX || nY))
+					{
+						// now move the Handle (nX, nY)
+						Point aStartPoint(pHdl->GetPos());
+						Point aEndPoint(pHdl->GetPos() + Point(nX, nY));
+						const SdrDragStat& rDragStat = pView->GetDragStat();
+
+						// start dragging
+						pView->BegDragObj(aStartPoint, 0, pHdl, 0);
+
+					    if(pView->IsDragObj())
+						{
+							FASTBOOL bWasNoSnap = rDragStat.IsNoSnap();
+							BOOL bWasSnapEnabled = pView->IsSnapEnabled();
+
+							// switch snapping off
+							if(!bWasNoSnap)
+								((SdrDragStat&)rDragStat).SetNoSnap(TRUE);
+							if(bWasSnapEnabled)
+								pView->SetSnapEnabled(FALSE);
+
+							pView->MovAction(aEndPoint);
+							pView->EndDragObj();
+
+							// restore snap
+							if(!bWasNoSnap)
+								((SdrDragStat&)rDragStat).SetNoSnap(bWasNoSnap);
+							if(bWasSnapEnabled)
+								pView->SetSnapEnabled(bWasSnapEnabled);
+						}
+=====================================================================
+Found a 25 line (164 tokens) duplication in the following files: 
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+        span_pattern_resample_rgba(alloc_type& alloc,
+                                   const rendering_buffer& src, 
+                                   interpolator_type& inter,
+                                   const image_filter_lut& filter) :
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[4];
+=====================================================================
+Found a 25 line (164 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+        span_pattern_resample_rgba_affine(alloc_type& alloc,
+                                          const rendering_buffer& src, 
+                                          interpolator_type& inter,
+                                          const image_filter_lut& filter_) :
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter_),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[4];
+=====================================================================
+Found a 31 line (164 tokens) duplication in the following files: 
+Starting at line 1538 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1625 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+Reference< xml::input::XElement > ComboBoxElement::startChildElement(
+	sal_Int32 nUid, OUString const & rLocalName,
+	Reference< xml::input::XAttributes > const & xAttributes )
+	throw (xml::sax::SAXException, RuntimeException)
+{
+	// event
+    if (_pImport->isEventElement( nUid, rLocalName ))
+	{
+		return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
+	}
+	else if (_pImport->XMLNS_DIALOGS_UID != nUid)
+	{
+		throw xml::sax::SAXException(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
+			Reference< XInterface >(), Any() );
+	}
+	// menupopup
+	else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("menupopup") ))
+	{
+		_popup = new MenuPopupElement( rLocalName, xAttributes, this, _pImport );
+		return _popup;
+	}
+	else
+	{
+		throw xml::sax::SAXException(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("expected event or menupopup element!") ),
+			Reference< XInterface >(), Any() );
+	}
+}
+//__________________________________________________________________________________________________
+void ComboBoxElement::endElement()
+=====================================================================
+Found a 26 line (164 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/EventOASISTContext.cxx
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/EventOOoTContext.cxx
+
+	sal_Int16 nMacroName = -1;
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList = 
+						new XMLMutableAttributeList( xAttrList );
+				xAttrList = pMutableAttrList;
+			}
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_HREF:
+=====================================================================
+Found a 8 line (164 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydlnk_mask.h
+
+static char copydlnk_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xf8, 0xff, 0x3f, 0x00,
+=====================================================================
+Found a 6 line (164 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
+ 0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xfc,0x01,0x00,0x00,0xfc,0x09,0x00,0x00,
+=====================================================================
+Found a 6 line (164 tokens) duplication in the following files: 
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_mask.h
+
+ 0x3f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 45 line (164 tokens) duplication in the following files: 
+Starting at line 433 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 747 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+      	aRet <<= getPropertyValues( Properties, Environment );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+                  RTL_CONSTASCII_STRINGPARAM( "setPropertyValues" ) ) )
+    {
+      	//////////////////////////////////////////////////////////////////
+      	// setPropertyValues
+      	//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::PropertyValue > aProperties;
+      	if ( !( aCommand.Argument >>= aProperties ) )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+      	if ( !aProperties.getLength() )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "No properties!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+                  RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+    {
+        //////////////////////////////////////////////////////////////////
+        // getPropertySetInfo
+        //////////////////////////////////////////////////////////////////
+
+        // Note: Implemented by base class.
+        aRet <<= getPropertySetInfo( Environment,
+=====================================================================
+Found a 51 line (164 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+      m_bCountFinal( sal_False ), m_bThrowException( sal_False ) {}
+	~DataSupplier_Impl();
+};
+
+//=========================================================================
+DataSupplier_Impl::~DataSupplier_Impl()
+{
+	ResultList::const_iterator it  = m_aResults.begin();
+	ResultList::const_iterator end = m_aResults.end();
+
+	while ( it != end )
+	{
+		delete (*it);
+		it++;
+	}
+}
+
+}
+
+//=========================================================================
+//=========================================================================
+//
+// DataSupplier Implementation.
+//
+//=========================================================================
+//=========================================================================
+
+DataSupplier::DataSupplier(
+            const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+            const rtl::Reference< Content >& rContent,
+            sal_Int32 nOpenMode )
+: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) )
+{
+}
+
+//=========================================================================
+// virtual
+DataSupplier::~DataSupplier()
+{
+	delete m_pImpl;
+}
+
+//=========================================================================
+// virtual
+rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aId;
+=====================================================================
+Found a 45 line (164 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 747 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+      	aRet <<= getPropertyValues( Properties, Environment );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+                  RTL_CONSTASCII_STRINGPARAM( "setPropertyValues" ) ) )
+    {
+      	//////////////////////////////////////////////////////////////////
+      	// setPropertyValues
+      	//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::PropertyValue > aProperties;
+      	if ( !( aCommand.Argument >>= aProperties ) )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+      	if ( !aProperties.getLength() )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "No properties!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+                  RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+    {
+        //////////////////////////////////////////////////////////////////
+        // getPropertySetInfo
+        //////////////////////////////////////////////////////////////////
+
+        // Note: Implemented by base class.
+        aRet <<= getPropertySetInfo( Environment,
+=====================================================================
+Found a 43 line (164 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static const ucb::CommandInfo aRootFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+=====================================================================
+Found a 30 line (164 tokens) duplication in the following files: 
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/viewopt.cxx
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/viewopt.cxx
+
+    bFormView       = rVOpt.bFormView   ;
+    // <--
+	nZoom   		= rVOpt.nZoom   	;
+	aSnapSize   	= rVOpt.aSnapSize   ;
+	nDivisionX  	= rVOpt.nDivisionX  ;
+	nDivisionY  	= rVOpt.nDivisionY  ;
+	nPagePrevRow	= rVOpt.nPagePrevRow;
+	nPagePrevCol	= rVOpt.nPagePrevCol;
+    bIsPagePreview  = rVOpt.bIsPagePreview;
+	eZoom      		= rVOpt.eZoom       ;
+	nTblDest    	= rVOpt.nTblDest    ;
+	nUIOptions		= rVOpt.nUIOptions  ;
+	nCoreOptions	= rVOpt.nCoreOptions;
+	nCore2Options	= rVOpt.nCore2Options;
+	aRetoucheColor	= rVOpt.GetRetoucheColor();
+	sSymbolFont 	= rVOpt.sSymbolFont;
+	nShdwCrsrFillMode = rVOpt.nShdwCrsrFillMode;
+	bStarOneSetting = rVOpt.bStarOneSetting;
+	bBookview		= rVOpt.bBookview;
+
+#ifndef PRODUCT
+	bTest1          = rVOpt.bTest1      ;
+	bTest2          = rVOpt.bTest2      ;
+	bTest3          = rVOpt.bTest3      ;
+	bTest4          = rVOpt.bTest4      ;
+	bTest5          = rVOpt.bTest5      ;
+	bTest6          = rVOpt.bTest6      ;
+	bTest7          = rVOpt.bTest7      ;
+	bTest8          = rVOpt.bTest8      ;
+	bTest10         = rVOpt.bTest10     ;
+=====================================================================
+Found a 22 line (164 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/writerwordglue.cxx
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/dmapper/ConversionHelper.cxx
+
+sal_Int32 SnapPageDimension( sal_Int32 nVal )
+{
+    static const long aSizes[] =
+    {
+        lA0Width, lA0Height, lA1Width, lA2Width, lA3Width, lA4Width,
+        lA5Width, lB4Width, lB4Height, lB5Width, lB6Width, lC4Width,
+        lC4Height, lC5Width, lC6Width, lC65Width, lC65Height, lDLWidth,
+        lDLHeight, lJISB4Width, lJISB4Height, lJISB5Width, lJISB6Width,
+        lLetterWidth, lLetterHeight, lLegalHeight, lTabloidWidth,
+        lTabloidHeight, lDiaWidth, lDiaHeight, lScreenWidth,
+        lScreenHeight, lAWidth, lAHeight, lBHeight, lCHeight, lDHeight,
+        lEHeight, lExeWidth, lExeHeight, lLegal2Width, lLegal2Height,
+        lCom675Width, lCom675Height, lCom9Width, lCom9Height,
+        lCom10Width, lCom10Height, lCom11Width, lCom11Height,
+        lCom12Width, lMonarchHeight, lKai16Width, lKai16Height,
+        lKai32Width, lKai32BigWidth, lKai32BigHeight
+    };
+
+    const long nWriggleRoom = 5;
+    const long *pEnd = aSizes + sizeof(aSizes) / sizeof(aSizes[0]);
+    const long *pEntry =
+        std::find_if(aSizes, pEnd, closeenough(nVal, nWriggleRoom));
+=====================================================================
+Found a 28 line (164 tokens) duplication in the following files: 
+Starting at line 3123 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/feshview.cxx
+Starting at line 3175 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/feshview.cxx
+
+    bool bRet = false;
+
+    // check, if a draw view exists
+    ASSERT( Imp()->GetDrawView(), "wrong usage of SwFEShell::GetShapeBackgrd - no draw view!");
+    if( Imp()->GetDrawView() )
+    {
+        // determine list of selected objects
+        const SdrMarkList* pMrkList = &Imp()->GetDrawView()->GetMarkedObjectList();
+        // check, if exactly one object is selected.
+        ASSERT( pMrkList->GetMarkCount() == 1, "wrong usage of SwFEShell::GetShapeBackgrd - no selected object!");
+        if ( pMrkList->GetMarkCount() == 1)
+        {
+            // get selected object
+            const SdrObject *pSdrObj = pMrkList->GetMark( 0 )->GetMarkedSdrObj();
+            // check, if selected object is a shape (drawing object)
+            ASSERT( !pSdrObj->ISA(SwVirtFlyDrawObj), "wrong usage of SwFEShell::GetShapeBackgrd - selected object is not a drawing object!");
+            if ( !pSdrObj->ISA(SwVirtFlyDrawObj) )
+            {
+                // determine page frame of the frame the shape is anchored.
+                const SwFrm* pAnchorFrm =
+                        static_cast<SwDrawContact*>(GetUserCall(pSdrObj))->GetAnchorFrm( pSdrObj );
+                ASSERT( pAnchorFrm, "inconsistent modell - no anchor at shape!");
+                if ( pAnchorFrm )
+                {
+                    const SwPageFrm* pPageFrm = pAnchorFrm->FindPageFrm();
+                    ASSERT( pPageFrm, "inconsistent modell - no page!");
+                    if ( pPageFrm )
+                    {
+=====================================================================
+Found a 21 line (164 tokens) duplication in the following files: 
+Starting at line 1898 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 5642 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+        0x63, 0x74, 0x00, 0x13, 0x00, 0x00, 0x00, 0x46,
+        0x6E, 0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x2E,
+        0x31, 0x00, 0xF4, 0x39, 0xB2, 0x71, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00
+    };
+
+    {
+        SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+        xStor->Write(aCompObj,sizeof(aCompObj));
+        DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+    }
+
+    {
+        SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+        xStor3->Write(aObjInfo,sizeof(aObjInfo));
+        DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+    }
+
+    static sal_uInt8 __READONLY_DATA aOCXNAME[] =
+    {
+=====================================================================
+Found a 31 line (164 tokens) duplication in the following files: 
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/postuninstall.cxx
+
+extern "C" UINT __stdcall ExecutePostUninstallScript( MSIHANDLE handle )
+{
+	TCHAR	szValue[8192];
+	DWORD	nValueSize = sizeof(szValue);
+	HKEY	hKey;
+	std::_tstring	sInstDir;
+	
+	std::_tstring	sProductKey = GetMsiProperty( handle, TEXT("FINDPRODUCT") );
+
+	// MessageBox( NULL, sProductKey.c_str(), "Titel", MB_OK );
+	
+	if ( ERROR_SUCCESS == RegOpenKey( HKEY_CURRENT_USER,  sProductKey.c_str(), &hKey ) )
+	{
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+		}
+		RegCloseKey( hKey );
+	}
+	else if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE,  sProductKey.c_str(), &hKey ) )
+	{
+		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+		{
+			sInstDir = szValue;
+		}
+		RegCloseKey( hKey );
+	}
+	else
+		return ERROR_SUCCESS;
+
+	std::_tstring	sInfFile = sInstDir + TEXT("program\\postuninstall.inf");
+=====================================================================
+Found a 28 line (164 tokens) duplication in the following files: 
+Starting at line 1537 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1796 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+				nActionNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_ACCEPTANCE_STATE))
+			{
+				if (IsXMLToken(sValue, XML_ACCEPTED))
+					nActionState = SC_CAS_ACCEPTED;
+				else if (IsXMLToken(sValue, XML_REJECTED))
+					nActionState = SC_CAS_REJECTED;
+			}
+			else if (IsXMLToken(aLocalName, XML_REJECTING_CHANGE_ID))
+			{
+				nRejectingNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_TYPE))
+			{
+				if (IsXMLToken(sValue, XML_ROW))
+=====================================================================
+Found a 29 line (164 tokens) duplication in the following files: 
+Starting at line 1654 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 1781 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+                CellType eType = pCell->GetCellType();
+                BOOL bOk = sal::static_int_cast<BOOL>( (eType == CELLTYPE_FORMULA ?
+                    ((ScFormulaCell*)pCell)->GetCode()->GetCodeLen() > 0
+                    && ((ScFormulaCell*)pCell)->aPos != aPos    // noIter
+                    : TRUE ) );
+                if ( bOk && pCell->HasStringData() )
+                {
+                    String aStr;
+                    switch ( eType )
+                    {
+                        case CELLTYPE_STRING:
+                            ((ScStringCell*)pCell)->GetString( aStr );
+                        break;
+                        case CELLTYPE_FORMULA:
+                            ((ScFormulaCell*)pCell)->GetString( aStr );
+                        break;
+                        case CELLTYPE_EDIT:
+                            ((ScEditCell*)pCell)->GetString( aStr );
+                        break;
+                        case CELLTYPE_NONE:
+                        case CELLTYPE_VALUE:
+                        case CELLTYPE_NOTE:
+                        case CELLTYPE_SYMBOLS:
+                        case CELLTYPE_DESTROYED:
+                            ;   // nothing, prevent compiler warning
+                        break;
+                    }
+                    if ( ScGlobal::pTransliteration->isEqual( aStr, aName ) )
+                    {
+=====================================================================
+Found a 37 line (164 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+
+    char* pLeap = NULL;
+    
+    while( *pRun && nActualToken <= nToken )
+    {
+        while( *pRun && isSpace( *pRun ) )
+            pRun++;
+        pLeap = pBuffer;
+        while( *pRun && ! isSpace( *pRun ) )
+        {
+            if( *pRun == '\\' )
+            {
+                // escapement
+                pRun++;
+                *pLeap = *pRun;
+                pLeap++;
+                if( *pRun )
+                    pRun++;
+            }
+            else if( *pRun == '`' )
+                CopyUntil( pLeap, pRun, '`' );
+            else if( *pRun == '\'' )
+                CopyUntil( pLeap, pRun, '\'' );
+            else if( *pRun == '"' )
+                CopyUntil( pLeap, pRun, '"' );
+            else
+            {
+                *pLeap = *pRun;
+                pLeap++;
+                pRun++;
+            }
+        }
+        if( nActualToken != nToken )
+            pBuffer[0] = 0;
+        nActualToken++;
+    }
+
+    *pLeap = 0;
+=====================================================================
+Found a 29 line (164 tokens) duplication in the following files: 
+Starting at line 1662 of /local/ooo-build/ooo-build/src/oog680-m3/idl/source/objects/slot.cxx
+Starting at line 1714 of /local/ooo-build/ooo-build/src/oog680-m3/idl/source/objects/slot.cxx
+
+        rOutStm << "#define " << GetSlotId().GetBuffer() << '\t' << ByteString::CreateFromInt32( nSId ).GetBuffer() << endl;
+	}
+
+	SvMetaTypeEnum * pEnum = PTR_CAST( SvMetaTypeEnum, GetType() );
+	if( GetPseudoSlots() && pEnum )
+	{
+		for( ULONG n = 0; n < pEnum->Count(); n++ )
+		{
+			ByteString aValName = pEnum->GetObject( n )->GetName();
+			ByteString aSId( GetSlotId() );
+			if( GetPseudoPrefix().Len() )
+				aSId = GetPseudoPrefix();
+			aSId += '_';
+			aSId += aValName.Copy( pEnum->GetPrefix().Len() );
+
+			ULONG nSId2;
+			BOOL bIdOk = FALSE;
+			if( rBase.FindId( aSId, &nSId2 ) )
+			{
+                aSId = ByteString::CreateFromInt32( nSId2 );
+				bIdOk = TRUE;
+			}
+
+			// wenn Id nicht gefunden, immer schreiben
+			if( !bIdOk || !pTable->IsKeyValid( nSId2 ) )
+			{
+				pTable->Insert( nSId2, this );
+
+                rOutStm << "#define " << aSId.GetBuffer() << '\t'
+=====================================================================
+Found a 22 line (164 tokens) duplication in the following files: 
+Starting at line 306 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 756 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+  double bet = b[0];
+  u[0] = r[0]/bet;
+  int i, j;
+  for (i = 0, j = 1; j < n; i++, j++)
+  {
+    gam[i] = c[i]/bet;
+    bet = b[j]-a[i]*gam[i];
+    if ( bet == 0 )
+    {
+      delete[] gam;
+      return 0;
+    }
+    u[j] = (r[j]-a[i]*u[i])/bet;
+  }
+  for (i = n-1, j = n-2; j >= 0; i--, j--)
+    u[j] -= gam[j]*u[i];
+
+  delete[] gam;
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystemD::SolveConstTri (int n, double a, double b, double c,
+=====================================================================
+Found a 35 line (164 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesconfiguration.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesconfiguration.cxx
+
+}
+
+
+// #110897#
+sal_Bool ImagesConfiguration::StoreImages( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+	SvStream& rOutStream, const ImageListsDescriptor& aItems )
+{
+	Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
+
+	Reference< XOutputStream > xOutputStream( 
+								(::cppu::OWeakObject *)new utl::OOutputStreamWrapper( rOutStream ), 
+								UNO_QUERY );
+
+	Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
+	xDataSource->setOutputStream( xOutputStream );
+
+	try
+	{
+		OWriteImagesDocumentHandler aWriteImagesDocumentHandler( aItems, xWriter );
+		aWriteImagesDocumentHandler.WriteImagesDocument();
+		return sal_True;
+	}
+	catch ( RuntimeException& )
+	{
+		return sal_False;
+	}
+	catch ( SAXException& )
+	{
+		return sal_False;
+	}
+	catch ( ::com::sun::star::io::IOException& )
+	{
+		return sal_False;
+	}
+=====================================================================
+Found a 34 line (164 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsconfiguration.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsconfiguration.cxx
+
+}
+
+// #110897#
+sal_Bool EventsConfiguration::StoreEventsConfig( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+	SvStream& rOutStream, const EventsConfig& aItems )
+{
+	Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
+
+	Reference< XOutputStream > xOutputStream( 
+								(::cppu::OWeakObject *)new utl::OOutputStreamWrapper( rOutStream ), 
+								UNO_QUERY );
+
+	Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
+	xDataSource->setOutputStream( xOutputStream );
+
+	try
+	{
+		OWriteEventsDocumentHandler aWriteEventsDocumentHandler( aItems, xWriter );
+		aWriteEventsDocumentHandler.WriteEventsDocument();
+		return sal_True;
+	}
+	catch ( RuntimeException& )
+	{
+		return sal_False;
+	}
+	catch ( SAXException& )
+	{
+		return sal_False;
+	}
+	catch ( ::com::sun::star::io::IOException& )
+	{
+		return sal_False;
+	}
+=====================================================================
+Found a 30 line (164 tokens) duplication in the following files: 
+Starting at line 1165 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/docholder.cxx
+Starting at line 1056 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/docholder.cxx
+
+					m_xDocument->getArgs();
+				for(sal_Int32 j = 0; j < aSeq.getLength(); ++j)
+				{
+					if(aSeq[j].Name ==
+					   rtl::OUString(
+						   RTL_CONSTASCII_USTRINGPARAM("FilterName")))
+					{
+						aSeq[j].Value >>= aFilterName;
+						break;
+					}
+				}
+			}
+
+			if(aFilterName.getLength())
+			{
+				uno::Reference<container::XNameAccess> xNameAccess(
+					m_xFactory->createInstance(
+						rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+							"com.sun.star.document.FilterFactory"))),
+					uno::UNO_QUERY);
+				try {
+					if(xNameAccess.is() &&
+					   (xNameAccess->getByName(aFilterName) >>= aSeq))
+					{
+						for(sal_Int32 j = 0; j < aSeq.getLength(); ++j)
+							if(aSeq[j].Name ==
+							   rtl::OUString(
+								   RTL_CONSTASCII_USTRINGPARAM("UIName")))
+							{
+								aSeq[j].Value >>= m_aFilterName;
+=====================================================================
+Found a 8 line (164 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydlnk_mask.h
+
+static char copydlnk_mask_bits[] = {
+   0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
+   0x3f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,
+   0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
+   0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00,
+   0xe0, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00,
+   0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xf8, 0xff, 0x3f, 0x00,
+=====================================================================
+Found a 17 line (164 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/bcc30/public.h
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/cygwin/public.h
+
+const int in_quit ANSI((void));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+=====================================================================
+Found a 21 line (164 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/InputStream.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Reader.cxx
+
+void SAL_CALL java_io_Reader::skipBytes( sal_Int32 nBytesToSkip ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+	jint out(0);
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv )
+	{
+		static const char * cSignature = "(I)I";
+		static const char * cMethodName = "skip";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID )
+		{
+			out = t.pEnv->CallIntMethod( object, mID,nBytesToSkip);
+			ThrowSQLException(t.pEnv,*this);
+		}
+	} //t.pEnv
+}
+
+sal_Int32 SAL_CALL java_io_Reader::available(  ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 24 line (164 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUsers.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUsers.cxx
+
+using namespace connectivity::mysql;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+//	using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+typedef connectivity::sdbcx::OCollection OCollection_TYPE;
+
+OUsers::OUsers( ::cppu::OWeakObject& _rParent,
+				::osl::Mutex& _rMutex,
+				const TStringVector &_rVector,
+				const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection,
+				connectivity::sdbcx::IRefreshableUsers* _pParent) 
+	: sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector)
+	,m_xConnection(_xConnection)
+	,m_pParent(_pParent)
+{
+}
+// -----------------------------------------------------------------------------
+
+sdbcx::ObjectType OUsers::createObject(const ::rtl::OUString& _rName)
+{
+	return new OMySQLUser(m_xConnection,_rName);
+=====================================================================
+Found a 46 line (164 tokens) duplication in the following files: 
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 /*fromType*/, sal_Int32 /*toType*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupBy(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByBeyondSelect(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByUnrelated(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleResultSets(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsLikeEscapeClause(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOrderByUnrelated(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+=====================================================================
+Found a 21 line (164 tokens) duplication in the following files: 
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	Reference< XTablesSupplier > xTables = m_pConnection->createCatalog();
+	if(!xTables.is())
+		throw SQLException();
+
+	Reference< XNameAccess> xNames = xTables->getTables();
+	if(!xNames.is())
+		throw SQLException();
+
+	ODatabaseMetaDataResultSet::ORows aRows;
+	ODatabaseMetaDataResultSet::ORow aRow(19);
+	aRow[10] = new ORowSetValueDecorator((sal_Int32)10);
+	Sequence< ::rtl::OUString> aTabNames(xNames->getElementNames());
+	const ::rtl::OUString* pTabBegin	= aTabNames.getConstArray();
+	const ::rtl::OUString* pTabEnd		= pTabBegin + aTabNames.getLength();
+	for(;pTabBegin != pTabEnd;++pTabBegin)
+	{
+		if(match(tableNamePattern,*pTabBegin,'\0'))
+		{
+			Reference< XColumnsSupplier> xTable;
+=====================================================================
+Found a 33 line (164 tokens) duplication in the following files: 
+Starting at line 1226 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FValue.cxx
+Starting at line 1290 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FValue.cxx
+
+				nRet = sal_Int64(*(double*)m_aValue.m_pValue);
+				break;
+			case DataType::DATE:
+				nRet = dbtools::DBTypeConversion::toDays(*(::com::sun::star::util::Date*)m_aValue.m_pValue);
+				break;
+			case DataType::TIME:
+			case DataType::TIMESTAMP:
+			case DataType::BINARY:
+			case DataType::VARBINARY:
+			case DataType::LONGVARBINARY:
+				OSL_ASSERT(!"getInt32() for this type is not allowed!");
+				break;
+			case DataType::BIT:
+			case DataType::BOOLEAN:
+				nRet = m_aValue.m_bBool;
+				break;
+			case DataType::TINYINT:
+				if ( m_bSigned )
+					nRet = m_aValue.m_nInt8;
+				else
+					nRet = m_aValue.m_nInt16;
+				break;
+			case DataType::SMALLINT:
+				if ( m_bSigned )
+					nRet = m_aValue.m_nInt16;
+				else
+					nRet = m_aValue.m_nInt32;
+				break;
+			case DataType::INTEGER:
+				if ( m_bSigned )
+					nRet = m_aValue.m_nInt32;
+				else
+					nRet = *(sal_Int64*)m_aValue.m_pValue;
+=====================================================================
+Found a 27 line (164 tokens) duplication in the following files: 
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 678 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+	{
+		Reference< XNameAccess > xAccess(xIface, UNO_QUERY);
+		Reference< XHierarchicalNameAccess > xDeepAccess(xIface, UNO_QUERY);
+		Reference< XExactName > xExactName(xIface, UNO_QUERY);
+			
+		if (xAccess.is() || xDeepAccess.is())
+		{
+			OUString aName;
+			OUString aInput = OUString::createFromAscii(buf);
+			
+			if (xExactName.is())
+			{
+				::rtl::OUString sTemp = xExactName->getExactName(aInput);
+				if (sTemp.getLength())
+					aInput = sTemp;
+			}
+				
+			if (xAccess.is() && xAccess->hasByName(aInput))
+			{
+				aName = aInput;
+			}
+			else if (xDeepAccess.is() && xDeepAccess->hasByHierarchicalName(aInput))
+			{
+				aName = aInput;
+			}
+			else if ('0' <= buf[0] && buf[0] <= '9' && xAccess.is())
+			{
+=====================================================================
+Found a 35 line (164 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					m_options["-b"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'F':
+=====================================================================
+Found a 45 line (164 tokens) duplication in the following files: 
+Starting at line 2563 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	OString hFileName = createFileNameFromType(outPath, m_typeName, ".idl");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tml");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+
+	return ret;
+}
+sal_Bool IdlType::dumpDependedTypes(IdlOptions* pOptions)
+=====================================================================
+Found a 36 line (164 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+sal_Bool IdlType::dumpDependedTypes(IdlOptions* pOptions)
+	throw( CannotDumpException )
+{
+	sal_Bool ret = sal_True;
+
+	TypeUsingSet usingSet(m_dependencies.getDependencies(m_typeName));
+
+	TypeUsingSet::const_iterator iter = usingSet.begin();
+	OString typeName;
+	sal_uInt32 index = 0;
+	while (iter != usingSet.end())
+	{
+		typeName = (*iter).m_type;
+		if ((index = typeName.lastIndexOf(']')) > 0)
+			typeName = typeName.copy(index + 1);
+
+		if (getBaseType(typeName).getLength() == 0)
+		{
+			if (!produceType(typeName,
+						   	 m_typeMgr,
+							 m_dependencies,
+							 pOptions))
+			{
+				fprintf(stderr, "%s ERROR: %s\n",
+						pOptions->getProgramName().getStr(),
+						OString("cannot dump Type '" + typeName + "'").getStr());
+				exit(99);
+			}
+		}
+		++iter;
+	}
+
+	return ret;
+}
+
+OString IdlType::dumpHeaderDefine(FileStream& o, sal_Char* prefix )
+=====================================================================
+Found a 35 line (164 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					m_options["-b"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'F':
+=====================================================================
+Found a 19 line (164 tokens) duplication in the following files: 
+Starting at line 1643 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+Starting at line 1679 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+
+    Reference< chart2::XDiagram >    xDiagram( m_spChart2ModelContact->getChart2Diagram() );
+    Reference< beans::XPropertySet > xDiaProp( xDiagram, uno::UNO_QUERY );
+
+    if( xDiagram.is() && xDiaProp.is())
+    {
+        ::std::vector< Reference< chart2::XDataSeries > > aSeriesVector(
+            ::chart::DiagramHelper::getDataSeriesFromDiagram( xDiagram ) );
+
+        uno::Sequence< uno::Sequence< sal_Int32 > > aResult( aSeriesVector.size() );
+
+        ::std::vector< Reference< chart2::XDataSeries > >::const_iterator aIt =
+                aSeriesVector.begin();
+        sal_Int32 i = 0;
+        for( ; aIt != aSeriesVector.end(); ++aIt, ++i )
+        {
+            Reference< beans::XPropertySet > xProp( *aIt, uno::UNO_QUERY );
+            if( xProp.is())
+            {
+                uno::Any aVal(
+=====================================================================
+Found a 42 line (164 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32	nFunctionIndex,
+	sal_Int32	nVtableOffset,
+	void **	pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+=====================================================================
+Found a 10 line (164 tokens) duplication in the following files: 
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,  0,awd,awd,awd, // ... 63
+	   0,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+	};
+
+	const INT16 A_nWhitespaceStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fof,err,err,err,err,err,err,err,err,wht,fig,wht,wht,fig,err,err,
+=====================================================================
+Found a 26 line (163 tokens) duplication in the following files: 
+Starting at line 385 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx
+
+			rtl::OUString arg=aArguments[0];
+
+			uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+			xFactory->createInstanceWithContext(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")),
+				xContext), uno::UNO_QUERY_THROW );
+
+			rtl_uString *dir=NULL;
+			osl_getProcessWorkingDir(&dir);
+			rtl::OUString absFileUrl;
+			osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+			rtl_uString_release(dir);
+
+			uno::Reference <lang::XSingleServiceFactory> xStorageFactory(
+				xServiceFactory->createInstance (rtl::OUString::createFromAscii("com.sun.star.embed.StorageFactory")), uno::UNO_QUERY_THROW);
+
+#if 0
+			rtl::OUString outFileUrl;
+			{
+			rtl_uString *dir1=NULL;
+			osl_getProcessWorkingDir(&dir1);
+			osl_getAbsoluteFileURL(dir1, aArguments[1].pData, &outFileUrl.pData);
+			rtl_uString_release(dir1);
+			}
+
+			uno::Sequence< uno::Any > aArgs( 2 );
+=====================================================================
+Found a 22 line (163 tokens) duplication in the following files: 
+Starting at line 2133 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/iahndl.cxx
+Starting at line 2254 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/iahndl.cxx
+
+    star::document::AmbigousFilterRequest const & rRequest,
+    star::uno::Sequence<
+        star::uno::Reference<
+            star::task::XInteractionContinuation > > const & rContinuations)
+    SAL_THROW((star::uno::RuntimeException))
+{
+    star::uno::Reference< star::task::XInteractionAbort > xAbort;
+    star::uno::Reference< 
+	star::document::XInteractionFilterSelect > xFilterTransport;
+
+    sal_Int32 nCount = rContinuations.getLength();
+    for( sal_Int32 nStep=0; nStep<nCount; ++nStep )
+    {
+        if( ! xAbort.is() )
+            xAbort = star::uno::Reference< star::task::XInteractionAbort >( 
+		rContinuations[nStep], star::uno::UNO_QUERY );
+
+        if( ! xFilterTransport.is() )
+            xFilterTransport = star::uno::Reference< 
+		star::document::XInteractionFilterSelect >( 
+		    rContinuations[nStep], star::uno::UNO_QUERY );
+    }
+=====================================================================
+Found a 44 line (163 tokens) duplication in the following files: 
+Starting at line 1169 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/content.cxx
+Starting at line 1223 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/content.cxx
+
+	Any aCursorAny = createCursorAny( rPropertyHandles, eMode );
+
+    aCursorAny >>= aDynSet;
+
+	if( aDynSet.is() )
+	{
+		Reference< XDynamicResultSet > aDynResult;
+		Reference< XMultiServiceFactory > aServiceManager = m_xImpl->getServiceManager();
+
+		if( aServiceManager.is() )
+		{
+			Reference< XSortedDynamicResultSetFactory > aSortFactory( aServiceManager->createInstance(
+								rtl::OUString::createFromAscii( "com.sun.star.ucb.SortedDynamicResultSetFactory" )),
+								UNO_QUERY );
+
+			aDynResult = aSortFactory->createSortedDynamicResultSet( aDynSet,
+															  rSortInfo,
+															  rAnyCompareFactory );
+		}
+
+		OSL_ENSURE( aDynResult.is(), "Content::createSortedCursor - no sorted cursor!\n" );
+
+		if( aDynResult.is() )
+			aResult = aDynResult->getStaticResultSet();
+		else
+			aResult = aDynSet->getStaticResultSet();
+	}
+
+    OSL_ENSURE( aResult.is(), "Content::createSortedCursor - no cursor!" );
+
+	if ( !aResult.is() )
+	{
+		// Former, the open command directly returned a XResultSet.
+		aCursorAny >>= aResult;
+
+        OSL_ENSURE( !aResult.is(),
+					"Content::createCursor - open-Command must "
+					"return a Reference< XDynnamicResultSet >!" );
+	}
+
+	return aResult;
+}
+//=========================================================================
+Reference< XInputStream > Content::openStream()
+=====================================================================
+Found a 39 line (163 tokens) duplication in the following files: 
+Starting at line 1139 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 1347 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+            RTL_TEXTENCODING_ASCII_US);
+		if (bDowncaseAttribute)
+			aAttribute.ToLowerAscii();
+
+		sal_uInt32 nSection = 0;
+		if (p != pEnd && *p == '*')
+		{
+			++p;
+			if (p != pEnd && isDigit(*p)
+				&& !scanUnsigned(p, pEnd, false, nSection))
+				break;
+		}
+
+		bool bPresent;
+		Parameter ** pPos = aList.find(aAttribute, nSection, bPresent);
+		if (bPresent)
+			break;
+
+		bool bExtended = false;
+		if (p != pEnd && *p == '*')
+		{
+			++p;
+			bExtended = true;
+		}
+
+		p = skipLinearWhiteSpaceComment(p, pEnd);
+
+		if (p == pEnd || *p != '=')
+			break;
+
+		p = skipLinearWhiteSpaceComment(p + 1, pEnd);
+
+		ByteString aCharset;
+		ByteString aLanguage;
+ 		ByteString aValue;
+		if (bExtended)
+		{
+			if (nSection == 0)
+			{
+=====================================================================
+Found a 33 line (163 tokens) duplication in the following files: 
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/file.cxx
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/filehelper.cxx
+
+    char const * pTmp = getenv( "TEMP" );
+    if (pTmp == NULL) pTmp = getenv("temp");
+    if (pTmp == NULL) pTmp = getenv("TMP");
+    if (pTmp == NULL) pTmp = getenv("tmp");
+
+    if( pTmp && strlen(pTmp) >= 2 )
+    {
+        sTempDir = std::string( pTmp );
+    }
+    else
+    {
+#ifdef UNX
+        int nLen;
+        pTmp = P_tmpdir;
+        nLen = strlen(pTmp);
+        if (pTmp[ nLen - 1] == '/')
+        {
+            char cBuf[256];
+            char* pBuf = cBuf;
+            strncpy( pBuf, pTmp, nLen - 1 );
+            pBuf[nLen - 1] = '\0';
+            sTempDir = std::string( pBuf );
+        }
+        else
+        {
+            sTempDir = std::string( pTmp );
+        }
+#else
+        fprintf(stderr, "error: No temp dir found.\n");
+#endif
+    }
+    return sTempDir;
+}
+=====================================================================
+Found a 48 line (163 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/ScriptInfo.cxx
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/porlay.cxx
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::i18n::ScriptType;
+
+//#ifdef BIDI
+#include <unicode/ubidi.h>
+
+/*************************************************************************
+ *                 lcl_IsLigature
+ *
+ * Checks if cCh + cNectCh builds a ligature (used for Kashidas)
+ *************************************************************************/
+
+sal_Bool lcl_IsLigature( xub_Unicode cCh, xub_Unicode cNextCh )
+{
+            // Lam + Alef
+    return ( 0x644 == cCh && 0x627 == cNextCh ) ||
+            // Beh + Reh
+           ( 0x628 == cCh && 0x631 == cNextCh );
+}
+
+/*************************************************************************
+ *                 lcl_ConnectToPrev
+ *
+ * Checks if cCh is connectable to cPrevCh (used for Kashidas)
+ *************************************************************************/
+
+sal_Bool lcl_ConnectToPrev( xub_Unicode cCh, xub_Unicode cPrevCh )
+{
+    // Alef, Dal, Thal, Reh, Zain, and Waw do not connect to the left
+    // Uh, there seem to be some more characters that are not connectable
+    // to the left. So we look for the characters that are actually connectable
+    // to the left. Here is the complete list of WH:
+    sal_Bool bRet = 0x628 == cPrevCh ||
+                    ( 0x62A <= cPrevCh && cPrevCh <= 0x62E ) ||
+                    ( 0x633 <= cPrevCh && cPrevCh <= 0x643 ) ||
+                    ( 0x645 <= cPrevCh && cPrevCh <= 0x647 ) ||
+                    0x64A == cPrevCh ||
+                    ( 0x678 <= cPrevCh && cPrevCh <= 0x687 ) ||
+                    ( 0x69A <= cPrevCh && cPrevCh <= 0x6B4 ) ||
+                    ( 0x6B9 <= cPrevCh && cPrevCh <= 0x6C0 ) ||
+                    ( 0x6C3 <= cPrevCh && cPrevCh <= 0x6D3 );
+
+    // check for ligatures cPrevChar + cChar
+    if ( bRet )
+        bRet = ! lcl_IsLigature( cPrevCh, cCh );
+
+    return bRet;
+}
+=====================================================================
+Found a 30 line (163 tokens) duplication in the following files: 
+Starting at line 5759 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 616 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+
+					SvxMSDffShapeInfo& rInfo = *GetShapeInfos()->GetObject(nFound);
+					pTextImpRec->bReplaceByFly   = rInfo.bReplaceByFly;
+					pTextImpRec->bLastBoxInChain = rInfo.bLastBoxInChain;
+				}
+			}
+
+			if( !pObj )
+                ApplyAttributes( rSt, aSet, rObjData.eShapeType, rObjData.nSpFlags );
+
+            bool bFitText = false;
+            if (GetPropertyValue(DFF_Prop_FitTextToShape) & 2)
+            {
+                aSet.Put( SdrTextAutoGrowHeightItem( TRUE ) );
+                aSet.Put( SdrTextMinFrameHeightItem(
+                    aNewRect.Bottom() - aNewRect.Top() ) );
+                aSet.Put( SdrTextMinFrameWidthItem(
+                    aNewRect.Right() - aNewRect.Left() ) );
+                bFitText = true;
+            }
+            else
+            {
+                aSet.Put( SdrTextAutoGrowHeightItem( FALSE ) );
+                aSet.Put( SdrTextAutoGrowWidthItem( FALSE ) );
+            }
+
+			switch ( (MSO_WrapMode)
+                GetPropertyValue( DFF_Prop_WrapText, mso_wrapSquare ) )
+			{
+				case mso_wrapNone :
+    				aSet.Put( SdrTextAutoGrowWidthItem( TRUE ) );
+=====================================================================
+Found a 25 line (163 tokens) duplication in the following files: 
+Starting at line 4923 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4498 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartDelayVert[] =
+{
+	{ 10800, 0 }, {	21600, 10800 }, { 10800, 21600 }, {	0, 21600 },
+	{ 0, 0 }
+};
+static const sal_uInt16 mso_sptFlowChartDelaySegm[] =
+{
+	0x4000, 0xa702, 0x0002, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] = 
+{
+	{ { 0, 3100 }, { 18500, 18500 } }
+};
+static const mso_CustomShape msoFlowChartDelay =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartDelayVert, sizeof( mso_sptFlowChartDelayVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartDelaySegm, sizeof( mso_sptFlowChartDelaySegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartDelayTextRect, sizeof( mso_sptFlowChartDelayTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 9 line (163 tokens) duplication in the following files: 
+Starting at line 2350 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2426 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 26 line (163 tokens) duplication in the following files: 
+Starting at line 1533 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+Starting at line 1721 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+
+    BOOL bRepeat = TRUE;
+
+	SCCOL nTestX2 = nX2;
+	SCROW nTestY2 = nY2;
+	if (bTestMerge)
+		pDoc->ExtendMerge( nX1,nY1, nTestX2,nTestY2, nTab );
+
+	SCCOL nPosX = pViewData->GetPosX( eHWhich );
+	SCROW nPosY = pViewData->GetPosY( eVWhich );
+	if (nTestX2 < nPosX || nTestY2 < nPosY)
+		return;											// unsichtbar
+	SCCOL nRealX1 = nX1;
+	if (nX1 < nPosX)
+		nX1 = nPosX;
+	if (nY1 < nPosY)
+		nY1 = nPosY;
+
+	SCCOL nXRight = nPosX + pViewData->VisibleCellsX(eHWhich);
+	if (nXRight > MAXCOL) nXRight = MAXCOL;
+	SCROW nYBottom = nPosY + pViewData->VisibleCellsY(eVWhich);
+	if (nYBottom > MAXROW) nYBottom = MAXROW;
+
+	if (nX1 > nXRight || nY1 > nYBottom)
+		return;											// unsichtbar
+	if (nX2 > nXRight) nX2 = nXRight;
+	if (nY2 > nYBottom) nY2 = nYBottom;
+=====================================================================
+Found a 13 line (163 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+
+            if (!conds.utf8.all[cond]) {
+                if (conds.utf8.neg[cond]) {
+                    u8_u16((w_char *) &wc, 1, (char *) cp);
+                    if (conds.utf8.wchars[cond] && 
+                        flag_bsearch((unsigned short *)conds.utf8.wchars[cond],
+                            wc, (short) conds.utf8.wlen[cond])) return 0;
+                } else {
+                    if (!conds.utf8.wchars[cond]) return 0;
+                    u8_u16((w_char *) &wc, 1, (char *) cp);
+                    if (!flag_bsearch((unsigned short *)conds.utf8.wchars[cond],
+                         wc, (short)conds.utf8.wlen[cond])) return 0;
+                }
+            }
+=====================================================================
+Found a 6 line (163 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1427 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e20 - 2e2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 6 line (163 tokens) duplication in the following files: 
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1160 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 6 line (163 tokens) duplication in the following files: 
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 822 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d750 - d75f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d760 - d76f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d770 - d77f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d780 - d78f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d790 - d79f
+     5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7a0 - d7af
+=====================================================================
+Found a 6 line (163 tokens) duplication in the following files: 
+Starting at line 564 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0,27,27,27,27,27,27,27,// 2610 - 261f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2620 - 262f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2630 - 263f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2640 - 264f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2650 - 265f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,24,// 2660 - 266f
+=====================================================================
+Found a 6 line (163 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18f0 - 18ff
+=====================================================================
+Found a 6 line (163 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1361 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10, 0, 0, 0, 0, 0,// 2440 - 244f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2450 - 245f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 2460 - 246f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 2470 - 247f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 2480 - 248f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+=====================================================================
+Found a 29 line (163 tokens) duplication in the following files: 
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/popupmenucontrollerbase.cxx
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/controlmenucontroller.cxx
+
+void SAL_CALL ControlMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+{
+    const rtl::OUString aFrameName( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+    const rtl::OUString aCommandURLName( RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ));
+
+    ResetableGuard aLock( m_aLock );
+    
+    sal_Bool bInitalized( m_bInitialized );
+    if ( !bInitalized )
+    {
+        PropertyValue       aPropValue;
+        rtl::OUString       aCommandURL;
+        Reference< XFrame > xFrame;
+        
+        for ( int i = 0; i < aArguments.getLength(); i++ )
+        {
+            if ( aArguments[i] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "Frame" ))
+                    aPropValue.Value >>= xFrame;
+                else if ( aPropValue.Name.equalsAscii( "CommandURL" ))
+                    aPropValue.Value >>= aCommandURL;
+            }
+        }
+
+        if ( xFrame.is() && aCommandURL.getLength() )
+        {
+            m_xFrame        = xFrame;
+            m_aCommandURL   = aCommandURL;
+=====================================================================
+Found a 40 line (163 tokens) duplication in the following files: 
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/statusbardocumenthandler.cxx
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/statusbardocumenthandler.cxx
+
+                      break;  
+		}
+	}
+}
+
+void SAL_CALL OReadStatusBarDocumentHandler::endElement(const OUString& aName)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	StatusBarHashMap::const_iterator pStatusBarEntry = m_aStatusBarMap.find( aName ) ;
+	if ( pStatusBarEntry != m_aStatusBarMap.end() )
+	{
+		switch ( pStatusBarEntry->second )
+		{
+			case SB_ELEMENT_STATUSBAR:
+			{
+				if ( !m_bStatusBarStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'statusbar' found, but no start element 'statusbar'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+				
+				m_bStatusBarStartFound = sal_False;
+			}
+			break;
+
+			case SB_ELEMENT_STATUSBARITEM:
+			{
+				if ( !m_bStatusBarItemStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'statusbar:statusbaritem' found, but no start element 'statusbar:statusbaritem'" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bStatusBarItemStartFound = sal_False;
+			}
+			break;
+=====================================================================
+Found a 40 line (163 tokens) duplication in the following files: 
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsdocumenthandler.cxx
+Starting at line 361 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsdocumenthandler.cxx
+
+                      break;  
+		}
+	}
+}
+
+void SAL_CALL OReadEventsDocumentHandler::endElement(const OUString& aName)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	EventsHashMap::const_iterator pEventEntry = m_aEventsMap.find( aName );
+	if ( pEventEntry != m_aEventsMap.end() )
+	{
+		switch ( pEventEntry->second )
+		{
+			case EV_ELEMENT_EVENTS:
+			{
+				if ( !m_bEventsStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'event:events' found, but no start element" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bEventsStartFound = sal_False;
+			}
+			break;
+
+			case EV_ELEMENT_EVENT:
+			{
+				if ( !m_bEventStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "End element 'event:event' found, but no start element" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				m_bEventStartFound = sal_False;
+			}
+			break;
+=====================================================================
+Found a 37 line (163 tokens) duplication in the following files: 
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/office/iodlg.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc1/folderrestriction.cxx
+
+static void convertStringListToUrls (
+	const String& _rColonSeparatedList, ::std::vector< String >& _rTokens, bool _bFinalSlash )
+{
+	const sal_Unicode s_cSeparator =
+#if defined(WNT)
+		';'
+#else
+		':'
+#endif
+            ;
+	xub_StrLen nTokens = _rColonSeparatedList.GetTokenCount( s_cSeparator );
+	_rTokens.resize( 0 ); _rTokens.reserve( nTokens );
+	for ( xub_StrLen i=0; i<nTokens; ++i )
+	{
+		// the current token in the list
+		String sCurrentToken = _rColonSeparatedList.GetToken( i, s_cSeparator );
+		if ( !sCurrentToken.Len() )
+			continue;
+
+		INetURLObject aCurrentURL;
+
+		String sURL;
+		if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) )
+			aCurrentURL = INetURLObject( sURL );
+		else
+		{
+			// smart URL parsing, assuming FILE protocol
+			aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE );
+		}
+
+		if ( _bFinalSlash )
+			aCurrentURL.setFinalSlash( );
+		else
+			aCurrentURL.removeFinalSlash( );
+		_rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) );
+	}
+}
+=====================================================================
+Found a 38 line (163 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/FPentry.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/FPentry.cxx
+
+			Reference< XSingleServiceFactory > xFactory;
+
+			if (0 == rtl_str_compare(pImplName, FILE_PICKER_IMPL_NAME))
+			{
+				Sequence< OUString > aSNS( 1 );
+				aSNS.getArray( )[0] = 
+					OUString::createFromAscii(FILE_PICKER_SERVICE_NAME);
+						
+				xFactory = createSingleFactory(
+					reinterpret_cast< XMultiServiceFactory* > ( pSrvManager ),
+					OUString::createFromAscii( pImplName ),
+					createFileInstance,
+					aSNS );
+			}
+			else if (0 == rtl_str_compare(pImplName, FOLDER_PICKER_IMPL_NAME))
+			{
+				Sequence< OUString > aSNS( 1 );
+				aSNS.getArray( )[0] = 
+					OUString::createFromAscii(FOLDER_PICKER_SERVICE_NAME);
+						
+				xFactory = createSingleFactory(
+					reinterpret_cast< XMultiServiceFactory* > ( pSrvManager ),
+					OUString::createFromAscii( pImplName ),
+					createFolderInstance,
+					aSNS );
+			}
+
+			if ( xFactory.is() )
+			{
+				xFactory->acquire();
+				pRet = xFactory.get();
+			}			
+	}
+
+	return pRet;
+}
+
+} // extern "C"
+=====================================================================
+Found a 24 line (163 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/xforms/submission/submission_post.cxx
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/xforms/submission/submission_put.cxx
+
+CSubmission::SubmissionResult CSubmissionPut::submit(const CSS::uno::Reference< CSS::task::XInteractionHandler >& aInteractionHandler)
+{    
+    // PUT always uses application/xml
+    auto_ptr< CSerialization > apSerialization(new CSerializationAppXML());
+    apSerialization->setSource(m_aFragment);
+    apSerialization->serialize();
+
+    // create a commandEnvironment and use the default interaction handler
+    CCommandEnvironmentHelper *pHelper = new CCommandEnvironmentHelper;
+    if( aInteractionHandler.is() )
+        pHelper->m_aInteractionHandler = aInteractionHandler;
+    else
+        pHelper->m_aInteractionHandler = CSS::uno::Reference< XInteractionHandler >(m_aFactory->createInstance(
+            OUString::createFromAscii("com.sun.star.task.InteractionHandler")), UNO_QUERY);
+    OSL_ENSURE(pHelper->m_aInteractionHandler.is(), "failed to create IntreractionHandler");
+
+    CProgressHandlerHelper *pProgressHelper = new CProgressHandlerHelper;
+    pHelper->m_aProgressHandler = CSS::uno::Reference< XProgressHandler >(pProgressHelper);
+
+    // UCB has ownership of environment...
+    CSS::uno::Reference< XCommandEnvironment > aEnvironment(pHelper);
+
+    try {
+        ucbhelper::Content aContent(m_aURLObj.GetMainURL(INetURLObject::NO_DECODE), aEnvironment);
+=====================================================================
+Found a 31 line (163 tokens) duplication in the following files: 
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/DatabaseForm.cxx
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/DatabaseForm.cxx
+
+::rtl::OUString ODatabaseForm::GetDataTextEncoded(const Reference<XControl>& SubmitButton, const ::com::sun::star::awt::MouseEvent& MouseEvt)
+{
+
+	// Liste von successful Controls fuellen
+	HtmlSuccessfulObjList aSuccObjList;
+	FillSuccessfulList( aSuccObjList, SubmitButton, MouseEvt );
+	// Liste zu ::rtl::OUString zusammensetzen
+	::rtl::OUString aResult;
+	::rtl::OUString aName;
+	::rtl::OUString aValue;
+
+	for	(	HtmlSuccessfulObjListIterator pSuccObj = aSuccObjList.begin();
+			pSuccObj < aSuccObjList.end();
+			++pSuccObj
+		)
+	{
+		aName = pSuccObj->aName;
+		aValue = pSuccObj->aValue;
+		if (pSuccObj->nRepresentation == SUCCESSFUL_REPRESENT_FILE && aValue.getLength())
+		{
+			// Bei File-URLs wird der Dateiname und keine URL uebertragen,
+			// weil Netscape dies so macht.
+			INetURLObject aURL;
+			aURL.SetSmartProtocol(INET_PROT_FILE);
+			aURL.SetSmartURL(aValue);
+			if( INET_PROT_FILE == aURL.GetProtocol() )
+				aValue = INetURLObject::decode(aURL.PathToFileName(), '%', INetURLObject::DECODE_UNAMBIGUOUS);
+		}
+		Encode( aName );
+		Encode( aValue );
+		aResult += pSuccObj->aName;
+=====================================================================
+Found a 29 line (163 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propertysethelper.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/property/propertysethelper.cxx
+
+		PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
+		const OUString* pNames = aPropertyNames.getConstArray();
+
+		sal_Bool bUnknown = sal_False;
+		sal_Int32 n;
+		for( n = 0; !bUnknown && ( n < nCount ); n++, pNames++ )
+		{
+			pEntries[n] = mp->find( *pNames );
+			bUnknown = NULL == pEntries[n];
+		}
+
+		if( !bUnknown )
+			_setPropertyValues( (const PropertyMapEntry**)pEntries, aValues.getConstArray() );
+
+		delete [] pEntries;
+
+		if( bUnknown )
+			throw UnknownPropertyException();
+	}
+}
+
+Sequence< Any > SAL_CALL PropertySetHelper::getPropertyValues( const Sequence< ::rtl::OUString >& aPropertyNames ) throw(RuntimeException)
+{
+	const sal_Int32 nCount = aPropertyNames.getLength();
+
+	Sequence< Any > aValues;
+	if( nCount )
+	{
+		PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
+=====================================================================
+Found a 30 line (163 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/eventattachermgr/eventattachermgr.cxx
+Starting at line 528 of /local/ooo-build/ooo-build/src/oog680-m3/eventattacher/source/eventattacher.cxx
+
+void FilterAllListenerImpl::convertToEventReturn( Any & rRet, const Type & rRetType )
+	throw( CannotConvertException )
+{
+	// no return value? Set to the specified values
+	if( rRet.getValueType().getTypeClass() == TypeClass_VOID )
+	{
+		switch( rRetType.getTypeClass()  )
+		{
+			case TypeClass_INTERFACE:
+				{
+				rRet <<= Reference< XInterface >();
+				}
+				break;
+
+			case TypeClass_BOOLEAN:			
+				rRet <<= sal_True;		
+				break;
+			
+			case TypeClass_STRING:			
+				rRet <<= OUString();	
+				break;
+
+			case TypeClass_FLOAT:			rRet <<= float(0);	break;
+			case TypeClass_DOUBLE:			rRet <<= double(0.0);	break;
+			case TypeClass_BYTE:			rRet <<= sal_uInt8( 0 );	break;
+			case TypeClass_SHORT:			rRet <<= sal_Int16( 0 );	break;
+			case TypeClass_LONG:			rRet <<= sal_Int32( 0 );	break;
+			case TypeClass_UNSIGNED_SHORT:	rRet <<= sal_uInt16( 0 );	break;
+			case TypeClass_UNSIGNED_LONG:	rRet <<= sal_uInt32( 0 );	break;
+                     default:
+=====================================================================
+Found a 44 line (163 tokens) duplication in the following files: 
+Starting at line 2563 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 1205 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	OString hFileName = createFileNameFromType(outPath, m_typeName, ".idl");
+
+	sal_Bool bFileExists = sal_False;
+	sal_Bool bFileCheck = sal_False;
+
+	if ( pOptions->isValid("-G") || pOptions->isValid("-Gc") )
+	{
+		bFileExists = fileExists( hFileName );
+		ret = sal_True;
+	}
+
+	if ( bFileExists && pOptions->isValid("-Gc") )
+	{
+		tmpFileName	 = createFileNameFromType(outPath, m_typeName, ".tml");
+		bFileCheck = sal_True;
+	}
+
+	if ( !bFileExists || bFileCheck )
+	{
+		FileStream hFile;
+
+		if ( bFileCheck )
+			hFile.open(tmpFileName);
+		else
+			hFile.open(hFileName);
+
+		if(!hFile.isValid())
+		{
+			OString message("cannot open ");
+			message += hFileName + " for writing";
+			throw CannotDumpException(message);
+		}
+
+		ret = dumpHFile(hFile);
+
+		hFile.close();
+		if (ret && bFileCheck)
+		{
+			ret = checkFileContent(hFileName, tmpFileName);
+		}
+	}
+
+	return ret;
+}
+=====================================================================
+Found a 27 line (163 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+			pUnoReturn = (cppu_relatesToInterface( pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
+=====================================================================
+Found a 24 line (162 tokens) duplication in the following files: 
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+
+        span_pattern_filter_rgb(alloc_type& alloc,
+                                const rendering_buffer& src, 
+                                interpolator_type& intr,
+                                const image_filter_lut& filter) :
+            base_type(alloc, src, color_type(0,0,0,0), intr, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 30 line (162 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOASISTContext.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/DlgOASISTContext.cxx
+
+	OSL_ENSURE( pActions, "go no actions" );
+	
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList = 
+						new XMLMutableAttributeList( xAttrList );
+				xAttrList = pMutableAttrList;
+			}
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_DLG_BORDER:
+=====================================================================
+Found a 22 line (162 tokens) duplication in the following files: 
+Starting at line 941 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/xmlnumfe.cxx
+Starting at line 2121 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/xmlnumfi.cxx
+
+		case NF_KEY_NN:		eDateDOW = XML_DEA_SHORT;		break;
+		case NF_KEY_NNN:
+		case NF_KEY_NNNN:	eDateDOW = XML_DEA_LONG;		break;
+		case NF_KEY_D:		eDateDay = XML_DEA_SHORT;		break;
+		case NF_KEY_DD:		eDateDay = XML_DEA_LONG;		break;
+		case NF_KEY_M:		eDateMonth = XML_DEA_SHORT;		break;
+		case NF_KEY_MM:		eDateMonth = XML_DEA_LONG;		break;
+		case NF_KEY_MMM:	eDateMonth = XML_DEA_TEXTSHORT;	break;
+		case NF_KEY_MMMM:	eDateMonth = XML_DEA_TEXTLONG;	break;
+		case NF_KEY_YY:		eDateYear = XML_DEA_SHORT;		break;
+		case NF_KEY_YYYY:	eDateYear = XML_DEA_LONG;		break;
+		case NF_KEY_H:		eDateHours = XML_DEA_SHORT;		break;
+		case NF_KEY_HH:		eDateHours = XML_DEA_LONG;		break;
+		case NF_KEY_MI:		eDateMins = XML_DEA_SHORT;		break;
+		case NF_KEY_MMI:	eDateMins = XML_DEA_LONG;		break;
+		case NF_KEY_S:		eDateSecs = XML_DEA_SHORT;		break;
+		case NF_KEY_SS:		eDateSecs = XML_DEA_LONG;		break;
+		case NF_KEY_AP:
+		case NF_KEY_AMPM:	break;			// AM/PM may or may not be in date/time formats -> ignore by itself
+		default:
+			bDateNoDefault = sal_True;		// any other element -> no default format
+	}
+=====================================================================
+Found a 14 line (162 tokens) duplication in the following files: 
+Starting at line 3127 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 3170 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+        Color pColorAry1[6];
+        Color pColorAry2[6];
+        pColorAry1[0] = Color( 0xC0, 0xC0, 0xC0 );
+        pColorAry1[1] = Color( 0xFF, 0xFF, 0x00 );
+        pColorAry1[2] = Color( 0xFF, 0xFF, 0xFF );
+        pColorAry1[3] = Color( 0x80, 0x80, 0x80 );
+        pColorAry1[4] = Color( 0x00, 0x00, 0x00 );
+        pColorAry1[5] = Color( 0x00, 0xFF, 0x00 );
+        pColorAry2[0] = rStyleSettings.GetFaceColor();
+        pColorAry2[1] = rStyleSettings.GetWindowColor();
+        pColorAry2[2] = rStyleSettings.GetLightColor();
+        pColorAry2[3] = rStyleSettings.GetShadowColor();
+        pColorAry2[4] = rStyleSettings.GetDarkShadowColor();
+        pColorAry2[5] = rStyleSettings.GetWindowTextColor();
+=====================================================================
+Found a 41 line (162 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+	{
+		//=================================================================
+		//
+        // Stream: Supported properties
+		//
+		//=================================================================
+
+        static const beans::Property aStreamPropertyInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory properties
+            ///////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+            )
+=====================================================================
+Found a 23 line (162 tokens) duplication in the following files: 
+Starting at line 1096 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+Starting at line 1263 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+
+		i = 0;
+		while( i < nCount )
+		{
+			const SwTxtAttr *pTmp = (*pHints)[i++];
+			if( *pTmp->GetAnyEnd() <= rPos )
+				continue;
+			if( rPos < *pTmp->GetStart() )
+			{
+				if( !bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() )
+					break;
+				rPos = *pTmp->GetStart();
+				while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= rPos )
+				{
+					bOn = !bOn;
+					aEnd.Remove( aEnd.Count()-1, 1 );
+				}
+				if( !aEnd.Count() )
+				{
+					aEnd.Insert( rPos, 0 );
+					bOn = sal_True;
+				}
+			}
+			if( RES_TXTATR_CJK_RUBY == pTmp->Which() )
+=====================================================================
+Found a 18 line (162 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoctabl.cxx
+
+    static uno::Sequence< OUString >  getSupportedServiceNames_Static(void) throw();
+
+	// XNameContainer
+	virtual void SAL_CALL insertByName( const  OUString& aName, const  uno::Any& aElement ) throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException);
+	virtual void SAL_CALL removeByName( const  OUString& Name ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+	// XNameReplace
+    virtual void SAL_CALL replaceByName( const  OUString& aName, const  uno::Any& aElement ) throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+	// XNameAccess
+    virtual uno::Any SAL_CALL getByName( const  OUString& aName ) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException);
+
+    virtual uno::Sequence<  OUString > SAL_CALL getElementNames(  ) throw( uno::RuntimeException);
+
+    virtual sal_Bool SAL_CALL hasByName( const  OUString& aName ) throw( uno::RuntimeException);
+
+	// XElementAccess
+    virtual uno::Type SAL_CALL getElementType(  ) throw( uno::RuntimeException);
+=====================================================================
+Found a 19 line (162 tokens) duplication in the following files: 
+Starting at line 1898 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2418 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+            0x6F, 0x67, 0x67, 0x6C, 0x65, 0x42, 0x75, 0x74,
+            0x74, 0x6F, 0x6E, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+            0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+        };
+
+    {
+    SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+    xStor->Write(aCompObj,sizeof(aCompObj));
+    DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+    }
+
+    {
+    SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+    xStor3->Write(aObjInfo,sizeof(aObjInfo));
+    DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+    }
+
+    static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+=====================================================================
+Found a 19 line (162 tokens) duplication in the following files: 
+Starting at line 1680 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2800 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x42, 0x6F, 0x78, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+		0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+		0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x62, 0x00,
+=====================================================================
+Found a 19 line (162 tokens) duplication in the following files: 
+Starting at line 1679 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 1898 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x70, 0x74, 0x69, 0x6F, 0x6E, 0x42, 0x75, 0x74,
+		0x74, 0x6F, 0x6E, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+		0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+=====================================================================
+Found a 19 line (162 tokens) duplication in the following files: 
+Starting at line 1578 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2800 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x42, 0x6F, 0x78, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+		0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+		0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x62, 0x00,
+=====================================================================
+Found a 19 line (162 tokens) duplication in the following files: 
+Starting at line 1577 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 1898 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x70, 0x74, 0x69, 0x6F, 0x6E, 0x42, 0x75, 0x74,
+		0x74, 0x6F, 0x6E, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+		0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+=====================================================================
+Found a 9 line (162 tokens) duplication in the following files: 
+Starting at line 2077 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2151 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+	
+	{ 0xa MSO_I, 10800 }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 24 line (162 tokens) duplication in the following files: 
+Starting at line 4794 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4374 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartCollateVert[] =
+{
+	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] = 
+{
+	{ { 5400, 5400 }, { 16200, 16200 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] =
+{
+	{ 10800, 0 }, { 10800, 10800 }, { 10800, 21600 }
+};
+static const mso_CustomShape msoFlowChartCollate =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartCollateVert, sizeof( mso_sptFlowChartCollateVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartCollateTextRect, sizeof( mso_sptFlowChartCollateTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartCollateGluePoints, sizeof( mso_sptFlowChartCollateGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 15 line (162 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl2.cxx
+Starting at line 3129 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+		Rectangle rRect( pView->CalcBmpRect( pEntry,0,pViewData ) );
+		short nY = (short)( ((rRect.Top()+rRect.Bottom())/2) / nDeltaHeight );
+		short nX = (short)( ((rRect.Left()+rRect.Right())/2) / nDeltaWidth );
+
+		// Rundungsfehler abfangen
+		if( nY >= nRows )
+			nY = sal::static_int_cast< short >(nRows - 1);
+		if( nX >= nCols )
+			nX = sal::static_int_cast< short >(nCols - 1);
+
+		USHORT nIns = GetSortListPos( &pColumns[nX], rRect.Top(), TRUE );
+		pColumns[ nX ].Insert( pEntry, nIns );
+
+		nIns = GetSortListPos( &pRows[nY], rRect.Left(), FALSE );
+		pRows[ nY ].Insert( pEntry, nIns );
+=====================================================================
+Found a 15 line (162 tokens) duplication in the following files: 
+Starting at line 1035 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/unomodel.cxx
+Starting at line 1247 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/view.cxx
+
+    Size    aPrtPaperSize ( pPrinter->GetPaperSize() );
+
+	// set minimum top and bottom border
+    if (aPrtPageOffset.Y() < 2000)
+        OutputRect.Top() += 2000 - aPrtPageOffset.Y();
+    if ((aPrtPaperSize.Height() - (aPrtPageOffset.Y() + OutputRect.Bottom())) < 2000)
+        OutputRect.Bottom() -= 2000 - (aPrtPaperSize.Height() -
+                                       (aPrtPageOffset.Y() + OutputRect.Bottom()));
+
+	// set minimum left and right border
+    if (aPrtPageOffset.X() < 2500)
+        OutputRect.Left() += 2500 - aPrtPageOffset.X();
+    if ((aPrtPaperSize.Width() - (aPrtPageOffset.X() + OutputRect.Right())) < 1500)
+        OutputRect.Right() -= 1500 - (aPrtPaperSize.Width() -
+                                      (aPrtPageOffset.X() + OutputRect.Right()));
+=====================================================================
+Found a 18 line (162 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/filtdlg.cxx
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pfiltdlg.cxx
+
+	:	ModalDialog	( pParent, ScResId( RID_SCDLG_PIVOTFILTER ) ),
+		//
+        aFlCriteria     ( this, ScResId( FL_CRITERIA ) ),
+		aLbField1		( this, ScResId( LB_FIELD1 ) ),
+		aLbCond1		( this, ScResId( LB_COND1 ) ),
+		aEdVal1			( this, ScResId( ED_VAL1 ) ),
+		aLbConnect1		( this, ScResId( LB_OP1 ) ),
+		aLbField2		( this, ScResId( LB_FIELD2 ) ),
+		aLbCond2		( this, ScResId( LB_COND2 ) ),
+		aEdVal2			( this, ScResId( ED_VAL2 ) ),
+		aLbConnect2		( this, ScResId( LB_OP2 ) ),
+		aLbField3		( this, ScResId( LB_FIELD3 ) ),
+		aLbCond3		( this, ScResId( LB_COND3 ) ),
+		aEdVal3			( this, ScResId( ED_VAL3 ) ),
+		aFtConnect		( this, ScResId( FT_OP ) ),
+		aFtField		( this, ScResId( FT_FIELD ) ),
+		aFtCond			( this, ScResId( FT_COND ) ),
+		aFtVal			( this, ScResId( FT_VAL ) ),
+=====================================================================
+Found a 29 line (162 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dociter.cxx
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dociter.cxx
+
+	nEndTab( rRange.aEnd.Tab() ),
+	nNumFmtType( NUMBERFORMAT_UNDEFINED ),
+	bNumValid( FALSE ),
+	bSubTotal(bSTotal),
+	bNextValid( FALSE ),
+	bCalcAsShown( pDocument->GetDocOptions().IsCalcAsShown() ),
+	bTextAsZero( bTextZero )
+{
+	PutInOrder( nStartCol, nEndCol);
+	PutInOrder( nStartRow, nEndRow);
+	PutInOrder( nStartTab, nEndTab );
+
+	if (!ValidCol(nStartCol)) nStartCol = MAXCOL;
+	if (!ValidCol(nEndCol)) nEndCol = MAXCOL;
+	if (!ValidRow(nStartRow)) nStartRow = MAXROW;
+	if (!ValidRow(nEndRow)) nEndRow = MAXROW;
+	if (!ValidTab(nStartTab)) nStartTab = MAXTAB;
+	if (!ValidTab(nEndTab)) nEndTab = MAXTAB;
+
+	nCol = nStartCol;
+	nRow = nStartRow;
+	nTab = nStartTab;
+
+	nColRow = 0;					// wird bei GetFirst initialisiert
+
+	nNumFormat = 0;					// werden bei GetNumberFormat initialisiert
+	pAttrArray = 0;
+	nAttrEndRow = 0;
+}
+=====================================================================
+Found a 26 line (162 tokens) duplication in the following files: 
+Starting at line 732 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 644 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+				releaseProfile(pProfile);
+#ifdef TRACE_OSL_PROFILE
+                OSL_TRACE("Out osl_writeProfileString [not added]\n");
+#endif
+				return (sal_False);
+			}
+
+			pSec = &pProfile->m_Sections[pProfile->m_NoSections - 1];
+			NoEntry = pSec->m_NoEntries;
+		}
+
+		Line[0] = '\0';
+		strcpy(&Line[0], pszEntry);
+		Line[0 + strlen(pszEntry)] = '=';
+		strcpy(&Line[1 + strlen(pszEntry)], pszString);
+
+		if (NoEntry >= pSec->m_NoEntries)
+		{
+			if (pSec->m_NoEntries > 0)
+				i = pSec->m_Entries[pSec->m_NoEntries - 1].m_Line + 1;
+			else
+				i = pSec->m_Line + 1;
+
+			if (((pStr = insertLine(pProfile, Line, i)) == NULL) ||
+				(! addEntry(pProfile, pSec, i, pStr, strlen(pszEntry))))
+			{
+=====================================================================
+Found a 19 line (162 tokens) duplication in the following files: 
+Starting at line 2464 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 2602 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+void SAL_CALL OWriteStream::removeRelationshipByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Id" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
+=====================================================================
+Found a 38 line (162 tokens) duplication in the following files: 
+Starting at line 721 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest/threadtest.cxx
+Starting at line 722 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest.cxx
+
+		pThreads[nI].pCondition = NULL;
+	}
+
+	delete[] pThreads;
+	pThreads = NULL;
+
+	nEndTime = osl_getGlobalTimer();
+
+	// Calc used time and return it. [ms]
+	return( nEndTime-nStartTime );
+}
+
+//_________________________________________________________________________________________________________________
+void TestApplication::Main()
+{
+	sal_Int32 nTestCount	= 0;	/// count of calling "measureTime()"
+	sal_Int32 nThreadCount	= 0;	/// count of used threads by "measure..."
+	sal_Int32 nLoops		= 0;	/// loop count for every thread
+	sal_Int32 nOwner		= 0;	/// number of owner thread
+
+	// Parse command line.
+	// Attention: All parameter are required and must exist!
+	// syntax: "threadtest.exe <testcount> <threadcount> <loops> <owner>"
+	OStartupInfo	aInfo		;
+	OUString		sArgument	;
+	sal_Int32		nArgument	;
+	sal_Int32		nCount		= aInfo.getCommandArgCount();
+
+	LOG_ASSERT2( nCount!=4 ,"TestApplication::Main()" , "Wrong argument line detected!")
+
+	for( nArgument=0; nArgument<nCount; ++nArgument )
+	{
+		aInfo.getCommandArg( nArgument, sArgument );
+		if( nArgument== 0 )	nTestCount	=sArgument.toInt32();
+		if( nArgument== 1 )	nThreadCount=sArgument.toInt32();
+		if( nArgument== 2 )	nLoops		=sArgument.toInt32();
+		if( nArgument== 3 )	nOwner		=sArgument.toInt32();
+	}
+=====================================================================
+Found a 26 line (162 tokens) duplication in the following files: 
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+
+		sal_Int32 nInBetweenMark = rMarkable->createMark( );
+		rMarkable->jumpToMark( nMark );
+		rMarkable->jumpToMark( nInBetweenMark );
+
+		rInput->readBytes( seqRead , 10 );
+		ERROR_ASSERT( 20 == seqRead.getArray()[0] , "Inbetween mark failed!\n" );
+
+		rMarkable->deleteMark( nMark );
+
+		// Check if releasing the first bytes works correct.
+		rMarkable->jumpToMark( nInBetweenMark);
+		rInput->readBytes( seqRead , 10 );
+		ERROR_ASSERT( 20 == seqRead.getArray()[0] , "Inbetween mark failed!\n" );
+
+		rMarkable->deleteMark( nInBetweenMark );
+	}
+
+	rMarkable->jumpToFurthest();
+	ERROR_ASSERT( 256-10-50 == rInput->available() , "marking error" );
+
+
+	ERROR_ASSERT( 100 == rInput->readSomeBytes( seqRead , 100	) , "wrong results using readSomeBytes" );
+	ERROR_ASSERT( 96 == rInput->readSomeBytes( seqRead , 1000) , "wrong results using readSomeBytes" );
+	rOutput->closeOutput();
+	rInput->closeInput();
+}
+=====================================================================
+Found a 37 line (162 tokens) duplication in the following files: 
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+			aStyle += NMSP_RTL::OUString::valueOf( ( 255 - (double) rFillColor.GetTransparency() ) / 255.0 );
+		}
+	}
+
+	return aStyle.GetString();
+}
+
+// -----------------------------------------------------------------------------
+
+void SVGAttributeWriter::SetFontAttr( const Font& rFont )
+{
+	if( !mpElemFont || ( rFont != maCurFont ) )
+	{
+		delete mpElemPaint, mpElemPaint = NULL;
+		delete mpElemFont;
+		mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrStyle, GetFontStyle( maCurFont = rFont ) );
+		mpElemFont = new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemG, TRUE, TRUE );
+	}
+}
+
+// -----------------------------------------------------------------------------
+
+void SVGAttributeWriter::SetPaintAttr( const Color& rLineColor, const Color& rFillColor )
+{
+	if( !mpElemPaint || ( rLineColor != maCurLineColor ) || ( rFillColor != maCurFillColor ) )
+	{
+		delete mpElemPaint;
+		mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrStyle, GetPaintStyle( maCurLineColor = rLineColor, maCurFillColor = rFillColor ) );
+		mpElemPaint = new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemG, TRUE, TRUE );
+	}
+}
+
+// -------------------
+// - SVGActionWriter -
+// -------------------
+
+SVGActionWriter::SVGActionWriter( SvXMLExport& rExport, SVGFontExport& rFontExport ) :
+=====================================================================
+Found a 29 line (162 tokens) duplication in the following files: 
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OTools.cxx
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OTools.cxx
+
+					_pData = (void*)((::rtl::OString*)_pData)->getStr();
+				}	break;
+				case SQL_BIT:
+				case SQL_TINYINT:
+					*((sal_Int8*)_pData) = *(sal_Int8*)_pValue;
+					*pLen = sizeof(sal_Int8);
+					break;
+
+				case SQL_SMALLINT:
+					*((sal_Int16*)_pData) = *(sal_Int16*)_pValue;
+					*pLen = sizeof(sal_Int16);
+					break;
+				case SQL_INTEGER:
+					*((sal_Int32*)_pData) = *(sal_Int32*)_pValue;
+					*pLen = sizeof(sal_Int32);
+					break;
+				case SQL_FLOAT:
+					*((float*)_pData) = *(float*)_pValue;
+					*pLen = sizeof(float);
+					break;
+				case SQL_REAL:
+				case SQL_DOUBLE:
+					*((double*)_pData) = *(double*)_pValue;
+					*pLen = sizeof(double);
+					break;
+				case SQL_BINARY:
+				case SQL_VARBINARY:
+                                                //      if (_pValue == ::getCppuType((const ::com::sun::star::uno::Sequence< sal_Int8 > *)0))
+					{
+=====================================================================
+Found a 9 line (162 tokens) duplication in the following files: 
+Starting at line 688 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/dbtools2.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+
+		static const ::rtl::OUString sSELECT	= ::rtl::OUString::createFromAscii("SELECT");
+		static const ::rtl::OUString sINSERT	= ::rtl::OUString::createFromAscii("INSERT");
+		static const ::rtl::OUString sUPDATE	= ::rtl::OUString::createFromAscii("UPDATE");
+		static const ::rtl::OUString sDELETE	= ::rtl::OUString::createFromAscii("DELETE");
+		static const ::rtl::OUString sREAD		= ::rtl::OUString::createFromAscii("READ");
+		static const ::rtl::OUString sCREATE	= ::rtl::OUString::createFromAscii("CREATE");
+		static const ::rtl::OUString sALTER		= ::rtl::OUString::createFromAscii("ALTER");
+		static const ::rtl::OUString sREFERENCE = ::rtl::OUString::createFromAscii("REFERENCE");
+		static const ::rtl::OUString sDROP		= ::rtl::OUString::createFromAscii("DROP");
+=====================================================================
+Found a 44 line (162 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+		}
+	}
+	catch(std::exception& e)
+	{
+		e.what();	// silence warnings
+	}
+}
+
+// -----------------------------------------------------------------------------
+Sequence<Any> createSequence(const OUString &sUser, const OUString &sPasswd)
+{
+	Sequence< Any > aCPArgs;
+		
+	if (sUser.getLength() > 0)
+	{
+		aCPArgs.realloc(1);
+		aCPArgs[0] <<= configmgr::createPropertyValue(ASCII("user"), sUser);
+	}
+	if (sPasswd.getLength() > 0)
+	{
+		aCPArgs.realloc(2);
+		aCPArgs[1] <<= configmgr::createPropertyValue(ASCII("password"), sPasswd);
+	}
+	return aCPArgs;
+}
+
+//=============================================================================
+#include <string.h>
+#if (defined UNX) || (defined OS2)
+#else
+#include <conio.h>
+#endif
+
+OString input(const char* pDefaultText, char cEcho)
+{
+	// PRE: a Default Text would be shown, cEcho is a Value which will show if a key is pressed.
+	const int MAX_INPUT_LEN = 500;
+	char aBuffer[MAX_INPUT_LEN];
+
+	strcpy(aBuffer, pDefaultText);
+	int nLen = strlen(aBuffer);
+
+#ifdef WNT
+	char ch = '\0';
+=====================================================================
+Found a 30 line (162 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+
+    produce(typeName, typeMgr, generated, pOptions);
+
+    RegistryKeyList typeKeys = typeMgr.getTypeKeys(typeName);
+	RegistryKeyList::const_iterator iter = typeKeys.begin();
+    RegistryKey key, subKey;
+    RegistryKeyArray subKeys;
+
+	while (iter != typeKeys.end())
+	{
+        key = (*iter).first;
+        if (!(*iter).second  && !key.openSubKeys(OUString(), subKeys))
+        {
+            for (sal_uInt32 i = 0; i < subKeys.getLength(); i++)
+            {
+                subKey = subKeys.getElement(i);
+                if (bFullScope)
+                {
+                    produceAllTypes(subKey, (*iter).second, typeMgr,
+                                    generated, pOptions, true);
+                } else
+                {
+                    produce(subKey, (*iter).second,
+                            typeMgr, generated, pOptions);
+                }
+            }
+        }      
+        
+        ++iter;
+	}
+}
+=====================================================================
+Found a 33 line (162 tokens) duplication in the following files: 
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
+          "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+	}
+}
+
+//================================================================================================== 
+static void cpp_call(
+=====================================================================
+Found a 36 line (162 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 29 line (162 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+        
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+
+        if (rtti)
+        {
+            pair< t_rtti_map::iterator, bool > insertion(
+                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
+        }
+        else
+        {
+            // try to lookup the symbol in the generated rtti map
+            t_rtti_map::const_iterator iiFind( m_generatedRttis.find( unoName ) );
+=====================================================================
+Found a 36 line (162 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+			    pCppStack += sizeof(sal_Int32); // extra long
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, 
+                                        pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 30 line (161 tokens) duplication in the following files: 
+Starting at line 5886 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/doctok/resources.cxx
+Starting at line 6283 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/doctok/resources.cxx
+
+    void WW8BKF::resolve(Properties & rHandler)
+    {
+        try 
+        {
+            {
+                WW8Value::Pointer_t pVal = createValue(get_ibkl());
+                rHandler.attribute(NS_rtf::LN_IBKL, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_itcFirst());
+                rHandler.attribute(NS_rtf::LN_ITCFIRST, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_fPub());
+                rHandler.attribute(NS_rtf::LN_FPUB, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_itcLim());
+                rHandler.attribute(NS_rtf::LN_ITCLIM, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_fCol());
+                rHandler.attribute(NS_rtf::LN_FCOL, *pVal);
+            }
+      } catch (Exception & e) {
+         clog << e.getText() << endl;
+      }
+    }
+
+    void 
+=====================================================================
+Found a 19 line (161 tokens) duplication in the following files: 
+Starting at line 4456 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6292 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x44,0x6C,0x6C,0x54,0x54,0x44,0x44,0x44,0x44,0x00,0x00,
+
+        7, // 0x4E 'N'
+        0x00,0x44,0x64,0x64,0x54,0x54,0x4C,0x4C,0x44,0x44,0x00,0x00,
+
+        7, // 0x4F 'O'
+        0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+        7, // 0x50 'P'
+        0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+        7, // 0x51 'Q'
+        0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,
+
+        7, // 0x52 'R'
+        0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,
+
+        7, // 0x53 'S'
+        0x00,0x38,0x44,0x40,0x40,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+=====================================================================
+Found a 26 line (161 tokens) duplication in the following files: 
+Starting at line 671 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 694 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+            unsigned step_back = diameter << 2;
+            color_type* span = base_type::allocator().span();
+
+            int maxx = base_type::source_image().width() + start - 2;
+            int maxy = base_type::source_image().height() + start - 2;
+
+            int maxx2 = base_type::source_image().width() - start - 1;
+            int maxy2 = base_type::source_image().height() - start - 1;
+
+            int x_count; 
+            int weight_y;
+
+            do
+            {
+                base_type::interpolator().coordinates(&x, &y);
+
+                x -= base_type::filter_dx_int();
+                y -= base_type::filter_dy_int();
+
+                int x_hr = x; 
+                int y_hr = y; 
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 45 line (161 tokens) duplication in the following files: 
+Starting at line 634 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 1051 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+            value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+            if(covers)
+            {
+                do 
+                {
+                    blender_type::copy_or_blend_opaque_pix(p, *colors++, *covers++);
+                    p += 4;
+                }
+                while(--len);
+            }
+            else
+            {
+                if(cover == 255)
+                {
+                    do 
+                    {
+                        p[order_type::R] = colors->r;
+                        p[order_type::G] = colors->g;
+                        p[order_type::B] = colors->b;
+                        p[order_type::A] = base_mask;
+                        p += 4;
+                        ++colors;
+                    }
+                    while(--len);
+                }
+                else
+                {
+                    do 
+                    {
+                        blender_type::copy_or_blend_opaque_pix(p, *colors++, cover);
+                        p += 4;
+                    }
+                    while(--len);
+                }
+            }
+        }
+
+
+        //--------------------------------------------------------------------
+        void blend_opaque_color_vspan(int x, int y,
+                                      unsigned len, 
+                                      const color_type* colors,
+                                      const int8u* covers,
+                                      int8u cover)
+        {
+=====================================================================
+Found a 20 line (161 tokens) duplication in the following files: 
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 424 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+        void blend_vline(int x, int y,
+                         unsigned len, 
+                         const color_type& c,
+                         int8u cover)
+        {
+            if (c.a)
+            {
+                value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+                calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+                if(alpha == base_mask)
+                {
+                    pixel_type v;
+                    ((value_type*)&v)[order_type::R] = c.r;
+                    ((value_type*)&v)[order_type::G] = c.g;
+                    ((value_type*)&v)[order_type::B] = c.b;
+                    ((value_type*)&v)[order_type::A] = c.a;
+                    do
+                    {
+                        *(pixel_type*)p = v;
+                        p = (value_type*)m_rbuf->next_row(p);
+=====================================================================
+Found a 42 line (161 tokens) duplication in the following files: 
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static const ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+			-1,
+			getCppuBooleanType()
+		)
+#endif
+#ifdef IMPLEMENT_COMMAND_INSERT
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+			-1,
+=====================================================================
+Found a 33 line (161 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const beans::Property aRootPropertyInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+            // Mandatory properties
+			///////////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			)
+=====================================================================
+Found a 42 line (161 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static const ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+			-1,
+			getCppuBooleanType()
+		)
+#endif
+#ifdef IMPLEMENT_COMMAND_INSERT
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+			-1,
+=====================================================================
+Found a 33 line (161 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const beans::Property aRootPropertyInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+            // Mandatory properties
+			///////////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+				-1,
+				getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+				-1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+			)
+=====================================================================
+Found a 42 line (161 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static const ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+			-1,
+			getCppuBooleanType()
+		)
+#endif
+#ifdef IMPLEMENT_COMMAND_INSERT
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+			-1,
+=====================================================================
+Found a 35 line (161 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static beans::Property aFolderPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                )
+=====================================================================
+Found a 25 line (161 tokens) duplication in the following files: 
+Starting at line 1215 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+uno::Sequence< uno::Any > Content::setPropertyValues(
+        const uno::Sequence< beans::PropertyValue >& rValues,
+        const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+    throw( uno::Exception )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+    uno::Sequence< uno::Any > aRet( rValues.getLength() );
+    uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() );
+	sal_Int32 nChanged = 0;
+
+    beans::PropertyChangeEvent aEvent;
+    aEvent.Source         = static_cast< cppu::OWeakObject * >( this );
+	aEvent.Further 		  = sal_False;
+//	aEvent.PropertyName	  =
+	aEvent.PropertyHandle = -1;
+//	aEvent.OldValue		  =
+//	aEvent.NewValue       =
+
+    const beans::PropertyValue* pValues = rValues.getConstArray();
+	sal_Int32 nCount = rValues.getLength();
+
+    uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet;
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+	sal_Bool bExchange = sal_False;
+=====================================================================
+Found a 43 line (161 tokens) duplication in the following files: 
+Starting at line 1424 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static const ucb::CommandInfo aLinkCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                    -1,
+                    getCppuBooleanType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+                    -1,
+=====================================================================
+Found a 30 line (161 tokens) duplication in the following files: 
+Starting at line 2628 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+Starting at line 2724 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+                    INetURLObject aURL;
+                    aURL.SetSmartProtocol( INET_PROT_FILE );
+                    aURL.SetSmartURL( sFile );
+                    sFile = aURL.GetMainURL( INetURLObject::NO_DECODE );
+
+                    switch( rSh.GetObjCntTypeOfSelection() )
+                    {
+                    case OBJCNT_FLY:
+                    case OBJCNT_GRF:
+                    case OBJCNT_OLE:
+                        {
+                            SfxItemSet aSet( rSh.GetAttrPool(), RES_URL, RES_URL );
+                            rSh.GetFlyFrmAttr( aSet );
+                            SwFmtURL aURL( (SwFmtURL&)aSet.Get( RES_URL ) );
+                            aURL.SetURL( sFile, FALSE );
+                            if( !aURL.GetName().Len() )
+                                aURL.SetName( sFile );
+                            aSet.Put( aURL );
+                            rSh.SetFlyFrmAttr( aSet );
+                        }
+                        break;
+
+                    default:
+                        {
+                            rSh.InsertURL( SwFmtINetFmt( sFile, aEmptyStr ),
+                                            sDesc.Len() ? sDesc : sFile );
+                        }
+                    }
+                    nRet = TRUE;
+                }
+=====================================================================
+Found a 25 line (161 tokens) duplication in the following files: 
+Starting at line 3141 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/num.cxx
+
+				bSameDist       &= aNumFmtArr[i]->GetCharTextDistance() == aNumFmtArr[nLvl]->GetCharTextDistance();
+				bSameIndent     &= aNumFmtArr[i]->GetFirstLineOffset() == aNumFmtArr[nLvl]->GetFirstLineOffset();
+				bSameAdjust 	&= aNumFmtArr[i]->GetNumAdjust() == aNumFmtArr[nLvl]->GetNumAdjust();
+
+			}
+		}
+//			else
+//				aNumFmtArr[i] = 0;
+		nMask <<= 1;
+
+	}
+	if(bSameDistBorderNum)
+//	if(bSameDistBorder)
+	{
+		long nDistBorderNum;
+		if(bRelative)
+		{
+			nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset();
+			if(nLvl)
+				nDistBorderNum -= (long)aNumFmtArr[nLvl - 1]->GetAbsLSpace()+ aNumFmtArr[nLvl - 1]->GetFirstLineOffset();
+		}
+		else
+		{
+			nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset();
+		}
+=====================================================================
+Found a 27 line (161 tokens) duplication in the following files: 
+Starting at line 4819 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4398 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartSortVert[] =
+{
+	{ 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 },
+
+	{ 0, 10800 }, { 21600, 10800 }
+};
+static const sal_uInt16 mso_sptFlowChartSortSegm[] =
+{
+	0x4000, 0x0003, 0x6000, 0x8000,
+	0x4000, 0x0001, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] = 
+{
+	{ { 5400, 5400 }, { 16200, 16200 } }
+};
+static const mso_CustomShape msoFlowChartSort =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartSortVert, sizeof( mso_sptFlowChartSortVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartSortSegm, sizeof( mso_sptFlowChartSortSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartSortTextRect, sizeof( mso_sptFlowChartSortTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 37 line (161 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/restrictedpaths.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc1/folderrestriction.cxx
+
+static void convertStringListToUrls (
+	const String& _rColonSeparatedList, ::std::vector< String >& _rTokens, bool _bFinalSlash )
+{
+	const sal_Unicode s_cSeparator =
+#if defined(WNT)
+		';'
+#else
+		':'
+#endif
+            ;
+	xub_StrLen nTokens = _rColonSeparatedList.GetTokenCount( s_cSeparator );
+	_rTokens.resize( 0 ); _rTokens.reserve( nTokens );
+	for ( xub_StrLen i=0; i<nTokens; ++i )
+	{
+		// the current token in the list
+		String sCurrentToken = _rColonSeparatedList.GetToken( i, s_cSeparator );
+		if ( !sCurrentToken.Len() )
+			continue;
+
+		INetURLObject aCurrentURL;
+
+		String sURL;
+		if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) )
+			aCurrentURL = INetURLObject( sURL );
+		else
+		{
+			// smart URL parsing, assuming FILE protocol
+			aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE );
+		}
+
+		if ( _bFinalSlash )
+			aCurrentURL.setFinalSlash( );
+		else
+			aCurrentURL.removeFinalSlash( );
+		_rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) );
+	}
+}
+=====================================================================
+Found a 28 line (161 tokens) duplication in the following files: 
+Starting at line 1340 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/tabbar.cxx
+Starting at line 1334 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/tabctrl.cxx
+
+                Rectangle aItemRect = ImplGetTabRect( GetPagePos( nItemId ) );
+                Point aPt = OutputToScreenPixel( aItemRect.TopLeft() );
+                aItemRect.Left()   = aPt.X();
+                aItemRect.Top()    = aPt.Y();
+                aPt = OutputToScreenPixel( aItemRect.BottomRight() );
+                aItemRect.Right()  = aPt.X();
+                aItemRect.Bottom() = aPt.Y();
+                Help::ShowBalloon( this, aItemRect.Center(), aItemRect, aStr );
+                return;
+            }
+        }
+        else if ( rHEvt.GetMode() & HELPMODE_EXTENDED )
+        {
+            ULONG nHelpId = GetHelpId( nItemId );
+            if ( nHelpId )
+            {
+                // Wenn eine Hilfe existiert, dann ausloesen
+                Help* pHelp = Application::GetHelp();
+                if ( pHelp )
+                    pHelp->Start( nHelpId, this );
+                return;
+            }
+        }
+
+        // Bei Quick- oder Ballloon-Help zeigen wir den Text an,
+        // wenn dieser abgeschnitten ist
+        if ( rHEvt.GetMode() & (HELPMODE_QUICK | HELPMODE_BALLOON) )
+        {
+=====================================================================
+Found a 23 line (161 tokens) duplication in the following files: 
+Starting at line 618 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 1180 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+void SvImpIconView::AdjustVirtSize( const Rectangle& rRect )
+{
+	long nHeightOffs = 0;
+	long nWidthOffs = 0;
+
+	if( aVirtOutputSize.Width() < (rRect.Right()+LROFFS_WINBORDER) )
+		nWidthOffs = (rRect.Right()+LROFFS_WINBORDER) - aVirtOutputSize.Width();
+
+	if( aVirtOutputSize.Height() < (rRect.Bottom()+TBOFFS_WINBORDER) )
+		nHeightOffs = (rRect.Bottom()+TBOFFS_WINBORDER) - aVirtOutputSize.Height();
+
+	if( nWidthOffs || nHeightOffs )
+	{
+		Range aRange;
+		aVirtOutputSize.Width() += nWidthOffs;
+		aRange.Max() = aVirtOutputSize.Width();
+		aHorSBar.SetRange( aRange );
+
+		aVirtOutputSize.Height() += nHeightOffs;
+		aRange.Max() = aVirtOutputSize.Height();
+		aVerSBar.SetRange( aRange );
+
+		pImpCursor->Clear();
+=====================================================================
+Found a 20 line (161 tokens) duplication in the following files: 
+Starting at line 381 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/rangenam.cxx
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/rangenam.cxx
+
+void ScRangeData::UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY )
+{
+	BOOL bChanged = FALSE;
+
+	ScToken* t;
+	pCode->Reset();
+
+	for( t = pCode->GetNextReference(); t; t = pCode->GetNextReference() )
+	{
+		if( t->GetType() != svIndex )
+		{
+			SingleDoubleRefModifier aMod( *t );
+			ComplRefData& rRef = aMod.Ref();
+			if (!rRef.Ref1.IsColRel() && !rRef.Ref1.IsRowRel() &&
+					(!rRef.Ref1.IsFlag3D() || !rRef.Ref1.IsTabRel()) &&
+				( t->GetType() == svSingleRef ||
+				(!rRef.Ref2.IsColRel() && !rRef.Ref2.IsRowRel() &&
+					(!rRef.Ref2.IsFlag3D() || !rRef.Ref2.IsTabRel()))))
+			{
+				if ( ScRefUpdate::UpdateGrow( rArea,nGrowX,nGrowY, rRef ) != UR_NOTHING )
+=====================================================================
+Found a 7 line (161 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file_url.cxx
+Starting at line 568 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 23 line (161 tokens) duplication in the following files: 
+Starting at line 983 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/datatest.cxx
+Starting at line 1042 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/datatest.cxx
+
+			float f = 42.23;
+			any <<= f;
+			rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("float")) , any );
+			
+			double d = 233.321412;
+			any <<= d;
+			rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("double")) , any );
+			
+			sal_Bool b = sal_True;
+			any.setValue( &b , getCppuBooleanType() );
+			rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("bool")) , any );
+			
+			sal_Int8 by = 120;
+			any <<= by;
+			rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("byte")) , any );
+			
+			sal_Unicode c = 'h';
+			any.setValue( &c , getCppuCharType() );
+			rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("char")) , any );
+			
+			OUString str( RTL_CONSTASCII_USTRINGPARAM( "hi du !" ) );
+			any <<= str;
+			rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("string")) , any );
+=====================================================================
+Found a 7 line (161 tokens) duplication in the following files: 
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/datatest.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/components/display.cxx
+
+    virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw (RuntimeException);
+    virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const Any& aValue ) throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException);
+    virtual Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& xListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const Reference< XPropertyChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw (UnknownPropertyException, WrappedTargetException, RuntimeException);
+=====================================================================
+Found a 6 line (161 tokens) duplication in the following files: 
+Starting at line 1505 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1513 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,10,// fd30 - fd3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd50 - fd5f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd60 - fd6f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd70 - fd7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd80 - fd8f
+=====================================================================
+Found a 7 line (161 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1182 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17, 0, 0,// 0ec0 - 0ecf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ed0 - 0edf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ee0 - 0eef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ef0 - 0eff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f00 - 0f0f
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 0f10 - 0f1f
+=====================================================================
+Found a 7 line (161 tokens) duplication in the following files: 
+Starting at line 1030 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07f0 - 07ff
+
+     0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0900 - 090f
+=====================================================================
+Found a 6 line (161 tokens) duplication in the following files: 
+Starting at line 863 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21,// fd30 - fd3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd50 - fd5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd60 - fd6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd70 - fd7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd80 - fd8f
+=====================================================================
+Found a 26 line (161 tokens) duplication in the following files: 
+Starting at line 844 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+=====================================================================
+Found a 6 line (161 tokens) duplication in the following files: 
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21,// fd30 - fd3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd50 - fd5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd60 - fd6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd70 - fd7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd80 - fd8f
+=====================================================================
+Found a 7 line (161 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07f0 - 07ff
+
+     0, 6, 6, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0900 - 090f
+=====================================================================
+Found a 31 line (161 tokens) duplication in the following files: 
+Starting at line 810 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dopngl.cxx
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dopngl.cxx
+
+	Base3DMaterialValue eVal, Base3DLightNumber eNum)
+{
+	// OpenGL Specifics
+	Color aSource;
+	if(GetOutputDevice()->GetDrawMode() & DRAWMODE_GRAYFILL)
+	{
+		// Graustufen
+		UINT8 nLuminance = rNew.GetLuminance();
+		aSource.SetRed(nLuminance);
+		aSource.SetGreen(nLuminance);
+		aSource.SetBlue(nLuminance);
+		aSource.SetTransparency(rNew.GetTransparency());
+	}
+	else if(GetOutputDevice()->GetDrawMode() & DRAWMODE_WHITEFILL)
+	{
+		// Keine Ausgabe, hier Weiss als Farbe setzen
+		aSource = Color(COL_WHITE);
+	}
+	else
+	{
+		// Normale Farbausgabe
+		aSource = rNew;
+	}
+
+	// Array fuellen
+	float fArray[4] = {
+		((float)aSource.GetRed()) / (float)255.0,
+		((float)aSource.GetGreen()) / (float)255.0,
+		((float)aSource.GetBlue()) / (float)255.0,
+		((float)aSource.GetTransparency()) / (float)255.0
+	};
+=====================================================================
+Found a 36 line (161 tokens) duplication in the following files: 
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/office/iodlg.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/restrictedpaths.cxx
+
+        void lcl_convertStringListToUrls( const String& _rColonSeparatedList, ::std::vector< String >& _rTokens, bool _bFinalSlash )
+        {
+            const sal_Unicode s_cSeparator =
+    #if defined(WNT)
+                ';'
+    #else
+                ':'
+    #endif
+                ;
+            xub_StrLen nTokens = _rColonSeparatedList.GetTokenCount( s_cSeparator );
+            _rTokens.resize( 0 ); _rTokens.reserve( nTokens );
+            for ( xub_StrLen i=0; i<nTokens; ++i )
+            {
+                // the current token in the list
+                String sCurrentToken = _rColonSeparatedList.GetToken( i, s_cSeparator );
+                if ( !sCurrentToken.Len() )
+                    continue;
+
+                INetURLObject aCurrentURL;
+
+                String sURL;
+                if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) )
+                    aCurrentURL = INetURLObject( sURL );
+                else
+                {
+                    // smart URL parsing, assuming FILE protocol
+                    aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE );
+                }
+
+                if ( _bFinalSlash )
+                    aCurrentURL.setFinalSlash( );
+                else
+                    aCurrentURL.removeFinalSlash( );
+                _rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) );
+            }
+        }
+=====================================================================
+Found a 7 line (161 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07f0 - 07ff
+
+     0, 6, 6, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0900 - 090f
+=====================================================================
+Found a 37 line (161 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgregistry.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/local_io/cfglocal.cxx
+
+using namespace rtl;
+
+// #define USE_LAYOUT_NODE
+
+//=============================================================================
+//= a dirty littly class for printing ascii characters
+//=============================================================================
+class OAsciiOutput
+{
+protected:
+	sal_Char*	m_pCharacters;
+
+public:
+	OAsciiOutput(const ::rtl::OUString& _rUnicodeChars);
+	~OAsciiOutput() { delete m_pCharacters; }
+
+	const sal_Char* getCharacters() const { return m_pCharacters; }
+};
+
+//-----------------------------------------------------------------------------
+OAsciiOutput::OAsciiOutput(const ::rtl::OUString& _rUnicodeChars)
+{
+	sal_Int32 nLen = _rUnicodeChars.getLength();
+	m_pCharacters = new sal_Char[nLen + 1];
+	sal_Char* pFillPtr = m_pCharacters;
+	const sal_Unicode* pSourcePtr = _rUnicodeChars.getStr();
+#ifdef DBG_UTIL
+	sal_Bool bAsserted = sal_False;
+#endif
+	for (sal_Int32 i=0; i<nLen; ++i, ++pFillPtr, ++pSourcePtr)
+	{
+		OSL_ENSURE(bAsserted || !(bAsserted = (*pSourcePtr >= 0x80)),
+			"OAsciiOutput::OAsciiOutput : non-ascii character found !");
+		*pFillPtr = *reinterpret_cast<const sal_Char*>(pSourcePtr);
+	}
+	*pFillPtr = 0;
+}
+=====================================================================
+Found a 24 line (161 tokens) duplication in the following files: 
+Starting at line 975 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+Starting at line 1009 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+
+        return fMaxY;
+    }
+
+    double fMinimum, fMaximum;
+    ::rtl::math::setInf(&fMinimum, false);
+    ::rtl::math::setInf(&fMaximum, true);
+    for(size_t nZ =0; nZ<m_aZSlots.size();nZ++ )
+    {
+        ::std::vector< VDataSeriesGroup >& rXSlots = m_aZSlots[nZ];
+        for(size_t nN =0; nN<rXSlots.size();nN++ )
+        {
+            double fLocalMinimum, fLocalMaximum;
+            rXSlots[nN].calculateYMinAndMaxForCategoryRange(
+                                static_cast<sal_Int32>(fMinimumX-1.0) //first category (index 0) matches with real number 1.0
+                                , static_cast<sal_Int32>(fMaximumX-1.0) //first category (index 0) matches with real number 1.0
+                                , isSeperateStackingForDifferentSigns( 1 )
+                                , fLocalMinimum, fLocalMaximum, nAxisIndex );
+            if(fMaximum<fLocalMaximum)
+                fMaximum=fLocalMaximum;
+            if(fMinimum>fLocalMinimum)
+                fMinimum=fLocalMinimum;
+        }
+    }
+    if(::rtl::math::isInf(fMaximum))
+=====================================================================
+Found a 28 line (161 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0; //null
+    slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vTableOffset)
+=====================================================================
+Found a 28 line (161 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+			pUnoReturn = (cppu_relatesToInterface( pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+        gpreg++; 
+        ng++;
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
+=====================================================================
+Found a 18 line (160 tokens) duplication in the following files: 
+Starting at line 2935 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/xexptran.cxx
+Starting at line 3004 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/xexptran.cxx
+
+						sal_Int32 nX1 = FRound((double)((nXX * 2) + aPPrev1.X) / 3.0);
+						sal_Int32 nY1 = FRound((double)((nYY * 2) + aPPrev1.Y) / 3.0);
+						sal_Int32 nX2 = FRound((double)((nXX * 2) + nX) / 3.0);
+						sal_Int32 nY2 = FRound((double)((nYY * 2) + nY) / 3.0);
+
+						// correct polygon flag for previous point
+						Imp_CorrectPolygonFlag(nInnerIndex, pNotSoInnerSequence, pNotSoInnerFlags, nX1, nY1);
+						
+						// add new points and set flags
+						Imp_AddExportPoints(nX1, nY1, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL);
+						Imp_AddExportPoints(nX2, nY2, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL);
+						Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_SMOOTH);
+					}
+					break;
+				}
+
+				// #100617# not yet supported: elliptical arc
+				case 'A' :
+=====================================================================
+Found a 6 line (160 tokens) duplication in the following files: 
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_mask.h
+
+ 0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 42 line (160 tokens) duplication in the following files: 
+Starting at line 633 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+        {
+            static const ucb::CommandInfo aRootFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+                ),
+=====================================================================
+Found a 34 line (160 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+        {
+            static beans::Property aFolderPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 34 line (160 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+        {
+            static beans::Property aLinkPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 24 line (160 tokens) duplication in the following files: 
+Starting at line 788 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+Starting at line 3370 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/tabfrm.cxx
+
+	if( bAttrSetChg )
+	{
+		SfxItemIter aNIter( *((SwAttrSetChg*)pNew)->GetChgSet() );
+		SfxItemIter aOIter( *((SwAttrSetChg*)pOld)->GetChgSet() );
+		SwAttrSetChg aOldSet( *(SwAttrSetChg*)pOld );
+		SwAttrSetChg aNewSet( *(SwAttrSetChg*)pNew );
+		while( TRUE )
+		{
+			_UpdateAttr( (SfxPoolItem*)aOIter.GetCurItem(),
+						 (SfxPoolItem*)aNIter.GetCurItem(), nInvFlags,
+						 &aOldSet, &aNewSet );
+			if( aNIter.IsAtEnd() )
+				break;
+			aNIter.NextItem();
+			aOIter.NextItem();
+		}
+		if ( aOldSet.Count() || aNewSet.Count() )
+			SwLayoutFrm::Modify( &aOldSet, &aNewSet );
+	}
+	else
+		_UpdateAttr( pOld, pNew, nInvFlags );
+
+	if ( nInvFlags != 0 )
+	{
+=====================================================================
+Found a 20 line (160 tokens) duplication in the following files: 
+Starting at line 2799 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4966 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x6D, 0x73, 0x2E, 0x43, 0x68, 0x65, 0x63, 0x6B,
+		0x42, 0x6F, 0x78, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+		0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+	};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+		0x43, 0x00, 0x68, 0x00, 0x65, 0x00, 0x63, 0x00,
+=====================================================================
+Found a 23 line (160 tokens) duplication in the following files: 
+Starting at line 1618 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 3287 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+void SvxNumPositionTabPage::Reset( const SfxItemSet& rSet )
+{
+	const SfxPoolItem* pItem;
+	//im Draw gibt es das Item als WhichId, im Writer nur als SlotId
+	SfxItemState eState = rSet.GetItemState(SID_ATTR_NUMBERING_RULE, FALSE, &pItem);
+	if(eState != SFX_ITEM_SET)
+	{
+		nNumItemId = rSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
+		eState = rSet.GetItemState(nNumItemId, FALSE, &pItem);
+	}
+	DBG_ASSERT(eState == SFX_ITEM_SET, "kein Item gefunden!")
+	delete pSaveNum;
+	pSaveNum = new SvxNumRule(*((SvxNumBulletItem*)pItem)->GetNumRule());
+
+	// Ebenen einfuegen
+	if(!aLevelLB.GetEntryCount())
+	{
+		for(USHORT i = 1; i <= pSaveNum->GetLevelCount(); i++)
+			aLevelLB.InsertEntry(UniString::CreateFromInt32(i));
+		if(pSaveNum->GetLevelCount() > 1)
+		{
+			String sEntry( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "1 - ") ) );
+			sEntry.Append( UniString::CreateFromInt32( pSaveNum->GetLevelCount() ) );
+=====================================================================
+Found a 12 line (160 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/selector.cxx
+
+		, nMode( nConfigMode ), bShowSF( TRUE ),
+    m_hdImage(ResId(IMG_HARDDISK,*rResId.GetResMgr())),
+    m_hdImage_hc(ResId(IMG_HARDDISK_HC,*rResId.GetResMgr())),
+    m_libImage(ResId(IMG_LIB,*rResId.GetResMgr())),
+    m_libImage_hc(ResId(IMG_LIB_HC,*rResId.GetResMgr())),
+    m_macImage(ResId(IMG_MACRO,*rResId.GetResMgr())),
+    m_macImage_hc(ResId(IMG_MACRO_HC,*rResId.GetResMgr())),
+    m_docImage(ResId(IMG_DOC,*rResId.GetResMgr())),
+    m_docImage_hc(ResId(IMG_DOC_HC,*rResId.GetResMgr())),
+    m_sMyMacros(String(ResId(STR_MYMACROS,*rResId.GetResMgr()))),
+    m_sProdMacros(String(ResId(STR_PRODMACROS,*rResId.GetResMgr())))
+{
+=====================================================================
+Found a 37 line (160 tokens) duplication in the following files: 
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlview.cxx
+Starting at line 775 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlview.cxx
+
+			if (pParagraph)
+				nPos++;
+		}
+		// Seite und Notizseite loeschen
+
+		USHORT nAbsPos = (USHORT)nPos * 2 + 1;
+		SdrPage* pPage = mpDoc->GetPage(nAbsPos);
+		if( isRecordingUndo() )
+			AddUndo(mpDoc->GetSdrUndoFactory().CreateUndoDeletePage(*pPage));
+		mpDoc->RemovePage(nAbsPos);
+
+		nAbsPos = (USHORT)nPos * 2 + 1;
+		pPage = mpDoc->GetPage(nAbsPos);
+		if( isRecordingUndo() )
+			AddUndo(mpDoc->GetSdrUndoFactory().CreateUndoDeletePage(*pPage));
+		mpDoc->RemovePage(nAbsPos);
+
+		// ggfs. Fortschrittsanzeige
+		if (mnPagesToProcess)
+		{
+			mnPagesProcessed++;
+			if (mpProgress)
+				mpProgress->SetState(mnPagesProcessed);
+
+			if (mnPagesProcessed == mnPagesToProcess)
+			{
+				if(mpProgress)
+				{
+					delete mpProgress;
+					mpProgress = NULL;
+				}
+				mnPagesToProcess = 0;
+				mnPagesProcessed = 0;
+			}
+		}
+		pOutliner->UpdateFields();
+	}
+=====================================================================
+Found a 9 line (160 tokens) duplication in the following files: 
+Starting at line 511 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_CELLFILT),	SC_WID_UNO_CELLFILT,&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_MANPAGE),	SC_WID_UNO_MANPAGE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_NEWPAGE),	SC_WID_UNO_NEWPAGE,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_CELLVIS),	SC_WID_UNO_CELLVIS,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_OHEIGHT),	SC_WID_UNO_OHEIGHT,	&getBooleanCppuType(),					0, 0 },
+=====================================================================
+Found a 35 line (160 tokens) duplication in the following files: 
+Starting at line 3222 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3562 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+void ScInterpreter::ScGrowth()
+{
+	BYTE nParamCount = GetByte();
+	if ( !MustHaveParamCount( nParamCount, 1, 4 ) )
+		return;
+	BOOL bConstant;
+	if (nParamCount == 4)
+		bConstant = GetBool();
+	else
+		bConstant = TRUE;
+	ScMatrixRef pMatX;
+	ScMatrixRef pMatY;
+	ScMatrixRef pMatNewX;
+	if (nParamCount >= 3)
+		pMatNewX = GetMatrix();
+	else
+		pMatNewX = NULL;
+	if (nParamCount >= 2)
+		pMatX = GetMatrix();
+	else
+		pMatX = NULL;
+	pMatY = GetMatrix();
+	if (!pMatY)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	BYTE nCase;							// 1 = normal, 2,3 = mehrfach
+	SCSIZE nCX, nCY;
+	SCSIZE nRX, nRY;
+    SCSIZE M = 0, N = 0;
+	pMatY->GetDimensions(nCY, nRY);
+	SCSIZE nCountY = nCY * nRY;
+    SCSIZE nElem;
+	for (nElem = 0; nElem < nCountY; nElem++)
+=====================================================================
+Found a 23 line (160 tokens) duplication in the following files: 
+Starting at line 1318 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+Starting at line 1409 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+
+	ScCellIterator aCellIter( pDoc, 0,0, nTab, MAXCOL,MAXROW, nTab );
+	ScBaseCell* pCell = aCellIter.GetFirst();
+	while (pCell)
+	{
+		if (pCell->GetCellType() == CELLTYPE_FORMULA)
+		{
+			ScFormulaCell* pFCell = (ScFormulaCell*)pCell;
+			BOOL bRunning = pFCell->IsRunning();
+
+			if (pFCell->GetDirty())
+				pFCell->Interpret();				// nach SetRunning geht's nicht mehr!
+			pFCell->SetRunning(TRUE);
+
+			ScDetectiveRefIter aIter( (ScFormulaCell*) pCell );
+            ScRange aRef;
+			while ( aIter.GetNextRef( aRef) )
+			{
+				if (aRef.aStart.Tab() <= nTab && aRef.aEnd.Tab() >= nTab)
+				{
+					if (Intersect( nCol1,nRow1,nCol2,nRow2,
+							aRef.aStart.Col(),aRef.aStart.Row(),
+							aRef.aEnd.Col(),aRef.aEnd.Row() ))
+					{
+=====================================================================
+Found a 16 line (160 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpread.cpp
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpread.cpp
+
+    hwpf.Read1b(&reserved2, 8);
+    hwpf.Read1b(&style.anchor_type, 1);
+    hwpf.Read1b(&style.txtflow, 1);
+    hwpf.Read2b(&style.xpos, 1);
+    hwpf.Read2b(&style.ypos, 1);
+    hwpf.Read2b(&option, 1);
+    hwpf.Read2b(&ctrl_ch, 1);
+    hwpf.Read2b(style.margin, 12);
+    hwpf.AddFBoxStyle(&style);
+    hwpf.Read2b(&box_xs, 1);
+    hwpf.Read2b(&box_ys, 1);
+    hwpf.Read2b(&cap_xs, 1);
+    hwpf.Read2b(&cap_ys, 1);
+    hwpf.Read2b(&style.cap_len, 1);
+    hwpf.Read2b(&xs, 1);
+    hwpf.Read2b(&ys, 1);
+=====================================================================
+Found a 43 line (160 tokens) duplication in the following files: 
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInIndex(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCursorNameLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxConnections(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInTable(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxStatementLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxTableNameLength(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxTablesInSelect(  ) throw(SQLException, RuntimeException)
+{
+	sal_Int32 nValue = 0; // 0 means no limit
+=====================================================================
+Found a 45 line (160 tokens) duplication in the following files: 
+Starting at line 581 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseIdentifiers(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithAddColumn(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithDropColumn(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxIndexLength(  ) throw(SQLException, RuntimeException)
+{
+=====================================================================
+Found a 18 line (160 tokens) duplication in the following files: 
+Starting at line 1658 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1742 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 2120 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	OLEVariant varCriteria[4];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schema.getLength() && schema.toChar() != '%')
+		varCriteria[nPos].setString(schema);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+
+	varCriteria[nPos].setString(table);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_NAME
+=====================================================================
+Found a 27 line (160 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbamaker.cxx
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+
+	if (!produceType(typeName, typeMgr,	typeDependencies, pOptions))
+	{
+		fprintf(stderr, "%s ERROR: %s\n", 
+				pOptions->getProgramName().getStr(), 
+				OString("cannot dump Type '" + typeName + "'").getStr());
+		exit(99);
+	}
+
+	RegistryKey	typeKey = typeMgr.getTypeKey(typeName);
+	RegistryKeyNames subKeys;
+	
+	if (typeKey.getKeyNames(OUString(), subKeys))
+		return sal_False;
+	
+	OString tmpName;
+	for (sal_uInt32 i=0; i < subKeys.getLength(); i++)
+	{
+		tmpName = OUStringToOString(subKeys.getElement(i), RTL_TEXTENCODING_UTF8);
+
+		if (pOptions->isValid("-B"))
+			tmpName = tmpName.copy(tmpName.indexOf('/', 1) + 1);
+		else
+			tmpName = tmpName.copy(1);
+
+		if (bFullScope)
+		{
+			if (!produceAllTypes(tmpName, typeMgr, typeDependencies, pOptions, sal_True))
+=====================================================================
+Found a 28 line (160 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+    OSL_ASSERT(p - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
+=====================================================================
+Found a 37 line (160 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			    pCppStack += sizeof(sal_Int32); // extra long
+			default:
+			    break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 28 line (160 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+     slots[-2] = 0; //null
+     slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vTableOffset)
+=====================================================================
+Found a 37 line (160 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			    pCppStack += sizeof(sal_Int32); // extra long
+			default:
+			    break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 28 line (160 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+     slots[-2] = 0; //null
+     slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vTableOffset)
+=====================================================================
+Found a 37 line (160 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 413 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic" );
+		
+		if( nStackLongs & 1 )
+			// stack has to be 8 byte aligned
+			nStackLongs++;
+		callVirtualMethod(
+			pAdjustedThisPtr,
+			aVtableSlot.index,
+			pCppReturn,
+			pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart,
+			 nStackLongs);
+		// NO exception occured...
+		*ppUnoExc = 0;
+
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 20 line (159 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx
+
+const sal_Char ScannerTestService::IMPLEMENTATION_NAME[40] = "debugservices.ooxml.ScannerTestService";
+
+
+
+
+ScannerTestService::ScannerTestService(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+			rtl::OUString arg=aArguments[0];
+=====================================================================
+Found a 61 line (159 tokens) duplication in the following files: 
+Starting at line 769 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
+Starting at line 927 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
+
+	chainPara.RequestedUsage = certUsage ;
+
+	BOOL bChain = FALSE;
+	if( pCertContext != NULL )
+    {
+        HCERTSTORE hAdditionalStore = NULL;
+        HCERTSTORE hCollectionStore = NULL;
+        if (m_hCertStore && m_hKeyStore)
+        {
+            //Merge m_hCertStore and m_hKeyStore into one store.
+            hCollectionStore = CertOpenStore(
+				CERT_STORE_PROV_COLLECTION ,
+				0 ,
+				NULL ,
+				0 ,
+				NULL
+                ) ;
+            if (hCollectionStore != NULL)
+            {
+                CertAddStoreToCollection (
+ 					hCollectionStore ,
+ 					m_hCertStore ,
+ 					CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG ,
+ 					0) ;
+                CertAddStoreToCollection (
+ 					hCollectionStore ,
+ 					m_hCertStore ,
+ 					CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG ,
+ 					0) ;
+                hAdditionalStore = hCollectionStore;
+            }
+
+        }
+
+        //if the merge of both stores failed then we add only m_hCertStore
+        if (hAdditionalStore == NULL && m_hCertStore)
+            hAdditionalStore = m_hCertStore;
+        else if (hAdditionalStore == NULL && m_hKeyStore)
+            hAdditionalStore = m_hKeyStore;
+        else
+            hAdditionalStore = NULL;
+
+        //CertGetCertificateChain searches by default in MY, CA, ROOT and TRUST
+        bChain = CertGetCertificateChain(
+            NULL ,
+            pCertContext ,
+            NULL , //use current system time
+            hAdditionalStore,
+            &chainPara ,
+            CERT_CHAIN_REVOCATION_CHECK_CHAIN | CERT_CHAIN_TIMESTAMP_TIME ,
+            NULL ,
+        	&pChainContext);
+
+    	if (!bChain)
+			pChainContext = NULL;
+
+        //Close the additional store
+       CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_CHECK_FLAG);
+    }
+
+	if(bChain && pChainContext != NULL )
+=====================================================================
+Found a 24 line (159 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/devaudiosound.cxx
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/osssound.cxx
+
+BOOL OSSSound::startRIFF( OSSData* pData )
+{
+	int nPos = findChunk( pData, "fmt " );
+	if( nPos == -1 )
+		return FALSE;
+	
+	int nFormat		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 8 );
+	int nChannels	= readLEShort( pData->m_pSound->m_pBuffer + nPos + 10 );
+	int nSampleRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 12 );
+	int nByteRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 16 );
+	int nAlign		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 20 );
+	SalDbgAssert( "format is tag = %x, channels = %d, samplesPerSec = %d, avgBytesPerSec = %d, blockAlign = %d\n", nFormat, nChannels, nSampleRate, nByteRate, nAlign );
+	if( nChannels != 1 && nChannels != 2 )
+	{
+		SalDbgAssert( "%d Channels are not supported\n" );
+		return FALSE;
+	}
+	
+	int nBitsPerSample = 0;
+	switch( nFormat )
+	{
+		default:
+			SalDbgAssert( "unknown format\n" );
+			return FALSE;
+=====================================================================
+Found a 25 line (159 tokens) duplication in the following files: 
+Starting at line 7168 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 7210 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+        m_aTransparentObjects.back().m_pSoftMaskStream = static_cast<SvMemoryStream*>(endRedirect());
+
+        OStringBuffer aObjName( 16 );
+        aObjName.append( "Tr" );
+        aObjName.append( m_aTransparentObjects.back().m_nObject );
+        OString aTrName( aObjName.makeStringAndClear() );
+        aObjName.append( "EGS" );
+        aObjName.append( m_aTransparentObjects.back().m_nExtGStateObject );
+        OString aExtName( aObjName.makeStringAndClear() );
+
+        OStringBuffer aLine( 80 );
+        // insert XObject
+        aLine.append( "q /" );
+        aLine.append( aExtName );
+        aLine.append( " gs /" );
+        aLine.append( aTrName );
+        aLine.append( " Do Q\n" );
+        writeBuffer( aLine.getStr(), aLine.getLength() );
+        
+        pushResource( ResXObject, aTrName, m_aTransparentObjects.back().m_nObject );
+        pushResource( ResExtGState, aExtName, m_aTransparentObjects.back().m_nExtGStateObject );
+    }
+}
+
+void PDFWriterImpl::drawRectangle( const Rectangle& rRect )
+=====================================================================
+Found a 17 line (159 tokens) duplication in the following files: 
+Starting at line 2817 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 3684 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+    Rectangle   aMouseRect;
+
+    aImageSize.Width()  = CalcZoom( aImageSize.Width() );
+    aImageSize.Height() = CalcZoom( aImageSize.Height() );
+    aBrd1Size.Width()   = CalcZoom( aBrd1Size.Width() );
+    aBrd1Size.Height()  = CalcZoom( aBrd1Size.Height() );
+    aBrd2Size.Width()   = CalcZoom( aBrd2Size.Width() );
+    aBrd2Size.Height()  = CalcZoom( aBrd2Size.Height() );
+
+    if ( !aBrd1Size.Width() )
+        aBrd1Size.Width() = 1;
+    if ( !aBrd1Size.Height() )
+        aBrd1Size.Height() = 1;
+    if ( !aBrd2Size.Width() )
+        aBrd2Size.Width() = 1;
+    if ( !aBrd2Size.Height() )
+        aBrd2Size.Height() = 1;
+=====================================================================
+Found a 42 line (159 tokens) duplication in the following files: 
+Starting at line 1655 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1642 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                    uno::Reference< io::XInputStream > xIn = getInputStream( xEnv );
+                    if ( !xIn.is() )
+                    {
+                        // No interaction if we are not persistent!
+                        uno::Any aProps
+                            = uno::makeAny(
+                                     beans::PropertyValue(
+                                         rtl::OUString(
+                                             RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                         -1,
+                                         uno::makeAny(m_xIdentifier->
+                                                          getContentIdentifier()),
+                                         beans::PropertyState_DIRECT_VALUE));
+                        ucbhelper::cancelCommandExecution(
+                            ucb::IOErrorCode_CANT_READ,
+                            uno::Sequence< uno::Any >(&aProps, 1),
+                            m_eState == PERSISTENT
+                                ? xEnv
+                                : uno::Reference<
+                                      ucb::XCommandEnvironment >(),
+                            rtl::OUString::createFromAscii(
+                                "Got no data stream!" ),
+                            this );
+                        // Unreachable
+                    }
+
+                    // Done.
+                    xDataSink->setInputStream( xIn );
+                }
+                else
+                {
+                    ucbhelper::cancelCommandExecution(
+                        uno::makeAny(
+                            ucb::UnsupportedDataSinkException(
+                                    rtl::OUString(),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    rArg.Sink ) ),
+                        xEnv );
+                    // Unreachable
+                }
+            }
+        }
+=====================================================================
+Found a 34 line (159 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+            static const beans::Property aFolderPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                ),
+=====================================================================
+Found a 39 line (159 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 546 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+		if ( rRect.nTop < 0 )
+		{
+			cAry[0] |= 0x08;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[0] |= 0x04;
+					}
+					else
+						cAry[0] |= 0x03;
+				}
+				else
+					cAry[0] |= 0x02;
+			}
+			else
+				cAry[0] |= 0x01;
+		}
+=====================================================================
+Found a 51 line (159 tokens) duplication in the following files: 
+Starting at line 1701 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlform.cxx
+Starting at line 2163 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlform.cxx
+
+			nTabIndex = pOption->GetSNumber();
+			break;
+
+		case HTML_O_SDONFOCUS:
+			eScriptType = STARBASIC;
+		case HTML_O_ONFOCUS:
+			nEvent = HTML_ET_ONGETFOCUS;
+			bSetEvent = sal_True;
+			break;
+
+		case HTML_O_SDONBLUR:
+			eScriptType = STARBASIC;
+		case HTML_O_ONBLUR:
+			nEvent = HTML_ET_ONLOSEFOCUS;
+			bSetEvent = sal_True;
+			break;
+
+		case HTML_O_SDONCLICK:
+			eScriptType = STARBASIC;
+		case HTML_O_ONCLICK:
+			nEvent = HTML_ET_ONCLICK;
+			bSetEvent = sal_True;
+			break;
+
+		case HTML_O_SDONCHANGE:
+			eScriptType = STARBASIC;
+		case HTML_O_ONCHANGE:
+			nEvent = HTML_ET_ONCHANGE;
+			bSetEvent = sal_True;
+			break;
+
+		case HTML_O_SDONSELECT:
+			eScriptType = STARBASIC;
+		case HTML_O_ONSELECT:
+			nEvent = HTML_ET_ONSELECT;
+			bSetEvent = sal_True;
+			break;
+
+		default:
+			lcl_html_getEvents( pOption->GetTokenString(),
+								pOption->GetString(),
+								aUnoMacroTbl, aUnoMacroParamTbl );
+			break;
+		}
+
+		if( bSetEvent )
+		{
+			String sEvent( pOption->GetString() );
+			if( sEvent.Len() )
+			{
+				sEvent.ConvertLineEnd();
+=====================================================================
+Found a 21 line (159 tokens) duplication in the following files: 
+Starting at line 784 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+Starting at line 2143 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/wsfrm.cxx
+
+void SwCntntFrm::Modify( SfxPoolItem * pOld, SfxPoolItem * pNew )
+{
+	BYTE nInvFlags = 0;
+
+	if( pNew && RES_ATTRSET_CHG == pNew->Which() )
+	{
+		SfxItemIter aNIter( *((SwAttrSetChg*)pNew)->GetChgSet() );
+		SfxItemIter aOIter( *((SwAttrSetChg*)pOld)->GetChgSet() );
+		SwAttrSetChg aOldSet( *(SwAttrSetChg*)pOld );
+		SwAttrSetChg aNewSet( *(SwAttrSetChg*)pNew );
+		while( TRUE )
+		{
+			_UpdateAttr( (SfxPoolItem*)aOIter.GetCurItem(),
+						 (SfxPoolItem*)aNIter.GetCurItem(), nInvFlags,
+						 &aOldSet, &aNewSet );
+			if( aNIter.IsAtEnd() )
+				break;
+			aNIter.NextItem();
+			aOIter.NextItem();
+		}
+		if ( aOldSet.Count() || aNewSet.Count() )
+=====================================================================
+Found a 22 line (159 tokens) duplication in the following files: 
+Starting at line 2872 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmshimp.cxx
+Starting at line 3074 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmshimp.cxx
+
+void FmXFormShell::clearFilter()
+{
+	OSL_ENSURE(!FmXFormShell_BASE::rBHelper.bDisposed,"FmXFormShell: Object already disposed!");
+	FmXFormView* pXView = m_pShell->GetFormView()->GetImpl();
+
+	// if the active controller is our external one we have to use the trigger controller
+	Reference< XControlContainer> xContainer;
+	if (getActiveController() == m_xExternalViewController)
+	{
+		DBG_ASSERT(m_xExtViewTriggerController.is(), "FmXFormShell::startFiltering : inconsistent : active external controller, but noone triggered this !");
+		xContainer = m_xExtViewTriggerController->getContainer();
+	}
+	else
+		xContainer = getActiveController()->getContainer();
+
+	FmWinRecList::iterator i = pXView->findWindow(xContainer);
+	if (i != pXView->getWindowList().end())
+	{
+		const ::std::vector< Reference< XFormController> > & rControllerList = (*i)->GetList();
+		for (::std::vector< Reference< XFormController> > ::const_iterator j = rControllerList.begin();
+			 j != rControllerList.end(); ++j)
+		{
+=====================================================================
+Found a 22 line (159 tokens) duplication in the following files: 
+Starting at line 3640 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3266 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptStarVert[] =
+{
+	{ 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 },
+	{ 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 },
+	{ 21600, 8256 }, { 13321, 8256 }, { 10797, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptStarTextRect[] =
+{
+	{ { 6722, 8256 }, { 14878, 15460 } }
+};
+static const mso_CustomShape msoStar =
+{
+	(SvxMSDffVertPair*)mso_sptStarVert, sizeof( mso_sptStarVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0, 
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptStarTextRect, sizeof( mso_sptStarTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 20 line (159 tokens) duplication in the following files: 
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape2d.cxx
+Starting at line 5277 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+		switch( eSpType )
+		{
+			case mso_sptCan :						nColorData = 0x20200000; break;
+			case mso_sptCube :						nColorData = 0x302d0000; break;
+			case mso_sptActionButtonBlank :			nColorData = 0x502ad400; break;
+			case mso_sptActionButtonHome :			nColorData = 0x702ad4ad; break;
+			case mso_sptActionButtonHelp :			nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonInformation :	nColorData = 0x702ad4a5; break;
+			case mso_sptActionButtonBackPrevious :	nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonForwardNext :	nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonBeginning :		nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonEnd :			nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonReturn :		nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonDocument :		nColorData = 0x702ad4da; break;
+			case mso_sptActionButtonSound :			nColorData = 0x602ad4a0; break;
+			case mso_sptActionButtonMovie :			nColorData = 0x602ad4a0; break;
+			case mso_sptBevel :						nColorData = 0x502ad400; break;
+			case mso_sptFoldedCorner :				nColorData = 0x20d00000; break;
+			case mso_sptSmileyFace :				nColorData = 0x20d00000; break;
+			case mso_sptCurvedLeftArrow :
+=====================================================================
+Found a 30 line (159 tokens) duplication in the following files: 
+Starting at line 821 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/graphctl.cxx
+
+						Rectangle aMarkRect(pView->GetMarkedObjRect());
+						aMarkRect.Move(nX, nY);
+
+						if(!aMarkRect.IsInside(rWorkArea))
+						{
+							if(aMarkRect.Left() < rWorkArea.Left())
+							{
+								nX += rWorkArea.Left() - aMarkRect.Left();
+							}
+
+							if(aMarkRect.Right() > rWorkArea.Right())
+							{
+								nX -= aMarkRect.Right() - rWorkArea.Right();
+							}
+
+							if(aMarkRect.Top() < rWorkArea.Top())
+							{
+								nY += rWorkArea.Top() - aMarkRect.Top();
+							}
+
+							if(aMarkRect.Bottom() > rWorkArea.Bottom())
+							{
+								nY -= aMarkRect.Bottom() - rWorkArea.Bottom();
+							}
+						}
+					}
+
+					// no handle selected
+					if(0 != nX || 0 != nY)
+					{
+=====================================================================
+Found a 15 line (159 tokens) duplication in the following files: 
+Starting at line 415 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconpol.cxx
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconbez.cxx
+
+				case SID_DRAW_FREELINE_NOFILL:
+				{
+					basegfx::B2DPolygon aInnerPoly;
+
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Bottom()));
+					
+					aInnerPoly.appendBezierSegment(
+						basegfx::B2DPoint(rRectangle.Left(), rRectangle.Top()),
+						basegfx::B2DPoint(rRectangle.Center().X(), rRectangle.Top()),
+						basegfx::B2DPoint(rRectangle.Center().X(), rRectangle.Center().Y()));
+
+					aInnerPoly.appendBezierSegment(
+						basegfx::B2DPoint(rRectangle.Center().X(), rRectangle.Bottom()),
+						basegfx::B2DPoint(rRectangle.Right(), rRectangle.Bottom()),
+						basegfx::B2DPoint(rRectangle.Right(), rRectangle.Top()));
+=====================================================================
+Found a 30 line (159 tokens) duplication in the following files: 
+Starting at line 766 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 879 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+    ConventionXL_R1C1() : ScCompiler::Convention( ScAddress::CONV_XL_R1C1 ) { }
+    void MakeRefStr( rtl::OUStringBuffer&   rBuf,
+                     const ScCompiler&      rComp,
+                     const ComplRefData& rRef,
+                     BOOL bSingleRef ) const
+    {
+        ComplRefData aRef( rRef );
+
+        MakeDocStr( rBuf, rComp, aRef, bSingleRef );
+
+        // Play fast and loose with invalid refs.  There is not much point in producing
+        // Foo!A1:#REF! versus #REF! at this point
+        aRef.Ref1.CalcAbsIfRel( rComp.aPos );
+        if( aRef.Ref1.IsColDeleted() || aRef.Ref1.IsRowDeleted() )
+        {
+            rBuf.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+            return;
+        }
+
+        if( !bSingleRef )
+        {
+            aRef.Ref2.CalcAbsIfRel( rComp.aPos );
+            if( aRef.Ref2.IsColDeleted() || aRef.Ref2.IsRowDeleted() )
+            {
+                rBuf.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+                return;
+            }
+
+            if( aRef.Ref1.nCol == 0 && aRef.Ref2.nCol >= MAXCOL )
+            {
+=====================================================================
+Found a 36 line (159 tokens) duplication in the following files: 
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/sal/typesconfig/typesconfig.c
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/solar/solar.c
+
+  pThis->nStackAlignment	= GetStackAlignment();
+
+  if ( sizeof(short) != 2 )
+	abort();
+  pThis->nAlignment[0] = GetAlignment( t_short );
+  if ( sizeof(int) != 4 )
+	abort();
+  pThis->nAlignment[1] = GetAlignment( t_int );
+
+  if	  ( sizeof(long) == 8 )
+	pThis->nAlignment[2] = GetAlignment( t_long );
+  else if ( sizeof(double) == 8 )
+	pThis->nAlignment[2] = GetAlignment( t_double );
+  else
+	abort();
+}
+
+/*************************************************************************
+|*
+|*	Description_Print()
+|*
+|*	Beschreibung		Schreibt die Parameter der Architektur als Header
+|*
+|*	Ersterstellung		EG 26.06.96
+|*	Letzte Aenderung
+|*
+*************************************************************************/
+void Description_Print( struct Description* pThis, char* name )
+{
+  int i;
+  FILE* f = fopen( name, "w" );
+  if( ! f ) {
+	  fprintf( stderr, "Unable to open file %s: %s\n", name, strerror( errno ) );
+	  exit( 99 );
+  }
+  fprintf( f, "#define __%s\n",
+=====================================================================
+Found a 7 line (159 tokens) duplication in the following files: 
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* UnoParamValue */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, /* !"#$%&'()*+,-./*/
+=====================================================================
+Found a 40 line (159 tokens) duplication in the following files: 
+Starting at line 9507 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 15242 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 16038 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 16812 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+        CPPUNIT_TEST_SUITE( append_008_Float_Negative );
+        CPPUNIT_TEST( append_001 ); 
+        CPPUNIT_TEST( append_002 );
+        CPPUNIT_TEST( append_003 );
+        CPPUNIT_TEST( append_004 );
+        CPPUNIT_TEST( append_005 );
+        CPPUNIT_TEST( append_006 ); 
+        CPPUNIT_TEST( append_007 );
+        CPPUNIT_TEST( append_008 );
+        CPPUNIT_TEST( append_009 );
+        CPPUNIT_TEST( append_010 );
+        CPPUNIT_TEST( append_011 ); 
+        CPPUNIT_TEST( append_012 );
+        CPPUNIT_TEST( append_013 );
+        CPPUNIT_TEST( append_014 );
+        CPPUNIT_TEST( append_015 );
+        CPPUNIT_TEST( append_016 ); 
+        CPPUNIT_TEST( append_017 );
+        CPPUNIT_TEST( append_018 );
+        CPPUNIT_TEST( append_019 );
+        CPPUNIT_TEST( append_020 );
+        CPPUNIT_TEST( append_021 ); 
+        CPPUNIT_TEST( append_022 );
+        CPPUNIT_TEST( append_023 );
+        CPPUNIT_TEST( append_024 );
+        CPPUNIT_TEST( append_025 );
+#ifdef WITH_CORE
+        CPPUNIT_TEST( append_026 ); 
+        CPPUNIT_TEST( append_027 );
+        CPPUNIT_TEST( append_028 );
+        CPPUNIT_TEST( append_029 );
+        CPPUNIT_TEST( append_030 );
+#endif        
+        CPPUNIT_TEST_SUITE_END();
+    };
+//------------------------------------------------------------------------
+// testing the method append( double d )
+//------------------------------------------------------------------------
+
+    class checkdouble : public CppUnit::TestFixture
+=====================================================================
+Found a 59 line (159 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/cpp.h
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/cpp.h
+
+	unsigned int identifier;			/* used from macro processor to identify where a macro becomes valid again. */
+}   Token;
+
+typedef struct tokenrow
+{
+	Token *tp;                          /* current one to scan */
+	Token *bp;                          /* base (allocated value) */
+	Token *lp;                          /* last+1 token used */
+	int max;                            /* number allocated */
+}   Tokenrow;
+
+typedef struct source
+{
+	char *filename;                     /* name of file of the source */
+	int line;                           /* current line number */
+	int lineinc;                        /* adjustment for \\n lines */
+	uchar *inb;                         /* input buffer */
+	uchar *inp;                         /* input pointer */
+	uchar *inl;                         /* end of input */
+	int fd;                             /* input source */
+	int ifdepth;                        /* conditional nesting in include */
+	int pathdepth;
+	int wrap;
+	struct source *next;                /* stack for #include */
+}   Source;
+
+typedef struct nlist
+{
+	struct nlist *next;
+	uchar *name;
+	int len;
+	Tokenrow *vp;                       /* value as macro */
+	Tokenrow *ap;                       /* list of argument names, if any */
+	char val;                           /* value as preprocessor name */
+	char flag;                          /* is defined, is pp name */
+	uchar *loc;							/* location of definition */
+}   Nlist;
+
+typedef struct includelist
+{
+	char deleted;
+	char always;
+	char *file;
+}   Includelist;
+
+typedef struct wraplist
+{
+	char *file;
+}   Wraplist;
+
+#define	new(t)	(t *)domalloc(sizeof(t))
+#define	quicklook(a,b)	(namebit[(a)&077] & (1<<((b)&037)))
+#define	quickset(a,b)	namebit[(a)&077] |= (1<<((b)&037))
+extern unsigned long namebit[077 + 1];
+
+enum errtype
+{
+	INFO, WARNING, ERROR, FATAL
+};
+=====================================================================
+Found a 6 line (159 tokens) duplication in the following files: 
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 4 line (159 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x0231}, {0x15, 0x0230}, {0x6a, 0x0233}, {0x15, 0x0232}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0230 - 0237
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0238 - 023f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0240 - 0247
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0248 - 024f
+=====================================================================
+Found a 30 line (159 tokens) duplication in the following files: 
+Starting at line 788 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+Starting at line 841 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+void SAL_CALL ToolBarManager::elementReplaced( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aGuard( m_aLock );
+
+	/* SAFE AREA ----------------------------------------------------------------------------------------------- */
+    if ( m_bDisposed )
+        return;
+
+    Reference< XNameAccess > xNameAccess;
+    sal_Int16                nImageType = sal_Int16();
+    sal_Int16                nCurrentImageType = getImageTypeFromBools(
+                                                    SvtMiscOptions().AreCurrentSymbolsLarge(),
+                                                    m_bIsHiContrast );
+
+    if (( Event.aInfo >>= nImageType ) &&
+        ( nImageType == nCurrentImageType ) &&
+        ( Event.Element >>= xNameAccess ))
+    {
+        sal_Int16 nImageInfo( 1 );
+        Reference< XInterface > xIfacDocImgMgr( m_xDocImageManager, UNO_QUERY );
+        if ( xIfacDocImgMgr == Event.Source )
+            nImageInfo = 0;
+
+        Sequence< rtl::OUString > aSeq = xNameAccess->getElementNames();
+        for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
+        {
+            // Check if we have commands which have an image. We stored for every command
+            // from which image manager it got its image. Use only images from this
+            // notification if stored nImageInfo >= current nImageInfo!
+            CommandToInfoMap::iterator pIter = m_aCommandMap.find( aSeq[i] );
+=====================================================================
+Found a 34 line (159 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/popupmenucontrollerbase.cxx
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+
+    Reference< XMultiServiceFactory >   xServiceManager;
+
+    ResetableGuard aLock( m_aLock );
+    xPopupMenu      = m_xPopupMenu;
+    xDispatch       = m_xDispatch;
+    xServiceManager = m_xServiceManager;
+    aLock.unlock();
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs;
+            Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance( 
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                        UNO_QUERY );
+
+            {
+                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                
+                // Command URL used to dispatch the selected font family name
+                PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+                aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+            }
+            
+            xURLTransformer->parseStrict( aTargetURL );
+            xDispatch->dispatch( aTargetURL, aArgs );
+        }
+    }
+}
+
+void SAL_CALL FontMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
+=====================================================================
+Found a 9 line (159 tokens) duplication in the following files: 
+Starting at line 861 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+Starting at line 873 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				const long	nYLinePos = aBaseLinePos.Y() + ( nLineHeight << 1 );
+
+				aPoly[ 0 ].X() = aBaseLinePos.X(); aPoly[ 0 ].Y() = nYLinePos - ( nLineHeight >> 1 );
+				aPoly[ 1 ].X() = aBaseLinePos.X() + aNormSize.Width() - 1; aPoly[ 1 ].Y() = aPoly[ 0 ].Y();
+				aPoly[ 2 ].X() = aPoly[ 1 ].X(); aPoly[ 2 ].Y() = aPoly[ 0 ].Y() + nLineHeight - 1;
+				aPoly[ 3 ].X() = aPoly[ 0 ].X(); aPoly[ 3 ].Y() = aPoly[ 2 ].Y();
+						
+				ImplWritePolyPolygon( aPoly, sal_False );
+			}
+=====================================================================
+Found a 9 line (159 tokens) duplication in the following files: 
+Starting at line 942 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 954 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+
+				const long	nYLinePos = aBaseLinePos.Y() + ( nLineHeight << 1 );
+
+				aPoly[ 0 ].X() = aBaseLinePos.X(); aPoly[ 0 ].Y() = nYLinePos - ( nLineHeight >> 1 );
+				aPoly[ 1 ].X() = aBaseLinePos.X() + aNormSize.Width() - 1; aPoly[ 1 ].Y() = aPoly[ 0 ].Y();
+				aPoly[ 2 ].X() = aPoly[ 1 ].X(); aPoly[ 2 ].Y() = aPoly[ 0 ].Y() + nLineHeight - 1;
+				aPoly[ 3 ].X() = aPoly[ 0 ].X(); aPoly[ 3 ].Y() = aPoly[ 2 ].Y();
+						
+				ImplWritePolygon( aPoly, FALSE );
+			}
+=====================================================================
+Found a 32 line (159 tokens) duplication in the following files: 
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 623 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+		aTree.integrate(aChange, aNode, true);
+
+		lock.clearForBroadcast();
+		aSender.notifyListeners(aChange);
+	}
+	catch (configuration::InvalidName& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot remove Set Element: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw NoSuchElementException( sMessage += e.message(), xContext );
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot remove Set Element: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+
+}
+//-----------------------------------------------------------------------------------
+
+// XPropertyWithState
+//-----------------------------------------------------------------------------------
+
+void implSetToDefaultAsProperty(NodeSetAccess& rNode) 
+=====================================================================
+Found a 35 line (159 tokens) duplication in the following files: 
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					m_options["-b"] = OString(s);
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'F':
+=====================================================================
+Found a 40 line (159 tokens) duplication in the following files: 
+Starting at line 880 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+sal_uInt32 IdlType::checkInheritedMemberCount(const TypeReader* pReader)
+{
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if ( aSuperReader.isValid() )
+		{
+			count = checkInheritedMemberCount(&aSuperReader);
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+			{
+				count++;
+			}
+		}
+	}
+
+	return count;
+}
+
+sal_uInt32 IdlType::getInheritedMemberCount()
+=====================================================================
+Found a 35 line (159 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javaoptions.cxx
+
+					m_options["-nD"] = OString("");
+					break;
+				case 'T':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-T', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					if (m_options.count("-T") > 0)
+					{
+						OString tmp(m_options["-T"]);
+						tmp = tmp + ";" + s;
+						m_options["-T"] = tmp;
+					} else
+					{
+						m_options["-T"] = OString(s);
+					}
+					break;
+				case 'G':
+=====================================================================
+Found a 21 line (159 tokens) duplication in the following files: 
+Starting at line 801 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/DiagramHelper.cxx
+Starting at line 849 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/DiagramHelper.cxx
+
+    try
+    {
+        Reference< XCoordinateSystemContainer > xCooSysCnt(
+            xDiagram, uno::UNO_QUERY_THROW );
+        Sequence< Reference< XCoordinateSystem > > aCooSysSeq(
+            xCooSysCnt->getCoordinateSystems());
+        for( sal_Int32 i=0; i<aCooSysSeq.getLength(); ++i )
+        {
+            Reference< XCoordinateSystem > xCooSys( aCooSysSeq[i] );
+            OSL_ASSERT( xCooSys.is());
+            for( sal_Int32 nN = xCooSys->getDimension(); nN--; )
+            {
+                const sal_Int32 nMaximumScaleIndex = xCooSys->getMaximumAxisIndexByDimension(nN);
+                for(sal_Int32 nI=0; nI<=nMaximumScaleIndex; ++nI)
+                {
+                    Reference< XAxis > xAxis = xCooSys->getAxisByDimension( nN,nI );
+                    OSL_ASSERT( xAxis.is());
+                    if( xAxis.is())
+                    {
+                        ScaleData aScaleData = xAxis->getScaleData();
+                        if( aScaleData.AxisType == AxisType::CATEGORY )
+=====================================================================
+Found a 26 line (159 tokens) duplication in the following files: 
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	void ** pCppArgs  = (void **)malloc( 3 * sizeof(void *) * nParams );
+#else
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+#endif
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+=====================================================================
+Found a 24 line (158 tokens) duplication in the following files: 
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr++;
+
+                        weight = (weight_array[x_hr] * 
+                                  weight_array[y_hr] + 
+=====================================================================
+Found a 7 line (158 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_mask.h
+
+   0xff, 0xff, 0x07, 0x00, 0x78, 0x40, 0x00, 0x00, 0x3c, 0x80, 0x00, 0x00,
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 7 line (158 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+
+static char assw_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x00,0x10,0x1f,
+=====================================================================
+Found a 46 line (158 tokens) duplication in the following files: 
+Starting at line 1113 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1088 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                            pProvider->queryDocumentModel( rContentId ) ) );
+                else
+                    xRow->appendVoid( rProp );
+            }
+			else
+			{
+				// Not a Core Property! Maybe it's an Additional Core Property?!
+
+				if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+				{
+					xAdditionalPropSet
+                        = uno::Reference< beans::XPropertySet >(
+							pProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "ContentType" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+            rData.getContentType() );
+=====================================================================
+Found a 20 line (158 tokens) duplication in the following files: 
+Starting at line 586 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/glosbib.cxx
+Starting at line 1075 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/glossary.cxx
+
+void SwGlTreeListBox::RequestHelp( const HelpEvent& rHEvt )
+{
+	Point aPos( ScreenToOutputPixel( rHEvt.GetMousePosPixel() ));
+	SvLBoxEntry* pEntry = GetEntry( aPos );
+	// Hilfe gibt es nur fuer die Gruppennamen
+	if(pEntry)
+	{
+		SvLBoxTab* pTab;
+		SvLBoxItem* pItem = GetItem( pEntry, aPos.X(), &pTab );
+		if(pItem)
+		{
+			aPos = GetEntryPosition( pEntry );
+		 	Size aSize(pItem->GetSize( this, pEntry ));
+			aPos.X() = GetTabPos( pEntry, pTab );
+
+			if((aPos.X() + aSize.Width()) > GetSizePixel().Width())
+				aSize.Width() = GetSizePixel().Width() - aPos.X();
+			aPos = OutputToScreenPixel(aPos);
+		 	Rectangle aItemRect( aPos, aSize );
+			String sMsg;
+=====================================================================
+Found a 19 line (158 tokens) duplication in the following files: 
+Starting at line 795 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+Starting at line 928 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+
+        uno::Sequence < sal_Int8 > aClass( SvGlobalName( SO3_IFRAME_CLASSID ).GetByteSequence() );
+        uno::Reference < embed::XEmbedObjectCreator > xFactory( ::comphelper::getProcessServiceFactory()->createInstance(
+                ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.EmbeddedObjectCreator")) ), uno::UNO_QUERY );
+        uno::Reference < embed::XEmbeddedObject > xObj =
+            uno::Reference < embed::XEmbeddedObject >( xFactory->createInstanceInitNew(
+            aClass, ::rtl::OUString(), xStorage, aName,
+            uno::Sequence < beans::PropertyValue >() ), uno::UNO_QUERY );
+
+		// set size to the object
+		lcl_setObjectVisualArea( xObj,
+								embed::Aspects::MSOLE_CONTENT,
+								Size( nWidth, nHeight ),
+								MAP_100TH_MM );
+
+        if ( svt::EmbeddedObjectRef::TryRunningState( xObj ) )
+        {
+            uno::Reference < beans::XPropertySet > xSet( xObj->getComponent(), uno::UNO_QUERY );
+            if ( xSet.is() )
+            {
+=====================================================================
+Found a 25 line (158 tokens) duplication in the following files: 
+Starting at line 3193 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4927 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+uno::Sequence< OUString > SwXCellRange::getColumnDescriptions(void)
+										throw( uno::RuntimeException )
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+	sal_Int16 nColCount = getColumnCount();
+	if(!nColCount)
+	{
+		uno::RuntimeException aRuntime;
+		aRuntime.Message = C2U("Table too complex");
+		throw aRuntime;
+	}
+	uno::Sequence< OUString > aRet(bFirstRowAsLabel ? nColCount - 1 : nColCount);
+	SwFrmFmt* pFmt = GetFrmFmt();
+	if(pFmt)
+	{
+		OUString* pArray = aRet.getArray();
+		if(bFirstRowAsLabel)
+		{
+			sal_uInt16 nStart = bFirstColumnAsLabel ? 1 : 0;
+			for(sal_uInt16 i = nStart; i < nColCount; i++)
+			{
+				uno::Reference< table::XCell >  xCell = getCellByPosition(i, 0);
+				if(!xCell.is())
+				{
+					throw uno::RuntimeException();
+=====================================================================
+Found a 31 line (158 tokens) duplication in the following files: 
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/findattr.cxx
+Starting at line 554 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/findattr.cxx
+
+			return Found();
+
+        pSet = CharFmt::GetItemSet( rAttr.GetAttr() );
+        if ( pSet )
+        {
+			pIter = new SfxWhichIter( *pSet );
+			nWhch = pIter->FirstWhich();
+			while( nWhch &&
+				SFX_ITEM_SET != pSet->GetItemState( nWhch, TRUE, &pTmpItem ) )
+				nWhch = pIter->NextWhich();
+			if( !nWhch )
+				pTmpItem = NULL;
+        }
+	}
+	else
+		pTmpItem = &rAttr.GetAttr();
+	while( pTmpItem )
+	{
+		SfxItemState eState = aCmpSet.GetItemState( nWhch, FALSE, &pItem );
+		if( SFX_ITEM_DONTCARE == eState || SFX_ITEM_SET == eState )
+		{
+			register USHORT n;
+			_SwSrchChrAttr* pCmp;
+
+			// loesche erstmal alle, die bis zu der Start Position schon wieder
+			// ungueltig sind:
+
+			_SwSrchChrAttr* pArrPtr;
+			if( nFound )
+				for( pArrPtr = pFndArr, n = 0; n < nArrLen; ++n, ++pArrPtr )
+					if( pArrPtr->nWhich && pArrPtr->nStt >= aTmp.nEnd )
+=====================================================================
+Found a 12 line (158 tokens) duplication in the following files: 
+Starting at line 826 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+Starting at line 863 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+FrPair GetMapFactor(FieldUnit eS, FieldUnit eD)
+{
+	if (eS==eD) return FrPair(1,1,1,1);
+	FrPair aS(GetInchOrMM(eS));
+	FrPair aD(GetInchOrMM(eD));
+	FASTBOOL bSInch=IsInch(eS);
+	FASTBOOL bDInch=IsInch(eD);
+	FrPair aRet(aD.X()/aS.X(),aD.Y()/aS.Y());
+	if (bSInch && !bDInch) { aRet.X()*=Fraction(127,5); aRet.Y()*=Fraction(127,5); }
+	if (!bSInch && bDInch) { aRet.X()*=Fraction(5,127); aRet.Y()*=Fraction(5,127); }
+	return aRet;
+};
+=====================================================================
+Found a 19 line (158 tokens) duplication in the following files: 
+Starting at line 2170 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 3015 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x73, 0x2E, 0x4C, 0x69, 0x73, 0x74, 0x42, 0x6F,
+		0x78, 0x2E, 0x31, 0x00, 0xF4, 0x39, 0xB2, 0x71,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+=====================================================================
+Found a 18 line (158 tokens) duplication in the following files: 
+Starting at line 5427 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 5505 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+	{ 0x6000, { 0x40c, 0x40e, 3600 } },			//410
+	{ 0x2001, { 0x40d, 1, 2 } },				//411 1/2 width
+	{ 0x6000, { 0x407, 0x411, 0 } },			//412 top center glue xpos
+	{ 0x8000, { 21600, 0, 0x412 } },			//413 bottom center glue xpos
+	{ 0x2001, { 0x405, 1, 2 } },				//414 left glue x pos
+	{ 0x8000, { 21600, 0, 0x414 } },			//415 right glue x pos
+	{ 0x2001, { 0x400, 2, 1 } },				//416 y1 (textbox)
+	{ 0x8000, { 21600, 0, 0x416 } },			//417 y2 (textbox)
+
+	{ 0x8000, { 21600, 0, 0x407 } },			//418 p2
+
+	{ 0x8000, { 21600, 0, 0x40f } },			//419 c
+	{ 0x6000, { 0x401, 0x408, 0 } },			//41a
+
+	{ 0x8000, { 21600, 0, 0x410 } },			//41b c
+	{ 0xa000, { 0x401, 0, 0x408 } },			//41c
+
+	{ 0x8000, { 21600, 0, 0x40c } }, 			//41d p3
+=====================================================================
+Found a 11 line (158 tokens) duplication in the following files: 
+Starting at line 2401 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2127 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 10800 }, { 0xa MSO_I, 0x10 MSO_I }
+=====================================================================
+Found a 37 line (158 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+					m_pImpl->m_xUrlTransformer->parseStrict( aTargetURL );
+                xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+            
+                xStatusListener = Reference< XStatusListener >( static_cast< OWeakObject* >( this ), UNO_QUERY );
+                URLToDispatchMap::iterator aIter = m_aListenerMap.find( aCommandURL );
+                if ( aIter != m_aListenerMap.end() )
+                {
+                    Reference< XDispatch > xOldDispatch( aIter->second );
+                    aIter->second = xDispatch;
+
+                    try
+                    {
+                        if ( xOldDispatch.is() )
+                            xOldDispatch->removeStatusListener( xStatusListener, aTargetURL );
+                    }
+                    catch ( Exception& )
+                    {
+                    }    
+                }
+                else
+                    m_aListenerMap.insert( URLToDispatchMap::value_type( aCommandURL, xDispatch ));
+            }
+        }
+    }
+    
+    // Call without locked mutex as we are called back from dispatch implementation
+    try
+    {
+        if ( xDispatch.is() )
+            xDispatch->addStatusListener( xStatusListener, aTargetURL );
+    }
+    catch ( Exception& )
+    {
+    }
+}
+
+void ToolboxController::removeStatusListener( const rtl::OUString& aCommandURL )
+=====================================================================
+Found a 37 line (158 tokens) duplication in the following files: 
+Starting at line 2173 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+Starting at line 2360 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+
+	SfxChildWin_Impl *pCW=NULL;
+	SfxWorkWindow *pWork = pParent;
+
+	// Den obersten parent nehmen; ChildWindows werden immer am WorkWindow
+	// der Task bzw. des Frames oder am AppWorkWindow angemeldet
+	while ( pWork && pWork->pParent )
+		pWork = pWork->pParent;
+
+	if ( pWork )
+	{
+		// Dem Parent schon bekannt ?
+		USHORT nCount = pWork->pChildWins->Count();
+		for (USHORT n=0; n<nCount; n++)
+			if ((*pWork->pChildWins)[n]->nSaveId == nId)
+			{
+				pCW = (*pWork->pChildWins)[n];
+				break;
+			}
+	}
+
+	if ( !pCW )
+	{
+		// Kein Parent oder dem Parent noch unbekannt, dann bei mir suchen
+		USHORT nCount = pChildWins->Count();
+		for (USHORT n=0; n<nCount; n++)
+			if ((*pChildWins)[n]->nSaveId == nId)
+			{
+				pCW = (*pChildWins)[n];
+				break;
+			}
+	}
+
+	if ( !pCW )
+	{
+		// Ist neu, also initialisieren; je nach Flag beim Parent oder bei
+		// mir eintragen
+		pCW = new SfxChildWin_Impl( nId );
+=====================================================================
+Found a 36 line (158 tokens) duplication in the following files: 
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 637 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+
+	std::queue< std::_tstring >	aKeyNames;
+
+	// std::_tstring	mystr;
+	// mystr = "Patchfile: " + sPatchFile;
+	// MessageBox( NULL, mystr.c_str(), "Titel", MB_OK );
+
+	aSectionNames = getProfileSections( sPatchFile );
+	while ( !aSectionNames.empty() )
+	{	
+		std::_tstring	sSectionName = aSectionNames.front();
+		if ( std::_tstring(TEXT("_root")) == sSectionName ) { sSectionName = TEXT(""); }
+		// mystr = "Section: " + sSectionName;
+		// MessageBox( NULL, mystr.c_str(), "Titel", MB_OK );
+
+		aKeyNames = getProfileKeys( sPatchFile, sSectionName );
+		while( !aKeyNames.empty() )
+		{
+			std::_tstring	sKeyName = aKeyNames.front();
+			std::_tstring	sValue = getProfileString( sPatchFile, sSectionName, sKeyName );
+
+			if ( sValue.length() )
+			{
+				std::_tstring	sFileName1 = sKeyName;
+				std::_tstring	sExtension = sValue;
+				std::_tstring	sFileName2;
+
+				sFileName1 = strip( sFileName1, '\"' );
+				sExtension = strip( sExtension, '\"' );
+
+				sFileName1 = sInstDir + sSectionName + sFileName1;
+				sFileName2 = sFileName1 + sExtension;
+
+				// mystr = "Convert: " + sFileName1 + " to " + sFileName2;
+				// MessageBox( NULL, mystr.c_str(), "Titel", MB_OK );
+
+				SwapFiles( sFileName2, sFileName1 );
+=====================================================================
+Found a 79 line (158 tokens) duplication in the following files: 
+Starting at line 1743 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+Starting at line 1904 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+
+		NULL,						//  161 Pmt2
+		NULL,						//  162 Pv2
+		NULL,						//  163 Fv2
+		NULL,						//  164 Term2
+		NULL,						//  165 ---                  <-------- neu! - Anzahl ? -
+		NULL,						//  166 D360 (US-Version, ersatzweise wie ander D360-Funktion)
+		NULL,						//  167
+		NULL,						//  168
+		NULL,						//  169
+		NULL,						//  170
+		NULL,						//  171
+		NULL,						//  172
+		NULL,						//  173
+		NULL,						//  174
+		NULL,						//  175
+		NULL,						//  176
+		NULL,						//  177
+		NULL,						//  178
+		NULL,						//  179
+		NULL,						//  180
+		NULL,						//  181
+		NULL,						//  182
+		NULL,						//  183
+		NULL,						//  184
+		NULL,						//  185
+		NULL,						//  186
+		NULL,						//  187
+		NULL,						//  188
+		NULL,						//  189
+		NULL,						//  190
+		NULL,						//  191
+		NULL,						//  192
+		NULL,						//  193
+		NULL,						//  194
+		NULL,						//  195
+		NULL,						//  196
+		NULL,						//  197
+		NULL,						//  198
+		NULL,						//  199
+		NULL,						//  200
+		NULL,						//  201
+		NULL,						//  202
+		NULL,						//  203
+		NULL,						//  204
+		NULL,						//  205
+		NULL,						//  206 ?
+		NULL,						//  207
+		NULL,						//  208
+		NULL,						//  209
+		NULL,						//  210
+		NULL,						//  211
+		NULL,						//  212
+		NULL,						//  213
+		NULL,						//  214
+		NULL,						//  215
+		NULL,						//  216
+		NULL,						//  217
+		NULL,						//  218
+		NULL,						//  219
+		NULL,						//  220
+		NULL,						//  221
+		NULL,						//  222
+		NULL,						//  223
+		NULL,						//  224
+		NULL,						//  225
+		NULL,						//  226
+		NULL,						//  227
+		NULL,						//  228
+		NULL,						//  229
+		NULL,						//  230
+		NULL,						//  231
+		NULL,						//  232
+		NULL,						//  233
+		NULL,						//  234
+		NULL,						//  235
+		NULL,						//  236
+		NULL,						//  237
+		NULL,						//  238
+		NULL,						//  239
+=====================================================================
+Found a 20 line (158 tokens) duplication in the following files: 
+Starting at line 969 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+Starting at line 991 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+
+				const SingleRefData& rRef = rCRef.Ref2;
+				if ( rRef.IsColRel() )
+					nCol = aPos.Col() + rRef.nRelCol;
+				else
+					nCol = rRef.nCol;
+				if ( rRef.IsRowRel() )
+					nRow = aPos.Row() + rRef.nRelRow;
+				else
+					nRow = rRef.nRow;
+				if ( rRef.IsTabRel() )
+					nTab = aPos.Tab() + rRef.nRelTab;
+				else
+					nTab = rRef.nTab;
+				if( !ValidCol( nCol) || rRef.IsColDeleted() )
+					SetError( errNoRef ), nCol = 0;
+				if( !ValidRow( nRow) || rRef.IsRowDeleted() )
+					SetError( errNoRef ), nRow = 0;
+				if( !ValidTab( (SCTAB)nTab, nMaxTab) || rRef.IsTabDeleted() )
+					SetError( errNoRef ), nTab = 0;
+				rRange.aEnd.Set( (SCCOL)nCol, (SCROW)nRow, (SCTAB)nTab );
+=====================================================================
+Found a 27 line (158 tokens) duplication in the following files: 
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+    ComplRefData aRef( rRef );
+    // In case absolute/relative positions weren't separately available:
+    // transform relative to absolute!
+//  AdjustReference( aRef.Ref1 );
+//  if( !bSingleRef )
+//      AdjustReference( aRef.Ref2 );
+    aRef.Ref1.CalcAbsIfRel( rComp.aPos );
+    if( !bSingleRef )
+        aRef.Ref2.CalcAbsIfRel( rComp.aPos );
+    if( aRef.Ref1.IsFlag3D() )
+    {
+        if (aRef.Ref1.IsTabDeleted())
+        {
+            if (!aRef.Ref1.IsTabRel())
+                rBuffer.append(sal_Unicode('$'));
+            rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+            rBuffer.append(sal_Unicode('.'));
+        }
+        else
+        {
+            String aDoc;
+            String aRefStr( MakeTabStr( rComp, aRef.Ref1.nTab, aDoc ) );
+            rBuffer.append(aDoc);
+            if (!aRef.Ref1.IsTabRel()) rBuffer.append(sal_Unicode('$'));
+            rBuffer.append(aRefStr);
+        }
+    }
+=====================================================================
+Found a 26 line (158 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 294 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+OStorage_Impl::OStorage_Impl(	uno::Reference< io::XStream > xStream,
+								sal_Int32 nMode,
+								uno::Sequence< beans::PropertyValue > xProperties,
+								uno::Reference< lang::XMultiServiceFactory > xFactory,
+								sal_Int16 nStorageType )
+: m_rMutexRef( new SotMutexHolder )
+, m_pAntiImpl( NULL )
+, m_nStorageMode( nMode & ~embed::ElementModes::SEEKABLE )
+, m_bIsModified( ( nMode & ( embed::ElementModes::WRITE | embed::ElementModes::TRUNCATE ) ) == ( embed::ElementModes::WRITE | embed::ElementModes::TRUNCATE ) )
+, m_bBroadcastModified( sal_False )
+, m_bCommited( sal_False )
+, m_bIsRoot( sal_True )
+, m_bListCreated( sal_False )
+, m_xFactory( xFactory )
+, m_xProperties( xProperties )
+, m_bHasCommonPassword( sal_False )
+, m_pParent( NULL )
+, m_bControlMediaType( sal_False )
+, m_bMTFallbackUsed( sal_False )
+, m_pSwitchStream( NULL )
+, m_nStorageType( nStorageType )
+, m_pRelStorElement( NULL )
+, m_nRelInfoStatus( RELINFO_NO_INIT )
+{
+	// all the checks done below by assertion statements must be done by factory
+	OSL_ENSURE( xStream.is(), "No stream is provided!\n" );
+=====================================================================
+Found a 27 line (158 tokens) duplication in the following files: 
+Starting at line 2775 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 2843 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+    int curr = para->cshape.index;
+    unsigned char firstspace = 0;
+
+    if( !bParaStart )
+    {
+        padd(ascii("text:style-name"), sXML_CDATA,
+            ascii(getPStyleName(para->GetParaShape()->index, buf)));
+        rstartEl(ascii("text:p"), rList);
+        pList->clear();
+    }
+    if( d->bFirstPara && d->bInBody )
+    {
+/* for HWP's Bookmark */
+        strcpy(buf,"[������ ó=]");
+        padd(ascii("text:name"), sXML_CDATA, OUString(buf, strlen(buf), RTL_TEXTENCODING_EUC_KR));
+        rstartEl(ascii("text:bookmark"), rList);
+        pList->clear();
+        rendEl(ascii("text:bookmark"));
+        d->bFirstPara = sal_False;
+    }
+    if( d->bInHeader )
+    {
+        makeShowPageNum();
+        d->bInHeader = sal_False;
+    }
+    padd(ascii("text:style-name"), sXML_CDATA,
+        ascii(getTStyleName(curr, buf)));
+=====================================================================
+Found a 24 line (158 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/statusbarconfiguration.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/statusbarconfiguration.cxx
+
+using namespace ::com::sun::star::container;
+
+
+namespace framework
+{
+
+SV_IMPL_PTRARR( StatusBarDescriptor, StatusBarItemDescriptorPtr);
+
+static Reference< XParser > GetSaxParser(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+sal_Bool StatusBarConfiguration::LoadStatusBar( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&,
+=====================================================================
+Found a 20 line (158 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+
+        throw(RuntimeException);
+
+    // XDocumentHandler
+    virtual void SAL_CALL startDocument()
+        throw (SAXException,RuntimeException);
+    virtual void SAL_CALL endDocument()
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL startElement(const OUString& str, const Reference<XAttributeList>& attriblist)
+        throw (SAXException,RuntimeException);
+    virtual void SAL_CALL endElement(const OUString& str)
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL characters(const OUString& str)
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL ignorableWhitespace(const OUString& str)
+        throw (SAXException, RuntimeException);
+    virtual void SAL_CALL processingInstruction(const OUString& str, const OUString& str2)
+        throw (com::sun::star::xml::sax::SAXException,RuntimeException);
+    virtual void SAL_CALL setDocumentLocator(const Reference<XLocator>& doclocator)
+        throw (SAXException,RuntimeException);
+};
+=====================================================================
+Found a 45 line (158 tokens) duplication in the following files: 
+Starting at line 556 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/propshlp.cxx
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/propshlp.cxx
+
+			if( pLC )
+			{
+				// Ueber alle Listener iterieren und Events senden
+				OInterfaceIteratorHelper aIt( *pLC);
+				while( aIt.hasMoreElements() )
+				{
+					XInterface * pL = aIt.next();
+                    try
+                    {
+                        try
+                        {
+                            if( bVetoable ) // fire change Events?
+                            {
+                                ((XVetoableChangeListener *)pL)->vetoableChange(
+                                    pEvts[i] );
+                            }
+                            else
+                            {
+                                ((XPropertyChangeListener *)pL)->propertyChange(
+                                    pEvts[i] );
+                            }
+                        }
+                        catch (DisposedException & exc)
+                        {
+                            OSL_ENSURE( exc.Context.is(),
+                                        "DisposedException without Context!" );
+                            if (exc.Context == pL)
+                                aIt.remove();
+                            else
+                                throw;
+                        }
+                    }
+                    catch (RuntimeException & exc)
+                    {
+                        OSL_TRACE(
+                            OUStringToOString(
+                                OUString( RTL_CONSTASCII_USTRINGPARAM(
+                                              "caught RuntimeException while "
+                                              "firing listeners: ") ) +
+                                exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
+                        if (! bIgnoreRuntimeExceptionsWhileFiring)
+                            throw;
+                    }
+				}
+			}
+=====================================================================
+Found a 15 line (158 tokens) duplication in the following files: 
+Starting at line 2176 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+Starting at line 2210 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+
+            OSQLParseNode* pRight = pSearchCondition->getChild(2)->removeAt((sal_uInt32)0);
+            OSQLParseNode* pNode    = MakeORNode(pLeft,pRight);
+
+            OSQLParseNode* pNewRule = new OSQLParseNode(::rtl::OUString(),SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::boolean_primary));
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii("("),SQL_NODE_PUNCTUATION));
+            pNewRule->append(pNode);
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii(")"),SQL_NODE_PUNCTUATION));
+
+            OSQLParseNode::eraseBraces(pLeft);
+            OSQLParseNode::eraseBraces(pRight);
+
+            pNode = MakeANDNode(pSearchCondition->getChild(0)->removeAt((sal_uInt32)0),pNewRule);
+            replaceAndReset(pSearchCondition,pNode);
+        }
+        else if(*pSearchCondition->getChild(0)->getChild(2) == *pSearchCondition->getChild(2)->getChild(2))
+=====================================================================
+Found a 30 line (158 tokens) duplication in the following files: 
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 941 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & OStatement_Base::getInfoHelper()
+{
+	return *const_cast<OStatement_Base*>(this)->getArrayHelper();
+}
+// -------------------------------------------------------------------------
+sal_Bool OStatement_Base::convertFastPropertyValue(
+							Any & rConvertedValue,
+							Any & rOldValue,
+							sal_Int32 nHandle,
+							const Any& rValue )
+								throw (::com::sun::star::lang::IllegalArgumentException)
+{
+	sal_Bool bConverted = sal_False;
+=====================================================================
+Found a 18 line (158 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
+
+                        "uno:socket,host=127.0.0.1,port=3831;urp;test")),
+                css::uno::UNO_QUERY_THROW);
+    } catch (css::connection::NoConnectException & e) {
+        throw css::lang::WrappedTargetRuntimeException(
+            rtl::OUString::createFromAscii(
+                "com.sun.star.uno.UnoUrlResolver.resolve"),
+            static_cast< cppu::OWeakObject * >(this), css::uno::makeAny(e));
+    } catch (css::connection::ConnectionSetupException & e) {
+        throw css::lang::WrappedTargetRuntimeException(
+            rtl::OUString::createFromAscii(
+                "com.sun.star.uno.UnoUrlResolver.resolve"),
+            static_cast< cppu::OWeakObject * >(this), css::uno::makeAny(e));
+    } catch (css::lang::IllegalArgumentException & e) {
+        throw css::lang::WrappedTargetRuntimeException(
+            rtl::OUString::createFromAscii(
+                "com.sun.star.uno.UnoUrlResolver.resolve"),
+            static_cast< cppu::OWeakObject * >(this), css::uno::makeAny(e));
+    }
+=====================================================================
+Found a 28 line (158 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+    OSL_ASSERT(p - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+=====================================================================
+Found a 38 line (158 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	// OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+
+                          // we need to know type of each param so that we know whether to use
+                          // gpr or fpr to pass in parameters:
+                          // Key: I - int, long, pointer, etc means pass in gpr
+                          //      B - byte value passed in gpr
+                          //      S - short value passed in gpr
+                          //      F - float value pass in fpr
+                          //      D - double value pass in fpr
+                          //      H - long long int pass in proper pairs of gpr (3,4) (5,6), etc
+                          //      X - indicates end of parameter description string
+
+		          case typelib_TypeClass_LONG:
+=====================================================================
+Found a 28 line (158 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0; //null
+    slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vTableOffset)
+=====================================================================
+Found a 38 line (158 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	// OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+									pThis->getBridge()->getUno2Cpp() );
+			
+			switch (pParamTypeDescr->eTypeClass)
+			{
+
+                          // we need to know type of each param so that we know whether to use
+                          // gpr or fpr to pass in parameters:
+                          // Key: I - int, long, pointer, etc means pass in gpr
+                          //      B - byte value passed in gpr
+                          //      S - short value passed in gpr
+                          //      F - float value pass in fpr
+                          //      D - double value pass in fpr
+                          //      H - long long int pass in proper pairs of gpr (3,4) (5,6), etc
+                          //      X - indicates end of parameter description string
+
+		          case typelib_TypeClass_LONG:
+=====================================================================
+Found a 28 line (158 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+        reinterpret_cast< unsigned char * >(p) - code <= codeSnippetSize);
+    return code + codeSnippetSize;
+}
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0; //null
+    slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vTableOffset)
+=====================================================================
+Found a 39 line (158 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData(
+                    pCppArgs[nIndex], pParamTypeDescr,
+                    reinterpret_cast< uno_ReleaseFunc >(cpp_release) );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to eax
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+=====================================================================
+Found a 26 line (158 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxlng.cxx
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxulng.cxx
+
+			aTmp.nLong = *p->pLong; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxSALINT64:
+			aTmp.nInt64 = *p->pnInt64; goto ref;
+		case SbxBYREF | SbxSALUINT64:
+			aTmp.uInt64 = *p->puInt64; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+		ref:
+			aTmp.eType = SbxDataType( p->eType & 0x0FFF );
+			p = &aTmp; goto start;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION ); nRes = 0;
+	}
+	return nRes;
+}
+
+void ImpPutULong( SbxValues* p, UINT32 n )
+=====================================================================
+Found a 26 line (158 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxuint.cxx
+
+			aTmp.nULong = *p->pULong; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+		case SbxBYREF | SbxSALINT64:
+			aTmp.nInt64 = *p->pnInt64; goto ref;
+		case SbxBYREF | SbxSALUINT64:
+			aTmp.uInt64 = *p->puInt64; goto ref;
+		ref:
+			aTmp.eType = SbxDataType( p->eType & 0x0FFF );
+			p = &aTmp; goto start;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION ); nRes = 0;
+	}
+	return nRes;
+}
+
+void ImpPutUShort( SbxValues* p, UINT16 n )
+=====================================================================
+Found a 26 line (157 tokens) duplication in the following files: 
+Starting at line 495 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+Starting at line 534 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+
+	mpUnitConv( new SvXMLUnitConverter( MAP_100TH_MM, SvXMLUnitConverter::GetMapUnit(eDfltUnit), getServiceFactory() ) ),
+	mpNumExport(0L),
+	mpProgressBarHelper( NULL ),
+	mpEventExport( NULL ),
+	mpImageMapExport( NULL ),
+	mpXMLErrors( NULL ),
+	mbExtended( sal_False ),
+	meClass( XML_TOKEN_INVALID ),
+	mnExportFlags( 0 ),
+	mnErrorFlags( ERROR_NO ),
+	msWS( GetXMLToken(XML_WS) ),
+	mbSaveLinkedSections(sal_True)
+{
+	DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
+	_InitCtor();
+
+	if (mxNumberFormatsSupplier.is())
+		mpNumExport = new SvXMLNumFmtExport(*this, mxNumberFormatsSupplier);
+}
+
+// #110680#
+SvXMLExport::SvXMLExport(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+	const OUString &rFileName,
+	const uno::Reference< xml::sax::XDocumentHandler > & rHandler,
+	const Reference< XModel >& rModel,
+=====================================================================
+Found a 22 line (157 tokens) duplication in the following files: 
+Starting at line 7036 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 7210 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+        m_aTransparentObjects.back().m_pSoftMaskStream = static_cast<SvMemoryStream*>(endRedirect());
+
+        OStringBuffer aObjName( 16 );
+        aObjName.append( "Tr" );
+        aObjName.append( m_aTransparentObjects.back().m_nObject );
+        OString aTrName( aObjName.makeStringAndClear() );
+        aObjName.append( "EGS" );
+        aObjName.append( m_aTransparentObjects.back().m_nExtGStateObject );
+        OString aExtName( aObjName.makeStringAndClear() );
+
+        OStringBuffer aLine( 80 );
+        // insert XObject
+        aLine.append( "q /" );
+        aLine.append( aExtName );
+        aLine.append( " gs /" );
+        aLine.append( aTrName );
+        aLine.append( " Do Q\n" );
+        writeBuffer( aLine.getStr(), aLine.getLength() );
+        
+        pushResource( ResXObject, aTrName, m_aTransparentObjects.back().m_nObject );
+        pushResource( ResExtGState, aExtName, m_aTransparentObjects.back().m_nExtGStateObject );
+    }
+=====================================================================
+Found a 37 line (157 tokens) duplication in the following files: 
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydatasupplier.cxx
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+
+ResultSetDataSupplier::queryContent( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContent > xContent
+								= m_pImpl->m_aResults[ nIndex ]->xContent;
+		if ( xContent.is() )
+		{
+			// Already cached.
+			return xContent;
+		}
+	}
+
+    uno::Reference< ucb::XContentIdentifier > xId
+        = queryContentIdentifier( nIndex );
+	if ( xId.is() )
+	{
+		try
+		{
+            uno::Reference< ucb::XContent > xContent
+				= m_pImpl->m_xContent->getProvider()->queryContent( xId );
+			m_pImpl->m_aResults[ nIndex ]->xContent = xContent;
+			return xContent;
+
+		}
+        catch ( ucb::IllegalIdentifierException const & )
+		{
+		}
+	}
+    return uno::Reference< ucb::XContent >();
+}
+
+//=========================================================================
+// virtual
+sal_Bool ResultSetDataSupplier::getResult( sal_uInt32 nIndex )
+=====================================================================
+Found a 49 line (157 tokens) duplication in the following files: 
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/filinpstr.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/inputstream.cxx
+
+    if (nrc != sal::static_int_cast<sal_uInt64>( nBytesToRead) )
+        aData.realloc(sal_Int32(nrc));
+	return ( sal_Int32 ) nrc;
+}
+
+sal_Int32 SAL_CALL
+XInputStream_impl::readSomeBytes(
+	uno::Sequence< sal_Int8 >& aData,
+	sal_Int32 nMaxBytesToRead )
+	throw( io::NotConnectedException,
+		   io::BufferSizeExceededException,
+		   io::IOException,
+		   uno::RuntimeException)
+{
+	return readBytes( aData,nMaxBytesToRead );
+}
+
+
+void SAL_CALL
+XInputStream_impl::skipBytes(
+	sal_Int32 nBytesToSkip )
+	throw( io::NotConnectedException,
+		   io::BufferSizeExceededException,
+		   io::IOException,
+		   uno::RuntimeException)
+{
+	m_aFile.setPos( osl_Pos_Current, sal_uInt64( nBytesToSkip ) );
+}
+
+
+sal_Int32 SAL_CALL
+XInputStream_impl::available(
+	void )
+	throw( io::NotConnectedException,
+		   io::IOException,
+		   uno::RuntimeException)
+{
+	return 0;
+}
+
+
+void SAL_CALL
+XInputStream_impl::closeInput(
+	void )
+	throw( io::NotConnectedException,
+		   io::IOException,
+		   uno::RuntimeException )
+{
+	if( m_bIsOpen )
+=====================================================================
+Found a 27 line (157 tokens) duplication in the following files: 
+Starting at line 2307 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/utlui/content.cxx
+Starting at line 2347 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/utlui/content.cxx
+
+sal_Bool  SwContentTree::NotifyCopying( SvLBoxEntry*  pTarget,
+		SvLBoxEntry*  pEntry, SvLBoxEntry*& , ULONG& )
+{
+	if(!bDocChgdInDragging)
+	{
+		sal_uInt16 nTargetPos = 0;
+		sal_uInt16 nSourcePos = (( SwOutlineContent* )pEntry->GetUserData())->GetPos();
+		if(!lcl_IsContent(pTarget))
+			nTargetPos = USHRT_MAX;
+		else
+			nTargetPos = (( SwOutlineContent* )pTarget->GetUserData())->GetPos();
+
+		if(	MAXLEVEL > nOutlineLevel && // werden nicht alle Ebenen angezeigt
+						nTargetPos != USHRT_MAX)
+		{
+			SvLBoxEntry* pNext = Next(pTarget);
+			if(pNext)
+				nTargetPos = (( SwOutlineContent* )pNext->GetUserData())->GetPos() - 1;
+			else
+				nTargetPos = GetWrtShell()->GetOutlineCnt() - 1;
+
+		}
+
+
+		DBG_ASSERT( pEntry &&
+			lcl_IsContent(pEntry),"Source == 0 oder Source hat keinen Content" )
+		GetParentWindow()->MoveOutline( nSourcePos,	nTargetPos, sal_False);
+=====================================================================
+Found a 31 line (157 tokens) duplication in the following files: 
+Starting at line 2703 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 2867 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        case ww::eWW8:
+            pFkpSizeTab = WW8FkpSizeTabVer8;
+            break;
+        default:
+            // Programm-Fehler!
+            ASSERT( !this, "Es wurde vergessen, nVersion zu kodieren!" );
+            return false;
+    }
+
+    if (!pPLCF->Get( nPLCFStart, nPLCFEnd, pPage ))
+    {
+        pFkp = 0;
+        return false;                           // PLCF fertig abgearbeitet
+    }
+    (*pPLCF)++;
+    long nPo = SVBT16ToShort( (BYTE *)pPage );
+    nPo <<= 9;                                  // shift als LONG
+
+    long nAktFkpFilePos = pFkp ? pFkp->GetFilePos() : -1;
+    if (nAktFkpFilePos == nPo)
+        pFkp->Reset(GetStartFc()); // #79464# //
+    else
+    {
+        myiter aIter =
+            std::find_if(maFkpCache.begin(), maFkpCache.end(), SamePos(nPo));
+        if (aIter != maFkpCache.end())
+        {
+            pFkp = *aIter;
+            pFkp->Reset(GetStartFc());
+        }
+        else if ((pFkp = new WW8Fkp(GetFIBVersion(), pFKPStrm, pDataStrm, nPo,
+=====================================================================
+Found a 23 line (157 tokens) duplication in the following files: 
+Starting at line 849 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/layact.cxx
+Starting at line 996 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/layact.cxx
+
+		if ( !pPage && !IsInterrupt() &&
+			 (pRoot->IsSuperfluous() || pRoot->IsAssertFlyPages()) )
+		{
+			if ( pRoot->IsAssertFlyPages() )
+				pRoot->AssertFlyPages();
+			if ( pRoot->IsSuperfluous() )
+			{
+				BOOL bOld = IsAgain();
+				pRoot->RemoveSuperfluous();
+				bAgain = bOld;
+			}
+			if ( IsAgain() )
+			{
+				if( bNoLoop )
+					pLayoutAccess->GetLayouter()->EndLoopControl();
+				return;
+			}
+			pPage = (SwPageFrm*)pRoot->Lower();
+			while ( pPage && !pPage->IsInvalid() && !pPage->IsInvalidFly() )
+				pPage = (SwPageFrm*)pPage->GetNext();
+			while ( pPage && pPage->GetNext() &&
+					pPage->GetPhyPageNum() < nFirstPageNum )
+				pPage = (SwPageFrm*)pPage->GetNext();
+=====================================================================
+Found a 9 line (157 tokens) duplication in the following files: 
+Starting at line 2241 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2329 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
+=====================================================================
+Found a 37 line (157 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/readonlyimage.cxx
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/dialogs/macrosecurity.cxx
+
+    SetImage( Image(XMLSEC_RES( bHighContrast ? RID_XMLSECTP_LOCK_HC : RID_XMLSECTP_LOCK )));
+}
+
+/*-- 26.02.2004 13:31:04---------------------------------------------------
+
+  -----------------------------------------------------------------------*/
+ReadOnlyImage::~ReadOnlyImage()
+{
+}
+/*-- 26.02.2004 13:31:04---------------------------------------------------
+
+  -----------------------------------------------------------------------*/
+void ReadOnlyImage::RequestHelp( const HelpEvent& rHEvt )
+{
+    if( Help::IsBalloonHelpEnabled() || Help::IsQuickHelpEnabled() )
+    {
+        Rectangle   aLogicPix( LogicToPixel( Rectangle( Point(), GetOutputSize() ) ) );
+        Rectangle   aScreenRect( OutputToScreenPixel( aLogicPix.TopLeft() ),
+                                     OutputToScreenPixel( aLogicPix.BottomRight() ) );
+
+        String aStr(ReadOnlyImage::GetHelpTip());
+        if ( Help::IsBalloonHelpEnabled() )
+            Help::ShowBalloon( this, rHEvt.GetMousePosPixel(), aScreenRect, 
+            aStr );
+        else if ( Help::IsQuickHelpEnabled() )
+            Help::ShowQuickHelp( this, aScreenRect, aStr );
+    }
+    else
+        Window::RequestHelp( rHEvt );
+}
+
+/*-- 26.02.2004 14:20:21---------------------------------------------------
+
+  -----------------------------------------------------------------------*/
+const String& ReadOnlyImage::GetHelpTip()
+{
+     static String  aStr(XMLSEC_RES( RID_XMLSECTP_READONLY_CONFIG_TIP));
+=====================================================================
+Found a 28 line (157 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 643 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+void  SvxBulletPickTabPage::Reset( const SfxItemSet& rSet )
+{
+	const SfxPoolItem* pItem;
+	//im Draw gibt es das Item als WhichId, im Writer nur als SlotId
+	SfxItemState eState = rSet.GetItemState(SID_ATTR_NUMBERING_RULE, FALSE, &pItem);
+	if(eState != SFX_ITEM_SET)
+	{
+		nNumItemId = rSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
+		eState = rSet.GetItemState(nNumItemId, FALSE, &pItem);
+	}
+	DBG_ASSERT(eState == SFX_ITEM_SET, "kein Item gefunden!")
+	delete pSaveNum;
+	pSaveNum = new SvxNumRule(*((SvxNumBulletItem*)pItem)->GetNumRule());
+
+//	nActNumLvl = ((SwNumBulletTabDialog*)GetTabDialog())->GetActNumLevel();
+
+	if(SFX_ITEM_SET == rSet.GetItemState(SID_PARAM_CHILD_LEVELS, FALSE, &pItem))
+		bHasChild = ((const SfxBoolItem*)pItem)->GetValue();
+	if(!pActNum)
+		pActNum = new  SvxNumRule(*pSaveNum);
+	else if(*pSaveNum != *pActNum)
+		*pActNum = *pSaveNum;
+}
+/*-----------------08.02.97 11.58-------------------
+
+--------------------------------------------------*/
+
+IMPL_LINK(SvxBulletPickTabPage, NumSelectHdl_Impl, ValueSet*, EMPTYARG)
+=====================================================================
+Found a 9 line (157 tokens) duplication in the following files: 
+Starting at line 2518 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2607 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
+=====================================================================
+Found a 19 line (157 tokens) duplication in the following files: 
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape3d.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape3d.cxx
+
+				p3DObj->NbcSetLayer( pObj->GetLayer() );
+				p3DObj->SetMergedItemSet( aSet );
+				basegfx::B3DHomMatrix aFrontTransform( p3DObj->GetTransform() );
+				aFrontTransform.translate( 0.0, 0.0, fDepth );
+				p3DObj->NbcSetTransform( aFrontTransform );
+				if ( ( eFillStyle == XFILL_BITMAP ) && !aFillBmp.IsEmpty() )
+					p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) );
+			}
+			else if ( eFillStyle == XFILL_NONE )
+			{
+				XLineColorItem& rLineColor = (XLineColorItem&)p3DObj->GetMergedItem( XATTR_LINECOLOR );
+				p3DObj->SetMergedItem( XFillColorItem( String(), rLineColor.GetColorValue() ) );
+				p3DObj->SetMergedItem( Svx3DDoubleSidedItem( sal_True ) );
+				p3DObj->SetMergedItem( Svx3DCloseFrontItem( sal_False ) );
+				p3DObj->SetMergedItem( Svx3DCloseBackItem( sal_False ) );
+			}
+			pScene->Insert3DObj( p3DObj );
+			bSceneHasObjects = sal_True;
+		}
+=====================================================================
+Found a 9 line (157 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+	static const SfxItemPropertyMap aGraphicPagePropertyMap_Impl[] =
+	{
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND),		WID_PAGE_BACK,		&ITYPE( beans::XPropertySet),					beans::PropertyAttribute::MAYBEVOID,0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM),			WID_PAGE_BOTTOM,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT),				WID_PAGE_LEFT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT),			WID_PAGE_RIGHT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),		WID_PAGE_LDBITMAP,	&ITYPE(awt::XBitmap),						    beans::PropertyAttribute::READONLY,	0},
+=====================================================================
+Found a 18 line (157 tokens) duplication in the following files: 
+Starting at line 1859 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1944 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+SvXMLImportContext *ScXMLMovementContext::CreateChildContext( USHORT nPrefix,
+									 const ::rtl::OUString& rLocalName,
+									 const ::com::sun::star::uno::Reference<
+									  	::com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext *pContext(0);
+
+	if ((nPrefix == XML_NAMESPACE_OFFICE) && (IsXMLToken(rLocalName, XML_CHANGE_INFO)))
+	{
+		pContext = new ScXMLChangeInfoContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+	}
+	else if (nPrefix == XML_NAMESPACE_TABLE)
+	{
+		if (IsXMLToken(rLocalName, XML_DEPENDENCIES))
+			pContext = new ScXMLDependingsContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+		else if (IsXMLToken(rLocalName, XML_DELETIONS))
+			pContext = new ScXMLDeletionsContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+		else if (IsXMLToken(rLocalName, XML_SOURCE_RANGE_ADDRESS))
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 620 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 7 line (157 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24f0 - 24ff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2500 - 250f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2510 - 251f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2520 - 252f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2530 - 253f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2540 - 254f
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 564 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    11,11,11,11,11,11,11,11,11,11,11,11,27,27,27,27,// 2490 - 249f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 24a0 - 24af
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 24b0 - 24bf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 24c0 - 24cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 24d0 - 24df
+    27,27,27,27,27,27,27,27,27,27,11, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21, 0, 0, 0,// 1690 - 169f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16a0 - 16af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16b0 - 16bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16c0 - 16cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16d0 - 16df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,23,23,23,10,10,// 16e0 - 16ef
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 24 line (157 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/menubarfactory.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/toolboxfactory.cxx
+
+                            "com.sun.star.ui.ModuleUIConfigurationManagerSupplier" ))), 
+                        UNO_QUERY );
+                    xCfgMgr = xModuleCfgSupplier->getUIConfigurationManager( aModuleIdentifier );
+                    bHasSettings = xCfgMgr->hasSettings( aResourceURL );
+                }
+            }
+        }
+    }
+
+    PropertyValue aPropValue;
+    Sequence< Any > aPropSeq( 5 );
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+    aPropValue.Value <<= xFrame;
+    aPropSeq[0] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+    aPropValue.Value <<= xCfgMgr;
+    aPropSeq[1] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResourceURL" ));
+    aPropValue.Value <<= aResourceURL;
+    aPropSeq[2] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Persistent" ));
+    aPropValue.Value <<= bPersistent;
+    aPropSeq[3] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PopupMode" ));
+=====================================================================
+Found a 26 line (157 tokens) duplication in the following files: 
+Starting at line 738 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+Starting at line 788 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+void SAL_CALL ToolBarManager::elementRemoved( const ::com::sun::star::ui::ConfigurationEvent& Event ) throw (::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aGuard( m_aLock );
+
+	/* SAFE AREA ----------------------------------------------------------------------------------------------- */
+    if ( m_bDisposed )
+        return;
+
+    Reference< XNameAccess > xNameAccess;
+    sal_Int16                nImageType = sal_Int16();
+    sal_Int16                nCurrentImageType = getImageTypeFromBools(
+                                                    SvtMiscOptions().AreCurrentSymbolsLarge(),
+                                                    m_bIsHiContrast );
+
+    if (( Event.aInfo >>= nImageType ) &&
+        ( nImageType == nCurrentImageType ) &&
+        ( Event.Element >>= xNameAccess ))
+    {
+        sal_Int16 nImageInfo( 1 );
+        Reference< XInterface > xIfacDocImgMgr( m_xDocImageManager, UNO_QUERY );
+        if ( xIfacDocImgMgr == Event.Source )
+            nImageInfo = 0;
+
+        Sequence< rtl::OUString > aSeq = xNameAccess->getElementNames();
+        for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
+        {
+=====================================================================
+Found a 6 line (157 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 14 line (157 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlControlProperty.cxx
+
+			case XML_TOK_VALUE_TYPE:
+				{
+					// needs to be translated into a ::com::sun::star::uno::Type
+					DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Type, MapString2Type );
+					static MapString2Type s_aTypeNameMap;
+					if (!s_aTypeNameMap.size())
+					{
+						s_aTypeNameMap[GetXMLToken( XML_BOOLEAN)]	= ::getBooleanCppuType();
+						s_aTypeNameMap[GetXMLToken( XML_FLOAT)]		= ::getCppuType( static_cast< double* >(NULL) );
+                        s_aTypeNameMap[GetXMLToken( XML_DOUBLE)]	= ::getCppuType( static_cast< double* >(NULL) );
+						s_aTypeNameMap[GetXMLToken( XML_STRING)]	= ::getCppuType( static_cast< ::rtl::OUString* >(NULL) );
+						s_aTypeNameMap[GetXMLToken( XML_INT)]		= ::getCppuType( static_cast< sal_Int32* >(NULL) );
+						s_aTypeNameMap[GetXMLToken( XML_SHORT)]		= ::getCppuType( static_cast< sal_Int16* >(NULL) );
+						s_aTypeNameMap[GetXMLToken( XML_DATE)]		= ::getCppuType( static_cast< com::sun::star::util::Date* >(NULL) );
+=====================================================================
+Found a 23 line (157 tokens) duplication in the following files: 
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+	m_aScales.clear();
+	// reserve some space
+	m_aColumns->reserve(nFieldCount);
+	m_aTypes.reserve(nFieldCount);
+	m_aPrecisions.reserve(nFieldCount);
+	m_aScales.reserve(nFieldCount);
+
+	sal_Bool bCase = getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers();
+	CharClass aCharClass(pConnection->getDriver()->getFactory(),_aLocale);
+	// read description
+	sal_Unicode cDecimalDelimiter  = pConnection->getDecimalDelimiter();
+	sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter();
+	String aColumnName;
+	::rtl::OUString aTypeName;
+	::comphelper::UStringMixEqual aCase(bCase);
+	xub_StrLen nStartPosHeaderLine = 0; // use for eficient way to get the tokens
+	xub_StrLen nStartPosFirstLine = 0; // use for eficient way to get the tokens
+	xub_StrLen nStartPosFirstLine2 = 0;
+	for (xub_StrLen i = 0; i < nFieldCount; i++)
+	{
+		if (pConnection->isHeaderLine())
+		{
+			aHeaderLine.GetTokenSpecial(aColumnName,nStartPosHeaderLine,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+=====================================================================
+Found a 25 line (157 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+	xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+
+	if(!m_aColumns.isValid())
+		m_aColumns = new OSQLColumns();
+	else
+		m_aColumns->clear();
+
+	m_aTypes.clear();
+	m_aPrecisions.clear();
+	m_aScales.clear();
+	// reserve some space
+	m_aColumns->reserve(nFieldCount);
+	m_aTypes.reserve(nFieldCount);
+	m_aPrecisions.reserve(nFieldCount);
+	m_aScales.reserve(nFieldCount);
+
+	sal_Bool bCase = getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers();
+	CharClass aCharClass(pConnection->getDriver()->getFactory(),_aLocale);
+	// read description
+	sal_Unicode cDecimalDelimiter  = pConnection->getDecimalDelimiter();
+	sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter();
+	String aColumnName;
+	::rtl::OUString aTypeName;
+	::comphelper::UStringMixEqual aCase(bCase);
+	xub_StrLen nStartPosHeaderLine = 0; // use for eficient way to get the tokens
+=====================================================================
+Found a 31 line (157 tokens) duplication in the following files: 
+Starting at line 2611 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 2655 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+void StructureType::dumpNormalGetCppuType(FileStream & out) {
+    dumpGetCppuTypePreamble(out);
+    out << indent()
+        << ("//TODO: On certain platforms with weak memory models, the"
+            " following code can result in some threads observing that the_type"
+            " points to garbage\n")
+        << indent()
+        << "static ::typelib_TypeDescriptionReference * the_type = 0;\n"
+        << indent() << "if (the_type == 0) {\n";
+    inc();
+    if (isPolymorphic()) {
+        out << indent() << "::rtl::OStringBuffer the_buffer(\""
+            << m_typeName.replace('/', '.') << "<\");\n";
+        sal_uInt16 n = m_reader.getReferenceCount();
+        for (sal_uInt16 i = 0; i < n; ++i) {
+            out << indent()
+                << ("the_buffer.append(::rtl::OUStringToOString("
+                    "::cppu::getTypeFavourChar(static_cast< ");
+            dumpTypeParameterName(
+                out,
+                rtl::OUStringToOString(
+                    m_reader.getReferenceTypeName(i), RTL_TEXTENCODING_UTF8));
+            out << " * >(0)).getTypeName(), RTL_TEXTENCODING_UTF8));\n";
+            if (i != n - 1) {
+                out << indent() << "the_buffer.append(',');\n";
+            }
+        }
+        out << indent() << "the_buffer.append('>');\n";
+    }
+    out << indent()
+        << "::typelib_TypeDescriptionReference * the_members[] = {\n";
+=====================================================================
+Found a 31 line (157 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/typemanager.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/unodevtools/typemanager.cxx
+
+RTTypeClass UnoTypeManager::getTypeClass(RegistryKey& rTypeKey) const
+{
+    OString name = getTypeName(rTypeKey);
+    
+	if ( m_pImpl->m_t2TypeClass.count(name) > 0 ) {
+		return m_pImpl->m_t2TypeClass[name];
+	} else {
+		if ( rTypeKey.isValid() ) {
+			RegValueType 	valueType;
+			sal_uInt32		valueSize;
+
+			if ( !rTypeKey.getValueInfo(OUString(), &valueType, &valueSize) ) {
+				sal_uInt8*	pBuffer = (sal_uInt8*)rtl_allocateMemory(valueSize);	
+				if ( !rTypeKey.getValue(OUString(), pBuffer) ) {
+					typereg::Reader reader(
+                        pBuffer, valueSize, false, TYPEREG_VERSION_1);
+
+					RTTypeClass ret = reader.getTypeClass();
+					
+					rtl_freeMemory(pBuffer);
+					
+					m_pImpl->m_t2TypeClass[name] = ret;				
+					return ret;
+				}		
+				rtl_freeMemory(pBuffer);
+			}
+		}
+	}	
+
+	return RT_TYPE_INVALID;	
+}	
+=====================================================================
+Found a 35 line (157 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			    break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 41 line (157 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/cpp/c_macro.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/cpp/defdescr.cxx
+
+    if ( aDefinition.begin() == aDefinition.end() OR eDefineType != type_macro )
+        return;
+
+    for ( str_vector::const_iterator it = aDefinition.begin();
+          it != aDefinition.end();
+          ++it )
+    {
+        if ( HandleOperatorsBeforeTextItem( o_rText,
+                                            bSwitch_Stringify,
+                                            bSwitch_Concatenate,
+                                            *it ) )
+        {
+            continue;
+        }
+
+        for ( str_vector::const_iterator param_it = aParams.begin();
+              param_it != aParams.end() AND nActiveParamNr == -1;
+              ++param_it )
+        {
+         	if ( strcmp(*it, *param_it) == 0 )
+                nActiveParamNr = param_it - aParams.begin();
+        }
+        if ( nActiveParamNr == -1 )
+        {
+            o_rText << (*it);
+        }
+        else
+        {
+            o_rText << i_rGivenArguments[nActiveParamNr];
+            nActiveParamNr = -1;
+        }
+
+        Do_bStringify_end(o_rText, bSwitch_Stringify);
+        o_rText << " ";
+    }
+    o_rText.seekp(-1, csv::cur);
+}
+
+
+
+}   // end namespace cpp
+=====================================================================
+Found a 23 line (156 tokens) duplication in the following files: 
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+
+        span_pattern_filter_rgb_bilinear(alloc_type& alloc,
+                                         const rendering_buffer& src, 
+                                         interpolator_type& intr) :
+            base_type(alloc, src, color_type(0,0,0,0), intr, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 30 line (156 tokens) duplication in the following files: 
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            int fg[4];
+
+            unsigned   diameter     = base_type::filter().diameter();
+            int        start        = base_type::filter().start();
+            const int16* weight_array = base_type::filter().weight_array();
+
+            color_type* span = base_type::allocator().span();
+
+            int x_count; 
+            int weight_y;
+
+            do
+            {
+                base_type::interpolator().coordinates(&x, &y);
+
+                x -= base_type::filter_dx_int();
+                y -= base_type::filter_dy_int();
+
+                int x_hr = x; 
+                int y_hr = y; 
+
+                int x_fract = x_hr & image_subpixel_mask;
+                unsigned y_count = diameter;
+
+                int y_lr  = m_wrap_mode_y((y >> image_subpixel_shift) + start);
+                int x_int = (x >> image_subpixel_shift) + start;
+                int x_lr;
+
+                y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 24 line (156 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_gouraud_gray.h
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_gouraud_rgba.h
+
+        span_gouraud_rgba(alloc_type& alloc, 
+                          const color_type& c1, 
+                          const color_type& c2, 
+                          const color_type& c3,
+                          double x1, double y1, 
+                          double x2, double y2,
+                          double x3, double y3, 
+                          double d = 0) : 
+            base_type(alloc, c1, c2, c3, x1, y1, x2, y2, x3, y3, d)
+        {}
+
+        //--------------------------------------------------------------------
+        void prepare(unsigned max_span_len)
+        {
+            base_type::prepare(max_span_len);
+
+            coord_type coord[3];
+            arrange_vertices(coord);
+
+            m_y2 = int(coord[1].y);
+
+            m_swap = calc_point_location(coord[0].x, coord[0].y, 
+                                         coord[2].x, coord[2].y,
+                                         coord[1].x, coord[1].y) < 0.0;
+=====================================================================
+Found a 23 line (156 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readFixedTextModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x1 | 0x2 | 0x4 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readBorderProps( this, aStyle ))
+        aStyle._set |= 0x4;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+
+    // collect elements
+    readDefaults();
+=====================================================================
+Found a 8 line (156 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydlnk_curs.h
+
+static char copydlnk_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00,
+=====================================================================
+Found a 6 line (156 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+
+ 0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 24 line (156 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salprn.h
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salprn.h
+
+    virtual ~WinSalInfoPrinter();
+
+	virtual SalGraphics*			GetGraphics();
+	virtual void					ReleaseGraphics( SalGraphics* pGraphics );
+	virtual BOOL					Setup( SalFrame* pFrame, ImplJobSetup* pSetupData );
+	virtual BOOL					SetPrinterData( ImplJobSetup* pSetupData );
+	virtual BOOL					SetData( ULONG nFlags, ImplJobSetup* pSetupData );
+	virtual void					GetPageInfo( const ImplJobSetup* pSetupData,
+                                                 long& rOutWidth, long& rOutHeight,
+                                                 long& rPageOffX, long& rPageOffY,
+                                                 long& rPageWidth, long& rPageHeight );
+	virtual ULONG					GetCapabilities( const ImplJobSetup* pSetupData, USHORT nType );
+	virtual ULONG					GetPaperBinCount( const ImplJobSetup* pSetupData );
+	virtual String					GetPaperBinName( const ImplJobSetup* pSetupData, ULONG nPaperBin );
+    virtual void					InitPaperFormats( const ImplJobSetup* pSetupData );
+    virtual int					GetLandscapeAngle( const ImplJobSetup* pSetupData );
+    virtual DuplexMode          GetDuplexMode( const ImplJobSetup* pSetupData );
+};
+
+// -----------------
+// - WinSalPrinter -
+// -----------------
+
+class WinSalPrinter : public SalPrinter
+=====================================================================
+Found a 50 line (156 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+    virtual void			BeginSetClipRegion( ULONG nCount );
+    // all rectangles were added and the clip region should be set now
+    virtual void			EndSetClipRegion();
+
+    // set the line color to transparent (= don't draw lines)
+    virtual void			SetLineColor();
+    // set the line color to a specific color
+    virtual void			SetLineColor( SalColor nSalColor );
+    // set the fill color to transparent (= don't fill)
+    virtual void			SetFillColor();
+    // set the fill color to a specific color, shapes will be
+    // filled accordingly
+    virtual void          	SetFillColor( SalColor nSalColor );
+    // enable/disable XOR drawing
+    virtual void			SetXORMode( BOOL bSet );
+    // set line color for raster operations
+    virtual void			SetROPLineColor( SalROPColor nROPColor );
+    // set fill color for raster operations
+    virtual void			SetROPFillColor( SalROPColor nROPColor );
+    // set the text color to a specific color
+    virtual void			SetTextColor( SalColor nSalColor );
+    // set the font
+    virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
+    // get the current font's etrics
+    virtual void			GetFontMetric( ImplFontMetricData* );
+    // get kernign pairs of the current font
+    // return only PairCount if (pKernPairs == NULL)
+    virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+    // get the repertoire of the current font
+    virtual ImplFontCharMap* GetImplFontCharMap() const;
+    // graphics must fill supplied font list
+    virtual void			GetDevFontList( ImplDevFontList* );
+    // graphics should call ImplAddDevFontSubstitute on supplied
+    // OutputDevice for all its device specific preferred font substitutions
+    virtual void			GetDevFontSubstList( OutputDevice* );
+    virtual bool			AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
+    // CreateFontSubset: a method to get a subset of glyhps of a font
+    // inside a new valid font file
+    // returns TRUE if creation of subset was successfull
+    // parameters: rToFile: contains a osl file URL to write the subset to
+    //             pFont: describes from which font to create a subset
+    //             pGlyphIDs: the glyph ids to be extracted
+    //             pEncoding: the character code corresponding to each glyph
+    //             pWidths: the advance widths of the correspoding glyphs (in PS font units)
+    //             nGlyphs: the number of glyphs
+    //             rInfo: additional outgoing information
+    // implementation note: encoding 0 with glyph id 0 should be added implicitly
+    // as "undefined character"
+    virtual BOOL			CreateFontSubset( const rtl::OUString& rToFile,
+                                              ImplFontData* pFont,
+=====================================================================
+Found a 31 line (156 tokens) duplication in the following files: 
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svptext.cxx
+Starting at line 1287 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salgdi3.cxx
+
+    rMgr.getFontList( aList );
+    for( it = aList.begin(); it != aList.end(); ++it )
+    {
+        if( !rMgr.getFontFastInfo( *it, aInfo ) )
+            continue;
+
+        // the GlyphCache must not bother with builtin fonts because
+        // it cannot access or use them anyway
+        if( aInfo.m_eType == psp::fonttype::Builtin )
+            continue;
+
+        // normalize face number to the GlyphCache
+        int nFaceNum = rMgr.getFontFaceNumber( aInfo.m_nID );
+        if( nFaceNum < 0 )
+            nFaceNum = 0;
+
+        // for fonts where extra kerning info can be provided on demand
+        // an ExtraKernInfo object is supplied
+        const ExtraKernInfo* pExtraKernInfo = NULL;
+        if( aInfo.m_eType == psp::fonttype::Type1 )
+            pExtraKernInfo = new PspKernInfo( *it );
+
+        // inform GlyphCache about this font provided by the PsPrint subsystem
+        ImplDevFontAttributes aDFA = PspGraphics::Info2DevFontAttributes( aInfo );
+        aDFA.mnQuality += 4096;
+        const rtl::OString& rFileName = rMgr.getFontFileSysPath( aInfo.m_nID );
+        rGC.AddFontFile( rFileName, nFaceNum, aInfo.m_nID, aDFA, pExtraKernInfo );
+   }
+
+    // announce glyphcache fonts
+    rGC.AnnounceFonts( pList );
+=====================================================================
+Found a 21 line (156 tokens) duplication in the following files: 
+Starting at line 258 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+
+    virtual BOOL			unionClipRegion( long nX, long nY, long nWidth, long nHeight );
+    virtual void			EndSetClipRegion();
+
+    virtual void			SetLineColor();
+    virtual void			SetLineColor( SalColor nSalColor );
+    virtual void			SetFillColor();
+    virtual void          	SetFillColor( SalColor nSalColor );
+    virtual void			SetXORMode( BOOL bSet );
+    virtual void			SetROPLineColor( SalROPColor nROPColor );
+    virtual void			SetROPFillColor( SalROPColor nROPColor );
+
+    virtual void			SetTextColor( SalColor nSalColor );
+    virtual USHORT          SetFont( ImplFontSelectData*, int nFallbackLevel );
+    virtual void			GetFontMetric( ImplFontMetricData* );
+    virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+    virtual ImplFontCharMap* GetImplFontCharMap() const;
+    virtual void			GetDevFontList( ImplDevFontList* );
+    virtual void			GetDevFontSubstList( OutputDevice* );
+    virtual bool			AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
+    virtual BOOL			CreateFontSubset( const rtl::OUString& rToFile,
+                                              ImplFontData* pFont,
+=====================================================================
+Found a 26 line (156 tokens) duplication in the following files: 
+Starting at line 322 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_docmgr.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_docmgr.cxx
+
+                RTL_CONSTASCII_STRINGPARAM( "OnSaveAsDone" ) ) )
+    {
+        if ( isOfficeDocument( Event.Source ) )
+        {
+            osl::MutexGuard aGuard( m_aMtx );
+
+            uno::Reference< frame::XModel >
+                 xModel( Event.Source, uno::UNO_QUERY );
+            OSL_ENSURE( xModel.is(), "Got no frame::XModel!" );
+
+            DocumentList::iterator it = m_aDocs.begin();
+            while ( it != m_aDocs.end() )
+            {
+                if ( (*it).second.xModel == xModel )
+                {
+                    // Storage gets exchanged while saving.
+                    uno::Reference< document::XStorageBasedDocument >
+                        xDoc( Event.Source, uno::UNO_QUERY );
+                    OSL_ENSURE( xDoc.is(),
+                                "Got no document::XStorageBasedDocument!" );
+
+                    uno::Reference< embed::XStorage > xStorage
+                        = xDoc->getDocumentStorage();
+                    OSL_ENSURE( xDoc.is(), "Got no document storage!" );
+
+                    (*it).second.xStorage = xStorage;
+=====================================================================
+Found a 28 line (156 tokens) duplication in the following files: 
+Starting at line 1206 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+Starting at line 1521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+
+    if( aPosArr.Count() )
+    {
+        SwTableLines& rLns = pTable->GetTabLines();
+        USHORT nLastPos = 0;
+        for( n = 0; n < aPosArr.Count(); ++n )
+        {
+            SwTableBoxFmt *pNewFmt = pDoc->MakeTableBoxFmt();
+            pNewFmt->SetAttr( SwFmtFrmSize( ATT_VAR_SIZE,
+                                                aPosArr[ n ] - nLastPos ));
+            for( USHORT nLines = 0; nLines < rLns.Count(); ++nLines )
+                //JP 24.06.98: hier muss ein Add erfolgen, da das BoxFormat
+                //              von der rufenden Methode noch gebraucht wird!
+                pNewFmt->Add( rLns[ nLines ]->GetTabBoxes()[ n ] );
+
+            nLastPos = aPosArr[ n ];
+        }
+
+        // damit die Tabelle die richtige Groesse bekommt, im BoxFormat die
+        // Groesse nach "oben" transportieren.
+        ASSERT( !pBoxFmt->GetDepends(), "wer ist in dem Format noch angemeldet" );
+        pBoxFmt->SetAttr( SwFmtFrmSize( ATT_VAR_SIZE, nLastPos ));
+    }
+    else
+        pBoxFmt->SetAttr( SwFmtFrmSize( ATT_VAR_SIZE, USHRT_MAX / nMaxBoxes ));
+
+    // das wars doch wohl ??
+    return pTblNd;
+}
+=====================================================================
+Found a 19 line (156 tokens) duplication in the following files: 
+Starting at line 2170 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4966 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x6D, 0x73, 0x2E, 0x43, 0x68, 0x65, 0x63, 0x6B,
+		0x42, 0x6F, 0x78, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+		0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+	};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+=====================================================================
+Found a 23 line (156 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/copied/staticbaseurl.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/copied/staticbaseurl.cxx
+
+    String const & rTheAbsURIRef,
+    INetURLObject::EncodeMechanism eEncodeMechanism,
+    INetURLObject::DecodeMechanism eDecodeMechanism, rtl_TextEncoding eCharset,
+    INetURLObject::FSysStyle eStyle)
+{
+    INetURLObject const & rINetURLObject = BaseURIRef::get();
+    com::sun::star::uno::Any aAny;
+    if ( rINetURLObject.GetProtocol() != INET_PROT_NOT_VALID )
+        aAny = GetCasePreservedURL(rINetURLObject);
+    rtl::OUString aBaseURL;
+    sal_Bool success = (aAny >>= aBaseURL);
+    if (success) {
+        INetURLObject aAbsURIRef(rTheAbsURIRef,eEncodeMechanism,eCharset);
+        com::sun::star::uno::Any aAny2(GetCasePreservedURL(aAbsURIRef));
+        rtl::OUString aAbsURL;
+        success = (aAny2 >>= aAbsURL);
+        if (success) {
+            return INetURLObject::GetRelURL(
+                aBaseURL, aAbsURL, INetURLObject::WAS_ENCODED, eDecodeMechanism,
+                RTL_TEXTENCODING_UTF8, eStyle);
+        } else {
+            return INetURLObject::GetRelURL(
+                aBaseURL, rTheAbsURIRef, eEncodeMechanism, eDecodeMechanism,
+=====================================================================
+Found a 9 line (156 tokens) duplication in the following files: 
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN("HeaderText"),					WID_PAGE_HEADERTEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("IsFooterVisible"),				WID_PAGE_FOOTERVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("FooterText"),					WID_PAGE_FOOTERTEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("IsPageNumberVisible"),			WID_PAGE_PAGENUMBERVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("IsDateTimeVisible"),			WID_PAGE_DATETIMEVISIBLE, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("IsDateTimeFixed"),				WID_PAGE_DATETIMEFIXED, &::getBooleanCppuType(),					0, 0},
+		{ MAP_CHAR_LEN("DateTimeText"),					WID_PAGE_DATETIMETEXT, &::getCppuType((const OUString*)0),				0,	0},
+		{ MAP_CHAR_LEN("DateTimeFormat"),				WID_PAGE_DATETIMEFORMAT, &::getCppuType((const sal_Int32*)0),			0,	0},
+		{0,0,0,0,0,0}
+=====================================================================
+Found a 24 line (156 tokens) duplication in the following files: 
+Starting at line 2736 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/dapiuno.cxx
+Starting at line 2789 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/dapiuno.cxx
+
+    if (!bFound)
+    {
+        uno::Reference<container::XNamed> xNamed(aElement, uno::UNO_QUERY);
+        if (xNamed.is())
+        {
+            ScFieldGroup aGroup;
+            aGroup.sName = xNamed->getName();
+            uno::Reference<container::XIndexAccess> xIndex(xNamed, uno::UNO_QUERY);
+            if (xIndex.is())
+            {
+                sal_Int32 nCount(xIndex->getCount());
+                for (sal_Int32 i = 0; i < nCount; ++i)
+                {
+                    uno::Reference<container::XNamed> xItem(xIndex->getByIndex(i), uno::UNO_QUERY);
+                    if (xItem.is())
+                        aGroup.aMembers.push_back(xNamed->getName());
+                    else
+                        throw lang::IllegalArgumentException();
+                }
+            }
+            else
+                throw lang::IllegalArgumentException();
+
+            aGroups.push_back(aGroup);
+=====================================================================
+Found a 24 line (156 tokens) duplication in the following files: 
+Starting at line 2573 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+Starting at line 2645 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+
+    		const ScMemberSortOrder& rGlobalOrder = pThisLevel->GetGlobalOrder();
+
+            ScDPGroupCompare aCompare( pResultData, rInitState, nDimSource );
+
+			ScDPMembers* pMembers = pThisLevel->GetMembersObject();
+			long nMembCount = pMembers->getCount();
+			for ( long i=0; i<nMembCount; i++ )
+			{
+        	    long nSorted = rGlobalOrder.empty() ? i : rGlobalOrder[i];
+
+				ScDPMember* pMember = pMembers->getByIndex(nSorted);
+                if ( aCompare.IsIncluded( *pMember ) )
+                {
+    				ScDPResultMember* pNew = new ScDPResultMember( pResultData, pThisDim,
+    												pThisLevel, pMember, FALSE );
+                    maMemberArray.push_back( pNew );
+
+                    ScDPItemData aMemberData;
+                    pMember->FillItemData( aMemberData );
+
+                    // honour order of maMemberArray and only insert if it does not
+                    // already exist
+                    if ( maMemberHash.end() == maMemberHash.find( aMemberData ) )
+                        maMemberHash.insert( std::pair< const ScDPItemData, ScDPResultMember *>( aMemberData, pNew ) );
+=====================================================================
+Found a 40 line (156 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+};
+
+// -----------------------------------------------------------------------------
+// just used to test socket::close() when accepting
+class AcceptorThread : public Thread
+{
+	::osl::AcceptorSocket asAcceptorSocket;
+	::rtl::OUString aHostIP;
+	sal_Bool bOK;
+protected:	
+	void SAL_CALL run( )
+	{
+		::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
+		::osl::StreamSocket ssStreamConnection;
+		
+		asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
+		sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+		if  ( sal_True != bOK1 )
+		{
+			t_print("# AcceptorSocket bind address failed.\n" ) ;
+			return;
+		}
+		sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+		if  ( sal_True != bOK2 )
+		{ 
+			t_print("# AcceptorSocket listen address failed.\n" ) ;
+			return;
+		}
+
+		asAcceptorSocket.enableNonBlockingMode( sal_False );
+		
+		oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
+		if (eResult != osl_Socket_Ok )
+		{
+			bOK = sal_True;
+			t_print("AcceptorThread: acceptConnection failed! \n");			
+		}	
+	}
+public:
+	AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString & aBindIP )
+=====================================================================
+Found a 24 line (156 tokens) duplication in the following files: 
+Starting at line 1907 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1979 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+		if (! addLine(pProfile, Line))
+			return (sal_False);
+	}
+
+	for (i = 0; i < pProfile->m_NoLines; i++)
+	{
+		pStr = (sal_Char *)stripBlanks(pProfile->m_Lines[i], NULL);
+
+		if ((*pStr == '\0') || (*pStr == ';'))
+			continue;
+
+		if ((*pStr != '[') || ((pChar = strrchr(pStr, ']')) == NULL) ||
+			((pChar - pStr) <= 2))
+		{
+			/* insert entry */
+
+			if (pProfile->m_NoSections < 1)
+				continue;
+
+			if ((pChar = strchr(pStr, '=')) == NULL)
+				pChar = pStr + strlen(pStr);
+
+			if (! addEntry(pProfile, &pProfile->m_Sections[pProfile->m_NoSections - 1],
+						   i, pStr, pChar - pStr))
+=====================================================================
+Found a 39 line (156 tokens) duplication in the following files: 
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/nlsupport.c
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/ulfconv/ulfconv.cxx
+
+static int
+_pair_compare (const char *key, const _pair *pair)
+{
+    int result = rtl_str_compareIgnoreAsciiCase( key, pair->key );
+    return result;
+}
+
+/*****************************************************************************
+ * binary search on encoding tables
+ *****************************************************************************/
+
+static const _pair*
+_pair_search (const char *key, const _pair *base, unsigned int member )
+{
+    unsigned int lower = 0;
+    unsigned int upper = member;
+    unsigned int current;
+    int comparison;
+
+    /* check for validity of input */
+    if ( (key == NULL) || (base == NULL) || (member == 0) )
+        return NULL;
+
+    /* binary search */
+    while ( lower < upper )
+    {
+        current = (lower + upper) / 2;
+        comparison = _pair_compare( key, base + current );
+        if (comparison < 0)
+            upper = current;
+        else
+        if (comparison > 0)
+            lower = current + 1;
+        else
+            return base + current;
+    }
+
+    return NULL;
+}
+=====================================================================
+Found a 33 line (156 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldsp.cxx
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldsp.cxx
+
+		return xRes;
+	
+	// search for entry with that language
+    SeqLangSvcEntry_Spell *pEntry = aSvcList.Get( nLanguage );
+	
+	if (!pEntry)
+	{
+#ifdef LINGU_EXCEPTIONS
+		throw IllegalArgumentException();
+#endif
+	}
+	else
+	{
+		OUString aChkWord( rWord );
+        Locale aLocale( CreateLocale( nLanguage ) );
+
+        // replace typographical apostroph by ascii apostroph
+        String aSingleQuote( GetLocaleDataWrapper( nLanguage ).getQuotationMarkEnd() );
+        DBG_ASSERT( 1 == aSingleQuote.Len(), "unexpectend length of quotation mark" );
+        if (aSingleQuote.Len())
+            aChkWord = aChkWord.replace( aSingleQuote.GetChar(0), '\'' );
+
+        RemoveHyphens( aChkWord );
+		if (IsIgnoreControlChars( rProperties, GetPropSet() ))
+			RemoveControlChars( aChkWord );
+
+		INT32 nLen = pEntry->aSvcRefs.getLength();
+		DBG_ASSERT( nLen == pEntry->aSvcImplNames.getLength(), 
+				"lng : sequence length mismatch");
+		DBG_ASSERT( pEntry->aFlags.nLastTriedSvcIndex < nLen, 
+				"lng : index out of range");
+
+		INT32 i = 0;
+=====================================================================
+Found a 22 line (156 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+
+      pCC  = aDicts[k].apCC;
+  
+      // first handle smart quotes both single and double
+      OUStringBuffer rBuf(aWord);
+      sal_Int32 nc = rBuf.getLength();
+      sal_Unicode ch;
+      for (sal_Int32 ix=0; ix < nc; ix++) {
+	  ch = rBuf.charAt(ix);
+          if ((ch == 0x201C) || (ch == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
+          if ((ch == 0x2018) || (ch == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
+      }
+      OUString nWord(rBuf.makeStringAndClear());
+
+      // now convert word to all lowercase for pattern recognition
+      OUString nTerm(makeLowerCase(nWord, pCC));
+
+      // now convert word to needed encoding
+      OString encWord(OU2ENC(nTerm,aEnc));
+
+      wordlen = encWord.getLength();
+      lcword = new char[wordlen+1];
+      hyphens = new char[wordlen+5];
+=====================================================================
+Found a 6 line (156 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
+=====================================================================
+Found a 6 line (156 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+
+ 0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 6 line (156 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
+=====================================================================
+Found a 6 line (156 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+
+ 0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 33 line (156 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/generictoolbarcontroller.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/generictoolboxcontroller.cxx
+
+void SAL_CALL GenericToolboxController::execute( sal_Int16 /*KeyModifier*/ ) 
+throw ( RuntimeException )
+{
+    Reference< XDispatch >       xDispatch;
+    Reference< XURLTransformer > xURLTransformer;
+    OUString                     aCommandURL;
+    
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        if ( m_bInitialized && 
+             m_xFrame.is() &&
+             m_xServiceManager.is() &&
+             m_aCommandURL.getLength() )
+        {
+            xURLTransformer = Reference< XURLTransformer >( m_xServiceManager->createInstance( 
+                                                                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                            UNO_QUERY );
+            
+            aCommandURL = m_aCommandURL;
+            URLToDispatchMap::iterator pIter = m_aListenerMap.find( m_aCommandURL );
+            if ( pIter != m_aListenerMap.end() )
+                xDispatch = pIter->second;
+        }
+    }
+
+    if ( xDispatch.is() && xURLTransformer.is() )
+    {
+        com::sun::star::util::URL aTargetURL;
+        Sequence<PropertyValue>   aArgs;
+=====================================================================
+Found a 18 line (156 tokens) duplication in the following files: 
+Starting at line 1140 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/bibliography/datman.cxx
+Starting at line 1412 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/bibliography/datman.cxx
+
+				Reference< XDatabaseMetaData >	xMetaData = xConnection->getMetaData();
+				aQuoteChar = xMetaData->getIdentifierQuoteString();
+
+				Reference< XMultiServiceFactory > xFactory(xConnection, UNO_QUERY);
+                if ( xFactory.is() )
+				    m_xParser.set( xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.SingleSelectQueryComposer" ) ) ), UNO_QUERY );
+
+				::rtl::OUString aString(C2U("SELECT * FROM "));
+
+                ::rtl::OUString sCatalog, sSchema, sName;
+                ::dbtools::qualifiedNameComponents( xMetaData, aActiveDataTable, sCatalog, sSchema, sName, ::dbtools::eInDataManipulation );
+                aString += ::dbtools::composeTableNameForSelect( xConnection, sCatalog, sSchema, sName );
+
+                m_xParser->setElementaryQuery(aString);
+
+				BibConfig* pConfig = BibModul::GetConfig();
+				pConfig->setQueryField(getQueryField());
+				startQueryWith(pConfig->getQueryText());
+=====================================================================
+Found a 8 line (156 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/copydata_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copydlnk_curs.h
+
+static char copydlnk_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+   0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
+   0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
+   0xfe, 0x03, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
+   0x66, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
+   0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, 0x53, 0x00, 0x00,
+   0x28, 0xa3, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00,
+=====================================================================
+Found a 21 line (156 tokens) duplication in the following files: 
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HViews.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YViews.cxx
+
+	Reference<XConnection> xConnection = static_cast<OMySQLCatalog&>(m_rParent).getConnection();
+
+	::rtl::OUString aSql	= ::rtl::OUString::createFromAscii("CREATE VIEW ");
+	::rtl::OUString aQuote	= xConnection->getMetaData()->getIdentifierQuoteString(  );
+	::rtl::OUString sSchema,sCommand;
+
+	aSql += ::dbtools::composeTableName( m_xMetaData, descriptor, ::dbtools::eInTableDefinitions, false, false, true );
+
+	aSql += ::rtl::OUString::createFromAscii(" AS ");
+	descriptor->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_COMMAND)) >>= sCommand;
+	aSql += sCommand;
+
+    Reference< XStatement > xStmt = xConnection->createStatement(  );
+	if ( xStmt.is() )
+	{
+		xStmt->execute(aSql);
+		::comphelper::disposeComponent(xStmt);
+	}
+
+	// insert the new view also in the tables collection
+	OTables* pTables = static_cast<OTables*>(static_cast<OMySQLCatalog&>(m_rParent).getPrivateTables());
+=====================================================================
+Found a 33 line (156 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HCatalog.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YCatalog.cxx
+
+void OMySQLCatalog::refreshViews()
+{
+	Sequence< ::rtl::OUString > aTypes(1);
+	aTypes[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VIEW"));
+
+	sal_Bool bSupportsViews = sal_False;
+	try
+	{
+		Reference<XResultSet> xRes = m_xMetaData->getTableTypes();
+		Reference<XRow> xRow(xRes,UNO_QUERY);
+		while ( xRow.is() && xRes->next() )
+		{
+			if ( (bSupportsViews = xRow->getString(1).equalsIgnoreAsciiCase(aTypes[0])) )
+			{
+				break;
+			}
+		}
+	}
+	catch(const SQLException&)
+	{
+	}
+
+	TStringVector aVector;
+	if ( bSupportsViews )
+		refreshObjects(aTypes,aVector);
+
+	if ( m_pViews )
+		m_pViews->reFill(aVector);
+	else
+		m_pViews = new OViews(m_xMetaData,*this,m_aMutex,aVector);
+}
+// -------------------------------------------------------------------------
+void OMySQLCatalog::refreshGroups()
+=====================================================================
+Found a 16 line (156 tokens) duplication in the following files: 
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaData.cxx
+Starting at line 1167 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getSelectValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getInsertValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getDeleteValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getUpdateValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getCreateValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getReadValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getAlterValue();
+				aRows.push_back(aRow);
+				aRow[6] = ::connectivity::ODatabaseMetaDataResultSet::getDropValue();
+				aRows.push_back(aRow);
+=====================================================================
+Found a 33 line (156 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/cli_ure/source/climaker/climaker_app.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
+
+bool isOption( OptionInfo const * option_info, sal_uInt32 * pIndex )
+{
+    OSL_ASSERT( option_info != 0 );
+    if (osl_getCommandArgCount() <= *pIndex)
+        return false;
+    
+    OUString arg;
+    osl_getCommandArg( *pIndex, &arg.pData );
+    sal_Int32 len = arg.getLength();
+    
+    if (len < 2 || arg[ 0 ] != '-')
+        return false;
+    
+    if (len == 2 && arg[ 1 ] == option_info->m_short_option)
+    {
+        ++(*pIndex);
+#if OSL_DEBUG_LEVEL > 1
+        OSL_TRACE(
+            __FILE__": identified option \'%c\'", option_info->m_short_option );
+#endif
+        return true;
+    }
+    if (arg[ 1 ] == '-' && rtl_ustr_ascii_compare(
+            arg.pData->buffer + 2, option_info->m_name ) == 0)
+    {
+        ++(*pIndex);
+#if OSL_DEBUG_LEVEL > 1
+        OSL_TRACE( __FILE__": identified option \'%s\'", option_info->m_name );
+#endif
+        return true;
+    }
+    return false;
+}
+=====================================================================
+Found a 22 line (156 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 28 line (156 tokens) duplication in the following files: 
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
+          "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+=====================================================================
+Found a 36 line (156 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+                         pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 22 line (156 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 36 line (156 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+			    pCppStack += sizeof(sal_Int32); // extra long
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, 
+                                        pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 28 line (156 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pThis), "m"(nVtableIndex),
+          "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+=====================================================================
+Found a 36 line (156 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+			    pCppStack += sizeof(sal_Int32); // extra long
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, 
+                                        pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 28 line (156 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+        : "m"(nStackLongs), "m"(pStackLongs), "m"(pThis), "m"(nVtableIndex),
+          "m"(eax), "m"(edx), "m"(stackptr)
+        : "eax", "edx" );
+	switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+=====================================================================
+Found a 35 line (156 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			    break;
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 22 line (156 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+=====================================================================
+Found a 30 line (156 tokens) duplication in the following files: 
+Starting at line 1974 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/basmgr/basmgr.cxx
+Starting at line 2119 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/basmgr/basmgr.cxx
+
+	DialogContainer_Impl( StarBASIC* pLib )
+		:mpLib( pLib ) {}
+
+    // Methods XElementAccess
+    virtual Type SAL_CALL getElementType()
+		throw(RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements()
+		throw(RuntimeException);
+
+    // Methods XNameAccess
+    virtual Any SAL_CALL getByName( const OUString& aName )
+		throw(NoSuchElementException, WrappedTargetException, RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getElementNames()
+		throw(RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
+		throw(RuntimeException);
+
+    // Methods XNameReplace
+    virtual void SAL_CALL replaceByName( const OUString& aName, const Any& aElement )
+		throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException);
+
+    // Methods XNameContainer
+    virtual void SAL_CALL insertByName( const OUString& aName, const Any& aElement )
+		throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removeByName( const OUString& Name )
+		throw(NoSuchElementException, WrappedTargetException, RuntimeException);
+};
+
+// Methods XElementAccess
+Type DialogContainer_Impl::getElementType()
+=====================================================================
+Found a 19 line (155 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlSection.cxx
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlTable.cxx
+
+    DBG_CTOR( rpt_OXMLTable,NULL);
+    OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
+	const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
+	const SvXMLTokenMap& rTokenMap = rImport.GetSectionElemTokenMap();
+
+	const sal_Int16 nLength = (m_xSection.is() && _xAttrList.is()) ? _xAttrList->getLength() : 0;
+    static const ::rtl::OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
+    try
+	{
+	    for(sal_Int16 i = 0; i < nLength; ++i)
+	    {
+		    rtl::OUString sLocalName;
+		    const rtl::OUString sAttrName = _xAttrList->getNameByIndex( i );
+		    const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
+		    rtl::OUString sValue = _xAttrList->getValueByIndex( i );
+
+		    switch( rTokenMap.Get( nPrefix, sLocalName ) )
+		    {
+                case XML_TOK_VISIBLE:
+=====================================================================
+Found a 22 line (155 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            color_type* span = base_type::allocator().span();
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+            int radius_x = (diameter * base_type::m_rx) >> 1;
+            int radius_y = (diameter * base_type::m_ry) >> 1;
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                base_type::interpolator().coordinates(&x, &y);
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 16 line (155 tokens) duplication in the following files: 
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cpptypemaker.cxx
+Starting at line 610 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/javatypemaker.cxx
+
+void printServiceMembers(std::ostream & o,
+    ProgramOptions const & options, TypeManager const & manager,
+    typereg::Reader const & reader, OString const & type,
+    OString const & delegate)
+{
+    for ( sal_uInt16 i = 0; i < reader.getReferenceCount(); ++i ) {
+        OString referenceType(
+            codemaker::convertString(
+                reader.getReferenceTypeName(i)).replace('/', '.'));
+        
+        if ( reader.getReferenceSort(i) == RT_REF_SUPPORTS ) {
+            o << "\n// supported interface " << referenceType.getStr() << "\n";
+            generateDocumentation(o, options, manager, referenceType, delegate);
+        } else if ( reader.getReferenceSort(i) == RT_REF_EXPORTS ) {
+            o << "\n// exported service " << referenceType.getStr() << "\n";
+            generateDocumentation(o, options, manager, referenceType, delegate);
+=====================================================================
+Found a 6 line (155 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
+=====================================================================
+Found a 35 line (155 tokens) duplication in the following files: 
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svptext.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salgdi3.cxx
+
+}
+
+// ===========================================================================
+
+// PspKernInfo allows on-demand-querying of psprint provided kerning info (#i29881#)
+class PspKernInfo : public ExtraKernInfo
+{
+public:
+    PspKernInfo( int nFontId ) : ExtraKernInfo(nFontId) {}
+protected:
+    virtual void Initialize() const;
+};
+
+//--------------------------------------------------------------------------
+
+void PspKernInfo::Initialize() const
+{
+    mbInitialized = true;
+
+    // get the kerning pairs from psprint
+    const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+    typedef std::list< psp::KernPair > PspKernPairs;
+    const PspKernPairs& rKernPairs = rMgr.getKernPairs( mnFontId );
+    if( rKernPairs.empty() )
+        return;
+
+    // feed psprint's kerning list into a lookup-friendly container
+    maUnicodeKernPairs.resize( rKernPairs.size() );
+    PspKernPairs::const_iterator it = rKernPairs.begin();
+    for(; it != rKernPairs.end(); ++it )
+    {
+        ImplKernPairData aKernPair = { it->first, it->second, it->kern_x };
+        maUnicodeKernPairs.insert( aKernPair );
+    }
+}
+=====================================================================
+Found a 22 line (155 tokens) duplication in the following files: 
+Starting at line 7036 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 7168 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+        m_aTransparentObjects.back().m_nExtGStateObject = createObject();
+
+        OStringBuffer aObjName( 16 );
+        aObjName.append( "Tr" );
+        aObjName.append( m_aTransparentObjects.back().m_nObject );
+        OString aTrName( aObjName.makeStringAndClear() );
+        aObjName.append( "EGS" );
+        aObjName.append( m_aTransparentObjects.back().m_nExtGStateObject );
+        OString aExtName( aObjName.makeStringAndClear() );
+
+        OStringBuffer aLine( 80 );
+        // insert XObject
+        aLine.append( "q /" );
+        aLine.append( aExtName );
+        aLine.append( " gs /" );
+        aLine.append( aTrName );
+        aLine.append( " Do Q\n" );
+        writeBuffer( aLine.getStr(), aLine.getLength() );
+        
+        pushResource( ResXObject, aTrName, m_aTransparentObjects.back().m_nObject );
+        pushResource( ResExtGState, aExtName, m_aTransparentObjects.back().m_nExtGStateObject );
+    }
+=====================================================================
+Found a 29 line (155 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static beans::Property aPropertyInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory properties
+		///////////////////////////////////////////////////////////////
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND
+		)
+=====================================================================
+Found a 32 line (155 tokens) duplication in the following files: 
+Starting at line 1122 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+Starting at line 1279 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+
+        rView.SfxViewShell::Print( rProgress, bIsAPI ); // ggf Basic-Macro ausfuehren
+        if( rOpt.IsPrintSingleJobs() && bRet )
+        {
+            //rOpt.bJobStartet = FALSE;
+            bRet = FALSE;
+        }
+
+        bMergeLock = TRUE;
+        if(rOpt.IsPrintProspect())
+        {
+            if( pPrt->IsJobActive() || pPrt->StartJob( rOpt.GetJobName() ))
+            {
+                pSh->PrintProspect( rOpt, rProgress,  rOpt.IsPrintProspect_RTL() );
+                bRet = TRUE;
+            }
+        }
+        else if( pSh->Prt( rOpt, &rProgress ) )
+            bRet = TRUE;
+        bMergeLock = FALSE;
+
+        if( !pPrt->IsJobActive() )
+        {
+            bUserBreak = TRUE;
+            bRet = FALSE;
+            break;
+        }
+        if( !rOpt.IsPrintSingleJobs() )
+        {
+            String& rJNm = (String&)rOpt.GetJobName();
+            rJNm.Erase();
+        }
+    }
+=====================================================================
+Found a 24 line (155 tokens) duplication in the following files: 
+Starting at line 760 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/fntcap.cxx
+Starting at line 800 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/fntcap.cxx
+
+                    if( bCaseMapLengthDiffers )
+                    {
+                        // Build an own 'changed' string for the given part of the
+                        // source string and use it. That new string may differ in length
+                        // from the source string.
+                        const XubString aSnippet( rOldText, nOldPos, nTmp - nOldPos);
+                        aNewText = CalcCaseMap( aSnippet );
+                        aCapInf.nIdx = nOldPos;
+                        aCapInf.nLen = nTmp - nOldPos;
+                        rDo.GetInf().SetIdx( 0 );
+                        rDo.GetInf().SetLen( aNewText.Len() );
+                        rDo.GetInf().SetText( aNewText );
+                    }
+                    else
+                    {
+                        rDo.GetInf().SetIdx( nOldPos );
+                        rDo.GetInf().SetLen( nTmp - nOldPos );
+                    }
+
+					rDo.GetInf().SetOut( *pOutSize );
+					aPartSize = pBigFont->GetTextSize( rDo.GetInf() );
+					nKana += rDo.GetInf().GetKanaDiff();
+					rDo.GetInf().SetOut( *pOldOut );
+					if( !bWordWise && rDo.GetInf().GetSpace() )
+=====================================================================
+Found a 35 line (155 tokens) duplication in the following files: 
+Starting at line 3724 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3498 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// position
+				aTranslate.setX(ImplMMToTwips(aTranslate.getX()));
+				aTranslate.setY(ImplMMToTwips(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplMMToTwips(aScale.getX()));
+				aScale.setY(ImplMMToTwips(aScale.getY()));
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRSetBaseGeometry: Missing unit translation to PoolMetric!");
+			}
+		}
+	}
+
+	// if anchor is used, make position relative to it
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate += basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// build BaseRect
+	Point aPoint(FRound(aTranslate.getX()), FRound(aTranslate.getY()));
+=====================================================================
+Found a 29 line (155 tokens) duplication in the following files: 
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+Starting at line 729 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+
+		if ( !pOld || !( *(const XLineEndCenterItem*)pOld == aItem ) )
+		{
+			rAttrs.Put( aItem );
+			bModified = TRUE;
+		}
+	}
+
+	//Breite Linienanfang
+	if( aMtrStartWidth.GetText() != aMtrStartWidth.GetSavedValue() )
+	{
+		XLineStartWidthItem aItem( GetCoreValue( aMtrStartWidth, ePoolUnit ) );
+		pOld = GetOldItem( rAttrs, XATTR_LINESTARTWIDTH );
+		if ( !pOld || !( *(const XLineStartWidthItem*)pOld == aItem ) )
+		{
+			rAttrs.Put( aItem );
+			bModified = TRUE;
+		}
+	}
+	//Breite Linienende
+	if( aMtrEndWidth.GetText() != aMtrEndWidth.GetSavedValue() )
+	{
+		XLineEndWidthItem aItem( GetCoreValue( aMtrEndWidth, ePoolUnit ) );
+		pOld = GetOldItem( rAttrs, XATTR_LINEENDWIDTH );
+		if ( !pOld || !( *(const XLineEndWidthItem*)pOld == aItem ) )
+		{
+			rAttrs.Put( aItem );
+			bModified = TRUE;
+		}
+	}
+=====================================================================
+Found a 30 line (155 tokens) duplication in the following files: 
+Starting at line 1713 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+Starting at line 2126 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+
+        if (m_bColumn)
+        {
+            for (SCCOL nCol = p->aStart.Col(); nCol <= p->aEnd.Col(); ++nCol)
+            {
+			    String aString = ScGlobal::GetRscString(STR_COLUMN);
+			    aString += ' ';
+                ScAddress aPos( nCol, 0, 0 );
+                String aColStr;
+                aPos.Format( aColStr, SCA_VALID_COL, NULL );
+                aString += aColStr;
+                pArr[nCount] = aString;
+                ++nCount;
+            }
+        }
+        else
+        {
+            for (sal_Int32 nRow = p->aStart.Row(); nRow <= p->aEnd.Row(); ++nRow)
+            {
+			    String aString = ScGlobal::GetRscString(STR_ROW);
+			    aString += ' ';
+			    aString += String::CreateFromInt32( nRow+1 );
+                pArr[nCount] = aString;
+                ++nCount;
+            }
+        }
+    }
+    return aSeq;
+}
+
+::rtl::OUString SAL_CALL ScChart2EmptyDataSequence::getSourceRangeRepresentation()
+=====================================================================
+Found a 29 line (155 tokens) duplication in the following files: 
+Starting at line 546 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fupoor.cxx
+Starting at line 1225 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+
+}
+
+/*************************************************************************
+|*
+|* #97016#
+|*
+\************************************************************************/
+
+SdrObject* FuPoor::CreateDefaultObject(const sal_uInt16, const Rectangle& )
+{
+	// empty base implementation
+	return 0L;
+}
+
+void FuPoor::ImpForceQuadratic(Rectangle& rRect)
+{
+	if(rRect.GetWidth() > rRect.GetHeight())
+	{
+		rRect = Rectangle(
+			Point(rRect.Left() + ((rRect.GetWidth() - rRect.GetHeight()) / 2), rRect.Top()), 
+			Size(rRect.GetHeight(), rRect.GetHeight()));
+	}
+	else
+	{
+		rRect = Rectangle(
+			Point(rRect.Left(), rRect.Top() + ((rRect.GetHeight() - rRect.GetWidth()) / 2)), 
+			Size(rRect.GetWidth(), rRect.GetWidth()));
+	}
+}
+=====================================================================
+Found a 25 line (155 tokens) duplication in the following files: 
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1300 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+ScMatrixRef ScInterpreter::MatSub(ScMatrix* pMat1, ScMatrix* pMat2)
+{
+	SCSIZE nC1, nC2, nMinC;
+	SCSIZE nR1, nR2, nMinR;
+	SCSIZE i, j;
+	pMat1->GetDimensions(nC1, nR1);
+	pMat2->GetDimensions(nC2, nR2);
+	if (nC1 < nC2)
+		nMinC = nC1;
+	else
+		nMinC = nC2;
+	if (nR1 < nR2)
+		nMinR = nR1;
+	else
+		nMinR = nR2;
+	ScMatrixRef xResMat = GetNewMat(nMinC, nMinR);
+	if (xResMat)
+	{
+        ScMatrix* pResMat = xResMat;
+		for (i = 0; i < nMinC; i++)
+		{
+			for (j = 0; j < nMinR; j++)
+			{
+				if (pMat1->IsValueOrEmpty(i,j) && pMat2->IsValueOrEmpty(i,j))
+					pResMat->PutDouble( ::rtl::math::approxSub( pMat1->GetDouble(i,j),
+=====================================================================
+Found a 30 line (155 tokens) duplication in the following files: 
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/cell2.cxx
+Starting at line 1391 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/cell2.cxx
+
+                        bRecompile = TRUE;  // RangeName
+            }
+        }
+        if ( bRecompile )
+        {
+            String aFormula;
+            GetFormula( aFormula, ScAddress::CONV_OOO);
+            if ( GetMatrixFlag() != MM_NONE && aFormula.Len() )
+            {
+                if ( aFormula.GetChar( aFormula.Len()-1 ) == '}' )
+                    aFormula.Erase( aFormula.Len()-1 , 1 );
+                if ( aFormula.GetChar(0) == '{' )
+                    aFormula.Erase( 0, 1 );
+            }
+            EndListeningTo( pDocument );
+            pDocument->RemoveFromFormulaTree( this );
+            pCode->Clear();
+            aErgString = aFormula;
+			nErgConv = ScAddress::CONV_OOO;
+        }
+    }
+    else if ( !pCode->GetLen() && aErgString.Len() )
+    {
+        Compile( aErgString );
+        aErgString.Erase();
+        SetDirty();
+    }
+}
+
+void ScFormulaCell::CompileColRowNameFormula()
+=====================================================================
+Found a 8 line (155 tokens) duplication in the following files: 
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+=====================================================================
+Found a 27 line (155 tokens) duplication in the following files: 
+Starting at line 1048 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+Starting at line 1042 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/menu/virtmenu.cxx
+
+			int	nItemCount		 = pMenu->GetItemCount();
+
+			if ( nItemCount > 0 )
+			{
+				// remove all old window list entries from menu
+				sal_uInt16 nPos = pMenu->GetItemPos( START_ITEMID_WINDOWLIST );
+            	for ( sal_uInt16 n = nPos; n < pMenu->GetItemCount(); )
+                	pMenu->RemoveItem( n );
+
+				if ( pMenu->GetItemType( pMenu->GetItemCount()-1 ) == MENUITEM_SEPARATOR )
+                	pMenu->RemoveItem( pMenu->GetItemCount()-1 );
+			}
+
+			if ( aNewWindowListVector.size() > 0 )
+			{
+				// append new window list entries to menu
+				pMenu->InsertSeparator();
+				nItemId = START_ITEMID_WINDOWLIST;
+				for ( sal_uInt32 i = 0; i < aNewWindowListVector.size(); i++ )
+				{
+					pMenu->InsertItem( nItemId, aNewWindowListVector.at( i ), MIB_RADIOCHECK );
+					if ( nItemId == nActiveItemId )
+						pMenu->CheckItem( nItemId );
+					++nItemId;
+				}
+			}
+        }
+=====================================================================
+Found a 30 line (155 tokens) duplication in the following files: 
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 900 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::reset()
+throw (::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aLock( m_aLock );
+
+    /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    std::vector< OUString > aUserImageNames;
+
+    for ( sal_Int32 i = 0; i < ImageType_COUNT; i++ )
+    {
+        aUserImageNames.clear();
+        ImageList* pImageList = implts_getUserImageList( ImageType(i));
+        pImageList->GetImageNames( aUserImageNames );
+
+        Sequence< rtl::OUString > aRemoveList( aUserImageNames.size() );
+        for ( sal_uInt32 j = 0; j < aUserImageNames.size(); j++ )
+            aRemoveList[j] = aUserImageNames[j];
+
+        // Remove images
+        removeImages( sal_Int16( i ), aRemoveList );
+        m_bUserImageListModified[i] = true;
+    }
+
+    m_bModified = sal_True;
+}
+
+Sequence< ::rtl::OUString > SAL_CALL ModuleImageManager::getAllImageNames( ::sal_Int16 nImageType )
+=====================================================================
+Found a 22 line (155 tokens) duplication in the following files: 
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+
+		OUString aLabel;
+
+		// read attributes for menu item
+		for ( int i=0; i< xAttrList->getLength(); i++ )
+		{
+			OUString aName = xAttrList->getNameByIndex( i );
+			OUString aValue = xAttrList->getValueByIndex( i );
+			if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
+				aCommandId = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
+				aLabel = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
+				nHelpId = aValue.toInt32();
+		}
+
+		if ( aCommandId.getLength() > 0 )
+		{
+            USHORT nItemId;
+            if ( aCommandId.compareTo( aSlotProtocol, aSlotProtocol.getLength() ) == 0 )
+                nItemId = (USHORT) aCommandId.copy( aSlotProtocol.getLength() ).toInt32();
+            else
+                nItemId = ++(*m_pItemId);
+=====================================================================
+Found a 27 line (155 tokens) duplication in the following files: 
+Starting at line 1149 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 1042 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/menu/virtmenu.cxx
+
+			int	nItemCount		 = pMenu->GetItemCount();
+
+			if ( nItemCount > 0 )
+			{
+				// remove all old window list entries from menu
+				sal_uInt16 nPos = pMenu->GetItemPos( START_ITEMID_WINDOWLIST );
+            	for ( sal_uInt16 n = nPos; n < pMenu->GetItemCount(); )
+                	pMenu->RemoveItem( n );
+
+				if ( pMenu->GetItemType( pMenu->GetItemCount()-1 ) == MENUITEM_SEPARATOR )
+                	pMenu->RemoveItem( pMenu->GetItemCount()-1 );
+			}
+
+			if ( aNewWindowListVector.size() > 0 )
+			{
+				// append new window list entries to menu
+				pMenu->InsertSeparator();
+				nItemId = START_ITEMID_WINDOWLIST;
+				for ( sal_uInt32 i = 0; i < aNewWindowListVector.size(); i++ )
+				{
+					pMenu->InsertItem( nItemId, aNewWindowListVector.at( i ), MIB_RADIOCHECK );
+					if ( nItemId == nActiveItemId )
+						pMenu->CheckItem( nItemId );
+					++nItemId;
+				}
+			}
+        }
+=====================================================================
+Found a 37 line (155 tokens) duplication in the following files: 
+Starting at line 505 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+                                              break;          
+						}
+					}
+				}
+
+				// Check required attribute "command"
+				if ( pItem->aCommandURL.Len() == 0 )
+				{
+					delete pItem;
+					delete m_pImages;
+					delete m_pExternalImages;
+					m_pImages = NULL;
+					m_pExternalImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'image:command' must have a value!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				// Check required attribute "href"
+				if ( pItem->aURL.Len() == 0 )
+				{
+					delete pItem;
+					delete m_pImages;
+					delete m_pExternalImages;
+					m_pImages = NULL;
+					m_pExternalImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute 'xlink:href' must have a value!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( m_pExternalImages )
+					m_pExternalImages->Insert( pItem, m_pExternalImages->Count() );
+			}
+			break;
+=====================================================================
+Found a 5 line (155 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fab0 - fabf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fac0 - facf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fad0 - fadf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fae0 - faef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faf0 - faff
+=====================================================================
+Found a 26 line (155 tokens) duplication in the following files: 
+Starting at line 471 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/dbadmin.cxx
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/dbadmin.cxx
+
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+		{0,0},
+        {0,0},
+        {0,0},
+        {0,0},
+        {0,0}
+=====================================================================
+Found a 25 line (155 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/query.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/querydescriptor.cxx
+
+void OQueryDescriptor::registerProperties()
+{
+	// the properties which OCommandBase supplies (it has no own registration, as it's not derived from
+	// a OPropertyStateContainer)
+	registerProperty(PROPERTY_NAME, PROPERTY_ID_NAME, PropertyAttribute::BOUND|PropertyAttribute::CONSTRAINED,
+					&m_sElementName, ::getCppuType(&m_sElementName));
+
+	registerProperty(PROPERTY_COMMAND, PROPERTY_ID_COMMAND, PropertyAttribute::BOUND,
+					&m_sCommand, ::getCppuType(&m_sCommand));
+
+	registerProperty(PROPERTY_USE_ESCAPE_PROCESSING, PROPERTY_ID_USE_ESCAPE_PROCESSING, PropertyAttribute::BOUND,
+					&m_bEscapeProcessing, ::getBooleanCppuType());
+
+	registerProperty(PROPERTY_UPDATE_TABLENAME, PROPERTY_ID_UPDATE_TABLENAME, PropertyAttribute::BOUND,
+					&m_sUpdateTableName, ::getCppuType(&m_sUpdateTableName));
+
+	registerProperty(PROPERTY_UPDATE_SCHEMANAME, PROPERTY_ID_UPDATE_SCHEMANAME, PropertyAttribute::BOUND,
+					&m_sUpdateSchemaName, ::getCppuType(&m_sUpdateSchemaName));
+
+	registerProperty(PROPERTY_UPDATE_CATALOGNAME, PROPERTY_ID_UPDATE_CATALOGNAME, PropertyAttribute::BOUND,
+					&m_sUpdateCatalogName, ::getCppuType(&m_sUpdateCatalogName));
+
+	registerProperty(PROPERTY_LAYOUTINFORMATION, PROPERTY_ID_LAYOUTINFORMATION, PropertyAttribute::BOUND,
+					&m_aLayoutInformation, ::getCppuType(&m_aLayoutInformation));
+}
+=====================================================================
+Found a 22 line (155 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDriver.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDriver.cxx
+
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".*"))
+				,Sequence< ::rtl::OUString >())
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShowDeleted"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Display inactive records."))
+				,sal_False
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"))
+				,aBoolean)
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EnableSQL92Check"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Use SQL92 naming constraints."))
+				,sal_False
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"))
+				,aBoolean)
+				);
+		return Sequence< DriverPropertyInfo >(&(aDriverInfo[0]),aDriverInfo.size());
+	}
+	::dbtools::throwGenericSQLException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Invalid URL!")) ,*this);
+	return Sequence< DriverPropertyInfo >();
+}
+=====================================================================
+Found a 29 line (155 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/streaming/oslfile2streamwrap.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/oslstream.cxx
+
+	if (nRead < (sal_uInt64)nBytesToRead)
+		aData.realloc( sal::static_int_cast<sal_Int32>( nRead ));
+
+	return sal::static_int_cast<sal_Int32>( nRead );
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OSLInputStreamWrapper::readSomeBytes(staruno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	if (!m_pFile)
+		throw stario::NotConnectedException(::rtl::OUString(), static_cast<staruno::XWeak*>(this));
+
+	if (nMaxBytesToRead < 0)
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+
+	/*
+	  if (m_pFile->IsEof())
+	  {
+	  aData.realloc(0);
+	  return 0;
+	  }
+	  else
+	*/
+	return readBytes(aData, nMaxBytesToRead);
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OSLInputStreamWrapper::skipBytes(sal_Int32 nBytesToSkip) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+=====================================================================
+Found a 34 line (155 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+OString CunoType::dumpHeaderDefine(FileStream& o, sal_Char* prefix, sal_Bool bExtended)
+{
+	if (m_typeName.equals("/"))
+	{
+		bExtended = sal_False;
+		m_typeName = "global";
+	}
+
+	sal_uInt32 length = 3 + m_typeName.getLength() + strlen(prefix);
+
+	if (bExtended)
+		length += m_name.getLength() + 1;
+
+	OStringBuffer tmpBuf(length);
+
+	tmpBuf.append('_');
+	tmpBuf.append(m_typeName);
+	tmpBuf.append('_');
+	if (bExtended)
+	{
+		tmpBuf.append(m_name);
+		tmpBuf.append('_');
+	}
+	tmpBuf.append(prefix);
+	tmpBuf.append('_');
+
+	OString tmp(tmpBuf.makeStringAndClear().replace('/', '_').toAsciiUpperCase());
+
+	o << "#ifndef " << tmp << "\n#define " << tmp << "\n";
+
+	return tmp;
+}
+
+void CunoType::dumpDefaultHIncludes(FileStream& o)
+=====================================================================
+Found a 36 line (154 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_boolean_algebra.h
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_boolean_algebra.h
+
+    {
+        enum
+        {
+            cover_shift = CoverShift,
+            cover_size  = 1 << cover_shift,
+            cover_mask  = cover_size - 1,
+            cover_full  = cover_mask
+        };
+        
+
+        void operator () (const typename Scanline1::const_iterator& span1, 
+                          const typename Scanline2::const_iterator& span2, 
+                          int x, unsigned len, 
+                          Scanline& sl) const
+        {
+            unsigned cover;
+            const typename Scanline1::cover_type* covers1;
+            const typename Scanline2::cover_type* covers2;
+
+            // Calculate the operation code and choose the 
+            // proper combination algorithm.
+            // 0 = Both spans are of AA type
+            // 1 = span1 is solid, span2 is AA
+            // 2 = span1 is AA, span2 is solid
+            // 3 = Both spans are of solid type
+            //-----------------
+            switch((span1->len < 0) | ((span2->len < 0) << 1))
+            {
+            case 0:      // Both are AA spans
+                covers1 = span1->covers;
+                covers2 = span2->covers;
+                if(span1->x < x) covers1 += x - span1->x;
+                if(span2->x < x) covers2 += x - span2->x;
+                do
+                {
+                    cover = *covers1++ * (cover_mask - *covers2++);
+=====================================================================
+Found a 8 line (154 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawellipse_mask.h
+
+static char drawellipse_mask_bits[] = {
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x3f, 0x7e, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x3f, 0x7e, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xff, 0x00,
+   0x00, 0x80, 0xe7, 0x01, 0x00, 0x80, 0xc3, 0x01, 0x00, 0x80, 0xc3, 0x01,
+=====================================================================
+Found a 6 line (154 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x00,0x10,0x1f,
+=====================================================================
+Found a 6 line (154 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,
+=====================================================================
+Found a 32 line (154 tokens) duplication in the following files: 
+Starting at line 9730 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 9765 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+                    eVal == PDFWriter::LineThrough )
+                {
+                    // only for ILSE and BLSE
+                    if( eType == PDFWriter::Paragraph	||
+                        eType == PDFWriter::Heading		||
+                        eType == PDFWriter::H1			||
+                        eType == PDFWriter::H2			||
+                        eType == PDFWriter::H3			||
+                        eType == PDFWriter::H4			||
+                        eType == PDFWriter::H5			||
+                        eType == PDFWriter::H6			||
+                        eType == PDFWriter::List		||
+                        eType == PDFWriter::ListItem	||
+                        eType == PDFWriter::LILabel		||
+                        eType == PDFWriter::LIBody		||
+                        eType == PDFWriter::Table		||
+                        eType == PDFWriter::TableRow	||
+                        eType == PDFWriter::TableHeader	||
+                        eType == PDFWriter::TableData	||
+                        eType == PDFWriter::Span		||
+                        eType == PDFWriter::Quote		||
+                        eType == PDFWriter::Note		||
+                        eType == PDFWriter::Reference	||
+                        eType == PDFWriter::BibEntry	||
+                        eType == PDFWriter::Code		||
+                        eType == PDFWriter::Link )
+                    {
+                        bInsert = true;
+                    }
+                }
+                break;
+            case PDFWriter::ListNumbering:
+=====================================================================
+Found a 28 line (154 tokens) duplication in the following files: 
+Starting at line 1309 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+Starting at line 493 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+    return rtl::OUString();
+}
+
+//=========================================================================
+// static
+uno::Reference< sdbc::XRow > Content::getPropertyValues(
+            const uno::Reference< lang::XMultiServiceFactory >& rSMgr,
+            const uno::Sequence< beans::Property >& rProperties,
+            const ContentProperties& rData,
+            const rtl::Reference< 
+                ::ucbhelper::ContentProviderImplHelper >& rProvider,
+            const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+=====================================================================
+Found a 42 line (154 tokens) duplication in the following files: 
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const ucb::CommandInfo aStreamCommandInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                -1,
+                getCppuVoidType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+            ),
+            ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                -1,
+                getCppuType(
+                    static_cast<
+                        uno::Sequence< beans::PropertyValue > * >( 0 ) )
+            ),
+            ///////////////////////////////////////////////////////////
+            // Optional standard commands
+            ///////////////////////////////////////////////////////////
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                -1,
+                getCppuBooleanType()
+            ),
+            ucb::CommandInfo(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+=====================================================================
+Found a 33 line (154 tokens) duplication in the following files: 
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+        static const beans::Property aDocPropertyInfoTable[] =
+        {
+            ///////////////////////////////////////////////////////////
+            // Mandatory properties
+            ///////////////////////////////////////////////////////////
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                -1,
+                getCppuBooleanType(),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY
+            ),
+            beans::Property(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 42 line (154 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+            static const ucb::CommandInfo aStreamCommandInfoTable1[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Mandatory commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                    -1,
+                    getCppuBooleanType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+=====================================================================
+Found a 33 line (154 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+            static const beans::Property aRootFolderPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 42 line (154 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+            static const ucb::CommandInfo aStreamCommandInfoTable1[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Mandatory commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                    -1,
+                    getCppuBooleanType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+=====================================================================
+Found a 28 line (154 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static beans::Property aPropertyInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory properties
+		///////////////////////////////////////////////////////////////
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+			-1,
+			getCppuBooleanType(),
+            beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY
+		),
+        beans::Property(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+			-1,
+            getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+            beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 42 line (154 tokens) duplication in the following files: 
+Starting at line 1424 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_contentcaps.cxx
+
+            static const ucb::CommandInfo aStreamCommandInfoTable1[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Mandatory commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+                    -1,
+                    getCppuBooleanType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+=====================================================================
+Found a 33 line (154 tokens) duplication in the following files: 
+Starting at line 1374 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static beans::Property aLinkPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 57 line (154 tokens) duplication in the following files: 
+Starting at line 243 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpresultsetbase.cxx
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/resultsetbase.cxx
+
+	if( sal::static_int_cast<sal_uInt32>( m_nRow ) ==  m_aItems.size() - 1 )
+		return true;
+	else
+		return false;
+}
+
+
+void SAL_CALL
+ResultSetBase::beforeFirst(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException)
+{
+	m_nRow = -1;
+}
+
+
+void SAL_CALL
+ResultSetBase::afterLast(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	m_nRow = m_aItems.size();
+}
+
+
+sal_Bool SAL_CALL
+ResultSetBase::first(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException)
+{
+	m_nRow = -1;
+	return next();
+}
+
+
+sal_Bool SAL_CALL
+ResultSetBase::last(
+	void  )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException )
+{
+	m_nRow = m_aItems.size() - 1;
+	return true;
+}
+
+
+sal_Int32 SAL_CALL
+ResultSetBase::getRow(
+	void )
+	throw( sdbc::SQLException,
+		   uno::RuntimeException)
+{
+	// Test, whether behind last row
+	if( -1 == m_nRow || sal::static_int_cast<sal_uInt32>( m_nRow ) >= m_aItems.size() )
+=====================================================================
+Found a 33 line (154 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static beans::Property aLinkPropertyInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required properties
+                ///////////////////////////////////////////////////////////
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
+                    -1,
+                    getCppuBooleanType(),
+                    beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY
+                ),
+                beans::Property(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
+                    -1,
+                    getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                    beans::PropertyAttribute::BOUND
+=====================================================================
+Found a 17 line (154 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/convert.cxx
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/instable.cxx
+
+    aFL             		(this, SW_RES(FL_TABLE)),
+	aHeaderCB				(this, SW_RES(CB_HEADER)),
+	aRepeatHeaderCB			(this, SW_RES(CB_REPEAT_HEADER)),
+	aRepeatHeaderFT			(this, SW_RES(FT_REPEAT_HEADER)),
+	aRepeatHeaderBeforeFT	(this),
+	aRepeatHeaderNF			(this, SW_RES(NF_REPEAT_HEADER)),
+	aRepeatHeaderAfterFT	(this),
+	aRepeatHeaderCombo		(this, SW_RES(WIN_REPEAT_HEADER), aRepeatHeaderNF, aRepeatHeaderBeforeFT, aRepeatHeaderAfterFT),
+	aDontSplitCB			(this, SW_RES(CB_DONT_SPLIT)),
+	aBorderCB				(this, SW_RES(CB_BORDER)),
+    aOptionsFL      		(this, SW_RES(FL_OPTIONS)),
+	aOkBtn					(this, SW_RES(BT_OK)),
+	aCancelBtn				(this, SW_RES(BT_CANCEL)),
+	aHelpBtn				(this, SW_RES(BT_HELP)),
+	aAutoFmtBtn				(this, SW_RES(BT_AUTOFORMAT)),
+	pTAutoFmt( 0 ),
+	pShell(&rView.GetWrtShell()),
+=====================================================================
+Found a 21 line (154 tokens) duplication in the following files: 
+Starting at line 1145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+Starting at line 1218 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+
+			p2Lines = NULL;
+			if( lcl_Has2Lines( *pTmp, p2Lines, bTwo ) )
+			{
+				if( bTwo == bOn )
+				{
+					if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() )
+						aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
+				}
+				else
+				{
+					bOn = bTwo;
+					if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() )
+						aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() );
+					else if( aEnd.Count() > 1 )
+						aEnd.Remove( aEnd.Count()-1, 1 );
+					else
+						aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
+				}
+			}
+		}
+		if( !bOn && aEnd.Count() )
+=====================================================================
+Found a 28 line (154 tokens) duplication in the following files: 
+Starting at line 2941 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 2092 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+			aNewSet.Put(SdrTextAutoGrowHeightItem(bAutoGrowWidth));
+
+			// #103516# Exchange horz and vert adjusts
+			switch(eVert)
+			{
+				case SDRTEXTVERTADJUST_TOP: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT)); break;
+				case SDRTEXTVERTADJUST_CENTER: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_CENTER)); break;
+				case SDRTEXTVERTADJUST_BOTTOM: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_LEFT)); break;
+				case SDRTEXTVERTADJUST_BLOCK: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_BLOCK)); break;
+			}
+			switch(eHorz)
+			{
+				case SDRTEXTHORZADJUST_LEFT: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BOTTOM)); break;
+				case SDRTEXTHORZADJUST_CENTER: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_CENTER)); break;
+				case SDRTEXTHORZADJUST_RIGHT: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_TOP)); break;
+				case SDRTEXTHORZADJUST_BLOCK: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BLOCK)); break;
+			}
+
+			SetObjectItemSet(aNewSet);
+
+			// set ParaObject orientation accordingly
+			pOutlinerParaObject->SetVertical(bVertical);
+
+			// restore object size
+			SetSnapRect(aObjectRect);
+		}
+	}
+}
+=====================================================================
+Found a 20 line (154 tokens) duplication in the following files: 
+Starting at line 5643 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 5877 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+        0x6C, 0x6C, 0x42, 0x61, 0x72, 0x2E, 0x31, 0x00,
+        0xF4, 0x39, 0xB2, 0x71, 0x00, 0x00, 0x00, 0x00,
+        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    };
+
+    {
+        SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+        xStor->Write(aCompObj,sizeof(aCompObj));
+        DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+    }
+
+    {
+        SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+        xStor3->Write(aObjInfo,sizeof(aObjInfo));
+        DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+    }
+
+    static sal_uInt8 __READONLY_DATA aOCXNAME[] =
+    {
+        0x53, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6F, 0x00,
+=====================================================================
+Found a 31 line (154 tokens) duplication in the following files: 
+Starting at line 3990 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4175 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		*pS >> nBorderColor;
+	}
+
+    if (pBlockFlags[2] & 0x10)
+	{
+        ReadAlign(pS, pS->Tell() - nStart, 2);
+        sal_uInt16 nNoIdea;
+        *pS >> nNoIdea;
+        DBG_ASSERT(nNoIdea == 0xFFFF, "Expected 0xFFFF, (related to font ?)");
+	}
+
+    if (pBlockFlags[2] & 0x20)
+	{
+        ReadAlign(pS, pS->Tell() - nStart, 2);
+        *pS >> nPicture;
+        DBG_ASSERT(nPicture == 0xFFFF, "Unexpected nIcon");
+	}
+
+    if (pBlockFlags[2] & 0x80)
+        *pS >> nPictureAlignment;
+
+    if (pBlockFlags[3] & 0x01)
+        bPictureTiling = true;
+
+    if (pBlockFlags[3] & 0x02)
+        *pS >> nPictureSizeMode;
+
+    if (pBlockFlags[3] & 0x04)
+    {
+        ReadAlign(pS, pS->Tell() - nStart, 4);
+        *pS >> nChildrenB;
+=====================================================================
+Found a 19 line (154 tokens) duplication in the following files: 
+Starting at line 3016 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4395 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x4C, 0x61, 0x62, 0x65, 0x6C, 0x2E, 0x31, 0x00,
+		0xF4, 0x39, 0xB2, 0x71, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+		0x4C, 0x00, 0x61, 0x00, 0x62, 0x00, 0x65, 0x00,
+=====================================================================
+Found a 19 line (154 tokens) duplication in the following files: 
+Starting at line 2171 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2419 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+            0x74, 0x6F, 0x6E, 0x2E, 0x31, 0x00, 0xF4, 0x39,
+            0xB2, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+        };
+
+    {
+    SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+    xStor->Write(aCompObj,sizeof(aCompObj));
+    DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+    }
+
+    {
+    SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+    xStor3->Write(aObjInfo,sizeof(aObjInfo));
+    DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+    }
+
+    static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+        0x54, 0x00, 0x6F, 0x00, 0x67, 0x00, 0x67, 0x00,
+=====================================================================
+Found a 22 line (154 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 1181 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+void  SvxBitmapPickTabPage::Reset( const SfxItemSet& rSet )
+{
+	const SfxPoolItem* pItem;
+	//im Draw gibt es das Item als WhichId, im Writer nur als SlotId
+	SfxItemState eState = rSet.GetItemState(SID_ATTR_NUMBERING_RULE, FALSE, &pItem);
+	if(eState != SFX_ITEM_SET)
+	{
+		nNumItemId = rSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
+		eState = rSet.GetItemState(nNumItemId, FALSE, &pItem);
+	}
+	DBG_ASSERT(eState == SFX_ITEM_SET, "kein Item gefunden!")
+	delete pSaveNum;
+	pSaveNum = new SvxNumRule(*((SvxNumBulletItem*)pItem)->GetNumRule());
+
+//	nActNumLvl = ((SwNumBulletTabDialog*)GetTabDialog())->GetActNumLevel();
+
+	if(SFX_ITEM_SET == rSet.GetItemState(SID_PARAM_CHILD_LEVELS, FALSE, &pItem))
+		bHasChild = ((const SfxBoolItem*)pItem)->GetValue();
+	if(!pActNum)
+		pActNum = new  SvxNumRule(*pSaveNum);
+	else if(*pSaveNum != *pActNum)
+		*pActNum = *pSaveNum;
+=====================================================================
+Found a 22 line (154 tokens) duplication in the following files: 
+Starting at line 824 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+		bRet = check( equals( aData, aRet ) && equals( aData, aRet2 ) && equals( aData, aGVret ), "getValues test" ) && bRet;
+
+		// set last retrieved values
+		xLBT->setBool( aRet.Bool );
+		xLBT->setChar( aRet.Char );
+		xLBT->setByte( aRet.Byte );
+		xLBT->setShort( aRet.Short );
+		xLBT->setUShort( aRet.UShort );
+        xLBT->setLong( aRet.Long );
+		xLBT->setULong( aRet.ULong );
+		xLBT->setHyper( aRet.Hyper );
+		xLBT->setUHyper( aRet.UHyper );
+		xLBT->setFloat( aRet.Float );
+		xLBT->setDouble( aRet.Double );
+		xLBT->setEnum( aRet.Enum );
+		xLBT->setString( aRet.String );
+		xLBT->setInterface( aRet.Interface );
+		xLBT->setAny( aRet.Any );
+		xLBT->setSequence( aRet.Sequence );
+		xLBT->setStruct( aRet2 );
+		}
+		{
+=====================================================================
+Found a 11 line (154 tokens) duplication in the following files: 
+Starting at line 1258 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodel.cxx
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomod.cxx
+
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TitleTextShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OutlinerShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.SubtitleShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.GraphicObjectShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.ChartShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PageShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OLE2Shape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TableShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OrgChartShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.NotesShape"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.HandoutShape"));
+=====================================================================
+Found a 36 line (154 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+
+                            aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pFilter ? pFilter->IsOwnTemplateFormat() : FALSE, &sFilterName );
+						}
+						catch( lang::WrappedTargetException& aWrap )
+						{
+							packages::zip::ZipIOException aZipException;
+							if ( ( aWrap.TargetException >>= aZipException ) && aTypeName.Len() )
+							{
+								if ( xInteraction.is() )
+								{
+									// the package is broken one
+       								aDocumentTitle = aMedium.GetURLObject().getName(
+																INetURLObject::LAST_SEGMENT,
+																true,
+																INetURLObject::DECODE_WITH_CHARSET );
+
+									if ( !bRepairPackage )
+									{
+										// ask the user whether he wants to try to repair
+            							RequestPackageReparation* pRequest = new RequestPackageReparation( aDocumentTitle );
+            							uno::Reference< task::XInteractionRequest > xRequest ( pRequest );
+
+            							xInteraction->handle( xRequest );
+
+            							bRepairAllowed = pRequest->isApproved();
+									}
+
+									if ( !bRepairAllowed )
+									{
+										// repair either not allowed or not successful
+        								NotifyBrokenPackage* pNotifyRequest = new NotifyBrokenPackage( aDocumentTitle );
+           								uno::Reference< task::XInteractionRequest > xRequest ( pNotifyRequest );
+       									xInteraction->handle( xRequest );
+									}
+								}
+
+								if ( !bRepairAllowed )
+=====================================================================
+Found a 41 line (154 tokens) duplication in the following files: 
+Starting at line 4034 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 4201 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+		String rString;
+        double fVal = 0.0;
+		BOOL bIsString = TRUE;
+		switch ( GetStackType() )
+		{
+			case svDoubleRef :
+			case svSingleRef :
+			{
+				ScAddress aAdr;
+				if ( !PopDoubleRefOrSingleRef( aAdr ) )
+				{
+					PushInt(0);
+					return ;
+				}
+				ScBaseCell* pCell = GetCell( aAdr );
+				switch ( GetCellType( pCell ) )
+				{
+					case CELLTYPE_VALUE :
+						fVal = GetCellValue( aAdr, pCell );
+						bIsString = FALSE;
+						break;
+					case CELLTYPE_FORMULA :
+						if( ((ScFormulaCell*)pCell)->IsValue() )
+						{
+							fVal = GetCellValue( aAdr, pCell );
+							bIsString = FALSE;
+						}
+						else
+							GetCellString(rString, pCell);
+						break;
+					case CELLTYPE_STRING :
+					case CELLTYPE_EDIT :
+						GetCellString(rString, pCell);
+						break;
+					default:
+						fVal = 0.0;
+						bIsString = FALSE;
+				}
+			}
+			break;
+			case svString:
+=====================================================================
+Found a 11 line (154 tokens) duplication in the following files: 
+Starting at line 1780 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1838 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                  "\xAD\xF3\xAD\xF4\xAD\xF8\xAD\xF9"),
+              { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
+                0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
+                0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
+                0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
+                0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
+                0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
+                0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
+                0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
+                0x221F,0x22BF },
+              74,
+=====================================================================
+Found a 31 line (154 tokens) duplication in the following files: 
+Starting at line 1087 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1117 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+	if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
+	{
+		if (MaxLen != 0)
+		{
+ 			for (i = 0; i < pProfile->m_NoSections; i++)
+			{
+				pSec = &pProfile->m_Sections[i];
+
+				if ((n + pSec->m_Len + 1) < MaxLen)
+				{
+					strncpy(&pszBuffer[n], &pProfile->m_Lines[pSec->m_Line][pSec->m_Offset],
+					        pSec->m_Len);
+					n += pSec->m_Len;
+					pszBuffer[n++] = '\0';
+				}
+				else
+					break;
+			}
+
+			pszBuffer[n++] = '\0';
+		}
+		else
+		{
+ 			for (i = 0; i < pProfile->m_NoSections; i++)
+				n += pProfile->m_Sections[i].m_Len + 1;
+
+			n += 1;
+		}
+	}
+	else
+	{
+=====================================================================
+Found a 40 line (154 tokens) duplication in the following files: 
+Starting at line 759 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/eval.c
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_eval.c
+
+                        if (j >= sizeof(cvcon))
+                            error(WARNING,
+                               "Undefined escape in character constant");
+                    }
+            }
+            else
+                if (*p == '\'')
+                    error(ERROR, "Empty character constant");
+                else
+                    n = *p++;
+            if (*p != '\'')
+                error(WARNING, "Multibyte character constant undefined");
+            else
+                if (n > 127)
+                    error(WARNING, "Character constant taken as not signed");
+            v.val = n;
+            break;
+
+        case STRING:
+            error(ERROR, "String in #if/#elsif");
+            break;
+    }
+    return v;
+}
+
+int
+    digit(int i)
+{
+    if ('0' <= i && i <= '9')
+        i -= '0';
+    else
+        if ('a' <= i && i <= 'f')
+            i -= 'a' - 10;
+        else
+            if ('A' <= i && i <= 'F')
+                i -= 'A' - 10;
+            else
+                i = -1;
+    return i;
+}
+=====================================================================
+Found a 6 line (154 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x00,0x10,0x1f,
+=====================================================================
+Found a 6 line (154 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+
+ 0x00,0xf8,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 6 line (154 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x00,0x10,0x1f,
+=====================================================================
+Found a 6 line (154 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+
+ 0x00,0xf8,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 16 line (154 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpread.cpp
+Starting at line 391 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpread.cpp
+
+    hwpf.Read2b(style.margin, 12);                /* ���� : [0-2][] out/in/��,[][0-3] ��/�8�/'/�Ʒ� ���� */
+    hwpf.Read2b(&box_xs, 1);                      /* �ڽ�ũ�� ���� */
+    hwpf.Read2b(&box_ys, 1);                      /* ���� */
+    hwpf.Read2b(&cap_xs, 1);                      /* ĸ�� ũ�� ���� */
+    hwpf.Read2b(&cap_ys, 1);                      /* ���� */
+    hwpf.Read2b(&style.cap_len, 1);               /* ���� */
+    hwpf.Read2b(&xs, 1);                          /* ��ü ũ��(�ڽ� ũ�� + ĸ�� + ����) ���� */
+    hwpf.Read2b(&ys, 1);                          /* ���� */
+    hwpf.Read2b(&cap_margin, 1);                  /* ĸ�� ���� */
+    hwpf.Read1b(&xpos_type, 1);
+    hwpf.Read1b(&ypos_type, 1);
+    hwpf.Read1b(&smart_linesp, 1);                /* �ٰ��� ��ȣ : 0 �̺�ȣ, 1 ��ȣ */
+    hwpf.Read1b(&reserved1, 1);
+    hwpf.Read2b(&pgx, 1);                         /* ��f ���� �ڽ� ���� */
+    hwpf.Read2b(&pgy, 1);                         /* ���� */
+    hwpf.Read2b(&pgno, 1);                        /* ������ ���� : 0���� ���� */
+=====================================================================
+Found a 36 line (154 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void ModuleImageManager::implts_initialize()
+{
+    // Initialize the top-level structures with the storage data
+    if ( m_xUserConfigStorage.is() )
+    {
+        long nModes = m_bReadOnly ? ElementModes::READ : ElementModes::READWRITE;
+
+        try
+        {
+            m_xUserImageStorage = m_xUserConfigStorage->openStorageElement( OUString::createFromAscii( IMAGE_FOLDER ),
+                                                                            nModes );
+            if ( m_xUserImageStorage.is() )
+            {
+                m_xUserBitmapsStorage = m_xUserImageStorage->openStorageElement( OUString::createFromAscii( BITMAPS_FOLDER ),
+                                                                                 nModes );
+            }
+        }
+        catch ( com::sun::star::container::NoSuchElementException& )
+        {
+        }
+        catch ( ::com::sun::star::embed::InvalidStorageException& )
+        {
+        }
+        catch ( ::com::sun::star::lang::IllegalArgumentException& )
+        {
+        }
+        catch ( ::com::sun::star::io::IOException& )
+        {
+        }
+        catch ( ::com::sun::star::embed::StorageWrappedTargetException& )
+        {
+        }
+    }
+}
+
+sal_Bool ModuleImageManager::implts_loadUserImages(
+=====================================================================
+Found a 23 line (154 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/FilterHelper.cxx
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+	OUString aRealName = rFilterName;
+	
+	for( i = aRealName.getLength() - 1; i > 0; i-- )
+	{
+		if( pStr[i] == ')' )
+			nBracketEnd = i;
+		else if( pStr[i] == '(' )
+		{
+			nBracketLen = nBracketEnd - i;
+			if( nBracketEnd <= 0 )
+                continue;
+			if( isFilterString( rFilterName.copy( i + 1, nBracketLen - 1 ), "*." ) )
+                aRealName = aRealName.replaceAt( i, nBracketLen + 1, rtl::OUString() );
+            else if (bAllowNoStar)
+            {
+			    if( isFilterString( rFilterName.copy( i + 1, nBracketLen - 1 ), ".") )
+                    aRealName = aRealName.replaceAt( i, nBracketLen + 1, rtl::OUString() );
+            }
+		}
+	}
+
+	return aRealName;
+}
+=====================================================================
+Found a 24 line (154 tokens) duplication in the following files: 
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/FreeReference/FreeReference.test.cxx
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/FreeReference/FreeReference.test.cxx
+
+	cppu::FreeReference<uno::XInterface> env_obj;
+	{
+		cppu::EnvGuard envGuard(s_env);
+
+		pObject = reinterpret_cast<uno::XInterface *>(
+			createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
+						 s_callee_in));
+		
+		env_obj = cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
+	}
+
+
+	uno::Mapping mapping(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV) ":unsafe")),
+						 rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))));
+	uno::Reference<uno::XInterface> tmp;
+	uno::XInterface * pMappedObject = reinterpret_cast<uno::XInterface *>(mapping.mapInterface(pObject, ::getCppuType(&tmp)));
+
+
+	cppu::FreeReference<uno::XInterface> flat_obj(pMappedObject, SAL_NO_ACQUIRE);
+
+	{
+		cppu::EnvGuard envGuard(s_env);
+
+		if (env_obj != flat_obj)
+=====================================================================
+Found a 22 line (154 tokens) duplication in the following files: 
+Starting at line 455 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+		bRet = check( equals( aData, aRet ) && equals( aData, aRet2 ) && equals( aData, aGVret ), "getValues test" ) && bRet;
+
+		// set last retrieved values
+		xLBT->setBool( aRet.Bool );
+		xLBT->setChar( aRet.Char );
+		xLBT->setByte( aRet.Byte );
+		xLBT->setShort( aRet.Short );
+		xLBT->setUShort( aRet.UShort );
+        xLBT->setLong( aRet.Long );
+		xLBT->setULong( aRet.ULong );
+		xLBT->setHyper( aRet.Hyper );
+		xLBT->setUHyper( aRet.UHyper );
+		xLBT->setFloat( aRet.Float );
+		xLBT->setDouble( aRet.Double );
+		xLBT->setEnum( aRet.Enum );
+		xLBT->setString( aRet.String );
+		xLBT->setInterface( aRet.Interface );
+		xLBT->setAny( aRet.Any );
+		xLBT->setSequence( aRet.Sequence );
+		xLBT->setStruct( aRet2 );
+		}
+		{
+=====================================================================
+Found a 26 line (154 tokens) duplication in the following files: 
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HDriver.cxx
+Starting at line 403 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YDriver.cxx
+
+		aSNS[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdbc.Driver");
+		aSNS[1] = ::rtl::OUString::createFromAscii("com.sun.star.sdbcx.Driver");
+		return aSNS;
+	}
+	//------------------------------------------------------------------
+	::rtl::OUString SAL_CALL ODriverDelegator::getImplementationName(  ) throw(RuntimeException)
+	{
+		return getImplementationName_Static();
+	}
+
+	//------------------------------------------------------------------
+	sal_Bool SAL_CALL ODriverDelegator::supportsService( const ::rtl::OUString& _rServiceName ) throw(RuntimeException)
+	{
+		Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames());
+		const ::rtl::OUString* pSupported = aSupported.getConstArray();
+		const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
+		for (;pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported)
+			;
+
+		return pSupported != pEnd;
+	}
+	//------------------------------------------------------------------
+	Sequence< ::rtl::OUString > SAL_CALL ODriverDelegator::getSupportedServiceNames(  ) throw(RuntimeException)
+	{
+		return getSupportedServiceNames_Static();
+	}
+=====================================================================
+Found a 34 line (154 tokens) duplication in the following files: 
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+Starting at line 720 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/dindexnode.cxx
+
+}
+//==================================================================
+// ONDXNode
+//==================================================================
+
+//------------------------------------------------------------------
+void ONDXNode::Read(SvStream &rStream, ODbaseIndex& rIndex)
+{
+	rStream >> aKey.nRecord; // schluessel
+
+	if (rIndex.getHeader().db_keytype)
+	{
+		double aDbl;
+		rStream >> aDbl;
+		aKey = ONDXKey(aDbl,aKey.nRecord);
+	}
+	else
+	{
+		ByteString aBuf;
+		USHORT nLen = rIndex.getHeader().db_keylen;
+		char* pStr = aBuf.AllocBuffer(nLen+1);
+
+		rStream.Read(pStr,nLen);
+		pStr[nLen] = 0;
+		aBuf.ReleaseBufferAccess();
+		aBuf.EraseTrailingChars();
+
+		//	aKey = ONDXKey((aBuf,rIndex.GetDBFConnection()->GetCharacterSet()) ,aKey.nRecord);
+		aKey = ONDXKey(::rtl::OUString(aBuf.GetBuffer(),aBuf.Len(),rIndex.m_pTable->getConnection()->getTextEncoding()) ,aKey.nRecord);
+	}
+	rStream >> aChild;
+}
+
+union NodeData
+=====================================================================
+Found a 16 line (154 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnValue::NULLABLE));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+=====================================================================
+Found a 26 line (154 tokens) duplication in the following files: 
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+		if (!_bLocal)
+		{
+			rtl::OUString sServer;
+			sServer =			enterValue("server  : ", s_pServer,false);
+			cout << endl;
+
+			sUser =				enterValue("user    : ", s_pUser, false);
+			cout << endl;
+			
+			OUString sPasswd =	enterValue("password: ", s_pPassword, true);
+			cout << endl;
+
+			aCPArgs = createSequence(sUser, sPasswd);
+
+			aCPArgs.realloc(aCPArgs.getLength() + 1);
+			aCPArgs[aCPArgs.getLength() - 1] <<= configmgr::createPropertyValue(ASCII("server"), sServer);
+
+			OUString sTimeout = ASCII("10000");
+			aCPArgs.realloc(aCPArgs.getLength() + 1);
+			aCPArgs[aCPArgs.getLength() - 1] <<= configmgr::createPropertyValue(ASCII("timeout"), sTimeout);
+
+		}
+		else
+		{
+			rtl::OUString sSharePath, sUserPath;
+			sSharePath = _sSharePath;//		enterValue("share path: ", s_pSourcePath, false);
+=====================================================================
+Found a 32 line (154 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_spritecanvashelper.cxx
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/spritecanvashelper.cxx
+
+        mpRedrawManager = &rManager;
+    }
+    
+    void SpriteCanvasHelper::disposing()
+    {
+        mpRedrawManager = NULL;
+
+        // forward to base
+        CanvasHelper::disposing();
+    }
+
+    uno::Reference< rendering::XAnimatedSprite > SpriteCanvasHelper::createSpriteFromAnimation( 
+        const uno::Reference< rendering::XAnimation >&  )
+    {
+        return uno::Reference< rendering::XAnimatedSprite >();
+    }
+
+    uno::Reference< rendering::XAnimatedSprite > SpriteCanvasHelper::createSpriteFromBitmaps( 
+        const uno::Sequence< uno::Reference< rendering::XBitmap > >& , 
+        sal_Int8                                                      )
+    {
+        return uno::Reference< rendering::XAnimatedSprite >();
+    }
+
+    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( const geometry::RealSize2D& spriteSize )
+    {
+        if( !mpRedrawManager )
+            return uno::Reference< rendering::XCustomSprite >(); // we're disposed
+
+        return uno::Reference< rendering::XCustomSprite >(
+            new CanvasCustomSprite( spriteSize, 
+                                    mpDevice,
+=====================================================================
+Found a 23 line (153 tokens) duplication in the following files: 
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+        void blend_solid_vspan(int x, int y,
+                               unsigned len, 
+                               const color_type& c,
+                               const int8u* covers)
+        {
+            if (c.a)
+            {
+                value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+                do 
+                {
+                    calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+                    if(alpha == base_mask)
+                    {
+                        p[order_type::R] = c.r;
+                        p[order_type::G] = c.g;
+                        p[order_type::B] = c.b;
+                        p[order_type::A] = base_mask;
+                    }
+                    else
+                    {
+                        blender_type::blend_pix(p, c.r, c.g, c.b, alpha, *covers);
+                    }
+                    p = (value_type*)m_rbuf->next_row(p);
+=====================================================================
+Found a 6 line (153 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0e,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x00,0x10,0x1f,
+=====================================================================
+Found a 41 line (153 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static const ucb::CommandInfo aFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // Optional standard commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+                )
+=====================================================================
+Found a 48 line (153 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/prov.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpservices.cxx
+
+    uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+        xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+    catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+        catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//=========================================================================
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	return pRegistryKey &&
+		
+		//////////////////////////////////////////////////////////////////////
+		// FTP Content Provider.
+		//////////////////////////////////////////////////////////////////////
+
+		writeInfo( pRegistryKey,
+=====================================================================
+Found a 43 line (153 tokens) duplication in the following files: 
+Starting at line 1264 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+Starting at line 1170 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+	return Reference< XInterface >( (XBridgeTest *)new Test_Impl() );
+}
+
+}
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+					OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) );
+			xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM(SERVICENAME) ) );
+			
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * )
+{
+	void * pRet = 0;
+	
+	if (pServiceManager && rtl_str_compare( pImplName, IMPLNAME ) == 0)
+	{
+		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
+=====================================================================
+Found a 24 line (153 tokens) duplication in the following files: 
+Starting at line 710 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fmtui/tmpdlg.cxx
+Starting at line 852 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/num.cxx
+
+			SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell();
+			::FillCharStyleListBox(rCharFmtLB,	pDocShell);
+			//add CHINA001 begin
+			List aList; 
+			for(USHORT j = 0; j < rCharFmtLB.GetEntryCount(); j++) 
+			{
+				
+				 aList.Insert( new XubString(rCharFmtLB.GetEntry(j)), LIST_APPEND );
+			}
+			aSet.Put( SfxStringListItem( SID_CHAR_FMT_LIST_BOX,&aList ) ) ;
+			
+			//add CHINA001 end
+			FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
+			//CHINA001 ((SvxNumOptionsTabPage&)rPage).SetMetric(eMetric);
+			aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM,eMetric));//add CHINA001	
+			rPage.PageCreated(aSet);//add CHINA001
+			for( USHORT i = (USHORT)aList.Count(); i; --i )
+					delete (XubString*)aList.Remove(i);
+			aList.Clear();
+		}
+		break;
+	case RID_SVXPAGE_NUM_POSITION:
+		{
+			SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell();
+=====================================================================
+Found a 17 line (153 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmgreetingspage.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmgreetingspage.cxx
+
+    SfxModalDialog(pParent, SW_RES(DLG_MM_MAILBODY)),
+#pragma warning (disable : 4355)
+    m_aGreetingLineCB(this, SW_RES(    CB_GREETINGLINE ) ),
+    m_aPersonalizedCB(this, SW_RES(      CB_PERSONALIZED ) ),
+    m_aFemaleFT(this, SW_RES(            FT_FEMALE   ) ),
+    m_aFemaleLB(this, SW_RES(            LB_FEMALE   ) ),   
+    m_aFemalePB(this, SW_RES(            PB_FEMALE   ) ),   
+    m_aMaleFT(this, SW_RES(              FT_MALE     ) ),   
+    m_aMaleLB(this, SW_RES(              LB_MALE     ) ),
+    m_aMalePB(this, SW_RES(              PB_MALE     ) ),
+    m_aFemaleFI(this, SW_RES(            FI_FEMALE      ) ),
+    m_aFemaleColumnFT(this, SW_RES(      FT_FEMALECOLUMN ) ),
+    m_aFemaleColumnLB(this, SW_RES(      LB_FEMALECOLUMN ) ),
+    m_aFemaleFieldFT(this, SW_RES(       FT_FEMALEFIELD  ) ),
+    m_aFemaleFieldCB(this, SW_RES(       CB_FEMALEFIELD  ) ),
+    m_aNeutralFT(this, SW_RES(           FT_NEUTRAL      ) ),
+    m_aNeutralCB(this, SW_RES(         CB_NEUTRAL      ) ),
+=====================================================================
+Found a 53 line (153 tokens) duplication in the following files: 
+Starting at line 3113 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3279 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                if (IsEightPlus(GetFIBVersion()))
+                {
+                    nBeginLimitFC =
+                        WW8PLCFx_PCD::TransformPieceAddress(nLimitFC,
+                        bIsUnicode);
+                }
+
+                nLimitFC = nBeginLimitFC +
+                    (nCpEnd - nCpStart) * (bIsUnicode ? 2 : 1);
+
+                if (nOldEndPos <= nLimitFC)
+                {
+                    p->nEndPos = nCpEnd -
+                        (nLimitFC-nOldEndPos) / (bIsUnicode ? 2 : 1);
+                }
+                else
+                {
+                    if (ePLCF == CHP)
+                        p->nEndPos = nCpEnd;
+                    else
+                    {
+                        /*
+                        If the FKP FC that was found was greater than the FC
+                        of the end of the piece, scan piece by piece toward
+                        the end of the document until a piece is found that
+                        contains a  paragraph end mark.
+                        */
+
+                        /*
+                        It's possible to check if a piece contains a paragraph
+                        mark by using the FC of the beginning of the piece to
+                        search in the FKPs for the smallest FC in the FKP rgfc
+                        that is greater than the FC of the beginning of the
+                        piece. If the FC found is less than or equal to the
+                        limit FC of the piece, then the character that ends
+                        the paragraph is the character immediately before the
+                        FKP fc
+                        */
+
+                        (*pPieceIter)++;
+
+                        for (;pPieceIter->GetIdx() < pPieceIter->GetIMax();
+                            (*pPieceIter)++)
+                        {
+                            if( !pPieceIter->Get( nCpStart, nCpEnd, pData ) )
+                            {
+                                ASSERT( !this, "piece iter broken!" );
+                                break;
+                            }
+                            bIsUnicode = false;
+                            INT32 nFcStart=SVBT32ToUInt32(((WW8_PCD*)pData)->fc);
+
+                            if (IsEightPlus(GetFIBVersion()))
+=====================================================================
+Found a 20 line (153 tokens) duplication in the following files: 
+Starting at line 3082 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4819 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+			return;
+		}
+		const uno::Sequence< double >* pRowArray = rData.getConstArray();
+		for(sal_uInt16 nRow = nRowStart; nRow < nRowCount; nRow++)
+		{
+			const uno::Sequence< double >& rColSeq = pRowArray[nRow - nRowStart];
+			sal_uInt16 nColStart = bFirstColumnAsLabel ? 1 : 0;
+			if(rColSeq.getLength() < nColCount - nColStart)
+			{
+				throw uno::RuntimeException();
+			}
+			const double * pColArray = rColSeq.getConstArray();
+			for(sal_uInt16 nCol = nColStart; nCol < nColCount; nCol++)
+			{
+				uno::Reference< table::XCell >  xCell = getCellByPosition(nCol, nRow);
+				if(!xCell.is())
+				{
+					throw uno::RuntimeException();
+				}
+				xCell->setValue(pColArray[nCol - nColStart]);
+=====================================================================
+Found a 39 line (153 tokens) duplication in the following files: 
+Starting at line 3370 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 973 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+		ImpSetContourPolygon( rOutliner, aAnkRect, bLineWidth );
+
+	// Text in den Outliner stecken - ggf. den aus dem EditOutliner
+	OutlinerParaObject* pPara=pOutlinerParaObject;
+	if (pEdtOutl && !bNoEditText)
+		pPara=pEdtOutl->CreateParaObject();
+
+	if (pPara)
+	{
+		BOOL bHitTest = FALSE;
+		if( pModel )
+			bHitTest = &pModel->GetHitTestOutliner() == &rOutliner;
+
+		const SdrTextObj* pTestObj = rOutliner.GetTextObj();
+		if( !pTestObj || !bHitTest || pTestObj != this ||
+		    pTestObj->GetOutlinerParaObject() != pOutlinerParaObject )
+		{
+			if( bHitTest ) // #i33696# take back fix #i27510#
+				rOutliner.SetTextObj( this );
+
+			rOutliner.SetUpdateMode(TRUE);
+			rOutliner.SetText(*pPara);
+		}
+	}
+	else
+	{
+		rOutliner.SetTextObj( NULL );
+	}
+
+	if (pEdtOutl && !bNoEditText && pPara)
+		delete pPara;
+
+	rOutliner.SetUpdateMode(TRUE);
+	rOutliner.SetControlWord(nStat0);
+
+	if (!bPortionInfoChecked)
+	{
+		// Optimierung: ggf. BigTextObject erzeugen
+		((SdrTextObj*)this)->bPortionInfoChecked=TRUE;
+=====================================================================
+Found a 12 line (153 tokens) duplication in the following files: 
+Starting at line 802 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedtv2.cxx
+Starting at line 891 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedtv2.cxx
+
+						double fStepWidth = ((double)nHeight - (double)nFullLength) / (double)(aEntryList.Count() - 1);
+						double fStepStart = (double)aEntryList.GetObject(0)->mnPos;
+						fStepStart += fStepWidth + (double)((aEntryList.GetObject(0)->mnLength + aEntryList.GetObject(1)->mnLength) / 2);
+
+						// move entries 1..n-1
+						for(a=1;a<aEntryList.Count()-1;a++)
+						{
+							ImpDistributeEntry* pCurr = aEntryList.GetObject(a);
+							ImpDistributeEntry* pNext = aEntryList.GetObject(a+1);
+							INT32 nDelta = (INT32)(fStepStart + 0.5) - pCurr->mnPos;
+							AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pCurr->mpObj));
+							pCurr->mpObj->Move(Size(0, nDelta));
+=====================================================================
+Found a 62 line (153 tokens) duplication in the following files: 
+Starting at line 3686 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docfile.cxx
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/persist/transbnd.cxx
+
+		m_bDonePending = TRUE;
+}
+
+/*========================================================================
+ *
+ * SvKeyValueIterator implementation.
+ *
+ *======================================================================*/
+SV_DECL_PTRARR_DEL(SvKeyValueList_Impl, SvKeyValue*, 0, 4)
+SV_IMPL_PTRARR(SvKeyValueList_Impl, SvKeyValue*);
+
+/*
+ * SvKeyValueIterator.
+ */
+SvKeyValueIterator::SvKeyValueIterator (void)
+	: m_pList (new SvKeyValueList_Impl),
+	  m_nPos  (0)
+{
+}
+
+/*
+ * ~SvKeyValueIterator.
+ */
+SvKeyValueIterator::~SvKeyValueIterator (void)
+{
+	delete m_pList;
+}
+
+/*
+ * GetFirst.
+ */
+BOOL SvKeyValueIterator::GetFirst (SvKeyValue &rKeyVal)
+{
+	m_nPos = m_pList->Count();
+	return GetNext (rKeyVal);
+}
+
+/*
+ * GetNext.
+ */
+BOOL SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal)
+{
+	if (m_nPos > 0)
+	{
+		rKeyVal = *m_pList->GetObject(--m_nPos);
+		return TRUE;
+	}
+	else
+	{
+		// Nothing to do.
+		return FALSE;
+	}
+}
+
+/*
+ * Append.
+ */
+void SvKeyValueIterator::Append (const SvKeyValue &rKeyVal)
+{
+	SvKeyValue *pKeyVal = new SvKeyValue (rKeyVal);
+	m_pList->C40_INSERT(SvKeyValue, pKeyVal, m_pList->Count());
+}
+=====================================================================
+Found a 25 line (153 tokens) duplication in the following files: 
+Starting at line 606 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/registerextensions.cxx
+
+    TCHAR szValue[8192];
+    DWORD nValueSize = sizeof(szValue);
+    HKEY  hKey;
+    std::_tstring sInstDir;
+    
+    std::_tstring sProductKey = GetMsiProperty( handle, TEXT("FINDPRODUCT") );
+    // MessageBox( NULL, sProductKey.c_str(), "Titel", MB_OK );
+    
+    if ( ERROR_SUCCESS == RegOpenKey( HKEY_CURRENT_USER,  sProductKey.c_str(), &hKey ) )
+    {
+        if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+        {
+            sInstDir = szValue;
+        }
+        RegCloseKey( hKey );
+    }
+    else if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE,  sProductKey.c_str(), &hKey ) )
+    {
+        if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("INSTALLLOCATION"), NULL, NULL, (LPBYTE)szValue, &nValueSize ) )
+        {
+            sInstDir = szValue;
+        }
+        RegCloseKey( hKey );
+    }
+    else
+=====================================================================
+Found a 31 line (153 tokens) duplication in the following files: 
+Starting at line 3583 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 584 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewfun3.cxx
+
+			ULONG nFormatId = 0;
+				//	als erstes SvDraw-Model, dann Grafik
+				//	(Grafik darf nur bei einzelner Grafik drinstehen)
+
+			if (aDataHelper.HasFormat( SOT_FORMATSTR_ID_DRAWING ))
+				nFormatId = SOT_FORMATSTR_ID_DRAWING;
+			else if (aDataHelper.HasFormat( SOT_FORMATSTR_ID_SVXB ))
+				nFormatId = SOT_FORMATSTR_ID_SVXB;
+			else if (aDataHelper.HasFormat( SOT_FORMATSTR_ID_EMBED_SOURCE ))
+			{
+				//	If it's a Writer object, insert RTF instead of OLE
+				BOOL bDoRtf = FALSE;
+				SotStorageStreamRef xStm;
+				TransferableObjectDescriptor aObjDesc;
+				if( aDataHelper.GetTransferableObjectDescriptor( SOT_FORMATSTR_ID_OBJECTDESCRIPTOR, aObjDesc ) &&
+					aDataHelper.GetSotStorageStream( SOT_FORMATSTR_ID_EMBED_SOURCE, xStm ) )
+				{
+					SotStorageRef xStore( new SotStorage( *xStm ) );
+					bDoRtf = ( ( aObjDesc.maClassName == SvGlobalName( SO3_SW_CLASSID ) ||
+								 aObjDesc.maClassName == SvGlobalName( SO3_SWWEB_CLASSID ) )
+							   && aDataHelper.HasFormat( SOT_FORMAT_RTF ) );
+				}
+				if ( bDoRtf )
+					nFormatId = FORMAT_RTF;
+				else
+					nFormatId = SOT_FORMATSTR_ID_EMBED_SOURCE;
+			}
+			else if (aDataHelper.HasFormat( SOT_FORMATSTR_ID_LINK_SOURCE ))
+				nFormatId = SOT_FORMATSTR_ID_LINK_SOURCE;
+			// the following format can not affect scenario from #89579#
+			else if (aDataHelper.HasFormat( SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE ))
+=====================================================================
+Found a 12 line (153 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/formatsh.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/futempl.cxx
+
+                com::sun::star::uno::Reference< com::sun::star::style::XStyleFamiliesSupplier > xModel(mpDoc->GetDocSh()->GetModel(), com::sun::star::uno::UNO_QUERY);
+                try
+                {
+                    com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > xStyles;
+                    com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > xCont = xModel->getStyleFamilies();
+                    xCont->getByName(pFamilyItem->GetValue()) >>= xStyles;
+                    com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xInfo;
+                    xStyles->getByName( pNameItem->GetValue() ) >>= xInfo;
+                    ::rtl::OUString aUIName;
+                    xInfo->getPropertyValue( ::rtl::OUString::createFromAscii("DisplayName") ) >>= aUIName;
+                    if ( aUIName.getLength() )
+                        rReq.AppendItem( SfxStringItem( nSId, aUIName ) );
+=====================================================================
+Found a 22 line (153 tokens) duplication in the following files: 
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbawindow.cxx
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbawindows.cxx
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbaworkbooks.cxx
+
+		return makeAny( m_books[ it->second ] );
+		
+	}
+
+	virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (uno::RuntimeException) 
+	{ 
+		uno::Sequence< ::rtl::OUString > names( namesToIndices.size() );
+		::rtl::OUString* pString = names.getArray();
+		NameIndexHash::const_iterator it = namesToIndices.begin();
+		NameIndexHash::const_iterator it_end = namesToIndices.end();
+		for ( ; it != it_end; ++it, ++pString )
+			*pString = it->first;	
+		return names;	
+	}
+
+	virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException) 
+	{ 
+		NameIndexHash::const_iterator it = namesToIndices.find( aName );
+		return (it != namesToIndices.end());
+	}
+
+};
+=====================================================================
+Found a 60 line (153 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_ConnectorSocket.cxx
+Starting at line 3178 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+namespace osl_ConnectorSocket
+{
+
+	/** testing the method:
+		ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet, 
+						oslProtocol	Protocol = osl_Socket_ProtocolIp,
+						oslSocketType	Type = osl_Socket_TypeStream);
+	*/
+
+	class ctors : public CppUnit::TestFixture
+	{
+	public:
+		void ctors_001()
+		{
+			/// Socket constructor.
+			::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the connector socket was created successfully.", 
+									osl_Socket_TypeStream ==  csSocket.getType( ) );
+		}
+	
+		CPPUNIT_TEST_SUITE( ctors );
+		CPPUNIT_TEST( ctors_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class ctors
+	
+	/** testing the method:
+		oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0);
+	*/
+
+	class connect : public CppUnit::TestFixture
+	{
+	public:
+		TimeValue *pTimeout;
+		::osl::AcceptorSocket asAcceptorSocket;
+		::osl::ConnectorSocket csConnectorSocket;
+		
+		
+		// initialization
+		void setUp( )
+		{
+			pTimeout  = ( TimeValue* )malloc( sizeof( TimeValue ) );
+			pTimeout->Seconds = 3;
+			pTimeout->Nanosec = 0;
+		//	sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			free( pTimeout );
+		//	sHandle = NULL;
+			asAcceptorSocket.close( );
+			csConnectorSocket.close( );
+		}
+
+	
+		void connect_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT2 );
+=====================================================================
+Found a 24 line (153 tokens) duplication in the following files: 
+Starting at line 1022 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+Starting at line 1067 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+
+    String  aNode( String::CreateFromAscii( "ServiceManager/HyphenatorList" ) );
+    Sequence< OUString > aNames( /*aCfg.*/GetNodeNames( aNode ) );
+    OUString *pNames = aNames.getArray();
+    INT32 nLen = aNames.getLength();
+
+	// append path prefix need for 'GetProperties' call below
+	String aPrefix( aNode );
+	aPrefix.Append( (sal_Unicode) '/' );
+	for (int i = 0;  i < nLen;  ++i)
+	{
+		OUString aTmp( aPrefix );
+		aTmp += pNames[i];
+		pNames[i] = aTmp;
+	}
+
+    Sequence< Any > aValues( /*aCfg.*/GetProperties( aNames ) );
+    if (nLen  &&  nLen == aValues.getLength())
+    {
+        const Any *pValues = aValues.getConstArray();
+        for (INT32 i = 0;  i < nLen;  ++i)
+        {
+            Sequence< OUString > aSvcImplNames;
+            if (pValues[i] >>= aSvcImplNames)
+            {
+=====================================================================
+Found a 20 line (153 tokens) duplication in the following files: 
+Starting at line 725 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1245 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xd0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x01, 0xf2, 0xd2 },
+{ 0x01, 0xf3, 0xd3 },
+{ 0x01, 0xf4, 0xd4 },
+{ 0x01, 0xf5, 0xd5 },
+{ 0x01, 0xf6, 0xd6 },
+{ 0x00, 0xd7, 0xd7 },
+{ 0x01, 0xf8, 0xd8 },
+{ 0x01, 0xf9, 0xd9 },
+{ 0x01, 0xfa, 0xda },
+{ 0x01, 0xfb, 0xdb },
+{ 0x01, 0xfc, 0xdc },
+{ 0x01, 0xfd, 0xdd },
+{ 0x01, 0xfe, 0xde },
+{ 0x00, 0xdf, 0xdf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xe3 },
+=====================================================================
+Found a 24 line (153 tokens) duplication in the following files: 
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/pipetest.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/pumptest.cxx
+
+	~OPumpTest();
+	
+public: // implementation names
+    static Sequence< OUString > 	getSupportedServiceNames_Static(void) throw();
+	static OUString 				getImplementationName_Static() throw();	
+
+public:	
+    virtual void SAL_CALL testInvariant(const OUString& TestName, const Reference < XInterface >& TestObject) 
+		throw  ( IllegalArgumentException, RuntimeException) ;
+
+    virtual sal_Int32 SAL_CALL test(	const OUString& TestName, 
+										const Reference < XInterface >& TestObject, 
+										sal_Int32 hTestHandle)
+		throw  (	IllegalArgumentException, 
+					RuntimeException);
+
+    virtual sal_Bool SAL_CALL testPassed(void) 								throw  (	RuntimeException) ;
+    virtual Sequence< OUString > SAL_CALL getErrors(void) 				throw  (RuntimeException) ;
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void) 		throw  (RuntimeException);
+	virtual Sequence< OUString > SAL_CALL getWarnings(void) 				throw  (RuntimeException);	
+    
+private:
+	void testSimple( const Reference < XInterface > & );
+	void testWrongUsage( const Reference < XInterface > & );
+=====================================================================
+Found a 6 line (153 tokens) duplication in the following files: 
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1850 - 185f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 6 line (153 tokens) duplication in the following files: 
+Starting at line 1182 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1244 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 7 line (153 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1182 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17, 0, 0,// 0ec0 - 0ecf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ed0 - 0edf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ee0 - 0eef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ef0 - 0eff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f00 - 0f0f
+     0, 0, 0, 0, 0, 0, 0, 0,17,17, 0, 0, 0, 0, 0, 0,// 0f10 - 0f1f
+=====================================================================
+Found a 6 line (153 tokens) duplication in the following files: 
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0530 - 053f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0540 - 054f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 7 line (153 tokens) duplication in the following files: 
+Starting at line 624 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 31b0 - 31bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31c0 - 31cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31d0 - 31df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31e0 - 31ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31f0 - 31ff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3200 - 320f
+=====================================================================
+Found a 6 line (153 tokens) duplication in the following files: 
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 701 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    19, 4, 4, 4, 4, 4,27,27,10,10,10, 0, 0, 0,27,27,// 3030 - 303f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3080 - 308f
+=====================================================================
+Found a 6 line (153 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21, 0, 0, 0,// 1690 - 169f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16a0 - 16af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16b0 - 16bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16c0 - 16cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16d0 - 16df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,23,23,23,10,10,// 16e0 - 16ef
+=====================================================================
+Found a 5 line (153 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2140 - 2147
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2148 - 214f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2150 - 2157
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2158 - 215f
+    {0x68, 0x2170}, {0x68, 0x2171}, {0x68, 0x2172}, {0x68, 0x2173}, {0x68, 0x2174}, {0x68, 0x2175}, {0x68, 0x2176}, {0x68, 0x2177}, // 2160 - 2167
+=====================================================================
+Found a 29 line (153 tokens) duplication in the following files: 
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/buttontoolbarcontroller.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+    const rtl::OUString aParentWindow( RTL_CONSTASCII_USTRINGPARAM( "ParentWindow" ));
+
+    bool bInitialized( true );
+
+    { 
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        bInitialized = m_bInitialized;
+    }
+
+    if ( !bInitialized )
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        m_bInitialized = sal_True;
+        
+        PropertyValue aPropValue;
+        for ( int i = 0; i < aArguments.getLength(); i++ )
+        {
+            if ( aArguments[i] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "Frame" ))
+					m_xFrame.set(aPropValue.Value,UNO_QUERY);
+                else if ( aPropValue.Name.equalsAscii( "CommandURL" ))
+                    aPropValue.Value >>= m_aCommandURL;
+                else if ( aPropValue.Name.equalsAscii( "ServiceManager" ))
+					m_xServiceManager.set(aPropValue.Value,UNO_QUERY);
+=====================================================================
+Found a 15 line (153 tokens) duplication in the following files: 
+Starting at line 1599 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 2338 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+
+				const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+				
+				GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+				Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+				const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+				const Point		aDestPt( pA->GetPoint() );
+				const Size		aDestSize( pA->GetSize() );
+				const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+				const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+				long			nMoveX, nMoveY;
+
+				if( fScaleX != 1.0 || fScaleY != 1.0 )
+				{
+					aTmpMtf.Scale( fScaleX, fScaleY );
+					aSrcPt.X() = FRound( aSrcPt.X() * fScaleX ), aSrcPt.Y() = FRound( aSrcPt.Y() * fScaleY );
+=====================================================================
+Found a 27 line (153 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+
+		{ OSL_TRACE( "> TestWeakAggComponentImpl disposing called... <\n" ); }
+	
+	// A
+	virtual OUString SAL_CALL a() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("a") ); }
+	// BA
+	virtual OUString SAL_CALL ba() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("ba") ); }
+	// CA
+	virtual OUString SAL_CALL ca() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("ca") ); }
+	// DBA
+	virtual OUString SAL_CALL dba() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("dba") ); }
+	// E
+	virtual OUString SAL_CALL e() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("e") ); }
+	// FE
+	virtual OUString SAL_CALL fe() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("fe") ); }
+	// G
+	virtual OUString SAL_CALL g() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("g") ); }
+};
+
+//==================================================================================================
+struct TestImplInh : public ImplInheritanceHelper2< TestWeakImpl, H, I >
+=====================================================================
+Found a 43 line (153 tokens) duplication in the following files: 
+Starting at line 858 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupBy(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByBeyondSelect(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByUnrelated(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleResultSets(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsLikeEscapeClause(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOrderByUnrelated(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+=====================================================================
+Found a 30 line (153 tokens) duplication in the following files: 
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 935 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+    OSL_UNUSED( nRetCode );
+}
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper* OStatement_Base::createArrayHelper( ) const
+{
+	Sequence< Property > aProps(10);
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & OStatement_Base::getInfoHelper()
+{
+	return *const_cast<OStatement_Base*>(this)->getArrayHelper();
+}
+// -------------------------------------------------------------------------
+sal_Bool OStatement_Base::convertFastPropertyValue(
+							Any & rConvertedValue,
+=====================================================================
+Found a 3 line (153 tokens) duplication in the following files: 
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/genericpropertyset.cxx
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+
+		virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+		virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+		virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 7 line (153 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx
+
+    virtual ~WrappedLineStyleProperty();
+
+    virtual void setPropertyValue( const Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    virtual void setPropertyToDefault( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >& xInnerPropertyState ) const
+                        throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 34 line (153 tokens) duplication in the following files: 
+Starting at line 398 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (cppu_relatesToInterface( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pUnoArgs[nPos], pParamTypeDescr, &pThis->pBridge->aUno2Cpp );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+=====================================================================
+Found a 32 line (153 tokens) duplication in the following files: 
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+				pCallStack, pReturnValue );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+		{
+		case 1: // acquire()
+			pCppI->acquireProxy(); // non virtual call!
+			break;
+		case 2: // release()
+			pCppI->releaseProxy(); // non virtual call!
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
+                        &pInterface, pTD, cpp_acquire );
+=====================================================================
+Found a 28 line (153 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/srcview.cxx
+
+	pPrinter->SetFillColor( Color(COL_TRANSPARENT) );
+
+	Font aFont( aOldFont );
+	aFont.SetWeight( WEIGHT_BOLD );
+	aFont.SetAlign( ALIGN_BOTTOM );
+	pPrinter->SetFont( aFont );
+
+	long nFontHeight = pPrinter->GetTextHeight();
+
+	// 1.Border => Strich, 2+3 Border = Freiraum.
+	long nYTop = TMARGPRN-3*nBorder-nFontHeight;
+
+	long nXLeft = nLeftMargin-nBorder;
+	long nXRight = aSz.Width()-RMARGPRN+nBorder;
+
+	pPrinter->DrawRect( Rectangle(
+		Point( nXLeft, nYTop ),
+		Size( nXRight-nXLeft, aSz.Height() - nYTop - BMARGPRN + nBorder ) ) );
+
+
+	long nY = TMARGPRN-2*nBorder;
+	Point aPos( nLeftMargin, nY );
+	pPrinter->DrawText( aPos, rTitle );
+	if ( nPages != 1 )
+	{
+		aFont.SetWeight( WEIGHT_NORMAL );
+		pPrinter->SetFont( aFont );
+		String aPageStr( C2S(" [") );
+=====================================================================
+Found a 22 line (152 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 535 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        weight = (weight_array[x_hr] * 
+                                  weight_array[y_hr + image_subpixel_size] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr--;
+=====================================================================
+Found a 23 line (152 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_bounding_rect.h
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_bounding_rect.h
+
+        vs.rewind(path_id);
+        unsigned cmd;
+        while(!is_stop(cmd = vs.vertex(&x, &y)))
+        {
+            if(is_vertex(cmd))
+            {
+                if(first)
+                {
+                    *x1 = CoordT(x);
+                    *y1 = CoordT(y);
+                    *x2 = CoordT(x);
+                    *y2 = CoordT(y);
+                    first = false;
+                }
+                else
+                {
+                    if(CoordT(x) < *x1) *x1 = CoordT(x);
+                    if(CoordT(y) < *y1) *y1 = CoordT(y);
+                    if(CoordT(x) > *x2) *x2 = CoordT(x);
+                    if(CoordT(y) > *y2) *y2 = CoordT(y);
+                }
+            }
+        }
+=====================================================================
+Found a 6 line (152 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/timemove_mask.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/timesize_mask.h
+
+ 0xff,0xff,0x03,0x80,0xff,0xff,0x03,0x80,0xff,0xff,0x03,0x80,0xff,0xff,0x03,
+ 0x80,0xff,0xff,0x03,0x80,0xff,0xff,0x03,0x80,0xff,0xff,0x03,0x80,0xff,0xff,
+ 0x03,0x00,0x80,0x03,0x00,0x00,0xc0,0x07,0x00,0x00,0xe0,0x0f,0x00,0x00,0xc0,
+ 0x07,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 7 line (152 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movefile_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/moveflnk_curs.h
+
+   0xba, 0x1e, 0x00, 0x00, 0xbe, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
+   0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x03, 0x00,
+   0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
+   0x00, 0xc2, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
+   0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 8 line (152 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawconnect_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawpolygon_curs.h
+
+static char drawpolygon_curs_bits[] = {
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x83, 0x00,
+=====================================================================
+Found a 8 line (152 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawellipse_curs.h
+
+static char drawellipse_curs_bits[] = {
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x42, 0x00,
+   0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x81, 0x00,
+=====================================================================
+Found a 7 line (152 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyfile_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/copyflnk_curs.h
+
+   0xba, 0x1e, 0x00, 0x00, 0xbe, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
+   0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x03, 0x00,
+   0x00, 0x7e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
+   0x00, 0xc2, 0xe0, 0x3f, 0x00, 0xc0, 0xe0, 0x3f, 0x00, 0x80, 0xe1, 0x3d,
+   0x00, 0x80, 0xe1, 0x3d, 0x00, 0x00, 0x63, 0x30, 0x00, 0x00, 0xe3, 0x3d,
+   0x00, 0x00, 0xe0, 0x3d, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0xe0, 0x3f,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 6 line (152 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+
+static char assw_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 25 line (152 tokens) duplication in the following files: 
+Starting at line 497 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/wmadaptor.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/wmadaptor.cxx
+
+            )
+        {
+            Atom* pAtoms = (Atom*)pProperty;
+            char** pAtomNames = (char**)alloca( sizeof(char*)*nItems );
+            if( XGetAtomNames( m_pDisplay, pAtoms, nItems, pAtomNames ) )
+            {
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr, "supported protocols:\n" );
+#endif
+                for( unsigned int i = 0; i < nItems; i++ )
+                {
+                    int nProtocol = -1;
+                    WMAdaptorProtocol aSearch;
+                    aSearch.pProtocol = pAtomNames[i];
+                    WMAdaptorProtocol* pMatch = (WMAdaptorProtocol*)
+                        bsearch( &aSearch,
+                                 aProtocolTab,
+                                 sizeof( aProtocolTab )/sizeof( aProtocolTab[0] ),
+                                 sizeof( struct WMAdaptorProtocol ),
+                                 compareProtocol );
+                    if( pMatch )
+                    {
+                        nProtocol = pMatch->nProtocol;
+                        m_aWMAtoms[ nProtocol ] = pAtoms[ i ];
+                        if( pMatch->nProtocol == WIN_LAYER )
+=====================================================================
+Found a 34 line (152 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndlcon.cxx
+Starting at line 413 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndlcon.cxx
+
+sal_uInt32 DNDListenerContainer::fireDropActionChangedEvent( const Reference< XDropTargetDragContext >& context,
+	sal_Int8 dropAction, sal_Int32 locationX, sal_Int32 locationY, sal_Int8 sourceActions )
+{
+	sal_uInt32 nRet = 0;
+	
+	// fire DropTargetDropEvent on all XDropTargetListeners
+	OInterfaceContainerHelper *pContainer = rBHelper.getContainer( getCppuType( ( Reference < XDropTargetListener > * ) 0) );
+        
+	if( pContainer && m_bActive )
+	{
+		OInterfaceIteratorHelper aIterator( *pContainer );
+
+        // remember context to use in own context methods
+        m_xDropTargetDragContext = context;
+
+		// do not construct the event before you are sure at least one listener is registered
+        DropTargetDragEvent aEvent( static_cast < XDropTarget * > (this), 0, 
+            static_cast < XDropTargetDragContext * > (this),
+            dropAction, locationX, locationY, sourceActions );
+
+		while (aIterator.hasMoreElements())
+		{
+			// FIXME: this can be simplified as soon as the Iterator has a remove method
+			Reference< XInterface > xElement( aIterator.next() );
+
+			try
+			{
+				// this may result in a runtime exception
+				Reference < XDropTargetListener > xListener( xElement, UNO_QUERY );
+
+				if( xListener.is() )
+				{
+                    if( m_xDropTargetDragContext.is() )
+                        xListener->dropActionChanged( aEvent );
+=====================================================================
+Found a 33 line (152 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/provider/cancelcommandexecution.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/provider/cancelcommandexecution.cxx
+
+    aArgs[ 1 ] <<= rArg2;
+
+    rtl::Reference< ucbhelper::SimpleIOErrorRequest > xRequest
+        = new ucbhelper::SimpleIOErrorRequest(
+                                    eError, aArgs, rMessage, xContext );
+    if ( xEnv.is() )
+    {
+        uno::Reference<
+            task::XInteractionHandler > xIH = xEnv->getInteractionHandler();
+        if ( xIH.is() )
+        {
+            xIH->handle( xRequest.get() );
+
+            rtl::Reference< ucbhelper::InteractionContinuation > xSelection
+				= xRequest->getSelection();
+
+            if ( xSelection.is() )
+                throw ucb::CommandFailedException( rtl::OUString(),
+                                                   xContext,
+                                                   xRequest->getRequest() );
+        }
+    }
+
+    cppu::throwException( xRequest->getRequest() );
+
+    OSL_ENSURE( sal_False, "Return from cppu::throwException call!!!" );
+    throw uno::RuntimeException();
+}
+#endif // SUPD, 641
+
+//=========================================================================
+void cancelCommandExecution( const ucb::IOErrorCode eError,
+                             const uno::Sequence< uno::Any > & rArgs,
+=====================================================================
+Found a 31 line (152 tokens) duplication in the following files: 
+Starting at line 906 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1310 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+// static
+uno::Reference< sdbc::XRow > Content::getPropertyValues(
+    const uno::Reference< lang::XMultiServiceFactory >& rSMgr,
+    const uno::Sequence< beans::Property >& rProperties,
+    const ContentProperties& rData,
+    const rtl::Reference< ::ucbhelper::ContentProviderImplHelper >& rProvider,
+    const rtl::OUString& rContentId )
+{
+  	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+    	= new ::ucbhelper::PropertyValueSet( rSMgr );
+
+    sal_Int32 nCount = rProperties.getLength();
+    if ( nCount )
+    {
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+      	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+      	for ( sal_Int32 n = 0; n < nCount; ++n )
+        {
+            const beans::Property& rProp = pProps[ n ];
+=====================================================================
+Found a 17 line (152 tokens) duplication in the following files: 
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmoutputpage.cxx
+Starting at line 1243 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmoutputpage.cxx
+
+        SfxObjectShellRef xTempDocShell( new SwDocShell( SFX_CREATE_MODE_STANDARD ) );
+        xTempDocShell->DoInitNew( 0 );
+        SfxViewFrame* pTempFrame = SfxViewFrame::CreateViewFrame( *xTempDocShell, 0, TRUE );
+//        pTempFrame->GetFrame()->Appear();
+        SwView* pTempView = static_cast<SwView*>( pTempFrame->GetViewShell() );
+        pTargetView->GetWrtShell().StartAction();
+        SwgReaderOption aOpt;
+        aOpt.SetTxtFmts( sal_True );
+        aOpt.SetFrmFmts( sal_True );
+        aOpt.SetPageDescs( sal_True );
+        aOpt.SetNumRules( sal_True );
+        aOpt.SetMerge( sal_False );
+        pTempView->GetDocShell()->LoadStylesFromFile(
+                sTargetTempURL, aOpt, sal_True );
+        pTargetView->GetWrtShell().PastePages(pTempView->GetWrtShell(),
+                (USHORT)rInfo.nStartPageInTarget, (USHORT)rInfo.nEndPageInTarget );
+        pTargetView->GetWrtShell().EndAction();
+=====================================================================
+Found a 21 line (152 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/applab.cxx
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/applab.cxx
+
+						sal_uInt16 nCol, sal_uInt16 nRow, sal_Bool bLast, sal_Bool bPage)
+{
+	SfxItemSet aSet(rSh.GetAttrPool(), RES_ANCHOR, RES_ANCHOR,
+						RES_VERT_ORIENT, RES_VERT_ORIENT, RES_HORI_ORIENT, RES_HORI_ORIENT, 0 );
+	sal_uInt16 nPhyPageNum, nVirtPageNum;
+	rSh.GetPageNum( nPhyPageNum, nVirtPageNum );
+
+	aSet.Put(SwFmtAnchor(bPage ? FLY_IN_CNTNT : FLY_PAGE, nPhyPageNum));
+	if (!bPage)
+	{
+		aSet.Put(SwFmtHoriOrient(rItem.lLeft + nCol * rItem.lHDist,
+													HORI_NONE, REL_PG_FRAME ));
+		aSet.Put(SwFmtVertOrient(rItem.lUpper + nRow * rItem.lVDist,
+													VERT_NONE, REL_PG_FRAME ));
+	}
+	const SwFrmFmt *pFmt = rSh.NewFlyFrm(aSet, sal_True,  &rFmt );	// Fly einfuegen
+	ASSERT( pFmt, "Fly not inserted" );
+
+	rSh.UnSelectFrm();	//Rahmen wurde automatisch selektiert
+
+	rSh.SetTxtFmtColl( rSh.GetTxtCollFromPool( RES_POOLCOLL_STANDARD ) );
+=====================================================================
+Found a 35 line (152 tokens) duplication in the following files: 
+Starting at line 4293 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 4501 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                    p->nEndPos = p->nStartPos = WW8_CP_MAX;
+                else
+                    GetNewSprms( *p );
+            }
+            else
+                GetNewSprms( *p );      // bei allen PLCFen initialisiert sein
+        }
+        else if( p->pPLCFx )
+            GetNewNoSprms( *p );
+    }
+}
+
+WW8PLCFMan::~WW8PLCFMan()
+{
+    for( USHORT i=0; i<nPLCF; i++)
+        delete aD[i].pIdStk;
+}
+
+// 0. welche Attr.-Klasse,
+// 1. ob ein Attr.-Start ist,
+// 2. CP, wo ist naechste Attr.-Aenderung
+USHORT WW8PLCFMan::WhereIdx(bool* pbStart, long* pPos) const
+{
+    ASSERT(nPLCF,"What the hell");
+    long nNext = LONG_MAX;  // SuchReihenfolge:
+    USHORT nNextIdx = nPLCF;// first ending found ( CHP, PAP, ( SEP ) ),
+    bool bStart = true;     // dann Anfaenge finden ( ( SEP ), PAP, CHP )
+    USHORT i;
+    register const WW8PLCFxDesc* pD;
+    for (i=0; i < nPLCF; i++)
+    {
+        pD = &aD[i];
+        if (pD != pPcdA)
+        {
+            if( (pD->nEndPos < nNext) && (pD->nStartPos == WW8_CP_MAX) )
+=====================================================================
+Found a 22 line (152 tokens) duplication in the following files: 
+Starting at line 2781 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4046 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+			String sBRName = lcl_GetCellName(aNewDesc.nRight, aNewDesc.nBottom);
+            const SwTableBox* pTLBox = pTable->GetTblBox( sTLName );
+			if(pTLBox)
+			{
+				// hier muessen die Actions aufgehoben
+				UnoActionRemoveContext aRemoveContext(pFmt->GetDoc());
+				const SwStartNode* pSttNd = pTLBox->GetSttNd();
+				SwPosition aPos(*pSttNd);
+				// Cursor in die obere linke Zelle des Ranges setzen
+				SwUnoCrsr* pUnoCrsr = pFmt->GetDoc()->CreateUnoCrsr(aPos, sal_True);
+				pUnoCrsr->Move( fnMoveForward, fnGoNode );
+				pUnoCrsr->SetRemainInSection( sal_False );
+                const SwTableBox* pBRBox = pTable->GetTblBox( sBRName );
+				if(pBRBox)
+				{
+					pUnoCrsr->SetMark();
+					pUnoCrsr->GetPoint()->nNode = *pBRBox->GetSttNd();
+					pUnoCrsr->Move( fnMoveForward, fnGoNode );
+					SwUnoTableCrsr* pCrsr = *pUnoCrsr;
+					pCrsr->MakeBoxSels();
+					// pUnoCrsr wird uebergeben und nicht geloescht
+					SwXCellRange* pCellRange = new SwXCellRange(pUnoCrsr, *pFmt, aNewDesc);
+=====================================================================
+Found a 50 line (152 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+				sal_Int32 nNewBorder(100L - FRound(fNewBorder));
+
+				// clip
+				if(nNewBorder < 0L)
+				{
+					nNewBorder = 0L;
+				}
+
+				if(nNewBorder > 100L)
+				{
+					nNewBorder = 100L;
+				}
+
+				// set
+				if(nNewBorder != rG.aGradient.GetBorder())
+				{
+					rG.aGradient.SetBorder((sal_uInt16)nNewBorder);
+				}
+
+				// angle is not definitely necessary for these modes, but it makes
+				// controlling more fun for the user
+				aFullVec.normalize();
+				double fNewFullAngle(atan2(aFullVec.getY(), aFullVec.getX()));
+				fNewFullAngle /= F_PI180;
+				fNewFullAngle *= -10.0;
+				fNewFullAngle += 900.0;
+
+				// clip
+				while(fNewFullAngle < 0.0)
+				{
+					fNewFullAngle += 3600.0;
+				}
+
+				while(fNewFullAngle >= 3600.0)
+				{
+					fNewFullAngle -= 3600.0;
+				}
+
+				// to int and set
+				const sal_Int32 nNewAngle(FRound(fNewFullAngle));
+
+				if(nNewAngle != rGOld.aGradient.GetAngle())
+				{
+					rG.aGradient.SetAngle(nNewAngle);
+				}
+			}
+
+			break;
+		}
+		case XGRAD_ELLIPTICAL :
+=====================================================================
+Found a 28 line (152 tokens) duplication in the following files: 
+Starting at line 1855 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2127 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+    aValue.WriteCharArray( *rContents );
+
+	WriteAlign(rContents,4);
+
+    nFixedAreaLen = static_cast<sal_uInt16>(rContents->Tell()-nOldPos-4);
+
+	bRet = aFontData.Export(rContents,rPropSet);
+
+    rContents->Seek(nOldPos);
+	*rContents << nStandardId;
+	*rContents << nFixedAreaLen;
+
+	*rContents << pBlockFlags[0];
+	*rContents << pBlockFlags[1];
+	*rContents << pBlockFlags[2];
+	*rContents << pBlockFlags[3];
+	*rContents << pBlockFlags[4];
+	*rContents << pBlockFlags[5];
+	*rContents << pBlockFlags[6];
+	*rContents << pBlockFlags[7];
+
+	DBG_ASSERT((rContents.Is() &&
+		(SVSTREAM_OK == rContents->GetError())),"damn");
+	return bRet;
+}
+
+
+sal_Bool OCX_TextBox::Export(SvStorageRef &rObj,
+=====================================================================
+Found a 9 line (152 tokens) duplication in the following files: 
+Starting at line 2403 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2518 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1882 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I },
+=====================================================================
+Found a 12 line (152 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/futempl.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/docst.cxx
+
+                    com::sun::star::uno::Reference< com::sun::star::style::XStyleFamiliesSupplier > xModel(GetModel(), com::sun::star::uno::UNO_QUERY);
+                    try
+                    {
+                        com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > xStyles;
+                        com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > xCont = xModel->getStyleFamilies();
+                        xCont->getByName(pFamilyItem->GetValue()) >>= xStyles;
+                        com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xInfo;
+                        xStyles->getByName( pNameItem->GetValue() ) >>= xInfo;
+                        ::rtl::OUString aUIName;
+                        xInfo->getPropertyValue( ::rtl::OUString::createFromAscii("DisplayName") ) >>= aUIName;
+                        if ( aUIName.getLength() )
+                            rReq.AppendItem( SfxStringItem( SID_STYLE_APPLY, aUIName ) );
+=====================================================================
+Found a 33 line (152 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/testHelperFunctions/testHelperFunctions.cxx
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/unload.cxx
+
+static void rtl_notifyUnloadingListeners();
+
+static sal_Bool isEqualTimeValue ( const TimeValue* time1,  const TimeValue* time2)
+{
+	if( time1->Seconds == time2->Seconds && 
+		time1->Nanosec == time2->Nanosec)
+		return sal_True;
+	else
+		return sal_False;
+}
+
+static sal_Bool isGreaterTimeValue(  const TimeValue* time1,  const TimeValue* time2)
+{
+	sal_Bool retval= sal_False;
+	if ( time1->Seconds > time2->Seconds)
+		retval= sal_True;
+	else if ( time1->Seconds == time2->Seconds)
+	{
+		if( time1->Nanosec > time2->Nanosec)
+			retval= sal_True;
+	}
+	return retval;
+}
+
+static sal_Bool isGreaterEqualTimeValue( const TimeValue* time1, const TimeValue* time2)
+{
+	if( isEqualTimeValue( time1, time2) )
+		return sal_True;
+	else if( isGreaterTimeValue( time1, time2))
+		return sal_True;
+	else
+		return sal_False;
+}
+=====================================================================
+Found a 32 line (152 tokens) duplication in the following files: 
+Starting at line 5751 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 9507 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+        CPPUNIT_TEST_SUITE( append_006_Int32_defaultParam );
+        CPPUNIT_TEST( append_001 ); 
+        CPPUNIT_TEST( append_002 );
+        CPPUNIT_TEST( append_003 );
+        CPPUNIT_TEST( append_004 );
+        CPPUNIT_TEST( append_005 );
+        CPPUNIT_TEST( append_006 ); 
+        CPPUNIT_TEST( append_007 );
+        CPPUNIT_TEST( append_008 );
+        CPPUNIT_TEST( append_009 );
+        CPPUNIT_TEST( append_010 );
+        CPPUNIT_TEST( append_011 ); 
+        CPPUNIT_TEST( append_012 );
+        CPPUNIT_TEST( append_013 );
+        CPPUNIT_TEST( append_014 );
+        CPPUNIT_TEST( append_015 );
+        CPPUNIT_TEST( append_016 ); 
+        CPPUNIT_TEST( append_017 );
+        CPPUNIT_TEST( append_018 );
+        CPPUNIT_TEST( append_019 );
+        CPPUNIT_TEST( append_020 );
+        CPPUNIT_TEST( append_021 ); 
+        CPPUNIT_TEST( append_022 );
+        CPPUNIT_TEST( append_023 );
+        CPPUNIT_TEST( append_024 );
+        CPPUNIT_TEST( append_025 );
+#ifdef WITH_CORE
+        CPPUNIT_TEST( append_026 ); 
+        CPPUNIT_TEST( append_027 );
+        CPPUNIT_TEST( append_028 );
+        CPPUNIT_TEST( append_029 );
+        CPPUNIT_TEST( append_030 );
+=====================================================================
+Found a 14 line (152 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/ModelImpl.cxx
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/datasource.cxx
+
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::embed;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::task;
+using namespace ::com::sun::star::ucb;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::reflection;
+=====================================================================
+Found a 27 line (152 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+
+		{ OSL_TRACE( "> TestWeakAggImpl dtor called... <\n" ); }
+	
+	// A
+	virtual OUString SAL_CALL a() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("a") ); }
+	// BA
+	virtual OUString SAL_CALL ba() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("ba") ); }
+	// CA
+	virtual OUString SAL_CALL ca() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("ca") ); }
+	// DBA
+	virtual OUString SAL_CALL dba() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("dba") ); }
+	// E
+	virtual OUString SAL_CALL e() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("e") ); }
+	// FE
+	virtual OUString SAL_CALL fe() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("fe") ); }
+	// G
+	virtual OUString SAL_CALL g() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("g") ); }
+};
+
+//==================================================================================================
+struct TestWeakImpl : public WeakImplHelper4< CA, DBA, FE, G >
+=====================================================================
+Found a 22 line (152 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/InputStream.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Reader.cxx
+
+sal_Int32 SAL_CALL java_io_Reader::available(  ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+	jboolean out(sal_False);
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv )
+	{
+		static const char * cSignature = "()Z";
+		static const char * cMethodName = "available";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID )
+		{
+			out = t.pEnv->CallBooleanMethod( object, mID);
+			ThrowSQLException(t.pEnv,*this);
+		}
+	} //t.pEnv
+	return out;
+}
+
+void SAL_CALL java_io_Reader::closeInput(  ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 32 line (152 tokens) duplication in the following files: 
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+		pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(pCallStack +1);
+    }
+    
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->pTypeDescr;
+	
+	OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nVtableCall >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pCppI );
+	}
+	
+	// determine called method
+	OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nVtableCall];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+    
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+=====================================================================
+Found a 25 line (152 tokens) duplication in the following files: 
+Starting at line 646 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+{
+=====================================================================
+Found a 23 line (152 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+        ng++;
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) 
+                // value
+		{
+=====================================================================
+Found a 25 line (151 tokens) duplication in the following files: 
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+Starting at line 328 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                                          image_subpixel_shift);
+            do
+            {
+                int x_hr;
+                int y_hr;
+
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                unsigned x1 = m_wrap_mode_x(x_lr);
+                unsigned x2 = ++m_wrap_mode_x;
+                x1 <<= 2;
+                x2 <<= 2;
+
+                unsigned y1 = m_wrap_mode_y(y_lr);
+                unsigned y2 = ++m_wrap_mode_y;
+                const value_type* ptr1 = (value_type*)base_type::source_image().row(y1);
+                const value_type* ptr2 = (value_type*)base_type::source_image().row(y2);
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 37 line (151 tokens) duplication in the following files: 
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+Starting at line 758 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+                                        sal_Int64 nMin, sal_Int64 nMax )
+{
+    sal_Bool bNeg = sal_False;
+    rValue = 0;
+
+    sal_Int32 nPos = 0L;
+    sal_Int32 nLen = rString.getLength();
+
+    // skip white space
+    while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) )
+        nPos++;
+
+    if( nPos < nLen && sal_Unicode('-') == rString[nPos] )
+    {
+        bNeg = sal_True;
+        nPos++;
+    }
+
+    // get number
+    while( nPos < nLen &&
+           sal_Unicode('0') <= rString[nPos] &&
+           sal_Unicode('9') >= rString[nPos] )
+    {
+        // TODO: check overflow!
+        rValue *= 10;
+        rValue += (rString[nPos] - sal_Unicode('0'));
+        nPos++;
+    }
+
+    if( bNeg )
+        rValue *= -1;
+
+    return ( nPos == nLen && rValue >= nMin && rValue <= nMax );
+}
+
+/** convert double number to string (using ::rtl::math) */
+void SvXMLUnitConverter::convertDouble(::rtl::OUStringBuffer& rBuffer,
+=====================================================================
+Found a 17 line (151 tokens) duplication in the following files: 
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+	if ( aPosAry.mnSrcWidth && aPosAry.mnSrcHeight )
+	{
+		aPosAry.mnSrcX		 = ImplLogicXToDevicePixel( rSrcPt.X() );
+		aPosAry.mnSrcY		 = ImplLogicYToDevicePixel( rSrcPt.Y() );
+		aPosAry.mnDestX 	 = ImplLogicXToDevicePixel( rDestPt.X() );
+		aPosAry.mnDestY 	 = ImplLogicYToDevicePixel( rDestPt.Y() );
+
+		Rectangle	aSrcOutRect( Point( mnOutOffX, mnOutOffY ),
+								 Size( mnOutWidth, mnOutHeight ) );
+		Rectangle	aSrcRect( Point( aPosAry.mnSrcX, aPosAry.mnSrcY ),
+							  Size( aPosAry.mnSrcWidth, aPosAry.mnSrcHeight ) );
+		long		nOldRight = aSrcRect.Right();
+		long		nOldBottom = aSrcRect.Bottom();
+
+		if ( !aSrcRect.Intersection( aSrcOutRect ).IsEmpty() )
+		{
+			if ( (aPosAry.mnSrcX+aPosAry.mnSrcWidth-1) > aSrcOutRect.Right() )
+=====================================================================
+Found a 40 line (151 tokens) duplication in the following files: 
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 306 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+  return m_pImpl->m_aResults.size();
+}
+
+//=========================================================================
+// virtual
+sal_uInt32 DataSupplier::currentCount()
+{
+	return m_pImpl->m_aResults.size();
+}
+
+//=========================================================================
+// virtual
+sal_Bool DataSupplier::isCountFinal()
+{
+	return m_pImpl->m_bCountFinal;
+}
+
+//=========================================================================
+// virtual
+uno::Reference< sdbc::XRow > DataSupplier::queryPropertyValues(
+                                                    sal_uInt32 nIndex  )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< sdbc::XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow;
+		if ( xRow.is() )
+		{
+			// Already cached.
+			return xRow;
+		}
+	}
+
+	if ( getResult( nIndex ) )
+	{
+        uno::Reference< sdbc::XRow > xRow
+            = Content::getPropertyValues(
+                m_pImpl->m_xSMgr,
+                getResultSet()->getProperties(),
+=====================================================================
+Found a 33 line (151 tokens) duplication in the following files: 
+Starting at line 1014 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtffld.cxx
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtffld.cxx
+
+			bFldRslt = TRUE;
+			break;
+
+		case RTF_U:
+			{
+				if( nTokenValue )
+					sFieldStr += (sal_Unicode)nTokenValue;
+				else
+					sFieldStr += aToken;
+			}
+			break;
+
+		case RTF_LINE:			cCh = '\n';	goto INSINGLECHAR;
+		case RTF_TAB:			cCh = '\t';	goto INSINGLECHAR;
+		case RTF_SUBENTRYINDEX:	cCh = ':';	goto INSINGLECHAR;
+		case RTF_EMDASH:		cCh = 151;	goto INSINGLECHAR;
+		case RTF_ENDASH:		cCh = 150;	goto INSINGLECHAR;
+		case RTF_BULLET:		cCh = 149;	goto INSINGLECHAR;
+		case RTF_LQUOTE:		cCh = 145;	goto INSINGLECHAR;
+		case RTF_RQUOTE:		cCh = 146;	goto INSINGLECHAR;
+		case RTF_LDBLQUOTE:		cCh = 147;	goto INSINGLECHAR;
+		case RTF_RDBLQUOTE:		cCh = 148;	goto INSINGLECHAR;
+INSINGLECHAR:
+			sFieldStr += ByteString::ConvertToUnicode( cCh,
+                           					RTL_TEXTENCODING_MS_1252 );
+			break;
+
+		// kein Break, aToken wird als Text gesetzt
+		case RTF_TEXTTOKEN:
+			sFieldStr += aToken;
+			break;
+
+		case RTF_PICT:		// Pic-Daten einlesen!
+=====================================================================
+Found a 24 line (151 tokens) duplication in the following files: 
+Starting at line 3112 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4846 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+uno::Sequence< OUString > SwXCellRange::getRowDescriptions(void)
+											throw( uno::RuntimeException )
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+	sal_Int16 nRowCount = getRowCount();
+	if(!nRowCount)
+	{
+		uno::RuntimeException aRuntime;
+		aRuntime.Message = C2U("Table too complex");
+		throw aRuntime;
+	}
+	uno::Sequence< OUString > aRet(bFirstColumnAsLabel ? nRowCount - 1 : nRowCount);
+	SwFrmFmt* pFmt = GetFrmFmt();
+	if(pFmt)
+	{
+		OUString* pArray = aRet.getArray();
+		if(bFirstColumnAsLabel)
+		{
+			sal_uInt16 nStart = bFirstRowAsLabel ? 1 : 0;
+			for(sal_uInt16 i = nStart; i < nRowCount; i++)
+			{
+				uno::Reference< table::XCell >  xCell = getCellByPosition(0, i);
+				if(!xCell.is())
+				{
+=====================================================================
+Found a 9 line (151 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/unoimap.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/unoimap.cxx
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/unoimap.cxx
+
+			static PropertyMapEntry aRectangleObj_Impl[] =
+			{
+				{ MAP_LEN( "URL" ),			HANDLE_URL,			&::getCppuType((const OUString*)0),	0, 0 },
+				{ MAP_LEN( "Title" ),		HANDLE_TITLE,		&::getCppuType((const OUString*)0),		0, 0 },
+				{ MAP_LEN( "Description" ),	HANDLE_DESCRIPTION, &::getCppuType((const OUString*)0),	0, 0 },
+				{ MAP_LEN( "Target" ),		HANDLE_TARGET,		&::getCppuType((const OUString*)0),	0, 0 },
+				{ MAP_LEN( "Name" ),		HANDLE_NAME,		&::getCppuType((const OUString*)0),	0, 0 },
+				{ MAP_LEN( "IsActive" ),	HANDLE_ISACTIVE,	&::getBooleanCppuType(),			0, 0 },
+				{ MAP_LEN( "Boundary" ),	HANDLE_BOUNDARY,	&::getCppuType((const awt::Rectangle*)0),	0, 0 },
+=====================================================================
+Found a 35 line (151 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/toolpanel/ScrollPanel.cxx
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/toolpanel/SubToolPanel.cxx
+
+Size SubToolPanel::GetRequiredSize (void)
+{
+    // First determine the width of the children.  This is the maximum of
+    // the current window width and the individual minimum widths of the
+    // children. 
+    int nChildrenWidth (GetSizePixel().Width());
+    unsigned int nCount = mpControlContainer->GetControlCount();
+    unsigned int nIndex;
+    for (nIndex=0; nIndex<nCount; nIndex++)
+    {
+        TreeNode* pChild = mpControlContainer->GetControl (nIndex);
+        int nMinimumWidth (pChild->GetMinimumWidth());
+        if (nMinimumWidth > nChildrenWidth)
+            nChildrenWidth = nMinimumWidth;
+    }
+
+    // Determine the accumulated width of all children when scaled to the
+    // minimum width.
+    nChildrenWidth -= 2*mnHorizontalBorder;
+    Size aTotalSize (nChildrenWidth, 
+        2*mnVerticalBorder + (nCount-1) * mnVerticalGap);
+    for (nIndex=0; nIndex<nCount; nIndex++)
+    {
+        TreeNode* pChild = mpControlContainer->GetControl (nIndex);
+        sal_Int32 nHeight = pChild->GetPreferredHeight(nChildrenWidth);
+        aTotalSize.Height() += nHeight;
+    }
+
+    return aTotalSize;
+}
+
+
+
+
+sal_Int32 SubToolPanel::LayoutChildren (void)
+=====================================================================
+Found a 31 line (151 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/cpp/remoteclient/remoteclient.cxx
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/examples/officeclient.cxx
+
+			}
+			
+		}
+		catch( ConnectionSetupException &e )
+		{
+			OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
+			printf( "%s\n", o.pData->buffer );
+			printf( "couldn't access local resource ( possible security resons )\n" );
+		}
+		catch( NoConnectException &e )
+		{
+			OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
+			printf( "%s\n", o.pData->buffer );
+			printf( "no server listening on the resource\n" );
+		}
+		catch( IllegalArgumentException &e )
+		{
+			OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
+			printf( "%s\n", o.pData->buffer );
+			printf( "uno url invalid\n" );
+		}
+		catch( RuntimeException & e )
+		{
+			OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
+			printf( "%s\n", o.pData->buffer );
+			printf( "a remote call was aborted\n" );
+		}
+	}
+	else
+	{
+		printf( "usage: (uno officeclient-component --) uno-url\n" 
+=====================================================================
+Found a 6 line (151 tokens) duplication in the following files: 
+Starting at line 1260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+=====================================================================
+Found a 5 line (151 tokens) duplication in the following files: 
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+=====================================================================
+Found a 5 line (151 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1279 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f70 - 1f7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f80 - 1f8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f90 - 1f9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1fa0 - 1faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,// 1fb0 - 1fbf
+=====================================================================
+Found a 26 line (151 tokens) duplication in the following files: 
+Starting at line 474 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/uicommanddescription.cxx
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/uicommanddescription.cxx
+
+                    aCmdToInfo.bPopup = sal_True;
+                    a = xNameAccess->getByName( m_aPropUILabel );
+                    a >>= aCmdToInfo.aLabel;
+                    a = xNameAccess->getByName( m_aPropUIContextLabel );
+                    a >>= aCmdToInfo.aContextLabel;
+                    a = xNameAccess->getByName( m_aPropProperties );
+                    a >>= aCmdToInfo.nProperties;
+
+                    m_aCmdInfoCache.insert( CommandToInfoCache::value_type( aNameSeq[i], aCmdToInfo ));
+
+                    if ( aCmdToInfo.nProperties & COMMAND_PROPERTY_IMAGE )
+                        aImageCommandVector.push_back( aNameSeq[i] );
+                    if ( aCmdToInfo.nProperties & COMMAND_PROPERTY_ROTATE )
+                        aImageRotateVector.push_back( aNameSeq[i] );
+                    if ( aCmdToInfo.nProperties & COMMAND_PROPERTY_MIRROR )
+                        aImageMirrorVector.push_back( aNameSeq[i] );
+                }
+            }
+            catch ( com::sun::star::lang::WrappedTargetException& )
+            {
+            }
+            catch ( com::sun::star::container::NoSuchElementException& )
+            {
+            }
+        }
+    }
+=====================================================================
+Found a 6 line (151 tokens) duplication in the following files: 
+Starting at line 942 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 873 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+				const long	nYLinePos = aBaseLinePos.Y() + ( nLineHeight << 1 );
+
+				aPoly[ 0 ].X() = aBaseLinePos.X(); aPoly[ 0 ].Y() = nYLinePos - ( nLineHeight >> 1 );
+				aPoly[ 1 ].X() = aBaseLinePos.X() + aNormSize.Width() - 1; aPoly[ 1 ].Y() = aPoly[ 0 ].Y();
+				aPoly[ 2 ].X() = aPoly[ 1 ].X(); aPoly[ 2 ].Y() = aPoly[ 0 ].Y() + nLineHeight - 1;
+				aPoly[ 3 ].X() = aPoly[ 0 ].X(); aPoly[ 3 ].Y() = aPoly[ 2 ].Y();
+=====================================================================
+Found a 27 line (151 tokens) duplication in the following files: 
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+			aStyle += NMSP_RTL::OUString::valueOf( ( 255 - (double) rLineColor.GetTransparency() ) / 255.0 );
+		}
+	}
+
+	// fill color
+	aStyle += B2UCONST( ";" );
+	aStyle += B2UCONST( "fill:" );
+	
+	if( rFillColor.GetTransparency() == 255 )
+		aStyle += B2UCONST( "none" );
+	else
+	{
+		// fill color value in rgb
+		aStyle += B2UCONST( "rgb(" );
+		aStyle += NMSP_RTL::OUString::valueOf( (sal_Int32) rFillColor.GetRed() );
+		aStyle += B2UCONST( "," );
+		aStyle += NMSP_RTL::OUString::valueOf( (sal_Int32) rFillColor.GetGreen() );
+		aStyle += B2UCONST( "," );
+		aStyle += NMSP_RTL::OUString::valueOf( (sal_Int32) rFillColor.GetBlue() );
+		aStyle += B2UCONST( ")" );
+
+		// fill color opacity in percent if neccessary
+		if( rFillColor.GetTransparency() )
+		{
+			aStyle += B2UCONST( ";" );
+			aStyle += B2UCONST( "fill-opacity:" );
+			aStyle += NMSP_RTL::OUString::valueOf( ( 255 - (double) rFillColor.GetTransparency() ) / 255.0 );
+=====================================================================
+Found a 10 line (151 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/aqua/HtmlFmtFlt.cxx
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/dtobj/FmtFilter.cxx
+
+std::string GetHtmlFormatHeader(size_t startHtml, size_t endHtml, size_t startFragment, size_t endFragment)
+{
+    std::ostringstream htmlHeader;
+    htmlHeader << "Version:1.0" << '\r' << '\n';
+    htmlHeader << "StartHTML:" << std::setw(10) << std::setfill('0') << std::dec << startHtml << '\r' << '\n';
+	htmlHeader << "EndHTML:" << std::setw(10) << std::setfill('0') << std::dec << endHtml << '\r' << '\n';
+	htmlHeader << "StartFragment:" << std::setw(10) << std::setfill('0') << std::dec << startFragment << '\r' << '\n';
+	htmlHeader << "EndFragment:" << std::setw(10) << std::setfill('0') << std::dec << endFragment << '\r' << '\n';
+    return htmlHeader.str();
+}
+=====================================================================
+Found a 26 line (151 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/runargv.c
+Starting at line 672 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/runargv.c
+
+      Do_profile_output( "e", M_RECIPE, _procs[i].pr_target );
+
+   _proc_cnt--;
+   dir = DmStrDup(Get_current_dir());
+   Set_dir( _procs[i].pr_dir );
+
+   if( _procs[i].pr_recipe != NIL(RCP) && !_abort_flg ) {
+      RCPPTR rp = _procs[i].pr_recipe;
+
+
+      Current_target = _procs[i].pr_target;
+      Handle_result( status, _procs[i].pr_ignore, FALSE, _procs[i].pr_target );
+      Current_target = NIL(CELL);
+
+      if ( _procs[i].pr_target->ce_attr & A_ERROR ) {
+	 Unlink_temp_files( _procs[i].pr_target );
+	 _procs[i].pr_last = TRUE;
+	 goto ABORT_REMAINDER_OF_RECIPE;
+      }
+
+      _procs[i].pr_recipe = rp->prp_next;
+
+      _use_i = i;
+      /* Run next recipe line. The rp->prp_attr propagates a possible
+       * wfc condition. */
+      runargv( _procs[i].pr_target, rp->prp_group,
+=====================================================================
+Found a 25 line (151 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/bootstrap/MNSINIParser.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/iniParser/main.cxx
+
+	void Dump()
+	{
+		IniSectionMap::iterator iBegin = mAllSection.begin();
+		IniSectionMap::iterator iEnd = mAllSection.end();
+		for(;iBegin != iEnd;iBegin++)
+		{
+			ini_Section *aSection = &(*iBegin).second;
+			OString sec_name_tmp = OUStringToOString(aSection->sName, RTL_TEXTENCODING_ASCII_US);
+			for(NameValueList::iterator itor=aSection->lList.begin();
+				itor != aSection->lList.end();
+				itor++)
+			{
+					struct ini_NameValue * aValue = &(*itor);
+					OString name_tmp = OUStringToOString(aValue->sName, RTL_TEXTENCODING_ASCII_US);
+					OString value_tmp = OUStringToOString(aValue->sValue, RTL_TEXTENCODING_UTF8);
+					OSL_TRACE(
+						" section=%s name=%s value=%s\n",
+										sec_name_tmp.getStr(),
+										name_tmp.getStr(),
+										value_tmp.getStr() );
+
+			}
+		}
+
+	}
+=====================================================================
+Found a 29 line (151 tokens) duplication in the following files: 
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/streaming/oslfile2streamwrap.cxx
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/oslstream.cxx
+
+OSLInputStreamWrapper::OSLInputStreamWrapper( File& _rFile )
+				 :m_pFile(&_rFile)
+				 ,m_bFileOwner(sal_False)
+{
+}
+
+//------------------------------------------------------------------
+OSLInputStreamWrapper::OSLInputStreamWrapper( File* pStream, sal_Bool bOwner )
+				 :m_pFile( pStream )
+				 ,m_bFileOwner( bOwner )
+{
+}
+
+//------------------------------------------------------------------
+OSLInputStreamWrapper::~OSLInputStreamWrapper()
+{
+	if( m_bFileOwner )
+		delete m_pFile;
+}
+
+//------------------------------------------------------------------------------
+sal_Int32 SAL_CALL OSLInputStreamWrapper::readBytes(staruno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
+				throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException )
+{
+	if (!m_pFile)
+		throw stario::NotConnectedException(::rtl::OUString(), static_cast<staruno::XWeak*>(this));
+
+	if (nBytesToRead < 0)
+		throw stario::BufferSizeExceededException(::rtl::OUString(),static_cast<staruno::XWeak*>(this));
+=====================================================================
+Found a 30 line (151 tokens) duplication in the following files: 
+Starting at line 2233 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2427 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+	if (superType.getLength() > 0)
+	{
+		o << "  ret = bonobobridge::cpp_convert_u2b((";
+		dumpCorbaType(o, superType, sal_False, sal_False);
+		o << "&) _u, (const ";
+		dumpUnoType(o, superType, sal_False, sal_False);
+		o << "&) _b, bridge);\n";
+	}
+	
+	for (i=0; i < fieldCount; i++)
+	{
+		fieldName = m_reader.getFieldName(i);
+		fieldType = m_reader.getFieldType(i);
+		
+		cIndex = fieldName.indexOf("_reserved_identifier_");
+
+		if (cIndex == 0)
+			corbaFieldName = fieldName.copy(OString("_reserved_identifier_").getLength());
+		else
+			corbaFieldName = fieldName;
+
+		if (isArray(fieldType))
+			o << "  // fix me: no conversion of array types!\n";
+		else
+			o << "  if (ret)\n"
+			  << "    ret = bonobobridge::cpp_convert_u2b(" 
+			  << "_b." << corbaFieldName.getStr() 
+			  << ", _u." << fieldName.getStr()
+			  << ", bridge);\n";
+	}		
+=====================================================================
+Found a 25 line (151 tokens) duplication in the following files: 
+Starting at line 716 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 790 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+sal_Bool CorbaType::isArray(const OString& type)
+{
+	sal_Bool ret = sal_False;
+
+	OString sType(checkSpecialCorbaType(type));
+
+	sal_Int32 index = sType.lastIndexOf(']');
+	sal_Int32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
+	
+	OString relType = (index > 0 ? (sType).copy(index+1) : type);
+
+	if (index > 0)
+	{
+		OString fakeTest;
+
+		sal_Int32 j = type.lastIndexOf('/');
+		if (j >= 0)
+			fakeTest = type.copy(0, j+1)+"_faked_array_"+type.copy(j+1);
+		else
+			fakeTest = "_faked_array_"+sType;
+
+		TypeReader fakeTestReader = m_typeMgr.getTypeReader(fakeTest);
+		
+		if (fakeTestReader.isValid())
+			ret = sal_True;
+=====================================================================
+Found a 25 line (151 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
+=====================================================================
+Found a 29 line (151 tokens) duplication in the following files: 
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+                    (void **)&pInterface, pCppI->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( gpreg[0] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = gpreg[0];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(
+=====================================================================
+Found a 21 line (151 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+=====================================================================
+Found a 36 line (150 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_boolean_algebra.h
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_boolean_algebra.h
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_boolean_algebra.h
+
+    {
+        enum
+        {
+            cover_shift = CoverShift,
+            cover_size  = 1 << cover_shift,
+            cover_mask  = cover_size - 1,
+            cover_full  = cover_mask
+        };
+        
+
+        void operator () (const typename Scanline1::const_iterator& span1, 
+                          const typename Scanline2::const_iterator& span2, 
+                          int x, unsigned len, 
+                          Scanline& sl) const
+        {
+            unsigned cover;
+            const typename Scanline1::cover_type* covers1;
+            const typename Scanline2::cover_type* covers2;
+
+            // Calculate the operation code and choose the 
+            // proper combination algorithm.
+            // 0 = Both spans are of AA type
+            // 1 = span1 is solid, span2 is AA
+            // 2 = span1 is AA, span2 is solid
+            // 3 = Both spans are of solid type
+            //-----------------
+            switch((span1->len < 0) | ((span2->len < 0) << 1))
+            {
+            case 0:      // Both are AA spans
+                covers1 = span1->covers;
+                covers2 = span2->covers;
+                if(span1->x < x) covers1 += x - span1->x;
+                if(span2->x < x) covers2 += x - span2->x;
+                do
+                {
+                    cover = XorFormula::calculate(*covers1++, *covers2++);
+=====================================================================
+Found a 6 line (150 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_mask.h
+
+ 0x3f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 17 line (150 tokens) duplication in the following files: 
+Starting at line 1092 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 1127 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+							aCol1 = pReadAcc->GetPixel( nY, nTemp );
+
+							nTemp = pLutFrac[ nX ];
+
+							lXR1 = aCol1.GetRed() - ( lXR0 = aCol0.GetRed() );
+							lXG1 = aCol1.GetGreen() - ( lXG0 = aCol0.GetGreen() );
+							lXB1 = aCol1.GetBlue() - ( lXB0 = aCol0.GetBlue() );
+
+							aCol0.SetRed( (BYTE) ( ( lXR1 * nTemp + ( lXR0 << 10 ) ) >> 10 ) );
+							aCol0.SetGreen( (BYTE) ( ( lXG1 * nTemp + ( lXG0 << 10 ) ) >> 10 ) );
+							aCol0.SetBlue( (BYTE) ( ( lXB1 * nTemp + ( lXB0 << 10 ) ) >> 10 ) );
+
+							pWriteAcc->SetPixel( nY, nX, aCol0 );
+						}
+					}
+				}
+			}
+=====================================================================
+Found a 25 line (150 tokens) duplication in the following files: 
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+Starting at line 3210 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+
+                rMMConfig.GetCurrentDBData(), xResultSet, rMMConfig.GetSelection());
+
+    try{
+        //set to start position
+        if(pImpl->pMergeData->aSelection.getLength())
+        {
+            sal_Int32 nPos = 0;
+            pImpl->pMergeData->aSelection.getConstArray()[ pImpl->pMergeData->nSelectionIndex++ ] >>= nPos;
+            pImpl->pMergeData->bEndOfDB = !pImpl->pMergeData->xResultSet->absolute( nPos );
+            pImpl->pMergeData->CheckEndOfDB();
+            if(pImpl->pMergeData->nSelectionIndex >= pImpl->pMergeData->aSelection.getLength())
+                pImpl->pMergeData->bEndOfDB = TRUE;
+        }
+        else
+        {
+            pImpl->pMergeData->bEndOfDB = !pImpl->pMergeData->xResultSet->first();
+            pImpl->pMergeData->CheckEndOfDB();
+        }
+    }
+    catch(Exception&)
+    {
+        pImpl->pMergeData->bEndOfDB = TRUE;
+        pImpl->pMergeData->CheckEndOfDB();
+        DBG_ERROR("exception in MergeNew()")
+    }
+=====================================================================
+Found a 40 line (150 tokens) duplication in the following files: 
+Starting at line 3626 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3797 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        p->nStartPos = WW8_CP_MAX;            // PLCF fertig abgearbeitet
+        return;
+    }
+
+    p->nEndPos = nP;
+
+    pPLCF->SetIdx(n);
+
+    p->nCp2OrIdx = pPLCF->GetIdx();
+}
+
+WW8PLCFx& WW8PLCFx_FLD::operator ++( int )
+{
+    (*pPLCF)++;
+    return *this;
+}
+
+bool WW8PLCFx_FLD::GetPara(long nIdx, WW8FieldDesc& rF)
+{
+    ASSERT( pPLCF, "Aufruf ohne Feld PLCFspecial" );
+    if( !pPLCF )
+        return false;
+
+    long n = pPLCF->GetIdx();
+    pPLCF->SetIdx(nIdx);
+
+    bool bOk = WW8GetFieldPara(*pPLCF, rF);
+
+    pPLCF->SetIdx(n);
+    return bOk;
+}
+
+//-----------------------------------------
+//      class WW8PLCF_Book
+//-----------------------------------------
+
+/*  to be optimized like this:    */
+void WW8ReadSTTBF(bool bVer8, SvStream& rStrm, UINT32 nStart, INT32 nLen,
+    USHORT nExtraLen, rtl_TextEncoding eCS, std::vector<String> &rArray,
+    std::vector<ww::bytes>* pExtraArray, ::std::vector<String>* pValueArray)
+=====================================================================
+Found a 28 line (150 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docfmt.cxx
+Starting at line 890 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docfmt.cxx
+
+			const String& rStr = pTxtNd->GetTxt();
+
+			// JP 22.08.96: Sonderfall: steht der Crsr in einem URL-Attribut
+			//				dann wird dessen Bereich genommen
+			const SwTxtAttr* pURLAttr;
+			if( pTxtNd->HasHints() &&
+				0 != ( pURLAttr = pTxtNd->GetTxtAttr( rSt, RES_TXTATR_INETFMT ))
+				&& pURLAttr->GetINetFmt().GetValue().Len() )
+			{
+				nMkPos = *pURLAttr->GetStart();
+				nPtPos = *pURLAttr->GetEnd();
+			}
+			else
+			{
+				Boundary aBndry;
+				if( pBreakIt->xBreak.is() )
+					aBndry = pBreakIt->xBreak->getWordBoundary(
+								pTxtNd->GetTxt(), nPtPos,
+								pBreakIt->GetLocale( pTxtNd->GetLang( nPtPos ) ),
+								WordType::ANY_WORD /*ANYWORD_IGNOREWHITESPACES*/,
+								TRUE );
+
+				if( aBndry.startPos < nPtPos && nPtPos < aBndry.endPos )
+				{
+					nMkPos = (xub_StrLen)aBndry.startPos;
+					nPtPos = (xub_StrLen)aBndry.endPos;
+				}
+				else
+=====================================================================
+Found a 39 line (150 tokens) duplication in the following files: 
+Starting at line 3883 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3102 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+				rPolyPolygon.transform(aTwipsToMM);
+
+				break;
+			}
+			default:
+			{
+				DBG_ERROR("TRGetBaseGeometry: Missing unit translation to 100th mm!");
+			}
+		}
+	}
+
+	// build return value matrix
+	rMatrix.identity();
+
+    if(!basegfx::fTools::equal(aScale.getX(), 1.0) || !basegfx::fTools::equal(aScale.getY(), 1.0))
+    {
+    	rMatrix.scale(aScale.getX(), aScale.getY());
+    }
+
+    if(!basegfx::fTools::equalZero(fShearX))
+    {
+    	rMatrix.shearX(tan(fShearX));
+    }
+
+    if(!basegfx::fTools::equalZero(fRotate))
+    {
+        // #i78696#
+        // fRotate is from the old GeoStat and thus mathematically wrong orientated. For 
+        // the linear combination of matrices it needed to be fixed in the API, so it needs to
+        // be mirrored here
+        rMatrix.rotate(-fRotate);
+    }
+
+    if(!aTranslate.equalZero())
+    {
+        rMatrix.translate(aTranslate.getX(), aTranslate.getY());
+    }
+
+	return sal_True;
+=====================================================================
+Found a 14 line (150 tokens) duplication in the following files: 
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdglev.cxx
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdglev.cxx
+
+	ULONG nMarkAnz=GetMarkedObjectCount();
+	for (ULONG nm=0; nm<nMarkAnz; nm++) {
+		SdrMark* pM=GetSdrMarkByIndex(nm);
+		SdrObject* pObj=pM->GetMarkedSdrObj();
+		const SdrUShortCont* pPts=pM->GetMarkedGluePoints();
+		ULONG nPtAnz=pPts==NULL ? 0 : pPts->GetCount();
+		if (nPtAnz!=0) {
+			SdrGluePointList* pGPL=pObj->ForceGluePointList();
+			if (pGPL!=NULL) {
+				AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pObj));
+				for (ULONG nPtNum=0; nPtNum<nPtAnz; nPtNum++) {
+					USHORT nPtId=pPts->GetObject(nPtNum);
+					USHORT nGlueIdx=pGPL->FindGluePoint(nPtId);
+					if (nGlueIdx!=SDRGLUEPOINT_NOTFOUND) {
+=====================================================================
+Found a 18 line (150 tokens) duplication in the following files: 
+Starting at line 1578 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2171 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 5450 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x49, 0x6D, 0x61, 0x67, 0x65, 0x2E, 0x31, 0x00,
+		0xF4, 0x39, 0xB2, 0x71, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor( rObj->OpenSotStream( C2S("\1CompObj")));
+	xStor->Write(aCompObj,sizeof(aCompObj));
+	DBG_ASSERT((xStor.Is() && (SVSTREAM_OK == xStor->GetError())),"damn");
+	}
+
+	{
+	SvStorageStreamRef xStor3( rObj->OpenSotStream( C2S("\3ObjInfo")));
+	xStor3->Write(aObjInfo,sizeof(aObjInfo));
+	DBG_ASSERT((xStor3.Is() && (SVSTREAM_OK == xStor3->GetError())),"damn");
+	}
+
+	static sal_uInt8 __READONLY_DATA aOCXNAME[] = {
+=====================================================================
+Found a 11 line (150 tokens) duplication in the following files: 
+Starting at line 2491 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2215 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 },	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+	
+	{ 0x16 MSO_I, 10800 }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 11 line (150 tokens) duplication in the following files: 
+Starting at line 2424 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2149 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+	
+	{ 0xa MSO_I, 10800 }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 11 line (150 tokens) duplication in the following files: 
+Starting at line 2348 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2075 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+	
+	{ 0xa MSO_I, 10800 }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
+=====================================================================
+Found a 40 line (150 tokens) duplication in the following files: 
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/logindlg.cxx
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/logindlg.cxx
+
+	aRequestInfo.SetText(aRequest);
+
+	FreeResource();
+
+	aPathED.SetMaxTextLen( _MAX_PATH );
+	aNameED.SetMaxTextLen( _MAX_PATH );
+
+	aOKBtn.SetClickHdl( LINK( this, LoginDialog, OKHdl_Impl ) );
+	aPathBtn.SetClickHdl( LINK( this, LoginDialog, PathHdl_Impl ) );
+
+	HideControls_Impl( nFlags );
+};
+
+// -----------------------------------------------------------------------
+
+void LoginDialog::SetName( const String& rNewName )
+{
+	aNameED.SetText( rNewName );
+	aNameInfo.SetText( rNewName );
+}
+
+// -----------------------------------------------------------------------
+
+void LoginDialog::ClearPassword()
+{
+	aPasswordED.SetText( String() );
+
+	if ( 0 == aNameED.GetText().Len() )
+		aNameED.GrabFocus();
+	else
+		aPasswordED.GrabFocus();
+};
+
+// -----------------------------------------------------------------------
+
+void LoginDialog::ClearAccount()
+{
+	aAccountED.SetText( String() );
+	aAccountED.GrabFocus();
+};
+=====================================================================
+Found a 33 line (150 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/bmpmaker/bmp.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/bmpmaker/bmpsum.cxx
+
+BOOL BmpSum::GetCommandOption( const ::std::vector< String >& rArgs, const String& rSwitch, String& rParam )
+{
+	BOOL bRet = FALSE;
+
+	for( int i = 0, nCount = rArgs.size(); ( i < nCount ) && !bRet; i++ )
+	{
+		String	aTestStr( '-' );
+
+		for( int n = 0; ( n < 2 ) && !bRet; n++ )
+		{
+			aTestStr += rSwitch;
+
+			if( aTestStr.CompareIgnoreCaseToAscii( rArgs[ i ] ) == COMPARE_EQUAL )
+			{
+				bRet = TRUE;
+
+				if( i < ( nCount - 1 ) )
+					rParam = rArgs[ i + 1 ];
+				else
+					rParam = String();
+			}
+
+			if( 0 == n )
+				aTestStr = '/';
+		}
+	}
+
+	return bRet;
+}
+
+// -----------------------------------------------------------------------
+
+BOOL BmpSum::GetCommandOptions( const ::std::vector< String >& rArgs, const String& rSwitch, ::std::vector< String >& rParams )
+=====================================================================
+Found a 27 line (150 tokens) duplication in the following files: 
+Starting at line 1647 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+Starting at line 1715 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/outplace.cxx
+
+			SotStorageStreamRef xOleObjStm =
+				pImpl->xWorkingStg->OpenSotStream( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "Ole-Object" ) ),
+													STREAM_STD_READ );
+			if( xOleObjStm->GetError() )
+				return FALSE;
+
+			SvCacheStream aStm;
+			aStm << *xOleObjStm;
+			aStm.Seek( 0 );
+			SotStorageRef xOleObjStor = new SotStorage( aStm );
+			if( xOleObjStor->GetError() )
+				return FALSE;
+
+			// delete all storage entries
+			SvStorageInfoList aList;
+			pStor->FillInfoList( &aList );
+			for( UINT32 i = 0; i < aList.Count(); i++ )
+			{
+				// workaround a bug in our storage implementation
+				String aTmpName( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "Temp-Delete" ) ) );
+				aTmpName += String::CreateFromInt32( nUniqueId++ );
+				pStor->Rename( aList[i].GetName(), aTmpName );
+				pStor->Remove( aTmpName );
+
+				//pStor->Remove( aList[i].GetName() );
+			}
+			xOleObjStor->CopyTo( pStor );
+=====================================================================
+Found a 28 line (150 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+
+	OutputDebugStringFormat( TEXT("*** Retrieving Key Names for [%s] ***"), aSectionName.c_str() );
+
+	if ( fp )
+	{
+		std::_tstring line;
+		std::_tstring section;
+		
+		while ( readLine( fp, line ) )
+		{
+			line = trim( line );
+			
+			if ( line.length() && line[0] == '[' )
+			{
+				line.erase( 0, 1 );
+				std::_tstring::size_type end = line.find( ']', 0 );
+				
+				if ( std::_tstring::npos != end )
+					section = trim( line.substr( 0, end ) );
+			}
+			else
+			{
+
+				std::_tstring::size_type iEqualSign = line.find( '=', 0 ); 
+
+				if ( iEqualSign != std::_tstring::npos )
+				{
+					std::_tstring	keyname = line.substr( 0, iEqualSign );
+					keyname = trim( keyname );
+=====================================================================
+Found a 21 line (150 tokens) duplication in the following files: 
+Starting at line 596 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/datauno.cxx
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/datauno.cxx
+
+		SCCOL nCount = static_cast<SCCOL>(nColCount);
+		aParam.nSubTotals[nPos] = nCount;
+		if (nCount != 0)
+		{
+			aParam.pSubTotals[nPos] = new SCCOL[nCount];
+			aParam.pFunctions[nPos] = new ScSubTotalFunc[nCount];
+
+			const sheet::SubTotalColumn* pAry = aSubTotalColumns.getConstArray();
+			for (SCCOL i=0; i<nCount; i++)
+			{
+				aParam.pSubTotals[nPos][i] = static_cast<SCCOL>(pAry[i].Column);
+				aParam.pFunctions[nPos][i] =
+							ScDataUnoConversion::GeneralToSubTotal( pAry[i].Function );
+			}
+		}
+		else
+		{
+			aParam.pSubTotals[nPos] = NULL;
+			aParam.pFunctions[nPos] = NULL;
+		}
+	}
+=====================================================================
+Found a 17 line (150 tokens) duplication in the following files: 
+Starting at line 1595 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1859 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+SvXMLImportContext *ScXMLDeletionContext::CreateChildContext( USHORT nPrefix,
+									 const ::rtl::OUString& rLocalName,
+									 const ::com::sun::star::uno::Reference<
+									  	::com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext *pContext(0);
+
+	if ((nPrefix == XML_NAMESPACE_OFFICE) && (IsXMLToken(rLocalName, XML_CHANGE_INFO)))
+	{
+		pContext = new ScXMLChangeInfoContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+	}
+	else if (nPrefix == XML_NAMESPACE_TABLE)
+	{
+		if (IsXMLToken(rLocalName, XML_DEPENDENCIES))
+			pContext = new ScXMLDependingsContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+		else if (IsXMLToken(rLocalName, XML_DELETIONS))
+			pContext = new ScXMLDeletionsContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+=====================================================================
+Found a 25 line (150 tokens) duplication in the following files: 
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1335 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1370 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1406 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+ScMatrixRef ScInterpreter::MatPow(ScMatrix* pMat1, ScMatrix* pMat2)
+{
+	SCSIZE nC1, nC2, nMinC;
+	SCSIZE nR1, nR2, nMinR;
+	SCSIZE i, j;
+	pMat1->GetDimensions(nC1, nR1);
+	pMat2->GetDimensions(nC2, nR2);
+	if (nC1 < nC2)
+		nMinC = nC1;
+	else
+		nMinC = nC2;
+	if (nR1 < nR2)
+		nMinR = nR1;
+	else
+		nMinR = nR2;
+	ScMatrixRef xResMat = GetNewMat(nMinC, nMinR);
+	if (xResMat)
+	{
+        ScMatrix* pResMat = xResMat;
+		for (i = 0; i < nMinC; i++)
+		{
+			for (j = 0; j < nMinR; j++)
+			{
+				if (pMat1->IsValueOrEmpty(i,j) && pMat2->IsValueOrEmpty(i,j))
+					pResMat->PutDouble(pow(pMat1->GetDouble(i,j),
+=====================================================================
+Found a 69 line (150 tokens) duplication in the following files: 
+Starting at line 700 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_SocketAddr.cxx
+
+using namespace rtl;
+
+#define IP_PORT_ZERO   0
+#define IP_PORT_FTP    21
+#define IP_PORT_TELNET 23
+#define IP_PORT_HTTP1  80
+#define IP_PORT_HTTP2  8080
+
+#define IP_PORT_MYPORT  8881 	//8888
+#define IP_PORT_MYPORT2  8883	//8890
+#define IP_PORT_MYPORT3  8884	//8891
+#define IP_PORT_INVAL  99999
+#define IP_PORT_MYPORT4  8885	//8892
+#define IP_PORT_NETBIOS_DGM  138
+
+
+namespace osl_SocketAddr
+{
+
+	/** testing the methods:
+		inline SocketAddr();
+		inline SocketAddr(const SocketAddr& Addr);
+		inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy );
+		inline SocketAddr(oslSocketAddr Addr);
+		inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort );		
+	*/
+
+	class ctors : public CppUnit::TestFixture
+	{
+	public:
+	
+		void ctors_none()
+		{
+			/// SocketAddr constructor.
+			::osl::SocketAddr saSocketAddr;
+	
+            // oslSocketResult aResult;
+            // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
+
+            // rtl::OUString suHost2 = getThisHostname();
+
+			CPPUNIT_ASSERT_MESSAGE("test for none parameter constructor function: check if the socket address was created successfully", 
+									sal_True == saSocketAddr.is( ) );
+		}
+	
+		void ctors_none_000()
+		{
+			/// SocketAddr constructor.
+			::osl::SocketAddr saSocketAddr;
+	
+            oslSocketResult aResult;
+            rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
+            rtl::OUString suHost2 = getThisHostname();
+
+            sal_Bool bOk = compareUString(suHost, suHost2);
+            
+            rtl::OUString suError = rtl::OUString::createFromAscii("Host names should be the same. From SocketAddr.getLocalHostname() it is'");
+            suError += suHost;
+            suError += rtl::OUString::createFromAscii("', from getThisHostname() it is '");
+            suError += suHost2;
+            suError += rtl::OUString::createFromAscii("'.");
+            
+			CPPUNIT_ASSERT_MESSAGE(suError, sal_True == bOk);
+		}
+
+		void ctors_copy()
+		{
+			/// SocketAddr copy constructor.
+			::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("localhost"), IP_PORT_HTTP1 );
+=====================================================================
+Found a 31 line (150 tokens) duplication in the following files: 
+Starting at line 895 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+        OSL_TRACE("Out osl_removeProfileEntry [pProfile==0]\n");
+#endif
+
+
+		return (sal_False);
+    }
+
+
+	if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
+	{
+		if (((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) != NULL) &&
+			(NoEntry < pSec->m_NoEntries))
+		{
+			removeLine(pProfile, pSec->m_Entries[NoEntry].m_Line);
+			removeEntry(pSec, NoEntry);
+			if (pSec->m_NoEntries == 0)
+			{
+				removeLine(pProfile, pSec->m_Line);
+
+				/* remove any empty separation line */
+				if ((pSec->m_Line > 0) && (pProfile->m_Lines[pSec->m_Line - 1][0] == '\0'))
+		            removeLine(pProfile, pSec->m_Line - 1);
+
+				removeSection(pProfile, pSec);
+			}
+
+			pProfile->m_Flags |= FLG_MODIFIED;
+		}
+	}
+	else
+	{
+=====================================================================
+Found a 12 line (150 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yyconst int yy_meta[26] =
+=====================================================================
+Found a 35 line (150 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+void SAL_CALL OReadMenuDocumentHandler::characters(const rtl::OUString&)
+throw(	SAXException, RuntimeException )
+{
+}
+
+
+void SAL_CALL OReadMenuDocumentHandler::endElement( const OUString& aName )
+	throw( SAXException, RuntimeException )
+{
+	if ( m_bMenuBarMode )
+	{
+		--m_nElementDepth;
+		m_xReader->endElement( aName );
+		if ( 0 == m_nElementDepth )
+		{
+			m_xReader->endDocument();
+			m_xReader = Reference< XDocumentHandler >();
+			m_bMenuBarMode = sal_False;
+			if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUBAR )))
+			{
+				OUString aErrorMessage = getErrorLineString();
+				aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menubar expected!" ));
+				throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+			}
+		}
+	}
+}
+
+
+// -----------------------------------------------------------------------------
+
+
+// #110897#
+OReadMenuBarHandler::OReadMenuBarHandler( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+=====================================================================
+Found a 58 line (150 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/FPentry.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/FPentry.cxx
+
+			new SalGtkFolderPicker( rServiceManager ) ) );
+}
+
+//------------------------------------------------
+// the three uno functions that will be exported
+//------------------------------------------------
+
+extern "C" 
+{
+
+//------------------------------------------------
+// component_getImplementationEnvironment
+//------------------------------------------------
+
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//------------------------------------------------
+//
+//------------------------------------------------
+
+sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
+{
+	sal_Bool bRetVal = sal_True;
+
+	if ( pRegistryKey )
+	{
+		try
+		{
+			Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );				
+			pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
+			pXNewKey->createKey( OUString::createFromAscii( FOLDER_PICKER_REGKEY_NAME ) );
+		}
+		catch( InvalidRegistryException& )
+		{			
+			OSL_ENSURE( sal_False, "InvalidRegistryException caught" );			
+			bRetVal = sal_False;
+		}
+	}
+
+	return bRetVal;
+}
+
+//------------------------------------------------
+//
+//------------------------------------------------
+
+void* SAL_CALL component_getFactory( 
+	const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* /*pRegistryKey*/ )
+{
+	void* pRet = 0;
+
+	if( pSrvManager )
+	{
+			if (
+=====================================================================
+Found a 19 line (150 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObjectFactory::createInstanceInitFromEntry" );
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Reference< container::XNameAccess > xNameAccess( xStorage, uno::UNO_QUERY );
+	if ( !xNameAccess.is() )
+		throw uno::RuntimeException(); //TODO
+
+	// detect entry existence
+	if ( !xNameAccess->hasByName( sEntName ) )
+		throw container::NoSuchElementException();
+=====================================================================
+Found a 23 line (150 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testimplhelper.cxx
+
+		{ OSL_TRACE( "> TestWeakImpl dtor called... <\n" ); }
+	
+	// A
+	virtual OUString SAL_CALL a() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("a") ); }
+	// BA
+	virtual OUString SAL_CALL ba() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("ba") ); }
+	// CA
+	virtual OUString SAL_CALL ca() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("ca") ); }
+	// DBA
+	virtual OUString SAL_CALL dba() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("dba") ); }
+	// E
+	virtual OUString SAL_CALL e() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("e") ); }
+	// FE
+	virtual OUString SAL_CALL fe() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("fe") ); }
+	// G
+	virtual OUString SAL_CALL g() throw(RuntimeException)
+		{ return OUString( RTL_CONSTASCII_USTRINGPARAM("g") ); }
+=====================================================================
+Found a 29 line (150 tokens) duplication in the following files: 
+Starting at line 574 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_cuno.c
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_cuno.c
+
+cuno_ErrorCode SAL_CALL XLanguageBindingTest_setRuntimeException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, sal_Int32 value)
+{
+	InstanceData * pImpl = GET_THIS( pIFace );
+	com_sun_star_uno_RuntimeException aExc;
+	typelib_TypeDescription * pTD = 0;
+	rtl_uString * pTypeName = 0;
+	uno_Any excp;
+
+	rtl_uString_newFromAscii( &pTypeName, "com.sun.star.uno.RuntimeException");
+	typelib_typedescription_getByName(&pTD, pTypeName);
+
+	aExc._Base.Message = 0;
+	rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum...");
+	aExc._Base.Context = 0;
+	if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) ))
+	{
+		/* ... */
+		uno_any_destruct( &excp, 0 );
+	}
+
+	uno_any_construct(pExc, &aExc, pTD, c_acquire);
+	uno_destructData(&aExc, pTD, c_release);
+	typelib_typedescription_release(pTD);
+	rtl_uString_release(pTypeName);
+
+	return CUNO_ERROR_EXCEPTION;	
+}	
+/* XLanguageBindingTest::raiseException */
+cuno_ErrorCode SAL_CALL XLanguageBindingTest_raiseException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString ** aString, com_sun_star_uno_XInterface ** aInterface, uno_Any* aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements* AStruct)
+=====================================================================
+Found a 15 line (150 tokens) duplication in the following files: 
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 509 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+Any SAL_CALL OFlatTable::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	if( rType == ::getCppuType((const Reference<XKeysSupplier>*)0)		||
+		rType == ::getCppuType((const Reference<XIndexesSupplier>*)0)	||
+		rType == ::getCppuType((const Reference<XRename>*)0)			||
+		rType == ::getCppuType((const Reference<XAlterTable>*)0)		||
+		rType == ::getCppuType((const Reference<XDataDescriptorFactory>*)0))
+		return Any();
+
+	Any aRet = OTable_TYPEDEF::queryInterface(rType);
+	return aRet.hasValue() ? aRet : ::cppu::queryInterface(rType,static_cast< ::com::sun::star::lang::XUnoTunnel*> (this));
+}
+
+//--------------------------------------------------------------------------
+Sequence< sal_Int8 > OFlatTable::getUnoTunnelImplementationId()
+=====================================================================
+Found a 38 line (150 tokens) duplication in the following files: 
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 2221 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if (aSuperReader.isValid())
+		{
+			count = checkInheritedMemberCount(&aSuperReader);
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+			{
+				count++;
+			}
+		}
+	}
+
+	return count;
+}
+
+sal_uInt32 InterfaceType::getInheritedMemberCount()
+=====================================================================
+Found a 25 line (150 tokens) duplication in the following files: 
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+
+    nVerticalSegmentCount = nPointCount-1;
+
+    //--------------------------------------
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(nPointCount);
+    pOuterSequenceY->realloc(nPointCount);
+	pOuterSequenceZ->realloc(nPointCount);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    for(sal_Int32 nN = nPointCount; nN--;)
+	    *pInnerSequenceZ++ = 0.0;
+
+    if(bTopless)
+=====================================================================
+Found a 40 line (150 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartTypeTemplate.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ScatterChartTypeTemplate.cxx
+
+    rOutMap[ PROP_SCATTERCHARTTYPE_TEMPLATE_SPLINE_ORDER ] =
+        uno::makeAny( sal_Int32( 3 ) );
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 28 line (150 tokens) duplication in the following files: 
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataPoint.cxx
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataSeries.cxx
+
+void SAL_CALL DataSeries::setFastPropertyValue_NoBroadcast(
+    sal_Int32 nHandle, const uno::Any& rValue )
+    throw (uno::Exception)
+{
+    if(    nHandle == DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y
+        || nHandle == DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X )
+    {
+        uno::Any aOldValue;
+        Reference< util::XModifyBroadcaster > xBroadcaster;
+        this->getFastPropertyValue( aOldValue, nHandle );
+        if( aOldValue.hasValue() &&
+            (aOldValue >>= xBroadcaster) &&
+            xBroadcaster.is())
+        {
+            ModifyListenerHelper::removeListener( xBroadcaster, m_xModifyEventForwarder );
+        }
+
+        OSL_ASSERT( rValue.getValueType().getTypeClass() == uno::TypeClass_INTERFACE );
+        if( rValue.hasValue() &&
+            (rValue >>= xBroadcaster) &&
+            xBroadcaster.is())
+        {
+            ModifyListenerHelper::addListener( xBroadcaster, m_xModifyEventForwarder );
+        }
+    }
+
+    ::property::OPropertySet::setFastPropertyValue_NoBroadcast( nHandle, rValue );
+}
+=====================================================================
+Found a 32 line (150 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvasfont.cxx
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvasfont.cxx
+
+        tools::LocalGuard aGuard;
+
+        // TODO(F1)
+        return uno::Sequence< beans::PropertyValue >();
+    }
+
+#define IMPLEMENTATION_NAME "VCLCanvas::CanvasFont"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasFont"
+
+    ::rtl::OUString SAL_CALL CanvasFont::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasFont::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasFont::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+
+        return aRet;
+    }
+
+    ::Font CanvasFont::getVCLFont() const
+    {
+        return *maFont;
+    }
+}
+=====================================================================
+Found a 32 line (150 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+	// push this
+    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+        + aVtableSlot.offset;
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+=====================================================================
+Found a 28 line (150 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdate.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdbl.cxx
+
+				nRes = pVal->GetDouble();
+			else
+			{
+				SbxBase::SetError( SbxERR_NO_OBJECT ); nRes = 0;
+			}
+			break;
+		}
+
+		case SbxBYREF | SbxCHAR:
+			nRes = *p->pChar; break;
+		case SbxBYREF | SbxBYTE:
+			nRes = *p->pByte; break;
+		case SbxBYREF | SbxINTEGER:
+		case SbxBYREF | SbxBOOL:
+			nRes = *p->pInteger; break;
+		case SbxBYREF | SbxLONG:
+			nRes = *p->pLong; break;
+		case SbxBYREF | SbxULONG:
+			nRes = *p->pULong; break;
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			nRes = *p->pUShort; break;
+		case SbxBYREF | SbxSINGLE:
+			nRes = *p->pSingle; break;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			nRes = *p->pDouble; break;
+		case SbxBYREF | SbxCURRENCY:
+=====================================================================
+Found a 20 line (149 tokens) duplication in the following files: 
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 582 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        weight = (weight_array[x_hr] * 
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+=====================================================================
+Found a 25 line (149 tokens) duplication in the following files: 
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+Starting at line 399 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            color_type* span = base_type::allocator().span();
+            const int16* weight_array = base_type::filter().weight_array() + 
+                                        ((base_type::filter().diameter()/2 - 1) << 
+                                          image_subpixel_shift);
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                int x_hr;
+                int y_hr;
+                
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+=====================================================================
+Found a 20 line (149 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/decrypter.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/verifier.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::registry ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+
+int SAL_CALL main( int argc, char **argv )
+{
+	CERTCertDBHandle*	certHandle = NULL ;
+	PK11SlotInfo*		slot = NULL ;
+	xmlDocPtr			doc = NULL ;
+	xmlNodePtr			tplNode ;
+	xmlNodePtr			tarNode ;
+=====================================================================
+Found a 36 line (149 tokens) duplication in the following files: 
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+            ::ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString(),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        sal_Bool bOpenFolder =
+            ( ( aOpenCommand.Mode == ucb::OpenMode::ALL ) ||
+              ( aOpenCommand.Mode == ucb::OpenMode::FOLDERS ) ||
+              ( aOpenCommand.Mode == ucb::OpenMode::DOCUMENTS ) );
+
+        if ( bOpenFolder /*&& isFolder( Environment )*/ )
+		{
+            // open as folder - return result set
+
+            uno::Reference< ucb::XDynamicResultSet > xSet
+                            = new DynamicResultSet( m_xSMgr,
+													this,
+													aOpenCommand,
+													Environment );
+    		aRet <<= xSet;
+  		}
+
+        if ( aOpenCommand.Sink.is() )
+        {
+            // Open document - supply document data stream.
+
+            // Check open mode
+            if ( ( aOpenCommand.Mode
+                    == ucb::OpenMode::DOCUMENT_SHARE_DENY_NONE ) ||
+                 ( aOpenCommand.Mode
+                    == ucb::OpenMode::DOCUMENT_SHARE_DENY_WRITE ) )
+            {
+=====================================================================
+Found a 36 line (149 tokens) duplication in the following files: 
+Starting at line 1149 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 2845 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+        aGuard.clear();
+        if ( exchange( xNewId ) )
+        {
+            // Process instanciated children...
+            
+            ContentRefList aChildren;
+            queryChildren( aChildren );
+	    
+            ContentRefList::const_iterator it  = aChildren.begin();
+            ContentRefList::const_iterator end = aChildren.end();
+
+            while ( it != end )
+            {
+                ContentRef xChild = (*it);
+
+                // Create new content identifier for the child...
+                uno::Reference< ucb::XContentIdentifier >
+                    xOldChildId = xChild->getIdentifier();
+                rtl::OUString aOldChildURL
+                    = xOldChildId->getContentIdentifier();
+                rtl::OUString aNewChildURL
+                    = aOldChildURL.replaceAt(
+                        0,
+                        aOldURL.getLength(),
+                        xNewId->getContentIdentifier() );
+                uno::Reference< ucb::XContentIdentifier >
+                    xNewChildId
+                    = new ::ucbhelper::ContentIdentifier( m_xSMgr, aNewChildURL );
+                
+                if ( !xChild->exchangeIdentity( xNewChildId ) )
+                    return sal_False;
+                
+                ++it;
+            }
+            return sal_True;
+        }
+=====================================================================
+Found a 48 line (149 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/filinsreq.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpintreq.cxx
+
+	m_aSeq[0] = Reference<XInteractionContinuation>(p1);
+	m_aSeq[1] = Reference<XInteractionContinuation>(p2);
+}
+
+	
+void SAL_CALL
+XInteractionRequestImpl::acquire( void )
+	throw()
+{
+	OWeakObject::acquire();
+}
+
+
+
+void SAL_CALL
+XInteractionRequestImpl::release( void )
+	throw()
+{
+	OWeakObject::release();
+}
+
+
+
+Any SAL_CALL
+XInteractionRequestImpl::queryInterface( const Type& rType )
+	throw( RuntimeException )
+{
+	Any aRet = cppu::queryInterface( 
+        rType,
+        SAL_STATIC_CAST( lang::XTypeProvider*, this ),
+        SAL_STATIC_CAST( XInteractionRequest*,this) );
+	return aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType );
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//  XTypeProvider
+/////////////////////////////////////////////////////////////////////////////
+
+XTYPEPROVIDER_IMPL_2( XInteractionRequestImpl, 
+					  XTypeProvider,
+					  XInteractionRequest )
+
+
+Any SAL_CALL XInteractionRequestImpl::getRequest(  )
+    throw (RuntimeException)
+{
+    Any aAny;
+=====================================================================
+Found a 33 line (149 tokens) duplication in the following files: 
+Starting at line 1837 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/wrtrtf.cxx
+Starting at line 1337 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+short SwWW8Writer::TrueFrameDirection(const SwFrmFmt &rFlyFmt) const
+{
+    const SwFrmFmt *pFlyFmt = &rFlyFmt;
+    const SvxFrameDirectionItem* pItem = 0;
+    while (pFlyFmt)
+    {
+        pItem = &pFlyFmt->GetFrmDir();
+        if (FRMDIR_ENVIRONMENT == pItem->GetValue())
+        {
+            pItem = 0;
+            const SwFmtAnchor* pAnchor = &pFlyFmt->GetAnchor();
+            if (FLY_PAGE != pAnchor->GetAnchorId() &&
+                pAnchor->GetCntntAnchor())
+            {
+                pFlyFmt =
+                    pAnchor->GetCntntAnchor()->nNode.GetNode().GetFlyFmt();
+            }
+            else
+                pFlyFmt = 0;
+        }
+        else
+            pFlyFmt = 0;
+    }
+
+    short nRet;
+    if (pItem)
+        nRet = pItem->GetValue();
+    else
+        nRet = GetCurrentPageDirection();
+
+    ASSERT(nRet != FRMDIR_ENVIRONMENT, "leaving with environment direction");
+    return nRet;
+}
+=====================================================================
+Found a 14 line (149 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/tox/tox.cxx
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/tox/tox.cxx
+
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, AUTH_FIELD_URL, USHRT_MAX},//AUTH_TYPE_WWW,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_TYPE_CUSTOM1,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_TYPE_CUSTOM2,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_TYPE_CUSTOM3,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_TYPE_CUSTOM4,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_TYPE_CUSTOM5,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_YEAR,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_URL,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_CUSTOM1,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_CUSTOM2,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_CUSTOM3,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_CUSTOM4,
+    {AUTH_FIELD_AUTHOR, AUTH_FIELD_TITLE, AUTH_FIELD_YEAR, USHRT_MAX, USHRT_MAX},     //AUTH_FIELD_CUSTOM5,
+    {USHRT_MAX, USHRT_MAX, USHRT_MAX, USHRT_MAX, USHRT_MAX}
+=====================================================================
+Found a 22 line (149 tokens) duplication in the following files: 
+Starting at line 5567 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 5798 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_ScrollBar::Import(com::sun::star::uno::Reference<
+    com::sun::star::beans::XPropertySet> &rPropSet)
+{
+    if( (nWidth < 1) || (nHeight < 1) )
+        return sal_False;
+
+    uno::Any aTmp( &sName, getCppuType((OUString *)0) );
+    rPropSet->setPropertyValue( WW8_ASCII2STR( "Name" ), aTmp );
+
+    aTmp <<= ImportColor( mnForeColor );
+    rPropSet->setPropertyValue( WW8_ASCII2STR("SymbolColor"), aTmp);
+
+    aTmp <<= ImportColor( mnBackColor );
+    rPropSet->setPropertyValue( WW8_ASCII2STR("BackgroundColor"), aTmp);
+
+    aTmp = bool2any( mbEnabled && !mbLocked );
+    rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
+
+    aTmp <<= mnValue;
+    if ( bSetInDialog )
+    {
+        rPropSet->setPropertyValue( WW8_ASCII2STR("ScrollValue"), aTmp );
+=====================================================================
+Found a 30 line (149 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/docrecovery.cxx
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/docrecovery.cxx
+
+void RecoveryCore::saveAllTempEntries(const ::rtl::OUString& sPath)
+{
+    if (!sPath.getLength())
+        return;
+
+    if (!m_xRealCore.is())
+        return;
+
+    // prepare all needed parameters for the following dispatch() request.
+    css::util::URL aCopyURL = impl_getParsedURL(RECOVERY_CMD_DO_ENTRY_BACKUP);
+    css::uno::Sequence< css::beans::PropertyValue > lCopyArgs(3);
+    lCopyArgs[0].Name    = PROP_DISPATCHASYNCHRON;
+    lCopyArgs[0].Value <<= sal_False;
+    lCopyArgs[1].Name    = PROP_SAVEPATH;
+    lCopyArgs[1].Value <<= sPath;
+    lCopyArgs[2].Name    = PROP_ENTRYID;
+    // lCopyArgs[2].Value will be changed during next loop ...
+
+    // work on a copied list only ...
+    // Reason: We will get notifications from the core for every
+    // changed or removed element. And that will change our m_lURLs list.
+    // That's not a good idea, if we use a stl iterator inbetween .-)
+    TURLList lURLs = m_lURLs;
+    TURLList::const_iterator pIt;
+    for (  pIt  = lURLs.begin();
+           pIt != lURLs.end()  ;
+         ++pIt                 )
+    {
+        const TURLInfo& rInfo = *pIt;
+        if (!rInfo.TempURL.getLength())
+=====================================================================
+Found a 21 line (149 tokens) duplication in the following files: 
+Starting at line 1415 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/ctredlin.cxx
+Starting at line 1442 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/ctredlin.cxx
+
+		:	Control(pParent,rResId ),
+			aTCAccept(this,WB_TABSTOP |WB_DIALOGCONTROL)
+{
+	pTPFilter=new SvxTPFilter(&aTCAccept);
+	pTPView=new SvxTPView(&aTCAccept);
+	aMinSize=pTPView->GetMinSizePixel();
+
+	aTCAccept.InsertPage( TP_VIEW,	 pTPView->GetMyName());
+	aTCAccept.InsertPage( TP_FILTER, pTPFilter->GetMyName());
+	aTCAccept.SetTabPage( TP_VIEW,	 pTPView);
+	aTCAccept.SetTabPage( TP_FILTER, pTPFilter);
+	aTCAccept.SetHelpId(HID_REDLINING_TABCONTROL);
+
+	aTCAccept.SetTabPageSizePixel(aMinSize);
+	Size aSize=aTCAccept.GetSizePixel();
+
+	gDiffSize.Height()=aSize.Height()-aMinSize.Height();
+	gDiffSize.Width()=aSize.Width()-aMinSize.Width();
+
+
+	pTPFilter->SetRedlinTable(GetViewTable());
+=====================================================================
+Found a 23 line (149 tokens) duplication in the following files: 
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
+
+				aEquation.nOperation |= 16;
+				if ( pOptionalArg )
+					FillEquationParameter( pOptionalArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation );
+				else
+					aEquation.nPara[ 0 ] = 1;
+
+				EnhancedCustomShapeParameter aSource( mpArg->fillNode( rEquations, NULL, nFlags | EXPRESSION_FLAG_SUMANGLE_MODE ) );
+				if ( aSource.Type == EnhancedCustomShapeParameterType::NORMAL )
+				{	// sumangle needed :-(
+					EnhancedCustomShapeEquation	aTmpEquation;
+					aTmpEquation.nOperation |= 0xe;	// sumangle
+					FillEquationParameter( aSource, 1, aTmpEquation );
+					aSource.Type = EnhancedCustomShapeParameterType::EQUATION;
+					aSource.Value <<= (sal_Int32)rEquations.size();
+					rEquations.push_back( aTmpEquation );
+				}
+				FillEquationParameter( aSource, 1, aEquation );
+				aRet.Type = EnhancedCustomShapeParameterType::EQUATION;
+				aRet.Value <<= (sal_Int32)rEquations.size();
+				rEquations.push_back( aEquation );
+			}
+			break;
+			case UNARY_FUNC_ATAN:
+=====================================================================
+Found a 29 line (149 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/bmpmaker/bmp.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/bmpmaker/g2g.cxx
+
+BOOL G2GApp::GetCommandOption( const ::std::vector< String >& rArgs, const String& rSwitch, String& rParam )
+{
+	BOOL bRet = FALSE;
+
+	for( int i = 0, nCount = rArgs.size(); ( i < nCount ) && !bRet; i++ )
+	{
+		String	aTestStr( '-' );
+
+		for( int n = 0; ( n < 2 ) && !bRet; n++ )
+		{
+			aTestStr += rSwitch;
+
+			if( aTestStr.CompareIgnoreCaseToAscii( rArgs[ i ] ) == COMPARE_EQUAL )
+			{
+				bRet = TRUE;
+
+				if( i < ( nCount - 1 ) )
+					rParam = rArgs[ i + 1 ];
+				else
+					rParam = String();
+			}
+
+			if( 0 == n )
+				aTestStr = '/';
+		}
+	}
+
+	return bRet;
+}
+=====================================================================
+Found a 32 line (149 tokens) duplication in the following files: 
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objembed.cxx
+Starting at line 1191 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/embobj.cxx
+
+		Point aDelta = aOrg - aVisArea_.TopLeft();
+
+		// Origin entsprechend zum sichtbaren Bereich verschieben
+		// Origin mit Scale setzen
+		aMapMode.SetOrigin( aDelta );
+
+		// Deviceeinstellungen sichern
+		pDev->Push();
+
+		Region aRegion;
+		if( pDev->IsClipRegion() && pDev->GetOutDevType() != OUTDEV_PRINTER )
+		{
+			aRegion = pDev->GetClipRegion();
+			aRegion = pDev->LogicToPixel( aRegion );
+		}
+		pDev->SetRelativeMapMode( aMapMode );
+
+		GDIMetaFile * pMtf = pDev->GetConnectMetaFile();
+		if( pMtf )
+			if( pMtf->IsRecord() && pDev->GetOutDevType() != OUTDEV_PRINTER )
+				pMtf->Stop();
+			else
+				pMtf = NULL;
+// #ifndef UNX
+		if( pDev->IsClipRegion() && pDev->GetOutDevType() != OUTDEV_PRINTER )
+// #endif
+		{
+			aRegion = pDev->PixelToLogic( aRegion );
+			pDev->SetClipRegion( aRegion );
+		}
+		if( pMtf )
+			pMtf->Record( pDev );
+=====================================================================
+Found a 36 line (149 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/drawdoc4.cxx
+Starting at line 1247 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/drawdoc4.cxx
+
+			pPage->SetName(rNewName);
+
+			for (ULONG nObj = 0; nObj < pPage->GetObjCount(); nObj++)
+			{
+				SdrObject* pObj = pPage->GetObj(nObj);
+
+				if (pObj->GetObjInventor() == SdrInventor)
+				{
+					switch(pObj->GetObjIdentifier())
+					{
+						case OBJ_TEXT:
+						case OBJ_OUTLINETEXT:
+						case OBJ_TITLETEXT:
+						{
+							OutlinerParaObject* pOPO = ((SdrTextObj*)pObj)->GetOutlinerParaObject();
+
+							if (pOPO)
+							{
+								StyleReplaceData* pReplData = (StyleReplaceData*) aReplList.First();
+
+								while( pReplData )
+								{
+									pOPO->ChangeStyleSheets( pReplData->aName, pReplData->nFamily, pReplData->aNewName, pReplData->nNewFamily );
+									pReplData = (StyleReplaceData*) aReplList.Next();
+								}
+							}
+						}
+						break;
+
+						default:
+						break;
+					}
+				}
+			}
+		}
+	}
+=====================================================================
+Found a 29 line (149 tokens) duplication in the following files: 
+Starting at line 391 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undocell.cxx
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undocell.cxx
+
+void __EXPORT ScUndoPutCell::Undo()
+{
+	BeginUndo();
+
+	ScDocument* pDoc = pDocShell->GetDocument();
+	ScBaseCell* pNewCell;
+	if ( pOldCell )
+	{
+		// Formelzelle mit CompileTokenArray() !
+		if ( pOldCell->GetCellType() == CELLTYPE_FORMULA )
+			pNewCell = ((ScFormulaCell*)pOldCell)->Clone( pDoc, aPos );
+		else
+			pNewCell = pOldCell->Clone(pDoc);
+	}
+	else
+		pNewCell = NULL;
+
+	pDoc->PutCell( aPos.Col(), aPos.Row(), aPos.Tab(), pNewCell );
+
+	pDocShell->PostPaintCell( aPos.Col(), aPos.Row(), aPos.Tab() );
+
+	ScChangeTrack* pChangeTrack = pDoc->GetChangeTrack();
+	if ( pChangeTrack )
+		pChangeTrack->Undo( nEndChangeAction, nEndChangeAction );
+
+	EndUndo();
+}
+
+void __EXPORT ScUndoPutCell::Redo()
+=====================================================================
+Found a 18 line (149 tokens) duplication in the following files: 
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLCalculationSettingsContext.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLCalculationSettingsContext.cxx
+
+ScXMLIterationContext::ScXMLIterationContext( ScXMLImport& rImport,
+									  USHORT nPrfx,
+									  const ::rtl::OUString& rLName,
+									  const ::com::sun::star::uno::Reference<
+									  ::com::sun::star::xml::sax::XAttributeList>& xAttrList,
+									  ScXMLCalculationSettingsContext* pCalcSet) :
+	SvXMLImportContext( rImport, nPrfx, rLName )
+{
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName );
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+=====================================================================
+Found a 43 line (149 tokens) duplication in the following files: 
+Starting at line 4487 of /local/ooo-build/ooo-build/src/oog680-m3/regexp/orig/regex.c
+Starting at line 2433 of /local/ooo-build/ooo-build/src/oog680-m3/regexp/source/reclass.cxx
+
+	  extract_number_and_incr(mcnt, p1);
+	  if (is_a_jump_n)
+	    p1 += 2;
+	  break;
+
+	default:
+	  /* do nothing */ ;
+	}
+	p1 += mcnt;
+
+	/* If the next operation is a jump backwards in the pattern
+	   to an on_failure_jump right before the start_memory
+	   corresponding to this stop_memory, exit from the loop
+	   by forcing a failure after pushing on the stack the
+	   on_failure_jump's jump in the pattern, and d.  */
+	if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump
+	    && (re_opcode_t) p1[3] == start_memory && p1[4] == *p) {
+	  /* If this group ever matched anything, then restore
+	     what its registers were before trying this last
+	     failed match, e.g., with `(a*)*b' against `ab' for
+	     regstart[1], and, e.g., with `((a*)*(b*)*)*'
+	     against `aba' for regend[3].
+
+	     Also restore the registers for inner groups for,
+	     e.g., `((a*)(b*))*' against `aba' (register 3 would
+	     otherwise get trashed).  */
+
+	  if (EVER_MATCHED_SOMETHING (reg_info[*p])) {
+	    unsigned r;
+
+	    EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
+
+	    /* Restore this and inner groups' (if any) registers.  */
+	    for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1);
+		 r++) {
+	      regstart[r] = old_regstart[r];
+
+				/* xx why this test?  */
+	      if (old_regend[r] >= regstart[r])
+		regend[r] = old_regend[r];
+	    }
+	  }
+	  p1++;
+=====================================================================
+Found a 11 line (149 tokens) duplication in the following files: 
+Starting at line 1843 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 1859 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+				else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL )
+									,	::getCppuType( ( const uno::Reference< lang::XComponent >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XRelationshipAccess >* )NULL )
+=====================================================================
+Found a 18 line (149 tokens) duplication in the following files: 
+Starting at line 2150 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2232 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+		   )) {
+                      char * m = NULL;
+                      if (compoundflag) m = affix_check_morph((word+i),strlen(word+i), compoundflag);
+                      if ((!m || *m == '\0') && compoundend)
+                            m = affix_check_morph((word+i),strlen(word+i), compoundend);
+                      strcat(*result, presult);
+                      line_uniq(m);
+                      if (strchr(m, '\n')) {
+                            strcat(*result, "(");
+                            strcat(*result, line_join(m, '|'));
+                            strcat(*result, ")");
+                      } else {
+                            strcat(*result, m);
+                      }
+                      free(m);
+                      strcat(*result, "\n");
+                      ok = 1;
+	    }
+=====================================================================
+Found a 32 line (149 tokens) duplication in the following files: 
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/macro.c
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_macro.c
+
+	expand(Tokenrow * trp, Nlist * np, MacroValidatorList *	pValidators)
+{
+//	Token * pOldNextTp;
+	Tokenrow ntr;
+	int ntokc, narg, i;
+	Tokenrow *atr[NARG + 1];
+
+	if (Mflag == 2)
+	{
+		if (np->ap)
+			error(INFO, "Macro expansion of %t with %s(%r)", trp->tp, np->name, np->ap);
+		else
+			error(INFO, "Macro expansion of %t with %s", trp->tp, np->name);
+	}
+
+	copytokenrow(&ntr, np->vp);         /* copy macro value */
+	if (np->ap == NULL)                 /* parameterless */
+		ntokc = 1;
+	else
+	{
+		ntokc = gatherargs(trp, atr, &narg);
+		if (narg < 0)
+		{                               /* not actually a call (no '(') */
+			trp->tp++;
+			return;
+		}
+		if (narg != rowlen(np->ap))
+		{
+			error(ERROR, "Disagreement in number of macro arguments");
+			trp->tp += ntokc;
+			return;
+		}
+=====================================================================
+Found a 6 line (149 tokens) duplication in the following files: 
+Starting at line 1372 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1378 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2540 - 254f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2550 - 255f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2560 - 256f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2570 - 257f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2580 - 258f
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+=====================================================================
+Found a 5 line (149 tokens) duplication in the following files: 
+Starting at line 1279 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2330 - 233f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2340 - 234f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2350 - 235f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2360 - 236f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,10,10,// 2370 - 237f
+=====================================================================
+Found a 6 line (149 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,// fa20 - fa2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa30 - fa3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa40 - fa4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa50 - fa5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa60 - fa6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa70 - fa7f
+=====================================================================
+Found a 6 line (149 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 600 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2540 - 254f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2550 - 255f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2560 - 256f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2570 - 257f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2580 - 258f
+    27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+=====================================================================
+Found a 6 line (149 tokens) duplication in the following files: 
+Starting at line 475 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e40 - 1e4f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e50 - 1e5f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e60 - 1e6f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e70 - 1e7f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e80 - 1e8f
+     1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 1e90 - 1e9f
+=====================================================================
+Found a 6 line (149 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1260 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1850 - 185f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 22 line (149 tokens) duplication in the following files: 
+Starting at line 337 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 787 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+  double bet = b;
+  u[0] = r[0]/bet;
+  int i, j;
+  for (i = 0, j = 1; j < n; i++, j++)
+  {
+    gam[i] = c/bet;
+    bet = b-a*gam[i];
+    if ( bet == 0 )
+    {
+      delete[] gam;
+      return 0;
+    }
+    u[j] = (r[j]-a*u[i])/bet;
+  }
+  for (i = n-1, j = n-2; j >= 0; i--, j--)
+    u[j] -= gam[j]*u[i];
+
+  delete[] gam;
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystemD::SolveSymmetric (int n, double** A, double* b)
+=====================================================================
+Found a 11 line (149 tokens) duplication in the following files: 
+Starting at line 838 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 994 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+       14,   11,    7,    3,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+=====================================================================
+Found a 5 line (149 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4dc0 - 4dcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4dd0 - 4ddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4de0 - 4def
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4df0 - 4dff
+=====================================================================
+Found a 25 line (149 tokens) duplication in the following files: 
+Starting at line 3608 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 3947 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+					 padd(ascii("draw:z-index"), sXML_CDATA,
+                    ascii(Int2Str(hbox->zorder, "%d", buf)));
+                switch (hbox->style.anchor_type)
+                {
+                    case CHAR_ANCHOR:
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("as-char"));
+                        break;
+                    case PARA_ANCHOR:
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("paragraph"));
+                        break;
+                    case PAGE_ANCHOR:
+                    case PAPER_ANCHOR:
+                    {
+                        // os unused
+                        // HWPInfo *hwpinfo = hwpfile.GetHWPInfo();
+                        padd(ascii("text:anchor-type"), sXML_CDATA, ascii("page"));
+                        padd(ascii("text:anchor-page-number"), sXML_CDATA,
+                            ascii(Int2Str(hbox->pgno +1, "%d", buf)));
+                        break;
+                    }
+                }
+                if (hbox->style.anchor_type != CHAR_ANCHOR)
+                {
+                    padd(ascii("svg:x"), sXML_CDATA,
+                        Double2Str(WTMM( hbox->pgx + hbox->style.margin[0][0] )) + ascii("mm"));
+=====================================================================
+Found a 24 line (149 tokens) duplication in the following files: 
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/itemcontainer.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/rootitemcontainer.cxx
+
+void SAL_CALL RootItemContainer::insertByIndex( sal_Int32 Index, const Any& aItem ) 
+throw ( IllegalArgumentException, IndexOutOfBoundsException, WrappedTargetException, RuntimeException )
+{
+    Sequence< PropertyValue > aSeq;
+    if ( aItem >>= aSeq )
+    {
+        ShareGuard aLock( m_aShareMutex );
+        if ( sal_Int32( m_aItemVector.size()) == Index )
+            m_aItemVector.push_back( aSeq );
+        else if ( sal_Int32( m_aItemVector.size()) >Index )
+	    {
+		    std::vector< Sequence< PropertyValue > >::iterator aIter = m_aItemVector.begin();
+            aIter += Index;
+		    m_aItemVector.insert( aIter, aSeq );
+        }
+        else
+		    throw IndexOutOfBoundsException( OUString(), (OWeakObject *)this );
+    }
+    else
+        throw IllegalArgumentException( OUString( RTL_CONSTASCII_USTRINGPARAM( WRONG_TYPE_EXCEPTION )),
+				                        (OWeakObject *)this, 2 );
+}
+
+void SAL_CALL RootItemContainer::removeByIndex( sal_Int32 Index )
+=====================================================================
+Found a 19 line (149 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxconfiguration.cxx
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxconfiguration.cxx
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ToolBoxConfiguration::LoadToolBox( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+=====================================================================
+Found a 41 line (149 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesdocumenthandler.cxx
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesdocumenthandler.cxx
+
+                                              break;          
+						}
+					}
+				} // for
+
+				if ( m_pImages->aURL.Len() == 0 )
+				{
+					delete m_pImages;
+					m_pImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Required attribute xlink:href must have a value!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+			}
+			break;
+
+			case IMG_ELEMENT_ENTRY:
+			{
+				// Check that image:entry is embeded into image:images!
+				if ( !m_bImagesStartFound )
+				{
+					delete m_pImages;
+					m_pImages = NULL;
+
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:entry' must be embeded into element 'image:images'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( !m_pImages->pImageItemList )
+					m_pImages->pImageItemList = new ImageItemListDescriptor;
+
+				m_bImageStartFound = sal_True;
+
+				// Create new image item descriptor
+				ImageItemDescriptor* pItem = new ImageItemDescriptor;
+				pItem->nIndex = -1;
+
+				// Read attributes for this image definition
+				for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+=====================================================================
+Found a 5 line (149 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4dc0 - 4dcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4dd0 - 4ddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4de0 - 4def
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4df0 - 4dff
+=====================================================================
+Found a 31 line (149 tokens) duplication in the following files: 
+Starting at line 773 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+
+			printf( "Performance reading : %g s\n" , fEnd - fStart );
+			
+		}
+		catch( SAXParseException& e ) {
+			UsrAny any;
+			any.set( &e , SAXParseException_getReflection() );
+			while(TRUE) {
+				SAXParseException *pEx;
+				if( any.getReflection() == SAXParseException_getReflection() ) {
+					pEx = ( SAXParseException * ) any.get();
+					printf( "%s\n" , UStringToString( pEx->Message , CHARSET_SYSTEM ).GetStr()  );	
+					any = pEx->WrappedException;
+				}
+				else {
+					break;	
+				}
+			}
+		}
+		catch( SAXException& e ) {
+			printf( "%s\n" , UStringToString( e.Message , CHARSET_SYSTEM ).GetStr()  );	
+				
+		}
+		catch( Exception& e ) {
+			printf( "normal exception ! %s\n", e.getName() );
+		}
+		catch(...) {
+			printf( "any exception !!!!\n" );	
+		}
+	}	
+
+}
+=====================================================================
+Found a 28 line (149 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1182 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
+=====================================================================
+Found a 28 line (149 tokens) duplication in the following files: 
+Starting at line 1182 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+Starting at line 1266 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+
+            if( rState.clip.count() == 0 )
+            {
+                if( rState.clipRect.IsEmpty() )
+                {
+                    rState.xClipPoly.clear();
+                }
+                else
+                {
+                    rState.xClipPoly = ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(
+                        rParms.mrCanvas->getUNOCanvas()->getDevice(),
+                        ::basegfx::B2DPolyPolygon(
+                            ::basegfx::tools::createPolygonFromRect( 
+                                // #121100# VCL rectangular clips
+                                // always include one more pixel to
+                                // the right and the bottom
+                                ::basegfx::B2DRectangle( rState.clipRect.Left(),
+                                                         rState.clipRect.Top(),
+                                                         rState.clipRect.Right()+1,
+                                                         rState.clipRect.Bottom()+1 ) ) ) );
+                }
+            }
+            else
+            {
+                rState.xClipPoly = ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(
+                    rParms.mrCanvas->getUNOCanvas()->getDevice(),
+                    rState.clip );
+            }
+        }
+=====================================================================
+Found a 32 line (149 tokens) duplication in the following files: 
+Starting at line 1177 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 1774 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaData.cxx
+
+	return ownInsertsAreVisible(setType);
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::updatesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::deletesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::insertsAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsBatchUpdates(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+Reference< XResultSet > SAL_CALL ODatabaseMetaData::getUDTs( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*typeNamePattern*/, const Sequence< sal_Int32 >& /*types*/ ) throw(SQLException, RuntimeException)
+{
+	return NULL;
+}
+// -------------------------------------------------------------------------
+Reference< XConnection > SAL_CALL ODatabaseMetaData::getConnection(  ) throw(SQLException, RuntimeException)
+{
+	return (Reference< XConnection >)m_pConnection;//new OConnection(m_aConnectionHandle);
+}
+=====================================================================
+Found a 23 line (149 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+bool m_bInteractive = false;
+
+#define COUT if(m_bInteractive) cout
+
+ostream& operator << (ostream& out, rtl::OUString const& aStr)
+{
+	sal_Unicode const* const pStr = aStr.getStr();
+	sal_Unicode const* const pEnd = pStr + aStr.getLength();
+	for (sal_Unicode const* p = pStr; p < pEnd; ++p)
+		if (0 < *p && *p < 127) // ASCII
+			out << char(*p);
+		else
+			out << "[\\u" << hex << *p << "]";
+	return out;
+}
+
+void showSequence(const Sequence<OUString> &aSeq)
+{
+	OUString aArray;
+	const OUString *pStr = aSeq.getConstArray();
+	for (int i=0;i<aSeq.getLength();i++)
+	{
+		OUString aStr = pStr[i];
+=====================================================================
+Found a 24 line (149 tokens) duplication in the following files: 
+Starting at line 659 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+
+} //end of namespace
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0; //null
+    slots[-1] = 0; //destructor
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vTableOffset)
+=====================================================================
+Found a 24 line (148 tokens) duplication in the following files: 
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr++;
+
+                        weight = (weight_array[x_hr] * 
+                                  weight_array[y_hr] + 
+=====================================================================
+Found a 13 line (148 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.cxx
+
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using ::com::sun::star::lang::XMultiServiceFactory ;
+using ::com::sun::star::lang::XSingleServiceFactory ;
+using ::rtl::OUString ;
+
+using ::com::sun::star::xml::wrapper::XXMLElementWrapper ;
+using ::com::sun::star::xml::wrapper::XXMLDocumentWrapper ;
+using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
+using ::com::sun::star::xml::crypto::XXMLEncryption ;
+using ::com::sun::star::xml::crypto::XXMLEncryptionTemplate ;
+using ::com::sun::star::xml::crypto::XXMLSecurityContext ;
+using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
+=====================================================================
+Found a 5 line (148 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_mask.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 5 line (148 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
+=====================================================================
+Found a 6 line (148 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_mask.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+
+ 0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (148 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
+=====================================================================
+Found a 29 line (148 tokens) duplication in the following files: 
+Starting at line 1811 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/edit.cxx
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+	Font aFont = mpImplLB->GetMainWindow()->GetDrawPixelFont( pDev );
+	OutDevType eOutDevType = pDev->GetOutDevType();
+
+	pDev->Push();
+	pDev->SetMapMode();
+	pDev->SetFont( aFont );
+	pDev->SetTextFillColor();
+
+	// Border/Background
+	pDev->SetLineColor();
+	pDev->SetFillColor();
+	BOOL bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
+	BOOL bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+	if ( bBorder || bBackground )
+	{
+		Rectangle aRect( aPos, aSize );
+		if ( bBorder )
+		{
+            ImplDrawFrame( pDev, aRect );
+		}
+		if ( bBackground )
+		{
+			pDev->SetFillColor( GetControlBackground() );
+			pDev->DrawRect( aRect );
+		}
+	}
+
+	// Inhalt
+	if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+=====================================================================
+Found a 17 line (148 tokens) duplication in the following files: 
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salgdi.h
+
+                                        const SalBitmap& rMaskBitmap );
+    virtual void			drawMask( const SalTwoRect* pPosAry,
+                                      const SalBitmap& rSalBitmap,
+                                      SalColor nMaskColor );
+    virtual SalBitmap*		getBitmap( long nX, long nY, long nWidth, long nHeight );
+    virtual SalColor		getPixel( long nX, long nY );
+    virtual void			invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags );
+    virtual void			invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+
+    virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+
+    virtual bool 			drawAlphaBitmap( const SalTwoRect&,
+                                             const SalBitmap& rSourceBitmap,
+                                             const SalBitmap& rAlphaBitmap );
+
+    virtual bool		    drawAlphaRect( long nX, long nY, long nWidth, 
+                                           long nHeight, sal_uInt8 nTransparency );
+=====================================================================
+Found a 21 line (148 tokens) duplication in the following files: 
+Starting at line 4503 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 4603 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+bool INetURLObject::removeExtension(sal_Int32 nIndex, bool bIgnoreFinalSlash)
+{
+	SubString aSegment(getSegment(nIndex, bIgnoreFinalSlash));
+	if (!aSegment.isPresent())
+		return false;
+
+	sal_Unicode const * pPathBegin
+		= m_aAbsURIRef.getStr() + m_aPath.getBegin();
+	sal_Unicode const * pPathEnd = pPathBegin + m_aPath.getLength();
+	sal_Unicode const * pSegBegin
+		= m_aAbsURIRef.getStr() + aSegment.getBegin();
+	sal_Unicode const * pSegEnd = pSegBegin + aSegment.getLength();
+
+    if (pSegBegin < pSegEnd && *pSegBegin == '/')
+        ++pSegBegin;
+	sal_Unicode const * pExtension = 0;
+	sal_Unicode const * p = pSegBegin;
+	for (; p != pSegEnd && *p != ';'; ++p)
+		if (*p == '.' && p != pSegBegin)
+			pExtension = p;
+	if (!pExtension)
+=====================================================================
+Found a 30 line (148 tokens) duplication in the following files: 
+Starting at line 3902 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4019 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+	eParaAdjust = SVX_ADJUST_END;
+
+	String aId, aStyle, aClass, aLang, aDir;
+
+	const HTMLOptions *pOptions = GetOptions();
+	for( USHORT i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		switch( pOption->GetToken() )
+		{
+			case HTML_O_ID:
+				aId = pOption->GetString();
+				break;
+			case HTML_O_ALIGN:
+				eParaAdjust = (SvxAdjust)pOption->GetEnum( aHTMLPAlignTable, eParaAdjust );
+				break;
+			case HTML_O_STYLE:
+				aStyle = pOption->GetString();
+				break;
+			case HTML_O_CLASS:
+				aClass = pOption->GetString();
+				break;
+			case HTML_O_LANG:
+				aLang = pOption->GetString();
+				break;
+			case HTML_O_DIR:
+				aDir = pOption->GetString();
+				break;
+		}
+	}
+=====================================================================
+Found a 24 line (148 tokens) duplication in the following files: 
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+};
+=====================================================================
+Found a 32 line (148 tokens) duplication in the following files: 
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap4.cxx
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap4.cxx
+Starting at line 657 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap4.cxx
+
+				case OWN_ATTR_FRAME_MARGIN_HEIGHT:
+                    // allow exceptions to pass through
+                    xSet->setPropertyValue( aPropertyName, aValue );
+                    bOwn = sal_True;
+					break;
+                default:
+                    throw IllegalArgumentException();
+            }
+		}
+	}
+
+	if( !bOwn )
+		SvxOle2Shape::setPropertyValue( aPropertyName, aValue );
+
+	if( mpModel )
+	{
+        SfxObjectShell* pPersist = mpModel->GetPersist();
+		if( pPersist && !pPersist->IsEnableSetModified() )
+		{
+			SdrOle2Obj* pOle = static_cast< SdrOle2Obj* >( mpObj.get() );
+            if( pOle && !pOle->IsEmpty() )
+			{
+                uno::Reference < util::XModifiable > xMod( ((SdrOle2Obj*)mpObj.get())->GetObjRef(), uno::UNO_QUERY );
+                if( xMod.is() )
+                    // TODO/MBA: what's this?!
+                    xMod->setModified( sal_False );
+			}
+		}
+	}
+}
+
+Any SAL_CALL SvxFrameShape::getPropertyValue( const OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+=====================================================================
+Found a 7 line (148 tokens) duplication in the following files: 
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),		WID_PAGE_LDBITMAP,	&ITYPE(awt::XBitmap),							beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	    WID_PAGE_LDNAME,	&::getCppuType((const OUString*)0),			    beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER),			WID_PAGE_NUMBER,	&::getCppuType((const sal_Int16*)0),			beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION),		WID_PAGE_ORIENT,	&::getCppuType((const view::PaperOrientation*)0),0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH),			WID_PAGE_WIDTH,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN("BackgroundFullSize"),			WID_PAGE_BACKFULL,	&::getBooleanCppuType(),						0, 0},
+=====================================================================
+Found a 11 line (148 tokens) duplication in the following files: 
+Starting at line 1200 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomod.cxx
+
+    virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+	// XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+
+    // XServiceInfo
+    virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
+};
+=====================================================================
+Found a 26 line (148 tokens) duplication in the following files: 
+Starting at line 606 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fudraw.cxx
+Starting at line 821 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+
+								Rectangle aMarkRect(mpView->GetMarkedObjRect());
+								aMarkRect.Move(nX, nY);
+
+								if(!aMarkRect.IsInside(rWorkArea))
+								{
+									if(aMarkRect.Left() < rWorkArea.Left())
+									{
+										nX += rWorkArea.Left() - aMarkRect.Left();
+									}
+
+									if(aMarkRect.Right() > rWorkArea.Right())
+									{
+										nX -= aMarkRect.Right() - rWorkArea.Right();
+									}
+
+									if(aMarkRect.Top() < rWorkArea.Top())
+									{
+										nY += rWorkArea.Top() - aMarkRect.Top();
+									}
+
+									if(aMarkRect.Bottom() > rWorkArea.Bottom())
+									{
+										nY -= aMarkRect.Bottom() - rWorkArea.Bottom();
+									}
+								}
+							}
+=====================================================================
+Found a 22 line (148 tokens) duplication in the following files: 
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconpol.cxx
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconbez.cxx
+
+				case SID_DRAW_BEZIER_NOFILL:
+				{
+					basegfx::B2DPolygon aInnerPoly;
+
+					aInnerPoly.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Bottom()));
+
+					const basegfx::B2DPoint aCenterBottom(rRectangle.Center().X(), rRectangle.Bottom());
+					aInnerPoly.appendBezierSegment(
+						aCenterBottom,
+						aCenterBottom,
+						basegfx::B2DPoint(rRectangle.Center().X(), rRectangle.Center().Y()));
+
+					const basegfx::B2DPoint aCenterTop(rRectangle.Center().X(), rRectangle.Top());
+					aInnerPoly.appendBezierSegment(
+						aCenterTop,
+						aCenterTop,
+						basegfx::B2DPoint(rRectangle.Right(), rRectangle.Top()));
+
+					aPoly.append(aInnerPoly);
+					break;
+				}
+				case SID_DRAW_FREELINE:
+=====================================================================
+Found a 24 line (148 tokens) duplication in the following files: 
+Starting at line 2816 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 3008 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+							const ScTabOpParam& rParam, BOOL bRecord, BOOL bApi )
+{
+	ScDocShellModificator aModificator( rDocShell );
+
+	BOOL bSuccess = FALSE;
+	ScDocument* pDoc = rDocShell.GetDocument();
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCTAB nStartTab = rRange.aStart.Tab();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nEndTab = rRange.aEnd.Tab();
+
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+
+	ScMarkData aMark;
+	if (pTabMark)
+		aMark = *pTabMark;
+	else
+	{
+		for (SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++)
+			aMark.SelectTable( nTab, TRUE );
+	}
+=====================================================================
+Found a 21 line (148 tokens) duplication in the following files: 
+Starting at line 3721 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3810 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	if (fCount < 3.0)
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+                    fSumSqrDeltaX    += (fValX - fMeanX) * (fValX - fMeanX);
+                    fSumSqrDeltaY    += (fValY - fMeanY) * (fValY - fMeanY);
+                }
+            }
+        }
+		if (fSumSqrDeltaX == 0.0)
+=====================================================================
+Found a 20 line (148 tokens) duplication in the following files: 
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+void writeParagraphHelper(
+	const  Reference< XExtendedDocumentHandler > &r ,
+	const OUString & s)
+{
+	int nMax = s.getLength();
+	int nStart = 0;
+
+	Sequence<sal_uInt16> seq( s.getLength() );
+	memcpy( seq.getArray() , s.getStr() , s.getLength() * sizeof( sal_uInt16 ) );
+
+	for( int n = 1 ; n < nMax ; n++ ){
+		if( 32 == seq.getArray()[n] ) {
+			r->allowLineBreak();
+			r->characters( s.copy( nStart , n - nStart ) );
+			nStart = n;
+		}
+	}
+	r->allowLineBreak();
+	r->characters( s.copy( nStart , n - nStart ) );
+}
+=====================================================================
+Found a 28 line (148 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testsax.cxx
+Starting at line 633 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testsax.cxx
+
+      	"<html:a href='http://frob.com'>here.</html:a></html:p></html:body>\n"
+  	"</html:html>\n";
+
+	Sequence<sal_Int8> seqBytes( strlen( TestString ) );
+	memcpy( seqBytes.getArray() , TestString , strlen( TestString ) );
+
+	
+	Reference< XInputStream > rInStream;
+	OUString sInput;
+
+	rInStream = createStreamFromSequence( seqBytes , m_rFactory );
+	sInput = OUString( RTL_CONSTASCII_USTRINGPARAM("internal") );
+	
+	if( rParser.is() ) {
+		InputSource source;
+
+		source.aInputStream = rInStream;
+		source.sSystemId 	= sInput;
+		
+		TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , sal_False );
+		Reference < XDocumentHandler > rDocHandler( (XDocumentHandler *) pDocHandler , UNO_QUERY );
+		Reference< XEntityResolver >  rEntityResolver( (XEntityResolver *) pDocHandler , UNO_QUERY );
+	
+		rParser->setDocumentHandler( rDocHandler );
+		rParser->setEntityResolver( rEntityResolver );
+		try
+		{
+			rParser->parseStream( source );
+=====================================================================
+Found a 10 line (148 tokens) duplication in the following files: 
+Starting at line 953 of /local/ooo-build/ooo-build/src/oog680-m3/sax/source/expatwrap/saxwriter.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/svx/workben/msview/xmlconfig.cxx
+
+public:
+	// XDocumentHandler
+	virtual void SAL_CALL startDocument(void) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL endDocument(void) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL startElement(const OUString& aName, const Reference< XAttributeList > & xAttribs) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL endElement(const OUString& aName) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL characters(const OUString& aChars) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL ignorableWhitespace(const OUString& aWhitespaces) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL processingInstruction(const OUString& aTarget, const OUString& aData) throw( SAXException, RuntimeException );
+	virtual void SAL_CALL setDocumentLocator(const Reference< XLocator > & xLocator) throw( SAXException, RuntimeException );
+=====================================================================
+Found a 10 line (148 tokens) duplication in the following files: 
+Starting at line 1844 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 1876 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL )
+									,	::getCppuType( ( const uno::Reference< lang::XComponent >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XExtendedStorageStream >* )NULL )
+=====================================================================
+Found a 79 line (148 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+
+/* RES_BOXATR_FORMAT */				0,
+/* RES_BOXATR_FORMULA */			0,
+/* RES_BOXATR_VALUE */				0
+};
+=====================================================================
+Found a 5 line (148 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
+=====================================================================
+Found a 6 line (148 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_mask.h
+
+ 0x3f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (148 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
+=====================================================================
+Found a 6 line (148 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_mask.h
+
+ 0x3f,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 79 line (148 tokens) duplication in the following files: 
+Starting at line 408 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+
+/* RES_BOXATR_FORMAT */				0,
+/* RES_BOXATR_FORMULA */			0,
+/* RES_BOXATR_VALUE */				0
+};
+=====================================================================
+Found a 16 line (148 tokens) duplication in the following files: 
+Starting at line 638 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+Starting at line 666 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+
+				double fOrientation, fStartAngle, fEndAngle, vector[ 4 ];
+				FloatPoint aCenter, aRadius;
+
+				if ( mbFigure )
+					mpOutAct->CloseRegion();
+
+				sal_Bool bDirection = ImplGetEllipse( aCenter, aRadius, fOrientation );
+				ImplGetVector( &vector[ 0 ] );
+
+				fStartAngle = acos( vector[ 0 ] / sqrt( vector[ 0 ] * vector[ 0 ] + vector[ 1 ] * vector[ 1 ] ) ) * 57.29577951308;
+				fEndAngle = acos( vector[ 2 ] / sqrt( vector[ 2 ] * vector[ 2 ] + vector[ 3 ] * vector[ 3 ] ) ) * 57.29577951308;
+
+				if ( vector[ 1 ] > 0 )
+					fStartAngle = 360 - fStartAngle;
+				if ( vector[ 3 ] > 0 )
+					fEndAngle = 360 - fEndAngle;
+=====================================================================
+Found a 22 line (148 tokens) duplication in the following files: 
+Starting at line 705 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+
+		case (B3D_TXT_MODE_MOD|B3D_TXT_KIND_LUM) :
+		{
+			fS = fS - floor(fS);
+			fT = fT - floor(fT);
+			long nX2, nY2;
+
+			if(fS > 0.5) {
+				nX2 = (nX + 1) % GetBitmapSize().Width();
+				fS = 1.0 - fS;
+			} else
+				nX2 = nX ? nX - 1 : GetBitmapSize().Width() - 1;
+
+			if(fT > 0.5) {
+				nY2 = (nY + 1) % GetBitmapSize().Height();
+				fT = 1.0 - fT;
+			} else
+				nY2 = nY ? nY - 1 : GetBitmapSize().Height() - 1;
+
+			fS += 0.5;
+			fT += 0.5;
+			double fRight = 1.0 - fS;
+			double fBottom = 1.0 - fT;
+=====================================================================
+Found a 25 line (148 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/constitemcontainer.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/rootitemcontainer.cxx
+
+void RootItemContainer::copyItemContainer( const std::vector< Sequence< PropertyValue > >& rSourceVector )
+{
+    for ( sal_uInt32 i = 0; i < rSourceVector.size(); i++ )
+    {
+        sal_Int32 nContainerIndex = -1;
+        Sequence< PropertyValue > aPropSeq( rSourceVector[i] );
+        Reference< XIndexAccess > xIndexAccess;
+        for ( sal_Int32 j = 0; j < aPropSeq.getLength(); j++ )
+        {
+            if ( aPropSeq[j].Name.equalsAscii( "ItemDescriptorContainer" ))
+            {
+                aPropSeq[j].Value >>= xIndexAccess;
+                nContainerIndex = j;
+                break;
+            }
+        }
+        
+        if ( xIndexAccess.is() && nContainerIndex >= 0 )
+            aPropSeq[nContainerIndex].Value <<= deepCopyContainer( xIndexAccess );
+        
+        m_aItemVector.push_back( aPropSeq );
+    }
+}
+
+Reference< XIndexAccess > RootItemContainer::deepCopyContainer( const Reference< XIndexAccess >& rSubContainer )
+=====================================================================
+Found a 20 line (148 tokens) duplication in the following files: 
+Starting at line 1646 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+Starting at line 610 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/filepicker/FilePicker.cxx
+
+void SAL_CALL CFilePicker::initialize(const uno::Sequence<uno::Any>& aArguments) 
+	throw( uno::Exception, uno::RuntimeException)
+{
+	// parameter checking	    
+	uno::Any aAny;
+	if ( 0 == aArguments.getLength( ) )
+		throw lang::IllegalArgumentException(
+			rtl::OUString::createFromAscii( "no arguments" ),
+			static_cast<XFilePicker*>(this), 1);
+   
+    aAny = aArguments[0];
+
+    if ( (aAny.getValueType() != ::getCppuType((sal_Int16*)0)) &&
+         (aAny.getValueType() != ::getCppuType((sal_Int8*)0)) )
+		 throw lang::IllegalArgumentException(
+            rtl::OUString::createFromAscii("invalid argument type"),
+            static_cast<XFilePicker*>(this), 1);
+
+	sal_Int16 templateId = -1;
+	aAny >>= templateId;
+=====================================================================
+Found a 79 line (148 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+
+/* RES_BOXATR_FORMAT */				0,
+/* RES_BOXATR_FORMULA */			0,
+/* RES_BOXATR_VALUE */				0
+};
+=====================================================================
+Found a 28 line (148 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/crashrep/source/unx/main.cxx
+Starting at line 570 of /local/ooo-build/ooo-build/src/oog680-m3/crashrep/source/win32/soreport.cpp
+
+	return string( pBuffer );
+}
+
+//***************************************************************************
+
+static string xml_encode( const string &rString )
+{
+	string temp = rString;
+    string::size_type pos = 0;
+
+	// First replace all occurences of '&' because it may occur in further
+	// encoded chardters too
+
+    for( pos = 0; (pos = temp.find( '&', pos )) != string::npos; pos += 4 )
+        temp.replace( pos, 1, "&amp;" );
+
+	for( pos = 0; (pos = temp.find( '<', pos )) != string::npos; pos += 4 )
+        temp.replace( pos, 1, "&lt;" );
+
+    for( pos = 0; (pos = temp.find( '>', pos )) != string::npos; pos += 4 )
+        temp.replace( pos, 1, "&gt;" );
+
+	return temp;
+}
+
+//***************************************************************************
+
+static size_t fcopy( FILE *fpin, FILE *fpout )
+=====================================================================
+Found a 23 line (148 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1736 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+            (a >>= b) && b.getLength() == 1 && b[0] == 1);
+    }
+    {
+        Enum1 b = Enum1_M2;
+        CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testEnum() {
+=====================================================================
+Found a 28 line (148 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 778 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int32 >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
+=====================================================================
+Found a 37 line (148 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/Dservices.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+
+	OSL_ENSURE(xNewKey.is(), "EVOAB::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(::com::sun::star::uno::Exception)
+=====================================================================
+Found a 19 line (148 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDriver.cxx
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDriver.cxx
+
+Sequence< DriverPropertyInfo > SAL_CALL OFileDriver::getPropertyInfo( const ::rtl::OUString& url, const Sequence< PropertyValue >& /*info*/ ) throw(SQLException, RuntimeException)
+{
+	if ( acceptsURL(url) )
+	{
+		::std::vector< DriverPropertyInfo > aDriverInfo;
+
+		Sequence< ::rtl::OUString > aBoolean(2);
+		aBoolean[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"));
+		aBoolean[1] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"));
+
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet of the database."))
+				,sal_False
+				,::rtl::OUString()
+				,Sequence< ::rtl::OUString >())
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Extension"))
+=====================================================================
+Found a 37 line (148 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+
+	OSL_ENSURE(xNewKey.is(), "EVOAB::component_writeInfo : could not create a registry key !");
+
+	for (sal_Int32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname,
+				const Sequence< OUString > & Services,
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try
+		{
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
+		}
+		catch(::com::sun::star::uno::Exception)
+=====================================================================
+Found a 21 line (148 tokens) duplication in the following files: 
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+Starting at line 339 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+
+void DeferredGroupNodeImpl::failedCommit(data::Accessor const& _aAccessor, SubtreeChange& rChanges)
+{
+	OSL_ENSURE(!rChanges.isSetNodeChange(),"ERROR: Change type SET does not match group");
+
+	for(SubtreeChange::MutatingChildIterator it = rChanges.begin_changes(), stop = rChanges.end_changes();
+		it != stop;
+		++it)
+	{
+		Name aValueName = makeNodeName(it->getNodeName(), Name::NoValidate());
+
+        MemberChanges::iterator itStoredChange = m_aChanges.find(aValueName);
+
+        if (itStoredChange != m_aChanges.end())
+        {
+            OSL_ENSURE( it->ISA(ValueChange) , "Unexpected type of element change");
+			if (!it->ISA(ValueChange)) continue;
+
+            ValueChange & rValueChange = static_cast<ValueChange&>(*it);
+
+            MemberChange aStoredChange = itStoredChange->second;
+            OSL_ENSURE( aStoredChange.is(), "Cannot recover from failed change: found empty change object for Member value change");
+=====================================================================
+Found a 24 line (148 tokens) duplication in the following files: 
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 600 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+		ElementRef aElement = aTree.getElement(aNode,aChildName);
+		if (!aElement.isValid())
+		{
+	    	OSL_ENSURE(!configuration::hasChildOrElement(aTree,aNode,aChildName),"ERROR: Configuration: Existing Set element not found by implementation");
+
+		    OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot remove Set Element. Element '") );
+			sMessage += sName;
+			sMessage += OUString( RTL_CONSTASCII_USTRINGPARAM("' not found in Set ")  );
+			sMessage += aTree.getAbsolutePath(aNode).toString();
+
+			Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+			throw NoSuchElementException( sMessage, xContext );
+		}
+
+		NodeChange aChange = lock.getNodeUpdater().validateRemoveElement(aElement);
+
+		aChange.test(); // make sure old values are set up correctly
+		OSL_ENSURE(aChange.isChange(), "ERROR: Removing a node validated as empty change");
+
+		Broadcaster aSender(rNode.getNotifier().makeBroadcaster(aChange,true));
+
+		//aSender.queryConstraints(); - N/A: no external constraints on set children possible
+
+		aTree.integrate(aChange, aNode, true);
+=====================================================================
+Found a 14 line (148 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/IndexedPropertyValuesContainer.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+
+		throw(::com::sun::star::uno::RuntimeException);
+
+	// XElementAccess
+	virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  )
+		throw(::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL hasElements(  )
+		throw(::com::sun::star::uno::RuntimeException);
+
+	//XServiceInfo
+	virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
+
+private:
+=====================================================================
+Found a 31 line (148 tokens) duplication in the following files: 
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+	for (; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'X':
+=====================================================================
+Found a 36 line (148 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2010 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if (aSuperReader.isValid())
+		{
+			count = checkInheritedMemberCount(&aSuperReader);		
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+			
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+				count++;
+		}	
+	}
+
+	return count;
+}	
+
+sal_uInt32 InterfaceType::getInheritedMemberCount()
+=====================================================================
+Found a 31 line (148 tokens) duplication in the following files: 
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+
+	for( ; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'B':
+=====================================================================
+Found a 29 line (148 tokens) duplication in the following files: 
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/textlayout.cxx
+
+        tools::LocalGuard aGuard;
+
+        setupLayoutMode( rOutDev, mnTextDirection );
+
+        if( maLogicalAdvancements.getLength() )
+        {
+            // TODO(P2): cache that
+            ::boost::scoped_array< sal_Int32 > aOffsets(new sal_Int32[maLogicalAdvancements.getLength()]);
+            setupTextOffsets( aOffsets.get(), maLogicalAdvancements, viewState, renderState );
+            
+            // TODO(F3): ensure correct length and termination for DX
+            // array (last entry _must_ contain the overall width)
+            
+            rOutDev.DrawTextArray( rOutpos,
+                                   maText.Text,
+                                   aOffsets.get(),
+                                   ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
+                                   ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
+        }
+        else
+        {
+            rOutDev.DrawText( rOutpos,
+                              maText.Text,
+                              ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
+                              ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
+        }
+
+        return true;
+    }
+=====================================================================
+Found a 27 line (148 tokens) duplication in the following files: 
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 25 line (148 tokens) duplication in the following files: 
+Starting at line 494 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+}
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
+=====================================================================
+Found a 28 line (148 tokens) duplication in the following files: 
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+                    (void **)&pInterface, pCppI->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( gpreg[0] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = gpreg[0];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+=====================================================================
+Found a 27 line (148 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 19 line (148 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxobj.cxx
+Starting at line 582 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxobj.cxx
+
+		SetModified( TRUE );
+#ifdef DBG_UTIL
+	static const char* pCls[] =
+	{ "DontCare","Array","Value","Variable","Method","Property","Object" };
+	XubString aVarName( pVar->GetName() );
+	if ( !aVarName.Len() && pVar->ISA(SbxObject) )
+		aVarName = PTR_CAST(SbxObject,pVar)->GetClassName();
+	ByteString aNameStr1( (const UniString&)aVarName, RTL_TEXTENCODING_ASCII_US );
+	ByteString aNameStr2( (const UniString&)SbxVariable::GetName(), RTL_TEXTENCODING_ASCII_US );
+	DbgOutf( "SBX: Insert %s %s in %s",
+		( pVar->GetClass() >= SbxCLASS_DONTCARE &&
+		  pVar->GetClass() <= SbxCLASS_OBJECT )
+			? pCls[ pVar->GetClass()-1 ] : "Unknown class", aNameStr1.GetBuffer(), aNameStr1.GetBuffer() );
+#endif
+	}
+}
+
+// AB 23.3.1997, Spezial-Methode, gleichnamige Controls zulassen
+void SbxObject::VCPtrInsert( SbxVariable* pVar )
+=====================================================================
+Found a 24 line (147 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[4];
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+=====================================================================
+Found a 24 line (147 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[3];
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+=====================================================================
+Found a 26 line (147 tokens) duplication in the following files: 
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+Starting at line 671 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+            unsigned step_back = diameter * 3;
+            color_type* span = base_type::allocator().span();
+
+            int maxx = base_type::source_image().width() + start - 2;
+            int maxy = base_type::source_image().height() + start - 2;
+
+            int maxx2 = base_type::source_image().width() - start - 1;
+            int maxy2 = base_type::source_image().height() - start - 1;
+
+            int x_count; 
+            int weight_y;
+
+            do
+            {
+                base_type::interpolator().coordinates(&x, &y);
+
+                x -= base_type::filter_dx_int();
+                y -= base_type::filter_dy_int();
+
+                int x_hr = x;
+                int y_hr = y;
+            
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+=====================================================================
+Found a 5 line (147 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_mask.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,
+=====================================================================
+Found a 29 line (147 tokens) duplication in the following files: 
+Starting at line 1059 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/region.cxx
+Starting at line 1254 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/region.cxx
+
+BOOL Region::XOr( const Rectangle& rRect )
+{
+	DBG_CHKTHIS( Region, ImplDbgTestRegion );
+
+	// is rectangle empty? -> nothing to do
+	if ( rRect.IsEmpty() )
+		return TRUE;
+
+	ImplPolyPolyRegionToBandRegion();
+
+	// no instance data? -> create!
+	if ( (mpImplRegion == &aImplEmptyRegion) || (mpImplRegion == &aImplNullRegion) )
+		mpImplRegion = new ImplRegion();
+
+	// no own instance data? -> make own copy!
+	if ( mpImplRegion->mnRefCount > 1 )
+		ImplCopyData();
+
+	// get justified rectangle
+	long nLeft		= Min( rRect.Left(), rRect.Right() );
+	long nTop		= Min( rRect.Top(), rRect.Bottom() );
+	long nRight 	= Max( rRect.Left(), rRect.Right() );
+	long nBottom	= Max( rRect.Top(), rRect.Bottom() );
+
+	// insert bands if the boundaries are not allready in the list
+	mpImplRegion->InsertBands( nTop, nBottom );
+
+	// process xor
+	mpImplRegion->XOr( nLeft, nTop, nRight, nBottom );
+=====================================================================
+Found a 18 line (147 tokens) duplication in the following files: 
+Starting at line 1094 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+								nTemp = pLutFrac[ nY ];
+
+								lXR1 = aCol1.GetRed() - ( lXR0 = aCol0.GetRed() );
+								lXG1 = aCol1.GetGreen() - ( lXG0 = aCol0.GetGreen() );
+								lXB1 = aCol1.GetBlue() - ( lXB0 = aCol0.GetBlue() );
+
+								aCol0.SetRed( (BYTE) ( ( lXR1 * nTemp + ( lXR0 << 10 ) ) >> 10 ) );
+								aCol0.SetGreen( (BYTE) ( ( lXG1 * nTemp + ( lXG0 << 10 ) ) >> 10 ) );
+								aCol0.SetBlue( (BYTE) ( ( lXB1 * nTemp + ( lXB0 << 10 ) ) >> 10 ) );
+
+								pWriteAcc->SetPixel( nY, nX, aCol0 );
+							}
+						}
+					}
+				}
+				else
+				{
+					for( nX = 0L; nX < nNewWidth; nX++ )
+=====================================================================
+Found a 24 line (147 tokens) duplication in the following files: 
+Starting at line 1222 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/ucblockbytes.cxx
+Starting at line 1315 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/ucblockbytes.cxx
+
+    if ( bAborted || bException )
+    {
+        if( xHandler.Is() )
+            xHandler->Handle( UcbLockBytesHandler::CANCEL, xLockBytes );
+
+        Reference < XActiveDataSink > xActiveSink( xSink, UNO_QUERY );
+        if ( xActiveSink.is() )
+            xActiveSink->setInputStream( Reference < XInputStream >() );
+
+        Reference < XActiveDataStreamer > xStreamer( xSink, UNO_QUERY );
+        if ( xStreamer.is() )
+            xStreamer->setStream( Reference < XStream >() );
+    }
+
+    Reference < XActiveDataControl > xControl( xSink, UNO_QUERY );
+    if ( xControl.is() )
+        xControl->terminate();
+
+
+    if ( xProps.is() )
+        xProps->removePropertiesChangeListener( Sequence< ::rtl::OUString >(), xListener );
+
+    return ( bAborted || bException );
+}
+=====================================================================
+Found a 19 line (147 tokens) duplication in the following files: 
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/pagechg.cxx
+Starting at line 2145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/wsfrm.cxx
+
+	BYTE nInvFlags = 0;
+
+	if( pNew && RES_ATTRSET_CHG == pNew->Which() )
+	{
+		SfxItemIter aNIter( *((SwAttrSetChg*)pNew)->GetChgSet() );
+		SfxItemIter aOIter( *((SwAttrSetChg*)pOld)->GetChgSet() );
+		SwAttrSetChg aOldSet( *(SwAttrSetChg*)pOld );
+		SwAttrSetChg aNewSet( *(SwAttrSetChg*)pNew );
+		while( TRUE )
+		{
+			_UpdateAttr( (SfxPoolItem*)aOIter.GetCurItem(),
+						 (SfxPoolItem*)aNIter.GetCurItem(), nInvFlags,
+						 &aOldSet, &aNewSet );
+			if( aNIter.IsAtEnd() )
+				break;
+			aNIter.NextItem();
+			aOIter.NextItem();
+		}
+		if ( aOldSet.Count() || aNewSet.Count() )
+=====================================================================
+Found a 28 line (147 tokens) duplication in the following files: 
+Starting at line 791 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doctxm.cxx
+Starting at line 1505 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndsect.cxx
+
+                nNum = rNm.Copy( nNmLen ).ToInt32();
+				if( nNum-- && nNum < pSectionFmtTbl->Count() )
+					pSetFlags[ nNum / 8 ] |= (0x01 << ( nNum & 0x07 ));
+			}
+			if( pChkStr && pChkStr->Equals( rNm ) )
+				pChkStr = 0;
+		}
+
+	if( !pChkStr )
+	{
+		// alle Nummern entsprechend geflag, also bestimme die richtige Nummer
+		nNum = pSectionFmtTbl->Count();
+		for( n = 0; n < nFlagSize; ++n )
+			if( 0xff != ( nTmp = pSetFlags[ n ] ))
+			{
+				// also die Nummer bestimmen
+				nNum = n * 8;
+				while( nTmp & 1 )
+					++nNum, nTmp >>= 1;
+				break;
+			}
+
+	}
+	delete [] pSetFlags;
+	if( pChkStr )
+		return *pChkStr;
+	return aName += String::CreateFromInt32( ++nNum );
+}
+=====================================================================
+Found a 29 line (147 tokens) duplication in the following files: 
+Starting at line 1998 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 2691 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+sal_Bool XLineEndItem::PutValue( const ::com::sun::star::uno::Any& rVal, BYTE nMemberId )
+{
+//    sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
+    nMemberId &= ~CONVERT_TWIPS;
+	if( nMemberId == MID_NAME )
+	{
+		return sal_False;
+	}
+	else
+	{
+		maPolyPolygon.clear();
+
+		if( rVal.hasValue() && rVal.getValue() )
+		{
+			if( rVal.getValueType() != ::getCppuType((const com::sun::star::drawing::PolyPolygonBezierCoords*)0) )
+				return sal_False;
+
+			com::sun::star::drawing::PolyPolygonBezierCoords* pCoords = (com::sun::star::drawing::PolyPolygonBezierCoords*)rVal.getValue();
+			if( pCoords->Coordinates.getLength() > 0 )
+			{
+				maPolyPolygon = SvxConvertPolyPolygonBezierToB2DPolyPolygon( pCoords );
+				// #i72807# close line start/end polygons hard
+				// maPolyPolygon.setClosed(true);
+			}
+		}
+	}
+
+	return sal_True;
+}
+=====================================================================
+Found a 12 line (147 tokens) duplication in the following files: 
+Starting at line 4828 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 5528 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+
+						if ( !rGlobalChildRect.IsEmpty() && !rClientRect.IsEmpty() && rGlobalChildRect.GetWidth() && rGlobalChildRect.GetHeight() )
+						{
+							double fl = l;
+							double fo = o;
+							double fWidth = r - l;
+							double fHeight= u - o;
+							double fXScale = (double)rClientRect.GetWidth() / (double)rGlobalChildRect.GetWidth();
+							double fYScale = (double)rClientRect.GetHeight() / (double)rGlobalChildRect.GetHeight();
+							fl = ( ( l - rGlobalChildRect.Left() ) * fXScale ) + rClientRect.Left();
+							fo = ( ( o - rGlobalChildRect.Top()  ) * fYScale ) + rClientRect.Top();
+							fWidth *= fXScale;
+							fHeight *= fYScale;
+=====================================================================
+Found a 33 line (147 tokens) duplication in the following files: 
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/docrecovery.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/docrecovery.cxx
+
+void RecoveryCore::forgetBrokenRecoveryEntries()
+{
+    if (!m_xRealCore.is())
+        return;
+
+    css::util::URL aRemoveURL = impl_getParsedURL(RECOVERY_CMD_DO_ENTRY_CLEANUP);
+    css::uno::Sequence< css::beans::PropertyValue > lRemoveArgs(2);
+    lRemoveArgs[0].Name    = PROP_DISPATCHASYNCHRON;
+    lRemoveArgs[0].Value <<= sal_False;
+    lRemoveArgs[1].Name    = PROP_ENTRYID;
+    // lRemoveArgs[1].Value will be changed during next loop ...
+
+    // work on a copied list only ...
+    // Reason: We will get notifications from the core for every
+    // changed or removed element. And that will change our m_lURLs list.
+    // That's not a good idea, if we use a stl iterator inbetween .-)
+    TURLList lURLs = m_lURLs;
+    TURLList::const_iterator pIt;
+    for (  pIt  = lURLs.begin();
+           pIt != lURLs.end()  ;
+         ++pIt                 )
+    {
+        const TURLInfo& rInfo = *pIt;
+        if (!RecoveryCore::isBrokenTempEntry(rInfo))
+            continue;
+
+        lRemoveArgs[1].Value <<= rInfo.ID;
+        m_xRealCore->dispatch(aRemoveURL, lRemoveArgs);
+    }
+}
+
+//===============================================
+void RecoveryCore::setProgressHandler(const css::uno::Reference< css::task::XStatusIndicator >& xProgress)
+=====================================================================
+Found a 21 line (147 tokens) duplication in the following files: 
+Starting at line 4551 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4140 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] =
+{
+	{ 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 },
+	{ 4350, 21600 }, { 0, 10800 }, { 4350, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] = 
+{
+	{ { 4350, 0 }, { 17250, 21600 } }
+};
+static const mso_CustomShape msoFlowChartPreparation =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartPreparationVert, sizeof( mso_sptFlowChartPreparationVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartPreparationTextRect, sizeof( mso_sptFlowChartPreparationTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 11 line (147 tokens) duplication in the following files: 
+Starting at line 2150 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1880 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I },
+=====================================================================
+Found a 32 line (147 tokens) duplication in the following files: 
+Starting at line 1054 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+Starting at line 1098 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+
+OUString SAL_CALL NestedKeyImpl::getLinkTarget( const OUString& rLinkName ) 
+	throw(InvalidRegistryException, RuntimeException)
+{
+	Guard< Mutex > aGuard( m_pRegistry->m_mutex );
+	if ( !m_localKey.is() && !m_defaultKey.is() )
+	{
+		throw InvalidRegistryException();
+	}
+
+	OUString 	linkName;
+	OUString 	resolvedName;
+	sal_Int32 	lastIndex = rLinkName.lastIndexOf('/');
+	
+	if ( lastIndex > 0 )
+	{
+		linkName = rLinkName.copy(0, lastIndex);
+
+		resolvedName = computeName(linkName);
+
+		if ( resolvedName.getLength() == 0 )
+		{
+			throw InvalidRegistryException();
+		}
+		
+		resolvedName = resolvedName + rLinkName.copy(lastIndex);
+	} else
+	{
+		if ( lastIndex == 0 )
+			resolvedName = m_name + rLinkName;
+		else
+			resolvedName = m_name + OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rLinkName;
+	}
+=====================================================================
+Found a 79 line (147 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+
+/* RES_BOXATR_FORMAT */				0,
+/* RES_BOXATR_FORMULA */			0,
+/* RES_BOXATR_VALUE */				0
+};
+=====================================================================
+Found a 21 line (147 tokens) duplication in the following files: 
+Starting at line 617 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+Starting at line 646 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+
+            pKeyBuffer[0] = 1;
+
+            sal_uInt32     nArgLen = 16;
+            sal_uInt8     *pArgBuffer = new sal_uInt8[ nArgLen ];
+            memset(pArgBuffer, 0, nArgLen);
+            pArgBuffer[0] = 1;
+
+            t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
+            CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
+
+            t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            delete [] pArgBuffer;
+            delete [] pKeyBuffer;
+
+            rtl_cipher_destroy(aCipher);
+        }
+=====================================================================
+Found a 40 line (147 tokens) duplication in the following files: 
+Starting at line 596 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+
+    *result = '\0';
+
+    // if this suffix is being cross checked with a prefix
+    // but it does not support cross products skip it
+
+    if ((optflags & aeXPRODUCT) != 0 &&  (opts & aeXPRODUCT) == 0)
+        return NULL;
+
+    // upon entry suffix is 0 length or already matches the end of the word.
+    // So if the remaining root word has positive length
+    // and if there are enough chars in root word and added back strip chars
+    // to meet the number of characters conditions, then test it
+
+    tmpl = len - appndl;
+
+    if ((tmpl > 0)  &&  (tmpl + stripl >= numconds)) {
+
+	    // generate new root word by removing suffix and adding
+	    // back any characters that would have been stripped or
+	    // or null terminating the shorter string
+
+	    strcpy (tmpword, word);
+	    cp = (unsigned char *)(tmpword + tmpl);
+	    if (stripl) {
+		strcpy ((char *)cp, strip);
+		tmpl += stripl;
+		cp = (unsigned char *)(tmpword + tmpl);
+	    } else *cp = '\0';
+
+            // now make sure all of the conditions on characters
+            // are met.  Please see the appendix at the end of
+            // this file for more info on exactly what is being
+            // tested
+
+            // if all conditions are met then recall suffix_check
+
+	    if (test_condition((char *) cp, (char *) tmpword)) {
+                if (ppfx) {
+                    // handle conditional suffix
+                    if ((contclass) && TESTAFF(contclass, ep->getFlag(), contclasslen)) {
+=====================================================================
+Found a 23 line (147 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/pipetest.cxx
+
+	~OPipeTest();
+
+public: // implementation names
+    static Sequence< OUString > 	getSupportedServiceNames_Static(void) throw();
+	static OUString 				getImplementationName_Static() throw();
+
+public:
+    virtual void SAL_CALL testInvariant(const OUString& TestName, const Reference < XInterface >& TestObject)
+		throw  ( IllegalArgumentException, RuntimeException) ;
+
+    virtual sal_Int32 SAL_CALL test(	const OUString& TestName,
+										const Reference < XInterface >& TestObject,
+										sal_Int32 hTestHandle)
+		throw  (	IllegalArgumentException,
+					RuntimeException);
+
+    virtual sal_Bool SAL_CALL testPassed(void) 								throw  (	RuntimeException) ;
+    virtual Sequence< OUString > SAL_CALL getErrors(void) 				throw  (RuntimeException) ;
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void) 		throw  (RuntimeException);
+	virtual Sequence< OUString > SAL_CALL getWarnings(void) 				throw  (RuntimeException);
+
+private:
+	void testSimple( const Reference < XInterface > & );
+=====================================================================
+Found a 6 line (147 tokens) duplication in the following files: 
+Starting at line 772 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 864 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbd0 - fbdf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbe0 - fbef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbf0 - fbff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd00 - fd0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd10 - fd1f
+=====================================================================
+Found a 6 line (147 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,// 07a0 - 07af
+     6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07f0 - 07ff
+=====================================================================
+Found a 32 line (147 tokens) duplication in the following files: 
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+										   const NMSP_RTL::OUString* pStyle, sal_uInt32 nWriteFlags )
+{
+	if( rPolyPoly.Count() )
+	{
+		SvXMLElementExport	aElemG( mrExport, XML_NAMESPACE_NONE, aXMLElemG, TRUE, TRUE );
+		FastString			aClipId;
+		FastString			aClipStyle;
+
+		aClipId += B2UCONST( "clip" );
+		aClipId += NMSP_RTL::OUString::valueOf( ImplGetNextClipId() );
+
+		{
+			SvXMLElementExport aElemDefs( mrExport, XML_NAMESPACE_NONE, aXMLElemDefs, TRUE, TRUE );
+
+			mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrId, aClipId.GetString() );
+
+			{
+				SvXMLElementExport aElemClipPath( mrExport, XML_NAMESPACE_NONE, aXMLElemClipPath, TRUE, TRUE );
+				ImplWritePolyPolygon( rPolyPoly, sal_False );
+			}
+		}
+
+		// create new context with clippath set
+		aClipStyle += B2UCONST( "clip-path:URL(#" );
+		aClipStyle += aClipId.GetString();
+		aClipStyle += B2UCONST( ")" );
+
+		mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrStyle, aClipStyle.GetString() );
+
+		{
+			GDIMetaFile			aTmpMtf;
+			SvXMLElementExport	aElemG2( mrExport, XML_NAMESPACE_NONE, aXMLElemG, TRUE, TRUE );
+=====================================================================
+Found a 23 line (147 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) UNOEmbeddedObjectCreator::createInstanceLink" );
+
+	uno::Reference< uno::XInterface > xResult;
+
+	uno::Sequence< beans::PropertyValue > aTempMedDescr( aMediaDescr );
+
+	// check if there is URL, URL must exist
+	::rtl::OUString aURL;
+	for ( sal_Int32 nInd = 0; nInd < aTempMedDescr.getLength(); nInd++ )
+		if ( aTempMedDescr[nInd].Name.equalsAscii( "URL" ) )
+			aTempMedDescr[nInd].Value >>= aURL;
+
+	if ( !aURL.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No URL for the link is provided!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+										3 );
+
+	::rtl::OUString aFilterName = m_aConfigHelper.UpdateMediaDescriptorWithFilterName( aTempMedDescr, sal_False );
+
+	if ( aFilterName.getLength() )
+	{
+		// the object can be loaded by one of the office application
+		uno::Reference< embed::XLinkCreator > xOOoLinkCreator(
+=====================================================================
+Found a 22 line (147 tokens) duplication in the following files: 
+Starting at line 1709 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1749 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schema.getLength() && schema.toChar() != '%')
+		varCriteria[nPos].setString(schema);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+
+	varCriteria[nPos].setString(table);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_NAME
+
+
+	OLEVariant  vtEmpty;
+	vtEmpty.setNoArg();
+
+	// Initialize and fill the SafeArray
+	OLEVariant vsa;
+	vsa.setArray(psa,VT_VARIANT);
+
+	ADORecordset *pRecordset = NULL;
+	OpenSchema(adSchemaPrimaryKeys,vsa,vtEmpty,&pRecordset);
+=====================================================================
+Found a 9 line (147 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FResultSet.cxx
+
+void OResultSet::construct()
+{
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FETCHSIZE),			PROPERTY_ID_FETCHSIZE,			0,&m_nFetchSize,		::getCppuType(reinterpret_cast<sal_Int32*>(NULL)));
+    registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_RESULTSETTYPE),        PROPERTY_ID_RESULTSETTYPE,      PropertyAttribute::READONLY,&m_nResultSetType,       ::getCppuType(reinterpret_cast<sal_Int32*>(NULL)));
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FETCHDIRECTION),		PROPERTY_ID_FETCHDIRECTION,		0,&m_nFetchDirection,	::getCppuType(reinterpret_cast<sal_Int32*>(NULL)));
+    registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_RESULTSETCONCURRENCY), PROPERTY_ID_RESULTSETCONCURRENCY,PropertyAttribute::READONLY,&m_nResultSetConcurrency,                ::getCppuType(reinterpret_cast<sal_Int32*>(NULL)));
+}
+// -------------------------------------------------------------------------
+void OResultSet::disposing(void)
+=====================================================================
+Found a 30 line (147 tokens) duplication in the following files: 
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 880 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+sal_uInt32 CunoType::checkInheritedMemberCount(const TypeReader* pReader)
+{
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if ( aSuperReader.isValid() )
+		{
+			count = checkInheritedMemberCount(&aSuperReader);
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+=====================================================================
+Found a 25 line (147 tokens) duplication in the following files: 
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+
+    nVerticalSegmentCount = nPointCount-1;
+
+    //--------------------------------------
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(nPointCount);
+    pOuterSequenceY->realloc(nPointCount);
+	pOuterSequenceZ->realloc(nPointCount);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    for(sal_Int32 nN = nPointCount; nN--;)
+	    *pInnerSequenceZ++ = 0.0;
+
+    if(nPointCount == 4)
+=====================================================================
+Found a 32 line (147 tokens) duplication in the following files: 
+Starting at line 636 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/workben/canvasdemo.cxx
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/outdevgrind.cxx
+
+        printf( "outdevgrind - Profile OutputDevice\n" );
+		return;
+	}
+
+	//-------------------------------------------------
+	// create the global service-manager
+	//-------------------------------------------------
+    uno::Reference< lang::XMultiServiceFactory > xFactory;
+    try
+    {
+        uno::Reference< uno::XComponentContext > xCtx = ::cppu::defaultBootstrap_InitialComponentContext();
+        xFactory = uno::Reference< lang::XMultiServiceFactory >(  xCtx->getServiceManager(), 
+                                                                  uno::UNO_QUERY );
+        if( xFactory.is() )
+            ::comphelper::setProcessServiceFactory( xFactory );
+    }
+    catch( uno::Exception& )
+    {
+    }
+
+    if( !xFactory.is() )
+    {
+        fprintf( stderr, 
+                 "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" );
+        exit( 1 );
+    }
+
+    // Create UCB.
+    uno::Sequence< uno::Any > aArgs( 2 );
+	aArgs[ 0 ] <<= rtl::OUString::createFromAscii( UCB_CONFIGURATION_KEY1_LOCAL );
+	aArgs[ 1 ] <<= rtl::OUString::createFromAscii( UCB_CONFIGURATION_KEY2_OFFICE );
+    ::ucbhelper::ContentBroker::initialize( xFactory, aArgs );
+=====================================================================
+Found a 30 line (147 tokens) duplication in the following files: 
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = pCallStack[1];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(
+=====================================================================
+Found a 44 line (147 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+
+		VtableSlot aVtableSlot(
+				getVtableSlot(
+					reinterpret_cast<
+					typelib_InterfaceAttributeTypeDescription const * >(
+						pMemberDescr)));
+		
+		if (pReturn)
+		{
+			// dependent dispatch
+			cpp_call(
+				pThis, aVtableSlot,
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+				0, 0, // no params
+				pReturn, pArgs, ppException );
+		}
+		else
+		{
+			// is SET
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+
+			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
+			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
+			typelib_typedescriptionreference_new(
+				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+			
+			// dependent dispatch
+			aVtableSlot.index += 1; // get, then set method
+			cpp_call(
+				pThis, aVtableSlot, // get, then set method
+				pReturnTypeRef,
+				1, &aParam,
+				pReturn, pArgs, ppException );
+			
+			typelib_typedescriptionreference_release( pReturnTypeRef );
+		}
+		
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+=====================================================================
+Found a 25 line (147 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxuint.cxx
+
+		case SbxERROR:
+		case SbxUSHORT:
+			p->nUShort = n; break;
+		case SbxLONG:
+			p->nLong = n; break;
+		case SbxULONG:
+			p->nULong = n; break;
+		case SbxSINGLE:
+			p->nSingle = n; break;
+		case SbxDATE:
+		case SbxDOUBLE:
+			p->nDouble = n; break;
+		case SbxSALINT64:
+			p->nInt64 = n; break;
+		case SbxSALUINT64:
+			p->uInt64 = n; break;
+		case SbxULONG64:
+			p->nULong64 = ImpDoubleToUINT64( (double)n ); break;
+		case SbxLONG64:
+			p->nLong64 = ImpDoubleToINT64( (double)n ); break;
+		case SbxCURRENCY:
+			p->nLong64 = ImpDoubleToCurrency( (double)n ); break;
+		case SbxDECIMAL:
+		case SbxBYREF | SbxDECIMAL:
+			ImpCreateDecimal( p )->setUInt( n );
+=====================================================================
+Found a 30 line (147 tokens) duplication in the following files: 
+Starting at line 1975 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/basmgr/basmgr.cxx
+Starting at line 2277 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/basmgr/basmgr.cxx
+
+		:mpMgr( pMgr ) {}
+
+    // Methods XElementAccess
+    virtual Type SAL_CALL getElementType()
+		throw(RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements()
+		throw(RuntimeException);
+
+    // Methods XNameAccess
+    virtual Any SAL_CALL getByName( const OUString& aName )
+		throw(NoSuchElementException, WrappedTargetException, RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getElementNames()
+		throw(RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const OUString& aName )
+		throw(RuntimeException);
+
+    // Methods XNameReplace
+    virtual void SAL_CALL replaceByName( const OUString& aName, const Any& aElement )
+		throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException);
+
+    // Methods XNameContainer
+    virtual void SAL_CALL insertByName( const OUString& aName, const Any& aElement )
+		throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException);
+    virtual void SAL_CALL removeByName( const OUString& Name )
+		throw(NoSuchElementException, WrappedTargetException, RuntimeException);
+};
+
+
+// Methods XElementAccess
+Type LibraryContainer_Impl::getElementType()
+=====================================================================
+Found a 16 line (147 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolygonclipper.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolygonclipper.cxx
+
+								if(bParallelToXAxis)
+								{
+									const double fNewX(aCurrent.getX() - (((aCurrent.getY() - fValueOnOtherAxis) * (aNext.getX() - aCurrent.getX()) / (aNext.getY() - aCurrent.getY()))));
+									aNewPolygon.append(B2DPoint(fNewX, fValueOnOtherAxis));
+								}
+								else
+								{
+									const double fNewY(aCurrent.getY() - (((aCurrent.getX() - fValueOnOtherAxis) * (aNext.getY() - aCurrent.getY()) / (aNext.getX() - aCurrent.getX()))));
+									aNewPolygon.append(B2DPoint(fValueOnOtherAxis, fNewY));
+								}
+
+								// pepare next step
+								bCurrentInside = bNextInside;
+							}
+
+							if(bNextInside && nNextIndex)
+=====================================================================
+Found a 21 line (147 tokens) duplication in the following files: 
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside3.cxx
+
+	DBG_CHKTHIS( DialogWindow, 0 );
+	BOOL bDone = FALSE;
+
+    Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() );
+    Reference < XFilePicker > xFP;
+    if( xMSF.is() )
+    {
+		Sequence <Any> aServiceType(1);
+		aServiceType[0] <<= TemplateDescription::FILESAVE_AUTOEXTENSION_PASSWORD;
+        xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments(
+					::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ), aServiceType ), UNO_QUERY );
+    }
+
+	Reference< XFilePickerControlAccess > xFPControl(xFP, UNO_QUERY);
+	xFPControl->enableControl(ExtendedFilePickerElementIds::CHECKBOX_PASSWORD, sal_False);
+    Any aValue;
+    aValue <<= (sal_Bool) sal_True;
+	xFPControl->setValue(ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION, 0, aValue);
+
+	if ( aCurPath.Len() )
+		xFP->setDisplayDirectory ( aCurPath );
+=====================================================================
+Found a 25 line (146 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salmenu.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salmenu.cxx
+
+        pWItem->mAccelText = rKeyName;
+        pWItem->mInfo.fMask = MIIM_TYPE | MIIM_DATA;
+        pWItem->mInfo.fType = MFT_STRING;
+#ifdef OWNERDRAW
+        if( pWItem->mpMenu && !((Menu*)pWItem->mpMenu)->IsMenuBar() )
+            pWItem->mInfo.fType |= MFT_OWNERDRAW;
+#endif
+        // combine text and accelerator text
+        XubString aStr( pWItem->mText );
+        if( pWItem->mAccelText.Len() )
+        {
+            aStr.AppendAscii("\t");
+            aStr.Append( pWItem->mAccelText );
+        }
+        pWItem->mInfo.dwTypeData = (LPWSTR) aStr.GetBuffer();
+        pWItem->mInfo.cch = aStr.Len();
+
+        if(!::SetMenuItemInfoW( mhMenu, nPos, TRUE, &pWItem->mInfo ))
+            myerr = GetLastError();
+        else
+            ImplDrawMenuBar( this );
+    }
+}
+
+void WinSalMenu::GetSystemMenuData( SystemMenuData* pData )
+=====================================================================
+Found a 5 line (146 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 5 line (146 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_mask.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 6 line (146 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+
+ 0xe0,0x0f,0x00,0x00,0xe0,0x0f,0x00,0x00,0xe0,0x0f,0x00,0x00,0xc0,0x07,0x00,
+ 0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 27 line (146 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/salgdilayout.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/salgdilayout.cxx
+
+void SalGraphics::mirror( long& x, long& nWidth, const OutputDevice *pOutDev, bool bBack ) const
+{
+	long w;
+    if( pOutDev && pOutDev->GetOutDevType() == OUTDEV_VIRDEV )
+        w = pOutDev->GetOutputWidthPixel();
+    else
+        w = GetGraphicsWidth();
+
+	if( w )
+    {
+        if( pOutDev && !pOutDev->IsRTLEnabled() )
+        {
+            OutputDevice *pOutDevRef = (OutputDevice*) pOutDev;
+#ifdef USE_NEW_RTL_IMPLEMENTATION
+            if( pOutDev->meOutDevType == OUTDEV_WINDOW )
+                pOutDevRef = (OutputDevice*) ((Window *) pOutDev)->mpDummy4; // top of non-mirroring hierarchy
+#endif
+
+            // mirror this window back
+            long devX = w-pOutDevRef->GetOutputWidthPixel()-pOutDevRef->GetOutOffXPixel();   // re-mirrored mnOutOffX
+            if( bBack )
+                x = x - devX + pOutDevRef->GetOutOffXPixel();
+            else
+                x = devX + (x - pOutDevRef->GetOutOffXPixel());
+        }
+        else
+		    x = w-nWidth-x;
+=====================================================================
+Found a 26 line (146 tokens) duplication in the following files: 
+Starting at line 9733 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 9897 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+                if( eType == PDFWriter::Paragraph	||
+                    eType == PDFWriter::Heading		||
+                    eType == PDFWriter::H1			||
+                    eType == PDFWriter::H2			||
+                    eType == PDFWriter::H3			||
+                    eType == PDFWriter::H4			||
+                    eType == PDFWriter::H5			||
+                    eType == PDFWriter::H6			||
+                    eType == PDFWriter::List		||
+                    eType == PDFWriter::ListItem	||
+                    eType == PDFWriter::LILabel		||
+                    eType == PDFWriter::LIBody		||
+                    eType == PDFWriter::Table		||
+                    eType == PDFWriter::TableRow	||
+                    eType == PDFWriter::TableHeader	||
+                    eType == PDFWriter::TableData	||
+                    eType == PDFWriter::Span		||
+                    eType == PDFWriter::Quote		||
+                    eType == PDFWriter::Note		||
+                    eType == PDFWriter::Reference	||
+                    eType == PDFWriter::BibEntry	||
+                    eType == PDFWriter::Code		||
+                    eType == PDFWriter::Link )
+                {
+                        bInsert = true;
+                }
+=====================================================================
+Found a 22 line (146 tokens) duplication in the following files: 
+Starting at line 424 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gfxlink.cxx
+Starting at line 458 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gfxlink.cxx
+
+	if( IsSwapped() )
+	{
+		try
+		{
+			::ucbhelper::Content aCnt( maURL.GetMainURL( INetURLObject::NO_DECODE ), 
+								 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+			aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ), 
+								 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+		}
+		catch( const ::com::sun::star::ucb::ContentCreationException& )
+		{
+		}
+		catch( const ::com::sun::star::uno::RuntimeException& )
+		{
+		}
+		catch( const ::com::sun::star::ucb::CommandAbortedException& )
+		{
+		}
+        catch( const ::com::sun::star::uno::Exception& )
+		{
+		}
+=====================================================================
+Found a 39 line (146 tokens) duplication in the following files: 
+Starting at line 2246 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 944 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            if ( eType == FOLDER )
+			{
+				// Process instanciated children...
+
+                ContentRefList aChildren;
+				queryChildren( aChildren );
+
+                ContentRefList::const_iterator it  = aChildren.begin();
+                ContentRefList::const_iterator end = aChildren.end();
+
+				while ( it != end )
+				{
+                    ContentRef xChild = (*it);
+
+					// Create new content identifier for the child...
+                    uno::Reference< ucb::XContentIdentifier > xOldChildId
+													= xChild->getIdentifier();
+                    rtl::OUString aOldChildURL
+                        = xOldChildId->getContentIdentifier();
+                    rtl::OUString aNewChildURL
+						= aOldChildURL.replaceAt(
+										0,
+										aOldURL.getLength(),
+										xNewId->getContentIdentifier() );
+                    uno::Reference< ucb::XContentIdentifier > xNewChildId
+						= new ::ucbhelper::ContentIdentifier( 
+                            m_xSMgr, aNewChildURL );
+
+					if ( !xChild->exchangeIdentity( xNewChildId ) )
+						return sal_False;
+
+					++it;
+				}
+			}
+			return sal_True;
+		}
+	}
+
+    OSL_ENSURE( sal_False,
+=====================================================================
+Found a 33 line (146 tokens) duplication in the following files: 
+Starting at line 1782 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1949 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+	if ( rInfo.SourceURL.getLength() <= aId.getLength() )
+	{
+		if ( aId.compareTo(
+				rInfo.SourceURL, rInfo.SourceURL.getLength() ) == 0 )
+        {
+            uno::Any aProps
+                = uno::makeAny(beans::PropertyValue(
+                                      rtl::OUString(
+                                          RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                      -1,
+                                      uno::makeAny(rInfo.SourceURL),
+                                      beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_RECURSIVE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                xEnv,
+                rtl::OUString::createFromAscii(
+                    "Target is equal to or is a child of source!" ),
+                this );
+            // Unreachable
+        }
+	}
+
+    //////////////////////////////////////////////////////////////////////
+    // 0) Obtain content object for source.
+    //////////////////////////////////////////////////////////////////////
+
+    uno::Reference< ucb::XContentIdentifier > xId
+        = new ::ucbhelper::ContentIdentifier( m_xSMgr, rInfo.SourceURL );
+
+    // Note: The static cast is okay here, because its sure that
+    //       m_xProvider is always the PackageContentProvider.
+    rtl::Reference< Content > xSource;
+=====================================================================
+Found a 9 line (146 tokens) duplication in the following files: 
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+=====================================================================
+Found a 25 line (146 tokens) duplication in the following files: 
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/itrcrsr.cxx
+Starting at line 951 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/itrcrsr.cxx
+
+                     ( !bEmptyFld && pPor->InFldGrp() ) ) )
+			{
+				if ( pPor->InSpaceGrp() && nSpaceAdd )
+					nX += pPor->PrtWidth() +
+						  pPor->CalcSpacing( nSpaceAdd, aInf );
+				else
+				{
+                    if( pPor->InFixMargGrp() && ! pPor->IsMarginPortion() )
+					{
+                        if ( pCurr->IsSpaceAdd() )
+                        {
+                            if ( ++nSpaceIdx < pCurr->GetLLSpaceAddCount() )
+                                nSpaceAdd = pCurr->GetLLSpaceAdd( nSpaceIdx );
+                            else
+                                nSpaceAdd = 0;
+                        }
+
+                        if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->Count() )
+                            ++nKanaIdx;
+					}
+					if ( !pPor->IsFlyPortion() || ( pPor->GetPortion() &&
+							!pPor->GetPortion()->IsMarginPortion() ) )
+						nX += pPor->PrtWidth();
+				}
+                if( pPor->IsMultiPortion() &&
+=====================================================================
+Found a 24 line (146 tokens) duplication in the following files: 
+Starting at line 2183 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 2581 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+						if( !bForceNew && pItem->GetLineStartValue() == pLineEndItem->GetLineEndValue() )
+						{
+							aUniqueName = pItem->GetName();
+							bFoundExisting = sal_True;
+							break;
+						}
+
+						if( pItem->GetName().CompareTo( aUser, aUser.Len() ) == 0 )
+						{
+							sal_Int32 nThisIndex = pItem->GetName().Copy( aUser.Len() ).ToInt32();
+							if( nThisIndex >= nUserIndex )
+								nUserIndex = nThisIndex + 1;
+						}
+					}
+				}
+
+				nCount = pPool1->GetItemCount( XATTR_LINEEND );
+				for( nSurrogate2 = 0; nSurrogate2 < nCount; nSurrogate2++ )
+				{
+					const XLineEndItem* pItem = (const XLineEndItem*)pPool1->GetItem( XATTR_LINEEND, nSurrogate2 );
+
+					if( pItem && pItem->GetName().Len() )
+					{
+						if( !bForceNew && pItem->GetLineEndValue() == pLineEndItem->GetLineEndValue() )
+=====================================================================
+Found a 13 line (146 tokens) duplication in the following files: 
+Starting at line 839 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+Starting at line 851 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+FrPair GetMapFactor(FieldUnit eS, MapUnit eD)
+{
+	FrPair aS(GetInchOrMM(eS));
+	FrPair aD(GetInchOrMM(eD));
+	FASTBOOL bSInch=IsInch(eS);
+	FASTBOOL bDInch=IsInch(eD);
+	FrPair aRet(aD.X()/aS.X(),aD.Y()/aS.Y());
+	if (bSInch && !bDInch) { aRet.X()*=Fraction(127,5); aRet.Y()*=Fraction(127,5); }
+	if (!bSInch && bDInch) { aRet.X()*=Fraction(5,127); aRet.Y()*=Fraction(5,127); }
+	return aRet;
+};
+
+FrPair GetMapFactor(FieldUnit eS, FieldUnit eD)
+=====================================================================
+Found a 26 line (146 tokens) duplication in the following files: 
+Starting at line 718 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/items/numfmtsh.cxx
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/items/numfmtsh.cxx
+
+	NfIndexTableOffset eOffsetEnd=NF_CURRENCY_END;;
+	long nIndex;
+
+	for(nIndex=eOffsetStart;nIndex<=eOffsetEnd;nIndex++)
+	{
+		nNFEntry=pFormatter->GetFormatIndex((NfIndexTableOffset)nIndex,eCurLanguage);
+
+		pNumEntry	= pFormatter->GetEntry(nNFEntry);
+
+		if(pNumEntry==NULL) continue;
+
+		nMyCat=pNumEntry->GetType() & ~NUMBERFORMAT_DEFINED;
+		aStrComment=pNumEntry->GetComment();
+		CategoryToPos_Impl(nMyCat,nMyType);
+		aNewFormNInfo=	pNumEntry->GetFormatstring();
+
+		const StringPtr pStr = new String(aNewFormNInfo);
+
+		if ( nNFEntry == nCurFormatKey )
+		{
+			nSelPos = ( !IsRemoved_Impl( nNFEntry ) ) ? aCurEntryList.Count() : SELPOS_NONE;
+		}
+
+		rList.Insert( pStr,rList.Count());
+		aCurEntryList.Insert( nNFEntry, aCurEntryList.Count() );
+	}
+=====================================================================
+Found a 26 line (146 tokens) duplication in the following files: 
+Starting at line 525 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpcolor.cxx
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tplneend.cxx
+
+            if ( aName == pLineEndList->GetLineEnd( i )->GetName() )
+				bDifferent = FALSE;
+
+		// Wenn ja, wird wiederholt ein neuer Name angefordert
+		if ( !bDifferent )
+		{
+			WarningBox aWarningBox( DLGWIN, WinBits( WB_OK ),
+				String( ResId( RID_SVXSTR_WARN_NAME_DUPLICATE, rMgr ) ) );
+			aWarningBox.SetHelpId( HID_WARN_NAME_DUPLICATE );
+			aWarningBox.Execute();
+
+			//CHINA001 SvxNameDialog* pDlg = new SvxNameDialog( DLGWIN, aName, aDesc );
+			SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+			DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
+			AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( DLGWIN, aName, aDesc, RID_SVXDLG_NAME );
+			DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
+			BOOL bLoop = TRUE;
+
+			while( !bDifferent && bLoop && pDlg->Execute() == RET_OK )
+			{
+				pDlg->GetName( aName );
+				bDifferent = TRUE;
+
+				for( long i = 0; i < nCount && bDifferent; i++ )
+				{
+                    if( aName == pLineEndList->GetLineEnd( i )->GetName() )
+=====================================================================
+Found a 20 line (146 tokens) duplication in the following files: 
+Starting at line 4504 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4095 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0x4000, 0x0002, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] = 
+{
+	{ { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } }
+};
+static const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] =
+{
+	{ 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoFlowChartMultidocument =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartMultidocumentVert, sizeof( mso_sptFlowChartMultidocumentVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartMultidocumentSegm, sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartMultidocumentTextRect, sizeof( mso_sptFlowChartMultidocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartMultidocumentGluePoints, sizeof( mso_sptFlowChartMultidocumentGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 17 line (146 tokens) duplication in the following files: 
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape2d.cxx
+Starting at line 3089 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/escherex.cxx
+
+										const beans::PropertyValue& rPropVal = rPropSeq[ j ];
+
+										const rtl::OUString	sPosition			( RTL_CONSTASCII_USTRINGPARAM( "Position" ) );
+										const rtl::OUString	sMirroredX			( RTL_CONSTASCII_USTRINGPARAM( "MirroredX" ) );
+										const rtl::OUString	sMirroredY			( RTL_CONSTASCII_USTRINGPARAM( "MirroredY" ) );
+										const rtl::OUString	sSwitched			( RTL_CONSTASCII_USTRINGPARAM( "Switched" ) );
+										const rtl::OUString	sPolar				( RTL_CONSTASCII_USTRINGPARAM( "Polar" ) );
+	//									const rtl::OUString	sMap				( RTL_CONSTASCII_USTRINGPARAM( "Map" ) );
+										const rtl::OUString	sRadiusRangeMinimum	( RTL_CONSTASCII_USTRINGPARAM( "RadiusRangeMinimum" ) );
+										const rtl::OUString	sRadiusRangeMaximum	( RTL_CONSTASCII_USTRINGPARAM( "RadiusRangeMaximum" ) );
+										const rtl::OUString	sRangeXMinimum		( RTL_CONSTASCII_USTRINGPARAM( "RangeXMinimum" ) );
+										const rtl::OUString	sRangeXMaximum		( RTL_CONSTASCII_USTRINGPARAM( "RangeXMaximum" ) );
+										const rtl::OUString	sRangeYMinimum		( RTL_CONSTASCII_USTRINGPARAM( "RangeYMinimum" ) );
+										const rtl::OUString	sRangeYMaximum		( RTL_CONSTASCII_USTRINGPARAM( "RangeYMaximum" ) );
+
+										if ( rPropVal.Name.equals( sPosition ) )
+										{
+=====================================================================
+Found a 21 line (146 tokens) duplication in the following files: 
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+Starting at line 1541 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+				sStreamPath );
+
+	if ( ::utl::UCBContentHelper::IsFolder( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
+		throw io::IOException();
+
+	if ( ( nOpenMode & embed::ElementModes::NOCREATE )
+	  && !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
+		throw io::IOException(); // TODO:
+
+	uno::Reference< ucb::XCommandEnvironment > xDummyEnv; // TODO: provide InteractionHandler if any
+	uno::Reference< io::XStream > xResult;
+	try
+	{
+		if ( nOpenMode & embed::ElementModes::WRITE )
+		{
+			if ( isLocalFile_Impl( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
+			{
+				uno::Reference< ucb::XSimpleFileAccess > xSimpleFileAccess(
+					m_pImpl->m_xFactory->createInstance( 
+						::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ucb.SimpleFileAccess" ) ) ),
+					uno::UNO_QUERY_THROW );
+=====================================================================
+Found a 29 line (146 tokens) duplication in the following files: 
+Starting at line 1685 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/ruler.cxx
+Starting at line 1877 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/ruler.cxx
+
+        aRect.Bottom()  = nHitBottom;
+
+        for ( i = mpData->nTabs; i; i-- )
+        {
+            nStyle = mpData->pTabs[i-1].nStyle;
+            if ( !(nStyle & RULER_STYLE_INVISIBLE) )
+            {
+                nStyle &= RULER_TAB_STYLE;
+
+                // Default-Tabs werden nur angezeigt
+                if ( nStyle != RULER_TAB_DEFAULT )
+                {
+                    n1 = mpData->pTabs[i-1].nPos;
+
+                    if ( nStyle == RULER_TAB_LEFT )
+                    {
+                        aRect.Left()    = n1;
+                        aRect.Right()   = n1+RULER_TAB_WIDTH-1;
+                    }
+                    else if ( nStyle == RULER_TAB_RIGHT )
+                    {
+                        aRect.Right()   = n1;
+                        aRect.Left()    = n1-RULER_TAB_WIDTH-1;
+                    }
+                    else
+                    {
+                        aRect.Left()    = n1-RULER_TAB_CWIDTH2+1;
+                        aRect.Right()   = n1-RULER_TAB_CWIDTH2+RULER_TAB_CWIDTH;
+                    }
+=====================================================================
+Found a 16 line (146 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+
+			  &::getBooleanCppuType(),
+			  beans::PropertyAttribute::MAYBEVOID, 0},
+		{ "BaseURI", sizeof("BaseURI")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamRelPath", sizeof("StreamRelPath")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamName", sizeof("StreamName")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ NULL, 0, 0, NULL, 0, 0 }
+	};
+	uno::Reference< beans::XPropertySet > xInfoSet(
+				comphelper::GenericPropertySet_CreateInstance(
+							new comphelper::PropertySetInfo( aInfoMap ) ) );
+=====================================================================
+Found a 21 line (146 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/childwin.cxx
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/childwin.cxx
+
+		SfxChildWinFactArr_Impl &rFactories = pApp->GetChildWinFactories_Impl();
+		for ( sal_uInt16 nFactory = 0; nFactory < rFactories.Count(); ++nFactory )
+		{
+			pFact = rFactories[nFactory];
+			if ( pFact->nId == GetType() )
+			{
+				DBG_ASSERT( pFact->pArr, "Kein Kontext angemeldet!" );
+				if ( !pFact->pArr )
+					break;
+
+				SfxChildWinContextFactory *pConFact=0;
+				for ( sal_uInt16 n=0; n<pFact->pArr->Count(); ++n )
+				{
+					pConFact = (*pFact->pArr)[n];
+					rBindings.ENTERREGISTRATIONS();
+					if ( pConFact->nContextId == nContextId )
+					{
+						SfxChildWinInfo aInfo = pFact->aInfo;
+						pCon = pConFact->pCtor( GetWindow(), &rBindings, &aInfo );
+						pCon->nContextId = pConFact->nContextId;
+						pImp->pContextModule = NULL;
+=====================================================================
+Found a 31 line (146 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/dbdocfun.cxx
+Starting at line 1621 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+		bRecord = FALSE;
+
+	ScQueryParam aQueryParam;
+	pDBData->GetQueryParam( aQueryParam );
+	BOOL bQuery = aQueryParam.GetEntry(0).bDoQuery;
+
+	ScSortParam aSortParam;
+	pDBData->GetSortParam( aSortParam );
+	BOOL bSort = aSortParam.bDoSort[0];
+
+	ScSubTotalParam aSubTotalParam;
+	pDBData->GetSubTotalParam( aSubTotalParam );
+	BOOL bSubTotal = aSubTotalParam.bGroupActive[0] && !aSubTotalParam.bRemoveOnly;
+
+	if ( bQuery || bSort || bSubTotal )
+	{
+		BOOL bQuerySize = FALSE;
+		ScRange aOldQuery;
+		ScRange aNewQuery;
+		if (bQuery && !aQueryParam.bInplace)
+		{
+			ScDBData* pDest = pDoc->GetDBAtCursor( aQueryParam.nDestCol, aQueryParam.nDestRow,
+													aQueryParam.nDestTab, TRUE );
+			if (pDest && pDest->IsDoSize())
+			{
+				pDest->GetArea( aOldQuery );
+				bQuerySize = TRUE;
+			}
+		}
+
+		SCTAB nDummy;
+=====================================================================
+Found a 49 line (146 tokens) duplication in the following files: 
+Starting at line 3267 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3619 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+			if (!pMatX->IsValue(i))
+			{
+				SetIllegalArgument();
+				return;
+			}
+		if (nCX == nCY && nRX == nRY)
+			nCase = 1;					// einfache Regression
+		else if (nCY != 1 && nRY != 1)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else if (nCY == 1)
+		{
+			if (nRX != nRY)
+			{
+				SetIllegalParameter();
+				return;
+			}
+			else
+			{
+				nCase = 2;				// zeilenweise
+				N = nRY;
+				M = nCX;
+			}
+		}
+		else if (nCX != nCY)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		else
+		{
+			nCase = 3;					// spaltenweise
+			N = nCY;
+			M = nRX;
+		}
+	}
+	else
+	{
+		pMatX = GetNewMat(nCY, nRY);
+		nCX = nCY;
+		nRX = nRY;
+		if (!pMatX)
+		{
+			PushError();
+			return;
+		}
+		for (SCSIZE i = 1; i <= nCountY; i++)
+=====================================================================
+Found a 24 line (146 tokens) duplication in the following files: 
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/sockethelper.cxx
+
+::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr )
+{
+
+	rtl::OString aString = ::rtl::OUStringToOString( aUStr,	RTL_TEXTENCODING_ASCII_US );
+	const sal_Char *pChar =	aString.getStr(	) ;
+	sal_Char tmpBuffer[4];
+	sal_Int32 nCharCounter = 0;
+	::rtl::ByteSequence bsByteSequence( IP_VER );
+	sal_Int32 nByteSeqCounter = 0;
+
+	for ( int i = 0; i < aString.getLength(	) + 1 ;	i++ )
+	{
+		if ( ( *pChar != '.' ) && ( i !=aString.getLength( ) ) )
+			tmpBuffer[nCharCounter++] = *pChar;
+		else 
+		{
+			tmpBuffer[nCharCounter]	= '\0';
+			nCharCounter = 0;
+			bsByteSequence[nByteSeqCounter++] = atoi( tmpBuffer );
+		}
+		pChar++;
+	}
+	return bsByteSequence;
+}
+=====================================================================
+Found a 10 line (146 tokens) duplication in the following files: 
+Starting at line 1844 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 1920 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XStream >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL )
+									,	::getCppuType( ( const uno::Reference< lang::XComponent >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+=====================================================================
+Found a 78 line (146 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+
+/* RES_BOXATR_FORMAT */				0,
+/* RES_BOXATR_FORMULA */			0,
+/* RES_BOXATR_VALUE */				0
+=====================================================================
+Found a 6 line (146 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_mask.h
+
+ 0x00,0xfc,0x01,0x00,0x00,0xf8,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 78 line (146 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+
+/* RES_BOXATR_FORMAT */				0,
+/* RES_BOXATR_FORMULA */			0,
+/* RES_BOXATR_VALUE */				0
+=====================================================================
+Found a 8 line (146 tokens) duplication in the following files: 
+Starting at line 580 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 838 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+       27,   22,   21,  993,    3,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
+      993,  993,  993,  993,  993,  993,  993,  993
+=====================================================================
+Found a 9 line (146 tokens) duplication in the following files: 
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/descriptor.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/renderer.cxx
+
+	uno::Sequence< uno::Type >	aTypes( 7 );
+	uno::Type* 					pTypes = aTypes.getArray();
+
+	*pTypes++ = ::getCppuType((const uno::Reference< uno::XAggregation>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< lang::XServiceInfo>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< lang::XTypeProvider>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< beans::XPropertySet>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< beans::XPropertyState>*)0);
+	*pTypes++ = ::getCppuType((const uno::Reference< beans::XMultiPropertySet>*)0);
+=====================================================================
+Found a 22 line (146 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+Starting at line 705 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3dtex.cxx
+
+		case (B3D_TXT_MODE_REP|B3D_TXT_KIND_LUM) :
+		{
+			fS = fS - floor(fS);
+			fT = fT - floor(fT);
+			long nX2, nY2;
+
+			if(fS > 0.5) {
+				nX2 = (nX + 1) % GetBitmapSize().Width();
+				fS = 1.0 - fS;
+			} else
+				nX2 = nX ? nX - 1 : GetBitmapSize().Width() - 1;
+
+			if(fT > 0.5) {
+				nY2 = (nY + 1) % GetBitmapSize().Height();
+				fT = 1.0 - fT;
+			} else
+				nY2 = nY ? nY - 1 : GetBitmapSize().Height() - 1;
+
+			fS += 0.5;
+			fT += 0.5;
+			double fRight = 1.0 - fS;
+			double fBottom = 1.0 - fT;
+=====================================================================
+Found a 28 line (146 tokens) duplication in the following files: 
+Starting at line 1433 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+Starting at line 1535 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+
+void Base3DDefault::DrawLinePhong(sal_Int32 nYPos, B3dMaterial& rMat)
+{
+	// Ausserhalb des Clipping-Bereichs?
+	if(IsScissorRegionActive()
+		&& (nYPos < aDefaultScissorRectangle.Top()
+		|| nYPos > aDefaultScissorRectangle.Bottom()))
+		return;
+
+	// Von links bis rechts zeichnen
+	sal_Int32 nXLineStart = aIntXPosLeft.GetLongValue();
+	sal_Int32 nXLineDelta = aIntXPosRight.GetLongValue() - nXLineStart;
+
+	if(nXLineDelta > 0)
+	{
+		// Ausserhalb des Clipping-Bereichs?
+		if(IsScissorRegionActive()
+			&& ( nXLineStart+nXLineDelta < aDefaultScissorRectangle.Left()
+			|| nXLineStart > aDefaultScissorRectangle.Right()))
+			return;
+
+		basegfx::B3DVector aVectorLeft;
+		aIntVectorLeft.GetVector3DValue(aVectorLeft);
+		basegfx::B3DVector aVectorRight;
+		aIntVectorRight.GetVector3DValue(aVectorRight);
+		aIntVectorLine.Load(aVectorLeft, aVectorRight, nXLineDelta);
+		aIntDepthLine.Load(aIntDepthLeft.GetDoubleValue(), aIntDepthRight.GetDoubleValue(), nXLineDelta);
+
+		if(GetTransformationSet())
+=====================================================================
+Found a 20 line (146 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+	if (sString.indexOf(s2equal) == 2)
+		nLength = 1;
+	else if (sString.indexOf(s1equal) == 3)
+		nLength = 2;
+	else
+		nLength = 3;
+
+	sal_Int32 nBinaer ((aBase64DecodeTable [sString [0]] << 18) +
+			(aBase64DecodeTable [sString [1]] << 12) +
+			(aBase64DecodeTable [sString [2]] <<  6) +
+			(aBase64DecodeTable [sString [3]]));
+
+	sal_uInt8 OneByte = static_cast< sal_uInt8 >((nBinaer & 0xFF0000) >> 16);
+	pBuffer[nStart + 0] = (sal_uInt8)OneByte;
+
+	if (nLength == 1)
+		return;
+
+	OneByte = static_cast< sal_uInt8 >((nBinaer & 0xFF00) >> 8);
+	pBuffer[nStart + 1] = OneByte;
+=====================================================================
+Found a 35 line (146 tokens) duplication in the following files: 
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testpropshlp.cxx
+Starting at line 621 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testpropshlp.cxx
+
+					OSL_ENSURE( evt.PropertyName == OUString( RTL_CONSTASCII_USTRINGPARAM("INT16") ), "PropertySetHelper: wrong name" );
+
+					sal_Int16 nInt16, nOldInt16;
+					pExceptedListenerValues[nCurrent] 	>>= nInt16;
+					evt.OldValue 						>>= nOldInt16;
+					OSL_ENSURE( nInt16 == nOldInt16 , "PropertySetHelper: wrong old value" );
+								
+
+					pExceptedListenerValues[nCurrent+1]	>>= nInt16;
+					evt.NewValue 						>>= nOldInt16;
+					OSL_ENSURE( nInt16 == nOldInt16 , "PropertySetHelper: wrong new value" );
+					}
+				break;
+
+				case PROPERTY_INT32:
+					{
+					OSL_ENSURE( evt.PropertyName == OUString( RTL_CONSTASCII_USTRINGPARAM("INT32") ), "PropertySetHelper: wrong name" );
+
+					
+					sal_Int32 nInt32,nOldInt32; 
+					pExceptedListenerValues[nCurrent] >>= nInt32;
+					evt.OldValue >>= nOldInt32;
+					OSL_ENSURE( nInt32 == nOldInt32 , "PropertySetHelper: wrong old value" );
+					
+					pExceptedListenerValues[nCurrent+1] >>= nInt32;
+					evt.NewValue >>= nOldInt32;
+					OSL_ENSURE( nInt32 == nOldInt32 ,	"PropertySetHelper: wrong new value" );
+					}
+				break;
+
+				default:
+					OSL_ENSURE( sal_False, "XPropeSetHelper: invalid property handle" );
+			}
+			nCurrent += 2;
+		}
+=====================================================================
+Found a 16 line (146 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+Starting at line 1133 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+		aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR);
+		aRow[3] = new ORowSetValueDecorator((sal_Int32)65535);
+=====================================================================
+Found a 19 line (146 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BFunctions.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OFunctions.cxx
+
+		return sal_False;
+#endif
+
+	return bLoaded = LoadFunctions(pODBCso);
+}
+// -------------------------------------------------------------------------
+
+sal_Bool LoadFunctions(oslModule pODBCso)
+{
+
+	if( ( pODBC3SQLAllocHandle	=	(T3SQLAllocHandle)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLAllocHandle").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLConnect		=	(T3SQLConnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLConnect").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLDriverConnect =	(T3SQLDriverConnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDriverConnect").pData )) == NULL )
+		return sal_False;
+	if( ( pODBC3SQLBrowseConnect =   (T3SQLBrowseConnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBrowseConnect").pData )) == NULL )
+		return sal_False;
+	if(( pODBC3SQLDataSources	=   (T3SQLDataSources)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDataSources").pData )) == NULL )
+=====================================================================
+Found a 10 line (146 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/IndexedPropertyValuesContainer.cxx
+Starting at line 1200 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+    // XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements(  ) throw(::com::sun::star::uno::RuntimeException);
+
+	// XServiceInfo
+    virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 24 line (146 tokens) duplication in the following files: 
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+=====================================================================
+Found a 22 line (146 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
+		{
+=====================================================================
+Found a 26 line (146 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 659 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+}
+
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 functionCount, sal_Int32 vtableOffset)
+=====================================================================
+Found a 37 line (146 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolypolygon.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b3dpolypolygon.cxx
+
+				maPolygons.insert(aIndex, rPolyPolygon.getB3DPolygon(a));
+				aIndex++;
+			}
+		}
+	}
+
+	void remove(sal_uInt32 nIndex, sal_uInt32 nCount)
+	{
+		if(nCount)
+		{
+			// remove polygon data
+			PolygonVector::iterator aStart(maPolygons.begin());
+			aStart += nIndex;
+			const PolygonVector::iterator aEnd(aStart + nCount);
+
+			maPolygons.erase(aStart, aEnd);
+		}
+	}
+
+	sal_uInt32 count() const
+	{
+		return maPolygons.size();
+	}
+
+	void setClosed(bool bNew)
+	{
+		for(sal_uInt32 a(0L); a < maPolygons.size(); a++)
+		{
+			maPolygons[a].setClosed(bNew);
+		}
+	}
+
+	void flip()
+	{
+        std::for_each( maPolygons.begin(),
+                       maPolygons.end(),
+                       std::mem_fun_ref( &::basegfx::B3DPolygon::flip ));
+=====================================================================
+Found a 22 line (146 tokens) duplication in the following files: 
+Starting at line 1471 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedobj.cxx
+Starting at line 1933 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedobj.cxx
+
+{
+	Rectangle aROuter = aOutRect;
+	aROuter.Left()	 -= nTol;
+	aROuter.Right()  += nTol;
+	aROuter.Top()	 -= nTol;
+	aROuter.Bottom() += nTol;
+
+	Rectangle aRInner = aOutRect;
+	if( (aRInner.GetSize().Height() > (long)nTol*2) &&
+		(aRInner.GetSize().Width()	> (long)nTol*2)    )
+	{
+		aRInner.Left()	 += nTol;
+		aRInner.Right()  -= nTol;
+		aRInner.Top()	 += nTol;
+		aRInner.Bottom() -= nTol;
+	}
+
+	if( aROuter.IsInside( rPnt ) && !aRInner.IsInside( rPnt ) )
+		return (SdrObject*)this;
+	else
+		return 0;
+}
+=====================================================================
+Found a 21 line (145 tokens) duplication in the following files: 
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr++;
+=====================================================================
+Found a 21 line (145 tokens) duplication in the following files: 
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/encrypter.cxx
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/verifier.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::registry ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+
+int SAL_CALL main( int argc, char **argv )
+{
+	const char* 		n_pCertStore ;
+	HCERTSTORE			n_hStoreHandle ;
+
+	xmlDocPtr			doc = NULL ;
+	xmlNodePtr			tplNode ;
+	xmlNodePtr			tarNode ;
+=====================================================================
+Found a 26 line (145 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+
+	Reference< XUnoTunnel > xSecTunnel( xSecEnv , UNO_QUERY ) ;
+	if( !xSecTunnel.is() ) {
+		 throw RuntimeException() ;
+	}
+
+	SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xSecTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
+	if( pSecEnv == NULL )
+		throw RuntimeException() ;
+
+	//Get the encryption template
+	Reference< XXMLElementWrapper > xTemplate = aTemplate->getTemplate() ;
+	if( !xTemplate.is() ) {
+		throw RuntimeException() ;
+	}
+
+	Reference< XUnoTunnel > xTplTunnel( xTemplate , UNO_QUERY ) ;
+	if( !xTplTunnel.is() ) {
+		throw RuntimeException() ;
+	}
+
+	XMLElementWrapper_XmlSecImpl* pTemplate = ( XMLElementWrapper_XmlSecImpl* )xTplTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
+	if( pTemplate == NULL ) {
+		throw RuntimeException() ;
+	}
+
+	pEncryptedData = pTemplate->getNativeElement() ;
+=====================================================================
+Found a 21 line (145 tokens) duplication in the following files: 
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+Starting at line 1281 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+
+						try
+						{
+							::ucbhelper::Content aCnt( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ),
+												 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+							aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ),
+												 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+						}
+						catch( const ::com::sun::star::ucb::ContentCreationException& )
+						{
+						}
+						catch( const ::com::sun::star::uno::RuntimeException& )
+						{
+						}
+						catch( const ::com::sun::star::ucb::CommandAbortedException& )
+						{
+						}
+        		        catch( const ::com::sun::star::uno::Exception& )
+		                {
+		                }
+					}
+=====================================================================
+Found a 32 line (145 tokens) duplication in the following files: 
+Starting at line 587 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontentcaps.cxx
+Starting at line 632 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontentcaps.cxx
+
+        static com::sun::star::ucb::CommandInfo aFolderCommandInfoTable[] =
+		{
+			///////////////////////////////////////////////////////////////
+			// Required commands
+			///////////////////////////////////////////////////////////////
+
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+				-1,
+				getCppuVoidType()
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+				-1,
+                getCppuType( static_cast<
+                                uno::Sequence< beans::Property > * >( 0 ) )
+			),
+            com::sun::star::ucb::CommandInfo(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+				-1,
+                getCppuType( static_cast<
+                                uno::Sequence< beans::PropertyValue > * >( 0 ) )
+			),
+=====================================================================
+Found a 42 line (145 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/cfgmerge.cxx
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/xrmmerge.cxx
+
+				sInputFileName.GetBuffer());
+        }
+        else {
+			// this is a valid file which can be opened, so
+			// create path to project root
+			DirEntry aEntry( String( sInputFileName, RTL_TEXTENCODING_ASCII_US ));
+			aEntry.ToAbs();
+			ByteString sFullEntry( aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US );
+			aEntry += DirEntry( String( "..", RTL_TEXTENCODING_ASCII_US ));
+			aEntry += DirEntry( sPrjRoot );
+			ByteString sPrjEntry( aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US );
+
+			// create file name, beginnig with project root
+			// (e.g.: source\ui\src\menue.src)
+			sActFileName = sFullEntry.Copy( sPrjEntry.Len() + 1 );
+
+			if( !bQuiet ) 
+                fprintf( stdout, "\nProcessing File %s ...\n", sInputFileName.GetBuffer());
+
+			sActFileName.SearchAndReplaceAll( "/", "\\" );
+
+			return pFile;
+		}
+	}
+	// this means the file could not be opened
+	return NULL;
+}
+
+/*****************************************************************************/
+int WorkOnTokenSet( int nTyp, char *pTokenText )
+/*****************************************************************************/
+{
+//	printf("Typ = %d , text = '%s'\n",nTyp , pTokenText );
+    pParser->Execute( nTyp, pTokenText );
+
+	return 1;
+}
+
+/*****************************************************************************/
+int SetError()
+/*****************************************************************************/
+{
+=====================================================================
+Found a 22 line (145 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/cfgmerge.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/xrmmerge.cxx
+
+extern FILE *GetXrmFile()
+/*****************************************************************************/
+{
+    FILE *pFile = 0;
+    // look for valid filename
+	if ( sInputFileName.Len()) {
+        if( Export::fileHasUTF8ByteOrderMarker( sInputFileName ) ){
+            DirEntry aTempFile = Export::GetTempFile();
+            DirEntry aSourceFile( String( sInputFileName , RTL_TEXTENCODING_ASCII_US ) );
+            aSourceFile.CopyTo( aTempFile , FSYS_ACTION_COPYFILE );
+            String sTempFile = aTempFile.GetFull();
+            Export::RemoveUTF8ByteOrderMarkerFromFile( ByteString( sTempFile , RTL_TEXTENCODING_ASCII_US ) );
+            pFile = fopen( ByteString( sTempFile , RTL_TEXTENCODING_ASCII_US ).GetBuffer(), "r" );
+            sUsedTempFile = sTempFile;
+        }else{
+		    // able to open file?
+		    pFile = fopen( sInputFileName.GetBuffer(), "r" );
+            sUsedTempFile = String::CreateFromAscii("");
+        }
+		if ( !pFile ){
+			fprintf( stderr, "Error: Could not open file %s\n",
+				sInputFileName.GetBuffer());
+=====================================================================
+Found a 16 line (145 tokens) duplication in the following files: 
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+			 true,  true, false, false, false, false, false, false, //89:;<=>?
+			false,  true,  true,  true,  true,  true,  true,  true, //@ABCDEFG
+			 true,  true,  true,  true,  true,  true,  true,  true, //HIJKLMNO
+			 true,  true,  true,  true,  true,  true,  true,  true, //PQRSTUVW
+			 true,  true,  true, false, false, false,  true,  true, //XYZ[\]^_
+			 true,  true,  true,  true,  true,  true,  true,  true, //`abcdefg
+			 true,  true,  true,  true,  true,  true,  true,  true, //hijklmno
+			 true,  true,  true,  true,  true,  true,  true,  true, //pqrstuvw
+			 true,  true,  true,  true,  true,  true,  true, false  //xyz{|}~
+		  };
+	return isUSASCII(nChar) && aMap[nChar];
+}
+
+//============================================================================
+// static
+bool INetMIME::isEncodedWordTokenChar(sal_uInt32 nChar)
+=====================================================================
+Found a 37 line (145 tokens) duplication in the following files: 
+Starting at line 802 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+Starting at line 1414 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/prj.cxx
+
+						if ( aWhatOS == "all" )
+							nOSType = ( OS_WIN16 | OS_WIN32 | OS_OS2 | OS_UNX | OS_MAC );
+						else if ( aWhatOS == "w" )
+							nOSType = ( OS_WIN16 | OS_WIN32 );
+						else if ( aWhatOS == "p" )
+							nOSType = OS_OS2;
+						else if ( aWhatOS == "u" )
+							nOSType = OS_UNX;
+						else if ( aWhatOS == "d" )
+							nOSType = OS_WIN16;
+						else if ( aWhatOS == "n" )
+							nOSType = OS_WIN32;
+						else if ( aWhatOS == "m" )
+							nOSType = OS_MAC;
+						else
+							nOSType = OS_NONE;
+					}
+					break;
+			case 5:
+					if ( !bPrjDep )
+					{
+						aLogFileName = yytext;
+					}
+					break;
+			default:
+					if ( !bPrjDep )
+					{
+						ByteString aItem = yytext;
+						if ( aItem == "NULL" )
+						{
+							// Liste zu Ende
+							i = -1;
+						}
+						else
+						{
+							// ggfs. Dependency liste anlegen und ergaenzen
+							if ( !pDepList2 )
+=====================================================================
+Found a 20 line (145 tokens) duplication in the following files: 
+Starting at line 1219 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+Starting at line 1290 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/pormulti.cxx
+
+			if( lcl_HasRotation( *pTmp, pRotate, bTwo ) )
+			{
+				if( bTwo == bOn )
+				{
+					if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() )
+						aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
+				}
+				else
+				{
+					bOn = bTwo;
+					if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() )
+						aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() );
+					else if( aEnd.Count() > 1 )
+						aEnd.Remove( aEnd.Count()-1, 1 );
+					else
+						aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
+				}
+			}
+		}
+		if( bOn && aEnd.Count() )
+=====================================================================
+Found a 25 line (145 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap4.cxx
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap4.cxx
+
+			pPersist->GetEmbeddedObjectContainer().InsertEmbeddedLink( aMediaDescr , aPersistName );
+
+    if( xObj.is() )
+    {
+        Rectangle aRect = pOle2Obj->GetLogicRect();
+        if ( aRect.GetWidth() == 100 && aRect.GetHeight() == 100 )
+        {
+            // default size
+			try
+			{
+            	awt::Size aSz = xObj->getVisualAreaSize( pOle2Obj->GetAspect() );
+            	aRect.SetSize( Size( aSz.Width, aSz.Height ) );
+			}
+			catch( embed::NoVisualAreaSizeException& )
+			{}
+			pOle2Obj->SetLogicRect( aRect );
+        }
+        else
+        {
+            awt::Size aSz;
+            Size aSize = pOle2Obj->GetLogicRect().GetSize();
+            aSz.Width = aSize.Width();
+            aSz.Height = aSize.Height();
+            xObj->setVisualAreaSize(  pOle2Obj->GetAspect(), aSz );
+        }
+=====================================================================
+Found a 30 line (145 tokens) duplication in the following files: 
+Starting at line 2358 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+Starting at line 2442 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+
+void SfxWorkWindow::SetChildWindow_Impl(USHORT nId, BOOL bOn, BOOL bSetFocus)
+{
+	SfxChildWin_Impl *pCW=NULL;
+	SfxWorkWindow *pWork = pParent;
+
+	// Den obersten parent nehmen; ChildWindows werden immer am WorkWindow
+	// der Task bzw. des Frames oder am AppWorkWindow angemeldet
+	while ( pWork && pWork->pParent )
+		pWork = pWork->pParent;
+
+	if ( pWork )
+	{
+		// Dem Parent schon bekannt ?
+		USHORT nCount = pWork->pChildWins->Count();
+		for (USHORT n=0; n<nCount; n++)
+			if ((*pWork->pChildWins)[n]->nSaveId == nId)
+			{
+				pCW = (*pWork->pChildWins)[n];
+				break;
+			}
+	}
+
+	if ( !pCW )
+	{
+		// Kein Parent oder dem Parent noch unbekannt, dann bei mir suchen
+		USHORT nCount = pChildWins->Count();
+		for (USHORT n=0; n<nCount; n++)
+			if ((*pChildWins)[n]->nSaveId == nId)
+			{
+				pCW = (*pChildWins)[n];
+=====================================================================
+Found a 37 line (145 tokens) duplication in the following files: 
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconrec.cxx
+Starting at line 509 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconrec.cxx
+
+	if( nSlotId == SID_TOOL_CONNECTOR               ||
+		nSlotId == SID_CONNECTOR_ARROW_START        ||
+		nSlotId == SID_CONNECTOR_ARROW_END          ||
+		nSlotId == SID_CONNECTOR_ARROWS             ||
+		nSlotId == SID_CONNECTOR_CIRCLE_START       ||
+		nSlotId == SID_CONNECTOR_CIRCLE_END         ||
+		nSlotId == SID_CONNECTOR_CIRCLES            ||
+		nSlotId == SID_CONNECTOR_LINE               ||
+		nSlotId == SID_CONNECTOR_LINE_ARROW_START   ||
+		nSlotId == SID_CONNECTOR_LINE_ARROW_END     ||
+		nSlotId == SID_CONNECTOR_LINE_ARROWS        ||
+		nSlotId == SID_CONNECTOR_LINE_CIRCLE_START  ||
+		nSlotId == SID_CONNECTOR_LINE_CIRCLE_END    ||
+		nSlotId == SID_CONNECTOR_LINE_CIRCLES       ||
+		nSlotId == SID_CONNECTOR_CURVE              ||
+		nSlotId == SID_CONNECTOR_CURVE_ARROW_START  ||
+		nSlotId == SID_CONNECTOR_CURVE_ARROW_END    ||
+		nSlotId == SID_CONNECTOR_CURVE_ARROWS       ||
+		nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
+		nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END   ||
+		nSlotId == SID_CONNECTOR_CURVE_CIRCLES      ||
+		nSlotId == SID_CONNECTOR_LINES              ||
+		nSlotId == SID_CONNECTOR_LINES_ARROW_START  ||
+		nSlotId == SID_CONNECTOR_LINES_ARROW_END    ||
+		nSlotId == SID_CONNECTOR_LINES_ARROWS       ||
+		nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
+		nSlotId == SID_CONNECTOR_LINES_CIRCLE_END   ||
+		nSlotId == SID_CONNECTOR_LINES_CIRCLES		||
+		nSlotId == SID_LINE_ARROW_START				||
+		nSlotId == SID_LINE_ARROW_END				||
+		nSlotId == SID_LINE_ARROWS					||
+		nSlotId == SID_LINE_ARROW_CIRCLE			||
+		nSlotId == SID_LINE_CIRCLE_ARROW			||
+		nSlotId == SID_LINE_ARROW_SQUARE			||
+		nSlotId == SID_LINE_SQUARE_ARROW )
+	{
+		mpView->SetGlueVisible( FALSE );
+=====================================================================
+Found a 29 line (145 tokens) duplication in the following files: 
+Starting at line 1979 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output.cxx
+Starting at line 2085 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output.cxx
+
+		 nRefStartY <= nVisY2 + 1 && nRefEndY >= nVisY1 )		// +1 because it touches next cells left/top
+	{
+		long nMinX = nScrX;
+		long nMinY = nScrY;
+		long nMaxX = nScrX+nScrW-1;
+		long nMaxY = nScrY+nScrH-1;
+		if ( bLayoutRTL )
+		{
+			long nTemp = nMinX;
+			nMinX = nMaxX;
+			nMaxX = nTemp;
+		}
+		long nLayoutSign = bLayoutRTL ? -1 : 1;
+
+		BOOL bTop    = FALSE;
+		BOOL bBottom = FALSE;
+		BOOL bLeft   = FALSE;
+		BOOL bRight	 = FALSE;
+
+		long nPosY = nScrY;
+		BOOL bNoStartY = ( nY1 < nRefStartY );
+		BOOL bNoEndY   = FALSE;
+		for (SCSIZE nArrY=1; nArrY<nArrCount; nArrY++)		// loop to end for bNoEndY check
+		{
+			SCROW nY = pRowInfo[nArrY].nRowNo;
+
+			if ( nY==nRefStartY || (nY>nRefStartY && bNoStartY) )
+			{
+				nMinY = nPosY - 1;
+=====================================================================
+Found a 18 line (145 tokens) duplication in the following files: 
+Starting at line 3243 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 3382 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+	ScDocument* pUndoDoc = NULL;
+	if ( bRecord )
+	{
+		SCTAB nTabCount = pDoc->GetTableCount();
+        SCTAB nDestStartTab = aDestArea.aStart.Tab();
+
+		pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+        pUndoDoc->InitUndo( pDoc, nDestStartTab, nDestStartTab );
+		for (SCTAB i=0; i<nTabCount; i++)
+            if (i != nDestStartTab && aMark.GetTableSelect(i))
+				pUndoDoc->AddUndoTab( i, i );
+
+		pDoc->CopyToDocument(
+			aDestArea.aStart.Col(), aDestArea.aStart.Row(), 0,
+			aDestArea.aEnd.Col(), aDestArea.aEnd.Row(), nTabCount-1,
+			IDF_ALL, FALSE, pUndoDoc, &aMark );
+		pDoc->BeginDrawUndo();
+	}
+=====================================================================
+Found a 26 line (145 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/dbdocfun.cxx
+Starting at line 1683 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+				pDoc->CopyToDocument( 0, nOutStartRow, nTab, MAXCOL, nOutEndRow, nTab, IDF_NONE, FALSE, pUndoDoc );
+			}
+			else
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, FALSE, TRUE );
+
+			//	Datenbereich sichern - incl. Filter-Ergebnis
+			pDoc->CopyToDocument( 0,nStartRow,nTab, MAXCOL,nEndRow,nTab, IDF_ALL, FALSE, pUndoDoc );
+
+			//	alle Formeln wegen Referenzen
+			pDoc->CopyToDocument( 0,0,0, MAXCOL,MAXROW,nTabCount-1, IDF_FORMULA, FALSE, pUndoDoc );
+
+			//	DB- und andere Bereiche
+			ScRangeName* pDocRange = pDoc->GetRangeName();
+			if (pDocRange->GetCount())
+				pUndoRange = new ScRangeName( *pDocRange );
+			ScDBCollection* pDocDB = pDoc->GetDBCollection();
+			if (pDocDB->GetCount())
+				pUndoDB = new ScDBCollection( *pDocDB );
+		}
+
+		if (bSort && bSubTotal)
+		{
+			//	Sortieren ohne SubTotals
+
+			aSubTotalParam.bRemoveOnly = TRUE;		// wird unten wieder zurueckgesetzt
+			DoSubTotals( aSubTotalParam, FALSE );
+=====================================================================
+Found a 23 line (145 tokens) duplication in the following files: 
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/drwtrans.cxx
+Starting at line 711 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/app/sdxfer.cxx
+
+                uno::Reference< embed::XStorage > xWorkStore =
+                    ::comphelper::OStorageHelper::GetStorageFromURL( aTempFile.GetURL(), embed::ElementModes::READWRITE );
+
+                // write document storage
+                pEmbObj->SetupStorage( xWorkStore, SOFFICE_FILEFORMAT_CURRENT, sal_False );
+                // mba: no relative ULRs for clipboard!
+                SfxMedium aMedium( xWorkStore, String() );
+                bRet = pEmbObj->DoSaveObjectAs( aMedium, FALSE );
+                pEmbObj->DoSaveCompleted();
+
+                uno::Reference< embed::XTransactedObject > xTransact( xWorkStore, uno::UNO_QUERY );
+                if ( xTransact.is() )
+                    xTransact->commit();
+
+                SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), STREAM_READ );
+                if( pSrcStm )
+                {
+                    rxOStm->SetBufferSize( 0xff00 );
+                    *rxOStm << *pSrcStm;
+                    delete pSrcStm;
+                }
+
+                bRet = TRUE;
+=====================================================================
+Found a 22 line (145 tokens) duplication in the following files: 
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 935 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+			fFactor = pow(q, n);
+			if (fFactor == 0.0)
+			{
+				fFactor = pow(p, n);
+				if (fFactor == 0.0)
+					SetNoValue();
+				else
+				{
+					ULONG max = (ULONG) (n - x);
+					for (ULONG i = 0; i < max && fFactor > 0.0; i++)
+						fFactor *= (n-i)/(i+1)*q/p;
+					PushDouble(fFactor);
+				}
+			}
+			else
+			{
+				ULONG max = (ULONG) x;
+				for (ULONG i = 0; i < max && fFactor > 0.0; i++)
+					fFactor *= (n-i)/(i+1)*p/q;
+				PushDouble(fFactor);
+			}
+		}
+=====================================================================
+Found a 48 line (145 tokens) duplication in the following files: 
+Starting at line 1956 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 631 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::rtl::OUString suError = outputError(sSocket.getLocalHost( ), rtl::OUString::createFromAscii(""), "test for getLocalHost function: getLocalHost with invalid SocketAddr");
+	
+			CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK ); 
+		}
+		
+		CPPUNIT_TEST_SUITE( getLocalHost );
+		CPPUNIT_TEST( getLocalHost_001 );
+		CPPUNIT_TEST( getLocalHost_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class getLocalHost
+	
+
+	/** testing the methods:
+		inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const;
+		inline sal_Int32	SAL_CALL getPeerPort() const;
+		inline ::rtl::OUString SAL_CALL getPeerHost() const;
+	*/
+	class getPeer : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		TimeValue *pTimeout;
+		::osl::AcceptorSocket asAcceptorSocket;
+		::osl::ConnectorSocket csConnectorSocket;
+		
+		
+		// initialization
+		void setUp( )
+		{
+			pTimeout  = ( TimeValue* )malloc( sizeof( TimeValue ) );
+			pTimeout->Seconds = 3;
+			pTimeout->Nanosec = 0;
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			free( pTimeout );
+			sHandle = NULL;
+			asAcceptorSocket.close( );
+			csConnectorSocket.close( );
+		}
+
+	
+		void getPeer_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT );
+=====================================================================
+Found a 6 line (145 tokens) duplication in the following files: 
+Starting at line 1092 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1100 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 09f0 - 09ff
+
+     0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a00 - 0a0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a10 - 0a1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a20 - 0a2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0a30 - 0a3f
+=====================================================================
+Found a 5 line (145 tokens) duplication in the following files: 
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 31b0 - 31bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31c0 - 31cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31d0 - 31df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31e0 - 31ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31f0 - 31ff
+=====================================================================
+Found a 6 line (145 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 600 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2540 - 254f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2550 - 255f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2560 - 256f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2570 - 257f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2580 - 258f
+    27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+=====================================================================
+Found a 5 line (145 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 31b0 - 31bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31c0 - 31cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31d0 - 31df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31e0 - 31ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31f0 - 31ff
+=====================================================================
+Found a 5 line (145 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2330 - 233f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2340 - 234f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2350 - 235f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2360 - 236f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,10,10,// 2370 - 237f
+=====================================================================
+Found a 6 line (145 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5,// 1150 - 115f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1160 - 116f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1170 - 117f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1180 - 118f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1190 - 119f
+     5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,// 11a0 - 11af
+=====================================================================
+Found a 5 line (145 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 31b0 - 31bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31c0 - 31cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31d0 - 31df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31e0 - 31ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 31f0 - 31ff
+=====================================================================
+Found a 5 line (145 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 8, 8, 6, 6, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+=====================================================================
+Found a 9 line (145 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,   19,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+=====================================================================
+Found a 40 line (145 tokens) duplication in the following files: 
+Starting at line 861 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/desktop.cxx
+Starting at line 2156 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/frame.cxx
+
+css::uno::Reference< css::frame::XDispatch > SAL_CALL Frame::queryDispatch( const css::util::URL&   aURL            ,
+                                                                            const ::rtl::OUString&  sTargetFrameName,
+                                                                                  sal_Int32         nSearchFlags    ) throw( css::uno::RuntimeException )
+{
+	const char UNO_PROTOCOL[] = ".uno:";
+
+	// Don't check incoming parameter here! Our helper do it for us and it isn't a good idea to do it more then ones!
+    // But look for rejected calls!
+    TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS );
+
+	// Remove uno and cmd protocol part as we want to support both of them. We store only the command part
+	// in our hash map. All other protocols are stored with the protocol part.
+	String aCommand( aURL.Main );
+	if ( aURL.Protocol.equalsIgnoreAsciiCaseAsciiL( UNO_PROTOCOL, sizeof( UNO_PROTOCOL )-1 ))
+		aCommand = aURL.Path;
+
+	// Make hash_map lookup if the current URL is in the disabled list
+	if ( m_aCommandOptions.Lookup( SvtCommandOptions::CMDOPTION_DISABLED, aCommand ) )
+		return css::uno::Reference< css::frame::XDispatch >();
+	else
+	{
+		// We use a helper to support these interface and an interceptor mechanism.
+		// Our helper is threadsafe by himself!
+		return m_xDispatchHelper->queryDispatch( aURL, sTargetFrameName, nSearchFlags );
+	}
+}
+
+/*-****************************************************************************************************//**
+	@short		handle more then ones dispatches at same call
+    @descr      Returns a sequence of dispatches. For details see the queryDispatch method.
+				For failed dispatches we return empty items in list!
+
+	@seealso	method queryDispatch()
+
+	@param		"lDescriptor" list of dispatch arguments for queryDispatch()!
+	@return		List of dispatch references. Some elements can be NULL!
+
+	@onerror	An empty list is returned.
+*//*-*****************************************************************************************************/
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL Frame::queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw( css::uno::RuntimeException )
+=====================================================================
+Found a 32 line (145 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/actiontriggerpropertyset.cxx
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/actiontriggerseparatorpropertyset.cxx
+
+Sequence< Type > SAL_CALL ActionTriggerSeparatorPropertySet::getTypes() throw ( RuntimeException )
+{
+	// Optimize this method !
+	// We initialize a static variable only one time. And we don't must use a mutex at every call!
+	// For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+	static ::cppu::OTypeCollection* pTypeCollection = NULL ;
+
+	if ( pTypeCollection == NULL )
+	{
+		// Ready for multithreading; get global mutex for first call of this method only! see before
+		osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+
+		// Control these pointer again ... it can be, that another instance will be faster then these!
+		if ( pTypeCollection == NULL )
+		{
+			// Create a static typecollection ...
+			static ::cppu::OTypeCollection aTypeCollection(	
+						::getCppuType(( const Reference< XPropertySet			>*)NULL ) ,
+						::getCppuType(( const Reference< XFastPropertySet		>*)NULL	) ,
+						::getCppuType(( const Reference< XMultiPropertySet		>*)NULL	) ,
+						::getCppuType(( const Reference< XServiceInfo			>*)NULL ) ,
+						::getCppuType(( const Reference< XTypeProvider			>*)NULL ) ) ;
+
+			// ... and set his address to static pointer!
+			pTypeCollection = &aTypeCollection ;
+		}
+	}
+
+	return pTypeCollection->getTypes() ;
+}
+
+Sequence< sal_Int8 > SAL_CALL ActionTriggerSeparatorPropertySet::getImplementationId() throw ( RuntimeException )
+=====================================================================
+Found a 9 line (145 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,    0,    0,    0,    6,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   32,    0,
+=====================================================================
+Found a 27 line (145 tokens) duplication in the following files: 
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/dp_gui_cmdenv.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
+
+    Sequence< Reference<task::XInteractionContinuation> > conts(
+        xRequest->getContinuations() );
+    Reference<task::XInteractionContinuation> const * pConts =
+        conts.getConstArray();
+    sal_Int32 len = conts.getLength();
+    for ( sal_Int32 pos = 0; pos < len; ++pos )
+    {
+        if (approve) {
+            Reference<task::XInteractionApprove> xInteractionApprove(
+                pConts[ pos ], UNO_QUERY );
+            if (xInteractionApprove.is()) {
+                xInteractionApprove->select();
+                // don't query again for ongoing continuations:
+                approve = false;
+            }
+        }
+        else if (abort) {
+            Reference<task::XInteractionAbort> xInteractionAbort(
+                pConts[ pos ], UNO_QUERY );
+            if (xInteractionAbort.is()) {           
+                xInteractionAbort->select();
+                // don't query again for ongoing continuations:
+                abort = false;
+            }
+        }
+    }
+}
+=====================================================================
+Found a 15 line (145 tokens) duplication in the following files: 
+Starting at line 1026 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+Starting at line 1068 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+
+					else if ( aName == CONFIGKEY_DEFSET_FONT_SLANT ) sProp = PROPERTY_FONTSLANT;
+
+					if ( sProp.getLength() )
+					{
+                        if ( m_aProperties.find(m_aStack.top().second) == m_aProperties.end() )
+                            m_aProperties.insert(::std::map< sal_Int16 ,Sequence< ::rtl::OUString> >::value_type(m_aStack.top().second,Sequence< ::rtl::OUString>()));
+						sal_Int32 nPos = m_aProperties[m_aStack.top().second].getLength();
+						m_aProperties[m_aStack.top().second].realloc(nPos+1);
+						m_aProperties[m_aStack.top().second][nPos] = sProp;
+					}
+					else
+						m_aStack.push(TElementStack::value_type(aName,NO_PROP));
+				}
+				break;
+			case COLUMN:
+=====================================================================
+Found a 19 line (145 tokens) duplication in the following files: 
+Starting at line 1109 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+								const ::rtl::OUString& procedureNamePattern)
+								throw(SQLException, RuntimeException)
+{
+	const ::rtl::OUString *pSchemaPat = NULL;
+
+	if(schemaPattern.toChar() != '%')
+		pSchemaPat = &schemaPattern;
+	else
+		pSchemaPat = NULL;
+
+	m_bFreeHandle = sal_True;
+	::rtl::OString aPKQ,aPKO,aPKN,aCOL;
+
+	aPKQ = ::rtl::OUStringToOString(comphelper::getString(catalog),m_nTextEncoding);
+	aPKO = ::rtl::OUStringToOString(schemaPattern,m_nTextEncoding);
+
+	const char	*pPKQ = catalog.hasValue() && aPKQ.getLength() ? aPKQ.getStr()	: NULL,
+				*pPKO = pSchemaPat && pSchemaPat->getLength() ? aPKO.getStr() : NULL,
+				*pPKN = aPKN = ::rtl::OUStringToOString(procedureNamePattern,m_nTextEncoding).getStr();
+=====================================================================
+Found a 18 line (145 tokens) duplication in the following files: 
+Starting at line 1010 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+Starting at line 1171 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+									const ::rtl::OUString& table,sal_Int32 scope, 	sal_Bool nullable )
+									throw(SQLException, RuntimeException)
+{
+	const ::rtl::OUString *pSchemaPat = NULL;
+
+	if(schema.toChar() != '%')
+		pSchemaPat = &schema;
+	else
+		pSchemaPat = NULL;
+
+	m_bFreeHandle = sal_True;
+	::rtl::OString aPKQ,aPKO,aPKN,aCOL;
+	aPKQ = ::rtl::OUStringToOString(comphelper::getString(catalog),m_nTextEncoding);
+	aPKO = ::rtl::OUStringToOString(schema,m_nTextEncoding);
+
+	const char	*pPKQ = catalog.hasValue() && aPKQ.getLength() ? aPKQ.getStr()	: NULL,
+				*pPKO = pSchemaPat && pSchemaPat->getLength() ? aPKO.getStr() : NULL,
+				*pPKN = aPKN = ::rtl::OUStringToOString(table,m_nTextEncoding).getStr();
+=====================================================================
+Found a 18 line (145 tokens) duplication in the following files: 
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+
+			::cppu::extractInterface(xTable,xNames->getByName(*pTabBegin));
+			OSL_ENSURE(xTable.is(),"Table not found! Normallya exception had to be thrown here!");
+			aRow[3] = new ORowSetValueDecorator(*pTabBegin);
+
+			Reference< XNameAccess> xColumns = xTable->getColumns();
+			if(!xColumns.is())
+                throw SQLException();
+
+			Sequence< ::rtl::OUString> aColNames(xColumns->getElementNames());
+
+			const ::rtl::OUString* pBegin = aColNames.getConstArray();
+			const ::rtl::OUString* pEnd = pBegin + aColNames.getLength();
+			Reference< XPropertySet> xColumn;
+			for(sal_Int32 i=1;pBegin != pEnd;++pBegin,++i)
+			{
+				if(match(columnNamePattern,*pBegin,'\0'))
+				{
+					aRow[4] = new ORowSetValueDecorator(*pBegin);
+=====================================================================
+Found a 39 line (145 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/AreaChartTypeTemplate.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
+
+        uno::makeAny( sal_Int32( 1 ) );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 28 line (145 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+Starting at line 847 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+void ImpPutUInt64( SbxValues* p, sal_uInt64 n )
+{
+	SbxValues aTmp;
+
+start:
+	switch( p->eType )
+	{
+		// Check neccessary
+		case SbxCHAR:
+			aTmp.pChar = &p->nChar; goto direct;
+		case SbxBYTE:
+			aTmp.pByte = &p->nByte; goto direct;
+		case SbxINTEGER:
+		case SbxBOOL:
+			aTmp.pInteger = &p->nInteger; goto direct;
+		case SbxULONG64:
+			aTmp.pULong64 = &p->nULong64; goto direct;
+		case SbxLONG64:
+		case SbxCURRENCY:
+			aTmp.pLong64 = &p->nLong64; goto direct;
+		case SbxULONG:
+			aTmp.pULong = &p->nULong; goto direct;
+		case SbxERROR:
+		case SbxUSHORT:
+			aTmp.pUShort = &p->nUShort; goto direct;
+		case SbxLONG:
+			aTmp.pnInt64 = &p->nInt64; goto direct;
+		case SbxSALINT64:
+=====================================================================
+Found a 23 line (145 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdec.cxx
+
+			pnDecRes->setUShort( *p->pUShort ); break;
+
+		// ab hier muss getestet werden
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+		case SbxBYREF | SbxSALINT64:
+			aTmp.nInt64 = *p->pnInt64; goto ref;
+		case SbxBYREF | SbxSALUINT64:
+			aTmp.uInt64 = *p->puInt64; goto ref;
+		ref:
+			aTmp.eType = SbxDataType( p->eType & 0x0FFF );
+			p = &aTmp; goto start;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION ); pnDecRes->setShort( 0 );
+=====================================================================
+Found a 43 line (144 tokens) duplication in the following files: 
+Starting at line 36819 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 38535 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+OOXMLContext_wordprocessingml_CT_TblBorders::element(TokenEnum_t nToken)
+{
+    OOXMLContext::Pointer_t pResult;
+    
+    switch (nToken)
+    {
+     case OOXML_ELEMENT_wordprocessingml_top:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_left:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_bottom:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_right:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_insideH:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_insideV:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_TOKENS_END:
+=====================================================================
+Found a 19 line (144 tokens) duplication in the following files: 
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+=====================================================================
+Found a 22 line (144 tokens) duplication in the following files: 
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgb.h
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgb.h
+
+        void blend_solid_vspan(int x, int y,
+                               unsigned len, 
+                               const color_type& c,
+                               const int8u* covers)
+        {
+            if (c.a)
+            {
+                value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+                do 
+                {
+                    calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+                    if(alpha == base_mask)
+                    {
+                        p[order_type::R] = c.r;
+                        p[order_type::G] = c.g;
+                        p[order_type::B] = c.b;
+                    }
+                    else
+                    {
+                        m_blender.blend_pix(p, c.r, c.g, c.b, alpha, *covers);
+                    }
+                    p = (value_type*)m_rbuf->next_row(p);
+=====================================================================
+Found a 34 line (144 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/XMLShapeStyleContext.cxx
+
+		const Reference< xml::sax::XAttributeList > & xAttrList )
+{
+	SvXMLImportContext *pContext = 0;
+
+	if( XML_NAMESPACE_STYLE == nPrefix )
+	{
+		sal_uInt32 nFamily = 0;
+		if( IsXMLToken( rLocalName, XML_TEXT_PROPERTIES ) )
+			nFamily = XML_TYPE_PROP_TEXT;
+		else if( IsXMLToken( rLocalName, XML_PARAGRAPH_PROPERTIES ) )
+			nFamily = XML_TYPE_PROP_PARAGRAPH;
+		else if( IsXMLToken( rLocalName, XML_GRAPHIC_PROPERTIES ) )
+			nFamily = XML_TYPE_PROP_GRAPHIC;
+		if( nFamily )
+		{
+			UniReference < SvXMLImportPropertyMapper > xImpPrMap =
+				GetStyles()->GetImportPropertyMapper( GetFamily() );
+			if( xImpPrMap.is() )
+				pContext = new XMLShapePropertySetContext( GetImport(), nPrefix,
+														rLocalName, xAttrList,
+														nFamily,
+														GetProperties(),
+														xImpPrMap );
+		}
+	}
+		
+	if( !pContext )
+		pContext = XMLPropStyleContext::CreateChildContext( nPrefix, rLocalName,
+														  xAttrList );
+
+	return pContext;
+}
+
+void XMLShapeStyleContext::FillPropertySet( const Reference< beans::XPropertySet > & rPropSet )
+=====================================================================
+Found a 13 line (144 tokens) duplication in the following files: 
+Starting at line 1659 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+Starting at line 1815 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+
+void AddressMultiLineEdit::SelectCurrentItem()
+{
+    ExtTextEngine* pTextEngine = GetTextEngine();
+    ExtTextView* pTextView = GetTextView();
+    const TextSelection& rSelection = pTextView->GetSelection();
+    const TextCharAttrib* pBeginAttrib = pTextEngine->FindCharAttrib( rSelection.GetStart(), TEXTATTR_PROTECTED );
+    const TextCharAttrib* pEndAttrib = pTextEngine->FindCharAttrib( rSelection.GetEnd(), TEXTATTR_PROTECTED );
+    if(pBeginAttrib && 
+            (pBeginAttrib->GetStart() <= rSelection.GetStart().GetIndex() 
+                            && pBeginAttrib->GetEnd() >= rSelection.GetEnd().GetIndex()))
+    {
+        ULONG nPara = rSelection.GetStart().GetPara();
+        TextSelection aEntrySel(TextPaM( nPara, pBeginAttrib->GetStart()), TextPaM(nPara, pBeginAttrib->GetEnd()));
+=====================================================================
+Found a 26 line (144 tokens) duplication in the following files: 
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+Starting at line 866 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+
+	const XMLPropStyleContext *pStyle = 0;
+	if( rStyleName.getLength() )
+	{
+		pStyle = FindAutoFrameStyle( rStyleName );
+		if( pStyle )
+		{
+			UniReference < SvXMLImportPropertyMapper > xImpPrMap =
+				pStyle->GetStyles()
+					  ->GetImportPropertyMapper(pStyle->GetFamily());
+			ASSERT( xImpPrMap.is(), "Where is the import prop mapper?" );
+			if( xImpPrMap.is() )
+			{
+				UniReference<XMLPropertySetMapper> rPropMapper =
+				xImpPrMap->getPropertySetMapper();
+
+				sal_Int32 nCount = pStyle->GetProperties().size();
+				for( sal_Int32 i=0; i < nCount; i++ )
+				{
+					const XMLPropertyState& rProp = pStyle->GetProperties()[i];
+					sal_Int32 nIdx = rProp.mnIndex;
+					if( -1 == nIdx )
+						continue;
+
+					switch( rPropMapper->GetEntryContextId(nIdx) )
+					{
+					case CTF_FRAME_DISPLAY_SCROLLBAR:
+=====================================================================
+Found a 34 line (144 tokens) duplication in the following files: 
+Starting at line 2197 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlform.cxx
+Starting at line 2478 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlform.cxx
+
+			nEvent = HTML_ET_ONCHANGE;
+			bSetEvent = sal_True;
+			break;
+
+		default:
+			lcl_html_getEvents( pOption->GetTokenString(),
+								pOption->GetString(),
+								aUnoMacroTbl, aUnoMacroParamTbl );
+			break;
+		}
+
+		if( bSetEvent )
+		{
+			String sEvent( pOption->GetString() );
+			if( sEvent.Len() )
+			{
+				sEvent.ConvertLineEnd();
+				if( EXTENDED_STYPE==eScriptType )
+					aScriptType = rDfltScriptType;
+				aMacroTbl.Insert( nEvent, new SvxMacro( sEvent, aScriptType,
+								  eScriptType ) );
+			}
+		}
+	}
+
+	const uno::Reference< lang::XMultiServiceFactory > & rSrvcMgr =
+		pFormImpl->GetServiceFactory();
+	if( !rSrvcMgr.is() )
+	{
+		FinishTextArea();
+		return;
+	}
+	uno::Reference< uno::XInterface >  xInt = rSrvcMgr->createInstance(
+		OUString::createFromAscii( "com.sun.star.form.component.ListBox" ) );
+=====================================================================
+Found a 18 line (144 tokens) duplication in the following files: 
+Starting at line 529 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/draw/dflyobj.cxx
+Starting at line 1854 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/feshview.cxx
+
+			SfxItemSet aHtmlSet( GetDoc()->GetAttrPool(), RES_VERT_ORIENT, RES_HORI_ORIENT );
+			//Horizontale Ausrichtung:
+			const FASTBOOL bLeftFrm = aFlyRect.Left() <
+									  pAnch->Frm().Left() + pAnch->Prt().Left(),
+						   bLeftPrt = aFlyRect.Left() + aFlyRect.Width() <
+									  pAnch->Frm().Left() + pAnch->Prt().Width()/2;
+			if( bLeftFrm || bLeftPrt )
+			{
+				aHori.SetHoriOrient( HORI_LEFT );
+				aHori.SetRelationOrient( bLeftFrm ? FRAME : PRTAREA );
+			}
+			else
+			{
+				const FASTBOOL bRightFrm = aFlyRect.Left() >
+										   pAnch->Frm().Left() + pAnch->Prt().Width();
+				aHori.SetHoriOrient( HORI_RIGHT );
+				aHori.SetRelationOrient( bRightFrm ? FRAME : PRTAREA );
+			}
+=====================================================================
+Found a 17 line (144 tokens) duplication in the following files: 
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/toolbars/extrusionbar.cxx
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/toolbars/fontworkbar.cxx
+
+				nStrResId = RID_SVXSTR_UNDO_APPLY_FONTWORK_SAME_LETTER_HEIGHT;
+
+			const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
+			ULONG nCount = rMarkList.GetMarkCount(), i;
+			for( i = 0; i < nCount; i++ )
+			{
+				SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
+				if( pObj->ISA(SdrObjCustomShape) )
+				{
+					String aStr( SVX_RES( nStrResId ) );
+					pSdrView->BegUndo( aStr );
+					pSdrView->AddUndo( pSdrView->GetModel()->GetSdrUndoFactory().CreateUndoAttrObject( *pObj ) );
+					SdrCustomShapeGeometryItem aGeometryItem( (SdrCustomShapeGeometryItem&)pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) );
+					impl_execute( pSdrView, rReq, aGeometryItem, pObj );
+					pObj->SetMergedItem( aGeometryItem );
+					pObj->BroadcastObjectChange();
+					pSdrView->EndUndo();
+=====================================================================
+Found a 9 line (144 tokens) duplication in the following files: 
+Starting at line 1882 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2077 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+	
+	{ 0xa MSO_I, 10800 }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
+=====================================================================
+Found a 9 line (144 tokens) duplication in the following files: 
+Starting at line 1675 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 1758 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 },	{ 0 MSO_I, 1 MSO_I }, { 1 MSO_I, 1 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 1 MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonBlankSegm[] =
+=====================================================================
+Found a 9 line (144 tokens) duplication in the following files: 
+Starting at line 2350 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2403 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }
+=====================================================================
+Found a 8 line (144 tokens) duplication in the following files: 
+Starting at line 2068 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2152 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
+	{ 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 9 line (144 tokens) duplication in the following files: 
+Starting at line 1923 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2020 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 },	{ 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonBlankSegm[] =
+=====================================================================
+Found a 21 line (144 tokens) duplication in the following files: 
+Starting at line 884 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 814 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptUpDownArrowVert[] =	// adjustment1: x 0 - 10800
+{															// adjustment2: y 0 - 10800
+	{ 0, 1 MSO_I },	{ 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
+	{ 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I },
+	{ 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
+};
+static const sal_uInt16 mso_sptUpDownArrowSegm[] =
+{
+	0x4000, 0x0009, 0x6001, 0x8000
+};
+static const sal_Int32 mso_sptUpDownArrowDefault[] =
+{
+	2, 5400, 4300
+};
+static const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] =
+{
+	{ { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } }
+};
+static const mso_CustomShape msoUpDownArrow =
+=====================================================================
+Found a 26 line (144 tokens) duplication in the following files: 
+Starting at line 1225 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleEditableTextPara.cxx
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleImageBullet.cxx
+
+        DBG_CHKTHIS( AccessibleImageBullet, NULL );
+
+        ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+        // relate us to parent
+        uno::Reference< XAccessible > xParent = getAccessibleParent();
+        if( xParent.is() )
+        {
+            uno::Reference< XAccessibleComponent > xParentComponent( xParent, uno::UNO_QUERY );
+            if( xParentComponent.is() )
+            {
+                awt::Point aRefPoint = xParentComponent->getLocationOnScreen();
+                awt::Point aPoint = getLocation();
+                aPoint.X += aRefPoint.X;
+                aPoint.Y += aRefPoint.Y;
+
+                return aPoint;
+            }
+        }
+
+        throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Cannot access parent")),
+                                    uno::Reference< uno::XInterface >
+                                    ( static_cast< XAccessible* > (this) ) );	// disambiguate hierarchy
+    }
+
+    awt::Size SAL_CALL AccessibleImageBullet::getSize(  ) throw (uno::RuntimeException)
+=====================================================================
+Found a 17 line (144 tokens) duplication in the following files: 
+Starting at line 3525 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/viewfrm.cxx
+Starting at line 3548 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/viewfrm.cxx
+
+                case SID_STOP_RECORDING :
+                {
+					const char* pName = GetObjectShell()->GetFactory().GetShortName();
+					if (  strcmp(pName,"swriter") && strcmp(pName,"scalc") )
+					{
+                        rSet.DisableItem( nWhich );
+						break;
+					}
+
+                    ::rtl::OUString sProperty = rtl::OUString::createFromAscii("DispatchRecorderSupplier");
+                    com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > xSet(
+                            GetFrame()->GetFrameInterface(),
+                            com::sun::star::uno::UNO_QUERY);
+
+                    com::sun::star::uno::Any aProp = xSet->getPropertyValue(sProperty);
+                    com::sun::star::uno::Reference< com::sun::star::frame::XDispatchRecorderSupplier > xSupplier;
+                    if ( !(aProp >>= xSupplier) || !xSupplier.is() )
+=====================================================================
+Found a 21 line (144 tokens) duplication in the following files: 
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/pptexanimations.cxx
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/ppt/pptinanimations.cxx
+
+	const sal_Char* pDest[] = { "x", "y", "width", "height", NULL };
+	sal_Int32 nIndex = 0;
+
+	const sal_Char** ps = pSource;
+	const sal_Char** pd = pDest;
+
+	while( *ps )
+	{
+		const OUString aSearch( OUString::createFromAscii( *ps ) );
+		while( (nIndex = rString.indexOf( aSearch, nIndex )) != -1  )
+		{
+			sal_Int32 nLength = aSearch.getLength();
+			if( nIndex && (rString.getStr()[nIndex-1] == '#' ) )
+			{
+				nIndex--;
+				nLength++;
+			}
+
+			const OUString aNew( OUString::createFromAscii( *pd ) );
+			rString = rString.replaceAt( nIndex, nLength, aNew );
+			nIndex += aNew.getLength();
+=====================================================================
+Found a 4 line (144 tokens) duplication in the following files: 
+Starting at line 4994 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 5261 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+        aPixelRects.push_back(Rectangle( aRect.Left(), aRect.Top(), aRect.Left()+2, aRect.Bottom() ));
+        aPixelRects.push_back(Rectangle( aRect.Right()-2, aRect.Top(), aRect.Right(), aRect.Bottom() ));
+        aPixelRects.push_back(Rectangle( aRect.Left()+3, aRect.Top(), aRect.Right()-3, aRect.Top()+2 ));
+        aPixelRects.push_back(Rectangle( aRect.Left()+3, aRect.Bottom()-2, aRect.Right()-3, aRect.Bottom() ));
+=====================================================================
+Found a 24 line (144 tokens) duplication in the following files: 
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cursuno.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cursuno.cxx
+
+void SAL_CALL ScCellCursorObj::gotoEnd() throw(uno::RuntimeException)
+{
+	//	this is similar to collapseToCurrentRegion
+	//!	something like gotoEdge with 4 possible directions is needed
+
+	ScUnoGuard aGuard;
+	const ScRangeList& rRanges = GetRangeList();
+	DBG_ASSERT( rRanges.Count() == 1, "Range? Ranges?" );
+	ScRange aOneRange(*rRanges.GetObject(0));
+
+	aOneRange.Justify();
+	ScDocShell* pDocSh = GetDocShell();
+	if ( pDocSh )
+	{
+		SCCOL nStartCol = aOneRange.aStart.Col();
+		SCROW nStartRow = aOneRange.aStart.Row();
+		SCCOL nEndCol = aOneRange.aEnd.Col();
+		SCROW nEndRow = aOneRange.aEnd.Row();
+		SCTAB nTab = aOneRange.aStart.Tab();
+
+		pDocSh->GetDocument()->GetDataArea(
+						nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+
+		ScRange aNew( nEndCol, nEndRow, nTab );
+=====================================================================
+Found a 27 line (144 tokens) duplication in the following files: 
+Starting at line 640 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlcvali.cxx
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlcvali.cxx
+
+SvXMLImportContext *ScXMLErrorMessageContext::CreateChildContext( USHORT nPrefix,
+											const ::rtl::OUString& rLName,
+											const ::com::sun::star::uno::Reference<
+									  	::com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext *pContext = 0;
+
+	const SvXMLTokenMap& rTokenMap = GetScImport().GetContentValidationMessageElemTokenMap();
+	switch( rTokenMap.Get( nPrefix, rLName ) )
+	{
+		case XML_TOK_P:
+		{
+			if(nParagraphCount)
+				sMessage.append(static_cast<sal_Unicode>('\n'));
+			++nParagraphCount;
+			pContext = new ScXMLContentContext( GetScImport(), nPrefix, rLName, xAttrList, sMessage);
+		}
+		break;
+	}
+
+	if( !pContext )
+		pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName );
+
+	return pContext;
+}
+
+void ScXMLErrorMessageContext::EndElement()
+=====================================================================
+Found a 25 line (144 tokens) duplication in the following files: 
+Starting at line 1441 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1796 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+				nActionNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_ACCEPTANCE_STATE))
+			{
+				if (IsXMLToken(sValue, XML_ACCEPTED))
+					nActionState = SC_CAS_ACCEPTED;
+				else if (IsXMLToken(sValue, XML_REJECTED))
+					nActionState = SC_CAS_REJECTED;
+			}
+			else if (IsXMLToken(aLocalName, XML_REJECTING_CHANGE_ID))
+			{
+				nRejectingNumber = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+=====================================================================
+Found a 23 line (144 tokens) duplication in the following files: 
+Starting at line 2442 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4604 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+::rtl::OUString SAL_CALL OStorage::getTypeByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
+	for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
+		if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
+			return aSeq[nInd].Second;
+
+	return ::rtl::OUString();
+}
+
+//-----------------------------------------------
+uno::Sequence< beans::StringPair > SAL_CALL OStorage::getRelationshipByID(  const ::rtl::OUString& sID  )
+=====================================================================
+Found a 21 line (144 tokens) duplication in the following files: 
+Starting at line 574 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+
+			   IllegalArgumentException,
+			   RuntimeException);
+
+public: // XActiveDataSource
+    virtual void SAL_CALL setOutputStream(const Reference < XOutputStream > & aStream)
+		throw (RuntimeException);
+    virtual Reference < XOutputStream > SAL_CALL getOutputStream(void)
+		throw (RuntimeException);
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference < XConnectable > & aPredecessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getPredecessor(void) throw (RuntimeException);
+    virtual void SAL_CALL setSuccessor(const Reference < XConnectable >& aSuccessor)
+		throw (RuntimeException);
+    virtual Reference<  XConnectable >  SAL_CALL getSuccessor(void) throw (RuntimeException);
+
+public: // XServiceInfo
+    OUString                     SAL_CALL getImplementationName() throw ();
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw ();
+    sal_Bool                        SAL_CALL supportsService(const OUString& ServiceName) throw ();
+=====================================================================
+Found a 21 line (144 tokens) duplication in the following files: 
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+
+		throw (IOException, IllegalArgumentException,RuntimeException);
+
+public: // XActiveDataSink
+    virtual void SAL_CALL setInputStream(const Reference < XInputStream > & aStream)
+		throw (RuntimeException);
+    virtual Reference < XInputStream > SAL_CALL getInputStream(void)
+		throw (RuntimeException);
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference < XConnectable > & aPredecessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getPredecessor(void)
+		throw (RuntimeException);
+    virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw (RuntimeException);
+
+public: // XServiceInfo
+    OUString                     SAL_CALL getImplementationName() throw ();
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw ();
+    sal_Bool                         SAL_CALL  supportsService(const OUString& ServiceName) throw ();
+=====================================================================
+Found a 22 line (144 tokens) duplication in the following files: 
+Starting at line 2421 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 2476 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+
+        for ( int i = 0; i < (int)rInDirVector.size(); i++ )
+        {
+            OUString aAbsInDirURL;
+            OUString aInDirURL;
+            OUString aInDir( rInDirVector[i] );
+
+            osl::FileBase::getFileURLFromSystemPath( aInDir, aInDirURL );
+            osl::FileBase::getAbsoluteFileURL( aWorkDir, aInDirURL, aAbsInDirURL );
+            osl::Directory aDir( aAbsInDirURL );
+            if ( aDir.open() == osl::FileBase::E_None )
+            {
+                osl::DirectoryItem aItem;
+                while ( aDir.getNextItem( aItem ) == osl::FileBase::E_None )
+                {
+                    osl::FileStatus aFileStatus( FileStatusMask_FileName );
+
+                    aItem.getFileStatus( aFileStatus );
+
+                    int j=0;
+                    OUString aFileName = aFileStatus.getFileName();
+
+                    while ( ProjectModule_Mapping[j].pProjectFolder != 0 )
+=====================================================================
+Found a 18 line (144 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 849 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+void SwSrcEditWindow::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+{
+	if ( rHint.ISA( TextHint ) )
+	{
+		const TextHint& rTextHint = (const TextHint&)rHint;
+		if( rTextHint.GetId() == TEXT_HINT_VIEWSCROLLED )
+		{
+			pHScrollbar->SetThumbPos( pTextView->GetStartDocPos().X() );
+			pVScrollbar->SetThumbPos( pTextView->GetStartDocPos().Y() );
+		}
+		else if( rTextHint.GetId() == TEXT_HINT_TEXTHEIGHTCHANGED )
+		{
+			if ( (long)pTextEngine->GetTextHeight() < pOutWin->GetOutputSizePixel().Height() )
+				pTextView->Scroll( 0, pTextView->GetStartDocPos().Y() );
+			pVScrollbar->SetThumbPos( pTextView->GetStartDocPos().Y() );
+			SetScrollBarRanges();
+		}
+		else if( ( rTextHint.GetId() == TEXT_HINT_PARAINSERTED ) || 
+=====================================================================
+Found a 23 line (144 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+Starting at line 2017 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+												const ::rtl::OUString& sEntName )
+		throw ( lang::IllegalArgumentException,
+				embed::WrongStateException,
+				io::IOException,
+				uno::Exception,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	// TODO: The object must be at least in Running state;
+	if ( !m_bIsLink || m_nObjectState == -1 || !m_pOleComponent )
+=====================================================================
+Found a 22 line (144 tokens) duplication in the following files: 
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/shared/registrationhelper.cxx
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/inc/componentmodule.cxx
+
+		const Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
+		const sal_Int64* pComponentFunction = s_pCreationFunctionPointers->getConstArray();
+		const sal_Int64* pFactoryFunction = s_pFactoryFunctionPointers->getConstArray();
+
+		for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices, ++pComponentFunction, ++pFactoryFunction)
+		{
+			if (pImplName->equals(_rImplementationName))
+			{
+				const FactoryInstantiation FactoryInstantiationFunction = reinterpret_cast<const FactoryInstantiation>(*pFactoryFunction);
+				const ComponentInstantiation ComponentInstantiationFunction = reinterpret_cast<const ComponentInstantiation>(*pComponentFunction);
+
+				xReturn = FactoryInstantiationFunction( _rxServiceManager, *pImplName, ComponentInstantiationFunction, *pServices, NULL);
+				if (xReturn.is())
+				{
+					xReturn->acquire();
+					return xReturn.get();
+				}
+			}
+		}
+
+		return NULL;
+	}
+=====================================================================
+Found a 13 line (144 tokens) duplication in the following files: 
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+Starting at line 1109 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+
+					if ( sProp.getLength() )
+					{
+                        if ( m_aProperties.find(m_aStack.top().second) == m_aProperties.end() )
+                            m_aProperties.insert(::std::map< sal_Int16 ,Sequence< ::rtl::OUString> >::value_type(m_aStack.top().second,Sequence< ::rtl::OUString>()));
+						sal_Int32 nPos = m_aProperties[m_aStack.top().second].getLength();
+						m_aProperties[m_aStack.top().second].realloc(nPos+1);
+						m_aProperties[m_aStack.top().second][nPos] = sProp;
+					}
+					else
+						m_aStack.push(TElementStack::value_type(aName,NO_PROP));
+				}
+				break;
+			case BOOKMARK:
+=====================================================================
+Found a 17 line (144 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HCatalog.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YCatalog.cxx
+
+Sequence< Type > SAL_CALL OMySQLCatalog::getTypes(  ) throw(RuntimeException)
+{
+	Sequence< Type > aTypes = OCatalog::getTypes();
+	::std::vector<Type> aOwnTypes;
+	aOwnTypes.reserve(aTypes.getLength());	
+	const Type* pBegin = aTypes.getConstArray();
+	const Type* pEnd = pBegin + aTypes.getLength();
+	for(;pBegin != pEnd;++pBegin)
+	{
+		if ( !(*pBegin == ::getCppuType((const Reference<XGroupsSupplier>*)0)))
+		{
+			aOwnTypes.push_back(*pBegin);
+		}
+	}
+	const Type* pTypes = aOwnTypes.empty() ? 0 : &aOwnTypes[0];
+	return Sequence< Type >(pTypes, aOwnTypes.size());
+}
+=====================================================================
+Found a 33 line (144 tokens) duplication in the following files: 
+Starting at line 779 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 1032 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+
+void java_sql_Statement_Base::setFastPropertyValue_NoBroadcast(
+								sal_Int32 nHandle,
+								const Any& rValue
+												 )
+												 throw (Exception)
+{
+	switch(nHandle)
+	{
+		case PROPERTY_ID_QUERYTIMEOUT:
+			setQueryTimeOut(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_MAXFIELDSIZE:
+			setMaxFieldSize(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_MAXROWS:
+			setMaxRows(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_CURSORNAME:
+			setCursorName(comphelper::getString(rValue));
+			break;
+		case PROPERTY_ID_RESULTSETCONCURRENCY:
+			setResultSetConcurrency(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_RESULTSETTYPE:
+			setResultSetType(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_FETCHDIRECTION:
+			setFetchDirection(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_FETCHSIZE:
+			setFetchSize(comphelper::getINT32(rValue));
+			break;
+		case PROPERTY_ID_ESCAPEPROCESSING:
+=====================================================================
+Found a 39 line (144 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/AreaChartTypeTemplate.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/PieChartTypeTemplate.cxx
+
+        uno::makeAny( sal_False );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 23 line (144 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+
+void SAL_CALL UpDownBarWrapper::setPropertyValues( const uno::Sequence< ::rtl::OUString >& rNameSeq, const uno::Sequence< uno::Any >& rValueSeq )
+                    throw (beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+    bool bUnknownProperty = false;
+    sal_Int32 nMinCount = std::min( rValueSeq.getLength(), rNameSeq.getLength() );
+    for(sal_Int32 nN=0; nN<nMinCount; nN++)
+    {
+        ::rtl::OUString aPropertyName( rNameSeq[nN] );
+        try
+        {
+            this->setPropertyValue( aPropertyName, rValueSeq[nN] );
+        }
+        catch( beans::UnknownPropertyException& ex )
+        {
+            ASSERT_EXCEPTION( ex );
+            bUnknownProperty = true;
+        }
+    }
+    //todo: store unknown properties elsewhere
+//    if( bUnknownProperty )
+//        throw beans::UnknownPropertyException();
+}
+uno::Sequence< uno::Any > SAL_CALL UpDownBarWrapper::getPropertyValues( const uno::Sequence< ::rtl::OUString >& rNameSeq )
+=====================================================================
+Found a 26 line (144 tokens) duplication in the following files: 
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+  __asm__ volatile ( "sync;" "isync;" : : : "memory");
+}
+
+
+
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+{
+    return static_cast< void ** >(block) + 2;
+}
+
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
+}
+
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+=====================================================================
+Found a 28 line (144 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/bean/native/win32/com_sun_star_comp_beans_LocalOfficeWindow.c
+
+static void ThrowException(JNIEnv * env, char const * type, char const * msg) {
+    jclass c;
+    (*env)->ExceptionClear(env);
+    c = (*env)->FindClass(env, type);
+    if (c == NULL) {
+        (*env)->ExceptionClear(env);
+        (*env)->FatalError(
+            env, "JNI FindClass failed");
+    }
+    if ((*env)->ThrowNew(env, c, msg) != 0) {
+        (*env)->ExceptionClear(env);
+        (*env)->FatalError(env, "JNI ThrowNew failed");
+    }
+}
+
+
+/*****************************************************************************/
+/*
+ * Class:     com_sun_star_comp_beans_LocalOfficeWindow
+ * Method:    getNativeWindowSystemType
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindowSystemType
+  (JNIEnv * env, jobject obj_this)
+{
+    (void) env; // unused
+    (void) obj_this; // unused
+    return (SYSTEM_WIN32);
+=====================================================================
+Found a 14 line (143 tokens) duplication in the following files: 
+Starting at line 535 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+                fg[2] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+
+                if(fg[0] > base_mask) fg[0] = base_mask;
+                if(fg[1] > base_mask) fg[1] = base_mask;
+                if(fg[2] > base_mask) fg[2] = base_mask;
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)base_mask;
+=====================================================================
+Found a 25 line (143 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+
+                                          image_subpixel_shift);
+            do
+            {
+                int x_hr;
+                int y_hr;
+
+                intr.coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                unsigned x1 = m_wrap_mode_x(x_lr);
+                unsigned x2 = ++m_wrap_mode_x;
+                x1 *= 3;
+                x2 *= 3;
+
+                unsigned y1 = m_wrap_mode_y(y_lr);
+                unsigned y2 = ++m_wrap_mode_y;
+                const value_type* ptr1 = (const value_type*)base_type::source_image().row(y1);
+                const value_type* ptr2 = (const value_type*)base_type::source_image().row(y2);
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+=====================================================================
+Found a 21 line (143 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        weight = (image_subpixel_size - x_hr) * y_hr;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr++;
+
+                        weight = x_hr * y_hr;
+=====================================================================
+Found a 19 line (143 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        weight = x_hr * (image_subpixel_size - y_hr);
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr--;
+=====================================================================
+Found a 22 line (143 tokens) duplication in the following files: 
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 809 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        if(src_alpha < 0) src_alpha = 0;
+
+                        if(src_alpha > base_mask) src_alpha = base_mask;
+                        if(fg[0] > src_alpha) fg[0] = src_alpha;
+                        if(fg[1] > src_alpha) fg[1] = src_alpha;
+                        if(fg[2] > src_alpha) fg[2] = src_alpha;
+                    }
+                }
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)src_alpha;
+
+                ++span;
+                ++base_type::interpolator();
+
+            } while(--len);
+
+            return base_type::allocator().span();
+        }
+    };
+=====================================================================
+Found a 27 line (143 tokens) duplication in the following files: 
+Starting at line 624 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+Starting at line 751 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        fg[order_type::B] = back_b;
+                        src_alpha         = back_a;
+                    }
+                    else
+                    {
+                        src_alpha = image_filter_size / 2;
+                        y_lr = (y >> image_subpixel_shift) + start;
+                        y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+
+                        do
+                        {
+                            x_count = diameter;
+                            weight_y = weight_array[y_hr];
+                            x_lr = (x >> image_subpixel_shift) + start;
+                            x_hr = image_subpixel_mask - x_fract;
+
+                            do
+                            {
+                                int weight = (weight_y * weight_array[x_hr] + 
+                                             image_filter_size / 2) >> 
+                                             image_filter_shift;
+
+                                if(x_lr >= 0 && y_lr >= 0 && 
+                                   x_lr < int(base_type::source_image().width()) && 
+                                   y_lr < int(base_type::source_image().height()))
+                                {
+                                    fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr * 3;
+=====================================================================
+Found a 29 line (143 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_aa.h
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_scanline_storage_bin.h
+
+            m_scanlines.remove_all();
+            m_spans.remove_all();
+            m_min_x =  0x7FFFFFFF;
+            m_min_y =  0x7FFFFFFF;
+            m_max_x = -0x7FFFFFFF;
+            m_max_y = -0x7FFFFFFF;
+            m_cur_scanline = 0;
+        }
+
+        //---------------------------------------------------------------
+        template<class Scanline> void render(const Scanline& sl)
+        {
+            scanline_data sl_this;
+
+            int y = sl.y();
+            if(y < m_min_y) m_min_y = y;
+            if(y > m_max_y) m_max_y = y;
+
+            sl_this.y = y;
+            sl_this.num_spans = sl.num_spans();
+            sl_this.start_span = m_spans.size();
+            typename Scanline::const_iterator span_iterator = sl.begin();
+
+            unsigned num_spans = sl_this.num_spans;
+            do
+            {
+                span_data sp;
+                sp.x   = span_iterator->x;
+                sp.len = (int16)abs((int)(span_iterator->len));
+=====================================================================
+Found a 30 line (143 tokens) duplication in the following files: 
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_scanline.h
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_scanline.h
+
+        renderer_scanline_bin(base_ren_type& ren, SpanGenerator& span_gen) :
+            m_ren(&ren),
+            m_span_gen(&span_gen)
+        {
+        }
+        
+        //--------------------------------------------------------------------
+        void prepare(unsigned max_span_len) 
+        { 
+            m_span_gen->prepare(max_span_len); 
+        }
+
+        //--------------------------------------------------------------------
+        template<class Scanline> void render(const Scanline& sl)
+        {
+            int y = sl.y();
+            m_ren->first_clip_box();
+            do
+            {
+                int xmin = m_ren->xmin();
+                int xmax = m_ren->xmax();
+
+                if(y >= m_ren->ymin() && y <= m_ren->ymax())
+                {
+                    unsigned num_spans = sl.num_spans();
+                    typename Scanline::const_iterator span = sl.begin();
+                    do
+                    {
+                        int x = span->x;
+                        int len = span->len;
+=====================================================================
+Found a 27 line (143 tokens) duplication in the following files: 
+Starting at line 1258 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
+Starting at line 976 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/javacompskeleton.cxx
+
+                                supportxcomponent);       
+        
+        if ( !standardout && pofs && ((std::ofstream*)pofs)->is_open()) {
+            ((std::ofstream*)pofs)->close();
+            delete pofs;
+            OSL_VERIFY(makeValidTypeFile(compFileName, tmpFileName, sal_False));
+        }
+    } catch(CannotDumpException& e) {
+
+        std::cerr << "ERROR: " << e.m_message.getStr() << "\n"; 
+        if ( !standardout ) {
+            if (pofs && ((std::ofstream*)pofs)->is_open()) {
+                ((std::ofstream*)pofs)->close();       
+                delete pofs;
+            }
+            // remove existing type file if something goes wrong to ensure
+            // consistency
+            if (fileExists(compFileName))
+                removeTypeFile(compFileName);
+            
+            // remove tmp file if something goes wrong
+            removeTypeFile(tmpFileName);
+        }
+    }    
+}
+
+} }
+=====================================================================
+Found a 20 line (143 tokens) duplication in the following files: 
+Starting at line 1664 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+Starting at line 2638 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+
+		SetLayer();
+
+		if(bIsPresShape)
+		{
+			uno::Reference< beans::XPropertySet > xProps(mxShape, uno::UNO_QUERY);
+			if(xProps.is())
+			{
+				uno::Reference< beans::XPropertySetInfo > xPropsInfo( xProps->getPropertySetInfo() );
+				if( xPropsInfo.is() )
+				{
+					if( !mbIsPlaceholder && xPropsInfo->hasPropertyByName(OUString(RTL_CONSTASCII_USTRINGPARAM("IsEmptyPresentationObject") )))
+						xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("IsEmptyPresentationObject") ), ::cppu::bool2any( sal_False ) );
+
+					if( mbIsUserTransformed && xPropsInfo->hasPropertyByName(OUString(RTL_CONSTASCII_USTRINGPARAM("IsPlaceholderDependent") )))
+						xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("IsPlaceholderDependent") ), ::cppu::bool2any( sal_False ) );
+				}
+			}
+		}
+
+		if( !mbIsPlaceholder && maHref.getLength() )
+=====================================================================
+Found a 15 line (143 tokens) duplication in the following files: 
+Starting at line 1129 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+								nTemp = pLutFrac[ nY ];
+
+								lXR1 = aCol1.GetRed() - ( lXR0 = aCol0.GetRed() );
+								lXG1 = aCol1.GetGreen() - ( lXG0 = aCol0.GetGreen() );
+								lXB1 = aCol1.GetBlue() - ( lXB0 = aCol0.GetBlue() );
+
+								aCol0.SetRed( (BYTE) ( ( lXR1 * nTemp + ( lXR0 << 10 ) ) >> 10 ) );
+								aCol0.SetGreen( (BYTE) ( ( lXG1 * nTemp + ( lXG0 << 10 ) ) >> 10 ) );
+								aCol0.SetBlue( (BYTE) ( ( lXB1 * nTemp + ( lXB0 << 10 ) ) >> 10 ) );
+
+								pWriteAcc->SetPixel( nY, nX, aCol0 );
+							}
+						}
+					}
+				}
+=====================================================================
+Found a 19 line (143 tokens) duplication in the following files: 
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+
+                                              sal_Int32* pGlyphIDs,
+                                              sal_uInt8* pEncoding,
+                                              sal_Int32* pWidths,
+                                              int nGlyphs,
+                                              FontSubsetInfo& rInfo
+                                              );
+    virtual const std::map< sal_Unicode, sal_Int32 >* GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** ppNonEncoded );
+    virtual const void*	GetEmbedFontData( ImplFontData* pFont,
+                                          const sal_Unicode* pUnicodes,
+                                          sal_Int32* pWidths,
+                                          FontSubsetInfo& rInfo,
+                                          long* pDataLen );
+    virtual void			FreeEmbedFontData( const void* pData, long nDataLen );
+    virtual void            GetGlyphWidths( ImplFontData* pFont,
+                                            bool bVertical,
+                                            std::vector< sal_Int32 >& rWidths,
+                                            std::map< sal_Unicode, sal_uInt32 >& rUnicodeEnc );
+    virtual BOOL			GetGlyphBoundRect( long nIndex, Rectangle& );
+    virtual BOOL			GetGlyphOutline( long nIndex, ::basegfx::B2DPolyPolygon& );
+=====================================================================
+Found a 50 line (143 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgresultset.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavresultset.cxx
+
+using namespace webdav_ucp;
+
+//=========================================================================
+//=========================================================================
+//
+// DynamicResultSet Implementation.
+//
+//=========================================================================
+//=========================================================================
+
+DynamicResultSet::DynamicResultSet(
+                const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+                const rtl::Reference< Content >& rxContent,
+                const ucb::OpenCommandArgument2& rCommand,
+                const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 45 line (143 tokens) duplication in the following files: 
+Starting at line 782 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 996 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+					xRow->appendVoid( rProp );
+			}
+			else
+			{
+				// Not a Core Property! Maybe it's an Additional Core Property?!
+
+				if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+				{
+					xAdditionalPropSet
+                        = uno::Reference< beans::XPropertySet >(
+							rProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property(
+                rtl::OUString::createFromAscii( "ContentType" ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY ),
+			rData.aContentType );
+=====================================================================
+Found a 16 line (143 tokens) duplication in the following files: 
+Starting at line 322 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/gsiconv.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/txtconv.cxx
+
+		ByteString sCharset( argv[ 2 ] );
+		sCharset.ToUpperAscii();
+
+		if 		( sCharset == "MS_932" ) 	nEncoding = RTL_TEXTENCODING_MS_932;
+		else if ( sCharset == "MS_936" ) 	nEncoding = RTL_TEXTENCODING_MS_936;
+		else if ( sCharset == "MS_949" ) 	nEncoding = RTL_TEXTENCODING_MS_949;
+		else if ( sCharset == "MS_950" ) 	nEncoding = RTL_TEXTENCODING_MS_950;
+		else if ( sCharset == "MS_1250" ) 	nEncoding = RTL_TEXTENCODING_MS_1250;
+		else if ( sCharset == "MS_1251" ) 	nEncoding = RTL_TEXTENCODING_MS_1251;
+		else if ( sCharset == "MS_1252" ) 	nEncoding = RTL_TEXTENCODING_MS_1252;
+		else if ( sCharset == "MS_1253" ) 	nEncoding = RTL_TEXTENCODING_MS_1253;
+		else if ( sCharset == "MS_1254" ) 	nEncoding = RTL_TEXTENCODING_MS_1254;
+		else if ( sCharset == "MS_1255" ) 	nEncoding = RTL_TEXTENCODING_MS_1255;
+		else if ( sCharset == "MS_1256" ) 	nEncoding = RTL_TEXTENCODING_MS_1256;
+		else if ( sCharset == "MS_1257" ) 	nEncoding = RTL_TEXTENCODING_MS_1257;
+		else if (( sCharset == "HW2FW" ) && ( ByteString( argv[ 1 ] ) == "-t" )) bHW2FW = TRUE;
+=====================================================================
+Found a 31 line (143 tokens) duplication in the following files: 
+Starting at line 703 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 2041 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+
+	aCtlXRectPreview.Show();
+	aCtlBitmapPreview.Hide();
+
+//	aGrpTransparent.Hide();
+//	aLbTransparent.Hide();
+    aFlStepCount.Hide();
+	aTsbStepCount.Hide();
+	aNumFldStepCount.Hide();
+
+	aTsbTile.Hide();
+	aTsbStretch.Hide();
+	aTsbScale.Hide();
+	aTsbOriginal.Hide();
+	aFtXSize.Hide();
+	aMtrFldXSize.Hide();
+	aFtYSize.Hide();
+	aMtrFldYSize.Hide();
+    aFlSize.Hide();
+	aRbtRow.Hide();
+	aRbtColumn.Hide();
+	aMtrFldOffset.Hide();
+    aFlOffset.Hide();
+	aCtlPosition.Hide();
+	aFtXOffset.Hide();
+	aMtrFldXOffset.Hide();
+	aFtYOffset.Hide();
+	aMtrFldYOffset.Hide();
+    aFlPosition.Hide();
+
+	// Controls for Hatch-Background
+	aCbxHatchBckgrd.Show();
+=====================================================================
+Found a 20 line (143 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+					TestEnum eEnum, const ::rtl::OUString& rStr,
+					const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+					const ::com::sun::star::uno::Any& rAny )
+{
+	rData.Bool = bBool;
+	rData.Char = cChar;
+	rData.Byte = nByte;
+	rData.Short = nShort;
+	rData.UShort = nUShort;
+	rData.Long = nLong;
+	rData.ULong = nULong;
+	rData.Hyper = nHyper;
+	rData.UHyper = nUHyper;
+	rData.Float = fFloat;
+	rData.Double = fDouble;
+	rData.Enum = eEnum;
+	rData.String = rStr;
+	rData.Interface = xTest;
+	rData.Any = rAny;
+}
+=====================================================================
+Found a 28 line (143 tokens) duplication in the following files: 
+Starting at line 2173 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+Starting at line 2444 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+
+	SfxChildWin_Impl *pCW=NULL;
+	SfxWorkWindow *pWork = pParent;
+
+	// Den obersten parent nehmen; ChildWindows werden immer am WorkWindow
+	// der Task bzw. des Frames oder am AppWorkWindow angemeldet
+	while ( pWork && pWork->pParent )
+		pWork = pWork->pParent;
+
+	if ( pWork )
+	{
+		// Dem Parent schon bekannt ?
+		USHORT nCount = pWork->pChildWins->Count();
+		for (USHORT n=0; n<nCount; n++)
+			if ((*pWork->pChildWins)[n]->nSaveId == nId)
+			{
+				pCW = (*pWork->pChildWins)[n];
+				break;
+			}
+	}
+
+	if ( !pCW )
+	{
+		// Kein Parent oder dem Parent noch unbekannt, dann bei mir suchen
+		USHORT nCount = pChildWins->Count();
+		for (USHORT n=0; n<nCount; n++)
+			if ((*pChildWins)[n]->nSaveId == nId)
+			{
+				pCW = (*pChildWins)[n];
+=====================================================================
+Found a 36 line (143 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linksrc.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linksrc.cxx
+
+	aArr.Remove( 0, aArr.Count() );
+}
+
+SvLinkSource_Entry_Impl* SvLinkSource_EntryIter_Impl::Next()
+{
+	SvLinkSource_Entry_ImplPtr pRet = 0;
+	if( nPos + 1 < aArr.Count() )
+	{
+		++nPos;
+		if( rOrigArr.Count() == aArr.Count() &&
+			rOrigArr[ nPos ] == aArr[ nPos ] )
+			pRet = aArr[ nPos ];
+		else
+		{
+			// then we must search the current (or the next) in the orig
+			do {
+				pRet = aArr[ nPos ];
+				if( USHRT_MAX != rOrigArr.GetPos( pRet ))
+					break;
+				pRet = 0;
+				++nPos;
+			} while( nPos < aArr.Count() );
+
+			if( nPos >= aArr.Count() )
+				pRet = 0;
+		}
+	}
+	return pRet;
+}
+
+struct SvLinkSource_Impl
+{
+	SvLinkSource_Array_Impl aArr;
+	String				aDataMimeType;
+	SvLinkSourceTimer *	pTimer;
+	ULONG				nTimeout;
+=====================================================================
+Found a 21 line (143 tokens) duplication in the following files: 
+Starting at line 1309 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/drawdoc4.cxx
+Starting at line 1172 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/stlpool.cxx
+
+			aNumberFormat.SetBulletFont(&rBulletFont);
+			aNumberFormat.SetBulletChar( 0x25CF ); // StarBats: 0xF000 + 34
+			aNumberFormat.SetBulletRelSize(45);
+			aNumberFormat.SetBulletColor(Color(COL_AUTO));
+			aNumberFormat.SetStart(1);
+			aNumberFormat.SetNumAdjust(SVX_ADJUST_LEFT);
+
+			SvxNumRule aNumRule( NUM_BULLET_REL_SIZE|NUM_BULLET_COLOR|NUM_CHAR_TEXT_DISTANCE, 10 , FALSE);
+			aNumberFormat.SetLSpace( 0 );
+			aNumberFormat.SetAbsLSpace( 0 );
+			aNumberFormat.SetFirstLineOffset( 0 );
+			aNumRule.SetLevel( 0, aNumberFormat );
+
+			for( USHORT i = 1; i < 10; i++ )
+			{
+				const short nLSpace = (i + 1) * 600;
+				aNumberFormat.SetLSpace(nLSpace);
+				aNumberFormat.SetAbsLSpace(nLSpace);
+				aNumberFormat.SetFirstLineOffset(-600);
+				aNumRule.SetLevel( i, aNumberFormat );
+			}
+=====================================================================
+Found a 32 line (143 tokens) duplication in the following files: 
+Starting at line 2388 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 2807 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+void ScInterpreter::ScRKP()
+{
+	BYTE nParamCount = GetByte();
+	if ( !MustHaveParamCount( nParamCount, 1, 4 ) )
+		return;
+	BOOL bConstant, bStats;
+	if (nParamCount == 4)
+		bStats = GetBool();
+	else
+		bStats = FALSE;
+	if (nParamCount >= 3)
+		bConstant = GetBool();
+	else
+		bConstant = TRUE;
+	ScMatrixRef pMatX;
+	ScMatrixRef pMatY;
+	if (nParamCount >= 2)
+		pMatX = GetMatrix();
+	else
+		pMatX = NULL;
+	pMatY = GetMatrix();
+	if (!pMatY)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	BYTE nCase;							// 1 = normal, 2,3 = mehrfach
+	SCSIZE nCX, nCY;
+	SCSIZE nRX, nRY;
+    SCSIZE M = 0, N = 0;
+	pMatY->GetDimensions(nCY, nRY);
+	SCSIZE nCountY = nCY * nRY;
+=====================================================================
+Found a 25 line (143 tokens) duplication in the following files: 
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+Starting at line 1164 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+
+                            BOOL bValid = TRUE;
+                            long nVisibleCount = 0;
+                            long nCallerPos = SC_CALLERPOS_NONE;
+
+                            uno::Sequence<reflection::ParamInfo> aParams =
+                                    xFunc->getParameterInfos();
+                            long nParamCount = aParams.getLength();
+                            const reflection::ParamInfo* pParArr = aParams.getConstArray();
+                            long nParamPos;
+                            for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
+                            {
+                                if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
+                                    bValid = FALSE;
+                                uno::Reference<reflection::XIdlClass> xParClass =
+                                            pParArr[nParamPos].aType;
+                                ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+                                if ( eArgType == SC_ADDINARG_NONE )
+                                    bValid = FALSE;
+                                else if ( eArgType == SC_ADDINARG_CALLER )
+                                    nCallerPos = nParamPos;
+                                else
+                                    ++nVisibleCount;
+                            }
+                            if (bValid)
+                            {
+=====================================================================
+Found a 9 line (143 tokens) duplication in the following files: 
+Starting at line 1690 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1780 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                  "\x2D\x6F\x2D\x73\x2D\x74\x2D\x78\x2D\x79\x1B(B"),
+              { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
+                0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
+                0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
+                0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
+                0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
+                0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
+                0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
+                0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
+=====================================================================
+Found a 11 line (143 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 1682 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+const
+  sal_Char aBase64EncodeTable[] =
+    { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+      'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+
+const
+  sal_uInt8 aBase64DecodeTable[]  =
+    {											 62,255,255,255, 63, // 43-47
+=====================================================================
+Found a 19 line (143 tokens) duplication in the following files: 
+Starting at line 741 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2297 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xe0, 0xe0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd3 },
+=====================================================================
+Found a 7 line (143 tokens) duplication in the following files: 
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 5 line (143 tokens) duplication in the following files: 
+Starting at line 1230 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2330 - 233f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2340 - 234f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2350 - 235f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2360 - 236f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,10,10,// 2370 - 237f
+=====================================================================
+Found a 5 line (143 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+=====================================================================
+Found a 6 line (143 tokens) duplication in the following files: 
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21, 0, 0, 0,// 1690 - 169f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16a0 - 16af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16b0 - 16bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16c0 - 16cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 16d0 - 16df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,23,23,23,10,10,// 16e0 - 16ef
+=====================================================================
+Found a 5 line (143 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+=====================================================================
+Found a 5 line (143 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1740 - 174f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1750 - 175f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1760 - 176f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+=====================================================================
+Found a 5 line (143 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 8, 8, 6, 6, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+=====================================================================
+Found a 22 line (143 tokens) duplication in the following files: 
+Starting at line 631 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/cfgview.cxx
+Starting at line 870 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/cfgview.cxx
+
+            sAllFiltersHTML.append      ( OUString::valueOf( nFilters )                                                                                             );  // write nr
+            sAllFiltersHTML.appendAscii ( "</td>\n"                                                                                                                 );  // close column "nr"
+            sAllFiltersHTML.appendAscii ( "\t\t\t\t<td>"                                                                                                            );  // open column "name"
+            sAllFiltersHTML.appendAscii ( "<a href=\""                                                                                                              );  // open href="filterproperties.html#<filtername>"
+            sAllFiltersHTML.appendAscii ( FILTERPROPERTIES_HTML                                                                                                     );
+            sAllFiltersHTML.appendAscii ( "#"                                                                                                                       );
+            sAllFiltersHTML.append      ( aFilter.sName                                                                                                             );
+            sAllFiltersHTML.appendAscii ( "\" target=\""                                                                                                            );
+            sAllFiltersHTML.appendAscii ( TARGET_PROPERTIES                                                                                                         );
+            sAllFiltersHTML.appendAscii ( "\">"                                                                                                                     );
+            sAllFiltersHTML.append      ( aFilter.sName                                                                                                             );  // write name
+            sAllFiltersHTML.appendAscii ( "</a>"                                                                                                                    );  // close href
+            sAllFiltersHTML.appendAscii ( "</td>\n"                                                                                                                 );  // close column "name"
+            sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n"                                                                                                           );  // close row
+
+            // write entry in filter property table
+            sFilterPropHTML.appendAscii ( "\t\t<a name=\""                                                                                                          );  // set target="#<typename>" to follow table
+            sFilterPropHTML.append      ( aFilter.sName                                                                                                             );
+            sFilterPropHTML.appendAscii ( "\"></a>"                                                                                                                 );
+            sFilterPropHTML.appendAscii ( "\t\t<table border=0>\n"                                                                                                  );  // open table
+            sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">&nbsp;");    // generate row "Nr <value>"
+            sFilterPropHTML.append      ( OUString::valueOf( nFilters )                                                                                             );
+=====================================================================
+Found a 25 line (143 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/itemcontainer.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/rootitemcontainer.cxx
+
+    if ( rSourceContainer.is() )
+    {
+        sal_Int32 nCount = rSourceContainer->getCount();
+        try
+        {
+            for ( sal_Int32 i = 0; i < nCount; i++ )
+            {
+                Sequence< PropertyValue > aPropSeq;
+                Any a = rSourceContainer->getByIndex( i );
+                if ( a >>= aPropSeq )
+                {
+                    sal_Int32 nContainerIndex = -1;
+                    Reference< XIndexAccess > xIndexAccess;
+                    for ( sal_Int32 j = 0; j < aPropSeq.getLength(); j++ )
+                    {
+                        if ( aPropSeq[j].Name.equalsAscii( "ItemDescriptorContainer" ))
+                        {
+                            aPropSeq[j].Value >>= xIndexAccess;
+                            nContainerIndex = j;
+                            break;
+                        }
+                    }
+
+                    if ( xIndexAccess.is() && nContainerIndex >= 0 )
+                        aPropSeq[nContainerIndex].Value <<= deepCopyContainer( xIndexAccess );
+=====================================================================
+Found a 20 line (143 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ComboBox.cxx
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Edit.cxx
+
+using namespace dbtools;
+
+//.........................................................................
+namespace frm
+{
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::form::binding;
+
+//------------------------------------------------------------------
+InterfaceRef SAL_CALL OEditControl_CreateInstance(const Reference< XMultiServiceFactory > & _rxFactory)
+=====================================================================
+Found a 43 line (143 tokens) duplication in the following files: 
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+			Invalidate();
+	}
+
+}
+
+/*--------------------------------------------------------------------
+	Beschreibung:
+ --------------------------------------------------------------------*/
+
+void TextViewOutWin::DataChanged( const DataChangedEvent& rDCEvt )
+{
+	Window::DataChanged( rDCEvt );
+
+	switch( rDCEvt.GetType() )
+	{
+	case DATACHANGED_SETTINGS:
+		// den Settings abgefragt werden.
+		if( rDCEvt.GetFlags() & SETTINGS_STYLE )
+		{
+			const Color &rCol = GetSettings().GetStyleSettings().GetWindowColor();
+			SetBackground( rCol );
+			Font aFont( pTextView->GetTextEngine()->GetFont() );
+			aFont.SetFillColor( rCol );
+			pTextView->GetTextEngine()->SetFont( aFont );
+		}
+		break;
+	}
+}
+
+void  TextViewOutWin::MouseMove( const MouseEvent &rEvt )
+{
+	if ( pTextView )
+		pTextView->MouseMove( rEvt );
+}
+
+/*--------------------------------------------------------------------
+	Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+void  TextViewOutWin::MouseButtonUp( const MouseEvent &rEvt )
+{
+	if ( pTextView )
+=====================================================================
+Found a 11 line (143 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1682 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+const
+  sal_Char aBase64EncodeTable[] =
+    { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+      'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+
+const
+  sal_uInt8 aBase64DecodeTable[]  =
+    {											 62,255,255,255, 63, // 43-47
+=====================================================================
+Found a 20 line (143 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+					TestEnum eEnum, const ::rtl::OUString& rStr,
+					const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+					const ::com::sun::star::uno::Any& rAny )
+{
+	rData.Bool = bBool;
+	rData.Char = cChar;
+	rData.Byte = nByte;
+	rData.Short = nShort;
+	rData.UShort = nUShort;
+	rData.Long = nLong;
+	rData.ULong = nULong;
+	rData.Hyper = nHyper;
+	rData.UHyper = nUHyper;
+	rData.Float = fFloat;
+	rData.Double = fDouble;
+	rData.Enum = eEnum;
+	rData.String = rStr;
+	rData.Interface = xTest;
+	rData.Any = rAny;
+}
+=====================================================================
+Found a 22 line (143 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KCatalog.cxx
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MCatalog.cxx
+
+void OCatalog::refreshTables()
+{
+	TStringVector aVector;
+	Sequence< ::rtl::OUString > aTypes(1);
+	aTypes[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%"));
+	Reference< XResultSet > xResult = m_xMetaData->getTables(Any(),
+		::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")),::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")),aTypes);
+
+	if(xResult.is())
+	{
+		Reference< XRow > xRow(xResult,UNO_QUERY);
+		::rtl::OUString aName;
+		while(xResult->next())
+		{
+			aName = xRow->getString(3);
+			aVector.push_back(aName);
+		}
+	}
+	if(m_pTables)
+		m_pTables->reFill(aVector);
+	else
+		m_pTables = new OTables(m_xMetaData,*this,m_aMutex,aVector);
+=====================================================================
+Found a 23 line (143 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Blob.cxx
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Clob.cxx
+
+sal_Int64 SAL_CALL java_sql_Clob::length(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
+{
+	jlong out(0);
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv )
+	{
+		// temporaere Variable initialisieren
+		static const char * cSignature = "()J";
+		static const char * cMethodName = "length";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallLongMethod( object, mID );
+			ThrowSQLException(t.pEnv,*this);
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	return (sal_Int64)out;
+}
+
+::rtl::OUString SAL_CALL java_sql_Clob::getSubString( sal_Int64 pos, sal_Int32 subStringLength ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 35 line (143 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SServices.cxx
+
+	for (sal_uInt32 i=0; i<Services.getLength(); ++i)
+		xNewKey->createKey(Services[i]);
+}
+
+
+//---------------------------------------------------------------------------------------
+struct ProviderRequest
+{
+	Reference< XSingleServiceFactory > xRet;
+	Reference< XMultiServiceFactory > const xServiceManager;
+	OUString const sImplementationName;
+
+	ProviderRequest(
+		void* pServiceManager,
+		sal_Char const* pImplementationName
+	)
+	: xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
+	, sImplementationName(OUString::createFromAscii(pImplementationName))
+	{
+	}
+
+	inline
+	sal_Bool CREATE_PROVIDER(
+				const OUString& Implname, 
+				const Sequence< OUString > & Services, 
+				::cppu::ComponentInstantiation Factory,
+				createFactoryFunc creator
+			)
+	{
+		if (!xRet.is() && (Implname == sImplementationName))
+		try																							
+		{																								
+			xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);	
+		}
+		catch(...)
+=====================================================================
+Found a 35 line (143 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+Sequence<Any> createSequence(const OUString &sUser, const OUString &sPasswd)
+{
+	Sequence< Any > aCPArgs;
+		
+	if (sUser.getLength() > 0)
+	{
+		aCPArgs.realloc(1);
+		aCPArgs[0] <<= configmgr::createPropertyValue(ASCII("user"), sUser);
+	}
+	if (sPasswd.getLength() > 0)
+	{
+		aCPArgs.realloc(2);
+		aCPArgs[1] <<= configmgr::createPropertyValue(ASCII("password"), sPasswd);
+	}
+	return aCPArgs;
+}
+
+//=============================================================================
+#include <string.h>
+#if (defined UNX) || (defined OS2)
+#else
+#include <conio.h>
+#endif
+
+OString input(const char* pDefaultText, char cEcho)
+{
+	// PRE: a Default Text would be shown, cEcho is a Value which will show if a key is pressed.
+	const int MAX_INPUT_LEN = 500;
+	char aBuffer[MAX_INPUT_LEN];
+
+	strcpy(aBuffer, pDefaultText);
+	int nLen = strlen(aBuffer);
+
+#ifdef WNT
+	char ch = '\0';
+=====================================================================
+Found a 23 line (143 tokens) duplication in the following files: 
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+
+    const sal_Int32 nPointCount = bClosed ? 5 : 4;
+
+    //--------------------------------------
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(nPointCount);
+    pOuterSequenceY->realloc(nPointCount);
+	pOuterSequenceZ->realloc(nPointCount);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    for(sal_Int32 nN = nPointCount; nN--;)
+	    *pInnerSequenceZ++ = 0.0;
+=====================================================================
+Found a 31 line (143 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvasbitmap.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvasbitmap.cxx
+
+                             *rDevice.get() );
+    }
+
+    void SAL_CALL CanvasBitmap::disposing()
+    {
+        mpDevice.clear();
+
+        // forward to base
+        CanvasBitmap_Base::disposing();
+    }
+
+#define IMPLEMENTATION_NAME "VCLCanvas.CanvasBitmap"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasBitmap"
+
+    ::rtl::OUString SAL_CALL CanvasBitmap::getImplementationName(  ) throw (uno::RuntimeException)
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasBitmap::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasBitmap::getSupportedServiceNames(  ) throw (uno::RuntimeException)
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+=====================================================================
+Found a 30 line (143 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 465 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+}
+
+//==================================================================================================
+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable( void * block )
+{
+	return static_cast<void **>( block ) + 2;
+}
+
+//==================================================================================================
+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+    sal_Int32 slotCount)
+{
+    return ( slotCount + 2 ) * sizeof( void * ) + slotCount * codeSnippetSize;
+}
+
+//==================================================================================================
+void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock( void * block )
+{
+	void ** slots = mapBlockToVtable( block );
+	slots[-2] = 0;
+	slots[-1] = 0;
+
+	return slots;
+}
+
+//==================================================================================================
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+	void ** slots, unsigned char * code,
+	typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
+=====================================================================
+Found a 22 line (142 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+Starting at line 465 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+        span_pattern_filter_rgba(alloc_type& alloc,
+                                 const rendering_buffer& src, 
+                                 interpolator_type& inter,
+                                 const image_filter_lut& filter) :
+            base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 22 line (142 tokens) duplication in the following files: 
+Starting at line 495 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 518 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        weight = (weight_array[x_hr] * 
+                                  weight_array[y_hr + image_subpixel_size] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0]     += weight * *fg_ptr++;
+                            fg[1]     += weight * *fg_ptr++;
+                            fg[2]     += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr--;
+=====================================================================
+Found a 6 line (142 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+static char asse_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 14 line (142 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salmenu.h
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salmenu.h
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salmenu.h
+
+    virtual ~WinSalMenu();
+    virtual BOOL VisibleMenuBar();  // must return TRUE to actually DISPLAY native menu bars
+                            // otherwise only menu messages are processed (eg, OLE on Windows)
+
+    virtual void InsertItem( SalMenuItem* pSalMenuItem, unsigned nPos );
+    virtual void RemoveItem( unsigned nPos );
+    virtual void SetSubMenu( SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsigned nPos );
+    virtual void SetFrame( const SalFrame* pFrame );
+    virtual void CheckItem( unsigned nPos, BOOL bCheck );
+    virtual void EnableItem( unsigned nPos, BOOL bEnable );
+    virtual void SetItemText( unsigned nPos, SalMenuItem* pSalMenuItem, const XubString& rText );
+    virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage );
+    virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const KeyCode& rKeyCode, const XubString& rKeyName );
+    virtual void GetSystemMenuData( SystemMenuData* pData );
+=====================================================================
+Found a 40 line (142 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavresultset.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_resultset.cxx
+
+DynamicResultSet::DynamicResultSet(
+    const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+    const rtl::Reference< Content >& rxContent,
+    const ucb::OpenCommandArgument2& rCommand,
+    const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 29 line (142 tokens) duplication in the following files: 
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+DataSupplier::queryContentIdentifier( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+            = m_pImpl->m_aResults[ nIndex ]->xId;
+		if ( xId.is() )
+		{
+			// Already cached.
+			return xId;
+		}
+	}
+
+    rtl::OUString aId = queryContentIdentifierString( nIndex );
+	if ( aId.getLength() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+            = new ::ucbhelper::ContentIdentifier( aId );
+		m_pImpl->m_aResults[ nIndex ]->xId = xId;
+		return xId;
+	}
+    return uno::Reference< ucb::XContentIdentifier >();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContent >
+=====================================================================
+Found a 40 line (142 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgresultset.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_resultset.cxx
+
+DynamicResultSet::DynamicResultSet(
+    const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+    const rtl::Reference< Content >& rxContent,
+    const ucb::OpenCommandArgument2& rCommand,
+    const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 29 line (142 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydatasupplier.cxx
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+
+ResultSetDataSupplier::queryContentIdentifier( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+								= m_pImpl->m_aResults[ nIndex ]->xId;
+		if ( xId.is() )
+		{
+			// Already cached.
+			return xId;
+		}
+	}
+
+    rtl::OUString aId = queryContentIdentifierString( nIndex );
+	if ( aId.getLength() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+            = new ::ucbhelper::ContentIdentifier( aId );
+		m_pImpl->m_aResults[ nIndex ]->xId = xId;
+		return xId;
+	}
+    return uno::Reference< ucb::XContentIdentifier >();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContent >
+=====================================================================
+Found a 22 line (142 tokens) duplication in the following files: 
+Starting at line 2588 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 2667 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+					eState = STATE_IP6_HEXSEQ2_COLON;
+				}
+				else if (*p == '.')
+				{
+					nNumber = 100 * (nNumber >> 8) + 10 * (nNumber >> 4 & 15)
+								  + (nNumber & 15);
+					aTheCanonic.append(
+						rtl::OUString::valueOf(sal_Int32(nNumber)));
+					aTheCanonic.append(sal_Unicode('.'));
+					nOctets = 2;
+					eState = STATE_IP6_IP4_DOT;
+				}
+				else if (INetMIME::isDigit(*p) && nDigits < 3)
+				{
+					nNumber = 16 * nNumber + INetMIME::getWeight(*p);
+					++nDigits;
+				}
+				else if (INetMIME::isHexDigit(*p) && nDigits < 4)
+				{
+					nNumber = 16 * nNumber + INetMIME::getHexWeight(*p);
+					++nDigits;
+					eState = STATE_IP6_HEXSEQ2;
+=====================================================================
+Found a 9 line (142 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 995 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+    static BYTE __READONLY_DATA aURLData1[] = {
+        0,0,0,0,        // len of struct
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+    };
+=====================================================================
+Found a 28 line (142 tokens) duplication in the following files: 
+Starting at line 2122 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlform.cxx
+Starting at line 2413 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlform.cxx
+
+	nSelectEntryCnt = 1;
+	SvKeyValueIterator *pHeaderAttrs = pFormImpl->GetHeaderAttrs();
+	ScriptType eDfltScriptType = GetScriptType( pHeaderAttrs );
+	const String& rDfltScriptType = GetScriptTypeString( pHeaderAttrs );
+
+	const HTMLOptions *pOptions = GetOptions();
+	for( sal_uInt16 i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		ScriptType eScriptType = eDfltScriptType;
+		sal_uInt16 nEvent;
+		sal_Bool bSetEvent = sal_False;
+
+		switch( pOption->GetToken() )
+		{
+		case HTML_O_ID:
+			aId = pOption->GetString();
+			break;
+		case HTML_O_STYLE:
+			aStyle = pOption->GetString();
+			break;
+		case HTML_O_CLASS:
+			aClass = pOption->GetString();
+			break;
+		case HTML_O_NAME:
+			sName = pOption->GetString();
+			break;
+		case HTML_O_MULTIPLE:
+=====================================================================
+Found a 15 line (142 tokens) duplication in the following files: 
+Starting at line 2286 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2545 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2695 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2766 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
+	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
+	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
+	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
+	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
+	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
+	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
+	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
+	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
+
+	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
+	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
+	{ 0x4001, { -4020, 0x0406, 1 } },	// b
+=====================================================================
+Found a 16 line (142 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crenum.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/criface.cxx
+
+	virtual ~IdlInterfaceMethodImpl();
+	
+	// XInterface
+	virtual Any SAL_CALL queryInterface( const Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL acquire() throw();
+	virtual void SAL_CALL release() throw();
+	
+	// XTypeProvider
+	virtual Sequence< Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
+	virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+	
+	// XIdlMember
+    virtual Reference< XIdlClass > SAL_CALL getDeclaringClass() throw(::com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
+	// XIdlMethod
+    virtual Reference< XIdlClass > SAL_CALL getReturnType() throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 30 line (142 tokens) duplication in the following files: 
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/embobj.cxx
+Starting at line 7392 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+
+BOOL SvxMSDffManager::ConvertToOle2( SvStream& rStm, UINT32 nReadLen,
+					const GDIMetaFile * pMtf, const SotStorageRef& rDest )
+{
+	BOOL bMtfRead = FALSE;
+	SotStorageStreamRef xOle10Stm = rDest->OpenSotStream( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\1Ole10Native" ) ),
+													STREAM_WRITE| STREAM_SHARE_DENYALL );
+	if( xOle10Stm->GetError() )
+		return FALSE;
+
+	UINT32 nType;
+	UINT32 nRecType;
+	UINT32 nStrLen;
+	String aSvrName;
+	UINT32 nDummy0;
+	UINT32 nDummy1;
+	UINT32 nDataLen;
+	BYTE * pData;
+	UINT32 nBytesRead = 0;
+	do
+	{
+		rStm >> nType;
+		rStm >> nRecType;
+		rStm >> nStrLen;
+		if( nStrLen )
+		{
+			if( 0x10000L > nStrLen )
+			{
+				sal_Char * pBuf = new sal_Char[ nStrLen ];
+				rStm.Read( pBuf, nStrLen );
+                aSvrName.Assign( String( pBuf, (USHORT) nStrLen-1, gsl_getSystemTextEncoding() ) );
+=====================================================================
+Found a 22 line (142 tokens) duplication in the following files: 
+Starting at line 1038 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/acccfg.cxx
+Starting at line 1142 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/acccfg.cxx
+
+        }
+
+        if (xRootStorage.is())
+        {
+            css::uno::Reference< css::lang::XComponent > xComponent;
+            xComponent = css::uno::Reference< css::lang::XComponent >(xCfgMgr, css::uno::UNO_QUERY);
+            if (xComponent.is())
+                xComponent->dispose();
+            xComponent = css::uno::Reference< css::lang::XComponent >(xRootStorage, css::uno::UNO_QUERY);
+            if (xComponent.is())
+                xComponent->dispose();
+        }
+    }
+    catch(const css::uno::RuntimeException& exRun)
+        { throw exRun; }
+    catch(const css::uno::Exception&)
+        {}
+
+    GetTabDialog()->LeaveWait();
+
+    return 0;
+}
+=====================================================================
+Found a 14 line (142 tokens) duplication in the following files: 
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/pptexanimations.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/ppt/pptinanimations.cxx
+
+using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::UNO_QUERY;
+using ::com::sun::star::uno::UNO_QUERY_THROW;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::makeAny;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::XInterface;
+using ::com::sun::star::beans::NamedValue;
+using ::com::sun::star::container::XEnumerationAccess;
+using ::com::sun::star::container::XEnumeration;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+using namespace ::com::sun::star::drawing;
+=====================================================================
+Found a 39 line (142 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/warnpassword.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/warnpassword.cxx
+
+bool SwWarnPassword::WarningOnPassword( SfxMedium& rMedium )
+{
+    bool bReturn = true;
+    Reference< XInteractionHandler > xHandler( rMedium.GetInteractionHandler());
+    if( xHandler.is() )
+    {
+
+        OUString empty;
+        Any xException( makeAny(InteractiveAppException(empty,
+				Reference <XInterface> (),
+			InteractionClassification_QUERY,
+			     ERRCODE_SVX_EXPORT_FILTER_CRYPT)));
+
+        Reference< ucbhelper::SimpleInteractionRequest > xRequest
+                    = new ucbhelper::SimpleInteractionRequest(
+                        xException,
+			     ucbhelper::CONTINUATION_APPROVE
+                           | ucbhelper::CONTINUATION_DISAPPROVE );
+
+        xHandler->handle( xRequest.get() );
+
+        const sal_Int32 nResp = xRequest->getResponse();
+
+        switch ( nResp )
+        {
+		case ucbhelper::CONTINUATION_UNKNOWN:
+                break;
+
+		case ucbhelper::CONTINUATION_APPROVE:
+                // Continue
+                break;
+
+		case ucbhelper::CONTINUATION_DISAPPROVE:
+                bReturn = false;
+                break;
+        }
+    }
+    return bReturn;
+}
+=====================================================================
+Found a 17 line (142 tokens) duplication in the following files: 
+Starting at line 3353 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/dapiuno.cxx
+Starting at line 3390 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/dapiuno.cxx
+
+    uno::Any aRet;
+    String aNameString = aPropertyName;
+
+    ScDPObject* pDPObj(pParent->GetDPObject());
+    if (pDPObj)
+    {
+        uno::Reference<container::XNameAccess> xMembers;
+        ScDPSaveDimension* pDim = NULL;
+        if (lcl_GetMembers(pParent, aSourceIdent, xMembers) && lcl_GetDim(pDPObj, aSourceIdent, pDim))
+        {
+            uno::Reference<container::XIndexAccess> xMembersIndex(new ScNameToIndexAccess( xMembers ));
+            sal_Int32 nCount = xMembersIndex->getCount();
+	        if (nIndex < static_cast<SCSIZE>(nCount) )
+	        {
+                uno::Reference<container::XNamed> xMember(xMembersIndex->getByIndex(static_cast<sal_Int32>(nIndex)), uno::UNO_QUERY);
+                String sName(xMember->getName());
+                ScDPSaveMember* pMember = pDim->GetExistingMemberByName(sName);
+=====================================================================
+Found a 25 line (142 tokens) duplication in the following files: 
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+Starting at line 1019 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+
+				rRangeList.Append( aSRD );
+			}
+				break;
+			case 0x4D:
+			case 0x6D:
+			case 0x2D: // Area Reference Within a Name			[324    ]
+			{	   // Area Reference Within a Shared Formula[    274]
+				UINT16					nRowFirst, nRowLast;
+				UINT16					nColFirst, nColLast;
+
+				aCRD.Ref1.nRelTab = aCRD.Ref2.nRelTab = 0;
+				aCRD.Ref1.SetTabRel( TRUE );
+				aCRD.Ref2.SetTabRel( TRUE );
+				aCRD.Ref1.SetFlag3D( bRangeName );
+				aCRD.Ref2.SetFlag3D( bRangeName );
+
+				aIn >> nRowFirst >> nRowLast >> nColFirst >> nColLast;
+
+                ExcRelToScRel8( nRowFirst, nColFirst, aCRD.Ref1, bRNorSF );
+                ExcRelToScRel8( nRowLast, nColLast, aCRD.Ref2, bRNorSF );
+
+				if( IsComplColRange( nColFirst, nColLast ) )
+					SetComplCol( aCRD );
+				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+					SetComplRow( aCRD );
+=====================================================================
+Found a 25 line (142 tokens) duplication in the following files: 
+Starting at line 650 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+Starting at line 1149 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+
+				rRangeList.Append( aSRD );
+			}
+				break;
+			case 0x4D:
+			case 0x6D:
+			case 0x2D: // Area Reference Within a Name			[324    ]
+			{	   // Area Reference Within a Shared Formula[    274]
+				UINT16					nRowFirst, nRowLast;
+				UINT8					nColFirst, nColLast;
+
+				aCRD.Ref1.nRelTab = aCRD.Ref2.nRelTab = 0;
+				aCRD.Ref1.SetTabRel( TRUE );
+				aCRD.Ref2.SetTabRel( TRUE );
+				aCRD.Ref1.SetFlag3D( bRangeName );
+				aCRD.Ref2.SetFlag3D( bRangeName );
+
+				aIn >> nRowFirst >> nRowLast >> nColFirst >> nColLast;
+
+				ExcRelToScRel( nRowFirst, nColFirst, aCRD.Ref1, bRNorSF );
+				ExcRelToScRel( nRowLast, nColLast, aCRD.Ref2, bRNorSF );
+
+				if( IsComplColRange( nColFirst, nColLast ) )
+					SetComplCol( aCRD );
+				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+					SetComplRow( aCRD );
+=====================================================================
+Found a 26 line (142 tokens) duplication in the following files: 
+Starting at line 9549 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 11535 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 12546 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_007_Int64_Negative : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            OString                expVal( aStrBuf.getStr() );
+            sal_Int64              input = -0; 
+=====================================================================
+Found a 26 line (142 tokens) duplication in the following files: 
+Starting at line 3826 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 5816 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 6827 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_006_Int32_Negative : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            OString                expVal( aStrBuf.getStr() );
+            sal_Int32              input = -0; 
+=====================================================================
+Found a 35 line (142 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+
+    *result = '\0';
+
+    // on entry prefix is 0 length or already matches the beginning of the word.
+    // So if the remaining root word has positive length
+    // and if there are enough chars in root word and added back strip chars
+    // to meet the number of characters conditions, then test it
+
+     tmpl = len - appndl;
+
+     if ((tmpl > 0) &&  (tmpl + stripl >= numconds)) {
+
+	    // generate new root word by removing prefix and adding
+	    // back any characters that would have been stripped
+
+	    if (stripl) strcpy (tmpword, strip);
+	    strcpy ((tmpword + stripl), (word + appndl));
+
+            // now make sure all of the conditions on characters
+            // are met.  Please see the appendix at the end of
+            // this file for more info on exactly what is being
+            // tested
+
+            // if all conditions are met then check if resulting
+            // root word in the dictionary
+
+	    if (test_condition(tmpword)) {
+		tmpl += stripl;
+		if ((he = pmyMgr->lookup(tmpword)) != NULL) {
+                    do {
+		      if (TESTAFF(he->astr, aflag, he->alen) &&
+                        // forbid single prefixes with pseudoroot flag
+                        ! TESTAFF(contclass, pmyMgr->get_pseudoroot(), contclasslen) &&
+                        // needflag
+                        ((!needflag) || TESTAFF(he->astr, needflag, he->alen) ||
+                         (contclass && TESTAFF(contclass, needflag, contclasslen)))) {
+=====================================================================
+Found a 10 line (142 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 30 line (142 tokens) duplication in the following files: 
+Starting at line 829 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 865 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+
+	if ( Source.Source == m_xFrame )
+	{
+		ResetableGuard aGuard( m_aLock );
+
+		// disposing called from parent dispatcher
+		// remove all listener to prepare shutdown
+
+		// #110897#
+		// REFERENCE< XURLTransformer > xTrans( ::comphelper::getProcessServiceFactory()->createInstance(
+		//	rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), UNO_QUERY );
+		REFERENCE< XURLTransformer > xTrans( getServiceFactory()->createInstance(
+			rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), UNO_QUERY );
+
+		std::vector< MenuItemHandler* >::iterator p;
+		for ( p = m_aMenuItemHandlerVector.begin(); p != m_aMenuItemHandlerVector.end(); p++ )
+		{
+			MenuItemHandler* pItemHandler = *p;
+			if ( pItemHandler->xMenuItemDispatch.is() )
+			{
+				URL aTargetURL;
+				aTargetURL.Complete	= pItemHandler->aMenuItemURL;
+				xTrans->parseStrict( aTargetURL );
+
+				pItemHandler->xMenuItemDispatch->removeStatusListener(
+					SAL_STATIC_CAST( XSTATUSLISTENER*, this ), aTargetURL );
+			}
+
+			pItemHandler->xMenuItemDispatch = REFERENCE< XDISPATCH >();
+			if ( pItemHandler->pSubMenuManager )
+				pItemHandler->pSubMenuManager->disposing( Source );
+=====================================================================
+Found a 7 line (142 tokens) duplication in the following files: 
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olecomponent.cxx
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/ref/globname.cxx
+
+	if ( aSeq.getLength() == 16 )
+	{
+		aResult.Data1 = ( ( ( ( ( ( sal_uInt8 )aSeq[0] << 8 ) + ( sal_uInt8 )aSeq[1] ) << 8 ) + ( sal_uInt8 )aSeq[2] ) << 8 ) + ( sal_uInt8 )aSeq[3];
+		aResult.Data2 = ( ( sal_uInt8 )aSeq[4] << 8 ) + ( sal_uInt8 )aSeq[5];
+		aResult.Data3 = ( ( sal_uInt8 )aSeq[6] << 8 ) + ( sal_uInt8 )aSeq[7];
+		for( int nInd = 0; nInd < 8; nInd++ )
+			aResult.Data4[nInd] = ( sal_uInt8 )aSeq[nInd+8];
+=====================================================================
+Found a 19 line (142 tokens) duplication in the following files: 
+Starting at line 802 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/WCopyTable.cxx
+Starting at line 886 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/tabledesign/TableController.cxx
+
+	if(!_rxSup.is())
+		return; // the database doesn't support keys
+
+	OSL_ENSURE(_rxSup.is(),"No XKeysSupplier!");
+	Reference<XDataDescriptorFactory> xKeyFactory(_rxSup->getKeys(),UNO_QUERY);
+	OSL_ENSURE(xKeyFactory.is(),"No XDataDescriptorFactory Interface!");
+	if ( !xKeyFactory.is() )
+		return;
+	Reference<XAppend> xAppend(xKeyFactory,UNO_QUERY);
+	OSL_ENSURE(xAppend.is(),"No XAppend Interface!");
+
+	Reference<XPropertySet> xKey = xKeyFactory->createDataDescriptor();
+	OSL_ENSURE(xKey.is(),"Key is null!");
+	xKey->setPropertyValue(PROPERTY_TYPE,makeAny(KeyType::PRIMARY));
+
+	Reference<XColumnsSupplier> xColSup(xKey,UNO_QUERY);
+	if(xColSup.is())
+	{
+		appendColumns(xColSup,_bNew,sal_True);
+=====================================================================
+Found a 21 line (142 tokens) duplication in the following files: 
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+
+void SAL_CALL OSingleSelectQueryComposer::appendGroupByColumn( const Reference< XPropertySet >& column) throw(SQLException, RuntimeException)
+{
+	::connectivity::checkDisposed(OSubComponent::rBHelper.bDisposed);
+
+	if	( !column.is()
+		|| !m_aCurrentColumns[SelectColumns]
+		|| !column->getPropertySetInfo()->hasPropertyByName(PROPERTY_NAME)
+		)
+		{
+			String sError(DBACORE_RESSTRING(RID_STR_COLUMN_UNKNOWN_PROP));
+			sError.SearchAndReplaceAscii("%value", ::rtl::OUString(PROPERTY_NAME));
+			SQLException aErr(sError,*this,SQLSTATE_GENERAL,1000,Any() );
+			throw SQLException(DBACORE_RESSTRING(RID_STR_COLUMN_NOT_VALID),*this,SQLSTATE_GENERAL,1000,makeAny(aErr) );
+		}
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	::rtl::OUString aName,aAppendOrder;
+	column->getPropertyValue(PROPERTY_NAME)			>>= aName;
+
+	if ( !m_xMetaData->supportsGroupByUnrelated() && m_aCurrentColumns[SelectColumns] && !m_aCurrentColumns[SelectColumns]->hasByName(aName))
+=====================================================================
+Found a 20 line (142 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+Starting at line 1342 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(nPointCount);
+    pOuterSequenceY->realloc(nPointCount);
+	pOuterSequenceZ->realloc(nPointCount);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    for(sal_Int32 nN = nPointCount; nN--;)
+        *pInnerSequenceZ++ = 0.0;
+=====================================================================
+Found a 24 line (142 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/java_uno/acquire/testacquire.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/registry_tdprovider/testregistrytdprovider.cxx
+
+    return css::uno::Sequence< rtl::OUString >();
+}
+
+css::uno::Reference< css::uno::XInterface > Service::createInstance(
+    css::uno::Reference< css::uno::XComponentContext > const & context)
+    throw (css::uno::Exception)
+{
+    return static_cast< cppu::OWeakObject * >(new Service(context));
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, uno_Environment **)
+{
+    if (envTypeName != 0) {
+        *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+    }
+}
+
+extern "C" void * SAL_CALL component_getFactory(char const * implName,
+                                                void * serviceManager, void *) {
+    void * p = 0;
+    if (serviceManager != 0) {
+        css::uno::Reference< css::lang::XSingleComponentFactory > f;
+        if (Service::getImplementationName().equalsAscii(implName)) {
+=====================================================================
+Found a 32 line (142 tokens) duplication in the following files: 
+Starting at line 929 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/scriptcont.cxx
+Starting at line 1033 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/scriptcont.cxx
+
+							uno::Reference< io::XStream > xSourceStream = xElementRootStorage->openEncryptedStreamElement(
+																	aSourceStreamName,
+																	embed::ElementModes::READ,
+																	pLib->maPassword );
+							if ( !xSourceStream.is() )
+								throw uno::RuntimeException();
+
+							if ( !bVerifyPasswordOnly )
+                            {
+								uno::Reference< io::XInputStream > xInStream = xSourceStream->getInputStream();
+								if ( !xInStream.is() )
+									throw io::IOException(); // read access denied, seems to be impossible
+
+			                    Any aAny = importLibraryElement( aSourceStreamName, xInStream );
+			                    if( pLib->hasByName( aElementName ) )
+                                {
+                                    if( aAny.hasValue() )
+				                        pLib->maNameContainer.replaceByName( aElementName, aAny );
+                                }
+			                    else
+                                {
+				                    pLib->maNameContainer.insertByName( aElementName, aAny );
+                                }
+                            }
+                        }
+						catch ( uno::Exception& )
+						{
+							bRet = sal_False;
+						}
+                    }
+                }
+			}
+=====================================================================
+Found a 27 line (142 tokens) duplication in the following files: 
+Starting at line 390 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolypolygoncutter.cxx
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolypolygoncutter.cxx
+
+										maGeometry.getB2DPolygon(rNextControl.mnPoly).getNextControlPoint(rNextControl.mnPoint));
+								}
+
+								// check if last two edges build a dead end and maybe removed
+								const sal_uInt32 nNewPointCount(aNew.count());
+								
+								if(nNewPointCount > 2 && aNew.getB2DPoint(nNewPointCount - 3).equal(aNewPoint))
+								{
+									if(bControlPointsUsed)
+									{
+										// check if edges are the same including control points
+										if(aNew.getPrevControlPoint(nNewPointCount - 2).equal(aNew.getNextControlPoint(nNewPointCount - 2)))
+										{
+											if(aNew.getPrevControlPoint(nNewPointCount - 1).equal(aNew.getNextControlPoint(nNewPointCount - 3)))
+											{
+												// rescue nextControlPoint and remove
+												aNew.setNextControlPoint(nNewPointCount - 3, aNew.getNextControlPoint(nNewPointCount - 1));
+												aNew.remove(nNewPointCount - 2, 2);
+											}
+										}
+									}
+									else
+									{
+										// edges are the same, remove
+										aNew.remove(nNewPointCount - 2, 2);
+									}
+								}
+=====================================================================
+Found a 20 line (142 tokens) duplication in the following files: 
+Starting at line 996 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+Starting at line 924 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/srcview.cxx
+
+			String aLine( pTextEngine->GetText( nPara ) );
+			lcl_ConvertTabsToSpaces( aLine );
+			USHORT nLines = aLine.Len()/nCharspLine+1;
+			for ( USHORT nLine = 0; nLine < nLines; nLine++ )
+			{
+				String aTmpLine( aLine, nLine*nCharspLine, nCharspLine );
+				aPos.Y() += nLineHeight;
+				if ( aPos.Y() > ( aPaperSz.Height()+TMARGPRN ) )
+				{
+					nCurPage++;
+					pPrinter->EndPage();
+					pPrinter->StartPage();
+					lcl_PrintHeader( pPrinter, nPages, nCurPage, aTitle );
+					aPos = Point( LMARGPRN, TMARGPRN+nLineHeight );
+				}
+				pPrinter->DrawText( aPos, aTmpLine );
+			}
+			aPos.Y() += nParaSpace;
+		}
+		pPrinter->EndPage();
+=====================================================================
+Found a 25 line (141 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_rgb.h
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_rgba.h
+
+            base_type(alloc, src, offset_x, offset_y, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeY(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {   
+            color_type* span = base_type::allocator().span();
+            unsigned sx = m_wrap_mode_x(base_type::offset_x() + x);
+            const value_type* row_ptr = 
+                (const value_type*)base_type::source_image().row(
+                    m_wrap_mode_y(
+                        base_type::offset_y() + y));
+            do
+            {
+                const value_type* p = row_ptr + (sx << 2);
+=====================================================================
+Found a 18 line (141 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+            long_type fg[4];
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+            int radius_x = (diameter * base_type::m_rx) >> 1;
+            int radius_y = (diameter * base_type::m_ry) >> 1;
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                intr.coordinates(&x, &y);
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 27 line (141 tokens) duplication in the following files: 
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+
+            int y1 = int(yt * subpixel_size);
+
+            double dx;
+            double dy;
+            const double delta = 1/double(subpixel_size);
+
+            // Calculate scale by X at x1,y1
+            dx = xt + delta;
+            dy = yt;
+            m_trans_inv.transform(&dx, &dy);
+            dx -= x;
+            dy -= y;
+            int sx1 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+            // Calculate scale by Y at x1,y1
+            dx = xt;
+            dy = yt + delta;
+            m_trans_inv.transform(&dx, &dy);
+            dx -= x;
+            dy -= y;
+            int sy1 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+            // Calculate transformed coordinates at x2,y2 
+            x += len;
+            xt = x;
+            yt = y;
+            m_trans_dir.transform(&xt, &yt);
+=====================================================================
+Found a 21 line (141 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr++;
+
+                        weight = (weight_array[x_hr] * 
+=====================================================================
+Found a 19 line (141 tokens) duplication in the following files: 
+Starting at line 3227 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 4056 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+    Size aSize = ImplGetCheckImageSize();
+    nMaxWidth -= aSize.Width();
+
+    XubString aText = GetText();
+    if ( aText.Len() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+    {
+        // subtract what will be added later
+        nMaxWidth-=2;
+        nMaxWidth -= IMPL_SEP_BUTTON_IMAGE;
+
+        Size aTextSize = GetTextRect( Rectangle( Point(), Size( nMaxWidth > 0 ? nMaxWidth : 0x7fffffff, 0x7fffffff ) ),
+                                      aText, FixedText::ImplGetTextStyle( GetStyle() ) ).GetSize();
+        aSize.Width()+=2;    // for focus rect
+        aSize.Width() += IMPL_SEP_BUTTON_IMAGE;
+        aSize.Width() += aTextSize.Width();
+        if ( aSize.Height() < aTextSize.Height() )
+            aSize.Height() = aTextSize.Height();
+    }
+    else
+=====================================================================
+Found a 45 line (141 tokens) duplication in the following files: 
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+	}
+}
+
+//=========================================================================
+//=========================================================================
+//
+// DataSupplier Implementation.
+//
+//=========================================================================
+//=========================================================================
+
+DataSupplier::DataSupplier( const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+							const rtl::Reference< Content >& rContent,
+							sal_Int32 nOpenMode )
+: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) )
+{
+}
+
+//=========================================================================
+// virtual
+DataSupplier::~DataSupplier()
+{
+	delete m_pImpl;
+}
+
+//=========================================================================
+// virtual
+rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+		rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aId;
+		if ( aId.getLength() )
+		{
+			// Already cached.
+			return aId;
+		}
+	}
+
+	if ( getResult( nIndex ) )
+	{
+		rtl::OUString aId
+			= m_pImpl->m_xContent->getIdentifier()->getContentIdentifier();
+=====================================================================
+Found a 34 line (141 tokens) duplication in the following files: 
+Starting at line 459 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 347 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+                rtl::Reference< ::ucbhelper::ContentProviderImplHelper >(
+                    m_pImpl->m_xContent->getProvider().get() ),
+                queryContentIdentifierString( nIndex ) );
+		m_pImpl->m_aResults[ nIndex ]->xRow = xRow;
+		return xRow;
+	}
+
+    return uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::releasePropertyValues( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+        m_pImpl->m_aResults[ nIndex ]->xRow = uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::close()
+{
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::validate()
+    throw( ucb::ResultSetException )
+{
+    if ( m_pImpl->m_bThrowException )
+        throw ucb::ResultSetException();
+}
+=====================================================================
+Found a 51 line (141 tokens) duplication in the following files: 
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 550 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+			}
+#endif
+			else
+			{
+				// @@@ Note: If your data source supports adding/removing
+				//     properties, you should implement the interface
+				//     XPropertyContainer by yourself and supply your own
+				//     logic here. The base class uses the service
+				//     "com.sun.star.ucb.Store" to maintain Additional Core
+				//     properties. But using server functionality is preferred!
+
+				// Not a Core Property! Maybe it's an Additional Core Property?!
+
+				if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+				{
+					xAdditionalPropSet
+                        = uno::Reference< beans::XPropertySet >(
+							rProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "ContentType" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+			rData.aContentType );
+=====================================================================
+Found a 24 line (141 tokens) duplication in the following files: 
+Starting at line 963 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 2300 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    sal_Int32 nLen = aURL.getLength();
+    
+    ::ucbhelper::ContentRefList::const_iterator it  = aAllContents.begin();
+    ::ucbhelper::ContentRefList::const_iterator end = aAllContents.end();
+
+    while ( it != end )
+    {
+        ::ucbhelper::ContentImplHelperRef xChild = (*it);
+        rtl::OUString aChildURL
+            = xChild->getIdentifier()->getContentIdentifier();
+	    
+        // Is aURL a prefix of aChildURL?
+        if ( ( aChildURL.getLength() > nLen ) &&
+             ( aChildURL.compareTo( aURL, nLen ) == 0 ) )
+        {
+            sal_Int32 nPos = nLen;
+            nPos = aChildURL.indexOf( '/', nPos );
+	    
+            if ( ( nPos == -1 ) ||
+                 ( nPos == ( aChildURL.getLength() - 1 ) ) )
+            {
+                // No further slashes / only a final slash. It's a child!
+                rChildren.push_back(
+                    ::webdav_ucp::Content::ContentRef(
+=====================================================================
+Found a 15 line (141 tokens) duplication in the following files: 
+Starting at line 2606 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+Starting at line 2633 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+
+shell::getContentDeletedEventListeners( const rtl::OUString& aName )
+{
+	std::list< ContentEventNotifier* >* p = new std::list< ContentEventNotifier* >;
+	std::list< ContentEventNotifier* >& listeners = *p;
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		shell::ContentMap::iterator it = m_aContent.find( aName );
+		if( it != m_aContent.end() && it->second.notifier )
+		{
+			std::list<Notifier*>& listOfNotifiers = *( it->second.notifier );
+			std::list<Notifier*>::iterator it1 = listOfNotifiers.begin();
+			while( it1 != listOfNotifiers.end() )
+			{
+				Notifier* pointer = *it1;
+				ContentEventNotifier* notifier = pointer->cDEL();
+=====================================================================
+Found a 11 line (141 tokens) duplication in the following files: 
+Starting at line 1661 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+Starting at line 1797 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+
+    ExtTextEngine* pTextEngine = GetTextEngine();
+    ExtTextView* pTextView = GetTextView();
+    const TextSelection& rSelection = pTextView->GetSelection();
+    const TextCharAttrib* pBeginAttrib = pTextEngine->FindCharAttrib( rSelection.GetStart(), TEXTATTR_PROTECTED );
+    const TextCharAttrib* pEndAttrib = pTextEngine->FindCharAttrib( rSelection.GetEnd(), TEXTATTR_PROTECTED );
+    if(pBeginAttrib && 
+            (pBeginAttrib->GetStart() <= rSelection.GetStart().GetIndex() 
+                            && pBeginAttrib->GetEnd() >= rSelection.GetEnd().GetIndex()))
+    {
+        ULONG nPara = rSelection.GetStart().GetPara();
+        TextSelection aEntrySel(TextPaM( nPara, pBeginAttrib->GetStart()), TextPaM(nPara, pBeginAttrib->GetEnd()));
+=====================================================================
+Found a 47 line (141 tokens) duplication in the following files: 
+Starting at line 4863 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5115 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    BYTE aBits1;
+    BYTE aBits2;
+    BYTE aVer8Bits1;    // nur ab WinWord 8 benutzt
+    rSt.Seek( nOffset );
+    /*
+        Wunsch-Nr vermerken, File-Versionsnummer ermitteln
+        und gegen Wunsch-Nr. checken !
+    */
+    nVersion = nWantedVersion;
+    rSt >> wIdent;
+    rSt >> nFib;
+    rSt >> nProduct;
+    if( 0 != rSt.GetError() )
+    {
+        INT16 nFibMin;
+        INT16 nFibMax;
+        // note: 6 stands for "6 OR 7",  7 stands for "ONLY 7"
+        switch( nVersion )
+        {
+            case 6:
+                nFibMin = 0x0065;   // von 101 WinWord 6.0
+                                    //     102    "
+                                    // und 103 WinWord 6.0 fuer Macintosh
+                                    //     104    "
+                nFibMax = 0x0069;   // bis 105 WinWord 95
+                break;
+            case 7:
+                nFibMin = 0x0069;   // von 105 WinWord 95
+                nFibMax = 0x0069;   // bis 105 WinWord 95
+                break;
+            case 8:
+                nFibMin = 0x006A;   // von 106 WinWord 97
+                nFibMax = 0x00c1;   // bis 193 WinWord 97 (?)
+                break;
+            default:
+                nFibMin = 0;            // Programm-Fehler!
+                nFibMax = 0;
+                nFib    = 1;
+                ASSERT( !this, "Es wurde vergessen, nVersion zu kodieren!" );
+                break;
+        }
+        if ( (nFib < nFibMin) || (nFib > nFibMax) )
+        {
+            nFibError = ERR_SWG_READ_ERROR; // Error melden
+            return;                         // und hopp raus!
+        }
+    }
+=====================================================================
+Found a 9 line (141 tokens) duplication in the following files: 
+Starting at line 1799 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 1882 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2217 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 },	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+	
+	{ 0x16 MSO_I, 10800 }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 21 line (141 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+IMPL_LINK( SvInsertAppletDialog, BrowseHdl, PushButton *, EMPTYARG )
+{
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add filter
+            try
+            {
+                xFilterMgr->appendFilter(
+                     OUString( RTL_CONSTASCII_USTRINGPARAM( "Applet" ) ),
+=====================================================================
+Found a 21 line (141 tokens) duplication in the following files: 
+Starting at line 4670 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4254 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] =
+{
+	{ 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 4300 }, { 4300, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] = 
+{
+	{ { 0, 4300 }, { 21600, 21600 } }
+};
+static const mso_CustomShape msoFlowChartPunchedCard =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartPunchedCardVert, sizeof( mso_sptFlowChartPunchedCardVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartPunchedCardTextRect, sizeof( mso_sptFlowChartPunchedCardTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 21 line (141 tokens) duplication in the following files: 
+Starting at line 4648 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4233 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 },
+	{ 0, 17150 }, { 0, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] = 
+{
+	{ { 0, 0 }, { 21600, 17150 } }
+};
+static const mso_CustomShape msoFlowChartOffpageConnector =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartOffpageConnectorVert, sizeof( mso_sptFlowChartOffpageConnectorVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartOffpageConnectorTextRect, sizeof( mso_sptFlowChartOffpageConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 9 line (141 tokens) duplication in the following files: 
+Starting at line 2068 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2262 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2350 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2493 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
+	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
+	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
+	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
+	{ 0, 21600 }, { 0, 0 },	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
+
+	{ 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+=====================================================================
+Found a 20 line (141 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
+{
+	{ { 3200, 3200 }, { 18400, 18400 } }
+};
+static const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
+{
+	{ 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }
+};
+static const mso_CustomShape msoEllipse =
+{
+	NULL, 0,
+	NULL, 0, 
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 21 line (141 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+
+IMPL_LINK( SvInsertAppletDlg, BrowseHdl, PushButton *, EMPTYARG )
+{
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add filter
+            try
+            {
+                xFilterMgr->appendFilter(
+                     OUString( RTL_CONSTASCII_USTRINGPARAM( "Applet" ) ),
+=====================================================================
+Found a 26 line (141 tokens) duplication in the following files: 
+Starting at line 953 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+Starting at line 1134 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+void ScDBFunc::GroupDataPilot()
+{
+    ScDPObject* pDPObj = GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
+                                        GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
+    if ( pDPObj )
+    {
+        StrCollection aEntries;
+        long nSelectDimension = -1;
+        GetSelectedMemberList( aEntries, nSelectDimension );
+
+        if ( aEntries.GetCount() > 0 )
+        {
+            BOOL bIsDataLayout;
+            String aDimName = pDPObj->GetDimName( nSelectDimension, bIsDataLayout );
+
+            ScDPSaveData aData( *pDPObj->GetSaveData() );
+            ScDPDimensionSaveData* pDimData = aData.GetDimensionData();     // created if not there
+
+            // find original base
+            String aBaseDimName( aDimName );
+            const ScDPSaveGroupDimension* pBaseGroupDim = pDimData->GetNamedGroupDim( aDimName );
+            if ( pBaseGroupDim )
+            {
+                // any entry's SourceDimName is the original base
+                aBaseDimName = pBaseGroupDim->GetSourceDimName();
+            }
+=====================================================================
+Found a 22 line (141 tokens) duplication in the following files: 
+Starting at line 925 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+Starting at line 1367 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+
+					USHORT	cBottom	= ( pPattern->FrameColor & 0xF000 ) >> 12;
+
+					lcl_ChangeColor( cLeft, ColorLeft );
+					lcl_ChangeColor( cTop, ColorTop );
+					lcl_ChangeColor( cRight, ColorRight );
+					lcl_ChangeColor( cBottom, ColorBottom );
+
+					SvxBorderLine	aLine;
+                    SvxBoxItem      aBox( ATTR_BORDER );
+
+					aLine.SetOutWidth( nLeft );
+					aLine.SetColor( ColorLeft );
+					aBox.SetLine( &aLine, BOX_LINE_LEFT );
+					aLine.SetOutWidth( nTop );
+					aLine.SetColor( ColorTop );
+					aBox.SetLine( &aLine, BOX_LINE_TOP );
+					aLine.SetOutWidth( nRight );
+					aLine.SetColor( ColorRight );
+					aBox.SetLine( &aLine, BOX_LINE_RIGHT );
+					aLine.SetOutWidth( nBottom );
+					aLine.SetColor( ColorBottom );
+					aBox.SetLine( &aLine, BOX_LINE_BOTTOM );
+=====================================================================
+Found a 24 line (141 tokens) duplication in the following files: 
+Starting at line 1076 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/html/htmlpars.cxx
+Starting at line 1134 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/html/htmlpars.cxx
+
+        nTableWidth = 0;
+        if ( pInfo->nToken == HTML_TABLE_ON )
+        {   // es kann auch TD oder TH sein, wenn es vorher kein TABLE gab
+            const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions();
+            USHORT nArrLen = pOptions->Count();
+            for ( USHORT i = 0; i < nArrLen; i++ )
+            {
+                const HTMLOption* pOption = (*pOptions)[i];
+                switch( pOption->GetToken() )
+                {
+                    case HTML_O_WIDTH:
+                    {   // Prozent: von Dokumentbreite bzw. aeusserer Zelle
+                        nTableWidth = GetWidthPixel( pOption );
+                    }
+                    break;
+                    case HTML_O_BORDER:
+                        bBorderOn = ((pOption->GetString().Len() == 0) || (pOption->GetNumber() != 0));
+                    break;
+                    case HTML_O_ID:
+                        aTabName.Assign( pOption->GetString() );
+                    break;
+                }
+            }
+        }
+=====================================================================
+Found a 36 line (141 tokens) duplication in the following files: 
+Starting at line 802 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+
+			case 0x3B: // 3-D Area Reference					[    276]
+			{
+				UINT16		nTabFirst, nTabLast, nRowFirst, nRowLast;
+				INT16		nExtSheet;
+				BYTE		nColFirst, nColLast;
+
+				aIn >> nExtSheet;
+                aIn.Ignore( 8 );
+				aIn >> nTabFirst >> nTabLast >> nRowFirst >> nRowLast
+					>> nColFirst >> nColLast;
+
+				if( nExtSheet >= 0 )
+					// von extern
+				{
+                    if( rR.pExtSheetBuff->GetScTabIndex( nExtSheet, nTabLast ) )
+					{
+						nTabFirst = nTabLast;
+						nExtSheet = 0;		// gefunden
+					}
+					else
+					{
+						aPool << ocBad;
+						aPool >> aStack;
+						nExtSheet = 1;		// verhindert Erzeugung einer CompleteRef
+					}
+				}
+
+				if( nExtSheet <= 0 )
+				{// in aktuellem Workbook
+					// erster Teil des Bereichs
+					SingleRefData	&rR1 = aCRD.Ref1;
+					SingleRefData	&rR2 = aCRD.Ref2;
+
+					rR1.nTab = static_cast<SCTAB>(nTabFirst);
+					rR2.nTab = static_cast<SCTAB>(nTabLast);
+					rR1.SetFlag3D( ( static_cast<SCTAB>(nTabFirst) != aEingPos.Tab() ) || bRangeName );
+=====================================================================
+Found a 30 line (141 tokens) duplication in the following files: 
+Starting at line 4116 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 4293 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+				 nRow4 - nRow3 != nRow2 - nRow1 || nCol1 > nCol2)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		if (nGlobalError == 0)
+		{
+			ScQueryParam rParam;
+			rParam.nRow1       = nRow1;
+			rParam.nRow2       = nRow2;
+
+			ScQueryEntry& rEntry = rParam.GetEntry(0);
+			rEntry.bDoQuery = TRUE;
+			if (!bIsString)
+			{
+				rEntry.bQueryByString = FALSE;
+				rEntry.nVal = fVal;
+				rEntry.eOp = SC_EQUAL;
+			}
+			else
+			{
+				rParam.FillInExcelSyntax(rString, 0);
+				sal_uInt32 nIndex = 0;
+				rEntry.bQueryByString =
+					!(pFormatter->IsNumberFormat(
+						*rEntry.pStr, nIndex, rEntry.nVal));
+				if ( rEntry.bQueryByString )
+                    rParam.bRegExp = MayBeRegExp( *rEntry.pStr, pDok );
+			}
+			double fSum = 0.0;
+=====================================================================
+Found a 21 line (141 tokens) duplication in the following files: 
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+Starting at line 590 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+
+            pKeyBuffer[0] = 1;
+
+            sal_uInt32     nArgLen = 16;
+            sal_uInt8     *pArgBuffer = new sal_uInt8[ nArgLen ];
+            memset(pArgBuffer, 0, nArgLen);
+
+            t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
+            CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
+
+            t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            delete [] pArgBuffer;
+            delete [] pKeyBuffer;
+
+            rtl_cipher_destroy(aCipher);
+        }
+    void init_003()
+=====================================================================
+Found a 28 line (141 tokens) duplication in the following files: 
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+int Hunspell::cleanword(char * dest, const char * src, 
+    int * pcaptype, int * pabbrev)
+{ 
+   unsigned char * p = (unsigned char *) dest;
+   const unsigned char * q = (const unsigned char * ) src;
+   int firstcap = 0;
+
+   // first skip over any leading blanks
+   while ((*q != '\0') && (*q == ' ')) q++;
+   
+   // now strip off any trailing periods (recording their presence)
+   *pabbrev = 0;
+   int nl = strlen((const char *)q);
+   while ((nl > 0) && (*(q+nl-1)=='.')) {
+       nl--;
+       (*pabbrev)++;
+   }
+   
+   // if no characters are left it can't be capitalized
+   if (nl <= 0) { 
+       *pcaptype = NOCAP;
+       *p = '\0';
+       return 0;
+   }
+
+   // now determine the capitalization type of the first nl letters
+   int ncap = 0;
+   int nneutral = 0;
+=====================================================================
+Found a 19 line (141 tokens) duplication in the following files: 
+Starting at line 709 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2265 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xc0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+{ 0x01, 0xf1, 0xd1 },
+{ 0x00, 0xd2, 0xd2 },
+=====================================================================
+Found a 31 line (141 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/lex.c
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_lex.c
+
+		 {-1, "", 0}
+};
+
+/* first index is char, second is state */
+/* increase #states to power of 2 to encourage use of shift */
+short bigfsm[256][MAXSTATE];
+
+void
+    expandlex(void)
+{
+     /* const */ struct fsm *fp;
+    int i, j, nstate;
+
+    for (fp = fsm; fp->state >= 0; fp++)
+    {
+        for (i = 0; fp->ch[i]; i++)
+        {
+            nstate = fp->nextstate;
+            if (nstate >= S_SELF)
+                nstate = ~nstate;
+            switch (fp->ch[i])
+            {
+
+                case C_XX:              /* random characters */
+                    for (j = 0; j < 256; j++)
+                        bigfsm[j][fp->state] = (short) nstate;
+                    continue;
+                case C_ALPH:
+                    for (j = 0; j <= 256; j++)
+#ifdef S390
+						if( isalpha( j ) || (j == '_') )
+=====================================================================
+Found a 25 line (141 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 554 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+
+	{ 0x307c, 0x307d },	// 0x307b HIRAGANA LETTER HO --> HIRAGANA LETTER BO or HIRAGANA LETTER PO
+	{ 0x0000, 0x0000 },	// 0x307c HIRAGANA LETTER BO
+	{ 0x0000, 0x0000 },	// 0x307d HIRAGANA LETTER PO
+	{ 0x0000, 0x0000 },	// 0x307e HIRAGANA LETTER MA
+	{ 0x0000, 0x0000 },	// 0x307f HIRAGANA LETTER MI
+	{ 0x0000, 0x0000 },	// 0x3080 HIRAGANA LETTER MU
+	{ 0x0000, 0x0000 },	// 0x3081 HIRAGANA LETTER ME
+	{ 0x0000, 0x0000 },	// 0x3082 HIRAGANA LETTER MO
+	{ 0x0000, 0x0000 },	// 0x3083 HIRAGANA LETTER SMALL YA
+	{ 0x0000, 0x0000 },	// 0x3084 HIRAGANA LETTER YA
+	{ 0x0000, 0x0000 },	// 0x3085 HIRAGANA LETTER SMALL YU
+	{ 0x0000, 0x0000 },	// 0x3086 HIRAGANA LETTER YU
+	{ 0x0000, 0x0000 },	// 0x3087 HIRAGANA LETTER SMALL YO
+	{ 0x0000, 0x0000 },	// 0x3088 HIRAGANA LETTER YO
+	{ 0x0000, 0x0000 },	// 0x3089 HIRAGANA LETTER RA
+	{ 0x0000, 0x0000 },	// 0x308a HIRAGANA LETTER RI
+	{ 0x0000, 0x0000 },	// 0x308b HIRAGANA LETTER RU
+	{ 0x0000, 0x0000 },	// 0x308c HIRAGANA LETTER RE
+	{ 0x0000, 0x0000 },	// 0x308d HIRAGANA LETTER RO
+	{ 0x0000, 0x0000 },	// 0x308e HIRAGANA LETTER SMALL WA
+	{ 0x0000, 0x0000 },	// 0x308f HIRAGANA LETTER WA
+	{ 0x0000, 0x0000 },	// 0x3090 HIRAGANA LETTER WI
+	{ 0x0000, 0x0000 },	// 0x3091 HIRAGANA LETTER WE
+	{ 0x0000, 0x0000 },	// 0x3092 HIRAGANA LETTER WO
+	{ 0x0000, 0x0000 },	// 0x3093 HIRAGANA LETTER N
+=====================================================================
+Found a 74 line (141 tokens) duplication in the following files: 
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+=====================================================================
+Found a 7 line (141 tokens) duplication in the following files: 
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 74 line (141 tokens) duplication in the following files: 
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+/* RES_GRFATR_ROTATION */			0,
+/* RES_GRFATR_LUMINANCE */			0,
+/* RES_GRFATR_CONTRAST */			0,
+/* RES_GRFATR_CHANNELR */			0,
+/* RES_GRFATR_CHANNELG */			0,
+/* RES_GRFATR_CHANNELB */			0,
+/* RES_GRFATR_GAMMA */				0,
+/* RES_GRFATR_INVERT */				0,
+/* RES_GRFATR_TRANSPARENCY */		0,
+/* RES_GRFATR_DRWAMODE */			0,
+/* RES_GRFATR_DUMMY1 */				0,
+/* RES_GRFATR_DUMMY2 */				0,
+/* RES_GRFATR_DUMMY3 */				0,
+/* RES_GRFATR_DUMMY4 */				0,
+/* RES_GRFATR_DUMMY5 */				0,
+=====================================================================
+Found a 5 line (141 tokens) duplication in the following files: 
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 896 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 6 line (141 tokens) duplication in the following files: 
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 0, 0, 0, 0, 6, 6,26,26, 4, 4, 0,// 3090 - 309f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30a0 - 30af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30b0 - 30bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30c0 - 30cf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30d0 - 30df
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 30e0 - 30ef
+=====================================================================
+Found a 6 line (141 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1730 - 173f
+=====================================================================
+Found a 4 line (141 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0518 - 051f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0520 - 0527
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 0528 - 052f
+    {0x00, 0x0000}, {0x6a, 0x0561}, {0x6a, 0x0562}, {0x6a, 0x0563}, {0x6a, 0x0564}, {0x6a, 0x0565}, {0x6a, 0x0566}, {0x6a, 0x0567}, // 0530 - 0537
+=====================================================================
+Found a 5 line (141 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 8, 8, 6, 6, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+=====================================================================
+Found a 20 line (141 tokens) duplication in the following files: 
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/bmkmenu.cxx
+Starting at line 723 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/templwin.cxx
+
+(
+	Sequence< PropertyValue >& aDynamicMenuEntry,
+	::rtl::OUString& rTitle,
+	::rtl::OUString& rURL,
+    ::rtl::OUString& rFrame,
+	::rtl::OUString& rImageId
+)
+{
+	for ( int i = 0; i < aDynamicMenuEntry.getLength(); i++ )
+	{
+		if ( aDynamicMenuEntry[i].Name == DYNAMICMENU_PROPERTYNAME_URL )
+			aDynamicMenuEntry[i].Value >>= rURL;
+		else if ( aDynamicMenuEntry[i].Name == DYNAMICMENU_PROPERTYNAME_TITLE )
+			aDynamicMenuEntry[i].Value >>= rTitle;
+		else if ( aDynamicMenuEntry[i].Name == DYNAMICMENU_PROPERTYNAME_IMAGEIDENTIFIER )
+			aDynamicMenuEntry[i].Value >>= rImageId;
+		else if ( aDynamicMenuEntry[i].Name == DYNAMICMENU_PROPERTYNAME_TARGETNAME )
+			aDynamicMenuEntry[i].Value >>= rFrame;
+	}
+}
+=====================================================================
+Found a 5 line (141 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 8, 8, 6, 6, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+=====================================================================
+Found a 20 line (141 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/InputStream.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Reader.cxx
+
+void SAL_CALL java_io_Reader::closeInput(  ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv )
+	{
+		static const char * cSignature = "()V";
+		static const char * cMethodName = "close";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID )
+		{
+			t.pEnv->CallVoidMethod( object, mID);
+			ThrowSQLException(t.pEnv,*this);
+		}
+	} //t.pEnv
+}
+// -----------------------------------------------------
+sal_Int32 SAL_CALL java_io_Reader::readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 33 line (141 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+
+sal_Bool CunoOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) 
+	throw( IllegalArgument )
+{
+	sal_Bool 	ret = sal_True;
+	sal_uInt16	i=0;
+
+	if (!bCmdFile)
+	{
+		bCmdFile = sal_True;
+		
+		m_program = av[0];
+
+		if (ac < 2)
+		{
+			fprintf(stderr, "%s", prepareHelp().getStr());
+			ret = sal_False;
+		}
+
+		i = 1;
+	} else
+	{
+		i = 0;
+	}
+
+	char	*s=NULL;
+	for (i; i < ac; i++)
+	{
+		if (av[i][0] == '-')
+		{
+			switch (av[i][1])
+			{
+				case 'O':
+					if (av[i][2] == 'C')
+=====================================================================
+Found a 18 line (141 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VPolarCoordinateSystem.cxx
+
+void VPolarCoordinateSystem::updateScalesAndIncrementsOnAxes()
+{
+    if(!m_xLogicTargetForAxes.is() || !m_xFinalTarget.is() || !m_xCooSysModel.is() )
+        return;
+
+    sal_Int32 nDimensionCount = m_xCooSysModel->getDimension();
+    bool bSwapXAndY = this->getPropertySwapXAndYAxis();
+
+    tVAxisMap::iterator aIt( m_aAxisMap.begin() );
+    tVAxisMap::const_iterator aEnd( m_aAxisMap.end() );
+    for( ; aIt != aEnd; ++aIt )
+    {
+        VAxisBase* pVAxis = aIt->second.get();
+        if( pVAxis )
+        {
+            sal_Int32 nDimensionIndex = aIt->first.first;
+            sal_Int32 nAxisIndex = aIt->first.second;
+            pVAxis->setExplicitScaleAndIncrement( this->getExplicitScale( nDimensionIndex, nAxisIndex ), this->getExplicitIncrement(nDimensionIndex, nAxisIndex) );
+=====================================================================
+Found a 37 line (141 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/AreaWrapper.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+
+    RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart.ChartArea" ));
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::FillProperties::AddPropertiesToVector( aProperties );
+//         ::chart::NamedProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+} // anonymous namespace
+
+// --------------------------------------------------------------------------------
+
+namespace chart
+{
+namespace wrapper
+{
+=====================================================================
+Found a 23 line (141 tokens) duplication in the following files: 
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+        *pPT++ = 'I';
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut 
+                    && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 39 line (141 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+	sal_Int32 nFunctionIndex,
+        sal_Int32 nVtableOffset,
+        void ** gpreg, void ** fpreg, void ** ovrflw,
+=====================================================================
+Found a 44 line (140 tokens) duplication in the following files: 
+Starting at line 36976 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 38441 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+OOXMLContext_wordprocessingml_CT_TblCellMar::element(TokenEnum_t nToken)
+{
+    OOXMLContext::Pointer_t pResult;
+    
+    switch (nToken)
+    {
+     case OOXML_ELEMENT_wordprocessingml_top:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_left:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_bottom:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_right:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblWidth(*this));
+         }
+             break;
+     case OOXML_TOKENS_END:
+         break;
+     default:
+         pResult = elementFromRefs(nToken);
+              break;
+     }
+
+    if (pResult.get() != NULL)
+        pResult->setToken(nToken);
+
+    return pResult;
+}
+     
+bool OOXMLContext_wordprocessingml_CT_TblCellMar::lcl_attribute(TokenEnum_t /*nToken*/, const rtl::OUString & /*rValue*/)
+=====================================================================
+Found a 44 line (140 tokens) duplication in the following files: 
+Starting at line 28401 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 46493 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+OOXMLContext_wordprocessingml_CT_DivBdr::element(TokenEnum_t nToken)
+{
+    OOXMLContext::Pointer_t pResult;
+    
+    switch (nToken)
+    {
+     case OOXML_ELEMENT_wordprocessingml_top:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_left:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_bottom:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_right:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_TOKENS_END:
+         break;
+     default:
+         pResult = elementFromRefs(nToken);
+              break;
+     }
+
+    if (pResult.get() != NULL)
+        pResult->setToken(nToken);
+
+    return pResult;
+}
+     
+bool OOXMLContext_wordprocessingml_CT_DivBdr::lcl_attribute(TokenEnum_t /*nToken*/, const rtl::OUString & /*rValue*/)
+=====================================================================
+Found a 39 line (140 tokens) duplication in the following files: 
+Starting at line 20649 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 20832 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_Shd(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_color:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_HexColor(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_themeColor:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_ThemeColor(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_themeTint:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_UcharHexNumber(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_themeShade:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_UcharHexNumber(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_fill:
+=====================================================================
+Found a 17 line (140 tokens) duplication in the following files: 
+Starting at line 891 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi.cxx
+Starting at line 716 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salobj.cxx
+
+	ULONG nRectBufSize = sizeof(RECT)*nRectCount;
+	if ( nRectCount < SAL_CLIPRECT_COUNT )
+	{
+		if ( !mpStdClipRgnData )
+			mpStdClipRgnData = (RGNDATA*)new BYTE[sizeof(RGNDATA)-1+(SAL_CLIPRECT_COUNT*sizeof(RECT))];
+		mpClipRgnData = mpStdClipRgnData;
+	}
+	else
+		mpClipRgnData = (RGNDATA*)new BYTE[sizeof(RGNDATA)-1+nRectBufSize];
+	mpClipRgnData->rdh.dwSize	  = sizeof( RGNDATAHEADER );
+	mpClipRgnData->rdh.iType	  = RDH_RECTANGLES;
+	mpClipRgnData->rdh.nCount	  = nRectCount;
+	mpClipRgnData->rdh.nRgnSize  = nRectBufSize;
+	SetRectEmpty( &(mpClipRgnData->rdh.rcBound) );
+	mpNextClipRect 		  = (RECT*)(&(mpClipRgnData->Buffer));
+	mbFirstClipRect		  = TRUE;
+}
+=====================================================================
+Found a 7 line (140 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+
+   0xfe, 0xf9, 0x01, 0x00, 0xfe, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x00, 0x00,
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 6 line (140 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+
+ 0x00,0xf8,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 17 line (140 tokens) duplication in the following files: 
+Starting at line 7331 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 7401 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+    m_aPages.back().appendPoint( aPoints[11], aLine );
+    aLine.append( ' ' );
+    m_aPages.back().appendPoint( aPoints[0], aLine );
+    aLine.append( ' ' );
+    m_aPages.back().appendPoint( aPoints[1], aLine );
+    aLine.append( " c " );
+
+    if( m_aGraphicsStack.front().m_aLineColor != Color( COL_TRANSPARENT ) &&
+        m_aGraphicsStack.front().m_aFillColor != Color( COL_TRANSPARENT ) )
+        aLine.append( "b*\n" );
+    else if( m_aGraphicsStack.front().m_aLineColor != Color( COL_TRANSPARENT ) )
+        aLine.append( "s\n" );
+    else
+        aLine.append( "f*\n" );
+
+    writeBuffer( aLine.getStr(), aLine.getLength() );
+}
+=====================================================================
+Found a 23 line (140 tokens) duplication in the following files: 
+Starting at line 963 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+
+	sal_Int32 nLen = aURL.getLength();
+
+	::ucbhelper::ContentRefList::const_iterator it  = aAllContents.begin();
+	::ucbhelper::ContentRefList::const_iterator end = aAllContents.end();
+
+	while ( it != end )
+	{
+		::ucbhelper::ContentImplHelperRef xChild = (*it);
+        rtl::OUString aChildURL
+            = xChild->getIdentifier()->getContentIdentifier();
+
+		// Is aURL a prefix of aChildURL?
+		if ( ( aChildURL.getLength() > nLen ) &&
+			 ( aChildURL.compareTo( aURL, nLen ) == 0 ) )
+		{
+			sal_Int32 nPos = nLen;
+			nPos = aChildURL.indexOf( '/', nPos );
+
+			if ( ( nPos == -1 ) ||
+				 ( nPos == ( aChildURL.getLength() - 1 ) ) )
+			{
+				// No further slashes/ only a final slash. It's a child!
+				rChildren.push_back(
+=====================================================================
+Found a 37 line (140 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/filinpstr.cxx
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/inputstream.cxx
+
+		m_bIsOpen = false;
+	}
+}
+
+
+void SAL_CALL
+XInputStream_impl::seek(
+	sal_Int64 location )
+	throw( lang::IllegalArgumentException,
+		   io::IOException,
+		   uno::RuntimeException )
+{
+	if( location < 0 )
+		throw lang::IllegalArgumentException();
+	if( osl::FileBase::E_None != m_aFile.setPos( Pos_Absolut, sal_uInt64( location ) ) )
+		throw io::IOException();
+}
+
+
+sal_Int64 SAL_CALL
+XInputStream_impl::getPosition(
+	void )
+	throw( io::IOException,
+		   uno::RuntimeException )
+{
+	sal_uInt64 uPos;
+	if( osl::FileBase::E_None != m_aFile.getPos( uPos ) )
+		throw io::IOException();
+	return sal_Int64( uPos );
+}
+
+sal_Int64 SAL_CALL
+XInputStream_impl::getLength(
+	void )
+	throw( io::IOException,
+		   uno::RuntimeException )
+{
+=====================================================================
+Found a 20 line (140 tokens) duplication in the following files: 
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1680 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+        *pStr >> nPLCFfLen;
+    ASSERT( 65536 > nPLCFfLen, "PLCFfpcd ueber 64 k" );
+    return new WW8PLCFpcd( pStr, pStr->Tell(), nPLCFfLen, 8 );
+}
+
+void WW8ScannerBase::DeletePieceTable()
+{
+    if( pPieceGrpprls )
+    {
+        for( BYTE** p = pPieceGrpprls; *p; p++ )
+            delete[] (*p);
+        delete[] pPieceGrpprls;
+        pPieceGrpprls = 0;
+    }
+}
+
+WW8ScannerBase::WW8ScannerBase( SvStream* pSt, SvStream* pTblSt,
+    SvStream* pDataSt, const WW8Fib* pWwFib )
+    : pWw8Fib(pWwFib), pMainFdoa(0), pHdFtFdoa(0), pMainTxbx(0),
+    pMainTxbxBkd(0), pHdFtTxbx(0), pHdFtTxbxBkd(0), pMagicTables(0),
+=====================================================================
+Found a 18 line (140 tokens) duplication in the following files: 
+Starting at line 3408 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/swparrtf.cxx
+Starting at line 3475 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/swparrtf.cxx
+
+			pPgFmt->SetAttr( aLR );
+			pPgFmt->SetAttr( aUL );
+			pPgFmt->SetAttr( aSz );
+			::lcl_SetFmtCol( *pPgFmt, nCols, nColSpace, aColumns );
+			if( pPgFmt->GetHeader().GetHeaderFmt() )
+			{
+				SwFrmFmt* pHFmt = (SwFrmFmt*)pPgFmt->GetHeader().GetHeaderFmt();
+				pHFmt->SetAttr( aHUL );
+				pHFmt->SetAttr( aHLR );
+				pHFmt->SetAttr( aHSz );
+			}
+			if( pPgFmt->GetFooter().GetFooterFmt() )
+			{
+				SwFrmFmt* pFFmt = (SwFrmFmt*)pPgFmt->GetFooter().GetFooterFmt();
+				pFFmt->SetAttr( aHUL );
+				pFFmt->SetAttr( aHLR );
+				pFFmt->SetAttr( aHSz );
+			}
+=====================================================================
+Found a 20 line (140 tokens) duplication in the following files: 
+Starting at line 2072 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtfatr.cxx
+Starting at line 2319 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+            SwWriteTableCell* pCell = rCells[nBox];
+            const bool bProcessCoveredCell = bNewTableModel && 0 == pCell->GetRowSpan();
+
+            if( !pRowSpans[ nColCnt ] || bProcessCoveredCell )
+            {
+                // set new BoxPtr
+                nBox++;
+                pBoxArr[ nColCnt ] = pCell;
+                if ( !bProcessCoveredCell )
+                    pRowSpans[ nColCnt ] = pCell->GetRowSpan();
+                for( USHORT nCellSpan = pCell->GetColSpan(), nCS = 1;
+                        nCS < nCellSpan; ++nCS, ++nColCnt )
+                {
+                    ASSERT( nColCnt+1 < rCols.Count(), "More colspan than columns" );
+                    if( nColCnt+1 < rCols.Count() ) // robust against wrong colspans
+                    {
+                        pBoxArr[ nColCnt+1 ] = pBoxArr[ nColCnt ];
+                        pRowSpans[ nColCnt+1 ] = pRowSpans[ nColCnt ];
+                    }
+                }
+=====================================================================
+Found a 30 line (140 tokens) duplication in the following files: 
+Starting at line 3447 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4801 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+void SwHTMLParser::NewCharFmt( int nToken )
+{
+	String aId, aStyle, aClass, aLang, aDir;
+
+	const HTMLOptions *pOptions = GetOptions();
+	for( USHORT i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		switch( pOption->GetToken() )
+		{
+		case HTML_O_ID:
+			aId = pOption->GetString();
+			break;
+		case HTML_O_STYLE:
+			aStyle = pOption->GetString();
+			break;
+		case HTML_O_CLASS:
+			aClass = pOption->GetString();
+			break;
+		case HTML_O_LANG:
+			aLang = pOption->GetString();
+			break;
+		case HTML_O_DIR:
+			aDir = pOption->GetString();
+			break;
+		}
+	}
+
+	// einen neuen Kontext anlegen
+	_HTMLAttrContext *pCntxt = new _HTMLAttrContext( nToken );
+=====================================================================
+Found a 43 line (140 tokens) duplication in the following files: 
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undraw.cxx
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undraw.cxx
+
+		SwUndoGroupObjImpl& rSave = *( pObjArr + n );
+
+        // --> OD 2006-11-01 #130889# - taken over by <SwUndoDrawUnGroupConnectToLayout>
+//        SwDrawContact* pContact = (SwDrawContact*)rSave.pFmt->FindContactObj();
+
+//        rSave.pObj = pContact->GetMaster();
+
+//        //loescht sich selbst!
+//        pContact->Changed( *rSave.pObj, SDRUSERCALL_DELETE,
+//                           rSave.pObj->GetLastBoundRect() );
+//        rSave.pObj->SetUserCall( 0 );
+        // <--
+
+		::lcl_SaveAnchor( rSave.pFmt, rSave.nNodeIdx );
+
+		// alle Uno-Objecte sollten sich jetzt abmelden
+		::lcl_SendRemoveToUno( *rSave.pFmt );
+
+		rFlyFmts.Remove( rFlyFmts.GetPos( rSave.pFmt ));
+	}
+
+	// das Group-Object wieder einfuegen
+	::lcl_RestoreAnchor( pObjArr->pFmt, pObjArr->nNodeIdx );
+	rFlyFmts.Insert( pObjArr->pFmt, rFlyFmts.Count() );
+
+	SwDrawContact *pContact = new SwDrawContact( pObjArr->pFmt, pObjArr->pObj );
+	pContact->ConnectToLayout();
+    // --> OD 2005-03-22 #i45718# - follow-up of #i35635#
+    // move object to visible layer
+    pContact->MoveObjToVisibleLayer( pObjArr->pObj );
+    // <--
+    // --> OD 2005-05-10 #i45952# - notify that position attributes
+    // are already set
+    ASSERT( pObjArr->pFmt->ISA(SwDrawFrmFmt),
+            "<SwUndoDrawGroup::Undo(..)> - wrong type of frame format for drawing object" );
+    if ( pObjArr->pFmt->ISA(SwDrawFrmFmt) )
+    {
+        static_cast<SwDrawFrmFmt*>(pObjArr->pFmt)->PosAttrSet();
+    }
+    // <--
+}
+
+void SwUndoDrawUnGroup::Redo( SwUndoIter& )
+=====================================================================
+Found a 11 line (140 tokens) duplication in the following files: 
+Starting at line 829 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+Starting at line 841 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+	FrPair aS(GetInchOrMM(eS));
+	FrPair aD(GetInchOrMM(eD));
+	FASTBOOL bSInch=IsInch(eS);
+	FASTBOOL bDInch=IsInch(eD);
+	FrPair aRet(aD.X()/aS.X(),aD.Y()/aS.Y());
+	if (bSInch && !bDInch) { aRet.X()*=Fraction(127,5); aRet.Y()*=Fraction(127,5); }
+	if (!bSInch && bDInch) { aRet.X()*=Fraction(5,127); aRet.Y()*=Fraction(5,127); }
+	return aRet;
+};
+
+FrPair GetMapFactor(FieldUnit eS, MapUnit eD)
+=====================================================================
+Found a 19 line (140 tokens) duplication in the following files: 
+Starting at line 5542 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4849 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+static const sal_Int32 mso_sptDoubleWaveDefault[] = 
+{
+	2, 1400, 10800
+};
+static const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] =
+{
+	{ { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
+};
+static const mso_CustomShape msoDoubleWave =
+{
+	(SvxMSDffVertPair*)mso_sptDoubleWaveVert, sizeof( mso_sptDoubleWaveVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptDoubleWaveSegm, sizeof( mso_sptDoubleWaveSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptDoubleWaveDefault,
+	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 19 line (140 tokens) duplication in the following files: 
+Starting at line 5460 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4776 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+static const sal_Int32 mso_sptWaveDefault[] = 
+{
+	2, 1400, 10800
+};
+static const SvxMSDffTextRectangles mso_sptWaveTextRect[] =
+{
+	{ { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
+};
+static const mso_CustomShape msoWave =
+{
+	(SvxMSDffVertPair*)mso_sptWaveVert, sizeof( mso_sptWaveVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptWaveSegm, sizeof( mso_sptWaveSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptWaveDefault,
+	(SvxMSDffTextRectangles*)mso_sptWaveTextRect, sizeof( mso_sptWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 17 line (140 tokens) duplication in the following files: 
+Starting at line 3508 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3150 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+static const SvxMSDffVertPair mso_sptRightBraceVert[] =
+{
+	{ 0, 0 },													// p
+	{ 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },		// ccp
+	{ 10800, 2 MSO_I },											// p
+	{ 10800, 3 MSO_I },	{ 16200, 4 MSO_I }, { 21600, 4 MSO_I },	// ccp
+	{ 16200, 4 MSO_I },	{ 10800, 5 MSO_I },	{ 10800, 6 MSO_I },	// ccp
+	{ 10800, 7 MSO_I },											// p
+	{ 10800, 8 MSO_I }, { 5400,	21600 }, { 0, 21600	}			// ccp
+};
+static const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] =
+{
+	{ { 0, 9 MSO_I }, { 7800, 10 MSO_I } }
+};
+static const mso_CustomShape msoRightBrace =		// adj value0 0 -> 5400
+=====================================================================
+Found a 30 line (140 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/memtools/svarray.cxx
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/memtools/svarray.cxx
+
+	register USHORT nO  = SvByteStringsISortDtor_SAR::Count(),
+			nM,
+			nU = 0;
+	if( nO > 0 )
+	{
+		nO--;
+		while( nU <= nO )
+		{
+			nM = nU + ( nO - nU ) / 2;
+			StringCompare eCmp = (*((ByteStringPtr*)pData + nM))->
+									CompareIgnoreCaseToAscii( *(aE) );
+			if( COMPARE_EQUAL == eCmp )
+			{
+				if( pP ) *pP = nM;
+				return TRUE;
+			}
+			else if( COMPARE_LESS == eCmp )
+				nU = nM + 1;
+			else if( nM == 0 )
+			{
+				if( pP ) *pP = nU;
+				return FALSE;
+			}
+			else
+				nO = nM - 1;
+		}
+	}
+	if( pP ) *pP = nU;
+	return FALSE;
+}
+=====================================================================
+Found a 30 line (140 tokens) duplication in the following files: 
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/memtools/svarray.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/memtools/svarray.cxx
+
+	register USHORT nO  = SvStringsISortDtor_SAR::Count(),
+			nM,
+			nU = 0;
+	if( nO > 0 )
+	{
+		nO--;
+		while( nU <= nO )
+		{
+			nM = nU + ( nO - nU ) / 2;
+			StringCompare eCmp = (*((StringPtr*)pData + nM))->
+									CompareIgnoreCaseToAscii( *(aE) );
+			if( COMPARE_EQUAL == eCmp )
+			{
+				if( pP ) *pP = nM;
+				return TRUE;
+			}
+			else if( COMPARE_LESS == eCmp )
+				nU = nM + 1;
+			else if( nM == 0 )
+			{
+				if( pP ) *pP = nU;
+				return FALSE;
+			}
+			else
+				nO = nM - 1;
+		}
+	}
+	if( pP ) *pP = nU;
+	return FALSE;
+}
+=====================================================================
+Found a 9 line (140 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Enum; }
+    virtual rtl::OUString SAL_CALL getString() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.String; }
+    virtual com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getInterface(  ) throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Interface; }
+    virtual com::sun::star::uno::Any SAL_CALL getAny() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Any; }
+    virtual com::sun::star::uno::Sequence< TestElement > SAL_CALL getSequence() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 24 line (140 tokens) duplication in the following files: 
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+
+		SfxTbxCtrlFactArr_Impl &rFactories = pApp->GetTbxCtrlFactories_Impl();
+		USHORT nFactory;
+		const USHORT nCount = rFactories.Count();
+
+		for( nFactory = 0; nFactory < nCount; ++nFactory )
+			if( (rFactories[nFactory]->nTypeId == aSlotType) && (rFactories[nFactory]->nSlotId == nSlotId) )
+				break;
+
+		if( nFactory == nCount )
+		{
+			// if no factory exists for the given slot id, see if we
+			// have a generic factory with the correct slot type and slot id == 0
+			for( nFactory = 0; nFactory < nCount; ++nFactory )
+				if( (rFactories[nFactory]->nTypeId == aSlotType) && (rFactories[nFactory]->nSlotId == 0) )
+					break;
+		}
+
+		if( nFactory < nCount )
+		{
+			pCtrl = rFactories[nFactory]->pCtor( nSlotId, nTbxId, *pBox );
+			pCtrl->pImpl->pFact = rFactories[nFactory];
+			return pCtrl;
+		}
+	}
+=====================================================================
+Found a 19 line (140 tokens) duplication in the following files: 
+Starting at line 1219 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+Starting at line 1246 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+
+		if( aDataHelper.GetBitmap( FORMAT_BITMAP, aBmp ) )
+		{
+			Point aInsertPos( rPos );
+
+			if( pOwnData && pOwnData->GetWorkDocument() )
+			{
+			    const SdDrawDocument*	pWorkModel = pOwnData->GetWorkDocument();
+                SdrPage*	            pWorkPage = (SdrPage*) ( ( pWorkModel->GetPageCount() > 1 ) ?
+                                                    pWorkModel->GetSdPage( 0, PK_STANDARD ) :
+                                                    pWorkModel->GetPage( 0 ) );
+
+				pWorkPage->SetRectsDirty();
+
+				// #104148# Use SnapRect, not BoundRect
+				Size aSize( pWorkPage->GetAllObjSnapRect().GetSize() );
+
+				aInsertPos.X() = pOwnData->GetStartPos().X() + ( aSize.Width() >> 1 );
+				aInsertPos.Y() = pOwnData->GetStartPos().Y() + ( aSize.Height() >> 1 );
+			}
+=====================================================================
+Found a 24 line (140 tokens) duplication in the following files: 
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/postit.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+
+	aCaptionSet.Put( XLineStartItem( aName, basegfx::B2DPolyPolygon(aTriangle) ) );
+	aCaptionSet.Put( XLineStartWidthItem( 200 ) );
+	aCaptionSet.Put( XLineStartCenterItem( FALSE ) );
+	aCaptionSet.Put( XFillStyleItem( XFILL_SOLID ) );
+	Color aYellow( ScDetectiveFunc::GetCommentColor() );
+	aCaptionSet.Put( XFillColorItem( String(), aYellow ) );
+
+	//	shadow
+	//	SdrShadowItem has FALSE, instead the shadow is set for the rectangle
+	//	only with SetSpecialTextBoxShadow when the object is created
+	//	(item must be set to adjust objects from older files)
+	aCaptionSet.Put( SdrShadowItem( FALSE ) );
+	aCaptionSet.Put( SdrShadowXDistItem( 100 ) );
+	aCaptionSet.Put( SdrShadowYDistItem( 100 ) );
+
+	//	text attributes
+	aCaptionSet.Put( SdrTextLeftDistItem( 100 ) );
+	aCaptionSet.Put( SdrTextRightDistItem( 100 ) );
+	aCaptionSet.Put( SdrTextUpperDistItem( 100 ) );
+	aCaptionSet.Put( SdrTextLowerDistItem( 100 ) );
+    
+	//	#78943# do use the default cell style, so the user has a chance to
+	//	modify the font for the annotations
+	((const ScPatternAttr&)pDoc->GetPool()->GetDefaultItem(ATTR_PATTERN)).
+=====================================================================
+Found a 23 line (140 tokens) duplication in the following files: 
+Starting at line 2420 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 4582 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+::rtl::OUString SAL_CALL OStorage::getTargetByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
+	for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
+		if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Target" ) ) )
+			return aSeq[nInd].Second;
+
+	return ::rtl::OUString();
+}
+
+//-----------------------------------------------
+::rtl::OUString SAL_CALL OStorage::getTypeByID(  const ::rtl::OUString& sID  )
+=====================================================================
+Found a 24 line (140 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+Starting at line 413 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontsizemenucontroller.cxx
+
+void SAL_CALL FontSizeMenuController::setPopupMenu( const Reference< css::awt::XPopupMenu >& xPopupMenu ) throw ( RuntimeException )
+{
+    ResetableGuard aLock( m_aLock );
+
+    if ( m_bDisposed )
+        throw DisposedException();
+    
+    if ( m_xFrame.is() && !m_xPopupMenu.is() )
+    {
+        // Create popup menu on demand
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        
+        m_xPopupMenu = xPopupMenu;
+	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+
+        Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance( 
+                                                        rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                    UNO_QUERY );
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+        
+        com::sun::star::util::URL aTargetURL;
+
+        // Register for font name updates which gives us info about the current font!
+        aTargetURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CharFontName" ));
+=====================================================================
+Found a 27 line (140 tokens) duplication in the following files: 
+Starting at line 1256 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 993 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+void SAL_CALL UIConfigurationManager::removeSettings( const ::rtl::OUString& ResourceURL )
+throw ( NoSuchElementException, IllegalArgumentException, IllegalAccessException, RuntimeException)
+{
+    sal_Int16 nElementType = RetrieveTypeFromResourceURL( ResourceURL );
+    
+    if (( nElementType == ::com::sun::star::ui::UIElementType::UNKNOWN ) || 
+        ( nElementType >= ::com::sun::star::ui::UIElementType::COUNT   ))
+        throw IllegalArgumentException();
+    else if ( m_bReadOnly )
+        throw IllegalAccessException();
+    else
+    {
+        ResetableGuard aGuard( m_aLock );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+        
+        UIElementData* pDataSettings = impl_findUIElementData( ResourceURL, nElementType );
+        if ( pDataSettings )
+        {
+            // If element settings are default, we don't need to change anything!
+            if ( pDataSettings->bDefault )
+                return;
+            else
+            {
+                Reference< XIndexAccess > xRemovedSettings = pDataSettings->xSettings;
+                pDataSettings->bDefault = true;
+=====================================================================
+Found a 11 line (140 tokens) duplication in the following files: 
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/uiconfigelementwrapperbase.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarwrapper.cxx
+
+                            UIConfigElementWrapperBase                                        ,
+                            DIRECT_INTERFACE( ::com::sun::star::lang::XTypeProvider          ),
+                            DIRECT_INTERFACE( ::com::sun::star::ui::XUIElement               ),
+                            DIRECT_INTERFACE( ::com::sun::star::ui::XUIElementSettings       ),
+                            DIRECT_INTERFACE( ::com::sun::star::beans::XMultiPropertySet     ),
+                            DIRECT_INTERFACE( ::com::sun::star::beans::XFastPropertySet      ),
+                            DIRECT_INTERFACE( ::com::sun::star::beans::XPropertySet          ),
+                            DIRECT_INTERFACE( ::com::sun::star::lang::XInitialization        ),
+                            DIRECT_INTERFACE( ::com::sun::star::lang::XComponent             ),
+                            DIRECT_INTERFACE( ::com::sun::star::util::XUpdatable             ),
+                            DIRECT_INTERFACE( ::com::sun::star::ui::XUIConfigurationListener ),
+=====================================================================
+Found a 21 line (140 tokens) duplication in the following files: 
+Starting at line 2245 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 2360 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+
+                    aOutputFileURL += OUString::createFromAscii( TBSubResourceModule_Mapping[i].pXMLPrefix );
+                    aOutputFileURL += OUString::createFromAscii( ".xml" );
+
+                    osl::File aXMLFile( aOutputFileURL );
+                    osl::File::RC nRet = aXMLFile.open( OpenFlag_Create|OpenFlag_Write );
+                    if ( nRet == osl::File::E_EXIST )
+                    {
+                        nRet = aXMLFile.open( OpenFlag_Write );
+                        if ( nRet == osl::File::E_None )
+                            nRet = aXMLFile.setSize( 0 );
+                    }
+
+                    if ( nRet == osl::FileBase::E_None )
+                    {
+                        sal_uInt64 nWritten;
+
+                        aXMLFile.write( XMLStart, strlen( XMLStart ), nWritten );
+                        aXMLFile.write( ToolBarDocType, strlen( ToolBarDocType ), nWritten );
+                        aXMLFile.write( ToolBarStart, strlen( ToolBarStart ), nWritten );
+
+                        ToolBox* pToolBox = pFloatWin->GetSubToolBox();
+=====================================================================
+Found a 15 line (140 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormComponent.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ListBox.cxx
+
+namespace frm
+{
+    using namespace ::com::sun::star::uno;
+    using namespace ::com::sun::star::sdb;
+    using namespace ::com::sun::star::sdbc;
+    using namespace ::com::sun::star::sdbcx;
+    using namespace ::com::sun::star::beans;
+    using namespace ::com::sun::star::container;
+    using namespace ::com::sun::star::form;
+    using namespace ::com::sun::star::awt;
+    using namespace ::com::sun::star::io;
+    using namespace ::com::sun::star::lang;
+    using namespace ::com::sun::star::util;
+    using namespace ::com::sun::star::form::binding;
+    using namespace ::dbtools;
+=====================================================================
+Found a 28 line (140 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 648 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+
+  	"</html:html>\n";
+
+	Sequence<BYTE> seqBytes( strlen( TestString ) );
+	memcpy( seqBytes.getArray() , TestString , strlen( TestString ) );
+
+
+	XInputStreamRef rInStream;
+	UString sInput;
+
+	rInStream = createStreamFromSequence( seqBytes , m_rFactory );
+	sInput = UString( L"internal" );
+
+	if( rParser.is() ) {
+		InputSource source;
+
+		source.aInputStream = rInStream;
+		source.sSystemId 	= sInput;
+
+		TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE );
+		XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY );
+		XEntityResolverRef 	rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY );
+
+		rParser->setDocumentHandler( rDocHandler );
+		rParser->setEntityResolver( rEntityResolver );
+
+		try {
+			rParser->parseStream( source );
+			ERROR_ASSERT( pDocHandler->m_iElementCount 		== 6 , "wrong element count" 	);
+=====================================================================
+Found a 29 line (140 tokens) duplication in the following files: 
+Starting at line 1491 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/unoobjw.cxx
+Starting at line 1537 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/unoobjw.cxx
+
+                    else if( wFlags & DISPATCH_METHOD && wFlags & DISPATCH_PROPERTYGET)
+                    {
+                        OUString exactName;
+                        convertDispparamsArgs(dispidMember, wFlags, pdispparams, params );
+                        
+                        if( FAILED( ret= doInvoke( pdispparams, pvarResult, 
+                                                   pexcepinfo, puArgErr, info.name, params))
+                            && ret == DISP_E_MEMBERNOTFOUND)
+                        {
+                            // try to get the exact name 
+                            if (m_xExactName.is())
+                            {
+                                exactName = m_xExactName->getExactName( info.name);
+                                // invoke again
+                                if( exactName.getLength() != 0)
+                                {
+                                    if( SUCCEEDED( ret= doInvoke( pdispparams, pvarResult, 
+                                                                  pexcepinfo, puArgErr, exactName, params)))
+                                        info.name= exactName;
+                                } 
+                            }
+                        }	
+                        if( SUCCEEDED( ret ) )
+                            info.flags= DISPATCH_METHOD;
+                        
+                        // try as property
+                        if( FAILED( ret) && pdispparams->cArgs == 1)
+                        {
+                            if( FAILED( ret= doGetProperty( pdispparams, pvarResult, 
+=====================================================================
+Found a 7 line (140 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_mask.h
+
+   0xfe, 0xf9, 0x01, 0x00, 0xfe, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x00, 0x00,
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 17 line (140 tokens) duplication in the following files: 
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+
+	if ( !m_xMetaData->supportsGroupByUnrelated() && m_aCurrentColumns[SelectColumns] && !m_aCurrentColumns[SelectColumns]->hasByName(aName))
+	{
+		String sError(DBACORE_RESSTRING(RID_STR_COLUMN_MUST_VISIBLE));
+		sError.SearchAndReplaceAscii("%name", aName);
+		throw SQLException(sError,*this,SQLSTATE_GENERAL,1000,Any() );
+	}
+
+	// filter anhaengen
+	// select ohne where und order by aufbauen
+	::rtl::OUString aSql(m_aPureSelectSQL);
+	::rtl::OUString aQuote	= m_xMetaData->getIdentifierQuoteString();
+	if ( m_aCurrentColumns[SelectColumns]->hasByName(aName) )
+	{
+		Reference<XPropertySet> xColumn;
+		m_aCurrentColumns[SelectColumns]->getByName(aName) >>= xColumn;
+		OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME),"Property REALNAME not available!");
+		OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_TABLENAME),"Property TABLENAME not available!");
+=====================================================================
+Found a 9 line (140 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Enum; }
+    virtual rtl::OUString SAL_CALL getString() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.String; }
+    virtual com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getInterface(  ) throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Interface; }
+    virtual com::sun::star::uno::Any SAL_CALL getAny() throw(com::sun::star::uno::RuntimeException)
+		{ return _aData.Any; }
+    virtual com::sun::star::uno::Sequence< TestElement > SAL_CALL getSequence() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 39 line (140 tokens) duplication in the following files: 
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FConnection.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConnection.cxx
+
+	return sal_True;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::commit(  ) throw(SQLException, RuntimeException)
+{
+	// when you database does support transactions you should commit here
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::rollback(  ) throw(SQLException, RuntimeException)
+{
+	// same as commit but for the other case
+}
+// --------------------------------------------------------------------------------
+sal_Bool SAL_CALL OConnection::isClosed(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	// just simple -> we are close when we are disposed taht means someone called dispose(); (XComponent)
+	return OConnection_BASE::rBHelper.bDisposed;
+}
+// --------------------------------------------------------------------------------
+Reference< XDatabaseMetaData > SAL_CALL OConnection::getMetaData(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+	// here we have to create the class with biggest interface
+	// The answer is 42 :-)
+	Reference< XDatabaseMetaData > xMetaData = m_xMetaData;
+	if(!xMetaData.is())
+	{
+		xMetaData = new ODatabaseMetaData(this); // need the connection because it can return it
+		m_xMetaData = xMetaData;
+	}
+
+	return xMetaData;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setReadOnly( sal_Bool /*readOnly*/ ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 20 line (140 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 491 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+			pAny = &aCPArgs[aCPArgs.getLength() - 1];
+			*pAny <<= configmgr::createPropertyValue(ASCII("sourcepath"), sSharePath);
+			aCPArgs.realloc(aCPArgs.getLength() + 1);
+			aCPArgs[aCPArgs.getLength() - 1] <<= configmgr::createPropertyValue(ASCII("updatepath"), sUserPath);
+		}
+		
+		aCPArgs.realloc(aCPArgs.getLength() + 1);
+		aCPArgs[aCPArgs.getLength() - 1] <<= configmgr::createPropertyValue(ASCII("servertype"), sServerType);
+
+		Reference< XMultiServiceFactory > xCfgProvider(
+			xORB->createInstanceWithArguments(
+				::rtl::OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider"),
+				aCPArgs),
+			UNO_QUERY);
+		if (!xCfgProvider.is())
+		{
+			::flush(cout);
+			cerr << "Could not create the configuration provider !\n\n";
+			return 3;
+		}
+=====================================================================
+Found a 19 line (140 tokens) duplication in the following files: 
+Starting at line 669 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+Starting at line 758 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+
+void DeferredSetNodeImpl::revertCommit(data::Accessor const& _aAccessor, SubtreeChange& rChanges)
+{
+	OSL_ENSURE(rChanges.isSetNodeChange(),"ERROR: Change type GROUP does not match set");
+	OSL_ENSURE(	rChanges.getElementTemplateName() ==  getElementTemplate()->getName().toString(),
+				"ERROR: Element template of change does not match the template of the set");
+	OSL_ENSURE(	rChanges.getElementTemplateModule() ==  getElementTemplate()->getModule().toString(),
+				"ERROR: Element template module of change does not match the template of the set");
+
+
+	for(SubtreeChange::MutatingChildIterator it = rChanges.begin_changes(), stop = rChanges.end_changes();
+		it != stop;
+		++it)
+	{
+		Name aElementName = makeElementName(it->getNodeName(), Name::NoValidate());
+
+		Element* pOriginal = getStoredElement(aElementName);
+
+		if (Element* pNewElement = m_aChangedData.getElement(aElementName)) 
+		{
+=====================================================================
+Found a 27 line (140 tokens) duplication in the following files: 
+Starting at line 2185 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2382 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+	if (superType.getLength() > 0)
+	{
+		o << "  ret = bonobobridge::cpp_convert_b2u((";
+		dumpUnoType(o, superType, sal_False, sal_False);
+		o << "&) _u, (const ";
+		dumpCorbaType(o, superType, sal_False, sal_False);
+		o << "&) _b, bridge);\n";
+	}
+
+	for (i=0; i < fieldCount; i++)
+	{
+		fieldName = m_reader.getFieldName(i);
+		fieldType = m_reader.getFieldType(i);
+		cIndex = fieldName.indexOf("_reserved_identifier_");
+
+		if (cIndex == 0)
+			corbaFieldName = fieldName.copy(OString("_reserved_identifier_").getLength());
+		else
+			corbaFieldName = fieldName;
+			
+		if (isArray(fieldType))
+			o << "  // fix me: no conversion of array types!\n";
+		else
+			o << "  if (ret)\n"
+			  << "    ret = bonobobridge::cpp_convert_b2u(" 
+			  << "_u." << fieldName.getStr() 
+			  << ", _b." << corbaFieldName.getStr()
+=====================================================================
+Found a 40 line (140 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/BarChartTypeTemplate.cxx
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartTypeTemplate.cxx
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/StockChartTypeTemplate.cxx
+
+        uno::makeAny( false );
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+// ----------------------------------------
+
+namespace chart
+{
+=====================================================================
+Found a 28 line (140 tokens) duplication in the following files: 
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/Axis.cxx
+
+        uno::makeAny( sal_Int32( 0 /* CHAXIS_MARK_NONE */ ) );
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+        ::chart::CharacterProperties::AddPropertiesToVector( aProperties );
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+=====================================================================
+Found a 21 line (140 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+        ng++;
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
+=====================================================================
+Found a 35 line (140 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx
+
+        new unsigned int[6]);
+
+	typelib_TypeDescription * pTypeDescr = 0;
+	// will be released by deleteException
+	typelib_typedescriptionreference_getDescription( &pTypeDescr, pUnoExc->pType );
+
+	void* pRTTI;
+	{
+	static ::osl::Mutex aMutex;
+	::osl::Guard< ::osl::Mutex > guard( aMutex );
+
+	static RTTIHolder * s_pRTTI = 0;
+	if (! s_pRTTI)
+	{
+#ifdef LEAK_STATIC_DATA
+		s_pRTTI = new RTTIHolder();
+#else
+		static RTTIHolder s_aRTTI;
+		s_pRTTI = &s_aRTTI;
+#endif
+	}
+
+	pRTTI = s_pRTTI->generateRTTI( (typelib_CompoundTypeDescription *)pTypeDescr );
+	}
+
+	// a must be
+	OSL_ENSURE( sizeof(sal_Int32) == sizeof(void *), "### pointer size differs from sal_Int32!" );
+
+	void * pCppExc = __Crun::ex_alloc( pTypeDescr->nSize );
+	uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	uno_any_destruct( pUnoExc, 0 );
+
+    unsigned int * thunk = thunkPtr.release();
+=====================================================================
+Found a 21 line (140 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+        ng++;
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
+=====================================================================
+Found a 18 line (140 tokens) duplication in the following files: 
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/miniapp/testapp.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/app.cxx
+
+uno::Reference< XContentProviderManager > InitializeUCB( void )
+{
+    OUString path;
+    if( osl_Process_E_None != osl_getExecutableFile( (rtl_uString**)&path ) )
+    {
+        InfoBox( NULL, String::CreateFromAscii( "Couldn't retrieve directory of executable" ) ).Execute();
+        exit( 1 );
+    }
+    OSL_ASSERT( path.lastIndexOf( '/' ) >= 0 );
+
+
+    ::rtl::OUStringBuffer bufServices( path.copy( 0, path.lastIndexOf( '/' )+1 ) );
+    bufServices.appendAscii("services.rdb");
+    OUString services = bufServices.makeStringAndClear();
+
+    ::rtl::OUStringBuffer bufTypes( path.copy( 0, path.lastIndexOf( '/' )+1 ) );
+    bufTypes.appendAscii("types.rdb");
+    OUString types = bufTypes.makeStringAndClear();
+=====================================================================
+Found a 10 line (139 tokens) duplication in the following files: 
+Starting at line 487 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 603 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        fg[0] >>= image_filter_shift;
+                        fg[1] >>= image_filter_shift;
+                        fg[2] >>= image_filter_shift;
+                        fg[3] >>= image_filter_shift;
+
+                        if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                        if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                        if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                        if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+                    }
+=====================================================================
+Found a 11 line (139 tokens) duplication in the following files: 
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                fg[3] += weight * fg_ptr[3];
+
+                fg[0] >>= image_filter_shift;
+                fg[1] >>= image_filter_shift;
+                fg[2] >>= image_filter_shift;
+                fg[3] >>= image_filter_shift;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+=====================================================================
+Found a 23 line (139 tokens) duplication in the following files: 
+Starting at line 1096 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
+Starting at line 1260 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
+
+        if ( !standardout && pofs && ((std::ofstream*)pofs)->is_open()) {
+            ((std::ofstream*)pofs)->close();
+            delete pofs;
+            OSL_VERIFY(makeValidTypeFile(compFileName, tmpFileName, sal_False));
+        }
+    } catch(CannotDumpException& e) {
+
+        std::cerr << "ERROR: " << e.m_message.getStr() << "\n";
+        if ( !standardout ) {
+            if (pofs && ((std::ofstream*)pofs)->is_open()) {
+                ((std::ofstream*)pofs)->close();       
+                delete pofs;
+            }
+            // remove existing type file if something goes wrong to ensure
+            // consistency
+            if (fileExists(compFileName))
+                removeTypeFile(compFileName);
+            
+            // remove tmp file if something goes wrong
+            removeTypeFile(tmpFileName);
+        }
+    }
+}
+=====================================================================
+Found a 19 line (139 tokens) duplication in the following files: 
+Starting at line 1573 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1660 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlComboBoxModel") ) );
+	Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+	
+	Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
+	if (xStyle.is())
+	{
+		StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+		pStyle->importBackgroundColorStyle( xControlModel );
+		pStyle->importTextColorStyle( xControlModel );
+		pStyle->importTextLineColorStyle( xControlModel );
+		pStyle->importBorderStyle( xControlModel );
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ReadOnly") ),
+=====================================================================
+Found a 31 line (139 tokens) duplication in the following files: 
+Starting at line 1880 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+Starting at line 2002 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+
+	case XML_NAMESPACE_SVG:
+	{
+		if( IsXMLToken( rLocalName, XML_X1 ) )
+		{
+			GetImport().GetMM100UnitConverter().convertMeasure(maStart.X, rValue);
+			return;
+		}
+		if( IsXMLToken( rLocalName, XML_Y1 ) )
+		{
+			GetImport().GetMM100UnitConverter().convertMeasure(maStart.Y, rValue);
+			return;
+		}
+		if( IsXMLToken( rLocalName, XML_X2 ) )
+		{
+			GetImport().GetMM100UnitConverter().convertMeasure(maEnd.X, rValue);
+			return;
+		}
+		if( IsXMLToken( rLocalName, XML_Y2 ) )
+		{
+			GetImport().GetMM100UnitConverter().convertMeasure(maEnd.Y, rValue);
+			return;
+		}
+	}
+	}
+
+	SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue );
+}
+
+//////////////////////////////////////////////////////////////////////////////
+
+void SdXMLMeasureShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList)
+=====================================================================
+Found a 36 line (139 tokens) duplication in the following files: 
+Starting at line 1088 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/sunconvert.cxx
+Starting at line 1238 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/sunconvert.cxx
+
+g723_40_encoder(
+	int		sl,
+	int		in_coding,
+	struct g72x_state *state_ptr)
+{
+	short		sei, sezi, se, sez;	/* ACCUM */
+	short		d;			/* SUBTA */
+	short		y;			/* MIX */
+	short		sr;			/* ADDB */
+	short		dqsez;			/* ADDC */
+	short		dq, i;
+
+	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+	case AUDIO_ENCODING_ALAW:
+		sl = alaw2linear(sl) >> 2;
+		break;
+	case AUDIO_ENCODING_ULAW:
+		sl = ulaw2linear(sl) >> 2;
+		break;
+	case AUDIO_ENCODING_LINEAR:
+		sl >>= 2;		/* sl of 14-bit dynamic range */
+		break;
+	default:
+		return (-1);
+	}
+
+	sezi = predictor_zero(state_ptr);
+	sez = sezi >> 1;
+	sei = sezi + predictor_pole(state_ptr);
+	se = sei >> 1;			/* se = estimated signal */
+
+	d = sl - se;			/* d = estimation difference */
+
+	/* quantize prediction difference */
+	y = step_size(state_ptr);	/* adaptive quantizer step size */
+	i = quantize(d, y, qtab_723_40, 15);	/* i = ADPCM code */
+=====================================================================
+Found a 18 line (139 tokens) duplication in the following files: 
+Starting at line 4260 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 4385 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+    drawEllipse( aCheckRect );
+    writeBuffer( " Q\n", 3 );
+    setTextColor( replaceColor( rWidget.TextColor, rSettings.GetRadioCheckTextColor() ) );
+    drawText( aTextRect, rBox.m_aText, rBox.m_nTextStyle );
+
+    pop();
+
+    OStringBuffer aDA( 256 );
+    appendNonStrokingColor( replaceColor( rWidget.TextColor, rSettings.GetRadioCheckTextColor() ), aDA );
+    sal_Int32 nBest = getBestBuiltinFont( Font( String( RTL_CONSTASCII_USTRINGPARAM( "ZapfDingbats" ) ), aFont.GetSize() ) );
+    aDA.append( ' ' );
+    aDA.append( m_aBuiltinFonts[nBest].getNameObject() );
+    aDA.append( " 0 Tf" );
+    rBox.m_aDAString = aDA.makeStringAndClear();
+//to encrypt this (el)
+    rBox.m_aMKDict = "/CA";
+//after this assignement, to m_aMKDic cannot be added anything
+    rBox.m_aMKDictCAString = "l";
+=====================================================================
+Found a 19 line (139 tokens) duplication in the following files: 
+Starting at line 2029 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+Starting at line 2162 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+
+		ENTER4( rMapModeSource, rMapModeDest );
+
+		return Rectangle( fn5( rRectSource.Left() + aMapResSource.mnMapOfsX,
+							   aMapResSource.mnMapScNumX, aMapResDest.mnMapScDenomX,
+							   aMapResSource.mnMapScDenomX, aMapResDest.mnMapScNumX ) -
+						  aMapResDest.mnMapOfsX,
+						  fn5( rRectSource.Top() + aMapResSource.mnMapOfsY,
+							   aMapResSource.mnMapScNumY, aMapResDest.mnMapScDenomY,
+							   aMapResSource.mnMapScDenomY, aMapResDest.mnMapScNumY ) -
+						  aMapResDest.mnMapOfsY,
+						  fn5( rRectSource.Right() + aMapResSource.mnMapOfsX,
+							   aMapResSource.mnMapScNumX, aMapResDest.mnMapScDenomX,
+							   aMapResSource.mnMapScDenomX, aMapResDest.mnMapScNumX ) -
+						  aMapResDest.mnMapOfsX,
+						  fn5( rRectSource.Bottom() + aMapResSource.mnMapOfsY,
+							   aMapResSource.mnMapScNumY, aMapResDest.mnMapScDenomY,
+							   aMapResSource.mnMapScDenomY, aMapResDest.mnMapScNumY ) -
+						  aMapResDest.mnMapOfsY );
+	}
+=====================================================================
+Found a 22 line (139 tokens) duplication in the following files: 
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+Starting at line 878 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+
+								nSumB += rCol.GetBlue();
+							}
+						}
+
+						aCol.SetRed( (BYTE) ( nSumR * fArea_1 ) );
+						aCol.SetGreen( (BYTE) ( nSumG * fArea_1 ) );
+						aCol.SetBlue( (BYTE) ( nSumB * fArea_1 ) );
+
+						for( nY = nY1; nY <= nY2; nY++ )
+							for( nX = nX1; nX <= nX2; nX++ )
+								pWriteAcc->SetPixel( nY, nX, aCol );
+
+						nX1 += nTileWidth; nX2 += nTileWidth;
+
+						if( nX2 >= nWidth )
+						{
+							nX2 = nWidth - 1;
+							fArea_1 = 1.0 / ( ( nX2 - nX1 + 1 ) * ( nY2 - nY1 + 1 ) );
+						}
+					}
+					while( nX1 < nWidth );
+				}
+=====================================================================
+Found a 34 line (139 tokens) duplication in the following files: 
+Starting at line 1435 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1883 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+                                aEvent.PropertyName = rName;
+                                aEvent.OldValue     = aOldValue;
+                                aEvent.NewValue     = rValue.Value;
+
+                                aChanges.getArray()[ nChanged ] = aEvent;
+                                nChanged++;
+                            }
+                        }
+                        catch ( beans::UnknownPropertyException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( lang::WrappedTargetException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( beans::PropertyVetoException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( lang::IllegalArgumentException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                    }
+                    else
+                    {
+                        aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+                    }
+                }
+            }
+=====================================================================
+Found a 25 line (139 tokens) duplication in the following files: 
+Starting at line 888 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1000 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            rSMgr, rProperties, aData, pProvider, rContentId );
+    }
+    else
+    {
+        rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+            = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+        sal_Int32 nCount = rProperties.getLength();
+        if ( nCount )
+        {
+            const beans::Property* pProps = rProperties.getConstArray();
+            for ( sal_Int32 n = 0; n < nCount; ++n )
+                xRow->appendVoid( pProps[ n ] );
+        }
+
+        return uno::Reference< sdbc::XRow >( xRow.get() );
+    }
+}
+
+//=========================================================================
+// static
+uno::Reference< sdbc::XRow > Content::getPropertyValues(
+                const uno::Reference< lang::XMultiServiceFactory >& rSMgr,
+                const uno::Sequence< beans::Property >& rProperties,
+                const ContentProperties& rData,
+=====================================================================
+Found a 34 line (139 tokens) duplication in the following files: 
+Starting at line 1416 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1883 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+                                aEvent.PropertyName = rName;
+                                aEvent.OldValue     = aOldValue;
+                                aEvent.NewValue     = rValue.Value;
+
+                                aChanges.getArray()[ nChanged ] = aEvent;
+                                nChanged++;
+                            }
+                        }
+                        catch ( beans::UnknownPropertyException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( lang::WrappedTargetException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( beans::PropertyVetoException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( lang::IllegalArgumentException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                    }
+                    else
+                    {
+                        aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+                    }
+                }
+            }
+=====================================================================
+Found a 32 line (139 tokens) duplication in the following files: 
+Starting at line 4338 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindows.cxx
+Starting at line 4651 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindows.cxx
+
+::com::sun::star::uno::Any VCLXCurrencyField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+{
+	::vos::OGuard aGuard( GetMutex() );
+
+	::com::sun::star::uno::Any aProp;
+	FormatterBase* pFormatter = GetFormatter();
+	if ( pFormatter )
+	{
+		sal_uInt16 nPropType = GetPropertyId( PropertyName );
+		switch ( nPropType )
+		{
+			case BASEPROPERTY_VALUE_DOUBLE:
+			{
+				aProp <<= (double) getValue();
+			}
+			break;
+			case BASEPROPERTY_VALUEMIN_DOUBLE:
+			{
+				aProp <<= (double) getMin();
+			}
+			break;
+			case BASEPROPERTY_VALUEMAX_DOUBLE:
+			{
+				aProp <<= (double) getMax();
+			}
+			break;
+			case BASEPROPERTY_VALUESTEP_DOUBLE:
+			{
+				aProp <<= (double) getSpinSize();
+			}
+			break;
+			case BASEPROPERTY_CURRENCYSYMBOL:
+=====================================================================
+Found a 26 line (139 tokens) duplication in the following files: 
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+Starting at line 1312 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+
+    if( rOpt.IsPrintSingleJobs() )
+    {
+        SfxPrinter* pTmpPrinter = pSh->getIDocumentDeviceAccess()->getPrinter( true );
+        pTmpPrinter->SetEndPrintHdl( aSfxSaveLnk );
+        if ( !bUserBreak && !pTmpPrinter->IsJobActive() )     //Schon zu spaet?
+            aSfxSaveLnk.Call( pTmpPrinter );
+    }
+
+    rOpt.nMergeCnt = 0;
+    rOpt.nMergeAct = 0;
+
+    nMergeType = DBMGR_INSERT;
+
+    SwDocShell* pDocSh = rView.GetDocShell();
+    SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst(pDocSh);
+
+    while (pTmpFrm)     // Alle Views Invalidieren
+    {
+        SwView *pVw = PTR_CAST(SwView, pTmpFrm->GetViewShell());
+        if (pVw)
+            pVw->GetEditWin().Invalidate();
+        pTmpFrm = pTmpFrm->GetNext(*pTmpFrm, pDocSh);
+    }
+
+    return bRet;
+}
+=====================================================================
+Found a 8 line (139 tokens) duplication in the following files: 
+Starting at line 606 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 995 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+    static BYTE __READONLY_DATA aURLData1[] = {
+        0,0,0,0,        // len of struct
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 23 line (139 tokens) duplication in the following files: 
+Starting at line 3861 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3074 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+	if( pModel->IsWriter() )
+	{
+		if(GetAnchorPos().X() || GetAnchorPos().Y())
+		{
+			aTranslate -= basegfx::B2DTuple(GetAnchorPos().X(), GetAnchorPos().Y());
+		}
+	}
+
+	// force MapUnit to 100th mm
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// postion
+				aTranslate.setX(ImplTwipsToMM(aTranslate.getX()));
+				aTranslate.setY(ImplTwipsToMM(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplTwipsToMM(aScale.getX()));
+				aScale.setY(ImplTwipsToMM(aScale.getY()));
+=====================================================================
+Found a 14 line (139 tokens) duplication in the following files: 
+Starting at line 792 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/winmtf.cxx
+Starting at line 829 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/winmtf.cxx
+
+			else if ( eType == GDI_PEN )
+			{
+				Size aSize( ((WinMtfLineStyle*)pStyle)->aLineInfo.GetWidth(), 0 );
+				((WinMtfLineStyle*)pStyle)->aLineInfo.SetWidth( ImplMap( aSize ).Width() );
+				if ( ((WinMtfLineStyle*)pStyle)->aLineInfo.GetStyle() == LINE_DASH )
+				{
+					aSize.Width() += 1;
+					long nDotLen = ImplMap( aSize ).Width();
+					((WinMtfLineStyle*)pStyle)->aLineInfo.SetDistance( nDotLen );
+					((WinMtfLineStyle*)pStyle)->aLineInfo.SetDotLen( nDotLen );
+					((WinMtfLineStyle*)pStyle)->aLineInfo.SetDashLen( nDotLen * 4 );
+				}
+			}
+		}
+=====================================================================
+Found a 14 line (139 tokens) duplication in the following files: 
+Starting at line 800 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/implementationregistration/implreg.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/implementationregistration/implreg.cxx
+
+            xKey = xImplKey->openKey( pool.slash_UNO );
+            if (xKey.is())
+            {
+                Sequence< Reference < XRegistryKey > > subKeys2 = xKey->openKeys();
+
+                if (subKeys2.getLength())
+                {
+                    const Reference < XRegistryKey > * pSubKeys2 = subKeys2.getConstArray();
+						
+                    for (sal_Int32 j = 0; j < subKeys2.getLength(); j++)
+                    {
+                        if (pSubKeys2[j]->getKeyName() != (xImplKey->getKeyName() + pool.slash_UNO_slash_SERVICES) &&
+                            pSubKeys2[j]->getKeyName() != (xImplKey->getKeyName() + pool.slash_UNO_slash_REGISTRY_LINKS ) &&
+                            pSubKeys2[j]->getKeyName() != (xImplKey->getKeyName() + pool.slash_UNO_slash_SINGLETONS ))
+=====================================================================
+Found a 13 line (139 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/criface.cxx
+
+	virtual Any SAL_CALL queryInterface( const Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL acquire() throw();
+	virtual void SAL_CALL release() throw();
+	
+	// XTypeProvider
+	virtual Sequence< Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
+	virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+	
+	// XIdlMember
+    virtual Reference< XIdlClass > SAL_CALL getDeclaringClass() throw(::com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
+	// XIdlMethod
+    virtual Reference< XIdlClass > SAL_CALL getReturnType() throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 8 line (139 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodule.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unomodule.cxx
+
+void SAL_CALL SwUnoModule::dispatchWithNotification( const ::com::sun::star::util::URL& aURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArgs, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchResultListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+{
+    // there is no guarantee, that we are holded alive during this method!
+    // May the outside dispatch container will be updated by a CONTEXT_CHANGED
+    // asynchronous ...
+    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xThis(static_cast< ::com::sun::star::frame::XNotifyingDispatch* >(this));
+
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+=====================================================================
+Found a 31 line (139 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/drawvie4.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/drawvie4.cxx
+
+uno::Reference<datatransfer::XTransferable> ScDrawView::CopyToTransferable()
+{
+	BOOL bAnyOle, bOneOle;
+	const SdrMarkList& rMarkList = GetMarkedObjectList();
+	lcl_CheckOle( rMarkList, bAnyOle, bOneOle );
+
+	// update ScGlobal::pDrawClipDocShellRef
+	ScDrawLayer::SetGlobalDrawPersist( ScTransferObj::SetDrawClipDoc( bAnyOle ) );
+	SdrModel* pModel = GetAllMarkedModel();
+	ScDrawLayer::SetGlobalDrawPersist(NULL);
+
+	//	Charts now always copy their data in addition to the source reference, so
+	//	there's no need to call SchDLL::Update for the charts in the clipboard doc.
+	//	Update with the data (including NumberFormatter) from the live document would
+	//	also store the NumberFormatter in the clipboard chart (#88749#)
+	// lcl_RefreshChartData( pModel, pViewData->GetDocument() );
+
+	ScDocShell* pDocSh = pViewData->GetDocShell();
+
+	TransferableObjectDescriptor aObjDesc;
+	pDocSh->FillTransferableObjectDescriptor( aObjDesc );
+	aObjDesc.maDisplayName = pDocSh->GetMedium()->GetURLObject().GetURLNoPass();
+	// maSize is set in ScDrawTransferObj ctor
+
+	ScDrawTransferObj* pTransferObj = new ScDrawTransferObj( pModel, pDocSh, aObjDesc );
+	uno::Reference<datatransfer::XTransferable> xTransferable( pTransferObj );
+
+	if ( ScGlobal::pDrawClipDocShellRef )
+	{
+        pTransferObj->SetDrawPersist( &(*ScGlobal::pDrawClipDocShellRef) );    // keep persist for ole objects alive
+	}
+=====================================================================
+Found a 17 line (139 tokens) duplication in the following files: 
+Starting at line 886 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/autofmt.cxx
+Starting at line 978 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/tautofmt.cxx
+
+void AutoFmtPreview::CalcLineMap()
+{
+    for( size_t nRow = 0; nRow < 5; ++nRow )
+    {
+        for( size_t nCol = 0; nCol < 5; ++nCol )
+        {
+            svx::frame::Style aStyle;
+
+            const SvxBoxItem& rItem = GetBoxItem( nCol, nRow );
+            lclSetStyleFromBorder( aStyle, rItem.GetLeft() );
+            maArray.SetCellStyleLeft( nCol, nRow, aStyle );
+            lclSetStyleFromBorder( aStyle, rItem.GetRight() );
+            maArray.SetCellStyleRight( nCol, nRow, aStyle );
+            lclSetStyleFromBorder( aStyle, rItem.GetTop() );
+            maArray.SetCellStyleTop( nCol, nRow, aStyle );
+            lclSetStyleFromBorder( aStyle, rItem.GetBottom() );
+            maArray.SetCellStyleBottom( nCol, nRow, aStyle );
+=====================================================================
+Found a 22 line (139 tokens) duplication in the following files: 
+Starting at line 598 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/drwtrans.cxx
+Starting at line 849 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+            SfxObjectShell*   pEmbObj = (SfxObjectShell*) pObject;
+            try
+            {
+                ::utl::TempFile     aTempFile;
+                aTempFile.EnableKillingFile();
+                uno::Reference< embed::XStorage > xWorkStore =
+                    ::comphelper::OStorageHelper::GetStorageFromURL( aTempFile.GetURL(), embed::ElementModes::READWRITE );
+
+                // write document storage
+                pEmbObj->SetupStorage( xWorkStore, SOFFICE_FILEFORMAT_CURRENT, sal_False );
+                // mba: no BaseURL for clipboard
+                SfxMedium aMedium( xWorkStore, String() );
+                bRet = pEmbObj->DoSaveObjectAs( aMedium, FALSE );
+                pEmbObj->DoSaveCompleted();
+
+                uno::Reference< embed::XTransactedObject > xTransact( xWorkStore, uno::UNO_QUERY );
+                if ( xTransact.is() )
+                    xTransact->commit();
+
+                SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), STREAM_READ );
+                if( pSrcStm )
+                {
+=====================================================================
+Found a 24 line (139 tokens) duplication in the following files: 
+Starting at line 1838 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
+
+uno::Reference< XAccessibleStateSet > SAL_CALL ScAccessiblePageHeader::getAccessibleStateSet()
+								throw (uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	uno::Reference<XAccessibleStateSet> xParentStates;
+	if (getAccessibleParent().is())
+	{
+		uno::Reference<XAccessibleContext> xParentContext = getAccessibleParent()->getAccessibleContext();
+		xParentStates = xParentContext->getAccessibleStateSet();
+	}
+	utl::AccessibleStateSetHelper* pStateSet = new utl::AccessibleStateSetHelper();
+	if (IsDefunc(xParentStates))
+		pStateSet->AddState(AccessibleStateType::DEFUNC);
+    else
+    {
+	    pStateSet->AddState(AccessibleStateType::ENABLED);
+	    pStateSet->AddState(AccessibleStateType::OPAQUE);
+	    if (isShowing())
+		    pStateSet->AddState(AccessibleStateType::SHOWING);
+	    if (isVisible())
+		    pStateSet->AddState(AccessibleStateType::VISIBLE);
+    }
+	return pStateSet;
+}
+=====================================================================
+Found a 70 line (139 tokens) duplication in the following files: 
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+Starting at line 1376 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+
+		FT_FuncFix2,		//  166 D360 (US-Version)
+		FT_NotImpl,			//  167
+		FT_NotImpl,			//  168
+		FT_NotImpl,			//  169
+		FT_NotImpl,			//  170
+		FT_NotImpl,			//  171
+		FT_NotImpl,			//  172
+		FT_NotImpl,			//  173
+		FT_NotImpl,			//  174
+		FT_NotImpl,			//  175
+		FT_NotImpl,			//  176
+		FT_NotImpl,			//  177
+		FT_NotImpl,			//  178
+		FT_NotImpl,			//  179
+		FT_NotImpl,			//  180
+		FT_NotImpl,			//  181
+		FT_NotImpl,			//  182
+		FT_NotImpl,			//  183
+		FT_NotImpl,			//  184
+		FT_NotImpl,			//  185
+		FT_FuncVar,			//  186 Solver               <-------- neu! -
+		FT_NotImpl,			//  187
+		FT_NotImpl,			//  188
+		FT_NotImpl,			//  189
+		FT_NotImpl,			//  190
+		FT_NotImpl,			//  191
+		FT_NotImpl,			//  192
+		FT_NotImpl,			//  193
+		FT_NotImpl,			//  194
+		FT_NotImpl,			//  195
+		FT_NotImpl,			//  196
+		FT_NotImpl,			//  197
+		FT_NotImpl,			//  198
+		FT_NotImpl,			//  199
+		FT_NotImpl,			//  200
+		FT_NotImpl,			//  201
+		FT_NotImpl,			//  202
+		FT_NotImpl,			//  203
+		FT_NotImpl,			//  204
+		FT_NotImpl,			//  205
+		FT_NotImpl,			//  206
+		FT_NotImpl,			//  207
+		FT_NotImpl,			//  208
+		FT_NotImpl,			//  209
+		FT_NotImpl,			//  210
+		FT_NotImpl,			//  211
+		FT_NotImpl,			//  212
+		FT_NotImpl,			//  213
+		FT_NotImpl,			//  214
+		FT_NotImpl,			//  215
+		FT_NotImpl,			//  216
+		FT_NotImpl,			//  217
+		FT_NotImpl,			//  218
+		FT_NotImpl,			//  219
+		FT_NotImpl,			//  220
+		FT_NotImpl,			//  221
+		FT_NotImpl,			//  222
+		FT_NotImpl,			//  223
+		FT_NotImpl,			//  224
+		FT_NotImpl,			//  225
+		FT_NotImpl,			//  226
+		FT_NotImpl,			//  227
+		FT_NotImpl,			//  228
+		FT_NotImpl,			//  229
+		FT_NotImpl,			//  230
+		FT_NotImpl,			//  231
+		FT_NotImpl,			//  232
+		FT_NotImpl,			//  233
+		FT_NotImpl,			//  234
+		FT_NotImpl,			//  235
+=====================================================================
+Found a 32 line (139 tokens) duplication in the following files: 
+Starting at line 1931 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 2010 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+		ScMatrixRef pResMat = MatPow(pMat1, pMat2);
+		if (!pResMat)
+			SetNoValue();
+		else
+			PushMatrix(pResMat);
+	}
+	else if (pMat1 || pMat2)
+	{
+		double fVal;
+		BOOL bFlag;
+		ScMatrixRef pMat = pMat1;
+		if (!pMat)
+		{
+			fVal = fVal1;
+			pMat = pMat2;
+			bFlag = TRUE;			// double - Matrix
+		}
+		else
+		{
+			fVal = fVal2;
+			bFlag = FALSE;			// Matrix - double
+		}
+        SCSIZE nC, nR;
+		pMat->GetDimensions(nC, nR);
+		ScMatrixRef pResMat = GetNewMat(nC, nR);
+		if (pResMat)
+		{
+			SCSIZE nCount = nC * nR;
+			if (bFlag)
+			{	for ( SCSIZE i = 0; i < nCount; i++ )
+					if (pMat->IsValue(i))
+						pResMat->PutDouble(pow(fVal,pMat->GetDouble(i)), i);
+=====================================================================
+Found a 45 line (139 tokens) duplication in the following files: 
+Starting at line 728 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/strtmpl.c
+Starting at line 782 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/strtmpl.c
+
+    sal_uInt64  nValue;
+
+    /* Radix must be valid */
+    if ( (nRadix < RTL_STR_MIN_RADIX) || (nRadix > RTL_STR_MAX_RADIX) )
+        nRadix = 10;
+
+    /* is value negativ */
+    if ( n < 0 )
+    {
+        *pStr = '-';
+        pStr++;
+        nLen++;
+        nValue = -n; /* FIXME this code is not portable for
+                        n == -9223372036854775808 (smallest negative value for
+                        sal_Int64) */
+    }
+    else
+        nValue = n;
+
+    /* create a recursive buffer with all values, except the last one */
+    do
+    {
+        sal_Char nDigit = (sal_Char)(nValue % nRadix);
+        nValue /= nRadix;
+        if ( nDigit > 9 )
+            *pBuf = (nDigit-10) + 'a';
+        else
+            *pBuf = (nDigit + '0' );
+        pBuf++;
+    }
+    while ( nValue > 0 );
+
+    /* copy the values in the right direction into the destination buffer */
+    do
+    {
+        pBuf--;
+        *pStr = *pBuf;
+        pStr++;
+        nLen++;
+    }
+    while ( pBuf != aBuf );
+    *pStr = 0;
+
+    return nLen;
+}
+=====================================================================
+Found a 19 line (139 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+
+    void test_encode_and_decode(sal_uInt8 _nKeyValue, sal_uInt8 _nArgValue, rtl::OString const& _sPlainTextStr)
+        {
+            rtlCipher aCipher = rtl_cipher_create(rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeECB);
+            CPPUNIT_ASSERT_MESSAGE("create failed.", aCipher != NULL);
+
+            sal_uInt32     nKeyLen = 16;
+            sal_uInt8     *pKeyBuffer = new sal_uInt8[ nKeyLen ];
+            memset(pKeyBuffer, 0, nKeyLen);
+            pKeyBuffer[0] = _nKeyValue;
+
+            sal_uInt32     nArgLen = 16;
+            sal_uInt8     *pArgBuffer = new sal_uInt8[ nArgLen ];
+            memset(pArgBuffer, 0, nArgLen);
+            pArgBuffer[0] = _nArgValue;
+
+            t_print(T_VERBOSE, "  init Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "  init Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionBoth, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
+=====================================================================
+Found a 18 line (139 tokens) duplication in the following files: 
+Starting at line 423 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/module/osl_Module.cxx
+
+}
+
+/** detete a temp test file using OUString name.
+*/
+inline void deleteTestFile( const ::rtl::OUString filename )
+{
+	::rtl::OUString	aPathURL   = filename.copy( 0 );
+	::osl::FileBase::RC	nError;
+	
+	if ( !isURL( filename ) )
+		::osl::FileBase::getFileURLFromSystemPath( filename, aPathURL ); //convert if not full qualified URL
+		
+	nError = ::osl::File::setAttributes( aPathURL, Attribute_GrpWrite| Attribute_OwnWrite| Attribute_OthWrite ); // if readonly, make writtenable. 
+	CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: set writtenable ", ( ::osl::FileBase::E_None == nError ) || ( ::osl::FileBase::E_NOENT == nError ) );	
+	
+	nError = ::osl::File::remove( aPathURL );
+	CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: remove ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) );	
+}
+=====================================================================
+Found a 25 line (139 tokens) duplication in the following files: 
+Starting at line 3826 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 9549 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_007_Int64 : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            OString                expVal( aStrBuf.getStr() );
+=====================================================================
+Found a 5 line (139 tokens) duplication in the following files: 
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1428 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e30 - 2e3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 6 line (139 tokens) duplication in the following files: 
+Starting at line 1127 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+     0, 0,17,17,17, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0dd0 - 0ddf
+=====================================================================
+Found a 7 line (139 tokens) duplication in the following files: 
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24f0 - 24ff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2500 - 250f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2510 - 251f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2520 - 252f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2530 - 253f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2540 - 254f
+=====================================================================
+Found a 5 line (139 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2330 - 233f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2340 - 234f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2350 - 235f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2360 - 236f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,10,10,// 2370 - 237f
+=====================================================================
+Found a 5 line (139 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23d0 - 23df
+=====================================================================
+Found a 31 line (139 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarwrapper.cxx
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/statusbarwrapper.cxx
+
+void SAL_CALL StatusBarWrapper::setSettings( const Reference< XIndexAccess >& xSettings ) throw ( RuntimeException )
+{
+    ResetableGuard aLock( m_aLock );
+    
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( xSettings.is() )
+    {
+        // Create a copy of the data if the container is not const
+        Reference< XIndexReplace > xReplace( xSettings, UNO_QUERY );
+        if ( xReplace.is() )
+            m_xConfigData = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( xSettings ) ), UNO_QUERY );
+        else
+            m_xConfigData = xSettings;
+
+        if ( m_xConfigSource.is() && m_bPersistent )
+        {
+            OUString aResourceURL( m_aResourceURL );
+            Reference< XUIConfigurationManager > xUICfgMgr( m_xConfigSource );
+            
+            aLock.unlock();
+            
+            try
+            {
+                xUICfgMgr->replaceSettings( aResourceURL, m_xConfigData );
+            }
+            catch( NoSuchElementException& )
+            {
+            }
+        }
+=====================================================================
+Found a 18 line (139 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ComboBox.cxx
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/RadioButton.cxx
+
+namespace frm
+{
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::form::binding;
+
+//==================================================================
+//------------------------------------------------------------------------------
+InterfaceRef SAL_CALL ORadioButtonControl_CreateInstance(const Reference<XMultiServiceFactory>& _rxFactory) throw (RuntimeException)
+=====================================================================
+Found a 22 line (139 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+	pBuffer[nStart + 2] = OneByte;
+}
+
+void Base64Codec::decodeBase64(uno::Sequence< sal_uInt8 >& aBuffer, const rtl::OUString& sBuffer)
+{
+	sal_Int32 nFirstLength((sBuffer.getLength() / 4) * 3);
+	sal_uInt8* pBuffer = new sal_uInt8[nFirstLength];
+	sal_Int32 nSecondLength(0);
+	sal_Int32 nLength(0);
+	sal_Int32 i = 0;
+	sal_Int32 k = 0;
+	while (i < sBuffer.getLength())
+	{
+		FourByteToThreeByte (pBuffer, nLength, k, sBuffer.copy(i, 4));
+		nSecondLength += nLength;
+		nLength = 0;
+		i += 4;
+		k += 3;
+	}
+	aBuffer = uno::Sequence<sal_uInt8>(pBuffer, nSecondLength);
+	delete[] pBuffer;
+}
+=====================================================================
+Found a 5 line (139 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2330 - 233f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2340 - 234f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2350 - 235f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2360 - 236f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,10,10,// 2370 - 237f
+=====================================================================
+Found a 27 line (139 tokens) duplication in the following files: 
+Starting at line 1278 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1169 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/pdf/pdfexport.cxx
+
+				}
+				break;
+
+				case( META_COMMENT_ACTION ):
+				{
+					const MetaCommentAction*	pA = (const MetaCommentAction*) pAction;
+					String						aSkipComment;
+
+					if( pA->GetComment().CompareIgnoreCaseToAscii( "XGRAD_SEQ_BEGIN" ) == COMPARE_EQUAL )
+					{
+						const MetaGradientExAction*	pGradAction = NULL;
+						sal_Bool					bDone = sal_False;
+
+						while( !bDone && ( ++i < nCount ) )
+						{
+							pAction = rMtf.GetAction( i );
+
+							if( pAction->GetType() == META_GRADIENTEX_ACTION )
+								pGradAction = (const MetaGradientExAction*) pAction;
+							else if( ( pAction->GetType() == META_COMMENT_ACTION ) &&
+									( ( (const MetaCommentAction*) pAction )->GetComment().CompareIgnoreCaseToAscii( "XGRAD_SEQ_END" ) == COMPARE_EQUAL ) )
+							{
+								bDone = sal_True;
+							}
+						}
+
+						if( pGradAction )
+=====================================================================
+Found a 14 line (139 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/EDatabaseMetaData.cxx
+Starting at line 954 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+=====================================================================
+Found a 42 line (139 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LNoException.cxx
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ENoException.cxx
+
+		for( ; i < nLen; ++i )
+		{
+			if (bInString)
+			{
+				// Wenn jetzt das String-Delimiter-Zeichen auftritt ...
+				if ( (*this).GetChar(i) == cStrDel )
+				{
+					if ((i+1 < nLen) && ((*this).GetChar(i+1) == cStrDel))
+					{
+						// Verdoppeltes String-Delimiter-Zeichen:
+						++i;	// kein String-Ende, naechstes Zeichen ueberlesen.
+
+						_rStr += (*this).GetChar(i);	// Zeichen gehoert zum Resultat-String
+					}
+					else
+					{
+						// String-Ende
+						bInString = FALSE;
+					}
+				}
+				else
+				{
+					_rStr += (*this).GetChar(i);	// Zeichen gehoert zum Resultat-String
+				}
+
+			}
+			else
+			{
+				// Stimmt das Tokenzeichen ueberein, dann erhoehe nTok
+				if ( (*this).GetChar(i) == cTok )
+				{
+					// Vorzeitiger Abbruch der Schleife moeglich, denn
+					// wir haben, was wir wollten.
+					nStartPos = i+1;
+					break;
+				}
+				else
+				{
+					_rStr += (*this).GetChar(i);	// Zeichen gehoert zum Resultat-String
+				}
+			}
+		}
+=====================================================================
+Found a 14 line (139 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+Starting at line 954 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+=====================================================================
+Found a 29 line (139 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+
+		COUT << aStr << endl;
+	}
+	volatile int dummy = 0;
+}
+
+//=============================================================================
+
+inline void operator <<= (::rtl::OUString& _rUnicodeString, const sal_Char* _pAsciiString)
+{
+	_rUnicodeString = ::rtl::OUString::createFromAscii(_pAsciiString);
+}
+
+inline void operator <<= (::rtl::OUString& _rUnicodeString, const ::rtl::OString& _rAsciiString)
+{
+	_rUnicodeString <<= _rAsciiString.getStr();
+}
+
+inline void operator <<= (Any& _rUnoValue, const sal_Char* _pAsciiString)
+{
+	_rUnoValue <<= ::rtl::OUString::createFromAscii(_pAsciiString);
+}
+
+inline void operator <<= (Any& _rUnoValue, const ::rtl::OString& _rAsciiString)
+{
+	_rUnoValue <<= _rAsciiString.getStr();
+}
+
+//=============================================================================
+void test_read_access(Reference< XInterface >& xIface, const Reference< XMultiServiceFactory > &xMSF);
+=====================================================================
+Found a 21 line (139 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+		GuardedValueSetUpdateAccess lock( rNode );
+
+		Tree const aTree( lock.getTree() );
+		NodeRef const aNode( lock.getNode() );
+
+		Name aChildName = validateElementName(sName,aTree,aNode);
+
+		ElementRef aElement( aTree.getElement(aNode,aChildName) );
+
+		if (!aElement.isValid())
+		{
+			OSL_ENSURE(!configuration::hasChildOrElement(aTree,aNode,aChildName),"ERROR: Configuration: Existing Set element not found by implementation");
+
+		    OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot replace Set Element. Element '") );
+			sMessage += sName;
+			sMessage += OUString( RTL_CONSTASCII_USTRINGPARAM("' not found in Set ")  );
+			sMessage += aTree.getAbsolutePath(aNode).toString();
+
+			Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+			throw NoSuchElementException( sMessage, xContext );
+		}
+=====================================================================
+Found a 18 line (139 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+
+void VCartesianCoordinateSystem::updateScalesAndIncrementsOnAxes()
+{
+    if(!m_xLogicTargetForAxes.is() || !m_xFinalTarget.is() || !m_xCooSysModel.is() )
+        return;
+
+    sal_Int32 nDimensionCount = m_xCooSysModel->getDimension();
+    bool bSwapXAndY = this->getPropertySwapXAndYAxis();
+
+    tVAxisMap::iterator aIt( m_aAxisMap.begin() );
+    tVAxisMap::const_iterator aEnd( m_aAxisMap.end() );
+    for( ; aIt != aEnd; ++aIt )
+    {
+        VAxisBase* pVAxis = aIt->second.get();
+        if( pVAxis )
+        {
+            sal_Int32 nDimensionIndex = aIt->first.first;
+            sal_Int32 nAxisIndex = aIt->first.second;
+            pVAxis->setExplicitScaleAndIncrement( this->getExplicitScale( nDimensionIndex, nAxisIndex ), this->getExplicitIncrement( nDimensionIndex, nAxisIndex ) );
+=====================================================================
+Found a 34 line (139 tokens) duplication in the following files: 
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_spritecanvas.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_spritecanvas.cxx
+
+        SpriteCanvasBaseT::disposing();
+    }
+
+    ::sal_Bool SAL_CALL SpriteCanvas::showBuffer( ::sal_Bool bUpdateAll ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // avoid repaints on hidden window (hidden: not mapped to
+        // screen). Return failure, since the screen really has _not_
+        // been updated (caller should try again later)
+        return !mbIsVisible ? false : SpriteCanvasBaseT::showBuffer( bUpdateAll );
+    }
+
+    ::sal_Bool SAL_CALL SpriteCanvas::switchBuffer( ::sal_Bool bUpdateAll ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // avoid repaints on hidden window (hidden: not mapped to
+        // screen). Return failure, since the screen really has _not_
+        // been updated (caller should try again later)
+        return !mbIsVisible ? false : SpriteCanvasBaseT::switchBuffer( bUpdateAll );
+    }
+
+    sal_Bool SAL_CALL SpriteCanvas::updateScreen( sal_Bool bUpdateAll ) throw (uno::RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        // avoid repaints on hidden window (hidden: not mapped to
+        // screen). Return failure, since the screen really has _not_
+        // been updated (caller should try again later)
+        return !mbIsVisible ? false : maCanvasHelper.updateScreen(
+            ::basegfx::unotools::b2IRectangleFromAwtRectangle(maBounds),
+            bUpdateAll,
+            mbSurfaceDirty );
+=====================================================================
+Found a 19 line (139 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 22 line (139 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 342 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut 
+                    && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 19 line (139 tokens) duplication in the following files: 
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 22 line (138 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+
+        span_pattern_filter_gray(alloc_type& alloc,
+                                 const rendering_buffer& src, 
+                                 interpolator_type& inter,
+                                 const image_filter_lut& filter) :
+            base_type(alloc, src, color_type(0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 9 line (138 tokens) duplication in the following files: 
+Starting at line 603 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 398 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                fg[0] >>= image_filter_shift;
+                fg[1] >>= image_filter_shift;
+                fg[2] >>= image_filter_shift;
+                fg[3] >>= image_filter_shift;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+=====================================================================
+Found a 17 line (138 tokens) duplication in the following files: 
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        weight = x_hr * y_hr;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+=====================================================================
+Found a 33 line (138 tokens) duplication in the following files: 
+Starting at line 265 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/xmlnumfe.cxx
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/xmlnumfe.cxx
+
+	sPrefix( rPrefix ),
+	pFormatter( NULL ),
+	pCharClass( NULL ),
+	pLocaleData( NULL )
+{
+	//	supplier must be SvNumberFormatsSupplierObj
+	SvNumberFormatsSupplierObj* pObj =
+					SvNumberFormatsSupplierObj::getImplementation( rSupp );
+	if (pObj)
+		pFormatter = pObj->GetNumberFormatter();
+
+	if ( pFormatter )
+	{
+		pCharClass = new CharClass( pFormatter->GetServiceManager(),
+			pFormatter->GetLocale() );
+		pLocaleData = new LocaleDataWrapper( pFormatter->GetServiceManager(),
+			pFormatter->GetLocale() );
+	}
+	else
+	{
+		lang::Locale aLocale( MsLangId::convertLanguageToLocale( MsLangId::getSystemLanguage() ) );
+
+		// #110680#
+		// pCharClass = new CharClass( ::comphelper::getProcessServiceFactory(), aLocale );
+		// pLocaleData = new LocaleDataWrapper( ::comphelper::getProcessServiceFactory(), aLocale );
+		pCharClass = new CharClass( rExport.getServiceFactory(), aLocale );
+		pLocaleData = new LocaleDataWrapper( rExport.getServiceFactory(), aLocale );
+	}
+
+	pUsedList = new SvXMLNumUsedList_Impl;
+}
+
+SvXMLNumFmtExport::~SvXMLNumFmtExport()
+=====================================================================
+Found a 6 line (138 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/timemove_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/timesize_curs.h
+
+ 0x01,0x01,0x01,0x00,0x81,0x03,0x01,0x00,0xc1,0x07,0x01,0x00,0x01,0x01,0x01,
+ 0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0xff,0xff,0x01,0x00,0x00,0x01,
+ 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0xc0,0x07,0x00,0x00,0x80,
+ 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 7 line (138 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawbezier_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcirclecut_curs.h
+
+static char drawcirclecut_curs_bits[] = {
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0a, 0x00,
+=====================================================================
+Found a 5 line (138 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 6 line (138 tokens) duplication in the following files: 
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asns_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+ 0x00,0x00,0xe0,0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0xc0,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x04,0x00,0x00,0xf0,0x07,0x00,0x00,
+ 0xe0,0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x00,
+ 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (138 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 5 line (138 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 25 line (138 tokens) duplication in the following files: 
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+
+	}
+
+    rtl::OUString aId = queryContentIdentifierString( nIndex );
+	if ( aId.getLength() )
+	{
+        uno::Reference< ucb::XContentIdentifier > xId
+            = new ::ucbhelper::ContentIdentifier( aId );
+		m_pImpl->m_aResults[ nIndex ]->xId = xId;
+		return xId;
+	}
+    return uno::Reference< ucb::XContentIdentifier >();
+}
+
+//=========================================================================
+// virtual
+uno::Reference< ucb::XContent > DataSupplier::queryContent(
+                                                        sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContent > xContent
+								= m_pImpl->m_aResults[ nIndex ]->xContent;
+		if ( xContent.is() )
+=====================================================================
+Found a 34 line (138 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static const ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+=====================================================================
+Found a 44 line (138 tokens) duplication in the following files: 
+Starting at line 4538 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmltab.cxx
+Starting at line 4737 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmltab.cxx
+
+												pSaveStruct->eColGrpVertOri );
+					break;
+				}
+			}
+		}
+		// ist beim ersten GetNextToken schon pending, muss bei
+		// wiederaufsetzen auf jedenfall neu gelesen werden!
+		SaveState( 0 );
+	}
+
+	if( !nToken )
+		nToken = GetNextToken();	// naechstes Token
+
+	sal_Bool bDone = sal_False;
+	while( (IsParserWorking() && !bDone) || bPending )
+	{
+		SaveState( nToken );
+
+		nToken = FilterToken( nToken );
+
+		ASSERT( pPendStack || !bCallNextToken ||
+				pCurTable->GetContext() || pCurTable->HasParentSection(),
+				"Wo ist die Section gebieben?" );
+		if( !pPendStack && bCallNextToken &&
+			(pCurTable->GetContext() || pCurTable->HasParentSection()) )
+		{
+			// NextToken direkt aufrufen (z.B. um den Inhalt von
+			// Floating-Frames oder Applets zu ignorieren)
+			NextToken( nToken );
+		}
+		else switch( nToken )
+		{
+		case HTML_TABLE_ON:
+			if( !pCurTable->GetContext()  )
+			{
+				SkipToken( -1 );
+				bDone = sal_True;
+			}
+//			else
+//			{
+//				NextToken( nToken );
+//			}
+			break;
+		case HTML_COLGROUP_ON:
+=====================================================================
+Found a 36 line (138 tokens) duplication in the following files: 
+Starting at line 2206 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 2604 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+						if( !bForceNew && pItem->GetLineEndValue() == pLineEndItem->GetLineEndValue() )
+						{
+							aUniqueName = pItem->GetName();
+							bFoundExisting = sal_True;
+							break;
+						}
+
+						if( pItem->GetName().CompareTo( aUser, aUser.Len() ) == 0 )
+						{
+							sal_Int32 nThisIndex = pItem->GetName().Copy( aUser.Len() ).ToInt32();
+							if( nThisIndex >= nUserIndex )
+								nUserIndex = nThisIndex + 1;
+						}
+					}
+				}
+			}
+
+			if( !bFoundExisting )
+			{
+				aUniqueName = aUser;
+				aUniqueName += sal_Unicode(' ');
+				aUniqueName += String::CreateFromInt32( nUserIndex );
+			}
+		}
+
+		// if the given name is not valid, replace it!
+		if( aUniqueName != GetName() || pTempItem )
+		{
+			if( pTempItem )
+			{
+				pTempItem->SetName( aUniqueName );
+				return pTempItem;
+			}
+			else
+			{
+				return new XLineEndItem( aUniqueName, maPolyPolygon );
+=====================================================================
+Found a 16 line (138 tokens) duplication in the following files: 
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdxcgv.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdxcgv.cxx
+
+	Point aPos(rPos);
+	ImpGetPasteObjList(aPos,pLst);
+	ImpLimitToWorkArea( aPos );
+	if (pLst==NULL) return FALSE;
+	SdrLayerID nLayer;
+	if (!ImpGetPasteLayer(pLst,nLayer)) return FALSE;
+	BOOL bUnmark=(nOptions&(SDRINSERT_DONTMARK|SDRINSERT_ADDMARK))==0 && !IsTextEdit();
+	if (bUnmark) UnmarkAllObj();
+	Rectangle aTextRect(0,0,500,500);
+	SdrPage* pPage=pLst->GetPage();
+	if (pPage!=NULL) {
+		aTextRect.SetSize(pPage->GetSize());
+	}
+	SdrRectObj* pObj=new SdrRectObj(OBJ_TEXT,aTextRect);
+	pObj->SetModel(pMod);
+	pObj->SetLayer(nLayer);
+=====================================================================
+Found a 22 line (138 tokens) duplication in the following files: 
+Starting at line 1767 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4833 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_CheckBox::WriteContents(SvStorageStreamRef &rContents,
+    const uno::Reference< beans::XPropertySet > &rPropSet,
+	const awt::Size &rSize)
+
+{
+	sal_Bool bRet=sal_True;
+    sal_uInt32 nOldPos = rContents->Tell();
+	rContents->SeekRel(12);
+
+	pBlockFlags[0] = 0;
+	pBlockFlags[1] = 0x01;
+	pBlockFlags[2] = 0;
+	pBlockFlags[3] = 0x80;
+	pBlockFlags[4] = 0;
+	pBlockFlags[5] = 0;
+	pBlockFlags[6] = 0;
+	pBlockFlags[7] = 0;
+
+	uno::Any aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Enabled"));
+	fEnabled = any2bool(aTmp);
+
+    aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("BackgroundColor"));
+=====================================================================
+Found a 40 line (138 tokens) duplication in the following files: 
+Starting at line 529 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmsrcimp.cxx
+Starting at line 606 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmsrcimp.cxx
+
+        bFound = aSearchExpression.Matches(sCurrentCheck);
+
+        if (bFound)
+            break;
+
+        // naechstes Feld (implizit naechster Datensatz, wenn noetig)
+        if (!MoveField(nFieldPos, iterFieldLoop, iterBegin, iterEnd))
+        {   // beim Bewegen auf das naechste Feld ging was schief ... weitermachen ist nicht drin, da das naechste Mal genau
+            // das selbe bestimmt wieder schief geht, also Abbruch
+            // vorher aber noch, damit das Weitersuchen an der aktuellen Position weitermacht :
+            try { m_aPreviousLocBookmark = m_xSearchCursor.getBookmark(); }
+            catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); }
+            m_iterPreviousLocField = iterFieldLoop;
+            // und wech
+            return SR_ERROR;
+        }
+
+        Any aCurrentBookmark;
+        try { aCurrentBookmark = m_xSearchCursor.getBookmark(); }
+        catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); return SR_ERROR; }
+
+        bMovedAround = EQUAL_BOOKMARKS(aStartMark, aCurrentBookmark) && (iterFieldLoop == iterInitialField);
+
+        if (nFieldPos == 0)
+            // das heisst, ich habe mich auf einen neuen Datensatz bewegt
+            PropagateProgress(bMovedAround);
+                // if we moved to the starting position we don't have to propagate an 'overflow' message
+                // FS - 07.12.99 - 68530
+
+        // abbrechen gefordert ?
+        if (CancelRequested())
+            return SR_CANCELED;
+
+    } while (!bMovedAround);
+
+    return bFound ? SR_FOUND : SR_NOTFOUND;
+}
+
+//------------------------------------------------------------------------
+FmSearchEngine::SEARCH_RESULT FmSearchEngine::SearchRegularApprox(const ::rtl::OUString& strExpression, sal_Int32& nFieldPos,
+=====================================================================
+Found a 25 line (138 tokens) duplication in the following files: 
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fusel.cxx
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/futext.cxx
+
+						else if (aVEvt.eEvent == SDREVENT_EXECUTEURL && !rMEvt.IsMod2())
+						{
+							/******************************************************
+							* URL ausfuehren
+							******************************************************/
+							mpWindow->ReleaseMouse();
+							SfxStringItem aStrItem(SID_FILE_NAME, aVEvt.pURLField->GetURL());
+							SfxStringItem aReferer(SID_REFERER, mpDocSh->GetMedium()->GetName());
+							SfxBoolItem aBrowseItem( SID_BROWSE, TRUE );
+							SfxViewFrame* pFrame = mpViewShell->GetViewFrame();
+							mpWindow->ReleaseMouse();
+
+							if (rMEvt.IsMod1())
+							{
+								// Im neuen Frame oeffnen
+								pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+											&aStrItem, &aBrowseItem, &aReferer, 0L);
+							}
+							else
+							{
+								// Im aktuellen Frame oeffnen
+								SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
+								pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+											&aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+							}
+=====================================================================
+Found a 23 line (138 tokens) duplication in the following files: 
+Starting at line 5330 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 5407 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+        Rectangle aLogic( PixelToLogic( aPixRect, aDrawMode ) );
+
+        const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
+        const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
+        const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
+
+        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
+        aRanges.push_back( a2DRange );
+
+		// #i70788# get the OverlayManager safely
+		::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
+
+		if(pOverlayManager)
+		{
+			ScOverlayType eType = SC_OVERLAY_INVERT;
+//		          ScOverlayType eType = SC_OVERLAY_HATCH;
+//			      ScOverlayType eType = SC_OVERLAY_TRANSPARENT;
+
+            Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
+            sdr::overlay::OverlayObjectCell* pOverlay =
+	            new sdr::overlay::OverlayObjectCell( eType, aHighlight, aRanges );
+
+            pOverlayManager->add(*pOverlay);
+=====================================================================
+Found a 22 line (138 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cursuno.cxx
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cursuno.cxx
+
+void SAL_CALL ScCellCursorObj::gotoStart() throw(uno::RuntimeException)
+{
+	//	this is similar to collapseToCurrentRegion
+	//!	something like gotoEdge with 4 possible directions is needed
+
+	ScUnoGuard aGuard;
+	const ScRangeList& rRanges = GetRangeList();
+	DBG_ASSERT( rRanges.Count() == 1, "Range? Ranges?" );
+	ScRange aOneRange(*rRanges.GetObject(0));
+
+	aOneRange.Justify();
+	ScDocShell* pDocSh = GetDocShell();
+	if ( pDocSh )
+	{
+		SCCOL nStartCol = aOneRange.aStart.Col();
+		SCROW nStartRow = aOneRange.aStart.Row();
+		SCCOL nEndCol = aOneRange.aEnd.Col();
+		SCROW nEndRow = aOneRange.aEnd.Row();
+		SCTAB nTab = aOneRange.aStart.Tab();
+
+		pDocSh->GetDocument()->GetDataArea(
+						nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+=====================================================================
+Found a 18 line (138 tokens) duplication in the following files: 
+Starting at line 841 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+Starting at line 969 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+
+				const SingleRefData& rRef = rCRef.Ref1;
+				if ( rRef.IsColRel() )
+					nCol = aPos.Col() + rRef.nRelCol;
+				else
+					nCol = rRef.nCol;
+				if ( rRef.IsRowRel() )
+					nRow = aPos.Row() + rRef.nRelRow;
+				else
+					nRow = rRef.nRow;
+				if ( rRef.IsTabRel() )
+					nTab = aPos.Tab() + rRef.nRelTab;
+				else
+					nTab = rRef.nTab;
+				if( !ValidCol( nCol) || rRef.IsColDeleted() )
+					SetError( errNoRef ), nCol = 0;
+				if( !ValidRow( nRow) || rRef.IsRowDeleted() )
+					SetError( errNoRef ), nRow = 0;
+				if( !ValidTab( (SCTAB)nTab, nMaxTab) || rRef.IsTabDeleted() )
+=====================================================================
+Found a 19 line (138 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/math/test_rtl_math.cxx
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/math/test_rtl_math.cxx
+
+    aBuffer.append(RTL_CONSTASCII_STRINGPARAM("), "));
+    aBuffer.append(static_cast< sal_Int32 >(rTest.eFormat));
+    aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
+    aBuffer.append(rTest.nDecPlaces);
+    aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
+    aBuffer.append(rTest.cDecSeparator);
+    aBuffer.append(RTL_CONSTASCII_STRINGPARAM(", "));
+    aBuffer.append(static_cast< sal_Int32 >(rTest.bEraseTrailingDecZeros));
+    aBuffer.append(RTL_CONSTASCII_STRINGPARAM("): "));
+    StringT::appendBuffer(aBuffer, aResult1);
+    if (!bSuccess)
+    {
+        aBuffer.append(RTL_CONSTASCII_STRINGPARAM(" != "));
+        StringT::appendBuffer(aBuffer, aResult2);
+    }
+    // call to the real test checker
+    // pTestResult->pFuncs->state_(pTestResult, bSuccess, "test_rtl_math",
+    //                             aBuffer.getStr(), false);
+    c_rtl_tres_state(pTestResult, bSuccess, aBuffer.getStr(), "testStringToNumberToString");
+=====================================================================
+Found a 19 line (138 tokens) duplication in the following files: 
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ocompinstream.cxx
+Starting at line 2474 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	// TODO/LATER: in future the unification of the ID could be checked
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Id" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
+					return aSeq[nInd1];
+				break;
+			}
+	
+	throw container::NoSuchElementException();
+}
+
+//-----------------------------------------------
+uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OWriteStream::getRelationshipsByType(  const ::rtl::OUString& sType  )
+=====================================================================
+Found a 5 line (138 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 6 line (138 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+
+ 0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0x80,0x03,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (138 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 6 line (138 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+
+ 0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0x80,0x03,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 6 line (138 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+static sal_Unicode consonant[] = {
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // 3000
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // 3010
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // 3020
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // 3030
+	0x3040, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x3042, 0x304B, 0x304B, 0x304B, 0x304B, 0x304B,  // 3040
+=====================================================================
+Found a 63 line (138 tokens) duplication in the following files: 
+Starting at line 2296 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1730 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+	throw writerfilter::rtftok::RTFParseException("fatal error: %s"/*, msg*/);
+	}
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		yytext[yyleng] = yy_hold_char; \
+		yy_c_buf_p = yytext + n; \
+		yy_hold_char = *yy_c_buf_p; \
+		*yy_c_buf_p = '\0'; \
+		yyleng = n; \
+		} \
+	while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+	{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+	}
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+	{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+	}
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+	{
+	return (void *) rtl_allocateMemory( size );
+=====================================================================
+Found a 22 line (138 tokens) duplication in the following files: 
+Starting at line 2777 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 4975 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+            if( !bParaStart )
+            {
+                padd(ascii("text:style-name"), sXML_CDATA,
+                    ascii(getPStyleName(para->GetParaShape()->index, buf)));
+                rstartEl( ascii("text:p"),rList);
+                pList->clear();
+            }
+            if( d->bFirstPara && d->bInBody )
+            {
+/* for HWP's Bookmark */
+                strcpy(buf,"[������ ó=]");
+                padd(ascii("text:name"), sXML_CDATA, OUString(buf, strlen(buf), RTL_TEXTENCODING_EUC_KR));
+                rstartEl(ascii("text:bookmark"), rList);
+                pList->clear();
+                rendEl(ascii("text:bookmark"));
+                d->bFirstPara = sal_False;
+            }
+            if( d->bInHeader )
+            {
+                makeShowPageNum();
+                d->bInHeader = sal_False;
+            }
+=====================================================================
+Found a 26 line (138 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/uiconfigelementwrapperbase.cxx
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/uielementwrapperbase.cxx
+Starting at line 7456 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 443 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/rootitemcontainer.cxx
+
+com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL RootItemContainer::getPropertySetInfo() 
+throw (::com::sun::star::uno::RuntimeException)
+{
+	// Optimize this method !
+	// We initialize a static variable only one time. And we don't must use a mutex at every call!
+	// For the first call; pInfo is NULL - for the second call pInfo is different from NULL!
+    static com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo >* pInfo = NULL;
+
+    if( pInfo == NULL )
+	{
+		// Ready for multithreading
+		osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+		// Control this pointer again, another instance can be faster then these!
+        if( pInfo == NULL )
+		{
+			// Create structure of propertysetinfo for baseclass "OPropertySetHelper".
+			// (Use method "getInfoHelper()".)
+            static com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+			pInfo = &xInfo;
+		}
+	}
+
+	return (*pInfo);
+}
+
+const com::sun::star::uno::Sequence< com::sun::star::beans::Property > RootItemContainer::impl_getStaticPropertyDescriptor()
+=====================================================================
+Found a 24 line (138 tokens) duplication in the following files: 
+Starting at line 1714 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/pdf/pdfexport.cxx
+Starting at line 1150 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/print2.cxx
+
+            const double    fMaxPixelY = aDstSizeTwip.Height() * nMaxBmpDPIY / 1440.0;
+
+            // check, if the bitmap DPI exceeds the maximum DPI (allow 4 pixel rounding tolerance)
+            if( ( ( fBmpPixelX > ( fMaxPixelX + 4 ) ) || 
+                  ( fBmpPixelY > ( fMaxPixelY + 4 ) ) ) && 
+                ( fBmpPixelY > 0.0 ) && ( fMaxPixelY > 0.0 ) )
+            {
+                // do scaling
+                Size            aNewBmpSize;
+		        const double    fBmpWH = fBmpPixelX / fBmpPixelY;
+		        const double    fMaxWH = fMaxPixelX / fMaxPixelY;
+
+			    if( fBmpWH < fMaxWH )
+			    {
+				    aNewBmpSize.Width() = FRound( fMaxPixelY * fBmpWH );
+				    aNewBmpSize.Height() = FRound( fMaxPixelY );
+			    }
+			    else if( fBmpWH > 0.0 )
+			    {
+				    aNewBmpSize.Width() = FRound( fMaxPixelX );
+				    aNewBmpSize.Height() = FRound( fMaxPixelX / fBmpWH);
+			    }
+
+                if( aNewBmpSize.Width() && aNewBmpSize.Height() )
+=====================================================================
+Found a 48 line (138 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+using namespace ::com::sun::star;
+
+
+
+#define IUL 6
+
+
+
+uno::Sequence< ::rtl::OUString > Interceptor::m_aInterceptedURL(IUL);
+
+
+
+
+struct equalOUString
+{
+	bool operator()( 
+		const rtl::OUString& rKey1,
+		const rtl::OUString& rKey2 ) const
+	{
+		return !!( rKey1 == rKey2 );
+	}
+};
+
+
+struct hashOUString
+{
+	size_t operator()( const rtl::OUString& rName ) const
+	{
+		return rName.hashCode();
+	}
+};
+
+
+
+class StatusChangeListenerContainer
+	: public ::cppu::OMultiTypeInterfaceContainerHelperVar<
+rtl::OUString,hashOUString,equalOUString>
+{
+public:
+	StatusChangeListenerContainer( ::osl::Mutex& aMutex )
+		:  cppu::OMultiTypeInterfaceContainerHelperVar<
+	rtl::OUString,hashOUString,equalOUString>(aMutex)
+	{
+	}
+};
+
+
+void SAL_CALL
+=====================================================================
+Found a 13 line (138 tokens) duplication in the following files: 
+Starting at line 993 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+Starting at line 1024 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+
+						sProp = PROPERTY_UPDATE_CATALOGNAME;
+					else if ( aName == CONFIGKEY_LAYOUTINFORMATION )
+						sProp = PROPERTY_LAYOUTINFORMATION;
+
+					if ( sProp.getLength() )
+					{
+                        if ( m_aProperties.find(m_aStack.top().second) == m_aProperties.end() )
+                            m_aProperties.insert(::std::map< sal_Int16 ,Sequence< ::rtl::OUString> >::value_type(m_aStack.top().second,Sequence< ::rtl::OUString>()));
+						sal_Int32 nPos = m_aProperties[m_aStack.top().second].getLength();
+						m_aProperties[m_aStack.top().second].realloc(nPos+1);
+						m_aProperties[m_aStack.top().second][nPos] = sProp;
+					}
+					else
+=====================================================================
+Found a 24 line (138 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/component_context.cxx
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno.cxx
+
+		TYPELIB_DANGER_RELEASE( pTypeDescr );
+		
+		buf.appendAscii( RTL_CONSTASCII_STRINGPARAM(" }") );
+		break;
+	}
+	case typelib_TypeClass_SEQUENCE:
+	{
+		typelib_TypeDescription * pTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef );
+		
+		uno_Sequence * pSequence = *(uno_Sequence **)pVal;
+		typelib_TypeDescription * pElementTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pElementTypeDescr, ((typelib_IndirectTypeDescription *)pTypeDescr)->pType );
+		
+		sal_Int32 nElementSize = pElementTypeDescr->nSize;
+		sal_Int32 nElements	   = pSequence->nElements;
+		
+		if (nElements)
+		{
+			buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("{ ") );
+			char * pElements = pSequence->elements;
+			for ( sal_Int32 nPos = 0; nPos < nElements; ++nPos )
+			{
+				buf.append( val2str( pElements + (nElementSize * nPos), pElementTypeDescr->pWeakRef, mode ) );
+=====================================================================
+Found a 29 line (138 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LConnection.cxx
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NConnection.cxx
+
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+	Reference< XDatabaseMetaData > xMetaData = m_xMetaData;
+	if(!xMetaData.is())
+	{
+		xMetaData = new OEvoabDatabaseMetaData(this);
+		m_xMetaData = xMetaData;
+	}
+
+	return xMetaData;
+}
+//------------------------------------------------------------------------------
+::com::sun::star::uno::Reference< XTablesSupplier > OEvoabConnection::createCatalog()
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+ 	Reference< XTablesSupplier > xTab = m_xCatalog;
+ 	if(!xTab.is())
+ 	{
+ 		OEvoabCatalog *pCat = new OEvoabCatalog(this);
+ 		xTab = pCat;
+ 		m_xCatalog = xTab;
+ 	}
+ 	return xTab;
+}
+// --------------------------------------------------------------------------------
+Reference< XStatement > SAL_CALL OEvoabConnection::createStatement(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 34 line (138 tokens) duplication in the following files: 
+Starting at line 3051 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 3432 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+sal_Bool EnumType::dumpHFile(
+    FileStream& o, codemaker::cppumaker::Includes & includes)
+	throw( CannotDumpException )
+{
+	OString headerDefine(dumpHeaderDefine(o, "HDL"));
+	o << "\n";
+
+	addDefaultHIncludes(includes);
+    includes.dump(o, 0);
+	o << "\n";
+
+    if (codemaker::cppumaker::dumpNamespaceOpen(o, m_typeName, false)) {
+        o << "\n";
+    }
+
+	dumpDeclaration(o);
+
+    if (codemaker::cppumaker::dumpNamespaceClose(o, m_typeName, false)) {
+        o << "\n";
+    }
+
+	o << "\nnamespace com { namespace sun { namespace star { namespace uno {\n"
+	  << "class Type;\n} } } }\n\n";
+
+	o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
+	dumpType(o, m_typeName, sal_True, sal_False); 
+	o << "* ) SAL_THROW( () );\n\n";
+
+	o << "#endif // "<< headerDefine << "\n";
+
+	return sal_True;
+}
+
+sal_Bool EnumType::dumpDeclaration(FileStream& o)
+=====================================================================
+Found a 28 line (138 tokens) duplication in the following files: 
+Starting at line 2010 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+	sal_Bool bSelfCheck = sal_True;
+	if (!pReader)
+	{
+		bSelfCheck = sal_False;
+		pReader = &m_reader;
+	}
+
+	sal_uInt32 count = 0;
+	OString superType(pReader->getSuperTypeName());
+	if (superType.getLength() > 0)
+	{
+		TypeReader aSuperReader(m_typeMgr.getTypeReader(superType));
+		if ( aSuperReader.isValid() )
+		{
+			count = checkInheritedMemberCount(&aSuperReader);
+		}
+	}
+
+	if (bSelfCheck)
+	{
+		count += pReader->getMethodCount();
+		sal_uInt32 fieldCount = pReader->getFieldCount();
+		RTFieldAccess access = RT_ACCESS_INVALID;
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = pReader->getFieldAccess(i);
+
+			if (access != RT_ACCESS_CONST && access != RT_ACCESS_INVALID)
+=====================================================================
+Found a 31 line (138 tokens) duplication in the following files: 
+Starting at line 1049 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 1273 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+OString CunoType::typeToIdentifier(const OString& type)
+{
+	sal_uInt32 index = type.lastIndexOf(']');
+	sal_uInt32 seqNum = (index > 0 ? ((index+1) / 2) : 0);
+
+	OString relType = (index > 0 ? ((OString)type).copy(index+1) : type);
+	OString sIdentifier;
+
+	while( seqNum > 0 )
+	{
+		sIdentifier += OString("seq");
+
+		if ( --seqNum == 0 )
+		{
+			sIdentifier += OString("_");
+		}
+	}
+
+	if ( isBaseType(relType) )
+	{
+		sIdentifier += relType.replace(' ', '_');
+	} else
+	{
+		sIdentifier += relType.replace('/', '_');
+	}
+
+
+	return sIdentifier;
+}
+
+OString	CunoType::checkSpecialCunoType(const OString& type)
+=====================================================================
+Found a 21 line (138 tokens) duplication in the following files: 
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+
+void WrappedDataSourceLabelsInFirstColumnProperty::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& /*xInnerPropertySet*/ ) const
+                throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+    sal_Bool bLabelsInFirstRow = sal_True;
+    if( ! (rOuterValue >>= bLabelsInFirstRow) )
+        throw lang::IllegalArgumentException( C2U("Property DataSourceLabelsInFirstRow requires value of type boolean"), 0, 0 );
+
+    m_aOuterValue = rOuterValue;
+    bool bNewValue = bLabelsInFirstRow;
+
+    ::rtl::OUString aRangeString;
+    bool bUseColumns = true;
+    bool bFirstCellAsLabel = true;
+    bool bHasCategories = true;
+    uno::Sequence< sal_Int32 > aSequenceMapping;
+
+    if( DataSourceHelper::detectRangeSegmentation(
+            m_spChart2ModelContact->getChartModel(), aRangeString, aSequenceMapping, bUseColumns
+            , bFirstCellAsLabel, bHasCategories ) )
+    {
+        if( bUseColumns && bNewValue != bHasCategories )
+=====================================================================
+Found a 19 line (138 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 18 line (138 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			pCppArgs[ nPos ] = CPPU_CURRENT_NAMESPACE::adjustPointer(pCppStack, pParamTypeDescr );
+=====================================================================
+Found a 23 line (138 tokens) duplication in the following files: 
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 436 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+                reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+                    member)->pAttributeTypeRef->eTypeClass);
+=====================================================================
+Found a 8 line (138 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,faw,awd,awd,awd, // ... 63
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+	};
+
+	const INT16 A_nHtmlDefStatus[C_nStatusSize] =
+=====================================================================
+Found a 17 line (137 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                    y_hr += ry_inv;
+                    ++y_lr;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::R]) fg[order_type::R] = fg[order_type::R];
+=====================================================================
+Found a 19 line (137 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        weight = (image_subpixel_size - x_hr) * y_hr;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+
+                        x_lr++;
+=====================================================================
+Found a 5 line (137 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 24 line (137 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/xlfd_extd.cxx
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/xlfd_extd.cxx
+
+ScalableXlfd::ToString( ByteString &rString,
+		unsigned short nPixelSize, char* pMatricsString, rtl_TextEncoding nEncoding ) const
+{
+	int nIdx = GetEncodingIdx( nEncoding );
+	if ( nIdx < 0 )
+		return;
+
+	ExtendedXlfd::ToString( rString, nPixelSize, nEncoding);
+
+	EncodingInfo& rInfo = mpEncodingInfo[ nIdx ];
+	AppendAttribute( mpFactory->RetrieveAddstyle(rInfo.mnAddstyle), rString );
+
+	rString += "-*-";
+	char pTmp[256];
+	snprintf( pTmp, sizeof(pTmp), pMatricsString, nPixelSize, nPixelSize );
+	rString += pTmp;
+	rString += "-*-*-";
+	rString += static_cast< char >(rInfo.mcSpacing);
+	rString += "-*";
+
+	AppendAttribute( mpFactory->RetrieveCharset(rInfo.mnCharset), rString );
+}
+
+ImplFontData* ScalableXlfd::GetImplFontData() const
+=====================================================================
+Found a 10 line (137 tokens) duplication in the following files: 
+Starting at line 1703 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 1761 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+                        aDstCol.SetBlue(0);
+                    }
+                    else
+                    {
+                        aDstCol.SetRed( (BYTE)(((int)(aSrcCol.GetRed())*nSrcAlpha + (int)(aDstCol.GetRed())*nDstAlpha) /
+                                               (nSrcAlpha+nDstAlpha)) );
+                        aDstCol.SetGreen( (BYTE)(((int)(aSrcCol.GetGreen())*nSrcAlpha + (int)(aDstCol.GetGreen())*nDstAlpha) /
+                                                 (nSrcAlpha+nDstAlpha)) );
+                        aDstCol.SetBlue( (BYTE)(((int)(aSrcCol.GetBlue())*nSrcAlpha + (int)(aDstCol.GetBlue())*nDstAlpha) /
+                                                (nSrcAlpha+nDstAlpha)) );
+=====================================================================
+Found a 24 line (137 tokens) duplication in the following files: 
+Starting at line 430 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+Starting at line 1385 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+
+							::ucbhelper::Content aCnt( aSwapURL,
+												 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+							aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ),
+												 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+						}
+						catch( const ::com::sun::star::ucb::ContentCreationException& )
+						{
+						}
+						catch( const ::com::sun::star::uno::RuntimeException& )
+						{
+						}
+						catch( const ::com::sun::star::ucb::CommandAbortedException& )
+						{
+						}
+        		        catch( const ::com::sun::star::uno::Exception& )
+		                {
+		                }
+
+						delete mpSwapFile;
+					}
+
+					mpSwapFile = NULL;
+				}
+=====================================================================
+Found a 20 line (137 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gfxlink.cxx
+Starting at line 1099 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+
+									::ucbhelper::Content aCnt( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ),
+														 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+									aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ),
+														 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+								}
+								catch( const ::com::sun::star::ucb::ContentCreationException& )
+								{
+								}
+								catch( const ::com::sun::star::uno::RuntimeException& )
+								{
+								}
+								catch( const ::com::sun::star::ucb::CommandAbortedException& )
+								{
+            					}
+        		                catch( const ::com::sun::star::uno::Exception& )
+		                        {
+		                        }
+							}
+						}
+=====================================================================
+Found a 27 line (137 tokens) duplication in the following files: 
+Starting at line 1413 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/content.cxx
+Starting at line 1454 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/content.cxx
+
+                                        nPropertyHandles,
+					  				const Sequence< Any >& rPropertyValues,
+									const Reference< XInputStream >& rData,
+					  				Content& rNewContent )
+	throw( CommandAbortedException, RuntimeException, Exception )
+{
+	if ( rContentType.getLength() == 0 )
+		return sal_False;
+
+	Reference< XContentCreator > xCreator( m_xImpl->getContent(), UNO_QUERY );
+
+    OSL_ENSURE( xCreator.is(),
+				"Content::insertNewContent - Not a XContentCreator!" );
+
+	if ( !xCreator.is() )
+		return sal_False;
+
+	ContentInfo aInfo;
+	aInfo.Type = rContentType;
+	aInfo.Attributes = 0;
+
+    Reference< XContent > xNew = xCreator->createNewContent( aInfo );
+	if ( !xNew.is() )
+		return sal_False;
+
+	Content aNewContent( xNew, m_xImpl->getEnvironment() );
+	aNewContent.setPropertyValues( nPropertyHandles, rPropertyValues );
+=====================================================================
+Found a 28 line (137 tokens) duplication in the following files: 
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+DataSupplier::queryContent( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContent > xContent
+            = m_pImpl->m_aResults[ nIndex ]->xContent;
+		if ( xContent.is() )
+		{
+			// Already cached.
+			return xContent;
+		}
+	}
+
+    uno::Reference< ucb::XContentIdentifier > xId
+        = queryContentIdentifier( nIndex );
+	if ( xId.is() )
+	{
+		try
+		{
+            uno::Reference< ucb::XContent > xContent
+				= m_pImpl->m_xContent->getProvider()->queryContent( xId );
+			m_pImpl->m_aResults[ nIndex ]->xContent = xContent;
+			return xContent;
+
+		}
+        catch ( ucb::IllegalIdentifierException& )
+=====================================================================
+Found a 30 line (137 tokens) duplication in the following files: 
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+	if ( !bFound )
+		m_pImpl->m_bCountFinal = sal_True;
+
+	rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+	if ( xResultSet.is() )
+	{
+		// Callbacks follow!
+		aGuard.clear();
+
+		if ( nOldCount < m_pImpl->m_aResults.size() )
+			xResultSet->rowCountChanged(
+									nOldCount, m_pImpl->m_aResults.size() );
+
+		if ( m_pImpl->m_bCountFinal )
+			xResultSet->rowCountFinal();
+	}
+
+	return bFound;
+}
+
+//=========================================================================
+// virtual
+sal_uInt32 DataSupplier::totalCount()
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( m_pImpl->m_bCountFinal )
+		return m_pImpl->m_aResults.size();
+
+	sal_uInt32 nOldCount = m_pImpl->m_aResults.size();
+=====================================================================
+Found a 33 line (137 tokens) duplication in the following files: 
+Starting at line 2246 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 2846 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+        if ( exchange( xNewId ) )
+        {
+            // Process instanciated children...
+            
+            ContentRefList aChildren;
+            queryChildren( aChildren );
+	    
+            ContentRefList::const_iterator it  = aChildren.begin();
+            ContentRefList::const_iterator end = aChildren.end();
+
+            while ( it != end )
+            {
+                ContentRef xChild = (*it);
+
+                // Create new content identifier for the child...
+                uno::Reference< ucb::XContentIdentifier >
+                    xOldChildId = xChild->getIdentifier();
+                rtl::OUString aOldChildURL
+                    = xOldChildId->getContentIdentifier();
+                rtl::OUString aNewChildURL
+                    = aOldChildURL.replaceAt(
+                        0,
+                        aOldURL.getLength(),
+                        xNewId->getContentIdentifier() );
+                uno::Reference< ucb::XContentIdentifier >
+                    xNewChildId
+                    = new ::ucbhelper::ContentIdentifier( m_xSMgr, aNewChildURL );
+                
+                if ( !xChild->exchangeIdentity( xNewChildId ) )
+                    return sal_False;
+                
+                ++it;
+            }
+=====================================================================
+Found a 28 line (137 tokens) duplication in the following files: 
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydatasupplier.cxx
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+DataSupplier::queryContent( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< ucb::XContent > xContent
+            = m_pImpl->m_aResults[ nIndex ]->xContent;
+		if ( xContent.is() )
+		{
+			// Already cached.
+			return xContent;
+		}
+	}
+
+    uno::Reference< ucb::XContentIdentifier > xId
+        = queryContentIdentifier( nIndex );
+	if ( xId.is() )
+	{
+		try
+		{
+            uno::Reference< ucb::XContent > xContent
+				= m_pImpl->m_xContent->getProvider()->queryContent( xId );
+			m_pImpl->m_aResults[ nIndex ]->xContent = xContent;
+			return xContent;
+
+		}
+        catch ( ucb::IllegalIdentifierException& )
+=====================================================================
+Found a 33 line (137 tokens) duplication in the following files: 
+Starting at line 1152 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 2246 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+			if ( isFolder() )
+			{
+				// Process instanciated children...
+
+				ContentRefList aChildren;
+				queryChildren( aChildren );
+
+				ContentRefList::const_iterator it  = aChildren.begin();
+				ContentRefList::const_iterator end = aChildren.end();
+
+				while ( it != end )
+				{
+					ContentRef xChild = (*it);
+
+					// Create new content identifier for the child...
+                    uno::Reference< ucb::XContentIdentifier > xOldChildId
+                        = xChild->getIdentifier();
+                    rtl::OUString aOldChildURL
+                        = xOldChildId->getContentIdentifier();
+                    rtl::OUString aNewChildURL
+						= aOldChildURL.replaceAt(
+										0,
+										aOldURL.getLength(),
+										xNewId->getContentIdentifier() );
+                    uno::Reference< ucb::XContentIdentifier > xNewChildId
+						= new ::ucbhelper::ContentIdentifier( 
+                            m_xSMgr, aNewChildURL );
+
+					if ( !xChild->exchangeIdentity( xNewChildId ) )
+						return sal_False;
+
+					++it;
+				}
+=====================================================================
+Found a 18 line (137 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+void SAL_CALL Test_Impl::setSequencesOut( Sequence< sal_Bool >& aSeqBoolean,
+                             Sequence< sal_Unicode >& aSeqChar,
+                             Sequence< sal_Int8 >& aSeqByte,
+                             Sequence< sal_Int16 >& aSeqShort,
+                             Sequence< sal_uInt16 >& aSeqUShort,             
+                             Sequence< sal_Int32 >& aSeqLong,
+                             Sequence< sal_uInt32 >& aSeqULong,             
+                             Sequence< sal_Int64 >& aSeqHyper,
+                             Sequence< sal_uInt64 >& aSeqUHyper,
+                             Sequence< float >& aSeqFloat,
+                             Sequence< double >& aSeqDouble,
+                             Sequence< TestEnum >& aSeqEnum,
+                             Sequence< OUString >& aSeqString,
+                             Sequence< Reference< XInterface > >& aSeqXInterface,
+                             Sequence< Any >& aSeqAny,
+                             Sequence< Sequence< sal_Int32 > >& aSeqDim2,
+                             Sequence< Sequence< Sequence< sal_Int32 > > >& aSeqDim3 )
+        throw (RuntimeException)
+=====================================================================
+Found a 18 line (137 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 839 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+void SAL_CALL Test_Impl::setSequencesInOut(Sequence< sal_Bool >& aSeqBoolean,
+                                Sequence< sal_Unicode >& aSeqChar,
+                                Sequence< sal_Int8 >& aSeqByte,
+                                Sequence< sal_Int16 >& aSeqShort,
+                                Sequence< sal_uInt16 >& aSeqUShort,
+                                Sequence< sal_Int32 >& aSeqLong,
+                                Sequence< sal_uInt32 >& aSeqULong,
+                                Sequence< sal_Int64 >& aSeqHyper,
+                                Sequence< sal_uInt64 >& aSeqUHyper,
+                                Sequence< float >& aSeqFloat,
+                                Sequence< double >& aSeqDouble,
+                                Sequence< TestEnum >& aSeqTestEnum,
+                                Sequence< OUString >& aSeqString,
+                                Sequence<Reference<XInterface > >& aSeqXInterface,
+                                Sequence< Any >& aSeqAny,
+                                Sequence< Sequence< sal_Int32 > >& aSeqDim2,
+                                Sequence< Sequence< Sequence< sal_Int32 > > >& aSeqDim3 )
+        throw (RuntimeException)
+=====================================================================
+Found a 31 line (137 tokens) duplication in the following files: 
+Starting at line 3287 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/untbl.cxx
+Starting at line 3314 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/untbl.cxx
+
+void InsertSort( SvULongs& rArr, ULONG nIdx, USHORT* pInsPos )
+{
+	register USHORT nO	= rArr.Count(), nM, nU = 0;
+	if( nO > 0 )
+	{
+		nO--;
+		while( nU <= nO )
+		{
+			nM = nU + ( nO - nU ) / 2;
+			if( *(rArr.GetData() + nM) == nIdx )
+			{
+				ASSERT( FALSE, "Index ist schon vorhanden, darf nie sein!" );
+				return;
+			}
+			if( *(rArr.GetData() + nM) < nIdx )
+				nU = nM + 1;
+			else if( nM == 0 )
+				break;
+			else
+				nO = nM - 1;
+		}
+	}
+	rArr.Insert( nIdx, nU );
+	if( pInsPos )
+		*pInsPos = nU;
+}
+
+#if defined( JP_DEBUG ) && !defined( PRODUCT )
+
+
+void DumpDoc( SwDoc* pDoc, const String& rFileNm )
+=====================================================================
+Found a 30 line (137 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/txtatr2.cxx
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/txtatr2.cxx
+
+		USHORT nId = rStr.Len() ? rFmt.GetCharFmtId() : RES_POOLCHR_RUBYTEXT;
+
+		// JP 10.02.2000, Bug 72806: dont modify the doc for getting the
+		//				correct charstyle.
+		BOOL bResetMod = !pDoc->IsModified();
+		Link aOle2Lnk;
+		if( bResetMod )
+		{
+			aOle2Lnk = pDoc->GetOle2Link();
+			((SwDoc*)pDoc)->SetOle2Link( Link() );
+		}
+
+		pRet = IsPoolUserFmt( nId )
+				? ((SwDoc*)pDoc)->FindCharFmtByName( rStr )
+				: ((SwDoc*)pDoc)->GetCharFmtFromPool( nId );
+
+		if( bResetMod )
+		{
+			((SwDoc*)pDoc)->ResetModified();
+			((SwDoc*)pDoc)->SetOle2Link( aOle2Lnk );
+		}
+	}
+
+	if( pRet )
+		pRet->Add( this );
+	else if( GetRegisteredIn() )
+		pRegisteredIn->Remove( this );
+
+	return pRet;
+}
+=====================================================================
+Found a 21 line (137 tokens) duplication in the following files: 
+Starting at line 2320 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/layact.cxx
+Starting at line 2367 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/layact.cxx
+
+			if ( bBrowse && !IsIdle() && !IsCalcLayout() && !IsComplete() &&
+				 pCntnt->Frm().Top() > pImp->GetShell()->VisArea().Bottom())
+			{
+				const long nBottom = pImp->GetShell()->VisArea().Bottom();
+				const SwFrm *pTmp = lcl_FindFirstInvaCntnt( pPage,
+													nBottom, pCntnt );
+				if ( !pTmp )
+				{
+					if ( (!(IS_FLYS && IS_INVAFLY) ||
+                            !lcl_FindFirstInvaObj( pPage, nBottom )) &&
+							(!pPage->IsInvalidLayout() ||
+							!lcl_FindFirstInvaLay( pPage, nBottom )))
+						SetBrowseActionStop( TRUE );
+                    // OD 14.04.2003 #106346# - consider interrupt formatting.
+                    if ( !mbFormatCntntOnInterrupt )
+                    {
+                        return FALSE;
+                    }
+				}
+			}
+			pCntnt = pCntnt->GetNextCntntFrm();
+=====================================================================
+Found a 29 line (137 tokens) duplication in the following files: 
+Starting at line 1942 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+Starting at line 2081 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+
+            aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
+            // <--
+
+			static const USHORT aAbsSpace[ MAXLEVEL ] =
+				{
+//				cm: 0,4  0,8  1,2  1,6  2,0   2,4   2,8   3,2   3,6   4,0
+					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
+				};
+#ifdef USE_MEASUREMENT
+			static const USHORT aAbsSpaceInch[ MAXLEVEL ] =
+				{
+					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
+				};
+			const USHORT* pArr = MEASURE_METRIC ==
+								GetAppLocaleData().getMeasurementSystemEnum()
+									? aAbsSpace
+									: aAbsSpaceInch;
+#else
+			const USHORT* pArr = aAbsSpace;
+#endif
+
+			aFmt.SetFirstLineOffset( - (*pArr) );
+			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
+			{
+				aFmt.SetAbsLSpace( *pArr );
+				pNewRule->Set( n, aFmt );
+			}
+		}
+		break;
+=====================================================================
+Found a 9 line (137 tokens) duplication in the following files: 
+Starting at line 841 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+Starting at line 866 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+	FrPair aS(GetInchOrMM(eS));
+	FrPair aD(GetInchOrMM(eD));
+	FASTBOOL bSInch=IsInch(eS);
+	FASTBOOL bDInch=IsInch(eD);
+	FrPair aRet(aD.X()/aS.X(),aD.Y()/aS.Y());
+	if (bSInch && !bDInch) { aRet.X()*=Fraction(127,5); aRet.Y()*=Fraction(127,5); }
+	if (!bSInch && bDInch) { aRet.X()*=Fraction(5,127); aRet.Y()*=Fraction(5,127); }
+	return aRet;
+};
+=====================================================================
+Found a 17 line (137 tokens) duplication in the following files: 
+Starting at line 1989 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+
+void SdrObjGroup::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact)
+{
+	FASTBOOL bXMirr=(xFact.GetNumerator()<0) != (xFact.GetDenominator()<0);
+	FASTBOOL bYMirr=(yFact.GetNumerator()<0) != (yFact.GetDenominator()<0);
+	if (bXMirr || bYMirr) {
+		Point aRef1(GetSnapRect().Center());
+		if (bXMirr) {
+			Point aRef2(aRef1);
+			aRef2.Y()++;
+			NbcMirrorGluePoints(aRef1,aRef2);
+		}
+		if (bYMirr) {
+			Point aRef2(aRef1);
+			aRef2.X()++;
+			NbcMirrorGluePoints(aRef1,aRef2);
+		}
+	}
+=====================================================================
+Found a 20 line (137 tokens) duplication in the following files: 
+Starting at line 3388 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3050 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0xa000, DFF_Prop_geoBottom, 0, 0x400 }
+};
+static const sal_uInt16 mso_sptBracketSegm[] =
+{
+	0x4000, 0x2001, 0x0001, 0x2001, 0x8000
+};
+static const SvxMSDffVertPair mso_sptLeftBracketVert[] =	// adj value 0 -> 10800
+{
+	{ 21600, 0 }, { 10800,	0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I },
+	{ 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 }
+};
+static const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] =
+{
+	{ { 6350, 3 MSO_I }, { 21600, 4 MSO_I } }
+};
+static const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] =
+{
+	{ 21600, 0 }, { 0, 10800 }, { 21600, 21600 }
+};
+static const mso_CustomShape msoLeftBracket =
+=====================================================================
+Found a 17 line (137 tokens) duplication in the following files: 
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+			aBool = *(sal_Bool *)rParams[0].getValue();
+			aChar = *(sal_Unicode *)rParams[1].getValue();
+			rParams[2] >>= nByte;
+			rParams[3] >>= nShort;
+			rParams[4] >>= nUShort;
+			rParams[5] >>= nLong;
+			rParams[6] >>= nULong;
+			rParams[7] >>= nHyper;
+			rParams[8] >>= nUHyper;
+			rParams[9] >>= fFloat;
+			rParams[10] >>= fDouble;
+			rParams[11] >>= eEnum;
+			rParams[12] >>= aString;
+			rParams[13] >>= xInterface;
+			rParams[14] >>= aAny;
+			rParams[15] >>= aSeq;
+			rParams[16] >>= aData;
+=====================================================================
+Found a 46 line (137 tokens) duplication in the following files: 
+Starting at line 1146 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/selector.cxx
+
+                        pmoduleDescr[ pos ].Value >>= factoryURL;
+                        break;
+                    }
+                }
+            }
+            if( factoryURL.getLength() > 0 )
+            {
+                if( bHighContrast == BMP_COLOR_NORMAL )
+                    aImage = SvFileInformationManager::GetFileImage(
+                        INetURLObject(factoryURL), false,
+                        BMP_COLOR_NORMAL );
+                else
+                    aImage = SvFileInformationManager::GetFileImage(
+                        INetURLObject(factoryURL), false,
+                        BMP_COLOR_HIGHCONTRAST );
+            }
+            else
+            {
+                if( bHighContrast == BMP_COLOR_NORMAL )
+                    aImage = m_docImage;
+                else
+                    aImage = m_docImage_hc;
+            }
+        }
+    }
+    else
+    {
+        if( node->getType() == browse::BrowseNodeTypes::SCRIPT )
+        {
+            if( bHighContrast == BMP_COLOR_NORMAL )
+                aImage = m_macImage;
+            else
+                aImage = m_macImage_hc;
+        }
+        else
+        {
+            if( bHighContrast == BMP_COLOR_NORMAL )
+                aImage = m_libImage;
+            else
+                aImage = m_libImage_hc;
+        }
+    }
+    return aImage;
+}
+
+Reference< XInterface  >
+=====================================================================
+Found a 29 line (137 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconcs.cxx
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/ribbar/concustomshape.cxx
+
+						const SdrObject* pSourceObj = aFormModel.GetPage( 0 )->GetObj( 0 );
+						if( pSourceObj )
+						{
+							const SfxItemSet& rSource = pSourceObj->GetMergedItemSet();
+							SfxItemSet aDest( pObj->GetModel()->GetItemPool(), 				// ranges from SdrAttrObj
+							SDRATTR_START, SDRATTR_SHADOW_LAST,
+							SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST,
+							SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION,
+							// Graphic Attributes
+							SDRATTR_GRAF_FIRST, SDRATTR_GRAF_LAST,
+							// 3d Properties
+							SDRATTR_3D_FIRST, SDRATTR_3D_LAST,
+							// CustomShape properties
+							SDRATTR_CUSTOMSHAPE_FIRST, SDRATTR_CUSTOMSHAPE_LAST,
+							// range from SdrTextObj
+							EE_ITEMS_START, EE_ITEMS_END,
+							// end
+							0, 0);
+							aDest.Set( rSource );
+							pObj->SetMergedItemSet( aDest );
+							sal_Int32 nAngle = pSourceObj->GetRotateAngle();
+							if ( nAngle )
+							{
+								double a = nAngle * F_PI18000;
+								pObj->NbcRotate( pObj->GetSnapRect().Center(), nAngle, sin( a ), cos( a ) );
+							}
+							bAttributesAppliedFromGallery = sal_True;
+						}
+					}
+=====================================================================
+Found a 15 line (137 tokens) duplication in the following files: 
+Starting at line 1464 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+Starting at line 1545 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+
+    double* pArr = aSeq.getArray();
+    nCount = 0;
+    for ( p = m_xRanges->First(); p; p = m_xRanges->Next())
+    {
+        // TODO: use DocIter?
+        ScAddress aAdr( p->aStart);
+        for ( SCTAB nTab = p->aStart.Tab(); nTab <= p->aEnd.Tab(); ++nTab)
+        {
+            aAdr.SetTab( nTab);
+            for ( SCCOL nCol = p->aStart.Col(); nCol <= p->aEnd.Col(); ++nCol)
+            {
+                aAdr.SetCol( nCol);
+                for ( SCROW nRow = p->aStart.Row(); nRow <= p->aEnd.Row();
+                        ++nRow)
+                {
+=====================================================================
+Found a 40 line (137 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconcustomshape.cxx
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconcs.cxx
+
+							const SdrObject* pSourceObj = pPage->GetObj( 0 );
+							if( pSourceObj )
+							{
+								const SfxItemSet& rSource = pSourceObj->GetMergedItemSet();
+								SfxItemSet aDest( pObj->GetModel()->GetItemPool(), 				// ranges from SdrAttrObj
+								SDRATTR_START, SDRATTR_SHADOW_LAST,
+								SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST,
+								SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION,
+								// Graphic Attributes
+								SDRATTR_GRAF_FIRST, SDRATTR_GRAF_LAST,
+								// 3d Properties
+								SDRATTR_3D_FIRST, SDRATTR_3D_LAST,
+								// CustomShape properties
+								SDRATTR_CUSTOMSHAPE_FIRST, SDRATTR_CUSTOMSHAPE_LAST,
+								// range from SdrTextObj
+								EE_ITEMS_START, EE_ITEMS_END,
+								// end
+								0, 0);
+								aDest.Set( rSource );
+								pObj->SetMergedItemSet( aDest );
+								sal_Int32 nAngle = pSourceObj->GetRotateAngle();
+								if ( nAngle )
+								{
+									double a = nAngle * F_PI18000;
+									pObj->NbcRotate( pObj->GetSnapRect().Center(), nAngle, sin( a ), cos( a ) );
+								}
+								bAttributesAppliedFromGallery = sal_True;
+
+
+	/*
+								com::sun::star::uno::Any aAny;
+								if ( ((SdrCustomShapeGeometryItem&)pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )).QueryValue( aAny ) )
+								{
+									aGeometryItem.PutValue( aAny );
+									pObj->SetMergedItem( aGeometryItem );
+									bAttributesAppliedFromGallery = sal_True;
+								}
+	*/
+							}
+						}
+=====================================================================
+Found a 39 line (137 tokens) duplication in the following files: 
+Starting at line 2561 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 1236 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT );
+			::osl::StreamSocket ssConnection;
+			
+			/// launch server socket 
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+			asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
+ 
+			/// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default. 
+			sal_Bool bOK  = sal_True;
+			asAcceptorSocket.close( );
+				
+			CPPUNIT_ASSERT_MESSAGE( "test for enableNonBlockingMode function: launch a server socket and make it non blocking. if it can pass the acceptConnection statement, it is non-blocking", 
+  									( sal_True == bOK  ) );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( enableNonBlockingMode );
+		CPPUNIT_TEST( enableNonBlockingMode_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class enableNonBlockingMode
+
+
+	/** testing the method:
+		inline sal_Bool SAL_CALL isNonBlockingMode() const;
+	*/
+	class isNonBlockingMode : public CppUnit::TestFixture
+	{
+	public:
+		::osl::AcceptorSocket asAcceptorSocket;
+		
+		void isNonBlockingMode_001()
+		{
+			::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT );
+=====================================================================
+Found a 6 line (137 tokens) duplication in the following files: 
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file_url.cxx
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 9 line (137 tokens) duplication in the following files: 
+Starting at line 2542 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2586 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+            )) rv = sptr->check(word,len, sfxopts, ppfx, NULL, 0, 0, cclass, needflag);
+            while (rv) {
+                    if (ppfx) {
+                        if (((PfxEntry *) ppfx)->getMorph()) strcat(result, ((PfxEntry *) ppfx)->getMorph());
+                    }    
+                    if (complexprefixes && rv->description) strcat(result, rv->description);
+                    if (rv->description && ((!rv->astr) || 
+                        !TESTAFF(rv->astr, lemma_present, rv->alen))) strcat(result, rv->word);
+                    if (!complexprefixes && rv->description) strcat(result, rv->description);
+=====================================================================
+Found a 24 line (137 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+
+	{ 0x30db, 0x309a },	// 0x30dd KATAKANA LETTER PO --> KATAKANA LETTER HO + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x30de KATAKANA LETTER MA
+	{ 0x0000, 0x0000 },	// 0x30df KATAKANA LETTER MI
+	{ 0x0000, 0x0000 },	// 0x30e0 KATAKANA LETTER MU
+	{ 0x0000, 0x0000 },	// 0x30e1 KATAKANA LETTER ME
+	{ 0x0000, 0x0000 },	// 0x30e2 KATAKANA LETTER MO
+	{ 0x0000, 0x0000 },	// 0x30e3 KATAKANA LETTER SMALL YA
+	{ 0x0000, 0x0000 },	// 0x30e4 KATAKANA LETTER YA
+	{ 0x0000, 0x0000 },	// 0x30e5 KATAKANA LETTER SMALL YU
+	{ 0x0000, 0x0000 },	// 0x30e6 KATAKANA LETTER YU
+	{ 0x0000, 0x0000 },	// 0x30e7 KATAKANA LETTER SMALL YO
+	{ 0x0000, 0x0000 },	// 0x30e8 KATAKANA LETTER YO
+	{ 0x0000, 0x0000 },	// 0x30e9 KATAKANA LETTER RA
+	{ 0x0000, 0x0000 },	// 0x30ea KATAKANA LETTER RI
+	{ 0x0000, 0x0000 },	// 0x30eb KATAKANA LETTER RU
+	{ 0x0000, 0x0000 },	// 0x30ec KATAKANA LETTER RE
+	{ 0x0000, 0x0000 },	// 0x30ed KATAKANA LETTER RO
+	{ 0x0000, 0x0000 },	// 0x30ee KATAKANA LETTER SMALL WA
+	{ 0x0000, 0x0000 },	// 0x30ef KATAKANA LETTER WA
+	{ 0x0000, 0x0000 },	// 0x30f0 KATAKANA LETTER WI
+	{ 0x0000, 0x0000 },	// 0x30f1 KATAKANA LETTER WE
+	{ 0x0000, 0x0000 },	// 0x30f2 KATAKANA LETTER WO
+	{ 0x0000, 0x0000 },	// 0x30f3 KATAKANA LETTER N
+	{ 0x30a6, 0x3099 },	// 0x30f4 KATAKANA LETTER VU --> KATAKANA LETTER U + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+=====================================================================
+Found a 5 line (137 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1261 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 5 line (137 tokens) duplication in the following files: 
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1480 - 148f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1490 - 149f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14a0 - 14af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14b0 - 14bf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14c0 - 14cf
+=====================================================================
+Found a 5 line (137 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 872 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd50 - fd5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd60 - fd6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd70 - fd7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd80 - fd8f
+=====================================================================
+Found a 6 line (137 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5,// 1150 - 115f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1160 - 116f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1170 - 117f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1180 - 118f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1190 - 119f
+     5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,// 11a0 - 11af
+=====================================================================
+Found a 9 line (137 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,    0,    0,    0,    6,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   32,    0,
+=====================================================================
+Found a 13 line (137 tokens) duplication in the following files: 
+Starting at line 2376 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 2725 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+        char *cell = (char *)fstyle->cell;
+        padd(ascii("draw:luminance"), sXML_CDATA,
+            ascii(Int2Str(cell[0], "%d%%", buf)));
+        padd(ascii("draw:contrast"), sXML_CDATA,
+            ascii(Int2Str(cell[1], "%d%%", buf)));
+        if( cell[2] == 0 )
+            padd(ascii("draw:color-mode"), sXML_CDATA, ascii("standard"));
+        else if( cell[2] == 1 )
+            padd(ascii("draw:color-mode"), sXML_CDATA, ascii("greyscale"));
+        else if( cell[2] == 2 )
+            padd(ascii("draw:color-mode"), sXML_CDATA, ascii("mono"));
+
+    }
+=====================================================================
+Found a 16 line (137 tokens) duplication in the following files: 
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+Starting at line 1622 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+					WMFRecord_PolyPolygon( ( (MetaTransparentAction*) pMA )->GetPolyPolygon() );
+				}
+				break;
+
+				case META_FLOATTRANSPARENT_ACTION:
+				{
+					const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+					
+					GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+					Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point		aDestPt( pA->GetPoint() );
+					const Size		aDestSize( pA->GetSize() );
+					const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long			nMoveX, nMoveY;
+=====================================================================
+Found a 23 line (137 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/actiontriggercontainer.cxx
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/rootactiontriggercontainer.cxx
+
+Sequence< Type > SAL_CALL RootActionTriggerContainer::getTypes() throw ( RuntimeException )
+{
+	// Optimize this method !
+	// We initialize a static variable only one time. And we don't must use a mutex at every call!
+	// For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+	static ::cppu::OTypeCollection* pTypeCollection = NULL ;
+
+	if ( pTypeCollection == NULL )
+	{
+		// Ready for multithreading; get global mutex for first call of this method only! see before
+		osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+
+		// Control these pointer again ... it can be, that another instance will be faster then these!
+		if ( pTypeCollection == NULL )
+		{
+			// Create a static typecollection ...
+			static ::cppu::OTypeCollection aTypeCollection(	
+						::getCppuType(( const Reference< XMultiServiceFactory	>*)NULL ) ,
+						::getCppuType(( const Reference< XIndexContainer		>*)NULL ) ,
+						::getCppuType(( const Reference< XIndexAccess			>*)NULL ) ,
+						::getCppuType(( const Reference< XIndexReplace			>*)NULL ) ,
+						::getCppuType(( const Reference< XServiceInfo			>*)NULL ) ,
+						::getCppuType(( const Reference< XTypeProvider			>*)NULL ) ,
+=====================================================================
+Found a 15 line (137 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/CheckBox.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ComboBox.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormComponent.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Numeric.cxx
+
+namespace frm
+{
+//.........................................................................
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::form::binding;
+=====================================================================
+Found a 6 line (137 tokens) duplication in the following files: 
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+Starting at line 533 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 28 line (137 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilterdetect/fdcomp.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/fdcomp.cxx
+
+	void * pServiceManager, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( FilterDetect_getImplementationName() ) ); 
+			xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
+			
+			const Sequence< OUString > & rSNL = FilterDetect_getSupportedServiceNames();
+			const OUString * pArray = rSNL.getConstArray();
+			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+				xNewKey->createKey( pArray[nPos] );
+
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+=====================================================================
+Found a 9 line (137 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   11,    0,    0,    0,    0,    0,    0,    8,    0,
+=====================================================================
+Found a 21 line (137 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/manager/dp_manager.h
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/registry/inc/dp_backend.h
+
+    };
+    
+    // XComponent
+    virtual void SAL_CALL dispose() throw (css::uno::RuntimeException);
+    virtual void SAL_CALL addEventListener(
+        css::uno::Reference<css::lang::XEventListener> const & xListener )
+        throw (css::uno::RuntimeException);
+    virtual void SAL_CALL removeEventListener(
+        css::uno::Reference<css::lang::XEventListener> const & xListener )
+        throw (css::uno::RuntimeException);
+    
+    // XModifyBroadcaster
+    virtual void SAL_CALL addModifyListener(
+        css::uno::Reference<css::util::XModifyListener> const & xListener )
+        throw (css::uno::RuntimeException);
+    virtual void SAL_CALL removeModifyListener(
+        css::uno::Reference<css::util::XModifyListener> const & xListener )
+        throw (css::uno::RuntimeException);
+    
+    // XPackage
+    virtual css::uno::Reference<css::task::XAbortChannel> SAL_CALL
+=====================================================================
+Found a 18 line (137 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTable.cxx
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTable.cxx
+
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_TYPE))	>>= nNewType;
+		// and precsions and scale
+		xProp->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_PRECISION))	>>= nOldPrec;
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_PRECISION))>>= nNewPrec;
+		xProp->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_SCALE))		>>= nOldScale;
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_SCALE))	>>= nNewScale;
+		// second: check the "is nullable" value
+		sal_Int32 nOldNullable = 0,nNewNullable = 0;
+		xProp->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_ISNULLABLE))		>>= nOldNullable;
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_ISNULLABLE))	>>= nNewNullable;
+
+		// check also the auto_increment
+		sal_Bool bOldAutoIncrement = sal_False,bAutoIncrement = sal_False;
+		xProp->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT))		>>= bOldAutoIncrement;
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT))	>>= bAutoIncrement;
+
+		if (	nOldType != nNewType
+			||	nOldPrec != nNewPrec
+=====================================================================
+Found a 11 line (137 tokens) duplication in the following files: 
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/dialogs/DataBrowserModel.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/DataSeriesHelper.cxx
+
+        Sequence< Reference< chart2::XCoordinateSystem > > aCooSysSeq( xCooSysCnt->getCoordinateSystems());
+        for( sal_Int32 nCooSysIdx=0; nCooSysIdx<aCooSysSeq.getLength(); ++nCooSysIdx )
+        {
+            Reference< chart2::XChartTypeContainer > xCTCnt( aCooSysSeq[nCooSysIdx], uno::UNO_QUERY_THROW );
+            Sequence< Reference< chart2::XChartType > > aChartTypes( xCTCnt->getChartTypes());
+            for( sal_Int32 nCTIdx=0; nCTIdx<aChartTypes.getLength(); ++nCTIdx )
+            {
+                Reference< chart2::XDataSeriesContainer > xSeriesCnt( aChartTypes[nCTIdx], uno::UNO_QUERY );
+                if( xSeriesCnt.is())
+                {
+                    Sequence< Reference< chart2::XDataSeries > > aSeries( xSeriesCnt->getDataSeries());
+=====================================================================
+Found a 18 line (137 tokens) duplication in the following files: 
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvashelper.cxx
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper.cxx
+
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTextureMappedPolyPolygon( const rendering::XCanvas* 							, 
+                                                                                              const uno::Reference< rendering::XPolyPolygon2D >& 	,
+                                                                                              const rendering::ViewState& 							,
+                                                                                              const rendering::RenderState& 						,
+                                                                                              const uno::Sequence< rendering::Texture >& 			,
+                                                                                              const uno::Reference< geometry::XMapping2D >& 			 )
+    {
+        return uno::Reference< rendering::XCachedPrimitive >(NULL);
+    }
+
+    uno::Reference< rendering::XCanvasFont > CanvasHelper::createFont( const rendering::XCanvas* 						, 
+                                                                       const rendering::FontRequest& 					fontRequest,
+                                                                       const uno::Sequence< beans::PropertyValue >& 	extraFontProperties,
+                                                                       const geometry::Matrix2D& 						fontMatrix )
+    {
+=====================================================================
+Found a 34 line (137 tokens) duplication in the following files: 
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+		return typelib_TypeClass_VOID;
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if ( pParams[nIndex].bOut ) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if ( pCppReturn ) // has complex return
+		{
+			if ( pUnoReturn != pCppReturn ) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+=====================================================================
+Found a 25 line (137 tokens) duplication in the following files: 
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdate.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdbl.cxx
+
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINSNG2;
+			}
+			*p->pSingle = (float) n; break;
+		case SbxBYREF | SbxSALINT64:
+            *p->pnInt64 = ImpDoubleToSalInt64( n ); break;
+		case SbxBYREF | SbxSALUINT64:
+			*p->puInt64 = ImpDoubleToSalUInt64( n ); break;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			*p->pDouble = (double) n; break;
+		case SbxBYREF | SbxCURRENCY:
+			if( n > SbxMAXCURR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMAXCURR;
+			}
+			else if( n < SbxMINCURR )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = SbxMINCURR;
+			}
+			*p->pLong64 = ImpDoubleToCurrency( n ); break;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION );
+	}
+}
+=====================================================================
+Found a 19 line (137 tokens) duplication in the following files: 
+Starting at line 828 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside3.cxx
+Starting at line 1757 of /local/ooo-build/ooo-build/src/oog680-m3/scripting/source/stringresource/stringresource.cxx
+
+	bool bDefaultFound = false;
+
+    sal_Int32 nCount = aContentSeq.getLength();
+	const ::rtl::OUString* pFiles = aContentSeq.getConstArray();
+	for( int i = 0 ; i < nCount ; i++ )
+	{
+		::rtl::OUString aCompleteName = pFiles[i];
+		rtl::OUString aPureName;
+		rtl::OUString aExtension;
+		sal_Int32 iDot = aCompleteName.lastIndexOf( '.' );
+		sal_Int32 iSlash = aCompleteName.lastIndexOf( '/' );
+		if( iDot != -1 )
+		{
+			sal_Int32 iCopyFrom = (iSlash != -1) ? iSlash + 1 : 0;
+			aPureName = aCompleteName.copy( iCopyFrom, iDot-iCopyFrom );
+			aExtension = aCompleteName.copy( iDot + 1 );
+		}
+
+		if( aExtension.equalsAscii( "properties" ) )
+=====================================================================
+Found a 16 line (137 tokens) duplication in the following files: 
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/viewer/mediaevent_impl.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/viewer/mediaevent_impl.cxx
+
+void SAL_CALL MediaEventListenersImpl::mouseReleased( const ::com::sun::star::awt::MouseEvent& e )
+    throw (::com::sun::star::uno::RuntimeException)
+{
+    const ::osl::MutexGuard aGuard( maMutex );
+    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
+
+    if( mpNotifyWindow )
+    {
+        MouseEvent aVCLMouseEvt( Point( e.X, e.Y ),
+                                 sal::static_int_cast< USHORT >(e.ClickCount),
+                                 0,
+                                ( ( e.Buttons & 1 ) ? MOUSE_LEFT : 0 ) |
+                                ( ( e.Buttons & 2 ) ? MOUSE_RIGHT : 0 ) |
+                                ( ( e.Buttons & 4 ) ? MOUSE_MIDDLE : 0 ),
+                                e.Modifiers );
+        Application::PostMouseEvent( VCLEVENT_WINDOW_MOUSEBUTTONUP, reinterpret_cast< ::Window* >( mpNotifyWindow ), &aVCLMouseEvt );
+=====================================================================
+Found a 11 line (137 tokens) duplication in the following files: 
+Starting at line 3974 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 3986 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+		case M_GetSizeY:
+			if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r FloatingWindows
+			if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r TabDialoge
+			if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r Border
+            if ( (nParams & PARAM_BOOL_1) && bBool1 )
+                pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+			pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pControl->GetSizePixel().Height() );
+=====================================================================
+Found a 26 line (137 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/display/html/pm_class.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/display/idl/hfi_hierarchy.cxx
+
+    io_rDisplayer.Out().Enter(rPre);
+
+    for ( int line = 0; line < nSize; ++line )
+    {
+        char * sLine1 = new char[2 + line*5];
+        char * sLine2 = new char[1 + line*5];
+        *sLine1 = '\0';
+        *sLine2 = '\0';
+
+        bool bBaseForThisLineReached = false;
+     	for ( int col = 0; col < line; ++col )
+        {
+            intt nDerivPos = aPositionList[col]->Derived()->Position();
+
+            if ( nDerivPos >= line )
+                strcat(sLine1, "  |  ");
+            else
+                strcat(sLine1, "     ");
+
+            if ( nDerivPos > line )
+            {
+                strcat(sLine2, "  |  ");
+            }
+            else if ( nDerivPos == line )
+            {
+                if (NOT bBaseForThisLineReached)
+=====================================================================
+Found a 22 line (136 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/filter/WriterFilter.cxx
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/component.cxx
+
+	OOXML_SCANNERTESTSERVICE_COMPONENT_ENTRY, /* debugservices.ooxml.ScannerTestService */
+	{ 0, 0, 0, 0, 0, 0 } // terminate with NULL
+};
+
+
+    void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
+{
+	return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries );
+}
+
+
+void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
+{
+	return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, s_component_entries );
+}
+
+}
+=====================================================================
+Found a 34 line (136 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_vcgen_bspline.cpp
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_vcgen_smooth_poly1.cpp
+
+    unsigned vcgen_smooth_poly1::vertex(double* x, double* y)
+    {
+        unsigned cmd = path_cmd_line_to;
+        while(!is_stop(cmd))
+        {
+            switch(m_status)
+            {
+            case initial:
+                rewind(0);
+
+            case ready:
+                if(m_src_vertices.size() <  2)
+                {
+                    cmd = path_cmd_stop;
+                    break;
+                }
+
+                if(m_src_vertices.size() == 2)
+                {
+                    *x = m_src_vertices[m_src_vertex].x;
+                    *y = m_src_vertices[m_src_vertex].y;
+                    m_src_vertex++;
+                    if(m_src_vertex == 1) return path_cmd_move_to;
+                    if(m_src_vertex == 2) return path_cmd_line_to;
+                    cmd = path_cmd_stop;
+                    break;
+                }
+
+                cmd = path_cmd_move_to;
+                m_status = polygon;
+                m_src_vertex = 0;
+
+            case polygon:
+                if(m_closed)
+=====================================================================
+Found a 21 line (136 tokens) duplication in the following files: 
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+        span_pattern_filter_rgba_bilinear(alloc_type& alloc,
+                                          const rendering_buffer& src, 
+                                          interpolator_type& inter) :
+            base_type(alloc, src, color_type(0,0,0,0), inter, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 17 line (136 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            fg[3] += weight * *fg_ptr++;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            fg[order_type::A] += back_a * weight;
+                        }
+=====================================================================
+Found a 13 line (136 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgb.h
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+        };
+
+        //--------------------------------------------------------------------
+        static AGG_INLINE void blend_pix(value_type* p, 
+                                         unsigned cr, unsigned cg, unsigned cb,
+                                         unsigned alpha,
+                                         unsigned cover)
+        {
+            alpha = color_type::base_mask - alpha;
+            cover = (cover + 1) << (base_shift - 8);
+            p[Order::R] = (value_type)((p[Order::R] * alpha + cr * cover) >> base_shift);
+            p[Order::G] = (value_type)((p[Order::G] * alpha + cg * cover) >> base_shift);
+            p[Order::B] = (value_type)((p[Order::B] * alpha + cb * cover) >> base_shift);
+=====================================================================
+Found a 7 line (136 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawbezier_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawconnect_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawpie_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawrect_curs.h
+
+static char drawrect_curs_bits[] = {
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x81, 0x00,
+=====================================================================
+Found a 6 line (136 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 14 line (136 tokens) duplication in the following files: 
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salframe.h
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salframe.h
+
+    virtual void                                SetMenu( SalMenu* pSalMenu );
+    virtual void                                DrawMenuBar();
+    virtual void                SetExtendedFrameStyle( SalExtStyle nExtStyle );
+    virtual void				Show( BOOL bVisible, BOOL bNoActivate = FALSE );
+    virtual void				Enable( BOOL bEnable );
+    virtual void                SetMinClientSize( long nWidth, long nHeight );
+    virtual void                SetMaxClientSize( long nWidth, long nHeight );
+    virtual void				SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags );
+    virtual void				GetClientSize( long& rWidth, long& rHeight );
+    virtual void				GetWorkArea( Rectangle& rRect );
+    virtual SalFrame*			GetParent() const;
+    virtual void				SetWindowState( const SalFrameState* pState );
+    virtual BOOL				GetWindowState( SalFrameState* pState );
+    virtual void				ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay );
+=====================================================================
+Found a 19 line (136 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gfxlink.cxx
+Starting at line 1283 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+
+							::ucbhelper::Content aCnt( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ),
+												 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+							aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ),
+												 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+						}
+						catch( const ::com::sun::star::ucb::ContentCreationException& )
+						{
+						}
+						catch( const ::com::sun::star::uno::RuntimeException& )
+						{
+						}
+						catch( const ::com::sun::star::ucb::CommandAbortedException& )
+						{
+						}
+        		        catch( const ::com::sun::star::uno::Exception& )
+		                {
+		                }
+					}
+=====================================================================
+Found a 29 line (136 tokens) duplication in the following files: 
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+Starting at line 1811 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/edit.cxx
+
+	Font aFont = GetDrawPixelFont( pDev );
+	OutDevType eOutDevType = pDev->GetOutDevType();
+
+	pDev->Push();
+	pDev->SetMapMode();
+	pDev->SetFont( aFont );
+	pDev->SetTextFillColor();
+
+	// Border/Background
+	pDev->SetLineColor();
+	pDev->SetFillColor();
+	BOOL bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
+	BOOL bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+	if ( bBorder || bBackground )
+	{
+		Rectangle aRect( aPos, aSize );
+		if ( bBorder )
+		{
+            ImplDrawFrame( pDev, aRect );
+		}
+		if ( bBackground )
+		{
+			pDev->SetFillColor( GetControlBackground() );
+			pDev->DrawRect( aRect );
+		}
+	}
+
+	// Inhalt
+	if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+=====================================================================
+Found a 33 line (136 tokens) duplication in the following files: 
+Starting at line 944 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 2846 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+        if ( exchange( xNewId ) )
+        {
+            // Process instanciated children...
+            
+            ContentRefList aChildren;
+            queryChildren( aChildren );
+	    
+            ContentRefList::const_iterator it  = aChildren.begin();
+            ContentRefList::const_iterator end = aChildren.end();
+
+            while ( it != end )
+            {
+                ContentRef xChild = (*it);
+
+                // Create new content identifier for the child...
+                uno::Reference< ucb::XContentIdentifier >
+                    xOldChildId = xChild->getIdentifier();
+                rtl::OUString aOldChildURL
+                    = xOldChildId->getContentIdentifier();
+                rtl::OUString aNewChildURL
+                    = aOldChildURL.replaceAt(
+                        0,
+                        aOldURL.getLength(),
+                        xNewId->getContentIdentifier() );
+                uno::Reference< ucb::XContentIdentifier >
+                    xNewChildId
+                    = new ::ucbhelper::ContentIdentifier( m_xSMgr, aNewChildURL );
+                
+                if ( !xChild->exchangeIdentity( xNewChildId ) )
+                    return sal_False;
+                
+                ++it;
+            }
+=====================================================================
+Found a 34 line (136 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_contentcaps.cxx
+
+    static const ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Mandatory commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		)
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+        , ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+=====================================================================
+Found a 39 line (136 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+            ::ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString(),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getPropertySetInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getPropertySetInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "getCommandInfo" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getCommandInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getCommandInfo( Environment );
+	}
+#ifdef IMPLEMENT_COMMAND_OPEN
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "open" ) ) )
+    {
+        ucb::OpenCommandArgument2 aOpenCommand;
+      	if ( !( aCommand.Argument >>= aOpenCommand ) )
+		{
+            OSL_ENSURE( sal_False, "Wrong argument type!" );
+=====================================================================
+Found a 33 line (136 tokens) duplication in the following files: 
+Starting at line 1152 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 944 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            if ( eType == FOLDER )
+			{
+				// Process instanciated children...
+
+                ContentRefList aChildren;
+				queryChildren( aChildren );
+
+                ContentRefList::const_iterator it  = aChildren.begin();
+                ContentRefList::const_iterator end = aChildren.end();
+
+				while ( it != end )
+				{
+                    ContentRef xChild = (*it);
+
+					// Create new content identifier for the child...
+                    uno::Reference< ucb::XContentIdentifier > xOldChildId
+													= xChild->getIdentifier();
+                    rtl::OUString aOldChildURL
+                        = xOldChildId->getContentIdentifier();
+                    rtl::OUString aNewChildURL
+						= aOldChildURL.replaceAt(
+										0,
+										aOldURL.getLength(),
+										xNewId->getContentIdentifier() );
+                    uno::Reference< ucb::XContentIdentifier > xNewChildId
+						= new ::ucbhelper::ContentIdentifier( 
+                            m_xSMgr, aNewChildURL );
+
+					if ( !xChild->exchangeIdentity( xNewChildId ) )
+						return sal_False;
+
+					++it;
+				}
+=====================================================================
+Found a 39 line (136 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+
+    static ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Required commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		),
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+/*
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+			-1,
+			getCppuBooleanType()
+		),
+*/
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+=====================================================================
+Found a 37 line (136 tokens) duplication in the following files: 
+Starting at line 1068 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1146 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    : WW8PLCFx(eVersion, false), nClipStart(-1)
+{
+    // eigenen Iterator konstruieren
+    pPcdI = new WW8PLCFpcd_Iter(*pPLCFpcd, nStartCp);
+    bVer67= bVer67P;
+}
+
+WW8PLCFx_PCD::~WW8PLCFx_PCD()
+{
+    // pPcd-Dtor which in called from WW8ScannerBase
+    delete pPcdI;
+}
+
+ULONG WW8PLCFx_PCD::GetIMax() const
+{
+    return pPcdI ? pPcdI->GetIMax() : 0;
+}
+
+ULONG WW8PLCFx_PCD::GetIdx() const
+{
+    return pPcdI ? pPcdI->GetIdx() : 0;
+}
+
+void WW8PLCFx_PCD::SetIdx( ULONG nIdx )
+{
+    if (pPcdI)
+        pPcdI->SetIdx( nIdx );
+}
+
+bool WW8PLCFx_PCD::SeekPos(WW8_CP nCpPos)
+{
+    return pPcdI ? pPcdI->SeekPos( nCpPos ) : false;
+}
+
+WW8_CP WW8PLCFx_PCD::Where()
+{
+    return pPcdI ? pPcdI->Where() : WW8_CP_MAX;
+=====================================================================
+Found a 21 line (136 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptParallelogramGluePoints, sizeof( mso_sptParallelogramGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptDiamondVert[] =
+{
+	{ 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, {	0, 10800 }, { 10800, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptDiamondTextRect[] = 
+{
+	{ { 5400, 5400 }, { 16200, 16200 } }
+};
+static const mso_CustomShape msoDiamond =
+{
+	(SvxMSDffVertPair*)mso_sptDiamondVert, sizeof( mso_sptDiamondVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptDiamondTextRect, sizeof( mso_sptDiamondTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 30 line (136 tokens) duplication in the following files: 
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/itemset.cxx
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/itemset.cxx
+
+			if( *ppFnd1 && *ppFnd2 )
+			{
+				// aus dem Pool loeschen
+				if( !IsInvalidItem( *ppFnd1 ) )
+				{
+					USHORT nWhich = (*ppFnd1)->Which();
+					if(nWhich <= SFX_WHICH_MAX)
+					{
+						const SfxPoolItem& rNew = _pParent
+							? _pParent->Get( nWhich, TRUE )
+							: _pPool->GetDefaultItem( nWhich );
+
+						Changed( **ppFnd1, rNew );
+					}
+					_pPool->Remove( **ppFnd1 );
+				}
+				*ppFnd1 = 0;
+				--_nCount;
+			}
+	}
+	else
+	{
+		SfxItemIter aIter( *this );
+		const SfxPoolItem* pItem = aIter.GetCurItem();
+		while( TRUE )
+		{
+			USHORT nWhich = IsInvalidItem( pItem )
+								? GetWhichByPos( aIter.GetCurPos() )
+								: pItem->Which();
+			if( SFX_ITEM_SET == rSet.GetItemState( nWhich, FALSE ) )
+=====================================================================
+Found a 18 line (136 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+	check( rData1.Any == rData2.Any, "### any does not match!" );
+
+	return (rData1.Bool == rData2.Bool &&
+			rData1.Char == rData2.Char &&
+			rData1.Byte == rData2.Byte &&
+			rData1.Short == rData2.Short &&
+			rData1.UShort == rData2.UShort &&
+			rData1.Long == rData2.Long &&
+			rData1.ULong == rData2.ULong &&
+			rData1.Hyper == rData2.Hyper &&
+			rData1.UHyper == rData2.UHyper &&
+			rData1.Float == rData2.Float &&
+			rData1.Double == rData2.Double &&
+			rData1.Enum == rData2.Enum &&
+			rData1.String == rData2.String &&
+			rData1.Interface == rData2.Interface &&
+			rData1.Any == rData2.Any);
+}
+=====================================================================
+Found a 5 line (136 tokens) duplication in the following files: 
+Starting at line 228 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION),		WID_PAGE_ORIENT,	&::getCppuType((const view::PaperOrientation*)0),0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH),			WID_PAGE_WIDTH,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_PREVIEW),			WID_PAGE_PREVIEW,	SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0)), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_PREVIEWBITMAP),	WID_PAGE_PREVIEWBITMAP,	SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0)), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
+		{ MAP_CHAR_LEN(sUNO_Prop_UserDefinedAttributes),WID_PAGE_USERATTRIBS, &::getCppuType((const Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+=====================================================================
+Found a 12 line (136 tokens) duplication in the following files: 
+Starting at line 756 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuoaprms.cxx
+Starting at line 881 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview2.cxx
+
+								SdAnimationPrmsUndoAction* pAction = new SdAnimationPrmsUndoAction(mpDoc, pPickObj, bCreated);
+								pAction->SetActive(pInfo->mbActive, pInfo->mbActive);
+								pAction->SetEffect(pInfo->meEffect, pInfo->meEffect);
+								pAction->SetTextEffect(pInfo->meTextEffect, pInfo->meTextEffect);
+								pAction->SetSpeed(pInfo->meSpeed, pInfo->meSpeed);
+								pAction->SetDim(pInfo->mbDimPrevious, pInfo->mbDimPrevious);
+								pAction->SetDimColor(pInfo->maDimColor, pInfo->maDimColor);
+								pAction->SetDimHide(pInfo->mbDimHide, pInfo->mbDimHide);
+								pAction->SetSoundOn(pInfo->mbSoundOn, pInfo->mbSoundOn);
+								pAction->SetSound(pInfo->maSoundFile, pInfo->maSoundFile);
+								pAction->SetPlayFull(pInfo->mbPlayFull, pInfo->mbPlayFull);
+								pAction->SetPathObj(pInfo->mpPathObj, pInfo->mpPathObj);
+=====================================================================
+Found a 18 line (136 tokens) duplication in the following files: 
+Starting at line 968 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/epptso.cxx
+Starting at line 3503 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/escherex.cxx
+
+::com::sun::star::beans::PropertyState EscherPropertyValueHelper::GetPropertyState(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
+		const String& rPropertyName )
+{
+	::com::sun::star::beans::PropertyState eRetValue = ::com::sun::star::beans::PropertyState_AMBIGUOUS_VALUE;
+	try
+	{
+		::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState >	aXPropState
+				( rXPropSet, ::com::sun::star::uno::UNO_QUERY );
+		if ( aXPropState.is() )
+            eRetValue = aXPropState->getPropertyState( rPropertyName );
+	}
+	catch( ::com::sun::star::uno::Exception& )
+	{
+		//...
+	}
+	return eRetValue;
+}
+=====================================================================
+Found a 12 line (136 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbawindows.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbaworkbooks.cxx
+
+	SpreadSheetDocEnumImpl( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::RuntimeException ) :  m_xContext( xContext )
+	{
+		uno::Reference< lang::XMultiComponentFactory > xSMgr(
+			m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+
+		uno::Reference< frame::XDesktop > xDesktop
+			(xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"), m_xContext), uno::UNO_QUERY_THROW );
+		uno::Reference< container::XEnumeration > mxComponents = xDesktop->getComponents()->createEnumeration();
+		while( mxComponents->hasMoreElements() )
+		{
+			uno::Reference< sheet::XSpreadsheetDocument > xNext( mxComponents->nextElement(), uno::UNO_QUERY );
+			if ( xNext.is() )
+=====================================================================
+Found a 24 line (136 tokens) duplication in the following files: 
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/viewuno.cxx
+Starting at line 1228 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/viewuno.cxx
+
+                                    throw (uno::RuntimeException)
+{
+    sal_Bool bReturn(sal_False);
+
+    if (aMouseClickHandlers.Count())
+    {
+        uno::Reference< uno::XInterface > xTarget = GetClickedObject(Point(e.X, e.Y));
+
+        if (xTarget.is())
+        {
+            awt::EnhancedMouseEvent aMouseEvent;
+
+            aMouseEvent.Buttons = e.Buttons;
+            aMouseEvent.X = e.X;
+            aMouseEvent.Y = e.Y;
+            aMouseEvent.ClickCount = e.ClickCount;
+            aMouseEvent.PopupTrigger = e.PopupTrigger;
+            aMouseEvent.Target = xTarget;
+
+	        for ( USHORT n=0; n<aMouseClickHandlers.Count(); n++ )
+            {
+                try
+                {
+                    if (!(*aMouseClickHandlers[n])->mouseReleased( aMouseEvent ))
+=====================================================================
+Found a 19 line (136 tokens) duplication in the following files: 
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/transobj.cxx
+Starting at line 852 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+                ::utl::TempFile     aTempFile;
+                aTempFile.EnableKillingFile();
+                uno::Reference< embed::XStorage > xWorkStore =
+                    ::comphelper::OStorageHelper::GetStorageFromURL( aTempFile.GetURL(), embed::ElementModes::READWRITE );
+
+                // write document storage
+                pEmbObj->SetupStorage( xWorkStore, SOFFICE_FILEFORMAT_CURRENT, sal_False );
+                // mba: no BaseURL for clipboard
+                SfxMedium aMedium( xWorkStore, String() );
+                bRet = pEmbObj->DoSaveObjectAs( aMedium, FALSE );
+                pEmbObj->DoSaveCompleted();
+
+                uno::Reference< embed::XTransactedObject > xTransact( xWorkStore, uno::UNO_QUERY );
+                if ( xTransact.is() )
+                    xTransact->commit();
+
+                SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), STREAM_READ );
+                if( pSrcStm )
+                {
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen5.cxx
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen5.cxx
+
+	if (!pDrawLayer || bInDtorClear)
+		return;
+
+	for (SCTAB nTab=0; nTab<=MAXTAB && pTab[nTab]; nTab++)
+	{
+		SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
+		DBG_ASSERT(pPage,"Page ?");
+
+		SdrObjListIter aIter( *pPage, IM_DEEPNOGROUPS );
+		SdrObject* pObject = aIter.Next();
+		while (pObject)
+		{
+			if ( pObject->GetObjIdentifier() == OBJ_OLE2 &&
+					((SdrOle2Obj*)pObject)->GetPersistName() == rChartName )
+			{
+                //@todo?: maybe we need a notification
+                //from the calc to the chart in future
+                //that calc content has changed
+                // ((SdrOle2Obj*)pObject)->GetNewReplacement();
+
+                // Load the object and set modified
+
+                uno::Reference< embed::XEmbeddedObject > xIPObj = ((SdrOle2Obj*)pObject)->GetObjRef();
+                if ( xIPObj.is() )
+                {
+                    svt::EmbeddedObjectRef::TryRunningState( xIPObj );
+=====================================================================
+Found a 24 line (136 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/signal.c
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/result/signal.cxx
+
+    for (int i = 0; i < NoSignals; i++) 
+    {
+        if (Signals[i].Action != ACT_SYSTEM)
+        {
+            if (Signals[i].Action == ACT_HIDE)
+            {
+                struct sigaction ign;
+                
+                ign.sa_handler = SIG_IGN;
+                ign.sa_flags   = 0;
+                sigemptyset(&ign.sa_mask);
+                
+                if (sigaction(Signals[i].Signal, &ign, &oact) == 0)
+                    Signals[i].Handler = oact.sa_handler;
+                else
+                    Signals[i].Handler = SIG_DFL;
+            }
+            else
+                if (sigaction(Signals[i].Signal, &act, &oact) == 0)
+                    Signals[i].Handler = oact.sa_handler;
+                else
+                    Signals[i].Handler = SIG_DFL;
+        }
+    }
+=====================================================================
+Found a 22 line (136 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/datatest.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testsax.cxx
+
+	OSaxParserTest( const Reference < XMultiServiceFactory > & rFactory ) : m_rFactory( rFactory )
+	{
+	}
+public:
+    virtual void SAL_CALL testInvariant(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject)
+		throw (	IllegalArgumentException, RuntimeException);
+
+    virtual sal_Int32 SAL_CALL test(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject,
+		sal_Int32 hTestHandle)
+		throw (	IllegalArgumentException,RuntimeException);
+
+    virtual sal_Bool SAL_CALL testPassed(void) throw (	RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getErrors(void) 				throw (RuntimeException);
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void) 		throw (RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getWarnings(void) 				throw (RuntimeException);
+
+private:
+	void testSimple( const Reference < XParser > &r );
+=====================================================================
+Found a 28 line (136 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxf2mtf.cxx
+Starting at line 678 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxf2mtf.cxx
+
+			DXFTransform(1.0,1.0,1.0,DXFVector(0.0,0.0,0.0)-pB->aBasePoint),
+			rTransform
+		);
+		long nSavedBlockColor, nSavedParentLayerColor;
+		PenStyle eSavedBlockPStyle, eSavedParentLayerPStyle;
+		nSavedBlockColor=nBlockColor;
+		nSavedParentLayerColor=nParentLayerColor;
+		eSavedBlockPStyle=eBlockPStyle;
+		eSavedParentLayerPStyle=eParentLayerPStyle;
+		nBlockColor=GetEntityColor(rE);
+		eBlockPStyle=GetEntityPStyle(rE);
+		if (rE.sLayer[0]!='0' || rE.sLayer[1]!=0) {
+			DXFLayer * pLayer=pDXF->aTables.SearchLayer(rE.sLayer);
+			if (pLayer!=NULL) {
+				nParentLayerColor=pLayer->nColor;
+				eParentLayerPStyle=LTypeToPStyle(pLayer->sLineType);
+			}
+		}
+		DrawEntities(*pB,aT,FALSE);
+		eBlockPStyle=eSavedBlockPStyle;
+		eParentLayerPStyle=eSavedParentLayerPStyle;
+		nBlockColor=nSavedBlockColor;
+		nParentLayerColor=nSavedParentLayerColor;
+	}
+}
+
+
+void DXF2GDIMetaFile::DrawEntities(const DXFEntities & rEntities,
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontsizemenucontroller.cxx
+
+    const rtl::OUString aFontHeightCommand( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontHeight?FontHeight.Height:float=" ));
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs;
+            Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance( 
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                        UNO_QUERY );
+
+            {
+                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+                aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+            }
+            
+            xURLTransformer->parseStrict( aTargetURL );
+            xDispatch->dispatch( aTargetURL, aArgs );
+        }
+    }
+}
+
+void SAL_CALL FontSizeMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/constitemcontainer.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/rootitemcontainer.cxx
+
+        {
+            for ( sal_Int32 i = 0; i < nCount; i++ )
+            {
+                Sequence< PropertyValue > aPropSeq;
+                Any a = rSourceContainer->getByIndex( i );
+                if ( a >>= aPropSeq )
+                {
+                    sal_Int32 nContainerIndex = -1;
+                    Reference< XIndexAccess > xIndexAccess;
+                    for ( sal_Int32 j = 0; j < aPropSeq.getLength(); j++ )
+                    {
+                        if ( aPropSeq[j].Name.equalsAscii( "ItemDescriptorContainer" ))
+                        {
+                            aPropSeq[j].Value >>= xIndexAccess;
+                            nContainerIndex = j;
+                            break;
+                        }
+                    }
+
+                    if ( xIndexAccess.is() && nContainerIndex >= 0 )
+                        aPropSeq[nContainerIndex].Value <<= deepCopyContainer( xIndexAccess );
+                    
+                    m_aItemVector.push_back( aPropSeq );
+                }
+            }
+        }
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/popupmenucontrollerbase.cxx
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontsizemenucontroller.cxx
+
+    const rtl::OUString aFontHeightCommand( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontHeight?FontHeight.Height:float=" ));
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs;
+            Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance( 
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                        UNO_QUERY );
+
+            {
+                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+                aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+            }
+            
+            xURLTransformer->parseStrict( aTargetURL );
+            xDispatch->dispatch( aTargetURL, aArgs );
+        }
+    }
+}
+
+void SAL_CALL FontSizeMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
+=====================================================================
+Found a 22 line (136 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+struct ToolBarEntryProperty
+{
+	OReadToolBoxDocumentHandler::ToolBox_XML_Namespace	nNamespace;
+	char												aEntryName[20];
+};
+
+ToolBarEntryProperty ToolBoxEntries[OReadToolBoxDocumentHandler::TB_XML_ENTRY_COUNT] =
+{
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ELEMENT_TOOLBAR				},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ELEMENT_TOOLBARITEM			},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ELEMENT_TOOLBARSPACE		},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ELEMENT_TOOLBARBREAK		},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ELEMENT_TOOLBARSEPARATOR	},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_TEXT				},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_BITMAP			},
+	{ OReadToolBoxDocumentHandler::TB_NS_XLINK,		ATTRIBUTE_URL				},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_ITEMBITS			},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_VISIBLE			},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_WIDTH				},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_USER				},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_HELPID			},
+	{ OReadToolBoxDocumentHandler::TB_NS_TOOLBAR,	ATTRIBUTE_ITEMSTYLE			},
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 934 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/datatest.cxx
+Starting at line 986 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/datatest.cxx
+
+			XPersistObjectRef persistRef( x , USR_QUERY );
+		
+			XPropertySetRef rProp( persistRef , USR_QUERY );
+			ERROR_ASSERT( rProp.is() , "test object is no property set " );
+		
+			UsrAny any;
+			any.setINT32( 0x83482 );
+			rProp->setPropertyValue( L"long" , any );
+			
+			any.setFloat( 42.23 );
+			rProp->setPropertyValue( L"float" , any );
+	
+			any.setDouble( 	233.321412 );
+			rProp->setPropertyValue( L"double" , any );
+			
+			any.setBOOL( TRUE );
+			rProp->setPropertyValue( L"bool" , any );
+	
+			any.setBYTE( 130 );
+			rProp->setPropertyValue( L"byte" , any );
+			
+			any.setChar( 'h' );
+			rProp->setPropertyValue( L"char" , any );
+			
+			any.setString( L"hi du !" );
+			rProp->setPropertyValue( L"string" , any );
+=====================================================================
+Found a 27 line (136 tokens) duplication in the following files: 
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 704 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+
+      	"<html:a href='http://frob.com'>here.</html:a></html:p></html:body>\n"
+  	"</html:html>\n";
+
+	Sequence<BYTE> seqBytes( strlen( TestString ) );
+	memcpy( seqBytes.getArray() , TestString , strlen( TestString ) );
+
+	
+	XInputStreamRef rInStream;
+	UString sInput;
+
+	rInStream = createStreamFromSequence( seqBytes , m_rFactory );
+	sInput = UString( L"internal" );
+	
+	if( rParser.is() ) {
+		InputSource source;
+
+		source.aInputStream = rInStream;
+		source.sSystemId 	= sInput;
+		
+		TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE );
+		XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY );
+		XEntityResolverRef 	rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY );
+	
+		rParser->setDocumentHandler( rDocHandler );
+		rParser->setEntityResolver( rEntityResolver );
+		try {
+			rParser->parseStream( source );
+=====================================================================
+Found a 18 line (136 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/bridgetest.cxx
+
+	check( rData1.Any == rData2.Any, "### any does not match!" );
+
+	return (rData1.Bool == rData2.Bool &&
+			rData1.Char == rData2.Char &&
+			rData1.Byte == rData2.Byte &&
+			rData1.Short == rData2.Short &&
+			rData1.UShort == rData2.UShort &&
+			rData1.Long == rData2.Long &&
+			rData1.ULong == rData2.ULong &&
+			rData1.Hyper == rData2.Hyper &&
+			rData1.UHyper == rData2.UHyper &&
+			rData1.Float == rData2.Float &&
+			rData1.Double == rData2.Double &&
+			rData1.Enum == rData2.Enum &&
+			rData1.String == rData2.String &&
+			rData1.Interface == rData2.Interface &&
+			rData1.Any == rData2.Any);
+}
+=====================================================================
+Found a 29 line (136 tokens) duplication in the following files: 
+Starting at line 1250 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 1586 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+                               const ::std::vector< sal_Int32 >& 					rPolygonGlyphMap,
+                               const uno::Sequence< double >&						rOffsets,
+                               VirtualDevice&										rVDev,
+                               const CanvasSharedPtr&								rCanvas, 
+                               const OutDevState& 									rState,
+                               const ::basegfx::B2DHomMatrix&						rTextTransform ); 
+
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation,
+                                     const Subset&					rSubset ) const;
+
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix&	rTransformation,
+                                                       const Subset&					rSubset ) const;
+
+                virtual sal_Int32 getActionCount() const;
+
+            private:
+                // TextRenderer interface
+                virtual bool operator()( const rendering::RenderState& rRenderState ) const;
+                    
+                // TODO(P2): This is potentially a real mass object
+                // (every character might be a separate TextAction),
+                // thus, make it as lightweight as possible. For
+                // example, share common RenderState among several
+                // TextActions, maybe using maOffsets for the
+                // translation.
+
+                uno::Reference< rendering::XPolyPolygon2D >			mxTextPoly;
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 780 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JConnection.cxx
+Starting at line 1129 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+	jobject out(NULL);
+	SDBThreadAttach t;
+	if( t.pEnv )
+	{
+		// temporaere Variable initialisieren
+		static const char * cSignature = "()Ljava/sql/SQLWarning;";
+		static const char * cMethodName = "getWarnings";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	if( out )
+	{
+		java_sql_SQLWarning_BASE		warn_base( t.pEnv, out );
+		return makeAny(
+            static_cast< starsdbc::SQLException >(
+                java_sql_SQLWarning(warn_base,*this)));
+	}
+
+	return ::com::sun::star::uno::Any();
+=====================================================================
+Found a 31 line (136 tokens) duplication in the following files: 
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FConnection.cxx
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx
+
+}
+// --------------------------------------------------------------------------------
+sal_Bool SAL_CALL OConnection::isClosed(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	
+	// just simple -> we are close when we are disposed taht means someone called dispose(); (XComponent)
+	return OConnection_BASE::rBHelper.bDisposed;
+}
+// --------------------------------------------------------------------------------
+Reference< XDatabaseMetaData > SAL_CALL OConnection::getMetaData(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+		
+	// here we have to create the class with biggest interface
+	// The answer is 42 :-)
+	Reference< XDatabaseMetaData > xMetaData = m_xMetaData;
+	if(!xMetaData.is())
+	{
+		xMetaData = new ODatabaseMetaData(this); // need the connection because it can return it
+		m_xMetaData = xMetaData;
+	}
+
+	return xMetaData;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setReadOnly( sal_Bool readOnly ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 25 line (136 tokens) duplication in the following files: 
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localsinglebackend.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/localbe/localstratumbase.cxx
+
+sal_Bool SAL_CALL LocalStratumBase::isEqualEntity(const OUString& aEntity, const OUString& aOtherEntity) 
+    throw (backend::BackendAccessException, lang::IllegalArgumentException, uno::RuntimeException)
+{
+    if (aEntity.getLength() == 0)
+    {
+        rtl::OUString const sMsg(RTL_CONSTASCII_USTRINGPARAM(
+                "LocalSingleBackend - Invalid empty entity."));
+
+        throw lang::IllegalArgumentException(sMsg, *this, 1);
+    }
+    if (aOtherEntity.getLength() == 0)
+    {
+        rtl::OUString const sMsg(RTL_CONSTASCII_USTRINGPARAM(
+                "LocalSingleBackend - Invalid empty entity."));
+
+        throw lang::IllegalArgumentException(sMsg, *this, 2);
+    }
+    OUString aNormalizedEntity(aEntity);
+    normalizeURL(aNormalizedEntity,*this);
+
+    OUString aNormalizedOther(aOtherEntity);
+    normalizeURL(aNormalizedOther,*this);
+
+    return aNormalizedEntity == aNormalizedOther;
+}
+=====================================================================
+Found a 26 line (136 tokens) duplication in the following files: 
+Starting at line 698 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 1968 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 3199 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+void EnumType::dumpCGetCunoType(FileStream& o)
+{
+	OString typeName(m_typeName.replace('/', '_'));
+
+	dumpOpenExternC(o);
+
+	o << "#if (defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500))\n"
+	  << "static typelib_TypeDescriptionReference * s_pType_" << typeName << " = 0;\n"
+	  << "#endif\n\n";
+
+	o << "typelib_TypeDescriptionReference ** SAL_CALL getCUnoType_" << m_name << "() SAL_THROW_EXTERN_C( () )\n{\n";
+	inc();
+
+	o << "#if ! (defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500))\n"
+	  << indent() << "static typelib_TypeDescriptionReference * s_pType_" << typeName << " = 0;\n"
+	  << "#endif\n\n";
+
+	o << indent() << "if ( !s_pType_" << typeName << " )\n" << indent() << "{\n";
+	inc();
+	o << indent() << "oslMutex * pMutex = osl_getGlobalMutex();\n"
+	  << indent() << "osl_acquireMutex( pMutex );\n";
+
+	o << indent() << "if ( !s_pType_" << typeName << " )\n" << indent() << "{\n";
+	inc();
+	o << indent() << "rtl_uString * pTypeName = 0;\n"
+ 	  << indent() << "_typelib_TypeDescription * pTD = 0;\n";
+=====================================================================
+Found a 33 line (136 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+            // has to destruct the any
+	}
+	else // else no exception occured...
+	{
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bOut) // inout/out
+			{
+				// convert and assign
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+=====================================================================
+Found a 21 line (135 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + (x_lr << 2);
+                        int weight = (weight_y * weight_array[x_hr] + 
+                                     image_filter_size / 2) >> 
+                                     downscale_shift;
+                        fg[0] += fg_ptr[0] * weight;
+                        fg[1] += fg_ptr[1] * weight;
+                        fg[2] += fg_ptr[2] * weight;
+                        fg[3] += fg_ptr[3] * weight;
+                        total_weight += weight;
+                        x_hr   += rx_inv;
+=====================================================================
+Found a 21 line (135 tokens) duplication in the following files: 
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr++;
+=====================================================================
+Found a 22 line (135 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0]     += weight * *fg_ptr++;
+                            fg[1]     += weight * *fg_ptr++;
+                            fg[2]     += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr--;
+                        y_lr++;
+
+                        weight = (weight_array[x_hr + image_subpixel_size] * 
+=====================================================================
+Found a 19 line (135 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 870 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFileControlModel") ) );
+	
+	Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
+	if (xStyle.is())
+	{
+		StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+		Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+		pStyle->importBackgroundColorStyle( xControlModel );
+		pStyle->importTextColorStyle( xControlModel );
+		pStyle->importTextLineColorStyle( xControlModel );
+		pStyle->importBorderStyle( xControlModel );
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+							   _xAttributes );
+	ctx.importBooleanProperty(
+=====================================================================
+Found a 7 line (135 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 34 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_gsv_text.cpp
+
+        0x0a,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 22 line (135 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/xlfd_extd.cxx
+Starting at line 632 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/xlfd_extd.cxx
+
+BitmapXlfd::ToString( ByteString &rString,
+		unsigned short nPixelSize, char *pMatricsString, rtl_TextEncoding nEncoding ) const
+{
+	int nIdx = GetEncodingIdx( nEncoding );
+	if ( nIdx < 0 )
+		return;
+
+	ExtendedXlfd::ToString( rString, nPixelSize, nEncoding );
+	EncodingInfo& rInfo = mpEncodingInfo[ nIdx ];
+
+	AppendAttribute( mpFactory->RetrieveAddstyle(rInfo.mnAddstyle), rString );
+
+	rString += "-*-";
+	char pTmp[256];
+	snprintf( pTmp, sizeof(pTmp), pMatricsString, nPixelSize, nPixelSize );
+	rString += pTmp;
+	rString += "-*-*-";
+	rString += static_cast< char >(rInfo.mcSpacing);
+	rString += "-*";
+
+	AppendAttribute( mpFactory->RetrieveCharset(rInfo.mnCharset), rString );
+}
+=====================================================================
+Found a 27 line (135 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/devaudiosound.cxx
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/osssound.cxx
+
+		aData.m_pSound = this;
+
+		// check for data chunk
+		if( findChunk( &aData, "data" ) == -1 )
+			goto failed;
+		int nPos = findChunk( &aData, "fmt " );
+		if( nPos == -1 )
+			goto failed;
+		
+		int nFormat		= readLEShort( m_pBuffer + nPos + 8 );
+		int nChannels	= readLEShort( m_pBuffer + nPos + 10 );
+		// check channels
+		if( nChannels != 1 && nChannels != 2 )
+			goto failed;
+		// check formats
+		// playable is MS-PCM only at now
+		if( nFormat != 1 )
+			goto failed;
+		return TRUE;
+	}
+	else if( ! strncmp( ".snd", m_pBuffer, 4 ) )
+	{
+		ULONG nEncoding		= readBELong( m_pBuffer + 12 );
+		ULONG nChannels		= readBELong( m_pBuffer + 20 );
+
+		// check for playable encodings
+		if( nEncoding != 1 && nEncoding != 2 && nEncoding != 3 )
+=====================================================================
+Found a 33 line (135 tokens) duplication in the following files: 
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+    if( !nStepCount )
+	{
+		long nInc;
+
+		if ( meOutDevType != OUTDEV_PRINTER && !bMtf )
+        {
+			nInc = ( nMinRect < 50 ) ? 2 : 4;
+        }
+		else
+        {
+            // #105998# Use display-equivalent step size calculation
+			nInc = (nMinRect < 800) ? 10 : 20;
+        }
+
+		if( !nInc )
+			nInc = 1;
+
+		nStepCount = nMinRect / nInc;
+	}
+	
+    // minimal drei Schritte und maximal die Anzahl der Farbunterschiede
+	long nSteps = Max( nStepCount, 2L );
+	long nCalcSteps  = Abs( nRedSteps );
+	long nTempSteps = Abs( nGreenSteps );
+	if ( nTempSteps > nCalcSteps )
+		nCalcSteps = nTempSteps;
+	nTempSteps = Abs( nBlueSteps );
+	if ( nTempSteps > nCalcSteps )
+		nCalcSteps = nTempSteps;
+	if ( nCalcSteps < nSteps )
+		nSteps = nCalcSteps;
+	if ( !nSteps )
+		nSteps = 1;
+=====================================================================
+Found a 18 line (135 tokens) duplication in the following files: 
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gfxlink.cxx
+Starting at line 430 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+
+				::ucbhelper::Content aCnt( mpSwapFile->aSwapURL.GetMainURL( INetURLObject::NO_DECODE ),
+									 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+				aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ),
+									 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+			}
+			catch( const ::com::sun::star::ucb::ContentCreationException& )
+			{
+			}
+			catch( const ::com::sun::star::uno::RuntimeException& )
+			{
+			}
+			catch( const ::com::sun::star::ucb::CommandAbortedException& )
+			{
+			}
+        	catch( const ::com::sun::star::uno::Exception& )
+		    {
+		    }
+=====================================================================
+Found a 32 line (135 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/content.cxx
+
+		osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() );
+	  	if ( !pCollection )
+	  	{
+	  		static cppu::OTypeCollection aCollection(
+				CPPU_TYPE_REF( lang::XTypeProvider ),
+			   	CPPU_TYPE_REF( lang::XServiceInfo ),
+			   	CPPU_TYPE_REF( lang::XComponent ),
+			   	CPPU_TYPE_REF( ucb::XContent ),
+			   	CPPU_TYPE_REF( ucb::XCommandProcessor ),
+			   	CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+			   	CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+			   	CPPU_TYPE_REF( beans::XPropertyContainer ),
+			   	CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+			   	CPPU_TYPE_REF( container::XChild ) );
+	  		pCollection = &aCollection;
+		}
+	}
+
+	return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+	throw( uno::RuntimeException )
+{
+	return rtl::OUString::createFromAscii( "CHelpContent" );
+=====================================================================
+Found a 41 line (135 tokens) duplication in the following files: 
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    return rtl::OUString::createFromAscii( WEBDAV_CONTENT_TYPE );
+}
+
+//=========================================================================
+//
+// XCommandProcessor methods.
+//
+//=========================================================================
+
+// virtual
+uno::Any SAL_CALL Content::execute(
+        const ucb::Command& aCommand,
+        sal_Int32 /*CommandId*/,
+        const uno::Reference< ucb::XCommandEnvironment >& Environment )
+    throw( uno::Exception,
+           ucb::CommandAbortedException,
+           uno::RuntimeException )
+{
+    uno::Any aRet;
+    
+    if ( aCommand.Name.equalsAsciiL(
+             RTL_CONSTASCII_STRINGPARAM( "getPropertyValues" ) ) )
+    {
+      	//////////////////////////////////////////////////////////////////
+      	// getPropertyValues
+      	//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::Property > Properties;
+      	if ( !( aCommand.Argument >>= Properties ) )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+      	aRet <<= getPropertyValues( Properties, Environment );
+=====================================================================
+Found a 27 line (135 tokens) duplication in the following files: 
+Starting at line 712 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 913 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+        const ContentProperties& rData,
+        const rtl::Reference< ::ucbhelper::ContentProviderImplHelper >& 
+            rProvider,
+        const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+			{
+				xRow->appendString ( rProp, rData.aContentType );
+=====================================================================
+Found a 32 line (135 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/content.cxx
+
+		osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() );
+	  	if ( !pCollection )
+	  	{
+	  		static cppu::OTypeCollection aCollection(
+				CPPU_TYPE_REF( lang::XTypeProvider ),
+			   	CPPU_TYPE_REF( lang::XServiceInfo ),
+			   	CPPU_TYPE_REF( lang::XComponent ),
+			   	CPPU_TYPE_REF( ucb::XContent ),
+			   	CPPU_TYPE_REF( ucb::XCommandProcessor ),
+			   	CPPU_TYPE_REF( beans::XPropertiesChangeNotifier ),
+			   	CPPU_TYPE_REF( ucb::XCommandInfoChangeNotifier ),
+			   	CPPU_TYPE_REF( beans::XPropertyContainer ),
+			   	CPPU_TYPE_REF( beans::XPropertySetInfoChangeNotifier ),
+			   	CPPU_TYPE_REF( container::XChild ) );
+	  		pCollection = &aCollection;
+		}
+	}
+
+	return (*pCollection).getTypes();
+}
+
+//=========================================================================
+//
+// XServiceInfo methods.
+//
+//=========================================================================
+
+// virtual
+rtl::OUString SAL_CALL Content::getImplementationName()
+	throw( uno::RuntimeException )
+{
+	return rtl::OUString::createFromAscii( "CHelpContent" );
+=====================================================================
+Found a 22 line (135 tokens) duplication in the following files: 
+Starting at line 4473 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 4537 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+rtl::OUString INetURLObject::getExtension(sal_Int32 nIndex,
+									  bool bIgnoreFinalSlash,
+									  DecodeMechanism eMechanism,
+									  rtl_TextEncoding eCharset) const
+{
+	SubString aSegment(getSegment(nIndex, bIgnoreFinalSlash));
+	if (!aSegment.isPresent())
+		return rtl::OUString();
+
+	sal_Unicode const * pSegBegin
+		= m_aAbsURIRef.getStr() + aSegment.getBegin();
+	sal_Unicode const * pSegEnd = pSegBegin + aSegment.getLength();
+
+    if (pSegBegin < pSegEnd && *pSegBegin == '/')
+        ++pSegBegin;
+	sal_Unicode const * pExtension = 0;
+	sal_Unicode const * p = pSegBegin;
+	for (; p != pSegEnd && *p != ';'; ++p)
+		if (*p == '.' && p != pSegBegin)
+			pExtension = p;
+
+	if (!pExtension)
+=====================================================================
+Found a 22 line (135 tokens) duplication in the following files: 
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/swparrtf.cxx
+
+		pSttNdIdx = new SwNodeIndex( pDoc->GetNodes() );
+		if( !IsNewDoc() )		// in ein Dokument einfuegen ?
+		{
+			const SwPosition* pPos = pPam->GetPoint();
+			SwTxtNode* pSttNd = pPos->nNode.GetNode().GetTxtNode();
+
+			pDoc->SplitNode( *pPos, false );
+
+			*pSttNdIdx = pPos->nNode.GetIndex()-1;
+			pDoc->SplitNode( *pPos, false );
+
+			SwPaM aInsertionRangePam( *pPos );
+
+			pPam->Move( fnMoveBackward );
+
+			// #106634# split any redline over the insertion point
+			aInsertionRangePam.SetMark();
+			*aInsertionRangePam.GetPoint() = *pPam->GetPoint();
+			aInsertionRangePam.Move( fnMoveBackward );
+			pDoc->SplitRedline( aInsertionRangePam );
+
+            pDoc->SetTxtFmtColl( *pPam, pDoc->GetTxtCollFromPool
+=====================================================================
+Found a 17 line (135 tokens) duplication in the following files: 
+Starting at line 1487 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doclay.cxx
+Starting at line 1777 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doclay.cxx
+
+	pNewFmt->SetAttr( SwFmtCntnt( pSttNd ));
+	pNewFmt->SetAttr( *pNewSet );
+
+	const SwFmtAnchor& rAnchor = pNewFmt->GetAnchor();
+	if( FLY_IN_CNTNT == rAnchor.GetAnchorId() )
+	{
+		const SwPosition *pPos = rAnchor.GetCntntAnchor();
+		SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
+		ASSERT( pTxtNode->HasHints(), "Missing FlyInCnt-Hint." );
+		const xub_StrLen nIdx = pPos->nContent.GetIndex();
+		SwTxtAttr *pHnt = pTxtNode->GetTxtAttr( nIdx, RES_TXTATR_FLYCNT );
+
+#ifndef PRODUCT
+		ASSERT( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT,
+					"Missing FlyInCnt-Hint." );
+		ASSERT( pHnt && ((SwFmtFlyCnt&)pHnt->GetFlyCnt()).
+					GetFrmFmt() == (SwFrmFmt*)pOldFmt,
+=====================================================================
+Found a 34 line (135 tokens) duplication in the following files: 
+Starting at line 2150 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 2548 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+						if( pItem->GetLineEndValue() != pLineEndItem->GetLineEndValue() )
+						{
+							// same name but different value, we need a new name for this item
+							aUniqueName = String();
+							bForceNew = sal_True;
+						}
+						break;
+					}
+				}
+			}
+		}
+
+		// if we have no name yet, find existing item with same conent or
+		// create a unique name
+		if( aUniqueName.Len() == 0 )
+		{
+			sal_Bool bFoundExisting = sal_False;
+
+			sal_Int32 nUserIndex = 1;
+			const ResId aRes(SVX_RES(RID_SVXSTR_LINEEND));
+			const String aUser( aRes );
+
+			if( pPool1 )
+			{
+				nCount = pPool1->GetItemCount( XATTR_LINESTART );
+				sal_uInt16 nSurrogate2;
+
+				for( nSurrogate2 = 0; nSurrogate2 < nCount; nSurrogate2++ )
+				{
+					const XLineStartItem* pItem = (const XLineStartItem*)pPool1->GetItem( XATTR_LINESTART, nSurrogate2 );
+
+					if( pItem && pItem->GetName().Len() )
+					{
+						if( !bForceNew && pItem->GetLineStartValue() == pLineEndItem->GetLineEndValue() )
+=====================================================================
+Found a 18 line (135 tokens) duplication in the following files: 
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/_contdlg.cxx
+Starting at line 2701 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+
+                    fScaleY = (double) aOrig.Height() / aOrgSize.Height();
+
+                    for ( USHORT j = 0, nPolyCount = rContour.Count(); j < nPolyCount; j++ )
+                    {
+                        Polygon& rPoly = rContour[ j ];
+
+                        for ( USHORT i = 0, nCount = rPoly.GetSize(); i < nCount; i++ )
+                        {
+                            if ( bPixelMap )
+                                aNewPoint = pOutDev->PixelToLogic( rPoly[ i ], aDispMap  );
+                            else
+                                aNewPoint = pOutDev->LogicToLogic( rPoly[ i ], aGrfMap, aDispMap  );
+
+                            rPoly[ i ] = Point( FRound( aNewPoint.X() * fScaleX ), FRound( aNewPoint.Y() * fScaleY ) );
+                        }
+                    }
+                }
+            }
+=====================================================================
+Found a 10 line (135 tokens) duplication in the following files: 
+Starting at line 5479 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4794 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+static const SvxMSDffVertPair mso_sptDoubleWaveVert[] =	// adjustment1 : 0 - 2230
+{														// adjustment2 : 8640 - 12960
+	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
+	{ 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
+};
+static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },	//400 (vert.adj)
+=====================================================================
+Found a 20 line (135 tokens) duplication in the following files: 
+Starting at line 4347 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3943 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] =
+{
+	{ 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] = 
+{
+	{ { 5400, 5400 }, { 16200, 16200 } }
+};
+static const mso_CustomShape msoFlowChartDecision =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartDecisionVert, sizeof( mso_sptFlowChartDecisionVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartDecisionTextRect, sizeof( mso_sptFlowChartDecisionTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 13 line (135 tokens) duplication in the following files: 
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+	double	fAngle	= nAngle * F_PI1800;
+	double	fWidth	= aRect.GetWidth();
+	double	fHeight = aRect.GetHeight();
+	double	fDX 	= fWidth  * fabs( cos( fAngle ) ) +
+					  fHeight * fabs( sin( fAngle ) );
+	double	fDY 	= fHeight * fabs( cos( fAngle ) ) +
+					  fWidth  * fabs( sin( fAngle ) );
+			fDX 	= (fDX - fWidth)  * 0.5 + 0.5;
+			fDY 	= (fDY - fHeight) * 0.5 + 0.5;
+	aRect.Left()   -= (long)fDX;
+	aRect.Right()  += (long)fDX;
+	aRect.Top()    -= (long)fDY;
+	aRect.Bottom() += (long)fDY;
+=====================================================================
+Found a 11 line (135 tokens) duplication in the following files: 
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/shlxthandler/propsheets/document_statistic.cxx
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/shlxthandler/propsheets/document_statistic.cxx
+
+void draw_impress_math_document_statistic_reader::fill_description_section(
+    CMetaInfoReader *meta_info_accessor, statistic_group_list_t* group_list)
+{
+    statistic_item_list_t il;
+    
+    il.push_back(statistic_item(GetResString(IDS_TITLE),       meta_info_accessor->getTagData( META_INFO_TITLE ),       READONLY));
+    il.push_back(statistic_item(GetResString(IDS_COMMENTS),    meta_info_accessor->getTagData( META_INFO_DESCRIPTION ), READONLY));
+    il.push_back(statistic_item(GetResString(IDS_SUBJECT),     meta_info_accessor->getTagData( META_INFO_SUBJECT ),     READONLY));
+    il.push_back(statistic_item(GetResString(IDS_KEYWORDS),    meta_info_accessor->getTagData(META_INFO_KEYWORDS ),    READONLY));
+    il.push_back(statistic_item(GetResString(IDS_PAGES),       meta_info_accessor->getTagAttribute( META_INFO_DOCUMENT_STATISTIC,META_INFO_PAGES) ,   READONLY));    
+    il.push_back(statistic_item(GetResString(IDS_OLE_OBJECTS), meta_info_accessor->getTagAttribute( META_INFO_DOCUMENT_STATISTIC,META_INFO_OBJECTS) , READONLY));
+=====================================================================
+Found a 23 line (135 tokens) duplication in the following files: 
+Starting at line 650 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/menu/virtmenu.cxx
+Starting at line 720 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/menu/virtmenu.cxx
+
+			if ( pSVMenu->GetItemType( nSVPos ) == MENUITEM_STRINGIMAGE )
+			{
+                if ( framework::AddonMenuManager::IsAddonMenuId( nSlotId ))
+                {
+                    // Special code for Add-On menu items. They can appear inside the help menu.
+					rtl::OUString aCmd( pSVMenu->GetItemCommand( nSlotId ) );
+					rtl::OUString aImageId;
+
+					::framework::MenuConfiguration::Attributes* pMenuAttributes =
+						(::framework::MenuConfiguration::Attributes*)pSVMenu->GetUserValue( nSlotId );
+
+					if ( pMenuAttributes )
+						aImageId = pMenuAttributes->aImageId; // Retrieve image id from menu attributes
+
+					pSVMenu->SetItemImage( nSlotId, RetrieveAddOnImage( xFrame, aImageId, aCmd, FALSE, bIsHiContrastMode ));
+                }
+                else
+                {
+                    rtl::OUString aSlotURL( RTL_CONSTASCII_USTRINGPARAM( "slot:" ));
+                    aSlotURL += rtl::OUString::valueOf( sal_Int32( nSlotId ));
+				    pSVMenu->SetItemImage( nSlotId, GetImage( xFrame, aSlotURL, FALSE, bWasHighContrast ));
+                }
+			}
+=====================================================================
+Found a 18 line (135 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/impldde.cxx
+Starting at line 410 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/impldde.cxx
+
+	String sServer, sTopic, sItem;
+	pLink->GetLinkManager()->GetDisplayNames( pLink, &sServer, &sTopic, &sItem );
+
+	aEdDdeApp.SetText( sServer );
+	aEdDdeTopic.SetText( sTopic );
+	aEdDdeItem.SetText( sItem );
+
+	aEdDdeApp.SetModifyHdl( STATIC_LINK( this, SvDDELinkEditDialog, EditHdl_Impl));
+	aEdDdeTopic.SetModifyHdl( STATIC_LINK( this, SvDDELinkEditDialog, EditHdl_Impl));
+	aEdDdeItem.SetModifyHdl( STATIC_LINK( this, SvDDELinkEditDialog, EditHdl_Impl));
+
+	aOKButton1.Enable( sServer.Len() && sTopic.Len() && sItem.Len() );
+}
+
+String SvDDELinkEditDialog::GetCmd() const
+{
+	String sCmd( aEdDdeApp.GetText() ), sRet;
+	::so3::MakeLnkName( sRet, &sCmd, aEdDdeTopic.GetText(), aEdDdeItem.GetText() );
+=====================================================================
+Found a 17 line (135 tokens) duplication in the following files: 
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
+
+	sal_Int32 nColumns = 1;
+	if ( mpViewShell && mpTableInfo && nColumn >= 0 && nRow >= 0 &&
+			nColumn < mpTableInfo->GetCols() && nRow < mpTableInfo->GetRows() )
+	{
+		const ScPreviewColRowInfo& rColInfo = mpTableInfo->GetColInfo()[nColumn];
+		const ScPreviewColRowInfo& rRowInfo = mpTableInfo->GetRowInfo()[nRow];
+
+		if ( rColInfo.bIsHeader || rRowInfo.bIsHeader )
+		{
+			//	header cells only span a single cell
+		}
+		else
+		{
+			ScDocument* pDoc = mpViewShell->GetDocument();
+			const ScMergeAttr* pItem = (const ScMergeAttr*)pDoc->GetAttr(
+				static_cast<SCCOL>(rColInfo.nDocIndex), static_cast<SCROW>(rRowInfo.nDocIndex), mpTableInfo->GetTab(), ATTR_MERGE );
+			if ( pItem && pItem->GetColMerge() > 0 )
+=====================================================================
+Found a 5 line (135 tokens) duplication in the following files: 
+Starting at line 467 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlwrap.cxx
+Starting at line 804 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlwrap.cxx
+
+		{ MAP_LEN( "UsePrettyPrinting" ), 0, &::getCppuType((sal_Bool*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+        { MAP_LEN( "BaseURI" ), 0, &::getCppuType( (rtl::OUString *)0 ), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+        { MAP_LEN( "StreamRelPath" ), 0, &::getCppuType( (rtl::OUString *)0 ), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+        { MAP_LEN( "StreamName" ), 0, &::getCppuType( (rtl::OUString *)0 ), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+        { MAP_LEN( "StyleNames" ), 0, &::getCppuType( (uno::Sequence<rtl::OUString>*)0 ), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+=====================================================================
+Found a 43 line (135 tokens) duplication in the following files: 
+Starting at line 2650 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 1325 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("123.45.67.89"), IP_PORT_HTTP2 );
+			::osl::SocketAddr saLocalSocketAddr;
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);			
+			sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
+			oslSocketError seBind = sSocket.getError( );
+			sSocket.clearError( );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for clearError function: trick an error called sSocket.getError( ), and then clear the error states, check the result.", 
+									osl_Socket_E_None == sSocket.getError( ) && seBind != osl_Socket_E_None  );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( clearError );
+		CPPUNIT_TEST( clearError_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class clearError
+
+
+	/** testing the methods:
+		inline oslSocketError getError() const;
+		inline ::rtl::OUString getErrorAsString( ) const;
+	*/
+	class getError : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+	
+		void getError_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_FTP );
+=====================================================================
+Found a 26 line (135 tokens) duplication in the following files: 
+Starting at line 15298 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 16076 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_008_Float_Negative : public checkfloat
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            // LLA: OString                expVal( kTestStr95 );
+            float                  input = (float)atof("-3.0");
+=====================================================================
+Found a 25 line (135 tokens) duplication in the following files: 
+Starting at line 9005 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 14724 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_007_Int64_defaultParam : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            OString                expVal( kTestStr59 );
+=====================================================================
+Found a 41 line (135 tokens) duplication in the following files: 
+Starting at line 664 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/socket.c
+Starting at line 631 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/socket.cxx
+
+	sal_uInt32          nAddr = OSL_INADDR_NONE;
+
+	if (strDottedAddr && strDottedAddr->length)
+	{
+		/* Dotted host address for limited broadcast */
+		rtl_String *pDottedAddr = NULL;
+
+		rtl_uString2String (
+			&pDottedAddr, strDottedAddr->buffer, strDottedAddr->length,
+			RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS);
+
+		nAddr = inet_addr (pDottedAddr->buffer);
+		rtl_string_release (pDottedAddr);
+	}
+
+	if (nAddr != OSL_INADDR_NONE)
+	{
+		/* Limited broadcast */
+		nAddr = ntohl(nAddr);
+		if (IN_CLASSA(nAddr))
+		{
+			nAddr &= IN_CLASSA_NET;
+			nAddr |= IN_CLASSA_HOST;
+		}
+		else if (IN_CLASSB(nAddr))
+		{
+			nAddr &= IN_CLASSB_NET;
+			nAddr |= IN_CLASSB_HOST;
+		}
+		else if (IN_CLASSC(nAddr))
+		{
+			nAddr &= IN_CLASSC_NET;
+			nAddr |= IN_CLASSC_HOST;
+		}
+		else
+		{
+			/* No broadcast in class D */
+			return ((oslSocketAddr)NULL);
+		}
+		nAddr = htonl(nAddr);
+	}
+=====================================================================
+Found a 18 line (135 tokens) duplication in the following files: 
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1778 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xdf, 0xbf },
+{ 0x00, 0xe0, 0xc0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xf0 },
+=====================================================================
+Found a 24 line (135 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+
+	{ 0x3046, 0x3099 },	// 0x3094 HIRAGANA LETTER VU --> HIRAGANA LETTER U + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x3095
+	{ 0x0000, 0x0000 },	// 0x3096
+	{ 0x0000, 0x0000 },	// 0x3097
+	{ 0x0000, 0x0000 },	// 0x3098
+	{ 0x0000, 0x0000 },	// 0x3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309a COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309d HIRAGANA ITERATION MARK
+	{ 0x0000, 0x0000 },	// 0x309e HIRAGANA VOICED ITERATION MARK
+	{ 0x0000, 0x0000 },	// 0x309f
+	{ 0x0000, 0x0000 },	// 0x30a0
+	{ 0x0000, 0x0000 },	// 0x30a1 KATAKANA LETTER SMALL A
+	{ 0x0000, 0x0000 },	// 0x30a2 KATAKANA LETTER A
+	{ 0x0000, 0x0000 },	// 0x30a3 KATAKANA LETTER SMALL I
+	{ 0x0000, 0x0000 },	// 0x30a4 KATAKANA LETTER I
+	{ 0x0000, 0x0000 },	// 0x30a5 KATAKANA LETTER SMALL U
+	{ 0x0000, 0x0000 },	// 0x30a6 KATAKANA LETTER U
+	{ 0x0000, 0x0000 },	// 0x30a7 KATAKANA LETTER SMALL E
+	{ 0x0000, 0x0000 },	// 0x30a8 KATAKANA LETTER E
+	{ 0x0000, 0x0000 },	// 0x30a9 KATAKANA LETTER SMALL O
+	{ 0x0000, 0x0000 },	// 0x30aa KATAKANA LETTER O
+	{ 0x0000, 0x0000 },	// 0x30ab KATAKANA LETTER KA
+=====================================================================
+Found a 5 line (135 tokens) duplication in the following files: 
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1538 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// feb0 - febf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fec0 - fecf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fed0 - fedf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fee0 - feef
+    13,13,13,13,13,13,13,13,13,13,13,13,13, 0, 0,18,// fef0 - feff
+=====================================================================
+Found a 7 line (135 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 34 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_gsv_text.cpp
+
+        0x0a,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 5 line (135 tokens) duplication in the following files: 
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 896 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 5 line (135 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fab0 - fabf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fac0 - facf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fad0 - fadf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fae0 - faef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faf0 - faff
+=====================================================================
+Found a 5 line (135 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 789 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f60 - 9f6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f70 - 9f7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f80 - 9f8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 9f90 - 9f9f
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fa0 - 9faf
+=====================================================================
+Found a 22 line (135 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/localedata/saxparser.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+		nPos( 0 )
+		{}
+
+public:
+    virtual sal_Int32 SAL_CALL readBytes( Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
+		throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
+		{
+			nBytesToRead = (nBytesToRead > m_seq.getLength() - nPos ) ?
+				m_seq.getLength() - nPos :
+				nBytesToRead;
+			aData = Sequence< sal_Int8 > ( &(m_seq.getConstArray()[nPos]) , nBytesToRead );
+			nPos += nBytesToRead;
+			return nBytesToRead;
+		}
+    virtual sal_Int32 SAL_CALL readSomeBytes(
+		::com::sun::star::uno::Sequence< sal_Int8 >& aData,
+		sal_Int32 nMaxBytesToRead )
+		throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
+		{
+			return readBytes( aData, nMaxBytesToRead );
+		}
+    virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip )
+=====================================================================
+Found a 33 line (135 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/characterclassification/cclass_unicode_parser.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/characterclassification/cclass_unicode_parser.cxx
+
+	/*  95 _ */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/*  96 ` */	TOKEN_CHAR | TOKEN_WORD_SEP | TOKEN_VALUE_SEP,	// (TOKEN_ILLEGAL // UNUSED)
+	//for ( i = 97; i < 123; i++ )
+	/*  97 a */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/*  98 b */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/*  99 c */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 100 d */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 101 e */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 102 f */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 103 g */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 104 h */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 105 i */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 106 j */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 107 k */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 108 l */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 109 m */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 110 n */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 111 o */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 112 p */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 113 q */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 114 r */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 115 s */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 116 t */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 117 u */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 118 v */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 119 w */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 120 x */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 121 y */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 122 z */	TOKEN_CHAR_WORD | TOKEN_WORD,
+	/* 123 { */	TOKEN_CHAR | TOKEN_WORD_SEP | TOKEN_VALUE_SEP,	// (TOKEN_ILLEGAL // UNUSED)
+	/* 124 | */	TOKEN_CHAR | TOKEN_WORD_SEP | TOKEN_VALUE_SEP,	// (TOKEN_ILLEGAL // UNUSED)
+	/* 125 } */	TOKEN_CHAR | TOKEN_WORD_SEP | TOKEN_VALUE_SEP,	// (TOKEN_ILLEGAL // UNUSED)
+	/* 126 ~ */	TOKEN_CHAR | TOKEN_WORD_SEP | TOKEN_VALUE_SEP,	// (TOKEN_ILLEGAL // UNUSED)
+=====================================================================
+Found a 19 line (135 tokens) duplication in the following files: 
+Starting at line 631 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipsd/ipsd.cxx
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipsd/ipsd.cxx
+
+							nBlack = (BYTE)mpReadAcc->GetPixel( nY, nX ).GetRed() + nDat;
+							if ( nBlack > nBlackMax )
+								nBlackMax = nBlack;
+							nBlack = (BYTE)mpReadAcc->GetPixel( nY, nX ).GetGreen() + nDat;
+							if ( nBlack > nBlackMax )
+								nBlackMax = nBlack;
+							nBlack = (BYTE)mpReadAcc->GetPixel( nY, nX ).GetBlue() + nDat;
+							if ( nBlack > nBlackMax )
+								nBlackMax = nBlack;
+							pBlack[ nX + nY * mpFileHeader->nColumns ] = nDat ^ 0xff;
+							if ( ++nX == mpFileHeader->nColumns )
+							{
+								nX = 0;
+								nY++;
+								if ( nY == mpFileHeader->nRows )
+									break;
+							}
+						}
+					}
+=====================================================================
+Found a 15 line (135 tokens) duplication in the following files: 
+Starting at line 2333 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1623 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+				}
+				break;
+
+				case META_FLOATTRANSPARENT_ACTION:
+				{
+					const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+					
+					GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+					Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point		aDestPt( pA->GetPoint() );
+					const Size		aDestSize( pA->GetSize() );
+					const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long			nMoveX, nMoveY;
+=====================================================================
+Found a 18 line (135 tokens) duplication in the following files: 
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/popupmenucontrollerfactory.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/toolbarcontrollerfactory.cxx
+
+        virtual       ~ConfigurationAccess_ToolbarControllerFactory();
+
+        void          readConfigurationData();
+
+        rtl::OUString getServiceFromCommandModule( const rtl::OUString& rCommandURL, const rtl::OUString& rModule ) const;
+        void          addServiceToCommandModule( const rtl::OUString& rCommandURL, const rtl::OUString& rModule, const rtl::OUString& rServiceSpecifier );
+        void          removeServiceFromCommandModule( const rtl::OUString& rCommandURL, const rtl::OUString& rModule );
+
+        // container.XContainerListener
+        virtual void SAL_CALL elementInserted( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL elementRemoved ( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL elementReplaced( const ContainerEvent& aEvent ) throw(RuntimeException);
+
+        // lang.XEventListener
+        virtual void SAL_CALL disposing( const EventObject& aEvent ) throw(RuntimeException);
+ 
+    private:
+        class ToolbarControllerMap : public std::hash_map< rtl::OUString,
+=====================================================================
+Found a 13 line (135 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/dbloader2.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/dbloader2.cxx
+
+using namespace ::ucbhelper;
+using namespace ::com::sun::star::task;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::ucb;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::document;
+using namespace ::com::sun::star::registry;
+using namespace ::com::sun::star::embed;
+=====================================================================
+Found a 6 line (135 tokens) duplication in the following files: 
+Starting at line 646 of /local/ooo-build/ooo-build/src/oog680-m3/cosv/source/strings/streamstr.cxx
+Starting at line 677 of /local/ooo-build/ooo-build/src/oog680-m3/cosv/source/strings/streamstr.cxx
+
+	static char cUpper[128] =
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
+	 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+	 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+	 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+	 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+=====================================================================
+Found a 21 line (135 tokens) duplication in the following files: 
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUser.cxx
+
+void SAL_CALL OMySQLUser::changePassword( const ::rtl::OUString& /*oldPassword*/, const ::rtl::OUString& newPassword ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard(m_aMutex);
+	checkDisposed(OUser_BASE_RBHELPER::rBHelper.bDisposed);
+	::rtl::OUString sAlterPwd;
+	sAlterPwd = ::rtl::OUString::createFromAscii("SET PASSWORD FOR ");
+	sAlterPwd += m_Name;
+	sAlterPwd += ::rtl::OUString::createFromAscii("@\"%\" = PASSWORD('") ;
+	sAlterPwd += newPassword;
+	sAlterPwd += ::rtl::OUString::createFromAscii("')") ;
+
+	
+	Reference<XStatement> xStmt = m_xConnection->createStatement();
+	if ( xStmt.is() )
+	{
+		xStmt->execute(sAlterPwd);
+		::comphelper::disposeComponent(xStmt);
+	}
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString OMySQLUser::getPrivilegeString(sal_Int32 nRights) const
+=====================================================================
+Found a 23 line (135 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTable.cxx
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTable.cxx
+
+			}
+			alterColumnType(nNewType,colName,descriptor);
+		}
+
+		// third: check the default values
+		::rtl::OUString sNewDefault,sOldDefault;
+		xProp->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_DEFAULTVALUE))		>>= sOldDefault;
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_DEFAULTVALUE)) >>= sNewDefault;
+
+		if(sOldDefault.getLength())
+		{
+			dropDefaultValue(colName);
+			if(sNewDefault.getLength() && sOldDefault != sNewDefault)
+				alterDefaultValue(sNewDefault,colName);
+		}
+		else if(!sOldDefault.getLength() && sNewDefault.getLength())
+			alterDefaultValue(sNewDefault,colName);
+
+		// now we should look if the name of the column changed
+		::rtl::OUString sNewColumnName;
+		descriptor->getPropertyValue(rProp.getNameByIndex(PROPERTY_ID_NAME)) >>= sNewColumnName;
+		if ( !sNewColumnName.equalsIgnoreAsciiCase(colName) )
+		{
+=====================================================================
+Found a 17 line (135 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+
+			::cppu::extractInterface(xTable,xNames->getByName(*pTabBegin));
+			aRow[3] = new ORowSetValueDecorator(*pTabBegin);
+
+			Reference< XNameAccess> xColumns = xTable->getColumns();
+			if(!xColumns.is())
+				throw SQLException();
+
+			Sequence< ::rtl::OUString> aColNames(xColumns->getElementNames());
+
+			const ::rtl::OUString* pBegin = aColNames.getConstArray();
+			const ::rtl::OUString* pEnd = pBegin + aColNames.getLength();
+			Reference< XPropertySet> xColumn;
+			for(sal_Int32 i=1;pBegin != pEnd;++pBegin,++i)
+			{
+				if(match(columnNamePattern,*pBegin,'\0'))
+				{
+					aRow[4] = new ORowSetValueDecorator(*pBegin);
+=====================================================================
+Found a 26 line (135 tokens) duplication in the following files: 
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BDriver.cxx
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADriver.cxx
+
+	return *(new ODriver(_rxFactory));
+}
+
+// --------------------------------------------------------------------------------
+::rtl::OUString SAL_CALL ODriver::getImplementationName(  ) throw(RuntimeException)
+{
+	return getImplementationName_Static();
+}
+
+// --------------------------------------------------------------------------------
+sal_Bool SAL_CALL ODriver::supportsService( const ::rtl::OUString& _rServiceName ) throw(RuntimeException)
+{
+	Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames());
+	const ::rtl::OUString* pSupported = aSupported.getConstArray();
+	const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
+	for (;pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported)
+		;
+
+	return pSupported != pEnd;
+}
+
+// --------------------------------------------------------------------------------
+Sequence< ::rtl::OUString > SAL_CALL ODriver::getSupportedServiceNames(  ) throw(RuntimeException)
+{
+	return getSupportedServiceNames_Static();
+}
+=====================================================================
+Found a 24 line (135 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/apifactoryimpl.cxx
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/apifactoryimpl.cxx
+
+SetElement* UpdateObjectFactory::doCreateSetElement(configuration::ElementTree const& aElementTree, Template* pSetElementTemplate)
+{
+	OSL_ENSURE(aElementTree.isValid(), "ERROR: trying to create a set element object without a tree");
+
+	Tree aTree( aElementTree.getTree() );
+	OSL_ENSURE(!aTree.isEmpty(), "ERROR: trying to create a set element object without a tree");
+
+	ApiTreeImpl * pParentContext = 0;
+	UnoInterfaceRef aParentRelease;
+
+	configuration::Tree aParentTree = aTree.getContextTree();
+	if (!aParentTree.isEmpty())
+	{
+		//NodeRef aParentNode = aTree.getContextNode(); 
+		NodeRef aParentRoot = aParentTree.getRootNode(); 
+		if (NodeElement* pParentRootElement = makeElement(aParentTree,aParentRoot) )
+		{
+			aParentRelease = UnoInterfaceRef(pParentRootElement->getUnoInstance(), uno::UNO_REF_NO_ACQUIRE);
+			pParentContext = &getImplementation(*pParentRootElement);
+		}
+	}
+
+	SetElement * pResult = 0;
+	if (implIsReadOnly(aTree,aTree.getRootNode()))
+=====================================================================
+Found a 18 line (135 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/misc/mimeconfighelper.cxx
+Starting at line 537 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/misc/mimeconfighelper.cxx
+
+	if ( aDocName.getLength() )
+	{
+		uno::Reference< container::XNameAccess > xObjConfig = GetObjConfiguration();
+		if ( xObjConfig.is() )
+		{
+			try
+			{
+				uno::Sequence< ::rtl::OUString > aClassIDs = xObjConfig->getElementNames();
+				for ( sal_Int32 nInd = 0; nInd < aClassIDs.getLength(); nInd++ )
+				{
+					uno::Reference< container::XNameAccess > xObjectProps;
+					::rtl::OUString aEntryDocName;
+
+					if ( ( xObjConfig->getByName( aClassIDs[nInd] ) >>= xObjectProps ) && xObjectProps.is()
+					  && ( xObjectProps->getByName(
+			  					::rtl::OUString::createFromAscii( "ObjectDocumentServiceName" ) ) >>= aEntryDocName )
+					  && aEntryDocName.equals( aDocName ) )
+					{
+=====================================================================
+Found a 34 line (135 tokens) duplication in the following files: 
+Starting at line 1551 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javatype.cxx
+Starting at line 1609 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javatype.cxx
+
+                                RTL_CONSTASCII_STRINGPARAM("INTERFACE")),
+                            rtl::OString(
+                                RTL_CONSTASCII_STRINGPARAM(
+                                    "Lcom/sun/star/uno/TypeClass;")));
+                        dependencies->insert(
+                            rtl::OString(
+                                RTL_CONSTASCII_STRINGPARAM(
+                                    "com/sun/star/uno/TypeClass")));
+                        code->instrInvokespecial(
+                            rtl::OString(
+                                RTL_CONSTASCII_STRINGPARAM(
+                                    "com/sun/star/uno/Type")),
+                            rtl::OString(RTL_CONSTASCII_STRINGPARAM("<init>")),
+                            rtl::OString(
+                                RTL_CONSTASCII_STRINGPARAM(
+                                    "(Ljava/lang/String;"
+                                    "Lcom/sun/star/uno/TypeClass;)V")));
+                        code->loadLocalReference(*index);
+                        code->instrInvokespecial(
+                            rtl::OString(
+                                RTL_CONSTASCII_STRINGPARAM(
+                                    "com/sun/star/uno/Any")),
+                            rtl::OString(RTL_CONSTASCII_STRINGPARAM("<init>")),
+                            rtl::OString(
+                                RTL_CONSTASCII_STRINGPARAM(
+                                    "(Lcom/sun/star/uno/Type;"
+                                    "Ljava/lang/Object;)V")));
+                        stack = 6;
+                    } else {
+                        code->loadLocalReference(*index);
+                        stack = 1;
+                    }
+                    size = 1;
+                    break;
+=====================================================================
+Found a 24 line (135 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/PageBackground.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/StockBar.cxx
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::FillProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+=====================================================================
+Found a 21 line (135 tokens) duplication in the following files: 
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+	*(void**)pCppStack = pThis->pCppI;
+	pCppStack += sizeof( void* );
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 16 line (135 tokens) duplication in the following files: 
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+Starting at line 1677 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+
+        Polygon2D convHull( convexHull( poly ) );
+        
+        unsigned int k;
+        for( k=0; k<poly.size(); ++k )
+        {
+            cout << poly[k].x << " " << poly[k].y << endl;
+        }
+        cout << poly[0].x << " " << poly[0].y << endl;
+        cout << "e" << endl;
+
+        for( k=0; k<convHull.size(); ++k )
+        {
+            cout << convHull[k].x << " " << convHull[k].y << endl;
+        }
+        cout << convHull[0].x << " " << convHull[0].y << endl;
+        cout << "e" << endl;
+=====================================================================
+Found a 30 line (135 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibletabbar.cxx
+Starting at line 631 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibletabbarpagelist.cxx
+Starting at line 912 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/accessibility/accessibledialogwindow.cxx
+
+Reference< XAccessible > AccessibleDialogWindow::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+{
+	OExternalLockGuard aGuard( this );
+
+	Reference< XAccessible > xChild;
+	for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+	{
+		Reference< XAccessible > xAcc = getAccessibleChild( i );
+		if ( xAcc.is() )
+		{			
+			Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );				
+			if ( xComp.is() )
+			{
+				Rectangle aRect = VCLRectangle( xComp->getBounds() );
+				Point aPos = VCLPoint( rPoint );
+				if ( aRect.IsInside( aPos ) )
+				{
+					xChild = xAcc;
+					break;
+				}
+			}
+		}
+	}
+
+	return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void AccessibleDialogWindow::grabFocus(  ) throw (RuntimeException)
+=====================================================================
+Found a 15 line (134 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                    y_lr = ++m_wrap_mode_y;
+                } while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+=====================================================================
+Found a 21 line (134 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                            fg[order_type::A] += back_a * weight;
+                            x_hr              += base_type::m_rx_inv;
+                        }
+                        while(x_hr < filter_size);
+                    }
+                    y_hr += base_type::m_ry_inv;
+                    ++y_lr;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+=====================================================================
+Found a 19 line (134 tokens) duplication in the following files: 
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                  weight_array[y_hr] + 
+                                  image_filter_size / 2) >> 
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+=====================================================================
+Found a 12 line (134 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx
+
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using ::com::sun::star::lang::XMultiServiceFactory ;
+using ::com::sun::star::lang::XSingleServiceFactory ;
+using ::rtl::OUString ;
+
+using ::com::sun::star::xml::wrapper::XXMLElementWrapper ;
+using ::com::sun::star::xml::wrapper::XXMLDocumentWrapper ;
+using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
+using ::com::sun::star::xml::crypto::XXMLSignature ;
+using ::com::sun::star::xml::crypto::XXMLSignatureTemplate ;
+using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
+=====================================================================
+Found a 26 line (134 tokens) duplication in the following files: 
+Starting at line 528 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+
+	mxGraphicResolver( rEmbeddedGraphicObjects ),
+	mpAttrList( new SvXMLAttributeList ),
+	msOrigFileName( rFileName ),
+	mpNamespaceMap( new SvXMLNamespaceMap ),
+	// #110680#
+	mpUnitConv( new SvXMLUnitConverter( MAP_100TH_MM, SvXMLUnitConverter::GetMapUnit(eDfltUnit), getServiceFactory() ) ),
+	mpNumExport(0L),
+	mpProgressBarHelper( NULL ),
+	mpEventExport( NULL ),
+	mpImageMapExport( NULL ),
+	mpXMLErrors( NULL ),
+	mbExtended( sal_False ),
+	meClass( XML_TOKEN_INVALID ),
+	mnExportFlags( 0 ),
+	mnErrorFlags( ERROR_NO ),
+	msWS( GetXMLToken(XML_WS) ),
+	mbSaveLinkedSections(sal_True)
+{
+	DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
+	_InitCtor();
+
+	if (mxNumberFormatsSupplier.is())
+		mpNumExport = new SvXMLNumFmtExport(*this, mxNumberFormatsSupplier);
+}
+
+SvXMLExport::~SvXMLExport()
+=====================================================================
+Found a 31 line (134 tokens) duplication in the following files: 
+Starting at line 2007 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLExport.cxx
+Starting at line 2158 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLExport.cxx
+
+                Reference< beans::XPropertySet > xTitleProp( xAxisSupp->getZAxisTitle(), uno::UNO_QUERY );
+                if( xTitleProp.is())
+                {
+                    aPropertyStates = mxExpPropMapper->Filter( xTitleProp );
+                    if( bExportContent )
+                    {
+                        OUString aText;
+                        Any aAny( xTitleProp->getPropertyValue(
+							OUString( RTL_CONSTASCII_USTRINGPARAM( "String" ))));
+						aAny >>= aText;
+
+                        Reference< drawing::XShape > xShape( xTitleProp, uno::UNO_QUERY );
+                        if( xShape.is())
+                            addPosition( xShape );
+
+                        AddAutoStyleAttribute( aPropertyStates );
+                        SvXMLElementExport aTitle( mrExport, XML_NAMESPACE_CHART, XML_TITLE, sal_True, sal_True );
+
+                        // paragraph containing title
+                        exportText( aText );
+                    }
+                    else
+                    {
+                        CollectAutoStyle( aPropertyStates );
+                    }
+                    aPropertyStates.clear();
+                }
+			}
+
+			// grid
+			Reference< beans::XPropertySet > xMajorGrid( xAxisSupp->getZMainGrid(), uno::UNO_QUERY );
+=====================================================================
+Found a 6 line (134 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 6 line (134 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+
+static char asse_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 6 line (134 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 23 line (134 tokens) duplication in the following files: 
+Starting at line 6416 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev3.cxx
+Starting at line 6374 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+            nMaxTextWidth = m_pReferenceDevice->ImplGetTextLines( aMultiLineInfo, nWidth, aStr, nStyle );
+            nLines = (xub_StrLen)(nHeight/nTextHeight);
+            nFormatLines = aMultiLineInfo.Count();
+            if ( !nLines )
+                nLines = 1;
+            if ( nFormatLines > nLines )
+            {
+                if ( nStyle & TEXT_DRAW_ENDELLIPSIS )
+                {
+                    // handle last line
+                    nFormatLines = nLines-1;
+
+                    pLineInfo = aMultiLineInfo.GetLine( nFormatLines );
+                    aLastLine = aStr.Copy( pLineInfo->GetIndex() );
+                    aLastLine.ConvertLineEnd( LINEEND_LF );
+                    // replace line feed by space
+                    xub_StrLen nLastLineLen = aLastLine.Len();
+                    for ( i = 0; i < nLastLineLen; i++ )
+                    {
+                        if ( aLastLine.GetChar( i ) == _LF )
+                            aLastLine.SetChar( i, ' ' );
+                    }
+                    aLastLine = m_pReferenceDevice->GetEllipsisString( aLastLine, nWidth, nStyle );
+=====================================================================
+Found a 41 line (134 tokens) duplication in the following files: 
+Starting at line 509 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    return rtl::OUString::createFromAscii( WEBDAV_CONTENT_TYPE );
+}
+
+//=========================================================================
+//
+// XCommandProcessor methods.
+//
+//=========================================================================
+
+// virtual
+uno::Any SAL_CALL Content::execute(
+        const ucb::Command& aCommand,
+        sal_Int32 /*CommandId*/,
+        const uno::Reference< ucb::XCommandEnvironment >& Environment )
+    throw( uno::Exception,
+           ucb::CommandAbortedException,
+           uno::RuntimeException )
+{
+    uno::Any aRet;
+    
+    if ( aCommand.Name.equalsAsciiL(
+             RTL_CONSTASCII_STRINGPARAM( "getPropertyValues" ) ) )
+    {
+      	//////////////////////////////////////////////////////////////////
+      	// getPropertyValues
+      	//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::Property > Properties;
+      	if ( !( aCommand.Argument >>= Properties ) )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+      	aRet <<= getPropertyValues( Properties, Environment );
+=====================================================================
+Found a 7 line (134 tokens) duplication in the following files: 
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 978 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetstrm.cxx
+
+static const sal_Char six2pr[64] = {
+    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+    'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+    'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
+};
+=====================================================================
+Found a 36 line (134 tokens) duplication in the following files: 
+Starting at line 3667 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3841 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    ULONG nOldPos = rStrm.Tell();
+    rStrm.Seek( nStart );
+
+    UINT16 nLen2;
+    rStrm >> nLen2; // bVer67: total length of structure
+                    // bVer8 : count of strings
+
+    if( bVer8 )
+    {
+        UINT16 nStrings;
+        bool bUnicode = (0xFFFF == nLen2);
+        if( bUnicode )
+            rStrm >> nStrings;
+        else
+            nStrings = nLen2;
+
+        rStrm >> nExtraLen;
+
+        for( USHORT i=0; i < nStrings; i++ )
+        {
+            if( bUnicode )
+                rArray.push_back(WW8Read_xstz(rStrm, 0, false));
+            else
+            {
+                BYTE nBChar;
+                rStrm >> nBChar;
+                ByteString aTmp;
+                SafeReadString(aTmp,nBChar,rStrm);
+                rArray.push_back(String(aTmp, eCS));
+            }
+
+            // Skip the extra data
+            if( nExtraLen )
+            {
+                if (pExtraArray)
+                {
+=====================================================================
+Found a 18 line (134 tokens) duplication in the following files: 
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/inftxt.cxx
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/inftxt.cxx
+
+	  nLen(nLen),
+      nKanaIdx( rNew.GetKanaIdx() ),
+	  bOnWin( rNew.OnWin() ),
+	  bNotEOL( rNew.NotEOL() ),
+	  bURLNotify( rNew.URLNotify() ),
+	  bStopUnderFlow( rNew.StopUnderFlow() ),
+      bFtnInside( rNew.IsFtnInside() ),
+	  bMulti( rNew.IsMulti() ),
+	  bFirstMulti( rNew.IsFirstMulti() ),
+	  bRuby( rNew.IsRuby() ),
+	  bHanging( rNew.IsHanging() ),
+	  bScriptSpace( rNew.HasScriptSpace() ),
+	  bForbiddenChars( rNew.HasForbiddenChars() ),
+      bSnapToGrid( rNew.SnapToGrid() ),
+	  nDirection( rNew.GetDirection() )
+{
+#ifndef PRODUCT
+	ChkOutDev( *this );
+=====================================================================
+Found a 22 line (134 tokens) duplication in the following files: 
+Starting at line 962 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/findattr.cxx
+Starting at line 1055 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/findattr.cxx
+
+								: (&::lcl_SearchBackward);
+
+	// Wenn am Anfang/Ende, aus dem Node moven
+	// Wenn am Anfang/Ende, aus dem Node moven
+	if( bSrchForward
+		? pPam->GetPoint()->nContent.GetIndex() == pPam->GetCntntNode()->Len()
+		: !pPam->GetPoint()->nContent.GetIndex() )
+	{
+		if( !(*fnMove->fnNds)( &pPam->GetPoint()->nNode, FALSE ))
+		{
+			delete pPam;
+			return FALSE;
+		}
+		SwCntntNode *pNd = pPam->GetCntntNode();
+		xub_StrLen nTmpPos = bSrchForward ? 0 : pNd->Len();
+		pPam->GetPoint()->nContent.Assign( pNd, nTmpPos );
+	}
+
+
+	while( 0 != ( pNode = ::GetNode( *pPam, bFirst, fnMove, bInReadOnly ) ) )
+	{
+		if( aCmpArr.Count() )
+=====================================================================
+Found a 24 line (134 tokens) duplication in the following files: 
+Starting at line 525 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpcolor.cxx
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpcolor.cxx
+
+            if ( aName == pColorTab->GetColor( i )->GetName() && nPos != i )
+				bDifferent = FALSE;
+
+		// Wenn ja, wird wiederholt ein neuer Name angefordert
+		if ( !bDifferent )
+		{
+			WarningBox aWarningBox( DLGWIN, WinBits( WB_OK ),
+				String( ResId( RID_SVXSTR_WARN_NAME_DUPLICATE, rMgr ) ) );
+			aWarningBox.SetHelpId( HID_WARN_NAME_DUPLICATE );
+			aWarningBox.Execute();
+
+			//CHINA001 SvxNameDialog* pDlg = new SvxNameDialog( DLGWIN, aName, aDesc );
+			SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+			DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
+			AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( DLGWIN, aName, aDesc, RID_SVXDLG_NAME );
+			DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
+			BOOL bLoop = TRUE;
+
+			while ( !bDifferent && bLoop && pDlg->Execute() == RET_OK )
+			{
+				pDlg->GetName( aName );
+				bDifferent = TRUE;
+
+				for ( long i = 0; i < nCount && bDifferent; i++ )
+=====================================================================
+Found a 14 line (134 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+
+			UINT8 nStartCol = (UINT8)(((UINT16)aMtrTrgrStartValue.GetValue() * 255) / 100);
+			UINT8 nEndCol = (UINT8)(((UINT16)aMtrTrgrEndValue.GetValue() * 255) / 100);
+			XGradient aTmpGradient(
+						Color(nStartCol, nStartCol, nStartCol),
+						Color(nEndCol, nEndCol, nEndCol),
+						(XGradientStyle)aLbTrgrGradientType.GetSelectEntryPos(),
+						(UINT16)aMtrTrgrAngle.GetValue() * 10,
+						(UINT16)aMtrTrgrCenterX.GetValue(),
+						(UINT16)aMtrTrgrCenterY.GetValue(),
+						(UINT16)aMtrTrgrBorder.GetValue(),
+						100, 100);
+
+			String aString;
+			XFillFloatTransparenceItem aItem( rXFSet.GetPool()/*aString*/, aTmpGradient);
+=====================================================================
+Found a 24 line (134 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filepicker/pickerhelper.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filepicker/pickerhelper.cxx
+
+		Reference< css::ui::dialogs::XFolderPicker > _mxFileDlg, sal_Int32 _nHelpId )
+	{
+		try
+		{
+			// does the dialog haver a help URL property?
+			Reference< css::beans::XPropertySet >		xDialogProps( _mxFileDlg, css::uno::UNO_QUERY );
+			Reference< css::beans::XPropertySetInfo >	xInfo;
+			if( xDialogProps.is() )
+				xInfo = xDialogProps->getPropertySetInfo( );
+
+			const OUString			sHelpURLPropertyName( RTL_CONSTASCII_USTRINGPARAM( "HelpURL" ) );
+
+			if( xInfo.is() && xInfo->hasPropertyByName( sHelpURLPropertyName ) )
+			{	// yep
+				OUString				sId( RTL_CONSTASCII_USTRINGPARAM( "HID:" ) );
+				sId += OUString::valueOf( _nHelpId );
+				xDialogProps->setPropertyValue( sHelpURLPropertyName, css::uno::makeAny( sId ) );
+			}
+		}
+		catch( const css::uno::Exception& )
+		{
+			DBG_ERROR( "svt::SetDialogHelpId(): caught an exception while setting the help id!" );
+		}
+	}
+=====================================================================
+Found a 59 line (134 tokens) duplication in the following files: 
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/smilfunctionparser.cxx
+Starting at line 979 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
+
+template< typename T > struct custom_real_parser_policies : public ::boost::spirit::ureal_parser_policies<T>
+{
+    template< typename ScannerT >
+	    static typename ::boost::spirit::parser_result< ::boost::spirit::chlit<>, ScannerT >::type
+    parse_exp(ScannerT& scan)
+    { 
+        // as_lower_d somehow breaks MSVC7
+        return ::boost::spirit::ch_p('E').parse(scan); 
+    }
+};
+
+/* This class implements the following grammar (more or
+    less literally written down below, only slightly
+    obfuscated by the parser actions):
+
+    identifier = '$'|'pi'|'e'|'X'|'Y'|'Width'|'Height'                                                   
+                                                                                                        
+    function = 'abs'|'sqrt'|'sin'|'cos'|'tan'|'atan'|'acos'|'asin'|'exp'|'log'
+
+    basic_expression =                                                                                   
+               		number |                                                                            
+               		identifier |                                                                        
+               		function '(' additive_expression ')' |                                              
+               		'(' additive_expression ')'                                                         
+                                                                                                        
+    unary_expression = 
+               		'-' basic_expression |
+                    basic_expression
+                                                                                                        
+    multiplicative_expression =                                                                          
+               		unary_expression ( ( '*' unary_expression )* |                           
+                                		( '/' unary_expression )* )
+                                                                                                        
+    additive_expression =                                                                                
+               		multiplicative_expression ( ( '+' multiplicative_expression )* |                              
+               									( '-' multiplicative_expression )* ) 
+
+    */
+class ExpressionGrammar : public ::boost::spirit::grammar< ExpressionGrammar >
+{
+public:
+    /** Create an arithmetic expression grammar
+
+        @param rParserContext
+        Contains context info for the parser
+        */
+    ExpressionGrammar( const ParserContextSharedPtr& rParserContext ) :
+        mpParserContext( rParserContext )
+    {
+    }
+
+    template< typename ScannerT > class definition
+    {
+    public:
+        // grammar definition
+        definition( const ExpressionGrammar& self )
+        {
+            using ::boost::spirit::str_p;
+            using ::boost::spirit::range_p;
+=====================================================================
+Found a 30 line (134 tokens) duplication in the following files: 
+Starting at line 970 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/sfxbasecontroller.cxx
+Starting at line 1027 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/sfxbasecontroller.cxx
+
+                    return pAct->GetBindings().GetDispatch( pSlot, aURL, sal_False );
+				else
+				{
+					// try to find parent SfxViewFrame
+					uno::Reference< frame::XFrame > xParentFrame;
+					uno::Reference< frame::XFrame > xOwnFrame = pAct->GetFrame()->GetFrameInterface();
+					if ( xOwnFrame.is() )
+						xParentFrame = uno::Reference< frame::XFrame >( xOwnFrame->getCreator(), uno::UNO_QUERY );
+
+					if ( xParentFrame.is() )
+					{
+						// TODO/LATER: in future probably SfxViewFrame hirarchy should be the same as XFrame hirarchy
+						// SfxViewFrame* pParentFrame = pAct->GetParentViewFrame();
+
+						// search the related SfxViewFrame
+						SfxViewFrame* pParentFrame = NULL;
+						for ( SfxViewFrame* pFrame = SfxViewFrame::GetFirst();
+								pFrame;
+								pFrame = SfxViewFrame::GetNext( *pFrame ) )
+						{
+							if ( pFrame->GetFrame()->GetFrameInterface() == xParentFrame )
+							{
+								pParentFrame = pFrame;
+								break;
+							}
+						}
+
+						if ( pParentFrame )
+						{
+                            SfxSlotPool& rSlotPool2 = SfxSlotPool::GetSlotPool( pParentFrame );
+=====================================================================
+Found a 21 line (134 tokens) duplication in the following files: 
+Starting at line 1192 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/scriptdlg.cxx
+
+SFTreeListBox::getDocumentModel( Reference< XComponentContext >& xCtx, ::rtl::OUString& docName )
+{
+    Reference< XInterface > xModel;
+    Reference< lang::XMultiComponentFactory > mcf =
+            xCtx->getServiceManager();
+    Reference< frame::XDesktop > desktop (
+        mcf->createInstanceWithContext(
+            ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"),                 xCtx ),
+            UNO_QUERY );
+
+    Reference< container::XEnumerationAccess > componentsAccess =
+        desktop->getComponents();
+    Reference< container::XEnumeration > components =
+        componentsAccess->createEnumeration();
+    while (components->hasMoreElements())
+    {
+        Reference< frame::XModel > model(
+            components->nextElement(), UNO_QUERY );
+        if ( model.is() )
+        {
+			::rtl::OUString sTdocUrl;
+=====================================================================
+Found a 20 line (134 tokens) duplication in the following files: 
+Starting at line 1191 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+Starting at line 1248 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+
+			Point aInsertPos( rPos );
+
+			if( pOwnData && pOwnData->GetWorkDocument() )
+			{
+			    const SdDrawDocument*	pWorkModel = pOwnData->GetWorkDocument();
+                SdrPage*	            pWorkPage = (SdrPage*) ( ( pWorkModel->GetPageCount() > 1 ) ?
+                                                    pWorkModel->GetSdPage( 0, PK_STANDARD ) :
+                                                    pWorkModel->GetPage( 0 ) );
+
+				pWorkPage->SetRectsDirty();
+
+				// #104148# Use SnapRect, not BoundRect
+				Size aSize( pWorkPage->GetAllObjSnapRect().GetSize() );
+
+				aInsertPos.X() = pOwnData->GetStartPos().X() + ( aSize.Width() >> 1 );
+				aInsertPos.Y() = pOwnData->GetStartPos().Y() + ( aSize.Height() >> 1 );
+			}
+
+			// #90129# restrict movement to WorkArea
+			Size aImageMapSize(aBmp.GetPrefSize());
+=====================================================================
+Found a 68 line (134 tokens) duplication in the following files: 
+Starting at line 1065 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+Starting at line 1132 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+
+		ocNoName,			//  188
+		ocNoName,			//  189
+		ocNoName,			//  190
+		ocNoName,			//  191
+		ocNoName,			//  192
+		ocNoName,			//  193
+		ocNoName,			//  194
+		ocNoName,			//  195
+		ocNoName,			//  196
+		ocNoName,			//  197
+		ocNoName,			//  198
+		ocNoName,			//  199
+		ocNoName,			//  200
+		ocNoName,			//  201
+		ocNoName,			//  202
+		ocNoName,			//  203
+		ocNoName,			//  204
+		ocNoName,			//  205
+		ocNoName,			//  206 ?
+		ocNoName,			//  207
+		ocNoName,			//  208
+		ocNoName,			//  209
+		ocNoName,			//  210
+		ocNoName,			//  211
+		ocNoName,			//  212
+		ocNoName,			//  213
+		ocNoName,			//  214
+		ocNoName,			//  215
+		ocNoName,			//  216
+		ocNoName,			//  217
+		ocNoName,			//  218
+		ocNoName,			//  219
+		ocNoName,			//  220
+		ocNoName,			//  221
+		ocNoName,			//  222
+		ocNoName,			//  223
+		ocNoName,			//  224
+		ocNoName,			//  225
+		ocNoName,			//  226
+		ocNoName,			//  227
+		ocNoName,			//  228
+		ocNoName,			//  229
+		ocNoName,			//  230
+		ocNoName,			//  231
+		ocNoName,			//  232
+		ocNoName,			//  233
+		ocNoName,			//  234
+		ocNoName,			//  235
+		ocNoName,			//  236
+		ocNoName,			//  237
+		ocNoName,			//  238
+		ocNoName,			//  239
+		ocNoName,			//  240
+		ocNoName,			//  241
+		ocNoName,			//  242
+		ocNoName,			//  243
+		ocNoName,			//  244
+		ocNoName,			//  245
+		ocNoName,			//  246
+		ocNoName,			//  247
+		ocNoName,			//  248
+		ocNoName,			//  249
+		ocNoName,			//  250
+		ocNoName,			//  251
+		ocNoName,			//  252
+		ocNoName,			//  253
+		ocNoName,			//  254
+		ocNoName			//  255 ?
+=====================================================================
+Found a 25 line (134 tokens) duplication in the following files: 
+Starting at line 3908 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 4059 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+                    rRef.nRelTab = rRef.nTab - nPosTab;
+                }
+                else
+                    bIsRel = TRUE;
+            }
+            if ( bIsName && bIsRel )
+                pRangeData = (ScRangeData*) this;   // not dereferenced in rangenam
+        }
+        if (bIsName)
+            t = pArr->GetNextReference();
+        else
+            t = pArr->GetNextReferenceOrName();
+    }
+    if ( !bIsName )
+    {
+        pArr->Reset();
+        for ( t = pArr->GetNextReferenceRPN(); t;
+              t = pArr->GetNextReferenceRPN() )
+        {
+            if ( t->GetRef() == 1 )
+            {
+                SingleRefData& rRef1 = t->GetSingleRef();
+                if ( !(rRef1.IsRelName() && rRef1.IsTabRel()) )
+                {   // of names only adjust absolute references
+                    if ( rRef1.IsTabRel() )
+=====================================================================
+Found a 22 line (134 tokens) duplication in the following files: 
+Starting at line 1176 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/conditio.cxx
+Starting at line 688 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/rangenam.cxx
+
+    while ( ( t = pCode->GetNextReference() ) != NULL )
+	{
+		SingleRefData& rRef1 = t->GetSingleRef();
+		if ( rRef1.IsTabRel() && !rRef1.IsTabDeleted() )
+		{
+			if ( rRef1.nTab < nMinTab )
+				nMinTab = rRef1.nTab;
+			if ( rRef1.nTab > nMaxTab )
+				nMaxTab = rRef1.nTab;
+		}
+		if ( t->GetType() == svDoubleRef )
+		{
+			SingleRefData& rRef2 = t->GetDoubleRef().Ref2;
+			if ( rRef2.IsTabRel() && !rRef2.IsTabDeleted() )
+			{
+				if ( rRef2.nTab < nMinTab )
+					nMinTab = rRef2.nTab;
+				if ( rRef2.nTab > nMaxTab )
+					nMaxTab = rRef2.nTab;
+			}
+		}
+	}
+=====================================================================
+Found a 10 line (134 tokens) duplication in the following files: 
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
+                0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
+                0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
+                0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
+                0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
+                0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
+                0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
+                0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
+                0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
+            { RTL_TEXTENCODING_ISO_8859_3,
+=====================================================================
+Found a 33 line (134 tokens) duplication in the following files: 
+Starting at line 4794 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4956 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+
+    class  remove : public CppUnit::TestFixture
+	{
+		::osl::FileBase::RC      nError1, nError2;
+		sal_uInt64 nCount_write, nCount_read;
+		
+	    public:
+		// initialization
+		void setUp( )
+		{
+			// create a tempfile in $TEMP/tmpdir/tmpname.
+			createTestDirectory( aTmpName3 );
+			createTestFile( aTmpName4 );
+			
+			//write chars into the file. 
+			::osl::File testFile( aTmpName4 );
+			
+			nError1 = testFile.open( OpenFlag_Write );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+			nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+ 			nError1 = testFile.close( );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+		}
+
+		void tearDown( )
+		{
+			// remove the tempfile in $TEMP/tmpdir/tmpname.
+			deleteTestFile( aTmpName4 );
+			deleteTestDirectory( aTmpName3 );
+		}
+
+		// test code.
+		void remove_001( )
+=====================================================================
+Found a 43 line (134 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/rsc/source/tools/rscchar.cxx
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/rsc/source/tools/rscchar.cxx
+
+	    sal_Unicode  c;
+		if( *pStr == '\\' )
+		{
+			++pStr;
+			switch( *pStr )
+			{
+				case 'a':
+					c = '\a';
+					break;
+				case 'b':
+					c = '\b';
+					break;
+				case 'f':
+					c = '\f';
+					break;
+				case 'n':
+					c = '\n';
+					break;
+				case 'r':
+					c = '\r';
+					break;
+				case 't':
+					c = '\t';
+					break;
+				case 'v':
+					c = '\v';
+					break;
+				case '\\':
+					c = '\\';
+					break;
+				case '?':
+					c = '\?';
+					break;
+				case '\'':
+					c = '\'';
+					break;
+				case '\"':
+					c = '\"';
+					break;
+				default:
+				{
+					if( '0' <= *pStr && '7' >= *pStr )
+					{
+=====================================================================
+Found a 21 line (134 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/printer/printerinfomanager.cxx
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/printer/printerinfomanager.cxx
+
+        fillFontSubstitutions( aPrinter.m_aInfo );
+        // merge PPD values with global defaults
+        for( int nPPDValueModified = 0; nPPDValueModified < m_aGlobalDefaults.m_aContext.countValuesModified(); nPPDValueModified++ )
+        {
+            const PPDKey* pDefKey = m_aGlobalDefaults.m_aContext.getModifiedKey( nPPDValueModified );
+            const PPDValue* pDefValue = m_aGlobalDefaults.m_aContext.getValue( pDefKey );
+            const PPDKey* pPrinterKey = pDefKey ? aPrinter.m_aInfo.m_pParser->getKey( pDefKey->getKey() ) : NULL;
+            if( pDefKey && pPrinterKey )
+                // at least the options exist in both PPDs
+            {
+                if( pDefValue )
+                {
+                    const PPDValue* pPrinterValue = pPrinterKey->getValue( pDefValue->m_aOption );
+                    if( pPrinterValue )
+                        // the printer has a corresponding option for the key
+                    aPrinter.m_aInfo.m_aContext.setValue( pPrinterKey, pPrinterValue );
+                }
+                else
+                    aPrinter.m_aInfo.m_aContext.setValue( pPrinterKey, NULL );
+            }
+        }
+=====================================================================
+Found a 8 line (134 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/afm_hash.cpp
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/afm_hash.cpp
+
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58
+=====================================================================
+Found a 23 line (134 tokens) duplication in the following files: 
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2188 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+            if (langnum == LANG_hu) {
+                // calculate syllable number of the word
+                numsyllable += get_syllable(word + i, strlen(word + i));
+
+                // - affix syllable num.
+                // XXX only second suffix (inflections, not derivations)
+                if (sfxappnd) {
+                    char * tmp = myrevstrdup(sfxappnd);
+	            numsyllable -= get_syllable(tmp, strlen(tmp));
+                    free(tmp);
+                }
+
+                // + 1 word, if syllable number of the prefix > 1 (hungarian convention)
+                if (pfx && (get_syllable(((PfxEntry *)pfx)->getKey(),strlen(((PfxEntry *)pfx)->getKey())) > 1)) wordnum++;
+
+                // increment syllable num, if last word has a SYLLABLENUM flag
+                // and the suffix is beginning `s'
+
+	        if (cpdsyllablenum) {
+	            switch (sfxflag) {
+		        case 'c': { numsyllable+=2; break; }
+		        case 'J': { numsyllable += 1; break; }
+                        case 'I': { if (rv && TESTAFF(rv->astr, 'J', rv->alen)) numsyllable += 1; break; }
+=====================================================================
+Found a 6 line (134 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 22 line (134 tokens) duplication in the following files: 
+Starting at line 317 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/transliterationImpl.cxx
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/transliterationImpl.cxx
+
+            tmpStr = bodyCascade[0]->folding(tmpStr, 0, nCount, offset);
+            if ( startPos )
+            {
+                sal_Int32 * pArr = offset.getArray();
+                nCount = offset.getLength();
+                for (sal_Int32 j = 0; j < nCount; j++)
+                    pArr[j] += startPos;
+            }
+            return tmpStr;
+        }
+    }
+    else
+    {
+        OUString tmpStr = inStr.copy(startPos, nCount);
+        sal_Int32 * pArr = offset.getArray();
+        for (sal_Int32 j = 0; j < nCount; j++)
+            pArr[j] = startPos + j;
+
+        sal_Int16 from = 0, to = 1, tmp;
+        Sequence<sal_Int32> off[2];
+
+        off[to] = offset;
+=====================================================================
+Found a 6 line (134 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+static char ass_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 16 line (134 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/descriptor.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unogallery/unogalitem.cxx
+
+		aAny <<= uno::Reference< gallery::XGalleryItem >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XPropertySet >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertyState >*)0) )
+		aAny <<= uno::Reference< beans::XPropertyState >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XMultiPropertySet >(this);
+	else
+		aAny <<= OWeakAggObject::queryAggregation( rType );
+
+	return aAny;
+}
+
+// ------------------------------------------------------------------------------
+
+uno::Any SAL_CALL GalleryItem::queryInterface( const uno::Type & rType ) 
+=====================================================================
+Found a 12 line (134 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/CheckBox.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormattedField.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::form::binding;
+=====================================================================
+Found a 26 line (134 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 705 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+
+  	"</html:html>\n";
+
+	Sequence<BYTE> seqBytes( strlen( TestString ) );
+	memcpy( seqBytes.getArray() , TestString , strlen( TestString ) );
+
+	
+	XInputStreamRef rInStream;
+	UString sInput;
+
+	rInStream = createStreamFromSequence( seqBytes , m_rFactory );
+	sInput = UString( L"internal" );
+	
+	if( rParser.is() ) {
+		InputSource source;
+
+		source.aInputStream = rInStream;
+		source.sSystemId 	= sInput;
+		
+		TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE );
+		XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY );
+		XEntityResolverRef 	rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY );
+	
+		rParser->setDocumentHandler( rDocHandler );
+		rParser->setEntityResolver( rEntityResolver );
+		try {
+			rParser->parseStream( source );
+=====================================================================
+Found a 13 line (134 tokens) duplication in the following files: 
+Starting at line 2209 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+Starting at line 2226 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+
+            OSQLParseNode* pLeft    = pSearchCondition->getChild(0)->removeAt((sal_uInt32)0);
+            OSQLParseNode* pRight = pSearchCondition->getChild(2)->removeAt((sal_uInt32)0);
+            OSQLParseNode* pNode    = MakeORNode(pLeft,pRight);
+
+            OSQLParseNode* pNewRule = new OSQLParseNode(::rtl::OUString(),SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::boolean_primary));
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii("("),SQL_NODE_PUNCTUATION));
+            pNewRule->append(pNode);
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii(")"),SQL_NODE_PUNCTUATION));
+
+            OSQLParseNode::eraseBraces(pLeft);
+            OSQLParseNode::eraseBraces(pRight);
+
+            pNode = MakeANDNode(pSearchCondition->getChild(0)->removeAt(1),pNewRule);
+=====================================================================
+Found a 21 line (134 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx
+
+			out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[1].l,args[2].l,scope,nullable);
+
+			// und aufraeumen
+			if(catalog.hasValue())
+				t.pEnv->DeleteLocalRef((jstring)args[0].l);
+			if(args[1].l)
+				t.pEnv->DeleteLocalRef((jstring)args[1].l);
+			if(table.getLength())
+				t.pEnv->DeleteLocalRef((jstring)args[2].l);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+		}
+	}
+
+    if ( !out )
+        return NULL;
+
+    m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, cMethodName );
+	return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+}
+// -------------------------------------------------------------------------
+Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTablePrivileges(
+=====================================================================
+Found a 17 line (134 tokens) duplication in the following files: 
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 538 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+
+					case BMP_FORMAT_32BIT_TC_RGBA:
+						pReadScan = pBitmapReadAcc->GetScanline( nY );
+						if( pAlphaReadAcc )
+							if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
+								bIsAlpha = true;
+
+						for( nX = 0; nX < nWidth; nX++ ) {
+							if( pAlphaReadAcc )
+								nAlpha = data[ nOff + 3 ];
+							else
+								nAlpha = data[ nOff + 3 ] = 255;
+							data[ nOff++ ] = ( nAlpha*( pReadScan[ 2 ] ) )/255;
+							data[ nOff++ ] = ( nAlpha*( pReadScan[ 1 ] ) )/255;
+							data[ nOff++ ] = ( nAlpha*( pReadScan[ 0 ] ) )/255;
+
+							nOff++;
+							pReadScan += 4;
+=====================================================================
+Found a 22 line (134 tokens) duplication in the following files: 
+Starting at line 312 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 322 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = pCallStack[1];
+=====================================================================
+Found a 22 line (134 tokens) duplication in the following files: 
+Starting at line 3733 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/runtime/methods.cxx
+Starting at line 3759 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/runtime/methods.cxx
+
+RTLFUNC(UBound)
+{
+    (void)pBasic;
+    (void)bWrite;
+    
+	USHORT nParCount = rPar.Count();
+	if ( nParCount != 3 && nParCount != 2 )
+	{
+		StarBASIC::Error( SbERR_BAD_ARGUMENT );
+		return;
+	}
+
+	SbxBase* pParObj = rPar.Get(1)->GetObject();
+	SbxDimArray* pArr = PTR_CAST(SbxDimArray,pParObj);
+	if( pArr )
+	{
+		INT32 nLower, nUpper;
+		short nDim = (nParCount == 3) ? (short)rPar.Get(2)->GetInteger() : 1;
+		if( !pArr->GetDim32( nDim, nLower, nUpper ) )
+			StarBASIC::Error( SbERR_OUT_OF_RANGE );
+		else
+			rPar.Get(0)->PutLong( nUpper );
+=====================================================================
+Found a 22 line (134 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/tokens/tkpstama.cxx
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/tokens/tkpstam2.cxx
+
+		StmArrayStatu2 * pArrSt = pStati[i]->AsArray();
+		if (pArrSt != 0)
+		{
+			Cout() << Endl();
+			for (int b = 0; b < 128; b++)
+			{
+				Cout().width(4);
+				Cout() << pArrSt->NextBy(b);
+				if (b%16 == 15)
+					Cout() << Endl();
+			}
+		}
+		else if (pStati[i]->AsBounds() != 0)
+		{
+			Cout() << "Bounds ";
+		}
+		else
+			Cout() << "Error! ";
+		Cout() << (pStati[i]->IsADefault() ? "DEF" : "---")
+			 << Endl();
+	}	// for
+}
+=====================================================================
+Found a 5 line (134 tokens) duplication in the following files: 
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd, // ... 63
+	 faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+=====================================================================
+Found a 21 line (133 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlCell.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlRow.cxx
+
+    DBG_CTOR( rpt_OXMLRow,NULL);
+
+	OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
+	
+	const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
+	const SvXMLTokenMap& rTokenMap = rImport.GetColumnTokenMap();
+
+	const sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
+	for(sal_Int16 i = 0; i < nLength; ++i)
+	{
+		OUString sLocalName;
+		const rtl::OUString sAttrName = _xAttrList->getNameByIndex( i );
+		const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
+		rtl::OUString sValue = _xAttrList->getValueByIndex( i );
+
+		switch( rTokenMap.Get( nPrefix, sLocalName ) )
+		{
+			case XML_TOK_COLUMN_STYLE_NAME:
+				m_sStyleName = sValue;
+				break;
+            case XML_TOK_NUMBER_ROWS_SPANNED:
+=====================================================================
+Found a 21 line (133 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        weight = (image_subpixel_size - x_hr) * y_hr;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr++;
+
+                        weight = x_hr * y_hr;
+=====================================================================
+Found a 19 line (133 tokens) duplication in the following files: 
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        weight = x_hr * (image_subpixel_size - y_hr);
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0]     += weight * *fg_ptr++;
+                            fg[1]     += weight * *fg_ptr++;
+                            fg[2]     += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr--;
+=====================================================================
+Found a 19 line (133 tokens) duplication in the following files: 
+Starting at line 1113 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1573 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlListBoxModel") ) );
+	Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+	
+	Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
+	if (xStyle.is())
+	{
+		StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+		pStyle->importBackgroundColorStyle( xControlModel );
+		pStyle->importTextColorStyle( xControlModel );
+		pStyle->importTextLineColorStyle( xControlModel );
+		pStyle->importBorderStyle( xControlModel );
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+							   _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiSelection") ),
+=====================================================================
+Found a 22 line (133 tokens) duplication in the following files: 
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bmpacc3.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bmpacc3.cxx
+
+		Region				aRegion( rPolyPoly );
+		Rectangle			aRect;
+
+		aRegion.Intersect( Rectangle( Point(), Size( Width(), Height() ) ) );
+
+		if( !aRegion.IsEmpty() )
+		{
+			RegionHandle aRegHandle( aRegion.BeginEnumRects() );
+			
+			while( aRegion.GetNextEnumRect( aRegHandle, aRect ) )
+				for( long nY = aRect.Top(), nEndY = aRect.Bottom(); nY <= nEndY; nY++ )
+					for( long nX = aRect.Left(), nEndX = aRect.Right(); nX <= nEndX; nX++ )
+						SetPixel( nY, nX, rFillColor );
+
+			aRegion.EndEnumRects( aRegHandle );
+		}
+	}
+}
+
+// ------------------------------------------------------------------
+
+void BitmapWriteAccess::DrawPolyPolygon( const PolyPolygon& rPolyPoly )
+=====================================================================
+Found a 13 line (133 tokens) duplication in the following files: 
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+    virtual test::TestData SAL_CALL getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+											   sal_Int16& nShort, sal_uInt16& nUShort,
+											   sal_Int32& nLong, sal_uInt32& nULong,
+											   sal_Int64& nHyper, sal_uInt64& nUHyper,
+											   float& fFloat, double& fDouble,
+											   test::TestEnum& eEnum, rtl::OUString& rStr,
+											   ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+											   ::com::sun::star::uno::Any& rAny,
+											   ::com::sun::star::uno::Sequence< test::TestElement >& rSequence,
+											   test::TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 38 line (133 tokens) duplication in the following files: 
+Starting at line 1515 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+Starting at line 980 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/selector.cxx
+
+BOOL SvxConfigGroupListBox_Impl::Expand( SvLBoxEntry* pParent )
+{
+	BOOL bRet = SvTreeListBox::Expand( pParent );
+	if ( bRet )
+	{
+		// Wieviele Entries k"onnen angezeigt werden ?
+		ULONG nEntries = GetOutputSizePixel().Height() / GetEntryHeight();
+
+		// Wieviele Kinder sollen angezeigt werden ?
+		ULONG nChildCount = GetVisibleChildCount( pParent );
+
+		// Passen alle Kinder und der parent gleichzeitig in die View ?
+		if ( nChildCount+1 > nEntries )
+		{
+			// Wenn nicht, wenigstens parent ganz nach oben schieben
+			MakeVisible( pParent, TRUE );
+		}
+		else
+		{
+			// An welcher relativen ViewPosition steht der aufzuklappende parent
+			SvLBoxEntry *pEntry = GetFirstEntryInView();
+			ULONG nParentPos = 0;
+			while ( pEntry && pEntry != pParent )
+			{
+				nParentPos++;
+				pEntry = GetNextEntryInView( pEntry );
+			}
+
+			// Ist unter dem parent noch genug Platz f"ur alle Kinder ?
+			if ( nParentPos + nChildCount + 1 > nEntries )
+				ScrollOutputArea( (short)( nEntries - ( nParentPos + nChildCount + 1 ) ) );
+		}
+	}
+
+	return bRet;
+}
+
+void SvxConfigGroupListBox_Impl::RequestingChilds( SvLBoxEntry *pEntry )
+=====================================================================
+Found a 26 line (133 tokens) duplication in the following files: 
+Starting at line 1688 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 1717 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		aSize.setHeight( nHeight );
+
+		SdDrawDocument* pDoc = (SdDrawDocument*)GetPage()->GetModel();
+		const PageKind ePageKind = GetPage()->GetPageKind();
+
+		USHORT i, nPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+		for (i = 0; i < nPageCnt; i++)
+		{
+			SdPage* pPage = pDoc->GetMasterSdPage(i, ePageKind);
+			pPage->SetSize(aSize);
+		}
+
+		nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+		for (i = 0; i < nPageCnt; i++)
+		{
+			SdPage* pPage = pDoc->GetSdPage(i, ePageKind);
+			pPage->SetSize(aSize);
+		}
+
+		refreshpage( pDoc, ePageKind );
+	}
+}
+
+// XInterface
+void SdGenericDrawPage::release() throw()
+=====================================================================
+Found a 16 line (133 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/dbdocfun.cxx
+Starting at line 1029 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/dbdocfun.cxx
+
+			nTabCount = pDoc->GetTableCount();
+			pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+			ScOutlineTable* pTable = pDoc->GetOutlineTable( nTab );
+			if (pTable)
+			{
+				pUndoTab = new ScOutlineTable( *pTable );
+
+                // column/row state
+                SCCOLROW nOutStartCol, nOutEndCol;
+                SCCOLROW nOutStartRow, nOutEndRow;
+				pTable->GetColArray()->GetRange( nOutStartCol, nOutEndCol );
+				pTable->GetRowArray()->GetRange( nOutStartRow, nOutEndRow );
+
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, TRUE, TRUE );
+				pDoc->CopyToDocument( static_cast<SCCOL>(nOutStartCol), 0, nTab, static_cast<SCCOL>(nOutEndCol), MAXROW, nTab, IDF_NONE, FALSE, pUndoDoc );
+				pDoc->CopyToDocument( 0, nOutStartRow, nTab, MAXCOL, nOutEndRow, nTab, IDF_NONE, FALSE, pUndoDoc );
+=====================================================================
+Found a 19 line (133 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr4.cxx
+
+BOOL ScInterpreter::CreateStringArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
+									SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
+									BYTE* pCellArr)
+{
+#if SC_ROWLIMIT_MORE_THAN_64K
+#error row limit 64k
+#endif
+	USHORT nCount = 0;
+	USHORT* p = (USHORT*) pCellArr;
+	*p++ = static_cast<USHORT>(nCol1);
+	*p++ = static_cast<USHORT>(nRow1);
+	*p++ = static_cast<USHORT>(nTab1);
+	*p++ = static_cast<USHORT>(nCol2);
+	*p++ = static_cast<USHORT>(nRow2);
+	*p++ = static_cast<USHORT>(nTab2);
+	USHORT* pCount = p;
+	*p++ = 0;
+	USHORT nPos = 14;
+	SCTAB nTab = nTab1;
+=====================================================================
+Found a 6 line (133 tokens) duplication in the following files: 
+Starting at line 533 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       }};
+=====================================================================
+Found a 24 line (133 tokens) duplication in the following files: 
+Starting at line 695 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+
+            rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmHMAC_SHA1 );
+            
+            rtl::OString aMsg = sSampleString;
+            const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
+            sal_uInt32	     nSize = ( aMsg.getLength() );
+            
+            sal_uInt32     nKeyLen = rtl_digest_queryLength( handle );
+            CPPUNIT_ASSERT_MESSAGE( "Keylen must be greater 0", nKeyLen );
+
+            sal_uInt8    *pKeyBuffer = new sal_uInt8[ nKeyLen ];
+            CPPUNIT_ASSERT( pKeyBuffer );
+            memset(pKeyBuffer, 0, nKeyLen);
+          
+            rtlDigestError aError = rtl_digest_init(handle, pKeyBuffer, nKeyLen );
+
+            CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
+
+            rtl_digest_update( handle, pData, nSize );
+
+            rtl_digest_get( handle, pKeyBuffer, nKeyLen );
+            rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
+            delete [] pKeyBuffer;
+            
+            t_print("HMAC_SHA1 Sum: %s\n", aSum.getStr());
+=====================================================================
+Found a 29 line (133 tokens) duplication in the following files: 
+Starting at line 2384 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+Starting at line 2419 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+			    (osl_getProfileName(strSVLocation, strSVName, &strSVProfile)))
+            {
+				hProfile = osl_openProfile(strSVProfile, osl_Profile_READLOCK);
+                if (hProfile)
+                {
+                    osl_getProfileSectionEntries(
+                        hProfile, SVERSION_SECTION, Buffer, sizeof(Buffer));
+
+                    for (pChr = Buffer; *pChr != '\0'; pChr += strlen(pChr) + 1)
+                    {
+                        if ((strnicmp(
+                                 pChr, SVERSION_SOFFICE,
+                                 sizeof(SVERSION_SOFFICE) - 1)
+                             == 0)
+                            && (stricmp(Product, pChr) < 0))
+                        {
+                            osl_readProfileString(
+                                hProfile, SVERSION_SECTION, pChr, Dir,
+                                sizeof(Dir), "");
+
+                            /* check for existence of path */
+                            if (access(Dir, 0) >= 0)
+                                strcpy(Product, pChr);
+                        }
+                    }
+
+                    osl_closeProfile(hProfile);
+                }
+				rtl_uString_release(strSVProfile);
+=====================================================================
+Found a 31 line (133 tokens) duplication in the following files: 
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/hyphdsp.cxx
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/hyphdsp.cxx
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/hyphdsp.cxx
+
+					xRes = rHyph->createPossibleHyphens( aChkWord, rLocale,
+								rProperties );
+				++i;
+			}
+			else if (pEntry->aFlags.nLastTriedSvcIndex < nLen - 1)
+			// instantiate services and try it
+			{
+				Reference< XMultiServiceFactory >  xMgr( getProcessServiceFactory() );
+				if (xMgr.is())
+				{
+					// build service initialization argument
+					Sequence< Any > aArgs(2);
+					aArgs.getArray()[0] <<= GetPropSet();
+					//! The dispatcher searches the dictionary-list
+					//! thus the service needs not to now about it
+					//aArgs.getArray()[1] <<= GetDicList();
+
+					// create specific service via it's implementation name
+					Reference< XHyphenator > xHyph(
+							xMgr->createInstanceWithArguments(
+								pEntry->aSvcImplName, aArgs ),
+							UNO_QUERY );
+					rHyph = xHyph;
+
+					Reference< XLinguServiceEventBroadcaster >
+							xBroadcaster( xHyph, UNO_QUERY );
+					if (xBroadcaster.is())
+						rMgr.AddLngSvcEvtBroadcaster( xBroadcaster );
+
+                    if (rHyph.is()  &&  rHyph->hasLocale( rLocale ))
+					xRes = rHyph->createPossibleHyphens( aChkWord, rLocale,
+=====================================================================
+Found a 9 line (133 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+Starting at line 1195 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    
+    // XNameAccess
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+    // XElementAccess
+    virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 18 line (133 tokens) duplication in the following files: 
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xdf, 0xbf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x00, 0xd0, 0xb0 },
+=====================================================================
+Found a 6 line (133 tokens) duplication in the following files: 
+Starting at line 1500 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1514 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd50 - fd5f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd60 - fd6f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd70 - fd7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd80 - fd8f
+     0, 0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd90 - fd9f
+=====================================================================
+Found a 5 line (133 tokens) duplication in the following files: 
+Starting at line 1338 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1436 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2eb0 - 2ebf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ec0 - 2ecf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ed0 - 2edf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2ee0 - 2eef
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+=====================================================================
+Found a 5 line (133 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1224 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1630 - 163f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1650 - 165f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1660 - 166f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1670 - 167f
+=====================================================================
+Found a 5 line (133 tokens) duplication in the following files: 
+Starting at line 1085 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0980 - 098f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0990 - 099f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 09a0 - 09af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 09b0 - 09bf
+     0,17,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 09c0 - 09cf
+=====================================================================
+Found a 5 line (133 tokens) duplication in the following files: 
+Starting at line 1038 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,10,10, 0, 0, 0,// 3090 - 309f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30a0 - 30af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30b0 - 30bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30c0 - 30cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 30d0 - 30df
+=====================================================================
+Found a 5 line (133 tokens) duplication in the following files: 
+Starting at line 872 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 896 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 6 line (133 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0af0 - 0aff
+
+     0, 6, 8, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5,// 0b00 - 0b0f
+     5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0b10 - 0b1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5,// 0b20 - 0b2f
+     5, 0, 5, 5, 0, 0, 5, 5, 5, 5, 0, 0, 6, 5, 8, 6,// 0b30 - 0b3f
+=====================================================================
+Found a 5 line (133 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fab0 - fabf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fac0 - facf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fad0 - fadf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fae0 - faef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faf0 - faff
+=====================================================================
+Found a 21 line (133 tokens) duplication in the following files: 
+Starting at line 763 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest/threadtest.cxx
+Starting at line 762 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/threadtest.cxx
+
+	OStringBuffer	sBuf(256);
+	sal_Int32		nTime=0;
+	sBuf.append( "Nr.\tTime\tThreadCount\tLoops\tOwner\n" );
+	for( sal_Int32 nI=1; nI<=nTestCount; ++nI )
+	{
+		nTime = measureTime( nThreadCount, nOwner, nLoops );
+		sBuf.append( nI				);
+		sBuf.append( "\t"			);
+		sBuf.append( nTime			);
+		sBuf.append( "\t"			);
+		sBuf.append( nThreadCount	);
+		sBuf.append( "\t"			);
+		sBuf.append( nLoops			);
+		sBuf.append( "\t"			);
+		sBuf.append( nOwner 		);
+		sBuf.append( "\n"			);
+	}
+
+	WRITE_LOGFILE( STATISTICS_FILE, sBuf.makeStringAndClear() );
+	LOG_ERROR( "TApplication::Main()", "Test finish successful!" )
+}
+=====================================================================
+Found a 33 line (133 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarwrapper.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarwrapper.cxx
+
+void SAL_CALL ToolBarWrapper::setSettings( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& xSettings ) throw (::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aLock( m_aLock );
+    
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( xSettings.is() )
+    {
+        // Create a copy of the data if the container is not const
+        Reference< XIndexReplace > xReplace( xSettings, UNO_QUERY );
+        if ( xReplace.is() )
+            m_xConfigData = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( xSettings ) ), UNO_QUERY );
+        else
+            m_xConfigData = xSettings;
+
+        if ( m_xConfigSource.is() && m_bPersistent )
+        {
+            OUString aResourceURL( m_aResourceURL );
+            Reference< XUIConfigurationManager > xUICfgMgr( m_xConfigSource );
+            
+            aLock.unlock();
+            
+            try
+            {
+                xUICfgMgr->replaceSettings( aResourceURL, m_xConfigData );
+            }
+            catch( NoSuchElementException& )
+            {
+            }
+        }
+        else if ( !m_bPersistent )
+        {
+=====================================================================
+Found a 42 line (133 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/jobs/jobdispatch.cxx
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/jobs/jobdispatch.cxx
+
+    aCfg.setAlias(sAlias);
+    aCfg.setEnvironment(JobData::E_DISPATCH);
+
+    /*Attention!
+        Jobs implements interfaces and dies by ref count!
+        And freeing of such uno object is done by uno itself.
+        So we have to use dynamic memory everytimes.
+     */
+    Job* pJob = new Job(m_xSMGR, m_xFrame);
+    css::uno::Reference< css::uno::XInterface > xJob(static_cast< ::cppu::OWeakObject* >(pJob), css::uno::UNO_QUERY);
+    pJob->setJobData(aCfg);
+
+    aReadLock.unlock();
+    /* } SAFE */
+
+    css::uno::Reference< css::frame::XDispatchResultListener > xThis( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY );
+
+    // Special mode for listener.
+    // We dont notify it directly here. We delegate that
+    // to the job implementation. But we must set ourself there too.
+    // Because this job must fake the source adress of the event.
+    // Otherwhise the listener may will ignore it.
+    if (xListener.is())
+        pJob->setDispatchResultFake(xListener, xThis);
+    pJob->execute(Converter::convert_seqPropVal2seqNamedVal(lArgs));
+}
+
+//________________________________
+/**
+    @short  implementation of XDispatch::dispatch()
+    @descr  Because the methods dispatch() and dispatchWithNotification() are different in her parameters
+            only, we can forward this request to dispatchWithNotification() by using an empty listener!
+
+    @param  aURL
+                describe the job(s), which should be started
+
+    @param  lArgs
+                optional arguments for this request
+
+    @see    dispatchWithNotification()
+*/
+void SAL_CALL JobDispatch::dispatch( /*IN*/ const css::util::URL&                                  aURL  ,
+=====================================================================
+Found a 27 line (133 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/popupmenucontrollerbase.cxx
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/recentfilesmenucontroller.cxx
+
+void SAL_CALL RecentFilesMenuController::updatePopupMenu() throw (RuntimeException)
+{
+    ResetableGuard aLock( m_aLock );
+    
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    Reference< XDispatch > xDispatch( m_xDispatch );
+    Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance(
+                                                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
+                                                UNO_QUERY );
+    com::sun::star::util::URL aTargetURL;
+    aTargetURL.Complete = m_aCommandURL;
+    xURLTransformer->parseStrict( aTargetURL );
+    aLock.unlock();
+
+    // Add/remove status listener to get a status update once
+    if ( xDispatch.is() )
+    {
+        xDispatch->addStatusListener( xStatusListener, aTargetURL );
+        xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+    }
+}
+
+// XDispatchProvider
+Reference< XDispatch > SAL_CALL RecentFilesMenuController::queryDispatch( 
+=====================================================================
+Found a 7 line (133 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/imgprod.cxx
+Starting at line 522 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/imgprod.cxx
+
+		for( pCons = maConsList.First(); pCons; pCons = maConsList.Next() )
+			aTmp.Insert( new ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > ( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > *) pCons ), LIST_APPEND );
+
+		// iterate through interfaces
+		for( pCons = aTmp.First(); pCons; pCons = aTmp.Next() )
+		{
+			( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > *) pCons )->init( pBmpAcc->Width(), pBmpAcc->Height() );
+=====================================================================
+Found a 16 line (133 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/CheckBox.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/clickableimage.cxx
+
+namespace frm
+{
+//.........................................................................
+
+    using namespace ::com::sun::star::uno;
+    using namespace ::com::sun::star::sdb;
+    using namespace ::com::sun::star::sdbc;
+    using namespace ::com::sun::star::sdbcx;
+    using namespace ::com::sun::star::beans;
+    using namespace ::com::sun::star::container;
+    using namespace ::com::sun::star::form;
+    using namespace ::com::sun::star::awt;
+    using namespace ::com::sun::star::io;
+    using namespace ::com::sun::star::lang;
+    using namespace ::com::sun::star::util;
+    using namespace ::com::sun::star::frame;
+=====================================================================
+Found a 6 line (133 tokens) duplication in the following files: 
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       }};
+=====================================================================
+Found a 12 line (133 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+static const sal_Unicode pBase64[] = 
+{
+	//0   1   2   3   4   5   6   7
+	 'A','B','C','D','E','F','G','H', // 0
+	 'I','J','K','L','M','N','O','P', // 1
+	 'Q','R','S','T','U','V','W','X', // 2
+	 'Y','Z','a','b','c','d','e','f', // 3
+	 'g','h','i','j','k','l','m','n', // 4
+	 'o','p','q','r','s','t','u','v', // 5
+	 'w','x','y','z','0','1','2','3', // 6
+	 '4','5','6','7','8','9','+','/'  // 7
+};
+=====================================================================
+Found a 10 line (133 tokens) duplication in the following files: 
+Starting at line 761 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+
+				aPoly[ 0 ].Y() = static_cast<long>(aBaseLinePos.Y() + 1.5*nLineHeight);
+				aPoly[ 1 ].X() = aPoly[ 0 ].X() + aNormSize.Width() - 1; 
+				aPoly[ 1 ].Y() = aPoly[ 0 ].Y();
+				aPoly[ 2 ].X() = aPoly[ 1 ].X(); 
+				aPoly[ 2 ].Y() = aPoly[ 1 ].Y() + nLineHeight - 1;
+				aPoly[ 3 ].X() = aPoly[ 0 ].X(); 
+				aPoly[ 3 ].Y() = aPoly[ 2 ].Y();
+
+				Impl_writePolygon( aPoly, sal_True, aTextColor, aTextColor );
+			}
+=====================================================================
+Found a 30 line (133 tokens) duplication in the following files: 
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/config/cache/basecontainer.cxx
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/config/cache/basecontainer.cxx
+
+           css::container::NoSuchElementException,
+           css::lang::WrappedTargetException     ,
+           css::uno::RuntimeException            )
+{
+    if (!sItem.getLength())
+        throw css::lang::IllegalArgumentException(
+            ::rtl::OUString::createFromAscii("empty value not allowed as item name."),
+            static_cast< css::container::XNameContainer* >(this),
+            1);
+
+    CacheItem aItem;
+    try
+    {
+        aItem << aValue;
+    }
+    catch(const css::uno::Exception& ex)
+    {
+        throw css::lang::IllegalArgumentException(ex.Message, static_cast< css::container::XNameContainer* >(this), 2);
+    }
+
+    impl_loadOnDemand();
+
+    // SAFE -> ----------------------------------
+    ::osl::ResettableMutexGuard aLock(m_aLock);
+
+    // create write copy of used cache on demand ...
+    impl_initFlushMode();
+
+    FilterCache* pCache = impl_getWorkingCache();
+    if (!pCache->hasItem(m_eType, sItem))
+=====================================================================
+Found a 6 line (133 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+
+  sal_Char aBase64EncodeTable[] =
+    { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+      'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 12 line (133 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/eventattacher/source/eventattacher.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/invocation/invocation.cxx
+
+	virtual void		SAL_CALL setMaterial( const Any& rMaterial );
+	
+	// XInvocation
+    virtual Reference<XIntrospectionAccess> SAL_CALL getIntrospection(void) throw( RuntimeException );
+    virtual Any SAL_CALL invoke(const OUString& FunctionName, const Sequence< Any >& Params, Sequence< sal_Int16 >& OutParamIndex, Sequence< Any >& OutParam) 
+		throw( IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException );
+    virtual void SAL_CALL setValue(const OUString& PropertyName, const Any& Value) 
+		throw( UnknownPropertyException, CannotConvertException, InvocationTargetException, RuntimeException );
+    virtual Any SAL_CALL getValue(const OUString& PropertyName) 
+		throw( UnknownPropertyException, RuntimeException );
+    virtual sal_Bool SAL_CALL hasMethod(const OUString& Name) throw( RuntimeException );
+    virtual sal_Bool SAL_CALL hasProperty(const OUString& Name) throw( RuntimeException );
+=====================================================================
+Found a 15 line (133 tokens) duplication in the following files: 
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/querycontroller.cxx
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/relationdesign/RelationController.cxx
+
+}
+
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::ui::dialogs;
+using namespace ::com::sun::star::util;
+=====================================================================
+Found a 23 line (133 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/control/toolboxcontroller.cxx
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/misc/toolboxcontroller.cxx
+
+Any SAL_CALL OToolboxController::queryInterface( const Type& _rType ) throw (RuntimeException)
+{
+	Any aReturn = ToolboxController::queryInterface(_rType);
+	if (!aReturn.hasValue())
+		aReturn = TToolboxController_BASE::queryInterface(_rType);
+	return aReturn;
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OToolboxController::acquire() throw ()
+{
+	ToolboxController::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OToolboxController::release() throw ()
+{
+	ToolboxController::release();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OToolboxController::initialize( const Sequence< Any >& _rArguments ) throw (Exception, RuntimeException)
+{
+	ToolboxController::initialize(_rArguments);
+	vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+	::osl::MutexGuard aGuard(m_aMutex);
+=====================================================================
+Found a 11 line (133 tokens) duplication in the following files: 
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/dbloader2.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/browser/dbloader.cxx
+
+		return ::rtl::OUString::createFromAscii("org.openoffice.comp.dbu.DBContentLoader");
+	}
+	static Sequence< ::rtl::OUString> getSupportedServiceNames_Static(void) throw(  );
+	static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
+			SAL_CALL Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&);
+
+	// XLoader
+	virtual void SAL_CALL load(	const Reference< XFrame > & _rFrame, const ::rtl::OUString& _rURL,
+								const Sequence< PropertyValue >& _rArgs,
+								const Reference< XLoadEventListener > & _rListener) throw(::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL cancel(void) throw();
+=====================================================================
+Found a 13 line (133 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 228 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+
+    virtual test::TestData SAL_CALL getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+											   sal_Int16& nShort, sal_uInt16& nUShort,
+											   sal_Int32& nLong, sal_uInt32& nULong,
+											   sal_Int64& nHyper, sal_uInt64& nUHyper,
+											   float& fFloat, double& fDouble,
+											   test::TestEnum& eEnum, rtl::OUString& rStr,
+											   ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+											   ::com::sun::star::uno::Any& rAny,
+											   ::com::sun::star::uno::Sequence< test::TestElement >& rSequence,
+											   test::TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 26 line (133 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/uno/EnvStack.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/uno/cascade_mapping.cxx
+
+static rtl::OUString getPrefix(rtl::OUString const & str1, rtl::OUString const & str2)
+{
+	sal_Int32 nIndex1 = 0;
+	sal_Int32 nIndex2 = 0;
+	sal_Int32 sim = 0;
+	
+	rtl::OUString token1;
+	rtl::OUString token2;
+	
+	do
+	{
+		token1 = str1.getToken(0, ':', nIndex1);
+		token2 = str2.getToken(0, ':', nIndex2);
+
+		if (token1.equals(token2))
+			sim += token1.getLength() + 1;
+	}
+	while(nIndex1 == nIndex2 && nIndex1 >= 0 && token1.equals(token2));
+
+	rtl::OUString result;
+
+	if (sim)
+		result = str1.copy(0, sim - 1);
+
+	return result;
+}
+=====================================================================
+Found a 8 line (133 tokens) duplication in the following files: 
+Starting at line 646 of /local/ooo-build/ooo-build/src/oog680-m3/cosv/source/strings/streamstr.cxx
+Starting at line 50 of /local/ooo-build/ooo-build/src/oog680-m3/idl/source/cmptools/char.cxx
+
+static unsigned char EqualTab[ 256 ] = {
+  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
+ 10,  11,  12,  13,  14,  15,  16,  17,  18,  19,
+ 20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+ 30,  31,  32,  33,  34,  35,  36,  37,  38,  39,
+ 40,  41,  42,  43,  44,  45,  46,  47,  48,  49,
+ 50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+ 60,  61,  62,  63,  64,  65,  66,  67,  68,  69,
+=====================================================================
+Found a 17 line (133 tokens) duplication in the following files: 
+Starting at line 1826 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1923 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	OLEVariant varCriteria[3];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schemaPattern.getLength() && schemaPattern.toChar() != '%')
+		varCriteria[nPos].setString(schemaPattern);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+
+	if(procedureNamePattern.toChar() != '%')
+=====================================================================
+Found a 7 line (133 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL java_sql_ResultSet::getTypes(  ) throw(::com::sun::star::uno::RuntimeException)
+{
+	::cppu::OTypeCollection aTypes(	::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XMultiPropertySet > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XFastPropertySet > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > *)0 ));
+
+	return ::comphelper::concatSequences(aTypes.getTypes(),java_sql_ResultSet_BASE::getTypes());
+=====================================================================
+Found a 9 line (133 tokens) duplication in the following files: 
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/APreparedStatement.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FPreparedStatement.cxx
+
+                                        static_cast< XParameters*>(this),
+                                        static_cast< XResultSetMetaDataSupplier*>(this));
+}
+// -------------------------------------------------------------------------
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL OPreparedStatement::getTypes(  ) throw(::com::sun::star::uno::RuntimeException)
+{
+        ::cppu::OTypeCollection aTypes( ::getCppuType( (const ::com::sun::star::uno::Reference< XPreparedStatement > *)0 ),
+                                        ::getCppuType( (const ::com::sun::star::uno::Reference< XParameters > *)0 ),
+                                        ::getCppuType( (const ::com::sun::star::uno::Reference< XResultSetMetaDataSupplier > *)0 ));
+=====================================================================
+Found a 7 line (133 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL OStatement_Base::getTypes(  ) throw(::com::sun::star::uno::RuntimeException)
+{
+	::cppu::OTypeCollection aTypes(	::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XMultiPropertySet > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XFastPropertySet > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > *)0 ));
+
+	return ::comphelper::concatSequences(aTypes.getTypes(),OStatement_BASE::getTypes());
+=====================================================================
+Found a 9 line (133 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+
+    virtual sal_Bool SAL_CALL hasElements(  ) throw (::com::sun::star::uno::RuntimeException);
+
+    // XNameAccess
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+
+    // XNameReplace
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 47 line (133 tokens) duplication in the following files: 
+Starting at line 3246 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javatype.cxx
+Starting at line 3319 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javatype.cxx
+
+        generated.add(typeName);
+        return true;
+    }
+    if (!reader.isValid()) {
+        return false;
+    }
+    handleUnoTypeRegistryEntityFunction handler;
+    switch (reader.getTypeClass()) {
+    case RT_TYPE_ENUM:
+        handler = handleEnumType;
+        break;
+
+    case RT_TYPE_STRUCT:
+    case RT_TYPE_EXCEPTION:
+        handler = handleAggregatingType;
+        break;
+
+    case RT_TYPE_INTERFACE:
+        handler = handleInterfaceType;
+        break;
+
+    case RT_TYPE_TYPEDEF:
+        handler = handleTypedef;
+        break;
+
+    case RT_TYPE_CONSTANTS:
+        handler = handleConstantGroup;
+        break;
+
+    case RT_TYPE_MODULE:
+        handler = handleModule;
+        break;
+
+    case RT_TYPE_SERVICE:
+        handler = handleService;
+        break;
+
+    case RT_TYPE_SINGLETON:
+        handler = handleSingleton;
+        break;
+
+    default:
+        return false;
+    }
+    Dependencies deps;
+    handler(manager, *options, reader, &deps);
+    generated.add(typeName);
+=====================================================================
+Found a 21 line (133 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/Stripe.cxx
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/Stripe.cxx
+
+uno::Any Stripe::getTexturePolygon() const
+{
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(4);
+    pOuterSequenceY->realloc(4);
+	pOuterSequenceZ->realloc(4);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    *pInnerSequenceX++ = 0.0;
+=====================================================================
+Found a 22 line (133 tokens) duplication in the following files: 
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartTypeTemplate.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/NetChartTypeTemplate.cxx
+
+    bool bSymbolsFound = false;
+    if( bResult )
+    {
+        ::std::vector< Reference< chart2::XDataSeries > > aSeriesVec(
+            DiagramHelper::getDataSeriesFromDiagram( xDiagram ));
+
+        for( ::std::vector< Reference< chart2::XDataSeries > >::const_iterator aIt =
+                 aSeriesVec.begin(); aIt != aSeriesVec.end(); ++aIt )
+        {
+            try
+            {
+                chart2::Symbol aSymbProp;
+                drawing::LineStyle eLineStyle;
+                Reference< beans::XPropertySet > xProp( *aIt, uno::UNO_QUERY_THROW );
+                if( (xProp->getPropertyValue( C2U( "Symbol" )) >>= aSymbProp) &&
+                    (aSymbProp.Style != chart2::SymbolStyle_NONE ) &&
+                    (! m_bHasSymbols) )
+                {
+                    bResult = false;
+                    break;
+                }
+                if( m_bHasSymbols )
+=====================================================================
+Found a 23 line (133 tokens) duplication in the following files: 
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxlng.cxx
+
+			*p->pLong = n; break;
+		case SbxBYREF | SbxULONG:
+			if( n < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); n = 0;
+			}
+			*p->pULong = (UINT32) n; break;
+		case SbxBYREF | SbxSALINT64:
+			*p->pnInt64 = n; break;
+		case SbxBYREF | SbxSALUINT64:
+	        if( n < 0 )
+            {
+		        SbxBase::SetError( SbxERR_OVERFLOW ); *p->puInt64 = 0;
+            }
+            else
+			    *p->puInt64 = n; 
+            break;
+		case SbxBYREF | SbxSINGLE:
+			*p->pSingle = (float) n; break;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			*p->pDouble = (double) n; break;
+		case SbxBYREF | SbxCURRENCY:
+=====================================================================
+Found a 12 line (133 tokens) duplication in the following files: 
+Starting at line 3345 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/classes/sbunoobj.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/invocation/invocation.cxx
+
+	virtual void		SAL_CALL setMaterial( const Any& rMaterial );
+	
+	// XInvocation
+    virtual Reference<XIntrospectionAccess> SAL_CALL getIntrospection(void) throw( RuntimeException );
+    virtual Any SAL_CALL invoke(const OUString& FunctionName, const Sequence< Any >& Params, Sequence< sal_Int16 >& OutParamIndex, Sequence< Any >& OutParam) 
+		throw( IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException );
+    virtual void SAL_CALL setValue(const OUString& PropertyName, const Any& Value) 
+		throw( UnknownPropertyException, CannotConvertException, InvocationTargetException, RuntimeException );
+    virtual Any SAL_CALL getValue(const OUString& PropertyName) 
+		throw( UnknownPropertyException, RuntimeException );
+    virtual sal_Bool SAL_CALL hasMethod(const OUString& Name) throw( RuntimeException );
+    virtual sal_Bool SAL_CALL hasProperty(const OUString& Name) throw( RuntimeException );
+=====================================================================
+Found a 14 line (133 tokens) duplication in the following files: 
+Starting at line 1898 of /local/ooo-build/ooo-build/src/oog680-m3/animations/source/animcore/animcore.cxx
+Starting at line 1924 of /local/ooo-build/ooo-build/src/oog680-m3/animations/source/animcore/animcore.cxx
+
+Reference< XAnimationNode > SAL_CALL AnimationNode::insertAfter( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild )
+	throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
+{
+	Guard< Mutex > aGuard( maMutex );
+
+	if( !newChild.is() || !refChild.is() )
+		throw IllegalArgumentException();
+
+	ChildList_t::iterator before = ::std::find(maChilds.begin(), maChilds.end(), refChild);
+	if( before == maChilds.end() )
+		throw NoSuchElementException();
+
+	if( ::std::find(maChilds.begin(), maChilds.end(), newChild) != maChilds.end() )
+		throw ElementExistException();
+=====================================================================
+Found a 10 line (132 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+
+sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+			rtl::OUString arg=aArguments[0];
+=====================================================================
+Found a 21 line (132 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 539 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+
+                if(fg[2] < 0) fg[2] = 0;
+
+                if(fg[0] > base_mask) fg[0] = base_mask;
+                if(fg[1] > base_mask) fg[1] = base_mask;
+                if(fg[2] > base_mask) fg[2] = base_mask;
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = base_mask;
+                ++span;
+                ++intr;
+            } while(--len);
+
+            return base_type::allocator().span();
+        }
+
+    private:
+        WrapModeX m_wrap_mode_x;
+        WrapModeY m_wrap_mode_y;
+    };
+=====================================================================
+Found a 22 line (132 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+
+            base_type(alloc, src, color_type(0,0,0,0), intr, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            calc_type fg[3];
+            const value_type *fg_ptr;
+=====================================================================
+Found a 21 line (132 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+
+        span_pattern_filter_gray_bilinear(alloc_type& alloc,
+                                          const rendering_buffer& src, 
+                                          interpolator_type& inter) :
+            base_type(alloc, src, color_type(0,0), inter, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 27 line (132 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svdem.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svptest.cxx
+
+public:
+				MyWin( Window* pParent, WinBits nWinStyle );
+
+	void		MouseMove( const MouseEvent& rMEvt );
+	void		MouseButtonDown( const MouseEvent& rMEvt );
+	void		MouseButtonUp( const MouseEvent& rMEvt );
+	void		KeyInput( const KeyEvent& rKEvt );
+	void		KeyUp( const KeyEvent& rKEvt );
+	void		Paint( const Rectangle& rRect );
+	void		Resize();
+};
+
+// -----------------------------------------------------------------------
+
+void Main()
+{
+	MyWin aMainWin( NULL, WB_APP | WB_STDWORK );
+	aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "VCL - Workbench" ) ) );
+	aMainWin.Show();
+
+	Application::Execute();
+}
+
+// -----------------------------------------------------------------------
+
+MyWin::MyWin( Window* pParent, WinBits nWinStyle ) :
+	WorkWindow( pParent, nWinStyle ),
+=====================================================================
+Found a 5 line (132 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 19 line (132 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salinst.h
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salinst.h
+
+                                                     USHORT nBitCount, const SystemGraphicsData *pData );
+    virtual void			DestroyVirtualDevice( SalVirtualDevice* pDevice );
+
+    virtual SalInfoPrinter*	CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
+                                               ImplJobSetup* pSetupData );
+    virtual void			DestroyInfoPrinter( SalInfoPrinter* pPrinter );
+    virtual SalPrinter*		CreatePrinter( SalInfoPrinter* pInfoPrinter );
+    virtual void			DestroyPrinter( SalPrinter* pPrinter );
+    virtual void			GetPrinterQueueInfo( ImplPrnQueueList* pList );
+    virtual void			GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+    virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+    virtual String             GetDefaultPrinter();
+    virtual SalSound*			CreateSalSound();
+    virtual SalTimer*			CreateSalTimer();
+    virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+    virtual SalI18NImeStatus*	CreateI18NImeStatus();
+    virtual SalSystem*			CreateSalSystem();
+    virtual SalBitmap*			CreateSalBitmap();
+    virtual vos::IMutex*		GetYieldMutex();
+=====================================================================
+Found a 22 line (132 tokens) duplication in the following files: 
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+Starting at line 801 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+};
+=====================================================================
+Found a 21 line (132 tokens) duplication in the following files: 
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salinst.h
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salinst.h
+
+                                                     USHORT nBitCount, const SystemGraphicsData *pData = NULL );
+    virtual void				DestroyVirtualDevice( SalVirtualDevice* pDevice );
+
+    virtual SalInfoPrinter*	CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
+                                               ImplJobSetup* pSetupData );
+    virtual void				DestroyInfoPrinter( SalInfoPrinter* pPrinter );
+    virtual SalPrinter*		CreatePrinter( SalInfoPrinter* pInfoPrinter );
+    virtual void				DestroyPrinter( SalPrinter* pPrinter );
+
+    virtual void				GetPrinterQueueInfo( ImplPrnQueueList* pList );
+    virtual void				GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+    virtual void				DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+    virtual String             GetDefaultPrinter();
+
+    virtual SalSound*			CreateSalSound();
+    virtual SalTimer*			CreateSalTimer();
+    virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+    virtual SalI18NImeStatus*	CreateI18NImeStatus();
+    virtual SalSystem*			CreateSalSystem();
+    virtual SalBitmap*			CreateSalBitmap();
+    virtual SalSession*			CreateSalSession();
+=====================================================================
+Found a 39 line (132 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_contentcaps.cxx
+
+    static ucb::CommandInfo aCommandInfoTable[] =
+	{
+		///////////////////////////////////////////////////////////////
+		// Required commands
+		///////////////////////////////////////////////////////////////
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+			-1,
+			getCppuVoidType()
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+		),
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+			-1,
+            getCppuType(
+                static_cast< uno::Sequence< beans::PropertyValue > * >( 0 ) )
+		),
+		///////////////////////////////////////////////////////////////
+		// Optional standard commands
+		///////////////////////////////////////////////////////////////
+/*
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+			-1,
+			getCppuBooleanType()
+		),
+*/
+        ucb::CommandInfo(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
+=====================================================================
+Found a 38 line (132 tokens) duplication in the following files: 
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 653 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+    else if ( !m_aUri.isRootFolder()
+              && aCommand.Name.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM( "delete" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// delete
+		//////////////////////////////////////////////////////////////////
+
+		sal_Bool bDeletePhysical = sal_False;
+		aCommand.Argument >>= bDeletePhysical;
+        destroy( bDeletePhysical, Environment );
+
+		// Remove own and all children's persistent data.
+        if ( !removeData() )
+        {
+            uno::Any aProps
+                = uno::makeAny(
+                         beans::PropertyValue(
+                             rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                               "Uri")),
+                             -1,
+                             uno::makeAny(m_xIdentifier->
+                                              getContentIdentifier()),
+                             beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_CANT_WRITE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                Environment,
+                rtl::OUString::createFromAscii(
+                    "Cannot remove persistent data!" ),
+                this );
+            // Unreachable
+        }
+
+		// Remove own and all children's Additional Core Properties.
+		removeAdditionalPropertySet( sal_True );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+=====================================================================
+Found a 18 line (132 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 1424 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+
+	static ucb::CommandInfo aDocumentCommandInfoTable[] = {
+		// Required commands
+		ucb::CommandInfo
+		( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+		  -1, getCppuVoidType() ),
+		ucb::CommandInfo
+		( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+		  -1, getCppuVoidType() ),
+		ucb::CommandInfo
+		( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+		  -1, getCppuType( static_cast<uno::Sequence< beans::Property > * >( 0 ) ) ),
+		ucb::CommandInfo
+		( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+		  -1, getCppuType( static_cast<uno::Sequence< beans::PropertyValue > * >( 0 ) ) ),
+
+		// Optional standard commands
+		ucb::CommandInfo
+		( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
+=====================================================================
+Found a 11 line (132 tokens) duplication in the following files: 
+Starting at line 1171 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetstrm.cxx
+Starting at line 1181 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetstrm.cxx
+
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40
+=====================================================================
+Found a 6 line (132 tokens) duplication in the following files: 
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 1683 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+  sal_Char aBase64EncodeTable[] =
+    { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+      'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 19 line (132 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmgreetingspage.cxx
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmgreetingspage.cxx
+
+    lcl_FillGreetingsBox(m_aNeutralCB, rConfig, SwMailMergeConfigItem::NEUTRAL);
+
+    //try to find the gender setting
+    m_aFemaleColumnLB.Clear();
+    Reference< sdbcx::XColumnsSupplier > xColsSupp = rConfig.GetColumnsSupplier();
+    if(xColsSupp.is())
+    {        
+        Reference < container::XNameAccess> xColAccess = xColsSupp->getColumns();
+        Sequence< ::rtl::OUString > aColumns = xColAccess->getElementNames();
+        for(sal_Int32 nName = 0; nName < aColumns.getLength(); ++nName)
+            m_aFemaleColumnLB.InsertEntry(aColumns[nName]);
+    }
+
+    ::rtl::OUString sGenderColumn = rConfig.GetAssignedColumn(MM_PART_GENDER);
+    m_aFemaleColumnLB.SelectEntry(sGenderColumn);
+    m_aFemaleColumnLB.SaveValue();
+
+    m_aFemaleFieldCB.SetText(rConfig.GetFemaleGenderValue());
+    m_aFemaleFieldCB.SaveValue();
+=====================================================================
+Found a 27 line (132 tokens) duplication in the following files: 
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtffly.cxx
+Starting at line 925 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtffly.cxx
+
+								break;
+
+// JP 26.09.94: die Bindung an die Spalte gibt es nicht mehr !!
+//							case RTF_FLY_COLUMN:
+							}
+							break;
+					case RTF_COLS:	nCols = USHORT( nTokenValue );		break;
+					case RTF_COLSX:	nColSpace = USHORT( nTokenValue );	break;
+					case RTF_COLNO:
+						nAktCol = USHORT( nTokenValue );
+						if( RTF_COLW == GetNextToken() )
+						{
+							USHORT nWidth = USHORT( nTokenValue ), nSpace = 0;
+							if( RTF_COLSR == GetNextToken() )
+								nSpace = USHORT( nTokenValue );
+							else
+								SkipToken( -1 );		// wieder zurueck
+
+							if( --nAktCol == ( aColumns.Count() / 2 ) )
+							{
+								aColumns.Insert( nWidth + nSpace, aColumns.Count() );
+								aColumns.Insert( nSpace, aColumns.Count() );
+							}
+						}
+						break;
+
+					case '{':
+=====================================================================
+Found a 71 line (132 tokens) duplication in the following files: 
+Starting at line 3529 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+// <--
+    };
+=====================================================================
+Found a 26 line (132 tokens) duplication in the following files: 
+Starting at line 1741 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+Starting at line 1831 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+
+			aFmt.SetCharFmt( pNumCFmt );
+			aFmt.SetIncludeUpperLevels( 1 );
+			aFmt.SetSuffix( aDotStr );
+
+			static const USHORT aAbsSpace[ MAXLEVEL ] =
+				{
+//				cm: 0,5  1,0  1,5  2,0   2,5   3,0   3,5   4,0   4,5   5,0
+					283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
+				};
+#ifdef USE_MEASUREMENT
+			static const USHORT aAbsSpaceInch[ MAXLEVEL ] =
+				{
+					283, 567, 850, 1134, 1417, 1701, 1984, 2268, 2551, 2835
+				};
+			const USHORT* pArr = MEASURE_METRIC ==
+								GetAppLocaleData().getMeasurementSystemEnum()
+									? aAbsSpace
+									: aAbsSpaceInch;
+#else
+			const USHORT* pArr = aAbsSpace;
+#endif
+
+			aFmt.SetFirstLineOffset( - (*pArr) );
+			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
+			{
+				aFmt.SetStart( n + 1 );
+=====================================================================
+Found a 14 line (132 tokens) duplication in the following files: 
+Starting at line 1139 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doctxm.cxx
+Starting at line 2043 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doctxm.cxx
+
+		if(GetTOXForm().IsCommaSeparated() &&
+				aSortArr[nCnt]->GetType() == TOX_SORT_INDEX)
+		{
+			const SwTOXMark& rMark = aSortArr[nCnt]->pTxtMark->GetTOXMark();
+			const String sPrimKey = rMark.GetPrimaryKey();
+			const String sSecKey = rMark.GetSecondaryKey();
+			const SwTOXMark* pNextMark = 0;
+			while(aSortArr.Count() > (nCnt + nRange)&&
+					aSortArr[nCnt + nRange]->GetType() == TOX_SORT_INDEX &&
+					0 != (pNextMark = &(aSortArr[nCnt + nRange]->pTxtMark->GetTOXMark())) &&
+					pNextMark->GetPrimaryKey() == sPrimKey &&
+					pNextMark->GetSecondaryKey() == sSecKey)
+				nRange++;
+		}
+=====================================================================
+Found a 21 line (132 tokens) duplication in the following files: 
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xtabdash.cxx
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xtablend.cxx
+
+	pXLSet->GetItemSet().Put( XLineEndItem( String(), GetLineEnd( nIndex )->GetLineEnd() ) );
+
+//-/	pXOut->SetLineAttr( *pXLSet );
+	pXOut->SetLineAttr( pXLSet->GetItemSet() );
+	
+	pXOut->DrawLine( Point( 0, aVDSize.Height() / 2 ),
+					 Point( aVDSize.Width(), aVDSize.Height() / 2 ) );
+
+	Bitmap* pBitmap = new Bitmap( pVD->GetBitmap( aZero, aVDSize ) );
+
+	// Loeschen, da JOE den Pool vorm Dtor entfernt!
+	if( bDelete )
+	{
+		if( pVD )	{ delete pVD;	pVD = NULL;     }
+		if( pXOut ) { delete pXOut;	pXOut = NULL;   }
+		if( pXFSet ){ delete pXFSet; pXFSet = NULL; }
+		if( pXLSet ){ delete pXLSet; pXLSet = NULL; }
+	}
+
+	return( pBitmap );
+}
+=====================================================================
+Found a 12 line (132 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/cube3d.cxx
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/cube3d.cxx
+
+			if(GetCreateNormals())
+			{
+				basegfx::B3DPolygon aNormals3D;
+				basegfx::B3DVector aVecTmp;
+				
+				aVecTmp = aRect3D.getB3DPoint(0L); aVecTmp.normalize(); aNormals3D.append(basegfx::B3DPoint(aVecTmp));
+				aVecTmp = aRect3D.getB3DPoint(1L); aVecTmp.normalize(); aNormals3D.append(basegfx::B3DPoint(aVecTmp));
+				aVecTmp = aRect3D.getB3DPoint(2L); aVecTmp.normalize(); aNormals3D.append(basegfx::B3DPoint(aVecTmp));
+				aVecTmp = aRect3D.getB3DPoint(3L); aVecTmp.normalize(); aNormals3D.append(basegfx::B3DPoint(aVecTmp));
+
+				if(GetCreateTexture())
+				{
+=====================================================================
+Found a 13 line (132 tokens) duplication in the following files: 
+Starting at line 2270 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2001 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 0x18 MSO_I },
+
+	{ 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I },
+	{ 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I },
+	{ 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonInformationSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+=====================================================================
+Found a 29 line (132 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+void StatusbarController::addStatusListener( const rtl::OUString& aCommandURL )
+{
+    Reference< XDispatch >       xDispatch;
+    Reference< XStatusListener > xStatusListener;
+    com::sun::star::util::URL    aTargetURL;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+
+        // Already in the list of status listener. Do nothing.
+        if ( pIter != m_aListenerMap.end() )
+            return;
+
+        // Check if we are already initialized. Implementation starts adding itself as status listener when
+        // intialize is called.
+        if ( !m_bInitialized )
+        {
+            // Put into the hash_map of status listener. Will be activated when initialized is called
+            m_aListenerMap.insert( URLToDispatchMap::value_type( aCommandURL, Reference< XDispatch >() ));
+            return;
+        }
+        else
+        {
+            // Add status listener directly as intialize has already been called.
+            Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+            if ( m_xServiceManager.is() && xDispatchProvider.is() )
+            {
+                Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+=====================================================================
+Found a 25 line (132 tokens) duplication in the following files: 
+Starting at line 1095 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/itemset.cxx
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/itemset.cxx
+
+	BOOL bEqual = TRUE;
+	USHORT* pWh1 = _pWhichRanges;
+	USHORT* pWh2 = rSet._pWhichRanges;
+	USHORT nSize = 0;
+
+	for( USHORT n = 0; *pWh1 && *pWh2; ++pWh1, ++pWh2, ++n )
+	{
+		if( *pWh1 != *pWh2 )
+		{
+			bEqual = FALSE;
+			break;
+		}
+		if( n & 1 )
+			nSize += ( *(pWh1) - *(pWh1-1) ) + 1;
+	}
+	bEqual = *pWh1 == *pWh2;		// auch die 0 abpruefen
+
+	// sind die Bereiche identisch, ist es einfacher zu handhaben !
+	if( bEqual )
+	{
+		SfxItemArray ppFnd1 = _aItems;
+		SfxItemArray ppFnd2 = rSet._aItems;
+
+		for( ; nSize; --nSize, ++ppFnd1, ++ppFnd2 )
+			if( *ppFnd1 && *ppFnd2 )
+=====================================================================
+Found a 12 line (132 tokens) duplication in the following files: 
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									 sal_Int16& nShort, sal_uInt16& nUShort,
+									 sal_Int32& nLong, sal_uInt32& nULong,
+									 sal_Int64& nHyper, sal_uInt64& nUHyper,
+									 float& fFloat, double& fDouble,
+									 test::TestEnum& eEnum, rtl::OUString& rStr,
+									 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									 ::com::sun::star::uno::Any& rAny,
+									 ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									 test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+=====================================================================
+Found a 11 line (132 tokens) duplication in the following files: 
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									 sal_Int16& nShort, sal_uInt16& nUShort,
+									 sal_Int32& nLong, sal_uInt32& nULong,
+									 sal_Int64& nHyper, sal_uInt64& nUHyper,
+									 float& fFloat, double& fDouble,
+									 test::TestEnum& eEnum, rtl::OUString& rStr,
+									 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									 ::com::sun::star::uno::Any& rAny,
+									 ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									 test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 11 line (132 tokens) duplication in the following files: 
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									  sal_Int16& nShort, sal_uInt16& nUShort,
+									  sal_Int32& nLong, sal_uInt32& nULong,
+									  sal_Int64& nHyper, sal_uInt64& nUHyper,
+									  float& fFloat, double& fDouble,
+									  test::TestEnum& eEnum, rtl::OUString& rStr,
+									  ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									  ::com::sun::star::uno::Any& rAny,
+									  ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									  test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 25 line (132 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodel.cxx
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodelapi.cxx
+
+void SfxMailModel::ClearList( AddressList_Impl* pList )
+{
+	if ( pList )
+	{
+		ULONG i, nCount = pList->Count();
+		for ( i = 0; i < nCount; ++i )
+			delete pList->GetObject(i);
+		pList->Clear();
+	}
+}
+
+void SfxMailModel::MakeValueList( AddressList_Impl* pList, String& rValueList )
+{
+	rValueList.Erase();
+	if ( pList )
+	{
+		ULONG i, nCount = pList->Count();
+		for ( i = 0; i < nCount; ++i )
+		{
+			if ( rValueList.Len() > 0 )
+				rValueList += ',';
+			rValueList += *pList->GetObject(i);
+		}
+	}
+}
+=====================================================================
+Found a 28 line (132 tokens) duplication in the following files: 
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/reg4msdoc/registryw9x.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/reg4msdoc/registrywnt.cxx
+
+		Name.c_str(),
+		0,
+		&Type,
+		reinterpret_cast<LPBYTE>(buff),
+		&size);
+
+	if (ERROR_FILE_NOT_FOUND == rc)
+	{
+		#if (_MSC_VER < 1300) && !defined(__MINGW32__)
+		return Default;
+		#else
+		RegistryValue regval_ptr;
+		regval_ptr = RegistryValue(new RegistryValueImpl(*Default));
+		return regval_ptr;
+		#endif
+	}
+
+	if (ERROR_ACCESS_DENIED == rc)
+		throw RegistryAccessDeniedException(rc);
+	else if (ERROR_SUCCESS != rc)
+		throw RegistryException(rc);
+
+	RegistryValue regval;
+
+	if (REG_DWORD == Type)
+		regval = RegistryValue(new RegistryValueImpl(Name, *reinterpret_cast<int*>(buff)));
+	else if (REG_SZ == Type || REG_EXPAND_SZ == Type || REG_MULTI_SZ == Type)
+		regval = RegistryValue(new RegistryValueImpl(Name, std::wstring(reinterpret_cast<wchar_t*>(buff))));
+=====================================================================
+Found a 18 line (132 tokens) duplication in the following files: 
+Starting at line 1191 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+Starting at line 1221 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+
+		Point aInsertPos( rPos );
+
+		if( pOwnData && pOwnData->GetWorkDocument() )
+
+		{
+			const SdDrawDocument*	pWorkModel = pOwnData->GetWorkDocument();
+            SdrPage*	            pWorkPage = (SdrPage*) ( ( pWorkModel->GetPageCount() > 1 ) ?
+                                                pWorkModel->GetSdPage( 0, PK_STANDARD ) :
+                                                pWorkModel->GetPage( 0 ) );
+
+			pWorkPage->SetRectsDirty();
+
+			// #104148# Use SnapRect, not BoundRect
+			Size aSize( pWorkPage->GetAllObjSnapRect().GetSize() );
+
+			aInsertPos.X() = pOwnData->GetStartPos().X() + ( aSize.Width() >> 1 );
+			aInsertPos.Y() = pOwnData->GetStartPos().Y() + ( aSize.Height() >> 1 );
+		}
+=====================================================================
+Found a 8 line (132 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+	static const SfxItemPropertyMap aGraphicPagePropertyMap_Impl[] =
+	{
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND),		WID_PAGE_BACK,		&ITYPE( beans::XPropertySet),					beans::PropertyAttribute::MAYBEVOID,0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM),			WID_PAGE_BOTTOM,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT),				WID_PAGE_LEFT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT),			WID_PAGE_RIGHT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+=====================================================================
+Found a 23 line (132 tokens) duplication in the following files: 
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/facreg.cxx
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoctabl.cxx
+
+static void writeInfo (
+	registry::XRegistryKey * pRegistryKey,
+	const OUString& rImplementationName,
+	const uno::Sequence< OUString >& rServices)
+{
+	uno::Reference< registry::XRegistryKey > xNewKey(
+		pRegistryKey->createKey(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
+
+	for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
+		xNewKey->createKey( rServices.getConstArray()[i]);
+}
+
+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
+	void * , void * pRegistryKey)
+{
+	if( pRegistryKey )
+	{
+		try
+		{
+			registry::XRegistryKey *pKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
+
+			writeInfo( pKey, SvxShapeCollection::getImplementationName_Static(), SvxShapeCollection::getSupportedServiceNames_Static() );
+=====================================================================
+Found a 29 line (132 tokens) duplication in the following files: 
+Starting at line 258 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleTreeNode.cxx
+
+sal_Int32 SAL_CALL AccessibleTreeNode::getAccessibleIndexInParent (void) 
+    throw (uno::RuntimeException)
+{
+    OSL_ASSERT(getAccessibleParent().is());
+    ThrowIfDisposed();
+    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
+    sal_Int32 nIndexInParent(-1);
+
+    
+    Reference<XAccessibleContext> xParentContext (getAccessibleParent()->getAccessibleContext());
+    if (xParentContext.is())
+    {
+        sal_Int32 nChildCount (xParentContext->getAccessibleChildCount());
+        for (sal_Int32 i=0; i<nChildCount; ++i)
+            if (xParentContext->getAccessibleChild(i).get() 
+                    == static_cast<XAccessible*>(this))
+            {
+                nIndexInParent = i;
+                break;
+            }
+    }
+   
+    return nIndexInParent;
+}
+
+
+
+
+sal_Int16 SAL_CALL AccessibleTreeNode::getAccessibleRole (void) 
+=====================================================================
+Found a 32 line (132 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+						while (nErr == 0 && aValIter.GetNext(nCellVal, nErr))
+						{
+							fx = nCellVal;
+							if (fx < 0.0)
+							{
+								fx *= -1.0;
+								fSign *= -1.0;
+							}
+							fy = fx * fy / ScGetGGT(fx, fy);
+						}
+						SetError(nErr);
+					}
+					else
+						SetError(errIllegalArgument);
+				}
+				break;
+				case svMatrix :
+				{
+					ScMatrixRef pMat = PopMatrix();
+					if (pMat)
+					{
+                        SCSIZE nC, nR;
+                        pMat->GetDimensions(nC, nR);
+						if (nC == 0 || nR == 0)
+							SetError(errIllegalArgument);
+						else
+						{
+							if (!pMat->IsValue(0))
+							{
+								SetIllegalArgument();
+								return;
+							}
+=====================================================================
+Found a 24 line (132 tokens) duplication in the following files: 
+Starting at line 743 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen4.cxx
+Starting at line 784 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen4.cxx
+
+		if (ValidRow(nOtherRow))	// nur Zeilen vergleichen, die in beiden Dateien sind
+		{
+			const ScBaseCell* pThisCell = GetCell( ScAddress( nThisCol, nThisRow, nThisTab ) );
+			const ScBaseCell* pOtherCell = rOtherDoc.GetCell( ScAddress( nOtherCol, nOtherRow, nOtherTab ) );
+			if (!ScBaseCell::CellEqual( pThisCell, pOtherCell ))
+			{
+				if ( pThisCell && pOtherCell )
+					nDif += 3;
+				else
+					nDif += 4;		// Inhalt <-> leer zaehlt mehr
+			}
+
+			if ( ( pThisCell  && pThisCell->GetCellType()!=CELLTYPE_NOTE ) ||
+				 ( pOtherCell && pOtherCell->GetCellType()!=CELLTYPE_NOTE ) )
+				++nUsed;
+		}
+	}
+
+	if (nUsed > 0)
+		return static_cast<USHORT>((nDif*64)/nUsed);	// max.256
+
+	DBG_ASSERT(!nDif,"Diff ohne Used");
+	return 0;
+}
+=====================================================================
+Found a 33 line (132 tokens) duplication in the following files: 
+Starting at line 4041 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4144 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4209 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4303 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4430 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4661 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+
+    class  copy : public CppUnit::TestFixture
+	{
+		::osl::FileBase::RC      nError1;
+		sal_uInt64 nCount_write, nCount_read;
+		
+	    public:
+		// initialization
+		void setUp( )
+		{
+			// create a tempfile in $TEMP/tmpdir/tmpname.
+			createTestDirectory( aTmpName3 );
+			createTestFile( aTmpName4 );
+			
+			//write chars into the file. 
+			::osl::File testFile( aTmpName4 );
+			
+			nError1 = testFile.open( OpenFlag_Write );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+			nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+ 			nError1 = testFile.close( );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+		}
+
+		void tearDown( )
+		{
+			// remove the tempfile in $TEMP/tmpdir/tmpname.
+			deleteTestFile( aTmpName4 );
+			deleteTestDirectory( aTmpName3 );
+		}
+
+		// test code.
+		void copy_001( )
+=====================================================================
+Found a 26 line (132 tokens) duplication in the following files: 
+Starting at line 16869 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 17631 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_009_Double_Negative : public checkdouble
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            // LLA: OString                expVal( kTestStr95 );
+            double                 input = atof("-3.0");
+=====================================================================
+Found a 25 line (132 tokens) duplication in the following files: 
+Starting at line 3826 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 9005 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_006_Int32_defaultParam : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+            OString                expVal( kTestStr59 );
+=====================================================================
+Found a 15 line (132 tokens) duplication in the following files: 
+Starting at line 712 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+	if (! (pProfile->m_Flags & osl_Profile_SYSTEM))
+	{
+		if ((pSec = findEntry(pProfile, pszSection, pszEntry, &NoEntry)) == NULL)
+		{
+			Line[0] = '\0';
+			addLine(pProfile, Line);
+
+			Line[0] = '[';
+			strcpy(&Line[1], pszSection);
+			Line[1 + strlen(pszSection)] = ']';
+			Line[2 + strlen(pszSection)] = '\0';
+
+			if (((pStr = addLine(pProfile, Line)) == NULL) ||
+				(! addSection(pProfile, pProfile->m_NoLines - 1, &pStr[1], strlen(pszSection))))
+			{
+=====================================================================
+Found a 71 line (132 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+// <--
+    };
+=====================================================================
+Found a 5 line (132 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 6 line (132 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+	static const sal_Char aDigits[64]
+		= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+			'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+			'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+			'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+			'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 24 line (132 tokens) duplication in the following files: 
+Starting at line 960 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 1047 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+int Hunspell::suggest_pos_stems(char*** slst, const char * word)
+{
+  char cw[MAXWORDUTF8LEN + 4];
+  char wspace[MAXWORDUTF8LEN + 4];
+  if (! pSMgr) return 0;
+  int wl = strlen(word);
+  if (utf8) {
+    if (wl >= MAXWORDUTF8LEN) return 0;
+  } else {
+    if (wl >= MAXWORDLEN) return 0;
+  }
+  int captype = 0;
+  int abbv = 0;
+  wl = cleanword(cw, word, &captype, &abbv);
+  if (wl == 0) return 0;
+  
+  int ns = 0; // ns=0 = normalized input
+
+  *slst = NULL; // HU, nsug in pSMgr->suggest
+  
+  switch(captype) {
+     case HUHCAP:
+     case NOCAP:   { 
+                     ns = pSMgr->suggest_pos_stems(slst, cw, ns);
+=====================================================================
+Found a 16 line (132 tokens) duplication in the following files: 
+Starting at line 1569 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1984 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+                    continue;
+            }
+
+            // check compoundmiddle flag in suffix and prefix
+            if ((rv) && !checked_prefix && (wordnum==0) && compoundmiddle && !hu_mov_rule &&
+                ((pfx && ((PfxEntry*)pfx)->getCont() &&
+                    TESTAFF(((PfxEntry*)pfx)->getCont(), compoundmiddle, 
+                        ((PfxEntry*)pfx)->getContLen())) ||
+                (sfx && ((SfxEntry*)sfx)->getCont() &&
+                    TESTAFF(((SfxEntry*)sfx)->getCont(), compoundmiddle, 
+                        ((SfxEntry*)sfx)->getContLen())))) {
+                    rv = NULL;
+            }	    
+
+	// check forbiddenwords
+	if ((rv) && (rv->astr) && TESTAFF(rv->astr, forbiddenword, rv->alen)) continue;
+=====================================================================
+Found a 71 line (132 tokens) duplication in the following files: 
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+// <--
+    };
+=====================================================================
+Found a 7 line (132 tokens) duplication in the following files: 
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+
+    10,    11,    12,    13,    14,    -1,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
+    -1,    31,    32,    33,    -1,    35,    -1,    -1,    -1,    39,
+     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+    13,    14,    -1,    -1,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    -1,    -1,    29,    -1,    31,    32,
+    33,    -1,    35,    -1,    -1,    38,     3,     4,     5,     6,
+=====================================================================
+Found a 33 line (132 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/attributes.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/xmlaccelcfg.cxx
+
+	::std::vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 24 line (132 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/scrollbar.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/spinbutton.cxx
+
+	static ::frm::OMultiInstanceAutoRegistration< ::frm::OSpinButtonModel >   aRegisterModel;
+}
+
+//........................................................................
+namespace frm
+{
+//........................................................................
+
+    using namespace ::com::sun::star::uno;
+    using namespace ::com::sun::star::beans;
+    using namespace ::com::sun::star::form;
+    using namespace ::com::sun::star::awt;
+    using namespace ::com::sun::star::lang;
+    using namespace ::com::sun::star::util;
+    using namespace ::com::sun::star::io;
+    using namespace ::com::sun::star::form::binding;
+
+    //====================================================================
+	//= OSpinButtonModel
+	//====================================================================
+    // implemented elsewhere
+    Any translateExternalDoubleToControlIntValue( 
+        const Reference< XValueBinding >& _rxBinding, const Reference< XPropertySet >& _rxProperties,
+        const ::rtl::OUString& _rMinValueName, const ::rtl::OUString& _rMaxValueName );
+=====================================================================
+Found a 6 line (132 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+	static const sal_Char aDigits[64]
+		= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+			'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+			'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+			'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+			'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 71 line (132 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+// <--
+    };
+=====================================================================
+Found a 5 line (132 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 6 line (132 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+	static const sal_Char aDigits[64]
+		= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+			'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+			'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+			'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+			'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 22 line (132 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/plugin/base/context.cxx
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/plugin/base/context.cxx
+
+            Sequence< ::com::sun::star::beans::PropertyValue > aArgs( aValues, 2 );
+            Reference< ::com::sun::star::lang::XComponent >  xComp =
+                xLoader->loadComponentFromURL(
+                                              url,
+                                              target,
+                                              ::com::sun::star::frame::FrameSearchFlag::PARENT          |
+                                              ::com::sun::star::frame::FrameSearchFlag::SELF            |
+                                              ::com::sun::star::frame::FrameSearchFlag::CHILDREN        |
+                                              ::com::sun::star::frame::FrameSearchFlag::SIBLINGS        |
+                                              ::com::sun::star::frame::FrameSearchFlag::TASKS           |
+                                              ::com::sun::star::frame::FrameSearchFlag::CREATE,
+                                              aArgs
+                                              );
+        }
+        catch( ... )
+        {
+            throw ::com::sun::star::plugin::PluginException();
+        }
+	}
+}
+
+void XPluginContext_Impl::postURLNotify(const Reference< ::com::sun::star::plugin::XPlugin > & plugin, const ::rtl::OUString& url, const ::rtl::OUString& target, const Sequence< sal_Int8 >& buf, sal_Bool file, const Reference< ::com::sun::star::lang::XEventListener > & listener )
+=====================================================================
+Found a 23 line (132 tokens) duplication in the following files: 
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/pages.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/license.cxx
+
+    aPBAccept.Disable();
+
+    // load license text
+    File aLicenseFile(aLicensePath);
+    if ( aLicenseFile.open(OpenFlag_Read) == FileBase::E_None)
+    {
+        DirectoryItem d;
+        DirectoryItem::get(aLicensePath, d);
+        FileStatus fs(FileStatusMask_FileSize);
+        d.getFileStatus(fs);
+        sal_uInt64 nBytesRead = 0;
+        sal_uInt64 nPosition = 0;
+        sal_uInt32 nBytes = (sal_uInt32)fs.getFileSize();
+        sal_Char *pBuffer = new sal_Char[nBytes];
+        // FileBase RC r = FileBase::E_None;
+        while (aLicenseFile.read(pBuffer+nPosition, nBytes-nPosition, nBytesRead) == FileBase::E_None 
+            && nPosition + nBytesRead < nBytes)
+        {
+            nPosition += nBytesRead;
+        }
+        OUString aLicenseString(pBuffer, nBytes, RTL_TEXTENCODING_UTF8, 
+                OSTRING_TO_OUSTRING_CVTFLAGS | RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE);
+        delete[] pBuffer;    
+=====================================================================
+Found a 30 line (132 tokens) duplication in the following files: 
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/FreeReference/FreeReference.test.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/Map/Map.test.cxx
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
+
+	if (!s_env.is())
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
+		return;
+	}
+
+	rtl::OUString reason;
+	int valid = s_env.isValid(&reason);
+
+	if (valid)
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+	else
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: "));
+		s_comment += reason;
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+	}
+}
+
+static void s_callee_out(rtl_uString *  pMethod_name)
+{
+	rtl::OUString method_name(pMethod_name);
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\""));
+	s_comment += method_name;
+
+	s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
+=====================================================================
+Found a 12 line (132 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+
+test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									 sal_Int16& nShort, sal_uInt16& nUShort,
+									 sal_Int32& nLong, sal_uInt32& nULong,
+									 sal_Int64& nHyper, sal_uInt64& nUHyper,
+									 float& fFloat, double& fDouble,
+									 test::TestEnum& eEnum, rtl::OUString& rStr,
+									 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									 ::com::sun::star::uno::Any& rAny,
+									 ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									 test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+=====================================================================
+Found a 11 line (132 tokens) duplication in the following files: 
+Starting at line 228 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+
+test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									 sal_Int16& nShort, sal_uInt16& nUShort,
+									 sal_Int32& nLong, sal_uInt32& nULong,
+									 sal_Int64& nHyper, sal_uInt64& nUHyper,
+									 float& fFloat, double& fDouble,
+									 test::TestEnum& eEnum, rtl::OUString& rStr,
+									 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									 ::com::sun::star::uno::Any& rAny,
+									 ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									 test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 11 line (132 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+
+test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									  sal_Int16& nShort, sal_uInt16& nUShort,
+									  sal_Int32& nLong, sal_uInt32& nULong,
+									  sal_Int64& nHyper, sal_uInt64& nUHyper,
+									  float& fFloat, double& fDouble,
+									  test::TestEnum& eEnum, rtl::OUString& rStr,
+									  ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									  ::com::sun::star::uno::Any& rAny,
+									  ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									  test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 12 line (132 tokens) duplication in the following files: 
+Starting at line 1165 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+Starting at line 1253 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+
+                rState.clip = ::basegfx::tools::correctOrientations( rState.clip );
+                aClipPoly = ::basegfx::tools::correctOrientations( aClipPoly );
+
+                // intersect the two poly-polygons
+                rState.clip = ::basegfx::tools::removeAllIntersections(rState.clip);
+                rState.clip = ::basegfx::tools::removeNeutralPolygons(rState.clip, sal_True);
+                aClipPoly = ::basegfx::tools::removeAllIntersections(aClipPoly);
+                aClipPoly = ::basegfx::tools::removeNeutralPolygons(aClipPoly, sal_True);
+                rState.clip.append(aClipPoly);
+                rState.clip = ::basegfx::tools::removeAllIntersections(rState.clip);
+                rState.clip = ::basegfx::tools::removeNeutralPolygons(rState.clip, sal_False);
+            }
+=====================================================================
+Found a 17 line (132 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HViews.cxx
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YViews.cxx
+
+	OTables* pTables = static_cast<OTables*>(static_cast<OMySQLCatalog&>(m_rParent).getPrivateTables());
+	if ( pTables )
+	{
+		::rtl::OUString sName = ::dbtools::composeTableName( m_xMetaData, descriptor, ::dbtools::eInDataManipulation, false, false, false );
+		pTables->appendNew(sName);
+	}
+}
+// -----------------------------------------------------------------------------
+void OViews::appendNew(const ::rtl::OUString& _rsNewTable)
+{
+	insertElement(_rsNewTable,NULL);
+	// notify our container listeners
+	ContainerEvent aEvent(static_cast<XContainer*>(this), makeAny(_rsNewTable), Any(), Any());
+	OInterfaceIteratorHelper aListenerLoop(m_aContainerListeners);
+	while (aListenerLoop.hasMoreElements())
+		static_cast<XContainerListener*>(aListenerLoop.next())->elementInserted(aEvent);
+}
+=====================================================================
+Found a 25 line (132 tokens) duplication in the following files: 
+Starting at line 2772 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 1742 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+    if( nPos == -1 )
+        return OString();
+
+	// scoped name only if the namespace is not equal
+	if (scope.lastIndexOf('/') > 0)
+	{
+		OString tmpScp(scope.copy(0, scope.lastIndexOf('/')));
+		OString tmpScp2(type.copy(0, nPos));
+
+		if (tmpScp == tmpScp2)
+			return OString();
+	}
+
+    OString aScope( type.copy( 0, nPos ) );
+	OStringBuffer tmpBuf(aScope.getLength()*2);
+
+    nPos = 0;
+    do
+	{
+		tmpBuf.append("::");
+		tmpBuf.append(aScope.getToken(0, '/', nPos));
+	} while( nPos != -1 );
+
+	return tmpBuf.makeStringAndClear();
+}
+=====================================================================
+Found a 24 line (132 tokens) duplication in the following files: 
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbamaker.cxx
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdbmaker.cxx
+
+		cleanUp(sal_True);
+		exit(99);
+	}
+
+	RegistryKey	typeKey = typeMgr.getTypeKey(typeName);
+	RegistryKeyNames subKeys;
+	
+	if (typeKey.getKeyNames(OUString(), subKeys))
+		return sal_False;
+	
+	OString tmpName;
+	for (sal_uInt32 i=0; i < subKeys.getLength(); i++)
+	{
+		tmpName = OUStringToOString(subKeys.getElement(i), RTL_TEXTENCODING_UTF8);
+
+		if (pOptions->isValid("-B"))
+			tmpName = tmpName.copy(tmpName.indexOf('/', 1) + 1);
+		else
+			tmpName = tmpName.copy(1);
+
+		if (bFullScope)
+		{
+			if (!produceAllTypes(tmpName, typeMgr, typeDependencies, pOptions, sal_True, 
+								 o, regKey, filterTypes2))
+=====================================================================
+Found a 18 line (132 tokens) duplication in the following files: 
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/StockChartTypeTemplate.cxx
+
+        Reference< chart2::XChartType > xCandleStickChartType;
+        Reference< chart2::XChartType > xLineChartType;
+        sal_Int32 nNumberOfChartTypes = 0;
+
+        Reference< XCoordinateSystemContainer > xCooSysCnt(
+            xDiagram, uno::UNO_QUERY_THROW );
+        Sequence< Reference< XCoordinateSystem > > aCooSysSeq(
+            xCooSysCnt->getCoordinateSystems());
+        for( sal_Int32 i=0; i<aCooSysSeq.getLength(); ++i )
+        {
+            Reference< XChartTypeContainer > xCTCnt( aCooSysSeq[i], uno::UNO_QUERY_THROW );
+            Sequence< Reference< XChartType > > aChartTypeSeq( xCTCnt->getChartTypes());
+            for( sal_Int32 j=0; j<aChartTypeSeq.getLength(); ++j )
+            {
+                if( aChartTypeSeq[j].is())
+                {
+                    ++nNumberOfChartTypes;
+                    if( nNumberOfChartTypes > 3 )
+=====================================================================
+Found a 18 line (132 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+
+    Reference< beans::XPropertySet > xPropSet(0);
+
+    Sequence< Reference< chart2::XChartType > > aTypes(
+            ::chart::DiagramHelper::getChartTypesFromDiagram( m_spChart2ModelContact->getChart2Diagram() ) );
+    for( sal_Int32 nN = 0; nN < aTypes.getLength(); nN++ )
+    {
+        Reference< chart2::XChartType > xType( aTypes[nN] );
+        if( xType->getChartType().equals(CHART2_SERVICE_NAME_CHARTTYPE_CANDLESTICK) )
+        {
+            Reference< beans::XPropertySet > xTypeProps( aTypes[nN], uno::UNO_QUERY );
+            if(xTypeProps.is())
+            {
+                xTypeProps->getPropertyValue( m_aPropertySetName ) >>= xPropSet;
+            }
+        }
+    }
+    if(xPropSet.is())
+    {
+=====================================================================
+Found a 27 line (132 tokens) duplication in the following files: 
+Starting at line 382 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+
+                            {
+                                for( int x=0; x<aDestBmpSize.Width(); ++x )
+                                {
+                                    ::basegfx::B2DPoint aPoint(x,y);
+                                    aPoint *= aTransform;
+
+                                    const int nSrcX( ::basegfx::fround( aPoint.getX() ) );
+                                    const int nSrcY( ::basegfx::fround( aPoint.getY() ) );
+                                    if( nSrcX < 0 || nSrcX >= aBmpSize.Width() ||
+                                        nSrcY < 0 || nSrcY >= aBmpSize.Height() )
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, BitmapColor(255) );
+                                    }
+                                    else
+                                    {
+                                        // modulate alpha with
+                                        // nAlphaModulation. This is a
+                                        // little bit verbose, formula
+                                        // is 255 - 255*nAlphaModulation
+                                        // (invert 'alpha' pixel value, 
+                                        // to get the standard alpha 
+                                        // channel behaviour)
+                                        pAlphaWriteAccess->SetPixel( y, x, 
+                                                                     BitmapColor( 
+                                                                         255U - 
+                                                                         static_cast<BYTE>(
+                                                                             nAlphaModulation*255.0
+=====================================================================
+Found a 36 line (132 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if (pCppReturn) // has complex return
+		{
+			if (pUnoReturn != pCppReturn) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if (pReturnTypeDescr)
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+
+
+//==================================================================================================
+static typelib_TypeClass cpp_mediate(
+=====================================================================
+Found a 22 line (132 tokens) duplication in the following files: 
+Starting at line 5665 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 5691 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+									nNr2 = 1;
+                                if ( ValueOK( aUId, MethodString( nMethodId ),nNr2,pThisEntry->ItemCount() ) )
+                                {
+                                    SvLBoxString* pItem = NULL;
+							        if ( ! (nParams & PARAM_USHORT_2) )
+								        pItem = (SvLBoxString*)pThisEntry->GetFirstItem( SV_ITEM_ID_LBOXSTRING );
+                                    else
+                                    {
+                                        SvLBoxItem *pMyItem = pThisEntry->GetItem( nNr2-1 );
+                                        if ( pMyItem->IsA() == SV_ITEM_ID_LBOXSTRING )
+                                            pItem = (SvLBoxString*)pMyItem;
+                                    }
+
+        						    if ( pItem )
+                                        pRet->GenReturn ( RET_Value, aUId, pItem->GetText() );
+                                    else
+// i79413                               ReportError( aUId, GEN_RES_STR1( S_NO_LIST_BOX_STRING, MethodString( nMethodId ) ) );
+                                        ReportError( aUId, CUniString( "String does not exist in ($Arg1)" ).Append( ArgString( 1, MethodString( nMethodId ) ) ) );
+                                }
+							}
+							break;
+						case M_IsChecked :
+=====================================================================
+Found a 15 line (132 tokens) duplication in the following files: 
+Starting at line 868 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 3686 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+	pCmdIn->Read( nMethodId );
+	pCmdIn->Read( nParams );
+
+	if( nParams & PARAM_USHORT_1 )	pCmdIn->Read( nNr1 );
+	if( nParams & PARAM_USHORT_2 )	pCmdIn->Read( nNr2 );
+	if( nParams & PARAM_USHORT_3 )	pCmdIn->Read( nNr3 );
+	if( nParams & PARAM_USHORT_4 )	pCmdIn->Read( nNr4 );
+	if( nParams & PARAM_ULONG_1 )	pCmdIn->Read( nLNr1 );
+	if( nParams & PARAM_STR_1 )		pCmdIn->Read( aString1 );
+	if( nParams & PARAM_STR_2 )		pCmdIn->Read( aString2 );
+	if( nParams & PARAM_BOOL_1 )	pCmdIn->Read( bBool1 );
+	if( nParams & PARAM_BOOL_2 )	pCmdIn->Read( bBool2 );
+
+#if OSL_DEBUG_LEVEL > 1
+	m_pDbgWin->AddText( "Reading Control: UId: " );
+=====================================================================
+Found a 6 line (132 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/kernel/namesort.cxx
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/ary/kernel/namesort.cxx
+
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+        
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255,
+      255,255,255,255, 255,255,255,255,     255,255,255,255, 255,255,255,255
+=====================================================================
+Found a 21 line (131 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[3];
+=====================================================================
+Found a 21 line (131 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr++;
+
+                        weight = (weight_array[x_hr] * 
+=====================================================================
+Found a 16 line (131 tokens) duplication in the following files: 
+Starting at line 2186 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 2278 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+		ImplInitFillColor();
+
+		// create forward mapping tables
+		for( nX = 0L; nX <= nSrcWidth; nX++ )
+			pMapX[ nX ] = aDestPt.X() + FRound( (double) aDestSz.Width() * nX / nSrcWidth );
+
+		for( nY = 0L; nY <= nSrcHeight; nY++ )
+			pMapY[ nY ] = aDestPt.Y() + FRound( (double) aDestSz.Height() * nY / nSrcHeight );
+    
+        // walk through all rectangles of mask
+        Region          aWorkRgn( aMask.CreateRegion( COL_BLACK, Rectangle( Point(), aMask.GetSizePixel() ) ) );
+		ImplRegionInfo	aInfo;
+		BOOL            bRgnRect = aWorkRgn.ImplGetFirstRect( aInfo, nWorkX, nWorkY, nWorkWidth, nWorkHeight );
+
+		while( bRgnRect )
+		{
+=====================================================================
+Found a 40 line (131 tokens) duplication in the following files: 
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+
+						const Color&	rCol = mpPal[ nIndex ];
+
+						// 0: Transparent; >0: Non-Transparent
+						if( !rCol.GetTransparency() )
+						{
+							pMskAcc->SetPixel( nY, nX, aMskWhite );
+							mbTrans = TRUE;
+						}
+						else
+						{
+							aCol.SetRed( rCol.GetRed() );
+							aCol.SetGreen( rCol.GetGreen() );
+							aCol.SetBlue( rCol.GetBlue() );
+							pBmpAcc->SetPixel( nY, nX, aCol );
+						}
+					}
+				}
+
+				bDataChanged = sal_True;
+			}
+			else
+			{
+				DBG_ERROR( "Producer format error!" );
+				maChangedRect.SetEmpty();
+			}
+		}
+	}
+	else
+		maChangedRect.SetEmpty();
+
+	maBitmap.ReleaseAccess( pBmpAcc );
+	maMask.ReleaseAccess( pMskAcc );
+
+	if( bDataChanged )
+		DataChanged();
+}
+
+// -----------------------------------------------------------------------------
+
+void ImageConsumer::Completed( sal_uInt32 nStatus /*, ImageProducer& rProducer */ )
+=====================================================================
+Found a 29 line (131 tokens) duplication in the following files: 
+Starting at line 2218 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 3290 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+void CheckBox::ImplInitSettings( BOOL bFont,
+                                 BOOL bForeground, BOOL bBackground )
+{
+    const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+
+    if ( bFont )
+    {
+        Font aFont = rStyleSettings.GetRadioCheckFont();
+        if ( IsControlFont() )
+            aFont.Merge( GetControlFont() );
+        SetZoomedPointFont( aFont );
+    }
+
+    if ( bForeground || bFont )
+    {
+        Color aColor;
+        if ( IsControlForeground() )
+            aColor = GetControlForeground();
+        else
+            aColor = rStyleSettings.GetRadioCheckTextColor();
+        SetTextColor( aColor );
+        SetTextFillColor();
+    }
+
+    if ( bBackground )
+    {
+        Window* pParent = GetParent();
+        if ( !IsControlBackground() &&
+            (pParent->IsChildTransparentModeEnabled() || IsNativeControlSupported( CTRL_CHECKBOX, PART_ENTIRE_CONTROL ) ) )
+=====================================================================
+Found a 17 line (131 tokens) duplication in the following files: 
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/envelp/labelcfg.cxx
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/envelp/labelcfg.cxx
+
+	OUString sFoundNode;
+	for(sal_Int32 nLabel = 0; nLabel < aLabels.getLength(); nLabel++)
+	{
+		OUString sPrefix(sManufacturer);
+		sPrefix += C2U("/");
+		sPrefix += pLabels[nLabel];
+		sPrefix += C2U("/");
+		Sequence<OUString> aProperties(1);
+		aProperties.getArray()[0] = sPrefix;
+		aProperties.getArray()[0] += C2U("Name");
+		Sequence<Any>	aValues = GetProperties(aProperties);
+		const Any* pValues = aValues.getConstArray();
+		if(pValues[0].hasValue())
+		{
+			OUString sTmp;
+			pValues[0] >>= sTmp;
+			if(rType == sTmp)
+=====================================================================
+Found a 25 line (131 tokens) duplication in the following files: 
+Starting at line 3936 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4070 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+	_HTMLAttrContext *pCntxt = new _HTMLAttrContext( nToken, nTxtColl, aClass );
+
+	// Styles parsen (zu Class siehe auch NewPara)
+	if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
+	{
+		SfxItemSet aItemSet( pDoc->GetAttrPool(), pCSS1Parser->GetWhichMap() );
+		SvxCSS1PropertyInfo aPropInfo;
+
+		if( ParseStyleOptions( aStyle, aId, aEmptyStr, aItemSet, aPropInfo, &aLang, &aDir ) )
+		{
+			ASSERT( !aClass.Len() || !pCSS1Parser->GetClass( aClass ),
+					"Class wird nicht beruecksichtigt" );
+			DoPositioning( aItemSet, aPropInfo, pCntxt );
+			InsertAttrs( aItemSet, aPropInfo, pCntxt );
+		}
+	}
+
+	if( SVX_ADJUST_END != eParaAdjust )
+        InsertAttr( &aAttrTab.pAdjust, SvxAdjustItem(eParaAdjust, RES_PARATR_ADJUST), pCntxt );
+
+	// udn auf den Stack packen
+	PushContext( pCntxt );
+
+	// und die Vorlage oder deren Attribute setzen
+	SetTxtCollAttrs( pCntxt );
+=====================================================================
+Found a 37 line (131 tokens) duplication in the following files: 
+Starting at line 4367 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmltab.cxx
+Starting at line 4546 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmltab.cxx
+
+		SaveState( 0 );
+	}
+
+	if( !nToken )
+		nToken = GetNextToken();	// naechstes Token
+
+	sal_Bool bDone = sal_False;
+	while( (IsParserWorking() && !bDone) || bPending )
+	{
+		SaveState( nToken );
+
+		nToken = FilterToken( nToken );
+
+		ASSERT( pPendStack || !bCallNextToken ||
+				pCurTable->GetContext() || pCurTable->HasParentSection(),
+				"Wo ist die Section gebieben?" );
+		if( !pPendStack && bCallNextToken &&
+			(pCurTable->GetContext() || pCurTable->HasParentSection()) )
+		{
+			// NextToken direkt aufrufen (z.B. um den Inhalt von
+			// Floating-Frames oder Applets zu ignorieren)
+			NextToken( nToken );
+		}
+		else switch( nToken )
+		{
+		case HTML_TABLE_ON:
+			if( !pCurTable->GetContext()  )
+			{
+				SkipToken( -1 );
+				bDone = sal_True;
+			}
+//			else
+//			{
+//				NextToken( nToken );
+//			}
+			break;
+		case HTML_THEAD_ON:
+=====================================================================
+Found a 19 line (131 tokens) duplication in the following files: 
+Starting at line 1943 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotext.cxx
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+
+            const uno::Sequence< beans::PropertyValues > aDebugCurrentRow = aCellProperties[nDebugRow];
+            sal_Int32 nDebugCells = aDebugCurrentRow.getLength();
+            (void) nDebugCells;
+            for( sal_Int32  nDebugCell = 0; nDebugCell < nDebugCells; ++nDebugCell)
+            {
+                const uno::Sequence< beans::PropertyValue >& aDebugCellProperties = aDebugCurrentRow[nDebugCell];
+                sal_Int32 nDebugCellProperties = aDebugCellProperties.getLength();
+                for( sal_Int32  nDebugProperty = 0; nDebugProperty < nDebugCellProperties; ++nDebugProperty)
+                {
+                    const ::rtl::OUString sName = aDebugCellProperties[nDebugProperty].Name;
+                    sNames += sName;
+                    sNames += ::rtl::OUString('-');
+                }
+                sNames += ::rtl::OUString('+');
+            }
+            sNames += ::rtl::OUString('|');
+        }
+        (void)sNames;
+    }
+=====================================================================
+Found a 17 line (131 tokens) duplication in the following files: 
+Starting at line 3370 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/tabfrm.cxx
+Starting at line 2147 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/wsfrm.cxx
+
+	if( pNew && RES_ATTRSET_CHG == pNew->Which() )
+	{
+		SfxItemIter aNIter( *((SwAttrSetChg*)pNew)->GetChgSet() );
+		SfxItemIter aOIter( *((SwAttrSetChg*)pOld)->GetChgSet() );
+		SwAttrSetChg aOldSet( *(SwAttrSetChg*)pOld );
+		SwAttrSetChg aNewSet( *(SwAttrSetChg*)pNew );
+		while( TRUE )
+		{
+			_UpdateAttr( (SfxPoolItem*)aOIter.GetCurItem(),
+						 (SfxPoolItem*)aNIter.GetCurItem(), nInvFlags,
+						 &aOldSet, &aNewSet );
+			if( aNIter.IsAtEnd() )
+				break;
+			aNIter.NextItem();
+			aOIter.NextItem();
+		}
+		if ( aOldSet.Count() || aNewSet.Count() )
+=====================================================================
+Found a 27 line (131 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoedge.cxx
+Starting at line 1921 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+	const bool bIsLineDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTLINE));
+
+	// prepare ItemSet of this object
+	const SfxItemSet& rSet = GetObjectItemSet();
+
+	// perepare ItemSet to avoid old XOut line drawing
+	SfxItemSet aEmptySet(*rSet.GetPool());
+	aEmptySet.Put(XLineStyleItem(XLINE_NONE));
+	aEmptySet.Put(XFillStyleItem(XFILL_NONE));
+
+	// #b4899532# if not filled but fill draft, avoid object being invisible in using
+	// a hair linestyle and COL_LIGHTGRAY
+    SfxItemSet aItemSet(rSet);
+	if(bIsFillDraft && XLINE_NONE == ((const XLineStyleItem&)(rSet.Get(XATTR_LINESTYLE))).GetValue())
+	{
+		ImpPrepareLocalItemSetForDraftLine(aItemSet);
+	}
+
+	// #103692# prepare ItemSet for shadow fill attributes
+    SfxItemSet aShadowSet(aItemSet);
+
+	// prepare line geometry
+	::std::auto_ptr< SdrLineGeometry > pLineGeometry( ImpPrepareLineGeometry(rXOut, aItemSet, bIsLineDraft) );
+
+	// Shadows
+	if (!bHideContour && ImpSetShadowAttributes(aItemSet, aShadowSet))
+	{
+=====================================================================
+Found a 33 line (131 tokens) duplication in the following files: 
+Starting at line 1235 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdmodel.cxx
+Starting at line 1229 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+			rStr = UniString();
+			rStr += sal_Unicode('m');
+			break;
+		}
+		case FUNIT_KM     :
+		{
+			sal_Char aText[] = "km";
+			rStr = UniString(aText, sizeof(aText-1));
+			break;
+		}
+
+		// Inch
+		case FUNIT_TWIP   :
+		{
+			sal_Char aText[] = "twip";
+			rStr = UniString(aText, sizeof(aText-1));
+			break;
+		}
+		case FUNIT_POINT  :
+		{
+			sal_Char aText[] = "pt";
+			rStr = UniString(aText, sizeof(aText-1));
+			break;
+		}
+		case FUNIT_PICA   :
+		{
+			sal_Char aText[] = "pica";
+			rStr = UniString(aText, sizeof(aText-1));
+			break;
+		}
+		case FUNIT_INCH   :
+		{
+			rStr = UniString();
+=====================================================================
+Found a 18 line (131 tokens) duplication in the following files: 
+Starting at line 4750 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 4819 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x6000, 0x40c, 0x40e, 3600 },			//410
+	{ 0x2001, 0x40d, 1, 2 },				//411 1/2 width
+	{ 0x6000, 0x407, 0x411, 0 },			//412 top center glue xpos
+	{ 0x8000, 21600, 0, 0x412 },			//413 bottom center glue xpos
+	{ 0x2001, 0x405, 1, 2 },				//414 left glue x pos
+	{ 0x8000, 21600, 0, 0x414 },			//415 right glue x pos
+	{ 0x2001, 0x400, 2, 1 },				//416 y1 (textbox)
+	{ 0x8000, 21600, 0, 0x416 },			//417 y2 (textbox)
+
+	{ 0x8000, 21600, 0, 0x407 },			//418 p2
+
+	{ 0x8000, 21600, 0, 0x40f },			//419 c
+	{ 0x6000, 0x401, 0x408, 0 },			//41a
+
+	{ 0x8000, 21600, 0, 0x410 },			//41b c
+	{ 0xa000, 0x401, 0, 0x408 },			//41c 
+
+	{ 0x8000, 21600, 0, 0x40c }, 			//41d p3
+=====================================================================
+Found a 35 line (131 tokens) duplication in the following files: 
+Starting at line 530 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmsrcimp.cxx
+Starting at line 733 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmsrcimp.cxx
+
+        if (bFound) // immer noch ?
+            break;
+
+        // naechstes Feld (implizit naechster Datensatz, wenn noetig)
+        if (!MoveField(nFieldPos, iterFieldLoop, iterBegin, iterEnd))
+        {   // beim Bewegen auf das naechste Feld ging was schief ... weitermachen ist nicht drin, da das naechste Mal genau
+            // das selbe bestimmt wieder schief geht, also Abbruch (ohne Fehlermeldung, von der erwarte ich, dass sie im Move
+            // angezeigt wurde)
+            // vorher aber noch, damit das Weitersuchen an der aktuellen Position weitermacht :
+            try { m_aPreviousLocBookmark = m_xSearchCursor.getBookmark(); }
+            catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); }
+            m_iterPreviousLocField = iterFieldLoop;
+            // und wech
+            return SR_ERROR;
+        }
+
+        Any aCurrentBookmark;
+        try { aCurrentBookmark = m_xSearchCursor.getBookmark(); }
+        catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); return SR_ERROR; }
+        bMovedAround = EQUAL_BOOKMARKS(aStartMark, aCurrentBookmark) && (iterFieldLoop == iterInitialField);
+
+        if (nFieldPos == 0)
+            // das heisst, ich habe mich auf einen neuen Datensatz bewegt
+            PropagateProgress(bMovedAround);
+                // if we moved to the starting position we don't have to propagate an 'overflow' message
+                // FS - 07.12.99 - 68530
+
+        // abbrechen gefordert ?
+        if (CancelRequested())
+            return SR_CANCELED;
+
+    } while (!bMovedAround);
+
+    return bFound ? SR_FOUND : SR_NOTFOUND;
+}
+=====================================================================
+Found a 18 line (131 tokens) duplication in the following files: 
+Starting at line 1546 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/chardlg.cxx
+Starting at line 2060 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/chardlg.cxx
+
+            m_aFontColorLB.SetNoSelection();
+			break;
+
+		case SFX_ITEM_DEFAULT:
+		case SFX_ITEM_SET:
+		{
+			SvxFont& rFont = GetPreviewFont();
+            SvxFont& rCJKFont = GetPreviewCJKFont();
+			SvxFont& rCTLFont = GetPreviewCTLFont();
+
+			const SvxColorItem& rItem = (SvxColorItem&)rSet.Get( nWhich );
+			Color aColor = rItem.GetValue();
+            rFont.SetColor( aColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aColor );
+            rCJKFont.SetColor( aColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aColor );
+			rCTLFont.SetColor( aColor.GetColor() == COL_AUTO ? Color(COL_BLACK) : aColor );
+
+			m_aPreviewWin.Invalidate();
+            USHORT nSelPos = m_aFontColorLB.GetEntryPos( aColor );
+=====================================================================
+Found a 11 line (131 tokens) duplication in the following files: 
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 708 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									  sal_Int16& nShort, sal_uInt16& nUShort,
+									  sal_Int32& nLong, sal_uInt32& nULong,
+									  sal_Int64& nHyper, sal_uInt64& nUHyper,
+									  float& fFloat, double& fDouble,
+									  test::TestEnum& eEnum, rtl::OUString& rStr,
+									  ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									  ::com::sun::star::uno::Any& rAny,
+									  ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									  test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 21 line (131 tokens) duplication in the following files: 
+Starting at line 474 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/cfgitem.cxx
+Starting at line 712 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/cfgitem.cxx
+
+    Sequence< OUString > aNames = lcl_GetFontPropertyNames();
+	INT32 nProps = aNames.getLength();
+
+	OUString aDelim( OUString::valueOf( (sal_Unicode) '/' ) );
+	OUString *pName = aNames.getArray();
+	for (INT32 i = 0;  i < nProps;  ++i)
+	{
+		OUString &rName = pName[i];
+		OUString aTmp( rName );
+		rName = rBaseNode;
+		rName += aDelim;
+		rName += rSymbolName;
+		rName += aDelim;
+		rName += aTmp;
+	}
+
+    const Sequence< Any > aValues = ((SmMathConfig*) this)->GetProperties( aNames );
+
+	if (nProps  &&  aValues.getLength() == nProps)
+	{
+		const Any * pValue = aValues.getConstArray();
+=====================================================================
+Found a 33 line (131 tokens) duplication in the following files: 
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewsb.cxx
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvs2.cxx
+
+			SvxFieldItem* pFieldItem = 0;
+
+			switch( nSId )
+			{
+				case SID_INSERT_FLD_DATE_FIX:
+					pFieldItem = new SvxFieldItem(
+                        SvxDateField( Date(), SVXDATETYPE_FIX ), EE_FEATURE_FIELD );
+				break;
+
+				case SID_INSERT_FLD_DATE_VAR:
+                    pFieldItem = new SvxFieldItem( SvxDateField(), EE_FEATURE_FIELD );
+				break;
+
+				case SID_INSERT_FLD_TIME_FIX:
+					pFieldItem = new SvxFieldItem(
+                        SvxExtTimeField( Time(), SVXTIMETYPE_FIX ), EE_FEATURE_FIELD );
+				break;
+
+				case SID_INSERT_FLD_TIME_VAR:
+                    pFieldItem = new SvxFieldItem( SvxExtTimeField(), EE_FEATURE_FIELD );
+				break;
+
+				case SID_INSERT_FLD_AUTHOR:
+				{
+                    SvtUserOptions aUserOptions;
+                    pFieldItem = new SvxFieldItem(
+                            SvxAuthorField(
+                                aUserOptions.GetFirstName(), aUserOptions.GetLastName(), aUserOptions.GetID() )
+                                , EE_FEATURE_FIELD );
+				}
+				break;
+
+				case SID_INSERT_FLD_PAGE:
+=====================================================================
+Found a 17 line (131 tokens) duplication in the following files: 
+Starting at line 1761 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output.cxx
+Starting at line 2047 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output.cxx
+
+			pDev->SetLineColor( rColor );
+			if (bTop && bBottom && bLeft && bRight)
+			{
+				pDev->SetFillColor();
+				pDev->DrawRect( Rectangle( nMinX, nMinY, nMaxX, nMaxY ) );
+			}
+			else
+			{
+				if (bTop)
+					pDev->DrawLine( Point( nMinX,nMinY ), Point( nMaxX,nMinY ) );
+				if (bBottom)
+					pDev->DrawLine( Point( nMinX,nMaxY ), Point( nMaxX,nMaxY ) );
+				if (bLeft)
+					pDev->DrawLine( Point( nMinX,nMinY ), Point( nMinX,nMaxY ) );
+				if (bRight)
+					pDev->DrawLine( Point( nMaxX,nMinY ), Point( nMaxX,nMaxY ) );
+			}
+=====================================================================
+Found a 22 line (131 tokens) duplication in the following files: 
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/cellsh1.cxx
+Starting at line 1249 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/cellsh1.cxx
+
+						if( IS_AVAILABLE( FID_INS_CELL_CONTENTS, &pItem ) )
+							aFlags = ((const SfxStringItem*)pItem)->GetValue();
+
+						aFlags.ToUpperAscii();
+						BOOL	bCont = TRUE;
+
+						for( xub_StrLen i=0 ; bCont && i<aFlags.Len() ; i++ )
+						{
+							switch( aFlags.GetChar(i) )
+							{
+								case 'A': // Alle
+								nFlags |= IDF_ALL;
+								bCont = FALSE; // nicht mehr weitermachen!
+								break;
+								case 'S': nFlags |= IDF_STRING;	break;
+								case 'V': nFlags |= IDF_VALUE; break;
+								case 'D': nFlags |= IDF_DATETIME; break;
+								case 'F': nFlags |= IDF_FORMULA; break;
+								case 'N': nFlags |= IDF_NOTE; break;
+								case 'T': nFlags |= IDF_ATTRIB; break;
+							}
+						}
+=====================================================================
+Found a 29 line (131 tokens) duplication in the following files: 
+Starting at line 721 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+Starting at line 1547 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+
+		pDoc->InsertRow( 0,nTab, MAXCOL,nTab, nNewEndRow+1, static_cast<SCSIZE>(nNewEndRow-aBlockEnd.Row()) );
+	}
+
+	//	Original Outline-Table
+
+	pDoc->SetOutlineTable( nTab, pUndoTable );
+
+	//	Original Spalten-/Zeilenstatus
+
+	if (pUndoDoc && pUndoTable)
+	{
+		SCCOLROW nStartCol;
+		SCCOLROW nStartRow;
+		SCCOLROW nEndCol;
+		SCCOLROW nEndRow;
+		pUndoTable->GetColArray()->GetRange( nStartCol, nEndCol );
+		pUndoTable->GetRowArray()->GetRange( nStartRow, nEndRow );
+
+        pUndoDoc->CopyToDocument( static_cast<SCCOL>(nStartCol), 0, nTab,
+                static_cast<SCCOL>(nEndCol), MAXROW, nTab, IDF_NONE, FALSE,
+                pDoc );
+		pUndoDoc->CopyToDocument( 0, nStartRow, nTab, MAXCOL, nEndRow, nTab, IDF_NONE, FALSE, pDoc );
+
+		pViewShell->UpdateScrollBars();
+	}
+
+	//	Original-Daten & Referenzen
+
+	ScUndoUtil::MarkSimpleBlock( pDocShell, 0, aBlockStart.Row(), nTab,
+=====================================================================
+Found a 22 line (131 tokens) duplication in the following files: 
+Starting at line 631 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlcelli.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlsubti.cxx
+
+		uno::Reference<sheet::XSheetCellRange> xMergeSheetCellRange (xMergeable, uno::UNO_QUERY);
+		uno::Reference<sheet::XSpreadsheet> xTable(xMergeSheetCellRange->getSpreadsheet());
+		uno::Reference<sheet::XSheetCellCursor> xMergeSheetCursor(xTable->createCursorByRange(xMergeSheetCellRange));
+		if (xMergeSheetCursor.is())
+		{
+			xMergeSheetCursor->collapseToMergedArea();
+			uno::Reference<sheet::XCellRangeAddressable> xMergeCellAddress (xMergeSheetCursor, uno::UNO_QUERY);
+			if (xMergeCellAddress.is())
+			{
+				aCellAddress = xMergeCellAddress->getRangeAddress();
+				if (aCellAddress.StartColumn == nCol && aCellAddress.EndColumn == nCol &&
+					aCellAddress.StartRow == nRow && aCellAddress.EndRow == nRow)
+					return sal_False;
+				else
+					return sal_True;
+			}
+		}
+	}
+	return sal_False;
+}
+
+void ScMyTables::UnMerge()
+=====================================================================
+Found a 22 line (131 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+Starting at line 952 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+
+			case 0x25: // Area Reference						[320 270]
+			{
+				UINT16			nRowFirst, nRowLast;
+				UINT16			nColFirst, nColLast;
+				SingleRefData	&rSRef1 = aCRD.Ref1;
+				SingleRefData	&rSRef2 = aCRD.Ref2;
+
+				aIn >> nRowFirst >> nRowLast >> nColFirst >> nColLast;
+
+				rSRef1.nRelTab = rSRef2.nRelTab = 0;
+				rSRef1.SetTabRel( TRUE );
+				rSRef2.SetTabRel( TRUE );
+				rSRef1.SetFlag3D( bRangeName );
+				rSRef2.SetFlag3D( bRangeName );
+
+                ExcRelToScRel8( nRowFirst, nColFirst, aCRD.Ref1, bRangeName );
+                ExcRelToScRel8( nRowLast, nColLast, aCRD.Ref2, bRangeName );
+
+				if( IsComplColRange( nColFirst, nColLast ) )
+					SetComplCol( aCRD );
+				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+					SetComplRow( aCRD );
+=====================================================================
+Found a 22 line (131 tokens) duplication in the following files: 
+Starting at line 585 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+Starting at line 1089 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+
+			case 0x25: // Area Reference						[320 270]
+			{
+				UINT16			nRowFirst, nRowLast;
+				UINT8			nColFirst, nColLast;
+				SingleRefData	&rSRef1 = aCRD.Ref1;
+				SingleRefData	&rSRef2 = aCRD.Ref2;
+
+				aIn >> nRowFirst >> nRowLast >> nColFirst >> nColLast;
+
+				rSRef1.nRelTab = rSRef2.nRelTab = 0;
+				rSRef1.SetTabRel( TRUE );
+				rSRef2.SetTabRel( TRUE );
+				rSRef1.SetFlag3D( bRangeName );
+				rSRef2.SetFlag3D( bRangeName );
+
+				ExcRelToScRel( nRowFirst, nColFirst, aCRD.Ref1, bRangeName );
+				ExcRelToScRel( nRowLast, nColLast, aCRD.Ref2, bRangeName );
+
+				if( IsComplColRange( nColFirst, nColLast ) )
+					SetComplCol( aCRD );
+				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+					SetComplRow( aCRD );
+=====================================================================
+Found a 26 line (131 tokens) duplication in the following files: 
+Starting at line 1925 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+Starting at line 2037 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+
+            if ( !nUserSubCount || !bHasChild )
+                nUserSubCount = 1;
+
+            ScDPSubTotalState aLocalSubState(rSubState);        // keep row state, modify column
+
+            long nMemberMeasure = nMeasure;
+            long nSubSize = pResultData->GetCountForMeasure(nMeasure);
+
+            for (long nUserPos=0; nUserPos<nUserSubCount; nUserPos++)   // including hidden "automatic"
+            {
+                if ( pChildDimension && nUserSubCount > 1 )
+                {
+                    const ScDPLevel* pForceLevel = pResultMember ? pResultMember->GetParentLevel() : NULL;
+                    aLocalSubState.nColSubTotalFunc = nUserPos;
+                    aLocalSubState.eColForce = lcl_GetForceFunc( pForceLevel, nUserPos );
+                }
+
+                for ( long nSubCount=0; nSubCount<nSubSize; nSubCount++ )
+                {
+                    if ( nMeasure == SC_DPMEASURE_ALL )
+                        nMemberMeasure = nSubCount;
+
+                    // update data...
+                    ScDPAggData* pAggData = GetAggData( nMemberMeasure, aLocalSubState );
+                    if (pAggData)
+                    {
+=====================================================================
+Found a 71 line (131 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+// <--
+    };
+=====================================================================
+Found a 38 line (131 tokens) duplication in the following files: 
+Starting at line 660 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+Starting at line 725 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+
+											   sal_Unicode*** pValueList, 
+											   sal_uInt32* pLen)
+{
+	ORegKey* 	pKey;
+
+	if (hKey)
+	{
+		pKey = (ORegKey*)hKey;
+
+		if (pKey->isDeleted())
+		{
+			pValueList = NULL;
+			*pLen = 0;
+			return REG_INVALID_KEY;
+		}
+	} else
+	{
+		pValueList = NULL;
+		*pLen = 0;
+		return REG_INVALID_KEY;
+	}
+
+	OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
+	if (keyName->length)
+	{
+		RegKeyHandle hSubKey;
+		ORegKey* pSubKey;
+		RegError _ret1 = pKey->openKey(keyName, &hSubKey);
+		if (_ret1)
+		{
+			pValueList = NULL;
+			*pLen = 0;
+			return _ret1;
+		}
+
+		pSubKey = (ORegKey*)hSubKey;
+
+        _ret1 = pSubKey->getUnicodeListValue(valueName, pValueList, pLen);
+=====================================================================
+Found a 18 line (131 tokens) duplication in the following files: 
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3818 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xbf, 0xaf },
+{ 0x01, 0xe0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+=====================================================================
+Found a 13 line (131 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/include.c
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_include.c
+
+        for (fd = -1, i = (depth < 0) ? (NINCLUDE - 1) : (depth - 1); i >= 0; i--)
+        {
+            ip = &includelist[i];
+            if (ip->file == NULL || ip->deleted || (angled && ip->always == 0))
+                continue;
+            if (strlen(fname) + strlen(ip->file) + 2 > sizeof(iname))
+                continue;
+            strcpy(iname, ip->file);
+            strcat(iname, "/");
+            strcat(iname, fname);
+            if ((fd = open(iname, O_RDONLY)) >= 0)
+                break;
+        }
+=====================================================================
+Found a 5 line (131 tokens) duplication in the following files: 
+Starting at line 1514 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13, 0,13, 0,13,13,13,13,13,13,13,13,13,13,// fe70 - fe7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe80 - fe8f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe90 - fe9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fea0 - feaf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// feb0 - febf
+=====================================================================
+Found a 7 line (131 tokens) duplication in the following files: 
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26b0 - 26bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26c0 - 26cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26d0 - 26df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26e0 - 26ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 26f0 - 26ff
+
+     0,10,10,10,10, 0,10,10,10,10, 0, 0,10,10,10,10,// 2700 - 270f
+=====================================================================
+Found a 5 line (131 tokens) duplication in the following files: 
+Starting at line 1085 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1102 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a00 - 0a0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a10 - 0a1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a20 - 0a2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0a30 - 0a3f
+     0,17,17, 0, 0, 0, 0,17,17, 0, 0,17,17,17, 0, 0,// 0a40 - 0a4f
+=====================================================================
+Found a 5 line (131 tokens) duplication in the following files: 
+Starting at line 872 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe70 - fe7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe80 - fe8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// feb0 - febf
+=====================================================================
+Found a 5 line (131 tokens) duplication in the following files: 
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 990 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0270 - 027f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0290 - 029f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 02a0 - 02af
+     0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0,// 02b0 - 02bf
+=====================================================================
+Found a 5 line (131 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 823 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d760 - d76f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d770 - d77f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d780 - d78f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// d790 - d79f
+     5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// d7a0 - d7af
+=====================================================================
+Found a 19 line (131 tokens) duplication in the following files: 
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hbox.h
+Starting at line 494 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hbox.h
+
+	 void AddRowsSize(){
+		  int *tmp = data;
+		  data = new int[nTotal + ADD_AMOUNT];
+		  for( int i = 0 ; i < nTotal ; i++ )
+				data[i] = tmp[i];
+		  nTotal += ADD_AMOUNT;
+		  delete[] tmp;
+	 }
+
+	 void insert(int pos){
+		  if( nCount == 0 ){
+				data[nCount++] = pos;
+				return;
+		  }
+		  for( int i = 0 ; i < nCount; i++ ){
+				if( pos < data[i] + ALLOWED_GAP && pos > data[i] - ALLOWED_GAP )
+					 return;  // Already exist;
+				if( pos < data[i] ){
+					 if( nCount == nTotal )
+=====================================================================
+Found a 21 line (131 tokens) duplication in the following files: 
+Starting at line 768 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+Starting at line 870 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+            CommandToInfoMap::iterator pIter = m_aCommandMap.find( aSeq[i] );
+            if ( pIter != m_aCommandMap.end() && ( pIter->second.nImageInfo >= nImageInfo ))
+            {
+                Reference< XGraphic > xGraphic;
+                if ( xNameAccess->getByName( aSeq[i] ) >>= xGraphic )
+                {
+                    Image aImage( xGraphic );
+                    m_pToolBar->SetItemImage( pIter->second.nId, aImage );
+                    if ( pIter->second.aIds.size() > 0 )
+                    {
+                        for ( sal_uInt32 j=0; j < pIter->second.aIds.size(); j++ )
+                            m_pToolBar->SetItemImage( pIter->second.aIds[j], aImage );
+                    }
+                }
+                pIter->second.nImageInfo = nImageInfo;
+            }
+        }
+    }
+}
+
+void ToolBarManager::RemoveControllers()
+=====================================================================
+Found a 26 line (131 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/comboboxtoolbarcontroller.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/dropdownboxtoolbarcontroller.cxx
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/edittoolbarcontroller.cxx
+
+            aSelectedText = m_pEditControl->GetText();
+        }        
+    }
+
+    if ( xDispatch.is() && aTargetURL.Complete.getLength() > 0 )
+    {
+        Sequence<PropertyValue>   aArgs( 2 );
+
+        // Add key modifier to argument list
+        aArgs[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "KeyModifier" ));
+        aArgs[0].Value <<= KeyModifier;
+        aArgs[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Text" ));
+        aArgs[1].Value <<= aSelectedText;
+
+        // Execute dispatch asynchronously
+        ExecuteInfo* pExecuteInfo = new ExecuteInfo;
+        pExecuteInfo->xDispatch     = xDispatch;
+        pExecuteInfo->aTargetURL    = aTargetURL;
+        pExecuteInfo->aArgs         = aArgs;
+        Application::PostUserEvent( STATIC_LINK(0, ComplexToolbarController , ExecuteHdl_Impl), pExecuteInfo );
+    }
+}
+
+// ------------------------------------------------------------------
+
+void EditToolbarController::Modify()
+=====================================================================
+Found a 13 line (131 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormattedField.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Grid.cxx
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::view;
+=====================================================================
+Found a 17 line (131 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/typedetectionexport.cxx
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/typedetectionexport.cxx
+
+void TypeDetectionExporter::addLocaleProperty( Reference< XDocumentHandler > xHandler, const OUString& rName, const OUString& rValue )
+{
+	try
+	{
+		const OUString sCdataAttribute( RTL_CONSTASCII_USTRINGPARAM( "CDATA" ) );
+		const OUString sProp( RTL_CONSTASCII_USTRINGPARAM( "prop" ) );
+		const OUString sValue( RTL_CONSTASCII_USTRINGPARAM( "value" ) );
+		const OUString sWhiteSpace 			( RTL_CONSTASCII_USTRINGPARAM ( " " ) );
+
+		AttributeList * pAttrList = new AttributeList;
+		pAttrList->AddAttribute ( OUString::createFromAscii( "oor:name" ), sCdataAttribute, rName );
+		pAttrList->AddAttribute ( OUString::createFromAscii( "oor:type" ), sCdataAttribute, OUString::createFromAscii( "xs:string" ) );
+		Reference < XAttributeList > xAttrList (pAttrList);
+
+		xHandler->ignorableWhitespace ( sWhiteSpace );
+		xHandler->startElement( sProp, xAttrList );
+		xAttrList = pAttrList = new AttributeList;
+=====================================================================
+Found a 37 line (131 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpptest/cpptest.cpp
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/unoTocomCalls/Test/Test.cpp
+
+CComModule _Module;
+BEGIN_OBJECT_MAP(ObjectMap)
+END_OBJECT_MAP()
+
+HRESULT doTest();
+
+int main(int argc, char* argv[])
+{
+	HRESULT hr;
+	if( FAILED( hr=CoInitialize(NULL)))
+	{
+		_tprintf(_T("CoInitialize failed \n"));
+		return -1;
+	}
+
+	
+	_Module.Init( ObjectMap, GetModuleHandle( NULL));
+
+	if( FAILED(hr=doTest()))
+	{
+		_com_error err( hr);
+		const TCHAR * errMsg= err.ErrorMessage();
+		MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+	}
+
+
+	_Module.Term();
+	CoUninitialize();
+
+	
+	return 0;
+}
+
+
+HRESULT doTest()
+{
+	HRESULT hr= S_OK;
+=====================================================================
+Found a 7 line (131 tokens) duplication in the following files: 
+Starting at line 1041 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+Starting at line 1135 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+
+        setProperty( aProps, 0, UNISTRING("Text"), uno::Any( rtl::OUString() ) );
+        setProperty( aProps, 1, UNISTRING("Border"), uno::Any( sal_Int16( 0 ) ) );
+        setProperty( aProps, 2, UNISTRING("PaintTransparent"), uno::Any( true ) );
+        setProperty( aProps, 3, UNISTRING("MultiLine"), uno::Any( true ) );
+        setProperty( aProps, 4, UNISTRING("ReadOnly"), uno::Any( true ) );
+        setProperty( aProps, 5, UNISTRING("AutoVScroll"), uno::Any( true ) );
+        setProperty( aProps, 6, UNISTRING("HelpURL"), uno::Any( UNISTRING( "HID:" ) + rtl::OUString::valueOf( (sal_Int32) HID_CHECK_FOR_UPD_DESCRIPTION ) ) );
+=====================================================================
+Found a 25 line (131 tokens) duplication in the following files: 
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/registry/component/dp_component.cxx
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/registry/component/dp_component.cxx
+
+            }
+        }
+        
+        if (! singletons.empty())
+        {
+            // singletons live removal:
+            const Reference<container::XNameContainer> xRootContext(
+                that->getComponentContext()->getValueByName(
+                    OUSTR("_root") ), UNO_QUERY );
+            if (xRootContext.is())
+            {
+                for ( t_stringpairvec::const_iterator iPos(
+                          singletons.begin() );
+                      iPos != singletons.end(); ++iPos )
+                {
+                    ::std::pair<OUString, OUString> const & sp = *iPos;
+                    const OUString name( OUSTR("/singletons/") + sp.first );
+                    // arguments:
+                    try {
+                        xRootContext->removeByName( name + OUSTR("/arguments"));
+                    }
+                    catch (container::NoSuchElementException &) {}
+                    // used service:
+                    try {
+                        xRootContext->removeByName( name + OUSTR("/service") );
+=====================================================================
+Found a 11 line (131 tokens) duplication in the following files: 
+Starting at line 228 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+
+test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+									  sal_Int16& nShort, sal_uInt16& nUShort,
+									  sal_Int32& nLong, sal_uInt32& nULong,
+									  sal_Int64& nHyper, sal_uInt64& nUHyper,
+									  float& fFloat, double& fDouble,
+									  test::TestEnum& eEnum, rtl::OUString& rStr,
+									  ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+									  ::com::sun::star::uno::Any& rAny,
+									  ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+									  test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 13 line (131 tokens) duplication in the following files: 
+Starting at line 2175 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+Starting at line 2192 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+
+            OSQLParseNode* pLeft = pSearchCondition->getChild(0)->removeAt((sal_uInt32)0);
+            OSQLParseNode* pRight = pSearchCondition->getChild(2)->removeAt(2);
+            OSQLParseNode* pNode = MakeORNode(pLeft,pRight);
+
+            OSQLParseNode* pNewRule = new OSQLParseNode(::rtl::OUString(),SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::boolean_primary));
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii("("),SQL_NODE_PUNCTUATION));
+            pNewRule->append(pNode);
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii(")"),SQL_NODE_PUNCTUATION));
+
+            OSQLParseNode::eraseBraces(pLeft);
+            OSQLParseNode::eraseBraces(pRight);
+
+            pNode = MakeANDNode(pSearchCondition->getChild(0)->removeAt(1),pNewRule);
+=====================================================================
+Found a 15 line (131 tokens) duplication in the following files: 
+Starting at line 1658 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1783 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	OLEVariant varCriteria[5];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schema.getLength() && schema.toChar() != '%')
+		varCriteria[nPos].setString(schema);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+=====================================================================
+Found a 28 line (131 tokens) duplication in the following files: 
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 707 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+				if (0 <= n && n < aNames.getLength())
+					aName = aNames[n];
+			}
+			
+			if (aName.getLength())
+			{ 
+				bool bNest = aInput.indexOf(sal_Unicode('/')) >= 0;
+				
+				Any aElement = bNest ?
+					( xDeepAccess.is() ?
+					  xDeepAccess->getByHierarchicalName(aName) : Any()
+					  ) :
+					( xAccess.is() ? 
+					  xAccess->getByName(aName) : Any()
+					  );
+				
+				while (aElement.getValueTypeClass() == TypeClass_ANY)
+				{
+					Any aWrap(aElement);
+					aWrap >>= aElement;
+				}
+				sal_Bool bValue = true;
+				sal_Bool bValueOk = false;
+				
+				switch (aElement.getValueTypeClass() )
+				{
+				case TypeClass_INTERFACE:
+					bValue = false;
+=====================================================================
+Found a 22 line (131 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/CommonConverters.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+
+    const sal_Int32 nPointCount = bRoundEdges ? 13 : 5;
+
+    //--------------------------------------
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(nPointCount);
+    pOuterSequenceY->realloc(nPointCount);
+	pOuterSequenceZ->realloc(nPointCount);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    for(sal_Int32 nN = nPointCount; nN--;)
+=====================================================================
+Found a 36 line (131 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+
+    RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.chart.ChartLine" ));
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+//         ::chart::NamedLineProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+} // anonymous namespace
+
+// --------------------------------------------------------------------------------
+
+namespace chart
+{
+namespace wrapper
+{
+=====================================================================
+Found a 26 line (131 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 20 line (131 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+=====================================================================
+Found a 26 line (131 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 20 line (131 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+
+	INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+	// Args
+	void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// Indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// Type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+=====================================================================
+Found a 26 line (131 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 20 line (131 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+
+	INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+	// Args
+	void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// Indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// Type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+=====================================================================
+Found a 27 line (131 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxchar.cxx
+
+				nRes = (xub_Unicode) ImpRound( p->nSingle );
+			break;
+		case SbxDATE:
+		case SbxDOUBLE:
+		case SbxLONG64:
+		case SbxULONG64:
+		case SbxCURRENCY:
+		case SbxDECIMAL:
+		case SbxBYREF | SbxDECIMAL:
+			{
+			double dVal;
+			if( p->eType ==	SbxCURRENCY )
+				dVal = ImpCurrencyToDouble( p->nLong64 );
+			else if( p->eType == SbxLONG64 )
+				dVal = ImpINT64ToDouble( p->nLong64 );
+			else if( p->eType == SbxULONG64 )
+				dVal = ImpUINT64ToDouble( p->nULong64 );
+			else if( p->eType == SbxDECIMAL )
+			{
+				dVal = 0.0;
+				if( p->pDecimal )
+					p->pDecimal->getDouble( dVal );
+			}
+			else
+				dVal = p->nDouble;
+
+			if( dVal > SbxMAXCHAR )
+=====================================================================
+Found a 24 line (131 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/app.cxx
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/testmoz/main.cxx
+
+                Reference< XSimpleRegistry > xReg(
+                    interimSmgr->createInstance(
+                        OUString::createFromAscii(
+                            "com.sun.star.registry.SimpleRegistry" ) ), UNO_QUERY );
+                if ( xReg.is() )
+                {
+                    xReg->open(services, sal_False, sal_True);
+                    if ( xReg->isValid() )
+                    {
+                        OUString loader( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.loader.SharedLibrary" ));
+                        for( sal_Int32 i = 0; components[i] ; i ++ )
+                        {
+                            printf("Registering %s ... ", components[i]);
+                            xIR->registerImplementation(
+                                loader, OUString::createFromAscii(components[i]),xReg);
+                            printf("done\n");
+                        }
+                        xReg->close();
+                    } else
+                    {
+                        printf("Cannot open Registry. Terminating Program\n");
+                        exit (1);
+                    }
+                }
+=====================================================================
+Found a 19 line (131 tokens) duplication in the following files: 
+Starting at line 1733 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+Starting at line 1985 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+
+            c2.p3.x += bezierClip_xOffset;
+
+            cout << " bez(" 
+                 << c1.p0.x << "," 
+                 << c1.p1.x << ","
+                 << c1.p2.x << ","
+                 << c1.p3.x << ",t),bez("
+                 << c1.p0.y << "," 
+                 << c1.p1.y << ","
+                 << c1.p2.y << ","
+                 << c1.p3.y << ",t), bez("
+                 << c2.p0.x << "," 
+                 << c2.p1.x << ","
+                 << c2.p2.x << ","
+                 << c2.p3.x << ",t),bez("
+                 << c2.p0.y << "," 
+                 << c2.p1.y << ","
+                 << c2.p2.y << ","
+                 << c2.p3.y << ",t), '-' using (bez(" 
+=====================================================================
+Found a 21 line (130 tokens) duplication in the following files: 
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                            fg[order_type::A] += back_a * weight;
+                            x_hr              += rx_inv;
+                        }
+                        while(x_hr < filter_size);
+                    }
+                    y_hr += ry_inv;
+                    ++y_lr;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+=====================================================================
+Found a 24 line (130 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOASISTContext.cxx
+Starting at line 879 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/StyleOASISTContext.cxx
+
+	m_bControlStyle = sal_False;
+
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList =
+						new XMLMutableAttributeList( xAttrList );
+				xAttrList = pMutableAttrList;
+			}
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_STYLE_FAMILY:
+=====================================================================
+Found a 7 line (130 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawline_curs.h
+
+static char drawline_curs_bits[] = {
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03,
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asns_mask.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+ 0x00,0x00,0xf0,0x07,0x00,0x00,0xf0,0x07,0x00,0x00,0xe0,0x03,0x00,0x00,0xc0,
+ 0x01,0x00,0x00,0x10,0x04,0x00,0x00,0xf8,0x0f,0x00,0x00,0xf8,0x0f,0x00,0x00,
+ 0xf0,0x07,0x00,0x00,0xf0,0x07,0x00,0x00,0xe0,0x03,0x00,0x00,0xc0,0x01,0x00,
+ 0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x00};
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asne_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 51 line (130 tokens) duplication in the following files: 
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/test/dndtest.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svpclient.cxx
+
+    return 0;
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseMove( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseMove( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonDown( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseButtonDown( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonUp( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseButtonUp( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyInput( const KeyEvent& rKEvt )
+{
+	WorkWindow::KeyInput( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyUp( const KeyEvent& rKEvt )
+{
+	WorkWindow::KeyUp( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Paint( const Rectangle& rRect )
+{
+	WorkWindow::Paint( rRect );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Resize()
+{
+	WorkWindow::Resize();
+}
+=====================================================================
+Found a 21 line (130 tokens) duplication in the following files: 
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+Starting at line 848 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+        if ( mnDrawMode & ( DRAWMODE_BLACKGRADIENT | DRAWMODE_WHITEGRADIENT | DRAWMODE_SETTINGSGRADIENT) )
+	    {
+		    Color aColor;
+
+		    if ( mnDrawMode & DRAWMODE_BLACKGRADIENT )
+                aColor = Color( COL_BLACK );
+		    else if ( mnDrawMode & DRAWMODE_WHITEGRADIENT )
+                aColor = Color( COL_WHITE );
+            else if ( mnDrawMode & DRAWMODE_SETTINGSGRADIENT )
+                aColor = GetSettings().GetStyleSettings().GetWindowColor();
+
+		    if ( mnDrawMode & DRAWMODE_GHOSTEDGRADIENT )
+            {
+                aColor = Color( ( aColor.GetRed() >> 1 ) | 0x80, 
+						        ( aColor.GetGreen() >> 1 ) | 0x80,
+						        ( aColor.GetBlue() >> 1 ) | 0x80 );
+            }
+
+		    Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
+		    SetLineColor( aColor );
+		    SetFillColor( aColor );
+=====================================================================
+Found a 16 line (130 tokens) duplication in the following files: 
+Starting at line 2131 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+Starting at line 2152 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+				MetaMaskScaleAction* pAct = (MetaMaskScaleAction*) pAction;
+
+				ShortToSVBT16( pAct->GetType(), aBT16 );
+				nCrc = rtl_crc32( nCrc, aBT16, 2 );
+
+				UInt32ToSVBT32( pAct->GetBitmap().GetChecksum(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetColor().GetColor(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+=====================================================================
+Found a 18 line (130 tokens) duplication in the following files: 
+Starting at line 1998 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+Starting at line 2076 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+				UInt32ToSVBT32( pAct->GetBitmapEx().GetChecksum(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSize().Width(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetSize().Height(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+			}
+			break;
+
+			case( META_BMPEXSCALEPART_ACTION ):
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 29 line (130 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/helpmerge.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/helpmerge.cxx
+
+	const std::vector<ByteString>& aLanguages , MergeDataFile& aMergeDataFile , bool bCreateDir )
+{
+
+    
+    (void) rSDFFile ; 
+    bool hasNoError = true;
+    SimpleXMLParser aParser;
+    String sUsedTempFile;
+    String sXmlFile;
+
+	if( Export::fileHasUTF8ByteOrderMarker( sHelpFile ) )
+	{
+        DirEntry aTempFile = Export::GetTempFile();
+        DirEntry aSourceFile( String( sHelpFile , RTL_TEXTENCODING_ASCII_US ) );
+        aSourceFile.CopyTo( aTempFile , FSYS_ACTION_COPYFILE );
+        String sTempFile = aTempFile.GetFull();
+        Export::RemoveUTF8ByteOrderMarkerFromFile( ByteString( sTempFile , RTL_TEXTENCODING_ASCII_US ) );
+        sUsedTempFile = sTempFile;
+        sXmlFile = sTempFile;
+    }
+	else
+	{
+        sUsedTempFile = String::CreateFromAscii("");
+        sXmlFile = String( sHelpFile , RTL_TEXTENCODING_ASCII_US );
+    }
+
+	
+	OUString sOUHelpFile( sXmlFile );
+	XMLFile* xmlfile = ( aParser.Execute( sOUHelpFile ) );
+=====================================================================
+Found a 34 line (130 tokens) duplication in the following files: 
+Starting at line 3709 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 3905 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+				}
+		}
+    }
+    else
+    {
+        BYTE nBChar;
+        if( nLen2 != nLen )
+        {
+            ASSERT( nLen2 == nLen, "Fib length and read length are different" );
+            if (nLen > USHRT_MAX)
+                nLen = USHRT_MAX;
+            else if (nLen < 2 )
+                nLen = 2;
+            nLen2 = static_cast<UINT16>(nLen);
+        }
+        ULONG nRead = 0;
+        for( nLen2 -= 2; nRead < nLen2;  )
+        {
+            rStrm >> nBChar; ++nRead;
+            if (nBChar)
+            {
+                ByteString aTmp;
+                nRead += SafeReadString(aTmp,nBChar,rStrm);
+                rArray.push_back(String(aTmp, eCS));
+            }
+            else
+                rArray.push_back(aEmptyStr);
+
+            // #89125# Skip the extra data (for bVer67 versions this must come
+            // from external knowledge)
+            if (nExtraLen)
+            {
+                if (pExtraArray)
+                {
+=====================================================================
+Found a 33 line (130 tokens) duplication in the following files: 
+Starting at line 2985 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4727 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+                                    sal_Int16(aRgDesc.nTop + nRow));
+                //! keep (additional) reference to object to prevent implicit destruction
+                //! in following UNO calls (when object will get referenced)
+                xCellRef = pXCell;
+                SwTableBox * pBox = pXCell ? pXCell->GetTblBox() : 0;
+                if(!pBox)
+				{
+					throw uno::RuntimeException();
+				}
+                else
+                {
+                    const uno::Any &rAny = pColArray[nCol];
+                    if (uno::TypeClass_STRING == rAny.getValueTypeClass())
+                        lcl_setString( *pXCell, *(rtl::OUString *) rAny.getValue() );
+                    else
+                    {
+                        double d;
+                        // #i20067# don't throw exception just do nothing if
+                        // there is no value set
+                        if( (rAny >>= d) )
+                            lcl_setValue( *pXCell, d );
+						else
+							lcl_setString( *pXCell, OUString(), TRUE );
+                    }
+                }
+			}
+		}
+	}
+}
+/*-- 11.12.98 14:27:36---------------------------------------------------
+
+  -----------------------------------------------------------------------*/
+uno::Sequence< uno::Sequence< double > > SwXCellRange::getData(void) throw( uno::RuntimeException )
+=====================================================================
+Found a 29 line (130 tokens) duplication in the following files: 
+Starting at line 2136 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+Starting at line 2244 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+
+			bRet |= lcl_RejectRedline( *pRedlineTbl, nPos, bCallDelete );
+
+			if( nSeqNo )
+			{
+				if( USHRT_MAX == nPos )
+					nPos = 0;
+				USHORT nFndPos = 2 == nLoopCnt
+									? pRedlineTbl->FindNextSeqNo( nSeqNo, nPos )
+									: pRedlineTbl->FindPrevSeqNo( nSeqNo, nPos );
+				if( USHRT_MAX != nFndPos || ( 0 != ( --nLoopCnt ) &&
+					USHRT_MAX != ( nFndPos =
+							pRedlineTbl->FindPrevSeqNo( nSeqNo, nPos ))) )
+					pTmp = (*pRedlineTbl)[ nPos = nFndPos ];
+				else
+					nLoopCnt = 0;
+			}
+			else
+				nLoopCnt = 0;
+
+		} while( nLoopCnt );
+
+		if( bRet )
+		{
+			CompressRedlines();
+			SetModified();
+		}
+
+		if( DoesUndo() )
+			EndUndo( UNDO_REJECT_REDLINE, NULL );
+=====================================================================
+Found a 12 line (130 tokens) duplication in the following files: 
+Starting at line 3851 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 3876 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+			::com::sun::star::awt::Gradient aGradient2;
+
+			aGradient2.Style = (::com::sun::star::awt::GradientStyle) aXGradient.GetGradientStyle();
+			aGradient2.StartColor = (INT32)aXGradient.GetStartColor().GetColor();
+			aGradient2.EndColor = (INT32)aXGradient.GetEndColor().GetColor();
+			aGradient2.Angle = (short)aXGradient.GetAngle();
+			aGradient2.Border = aXGradient.GetBorder();
+			aGradient2.XOffset = aXGradient.GetXOffset();
+			aGradient2.YOffset = aXGradient.GetYOffset();
+			aGradient2.StartIntensity = aXGradient.GetStartIntens();
+			aGradient2.EndIntensity = aXGradient.GetEndIntens();
+			aGradient2.StepCount = aXGradient.GetSteps();
+=====================================================================
+Found a 12 line (130 tokens) duplication in the following files: 
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unopool.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unogallery/unogalitem.cxx
+
+		aAny <<= uno::Reference< gallery::XGalleryItem >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XPropertySet >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertyState >*)0) )
+		aAny <<= uno::Reference< beans::XPropertyState >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XMultiPropertySet >(this);
+	else
+		aAny <<= OWeakAggObject::queryAggregation( rType );
+
+	return aAny;
+}
+=====================================================================
+Found a 10 line (130 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/items/customshapeitem.cxx
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/items/customshapeitem.cxx
+
+	com::sun::star::uno::Any* pSeqAny = GetPropertyValueByName( rSequenceName );
+	if ( pSeqAny )
+	{
+		if ( pSeqAny->getValueType() == ::getCppuType((const ::com::sun::star::uno::Sequence < beans::PropertyValue >*)0) )
+		{
+			PropertyPairHashMap::iterator aHashIter( aPropPairHashMap.find( PropertyPair( rSequenceName, rPropName ) ) );
+			if ( aHashIter != aPropPairHashMap.end() )
+			{
+				::com::sun::star::uno::Sequence < beans::PropertyValue >& rSecSequence =
+					*((::com::sun::star::uno::Sequence < beans::PropertyValue >*)pSeqAny->getValue());
+=====================================================================
+Found a 18 line (130 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crarray.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crarray.cxx
+
+void ArrayIdlClassImpl::set( Any & rArray, sal_Int32 nIndex, const Any & rNewValue )
+	throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::ArrayIndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+{
+	TypeClass eTC = rArray.getValueTypeClass();
+	if (eTC != TypeClass_SEQUENCE && eTC != TypeClass_ARRAY)
+	{
+		throw IllegalArgumentException(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("no sequence given!") ),
+			(XWeak *)(OWeakObject *)this, 0 );
+	}
+	
+	uno_Sequence * pSeq = *(uno_Sequence **)rArray.getValue();
+	if (pSeq->nElements <= nIndex)
+	{
+		throw ArrayIndexOutOfBoundsException(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal index given!") ),
+			(XWeak *)(OWeakObject *)this );
+	}
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/ipclient.cxx
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/ole/ndole.cxx
+
+    void Release();
+    virtual void SAL_CALL changingState( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::embed::WrongStateException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL stateChanged( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+};
+=====================================================================
+Found a 22 line (130 tokens) duplication in the following files: 
+Starting at line 2137 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+Starting at line 3033 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+
+						if (!pEngine)
+						{
+							//	Ein RefDevice muss auf jeden Fall gesetzt werden,
+							//	sonst legt sich die EditEngine ein VirtualDevice an!
+							pEngine = new ScFieldEditEngine( pDoc->GetEnginePool() );
+							pEngine->SetUpdateMode( FALSE );
+							pEngine->SetRefDevice( pFmtDevice );	// always set
+							ULONG nCtrl = pEngine->GetControlWord();
+							if ( bShowSpellErrors )
+								nCtrl |= EE_CNTRL_ONLINESPELLING;
+							if ( eType == OUTTYPE_PRINTER )
+								nCtrl &= ~EE_CNTRL_MARKFIELDS;
+							pEngine->SetControlWord( nCtrl );
+							pEngine->SetForbiddenCharsTable( pDoc->GetForbiddenCharacters() );
+							pEngine->SetAsianCompressionMode( pDoc->GetAsianCompression() );
+							pEngine->SetKernAsianPunctuation( pDoc->GetAsianKerning() );
+							pEngine->EnableAutoColor( bUseStyleColor );
+							pEngine->SetDefaultHorizontalTextDirection(
+								(EEHorizontalTextDirection)pDoc->GetEditTextDirection( nTab ) );
+						}
+						else
+							lcl_ClearEdit( *pEngine );		// also calls SetUpdateMode(FALSE)
+=====================================================================
+Found a 20 line (130 tokens) duplication in the following files: 
+Starting at line 738 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuins2.cxx
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/chartins.cxx
+
+                aParam2.Name = C2U("ChartModel");
+                aParam2.Value <<= uno::makeAny(xChartModel);
+                pArray[0] <<= uno::makeAny(aParam1);
+                pArray[1] <<= uno::makeAny(aParam2);
+                xInit->initialize( aSeq );
+
+                // try to set the dialog's position so it doesn't hide the chart
+                uno::Reference < beans::XPropertySet > xDialogProps( xDialog, uno::UNO_QUERY );
+                if ( xDialogProps.is() )
+                {
+                    try
+                    {
+                        //get dialog size:
+                        awt::Size aDialogAWTSize;
+                        if( xDialogProps->getPropertyValue( ::rtl::OUString::createFromAscii("Size") )
+                            >>= aDialogAWTSize )
+                        {
+                            Size aDialogSize( aDialogAWTSize.Width, aDialogAWTSize.Height );
+                            if ( aDialogSize.Width() > 0 && aDialogSize.Height() > 0 )
+                            {
+=====================================================================
+Found a 21 line (130 tokens) duplication in the following files: 
+Starting at line 2820 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 3301 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+	ScDocShellModificator aModificator( rDocShell );
+
+	ScDocument* pDoc = rDocShell.GetDocument();
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCTAB nStartTab = rRange.aStart.Tab();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nEndTab = rRange.aEnd.Tab();
+
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+
+	ScMarkData aMark;
+	if (pTabMark)
+		aMark = *pTabMark;
+	else
+	{
+		for (SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++)
+			aMark.SelectTable( nTab, TRUE );
+	}
+=====================================================================
+Found a 33 line (130 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/xmlaccelcfg.cxx
+
+	::std::vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 9 line (130 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 9 line (130 tokens) duplication in the following files: 
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1236 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                0x0451,0x2116,0x04D9,0x00BB,0x0458,0x04AA,0x04AB,0x049D,
+                0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+                0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
+                0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+                0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
+                0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+                0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
+                0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+                0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } } };
+=====================================================================
+Found a 38 line (130 tokens) duplication in the following files: 
+Starting at line 595 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+Starting at line 660 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+
+											  sal_Char*** pValueList, 
+											  sal_uInt32* pLen)
+{
+	ORegKey* 	pKey;
+
+	if (hKey)
+	{
+		pKey = (ORegKey*)hKey;
+
+		if (pKey->isDeleted())
+		{
+			pValueList = NULL;
+			*pLen = 0;
+			return REG_INVALID_KEY;
+		}
+	} else
+	{
+		pValueList = NULL;
+		*pLen = 0;
+		return REG_INVALID_KEY;
+	}
+
+	OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
+	if (keyName->length)
+	{
+		RegKeyHandle hSubKey;
+		ORegKey* pSubKey;
+		RegError _ret1 = pKey->openKey(keyName, &hSubKey);
+		if (_ret1)
+		{
+			pValueList = NULL;
+			*pLen = 0;
+			return _ret1;
+		}
+
+		pSubKey = (ORegKey*)hSubKey;
+
+        _ret1 = pSubKey->getStringListValue(valueName, pValueList, pLen);
+=====================================================================
+Found a 7 line (130 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/afm_hash.cpp
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/afm_hash.cpp
+
+      13,  4, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+      58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 15 line (130 tokens) duplication in the following files: 
+Starting at line 1724 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2168 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+            }
+
+            // check non_compound flag in suffix and prefix
+            if ((rv) && 
+                ((pfx && ((PfxEntry*)pfx)->getCont() &&
+                    TESTAFF(((PfxEntry*)pfx)->getCont(), compoundforbidflag, 
+                        ((PfxEntry*)pfx)->getContLen())) ||
+                (sfx && ((SfxEntry*)sfx)->getCont() &&
+                    TESTAFF(((SfxEntry*)sfx)->getCont(), compoundforbidflag, 
+                        ((SfxEntry*)sfx)->getContLen())))) {
+                    rv = NULL;
+            }
+
+	    // check forbiddenwords
+	    if ((rv) && (rv->astr) && (TESTAFF(rv->astr,forbiddenword,rv->alen))
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 1428 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+
+ 0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+
+ 0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 662 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 5 line (130 tokens) duplication in the following files: 
+Starting at line 650 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+    = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* None */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*0123456789:;<=>?*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 9 line (130 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 3000 - 37ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 3800 - 3fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 4000 - 47ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 4800 - 4fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 5000 - 57ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 5800 - 5fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 6000 - 67ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 6800 - 6fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7000 - 77ff
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 34 line (130 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/attributes.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+
+	vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+	for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
+		if( (*ii).sName == sName ) {
+			return (*ii).sValue;
+		}
+	}
+	return OUString();
+}
+
+
+
+AttributeListImpl::AttributeListImpl()
+{
+	m_pImpl = new AttributeListImpl_impl;
+}
+
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+	delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute( 	const OUString &sName ,
+										const OUString &sType ,
+										const OUString &sValue )
+{
+	m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 17 line (130 tokens) duplication in the following files: 
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+		for ( sal_Int16 i=0; i< xAttrList->getLength(); i++ )
+		{
+			OUString aName = xAttrList->getNameByIndex( i );
+			OUString aValue = xAttrList->getValueByIndex( i );
+			if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
+				aCommandId = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
+				aLabel = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
+				aHelpId = aValue;
+		}
+
+		if ( aCommandId.getLength() > 0 )
+		{
+            Sequence< PropertyValue > aSubMenuProp( 5 );
+			initPropertyCommon( aSubMenuProp, aCommandId, aHelpId, aLabel );
+			aSubMenuProp[2].Value <<= xSubItemContainer;
+=====================================================================
+Found a 35 line (130 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/attributelist.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/attributes.cxx
+
+    std::vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+    for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ )
+    {
+        if( (*ii).sName == sName )
+        {
+            return (*ii).sValue;
+        }
+    }
+    return OUString();
+}
+
+
+AttributeListImpl::AttributeListImpl()
+{
+    m_pImpl = new AttributeListImpl_impl;
+}
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+    delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute(   const OUString &sName ,
+const OUString &sType ,
+const OUString &sValue )
+{
+    m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 19 line (130 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/headermenucontroller.cxx
+
+void HeaderMenuController::fillPopupMenu( const Reference< ::com::sun::star::frame::XModel >& rModel, Reference< css::awt::XPopupMenu >& rPopupMenu )
+{
+    VCLXPopupMenu*                                     pPopupMenu        = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+    PopupMenu*                                         pVCLPopupMenu     = 0;
+    
+    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+    
+    resetPopupMenu( rPopupMenu );
+    if ( pPopupMenu )
+        pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+        
+    Reference< XStyleFamiliesSupplier > xStyleFamiliesSupplier( rModel, UNO_QUERY );
+    if ( pVCLPopupMenu && xStyleFamiliesSupplier.is())
+    {
+        Reference< XNameAccess > xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
+        
+        try
+        {
+            const rtl::OUString aCmd( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertPageHeader" ));
+=====================================================================
+Found a 17 line (130 tokens) duplication in the following files: 
+Starting at line 1117 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 905 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+Reference< XIndexAccess > SAL_CALL UIConfigurationManager::getSettings( const ::rtl::OUString& ResourceURL, sal_Bool bWriteable )
+throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+    sal_Int16 nElementType = RetrieveTypeFromResourceURL( ResourceURL );
+    
+    if (( nElementType == ::com::sun::star::ui::UIElementType::UNKNOWN ) || 
+        ( nElementType >= ::com::sun::star::ui::UIElementType::COUNT   ))
+        throw IllegalArgumentException();
+    else
+    {
+        ResetableGuard aGuard( m_aLock );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+        
+        UIElementData* pDataSettings = impl_findUIElementData( ResourceURL, nElementType );
+        if ( pDataSettings && !pDataSettings->bDefault )
+=====================================================================
+Found a 17 line (130 tokens) duplication in the following files: 
+Starting at line 1899 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/desktop.cxx
+Starting at line 1962 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/desktop.cxx
+
+    TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS );
+
+    ::cppu::OInterfaceContainerHelper* pContainer = m_aListenerContainer.getContainer( ::getCppuType( ( const css::uno::Reference< css::frame::XTerminateListener >*) NULL ) );
+	if ( ! pContainer )
+        return;
+    
+    css::lang::EventObject aEvent( static_cast< ::cppu::OWeakObject* >(this) );
+    
+    ::cppu::OInterfaceIteratorHelper aIterator( *pContainer );
+    while ( aIterator.hasMoreElements() )
+    {
+        try
+        {
+            css::uno::Reference< css::frame::XTerminateListener > xListener(aIterator.next(), css::uno::UNO_QUERY);
+            if ( ! xListener.is() )
+                continue;
+            xListener->notifyTermination( aEvent );
+=====================================================================
+Found a 35 line (130 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/attributelist.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/attributes.cxx
+
+    std::vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
+
+    for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ )
+    {
+        if( (*ii).sName == sName )
+        {
+            return (*ii).sValue;
+        }
+    }
+    return OUString();
+}
+
+
+AttributeListImpl::AttributeListImpl()
+{
+    m_pImpl = new AttributeListImpl_impl;
+}
+
+
+AttributeListImpl::~AttributeListImpl()
+{
+    delete m_pImpl;
+}
+
+
+void AttributeListImpl::addAttribute(   const OUString &sName ,
+const OUString &sType ,
+const OUString &sValue )
+{
+    m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
+}
+
+
+void AttributeListImpl::clear()
+{
+=====================================================================
+Found a 16 line (130 tokens) duplication in the following files: 
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/uicmdstohtml.cxx
+
+    const char* ShortName;
+};
+
+Projects ProjectModule_Mapping[] =
+{
+    { "sfx2"        , "sfx",    "sfx2",     true,   MODULE_GLOBAL         },
+    { "svx"         , "svx",    "svx",      true,   MODULE_GLOBAL         },
+    { "svx"         , "ofa",    "ofa",      true,   MODULE_GLOBAL         },
+    { "sw"          , "sw",     "sw",       true,   MODULE_WRITER         },
+    { "sd"          , "sd",     "sd",       true,   MODULE_DRAWIMPRESS    },
+    { "sc"          , "sc",     "sc",       true,   MODULE_CALC           },
+    { "sch"         , "sch",    "sch",      true,   MODULE_CHART          },
+    { "starmath"    , "sm",     "starmath", true,   MODULE_MATH           },
+    { "basctl"      , "basctl", "bastctl",  true,   MODULE_BASIC          },
+    { "extensions"  , "bib",    "",         false,  MODULE_BIBLIO         },
+    { "framework"   , "fwk",    "",         false,  MODULE_BACKINGCOMP    },
+=====================================================================
+Found a 33 line (130 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/office/OfficeFilePicker.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+}
+
+//------------------------------------------------------------------------------------
+namespace {
+	//................................................................................
+	struct FilterTitleMatch : public ::std::unary_function< FilterEntry, bool >
+	{
+	protected:
+		const ::rtl::OUString& rTitle;
+
+	public:
+		FilterTitleMatch( const ::rtl::OUString& _rTitle ) : rTitle( _rTitle ) { }
+
+		//............................................................................
+		bool operator () ( const FilterEntry& _rEntry )
+		{
+			sal_Bool bMatch;
+			if( !_rEntry.hasSubFilters() )
+				// a real filter
+				bMatch = ( _rEntry.getTitle() == rTitle );
+			else
+				// a filter group -> search the sub filters
+				bMatch =
+					_rEntry.endSubFilters() != ::std::find_if(
+						_rEntry.beginSubFilters(),
+						_rEntry.endSubFilters(),
+						*this
+					);
+
+			return bMatch ? true : false;
+		}
+		bool operator () ( const UnoFilterEntry& _rEntry )
+		{
+=====================================================================
+Found a 12 line (130 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/CheckBox.cxx
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Grid.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::view;
+=====================================================================
+Found a 6 line (130 tokens) duplication in the following files: 
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file_url.cxx
+
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, /* 0123456789:;<=>? */
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* @ABCDEFGHIJKLMNO */
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /* PQRSTUVWXYZ[\]^_ */
+  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* `abcdefghijklmno */
+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /* pqrstuvwxyz{|}~  */
+};
+=====================================================================
+Found a 69 line (130 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+=====================================================================
+Found a 25 line (130 tokens) duplication in the following files: 
+Starting at line 1594 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1958 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+sal_Bool SAL_CALL OleEmbeddedObject::isReadonly()
+		throw ( embed::WrongStateException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object persistence is not initialized!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	return m_bReadOnly;
+}
+
+//------------------------------------------------------
+void SAL_CALL OleEmbeddedObject::reload(
+=====================================================================
+Found a 26 line (130 tokens) duplication in the following files: 
+Starting at line 1482 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1809 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+::rtl::OUString SAL_CALL OleEmbeddedObject::getEntryName()
+		throw ( embed::WrongStateException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object persistence is not initialized!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	return m_aEntryName;
+}
+
+
+//------------------------------------------------------
+void SAL_CALL OleEmbeddedObject::storeOwn()
+=====================================================================
+Found a 27 line (130 tokens) duplication in the following files: 
+Starting at line 1087 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/xmlExport.cxx
+Starting at line 1585 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlExport.cxx
+
+::rtl::OUString ORptExport::implConvertAny(const Any& _rValue)
+{
+	::rtl::OUStringBuffer aBuffer;
+	switch (_rValue.getValueTypeClass())
+	{
+		case TypeClass_STRING:
+		{	// extract the string
+			::rtl::OUString sCurrentValue;
+			_rValue >>= sCurrentValue;
+			aBuffer.append(sCurrentValue);
+		}
+		break;
+		case TypeClass_DOUBLE:
+			// let the unit converter format is as string
+			GetMM100UnitConverter().convertDouble(aBuffer, getDouble(_rValue));
+			break;
+		case TypeClass_BOOLEAN:
+			aBuffer = getBOOL(_rValue) ? ::xmloff::token::GetXMLToken(XML_TRUE) : ::xmloff::token::GetXMLToken(XML_FALSE);
+			break;
+		case TypeClass_BYTE:
+		case TypeClass_SHORT:
+		case TypeClass_LONG:
+			// let the unit converter format is as string
+			GetMM100UnitConverter().convertNumber(aBuffer, getINT32(_rValue));
+			break;
+		default:
+			OSL_ENSURE(0,"ORptExport::implConvertAny: Invalid type");
+=====================================================================
+Found a 29 line (130 tokens) duplication in the following files: 
+Starting at line 1663 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 1706 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+                                          const ::basegfx::B2DHomMatrix&						rTextTransform ) :
+                mxTextPoly( rTextPoly ),
+                maPolygonGlyphMap( rPolygonGlyphMap ),
+                maOffsets( rOffsets ),
+                mpCanvas( rCanvas ),
+                maState(),
+                mnOutlineWidth( calcOutlineWidth(rState,rVDev) ),
+                maFillColor( 
+                    ::vcl::unotools::colorToDoubleSequence( rCanvas->getUNOCanvas()->getDevice(),
+                                                            ::Color( COL_WHITE ) ) ),
+                maTextLineInfo( tools::createTextLineInfo( rVDev, rState ) ),
+                maLinesOverallSize(),
+                maOutlineBounds( rOutlineBounds ),
+                mxTextLines(),
+                maReliefOffset( rReliefOffset ),
+                maReliefColor( rReliefColor ),
+                maShadowOffset( rShadowOffset ),
+                maShadowColor( rShadowColor )
+            {
+                initEffectLinePolyPolygon( maLinesOverallSize,
+                                           mxTextLines,
+                                           rCanvas,
+                                           rOffsets,
+                                           maTextLineInfo );
+
+                init( maState,
+                      rStartPoint, 
+                      rState,
+                      rCanvas,
+=====================================================================
+Found a 18 line (130 tokens) duplication in the following files: 
+Starting at line 1010 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+Starting at line 1258 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+								  const ::rtl::OUString& table)	throw(SQLException, RuntimeException)
+{
+	const ::rtl::OUString *pSchemaPat = NULL;
+
+	if(schema.toChar() != '%')
+		pSchemaPat = &schema;
+	else
+		pSchemaPat = NULL;
+
+	m_bFreeHandle = sal_True;
+	::rtl::OString aPKQ,aPKO,aPKN,aCOL;
+
+	aPKQ = ::rtl::OUStringToOString(comphelper::getString(catalog),m_nTextEncoding);
+	aPKO = ::rtl::OUStringToOString(schema,m_nTextEncoding);
+
+	const char	*pPKQ = catalog.hasValue() && aPKQ.getLength() ? aPKQ.getStr()	: NULL,
+				*pPKO = pSchemaPat && pSchemaPat->getLength() ? aPKO.getStr() : NULL,
+				*pPKN = (aPKN = ::rtl::OUStringToOString(table,m_nTextEncoding)).getStr();
+=====================================================================
+Found a 24 line (130 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BKeys.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+
+							aSql += aQuote + getString(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))) + aQuote
+										+ ::rtl::OUString::createFromAscii(",");
+					}
+
+					aSql = aSql.replaceAt(aSql.getLength()-1,1,::rtl::OUString::createFromAscii(")"));
+
+					switch(nDeleteRule)
+					{
+                        case KeyRule::CASCADE:
+							aSql += ::rtl::OUString::createFromAscii(" ON DELETE CASCADE ");
+							break;
+                        case KeyRule::RESTRICT:
+							aSql += ::rtl::OUString::createFromAscii(" ON DELETE RESTRICT ");
+							break;
+                        case KeyRule::SET_NULL:
+							aSql += ::rtl::OUString::createFromAscii(" ON DELETE SET NULL ");
+							break;
+                        case KeyRule::SET_DEFAULT:
+							aSql += ::rtl::OUString::createFromAscii(" ON DELETE SET DEFAULT ");
+							break;
+						default:
+							;
+					}
+				}
+=====================================================================
+Found a 19 line (130 tokens) duplication in the following files: 
+Starting at line 581 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/CommonConverters.cxx
+Starting at line 1342 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/ShapeFactory.cxx
+
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(nPointCount);
+    pOuterSequenceY->realloc(nPointCount);
+	pOuterSequenceZ->realloc(nPointCount);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+
+    for(sal_Int32 nN = nPointCount; nN--;)
+=====================================================================
+Found a 21 line (130 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+Starting at line 489 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+
+                        {
+                            // differentiate mask and alpha channel (on-off
+                            // vs. multi-level transparency)
+                            if( rBitmap.IsTransparent() )
+                            {
+                                // Handling alpha and mask just the same...
+                                for( int x=0; x<aDestBmpSize.Width(); ++x )
+                                {
+                                    ::basegfx::B2DPoint aPoint(x,y);
+                                    aPoint *= aTransform;
+
+                                    const int nSrcX( ::basegfx::fround( aPoint.getX() ) );
+                                    const int nSrcY( ::basegfx::fround( aPoint.getY() ) );
+                                    if( nSrcX < 0 || nSrcX >= aBmpSize.Width() ||
+                                        nSrcY < 0 || nSrcY >= aBmpSize.Height() )
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, BitmapColor(255) );
+                                    }
+                                    else
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, 
+=====================================================================
+Found a 14 line (130 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper_texturefill.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper_texturefill.cxx
+
+                    const double nT( (nStepCount-i-1)/double(nStepCount) );
+            
+                    for( p=0; p<nNumPoints; ++p )
+                    {
+                        const ::basegfx::B2DPoint& rOuterPoint( aOuterPoly.getB2DPoint(p) );
+                        const ::basegfx::B2DPoint& rInnerPoint( aInnerPoly.getB2DPoint(p) );
+
+                        aTempPoly[(USHORT)p] = ::Point( 
+                            basegfx::fround( (1.0-nT)*rInnerPoint.getX() + nT*rOuterPoint.getX() ),
+                            basegfx::fround( (1.0-nT)*rInnerPoint.getY() + nT*rOuterPoint.getY() ) );
+                    }
+
+                    // close polygon explicitely
+                    aTempPoly[(USHORT)p] = aTempPoly[0];
+=====================================================================
+Found a 22 line (130 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	// OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+=====================================================================
+Found a 7 line (130 tokens) duplication in the following files: 
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+	};
+
+	const INT16 A_nHtmlDefStatus[C_nStatusSize] =
+=====================================================================
+Found a 8 line (130 tokens) duplication in the following files: 
+Starting at line 312 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	};
+
+	const INT16 A_nWordStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+	 err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+	 faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd, // ... 63
+=====================================================================
+Found a 7 line (130 tokens) duplication in the following files: 
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd  // ... 127
+	};
+
+	const INT16 A_nAtTagDefStatus[C_nStatusSize] =
+=====================================================================
+Found a 39 line (129 tokens) duplication in the following files: 
+Starting at line 991 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
+Starting at line 873 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/javacompskeleton.cxx
+
+    std::hash_set< OString, OStringHash > interfaces;
+    std::hash_set< OString, OStringHash > services;
+    AttributeInfo properties;
+    AttributeInfo attributes;
+    std::hash_set< OString, OStringHash > propinterfaces;
+    bool serviceobject = false;
+    bool supportxcomponent = false;
+
+    std::vector< OString >::const_iterator iter = types.begin();
+    while (iter != types.end()) {
+        checkType(manager, *iter, interfaces, services, properties);
+        iter++;
+    }
+
+    if (options.componenttype == 3) {
+        // the Protocolhandler service is mandatory for an protocol handler add-on,
+        // so it is defaulted. The XDispatchProvider provides Dispatch objects for
+        // certain functions and the generated impl object implements XDispatch
+        // directly for simplicity reasons.
+        checkType(manager, "com.sun.star.frame.ProtocolHandler",
+                  interfaces, services, properties);
+        checkType(manager, "com.sun.star.frame.XDispatch",
+                  interfaces, services, properties);
+        
+        
+//         ProtocolCmdMap::const_iterator iter2 = options.protocolCmdMap.begin();
+//         while (iter2 != options.protocolCmdMap.end()) {
+//             fprintf(stdout, "prt=%s\n", (*iter2).first.getStr());
+            
+//             for (std::vector< OString >::const_iterator i = (*iter2).second.begin();
+//                  i != (*iter2).second.end(); ++i) {
+//                 fprintf(stdout, "cmd=%s\n", (*i).getStr());
+//             }
+//             iter2++;
+//         }
+//         return;
+    }
+    
+    if (options.componenttype == 2) {
+=====================================================================
+Found a 15 line (129 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/decrypter.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/encrypter.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::registry ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+int SAL_CALL main( int argc, char **argv )
+{
+	CERTCertDBHandle*	certHandle ;
+=====================================================================
+Found a 50 line (129 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svdem.cxx
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svpclient.cxx
+
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseMove( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseMove( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonDown( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseButtonDown( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonUp( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseButtonUp( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyInput( const KeyEvent& rKEvt )
+{
+	WorkWindow::KeyInput( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyUp( const KeyEvent& rKEvt )
+{
+	WorkWindow::KeyUp( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Paint( const Rectangle& rRect )
+{
+	WorkWindow::Paint( rRect );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Resize()
+{
+	WorkWindow::Resize();
+}
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,
+=====================================================================
+Found a 50 line (129 tokens) duplication in the following files: 
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/test/dndtest.cxx
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svdem.cxx
+
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseMove( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseMove( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonDown( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseButtonDown( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonUp( const MouseEvent& rMEvt )
+{
+	WorkWindow::MouseButtonUp( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyInput( const KeyEvent& rKEvt )
+{
+	WorkWindow::KeyInput( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyUp( const KeyEvent& rKEvt )
+{
+	WorkWindow::KeyUp( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Paint( const Rectangle& rRect )
+{
+	WorkWindow::Paint( rRect );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Resize()
+{
+	WorkWindow::Resize();
+}
+=====================================================================
+Found a 32 line (129 tokens) duplication in the following files: 
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 595 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+		sal_Bool bDeletePhysical = sal_False;
+		aCommand.Argument >>= bDeletePhysical;
+        destroy( bDeletePhysical, Environment );
+
+		// Remove own and all children's persistent data.
+        if ( !removeData() )
+        {
+            uno::Any aProps
+                = uno::makeAny(
+                         beans::PropertyValue(
+                             rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                               "Uri")),
+                             -1,
+                             uno::makeAny(m_xIdentifier->
+                                              getContentIdentifier()),
+                             beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_CANT_WRITE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                Environment,
+                rtl::OUString::createFromAscii(
+                    "Cannot remove persistent data!" ),
+                this );
+            // Unreachable
+        }
+
+		// Remove own and all children's Additional Core Properties.
+		removeAdditionalPropertySet( sal_True );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "transfer" ) ) )
+    {
+=====================================================================
+Found a 39 line (129 tokens) duplication in the following files: 
+Starting at line 4285 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindows.cxx
+Starting at line 4591 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindows.cxx
+
+					((LongCurrencyField*)GetWindow())->SetEmptyFieldValue();
+				}
+				else
+				{
+					double d = 0;
+					if ( Value >>= d )
+ 						setValue( d );
+				}
+			}
+			break;
+			case BASEPROPERTY_VALUEMIN_DOUBLE:
+			{
+				double d = 0;
+				if ( Value >>= d )
+ 					setMin( d );
+			}
+			break;
+			case BASEPROPERTY_VALUEMAX_DOUBLE:
+			{
+				double d = 0;
+				if ( Value >>= d )
+ 					setMax( d );
+			}
+			break;
+			case BASEPROPERTY_VALUESTEP_DOUBLE:
+			{
+				double d = 0;
+				if ( Value >>= d )
+ 					setSpinSize( d );
+			}
+			break;
+			case BASEPROPERTY_DECIMALACCURACY:
+			{
+				sal_Int16 n = sal_Int16();
+				if ( Value >>= n )
+ 					setDecimalDigits( n );
+			}
+			break;
+			case BASEPROPERTY_CURRENCYSYMBOL:
+=====================================================================
+Found a 16 line (129 tokens) duplication in the following files: 
+Starting at line 2054 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/index/cnttab.cxx
+Starting at line 2573 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/utlui/content.cxx
+
+			if(bRet)
+			{
+				SvLBoxTab* pTab;
+				SvLBoxItem* pItem = GetItem( pEntry, aPos.X(), &pTab );
+				if( pItem && SV_ITEM_ID_LBOXSTRING == pItem->IsA())
+				{
+					aPos = GetEntryPosition( pEntry );
+
+					aPos.X() = GetTabPos( pEntry, pTab );
+					Size aSize( pItem->GetSize( this, pEntry ) );
+
+					if((aPos.X() + aSize.Width()) > GetSizePixel().Width())
+						aSize.Width() = GetSizePixel().Width() - aPos.X();
+
+					aPos = OutputToScreenPixel(aPos);
+					Rectangle aItemRect( aPos, aSize );
+=====================================================================
+Found a 36 line (129 tokens) duplication in the following files: 
+Starting at line 2877 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par5.cxx
+Starting at line 3002 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par5.cxx
+
+                case 'p':
+                    {
+                        xub_StrLen n = aReadParam.GoToTokenParam();
+                        if( STRING_NOTFOUND != n )  // if NO String just ignore the \p
+                        {
+                            String sDelimiter( aReadParam.GetResult() );
+                            SwForm aForm( pBase->GetTOXForm() );
+
+                            // Attention: if TOX_CONTENT brave
+                            //            GetFormMax() returns MAXLEVEL + 1  !!
+                            USHORT nEnd = aForm.GetFormMax()-1;
+
+                            for(USHORT nLevel = 1;
+                                   nLevel <= nEnd;
+                                   ++nLevel)
+                            {
+                                // Levels count from 1
+                                // Level 0 is reserved for CAPTION
+
+                                // Delimiter statt Tabstop vor der Seitenzahl einsetzen,
+                                // falls es eine Seitenzahl gibt:
+                                FormTokenType ePrevType = TOKEN_END;
+                                FormTokenType eType;
+
+                                // -> #i21237#
+                                SwFormTokens aPattern = aForm.GetPattern(nLevel);
+                                SwFormTokens::iterator aIt = aPattern.begin();
+                                do
+                                {
+                                    eType = ++aIt == aPattern.end() ? TOKEN_END : aIt->eTokenType;
+
+                                    if (eType == TOKEN_PAGE_NUMS)
+                                    {
+                                        if (TOKEN_TAB_STOP == ePrevType)
+                                        {
+                                            aIt--;
+=====================================================================
+Found a 19 line (129 tokens) duplication in the following files: 
+Starting at line 890 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+        SfxStyleSheetBase* pBase = pBasePool->Find(sStyleName);
+        if(pBase)
+        {
+            uno::Reference< style::XStyle >  xStyle = _FindStyle(sStyleName);
+            if(!xStyle.is())
+            {
+                xStyle = eFamily == SFX_STYLE_FAMILY_PAGE ?
+                    new SwXPageStyle(*pBasePool, pDocShell, eFamily, sStyleName) :
+                        eFamily == SFX_STYLE_FAMILY_FRAME ?
+                        new SwXFrameStyle(*pBasePool, pDocShell->GetDoc(), pBase->GetName()):
+                            new SwXStyle(*pBasePool, eFamily, pDocShell->GetDoc(), sStyleName);
+            }
+            aRet.setValue(&xStyle, ::getCppuType((uno::Reference<style::XStyle>*)0));
+        }
+        else
+            throw container::NoSuchElementException();
+    }
+    else
+        throw uno::RuntimeException();
+=====================================================================
+Found a 14 line (129 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/swg/SwXMLTextBlocks1.cxx
+Starting at line 605 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/swg/SwXMLTextBlocks1.cxx
+
+        uno::Reference < io::XStream > xDocStream = xBlkRoot->openStreamElement( sDocName,
+                    embed::ElementModes::WRITE | embed::ElementModes::TRUNCATE );
+
+        uno::Reference < beans::XPropertySet > xSet( xDocStream, uno::UNO_QUERY );
+        String aPropName( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM("MediaType") ) );
+        OUString aMime ( RTL_CONSTASCII_USTRINGPARAM ( "text/xml") );
+        Any aAny;
+        aAny <<= aMime;
+        xSet->setPropertyValue( aPropName, aAny );
+        uno::Reference < io::XOutputStream > xOut = xDocStream->getOutputStream();
+        uno::Reference<io::XActiveDataSource> xSrc(xWriter, uno::UNO_QUERY);
+        xSrc->setOutputStream(xOut);
+
+    	uno::Reference<xml::sax::XDocumentHandler> xHandler(xWriter, uno::UNO_QUERY);
+=====================================================================
+Found a 21 line (129 tokens) duplication in the following files: 
+Starting at line 477 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/extrusioncontrols.cxx
+Starting at line 504 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/extrusioncontrols.cxx
+
+                    pParentWindow,
+                    SVX_RES( RID_SVXFLOAT_EXTRUSION_DEPTH )),
+	maImgDepth0( SVX_RES( IMG_DEPTH_0 ) ),
+	maImgDepth1( SVX_RES( IMG_DEPTH_1 ) ),
+	maImgDepth2( SVX_RES( IMG_DEPTH_2 ) ),
+	maImgDepth3( SVX_RES( IMG_DEPTH_3 ) ),
+	maImgDepth4( SVX_RES( IMG_DEPTH_4 ) ),
+	maImgDepthInfinity( SVX_RES( IMG_DEPTH_INFINITY ) ),
+	maImgDepth0h( SVX_RES( IMG_DEPTH_0_H ) ),
+	maImgDepth1h( SVX_RES( IMG_DEPTH_1_H ) ),
+	maImgDepth2h( SVX_RES( IMG_DEPTH_2_H ) ),
+	maImgDepth3h( SVX_RES( IMG_DEPTH_3_H ) ),
+	maImgDepth4h( SVX_RES( IMG_DEPTH_4_H ) ),
+	maImgDepthInfinityh( SVX_RES( IMG_DEPTH_INFINITY_H ) ),
+	mxFrame( rFrame ),
+	mbPopupMode		( true ),
+	mfDepth( -1.0 ),
+	mbEnabled( false )
+{
+    implInit();
+}
+=====================================================================
+Found a 24 line (129 tokens) duplication in the following files: 
+Starting at line 1796 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4861 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		nTemp = nTemp << 1;
+    if (fBackStyle)
+        nTemp |= 0x08;
+	*rContents << nTemp;
+	pBlockFlags[0] |= 0x01;
+	*rContents << sal_uInt8(0x00);
+    nTemp = 0;
+    aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("MultiLine"));
+    fWordWrap = any2bool(aTmp);
+    if (fWordWrap)
+        nTemp |= 0x80;
+    *rContents << nTemp;
+    *rContents << sal_uInt8(0x00);
+
+    *rContents << ExportColor(mnBackColor);
+    pBlockFlags[0] |= 0x02;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("TextColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnForeColor;
+	*rContents << ExportColor(mnForeColor);
+	pBlockFlags[0] |= 0x04;
+
+	nStyle = 4;
+=====================================================================
+Found a 24 line (129 tokens) duplication in the following files: 
+Starting at line 1803 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 1940 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+
+IMPL_LINK( SvxAreaTabPage, ClickGradientHdl_Impl, void *, EMPTYARG )
+{
+	aTsbTile.Hide();
+	aTsbStretch.Hide();
+	aTsbScale.Hide();
+	aTsbOriginal.Hide();
+	aFtXSize.Hide();
+	aMtrFldXSize.Hide();
+	aFtYSize.Hide();
+	aMtrFldYSize.Hide();
+    aFlSize.Hide();
+	aRbtRow.Hide();
+	aRbtColumn.Hide();
+	aMtrFldOffset.Hide();
+    aFlOffset.Hide();
+	aCtlPosition.Hide();
+	aFtXOffset.Hide();
+	aMtrFldXOffset.Hide();
+	aFtYOffset.Hide();
+	aMtrFldYOffset.Hide();
+    aFlPosition.Hide();
+
+	aLbColor.Hide();
+	aLbGradient.Enable();
+=====================================================================
+Found a 20 line (129 tokens) duplication in the following files: 
+Starting at line 4872 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4449 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartMergeVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] = 
+{
+	{ { 5400, 0 }, { 16200, 10800 } }
+};
+static const mso_CustomShape msoFlowChartMerge =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartMergeVert, sizeof( mso_sptFlowChartMergeVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartMergeTextRect, sizeof( mso_sptFlowChartMergeTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 27 line (129 tokens) duplication in the following files: 
+Starting at line 872 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items/style.cxx
+Starting at line 973 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items/style.cxx
+
+			rStream >> nHelpId;
+
+		SfxStyleSheetBase& rSheet = Make( aName, (SfxStyleFamily)nFamily , nStyleMask);
+		rSheet.SetHelpId( aHelpFile, nHelpId );
+		// Hier erst einmal Parent und Follow zwischenspeichern
+		rSheet.aParent = aParent;
+		rSheet.aFollow = aFollow;
+		UINT32 nPos = rStream.Tell();
+		rStream >> nCount;
+		if(nCount) {
+			rStream.Seek( nPos );
+			// Das Laden des ItemSets bedient sich der Methode GetItemSet(),
+			// damit eigene ItemSets untergeschoben werden koennen
+			SfxItemSet& rSet = rSheet.GetItemSet();
+			rSet.ClearItem();
+//! 		SfxItemSet aTmpSet( *pTmpPool );
+			/*!aTmpSet*/ rSet.Load( rStream );
+			//! rSet.Put( aTmpSet );
+		}
+		// Lokale Teile
+		UINT32 nSize;
+		USHORT nVer;
+		rStream >> nVer >> nSize;
+		nPos = rStream.Tell() + nSize;
+		rSheet.Load( rStream, nVer );
+		rStream.Seek( nPos );
+	}
+=====================================================================
+Found a 17 line (129 tokens) duplication in the following files: 
+Starting at line 1672 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 2405 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+	if ( bEditMode && (pViewData->GetRefTabNo() == pViewData->GetTabNo()) )
+	{
+		Point	aPos = rMEvt.GetPosPixel();
+		SCsCOL	nPosX;
+		SCsROW	nPosY;
+		pViewData->GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nPosX, nPosY );
+
+		EditView*	pEditView;
+		SCCOL		nEditCol;
+		SCROW		nEditRow;
+		pViewData->GetEditView( eWhich, pEditView, nEditCol, nEditRow );
+		SCCOL nEndCol = pViewData->GetEditEndCol();
+		SCROW nEndRow = pViewData->GetEditEndRow();
+
+		if ( nPosX >= (SCsCOL) nEditCol && nPosX <= (SCsCOL) nEndCol &&
+			 nPosY >= (SCsROW) nEditRow && nPosY <= (SCsROW) nEndRow )
+		{
+=====================================================================
+Found a 20 line (129 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/cellsh1.cxx
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/cellsh1.cxx
+
+					if( IS_AVAILABLE( FID_FILL_TAB, &pItem ) )
+						aFlags = ((const SfxStringItem*)pItem)->GetValue();
+
+					aFlags.ToUpperAscii();
+					BOOL	bCont = TRUE;
+
+					for( xub_StrLen i=0 ; bCont && i<aFlags.Len() ; i++ )
+					{
+						switch( aFlags.GetChar(i) )
+						{
+							case 'A': // Alle
+							nFlags |= IDF_ALL;
+							bCont = FALSE; // nicht mehr weitermachen!
+							break;
+							case 'S': nFlags |= IDF_STRING;	break;
+							case 'V': nFlags |= IDF_VALUE; break;
+							case 'D': nFlags |= IDF_DATETIME; break;
+							case 'F': nFlags |= IDF_FORMULA; break;
+							case 'N': nFlags |= IDF_NOTE; break;
+							case 'T': nFlags |= IDF_ATTRIB; break;
+=====================================================================
+Found a 23 line (129 tokens) duplication in the following files: 
+Starting at line 1169 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+Starting at line 1828 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+
+		ScDocument* pDoc = pDocShell->GetDocument();
+		if ( eFamily == SFX_STYLE_FAMILY_PARA )
+		{
+			//	Zeilenhoehen anpassen...
+
+			VirtualDevice aVDev;
+			Point aLogic = aVDev.LogicToPixel( Point(1000,1000), MAP_TWIP );
+			double nPPTX = aLogic.X() / 1000.0;
+			double nPPTY = aLogic.Y() / 1000.0;
+			Fraction aZoom(1,1);
+			pDoc->StyleSheetChanged( pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom );
+
+			pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT );
+			pDocShell->SetDocumentModified();
+		}
+		else
+		{
+			//!	ModifyStyleSheet am Dokument (alte Werte merken)
+
+			pDocShell->PageStyleModified( aStyleName, sal_True );
+		}
+	}
+}
+=====================================================================
+Found a 6 line (129 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       }};
+=====================================================================
+Found a 23 line (129 tokens) duplication in the following files: 
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 1077 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  setLength : public CppUnit::TestFixture
+    {
+        OString* arrOUS[6];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr1 );
+            arrOUS[1] = new OString( "1" );
+            arrOUS[2] = new OString( );
+            arrOUS[3] = new OString( "" );
+            arrOUS[4] = new OString( "\0" );
+            arrOUS[5] = new OString( kTestStr2 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4]; delete arrOUS[5];
+        }
+
+        void setLength_001()
+=====================================================================
+Found a 6 line (129 tokens) duplication in the following files: 
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file_url.cxx
+Starting at line 533 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 17 line (129 tokens) duplication in the following files: 
+Starting at line 952 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1471 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xa1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x00, 0xb3, 0xa3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xa5 },
+{ 0x00, 0xb6, 0xa6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xa9 },
+{ 0x00, 0xba, 0xaa },
+{ 0x00, 0xbb, 0xab },
+{ 0x00, 0xbc, 0xac },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xae },
+{ 0x00, 0xbf, 0xbf },
+=====================================================================
+Found a 17 line (129 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/languageguessing/guesslang.cxx
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/languageguessing/guesslang.cxx
+
+    vector<Guess> gs = guesser.GetAvailableLanguages();
+    aRes.realloc(gs.size());
+
+    com::sun::star::lang::Locale *pRes = aRes.getArray();
+
+    for(size_t i = 0; i < gs.size() ; i++ ){
+        com::sun::star::lang::Locale current_aRes;
+        current_aRes.Language   = OUString(RTL_CONSTASCII_USTRINGPARAM(gs[i].GetLanguage().c_str()));
+        current_aRes.Country    = OUString(RTL_CONSTASCII_USTRINGPARAM(gs[i].GetCountry().c_str()));
+        pRes[i] = current_aRes;
+    }
+
+    return aRes;
+}
+
+//*************************************************************************
+uno::Sequence< Locale > SAL_CALL LangGuess_Impl::getDisabledLanguages(  )
+=====================================================================
+Found a 19 line (129 tokens) duplication in the following files: 
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+
+                aDNames = new OUString [numdict];
+	        aSuppLocales.realloc(numdict);
+                Locale * pLocale = aSuppLocales.getArray();
+                int numlocs = 0;
+                int newloc;
+                int i,j;
+                int k = 0;
+
+                //first add the user dictionaries
+                for (i = 0; i < numusr; i++) {
+	            Locale nLoc( A2OU(postupdict[i]->lang), A2OU(postupdict[i]->region), OUString() );
+                    newloc = 1;
+	            for (j = 0; j < numlocs; j++) {
+                        if (nLoc == pLocale[j]) newloc = 0;
+                    }
+                    if (newloc) {
+                        pLocale[numlocs] = nLoc;
+                        numlocs++;
+                    }
+=====================================================================
+Found a 6 line (129 tokens) duplication in the following files: 
+Starting at line 1379 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f00 - 2f0f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f10 - 2f1f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f20 - 2f2f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f30 - 2f3f
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 1338 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1379 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2550 - 255f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2560 - 256f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2570 - 257f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2580 - 258f
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2590 - 259f
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1261 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 1071 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1078 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,17,17,17,17,17,17,17,17,17,17,// 07a0 - 07af
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 1058 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1514 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd50 - fd5f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd60 - fd6f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd70 - fd7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd80 - fd8f
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 625 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+=====================================================================
+Found a 6 line (129 tokens) duplication in the following files: 
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 679 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f00 - 2f0f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f10 - 2f1f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f20 - 2f2f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2f30 - 2f3f
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 577 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 691 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2fa0 - 2faf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2fb0 - 2fbf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2fc0 - 2fcf
+    27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fd0 - 2fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2fe0 - 2fef
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5,// 1200 - 120f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1210 - 121f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1220 - 122f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1230 - 123f
+     5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 0, 0,// 1240 - 124f
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,// 07a0 - 07af
+     6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+=====================================================================
+Found a 3 line (129 tokens) duplication in the following files: 
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_sqrt_tables.cpp
+
+        5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+        6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+        6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+=====================================================================
+Found a 5 line (129 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+
+ 0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 63 line (129 tokens) duplication in the following files: 
+Starting at line 1896 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1470 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+int yyFlexLexer::yyinput()
+	{
+	int c;
+
+	*yy_c_buf_p = yy_hold_char;
+
+	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+			/* This was really a NUL. */
+			*yy_c_buf_p = '\0';
+
+		else
+			{ /* need more input */
+			int offset = yy_c_buf_p - yytext_ptr;
+			++yy_c_buf_p;
+
+			switch ( yy_get_next_buffer() )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart( yyin );
+
+					/* fall through */
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap() )
+						return EOF;
+
+					if ( ! yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					yy_c_buf_p = yytext_ptr + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
+	*yy_c_buf_p = '\0';	/* preserve yytext */
+	yy_hold_char = *++yy_c_buf_p;
+=====================================================================
+Found a 7 line (129 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+=====================================================================
+Found a 6 line (129 tokens) duplication in the following files: 
+Starting at line 2321 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+	static const sal_Char aDigits[64]
+		= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+			'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+			'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+			'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+			'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 31 line (129 tokens) duplication in the following files: 
+Starting at line 322 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/accelerators/acceleratorexecute.cxx
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/acceleratorexecute.cxx
+
+    return xAccCfg;
+}
+
+//-----------------------------------------------
+css::uno::Reference< css::util::XURLTransformer > AcceleratorExecute::impl_ts_getURLParser()
+{
+    // SAFE -> ----------------------------------
+    ::osl::ResettableMutexGuard aLock(m_aLock);
+
+    if (m_xURLParser.is())
+        return m_xURLParser;
+    css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+
+    aLock.clear();
+    // <- SAFE ----------------------------------
+
+    css::uno::Reference< css::util::XURLTransformer > xParser(
+                xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer")),
+                css::uno::UNO_QUERY_THROW);
+
+    // SAFE -> ----------------------------------
+    aLock.reset();
+    m_xURLParser = xParser;
+    aLock.clear();
+    // <- SAFE ----------------------------------
+
+    return xParser;
+}
+
+//-----------------------------------------------
+IMPL_LINK(AcceleratorExecute, impl_ts_asyncCallback, void*, EMPTYARG)
+=====================================================================
+Found a 35 line (129 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/resourceprovider.cxx
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/resourceprovider.cxx
+
+using rtl::OUString;
+using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
+using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
+
+//------------------------------------------------------------
+// 
+//------------------------------------------------------------
+
+#define FOLDERPICKER_TITLE            500
+#define FOLDER_PICKER_DEF_DESCRIPTION 501
+
+//------------------------------------------------------------
+// we have to translate control ids to resource ids 
+//------------------------------------------------------------
+
+struct _Entry
+{
+    sal_Int32 ctrlId;
+    sal_Int16 resId;
+};
+
+_Entry CtrlIdToResIdTable[] = {
+    { CHECKBOX_AUTOEXTENSION,                   STR_SVT_FILEPICKER_AUTO_EXTENSION },
+    { CHECKBOX_PASSWORD,                        STR_SVT_FILEPICKER_PASSWORD },
+    { CHECKBOX_FILTEROPTIONS,                   STR_SVT_FILEPICKER_FILTER_OPTIONS },
+    { CHECKBOX_READONLY,                        STR_SVT_FILEPICKER_READONLY },
+    { CHECKBOX_LINK,                            STR_SVT_FILEPICKER_INSERT_AS_LINK },
+    { CHECKBOX_PREVIEW,                         STR_SVT_FILEPICKER_SHOW_PREVIEW },
+    { PUSHBUTTON_PLAY,                          STR_SVT_FILEPICKER_PLAY },
+    { LISTBOX_VERSION_LABEL,                    STR_SVT_FILEPICKER_VERSION },
+    { LISTBOX_TEMPLATE_LABEL,                   STR_SVT_FILEPICKER_TEMPLATES },
+    { LISTBOX_IMAGE_TEMPLATE_LABEL,             STR_SVT_FILEPICKER_IMAGE_TEMPLATE },
+    { CHECKBOX_SELECTION,                       STR_SVT_FILEPICKER_SELECTION },
+    { FOLDERPICKER_TITLE,                       STR_SVT_FOLDERPICKER_DEFAULT_TITLE },
+    { FOLDER_PICKER_DEF_DESCRIPTION,            STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION }
+=====================================================================
+Found a 6 line (129 tokens) duplication in the following files: 
+Starting at line 1746 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, /*0123456789:;<=>?*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 14 line (129 tokens) duplication in the following files: 
+Starting at line 2193 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+Starting at line 2227 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+
+            OSQLParseNode* pRight = pSearchCondition->getChild(2)->removeAt((sal_uInt32)0);
+            OSQLParseNode* pNode    = MakeORNode(pLeft,pRight);
+
+            OSQLParseNode* pNewRule = new OSQLParseNode(::rtl::OUString(),SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::boolean_primary));
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii("("),SQL_NODE_PUNCTUATION));
+            pNewRule->append(pNode);
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii(")"),SQL_NODE_PUNCTUATION));
+
+            OSQLParseNode::eraseBraces(pLeft);
+            OSQLParseNode::eraseBraces(pRight);
+
+            pNode = MakeANDNode(pSearchCondition->getChild(0)->removeAt(1),pNewRule);
+            replaceAndReset(pSearchCondition,pNode);
+        }
+=====================================================================
+Found a 24 line (129 tokens) duplication in the following files: 
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & OStatement_Base::getInfoHelper()
+{
+	return *const_cast<OStatement_Base*>(this)->getArrayHelper();
+}
+// -------------------------------------------------------------------------
+sal_Bool OStatement_Base::convertFastPropertyValue(
+							Any & /*rConvertedValue*/,
+=====================================================================
+Found a 30 line (129 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+
+}
+// -------------------------------------------------------------------------
+
+void OStatement_Base::reset() throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+
+	clearWarnings ();
+
+	if (m_xResultSet.get().is())
+		clearMyResultSet();
+}
+
+void OStatement_Base::clearMyResultSet () throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+    try
+    {
+	    Reference<XCloseable> xCloseable;
+	    if ( ::comphelper::query_interface( m_xResultSet.get(), xCloseable ) )
+		    xCloseable->close();
+    }
+    catch( const DisposedException& ) { }
+
+    m_xResultSet = Reference< XResultSet >();
+}
+=====================================================================
+Found a 8 line (129 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/APreparedStatement.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL java_sql_PreparedStatement::getTypes(  ) throw(::com::sun::star::uno::RuntimeException)
+{
+	::cppu::OTypeCollection aTypes(	::getCppuType( (const ::com::sun::star::uno::Reference< XPreparedStatement > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< XParameters > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< XResultSetMetaDataSupplier > *)0 ),
+									::getCppuType( (const ::com::sun::star::uno::Reference< XPreparedBatchExecution > *)0 ));
+
+	return ::comphelper::concatSequences(aTypes.getTypes(),OStatement_BASE2::getTypes());
+=====================================================================
+Found a 26 line (129 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+		cout << aStr << endl;
+	}
+	volatile int dummy = 0;
+}
+
+//=============================================================================
+
+inline void operator <<= (::rtl::OUString& _rUnicodeString, const sal_Char* _pAsciiString)
+{
+	_rUnicodeString = ::rtl::OUString::createFromAscii(_pAsciiString);
+}
+
+inline void operator <<= (::rtl::OUString& _rUnicodeString, const ::rtl::OString& _rAsciiString)
+{
+	_rUnicodeString <<= _rAsciiString.getStr();
+}
+
+inline void operator <<= (Any& _rUnoValue, const sal_Char* _pAsciiString)
+{
+	_rUnoValue <<= ::rtl::OUString::createFromAscii(_pAsciiString);
+}
+
+inline void operator <<= (Any& _rUnoValue, const ::rtl::OString& _rAsciiString)
+{
+	_rUnoValue <<= _rAsciiString.getStr();
+}
+=====================================================================
+Found a 15 line (129 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+			sUserPath =	_sUserPath; //		enterValue("user path : ", s_pUpdatePath, false);
+			// cout << endl;
+
+			aCPArgs.realloc(aCPArgs.getLength() + 1);
+			sal_Int32 nCount = aCPArgs.getLength() - 1;
+			Any *pAny = &aCPArgs[nCount];
+			*pAny <<= configmgr::createPropertyValue(ASCII("sourcepath"), sSharePath);
+			aCPArgs.realloc(aCPArgs.getLength() + 1);
+			aCPArgs[aCPArgs.getLength() - 1] <<= configmgr::createPropertyValue(ASCII("updatepath"), sUserPath);
+		}
+		
+		aCPArgs.realloc(aCPArgs.getLength() + 1);
+		aCPArgs[aCPArgs.getLength() - 1] <<= configmgr::createPropertyValue(ASCII("servertype"), sServerType);
+
+		Reference< XMultiServiceFactory > xCfgProvider(
+=====================================================================
+Found a 23 line (129 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdbmaker.cxx
+
+		cleanUp(sal_True);
+		exit(99);
+	}
+
+	RegistryKey	typeKey = typeMgr.getTypeKey(typeName);
+	RegistryKeyNames subKeys;
+	
+	if (typeKey.getKeyNames(OUString(), subKeys))
+		return sal_False;
+	
+	OString tmpName;
+	for (sal_uInt32 i=0; i < subKeys.getLength(); i++)
+	{
+		tmpName = OUStringToOString(subKeys.getElement(i), RTL_TEXTENCODING_UTF8);
+
+		if (pOptions->isValid("-B"))
+			tmpName = tmpName.copy(tmpName.indexOf('/', 1) + 1);
+		else
+			tmpName = tmpName.copy(1);
+
+		if (bFullScope)
+		{
+			if (!produceAllTypes(tmpName, typeMgr, typeDependencies, pOptions, sal_True, 
+=====================================================================
+Found a 31 line (129 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbamaker.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+
+	CunoOptions options;
+
+	try 
+	{
+		if (!options.initOptions(argc, argv))
+		{
+			exit(1);
+		}
+	}
+	catch( IllegalArgument& e)
+	{
+		fprintf(stderr, "Illegal option: %s\n", e.m_message.getStr());
+		exit(99);
+	}
+
+	RegistryTypeManager typeMgr;
+	TypeDependency		typeDependencies;
+	
+	if (!typeMgr.init(!options.isValid("-T"), options.getInputFiles()))
+	{
+		fprintf(stderr, "%s : init registries failed, check your registry files.\n", options.getProgramName().getStr());
+		exit(99);
+	}
+
+	if (options.isValid("-B"))
+	{
+		typeMgr.setBase(options.getOption("-B"));
+	}
+
+	try 
+	{
+=====================================================================
+Found a 19 line (129 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/Stripe.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/Stripe.cxx
+
+uno::Any Stripe::getNormalsPolygon() const
+{
+    drawing::PolyPolygonShape3D aPP;
+
+	aPP.SequenceX.realloc(1);
+	aPP.SequenceY.realloc(1);
+	aPP.SequenceZ.realloc(1);
+
+	drawing::DoubleSequence* pOuterSequenceX = aPP.SequenceX.getArray();
+	drawing::DoubleSequence* pOuterSequenceY = aPP.SequenceY.getArray();
+	drawing::DoubleSequence* pOuterSequenceZ = aPP.SequenceZ.getArray();
+
+    pOuterSequenceX->realloc(4);
+    pOuterSequenceY->realloc(4);
+	pOuterSequenceZ->realloc(4);
+
+    double* pInnerSequenceX = pOuterSequenceX->getArray();
+	double* pInnerSequenceY = pOuterSequenceY->getArray();
+	double* pInnerSequenceZ = pOuterSequenceZ->getArray();
+=====================================================================
+Found a 14 line (129 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/InternalData.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/linkeddocuments.cxx
+
+	using namespace ::svt;
+
+	namespace
+	{
+		Sequence< sal_Int8 > lcl_GetSequenceClassID( sal_uInt32 n1, sal_uInt16 n2, sal_uInt16 n3,
+													sal_uInt8 b8, sal_uInt8 b9, sal_uInt8 b10, sal_uInt8 b11,
+													sal_uInt8 b12, sal_uInt8 b13, sal_uInt8 b14, sal_uInt8 b15 )
+		{
+			Sequence< sal_Int8 > aResult( 16 );
+			aResult[0] = static_cast<sal_Int8>(n1 >> 24);
+			aResult[1] = static_cast<sal_Int8>(( n1 << 8 ) >> 24);
+			aResult[2] = static_cast<sal_Int8>(( n1 << 16 ) >> 24);
+			aResult[3] = static_cast<sal_Int8>(( n1 << 24 ) >> 24);
+			aResult[4] = static_cast<sal_Int8>(n2 >> 8);
+=====================================================================
+Found a 14 line (129 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx
+
+uno::Sequence< uno::Sequence< double > > lcl_getDBL_MINInsteadNAN( const uno::Sequence< uno::Sequence< double > >& rData )
+{
+    uno::Sequence< uno::Sequence< double > > aRet;
+    const sal_Int32 nOuterSize = rData.getLength();
+    aRet.realloc( nOuterSize );
+    for( sal_Int32 nOuter=0; nOuter<nOuterSize; ++nOuter )
+    {
+        sal_Int32 nInnerSize = rData[nOuter].getLength();
+        aRet[nOuter].realloc( nInnerSize );
+        for( sal_Int32 nInner=0; nInner<nInnerSize; ++nInner )
+        {
+            aRet[nOuter][nInner] = rData[nOuter][nInner];
+            double& rValue = aRet[nOuter][nInner];
+            if( ::rtl::math::isNan( rValue ) )
+=====================================================================
+Found a 21 line (129 tokens) duplication in the following files: 
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+
+                                                                                             nSrcX ) );
+                                    }
+                                }
+                            }
+                            else
+                            {
+                                for( int x=0; x<aDestBmpSize.Width(); ++x )
+                                {
+                                    ::basegfx::B2DPoint aPoint(x,y);
+                                    aPoint *= aTransform;
+
+                                    const int nSrcX( ::basegfx::fround( aPoint.getX() ) );
+                                    const int nSrcY( ::basegfx::fround( aPoint.getY() ) );
+                                    if( nSrcX < 0 || nSrcX >= aBmpSize.Width() ||
+                                        nSrcY < 0 || nSrcY >= aBmpSize.Height() )
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, BitmapColor(255) );
+                                    }
+                                    else
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, BitmapColor(0) );
+=====================================================================
+Found a 26 line (129 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvasfont.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvasfont.cxx
+
+            OutputDevice* pOutDev( mpRefDevice->getOutDev() );
+
+            if( pOutDev )
+            {
+                const bool bOldMapState( pOutDev->IsMapModeEnabled() );
+                pOutDev->EnableMapMode(FALSE);
+
+                const Size aSize = pOutDev->GetFontMetric( *maFont ).GetSize();
+
+                const double fDividend( rFontMatrix.m10 + rFontMatrix.m11 );
+                double fStretch = (rFontMatrix.m00 + rFontMatrix.m01);            
+
+                if( !::basegfx::fTools::equalZero( fDividend) )
+                    fStretch /= fDividend;
+
+                const long nNewWidth = ::basegfx::fround( aSize.Width() * fStretch );
+
+                maFont->SetWidth( nNewWidth );
+
+                pOutDev->EnableMapMode(bOldMapState);
+            }
+        }
+    }
+
+    void SAL_CALL CanvasFont::disposing()
+    {
+=====================================================================
+Found a 19 line (129 tokens) duplication in the following files: 
+Starting at line 258 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/namecont.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/eventcontainer.cxx
+
+void NameContainer_Impl::insertByName( const OUString& aName, const Any& aElement ) 
+	throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
+{
+	Type aAnyType = aElement.getValueType();
+	if( mType != aAnyType )
+		throw IllegalArgumentException();
+
+	NameContainerNameMap::iterator aIt = mHashMap.find( aName );
+	if( aIt != mHashMap.end() )
+	{
+		throw ElementExistException();
+	}
+
+	sal_Int32 nCount = mNames.getLength();
+	mNames.realloc( nCount + 1 );
+	mValues.realloc( nCount + 1 );
+	mNames.getArray()[ nCount ] = aName;
+	mValues.getArray()[ nCount ] = aElement;
+	mHashMap[ aName ] = nCount;
+=====================================================================
+Found a 11 line (129 tokens) duplication in the following files: 
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	const INT16 fof = finEof;
+//	const INT16 fat = finAtTag;
+
+	/// The '0's  will be replaced by calls of AddToken().
+
+	const INT16 A_nTopStatus[C_nStatusSize] =
+	//  0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{fof,err,err,err,err,err,err,err,err,wht,  0,wht,wht,  0,err,err,
+	 err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+	 wht,awd,awd,awd,awd,awd,awd,awd,awd,awd,  0,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,  0,awd,awd,awd, // ... 63
+=====================================================================
+Found a 8 line (128 tokens) duplication in the following files: 
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+=====================================================================
+Found a 3 line (128 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_sqrt_tables.cpp
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_sqrt_tables.cpp
+
+        7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+        7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+        7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
+=====================================================================
+Found a 21 line (128 tokens) duplication in the following files: 
+Starting at line 757 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 782 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        y_lr = (y >> image_subpixel_shift) + start;
+                        y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+
+                        do
+                        {
+                            x_count = diameter;
+                            weight_y = weight_array[y_hr];
+                            x_lr = (x >> image_subpixel_shift) + start;
+                            x_hr = image_subpixel_mask - x_fract;
+
+                            do
+                            {
+                                int weight = (weight_y * weight_array[x_hr] + 
+                                             image_filter_size / 2) >> 
+                                             image_filter_shift;
+
+                                if(x_lr >= 0 && y_lr >= 0 && 
+                                   x_lr < int(base_type::source_image().width()) && 
+                                   y_lr < int(base_type::source_image().height()))
+                                {
+                                    fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+=====================================================================
+Found a 17 line (128 tokens) duplication in the following files: 
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        weight = x_hr * y_hr;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+=====================================================================
+Found a 21 line (128 tokens) duplication in the following files: 
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+Starting at line 782 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        y_lr = (y >> image_subpixel_shift) + start;
+                        y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+
+                        do
+                        {
+                            x_count = diameter;
+                            weight_y = weight_array[y_hr];
+                            x_lr = (x >> image_subpixel_shift) + start;
+                            x_hr = image_subpixel_mask - x_fract;
+
+                            do
+                            {
+                                int weight = (weight_y * weight_array[x_hr] + 
+                                             image_filter_size / 2) >> 
+                                             image_filter_shift;
+
+                                if(x_lr >= 0 && y_lr >= 0 && 
+                                   x_lr < int(base_type::source_image().width()) && 
+                                   y_lr < int(base_type::source_image().height()))
+                                {
+                                    fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+=====================================================================
+Found a 20 line (128 tokens) duplication in the following files: 
+Starting at line 879 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
+Starting at line 732 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
+
+Reference< XCertificate > SecurityEnvironment_NssImpl :: createCertificateFromAscii( const OUString& asciiCertificate ) throw( SecurityException , RuntimeException ) {
+	xmlChar* chCert ;
+	xmlSecSize certSize ;
+
+	rtl::OString oscert = rtl::OUStringToOString( asciiCertificate , RTL_TEXTENCODING_ASCII_US ) ;
+
+	chCert = xmlStrndup( ( const xmlChar* )oscert.getStr(), ( int )oscert.getLength() ) ;
+
+	certSize = xmlSecBase64Decode( chCert, ( xmlSecByte* )chCert, xmlStrlen( chCert ) ) ;
+
+	Sequence< sal_Int8 > rawCert( certSize ) ;
+	for( unsigned int i = 0 ; i < certSize ; i ++ )
+		rawCert[i] = *( chCert + i ) ;
+
+	xmlFree( chCert ) ;
+
+	return createCertificateFromRaw( rawCert ) ;
+}
+
+sal_Int32 SecurityEnvironment_NssImpl :: verifyCertificate( const ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate >& aCert ) throw( ::com::sun::star::uno::SecurityException, ::com::sun::star::uno::RuntimeException ) {
+=====================================================================
+Found a 19 line (128 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/FormPropOASISTContext.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/FrameOOoTContext.cxx
+
+	Reference< XAttributeList > xFrameAttrList( pFrameMutableAttrList );
+
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+			switch( (*aIter).second.m_nActionType )
+			{
+			case XML_ATACTION_MOVE_TO_ELEM:
+=====================================================================
+Found a 24 line (128 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLImport.cxx
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLTools.cxx
+
+using namespace com::sun::star;
+using namespace ::xmloff::token;
+
+using ::rtl::OUString;
+using ::rtl::OUStringBuffer;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+
+namespace
+{
+Reference< uno::XComponentContext > lcl_getComponentContext()
+{
+    Reference< uno::XComponentContext > xContext;
+    try
+    {
+        Reference< beans::XPropertySet > xFactProp( comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
+        if( xFactProp.is())
+            xFactProp->getPropertyValue(OUString::createFromAscii("DefaultContext")) >>= xContext;
+    }
+    catch( uno::Exception& )
+    {}
+
+    return xContext;
+}
+=====================================================================
+Found a 17 line (128 tokens) duplication in the following files: 
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 552 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+							(LPBYTE)CXMergeFilter::m_pszPXLImportCLSID, 
+							(::_tcslen(CXMergeFilter::m_pszPSWImportDesc) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	lRet = ::RegSetValueEx(hDataKey, _T("DefaultExport"), 0, REG_SZ, (LPBYTE)_T("Binary Copy"),
+							(::_tcslen(_T("Binary Copy")) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	::RegCloseKey(hDataKey);
+							
+	// Update registered filters
+
+
+	_snprintf(sTemp, _MAX_PATH + 1, "%c%s\\InstalledFilters\0", '.', CXMergeFilter::m_pszPXLExportExt);
+=====================================================================
+Found a 8 line (128 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/invert50.h
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/invert50.h
+
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+   0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
+=====================================================================
+Found a 7 line (128 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawbezier_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcirclecut_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawconnect_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawpie_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawpolygon_mask.h
+
+static char drawpolygon_mask_bits[] = {
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x3f, 0x7e, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x3f, 0x7e, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x06,
+=====================================================================
+Found a 18 line (128 tokens) duplication in the following files: 
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gfxlink.cxx
+Starting at line 1385 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impgraph.cxx
+
+							::ucbhelper::Content aCnt( aSwapURL,
+												 ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+
+							aCnt.executeCommand( ::rtl::OUString::createFromAscii( "delete" ),
+												 ::com::sun::star::uno::makeAny( sal_Bool( sal_True ) ) );
+						}
+						catch( const ::com::sun::star::ucb::ContentCreationException& )
+						{
+						}
+						catch( const ::com::sun::star::uno::RuntimeException& )
+						{
+						}
+						catch( const ::com::sun::star::ucb::CommandAbortedException& )
+						{
+						}
+        		        catch( const ::com::sun::star::uno::Exception& )
+		                {
+		                }
+=====================================================================
+Found a 28 line (128 tokens) duplication in the following files: 
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/longcurr.cxx
+
+	ResMgr* 	pMgr = rResId.GetResMgr();
+    if( pMgr )
+    {
+        ULONG		nMask = pMgr->ReadLong();
+    
+        if ( NUMERICFORMATTER_MIN & nMask )
+            mnMin = pMgr->ReadLong();
+    
+        if ( NUMERICFORMATTER_MAX & nMask )
+            mnMax = pMgr->ReadLong();
+    
+        if ( NUMERICFORMATTER_STRICTFORMAT & nMask )
+            SetStrictFormat(  (BOOL)pMgr->ReadShort() );
+    
+        if ( NUMERICFORMATTER_DECIMALDIGITS & nMask )
+            SetDecimalDigits( pMgr->ReadShort() );
+    
+        if ( NUMERICFORMATTER_VALUE & nMask )
+        {
+            mnFieldValue = pMgr->ReadLong();
+            if ( mnFieldValue > mnMax )
+                mnFieldValue = mnMax;
+            else if ( mnFieldValue < mnMin )
+                mnFieldValue = mnMin;
+            mnLastValue = mnFieldValue;
+        }
+    }
+}
+=====================================================================
+Found a 33 line (128 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+        {
+            static const ucb::CommandInfo aLinkCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+=====================================================================
+Found a 33 line (128 tokens) duplication in the following files: 
+Starting at line 1818 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1985 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+        xSource = static_cast< Content * >(
+                        m_xProvider->queryContent( xId ).get() );
+    }
+    catch ( ucb::IllegalIdentifierException const & )
+    {
+        // queryContent
+    }
+
+    if ( !xSource.is() )
+    {
+        uno::Any aProps
+            = uno::makeAny(beans::PropertyValue(
+                                  rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                                    "Uri")),
+                                  -1,
+                                  uno::makeAny(xId->getContentIdentifier()),
+                                  beans::PropertyState_DIRECT_VALUE));
+        ucbhelper::cancelCommandExecution(
+            ucb::IOErrorCode_CANT_READ,
+            uno::Sequence< uno::Any >(&aProps, 1),
+            xEnv,
+            rtl::OUString::createFromAscii(
+                "Cannot instanciate source object!" ),
+            this );
+        // Unreachable
+    }
+
+    //////////////////////////////////////////////////////////////////////
+    // 1) Create new child content.
+    //////////////////////////////////////////////////////////////////////
+
+    rtl::OUString aType = xSource->isFolder()
+            ? GetContentType( m_aUri.getScheme(), sal_True )
+=====================================================================
+Found a 19 line (128 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/export2.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/export2.cxx
+
+void Export::QuotHTML( ByteString &rString )
+/*****************************************************************************/
+{
+	ByteString sReturn;
+	for ( USHORT i = 0; i < rString.Len(); i++ ) {
+		ByteString sTemp = rString.Copy( i );
+		if ( sTemp.Search( "<Arg n=" ) == 0 ) {
+			while ( i < rString.Len() && rString.GetChar( i ) != '>' ) {
+		 		sReturn += rString.GetChar( i );
+				i++;
+			}
+			if ( rString.GetChar( i ) == '>' ) {
+				sReturn += ">";
+				i++;
+			}
+		}
+		if ( i < rString.Len()) {
+			switch ( rString.GetChar( i )) {
+				case '<':
+=====================================================================
+Found a 21 line (128 tokens) duplication in the following files: 
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/urltest.cxx
+Starting at line 587 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/urltest.cxx
+
+				"vnd.sun.star.pkg://file:%2F%2F%2Fa:%2Fb%20c/xx//yy" };
+		for (std::size_t i = 0; i < sizeof aTest / sizeof aTest[0]; ++i)
+		{
+			INetURLObject aUrl(aTest[i]);
+			if (aUrl.HasError())
+				printf("BAD %s\n", aTest[i]);
+			else if (aUrl.GetMainURL(INetURLObject::DECODE_TO_IURI).
+                         equalsAscii(aTest[i]) != sal_True)
+			{
+				String sTest(aUrl.GetMainURL(INetURLObject::DECODE_TO_IURI));
+				printf("BAD %s -> %s\n",
+					   aTest[i],
+					   ByteString(sTest, RTL_TEXTENCODING_ASCII_US).GetBuffer());
+			}
+		}
+	}
+
+	if (true)
+	{
+		static sal_Char const * const aTest[]
+			= { /*TODO "vnd.sun.star.cmd:",*/
+=====================================================================
+Found a 19 line (128 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/cctrl/actctrl.cxx
+
+void NoSpaceEdit::Modify()
+{
+	Selection aSel = GetSelection();
+	String sTemp = GetText();
+	for(USHORT i = 0; i < sForbiddenChars.Len(); i++)
+	{
+		sTemp.EraseAllChars( sForbiddenChars.GetChar(i) );
+	}
+	USHORT nDiff = GetText().Len() - sTemp.Len();
+	if(nDiff)
+	{
+		aSel.setMin(aSel.getMin() - nDiff);
+		aSel.setMax(aSel.getMin());
+		SetText(sTemp);
+		SetSelection(aSel);
+	}
+	if(GetModifyHdl().IsSet())
+		GetModifyHdl().Call(this);
+}
+=====================================================================
+Found a 69 line (128 tokens) duplication in the following files: 
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 644 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+        0, // POINTER_TAB_SELECT_W
+        0, // POINTER_TAB_SELECT_SW
+// <--
+// --> FME 2004-08-16 #i20119# Paintbrush tool
+        0 // POINTER_PAINTBRUSH
+// <--
+    };
+=====================================================================
+Found a 33 line (128 tokens) duplication in the following files: 
+Starting at line 2092 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 2271 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+
+	if( nP < pPLCF_PosArray[0] )
+	{
+		nIdx = 0;
+		// Nicht gefunden: nPos unterhalb kleinstem Eintrag
+		return false;
+	}
+
+	// Search from beginning?
+	if( (1 > nIdx) || (nP < pPLCF_PosArray[ nIdx-1 ]) )
+		nIdx = 1;
+
+	long nI   = nIdx ? nIdx : 1;
+	long nEnd = nIMax;
+
+	for(int n = (1==nIdx ? 1 : 2); n; --n )
+	{
+		for( ; nI <=nEnd; ++nI)				// Suchen mit um 1 erhoehtem Index
+		{
+			if( nP < pPLCF_PosArray[nI] )	// Position gefunden
+			{
+				nIdx = nI - 1;				// nI - 1 ist der richtige Index
+				return true;				// ... und fertig
+			}
+		}
+		nI   = 1;
+		nEnd = nIdx-1;
+	}
+
+	nIdx = nIMax;				// Nicht gefunden, groesser als alle Eintraege
+	return false;
+}
+
+bool WW8PLCF::Get(long& rStart, long& rEnd, void*& rpValue) const
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 1197 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 870 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/writerwordglue.cxx
+
+        DateTime DTTM2DateTime( long lDTTM )
+        {
+            /*
+            mint    short   :6  0000003F    minutes (0-59)
+            hr      short   :5  000007C0    hours (0-23)
+            dom     short   :5  0000F800    days of month (1-31)
+            mon     short   :4  000F0000    months (1-12)
+            yr      short   :9  1FF00000    years (1900-2411)-1900
+            wdy     short   :3  E0000000    weekday(Sunday=0
+                                                    Monday=1
+            ( wdy can be ignored )                  Tuesday=2
+                                                    Wednesday=3
+                                                    Thursday=4
+                                                    Friday=5
+                                                    Saturday=6)
+            */
+            DateTime aDateTime(Date( 0 ), Time( 0 ));
+            if( lDTTM )
+            {
+                USHORT lMin = (USHORT)(lDTTM & 0x0000003F);
+                lDTTM >>= 6;
+                USHORT lHour= (USHORT)(lDTTM & 0x0000001F);
+                lDTTM >>= 5;
+                USHORT lDay = (USHORT)(lDTTM & 0x0000001F);
+                lDTTM >>= 5;
+                USHORT lMon = (USHORT)(lDTTM & 0x0000000F);
+                lDTTM >>= 4;
+                USHORT lYear= (USHORT)(lDTTM & 0x000001FF) + 1900;
+                aDateTime = DateTime(Date(lDay, lMon, lYear), Time(lHour, lMin));
+            }
+            return aDateTime;
+        }
+=====================================================================
+Found a 7 line (128 tokens) duplication in the following files: 
+Starting at line 3531 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+    };
+=====================================================================
+Found a 26 line (128 tokens) duplication in the following files: 
+Starting at line 3161 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4897 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+		if(!nRowCount || rRowDesc.getLength() < bFirstRowAsLabel ? nRowCount - 1 : nRowCount)
+		{
+			throw uno::RuntimeException();
+			return;
+		}
+		const OUString* pArray = rRowDesc.getConstArray();
+		if(bFirstColumnAsLabel)
+		{
+			sal_uInt16 nStart = bFirstRowAsLabel ? 1 : 0;
+			for(sal_uInt16 i = nStart; i < nRowCount; i++)
+			{
+				uno::Reference< table::XCell >  xCell = getCellByPosition(0, i);
+				if(!xCell.is())
+				{
+					throw uno::RuntimeException();
+					break;
+				}
+				uno::Reference< text::XText >  xText(xCell, uno::UNO_QUERY);
+				xText->setString(pArray[i - nStart]);
+			}
+		}
+		else
+		{
+			DBG_ERROR("Wohin mit den Labels?")
+		}
+	}
+=====================================================================
+Found a 26 line (128 tokens) duplication in the following files: 
+Starting at line 2035 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+Starting at line 2079 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+
+			aFmt.SetBulletChar( 0x2717 );
+            // --> OD 2006-06-29 #6440955#
+            aFmt.SetBulletFont( &numfunc::GetDefBulletFont() );
+            // <--
+
+			static const USHORT aAbsSpace[ MAXLEVEL ] =
+				{
+//				cm: 0,4  0,8  1,2  1,6  2,0   2,4   2,8   3,2   3,6   4,0
+					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
+				};
+#ifdef USE_MEASUREMENT
+			static const USHORT aAbsSpaceInch[ MAXLEVEL ] =
+				{
+					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
+				};
+			const USHORT* pArr = MEASURE_METRIC ==
+								GetAppLocaleData().getMeasurementSystemEnum()
+									? aAbsSpace
+									: aAbsSpaceInch;
+#else
+			const USHORT* pArr = aAbsSpace;
+#endif
+
+			aFmt.SetFirstLineOffset( - (*pArr) );
+			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
+			{
+=====================================================================
+Found a 19 line (128 tokens) duplication in the following files: 
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+void CrookSlantPoly(XPolygon& rPoly, const Point& rCenter, const Point& rRad, FASTBOOL bVert)
+{
+	double nSin,nCos;
+	USHORT nPointAnz=rPoly.GetPointCount();
+	USHORT i=0;
+	while (i<nPointAnz) {
+		Point* pPnt=&rPoly[i];
+		Point* pC1=NULL;
+		Point* pC2=NULL;
+		if (i+1<nPointAnz && rPoly.IsControl(i)) { // Kontrollpunkt links
+			pC1=pPnt;
+			i++;
+			pPnt=&rPoly[i];
+		}
+		i++;
+		if (i<nPointAnz && rPoly.IsControl(i)) { // Kontrollpunkt rechts
+			pC2=&rPoly[i];
+			i++;
+		}
+=====================================================================
+Found a 21 line (128 tokens) duplication in the following files: 
+Starting at line 2238 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2694 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+        nTemp |= 0x20;
+    *rContents << nTemp;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("BackgroundColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnBackColor;
+	*rContents << ExportColor(mnBackColor);
+	pBlockFlags[0] |= 0x02;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("TextColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnForeColor;
+	*rContents << ExportColor(mnForeColor);
+	pBlockFlags[0] |= 0x04;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Border"));
+	sal_Int16 nBorder = sal_Int16();
+	aTmp >>= nBorder;
+	nSpecialEffect = ExportBorder(nBorder,nBorderStyle);
+	*rContents << nBorderStyle;
+	pBlockFlags[0] |= 0x10;
+=====================================================================
+Found a 12 line (128 tokens) duplication in the following files: 
+Starting at line 2501 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2225 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x16 MSO_I, 10800 }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+
+	{ 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I }
+};
+static const mso_CustomShape msoActionButtonEnd =
+{
+	(SvxMSDffVertPair*)mso_sptActionButtonEndVert, sizeof( mso_sptActionButtonEndVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptDefault1400,
+	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+=====================================================================
+Found a 27 line (128 tokens) duplication in the following files: 
+Starting at line 1163 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/itemset.cxx
+Starting at line 1380 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/itemset.cxx
+
+	DBG_ASSERT( GetPool() == rSet.GetPool(), "MergeValues mit verschiedenen Pools" );
+
+	// teste mal, ob sich die Which-Bereiche unterscheiden.
+	BOOL bEqual = TRUE;
+	USHORT* pWh1 = _pWhichRanges;
+	USHORT* pWh2 = rSet._pWhichRanges;
+	USHORT nSize = 0;
+
+	for( USHORT n = 0; *pWh1 && *pWh2; ++pWh1, ++pWh2, ++n )
+	{
+		if( *pWh1 != *pWh2 )
+		{
+			bEqual = FALSE;
+			break;
+		}
+		if( n & 1 )
+			nSize += ( *(pWh1) - *(pWh1-1) ) + 1;
+	}
+	bEqual = *pWh1 == *pWh2; // auch die 0 abpruefen
+
+	// sind die Bereiche identisch, ist es effizieter zu handhaben !
+	if( bEqual )
+	{
+		SfxItemArray ppFnd1 = _aItems;
+		SfxItemArray ppFnd2 = rSet._aItems;
+
+		for( ; nSize; --nSize, ++ppFnd1, ++ppFnd2 )
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 1449 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+Starting at line 1960 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/implementationregistration/implreg.cxx
+Starting at line 1273 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/invocation/invocation.cxx
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/loader/dllcomponentloader.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/namingservice/namingservice.cxx
+Starting at line 670 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/registry_tdprovider/tdprovider.cxx
+Starting at line 2132 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/servicemanager/servicemanager.cxx
+Starting at line 1340 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/simpleregistry/simpleregistry.cxx
+Starting at line 1191 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/tdmanager/tdmgr.cxx
+Starting at line 977 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/typeconv/convert.cxx
+
+		tcv_getSupportedServiceNames, createSingleComponentFactory,
+		&g_moduleCount.modCnt , 0
+	},
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
+{
+	return g_moduleCount.canUnload( &g_moduleCount , pTime );
+}
+
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
+}
+}
+=====================================================================
+Found a 28 line (128 tokens) duplication in the following files: 
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviews7.cxx
+Starting at line 1070 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/slidvish.cxx
+
+		}
+
+		if (bDisable)
+		{
+			rSet.DisableItem(SID_SUMMARY_PAGE);
+		}
+	}
+
+	// Starten der Praesentation moeglich?
+	if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) ||
+		SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REHEARSE_TIMINGS ) )
+	{
+		BOOL bDisable = TRUE;
+		USHORT nCount = GetDoc()->GetSdPageCount( PK_STANDARD );
+
+		for( USHORT i = 0; i < nCount && bDisable; i++ )
+		{
+			SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
+
+			if( !pPage->IsExcluded() )
+				bDisable = FALSE;
+		}
+		if( bDisable || GetDocSh()->IsPreview())
+		{
+			rSet.DisableItem( SID_PRESENTATION );
+			rSet.DisableItem( SID_REHEARSE_TIMINGS );
+		}
+	}
+=====================================================================
+Found a 6 line (128 tokens) duplication in the following files: 
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM),			WID_PAGE_BOTTOM,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT),				WID_PAGE_LEFT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT),			WID_PAGE_RIGHT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION),		WID_PAGE_ORIENT,	&::getCppuType((const view::PaperOrientation*)0),0,	0},
+=====================================================================
+Found a 18 line (128 tokens) duplication in the following files: 
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/outlinfo.cxx
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/_xfont.cxx
+
+	const sal_Int32* pDXArray = pInfo->pDXArray;
+	sal_Bool bUseBreakIterator(sal_False);
+
+	Reference < com::sun::star::i18n::XBreakIterator > xBreak;
+	Reference < XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory();
+	Reference < XInterface > xInterface = xMSF->createInstance(::rtl::OUString::createFromAscii("com.sun.star.i18n.BreakIterator"));
+	::com::sun::star::lang::Locale aFontLocale = SvxCreateLocale(pInfo->rFont.GetLanguage());
+	
+	if(xInterface.is())
+	{
+		Any x = xInterface->queryInterface(::getCppuType((const Reference< XBreakIterator >*)0));
+		x >>= xBreak;
+	}
+
+	if(xBreak.is())
+	{
+		bUseBreakIterator = sal_True;
+	}
+=====================================================================
+Found a 25 line (128 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/ppt/pptatom.cpp
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/svx/workben/msview/msview.cxx
+
+}
+
+/** returns the next child atom after pLast with nRecType or NULL */
+const Atom* Atom::findNextChildAtom( sal_uInt16 nRecType, const Atom* pLast ) const
+{
+	Atom* pChild = pLast != NULL ? pLast->mpNextAtom : mpFirstChild;
+	while( pChild && pChild->maRecordHeader.nRecType != nRecType )
+	{
+		pChild = pChild->mpNextAtom;
+	}
+
+	return pChild;
+}
+
+/** returns the next child atom after pLast with nRecType and nRecInstance or NULL */
+const Atom* Atom::findNextChildAtom( sal_uInt16 nRecType, sal_uInt16 nRecInstance, const Atom* pLast ) const
+{
+	const Atom* pChild = pLast != NULL ? pLast->mpNextAtom : mpFirstChild;
+	while( pChild && (pChild->maRecordHeader.nRecType != nRecType) && (pChild->maRecordHeader.nRecInstance != nRecInstance) )
+	{
+		pChild = findNextChildAtom( pChild );
+	}
+
+	return pChild;
+}
+=====================================================================
+Found a 18 line (128 tokens) duplication in the following files: 
+Starting at line 1634 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1687 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Bool bPosition(sal_False);
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+				nID = pChangeTrackingImportHelper->GetIDFromString(sValue);
+			}
+			else if (IsXMLToken(aLocalName, XML_POSITION))
+			{
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+						while (nErr == 0 && aValIter.GetNext(nCellVal, nErr))
+						{
+							fx = nCellVal;
+							if (fx < 0.0)
+							{
+								fx *= -1.0;
+								fSign *= -1.0;
+							}
+							fy = ScGetGGT(fx, fy);
+						}
+						SetError(nErr);
+					}
+					else
+						SetError(errIllegalArgument);
+				}
+				break;
+				case svMatrix :
+				{
+					ScMatrixRef pMat = PopMatrix();
+					if (pMat)
+					{
+                        SCSIZE nC, nR;
+                        pMat->GetDimensions(nC, nR);
+						if (nC == 0 || nR == 0)
+							SetError(errIllegalArgument);
+						else
+						{
+							if (!pMat->IsValue(0))
+							{
+								SetIllegalArgument();
+								return;
+							}
+=====================================================================
+Found a 26 line (128 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen9.cxx
+Starting at line 1618 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/drwlayer.cxx
+
+				AddCalcUndo( new SdrUndoInsertObj( *pNewObject ) );
+
+			//	handle chart data references (after InsertObject)
+
+			if ( pNewObject->GetObjIdentifier() == OBJ_OLE2 )
+			{
+				uno::Reference< embed::XEmbeddedObject > xIPObj = ((SdrOle2Obj*)pNewObject)->GetObjRef();
+				uno::Reference< embed::XClassifiedObject > xClassified( xIPObj, uno::UNO_QUERY );
+				SvGlobalName aObjectClassName;
+				if ( xClassified.is() )
+			    {
+					try {
+						aObjectClassName = SvGlobalName( xClassified->getClassID() );
+					} catch( uno::Exception& )
+					{
+						// TODO: handle error?
+					}
+				}
+
+				if ( xIPObj.is() && SotExchange::IsChart( aObjectClassName ) )
+				{
+                    String aNewName = ((SdrOle2Obj*)pNewObject)->GetPersistName();
+
+                    //! need to set new DataProvider, or does Chart handle this itself?
+
+                    ScRangeListRef xRanges( new ScRangeList );
+=====================================================================
+Found a 33 line (128 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/source/bridge/remote_bridge.cxx
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/source/factory/bridgefactory.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/source/unourl_resolver/unourl_resolver.cxx
+Starting at line 1449 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+
+		defreg_getSupportedServiceNames, createSingleComponentFactory,
+		&g_moduleCount.modCnt , 0
+	},
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+
+sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
+{
+	return g_moduleCount.canUnload( &g_moduleCount , pTime );
+}
+
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
+}
+}
+=====================================================================
+Found a 19 line (128 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/sft.c
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/ttcr.c
+
+_inline sal_uInt32 GetUInt32(const sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+{
+    sal_uInt32 t;
+    assert(ptr != 0);
+
+
+    if (bigendian) {
+        t = (ptr+offset)[0] << 24 | (ptr+offset)[1] << 16 |
+            (ptr+offset)[2] << 8  | (ptr+offset)[3];
+    } else {
+        t = (ptr+offset)[3] << 24 | (ptr+offset)[2] << 16 |
+            (ptr+offset)[1] << 8  | (ptr+offset)[0];
+    }
+
+    return t;
+}
+
+
+_inline void PutInt16(sal_Int16 val, sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+=====================================================================
+Found a 9 line (128 tokens) duplication in the following files: 
+Starting at line 2298 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 2310 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+				{
+					m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+									(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XStorage >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XStorageRawAccess >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XTransactedObject >* )NULL )
+									,	::getCppuType( ( const uno::Reference< embed::XTransactionBroadcaster >* )NULL )
+									,	::getCppuType( ( const uno::Reference< util::XModifiable >* )NULL )
+									,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+=====================================================================
+Found a 7 line (128 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+    };
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/TextInputStream/TextInputStream.cxx
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/TextOutputStream/TextOutputStream.cxx
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acceptor.cxx
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/connector.cxx
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/factreg.cxx
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/source/bridge/remote_bridge.cxx
+
+		remotebridges_bridge::getSupportedServiceNames, createSingleComponentFactory,
+		&g_moduleCount.modCnt , 0
+	},
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
+{
+	return g_moduleCount.canUnload( &g_moduleCount , pTime );
+}
+
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
+}
+}
+=====================================================================
+Found a 5 line (128 tokens) duplication in the following files: 
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 4 line (128 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+=====================================================================
+Found a 4 line (128 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF00
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF10
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF20
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF30
+=====================================================================
+Found a 7 line (128 tokens) duplication in the following files: 
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+    };
+=====================================================================
+Found a 22 line (128 tokens) duplication in the following files: 
+Starting at line 830 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1187 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+        if (( pReplacedImages != 0 ) || ( pRemovedImages != 0 ))
+        {
+            m_bModified = sal_True;
+            m_bUserImageListModified[nIndex] = true;
+        }
+    }
+
+    // Notify listeners
+    uno::Reference< XImageManager > xThis( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    uno::Reference< XInterface > xIfac( xThis, UNO_QUERY );
+
+    if ( pRemovedImages != 0 )
+    {
+        ConfigurationEvent aRemoveEvent;
+        aRemoveEvent.aInfo           = uno::makeAny( nImageType );
+        aRemoveEvent.Accessor        = uno::makeAny( xThis );
+        aRemoveEvent.Source          = xIfac;
+        aRemoveEvent.ResourceURL     = m_aResourceString;
+        aRemoveEvent.Element         = uno::makeAny( uno::Reference< XNameAccess >(
+                                            static_cast< OWeakObject *>( pRemovedImages ), UNO_QUERY ));
+        implts_notifyContainerListener( aRemoveEvent, NotifyOp_Remove );
+    }
+=====================================================================
+Found a 20 line (128 tokens) duplication in the following files: 
+Starting at line 5053 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 5129 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+
+void SAL_CALL LayoutManager::setElementPosSize( const ::rtl::OUString& aName, const css::awt::Point& aPos, const css::awt::Size& aSize )
+throw (RuntimeException)
+{
+    UIElement aUIElement;
+
+    if ( implts_findElement( aName, aUIElement ))
+    {
+        if ( aUIElement.m_xUIElement.is() )
+        {
+            try
+            {
+                Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
+                Reference< css::awt::XWindow2 > xWindow2( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
+                Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+
+                if ( xWindow.is() && xWindow2.is() && xDockWindow.is() )
+                {
+                    if ( aUIElement.m_bFloating )
+                    {
+                        xWindow2->setPosSize( aPos.X, aPos.Y, 0, 0, css::awt::PosSize::POS );
+=====================================================================
+Found a 36 line (128 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsdocumenthandler.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsdocumenthandler.cxx
+
+				for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+				{
+					pEventEntry = m_aEventsMap.find( xAttribs->getNameByIndex( n ) );
+					if ( pEventEntry != m_aEventsMap.end() )
+					{
+						switch ( pEventEntry->second )
+						{
+							case EV_ATTRIBUTE_TYPE:
+							{
+								aLanguage = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case EV_ATTRIBUTE_NAME:
+							{
+								aEventName = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case XL_ATTRIBUTE_HREF:
+							{
+								aURL = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case EV_ATTRIBUTE_MACRONAME:
+							{
+								aMacroName = xAttribs->getValueByIndex( n );
+							}
+							break;
+
+							case EV_ATTRIBUTE_LIBRARY:
+							{
+								aLibrary = xAttribs->getValueByIndex( n );
+							}
+							break;
+=====================================================================
+Found a 27 line (128 tokens) duplication in the following files: 
+Starting at line 669 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx
+
+sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey )
+{
+    if (pRegistryKey)
+	{
+        try
+        {
+            Reference< XRegistryKey > xNewKey(
+                reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+                    OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
+
+            const Sequence< OUString > & rSNL = getSupportedServiceNames();
+            const OUString * pArray = rSNL.getConstArray();
+            for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+                xNewKey->createKey( pArray[nPos] );
+
+            return sal_True;
+        }
+        catch (InvalidRegistryException &)
+        {
+            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+        }
+    }
+    return sal_False;
+}
+
+void * SAL_CALL component_getFactory(
+    const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+=====================================================================
+Found a 16 line (128 tokens) duplication in the following files: 
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 633 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+IMPL_LINK(SwSrcEditWindow, ScrollHdl, ScrollBar*, pScroll)
+{
+	if(pScroll == pVScrollbar)
+	{
+		long nDiff = pTextView->GetStartDocPos().Y() - pScroll->GetThumbPos();
+		GetTextView()->Scroll( 0, nDiff );
+		pTextView->ShowCursor( FALSE, TRUE );
+		pScroll->SetThumbPos( pTextView->GetStartDocPos().Y() );
+	}
+	else
+	{
+		long nDiff = pTextView->GetStartDocPos().X() - pScroll->GetThumbPos();
+		GetTextView()->Scroll( nDiff, 0 );
+		pTextView->ShowCursor( FALSE, TRUE );
+		pScroll->SetThumbPos( pTextView->GetStartDocPos().X() );
+	}
+=====================================================================
+Found a 7 line (128 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+    };
+=====================================================================
+Found a 8 line (128 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+=====================================================================
+Found a 15 line (128 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObject::getVisualAreaSize" );
+
+	::osl::ResettableMutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object is not loaded!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 38 line (128 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/dtobj/XTDataObject.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/workbench/XTDo.cxx
+
+	if ( NULL == ppvObject )
+		return E_INVALIDARG;
+
+	HRESULT hr = E_NOINTERFACE;
+
+	*ppvObject = NULL;
+
+	if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IDataObject ) == iid ) )
+	{
+		*ppvObject = static_cast< IUnknown* >( this );
+		( (LPUNKNOWN)*ppvObject )->AddRef( );
+		hr = S_OK;
+	}
+
+	return hr;
+}
+
+//------------------------------------------------------------------------
+// IUnknown->AddRef
+//------------------------------------------------------------------------
+
+STDMETHODIMP_(ULONG) CXTDataObject::AddRef( )
+{
+	return static_cast< ULONG >( InterlockedIncrement( &m_nRefCnt ) );
+}
+
+//------------------------------------------------------------------------
+// IUnknown->Release
+//------------------------------------------------------------------------
+
+STDMETHODIMP_(ULONG) CXTDataObject::Release( )
+{
+	// we need a helper variable because it's
+	// not allowed to access a member variable
+	// after an object is destroyed
+	ULONG nRefCnt = static_cast< ULONG >( InterlockedDecrement( &m_nRefCnt ) );
+
+	if ( 0 == nRefCnt )
+=====================================================================
+Found a 27 line (128 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/eold.c
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/eold.c
+
+void main_env () {
+    char **ppCurEnv;
+    char *pCurPos;
+    struct equalpos *pNewEqual;
+
+    gpEqualList = NULL;
+
+    for (ppCurEnv = environ; *ppCurEnv != NULL; ++ppCurEnv) {
+        for (pCurPos = *ppCurEnv; *pCurPos != '\0'; ++pCurPos) {
+            if (*pCurPos == '=') {
+                if ((pNewEqual =
+                     (struct EqualPos *) malloc (sizeof (struct EqualPos))) ==
+                    NULL) {
+                    fputs ("Out of Memory", stderr);
+                    exit (EXIT_FAILURE);
+                } /* if */
+                pNewEqual->fpPos = pCurPos;
+                pNewEqual->fpNext = gpEqualList;
+                gpEqualList = pNewEqual;
+                
+                *pCurPos = gEqualReplace;
+            } /* if */
+        } /* for */
+
+        *pCurPos = '=';
+    } /* for */
+} /* void main_env () */
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/dbug/malloc/malloc.c
+Starting at line 483 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/dbug/malloc/malloc.c
+
+	t = "Warning: ";
+	while( *s = *t++)
+	{
+		s++;
+	}
+	t = funcname;
+	while( *s = *t++)
+	{
+		s++;
+	}
+
+	t = "(): ";
+	while( *s = *t++)
+	{
+		s++;
+	}
+
+	t = malloc_err_strings[malloc_errno];
+	while( *s = *t++)
+	{
+		s++;
+	}
+
+	*(s++) = '\n';
+
+	if( write(malloc_errfd,errbuf,(unsigned)(s-errbuf)) != (s-errbuf))
+	{
+		(void) write(2,"I/O error to error file\n",(unsigned)24);
+		exit(110);
+	}
+
+	malloc_err_handler(malloc_warn_level);
+=====================================================================
+Found a 25 line (128 tokens) duplication in the following files: 
+Starting at line 969 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/dp_gui_dialog.cxx
+Starting at line 1013 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/dp_gui_dialog.cxx
+
+void DialogImpl::clickEnableDisable( USHORT id )
+{
+    const ::std::vector< ::std::pair< Reference<deployment::XPackage>,
+        Reference<deployment::XPackageManager> > > selection(
+            m_treelb->getSelectedPackages(true) );
+    OSL_ASSERT( selection.size() > 0 );
+
+    //Check if we want to remove a shared extension and notify user if necessary
+    for (TreeListBoxImpl::CI_PAIR_PACKAGE i = selection.begin();
+         i != selection.end(); i++)
+    {
+        if (! continueActionOnSharedExtension(i->second))
+        {
+            return;
+        }
+        else
+        {
+            //We only show the the messagebox once
+            if (i->second->getContext().equals(OUSTR("shared")))
+                break;
+        }
+    }
+
+    ::rtl::Reference<ProgressCommandEnv> currentCmdEnv(
+        new ProgressCommandEnv( m_xComponentContext, this, id == RID_BTN_ENABLE
+=====================================================================
+Found a 14 line (128 tokens) duplication in the following files: 
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/control/RelationControl.cxx
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/dlg/GroupsSorting.cxx
+
+	String aText  =const_cast< OFieldExpressionControl*>(this)->GetCellText( m_nCurrentPos, nColumnId );
+
+	Point aPos( rRect.TopLeft() );			
+	Size aTextSize( GetDataWindow().GetTextHeight(),GetDataWindow().GetTextWidth( aText ));
+
+	if( aPos.X() < rRect.Right() || aPos.X() + aTextSize.Width() > rRect.Right() ||
+		aPos.Y() < rRect.Top() || aPos.Y() + aTextSize.Height() > rRect.Bottom() )
+		rDev.SetClipRegion( rRect );
+
+	rDev.DrawText( aPos, aText );
+
+	if( rDev.IsClipRegion() )
+		rDev.SetClipRegion();
+}
+=====================================================================
+Found a 23 line (128 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MPreparedStatement.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SPreparedStatement.cxx
+
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OPreparedStatement::acquire() throw()
+{
+	OStatement_BASE2::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OPreparedStatement::release() throw()
+{
+	OStatement_BASE2::release();
+}
+// -----------------------------------------------------------------------------
+Any SAL_CALL OPreparedStatement::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	Any aRet = OStatement_BASE2::queryInterface(rType);
+	if(!aRet.hasValue())
+		aRet = OPreparedStatement_BASE::queryInterface(rType);
+	return aRet;
+}
+// -------------------------------------------------------------------------
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL OPreparedStatement::getTypes(  ) throw(::com::sun::star::uno::RuntimeException)
+{
+	return concatSequences(OPreparedStatement_BASE::getTypes(),OStatement_BASE2::getTypes());
+=====================================================================
+Found a 23 line (128 tokens) duplication in the following files: 
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KTables.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MTables.cxx
+
+sdbcx::ObjectType OTables::createObject(const ::rtl::OUString& _rName)
+{
+	::rtl::OUString aName,aSchema;
+	// sal_Int32 nLen = _rName.indexOf('.');
+	// aSchema = _rName.copy(0,nLen);
+	// aName	= _rName.copy(nLen+1);
+    aSchema = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%"));
+    aName = _rName;
+
+    Sequence< ::rtl::OUString > aTypes(1);
+	aTypes[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%"));
+	//	aTypes[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TABLE"));
+	//	aTypes[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SYSTEMTABLE"));
+	::rtl::OUString sEmpty;
+
+    Reference< XResultSet > xResult = m_xMetaData->getTables(Any(),aSchema,aName,aTypes);
+
+    sdbcx::ObjectType xRet = NULL;
+	if(xResult.is())
+	{
+        Reference< XRow > xRow(xResult,UNO_QUERY);
+		if(xResult->next()) // there can be only one table with this name
+		{
+=====================================================================
+Found a 37 line (128 tokens) duplication in the following files: 
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return sal_True; // should be supported at least
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsIntegrityEnhancementFacility(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInIndexDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInTableDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInTableDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInIndexDefinitions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInDataManipulation(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+=====================================================================
+Found a 23 line (128 tokens) duplication in the following files: 
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+    aRow[6] = new ORowSetValueDecorator(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("VARCHAR")));
+    // COLUMN_SIZE
+    aRow[7] = new ORowSetValueDecorator(s_nCOLUMN_SIZE);
+    // BUFFER_LENGTH, not used
+    aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
+    // DECIMAL_DIGITS.
+    aRow[9] = new ORowSetValueDecorator(s_nDECIMAL_DIGITS);
+    // NUM_PREC_RADIX
+    aRow[10] = new ORowSetValueDecorator((sal_Int32)10);
+    // NULLABLE
+    aRow[11] = new ORowSetValueDecorator(s_nNULLABLE);
+    // REMARKS
+    aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue();
+    // COULUMN_DEF, not used
+    aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
+    // SQL_DATA_TYPE, not used
+    aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue();
+    // SQL_DATETIME_SUB, not used
+    aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue();
+    // CHAR_OCTET_LENGTH, refer to [5]
+    aRow[16] = new ORowSetValueDecorator(s_nCHAR_OCTET_LENGTH);
+    // IS_NULLABLE
+    aRow[18] = new ORowSetValueDecorator(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("YES")));
+=====================================================================
+Found a 18 line (128 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+		GuardedValueSetUpdateAccess lock( rNode );
+
+		Tree const aTree( lock.getTree() );
+		NodeRef const aNode( lock.getNode() );
+
+		Name aChildName = validateElementName(sName,aTree,aNode);
+
+		if( aTree.hasElement(aNode,aChildName) )
+		{
+		    OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot insert into Set. Element '") );
+			sMessage += sName;
+			sMessage += OUString( RTL_CONSTASCII_USTRINGPARAM("' is already present in Set ")  );
+			sMessage += aTree.getAbsolutePath(aNode).toString();
+
+			Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+			throw ElementExistException( sMessage, xContext );
+		}
+		OSL_ENSURE(!configuration::hasChildOrElement(aTree,aNode,aChildName),"ERROR: Configuration: Existing Set element not found by implementation");
+=====================================================================
+Found a 20 line (128 tokens) duplication in the following files: 
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 342 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot replace Set Element: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw NoSuchElementException( e.message(), xContext );
+	}
+	catch (configuration::TypeMismatch& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::ConstraintViolation& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot replace Set Element: ") );
+=====================================================================
+Found a 27 line (128 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppuoptions.cxx
+
+					throw IllegalArgument("the option is unknown" + OString(av[i]));
+			}
+		} else
+		{
+			if (av[i][0] == '@')
+			{
+				FILE* cmdFile = fopen(av[i]+1, "r");
+		  		if( cmdFile == NULL )
+      			{
+					fprintf(stderr, "%s", prepareHelp().getStr());
+					ret = sal_False;
+				} else
+				{
+					int rargc=0;
+					char* rargv[512];
+					char  buffer[512];
+
+					while ( fscanf(cmdFile, "%s", buffer) != EOF )
+					{
+						rargv[rargc]= strdup(buffer);
+						rargc++;
+					}
+					fclose(cmdFile);
+					
+					ret = initOptions(rargc, rargv, bCmdFile);
+					
+					for (long j=0; j < rargc; j++) 
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+					 : : "m"(nRegReturn[0]) );
+			break;
+	}
+}
+
+
+//==================================================================================================
+class MediateClassData
+{
+    typedef ::std::hash_map< OUString, void *, OUStringHash > t_classdata_map;
+	t_classdata_map m_map;
+	Mutex m_mutex;
+    
+public:
+	void const * get_vtable( typelib_InterfaceTypeDescription * pTD ) SAL_THROW( () );
+    
+	inline MediateClassData() SAL_THROW( () )
+        {}
+	~MediateClassData() SAL_THROW( () );
+};
+//__________________________________________________________________________________________________
+MediateClassData::~MediateClassData() SAL_THROW( () )
+{
+	OSL_TRACE( "> calling ~MediateClassData(): freeing mediate vtables." );
+	
+	for ( t_classdata_map::const_iterator iPos( m_map.begin() ); iPos != m_map.end(); ++iPos )
+	{
+		::rtl_freeMemory( iPos->second );
+	}
+}
+//--------------------------------------------------------------------------------------------------
+static inline void codeSnippet( char * code, sal_uInt32 vtable_pos, bool simple_ret_type ) SAL_THROW( () )
+=====================================================================
+Found a 26 line (128 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 21 line (128 tokens) duplication in the following files: 
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 436 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
+{
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+=====================================================================
+Found a 32 line (128 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if ( pCppReturn ) // has complex return
+		{
+			if ( pUnoReturn != pCppReturn ) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if ( pReturnTypeDescr )
+		{
+			typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+			return eRet;
+		}
+		else
+			return typelib_TypeClass_VOID;
+	}
+}
+=====================================================================
+Found a 26 line (128 tokens) duplication in the following files: 
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 671 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+    void ** slots = mapBlockToVtable(block);
+    slots[-2] = 0;
+    slots[-1] = 0;
+    return slots;
+}
+
+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+    void ** slots, unsigned char * code,
+    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
+{
+
+  // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+  // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+  // fflush(stderr);
+
+    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+        typelib_TypeDescription * member = 0;
+        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+        OSL_ASSERT(member != 0);
+        switch (member->eTypeClass) {
+        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+            // Getter:
+            *slots++ = code;
+            code = codeSnippet(
+                code, functionOffset++, vtableOffset,
+=====================================================================
+Found a 37 line (127 tokens) duplication in the following files: 
+Starting at line 3244 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 4115 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+     case OOXML_ELEMENT_drawingml_alphaBiLevel:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_AlphaBiLevelEffect(*this));
+         }
+             break;
+     case OOXML_ELEMENT_drawingml_alphaCeiling:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_AlphaCeilingEffect(*this));
+         }
+             break;
+     case OOXML_ELEMENT_drawingml_alphaFloor:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_AlphaFloorEffect(*this));
+         }
+             break;
+     case OOXML_ELEMENT_drawingml_alphaInv:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_AlphaInverseEffect(*this));
+         }
+             break;
+     case OOXML_ELEMENT_drawingml_alphaMod:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_AlphaModulateEffect(*this));
+         }
+             break;
+     case OOXML_ELEMENT_drawingml_alphaModFix:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_AlphaModulateFixedEffect(*this));
+         }
+             break;
+     case OOXML_ELEMENT_drawingml_alphaOutset:
+=====================================================================
+Found a 16 line (127 tokens) duplication in the following files: 
+Starting at line 6331 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6637 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+        7, // 0x5B '['
+        0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
+
+        7, // 0x5C '\'
+        0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,
+
+        7, // 0x5D ']'
+        0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
+
+        7, // 0x5E '^'
+        0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x5F '_'
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
+=====================================================================
+Found a 19 line (127 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                  image_filter_shift;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0]     += weight * *fg_ptr++;
+                            fg[1]     += weight * *fg_ptr++;
+                            fg[2]     += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+
+                        x_lr--;
+=====================================================================
+Found a 23 line (127 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_base.h
+Starting at line 385 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_base.h
+
+        void blend_opaque_color_vspan(int x, int y, int len, 
+                                      const color_type* colors, 
+                                      const cover_type* covers,
+                                      cover_type cover = cover_full)
+        {
+            if(x > xmax()) return;
+            if(x < xmin()) return;
+
+            if(y < ymin())
+            {
+                int d = ymin() - y;
+                len -= d;
+                if(len <= 0) return;
+                if(covers) covers += d;
+                colors += d;
+                y = ymin();
+            }
+            if(y + len > ymax())
+            {
+                len = ymax() - y + 1;
+                if(len <= 0) return;
+            }
+            m_ren->blend_opaque_color_vspan(x, y, len, colors, covers, cover);
+=====================================================================
+Found a 23 line (127 tokens) duplication in the following files: 
+Starting at line 306 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_base.h
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_base.h
+
+        void blend_opaque_color_hspan(int x, int y, int len, 
+                                      const color_type* colors, 
+                                      const cover_type* covers,
+                                      cover_type cover = cover_full)
+        {
+            if(y > ymax()) return;
+            if(y < ymin()) return;
+
+            if(x < xmin())
+            {
+                int d = xmin() - x;
+                len -= d;
+                if(len <= 0) return;
+                if(covers) covers += d;
+                colors += d;
+                x = xmin();
+            }
+            if(x + len > xmax())
+            {
+                len = xmax() - x + 1;
+                if(len <= 0) return;
+            }
+            m_ren->blend_opaque_color_hspan(x, y, len, colors, covers, cover);
+=====================================================================
+Found a 22 line (127 tokens) duplication in the following files: 
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salnativewidgets-luna.cxx
+Starting at line 591 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salnativewidgets-luna.cxx
+
+        if( nPart == PART_ALL_BUTTONS )
+        {
+            SpinbuttonValue *pValue = (SpinbuttonValue*) aValue.getOptionalVal();
+            if( pValue )
+            {
+                BOOL bOk = FALSE;
+
+                RECT rect;
+                ImplConvertSpinbuttonValues( pValue->mnUpperPart, pValue->mnUpperState, pValue->maUpperRect, &iPart, &iState, &rect );
+                bOk = ImplDrawTheme( hTheme, hDC, iPart, iState, rect, aCaption);
+
+                if( bOk )
+                {
+                    ImplConvertSpinbuttonValues( pValue->mnLowerPart, pValue->mnLowerState, pValue->maLowerRect, &iPart, &iState, &rect );
+                    bOk = ImplDrawTheme( hTheme, hDC, iPart, iState, rect, aCaption);
+                }
+
+                return bOk;
+            }
+        }
+
+        if( nPart == PART_BUTTON_DOWN )
+=====================================================================
+Found a 15 line (127 tokens) duplication in the following files: 
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/app/salinfo.cxx
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/app/salinfo.cxx
+
+    {
+        int w = GetSystemMetrics( SM_CXSCREEN );
+        int h = GetSystemMetrics( SM_CYSCREEN );
+        m_aMonitors.push_back( DisplayMonitor( rtl::OUString(),
+                                               rtl::OUString(),
+                                               Rectangle( Point(), Size( w, h ) ),
+                                               Rectangle( Point(), Size( w, h ) ),
+                                               0 ) );
+        m_aDeviceNameToMonitor[ rtl::OUString() ] = 0;
+        m_nPrimary = 0;
+        RECT aWorkRect;
+        if( SystemParametersInfo( SPI_GETWORKAREA, 0, &aWorkRect, 0 ) )
+            m_aMonitors.back().m_aWorkArea =  Rectangle( aWorkRect.left, aWorkRect.top,
+                                                         aWorkRect.right, aWorkRect.bottom );
+    }
+=====================================================================
+Found a 22 line (127 tokens) duplication in the following files: 
+Starting at line 1163 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+Starting at line 1326 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+		aSz.Width() = nColumns * GetTextWidth( XubString( 'X' ) );
+	else
+		aSz.Width() = aMinSz.Width();
+
+	if ( IsDropDownBox() )
+		aSz.Width() += GetSettings().GetStyleSettings().GetScrollBarSize();
+
+	if ( !IsDropDownBox() )
+	{
+		if ( aSz.Width() < aMinSz.Width() )
+			aSz.Height() += GetSettings().GetStyleSettings().GetScrollBarSize();
+		if ( aSz.Height() < aMinSz.Height() )
+			aSz.Width() += GetSettings().GetStyleSettings().GetScrollBarSize();
+	}
+
+	aSz = CalcWindowSize( aSz );
+	return aSz;
+}
+
+// -----------------------------------------------------------------------
+
+void ListBox::GetMaxVisColumnsAndLines( USHORT& rnCols, USHORT& rnLines ) const
+=====================================================================
+Found a 30 line (127 tokens) duplication in the following files: 
+Starting at line 1576 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 1637 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                if ( xDataSink.is() )
+                {
+                    // PULL: wait for client read
+
+                    // May throw CommandFailedException, DocumentPasswordRequest!
+                    uno::Reference< io::XInputStream > xIn = getInputStream( xEnv );
+                    if ( !xIn.is() )
+                    {
+                        // No interaction if we are not persistent!
+                        uno::Any aProps
+                            = uno::makeAny(
+                                     beans::PropertyValue(
+                                         rtl::OUString(
+                                             RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                         -1,
+                                         uno::makeAny(m_xIdentifier->
+                                                          getContentIdentifier()),
+                                         beans::PropertyState_DIRECT_VALUE));
+                        ucbhelper::cancelCommandExecution(
+                            ucb::IOErrorCode_CANT_READ,
+                            uno::Sequence< uno::Any >(&aProps, 1),
+                            m_eState == PERSISTENT
+                                ? xEnv
+                                : uno::Reference<
+                                      ucb::XCommandEnvironment >(),
+                            rtl::OUString::createFromAscii(
+                                "Got no data stream!" ),
+                            this );
+                        // Unreachable
+                    }
+=====================================================================
+Found a 31 line (127 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+uno::Any SAL_CALL Content::execute(
+        const ucb::Command& aCommand,
+        sal_Int32 /*CommandId*/,
+        const uno::Reference< ucb::XCommandEnvironment >& Environment )
+    throw( uno::Exception,
+           ucb::CommandAbortedException,
+           uno::RuntimeException )
+{
+    uno::Any aRet;
+    
+    if ( aCommand.Name.equalsAsciiL(
+             RTL_CONSTASCII_STRINGPARAM( "getPropertyValues" ) ) )
+    {
+      	//////////////////////////////////////////////////////////////////
+      	// getPropertyValues
+      	//////////////////////////////////////////////////////////////////
+
+        uno::Sequence< beans::Property > Properties;
+      	if ( !( aCommand.Argument >>= Properties ) )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+      	aRet <<= getPropertyValues( Properties, Environment );
+=====================================================================
+Found a 24 line (127 tokens) duplication in the following files: 
+Starting at line 2010 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+Starting at line 2417 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+
+	const ::rtl::OUString* pOldData = aSeq.getConstArray();
+
+	if ( ( nPos < 0 ) || ( nPos > nOldLen ) )
+		nPos = (sal_uInt16) nOldLen;
+
+	sal_uInt16 n;
+	// Items vor der Einfuege-Position
+	for ( n = 0; n < nPos; n++ )
+		pNewData[n] = pOldData[n];
+
+	// Neue Items
+	for ( n = 0; n < nNewItems; n++ )
+		pNewData[nPos+n] = aItems.getConstArray()[n];
+
+	// Rest der alten Items
+	for ( n = nPos; n < nOldLen; n++ )
+		pNewData[nNewItems+n] = pOldData[n];
+
+	uno::Any aAny;
+	aAny <<= aNewSeq;
+	ImplSetPropertyValue( GetPropertyName( BASEPROPERTY_STRINGITEMLIST ), aAny, sal_True );
+}
+
+void UnoComboBoxControl::removeItems( sal_Int16 nPos, sal_Int16 nCount ) throw(uno::RuntimeException)
+=====================================================================
+Found a 13 line (127 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+    virtual TestData SAL_CALL getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+											   sal_Int16& nShort, sal_uInt16& nUShort,
+											   sal_Int32& nLong, sal_uInt32& nULong,
+											   sal_Int64& nHyper, sal_uInt64& nUHyper,
+											   float& fFloat, double& fDouble,
+											   TestEnum& eEnum, rtl::OUString& rStr,
+											   ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+											   ::com::sun::star::uno::Any& rAny,
+											   ::com::sun::star::uno::Sequence< TestElement >& rSequence,
+											   TestData& rStruct )
+		throw(com::sun::star::uno::RuntimeException);
+	
+    virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 8 line (127 tokens) duplication in the following files: 
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+=====================================================================
+Found a 27 line (127 tokens) duplication in the following files: 
+Starting at line 3447 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4274 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+void SwHTMLParser::NewDefList()
+{
+	String aId, aStyle, aClass, aLang, aDir;
+
+	const HTMLOptions *pOptions = GetOptions();
+	for( USHORT i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		switch( pOption->GetToken() )
+		{
+			case HTML_O_ID:
+				aId = pOption->GetString();
+				break;
+			case HTML_O_STYLE:
+				aStyle = pOption->GetString();
+				break;
+			case HTML_O_CLASS:
+				aClass = pOption->GetString();
+				break;
+			case HTML_O_LANG:
+				aLang = pOption->GetString();
+				break;
+			case HTML_O_DIR:
+				aDir = pOption->GetString();
+				break;
+		}
+	}
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 38 line (127 tokens) duplication in the following files: 
+Starting at line 1907 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+Starting at line 2006 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+
+			const BOOL bOldLocked = bLocked;
+			Unlock();
+            if ( IsFlyFreeFrm() )
+            {
+                // --> OD 2004-11-12 #i37068# - no format of position here
+                // and prevent move in method <CheckClip(..)>.
+                // This is needed to prevent layout loop caused by nested
+                // Writer fly frames - inner Writer fly frames format its
+                // anchor, which grows/shrinks the outer Writer fly frame.
+                // Note: position will be invalidated below.
+                bValidPos = TRUE;
+                // --> OD 2005-10-10 #i55416#
+                // Suppress format of width for autowidth frame, because the
+                // format of the width would call <SwTxtFrm::CalcFitToContent()>
+                // for the lower frame, which initiated this shrink.
+                const BOOL bOldFormatHeightOnly = bFormatHeightOnly;
+                const SwFmtFrmSize& rFrmSz = GetFmt()->GetFrmSize();
+                if ( rFrmSz.GetWidthSizeType() != ATT_FIX_SIZE )
+                {
+                    bFormatHeightOnly = TRUE;
+                }
+                // <--
+                static_cast<SwFlyFreeFrm*>(this)->SetNoMoveOnCheckClip( true );
+                ((SwFlyFreeFrm*)this)->SwFlyFreeFrm::MakeAll();
+                static_cast<SwFlyFreeFrm*>(this)->SetNoMoveOnCheckClip( false );
+                // --> OD 2005-10-10 #i55416#
+                if ( rFrmSz.GetWidthSizeType() != ATT_FIX_SIZE )
+                {
+                    bFormatHeightOnly = bOldFormatHeightOnly;
+                }
+                // <--
+                // <--
+            }
+            else
+				MakeAll();
+			_InvalidateSize();
+			InvalidatePos();
+			if ( bOldLocked )
+=====================================================================
+Found a 10 line (127 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxtr.cxx
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxtr.cxx
+
+{
+	long nHDist=GetTextLeftDistance()+GetTextRightDistance();
+	long nVDist=GetTextUpperDistance()+GetTextLowerDistance();
+	long nTWdt0=aRect.GetWidth ()-1-nHDist; if (nTWdt0<0) nTWdt0=0;
+	long nTHgt0=aRect.GetHeight()-1-nVDist; if (nTHgt0<0) nTHgt0=0;
+	long nTWdt1=rRect.GetWidth ()-1-nHDist; if (nTWdt1<0) nTWdt1=0;
+	long nTHgt1=rRect.GetHeight()-1-nVDist; if (nTHgt1<0) nTHgt1=0;
+	aRect=rRect;
+	ImpJustifyRect(aRect);
+	if (bTextFrame) {
+=====================================================================
+Found a 10 line (127 tokens) duplication in the following files: 
+Starting at line 475 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+
+	Rectangle aOld(GetSnapRect());
+	long nMulX=rRect.Right()-rRect.Left();
+	long nDivX=aOld.Right()-aOld.Left();
+	long nMulY=rRect.Bottom()-rRect.Top();
+	long nDivY=aOld.Bottom()-aOld.Top();
+	if (nDivX==0) { nMulX=1; nDivX=1; }
+	if (nDivY==0) { nMulY=1; nDivY=1; }
+	if (nMulX!=nDivX || nMulY!=nDivY) {
+		Fraction aX(nMulX,nDivX);
+		Fraction aY(nMulY,nDivY);
+=====================================================================
+Found a 20 line (127 tokens) duplication in the following files: 
+Starting at line 1925 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+Starting at line 1999 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+
+            if ( !( aEPaM < CreateEPaM( rSelection.Max()) ) )
+                break;
+        }
+
+        aCurSel = SelectWord( aCurSel, ::com::sun::star::i18n::WordType::DICTIONARY_WORD );
+        aWord = GetSelected( aCurSel );
+
+        // Wenn Punkt dahinter, muss dieser mit uebergeben werden !
+        // Falls Abkuerzung...
+        if ( aWord.Len() && ( aCurSel.Max().GetIndex() < aCurSel.Max().GetNode()->Len() ) )
+        {
+            sal_Unicode cNext = aCurSel.Max().GetNode()->GetChar( aCurSel.Max().GetIndex() );
+            if ( cNext == '.' )
+            {
+                aCurSel.Max().GetIndex()++;
+                aWord += cNext;
+            }
+        }
+
+        if ( aWord.Len() > 0 )
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/editeng.cxx
+Starting at line 941 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/editeng.cxx
+
+						aLog << '' << endl << "Debug: ";
+						aLog << GetText( "\n\r" ).GetStr();
+						aLog << endl << endl;
+						aLog << "Ref-Device: " << String( (sal_uInt32)GetRefDevice() ).GetStr() << " Type=" << String( (sal_uInt16)GetRefDevice()->GetOutDevType() ).GetStr() << ", MapX=" << String( GetRefDevice()->GetMapMode().GetScaleX().GetNumerator() ).GetStr() << "/" << String( GetRefDevice()->GetMapMode().GetScaleX().GetDenominator() ).GetStr() <<endl;
+						aLog << "Paper-Width: " << String( GetPaperSize().Width() ).GetStr() << ",\tCalculated: " << String( CalcTextWidth() ).GetStr() << endl;
+=====================================================================
+Found a 17 line (127 tokens) duplication in the following files: 
+Starting at line 2434 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2159 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0xa MSO_I, 10800 }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
+	{ 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,	
+
+	0x4000, 0x0002, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 20 line (127 tokens) duplication in the following files: 
+Starting at line 1233 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x6000, DFF_Prop_adjustValue, 0x0403, 0 }					// 16
+};
+static const sal_Int32 mso_sptCurvedArrowDefault[] =
+{
+	3, 13000, 19400, 14400
+};
+static const SvxMSDffTextRectangles mso_sptCurvedArrowTextRect[] =	// todo
+{
+	{ { 0, 0 }, { 21600, 21600 } }
+};
+static const mso_CustomShape msoCurvedArrow =
+{
+	(SvxMSDffVertPair*)mso_sptCurvedArrowVert, sizeof( mso_sptCurvedArrowVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptCurvedArrowSegm, sizeof( mso_sptCurvedArrowSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptCurvedArrowCalc, sizeof( mso_sptCurvedArrowCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptCurvedArrowDefault,
+	(SvxMSDffTextRectangles*)mso_sptCurvedArrowTextRect, sizeof( mso_sptCurvedArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 28 line (127 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 433 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+void ToolboxController::addStatusListener( const rtl::OUString& aCommandURL )
+{
+    Reference< XDispatch >       xDispatch;
+    Reference< XStatusListener > xStatusListener;
+    com::sun::star::util::URL    aTargetURL;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+        
+        // Already in the list of status listener. Do nothing.
+        if ( pIter != m_aListenerMap.end() )
+            return;
+
+        // Check if we are already initialized. Implementation starts adding itself as status listener when
+        // intialize is called.
+        if ( !m_bInitialized )
+        {
+            // Put into the hash_map of status listener. Will be activated when initialized is called
+            m_aListenerMap.insert( URLToDispatchMap::value_type( aCommandURL, Reference< XDispatch >() ));
+            return;
+        }
+        else
+        {
+            // Add status listener directly as intialize has already been called.
+            Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+            if ( m_xServiceManager.is() && xDispatchProvider.is() )
+            {
+=====================================================================
+Found a 11 line (127 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/defaultregistry/defaultregistry.cxx
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/simpleregistry/simpleregistry.cxx
+
+    virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(  ) throw(RuntimeException);
+
+	// XSimpleRegistry
+    virtual OUString SAL_CALL getURL() throw(RuntimeException);
+    virtual void SAL_CALL open( const OUString& rURL, sal_Bool bReadOnly, sal_Bool bCreate ) throw(InvalidRegistryException, RuntimeException);
+    virtual sal_Bool SAL_CALL isValid(  ) throw(RuntimeException);
+    virtual void SAL_CALL close(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual void SAL_CALL destroy(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual Reference< XRegistryKey > SAL_CALL getRootKey(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual sal_Bool SAL_CALL isReadOnly(  ) throw(InvalidRegistryException, RuntimeException);
+    virtual void SAL_CALL mergeKey( const OUString& aKeyName, const OUString& aUrl ) throw(InvalidRegistryException, MergeConflictException, RuntimeException);
+=====================================================================
+Found a 17 line (127 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/menu/mnumgr.cxx
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/menu/mnumgr.cxx
+
+    USHORT n, nCount = pSVMenu->GetItemCount();
+    for ( n=0; n<nCount; n++ )
+    {
+        USHORT nId = pSVMenu->GetItemId( n );
+        if ( nId == SID_COPY || nId == SID_CUT || nId == SID_PASTE )
+            break;
+    }
+
+    if ( n == nCount )
+    {
+        PopupMenu aPop( SfxResId( MN_CLIPBOARDFUNCS ) );
+        nCount = aPop.GetItemCount();
+        pSVMenu->InsertSeparator();
+        for ( n=0; n<nCount; n++ )
+        {
+            USHORT nId = aPop.GetItemId( n );
+            pSVMenu->InsertItem( nId, aPop.GetItemText( nId ), aPop.GetItemBits( nId ) );
+=====================================================================
+Found a 17 line (127 tokens) duplication in the following files: 
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/lnkbase2.cxx
+Starting at line 483 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/lnkbase2.cxx
+
+				sError = String( ResId( STR_ERROR_DDE, *SOAPP->GetResMgr()));
+				USHORT nFndPos = sError.Search( '%' );
+				if( STRING_NOTFOUND != nFndPos )
+				{
+					sError.Erase( nFndPos, 1 ).Insert( sApp, nFndPos );
+					nFndPos = nFndPos + sApp.Len();
+				}
+				if( STRING_NOTFOUND != ( nFndPos = sError.Search( '%', nFndPos )))
+				{
+					sError.Erase( nFndPos, 1 ).Insert( sTopic, nFndPos );
+					nFndPos = nFndPos + sTopic.Len();
+				}
+				if( STRING_NOTFOUND != ( nFndPos = sError.Search( '%', nFndPos )))
+					sError.Erase( nFndPos, 1 ).Insert( sItem, nFndPos );
+			}
+			else
+				return FALSE;
+=====================================================================
+Found a 23 line (127 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/reg4msdoc/registryw9x.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/reg4msdoc/registrywnt.cxx
+
+		Name.c_str(),
+		0,
+		&Type,
+		reinterpret_cast<LPBYTE>(buff),
+		&size);
+
+	if (ERROR_FILE_NOT_FOUND == rc)
+		throw RegistryValueNotFoundException(rc);
+	else if (ERROR_ACCESS_DENIED == rc)
+		throw RegistryAccessDeniedException(rc);
+	else if (ERROR_SUCCESS != rc)
+		throw RegistryException(rc);
+
+	RegistryValue regval;
+
+	if (REG_DWORD == Type)
+    {
+		regval = RegistryValue(new RegistryValueImpl(Name, *(reinterpret_cast<int*>(buff))));
+    }
+	else if (REG_SZ == Type || REG_EXPAND_SZ == Type || REG_MULTI_SZ == Type)
+    {
+        if (size > 0)
+            regval = RegistryValue(new RegistryValueImpl(Name, std::wstring(reinterpret_cast<wchar_t*>(buff))));
+=====================================================================
+Found a 19 line (127 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewsf.cxx
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvsh.cxx
+
+		OutlinerView* pOLV = pOlView->GetViewByWindow(GetActiveWindow());
+		if (pOLV)
+		{
+			const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
+			if (pFieldItem)
+			{
+                ESelection aSel = pOLV->GetSelection();
+                if ( abs( aSel.nEndPos - aSel.nStartPos ) == 1 )
+                {
+				    const SvxFieldData* pField = pFieldItem->GetField();
+				    if ( pField->ISA(SvxURLField) )
+				    {
+					    aHLinkItem.SetName(((const SvxURLField*) pField)->GetRepresentation());
+					    aHLinkItem.SetURL(((const SvxURLField*) pField)->GetURL());
+					    aHLinkItem.SetTargetFrame(((const SvxURLField*) pField)->GetTargetFrame());
+				    }
+                }
+			}
+		}
+=====================================================================
+Found a 7 line (127 tokens) duplication in the following files: 
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
+        {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
+=====================================================================
+Found a 20 line (127 tokens) duplication in the following files: 
+Starting at line 1526 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleText.cxx
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/textuno.cxx
+
+	if (!pEditEngine)
+	{
+		SfxItemPool* pEnginePool = EditEngine::CreatePool();
+		pEnginePool->FreezeIdRanges();
+		ScHeaderEditEngine* pHdrEngine = new ScHeaderEditEngine( pEnginePool, TRUE );
+
+		pHdrEngine->EnableUndo( FALSE );
+		pHdrEngine->SetRefMapMode( MAP_TWIP );
+
+		//	default font must be set, independently of document
+		//	-> use global pool from module
+
+		SfxItemSet aDefaults( pHdrEngine->GetEmptyItemSet() );
+		const ScPatternAttr& rPattern = (const ScPatternAttr&)SC_MOD()->GetPool().GetDefaultItem(ATTR_PATTERN);
+		rPattern.FillEditItemSet( &aDefaults );
+		//	FillEditItemSet adjusts font height to 1/100th mm,
+		//	but for header/footer twips is needed, as in the PatternAttr:
+		aDefaults.Put( rPattern.GetItem(ATTR_FONT_HEIGHT), EE_CHAR_FONTHEIGHT );
+		aDefaults.Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CJK );
+		aDefaults.Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CTL );
+=====================================================================
+Found a 26 line (127 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlstyle.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtexppr.cxx
+
+				aLeft.Color == aBottom.Color && aLeft.InnerLineWidth == aBottom.InnerLineWidth &&
+				aLeft.OuterLineWidth == aBottom.OuterLineWidth && aLeft.LineDistance == aBottom.LineDistance )
+			{
+				pLeftBorderWidthState->mnIndex = -1;
+				pLeftBorderWidthState->maValue.clear();
+				pRightBorderWidthState->mnIndex = -1;
+				pRightBorderWidthState->maValue.clear();
+				pTopBorderWidthState->mnIndex = -1;
+				pTopBorderWidthState->maValue.clear();
+				pBottomBorderWidthState->mnIndex = -1;
+				pBottomBorderWidthState->maValue.clear();
+			}
+			else
+			{
+				pAllBorderWidthState->mnIndex = -1;
+				pAllBorderWidthState->maValue.clear();
+			}
+		}
+		else
+		{
+			pAllBorderWidthState->mnIndex = -1;
+			pAllBorderWidthState->maValue.clear();
+		}
+	}
+
+	if( pAllBorderDistanceState )
+=====================================================================
+Found a 10 line (127 tokens) duplication in the following files: 
+Starting at line 3405 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3429 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+		{
+			for (k = 0; k < N; k++)
+			{
+				pE->PutDouble(
+					pE->GetDouble(M+1)+pMatY->GetDouble(k)*pMatY->GetDouble(k), M+1);
+				pQ->PutDouble(pQ->GetDouble(0, M+1) + pMatY->GetDouble(k), 0,	M+1);
+				pE->PutDouble(pQ->GetDouble(0, M+1), 0);
+				for (i = 0; i < M; i++)
+				{
+					pQ->PutDouble(pQ->GetDouble(0, i+1)+pMatX->GetDouble(k,i), 0, i+1);
+=====================================================================
+Found a 29 line (127 tokens) duplication in the following files: 
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/converteuctw.c
+Starting at line 344 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022cn.c
+
+                    nChar -= 0x20;
+                    if (nChar >= nFirst && nChar <= nLast)
+                    {
+                        sal_uInt32 nUnicode
+                            = pCns116431992Data[nOffset + (nChar - nFirst)];
+                        if (nUnicode == 0xFFFF)
+                            goto bad_input;
+                        else if (ImplIsHighSurrogate(nUnicode))
+                            if (pDestBufEnd - pDestBufPtr >= 2)
+                            {
+                                nOffset += nLast - nFirst + 1;
+                                nFirst = pCns116431992Data[nOffset++];
+                                *pDestBufPtr++ = (sal_Unicode) nUnicode;
+                                *pDestBufPtr++
+                                    = (sal_Unicode)
+                                          pCns116431992Data[
+                                              nOffset + (nChar - nFirst)];
+                            }
+                            else
+                                goto no_output;
+                        else
+                            if (pDestBufPtr != pDestBufEnd)
+                                *pDestBufPtr++ = (sal_Unicode) nUnicode;
+                            else
+                                goto no_output;
+                    }
+                    else
+                        goto bad_input;
+                    eState = bSo ? IMPL_ISO_2022_CN_TO_UNICODE_STATE_SO :
+=====================================================================
+Found a 7 line (127 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+    };
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 4 line (127 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*@ABCDEFGHIJKLMNO*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*PQRSTUVWXYZ[\]^_*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*`abcdefghijklmno*/
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  /*pqrstuvwxyz{|}~ */
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file_url.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 17 line (127 tokens) duplication in the following files: 
+Starting at line 1779 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2297 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xe0, 0xe0 },
+{ 0x00, 0xe1, 0xc1 },
+{ 0x00, 0xe2, 0xc2 },
+{ 0x00, 0xe3, 0xc3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xd0 },
+=====================================================================
+Found a 22 line (127 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/eval.c
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_eval.c
+
+    int ntok, rnd;
+
+    trp->tp++;
+    if (kw == KIFDEF || kw == KIFNDEF)
+    {
+        if (trp->lp - trp->bp != 4 || trp->tp->type != NAME)
+        {
+            error(ERROR, "Syntax error in #ifdef/#ifndef");
+            return 0;
+        }
+        np = lookup(trp->tp, 0);
+        return (kw == KIFDEF) == (np && np->flag & (ISDEFINED | ISMAC));
+    }
+    ntok = trp->tp - trp->bp;
+    kwdefined->val = KDEFINED;          /* activate special meaning of
+                                         * defined */
+    expandrow(trp, "<if>");
+    kwdefined->val = NAME;
+    vp = vals;
+    op = ops;
+    *op++ = END;
+    for (rnd = 0, tp = trp->bp + ntok; tp < trp->lp; tp++)
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 743 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 755 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3360 - 336f
+    27,27,27,27,27,27,27, 0, 0, 0, 0,27,27,27,27,27,// 3370 - 337f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3380 - 338f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3390 - 339f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33a0 - 33af
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 0, 0,// 1280 - 128f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1290 - 129f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,// 12a0 - 12af
+     5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0,// 12b0 - 12bf
+     5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0,// 12c0 - 12cf
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1470 - 147f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1480 - 148f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1490 - 149f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14a0 - 14af
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 14b0 - 14bf
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5,// 1200 - 120f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1210 - 121f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1220 - 122f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1230 - 123f
+     5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 0, 0,// 1240 - 124f
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x308F, 0x308F, 0x308F, 0x308F, 0x3042, 0x304B, 0x304B, 0x308F, 0x308F, 0x308F, 0x308F, 0x30FB, 0x30FC, 0x30FD, 0x30FE, 0x30FF,  // 30F0
+
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF00
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF10
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF20
+	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  // FF30
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 13 line (127 tokens) duplication in the following files: 
+Starting at line 4234 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 4278 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+                    if( !bIsRotate )
+                    {
+                        padd(ascii("svg:x"), sXML_CDATA,
+                            Double2Str (WTMM( x + a + drawobj->offset2.x)) + ascii("mm"));
+                        padd(ascii("svg:y"), sXML_CDATA,
+                            Double2Str (WTMM( y + b + drawobj->offset2.y)) + ascii("mm"));
+                    }
+
+							padd(ascii("svg:width"), sXML_CDATA,
+								 Double2Str (WTMM( drawobj->extent.w )) + ascii("mm"));
+							padd(ascii("svg:height"), sXML_CDATA,
+								 Double2Str (WTMM( drawobj->extent.h )) + ascii("mm"));
+							if( drawobj->type == HWPDO_ADVANCED_ELLIPSE ){
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 2321 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+  sal_Char aBase64EncodeTable[] =
+    { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+      'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' };
+=====================================================================
+Found a 33 line (127 tokens) duplication in the following files: 
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/macrosmenucontroller.cxx
+Starting at line 1572 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+        }
+    }
+
+    if ( m_xUICommandLabels.is() )
+    {
+        try
+        {
+            if ( aCmdURL.Len() > 0 )
+            {
+                rtl::OUString aStr;
+                Sequence< PropertyValue > aPropSeq;
+                Any a( m_xUICommandLabels->getByName( aCmdURL ));
+                if ( a >>= aPropSeq )
+                {
+                    for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
+                    {
+                        if ( aPropSeq[i].Name.equalsAscii( "Label" ))
+                        {
+                            aPropSeq[i].Value >>= aStr;
+                            break;
+                        }
+                    }
+                }
+                aLabel = aStr;
+            }
+        }
+        catch ( com::sun::star::uno::Exception& )
+        {
+        }
+    }
+
+    return aLabel;
+}
+=====================================================================
+Found a 25 line (127 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/uicommanddescription.cxx
+
+                Sequence< OUString > aGenericNameSeq = m_xGenericUICommands->getElementNames();
+                sal_uInt32 nCount1 = aNameSeq.getLength();
+                sal_uInt32 nCount2 = aGenericNameSeq.getLength();
+
+                aNameSeq.realloc( nCount1 + nCount2 );
+                OUString* pNameSeq = aNameSeq.getArray();
+                const OUString* pGenericSeq = aGenericNameSeq.getConstArray();
+                for ( sal_uInt32 i = 0; i < nCount2; i++ )
+                    pNameSeq[nCount1+i] = pGenericSeq[i];
+            }
+
+            return aNameSeq;
+        }
+        catch( com::sun::star::container::NoSuchElementException& )
+        {
+        }
+        catch ( com::sun::star::lang::WrappedTargetException& )
+        {
+        }
+    }
+
+    return Sequence< rtl::OUString >();
+}
+
+sal_Bool ConfigurationAccess_UICommand::initializeConfigAccess()
+=====================================================================
+Found a 24 line (127 tokens) duplication in the following files: 
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+
+				BmkMenu* pSubMenu = (BmkMenu*)aMenuCfg.CreateBookmarkMenu( rFrame, BOOKMARK_WIZARDMENU );
+				pMenu->SetPopupMenu( nItemId, pSubMenu );
+
+				// #110897#
+				// MenuManager* pSubMenuManager = new MenuManager( rFrame, pSubMenu, sal_True, sal_False );
+				MenuManager* pSubMenuManager = new MenuManager( getServiceFactory(), rFrame, pSubMenu, sal_True, sal_False );
+
+				REFERENCE< XDISPATCH > aXDispatchRef;
+				MenuItemHandler* pMenuItemHandler = new MenuItemHandler(
+															nItemId,
+															pSubMenuManager,
+															aXDispatchRef );
+				if ( pMenu->GetItemText( nItemId ).Len() == 0 )
+					aQueryLabelItemIdVector.push_back( nItemId );
+				m_aMenuItemHandlerVector.push_back( pMenuItemHandler );
+				
+				if ( m_bShowMenuImages && !pMenu->GetItemImage( nItemId ))
+				{
+					Image aImage = GetImageFromURL( rFrame, aItemCommand, FALSE, m_bWasHiContrast );
+                	if ( !!aImage )
+                   		pMenu->SetItemImage( nItemId, aImage );
+				}
+			}
+			else if ( pMenu->GetItemType( i ) != MENUITEM_SEPARATOR )
+=====================================================================
+Found a 5 line (127 tokens) duplication in the following files: 
+Starting at line 1747 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*@ABCDEFGHIJKLMNO*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /*PQRSTUVWXYZ[\]^_*/
+         0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /*`abcdefghijklmno*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0  /*pqrstuvwxyz{|}~ */
+       },
+=====================================================================
+Found a 22 line (127 tokens) duplication in the following files: 
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+void SwSrcEditWindow::InitScrollBars()
+{
+	SetScrollBarRanges();
+
+    Size aOutSz( pOutWin->GetOutputSizePixel() );
+    pVScrollbar->SetVisibleSize( aOutSz.Height() );
+	pVScrollbar->SetPageSize(  aOutSz.Height() * 8 / 10 );
+	pVScrollbar->SetLineSize( pOutWin->GetTextHeight() );
+	pVScrollbar->SetThumbPos( pTextView->GetStartDocPos().Y() );
+	pHScrollbar->SetVisibleSize( aOutSz.Width() );
+	pHScrollbar->SetPageSize( aOutSz.Width() * 8 / 10 );
+	pHScrollbar->SetLineSize( pOutWin->GetTextWidth( 'x' ) );
+	pHScrollbar->SetThumbPos( pTextView->GetStartDocPos().X() );
+
+}
+
+/*--------------------------------------------------------------------
+	Beschreibung:
+ --------------------------------------------------------------------*/
+
+
+IMPL_LINK(SwSrcEditWindow, ScrollHdl, ScrollBar*, pScroll)
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+Starting at line 2321 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+
+	static sal_Unicode const aModifiedBase64[64]
+		= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+			'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+			'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+			'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+			'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '.' };
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 6 line (127 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 2321 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/xml2xcd.cxx
+
+	static sal_Unicode const aModifiedBase64[64]
+		= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+			'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+			'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+			'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+			'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '.' };
+=====================================================================
+Found a 27 line (127 tokens) duplication in the following files: 
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.h
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.h
+
+class ATL_NO_VTABLE CSOActiveX : 
+	public CComObjectRootEx<CComSingleThreadModel>,
+	public IDispatchImpl<ISOActiveX, &IID_ISOActiveX, &LIBID_SO_ACTIVEXLib>,
+	public CComControl<CSOActiveX>,
+	public IPersistStreamInitImpl<CSOActiveX>,
+	public IOleControlImpl<CSOActiveX>,
+	public IOleObjectImpl<CSOActiveX>,
+	public IOleInPlaceActiveObjectImpl<CSOActiveX>,
+	public IViewObjectExImpl<CSOActiveX>,
+	public IOleInPlaceObjectWindowlessImpl<CSOActiveX>,
+//	public IConnectionPointContainerImpl<CSOActiveX>,
+	public CComCoClass<CSOActiveX, &CLSID_SOActiveX>,
+//	public CProxy_ItryPluginEvents< CSOActiveX >,
+	public IPersistPropertyBagImpl< CSOActiveX >,
+	public IProvideClassInfo2Impl<	&CLSID_SOActiveX,
+									&DIID__ISOActiveXEvents,
+									&LIBID_SO_ACTIVEXLib >,
+    public IObjectSafetyImpl< CSOActiveX, 
+                              INTERFACESAFE_FOR_UNTRUSTED_DATA >
+{
+protected:
+	CComPtr<IWebBrowser2>	mWebBrowser2;
+	DWORD					mCookie;
+
+	CComPtr<IDispatch> 		mpDispFactory;
+	CComPtr<IDispatch> 		mpDispFrame;
+	CComPtr<IDispatch> 		mpDispWin;
+=====================================================================
+Found a 11 line (127 tokens) duplication in the following files: 
+Starting at line 995 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+Starting at line 1068 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+
+					else if ( aName == CONFIGKEY_DEFSET_FONT_SLANT ) sProp = PROPERTY_FONTSLANT;
+
+					if ( sProp.getLength() )
+					{
+                        if ( m_aProperties.find(m_aStack.top().second) == m_aProperties.end() )
+                            m_aProperties.insert(::std::map< sal_Int16 ,Sequence< ::rtl::OUString> >::value_type(m_aStack.top().second,Sequence< ::rtl::OUString>()));
+						sal_Int32 nPos = m_aProperties[m_aStack.top().second].getLength();
+						m_aProperties[m_aStack.top().second].realloc(nPos+1);
+						m_aProperties[m_aStack.top().second][nPos] = sProp;
+					}
+					else
+=====================================================================
+Found a 21 line (127 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/polypolyaction.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/polypolyaction.cxx
+
+                                       const rendering::StrokeAttributes&	rStrokeAttributes ); 
+
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation,
+                                     const Subset&					rSubset ) const;
+
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix&	rTransformation,
+                                                       const Subset&					rSubset ) const;
+
+                virtual sal_Int32 getActionCount() const;
+
+            private:
+                using Action::render;
+                virtual bool render( uno::Reference< rendering::XCachedPrimitive >& rCachedPrimitive,
+                                     const ::basegfx::B2DHomMatrix&                 rTransformation ) const;
+
+                const uno::Reference< rendering::XPolyPolygon2D >	mxPolyPoly;
+                const ::Rectangle									maBounds;
+                const CanvasSharedPtr								mpCanvas;
+                rendering::RenderState								maState;
+                const rendering::StrokeAttributes					maStrokeAttributes;
+=====================================================================
+Found a 28 line (127 tokens) duplication in the following files: 
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+	{
+		switch(nHandle)
+		{
+			case PROPERTY_ID_QUERYTIMEOUT:
+				setQueryTimeOut(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_MAXFIELDSIZE:
+				setMaxFieldSize(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_MAXROWS:
+				setMaxRows(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_CURSORNAME:
+				setCursorName(comphelper::getString(rValue));
+				break;
+			case PROPERTY_ID_RESULTSETCONCURRENCY:
+				setResultSetConcurrency(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_RESULTSETTYPE:
+				setResultSetType(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_FETCHDIRECTION:
+				setFetchDirection(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_FETCHSIZE:
+				setFetchSize(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_USEBOOKMARKS:
+=====================================================================
+Found a 18 line (127 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/sql/Date;";
+		static const char * cMethodName = "getDate";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex );
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out ? static_cast <com::sun::star::util::Date> (java_sql_Date( t.pEnv, out )) : ::com::sun::star::util::Date();
+}
+// -------------------------------------------------------------------------
+
+double SAL_CALL java_sql_ResultSet::getDouble( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 14 line (127 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDatabaseMetaData.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::FULL));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+
+		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
+=====================================================================
+Found a 28 line (127 tokens) duplication in the following files: 
+Starting at line 780 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+	{
+		switch(nHandle)
+		{
+			case PROPERTY_ID_QUERYTIMEOUT:
+				setQueryTimeOut(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_MAXFIELDSIZE:
+				setMaxFieldSize(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_MAXROWS:
+				setMaxRows(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_CURSORNAME:
+				setCursorName(comphelper::getString(rValue));
+				break;
+			case PROPERTY_ID_RESULTSETCONCURRENCY:
+				setResultSetConcurrency(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_RESULTSETTYPE:
+				setResultSetType(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_FETCHDIRECTION:
+				setFetchDirection(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_FETCHSIZE:
+				setFetchSize(comphelper::getINT32(rValue));
+				break;
+			case PROPERTY_ID_USEBOOKMARKS:
+=====================================================================
+Found a 17 line (127 tokens) duplication in the following files: 
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataImpl.cxx
+
+		DataType::BIT);
+	m_mColumns[16] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATA_TYPE"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+	m_mColumns[17] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("SQL_DATETIME_SUB"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+	m_mColumns[18] = OColumn(::rtl::OUString(),::rtl::OUString::createFromAscii("NUM_PREC_RADIX"),
+		ColumnValue::NO_NULLS,
+		1,1,0,
+		DataType::INTEGER);
+}
+// -------------------------------------------------------------------------
+void ODatabaseMetaDataResultSetMetaData::setProceduresMap()
+{
+=====================================================================
+Found a 20 line (127 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 16 line (127 tokens) duplication in the following files: 
+Starting at line 3019 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/testtool/objtest.cxx
+Starting at line 3050 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/testtool/objtest.cxx
+
+    		nEnd = PreCompilePart( aSource, nTry2, nEnd, aFinalErrorLabel, nLabelCount );
+
+    	if ( (nCatch = ImplSearch( aSource, nStart, nEnd, CUniString("catch"), nTry )) == STRING_NOTFOUND )
+    	{
+    		xub_StrLen l,c;
+    		CalcPosition( aSource, nTry, l, c );
+    		CError( SbERR_BAD_BLOCK, CUniString("catch"), l, c, c+2 );
+    		return nEnd;
+    	}
+    	if ( (nEndcatch = ImplSearch( aSource, nStart, nEnd, CUniString("endcatch"), nCatch )) == STRING_NOTFOUND )
+    	{
+    		xub_StrLen l,c;
+    		CalcPosition( aSource, nCatch, l, c );
+    		CError( SbERR_BAD_BLOCK, CUniString("endcatch"), l, c, c+4 );
+    		return nEnd;
+    	}
+=====================================================================
+Found a 4 line (127 tokens) duplication in the following files: 
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+Starting at line 344 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser/adoc/cx_a_std.cxx
+
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+	 err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err  // 112 ...
+=====================================================================
+Found a 24 line (127 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/display/idl/hfi_navibar.cxx
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/display/idl/hfi_navibar.cxx
+
+    const StringVector &
+        rManualDescrs = i_ce.Secondaries().Links2DescriptionInManual();
+    if (rManualDescrs.size() == 2)
+    {
+        aNaviMain.Add_StdItem(C_sManual, Env().Link2Manual( rManualDescrs.front() ));
+    }
+    else if (rManualDescrs.size() > 2)
+    {
+        aNaviMain.Add_StdItem(C_sManual, C_sLocalManualLinks);
+    }
+    else
+    {
+        aNaviMain.Add_NoneItem( C_sManual );
+    }
+
+    Env().Get_LinkTo( rLink.reset(), 
+                      Env().Linker().PositionOf_Index() );
+    aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+    aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_ModuleMainRow( const client & i_ce )
+=====================================================================
+Found a 18 line (126 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            long_type fg[3];
+
+            int diameter = base_type::filter().diameter();
+            int filter_size = diameter << image_subpixel_shift;
+            int radius_x = (diameter * base_type::m_rx) >> 1;
+            int radius_y = (diameter * base_type::m_ry) >> 1;
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+            const int16* weight_array = base_type::filter().weight_array();
+
+            do
+            {
+                intr.coordinates(&x, &y);
+
+                x += base_type::filter_dx_int() - radius_x;
+                y += base_type::filter_dy_int() - radius_y;
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+=====================================================================
+Found a 21 line (126 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            calc_type fg[4];
+            const value_type *fg_ptr;
+            color_type* span = base_type::allocator().span();
+=====================================================================
+Found a 17 line (126 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        weight = x_hr * y_hr;
+                        if(x_lr >= 0    && y_lr >= 0 &&
+                           x_lr <= maxx && y_lr <= maxy)
+                        {
+                            fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+                            fg[0] += weight * *fg_ptr++;
+                            fg[1] += weight * *fg_ptr++;
+                            fg[2] += weight * *fg_ptr++;
+                            src_alpha += weight * base_mask;
+                        }
+                        else
+                        {
+                            fg[order_type::R] += back_r * weight;
+                            fg[order_type::G] += back_g * weight;
+                            fg[order_type::B] += back_b * weight;
+                            src_alpha         += back_a * weight;
+                        }
+=====================================================================
+Found a 14 line (126 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/decrypter.cxx
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/encrypter.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::registry ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+int SAL_CALL main( int argc, char **argv )
+{
+=====================================================================
+Found a 14 line (126 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/certmngr.cxx
+Starting at line 24 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/certmngr.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::security ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+int SAL_CALL main( int argc, char **argv )
+{
+=====================================================================
+Found a 18 line (126 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/DlgOASISTContext.cxx
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/NotesTContext.cxx
+
+		GetTransformer().GetUserDefinedActions( OASIS_NOTES_ACTIONS );
+	OSL_ENSURE( pActions, "go no actions" );
+
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+=====================================================================
+Found a 6 line (126 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 7 line (126 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawpie_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawrect_mask.h
+
+static char drawrect_mask_bits[] = {
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x3f, 0x7e, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x3f, 0x7e, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x00, 0x80, 0xff, 0x01, 0x00, 0x80, 0xff, 0x01, 0x00, 0x80, 0xff, 0x01,
+=====================================================================
+Found a 7 line (126 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawfreehand_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawtext_curs.h
+
+static char drawtext_curs_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+   0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+   0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xfd, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+   0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+   0x00, 0x81, 0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00,
+=====================================================================
+Found a 7 line (126 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawrect_mask.h
+
+static char drawrect_mask_bits[] = {
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x3f, 0x7e, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x3f, 0x7e, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+   0x00, 0x80, 0xff, 0x01, 0x00, 0x80, 0xff, 0x01, 0x00, 0x80, 0xff, 0x01,
+=====================================================================
+Found a 6 line (126 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+
+   0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 18 line (126 tokens) duplication in the following files: 
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/xlfd_extd.cxx
+Starting at line 900 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/xlfd_extd.cxx
+
+        char* pMatricsString, rtl_TextEncoding nEncoding ) const
+{
+	int nIdx = GetEncodingIdx( nEncoding );
+	if ( nIdx < 0 )
+		return;
+
+	ExtEncodingInfo &rExtInfo = mpExtEncodingInfo[ nIdx ];
+
+	AppendAttribute( mpFactory->RetrieveFoundry(rExtInfo.mnFoundry),   rString );
+	AppendAttribute( mpFactory->RetrieveFamily(rExtInfo.mnFamily),     rString );
+	AppendAttribute( mpFactory->RetrieveWeight(rExtInfo.mnWeight),     rString );
+	AppendAttribute( mpFactory->RetrieveSlant(rExtInfo.mnSlant), 	   rString );
+	AppendAttribute( mpFactory->RetrieveSetwidth(rExtInfo.mnSetwidth), rString );
+
+	EncodingInfo& rInfo = mpEncodingInfo[ nIdx ];
+	AppendAttribute( mpFactory->RetrieveAddstyle(rInfo.mnAddstyle), rString );
+
+	rString += "-*-";
+=====================================================================
+Found a 40 line (126 tokens) duplication in the following files: 
+Starting at line 2657 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 2786 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                                       rNewName );
+    }
+    catch ( embed::InvalidStorageException const & )
+    {
+        // this storage is in invalid state for eny reason
+        OSL_ENSURE( false, "Caught InvalidStorageException!" );
+        return false;
+    }
+    catch ( lang::IllegalArgumentException const & )
+    {
+        // an illegal argument is provided
+        OSL_ENSURE( false, "Caught IllegalArgumentException!" );
+        return false;
+    }
+    catch ( container::NoSuchElementException const & )
+    {
+        // there is no element with this name in this storage
+        OSL_ENSURE( false, "Caught NoSuchElementException!" );
+        return false;
+    }
+    catch ( container::ElementExistException const & )
+    {
+        // there is no element with this name in this storage
+        OSL_ENSURE( false, "Caught ElementExistException!" );
+        return false;
+    }
+    catch ( io::IOException const & )
+    {
+        // in case of io errors during renaming
+        OSL_ENSURE( false, "Caught IOException!" );
+        return false;
+    }
+    catch ( embed::StorageWrappedTargetException const & )
+    {
+        // wraps other exceptions
+        OSL_ENSURE( false, "Caught StorageWrappedTargetException!" );
+        return false;
+    }
+
+    return commitStorage( xDestStorage );
+=====================================================================
+Found a 29 line (126 tokens) duplication in the following files: 
+Starting at line 1591 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1651 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+      		if ( xDataSink.is() )
+			{
+	  			// PULL: wait for client read
+
+                uno::Reference< io::XInputStream > xIn = getInputStream();
+				if ( !xIn.is() )
+                {
+                    // No interaction if we are not persistent!
+                    uno::Any aProps
+                        = uno::makeAny(
+                                 beans::PropertyValue(
+                                     rtl::OUString(
+                                         RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                     -1,
+                                     uno::makeAny(m_xIdentifier->
+                                                      getContentIdentifier()),
+                                     beans::PropertyState_DIRECT_VALUE));
+                    ucbhelper::cancelCommandExecution(
+                        ucb::IOErrorCode_CANT_READ,
+                        uno::Sequence< uno::Any >(&aProps, 1),
+                        m_eState == PERSISTENT
+                            ? xEnv
+                            : uno::Reference<
+                                  ucb::XCommandEnvironment >(),
+                        rtl::OUString::createFromAscii(
+                            "Got no data stream!" ),
+                        this );
+                    // Unreachable
+                }
+=====================================================================
+Found a 25 line (126 tokens) duplication in the following files: 
+Starting at line 1475 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1444 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            aOldTitle = rtl::OUString();
+
+            // Set error .
+            aRet[ nTitlePos ] <<= uno::Exception(
+                    rtl::OUString::createFromAscii( "Exchange failed!" ),
+                    static_cast< cppu::OWeakObject * >( this ) );
+		}
+	}
+
+    if ( aOldTitle.getLength() )
+	{
+        aEvent.PropertyName = rtl::OUString::createFromAscii( "Title" );
+        aEvent.OldValue     = uno::makeAny( aOldTitle );
+        aEvent.NewValue     = uno::makeAny( m_aProps.getTitle() );
+
+		aChanges.getArray()[ nChanged ] = aEvent;
+		nChanged++;
+	}
+
+	if ( nChanged > 0 )
+	{
+		// Save changes, if content was already made persistent.
+		if ( !bExchange && ( m_eState == PERSISTENT ) )
+        {
+            if ( !storeData( uno::Reference< io::XInputStream >(), xEnv ) )
+=====================================================================
+Found a 20 line (126 tokens) duplication in the following files: 
+Starting at line 1144 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+Starting at line 2571 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+
+	insertDefaultProperties( aUnqPath );
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+
+		shell::ContentMap::iterator it = m_aContent.find( aUnqPath );
+		commit( it,aFileStatus );
+
+		shell::PropertySet::iterator it1;
+		PropertySet& propset = *(it->second.properties);
+
+		for( sal_Int32 i = 0; i < seq.getLength(); ++i )
+		{
+			MyProperty readProp( properties[i].Name );
+			it1 = propset.find( readProp );
+			if( it1 == propset.end() )
+				seq[i] = uno::Any();
+			else
+				seq[i] = it1->getValue();
+		}
+	}
+=====================================================================
+Found a 12 line (126 tokens) duplication in the following files: 
+Starting at line 577 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+							   sal_Int16& nShort, sal_uInt16& nUShort,
+							   sal_Int32& nLong, sal_uInt32& nULong,
+							   sal_Int64& nHyper, sal_uInt64& nUHyper,
+							   float& fFloat, double& fDouble,
+							   TestEnum& eEnum, rtl::OUString& rStr,
+							   ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+							   ::com::sun::star::uno::Any& rAny,
+							   ::com::sun::star::uno::Sequence<TestElement >& rSequence,
+							   TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+=====================================================================
+Found a 11 line (126 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 577 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+								sal_Int16& nShort, sal_uInt16& nUShort,
+								sal_Int32& nLong, sal_uInt32& nULong,
+								sal_Int64& nHyper, sal_uInt64& nUHyper,
+								float& fFloat, double& fDouble,
+								TestEnum& eEnum, rtl::OUString& rStr,
+								::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+								::com::sun::star::uno::Any& rAny,
+								::com::sun::star::uno::Sequence<TestElement >& rSequence,
+								TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 17 line (126 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/grfshex.cxx
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/viewdraw.cxx
+
+				Size			aPrefSize( pObj->GetSnapRect().GetSize() );
+
+				if( rVisArea.Width() > aDocSz.Width())
+					aPos.X() = aDocSz.Width() / 2 + rVisArea.Left();
+
+				if(rVisArea.Height() > aDocSz.Height())
+					aPos.Y() = aDocSz.Height() / 2 + rVisArea.Top();
+
+				if( aPrefSize.Width() && aPrefSize.Height() )
+				{
+					if( pWindow )
+						aSize = pWindow->PixelToLogic( aPrefSize, MAP_TWIP );
+					else
+						aSize = Application::GetDefaultDevice()->PixelToLogic( aPrefSize, MAP_TWIP );
+				}
+				else
+					aSize = Size( 2835, 2835 );
+=====================================================================
+Found a 8 line (126 tokens) duplication in the following files: 
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  1,  0,  1,  0,  0,  	0,  0,  0,  0,  0,	  	// <, >
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,  // 100 - 149
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+=====================================================================
+Found a 16 line (126 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap2.cxx
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap3.cxx
+
+uno::Any SAL_CALL Svx3DSceneObject::getByIndex( sal_Int32 Index )
+	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+	OGuard aGuard( Application::GetSolarMutex() );
+
+	if( !mpObj.is() || mpObj->GetSubList() == NULL )
+		throw uno::RuntimeException();
+
+	if( mpObj->GetSubList()->GetObjCount() <= (sal_uInt32)Index )
+		throw lang::IndexOutOfBoundsException();
+
+	SdrObject* pDestObj = mpObj->GetSubList()->GetObj( Index );
+	if(pDestObj == NULL)
+		throw lang::IndexOutOfBoundsException();
+
+	Reference< drawing::XShape > xShape( pDestObj->getUnoShape(), uno::UNO_QUERY );
+=====================================================================
+Found a 3 line (126 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoole2.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/ole/ndole.cxx
+
+    virtual void SAL_CALL changingState( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::embed::WrongStateException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL stateChanged( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 19 line (126 tokens) duplication in the following files: 
+Starting at line 1767 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2454 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_ToggleButton::WriteContents(SvStorageStreamRef &rContents,
+    const uno::Reference< beans::XPropertySet > &rPropSet,
+    const awt::Size &rSize)
+{
+    sal_Bool bRet=sal_True;
+    sal_uInt32 nOldPos = rContents->Tell();
+    rContents->SeekRel(12);
+
+    pBlockFlags[0] = 0;
+    pBlockFlags[1] = 0x01;
+    pBlockFlags[2] = 0;
+    pBlockFlags[3] = 0x80;
+    pBlockFlags[4] = 0;
+    pBlockFlags[5] = 0;
+    pBlockFlags[6] = 0;
+    pBlockFlags[7] = 0;
+
+    uno::Any aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Enabled"));
+    fEnabled = any2bool(aTmp);
+=====================================================================
+Found a 16 line (126 tokens) duplication in the following files: 
+Starting at line 1556 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 3216 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+
+	const SfxItemSet* pExampleSet = GetTabDialog()->GetExampleSet();
+	if(pExampleSet)
+	{
+		if(SFX_ITEM_SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, FALSE, &pItem))
+			bPreset = ((const SfxBoolItem*)pItem)->GetValue();
+		if(SFX_ITEM_SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, FALSE, &pItem))
+			nTmpNumLvl = ((const SfxUInt16Item*)pItem)->GetValue();
+	}
+	//
+	if(SFX_ITEM_SET == rSet.GetItemState(nNumItemId, FALSE, &pItem))
+	{
+		delete pSaveNum;
+		pSaveNum = new SvxNumRule(*((SvxNumBulletItem*)pItem)->GetNumRule());
+	}
+	bModified = (!pActNum->Get( 0 ) || bPreset);
+	if(*pSaveNum != *pActNum ||
+=====================================================================
+Found a 24 line (126 tokens) duplication in the following files: 
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/measure.cxx
+Starting at line 809 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/measure.cxx
+
+		SdrMeasureTextHPos eHPos;
+
+		switch( eRP )
+		{
+			default:
+			case RP_LT: eVPos = SDRMEASURE_ABOVE;
+						eHPos = SDRMEASURE_TEXTLEFTOUTSIDE; break;
+			case RP_LM: eVPos = SDRMEASURETEXT_VERTICALCENTERED;
+						eHPos = SDRMEASURE_TEXTLEFTOUTSIDE; break;
+			case RP_LB: eVPos = SDRMEASURE_BELOW;
+						eHPos = SDRMEASURE_TEXTLEFTOUTSIDE; break;
+			case RP_MT: eVPos = SDRMEASURE_ABOVE;
+						eHPos = SDRMEASURE_TEXTINSIDE; break;
+			case RP_MM: eVPos = SDRMEASURETEXT_VERTICALCENTERED;
+						eHPos = SDRMEASURE_TEXTINSIDE; break;
+			case RP_MB: eVPos = SDRMEASURE_BELOW;
+						eHPos = SDRMEASURE_TEXTINSIDE; break;
+			case RP_RT: eVPos = SDRMEASURE_ABOVE;
+						eHPos = SDRMEASURE_TEXTRIGHTOUTSIDE; break;
+			case RP_RM: eVPos = SDRMEASURETEXT_VERTICALCENTERED;
+						eHPos = SDRMEASURE_TEXTRIGHTOUTSIDE; break;
+			case RP_RB: eVPos = SDRMEASURE_BELOW;
+						eHPos = SDRMEASURE_TEXTRIGHTOUTSIDE; break;
+		}
+=====================================================================
+Found a 17 line (126 tokens) duplication in the following files: 
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add the filters
+            try
+            {
+=====================================================================
+Found a 9 line (126 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/colrdlg.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/colrdlg.cxx
+
+		ColorCMYK aColorCMYK( maColor );
+		long aCyan    = (long) ( (double)aColorCMYK.GetCyan() * 100.0 / 255.0 + 0.5 );
+		long aMagenta = (long) ( (double)aColorCMYK.GetMagenta() * 100.0 / 255.0 + 0.5 );
+		long aYellow  = (long) ( (double)aColorCMYK.GetYellow() * 100.0 / 255.0 + 0.5 );
+		long aKey     = (long) ( (double)aColorCMYK.GetKey() * 100.0 / 255.0 + 0.5 );
+		maNumCyan.SetValue( aCyan );
+		maNumMagenta.SetValue( aMagenta );
+		maNumYellow.SetValue( aYellow );
+		maNumKey.SetValue( aKey );
+=====================================================================
+Found a 31 line (126 tokens) duplication in the following files: 
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl2.cxx
+Starting at line 3494 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+	USHORT nX = pViewData->nX;
+	DBG_ASSERT(nY<nRows,"GoUpDown:Bad column");
+	DBG_ASSERT(nX<nCols,"GoUpDown:Bad row");
+
+	// Nachbar in gleicher Spalte ?
+	if( bDown )
+		pResult = SearchCol(
+            nX, nY, sal::static_int_cast< USHORT >(nRows-1), nY, TRUE, TRUE );
+	else
+		pResult = SearchCol( nX, nY ,0, nY, FALSE, TRUE );
+	if( pResult )
+		return pResult;
+
+	long nCurRow = nY;
+
+	long nRowOffs, nLastRow;
+	if( bDown )
+	{
+		nRowOffs = 1;
+		nLastRow = nRows;
+	}
+	else
+	{
+		nRowOffs = -1;
+		nLastRow = -1;   // 0-1
+	}
+
+	USHORT nColMin = nX;
+	USHORT nColMax = nX;
+	do
+	{
+=====================================================================
+Found a 30 line (126 tokens) duplication in the following files: 
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl2.cxx
+Starting at line 3445 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+	USHORT nX = pViewData->nX;
+	DBG_ASSERT(nY< nRows,"GoLeftRight:Bad column");
+	DBG_ASSERT(nX< nCols,"GoLeftRight:Bad row");
+	// Nachbar auf gleicher Zeile ?
+	if( bRight )
+		pResult = SearchRow(
+            nY, nX, sal::static_int_cast< USHORT >(nCols-1), nX, TRUE, TRUE );
+	else
+		pResult = SearchRow( nY, nX ,0, nX, FALSE, TRUE );
+	if( pResult )
+		return pResult;
+
+	long nCurCol = nX;
+
+	long nColOffs, nLastCol;
+	if( bRight )
+	{
+		nColOffs = 1;
+		nLastCol = nCols;
+	}
+	else
+	{
+		nColOffs = -1;
+		nLastCol = -1;   // 0-1
+	}
+
+	USHORT nRowMin = nY;
+	USHORT nRowMax = nY;
+	do
+	{
+=====================================================================
+Found a 11 line (126 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+
+void Test_Impl::setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+						   sal_Int16 nShort, sal_uInt16 nUShort,
+						   sal_Int32 nLong, sal_uInt32 nULong,
+						   sal_Int64 nHyper, sal_uInt64 nUHyper,
+						   float fFloat, double fDouble,
+						   test::TestEnum eEnum, const ::rtl::OUString& rStr,
+						   const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+						   const ::com::sun::star::uno::Any& rAny,
+						   const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+						   const test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 27 line (126 tokens) duplication in the following files: 
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/typeconv/convert.cxx
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/typeconv/convert.cxx
+
+		if (nX > 0 && trim[nX-1] == '0') // 0x
+		{
+			sal_Bool bNeg = sal_False;
+			switch (nX)
+			{
+			case 2: // (+|-)0x...
+				if (trim[0] == '-')
+					bNeg = sal_True;
+				else if (trim[0] != '+')
+					return sal_False;
+			case 1: // 0x...
+				break;
+			default:
+				return sal_False;
+			}
+			
+			OUString aHexRest( trim.copy( nX+1 ) );
+			sal_Int64 nRet = aHexRest.toInt64( 16 );
+			
+			if (nRet == 0)
+			{
+				for ( sal_Int32 nPos = aHexRest.getLength(); nPos--; )
+				{
+					if (aHexRest[nPos] != '0')
+						return sal_False;
+				}
+			}
+=====================================================================
+Found a 21 line (126 tokens) duplication in the following files: 
+Starting at line 653 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/linkdlg2.cxx
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/linkdlg.cxx
+
+    XubString aTxt = Links().GetEllipsisString( sFileNm, nWidthPixel, TEXT_DRAW_PATHELLIPSIS );
+	INetURLObject aPath( sFileNm, INET_PROT_FILE );
+	String aFileName = aPath.getName();
+	if( aFileName.Len() > aTxt.Len() )
+		aTxt = aFileName;
+	else if( aTxt.Search( aFileName, aTxt.Len() - aFileName.Len() ) == STRING_NOTFOUND )
+		// filename not in string
+		aTxt = aFileName;
+
+	aEntry = aTxt;
+	aEntry += '\t';
+	if( OBJECT_CLIENT_GRF == rLink.GetObjType() )
+		aEntry += sFilter;
+	else
+		aEntry += sLinkNm;
+	aEntry += '\t';
+	aEntry += sTypeNm;
+	aEntry += '\t';
+	aEntry += ImplGetStateStr( rLink );
+
+    SvLBoxEntry * pE = Links().InsertEntryToColumn( aEntry, nPos );
+=====================================================================
+Found a 17 line (126 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 382 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+
+    Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+    if( xFactory.is() )
+    {
+        Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
+        DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+        Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+        Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+        if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+        {
+            Sequence< Any > aServiceType( 1 );
+            aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
+            xInit->initialize( aServiceType );
+
+            // add the filters
+            try
+            {
+=====================================================================
+Found a 3 line (126 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/ipclient.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoole2.cxx
+
+    virtual void SAL_CALL changingState( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::embed::WrongStateException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL stateChanged( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 36 line (126 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/lnkbase2.cxx
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/lnkbase2.cxx
+
+			String sMimeType( SotExchange::GetFormatMimeType(
+							pImplData->ClientType.nCntntType ));
+			Any aData;
+
+			if( xObj->GetData( aData, sMimeType ) )
+			{
+				DataChanged( sMimeType, aData );
+				//JP 13.07.00: Bug 76817 - for manual Updates there is no
+				//				need to hold the ServerObject
+				if( OBJECT_CLIENT_DDE == nObjType &&
+					LINKUPDATE_ONCALL == GetUpdateMode() && xObj.Is() )
+					xObj->RemoveAllDataAdvise( this );
+				return TRUE;
+			}
+			if( xObj.Is() )
+			{
+				// sollten wir asynschron sein?
+				if( xObj->IsPending() )
+					return TRUE;
+
+				// dann brauchen wir das Object auch nicht mehr
+				AddNextRef();
+				Disconnect();
+				ReleaseRef();
+			}
+		}
+	}
+	return FALSE;
+}
+
+
+USHORT SvBaseLink::GetUpdateMode() const
+{
+	return ( OBJECT_CLIENT_SO & nObjType )
+			? pImplData->ClientType.nUpdateMode
+			: (USHORT)LINKUPDATE_ONCALL;
+=====================================================================
+Found a 11 line (126 tokens) duplication in the following files: 
+Starting at line 546 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+Starting at line 890 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+			{ MAP_LEN( "PageLayoutNames" ), 0, SEQTYPE(::getCppuType((const OUString*)0)), 	::com::sun::star::beans::PropertyAttribute::MAYBEVOID,     0},
+			{ MAP_LEN( "BaseURI" ), 0,
+				  &::getCppuType( (OUString *)0 ),
+				  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+			{ MAP_LEN( "StreamRelPath" ), 0,
+				  &::getCppuType( (OUString *)0 ),
+				  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+			{ MAP_LEN( "StreamName" ), 0,
+				  &::getCppuType( (OUString *)0 ),
+				  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+            { MAP_LEN( "StyleNames" ), 0,
+=====================================================================
+Found a 25 line (126 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+Starting at line 347 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+
+		pOutput->SetSyntaxColor( &aFont, pCell );
+
+	pDev->SetFont( aFont );
+	if ( pFmtDevice != pDev )
+		pFmtDevice->SetFont( aFont );
+
+	aMetric = pFmtDevice->GetFontMetric();
+
+	//
+	//	Wenn auf dem Drucker das Leading 0 ist, gibt es Probleme
+	//	-> Metric vom Bildschirm nehmen (wie EditEngine!)
+	//
+
+	if ( pFmtDevice->GetOutDevType() == OUTDEV_PRINTER && aMetric.GetIntLeading() == 0 )
+	{
+		OutputDevice* pDefaultDev = Application::GetDefaultDevice();
+		MapMode aOld = pDefaultDev->GetMapMode();
+		pDefaultDev->SetMapMode( pFmtDevice->GetMapMode() );
+		aMetric = pDefaultDev->GetFontMetric( aFont );
+		pDefaultDev->SetMapMode( aOld );
+	}
+
+	nAscentPixel = aMetric.GetAscent();
+	if ( bPixelToLogic )
+		nAscentPixel = pRefDevice->LogicToPixel( Size( 0, nAscentPixel ) ).Height();
+=====================================================================
+Found a 10 line (126 tokens) duplication in the following files: 
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbaapplication.cxx
+Starting at line 181 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbaapplication.cxx
+
+ScVbaApplication::setDisplayStatusBar(sal_Bool bDisplayStatusBar) throw (uno::RuntimeException)
+{
+	uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+    uno::Reference< frame::XFrame > xFrame( xModel->getCurrentController()->getFrame(), uno::UNO_QUERY_THROW );
+    uno::Reference< beans::XPropertySet > xProps( xFrame, uno::UNO_QUERY_THROW );
+
+    if( xProps.is() ){
+        uno::Reference< frame::XLayoutManager > xLayoutManager( xProps->getPropertyValue( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LayoutManager")) ), uno::UNO_QUERY_THROW );
+        rtl::OUString url(RTL_CONSTASCII_USTRINGPARAM( "private:resource/statusbar/statusbar" ));
+        if( xLayoutManager.is() ){
+=====================================================================
+Found a 29 line (126 tokens) duplication in the following files: 
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/read.cxx
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/read.cxx
+
+			case Z_Biff4:		// ---------------------------------- Z_Biff4 -
+			{
+				switch( nOpcode )
+				{
+                    // skip chart substream
+                    case EXC_ID2_BOF:
+                    case EXC_ID3_BOF:
+                    case EXC_ID4_BOF:
+                    case EXC_ID5_BOF:           XclTools::SkipSubStream( maStrm );  break;
+
+                    case EXC_ID2_DIMENSIONS:
+                    case EXC_ID3_DIMENSIONS:    ReadDimensions();       break;
+                    case EXC_ID2_BLANK:
+                    case EXC_ID3_BLANK:         ReadBlank();            break;
+                    case EXC_ID2_INTEGER:       ReadInteger();          break;
+                    case EXC_ID2_NUMBER:
+                    case EXC_ID3_NUMBER:        ReadNumber();           break;
+                    case EXC_ID2_LABEL:
+                    case EXC_ID3_LABEL:         ReadLabel();            break;
+                    case EXC_ID2_BOOLERR:
+                    case EXC_ID3_BOOLERR:       ReadBoolErr();          break;
+                    case EXC_ID_RK:             ReadRk();               break;
+
+					case 0x0A:							// EOF			[ 2345]
+                        rNumFmtBfr.CreateScFormats();
+                        Eof();
+						eAkt = Z_Ende;
+						break;
+					case 0x12:  Protect(); break;       // SHEET PROTECTION
+=====================================================================
+Found a 30 line (126 tokens) duplication in the following files: 
+Starting at line 1759 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1931 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+		ScMatrixRef pResMat = MatDiv(pMat1, pMat2);
+		if (!pResMat)
+			SetNoValue();
+		else
+			PushMatrix(pResMat);
+	}
+	else if (pMat1 || pMat2)
+	{
+		double fVal;
+		BOOL bFlag;
+		ScMatrixRef pMat = pMat1;
+		if (!pMat)
+		{
+			fVal = fVal1;
+			pMat = pMat2;
+			bFlag = TRUE;			// double - Matrix
+		}
+		else
+		{
+			fVal = fVal2;
+			bFlag = FALSE;			// Matrix - double
+		}
+        SCSIZE nC, nR;
+		pMat->GetDimensions(nC, nR);
+		ScMatrixRef pResMat = GetNewMat(nC, nR);
+		if (pResMat)
+		{
+			SCSIZE nCount = nC * nR;
+			if (bFlag)
+			{	for ( SCSIZE i = 0; i < nCount; i++ )
+=====================================================================
+Found a 23 line (126 tokens) duplication in the following files: 
+Starting at line 1265 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1441 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+ScMatrixRef ScInterpreter::MatConcat(ScMatrix* pMat1, ScMatrix* pMat2)
+{
+	SCSIZE nC1, nC2, nMinC;
+	SCSIZE nR1, nR2, nMinR;
+	SCSIZE i, j;
+	pMat1->GetDimensions(nC1, nR1);
+	pMat2->GetDimensions(nC2, nR2);
+	if (nC1 < nC2)
+		nMinC = nC1;
+	else
+		nMinC = nC2;
+	if (nR1 < nR2)
+		nMinR = nR1;
+	else
+		nMinR = nR2;
+	ScMatrixRef xResMat = GetNewMat(nMinC, nMinR);
+	if (xResMat)
+	{
+        ScMatrix* pResMat = xResMat;
+		for (i = 0; i < nMinC; i++)
+		{
+			for (j = 0; j < nMinR; j++)
+			{
+=====================================================================
+Found a 30 line (126 tokens) duplication in the following files: 
+Starting at line 8 of /local/ooo-build/ooo-build/src/oog680-m3/salhelper/test/Symbols/loader.cxx
+Starting at line 8 of /local/ooo-build/ooo-build/src/oog680-m3/salhelper/test/dynamicloader/loader.cxx
+
+using namespace salhelper;
+using namespace rtl;
+
+
+class SampleLibLoader 
+	: public ::salhelper::ODynamicLoader<SampleLib_Api>
+{
+public:
+	SampleLibLoader():
+		::salhelper::ODynamicLoader<SampleLib_Api>
+			(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SAL_MODULENAME( "samplelib") ) ), 
+			 ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(SAMPLELIB_INIT_FUNCTION_NAME) ))  
+		{}
+
+};
+
+
+int main( int argc, char *argv[ ], char *envp[ ] )
+{
+	SampleLibLoader Loader;
+	SampleLibLoader Loader2;
+	Loader= Loader2;
+	SampleLib_Api *pApi= Loader.getApi();
+
+	sal_Int32 retint= pApi->funcA( 10);
+	double retdouble= pApi->funcB( 3.14);
+
+
+	return 0;
+}
+=====================================================================
+Found a 6 line (126 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+=====================================================================
+Found a 17 line (126 tokens) duplication in the following files: 
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/sft.c
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/ttcr.c
+
+_inline sal_Int32  GetInt32(const sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+{
+    sal_Int32 t;
+    assert(ptr != 0);
+
+    if (bigendian) {
+        t = (ptr+offset)[0] << 24 | (ptr+offset)[1] << 16 |
+            (ptr+offset)[2] << 8  | (ptr+offset)[3];
+    } else {
+        t = (ptr+offset)[3] << 24 | (ptr+offset)[2] << 16 |
+            (ptr+offset)[1] << 8  | (ptr+offset)[0];
+    }
+
+    return t;
+}
+
+_inline sal_uInt32 GetUInt32(const sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+=====================================================================
+Found a 12 line (126 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/padmin/source/cmddlg.cxx
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/padmin/source/cmddlg.cxx
+
+		pPipe = popen( "which distill 2>/dev/null", "r" );
+		if( pPipe )
+		{
+			fgets( pBuffer, sizeof( pBuffer ), pPipe );
+			int nLen = strlen( pBuffer );
+            if( pBuffer[nLen-1] == '\n' ) // strip newline
+                pBuffer[--nLen] = 0;
+            aCommand = String( ByteString( pBuffer ), aEncoding );
+            if( ( ( aCommand.GetChar( 0 ) == '/' )
+                  || ( aCommand.GetChar( 0 ) == '.' && aCommand.GetChar( 1 ) == '/' )
+                  || ( aCommand.GetChar( 0 ) == '.' && aCommand.GetChar( 1 ) == '.' && aCommand.GetChar( 2 ) == '/' ) )
+                && nLen > 7
+=====================================================================
+Found a 6 line (126 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+=====================================================================
+Found a 34 line (126 tokens) duplication in the following files: 
+Starting at line 523 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sspellimp.cxx
+
+	}
+
+	return xRes;
+}
+
+
+Reference< XSpellAlternatives > SAL_CALL 
+	SpellChecker::spell( const OUString& rWord, const Locale& rLocale, 
+			const PropertyValues& rProperties ) 
+		throw(IllegalArgumentException, RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+ 	if (rLocale == Locale()  ||  !rWord.getLength())
+		return NULL;
+
+	if (!hasLocale( rLocale ))
+#ifdef LINGU_EXCEPTIONS
+		throw( IllegalArgumentException() );
+#else
+		return NULL;
+#endif
+
+	Reference< XSpellAlternatives > xAlt;
+	if (!isValid( rWord, rLocale, rProperties ))
+	{
+		xAlt =  GetProposals( rWord, rLocale );
+	}
+	return xAlt;
+}
+
+
+Reference< XInterface > SAL_CALL SpellChecker_CreateInstance( 
+			const Reference< XMultiServiceFactory > & rSMgr )
+=====================================================================
+Found a 19 line (126 tokens) duplication in the following files: 
+Starting at line 757 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1277 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xf0, 0xf0 },
+{ 0x00, 0xf1, 0xd1 },
+{ 0x00, 0xf2, 0xd2 },
+{ 0x00, 0xf3, 0xd3 },
+{ 0x00, 0xf4, 0xd4 },
+{ 0x00, 0xf5, 0xd5 },
+{ 0x00, 0xf6, 0xd6 },
+{ 0x00, 0xf7, 0xf7 },
+{ 0x00, 0xf8, 0xd8 },
+{ 0x00, 0xf9, 0xd9 },
+{ 0x00, 0xfa, 0xda },
+{ 0x00, 0xfb, 0xdb },
+{ 0x00, 0xfc, 0xdc },
+{ 0x00, 0xfd, 0xdd },
+{ 0x00, 0xfe, 0xde },
+{ 0x00, 0xff, 0xff },
+};
+
+struct cs_info iso4_tbl[] = {
+=====================================================================
+Found a 6 line (126 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+=====================================================================
+Found a 22 line (126 tokens) duplication in the following files: 
+Starting at line 1467 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+Starting at line 1560 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+
+		aIntDepthLine.Load(aIntDepthLeft.GetDoubleValue(), aIntDepthRight.GetDoubleValue(), nXLineDelta);
+
+		if(GetTransformationSet())
+		{
+			basegfx::B3DVector aInvTrans = GetTransformationSet()->GetTranslate();
+			basegfx::B3DVector aInvScale = GetTransformationSet()->GetScale();
+			while(nXLineDelta--)
+			{
+				// Werte vorbereiten
+				sal_uInt32 nDepth = aIntDepthLine.GetUINT32Value();
+
+				// Punkt ausgeben
+				if(IsVisibleAndScissor(nXLineStart, nYPos, nDepth))
+				{
+					Point aTmpPoint(nXLineStart, nYPos);
+					basegfx::B3DPoint aPoint = Get3DCoor(aTmpPoint, nDepth);
+					aPoint -= aInvTrans;
+					aPoint /= aInvScale;
+					basegfx::B3DVector aNormal;
+					aIntVectorLine.GetVector3DValue(aNormal);
+					aNormal.normalize();
+					Color aCol = SolveColorModel(rMat, aNormal, aPoint);
+=====================================================================
+Found a 31 line (126 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/statusbarwrapper.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarwrapper.cxx
+
+void SAL_CALL ToolBarWrapper::setSettings( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& xSettings ) throw (::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aLock( m_aLock );
+    
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( xSettings.is() )
+    {
+        // Create a copy of the data if the container is not const
+        Reference< XIndexReplace > xReplace( xSettings, UNO_QUERY );
+        if ( xReplace.is() )
+            m_xConfigData = Reference< XIndexAccess >( static_cast< OWeakObject * >( new ConstItemContainer( xSettings ) ), UNO_QUERY );
+        else
+            m_xConfigData = xSettings;
+
+        if ( m_xConfigSource.is() && m_bPersistent )
+        {
+            OUString aResourceURL( m_aResourceURL );
+            Reference< XUIConfigurationManager > xUICfgMgr( m_xConfigSource );
+            
+            aLock.unlock();
+            
+            try
+            {
+                xUICfgMgr->replaceSettings( aResourceURL, m_xConfigData );
+            }
+            catch( NoSuchElementException& )
+            {
+            }
+        }
+=====================================================================
+Found a 22 line (126 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/comboboxtoolbarcontroller.cxx
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/togglebuttontoolbarcontroller.cxx
+
+            aSelectedText = m_aCurrentSelection;
+        }        
+    }
+
+    if ( xDispatch.is() && aTargetURL.Complete.getLength() > 0 )
+    {
+        Sequence<PropertyValue>   aArgs( 2 );
+
+        // Add key modifier to argument list
+        aArgs[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "KeyModifier" ));
+        aArgs[0].Value <<= KeyModifier;
+        aArgs[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Text" ));
+        aArgs[1].Value <<= aSelectedText;
+
+        // Execute dispatch asynchronously
+        ExecuteInfo* pExecuteInfo = new ExecuteInfo;
+        pExecuteInfo->xDispatch     = xDispatch;
+        pExecuteInfo->aTargetURL    = aTargetURL;
+        pExecuteInfo->aArgs         = aArgs;
+        Application::PostUserEvent( STATIC_LINK(0, ComplexToolbarController , ExecuteHdl_Impl), pExecuteInfo );
+    }
+}
+=====================================================================
+Found a 18 line (126 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+
+        virtual                   ~ConfigurationAccess_WindowState();
+
+        //  XInterface, XTypeProvider
+        FWK_DECLARE_XINTERFACE
+        FWK_DECLARE_XTYPEPROVIDER
+                      
+        // XNameAccess
+        virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 
+            throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+        
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 
+            throw (::com::sun::star::uno::RuntimeException);
+        
+        virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // XNameContainer
+        virtual void SAL_CALL removeByName( const ::rtl::OUString& sName )
+=====================================================================
+Found a 20 line (126 tokens) duplication in the following files: 
+Starting at line 4967 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 5010 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+
+::sal_Bool SAL_CALL LayoutManager::unlockWindow( const ::rtl::OUString& ResourceURL )
+throw (::com::sun::star::uno::RuntimeException)
+{
+    UIElement aUIElement;
+
+    if ( implts_findElement( ResourceURL, aUIElement ))
+    {
+        if ( aUIElement.m_xUIElement.is() )
+        {
+            try
+            {
+                Reference< css::awt::XWindow > xWindow( aUIElement.m_xUIElement->getRealInterface(), UNO_QUERY );
+                Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+                Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                if ( pWindow &&
+                     pWindow->IsVisible() &&
+                     xDockWindow.is() &&
+                     !xDockWindow->isFloating() )
+                {
+                    aUIElement.m_aDockedData.m_bLocked = sal_False;
+=====================================================================
+Found a 26 line (126 tokens) duplication in the following files: 
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 688 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+	m_rItemAccess( rItemAccess )
+{
+	m_xEmptyList		= Reference< XAttributeList >( (XAttributeList *)new AttributeListImpl, UNO_QUERY );
+	m_aAttributeType	= OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
+	m_aXMLXlinkNS		= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_XLINK_PREFIX ));
+	m_aXMLToolbarNS		= OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_TOOLBAR_PREFIX ));
+}
+
+OWriteToolBoxDocumentHandler::~OWriteToolBoxDocumentHandler()
+{
+}
+
+void OWriteToolBoxDocumentHandler::WriteToolBoxDocument() throw
+( SAXException, RuntimeException )
+{
+    ResetableGuard aGuard( m_aLock );
+
+	m_xWriteDocumentHandler->startDocument();
+
+	// write DOCTYPE line!
+	Reference< XExtendedDocumentHandler > xExtendedDocHandler( m_xWriteDocumentHandler, UNO_QUERY );
+	if ( xExtendedDocHandler.is() )
+	{
+		xExtendedDocHandler->unknown( OUString( RTL_CONSTASCII_USTRINGPARAM( TOOLBAR_DOCTYPE )) );
+		m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	}
+=====================================================================
+Found a 16 line (126 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/File.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FixedText.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/GroupBox.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Hidden.cxx
+
+namespace frm
+{
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+
+//------------------------------------------------------------------
+InterfaceRef SAL_CALL OHiddenModel_CreateInstance(const Reference<XMultiServiceFactory>& _rxFactory) throw (RuntimeException)
+=====================================================================
+Found a 20 line (126 tokens) duplication in the following files: 
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx
+
+    sal_Int32 nLength = aSourceData.getLength();
+    OUString aName, aFileName, aURL;
+    Reference< XInputStream > xInputStream;	
+    for ( sal_Int32 i = 0 ; i < nLength; i++)
+	{
+        aName = aSourceData[i].Name;
+	    if (aName.equalsAscii("InputStream"))
+            aSourceData[i].Value >>= xInputStream;        		
+	    else if ( aName.equalsAscii("FileName"))
+			aSourceData[i].Value >>= aFileName;
+	    else if ( aName.equalsAscii("URL"))
+			aSourceData[i].Value >>= aURL;
+	}
+
+    // we need an input stream
+    OSL_ASSERT(xInputStream.is());
+    if (!xInputStream.is()) return sal_False;
+
+    // rewind seekable stream
+    Reference< XSeekable > xSeek(xInputStream, UNO_QUERY);
+=====================================================================
+Found a 6 line (126 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+=====================================================================
+Found a 13 line (126 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object is not loaded!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 13 line (126 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/visobj.cxx
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/visobj.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The own object has no persistence!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 5 line (126 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 12 line (126 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/JoinController.cxx
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/querycontroller.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::ui::dialogs;
+using namespace ::com::sun::star::awt;
+=====================================================================
+Found a 46 line (126 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/moduledbu.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/core/sdr/ModuleHelper.cxx
+
+		m_pRessources = ResMgr::CreateResMgr(sName);
+	}
+	return m_pRessources;
+}
+
+//=========================================================================
+//= OModule
+//=========================================================================
+::osl::Mutex	OModule::s_aMutex;
+sal_Int32		OModule::s_nClients = 0;
+OModuleImpl*	OModule::s_pImpl = NULL;
+//-------------------------------------------------------------------------
+ResMgr*	OModule::getResManager()
+{
+	ENTER_MOD_METHOD();
+	return s_pImpl->getResManager();
+}
+
+//-------------------------------------------------------------------------
+void OModule::registerClient()
+{
+	::osl::MutexGuard aGuard(s_aMutex);
+	++s_nClients;
+}
+
+//-------------------------------------------------------------------------
+void OModule::revokeClient()
+{
+	::osl::MutexGuard aGuard(s_aMutex);
+	if (!--s_nClients && s_pImpl)
+	{
+		delete s_pImpl;
+		s_pImpl = NULL;
+	}
+}
+
+//-------------------------------------------------------------------------
+void OModule::ensureImpl()
+{
+	if (s_pImpl)
+		return;
+	s_pImpl = new OModuleImpl();
+}
+
+//.........................................................................
+}	// namespace dbaui
+=====================================================================
+Found a 15 line (126 tokens) duplication in the following files: 
+Starting at line 897 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/DExport.cxx
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/TableCopyHelper.cxx
+
+	::rtl::OUString aSql(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INSERT INTO ")));
+	::rtl::OUString sComposedTableName = ::dbtools::composeTableName( _xMetaData, _xDestTable, ::dbtools::eInDataManipulation, false, false, true );
+
+	aSql += sComposedTableName;
+	aSql += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" ( "));
+	// set values and column names
+	::rtl::OUString aValues(RTL_CONSTASCII_USTRINGPARAM(" VALUES ( "));
+	static ::rtl::OUString aPara(RTL_CONSTASCII_USTRINGPARAM("?,"));
+	static ::rtl::OUString aComma(RTL_CONSTASCII_USTRINGPARAM(","));
+
+	::rtl::OUString aQuote;
+	if ( _xMetaData.is() )
+		aQuote = _xMetaData->getIdentifierQuoteString();
+
+	Reference<XColumnsSupplier> xColsSup(_xDestTable,UNO_QUERY);
+=====================================================================
+Found a 31 line (126 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/control/VertSplitView.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/tabledesign/TableDesignView.cxx
+
+void OTableBorderWindow::ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground )
+{
+	const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+
+	if ( bFont )
+	{
+		Font aFont = rStyleSettings.GetAppFont();
+		if ( IsControlFont() )
+			aFont.Merge( GetControlFont() );
+		SetPointFont( aFont );
+//		Set/*Zoomed*/PointFont( aFont );
+	}
+
+	if ( bFont || bForeground )
+	{
+		Color aTextColor = rStyleSettings.GetButtonTextColor();
+		if ( IsControlForeground() )
+			aTextColor = GetControlForeground();
+		SetTextColor( aTextColor );
+	}
+
+	if ( bBackground )
+	{
+		if( IsControlBackground() )
+			SetBackground( GetControlBackground() );
+		else
+			SetBackground( rStyleSettings.GetFaceColor() );
+	}
+}
+// -----------------------------------------------------------------------
+void OTableBorderWindow::DataChanged( const DataChangedEvent& rDCEvt )
+=====================================================================
+Found a 9 line (126 tokens) duplication in the following files: 
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+Starting at line 1109 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+
+					if ( sProp.getLength() )
+					{
+                        if ( m_aProperties.find(m_aStack.top().second) == m_aProperties.end() )
+                            m_aProperties.insert(::std::map< sal_Int16 ,Sequence< ::rtl::OUString> >::value_type(m_aStack.top().second,Sequence< ::rtl::OUString>()));
+						sal_Int32 nPos = m_aProperties[m_aStack.top().second].getLength();
+						m_aProperties[m_aStack.top().second].realloc(nPos+1);
+						m_aProperties[m_aStack.top().second][nPos] = sProp;
+					}
+					else
+=====================================================================
+Found a 11 line (126 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 318 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+
+void Test_Impl::setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+						   sal_Int16 nShort, sal_uInt16 nUShort,
+						   sal_Int32 nLong, sal_uInt32 nULong,
+						   sal_Int64 nHyper, sal_uInt64 nUHyper,
+						   float fFloat, double fDouble,
+						   test::TestEnum eEnum, const ::rtl::OUString& rStr,
+						   const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+						   const ::com::sun::star::uno::Any& rAny,
+						   const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
+						   const test::TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 28 line (126 tokens) duplication in the following files: 
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 1251 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+                                       const uno::Sequence< double >&	rOffsets,
+                                       VirtualDevice&					rVDev,
+                                       const CanvasSharedPtr&			rCanvas, 
+                                       const OutDevState& 				rState,
+                                       const ::basegfx::B2DHomMatrix&	rTextTransform ); 
+
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation,
+                                     const Subset&					rSubset ) const;
+
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix&	rTransformation,
+                                                       const Subset&					rSubset ) const;
+
+                virtual sal_Int32 getActionCount() const;
+
+            private:
+                // TextRenderer interface
+                virtual bool operator()( const rendering::RenderState& rRenderState ) const;
+                    
+                // TODO(P2): This is potentially a real mass object
+                // (every character might be a separate TextAction),
+                // thus, make it as lightweight as possible. For
+                // example, share common RenderState among several
+                // TextActions, maybe using maOffsets for the
+                // translation.
+
+                uno::Reference< rendering::XTextLayout >		mxTextLayout;
+=====================================================================
+Found a 17 line (126 tokens) duplication in the following files: 
+Starting at line 1043 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+Starting at line 1109 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+								const ::rtl::OUString& procedureNamePattern,const ::rtl::OUString& columnNamePattern )
+								throw(SQLException, RuntimeException)
+{
+	const ::rtl::OUString *pSchemaPat = NULL;
+
+	if(schemaPattern.toChar() != '%')
+		pSchemaPat = &schemaPattern;
+	else
+		pSchemaPat = NULL;
+
+	m_bFreeHandle = sal_True;
+	::rtl::OString aPKQ,aPKO,aPKN,aCOL;
+	aPKQ = ::rtl::OUStringToOString(comphelper::getString(catalog),m_nTextEncoding);
+	aPKO = ::rtl::OUStringToOString(schemaPattern,m_nTextEncoding);
+
+	const char	*pPKQ = catalog.hasValue() && aPKQ.getLength() ? aPKQ.getStr()	: NULL,
+				*pPKO = pSchemaPat && pSchemaPat->getLength() ? aPKO.getStr() : NULL,
+=====================================================================
+Found a 24 line (126 tokens) duplication in the following files: 
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MStatement.cxx
+
+	return xRS;
+}
+// -------------------------------------------------------------------------
+
+Reference< XConnection > SAL_CALL OStatement_Base::getConnection(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+	// just return our connection here
+	return (Reference< XConnection >)m_pConnection;
+}
+// -----------------------------------------------------------------------------
+Any SAL_CALL OStatement::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	Any aRet = ::cppu::queryInterface(rType,static_cast< XServiceInfo*> (this));
+	if(!aRet.hasValue())
+		aRet = OStatement_Base::queryInterface(rType);
+	return aRet;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL OStatement_Base::executeUpdate( const ::rtl::OUString& /*sql*/ ) throw(SQLException, RuntimeException)
+{
+    ::dbtools::throwFeatureNotImplementedException( "XPreparedStatement::executeUpdate", *this );
+=====================================================================
+Found a 27 line (126 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 550 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+
+		cout << endl;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////
+void write(Reference<XNameAccess  >& xAccess)
+{
+		if (xAccess.is())
+		{
+			Sequence<OUString> aNames( xAccess->getElementNames() );
+
+			cout << "Element Names: (" << aNames.getLength() << ")";
+			for (int i = 0; i < aNames.getLength(); ++i)
+				cout << "\n[" << i << "] -\t" << aNames[i];
+			cout << endl;
+		}
+		else
+			cout << "BUG: XNameAccess not available";
+		cout << endl;
+}
+void write(Reference< XChild >& xChild)
+{
+		if (xChild.is())
+			cout << "\n[ P ] -\tParent";
+		else
+			cout << "BUG: Parent not available (no XChild)";
+		cout << endl;
+}
+=====================================================================
+Found a 34 line (126 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartTypeTemplate.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/PieChartTypeTemplate.cxx
+
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 31 line (126 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartType.cxx
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ScatterChartType.cxx
+
+    rOutMap[ PROP_SCATTERCHARTTYPE_SPLINE_ORDER ] =
+        uno::makeAny( sal_Int32( 3 ) );
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 34 line (126 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/BarChartTypeTemplate.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
+
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 14 line (126 tokens) duplication in the following files: 
+Starting at line 243 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/AreaChartTypeTemplate.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/BarChartTypeTemplate.cxx
+
+void SAL_CALL BarChartTypeTemplate::resetStyles(
+    const Reference< chart2::XDiagram >& xDiagram )
+    throw (uno::RuntimeException)
+{
+    ChartTypeTemplate::resetStyles( xDiagram );
+    if( getDimension() == 3 )
+    {
+        ::std::vector< Reference< chart2::XDataSeries > > aSeriesVec(
+            DiagramHelper::getDataSeriesFromDiagram( xDiagram ));
+        uno::Any aLineStyleAny( uno::makeAny( drawing::LineStyle_NONE ));
+        for( ::std::vector< Reference< chart2::XDataSeries > >::iterator aIt( aSeriesVec.begin());
+             aIt != aSeriesVec.end(); ++aIt )
+        {
+            Reference< beans::XPropertyState > xState( *aIt, uno::UNO_QUERY );
+=====================================================================
+Found a 34 line (126 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/AreaChartTypeTemplate.cxx
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/BarChartTypeTemplate.cxx
+
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+    static ::cppu::OPropertyArrayHelper aArrayHelper(
+        lcl_GetPropertySequence(),
+        /* bSorted = */ sal_True );
+
+    return aArrayHelper;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 11 line (126 tokens) duplication in the following files: 
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/filter/XMLFilter.cxx
+Starting at line 890 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+			{ MAP_LEN( "PageLayoutNames" ), 0, SEQTYPE(::getCppuType((const OUString*)0)), 	::com::sun::star::beans::PropertyAttribute::MAYBEVOID,     0},
+			{ MAP_LEN( "BaseURI" ), 0,
+				  &::getCppuType( (OUString *)0 ),
+				  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+			{ MAP_LEN( "StreamRelPath" ), 0,
+				  &::getCppuType( (OUString *)0 ),
+				  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+			{ MAP_LEN( "StreamName" ), 0,
+				  &::getCppuType( (OUString *)0 ),
+				  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0 },
+            { MAP_LEN( "StyleNames" ), 0,
+=====================================================================
+Found a 18 line (126 tokens) duplication in the following files: 
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 24 line (126 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+        default:
+=====================================================================
+Found a 18 line (126 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 24 line (126 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+    case typelib_TypeClass_HYPER:
+    case typelib_TypeClass_UNSIGNED_HYPER:
+        ((long*)pRegisterReturn)[1] = edx;
+    case typelib_TypeClass_LONG:
+    case typelib_TypeClass_UNSIGNED_LONG:
+    case typelib_TypeClass_CHAR:
+    case typelib_TypeClass_ENUM:
+        ((long*)pRegisterReturn)[0] = eax;
+        break;
+    case typelib_TypeClass_SHORT:
+    case typelib_TypeClass_UNSIGNED_SHORT:
+        *(unsigned short*)pRegisterReturn = eax;
+        break;
+    case typelib_TypeClass_BOOLEAN:
+    case typelib_TypeClass_BYTE:
+        *(unsigned char*)pRegisterReturn = eax;
+        break;
+    case typelib_TypeClass_FLOAT:
+        asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+        break;
+    case typelib_TypeClass_DOUBLE:
+        asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+        break;
+    default: {
+=====================================================================
+Found a 14 line (126 tokens) duplication in the following files: 
+Starting at line 446 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/macrodlg.cxx
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/moduldlg.cxx
+
+    BOOL bReadOnly = FALSE;
+    if ( nDepth == 1 || nDepth == 2 )
+    {
+        ScriptDocument aDocument( aDesc.GetDocument() );
+        ::rtl::OUString aOULibName( aDesc.GetLibName() );
+        Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY );
+        Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY );
+        if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aOULibName ) && xModLibContainer->isLibraryReadOnly( aOULibName ) ) ||
+             ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aOULibName ) && xDlgLibContainer->isLibraryReadOnly( aOULibName ) ) )
+        {
+            bReadOnly = TRUE;
+        }
+    }
+    if ( bReadOnly || eLocation == LIBRARY_LOCATION_SHARE )
+=====================================================================
+Found a 31 line (126 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessiblelistboxentry.cxx
+
+namespace
+{
+	void checkActionIndex_Impl( sal_Int32 _nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException)
+	{
+		if ( _nIndex < 0 || _nIndex >= ACCESSIBLE_ACTION_COUNT )
+			// only three actions
+			throw ::com::sun::star::lang::IndexOutOfBoundsException();
+	}
+}
+
+//........................................................................
+namespace accessibility
+{
+	//........................................................................
+	// class ALBSolarGuard ---------------------------------------------------------
+
+	/** Aquire the solar mutex. */
+	class ALBSolarGuard : public ::vos::OGuard
+	{
+	public:
+    	inline ALBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+	};
+
+	// class AccessibleListBoxEntry -----------------------------------------------------
+
+	using namespace ::com::sun::star::accessibility;
+	using namespace ::com::sun::star::uno;
+	using namespace ::com::sun::star::lang;
+	using namespace ::com::sun::star;
+
+	DBG_NAME(AccessibleListBoxEntry)
+=====================================================================
+Found a 12 line (125 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/odsl/ODSLParser.cxx
+
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+		// construct an URL of the input file name
+		rtl::OUString arg=aArguments[0];
+		rtl_uString *dir=NULL;
+		osl_getProcessWorkingDir(&dir);
+		rtl::OUString absFileUrl;
+=====================================================================
+Found a 23 line (125 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+
+                                          image_subpixel_shift);
+            do
+            {
+                int x_hr;
+                int y_hr;
+
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                unsigned x1 = m_wrap_mode_x(x_lr);
+                unsigned x2 = ++m_wrap_mode_x;
+
+                unsigned y1 = m_wrap_mode_y(y_lr);
+                unsigned y2 = ++m_wrap_mode_y;
+                const value_type* ptr1 = (value_type*)base_type::source_image().row(y1);
+                const value_type* ptr2 = (value_type*)base_type::source_image().row(y2);
+
+                fg = image_filter_size / 2;
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 530 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+
+                    y_lr = ++m_wrap_mode_y;
+                } while(--y_count);
+
+                fg[0] >>= image_filter_shift;
+                fg[1] >>= image_filter_shift;
+                fg[2] >>= image_filter_shift;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+
+                if(fg[0] > base_mask) fg[0] = base_mask;
+                if(fg[1] > base_mask) fg[1] = base_mask;
+                if(fg[2] > base_mask) fg[2] = base_mask;
+=====================================================================
+Found a 17 line (125 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 1087 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+    Style aStyle( 0x1 | 0x2 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("BackgroundColor") ) ) >>= aStyle._backgroundColor)
+        aStyle._set |= 0x1;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+    
+    // collect elements
+    readDefaults( false );
+=====================================================================
+Found a 12 line (125 tokens) duplication in the following files: 
+Starting at line 1919 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/kde/salnativewidgets-kde.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/macosxint.cxx
+
+                aStyleSettings.SetLightBorderColor( aBack );
+                if( aBack == COL_LIGHTGRAY )
+                            aStyleSettings.SetCheckedColor( Color( 0xCC, 0xCC, 0xCC ) );
+                else
+                {
+                    Color aColor2 = aStyleSettings.GetLightColor();
+                    aStyleSettings.SetCheckedColor( 
+                        Color( (BYTE)(((USHORT)aBack.GetRed()+(USHORT)aColor2.GetRed())/2),
+                                (BYTE)(((USHORT)aBack.GetGreen()+(USHORT)aColor2.GetGreen())/2),
+                                (BYTE)(((USHORT)aBack.GetBlue()+(USHORT)aColor2.GetBlue())/2)
+                                ) );
+                }
+=====================================================================
+Found a 19 line (125 tokens) duplication in the following files: 
+Starting at line 1104 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svppspgraphics.cxx
+Starting at line 1181 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/pspgraphics.cxx
+
+            break;
+	}
+	return WIDTH_DONTKNOW;
+}
+
+FontWeight PspGraphics::ToFontWeight (psp::weight::type eWeight)
+{
+	switch (eWeight)
+	{
+		case psp::weight::Thin:		  return WEIGHT_THIN;
+		case psp::weight::UltraLight: return WEIGHT_ULTRALIGHT;
+		case psp::weight::Light:	  return WEIGHT_LIGHT;
+		case psp::weight::SemiLight:  return WEIGHT_SEMILIGHT;
+		case psp::weight::Normal:	  return WEIGHT_NORMAL;
+		case psp::weight::Medium:	  return WEIGHT_MEDIUM;
+		case psp::weight::SemiBold:	  return WEIGHT_SEMIBOLD;
+		case psp::weight::Bold:		  return WEIGHT_BOLD;
+		case psp::weight::UltraBold:  return WEIGHT_ULTRABOLD;
+		case psp::weight::Black:	  return WEIGHT_BLACK;
+=====================================================================
+Found a 24 line (125 tokens) duplication in the following files: 
+Starting at line 2136 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 2234 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+		Bitmap	aMask( rMask );
+		ULONG	nMirrFlags = 0UL;
+
+		if( aMask.GetBitCount() > 1 )
+			aMask.Convert( BMP_CONVERSION_1BIT_THRESHOLD );
+
+		// mirrored horizontically
+		if( aDestSz.Width() < 0L )
+		{
+			aDestSz.Width() = -aDestSz.Width();
+			aDestPt.X() -= ( aDestSz.Width() - 1L );
+			nMirrFlags |= BMP_MIRROR_HORZ;
+		}
+
+		// mirrored vertically
+		if( aDestSz.Height() < 0L )
+		{
+			aDestSz.Height() = -aDestSz.Height();
+			aDestPt.Y() -= ( aDestSz.Height() - 1L );
+			nMirrFlags |= BMP_MIRROR_VERT;
+		}
+
+		// source cropped?
+		if( aSrcRect != Rectangle( aPt, aMask.GetSizePixel() ) )
+=====================================================================
+Found a 64 line (125 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+// --> FME 2004-07-30 #i32329# Enhanced table selection
+        0, // POINTER_TAB_SELECT_S
+        0, // POINTER_TAB_SELECT_E
+        0, // POINTER_TAB_SELECT_SE
+=====================================================================
+Found a 27 line (125 tokens) duplication in the following files: 
+Starting at line 1242 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+Starting at line 1471 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+
+			nError = copy_recursive( rslvdSrcUnqPath,dstUnqPath,IsWhat,true );
+
+			if( nError == osl::FileBase::E_EXIST )
+			{
+				// "invent" a new valid title.
+
+				sal_Int32 nPos = -1;
+				sal_Int32 nLastDot = dstUnqPath.lastIndexOf( '.' );
+				sal_Int32 nLastSlash = dstUnqPath.lastIndexOf( '/' );
+				if ( ( nLastSlash < nLastDot ) // dot is part of last(!) path segment
+					 && ( nLastSlash != ( nLastDot - 1 ) ) ) // file name does not start with a dot
+					nPos = nLastDot;
+				else
+					nPos = dstUnqPath.getLength();
+
+				sal_Int32 nTry = 0;
+
+				do
+				{
+					newDstUnqPath = dstUnqPath;
+
+					rtl::OUString aPostFix(	rtl::OUString::createFromAscii( "_" ) );
+					aPostFix += rtl::OUString::valueOf( ++nTry );
+
+					newDstUnqPath = newDstUnqPath.replaceAt( nPos, 0, aPostFix );
+
+					nError = copy_recursive( rslvdSrcUnqPath,newDstUnqPath,IsWhat,true );
+=====================================================================
+Found a 11 line (125 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
+							   sal_Int16& nShort, sal_uInt16& nUShort,
+							   sal_Int32& nLong, sal_uInt32& nULong,
+							   sal_Int64& nHyper, sal_uInt64& nUHyper,
+							   float& fFloat, double& fDouble,
+							   TestEnum& eEnum, rtl::OUString& rStr,
+							   ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+							   ::com::sun::star::uno::Any& rAny,
+							   ::com::sun::star::uno::Sequence<TestElement >& rSequence,
+							   TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 35 line (125 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/result/optionhelper.cxx
+Starting at line 119 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/workben/test_filter.cxx
+
+	}
+}
+
+bool match(OStringList const& _aFilter, OStringList const& _aName)
+{
+	OStringList::const_iterator aFilterIter = _aFilter.begin();
+    OStringList::const_iterator aValueIter = _aName.begin();
+    
+    bool bMatch = false;
+
+    while (aFilterIter != _aFilter.end() && aValueIter != _aName.end())
+    {
+		rtl::OString sFilter = *aFilterIter;
+		rtl::OString sName   = *aValueIter;
+
+        if (sFilter == sName)
+        {
+			bMatch = true;
+            ++aFilterIter;
+            ++aValueIter;
+        }
+		else if (sFilter == "*")
+		{
+			bMatch = true;
+			break;
+		}
+        else
+        {
+            // Filter does not match
+            bMatch = false;
+            break;
+        }
+    }
+    return bMatch;
+}
+=====================================================================
+Found a 25 line (125 tokens) duplication in the following files: 
+Starting at line 4822 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 5032 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+                aD.nEndPos = WW8_CP_MAX;
+                pPLCFx->SetDirty(true);
+            }
+            pPLCFx->GetSprms(&aD);
+            pPLCFx->SetDirty(false);
+            aD.ReduceByOffset();
+            rSave.nStartCp = aD.nStartPos;
+            rSave.nPLCFxMemOfs = nOrigSprmsLen - nSprmsLen;
+        }
+    }
+}
+
+void WW8PLCFxDesc::Restore( const WW8PLCFxSave1& rSave )
+{
+    if( pPLCFx )
+    {
+        pPLCFx->Restore( rSave );
+        if( pPLCFx->IsSprm() )
+        {
+            WW8PLCFxDesc aD;
+            aD.nStartPos = rSave.nStartCp+rSave.nCpOfs;
+            nCpOfs = aD.nCpOfs = rSave.nCpOfs;
+            if (!(pPLCFx->SeekPos(aD.nStartPos)))
+            {
+                aD.nEndPos = WW8_CP_MAX;
+=====================================================================
+Found a 36 line (125 tokens) duplication in the following files: 
+Starting at line 4370 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmltab.cxx
+Starting at line 5346 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmltab.cxx
+
+	if( !nToken )
+		nToken = GetNextToken();	// naechstes Token
+
+	sal_Bool bDone = sal_False;
+	while( (IsParserWorking() && !bDone) || bPending )
+	{
+		SaveState( nToken );
+
+		nToken = FilterToken( nToken );
+
+		ASSERT( pPendStack || !bCallNextToken ||
+				pCurTable->GetContext() || pCurTable->HasParentSection(),
+				"Wo ist die Section gebieben?" );
+		if( !pPendStack && bCallNextToken &&
+			(pCurTable->GetContext() || pCurTable->HasParentSection()) )
+		{
+			// NextToken direkt aufrufen (z.B. um den Inhalt von
+			// Floating-Frames oder Applets zu ignorieren)
+			NextToken( nToken );
+		}
+		else switch( nToken )
+		{
+		case HTML_TABLE_ON:
+			if( !pCurTable->GetContext() )
+			{
+				// Wenn noch keine Tabelle eingefuegt wurde,
+				// die naechste Tabelle lesen
+				SkipToken( -1 );
+				bDone = sal_True;
+			}
+//			else
+//			{
+//				NextToken( nToken );
+//			}
+			break;
+		case HTML_TABLE_OFF:
+=====================================================================
+Found a 25 line (125 tokens) duplication in the following files: 
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoparagraph.cxx
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoport.cxx
+Starting at line 2606 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+uno::Sequence< uno::Any > SwXStyle::getPropertyValues(
+    const uno::Sequence< OUString >& rPropertyNames ) throw(uno::RuntimeException)
+{
+    vos::OGuard aGuard(Application::GetSolarMutex());
+    uno::Sequence< uno::Any > aValues;
+
+    // workaround for bad designed API
+    try
+    {
+        aValues = GetPropertyValues_Impl( rPropertyNames );
+    }
+    catch (beans::UnknownPropertyException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property exception caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+    catch (lang::WrappedTargetException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "WrappedTargetException caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+
+    return aValues;
+}
+/*-- 18.04.01 13:07:29---------------------------------------------------
+  -----------------------------------------------------------------------*/
+void SwXStyle::addPropertiesChangeListener(
+=====================================================================
+Found a 28 line (125 tokens) duplication in the following files: 
+Starting at line 1919 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accmap.cxx
+Starting at line 1988 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accmap.cxx
+
+    SwFrmOrObj aFrmOrObj( &_rTxtFrm );
+    if( aFrmOrObj.IsAccessible( GetShell()->IsPreView() ) )
+    {
+        uno::Reference < XAccessible > xAcc;
+        {
+            vos::OGuard aGuard( maMutex );
+
+            if( mpFrmMap )
+            {
+                SwAccessibleContextMap_Impl::iterator aIter =
+                                        mpFrmMap->find( aFrmOrObj.GetSwFrm() );
+                if( aIter != mpFrmMap->end() )
+                {
+                    xAcc = (*aIter).second;
+                }
+            }
+        }
+
+        // deliver event directly, or queue event
+        if( xAcc.is() )
+        {
+            SwAccessibleContext *pAccImpl =
+                            static_cast< SwAccessibleContext *>( xAcc.get() );
+            if( GetShell()->ActionPend() )
+            {
+                SwAccessibleEvent_Impl aEvent(
+                    SwAccessibleEvent_Impl::CARET_OR_STATES,
+                    pAccImpl, &_rTxtFrm,
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 962 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap2.cxx
+Starting at line 988 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap2.cxx
+
+void SAL_CALL SvxShapeControl::setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw( beans::UnknownPropertyException, uno::RuntimeException )
+{
+	OUString aFormsName;
+	convertPropertyName( PropertyName, aFormsName );
+	if( aFormsName.getLength() )
+	{
+		uno::Reference< beans::XPropertyState > xControl( getControl(), uno::UNO_QUERY );
+		uno::Reference< beans::XPropertySet > xPropSet( getControl(), uno::UNO_QUERY );
+
+		if( xControl.is() && xPropSet.is() )
+		{
+			uno::Reference< beans::XPropertySetInfo > xInfo( xPropSet->getPropertySetInfo() );
+			if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
+			{
+=====================================================================
+Found a 19 line (125 tokens) duplication in the following files: 
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoole2.cxx
+Starting at line 482 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdouno.cxx
+
+void SdrUnoObj::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact)
+{
+	SdrRectObj::NbcResize(rRef,xFact,yFact);
+
+	if (aGeo.nShearWink!=0 || aGeo.nDrehWink!=0)
+	{
+		// kleine Korrekturen
+		if (aGeo.nDrehWink>=9000 && aGeo.nDrehWink<27000)
+		{
+			aRect.Move(aRect.Left()-aRect.Right(),aRect.Top()-aRect.Bottom());
+		}
+
+		aGeo.nDrehWink	= 0;
+		aGeo.nShearWink = 0;
+		aGeo.nSin		= 0.0;
+		aGeo.nCos		= 1.0;
+		aGeo.nTan		= 0.0;
+		SetRectsDirty();
+	}
+=====================================================================
+Found a 23 line (125 tokens) duplication in the following files: 
+Starting at line 774 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svddrgmt.cxx
+Starting at line 492 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdsnpv.cxx
+
+	USHORT nRet=SnapPos(aPt,pPV);
+	aPt-=rPt;
+	if ((nRet & SDRSNAP_XSNAPPED) !=0) {
+		if (bXSnapped) {
+			if (Abs(aPt.X())<Abs(nBestXSnap)) {
+				nBestXSnap=aPt.X();
+			}
+		} else {
+			nBestXSnap=aPt.X();
+			bXSnapped=TRUE;
+		}
+	}
+	if ((nRet & SDRSNAP_YSNAPPED) !=0) {
+		if (bYSnapped) {
+			if (Abs(aPt.Y())<Abs(nBestYSnap)) {
+				nBestYSnap=aPt.Y();
+			}
+		} else {
+			nBestYSnap=aPt.Y();
+			bYSnapped=TRUE;
+		}
+	}
+}
+=====================================================================
+Found a 25 line (125 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/view3d.cxx
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/view3d.cxx
+
+SdrModel* E3dView::GetMarkedObjModel() const
+{
+	// Existieren 3D-Objekte, deren Szenen nicht selektiert sind?
+	BOOL bSpecialHandling = FALSE;
+	E3dScene *pScene = NULL;
+
+	long nCnt = GetMarkedObjectCount();
+	for(long nObjs = 0;nObjs < nCnt;nObjs++)
+	{
+		SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
+		if(pObj && pObj->ISA(E3dCompoundObject))
+		{
+			// zugehoerige Szene
+			pScene = ((E3dCompoundObject*)pObj)->GetScene();
+			if(pScene && !IsObjMarked(pScene))
+				bSpecialHandling = TRUE;
+		}
+		// Alle SelectionFlags zuruecksetzen
+		if(pObj && pObj->ISA(E3dObject))
+		{
+			pScene = ((E3dObject*)pObj)->GetScene();
+			if(pScene)
+				pScene->SetSelected(FALSE);
+		}
+	}
+=====================================================================
+Found a 21 line (125 tokens) duplication in the following files: 
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/autocdlg.cxx
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/fontsubs.cxx
+
+        ULONG nSelPos = GetModel()->GetAbsPos(GetCurEntry());
+        USHORT nCol = GetCurrentTabPos() - 1;
+        if ( nCol < 2 )
+        {
+            CheckEntryPos( nSelPos, nCol, !IsChecked( nSelPos, nCol ) );
+            CallImplEventListeners( VCLEVENT_CHECKBOX_TOGGLE, (void*)GetEntry( nSelPos ) );
+        }
+        else
+        {
+            USHORT nCheck = IsChecked(nSelPos, 1) ? 1 : 0;
+            if(IsChecked(nSelPos, 0))
+                nCheck += 2;
+            nCheck--;
+            nCheck &= 3;
+            CheckEntryPos(nSelPos, 1, 0 != (nCheck & 1));
+            CheckEntryPos(nSelPos, 0, 0 != (nCheck & 2));
+        }
+    }
+    else
+        SvxSimpleTable::KeyInput(rKEvt);
+}
+=====================================================================
+Found a 20 line (125 tokens) duplication in the following files: 
+Starting at line 5381 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 5039 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x6000, 0x40c, 0x406, 0 }						// 0x14
+};
+static const sal_Int32 mso_sptCloudCalloutDefault[] =
+{
+	2, 1350, 25920
+};
+static const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] =
+{
+	{ { 3000, 3320 }, { 17110, 17330 } }
+};
+static const mso_CustomShape msoCloudCallout =
+{
+	(SvxMSDffVertPair*)mso_sptCloudCalloutVert, sizeof( mso_sptCloudCalloutVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptCloudCalloutSegm, sizeof( mso_sptCloudCalloutSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptCloudCalloutCalc, sizeof( mso_sptCloudCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptCloudCalloutDefault,
+	(SvxMSDffTextRectangles*)mso_sptCloudCalloutTextRect, sizeof( mso_sptCloudCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0
+=====================================================================
+Found a 18 line (125 tokens) duplication in the following files: 
+Starting at line 3196 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2881 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptMoonVert[] =	// adj value 0 -> 18900
+{
+	{ 21600, 0 },
+	{ 3 MSO_I, 4 MSO_I },	{ 0 MSO_I, 5080 },		{ 0 MSO_I, 10800 },	// ccp
+	{ 0 MSO_I, 16520 },		{ 3 MSO_I, 5 MSO_I },	{ 21600, 21600 },	// ccp
+	{ 9740, 21600 },		{ 0, 16730 },			{ 0, 10800 },		// ccp
+	{ 0, 4870 },			{ 9740, 0 },			{ 21600, 0	}		// ccp
+};
+static const sal_uInt16 mso_sptMoonSegm[] =
+{
+	0x4000, 0x2004, 0x6000, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptMoonCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 24 line (125 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 395 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+
+        Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+        URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+        while ( pIter != m_aListenerMap.end() )
+        {
+            Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance( 
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                        UNO_QUERY );
+            com::sun::star::util::URL aTargetURL;
+            aTargetURL.Complete = pIter->first;
+            xURLTransformer->parseStrict( aTargetURL );
+            
+            Reference< XDispatch > xDispatch( pIter->second );
+            if ( xDispatch.is() )
+            {
+                // We already have a dispatch object => we have to requery.
+                // Release old dispatch object and remove it as listener
+                try
+                {
+                    xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+                }
+                catch ( Exception& )
+                {
+                }
+            }
+=====================================================================
+Found a 26 line (125 tokens) duplication in the following files: 
+Starting at line 766 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/imap.cxx
+Starting at line 841 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/imap.cxx
+
+	ClearImageMap();
+
+	for ( USHORT i = 0; i < nCount; i++ )
+	{
+		IMapObject* pCopyObj = rImageMap.GetIMapObject( i );
+
+		switch( pCopyObj->GetType() )
+		{
+			case( IMAP_OBJ_RECTANGLE ):
+				maList.Insert( new IMapRectangleObject( *(IMapRectangleObject*) pCopyObj ), LIST_APPEND );
+			break;
+
+			case( IMAP_OBJ_CIRCLE ):
+				maList.Insert( new IMapCircleObject( *(IMapCircleObject*) pCopyObj ), LIST_APPEND );
+			break;
+
+			case( IMAP_OBJ_POLYGON ):
+				maList.Insert( new IMapPolygonObject( *(IMapPolygonObject*) pCopyObj ), LIST_APPEND );
+			break;
+
+			default:
+			break;
+		}
+	}
+
+	aName = rImageMap.aName;
+=====================================================================
+Found a 11 line (125 tokens) duplication in the following files: 
+Starting at line 611 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/uriproc/test_uriproc.cxx
+Starting at line 716 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/uriproc/test_uriproc.cxx
+
+          "../c/d", 0 } };
+    for (std::size_t i = 0; i < sizeof data / sizeof data[0]; ++i) {
+        css::uno::Reference< css::uri::XUriReference > baseUriRef(
+            m_uriFactory->parse(
+                rtl::OUString::createFromAscii(data[i].baseUriReference)));
+        CPPUNIT_ASSERT(baseUriRef.is());
+        css::uno::Reference< css::uri::XUriReference > uriRef(
+            m_uriFactory->parse(
+                rtl::OUString::createFromAscii(data[i].uriReference)));
+        CPPUNIT_ASSERT(uriRef.is());
+        css::uno::Reference< css::uri::XUriReference > relative(
+=====================================================================
+Found a 17 line (125 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+
+	throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IllegalAccessException, ::com::sun::star::uno::RuntimeException)
+{
+	if (rObj.getValueTypeClass() == com::sun::star::uno::TypeClass_STRUCT ||
+		rObj.getValueTypeClass() == com::sun::star::uno::TypeClass_EXCEPTION)
+	{
+		typelib_TypeDescription * pObjTD = 0;
+		TYPELIB_DANGER_GET( &pObjTD, rObj.getValueTypeRef() );
+		
+		typelib_TypeDescription * pTD = pObjTD;
+		typelib_TypeDescription * pDeclTD = getDeclTypeDescr();
+		while (pTD && !typelib_typedescription_equals( pTD, pDeclTD ))
+			pTD = (typelib_TypeDescription *)((typelib_CompoundTypeDescription *)pTD)->pBaseTypeDescription;
+		
+		OSL_ENSURE( pTD, "### illegal object type!" );
+		if (pTD)
+		{
+			TYPELIB_DANGER_RELEASE( pObjTD );
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 807 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+::com::sun::star::accessibility::TextSegment SAL_CALL SmGraphicAccessible::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+    String aTxt( GetAccessibleText_Impl() );
+    xub_StrLen nIdx = (xub_StrLen) nIndex;
+    //!! nIndex is allowed to be the string length
+    if (!(/*0 <= nIdx  &&*/  nIdx <= aTxt.Len()))
+        throw IndexOutOfBoundsException();
+
+    ::com::sun::star::accessibility::TextSegment aResult;
+    aResult.SegmentStart = -1;
+    aResult.SegmentEnd = -1;
+
+    if ( (AccessibleTextType::CHARACTER == aTextType)  && nIdx )
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 729 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/prevloc.cxx
+Starting at line 757 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/prevloc.cxx
+
+                    nMainRowEnd);
+            do
+            {
+                if ((*aIter & CR_HIDDEN) == 0)
+                {
+                    SCROW nRangeEnd = aIter.GetRangeEnd();
+                    for (SCROW nRow=aIter.GetRangeStart(); nRow<=nRangeEnd; ++nRow)
+                    {
+                        USHORT nDocH = pDoc->FastGetOriginalRowHeight( nRow, nTab );
+                        long nNextY = nPosY + (long) (nDocH * nScaleY);
+
+                        long nPixelStart = pWindow->LogicToPixel( Size( 0, nPosY ), aCellMapMode ).Height();
+                        long nPixelEnd = pWindow->LogicToPixel( Size( 0, nNextY ), aCellMapMode ).Height() - 1;
+                        pRowInfo[nRowPos].Set( FALSE, nRow,
+=====================================================================
+Found a 8 line (125 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/docuno.cxx
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/optuno.cxx
+
+        {MAP_CHAR_LEN(SC_UNO_DEFTABSTOP),   0,  &getCppuType((sal_Int16*)0),    0, 0},
+        {MAP_CHAR_LEN(SC_UNO_IGNORECASE),   0,  &getBooleanCppuType(),          0, 0},
+        {MAP_CHAR_LEN(SC_UNO_ITERENABLED),  0,  &getBooleanCppuType(),          0, 0},
+        {MAP_CHAR_LEN(SC_UNO_ITERCOUNT),    0,  &getCppuType((sal_Int32*)0),    0, 0},
+        {MAP_CHAR_LEN(SC_UNO_ITEREPSILON),  0,  &getCppuType((double*)0),       0, 0},
+        {MAP_CHAR_LEN(SC_UNO_LOOKUPLABELS), 0,  &getBooleanCppuType(),          0, 0},
+        {MAP_CHAR_LEN(SC_UNO_MATCHWHOLE),   0,  &getBooleanCppuType(),          0, 0},
+        {MAP_CHAR_LEN(SC_UNO_NULLDATE),     0,  &getCppuType((util::Date*)0),   0, 0},
+=====================================================================
+Found a 27 line (125 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/detreg.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/detreg.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+
+extern "C" {
+
+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
+        const  sal_Char**   ppEnvironmentTypeName,
+        uno_Environment**              )
+{
+	*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
+	void*	,
+	void*	pRegistryKey	)
+{
+    Reference< ::registry::XRegistryKey >
+            xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ;
+
+    OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
+    OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
+
+    // Eigentliche Implementierung und ihre Services registrieren
+	sal_Int32 i;
+    Reference< ::registry::XRegistryKey >  xNewKey;
+=====================================================================
+Found a 13 line (125 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chartuno.cxx
+Starting at line 617 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chartuno.cxx
+
+	ScRangeList* pList = new ScRangeList;
+	USHORT nRangeCount = (USHORT)aRanges.getLength();
+	if (nRangeCount)
+	{
+		const table::CellRangeAddress* pAry = aRanges.getConstArray();
+		for (USHORT i=0; i<nRangeCount; i++)
+		{
+			ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet,
+							static_cast<SCCOL>(pAry[i].EndColumn),   pAry[i].EndRow,   pAry[i].Sheet );
+			pList->Append( aRange );
+		}
+	}
+	ScRangeListRef xNewRanges( pList );
+=====================================================================
+Found a 29 line (125 tokens) duplication in the following files: 
+Starting at line 674 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+Starting at line 787 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+
+	aString+='\t';
+	pScChangeAction->GetRefString(aRefStr, pDoc, TRUE);
+	aString+=aRefStr;
+	aString+='\t';
+
+	if(!bIsGenerated)
+	{
+		aString+=aUser;
+		aString+='\t';
+
+        aString+=ScGlobal::pLocaleData->getDate(aDateTime);
+		aString+=' ';
+        aString+=ScGlobal::pLocaleData->getTime(aDateTime);
+		aString+='\t';
+	}
+	else
+	{
+		aString+='\t';
+		aString+='\t';
+	}
+	String aComment=pScChangeAction->GetComment();
+	aComment.EraseAllChars('\n');
+
+	if(aDesc.Len()>0)
+	{
+		aComment.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " (" ));
+		aComment+=aDesc;
+		aComment+=')';
+	}
+=====================================================================
+Found a 22 line (125 tokens) duplication in the following files: 
+Starting at line 2550 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+Starting at line 2624 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+
+			bIsDataLayout = pThisDim->getIsDataLayoutDimension();
+			aDimensionName = pThisDim->getName();
+
+        	const sheet::DataPilotFieldAutoShowInfo& rAutoInfo = pThisLevel->GetAutoShow();
+        	if ( rAutoInfo.IsEnabled )
+        	{
+        	    bAutoShow     = TRUE;
+        	    bAutoTopItems = ( rAutoInfo.ShowItemsMode == sheet::DataPilotFieldShowItemsMode::FROM_TOP );
+        	    nAutoMeasure  = pThisLevel->GetAutoMeasure();
+        	    nAutoCount    = rAutoInfo.ItemCount;
+        	}
+
+            const sheet::DataPilotFieldSortInfo& rSortInfo = pThisLevel->GetSortInfo();
+            if ( rSortInfo.Mode == sheet::DataPilotFieldSortMode::DATA )
+            {
+                bSortByData = TRUE;
+                bSortAscending = rSortInfo.IsAscending;
+                nSortMeasure = pThisLevel->GetSortMeasure();
+            }
+
+            // global order is used to initialize aMembers, so it doesn't have to be looked at later
+    		const ScMemberSortOrder& rGlobalOrder = pThisLevel->GetGlobalOrder();
+=====================================================================
+Found a 21 line (125 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/ustrbuf.c
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/ustrbuf.c
+
+                                                const sal_Char * str,
+                                                sal_Int32 len)
+{
+    sal_Int32 nOldLen;
+    sal_Unicode * pBuf;
+    sal_Int32 n;
+    if( len != 0 )
+    {
+        if (*capacity < (*This)->length + len)
+            rtl_uStringbuffer_ensureCapacity( This, capacity, (*This)->length + len );
+
+        nOldLen = (*This)->length;
+        pBuf = (*This)->buffer;
+
+        /* copy the tail */
+        n = (nOldLen - offset);
+        if( n == 1 )
+            /* optimized for 1 character */
+            pBuf[offset + len] = pBuf[offset];
+        else if( n > 1 )
+            rtl_moveMemory( pBuf + offset + len, pBuf + offset, n * sizeof(sal_Unicode) );
+=====================================================================
+Found a 43 line (125 tokens) duplication in the following files: 
+Starting at line 1735 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 410 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket2.cxx
+
+			AcceptorThread myAcceptorThread( asSocket, rtl::OUString::createFromAscii("0.0.0.0") );
+			myAcceptorThread.create();
+			
+			thread_sleep( 1 );
+			asSocket.close();
+			myAcceptorThread.join();
+						
+			CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.", 
+								myAcceptorThread.isOK()	== sal_True );
+		}
+		
+		CPPUNIT_TEST_SUITE( close );
+		CPPUNIT_TEST( close_001 );
+		CPPUNIT_TEST( close_002 );
+		CPPUNIT_TEST( close_003 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class close
+	
+	/** testing the method:
+		inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const;
+	*/
+	
+	class getLocalAddr : public CppUnit::TestFixture
+	{
+	public:
+		oslSocket sHandle;
+		// initialization
+		void setUp( )
+		{
+			sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+		}
+
+		void tearDown( )
+		{
+			sHandle = NULL;
+		}
+
+		// get the Address of the local end of the socket
+		void getLocalAddr_001()
+		{
+			::osl::Socket sSocket(sHandle);
+			::osl::SocketAddr saBindSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT8 );
+=====================================================================
+Found a 21 line (125 tokens) duplication in the following files: 
+Starting at line 1769 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1853 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+				pProfile->m_Sections[index].m_Entries=0;
+			}
+		}
+
+		if (pProfile->m_Sections == NULL)
+		{
+			pProfile->m_NoSections = 0;
+			pProfile->m_MaxSections = 0;
+			return (sal_False);
+		}
+	}
+
+	pProfile->m_NoSections++;
+
+	if ( pProfile->m_Sections[(pProfile->m_NoSections) - 1].m_Entries != 0 )
+	{
+		free(pProfile->m_Sections[(pProfile->m_NoSections) - 1].m_Entries);
+	}
+	pProfile->m_Sections[pProfile->m_NoSections - 1].m_Entries    = NULL;
+	pProfile->m_Sections[pProfile->m_NoSections - 1].m_NoEntries  = 0;
+	pProfile->m_Sections[pProfile->m_NoSections - 1].m_MaxEntries = 0;
+=====================================================================
+Found a 11 line (125 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+                                     int Line, const sal_Char* Entry, sal_uInt32 Len);
+static void                 removeEntry(osl_TProfileSection *pSection, sal_uInt32 NoEntry);
+static sal_Bool             addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* Section, sal_uInt32 Len);
+static void                 removeSection(osl_TProfileImpl* pProfile, osl_TProfileSection *pSection);
+static osl_TProfileSection* findEntry(osl_TProfileImpl* pProfile, const sal_Char* Section,
+                                      const sal_Char* Entry, sal_uInt32 *pNoEntry);
+static sal_Bool             loadProfile(osl_TFile* pFile, osl_TProfileImpl* pProfile);
+static sal_Bool             storeProfile(osl_TProfileImpl* pProfile, sal_Bool bCleanup);
+static osl_TProfileImpl*    acquireProfile(oslProfile Profile, sal_Bool bWriteable);
+static sal_Bool             releaseProfile(osl_TProfileImpl* pProfile);
+static sal_Bool             lookupProfile(const sal_Unicode *strPath, const sal_Unicode *strFile, sal_Unicode *strProfile);
+=====================================================================
+Found a 17 line (125 tokens) duplication in the following files: 
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/padmin/source/padialog.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/workben/svptest.cxx
+
+	DrawGradient( Rectangle( Point( 1000, 6900 ),
+                             Size( aPaperSize.Width() - 2000,
+                                   500 ) ), aGradient );
+
+
+
+	LineInfo aLineInfo( LINE_SOLID, 200 );
+	double sind = sin( DELTA*M_PI/180.0 );
+	double cosd = cos( DELTA*M_PI/180.0 );
+	double factor = 1 + (DELTA/1000.0);
+	int n=0;
+	Color aLineColor( 0, 0, 0 );
+	Color aApproachColor( 0, 0, 200 );
+	while ( aP2.X() < aCenter.X() && n++ < 680 )
+	{
+		aLineInfo.SetWidth( n/3 );
+		aLineColor = approachColor( aLineColor, aApproachColor );
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 550 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 1485 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+	 		(*(dash-1)>='0')) || (*(dash-1)=='.'))) {
+         *dash='-';
+	 n = 1;
+	 if (*(dash - n) == '.') n++;
+	 // search first not a number character to left from dash
+	 while (((dash - n)>=cw) && ((*(dash - n)=='0') || (n < 3)) && (n < 6)) {
+	    n++;
+	 }
+	 if ((dash - n) < cw) n--;
+	 // numbers: valami1000000-hoz
+	 // examine 100000-hoz, 10000-hoz 1000-hoz, 10-hoz,
+	 // 56-hoz, 6-hoz
+	 for(; n >= 1; n--) {
+	    if ((*(dash - n) >= '0') && (*(dash - n) <= '9') && check(dash - n)) {
+=====================================================================
+Found a 17 line (125 tokens) duplication in the following files: 
+Starting at line 1747 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 2265 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xc0, 0xc0 },
+{ 0x01, 0xe1, 0xc1 },
+{ 0x01, 0xe2, 0xc2 },
+{ 0x01, 0xe3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x01, 0xf0, 0xd0 },
+=====================================================================
+Found a 16 line (125 tokens) duplication in the following files: 
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/pumptest.cxx
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/pumptest.cxx
+
+void OPumpTest::testTerminate( const Reference< XInterface > &r )
+{
+    TestCase t( m_rSmgr, r );
+
+    ERROR_ASSERT( ! t.m_pTestListener->m_bStarted , "started too early" );
+    ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "terminiation unexpected" );
+    ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
+    ERROR_ASSERT( ! t.m_pTestListener->m_bClosed, "unexpected clase" );
+
+    t.m_rControl->start();
+    mywait();
+ 
+    ERROR_ASSERT( t.m_pTestListener->m_bStarted , "should have been started already" );
+    ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "terminiation unexpected" );
+    ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
+    ERROR_ASSERT( ! t.m_pTestListener->m_bClosed, "unexpected clase" );
+=====================================================================
+Found a 22 line (125 tokens) duplication in the following files: 
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acceptor.cxx
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/connector.cxx
+
+                    throw NoConnectException( sMessage ,Reference< XInterface > () );
+                }
+            }
+            else if (aDesc.getName().equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(
+                                                      "socket")))
+            {
+                rtl::OUString aHost;
+                if (aDesc.hasParameter(
+                        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("host"))))
+                    aHost = aDesc.getParameter(
+                        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("host")));
+                else
+                    aHost = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                              "localhost"));
+                sal_uInt16 nPort = static_cast< sal_uInt16 >(
+                    aDesc.getParameter(
+                        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("port"))).
+                    toInt32());
+                bool bTcpNoDelay
+                    = aDesc.getParameter(
+                        rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                          "tcpnodelay"))).toInt32() != 0;
+=====================================================================
+Found a 4 line (125 tokens) duplication in the following files: 
+Starting at line 1338 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1386 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25c0 - 25cf
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25d0 - 25df
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 25e0 - 25ef
+    10,10,10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0,// 25f0 - 25ff
+=====================================================================
+Found a 4 line (125 tokens) duplication in the following files: 
+Starting at line 1127 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c10 - 0c1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c20 - 0c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,// 0c30 - 0c3f
+=====================================================================
+Found a 4 line (125 tokens) duplication in the following files: 
+Starting at line 1085 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1162 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 6 line (125 tokens) duplication in the following files: 
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0                            // /
+=====================================================================
+Found a 5 line (125 tokens) duplication in the following files: 
+Starting at line 831 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,20,21,// fd30 - fd3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fd40 - fd4f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd50 - fd5f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd60 - fd6f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd70 - fd7f
+=====================================================================
+Found a 5 line (125 tokens) duplication in the following files: 
+Starting at line 827 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1261 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1860 - 186f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 4 line (125 tokens) duplication in the following files: 
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,24,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25c0 - 25cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25d0 - 25df
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25e0 - 25ef
+    27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0,// 25f0 - 25ff
+=====================================================================
+Found a 19 line (125 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/macrosmenucontroller.cxx
+
+void SAL_CALL MacrosMenuController::setPopupMenu( const Reference< css::awt::XPopupMenu >& xPopupMenu ) throw ( RuntimeException )
+{
+    ResetableGuard aLock( m_aLock );
+
+    if ( m_bDisposed )
+        throw DisposedException();
+    
+    if ( m_xFrame.is() && !m_xPopupMenu.is() )
+    {
+        // Create popup menu on demand
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        
+        m_xPopupMenu = xPopupMenu;
+	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+            
+        Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance( 
+                                                        rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                    UNO_QUERY );
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+=====================================================================
+Found a 34 line (125 tokens) duplication in the following files: 
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+void SAL_CALL OReadMenuHandler::characters(const rtl::OUString&)
+throw(	SAXException, RuntimeException )
+{
+}
+
+
+void SAL_CALL OReadMenuHandler::endElement( const OUString& aName )
+	throw( SAXException, RuntimeException )
+{
+	if ( m_bMenuPopupMode )
+	{
+		--m_nElementDepth;
+		if ( 0 == m_nElementDepth )
+		{
+			m_xReader->endDocument();
+			m_xReader = Reference< XDocumentHandler >();
+			m_bMenuPopupMode = sal_False;
+			if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUPOPUP )))
+			{
+				OUString aErrorMessage = getErrorLineString();
+				aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menupopup expected!" ));
+				throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+			}
+		}
+		else
+			m_xReader->endElement( aName );
+	}
+}
+
+
+// -----------------------------------------------------------------------------
+
+
+OReadMenuPopupHandler::OReadMenuPopupHandler(     
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Button.cxx
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/CheckBox.cxx
+
+namespace frm
+{
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::form::binding;
+=====================================================================
+Found a 22 line (125 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfileview.cxx
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/docvw/srcedtw.cxx
+
+		aScrollSz.Height() = aOutSz.Height();
+		aScrollPos = Point(aOutSz.Width() - nScrollStd, 0);
+
+		pVScrollbar->SetPosSizePixel( aScrollPos, aScrollSz);
+		aOutSz.Width() 	-= nScrollStd;
+		aOutSz.Height() 	-= nScrollStd;
+		pOutWin->SetOutputSizePixel(aOutSz);
+        InitScrollBars();
+
+        // Zeile im ersten Resize setzen
+		if(USHRT_MAX != nStartLine)
+		{
+			if(nStartLine < pTextEngine->GetParagraphCount())
+			{
+				TextSelection aSel(TextPaM( nStartLine, 0 ), TextPaM( nStartLine, 0x0 ));
+				pTextView->SetSelection(aSel);
+				pTextView->ShowCursor();
+			}
+			nStartLine = USHRT_MAX;
+		}
+
+		if ( nVisY != pTextView->GetStartDocPos().Y() )
+=====================================================================
+Found a 19 line (125 tokens) duplication in the following files: 
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1841 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("Enum2", (a >>= b) && b == Enum2_M1);
+    }
+    {
+        Struct1 b(2);
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testStruct() {
+=====================================================================
+Found a 32 line (125 tokens) duplication in the following files: 
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MStatement.cxx
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx
+
+		case PROPERTY_ID_USEBOOKMARKS:
+		default:
+			;
+	}
+}
+// -------------------------------------------------------------------------
+IMPLEMENT_SERVICE_INFO(OStatement,"com.sun.star.sdbcx.OStatement","com.sun.star.sdbc.Statement");
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::acquire() throw()
+{
+	OStatement_BASE::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::release() throw()
+{
+	OStatement_BASE::release();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement::acquire() throw()
+{
+	OStatement_BASE2::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement::release() throw()
+{
+	OStatement_BASE2::release();
+}
+// -----------------------------------------------------------------------------
+Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL OStatement_Base::getPropertySetInfo(  ) throw(RuntimeException)
+{
+	return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
+}
+=====================================================================
+Found a 15 line (125 tokens) duplication in the following files: 
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/sql/Timestamp;";
+		static const char * cMethodName = "getTimestamp";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out ? static_cast <com::sun::star::util::DateTime> (java_sql_Timestamp( t.pEnv, out )) : ::com::sun::star::util::DateTime();
+}
+=====================================================================
+Found a 25 line (125 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YUser.cxx
+
+OUserExtend::OUserExtend(   const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection,const ::rtl::OUString& _Name) : OMySQLUser(_xConnection,_Name)
+{
+	construct();
+}
+// -------------------------------------------------------------------------
+typedef connectivity::sdbcx::OUser	OUser_TYPEDEF;
+void OUserExtend::construct()
+{
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PASSWORD),	PROPERTY_ID_PASSWORD,0,&m_Password,::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
+}
+// -----------------------------------------------------------------------------
+cppu::IPropertyArrayHelper* OUserExtend::createArrayHelper() const
+{
+	Sequence< Property > aProps;
+	describeProperties(aProps);
+	return new cppu::OPropertyArrayHelper(aProps);
+}
+// -------------------------------------------------------------------------
+cppu::IPropertyArrayHelper & OUserExtend::getInfoHelper()
+{
+	return *OUserExtend_PROP::getArrayHelper();
+}
+typedef connectivity::sdbcx::OUser_BASE OUser_BASE_RBHELPER;
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL OMySQLUser::getPrivileges( const ::rtl::OUString& objName, sal_Int32 objType ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 40 line (125 tokens) duplication in the following files: 
+Starting at line 795 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 478 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return nValue;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactions(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::allProceduresAreCallable(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsStoredProcedures(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable(  ) throw(SQLException, RuntimeException)
+{
+    // We allow you to select from any table.
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::isReadOnly(  ) throw(SQLException, RuntimeException)
+{
+    //we support insert/update/delete now
+    //But we have to set this to return sal_True otherwise the UI will add create "table/edit table"
+    //entry to the popup menu. We should avoid them.
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFiles(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+=====================================================================
+Found a 32 line (125 tokens) duplication in the following files: 
+Starting at line 645 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MStatement.cxx
+
+		case PROPERTY_ID_ESCAPEPROCESSING:
+		default:
+			;
+	}
+}
+// -------------------------------------------------------------------------
+IMPLEMENT_SERVICE_INFO(OStatement,"com.sun.star.sdbcx.OStatement","com.sun.star.sdbc.Statement");
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::acquire() throw()
+{
+	OStatement_BASE::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement_Base::release() throw()
+{
+	OStatement_BASE::release();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement::acquire() throw()
+{
+	OStatement_BASE2::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL OStatement::release() throw()
+{
+	OStatement_BASE2::release();
+}
+// -----------------------------------------------------------------------------
+Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL OStatement_Base::getPropertySetInfo(  ) throw(RuntimeException)
+{
+	return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
+}
+=====================================================================
+Found a 5 line (125 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    // XNameContainer
+    virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 26 line (125 tokens) duplication in the following files: 
+Starting at line 1193 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 1460 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+                o << "(sal_uInt64)" << tmp.getStr() << "L";
+            }
+			break;
+		case RT_TYPE_FLOAT:
+            {
+                ::rtl::OString tmp( OString::valueOf(constValue.m_value.aFloat) );
+                o << "(float)" << tmp.getStr();
+            }
+			break;
+		case RT_TYPE_DOUBLE:
+            {
+                ::rtl::OString tmp( OString::valueOf(constValue.m_value.aDouble) );
+                o << "(double)" << tmp.getStr();
+            }
+			break;
+		case RT_TYPE_STRING:
+			{
+				::rtl::OUString aUStr(constValue.m_value.aString);
+				::rtl::OString aStr = ::rtl::OUStringToOString(aUStr, RTL_TEXTENCODING_ASCII_US);
+				o << "::rtl::OUString::createFromAscii(\"" << aStr.getStr() << "\")";
+			}
+			break;
+	}
+}
+
+void CunoType::inc(sal_uInt32 num)
+=====================================================================
+Found a 22 line (125 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+				pThis, nVtableCall,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+				pReturn, pArgs, ppException );
+		}
+		break;
+	}
+	default:
+	{
+		::com::sun::star::uno::RuntimeException aExc(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
+			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
+		
+		Type const & rExcType = ::getCppuType( &aExc );
+		// binary identical null reference
+		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
+	}
+	}
+}
+
+}
+=====================================================================
+Found a 27 line (125 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxuint.cxx
+
+				nRes = (UINT16) ( p->nSingle + 0.5 );
+			break;
+		case SbxDATE:
+		case SbxDOUBLE:
+		case SbxLONG64:
+		case SbxULONG64:
+		case SbxCURRENCY:
+		case SbxDECIMAL:
+		case SbxBYREF | SbxDECIMAL:
+			{
+			double dVal;
+			if( p->eType ==	SbxCURRENCY )
+				dVal = ImpCurrencyToDouble( p->nLong64 );
+			else if( p->eType == SbxLONG64 )
+				dVal = ImpINT64ToDouble( p->nLong64 );
+			else if( p->eType == SbxULONG64 )
+				dVal = ImpUINT64ToDouble( p->nULong64 );
+			else if( p->eType == SbxDECIMAL )
+			{
+				dVal = 0.0;
+				if( p->pDecimal )
+					p->pDecimal->getDouble( dVal );
+			}
+			else
+				dVal = p->nDouble;
+
+			if( dVal > SbxMAXUINT )
+=====================================================================
+Found a 23 line (125 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedview.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/report/SectionView.cxx
+
+		const sal_Int32 nPageHeight = aPageSize.Height();
+
+		if ( nVisRight + nScrollX > nPageWidth )
+			nScrollX = nPageWidth - nVisRight;
+
+		if ( nVisLeft + nScrollX < 0 )
+			nScrollX = -nVisLeft;
+
+		if ( nVisBottom + nScrollY > nPageHeight )
+			nScrollY = nPageHeight - nVisBottom;
+
+		if ( nVisTop + nScrollY < 0 )
+			nScrollY = -nVisTop;
+
+		// scroll window
+		rWin.Update();
+		rWin.Scroll( -nScrollX, -nScrollY );
+		aMap.SetOrigin( Point( aOrg.X() - nScrollX, aOrg.Y() - nScrollY ) );
+		rWin.SetMapMode( aMap );
+		rWin.Update();
+		rWin.Invalidate();
+
+		if ( m_pReportWindow )
+=====================================================================
+Found a 14 line (125 tokens) duplication in the following files: 
+Starting at line 657 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
+Starting at line 927 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessiblelistboxentry.cxx
+
+	::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL AccessibleListBoxEntry::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+	{
+		ALBSolarGuard aSolarGuard;
+		::osl::MutexGuard aGuard( m_aMutex );
+		EnsureIsAlive();
+
+		::rtl::OUString sText( implGetText() );
+
+		if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+			throw IndexOutOfBoundsException();
+
+		return ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >();
+	}
+	sal_Int32 SAL_CALL AccessibleListBoxEntry::getCharacterCount(  ) throw (::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 21 line (124 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[4];
+=====================================================================
+Found a 30 line (124 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + x_lr;
+                        do
+                        {
+                            int weight = (weight_y * weight_array[x_hr] + 
+                                         image_filter_size / 2) >> 
+                                         downscale_shift;
+
+                            if(x_lr >= 0 && x_lr <= maxx)
+                            {
+                                fg        += *fg_ptr   * weight;
+                                src_alpha += base_mask * weight;
+                            }
+                            else
+                            {
+                                fg        += back_v * weight;
+                                src_alpha += back_a * weight;
+                            }
+                            total_weight += weight;
+                            x_hr         += rx_inv;
+=====================================================================
+Found a 14 line (124 tokens) duplication in the following files: 
+Starting at line 347 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 367 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+        AGG_INLINE void copy_vline(int x, int y,
+                                   unsigned len, 
+                                   const color_type& c)
+        {
+            value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+            pixel_type v;
+            ((value_type*)&v)[order_type::R] = c.r;
+            ((value_type*)&v)[order_type::G] = c.g;
+            ((value_type*)&v)[order_type::B] = c.b;
+            ((value_type*)&v)[order_type::A] = c.a;
+            do
+            {
+                *(pixel_type*)p = v;
+                p = (value_type*)m_rbuf->next_row(p);
+=====================================================================
+Found a 15 line (124 tokens) duplication in the following files: 
+Starting at line 908 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/demo/performance.cxx
+Starting at line 947 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/demo/performance.cxx
+
+			mxMSF->createInstance( rtl::OUString::createFromAscii( SIGNATUREVERIFIER_COMPONENT )),
+			cssu::UNO_QUERY);	
+		
+		cssu::Reference<cssl::XInitialization> xInitialization(m_xReferenceListener, cssu::UNO_QUERY);
+		
+		cssu::Sequence<cssu::Any> args(5);
+		char buf[16];
+		
+		sprintf(buf, "%d", m_nSecurityId);
+		args[0] = cssu::makeAny(rtl::OUString(RTL_ASCII_USTRINGPARAM(buf)));
+		args[1] = cssu::makeAny(m_xSAXEventKeeper);
+		
+		sprintf(buf, "%d", m_nSignatureElementCollectorId);
+		args[2] = cssu::makeAny(rtl::OUString(RTL_ASCII_USTRINGPARAM(buf)));
+		args[3] = cssu::makeAny(m_xXMLSecurityContext);
+=====================================================================
+Found a 14 line (124 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/dialogs/warnings.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/dialogs/warnings.cxx
+
+MacroWarning::MacroWarning( Window* _pParent )
+	:ModalDialog		( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROWARN ) )
+	,maDocNameFI		( this, ResId( FI_DOCNAME ) )
+	,maDescr1aFI		( this, ResId( FI_DESCR1A ) )
+	,maDescr1bFI		( this, ResId( FI_DESCR1B ) )
+	,maSignsFI			( this, ResId( FI_SIGNS ) )
+	,maViewSignsBtn		( this, ResId( PB_VIEWSIGNS ) )
+	,maDescr2FI			( this, ResId( FI_DESCR2 ) )
+	,maAlwaysTrustCB	( this, ResId( CB_ALWAYSTRUST ) )
+	,maBottomSepFL		( this, ResId( FL_BOTTOM_SEP ) )
+	,maEnableBtn		( this, ResId( PB_DISABLE ) )
+	,maDisableBtn		( this, ResId( PB_DISABLE ) )
+	,maHelpBtn			( this, ResId( BTN_HELP ) )
+	,mbSignedMode		( false )
+=====================================================================
+Found a 28 line (124 tokens) duplication in the following files: 
+Starting at line 1828 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLExport.cxx
+Starting at line 2007 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLExport.cxx
+
+                Reference< beans::XPropertySet > xTitleProp( xAxisSupp->getYAxisTitle(), uno::UNO_QUERY );
+                if( xTitleProp.is())
+                {
+                    aPropertyStates = mxExpPropMapper->Filter( xTitleProp );
+                    if( bExportContent )
+                    {
+                        OUString aText;
+                        Any aAny( xTitleProp->getPropertyValue(
+							OUString( RTL_CONSTASCII_USTRINGPARAM( "String" ))));
+						aAny >>= aText;
+
+                        Reference< drawing::XShape > xShape( xTitleProp, uno::UNO_QUERY );
+                        if( xShape.is())
+                            addPosition( xShape );
+
+                        AddAutoStyleAttribute( aPropertyStates );
+                        SvXMLElementExport aTitle( mrExport, XML_NAMESPACE_CHART, XML_TITLE, sal_True, sal_True );
+
+                        // paragraph containing title
+                        exportText( aText );
+                    }
+                    else
+                    {
+                        CollectAutoStyle( aPropertyStates );
+                    }
+                    aPropertyStates.clear();
+                }
+			}
+=====================================================================
+Found a 35 line (124 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/services.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 12 line (124 tokens) duplication in the following files: 
+Starting at line 751 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+	_snprintf(szKeyName, _MAX_PATH, ".%s\0", CXMergeFilter::m_pszPXLExportExt);
+	lRet = ::RegOpenKeyEx(hKey, _T(szKeyName), 0, KEY_ALL_ACCESS, &hDataKey);
+	if (lRet != ERROR_SUCCESS)
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	lRet = ::RegSetValueEx(hDataKey, _T("DefaultImport"), 0, REG_SZ, (LPBYTE)_T("Binary Copy"),
+							(::_tcslen(_T("Binary Copy")) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS)
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	::lstrcpyn(szKeyName, "\0", _MAX_PATH);
+	::RegCloseKey(hDataKey);	hDataKey = NULL;
+=====================================================================
+Found a 6 line (124 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+
+   0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 20 line (124 tokens) duplication in the following files: 
+Starting at line 1934 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 2396 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+
+void CurrencyBox::DataChanged( const DataChangedEvent& rDCEvt )
+{
+    ComboBox::DataChanged( rDCEvt );
+
+    if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
+    {
+        String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        if ( IsDefaultLocale() )
+            ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLocale() );
+        String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
+        ReformatAll();
+    }
+}
+
+// -----------------------------------------------------------------------
+
+void CurrencyBox::Modify()
+=====================================================================
+Found a 20 line (124 tokens) duplication in the following files: 
+Starting at line 1807 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 2276 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+
+void CurrencyField::DataChanged( const DataChangedEvent& rDCEvt )
+{
+    SpinField::DataChanged( rDCEvt );
+
+    if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
+    {
+        String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        if ( IsDefaultLocale() )
+            ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLocale() );
+        String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
+        ReformatAll();
+    }
+}
+
+// -----------------------------------------------------------------------
+
+void CurrencyField::Modify()
+=====================================================================
+Found a 20 line (124 tokens) duplication in the following files: 
+Starting at line 989 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 1934 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+
+void MetricBox::DataChanged( const DataChangedEvent& rDCEvt )
+{
+    ComboBox::DataChanged( rDCEvt );
+
+    if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
+    {
+        String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        if ( IsDefaultLocale() )
+            ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLocale() );
+        String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
+        ReformatAll();
+    }
+}
+
+// -----------------------------------------------------------------------
+
+void MetricBox::Modify()
+=====================================================================
+Found a 20 line (124 tokens) duplication in the following files: 
+Starting at line 869 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 1807 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+
+void MetricField::DataChanged( const DataChangedEvent& rDCEvt )
+{
+    SpinField::DataChanged( rDCEvt );
+
+    if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
+    {
+        String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        if ( IsDefaultLocale() )
+            ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLocale() );
+        String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
+        ReformatAll();
+    }
+}
+
+// -----------------------------------------------------------------------
+
+void MetricField::Modify()
+=====================================================================
+Found a 35 line (124 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_services.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 21 line (124 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1144 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+    throw( uno::Exception )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+    uno::Sequence< uno::Any > aRet( rValues.getLength() );
+    uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() );
+	sal_Int32 nChanged = 0;
+
+    beans::PropertyChangeEvent aEvent;
+    aEvent.Source         = static_cast< cppu::OWeakObject * >( this );
+	aEvent.Further 		  = sal_False;
+//	aEvent.PropertyName	  =
+	aEvent.PropertyHandle = -1;
+//	aEvent.OldValue		  =
+//	aEvent.NewValue       =
+
+    const beans::PropertyValue* pValues = rValues.getConstArray();
+	sal_Int32 nCount = rValues.getLength();
+
+    uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet;
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+=====================================================================
+Found a 35 line (124 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchyservices.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 21 line (124 tokens) duplication in the following files: 
+Starting at line 1218 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+
+            const uno::Reference< ucb::XCommandEnvironment >& /*xEnv*/ )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+    uno::Sequence< uno::Any > aRet( rValues.getLength() );
+    uno::Sequence< beans::PropertyChangeEvent > aChanges( rValues.getLength() );
+	sal_Int32 nChanged = 0;
+
+    beans::PropertyChangeEvent aEvent;
+    aEvent.Source         = static_cast< cppu::OWeakObject * >( this );
+	aEvent.Further 		  = sal_False;
+//	aEvent.PropertyName	  =
+	aEvent.PropertyHandle = -1;
+//	aEvent.OldValue		  =
+//	aEvent.NewValue       =
+
+    const beans::PropertyValue* pValues = rValues.getConstArray();
+	sal_Int32 nCount = rValues.getLength();
+
+    uno::Reference< ucb::XPersistentPropertySet > xAdditionalPropSet;
+	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+=====================================================================
+Found a 35 line (124 tokens) duplication in the following files: 
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/provider.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 28 line (124 tokens) duplication in the following files: 
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+	}
+
+    uno::Reference< ucb::XContentIdentifier > xId
+        = queryContentIdentifier( nIndex );
+	if ( xId.is() )
+	{
+		try
+		{
+            uno::Reference< ucb::XContent > xContent
+				= m_pImpl->m_xContent->getProvider()->queryContent( xId );
+			m_pImpl->m_aResults[ nIndex ]->xContent = xContent;
+			return xContent;
+
+		}
+        catch ( ucb::IllegalIdentifierException& )
+		{
+		}
+	}
+    return uno::Reference< ucb::XContent >();
+}
+
+//=========================================================================
+// virtual
+sal_Bool DataSupplier::getResult( sal_uInt32 nIndex )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( m_pImpl->m_aResults.size() > nIndex )
+=====================================================================
+Found a 33 line (124 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/prov.cxx
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/helpprovider/helpcontentprovider.cxx
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+
+//=========================================================================
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
+=====================================================================
+Found a 23 line (124 tokens) duplication in the following files: 
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoparagraph.cxx
+Starting at line 3623 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+uno::Sequence< uno::Any > SwXPageStyle::getPropertyValues(
+    const uno::Sequence< OUString >& rPropertyNames )
+        throw(uno::RuntimeException)
+{
+    vos::OGuard aGuard(Application::GetSolarMutex());
+    uno::Sequence< uno::Any > aValues;
+
+    // workaround for bad designed API
+    try
+    {
+        aValues = GetPropertyValues_Impl( rPropertyNames );
+    }
+    catch (beans::UnknownPropertyException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property exception caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+    catch (lang::WrappedTargetException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "WrappedTargetException caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+
+    return aValues;
+}
+=====================================================================
+Found a 15 line (124 tokens) duplication in the following files: 
+Starting at line 3439 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/gridcell.cxx
+Starting at line 4190 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/gridcell.cxx
+
+Sequence< ::com::sun::star::uno::Type > SAL_CALL FmXFilterCell::getTypes(  ) throw(RuntimeException)
+{
+    Sequence< ::com::sun::star::uno::Type > aTypes = OComponentHelper::getTypes();
+
+    sal_Int32 nLen = aTypes.getLength();
+    aTypes.realloc(nLen + 2);
+    aTypes.getArray()[nLen++] = ::getCppuType(static_cast< Reference< ::com::sun::star::awt::XControl >* >(NULL));
+    aTypes.getArray()[nLen++] = ::getCppuType(static_cast< Reference< ::com::sun::star::awt::XTextComponent >* >(NULL));
+
+    return aTypes;
+}
+
+// ::com::sun::star::awt::XTextComponent
+//------------------------------------------------------------------------------
+void SAL_CALL FmXFilterCell::addTextListener(const Reference< ::com::sun::star::awt::XTextListener >& l) throw( RuntimeException )
+=====================================================================
+Found a 22 line (124 tokens) duplication in the following files: 
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/simptabl.cxx
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx
+
+	SvLBoxItem* pRightItem = getItemAtColumn( pRight, m_nSortColumnIndex );
+
+	if(pLeftItem != NULL && pRightItem != NULL)
+	{
+		USHORT nLeftKind=pLeftItem->IsA();
+		USHORT nRightKind=pRightItem->IsA();
+
+		if(nRightKind == SV_ITEM_ID_LBOXSTRING &&
+			nLeftKind == SV_ITEM_ID_LBOXSTRING )
+		{
+			IntlWrapper aIntlWrapper( ::comphelper::getProcessServiceFactory(), Application::GetSettings().GetLocale() );
+			const CollatorWrapper* pCollator = aIntlWrapper.getCaseCollator();
+
+			eCompare=(StringCompare)pCollator->compareString( ((SvLBoxString*)pLeftItem)->GetText(),
+									((SvLBoxString*)pRightItem)->GetText());
+
+			if(eCompare==COMPARE_EQUAL)
+                eCompare=COMPARE_LESS;
+		}
+	}
+	return eCompare;
+}
+=====================================================================
+Found a 23 line (124 tokens) duplication in the following files: 
+Starting at line 1495 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 1752 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+	long nVirtHeight = aVirtOutputSize.Height();
+	long nVirtWidth = aVirtOutputSize.Width();
+
+	Size aOSize( pView->Control::GetOutputSizePixel() );
+	long nRealHeight = aOSize.Height();
+	long nRealWidth = aOSize.Width();
+
+	PositionScrollBars( nRealWidth, nRealHeight );
+
+	const MapMode& rMapMode = pView->GetMapMode();
+	Point aOrigin( rMapMode.GetOrigin() );
+
+	long nVisibleWidth;
+	if( nRealWidth > nVirtWidth )
+		nVisibleWidth = nVirtWidth + aOrigin.X();
+	else
+		nVisibleWidth = nRealWidth;
+
+	long nVisibleHeight;
+	if( nRealHeight > nVirtHeight )
+		nVisibleHeight = nVirtHeight + aOrigin.Y();
+	else
+		nVisibleHeight = nRealHeight;
+=====================================================================
+Found a 19 line (124 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/lingucfg.cxx
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/lingucfg.cxx
+
+            bMod = bSucc;
+            break;
+        }
+        case UPH_IS_IGNORE_POST_POSITIONAL_WORD :       pbVal = &rOpt.bIsIgnorePostPositionalWord; break;
+        case UPH_IS_AUTO_CLOSE_DIALOG :                 pbVal = &rOpt.bIsAutoCloseDialog; break;
+        case UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST :  pbVal = &rOpt.bIsShowEntriesRecentlyUsedFirst; break;
+        case UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES :       pbVal = &rOpt.bIsAutoReplaceUniqueEntries; break;
+
+        case UPH_IS_DIRECTION_TO_SIMPLIFIED :           pbVal = &rOpt.bIsDirectionToSimplified; break;
+        case UPH_IS_USE_CHARACTER_VARIANTS :            pbVal = &rOpt.bIsUseCharacterVariants; break;
+        case UPH_IS_TRANSLATE_COMMON_TERMS :            pbVal = &rOpt.bIsTranslateCommonTerms; break;
+        case UPH_IS_REVERSE_MAPPING :                   pbVal = &rOpt.bIsReverseMapping; break;
+        
+        case UPH_DATA_FILES_CHANGED_CHECK_VALUE :       pnInt32Val = &rOpt.nDataFilesChangedCheckValue; break;
+        default :
+            DBG_ERROR( "unexpected property handle" );
+    }
+
+    if (pbVal)
+=====================================================================
+Found a 17 line (124 tokens) duplication in the following files: 
+Starting at line 711 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/app/sdxfer.cxx
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+                uno::Reference< embed::XStorage > xWorkStore =
+                    ::comphelper::OStorageHelper::GetStorageFromURL( aTempFile.GetURL(), embed::ElementModes::READWRITE );
+
+                // write document storage
+                pEmbObj->SetupStorage( xWorkStore, SOFFICE_FILEFORMAT_CURRENT, sal_False );
+                // mba: no BaseURL for clipboard
+                SfxMedium aMedium( xWorkStore, String() );
+                bRet = pEmbObj->DoSaveObjectAs( aMedium, FALSE );
+                pEmbObj->DoSaveCompleted();
+
+                uno::Reference< embed::XTransactedObject > xTransact( xWorkStore, uno::UNO_QUERY );
+                if ( xTransact.is() )
+                    xTransact->commit();
+
+                SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), STREAM_READ );
+                if( pSrcStm )
+                {
+=====================================================================
+Found a 19 line (124 tokens) duplication in the following files: 
+Starting at line 1069 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/EffectMigration.cxx
+Starting at line 1143 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/EffectMigration.cxx
+
+sal_Bool EffectMigration::GetDimPrevious( SvxShape* pShape )
+{
+	sal_Bool bRet = sal_False;
+	if( pShape )
+	{
+		SdrObject* pObj = pShape->GetSdrObject();
+		if( pObj && pObj->GetPage() )
+		{
+			sd::MainSequencePtr pMainSequence = static_cast<SdPage*>(pObj->GetPage())->getMainSequence();
+
+			const Reference< XShape > xShape( pShape );
+
+			EffectSequence::iterator aIter;
+			for( aIter = pMainSequence->getBegin(); aIter != pMainSequence->getEnd(); aIter++ )
+			{
+				CustomAnimationEffectPtr pEffect( (*aIter) );
+				if( pEffect->getTargetShape() == xShape )
+				{
+					bRet = pEffect->hasAfterEffect() &&
+=====================================================================
+Found a 21 line (124 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/linkuno.cxx
+Starting at line 805 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/linkuno.cxx
+
+uno::Any SAL_CALL ScAreaLinkObj::getPropertyValue( const rtl::OUString& aPropertyName )
+				throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+						uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	String aNameString(aPropertyName);
+	uno::Any aRet;
+	if ( aNameString.EqualsAscii( SC_UNONAME_LINKURL ) )
+		aRet <<= getFileName();
+	else if ( aNameString.EqualsAscii( SC_UNONAME_FILTER ) )
+		aRet <<= getFilter();
+	else if ( aNameString.EqualsAscii( SC_UNONAME_FILTOPT ) )
+		aRet <<= getFilterOptions();
+	else if ( aNameString.EqualsAscii( SC_UNONAME_REFPERIOD ) )
+		aRet <<= getRefreshDelay();
+	else if ( aNameString.EqualsAscii( SC_UNONAME_REFDELAY ) )
+		aRet <<= getRefreshDelay();
+	return aRet;
+}
+
+SC_IMPL_DUMMY_PROPERTY_LISTENER( ScAreaLinkObj )
+=====================================================================
+Found a 12 line (124 tokens) duplication in the following files: 
+Starting at line 929 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/datauno.cxx
+
+		case sheet::GeneralFunction_SUM:		eSubTotal = SUBTOTAL_FUNC_SUM;	break;
+		case sheet::GeneralFunction_COUNT:		eSubTotal = SUBTOTAL_FUNC_CNT2;	break;
+		case sheet::GeneralFunction_AVERAGE:	eSubTotal = SUBTOTAL_FUNC_AVE;	break;
+		case sheet::GeneralFunction_MAX:		eSubTotal = SUBTOTAL_FUNC_MAX;	break;
+		case sheet::GeneralFunction_MIN:		eSubTotal = SUBTOTAL_FUNC_MIN;	break;
+		case sheet::GeneralFunction_PRODUCT:	eSubTotal = SUBTOTAL_FUNC_PROD;	break;
+		case sheet::GeneralFunction_COUNTNUMS:	eSubTotal = SUBTOTAL_FUNC_CNT;	break;
+		case sheet::GeneralFunction_STDEV:		eSubTotal = SUBTOTAL_FUNC_STD;	break;
+		case sheet::GeneralFunction_STDEVP:		eSubTotal = SUBTOTAL_FUNC_STDP;	break;
+		case sheet::GeneralFunction_VAR:		eSubTotal = SUBTOTAL_FUNC_VAR;	break;
+		case sheet::GeneralFunction_VARP:		eSubTotal = SUBTOTAL_FUNC_VARP;	break;
+		case sheet::GeneralFunction_AUTO:
+=====================================================================
+Found a 23 line (124 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/anyrefdg.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/anyrefdg.cxx
+
+void ScAnyRefDlg::EnableSpreadsheets(BOOL bFlag, BOOL bChilds)
+{
+	TypeId aType(TYPE(ScDocShell));
+	ScDocShell* pDocShell = (ScDocShell*)SfxObjectShell::GetFirst(&aType);
+	while( pDocShell )
+	{
+		SfxViewFrame* pFrame = SfxViewFrame::GetFirst( pDocShell );
+		while( pFrame )
+		{
+			//	#71577# enable everything except InPlace, including bean frames
+            if ( !pFrame->GetFrame()->IsInPlace() )
+			{
+				SfxViewShell* p = pFrame->GetViewShell();
+				ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell,p);
+				if(pViewSh!=NULL)
+				{
+					Window *pWin=pViewSh->GetWindow();
+					if(pWin)
+					{
+						Window *pParent=pWin->GetParent();
+						if(pParent)
+						{
+							pParent->EnableInput(bFlag,FALSE);
+=====================================================================
+Found a 14 line (124 tokens) duplication in the following files: 
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docsh8.cxx
+Starting at line 816 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docsh8.cxx
+
+            return SCERR_EXPORT_CONNECT;
+        }
+		rtl::OUString aCharSetStr = (*aIter).getIanaName();
+
+		uno::Sequence<beans::PropertyValue> aProps(2);
+		aProps[0].Name = rtl::OUString::createFromAscii(SC_DBPROP_EXTENSION);
+		aProps[0].Value <<= rtl::OUString( aExtension );
+		aProps[1].Name = rtl::OUString::createFromAscii(SC_DBPROP_CHARSET);
+		aProps[1].Value <<= aCharSetStr;
+
+		uno::Reference<sdbc::XConnection> xConnection =
+								xDrvMan->getConnectionWithInfo( aConnUrl, aProps );
+		DBG_ASSERT( xConnection.is(), "can't get Connection" );
+		if (!xConnection.is()) return SCERR_EXPORT_CONNECT;
+=====================================================================
+Found a 21 line (124 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/op.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/op.cxx
+
+	if( nType )
+		pRange = new LotusRange( static_cast<SCCOL> (nColSt), static_cast<SCROW> (nRowSt) );
+	else
+		pRange = new LotusRange( static_cast<SCCOL> (nColSt), static_cast<SCROW> (nRowSt), static_cast<SCCOL> (nColEnd), static_cast<SCROW> (nRowEnd) );
+
+	if( isdigit( *cPuffer ) )
+	{	// erstes Zeichen im Namen eine Zahl -> 'A' vor Namen setzen
+		*pAnsi = 'A';
+		strcpy( pAnsi + 1, cPuffer );       // #100211# - checked
+	}
+	else
+		strcpy( pAnsi, cPuffer );           // #100211# - checked
+
+	String		aTmp( pAnsi, pLotusRoot->eCharsetQ );
+    ScfTools::ConvertToScDefinedName( aTmp );
+
+	pLotusRoot->pRangeNames->Append( pRange, aTmp );
+}
+
+
+void OP_Footer( SvStream& r, UINT16 n )
+=====================================================================
+Found a 38 line (124 tokens) duplication in the following files: 
+Starting at line 2937 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_StreamSocket.cxx
+
+                ReadSocketThread myClientThread(_nBufferSize, _nValue, aCondition);
+                myServerThread.create( );
+//          thread_sleep( 1 );
+                myClientThread.create( );
+            
+                //wait until the thread terminate
+                myClientThread.join( );
+                myServerThread.join( );
+            
+                //Maximum Packet Size is ( ARPANET, MILNET = 1007 Ethernet (10Mb) = 1500 
+                // Proteon PRONET  = 2046), so here test read 4000 bytes 
+                sal_Int32 nLength = myClientThread.getCount();
+                bool       bIsOk   = myClientThread.isOk(); // check if the values are right.
+
+                t_print("Length:=%d\n", nLength);
+                t_print(" bIsOk:=%d\n", bIsOk);
+
+                CPPUNIT_ASSERT_MESSAGE(" test for write/read values with two threads: send data from server, check readed data in client.", 
+                                       nLength == _nBufferSize && bIsOk == true);
+            }
+        
+        // Tests with different values and sizes
+        void write_read_001()
+            {
+                write_read(50, 10);
+            }
+        void write_read_002()
+            {
+                write_read(1024, 20);
+            }
+        void write_read_003()
+            {
+                write_read(4000, 1);
+            }
+        void write_read_004()
+            {
+                write_read(8192, 3);
+            }
+=====================================================================
+Found a 23 line (124 tokens) duplication in the following files: 
+Starting at line 3827 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 15299 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 16870 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+            ::rtl::OStringBuffer   aStrBuf( *arrOUS[0] );
+=====================================================================
+Found a 14 line (124 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/suggestmgr.cxx
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/suggestmgr.cxx
+
+	    strcpy(candidate+i-1,word+i+1);
+            cwrd = 1;
+            for (int k=0; k < ns; k++)
+	        if (strcmp(candidate,wlst[k]) == 0) cwrd = 0;
+            if ((cwrd) && check(candidate,strlen(candidate), cpdsuggest, NULL, NULL)) {
+	        if (ns < maxSug) {
+	  	    wlst[ns] = mystrdup(candidate);
+		    if (wlst[ns] == NULL) {
+		        for (int j=0; j<ns; j++) free(wlst[j]);
+		        return -1;
+		    }
+		    ns++;
+	        } else return ns;
+	    }
+=====================================================================
+Found a 22 line (124 tokens) duplication in the following files: 
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_socket.cxx
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/ctr_socket.cxx
+
+			OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::read: error - connection already closed"));
+
+			IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
+
+			Any any;
+			any <<= ioException;
+
+			notifyListeners(this, &_error, callError(any));
+
+			throw ioException;
+		}
+	}
+
+	void SocketConnection::write( const Sequence < sal_Int8 > &seq )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+		if( ! m_nStatus )
+		{
+			if( m_socket.write( seq.getConstArray() , seq.getLength() ) != seq.getLength() )
+			{
+				OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::write: error - "));
+=====================================================================
+Found a 6 line (124 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+
+   0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 19 line (124 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 803 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 21 line (124 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/constitemcontainer.cxx
+Starting at line 111 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/itemcontainer.cxx
+
+        {
+            for ( sal_Int32 i = 0; i < nCount; i++ )
+            {
+                Sequence< PropertyValue > aPropSeq;
+                Any a = rSourceContainer->getByIndex( i );
+                if ( a >>= aPropSeq )
+                {
+                    sal_Int32 nContainerIndex = -1;
+                    Reference< XIndexAccess > xIndexAccess;
+                    for ( sal_Int32 j = 0; j < aPropSeq.getLength(); j++ )
+                    {
+                        if ( aPropSeq[j].Name.equalsAscii( "ItemDescriptorContainer" ))
+                        {
+                            aPropSeq[j].Value >>= xIndexAccess;
+                            nContainerIndex = j;
+                            break;
+                        }
+                    }
+
+                    if ( xIndexAccess.is() && nContainerIndex >= 0 )
+                        aPropSeq[nContainerIndex].Value <<= deepCopyContainer( xIndexAccess, rMutex );
+=====================================================================
+Found a 34 line (124 tokens) duplication in the following files: 
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 475 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+void SAL_CALL OReadMenuBarHandler::characters(const rtl::OUString&)
+throw(	SAXException, RuntimeException )
+{
+}
+
+
+void OReadMenuBarHandler::endElement( const OUString& aName )
+	throw( SAXException, RuntimeException )
+{
+	if ( m_bMenuMode )
+	{
+		--m_nElementDepth;
+		if ( 0 == m_nElementDepth )
+		{
+			m_xReader->endDocument();
+			m_xReader = Reference< XDocumentHandler >();
+			m_bMenuMode = sal_False;
+			if ( !aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENU )))
+			{
+				OUString aErrorMessage = getErrorLineString();
+				aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "closing element menu expected!" ));
+				throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+			}
+		}
+		else
+			m_xReader->endElement( aName );
+	}
+}
+
+
+// -----------------------------------------------------------------------------
+
+
+OReadMenuHandler::OReadMenuHandler(
+=====================================================================
+Found a 14 line (124 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Button.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Currency.cxx
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/EditBase.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/File.cxx
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormattedFieldWrapper.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Pattern.cxx
+
+namespace frm
+{
+//.........................................................................
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+=====================================================================
+Found a 5 line (124 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 8, 8, 6, 6, 0, 0, 0, 0, 0, 0,// 1050 - 105f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1060 - 106f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1070 - 107f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1080 - 108f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1090 - 109f
+=====================================================================
+Found a 24 line (124 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+		return hr;
+
+	pdispResult = CComPtr<IDispatch>( result.pdispVal );
+
+	return S_OK;
+}
+
+HRESULT PutPropertiesToIDisp( IDispatch* pdispObject, 
+							  OLECHAR** sMemberNames, 
+							  CComVariant* pVariant, 
+							  unsigned int count )
+{
+	for( unsigned int ind = 0; ind < count; ind++ )
+	{
+		DISPID id;
+		HRESULT hr = pdispObject->GetIDsOfNames( IID_NULL, &sMemberNames[ind], 1, LOCALE_USER_DEFAULT, &id );
+		if( !SUCCEEDED( hr ) ) return hr;
+
+		hr = CComDispatchDriver::PutProperty( pdispObject, id, &pVariant[ind] );
+		if( !SUCCEEDED( hr ) ) return hr;
+	}
+
+	return S_OK;
+}
+=====================================================================
+Found a 15 line (124 tokens) duplication in the following files: 
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObjectFactory::createInstanceUserInit" );
+
+	// the initialization is completelly controlled by user
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Reference< uno::XInterface > xResult(
+				static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xFactory, aClassID, aClassName ) ),
+=====================================================================
+Found a 22 line (124 tokens) duplication in the following files: 
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/embedobj.cxx
+Starting at line 493 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/oleembed.cxx
+
+void SAL_CALL OleEmbeddedObject::setClientSite(
+				const uno::Reference< embed::XEmbeddedClient >& xClient )
+		throw ( embed::WrongStateException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_xClientSite != xClient)
+	{
+		if ( m_nObjectState != embed::EmbedStates::LOADED && m_nObjectState != embed::EmbedStates::RUNNING )
+			throw embed::WrongStateException(
+									::rtl::OUString::createFromAscii( "The client site can not be set currently!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+		m_xClientSite = xClient;
+	}
+}
+
+//----------------------------------------------
+uno::Reference< embed::XEmbeddedClient > SAL_CALL OleEmbeddedObject::getClientSite()
+=====================================================================
+Found a 4 line (124 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 00-0F
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 10-1F
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 20-2F
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 30-3F
+=====================================================================
+Found a 18 line (124 tokens) duplication in the following files: 
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/app/dispatchwatcher.cxx
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/app/dispatchwatcher.cxx
+
+        else if ( ( aName.CompareToAscii( "service:"  , 8 ) == COMPARE_EQUAL ) )
+        {
+            // TODO: the dispatch has to be done for loadComponentFromURL as well. Please ask AS for more details.
+            URL             aURL ;
+            aURL.Complete = aName;
+
+            Reference < XDispatch >         xDispatcher ;
+            Reference < XDispatchProvider > xProvider   ( xDesktop, UNO_QUERY );
+            Reference < XURLTransformer >   xParser     ( ::comphelper::getProcessServiceFactory()->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.util.URLTransformer")) ), ::com::sun::star::uno::UNO_QUERY );
+
+            if( xParser.is() == sal_True )
+                xParser->parseStrict( aURL );
+
+            if( xProvider.is() == sal_True )
+                xDispatcher = xProvider->queryDispatch( aURL, ::rtl::OUString(), 0 );
+
+            if( xDispatcher.is() == sal_True )
+            {
+=====================================================================
+Found a 15 line (124 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/relationdesign/RelationController.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/tabledesign/TableController.cxx
+
+	static ::dbaui::OMultiInstanceAutoRegistration< ::dbaui::OTableController > aAutoRegistration;
+}
+
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::ui;
+=====================================================================
+Found a 11 line (124 tokens) duplication in the following files: 
+Starting at line 1046 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/UITools.cxx
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/helper/vclunohelper.cxx
+
+::com::sun::star::awt::FontDescriptor VCLUnoHelper::CreateFontDescriptor( const Font& rFont )
+{
+	::com::sun::star::awt::FontDescriptor aFD;
+    aFD.Name = rFont.GetName();
+    aFD.StyleName = rFont.GetStyleName();
+    aFD.Height = (sal_Int16)rFont.GetSize().Height();
+    aFD.Width = (sal_Int16)rFont.GetSize().Width();
+    aFD.Family = sal::static_int_cast< sal_Int16 >(rFont.GetFamily());
+    aFD.CharSet = rFont.GetCharSet();
+    aFD.Pitch = sal::static_int_cast< sal_Int16 >(rFont.GetPitch());
+    aFD.CharacterWidth = VCLUnoHelper::ConvertFontWidth( rFont.GetWidthType() );
+=====================================================================
+Found a 15 line (124 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/xmlTable.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/xml/xmlTable.cxx
+
+	OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
+	const SvXMLNamespaceMap& rMap = GetOwnImport().GetNamespaceMap();
+	const SvXMLTokenMap& rTokenMap = GetOwnImport().GetQueryElemTokenMap();
+
+	sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
+	for(sal_Int16 i = 0; i < nLength; ++i)
+	{
+		OUString sLocalName;
+		rtl::OUString sAttrName = _xAttrList->getNameByIndex( i );
+		sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
+		rtl::OUString sValue = _xAttrList->getValueByIndex( i );
+
+		switch( rTokenMap.Get( nPrefix, sLocalName ) )
+		{
+			case XML_TOK_COMMAND:
+=====================================================================
+Found a 24 line (124 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTable.cxx
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTable.cxx
+
+void SAL_CALL OMySQLTable::alterColumnByName( const ::rtl::OUString& colName, const Reference< XPropertySet >& descriptor ) throw(SQLException, NoSuchElementException, RuntimeException)
+{
+	::osl::MutexGuard aGuard(m_aMutex);
+	checkDisposed(
+#ifdef GCC
+		::connectivity::sdbcx::OTableDescriptor_BASE::rBHelper.bDisposed
+#else
+		rBHelper.bDisposed
+#endif
+		);
+
+	if ( m_pColumns && !m_pColumns->hasByName(colName) )
+		throw NoSuchElementException(colName,*this);
+
+
+	if ( !isNew() )
+	{
+		// first we have to check what should be altered
+		Reference<XPropertySet> xProp;
+		m_pColumns->getByName(colName) >>= xProp;
+		// first check the types
+		sal_Int32 nOldType = 0,nNewType = 0,nOldPrec = 0,nNewPrec = 0,nOldScale = 0,nNewScale = 0;
+
+		::dbtools::OPropertyMap& rProp = OMetaConnection::getPropMap();
+=====================================================================
+Found a 27 line (124 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idloptions.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					m_options["-R"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'b':
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idlmaker.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+			sal_Bool ret = sal_False;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+                
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+				tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+                    // related to task #116780# the scope is recursively
+                    // generated.  bFullScope = true
+					ret = produceAllTypes(
+                        tmpName, typeMgr, generated, &options, sal_True);
+=====================================================================
+Found a 27 line (124 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					m_options["-R"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'b':
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+			sal_Bool ret = sal_False;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+                
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+				tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+                    // related to task #116780# the scope is recursively
+                    // generated.  bFullScope = true
+					ret = produceAllTypes(
+                        tmpName, typeMgr, generated, &options, sal_True);
+=====================================================================
+Found a 27 line (124 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbaoptions.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					m_options["-R"] = OString(s);
+					break;
+				case 'B':
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-B', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-B"] = OString(s);
+					break;
+				case 'b':
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbamaker.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+			sal_Bool ret = sal_False;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+                
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+				tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+                    // related to task #116780# the scope is recursively
+                    // generated.  bFullScope = true
+					ret = produceAllTypes(
+                        tmpName, typeMgr, generated, &options, sal_True);
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_textlayout.cxx
+
+        return true;
+    }
+
+
+#define SERVICE_NAME "com.sun.star.rendering.TextLayout"
+#define IMPLEMENTATION_NAME "NullCanvas::TextLayout"
+
+    ::rtl::OUString SAL_CALL TextLayout::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL TextLayout::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL TextLayout::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+}
+=====================================================================
+Found a 20 line (124 tokens) duplication in the following files: 
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	void ** pCppArgs  = (void **)malloc( 3 * sizeof(void *) * nParams );
+#else
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+#endif
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 23 line (124 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = edx;
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = eax;
+			break;
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+			*(unsigned short*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+			*(unsigned char*)pRegisterReturn = eax;
+			break;
+		case typelib_TypeClass_FLOAT:
+			asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
+			break;
+=====================================================================
+Found a 19 line (124 tokens) duplication in the following files: 
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+
+	INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+	// Args
+	void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// Indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// Type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			break;
+	}
+}
+
+
+//================================================================================================== 
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+	bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+        // need to know parameter types for callVirtualMethod so generate a signature string
+        char * pParamType = (char *) alloca(nParams+2);
+        char * pPT = pParamType;
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+=====================================================================
+Found a 17 line (124 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+=====================================================================
+Found a 19 line (124 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 25 line (124 tokens) duplication in the following files: 
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+=====================================================================
+Found a 27 line (124 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+				nRes = (INT16) p->uInt64;
+			break;
+		case SbxDATE:
+		case SbxDOUBLE:
+		case SbxLONG64:
+		case SbxULONG64:
+		case SbxCURRENCY:
+		case SbxDECIMAL:
+		case SbxBYREF | SbxDECIMAL:
+			{
+			double dVal;
+			if( p->eType ==	SbxCURRENCY )
+				dVal = ImpCurrencyToDouble( p->nLong64 );
+			else if( p->eType == SbxLONG64 )
+				dVal = ImpINT64ToDouble( p->nLong64 );
+			else if( p->eType == SbxULONG64 )
+				dVal = ImpUINT64ToDouble( p->nULong64 );
+			else if( p->eType == SbxDECIMAL )
+			{
+				dVal = 0.0;
+				if( p->pDecimal )
+					p->pDecimal->getDouble( dVal );
+			}
+			else
+				dVal = p->nDouble;
+
+			if( dVal > SbxMAXINT )
+=====================================================================
+Found a 18 line (124 tokens) duplication in the following files: 
+Starting at line 628 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolygonclipper.cxx
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolygonclipper.cxx
+
+				else if((clip&0x0f)==0 && (clip&0xf0)) { // curr is outside, next is inside
+
+					// direction vector from 'current' to 'next', *not* normalized
+					// to bring 't' into the [0<=x<=1] intervall.
+					::basegfx::B2DPoint dir((*next)-(*curr));
+
+					double denominator = ( pPlane->nx*dir.getX() +
+										pPlane->ny*dir.getY() );
+					double numerator = ( pPlane->nx*curr->getX() +
+										pPlane->ny*curr->getY() +
+										pPlane->d );
+					double t = -numerator/denominator;
+
+					// calculate the actual point of intersection
+					::basegfx::B2DPoint intersection( curr->getX()+t*dir.getX(),
+													curr->getY()+t*dir.getY() );
+
+					out_vertex[out_count++] = intersection;
+=====================================================================
+Found a 38 line (123 tokens) duplication in the following files: 
+Starting at line 10998 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 11794 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+     case OOXML_ELEMENT_wordprocessingDrawing_extent:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_PositiveSize2D(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingDrawing_effectExtent:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingDrawing_CT_EffectExtent(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingDrawing_docPr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_NonVisualDrawingProps(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingDrawing_cNvGraphicFramePr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_drawingml_CT_NonVisualGraphicFrameProperties(*this));
+         }
+             break;
+     case OOXML_TOKENS_END:
+         break;
+     default:
+         pResult = elementFromRefs(nToken);
+              break;
+     }
+
+    if (pResult.get() != NULL)
+        pResult->setToken(nToken);
+
+    return pResult;
+}
+     
+bool OOXMLContext_wordprocessingDrawing_CT_Anchor::lcl_attribute(TokenEnum_t /*nToken*/, const rtl::OUString & /*rValue*/)
+=====================================================================
+Found a 20 line (123 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                                base_type::m_ry_inv) >> 
+                                    image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   base_type::m_rx_inv) >> 
+                                       image_subpixel_shift;
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + (x_lr << 2);
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter_),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[3];
+=====================================================================
+Found a 20 line (123 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                                base_type::m_ry_inv) >> 
+                                    image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   base_type::m_rx_inv) >> 
+                                       image_subpixel_shift;
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + x_lr * 3;
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter_),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+            long_type fg[3];
+=====================================================================
+Found a 18 line (123 tokens) duplication in the following files: 
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparae.cxx
+Starting at line 1590 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparae.cxx
+
+            Reference< XIndexReplace > xNumRule( xNumberingRules->getByIndex( i ), UNO_QUERY );
+            if( xNumRule.is() && xNumRule->getCount() )
+            {
+                Reference < XNamed > xNamed( xNumRule, UNO_QUERY );
+                OUString sName;
+                if( xNamed.is() )
+                    sName = xNamed->getName();
+                sal_Bool bAdd = !sName.getLength();
+                if( !bAdd )
+                {
+                    Reference < XPropertySet > xNumPropSet( xNumRule,
+                                                            UNO_QUERY );
+                    const OUString sIsAutomatic( RTL_CONSTASCII_USTRINGPARAM( "IsAutomatic" ) );
+                    if( xNumPropSet.is() &&
+                        xNumPropSet->getPropertySetInfo()
+                                   ->hasPropertyByName( sIsAutomatic ) )
+                    {
+                        bAdd = *(sal_Bool *)xNumPropSet->getPropertyValue( sIsAutomatic ).getValue();
+=====================================================================
+Found a 13 line (123 tokens) duplication in the following files: 
+Starting at line 3185 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+Starting at line 1810 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/kde/salnativewidgets-kde.cxx
+
+    while( (nHeight * nDPIY / nDispDPIY) < nPointHeight )
+        nHeight++;
+    
+    // Create the font
+    Font aFont( aInfo.m_aFamilyName, Size( 0, nHeight ) );
+    if( aInfo.m_eWeight != psp::weight::Unknown )
+        aFont.SetWeight( PspGraphics::ToFontWeight( aInfo.m_eWeight ) );
+    if( aInfo.m_eWidth != psp::width::Unknown )
+        aFont.SetWidthType( PspGraphics::ToFontWidth( aInfo.m_eWidth ) );
+    if( aInfo.m_eItalic != psp::italic::Unknown )
+        aFont.SetItalic( PspGraphics::ToFontItalic( aInfo.m_eItalic ) );
+    if( aInfo.m_ePitch != psp::pitch::Unknown )
+        aFont.SetPitch( PspGraphics::ToFontPitch( aInfo.m_ePitch ) );
+=====================================================================
+Found a 11 line (123 tokens) duplication in the following files: 
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+	    const double    fHeight = aRect.GetHeight();
+	    double          fDX = fWidth  * fabs( cos( fAngle ) ) + fHeight * fabs( sin( fAngle ) ); 
+	    double          fDY = fHeight * fabs( cos( fAngle ) ) + fWidth  * fabs( sin( fAngle ) ); 
+
+        fDX = ( fDX - fWidth ) * 0.5 + 0.5;
+        fDY = ( fDY - fHeight ) * 0.5 + 0.5;
+    
+	    aRect.Left() -= (long) fDX;
+	    aRect.Right() += (long) fDX;
+	    aRect.Top() -= (long) fDY;
+	    aRect.Bottom() += (long) fDY;
+=====================================================================
+Found a 25 line (123 tokens) duplication in the following files: 
+Starting at line 4323 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev3.cxx
+Starting at line 4354 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev3.cxx
+
+                      (eUnderline == UNDERLINE_BOLDDASHDOTDOT) )
+            {
+                long nDotWidth = nLineHeight*mnDPIY;
+                nDotWidth += mnDPIY/2;
+
+                nDotWidth /= mnDPIY;
+                long nDashWidth = ((100*mnDPIX)+1270)/2540;
+                long nMinDashWidth = nDotWidth*4;
+                // DashWidth wird gegebenenfalls verbreitert, wenn
+                // die dicke der Linie im Verhaeltnis zur Laenge
+                // zu dick wird
+                if ( nDashWidth < nMinDashWidth )
+                    nDashWidth = nMinDashWidth;
+                long nTempDotWidth = nDotWidth;
+                long nTempDashWidth = nDashWidth;
+                long nEnd = nLeft+nWidth;
+                while ( nLeft < nEnd )
+                {
+                    if ( nLeft+nTempDotWidth > nEnd )
+                        nTempDotWidth = nEnd-nLeft;
+                    ImplDrawTextRect( nBaseX, nBaseY, nLeft, nLinePos, nTempDotWidth, nLineHeight );
+                    nLeft += nDotWidth*2;
+                    if ( nLeft > nEnd )
+                        break;
+                    if ( nLeft+nTempDotWidth > nEnd )
+=====================================================================
+Found a 22 line (123 tokens) duplication in the following files: 
+Starting at line 2115 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 1806 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+		aColParam.pMapB = new BYTE[ 256 ];
+
+		// calculate slope
+		if( nContrastPercent >= 0 )
+			fM = 128.0 / ( 128.0 - 1.27 * MinMax( nContrastPercent, 0L, 100L ) );
+		else
+			fM = ( 128.0 + 1.27 * MinMax( nContrastPercent, -100L, 0L ) ) / 128.0;
+
+		// total offset = luminance offset + contrast offset
+		fOff = MinMax( nLuminancePercent, -100L, 100L ) * 2.55 + 128.0 - fM * 128.0;
+
+		// channel offset = channel offset	+ total offset
+		fROff = nChannelRPercent * 2.55 + fOff;
+		fGOff = nChannelGPercent * 2.55 + fOff;
+		fBOff = nChannelBPercent * 2.55 + fOff;
+
+		// calculate gamma value
+		fGamma = ( fGamma <= 0.0 || fGamma > 10.0 ) ? 1.0 : ( 1.0 / fGamma );
+		const BOOL bGamma = ( fGamma != 1.0 );
+
+		// create mapping table
+		for( long nX = 0L; nX < 256L; nX++ )
+=====================================================================
+Found a 17 line (123 tokens) duplication in the following files: 
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/alpha.cxx
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap.cxx
+
+			aRectSrc.Intersection( Rectangle( Point(), aCopySizePix ) );
+
+			if( !aRectSrc.IsEmpty() )
+			{
+				BitmapReadAccess* pReadAcc = pSrc->AcquireReadAccess();
+
+				if( pReadAcc )
+				{
+					BitmapWriteAccess* pWriteAcc = AcquireWriteAccess();
+
+					if( pWriteAcc )
+					{
+						const long	nWidth = Min( aRectSrc.GetWidth(), aRectDst.GetWidth() );
+						const long	nHeight = Min( aRectSrc.GetHeight(), aRectDst.GetHeight() );
+						const long	nSrcEndX = aRectSrc.Left() + nWidth;
+						const long	nSrcEndY = aRectSrc.Top() + nHeight;
+						long		nDstY = aRectDst.Top();
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/provider/cancelcommandexecution.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/provider/cancelcommandexecution.cxx
+
+                                    eError, rArgs, rMessage, xContext );
+    if ( xEnv.is() )
+    {
+        uno::Reference<
+            task::XInteractionHandler > xIH = xEnv->getInteractionHandler();
+        if ( xIH.is() )
+        {
+            xIH->handle( xRequest.get() );
+
+            rtl::Reference< ucbhelper::InteractionContinuation > xSelection
+				= xRequest->getSelection();
+
+            if ( xSelection.is() )
+                throw ucb::CommandFailedException( rtl::OUString(),
+                                                   xContext,
+                                                   xRequest->getRequest() );
+        }
+    }
+
+    cppu::throwException( xRequest->getRequest() );
+
+    OSL_ENSURE( sal_False, "Return from cppu::throwException call!!!" );
+    throw uno::RuntimeException();
+}
+=====================================================================
+Found a 32 line (123 tokens) duplication in the following files: 
+Starting at line 2034 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unochart.cxx
+Starting at line 2083 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unochart.cxx
+
+        const SwTable* pTable = SwTable::FindTable( GetFrmFmt() );
+        if (pTable)
+        {
+            uno::Reference< chart2::data::XDataSequence > xRef( dynamic_cast< chart2::data::XDataSequence * >(this), uno::UNO_QUERY );
+            pDataProvider->AddDataSequence( *pTable, xRef );
+            pDataProvider->addEventListener( dynamic_cast< lang::XEventListener * >(this) );
+        }
+        else
+            DBG_ERROR( "table missing" );
+    }
+    catch (uno::RuntimeException &)
+    {
+        throw;
+    }
+    catch (uno::Exception &)
+    {
+    }
+    release();
+
+#if OSL_DEBUG_LEVEL > 1
+    OUString aRangeStr( getSourceRangeRepresentation() );
+
+    // check if it can properly convert into a SwUnoTableCrsr
+	// which is required for some functions
+    SwUnoTableCrsr* pUnoTblCrsr = *pTblCrsr;
+	if (!pUnoTblCrsr)
+		pUnoTblCrsr = *pTblCrsr;
+#endif
+}
+
+
+SwChartDataSequence::~SwChartDataSequence()
+=====================================================================
+Found a 12 line (123 tokens) duplication in the following files: 
+Starting at line 1447 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/_xpoly.cxx
+Starting at line 1459 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/poly.cxx
+
+			Point& rPnt = mpImplPolygon->mpPointAry[ i ];
+
+			fTx = (double)( rPnt.X() - Xr) / Wr;
+			fTy = (double)( rPnt.Y() - Yr) / Hr;
+			fUx = 1.0 - fTx;
+			fUy = 1.0 - fTy;
+
+			rPnt.X() = (long) ( fUy * (fUx * X1 + fTx * X2) + fTy * (fUx * X3 + fTx * X4) );
+			rPnt.Y() = (long) ( fUx * (fUy * Y1 + fTy * Y3) + fTx * (fUy * Y2 + fTy * Y4) );
+		}
+	}
+}
+=====================================================================
+Found a 28 line (123 tokens) duplication in the following files: 
+Starting at line 4040 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4215 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+    *pS >> nScrollHeight;
+
+	if (nIcon)
+	{
+		pS->Read(pIconHeader,20);
+		*pS >> nIconLen;
+		pIcon = new sal_uInt8[nIconLen];
+		pS->Read(pIcon,nIconLen);
+	}
+
+	if (nPicture)
+	{
+		pS->Read(pPictureHeader,20);
+		*pS >> nPictureLen;
+		pPicture = new sal_uInt8[nPictureLen];
+		pS->Read(pPicture,nPictureLen);
+	}
+
+    ReadAlign( pS, pS->Tell() - nStart, 4);
+
+    if (pBlockFlags[2] & 0x10)
+    {
+        //Font Stuff..
+        pS->SeekRel(0x1a);
+        sal_uInt8 nFontLen;
+        *pS >> nFontLen;
+        pS->SeekRel(nFontLen);
+    }
+=====================================================================
+Found a 14 line (123 tokens) duplication in the following files: 
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpshadow.cxx
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpshadow.cxx
+
+	INT32 nX = 0L, nY = 0L;
+	INT32 nXY = GetCoreValue( aMtrDistance, ePoolUnit );
+	switch( aCtlPosition.GetActualRP() )
+	{
+		case RP_LT: nX = nY = -nXY; 	 break;
+		case RP_MT: nY = -nXY;			 break;
+		case RP_RT: nX = nXY; nY = -nXY; break;
+		case RP_LM: nX = -nXY;			 break;
+		case RP_RM: nX = nXY;			 break;
+		case RP_LB: nX = -nXY; nY = nXY; break;
+		case RP_MB: nY = nXY; 			 break;
+		case RP_RB: nX = nY = nXY; 		 break;
+        case RP_MM: break;
+    }
+=====================================================================
+Found a 23 line (123 tokens) duplication in the following files: 
+Starting at line 1803 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 1852 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+
+IMPL_LINK( SvxAreaTabPage, ClickColorHdl_Impl, void *, EMPTYARG )
+{
+	aTsbTile.Hide();
+	aTsbStretch.Hide();
+	aTsbScale.Hide();
+	aTsbOriginal.Hide();
+	aFtXSize.Hide();
+	aMtrFldXSize.Hide();
+	aFtYSize.Hide();
+	aMtrFldYSize.Hide();
+    aFlSize.Hide();
+	aRbtRow.Hide();
+	aRbtColumn.Hide();
+	aMtrFldOffset.Hide();
+    aFlOffset.Hide();
+	aCtlPosition.Hide();
+	aFtXOffset.Hide();
+	aMtrFldXOffset.Hide();
+	aFtYOffset.Hide();
+	aMtrFldYOffset.Hide();
+    aFlPosition.Hide();
+
+	aLbColor.Enable();
+=====================================================================
+Found a 15 line (123 tokens) duplication in the following files: 
+Starting at line 1019 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 927 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptBentArrowVert[] =	// adjustment1 : x 12427 - 21600
+{														// adjustment2 : y 0 - 6079
+	{ 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I },
+	{ 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I },
+	{ 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 }
+};
+static const sal_uInt16 mso_sptBentArrowSegm[] =
+{
+	0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptBentArrowCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 11 line (123 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/gradwrap.cxx
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+	    const double    fHeight = aRect.GetHeight();
+	    double          fDX = fWidth  * fabs( cos( fAngle ) ) + fHeight * fabs( sin( fAngle ) ); 
+	    double          fDY = fHeight * fabs( cos( fAngle ) ) + fWidth  * fabs( sin( fAngle ) ); 
+
+        fDX = ( fDX - fWidth ) * 0.5 + 0.5;
+        fDY = ( fDY - fHeight ) * 0.5 + 0.5;
+    
+	    aRect.Left() -= (long) fDX;
+	    aRect.Right() += (long) fDX;
+	    aRect.Top() -= (long) fDY;
+	    aRect.Bottom() += (long) fDY;
+=====================================================================
+Found a 13 line (123 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/printdlg.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/prnsetup.cxx
+
+	ModalDialog 	( pWindow, SvtResId( DLG_SVT_PRNDLG_PRNSETUPDLG ) ),
+	maFlPrinter		( this, SvtResId( FL_PRINTER ) ),
+	maFtName		( this, SvtResId( FT_NAME ) ),
+	maLbName		( this, SvtResId( LB_NAMES ) ),
+	maBtnProperties ( this, SvtResId( BTN_PROPERTIES ) ),
+	maFtStatus		( this, SvtResId( FT_STATUS ) ),
+	maFiStatus		( this, SvtResId( FI_STATUS ) ),
+	maFtType		( this, SvtResId( FT_TYPE ) ),
+	maFiType		( this, SvtResId( FI_TYPE ) ),
+	maFtLocation	( this, SvtResId( FT_LOCATION ) ),
+	maFiLocation	( this, SvtResId( FI_LOCATION ) ),
+	maFtComment 	( this, SvtResId( FT_COMMENT ) ),
+	maFiComment 	( this, SvtResId( FI_COMMENT ) ),
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/smdetect.cxx
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/swdetect.cxx
+
+        	BOOL bIsStorage = aMedium.IsStorage();
+            if ( bIsStorage )
+			{
+                uno::Reference< embed::XStorage > xStorage = aMedium.GetStorage();
+				if ( aMedium.GetLastStorageCreationState() != ERRCODE_NONE )
+				{
+					// error during storage creation means _here_ that the medium
+                    // is broken, but we can not handle it in medium since impossibility
+					// to create a storage does not _always_ means that the medium is broken
+					aMedium.SetError( aMedium.GetLastStorageCreationState() );
+					if ( xInteraction.is() )
+					{
+						OUString empty;
+						try
+						{
+							InteractiveAppException xException( empty,
+															REFERENCE< XInterface >(),
+															InteractionClassification_ERROR,
+															aMedium.GetError() );
+
+							REFERENCE< XInteractionRequest > xRequest(
+								new ucbhelper::SimpleInteractionRequest( makeAny( xException ),
+																 	 ucbhelper::CONTINUATION_APPROVE ) );
+							xInteraction->handle( xRequest );
+						}
+						catch ( Exception & ) {};
+					}
+				}
+				else
+				{
+=====================================================================
+Found a 6 line (123 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),		WID_PAGE_LDBITMAP,	&ITYPE(awt::XBitmap),						    beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),		WID_PAGE_LDNAME,	&::getCppuType((const OUString*)0),			    beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER),			WID_PAGE_NUMBER,	&::getCppuType((const sal_Int16*)0),			beans::PropertyAttribute::READONLY,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION),		WID_PAGE_ORIENT,	&::getCppuType((const view::PaperOrientation*)0),0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH),			WID_PAGE_WIDTH,		&::getCppuType((const sal_Int32*)0),			0,	0},
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/app/sdmod2.cxx
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/app/sdmod2.cxx
+
+	::sd::FrameView* pFrameView = NULL;
+	::sd::DrawDocShell* pDocSh = PTR_CAST(::sd::DrawDocShell, SfxObjectShell::Current() );
+	SdDrawDocument* pDoc = NULL;
+	// Hier wird der DocType vom Optionsdialog gesetzt (nicht Dokument!)
+	DocumentType eDocType = DOCUMENT_TYPE_IMPRESS;
+	if( nSlot == SID_SD_GRAPHIC_OPTIONS )
+		eDocType = DOCUMENT_TYPE_DRAW;
+
+	::sd::ViewShell* pViewShell = NULL;
+
+	if (pDocSh)
+	{
+		pDoc = pDocSh->GetDoc();
+
+		// Wenn der Optionsdialog zum Dokumenttyp identisch ist,
+		// kann auch die FrameView mit uebergeben werden:
+		if( pDoc && eDocType == pDoc->GetDocumentType() )
+			pFrameView = pDocSh->GetFrameView();
+
+		pViewShell = pDocSh->GetViewShell();
+        if (pViewShell != NULL)
+            pViewShell->WriteFrameViewData();
+	}
+	SdOptions* pOptions = GetSdOptions(eDocType);
+=====================================================================
+Found a 20 line (123 tokens) duplication in the following files: 
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/propread.cxx
+Starting at line 554 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/dinfos2.cxx
+
+	pStrm->Seek( nCurOfs );
+}
+
+//	-----------------------------------------------------------------------
+
+Section& Section::operator=( Section& rSection )
+{
+	PropEntry* pProp;
+
+	if ( this != &rSection )
+	{
+		memcpy( (void*)aFMTID, (void*)rSection.aFMTID, 16 );
+		for ( pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
+			delete pProp;
+		Clear();
+		for ( pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
+			Insert( new PropEntry( *pProp ), LIST_APPEND );
+	}
+	return *this;
+}
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 1095 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 1207 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+						const uno::Sequence< uno::Sequence<rtl::OUString> >& aData )
+{
+//	BOOL bApi = TRUE;
+
+	ScDocument* pDoc = rDocShell.GetDocument();
+	SCTAB nTab = rRange.aStart.Tab();
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	BOOL bUndo(pDoc->IsUndoEnabled());
+
+	if ( !pDoc->IsBlockEditable( nTab, nStartCol,nStartRow, nEndCol,nEndRow ) )
+	{
+		//!	error message
+		return FALSE;
+	}
+
+	long nCols = 0;
+	long nRows = aData.getLength();
+	const uno::Sequence<rtl::OUString>* pArray = aData.getConstArray();
+=====================================================================
+Found a 23 line (123 tokens) duplication in the following files: 
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/filtdlg.cxx
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pfiltdlg.cxx
+
+void ScPivotFilterDlg::FillFieldLists()
+{
+	aLbField1.Clear();
+	aLbField2.Clear();
+	aLbField3.Clear();
+	aLbField1.InsertEntry( aStrNone, 0 );
+	aLbField2.InsertEntry( aStrNone, 0 );
+	aLbField3.InsertEntry( aStrNone, 0 );
+
+	if ( pDoc )
+	{
+		String	aFieldName;
+		SCTAB	nTab		= nSrcTab;
+		SCCOL	nFirstCol	= theQueryData.nCol1;
+		SCROW	nFirstRow	= theQueryData.nRow1;
+		SCCOL	nMaxCol		= theQueryData.nCol2;
+		SCCOL	col = 0;
+		USHORT	i=1;
+
+		for ( col=nFirstCol; col<=nMaxCol; col++ )
+		{
+			pDoc->GetString( col, nFirstRow, nTab, aFieldName );
+			if ( aFieldName.Len() == 0 )
+=====================================================================
+Found a 18 line (123 tokens) duplication in the following files: 
+Starting at line 1405 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpoutput.cxx
+
+				if ( eDimOrient != sheet::DataPilotFieldOrientation_HIDDEN )
+				{
+					uno::Reference<container::XIndexAccess> xHiers =
+							new ScNameToIndexAccess( xDimSupp->getHierarchies() );
+					long nHierarchy = ScUnoHelpFunctions::GetLongProperty(
+											xDimProp,
+											rtl::OUString::createFromAscii(DP_PROP_USEDHIERARCHY) );
+					if ( nHierarchy >= xHiers->getCount() )
+						nHierarchy = 0;
+
+					uno::Reference<uno::XInterface> xHier =
+							ScUnoHelpFunctions::AnyToInterface(
+												xHiers->getByIndex(nHierarchy) );
+					uno::Reference<sheet::XLevelsSupplier> xHierSupp( xHier, uno::UNO_QUERY );
+					if ( xHierSupp.is() )
+					{
+						uno::Reference<container::XIndexAccess> xLevels =
+								new ScNameToIndexAccess( xHierSupp->getLevels() );
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testsax.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+
+	~OSaxWriterTest() {}
+
+
+public:
+    virtual void SAL_CALL testInvariant(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject)
+		throw  (	IllegalArgumentException,
+					RuntimeException);
+
+    virtual sal_Int32 SAL_CALL test(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject,
+		sal_Int32 hTestHandle)
+		throw  (	IllegalArgumentException,RuntimeException);
+
+    virtual sal_Bool SAL_CALL testPassed(void)
+		throw  (	RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getErrors(void) 				throw  (RuntimeException);
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void) 		throw  (RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getWarnings(void) 			throw  (RuntimeException);
+
+private:
+	void testSimple( const Reference< XExtendedDocumentHandler > &r );
+=====================================================================
+Found a 49 line (123 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/ostring/rtl_OString2.cxx
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/oustring/rtl_OUString2.cxx
+
+    void valueOf_float_test_001()
+    {
+        // this is demonstration code
+        // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
+        float nValue = 3.0f;
+        valueOf_float_test(nValue);
+    }
+
+    void valueOf_float_test_002()
+    {
+        float nValue = 3.5f;
+        valueOf_float_test(nValue);
+    }
+
+    void valueOf_float_test_003()
+    {
+        float nValue = 3.0625f;
+        valueOf_float_test(nValue);
+    }
+
+    void valueOf_float_test_004()
+    {
+        float nValue = 3.502525f;
+        valueOf_float_test(nValue);
+    }
+
+    void valueOf_float_test_005()
+    {
+        float nValue = 3.141592f;
+        valueOf_float_test(nValue);
+    }
+
+    void valueOf_float_test_006()
+    {
+        float nValue = 3.5025255f;
+        valueOf_float_test(nValue);
+    }
+
+    void valueOf_float_test_007()
+    {
+        float nValue = 3.0039062f;
+        valueOf_float_test(nValue);
+    }
+
+private:
+    
+    void valueOf_double_test_impl(double _nValue)
+        {
+            rtl::OUString suValue;
+=====================================================================
+Found a 25 line (123 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_ConnectorSocket.cxx
+Starting at line 3268 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+			::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
+						
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			
+			csConnectorSocket.enableNonBlockingMode( sal_True );
+			
+			oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout );   /// connecting to server...
+			CPPUNIT_ASSERT_MESSAGE( "connect failed.",  osl_Socket_InProgress == eResult ||  osl_Socket_Ok == eResult );
+
+			/// get peer information
+			csConnectorSocket.getPeerAddr( saPeerSocketAddr );
+			
+			CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.", 
+				sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr  )  ) ;
+		}
+		// really an error or just delayed
+		// how to design senarios that will return osl_Socket_Interrupted, osl_Socket_TimedOut
+		void connect_003()
+		{
+			::osl::SocketAddr saTargetSocketAddr1( aHostIp1, IP_PORT_MYPORT3 );
+=====================================================================
+Found a 17 line (123 tokens) duplication in the following files: 
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3272 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xa3, 0xb3 },
+{ 0x00, 0xa4, 0xa4 },
+{ 0x00, 0xa5, 0xa5 },
+{ 0x00, 0xa6, 0xa6 },
+{ 0x00, 0xa7, 0xa7 },
+{ 0x00, 0xa8, 0xa8 },
+{ 0x00, 0xa9, 0xa9 },
+{ 0x00, 0xaa, 0xaa },
+{ 0x00, 0xab, 0xab },
+{ 0x00, 0xac, 0xac },
+{ 0x00, 0xad, 0xad },
+{ 0x00, 0xae, 0xae },
+{ 0x00, 0xaf, 0xaf },
+{ 0x00, 0xb0, 0xb0 },
+{ 0x00, 0xb1, 0xb1 },
+{ 0x00, 0xb2, 0xb2 },
+{ 0x01, 0xa3, 0xb3 },
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hprophelp.cxx
+Starting at line 719 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/prophelp.cxx
+
+	nResHyphMinLeading	 	= nHyphMinLeading;
+	nResHyphMinTrailing	 	= nHyphMinTrailing;
+	nResHyphMinWordLength	= nHyphMinWordLength;
+	//
+	INT32 nLen = rPropVals.getLength();
+	if (nLen)
+	{
+		const PropertyValue *pVal = rPropVals.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			INT16	*pnResVal = NULL;
+			switch (pVal[i].Handle)
+			{
+				case UPH_HYPH_MIN_LEADING	  : pnResVal = &nResHyphMinLeading; break;
+				case UPH_HYPH_MIN_TRAILING	  : pnResVal = &nResHyphMinTrailing; break;
+				case UPH_HYPH_MIN_WORD_LENGTH : pnResVal = &nResHyphMinWordLength; break;
+				default:
+					DBG_ERROR( "unknown property" );
+			}
+			if (pnResVal)
+				pVal[i].Value >>= *pnResVal;
+		}
+	}
+}
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/datatest.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testwriter.cxx
+
+	~OSaxWriterTest() {}
+
+
+public:
+    virtual void SAL_CALL testInvariant(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject)
+		throw  (	IllegalArgumentException,
+					RuntimeException);
+
+    virtual sal_Int32 SAL_CALL test(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject,
+		sal_Int32 hTestHandle)
+		throw  (	IllegalArgumentException,RuntimeException);
+
+    virtual sal_Bool SAL_CALL testPassed(void)
+		throw  (	RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getErrors(void) 				throw  (RuntimeException);
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void) 		throw  (RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getWarnings(void) 			throw  (RuntimeException);
+
+private:
+	void testSimple( const Reference< XExtendedDocumentHandler > &r );
+=====================================================================
+Found a 23 line (123 tokens) duplication in the following files: 
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/include.c
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_include.c
+
+    static Token ta = {UNCLASS, 0, 0, 0, NULL, 0};
+    static Tokenrow tr = {&ta, &ta, &ta + 1, 1};
+    uchar *p;
+
+	if (Cplusplus)
+	{
+		ta.t = p = (uchar *) outptr;
+
+		if (! end)
+			strcpy((char *) p, "extern \"C\" {");
+		else
+			strcpy((char *) p, "}");
+
+		p += strlen((char *) p);
+		
+		*p++ = '\n';
+
+		ta.len = (char *) p - outptr;
+		outptr = (char *) p;
+		tr.tp = tr.bp;
+		puttokens(&tr);
+	}
+}
+=====================================================================
+Found a 22 line (123 tokens) duplication in the following files: 
+Starting at line 554 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 576 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+
+	{ 0x0000, 0x0000 },	// 0x3091 HIRAGANA LETTER WE
+	{ 0x0000, 0x0000 },	// 0x3092 HIRAGANA LETTER WO
+	{ 0x0000, 0x0000 },	// 0x3093 HIRAGANA LETTER N
+	{ 0x0000, 0x0000 },	// 0x3094 HIRAGANA LETTER VU
+	{ 0x0000, 0x0000 },	// 0x3095
+	{ 0x0000, 0x0000 },	// 0x3096
+	{ 0x0000, 0x0000 },	// 0x3097
+	{ 0x0000, 0x0000 },	// 0x3098
+	{ 0x0000, 0x0000 },	// 0x3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309a COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309d HIRAGANA ITERATION MARK
+	{ 0x0000, 0x0000 },	// 0x309e HIRAGANA VOICED ITERATION MARK
+	{ 0x0000, 0x0000 },	// 0x309f
+	{ 0x0000, 0x0000 },	// 0x30a0
+	{ 0x0000, 0x0000 },	// 0x30a1 KATAKANA LETTER SMALL A
+	{ 0x0000, 0x0000 },	// 0x30a2 KATAKANA LETTER A
+	{ 0x0000, 0x0000 },	// 0x30a3 KATAKANA LETTER SMALL I
+	{ 0x0000, 0x0000 },	// 0x30a4 KATAKANA LETTER I
+	{ 0x0000, 0x0000 },	// 0x30a5 KATAKANA LETTER SMALL U
+	{ 0x30f4, 0x0000 },	// 0x30a6 KATAKANA LETTER U --> KATAKANA LETTER VU
+=====================================================================
+Found a 20 line (123 tokens) duplication in the following files: 
+Starting at line 1127 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 800 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+=====================================================================
+Found a 5 line (123 tokens) duplication in the following files: 
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d90 - 0d9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0da0 - 0daf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0db0 - 0dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,// 0dc0 - 0dcf
+=====================================================================
+Found a 4 line (123 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 846 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fac0 - facf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fad0 - fadf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fae0 - faef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// faf0 - faff
+=====================================================================
+Found a 5 line (123 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x2ce9}, {0x15, 0x2ce8}, {0x6a, 0x2ceb}, {0x15, 0x2cea}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2ce8 - 2cef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2cf0 - 2cf7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2cf8 - 2cff
+
+    {0xd5, 0x013A}, {0xd5, 0x013D}, {0xd5, 0x0140}, {0xd5, 0x0143}, {0xd5, 0x0146}, {0xd5, 0x0149}, {0xd5, 0x014C}, {0x00, 0x0000}, // fb00 - fb07
+=====================================================================
+Found a 4 line (123 tokens) duplication in the following files: 
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_ja_phonetic.h
+
+	0x30a0, 0x3042, 0x3042, 0x3044, 0x3044, 0x3046, 0x3046, 0x3048, 0x3048, 0x304a, 0x304a, 0x304b, 0x304b, 0x304d, 0x304d, 0x304f,  // 30A0
+	0x304f, 0x3051, 0x3051, 0x3053, 0x3053, 0x3055, 0x3055, 0x3057, 0x3057, 0x3059, 0x3059, 0x305b, 0x305b, 0x305d, 0x305d, 0x305f,  // 30B0
+	0x305f, 0x3061, 0x3061, 0x3064, 0x3064, 0x3064, 0x3066, 0x3066, 0x3068, 0x3068, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f,  // 30C0
+	0x306f, 0x306f, 0x3072, 0x3072, 0x3072, 0x3075, 0x3075, 0x3075, 0x3078, 0x3078, 0x3078, 0x307b, 0x307b, 0x307b, 0x307e, 0x307f,  // 30D0
+=====================================================================
+Found a 25 line (123 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+	b[j] -= b[icol]*save;
+      }
+    }
+  }
+
+  for (j = n-1; j >= 0; j--)
+  {
+    if ( indxr[j] != indxc[j] )
+    {
+      for (k = 0; k < n; k++)
+      {
+	save = a[k][indxr[j]];
+	a[k][indxr[j]] = a[k][indxc[j]];
+	a[k][indxc[j]] = save;
+      }
+    }
+  }
+
+  delete[] ipiv;
+  delete[] indxr;
+  delete[] indxc;
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystem::SolveTri (int n, float* a, float* b, float* c,
+=====================================================================
+Found a 4 line (123 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1127 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b80 - 0b8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b90 - 0b9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ba0 - 0baf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bb0 - 0bbf
+=====================================================================
+Found a 11 line (123 tokens) duplication in the following files: 
+Starting at line 4234 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 4443 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+                    if( !bIsRotate )
+                    {
+                        padd(ascii("svg:x"), sXML_CDATA,
+                            Double2Str (WTMM( x + a + drawobj->offset2.x)) + ascii("mm"));
+                        padd(ascii("svg:y"), sXML_CDATA,
+                            Double2Str (WTMM( y + b + drawobj->offset2.y)) + ascii("mm"));
+                    }
+                    padd(ascii("svg:width"), sXML_CDATA,
+                        Double2Str (WTMM( drawobj->extent.w )) + ascii("mm"));
+                    padd(ascii("svg:height"), sXML_CDATA,
+                        Double2Str (WTMM( drawobj->extent.h )) + ascii("mm"));
+=====================================================================
+Found a 15 line (123 tokens) duplication in the following files: 
+Starting at line 1385 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1425 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+				for( nY = 0; nY < nDstH; nY++ )
+				{
+					nSinY = pSinY[ nY ];
+					nCosY = pCosY[ nY ];
+
+					for( nX = 0; nX < nDstW; nX++ )
+					{
+						nUnRotX = ( pCosX[ nX ] - nSinY ) >> 8;
+						nUnRotY = ( pSinX[ nX ] + nCosY ) >> 8;
+
+						if( ( nUnRotX >= 0L ) && ( nUnRotX < nUnRotW ) &&
+							( nUnRotY >= 0L ) && ( nUnRotY < nUnRotH ) )
+						{
+							nTmpX = pMapIX[ nUnRotX ]; nTmpFX = pMapFX[ nUnRotX ];
+							nTmpY = pMapIY[ nUnRotY ], nTmpFY = pMapFY[ nUnRotY ];
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsconfiguration.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxconfiguration.cxx
+
+using namespace ::com::sun::star::container;
+
+
+namespace framework
+{
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ToolBoxConfiguration::LoadToolBox( 
+=====================================================================
+Found a 6 line (123 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+
+    // XNameReplace
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsconfiguration.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxconfiguration.cxx
+
+using namespace ::com::sun::star::container;
+
+
+namespace framework
+{
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ToolBoxConfiguration::LoadToolBox( 
+=====================================================================
+Found a 4 line (123 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1127 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b80 - 0b8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b90 - 0b9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ba0 - 0baf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bb0 - 0bbf
+=====================================================================
+Found a 19 line (123 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+
+	Sequence<sal_Int8> seqRead( seqWrite.getLength() );
+
+	int nMax = 10,i;
+
+	for( i = 0 ; i < nMax ; i ++ ) {
+		rOutput->writeBytes( seqWrite );
+		rInput->readBytes( seqRead , rInput->available() );
+		ERROR_ASSERT( ! strcmp( (char *) seqWrite.getArray() , (char * )seqRead.getArray() ) ,
+		              "error during read/write/skip" );
+	}
+
+	// Check buffer resizing
+	nMax = 3000;
+	for( i = 0 ; i < nMax ; i ++ ) {
+		rOutput->writeBytes( seqWrite );
+	}
+
+	for( i = 0 ; i < nMax ; i ++ ) {
+		rInput->readBytes( seqRead , seqWrite.getLength() );
+=====================================================================
+Found a 33 line (123 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/scanwin.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/twain.cxx
+
+	LRESULT CALLBACK TwainWndProc( HWND hWnd,UINT nMsg, WPARAM nPar1, LPARAM nPar2 )
+	{
+		return DefWindowProc( hWnd, nMsg, nPar1, nPar2 );
+	}
+
+	// -------------------------------------------------------------------------
+
+	LRESULT CALLBACK TwainMsgProc( int nCode, WPARAM wParam, LPARAM lParam )
+	{
+		MSG* pMsg = (MSG*) lParam;
+
+		if( ( nCode < 0 ) || 
+			( pImpTwainInstance->hTwainWnd != pMsg->hwnd ) ||
+			!pImpTwainInstance->ImplHandleMsg( (void*) lParam ) )
+		{
+			return CallNextHookEx( pImpTwainInstance->hTwainHook, nCode, wParam, lParam );
+		}
+		else
+		{
+			pMsg->message = WM_USER;
+			pMsg->lParam = 0;
+			
+			return 0;
+		}
+	}
+
+#endif // OS2
+
+// ------------
+// - ImpTwain -
+// ------------
+
+ImpTwain::ImpTwain( const Link& rNotifyLink ) :
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 1809 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+Starting at line 1958 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+sal_Bool SAL_CALL OleEmbeddedObject::isReadonly()
+		throw ( embed::WrongStateException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object persistence is not initialized!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	return m_bReadOnly;
+=====================================================================
+Found a 15 line (123 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) UNOEmbeddedObjectCreator::createInstanceUserInit" );
+
+	uno::Reference< uno::XInterface > xResult;
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											3 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											4 );
+
+	::rtl::OUString aEmbedFactory = m_aConfigHelper.GetFactoryNameByClassID( aClassID );
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 1482 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1594 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+
+sal_Bool SAL_CALL OCommonEmbeddedObject::isReadonly()
+		throw ( embed::WrongStateException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object persistence is not initialized!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	return m_bReadOnly;
+=====================================================================
+Found a 15 line (123 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BUser.cxx
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+
+void SAL_CALL OHSQLUser::revokePrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(SQLException, RuntimeException)
+{
+    if ( objType != PrivilegeObject::TABLE )
+        ::dbtools::throwSQLException( "Privilege not revoked: Only table privileges can be revoked", "01006", *this );
+
+	::osl::MutexGuard aGuard(m_aMutex);
+	checkDisposed(OUser_BASE_RBHELPER::rBHelper.bDisposed);
+    ::rtl::OUString sPrivs = getPrivilegeString(objPrivileges);
+	if(sPrivs.getLength())
+	{
+		::rtl::OUString sGrant;
+		sGrant += ::rtl::OUString::createFromAscii("REVOKE ");
+		sGrant += sPrivs;
+		sGrant += ::rtl::OUString::createFromAscii(" ON ");
+		Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+=====================================================================
+Found a 25 line (123 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BUser.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+
+OUserExtend::OUserExtend(   const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection,const ::rtl::OUString& _Name) : OHSQLUser(_xConnection,_Name)
+{
+	construct();
+}
+// -------------------------------------------------------------------------
+typedef connectivity::sdbcx::OUser	OUser_TYPEDEF;
+void OUserExtend::construct()
+{
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PASSWORD),	PROPERTY_ID_PASSWORD,0,&m_Password,::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
+}
+// -----------------------------------------------------------------------------
+cppu::IPropertyArrayHelper* OUserExtend::createArrayHelper() const
+{
+	Sequence< Property > aProps;
+	describeProperties(aProps);
+	return new cppu::OPropertyArrayHelper(aProps);
+}
+// -------------------------------------------------------------------------
+cppu::IPropertyArrayHelper & OUserExtend::getInfoHelper()
+{
+	return *OUserExtend_PROP::getArrayHelper();
+}
+typedef connectivity::sdbcx::OUser_BASE OUser_BASE_RBHELPER;
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL OHSQLUser::getPrivileges( const ::rtl::OUString& objName, sal_Int32 objType ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 11 line (123 tokens) duplication in the following files: 
+Starting at line 1153 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/InternalDataProvider.cxx
+Starting at line 907 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+
+                        aOldLabel = aNewLabel = aOldValues = aNewValues = aEmpty;
+                        if( xOld.is() && xOld->getLabel().is() )
+                            aOldLabel = xOld->getLabel()->getSourceRangeRepresentation();
+                        if( xNew.is() && xNew->getLabel().is() )
+                            aNewLabel = xNew->getLabel()->getSourceRangeRepresentation();
+                        if( xOld.is() && xOld->getValues().is() )
+                            aOldValues = xOld->getValues()->getSourceRangeRepresentation();
+                        if( xNew.is() && xNew->getValues().is() )
+                            aNewValues = xNew->getValues()->getSourceRangeRepresentation();
+
+                        if( aOldLabel.equals(aNewLabel)
+=====================================================================
+Found a 20 line (123 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ChartType.cxx
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ScatterChartType.cxx
+
+    ScatterChartType::createCoordinateSystem( ::sal_Int32 DimensionCount )
+    throw (lang::IllegalArgumentException,
+           uno::RuntimeException)
+{
+    Reference< chart2::XCoordinateSystem > xResult(
+        new CartesianCoordinateSystem(
+            GetComponentContext(), DimensionCount, /* bSwapXAndYAxis */ sal_False ));
+
+    for( sal_Int32 i=0; i<DimensionCount; ++i )
+    {
+        Reference< chart2::XAxis > xAxis( xResult->getAxisByDimension( i, MAIN_AXIS_INDEX ) );
+        if( !xAxis.is() )
+        {
+            OSL_ENSURE(false,"a created coordinate system should have an axis for each dimension");
+            continue;
+        }
+
+        chart2::ScaleData aScaleData = xAxis->getScaleData();
+        aScaleData.Orientation = chart2::AxisOrientation_MATHEMATICAL;
+        aScaleData.Scaling = new LinearScaling( 1.0, 0.0 );
+=====================================================================
+Found a 16 line (123 tokens) duplication in the following files: 
+Starting at line 382 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/impltools.cxx
+
+                            {
+                                for( int x=0; x<aDestBmpSize.Width(); ++x )
+                                {
+                                    ::basegfx::B2DPoint aPoint(x,y);
+                                    aPoint *= aTransform;
+
+                                    const int nSrcX( ::basegfx::fround( aPoint.getX() ) );
+                                    const int nSrcY( ::basegfx::fround( aPoint.getY() ) );
+                                    if( nSrcX < 0 || nSrcX >= aBmpSize.Width() ||
+                                        nSrcY < 0 || nSrcY >= aBmpSize.Height() )
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, BitmapColor(255) );
+                                    }
+                                    else
+                                    {
+                                        pAlphaWriteAccess->SetPixel( y, x, BitmapColor(0) );
+=====================================================================
+Found a 23 line (123 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvasfont.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvasfont.cxx
+
+        return rendering::FontMetrics();
+    }
+
+#define SERVICE_NAME "com.sun.star.rendering.CanvasFont"
+#define IMPLEMENTATION_NAME "NullCanvas::CanvasFont"
+
+    ::rtl::OUString SAL_CALL CanvasFont::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasFont::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasFont::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+=====================================================================
+Found a 24 line (123 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvascustomsprite.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvascustomsprite.cxx
+
+        maSpriteHelper.redraw( mbSurfaceDirty );
+    }
+
+#define IMPLEMENTATION_NAME "NullCanvas.CanvasCustomSprite"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasCustomSprite"
+
+    ::rtl::OUString SAL_CALL CanvasCustomSprite::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasCustomSprite::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasCustomSprite::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+}
+=====================================================================
+Found a 25 line (123 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvasbitmap.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvasbitmap.cxx
+
+        CanvasBitmap_Base::disposing();
+    }
+
+#define IMPLEMENTATION_NAME "NullCanvas.CanvasBitmap"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasBitmap"
+
+    ::rtl::OUString SAL_CALL CanvasBitmap::getImplementationName(  ) throw (uno::RuntimeException)
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasBitmap::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasBitmap::getSupportedServiceNames(  ) throw (uno::RuntimeException)
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+
+}
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 390 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_data.cxx
+Starting at line 741 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_data.cxx
+
+	case typelib_TypeClass_EXCEPTION:
+    {
+        JLocalAutoRef jo_out_holder( jni );
+        if (out_param)
+        {
+            jo_out_holder.reset(
+                jni->GetObjectArrayElement( (jobjectArray) java_data.l, 0 ) );
+            jni.ensure_no_exception();
+            java_data.l = jo_out_holder.get();
+        }
+        if (0 == java_data.l)
+        {
+            OUStringBuffer buf( 128 );
+            buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("[map_to_uno():") );
+            buf.append( OUString::unacquired( &type->pTypeName ) );
+            buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("] null-ref given!") );
+            buf.append( jni.get_stack_trace() );
+            throw BridgeRuntimeError( buf.makeStringAndClear() );
+        }
+
+        if (0 == info)
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
+
+            if (iFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+            if (iiFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#ifdef DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iiFind->second;
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+
+            if (iFind2 == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind2->second;
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+            if (iiFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if defined BRIDGES_DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iiFind->second;
+=====================================================================
+Found a 17 line (123 tokens) duplication in the following files: 
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+            if (iiFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if defined BRIDGES_DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iiFind->second;
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 30 line (123 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+            if (iiFind == m_generatedRttis.end())
+            {
+                // we must generate it !
+                // symbol and rtti-name is nearly identical,
+                // the symbol is prefixed with _ZTI
+                char const * rttiName = symName.getStr() +4;
+#if defined BRIDGES_DEBUG
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+                
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iiFind->second;
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 21 line (123 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+
+        *pPT++ = 'I';
+
+	// stack space
+	// OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+		{
+=====================================================================
+Found a 29 line (123 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+				::uno_copyAndConvertData(
+                    pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+                    *(void **)pCppStack, pParamTypeDescr,
+                    pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+=====================================================================
+Found a 20 line (123 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+Starting at line 1344 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlged.cxx
+
+	Font aFont( pPrinter->GetFont() );
+	aFont.SetWeight( WEIGHT_BOLD );
+	aFont.SetAlign( ALIGN_BOTTOM );
+	pPrinter->SetFont( aFont );
+
+	long nFontHeight = pPrinter->GetTextHeight();
+
+	// 1.Border => Strich, 2+3 Border = Freiraum.
+	long nYTop = TMARGPRN-3*nBorder-nFontHeight;
+
+	long nXLeft = nLeftMargin-nBorder;
+	long nXRight = aSz.Width()-RMARGPRN+nBorder;
+
+	pPrinter->DrawRect( Rectangle(
+		Point( nXLeft, nYTop ),
+		Size( nXRight-nXLeft, aSz.Height() - nYTop - BMARGPRN + nBorder ) ) );
+
+	long nY = TMARGPRN-2*nBorder;
+	Point aPos( nLeftMargin, nY );
+	pPrinter->DrawText( aPos, rTitle );
+=====================================================================
+Found a 20 line (122 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                                base_type::m_ry_inv) >> 
+                                    image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   base_type::m_rx_inv) >> 
+                                       image_subpixel_shift;
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + (x_lr << 2);
+=====================================================================
+Found a 20 line (122 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+
+            base_type(alloc, src, color_type(0,0), inter, filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 23 line (122 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                                          image_subpixel_shift);
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                int x_hr;
+                int y_hr;
+                
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+                unsigned weight;
+
+                if(x_lr >= 0    && y_lr >= 0 &&
+                   x_lr <  maxx && y_lr <  maxy) 
+                {
+                    fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+=====================================================================
+Found a 26 line (122 tokens) duplication in the following files: 
+Starting at line 2679 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/xexptran.cxx
+Starting at line 2710 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/xexptran.cxx
+
+					nPos++;
+					Imp_SkipSpaces(aStr, nPos, nLen);
+					
+					while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos))
+					{
+						sal_Int32 nX(Imp_ImportNumberAndSpaces(0L, aStr, nPos, nLen, rConv));
+						sal_Int32 nY(Imp_ImportNumberAndSpaces(0L, aStr, nPos, nLen, rConv));
+
+						if(bRelative)
+						{
+							nX += mnLastX;
+							nY += mnLastY;
+						}
+
+						// set last position
+						mnLastX = nX;
+						mnLastY = nY;
+						
+						// calc transform and add point and flag
+						Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate);
+						Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL);
+					}
+					break;
+				}
+				
+				case 'h' :
+=====================================================================
+Found a 14 line (122 tokens) duplication in the following files: 
+Starting at line 3474 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 8326 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+    disableStreamEncryption();
+
+    sal_uInt64 nEndPos = 0;
+    CHECK_RETURN( (osl_File_E_None == osl_getFilePos( m_aFile, &nEndPos )) );
+    aLine.setLength( 0 );
+    aLine.append( "\nendstream\nendobj\n\n" );
+    CHECK_RETURN( writeBuffer( aLine.getStr(), aLine.getLength() ) );
+    CHECK_RETURN( updateObject( nStreamLengthObject ) );
+    aLine.setLength( 0 );
+    aLine.append( nStreamLengthObject );
+    aLine.append( " 0 obj\n" );
+    aLine.append( (sal_Int64)(nEndPos-nStartPos) );
+    aLine.append( "\nendobj\n\n" );
+    CHECK_RETURN( writeBuffer( aLine.getStr(), aLine.getLength() ) );
+=====================================================================
+Found a 12 line (122 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salframe.h
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salframe.h
+
+    virtual void                SetExtendedFrameStyle( SalExtStyle nExtStyle );
+    virtual void				Show( BOOL bVisible, BOOL bNoActivate = FALSE );
+    virtual void				Enable( BOOL bEnable );
+    virtual void              SetMinClientSize( long nWidth, long nHeight );
+    virtual void              SetMaxClientSize( long nWidth, long nHeight );
+    virtual void				SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags );
+    virtual void				GetClientSize( long& rWidth, long& rHeight );
+    virtual void				GetWorkArea( Rectangle& rRect );
+    virtual SalFrame*			GetParent() const;
+    virtual void				SetWindowState( const SalFrameState* pState );
+    virtual BOOL				GetWindowState( SalFrameState* pState );
+    virtual void				ShowFullScreen( BOOL bFullScreen, sal_Int32 nMonitor );
+=====================================================================
+Found a 25 line (122 tokens) duplication in the following files: 
+Starting at line 1060 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+Starting at line 1340 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+
+sal_Bool ConfigItem::AddNode(const rtl::OUString& rNode, const rtl::OUString& rNewNode)
+{
+	ValueCounter_Impl aCounter(pImpl->nInValueChange);
+    sal_Bool bRet = sal_True;
+    Reference<XHierarchicalNameAccess> xHierarchyAccess = GetTree();
+    if(xHierarchyAccess.is())
+	{
+		Reference<XChangesBatch> xBatch(xHierarchyAccess, UNO_QUERY);
+		try
+		{
+			Reference<XNameContainer> xCont;
+			if(rNode.getLength())
+			{
+				Any aNode = xHierarchyAccess->getByHierarchicalName(rNode);
+				aNode >>= xCont;
+			}
+			else
+				xCont = Reference<XNameContainer> (xHierarchyAccess, UNO_QUERY);
+			if(!xCont.is())
+				return sal_False;
+
+			Reference<XSingleServiceFactory> xFac(xCont, UNO_QUERY);
+
+            if(xFac.is())
+			{
+=====================================================================
+Found a 20 line (122 tokens) duplication in the following files: 
+Starting at line 1225 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/urltest.cxx
+Starting at line 1257 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/urltest.cxx
+
+                INET_PROT_HTTP);
+			if (aTest[i].m_pOutput == 0
+                ? !aUrl.HasError()
+                : (aUrl.HasError()
+                   || (aUrl.GetMainURL(INetURLObject::DECODE_TO_IURI).
+                           equalsAscii(aTest[i].m_pOutput)
+                       != sal_True)))
+			{
+				String sTest(aUrl.GetMainURL(INetURLObject::DECODE_TO_IURI));
+				printf("BAD %s -> %s != %s\n",
+					   aTest[i].m_pInput,
+                       aUrl.HasError() ? "<none>"
+                       : ByteString(sTest, RTL_TEXTENCODING_ASCII_US).GetBuffer(),
+                       aTest[i].m_pOutput == 0 ? "<none>" : aTest[i].m_pOutput);
+			}
+		}
+    }
+
+    if (true)
+    {
+=====================================================================
+Found a 24 line (122 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/zcodec/zcodec.cxx
+Starting at line 337 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/zcodec/zcodec.cxx
+
+			PZSTREAM->avail_in = mpIStm->Read (
+				PZSTREAM->next_in = mpInBuf, nInToRead);
+			mnInToRead -= nInToRead;
+
+			if ( mnCompressMethod & ZCODEC_UPDATE_CRC )
+				mnCRC = UpdateCRC( mnCRC, mpInBuf, nInToRead );
+
+		}
+		err = inflate( PZSTREAM, Z_NO_FLUSH );
+		if ( err < 0 )
+		{
+			// Accept Z_BUF_ERROR as EAGAIN or EWOULDBLOCK.
+			mbStatus = (err == Z_BUF_ERROR);
+			break;
+		}
+	}
+	while ( (err != Z_STREAM_END) &&
+			(PZSTREAM->avail_out != 0) &&
+			(PZSTREAM->avail_in || mnInToRead) );
+	if ( err == Z_STREAM_END ) 
+		mbFinish = TRUE;
+
+	return (mbStatus ? (long)(nSize - PZSTREAM->avail_out) : -1);
+}
+=====================================================================
+Found a 16 line (122 tokens) duplication in the following files: 
+Starting at line 322 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+
+	uno::Reference < XPropertySet > xPropSet;
+
+	uno::Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
+	ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
+	OTextCursorHelper *pTxtCrsr =
+				(OTextCursorHelper*)xCrsrTunnel->getSomething(
+											OTextCursorHelper::getUnoTunnelId() );
+	ASSERT( pTxtCrsr, "SwXTextCursor missing" );
+	SwDoc *pDoc = SwImport::GetDocFromXMLImport( rImport );
+
+	SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN,
+						 RES_FRMATR_END );
+	Size aTwipSize( 0, 0 );
+	Rectangle aVisArea( 0, 0, nWidth, nHeight );
+    lcl_putHeightAndWidth( aItemSet, nHeight, nWidth,
+						   &aTwipSize.Height(), &aTwipSize.Width() );
+=====================================================================
+Found a 23 line (122 tokens) duplication in the following files: 
+Starting at line 665 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+
+	pAppletImpl->SetAltText( aAlt );
+
+	SfxItemSet aItemSet( pDoc->GetAttrPool(), pCSS1Parser->GetWhichMap() );
+	SvxCSS1PropertyInfo aPropInfo;
+	if( HasStyleOptions( aStyle, aId, aClass ) )
+		ParseStyleOptions( aStyle, aId, aClass, aItemSet, aPropInfo );
+
+	SfxItemSet& rFrmSet = pAppletImpl->GetItemSet();
+	if( !IsNewDoc() )
+		Reader::ResetFrmFmtAttrs( rFrmSet );
+
+	// den Anker und die Ausrichtung setzen
+	SetAnchorAndAdjustment( eVertOri, eHoriOri, aItemSet, aPropInfo, rFrmSet );
+
+	// und noch die Groesse des Rahmens
+	Size aDfltSz( HTML_DFLT_APPLET_WIDTH, HTML_DFLT_APPLET_HEIGHT );
+	SetFixSize( aSize, aDfltSz, bPrcWidth, bPrcHeight, aItemSet, aPropInfo,
+				rFrmSet );
+	SetSpace( aSpace, aItemSet, aPropInfo, rFrmSet );
+}
+#endif
+
+void SwHTMLParser::EndApplet()
+=====================================================================
+Found a 28 line (122 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdocirc.cxx
+Starting at line 1921 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+	const bool bIsLineDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTLINE));
+
+	// prepare ItemSet of this object
+	const SfxItemSet& rSet = GetObjectItemSet();
+
+	// perepare ItemSet to avoid old XOut line drawing
+	SfxItemSet aEmptySet(*rSet.GetPool());
+	aEmptySet.Put(XLineStyleItem(XLINE_NONE));
+	aEmptySet.Put(XFillStyleItem(XFILL_NONE));
+
+	// #b4899532# if not filled but fill draft, avoid object being invisible in using
+	// a hair linestyle and COL_LIGHTGRAY
+    SfxItemSet aItemSet(rSet);
+	if(bIsFillDraft && XLINE_NONE == ((const XLineStyleItem&)(rSet.Get(XATTR_LINESTYLE))).GetValue())
+	{
+		ImpPrepareLocalItemSetForDraftLine(aItemSet);
+	}
+
+	// #103692# prepare ItemSet for shadow fill attributes
+    SfxItemSet aShadowSet(aItemSet);
+
+	// prepare line geometry
+	::std::auto_ptr< SdrLineGeometry > pLineGeometry( ImpPrepareLineGeometry(rXOut, aItemSet, bIsLineDraft) );
+
+	// Shadows
+	if (!bHideContour && ImpSetShadowAttributes(aItemSet, aShadowSet))
+	{
+        if( !IsClosed() || bIsFillDraft )
+=====================================================================
+Found a 15 line (122 tokens) duplication in the following files: 
+Starting at line 1516 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit2.cxx
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit2.cxx
+
+EditPaM ImpEditEngine::EndOfWord( const EditPaM& rPaM, sal_Int16 nWordType )
+{
+	EditPaM aNewPaM( rPaM );
+
+	// we need to increase the position by 1 when retrieving the locale
+	// since the attribute for the char left to the cursor position is returned
+	EditPaM aTmpPaM( aNewPaM );
+	xub_StrLen nMax = rPaM.GetNode()->Len();
+	if ( aTmpPaM.GetIndex() < nMax )
+		aTmpPaM.SetIndex( aTmpPaM.GetIndex() + 1 );
+    lang::Locale aLocale( GetLocale( aTmpPaM ) );
+
+	uno::Reference < i18n::XBreakIterator > _xBI( ImplGetBreakIterator() );
+	i18n::Boundary aBoundary = _xBI->getWordBoundary( *rPaM.GetNode(), rPaM.GetIndex(), aLocale, nWordType, sal_True );
+	aNewPaM.SetIndex( (USHORT)aBoundary.endPos );
+=====================================================================
+Found a 16 line (122 tokens) duplication in the following files: 
+Starting at line 4330 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3927 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x2000, DFF_Prop_geoBottom,0, 800 }
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] = 
+{
+	{ { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } }
+};
+static const mso_CustomShape msoFlowChartAlternateProcess =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartAlternateProcessVert, sizeof( mso_sptFlowChartAlternateProcessVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartAlternateProcessSegm, sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptFlowChartAlternateProcessCalc, sizeof( mso_sptFlowChartAlternateProcessCalc ) / sizeof( SvxMSDffCalculationData ),
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartAlternateProcessTextRect, sizeof( mso_sptFlowChartAlternateProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 32 line (122 tokens) duplication in the following files: 
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+Starting at line 728 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+
+	sal_uInt32          &rAttrib)
+{
+	// Acquire exclusive access.
+	osl::MutexGuard aGuard(*this);
+
+	// Check precond.
+	if (!self::isValid())
+		return store_E_InvalidAccess;
+
+	// Setup BTree entry.
+	entry e;
+	e.m_aKey = rKey;
+
+	// Find NodePage.
+	storeError eErrCode = find (e, *m_pNode[0]);
+	if (eErrCode != store_E_None)
+		return eErrCode;
+
+	// Find Index.
+	sal_uInt16 i = m_pNode[0]->find(e), n = m_pNode[0]->usageCount();
+	if (!(i < n))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Check for exact match.
+	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+=====================================================================
+Found a 13 line (122 tokens) duplication in the following files: 
+Starting at line 1121 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/embobj.cxx
+Starting at line 794 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/embedhlp.cxx
+
+	Point aPixViewPos = pOut->LogicToPixel( rRect.TopLeft() );
+	INT32 nMax = aPixSize.Width() + aPixSize.Height();
+	for( INT32 i = 5; i < nMax; i += 5 )
+	{
+		Point a1( aPixViewPos ), a2( aPixViewPos );
+		if( i > aPixSize.Width() )
+			a1 += Point( aPixSize.Width(), i - aPixSize.Width() );
+		else
+			a1 += Point( i, 0 );
+		if( i > aPixSize.Height() )
+			a2 += Point( i - aPixSize.Height(), aPixSize.Height() );
+		else
+			a2 += Point( 0, i );
+=====================================================================
+Found a 12 line (122 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/transitions/snakewipe.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/transitions/snakewipe.cxx
+
+        const double len = ((1.0 - t) * M_SQRT2 * d);
+        const double height = ::basegfx::pruneScaleValue( M_SQRT1_2 / m_sqrtElements );
+        poly.clear();
+        poly.append( ::basegfx::B2DPoint( 0.0, 0.0 ) );
+        poly.append( ::basegfx::B2DPoint( 0.0, height ) );
+        poly.append( ::basegfx::B2DPoint( len + a, height ) );
+        poly.append( ::basegfx::B2DPoint( len + a, 0.0 ) );
+        poly.setClosed(true);
+        ::basegfx::B2DHomMatrix aTransform;
+        if ((static_cast<sal_Int32>(sqrtArea2) & 1) == 1) {
+            // odd line
+            aTransform.translate( 0.0, -height );
+=====================================================================
+Found a 12 line (122 tokens) duplication in the following files: 
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/shapes/viewappletshape.cxx
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/shapes/viewappletshape.cxx
+
+                xFrameWindow->setPosSize( static_cast<sal_Int32>(rPixelBounds.getMinX()), 
+                                          static_cast<sal_Int32>(rPixelBounds.getMinY()), 
+                                          static_cast<sal_Int32>(rPixelBounds.getWidth()), 
+                                          static_cast<sal_Int32>(rPixelBounds.getHeight()),
+                                          awt::PosSize::POSSIZE );
+
+            uno::Reference< awt::XWindow > xAppletWindow( mxFrame->getComponentWindow() );
+            if( xAppletWindow.is() )
+                xAppletWindow->setPosSize( 0, 0, 
+                                           static_cast<sal_Int32>(rPixelBounds.getWidth()), 
+                                           static_cast<sal_Int32>(rPixelBounds.getHeight()),
+                                           awt::PosSize::POSSIZE );
+=====================================================================
+Found a 52 line (122 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/workbench/TestProxySet.cxx
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/workbench/TestSmplMail.cxx
+
+using namespace	::rtl					;
+using namespace	::cppu					;
+using namespace	::com::sun::star::uno	;
+using namespace	::com::sun::star::lang	;
+using namespace std						;
+using namespace com::sun::star::system;
+
+//--------------------------------------------------------------
+//	defines
+//--------------------------------------------------------------
+
+#define RDB_SYSPATH "D:\\Projects\\gsl\\shell\\wntmsci7\\bin\\applicat.rdb"
+
+//--------------------------------------------------------------
+//	global variables
+//--------------------------------------------------------------
+
+Reference< XMultiServiceFactory >	g_xFactory;
+
+//--------------------------------------------------------------
+//	main
+//--------------------------------------------------------------
+
+
+// int SAL_CALL main(int nArgc, char* Argv[], char* pEnv[]	)
+// make Warning free, leave out typename
+int SAL_CALL main(int , char*, char* )
+{
+	//-------------------------------------------------
+	// get the global service-manager
+	//-------------------------------------------------
+    
+	// Get global factory for uno services.
+	OUString rdbName = OUString( RTL_CONSTASCII_USTRINGPARAM( RDB_SYSPATH ) );
+	Reference< XMultiServiceFactory > g_xFactory( createRegistryServiceFactory( rdbName ) );
+
+	// Print a message if an error occured.
+	if ( g_xFactory.is() == sal_False )
+	{
+		OSL_ENSURE(sal_False, "Can't create RegistryServiceFactory");
+		return(-1);
+	}
+
+	printf("Creating RegistryServiceFactory successful\n");
+
+	//-------------------------------------------------
+	// try to get an Interface to a XFilePicker Service
+	//-------------------------------------------------
+
+    try
+    {
+	    Reference< XSimpleMailClientSupplier > xSmplMailClientSuppl(
+=====================================================================
+Found a 17 line (122 tokens) duplication in the following files: 
+Starting at line 3268 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objstor.cxx
+Starting at line 3311 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objstor.cxx
+
+	sal_Bool bResult = sal_True;
+
+	if ( pImp->mpObjectContainer )
+	{
+		uno::Sequence < ::rtl::OUString > aNames = GetEmbeddedObjectContainer().GetObjectNames();
+		for ( sal_Int32 n=0; n<aNames.getLength(); n++ )
+		{
+			uno::Reference < embed::XEmbeddedObject > xObj = GetEmbeddedObjectContainer().GetEmbeddedObject( aNames[n] );
+			OSL_ENSURE( xObj.is(), "An empty entry in the embedded objects list!\n" );
+			if ( xObj.is() )
+			{
+				uno::Reference< embed::XEmbedPersist > xPersist( xObj, uno::UNO_QUERY );
+				if ( xPersist.is() )
+				{
+					try
+					{
+						xPersist->setPersistentEntry( xStorage,
+=====================================================================
+Found a 20 line (122 tokens) duplication in the following files: 
+Starting at line 924 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/shutdowniconw32.cxx
+Starting at line 953 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/shutdowniconw32.cxx
+
+	else
+	{
+		char szPathA[_MAX_PATH];
+		GetModuleFileNameA( NULL, szPathA, _MAX_PATH-1);
+
+		// calc the string wcstr len
+		int nNeededWStrBuffSize = MultiByteToWideChar( CP_ACP, 0, szPathA, -1, NULL, 0 );
+
+		// copy the string if necessary
+		if ( nNeededWStrBuffSize > 0 )
+			MultiByteToWideChar( CP_ACP, 0, szPathA, -1, aPath, nNeededWStrBuffSize );
+	}
+
+	OUString aOfficepath( reinterpret_cast<const sal_Unicode*>(aPath) );
+	int i = aOfficepath.lastIndexOf((sal_Char) '\\');
+	if( i != -1 )
+		aOfficepath = aOfficepath.copy(0, i);
+
+	OUString quickstartExe(aOfficepath);
+	quickstartExe += OUString( RTL_CONSTASCII_USTRINGPARAM( "\\quickstart.exe" ) );
+=====================================================================
+Found a 19 line (122 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/notes/EditWindow.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/document.cxx
+
+                DEFAULTFONT_FIXED,      EE_CHAR_FONTINFO },
+            // info to get CJK font to be used
+            {   LANGUAGE_JAPANESE,      LANGUAGE_NONE,
+                DEFAULTFONT_CJK_TEXT,   EE_CHAR_FONTINFO_CJK },
+            // info to get CTL font to be used
+            {   LANGUAGE_ARABIC,        LANGUAGE_NONE,
+                DEFAULTFONT_CTL_TEXT,   EE_CHAR_FONTINFO_CTL }
+        };
+        aTable[0].nLang = aOpt.nDefaultLanguage;
+        aTable[1].nLang = aOpt.nDefaultLanguage_CJK;
+        aTable[2].nLang = aOpt.nDefaultLanguage_CTL;
+        //
+        for (int i = 0;  i < 3;  ++i)
+        {
+            const FontDta &rFntDta = aTable[i];
+            LanguageType nLang = (LANGUAGE_NONE == rFntDta.nLang) ?
+                    rFntDta.nFallbackLang : rFntDta.nLang;
+            Font aFont = Application::GetDefaultDevice()->GetDefaultFont(
+                        rFntDta.nFontType, nLang, DEFAULTFONT_FLAGS_ONLYONE );
+=====================================================================
+Found a 23 line (122 tokens) duplication in the following files: 
+Starting at line 1529 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pvlaydlg.cxx
+Starting at line 993 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/tpsort.cxx
+
+	if ( pEd == &aEdOutPos )
+	{
+		String	theCurPosStr = aEdOutPos.GetText();
+		USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc );
+
+		if ( SCA_VALID == (nResult & SCA_VALID) )
+		{
+			String*	pStr	= NULL;
+			BOOL	bFound	= FALSE;
+			USHORT	i		= 0;
+			USHORT	nCount	= aLbOutPos.GetEntryCount();
+
+			for ( i=2; i<nCount && !bFound; i++ )
+			{
+				pStr = (String*)aLbOutPos.GetEntryData( i );
+				bFound = (theCurPosStr == *pStr);
+			}
+
+			if ( bFound )
+				aLbOutPos.SelectEntryPos( --i );
+			else
+				aLbOutPos.SelectEntryPos( 0 );
+		}
+=====================================================================
+Found a 16 line (122 tokens) duplication in the following files: 
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/inputhdl.cxx
+Starting at line 1491 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/inputwin.cxx
+
+	String aFirstName;
+	const ScAppOptions& rOpt = SC_MOD()->GetAppOptions();
+	USHORT nMRUCount = rOpt.GetLRUFuncListCount();
+	const USHORT* pMRUList = rOpt.GetLRUFuncList();
+	if (pMRUList)
+	{
+		const ScFunctionList* pFuncList = ScGlobal::GetStarCalcFunctionList();
+		ULONG nListCount = pFuncList->GetCount();
+		for (USHORT i=0; i<nMRUCount; i++)
+		{
+			USHORT nId = pMRUList[i];
+			for (ULONG j=0; j<nListCount; j++)
+			{
+				const ScFuncDesc* pDesc = pFuncList->GetFunction( j );
+				if ( pDesc->nFIndex == nId && pDesc->pFuncName )
+				{
+=====================================================================
+Found a 21 line (122 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlstyli.cxx
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/PageMasterImportPropMapper.cxx
+
+			pNewBorders[i] = new XMLPropertyState(pAllBorderProperty->mnIndex + 1 + i, pAllBorderProperty->maValue);
+			pBorders[i] = pNewBorders[i];
+		}
+		if( !pBorderWidths[i] )
+			pBorderWidths[i] = pAllBorderWidthProperty;
+		else
+			pBorderWidths[i]->mnIndex = -1;
+		if( pBorders[i] )
+		{
+			table::BorderLine aBorderLine;
+			pBorders[i]->maValue >>= aBorderLine;
+ 			if( pBorderWidths[i] )
+			{
+				table::BorderLine aBorderLineWidth;
+				pBorderWidths[i]->maValue >>= aBorderLineWidth;
+				aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
+				aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
+				aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
+				pBorders[i]->maValue <<= aBorderLine;
+			}
+		}
+=====================================================================
+Found a 13 line (122 tokens) duplication in the following files: 
+Starting at line 962 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLStylesExportHelper.cxx
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLStylesExportHelper.cxx
+
+{
+	DBG_ASSERT(static_cast<size_t>(nTable) < aTables.size(), "wrong table");
+	ScMyFormatRangeAddresses* pFormatRanges(aTables[nTable]);
+	ScMyFormatRangeAddresses::iterator aItr(pFormatRanges->begin());
+	ScMyFormatRangeAddresses::iterator aEndItr(pFormatRanges->end());
+	while (aItr != aEndItr)
+	{
+		if (((*aItr).aRangeAddress.StartColumn <= nColumn) &&
+			((*aItr).aRangeAddress.EndColumn >= nColumn) &&
+			((*aItr).aRangeAddress.StartRow <= nRow) &&
+			((*aItr).aRangeAddress.EndRow >= nRow))
+		{
+			bIsAutoStyle = aItr->bIsAutoStyle;
+=====================================================================
+Found a 20 line (122 tokens) duplication in the following files: 
+Starting at line 1946 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/attarray.cxx
+Starting at line 1983 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/attarray.cxx
+
+BOOL ScAttrArray::IsAllEqual( const ScAttrArray& rOther, SCROW nStartRow, SCROW nEndRow ) const
+{
+	//!	mit IsVisibleEqual zusammenfassen?
+
+	BOOL bEqual = TRUE;
+	SCSIZE nThisPos = 0;
+	SCSIZE nOtherPos = 0;
+	if ( nStartRow > 0 )
+	{
+		Search( nStartRow, nThisPos );
+		rOther.Search( nStartRow, nOtherPos );
+	}
+
+	while ( nThisPos<nCount && nOtherPos<rOther.nCount && bEqual )
+	{
+		SCROW nThisRow = pData[nThisPos].nRow;
+		SCROW nOtherRow = rOther.pData[nOtherPos].nRow;
+		const ScPatternAttr* pThisPattern = pData[nThisPos].pPattern;
+		const ScPatternAttr* pOtherPattern = rOther.pData[nOtherPos].pPattern;
+		bEqual = ( pThisPattern == pOtherPattern );
+=====================================================================
+Found a 22 line (122 tokens) duplication in the following files: 
+Starting at line 874 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 960 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+int Hunspell::stem(char*** slst, const char * word)
+{
+  char cw[MAXWORDUTF8LEN + 4];
+  char wspace[MAXWORDUTF8LEN + 4];
+  if (! pSMgr) return 0;
+  int wl = strlen(word);
+  if (utf8) {
+    if (wl >= MAXWORDUTF8LEN) return 0;
+  } else {
+    if (wl >= MAXWORDLEN) return 0;
+  }
+  int captype = 0;
+  int abbv = 0;
+  wl = cleanword(cw, word, &captype, &abbv);
+  if (wl == 0) return 0;
+  
+  int ns = 0;
+
+  *slst = NULL; // HU, nsug in pSMgr->suggest
+  
+  switch(captype) {
+     case HUHCAP:
+=====================================================================
+Found a 20 line (122 tokens) duplication in the following files: 
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/languageguessing/guesslang.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/languageguessing/guesslang.cxx
+
+void SAL_CALL LangGuess_Impl::enableLanguages(
+        const uno::Sequence< Locale >& rLanguages )
+    throw (lang::IllegalArgumentException, uno::RuntimeException)
+{
+    osl::MutexGuard aGuard( GetLangGuessMutex() );
+
+    sal_Int32 nLanguages = rLanguages.getLength();
+    const Locale *pLanguages = rLanguages.getConstArray();
+
+    for (sal_Int32 i = 0;  i < nLanguages;  ++i)
+    {
+        string language;
+
+        OString l = OUStringToOString( pLanguages[i].Language, RTL_TEXTENCODING_ASCII_US );
+        OString c = OUStringToOString( pLanguages[i].Country, RTL_TEXTENCODING_ASCII_US );
+
+        language += l.getStr();
+        language += "-";
+        language += c.getStr();
+        guesser.EnableLanguage(language);
+=====================================================================
+Found a 26 line (122 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx
+
+        return false;
+    
+    // init m_sRuntimeLibrary
+    OSL_ASSERT(m_sHome.getLength());
+    //call virtual function to get the possible paths to the runtime library.
+    
+    int size = 0;
+    char const* const* arRtPaths = getRuntimePaths( & size);
+    vector<OUString> libpaths = getVectorFromCharArray(arRtPaths, size);
+    
+    bool bRt = false;
+    typedef vector<OUString>::const_iterator i_path;
+    for(i_path ip = libpaths.begin(); ip != libpaths.end(); ip++)
+    {
+        //Construct an absolute path to the possible runtime
+        OUString usRt= m_sHome + *ip;
+        DirectoryItem item;
+        if(DirectoryItem::get(usRt, item) == File::E_None)
+        {
+            //found runtime lib
+            m_sRuntimeLibrary = usRt;
+            bRt = true;
+            break;
+        }
+    }
+    if (!bRt)
+=====================================================================
+Found a 4 line (122 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 13 line (122 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/popupmenucontrollerfactory.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/statusbarcontrollerfactory.cxx
+
+        rtl::OUString getValueFromCommandModule( const rtl::OUString& rCommandURL, const rtl::OUString& rModule ) const;
+        void          addServiceToCommandModule( const rtl::OUString& rCommandURL, const rtl::OUString& rModule, const rtl::OUString& rServiceSpecifier );
+        void          removeServiceFromCommandModule( const rtl::OUString& rCommandURL, const rtl::OUString& rModule );
+
+        // container.XContainerListener
+        virtual void SAL_CALL elementInserted( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL elementRemoved ( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL elementReplaced( const ContainerEvent& aEvent ) throw(RuntimeException);
+
+        // lang.XEventListener
+        virtual void SAL_CALL disposing( const EventObject& aEvent ) throw(RuntimeException);
+ 
+    private:
+=====================================================================
+Found a 28 line (122 tokens) duplication in the following files: 
+Starting at line 1067 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/recentfilesmenucontroller.cxx
+
+				INetURLObject	aURL( m_aRecentFilesItems[i].aURL );
+
+				if ( aURL.GetProtocol() == INET_PROT_FILE )
+				{
+					// Do handle file URL differently => convert it to a system
+					// path and abbreviate it with a special function:
+					String aFileSystemPath( aURL.getFSysPath( INetURLObject::FSYS_DETECT ) );
+
+					::rtl::OUString	aSystemPath( aFileSystemPath );
+					::rtl::OUString	aCompactedSystemPath;
+
+					aTipHelpText = aSystemPath;
+					oslFileError nError = osl_abbreviateSystemPath( aSystemPath.pData, &aCompactedSystemPath.pData, 46, NULL );
+					if ( !nError )
+						aMenuTitle = String( aCompactedSystemPath );
+					else
+						aMenuTitle = aSystemPath;
+				}
+				else
+				{
+					// Use INetURLObject to abbreviate all other URLs
+					String	aShortURL;
+					aShortURL = aURL.getAbbreviated( xStringLength, 46, INetURLObject::DECODE_UNAMBIGUOUS );
+					aMenuTitle += aShortURL;
+					aTipHelpText = aURLString;
+				}
+
+				::rtl::OUString aTitle( aMenuShortCut + aMenuTitle );
+=====================================================================
+Found a 16 line (122 tokens) duplication in the following files: 
+Starting at line 665 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/SalAquaFilePicker.cxx
+Starting at line 1650 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+	uno::Any aAny;
+	if( 0 == aArguments.getLength() )
+		throw lang::IllegalArgumentException(
+			rtl::OUString::createFromAscii( "no arguments" ),
+			static_cast<XFilePicker*>( this ), 1 );
+   
+	aAny = aArguments[0];
+
+	if( ( aAny.getValueType() != ::getCppuType( ( sal_Int16* )0 ) ) &&
+	     (aAny.getValueType() != ::getCppuType( ( sal_Int8* )0 ) ) )
+		 throw lang::IllegalArgumentException(
+			rtl::OUString::createFromAscii( "invalid argument type" ),
+			static_cast<XFilePicker*>( this ), 1 );
+
+	sal_Int16 templateId = -1;
+	aAny >>= templateId;
+=====================================================================
+Found a 12 line (122 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Button.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormattedField.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::form::binding;
+=====================================================================
+Found a 37 line (122 tokens) duplication in the following files: 
+Starting at line 19 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/so_activex.cpp
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/so_activex.cpp
+
+CComModule _Module;
+
+BEGIN_OBJECT_MAP(ObjectMap)
+OBJECT_ENTRY(CLSID_SOActiveX, CSOActiveX)
+END_OBJECT_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// DLL Entry Point
+
+extern "C"
+BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
+{
+    if (dwReason == DLL_PROCESS_ATTACH)
+    {
+        _Module.Init(ObjectMap, hInstance, &LIBID_SO_ACTIVEXLib);
+        DisableThreadLibraryCalls(hInstance);
+    }
+    else if (dwReason == DLL_PROCESS_DETACH)
+        _Module.Term();
+    return TRUE;    // ok
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Used to determine whether the DLL can be unloaded by OLE
+
+STDAPI DllCanUnloadNow(void)
+{
+    return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Returns a class factory to create an object of the requested type
+
+STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
+{
+    return _Module.GetClassObject(rclsid, riid, ppv);
+}
+=====================================================================
+Found a 34 line (122 tokens) duplication in the following files: 
+Starting at line 1005 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 615 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+			ATLASSERT( mWebBrowser2 );
+			if( mWebBrowser2 )
+				AtlAdvise( mWebBrowser2, GetUnknown(), DIID_DWebBrowserEvents2, &mCookie );
+		}
+	}
+
+	return hr;
+}
+
+STDMETHODIMP CSOActiveX::Invoke(DISPID dispidMember, 
+							    REFIID riid, 
+							    LCID lcid, 
+                                WORD wFlags, 
+							    DISPPARAMS* pDispParams,
+                                VARIANT* pvarResult, 
+							    EXCEPINFO* pExcepInfo,
+                                UINT* puArgErr)
+{
+    if (riid != IID_NULL)
+        return DISP_E_UNKNOWNINTERFACE;
+
+    if (!pDispParams)
+        return DISP_E_PARAMNOTOPTIONAL;
+
+	if ( dispidMember == DISPID_ONQUIT )
+		Cleanup();
+	
+    IDispatchImpl<ISOActiveX, &IID_ISOActiveX, 
+                  &LIBID_SO_ACTIVEXLib>::Invoke(
+             dispidMember, riid, lcid, wFlags, pDispParams,
+             pvarResult, pExcepInfo, puArgErr);
+
+    return S_OK;
+}
+=====================================================================
+Found a 15 line (122 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	// TODO: if the object has cached representation then it should be returned
+	// TODO: if the object has no cached representation and is in loaded state it should switch itself to the running state
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object is not loaded!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 43 line (122 tokens) duplication in the following files: 
+Starting at line 1617 of /local/ooo-build/ooo-build/src/oog680-m3/crashrep/source/win32/soreport.cpp
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/signal.c
+
+	FILE *fp = fopen( filename, "r" );
+
+	if ( fp )
+	{
+		rtlDigest digest = rtl_digest_createMD5();
+
+		if ( digest )
+		{
+			size_t			nBytesRead;
+			sal_uInt8		buffer[4096];
+			rtlDigestError	error = rtl_Digest_E_None;
+
+			while ( rtl_Digest_E_None == error &&
+				0 != (nBytesRead = fread( buffer, 1, sizeof(buffer), fp )) )
+			{
+				error = rtl_digest_updateMD5( digest, buffer, nBytesRead );	
+				nBytesProcessed += nBytesRead;
+			}
+
+			if ( rtl_Digest_E_None == error )
+			{
+				error = rtl_digest_getMD5( digest, pChecksum, nChecksumLen );
+			}
+
+			if ( rtl_Digest_E_None != error )
+				nBytesProcessed = 0;
+
+			rtl_digest_destroyMD5( digest );
+		}
+
+		fclose( fp );
+	}
+
+	return nBytesProcessed;
+}
+
+/*****************************************************************************/
+/* Call crash reporter	*/
+/*****************************************************************************/
+
+/* Helper function to encode and write a string to a stream */
+
+static int fputs_xml( const char *string, FILE *stream )
+=====================================================================
+Found a 32 line (122 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/cpputools/source/registercomponent/registercomponent.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/cpputools/source/unoexe/unoexe.cxx
+
+static OUString convertToFileUrl(const OUString& fileName)
+{
+    if ( isFileUrl(fileName) )
+    {
+        return fileName;
+    }
+
+    OUString uUrlFileName;
+    if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
+    {
+        OUString uWorkingDir;
+        if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) {
+            OSL_ASSERT(false);
+        }
+        if (FileBase::getAbsoluteFileURL(uWorkingDir, fileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    } else
+    {
+        if (FileBase::getFileURLFromSystemPath(fileName, uUrlFileName)
+            != FileBase::E_None)
+        {
+            OSL_ASSERT(false);
+        }
+    }
+
+    return uUrlFileName;
+}
+
+static sal_Bool s_quiet = false;
+=====================================================================
+Found a 28 line (122 tokens) duplication in the following files: 
+Starting at line 2220 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+Starting at line 2303 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+
+                        BitmapEx aBmp( pAct->GetBitmapEx() );
+                        const Rectangle aCropRect( pAct->GetSrcPoint(),
+                                                   pAct->GetSrcSize() );
+                        aBmp.Crop( aCropRect );
+
+                        ActionSharedPtr pBmpAction(
+                            internal::BitmapActionFactory::createBitmapAction(
+                                aBmp,
+                                getState( rStates ).mapModeTransform * 
+                                ::vcl::unotools::b2DPointFromPoint( pAct->GetDestPoint() ),
+                                getState( rStates ).mapModeTransform * 
+                                ::vcl::unotools::b2DSizeFromSize( pAct->GetDestSize() ),
+                                rCanvas,
+                                getState( rStates ) ) );
+
+                        if( pBmpAction )
+                        {
+                            maActions.push_back(
+                                MtfAction(
+                                    pBmpAction,
+                                    io_rCurrActionIndex ) );
+                            
+                            io_rCurrActionIndex += pBmpAction->getActionCount()-1;
+                        }
+                    }
+                    break;
+
+                    case META_MASK_ACTION:
+=====================================================================
+Found a 30 line (122 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConnection.cxx
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OConnection.cxx
+
+	return NULL;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setTypeMap( const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(SQLException, RuntimeException)
+{
+    ::dbtools::throwFeatureNotImplementedException( "XConnection::setTypeMap", *this );
+}
+// --------------------------------------------------------------------------------
+// XCloseable
+void SAL_CALL OConnection::close(  ) throw(SQLException, RuntimeException)
+{
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+	}
+	dispose();
+}
+// --------------------------------------------------------------------------------
+// XWarningsSupplier
+Any SAL_CALL OConnection::getWarnings(  ) throw(SQLException, RuntimeException)
+{
+	return Any();
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::clearWarnings(  ) throw(SQLException, RuntimeException)
+{
+}
+//--------------------------------------------------------------------
+void OConnection::buildTypeInfo() throw( SQLException)
+=====================================================================
+Found a 22 line (122 tokens) duplication in the following files: 
+Starting at line 625 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+Starting at line 611 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+						(*_rRow)[i]->setNull();
+					}
+				}	break;
+				case DataType::DOUBLE:
+				case DataType::INTEGER:
+				case DataType::DECIMAL:				// #99178# OJ
+				case DataType::NUMERIC:
+				{
+					sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter();
+					sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter();
+					String aStrConverted;
+
+					OSL_ENSURE(cDecimalDelimiter && nType != DataType::INTEGER ||
+							   !cDecimalDelimiter && nType == DataType::INTEGER,
+							   "FalscherTyp");
+
+					// In Standard-Notation (DezimalPUNKT ohne Tausender-Komma) umwandeln:
+					for (xub_StrLen j = 0; j < aStr.Len(); ++j)
+					{
+						if (cDecimalDelimiter && aStr.GetChar(j) == cDecimalDelimiter)
+							aStrConverted += '.';
+						else if ( aStr.GetChar(j) == '.' ) // special case, if decimal seperator isn't '.' we have to vut the string after it
+=====================================================================
+Found a 33 line (122 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AConnection.cxx
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConnection.cxx
+
+	return NULL;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setTypeMap( const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(SQLException, RuntimeException)
+{
+    ::dbtools::throwFeatureNotImplementedException( "XConnection::setTypeMap", *this );
+}
+// --------------------------------------------------------------------------------
+// XCloseable
+void SAL_CALL OConnection::close(  ) throw(SQLException, RuntimeException)
+{
+	// we just dispose us
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+	}
+	dispose();
+}
+// --------------------------------------------------------------------------------
+// XWarningsSupplier
+Any SAL_CALL OConnection::getWarnings(  ) throw(SQLException, RuntimeException)
+{
+	// when you collected some warnings -> return it
+	return Any();
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::clearWarnings(  ) throw(SQLException, RuntimeException)
+{
+	// you should clear your collected warnings here
+}
+//------------------------------------------------------------------------------
+void OConnection::disposing()
+=====================================================================
+Found a 30 line (122 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+Starting at line 260 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+
+	return m_aValue;
+}
+// -------------------------------------------------------------------------
+
+Sequence< sal_Int8 > SAL_CALL ODatabaseMetaDataResultSet::getBytes( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+{
+	return getValue(columnIndex);
+}
+// -------------------------------------------------------------------------
+
+::com::sun::star::util::Date SAL_CALL ODatabaseMetaDataResultSet::getDate( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+{
+	return getValue(columnIndex);
+}
+// -------------------------------------------------------------------------
+
+double SAL_CALL ODatabaseMetaDataResultSet::getDouble( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+{
+	return getValue(columnIndex);
+}
+// -------------------------------------------------------------------------
+
+float SAL_CALL ODatabaseMetaDataResultSet::getFloat( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+{
+	return getValue(columnIndex);
+}
+// -------------------------------------------------------------------------
+
+sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::getInt( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+{
+=====================================================================
+Found a 27 line (122 tokens) duplication in the following files: 
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+Starting at line 153 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+	JavaOptions options;
+
+	try 
+	{
+		if (!options.initOptions(argc, argv))
+		{
+			exit(1);
+		}
+	}
+	catch( IllegalArgument& e)
+	{
+		fprintf(stderr, "Illegal option: %s\n", e.m_message.getStr());
+		exit(99);
+	}
+
+	RegistryTypeManager typeMgr;
+	
+	if (!typeMgr.init(options.getInputFiles(), options.getExtraInputFiles()))
+	{
+		fprintf(stderr, "%s : init registries failed, check your registry files.\n", options.getProgramName().getStr());
+		exit(99);
+	}
+
+	if (options.isValid("-B"))
+	{
+		typeMgr.setBase(options.getOption("-B"));
+	}
+=====================================================================
+Found a 25 line (122 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_textlayout.cxx
+Starting at line 385 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/textlayout.cxx
+
+                          OffsetTransformer( aMatrix ) );
+    }
+
+
+#define IMPLEMENTATION_NAME "VCLCanvas::TextLayout"
+#define SERVICE_NAME "com.sun.star.rendering.TextLayout"
+
+    ::rtl::OUString SAL_CALL TextLayout::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL TextLayout::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL TextLayout::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+
+        return aRet;
+    }
+}
+=====================================================================
+Found a 23 line (122 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_canvascustomsprite.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvascustomsprite.cxx
+
+        CanvasCustomSpriteBaseT::disposing();
+    }
+
+#define IMPLEMENTATION_NAME "VCLCanvas.CanvasCustomSprite"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasCustomSprite"
+
+    ::rtl::OUString SAL_CALL CanvasCustomSprite::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasCustomSprite::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasCustomSprite::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+=====================================================================
+Found a 25 line (122 tokens) duplication in the following files: 
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 385 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/textlayout.cxx
+
+                          OffsetTransformer( aMatrix ) );
+    }
+
+
+#define IMPLEMENTATION_NAME "VCLCanvas::TextLayout"
+#define SERVICE_NAME "com.sun.star.rendering.TextLayout"
+
+    ::rtl::OUString SAL_CALL TextLayout::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL TextLayout::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL TextLayout::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+
+        return aRet;
+    }
+}
+=====================================================================
+Found a 23 line (122 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvascustomsprite.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvascustomsprite.cxx
+
+        CanvasCustomSpriteBaseT::disposing();
+    }
+
+#define IMPLEMENTATION_NAME "VCLCanvas.CanvasCustomSprite"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasCustomSprite"
+
+    ::rtl::OUString SAL_CALL CanvasCustomSprite::getImplementationName() throw( uno::RuntimeException )
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasCustomSprite::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasCustomSprite::getSupportedServiceNames()  throw( uno::RuntimeException )
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+=====================================================================
+Found a 23 line (122 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvasbitmap.cxx
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvasbitmap.cxx
+
+        CanvasBitmap_Base::disposing();
+    }
+
+#define IMPLEMENTATION_NAME "VCLCanvas.CanvasBitmap"
+#define SERVICE_NAME "com.sun.star.rendering.CanvasBitmap"
+
+    ::rtl::OUString SAL_CALL CanvasBitmap::getImplementationName(  ) throw (uno::RuntimeException)
+    {
+        return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+    }
+
+    sal_Bool SAL_CALL CanvasBitmap::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
+    {
+        return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
+    }
+
+    uno::Sequence< ::rtl::OUString > SAL_CALL CanvasBitmap::getSupportedServiceNames(  ) throw (uno::RuntimeException)
+    {
+        uno::Sequence< ::rtl::OUString > aRet(1);
+        aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+        
+        return aRet;
+    }
+=====================================================================
+Found a 25 line (122 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
+
+        "test.javauno.nativethreadpool.server");
+}
+
+css::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() {
+    return css::uno::Sequence< rtl::OUString >();
+}
+
+cppu::ImplementationEntry entries[] = {
+    { &create, &getImplementationName, &getSupportedServiceNames,
+      &cppu::createSingleComponentFactory, 0, 0 } };
+
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+    char const * implName, void * serviceManager, void * registryKey)
+{
+    return cppu::component_getFactoryHelper(
+        implName, serviceManager, registryKey, entries);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, uno_Environment **)
+{
+    *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+=====================================================================
+Found a 38 line (122 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx
+
+using namespace com::sun::star::uno;
+
+namespace
+{
+//==================================================================================================
+// The call instruction within the asm section of callVirtualMethod may throw
+// exceptions.  So that the compiler handles this correctly, it is important
+// that (a) callVirtualMethod might call dummy_can_throw_anything (although this
+// never happens at runtime), which in turn can throw exceptions, and (b)
+// callVirtualMethod is not inlined at its call site (so that any exceptions are
+// caught which are thrown from the instruction calling callVirtualMethod):
+
+void callVirtualMethod( void * pAdjustedThisPtr,
+                        sal_Int32 nVtableIndex,
+                        void * pRegisterReturn,
+                        typelib_TypeClass eReturnType,
+                        sal_Int32 * pStackLongs,
+                        sal_Int32 nStackLongs ) __attribute__((noinline));
+
+void callVirtualMethod( void * pAdjustedThisPtr,
+                        sal_Int32 nVtableIndex,
+                        void * pRegisterReturn,
+                        typelib_TypeClass eReturnType,
+                        sal_Int32 * pStackLongs,
+                        sal_Int32 nStackLongs )
+{
+	// parameter list is mixed list of * and values
+	// reference parameters are pointers
+
+	OSL_ENSURE( pStackLongs && pAdjustedThisPtr, "### null ptr!" );
+	OSL_ENSURE( (sizeof(void *) == 4) &&
+				 (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
+	OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
+
+    // never called
+    if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
+
+	volatile long o0 = 0, o1 = 0; // for register returns
+=====================================================================
+Found a 15 line (122 tokens) duplication in the following files: 
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/managelang.cxx
+Starting at line 399 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/managelang.cxx
+
+void SetDefaultLanguageDialog::CalcInfoSize()
+{
+	String sInfoStr = m_aInfoFT.GetText();
+	long nInfoWidth = m_aInfoFT.GetSizePixel().Width();
+	long nLongWord = getLongestWordWidth( sInfoStr, m_aInfoFT );
+	long nTxtWidth = m_aInfoFT.GetCtrlTextWidth( sInfoStr ) + nLongWord;
+	long nLines = ( nTxtWidth / nInfoWidth ) + 1;
+	if ( nLines > INFO_LINES_COUNT )
+	{
+		Size aFTSize = m_aLanguageFT.GetSizePixel();
+		Size aSize = m_aInfoFT.GetSizePixel();
+		long nNewHeight = aFTSize.Height() * nLines;
+		long nDelta = nNewHeight - aSize.Height();
+		aSize.Height() = nNewHeight;
+		m_aInfoFT.SetSizePixel( aSize );
+=====================================================================
+Found a 14 line (122 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/viewer/mediaevent_impl.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/viewer/mediaevent_impl.cxx
+
+void SAL_CALL MediaEventListenersImpl::keyReleased( const ::com::sun::star::awt::KeyEvent& e )
+    throw (::com::sun::star::uno::RuntimeException)
+{
+    const ::osl::MutexGuard aGuard( maMutex );
+    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
+
+    if( mpNotifyWindow )
+    {
+        KeyCode aVCLKeyCode( e.KeyCode,
+                            ( ( e.Modifiers & 1 ) ? KEY_SHIFT : 0 ) |
+                            ( ( e.Modifiers & 2 ) ? KEY_MOD1 : 0 ) |
+                            ( ( e.Modifiers & 4 ) ? KEY_MOD2 : 0 ) );
+        KeyEvent aVCLKeyEvt( e.KeyChar, aVCLKeyCode );
+        Application::PostKeyEvent( VCLEVENT_WINDOW_KEYUP, reinterpret_cast< ::Window* >( mpNotifyWindow ), &aVCLKeyEvt );
+=====================================================================
+Found a 20 line (121 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + x_lr * 3;
+                        int weight = (weight_y * weight_array[x_hr] + 
+                                     image_filter_size / 2) >> 
+                                     downscale_shift;
+                        fg[0] += fg_ptr[0] * weight;
+                        fg[1] += fg_ptr[1] * weight;
+                        fg[2] += fg_ptr[2] * weight;
+                        total_weight += weight;
+                        x_hr   += rx_inv;
+=====================================================================
+Found a 20 line (121 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, filter_),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            color_type* span = base_type::allocator().span();
+            interpolator_type& intr = base_type::interpolator();
+            intr.begin(x + base_type::filter_dx_dbl(), 
+                       y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 24 line (121 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/cpptypemaker.cxx
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/skeletonmaker/javatypemaker.cxx
+
+            o << "false";
+            return;
+        case codemaker::UnoType::SORT_CHAR:
+        case codemaker::UnoType::SORT_BYTE:
+        case codemaker::UnoType::SORT_SHORT:
+        case codemaker::UnoType::SORT_UNSIGNED_SHORT:
+        case codemaker::UnoType::SORT_LONG:
+        case codemaker::UnoType::SORT_UNSIGNED_LONG:
+        case codemaker::UnoType::SORT_HYPER:
+        case codemaker::UnoType::SORT_UNSIGNED_HYPER:
+        case codemaker::UnoType::SORT_FLOAT:
+        case codemaker::UnoType::SORT_DOUBLE:
+            o << "0";
+            return;
+        case codemaker::UnoType::SORT_VOID:
+        case codemaker::UnoType::SORT_STRING:
+        case codemaker::UnoType::SORT_TYPE:
+        case codemaker::UnoType::SORT_ANY:
+        case codemaker::UnoType::SORT_COMPLEX:
+            break;
+        }
+    }
+
+    if ( defaultvalue ) {
+=====================================================================
+Found a 17 line (121 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLSeriesHelper.cxx
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLSeriesHelper.cxx
+
+            , const uno::Reference< frame::XModel >& xChartModel )
+{
+    uno::Reference< beans::XPropertySet > xRet;
+
+    if( xSeries.is() )
+    {
+        try
+        {
+            uno::Reference< lang::XMultiServiceFactory > xFactory( xChartModel, uno::UNO_QUERY );
+            if( xFactory.is() )
+            {
+                xRet = uno::Reference< beans::XPropertySet >( xFactory->createInstance(
+                    OUString::createFromAscii( "com.sun.star.comp.chart2.DataSeriesWrapper" ) ), uno::UNO_QUERY );
+                Reference< lang::XInitialization > xInit( xRet, uno::UNO_QUERY );
+                if(xInit.is())
+                {
+                    Sequence< uno::Any > aArguments(2);
+=====================================================================
+Found a 25 line (121 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/databases.cxx
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvread.cxx
+
+			off = VENDORSHORT;
+		else
+			off = -1;
+		
+		if( off != -1 )
+		{
+			if( ! cap )
+			{
+				cap = true;
+				aStrBuf.ensureCapacity( 256 );
+			}
+			
+			aStrBuf.append( &oustring.getStr()[k],idx - k );
+			aStrBuf.append( m_vReplacement[off] );
+			k = idx + m_vAdd[off];
+		}
+	}
+	
+	if( cap )
+	{
+		if( k < oustring.getLength() )
+			aStrBuf.append( &oustring.getStr()[k],oustring.getLength()-k );
+		oustring = aStrBuf.makeStringAndClear();
+	}
+}
+=====================================================================
+Found a 25 line (121 tokens) duplication in the following files: 
+Starting at line 915 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                ContentProvider* pProvider,
+                const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+			{
+                xRow->appendString ( rProp, rData.getContentType() );
+=====================================================================
+Found a 32 line (121 tokens) duplication in the following files: 
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static const ucb::CommandInfo aFolderCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                ),
+=====================================================================
+Found a 25 line (121 tokens) duplication in the following files: 
+Starting at line 1066 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 915 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+            rProvider,
+        const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+			{
+				xRow->appendString ( rProp, rData.aContentType );
+=====================================================================
+Found a 32 line (121 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentcaps.cxx
+Starting at line 402 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx
+
+            static const ucb::CommandInfo aLinkCommandInfoTable[] =
+            {
+                ///////////////////////////////////////////////////////////
+                // Required commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
+                    -1,
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< uno::Sequence< beans::Property > * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString(
+                        RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast<
+                            uno::Sequence< beans::PropertyValue > * >( 0 ) )
+                )
+=====================================================================
+Found a 18 line (121 tokens) duplication in the following files: 
+Starting at line 1150 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+Starting at line 3276 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+	if( pWrtShell->IsFrmSelected() )
+	{
+		SfxItemSet aSet( pWrtShell->GetAttrPool(), RES_URL, RES_URL );
+		pWrtShell->GetFlyFrmAttr( aSet );
+		const SwFmtURL& rURL = (SwFmtURL&)aSet.Get( RES_URL );
+		if( rURL.GetMap() )
+		{
+			pImageMap = new ImageMap( *rURL.GetMap() );
+			AddFormat( SOT_FORMATSTR_ID_SVIM );
+		}
+		else if( rURL.GetURL().Len() )
+		{
+			pTargetURL = new INetImage( sGrfNm, rURL.GetURL(),
+										rURL.GetTargetFrameName(),
+										aEmptyStr, Size() );
+			AddFormat( SOT_FORMATSTR_ID_INET_IMAGE );
+		}
+	}
+=====================================================================
+Found a 11 line (121 tokens) duplication in the following files: 
+Starting at line 1384 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/fly.cxx
+Starting at line 3217 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/wsfrm.cxx
+
+				SwFrm *pFrm = Lower();
+				while ( pFrm )
+                {   nRemaining += (pFrm->Frm().*fnRect->fnGetHeight)();
+					if( pFrm->IsTxtFrm() && ((SwTxtFrm*)pFrm)->IsUndersized() )
+					// Dieser TxtFrm waere gern ein bisschen groesser
+						nRemaining += ((SwTxtFrm*)pFrm)->GetParHeight()
+                                      - (pFrm->Prt().*fnRect->fnGetHeight)();
+					else if( pFrm->IsSctFrm() && ((SwSectionFrm*)pFrm)->IsUndersized() )
+						nRemaining += ((SwSectionFrm*)pFrm)->Undersize();
+					pFrm = pFrm->GetNext();
+				}
+=====================================================================
+Found a 18 line (121 tokens) duplication in the following files: 
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap3.cxx
+Starting at line 659 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap3.cxx
+
+void SAL_CALL Svx3DSphereObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+	OGuard aGuard( Application::GetSolarMutex() );
+
+	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)))
+	{
+		// Transformationsmatrix in das Objekt packen
+		HOMOGEN_MATRIX_TO_OBJECT
+	}
+	else if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_POS)))
+	{
+		// Position in das Objekt packen
+		drawing::Position3D aUnoPos;
+		if( aValue >>= aUnoPos )
+		{
+			basegfx::B3DPoint aPos(aUnoPos.PositionX, aUnoPos.PositionY, aUnoPos.PositionZ);
+			((E3dSphereObj*)mpObj.get())->SetCenter(aPos);
+=====================================================================
+Found a 17 line (121 tokens) duplication in the following files: 
+Starting at line 1918 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 5663 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+        0x53, 0x00, 0x70, 0x00, 0x69, 0x00, 0x6E, 0x00,
+        0x42, 0x00, 0x75, 0x00, 0x74, 0x00, 0x74, 0x00,
+        0x6F, 0x00, 0x6E, 0x00, 0x31, 0x00, 0x00, 0x00,
+        0x00, 0x00
+    };
+
+    {
+        SvStorageStreamRef xStor2( rObj->OpenSotStream( C2S("\3OCXNAME")));
+        xStor2->Write(aOCXNAME,sizeof(aOCXNAME));
+        DBG_ASSERT((xStor2.Is() && (SVSTREAM_OK == xStor2->GetError())),"damn");
+    }
+
+    SvStorageStreamRef xContents( rObj->OpenSotStream( C2S("contents")));
+    return WriteContents(xContents, rPropSet, rSize);
+}
+
+sal_Bool OCX_SpinButton::WriteContents(
+=====================================================================
+Found a 30 line (121 tokens) duplication in the following files: 
+Starting at line 382 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dbregister.cxx
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optpath.cxx
+
+IMPL_LINK( SvxPathTabPage, HeaderSelect_Impl, HeaderBar*, pBar )
+{
+	if ( pBar && pBar->GetCurItemId() != ITEMID_TYPE )
+		return 0;
+
+	HeaderBarItemBits nBits	= pHeaderBar->GetItemBits(ITEMID_TYPE);
+	BOOL bUp = ( ( nBits & HIB_UPARROW ) == HIB_UPARROW );
+	SvSortMode eMode = SortAscending;
+
+	if ( bUp )
+	{
+		nBits &= ~HIB_UPARROW;
+		nBits |= HIB_DOWNARROW;
+		eMode = SortDescending;
+	}
+	else
+	{
+		nBits &= ~HIB_DOWNARROW;
+		nBits |= HIB_UPARROW;
+	}
+	pHeaderBar->SetItemBits( ITEMID_TYPE, nBits );
+	SvTreeList* pModel = pPathBox->GetModel();
+	pModel->SetSortMode( eMode );
+	pModel->Resort();
+	return 1;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SvxPathTabPage, HeaderEndDrag_Impl, HeaderBar*, pBar )
+=====================================================================
+Found a 18 line (121 tokens) duplication in the following files: 
+Starting at line 4775 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4356 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0xa302, 0x6000, 0x8000,
+	0x4000, 0x0001, 0x8000,
+	0x4000, 0x0001, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] = 
+{
+	{ { 3100, 3100 }, { 18500, 18500 } }
+};
+static const mso_CustomShape msoFlowChartOr =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartOrVert, sizeof( mso_sptFlowChartOrVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartOrSegm, sizeof( mso_sptFlowChartOrSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartOrTextRect, sizeof( mso_sptFlowChartOrTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 18 line (121 tokens) duplication in the following files: 
+Starting at line 4744 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4326 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0xa302, 0x6000, 0x8000,
+	0x4000, 0x0001, 0x8000,
+	0x4000, 0x0001, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] = 
+{
+	{ { 3100, 3100 }, { 18500, 18500 } }
+};
+static const mso_CustomShape msoFlowChartSummingJunction =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartSummingJunctionVert, sizeof( mso_sptFlowChartSummingJunctionVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartSummingJunctionSegm, sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartSummingJunctionTextRect, sizeof( mso_sptFlowChartSummingJunctionTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 2676 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2397 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 10800 }, { 0x1a MSO_I, 10800 },
+
+	{ 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I },
+
+	{ 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I }
+};
+static const sal_uInt16 mso_sptActionButtonSoundSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+
+	0x4000, 0x0005, 0x6001, 0x8000,
+	0x4000, 0x0001, 0x8000,
+	0x4000, 0x0001, 0x8000,
+	0x4000, 0x0001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 20 line (121 tokens) duplication in the following files: 
+Starting at line 800 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptUpArrowVert[] =	// adjustment1: x 0 - 21600
+{														// adjustment2: y 0 - 10800
+	{ 0 MSO_I, 21600 },	{ 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 },
+	{ 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
+};
+static const sal_uInt16 mso_sptUpArrowSegm[] =
+{
+	0x4000, 0x0006, 0x6001,	0x8000
+};
+static const sal_Int32 mso_sptUpArrowDefault[] =
+{
+	2, 5400, 5400
+};
+static const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] =
+{
+	{ { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } }
+};
+static const mso_CustomShape msoUpArrow =
+=====================================================================
+Found a 20 line (121 tokens) duplication in the following files: 
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 688 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptLeftArrowVert[] =	// adjustment1: x 0 - 21600
+{														// adjustment2: y 0 - 10800
+	{ 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 },
+	{ 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }
+};
+static const sal_uInt16 mso_sptLeftArrowSegm[] =
+{
+	0x4000, 0x0006, 0x6001,	0x8000
+};
+static const sal_Int32 mso_sptLeftArrowDefault[] =
+{
+	2, 5400, 5400
+};
+static const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] =
+{
+	{ { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } }
+};
+static const mso_CustomShape msoLeftArrow =
+=====================================================================
+Found a 23 line (121 tokens) duplication in the following files: 
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+        Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+        URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+        while ( pIter != m_aListenerMap.end() )
+        {
+            com::sun::star::util::URL aTargetURL;
+            aTargetURL.Complete = pIter->first;
+            if ( m_pImpl->m_xUrlTransformer.is() )
+				m_pImpl->m_xUrlTransformer->parseStrict( aTargetURL );
+            
+            Reference< XDispatch > xDispatch( pIter->second );
+            if ( xDispatch.is() )
+            {
+                // We already have a dispatch object => we have to requery.
+                // Release old dispatch object and remove it as listener
+                try
+                {
+                    xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+                }
+                catch ( Exception& )
+                {
+                }
+            }
+            pIter->second.clear();
+=====================================================================
+Found a 11 line (121 tokens) duplication in the following files: 
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/sgfbram.cxx
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/sgfbram.cxx
+
+	rInfo.Size    =SWAPLONG (rInfo.Size    );
+	rInfo.Width   =SWAPLONG (rInfo.Width   );
+	rInfo.Hight   =SWAPLONG (rInfo.Hight   );
+	rInfo.Planes  =SWAPSHORT(rInfo.Planes  );
+	rInfo.PixBits =SWAPSHORT(rInfo.PixBits );
+	rInfo.Compress=SWAPLONG (rInfo.Compress);
+	rInfo.ImgSize =SWAPLONG (rInfo.ImgSize );
+	rInfo.xDpmm   =SWAPLONG (rInfo.xDpmm   );
+	rInfo.yDpmm   =SWAPLONG (rInfo.yDpmm   );
+	rInfo.ColUsed =SWAPLONG (rInfo.ColUsed );
+	rInfo.ColMust =SWAPLONG (rInfo.ColMust );
+=====================================================================
+Found a 27 line (121 tokens) duplication in the following files: 
+Starting at line 1714 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 1971 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+			long nBottom = GetBoundingRect(pEntry).Bottom();
+			if( nBottom > nHeight )
+				return FALSE;
+			if( nBottom > nDeepest )
+				nDeepest = nBottom;
+		}
+		aVerSBar.Hide();
+		aOutputSize.Width() += nVerSBarWidth;
+		aVirtOutputSize.Height() = nDeepest;
+		aVerSBar.SetThumbPos( 0 );
+		Range aRange;
+		aRange.Max() = nDeepest - 1;
+		aVerSBar.SetRange( aRange  );
+		if( aHorSBar.IsVisible() )
+		{
+			Size aSize( aHorSBar.GetSizePixel());
+			aSize.Width() += nVerSBarWidth;
+			aHorSBar.SetSizePixel( aSize );
+		}
+		return TRUE;
+	}
+	return FALSE;
+}
+
+
+// blendet Scrollbars aus, wenn sie nicht mehr benoetigt werden
+void SvImpIconView::CheckScrollBars()
+=====================================================================
+Found a 25 line (121 tokens) duplication in the following files: 
+Starting at line 1676 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 1933 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+			long nRight = GetBoundingRect(pEntry).Right();
+			if( nRight > nWidth )
+				return FALSE;
+			if( nRight > nMostRight )
+				nMostRight = nRight;
+		}
+		aHorSBar.Hide();
+		aOutputSize.Height() += nHorSBarHeight;
+		aVirtOutputSize.Width() = nMostRight;
+		aHorSBar.SetThumbPos( 0 );
+		Range aRange;
+		aRange.Max() = nMostRight - 1;
+		aHorSBar.SetRange( aRange  );
+		if( aVerSBar.IsVisible() )
+		{
+			Size aSize( aVerSBar.GetSizePixel());
+			aSize.Height() += nHorSBarHeight;
+			aVerSBar.SetSizePixel( aSize );
+		}
+		return TRUE;
+	}
+	return FALSE;
+}
+
+BOOL SvImpIconView::CheckVerScrollBar()
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/testiadapter.cxx
+Starting at line 610 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+							   TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+	bBool = _aData.Bool;
+	cChar = _aData.Char;
+	nByte = _aData.Byte;
+	nShort = _aData.Short;
+	nUShort = _aData.UShort;
+	nLong = _aData.Long;
+	nULong = _aData.ULong;
+	nHyper = _aData.Hyper;
+	nUHyper = _aData.UHyper;
+	fFloat = _aData.Float;
+	fDouble = _aData.Double;
+	eEnum = _aData.Enum;
+	rStr = _aData.String;
+	xTest = _aData.Interface;
+	rAny = _aData.Any;
+	rSequence = _aData.Sequence;
+	rStruct = _aStructData;
+	return _aStructData;
+}
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/pastedlg.cxx
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/pastedlg.cxx
+
+	SvPasteDlg*	pDlg = new SvPasteDlg( pParent );
+	String aSourceName, aTypeName;
+	ULONG nSelFormat = 0;
+	SvGlobalName aEmptyNm;
+
+	pDlg->ObjectLB().SetUpdateMode( FALSE );
+
+	DataFlavorExVector::iterator aIter( ((DataFlavorExVector&)rFormats).begin() ),
+								 aEnd( ((DataFlavorExVector&)rFormats).end() );
+	while( aIter != aEnd )
+	{
+		::com::sun::star::datatransfer::DataFlavor aFlavor( *aIter );
+		SotFormatStringId nFormat = (*aIter++).mnSotId;
+
+		String*	pName = (String*) aSupplementTable.Get( nFormat );
+		String aName;
+
+		// if there is an "Embed Source" or and "Embedded Object" on the
+		// Clipboard we read the Description and the Source of this object
+		// from an accompanied "Object Descriptor" format on the clipboard
+		// Remember: these formats mostly appear together on the clipboard
+		if ( !pName )
+=====================================================================
+Found a 7 line (121 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objuno.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/forms/gridcolumnproptranslator.cxx
+
+            virtual ~OMergedPropertySetInfo();
+
+            // XPropertySetInfo
+            virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL getProperties(  ) throw (::com::sun::star::uno::RuntimeException);
+            virtual ::com::sun::star::beans::Property SAL_CALL getPropertyByName( const ::rtl::OUString& aName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+            virtual ::sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& Name ) throw (::com::sun::star::uno::RuntimeException);
+        };
+=====================================================================
+Found a 24 line (121 tokens) duplication in the following files: 
+Starting at line 1627 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docfile.cxx
+Starting at line 1979 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docfile.cxx
+
+                }
+                catch ( ::com::sun::star::ucb::CommandAbortedException& )
+                {
+                    eError = ERRCODE_ABORT;
+                }
+                catch ( ::com::sun::star::ucb::CommandFailedException& )
+                {
+                    eError = ERRCODE_ABORT;
+                }
+                catch ( ::com::sun::star::ucb::InteractiveIOException& r )
+                {
+                    if ( r.Code == IOErrorCode_ACCESS_DENIED )
+                        eError = ERRCODE_IO_ACCESSDENIED;
+                    else if ( r.Code == IOErrorCode_NOT_EXISTING )
+                        eError = ERRCODE_IO_NOTEXISTS;
+                    else if ( r.Code == IOErrorCode_CANT_READ )
+                        eError = ERRCODE_IO_CANTREAD;
+                    else
+                        eError = ERRCODE_IO_GENERAL;
+                }
+                catch ( ::com::sun::star::uno::Exception& )
+                {
+                    eError = ERRCODE_IO_GENERAL;
+                }
+=====================================================================
+Found a 33 line (121 tokens) duplication in the following files: 
+Starting at line 1148 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/dispatch.cxx
+Starting at line 1195 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/dispatch.cxx
+
+		nMode = pImp->nStandardMode;
+
+/*
+    // at the moment not implemented
+    // via Bindings/Interceptor? (dann ist der Returnwert nicht exakt)
+	sal_Bool bViaBindings = SFX_USE_BINDINGS == ( nMode & SFX_USE_BINDINGS );
+	nMode &= ~sal_uInt16(SFX_USE_BINDINGS);
+    if ( bViaBindings && GetBindings() )
+        return GetBindings()->Execute( nSlot, rArgs, nMode )
+				? EXECUTE_POSSIBLE
+				: EXECUTE_NO;
+*/
+	// sonst via Dispatcher
+	if ( IsLocked(nSlot) )
+		return 0;
+	SfxShell *pShell = 0;
+	SfxCallMode eCall = SFX_CALLMODE_SYNCHRON;
+	sal_uInt16 nRet = EXECUTE_NO;
+	const SfxSlot *pSlot = 0;
+	if ( GetShellAndSlot_Impl( nSlot, &pShell, &pSlot, sal_False, sal_False ) )
+	{
+		// Ausf"uhrbarkeit vorher testen
+		if ( pSlot->IsMode( SFX_SLOT_FASTCALL ) ||
+			pShell->CanExecuteSlot_Impl( *pSlot ) )
+				nRet = EXECUTE_POSSIBLE;
+
+		if ( nMode == EXECUTEMODE_ASYNCHRON )
+			eCall = SFX_CALLMODE_ASYNCHRON;
+		else if ( nMode == EXECUTEMODE_DIALOGASYNCHRON && pSlot->IsMode( SFX_SLOT_HASDIALOG ) )
+			eCall = SFX_CALLMODE_ASYNCHRON;
+		else if ( pSlot->GetMode() & SFX_SLOT_ASYNCHRON )
+			eCall = SFX_CALLMODE_ASYNCHRON;
+		sal_Bool bDone = sal_False;
+=====================================================================
+Found a 28 line (121 tokens) duplication in the following files: 
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/bastyp/minarray.cxx
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/bastyp/minarray.cxx
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/bastyp/minarray.cxx
+
+USHORT WordArr::Remove( USHORT nPos, USHORT nLen )
+{
+	DBG_MEMTEST();
+	// nLen adjustieren, damit nicht ueber das Ende hinaus geloescht wird
+	nLen = Min( (USHORT)(nUsed-nPos), nLen );
+
+	// einfache Aufgaben erfordern einfache Loesungen!
+	if ( nLen == 0 )
+		return 0;
+
+	// bleibt vielleicht keiner uebrig
+	if ( (nUsed-nLen) == 0 )
+	{
+		delete [] pData;
+		pData = 0;
+		nUsed = 0;
+		nUnused = 0;
+		return nLen;
+	}
+
+	// feststellen, ob das Array dadurch physikalisch schrumpft...
+	if ( (nUnused+nLen) >= nGrow )
+	{
+		// auf die naechste Grow-Grenze aufgerundet verkleinern
+		USHORT nNewUsed = nUsed-nLen;
+		USHORT nNewSize = ((nNewUsed+nGrow-1)/nGrow) * nGrow;
+		DBG_ASSERT( nNewUsed <= nNewSize && nNewUsed+nGrow > nNewSize,
+					"shrink size computation failed" );
+=====================================================================
+Found a 33 line (121 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+                               "ReadThroughComponent : parsing \"%s\"", aString.GetBuffer() );
+#endif
+
+	// finally, parser the stream
+	try
+	{
+		xParser->parseStream( aParserInput );
+	}
+	catch( xml::sax::SAXParseException& r )
+	{
+		if( bEncrypted )
+			return ERRCODE_SFX_WRONGPASSWORD;
+
+#if OSL_DEBUG_LEVEL > 1
+		ByteString aError( "SAX parse exception catched while importing:\n" );
+		aError += ByteString( String( r.Message), RTL_TEXTENCODING_ASCII_US );
+		DBG_ERROR( aError.GetBuffer() );
+#endif
+
+		String sErr( String::CreateFromInt32( r.LineNumber ));
+		sErr += ',';
+		sErr += String::CreateFromInt32( r.ColumnNumber );
+
+		if( rStreamName.Len() )
+		{
+			return *new TwoStringErrorInfo(
+							(bMustBeSuccessfull ? ERR_FORMAT_FILE_ROWCOL
+										   	 	: WARN_FORMAT_FILE_ROWCOL),
+					    	rStreamName, sErr,
+							ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR );
+		}
+		else
+		{
+=====================================================================
+Found a 14 line (121 tokens) duplication in the following files: 
+Starting at line 706 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 1019 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+
+		Size aParentSize = GetParent()->GetOutputSizePixel();
+		Size aSize( nSizeX, nHeight );
+
+		if ( aSize.Height() > aParentSize.Height() )
+			aSize.Height() = aParentSize.Height();
+		if ( aPos.Y() + aSize.Height() > aParentSize.Height() )
+			aPos.Y() = aParentSize.Height() - aSize.Height();
+
+		pFilterBox->SetSizePixel( aSize );
+		pFilterBox->Show();					// Show muss vor SetUpdateMode kommen !!!
+		pFilterBox->SetUpdateMode(FALSE);
+
+		pFilterFloat->SetOutputSizePixel( aSize );
+		pFilterFloat->StartPopupMode( aCellRect, FLOATWIN_POPUPMODE_DOWN|FLOATWIN_POPUPMODE_GRABFOCUS);
+=====================================================================
+Found a 31 line (121 tokens) duplication in the following files: 
+Starting at line 720 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fudraw.cxx
+Starting at line 672 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+
+						mpView->MarkPoint(*pHdl);
+					}
+		
+					if(0L == rHdlList.GetFocusHdl())
+					{
+						// restore point with focus
+						SdrHdl* pNewOne = 0L;
+
+						for(sal_uInt32 a(0); !pNewOne && a < rHdlList.GetHdlCount(); a++)
+						{
+							SdrHdl* pAct = rHdlList.GetHdl(a);
+							
+							if(pAct 
+								&& pAct->GetKind() == HDL_POLY 
+								&& pAct->GetPolyNum() == nPol
+								&& pAct->GetPointNum() == nPnt)
+							{
+								pNewOne = pAct;
+							}
+						}
+
+						if(pNewOne)
+						{
+							((SdrHdlList&)rHdlList).SetFocusHdl(pNewOne);
+						}
+					}
+
+					bReturn = TRUE;
+				}
+			}
+		}
+=====================================================================
+Found a 61 line (121 tokens) duplication in the following files: 
+Starting at line 709 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+Starting at line 1240 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+
+		FT_Op,				//   30 Concatenation
+		FT_FuncFix0,		//   31 Not applicable
+		FT_FuncFix0,		//   32 Error
+		FT_FuncFix1,		//   33 Betrag ABS()
+		FT_FuncFix1,		//   34 Ganzzahl INT()
+		FT_FuncFix1,		//   35 Quadratwurzel
+		FT_FuncFix1,		//   36 Zehnerlogarithmus
+		FT_FuncFix1,		//   37 Natuerlicher Logarithmus
+		FT_FuncFix0,		//   38 PI
+		FT_FuncFix1,		//   39 Sinus
+		FT_FuncFix1,		//   40 Cosinus
+		FT_FuncFix1,		//   41 Tangens
+		FT_FuncFix2,		//   42 Arcus-Tangens 2 (4.Quadrant)
+		FT_FuncFix1,		//   43 Arcus-Tangens (2.Quadrant)
+		FT_FuncFix1,		//   44 Arcus-Sinus
+		FT_FuncFix1,		//   45 Arcus-Cosinus
+		FT_FuncFix1,		//   46 Exponentialfunktion
+		FT_FuncFix2,		//   47 Modulo
+		FT_FuncVar,			//   48 Auswahl
+		FT_FuncFix1,		//   49 Is not applicable?
+		FT_FuncFix1,		//   50 Is Error?
+		FT_FuncFix0,		//   51 FALSE
+		FT_FuncFix0,		//   52 TRUE
+		FT_FuncFix0,		//   53 Zufallszahl
+		FT_FuncFix3,		//   54 Datum
+		FT_FuncFix0,		//   55 Heute
+		FT_FuncFix3,		//   56 Payment
+		FT_FuncFix3,		//   57 Present Value
+		FT_FuncFix3,		//   58 Future Value
+		FT_FuncFix3,		//   59 If ... then ... else ...
+		FT_FuncFix1,		//   60 Tag des Monats
+		FT_FuncFix1,		//   61 Monat
+		FT_FuncFix1,		//   62 Jahr
+		FT_FuncFix2,		//   63 Runden
+		FT_FuncFix3,		//   64 Zeit
+		FT_FuncFix1,		//   65 Stunde
+		FT_FuncFix1,		//   66 Minute
+		FT_FuncFix1,		//   67 Sekunde
+		FT_FuncFix1,		//   68 Ist Zahl?
+		FT_FuncFix1,		//   69 Ist Text?
+		FT_FuncFix1,		//   70 Len()
+		FT_FuncFix1,		//   71 Val()
+		FT_FuncFix2,		//   72 String()
+		FT_FuncFix3,		//   73 Mid()
+		FT_FuncFix1,		//   74 Char()
+		FT_FuncFix1,		//   75 Ascii()
+		FT_FuncFix3,		//   76 Find()
+		FT_FuncFix1,		//   77 Datevalue
+		FT_FuncFix1,		//   78 Timevalue
+		FT_FuncFix1,		//   79 Cellpointer
+		FT_FuncVar,			//   80 Sum()
+		FT_FuncVar,			//   81 Avg()
+		FT_FuncVar,			//   82 Cnt()
+		FT_FuncVar,			//   83 Min()
+		FT_FuncVar,			//   84 Max()
+		FT_FuncFix3,		//   85 Vlookup()
+		FT_FuncFix2,		//   86 Npv()
+		FT_FuncVar,			//   87 Var()
+		FT_FuncVar,			//   88 Std()
+		FT_FuncFix2,		//   89 Irr()
+		FT_FuncFix3,		//   90 Hlookup()
+=====================================================================
+Found a 12 line (121 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/xechart.cxx
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/xichart.cxx
+
+using ::com::sun::star::chart2::XRegressionCurveContainer;
+using ::com::sun::star::chart2::XAxis;
+using ::com::sun::star::chart2::XScaling;
+using ::com::sun::star::chart2::ScaleData;
+using ::com::sun::star::chart2::IncrementData;
+using ::com::sun::star::chart2::SubIncrement;
+using ::com::sun::star::chart2::XLegend;
+using ::com::sun::star::chart2::XTitled;
+using ::com::sun::star::chart2::XTitle;
+using ::com::sun::star::chart2::XFormattedString;
+
+using ::com::sun::star::chart2::data::XDataProvider;
+=====================================================================
+Found a 23 line (121 tokens) duplication in the following files: 
+Starting at line 1104 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/cell2.cxx
+Starting at line 1187 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/cell2.cxx
+
+    EndListeningTo( pDocument );
+
+    BOOL bRefChanged = FALSE;
+    ScToken* t;
+    ScRangeData* pShared = NULL;
+
+    pCode->Reset();
+    for( t = pCode->GetNextReferenceOrName(); t; t = pCode->GetNextReferenceOrName() )
+    {
+        if( t->GetOpCode() == ocName )
+        {
+            ScRangeData* pName = pDocument->GetRangeName()->FindIndex( t->GetIndex() );
+            if (pName)
+            {
+                if (pName->IsModified())
+                    bRefChanged = TRUE;
+                if (pName->HasType(RT_SHAREDMOD))
+                    pShared = pName;
+            }
+        }
+        else if( t->GetType() != svIndex )
+        {
+            t->CalcAbsIfRel( aPos );
+=====================================================================
+Found a 19 line (121 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/backtrace.c
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/diagnose.c
+
+static void osl_diagnose_backtrace_Impl (oslDebugMessageFunc f)
+{
+	jmp_buf        ctx;
+	long           fpval;
+	struct frame * fp;
+	int            i;
+
+#if defined(SPARC)
+	asm("ta 3");
+#endif /* SPARC */
+	setjmp (ctx);
+
+	fpval = ((long*)(ctx))[FRAME_PTR_OFFSET];
+	fp = (struct frame*)((char*)(fpval) + STACK_BIAS);
+
+	for (i = 0; (i < FRAME_OFFSET) && (fp != 0); i++)
+		fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
+
+	for (i = 0; (fp != 0) && (fp->fr_savpc != 0); i++)
+=====================================================================
+Found a 33 line (121 tokens) duplication in the following files: 
+Starting at line 785 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+Starting at line 988 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/keyimpl.cxx
+
+    if (valueType != RG_VALUETYPE_UNICODELIST)
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+
+    readUINT32(pBuffer+VALUE_TYPEOFFSET, valueSize);
+
+    rtl_freeMemory(pBuffer);
+
+    pBuffer = (sal_uInt8*)rtl_allocateMemory(valueSize);
+
+    if ( rValue.readAt(VALUE_HEADEROFFSET, pBuffer, valueSize, readBytes) )
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+    if (readBytes != valueSize)
+    {
+        pValueList = NULL;
+        *pLen = 0;
+        rtl_freeMemory(pBuffer);
+        return REG_INVALID_VALUE;
+    }
+
+    sal_uInt32 len = 0;
+    readUINT32(pBuffer, len);
+
+    *pLen = len;
+=====================================================================
+Found a 7 line (121 tokens) duplication in the following files: 
+Starting at line 1429 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+=====================================================================
+Found a 6 line (121 tokens) duplication in the following files: 
+Starting at line 1354 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1371 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,// 24e0 - 24ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24f0 - 24ff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2500 - 250f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2510 - 251f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2520 - 252f
+=====================================================================
+Found a 6 line (121 tokens) duplication in the following files: 
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,                            // /
+=====================================================================
+Found a 4 line (121 tokens) duplication in the following files: 
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b00 - 0b0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b10 - 0b1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b20 - 0b2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,17,// 0b30 - 0b3f
+=====================================================================
+Found a 5 line (121 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1109 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a70 - 0a7f
+     0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a80 - 0a8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a90 - 0a9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0aa0 - 0aaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0ab0 - 0abf
+=====================================================================
+Found a 7 line (121 tokens) duplication in the following files: 
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+     41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,  0,  0,  0,  0,  0, // 112-127
+//    p   q   r   s   t   u   v   w   x   y   z
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+=====================================================================
+Found a 4 line (121 tokens) duplication in the following files: 
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 4 line (121 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 8, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5,// 0c80 - 0c8f
+     5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0c90 - 0c9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5,// 0ca0 - 0caf
+     5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 0, 0, 0, 0, 8, 6,// 0cb0 - 0cbf
+=====================================================================
+Found a 25 line (121 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 722 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+	b[j] -= b[icol]*save;
+      }
+    }
+  }
+
+  for (j = n-1; j >= 0; j--)
+  {
+    if ( indxr[j] != indxc[j] )
+    {
+      for (k = 0; k < n; k++)
+      {
+	save = a[k][indxr[j]];
+	a[k][indxr[j]] = a[k][indxc[j]];
+	a[k][indxc[j]] = save;
+      }
+    }
+  }
+
+  delete[] ipiv;
+  delete[] indxr;
+  delete[] indxc;
+  return 1;
+}
+//---------------------------------------------------------------------------
+int mgcLinearSystemD::SolveTri (int n, double* a, double* b, double* c,
+=====================================================================
+Found a 4 line (121 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 668 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e40 - 2e4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e50 - 2e5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e60 - 2e6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2e70 - 2e7f
+=====================================================================
+Found a 5 line (121 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+Starting at line 1362 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2450 - 245f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 2460 - 246f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 2470 - 247f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,// 2480 - 248f
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+=====================================================================
+Found a 17 line (121 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesconfiguration.cxx
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/statusbarconfiguration.cxx
+
+SV_IMPL_PTRARR( StatusBarDescriptor, StatusBarItemDescriptorPtr);
+
+static Reference< XParser > GetSaxParser(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+sal_Bool StatusBarConfiguration::LoadStatusBar( 
+=====================================================================
+Found a 6 line (121 tokens) duplication in the following files: 
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/uicommanddescription.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+
+    // XNameReplace
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 30 line (121 tokens) duplication in the following files: 
+Starting at line 784 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+Starting at line 978 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+
+                            nMask |= WINDOWSTATE_MASK_DOCKINGAREA;
+                        }
+                    }
+                }
+                break;
+
+                case PROPERTY_POS:
+                case PROPERTY_DOCKPOS:
+                {
+                    OUString aString;
+                    if ( a >>= aString )
+                    {
+                        sal_Int32 nToken( 0 );
+                        OUString aXStr = aString.getToken( 0, ',', nToken );
+                        if ( nToken > 0 )
+                        {
+                            com::sun::star::awt::Point aPos;
+                            aPos.X = aXStr.toInt32();
+                            aPos.Y = aString.getToken( 0, ',', nToken ).toInt32();
+                            
+                            if ( i == PROPERTY_POS )
+                            {
+                                aWindowStateInfo.aPos = aPos;
+                                nMask |= WINDOWSTATE_MASK_POS;
+                            }
+                            else
+                            {
+                                aWindowStateInfo.aDockPos = aPos;
+                                nMask |= WINDOWSTATE_MASK_DOCKPOS;
+                            }
+=====================================================================
+Found a 6 line (121 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+
+    // XNameReplace
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 26 line (121 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesconfiguration.cxx
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/statusbarconfiguration.cxx
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxconfiguration.cxx
+
+SV_IMPL_PTRARR( ToolBoxLayoutDescriptor, ToolBoxLayoutItemDescriptorPtr);
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	// #110897#
+	// Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	return Reference< XParser >( xServiceFactory->createInstance(
+		::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	// #110897#
+	// Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance(
+		::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ToolBoxConfiguration::LoadToolBox( 
+=====================================================================
+Found a 11 line (121 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Currency.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormattedField.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+=====================================================================
+Found a 4 line (121 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c40 - 2c4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c50 - 2c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c60 - 2c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c70 - 2c7f
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+			if( i == 1 || m_bLink && i != 5 )
+				continue;
+			
+			cppu::OInterfaceContainerHelper* pICH = 
+				m_pStatCL->getContainer(m_aInterceptedURL[i]);
+			uno::Sequence<uno::Reference<uno::XInterface> > aSeq;
+			if(pICH)
+				aSeq = pICH->getElements();
+			if(!aSeq.getLength())
+				continue;
+			
+			frame::FeatureStateEvent aStateEvent;
+			aStateEvent.IsEnabled = sal_True;
+			aStateEvent.Requery = sal_False;			
+			if(i == 0)
+			{
+				
+				aStateEvent.FeatureURL.Complete = m_aInterceptedURL[0];
+				aStateEvent.FeatureDescriptor = rtl::OUString(
+					RTL_CONSTASCII_USTRINGPARAM("Update"));
+				aStateEvent.State <<= (rtl::OUString(
+					RTL_CONSTASCII_USTRINGPARAM("($1) ")) + 
+=====================================================================
+Found a 17 line (121 tokens) duplication in the following files: 
+Starting at line 410 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+void SAL_CALL ODummyEmbeddedObject::storeAsEntry( const uno::Reference< embed::XStorage >& xStorage,
+							const ::rtl::OUString& sEntName,
+							const uno::Sequence< beans::PropertyValue >& /* lArguments */,
+							const uno::Sequence< beans::PropertyValue >& /* lObjArgs */ )
+		throw ( lang::IllegalArgumentException,
+				embed::WrongStateException,
+				io::IOException,
+				uno::Exception,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	CheckInit();
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 14 line (121 tokens) duplication in the following files: 
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/querycontroller.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/tabledesign/TableController.cxx
+
+}
+
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::ui;
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_di.cxx
+Starting at line 610 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+							   TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+{
+	bBool = _aData.Bool;
+	cChar = _aData.Char;
+	nByte = _aData.Byte;
+	nShort = _aData.Short;
+	nUShort = _aData.UShort;
+	nLong = _aData.Long;
+	nULong = _aData.ULong;
+	nHyper = _aData.Hyper;
+	nUHyper = _aData.UHyper;
+	fFloat = _aData.Float;
+	fDouble = _aData.Double;
+	eEnum = _aData.Enum;
+	rStr = _aData.String;
+	xTest = _aData.Interface;
+	rAny = _aData.Any;
+	rSequence = _aData.Sequence;
+	rStruct = _aStructData;
+	return _aStructData;
+}
+=====================================================================
+Found a 31 line (121 tokens) duplication in the following files: 
+Starting at line 2220 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+Starting at line 2400 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/implrenderer.cxx
+
+                                                        pAct->GetColor() ));
+
+                        // crop bitmap to given source rectangle (no
+                        // need to copy and convert the whole bitmap)
+                        const Rectangle aCropRect( pAct->GetSrcPoint(),
+                                                   pAct->GetSrcSize() );
+                        aBmp.Crop( aCropRect );
+
+                        ActionSharedPtr pBmpAction(
+                            internal::BitmapActionFactory::createBitmapAction(
+                                aBmp,
+                                getState( rStates ).mapModeTransform * 
+                                ::vcl::unotools::b2DPointFromPoint( pAct->GetDestPoint() ),
+                                getState( rStates ).mapModeTransform * 
+                                ::vcl::unotools::b2DSizeFromSize( pAct->GetDestSize() ),
+                                rCanvas,
+                                getState( rStates ) ) );
+
+                        if( pBmpAction )
+                        {
+                            maActions.push_back(
+                                MtfAction(
+                                    pBmpAction,
+                                    io_rCurrActionIndex ) );
+                            
+                            io_rCurrActionIndex += pBmpAction->getActionCount()-1;
+                        }
+                    }
+                    break;
+
+                    case META_GRADIENTEX_ACTION:
+=====================================================================
+Found a 25 line (121 tokens) duplication in the following files: 
+Starting at line 784 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CTable.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+
+				--m_nFilePos;
+			break;
+		case IResultSetHelper::FIRST:
+			m_nFilePos = 1;
+			break;
+		case IResultSetHelper::LAST:
+			m_nFilePos = nNumberOfRecords;
+			break;
+		case IResultSetHelper::RELATIVE:
+			m_nFilePos = (((sal_Int32)m_nFilePos) + nOffset < 0) ? 0L
+							: (sal_uInt32)(((sal_Int32)m_nFilePos) + nOffset);
+			break;
+		case IResultSetHelper::ABSOLUTE:
+		case IResultSetHelper::BOOKMARK:
+			m_nFilePos = (sal_uInt32)nOffset;
+			break;
+	}
+
+	if (m_nFilePos > (sal_Int32)nNumberOfRecords)
+		m_nFilePos = (sal_Int32)nNumberOfRecords + 1;
+
+	if (m_nFilePos == 0 || m_nFilePos == (sal_Int32)nNumberOfRecords + 1)
+		goto Error;
+	else
+	{
+=====================================================================
+Found a 11 line (121 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+
+        virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 
+            throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+        
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 
+            throw (::com::sun::star::uno::RuntimeException);
+        
+        virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // XNameContainer
+        virtual void SAL_CALL removeByName( const ::rtl::OUString& sName )
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunomaker.cxx
+
+			sal_Bool ret = sal_False;
+            sal_Int32 nIndex = 0;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+                tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope, but the scope is not recursively  generated.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+=====================================================================
+Found a 23 line (121 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/global.cxx
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdbmaker.cxx
+
+	OStringBuffer nameBuffer( path.getLength() );
+	
+	sal_Int32 nIndex = 0;
+    do
+	{
+		nameBuffer.append(fileName.getToken( 0, token, nIndex ).getStr());
+		if ( nIndex == -1 ) break;
+
+		if (nameBuffer.getLength() == 0 || OString(".") == nameBuffer.getStr())
+		{
+			nameBuffer.append(token);
+			continue;
+		}
+
+#ifdef SAL_UNX
+	    if (mkdir((char*)nameBuffer.getStr(), 0777) == -1)
+#else
+	   	if (mkdir((char*)nameBuffer.getStr()) == -1)
+#endif
+		{
+			if ( errno == ENOENT )
+				return OString();
+		} else
+=====================================================================
+Found a 22 line (121 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbamaker.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+
+			OString typeName, tmpName;
+            sal_Int32 nIndex = 0;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+                tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+=====================================================================
+Found a 19 line (121 tokens) duplication in the following files: 
+Starting at line 390 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_data.cxx
+Starting at line 415 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_data.cxx
+Starting at line 716 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_data.cxx
+Starting at line 1013 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/jni_uno/jni_data.cxx
+
+	case typelib_TypeClass_SEQUENCE:
+    {
+        JLocalAutoRef jo_out_holder( jni );
+        if (out_param)
+        {
+            jo_out_holder.reset(
+                jni->GetObjectArrayElement( (jobjectArray) java_data.l, 0 ) );
+            jni.ensure_no_exception();
+            java_data.l = jo_out_holder.get();
+        }
+        if (0 == java_data.l)
+        {
+            OUStringBuffer buf( 128 );
+            buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("[map_to_uno():") );
+            buf.append( OUString::unacquired( &type->pTypeName ) );
+            buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("] null-ref given!") );
+            buf.append( jni.get_stack_trace() );
+            throw BridgeRuntimeError( buf.makeStringAndClear() );
+        }
+=====================================================================
+Found a 23 line (121 tokens) duplication in the following files: 
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+
+		pThis = gpreg[0];
+        }
+    
+        pThis = static_cast< char * >(pThis) - nVtableOffset;
+        bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+		  = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+			pThis);
+
+	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
+	
+	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("illegal vtable index!"),
+            (XInterface *)pThis );
+	}
+	
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+=====================================================================
+Found a 6 line (121 tokens) duplication in the following files: 
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/parser_i/idoc/cx_dsapi.cxx
+
+	const INT16 A_nAtTagDefStatus[C_nStatusSize] =
+	// 	0	1	2	3	4	5	6	7	8	9  10  11  12  13  14  15
+	{faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+	 err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+	 faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+	 awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,faw,awd,awd,awd, // ... 63
+=====================================================================
+Found a 25 line (120 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/ure/source/uretest/cppmain.cc
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/ure/source/uretest/cppserver.cc
+
+      CppServer::getSupportedServiceNames, ::cppu::createSingleComponentFactory,
+      0, 0 },
+    { 0, 0, 0, 0, 0, 0 } };
+
+}
+
+extern "C" ::sal_Bool SAL_CALL component_writeInfo(
+    void * serviceManager, void * registryKey)
+{
+    return ::cppu::component_writeInfoHelper(
+        serviceManager, registryKey, entries);
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+    char const * implName, void * serviceManager, void * registryKey)
+{
+    return ::cppu::component_getFactoryHelper(
+        implName, serviceManager, registryKey, entries);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, ::uno_Environment **)
+{
+    *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+=====================================================================
+Found a 26 line (120 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+                           OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":image-position") ) );
+    readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("MultiLine") ),
+                  OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":multiline") ) );
+
+    sal_Int16 nState = 0;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("State") ) ) >>= nState)
+    {
+        switch (nState)
+        {
+        case 0:
+            addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":checked") ),
+                          OUString( RTL_CONSTASCII_USTRINGPARAM("false") ) );
+            break;
+        case 1:
+            addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":checked") ),
+                          OUString( RTL_CONSTASCII_USTRINGPARAM("true") ) );
+            break;
+        default:
+            OSL_ENSURE( 0, "### unexpected radio state!" );
+            break;
+        }
+    }
+    readEvents();
+}
+//__________________________________________________________________________________________________
+void ElementDescriptor::readGroupBoxModel( StyleBag * all_styles )
+=====================================================================
+Found a 27 line (120 tokens) duplication in the following files: 
+Starting at line 900 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/app/salinst.cxx
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/app/salinst.cxx
+
+LRESULT CALLBACK SalComWndProcW( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam )
+{
+	int bDef = TRUE;
+	LRESULT nRet = 0;
+#ifdef __MINGW32__
+	jmp_buf jmpbuf;
+	__SEHandler han;
+	if (__builtin_setjmp(jmpbuf) == 0)
+	{
+		han.Set(jmpbuf, NULL, (__SEHandler::PF)EXCEPTION_EXECUTE_HANDLER);
+#else
+	__try
+	{
+#endif
+		nRet = SalComWndProc( hWnd, nMsg, wParam, lParam, bDef );
+	}
+#ifdef __MINGW32__
+	han.Reset();
+#else
+    __except(WinSalInstance::WorkaroundExceptionHandlingInUSER32Lib(GetExceptionCode(), GetExceptionInformation()))
+	{
+	}
+#endif
+	if ( bDef )
+	{
+		if ( !ImplHandleGlobalMsg( hWnd, nMsg, wParam, lParam, nRet ) )
+			nRet = DefWindowProcW( hWnd, nMsg, wParam, lParam );
+=====================================================================
+Found a 37 line (120 tokens) duplication in the following files: 
+Starting at line 361 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_datasupplier.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+	rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+	if ( xResultSet.is() )
+	{
+		// Callbacks follow!
+		aGuard.clear();
+
+		if ( nOldCount < m_pImpl->m_aResults.size() )
+			xResultSet->rowCountChanged(
+									nOldCount, m_pImpl->m_aResults.size() );
+
+		if ( m_pImpl->m_bCountFinal )
+			xResultSet->rowCountFinal();
+	}
+
+	return bFound;
+}
+
+//=========================================================================
+// virtual
+sal_uInt32 DataSupplier::totalCount()
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( m_pImpl->m_bCountFinal )
+		return m_pImpl->m_aResults.size();
+
+	sal_uInt32 nOldCount = m_pImpl->m_aResults.size();
+
+	// @@@ Obtain data and put it into result list...
+/*
+	while ( m_pImpl->m_aFolder.next( m_pImpl->m_aIterator ) )
+		m_pImpl->m_aResults.push_back(
+						new ResultListEntry( *m_pImpl->m_aIterator ) );
+*/
+	m_pImpl->m_bCountFinal = sal_True;
+
+	rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+=====================================================================
+Found a 25 line (120 tokens) duplication in the following files: 
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                ContentProvider* pProvider,
+                const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+        = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+			{
+                xRow->appendString ( rProp, rData.getContentType() );
+=====================================================================
+Found a 38 line (120 tokens) duplication in the following files: 
+Starting at line 1981 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 2176 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+        }
+    }
+
+    //////////////////////////////////////////////////////////////////////
+    // 5) Destroy source ( when moving only ) .
+    //////////////////////////////////////////////////////////////////////
+
+    if ( rInfo.MoveData )
+    {
+        xSource->destroy( sal_True, xEnv );
+
+        // Remove all persistent data of source and its children.
+        if ( !xSource->removeData() )
+        {
+            uno::Any aProps
+                = uno::makeAny(
+                         beans::PropertyValue(
+                             rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                               "Uri")),
+                             -1,
+                             uno::makeAny(
+                                 xSource->m_xIdentifier->
+                                              getContentIdentifier()),
+                             beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_CANT_WRITE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                xEnv,
+                rtl::OUString::createFromAscii(
+                    "Cannot remove persistent data of source object!" ),
+                this );
+            // Unreachable
+        }
+
+        // Remove own and all children's Additional Core Properties.
+        xSource->removeAdditionalPropertySet( sal_True );
+    }
+}
+=====================================================================
+Found a 25 line (120 tokens) duplication in the following files: 
+Starting at line 1066 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+
+            const rtl::Reference< ::ucbhelper::ContentProviderImplHelper >& rProvider,
+            const rtl::OUString& rContentId )
+{
+	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+                                = new ::ucbhelper::PropertyValueSet( rSMgr );
+
+	sal_Int32 nCount = rProperties.getLength();
+	if ( nCount )
+	{
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+		sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+		for ( sal_Int32 n = 0; n < nCount; ++n )
+		{
+            const beans::Property& rProp = pProps[ n ];
+
+			// Process Core properties.
+
+            if ( rProp.Name.equalsAsciiL(
+					RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+            {
+				xRow->appendString ( rProp, rData->m_sContentType );
+=====================================================================
+Found a 36 line (120 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/sstring.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/sstring.cxx
+
+	UniString* pString;
+
+	do
+	{
+		if ( (nCurrent == nLower) || (nCurrent == nUpper) )
+			return nLower;
+		pString = GetObject( nCurrent );
+		StringCompare nResult =  pStr->CompareTo( *pString );
+		if ( nResult == COMPARE_LESS )
+		{
+			nUpper = nCurrent;
+			nCurrent = (nCurrent + nLower) /2;
+		}
+		else if ( nResult == COMPARE_GREATER )
+		{
+			nLower = nCurrent;
+			nCurrent = (nUpper + nCurrent) /2;
+		}
+		else if ( nResult == COMPARE_EQUAL )
+			return nCurrent;
+		if ( nRem == nCurrent )
+			return nCurrent;
+		nRem = nCurrent;
+	}
+	while ( !bFound );
+	return nRet;
+}
+
+/**************************************************************************
+*
+*	Sortiert einen UniString in die Liste ein und gibt die Position,
+*	an der einsortiert wurde, zurueck
+*
+**************************************************************************/
+
+ULONG SUniStringList::PutString( UniString* pStr )
+=====================================================================
+Found a 11 line (120 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cppobj.cxx
+
+void Test_Impl::setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
+						   sal_Int16 nShort, sal_uInt16 nUShort,
+						   sal_Int32 nLong, sal_uInt32 nULong,
+						   sal_Int64 nHyper, sal_uInt64 nUHyper,
+						   float fFloat, double fDouble,
+						   TestEnum eEnum, const ::rtl::OUString& rStr,
+						   const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
+						   const ::com::sun::star::uno::Any& rAny,
+						   const ::com::sun::star::uno::Sequence<TestElement >& rSequence,
+						   const TestData& rStruct )
+	throw(com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 12 line (120 tokens) duplication in the following files: 
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/modcfg.cxx
+Starting at line 779 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/modcfg.cxx
+
+		InsCaptionOpt* pOLEDrawOpt = 0;
+		if(pCapOptions)
+		{
+			pWriterTableOpt = pCapOptions->Find(TABLE_CAP, 0);
+			pWriterFrameOpt = pCapOptions->Find(FRAME_CAP, 0);
+			pWriterGraphicOpt = pCapOptions->Find(GRAPHIC_CAP, 0);
+			pOLECalcOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CALC]);
+			pOLEImpressOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_IMPRESS]);
+			pOLEDrawOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_DRAW   ]);
+			pOLEFormulaOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_MATH   ]);
+			pOLEChartOpt = pCapOptions->Find(OLE_CAP, &aGlobalNames[GLOB_NAME_CHART  ]);
+		}
+=====================================================================
+Found a 24 line (120 tokens) duplication in the following files: 
+Starting at line 1329 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/wrtrtf.cxx
+Starting at line 1358 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/wrtrtf.cxx
+
+		pEndPos->nContent.GetIndex() == nCntntPos)
+	{
+		// zur Zeit umspannt das SwBookmark keinen Bereich also kann
+		// es hier vollstaendig ausgegeben werden.
+
+		// erst die SWG spezifischen Daten:
+		if (
+             pBookmark->GetShortName().Len() ||
+			 pBookmark->GetKeyCode().GetCode()
+           )
+		{
+			OutComment( *this, sRTF_BKMKKEY );
+			OutULong( ( pBookmark->GetKeyCode().GetCode() |
+					 pBookmark->GetKeyCode().GetModifier() ));
+			if( !pBookmark->GetShortName().Len() )
+				Strm() << "  " ;
+			else
+			{
+				Strm() << ' ';
+				OutRTF_AsByteString( *this, pBookmark->GetShortName(), eDefaultEncoding );
+			}
+			Strm() << '}';
+		}
+		OutComment( *this, sRTF_BKMKEND ) << ' ';
+=====================================================================
+Found a 20 line (120 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl1.cxx
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl1.cxx
+
+void SwDoc::SetRowBackground( const SwCursor& rCursor, const SvxBrushItem &rNew )
+{
+	SwTableNode* pTblNd = rCursor.GetPoint()->nNode.GetNode().FindTableNode();
+	if( pTblNd )
+	{
+		SvPtrarr aRowArr( 25, 50 );	//Zum sammeln Lines.
+		::lcl_CollectLines( aRowArr, rCursor, true );
+
+		if( aRowArr.Count() )
+		{
+			if( DoesUndo() )
+			{
+				ClearRedo();
+				AppendUndo( new SwUndoAttrTbl( *pTblNd ));
+			}
+
+			SvPtrarr aFmtCmp( Max( BYTE(255), BYTE(aRowArr.Count()) ), 255 );
+
+			for( USHORT i = 0; i < aRowArr.Count(); ++i )
+                ::lcl_ProcessRowAttr( aFmtCmp, (SwTableLine*)aRowArr[i], rNew );
+=====================================================================
+Found a 13 line (120 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/layctrl.cxx
+Starting at line 764 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/layctrl.cxx
+
+	DrawText( Point( ( aSize.Width() - aTextSize.Width() ) / 2, aSize.Height() - nTextHeight + 2 ), aText );
+
+	DrawRect( Rectangle( 0, aSize.Height()-nTextHeight+2, (aSize.Width()-aTextSize.Width())/2-1, aSize.Height() ) );
+	DrawRect( Rectangle( (aSize.Width()-aTextSize.Width())/2+aTextSize.Width(), aSize.Height()-nTextHeight+2, aSize.Width(), aSize.Height() ) );
+
+	SetLineColor( aLineColor );
+	SetFillColor();
+	DrawRect( Rectangle( Point(0,0), aSize ) );
+}
+
+// -----------------------------------------------------------------------
+
+void ColumnsWindow::PopupModeEnd()
+=====================================================================
+Found a 16 line (120 tokens) duplication in the following files: 
+Starting at line 516 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+
+	if (xFact.GetNumerator()!=xFact.GetDenominator() || yFact.GetNumerator()!=yFact.GetDenominator()) {
+		FASTBOOL bXMirr=(xFact.GetNumerator()<0) != (xFact.GetDenominator()<0);
+		FASTBOOL bYMirr=(yFact.GetNumerator()<0) != (yFact.GetDenominator()<0);
+		if (bXMirr || bYMirr) {
+			Point aRef1(GetSnapRect().Center());
+			if (bXMirr) {
+				Point aRef2(aRef1);
+				aRef2.Y()++;
+				NbcMirrorGluePoints(aRef1,aRef2);
+			}
+			if (bYMirr) {
+				Point aRef2(aRef1);
+				aRef2.X()++;
+				NbcMirrorGluePoints(aRef1,aRef2);
+			}
+		}
+=====================================================================
+Found a 27 line (120 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdocirc.cxx
+Starting at line 462 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoedge.cxx
+
+	bool bIsLineDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTLINE));
+
+	// prepare ItemSet of this object
+	const SfxItemSet& rSet = GetObjectItemSet();
+
+	// perepare ItemSet to avoid old XOut line drawing
+	SfxItemSet aEmptySet(*rSet.GetPool());
+	aEmptySet.Put(XLineStyleItem(XLINE_NONE));
+	aEmptySet.Put(XFillStyleItem(XFILL_NONE));
+
+	// #b4899532# if not filled but fill draft, avoid object being invisible in using
+	// a hair linestyle and COL_LIGHTGRAY
+    SfxItemSet aItemSet(rSet);
+	if(bIsFillDraft && XLINE_NONE == ((const XLineStyleItem&)(rSet.Get(XATTR_LINESTYLE))).GetValue())
+	{
+		ImpPrepareLocalItemSetForDraftLine(aItemSet);
+	}
+
+	// #103692# prepare ItemSet for shadow fill attributes
+    SfxItemSet aShadowSet(aItemSet);
+
+	// prepare line geometry
+	::std::auto_ptr< SdrLineGeometry > pLineGeometry( ImpPrepareLineGeometry(rXOut, aItemSet, bIsLineDraft) );
+
+	// Shadows
+	if(!bHideContour && ImpSetShadowAttributes(aItemSet, aShadowSet))
+	{
+=====================================================================
+Found a 16 line (120 tokens) duplication in the following files: 
+Starting at line 1989 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+
+	if (xFact.GetNumerator()!=xFact.GetDenominator() || yFact.GetNumerator()!=yFact.GetDenominator()) {
+		FASTBOOL bXMirr=(xFact.GetNumerator()<0) != (xFact.GetDenominator()<0);
+		FASTBOOL bYMirr=(yFact.GetNumerator()<0) != (yFact.GetDenominator()<0);
+		if (bXMirr || bYMirr) {
+			Point aRef1(GetSnapRect().Center());
+			if (bXMirr) {
+				Point aRef2(aRef1);
+				aRef2.Y()++;
+				NbcMirrorGluePoints(aRef1,aRef2);
+			}
+			if (bYMirr) {
+				Point aRef2(aRef1);
+				aRef2.X()++;
+				NbcMirrorGluePoints(aRef1,aRef2);
+			}
+		}
+=====================================================================
+Found a 16 line (120 tokens) duplication in the following files: 
+Starting at line 2532 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2255 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x24 MSO_I, 0x26 MSO_I },	{ 0x28 MSO_I, 0x2a MSO_I }, { 10800, 0x2a MSO_I },							// ccp
+	{ 0x18 MSO_I, 0x2a MSO_I },																				// p
+	{ 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I,	0x10 MSO_I }						// ccp
+};
+static const sal_uInt16 mso_sptActionButtonReturnSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 16 line (120 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/unoevent.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoevent.cxx
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+
+using ::com::sun::star::container::NoSuchElementException;
+using ::com::sun::star::container::XNameReplace;
+using ::com::sun::star::lang::IllegalArgumentException;
+using ::com::sun::star::lang::WrappedTargetException;
+using ::com::sun::star::lang::XServiceInfo;
+using ::com::sun::star::beans::PropertyValue;
+using ::cppu::WeakImplHelper2;
+using ::rtl::OUString;
+using ::rtl::OUStringBuffer;
+
+
+const sal_Char sAPI_ServiceName[] = "com.sun.star.container.XNameReplace";
+const sal_Char sAPI_SwFrameEventDescriptor[] = "SwFrameEventDescriptor";
+=====================================================================
+Found a 26 line (120 tokens) duplication in the following files: 
+Starting at line 2228 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zforscan.cxx
+Starting at line 2397 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zforscan.cxx
+
+                                    if ( bTimePart && Is100SecZero( i, bDecSep ) )
+                                    {
+                                        bDecSep = TRUE;
+                                        nTypeArray[i] = NF_SYMBOLTYPE_DIGIT;
+                                        String& rStr = sStrArray[i];
+                                        i++;
+                                        nPos = nPos + sStrArray[i].Len();
+                                        nCounter++;
+                                        while (i < nAnzStrings &&
+                                            sStrArray[i].GetChar(0) == '0')
+                                        {
+                                            rStr += sStrArray[i];
+                                            nPos = nPos + sStrArray[i].Len();
+                                            nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
+                                            nAnzResStrings--;
+                                            nCounter++;
+                                            i++;
+                                        }
+                                    }
+                                    else
+                                        return nPos;
+                                }
+                                break;
+                                case '#':
+                                case '?':
+                                    return nPos;
+=====================================================================
+Found a 20 line (120 tokens) duplication in the following files: 
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/poolio.cxx
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/poolio.cxx
+
+	if ( !bPersistentRefCounts )
+	{
+
+		// "uber alle Which-Werte iterieren
+		SfxPoolItemArray_Impl** ppItemArr = pImp->ppPoolItems;
+		for( USHORT nArrCnt = GetSize_Impl(); nArrCnt; --nArrCnt, ++ppItemArr )
+		{
+			// ist "uberhaupt ein Item mit dem Which-Wert da?
+			if ( *ppItemArr )
+			{
+				// "uber alle Items mit dieser Which-Id iterieren
+				SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
+				for( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
+					if (*ppHtArr)
+					{
+                        #ifdef DBG_UTIL
+						const SfxPoolItem &rItem = **ppHtArr;
+						DBG_ASSERT( !rItem.ISA(SfxSetItem) ||
+									0 != &((const SfxSetItem&)rItem).GetItemSet(),
+									"SetItem without ItemSet" );
+=====================================================================
+Found a 18 line (120 tokens) duplication in the following files: 
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/colctrl.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/color.cxx
+
+		double dHue = 0.0;
+
+		if( c[0] == cMax )
+		{
+			dHue = (double)( c[1] - c[2] ) / (double)cDelta;
+		}
+		else if( c[1] == cMax )
+		{
+			dHue = 2.0 + (double)( c[2] - c[0] ) / (double)cDelta;
+		}
+		else if ( c[2] == cMax )
+		{
+			dHue = 4.0 + (double)( c[0] - c[1] ) / (double)cDelta;
+		}
+		dHue *= 60.0;
+
+		if( dHue < 0.0 )
+			dHue += 360.0;
+=====================================================================
+Found a 15 line (120 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/addresstemplate.cxx
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/addresstemplate.cxx
+
+		~AssignmentPersistentData();
+
+		// IAssigmentData overridables
+		virtual ::rtl::OUString getDatasourceName() const;
+		virtual ::rtl::OUString getCommand() const;
+		virtual sal_Int32		getCommandType() const;
+
+		virtual sal_Bool		hasFieldAssignment(const ::rtl::OUString& _rLogicalName);
+		virtual ::rtl::OUString getFieldAssignment(const ::rtl::OUString& _rLogicalName);
+		virtual void			setFieldAssignment(const ::rtl::OUString& _rLogicalName, const ::rtl::OUString& _rAssignment);
+		virtual void			clearFieldAssignment(const ::rtl::OUString& _rLogicalName);
+
+		virtual void	setDatasourceName(const ::rtl::OUString& _rName);
+		virtual void	setCommand(const ::rtl::OUString& _rCommand);
+	};
+=====================================================================
+Found a 21 line (120 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/colorcfg.cxx
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/extcolorcfg.cxx
+
+                                                            const ExtendedColorConfigValue& rValue );
+
+    const rtl::OUString&            GetLoadedScheme() const {return m_sLoadedScheme;}
+
+    uno::Sequence< ::rtl::OUString> GetSchemeNames();
+
+    sal_Bool                        AddScheme(const rtl::OUString& rNode);
+    sal_Bool                        RemoveScheme(const rtl::OUString& rNode);
+    void                            SetModified(){ConfigItem::SetModified();}
+    void                            ClearModified(){ConfigItem::ClearModified();}
+    void                            SettingsChanged();
+
+	static void						DisableBroadcast();
+	static void						EnableBroadcast();
+	static sal_Bool					IsEnableBroadcast();
+
+    static void                     LockBroadcast();
+    static void                     UnlockBroadcast();
+
+    // #100822#
+    DECL_LINK( DataChangedEventListener, VclWindowEvent* );
+=====================================================================
+Found a 7 line (120 tokens) duplication in the following files: 
+Starting at line 1306 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/javavm/javavm.cxx
+Starting at line 1566 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/javavm/javavm.cxx
+
+            jmethodID jmGetProps= pJNIEnv->GetStaticMethodID( jcSystem, "getProperties","()Ljava/util/Properties;");
+            if(pJNIEnv->ExceptionOccurred()) throw css::uno::RuntimeException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JNI:GetStaticMethodID java.lang.System.getProperties")), 0);
+            jobject joProperties= pJNIEnv->CallStaticObjectMethod( jcSystem, jmGetProps);
+            if(pJNIEnv->ExceptionOccurred()) throw css::uno::RuntimeException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JNI:CallStaticObjectMethod java.lang.System.getProperties")), 0);
+            // prepare java.util.Properties.remove
+            jclass jcProperties= pJNIEnv->FindClass("java/util/Properties");
+            if(pJNIEnv->ExceptionOccurred()) throw css::uno::RuntimeException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("JNI:FindClass java/util/Properties")), 0);
+=====================================================================
+Found a 18 line (120 tokens) duplication in the following files: 
+Starting at line 471 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 1995 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+        pStateSet->AddState( AccessibleStateType::ENABLED );
+        pStateSet->AddState( AccessibleStateType::FOCUSABLE );
+        if (pWin->HasFocus())
+            pStateSet->AddState( AccessibleStateType::FOCUSED );
+        if (pWin->IsActive())
+            pStateSet->AddState( AccessibleStateType::ACTIVE );
+        if (pWin->IsVisible())
+            pStateSet->AddState( AccessibleStateType::SHOWING );
+        if (pWin->IsReallyVisible())
+            pStateSet->AddState( AccessibleStateType::VISIBLE );
+        if (COL_TRANSPARENT != pWin->GetBackground().GetColor().GetColor())
+            pStateSet->AddState( AccessibleStateType::OPAQUE );
+    }
+
+	return xStateSet;
+}
+
+Locale SAL_CALL SmEditAccessible::getLocale(  )
+=====================================================================
+Found a 17 line (120 tokens) duplication in the following files: 
+Starting at line 2658 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+Starting at line 2688 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/workwin.cxx
+
+			SfxChildWinFactArr_Impl &rFactories = *pFactories;
+			for ( USHORT nFactory = 0; nFactory < rFactories.Count(); ++nFactory )
+			{
+				pFact = rFactories[nFactory];
+				if ( pFact->nId == pCW->nSaveId )
+				{
+					pCW->aInfo   = pFact->aInfo;
+					SfxChildWindow::InitializeChildWinFactory_Impl(
+												pCW->nSaveId, pCW->aInfo);
+					pCW->bCreate = pCW->aInfo.bVisible;
+					USHORT nFlags = pFact->aInfo.nFlags;
+					if ( nFlags & SFX_CHILDWIN_TASK )
+						pCW->aInfo.nFlags |= SFX_CHILDWIN_TASK;
+					if ( nFlags & SFX_CHILDWIN_CANTGETFOCUS )
+						pCW->aInfo.nFlags |= SFX_CHILDWIN_CANTGETFOCUS;
+                    if ( nFlags & SFX_CHILDWIN_FORCEDOCK )
+                        pCW->aInfo.nFlags |= SFX_CHILDWIN_FORCEDOCK;
+=====================================================================
+Found a 27 line (120 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linkmgr2.cxx
+Starting at line 182 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linkmgr2.cxx
+
+	::so3::MakeLnkName( sCmd, &rServer, rTopic, rItem );
+
+	pLink->SetObjType( OBJECT_CLIENT_DDE );
+	pLink->SetName( sCmd );
+	return Insert( pLink );
+}
+
+
+BOOL SvLinkManager::InsertDDELink( SvBaseLink * pLink )
+{
+	DBG_ASSERT( OBJECT_CLIENT_SO & pLink->GetObjType(), "no OBJECT_CLIENT_SO" )
+	if( !( OBJECT_CLIENT_SO & pLink->GetObjType() ) )
+		return FALSE;
+
+	if( pLink->GetObjType() == OBJECT_CLIENT_SO )
+		pLink->SetObjType( OBJECT_CLIENT_DDE );
+
+	return Insert( pLink );
+}
+
+
+// erfrage die Strings fuer den Dialog
+BOOL SvLinkManager::GetDisplayNames( const SvBaseLink * pLink,
+										String* pType,
+										String* pFile,
+										String* pLinkStr,
+										String* pFilter ) const
+=====================================================================
+Found a 30 line (120 tokens) duplication in the following files: 
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/smdetect.cxx
+
+	        if ( bIsStorage )
+			{
+                //TODO/LATER: factor this out!
+                uno::Reference < embed::XStorage > xStorage = aMedium.GetStorage();
+				if ( aMedium.GetLastStorageCreationState() != ERRCODE_NONE )
+				{
+					// error during storage creation means _here_ that the medium
+					// is broken, but we can not handle it in medium since unpossibility
+					// to create a storage does not _always_ means that the medium is broken
+					aMedium.SetError( aMedium.GetLastStorageCreationState() );
+					if ( xInteraction.is() )
+					{
+						OUString empty;
+						try
+						{
+							InteractiveAppException xException( empty,
+															REFERENCE< XInterface >(),
+															InteractionClassification_ERROR,
+															aMedium.GetError() );
+
+							REFERENCE< XInteractionRequest > xRequest(
+								new ucbhelper::SimpleInteractionRequest( makeAny( xException ),
+																 	 ucbhelper::CONTINUATION_APPROVE ) );
+							xInteraction->handle( xRequest );
+						}
+						catch ( Exception & ) {};
+					}
+				}
+				else
+				{
+=====================================================================
+Found a 15 line (120 tokens) duplication in the following files: 
+Starting at line 1439 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/eppt.cxx
+Starting at line 1895 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/eppt.cxx
+
+    aPropOpt.AddOpt( ESCHER_Prop_fNoLineDrawDash, 0x80000 );
+    aPropOpt.AddOpt( ESCHER_Prop_bWMode, ESCHER_wDontShow );
+    aPropOpt.AddOpt( ESCHER_Prop_fBackground, 0x10001 );
+    aPropOpt.Commit( *mpStrm );
+    mpPptEscherEx->CloseContainer();    // ESCHER_SpContainer
+
+    aSolverContainer.WriteSolver( *mpStrm );
+
+    mpPptEscherEx->CloseContainer();    // ESCHER_DgContainer
+    mpPptEscherEx->CloseContainer();    // EPP_Drawing
+    mpPptEscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 1 );
+    *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+    mpPptEscherEx->CloseContainer();    // EPP_Notes
+    return TRUE;
+};
+=====================================================================
+Found a 21 line (120 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewfun5.cxx
+Starting at line 1048 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview3.cxx
+
+            		xObj = mpDocSh->GetEmbeddedObjectContainer().InsertEmbeddedObject( xStm, aName );
+				}
+				else
+				{
+					try
+					{
+						uno::Reference< embed::XStorage > xTmpStor = ::comphelper::OStorageHelper::GetTemporaryStorage();
+						uno::Reference < embed::XEmbedObjectClipboardCreator > xClipboardCreator(
+							::comphelper::getProcessServiceFactory()->createInstance(
+                           		::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.MSOLEObjectSystemCreator")) ),
+							uno::UNO_QUERY_THROW );
+
+						embed::InsertedObjectInfo aInfo = xClipboardCreator->createInstanceInitFromClipboard(
+																xTmpStor,
+																::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "DummyName" ) ),
+																uno::Sequence< beans::PropertyValue >() );
+
+						// TODO/LATER: in future InsertedObjectInfo will be used to get container related information
+						// for example whether the object should be an iconified one
+						xObj = aInfo.Object;
+						if ( xObj.is() )
+=====================================================================
+Found a 21 line (120 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewfun5.cxx
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewfun5.cxx
+
+                if ( xObj.is() )
+				{
+					// try to get the replacement image from the clipboard
+					Graphic aGraphic;
+					ULONG nGrFormat = 0;
+					if( aDataHelper.GetGraphic( SOT_FORMATSTR_ID_SVXB, aGraphic ) )
+						nGrFormat = SOT_FORMATSTR_ID_SVXB;
+					else if( aDataHelper.GetGraphic( FORMAT_GDIMETAFILE, aGraphic ) )
+						nGrFormat = SOT_FORMAT_GDIMETAFILE;
+					else if( aDataHelper.GetGraphic( FORMAT_BITMAP, aGraphic ) )
+						nGrFormat = SOT_FORMAT_BITMAP;
+					
+					// insert replacement image ( if there is one ) into the object helper
+					if ( nGrFormat )
+					{
+						datatransfer::DataFlavor aDataFlavor;
+						SotExchange::GetFormatDataFlavor( nGrFormat, aDataFlavor );
+                    	PasteObject( aPos, xObj, &aObjDesc.maSize, &aGraphic, aDataFlavor.MimeType, aObjDesc.mnViewAspect );
+					}
+					else
+                    	PasteObject( aPos, xObj, &aObjDesc.maSize );
+=====================================================================
+Found a 9 line (120 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/addruno.cxx
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/addruno.cxx
+
+            {MAP_CHAR_LEN(SC_UNONAME_ADDRESS),  0,  &getCppuType((table::CellAddress*)0), 0, 0 },
+            {MAP_CHAR_LEN(SC_UNONAME_PERSREPR), 0,  &getCppuType((rtl::OUString*)0),    0, 0 },
+            {MAP_CHAR_LEN(SC_UNONAME_REFSHEET), 0,  &getCppuType((sal_Int32*)0),        0, 0 },
+            {MAP_CHAR_LEN(SC_UNONAME_UIREPR),   0,  &getCppuType((rtl::OUString*)0),    0, 0 },
+            {0,0,0,0,0,0}
+        };
+        static uno::Reference<beans::XPropertySetInfo> aRef(new SfxItemPropertySetInfo( aPropertyMap ));
+        return aRef;
+    }
+=====================================================================
+Found a 23 line (120 tokens) duplication in the following files: 
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldrani.cxx
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldrani.cxx
+Starting at line 660 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldrani.cxx
+
+SvXMLImportContext *ScXMLSourceQueryContext::CreateChildContext( USHORT nPrefix,
+											const ::rtl::OUString& rLName,
+											const ::com::sun::star::uno::Reference<
+									  	::com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext *pContext = 0;
+
+	if ( nPrefix == XML_NAMESPACE_FORM )
+	{
+        if (IsXMLToken(rLName, XML_CONNECTION_RESOURCE) && (sDBName.getLength() == 0))
+        {
+			pContext = new ScXMLConResContext( GetScImport(), nPrefix,
+													  	rLName, xAttrList, pDatabaseRangeContext);
+        }
+    }
+
+    if( !pContext )
+		pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName );
+
+	return pContext;
+}
+
+void ScXMLSourceQueryContext::EndElement()
+=====================================================================
+Found a 28 line (120 tokens) duplication in the following files: 
+Starting at line 901 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+Starting at line 1337 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+
+					USHORT	fBottom	= ( pPattern->Frame & 0xF000 ) / 0x1000;
+
+					if( fLeft > 1 )
+						nLeft = 50;
+					else if( fLeft > 0 )
+						nLeft = 20;
+
+					if( fTop > 1 )
+						nTop = 50;
+					else if( fTop > 0 )
+						nTop = 20;
+
+					if( fRight > 1 )
+						nRight = 50;
+					else if( fRight > 0 )
+						nRight = 20;
+
+					if( fBottom > 1 )
+						nBottom = 50;
+					else if( fBottom > 0 )
+						nBottom = 20;
+
+					Color	ColorLeft( COL_BLACK );
+					Color	ColorTop( COL_BLACK );
+					Color	ColorRight( COL_BLACK );
+					Color	ColorBottom( COL_BLACK );
+
+					USHORT	cLeft	= ( pPattern->FrameColor & 0x000F );
+=====================================================================
+Found a 29 line (120 tokens) duplication in the following files: 
+Starting at line 1419 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+Starting at line 1516 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabres.cxx
+
+    {
+        // Calculate at least automatic if no subtotals are selected,
+        // show only own values if there's no child dimension (innermost).
+        if ( !nUserSubCount || !bHasChild )
+            nUserSubCount = 1;
+
+        long nMemberMeasure = nMeasure;
+        long nSubSize = pResultData->GetCountForMeasure(nMeasure);
+
+        if ( pDataRoot )
+        {
+            ScDPSubTotalState aSubState;        // initial state
+
+            for (long nUserPos=0; nUserPos<nUserSubCount; nUserPos++)   // including hidden "automatic"
+            {
+                if ( bHasChild && nUserSubCount > 1 )
+                {
+                    aSubState.nRowSubTotalFunc = nUserPos;
+                    aSubState.eRowForce = lcl_GetForceFunc( pParentLevel, nUserPos );
+                }
+
+                for ( long nSubCount=0; nSubCount<nSubSize; nSubCount++ )
+                {
+                    if ( nMeasure == SC_DPMEASURE_ALL )
+                        nMemberMeasure = nSubCount;
+                    else if ( pResultData->GetColStartMeasure() == SC_DPMEASURE_ALL )
+                        nMemberMeasure = SC_DPMEASURE_ALL;
+
+                    pDataRoot->UpdateRunningTotals( pRefMember, nMemberMeasure,
+=====================================================================
+Found a 37 line (120 tokens) duplication in the following files: 
+Starting at line 842 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_SocketAddr.cxx
+
+			::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT2 );
+			
+			CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: using an invalid IP address, the socketaddr ctors should fail", sal_False == saSocketAddr.is( ));
+		}
+		CPPUNIT_TEST_SUITE( ctors );
+		CPPUNIT_TEST( ctors_none );
+		CPPUNIT_TEST( ctors_none_000 );
+		CPPUNIT_TEST( ctors_copy );
+		CPPUNIT_TEST( ctors_copy_no_001 );
+		CPPUNIT_TEST( ctors_copy_no_002 );
+		CPPUNIT_TEST( ctors_copy_handle_001 );
+		CPPUNIT_TEST( ctors_copy_handle_002 );
+		CPPUNIT_TEST( ctors_hostname_port_001 );
+		CPPUNIT_TEST( ctors_hostname_port_002 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class ctors
+
+
+	/** testing the method:
+		inline sal_Bool is() const;		
+	*/
+
+	class is : public CppUnit::TestFixture
+	{
+	public:
+		void is_001()
+		{
+			::osl::SocketAddr saSocketAddr;
+	
+			CPPUNIT_ASSERT_MESSAGE("test for is() function: create an unknown type socket, it should be True when call is.", 
+									sal_True == saSocketAddr.is( ) );
+		}
+		// refer to setPort_003()
+		void is_002()
+		{
+			::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_INVAL );
+=====================================================================
+Found a 17 line (120 tokens) duplication in the following files: 
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+Starting at line 935 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+Starting at line 988 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/lngsvcmgr.cxx
+
+					Reference< XThesaurus > xSvc( xFactory->createInstance(),
+												  UNO_QUERY );
+					if (xSvc.is())
+					{
+						OUString 			aImplName;
+						Sequence< INT16 > 	aLanguages;
+						Reference< XServiceInfo > xInfo( xSvc, UNO_QUERY );
+						if (xInfo.is())
+							aImplName = xInfo->getImplementationName();
+						DBG_ASSERT( aImplName.getLength(),
+								"empty implementation name" );
+						Reference< XSupportedLocales > xSuppLoc( xSvc, UNO_QUERY );
+						DBG_ASSERT( xSuppLoc.is(), "interfaces not supported" );
+						if (xSuppLoc.is()) {
+                            Sequence<Locale> aLocaleSequence(xSuppLoc->getLocales());
+							aLanguages = LocaleSeqToLangSeq( aLocaleSequence );
+                        }
+=====================================================================
+Found a 30 line (120 tokens) duplication in the following files: 
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sspellimp.cxx
+
+	}
+
+	return aSuppLocales;
+}
+
+
+sal_Bool SAL_CALL SpellChecker::hasLocale(const Locale& rLocale)
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	BOOL bRes = FALSE;
+	if (!aSuppLocales.getLength())
+		getLocales();
+	INT32 nLen = aSuppLocales.getLength();
+	for (INT32 i = 0;  i < nLen;  ++i)
+	{
+		const Locale *pLocale = aSuppLocales.getConstArray();
+		if (rLocale == pLocale[i])
+		{
+			bRes = TRUE;
+			break;
+		}
+	}
+	return bRes;
+}
+
+
+INT16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rLocale )
+{
+=====================================================================
+Found a 14 line (120 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/languageguessing/guesslang.cxx
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/languageguessing/guesslang.cxx
+
+    vector<Guess> gs = guesser.GetUnavailableLanguages();
+    aRes.realloc(gs.size());
+
+    com::sun::star::lang::Locale *pRes = aRes.getArray();
+
+    for(size_t i = 0; i < gs.size() ; i++ ){
+        com::sun::star::lang::Locale current_aRes;
+        current_aRes.Language   = OUString(RTL_CONSTASCII_USTRINGPARAM(gs[i].GetLanguage().c_str()));
+        current_aRes.Country    = OUString(RTL_CONSTASCII_USTRINGPARAM(gs[i].GetCountry().c_str()));
+        pRes[i] = current_aRes;
+    }
+
+    return aRes;
+}
+=====================================================================
+Found a 22 line (120 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/datatest.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+
+public:
+    virtual void SAL_CALL testInvariant(
+		const OUString& TestName,
+		const Reference < XInterface >& TestObject)
+		throw (	IllegalArgumentException,
+				RuntimeException) ;
+
+    virtual sal_Int32 SAL_CALL  test(	const OUString& TestName,
+    					const Reference < XInterface >& TestObject,
+    					sal_Int32 hTestHandle)
+		throw (	IllegalArgumentException, RuntimeException);
+    virtual sal_Bool SAL_CALL testPassed(void)
+		throw (	RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getErrors(void)
+		throw (RuntimeException);
+    virtual Sequence< Any > SAL_CALL getErrorExceptions(void)
+		throw (RuntimeException);
+    virtual Sequence< OUString > SAL_CALL getWarnings(void)
+		throw (RuntimeException);
+
+private:
+	void testSimple( const Reference< XOutputStream > &r, const Reference < XInputStream > &rInput );
+=====================================================================
+Found a 19 line (120 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 803 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 30 line (120 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/popupmenucontrollerfactory.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/toolbarcontrollerfactory.cxx
+
+sal_Bool ConfigurationAccess_ToolbarControllerFactory::impl_getElementProps( const Any& aElement, rtl::OUString& aCommand, rtl::OUString& aModule, rtl::OUString& aServiceSpecifier ) const
+{
+    Reference< XPropertySet > xPropertySet;
+    aElement >>= xPropertySet;
+
+    if ( xPropertySet.is() )
+    {
+        try
+        {
+            xPropertySet->getPropertyValue( m_aPropCommand ) >>= aCommand;
+            xPropertySet->getPropertyValue( m_aPropModule ) >>= aModule;
+            xPropertySet->getPropertyValue( m_aPropController ) >>= aServiceSpecifier;
+        }
+        catch ( com::sun::star::beans::UnknownPropertyException& )
+        {
+            return sal_False;
+        }
+        catch ( com::sun::star::lang::WrappedTargetException& )
+        {
+            return sal_False;
+        }
+    }
+
+    return sal_True;
+}
+
+//*****************************************************************************************************************
+//	XInterface, XTypeProvider, XServiceInfo
+//*****************************************************************************************************************
+DEFINE_XINTERFACE_4                    (    ToolbarControllerFactory                                                      ,
+=====================================================================
+Found a 28 line (120 tokens) duplication in the following files: 
+Starting at line 817 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+Starting at line 1008 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+
+                        }
+                    }
+                }
+                break;
+
+                case PROPERTY_SIZE:
+                case PROPERTY_DOCKSIZE:
+                {
+                    OUString aString;
+                    if ( a >>= aString )
+                    {
+                        sal_Int32 nToken( 0 );
+                        OUString aStr = aString.getToken( 0, ',', nToken );
+                        if ( nToken > 0 )
+                        {
+                            com::sun::star::awt::Size aSize;
+                            aSize.Width  = aStr.toInt32();
+                            aSize.Height = aString.getToken( 0, ',', nToken ).toInt32();
+                            if ( i == PROPERTY_SIZE )
+                            {
+                                aWindowStateInfo.aSize = aSize;
+                                nMask |= WINDOWSTATE_MASK_SIZE;
+                            }
+                            else
+                            {
+                                aWindowStateInfo.aDockSize = aSize;
+                                nMask |= WINDOWSTATE_MASK_DOCKSIZE;
+                            }
+=====================================================================
+Found a 14 line (120 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Grid.cxx
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ImageControl.cxx
+
+namespace frm
+{
+//.........................................................................
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::ui::dialogs;
+=====================================================================
+Found a 8 line (120 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,    0,    0,    0,    6,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+=====================================================================
+Found a 38 line (120 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/unloading/unloadTest.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/unloading/unloadTest.cxx
+
+	Reference<XInterface> xint= fac->createInstanceWithContext( sService, context);
+
+
+	OUString sModule(
+        RTL_CONSTASCII_USTRINGPARAM("oleautobridge.uno" SAL_DLLEXTENSION));
+	oslModule hMod= osl_loadModule( sModule.pData, 0);
+	osl_unloadModule( hMod);
+
+	rtl_unloadUnusedModules( NULL);
+	OUString sFactoryFunc( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
+	void* pSymbol= osl_getSymbol( hMod,sFactoryFunc.pData);
+	// true, instance alive
+	sal_Bool bTest1= pSymbol ? sal_True : sal_False;
+
+	xint=0;
+	rtl_unloadUnusedModules( NULL);
+	pSymbol= osl_getSymbol( hMod,sFactoryFunc.pData);
+	sal_Bool bTest2= pSymbol ? sal_False : sal_True;
+
+	Reference<XComponent> xcomp( context, UNO_QUERY);
+	xcomp->dispose();
+
+//	for (int i=0; i < 10; i++)
+//	{	
+//		Reference<XSimpleRegistry> xreg= createSimpleRegistry();
+//		xreg->open( OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")),
+//							   sal_False, sal_False );
+//		Reference< XComponentContext > context= bootstrap_InitialComponentContext(xreg);	
+//		Reference<XComponent> xcomp( context, UNO_QUERY);
+//		xcomp->dispose();
+//
+//	}
+
+//	return sal_True;
+	return bTest1 && bTest2;
+}
+
+sal_Bool test4()
+=====================================================================
+Found a 16 line (120 tokens) duplication in the following files: 
+Starting at line 946 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 2024 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	// TODO: The object must be at least in Running state;
+	if ( !m_bIsLink || m_nObjectState == -1 || !m_pOleComponent )
+=====================================================================
+Found a 29 line (120 tokens) duplication in the following files: 
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/registry/configuration/dp_configuration.cxx
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/registry/package/dp_package.cxx
+
+}
+
+// XPackageRegistry
+//______________________________________________________________________________
+Sequence< Reference<deployment::XPackageTypeInfo> >
+BackendImpl::getSupportedPackageTypes() throw (RuntimeException)
+{
+    return m_typeInfos;
+}
+
+
+
+// PackageRegistryBackend
+//______________________________________________________________________________
+Reference<deployment::XPackage> BackendImpl::bindPackage_(
+    OUString const & url, OUString const & mediaType_,
+    Reference<XCommandEnvironment> const & xCmdEnv )
+{
+    OUString mediaType( mediaType_ );
+    if (mediaType.getLength() == 0)
+    {
+        // detect media-type:
+        ::ucbhelper::Content ucbContent;
+        if (create_ucb_content( &ucbContent, url, xCmdEnv ))
+        {
+            const OUString title( ucbContent.getPropertyValue(
+                                      StrTitle::get() ).get<OUString>() );
+            if (title.endsWithIgnoreAsciiCaseAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM(".oxt") ) ||
+=====================================================================
+Found a 11 line (120 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/JoinController.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/tabledesign/TableController.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::ui;
+=====================================================================
+Found a 21 line (120 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/EnvGuard/EnvGuard.test.cxx
+
+        current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
+    }
+
+
+	if (current_EnvDcp == ref)
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+	else
+    {
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t        got: \""));
+        s_message += current_EnvDcp;
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t   expected: \""));
+        s_message += ref;
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+    }
+}
+
+SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
+{
+=====================================================================
+Found a 22 line (120 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 611 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ETable.cxx
+
+						(*_rRow)[i]->setNull();
+					}
+				}	break;
+				case DataType::DOUBLE:
+				case DataType::INTEGER:
+				case DataType::DECIMAL:				// #99178# OJ
+				case DataType::NUMERIC:
+				{
+					sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter();
+					sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter();
+					String aStrConverted;
+
+					OSL_ENSURE(cDecimalDelimiter && nType != DataType::INTEGER ||
+							   !cDecimalDelimiter && nType == DataType::INTEGER,
+							   "FalscherTyp");
+
+					// In Standard-Notation (DezimalPUNKT ohne Tausender-Komma) umwandeln:
+					for (xub_StrLen j = 0; j < aStr.Len(); ++j)
+					{
+						if (cDecimalDelimiter && aStr.GetChar(j) == cDecimalDelimiter)
+							aStrConverted += '.';
+						else if ( aStr.GetChar(j) == '.' ) // special case, if decimal seperator isn't '.' we have to vut the string after it
+=====================================================================
+Found a 22 line (120 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/AreaWrapper.cxx
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/PageBackground.cxx
+
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+         ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::FillProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+=====================================================================
+Found a 31 line (120 tokens) duplication in the following files: 
+Starting at line 225 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+		}
+		if (pReturnTypeDescr)
+		{
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		}
+	}
+}
+
+
+//==================================================================================================
+extern "C" void cpp_vtable_call(
+    int nFunctionIndex, int nVtableOffset, void** pCallStack,
+    void * pReturnValue )
+{
+	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+	
+	// pCallStack: ret adr, [ret *], this, params
+    void * pThis;
+	if( nFunctionIndex & 0x80000000 )
+	{
+		nFunctionIndex &= 0x7fffffff;
+        pThis = pCallStack[2];
+	}
+	else
+    {
+        pThis = pCallStack[1];
+    }
+    pThis = static_cast< char * >(pThis) - nVtableOffset;
+	bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
+        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
+            pThis);
+=====================================================================
+Found a 9 line (120 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
+
+	pRTTI[  0 ] = reinterpret_cast< void * >(rttiSize * sizeof (void *));
+	pRTTI[  1 ] = NULL;
+	pRTTI[  2 ] = (void*)(7*sizeof(void*));
+	pRTTI[  3 ] = (void*)aHash.getHash()[0];
+	pRTTI[  4 ] = (void*)aHash.getHash()[1];
+	pRTTI[  5 ] = (void*)aHash.getHash()[2];
+	pRTTI[  6 ] = (void*)aHash.getHash()[3];
+	pRTTI[  7 ] = NULL;
+	pRTTI[  8 ] = NULL;
+=====================================================================
+Found a 22 line (120 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/dlgcont.cxx
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/scriptcont.cxx
+
+namespace basic
+{
+
+using namespace com::sun::star::document;
+using namespace com::sun::star::container;
+using namespace com::sun::star::io;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::ucb;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::script;
+using namespace com::sun::star::xml::sax;
+using namespace com::sun::star;
+using namespace cppu;
+using namespace rtl;
+using namespace osl;
+
+using com::sun::star::uno::Reference;
+
+//============================================================================
+// Implementation class SfxScriptLibraryContainer
+
+const sal_Char* SAL_CALL SfxScriptLibraryContainer::getInfoFileName() const { return "script"; }
+=====================================================================
+Found a 50 line (120 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/msgedit.cxx
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/msgedit.cxx
+
+	if ( pCurrentTestCase )
+		pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentTestCase, FALSE, LIST_APPEND, pTTDebugData );
+	else if ( pCurrentRun )
+	{
+		pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentRun, FALSE, LIST_APPEND, pTTDebugData );
+		aEditTree.ShowEntry( pThisEntry );
+	}
+	else
+	{
+		AddRun( aMsg, aDebugData );
+		pThisEntry = aEditTree.InsertEntry( aMsg, pCurrentRun, FALSE, LIST_APPEND, pTTDebugData );
+		aEditTree.ShowEntry( pThisEntry );
+	}
+
+    while ( !aEditTree.IsEntryVisible( pThisEntry ) && ( pThisEntry = aEditTree.GetParent( pThisEntry ) ) != NULL )
+		aEditTree.InvalidateEntry( pThisEntry );
+}
+
+/*
+	SvLBoxEntry*	GetEntry( SvLBoxEntry* pParent, ULONG nPos ) const { return SvLBox::GetEntry(pParent,nPos); }
+	SvLBoxEntry*	GetEntry( ULONG nRootPos ) const { return SvLBox::GetEntry(nRootPos);}
+
+
+
+	SvLBoxEntry*	FirstChild(SvLBoxEntry* pParent ) const { return (SvLBoxEntry*)(pModel->FirstChild(pParent)); }
+	SvLBoxEntry*	NextSibling(SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->NextSibling( pEntry )); }
+	SvLBoxEntry*	PrevSibling(SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->PrevSibling( pEntry )); }
+
+	SvLBoxEntry*	FirstSelected() const { return (SvLBoxEntry*)SvListView::FirstSelected(); }
+	SvLBoxEntry*	NextSelected( SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(SvListView::NextSelected(pEntry)); }
+	SvLBoxEntry*	PrevSelected( SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(SvListView::PrevSelected(pEntry)); }
+	SvLBoxEntry*	LastSelected() const { return (SvLBoxEntry*)(SvListView::LastSelected()); }
+
+	SvLBoxEntry*	GetEntry( SvLBoxEntry* pParent, ULONG nPos ) const { return (SvLBoxEntry*)(pModel->GetEntry(pParent,nPos)); }
+	SvLBoxEntry*	GetEntry( ULONG nRootPos ) const { return (SvLBoxEntry*)(pModel->GetEntry(nRootPos)); }
+
+	SvLBoxEntry*	GetParent( SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->GetParent(pEntry)); }
+	SvLBoxEntry*	GetRootLevelParent(SvLBoxEntry* pEntry ) const { return (SvLBoxEntry*)(pModel->GetRootLevelParent( pEntry ));}
+
+	BOOL			IsInChildList( SvListEntry* pParent, SvListEntry* pChild) const;
+	SvListEntry*	GetEntry( SvListEntry* pParent, ULONG nPos ) const;
+	SvListEntry*	GetEntry( ULONG nRootPos ) const;
+	SvListEntry*	GetEntryAtAbsPos( ULONG nAbsPos ) const;
+	SvListEntry*	GetParent( SvListEntry* pEntry ) const;
+	SvListEntry*	GetRootLevelParent( SvListEntry* pEntry ) const;
+*/
+
+//#define CHECK( pMemo ) if ( pMemo && !aEditTree.GetViewData( pMemo ) ) pMemo = NULL
+#define CHECK( pMemo ) if ( pMemo && !aEditTree.GetModel()->IsInChildList( NULL, pMemo ) ) pMemo = NULL
+void MsgEdit::Delete()
+=====================================================================
+Found a 9 line (120 tokens) duplication in the following files: 
+Starting at line 3936 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 3974 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+		case M_GetSizeX:
+			if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r FloatingWindows
+			if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r TabDialoge
+			if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+				pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r Border
+            if ( (nParams & PARAM_BOOL_1) && bBool1 )
+                pControl = pControl->GetWindow( WINDOW_OVERLAP );
+=====================================================================
+Found a 16 line (119 tokens) duplication in the following files: 
+Starting at line 6238 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6544 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x20,0x40,0x00,
+
+        7, // 0x3C '<'
+        0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,
+
+        7, // 0x3D '='
+        0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
+
+        7, // 0x3E '>'
+        0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
+
+        7, // 0x3F '?'
+        0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+        7, // 0x40 '@'
+        0x00,0x38,0x44,0x44,0x5C,0x54,0x4C,0x40,0x38,0x00,0x00,0x00,
+=====================================================================
+Found a 21 line (119 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                               ry_inv) >> 
+                                   image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + (x_lr << 2);
+=====================================================================
+Found a 21 line (119 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgb.h
+
+                fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                               ry_inv) >> 
+                                   image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + x_lr * 3;
+=====================================================================
+Found a 21 line (119 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+
+            int y2 = int(yt * subpixel_size);
+
+            const double delta = 1/double(subpixel_size);
+            double dx;
+            double dy;
+
+            // Calculate scale by X at x2,y2
+            dx = xt + delta;
+            dy = yt;
+            m_trans_inv.transform(&dx, &dy);
+            dx -= xe;
+            dy -= ye;
+            int sx2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+            // Calculate scale by Y at x2,y2
+            dx = xt;
+            dy = yt + delta;
+            m_trans_inv.transform(&dx, &dy);
+            dx -= xe;
+            dy -= ye;
+            int sy2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+=====================================================================
+Found a 20 line (119 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr = y >> image_subpixel_shift;
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                                base_type::m_ry_inv) >> 
+                                    image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   base_type::m_rx_inv) >> 
+                                       image_subpixel_shift;
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + x_lr * 3;
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_primitives.h
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_primitives.h
+
+        void outlined_ellipse(int x, int y, int rx, int ry)
+        {
+            ellipse_bresenham_interpolator ei(rx, ry);
+            int dx = 0;
+            int dy = -ry;
+
+            do
+            {
+                dx += ei.dx();
+                dy += ei.dy();
+
+                m_ren->blend_pixel(x + dx, y + dy, m_line_color, cover_full);
+                m_ren->blend_pixel(x + dx, y - dy, m_line_color, cover_full);
+                m_ren->blend_pixel(x - dx, y - dy, m_line_color, cover_full);
+                m_ren->blend_pixel(x - dx, y + dy, m_line_color, cover_full);
+=====================================================================
+Found a 32 line (119 tokens) duplication in the following files: 
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_gray.h
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgb.h
+
+                            p[order_type::B] = colors->b;
+                        }
+                        else
+                        {
+                            copy_or_blend_pix(p, *colors, 255);
+                        }
+                        p = (value_type*)m_rbuf->next_row(p);
+                        ++colors;
+                    }
+                    while(--len);
+                }
+                else
+                {
+                    do 
+                    {
+                        copy_or_blend_pix(p, *colors++, cover);
+                        p = (value_type*)m_rbuf->next_row(p);
+                    }
+                    while(--len);
+                }
+            }
+        }
+
+
+        //--------------------------------------------------------------------
+        void blend_opaque_color_hspan(int x, int y,
+                                      unsigned len, 
+                                      const color_type* colors,
+                                      const int8u* covers,
+                                      int8u cover)
+        {
+            value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.cxx
+
+SAL_CALL XMLEncryption_NssImpl :: encrypt(
+	const Reference< XXMLEncryptionTemplate >& aTemplate ,
+	const Reference< XSecurityEnvironment >& aEnvironment
+) throw( com::sun::star::xml::crypto::XMLEncryptionException, 
+		 com::sun::star::uno::SecurityException )
+{
+	xmlSecKeysMngrPtr pMngr = NULL ;
+	xmlSecEncCtxPtr pEncCtx = NULL ;
+	xmlNodePtr pEncryptedData = NULL ;
+	xmlNodePtr pContent = NULL ;
+
+	if( !aTemplate.is() )
+		throw RuntimeException() ;
+
+	if( !aEnvironment.is() )
+		throw RuntimeException() ;
+
+	//Get Keys Manager
+	Reference< XUnoTunnel > xSecTunnel( aEnvironment , UNO_QUERY ) ;
+	if( !xSecTunnel.is() ) {
+		 throw RuntimeException() ;
+	}
+=====================================================================
+Found a 20 line (119 tokens) duplication in the following files: 
+Starting at line 290 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpbody.cxx
+Starting at line 1029 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpstyl.cxx
+
+		case XML_TOK_MASTERPAGE_NOTES:
+		{
+			if( GetSdImport().IsImpress() )
+			{
+				// get notes page
+				uno::Reference< presentation::XPresentationPage > xPresPage(GetLocalShapesContext(), uno::UNO_QUERY);
+				if(xPresPage.is())
+				{
+					uno::Reference< drawing::XDrawPage > xNotesDrawPage(xPresPage->getNotesPage(), uno::UNO_QUERY);
+					if(xNotesDrawPage.is())
+					{
+						uno::Reference< drawing::XShapes > xNewShapes(xNotesDrawPage, uno::UNO_QUERY);
+						if(xNewShapes.is())
+						{
+							// presentation:notes inside master-page context
+							pContext = new SdXMLNotesContext( GetSdImport(), nPrefix, rLocalName, xAttrList, xNewShapes);
+						}
+					}
+				}
+			}
+=====================================================================
+Found a 17 line (119 tokens) duplication in the following files: 
+Starting at line 1289 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dockmgr.cxx
+Starting at line 1420 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dockmgr.cxx
+
+                maMaxOutSize    = mpFloatWin->GetMaxOutputSizePixel();
+
+                Window* pRealParent = GetWindow()->GetWindow( WINDOW_PARENT ); //mpWindowImpl->mpRealParent;
+                GetWindow()->mpWindowImpl->mpBorderWindow = NULL;
+                if ( mpOldBorderWin )
+                {
+                    GetWindow()->SetParent( mpOldBorderWin );
+                    ((ImplBorderWindow*)mpOldBorderWin)->GetBorder( 
+                        GetWindow()->mpWindowImpl->mnLeftBorder, GetWindow()->mpWindowImpl->mnTopBorder,
+                        GetWindow()->mpWindowImpl->mnRightBorder, GetWindow()->mpWindowImpl->mnBottomBorder );
+                    mpOldBorderWin->Resize();
+                }
+                GetWindow()->mpWindowImpl->mpBorderWindow = mpOldBorderWin;
+                GetWindow()->SetParent( pRealParent );
+                GetWindow()->mpWindowImpl->mpRealParent = pRealParent;
+
+                delete static_cast<ImplDockFloatWin2*>(mpFloatWin);
+=====================================================================
+Found a 20 line (119 tokens) duplication in the following files: 
+Starting at line 710 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev.cxx
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev.cxx
+
+			mpGraphics = pVirDev->mpVirDev->GetGraphics();
+            // if needed retry after releasing least recently used virtual device graphics
+			while ( !mpGraphics )
+			{
+				if ( !pSVData->maGDIData.mpLastVirGraphics )
+					break;
+				pSVData->maGDIData.mpLastVirGraphics->ImplReleaseGraphics();
+				mpGraphics = pVirDev->mpVirDev->GetGraphics();
+			}
+            // update global LRU list of virtual device graphics
+			if ( mpGraphics )
+			{
+				mpNextGraphics = pSVData->maGDIData.mpFirstVirGraphics;
+				pSVData->maGDIData.mpFirstVirGraphics = const_cast<OutputDevice*>(this);
+				if ( mpNextGraphics )
+					mpNextGraphics->mpPrevGraphics = const_cast<OutputDevice*>(this);
+				if ( !pSVData->maGDIData.mpLastVirGraphics )
+					pSVData->maGDIData.mpLastVirGraphics = const_cast<OutputDevice*>(this);
+			}
+		}
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 1949 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 2099 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+	if ( rInfo.SourceURL.getLength() <= aId.getLength() )
+	{
+		if ( aId.compareTo(
+				rInfo.SourceURL, rInfo.SourceURL.getLength() ) == 0 )
+        {
+            uno::Any aProps
+                = uno::makeAny(beans::PropertyValue(
+                                      rtl::OUString(
+                                          RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                      -1,
+                                      uno::makeAny( rInfo.SourceURL ),
+                                      beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_RECURSIVE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                xEnv,
+                rtl::OUString::createFromAscii(
+                    "Target is equal to or is a child of source!" ),
+                this );
+            // Unreachable
+        }
+	}
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[1] |= 0x08;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[1] |= 0x04;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[1] |= 0x08;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[1] |= 0x04;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 507 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[1] |= 0x80;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[1] |= 0x40;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 507 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[0] |= 0x80;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[0] |= 0x40;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[1] |= 0x08;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[1] |= 0x04;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[0] |= 0x08;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[0] |= 0x04;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[1] |= 0x80;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[1] |= 0x40;
+=====================================================================
+Found a 16 line (119 tokens) duplication in the following files: 
+Starting at line 1533 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/uiregionsw.cxx
+Starting at line 2330 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/uiregionsw.cxx
+
+	DBG_ASSERT(pFact, "Dialogdiet fail!"); //CHINA001
+	AddTabPage(TP_COLUMN,	SwColumnPage::Create,  	 0);
+	AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), 0 ); //CHINA001 AddTabPage(TP_BACKGROUND,SvxBackgroundTabPage::Create, 	0);
+	AddTabPage(TP_SECTION_FTNENDNOTES, SwSectionFtnEndTabPage::Create, 0);
+    AddTabPage(TP_SECTION_INDENTS, SwSectionIndentTabPage::Create, 0);
+
+	SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get();
+	long nHtmlMode = pHtmlOpt->GetExportMode();
+	BOOL bWeb = 0 != PTR_CAST( SwWebDocShell, rSh.GetView().GetDocShell() );
+	if(bWeb)
+	{
+		RemoveTabPage(TP_SECTION_FTNENDNOTES);
+        RemoveTabPage(TP_SECTION_INDENTS);
+        if( HTML_CFG_NS40 != nHtmlMode && HTML_CFG_WRITER != nHtmlMode)
+			RemoveTabPage(TP_COLUMN);
+	}
+=====================================================================
+Found a 28 line (119 tokens) duplication in the following files: 
+Starting at line 1504 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmconfigitem.cxx
+Starting at line 1565 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmconfigitem.cxx
+
+    SwAddressIterator aIter(sAddress);
+    while(aIter.HasMore())
+    {        
+        SwMergeAddressItem aItem = aIter.Next();
+        if(aItem.bIsColumn)
+        {
+            String sConvertedColumn = aItem.sText;
+            for(USHORT nColumn = 0; 
+                    nColumn < rHeaders.Count() && nColumn < aAssignment.getLength(); 
+                                                                                ++nColumn)
+            {
+                if(rHeaders.GetString(nColumn) == aItem.sText && 
+                    pAssignment[nColumn].getLength())
+                {
+                    sConvertedColumn = pAssignment[nColumn];
+                    break;
+                }            
+            }
+            //find out if the column exists in the data base
+            if(!xCols->hasByName(sConvertedColumn))
+            {
+                bResult = false;
+                break;
+            }    
+        }
+    }
+    return bResult;
+}
+=====================================================================
+Found a 19 line (119 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		EDGERADIUS_PROPERTIES
+		FILL_PROPERTIES
+		LINE_PROPERTIES
+		LINE_PROPERTIES_START_END
+		SHAPE_DESCRIPTOR_PROPERTIES
+		MISC_OBJ_PROPERTIES
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		TEXT_PROPERTIES
+		// #FontWork#
+		FONTWORK_PROPERTIES
+		CUSTOMSHAPE_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aCirclePropertyMap_Impl;
+=====================================================================
+Found a 10 line (119 tokens) duplication in the following files: 
+Starting at line 2272 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoedge.cxx
+Starting at line 2592 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+	long nMulY = (RECT_EMPTY == rRect.Bottom()) ? 0 : rRect.Bottom() - rRect.Top();
+	
+	long nDivY = aOld.Bottom()  - aOld.Top();
+	if ( nDivX == 0 ) { nMulX = 1; nDivX = 1; }
+	if ( nDivY == 0 ) { nMulY = 1; nDivY = 1; }
+	Fraction aX(nMulX,nDivX);
+	Fraction aY(nMulY,nDivY);
+	NbcResize(aOld.TopLeft(), aX, aY);
+	NbcMove(Size(rRect.Left() - aOld.Left(), rRect.Top() - aOld.Top()));
+}
+=====================================================================
+Found a 5 line (119 tokens) duplication in the following files: 
+Starting at line 1241 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+Starting at line 1341 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedxv.cxx
+
+            	    Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
+			        if (aPixPos.X()<aR.Left  ()) aPixPos.X()=aR.Left  ();
+            	    if (aPixPos.X()>aR.Right ()) aPixPos.X()=aR.Right ();
+	                if (aPixPos.Y()<aR.Top   ()) aPixPos.Y()=aR.Top   ();
+    	            if (aPixPos.Y()>aR.Bottom()) aPixPos.Y()=aR.Bottom();
+=====================================================================
+Found a 24 line (119 tokens) duplication in the following files: 
+Starting at line 1741 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4807 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+	rPropSet->setPropertyValue( WW8_ASCII2STR("TriState"), aTmp);
+
+    aTmp <<= ImportSpecEffect( nSpecialEffect );
+    rPropSet->setPropertyValue( WW8_ASCII2STR("VisualEffect"), aTmp);
+
+	if (pValue && !bSetInDialog)
+	{
+		INT16 nTmp=pValue[0]-0x30;
+		aTmp <<= nTmp;
+		rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultState"), aTmp);
+	}
+
+	if (pCaption)
+	{
+        aTmp <<= lclCreateOUString( pCaption, nCaptionLen );
+		rPropSet->setPropertyValue( WW8_ASCII2STR("Label"), aTmp);
+	}
+
+    // #i40279# always centered vertically
+    aTmp <<= ::com::sun::star::style::VerticalAlignment_MIDDLE;
+    rPropSet->setPropertyValue( WW8_ASCII2STR("VerticalAlign"), aTmp );
+
+    aFontData.Import(rPropSet);
+	return(sal_True);
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 2018 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2268 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2416 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+Starting at line 2486 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+	{ 0x6000, DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 },
+	{ 0x6000, DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 },
+	{ 0xa000, DFF_Prop_geoRight, 0, DFF_Prop_adjustValue },
+	{ 0xa000, DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue },
+	{ 0x8000, 10800, 0, DFF_Prop_adjustValue },
+	{ 0x2001, 0x0405, 1, 10800 },							// scaling	 6
+	{ 0x6000, DFF_Prop_geoRight, DFF_Prop_geoLeft, 10800 },	// lr center 7
+	{ 0x6000, DFF_Prop_geoBottom, DFF_Prop_geoTop, 10800 },	// ul center 8
+
+	{ 0x4001, -8050, 0x0406, 1 },	// 9
+	{ 0x6000, 0x0409, 0x0407, 0 },	// a
+	{ 0x4001, -4020, 0x0406, 1 },	// b
+=====================================================================
+Found a 16 line (119 tokens) duplication in the following files: 
+Starting at line 1966 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1710 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFoldedCornerVert[] =	// adjustment1 : x 10800 - 21600
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 },
+	{ 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I },
+	{ 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I }
+};
+static const sal_uInt16 mso_sptFoldedCornerSegm[] =
+{
+	0x4000, 0x0004, 0x6001, 0x8000,
+	0x4000, 0x0001, 0x2001, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 1560 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1386 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] =
+{
+	{ 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I },
+	{ 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 }, 
+	{ 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
+};
+static const sal_uInt16 mso_sptDownArrowCalloutSegm[] =
+{
+	0x4000, 0x000a, 0x6001,	0x8000
+};
+static const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 1511 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1347 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] =
+{
+	{ 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I },
+	{ 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 },
+	{ 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I }
+};
+static const sal_uInt16 mso_sptUpArrowCalloutSegm[] =
+{
+	0x4000, 0x000a, 0x6001,	0x8000
+};
+static const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1308 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800
+{																// adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800
+	{ 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 },
+	{ 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 },
+	{ 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
+};
+static const sal_uInt16 mso_sptLeftArrowCalloutSegm[] =
+{
+	0x4000, 0x000a, 0x6001,	0x8000
+};
+static const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 1413 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1269 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] =	// adjustment1 : x 0 - 21000
+{																// adjustment2 : y 0 - 10800
+	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
+	{ 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I },
+	{ 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 }
+};
+static const sal_uInt16 mso_sptRightArrowCalloutSegm[] =
+{
+	0x4000, 0x000a, 0x6001,	0x8000
+};
+static const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 23 line (119 tokens) duplication in the following files: 
+Starting at line 534 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+Starting at line 623 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+        Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+        URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+        while ( pIter != m_aListenerMap.end() )
+        {
+            Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+            com::sun::star::util::URL aTargetURL;
+            aTargetURL.Complete = pIter->first;
+            xURLTransformer->parseStrict( aTargetURL );
+
+            Reference< XDispatch > xDispatch( pIter->second );
+            if ( xDispatch.is() )
+            {
+                // We already have a dispatch object => we have to requery.
+                // Release old dispatch object and remove it as listener
+                try
+                {
+                    xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+                }
+                catch ( Exception& )
+                {
+                }
+            }
+            pIter->second.clear();
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/valueacc.cxx
+Starting at line 798 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/valueacc.cxx
+
+void ValueItemAcc::FireAccessibleEvent( short nEventId, const uno::Any& rOldValue, const uno::Any& rNewValue )
+{
+    if( nEventId )
+    {
+        ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > >                  aTmpListeners( mxEventListeners );
+        ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > >::const_iterator  aIter( aTmpListeners.begin() );
+        accessibility::AccessibleEventObject                                                        aEvtObject;
+
+        aEvtObject.EventId = nEventId;
+        aEvtObject.Source = static_cast<uno::XWeak*>(this);
+        aEvtObject.NewValue = rNewValue;
+	    aEvtObject.OldValue = rOldValue;
+
+		while( aIter != aTmpListeners.end() )
+        {
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 780 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/plugin.cxx
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/inplace/plugin.cxx
+
+		xStm->SetVersion( pStor->GetVersion() );
+		xStm->SetBufferSize( 8192 );
+
+		*xStm << (BYTE)PLUGIN_VERS;
+		*xStm << nPlugInMode;
+		*xStm << aCmdList;
+		if( pURL )
+		{
+			*xStm << (BYTE)TRUE;
+            String aURL = pURL->GetMainURL( INetURLObject::NO_DECODE );
+            if( aURL.Len() )
+                aURL = so3::StaticBaseUrl::AbsToRel( aURL );
+			xStm->WriteByteString( aURL, RTL_TEXTENCODING_ASCII_US );
+		}
+		else
+			*xStm << (BYTE)FALSE;
+		xStm->WriteByteString( GetMimeType(), RTL_TEXTENCODING_ASCII_US );
+
+		return xStm->GetError() == ERRCODE_NONE;
+	}
+	return FALSE;
+}
+=====================================================================
+Found a 17 line (119 tokens) duplication in the following files: 
+Starting at line 808 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/drawview.cxx
+Starting at line 831 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/drawview.cxx
+
+void ScDrawView::StoreCaptionDimensions()
+{
+    SdrObject* pObj = NULL;
+    const SdrMarkList&	rMarkList	= GetMarkedObjectList();
+
+    if( rMarkList.GetMarkCount() == 1 )
+        pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+
+    if ( pObj && pObj->GetLayer() == SC_LAYER_INTERN && pObj->ISA(SdrCaptionObj) )
+    {
+        ScAddress aTabPos;
+        ScDrawObjData* pData = ScDrawLayer::GetObjData( pObj );
+        if( pData )
+            aTabPos = pData->aStt;
+        ScPostIt aNote(pDoc);
+        if(pDoc->GetNote( aTabPos.Col(), aTabPos.Row(), aTabPos.Tab(), aNote ))
+        {
+=====================================================================
+Found a 20 line (119 tokens) duplication in the following files: 
+Starting at line 598 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+
+	pDoc->SetOutlineTable( nTab, pUndoTable );
+
+	//	Original Spalten-/Zeilenstatus
+
+	if (pUndoDoc && pUndoTable)
+	{
+		SCCOLROW nStartCol;
+		SCCOLROW nStartRow;
+		SCCOLROW nEndCol;
+		SCCOLROW nEndRow;
+		pUndoTable->GetColArray()->GetRange( nStartCol, nEndCol );
+		pUndoTable->GetRowArray()->GetRange( nStartRow, nEndRow );
+
+        pUndoDoc->CopyToDocument( static_cast<SCCOL>(nStartCol), 0, nTab,
+                static_cast<SCCOL>(nEndCol), MAXROW, nTab, IDF_NONE, FALSE,
+                pDoc);
+		pUndoDoc->CopyToDocument( 0, nStartRow, nTab, MAXCOL, nEndRow, nTab, IDF_NONE, FALSE, pDoc );
+
+		pViewShell->UpdateScrollBars();
+	}
+=====================================================================
+Found a 21 line (119 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/anyrefdg.cxx
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/anyrefdg.cxx
+
+void lcl_InvalidateWindows()
+{
+	TypeId aType(TYPE(ScDocShell));
+	ScDocShell* pDocShell = (ScDocShell*)SfxObjectShell::GetFirst(&aType);
+	while( pDocShell )
+	{
+		SfxViewFrame* pFrame = SfxViewFrame::GetFirst( pDocShell );
+		while( pFrame )
+		{
+			//	#71577# enable everything except InPlace, including bean frames
+            if ( !pFrame->GetFrame()->IsInPlace() )
+			{
+				SfxViewShell* p = pFrame->GetViewShell();
+				ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell,p);
+				if(pViewSh!=NULL)
+				{
+					Window *pWin=pViewSh->GetWindow();
+					if(pWin)
+					{
+						Window *pParent=pWin->GetParent();
+						if(pParent)
+=====================================================================
+Found a 17 line (119 tokens) duplication in the following files: 
+Starting at line 817 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column3.cxx
+Starting at line 863 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column3.cxx
+
+					{
+						BOOL bDoIns = FALSE;
+						USHORT nMask = nFlags & ( IDF_DATETIME | IDF_VALUE );
+						if ( nMask == (IDF_DATETIME | IDF_VALUE) )
+							bDoIns = TRUE;
+						else if ( nMask )
+						{
+							ULONG nNumIndex = (ULONG)((SfxUInt32Item*) GetAttr(
+									pItems[nIndex].nRow, ATTR_VALUE_FORMAT ))->GetValue();
+							short nTyp = pDocument->GetFormatTable()->GetType(nNumIndex);
+							if (nTyp == NUMBERFORMAT_DATE || nTyp == NUMBERFORMAT_TIME || nTyp == NUMBERFORMAT_DATETIME)
+								bDoIns = (nFlags & IDF_DATETIME)!=0;
+							else
+								bDoIns = (nFlags & IDF_VALUE)!=0;
+						}
+
+						if (bDoIns)
+=====================================================================
+Found a 16 line (119 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column2.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column2.cxx
+
+BOOL lcl_RemoveThis( ScDocument* pDocument, SCCOL nCol, SCROW nRow, SCTAB nTab )
+{
+	ScDBCollection* pDBColl = pDocument->GetDBCollection();
+	if ( pDBColl )
+	{
+		USHORT nCount = pDBColl->GetCount();
+		for (USHORT i=0; i<nCount; i++)
+		{
+			ScDBData* pData = (*pDBColl)[i];
+			if ( pData->IsStripData() &&
+					pData->HasImportParam() && !pData->HasImportSelection() )
+			{
+				ScRange aDBRange;
+				pData->GetArea(aDBRange);
+				if ( nTab == aDBRange.aStart.Tab() &&
+					 nCol >= aDBRange.aStart.Col() && nCol <= aDBRange.aEnd.Col() &&
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 1216 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+Starting at line 1460 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+
+                new OUStringBuffer(kSInt32Max), sal_False }
+#endif
+	};
+
+
+    sal_Bool res = sal_True;
+    sal_Int32 i;
+
+    for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+        arrTestCase[i].input1->append( 
+                    arrTestCase[i].input2 );
+        sal_Bool lastRes = 
+            ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) && 
+              arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
+
+        c_rtl_tres_state
+        (
+            hRtlTestResult,
+            lastRes,
+            arrTestCase[i].comments,
+            createName( pMeth, "append( sal_Bool b)_004", i )
+=====================================================================
+Found a 40 line (119 tokens) duplication in the following files: 
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_DatagramSocket.cxx
+Starting at line 3681 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+			::osl::SocketAddr saListenSocketAddr2( aHostIp2, IP_PORT_MYPORT10 );
+			::osl::DatagramSocket dsSocket;
+			
+			dsSocket.enableNonBlockingMode( sal_True );
+
+			sal_Char pReadBuffer[30];
+			//sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
+			
+			// will block ?
+			CloseSocketThread myThread( dsSocket );
+			myThread.create();
+			sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
+			myThread.join();
+			//t_print("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 );
+			CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.", 
+				 nRecv2 == -1 );	
+		}	
+		
+		CPPUNIT_TEST_SUITE( sendTo_recvFrom );
+		CPPUNIT_TEST( sr_001 );
+		CPPUNIT_TEST( sr_002 );
+		CPPUNIT_TEST( sr_003 );
+		CPPUNIT_TEST( sr_004 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class sendTo_recvFrom
+	
+// -----------------------------------------------------------------------------
+
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_DatagramSocket::ctors, "osl_DatagramSocket"); 
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_DatagramSocket::sendTo_recvFrom, "osl_DatagramSocket"); 
+
+} // namespace osl_DatagramSocket
+
+
+// -----------------------------------------------------------------------------
+
+// this macro creates an empty function, which will called by the RegisterAllFunctions()
+// to let the user the possibility to also register some functions by hand.
+NOADDITIONAL;
+=====================================================================
+Found a 28 line (119 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_ConnectorSocket.cxx
+Starting at line 3239 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+			::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
+			::osl::StreamSocket ssConnection;
+			
+			/// launch server socket 
+			asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			
+			//asAcceptorSocket.enableNonBlockingMode( sal_True );
+			//oslSocketResult eResultAccept = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
+			//CPPUNIT_ASSERT_MESSAGE( "accept failed.",  osl_Socket_Ok == eResultAccept );
+			/// launch client socket 
+			oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout );   /// connecting to server...
+			CPPUNIT_ASSERT_MESSAGE( "connect failed.",  osl_Socket_Ok == eResult );
+
+			/// get peer information
+			csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
+			
+			CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.", 
+									( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) &&
+									( osl_Socket_Ok == eResult ));
+		}
+		//non-blocking mode connect?
+		void connect_002()
+		{
+			::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
+=====================================================================
+Found a 31 line (119 tokens) duplication in the following files: 
+Starting at line 4043 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 4796 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+
+		::osl::FileBase::RC      nError1, nError2;
+		sal_uInt64 nCount_write, nCount_read;
+		
+	    public:
+		// initialization
+		void setUp( )
+		{
+			// create a tempfile in $TEMP/tmpdir/tmpname.
+			createTestDirectory( aTmpName3 );
+			createTestFile( aTmpName4 );
+			
+			//write chars into the file. 
+			::osl::File testFile( aTmpName4 );
+			
+			nError1 = testFile.open( OpenFlag_Write );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+			nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+ 			nError1 = testFile.close( );
+			CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
+		}
+
+		void tearDown( )
+		{
+			// remove the tempfile in $TEMP/tmpdir/tmpname.
+			deleteTestFile( aTmpName4 );
+			deleteTestDirectory( aTmpName3 );
+		}
+
+		// test code.
+		void move_001( )
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file_url.cxx
+Starting at line 521 of /local/ooo-build/ooo-build/src/oog680-m3/sal/rtl/source/uri.cxx
+
+       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Uric */
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* !"#$%&'()*+,-./*/
+         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, /*0123456789:;<=>?*/
+=====================================================================
+Found a 26 line (119 tokens) duplication in the following files: 
+Starting at line 443 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/zippackage/ZipPackageStream.cxx
+Starting at line 476 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/zippackage/ZipPackageStream.cxx
+
+			return rZipPackage.getZipFile().getInputStream( aEntry, xEncryptionData, bIsEncrypted );
+		}
+		else if ( GetOwnSeekStream().is() )
+		{
+			if ( !m_aSharedMutexRef.Is() )
+				m_aSharedMutexRef = new SotMutexHolder();
+			return new WrapStreamForShare( GetOwnSeekStream(), m_aSharedMutexRef );
+		}
+		else
+			return Reference < io::XInputStream > ();
+	}
+	catch (ZipException &)//rException)
+	{
+		VOS_ENSURE( 0,"ZipException thrown");//rException.Message);
+		return Reference < io::XInputStream > ();
+	}
+	catch (Exception &)
+	{
+		VOS_ENSURE( 0, "Exception is thrown during stream wrapping!\n");
+		return Reference < io::XInputStream > ();
+	}
+}
+
+// XDataSinkEncrSupport
+//--------------------------------------------------------------------------
+Reference< io::XInputStream > SAL_CALL ZipPackageStream::getDataStream()
+=====================================================================
+Found a 9 line (119 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 19 line (119 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+Starting at line 562 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+
+    virtual Reference < XInputStream > SAL_CALL getInputStream(void)
+		throw (RuntimeException);
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference < XConnectable > & aPredecessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getPredecessor(void)
+		throw (RuntimeException);
+    virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw (RuntimeException);
+
+public: // XServiceInfo
+    OUString                     SAL_CALL getImplementationName() throw ();
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw ();
+    sal_Bool                         SAL_CALL  supportsService(const OUString& ServiceName) throw ();
+
+private:
+	void checkMarksAndFlush();
+=====================================================================
+Found a 19 line (119 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+
+	virtual Reference < XOutputStream > SAL_CALL getOutputStream(void) throw (RuntimeException);
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference < XConnectable >& aPredecessor)
+		throw (RuntimeException);
+	virtual Reference < XConnectable > SAL_CALL getPredecessor(void)
+		throw (RuntimeException);
+	virtual void SAL_CALL setSuccessor(const Reference < XConnectable >& aSuccessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getSuccessor(void)
+		throw (RuntimeException);
+
+public: // XServiceInfo
+    OUString                     SAL_CALL getImplementationName() throw ();
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw ();
+    sal_Bool                     SAL_CALL supportsService(const OUString& ServiceName) throw ();
+
+protected:
+	Reference < XConnectable > 	m_succ;
+=====================================================================
+Found a 25 line (119 tokens) duplication in the following files: 
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/astunion.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/astunion.cxx
+
+	pDecl = NULL;
+
+	while ( iter != end ) 
+	{
+		pDecl = *iter;
+		if ( pDecl->getNodeType() == NT_union_branch ) 
+		{
+			pB = (AstUnionBranch*)pDecl;
+			if ( !pB ) 
+			{
+				++iter;
+				continue;
+			}
+			if ( pB->getLabel() != NULL &&
+				 pB->getLabel()->getLabelKind() == UL_label &&
+				 pB->getLabel()->getLabelValue()->compare(pLabel->getLabelValue()) ) 
+			{
+				idlc()->error()->error2(EIDL_MULTIPLE_BRANCH, this, pBranch);
+				return pBranch;
+			}
+		}
+	    ++iter;
+	}
+	return NULL;
+}	
+=====================================================================
+Found a 5 line (119 tokens) duplication in the following files: 
+Starting at line 1554 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 1338 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0,10,10,10,10,10,10,10,// 2610 - 261f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2620 - 262f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2630 - 263f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2640 - 264f
+=====================================================================
+Found a 60 line (119 tokens) duplication in the following files: 
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+        0, // POINTER_AIRBRUSH
+        0, // POINTER_TEXT_VERTICAL
+        0, // POINTER_PIVOT_DELETE
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c10 - 0c1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c20 - 0c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,// 0c30 - 0c3f
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 1078 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0980 - 098f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0990 - 099f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 09a0 - 09af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 09b0 - 09bf
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 1078 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1085 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0900 - 090f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0910 - 091f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0920 - 092f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0930 - 093f
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0980 - 098f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0990 - 099f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 09a0 - 09af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 09b0 - 09bf
+=====================================================================
+Found a 5 line (119 tokens) duplication in the following files: 
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+=====================================================================
+Found a 5 line (119 tokens) duplication in the following files: 
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,27,27,27,27, 0,27,27,27,27, 0, 0,27,27,27,27,// 2700 - 270f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2710 - 271f
+    27,27,27,27,27,27,27,27, 0,27,27,27,27,27,27,27,// 2720 - 272f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2730 - 273f
+    27,27,27,27,27,27,27,27,27,27,27,27, 0,27, 0,27,// 2740 - 274f
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 897 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 16 line (119 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/search/textsearch.cxx
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/search/textsearch.cxx
+
+	sres2 = (this->*fnBackward)( in_str, startPos, endPos );
+
+        for( int k = 0; k < sres2.startOffset.getLength(); k++ )
+        {
+            if (sres2.startOffset[k])
+                sres2.startOffset[k] = offset[sres2.startOffset[k]-1]+1;
+            if (sres2.endOffset[k])
+                sres2.endOffset[k] = offset[sres2.endOffset[k]-1]+1;
+        }
+
+	// pick last and long one
+	if ( sres.subRegExpressions == 0 )
+	    return sres2;
+	if ( sres2.subRegExpressions == 1 )
+	{
+	    if ( sres.startOffset[0] < sres2.startOffset[0] )
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1280 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f80 - 1f8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1f90 - 1f9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1fa0 - 1faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0,10,// 1fb0 - 1fbf
+=====================================================================
+Found a 4 line (119 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27, 0,27,27,27, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+=====================================================================
+Found a 7 line (119 tokens) duplication in the following files: 
+Starting at line 306 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+
+     5,     6,     7,     8,     9,    10,    11,    12,     0,     0,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+     0,     0,    23,     0,    24,    25,    26,     0,    27,     0,
+     0,     0,    81,     1,     2,     3,     4,     5,     6,     7,
+     8,     9,    10,    11,    12,     0,     0,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,     0,     0,    23,
+     0,    24,    25,    26,     0,    27,     0,     0,     0,    97,
+=====================================================================
+Found a 10 line (119 tokens) duplication in the following files: 
+Starting at line 1132 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipict/ipict.cxx
+Starting at line 1364 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ipict/ipict.cxx
+
+		*pPict >> nUSHORT;
+		if      (nUSHORT <=    1) aActFont.SetFamily(FAMILY_SWISS);
+		else if (nUSHORT <=   12) aActFont.SetFamily(FAMILY_DECORATIVE);
+		else if (nUSHORT <=   20) aActFont.SetFamily(FAMILY_ROMAN);
+		else if (nUSHORT ==   21) aActFont.SetFamily(FAMILY_SWISS);
+		else if (nUSHORT ==   22) aActFont.SetFamily(FAMILY_MODERN);
+		else if (nUSHORT <= 1023) aActFont.SetFamily(FAMILY_SWISS);
+		else                      aActFont.SetFamily(FAMILY_ROMAN);
+		if (nUSHORT==23) aActFont.SetCharSet( RTL_TEXTENCODING_SYMBOL);
+		else aActFont.SetCharSet( gsl_getSystemTextEncoding() );
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epbm/dlgepbm.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epgm/dlgepgm.cxx
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eppm/dlgeppm.cxx
+
+				ModalDialog			( rPara.pWindow, ResId( DLG_EXPORT_EPPM, *rPara.pResMgr ) ),
+				rFltCallPara		( rPara ),
+				aGrpFormat			( this, ResId( GRP_FORMAT, *rPara.pResMgr ) ),
+				aRBRaw				( this, ResId( RB_RAW, *rPara.pResMgr ) ),
+				aRBASCII			( this, ResId( RB_ASCII, *rPara.pResMgr ) ),
+				aBtnOK				( this, ResId( BTN_OK, *rPara.pResMgr ) ),
+				aBtnCancel			( this, ResId( BTN_CANCEL, *rPara.pResMgr ) ),
+				aBtnHelp			( this, ResId( BTN_HELP, *rPara.pResMgr ) ),
+				pMgr				( rPara.pResMgr )
+{
+	FreeResource();
+
+	// Config-Parameter lesen
+
+	String	aFilterConfigPath( RTL_CONSTASCII_USTRINGPARAM( "Office.Common/Filter/Graphic/Export/PPM" ) );
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/eventsconfiguration.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesconfiguration.cxx
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	//return Reference< XParser >( xServiceManager->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+	return Reference< XParser >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	//return Reference< XDocumentHandler >( xServiceManager->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ImagesConfiguration::LoadImages( 
+=====================================================================
+Found a 14 line (119 tokens) duplication in the following files: 
+Starting at line 2523 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 2906 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+
+            rUIElement.m_aDockedData.m_aPos.X() = nPosX;
+        }
+        else
+        {
+            sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ),
+                                                        sal_Int32( nMaxLeftRightDockAreaSize ));
+
+            sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
+            if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
+                nPosY = std::min( nPosY,
+                                std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
+                                        sal_Int32( nTopDockingAreaSize )));
+
+            sal_Int32 nSize = std::min( nMaxDockingAreaHeight, static_cast<sal_Int32>(aTrackingRect.getHeight()) );
+=====================================================================
+Found a 24 line (119 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/eventsconfiguration.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/imagesconfiguration.cxx
+
+static Reference< XParser > GetSaxParser(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	// #110897#
+	// Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	return Reference< XParser >( xServiceFactory->createInstance(
+		::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )), UNO_QUERY);
+}
+
+static Reference< XDocumentHandler > GetSaxWriter(
+	// #110897#
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+	)
+{
+	// #110897#
+	//Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
+	return Reference< XDocumentHandler >( xServiceFactory->createInstance(
+		::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )),  UNO_QUERY) ;
+}
+
+// #110897#
+sal_Bool ImagesConfiguration::LoadImages( 
+=====================================================================
+Found a 9 line (119 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 1283 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1660 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+
+                const BYTE* 				pData = pA->GetData();
+				String						aSkipComment;
+
+				if( pA->GetComment().CompareIgnoreCaseToAscii( "XGRAD_SEQ_BEGIN" ) == COMPARE_EQUAL )
+				{
+					const MetaGradientExAction*	pGradAction = NULL;
+					sal_Bool					bDone = sal_False;
+
+					while( !bDone && ( ++i < nCount ) )
+					{
+						pAction = rMtf.GetAction( i );
+
+						if( pAction->GetType() == META_GRADIENTEX_ACTION )
+							pGradAction = (const MetaGradientExAction*) pAction;
+						else if( ( pAction->GetType() == META_COMMENT_ACTION ) && 
+								 ( ( (const MetaCommentAction*) pAction )->GetComment().CompareIgnoreCaseToAscii( "XGRAD_SEQ_END" ) == COMPARE_EQUAL ) )
+						{
+							bDone = sal_True;
+						}
+					}
+
+					if( pGradAction )
+=====================================================================
+Found a 9 line (119 tokens) duplication in the following files: 
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olecomponent.cxx
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xdialogcreator.cxx
+
+				sal_uInt8* pBuf = (sal_uInt8*)( aMetafile.getArray() );
+				*( (long* )pBuf ) = 0x9ac6cdd7L;
+				*( (short* )( pBuf+6 )) = ( SHORT ) 0;
+				*( (short* )( pBuf+8 )) = ( SHORT ) 0;
+				*( (short* )( pBuf+10 )) = ( SHORT ) pMF->xExt;
+				*( (short* )( pBuf+12 )) = ( SHORT ) pMF->yExt;
+				*( (short* )( pBuf+14 )) = ( USHORT ) 2540;
+
+				if ( nBufSize && nBufSize == GetMetaFileBitsEx( pMF->hMF, nBufSize, pBuf+22 ) )
+=====================================================================
+Found a 13 line (119 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CDriver.cxx
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDriver.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/EDriver.cxx
+
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >  SAL_CALL connectivity::flat::ODriver_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception )
+{
+	return *(new ODriver(_rxFactory));
+}
+// --------------------------------------------------------------------------------
+Reference< XConnection > SAL_CALL ODriver::connect( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if (ODriver_BASE::rBHelper.bDisposed)
+       throw DisposedException();
+
+	if ( ! acceptsURL(url) )
+		return NULL;
+=====================================================================
+Found a 20 line (119 tokens) duplication in the following files: 
+Starting at line 1958 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 2113 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+												  const ::rtl::OUString& table,
+												  const ::rtl::OUString& columnNamePattern )
+{
+	// Create elements used in the array
+	HRESULT hr = S_OK;
+	SAFEARRAYBOUND rgsabound[1];
+	SAFEARRAY *psa = NULL;
+	OLEVariant varCriteria[4];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schema.getLength() && schema.toChar() != '%')
+=====================================================================
+Found a 43 line (119 tokens) duplication in the following files: 
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgupdate.cxx
+
+	::flush(cout);
+}
+
+// -----------------------------------------------------------------------------
+// ---------------------------------- M A I N ----------------------------------
+// -----------------------------------------------------------------------------
+
+#if (defined UNX) || (defined OS2)
+int main( int argc, char * argv[] )
+#else
+int _cdecl main( int argc, char * argv[] )
+#endif
+{
+	TimeValue aTimeout;
+	aTimeout.Seconds = 5;
+	aTimeout.Nanosec = 0;
+
+	// cout << "    Please insert Text: ";
+	// cout.flush();
+	// OString aTxt = input("Der Text", 0);
+	// cout << endl << "You inserted: " << aTxt.getStr() << endl;
+	// 
+	// cout << "Please insert Password: ";
+	// cout.flush();
+	// OString aPasswd = input("", '*');
+	// cout << endl << "You inserted: " << aPasswd.getStr() << endl;
+
+	try
+	{
+		OUString const sServiceRegistry = OUString::createFromAscii( argc > 1 ? argv[1] : "applicat.rdb" );
+		Reference< XMultiServiceFactory > xORB = createRegistryServiceFactory(
+			sServiceRegistry,
+			::rtl::OUString()
+			);
+		if (!xORB.is())
+		{
+			::flush(cout);
+			cerr << "Could not create the service factory !\n\n";
+			return 1;
+		}
+		cout << "Service factory created !\n---------------------------------------------------------------" << endl;
+
+		Sequence< Any > aCPArgs;
+=====================================================================
+Found a 27 line (119 tokens) duplication in the following files: 
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+=====================================================================
+Found a 9 line (119 tokens) duplication in the following files: 
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+    * p++ = 0x9061e0bc;
+    * p++ = 0x3c600000 | (((unsigned long)cpp_vtable_call) >> 16);
+    * p++ = 0x60630000 | (((unsigned long)cpp_vtable_call) & 0x0000FFFF);
+    * p++ = 0x7c6903a6;
+    * p++ = 0x3c600000 | (((unsigned long)functionIndex) >> 16);
+    * p++ = 0x60630000 | (((unsigned long)functionIndex) & 0x0000FFFF);
+    * p++ = 0x3c800000 | (((unsigned long)vtableOffset) >> 16);
+    * p++ = 0x60840000 | (((unsigned long)vtableOffset) & 0x0000FFFF);
+    * p++ = 0x38a1e0c0;
+=====================================================================
+Found a 25 line (119 tokens) duplication in the following files: 
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if ( pUnoExc )
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any
+=====================================================================
+Found a 19 line (119 tokens) duplication in the following files: 
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 322 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+			{
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+			
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
+                        &pInterface, pTD, cpp_acquire );
+=====================================================================
+Found a 13 line (119 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c
+
+static void ThrowException(JNIEnv * env, char const * type, char const * msg) {
+    jclass c;
+    (*env)->ExceptionClear(env);
+    c = (*env)->FindClass(env, type);
+    if (c == NULL) {
+        (*env)->ExceptionClear(env);
+        (*env)->FatalError(env, "JNI FindClass failed");
+    }
+    if ((*env)->ThrowNew(env, c, msg) != 0) {
+        (*env)->ExceptionClear(env);
+        (*env)->FatalError(env, "JNI ThrowNew failed");
+    }
+}
+=====================================================================
+Found a 22 line (119 tokens) duplication in the following files: 
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxobj.cxx
+Starting at line 600 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxobj.cxx
+
+void SbxObject::VCPtrInsert( SbxVariable* pVar )
+{
+	SbxArray* pArray = NULL;
+	if( pVar )
+	{
+		switch( pVar->GetClass() )
+		{
+			case SbxCLASS_VARIABLE:
+			case SbxCLASS_PROPERTY: pArray = pProps;	break;
+			case SbxCLASS_METHOD: 	pArray = pMethods;	break;
+			case SbxCLASS_OBJECT: 	pArray = pObjs;		break;
+			default:
+				DBG_ASSERT( !this, "Ungueltige SBX-Klasse" );
+		}
+	}
+	if( pArray )
+	{
+		StartListening( pVar->GetBroadcaster(), TRUE );
+		pArray->Put( pVar, pArray->Count() );
+		if( pVar->GetParent() != this )
+			pVar->SetParent( this );
+		SetModified( TRUE );
+=====================================================================
+Found a 15 line (119 tokens) duplication in the following files: 
+Starting at line 477 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+Starting at line 539 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+
+	if ( aCurPath.Len() )
+		xFP->setDisplayDirectory ( aCurPath );
+
+	//xFP->setTitle( String( IDEResId( RID_STR_SAVE ) ) );
+
+    Reference< XFilterManager > xFltMgr(xFP, UNO_QUERY);
+	xFltMgr->appendFilter( String( RTL_CONSTASCII_USTRINGPARAM( "BASIC" ) ), String( RTL_CONSTASCII_USTRINGPARAM( "*.bas" ) ) );
+	xFltMgr->appendFilter( String( IDEResId( RID_STR_FILTER_ALLFILES ) ), String( RTL_CONSTASCII_USTRINGPARAM( FILTERMASK_ALL ) ) );
+	xFltMgr->setCurrentFilter( String( RTL_CONSTASCII_USTRINGPARAM( "BASIC" ) ) );
+
+    if( xFP->execute() == RET_OK )
+	{
+		Sequence< ::rtl::OUString > aPaths = xFP->getFiles();
+		aCurPath = aPaths[0];
+		SfxMedium aMedium( aCurPath, STREAM_WRITE | STREAM_SHARE_DENYWRITE | STREAM_TRUNC, TRUE, FALSE );
+=====================================================================
+Found a 8 line (119 tokens) duplication in the following files: 
+Starting at line 3937 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 4000 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+				if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+					pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r FloatingWindows
+				if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+					pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r TabDialoge
+				if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+					pControl = pControl->GET_REAL_PARENT();		// Sonderbehandlung f�r Border
+                if ( (nParams & PARAM_BOOL_1) && bBool1 )
+                    pControl = pControl->GetWindow( WINDOW_OVERLAP );
+=====================================================================
+Found a 32 line (118 tokens) duplication in the following files: 
+Starting at line 20176 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 20655 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+     case OOXML_ATTRIBUTE_wordprocessingml_color:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_HexColor(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_themeColor:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_ThemeColor(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_themeTint:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_UcharHexNumber(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+     case OOXML_ATTRIBUTE_wordprocessingml_themeShade:
+        {
+          OOXMLValue::Pointer_t pVal(new OOXMLValue_wordprocessingml_ST_UcharHexNumber(rValue));
+          newProperty(nToken, pVal);
+
+          bResult = true;
+        }
+      break;
+=====================================================================
+Found a 21 line (118 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_gray.h
+Starting at line 282 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr  = m_wrap_mode_y(y >> image_subpixel_shift);
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                               ry_inv) >> 
+                                   image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = m_wrap_mode_x(x_lr_ini);
+                    int x_hr = x_hr_ini;
+                    const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+                    do
+                    {
+                        const value_type* fg_ptr = row_ptr + (x_lr << 2);
+=====================================================================
+Found a 20 line (118 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+
+            base_type(alloc, src, color_type(0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            calc_type fg;
+            color_type* span = base_type::allocator().span();
+=====================================================================
+Found a 20 line (118 tokens) duplication in the following files: 
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr = y >> image_subpixel_shift;
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                                base_type::m_ry_inv) >> 
+                                    image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   base_type::m_rx_inv) >> 
+                                       image_subpixel_shift;
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + (x_lr << 2);
+=====================================================================
+Found a 10 line (118 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 763 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                    if(fg[3] < 0) fg[3] = 0;
+
+                    if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                    if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                    if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                    if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+                }
+                else
+                {
+                    if(x_lr < start1 || y_lr < start1 ||
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOASISTContext.cxx
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/NotesTContext.cxx
+
+	OSL_ENSURE( pActions, "go no actions" );
+
+	Reference< XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+=====================================================================
+Found a 6 line (118 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/pivotdel_curs.h
+
+   0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+=====================================================================
+Found a 6 line (118 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawfreehand_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawtext_mask.h
+
+static char drawtext_mask_bits[] = {
+   0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
+   0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
+   0x80, 0x03, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0xff, 0xff, 0x01, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
+   0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0xc3, 0x1f, 0x00,
+=====================================================================
+Found a 6 line (118 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 34 line (118 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydata.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/provider/provconf.cxx
+
+                rtl::OUStringBuffer & rBuffer, const rtl::OUString & rIn )
+{
+    sal_Int32 nCount = rIn.getLength();
+    for ( sal_Int32 n = 0; n < nCount; ++n )
+    {
+        const sal_Unicode c = rIn.getStr()[ n ];
+        switch ( c )
+        {
+            case '&':
+                rBuffer.appendAscii( "&amp;" );
+                break;
+
+            case '"':
+                rBuffer.appendAscii( "&quot;" );
+                break;
+
+            case '\'':
+                rBuffer.appendAscii( "&apos;" );
+                break;
+
+            case '<':
+                rBuffer.appendAscii( "&lt;" );
+                break;
+
+            case '>':
+                rBuffer.appendAscii( "&gt;" );
+                break;
+
+            default:
+                rBuffer.append( c );
+                break;
+        }
+    }
+}
+=====================================================================
+Found a 19 line (118 tokens) duplication in the following files: 
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/urltest.cxx
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/urltest.cxx
+
+				"vnd.sun.star.cmd:log[out]" };
+		for (std::size_t i = 0; i < sizeof aTest / sizeof aTest[0]; ++i)
+		{
+			INetURLObject aUrl(aTest[i]);
+			if (aUrl.HasError())
+				printf("BAD %s\n", aTest[i]);
+			else if (aUrl.GetMainURL(INetURLObject::DECODE_TO_IURI).
+                         equalsAscii(aTest[i]) != sal_True)
+			{
+				String sTest(aUrl.GetMainURL(INetURLObject::DECODE_TO_IURI));
+				printf("BAD %s -> %s\n",
+					   aTest[i],
+					   ByteString(sTest, RTL_TEXTENCODING_ASCII_US).GetBuffer());
+			}
+		}
+	}
+
+	if (true)
+	{
+=====================================================================
+Found a 22 line (118 tokens) duplication in the following files: 
+Starting at line 946 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 990 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+                aSynAbsURIRef.appendAscii(RTL_CONSTASCII_STRINGPARAM("//"));
+				rtl::OUStringBuffer aSynAuthority;
+				while (pPos < pEnd
+					   && *pPos != '/' && *pPos != '?'
+					   && *pPos != nFragmentDelimiter)
+				{
+					EscapeType eEscapeType;
+					sal_uInt32 nUTF32 = getUTF32(pPos, pEnd, bOctets,
+												 cEscapePrefix, eMechanism,
+												 eCharset, eEscapeType);
+					appendUCS4(aSynAuthority, nUTF32, eEscapeType, bOctets,
+							   PART_AUTHORITY, cEscapePrefix, eCharset,
+							   false);
+				}
+				if (aSynAuthority.getLength() == 0)
+				{
+					setInvalid();
+					return false;
+				}
+				m_aHost.set(aSynAbsURIRef,
+							aSynAuthority.makeStringAndClear(),
+							aSynAbsURIRef.getLength());
+=====================================================================
+Found a 19 line (118 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/flddok.cxx
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/fldvar.cxx
+
+			nTypeId = TYP_INPUTFLD;
+		nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(GetFldMgr().GetPos(nTypeId)));
+		aTypeLB.SetEntryData(nPos, (void*)nTypeId);
+        aNumFormatLB.SetAutomaticLanguage(pCurField->IsAutomaticLanguage());
+        SwWrtShell *pSh = GetWrtShell();
+        if(!pSh)
+            pSh = ::GetActiveWrtShell();
+        if(pSh)
+        {        
+            const SvNumberformat* pFormat = pSh->GetNumberFormatter()->GetEntry(pCurField->GetFormat());
+            if(pFormat)
+                aNumFormatLB.SetLanguage(pFormat->GetLanguage());
+        }
+    }
+
+	// alte Pos selektieren
+	RestorePos(&aTypeLB);
+
+	aTypeLB.SetDoubleClickHdl		(LINK(this, SwFldVarPage, InsertHdl));
+=====================================================================
+Found a 11 line (118 tokens) duplication in the following files: 
+Starting at line 1103 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww1/w1filter.cxx
+Starting at line 1545 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww1/w1filter.cxx
+
+	W1_DOP& rDOP = GetDOP();
+	rOut.GetPageDesc().SetLandscape(rDOP.fWideGet());
+	SwFmtFrmSize aSz(rFmt.GetFrmSize());
+	aSz.SetWidth(rDOP.xaPageGet());
+	aSz.SetHeight(rDOP.yaPageGet());
+	rFmt.SetAttr(aSz);
+	SvxLRSpaceItem aLR(rDOP.dxaLeftGet()+rDOP.dxaGutterGet(),
+     rDOP.dxaRightGet(), 0, 0, RES_LR_SPACE);
+	rFmt.SetAttr(aLR);
+    SvxULSpaceItem aUL(rDOP.dyaTopGet(), rDOP.dyaBottomGet(), RES_UL_SPACE);
+	rFmt.SetAttr(aUL);
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 1099 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unosect.cxx
+
+    uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+    SwXTextRange* pRange = 0;
+    OTextCursorHelper* pCursor = 0;
+    if(xRangeTunnel.is())
+    {
+        pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+                                SwXTextRange::getUnoTunnelId());
+        pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+                                OTextCursorHelper::getUnoTunnelId());
+    }
+
+    SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+    if(pDoc)
+    {
+        SwUnoInternalPaM aPam(*pDoc);
+        //das muss jetzt sal_True liefern
+        SwXTextRange::XTextRangeToSwPaM(aPam, xTextRange);
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+Starting at line 1490 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	if(!bIsDescriptor)
+		throw uno::RuntimeException();
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+
+	if(pDoc )
+	{
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoftn.cxx
+Starting at line 1099 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc )
+	{
+		SwUnoInternalPaM aPam(*pDoc);
+		//das muss jetzt sal_True liefern
+		SwXTextRange::XTextRangeToSwPaM(aPam, xTextRange);
+=====================================================================
+Found a 14 line (118 tokens) duplication in the following files: 
+Starting at line 1389 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unofield.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoftn.cxx
+
+	if(!m_bIsDescriptor)
+		throw uno::RuntimeException();
+	uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc)
+=====================================================================
+Found a 21 line (118 tokens) duplication in the following files: 
+Starting at line 1631 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+Starting at line 1790 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+
+BOOL lcl_RejectRedline( SwRedlineTbl& rArr, USHORT& rPos,
+						BOOL bCallDelete,
+						const SwPosition* pSttRng = 0,
+						const SwPosition* pEndRng = 0 )
+{
+	BOOL bRet = TRUE;
+	SwRedline* pRedl = rArr[ rPos ];
+	SwPosition *pRStt = 0, *pREnd = 0;
+	SwComparePosition eCmp = POS_OUTSIDE;
+	if( pSttRng && pEndRng )
+	{
+		pRStt = pRedl->Start();
+		pREnd = pRedl->End();
+		eCmp = ComparePosition( *pSttRng, *pEndRng, *pRStt, *pREnd );
+	}
+
+	pRedl->InvalidateRange();
+
+	switch( pRedl->GetType() )
+	{
+	case IDocumentRedlineAccess::REDLINE_INSERT:
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 395 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES
+
+		SPECIAL_3DBACKSCALE_PROPERTIES
+		MISC_3D_OBJ_PROPERTIES
+		FILL_PROPERTIES
+		LINE_PROPERTIES
+		LINE_PROPERTIES_START_END
+		SHAPE_DESCRIPTOR_PROPERTIES
+		MISC_OBJ_PROPERTIES
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return a3DExtrudeObjectPropertyMap_Impl;
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		FILL_PROPERTIES
+		LINE_PROPERTIES
+		LINE_PROPERTIES_START_END
+		SHAPE_DESCRIPTOR_PROPERTIES
+		MISC_OBJ_PROPERTIES
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		TEXT_PROPERTIES
+		// #FontWork#
+		FONTWORK_PROPERTIES
+		CUSTOMSHAPE_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aPolyPolygonBezierPropertyMap_Impl;
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		EDGERADIUS_PROPERTIES
+		FILL_PROPERTIES
+		LINE_PROPERTIES
+		LINE_PROPERTIES_START_END
+		SHAPE_DESCRIPTOR_PROPERTIES
+		MISC_OBJ_PROPERTIES
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		TEXT_PROPERTIES
+		// #FontWork#
+		FONTWORK_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aDimensioningPropertyMap_Impl;
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		FILL_PROPERTIES
+		LINE_PROPERTIES
+		LINE_PROPERTIES_START_END
+		SHAPE_DESCRIPTOR_PROPERTIES
+		MISC_OBJ_PROPERTIES
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		TEXT_PROPERTIES
+		// #FontWork#
+		FONTWORK_PROPERTIES
+		CUSTOMSHAPE_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aPolyPolygonPropertyMap_Impl;
+=====================================================================
+Found a 20 line (118 tokens) duplication in the following files: 
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdorect.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+void SdrTextObj::TakeObjInfo(SdrObjTransformInfoRec& rInfo) const
+{
+	FASTBOOL bNoTextFrame=!IsTextFrame();
+	rInfo.bResizeFreeAllowed=bNoTextFrame || aGeo.nDrehWink%9000==0;
+	rInfo.bResizePropAllowed=TRUE;
+	rInfo.bRotateFreeAllowed=TRUE;
+	rInfo.bRotate90Allowed  =TRUE;
+	rInfo.bMirrorFreeAllowed=bNoTextFrame;
+	rInfo.bMirror45Allowed  =bNoTextFrame;
+	rInfo.bMirror90Allowed  =bNoTextFrame;
+
+	// allow transparence
+	rInfo.bTransparenceAllowed = TRUE;
+
+	// gradient depends on fillstyle
+	XFillStyle eFillStyle = ((XFillStyleItem&)(GetObjectItem(XATTR_FILLSTYLE))).GetValue();
+	rInfo.bGradientAllowed = (eFillStyle == XFILL_GRADIENT);
+	rInfo.bShearAllowed     =bNoTextFrame;
+	rInfo.bEdgeRadiusAllowed=TRUE;
+	FASTBOOL bCanConv=ImpCanConvTextToCurve();
+=====================================================================
+Found a 15 line (118 tokens) duplication in the following files: 
+Starting at line 518 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxtr.cxx
+
+	FASTBOOL bXMirr=(xFact.GetNumerator()<0) != (xFact.GetDenominator()<0);
+	FASTBOOL bYMirr=(yFact.GetNumerator()<0) != (yFact.GetDenominator()<0);
+	if (bXMirr || bYMirr) {
+		Point aRef1(GetSnapRect().Center());
+		if (bXMirr) {
+			Point aRef2(aRef1);
+			aRef2.Y()++;
+			NbcMirrorGluePoints(aRef1,aRef2);
+		}
+		if (bYMirr) {
+			Point aRef2(aRef1);
+			aRef2.X()++;
+			NbcMirrorGluePoints(aRef1,aRef2);
+		}
+	}
+=====================================================================
+Found a 16 line (118 tokens) duplication in the following files: 
+Starting at line 3480 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 2211 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const basegfx::B2DPolyPolygon& /*rPolyPolygon*/)
+{
+	// break up matrix
+	basegfx::B2DTuple aScale;
+	basegfx::B2DTuple aTranslate;
+	double fRotate, fShearX;
+	rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+
+	// #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+	// in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+	if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+	{
+		aScale.setX(fabs(aScale.getX()));
+		aScale.setY(fabs(aScale.getY()));
+		fRotate = fmod(fRotate + F_PI, F_2PI);
+	}
+=====================================================================
+Found a 15 line (118 tokens) duplication in the following files: 
+Starting at line 1991 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxtr.cxx
+
+	FASTBOOL bXMirr=(xFact.GetNumerator()<0) != (xFact.GetDenominator()<0);
+	FASTBOOL bYMirr=(yFact.GetNumerator()<0) != (yFact.GetDenominator()<0);
+	if (bXMirr || bYMirr) {
+		Point aRef1(GetSnapRect().Center());
+		if (bXMirr) {
+			Point aRef2(aRef1);
+			aRef2.Y()++;
+			NbcMirrorGluePoints(aRef1,aRef2);
+		}
+		if (bYMirr) {
+			Point aRef2(aRef1);
+			aRef2.X()++;
+			NbcMirrorGluePoints(aRef1,aRef2);
+		}
+	}
+=====================================================================
+Found a 16 line (118 tokens) duplication in the following files: 
+Starting at line 3700 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3480 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdobj.cxx
+
+void SdrObject::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const basegfx::B2DPolyPolygon& /*rPolyPolygon*/)
+{
+	// break up matrix
+	basegfx::B2DTuple aScale;
+	basegfx::B2DTuple aTranslate;
+	double fRotate, fShearX;
+	rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+
+	// #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+	// in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+	if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+	{
+		aScale.setX(fabs(aScale.getX()));
+		aScale.setY(fabs(aScale.getY()));
+		fRotate = fmod(fRotate + F_PI, F_2PI);
+	}
+=====================================================================
+Found a 28 line (118 tokens) duplication in the following files: 
+Starting at line 1535 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+Starting at line 1644 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+							basegfx::B2DPoint aPosition(aPos.X(), aPos.Y());
+
+							::sdr::overlay::OverlayObject* pNewOverlayObject = CreateOverlayObject(
+								aPosition, 
+								eColIndex,
+								eKindOfMarker);
+
+							// OVERLAYMANAGER
+							if(pNewOverlayObject)
+							{
+								rPageWindow.GetOverlayManager()->add(*pNewOverlayObject);
+								maOverlayGroup.append(*pNewOverlayObject);
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+}
+=====================================================================
+Found a 15 line (118 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/mnuctrls/SmartTagCtl.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/smartmenu/stmenu.cxx
+
+        const rtl::OUString aSmartTagCaption2 = aSmartTagCaption + C2U(": ") + aRangeText;
+        nSubMenuPos = 0;
+        pSbMenu->InsertItem( nMenuId++, aSmartTagCaption2, MIB_NOSELECT, nSubMenuPos++ );
+        pSbMenu->InsertSeparator( nSubMenuPos++ );
+
+        // Add subitem for every action reference for the current smart tag type:
+        for ( USHORT i = 0; i < rActionComponents.getLength(); ++i )
+        {
+            xAction = rActionComponents[i];
+
+            for ( sal_Int32 k = 0; k < xAction->getActionCount( aSmartTagType, xController ); ++k )
+            {
+                const sal_uInt32 nActionID = xAction->getActionID( aSmartTagType, k, xController  );
+                rtl::OUString aActionCaption = xAction->getActionCaptionFromID( nActionID,
+                                                                                aApplicationName,
+=====================================================================
+Found a 19 line (118 tokens) duplication in the following files: 
+Starting at line 1031 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmctrler.cxx
+Starting at line 1059 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmctrler.cxx
+
+        m_bDetachEvents = sal_False;
+        for (sal_Int32 i = nControls; i > 0;)
+        {
+            Reference< XControl > xControl = pControls[--i];
+            if (xControl.is())
+            {
+                Reference< XPropertySet >  xSet(xControl->getModel(), UNO_QUERY);
+                if (xSet.is() && ::comphelper::hasProperty(FM_PROP_BOUNDFIELD, xSet))
+                {
+                    // does the model use a bound field ?
+                    Reference< XPropertySet >  xField;
+                    xSet->getPropertyValue(FM_PROP_BOUNDFIELD) >>= xField;
+
+                    // is it a autofield?
+                    if  (   xField.is()
+                        &&  ::comphelper::hasProperty( FM_PROP_AUTOINCREMENT, xField )
+                        &&  ::comphelper::getBOOL( xField->getPropertyValue(FM_PROP_AUTOINCREMENT ) )
+                        )
+                    {
+=====================================================================
+Found a 27 line (118 tokens) duplication in the following files: 
+Starting at line 1877 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/swpossizetabpage.cxx
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/frmdlg/frmpage.cxx
+
+            String sEntry(aFramePosString.GetString(eStrId));
+			if (_rLB.GetEntryPos(sEntry) == LISTBOX_ENTRY_NOTFOUND)
+            {
+				// bei zeichengebundenen Rahmen keine doppelten Eintraege einfuegen
+                _rLB.InsertEntry(sEntry);
+            }
+            // OD 12.11.2003 #i22341# - add condition to handle map <aVCharMap>
+            // that is ambigous in the alignment.
+            if ( _pMap[i].nAlign == _nAlign &&
+                 ( !(_pMap == aVCharMap) || _pMap[i].nLBRelations & nLBRelations ) )
+            {
+				sSelEntry = sEntry;
+            }
+		}
+	}
+
+    _rLB.SelectEntry(sSelEntry);
+    if (!_rLB.GetSelectEntryCount())
+        _rLB.SelectEntry(sOldEntry);
+
+    if (!_rLB.GetSelectEntryCount())
+        _rLB.SelectEntryPos(0);
+
+    PosHdl(&_rLB);
+
+    return GetMapPos(_pMap, _rLB);
+}
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/_contdlg.cxx
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/imapdlg.cxx
+
+	SfxModelessDialog::Resize();
+
+	Size aMinSize( GetMinOutputSizePixel() );
+	Size aNewSize( GetOutputSizePixel() );
+
+	if ( aNewSize.Height() >= aMinSize.Height() )
+	{
+        Size    _aSize( aStbStatus.GetSizePixel() );
+        Point   aPoint( 0, aNewSize.Height() - _aSize.Height() );
+
+		// StatusBar positionieren
+        aStbStatus.SetPosSizePixel( aPoint, Size( aNewSize.Width(), _aSize.Height() ) );
+		aStbStatus.Show();
+
+		// EditWindow positionieren
+        _aSize.Width() = aNewSize.Width() - 18;
+        _aSize.Height() = aPoint.Y() - pIMapWnd->GetPosPixel().Y() - 6;
+=====================================================================
+Found a 16 line (118 tokens) duplication in the following files: 
+Starting at line 3422 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3078 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+static const SvxMSDffVertPair mso_sptRightBracketVert[] =	// adj value 0 -> 10800
+{
+	{ 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I },
+	{ 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 }
+};
+static const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] =
+{
+	{ { 0, 3 MSO_I }, { 15150, 4 MSO_I } }
+};
+static const SvxMSDffVertPair mso_sptRightBracketGluePoints[] =
+{
+	{ 0, 0 }, { 0, 21600 }, { 21600, 10800 }
+};
+static const mso_CustomShape msoRightBracket =
+=====================================================================
+Found a 14 line (118 tokens) duplication in the following files: 
+Starting at line 458 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/newhelp.cxx
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/newhelp.cxx
+
+					SfxContentHelper::GetHelpTreeViewContents( aTmpURL );
+
+				const ::rtl::OUString* pEntries  = aList.getConstArray();
+				UINT32 i, nCount = aList.getLength();
+				for ( i = 0; i < nCount; ++i )
+				{
+					String aRow( pEntries[i] );
+					String aTitle, aURL;
+					xub_StrLen nIdx = 0;
+					aTitle = aRow.GetToken( 0, '\t', nIdx );
+					aURL = aRow.GetToken( 0, '\t', nIdx );
+					sal_Unicode cFolder = aRow.GetToken( 0, '\t', nIdx ).GetChar(0);
+					sal_Bool bIsFolder = ( '1' == cFolder );
+					SvLBoxEntry* pEntry = NULL;
+=====================================================================
+Found a 23 line (118 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/registerextensions.cxx
+
+}
+
+
+
+static std::_tstring GetMsiProperty( MSIHANDLE handle, const std::_tstring& sProperty )
+{
+    std::_tstring result;
+    TCHAR szDummy[1] = TEXT("");
+    DWORD nChars = 0;
+
+    if ( MsiGetProperty( handle, sProperty.c_str(), szDummy, &nChars ) == ERROR_MORE_DATA )
+    {
+        DWORD nBytes = ++nChars * sizeof(TCHAR);
+        LPTSTR buffer = reinterpret_cast<LPTSTR>(_alloca(nBytes));
+        ZeroMemory( buffer, nBytes );
+        MsiGetProperty(handle, sProperty.c_str(), buffer, &nChars);
+        result = buffer;
+    }
+
+    return result;
+}
+
+static BOOL ExecuteCommand( LPCTSTR lpCommand, BOOL bSync )
+=====================================================================
+Found a 25 line (118 tokens) duplication in the following files: 
+Starting at line 795 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/notes/EditWindow.cxx
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/edit.cxx
+
+        String     aMark (C2S("<?>"));
+        USHORT     nCounts    = pEditEngine->GetParagraphCount();
+
+        do
+        {
+            USHORT Fnd = Text.Search(aMark, 0);
+
+            while ((Fnd < Max) && (Fnd != STRING_NOTFOUND))
+            {
+                Pos = Fnd;
+                Fnd = Text.Search(aMark, Fnd + 1);
+            }
+
+            if (Pos == STRING_NOTFOUND)
+            {
+                eSelection.nStartPara--;
+                Text = pEditEngine->GetText( eSelection.nStartPara );
+                Max = Text.Len();
+            }
+        }
+        while ((eSelection.nStartPara < nCounts) &&
+            (Pos == STRING_NOTFOUND));
+
+        if (Pos != STRING_NOTFOUND)
+        {
+=====================================================================
+Found a 20 line (118 tokens) duplication in the following files: 
+Starting at line 2250 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/eppt/pptexanimations.cxx
+Starting at line 533 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/ppt/pptinanimations.cxx
+
+					Any aTarget, aEmpty;
+					Reference< XEnumerationAccess > xEnumerationAccess( xNode, UNO_QUERY );
+					if( xEnumerationAccess.is() )
+					{
+						Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY );
+						if( xEnumeration.is() )
+						{
+							while( xEnumeration->hasMoreElements() )
+							{
+								Reference< XAnimate > xChildNode( xEnumeration->nextElement(), UNO_QUERY );
+								if( xChildNode.is() )
+								{
+									double fChildBegin = 0.0;
+									double fChildDuration = 0.0;
+									xChildNode->getBegin() >>= fChildBegin;
+									xChildNode->getDuration() >>= fChildDuration;
+
+									fChildDuration += fChildBegin;
+									if( fChildDuration > fDuration )
+										fDuration = fChildDuration;
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 2484 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+Starting at line 3261 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+
+									else
+										DBG_ERROR("pData == 0");
+								}
+								else
+								{
+									ULONG nFormat = pPattern->GetNumberFormat(
+																pFormatter, pCondSet );
+									String aString;
+									Color* pColor;
+									ScCellFormat::GetString( pCell,
+															 nFormat,aString, &pColor,
+															 *pFormatter,
+															 bShowNullValues,
+															 bShowFormulas,
+															 ftCheck );
+
+									pEngine->SetText(aString);
+									if ( pColor && !bSyntaxMode && !( bUseStyleColor && bForceAutoColor ) )
+										lcl_SetEditColor( *pEngine, *pColor );
+								}
+
+								if ( bSyntaxMode )
+									SetEditSyntaxColor( *pEngine, pCell );
+								else if ( bUseStyleColor && bForceAutoColor )
+									lcl_SetEditColor( *pEngine, COL_AUTO );		//! or have a flag at EditEngine
+							}
+							else
+								DBG_ERROR("pCell == NULL");
+
+							pEngine->SetUpdateMode( TRUE );		// after SetText, before CalcTextWidth/GetTextHeight
+=====================================================================
+Found a 26 line (118 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/mediash.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/MediaObjectBar.cxx
+
+			SdrMarkList* pMarkList = new SdrMarkList( mpView->GetMarkedObjectList() );
+			bool		 bDisable = true;
+
+			if( 1 == pMarkList->GetMarkCount() )
+			{
+				SdrObject* pObj =pMarkList->GetMark( 0 )->GetMarkedSdrObj();
+
+				if( pObj && pObj->ISA( SdrMediaObj ) )
+				{
+					::avmedia::MediaItem aItem( SID_AVMEDIA_TOOLBOX );
+					
+					static_cast< sdr::contact::ViewContactOfSdrMediaObj& >( pObj->GetViewContact() ).updateMediaItem( aItem );
+					rSet.Put( aItem );
+					bDisable = false;
+				}
+			}
+
+			if( bDisable )
+				rSet.DisableItem( SID_AVMEDIA_TOOLBOX );
+			
+			delete pMarkList;
+		}
+
+		nWhich = aIter.NextWhich();
+	}
+}
+=====================================================================
+Found a 23 line (118 tokens) duplication in the following files: 
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/filtdlg.cxx
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pfiltdlg.cxx
+
+				*rEntry.pStr	= EMPTY_STRING;
+				rEntry.nVal		= SC_NONEMPTYFIELDS;
+				rEntry.bQueryByString = FALSE;
+			}
+			else
+			{
+				*rEntry.pStr	= aStrVal;
+				rEntry.nVal		= 0;
+				rEntry.bQueryByString = TRUE;
+			}
+
+            rEntry.nField	= nField ? (theQueryData.nCol1 +
+                    static_cast<SCCOL>(nField) - 1) : static_cast<SCCOL>(0);
+			rEntry.eOp	  	= eOp;
+		}
+	}
+
+	theParam.GetEntry(1).eConnect = (nConnect1 != LISTBOX_ENTRY_NOTFOUND)
+									? (ScQueryConnect)nConnect1
+									: SC_AND;
+	theParam.GetEntry(2).eConnect = (nConnect2 != LISTBOX_ENTRY_NOTFOUND)
+									? (ScQueryConnect)nConnect2
+									: SC_AND;
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 834 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1382 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	nMatrixFlag(MM_NONE)
+{
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+				nID = pChangeTrackingImportHelper->GetIDFromString(sValue);
+		}
+	}
+}
+=====================================================================
+Found a 15 line (118 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen5.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuins2.cxx
+
+                uno::makeAny( aRangeString ), beans::PropertyState_DIRECT_VALUE );
+            aArgs[1] = beans::PropertyValue(
+                ::rtl::OUString::createFromAscii("HasCategories"), -1,
+                uno::makeAny( bHasCategories ), beans::PropertyState_DIRECT_VALUE );
+            aArgs[2] = beans::PropertyValue(
+                ::rtl::OUString::createFromAscii("FirstCellAsLabel"), -1,
+                uno::makeAny( bFirstCellAsLabel ), beans::PropertyState_DIRECT_VALUE );
+            aArgs[3] = beans::PropertyValue(
+                ::rtl::OUString::createFromAscii("DataRowSource"), -1,
+                uno::makeAny( eDataRowSource ), beans::PropertyState_DIRECT_VALUE );
+            xReceiver->setArguments( aArgs );
+
+            // don't create chart listener here (range may be modified in chart dialog)
+        }
+    }
+=====================================================================
+Found a 22 line (118 tokens) duplication in the following files: 
+Starting at line 493 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+Starting at line 1031 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+         new OUString(aUStr1)
+        },
+        {"simple compare, str1 to str1",0,new OUString(aUStr1), 
+         new OUString(aUStr1)
+        },
+        {"simple compare, nullString to nullString",0,new OUString(), 
+         new OUString()
+        },
+        {"simple compare, nullString to str2",-1,new OUString(), 
+         new OUString(aUStr2)
+        },
+        {"simple compare, str1 to nullString",+1,new OUString(aUStr1), 
+         new OUString()
+        }
+    };
+
+    sal_Bool res = sal_True;
+	sal_Int32 i;
+
+    for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+        sal_Int32 cmpRes = arrTestCase[i].input1->reverseCompareTo
+=====================================================================
+Found a 50 line (118 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_DatagramSocket.cxx
+Starting at line 3510 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+namespace osl_DatagramSocket
+{
+
+	/** testing the methods:
+		inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet, 
+							  oslProtocol	Protocol= osl_Socket_ProtocolIp,
+							  oslSocketType	Type= osl_Socket_TypeDgram);
+	*/
+
+	class ctors : public CppUnit::TestFixture
+	{
+	public:
+		
+		void ctors_001()
+		{
+			/// Socket constructor.
+			::osl::DatagramSocket dsSocket;
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the datagram socket was created successfully.", 
+									osl_Socket_TypeDgram ==  dsSocket.getType( ) );
+		}
+	
+		
+		CPPUNIT_TEST_SUITE( ctors );
+		CPPUNIT_TEST( ctors_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class ctors
+	
+/**thread do sendTo, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
+*/
+class TalkerThread : public Thread
+{
+protected:
+	::osl::SocketAddr saTargetSocketAddr;
+	::osl::DatagramSocket dsSocket;
+	
+	void SAL_CALL run( )
+	{
+		dsSocket.sendTo( saTargetSocketAddr, pTestString1, strlen( pTestString1 ) + 1 ); // "test socket"
+		dsSocket.shutdown();
+	}
+
+	void SAL_CALL onTerminated( )
+	{		
+	}
+
+public:	
+	TalkerThread( ): 
+		saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT9 )
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ohierarchyholder.cxx
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ohierarchyholder.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	if ( !aListPath.size() )
+		throw uno::RuntimeException();
+
+	::rtl::OUString aNextName = *(aListPath.begin());
+	aListPath.erase( aListPath.begin() );
+
+	uno::Reference< embed::XExtendedStorageStream > xResult;
+
+	uno::Reference< embed::XStorage > xOwnStor = m_xOwnStorage.is() ? m_xOwnStorage
+				: uno::Reference< embed::XStorage >( m_xWeakOwnStorage.get(), uno::UNO_QUERY );
+	if ( !xOwnStor.is() )
+		throw uno::RuntimeException();
+
+	if ( !aListPath.size() )
+	{
+=====================================================================
+Found a 26 line (118 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/workben/sspellimp.cxx
+
+using namespace utl;
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::linguistic2;
+using namespace linguistic;
+
+
+///////////////////////////////////////////////////////////////////////////
+
+BOOL operator == ( const Locale &rL1, const Locale &rL2 )
+{
+	return	rL1.Language ==  rL2.Language	&&
+			rL1.Country  ==  rL2.Country	&&
+			rL1.Variant  ==  rL2.Variant;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+
+SpellChecker::SpellChecker() :
+	aEvtListeners	( GetLinguMutex() )
+{
+=====================================================================
+Found a 21 line (118 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/lingutil/dictmgr.cxx
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+      if (dp) {
+         *stringp = dp+1;
+         int nc = (int)((unsigned long)dp - (unsigned long)mp);
+         rv = (char *) malloc(nc+1);
+         memcpy(rv,mp,nc);
+         *(rv+nc) = '\0';
+         return rv;
+      } else {
+        rv = (char *) malloc(n+1);
+        memcpy(rv, mp, n);
+        *(rv+n) = '\0';
+        *stringp = mp + n;
+        return rv;
+      }
+   }
+   return NULL;
+ }
+
+ 
+ // replaces strdup with ansi version
+ char * mystrdup(const char * s)
+=====================================================================
+Found a 27 line (118 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/testcomponent.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/testcomponent.cxx
+
+	Reference< XMultiServiceFactory > xSMgr =
+		createRegistryServiceFactory( OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")) );
+
+	Reference < XImplementationRegistration > xReg;
+	Reference < XSimpleRegistry > xSimpleReg;
+
+	try
+	{
+		// Create registration service
+		Reference < XInterface > x = xSMgr->createInstance(
+			OUString::createFromAscii( "com.sun.star.registry.ImplementationRegistration" ) );
+		xReg = Reference<  XImplementationRegistration > ( x , UNO_QUERY );
+	}
+	catch( Exception & ) {
+		printf( "Couldn't create ImplementationRegistration service\n" );
+		exit(1);
+	}
+
+	sal_Char szBuf[1024];
+	OString sTestName;
+
+	try
+	{
+		// Load dll for the tested component
+		for( int n = 2 ; n <argc ; n ++ ) {
+#ifdef SAL_W32
+			OUString aDllName = OStringToOUString( argv[n] , RTL_TEXTENCODING_ASCII_US );
+=====================================================================
+Found a 4 line (118 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 28 line (118 tokens) duplication in the following files: 
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
+
+ignoreProlongedSoundMark_ja_JP::folding( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset )
+  throw(RuntimeException)
+{
+    // Create a string buffer which can hold nCount + 1 characters.
+    // The reference count is 0 now.
+    rtl_uString * newStr = x_rtl_uString_new_WithLength( nCount ); // defined in x_rtl_ustring.h  
+    sal_Unicode * dst = newStr->buffer;
+    const sal_Unicode * src = inStr.getStr() + startPos;
+
+    sal_Int32 *p = 0;
+	sal_Int32 position = 0;
+
+    if (useOffset) {
+        // Allocate nCount length to offset argument.
+        offset.realloc( nCount );
+        p = offset.getArray();
+        position = startPos;
+    }
+
+    // 
+    sal_Unicode previousChar = *src ++;
+    sal_Unicode currentChar;
+
+    // Conversion
+    while (-- nCount > 0) {
+        currentChar = *src ++;
+
+        if (currentChar == 0x30fc || // KATAKANA-HIRAGANA PROLONGED SOUND MARK
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 1029 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1062 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+				else if( pAcc->GetScanlineFormat() == BMP_FORMAT_24BIT_TC_RGB )
+				{
+					Scanline	pLine0, pLine1, pTmp0, pTmp1;
+					long		nOff;
+
+					for( nY = nStartY, nYDst = 0L; nY <= nEndY; nY++, nYDst++ )
+					{
+						nTmpY = pMapIY[ nY ]; nTmpFY = pMapFY[ nY ];
+						pLine0 = pAcc->GetScanline( nTmpY );
+						pLine1 = pAcc->GetScanline( ++nTmpY );
+
+						for( nX = nStartX, nXDst = 0L; nX <= nEndX; nX++ )
+						{
+							nOff = 3L * ( nTmpX = pMapIX[ nX ] );
+							nTmpFX = pMapFX[ nX ];
+
+							pTmp1 = ( pTmp0 = pLine0 + nOff ) + 3L;
+=====================================================================
+Found a 25 line (118 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/dlgeos2.cxx
+Starting at line 328 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/filter/dlgexpor.cxx
+
+	SetText( aTitle );
+
+	// reading config-parameter
+    sal_Int32   nMode = pConfigItem->ReadInt32( String( ResId( KEY_MODE, *pMgr ) ), 0 );
+
+	::com::sun::star::awt::Size aDefault( 10000, 10000 );
+	::com::sun::star::awt::Size aSize;
+    aSize = pConfigItem->ReadSize( String( ResId( KEY_SIZE, *pMgr ) ), aDefault );
+
+	aMtfSizeX.SetDefaultUnit( FUNIT_MM );
+	aMtfSizeY.SetDefaultUnit( FUNIT_MM );
+	aMtfSizeX.SetValue( aSize.Width );
+	aMtfSizeY.SetValue( aSize.Height );
+
+	switch ( rPara.eFieldUnit )
+	{
+//		case FUNIT_NONE :
+//		case FUNIT_KM :
+//		case FUNIT_PERCENT :
+//		case FUNIT_CUSTOM :
+//		case FUNIT_MILE :
+//		case FUNIT_FOOT :
+		case FUNIT_MM :
+		case FUNIT_CM :
+		case FUNIT_M :
+=====================================================================
+Found a 19 line (118 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/constitemcontainer.cxx
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/itemcontainer.cxx
+
+void ItemContainer::copyItemContainer( const std::vector< Sequence< PropertyValue > >& rSourceVector, const ShareableMutex& rMutex )
+{
+    for ( sal_uInt32 i = 0; i < rSourceVector.size(); i++ )
+    {
+        sal_Int32 nContainerIndex = -1;
+        Sequence< PropertyValue > aPropSeq( rSourceVector[i] );
+        Reference< XIndexAccess > xIndexAccess;
+        for ( sal_Int32 j = 0; j < aPropSeq.getLength(); j++ )
+        {
+            if ( aPropSeq[j].Name.equalsAscii( "ItemDescriptorContainer" ))
+            {
+                aPropSeq[j].Value >>= xIndexAccess;
+                nContainerIndex = j;
+                break;
+            }
+        }
+        
+        if ( xIndexAccess.is() && nContainerIndex >= 0 )
+            aPropSeq[nContainerIndex].Value <<= deepCopyContainer( xIndexAccess, rMutex );
+=====================================================================
+Found a 36 line (118 tokens) duplication in the following files: 
+Starting at line 426 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+    m_xContainerFactory( rFactory )
+{
+}
+
+
+OReadMenuHandler::~OReadMenuHandler()
+{
+}
+
+
+void SAL_CALL OReadMenuHandler::startDocument(void)
+	throw ( SAXException, RuntimeException )
+{
+}
+
+
+void SAL_CALL OReadMenuHandler::endDocument(void)
+	throw( SAXException, RuntimeException)
+{
+}
+
+
+void SAL_CALL OReadMenuHandler::startElement(
+	const OUString& aName, const Reference< XAttributeList > &xAttrList )
+throw( SAXException, RuntimeException )
+{
+	if ( m_bMenuPopupMode )
+	{
+		++m_nElementDepth;
+		m_xReader->startElement( aName, xAttrList );
+	}
+	else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_MENUPOPUP )))
+	{
+		++m_nElementDepth;
+		m_bMenuPopupMode = sal_True;
+		m_xReader = Reference< XDocumentHandler >( new OReadMenuPopupHandler( m_xMenuContainer, m_xContainerFactory ));
+=====================================================================
+Found a 16 line (118 tokens) duplication in the following files: 
+Starting at line 5260 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 5283 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+
+sal_Bool SAL_CALL LayoutManager::isElementDocked( const ::rtl::OUString& aName )
+throw (RuntimeException)
+{
+    UIElementVector::const_iterator pIter;
+
+    ReadGuard aReadLock( m_aLock );
+    for ( pIter = m_aUIElements.begin(); pIter != m_aUIElements.end(); pIter++ )
+    {
+        if ( pIter->m_aName == aName && pIter->m_xUIElement.is() )
+        {
+            Reference< css::awt::XWindow > xWindow( pIter->m_xUIElement->getRealInterface(), UNO_QUERY );
+            if ( xWindow.is() )
+            {
+                Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+                if ( xDockWindow.is() )
+                    return !xDockWindow->isFloating();
+=====================================================================
+Found a 10 line (118 tokens) duplication in the following files: 
+Starting at line 760 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+Starting at line 3257 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/layoutmanager/layoutmanager.cxx
+
+        try
+        {
+            if ( xTopDockingWindow.is() )
+                xTopDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
+            if ( xLeftDockingWindow.is() )
+                xLeftDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
+            if ( xRightDockingWindow.is() )
+                xRightDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
+            if ( xBottomDockingWindow.is() )
+                xBottomDockingWindow->setPosSize( 0, 0, 0, 0, css::awt::PosSize::POSSIZE );
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+
+public:
+    virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject)
+    															THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual INT32 test(	const UString& TestName,
+    					const XInterfaceRef& TestObject,
+    					INT32 hTestHandle) 						THROWS( (	IllegalArgumentException,
+    																		UsrSystemException) );
+
+    virtual BOOL testPassed(void) 								THROWS( (	UsrSystemException) );
+    virtual Sequence< UString > getErrors(void) 				THROWS( (UsrSystemException) );
+    virtual Sequence< UsrAny > getErrorExceptions(void) 		THROWS( (UsrSystemException) );
+    virtual Sequence< UString > getWarnings(void) 				THROWS( (UsrSystemException) );
+
+private:
+	void testSimple( const XOutputStreamRef &r, const XInputStreamRef &rInput );
+=====================================================================
+Found a 5 line (118 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_mask.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 24 line (118 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/borland/tempnam.c
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/microsft/tempnam.c
+
+   *q++ = buf[2]; *q++ = buf[3];
+
+   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
+
+   return(p);
+}
+
+
+
+d_access( name, flag )
+char *name;
+int  flag;
+{
+   extern char *DirSepStr;
+   char *p;
+   int r;
+
+   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
+   r = access( name, flag );
+   p = name+strlen(name)-1;
+   if(*p != '/' && *p != '\\') strcat( p, DirSepStr );
+
+   return( r );
+}
+=====================================================================
+Found a 14 line (118 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/querycomposer.cxx
+
+using namespace dbaccess;
+using namespace dbtools;
+using namespace comphelper;
+using namespace connectivity;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::i18n;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::script;
+using namespace ::cppu;
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 1043 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+
+								const ::rtl::OUString& procedureNamePattern)
+								throw(SQLException, RuntimeException)
+{
+	const ::rtl::OUString *pSchemaPat = NULL;
+
+	if(schemaPattern.toChar() != '%')
+		pSchemaPat = &schemaPattern;
+	else
+		pSchemaPat = NULL;
+
+	m_bFreeHandle = sal_True;
+	::rtl::OString aPKQ,aPKO,aPKN,aCOL;
+
+	aPKQ = ::rtl::OUStringToOString(comphelper::getString(catalog),m_nTextEncoding);
+	aPKO = ::rtl::OUStringToOString(schemaPattern,m_nTextEncoding);
+
+	const char	*pPKQ = catalog.hasValue() && aPKQ.getLength() ? aPKQ.getStr()	: NULL,
+				*pPKO = pSchemaPat && pSchemaPat->getLength() ? aPKO.getStr() : NULL,
+=====================================================================
+Found a 9 line (118 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HStorageMap.cxx
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HStorageMap.cxx
+
+            OSL_ENSURE(_xStorage.is(),"Storage is NULL!");
+			TStorages& rMap = lcl_getStorageMap();
+			// check if the storage is already in our map
+			TStorages::iterator aFind = ::std::find_if(rMap.begin(),rMap.end(),
+										::std::compose1(
+											::std::bind2nd(::std::equal_to<Reference<XStorage> >(),_xStorage)
+											,::std::compose1(::std::select1st<TStorageURLPair>(),::std::compose1(::std::select1st<TStorages::mapped_type>(),::std::select2nd<TStorages::value_type>())))
+					);
+			if ( aFind != rMap.end() )
+=====================================================================
+Found a 12 line (118 tokens) duplication in the following files: 
+Starting at line 1665 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1709 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_NAME
+
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schema.getLength() && schema.toChar() != '%')
+		varCriteria[nPos].setString(schema);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_SCHEMA
+
+	varCriteria[nPos].setString(table);
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_NAME
+=====================================================================
+Found a 25 line (118 tokens) duplication in the following files: 
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi_timetest.cxx
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/memory/memorytests.cxx
+
+		}
+	}
+	catch(std::exception& e)
+	{
+		e.what();	// silence warnings
+	}
+}
+
+// -----------------------------------------------------------------------------
+Sequence<Any> createSequence(const OUString &sUser, const OUString &sPasswd)
+{
+	Sequence< Any > aCPArgs;
+		
+	if (sUser.getLength() > 0)
+	{
+		aCPArgs.realloc(1);
+		aCPArgs[0] <<= configmgr::createPropertyValue(ASCII("user"), sUser);
+	}
+	if (sPasswd.getLength() > 0)
+	{
+		aCPArgs.realloc(2);
+		aCPArgs[1] <<= configmgr::createPropertyValue(ASCII("password"), sPasswd);
+	}
+	return aCPArgs;
+}
+=====================================================================
+Found a 23 line (118 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+	catch (configuration::ConstraintViolation& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::WrappedUnoException& ex)
+	{
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot insert into Set: ") );
+		throw WrappedTargetException( sMessage += ex.extractMessage(), xContext, ex.getAnyUnoException() );
+	}
+	catch (configuration::Exception& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.unhandled();
+	}
+
+}
+
+//-----------------------------------------------------------------------------------
+void implRemoveByName(NodeTreeSetAccess& rNode, const OUString& sName ) 
+=====================================================================
+Found a 15 line (118 tokens) duplication in the following files: 
+Starting at line 886 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propagg.cxx
+Starting at line 911 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propagg.cxx
+
+void SAL_CALL OPropertySetAggregationHelper::setPropertyToDefault(const ::rtl::OUString& _rPropertyName)
+		throw( ::com::sun::star::beans::UnknownPropertyException,  ::com::sun::star::uno::RuntimeException)
+{
+	OPropertyArrayAggregationHelper& rPH = static_cast< OPropertyArrayAggregationHelper& >( getInfoHelper() );
+	sal_Int32 nHandle = rPH.getHandleByName(_rPropertyName);
+	if (nHandle == -1)
+	{
+		throw  ::com::sun::star::beans::UnknownPropertyException();
+	}
+
+	::rtl::OUString aPropName;
+	sal_Int32	nOriginalHandle = -1;
+	if (rPH.fillAggregatePropertyInfoByHandle(&aPropName, &nOriginalHandle, nHandle))
+	{
+		if (m_xAggregateState.is())
+=====================================================================
+Found a 17 line (118 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/misc/configurationhelper.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/misc/configurationhelper.cxx
+
+                                           const css::uno::Any&                              aValue  )
+{
+    css::uno::Reference< css::container::XHierarchicalNameAccess > xAccess(xCFG, css::uno::UNO_QUERY_THROW);
+
+    css::uno::Reference< css::beans::XPropertySet > xProps;
+    xAccess->getByHierarchicalName(sRelPath) >>= xProps;
+    if (!xProps.is())
+    {
+        ::rtl::OUStringBuffer sMsg(256);
+        sMsg.appendAscii("The requested path \"");
+        sMsg.append     (sRelPath               );
+        sMsg.appendAscii("\" does not exists."  );
+
+        throw css::container::NoSuchElementException(
+                    sMsg.makeStringAndClear(),
+                    css::uno::Reference< css::uno::XInterface >());
+    }
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
+
+                rtti = iFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 25 line (118 tokens) duplication in the following files: 
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+#endif
+					pUnoArgs[nPos], pParamTypeDescr,
+                    pThis->getBridge()->getUno2Cpp() );
+				
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+	}
+
+	try
+	{
+		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+		callVirtualMethod(
+			pAdjustedThisPtr, aVtableSlot.index,
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+                rtti = iiFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 24 line (118 tokens) duplication in the following files: 
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+	bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+        // need to know parameter types for callVirtualMethod so generate a signature string
+        char * pParamType = (char *) alloca(nParams+2);
+        char * pPT = pParamType;
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+                rtti = iiFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 24 line (118 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)(
+        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException(
+            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+                rtti = iiFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 22 line (118 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+                rtti = iiFind->second;
+            }
+        }
+    }
+    else
+    {
+        rtti = iFind->second;
+    }
+    
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 22 line (118 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+=====================================================================
+Found a 18 line (118 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 819 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+		    nRes = *p->puInt64; break;
+
+		// from here the values has to be checked
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			aTmp.nUShort = *p->pUShort; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+        case SbxBYREF | SbxSALINT64:
+			aTmp.nInt64 = *p->pnInt64; goto ref;
+=====================================================================
+Found a 9 line (118 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/moduldlg.cxx
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/moduldlg.cxx
+
+            BasicEntryDescriptor aDesc( GetEntryDescriptor( pEntry ) );
+            ScriptDocument aDocument( aDesc.GetDocument() );
+            ::rtl::OUString aOULibName( aDesc.GetLibName() );
+			// allow MOVE mode only for libraries, which are not readonly
+            Reference< script::XLibraryContainer2 > xModLibContainer( aDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY );
+            Reference< script::XLibraryContainer2 > xDlgLibContainer( aDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY );
+            if ( !( ( xModLibContainer.is() && xModLibContainer->hasByName( aOULibName ) && xModLibContainer->isLibraryReadOnly( aOULibName ) ) ||
+                    ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aOULibName ) && xDlgLibContainer->isLibraryReadOnly( aOULibName ) ) ) )
+            {
+=====================================================================
+Found a 30 line (118 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/animations/source/animcore/factreg.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/TextInputStream/TextInputStream.cxx
+
+	},
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
+{
+	return g_moduleCount.canUnload( &g_moduleCount , pTime );
+}
+
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
+}
+}
+=====================================================================
+Found a 15 line (117 tokens) duplication in the following files: 
+Starting at line 466 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/qa/cppunittests/odiapi/testProperty.cxx
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/qa/cppunittests/odiapi/testProperty.cxx
+
+    void testDumpPropertyPoolAfterGarbageCollection()
+    {
+        PropertyPool::Pointer_t pool = createPropertyPool();
+	
+        PropertyBag_Pointer_t pb1 = createPropertyBag();
+        pb1->insert(createIntegerProperty(NS_fo::LN_font_weight, 12));
+        pb1->insert(createStringProperty(NS_style::LN_font_face, "Times"));
+        pb1->insert(createIntegerProperty(NS_fo::LN_line_height, 20));
+        PropertyPoolHandle_Pointer_t ph1 = pool->insert(pb1);
+
+        {
+            PropertyBag_Pointer_t pb2 = createPropertyBag();
+            pb2->insert(createIntegerProperty(NS_fo::LN_font_weight, 12));
+            pb2->insert(createStringProperty(NS_style::LN_font_face, "Roman"));
+            PropertyPoolHandle_Pointer_t ph2 = pool->insert(pb2);
+=====================================================================
+Found a 13 line (117 tokens) duplication in the following files: 
+Starting at line 3131 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 3437 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xff,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,
+
+        8, // 0x2c ','
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x20,0x00,
+
+        8, // 0x2d '-'
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        8, // 0x2e '.'
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
+
+        8, // 0x2f '/'
+        0x00,0x03,0x03,0x06,0x06,0x0c,0x0c,0x18,0x18,0x30,0x30,0x60,0x60,0x00,0x00,0x00,
+=====================================================================
+Found a 20 line (117 tokens) duplication in the following files: 
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            const value_type *fg_ptr;
+            color_type* span = base_type::allocator().span();
+            const int16* weight_array = base_type::filter().weight_array() + 
+                                        ((base_type::filter().diameter()/2 - 1) << 
+                                          image_subpixel_shift);
+            do
+            {
+                int x_hr;
+                int y_hr;
+
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                unsigned x1 = m_wrap_mode_x(x_lr);
+                unsigned x2 = ++m_wrap_mode_x;
+=====================================================================
+Found a 10 line (117 tokens) duplication in the following files: 
+Starting at line 606 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 834 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        if(fg[3] < 0) fg[3] = 0;
+
+                        if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                        if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                        if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                        if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+                    }
+                }
+
+                span->r = fg[order_type::R];
+=====================================================================
+Found a 25 line (117 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+
+	{ XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_FO, XML_KEEP_WITH_NEXT, XML_OPTACTION_KEEP_WITH_NEXT, 
+=====================================================================
+Found a 27 line (117 tokens) duplication in the following files: 
+Starting at line 2194 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/xmlnumfi.cxx
+Starting at line 2243 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/xmlnumfi.cxx
+
+	if ( rCondition.copy( 0, nValLen ) == sValue )
+	{
+		//!	test for valid conditions
+		//!	test for default conditions
+
+		OUString sRealCond = rCondition.copy( nValLen, rCondition.getLength() - nValLen );
+		sal_Bool bDefaultCond = sal_False;
+
+		//!	collect all conditions first and adjust default to >=0, >0 or <0 depending on count
+		//!	allow blanks in conditions
+		sal_Bool bFirstCond = ( aConditions.getLength() == 0 );
+		if ( bFirstCond && aMyConditions.size() == 1 && sRealCond.compareToAscii( ">=0" ) == 0 )
+			bDefaultCond = sal_True;
+
+		if ( nType == XML_TOK_STYLES_TEXT_STYLE && nIndex == 2 )
+		{
+			//	The third condition in a number format with a text part can only be
+			//	"all other numbers", the condition string must be empty.
+			bDefaultCond = sal_True;
+		}
+
+		if (!bDefaultCond)
+		{
+            sal_Int32 nPos = sRealCond.indexOf( '.' );
+            if ( nPos >= 0 )
+            {   // #i8026# #103991# localize decimal separator
+                const String& rDecSep = rData.getNumDecimalSep();
+=====================================================================
+Found a 34 line (117 tokens) duplication in the following files: 
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/implncvt.cxx
+Starting at line 545 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/implncvt.cxx
+
+					mnFloat1Points = 2;
+				}
+				else
+				{
+					mnFloat1Points = 0;
+					fLenghtDone = fDistance;
+				}
+				if ( mfDashDotLenght > 0.0 )
+				{										// Ein Dash oder Dot wurde erzeugt
+					mfDashDotLenght -= fLenghtDone;
+					if ( mfDashDotLenght == 0.0 )
+					{									// Komplett erzeugt
+						if ( mnDashCount )
+							mnDashCount--;
+						else
+							mnDotCount--;
+
+						if ( ! ( mnDashCount | mnDotCount ) )
+						{
+							mnDashCount = maLineInfo.GetDashCount();
+							mnDotCount = maLineInfo.GetDotCount();
+						}
+						mfDistanceLenght = maLineInfo.GetDistance();
+					}
+				}
+				else
+				{										// Das erzeugte Polygon muessen wir ignorieren
+					mfDistanceLenght -= fLenghtDone;
+					if ( mfDistanceLenght ==  0.0 )
+						mfDashDotLenght = ( mnDashCount ) ? maLineInfo.GetDashLen() : maLineInfo.GetDotLen();
+					continue;
+				}
+			}
+			maPolygon.SetSize( 2 );
+=====================================================================
+Found a 28 line (117 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/fixed.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/group.cxx
+
+void GroupBox::ImplInitSettings( BOOL bFont,
+								 BOOL bForeground, BOOL bBackground )
+{
+	const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+
+	if ( bFont )
+	{
+		Font aFont = rStyleSettings.GetGroupFont();
+		if ( IsControlFont() )
+			aFont.Merge( GetControlFont() );
+		SetZoomedPointFont( aFont );
+	}
+
+	if ( bForeground || bFont )
+	{
+		Color aColor;
+		if ( IsControlForeground() )
+			aColor = GetControlForeground();
+		else
+			aColor = rStyleSettings.GetGroupTextColor();
+		SetTextColor( aColor );
+		SetTextFillColor();
+	}
+
+	if ( bBackground )
+	{
+		Window* pParent = GetParent();
+		if ( (pParent->IsChildTransparentModeEnabled() ||
+=====================================================================
+Found a 6 line (117 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/stdtabcontrollermodel.cxx
+Starting at line 655 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrolmodel.cxx
+
+void UnoControlModel::write( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream >& OutStream ) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+	::com::sun::star::uno::Reference< ::com::sun::star::io::XMarkableStream > xMark( OutStream, ::com::sun::star::uno::UNO_QUERY );
+	DBG_ASSERT( xMark.is(), "write: no ::com::sun::star::io::XMarkableStream!" );
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/sysui/source/win32/misc/WinImplHelper.cxx
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/sysui/source/win32/misc/WinImplHelper.cxx
+
+void SAL_CALL ListboxSetSelectedItem( HWND hwnd, const Any& aPosition, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+     if ( !aPosition.hasValue( ) || 
+         ( (aPosition.getValueType( ) != getCppuType((sal_Int32*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int16*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int8*)0)) ) )
+         throw IllegalArgumentException(
+            OUString::createFromAscii( "invalid value type or any has no value" ),
+            rXInterface,
+            aArgPos );
+
+    sal_Int32 nPos;
+    aPosition >>= nPos;
+=====================================================================
+Found a 15 line (117 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/viewtab.cxx
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/viewtab.cxx
+
+            long nRightDiff = aLongULSpace.GetLower() - (long)(nPageHeight - aSectRect.Bottom() + rPrtRect.Top());
+			//change the LRSpaceItem of the section accordingly
+            const SwSection* pCurrSect = rSh.GetCurrSection();
+            const SwSectionFmt* pSectFmt = pCurrSect->GetFmt();
+            SvxLRSpaceItem aLR = pSectFmt->GetLRSpace();
+            aLR.SetLeft(aLR.GetLeft() + nLeftDiff);
+            aLR.SetRight(aLR.GetRight() + nRightDiff);
+            SfxItemSet aSet(rSh.GetAttrPool(), RES_LR_SPACE, RES_LR_SPACE, RES_COL, RES_COL, 0L);
+            aSet.Put(aLR);
+			//change the first/last column
+			if(bSect)
+			{
+                SwFmtCol aCols( pSectFmt->GetCol() );
+                long nDiffWidth = nLeftDiff + nRightDiff;
+                ::ResizeFrameCols(aCols, aSectRect.Height(), aSectRect.Height() - nDiffWidth, nLeftDiff );
+=====================================================================
+Found a 13 line (117 tokens) duplication in the following files: 
+Starting at line 1659 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+Starting at line 1681 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+
+void AddressMultiLineEdit::MoveCurrentItem(sal_uInt16 nMove)
+{
+    ExtTextEngine* pTextEngine = GetTextEngine();
+    ExtTextView* pTextView = GetTextView();
+    const TextSelection& rSelection = pTextView->GetSelection();
+    const TextCharAttrib* pBeginAttrib = pTextEngine->FindCharAttrib( rSelection.GetStart(), TEXTATTR_PROTECTED );
+    const TextCharAttrib* pEndAttrib = pTextEngine->FindCharAttrib( rSelection.GetEnd(), TEXTATTR_PROTECTED );
+    if(pBeginAttrib && 
+            (pBeginAttrib->GetStart() <= rSelection.GetStart().GetIndex() 
+                            && pBeginAttrib->GetEnd() >= rSelection.GetEnd().GetIndex()))
+    {
+        //current item has been found
+        ULONG nPara = rSelection.GetStart().GetPara();
+=====================================================================
+Found a 15 line (117 tokens) duplication in the following files: 
+Starting at line 2971 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4711 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+			return;
+		}
+        const uno::Sequence< uno::Any >* pRowArray = rArray.getConstArray();
+        for(sal_uInt16 nRow = 0; nRow < nRowCount; nRow++)
+		{
+            const uno::Sequence< uno::Any >& rColSeq = pRowArray[nRow];
+            if(rColSeq.getLength() != nColCount)
+			{
+				throw uno::RuntimeException();
+			}
+            const uno::Any * pColArray = rColSeq.getConstArray();
+            uno::Reference< table::XCell > xCellRef;
+            for(sal_uInt16 nCol = 0; nCol < nColCount; nCol++)
+			{
+                SwXCell * pXCell = lcl_CreateXCell(pFmt,
+=====================================================================
+Found a 27 line (117 tokens) duplication in the following files: 
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoparagraph.cxx
+Starting at line 4235 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+        const uno::Sequence< ::rtl::OUString >& rPropertyNames )
+            throw (uno::RuntimeException)
+{
+    vos::OGuard aGuard(Application::GetSolarMutex());
+    uno::Sequence< uno::Any > aValues;
+
+    // workaround for bad designed API
+    try
+    {
+        aValues = GetPropertyValues_Impl( rPropertyNames );
+    }
+    catch (beans::UnknownPropertyException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property exception caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+    catch (lang::WrappedTargetException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "WrappedTargetException caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+
+    return aValues;
+}
+
+/*-- 19.05.2006 11:24:10---------------------------------------------------
+
+  -----------------------------------------------------------------------*/
+void SwXAutoStyle::addPropertiesChangeListener(
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 2145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoframe.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoftn.cxx
+
+	if(!m_bIsDescriptor)
+		throw uno::RuntimeException();
+	uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc)
+	{
+		SwUnoInternalPaM aPam(*pDoc);
+=====================================================================
+Found a 11 line (117 tokens) duplication in the following files: 
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/inftxt.cxx
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/inftxt.cxx
+
+							  const xub_StrLen nIdx, const xub_StrLen nLen )
+	: SwTxtInfo( rNew ),
+      pKanaComp(((SwTxtSizeInfo&)rNew).GetpKanaComp()),
+	  pVsh(((SwTxtSizeInfo&)rNew).GetVsh()),
+	  pOut(((SwTxtSizeInfo&)rNew).GetOut()),
+      pRef(((SwTxtSizeInfo&)rNew).GetRefDev()),
+	  pFnt(((SwTxtSizeInfo&)rNew).GetFont()),
+      pUnderFnt(((SwTxtSizeInfo&)rNew).GetUnderFnt()),
+	  pFrm( rNew.pFrm ),
+	  pOpt(&rNew.GetOpt()),
+	  pTxt(&rTxt),
+=====================================================================
+Found a 23 line (117 tokens) duplication in the following files: 
+Starting at line 1376 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/tblsel.cxx
+Starting at line 1412 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/tblsel.cxx
+
+		if( nSttPos < nSEndPos )
+		{
+			// dann ist der vorder Teil der Line leer und braucht
+			// nicht mit Blanks aufgefuellt werden.
+			if( pUndo )
+				for( USHORT i = nSttPos; i < nSEndPos; ++i )
+					pUndo->SaveCollection( *aPosArr[ i ].pSelBox );
+
+			USHORT nCnt = nSEndPos - nSttPos;
+			aPosArr.Remove( nSttPos, nCnt );
+			nESttPos -= nCnt;
+			n -= nCnt;
+		}
+		if( nESttPos < n )
+		{
+			// dann ist der vorder Teil der Line leer und braucht
+			// nicht mit Blanks aufgefuellt werden.
+			if( pUndo )
+				for( USHORT i = nESttPos; i < n; ++i )
+					pUndo->SaveCollection( *aPosArr[ i ].pSelBox );
+
+			USHORT nCnt = n - nESttPos;
+			aPosArr.Remove( nESttPos, nCnt );
+=====================================================================
+Found a 12 line (117 tokens) duplication in the following files: 
+Starting at line 2111 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/crstrvl.cxx
+Starting at line 922 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/editsh.cxx
+
+	const SwTxtNode* pTxtNd;
+	const SwCharFmts* pFmts = GetDoc()->GetCharFmts();
+	for( USHORT n = pFmts->Count(); 1 < n; )
+	{
+		SwClientIter aIter( *(*pFmts)[  --n ] );
+
+		for( SwClient* pFnd = aIter.First(TYPE( SwTxtINetFmt ));
+				pFnd; pFnd = aIter.Next() )
+			if( 0 != ( pTxtNd = ((SwTxtINetFmt*)pFnd)->GetpTxtNode()) &&
+				pTxtNd->GetNodes().IsDocNodes() )
+			{
+				SwTxtINetFmt& rAttr = *(SwTxtINetFmt*)pFnd;
+=====================================================================
+Found a 31 line (117 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unopage.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshcol.cxx
+
+void SvxShapeCollection::release() throw()
+{
+	uno::Reference< uno::XInterface > x( xDelegator );
+	if (! x.is())
+	{
+		if (osl_decrementInterlockedCount( &m_refCount ) == 0)
+		{
+			if (! mrBHelper.bDisposed)
+			{
+				uno::Reference< uno::XInterface > xHoldAlive( (uno::XWeak*)this );
+				// First dispose
+				try
+				{
+					dispose();
+				}
+				catch(::com::sun::star::uno::Exception&)
+				{
+					// release should not throw exceptions
+				}
+
+				// only the alive ref holds the object
+				OSL_ASSERT( m_refCount == 1 );
+				// destroy the object if xHoldAlive decrement the refcount to 0
+				return;
+			}
+		}
+		// restore the reference count
+		osl_incrementInterlockedCount( &m_refCount );
+	}
+	OWeakAggObject::release();
+}
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 1597 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 1918 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2438 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+        0x6C, 0x00, 0x65, 0x00, 0x42, 0x00, 0x75, 0x00,
+        0x74, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x6E, 0x00,
+        0x31, 0x00, 0x00, 0x00, 0x00, 0x00
+    };
+
+    {
+    SvStorageStreamRef xStor2( rObj->OpenSotStream( C2S("\3OCXNAME")));
+    xStor2->Write(aOCXNAME,sizeof(aOCXNAME));
+    DBG_ASSERT((xStor2.Is() && (SVSTREAM_OK == xStor2->GetError())),"damn");
+    }
+
+    SvStorageStreamRef xContents( rObj->OpenSotStream( C2S("contents")));
+
+    return WriteContents(xContents,rPropSet,rSize);
+}
+
+sal_Bool OCX_ToggleButton::WriteContents(SvStorageStreamRef &rContents,
+=====================================================================
+Found a 12 line (117 tokens) duplication in the following files: 
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tphatch.cxx
+Starting at line 497 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tphatch.cxx
+
+		switch( aMtrAngle.GetValue() )
+		{
+			case 135: aCtlAngle.SetActualRP( RP_LT ); break;
+			case  90: aCtlAngle.SetActualRP( RP_MT ); break;
+			case  45: aCtlAngle.SetActualRP( RP_RT ); break;
+			case 180: aCtlAngle.SetActualRP( RP_LM ); break;
+			case   0: aCtlAngle.SetActualRP( RP_RM ); break;
+			case 225: aCtlAngle.SetActualRP( RP_LB ); break;
+			case 270: aCtlAngle.SetActualRP( RP_MB ); break;
+			case 315: aCtlAngle.SetActualRP( RP_RB ); break;
+			default:  aCtlAngle.SetActualRP( RP_MM ); break;
+		}
+=====================================================================
+Found a 14 line (117 tokens) duplication in the following files: 
+Starting at line 639 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+    : InsertObjectDialog_Impl( pParent, SVX_RES( MD_INSERT_OBJECT_APPLET ), uno::Reference < embed::XStorage >() ),
+    aFtClassfile( this, SVX_RES( FT_CLASSFILE ) ),
+    aEdClassfile( this, SVX_RES( ED_CLASSFILE ) ),
+    aFtClasslocation( this, SVX_RES( FT_CLASSLOCATION ) ),
+    aEdClasslocation( this, SVX_RES( ED_CLASSLOCATION ) ),
+    aBtnClass( this, SVX_RES( BTN_CLASS ) ),
+    aGbClass( this, SVX_RES( GB_CLASS ) ),
+    aEdAppletOptions( this, SVX_RES( ED_APPLET_OPTIONS ) ),
+    aGbAppletOptions( this, SVX_RES( GB_APPLET_OPTIONS ) ),
+    aOKButton1( this, SVX_RES( 1 ) ),
+    aCancelButton1( this, SVX_RES( 1 ) ),
+    aHelpButton1( this, SVX_RES( 1 ) ),
+    m_pURL(0)
+{
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+Starting at line 1781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salprn.cxx
+
+    if( mpInfoPrinter->maPortName.EqualsIgnoreCaseAscii( "FILE:" ) && !(pFileName && pFileName->Len()) )
+    {
+
+        Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+        if( xFactory.is() )
+        {
+            Reference< XFilePicker > xFilePicker( xFactory->createInstance(
+                OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ),
+                UNO_QUERY );
+            DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+            Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+            Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+            if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+            {
+                Sequence< Any > aServiceType( 1 );
+                aServiceType[0] <<= TemplateDescription::FILESAVE_SIMPLE;
+=====================================================================
+Found a 13 line (117 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dbregister.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optpath.cxx
+
+	pHeaderBar->SetEndDragHdl( LINK( this, SvxPathTabPage, HeaderEndDrag_Impl ) );
+	Size aSz;
+	aSz.Width() = TAB_WIDTH1;
+	pHeaderBar->InsertItem( ITEMID_TYPE, aTypeText.GetText(),
+							LogicToPixel( aSz, MapMode( MAP_APPFONT ) ).Width(),
+							HIB_LEFT | HIB_VCENTER | HIB_CLICKABLE | HIB_UPARROW );
+	aSz.Width() = TAB_WIDTH2;
+	pHeaderBar->InsertItem( ITEMID_PATH, aPathText.GetText(),
+							LogicToPixel( aSz, MapMode( MAP_APPFONT ) ).Width(),
+							HIB_LEFT | HIB_VCENTER );
+
+	static long nTabs[] = {3, 0, TAB_WIDTH1, TAB_WIDTH1 + TAB_WIDTH2 };
+	Size aHeadSize = pHeaderBar->GetSizePixel();
+=====================================================================
+Found a 13 line (117 tokens) duplication in the following files: 
+Starting at line 2097 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2182 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2286 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2448 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2629 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
+	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
+	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
+	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
+	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
+	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
+	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
+	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
+	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
+
+	{ 0x4001, { -6350, 0x0406, 1 } },	// 9
+=====================================================================
+Found a 26 line (117 tokens) duplication in the following files: 
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+                try
+                {
+                    xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+                }
+                catch ( Exception& )
+                {
+                }
+                pIter->second = xDispatch;
+
+                Listener aListener( aTargetURL, xDispatch );
+                aDispatchVector.push_back( aListener );
+                ++pIter;
+            }
+        }
+    }
+
+    // Call without locked mutex as we are called back from dispatch implementation
+    if ( xStatusListener.is() )
+    {
+        try
+        {
+            for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
+            {
+                Listener& rListener = aDispatchVector[i];
+                if ( rListener.xDispatch.is() )
+                    rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
+=====================================================================
+Found a 10 line (117 tokens) duplication in the following files: 
+Starting at line 1017 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/emfwr.cxx
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+					const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+					
+					GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+					Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point		aDestPt( pA->GetPoint() );
+					const Size		aDestSize( pA->GetSize() );
+					const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long			nMoveX, nMoveY;
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/insdlg.cxx
+Starting at line 1781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salprn.cxx
+
+    if( mpInfoPrinter->maPortName.EqualsIgnoreCaseAscii( "FILE:" ) && !(pFileName && pFileName->Len()) )
+    {
+
+        Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
+        if( xFactory.is() )
+        {
+            Reference< XFilePicker > xFilePicker( xFactory->createInstance(
+                OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ),
+                UNO_QUERY );
+            DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
+
+            Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
+            Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
+            if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
+            {
+                Sequence< Any > aServiceType( 1 );
+                aServiceType[0] <<= TemplateDescription::FILESAVE_SIMPLE;
+=====================================================================
+Found a 12 line (117 tokens) duplication in the following files: 
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/macropg.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/macropg.cxx
+
+    rListBox.SetSelectHdl( STATIC_LINK( this, _SvxMacroTabPage, SelectEvent_Impl ));
+
+    rListBox.SetSelectionMode( SINGLE_SELECTION );
+    rListBox.SetTabs( &nTabs[0], MAP_APPFONT );
+    Size aSize( nTabs[ 2 ], 0 );
+    rHeaderBar.InsertItem( ITEMID_EVENT, *mpImpl->pStrEvent, LogicToPixel( aSize, MapMode( MAP_APPFONT ) ).Width() );
+    aSize.Width() = 1764;        // don't know what, so 42^2 is best to use...
+    rHeaderBar.InsertItem( ITMEID_ASSMACRO, *mpImpl->pAssignedMacro, LogicToPixel( aSize, MapMode( MAP_APPFONT ) ).Width() );
+    rListBox.SetSpaceBetweenEntries( 0 );
+
+    mpImpl->pEventLB->Show();
+    mpImpl->pEventLB->ConnectElements();
+=====================================================================
+Found a 30 line (117 tokens) duplication in the following files: 
+Starting at line 156 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/linkmgr2.cxx
+Starting at line 153 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/solink/linkmgr2.cxx
+
+	pLink->pLinkMgr = this;
+	aLinkTbl.Insert( pTmp, aLinkTbl.Count() );
+	return TRUE;
+}
+
+
+BOOL SvLinkManager::InsertLink( SvBaseLink * pLink,
+								USHORT nObjType,
+								USHORT nUpdateMode,
+								const String* pName )
+{
+	// unbedingt zuerst
+	pLink->SetObjType( nObjType );
+	if( pName )
+		pLink->SetName( *pName );
+	pLink->SetUpdateMode( nUpdateMode );
+	return Insert( pLink );
+}
+
+
+BOOL SvLinkManager::InsertDDELink( SvBaseLink * pLink,
+									const String& rServer,
+									const String& rTopic,
+									const String& rItem )
+{
+	if( !( OBJECT_CLIENT_SO & pLink->GetObjType() ) )
+		return FALSE;
+
+	String sCmd;
+	::so3::MakeLnkName( sCmd, &rServer, rTopic, rItem );
+=====================================================================
+Found a 20 line (117 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/checkdirectory.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/postuninstall.cxx
+
+static std::_tstring GetMsiProperty( MSIHANDLE handle, const std::_tstring& sProperty )
+{
+	std::_tstring	result;
+	TCHAR	szDummy[1] = TEXT("");
+	DWORD	nChars = 0;
+
+	if ( MsiGetProperty( handle, sProperty.c_str(), szDummy, &nChars ) == ERROR_MORE_DATA )
+	{
+        DWORD nBytes = ++nChars * sizeof(TCHAR);
+        LPTSTR buffer = reinterpret_cast<LPTSTR>(_alloca(nBytes));
+        ZeroMemory( buffer, nBytes );
+        MsiGetProperty(handle, sProperty.c_str(), buffer, &nChars);
+        result = buffer;            
+	}
+
+	return	result;
+}
+
+
+static BOOL ExecuteCommand( LPCTSTR lpCommand, BOOL bSync )
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 1065 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+	case WID_PAGE_PREVIEWBITMAP :
+		{
+			SdDrawDocument* pDoc = (SdDrawDocument*)GetPage()->GetModel();
+			if ( pDoc )
+			{
+				::sd::DrawDocShell* pDocShell = pDoc->GetDocSh();
+				if ( pDocShell )
+				{
+					sal_uInt16 nPgNum = 0;
+					sal_uInt16 nPageCount = pDoc->GetSdPageCount( PK_STANDARD );
+					sal_uInt16 nPageNumber = (sal_uInt16)( ( GetPage()->GetPageNum() - 1 ) >> 1 );
+					while( nPgNum < nPageCount )
+					{
+						pDoc->SetSelected( pDoc->GetSdPage( nPgNum, PK_STANDARD ), nPgNum == nPageNumber );
+						nPgNum++;
+					}
+					GDIMetaFile* pMetaFile = pDocShell->GetPreviewMetaFile();
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 750 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/app/sdmod2.cxx
+Starting at line 773 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+
+                        pDoc->SetSummationOfParagraphs( bIsSummationOfParagraphs );
+			            SdDrawDocument* pDocument = pDocSh->GetDoc();
+			            SdrOutliner& rOutl = pDocument->GetDrawOutliner( FALSE );
+			            nCntrl = rOutl.GetControlWord() &~ EE_CNTRL_ULSPACESUMMATION;
+			            rOutl.SetControlWord( nCntrl | nSum );
+			            ::sd::Outliner* pOutl = pDocument->GetOutliner( FALSE );
+			            if( pOutl )
+			            {
+				            nCntrl = pOutl->GetControlWord() &~ EE_CNTRL_ULSPACESUMMATION;
+				            pOutl->SetControlWord( nCntrl | nSum );
+			            }
+			            pOutl = pDocument->GetInternalOutliner( FALSE );
+			            if( pOutl )
+			            {
+				            nCntrl = pOutl->GetControlWord() &~ EE_CNTRL_ULSPACESUMMATION;
+				            pOutl->SetControlWord( nCntrl | nSum );
+			            }
+=====================================================================
+Found a 11 line (117 tokens) duplication in the following files: 
+Starting at line 312 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/drawdoc4.cxx
+Starting at line 265 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/stlpool.cxx
+
+	mpDoc->getDefaultFonts( aLatinFont, aCJKFont, aCTLFont );
+
+	// Font fuer Titel und Gliederung
+	SvxFontItem aSvxFontItem( aLatinFont.GetFamily(), aLatinFont.GetName(), aLatinFont.GetStyleName(), aLatinFont.GetPitch(),
+		                      aLatinFont.GetCharSet(), EE_CHAR_FONTINFO );
+
+	SvxFontItem aSvxFontItemCJK( aCJKFont.GetFamily(), aCJKFont.GetName(), aCJKFont.GetStyleName(), aCJKFont.GetPitch(),
+		                         aCJKFont.GetCharSet(), EE_CHAR_FONTINFO_CJK );
+
+	SvxFontItem aSvxFontItemCTL( aCTLFont.GetFamily(), aCTLFont.GetName(), aCTLFont.GetStyleName(), aCTLFont.GetPitch(),
+		                         aCTLFont.GetCharSet(), EE_CHAR_FONTINFO_CTL );
+=====================================================================
+Found a 12 line (117 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/CustomAnimationPreset.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/animations/CustomAnimationList.cxx
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::animations;
+using namespace ::com::sun::star::presentation;
+
+using ::rtl::OUString;
+using ::com::sun::star::uno::UNO_QUERY;
+using ::com::sun::star::uno::UNO_QUERY_THROW;
+using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::XInterface;
+=====================================================================
+Found a 22 line (117 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin2.cxx
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/pivotsh.cxx
+
+				AbstractScPivotFilterDlg* pDlg = pFact->CreateScPivotFilterDlg( pViewShell->GetDialogParent(), 
+																				aArgSet, nSrcTab,
+																				RID_SCDLG_PIVOTFILTER);
+				DBG_ASSERT(pDlg, "Dialog create fail!");//CHINA001
+
+                if( pDlg->Execute() == RET_OK )
+                {
+                    ScSheetSourceDesc aNewDesc;
+                    if( pDesc )
+                        aNewDesc = *pDesc;
+
+                    const ScQueryItem& rQueryItem = pDlg->GetOutputItem();
+                    aNewDesc.aQueryParam = rQueryItem.GetQueryData();
+
+                    ScDPObject aNewObj( *pDPObj );
+                    aNewObj.SetSheetDesc( aNewDesc );
+                    ScDBDocFunc aFunc( *pViewData->GetDocShell() );
+                    aFunc.DataPilotUpdate( pDPObj, &aNewObj, TRUE, FALSE );
+                    pViewData->GetView()->CursorPosChanged();       // shells may be switched
+                }
+                delete pDlg;
+            }
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 1169 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+Starting at line 1501 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+
+		ScDocument* pDoc = pDocShell->GetDocument();
+		if ( eFamily == SFX_STYLE_FAMILY_PARA )
+		{
+			//	row heights
+
+			VirtualDevice aVDev;
+			Point aLogic = aVDev.LogicToPixel( Point(1000,1000), MAP_TWIP );
+			double nPPTX = aLogic.X() / 1000.0;
+			double nPPTY = aLogic.Y() / 1000.0;
+			Fraction aZoom(1,1);
+			pDoc->StyleSheetChanged( pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom );
+
+			pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT );
+			pDocShell->SetDocumentModified();
+		}
+		else
+		{
+=====================================================================
+Found a 14 line (117 tokens) duplication in the following files: 
+Starting at line 925 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/fielduno.cxx
+Starting at line 969 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/fielduno.cxx
+
+	ScEditEngineDefaulter* pEditEngine = ((ScHeaderFooterEditSource*)pEditSource)->GetEditEngine();
+	ScUnoEditEngine aTempEngine(pEditEngine);
+
+	TypeId aTypeId = NULL;
+	switch (nType)
+	{
+		case SC_SERVICE_PAGEFIELD:	aTypeId = TYPE(SvxPageField);	 break;
+		case SC_SERVICE_PAGESFIELD:	aTypeId = TYPE(SvxPagesField);	 break;
+		case SC_SERVICE_DATEFIELD:	aTypeId = TYPE(SvxDateField);	 break;
+		case SC_SERVICE_TIMEFIELD:	aTypeId = TYPE(SvxTimeField);	 break;
+		case SC_SERVICE_TITLEFIELD:	aTypeId = TYPE(SvxFileField);	 break;
+		case SC_SERVICE_FILEFIELD:	aTypeId = TYPE(SvxExtFileField); break;
+		case SC_SERVICE_SHEETFIELD:	aTypeId = TYPE(SvxTableField);	 break;
+	}
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldpimp.cxx
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldrani.cxx
+
+	pDatabaseRangeContext(pTempDatabaseRangeContext)
+{
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDatabaseRangeSourceQueryAttrTokenMap();
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName );
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		switch( rAttrTokenMap.Get( nPrefix, aLocalName ) )
+		{
+			case XML_TOK_SOURCE_QUERY_ATTR_DATABASE_NAME :
+			{
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 502 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldpimp.cxx
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldrani.cxx
+
+	pDatabaseRangeContext(pTempDatabaseRangeContext)
+{
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDatabaseRangeSourceTableAttrTokenMap();
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName );
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		switch( rAttrTokenMap.Get( nPrefix, aLocalName ) )
+		{
+			case XML_TOK_SOURCE_TABLE_ATTR_DATABASE_NAME :
+			{
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldpimp.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldrani.cxx
+
+	pDatabaseRangeContext(pTempDatabaseRangeContext)
+{
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDatabaseRangeSourceSQLAttrTokenMap();
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName );
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		switch( rAttrTokenMap.Get( nPrefix, aLocalName ) )
+		{
+			case XML_TOK_SOURCE_SQL_ATTR_DATABASE_NAME :
+			{
+=====================================================================
+Found a 12 line (117 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/biffdump.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/biffdump.cxx
+
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 28 ) );
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 24 ) );
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 20 ) );
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 16 ) );
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 12 ) );
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 8 ) );
+	__AddHexNibble( r, ( UINT8 ) ( nVal >> 4 ) );
+	__AddHexNibble( r, ( UINT8 ) nVal );
+}
+
+
+static void __AddHex( ByteString& r, INT32 nVal )
+=====================================================================
+Found a 31 line (117 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+							fy = fx * fy / ScGetGGT(fx, fy);
+						}
+						SetError(nErr);
+					}
+					else
+						SetError(errIllegalArgument);
+				}
+				break;
+				case svMatrix :
+				{
+					ScMatrixRef pMat = PopMatrix();
+					if (pMat)
+					{
+                        SCSIZE nC, nR;
+                        pMat->GetDimensions(nC, nR);
+						if (nC == 0 || nR == 0)
+							SetError(errIllegalArgument);
+						else
+						{
+							if (!pMat->IsValue(0))
+							{
+								SetIllegalArgument();
+								return;
+							}
+							fx = pMat->GetDouble(0);
+							if (fx < 0.0)
+							{
+								fx *= -1.0;
+								fSign *= -1.0;
+							}
+							fy = fx * fy / ScGetGGT(fx, fy);
+=====================================================================
+Found a 14 line (117 tokens) duplication in the following files: 
+Starting at line 1411 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+Starting at line 1893 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+
+        rData.mnUsedHier = nHierarchy;
+
+		uno::Reference<uno::XInterface> xHier = ScUnoHelpFunctions::AnyToInterface(
+									xHiers->getByIndex(nHierarchy) );
+
+		uno::Reference<sheet::XLevelsSupplier> xHierSupp( xHier, uno::UNO_QUERY );
+		if ( xHierSupp.is() )
+		{
+			uno::Reference<container::XIndexAccess> xLevels = new ScNameToIndexAccess( xHierSupp->getLevels() );
+			uno::Reference<uno::XInterface> xLevel =
+				ScUnoHelpFunctions::AnyToInterface( xLevels->getByIndex( 0 ) );
+			uno::Reference<beans::XPropertySet> xLevProp( xLevel, uno::UNO_QUERY );
+			if ( xLevProp.is() )
+            {
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+Starting at line 622 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/cipher/rtl_cipher.cxx
+
+            pArgBuffer[0] = 1;
+
+            t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            rtlCipherError aError = rtl_cipher_init(aCipher, rtl_Cipher_DirectionEncode, pKeyBuffer, nKeyLen, pArgBuffer, nArgLen);
+            CPPUNIT_ASSERT_MESSAGE("wrong init", aError == rtl_Cipher_E_None);
+
+            t_print(T_VERBOSE, "Key: %s\n", createHex(pKeyBuffer, nKeyLen).getStr());
+            t_print(T_VERBOSE, "Arg: %s\n", createHex(pArgBuffer, nArgLen).getStr());
+
+            delete [] pArgBuffer;
+            delete [] pKeyBuffer;
+
+            rtl_cipher_destroy(aCipher);
+        }
+    void init_004()
+=====================================================================
+Found a 40 line (117 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+Starting at line 3339 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+namespace osl_AcceptorSocket
+{
+
+	/** testing the methods:
+		inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet, 
+							  oslProtocol	Protocol = osl_Socket_ProtocolIp,
+							  oslSocketType	Type = osl_Socket_TypeStream);
+	*/
+
+	class ctors : public CppUnit::TestFixture
+	{
+	public:
+		
+		void ctors_001()
+		{
+			/// Socket constructor.
+			::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the acceptor socket was created successfully.", 
+									osl_Socket_TypeStream ==  asSocket.getType( ) );
+		}
+		
+		CPPUNIT_TEST_SUITE( ctors );
+		CPPUNIT_TEST( ctors_001 );
+		CPPUNIT_TEST_SUITE_END();
+		
+	}; // class ctors
+	
+#if 0
+	class operator_assign : public CppUnit::TestFixture
+	{
+	public:
+		
+		void assign_001()
+		{
+#if defined(LINUX)
+			::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+			::osl::AcceptorSocket asSocketAssign( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+			asSocket.setOption( osl_Socket_OptionReuseAddr, 1);
+			::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_MYPORT4 );			
+=====================================================================
+Found a 14 line (117 tokens) duplication in the following files: 
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/parseAFM.cxx
+Starting at line 1134 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/parseAFM.cxx
+
+                case KERNPAIRXAMT:
+                    if (!(pcount < fi->numOfPairs))
+                    {
+                        reallocFontMetrics( (void**)&(fi->pkd), &(fi->numOfPairs), 
+                                            enlargeCount(fi->numOfPairs), sizeof(PairKernData) );
+                    }
+                    if (pcount < fi->numOfPairs)
+                    {
+                        keyword = token(fp,tokenlen);
+                        fi->pkd[pos].name1 = strdup( keyword );
+                        keyword = token(fp,tokenlen);
+                        fi->pkd[pos].name2 = strdup( keyword );
+                        keyword = token(fp,tokenlen);
+                        fi->pkd[pos++].xamt = atoi(keyword);
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 803 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/zippackage/ZipPackage.cxx
+Starting at line 884 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/zippackage/ZipPackage.cxx
+
+		return sal_True;
+	else 
+	{
+		nStreamIndex = aName.lastIndexOf ( '/' );
+		bool bFolder = nStreamIndex == nIndex-1;
+		if ( nStreamIndex != -1 )
+		{
+			sDirName = aName.copy ( 0, nStreamIndex);
+			aIter = aRecent.find ( sDirName );
+			if ( aIter != aRecent.end() )
+			{
+				if ( bFolder )
+				{
+					sal_Int32 nDirIndex = aName.lastIndexOf ( '/', nStreamIndex );
+					sTemp = aName.copy ( nDirIndex == -1 ? 0 : nDirIndex+1, nStreamIndex-nDirIndex-1 );
+					if ( sTemp == (*aIter).second->getName() )
+						return sal_True;
+=====================================================================
+Found a 20 line (117 tokens) duplication in the following files: 
+Starting at line 1609 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 1633 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+                        if (*result) strcat(result, "\n");
+                     	st = pSMgr->suggest_morph_for_spelling_error(wspace);
+                     	if (st) {
+                        	strcat(result, st);
+                        	free(st);
+                     	}		     
+                        mkallsmall(wspace);
+                        st = pSMgr->suggest_morph_for_spelling_error(wspace);
+                        if (st) {
+                          if (*result) strcat(result, "\n");
+                          strcat(result, st);
+                          free(st);
+                        }
+		                mkinitcap(wspace);
+		                st = pSMgr->suggest_morph_for_spelling_error(wspace);
+                        if (st) {
+                          if (*result) strcat(result, "\n");
+                          strcat(result, st);
+                          free(st);
+                        }
+=====================================================================
+Found a 20 line (117 tokens) duplication in the following files: 
+Starting at line 1378 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+                        if (*result) strcat(result, "\n");
+                     	st = pSMgr->suggest_morph(wspace);
+                     	if (st) {
+                        	strcat(result, st);
+                        	free(st);
+                     	}		     
+                        mkallsmall(wspace);
+                        st = pSMgr->suggest_morph(wspace);
+                        if (st) {
+                          if (*result) strcat(result, "\n");
+                          strcat(result, st);
+                          free(st);
+                        }
+		                mkinitcap(wspace);
+		                st = pSMgr->suggest_morph(wspace);
+                        if (st) {
+                          if (*result) strcat(result, "\n");
+                          strcat(result, st);
+                          free(st);
+                        }
+=====================================================================
+Found a 11 line (117 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_pipe.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_socket.cxx
+
+		virtual void SAL_CALL write( const ::com::sun::star::uno::Sequence< sal_Int8 >& aData )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException);
+		virtual void SAL_CALL flush(  ) throw(
+			::com::sun::star::io::IOException,
+			::com::sun::star::uno::RuntimeException);
+		virtual void SAL_CALL close(  )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException);
+		virtual ::rtl::OUString SAL_CALL getDescription(  )
+			throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 21 line (117 tokens) duplication in the following files: 
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 650 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+
+	{ 0x30dc, 0x30dd },	// 0x30db KATAKANA LETTER HO --> KATAKANA LETTER BO or KATAKANA LETTER PO
+	{ 0x0000, 0x0000 },	// 0x30dc KATAKANA LETTER BO
+	{ 0x0000, 0x0000 },	// 0x30dd KATAKANA LETTER PO
+	{ 0x0000, 0x0000 },	// 0x30de KATAKANA LETTER MA
+	{ 0x0000, 0x0000 },	// 0x30df KATAKANA LETTER MI
+	{ 0x0000, 0x0000 },	// 0x30e0 KATAKANA LETTER MU
+	{ 0x0000, 0x0000 },	// 0x30e1 KATAKANA LETTER ME
+	{ 0x0000, 0x0000 },	// 0x30e2 KATAKANA LETTER MO
+	{ 0x0000, 0x0000 },	// 0x30e3 KATAKANA LETTER SMALL YA
+	{ 0x0000, 0x0000 },	// 0x30e4 KATAKANA LETTER YA
+	{ 0x0000, 0x0000 },	// 0x30e5 KATAKANA LETTER SMALL YU
+	{ 0x0000, 0x0000 },	// 0x30e6 KATAKANA LETTER YU
+	{ 0x0000, 0x0000 },	// 0x30e7 KATAKANA LETTER SMALL YO
+	{ 0x0000, 0x0000 },	// 0x30e8 KATAKANA LETTER YO
+	{ 0x0000, 0x0000 },	// 0x30e9 KATAKANA LETTER RA
+	{ 0x0000, 0x0000 },	// 0x30ea KATAKANA LETTER RI
+	{ 0x0000, 0x0000 },	// 0x30eb KATAKANA LETTER RU
+	{ 0x0000, 0x0000 },	// 0x30ec KATAKANA LETTER RE
+	{ 0x0000, 0x0000 },	// 0x30ed KATAKANA LETTER RO
+	{ 0x0000, 0x0000 },	// 0x30ee KATAKANA LETTER SMALL WA
+	{ 0x30f7, 0x0000 },	// 0x30ef KATAKANA LETTER WA --> KATAKANA LETTER VA
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 1462 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1481 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a450 - a45f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a460 - a46f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a470 - a47f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a480 - a48f
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1246 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1780 - 178f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1790 - 179f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 17a0 - 17af
+     0, 0, 0, 0, 0, 0, 0,17,17,17,17,17,17,17, 0, 0,// 17b0 - 17bf
+=====================================================================
+Found a 20 line (117 tokens) duplication in the following files: 
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0c0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 1102 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c10 - 0c1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c20 - 0c2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,// 0c30 - 0c3f
+=====================================================================
+Found a 5 line (117 tokens) duplication in the following files: 
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0d40 - 0d4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d80 - 0d8f
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1102 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a00 - 0a0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a10 - 0a1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a20 - 0a2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0a30 - 0a3f
+=====================================================================
+Found a 5 line (117 tokens) duplication in the following files: 
+Starting at line 620 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0460 - 046f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0470 - 047f
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 753 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3340 - 334f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3350 - 335f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3360 - 336f
+    27,27,27,27,27,27,27, 0, 0, 0, 0,27,27,27,27,27,// 3370 - 337f
+=====================================================================
+Found a 5 line (117 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0460 - 046f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0470 - 047f
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 5 line (117 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0460 - 046f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0470 - 047f
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+=====================================================================
+Found a 5 line (117 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x6a, 0x1F78}, {0x6a, 0x1F79}, {0x6a, 0x1F7C}, {0x6a, 0x1F7D}, {0xec, 0x0137}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 1ff8 - 1fff
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2100 - 2107
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2108 - 210f
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // 2110 - 2117
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0980 - 098f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0990 - 099f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 09a0 - 09af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 09b0 - 09bf
+=====================================================================
+Found a 8 line (117 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/renderer.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unogallery/unogalitem.cxx
+
+		aAny <<= uno::Reference< gallery::XGalleryItem >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XPropertySet >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XPropertyState >*)0) )
+		aAny <<= uno::Reference< beans::XPropertyState >(this);
+	else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertySet >*)0) )
+		aAny <<= uno::Reference< beans::XMultiPropertySet >(this);
+	else
+=====================================================================
+Found a 13 line (117 tokens) duplication in the following files: 
+Starting at line 1014 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1112 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							aCol0 = pAcc->GetPixel( nTmpY--, --nTmpX );
+							cR1 = MAP( aCol0.GetRed(), aCol1.GetRed(), nTmpFX );
+							cG1 = MAP( aCol0.GetGreen(), aCol1.GetGreen(), nTmpFX );
+							cB1 = MAP( aCol0.GetBlue(), aCol1.GetBlue(), nTmpFX );
+
+							aColRes.SetRed( MAP( cR0, cR1, nTmpFY ) );
+							aColRes.SetGreen( MAP( cG0, cG1, nTmpFY ) );
+							aColRes.SetBlue( MAP( cB0, cB1, nTmpFY ) );
+							pWAcc->SetPixel( nYDst, nXDst++, aColRes );
+						}
+					}
+				}
+			}
+=====================================================================
+Found a 34 line (117 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itiff/ccidecom.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itiff/ccidecom.cxx
+
+	{ 1728, 0x0065, 13 },
+	{ 1792, 0x0008, 11 },
+	{ 1856, 0x000c, 11 },
+	{ 1920, 0x000d, 11 },
+	{ 1984, 0x0012, 12 },
+	{ 2048, 0x0013, 12 },
+	{ 2112, 0x0014, 12 },
+	{ 2176, 0x0015, 12 },
+	{ 2240, 0x0016, 12 },
+	{ 2304, 0x0017, 12 },
+	{ 2368, 0x001c, 12 },
+	{ 2432, 0x001d, 12 },
+	{ 2496, 0x001e, 12 },
+	{ 2560, 0x001f, 12 },
+	{ 9999, 0x0001, 12 }	//	EOL
+};
+
+
+//---------------------------- 2D-Mode --------------------------------
+
+#define CCI2DMODE_UNCOMP   0
+#define CCI2DMODE_PASS     1
+#define CCI2DMODE_HORZ     2
+#define CCI2DMODE_VERT_L3  3
+#define CCI2DMODE_VERT_L2  4
+#define CCI2DMODE_VERT_L1  5
+#define CCI2DMODE_VERT_0   6
+#define CCI2DMODE_VERT_R1  7
+#define CCI2DMODE_VERT_R2  8
+#define CCI2DMODE_VERT_R3  9
+
+#define CCI2DModeTableSize 10
+
+const CCIHuffmanTableEntry CCI2DModeTable[CCI2DModeTableSize]={
+=====================================================================
+Found a 18 line (117 tokens) duplication in the following files: 
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uicategorydescription.cxx
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/windowstateconfiguration.cxx
+
+            throw(css::lang::IllegalArgumentException, css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException );
+
+        // XElementAccess
+        virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 
+            throw (::com::sun::star::uno::RuntimeException);
+        
+        virtual sal_Bool SAL_CALL hasElements() 
+            throw (::com::sun::star::uno::RuntimeException);
+
+        // container.XContainerListener
+        virtual void SAL_CALL     elementInserted( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL     elementRemoved ( const ContainerEvent& aEvent ) throw(RuntimeException);
+        virtual void SAL_CALL     elementReplaced( const ContainerEvent& aEvent ) throw(RuntimeException);
+
+        // lang.XEventListener
+        virtual void SAL_CALL disposing( const EventObject& aEvent ) throw(RuntimeException);
+    
+    protected:
+=====================================================================
+Found a 22 line (117 tokens) duplication in the following files: 
+Starting at line 3488 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/autorecovery.cxx
+Starting at line 3554 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/autorecovery.cxx
+
+void AutoRecovery::impl_forgetProgress(const AutoRecovery::TDocumentInfo&               rInfo    ,
+                                             ::comphelper::MediaDescriptor&             rArgs    ,
+                                       const css::uno::Reference< css::frame::XFrame >& xNewFrame)
+{
+    // external well known frame must be preferred (because it was created by ourself
+    // for loading documents into this frame)!
+    // But if no frame exists ... we can try to locate it using any frame bound to the provided
+    // document. Of course we must live without any frame in case the document does not exists at this
+    // point. But this state shouldnt occure. In such case xNewFrame should be valid ... hopefully .-)
+    css::uno::Reference< css::frame::XFrame > xFrame = xNewFrame;
+    if (
+        (!xFrame.is()       ) &&
+        (rInfo.Document.is())
+       )
+    {
+        css::uno::Reference< css::frame::XController > xController = rInfo.Document->getCurrentController();
+        if (xController.is())
+            xFrame = xController->getFrame();
+    }
+
+    // stop progress interception on corresponding frame.
+    css::uno::Reference< css::beans::XPropertySet > xFrameProps(xFrame, css::uno::UNO_QUERY);
+=====================================================================
+Found a 18 line (117 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menuconfiguration.cxx
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menuconfiguration.cxx
+
+		throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
+	}
+}
+
+PopupMenu* MenuConfiguration::CreateBookmarkMenu(
+	::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
+	const ::rtl::OUString& aURL )
+throw ( ::com::sun::star::lang::WrappedTargetException )
+{
+	if ( aURL == BOOKMARK_NEWMENU )
+		return new BmkMenu( rFrame, BmkMenu::BMK_NEWMENU );
+	else if ( aURL == BOOKMARK_WIZARDMENU )
+		return new BmkMenu( rFrame, BmkMenu::BMK_WIZARDMENU );
+	else
+		return NULL;
+}
+
+void MenuConfiguration::StoreMenuBarConfigurationToXML( 
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/WinImplHelper.cxx
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/WinImplHelper.cxx
+
+void SAL_CALL ListboxSetSelectedItem( HWND hwnd, const Any& aPosition, const Reference< XInterface >& rXInterface, sal_Int16 aArgPos )
+    throw( IllegalArgumentException )
+{
+    OSL_ASSERT( IsWindow( hwnd ) );
+
+     if ( !aPosition.hasValue( ) || 
+         ( (aPosition.getValueType( ) != getCppuType((sal_Int32*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int16*)0)) &&
+           (aPosition.getValueType( ) != getCppuType((sal_Int8*)0)) ) )
+         throw IllegalArgumentException(
+            OUString::createFromAscii( "invalid value type or any has no value" ),
+            rXInterface,
+            aArgPos );
+
+    sal_Int32 nPos;
+    aPosition >>= nPos;
+=====================================================================
+Found a 10 line (117 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+					const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+					
+					GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+					Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point		aDestPt( pA->GetPoint() );
+					const Size		aDestSize( pA->GetSize() );
+					const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long			nMoveX, nMoveY;
+=====================================================================
+Found a 4 line (117 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0980 - 098f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0990 - 099f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 09a0 - 09af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 09b0 - 09bf
+=====================================================================
+Found a 10 line (117 tokens) duplication in the following files: 
+Starting at line 1231 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+					const MetaFloatTransparentAction* pA = (const MetaFloatTransparentAction*) pMA;
+					
+					GDIMetaFile		aTmpMtf( pA->GetGDIMetaFile() );
+					Point			aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
+					const Size		aSrcSize( aTmpMtf.GetPrefSize() );
+					const Point		aDestPt( pA->GetPoint() );
+					const Size		aDestSize( pA->GetSize() );
+					const double	fScaleX = aSrcSize.Width() ? (double) aDestSize.Width() / aSrcSize.Width() : 1.0;
+					const double	fScaleY = aSrcSize.Height() ? (double) aDestSize.Height() / aSrcSize.Height() : 1.0;
+					long			nMoveX, nMoveY;
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/visobj.cxx
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+
+sal_Int32 SAL_CALL OleEmbeddedObject::getMapUnit( sal_Int64 nAspect )
+		throw ( uno::Exception,
+				uno::RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object is not loaded!\n" ),
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/testmoz/main.cxx
+Starting at line 137 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/testmoz/mozthread.cxx
+
+using namespace comphelper;
+using namespace cppu;
+using namespace rtl;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::registry;
+using namespace com::sun::star::ucb;
+using namespace com::sun::star::beans;
+
+//using namespace com::sun::star;
+using namespace connectivity;
+using namespace com::sun::star::sdb;
+using namespace com::sun::star::sdbc;
+using namespace com::sun::star::sdbcx;
+using namespace ::com::sun::star::container;
+using namespace com::sun::star::registry;
+=====================================================================
+Found a 34 line (117 tokens) duplication in the following files: 
+Starting at line 677 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx
+
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossCommit(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossCommit(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossRollback(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 level ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 16 line (117 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/nodeimplobj.cxx
+
+void DeferredGroupNodeImpl::revertCommit(data::Accessor const& _aAccessor, SubtreeChange& rChanges)
+{
+	OSL_ENSURE(!rChanges.isSetNodeChange(),"ERROR: Change type SET does not match group");
+
+	for(SubtreeChange::MutatingChildIterator it = rChanges.begin_changes(), stop = rChanges.end_changes();
+		it != stop;
+		++it)
+	{
+		Name aValueName = makeNodeName(it->getNodeName(), Name::NoValidate());
+
+        MemberChanges::iterator itStoredChange = m_aChanges.find(aValueName);
+
+        if (itStoredChange != m_aChanges.end())
+        {
+            OSL_ENSURE( it->ISA(ValueChange) , "Unexpected type of element change");
+			if (!it->ISA(ValueChange)) continue;
+=====================================================================
+Found a 10 line (117 tokens) duplication in the following files: 
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/streaming/otransactedfilestream.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/opostponedtruncationstream.cxx
+
+	if ( bDeleteIfNotCommited )
+		bDelete = !xFileAccess->exists( aURL );
+
+	uno::Reference< io::XStream > xOrigStream = xFileAccess->openFileReadWrite( aURL );
+	uno::Reference< io::XTruncate > xOrigTruncate( xOrigStream, uno::UNO_QUERY_THROW );
+	uno::Reference< io::XSeekable > xOrigSeekable( xOrigStream, uno::UNO_QUERY_THROW );
+	uno::Reference< io::XInputStream > xOrigInStream = xOrigStream->getInputStream();
+	uno::Reference< io::XOutputStream > xOrigOutStream = xOrigStream->getOutputStream();
+	if ( !xOrigInStream.is() || !xOrigOutStream.is() )
+		throw uno::RuntimeException();
+=====================================================================
+Found a 23 line (117 tokens) duplication in the following files: 
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataPoint.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/CandleStickChartType.cxx
+
+        || nHandle == PROP_CANDLESTICKCHARTTYPE_BLACK_DAY )
+    {
+        uno::Any aOldValue;
+        Reference< util::XModifyBroadcaster > xBroadcaster;
+        this->getFastPropertyValue( aOldValue, nHandle );
+        if( aOldValue.hasValue() &&
+            (aOldValue >>= xBroadcaster) &&
+            xBroadcaster.is())
+        {
+            ModifyListenerHelper::removeListener( xBroadcaster, m_xModifyEventForwarder );
+        }
+
+        OSL_ASSERT( rValue.getValueType().getTypeClass() == uno::TypeClass_INTERFACE );
+        if( rValue.hasValue() &&
+            (rValue >>= xBroadcaster) &&
+            xBroadcaster.is())
+        {
+            ModifyListenerHelper::addListener( xBroadcaster, m_xModifyEventForwarder );
+        }
+    }
+
+    ::property::OPropertySet::setFastPropertyValue_NoBroadcast( nHandle, rValue );
+}
+=====================================================================
+Found a 7 line (117 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/filter/XMLFilter.cxx
+Starting at line 537 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+	PropertyMapEntry aImportInfoMap[] =
+	{
+		// #80365# necessary properties for XML progress bar at load time
+		{ MAP_LEN( "ProgressRange" ),	0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+		{ MAP_LEN( "ProgressMax" ),		0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+		{ MAP_LEN( "ProgressCurrent" ),	0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+		{ MAP_LEN( "Preview" ),			0, &::getCppuType((const sal_Bool*)0),  ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+=====================================================================
+Found a 17 line (117 tokens) duplication in the following files: 
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+Starting at line 840 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+
+                (double(v)*2.0)/maSteps;
+            return T( static_cast<value_type>(maColor1.r+(maColor2.r-maColor1.r)*w),
+                      static_cast<value_type>(maColor1.g+(maColor2.g-maColor1.g)*w),
+                      static_cast<value_type>(maColor1.b+(maColor2.b-maColor1.b)*w),
+                      static_cast<value_type>(maColor1.a+(maColor2.a-maColor1.a)*w));
+        }
+
+        unsigned int maSteps;
+        const T      maColor1;
+        const T      maColor2;
+    };
+
+	//////////////////////////////////////////////////////////////////////////////////
+	// color_generator_adaptor
+	//////////////////////////////////////////////////////////////////////////////////
+
+    template<typename T> struct color_generator_adaptor
+=====================================================================
+Found a 18 line (117 tokens) duplication in the following files: 
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+	nr_gpr++;
+
+	// stack space
+	// parameters
+	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
+	void ** pCppArgs = pUnoArgs + nParams;
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+=====================================================================
+Found a 22 line (117 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/runtime/stdobj1.cxx
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/runtime/stdobj1.cxx
+Starting at line 531 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/runtime/stdobj1.cxx
+
+void SbStdClipboard::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+								 const SfxHint& rHint, const TypeId& rHintType )
+{
+	const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
+
+	if( pHint )
+	{
+		if( pHint->GetId() == SBX_HINT_INFOWANTED )
+		{
+			SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
+			return;
+		}
+
+		SbxVariable* pVar 	= pHint->GetVar();
+		SbxArray*    pPar_ 	= pVar->GetParameters();
+		USHORT       nWhich	= (USHORT)pVar->GetUserData();
+		BOOL		 bWrite = pHint->GetId() == SBX_HINT_DATACHANGED;
+
+		// Methods
+		switch( nWhich )
+		{
+			case METH_CLEAR:			MethClear( pVar, pPar_, bWrite ); return;
+=====================================================================
+Found a 13 line (117 tokens) duplication in the following files: 
+Starting at line 706 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/jstest.cxx
+Starting at line 723 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/jstest.cxx
+
+	{ TT_IDENTIFIER },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_OPERATOR, TT_OPERATOR, TT_WHITESPACE, TT_IDENTIFIER },
+	{ TT_OPERATOR, TT_OPERATOR, TT_WHITESPACE, TT_IDENTIFIER, TT_WHITESPACE, TT_OPERATOR, TT_OPERATOR, TT_WHITESPACE, TT_KEYWORD, TT_WHITESPACE, TT_OPERATOR, TT_OPERATOR },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_COMMENT },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_COMMENT },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_OPERATOR, TT_OPERATOR, TT_WHITESPACE, TT_IDENTIFIER, TT_WHITESPACE, TT_COMMENT },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_COMMENT },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_COMMENT },
+	{ TT_IDENTIFIER, TT_WHITESPACE, TT_OPERATOR, TT_OPERATOR, TT_WHITESPACE, TT_IDENTIFIER },
+	{ TT_KEYWORD, TT_WHITESPACE, TT_COMMENT }
+};
+
+TokenTypes test3TTBasic[][12] = { { TT_IDENTIFIER, TT_WHITESPACE, TT_IDENTIFIER, TT_WHITESPACE, TT_IDENTIFIER, TT_WHITESPACE, TT_KEYWORD },
+=====================================================================
+Found a 22 line (117 tokens) duplication in the following files: 
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/localizationmgr.cxx
+Starting at line 597 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/localizationmgr.cxx
+
+						const Locale& rDefaultLocale = xSourceStringResolver->getDefaultLocale();
+
+						const Locale* pLocales = aLocaleSeq.getConstArray();
+						sal_Int32 i;
+						for ( i = 0; i < nPropStringCount; ++i )
+						{
+							::rtl::OUString aSourceIdStr = pPropStrings[i];
+							::rtl::OUString aPureSourceIdStr = aSourceIdStr.copy( 1 );
+
+							sal_Int32 nUniqueId = xStringResourceManager->getUniqueNumericId();
+							::rtl::OUString aPureIdStr = ::rtl::OUString::valueOf( nUniqueId );
+							aPureIdStr += aIdStrBase;
+
+							// Set Id for all locales
+							for( sal_Int32 iLocale = 0 ; iLocale < nLocaleCount ; iLocale++ )
+							{
+								const Locale& rLocale = pLocales[ iLocale ];
+
+								::rtl::OUString aResStr;
+								try
+								{
+									aResStr = xSourceStringResolver->resolveStringForLocale
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlCell.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlColumn.cxx
+
+    DBG_CTOR( rpt_OXMLRowColumn,NULL);
+
+    const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
+	const SvXMLTokenMap& rTokenMap = rImport.GetColumnTokenMap();
+
+	const sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
+	for(sal_Int16 i = 0; i < nLength; ++i)
+	{
+		OUString sLocalName;
+		const rtl::OUString sAttrName = _xAttrList->getNameByIndex( i );
+		const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
+		rtl::OUString sValue = _xAttrList->getValueByIndex( i );
+
+		switch( rTokenMap.Get( nPrefix, sLocalName ) )
+		{
+			case XML_TOK_COLUMN_STYLE_NAME:
+=====================================================================
+Found a 18 line (116 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+            base_type(alloc, src, back_color, inter, &filter) 
+        {}
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            calc_type fg[3];
+            calc_type src_alpha;
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            color_type* span = base_type::allocator().span();
+=====================================================================
+Found a 13 line (116 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 923 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+                value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+                calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+                if(alpha == base_mask)
+                {
+                    pixel_type v;
+                    ((value_type*)&v)[order_type::R] = c.r;
+                    ((value_type*)&v)[order_type::G] = c.g;
+                    ((value_type*)&v)[order_type::B] = c.b;
+                    ((value_type*)&v)[order_type::A] = c.a;
+                    do
+                    {
+                        *(pixel_type*)p = v;
+                        p += 4;
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx
+Starting at line 97 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartPlotAreaOOoTContext.cxx
+
+void XMLAxisOOoContext::StartElement(
+    const Reference< xml::sax::XAttributeList >& rAttrList )
+{
+	OUString aLocation, aMacroName;
+	Reference< xml::sax::XAttributeList > xAttrList( rAttrList );
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, &aLocalName );
+
+        if( nPrefix == XML_NAMESPACE_CHART &&
+            IsXMLToken( aLocalName, XML_CLASS ) )
+=====================================================================
+Found a 6 line (116 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 37 line (116 tokens) duplication in the following files: 
+Starting at line 616 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/window2.cxx
+Starting at line 682 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/window2.cxx
+
+    Polygon aPoly( ImplLogicToDevicePixel( rPoly ) );
+
+    SalGraphics* pGraphics;
+
+    if ( nFlags & SHOWTRACK_WINDOW )
+    {
+        if ( !IsDeviceOutputNecessary() )
+            return;
+
+        // we need a graphics
+        if ( !mpGraphics )
+        {
+            if ( !ImplGetGraphics() )
+                return;
+        }
+
+        if ( mbInitClipRegion )
+            ImplInitClipRegion();
+
+        if ( mbOutputClipped )
+            return;
+
+        pGraphics = mpGraphics;
+    }
+    else
+    {
+        pGraphics = ImplGetFrameGraphics();
+
+        if ( nFlags & SHOWTRACK_CLIP )
+        {
+            Point aPoint( mnOutOffX, mnOutOffY );
+            Region aRegion( Rectangle( aPoint,
+                                       Size( mnOutWidth, mnOutHeight ) ) );
+            ImplClipBoundaries( aRegion, FALSE, FALSE );
+            ImplSelectClipRegion( pGraphics, aRegion, this );
+        }
+    }
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 670 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impimage.cxx
+Starting at line 697 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impimage.cxx
+
+				else if( pAcc->GetScanlineFormat() == BMP_FORMAT_8BIT_PAL &&
+						pMsk->GetScanlineFormat() == BMP_FORMAT_1BIT_MSB_PAL )
+				{
+					// optimized version
+					const BYTE cAccTest = aAccWhite.GetIndex();
+					const BYTE cMskTest = aMskWhite.GetIndex();
+
+					for( long nY = nTop; nY < nBottom; nY++ )
+					{
+						Scanline pAccScan = pAcc->GetScanline( nY );
+						Scanline pMskScan = pMsk->GetScanline( nY );
+
+						for( long nX = nCurLeft; nX < nCurRight; nX++ )
+						{
+							if( ( cMskTest == ( pMskScan[ nX >> 3 ] & ( 1 << ( 7 - ( nX & 7 ) ) ) ? 1 : 0 ) ) ||
+								( cAccTest == pAccScan[ nX ] ) )
+=====================================================================
+Found a 31 line (116 tokens) duplication in the following files: 
+Starting at line 242 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/app/salinst.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/salinst.cxx
+
+SalYieldMutex::SalYieldMutex()
+{
+	mnCount 	= 0;
+	mnThreadId	= 0;
+}
+
+void SalYieldMutex::acquire()
+{
+	OMutex::acquire();
+	mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
+	mnCount++;
+}
+
+void SalYieldMutex::release()
+{
+	if ( mnThreadId == NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
+	{
+		if ( mnCount == 1 )
+			mnThreadId = 0;
+		mnCount--;
+	}
+	OMutex::release();
+}
+
+sal_Bool SalYieldMutex::tryToAcquire()
+{
+	if ( OMutex::tryToAcquire() )
+	{
+		mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
+		mnCount++;
+		return True;
+=====================================================================
+Found a 14 line (116 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/attributesmap.cxx
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/attributesmap.cxx
+
+    Reference< XNode > SAL_CALL CAttributesMap::removeNamedItem(const OUString& name) throw (RuntimeException)
+    {
+        Reference< XNode > aNode;
+        xmlNodePtr pNode = m_pElement->m_aNodePtr;
+        if (pNode != NULL)
+        {
+            OString o1 = OUStringToOString(name, RTL_TEXTENCODING_UTF8);
+            xmlChar* xName = (xmlChar*)o1.getStr();
+            xmlAttrPtr cur = pNode->properties;
+            while (cur != NULL)
+            {
+                if( strcmp((char*)xName, (char*)cur->name) == 0)
+                {
+                    aNode = Reference< XNode >(static_cast< CNode* >(CNode::get((xmlNodePtr)cur)));
+=====================================================================
+Found a 36 line (116 tokens) duplication in the following files: 
+Starting at line 622 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 650 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+        ucb::TransferInfo aInfo;
+        if ( !( aCommand.Argument >>= aInfo ) )
+		{
+            OSL_ENSURE( sal_False, "Wrong argument type!" );
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+		}
+
+        transfer( aInfo, Environment );
+	}
+	else
+	{
+		//////////////////////////////////////////////////////////////////
+		// Unsupported command
+		//////////////////////////////////////////////////////////////////
+
+        ucbhelper::cancelCommandExecution(
+            uno::makeAny( ucb::UnsupportedCommandException(
+                                rtl::OUString(),
+                                static_cast< cppu::OWeakObject * >( this ) ) ),
+            Environment );
+        // Unreachable
+    }
+
+	return aRet;
+}
+
+//=========================================================================
+// virtual
+void SAL_CALL Content::abort( sal_Int32 /*CommandId*/ )
+=====================================================================
+Found a 30 line (116 tokens) duplication in the following files: 
+Starting at line 584 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 595 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+		sal_Bool bDeletePhysical = sal_False;
+		aCommand.Argument >>= bDeletePhysical;
+        destroy( bDeletePhysical, Environment );
+
+		// Remove own and all children's persistent data.
+        if ( !removeData() )
+        {
+            uno::Any aProps
+                = uno::makeAny(
+                         beans::PropertyValue(
+                             rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                               "Uri")),
+                             -1,
+                             uno::makeAny(m_xIdentifier->
+                                              getContentIdentifier()),
+                             beans::PropertyState_DIRECT_VALUE));
+            ucbhelper::cancelCommandExecution(
+                ucb::IOErrorCode_CANT_WRITE,
+                uno::Sequence< uno::Any >(&aProps, 1),
+                Environment,
+                rtl::OUString::createFromAscii(
+                    "Cannot remove persistent data!" ),
+                this );
+            // Unreachable
+        }
+
+		// Remove own and all children's Additional Core Properties.
+		removeAdditionalPropertySet( sal_True );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+=====================================================================
+Found a 25 line (116 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 156 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+DataSupplier::DataSupplier(
+            const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+            const rtl::Reference< Content >& rContent,
+            sal_Int32 nOpenMode )
+: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) )
+{
+}
+
+//=========================================================================
+// virtual
+DataSupplier::~DataSupplier()
+{
+	delete m_pImpl;
+}
+
+//=========================================================================
+// virtual
+rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aId;
+		if ( aId.getLength() )
+=====================================================================
+Found a 27 line (116 tokens) duplication in the following files: 
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/gen.cxx
+
+			cAry[1] |= 0x80;
+			nNum ^= 0xFFFFFFFF;
+		}
+		if ( nNum )
+		{
+			cAry[i] = (unsigned char)(nNum & 0xFF);
+			nNum >>= 8;
+			i++;
+
+			if ( nNum )
+			{
+				cAry[i] = (unsigned char)(nNum & 0xFF);
+				nNum >>= 8;
+				i++;
+
+				if ( nNum )
+				{
+					cAry[i] = (unsigned char)(nNum & 0xFF);
+					nNum >>= 8;
+					i++;
+
+					if ( nNum )
+					{
+						cAry[i] = (unsigned char)(nNum & 0xFF);
+						nNum >>= 8;
+						i++;
+						cAry[1] |= 0x40;
+=====================================================================
+Found a 21 line (116 tokens) duplication in the following files: 
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/flddok.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/fldfunc.cxx
+
+    aListItemsLB.SetSelectHdl(aListEnableLk);
+
+	if( !IsRefresh() )
+	{
+		String sUserData = GetUserData();
+		if(sUserData.GetToken(0, ';').EqualsIgnoreCaseAscii(USER_DATA_VERSION_1))
+		{
+			String sVal = sUserData.GetToken(1, ';');
+			USHORT nVal = sVal.ToInt32();
+			if(nVal != USHRT_MAX)
+			{
+				for(USHORT i = 0; i < aTypeLB.GetEntryCount(); i++)
+					if(nVal == (USHORT)(ULONG)aTypeLB.GetEntryData(i))
+					{
+						aTypeLB.SelectEntryPos(i);
+						break;
+					}
+			}
+		}
+	}
+	TypeHdl(0);
+=====================================================================
+Found a 22 line (116 tokens) duplication in the following files: 
+Starting at line 3624 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+Starting at line 4235 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+        const uno::Sequence< ::rtl::OUString >& rPropertyNames )
+            throw (uno::RuntimeException)
+{
+    vos::OGuard aGuard(Application::GetSolarMutex());
+    uno::Sequence< uno::Any > aValues;
+
+    // workaround for bad designed API
+    try
+    {
+        aValues = GetPropertyValues_Impl( rPropertyNames );
+    }
+    catch (beans::UnknownPropertyException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property exception caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+    catch (lang::WrappedTargetException &)
+    {
+        throw uno::RuntimeException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "WrappedTargetException caught" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+    }
+
+    return aValues;
+}
+=====================================================================
+Found a 19 line (116 tokens) duplication in the following files: 
+Starting at line 1191 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/EnhancedPDFExportHelper.cxx
+Starting at line 1433 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/EnhancedPDFExportHelper.cxx
+
+        SwFieldType* pType = mrSh.GetFldType( RES_GETREFFLD, aEmptyStr );
+        SwClientIter aIter( *pType );
+        const SwClient * pFirst = aIter.GoStart();
+        while( pFirst )
+        {
+            if( ((SwFmtFld*)pFirst)->GetTxtFld() &&
+                ((SwFmtFld*)pFirst)->IsFldInDoc())
+            {
+                const SwTxtNode* pTNd =
+                    (SwTxtNode*)((SwFmtFld*)pFirst)->GetTxtFld()->GetpTxtNode();
+               ASSERT( 0 != pTNd, "Enhanced pdf export - text node is missing" )
+
+                // 1. Check if the whole paragraph is hidden
+                // 2. Move to the field
+                // 3. Check for hidden text attribute
+                if ( !pTNd->IsHidden() &&
+                      mrSh.GotoFld( *(SwFmtFld*)pFirst ) &&
+                     !mrSh.SelectHiddenRange() )
+                {
+=====================================================================
+Found a 24 line (116 tokens) duplication in the following files: 
+Starting at line 1942 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+Starting at line 2037 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/poolfmt.cxx
+
+            aFmt.SetBulletFont(  &numfunc::GetDefBulletFont() );
+            // <--
+
+			static const USHORT aAbsSpace[ MAXLEVEL ] =
+				{
+//				cm: 0,4  0,8  1,2  1,6  2,0   2,4   2,8   3,2   3,6   4,0
+					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
+				};
+#ifdef USE_MEASUREMENT
+			static const USHORT aAbsSpaceInch[ MAXLEVEL ] =
+				{
+					227, 454, 680, 907, 1134, 1361, 1587, 1814, 2041, 2268
+				};
+			const USHORT* pArr = MEASURE_METRIC ==
+								GetAppLocaleData().getMeasurementSystemEnum()
+									? aAbsSpace
+									: aAbsSpaceInch;
+#else
+			const USHORT* pArr = aAbsSpace;
+#endif
+
+			aFmt.SetFirstLineOffset( - (*pArr) );
+			for( n = 0; n < MAXLEVEL; ++n, ++pArr )
+			{
+=====================================================================
+Found a 15 line (116 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		MISC_3D_OBJ_PROPERTIES
+		FILL_PROPERTIES
+		LINE_PROPERTIES
+		LINE_PROPERTIES_START_END
+		SHAPE_DESCRIPTOR_PROPERTIES
+		MISC_OBJ_PROPERTIES
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return a3DPolygonObjectPropertyMap_Impl;
+=====================================================================
+Found a 36 line (116 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/txencbox.cxx
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/txencbox.cxx
+
+        rtl_TextEncoding nEnc = rtl_TextEncoding( aEncs[j] );
+        if ( nExcludeInfoFlags )
+        {
+            if ( !rtl_getTextEncodingInfo( nEnc, &aInfo ) )
+                bInsert = FALSE;
+            else
+            {
+                if ( (aInfo.Flags & nExcludeInfoFlags) == 0 )
+                {
+                    if ( (nExcludeInfoFlags & RTL_TEXTENCODING_INFO_UNICODE) &&
+                            ((nEnc == RTL_TEXTENCODING_UCS2) ||
+                            nEnc == RTL_TEXTENCODING_UCS4) )
+                        bInsert = FALSE;    // InfoFlags don't work for Unicode :-(
+                }
+                else if ( (aInfo.Flags & nButIncludeInfoFlags) == 0 )
+                    bInsert = FALSE;
+            }
+        }
+        if ( bInsert )
+        {
+            if ( bExcludeImportSubsets )
+            {
+                switch ( nEnc )
+                {
+                    // subsets of RTL_TEXTENCODING_GB_18030
+                    case RTL_TEXTENCODING_GB_2312 :
+                    case RTL_TEXTENCODING_GBK :
+                    case RTL_TEXTENCODING_MS_936 :
+                        bInsert = FALSE;
+                    break;
+                }
+            }
+            // CharsetMap offers a RTL_TEXTENCODING_DONTKNOW for internal use,
+            // makes no sense here and would result in an empty string as list
+            // entry.
+            if ( bInsert && nEnc != RTL_TEXTENCODING_DONTKNOW )
+=====================================================================
+Found a 25 line (116 tokens) duplication in the following files: 
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/hyperlabel.cxx
+Starting at line 963 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/roadmap.cxx
+
+	void ORoadmapIDHyperLabel::DataChanged( const DataChangedEvent& rDCEvt )
+	{
+		const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+		FixedText::DataChanged( rDCEvt );
+		if ((( rDCEvt.GetType() == DATACHANGED_SETTINGS	)	||
+			( rDCEvt.GetType() == DATACHANGED_DISPLAY	))	&&
+			( rDCEvt.GetFlags() & SETTINGS_STYLE		))
+		{
+			const Color& rGBColor = GetControlBackground();
+			if (rGBColor == COL_TRANSPARENT)
+				SetTextColor( rStyleSettings.GetFieldTextColor( ) );
+			else
+			{
+				SetControlBackground(rStyleSettings.GetHighlightColor());
+				SetTextColor( rStyleSettings.GetHighlightTextColor( ) );
+			}
+			Invalidate();
+		}
+	}
+
+
+
+
+//.........................................................................
+}	// namespace svt
+=====================================================================
+Found a 26 line (116 tokens) duplication in the following files: 
+Starting at line 820 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+
+	eErrCode = find (e, *m_pNode[0]);
+	if (eErrCode != store_E_None)
+		return eErrCode;
+
+	// Find 'Source' Index.
+	sal_uInt16 i = m_pNode[0]->find(e), n = m_pNode[0]->usageCount();
+	if (!(i < n))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Check for exact match.
+	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Existing 'Source' entry. Check address.
+	e = m_pNode[0]->m_pData[i];
+	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+=====================================================================
+Found a 22 line (116 tokens) duplication in the following files: 
+Starting at line 611 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/linkdlg2.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/linkdlg.cxx
+
+    Links().Clear();
+	pLinkMgr = pNewMgr;
+
+	if( pLinkMgr )
+	{
+		SvBaseLinks& rLnks = (SvBaseLinks&)pLinkMgr->GetLinks();
+		for( USHORT n = 0; n < rLnks.Count(); ++n )
+		{
+			SvBaseLinkRef* pLinkRef = rLnks[ n ];
+			if( !pLinkRef->Is() )
+			{
+				rLnks.Remove( n, 1 );
+				--n;
+				continue;
+			}
+			if( (*pLinkRef)->IsVisible() )
+				InsertEntry( **pLinkRef );
+		}
+
+		if( rLnks.Count() )
+		{
+            SvLBoxEntry* pEntry = Links().GetEntry( 0 );
+=====================================================================
+Found a 22 line (116 tokens) duplication in the following files: 
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/shlxthandler/shlxthdl.cxx
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/shlxthandler/shlxthdl.cxx
+
+        std::string iid = ClsidToString(IID_IExtractImage);
+        std::string tmp;
+    
+        for (size_t i = 0; i < OOFileExtensionTableSize; i++)
+        {
+            tmp = SHELLEX_IID_ENTRY;
+    
+            SubstitutePlaceholder(tmp, EXTENSION_PLACEHOLDER, OOFileExtensionTable[i].ExtensionAnsi);
+            SubstitutePlaceholder(tmp, GUID_PLACEHOLDER, iid);
+    
+            DeleteRegistryKey(HKEY_CLASSES_ROOT, tmp.c_str());
+    
+            // if there are no further subkey below .ext\\shellex
+            // delete the whole subkey    
+            tmp = SHELLEX_ENTRY;    
+            SubstitutePlaceholder(tmp, EXTENSION_PLACEHOLDER, OOFileExtensionTable[i].ExtensionAnsi);
+    
+            bool HasSubKeys = true;
+            if (HasSubkeysRegistryKey(HKEY_CLASSES_ROOT, tmp.c_str(), HasSubKeys) && !HasSubKeys)
+                DeleteRegistryKey(HKEY_CLASSES_ROOT, tmp.c_str());
+        }    
+        return UnregisterComComponent(CLSID_THUMBVIEWER_HANDLER);
+=====================================================================
+Found a 25 line (116 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/basedlgs.cxx
+Starting at line 481 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/basedlgs.cxx
+
+long SfxFloatingWindow::Notify( NotifyEvent& rEvt )
+
+/*      [Beschreibung]
+
+	Wenn ein ModelessDialog aktiviert wird, wird sein ViewFrame aktiviert.
+	Notwendig ist das bei PlugInFrames.
+*/
+
+{
+	if ( rEvt.GetType() == EVENT_GETFOCUS )
+	{
+        pBindings->SetActiveFrame( pImp->pMgr->GetFrame() );
+        pImp->pMgr->Activate_Impl();
+        Window* pWindow = rEvt.GetWindow();
+        ULONG nHelpId  = 0;
+        while ( !nHelpId && pWindow )
+        {
+            nHelpId = pWindow->GetHelpId();
+            pWindow = pWindow->GetParent();
+        }
+
+        if ( nHelpId )
+            SfxHelp::OpenHelpAgent( pBindings->GetDispatcher_Impl()->GetFrame()->GetFrame(), nHelpId );
+	}
+	else if ( rEvt.GetType() == EVENT_LOSEFOCUS )
+=====================================================================
+Found a 19 line (116 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/bastyp/helper.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/ucbhelper.cxx
+
+sal_Bool UCBContentHelper::Transfer_Impl( const String& rSource, const String& rDest, sal_Bool bMoveData, sal_Int32 nNameClash )
+{
+	sal_Bool bRet = sal_True, bKillSource = sal_False;
+    INetURLObject aSourceObj( rSource );
+    DBG_ASSERT( aSourceObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" );
+
+    INetURLObject aDestObj( rDest );
+    DBG_ASSERT( aDestObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" );
+	if ( bMoveData && aSourceObj.GetProtocol() != aDestObj.GetProtocol() )
+	{
+		bMoveData = sal_False;
+		bKillSource = sal_True;
+	}
+	String aName = aDestObj.getName();
+	aDestObj.removeSegment();
+	aDestObj.setFinalSlash();
+
+	try
+	{
+=====================================================================
+Found a 27 line (116 tokens) duplication in the following files: 
+Starting at line 557 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/slidvish.cxx
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/slidvish.cxx
+
+			Rectangle	aZoomRect, aFullRect;
+			SdPage* 	pPage;
+			USHORT		nPageCnt = GetDoc()->GetSdPageCount(PK_STANDARD);
+			USHORT		nPageNum = 0;
+			BOOL		bHasSelection = FALSE;
+
+			while ( nPageNum < nPageCnt )
+			{
+				const Rectangle aRect( pSlideView->GetPageArea( nPageNum ) );
+
+                pPage = GetDoc()->GetSdPage( nPageNum, PK_STANDARD );
+
+				if( pPage->IsSelected() )
+				{
+					bHasSelection = TRUE;
+					aZoomRect.Union( aRect );
+
+                    if( rReq.GetSlot() == SID_SIZE_PAGE )
+						break;
+				}
+
+                aFullRect.Union( aRect );
+				nPageNum++;
+			}
+
+            if ( !bHasSelection )
+				aZoomRect = aFullRect;
+=====================================================================
+Found a 30 line (116 tokens) duplication in the following files: 
+Starting at line 1126 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvsh.cxx
+Starting at line 1024 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/slidvish.cxx
+
+		USHORT nCount = GetDoc()->GetSdPageCount(PK_STANDARD);
+
+		while (i < nCount && bDisable)
+		{
+			SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
+
+			if (pPage->IsSelected())
+			{
+				SdrObject* pObj = pPage->GetPresObj(PRESOBJ_OUTLINE);
+
+				if (pObj && !pObj->IsEmptyPresObj())
+				{
+					bDisable = FALSE;
+				}
+			}
+
+			i++;
+		}
+
+		if (bDisable)
+		{
+			rSet.DisableItem(SID_EXPAND_PAGE);
+		}
+	}
+
+	if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_SUMMARY_PAGE))
+	{
+		BOOL bDisable = TRUE;
+		USHORT i = 0;
+		USHORT nCount = GetDoc()->GetSdPageCount(PK_STANDARD);
+=====================================================================
+Found a 22 line (116 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drtxtob1.cxx
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drtxtob1.cxx
+
+                    const SvxULSpaceItem& rItem = (const SvxULSpaceItem&) aEditAttr.Get( EE_PARA_ULSPACE );
+					SvxULSpaceItem* pNewItem = (SvxULSpaceItem*) rItem.Clone();
+					long nUpper = pNewItem->GetUpper();
+
+					if( nSlot == SID_PARASPACE_INCREASE )
+						nUpper += 100;
+					else
+					{
+						nUpper -= 100;
+						nUpper = Max( (long) nUpper, 0L );
+					}
+					pNewItem->SetUpper( (USHORT) nUpper );
+
+					long nLower = pNewItem->GetLower();
+					if( nSlot == SID_PARASPACE_INCREASE )
+						nLower += 100;
+					else
+					{
+						nLower -= 100;
+						nLower = Max( (long) nLower, 0L );
+					}
+					pNewItem->SetLower( (USHORT) nLower );
+=====================================================================
+Found a 26 line (116 tokens) duplication in the following files: 
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unosrch.cxx
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unosrch.cxx
+
+		if( xShapes.is() && xShapes->getCount() > 0 )
+		{
+			pContext = new SearchContext_impl( xShapes );
+			xShape = pContext->firstShape();
+		}
+		else
+		{
+			xShapes = NULL;
+		}
+	}
+	else
+	{
+		xShape = mpShape;
+	}
+	while( xShape.is() )
+	{
+		// find in xShape
+		uno::Reference< text::XText >  xText(xShape, uno::UNO_QUERY);
+		uno::Reference< text::XTextRange >  xRange(xText, uno::UNO_QUERY);
+		uno::Reference< text::XTextRange >  xFound;
+
+		while( xRange.is() )
+		{
+			xFound = Search( xRange, pDescr );
+			if( !xFound.is() )
+				break;
+=====================================================================
+Found a 17 line (116 tokens) duplication in the following files: 
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cursuno.cxx
+Starting at line 399 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cursuno.cxx
+
+void SAL_CALL ScCellCursorObj::gotoPrevious() throw(uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	const ScRangeList& rRanges = GetRangeList();
+	DBG_ASSERT( rRanges.Count() == 1, "Range? Ranges?" );
+	ScRange aOneRange(*rRanges.GetObject(0));
+
+	aOneRange.Justify();
+	ScAddress aCursor(aOneRange.aStart);		//	bei Block immer den Start nehmen
+
+	ScMarkData aMark;	// not used with bMarked=FALSE
+	SCCOL nNewX = aCursor.Col();
+	SCROW nNewY = aCursor.Row();
+	SCTAB nTab  = aCursor.Tab();
+	ScDocShell* pDocSh = GetDocShell();
+	if ( pDocSh )
+		pDocSh->GetDocument()->GetNextPos( nNewX,nNewY, nTab, -1,0, FALSE,TRUE, aMark );
+=====================================================================
+Found a 30 line (116 tokens) duplication in the following files: 
+Starting at line 1175 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 1263 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+				pDoc->PutCell( aPos, pNewCell );
+
+				++nDocCol;
+			}
+		}
+		else
+			bError = TRUE;							// wrong size
+
+		++nDocRow;
+	}
+
+	BOOL bHeight = rDocShell.AdjustRowHeight( nStartRow, nEndRow, nTab );
+
+	if ( pUndoDoc )
+	{
+		ScMarkData aDestMark;
+		aDestMark.SelectOneTable( nTab );
+		rDocShell.GetUndoManager()->AddUndoAction(
+			new ScUndoPaste( &rDocShell,
+				nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab, aDestMark,
+				pUndoDoc, NULL, IDF_CONTENTS, NULL,NULL,NULL,NULL, FALSE ) );
+	}
+
+	if (!bHeight)
+		rDocShell.PostPaint( rRange, PAINT_GRID );		// AdjustRowHeight may have painted already
+
+	rDocShell.SetDocumentModified();
+
+	return !bError;
+}
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+Starting at line 648 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+
+		ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+		if (bColumns)
+		{
+			pUndoDoc->InitUndo( pDoc, nTab, nTab, TRUE, FALSE );
+            pDoc->CopyToDocument( static_cast<SCCOL>(nStart), 0, nTab,
+                    static_cast<SCCOL>(nEnd), MAXROW, nTab, IDF_NONE, FALSE,
+                    pUndoDoc );
+		}
+		else
+		{
+			pUndoDoc->InitUndo( pDoc, nTab, nTab, FALSE, TRUE );
+			pDoc->CopyToDocument( 0, nStart, nTab, MAXCOL, nEnd, nTab, IDF_NONE, FALSE, pUndoDoc );
+		}
+
+		rDocShell.GetUndoManager()->AddUndoAction(
+			new ScUndoDoOutline( &rDocShell,
+=====================================================================
+Found a 20 line (116 tokens) duplication in the following files: 
+Starting at line 1448 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 875 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_SocketAddr.cxx
+
+		CPPUNIT_TEST( getFamilyOfSocketAddr_001 );		
+		CPPUNIT_TEST_SUITE_END( );
+		
+	}; // class getFamilyOfSocketAddr
+	
+// -----------------------------------------------------------------------------
+
+
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::ctors, "osl_SocketAddr"); 
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::is, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getHostname, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getPort, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::setPort, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::setAddr, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getAddr, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::operator_equal, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getSocketAddrHandle, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getLocalHostname, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::resolveHostname, "osl_SocketAddr");
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::gettheServicePort, "osl_SocketAddr");
+=====================================================================
+Found a 23 line (116 tokens) duplication in the following files: 
+Starting at line 3518 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 3826 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_006_Int32 : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+        {
+=====================================================================
+Found a 29 line (116 tokens) duplication in the following files: 
+Starting at line 408 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/hyphdsp.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/hyphdsp.cxx
+
+									nChkIndex, rProperties );
+
+                    pEntry->aFlags.nLastTriedSvcIndex = (INT16) i;
+					++i;
+
+                    // if language is not supported by the services
+                    // remove it from the list.
+                    if (rHyph.is()  &&  !rHyph->hasLocale( rLocale ))
+                        aSvcList.Remove( nLanguage );
+				}
+			}
+		}	// if (xEntry.is())
+	}
+
+	if (bWordModified  &&  xRes.is())
+		xRes = RebuildHyphensAndControlChars( rWord, xRes );
+
+    if (xRes.is()  &&  xRes->getWord() != rWord)
+    {
+        xRes = new HyphenatedWord( rWord, nLanguage, xRes->getHyphenationPos(),
+                                   xRes->getHyphenatedWord(),
+                                   xRes->getHyphenPos() );
+    }
+
+	return xRes;
+}
+
+
+Reference< XPossibleHyphens > SAL_CALL
+=====================================================================
+Found a 13 line (116 tokens) duplication in the following files: 
+Starting at line 1544 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1960 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+            TESTAFF(rv->astr, pseudoroot, rv->alen))) {
+                st[i] = ch;
+                continue;
+	}
+
+            // check non_compound flag in suffix and prefix
+            if ((rv) && !hu_mov_rule &&
+                ((pfx && ((PfxEntry*)pfx)->getCont() &&
+                    TESTAFF(((PfxEntry*)pfx)->getCont(), compoundforbidflag, 
+                        ((PfxEntry*)pfx)->getContLen())) ||
+                (sfx && ((SfxEntry*)sfx)->getCont() &&
+                    TESTAFF(((SfxEntry*)sfx)->getCont(), compoundforbidflag, 
+                        ((SfxEntry*)sfx)->getContLen())))) {
+=====================================================================
+Found a 6 line (116 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 18 line (116 tokens) duplication in the following files: 
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 804 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 6 line (116 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_mask.h
+
+   0xf8, 0x7f, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 18 line (116 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 804 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 22 line (116 tokens) duplication in the following files: 
+Starting at line 737 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/actimpr.cxx
+Starting at line 770 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/actimpr.cxx
+
+	if ( ( nPoints > 1 ) && ImplCreateShape( rtl::OUString::createFromAscii("com.sun.star.drawing.PolyLineShape") ) )
+	{
+		drawing::PointSequenceSequence aRetval;
+
+		// Polygone innerhalb vrobereiten
+		aRetval.realloc( 1 );
+
+		// Zeiger auf aeussere Arrays holen
+		drawing::PointSequence* pOuterSequence = aRetval.getArray();
+
+		// Platz in Arrays schaffen
+		pOuterSequence->realloc((sal_Int32)nPoints);
+
+		// Pointer auf arrays holen
+		awt::Point* pInnerSequence = pOuterSequence->getArray();
+
+		for( sal_uInt16 n = 0; n < nPoints; n++ )
+			*pInnerSequence++ = awt::Point( rPoly[ n ].X(), rPoly[n].Y() );
+
+		uno::Any aParam;
+		aParam <<= aRetval;
+		maXPropSet->setPropertyValue( rtl::OUString::createFromAscii("PolyPolygon"), aParam );
+=====================================================================
+Found a 24 line (116 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/cfgview.cxx
+Starting at line 745 of /local/ooo-build/ooo-build/src/oog680-m3/framework/test/typecfg/cfgview.cxx
+
+    sFiltersFramesetHTML.appendAscii( MODULFILTERS_HTML                                                                                     );
+    sFiltersFramesetHTML.appendAscii( "\" title=\"List\">\n"                                                                                );
+    sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\""                                                                                );  // generate frame "properties"
+    sFiltersFramesetHTML.appendAscii( TARGET_PROPERTIES                                                                                     );
+    sFiltersFramesetHTML.appendAscii( "\" src=\""                                                                                           );
+    sFiltersFramesetHTML.appendAscii( FILTERPROPERTIES_HTML                                                                                 );
+    sFiltersFramesetHTML.appendAscii( "\" title=\"Properties\">\n"                                                                          );
+    sFiltersFramesetHTML.appendAscii( "\t\t</frameset>\n"                                                                                   );  // close frameset cols
+    sFiltersFramesetHTML.appendAscii( "</html>\n"                                                                                           );  // close html
+
+    impl_writeFile( FRAMESET_FILTERS_HTML, U2B(sFiltersFramesetHTML.makeStringAndClear()) );
+
+	//-------------------------------------------------------------------------------------------------------------
+	// generate filter list (names and links only!)
+	// use same loop to generate filter property list!
+	OUStringBuffer sAllFiltersHTML( 10000 );
+	OUStringBuffer sFilterPropHTML( 10000 );
+
+	sAllFiltersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Filters\n\t\t</title>\n\t</head>\n\t<body>\n"										);	// open html
+	sAllFiltersHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Filter</strong></td></tr>\n"	);	// open table
+
+	sFilterPropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFilterProperties\n\t\t</title>\n\t</head>\n\t<body>\n"									);	// open html
+
+    css::uno::Sequence< ::rtl::OUString > lWriter ;
+=====================================================================
+Found a 12 line (116 tokens) duplication in the following files: 
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/menubarfactory.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/statusbarfactory.cxx
+
+    sal_Bool                             bPersistent( sal_True );
+
+    for ( sal_Int32 n = 0; n < Args.getLength(); n++ )
+    {
+        if ( Args[n].Name.equalsAscii( "ConfigurationSource" ))
+            Args[n].Value >>= xConfigSource;
+        else if ( Args[n].Name.equalsAscii( "Frame" ))
+            Args[n].Value >>= xFrame;
+        else if ( Args[n].Name.equalsAscii( "ResourceURL" ))
+            Args[n].Value >>= aResourceURL;
+        else if ( Args[n].Name.equalsAscii( "Persistent" ))
+            Args[n].Value >>= bPersistent;
+=====================================================================
+Found a 17 line (116 tokens) duplication in the following files: 
+Starting at line 1094 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 1459 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+
+sal_Bool SAL_CALL ModuleUIConfigurationManager::isDefaultSettings( const ::rtl::OUString& ResourceURL )
+throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+    sal_Int16 nElementType = RetrieveTypeFromResourceURL( ResourceURL );
+    
+    if (( nElementType == ::com::sun::star::ui::UIElementType::UNKNOWN ) || 
+        ( nElementType >= ::com::sun::star::ui::UIElementType::COUNT   ))
+        throw IllegalArgumentException();
+    else
+    {
+        ResetableGuard aGuard( m_aLock );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        UIElementData* pDataSettings = impl_findUIElementData( ResourceURL, nElementType, false );
+        if ( pDataSettings && pDataSettings->bDefaultNode )
+=====================================================================
+Found a 23 line (116 tokens) duplication in the following files: 
+Starting at line 1042 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/recentfilesmenucontroller.cxx
+
+			for ( sal_uInt32 i = 0; i < m_aRecentFilesItems.size(); i++ )
+			{
+				char menuShortCut[5] = "~n: ";
+
+				::rtl::OUString aMenuShortCut;
+				if ( i <= 9 )
+				{
+					if ( i == 9 )
+						aMenuShortCut = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "1~0: " ));
+					else
+					{
+						menuShortCut[1] = (char)( '1' + i );
+						aMenuShortCut = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( menuShortCut ));
+					}
+				}
+				else
+				{
+					aMenuShortCut = rtl::OUString::valueOf((sal_Int32)( i + 1 ));
+					aMenuShortCut += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": " ));
+				}
+
+				// Abbreviate URL
+                rtl::OUString	aURLString( aCmdPrefix + rtl::OUString::valueOf( sal_Int32( i )));
+=====================================================================
+Found a 19 line (116 tokens) duplication in the following files: 
+Starting at line 104 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/SalAquaFolderPicker.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::ui::dialogs;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+
+//------------------------------------------------------------------------
+// helper functions
+//------------------------------------------------------------------------
+
+namespace
+{
+	// controling event notifications    
+	uno::Sequence<rtl::OUString> SAL_CALL FolderPicker_getSupportedServiceNames()
+	{
+		uno::Sequence<rtl::OUString> aRet(3);
+        aRet[0] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.FolderPicker" );
+		aRet[1] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.SystemFolderPicker" );
+		aRet[2] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.GtkFolderPicker" );
+=====================================================================
+Found a 4 line (116 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4db0 - 4dbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4dc0 - 4dcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4dd0 - 4ddf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 4de0 - 4def
+=====================================================================
+Found a 26 line (116 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfuno.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+
+void singlecomponent_writeInfo( Reference< XRegistryKey >& xNewKey, const Sequence< OUString > & rSNL )
+{
+	const OUString * pArray = rSNL.getConstArray();
+	for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+		xNewKey->createKey( pArray[nPos] );
+}
+
+sal_Bool SAL_CALL component_writeInfo(
+	void * /* pServiceManager */, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( XMLFilterDialogComponent_getImplementationName() ) ); 
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 1083 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/feed/updatefeed.cxx
+Starting at line 1671 of /local/ooo-build/ooo-build/src/oog680-m3/uui/source/iahndl.cxx
+
+                    aRec(xContainer->find(rRequest.ServerName, xIH));
+                if (aRec.UserList.getLength() != 0)
+                {
+                    if (xSupplyAuthentication->canSetUserName())
+                        xSupplyAuthentication->
+                            setUserName(aRec.UserList[0].UserName.getStr());
+                    if (xSupplyAuthentication->canSetPassword())
+                    {
+                        OSL_ENSURE(aRec.UserList[0].Passwords.getLength() != 0,
+                                   "empty password list");
+                        xSupplyAuthentication->
+                            setPassword(
+				aRec.UserList[0].Passwords[0].getStr());
+                    }
+                    if (aRec.UserList[0].Passwords.getLength() > 1)
+                        if (rRequest.HasRealm)
+=====================================================================
+Found a 20 line (116 tokens) duplication in the following files: 
+Starting at line 1286 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 1259 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+					( nWriteFlags & SVGWRITER_WRITE_FILL ) )
+				{
+					const MetaGradientExAction*	pGradAction = NULL;
+					sal_Bool					bDone = sal_False;
+
+					while( !bDone && ( ++i < nCount ) )
+					{
+						pAction = rMtf.GetAction( i );
+
+						if( pAction->GetType() == META_GRADIENTEX_ACTION )
+							pGradAction = (const MetaGradientExAction*) pAction;
+						else if( ( pAction->GetType() == META_COMMENT_ACTION ) && 
+								 ( ( (const MetaCommentAction*) pAction )->GetComment().CompareIgnoreCaseToAscii( "XGRAD_SEQ_END" ) == COMPARE_EQUAL ) )
+						{
+							bDone = sal_True;
+						}
+					}
+
+					if( pGradAction )
+						ImplWriteGradientEx( pGradAction->GetPolyPolygon(), pGradAction->GetGradient(), pStyle, nWriteFlags );
+=====================================================================
+Found a 4 line (116 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_mask.h
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 00-0F
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 10-1F
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 20-2F
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   // 30-3F
+=====================================================================
+Found a 27 line (116 tokens) duplication in the following files: 
+Starting at line 29 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/mac/arlib.c
+Starting at line 29 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/msdos/arlib.c
+
+PUBLIC time_t
+seek_arch(name, lib)
+char*	name;
+char*	lib;
+{
+   static	int	warned = FALSE;
+
+   if (!warned && !(Glob_attr&A_SILENT))
+   	warned = TRUE,
+   	Warning("Can't extract library member timestamp;\n\
+   	using library timestamp instead.");
+   return (Do_stat(lib, NULL, NULL, TRUE));
+}
+
+PUBLIC int
+touch_arch(name, lib)
+char*	name;
+char*	lib;
+{
+   static	int	warned = FALSE;
+
+   if (!warned && !(Glob_attr&A_SILENT))
+   	warned = TRUE,
+   	Warning("Can't update library member timestamp;\n\
+   	touching library instead.");
+   return (Do_touch(lib, NULL, NULL));
+}
+=====================================================================
+Found a 20 line (116 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/DriverSettings.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/DriverSettings.cxx
+
+        case DST_ORACLE_JDBC:
+			_rDetailsIds.push_back(DSID_JDBCDRIVERCLASS);
+			_rDetailsIds.push_back(DSID_SQL92CHECK);
+			_rDetailsIds.push_back(DSID_AUTOINCREMENTVALUE);
+			_rDetailsIds.push_back(DSID_AUTORETRIEVEVALUE);
+			_rDetailsIds.push_back(DSID_AUTORETRIEVEENABLED);
+			_rDetailsIds.push_back(DSID_IGNOREDRIVER_PRIV);
+			_rDetailsIds.push_back(DSID_PARAMETERNAMESUBST);
+			_rDetailsIds.push_back(DSID_SUPPRESSVERSIONCL);
+			_rDetailsIds.push_back(DSID_ENABLEOUTERJOIN);
+			_rDetailsIds.push_back(DSID_CATALOG);
+			_rDetailsIds.push_back(DSID_SCHEMA);
+			_rDetailsIds.push_back(DSID_APPEND_TABLE_ALIAS);
+			_rDetailsIds.push_back(DSID_AS_BEFORE_CORRNAME);
+			_rDetailsIds.push_back(DSID_BOOLEANCOMPARISON);
+			_rDetailsIds.push_back(DSID_INDEXAPPENDIX);
+			_rDetailsIds.push_back(DSID_DOSLINEENDS);
+			break;
+
+        case DST_USERDEFINE1:	/// first user defined driver
+=====================================================================
+Found a 24 line (116 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/shared/registrationhelper.cxx
+Starting at line 234 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/inc/componentmodule.cxx
+
+		const ::rtl::OUString* pImplNames = s_pImplementationNames->getConstArray();
+		for (sal_Int32 i=0; i<nLen; ++i, ++pImplNames)
+		{
+			if (pImplNames->equals(_rImplementationName))
+			{
+				removeElementAt(*s_pImplementationNames, i);
+				removeElementAt(*s_pSupportedServices, i);
+				removeElementAt(*s_pCreationFunctionPointers, i);
+				removeElementAt(*s_pFactoryFunctionPointers, i);
+				break;
+			}
+		}
+
+		if (s_pImplementationNames->getLength() == 0)
+		{
+			delete s_pImplementationNames; s_pImplementationNames = NULL;
+			delete s_pSupportedServices; s_pSupportedServices = NULL;
+			delete s_pCreationFunctionPointers; s_pCreationFunctionPointers = NULL;
+			delete s_pFactoryFunctionPointers; s_pFactoryFunctionPointers = NULL;
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	sal_Bool OModule::writeComponentInfos(
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/component_context.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno.cxx
+
+			buf.append( val2str( pVal, ((typelib_TypeDescription *)pCompType->pBaseTypeDescription)->pWeakRef,mode ) );
+			if (nDescr)
+				buf.appendAscii( RTL_CONSTASCII_STRINGPARAM(", ") );
+		}
+		
+		typelib_TypeDescriptionReference ** ppTypeRefs = pCompType->ppTypeRefs;
+		sal_Int32 * pMemberOffsets = pCompType->pMemberOffsets;
+		rtl_uString ** ppMemberNames = pCompType->ppMemberNames;
+		
+		for ( sal_Int32 nPos = 0; nPos < nDescr; ++nPos )
+		{
+			buf.append( ppMemberNames[nPos] );
+			buf.appendAscii( RTL_CONSTASCII_STRINGPARAM(" = ") );
+			typelib_TypeDescription * pMemberType = 0;
+			TYPELIB_DANGER_GET( &pMemberType, ppTypeRefs[nPos] );
+			buf.append( val2str( (char *)pVal + pMemberOffsets[nPos], pMemberType->pWeakRef, mode ) );
+=====================================================================
+Found a 19 line (116 tokens) duplication in the following files: 
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/EnvGuard/EnvGuard.test.cxx
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/EnvGuard/EnvGuard.test.cxx
+
+        envGuard.clear();
+        current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
+    }
+
+
+	if (current_EnvDcp == ref)
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+	else
+    {
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t        got: \""));
+        s_message += current_EnvDcp;
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t   expected: \""));
+        s_message += ref;
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+    }
+}
+=====================================================================
+Found a 19 line (116 tokens) duplication in the following files: 
+Starting at line 156 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/ChainablePropertySet.cxx
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/MasterPropertySet.cxx
+
+void SAL_CALL MasterPropertySet::setPropertyValues( const Sequence< ::rtl::OUString >& aPropertyNames, const Sequence< Any >& aValues ) 
+	throw(PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+{
+    // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+    std::auto_ptr< vos::OGuard > pMutexGuard;
+    if (mpMutex)
+        pMutexGuard.reset( new vos::OGuard(mpMutex) );
+
+    const sal_Int32 nCount = aPropertyNames.getLength();
+
+	if( nCount != aValues.getLength() )
+		throw IllegalArgumentException();
+
+	if( nCount )
+	{
+		_preSetValues();
+
+		const Any * pAny = aValues.getConstArray();
+		const OUString * pString = aPropertyNames.getConstArray();
+=====================================================================
+Found a 16 line (116 tokens) duplication in the following files: 
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/misc/instancelocker.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/hatchwindow/documentcloser.cxx
+
+uno::Reference< uno::XInterface > SAL_CALL ODocumentCloser::impl_staticCreateSelfInstance(
+								const uno::Reference< lang::XMultiServiceFactory >& xServiceManager )
+{
+    uno::Reference< uno::XComponentContext > xContext;
+    uno::Reference< beans::XPropertySet > xPropSet( xServiceManager, uno::UNO_QUERY );
+    if ( xPropSet.is() )
+        xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ) ) ) >>= xContext;
+
+    if ( !xContext.is() )
+    {
+        throw uno::RuntimeException(
+            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unable to obtain component context from service manager!" ) ),
+            uno::Reference< uno::XInterface >() );
+    }
+
+    return static_cast< cppu::OWeakObject * >( new ODocumentCloser( xContext ) );
+=====================================================================
+Found a 21 line (116 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+			sal_Bool ret = sal_False;
+            do
+			{
+				typeName = tOption.getToken(0, ';', nIndex);
+                
+                sal_Int32 nPos = typeName.lastIndexOf( '.' );
+				tmpName = typeName.copy( nPos != -1 ? nPos+1 : 0 );
+				if (tmpName == "*")
+				{
+					// produce this type and his scope.
+					if (typeName.equals("*"))
+					{
+						tmpName = "/";
+					} else
+					{
+						tmpName = typeName.copy(0, typeName.lastIndexOf('.')).replace('.', '/');
+						if (tmpName.getLength() == 0) 
+							tmpName = "/";
+						else
+							tmpName.replace('.', '/');
+					}
+=====================================================================
+Found a 30 line (116 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/CandleStickChartType.cxx
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ColumnChartType.cxx
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartType.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/PieChartType.cxx
+
+        uno::makeAny( sal_False );
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 28 line (116 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+Starting at line 237 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+            if (bOverFlowUsed) ovrflw++;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										pCppStack, pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+	}
+=====================================================================
+Found a 13 line (116 tokens) duplication in the following files: 
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/jstest.cxx
+Starting at line 788 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/jstest.cxx
+
+	{ 0 },
+	{ 0, 5, 6, 7, 8, 9 },
+	{ 0, 1, 2, 3, 8, 10, 11, 12, 13, 16, 17, 18 },
+	{ 0, 6, 7 },
+	{ 0, 5, 6 },
+	{ 0, 5, 6, 7, 8, 9, 14, 15 },
+	{ 0, 5, 6 },
+	{ 0, 5, 6 },
+	{ 0, 5, 6, 7, 8, 9 },
+	{ 0, 4, 5 }
+};
+
+UINT16 test3PosBasic[][12] = { { 0, 4, 5, 15, 16, 19, 20 },
+=====================================================================
+Found a 26 line (116 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/accessiblemenubasecomponent.cxx
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessibletabpage.cxx
+
+	Reference< XAccessible > xChild;
+	for ( sal_uInt32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+	{
+		Reference< XAccessible > xAcc = getAccessibleChild( i );
+		if ( xAcc.is() )
+		{			
+			Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );				
+			if ( xComp.is() )
+			{
+				Rectangle aRect = VCLRectangle( xComp->getBounds() );
+				Point aPos = VCLPoint( rPoint );
+				if ( aRect.IsInside( aPos ) )
+				{
+					xChild = xAcc;
+					break;
+				}
+			}
+		}
+	}
+
+	return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::grabFocus(  ) throw (RuntimeException)
+=====================================================================
+Found a 14 line (115 tokens) duplication in the following files: 
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/odsl/ODSLParser.cxx
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/StorageXXmlReader.cxx
+
+		std::auto_ptr<xxml::XXmlReader> reader=xxml::XXmlReader::createXXmlReader(handler);
+		TimeValue t1; osl_getSystemTime(&t1);
+
+        rtl::OUString settings = rtl::OUString::createFromAscii("settings.xml");
+		reader->read(xStorage, settings);
+        rtl::OUString meta = rtl::OUString::createFromAscii("meta.xml");
+		reader->read(xStorage, meta);
+        rtl::OUString styles = rtl::OUString::createFromAscii("styles.xml");
+		reader->read(xStorage, styles);
+        rtl::OUString content = rtl::OUString::createFromAscii("content.xml");
+		reader->read(xStorage, content);
+
+		TimeValue t2; osl_getSystemTime(&t2);
+		printf("Events=%i time=%lis time/event=%0.10fs\n", handler.events, t2.Seconds-t1.Seconds, (double)(t2.Seconds-t1.Seconds)/(double)handler.events);
+=====================================================================
+Found a 27 line (115 tokens) duplication in the following files: 
+Starting at line 32323 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 32422 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+OOXMLContext::Pointer_t OOXMLContext_wordprocessingml_CT_ParaRPr::elementFromRefs(TokenEnum_t nToken)
+{
+    TokenEnum_t tmpToken;
+    tmpToken = nToken; // prevent warning
+    
+    {       
+        OOXMLContext::Pointer_t pSubContext = OOXMLContext::Pointer_t
+            ( new OOXMLContext_wordprocessingml_EG_ParaRPrTrackChanges(*this));
+        OOXMLContext::Pointer_t pContext(pSubContext->element(nToken));
+
+        if (pContext.get() != NULL)
+            return pContext;
+     }
+    
+    {       
+        OOXMLContext::Pointer_t pSubContext = OOXMLContext::Pointer_t
+            ( new OOXMLContext_wordprocessingml_EG_RPrBase(*this));
+        OOXMLContext::Pointer_t pContext(pSubContext->element(nToken));
+
+        if (pContext.get() != NULL)
+            return pContext;
+     }
+    
+    return OOXMLContext::Pointer_t();
+}
+    
+OOXMLContext::Pointer_t
+=====================================================================
+Found a 27 line (115 tokens) duplication in the following files: 
+Starting at line 13653 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 31141 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+OOXMLContext::Pointer_t OOXMLContext_wordprocessingml_CT_R::elementFromRefs(TokenEnum_t nToken)
+{
+    TokenEnum_t tmpToken;
+    tmpToken = nToken; // prevent warning
+    
+    {       
+        OOXMLContext::Pointer_t pSubContext = OOXMLContext::Pointer_t
+            ( new OOXMLContext_wordprocessingml_EG_RPr(*this));
+        OOXMLContext::Pointer_t pContext(pSubContext->element(nToken));
+
+        if (pContext.get() != NULL)
+            return pContext;
+     }
+    
+    {       
+        OOXMLContext::Pointer_t pSubContext = OOXMLContext::Pointer_t
+            ( new OOXMLContext_wordprocessingml_EG_RunInnerContent(*this));
+        OOXMLContext::Pointer_t pContext(pSubContext->element(nToken));
+
+        if (pContext.get() != NULL)
+            return pContext;
+     }
+    
+    return OOXMLContext::Pointer_t();
+}
+    
+OOXMLContext::Pointer_t
+=====================================================================
+Found a 8 line (115 tokens) duplication in the following files: 
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+Starting at line 553 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+                span->r = fg[order_type::R];
+=====================================================================
+Found a 21 line (115 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr = y >> image_subpixel_shift;
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                               ry_inv) >> 
+                                   image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + x_lr * 3;
+=====================================================================
+Found a 26 line (115 tokens) duplication in the following files: 
+Starting at line 513 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_gray.h
+Starting at line 595 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgb.h
+
+                        p[order_type::B] = colors->b;
+                        p = (value_type*)m_rbuf->next_row(p);
+                        ++colors;
+                    }
+                    while(--len);
+                }
+                else
+                {
+                    do 
+                    {
+                        copy_or_blend_opaque_pix(p, *colors++, cover);
+                        p = (value_type*)m_rbuf->next_row(p);
+                    }
+                    while(--len);
+                }
+            }
+        }
+
+        //--------------------------------------------------------------------
+        template<class Function> void for_each_pixel(Function f)
+        {
+            unsigned y;
+            for(y = 0; y < height(); ++y)
+            {
+                unsigned len = width();
+                value_type* p = (value_type*)m_rbuf->row(y);
+=====================================================================
+Found a 14 line (115 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/signer.cxx
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/signer.cxx
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::io ;
+using namespace ::com::sun::star::ucb ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::document ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::xml::wrapper ;
+using namespace ::com::sun::star::xml::crypto ;
+
+
+int SAL_CALL main( int argc, char **argv )
+{
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 719 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+Starting at line 858 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOOo.cxx
+
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_ATACTION_COPY,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INCHS2INS,
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_DIAGONAL_BL_TR, XML_ATACTION_INCHS2INS,
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+
+	{ XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_TOP, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_ATACTION_IN2INCH, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_SHADOW, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS },
+	{ XML_NAMESPACE_FO, XML_KEEP_WITH_NEXT, XML_OPTACTION_KEEP_WITH_NEXT, 
+=====================================================================
+Found a 15 line (115 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/FormPropOASISTContext.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/NotesTContext.cxx
+
+	XMLMutableAttributeList *pMutableAttrList = 0;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
+=====================================================================
+Found a 19 line (115 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
+Starting at line 424 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparai.cxx
+
+	rIgnoreLeadingSpace( rIgnLeadSpace )
+{
+	OUString sShow;
+	const SvXMLTokenMap& rTokenMap =
+		GetImport().GetTextImport()->GetTextHyperlinkAttrTokenMap();
+
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		const OUString& rValue = xAttrList->getValueByIndex( i );
+
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
+															&aLocalName );
+		switch( rTokenMap.Get( nPrefix, aLocalName ) )
+		{
+		case XML_TOK_TEXT_HYPERLINK_HREF:
+=====================================================================
+Found a 37 line (115 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/datetime/datetime.cxx
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/datetime/datetime.cxx
+
+    aTime -= rTime;
+    USHORT nHours = aTime.GetHour();
+    if ( aTime.GetTime() > 0 )
+    {
+        while ( nHours >= 24 )
+        {
+            Date::operator++();
+            nHours -= 24;
+        }
+        aTime.SetHour( nHours );
+    }
+    else if ( aTime.GetTime() != 0 )
+    {
+        while ( nHours >= 24 )
+        {
+            Date::operator--();
+            nHours -= 24;
+        }
+        Date::operator--();
+        aTime = Time( 24, 0, 0 )+aTime;
+    }
+    Time::operator=( aTime );
+
+    return *this;
+}
+
+/*************************************************************************
+|*
+|*    DateTime::operator+()
+|*
+|*    Beschreibung      DATETIME.SDW
+|*    Ersterstellung    TH 02.10.96
+|*    Letzte Aenderung  TH 02.10.96
+|*
+*************************************************************************/
+
+DateTime operator +( const DateTime& rDateTime, long nDays )
+=====================================================================
+Found a 22 line (115 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/result/emacsTestResult.cxx
+Starting at line 335 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/result/testshlTestResult.cxx
+
+testshlTestResult::printFailureLine( Outputter &stream, TestFailure *_pFailure, std::string const& _sNodeName)
+{
+	std::string aName;
+	aName += _sNodeName;
+	aName += ".";
+	aName += _pFailure->failedTestName();
+
+	SourceLine aLine = _pFailure->sourceLine();
+	sal_Int32 nLine = -1;
+	std::string sFilename;
+	if (aLine.isValid())
+	{
+		nLine = aLine.lineNumber();
+		sFilename = aLine.fileName();
+	}
+	
+	Exception  *pExp  = _pFailure->thrownException();
+	std::string sWhat;
+	if (pExp)
+	{
+		sWhat = pExp->what();
+	}
+=====================================================================
+Found a 14 line (115 tokens) duplication in the following files: 
+Starting at line 1812 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unotxvw.cxx
+Starting at line 1834 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unotxvw.cxx
+
+uno::Reference< text::XTextRange >  SwXTextViewCursor::getEnd(void) throw( uno::RuntimeException )
+{
+	::vos::OGuard aGuard(Application::GetSolarMutex());
+	uno::Reference< text::XTextRange >  xRet;
+	if(pView)
+	{
+        if (!IsTextSelection())
+            throw  uno::RuntimeException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "no text selection" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+
+		SwWrtShell& rSh = pView->GetWrtShell();
+		SwPaM* pShellCrsr = rSh.GetCrsr();
+		SwDoc* pDoc = pView->GetDocShell()->GetDoc();
+		xRet = SwXTextRange::CreateTextRangeFromPosition(pDoc,
+										*pShellCrsr->End(), 0);
+=====================================================================
+Found a 10 line (115 tokens) duplication in the following files: 
+Starting at line 1683 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+Starting at line 1797 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmaddressblockpage.cxx
+
+    ExtTextEngine* pTextEngine = GetTextEngine();
+    ExtTextView* pTextView = GetTextView();
+    const TextSelection& rSelection = pTextView->GetSelection();
+    const TextCharAttrib* pBeginAttrib = pTextEngine->FindCharAttrib( rSelection.GetStart(), TEXTATTR_PROTECTED );
+    const TextCharAttrib* pEndAttrib = pTextEngine->FindCharAttrib( rSelection.GetEnd(), TEXTATTR_PROTECTED );
+    if(pBeginAttrib && 
+            (pBeginAttrib->GetStart() <= rSelection.GetStart().GetIndex() 
+                            && pBeginAttrib->GetEnd() >= rSelection.GetEnd().GetIndex()))
+    {
+        ULONG nPara = rSelection.GetStart().GetPara();
+=====================================================================
+Found a 13 line (115 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edattr.cxx
+Starting at line 245 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/edit/edattr.cxx
+
+		ULONG nSttNd = PCURCRSR->GetMark()->nNode.GetIndex(),
+			  nEndNd = PCURCRSR->GetPoint()->nNode.GetIndex();
+		xub_StrLen nSttCnt = PCURCRSR->GetMark()->nContent.GetIndex(),
+				   nEndCnt = PCURCRSR->GetPoint()->nContent.GetIndex();
+
+		if( nSttNd > nEndNd || ( nSttNd == nEndNd && nSttCnt > nEndCnt ))
+		{
+			ULONG nTmp = nSttNd; nSttNd = nEndNd; nEndNd = nTmp;
+			nTmp = nSttCnt; nSttCnt = nEndCnt; nEndCnt = (xub_StrLen)nTmp;
+		}
+
+		if( nEndNd - nSttNd >= getMaxLookup() )
+		{
+=====================================================================
+Found a 22 line (115 tokens) duplication in the following files: 
+Starting at line 1826 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+Starting at line 1891 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+
+BOOL SwDoc::InsertRow( const SwSelBoxes& rBoxes, USHORT nCnt, BOOL bBehind )
+{
+	// uebers SwDoc fuer Undo !!
+	ASSERT( rBoxes.Count(), "keine gueltige Box-Liste" );
+	SwTableNode* pTblNd = (SwTableNode*)rBoxes[0]->GetSttNd()->FindTableNode();
+	if( !pTblNd )
+		return FALSE;
+
+	SwTable& rTbl = pTblNd->GetTable();
+	if( rTbl.ISA( SwDDETable ))
+		return FALSE;
+
+#ifdef DEL_TABLE_REDLINES
+	lcl_DelRedlines aDelRedl( *pTblNd, TRUE );
+#endif
+
+	SwTableSortBoxes aTmpLst( 0, 5 );
+	SwUndoTblNdsChg* pUndo = 0;
+	if( DoesUndo() )
+	{
+		DoUndo( FALSE );
+		pUndo = new SwUndoTblNdsChg( UNDO_TABLE_INSROW,rBoxes, *pTblNd,
+=====================================================================
+Found a 16 line (115 tokens) duplication in the following files: 
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docbm.cxx
+Starting at line 1040 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docbm.cxx
+
+			SwPosition* pPos = 0;
+			switch( aSave.GetType() )
+			{
+			case 0x8000:
+				pPos = (SwPosition*)&rBkmks[ aSave.GetCount() ]->GetPos();
+				break;
+			case 0x8001:
+				pPos = (SwPosition*)rBkmks[ aSave.GetCount() ]->GetOtherPos();
+				break;
+			case 0x1001:
+				pPos = (SwPosition*)rRedlTbl[ aSave.GetCount() ]->GetPoint();
+				break;
+			case 0x1000:
+				pPos = (SwPosition*)rRedlTbl[ aSave.GetCount() ]->GetMark();
+				break;
+			case 0x2000:
+=====================================================================
+Found a 9 line (115 tokens) duplication in the following files: 
+Starting at line 1597 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unotext.cxx
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unotext2.cxx
+
+		maTypeSequence.realloc( 10 ); // !DANGER! keep this updated
+		uno::Type* pTypes = maTypeSequence.getArray();
+
+		*pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRange >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertySet >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XMultiPropertySet >*)0);
+//		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XTolerantMultiPropertySet >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertyState >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRangeCompare >*)0);
+=====================================================================
+Found a 31 line (115 tokens) duplication in the following files: 
+Starting at line 857 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdpntv.cxx
+Starting at line 1064 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdpntv.cxx
+
+			if(pOut && OUTDEV_WINDOW == pOut->GetOutDevType() && !bDisableIntersect)
+			{
+				Window* pWindow = (Window*)pOut;
+
+				if(pWindow->IsInPaint())
+				{
+					if(!pWindow->GetPaintRegion().IsEmpty())
+					{
+						aOptimizedRepaintRegion.Intersect(pWindow->GetPaintRegion());
+
+#ifdef DBG_UTIL
+						// #i74769# test-paint repaint region
+						static bool bDoPaintForVisualControl(false);
+						if(bDoPaintForVisualControl)
+						{
+							RegionHandle aRegionHandle(aOptimizedRepaintRegion.BeginEnumRects());
+							Rectangle aRegionRectangle;
+							
+							while(aOptimizedRepaintRegion.GetEnumRects(aRegionHandle, aRegionRectangle))
+							{
+								pWindow->SetLineColor(COL_LIGHTGREEN);
+								pWindow->SetFillColor();
+								pWindow->DrawRect(aRegionRectangle);
+							}
+
+							aOptimizedRepaintRegion.EndEnumRects(aRegionHandle);
+						}
+#endif
+					}
+				}
+			}
+=====================================================================
+Found a 22 line (115 tokens) duplication in the following files: 
+Starting at line 1033 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedtv2.cxx
+Starting at line 556 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/poly2.cxx
+
+        case GPC_DIFF:
+        {
+            // take selected poly 2..n (is in Polygon B), merge them, flipdirections
+            // and merge with poly 1
+			aMergePolyPolygonA = basegfx::tools::removeAllIntersections(aMergePolyPolygonA);
+			aMergePolyPolygonA = basegfx::tools::removeNeutralPolygons(aMergePolyPolygonA, sal_True);
+			aMergePolyPolygonB = basegfx::tools::removeAllIntersections(aMergePolyPolygonB);
+			aMergePolyPolygonB = basegfx::tools::removeNeutralPolygons(aMergePolyPolygonB, sal_True);
+        	aMergePolyPolygonB.flip();
+            aMergePolyPolygonA.append(aMergePolyPolygonB);
+			aMergePolyPolygonA = basegfx::tools::removeAllIntersections(aMergePolyPolygonA);
+			aMergePolyPolygonA = basegfx::tools::removeNeutralPolygons(aMergePolyPolygonA, sal_True);
+
+            // #72995# one more call to resolve self intersections which
+            // may have been built by substracting (see bug)
+            //aMergePolyPolygonA.Merge(FALSE);
+			aMergePolyPolygonA = basegfx::tools::removeAllIntersections(aMergePolyPolygonA);
+			aMergePolyPolygonA = basegfx::tools::removeNeutralPolygons(aMergePolyPolygonA, sal_True);
+            break;
+        }
+
+        case GPC_XOR:
+=====================================================================
+Found a 10 line (115 tokens) duplication in the following files: 
+Starting at line 1213 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+Starting at line 1415 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+
+					pParaPortion->GetLines().Insert( pNew, m );
+				}
+#ifdef DBG_UTIL
+				USHORT nTest;
+                int nTPLen = 0, nTxtLen = 0;
+				for ( nTest = pParaPortion->GetTextPortions().Count(); nTest; )
+					nTPLen += pParaPortion->GetTextPortions().GetObject( --nTest )->GetLen();
+				for ( nTest = pParaPortion->GetLines().Count(); nTest; )
+					nTxtLen += pParaPortion->GetLines().GetObject( --nTest )->GetLen();
+				DBG_ASSERT( ( nTPLen == pParaPortion->GetNode()->Len() ) && ( nTxtLen == pParaPortion->GetNode()->Len() ), "InsertBinTextObject: ParaPortion not completely formatted!" );
+=====================================================================
+Found a 22 line (115 tokens) duplication in the following files: 
+Starting at line 3490 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 655 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/num.cxx
+
+									pActNum->Get( i ).GetFirstLineOffset();
+
+						aNumFmt.SetAbsLSpace( USHORT(nValue + nTmp));
+					}
+				}
+				else
+				{
+					aNumFmt.SetAbsLSpace( (short)nValue - aNumFmt.GetFirstLineOffset());
+				}
+			}
+			else if(pFld == &aDistNumMF)
+			{
+				aNumFmt.SetCharTextDistance( (short)nValue );
+			}
+			else if(pFld == &aIndentMF)
+			{
+				//jetzt muss mit dem FirstLineOffset auch der AbsLSpace veraendert werden
+				long nDiff = nValue + aNumFmt.GetFirstLineOffset();
+				long nAbsLSpace = aNumFmt.GetAbsLSpace();
+				aNumFmt.SetAbsLSpace(USHORT(nAbsLSpace + nDiff));
+				aNumFmt.SetFirstLineOffset( -(short)nValue );
+			}
+=====================================================================
+Found a 33 line (115 tokens) duplication in the following files: 
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/enhwmf.cxx
+Starting at line 704 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/winwmf.cxx
+
+				aLineInfo.SetWidth( nWidth );
+
+			BOOL bTransparent = FALSE;
+			UINT16 nDashCount = 0;
+			UINT16 nDotCount = 0;
+			switch( nStyle )
+			{
+				case PS_DASHDOTDOT :
+					nDotCount++;
+				case PS_DASHDOT :
+					nDashCount++;
+				case PS_DOT :
+					nDotCount++;
+				break;
+				case PS_DASH :
+					nDashCount++;
+				break;
+				case PS_NULL :
+					bTransparent = TRUE;
+					aLineInfo.SetStyle( LINE_NONE );
+				break;
+				default :
+				case PS_INSIDEFRAME :
+				case PS_SOLID :
+					aLineInfo.SetStyle( LINE_SOLID );
+			}
+			if ( nDashCount | nDotCount )
+			{
+				aLineInfo.SetStyle( LINE_DASH );
+				aLineInfo.SetDashCount( nDashCount );
+				aLineInfo.SetDotCount( nDotCount );
+			}
+			pOut->CreateObject( GDI_PEN, new WinMtfLineStyle( ReadColor(), aLineInfo, bTransparent ) );
+=====================================================================
+Found a 23 line (115 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/enhwmf.cxx
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/enhwmf.cxx
+
+			case EMR_POLYPOLYGON16 :
+			{
+				UINT16*	pnPoints;
+				Point*	pPtAry;
+
+				UINT32	i, nPoly, nGesPoints;
+				pWMF->SeekRel( 0x10 );
+				// Anzahl der Polygone:
+				*pWMF >> nPoly >> nGesPoints;
+				if (nGesPoints < SAL_MAX_UINT32 / sizeof(Point))
+				{
+					// Anzahl der Punkte eines jeden Polygons holen, Gesammtzahl der Punkte ermitteln:
+					pnPoints = new UINT16[ nPoly ];
+					for ( i = 0; i < nPoly; i++ )
+					{
+						*pWMF >> nPoints;
+						pnPoints[ i ] = (UINT16)nPoints;
+					}
+					// Polygonpunkte holen:
+					pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
+					for ( i = 0; i < nGesPoints; i++ )
+					{
+						*pWMF >> nX16 >> nY16;
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/component.cxx
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/ure/source/uretest/cpptest.cc
+
+      CppTest::getSupportedServiceNames, cppu::createSingleComponentFactory, 0,
+      0 },
+    { 0, 0, 0, 0, 0, 0 } };
+
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+    void * serviceManager, void * registryKey)
+{
+    return cppu::component_writeInfoHelper(
+        serviceManager, registryKey, entries);
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+    char const * implName, void * serviceManager, void * registryKey)
+{
+    return cppu::component_getFactoryHelper(
+        implName, serviceManager, registryKey, entries);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, uno_Environment **)
+{
+    *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+=====================================================================
+Found a 13 line (115 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+			  &::getCppuType( (uno::Reference<XInterface> *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "BaseURI", sizeof("BaseURI")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamRelPath", sizeof("StreamRelPath")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamName", sizeof("StreamName")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		// properties for insert modes
+		{ "StyleInsertModeFamilies", sizeof("StyleInsertModeFamilies")-1, 0,
+=====================================================================
+Found a 12 line (115 tokens) duplication in the following files: 
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 829 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+::com::sun::star::accessibility::TextSegment SAL_CALL SmGraphicAccessible::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+    String aTxt( GetAccessibleText_Impl() );
+    xub_StrLen nIdx = (xub_StrLen) nIndex;
+    //!! nIndex is allowed to be the string length
+    if (!(/*0 <= nIdx  &&*/  nIdx <= aTxt.Len()))
+        throw IndexOutOfBoundsException();
+
+    ::com::sun::star::accessibility::TextSegment aResult;
+    aResult.SegmentStart = -1;
+    aResult.SegmentEnd = -1;
+=====================================================================
+Found a 20 line (115 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/statbar/stbitem.cxx
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/toolbox/tbxitem.cxx
+
+			sal_Int64 nHandle = xObj->getSomething( aSeq );
+			if ( nHandle )
+                pObjShell = reinterpret_cast< SfxObjectShell* >( sal::static_int_cast< sal_IntPtr >( nHandle ));
+		}
+    }
+
+    SfxModule*     pModule   = pObjShell ? pObjShell->GetModule() : NULL;
+    SfxSlotPool*   pSlotPool = 0;
+
+    if ( pModule )
+        pSlotPool = pModule->GetSlotPool();
+    else
+        pSlotPool = &(SfxSlotPool::GetSlotPool( NULL ));
+
+    const SfxSlot* pSlot = pSlotPool->GetUnoSlot( aTargetURL.Path );
+    if ( pSlot )
+    {
+        USHORT nSlotId = pSlot->GetSlotId();
+        if ( nSlotId > 0 )
+            return SfxToolBoxControl::CreateControl( nSlotId, nID, pToolbox, pModule );
+=====================================================================
+Found a 17 line (115 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/patch/swappatchfiles.cxx
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/shellextensions/startmenuicon.cxx
+
+std::_tstring GetMsiProperty( MSIHANDLE handle, const std::_tstring& sProperty )
+{
+	std::_tstring	result;
+	TCHAR	szDummy[1] = TEXT("");
+	DWORD	nChars = 0;
+
+	if ( MsiGetProperty( handle, sProperty.c_str(), szDummy, &nChars ) == ERROR_MORE_DATA )
+	{
+        DWORD nBytes = ++nChars * sizeof(TCHAR);
+        LPTSTR buffer = reinterpret_cast<LPTSTR>(_alloca(nBytes));
+        ZeroMemory( buffer, nBytes );
+        MsiGetProperty(handle, sProperty.c_str(), buffer, &nChars);
+        result = buffer;            
+	}
+
+	return	result;
+}
+=====================================================================
+Found a 7 line (115 tokens) duplication in the following files: 
+Starting at line 537 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+		PropertyMapEntry aExportInfoMap[] =
+		{
+			// #82003#
+			{ MAP_LEN( "ProgressRange" ),	0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+			{ MAP_LEN( "ProgressMax" ),		0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+			{ MAP_LEN( "ProgressCurrent" ),	0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+			{ MAP_LEN( "UsePrettyPrinting"),0, &::getBooleanCppuType(),				::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+=====================================================================
+Found a 24 line (115 tokens) duplication in the following files: 
+Starting at line 1919 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+Starting at line 2236 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+
+void SAL_CALL ScChart2EmptyDataSequence::setPropertyValue(
+        const ::rtl::OUString& rPropertyName, const uno::Any& rValue)
+            throw( beans::UnknownPropertyException,
+                    beans::PropertyVetoException,
+                    lang::IllegalArgumentException,
+                    lang::WrappedTargetException, uno::RuntimeException)
+{
+    if ( rPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( SC_UNONAME_ROLE)))
+    {
+        if ( !(rValue >>= m_aRole))
+            throw lang::IllegalArgumentException();
+    }
+    else if ( rPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( SC_UNONAME_ISHIDDEN)))
+    {
+        if ( !(rValue >>= m_bHidden))
+            throw lang::IllegalArgumentException();
+    }
+    else
+        throw beans::UnknownPropertyException();
+    // TODO: support optional properties
+}
+
+
+uno::Any SAL_CALL ScChart2EmptyDataSequence::getPropertyValue(
+=====================================================================
+Found a 10 line (115 tokens) duplication in the following files: 
+Starting at line 1038 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/dbdocfun.cxx
+Starting at line 1677 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+				SCCOLROW nOutEndRow;
+				pTable->GetColArray()->GetRange( nOutStartCol, nOutEndCol );
+				pTable->GetRowArray()->GetRange( nOutStartRow, nOutEndRow );
+
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, TRUE, TRUE );
+				pDoc->CopyToDocument( static_cast<SCCOL>(nOutStartCol), 0, nTab, static_cast<SCCOL>(nOutEndCol), MAXROW, nTab, IDF_NONE, FALSE, pUndoDoc );
+				pDoc->CopyToDocument( 0, nOutStartRow, nTab, MAXCOL, nOutEndRow, nTab, IDF_NONE, FALSE, pUndoDoc );
+			}
+			else
+				pUndoDoc->InitUndo( pDoc, nTab, nTab, FALSE, TRUE );
+=====================================================================
+Found a 15 line (115 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 905 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+				nID = pChangeTrackingImportHelper->GetIDFromString(sValue);
+		}
+	}
+=====================================================================
+Found a 58 line (115 tokens) duplication in the following files: 
+Starting at line 974 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+Starting at line 1505 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/lotus/lotform.cxx
+
+		ocAmpersand,		//   30	Concatenation
+		ocNotAvail,			//   31 Not available
+		ocNoName,			//   32 Error
+		ocAbs,				//   33 Betrag ABS()
+		ocInt,				//   34 Ganzzahl INT()
+		ocSqrt,				//   35 Quadratwurzel
+		ocLog10,			//   36 Zehnerlogarithmus
+		ocLn,				//   37 Natuerlicher Logarithmus
+		ocPi,				//   38 PI
+		ocSin,				//   39 Sinus
+		ocCos,				//   40 Cosinus
+		ocTan,				//   41 Tangens
+		ocArcTan2,			//   42 Arcus-Tangens 2 (4.Quadrant)
+		ocArcTan,			//   43 Arcus-Tangens (2.Quadrant)
+		ocArcSin,			//   44 Arcus-Sinus
+		ocArcCos,			//   45 Arcus-Cosinus
+		ocExp,				//   46 Exponentialfunktion
+		ocMod,				//   47 Modulo
+		ocChose,			//   48 Auswahl
+		ocIsNA,				//   49 Is not available?
+		ocIsError,			//   50 Is Error?
+		ocFalse,			//   51 FALSE
+		ocTrue,				//   52 TRUE
+		ocRandom,			//   53 Zufallszahl
+		ocGetDate,			//   54 Datum
+		ocGetActDate,		//   55 Heute
+		ocRMZ,				//   56 Payment
+		ocBW,				//   57 Present Value
+		ocZW,				//   58 Future Value
+		ocIf,				//   59 If ... then ... else ...
+		ocGetDay,			//   60 Tag des Monats
+		ocGetMonth,			//   61 Monat
+		ocGetYear,			//   62 Jahr
+		ocRound,			//   63 Runden
+		ocGetTime,			//   64 Zeit
+		ocGetHour,			//   65 Stunde
+		ocGetMin,			//   66 Minute
+		ocGetSec,			//   67 Sekunde
+		ocIsValue,			//   68 Ist Zahl?
+		ocIsString,			//   69 Ist Text?
+		ocLen,				//   70 Len()
+		ocValue,			//   71 Val()
+		ocFixed,			//   72 String()	ocFixed ersatzweise + Spezialfall
+		ocMid,				//   73 Mid()
+		ocChar,				//   74 Char()
+		ocCode,				//   75 Ascii()
+		ocFind,				//   76 Find()
+		ocGetDateValue,		//   77 Datevalue
+		ocGetTimeValue,		//   78 Timevalue
+		ocNoName,			//   79 Cellpointer
+		ocSum,				//   80 Sum()
+		ocAverage,			//   81 Avg()
+		ocCount,			//   82 Cnt()
+		ocMin,				//   83 Min()
+		ocMax,				//   84 Max()
+		ocVLookup,			//   85 Vlookup()
+		ocNBW,				//   86 Npv()
+		ocVar,				//   87 Var()
+=====================================================================
+Found a 17 line (115 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/filtopt.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/printopt.cxx
+
+	ConfigItem( OUString::createFromAscii( CFGPATH_PRINT ) )
+{
+	Sequence<OUString> aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+//	EnableNotification(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			DBG_ASSERT(pValues[nProp].hasValue(), "property value missing")
+			if(pValues[nProp].hasValue())
+			{
+				switch(nProp)
+				{
+					case SCPRINTOPT_EMPTYPAGES:
+=====================================================================
+Found a 16 line (115 tokens) duplication in the following files: 
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/global2.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/global2.cxx
+
+			pSubTotals[i] = new SCCOL	[r.nSubTotals[i]];
+			pFunctions[i] = new ScSubTotalFunc	[r.nSubTotals[i]];
+
+			for (SCCOL j=0; j<r.nSubTotals[i]; j++)
+			{
+				pSubTotals[i][j] = r.pSubTotals[i][j];
+				pFunctions[i][j] = r.pFunctions[i][j];
+			}
+		}
+		else
+		{
+			nSubTotals[i] = 0;
+			pSubTotals[i] = NULL;
+			pFunctions[i] = NULL;
+		}
+	}
+=====================================================================
+Found a 42 line (115 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/util.c
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/util.c
+
+	if ( pszAddr == 0 )
+	{
+		return sal_False;
+	}
+
+	
+	/*
+	 * All we need is ... a network file descriptor.
+	 * Normally, this is a very socket.
+	 */
+	
+	so = socket(AF_INET, SOCK_DGRAM, 0);	
+
+	
+	/*
+	 * The first thing we have to do, get the interface configuration.
+	 * It is a list of attached/configured interfaces
+	 */
+	
+	ifc.ifc_len = sizeof(buff);
+	ifc.ifc_buf = buff;
+	if ( ioctl(so, SIOCGIFCONF, &ifc) < 0 )
+	{
+/*		fprintf(stderr, "SIOCGIFCONF: %s\n", strerror(errno));*/
+		close(so);
+		return sal_False;
+	}
+
+	close(so);
+	
+	/*
+	 *  For each of the interfaces in the interface list,
+	 *  try to get the hardware address
+	 */
+
+	ifr = ifc.ifc_req;
+	for ( i = ifc.ifc_len / sizeof(struct ifreq) ; --i >= 0 ; ifr++ )
+	{
+		int nRet=0;
+		nRet = osl_getHWAddr(ifr->ifr_name,hard_addr);
+		if ( nRet  > 0 )
+		{
+=====================================================================
+Found a 31 line (115 tokens) duplication in the following files: 
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sprophelp.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/ntprophelp.cxx
+
+	PropertyHelper_Thes::propertyChange( const PropertyChangeEvent& rEvt ) 
+		throw(RuntimeException)
+{
+	MutexGuard	aGuard( GetLinguMutex() );
+
+	if (GetPropSet().is()  &&  rEvt.Source == GetPropSet())
+	{
+		INT16 nLngSvcFlags = 0;
+		BOOL bSCWA = FALSE,	// SPELL_CORRECT_WORDS_AGAIN ?
+			 bSWWA = FALSE;	// SPELL_WRONG_WORDS_AGAIN ?
+
+		BOOL *pbVal = NULL;
+		switch (rEvt.PropertyHandle)
+		{
+			case UPH_IS_IGNORE_CONTROL_CHARACTERS :
+			{
+				pbVal = &bIsIgnoreControlCharacters; 
+				break;
+			}
+			case UPH_IS_GERMAN_PRE_REFORM		  :
+			{
+				pbVal = &bIsGermanPreReform; 
+				bSCWA = bSWWA = TRUE;
+				break;
+			}
+			case UPH_IS_USE_DICTIONARY_LIST		  :
+			{
+				pbVal = &bIsUseDictionaryList; 
+				bSCWA = bSWWA = TRUE;
+				break;
+			}
+=====================================================================
+Found a 5 line (115 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0440 - 044f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0450 - 045f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0460 - 046f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0470 - 047f
+     0, 0, 0,17,17,17,17, 0,17,17, 0, 0, 0, 0, 0, 0,// 0480 - 048f
+=====================================================================
+Found a 8 line (115 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 6800 - 6fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7000 - 77ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7800 - 7fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8000 - 87ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8800 - 8fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9000 - 97ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9800 - 9fff
+    0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, // a000 - a7ff
+=====================================================================
+Found a 5 line (115 tokens) duplication in the following files: 
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,// fa20 - fa2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa30 - fa3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa40 - fa4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa50 - fa5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fa60 - fa6f
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 805 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd90 - fd9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fda0 - fdaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fdb0 - fdbf
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27, 0,27,27,27, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+=====================================================================
+Found a 5 line (115 tokens) duplication in the following files: 
+Starting at line 789 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 864 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbd0 - fbdf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbe0 - fbef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbf0 - fbff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd00 - fd0f
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27, 0,27,27,27, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 360 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27, 0,27,27,27, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 477 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e00 - 1e0f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e10 - 1e1f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e20 - 1e2f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e30 - 1e3f
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1110 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a80 - 0a8f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0a90 - 0a9f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0aa0 - 0aaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,// 0ab0 - 0abf
+=====================================================================
+Found a 14 line (115 tokens) duplication in the following files: 
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+Starting at line 1135 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+                aPropValue.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "ServiceManager" ));
+                aPropValue.Value = makeAny( m_xServiceManager );
+                aPropertyVector.push_back( makeAny( aPropValue ));
+                aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ParentWindow" ));
+                aPropValue.Value = makeAny( xToolbarWindow );
+                aPropertyVector.push_back( makeAny( aPropValue ));
+                if ( nWidth > 0 )
+                {
+                    aPropValue.Name     = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Width" ));
+                    aPropValue.Value    = makeAny( nWidth );
+                    aPropertyVector.push_back( makeAny( aPropValue ));
+                }
+
+                Sequence< Any > aArgs( comphelper::containerToSequence( aPropertyVector ));
+=====================================================================
+Found a 29 line (115 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/resourceprovider.cxx
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/resourceprovider.cxx
+
+    OUString getResString( sal_Int16 aId )
+    {
+        String   aResString;
+        OUString aResOUString;
+
+        const ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+        try
+        {
+            OSL_ASSERT( m_ResMgr && m_OtherResMgr );
+            
+            // translate the control id to a resource id
+            sal_Int16 aResId = CtrlIdToResId( aId );
+            if ( aResId > -1 )
+                aResString = String( ResId( aResId, *m_ResMgr ) );
+	    else
+	    {
+                aResId = OtherCtrlIdToResId( aId );
+                if ( aResId > -1 )
+                    aResString = String( ResId( aResId, *m_OtherResMgr ) );
+	    }
+	    if ( aResId > -1 )
+                aResOUString = OUString( aResString );                
+        }
+        catch(...)
+        {
+        }
+
+        return aResOUString;
+=====================================================================
+Found a 4 line (115 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27, 0,27,27,27, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+=====================================================================
+Found a 20 line (115 tokens) duplication in the following files: 
+Starting at line 1483 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1988 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+				uno::Exception,
+				uno::RuntimeException )
+{
+	// TODO: use lObjArgs
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object persistence is not initialized!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 24 line (115 tokens) duplication in the following files: 
+Starting at line 1121 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1247 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OCommonEmbeddedObject::storeAsEntry" );
+
+	// TODO: use lObjArgs
+
+	::osl::ResettableMutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Can't store object without persistence!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	// for now support of this interface is required to allow breaking of links and converting them to normal embedded
+	// objects, so the persist name must be handled correctly ( althowgh no real persist entry is used )
+	// OSL_ENSURE( !m_bIsLink, "This method implementation must not be used for links!\n" );
+	if ( m_bIsLink )
+=====================================================================
+Found a 8 line (115 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_mask.h
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 6800 - 6fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7000 - 77ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7800 - 7fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8000 - 87ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8800 - 8fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9000 - 97ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9800 - 9fff
+    0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, // a000 - a7ff
+=====================================================================
+Found a 17 line (115 tokens) duplication in the following files: 
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/testcppu.cxx
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/testcppu.cxx
+
+	Test3 sz3;
+	a3.nInt8 = 2;
+	a3.nFloat = (float)2;
+	a3.nDouble = 2;
+	a3.nInt16 = 2;
+	a3.aString = OUString::createFromAscii("2");
+	a3.nuInt16 = 2;
+	a3.nInt64 = 2;
+	a3.nInt32 = 2;
+	a3.nuInt64 = 2;
+	a3.nuInt32 = 2;
+	a3.eType = TypeClass_STRUCT;
+	a3.wChar = L'2';
+	a3.td.nInt16 = 2;
+	a3.td.dDouble = 2;
+	a3.bBool = sal_True;
+	a3.aAny = makeAny( (sal_Int32)2 );
+=====================================================================
+Found a 12 line (115 tokens) duplication in the following files: 
+Starting at line 2176 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+Starting at line 2227 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/parse/sqlnode.cxx
+
+            OSQLParseNode* pRight = pSearchCondition->getChild(2)->removeAt((sal_uInt32)0);
+            OSQLParseNode* pNode    = MakeORNode(pLeft,pRight);
+
+            OSQLParseNode* pNewRule = new OSQLParseNode(::rtl::OUString(),SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::boolean_primary));
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii("("),SQL_NODE_PUNCTUATION));
+            pNewRule->append(pNode);
+            pNewRule->append(new OSQLParseNode(::rtl::OUString::createFromAscii(")"),SQL_NODE_PUNCTUATION));
+
+            OSQLParseNode::eraseBraces(pLeft);
+            OSQLParseNode::eraseBraces(pRight);
+
+            pNode = MakeANDNode(pSearchCondition->getChild(0)->removeAt(1),pNewRule);
+=====================================================================
+Found a 21 line (115 tokens) duplication in the following files: 
+Starting at line 971 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+Starting at line 511 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KStatement.cxx
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+::cppu::IPropertyArrayHelper* OStatement_Base::createArrayHelper( ) const
+{
+	Sequence< Property > aProps(10);
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & OStatement_Base::getInfoHelper()
+=====================================================================
+Found a 20 line (115 tokens) duplication in the following files: 
+Starting at line 373 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 664 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/lang/String;";
+		static const char * cMethodName = "getString";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, columnIndex );
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			aStr = JavaString2String(t.pEnv,out);
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return 	aStr;
+}
+// -------------------------------------------------------------------------
+
+
+::com::sun::star::util::Time SAL_CALL java_sql_ResultSet::getTime( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 21 line (115 tokens) duplication in the following files: 
+Starting at line 573 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NStatement.cxx
+Starting at line 971 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+
+::cppu::IPropertyArrayHelper* java_sql_Statement_Base::createArrayHelper( ) const
+{
+	Sequence< Property > aProps(10);
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & java_sql_Statement_Base::getInfoHelper()
+=====================================================================
+Found a 11 line (115 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+
+					aSql += ::rtl::OUString::createFromAscii(" UNIQUE (");
+					for( sal_Int32 column=0; column<xColumns->getCount(); ++column )
+					{
+						if(::cppu::extractInterface(xColProp,xColumns->getByIndex(column)) && xColProp.is())
+							aSql += aQuote + getString(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))) + aQuote
+										+ ::rtl::OUString::createFromAscii(",");
+					}
+
+					aSql = aSql.replaceAt(aSql.getLength()-1,1,::rtl::OUString::createFromAscii(")"));
+				}
+                else if(nKeyType == KeyType::FOREIGN)
+=====================================================================
+Found a 12 line (115 tokens) duplication in the following files: 
+Starting at line 1094 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+Starting at line 1121 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+
+    ::rtl::math::setInf(&rfMaxY, true);
+
+    ::std::vector< ::std::vector< VDataSeriesGroup > >::const_iterator       aZSlotIter = m_aZSlots.begin();
+    const ::std::vector< ::std::vector< VDataSeriesGroup > >::const_iterator  aZSlotEnd = m_aZSlots.end();
+    for( ; aZSlotIter != aZSlotEnd; aZSlotIter++ )
+    {
+        ::std::vector< VDataSeriesGroup >::const_iterator      aXSlotIter = aZSlotIter->begin();
+        const ::std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
+        for( ; aXSlotIter != aXSlotEnd; aXSlotIter++ )
+        {
+            double fLocalMinimum, fLocalMaximum;
+            aXSlotIter->getMinimumAndMaximiumYInContinuousXRange( fLocalMinimum, fLocalMaximum, fMinX, fMaxX, nAxisIndex );
+=====================================================================
+Found a 26 line (115 tokens) duplication in the following files: 
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/ScaleAutomatism.cxx
+Starting at line 699 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/ScaleAutomatism.cxx
+
+            bAutoDistance = true;
+    }
+
+    //---------------------------------------------------------------
+    //fill explicit sub increment
+    sal_Int32 nSubCount = m_aSourceScale.IncrementData.SubIncrements.getLength();
+    rExplicitIncrement.SubIncrements.realloc(nSubCount);
+    for( sal_Int32 nN=0; nN<nSubCount; nN++ )
+    {
+        const SubIncrement&     rSubIncrement         = m_aSourceScale.IncrementData.SubIncrements[nN];
+        ExplicitSubIncrement&   rExplicitSubIncrement = rExplicitIncrement.SubIncrements[nN];
+
+        if(!(rSubIncrement.IntervalCount>>=rExplicitSubIncrement.IntervalCount))
+        {
+            //scaling dependent
+            //@todo autocalculate IntervalCount dependent on MainIncrement and scaling
+            rExplicitSubIncrement.IntervalCount = 2;
+        }
+        lcl_ensureMaximumSubIncrementCount( rExplicitSubIncrement.IntervalCount );
+        if(!(rSubIncrement.PostEquidistant>>=rExplicitSubIncrement.PostEquidistant))
+        {
+            //scaling dependent
+            rExplicitSubIncrement.PostEquidistant = sal_False;
+        }
+    }
+}
+=====================================================================
+Found a 7 line (115 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/filter/XMLFilter.cxx
+Starting at line 882 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+		PropertyMapEntry aExportInfoMap[] =
+		{
+			// #82003#
+			{ MAP_LEN( "ProgressRange" ),	0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+			{ MAP_LEN( "ProgressMax" ),		0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+			{ MAP_LEN( "ProgressCurrent" ),	0, &::getCppuType((const sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+			{ MAP_LEN( "UsePrettyPrinting"),0, &::getBooleanCppuType(),				::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+=====================================================================
+Found a 17 line (115 tokens) duplication in the following files: 
+Starting at line 1385 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 552 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvasbitmaphelper.cxx
+Starting at line 1144 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper.cxx
+
+        aLayout.ScanLineBytes = rBmpSize.Width*4;
+        aLayout.ScanLineStride = aLayout.ScanLineBytes;
+        aLayout.PlaneStride = 0;
+        aLayout.ColorSpace.set( mpDevice ); 
+        aLayout.NumComponents = 4;
+        aLayout.ComponentMasks.realloc(4);
+        aLayout.ComponentMasks[0] = 0x00FF0000;
+        aLayout.ComponentMasks[1] = 0x0000FF00;
+        aLayout.ComponentMasks[2] = 0x000000FF;
+        aLayout.ComponentMasks[3] = 0xFF000000;
+        aLayout.Palette.clear();
+        aLayout.Endianness = rendering::Endianness::LITTLE;
+        aLayout.Format = rendering::IntegerBitmapFormat::CHUNKY_32BIT;
+        aLayout.IsMsbFirst = sal_False;
+
+        return aLayout;
+    }
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 449 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			free( pCppArgs[nIndex] );
+#endif
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+=====================================================================
+Found a 30 line (115 tokens) duplication in the following files: 
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (cppu_relatesToInterface( pParamTypeDescr ))
+			{
+				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+										*(void **)pCppStack, pParamTypeDescr,
+										&pThis->pBridge->aCpp2Uno );
+				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				pUnoArgs[nPos] = *(void **)pCppStack;
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			free( pCppArgs[nIndex] );
+#endif
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+=====================================================================
+Found a 30 line (115 tokens) duplication in the following files: 
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nVtableCall)
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 483 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			free( pCppArgs[nIndex] );
+#endif
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+=====================================================================
+Found a 26 line (115 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+			((long*)pRegisterReturn)[1] = iret2;
+                        // fall thru on purpose
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = iret;
+			break;
+
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+		        *(unsigned short*)pRegisterReturn = (unsigned short)iret;
+			break;
+
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+		        *(unsigned char*)pRegisterReturn = (unsigned char)iret;
+			break;
+
+		case typelib_TypeClass_FLOAT:
+		        *(float*)pRegisterReturn = (float)dret;
+			break;
+
+		case typelib_TypeClass_DOUBLE:
+			*(double*)pRegisterReturn = dret;
+			break;
+=====================================================================
+Found a 30 line (115 tokens) duplication in the following files: 
+Starting at line 398 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				gpreg, fpreg, ovrflw, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nVtableCall)
+=====================================================================
+Found a 37 line (115 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+    int nf = 0; //number of fpr regsiters used
+       
+    // gpreg:  [ret *], this, [gpr params]
+    // fpreg:  [fpr params]
+    // ovrflw: [gpr or fpr params (properly aligned)]
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pUnoReturn = pRegisterReturn; // direct way for simple types
+		}
+		else // complex return via ptr (pCppReturn)
+		{
+			pCppReturn = *(void **)gpreg;
+            gpreg++;
+            ng++;
+			
+			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+						  ? alloca( pReturnTypeDescr->nSize )
+						  : pCppReturn); // direct way
+		}
+	}
+	// pop this
+    gpreg++; 
+    ng++;
+
+	// stack space
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int64), "### unexpected size!" );
+=====================================================================
+Found a 25 line (115 tokens) duplication in the following files: 
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+			free( pCppArgs[nIndex] );
+#endif
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return value
+		if (pCppReturn && pUnoReturn != pCppReturn)
+		{
+			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+									pThis->getBridge()->getCpp2Uno() );
+			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+		}
+	}
+ 	catch (...)
+ 	{
+  		// fill uno exception
+		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+        
+		// temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+=====================================================================
+Found a 21 line (115 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData(
+                pCppArgs[nIndex], pParamTypeDescr,
+                reinterpret_cast< uno_ReleaseFunc >(cpp_release) );
+=====================================================================
+Found a 21 line (115 tokens) duplication in the following files: 
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
+Starting at line 721 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessibletabpage.cxx
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessibletextcomponent.cxx
+Starting at line 576 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
+Starting at line 864 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+        Reference< datatransfer::clipboard::XClipboard > xClipboard = pWin->GetClipboard();
+		if ( xClipboard.is() )
+		{
+            ::rtl::OUString sText( getTextRange(nStartIndex, nEndIndex) );
+
+			::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+			const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+			xClipboard->setContents( pDataObj, NULL );
+
+			Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+			if( xFlushableClipboard.is() )
+				xFlushableClipboard->flushClipboard();
+
+			Application::AcquireSolarMutex( nRef );
+
+			bReturn = sal_True;
+		}
+	}
+
+    return bReturn;
+}
+=====================================================================
+Found a 25 line (114 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlservices.cxx
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/misc/rptuiservices.cxx
+
+    { &GeometryHandler::create, &GeometryHandler::getImplementationName_Static, &GeometryHandler::getSupportedServiceNames_static,
+		&cppu::createSingleComponentFactory, 0, 0 },
+	{ 0, 0, 0, 0, 0, 0 } 
+};
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+    char const * implName, void * serviceManager, void * registryKey)
+{
+    return cppu::component_getFactoryHelper(
+        implName, serviceManager, registryKey, entries);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, uno_Environment **)
+{
+    *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+    void * serviceManager, void * registryKey)
+{
+    return cppu::component_writeInfoHelper(
+        serviceManager, registryKey, entries);
+}
+=====================================================================
+Found a 21 line (114 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+                int y_lr = y >> image_subpixel_shift;
+                int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * 
+                               ry_inv) >> 
+                                   image_subpixel_shift;
+                int total_weight = 0;
+                int x_lr_ini = x >> image_subpixel_shift;
+                int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) * 
+                                   rx_inv) >> 
+                                       image_subpixel_shift;
+
+                do
+                {
+                    int weight_y = weight_array[y_hr];
+                    int x_lr = x_lr_ini;
+                    int x_hr = x_hr_ini;
+                    if(y_lr >= 0 && y_lr <= maxy)
+                    {
+                        const value_type* fg_ptr = (const value_type*)
+                            base_type::source_image().row(y_lr) + (x_lr << 2);
+=====================================================================
+Found a 22 line (114 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            color_type* span = base_type::allocator().span();
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                int x_hr;
+                int y_hr;
+                
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+Starting at line 982 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
+
+void ElementDescriptor::readFixedLineModel( StyleBag * all_styles )
+    SAL_THROW( (Exception) )
+{
+    // collect styles
+    Style aStyle( 0x2 | 0x8 | 0x20 );
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
+        aStyle._set |= 0x2;
+    if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
+        aStyle._set |= 0x20;
+    if (readFontProps( this, aStyle ))
+        aStyle._set |= 0x8;
+    if (aStyle._set)
+    {
+        addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
+                      all_styles->getStyleId( aStyle ) );
+    }
+    
+    // collect elements
+    readDefaults();
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOASISTContext.cxx
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ControlOASISTContext.cxx
+
+	Reference< XAttributeList > xControlAttrList( pControlMutableAttrList );
+
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+			if( !pMutableAttrList )
+			{
+				pMutableAttrList = 
+					new XMLMutableAttributeList( rAttrList );
+=====================================================================
+Found a 5 line (114 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+static char ass_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 11 line (114 tokens) duplication in the following files: 
+Starting at line 1309 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 1326 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+					const BitmapColor	aCol( pReadAcc->GetPixel( nY, nX ) );
+					const ULONG			nD = nVCLDitherLut[ nModY + ( nX & 0x0FUL ) ];
+					const ULONG			nR = ( nVCLLut[ aCol.GetRed() ] + nD ) >> 16UL;
+					const ULONG			nG = ( nVCLLut[ aCol.GetGreen() ] + nD ) >> 16UL;
+					const ULONG			nB = ( nVCLLut[ aCol.GetBlue() ] + nD ) >> 16UL;
+
+					aIndex.SetIndex( (BYTE) ( nVCLRLut[ nR ] + nVCLGLut[ nG ] + nVCLBLut[ nB ] ) );
+					pWriteAcc->SetPixel( nY, nX, aIndex );
+				}
+			}
+		}
+=====================================================================
+Found a 18 line (114 tokens) duplication in the following files: 
+Starting at line 871 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+Starting at line 991 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/field.cxx
+
+    ComboBox::DataChanged( rDCEvt );
+
+    if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
+    {
+        String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        if ( IsDefaultLocale() )
+            ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLocale() );
+        String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
+        String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
+        ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
+        ReformatAll();
+    }
+}
+
+// -----------------------------------------------------------------------
+
+void NumericBox::Modify()
+=====================================================================
+Found a 29 line (114 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/streaming/streamwrap.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.cxx
+
+	m_pSvStream->setPos(Pos_Absolut,nPos);
+	checkError();
+
+	return nAvailable;
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OInputStreamWrapper::closeInput() throw( stario::NotConnectedException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	if (m_bSvStreamOwner)
+		delete m_pSvStream;
+
+	m_pSvStream = NULL;
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkConnected() const
+{
+	if (!m_pSvStream)
+		throw stario::NotConnectedException(::rtl::OUString(), const_cast<staruno::XWeak*>(static_cast<const staruno::XWeak*>(this)));
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkError() const
+{
+	checkConnected();
+=====================================================================
+Found a 30 line (114 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+Starting at line 374 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+									m_pImpl->m_xContent->getProvider().get(),
+									queryContentIdentifierString( nIndex ) );
+		m_pImpl->m_aResults[ nIndex ]->xRow = xRow;
+		return xRow;
+	}
+
+	return uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::releasePropertyValues( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+		m_pImpl->m_aResults[ nIndex ]->xRow = uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::close()
+{
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::validate()
+	throw( ucb::ResultSetException )
+{
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/DateTimeHelper.cxx
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/DateTimeHelper.cxx
+
+            oslDateTime aDateTime;
+            aDateTime.NanoSeconds = 0;
+            aDateTime.Seconds     = sal::static_int_cast< sal_uInt16 >(seconds);
+                // 0-59
+            aDateTime.Minutes     = sal::static_int_cast< sal_uInt16 >(minutes);
+                // 0-59
+            aDateTime.Hours       = sal::static_int_cast< sal_uInt16 >(hours);
+                // 0-23
+            aDateTime.Day         = sal::static_int_cast< sal_uInt16 >(day);
+                // 1-31
+            aDateTime.DayOfWeek   = 0; //dayofweek;  // 0-6, 0 = Sunday
+            aDateTime.Month       = sal::static_int_cast< sal_uInt16 >(month);
+                // 1-12
+            aDateTime.Year        = sal::static_int_cast< sal_uInt16 >(year);
+
+            TimeValue aTimeValue;
+            if ( osl_getTimeValueFromDateTime( &aDateTime,
+                                                &aTimeValue ) )
+            {
+=====================================================================
+Found a 34 line (114 tokens) duplication in the following files: 
+Starting at line 1100 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+							rProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "ContentType" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+			rData.aContentType );
+=====================================================================
+Found a 30 line (114 tokens) duplication in the following files: 
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 374 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+									m_pImpl->m_xContent->getProvider().get(),
+									queryContentIdentifierString( nIndex ) );
+		m_pImpl->m_aResults[ nIndex ]->xRow = xRow;
+		return xRow;
+	}
+
+	return uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::releasePropertyValues( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+		m_pImpl->m_aResults[ nIndex ]->xRow = uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::close()
+{
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::validate()
+	throw( ucb::ResultSetException )
+{
+=====================================================================
+Found a 35 line (114 tokens) duplication in the following files: 
+Starting at line 1125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1006 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+							rProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property(
+                rtl::OUString::createFromAscii( "ContentType" ),
+                -1,
+                getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                beans::PropertyAttribute::BOUND
+                    | beans::PropertyAttribute::READONLY ),
+			rData.aContentType );
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 4420 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 4500 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+bool INetURLObject::setBase(rtl::OUString const & rTheBase, sal_Int32 nIndex,
+							bool bIgnoreFinalSlash,
+							EncodeMechanism eMechanism,
+							rtl_TextEncoding eCharset)
+{
+	SubString aSegment(getSegment(nIndex, bIgnoreFinalSlash));
+	if (!aSegment.isPresent())
+		return false;
+
+	sal_Unicode const * pPathBegin
+		= m_aAbsURIRef.getStr() + m_aPath.getBegin();
+	sal_Unicode const * pPathEnd = pPathBegin + m_aPath.getLength();
+	sal_Unicode const * pSegBegin
+		= m_aAbsURIRef.getStr() + aSegment.getBegin();
+	sal_Unicode const * pSegEnd = pSegBegin + aSegment.getLength();
+
+    if (pSegBegin < pSegEnd && *pSegBegin == '/')
+        ++pSegBegin;
+	sal_Unicode const * pExtension = 0;
+=====================================================================
+Found a 10 line (114 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrolbase.cxx
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrolbase.cxx
+
+::com::sun::star::awt::Size UnoControlBase::Impl_getPreferredSize()
+{
+	::com::sun::star::awt::Size aSz;
+	::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >  xP = ImplGetCompatiblePeer( sal_True );
+	DBG_ASSERT( xP.is(), "Layout: No Peer!" );
+	if ( xP.is() )
+	{
+		::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >  xL( xP, ::com::sun::star::uno::UNO_QUERY );
+		if ( xL.is() )
+			aSz = xL->getPreferredSize();
+=====================================================================
+Found a 29 line (114 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/source/result/optionhelper.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/testshl2/workben/test_filter.cxx
+
+void split( const rtl::OString& opt,
+			const rtl::OString& _sSeparator,
+			OStringList& optLine )
+{
+	optLine.clear();
+	// const sal_Int32 cSetLen = cSet.getLength();
+	sal_Int32 index = 0;
+	sal_Int32 oldIndex = 0;
+	
+	// sal_Int32 i;
+	// sal_Int32 j = 0;
+	while ( opt.getLength() > 0)
+	{
+		// for ( i = 0; i < cSetLen; i++ ) 
+		// {
+		index = opt.indexOf( _sSeparator, oldIndex);
+		if( index != -1 ) 
+		{
+			optLine.push_back( opt.copy( oldIndex, index - oldIndex ) );
+			oldIndex = index + _sSeparator.getLength();
+		}
+		// }
+		else // if (index == -1)
+		{
+			optLine.push_back( opt.copy( oldIndex ) );
+			break;
+		}
+	}
+} ///< split
+=====================================================================
+Found a 29 line (114 tokens) duplication in the following files: 
+Starting at line 977 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/wrtsh/select.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/wrtsh/wrtundo.cxx
+
+    DoUndo(bSaveDoesUndo);
+
+	BOOL bCreateXSelection = FALSE;
+	const FASTBOOL bFrmSelected = IsFrmSelected() || IsObjSelected();
+	if ( IsSelection() )
+	{
+		if ( bFrmSelected )
+			UnSelectFrm();
+
+		// Funktionspointer fuer das Aufheben der Selektion setzen
+		// bei Cursor setzen
+		fnKillSel = &SwWrtShell::ResetSelect;
+		fnSetCrsr = &SwWrtShell::SetCrsrKillSel;
+		bCreateXSelection = TRUE;
+	}
+	else if ( bFrmSelected )
+	{
+		EnterSelFrmMode();
+		bCreateXSelection = TRUE;
+	}
+	else if( (CNT_GRF | CNT_OLE ) & GetCntType() )
+	{
+		SelectObj( GetCharRect().Pos() );
+		EnterSelFrmMode();
+		bCreateXSelection = TRUE;
+	}
+
+	if( bCreateXSelection )
+		SwTransferable::CreateSelection( *this );
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 3539 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,    0xE082,         0,         0,
+    // F080
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F090
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0a0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0b0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+=====================================================================
+Found a 21 line (114 tokens) duplication in the following files: 
+Starting at line 3250 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4979 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+		if(bFirstRowAsLabel && ColumnDesc.getLength() >= nColCount - bFirstColumnAsLabel ? 1 : 0)
+		{
+			sal_uInt16 nStart = bFirstColumnAsLabel ? 1 : 0;
+			for(sal_uInt16 i = nStart; i < nColCount; i++)
+			{
+				uno::Reference< table::XCell >  xCell = getCellByPosition(i, 0);
+				if(!xCell.is())
+				{
+					throw uno::RuntimeException();
+					break;
+				}
+				uno::Reference< text::XText >  xText(xCell, uno::UNO_QUERY);
+
+				xText->setString(pArray[i - nStart]);
+			}
+		}
+		else
+		{
+			DBG_ERROR("Wo kommen die Labels her?")
+		}
+	}
+=====================================================================
+Found a 13 line (114 tokens) duplication in the following files: 
+Starting at line 2415 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+Starting at line 2585 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+ 		uno::RuntimeException)
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+	const sal_Bool bDescriptor = rParent.IsDescriptor();
+	SwSectionFmt* pSectFmt = rParent.GetFmt();
+	if(!pSectFmt && !bDescriptor)
+		throw uno::RuntimeException();
+	SwTOXBase* pTOXBase = bDescriptor ? &rParent.GetProperties_Impl()->GetTOXBase() :
+			(SwTOXBaseSection*)pSectFmt->GetSection();
+	if(nIndex < 0 ||
+	(nIndex > pTOXBase->GetTOXForm().GetFormMax()))
+		throw lang::IndexOutOfBoundsException();
+=====================================================================
+Found a 15 line (114 tokens) duplication in the following files: 
+Starting at line 1389 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unofield.cxx
+Starting at line 2145 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoframe.cxx
+
+	if(!IsDescriptor())
+		throw uno::RuntimeException();
+	uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc)
+=====================================================================
+Found a 18 line (114 tokens) duplication in the following files: 
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undraw.cxx
+Starting at line 504 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undraw.cxx
+
+	pObjArr->pObj->SetUserCall( 0 );
+
+	::lcl_SaveAnchor( pFmt, pObjArr->nNodeIdx );
+
+	// alle Uno-Objecte sollten sich jetzt abmelden
+	::lcl_SendRemoveToUno( *pFmt );
+
+	// aus dem Array austragen
+	SwDoc* pDoc = pFmt->GetDoc();
+	SwSpzFrmFmts& rFlyFmts = *(SwSpzFrmFmts*)pDoc->GetSpzFrmFmts();
+	rFlyFmts.Remove( rFlyFmts.GetPos( pFmt ));
+
+	for( USHORT n = 1; n < nSize; ++n )
+	{
+		SwUndoGroupObjImpl& rSave = *( pObjArr + n );
+
+		::lcl_RestoreAnchor( rSave.pFmt, rSave.nNodeIdx );
+		rFlyFmts.Insert( rSave.pFmt, rFlyFmts.Count() );
+=====================================================================
+Found a 21 line (114 tokens) duplication in the following files: 
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl1.cxx
+Starting at line 863 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl1.cxx
+
+							 const SvxBorderLine* pBorderLine )
+{
+	SwCntntNode* pCntNd = rCursor.GetPoint()->nNode.GetNode().GetCntntNode();
+	SwTableNode* pTblNd = pCntNd ? pCntNd->FindTableNode() : 0;
+	if( !pTblNd )
+		return ;
+
+	SwLayoutFrm *pStart, *pEnd;
+	::lcl_GetStartEndCell( rCursor, pStart, pEnd );
+
+	SwSelUnions aUnions;
+	::MakeSelUnions( aUnions, pStart, pEnd );
+
+	if( aUnions.Count() )
+	{
+		SwTable& rTable = pTblNd->GetTable();
+		if( DoesUndo() )
+		{
+			ClearRedo();
+			AppendUndo( new SwUndoAttrTbl( *pTblNd ));
+		}
+=====================================================================
+Found a 21 line (114 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fontworkgallery.cxx
+Starting at line 395 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fontworkgallery.cxx
+
+    Window* /*pParentWindow*/ ) :
+
+	SfxPopupWindow( nId, 
+                    rFrame,
+                    SVX_RES( RID_SVXFLOAT_FONTWORK_ALIGNMENT )),
+	maImgAlgin1( SVX_RES( IMG_FONTWORK_ALIGN_LEFT_16 ) ),
+	maImgAlgin2( SVX_RES( IMG_FONTWORK_ALIGN_CENTER_16 ) ),
+	maImgAlgin3( SVX_RES( IMG_FONTWORK_ALIGN_RIGHT_16 ) ),
+	maImgAlgin4( SVX_RES( IMG_FONTWORK_ALIGN_WORD_16 ) ),
+	maImgAlgin5( SVX_RES( IMG_FONTWORK_ALIGN_STRETCH_16 ) ),
+	maImgAlgin1h( SVX_RES( IMG_FONTWORK_ALIGN_LEFT_16_H ) ),
+	maImgAlgin2h( SVX_RES( IMG_FONTWORK_ALIGN_CENTER_16_H ) ),
+	maImgAlgin3h( SVX_RES( IMG_FONTWORK_ALIGN_RIGHT_16_H ) ),
+	maImgAlgin4h( SVX_RES( IMG_FONTWORK_ALIGN_WORD_16_H ) ),
+	maImgAlgin5h( SVX_RES( IMG_FONTWORK_ALIGN_STRETCH_16_H ) ),
+	mxFrame( rFrame ),
+	mbPopupMode( true )
+{
+	SetHelpId( HID_WIN_FONTWORK_ALIGN );
+    implInit();
+}
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 710 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 1805 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+
+	aTsbTile.Hide();
+	aTsbStretch.Hide();
+	aTsbScale.Hide();
+	aTsbOriginal.Hide();
+	aFtXSize.Hide();
+	aMtrFldXSize.Hide();
+	aFtYSize.Hide();
+	aMtrFldYSize.Hide();
+    aFlSize.Hide();
+	aRbtRow.Hide();
+	aRbtColumn.Hide();
+	aMtrFldOffset.Hide();
+    aFlOffset.Hide();
+	aCtlPosition.Hide();
+	aFtXOffset.Hide();
+	aMtrFldXOffset.Hide();
+	aFtYOffset.Hide();
+	aMtrFldYOffset.Hide();
+    aFlPosition.Hide();
+=====================================================================
+Found a 21 line (114 tokens) duplication in the following files: 
+Starting at line 2681 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 1054 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/misc/outline.cxx
+
+USHORT lcl_DrawGraphic(VirtualDevice* pVDev, const SwNumFmt &rFmt, USHORT nXStart,
+						USHORT nYStart, USHORT nDivision)
+{
+	const SvxBrushItem* pBrushItem = rFmt.GetBrush();
+	USHORT nRet = 0;
+	if(pBrushItem)
+	{
+		const Graphic* pGrf = pBrushItem->GetGraphic();
+		if(pGrf)
+		{
+			Size aGSize( rFmt.GetGraphicSize());
+			aGSize.Width() /= nDivision;
+			nRet = (USHORT)aGSize.Width();
+			aGSize.Height() /= nDivision;
+			pGrf->Draw( pVDev, Point(nXStart,nYStart),
+					pVDev->PixelToLogic( aGSize ) );
+		}
+	}
+	return nRet;
+
+}
+=====================================================================
+Found a 20 line (114 tokens) duplication in the following files: 
+Starting at line 926 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/autocdlg.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optfltr.cxx
+
+void OfaMSFilterTabPage2::MSFltrSimpleTable::SetTabs()
+{
+	SvxSimpleTable::SetTabs();
+	USHORT nAdjust = SV_LBOXTAB_ADJUST_RIGHT|SV_LBOXTAB_ADJUST_LEFT|SV_LBOXTAB_ADJUST_CENTER|SV_LBOXTAB_ADJUST_NUMERIC|SV_LBOXTAB_FORCE;
+
+	if( aTabs.Count() > 1 )
+	{
+		SvLBoxTab* pTab = (SvLBoxTab*)aTabs.GetObject(1);
+		pTab->nFlags &= ~nAdjust;
+		pTab->nFlags |= SV_LBOXTAB_PUSHABLE|SV_LBOXTAB_ADJUST_CENTER|SV_LBOXTAB_FORCE;
+	}
+	if( aTabs.Count() > 2 )
+	{
+		SvLBoxTab* pTab = (SvLBoxTab*)aTabs.GetObject(2);
+		pTab->nFlags &= ~nAdjust;
+		pTab->nFlags |= SV_LBOXTAB_PUSHABLE|SV_LBOXTAB_ADJUST_CENTER|SV_LBOXTAB_FORCE;
+	}
+}
+
+void OfaMSFilterTabPage2::MSFltrSimpleTable::HBarClick()
+=====================================================================
+Found a 25 line (114 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/smdetect.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/swdetect.cxx
+
+                        if ( ( aWrap.TargetException >>= aZipException ) && ( aTypeName.Len() || aPreselectedFilterName.Len() ) )
+						{
+							if ( xInteraction.is() )
+							{
+                                // the package is a broken one
+       							aDocumentTitle = aMedium.GetURLObject().getName(
+															INetURLObject::LAST_SEGMENT,
+															true,
+															INetURLObject::DECODE_WITH_CHARSET );
+
+								if ( !bRepairPackage )
+								{
+									// ask the user whether he wants to try to repair
+            						RequestPackageReparation* pRequest = new RequestPackageReparation( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pRequest );
+            						xInteraction->handle( xRequest );
+            						bRepairAllowed = pRequest->isApproved();
+								}
+
+								if ( !bRepairAllowed )
+								{
+									// repair either not allowed or not successful
+	        						NotifyBrokenPackage* pNotifyRequest = new NotifyBrokenPackage( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pNotifyRequest );
+           							xInteraction->handle( xRequest );
+=====================================================================
+Found a 22 line (114 tokens) duplication in the following files: 
+Starting at line 2461 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/sfxbasemodel.cxx
+Starting at line 2487 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/sfxbasemodel.cxx
+
+	if ( impl_isDisposed() )
+		return;
+
+    ::cppu::OInterfaceContainerHelper* pIC = m_pData->m_aInterfaceContainer.getContainer( ::getCppuType((const uno::Reference< XMODIFYLISTENER >*)0) );
+	if( pIC )
+
+	{
+        lang::EventObject aEvent( (frame::XModel *)this );
+        ::cppu::OInterfaceIteratorHelper aIt( *pIC );
+		while( aIt.hasMoreElements() )
+        {
+            try
+            {
+                ((XMODIFYLISTENER *)aIt.next())->modified( aEvent );
+            }
+            catch( uno::RuntimeException& )
+            {
+                aIt.remove();
+            }
+        }
+	}
+}
+=====================================================================
+Found a 13 line (114 tokens) duplication in the following files: 
+Starting at line 2622 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/bindings.cxx
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/statcach.cxx
+
+            ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >  xDisp = xProv->queryDispatch( aURL, ::rtl::OUString(), 0 );
+            if ( xDisp.is() )
+            {
+                // test the dispatch object if it is just a wrapper for a SfxDispatcher
+				::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > xTunnel( xDisp, ::com::sun::star::uno::UNO_QUERY );
+                SfxOfficeDispatch* pDisp = NULL;
+                if ( xTunnel.is() )
+                {
+                    sal_Int64 nImplementation = xTunnel->getSomething(SfxOfficeDispatch::impl_getStaticIdentifier());
+                    pDisp = reinterpret_cast< SfxOfficeDispatch* >(sal::static_int_cast< sal_IntPtr >( nImplementation ));
+                }
+
+                if ( pDisp )
+=====================================================================
+Found a 20 line (114 tokens) duplication in the following files: 
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/viewshe2.cxx
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/viewshe2.cxx
+
+        mpContentWindow->SetVisibleXY(-1, fY);
+
+        Rectangle aVisArea = GetDocSh()->GetVisArea(ASPECT_CONTENT);
+        Point aVisAreaPos = GetActiveWindow()->PixelToLogic( Point(0,0) );
+        aVisArea.SetPos(aVisAreaPos);
+        GetDocSh()->SetVisArea(aVisArea);
+
+        Size aVisSizePixel = GetActiveWindow()->GetOutputSizePixel();
+        Rectangle aVisAreaWin = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+        VisAreaChanged(aVisAreaWin);
+
+        if (pView)
+        {
+            pView->VisAreaChanged(GetActiveWindow());
+        }
+
+        if (pOLV)
+            pOLV->ShowCursor();
+
+		if (mbHasRulers)
+=====================================================================
+Found a 25 line (114 tokens) duplication in the following files: 
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/swdetect.cxx
+
+                        if ( ( aWrap.TargetException >>= aZipException ) && ( aTypeName.Len() || aPreselectedFilterName.Len() ) )
+						{
+							if ( xInteraction.is() )
+							{
+                                // the package is a broken one
+       							aDocumentTitle = aMedium.GetURLObject().getName(
+															INetURLObject::LAST_SEGMENT,
+															true,
+															INetURLObject::DECODE_WITH_CHARSET );
+
+								if ( !bRepairPackage )
+								{
+									// ask the user whether he wants to try to repair
+            						RequestPackageReparation* pRequest = new RequestPackageReparation( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pRequest );
+            						xInteraction->handle( xRequest );
+            						bRepairAllowed = pRequest->isApproved();
+								}
+
+								if ( !bRepairAllowed )
+								{
+									// repair either not allowed or not successful
+	        						NotifyBrokenPackage* pNotifyRequest = new NotifyBrokenPackage( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pNotifyRequest );
+           							xInteraction->handle( xRequest );
+=====================================================================
+Found a 26 line (114 tokens) duplication in the following files: 
+Starting at line 672 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+Starting at line 700 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/graphctl.cxx
+
+						pView->MarkPoint(*pHdl);
+					}
+
+					if(0L == rHdlList.GetFocusHdl())
+					{
+						// restore point with focus
+						SdrHdl* pNewOne = 0L;
+
+						for(sal_uInt32 a(0); !pNewOne && a < rHdlList.GetHdlCount(); a++)
+						{
+							SdrHdl* pAct = rHdlList.GetHdl(a);
+
+							if(pAct
+								&& pAct->GetKind() == HDL_POLY
+								&& pAct->GetPolyNum() == nPol
+								&& pAct->GetPointNum() == nPnt)
+							{
+								pNewOne = pAct;
+							}
+						}
+
+						if(pNewOne)
+						{
+							((SdrHdlList&)rHdlList).SetFocusHdl(pNewOne);
+						}
+					}
+=====================================================================
+Found a 20 line (114 tokens) duplication in the following files: 
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconcs.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/ribbar/concustomshape.cxx
+
+void ConstCustomShape::SetAttributes( SdrObject* pObj )
+{
+	sal_Bool bAttributesAppliedFromGallery = sal_False;
+
+	if ( GalleryExplorer::GetSdrObjCount( GALLERY_THEME_POWERPOINT ) )
+	{
+		std::vector< rtl::OUString > aObjList;
+		if ( GalleryExplorer::FillObjListTitle( GALLERY_THEME_POWERPOINT, aObjList ) )
+		{
+			sal_uInt16 i;
+			for ( i = 0; i < aObjList.size(); i++ )
+			{
+				if ( aObjList[ i ].equalsIgnoreAsciiCase( aCustomShape ) )
+				{
+					FmFormModel aFormModel;
+					SfxItemPool& rPool = aFormModel.GetItemPool();
+					rPool.FreezeIdRanges();
+					if ( GalleryExplorer::GetSdrObj( GALLERY_THEME_POWERPOINT, i, &aFormModel ) )
+					{
+						const SdrObject* pSourceObj = aFormModel.GetPage( 0 )->GetObj( 0 );
+=====================================================================
+Found a 9 line (114 tokens) duplication in the following files: 
+Starting at line 1402 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/sdpage.cxx
+Starting at line 1423 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/sdpage.cxx
+
+	case 8: // vertical title, shape
+	{
+		Size aSize( rRectangle[0].GetSize().Height(), rRectangle[1].BottomLeft().Y() - rRectangle[0].TopLeft().Y() );
+		rRectangle[0].SetSize( aSize );
+		rRectangle[0].SetPos( aTitleRect.TopRight() - Point( aSize.Width(), 0 ) );
+
+		Size aPageSize ( rPage.GetSize() );
+		aPageSize.Height() -= rPage.GetUppBorder() + rPage.GetLwrBorder();
+		aSize.Height() = rRectangle[0].GetSize().Height();
+=====================================================================
+Found a 22 line (114 tokens) duplication in the following files: 
+Starting at line 755 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+Starting at line 867 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+BOOL ScDBFunc::HasSelectionForNumGroup( ScDPNumGroupInfo& rOldInfo )
+{
+    // determine if the numeric group dialog has to be shown for the current selection
+
+    BOOL bFound = FALSE;
+
+    SCCOL nCurX = GetViewData()->GetCurX();
+    SCROW nCurY = GetViewData()->GetCurY();
+    SCTAB nTab = GetViewData()->GetTabNo();
+    ScDocument* pDoc = GetViewData()->GetDocument();
+
+    ScDPObject* pDPObj = pDoc->GetDPAtCursor( nCurX, nCurY, nTab );
+    if ( pDPObj )
+    {
+        StrCollection aEntries;
+        long nSelectDimension = -1;
+        GetSelectedMemberList( aEntries, nSelectDimension );
+
+        if ( aEntries.GetCount() > 0 )
+        {
+            BOOL bIsDataLayout;
+            String aDimName = pDPObj->GetDimName( nSelectDimension, bIsDataLayout );
+=====================================================================
+Found a 25 line (114 tokens) duplication in the following files: 
+Starting at line 413 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/swdetect.cxx
+
+                        if ( ( aWrap.TargetException >>= aZipException ) && ( aTypeName.Len() || aPreselectedFilterName.Len() ) )
+						{
+							if ( xInteraction.is() )
+							{
+                                // the package is a broken one
+       							aDocumentTitle = aMedium.GetURLObject().getName(
+															INetURLObject::LAST_SEGMENT,
+															true,
+															INetURLObject::DECODE_WITH_CHARSET );
+
+								if ( !bRepairPackage )
+								{
+									// ask the user whether he wants to try to repair
+            						RequestPackageReparation* pRequest = new RequestPackageReparation( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pRequest );
+            						xInteraction->handle( xRequest );
+            						bRepairAllowed = pRequest->isApproved();
+								}
+
+								if ( !bRepairAllowed )
+								{
+									// repair either not allowed or not successful
+	        						NotifyBrokenPackage* pNotifyRequest = new NotifyBrokenPackage( aDocumentTitle );
+            						uno::Reference< task::XInteractionRequest > xRequest ( pNotifyRequest );
+           							xInteraction->handle( xRequest );
+=====================================================================
+Found a 20 line (114 tokens) duplication in the following files: 
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuconcustomshape.cxx
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconcs.cxx
+
+void FuConstructCustomShape::SetAttributes( SdrObject* pObj )
+{
+	sal_Bool bAttributesAppliedFromGallery = sal_False;
+
+	if ( GalleryExplorer::GetSdrObjCount( GALLERY_THEME_POWERPOINT ) )
+	{
+		std::vector< rtl::OUString > aObjList;
+		if ( GalleryExplorer::FillObjListTitle( GALLERY_THEME_POWERPOINT, aObjList ) )
+		{
+			sal_uInt16 i;
+			for ( i = 0; i < aObjList.size(); i++ )
+			{
+				if ( aObjList[ i ].equalsIgnoreAsciiCase( aCustomShape ) )
+				{
+					FmFormModel aFormModel;
+					SfxItemPool& rPool = aFormModel.GetItemPool();
+					rPool.FreezeIdRanges();
+					if ( GalleryExplorer::GetSdrObj( GALLERY_THEME_POWERPOINT, i, &aFormModel ) )
+					{
+						const SdrPage* pPage = aFormModel.GetPage( 0 );
+=====================================================================
+Found a 18 line (114 tokens) duplication in the following files: 
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+
+BOOL ScOutlineDocFunc::HideMarkedOutlines( const ScRange& rRange, BOOL bRecord, BOOL bApi )
+{
+	BOOL bDone = FALSE;
+
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nTab = rRange.aStart.Tab();
+
+	ScDocument* pDoc = rDocShell.GetDocument();
+
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+	ScOutlineTable* pTable = pDoc->GetOutlineTable( nTab );
+
+	if (pTable)
+	{
+=====================================================================
+Found a 35 line (114 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/attrdlg/scdlgfact.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/swdlgfact.cxx
+
+IMPL_ABSTDLG_BASE(AbstractAuthMarkFloatDlg_Impl);
+
+// AbstractTabDialog_Impl begin
+void AbstractTabDialog_Impl::SetCurPageId( USHORT nId )
+{
+	pDlg->SetCurPageId( nId );
+}
+
+const SfxItemSet* AbstractTabDialog_Impl::GetOutputItemSet() const
+{
+	return pDlg->GetOutputItemSet();
+}
+//add by CHINA001
+const USHORT* AbstractTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
+{
+	return pDlg->GetInputRanges( pItem );
+}
+//add by CHINA001
+void AbstractTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
+{
+	 pDlg->SetInputSet( pInSet );
+}
+//From class Window.
+void AbstractTabDialog_Impl::SetText( const XubString& rStr )
+{
+	pDlg->SetText( rStr );
+}
+String AbstractTabDialog_Impl::GetText() const
+{
+	return pDlg->GetText();
+}
+
+//add for AbstractTabDialog_Impl end
+
+void    AbstractSwWordCountDialog_Impl::SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc)
+=====================================================================
+Found a 20 line (114 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/xelink.cxx
+Starting at line 565 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/xelink.cxx
+
+    explicit            XclExpLinkManagerImpl8( const XclExpRoot& rRoot );
+
+    virtual void        FindExtSheet( sal_uInt16& rnExtSheet,
+                            sal_uInt16& rnFirstXclTab, sal_uInt16& rnLastXclTab,
+                            SCTAB nFirstScTab, SCTAB nLastScTab,
+                            XclExpRefLogEntry* pRefLogEntry );
+    virtual sal_uInt16  FindExtSheet( sal_Unicode cCode );
+
+    virtual void        StoreCellRange( const SingleRefData& rRef1, const SingleRefData& rRef2 );
+
+    virtual bool        InsertAddIn(
+                            sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
+                            const String& rName );
+    virtual bool        InsertDde(
+                            sal_uInt16& rnExtSheet, sal_uInt16& rnExtName,
+                            const String& rApplic, const String& rTopic, const String& rItem );
+
+    virtual void        Save( XclExpStream& rStrm );
+
+private:
+=====================================================================
+Found a 14 line (114 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/dbcolect.cxx
+Starting at line 530 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/dbcolect.cxx
+
+    bAutoFilter         = rData.bAutoFilter;
+
+	for (i=0; i<MAXSORT; i++)
+	{
+		bDoSort[i]		= rData.bDoSort[i];
+		nSortField[i]	= rData.nSortField[i];
+		bAscending[i]	= rData.bAscending[i];
+	}
+	for (i=0; i<MAXQUERY; i++)
+	{
+		bDoQuery[i]			= rData.bDoQuery[i];
+		nQueryField[i]		= rData.nQueryField[i];
+		eQueryOp[i]			= rData.eQueryOp[i];
+		bQueryByString[i]	= rData.bQueryByString[i];
+=====================================================================
+Found a 12 line (114 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/cpp/complextoolbarcontrols/MyJob.h
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.h
+
+		throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+	// XServiceInfo
+    virtual ::rtl::OUString SAL_CALL getImplementationName(  )
+		throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
+		throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  )
+		throw (::com::sun::star::uno::RuntimeException);
+};
+
+::rtl::OUString MyProtocolHandler_getImplementationName()
+=====================================================================
+Found a 5 line (114 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+
+static char ase_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1c,0x0e,
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/controlmenucontroller.cxx
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs( 1 );
+            Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance( 
+                                                            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                        UNO_QUERY );
+
+            {
+                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+
+                aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+            }
+            
+            xURLTransformer->parseStrict( aTargetURL );
+=====================================================================
+Found a 17 line (114 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/dispatch/mailtodispatcher.cxx
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/dispatch/popupmenudispatcher.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/dispatch/servicehandler.cxx
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/dispatch/systemexec.cxx
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL SystemExec::queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw( css::uno::RuntimeException )
+{
+    sal_Int32 nCount = lDescriptor.getLength();
+    css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > lDispatcher( nCount );
+    for( sal_Int32 i=0; i<nCount; ++i )
+    {
+        lDispatcher[i] = this->queryDispatch(
+                            lDescriptor[i].FeatureURL,
+                            lDescriptor[i].FrameName,
+                            lDescriptor[i].SearchFlags);
+    }
+    return lDispatcher;
+}
+
+//_________________________________________________________________________________________________________________
+
+void SAL_CALL SystemExec::dispatch( const css::util::URL&                                  aURL       ,
+=====================================================================
+Found a 18 line (114 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1748 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmluconv.cxx
+
+    sal_uInt8 nIndex (static_cast<sal_uInt8>((nBinaer & 0xFC0000) >> 18));
+    sBuffer.setCharAt(0, aBase64EncodeTable [nIndex]);
+
+    nIndex = static_cast<sal_uInt8>((nBinaer & 0x3F000) >> 12);
+    sBuffer.setCharAt(1, aBase64EncodeTable [nIndex]);
+    if (nLen == 1)
+        return;
+
+    nIndex = static_cast<sal_uInt8>((nBinaer & 0xFC0) >> 6);
+    sBuffer.setCharAt(2, aBase64EncodeTable [nIndex]);
+    if (nLen == 2)
+        return;
+
+    nIndex = static_cast<sal_uInt8>((nBinaer & 0x3F));
+    sBuffer.setCharAt(3, aBase64EncodeTable [nIndex]);
+}
+
+void SvXMLUnitConverter::encodeBase64(rtl::OUStringBuffer& aStrBuffer, const uno::Sequence<sal_Int8>& aPass)
+=====================================================================
+Found a 19 line (114 tokens) duplication in the following files: 
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/fileaccess/source/FileAccess.cxx
+Starting at line 781 of /local/ooo-build/ooo-build/src/oog680-m3/fileaccess/source/FileAccess.cxx
+
+                    & ContentInfoAttribute::INSERT_WITH_INPUTSTREAM ) )
+            {
+                // Make sure the only required bootstrap property is
+                // "Title",
+                const Sequence< Property > & rProps = rCurr.Properties;
+                if ( rProps.getLength() != 1 )
+                    continue;
+
+                if ( !rProps[ 0 ].Name.equalsAsciiL(
+                        RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+                    continue;
+
+                Sequence<rtl::OUString> aNames(1);
+                rtl::OUString* pNames = aNames.getArray();
+                pNames[0] = rtl::OUString(
+                                RTL_CONSTASCII_USTRINGPARAM( "Title" ) );
+                Sequence< Any > aValues(1);
+                Any* pValues = aValues.getArray();
+                pValues[0] = makeAny( rtl::OUString( rTitle ) );
+=====================================================================
+Found a 24 line (114 tokens) duplication in the following files: 
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+	  m_bLink( bLink )
+{
+	m_aInterceptedURL[0] = rtl::OUString(
+		RTL_CONSTASCII_USTRINGPARAM(".uno:Save"));
+	m_aInterceptedURL[1] = rtl::OUString(
+		RTL_CONSTASCII_USTRINGPARAM(".uno:SaveAll"));
+	m_aInterceptedURL[2] = rtl::OUString(
+		RTL_CONSTASCII_USTRINGPARAM(".uno:CloseDoc"));	
+	m_aInterceptedURL[3] = rtl::OUString(
+		RTL_CONSTASCII_USTRINGPARAM(".uno:CloseWin"));	
+	m_aInterceptedURL[4] = rtl::OUString(
+		RTL_CONSTASCII_USTRINGPARAM(".uno:CloseFrame"));	
+	m_aInterceptedURL[5] = rtl::OUString(
+		RTL_CONSTASCII_USTRINGPARAM(".uno:SaveAs"));
+}
+
+
+Interceptor::~Interceptor()
+{
+	if( m_pDisposeEventListeners )
+		delete m_pDisposeEventListeners;
+
+	if(m_pStatCL)
+		delete m_pStatCL;
+=====================================================================
+Found a 38 line (114 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/myucp_resultset.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_resultset.cxx
+
+					  const rtl::Reference< Content >& rxContent,
+					  const OpenCommandArgument2& rCommand,
+					  const Reference< XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 13 line (114 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/FilteredContainer.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/viewcontainer.cxx
+
+using namespace dbtools;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::container;
+using namespace ::osl;
+using namespace ::comphelper;
+using namespace ::cppu;
+using namespace ::connectivity::sdbcx;
+=====================================================================
+Found a 25 line (114 tokens) duplication in the following files: 
+Starting at line 418 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlservices.cxx
+
+    { &ORptStylesImportHelper::create, &ORptStylesImportHelper::getImplementationName_Static, &ORptStylesImportHelper::getSupportedServiceNames_Static,
+		&cppu::createSingleComponentFactory, 0, 0 },
+	{ 0, 0, 0, 0, 0, 0 } 
+};
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+    char const * implName, void * serviceManager, void * registryKey)
+{
+    return cppu::component_getFactoryHelper(
+        implName, serviceManager, registryKey, entries);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    char const ** envTypeName, uno_Environment **)
+{
+    *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+    void * serviceManager, void * registryKey)
+{
+    return cppu::component_writeInfoHelper(
+        serviceManager, registryKey, entries);
+}
+=====================================================================
+Found a 17 line (114 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/EnvGuard/EnvGuard.test.cxx
+
+        current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
+    }
+
+	if (current_EnvDcp == ref)
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+	else
+    {
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t        got: \""));
+        s_message += current_EnvDcp;
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t   expected: \""));
+        s_message += ref;
+		s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+    }
+}
+=====================================================================
+Found a 15 line (114 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BUser.cxx
+Starting at line 254 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HUser.cxx
+
+void SAL_CALL OHSQLUser::grantPrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(SQLException, RuntimeException)
+{
+    if ( objType != PrivilegeObject::TABLE )
+        ::dbtools::throwSQLException( "Privilege not granted: Only table privileges can be granted", "01007", *this );
+
+	::osl::MutexGuard aGuard(m_aMutex);
+
+	::rtl::OUString sPrivs = getPrivilegeString(objPrivileges);
+	if(sPrivs.getLength())
+	{
+		::rtl::OUString sGrant;
+		sGrant += ::rtl::OUString::createFromAscii("GRANT ");
+		sGrant += sPrivs;
+		sGrant += ::rtl::OUString::createFromAscii(" ON ");
+		Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+=====================================================================
+Found a 12 line (114 tokens) duplication in the following files: 
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BViews.cxx
+
+    Reference< XInterface > xObject( getObject( _nPos ) );
+    sal_Bool bIsNew = connectivity::sdbcx::ODescriptor::isNew( xObject );
+	if (!bIsNew)
+	{
+		OAdabasConnection* pConnection = static_cast<OAdabasCatalog&>(m_rParent).getConnection();
+        Reference< XStatement > xStmt = pConnection->createStatement(  );
+
+		::rtl::OUString aName,aSchema;
+		sal_Int32 nLen = _sElementName.indexOf('.');
+		aSchema = _sElementName.copy(0,nLen);
+		aName	= _sElementName.copy(nLen+1);
+		::rtl::OUString aSql = ::rtl::OUString::createFromAscii("DROP VIEW");
+=====================================================================
+Found a 21 line (114 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FValue.cxx
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FValue.cxx
+
+				break;
+			case DataType::BIT:
+			case DataType::BOOLEAN:
+				m_aValue.m_bBool	= _rRH.m_aValue.m_bBool;
+				break;
+			case DataType::TINYINT:
+				if ( _rRH.m_bSigned )
+					m_aValue.m_nInt8	= _rRH.m_aValue.m_nInt8;
+				else
+					m_aValue.m_nInt16	= _rRH.m_aValue.m_nInt16;
+				break;
+			case DataType::SMALLINT:
+				if ( _rRH.m_bSigned )
+					m_aValue.m_nInt16	= _rRH.m_aValue.m_nInt16;
+				else
+					m_aValue.m_nInt32	= _rRH.m_aValue.m_nInt32;
+				break;
+			case DataType::INTEGER:
+				if ( _rRH.m_bSigned )
+					m_aValue.m_nInt32	= _rRH.m_aValue.m_nInt32;
+				else
+=====================================================================
+Found a 12 line (114 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/genericpropertyset.cxx
+Starting at line 382 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/unoimap.cxx
+
+Any SAL_CALL SvUnoImageMapObject::queryAggregation( const Type & rType )
+	throw(RuntimeException)
+{
+	Any aAny;
+
+	if( rType == ::getCppuType((const Reference< XServiceInfo >*)0) )
+		aAny <<= Reference< XServiceInfo >(this);
+	else if( rType == ::getCppuType((const Reference< XTypeProvider >*)0) )
+		aAny <<= Reference< XTypeProvider >(this);
+	else if( rType == ::getCppuType((const Reference< XPropertySet >*)0) )
+		aAny <<= Reference< XPropertySet >(this);
+	else if( rType == ::getCppuType((const Reference< XEventsSupplier >*)0) )
+=====================================================================
+Found a 31 line (114 tokens) duplication in the following files: 
+Starting at line 2735 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 1709 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+	return ret;
+}
+
+//*************************************************************************
+// scopedName
+//*************************************************************************
+OString scopedName(const OString& scope, const OString& type,
+				   sal_Bool bNoNameSpace)
+{
+    sal_Int32 nPos = type.lastIndexOf( '/' );
+	if (nPos == -1)
+		return type;
+
+	if (bNoNameSpace)
+		return type.copy(nPos+1);
+
+	OStringBuffer tmpBuf(type.getLength()*2);
+    nPos = 0;
+    do
+	{
+		tmpBuf.append("::");
+		tmpBuf.append(type.getToken(0, '/', nPos));
+	} while( nPos != -1 );
+
+	return tmpBuf.makeStringAndClear();
+}
+
+//*************************************************************************
+// shortScopedName
+//*************************************************************************
+OString scope(const OString& scope, const OString& type )
+=====================================================================
+Found a 29 line (114 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/CandleStickChartType.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/NetChartType.cxx
+
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+} // anonymous namespace
+
+namespace chart
+{
+=====================================================================
+Found a 25 line (114 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/AreaChartTypeTemplate.cxx
+
+        uno::makeAny( sal_Int32( 2 ) );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+=====================================================================
+Found a 22 line (114 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+
+	}
+}
+
+//================================================================================================== 
+static void cpp_call(
+	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+    bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+	typelib_TypeDescriptionReference * pReturnTypeRef,
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+{
+  	// max space for: [complex ret ptr], values|ptr ...
+  	char * pCppStack		=
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+=====================================================================
+Found a 16 line (113 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlFormatCondition.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlImage.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/filter/xml/xmlReportElement.cxx
+
+	const SvXMLTokenMap& rTokenMap = rImport.GetReportElementElemTokenMap();
+
+	static const ::rtl::OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
+	const sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
+	try
+	{
+		for(sal_Int16 i = 0; i < nLength; ++i)
+		{
+			OUString sLocalName;
+			const rtl::OUString sAttrName = _xAttrList->getNameByIndex( i );
+			const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
+			rtl::OUString sValue = _xAttrList->getValueByIndex( i );
+
+			switch( rTokenMap.Get( nPrefix, sLocalName ) )
+			{
+				case XML_TOK_PRINT_ONLY_WHEN_GROUP_CHANGE: 
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 399 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+            base_type(alloc, src, back_color, inter, &filter) 
+        {}
+
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+
+            calc_type fg[4];
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            color_type* span = base_type::allocator().span();
+=====================================================================
+Found a 13 line (113 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_conv_clip_polygon.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_conv_clip_polyline.h
+
+            conv_adaptor_vpgen<VertexSource, vpgen_clip_polyline>(vs) {}
+
+        void clip_box(double x1, double y1, double x2, double y2)
+        {
+            base_type::vpgen().clip_box(x1, y1, x2, y2);
+        }
+
+        double x1() const { return base_type::vpgen().x1(); }
+        double y1() const { return base_type::vpgen().y1(); }
+        double x2() const { return base_type::vpgen().x2(); }
+        double y2() const { return base_type::vpgen().y2(); }
+
+        typedef conv_clip_polyline<VertexSource> source_type;
+=====================================================================
+Found a 25 line (113 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/csfit/decrypter.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/decrypter.cxx
+
+			xManager->createInstanceWithContext( OUString::createFromAscii( "com.sun.star.xml.xsec.XMLElementWrapper" ) , xContext ) ;
+		OSL_ENSURE( tplElement.is() ,
+			"Decryptor - "
+			"Cannot get service instance of \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XXMLElementWrapper > xTplElement( tplElement , UNO_QUERY ) ;
+		OSL_ENSURE( xTplElement.is() ,
+			"Decryptor - "
+			"Cannot get interface of \"XXMLElementWrapper\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		Reference< XUnoTunnel > xTplEleTunnel( xTplElement , UNO_QUERY ) ;
+		OSL_ENSURE( xTplEleTunnel.is() ,
+			"Decryptor - "
+			"Cannot get interface of \"XUnoTunnel\" from service \"xsec.XMLElementWrapper\"" ) ;
+
+		XMLElementWrapper_XmlSecImpl* pTplElement = ( XMLElementWrapper_XmlSecImpl* )xTplEleTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
+		OSL_ENSURE( pTplElement != NULL ,
+			"Decryptor - "
+			"Cannot get implementation of \"xsec.XMLElementWrapper\"" ) ;
+
+		pTplElement->setNativeElement( tplNode ) ;
+
+		//Build XML Encryption template
+		Reference< XInterface > enctpl =
+			xManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.xml.xsec.XMLEncryptionTemplate"), xContext ) ;
+=====================================================================
+Found a 23 line (113 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/GradientStyle.cxx
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/TransGradientStyle.cxx
+
+									  	  rStrName );
+				
+				aStrValue = aOut.makeStringAndClear();
+				rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE, aStrValue );
+				
+				// Center x/y
+				if( aGradient.Style != awt::GradientStyle_LINEAR &&
+					aGradient.Style != awt::GradientStyle_AXIAL   )
+				{
+					SvXMLUnitConverter::convertPercent( aOut, aGradient.XOffset );
+					aStrValue = aOut.makeStringAndClear();
+					rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_CX, aStrValue );
+					
+					SvXMLUnitConverter::convertPercent( aOut, aGradient.YOffset );
+					aStrValue = aOut.makeStringAndClear();
+					rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_CY, aStrValue );
+				}
+				
+
+				Color aColor;
+
+				// Transparency start
+				aColor.SetColor( aGradient.StartColor );
+=====================================================================
+Found a 17 line (113 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximp3dscene.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpgrp.cxx
+
+SvXMLImportContext* SdXMLGroupShapeContext::CreateChildContext( USHORT nPrefix,
+	const OUString& rLocalName,
+	const uno::Reference< xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext* pContext = 0L;
+	
+	// #i68101#
+	if( nPrefix == XML_NAMESPACE_SVG &&	
+		(IsXMLToken( rLocalName, XML_TITLE ) || IsXMLToken( rLocalName, XML_DESC ) ) )
+	{
+		pContext = new SdXMLDescriptionContext( GetImport(), nPrefix, rLocalName, xAttrList, mxShape );
+	}
+	else if( nPrefix == XML_NAMESPACE_OFFICE && IsXMLToken( rLocalName, XML_EVENT_LISTENERS ) )
+	{
+		pContext = new SdXMLEventsContext( GetImport(), nPrefix, rLocalName, xAttrList, mxShape );
+	}
+	else if( nPrefix == XML_NAMESPACE_DRAW && IsXMLToken( rLocalName, XML_GLUE_POINT ) )
+=====================================================================
+Found a 16 line (113 tokens) duplication in the following files: 
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bmpfast.cxx
+Starting at line 880 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bmpfast.cxx
+
+    const BitmapBuffer& rMsk = *rMskRA.ImplGetBitmapBuffer();
+
+    const ULONG nSrcFormat = rSrc.mnFormat & ~BMP_FORMAT_TOP_DOWN;
+    const ULONG nDstFormat = rDst.mnFormat & ~BMP_FORMAT_TOP_DOWN;
+
+    // accelerated conversions for 16bit colormasks with non-565 format are not yet implemented
+    if( nSrcFormat & (BMP_FORMAT_16BIT_TC_LSB_MASK | BMP_FORMAT_16BIT_TC_MSB_MASK) )
+        if( rSrc.maColorMask.GetRedMask()  != 0xF800
+        ||  rSrc.maColorMask.GetGreenMask()!= 0x07E0
+        ||  rSrc.maColorMask.GetBlueMask() != 0x001F)
+            return false;
+    if( nDstFormat & (BMP_FORMAT_16BIT_TC_LSB_MASK | BMP_FORMAT_16BIT_TC_MSB_MASK) )
+        if( rDst.maColorMask.GetRedMask()  != 0xF800
+        ||  rDst.maColorMask.GetGreenMask()!= 0x07E0
+        ||  rDst.maColorMask.GetBlueMask() != 0x001F)
+            return false;
+=====================================================================
+Found a 21 line (113 tokens) duplication in the following files: 
+Starting at line 1059 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+Starting at line 1160 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+
+sal_Bool ConfigItem::ReplaceSetProperties(
+	const OUString& rNode, Sequence< PropertyValue > rValues)
+{
+	ValueCounter_Impl aCounter(pImpl->nInValueChange);
+    sal_Bool bRet = sal_True;
+    Reference<XHierarchicalNameAccess> xHierarchyAccess = GetTree();
+    if(xHierarchyAccess.is())
+	{
+		Reference<XChangesBatch> xBatch(xHierarchyAccess, UNO_QUERY);
+		try
+		{
+			Reference<XNameContainer> xCont;
+			if(rNode.getLength())
+			{
+				Any aNode = xHierarchyAccess->getByHierarchicalName(rNode);
+				aNode >>= xCont;
+			}
+			else
+				xCont = Reference<XNameContainer> (xHierarchyAccess, UNO_QUERY);
+			if(!xCont.is())
+				return sal_False;
+=====================================================================
+Found a 36 line (113 tokens) duplication in the following files: 
+Starting at line 576 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 288 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+                                    rtl::OUString(),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getPropertySetInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getPropertySetInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "getCommandInfo" ) ) )
+    {
+		//////////////////////////////////////////////////////////////////
+		// getCommandInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getCommandInfo( Environment );
+	}
+#ifdef IMPLEMENT_COMMAND_OPEN
+    else if ( aCommand.Name.equalsAsciiL(
+				RTL_CONSTASCII_STRINGPARAM( "open" ) ) )
+    {
+        ucb::OpenCommandArgument2 aOpenCommand;
+      	if ( !( aCommand.Argument >>= aOpenCommand ) )
+		{
+=====================================================================
+Found a 34 line (113 tokens) duplication in the following files: 
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1100 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+							pProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "ContentType" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+            rData.getContentType() );
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 712 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1322 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+    const ContentProperties& rData,
+    const rtl::Reference< ::ucbhelper::ContentProviderImplHelper >& rProvider,
+    const rtl::OUString& rContentId )
+{
+  	// Note: Empty sequence means "get values of all supported properties".
+
+    rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+    	= new ::ucbhelper::PropertyValueSet( rSMgr );
+
+    sal_Int32 nCount = rProperties.getLength();
+    if ( nCount )
+    {
+        uno::Reference< beans::XPropertySet > xAdditionalPropSet;
+      	sal_Bool bTriedToGetAdditonalPropSet = sal_False;
+
+        const beans::Property* pProps = rProperties.getConstArray();
+      	for ( sal_Int32 n = 0; n < nCount; ++n )
+        {
+            const beans::Property& rProp = pProps[ n ];
+=====================================================================
+Found a 39 line (113 tokens) duplication in the following files: 
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 576 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+                                        "No properties!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet <<= setPropertyValues( aProperties, Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "getPropertySetInfo" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// getPropertySetInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getPropertySetInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "getCommandInfo" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+		// getCommandInfo
+		//////////////////////////////////////////////////////////////////
+
+		// Note: Implemented by base class.
+		aRet <<= getCommandInfo( Environment );
+	}
+    else if ( aCommand.Name.equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM( "open" ) ) )
+	{
+		//////////////////////////////////////////////////////////////////
+        // open
+		//////////////////////////////////////////////////////////////////
+
+        ucb::OpenCommandArgument2 aOpenCommand;
+        if ( !( aCommand.Argument >>= aOpenCommand ) )
+		{
+=====================================================================
+Found a 34 line (113 tokens) duplication in the following files: 
+Starting at line 1125 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+
+							rProvider->getAdditionalPropertySet( rContentId,
+																 sal_False ),
+                            uno::UNO_QUERY );
+					bTriedToGetAdditonalPropSet = sal_True;
+				}
+
+				if ( xAdditionalPropSet.is() )
+				{
+					if ( !xRow->appendPropertySetValue(
+												xAdditionalPropSet,
+												rProp ) )
+					{
+						// Append empty entry.
+						xRow->appendVoid( rProp );
+					}
+				}
+				else
+				{
+					// Append empty entry.
+					xRow->appendVoid( rProp );
+				}
+			}
+		}
+	}
+	else
+	{
+		// Append all Core Properties.
+		xRow->appendString (
+            beans::Property( rtl::OUString::createFromAscii( "ContentType" ),
+					  -1,
+                      getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                      beans::PropertyAttribute::BOUND
+                        | beans::PropertyAttribute::READONLY ),
+			rData->m_sContentType );
+=====================================================================
+Found a 25 line (113 tokens) duplication in the following files: 
+Starting at line 930 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/filrset.cxx
+Starting at line 625 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpresultsetbase.cxx
+
+void SAL_CALL ResultSetBase::removePropertyChangeListener(
+	const rtl::OUString& aPropertyName,
+	const uno::Reference< beans::XPropertyChangeListener >& aListener )
+	throw( beans::UnknownPropertyException,
+		   lang::WrappedTargetException,
+		   uno::RuntimeException)
+{
+	if( aPropertyName == rtl::OUString::createFromAscii( "IsRowCountFinal" ) &&
+		m_pIsFinalListeners )
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		m_pIsFinalListeners->removeInterface( aListener );
+	}
+	else if ( aPropertyName == rtl::OUString::createFromAscii( "RowCount" ) &&
+			  m_pRowCountListeners )
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		m_pRowCountListeners->removeInterface( aListener );
+	}
+	else
+		throw beans::UnknownPropertyException();
+}
+
+
+void SAL_CALL ResultSetBase::addVetoableChangeListener(
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 1091 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/bigint.cxx
+Starting at line 1124 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/bigint.cxx
+
+sal_Bool operator >(const BigInt& rVal1, const BigInt& rVal2 )
+{
+    if ( rVal1.bIsBig || rVal2.bIsBig )
+    {
+        BigInt nA, nB;
+        nA.MakeBigInt( rVal1 );
+        nB.MakeBigInt( rVal2 );
+        if ( nA.bIsNeg == nB.bIsNeg )
+        {
+            if ( nA.nLen == nB.nLen )
+            {
+                int i;
+                for ( i = nA.nLen - 1; i > 0 && nA.nNum[i] == nB.nNum[i]; i-- )
+                {
+                }
+
+                if ( nA.bIsNeg )
+                    return nA.nNum[i] < nB.nNum[i];
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/unx.cxx
+Starting at line 362 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/unx.cxx
+
+DirEntry DirEntry::GetDevice() const
+{
+  DBG_CHKTHIS( DirEntry, ImpCheckDirEntry );
+
+	DirEntry aPath( *this );
+	aPath.ToAbs();
+
+	struct stat buf;
+	while (stat (ByteString(aPath.GetFull(), osl_getThreadTextEncoding()).GetBuffer(), &buf))
+	{
+		if (aPath.Level() <= 1)
+			return String();
+		aPath = aPath [1];
+	}
+	mymnttab &rMnt = mymnt::get();
+	return ((buf.st_dev == rMnt.mountdevice ||
+				GetMountEntry(buf.st_dev, &rMnt)) ? 
+				    String( rMnt.mountpoint, osl_getThreadTextEncoding()) : 
+=====================================================================
+Found a 10 line (113 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrolbase.cxx
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrolbase.cxx
+
+::com::sun::star::awt::Size UnoControlBase::Impl_calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize )
+{
+	::com::sun::star::awt::Size aSz;
+	::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >  xP = ImplGetCompatiblePeer( sal_True );
+	DBG_ASSERT( xP.is(), "Layout: No Peer!" );
+	if ( xP.is() )
+	{
+		::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > xL( xP, ::com::sun::star::uno::UNO_QUERY );
+		if ( xL.is() )
+			aSz = xL->calcAdjustedSize( rNewSize );
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 408 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/index/swuiidxmrk.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/index/swuiidxmrk.cxx
+
+	{
+		sal_uInt16 nCnt = pSh->GetCrsrCnt();
+		if (nCnt < 2)
+		{
+			bSelected = !pSh->HasSelection();
+			aOrgStr = pSh->GetView().GetSelectionTextParam(sal_True, sal_False);
+			aEntryED.SetText(aOrgStr);
+
+			//alle gleichen Eintraege aufzunehmen darf nur im Body und auch da nur
+			//bei vorhandener einfacher Selektion erlaubt werden
+			const sal_uInt16 nFrmType = pSh->GetFrmType(0,sal_True);
+			aApplyToAllCB.Show();
+			aSearchCaseSensitiveCB.Show();
+			aSearchCaseWordOnlyCB.Show();
+			aApplyToAllCB.Enable(0 != aOrgStr.Len() &&
+				0 == (nFrmType & ( FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FLY_ANY )));
+			SearchTypeHdl(&aApplyToAllCB);
+		}
+=====================================================================
+Found a 17 line (113 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mailmergechildwindow.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/envelp/syncbtn.cxx
+
+	pWindow = new SwSyncBtnDlg( pBindings, this, pParent);
+
+	if (!pInfo->aSize.Width() || !pInfo->aSize.Height())
+	{
+        SwView* pActiveView = ::GetActiveView();
+        if(pActiveView)
+        {
+            const SwEditWin &rEditWin = pActiveView->GetEditWin();
+            pWindow->SetPosPixel(rEditWin.OutputToScreenPixel(Point(0, 0)));
+        }
+        else
+            pWindow->SetPosPixel(pParent->OutputToScreenPixel(Point(0, 0)));
+		pInfo->aPos = pWindow->GetPosPixel();
+		pInfo->aSize = pWindow->GetSizePixel();
+	}
+
+	((SwSyncBtnDlg *)pWindow)->Initialize(pInfo);
+=====================================================================
+Found a 14 line (113 tokens) duplication in the following files: 
+Starting at line 952 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+Starting at line 975 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/dbmgr.cxx
+
+    uno::Reference< XColumnsSupplier> xColsSupp = SwNewDBMgr::GetColumnSupplier(xConnection, rTableName);
+	if(xColsSupp.is())
+	{
+        uno::Reference<XNameAccess> xCols = xColsSupp->getColumns();
+        const Sequence<rtl::OUString> aColNames = xCols->getElementNames();
+        const rtl::OUString* pColNames = aColNames.getConstArray();
+		for(int nCol = 0; nCol < aColNames.getLength(); nCol++)
+		{
+			pListBox->InsertEntry(pColNames[nCol]);
+		}
+        ::comphelper::disposeComponent( xColsSupp );
+    }
+	return(TRUE);
+}
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 714 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+Starting at line 843 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+
+		const OUString& rStyleName,
+		sal_Int32 nWidth, sal_Int32 nHeight )
+{
+    // this method will modify the document directly -> lock SolarMutex
+	vos::OGuard aGuard(Application::GetSolarMutex());
+
+	uno::Reference < XPropertySet > xPropSet;
+	uno::Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
+	ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
+	OTextCursorHelper *pTxtCrsr =
+				(OTextCursorHelper*)xCrsrTunnel->getSomething(
+											OTextCursorHelper::getUnoTunnelId() );
+	ASSERT( pTxtCrsr, "SwXTextCursor missing" );
+	SwDoc *pDoc = pTxtCrsr->GetDoc();
+
+	SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN,
+						 RES_FRMATR_END );
+    lcl_putHeightAndWidth( aItemSet, nHeight, nWidth);
+=====================================================================
+Found a 23 line (113 tokens) duplication in the following files: 
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+Starting at line 727 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+
+	SwHoriOrient eHoriOri = HORI_NONE;
+
+	// Eine neue Command-List anlegen
+	if( pAppletImpl )
+		delete pAppletImpl;
+	pAppletImpl = new SwApplet_Impl( pDoc->GetAttrPool(), RES_FRMATR_BEGIN, RES_FRMATR_END-1 );
+
+	const HTMLOptions *pOptions = GetOptions();
+	for( USHORT i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		switch( pOption->GetToken() )
+		{
+		case HTML_O_ID:
+			aId = pOption->GetString();
+			break;
+		case HTML_O_STYLE:
+			aStyle = pOption->GetString();
+			break;
+		case HTML_O_CLASS:
+			aClass = pOption->GetString();
+			break;
+		case HTML_O_CODEBASE:
+=====================================================================
+Found a 16 line (113 tokens) duplication in the following files: 
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoftn.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unorefmk.cxx
+
+void SwXReferenceMark::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
+				throw( lang::IllegalArgumentException, uno::RuntimeException )
+{
+	if(!m_bIsDescriptor)
+		throw uno::RuntimeException();
+	uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+	SwDoc* pDocument = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+=====================================================================
+Found a 24 line (113 tokens) duplication in the following files: 
+Starting at line 2046 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accmap.cxx
+Starting at line 2077 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accmap.cxx
+
+    mpPreview->InvalidateSelection( GetShell()->GetLayout()->GetPageByPageNum( nSelPage ) );
+
+	uno::Reference < XAccessible > xOldAcc;
+	uno::Reference < XAccessible > xAcc;
+	{
+		vos::OGuard aGuard( maMutex );
+
+		xOldAcc = mxCursorContext;
+
+		const SwPageFrm *pSelPage = mpPreview->GetSelPage();
+		if( pSelPage && mpFrmMap )
+		{
+			SwAccessibleContextMap_Impl::iterator aIter =
+				mpFrmMap->find( pSelPage );
+			if( aIter != mpFrmMap->end() )
+				xAcc = (*aIter).second;
+		}
+	}
+
+	if( xOldAcc.is() && xOldAcc != xAcc )
+		InvalidateCursorPosition( xOldAcc );
+	if( xAcc.is() )
+		InvalidateCursorPosition( xAcc );
+}
+=====================================================================
+Found a 13 line (113 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		LINKTARGET_PROPERTIES
+		SHADOW_PROPERTIES
+		TEXT_PROPERTIES
+		// #FontWork#
+		FONTWORK_PROPERTIES
+		CUSTOMSHAPE_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aTextShapePropertyMap_Impl;
+=====================================================================
+Found a 16 line (113 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+			aEndPos = basegfx::B2DPoint(aRange.getMinX(), aRange.getMinY());
+
+			if(rG.aGradient.GetBorder())
+			{
+				basegfx::B2DVector aFullVec(aStartPos - aEndPos);
+				const double fLen = (aFullVec.getLength() * (100.0 - (double)rG.aGradient.GetBorder())) / 100.0;
+				aFullVec.normalize();
+				aStartPos = aEndPos + (aFullVec * fLen);
+			}
+			
+			if(rG.aGradient.GetAngle())
+			{
+				const double fAngle = (double)rG.aGradient.GetAngle() * (F_PI180 / 10.0);
+				basegfx::B2DHomMatrix aTransformation;
+
+				aTransformation.translate(-aEndPos.getX(), -aEndPos.getY());
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 1305 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/page.cxx
+Starting at line 1336 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/page.cxx
+
+	nWhich = GetWhich( SID_ATTR_PAGE_FOOTERSET );
+
+	if ( rSet.GetItemState( nWhich, FALSE ) == SFX_ITEM_SET )
+	{
+		const SvxSetItem& rSetItem =
+			(const SvxSetItem&)rSet.Get( nWhich, FALSE );
+		const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
+		const SfxBoolItem& rOn =
+			(const SfxBoolItem&)rTmpSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+
+		if ( rOn.GetValue() )
+		{
+			nWhich = GetWhich( SID_ATTR_BRUSH );
+
+			if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				const SvxBrushItem& rItem =
+					(const SvxBrushItem&)rTmpSet.Get( nWhich );
+				aBspWin.SetFtColor( rItem.GetColor() );
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 803 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hdft.cxx
+Starting at line 1399 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/page.cxx
+
+	const SvxSetItem* pSetItem = 0;
+
+	// Kopfzeilen-Attribute auswerten
+
+	if ( SFX_ITEM_SET ==
+		 rSet.GetItemState( GetWhich( SID_ATTR_PAGE_HEADERSET ),
+							FALSE, (const SfxPoolItem**)&pSetItem ) )
+	{
+		const SfxItemSet& rHeaderSet = pSetItem->GetItemSet();
+		const SfxBoolItem& rHeaderOn =
+			(const SfxBoolItem&)rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+
+		if ( rHeaderOn.GetValue() )
+		{
+			const SvxSizeItem& rSize = (const SvxSizeItem&)
+				rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) );
+			const SvxULSpaceItem& rUL = (const SvxULSpaceItem&)
+				rHeaderSet.Get( GetWhich( SID_ATTR_ULSPACE ) );
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hdft.cxx
+Starting at line 688 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hdft.cxx
+
+	nWhich = GetWhich( SID_ATTR_PAGE_FOOTERSET );
+
+	if ( rSet.GetItemState( nWhich, FALSE ) == SFX_ITEM_SET )
+	{
+		const SvxSetItem& rSetItem =
+			(const SvxSetItem&)rSet.Get( nWhich, FALSE );
+		const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
+		const SfxBoolItem& rOn =
+			(const SfxBoolItem&)rTmpSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+
+		if ( rOn.GetValue() )
+		{
+			nWhich = GetWhich( SID_ATTR_BRUSH );
+
+			if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+			{
+				const SvxBrushItem& rItem = (const SvxBrushItem&)rTmpSet.Get( nWhich );
+				aBspWin.SetFtColor( rItem.GetColor() );
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 1179 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc1/inettype.cxx
+Starting at line 1224 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc1/inettype.cxx
+
+	rType = UniString(pToken, sal::static_int_cast< xub_StrLen >(p - pToken));
+	if (bDowncase)
+		rType.ToLowerAscii();
+
+	p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
+	if (p == pEnd || *p++ != '/')
+		return false;
+
+	p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
+	pToken = p;
+	bDowncase = false;
+	while (p != pEnd && INetMIME::isTokenChar(*p))
+	{
+		bDowncase = bDowncase || INetMIME::isUpperCase(*p);
+		++p;
+	}
+	if (p == pToken)
+		return false;
+	rSubType = UniString(
+=====================================================================
+Found a 22 line (113 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/transfer.cxx
+Starting at line 317 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/transfer.cxx
+
+            else if( SotExchange::GetFormatDataFlavor( SOT_FORMATSTR_ID_WMF, aSubstFlavor ) &&
+                     TransferableDataHelper::IsEqual( aSubstFlavor, rFlavor ) &&
+                     SotExchange::GetFormatDataFlavor( FORMAT_GDIMETAFILE, aSubstFlavor ) )
+            {
+			    GetData( aSubstFlavor );
+
+			    if( maAny.hasValue() )
+			    {
+				    Sequence< sal_Int8 > aSeq;
+
+				    if( maAny >>= aSeq )
+				    {
+					    SvMemoryStream*	pSrcStm = new SvMemoryStream( (char*) aSeq.getConstArray(), aSeq.getLength(), STREAM_WRITE | STREAM_TRUNC );
+					    GDIMetaFile		aMtf;
+
+					    *pSrcStm >> aMtf;
+					    delete pSrcStm;
+
+					    Graphic			aGraphic( aMtf );
+					    SvMemoryStream	aDstStm( 65535, 65535 );
+
+					    if( GraphicConverter::Export( aDstStm, aGraphic, CVT_WMF ) == ERRCODE_NONE )
+=====================================================================
+Found a 22 line (113 tokens) duplication in the following files: 
+Starting at line 3124 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/edit/texteng.cxx
+Starting at line 1859 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit2.cxx
+
+        String aText( *pParaPortion->GetNode() );
+
+        //
+        // Bidi functions from icu 2.0
+        //
+        UErrorCode nError = U_ZERO_ERROR;
+        UBiDi* pBidi = ubidi_openSized( aText.Len(), 0, &nError );
+        nError = U_ZERO_ERROR;
+
+        ubidi_setPara( pBidi, aText.GetBuffer(), aText.Len(), nDefaultDir, NULL, &nError );
+        nError = U_ZERO_ERROR;
+
+        long nCount = ubidi_countRuns( pBidi, &nError );
+
+        int32_t nStart = 0;
+        int32_t nEnd;
+        UBiDiLevel nCurrDir;
+
+        for ( USHORT nIdx = 0; nIdx < nCount; ++nIdx )
+        {
+            ubidi_getLogicalRun( pBidi, nStart, &nEnd, &nCurrDir );
+            rInfos.Insert( WritingDirectionInfo( nCurrDir, (USHORT)nStart, (USHORT)nEnd ), rInfos.Count() );
+=====================================================================
+Found a 12 line (113 tokens) duplication in the following files: 
+Starting at line 1115 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/headbar.cxx
+Starting at line 321 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/fmgridcl.cxx
+
+	sal_uInt16 nItemId = GetItemId( ScreenToOutputPixel( rHEvt.GetMousePosPixel() ) );
+	if ( nItemId )
+	{
+		if ( rHEvt.GetMode() & (HELPMODE_QUICK | HELPMODE_BALLOON) )
+		{
+			Rectangle aItemRect = GetItemRect( nItemId );
+			Point aPt = OutputToScreenPixel( aItemRect.TopLeft() );
+			aItemRect.Left()   = aPt.X();
+			aItemRect.Top()    = aPt.Y();
+			aPt = OutputToScreenPixel( aItemRect.BottomRight() );
+			aItemRect.Right()  = aPt.X();
+			aItemRect.Bottom() = aPt.Y();
+=====================================================================
+Found a 11 line (113 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/cjkoptions.cxx
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/ctloptions.cxx
+
+        pNames[5] = ASCII_STR("CTLSequenceCheckingTypeAndReplace");
+        EnableNotification( rPropertyNames );
+    }
+    Sequence< Any > aValues = GetProperties( rPropertyNames );
+    Sequence< sal_Bool > aROStates = GetReadOnlyStates( rPropertyNames );
+    const Any* pValues = aValues.getConstArray();
+    const sal_Bool* pROStates = aROStates.getConstArray();
+    DBG_ASSERT( aValues.getLength() == rPropertyNames.getLength(), "GetProperties failed" );
+    DBG_ASSERT( aROStates.getLength() == rPropertyNames.getLength(), "GetReadOnlyStates failed" );
+    if ( aValues.getLength() == rPropertyNames.getLength() && aROStates.getLength() == rPropertyNames.getLength() )
+	{
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 1847 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+awt::Size SAL_CALL SmEditAccessible::getSize(  )
+    throw (RuntimeException)
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+    if (!pWin)
+        throw RuntimeException();
+    DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+            "mismatch of window parent and accessible parent" );
+
+    Size aSz( pWin->GetSizePixel() );
+#if OSL_DEBUG_LEVEL > 1
+    awt::Rectangle aRect( lcl_GetBounds( pWin ) );
+    Size aSz2( aRect.Width, aRect.Height );
+    DBG_ASSERT( aSz == aSz2, "mismatch in width" );
+#endif
+    return awt::Size( aSz.Width(), aSz.Height() );
+}
+
+void SAL_CALL SmEditAccessible::grabFocus(  )
+=====================================================================
+Found a 25 line (113 tokens) duplication in the following files: 
+Starting at line 408 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/shapes/drawshape.cxx
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/shapes/drawshape.cxx
+
+            mnCurrMtfLoadFlags( MTF_LOAD_NONE ),
+            maCurrentShapeUnitBounds(),
+            mnPriority( nPrio ), // TODO(F1): When ZOrder someday becomes usable: make this ( getAPIShapePrio( xShape ) ),
+            maBounds( getAPIShapeBounds( xShape ) ),
+            mpAttributeLayer(),
+            mpIntrinsicAnimationActivity(),
+            mnAttributeTransformationState(0),
+            mnAttributeClipState(0),
+            mnAttributeAlphaState(0),
+            mnAttributePositionState(0),
+            mnAttributeContentState(0),
+            maViewShapes(),
+            mxComponentContext( rContext.mxComponentContext ),
+            maHyperlinkIndices(),
+            maHyperlinkRegions(),
+            maSubsetting(),
+            mnIsAnimatedCount(0),
+            mnAnimationLoopCount(0),
+            meCycleMode(CYCLE_LOOP),
+            mbIsVisible( true ),
+            mbForceUpdate( false ),
+            mbAttributeLayerRevoked( false ),
+            mbDrawingLayerAnim( false )
+        {
+            ENSURE_AND_THROW( rGraphic.IsAnimated(),
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 1614 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/sfxbasemodel.cxx
+Starting at line 1649 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/sfxbasemodel.cxx
+
+void SAL_CALL SfxBaseModel::load(   const uno::Sequence< beans::PropertyValue >& seqArguments )
+		throw (::com::sun::star::frame::DoubleInitializationException,
+               ::com::sun::star::io::IOException,
+			   ::com::sun::star::uno::RuntimeException,
+			   ::com::sun::star::uno::Exception)
+{
+	// object already disposed?
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+	if ( impl_isDisposed() )
+        throw lang::DisposedException();
+
+	// the object shell should exist always
+	DBG_ASSERT( m_pData->m_pObjectShell.Is(), "Model is useless without an ObjectShell" );
+
+	if ( m_pData->m_pObjectShell.Is() )
+	{
+		if( m_pData->m_pObjectShell->GetMedium() )
+			// if a Medium is present, the document is already initialized
+			throw DOUBLEINITIALIZATIONEXCEPTION();
+=====================================================================
+Found a 17 line (113 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewsc.cxx
+Starting at line 694 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwbassh.cxx
+
+				SdrObject* pSelected = pSdrView->GetMarkedObjectByIndex(0L);
+				OSL_ENSURE(pSelected, "DrawViewShell::FuTemp03: nMarkCount, but no object (!)");
+				String aTitle(pSelected->GetTitle());
+				String aDescription(pSelected->GetDescription());
+
+				SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+				OSL_ENSURE(pFact, "Dialogdiet fail!");
+				AbstractSvxObjectTitleDescDialog* pDlg = pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription, RID_SVXDLG_OBJECT_TITLE_DESC);
+				OSL_ENSURE(pDlg, "Dialogdiet fail!");
+				
+				if(RET_OK == pDlg->Execute())
+				{
+					pDlg->GetTitle(aTitle);
+					pDlg->GetDescription(aDescription);
+
+					pSelected->SetTitle(aTitle);
+					pSelected->SetDescription(aDescription);
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 1054 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/PrintManager.cxx
+Starting at line 1250 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/PrintManager.cxx
+
+        eOrientation = ORIENTATION_LANDSCAPE;
+
+	if ( !rInfo.mrPrinter.SetOrientation(eOrientation) &&
+		(!rInfo.mpPrintOpts || rInfo.mpPrintOpts->GetOptionsPrint().IsWarningOrientation()) )
+	{
+		// eine Warnung anzeigen
+		WarningBox aWarnBox(
+            rInfo.mrViewShell.GetActiveWindow(),
+            (WinBits)(WB_OK_CANCEL | WB_DEF_CANCEL),
+            String(SdResId(STR_WARN_PRINTFORMAT_FAILURE)));
+		nDlgResult = aWarnBox.Execute();
+	}
+
+	if ( nDlgResult == RET_OK )
+	{
+		const MapMode   aOldMap( rInfo.mrPrinter.GetMapMode() );
+		MapMode         aMap( aOldMap );
+		Point           aPageOfs( rInfo.mrPrinter.GetPageOffset() );
+		DrawView* pPrintView;
+=====================================================================
+Found a 33 line (113 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/sddlgfact.cxx
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgfact.cxx
+
+    return 0L;
+}
+
+//////////////////////////////////////////////////////////////////////////
+
+void AbstractTabDialog_Impl::SetCurPageId( USHORT nId )
+{
+	pDlg->SetCurPageId( nId );
+}
+
+const SfxItemSet* AbstractTabDialog_Impl::GetOutputItemSet() const
+{
+	return pDlg->GetOutputItemSet();
+}
+//add by CHINA001
+const USHORT* AbstractTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
+{
+	return pDlg->GetInputRanges( pItem );
+}
+//add by CHINA001
+void AbstractTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
+{
+	 pDlg->SetInputSet( pInSet );
+}
+//From class Window.
+void AbstractTabDialog_Impl::SetText( const XubString& rStr )
+{
+	pDlg->SetText( rStr );
+}
+String AbstractTabDialog_Impl::GetText() const
+{
+	return pDlg->GetText();
+}
+=====================================================================
+Found a 11 line (113 tokens) duplication in the following files: 
+Starting at line 527 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+
+                                        aPoint.Y = nPos;
+                                        xShape->setPosition(aPoint);
+                                        pDocSh->SetModified();
+                                    }
+                                    else if (ScDrawLayer::GetAnchor(pObj) == SCA_CELL)
+                                    {
+                                        awt::Size aUnoSize;
+                                        awt::Point aCaptionPoint;
+                                        ScRange aRange;
+                                        awt::Point aUnoPoint(lcl_GetRelativePos( xShape, pDoc, nTab, aRange, aUnoSize, aCaptionPoint ));
+                                        Rectangle aRect(pDoc->GetMMRect( aRange.aStart.Col(), aRange.aStart.Row(), aRange.aEnd.Col(), aRange.aEnd.Row(), aRange.aStart.Tab() ));
+=====================================================================
+Found a 17 line (113 tokens) duplication in the following files: 
+Starting at line 1346 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+Starting at line 1418 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+
+		pRedoDBData->GetArea( nTable, nCol1, nRow1, nCol2, nRow2 );
+		ScUndoUtil::MarkSimpleBlock( pDocShell, nCol1, nRow1, nTable, nCol2, nRow2, nTable );
+	}
+
+// erack! it's broadcasted
+//	pDoc->SetDirty();
+
+	SCTAB nVisTab = pViewShell->GetViewData()->GetTabNo();
+	if ( nVisTab != nTab )
+		pViewShell->SetTabNo( nTab );
+
+	if (bMoveCells)
+		pDocShell->PostPaint( 0,0,nTab, MAXCOL,MAXROW,nTab, PAINT_GRID );
+	else
+		pDocShell->PostPaint( aImportParam.nCol1,aImportParam.nRow1,nTab,
+								nEndCol,nEndRow,nTab, PAINT_GRID );
+	pDocShell->PostDataChanged();
+=====================================================================
+Found a 28 line (113 tokens) duplication in the following files: 
+Starting at line 1384 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleText.cxx
+Starting at line 1022 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/textuno.cxx
+
+SvxTextForwarder* ScCellTextData::GetTextForwarder()
+{
+	if (!pEditEngine)
+	{
+		if ( pDocShell )
+		{
+			ScDocument* pDoc = pDocShell->GetDocument();
+			pEditEngine = pDoc->CreateFieldEditEngine();
+		}
+		else
+		{
+			SfxItemPool* pEnginePool = EditEngine::CreatePool();
+			pEnginePool->FreezeIdRanges();
+			pEditEngine = new ScFieldEditEngine( pEnginePool, NULL, TRUE );
+		}
+		//	currently, GetPortions doesn't work if UpdateMode is FALSE,
+		//	this will be fixed (in EditEngine) by src600
+//		pEditEngine->SetUpdateMode( FALSE );
+		pEditEngine->EnableUndo( FALSE );
+		if (pDocShell)
+			pEditEngine->SetRefDevice(pDocShell->GetRefDevice());
+		else
+			pEditEngine->SetRefMapMode( MAP_100TH_MM );
+		pForwarder = new SvxEditEngineForwarder(*pEditEngine);
+	}
+
+	if (bDataValid)
+		return pForwarder;
+=====================================================================
+Found a 17 line (113 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlwrap.cxx
+Starting at line 729 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+	uno::Reference< container::XChild > xChild( xModelComp, uno::UNO_QUERY );
+	if( xChild.is() )
+	{
+		uno::Reference< beans::XPropertySet > xParentSet( xChild->getParent(), uno::UNO_QUERY );
+		if( xParentSet.is() )
+		{
+			uno::Reference< beans::XPropertySetInfo > xPropSetInfo( xParentSet->getPropertySetInfo() );
+			OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BuildId" ) );
+			if( xPropSetInfo.is() && xPropSetInfo->hasPropertyByName(sPropName) )
+			{
+				xInfoSet->setPropertyValue( sPropName, xParentSet->getPropertyValue(sPropName) );
+			}
+		}
+	}
+
+	// try to get an XStatusIndicator from the Medium
+	uno::Reference<task::XStatusIndicator> xStatusIndicator;
+=====================================================================
+Found a 29 line (113 tokens) duplication in the following files: 
+Starting at line 3611 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3676 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+void ScInterpreter::ScPearson() 
+{
+	if ( !MustHaveParamCount( GetByte(), 2 ) )
+		return;
+	ScMatrixRef pMat1 = GetMatrix();
+	ScMatrixRef pMat2 = GetMatrix();
+	if (!pMat1 || !pMat2)
+	{
+		SetIllegalParameter();
+		return;
+	}
+	SCSIZE nC1, nC2;
+	SCSIZE nR1, nR2;
+	pMat1->GetDimensions(nC1, nR1);
+	pMat2->GetDimensions(nC2, nR2);
+	if (nR1 != nR2 || nC1 != nC2)
+	{
+		SetIllegalParameter();
+		return;
+	}
+    /* #i78250#
+     * (sum((X-MeanX)(Y-MeanY)))/N equals (SumXY)/N-MeanX*MeanY mathematically,
+     * but the latter produces wrong results if the absolute values are high,
+     * for example above 10^8
+     */
+	double fCount           = 0.0;
+	double fSumX            = 0.0;
+	double fSumY            = 0.0;
+	double fSumDeltaXDeltaY = 0.0; // sum of (ValX-MeanX)*(ValY-MeanY)
+=====================================================================
+Found a 34 line (113 tokens) duplication in the following files: 
+Starting at line 4083 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 4250 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+            break;
+			default:
+			{
+				fVal = GetDouble();
+				bIsString = FALSE;
+			}
+		}
+        SCCOL nCol1;
+        SCROW nRow1;
+        SCTAB nTab1;
+        SCCOL nCol2;
+        SCROW nRow2;
+        SCTAB nTab2;
+		switch ( GetStackType() )
+		{
+			case svDoubleRef :
+				PopDoubleRef( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
+			break;
+			case svSingleRef :
+				PopSingleRef( nCol1, nRow1, nTab1 );
+				nCol2 = nCol1;
+				nRow2 = nRow1;
+				nTab2 = nTab1;
+			break;
+			default:
+				SetIllegalParameter();
+				return ;
+		}
+		if ( nTab1 != nTab2 )
+		{
+			SetIllegalParameter();
+			return;
+		}
+		if (nParamCount != 3)
+=====================================================================
+Found a 22 line (113 tokens) duplication in the following files: 
+Starting at line 1101 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+Starting at line 1256 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+
+USHORT ScDetectiveFunc::InsertErrorLevel( SCCOL nCol, SCROW nRow, ScDetectiveData& rData,
+											USHORT nLevel )
+{
+	ScBaseCell* pCell;
+	pDoc->GetCell( nCol, nRow, nTab, pCell );
+	if (!pCell)
+		return DET_INS_EMPTY;
+	if (pCell->GetCellType() != CELLTYPE_FORMULA)
+		return DET_INS_EMPTY;
+
+	ScFormulaCell* pFCell = (ScFormulaCell*)pCell;
+	if (pFCell->IsRunning())
+		return DET_INS_CIRCULAR;
+
+	if (pFCell->GetDirty())
+		pFCell->Interpret();				// nach SetRunning geht's nicht mehr!
+	pFCell->SetRunning(TRUE);
+
+	USHORT nResult = DET_INS_EMPTY;
+
+	ScDetectiveRefIter aIter( (ScFormulaCell*) pCell );
+    ScRange aRef;
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 1680 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+Starting at line 1722 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+Starting at line 1764 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+
+                    const uno::Sequence<rtl::OUString>* pRowArr = pRowSeq->getConstArray();
+                    long nMaxColCount = 0;
+                    long nCol, nRow;
+                    for (nRow=0; nRow<nRowCount; nRow++)
+                    {
+                        long nTmp = pRowArr[nRow].getLength();
+                        if ( nTmp > nMaxColCount )
+                            nMaxColCount = nTmp;
+                    }
+                    if ( nMaxColCount && nRowCount )
+                    {
+                        pMatrix = new ScMatrix(
+                                static_cast<SCSIZE>(nMaxColCount),
+                                static_cast<SCSIZE>(nRowCount) );
+                        for (nRow=0; nRow<nRowCount; nRow++)
+                        {
+                            long nColCount = pRowArr[nRow].getLength();
+                            const rtl::OUString* pColArr = pRowArr[nRow].getConstArray();
+=====================================================================
+Found a 20 line (113 tokens) duplication in the following files: 
+Starting at line 1516 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column3.cxx
+Starting at line 1541 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column3.cxx
+
+			ScBaseCell* pCell = pItems[nDownIndex].pCell;
+			CellType eType = pCell->GetCellType();
+			if (eType == CELLTYPE_STRING || eType == CELLTYPE_EDIT)		// nur Strings interessieren
+			{
+				if (eType == CELLTYPE_STRING)
+					((ScStringCell*)pCell)->GetString(aString);
+				else
+					((ScEditCell*)pCell)->GetString(aString);
+
+				TypedStrData* pData = new TypedStrData(aString);
+				if ( !rStrings.Insert( pData ) )
+					delete pData;											// doppelt
+				else if ( bLimit && rStrings.GetCount() >= DATENT_MAX )
+					break;													// Maximum erreicht
+				bFound = TRUE;
+
+				if ( bLimit )
+					if (++nCells >= DATENT_SEARCH)
+						break;									// genug gesucht
+			}
+=====================================================================
+Found a 8 line (113 tokens) duplication in the following files: 
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+Starting at line 1151 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/textenc/rtl_textcvt.cxx
+
+                0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x2019,
+                0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+                0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+                0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+                0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+                0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+                0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+                0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+=====================================================================
+Found a 22 line (113 tokens) duplication in the following files: 
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/socket.c
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/socket.cxx
+
+	oslSocketAddr pAddr = __osl_createSocketAddr();
+	switch( family )
+	{
+	case osl_Socket_FamilyInet:
+	{
+		struct sockaddr_in* pInetAddr= (struct sockaddr_in*)&(pAddr->m_sockaddr);
+
+		pInetAddr->sin_family = FAMILY_TO_NATIVE(osl_Socket_FamilyInet);
+		pInetAddr->sin_addr.s_addr = nAddr;
+		pInetAddr->sin_port = (sal_uInt16)(port&0xffff);
+		break;
+   	}   	
+	default:
+		pAddr->m_sockaddr.sa_family = FAMILY_TO_NATIVE(family);
+	}
+	return pAddr;
+}
+
+static oslSocketAddr __osl_createSocketAddrFromSystem( struct sockaddr *pSystemSockAddr )
+{
+	oslSocketAddr pAddr = __osl_createSocketAddr();
+	memcpy( &(pAddr->m_sockaddr), pSystemSockAddr, sizeof( sockaddr ) );
+=====================================================================
+Found a 23 line (113 tokens) duplication in the following files: 
+Starting at line 538 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+Starting at line 646 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+
+                    switch( nSubTableFormat )
+                    {
+                        case 0:
+                        {
+                            // Grab the # of kern pairs but skip over the:
+                            //   searchRange
+                            //   entrySelector
+                            //   rangeShift
+                            sal_uInt16 nPairs = getUInt16BE( pTable );
+                            pTable += 6;
+
+                            for( int n = 0; n < nPairs; n++ )
+                            {
+                                sal_uInt16 nLeftGlyph   = getUInt16BE( pTable );
+                                sal_uInt16 nRightGlyph  = getUInt16BE( pTable );
+                                sal_Int16  nKern         = (sal_Int16)getUInt16BE( pTable );
+
+                                left = aGlyphMap.find( nLeftGlyph );
+                                right = aGlyphMap.find( nRightGlyph );
+                                if( left != aGlyphMap.end() && right != aGlyphMap.end() )
+                                {
+                                    aPair.first     = left->second;
+                                    aPair.second    = right->second;
+=====================================================================
+Found a 34 line (113 tokens) duplication in the following files: 
+Starting at line 3314 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 5037 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 1067 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+			throw container::NoSuchElementException(); // TODO:
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( container::NoSuchElementException& )
+	{
+		throw;
+	}
+	catch( container::ElementExistException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+=====================================================================
+Found a 27 line (113 tokens) duplication in the following files: 
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/libhnj/hyphen.c
+Starting at line 701 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/libhnj/hyphen.c
+
+	}
+
+      /* KBH: we need this to make sure we keep looking in a word */
+      /* for patterns even if the current character is not known in state 0 */
+      /* since patterns for hyphenation may occur anywhere in the word */
+      try_next_letter: ;
+
+    }
+#ifdef VERBOSE
+  for (i = 0; i < j; i++)
+    putchar (hyphens[i]);
+  putchar ('\n');
+#endif
+
+  for (i = 0; i < j - 4; i++)
+#if 0
+    if (hyphens[i + 1] & 1)
+      hyphens[i] = '-';
+#else
+    hyphens[i] = hyphens[i + 1];
+#endif
+  hyphens[0] = '0';
+  for (; i < word_size; i++)
+    hyphens[i] = '0';
+  hyphens[word_size] = '\0';
+
+  if (prep_word != prep_word_buf) {
+=====================================================================
+Found a 16 line (113 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 562 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+
+    virtual Reference < XInputStream > SAL_CALL getInputStream(void)
+		throw (RuntimeException);
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference < XConnectable > & aPredecessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getPredecessor(void)
+		throw (RuntimeException);
+    virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
+		throw (RuntimeException);
+    virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw (RuntimeException);
+
+public: // XServiceInfo
+    OUString                     SAL_CALL getImplementationName() throw ();
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw ();
+    sal_Bool                         SAL_CALL  supportsService(const OUString& ServiceName) throw ();
+=====================================================================
+Found a 4 line (113 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1262 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 6 line (113 tokens) duplication in the following files: 
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0bc0 - 0bcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bd0 - 0bdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0be0 - 0bef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bf0 - 0bff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+=====================================================================
+Found a 57 line (113 tokens) duplication in the following files: 
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 642 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/window/salframe.cxx
+
+        kThemePointingHandCursor, // POINTER_REFHAND
+        0, // POINTER_PEN
+        0, // POINTER_MAGNIFY
+        0, // POINTER_FILL
+        0, // POINTER_ROTATE
+        0, // POINTER_HSHEAR
+        0, // POINTER_VSHEAR
+        0, // POINTER_MIRROR
+        0, // POINTER_CROOK
+        0, // POINTER_CROP
+        0, // POINTER_MOVEPOINT
+        0, // POINTER_MOVEBEZIERWEIGHT
+        0, // POINTER_MOVEDATA
+        0, // POINTER_COPYDATA
+        0, // POINTER_LINKDATA
+        0, // POINTER_MOVEDATALINK
+        0, // POINTER_COPYDATALINK
+        0, // POINTER_MOVEFILE
+        0, // POINTER_COPYFILE
+        0, // POINTER_LINKFILE
+        0, // POINTER_MOVEFILELINK
+        0, // POINTER_COPYFILELINK
+        0, // POINTER_MOVEFILES
+        0, // POINTER_COPYFILES
+        0, // POINTER_NOTALLOWED
+        0, // POINTER_DRAW_LINE
+        0, // POINTER_DRAW_RECT
+        0, // POINTER_DRAW_POLYGON
+        0, // POINTER_DRAW_BEZIER
+        0, // POINTER_DRAW_ARC
+        0, // POINTER_DRAW_PIE
+        0, // POINTER_DRAW_CIRCLECUT
+        0, // POINTER_DRAW_ELLIPSE
+        0, // POINTER_DRAW_FREEHAND
+        0, // POINTER_DRAW_CONNECT
+        0, // POINTER_DRAW_TEXT
+        0, // POINTER_DRAW_CAPTION
+        0, // POINTER_CHART
+        0, // POINTER_DETECTIVE
+        0, // POINTER_PIVOT_COL
+        0, // POINTER_PIVOT_ROW
+        0, // POINTER_PIVOT_FIELD
+        0, // POINTER_CHAIN
+        0, // POINTER_CHAIN_NOTALLOWED
+        0, // POINTER_TIMEEVENT_MOVE
+        0, // POINTER_TIMEEVENT_SIZE
+        0, // POINTER_AUTOSCROLL_N
+        0, // POINTER_AUTOSCROLL_S
+        0, // POINTER_AUTOSCROLL_W
+        0, // POINTER_AUTOSCROLL_E
+        0, // POINTER_AUTOSCROLL_NW
+        0, // POINTER_AUTOSCROLL_NE
+        0, // POINTER_AUTOSCROLL_SW
+        0, // POINTER_AUTOSCROLL_SE
+        0, // POINTER_AUTOSCROLL_NS
+        0, // POINTER_AUTOSCROLL_WE
+        0, // POINTER_AUTOSCROLL_NSWE
+=====================================================================
+Found a 4 line (113 tokens) duplication in the following files: 
+Starting at line 729 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3240 - 324f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3250 - 325f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3260 - 326f
+    27,27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0,27,// 3270 - 327f
+=====================================================================
+Found a 4 line (113 tokens) duplication in the following files: 
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 759 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33a0 - 33af
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33b0 - 33bf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 33c0 - 33cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0, 0,// 33d0 - 33df
+=====================================================================
+Found a 4 line (113 tokens) duplication in the following files: 
+Starting at line 576 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3240 - 324f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3250 - 325f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3260 - 326f
+    27,27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0,27,// 3270 - 327f
+=====================================================================
+Found a 4 line (113 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 908 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,23,20,21,23,22, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// ff60 - ff6f
+     4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// ff70 - ff7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// ff80 - ff8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4,// ff90 - ff9f
+=====================================================================
+Found a 5 line (113 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18b0 - 18bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18c0 - 18cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18d0 - 18df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18e0 - 18ef
+=====================================================================
+Found a 5 line (113 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+=====================================================================
+Found a 9 line (113 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 22 line (113 tokens) duplication in the following files: 
+Starting at line 1619 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+Starting at line 1745 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+
+			return;
+
+		aIntTexSLine.Load(aIntTexSLeft.GetDoubleValue(), aIntTexSRight.GetDoubleValue(), nXLineDelta);
+		aIntTexTLine.Load(aIntTexTLeft.GetDoubleValue(), aIntTexTRight.GetDoubleValue(), nXLineDelta);
+		aIntDepthLine.Load(aIntDepthLeft.GetDoubleValue(), aIntDepthRight.GetDoubleValue(), nXLineDelta);
+
+		// #96837#
+		if(mbPTCorrection)
+		{
+			aRealDepthLine.Load(aRealDepthLeft.GetDoubleValue(), aRealDepthRight.GetDoubleValue(), nXLineDelta);
+		}
+
+		while(nXLineDelta--)
+		{
+			// Werte vorbereiten
+			sal_uInt32 nDepth = aIntDepthLine.GetUINT32Value();
+
+			// Punkt ausgeben
+			if(IsVisibleAndScissor(nXLineStart, nYPos, nDepth))
+			{
+				// Texturkoordinateninterpolation?
+				Color aCol = rCol;
+=====================================================================
+Found a 20 line (113 tokens) duplication in the following files: 
+Starting at line 584 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/addonstoolbarmanager.cxx
+Starting at line 2062 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+IMPL_LINK( ToolBarManager, DataChanged, DataChangedEvent*, pDataChangedEvent  )
+{
+	if ((( pDataChangedEvent->GetType() == DATACHANGED_SETTINGS	)	||
+		(  pDataChangedEvent->GetType() == DATACHANGED_DISPLAY	))	&&
+        ( pDataChangedEvent->GetFlags() & SETTINGS_STYLE		))
+	{
+		// Check if we need to get new images for normal/high contrast mode
+		CheckAndUpdateImages();
+	}
+
+    for ( USHORT nPos = 0; nPos < m_pToolBar->GetItemCount(); ++nPos )
+	{
+        const USHORT nId = m_pToolBar->GetItemId(nPos);
+        Window* pWindow = m_pToolBar->GetItemWindow( nId );
+        if ( pWindow )
+        {
+            const DataChangedEvent& rDCEvt( *pDataChangedEvent );
+            pWindow->DataChanged( rDCEvt );
+        }
+    }
+=====================================================================
+Found a 29 line (113 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/generic/fpicker.cxx
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/office/fps_office.cxx
+
+		SvtFolderPicker::impl_getStaticSupportedServiceNames,
+		cppu::createSingleComponentFactory, 0, 0
+	},
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
+	void * pServiceManager, void * pRegistryKey)
+{
+	return cppu::component_writeInfoHelper (
+		pServiceManager, pRegistryKey, g_entries);
+}
+
+SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
+	const sal_Char * pImplementationName, void * pServiceManager, void * pRegistryKey)
+{
+	return cppu::component_getFactoryHelper (
+		pImplementationName, pServiceManager, pRegistryKey, g_entries);
+}
+
+} // extern "C"
+=====================================================================
+Found a 23 line (113 tokens) duplication in the following files: 
+Starting at line 294 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/richtext/richtextcontrol.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/solar/component/navbarcontrol.cxx
+
+                pPeer->release();
+
+            // announce the peer to the base class
+            setPeer( pPeer );
+
+            // initialize ourself (and thus the peer) with the model properties
+    		updateFromModel();
+
+            Reference< XView >  xPeerView( getPeer(), UNO_QUERY );
+            if ( xPeerView.is() )
+            {
+			    xPeerView->setZoom( maComponentInfos.nZoomX, maComponentInfos.nZoomY );
+			    xPeerView->setGraphics( mxGraphics );
+            }
+
+            // a lot of initial settings from our component infos
+	        setPosSize( maComponentInfos.nX, maComponentInfos.nY, maComponentInfos.nWidth, maComponentInfos.nHeight, PosSize::POSSIZE );
+
+            pPeer->setVisible   ( maComponentInfos.bVisible && !mbDesignMode );
+            pPeer->setEnable    ( maComponentInfos.bEnable                   );
+            pPeer->setDesignMode( mbDesignMode                               );
+
+            peerCreated();
+=====================================================================
+Found a 15 line (113 tokens) duplication in the following files: 
+Starting at line 2256 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/DatabaseForm.cxx
+Starting at line 2336 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/DatabaseForm.cxx
+
+		aURL.Complete = aURLStr;
+		xTransformer->parseStrict(aURL);
+
+		Reference< XDispatch >  xDisp = Reference< XDispatchProvider > (xFrame,UNO_QUERY)->queryDispatch(aURL, aTargetName,
+			FrameSearchFlag::SELF | FrameSearchFlag::PARENT | FrameSearchFlag::CHILDREN |
+			FrameSearchFlag::SIBLINGS | FrameSearchFlag::CREATE | FrameSearchFlag::TASKS);
+
+		if (xDisp.is())
+		{
+			Sequence<PropertyValue> aArgs(2);
+			aArgs.getArray()[0].Name = ::rtl::OUString::createFromAscii("Referer");
+			aArgs.getArray()[0].Value <<= aReferer;
+
+			// build a sequence from the to-be-submitted string
+			ByteString aSystemEncodedData(aData.getStr(), (sal_uInt16)aData.getLength(), osl_getThreadTextEncoding());
+=====================================================================
+Found a 39 line (113 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatecheckjob.cxx
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/feed/updatefeed.cxx
+
+        UpdateInformationProvider::getServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+	{ NULL, NULL, NULL, NULL, NULL, 0 }
+} ;
+
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL 
+component_getImplementationEnvironment( const sal_Char **aEnvTypeName, uno_Environment **) 
+{
+    *aEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL 
+component_writeInfo(void *pServiceManager, void *pRegistryKey) 
+{
+    return cppu::component_writeInfoHelper(
+        pServiceManager,
+        pRegistryKey,
+        kImplementations_entries
+    );
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" void *
+component_getFactory(const sal_Char *pszImplementationName, void *pServiceManager, void *pRegistryKey) 
+{
+    return cppu::component_getFactoryHelper(
+        pszImplementationName,
+        pServiceManager,
+        pRegistryKey,
+        kImplementations_entries) ;
+}
+=====================================================================
+Found a 34 line (113 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/propctrlr/formmetadata.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/ui/inspection/metadata.cxx
+
+    using namespace ::com::sun::star;
+
+	//========================================================================
+	//= OPropertyInfoImpl
+	//========================================================================
+	struct OPropertyInfoImpl
+	{
+		String			sName;
+		String			sTranslation;
+		sal_uInt32      nHelpId;
+		sal_Int32       nId;
+		sal_uInt16      nPos;
+        sal_uInt32      nUIFlags;
+
+		OPropertyInfoImpl(
+						const ::rtl::OUString&		rName,
+						sal_Int32					_nId,
+						const String&				aTranslation,
+						sal_uInt16					nPosId,
+						sal_uInt32					nHelpId,
+                        sal_uInt32                  _nUIFlags);
+	};
+
+	//------------------------------------------------------------------------
+	OPropertyInfoImpl::OPropertyInfoImpl(const ::rtl::OUString& _rName, sal_Int32 _nId,
+								   const String& aString, sal_uInt16 nP, sal_uInt32 nHid, sal_uInt32 _nUIFlags)
+	   :sName(_rName)
+	   ,sTranslation(aString)
+	   ,nHelpId(nHid)
+	   ,nId(_nId)
+	   ,nPos(nP)
+       ,nUIFlags(_nUIFlags)
+	{
+	}
+=====================================================================
+Found a 23 line (113 tokens) duplication in the following files: 
+Starting at line 1121 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1512 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OCommonEmbeddedObject::storeOwn" );
+
+	// during switching from Activated to Running and from Running to Loaded states the object will
+	// ask container to store the object, the container has to make decision
+	// to do so or not
+
+	::osl::ResettableMutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Can't store object without persistence!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_bReadOnly )
+=====================================================================
+Found a 15 line (113 tokens) duplication in the following files: 
+Starting at line 474 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+Starting at line 637 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+
+    try 
+    {
+        Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+        // get configuration provider
+        Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+        xFactory->createInstance(sConfigSrvc), UNO_QUERY_THROW);
+        Sequence< Any > theArgs(1);
+        NamedValue v(OUString::createFromAscii("NodePath"), 
+            makeAny(OUString::createFromAscii("org.openoffice.Setup/Office")));
+        theArgs[0] <<= v;
+        Reference< XPropertySet > pset = Reference< XPropertySet >(
+            theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs), UNO_QUERY_THROW);
+        Any result = pset->getPropertyValue(OUString::createFromAscii("LicenseAcceptDate"));
+
+        OUString aAcceptDate;
+=====================================================================
+Found a 25 line (113 tokens) duplication in the following files: 
+Starting at line 3316 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/browser/unodatbr.cxx
+Starting at line 665 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/tablespage.cxx
+
+		SvLBoxString* pLeftTextItem = static_cast<SvLBoxString*>(pLHS->GetFirstItem(SV_ITEM_ID_LBOXSTRING));
+		SvLBoxString* pRightTextItem = static_cast<SvLBoxString*>(pRHS->GetFirstItem(SV_ITEM_ID_LBOXSTRING));
+		DBG_ASSERT(pLeftTextItem && pRightTextItem, "SbaTableQueryBrowser::OnTreeEntryCompare: invalid text items!");
+
+		String sLeftText = pLeftTextItem->GetText();
+		String sRightText = pRightTextItem->GetText();
+
+		sal_Int32 nCompareResult = 0;	// equal by default
+
+		if (m_xCollator.is())
+		{
+			try
+			{
+				nCompareResult = m_xCollator->compareString(sLeftText, sRightText);
+			}
+			catch(Exception&)
+			{
+			}
+		}
+		else
+			// default behaviour if we do not have a collator -> do the simple string compare
+			nCompareResult = sLeftText.CompareTo(sRightText);
+
+		return nCompareResult;
+	}
+=====================================================================
+Found a 13 line (113 tokens) duplication in the following files: 
+Starting at line 469 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+
+		if(sTableName.indexOf('.',0) != -1)
+		{
+			::rtl::OUString aCatlog,aSchema,aTable;
+			::dbtools::qualifiedNameComponents(m_xMetaData,sTableName,aCatlog,aSchema,aTable,::dbtools::eInDataManipulation);
+			sTableName = ::dbtools::composeTableName( m_xMetaData, aCatlog, aSchema, aTable, sal_True, ::dbtools::eInDataManipulation );
+		}
+		else
+			sTableName = ::dbtools::quoteName(aQuote,sTableName);
+
+		aAppendOrder =  sTableName;
+		aAppendOrder += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("."));
+		aAppendOrder += ::dbtools::quoteName(aQuote,sRealName);
+	}
+=====================================================================
+Found a 15 line (113 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConfigAccess.cxx
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConfigAccess.cxx
+
+			::rtl::OUString sPreferredName;
+
+			Reference< XMultiServiceFactory > xFactory = getMozabServiceFactory();
+			OSL_ENSURE( xFactory.is(), "getPreferredProfileName: invalid service factory!" );
+			if ( xFactory.is() )
+			{
+				try
+				{
+					Reference< XPropertySet > xDriverNode = createDriverConfigNode( xFactory );
+					Reference< XPropertySet > xMozPrefsNode;
+					if ( xDriverNode.is() )
+						xDriverNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("MozillaPreferences" )) ) >>= xMozPrefsNode;
+					OSL_ENSURE( xMozPrefsNode.is(), "getPreferredProfileName: could not access the node for the mozilla preferences!" );
+					if ( xMozPrefsNode.is() )
+						xMozPrefsNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ProfileName" )) ) >>= sPreferredName;
+=====================================================================
+Found a 18 line (113 tokens) duplication in the following files: 
+Starting at line 785 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JConnection.cxx
+Starting at line 554 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+
+		static const char * cSignature = "()Ljava/sql/SQLWarning;";
+		static const char * cMethodName = "getWarnings";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = 			t.pEnv->CallObjectMethod( object, mID);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	if( out )
+	{
+		java_sql_SQLWarning_BASE		warn_base( t.pEnv, out );
+		return makeAny(
+            static_cast< starsdbc::SQLException >(
+                java_sql_SQLWarning(warn_base,*(::cppu::OWeakObject*)this)));
+=====================================================================
+Found a 13 line (113 tokens) duplication in the following files: 
+Starting at line 2038 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+Starting at line 2109 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+
+void ODbaseTable::dropColumn(sal_Int32 _nPos)
+{
+	String sTempName = createTempFile();
+
+	ODbaseTable* pNewTable = new ODbaseTable(m_pTables,static_cast<ODbaseConnection*>(m_pConnection));
+	Reference< XPropertySet > xHold = pNewTable;
+	pNewTable->setPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME),makeAny(::rtl::OUString(sTempName)));
+	{
+		Reference<XAppend> xAppend(pNewTable->getColumns(),UNO_QUERY);
+		sal_Bool bCase = getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers();
+		// copy the structure
+		for(sal_Int32 i=0;i < m_pColumns->getCount();++i)
+		{
+=====================================================================
+Found a 25 line (113 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/PieChartTypeTemplate.cxx
+
+        uno::makeAny( sal_False );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+=====================================================================
+Found a 36 line (113 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_textlayout.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/textlayout.cxx
+
+{
+    namespace
+    {
+        void setupLayoutMode( OutputDevice& rOutDev,
+                              sal_Int8		nTextDirection )	
+        {
+            // TODO(P3): avoid if already correctly set
+            ULONG nLayoutMode;
+            switch( nTextDirection )
+            {
+                default:
+                    nLayoutMode = 0;
+                    break;
+                case rendering::TextDirection::WEAK_LEFT_TO_RIGHT:
+                    nLayoutMode = TEXT_LAYOUT_BIDI_LTR;
+                    break;
+                case rendering::TextDirection::STRONG_LEFT_TO_RIGHT:
+                    nLayoutMode = TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_BIDI_STRONG;
+                    break;
+                case rendering::TextDirection::WEAK_RIGHT_TO_LEFT:
+                    nLayoutMode = TEXT_LAYOUT_BIDI_RTL;
+                    break;
+                case rendering::TextDirection::STRONG_RIGHT_TO_LEFT:
+                    nLayoutMode = TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG;
+                    break;
+            }
+
+            // set calculated layout mode. Origin is always the left edge,
+            // as required at the API spec
+            rOutDev.SetLayoutMode( nLayoutMode | TEXT_LAYOUT_TEXTORIGIN_LEFT );
+        }
+    }
+
+    TextLayout::TextLayout( const rendering::StringContext& aText,
+                            sal_Int8                        nDirection,
+                            sal_Int64                       nRandomSeed,
+=====================================================================
+Found a 53 line (113 tokens) duplication in the following files: 
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			else // direct way
+			{
+				*(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
+				// no longer needed
+				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+			}
+		}
+		pCppStack += sizeof(sal_Int32); // standard parameter length
+  	}
+
+// seems that EH registration for callVirtualMethod is not really
+// necessary
+
+// 	static unsigned long* pFrameInfo = NULL;
+
+// 	if( ! pFrameInfo )
+// 	{
+// 		pFrameInfo = new unsigned long[ 7 ];
+// 		pFrameInfo[ 0 ] = 0x40000000 | (((unsigned long)__Crun::ex_rethrow_q) >> 2);
+// 		pFrameInfo[ 1 ] = 0x01000000;
+// 		pFrameInfo[ 2 ] = (unsigned long)callVirtualMethodExceptionHandler;
+// 		pFrameInfo[ 3 ] = 0;
+//     		pFrameInfo[ 4 ] = (unsigned long)pFrameInfo - (unsigned long)callVirtualMethodExceptionHandler;
+// 		pFrameInfo[ 5 ] = 0;
+// 		pFrameInfo[ 6 ] = 0;
+// 		_ex_register( pFrameInfo+2, 1 );
+// 	}
+
+ 	try
+  	{
+		int nStackLongs = (pCppStack - pCppStackStart)/sizeof(sal_Int32);
+		if( nStackLongs & 1 )
+			// stack has to be 8 byte aligned
+			nStackLongs++;
+
+		callVirtualMethod(
+			pAdjustedThisPtr,
+			aVtableSlot.index,
+			pCppReturn,
+			pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart,
+			nStackLongs
+			);
+
+		// NO exception occured...
+		*ppUnoExc = 0;
+
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+=====================================================================
+Found a 19 line (113 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/namecont.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/eventcontainer.cxx
+
+void NameContainer_Impl::replaceByName( const OUString& aName, const Any& aElement ) 
+	throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException)
+{
+	Type aAnyType = aElement.getValueType();
+	if( mType != aAnyType )
+		throw IllegalArgumentException();
+
+	NameContainerNameMap::iterator aIt = mHashMap.find( aName );
+	if( aIt == mHashMap.end() )
+	{
+		throw NoSuchElementException();
+	}
+	sal_Int32 iHashResult = (*aIt).second;
+	Any aOldElement = mValues.getConstArray()[ iHashResult ];
+	mValues.getArray()[ iHashResult ] = aElement;
+
+	// Fire event
+	ContainerEvent aEvent;		
+	aEvent.Source = *this;
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 469 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            int fg[4];
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            calc_type fg[4];
+=====================================================================
+Found a 7 line (112 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 834 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        if(fg[3] < 0) fg[3] = 0;
+
+                        if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                        if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                        if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                        if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+                    }
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+            calc_type fg[4];
+
+            const value_type *fg_ptr;
+            color_type* span = base_type::allocator().span();
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                base_type::interpolator().coordinates(&x, &y);
+
+                x >>= image_subpixel_shift;
+                y >>= image_subpixel_shift;
+
+                if(x >= 0    && y >= 0 &&
+                   x <= maxx && y <= maxy) 
+                {
+                    fg_ptr = (const value_type*)base_type::source_image().row(y) + (x << 2);
+=====================================================================
+Found a 26 line (112 tokens) duplication in the following files: 
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/encrypter.cxx
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/standalone/mscsfit/signer.cxx
+
+		SecurityOperationStatus m_nStatus = xTemplate->getStatus();
+		
+		if (m_nStatus == SecurityOperationStatus_OPERATION_SUCCEEDED)
+		{
+			fprintf( stdout, "Operation succeeds.\n") ;
+		}
+		else
+		{
+			fprintf( stdout, "Operation fails.\n") ;
+		}
+	} catch( Exception& e ) {
+		fprintf( stderr , "Error Message: %s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() ) ;
+		goto done ;
+	}
+
+	dstFile = fopen( argv[2], "w" ) ;
+	if( dstFile == NULL ) {
+		fprintf( stderr , "### Can not open file %s\n", argv[2] ) ;
+		goto done ;
+	}
+
+	//Save result
+	xmlDocDump( dstFile, doc ) ;
+
+done:
+	if( uri != NULL )
+=====================================================================
+Found a 5 line (112 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 13 line (112 tokens) duplication in the following files: 
+Starting at line 6833 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 6849 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+                      (eUnderline == UNDERLINE_BOLDDASHDOTDOT) )
+            {
+                sal_Int32 nDashLength = 4*nLineHeight;
+                sal_Int32 nVoidLength = 2*nLineHeight;
+                aLine.append( "[ " );
+                m_aPages.back().appendMappedLength( nDashLength, aLine, false );
+                aLine.append( ' ' );
+                m_aPages.back().appendMappedLength( nVoidLength, aLine, false );
+                aLine.append( ' ' );
+                m_aPages.back().appendMappedLength( (sal_Int32)nLineHeight, aLine, false );
+                aLine.append( ' ' );
+                m_aPages.back().appendMappedLength( nVoidLength, aLine, false );
+                aLine.append( ' ' );
+=====================================================================
+Found a 22 line (112 tokens) duplication in the following files: 
+Starting at line 5288 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev3.cxx
+Starting at line 5433 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev3.cxx
+
+    DBG_TRACE( "OutputDevice::SetTextLineColor()" );
+    DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice );
+
+    Color aColor( rColor );
+
+    if ( mnDrawMode & ( DRAWMODE_BLACKTEXT | DRAWMODE_WHITETEXT |
+                        DRAWMODE_GRAYTEXT | DRAWMODE_GHOSTEDTEXT |
+                        DRAWMODE_SETTINGSTEXT ) )
+    {
+        if ( mnDrawMode & DRAWMODE_BLACKTEXT )
+            aColor = Color( COL_BLACK );
+        else if ( mnDrawMode & DRAWMODE_WHITETEXT )
+            aColor = Color( COL_WHITE );
+        else if ( mnDrawMode & DRAWMODE_GRAYTEXT )
+        {
+            const UINT8 cLum = aColor.GetLuminance();
+            aColor = Color( cLum, cLum, cLum );
+        }
+        else if ( mnDrawMode & DRAWMODE_SETTINGSTEXT )
+            aColor = GetSettings().GetStyleSettings().GetFontColor();
+
+        if( (mnDrawMode & DRAWMODE_GHOSTEDTEXT)
+=====================================================================
+Found a 20 line (112 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+
+				BitmapColor aCol;
+				BitmapColor	aMskWhite( pMskAcc->GetBestMatchingColor( Color( COL_WHITE ) ) );
+
+				for( long nY = nStartY; nY <= nEndY; nY++ )
+				{
+					const sal_Int32* pTmp = (sal_Int32*) pData + ( nY - nStartY ) * nScanSize + nOffset;
+
+					for( long nX = nStartX; nX <= nEndX; nX++ )
+					{
+						const sal_Int32	nIndex = *pTmp++;
+						const Color&	rCol = mpPal[ nIndex ];
+
+						// 0: Transparent; >0: Non-Transparent
+						if( !rCol.GetTransparency() )
+						{
+							pMskAcc->SetPixel( nY, nX, aMskWhite );
+							mbTrans = TRUE;
+						}
+						else
+						{
+=====================================================================
+Found a 23 line (112 tokens) duplication in the following files: 
+Starting at line 2912 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 3832 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+void CheckBox::StateChanged( StateChangedType nType )
+{
+    Button::StateChanged( nType );
+
+    if ( nType == STATE_CHANGE_STATE )
+    {
+        if ( IsReallyVisible() && IsUpdateMode() )
+            Invalidate( maStateRect );
+    }
+    else if ( (nType == STATE_CHANGE_ENABLE) ||
+              (nType == STATE_CHANGE_TEXT) ||
+              (nType == STATE_CHANGE_IMAGE) ||
+              (nType == STATE_CHANGE_DATA) ||
+              (nType == STATE_CHANGE_UPDATEMODE) )
+    {
+        if ( IsUpdateMode() )
+            Invalidate();
+    }
+    else if ( nType == STATE_CHANGE_STYLE )
+    {
+        SetStyle( ImplInitStyle( GetWindow( WINDOW_PREV ), GetStyle() ) );
+
+        if ( (GetPrevStyle() & CHECKBOX_VIEW_STYLE) !=
+=====================================================================
+Found a 30 line (112 tokens) duplication in the following files: 
+Starting at line 1393 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 789 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+                    }
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( nChanged > 0 )
+=====================================================================
+Found a 37 line (112 tokens) duplication in the following files: 
+Starting at line 1365 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+		}
+#endif
+		else
+		{
+			// @@@ Note: If your data source supports adding/removing
+			//     properties, you should implement the interface
+			//     XPropertyContainer by yourself and supply your own
+			//     logic here. The base class uses the service
+			//     "com.sun.star.ucb.Store" to maintain Additional Core
+			//     properties. But using server functionality is preferred!
+
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue
+                        = xAdditionalPropSet->getPropertyValue( rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+=====================================================================
+Found a 30 line (112 tokens) duplication in the following files: 
+Starting at line 1441 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 789 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+                    }
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( nChanged > 0 )
+=====================================================================
+Found a 37 line (112 tokens) duplication in the following files: 
+Starting at line 1413 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+		}
+#endif
+		else
+		{
+			// @@@ Note: If your data source supports adding/removing
+			//     properties, you should implement the interface
+			//     XPropertyContainer by yourself and supply your own
+			//     logic here. The base class uses the service
+			//     "com.sun.star.ucb.Store" to maintain Additional Core
+			//     properties. But using server functionality is preferred!
+
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue
+                        = xAdditionalPropSet->getPropertyValue( rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+=====================================================================
+Found a 30 line (112 tokens) duplication in the following files: 
+Starting at line 1024 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1441 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+					}
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( bExchange )
+=====================================================================
+Found a 29 line (112 tokens) duplication in the following files: 
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1413 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+		}
+		else
+		{
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue
+                        = xAdditionalPropSet->getPropertyValue( rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+=====================================================================
+Found a 30 line (112 tokens) duplication in the following files: 
+Starting at line 1422 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1024 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+
+                    }
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+
+	if ( nChanged > 0 )
+=====================================================================
+Found a 36 line (112 tokens) duplication in the following files: 
+Starting at line 1394 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+
+		}
+		else
+		{
+			// @@@ Note: If your data source supports adding/removing
+			//     properties, you should implement the interface
+			//     XPropertyContainer by yourself and supply your own
+			//     logic here. The base class uses the service
+			//     "com.sun.star.ucb.Store" to maintain Additional Core
+			//     properties. But using server functionality is preferred!
+
+			// Not a Core Property! Maybe it's an Additional Core Property?!
+
+			if ( !bTriedToGetAdditonalPropSet && !xAdditionalPropSet.is() )
+			{
+				xAdditionalPropSet = getAdditionalPropertySet( sal_False );
+				bTriedToGetAdditonalPropSet = sal_True;
+			}
+
+			if ( xAdditionalPropSet.is() )
+			{
+				try
+				{
+                    uno::Any aOldValue
+                        = xAdditionalPropSet->getPropertyValue( rValue.Name );
+					if ( aOldValue != rValue.Value )
+					{
+						xAdditionalPropSet->setPropertyValue(
+												rValue.Name, rValue.Value );
+
+						aEvent.PropertyName = rValue.Name;
+						aEvent.OldValue		= aOldValue;
+						aEvent.NewValue     = rValue.Value;
+
+						aChanges.getArray()[ nChanged ] = aEvent;
+						nChanged++;
+					}
+=====================================================================
+Found a 26 line (112 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/solar/solar.c
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/solar.c
+
+    printf( "can not write address %p\n", p );
+
+  return 0;
+}
+
+struct Description
+{
+  int	bBigEndian;
+  int	bStackGrowsDown;
+  int	nStackAlignment;
+  int	nAlignment[3];	/* 2,4,8 */
+};
+
+void Description_Ctor( struct Description* pThis )
+{
+  pThis->bBigEndian			= IsBigEndian();
+  pThis->bStackGrowsDown	= IsStackGrowingDown();
+  pThis->nStackAlignment	= GetStackAlignment();
+
+  if ( sizeof(short) != 2 )
+	abort();
+  pThis->nAlignment[0] = GetAlignment( t_short );
+  if ( sizeof(int) != 4 )
+	abort();
+  pThis->nAlignment[1] = GetAlignment( t_int );
+  if ( sizeof(double) != 8 )
+=====================================================================
+Found a 26 line (112 tokens) duplication in the following files: 
+Starting at line 1200 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 1409 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+				sal_Unicode const * pLanguageBegin = p;
+				bool bDowncaseLanguage = false;
+				int nLetters = 0;
+				for (; p != pEnd; ++p)
+					if (isAlpha(*p))
+					{
+						if (++nLetters > 8)
+							break;
+						bDowncaseLanguage = bDowncaseLanguage
+							                || isUpperCase(*p);
+					}
+					else if (*p == '-')
+					{
+						if (nLetters == 0)
+							break;
+						nLetters = 0;
+					}
+					else
+						break;
+				if (nLetters == 0 || nLetters > 8)
+					break;
+				if (pParameters)
+				{
+					aLanguage = ByteString(
+                        pLanguageBegin,
+                        static_cast< xub_StrLen >(p - pLanguageBegin),
+=====================================================================
+Found a 11 line (112 tokens) duplication in the following files: 
+Starting at line 1999 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+Starting at line 2406 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+
+void UnoComboBoxControl::addItems( const uno::Sequence< ::rtl::OUString>& aItems, sal_Int16 nPos ) throw(uno::RuntimeException)
+{
+	uno::Any aVal = ImplGetPropertyValue( GetPropertyName( BASEPROPERTY_STRINGITEMLIST ) );
+	uno::Sequence< ::rtl::OUString> aSeq;
+	aVal >>= aSeq;
+	sal_uInt16 nNewItems = (sal_uInt16)aItems.getLength();
+	sal_uInt16 nOldLen = (sal_uInt16)aSeq.getLength();
+	sal_uInt16 nNewLen = nOldLen + nNewItems;
+
+	uno::Sequence< ::rtl::OUString> aNewSeq( nNewLen );
+	::rtl::OUString* pNewData = aNewSeq.getArray();
+=====================================================================
+Found a 12 line (112 tokens) duplication in the following files: 
+Starting at line 1214 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/viewtab.cxx
+Starting at line 1244 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/viewtab.cxx
+
+                    SvxLRSpaceItem aDistLR(SID_RULER_BORDER_DISTANCE);
+                    aDistLR.SetLeft((USHORT)rBox.GetDistance(BOX_LINE_LEFT ));
+                    aDistLR.SetRight((USHORT)rBox.GetDistance(BOX_LINE_RIGHT));
+
+                    //add the border distance of the paragraph
+                    SfxItemSet aCoreSet1( GetPool(),
+                                            RES_BOX, RES_BOX,
+                                            0 );
+                    rSh.GetAttr( aCoreSet1 );
+                    const SvxBoxItem& rParaBox = (const SvxBoxItem&)aCoreSet1.Get(RES_BOX);
+                    aDistLR.SetLeft(aDistLR.GetLeft() + (USHORT)rParaBox.GetDistance(BOX_LINE_LEFT ));
+                    aDistLR.SetRight(aDistLR.GetRight() + (USHORT)rParaBox.GetDistance(BOX_LINE_RIGHT));
+=====================================================================
+Found a 7 line (112 tokens) duplication in the following files: 
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmoutputpage.cxx
+Starting at line 696 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mmoutputpage.cxx
+
+            long nNewRBXPos = m_aSendAllRB.GetPosPixel().Y() + m_nRBOffset;
+
+            Point aPos(m_aFromRB.GetPosPixel());aPos.Y() = nNewRBXPos;                 m_aFromRB.SetPosPixel(aPos);
+            aPos = m_aToFT.GetPosPixel();       aPos.Y() = nNewRBXPos + nRB_FT_Offset; m_aToFT.SetPosPixel(aPos);
+            aPos = m_aFromNF.GetPosPixel();     aPos.Y() = nNewRBXPos + nRB_FT_Offset; m_aFromNF.SetPosPixel(aPos);
+            aPos = m_aToNF.GetPosPixel();       aPos.Y() = nNewRBXPos + nRB_FT_Offset; m_aToNF.SetPosPixel(aPos);
+        }
+=====================================================================
+Found a 13 line (112 tokens) duplication in the following files: 
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/wrtxml.cxx
+
+			  &::getCppuType((Sequence<sal_Int8>*)0),
+#endif
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "BaseURI", sizeof("BaseURI")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamRelPath", sizeof("StreamRelPath")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamName", sizeof("StreamName")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "AutoTextMode", sizeof("AutoTextMode")-1, 0,
+=====================================================================
+Found a 21 line (112 tokens) duplication in the following files: 
+Starting at line 759 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+Starting at line 4887 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+			pOption->GetEnum( nType, aHTMLSpacerTypeTable );
+			break;
+		case HTML_O_ALIGN:
+			eVertOri =
+				(SwVertOrient)pOption->GetEnum( aHTMLImgVAlignTable,
+												eVertOri );
+			eHoriOri =
+				(SwHoriOrient)pOption->GetEnum( aHTMLImgHAlignTable,
+												eHoriOri );
+			break;
+		case HTML_O_WIDTH:
+			// erstmal nur als Pixelwerte merken!
+			bPrcWidth = (pOption->GetString().Search('%') != STRING_NOTFOUND);
+			aSize.Width() = (long)pOption->GetNumber();
+			break;
+		case HTML_O_HEIGHT:
+			// erstmal nur als Pixelwerte merken!
+			bPrcHeight = (pOption->GetString().Search('%') != STRING_NOTFOUND);
+			aSize.Height() = (long)pOption->GetNumber();
+			break;
+		case HTML_O_SIZE:
+=====================================================================
+Found a 16 line (112 tokens) duplication in the following files: 
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/pam.cxx
+Starting at line 454 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/crsr/pam.cxx
+
+SwPaM::SwPaM( const SwNode& rMk, const SwNode& rPt,
+				long nMkOffset, long nPtOffset, SwPaM* pRing )
+	: Ring( pRing ), aBound1( rMk ), aBound2( rPt ), bIsInFrontOfLabel(FALSE)
+{
+	if( nMkOffset )
+		aBound1.nNode += nMkOffset;
+	if( nPtOffset )
+		aBound2.nNode += nPtOffset;
+
+	aBound1.nContent.Assign( aBound1.nNode.GetNode().GetCntntNode(), 0 );
+	aBound2.nContent.Assign( aBound2.nNode.GetNode().GetCntntNode(), 0 );
+	pMark = &aBound1;
+	pPoint = &aBound2;
+}
+
+SwPaM::SwPaM( const SwNodeIndex& rMk, xub_StrLen nMkCntnt,
+=====================================================================
+Found a 7 line (112 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdglue.cxx
+Starting at line 400 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdglue.cxx
+
+			long x=aPt.X(),y=aPt.Y(); // Groesse erstmal fest auf 7 Pixel
+			rOut.DrawLine(Point(x-2,y-3),Point(x+3,y+2));
+			rOut.DrawLine(Point(x-3,y-2),Point(x+2,y+3));
+			rOut.DrawLine(Point(x-3,y+2),Point(x+2,y-3));
+			rOut.DrawLine(Point(x-2,y+3),Point(x+3,y-2));
+		
+			if (!pGP->IsPercent()) 
+=====================================================================
+Found a 16 line (112 tokens) duplication in the following files: 
+Starting at line 1681 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/textconv.cxx
+
+    SfxItemSet aNewSet( pEditView->GetEmptyItemSet() );
+    aNewSet.Put( SvxLanguageItem( nLang, nLangWhichId ) );
+
+    // new font to be set?
+    DBG_ASSERT( pFont, "target font missing?" );
+    if (pFont)
+    {
+        // set new font attribute
+        SvxFontItem aFontItem = (SvxFontItem&) aNewSet.Get( nFontWhichId );
+        aFontItem.GetFamilyName()   = pFont->GetName();
+        aFontItem.GetFamily()       = pFont->GetFamily();
+        aFontItem.GetStyleName()    = pFont->GetStyleName();
+        aFontItem.GetPitch()        = pFont->GetPitch();
+        aFontItem.GetCharSet()      = pFont->GetCharSet();
+        aNewSet.Put( aFontItem );
+    }
+=====================================================================
+Found a 25 line (112 tokens) duplication in the following files: 
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dbregister.cxx
+Starting at line 407 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optpath.cxx
+
+    }
+
+    String aUserData = GetUserData();
+	if ( aUserData.Len() )
+	{
+		// Spaltenbreite restaurieren
+		pHeaderBar->SetItemSize( ITEMID_TYPE, aUserData.GetToken(0).ToInt32() );
+		HeaderEndDrag_Impl( NULL );
+		// Sortierrichtung restaurieren
+		BOOL bUp = (BOOL)(USHORT)aUserData.GetToken(1).ToInt32();
+		HeaderBarItemBits nBits	= pHeaderBar->GetItemBits(ITEMID_TYPE);
+
+		if ( bUp )
+		{
+			nBits &= ~HIB_UPARROW;
+			nBits |= HIB_DOWNARROW;
+		}
+		else
+		{
+			nBits &= ~HIB_DOWNARROW;
+			nBits |= HIB_UPARROW;
+		}
+		pHeaderBar->SetItemBits( ITEMID_TYPE, nBits );
+		HeaderSelect_Impl( NULL );
+	}
+=====================================================================
+Found a 13 line (112 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/wrtxml.cxx
+
+			  &::getCppuType((Sequence<sal_Int8>*)0),
+#endif
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "BaseURI", sizeof("BaseURI")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamRelPath", sizeof("StreamRelPath")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamName", sizeof("StreamName")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "AutoTextMode", sizeof("AutoTextMode")-1, 0,
+=====================================================================
+Found a 21 line (112 tokens) duplication in the following files: 
+Starting at line 2336 of /local/ooo-build/ooo-build/src/oog680-m3/sot/source/sdstor/ucbstorage.cxx
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/ucbhelper.cxx
+
+		Sequence< ContentInfo > aInfo = xCreator->queryCreatableContentsInfo();
+		sal_Int32 nCount = aInfo.getLength();
+		if ( nCount == 0 )
+			return sal_False;
+
+		for ( sal_Int32 i = 0; i < nCount; ++i )
+		{
+			// Simply look for the first KIND_FOLDER...
+			const ContentInfo & rCurr = aInfo[i];
+			if ( rCurr.Attributes & ContentInfoAttribute::KIND_FOLDER )
+			{
+				// Make sure the only required bootstrap property is "Title",
+				const Sequence< Property > & rProps = rCurr.Properties;
+				if ( rProps.getLength() != 1 )
+					continue;
+
+				if ( !rProps[ 0 ].Name.equalsAsciiL(
+						RTL_CONSTASCII_STRINGPARAM( "Title" ) ) )
+					continue;
+
+				Sequence<OUString> aNames(1);
+=====================================================================
+Found a 23 line (112 tokens) duplication in the following files: 
+Starting at line 246 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/childwin.cxx
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/childwin.cxx
+
+			SfxChildWinFactArr_Impl &rFactories = *pFactories;
+			for ( sal_uInt16 nFactory = 0; nFactory < rFactories.Count(); ++nFactory )
+			{
+				pFact = rFactories[nFactory];
+				if ( pFact->nId == nId )
+				{
+					SfxChildWinInfo& rFactInfo = pFact->aInfo;
+					if ( rInfo.bVisible )
+					{
+						if ( pBindings )
+							pBindings->ENTERREGISTRATIONS();
+						SfxChildWinInfo aInfo = rFactInfo;
+                        Application::SetSystemWindowMode( SYSTEMWINDOW_MODE_NOAUTOMODE );
+						pChild = pFact->pCtor( pParent, nId, pBindings, &aInfo );
+                        Application::SetSystemWindowMode( nOldMode );
+						if ( pBindings )
+							pBindings->LEAVEREGISTRATIONS();
+					}
+
+					break;
+				}
+			}
+		}
+=====================================================================
+Found a 32 line (112 tokens) duplication in the following files: 
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/sddlgfact.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/swdlgfact.cxx
+
+void AbstractTabDialog_Impl::SetCurPageId( USHORT nId )
+{
+	pDlg->SetCurPageId( nId );
+}
+
+const SfxItemSet* AbstractTabDialog_Impl::GetOutputItemSet() const
+{
+	return pDlg->GetOutputItemSet();
+}
+//add by CHINA001
+const USHORT* AbstractTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
+{
+	return pDlg->GetInputRanges( pItem );
+}
+//add by CHINA001
+void AbstractTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
+{
+	 pDlg->SetInputSet( pInSet );
+}
+//From class Window.
+void AbstractTabDialog_Impl::SetText( const XubString& rStr )
+{
+	pDlg->SetText( rStr );
+}
+String AbstractTabDialog_Impl::GetText() const
+{
+	return pDlg->GetText();
+}
+
+//add for AbstractTabDialog_Impl end
+
+void    AbstractSwWordCountDialog_Impl::SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc)
+=====================================================================
+Found a 14 line (112 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+Starting at line 488 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleShape.cxx
+
+    for (sal_Int32 i=0; i<nChildCount; ++i)
+    {
+        Reference<XAccessible> xChild (getAccessibleChild (i));
+        if (xChild.is())
+        {
+            Reference<XAccessibleComponent> xChildComponent (
+                xChild->getAccessibleContext(), uno::UNO_QUERY);
+            if (xChildComponent.is())
+            {
+                awt::Rectangle aBBox (xChildComponent->getBounds());
+                if ( (aPoint.X >= aBBox.X)
+                    && (aPoint.Y >= aBBox.Y)
+                    && (aPoint.X < aBBox.X+aBBox.Width)
+                    && (aPoint.Y < aBBox.Y+aBBox.Height) )
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/textdlgs.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/dlgchar.cxx
+
+void SdCharDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+	SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
+	switch( nId )
+	{
+		case RID_SVXPAGE_CHAR_NAME:
+		{
+			SvxFontListItem aItem(*( (const SvxFontListItem*)
+				( rDocShell.GetItem( SID_ATTR_CHAR_FONTLIST) ) ) );
+
+			aSet.Put (SvxFontListItem( aItem.GetFontList(), SID_ATTR_CHAR_FONTLIST));
+			rPage.PageCreated(aSet);
+		}
+		break;
+
+		case RID_SVXPAGE_CHAR_EFFECTS:
+			aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP));
+			rPage.PageCreated(aSet);
+			break;
+
+		default:
+		break;
+	}
+}
+=====================================================================
+Found a 21 line (112 tokens) duplication in the following files: 
+Starting at line 527 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/autofmt.cxx
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/tautofmt.cxx
+
+static void lcl_SetFontProperties(
+        Font& rFont,
+        const SvxFontItem& rFontItem,
+        const SvxWeightItem& rWeightItem,
+        const SvxPostureItem& rPostureItem )
+{
+    rFont.SetFamily     ( rFontItem.GetFamily() );
+    rFont.SetName       ( rFontItem.GetFamilyName() );
+    rFont.SetStyleName  ( rFontItem.GetStyleName() );
+    rFont.SetCharSet    ( rFontItem.GetCharSet() );
+    rFont.SetPitch      ( rFontItem.GetPitch() );
+    rFont.SetWeight     ( (FontWeight)rWeightItem.GetValue() );
+    rFont.SetItalic     ( (FontItalic)rPostureItem.GetValue() );
+}
+
+#define SETONALLFONTS( MethodName, Value )                  \
+rFont.MethodName( Value );                                  \
+rCJKFont.MethodName( Value );                               \
+rCTLFont.MethodName( Value );
+
+void AutoFmtPreview::MakeFonts( BYTE nIndex, Font& rFont, Font& rCJKFont, Font& rCTLFont )
+=====================================================================
+Found a 16 line (112 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/dwfunctr.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/funcpage.cxx
+
+void ScFuncPage::InitLRUList()
+{
+	const ScAppOptions& rAppOpt = SC_MOD()->GetAppOptions();
+	USHORT nLRUFuncCount = Min( rAppOpt.GetLRUFuncListCount(), (USHORT)LRU_MAX );
+	USHORT*	pLRUListIds = rAppOpt.GetLRUFuncList();
+
+	USHORT i;
+	for ( i=0; i<LRU_MAX; i++ )
+		aLRUList[i] = NULL;
+
+	if ( pLRUListIds )
+	{
+		ScFunctionMgr* pFuncMgr = ScGlobal::GetStarCalcFunctionMgr();
+		for ( i=0; i<nLRUFuncCount; i++ )
+			aLRUList[i] = pFuncMgr->Get( pLRUListIds[i] );
+	}
+=====================================================================
+Found a 31 line (112 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/attrdlg/scdlgfact.cxx
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/sddlgfact.cxx
+
+void AbstractTabDialog_Impl::SetCurPageId( USHORT nId )
+{
+	pDlg->SetCurPageId( nId );
+}
+const SfxItemSet* AbstractTabDialog_Impl::GetOutputItemSet() const
+{
+	return pDlg->GetOutputItemSet();
+}
+const USHORT* AbstractTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
+{
+	return pDlg->GetInputRanges( pItem );
+}
+void AbstractTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
+{
+	 pDlg->SetInputSet( pInSet );
+}
+//From class Window.
+void AbstractTabDialog_Impl::SetText( const XubString& rStr )
+{
+	pDlg->SetText( rStr );
+}
+String AbstractTabDialog_Impl::GetText() const
+{
+	return pDlg->GetText();
+}
+//add for AbstractTabDialog_Impl end
+
+// --------------------------------------------------------------------
+
+// AbstractBulletDialog_Impl begin
+void AbstractBulletDialog_Impl::SetCurPageId( USHORT nId )
+=====================================================================
+Found a 6 line (112 tokens) duplication in the following files: 
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlwrap.cxx
+Starting at line 798 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlwrap.cxx
+
+	comphelper::PropertyMapEntry aExportInfoMap[] =
+	{
+		{ MAP_LEN( "ProgressRange" ), 0, &::getCppuType((sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+		{ MAP_LEN( "ProgressMax" ), 0, &::getCppuType((sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+		{ MAP_LEN( "ProgressCurrent" ), 0, &::getCppuType((sal_Int32*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+		{ MAP_LEN( "WrittenNumberStyles" ), 0, &::getCppuType((uno::Sequence<sal_Int32>*)0), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+=====================================================================
+Found a 26 line (112 tokens) duplication in the following files: 
+Starting at line 601 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/excform8.cxx
+
+                ExcRelToScRel8( nRowLast, nColLast, aCRD.Ref2, bRangeName );
+
+				if( IsComplColRange( nColFirst, nColLast ) )
+					SetComplCol( aCRD );
+				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+					SetComplRow( aCRD );
+
+				switch ( nOp )
+				{
+					case 0x4B:
+					case 0x6B:
+					case 0x2B: // Deleted Area Refernce			[323 273]
+						// no information which part is deleted, set all
+						rSRef1.SetColDeleted( TRUE );
+						rSRef1.SetRowDeleted( TRUE );
+						rSRef2.SetColDeleted( TRUE );
+						rSRef2.SetRowDeleted( TRUE );
+				}
+
+				aStack << aPool.Store( aCRD );
+			}
+				break;
+			case 0x46:
+			case 0x66:
+			case 0x26: // Constant Reference Subexpression		[321 271]
+				aExtensions.push_back( EXTENSION_MEMAREA );
+=====================================================================
+Found a 33 line (112 tokens) duplication in the following files: 
+Starting at line 3207 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/biffdump.cxx
+Starting at line 3243 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/biffdump.cxx
+
+					switch( nNewType )
+					{
+						case 0x0001:
+                            __AddRK( t, rIn.ReadInt32() );
+							PRINT();
+						break;
+						case 0x0002:
+							ADDDOUBLE();
+							PRINT();
+						break;
+						case 0x0003:
+							AddUNICODEString( t, rIn );
+							PRINT();
+						break;
+						case 0x0004:
+							if( Read2( rIn ) )
+								ADDTEXT( "true" );
+							else
+								ADDTEXT( "false" );
+							PRINT();
+						break;
+						case 0x0005:
+						{
+							PRINT();
+							UINT16 nLen;
+							rIn >> nLen;
+							FormulaDump( nLen, FT_CellFormula );
+							IGNORE( 1 );
+						}
+						break;
+					}
+				}
+				if( rIn.GetRecLeft() > 0 )
+=====================================================================
+Found a 15 line (112 tokens) duplication in the following files: 
+Starting at line 3654 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 3810 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+	if (fCount < 3.0)
+		SetNoValue();
+	else
+	{
+		double fMeanX = fSumX / fCount;
+		double fMeanY = fSumY / fCount;
+		for (SCSIZE i = 0; i < nC1; i++)
+        {
+            for (SCSIZE j = 0; j < nR1; j++)
+            {
+                if (!pMat1->IsString(i,j) && !pMat2->IsString(i,j))
+                {
+                    double fValX = pMat1->GetDouble(i,j);
+                    double fValY = pMat2->GetDouble(i,j);
+                    fSumDeltaXDeltaY += (fValX - fMeanX) * (fValY - fMeanY);
+=====================================================================
+Found a 18 line (112 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/autoform.cxx
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblafmt.cxx
+
+    if( nVer >= AUTOFORMAT_DATA_ID_680DR14 )
+    {
+        READ( aTLBR, SvxLineItem, rVersions.nLineVersion)
+        READ( aBLTR, SvxLineItem, rVersions.nLineVersion)
+    }
+
+	READ( aBackground,  SvxBrushItem		, rVersions.nBrushVersion)
+
+	pNew = aAdjust.Create(rStream, rVersions.nAdjustVersion );
+	SetAdjust( *(SvxAdjustItem*)pNew );
+	delete pNew;
+
+    READ( aHorJustify,  SvxHorJustifyItem , rVersions.nHorJustifyVersion)
+    READ( aVerJustify,  SvxVerJustifyItem   , rVersions.nVerJustifyVersion)
+    READ( aOrientation, SvxOrientationItem  , rVersions.nOrientationVersion)
+    READ( aMargin, SvxMarginItem       , rVersions.nMarginVersion)
+
+	pNew = aLinebreak.Create(rStream, rVersions.nBoolVersion );
+=====================================================================
+Found a 17 line (112 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/appoptio.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/docoptio.cxx
+
+	SetDate( nDateDay, nDateMonth, nDateYear );
+
+	aNames = GetLayoutPropertyNames();
+	aValues = aLayoutItem.GetProperties(aNames);
+	aLayoutItem.EnableNotification(aNames);
+	pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			DBG_ASSERT(pValues[nProp].hasValue(), "property value missing")
+			if(pValues[nProp].hasValue())
+			{
+				switch(nProp)
+				{
+					case SCDOCLAYOUTOPT_TABSTOP:
+=====================================================================
+Found a 17 line (112 tokens) duplication in the following files: 
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabsrc.cxx
+Starting at line 721 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabsrc.cxx
+
+			ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nRowDims[i] );
+			long nHierarchy = pDim->getUsedHierarchy();
+			if ( nHierarchy >= pDim->GetHierarchiesObject()->getCount() )
+				nHierarchy = 0;
+			ScDPLevels* pLevels = pDim->GetHierarchiesObject()->getByIndex(nHierarchy)->GetLevelsObject();
+			long nCount = pLevels->getCount();
+
+			//!	Test
+			if ( pDim->getIsDataLayoutDimension() && nDataDimCount < 2 )
+				nCount = 0;
+			//!	Test
+
+			for (long j=0; j<nCount; j++)
+			{
+			    ScDPLevel* pLevel = pLevels->getByIndex(j);
+			    pLevel->EvaluateSortOrder();
+			    pLevel->SetEnableLayout( TRUE );            // enable layout flags for row fields
+=====================================================================
+Found a 15 line (112 tokens) duplication in the following files: 
+Starting at line 752 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+
+		xHier = ScUnoHelpFunctions::AnyToInterface( xHiers->getByIndex(rElemDesc.nHierarchy) );
+	DBG_ASSERT( xHier.is(), "hierarchy not found" );
+	if ( !xHier.is() ) return;
+
+	long nLevCount = 0;
+	uno::Reference<container::XIndexAccess> xLevels;
+	uno::Reference<sheet::XLevelsSupplier> xLevSupp( xHier, uno::UNO_QUERY );
+	if ( xLevSupp.is() )
+	{
+		uno::Reference<container::XNameAccess> xLevsName = xLevSupp->getLevels();
+		xLevels = new ScNameToIndexAccess( xLevsName );
+		nLevCount = xLevels->getCount();
+	}
+	uno::Reference<uno::XInterface> xLevel;
+	if ( rElemDesc.nLevel < nLevCount )
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/attarray.cxx
+Starting at line 1571 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/attarray.cxx
+
+BOOL ScAttrArray::RemoveFlags( SCROW nStartRow, SCROW nEndRow, INT16 nFlags )
+{
+	const ScPatternAttr* pOldPattern;
+
+	INT16	nOldValue;
+	SCSIZE	nIndex;
+	SCROW	nRow;
+	SCROW	nThisRow;
+	BOOL	bChanged = FALSE;
+
+	Search( nStartRow, nIndex );
+	nThisRow = (nIndex>0) ? pData[nIndex-1].nRow+1 : 0;
+	if (nThisRow < nStartRow) nThisRow = nStartRow;
+
+	while ( nThisRow <= nEndRow )
+	{
+		pOldPattern = pData[nIndex].pPattern;
+		nOldValue = ((const ScMergeFlagAttr*) &pOldPattern->GetItem( ATTR_MERGE_FLAG ))->GetValue();
+		if ( (nOldValue & ~nFlags) != nOldValue )
+=====================================================================
+Found a 32 line (112 tokens) duplication in the following files: 
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022cn.c
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022jp.c
+
+        b0208 = ((ImplUnicodeToIso2022JpContext *) pContext)->m_b0208;
+    }
+
+    for (; nConverted < nSrcChars; ++nConverted)
+    {
+        sal_Bool bUndefined = sal_True;
+        sal_uInt32 nChar = *pSrcBuf++;
+        if (nHighSurrogate == 0)
+        {
+            if (ImplIsHighSurrogate(nChar))
+            {
+                nHighSurrogate = (sal_Unicode) nChar;
+                continue;
+            }
+        }
+        else if (ImplIsLowSurrogate(nChar))
+            nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
+        else
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (nChar == 0x0A || nChar == 0x0D) /* LF, CR */
+        {
+            if (b0208)
+=====================================================================
+Found a 21 line (112 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/converteuctw.c
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022cn.c
+
+            else
+            {
+                sal_Int32 nOffset = pCns116431992PlaneOffsets[nChar >> 16];
+                sal_uInt32 nFirst;
+                sal_uInt32 nLast;
+                sal_uInt32 nPlane;
+                if (nOffset == -1)
+                    goto bad_input;
+                nOffset
+                    = pCns116431992PageOffsets[nOffset
+                                                   + ((nChar & 0xFF00) >> 8)];
+                if (nOffset == -1)
+                    goto bad_input;
+                nFirst = pCns116431992Data[nOffset++];
+                nLast = pCns116431992Data[nOffset++];
+                nChar &= 0xFF;
+                if (nChar < nFirst || nChar > nLast)
+                    goto bad_input;
+                nOffset += 3 * (nChar - nFirst);
+                nPlane = pCns116431992Data[nOffset++];
+                if (nPlane != 2)
+=====================================================================
+Found a 20 line (112 tokens) duplication in the following files: 
+Starting at line 585 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+Starting at line 613 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+Starting at line 668 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+
+            rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmSHA1 );
+            
+            rtl::OString aMsg = sSampleString;
+            const sal_uInt8 *pData = (const sal_uInt8*)aMsg.getStr();
+            sal_uInt32	     nSize = ( aMsg.getLength() );
+            
+            rtlDigestError aError = rtl_digest_init(handle, pData, nSize);
+
+            CPPUNIT_ASSERT_MESSAGE("init(handle, pData, nSize)", aError == rtl_Digest_E_None);
+
+            rtl_digest_update( handle, pData, nSize );
+
+            sal_uInt32     nKeyLen = rtl_digest_queryLength( handle );
+            sal_uInt8     *pKeyBuffer = new sal_uInt8[ nKeyLen ];
+
+            rtl_digest_get( handle, pKeyBuffer, nKeyLen );
+            rtl::OString aSum = createHex(pKeyBuffer, nKeyLen);
+            delete [] pKeyBuffer;
+            
+            t_print("SHA1 Sum: %s\n", aSum.getStr());
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/sockethelper.cxx
+
+::rtl::OUString	getIPbyName( rtl::OString const& str_name )
+{
+	::rtl::OUString	aUString;
+	struct hostent *hptr;
+	//first	search /ets/hosts, then	search from dns
+	hptr = gethostbyname( str_name.getStr()); 
+	if ( hptr != NULL )
+	{
+		struct in_addr ** addrptr;
+		addrptr	= (struct in_addr **) hptr->h_addr_list	;
+		//if there are more than one IPs on the	same machine, we select	one 
+		for (; *addrptr; addrptr++)
+		{
+			t_print("#Local IP Address: %s\n", inet_ntoa(**addrptr));	
+			aUString = ::rtl::OUString::createFromAscii( (sal_Char *) (inet_ntoa(**addrptr)) );
+		}
+	}
+	return aUString;
+}
+=====================================================================
+Found a 22 line (112 tokens) duplication in the following files: 
+Starting at line 1986 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 2394 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 2781 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 3283 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 3518 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    class  append_005 : public CppUnit::TestFixture
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+
+        void append_001()
+=====================================================================
+Found a 28 line (112 tokens) duplication in the following files: 
+Starting at line 2486 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+Starting at line 2689 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+                                wcscpy(wcsPath + dwPathLen++, L"\\");
+                            }
+
+                            if (*strPath)
+                            {
+                                wcscpy(wcsPath + dwPathLen, strPath);
+                                dwPathLen += wcslen(strPath);
+                            }
+                            else
+                            {
+                                CHAR szPath[MAX_PATH];
+                                int n;
+
+                                if ((n = WideCharToMultiByte(
+                                         CP_ACP,0, wcsPath, -1, szPath,
+                                         MAX_PATH, NULL, NULL))
+                                    > 0)
+                                {
+                                    strcpy(szPath + n, SVERSION_USER);
+                                    if (access(szPath, 0) >= 0)
+                                    {
+                                        dwPathLen += MultiByteToWideChar(
+                                            CP_ACP, 0, SVERSION_USER, -1,
+                                            wcsPath + dwPathLen,
+                                            MAX_PATH - dwPathLen );
+                                    }
+                                }
+                            }
+=====================================================================
+Found a 21 line (112 tokens) duplication in the following files: 
+Starting at line 1512 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/profile.c
+Starting at line 1596 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/w32/profile.c
+
+static const sal_Char* stripBlanks(const sal_Char* String, sal_uInt32* pLen)
+{
+	if ( (pLen != NULL) && ( *pLen != 0 ) )
+	{
+		while ((String[*pLen - 1] == ' ') || (String[*pLen - 1] == '\t'))
+			(*pLen)--;
+
+		while ((*String == ' ') || (*String == '\t'))
+		{
+			String++;
+			(*pLen)--;
+		}
+	}
+	else
+		while ((*String == ' ') || (*String == '\t'))
+			String++;
+
+	return (String);
+}
+
+static const sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line)
+=====================================================================
+Found a 33 line (112 tokens) duplication in the following files: 
+Starting at line 221 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno_callable.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno_runtime.cxx
+
+    (ternaryfunc) 0,
+    (reprfunc) 0,
+    (getattrofunc)0,
+    (setattrofunc)0,
+    NULL,
+    0,
+    NULL,
+    (traverseproc)0,
+    (inquiry)0,
+    (richcmpfunc)0,
+    0,
+    (getiterfunc)0,
+    (iternextfunc)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    (descrgetfunc)0,
+    (descrsetfunc)0,
+    0,
+    (initproc)0,
+    (allocfunc)0,
+    (newfunc)0,
+    (freefunc)0,
+    (inquiry)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    (destructor)0
+};
+=====================================================================
+Found a 30 line (112 tokens) duplication in the following files: 
+Starting at line 69 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/helper/strhelper.cxx
+
+inline void CopyUntil( sal_Unicode*& pTo, const sal_Unicode*& pFrom, sal_Unicode cUntil, int bIncludeUntil = 0 )
+{
+    do
+    {
+        if( *pFrom == '\\' )
+        {
+            pFrom++;
+            if( *pFrom )
+            {
+                *pTo = *pFrom;
+                pTo++;
+            }
+        }
+        else if( bIncludeUntil || ! isProtect( *pFrom ) )
+        {
+            *pTo = *pFrom;
+            pTo++;
+        }
+        pFrom++;
+    } while( *pFrom && *pFrom != cUntil );
+    // copy the terminating character unless zero or protector
+    if( ! isProtect( *pFrom ) || bIncludeUntil )
+    {
+        *pTo = *pFrom;
+        if( *pTo )
+            pTo++;
+    }
+    if( *pFrom )
+        pFrom++;
+}
+=====================================================================
+Found a 16 line (112 tokens) duplication in the following files: 
+Starting at line 4582 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 4604 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+::rtl::OUString SAL_CALL OStorage::getTypeByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
+	for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
+		if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
+=====================================================================
+Found a 34 line (112 tokens) duplication in the following files: 
+Starting at line 3314 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 3403 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+		m_pImpl->m_bBroadcastModified = sal_True;
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( container::NoSuchElementException& )
+	{
+		throw;
+	}
+	catch( container::ElementExistException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't move element!" ),
+=====================================================================
+Found a 34 line (112 tokens) duplication in the following files: 
+Starting at line 3230 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 982 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+			throw io::IOException(); // TODO: error handling
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( container::NoSuchElementException& )
+	{
+		throw;
+	}
+	catch( container::ElementExistException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+=====================================================================
+Found a 16 line (112 tokens) duplication in the following files: 
+Starting at line 2420 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 2442 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+::rtl::OUString SAL_CALL OWriteStream::getTypeByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_pData->m_rSharedMutexRef->GetMutex() );
+
+	if ( !m_pImpl )
+		throw lang::DisposedException();
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
+	for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
+		if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
+=====================================================================
+Found a 27 line (112 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/odk/source/unoapploader/unx/unoapploader.c
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/odk/source/unoapploader/win/unoapploader.c
+
+    (void) nCmdShow; /* unused */
+
+    /* get the path of the UNO installation */
+    path = getPath();
+
+    if ( path != NULL )
+    {
+        /* get the value of the PATH environment variable */
+        value = getenv( ENVVARNAME );
+
+        /* 
+         * add the UNO installation path to the PATH environment variable;
+         * note that this only affects the environment variable of the current 
+         * process, the command processor's environment is not changed
+         */
+        size = strlen( ENVVARNAME ) + strlen( "=" ) + strlen( path ) + 1;
+		if ( value != NULL )
+            size += strlen( PATHSEPARATOR ) + strlen( value );
+		envstr = (char*) malloc( size );
+        strcpy( envstr, ENVVARNAME );
+        strcat( envstr, "=" );
+        strcat( envstr, path );
+		if ( value != NULL )
+		{
+            strcat( envstr, PATHSEPARATOR );
+            strcat( envstr, value );
+		}
+=====================================================================
+Found a 18 line (112 tokens) duplication in the following files: 
+Starting at line 777 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 804 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 9 line (112 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+	    if ( (float)fabs(a[j][k]) >= big )
+	    {
+	      big = (float)fabs(a[j][k]);
+	      irow = j;
+	      icol = k;
+	    }
+	  }
+	  else if ( ipiv[k] > 1 )
+	  {
+	    delete[] ipiv;
+	    delete[] indxr;
+	    delete[] indxc;
+	    return 0;
+	  }
+	}
+      }
+    }
+    ipiv[icol]++;
+
+    if ( irow != icol )
+    {
+      float* rowptr = a[irow];
+      a[irow] = a[icol];
+      a[icol] = rowptr;
+=====================================================================
+Found a 20 line (112 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+  int i, j, k;
+  int irow = 0;
+  int icol = 0;
+  float big, pivinv, save;
+
+  for (j = 0; j < n; j++)
+    ipiv[j] = 0;
+
+  for (i = 0; i < n; i++)
+  {
+    big = 0;
+    for (j = 0; j < n; j++)
+    {
+      if ( ipiv[j] != 1 )
+      {
+	for (k = 0; k < n; k++)
+	{
+	  if ( ipiv[k] == 0 )
+	  {
+	    if ( (float)fabs(a[j][k]) >= big )
+=====================================================================
+Found a 7 line (112 tokens) duplication in the following files: 
+Starting at line 455 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+       13,   13,   22,   23,   24,   25,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+=====================================================================
+Found a 21 line (112 tokens) duplication in the following files: 
+Starting at line 3610 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 3666 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+        switch (hbox->style.anchor_type)
+        {
+            case CHAR_ANCHOR:
+                padd(ascii("text:anchor-type"), sXML_CDATA, ascii("as-char"));
+                break;
+            case PARA_ANCHOR:
+                padd(ascii("text:anchor-type"), sXML_CDATA, ascii("paragraph"));
+                break;
+            case PAGE_ANCHOR:
+            case PAPER_ANCHOR:
+            {
+                // os unused
+                // HWPInfo *hwpinfo = hwpfile.GetHWPInfo();
+                padd(ascii("text:anchor-type"), sXML_CDATA, ascii("page"));
+                padd(ascii("text:anchor-page-number"), sXML_CDATA,
+                    ascii(Int2Str(hbox->pgno +1, "%d", buf)));
+                break;
+            }
+        }
+        if( hbox->style.anchor_type != CHAR_ANCHOR )
+        {
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 1944 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+Starting at line 1457 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+				}
+				break;
+
+				case META_MAPMODE_ACTION:
+				{
+					const MetaMapModeAction* pA = (const MetaMapModeAction*) pMA;
+
+					if (aSrcMapMode!=pA->GetMapMode())
+					{
+						if( pA->GetMapMode().GetMapUnit() == MAP_RELATIVE )
+						{
+							MapMode aMM = pA->GetMapMode();
+							Fraction aScaleX = aMM.GetScaleX();
+							Fraction aScaleY = aMM.GetScaleY();
+
+							Point aOrigin = aSrcMapMode.GetOrigin();
+							BigInt aX( aOrigin.X() );
+							aX *= BigInt( aScaleX.GetDenominator() );
+							if( aOrigin.X() >= 0 )
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 452 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/addonstoolbarmanager.cxx
+Starting at line 1150 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+            }
+
+            // Request a item window from the toolbar controller and set it at the VCL toolbar
+            Reference< XToolbarController > xTbxController( xController, UNO_QUERY );
+            if ( xTbxController.is() && xToolbarWindow.is() )
+            {
+                Reference< XWindow > xWindow = xTbxController->createItemWindow( xToolbarWindow );
+                if ( xWindow.is() )
+                {
+                    Window* pItemWin = VCLUnoHelper::GetWindow( xWindow );
+                    if ( pItemWin )
+                    {
+                        WindowType nType = pItemWin->GetType();
+                        if ( nType == WINDOW_LISTBOX || nType == WINDOW_MULTILISTBOX || nType == WINDOW_COMBOBOX )
+                            pItemWin->SetAccessibleName( m_pToolBar->GetItemText( nId ) );
+				        m_pToolBar->SetItemWindow( nId, pItemWin );
+                    }
+                }
+            }
+=====================================================================
+Found a 15 line (112 tokens) duplication in the following files: 
+Starting at line 1495 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 1581 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+
+                                            strncat( mystr, Language_codes[k].pCountry, 2);
+                                        }
+
+                                        aXMLFile.write( ValueNodeStart, strlen( ValueNodeStart ), nWritten );
+                                        aXMLFile.write( mystr, strlen( mystr ), nWritten );
+                                        aXMLFile.write( ValueNodeMid, strlen( ValueNodeMid ), nWritten );
+                                        aXMLFile.write( aLabel.getStr(), aLabel.getLength(), nWritten );
+                                        aXMLFile.write( ValueNodeEnd, strlen( ValueNodeEnd ), nWritten );
+                                    }
+                                }
+
+                                if ( !bLabels )
+                                    aXMLFile.write( ValueNodeEmpty, strlen( ValueNodeEmpty ), nWritten );
+
+                                aXMLFile.write( PropNodeEnd, strlen( PropNodeEnd ), nWritten );
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/FPentry.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/FPentry.cxx
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::registry;
+using namespace ::cppu;
+using ::com::sun::star::ui::dialogs::XFilePicker;
+using ::com::sun::star::ui::dialogs::XFolderPicker;
+
+//------------------------------------------------
+// 
+//------------------------------------------------
+
+static Reference< XInterface > SAL_CALL createFileInstance( 
+	const Reference< XMultiServiceFactory >& rServiceManager )
+{
+	return Reference< XInterface >( 
+		static_cast< XFilePicker* >( 
+			new SalGtkFilePicker( rServiceManager ) ) );
+=====================================================================
+Found a 31 line (112 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cppToUno/testcppuno.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/unoTocomCalls/Test/Test.cpp
+
+int main(int argc, char* argv[])
+{
+	HRESULT hr;
+	if( FAILED( hr=CoInitialize(NULL)))
+	{
+		_tprintf(_T("CoInitialize failed \n"));
+		return -1;
+	}
+
+	
+	_Module.Init( ObjectMap, GetModuleHandle( NULL));
+
+	if( FAILED(hr=doTest()))
+	{
+		_com_error err( hr);
+		const TCHAR * errMsg= err.ErrorMessage();
+		MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+	}
+
+
+	_Module.Term();
+	CoUninitialize();
+
+	
+	return 0;
+}
+
+
+HRESULT doTest()
+{
+	HRESULT hr= S_OK;
+=====================================================================
+Found a 28 line (112 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/OleConverterVar1/convTest.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cppToUno/testcppuno.cxx
+
+																   sal_Int32 * parMultidimensionalIndex);
+
+
+
+int __cdecl _tmain( int argc, _TCHAR * argv[] )
+{
+	HRESULT hr;
+	if( FAILED( hr=CoInitialize(NULL)))
+	{
+		_tprintf(_T("CoInitialize failed \n"));
+		return -1;
+	}
+
+	
+	_Module.Init( ObjectMap, GetModuleHandle( NULL));
+
+	if( FAILED(hr=doTest()))
+	{
+		_com_error err( hr);
+		const TCHAR * errMsg= err.ErrorMessage();
+		MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+	}
+
+
+	_Module.Term();
+	CoUninitialize();
+	return 0;
+}
+=====================================================================
+Found a 39 line (112 tokens) duplication in the following files: 
+Starting at line 1157 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/feed/updatefeed.cxx
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/ui/updatecheckui.cxx
+
+        getServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+	{ NULL, NULL, NULL, NULL, NULL, 0 }
+} ;
+
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL
+component_getImplementationEnvironment( const sal_Char **aEnvTypeName, uno_Environment **)
+{
+    *aEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL
+component_writeInfo(void *pServiceManager, void *pRegistryKey)
+{
+    return cppu::component_writeInfoHelper(
+        pServiceManager,
+        pRegistryKey,
+        kImplementations_entries
+    );
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" void *
+component_getFactory(const sal_Char *pszImplementationName, void *pServiceManager, void *pRegistryKey)
+{
+    return cppu::component_getFactoryHelper(
+        pszImplementationName,
+        pServiceManager,
+        pRegistryKey,
+        kImplementations_entries) ;
+}
+=====================================================================
+Found a 15 line (112 tokens) duplication in the following files: 
+Starting at line 1083 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/feed/updatefeed.cxx
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+                    aRec(xContainer->find(rRequest.ServerName, this));
+                if (aRec.UserList.getLength() != 0)
+                {
+                    if (xSupplyAuthentication->canSetUserName())
+                        xSupplyAuthentication->
+                            setUserName(aRec.UserList[0].UserName.getStr());
+                    if (xSupplyAuthentication->canSetPassword())
+                    {
+                        OSL_ENSURE(aRec.UserList[0].Passwords.getLength() != 0,
+                                   "empty password list");
+                        xSupplyAuthentication->
+                            setPassword(aRec.UserList[0].Passwords[0].getStr());
+                    }
+                    if (aRec.UserList[0].Passwords.getLength() > 1)
+                        if (rRequest.HasRealm)
+=====================================================================
+Found a 39 line (112 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatecheckjob.cxx
+Starting at line 1034 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/ui/updatecheckui.cxx
+
+        getServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+	{ NULL, NULL, NULL, NULL, NULL, 0 }
+} ;
+
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL
+component_getImplementationEnvironment( const sal_Char **aEnvTypeName, uno_Environment **)
+{
+    *aEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL
+component_writeInfo(void *pServiceManager, void *pRegistryKey)
+{
+    return cppu::component_writeInfoHelper(
+        pServiceManager,
+        pRegistryKey,
+        kImplementations_entries
+    );
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" void *
+component_getFactory(const sal_Char *pszImplementationName, void *pServiceManager, void *pRegistryKey)
+{
+    return cppu::component_getFactoryHelper(
+        pszImplementationName,
+        pServiceManager,
+        pRegistryKey,
+        kImplementations_entries) ;
+}
+=====================================================================
+Found a 5 line (112 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 6 line (112 tokens) duplication in the following files: 
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/documentdefinition.cxx
+Starting at line 156 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoole2.cxx
+
+	Fraction GetScaleHeight() { return m_aScaleHeight; }
+
+	// XStateChangeListener
+    virtual void SAL_CALL changingState( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::embed::WrongStateException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL stateChanged( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 22 line (112 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/loader/loader.test.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/loader/loader.test.cxx
+
+			uno::Reference<registry::XRegistryKey>(new MyKey)
+			);
+
+		rtl::OUString envDcp_purpose(cppu::EnvDcp::getPurpose(g_envDcp));
+		if (envDcp_purpose == servicePurpose)
+			result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("passed\n"));
+
+		else 
+		{
+			result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED - got: \""));
+			result += envDcp_purpose;
+			result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+		}
+	}
+	catch(uno::Exception & exception) {
+		result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED - got: \""));
+		result += exception.Message;
+		result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
+	}
+
+	return result;
+}
+=====================================================================
+Found a 17 line (112 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/uno/lbenv.cxx
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/uno/lbenv.cxx
+
+    OSL_ENSURE( pEnv && ppInterface && pOId && pTypeDescr && freeProxy,
+                "### null ptr!" );
+    OUString const & rOId = OUString::unacquired( &pOId );
+    
+    uno_DefaultEnvironment * that =
+        static_cast< uno_DefaultEnvironment * >( pEnv );
+    ::osl::ClearableMutexGuard guard( that->mutex );
+    
+    // try to insert dummy 0:
+    std::pair<OId2ObjectMap::iterator, bool> const insertion(
+        that->aOId2ObjectMap.insert( OId2ObjectMap::value_type( rOId, 0 ) ) );
+    if (insertion.second)
+    {
+        ObjectEntry * pOEntry = new ObjectEntry( rOId );
+        insertion.first->second = pOEntry;
+        ++pOEntry->nRef; // another register call on object
+        pOEntry->append( that, *ppInterface, pTypeDescr, freeProxy );
+=====================================================================
+Found a 15 line (112 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 1955 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("Struct2b", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+}
+
+void Test::testPoly() {
+=====================================================================
+Found a 18 line (112 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/polypolyaction.cxx
+Starting at line 274 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/polypolyaction.cxx
+
+                                        const rendering::Texture& 	rTexture ); 
+
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation,
+                                     const Subset&					rSubset ) const;
+
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix&	rTransformation,
+                                                       const Subset&					rSubset ) const;
+
+                virtual sal_Int32 getActionCount() const;
+
+            private:
+                using Action::render;
+                virtual bool render( uno::Reference< rendering::XCachedPrimitive >& rCachedPrimitive,
+                                     const ::basegfx::B2DHomMatrix&                 rTransformation ) const;
+
+                const uno::Reference< rendering::XPolyPolygon2D >	mxPolyPoly;
+                const ::Rectangle									maBounds;
+=====================================================================
+Found a 18 line (112 tokens) duplication in the following files: 
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTables.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTables.cxx
+
+		if(bIsView) // here we have a view
+			aSql += ::rtl::OUString::createFromAscii("VIEW ");
+		else
+			aSql += ::rtl::OUString::createFromAscii("TABLE ");
+
+		::rtl::OUString sComposedName(
+		    ::dbtools::composeTableName( m_xMetaData, sCatalog, sSchema, sTable, sal_True, ::dbtools::eInDataManipulation ) );
+		aSql += sComposedName;
+		Reference< XStatement > xStmt = xConnection->createStatement(  );
+		if ( xStmt.is() )
+		{
+			xStmt->execute(aSql);
+			::comphelper::disposeComponent(xStmt);
+		}
+		// if no exception was thrown we must delete it from the views
+		if ( bIsView )
+		{
+			OViews* pViews = static_cast<OViews*>(static_cast<OMySQLCatalog&>(m_rParent).getPrivateViews());
+=====================================================================
+Found a 12 line (112 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+Starting at line 956 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::CHAR));
+		aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
+		aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
+
+		aRows.push_back(aRow);
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunooptions.cxx
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/rdbmaker/source/rdbmaker/rdboptions.cxx
+
+					if (av[i][2] == '\0')
+					{
+						if (i < ac - 1 && av[i+1][0] != '-')
+						{
+							i++;
+							s = av[i];
+						} else
+						{
+							OString tmp("'-O', please check");
+							if (i <= ac - 1)
+							{
+								tmp += " your input '" + OString(av[i+1]) + "'";
+							}
+							
+							throw IllegalArgument(tmp);
+						}
+					} else
+					{
+						s = av[i] + 2;
+					}
+					
+					m_options["-O"] = OString(s);
+					break;
+				case 'X':
+=====================================================================
+Found a 7 line (112 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx
+Starting at line 234 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx
+
+    virtual ~WrappedUpDownProperty();
+
+    ::com::sun::star::uno::Any getPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                            throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+    uno::Reference< chart2::XChartTypeTemplate > getNewTemplate( sal_Bool bNewValue, const rtl::OUString& rCurrentTemplate, const Reference< lang::XMultiServiceFactory >& xFactory ) const;
+};
+=====================================================================
+Found a 22 line (112 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/WrappedPropertySet.cxx
+
+void SAL_CALL WrappedPropertySet::setPropertyValues( const Sequence< OUString >& rNameSeq, const Sequence< Any >& rValueSeq )
+                                    throw (beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+    bool bUnknownProperty = false;
+    sal_Int32 nMinCount = std::min( rValueSeq.getLength(), rNameSeq.getLength() );
+    for(sal_Int32 nN=0; nN<nMinCount; nN++)
+    {
+        ::rtl::OUString aPropertyName( rNameSeq[nN] );
+        try
+        {
+            this->setPropertyValue( aPropertyName, rValueSeq[nN] );
+        }
+        catch( beans::UnknownPropertyException& ex )
+        {
+            ASSERT_EXCEPTION( ex );
+            bUnknownProperty = true;
+        }
+    }
+    //todo: store unknown properties elsewhere
+//    if( bUnknownProperty )
+//        throw beans::UnknownPropertyException();
+}
+=====================================================================
+Found a 19 line (112 tokens) duplication in the following files: 
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+	void ** pCppArgs  = (void **)malloc( 3 * sizeof(void *) * nParams );
+#else
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+#endif
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 33 line (112 tokens) duplication in the following files: 
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+        nFunctionIndex, nVtableOffset, pCallStack, (sal_Int64*)nRegReturn );
+    
+	switch( aType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			__asm__( "movl %1, %%edx\n\t"
+					 "movl %0, %%eax\n"
+					 : : "m"(nRegReturn[0]), "m"(nRegReturn[1]) );
+			break;
+		case typelib_TypeClass_FLOAT:
+			__asm__( "flds %0\n\t"
+					 "fstp %%st(0)\n\t"
+					 "flds %0\n"
+					 : : "m"(*(float *)nRegReturn) );
+			break;
+		case typelib_TypeClass_DOUBLE:
+			__asm__( "fldl %0\n\t"
+					 "fstp %%st(0)\n\t"
+					 "fldl %0\n"
+					 : : "m"(*(double *)nRegReturn) );
+			break;
+// 		case typelib_TypeClass_UNSIGNED_SHORT:
+// 		case typelib_TypeClass_SHORT:
+// 			__asm__( "movswl %0, %%eax\n"
+// 					 : : "m"(nRegReturn) );
+// 		break;
+		default:
+			__asm__( "movl %0, %%eax\n"
+					 : : "m"(nRegReturn[0]) );
+			break;
+	}
+}
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+	
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+=====================================================================
+Found a 17 line (112 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+	
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+=====================================================================
+Found a 18 line (112 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+
+	INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+	// Args
+	void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// Indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// Type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+	
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+=====================================================================
+Found a 32 line (112 tokens) duplication in the following files: 
+Starting at line 394 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+                            *pPT++ = 'C';
+                            break;
+		          case typelib_TypeClass_FLOAT:
+                            *pPT++ = 'F';
+			    break;
+		        case typelib_TypeClass_DOUBLE:
+			    *pPT++ = 'D';
+			    pCppStack += sizeof(sal_Int32); // extra long
+			    break;
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			    *pPT++ = 'H';
+			    pCppStack += sizeof(sal_Int32); // extra long
+			}
+
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			if (! rParam.bIn) // is pure out
+			{
+				// cpp out is constructed mem, uno out is not!
+				uno_constructData(
+					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+					pParamTypeDescr );
+				pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (cppu_relatesToInterface( pParamTypeDescr ))
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+=====================================================================
+Found a 17 line (112 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 24 line (112 tokens) duplication in the following files: 
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 244 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+
+	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+
+	// destruct uno exception
+	::uno_any_destruct( pUnoExc, 0 );
+    // avoiding locked counts
+    static RTTI * s_rtti = 0;
+    if (! s_rtti)
+    {
+        MutexGuard guard( Mutex::getGlobalMutex() );
+        if (! s_rtti)
+        {
+#ifdef LEAK_STATIC_DATA
+            s_rtti = new RTTI();
+#else
+            static RTTI rtti_data;
+            s_rtti = &rtti_data;
+#endif
+        }
+    }
+	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    TYPELIB_DANGER_RELEASE( pTypeDescr );
+    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+    if (! rtti)
+=====================================================================
+Found a 17 line (112 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 23 line (112 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxlng.cxx
+
+void ImpPutLong( SbxValues* p, INT32 n )
+{
+	SbxValues aTmp;
+
+start:
+	switch( p->eType )
+	{
+		// Ab hier muss getestet werden
+		case SbxCHAR:
+			aTmp.pChar = &p->nChar; goto direct;
+		case SbxBYTE:
+			aTmp.pByte = &p->nByte; goto direct;
+		case SbxINTEGER:
+		case SbxBOOL:
+			aTmp.pInteger = &p->nInteger; goto direct;
+		case SbxULONG64:
+			aTmp.pULong64 = &p->nULong64; goto direct;
+		case SbxLONG64:
+		case SbxCURRENCY:
+			aTmp.pLong64 = &p->nLong64; goto direct;
+		case SbxULONG:
+			aTmp.pULong = &p->nULong; goto direct;
+		case SbxSALUINT64:
+=====================================================================
+Found a 12 line (112 tokens) duplication in the following files: 
+Starting at line 1381 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+Starting at line 1409 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+
+    for( i=0; i<sizeof(someCurves)/sizeof(Bezier); ++i )
+    {
+        Polygon2D aTestPoly(4);
+        aTestPoly[0] = someCurves[i].p0;
+        aTestPoly[1] = someCurves[i].p1;
+        aTestPoly[2] = someCurves[i].p2;
+        aTestPoly[3] = someCurves[i].p3;
+        
+        aTestPoly[0].x += convHull_xOffset;
+        aTestPoly[1].x += convHull_xOffset;
+        aTestPoly[2].x += convHull_xOffset;
+        aTestPoly[3].x += convHull_xOffset;
+=====================================================================
+Found a 35 line (111 tokens) duplication in the following files: 
+Starting at line 16429 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 16957 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+               ( new OOXMLContext_math_CT_SPrePr(*this));
+         }
+             break;
+     case OOXML_ELEMENT_math_sub:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_math_CT_OMathArg(*this));
+         }
+             break;
+     case OOXML_ELEMENT_math_sup:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_math_CT_OMathArg(*this));
+         }
+             break;
+     case OOXML_ELEMENT_math_e:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_math_CT_OMathArg(*this));
+         }
+             break;
+     case OOXML_TOKENS_END:
+         break;
+     default:
+         pResult = elementFromRefs(nToken);
+              break;
+     }
+
+    if (pResult.get() != NULL)
+        pResult->setToken(nToken);
+
+    return pResult;
+}
+     
+bool OOXMLContext_math_CT_SPre::lcl_attribute(TokenEnum_t /*nToken*/, const rtl::OUString & /*rValue*/)
+=====================================================================
+Found a 13 line (111 tokens) duplication in the following files: 
+Starting at line 2519 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 2825 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xfc,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x2c ','
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,0x00,
+
+        7, // 0x2d '-'
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x2e '.'
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+        7, // 0x2f '/'
+        0x00,0x00,0x0c,0x0c,0x18,0x18,0x30,0x30,0x60,0x60,0xc0,0xc0,0x00,0x00,0x00,
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            calc_type fg[4];
+=====================================================================
+Found a 6 line (111 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 553 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+=====================================================================
+Found a 12 line (111 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/pspgraphics.h
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salgdi.h
+
+                                        const SalBitmap& rMaskBitmap );
+    virtual void			drawMask( const SalTwoRect* pPosAry,
+                                      const SalBitmap& rSalBitmap,
+                                      SalColor nMaskColor );
+    virtual SalBitmap*		getBitmap( long nX, long nY, long nWidth, long nHeight );
+    virtual SalColor		getPixel( long nX, long nY );
+    virtual void			invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags );
+    virtual void			invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+
+    virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+
+    virtual bool 			drawAlphaBitmap( const SalTwoRect&,
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/characterdata.cxx
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/characterdata.cxx
+
+    void SAL_CALL CCharacterData::replaceData(sal_Int32 offset, sal_Int32 count, const OUString& arg)
+        throw (DOMException)
+    {
+        if (m_aNodePtr != NULL)
+        {
+            // get current data
+            OString aData((const sal_Char*)xmlNodeGetContent(m_aNodePtr));
+            OUString tmp(aData, aData.getLength(), RTL_TEXTENCODING_UTF8);
+            if (offset > tmp.getLength() || offset < 0 || count < 0){
+                DOMException e;
+                e.Code = DOMExceptionType_INDEX_SIZE_ERR;
+                throw e;
+            } 
+            if ((offset+count) > tmp.getLength())
+                count = tmp.getLength() - offset;
+
+            OUString tmp2 = tmp.copy(0, offset);
+            tmp2 += arg;
+=====================================================================
+Found a 35 line (111 tokens) duplication in the following files: 
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/filinpstr.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/inputstream.cxx
+
+										  SAL_STATIC_CAST( io::XInputStream*,this ),
+										  SAL_STATIC_CAST( io::XSeekable*,this ) );
+	return aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType );
+}
+
+
+void SAL_CALL
+XInputStream_impl::acquire(
+	void )
+	throw()
+{
+	OWeakObject::acquire();
+}
+
+
+void SAL_CALL
+XInputStream_impl::release(
+	void )
+	throw()
+{
+	OWeakObject::release();
+}
+
+
+
+sal_Int32 SAL_CALL
+XInputStream_impl::readBytes(
+			     uno::Sequence< sal_Int8 >& aData,
+			     sal_Int32 nBytesToRead )
+	throw( io::NotConnectedException,
+		   io::BufferSizeExceededException,
+		   io::IOException,
+		   uno::RuntimeException)
+{
+	if( ! m_bIsOpen )
+=====================================================================
+Found a 21 line (111 tokens) duplication in the following files: 
+Starting at line 913 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 983 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+			case INET_PROT_VND_SUN_STAR_PKG:
+			{
+				if (pEnd - pPos < 2 || *pPos++ != '/' || *pPos++ != '/')
+				{
+					setInvalid();
+					return false;
+				}
+                aSynAbsURIRef.appendAscii(RTL_CONSTASCII_STRINGPARAM("//"));
+				rtl::OUStringBuffer aSynAuthority;
+				while (pPos < pEnd
+					   && *pPos != '/' && *pPos != '?'
+					   && *pPos != nFragmentDelimiter)
+				{
+					EscapeType eEscapeType;
+					sal_uInt32 nUTF32 = getUTF32(pPos, pEnd, bOctets,
+												 cEscapePrefix, eMechanism,
+												 eCharset, eEscapeType);
+					appendUCS4(aSynAuthority, nUTF32, eEscapeType, bOctets,
+							   PART_AUTHORITY, cEscapePrefix, eCharset,
+							   false);
+				}
+=====================================================================
+Found a 14 line (111 tokens) duplication in the following files: 
+Starting at line 665 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/view/scrrect.cxx
+Starting at line 925 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/view/scrrect.cxx
+
+                        for( USHORT nI = pStripes->Count(); nI; )
+						{
+                            if( pScroll->IsVertical() )
+                            {
+                                long nWidth = (*pStripes)[--nI].GetHeight();
+                                aRect.Left( (*pStripes)[nI].GetY() -nWidth +1 );
+                                aRect.Width( nWidth );
+                            }
+                            else
+                            {
+                                aRect.Top( (*pStripes)[--nI].GetY() );
+                                aRect.Height( (*pStripes)[nI].GetHeight() );
+                            }
+							if( rRect.IsOver( aRect ) )
+=====================================================================
+Found a 22 line (111 tokens) duplication in the following files: 
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoobj.cxx
+Starting at line 2003 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+            rValue >>= uDescName;
+            String sDescName;
+			SwStyleNameMapper::FillUIName(uDescName, sDescName, GET_POOLID_PAGEDESC, sal_True );
+            if(!pNewDesc->GetPageDesc() || pNewDesc->GetPageDesc()->GetName() != sDescName)
+            {
+                sal_uInt16 nCount = pDoc->GetPageDescCnt();
+                sal_Bool bPut = sal_False;
+                if(sDescName.Len())
+                {
+                    SwPageDesc* pPageDesc = ::GetPageDescByName_Impl(*pDoc, sDescName);
+                    if(pPageDesc)
+                    {
+                        pPageDesc->Add( pNewDesc );
+                        bPut = sal_True;
+                    }
+                    else
+                    {
+                        throw lang::IllegalArgumentException();
+                    }
+                }
+                if(!bPut)
+                {
+=====================================================================
+Found a 16 line (111 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/fields/fldlst.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/fields/fldlst.cxx
+
+		if( RES_SETEXPFLD == nType || RES_INPUTFLD == nType )
+		{
+			SwClientIter aIter( *pFldType );
+			for( SwFmtFld* pFld = (SwFmtFld*)aIter.First( TYPE(SwFmtFld) );
+					pFld; pFld = (SwFmtFld*)aIter.Next() )
+			{
+				const SwTxtFld* pTxtFld = pFld->GetTxtFld();
+
+				//	nur InputFields und interaktive SetExpFlds bearbeiten
+				if( !pTxtFld || ( RES_SETEXPFLD == nType &&
+					!((SwSetExpField*)pFld->GetFld())->GetInputFlag()))
+					continue;
+
+				const SwTxtNode& rTxtNode = pTxtFld->GetTxtNode();
+				if( rTxtNode.GetNodes().IsDocNodes() )
+				{
+=====================================================================
+Found a 17 line (111 tokens) duplication in the following files: 
+Starting at line 2154 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+Starting at line 2210 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/docnode/ndtbl.cxx
+
+			if( bNewTxtNd )
+			{
+				const SwNodeIndex aTmpIdx( *pTblNd->EndOfSectionNode(), 1 );
+				GetNodes().MakeTxtNode( aTmpIdx,
+							GetTxtCollFromPool( RES_POOLCOLL_STANDARD ) );
+			}
+
+            // save the cursors (UNO and otherwise)
+            SwPaM aSavePaM( SwNodeIndex( *pTblNd->EndOfSectionNode() ) );
+            if( ! aSavePaM.Move( fnMoveForward, fnGoNode ) )
+            {
+                *aSavePaM.GetMark() = SwPosition( *pTblNd );
+                aSavePaM.Move( fnMoveBackward, fnGoNode );
+            }
+            ::PaMCorrAbs( SwNodeIndex( *pTblNd ),
+                          SwNodeIndex( *pTblNd->EndOfSectionNode() ),
+                          *aSavePaM.GetMark() );
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 434 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+Starting at line 480 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtrans.cxx
+
+void CrookStretchPoly(XPolygon& rPoly, const Point& rCenter, const Point& rRad, FASTBOOL bVert, const Rectangle rRefRect)
+{
+	double nSin,nCos;
+	USHORT nPointAnz=rPoly.GetPointCount();
+	USHORT i=0;
+	while (i<nPointAnz) {
+		Point* pPnt=&rPoly[i];
+		Point* pC1=NULL;
+		Point* pC2=NULL;
+		if (i+1<nPointAnz && rPoly.IsControl(i)) { // Kontrollpunkt links
+			pC1=pPnt;
+			i++;
+			pPnt=&rPoly[i];
+		}
+		i++;
+		if (i<nPointAnz && rPoly.IsControl(i)) { // Kontrollpunkt rechts
+			pC2=&rPoly[i];
+			i++;
+		}
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 2239 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2910 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+	*rContents << sal_uInt8(0x00);
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("BackgroundColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnBackColor;
+	*rContents << ExportColor(mnBackColor);
+	pBlockFlags[0] |= 0x02;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("TextColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnForeColor;
+	*rContents << ExportColor(mnForeColor);
+	pBlockFlags[0] |= 0x04;
+
+    aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Border"));
+    sal_Int16 nBorder = sal_Int16();
+    aTmp >>= nBorder;
+    nSpecialEffect = ExportBorder(nBorder,nBorderStyle);
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 2874 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmshimp.cxx
+Starting at line 2941 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmshimp.cxx
+
+	m_bFilterMode = sal_False;
+
+	FmXFormView* pXView = m_pShell->GetFormView()->GetImpl();
+
+	// if the active controller is our external one we have to use the trigger controller
+	Reference< XControlContainer> xContainer;
+	if (getActiveController() == m_xExternalViewController)
+	{
+		DBG_ASSERT(m_xExtViewTriggerController.is(), "FmXFormShell::startFiltering : inconsistent : active external controller, but noone triggered this !");
+		xContainer = m_xExtViewTriggerController->getContainer();
+	}
+	else
+		xContainer = getActiveController()->getContainer();
+
+	FmWinRecList::iterator i = pXView->findWindow(xContainer);
+	if (i != pXView->getWindowList().end())
+	{
+		const ::std::vector< Reference< XFormController> >& rControllerList = (*i)->GetList();
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 1527 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmctrler.cxx
+Starting at line 1555 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmctrler.cxx
+
+    OSL_ENSURE( xControl.is(), "FmXFormController::removeFromEventAttacher: invalid control - how did you reach this?" );
+    if ( !xControl.is() )
+        return; /* throw IllegalArgumentException(); */
+
+    // abmelden beim Eventattacher
+    Reference< XFormComponent >  xComp(xControl->getModel(), UNO_QUERY);
+    if ( xComp.is() && m_xModelAsIndex.is() )
+    {
+        // Und die Position des ControlModel darin suchen
+        sal_uInt32 nPos = m_xModelAsIndex->getCount();
+        Reference< XFormComponent > xTemp;
+        for( ; nPos; )
+        {
+            m_xModelAsIndex->getByIndex(--nPos) >>= xTemp;
+            if ((XFormComponent*)xComp.get() == (XFormComponent*)xTemp.get())
+            {
+                Reference< XInterface >  xIfc(xControl, UNO_QUERY);
+                m_xModelAsManager->detach( nPos, xIfc );
+=====================================================================
+Found a 28 line (111 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgfact.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dialog/swdlgfact.cxx
+
+void AbstractTabDialog_Impl::SetCurPageId( USHORT nId )
+{
+	pDlg->SetCurPageId( nId );
+}
+
+const SfxItemSet* AbstractTabDialog_Impl::GetOutputItemSet() const
+{
+	return pDlg->GetOutputItemSet();
+}
+//add by CHINA001
+const USHORT* AbstractTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
+{
+	return pDlg->GetInputRanges( pItem );
+}
+//add by CHINA001
+void AbstractTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
+{
+	 pDlg->SetInputSet( pInSet );
+}
+//From class Window.
+void AbstractTabDialog_Impl::SetText( const XubString& rStr )
+{
+	pDlg->SetText( rStr );
+}
+String AbstractTabDialog_Impl::GetText() const
+{
+	return pDlg->GetText();
+}
+=====================================================================
+Found a 15 line (111 tokens) duplication in the following files: 
+Starting at line 835 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 771 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptLeftRightArrowVert[] =	// adjustment1: x 0 - 10800
+{															// adjustment2: y 0 - 10800
+	{ 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I },	{ 2 MSO_I, 1 MSO_I },
+	{ 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I },
+	{ 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 }
+};
+static const sal_uInt16 mso_sptLeftRightArrowSegm[] =
+{
+	0x4000, 0x0009, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] =
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 10 line (111 tokens) duplication in the following files: 
+Starting at line 667 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+Starting at line 682 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+
+					if ( ( *aIter > fDistance ) && ( *aIter < fLastDistance ) )
+					{
+						Point& rPt0 = rPoly[ i - 1 ];
+						sal_Int32 fX = rPoint.X() - rPt0.X();
+						sal_Int32 fY = rPoint.Y() - rPt0.Y();
+						double fd = ( 1.0 / ( fDistance - fLastDistance ) ) * ( *aIter - fLastDistance );
+						rPoly.Insert( i, Point( (sal_Int32)( rPt0.X() + fX * fd ), (sal_Int32)( rPt0.Y() + fY * fd ) ) );
+						fDistance = *aIter;
+					}
+				}
+=====================================================================
+Found a 20 line (111 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+void StatusbarController::bindListener()
+{
+    std::vector< Listener > aDispatchVector;
+    Reference< XStatusListener > xStatusListener;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        if ( !m_bInitialized )
+            return;
+
+        // Collect all registered command URL's and store them temporary
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+        if ( m_xServiceManager.is() && xDispatchProvider.is() )
+        {
+            xStatusListener = Reference< XStatusListener >( static_cast< OWeakObject* >( this ), UNO_QUERY );
+            URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+            while ( pIter != m_aListenerMap.end() )
+            {
+                Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 545 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/svhtml/htmlout.cxx
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/svrtf/rtfout.cxx
+
+SvStream& RTFOutFuncs::Out_Hex( SvStream& rStream, ULONG nHex, BYTE nLen )
+{
+	sal_Char aNToABuf[] = "0000000000000000";
+
+	DBG_ASSERT( nLen < sizeof(aNToABuf), "zu viele Stellen" );
+	if( nLen >= sizeof(aNToABuf) )
+		nLen = (sizeof(aNToABuf)-1);
+
+	// Pointer an das Bufferende setzen
+	sal_Char* pStr = aNToABuf + (sizeof(aNToABuf)-1);
+	for( BYTE n = 0; n < nLen; ++n )
+	{
+		*(--pStr) = (sal_Char)(nHex & 0xf ) + 48;
+		if( *pStr > '9' )
+			*pStr += 39;
+		nHex >>= 4;
+	}
+	return rStream << pStr;
+}
+=====================================================================
+Found a 22 line (111 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items/macitem.cxx
+Starting at line 299 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/fmtatr2.cxx
+
+	const SvxMacroTableDtor& rOther = *pOther;
+
+	// Anzahl unterschiedlich => auf jeden Fall ungleich
+	if( rOwn.Count() != rOther.Count() )
+		return FALSE;
+
+	// einzeln vergleichen; wegen Performance ist die Reihenfolge wichtig
+	for( USHORT nNo = 0; nNo < rOwn.Count(); ++nNo )
+	{
+		const SvxMacro *pOwnMac = rOwn.GetObject(nNo);
+		const SvxMacro *pOtherMac = rOther.GetObject(nNo);
+		if ( 	rOwn.GetKey(pOwnMac) != rOther.GetKey(pOtherMac)  ||
+				pOwnMac->GetLibName() != pOtherMac->GetLibName() ||
+				pOwnMac->GetMacName() != pOtherMac->GetMacName() )
+			return FALSE;
+	}
+	return TRUE;
+}
+
+
+
+SfxPoolItem* SwFmtINetFmt::Clone( SfxItemPool* ) const
+=====================================================================
+Found a 10 line (111 tokens) duplication in the following files: 
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/shlxthandler/propsheets/document_statistic.cxx
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/win32/shlxthandler/propsheets/document_statistic.cxx
+
+void calc_document_statistic_reader::fill_description_section(
+    CMetaInfoReader *meta_info_accessor,statistic_group_list_t* group_list)
+{
+    statistic_item_list_t il;
+    
+    il.push_back(statistic_item(GetResString(IDS_TITLE),       meta_info_accessor->getTagData( META_INFO_TITLE ),       READONLY));
+    il.push_back(statistic_item(GetResString(IDS_COMMENTS),    meta_info_accessor->getTagData( META_INFO_DESCRIPTION ), READONLY));
+    il.push_back(statistic_item(GetResString(IDS_SUBJECT),     meta_info_accessor->getTagData( META_INFO_SUBJECT ),     READONLY));
+    il.push_back(statistic_item(GetResString(IDS_KEYWORDS),    meta_info_accessor->getTagData(META_INFO_KEYWORDS ),    READONLY));    
+    il.push_back(statistic_item(GetResString(IDS_TABLES),      meta_info_accessor->getTagAttribute( META_INFO_DOCUMENT_STATISTIC,META_INFO_TABLES) ,  READONLY));
+=====================================================================
+Found a 27 line (111 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/gconfbe/gconfbecdef.cxx
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/kdebe/kdebecdef.cxx
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/localebe/localebecdef.cxx
+
+        LocaleBackend::getBackendServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+    { NULL, NULL, NULL, NULL, NULL, 0 }
+} ;
+
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    const sal_Char **aEnvTypeName, uno_Environment ** /*aEnvironment*/) {
+    
+    *aEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(void * /*pServiceManager*/, void *pRegistryKey) {
+    
+    using namespace ::com::sun::star::registry;
+    if (pRegistryKey)
+    {
+        try
+        {
+            uno::Reference< XRegistryKey > xImplKey = static_cast< XRegistryKey* >( pRegistryKey )->createKey(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + LocaleBackend::getBackendName()
+=====================================================================
+Found a 10 line (111 tokens) duplication in the following files: 
+Starting at line 1453 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+Starting at line 942 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/selector.cxx
+
+									SVX_CFGFUNCTION_SCRIPT, 123, aInfo );
+
+							Image aImage = GetImage( children[n], Reference< XComponentContext >(), sal_False, BMP_COLOR_NORMAL );
+							SvLBoxEntry* pNewEntry =
+								pFunctionListBox->InsertEntry( children[n]->getName(), NULL );
+							pFunctionListBox->SetExpandedEntryBmp(pNewEntry, aImage, BMP_COLOR_NORMAL);
+							pFunctionListBox->SetCollapsedEntryBmp(pNewEntry, aImage, BMP_COLOR_NORMAL);
+							aImage = GetImage( children[n], Reference< XComponentContext >(), sal_False, BMP_COLOR_HIGHCONTRAST );
+							pFunctionListBox->SetExpandedEntryBmp(pNewEntry, aImage, BMP_COLOR_HIGHCONTRAST);
+							pFunctionListBox->SetCollapsedEntryBmp(pNewEntry, aImage, BMP_COLOR_HIGHCONTRAST);
+=====================================================================
+Found a 13 line (111 tokens) duplication in the following files: 
+Starting at line 1834 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appuno.cxx
+Starting at line 765 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/control/macrconf.cxx
+
+				SbxVariable *pCompVar = pAppMgr->GetLib(0)->Find( DEFINE_CONST_UNICODE("ThisComponent"), SbxCLASS_PROPERTY );
+                ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >  xInterface ( pSh->GetModel() , ::com::sun::star::uno::UNO_QUERY );
+                ::com::sun::star::uno::Any aAny;
+                aAny <<= xInterface;
+				if ( pCompVar )
+				{
+                    xOldVar = pCompVar->GetObject();
+					pCompVar->PutObject( GetSbUnoObject( DEFINE_CONST_UNICODE("ThisComponent"), aAny ) );
+				}
+                else
+                {
+                    SbxObjectRef xUnoObj = GetSbUnoObject( DEFINE_CONST_UNICODE("ThisComponent"), aAny );
+                    xUnoObj->SetFlag( SBX_DONTSTORE );
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview2.cxx
+Starting at line 265 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/sdview2.cxx
+
+	if( GetMarkedObjectCount() == 1 )
+	{
+		SdrObject* pObj = GetMarkedObjectByIndex( 0 );
+
+        if( pObj && pObj->ISA( SdrOle2Obj ) && ( (SdrOle2Obj*) pObj )->GetObjRef().is() )
+		{
+			// If object has no persistence it must be copied as part of the document
+			try
+			{
+				uno::Reference< embed::XEmbedPersist > xPersObj( ((SdrOle2Obj*)pObj)->GetObjRef(), uno::UNO_QUERY );
+				if ( xPersObj.is() && xPersObj->hasEntry() )
+	 				pSdrOleObj = (SdrOle2Obj*) pObj;
+			}
+			catch( uno::Exception& )
+			{}
+		}
+	}
+
+	if( mpDocSh )
+=====================================================================
+Found a 13 line (111 tokens) duplication in the following files: 
+Starting at line 2566 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/pptin.cxx
+Starting at line 2596 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/pptin.cxx
+
+											if (Abs(aLogicRect.Right()	- aOutlineRect.Right())  > MAX_USER_MOVE ||
+												Abs(aLogicRect.Top()	- aOutlineRect.Top())	 > MAX_USER_MOVE ||
+												Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
+													aLogicSize.Width()	/ aOutlineSize.Width()	 < 0.48 		 ||
+													aLogicSize.Width()	/ aOutlineSize.Width()	 > 0.5)
+											{
+												pPresObj->SetUserCall( NULL );
+											}
+										}
+										else if ( pSlideLayout->eLayout == PPT_LAYOUT_2ROWSANDTITLE )
+										{	// Lage im Outlinebereich unten
+											if (Abs(aLogicRect.Left()	- aOutlineRect.Left())	 > MAX_USER_MOVE ||
+												Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
+=====================================================================
+Found a 32 line (111 tokens) duplication in the following files: 
+Starting at line 605 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/tabvwsh4.cxx
+Starting at line 640 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/tabvwsh4.cxx
+
+	GetViewData()->ReadUserData(rData);
+	SetTabNo( GetViewData()->GetTabNo(), TRUE );
+
+	if ( GetViewData()->IsPagebreakMode() )
+		SetCurSubShell( GetCurObjectSelectionType(), TRUE );
+
+	Window* pNewWin = GetActiveWin();
+	if (pNewWin && pNewWin != pOldWin)
+	{
+		SetWindow( pNewWin );		//! ist diese ViewShell immer aktiv???
+		if (bFocus)
+			pNewWin->GrabFocus();
+		WindowChanged();			// Drawing-Layer (z.B. #56771#)
+	}
+
+	if (GetViewData()->GetHSplitMode() == SC_SPLIT_FIX ||
+		GetViewData()->GetVSplitMode() == SC_SPLIT_FIX)
+	{
+		InvalidateSplit();
+	}
+
+	ZoomChanged();
+
+	TestHintWindow();
+
+	//!	if ViewData has more tables than document, remove tables in ViewData
+}
+
+
+//------------------------------------------------------------------
+
+void ScTabViewShell::TestFunction( USHORT /* nPar */ )
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 4488 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin2.cxx
+
+	BOOL bRet = FALSE;
+	BOOL bTimer = FALSE;
+	Point aPos = rMEvt.GetPosPixel();
+
+	SCsCOL nDx = 0;
+	SCsROW nDy = 0;
+	if ( aPos.X() < 0 )
+		nDx = -1;
+	if ( aPos.Y() < 0 )
+		nDy = -1;
+	Size aSize = GetOutputSizePixel();
+	if ( aPos.X() >= aSize.Width() )
+		nDx = 1;
+	if ( aPos.Y() >= aSize.Height() )
+		nDy = 1;
+	if ( nDx != 0 || nDy != 0 )
+	{
+		if (bDragRect)
+=====================================================================
+Found a 23 line (111 tokens) duplication in the following files: 
+Starting at line 757 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/fielduno.cxx
+Starting at line 1439 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/fielduno.cxx
+
+uno::Any SAL_CALL ScHeaderFieldObj::getPropertyValue( const rtl::OUString& aPropertyName )
+				throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+						uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+
+	//!	Properties?
+	uno::Any aRet;
+	String aNameString(aPropertyName);
+
+	// anchor type is always "as character", text wrap always "none"
+
+	if ( aNameString.EqualsAscii( SC_UNONAME_ANCTYPE ) )
+		aRet <<= text::TextContentAnchorType_AS_CHARACTER;
+	else if ( aNameString.EqualsAscii( SC_UNONAME_ANCTYPES ) )
+	{
+		uno::Sequence<text::TextContentAnchorType> aSeq(1);
+		aSeq[0] = text::TextContentAnchorType_AS_CHARACTER;
+		aRet <<= aSeq;
+	}
+	else if ( aNameString.EqualsAscii( SC_UNONAME_TEXTWRAP ) )
+		aRet <<= text::WrapTextMode_NONE;
+	else if ( nType == SC_SERVICE_FILEFIELD && aNameString.EqualsAscii( SC_UNONAME_FILEFORM ) )
+=====================================================================
+Found a 6 line (111 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+		{MAP_CHAR_LEN(SC_UNONAME_PROTECT),  SC_WID_UNO_PROTECT,	&getBooleanCppuType(),					0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((table::CellVertJustify*)0), 0, 0 },
+		{MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
+		{MAP_CHAR_LEN(SC_UNONAME_SHOWBORD), SC_WID_UNO_SHOWBORD,&getBooleanCppuType(),					0, 0 },
+=====================================================================
+Found a 28 line (111 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/attrdlg/scdlgfact.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgfact.cxx
+
+void AbstractTabDialog_Impl::SetCurPageId( USHORT nId )
+{
+	pDlg->SetCurPageId( nId );
+}
+
+const SfxItemSet* AbstractTabDialog_Impl::GetOutputItemSet() const
+{
+	return pDlg->GetOutputItemSet();
+}
+//add by CHINA001
+const USHORT* AbstractTabDialog_Impl::GetInputRanges(const SfxItemPool& pItem )
+{
+	return pDlg->GetInputRanges( pItem );
+}
+//add by CHINA001
+void AbstractTabDialog_Impl::SetInputSet( const SfxItemSet* pInSet )
+{
+	 pDlg->SetInputSet( pInSet );
+}
+//From class Window.
+void AbstractTabDialog_Impl::SetText( const XubString& rStr )
+{
+	pDlg->SetText( rStr );
+}
+String AbstractTabDialog_Impl::GetText() const
+{
+	return pDlg->GetText();
+}
+=====================================================================
+Found a 13 line (111 tokens) duplication in the following files: 
+Starting at line 562 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+        if (!aRef.Ref2.IsColRel())
+            rBuffer.append(sal_Unicode('$'));
+        if ( aRef.Ref2.IsColDeleted() )
+            rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+        else
+            MakeColStr( rBuffer, aRef.Ref2.nCol );
+        if (!aRef.Ref2.IsRowRel())
+            rBuffer.append(sal_Unicode('$'));
+        if ( aRef.Ref2.IsRowDeleted() )
+            rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+        else
+            MakeRowStr( rBuffer, aRef.Ref2.nRow );
+    }
+=====================================================================
+Found a 20 line (111 tokens) duplication in the following files: 
+Starting at line 1478 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column2.cxx
+Starting at line 1553 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/column2.cxx
+
+				EditTextObject* pNewData = pEngine->CreateTextObject();
+				pOldCell->SetData( pNewData, pEngine->GetEditTextObjectPool() );
+				delete pNewData;
+			}
+			else											// String erzeugen
+			{
+				String aText = ScEditUtil::GetSpaceDelimitedString( *pEngine );
+				ScBaseCell* pNewCell = new ScStringCell( aText );
+				SvtBroadcaster* pBC = pOldCell->GetBroadcaster();
+				pNewCell->SetBroadcaster( pBC );
+				pOldCell->ForgetBroadcaster();
+				if (pOldCell->GetNotePtr())
+					pNewCell->SetNote( *pOldCell->GetNotePtr() );
+				pItems[i].pCell = pNewCell;
+				delete pOldCell;
+			}
+		}
+
+	delete pEngine;
+}
+=====================================================================
+Found a 15 line (111 tokens) duplication in the following files: 
+Starting at line 3048 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 3100 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+		void shutdown_003()
+		{
+			::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+			::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9);
+			asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
+			CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
+			CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
+			sal_Char pReadBuffer[40];
+			SendClientThread mySendThread;
+			mySendThread.create();
+			
+			asSocket.enableNonBlockingMode( sal_False );
+			::osl::StreamSocket ssConnectionSocket;
+			oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
+			CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 688 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/file/osl_File.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+        return getIPbyName( hostname );	
+}
+
+/** construct error message
+*/
+inline ::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg = "")
+{	
+	::rtl::OUString aUString;
+	if ( returnVal.equals( rightVal ) )
+		return aUString;
+	aUString += ::rtl::OUString::createFromAscii(msg);
+	aUString += ::rtl::OUString::createFromAscii(": the returned value is '");
+	aUString += returnVal;
+	aUString += ::rtl::OUString::createFromAscii("', but the value should be '");
+	aUString += rightVal;
+	aUString += ::rtl::OUString::createFromAscii("'.");
+	return aUString;
+}
+=====================================================================
+Found a 22 line (111 tokens) duplication in the following files: 
+Starting at line 3519 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 15299 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+        
+        void append_001()
+        {
+=====================================================================
+Found a 25 line (111 tokens) duplication in the following files: 
+Starting at line 291 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/checksingleton.cxx
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/registry/tools/regcompare.cxx
+
+					fprintf(stdout, "%s", prepareHelp().getStr());
+					bRet = sal_False;
+				} else
+				{
+					int rargc=0;
+					char* rargv[512];
+					char  buffer[512];
+
+					while ( fscanf(cmdFile, "%s", buffer) != EOF )
+					{
+						rargv[rargc]= strdup(buffer);
+						rargc++;
+					}
+					fclose(cmdFile);
+					
+					bRet = initOptions(rargc, rargv, bCmdFile);
+					
+					for (long j=0; j < rargc; j++) 
+					{
+						free(rargv[j]);
+					}
+				}
+			} else
+			{
+				fprintf(stdout, "%s: unknown option '%s'\n", m_program.getStr(), av[i]);
+=====================================================================
+Found a 16 line (111 tokens) duplication in the following files: 
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/sft.c
+Starting at line 302 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/sft.c
+
+    sal_uInt32 t;
+    assert(ptr != 0);
+
+
+    if (bigendian) {
+        t = (ptr+offset)[0] << 24 | (ptr+offset)[1] << 16 |
+            (ptr+offset)[2] << 8  | (ptr+offset)[3];
+    } else {
+        t = (ptr+offset)[3] << 24 | (ptr+offset)[2] << 16 |
+            (ptr+offset)[1] << 8  | (ptr+offset)[0];
+    }
+
+    return t;
+}
+
+_inline void PutInt16(sal_Int16 val, sal_uInt8 *ptr, size_t offset, int bigendian)
+=====================================================================
+Found a 15 line (111 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+
+        int numsug = 0;
+
+        // first handle smart quotes (single and double)
+	OUStringBuffer rBuf(rWord);
+        sal_Int32 n = rBuf.getLength();
+        sal_Unicode c;
+	for (sal_Int32 ix=0; ix < n; ix++) {
+	     c = rBuf.charAt(ix);
+             if ((c == 0x201C) || (c == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
+             if ((c == 0x2018) || (c == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
+        }
+        OUString nWord(rBuf.makeStringAndClear());
+
+	if (n)
+	{
+=====================================================================
+Found a 20 line (111 tokens) duplication in the following files: 
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/widthfolding_data.h
+
+	{ 0x0000, 0x0000 },	// 0x3093 HIRAGANA LETTER N
+	{ 0x0000, 0x0000 },	// 0x3094 HIRAGANA LETTER VU
+	{ 0x0000, 0x0000 },	// 0x3095
+	{ 0x0000, 0x0000 },	// 0x3096
+	{ 0x0000, 0x0000 },	// 0x3097
+	{ 0x0000, 0x0000 },	// 0x3098
+	{ 0x0000, 0x0000 },	// 0x3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309a COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+	{ 0x0000, 0x0000 },	// 0x309d HIRAGANA ITERATION MARK
+	{ 0x0000, 0x0000 },	// 0x309e HIRAGANA VOICED ITERATION MARK
+	{ 0x0000, 0x0000 },	// 0x309f
+	{ 0x0000, 0x0000 },	// 0x30a0
+	{ 0x0000, 0x0000 },	// 0x30a1 KATAKANA LETTER SMALL A
+	{ 0x0000, 0x0000 },	// 0x30a2 KATAKANA LETTER A
+	{ 0x0000, 0x0000 },	// 0x30a3 KATAKANA LETTER SMALL I
+	{ 0x0000, 0x0000 },	// 0x30a4 KATAKANA LETTER I
+	{ 0x0000, 0x0000 },	// 0x30a5 KATAKANA LETTER SMALL U
+	{ 0x30f4, 0x0000 },	// 0x30a6 KATAKANA LETTER U --> KATAKANA LETTER VU
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 1519 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1534 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13, 0,13, 0,13,13,13,13,13,13,13,13,13,13,// fe70 - fe7f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe80 - fe8f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fe90 - fe9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fea0 - feaf
+=====================================================================
+Found a 6 line (111 tokens) duplication in the following files: 
+Starting at line 1102 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1131 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,// 0bc0 - 0bcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bd0 - 0bdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0be0 - 0bef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0bf0 - 0bff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0c00 - 0c0f
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1072 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17,17,17,17,17,17,17,17,17,17, 0, 0, 0, 0, 0,// 0740 - 074f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0750 - 075f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0760 - 076f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0770 - 077f
+=====================================================================
+Found a 5 line (111 tokens) duplication in the following files: 
+Starting at line 1021 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe70 - fe7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe80 - fe8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+=====================================================================
+Found a 5 line (111 tokens) duplication in the following files: 
+Starting at line 846 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1255 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10,10,10,10,10,10,10,10,18,18,18,18, 0,// 1800 - 180f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1810 - 181f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1820 - 182f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1830 - 183f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1840 - 184f
+=====================================================================
+Found a 5 line (111 tokens) duplication in the following files: 
+Starting at line 823 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 864 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbd0 - fbdf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbe0 - fbef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fbf0 - fbff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd00 - fd0f
+=====================================================================
+Found a 59 line (111 tokens) duplication in the following files: 
+Starting at line 668 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 3521 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlatr.cxx
+
+/* RES_PARATR_DROP */				OutHTML_CSS1Attr,
+/* RES_PARATR_REGISTER */        	0, // neu:  Registerhaltigkeit
+/* RES_PARATR_NUMRULE */      	    0, // Dummy:
+/* RES_PARATR_SCRIPTSPACE */   	    0, // Dummy:
+/* RES_PARATR_HANGINGPUNCTUATION */	0, // Dummy:
+/* RES_PARATR_DUMMY1 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY2 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY3 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY4 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY5 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY6 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY7 */        	    0, // Dummy:
+/* RES_PARATR_DUMMY8 */        	    0, // Dummy:
+
+
+/* RES_FILL_ORDER	*/				0,
+/* RES_FRM_SIZE	*/					0,
+/* RES_PAPER_BIN	*/              0,
+/* RES_LR_SPACE	*/                  0,
+/* RES_UL_SPACE	*/                  0,
+/* RES_PAGEDESC */					0,
+/* RES_BREAK */						0,
+/* RES_CNTNT */						0,
+/* RES_HEADER */		   			0,
+/* RES_FOOTER */		   			0,
+/* RES_PRINT */						0,
+/* RES_OPAQUE */					0,
+/* RES_PROTECT */					0,
+/* RES_SURROUND */					0,
+/* RES_VERT_ORIENT */				0,
+/* RES_HORI_ORIENT */				0,
+/* RES_ANCHOR */					0,
+/* RES_BACKGROUND */				0,
+/* RES_BOX	*/                      0,
+/* RES_SHADOW */					0,
+/* RES_FRMMACRO */					0,
+/* RES_COL */						0,
+/* RES_KEEP */						0,
+/* RES_URL */        	    		0,
+/* RES_EDIT_IN_READONLY */        	0,
+/* RES_LAYOUT_SPLIT */ 	    		0,
+/* RES_FRMATR_DUMMY1 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY2 */        	    0, // Dummy:
+/* RES_AUTO_STYLE */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY4 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY5 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY6 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY7 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY8 */        	    0, // Dummy:
+/* RES_FRMATR_DUMMY9 */        	    0, // Dummy:
+/* RES_FOLLOW_TEXT_FLOW */          0,
+/* RES_WRAP_INFLUENCE_ON_OBJPOS */  0,
+/* RES_FRMATR_DUMMY2 */             0, // Dummy:
+/* RES_AUTO_STYLE */                0, // Dummy:
+/* RES_FRMATR_DUMMY4 */             0, // Dummy:
+/* RES_FRMATR_DUMMY5 */             0, // Dummy:
+
+/* RES_GRFATR_MIRRORGRF	*/			0,
+/* RES_GRFATR_CROPGRF	*/			0,
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2400 - 240f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 2410 - 241f
+    27,27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2420 - 242f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2430 - 243f
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,24,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25c0 - 25cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25d0 - 25df
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25e0 - 25ef
+    27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0,// 25f0 - 25ff
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 360 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1120 - 112f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1130 - 113f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1140 - 114f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 5,// 1150 - 115f
+=====================================================================
+Found a 4 line (111 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+=====================================================================
+Found a 6 line (111 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 475 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 18f0 - 18ff
+
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e00 - 1e0f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e10 - 1e1f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e20 - 1e2f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 1e30 - 1e3f
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 471 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 921 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+    const double tolerance = 1e-06;
+    for (i = 0; i < n; i++)
+    {
+      if ( fabs(A[i][i]) <= tolerance )
+	return 0;
+      Ainv[i][col] /= A[i][i];
+    }
+
+    // back substitution
+    for (i = n-2; i >= 0; i--)
+    {
+      for (j = i+1; j < n; j++)
+	Ainv[i][col] -= A[j][i]*Ainv[j][col];
+    }
+  }
+
+  return 1;
+}
+=====================================================================
+Found a 6 line (111 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 2, 1, 2, 1, 2, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0,// 04f0 - 04ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0500 - 050f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,// 0530 - 053f
+=====================================================================
+Found a 17 line (111 tokens) duplication in the following files: 
+Starting at line 1867 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 1896 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+
+				short						nOrientation;
+				Point						aPt( pA->GetPoint() );
+
+				if( aGDIFont.GetAlign() != ALIGN_BASELINE )
+				{
+					VirtualDevice aVDev;
+					if( aGDIFont.GetAlign() == ALIGN_TOP )
+						aPt.Y()+=(long)aVDev.GetFontMetric(aGDIFont).GetAscent();
+					else
+						aPt.Y()-=(long)aVDev.GetFontMetric(aGDIFont).GetDescent();
+				}
+
+				METSetMix(eGDIRasterOp);
+				METSetColor(aGDIFont.GetColor());
+				METSetBackgroundColor(aGDIFont.GetFillColor());
+				METSetChrCellSize(aGDIFont.GetSize());
+				METSetChrAngle( nOrientation = aGDIFont.GetOrientation() );
+=====================================================================
+Found a 36 line (111 tokens) duplication in the following files: 
+Starting at line 505 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+	const OUString& /*aTarget*/, const OUString& /*aData*/ )
+throw(	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadToolBoxDocumentHandler::setDocumentLocator(
+	const Reference< XLocator > &xLocator)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+
+	m_xLocator = xLocator;
+}
+
+::rtl::OUString OReadToolBoxDocumentHandler::getErrorLineString()
+{
+	ResetableGuard aGuard( m_aLock );
+
+	char buffer[32];
+
+	if ( m_xLocator.is() )
+	{
+		snprintf( buffer, sizeof(buffer), "Line: %ld - ", m_xLocator->getLineNumber() );
+		return OUString::createFromAscii( buffer );
+	}
+	else
+		return OUString();
+}
+
+
+//_________________________________________________________________________________________________________________
+//	OWriteToolBoxDocumentHandler
+//_________________________________________________________________________________________________________________
+
+OWriteToolBoxDocumentHandler::OWriteToolBoxDocumentHandler( 
+    const Reference< XIndexAccess >& rItemAccess,
+=====================================================================
+Found a 29 line (111 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/toolboxdocumenthandler.cxx
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/toolboxdocumenthandler.cxx
+
+                        }                                
+
+				m_bToolBarStartFound = sal_True;
+			}
+			break;
+
+			case TB_ELEMENT_TOOLBARITEM:
+			{
+				if ( !m_bToolBarStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'toolbar:toolbaritem' must be embeded into element 'toolbar:toolbar'!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				if ( m_bToolBarSeparatorStartFound ||
+					 m_bToolBarBreakStartFound ||
+					 m_bToolBarSpaceStartFound ||
+					 m_bToolBarItemStartFound )
+				{
+					OUString aErrorMessage = getErrorLineString();
+					aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Element toolbar:toolbaritem is not a container!" ));
+					throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+				}
+
+				OUString aAttribute;
+				sal_Bool bAttributeURL	= sal_False;
+
+				m_bToolBarItemStartFound = sal_True;
+=====================================================================
+Found a 36 line (111 tokens) duplication in the following files: 
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/statusbardocumenthandler.cxx
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/statusbardocumenthandler.cxx
+
+	const OUString& /*aTarget*/, const OUString& /*aData*/ )
+throw(	SAXException, RuntimeException )
+{
+}
+
+void SAL_CALL OReadStatusBarDocumentHandler::setDocumentLocator(
+	const Reference< XLocator > &xLocator)
+throw(	SAXException, RuntimeException )
+{
+	ResetableGuard aGuard( m_aLock );
+	
+	m_xLocator = xLocator;
+}
+
+::rtl::OUString OReadStatusBarDocumentHandler::getErrorLineString()
+{
+	ResetableGuard aGuard( m_aLock );
+	
+	char buffer[32];
+
+	if ( m_xLocator.is() )
+	{
+		snprintf( buffer, sizeof(buffer), "Line: %ld - ", m_xLocator->getLineNumber() );
+		return OUString::createFromAscii( buffer );
+	}
+	else
+		return OUString();
+}
+
+
+//_________________________________________________________________________________________________________________
+//	OWriteStatusBarDocumentHandler
+//_________________________________________________________________________________________________________________
+
+OWriteStatusBarDocumentHandler::OWriteStatusBarDocumentHandler(
+    const Reference< XIndexAccess >& aStatusBarItems,
+=====================================================================
+Found a 15 line (111 tokens) duplication in the following files: 
+Starting at line 944 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 1751 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+
+bool WriteMenuBarXML( osl::File& rFile, Menu* pMenu, MODULES eModule, int nLevel )
+{
+   OUString aCmd( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ));
+
+    for ( unsigned short n = 0; n < pMenu->GetItemCount(); n++ )
+    {
+        unsigned short nId = pMenu->GetItemId( n );
+        if ( pMenu->GetItemType( n ) != MENUITEM_SEPARATOR )
+        {
+            OUString aLabel( pMenu->GetItemText( nId ));
+            OUString aCommand( pMenu->GetItemCommand( nId ));
+            bool     bHasUnoCommand( aCommand.getLength() > 0 && ( aCommand.indexOf( aCmd ) == 0 ));
+
+            if ( pMenu->GetPopupMenu( nId ) != 0 )
+            {
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkPicker.cxx
+
+void SAL_CALL SalGtkPicker::implsetDisplayDirectory( const rtl::OUString& aDirectory ) 
+	throw( lang::IllegalArgumentException, uno::RuntimeException )
+{
+	OSL_ASSERT( m_pDialog != NULL );
+	::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+	OString aTxt = unicodetouri(aDirectory);
+
+	if( aTxt.lastIndexOf('/') == aTxt.getLength() - 1 )
+		aTxt = aTxt.copy( 0, aTxt.getLength() - 1 );
+
+	OSL_TRACE( "setting path to %s\n", aTxt.getStr() );
+
+	gtk_file_chooser_set_current_folder_uri( GTK_FILE_CHOOSER( m_pDialog ),
+						 aTxt.getStr() );
+}
+
+rtl::OUString SAL_CALL SalGtkPicker::implgetDisplayDirectory() throw( uno::RuntimeException )
+=====================================================================
+Found a 6 line (111 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 2, 1, 2, 1, 2, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0,// 04f0 - 04ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0500 - 050f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0510 - 051f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0520 - 052f
+     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,// 0530 - 053f
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 587 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+HRESULT CSOActiveX::CallDispatch1PBool( OLECHAR* sUrl, OLECHAR* sArgName, BOOL sArgVal )
+{
+	CComPtr<IDispatch> pdispURL;
+	HRESULT hr = GetUrlStruct( sUrl, pdispURL );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	CComPtr<IDispatch> pdispXDispatch;
+	CComVariant aArgs[3];
+	aArgs[2] = CComVariant( pdispURL );
+	aArgs[1] = CComVariant( L"" );
+	aArgs[0] = CComVariant( (int)0 );
+	hr = GetIDispByFunc( mpDispFrame, 
+						 L"queryDispatch", 
+						 aArgs, 
+						 3, 
+						 pdispXDispatch );
+	if( !SUCCEEDED( hr ) ) return hr;
+
+	SAFEARRAY FAR* pPropVals = SafeArrayCreateVector( VT_DISPATCH, 0, 1 );
+=====================================================================
+Found a 16 line (111 tokens) duplication in the following files: 
+Starting at line 677 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/ed_ipersiststr.cxx
+Starting at line 853 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/ed_ipersiststr.cxx
+
+				hr = m_pExtStream->Seek( aZero, STREAM_SEEK_SET, &nNewPos );
+				if ( SUCCEEDED( hr ) )
+				{
+					SIZEL aSize;
+					hr = m_pDocHolder->GetExtent( &aSize );
+
+					if ( SUCCEEDED( hr ) )
+					{
+						sal_uInt32 nWritten;
+						sal_Int8 aInf[EXT_STREAM_LENGTH];
+						*((sal_Int32*)aInf) = 0;
+						*((sal_Int32*)&aInf[4]) = 0;
+						*((sal_Int32*)&aInf[8]) = aSize.cx;
+						*((sal_Int32*)&aInf[12]) = aSize.cy;
+
+						hr = m_pExtStream->Write( (void*)aInf, EXT_STREAM_LENGTH, &nWritten );
+=====================================================================
+Found a 17 line (111 tokens) duplication in the following files: 
+Starting at line 590 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/bmp.cxx
+Starting at line 619 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/bmp.cxx
+
+    sal_uInt32 nWidth	= readLE32( pData+4 );
+    sal_uInt32 nHeight	= readLE32( pData+8 );
+
+    const sal_uInt8* pBMData = pData + readLE32( pData );
+    sal_uInt32 nScanlineSize = nWidth*3;
+    // adjust scan lines to begin on %4 boundaries
+    if( nScanlineSize & 3 )
+    {
+        nScanlineSize &= 0xfffffffc;
+        nScanlineSize += 4;
+    }
+
+    for( int y = 0; y < (int)nHeight; y++ )
+    {
+        const sal_uInt8* pScanline = pBMData + (nHeight-1-(sal_uInt32)y)*nScanlineSize;
+        for( int x = 0; x < (int)nWidth; x++ )
+        {
+=====================================================================
+Found a 12 line (111 tokens) duplication in the following files: 
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/app/AppControllerDnD.cxx
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/TableCopyHelper.cxx
+
+using namespace ::svx;
+//	using namespace ::svtools;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::task;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::ucb;
+=====================================================================
+Found a 13 line (111 tokens) duplication in the following files: 
+Starting at line 536 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+Starting at line 1511 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+
+		OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AggregateFunction"))),"Property AggregateFunctionnot available!");
+
+		::rtl::OUString sRealName,sTableName;
+		xColumn->getPropertyValue(PROPERTY_REALNAME)	>>= sRealName;
+		xColumn->getPropertyValue(PROPERTY_TABLENAME)	>>= sTableName;
+		if(sTableName.indexOf('.',0) != -1)
+		{
+			::rtl::OUString aCatlog,aSchema,aTable;
+			::dbtools::qualifiedNameComponents(m_xMetaData,sTableName,aCatlog,aSchema,aTable,::dbtools::eInDataManipulation);
+			sTableName = ::dbtools::composeTableName( m_xMetaData, aCatlog, aSchema, aTable, sal_True, ::dbtools::eInDataManipulation );
+		}
+		else
+			sTableName = ::dbtools::quoteName(aQuote,sTableName);
+=====================================================================
+Found a 52 line (111 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/typelib/static_types.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/source/typelib/typelib.cxx
+
+using namespace osl;
+
+
+//------------------------------------------------------------------------
+//------------------------------------------------------------------------
+#ifdef SAL_W32
+#pragma pack(push, 8)
+#elif defined(SAL_OS2)
+#pragma pack(8)
+#endif
+
+/**
+ * The double member determin the alignment.
+ * Under Os2 and MS-Windows the Alignment is min( 8, sizeof( type ) ).
+ * The aligment of a strukture is min( 8, sizeof( max basic type ) ), the greatest basic type
+ * determine the aligment.
+ */
+struct AlignSize_Impl
+{
+	sal_Int16	nInt16;
+	double		dDouble;
+};
+
+#ifdef SAL_W32
+#pragma pack(pop)
+#elif defined(SAL_OS2)
+#pragma pack()
+#endif
+
+// the value of the maximal alignment
+static sal_Int32 nMaxAlignment = (sal_Int32)( (sal_Size)(&((AlignSize_Impl *) 16)->dDouble) - 16);
+
+static inline sal_Int32 adjustAlignment( sal_Int32 nRequestedAlignment )
+	SAL_THROW( () )
+{
+	if( nRequestedAlignment > nMaxAlignment )
+		nRequestedAlignment = nMaxAlignment;
+	return nRequestedAlignment;
+}
+
+/**
+ * Calculate the new size of the struktur.
+ */
+static inline sal_Int32 newAlignedSize(
+	sal_Int32 OldSize, sal_Int32 ElementSize, sal_Int32 NeededAlignment )
+	SAL_THROW( () )
+{
+	NeededAlignment = adjustAlignment( NeededAlignment );
+	return (OldSize + NeededAlignment -1) / NeededAlignment * NeededAlignment + ElementSize;
+}
+
+static inline sal_Bool reallyWeak( typelib_TypeClass eTypeClass )
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+Starting at line 728 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+
+void SAL_CALL java_sql_PreparedStatement::clearBatch(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
+{
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv ){
+		createStatement(t.pEnv);
+
+		// temporaere Variable initialisieren
+		static const char * cSignature = "()V";
+		static const char * cMethodName = "clearBatch";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			t.pEnv->CallVoidMethod( object, mID);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+		} //mID
+	} //t.pEnv
+}
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 1777 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+Starting at line 1821 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/Awrapado.cxx
+
+												  const ::rtl::OUString& tableNamePattern )
+{
+	HRESULT hr = S_OK;
+	SAFEARRAYBOUND rgsabound[1];
+	SAFEARRAY *psa = NULL;
+	OLEVariant varCriteria[5];
+
+	// Create SafeArray Bounds and initialize the array
+	rgsabound[0].lLbound   = 0;
+	rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
+	psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+	sal_Int32 nPos=0;
+	if(catalog.hasValue())
+		varCriteria[nPos].setString(::comphelper::getString(catalog));
+
+	hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// TABLE_CATALOG
+	if(schemaPattern.getLength() && schemaPattern.toChar() != '%')
+=====================================================================
+Found a 19 line (111 tokens) duplication in the following files: 
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx
+
+		throwFunctionSequenceException(*this);
+}
+// -------------------------------------------------------------------------
+
+sal_Int32 SAL_CALL ODatabaseMetaDataResultSet::findColumn( const ::rtl::OUString& columnName ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
+
+
+	Reference< XResultSetMetaData > xMeta = getMetaData();
+	sal_Int32 nLen = xMeta->getColumnCount();
+	sal_Int32 i = 1;
+	for(;i<=nLen;++i)
+		if(xMeta->isCaseSensitive(i) ? columnName == xMeta->getColumnName(i) :
+			columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i)))
+			break;
+	return i;
+}
+=====================================================================
+Found a 21 line (111 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgadmin.cxx
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/apitest/cfgapi.cxx
+
+	_rUnoValue <<= _rAsciiString.getStr();
+}
+
+//=============================================================================
+void test_read_access(Reference< XInterface >& xIface, Reference< XMultiServiceFactory > &xMSF);
+//=============================================================================
+struct prompt_and_wait
+{
+	char const* myText;
+	prompt_and_wait(char const* text = "") : myText(text) {}
+	~prompt_and_wait() 
+	{
+		cout << myText << ">" << endl;
+		int const mx = int( (+0u - +1u) >> 1);
+
+		char c=0; 
+		if (cin.get(c) && c != '\n')
+			cin.ignore(mx,'\n'); 
+	}
+}; 
+static prompt_and_wait exit_prompt("Quitting\nQ");
+=====================================================================
+Found a 35 line (111 tokens) duplication in the following files: 
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/backendhelper/componentdf.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/platformbe/componentdefn.cxx
+
+        SystemIntegrationManager::getServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+	{ NULL, NULL, NULL, NULL, NULL, 0 }
+} ;
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /* ppEnv */
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(void *aServiceManager,
+                                                 void *aRegistryKey) {
+    return cppu::component_writeInfoHelper(aServiceManager, 
+                                           aRegistryKey,
+                                           kImplementations_entries) ;
+}
+//------------------------------------------------------------------------------
+
+extern "C" void *component_getFactory(const sal_Char *aImplementationName,
+                                      void *aServiceManager,
+                                      void *aRegistryKey) {
+    return cppu::component_getFactoryHelper(aImplementationName,
+                                            aServiceManager,
+                                            aRegistryKey,
+                                            kImplementations_entries) ;
+}
+=====================================================================
+Found a 32 line (111 tokens) duplication in the following files: 
+Starting at line 1303 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+OString	IdlType::checkSpecialIdlType(const OString& type)
+{
+	OString baseType(type);
+
+	RegistryTypeReaderLoader & rReaderLoader = getRegistryTypeReaderLoader();
+
+	RegistryKey 	key;
+	sal_uInt8*		pBuffer=NULL;
+	RTTypeClass 	typeClass;
+	sal_Bool 		isTypeDef = (m_typeMgr.getTypeClass(baseType) == RT_TYPE_TYPEDEF);
+	TypeReader		reader;
+
+	while (isTypeDef)
+	{
+		reader = m_typeMgr.getTypeReader(baseType);
+
+		if (reader.isValid())
+		{
+			typeClass = reader.getTypeClass();
+
+			if (typeClass == RT_TYPE_TYPEDEF)
+				baseType = reader.getSuperTypeName();
+			else
+				isTypeDef = sal_False;
+		} else
+		{
+			break;
+		}
+	}
+
+	return baseType;
+}
+=====================================================================
+Found a 25 line (111 tokens) duplication in the following files: 
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
+
+		VtableSlot aVtableSlot(
+				getVtableSlot(
+					reinterpret_cast<
+					typelib_InterfaceMethodTypeDescription const * >(
+						pMemberDescr)));
+		
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->getBridge()->getUnoEnv()->getRegisteredInterface)(
+=====================================================================
+Found a 17 line (111 tokens) duplication in the following files: 
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
+	// args
+	void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
+	// indizes of values this have to be converted (interface conversion cpp<=>uno)
+	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+	// type descriptions for reconversions
+	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+	
+	sal_Int32 nTempIndizes   = 0;
+	
+	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+	{
+		const typelib_MethodParameter & rParam = pParams[nPos];
+		typelib_TypeDescription * pParamTypeDescr = 0;
+		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+		
+		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
+=====================================================================
+Found a 25 line (111 tokens) duplication in the following files: 
+Starting at line 362 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
+
+		VtableSlot aVtableSlot(
+				getVtableSlot(
+					reinterpret_cast<
+					typelib_InterfaceMethodTypeDescription const * >(
+						pMemberDescr)));
+		
+		switch (aVtableSlot.index)
+		{
+			// standard calls
+		case 1: // acquire uno interface
+			(*pUnoI->acquire)( pUnoI );
+			*ppException = 0;
+			break;
+		case 2: // release uno interface
+			(*pUnoI->release)( pUnoI );
+			*ppException = 0;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
+			if (pTD)
+			{
+                uno_Interface * pInterface = 0;
+                (*pThis->getBridge()->getUnoEnv()->getRegisteredInterface)(
+=====================================================================
+Found a 24 line (111 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+
+  	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+	// push this
+    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
+        + aVtableSlot.offset;
+	*(void**)pCppStack = pAdjustedThisPtr;
+	pCppStack += sizeof( void* );
+=====================================================================
+Found a 17 line (111 tokens) duplication in the following files: 
+Starting at line 1608 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+Starting at line 1657 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+
+    safeParamsBase_xOffset = curr_Offset;
+    for( i=0; i<sizeof(someCurves)/sizeof(Bezier); ++i )
+    {
+        Bezier c( someCurves[i] );
+        
+        c.p0.x += safeParamsBase_xOffset;
+        c.p1.x += safeParamsBase_xOffset;
+        c.p2.x += safeParamsBase_xOffset;
+        c.p3.x += safeParamsBase_xOffset;
+
+        Polygon2D poly(4);
+        poly[0] = c.p0;
+        poly[1] = c.p1;
+        poly[2] = c.p2;
+        poly[3] = c.p3;
+
+        double t1, t2;
+=====================================================================
+Found a 16 line (111 tokens) duplication in the following files: 
+Starting at line 1057 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2b.cxx
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/brkpnts.cxx
+
+		aMarker = pImages->GetImage( IMGID_STEPMARKER );
+
+	Size aMarkerSz( aMarker.GetSizePixel() );
+	aMarkerSz = PixelToLogic( aMarkerSz );
+	Point aMarkerOff( 0, 0 );
+	aMarkerOff.X() = ( aOutSz.Width() - aMarkerSz.Width() ) / 2;
+	aMarkerOff.Y() = ( nLineHeight - aMarkerSz.Height() ) / 2;
+
+	ULONG nY = nMarkerPos*nLineHeight - nCurYOffset;
+	Point aPos( 0, nY );
+	aPos += aMarkerOff;
+	if ( bShow )
+		DrawImage( aPos, aMarker );
+	else
+		Invalidate( Rectangle( aPos, aMarkerSz ) );
+}
+=====================================================================
+Found a 16 line (111 tokens) duplication in the following files: 
+Starting at line 187 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/viewer/mediaevent_impl.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/avmedia/source/viewer/mediaevent_impl.cxx
+
+void SAL_CALL MediaEventListenersImpl::mouseMoved( const ::com::sun::star::awt::MouseEvent& e )
+    throw (::com::sun::star::uno::RuntimeException)
+{
+    const ::osl::MutexGuard aGuard( maMutex );
+    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
+
+    if( mpNotifyWindow )
+    {
+        MouseEvent aVCLMouseEvt( Point( e.X, e.Y ), 0, 0, e.Buttons, e.Modifiers );
+        Application::PostMouseEvent( VCLEVENT_WINDOW_MOUSEMOVE, reinterpret_cast< ::Window* >( mpNotifyWindow ), &aVCLMouseEvt );
+    }
+}
+
+// ---------------------------------------------------------------------
+
+void SAL_CALL MediaEventListenersImpl::focusGained( const ::com::sun::star::awt::FocusEvent& /* e */ )
+=====================================================================
+Found a 18 line (111 tokens) duplication in the following files: 
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblemenuitem.cxx
+Starting at line 647 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
+
+		Reference< datatransfer::clipboard::XClipboard > xClipboard = m_pStatusBar->GetClipboard();
+		if ( xClipboard.is() )
+		{
+			::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+			::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+			const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+			xClipboard->setContents( pDataObj, NULL );
+
+			Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+			if( xFlushableClipboard.is() )
+				xFlushableClipboard->flushClipboard();
+			
+			Application::AcquireSolarMutex( nRef );
+
+			bReturn = sal_True;
+		}
+	}
+=====================================================================
+Found a 24 line (111 tokens) duplication in the following files: 
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibletabbarpage.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/accessiblemenubasecomponent.cxx
+
+void OAccessibleMenuBaseComponent::SetEnabled( sal_Bool bEnabled )
+{
+	if ( m_bEnabled != bEnabled )
+	{
+        Any aOldValue[2], aNewValue[2];
+		if ( m_bEnabled )
+        {
+            aOldValue[0] <<= AccessibleStateType::SENSITIVE;
+            aOldValue[1] <<= AccessibleStateType::ENABLED;
+        }
+		else
+        {
+            aNewValue[0] <<= AccessibleStateType::ENABLED;
+            aNewValue[1] <<= AccessibleStateType::SENSITIVE;
+        }
+		m_bEnabled = bEnabled;
+        NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[0], aNewValue[0] );
+        NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[1], aNewValue[1] );
+	}
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetFocused( sal_Bool bFocused )
+=====================================================================
+Found a 28 line (111 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibletabbar.cxx
+Starting at line 489 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/accessibility/accessibledialogwindow.cxx
+
+			aOldValue <<= AccessibleStateType::ACTIVE;
+			NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+		}
+		break;
+		case VCLEVENT_WINDOW_GETFOCUS:
+		{
+			aNewValue <<= AccessibleStateType::FOCUSED;
+			NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+		}
+		break;
+		case VCLEVENT_WINDOW_LOSEFOCUS:
+		{
+			aOldValue <<= AccessibleStateType::FOCUSED;
+			NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+		}
+		break;
+		case VCLEVENT_WINDOW_SHOW:
+		{
+			aNewValue <<= AccessibleStateType::SHOWING;
+			NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );							
+		}
+		break;
+		case VCLEVENT_WINDOW_HIDE:
+		{
+			aOldValue <<= AccessibleStateType::SHOWING;
+			NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );				
+		}
+		break;
+=====================================================================
+Found a 9 line (110 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/odsl/ODSLParser.cxx
+
+	uno::Sequence<uno::Any> aUcbInitSequence(2);
+	aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+	aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+	uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+	uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+    if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+	{
+		// construct an URL of the input file name
+		rtl::OUString arg=aArguments[0];
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 6220 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/doctok/resources.cxx
+Starting at line 6702 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/doctok/resources.cxx
+
+                rHandler.attribute(NS_rtf::LN_BPP, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_brcTop());
+                rHandler.attribute(NS_rtf::LN_BRCTOP, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_brcLeft());
+                rHandler.attribute(NS_rtf::LN_BRCLEFT, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_brcBottom());
+                rHandler.attribute(NS_rtf::LN_BRCBOTTOM, *pVal);
+            }
+            {
+                WW8Value::Pointer_t pVal = createValue(get_brcRight());
+                rHandler.attribute(NS_rtf::LN_BRCRIGHT, *pVal);
+            }
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 469 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 35 line (110 tokens) duplication in the following files: 
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 611 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+                        if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+                    }
+                }
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)fg[order_type::A];
+                ++span;
+                ++base_type::interpolator();
+
+            } while(--len);
+
+            return base_type::allocator().span();
+        }
+    };
+
+
+
+
+
+
+
+
+
+
+
+
+
+    //================================================span_image_filter_rgba
+    template<class ColorT,
+             class Order, 
+             class Interpolator,
+             class Allocator = span_allocator<ColorT> > 
+    class span_image_filter_rgba : 
+=====================================================================
+Found a 20 line (110 tokens) duplication in the following files: 
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_gray.h
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_gray.h
+
+        void blend_solid_vspan(int x, int y,
+                               unsigned len, 
+                               const color_type& c,
+                               const int8u* covers)
+        {
+            if (c.a)
+            {
+                value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+                do 
+                {
+                    calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+                    if(alpha == base_mask)
+                    {
+                        *p = c.v;
+                    }
+                    else
+                    {
+                        Blender::blend_pix(p, c.v, alpha, *covers);
+                    }
+                    p = (value_type*)m_rbuf->next_row(p);
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 1754 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1850 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),
+							   OUString( RTL_CONSTASCII_USTRINGPARAM("tabstop") ),
+							   _xAttributes );
+	ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
+							  OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
+							  _xAttributes );
+	ctx.importAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Align") ),
+                             OUString( RTL_CONSTASCII_USTRINGPARAM("align") ),
+                             _xAttributes );
+    ctx.importVerticalAlignProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("VerticalAlign") ),
+                                     OUString( RTL_CONSTASCII_USTRINGPARAM("valign") ),
+                                     _xAttributes );
+    ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("DefaultButton") ),
+=====================================================================
+Found a 16 line (110 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1050 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedTextModel") ) );
+	
+	Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
+	if (xStyle.is())
+	{
+		StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
+		Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
+		pStyle->importBackgroundColorStyle( xControlModel );
+		pStyle->importTextColorStyle( xControlModel );
+		pStyle->importTextLineColorStyle( xControlModel );
+		pStyle->importBorderStyle( xControlModel );
+		pStyle->importFontStyle( xControlModel );
+	}
+	
+	ctx.importDefaults( _nBasePosX, _nBasePosY, _xAttributes );
+	ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ),
+=====================================================================
+Found a 20 line (110 tokens) duplication in the following files: 
+Starting at line 610 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 636 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 686 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+	lRet = ::RegOpenKeyEx(hKey, CXMergeFilter::m_pszPXLImportCLSID, 0, KEY_ALL_ACCESS, &hDataKey);
+	if (lRet != ERROR_SUCCESS)
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	while ((lRet = ::RegEnumKeyEx(hDataKey, 0, szKeyName, &dwKeyName, 0, szClassName, &dwClassName, NULL))
+				!= ERROR_NO_MORE_ITEMS)
+	{
+		lRet = ::RegDeleteKey(hDataKey, szKeyName);
+
+		::lstrcpy(szKeyName, "\0");
+		::lstrcpy(szClassName, "\0");
+
+		dwClassName = _MAX_PATH;
+		dwKeyName   = _MAX_PATH;
+	}
+
+	::RegCloseKey(hDataKey);  hDataKey = NULL;
+
+	lRet = ::RegDeleteKey(hKey, CXMergeFilter::m_pszPXLImportCLSID);
+=====================================================================
+Found a 6 line (110 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawcaption_mask.h
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawfreehand_mask.h
+
+static char drawfreehand_mask_bits[] = {
+   0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
+   0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
+   0x80, 0x03, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x01, 0x00,
+   0xff, 0xff, 0x01, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
+   0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x08,
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/detective_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/detective_mask.h
+
+ 0xc0,0xff,0x07,0x00,0x80,0xff,0x03,0x00,0x80,0xff,0x03,0x00,0x00,0xff,0x07,
+ 0x00,0x00,0x7c,0x0e,0x00,0x00,0x00,0x1c,0x00,0x00,0x10,0x38,0x00,0x00,0x38,
+ 0x70,0x00,0x00,0x10,0x60,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+
+ 0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0x80,0x03,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 15 line (110 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salobj.h
+Starting at line 68 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salobj.h
+
+    virtual ~WinSalObject();
+
+	virtual void					ResetClipRegion();
+	virtual USHORT					GetClipRegionType();
+	virtual void					BeginSetClipRegion( ULONG nRects );
+	virtual void					UnionClipRegion( long nX, long nY, long nWidth, long nHeight );
+	virtual void					EndSetClipRegion();
+	virtual void					SetPosSize( long nX, long nY, long nWidth, long nHeight );
+	virtual void					Show( BOOL bVisible );
+	virtual void					Enable( BOOL nEnable );
+	virtual void					GrabFocus();
+	virtual void					SetBackground();
+	virtual void					SetBackground( SalColor nSalColor );
+	virtual const SystemEnvData*	GetSystemData() const;
+};
+=====================================================================
+Found a 16 line (110 tokens) duplication in the following files: 
+Starting at line 314 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salgdi.h
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+                                    const SalBitmap& rTransparentBitmap );
+    virtual void		drawMask( const SalTwoRect* pPosAry,
+                                  const SalBitmap& rSalBitmap,
+                                  SalColor nMaskColor );
+
+    virtual SalBitmap*	getBitmap( long nX, long nY, long nWidth, long nHeight );
+    virtual SalColor	getPixel( long nX, long nY );
+
+    // invert --> ClipRegion (only Windows or VirDevs)
+    virtual void		invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags);
+    virtual void		invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+
+    virtual BOOL		drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+
+    // native widget rendering methods that require mirroring
+    virtual BOOL        hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion,
+=====================================================================
+Found a 31 line (110 tokens) duplication in the following files: 
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 1239 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+        psp::PrinterInfoManager::get();
+        return;
+    }
+    
+    if( nActiveJobs < 1 )
+        doUpdate();
+    else if( ! pPrinterUpdateTimer )
+    {
+        pPrinterUpdateTimer = new Timer();
+        pPrinterUpdateTimer->SetTimeout( 500 );
+        pPrinterUpdateTimer->SetTimeoutHdl( STATIC_LINK( NULL, vcl_sal::PrinterUpdate, UpdateTimerHdl ) );
+        pPrinterUpdateTimer->Start();
+    }
+}
+
+// -----------------------------------------------------------------------
+
+void vcl_sal::PrinterUpdate::jobEnded()
+{
+    nActiveJobs--;
+    if( nActiveJobs < 1 )
+    {
+        if( pPrinterUpdateTimer )
+        {
+            pPrinterUpdateTimer->Stop();
+            delete pPrinterUpdateTimer;
+            pPrinterUpdateTimer = NULL;
+            doUpdate();
+        }
+    }
+}
+=====================================================================
+Found a 10 line (110 tokens) duplication in the following files: 
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+Starting at line 1221 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+		ImplCalcHatchValues( aRect, nWidth, rHatch.GetAngle() + 900, aPt1, aPt2, aInc, aEndPt1 );
+		do
+		{
+			ImplDrawHatchLine( Line( aPt1, aPt2 ), rPolyPoly, pPtBuffer, bMtf );
+			aPt1.X() += aInc.Width(); aPt1.Y() += aInc.Height();
+			aPt2.X() += aInc.Width(); aPt2.Y() += aInc.Height();
+		}
+		while( ( aPt1.X() <= aEndPt1.X() ) && ( aPt1.Y() <= aEndPt1.Y() ) );
+
+		if( rHatch.GetStyle() == HATCH_TRIPLE )
+=====================================================================
+Found a 26 line (110 tokens) duplication in the following files: 
+Starting at line 1293 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/scrbar.cxx
+Starting at line 907 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/slider.cxx
+
+void Slider::StateChanged( StateChangedType nType )
+{
+	Control::StateChanged( nType );
+
+	if ( nType == STATE_CHANGE_INITSHOW )
+		ImplCalc( FALSE );
+	else if ( nType == STATE_CHANGE_DATA )
+	{
+		if ( IsReallyVisible() && IsUpdateMode() )
+			ImplCalc( TRUE );
+	}
+	else if ( nType == STATE_CHANGE_UPDATEMODE )
+	{
+		if ( IsReallyVisible() && IsUpdateMode() )
+		{
+			ImplCalc( FALSE );
+			Invalidate();
+		}
+	}
+	else if ( nType == STATE_CHANGE_ENABLE )
+	{
+		if ( IsReallyVisible() && IsUpdateMode() )
+			Invalidate();
+	}
+	else if ( nType == STATE_CHANGE_STYLE )
+	{
+=====================================================================
+Found a 28 line (110 tokens) duplication in the following files: 
+Starting at line 1889 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+Starting at line 789 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+                    }
+				}
+                catch ( beans::UnknownPropertyException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::WrappedTargetException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( beans::PropertyVetoException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+                catch ( lang::IllegalArgumentException const & e )
+				{
+                    aRet[ n ] <<= e;
+				}
+			}
+            else
+            {
+                aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+            }
+		}
+	}
+=====================================================================
+Found a 27 line (110 tokens) duplication in the following files: 
+Starting at line 361 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_datasupplier.cxx
+Starting at line 337 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+
+    rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+    if ( xResultSet.is() )
+	{
+		// Callbacks follow!
+		aGuard.clear();
+
+		if ( nOldCount < m_pImpl->m_aResults.size() )
+			xResultSet->rowCountChanged(
+									nOldCount, m_pImpl->m_aResults.size() );
+
+		if ( m_pImpl->m_bCountFinal )
+			xResultSet->rowCountFinal();
+	}
+
+	return bFound;
+}
+
+//=========================================================================
+// virtual
+sal_uInt32 DataSupplier::totalCount()
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( m_pImpl->m_bCountFinal )
+		return m_pImpl->m_aResults.size();
+
+	sal_uInt32 nOldCount = m_pImpl->m_aResults.size();
+=====================================================================
+Found a 28 line (110 tokens) duplication in the following files: 
+Starting at line 1024 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 1889 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+                            }
+                        }
+                        catch ( beans::UnknownPropertyException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( lang::WrappedTargetException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( beans::PropertyVetoException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                        catch ( lang::IllegalArgumentException const & e )
+                        {
+                            aRet[ n ] <<= e;
+                        }
+                    }
+                    else
+                    {
+                        aRet[ n ] <<= uno::Exception(
+                                rtl::OUString::createFromAscii(
+                                    "No property set for storing the value!" ),
+                                static_cast< cppu::OWeakObject * >( this ) );
+                    }
+                }
+            }
+=====================================================================
+Found a 30 line (110 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 375 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+									queryContentIdentifierString( nIndex ) );
+		m_pImpl->m_aResults[ nIndex ]->xRow = xRow;
+		return xRow;
+	}
+
+	return uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::releasePropertyValues( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+		m_pImpl->m_aResults[ nIndex ]->xRow = uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::close()
+{
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::validate()
+	throw( ucb::ResultSetException )
+{
+}
+=====================================================================
+Found a 29 line (110 tokens) duplication in the following files: 
+Starting at line 2233 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/export.cxx
+Starting at line 2280 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/export.cxx
+
+						sOutput += "Title";
+                        //if ( !sCur.EqualsIgnoreCaseAscii("en-US") ) {
+						if ( ! Export::isSourceLanguage( sCur ) ) {
+							sOutput += "[ ";
+							sOutput += sCur;
+							sOutput += " ] ";
+						}
+						sOutput += "= ";
+                        ConvertMergeContent( sText );
+						sOutput += sText;
+						if ( bDefine )
+							sOutput += ";\\\n";
+						else if ( !bNextMustBeDefineEOL )
+							sOutput += ";\n";
+						else
+							bAddSemikolon = TRUE;
+						for ( USHORT j = 1; j < nLevel; j++ )
+							sOutput += "\t";
+						WriteToMerged( sOutput ,true );
+					}
+				}
+				if ( bAddSemikolon ) {
+					ByteString sOutput( ";" );
+					WriteToMerged( sOutput ,false);
+				}
+			}
+			// Merge Lists
+
+			if ( pResData->bList ) {
+=====================================================================
+Found a 15 line (110 tokens) duplication in the following files: 
+Starting at line 994 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindow.cxx
+Starting at line 1015 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindow.cxx
+
+        case VCLEVENT_WINDOW_DOCKING:
+        {
+        	if ( mxDockableWindowListener.is() )
+        	{
+                DockingData *pData = (DockingData*)rVclWindowEvent.GetData();
+
+                if( pData )
+                {
+        		    ::com::sun::star::awt::DockingEvent aEvent;
+        		    aEvent.Source = (::cppu::OWeakObject*)this;
+                    aEvent.TrackingRectangle = AWTRectangle( pData->maTrackRect );
+                    aEvent.MousePos.X = pData->maMousePos.X();
+                    aEvent.MousePos.Y = pData->maMousePos.Y();
+                    aEvent.bLiveMode = pData->mbLivemode;
+                    aEvent.bInteractive = pData->mbInteractive;
+=====================================================================
+Found a 24 line (110 tokens) duplication in the following files: 
+Starting at line 1602 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 1647 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    memset( pPieceGrpprls, 0, ( nGrpprl + 1 ) * sizeof(BYTE *) );
+    nPieceGrpprls = nGrpprl;
+    INT16 nAktGrpprl = 0;                       // lies Grpprls ein
+    while( 1 )
+    {
+        *pStr >> clxt;
+        nLeft--;
+        if( 2 == clxt)                          // PLCFfpcd ?
+            break;                              // PLCFfpcd gefunden
+        UINT16 nLen;
+        *pStr >> nLen;
+        nLeft -= 2 + nLen;
+        if( nLeft < 0 )
+            return 0;                           // schiefgegangen
+        if( 1 == clxt )                         // clxtGrpprl ?
+        {
+            BYTE* p = new BYTE[nLen+2];         // alloziere
+            ShortToSVBT16(nLen, p);             // trage Laenge ein
+            pStr->Read( p+2, nLen );            // lies grpprl
+            pPieceGrpprls[nAktGrpprl++] = p;    // trage in Array ein
+        }
+        else
+            pStr->SeekRel( nLen );              // ueberlies nicht-Grpprl
+    }
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 2404 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoobj.cxx
+Starting at line 2457 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoobj.cxx
+
+			Any *pAny = aRet.getArray();
+			for ( sal_Int32 i = 0; i < nCount; i++)
+			{
+				pSaveMap = pMap;
+				pMap = SfxItemPropertyMap::GetByName( pMap, pNames[i]);
+				if(!pMap)
+				{
+					if(pNames[i].equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_SKIP_HIDDEN_TEXT)) ||
+					   pNames[i].equalsAsciiL( SW_PROP_NAME(UNO_NAME_IS_SKIP_PROTECTED_TEXT)))
+					{
+						pMap = pSaveMap;
+						continue;
+					}
+					else
+						throw UnknownPropertyException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + pNames[i], static_cast < cppu::OWeakObject * > ( 0 ) );
+				}
+				if(pMap->nWID < RES_FRMATR_END)
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 929 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/tblsel.cxx
+Starting at line 2201 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/tblsel.cxx
+
+	for ( USHORT i = 0; i < aUnions.Count(); ++i )
+	{
+		SwSelUnion *pUnion = aUnions[i];
+		const SwTabFrm *pTable = pUnion->GetTable();
+
+        // Skip any repeated headlines in the follow:
+        const SwLayoutFrm* pRow = pTable->IsFollow() ?
+                                  pTable->GetFirstNonHeadlineRow() :
+                                  (const SwLayoutFrm*)pTable->Lower();
+
+		while ( pRow )
+		{
+			if ( pRow->Frm().IsOver( pUnion->GetUnion() ) )
+			{
+				const SwLayoutFrm *pCell = pRow->FirstCell();
+
+				while ( pCell && pRow->IsAnLower( pCell ) )
+				{
+=====================================================================
+Found a 28 line (110 tokens) duplication in the following files: 
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unopage.cxx
+Starting at line 116 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshcol.cxx
+
+void SvxShapeCollection::dispose()
+	throw(::com::sun::star::uno::RuntimeException)
+{
+	// An frequently programming error is to release the last
+	// reference to this object in the disposing message.
+	// Make it rubust, hold a self Reference.
+	uno::Reference< lang::XComponent > xSelf( this );
+
+	// Guard dispose against multible threading
+	// Remark: It is an error to call dispose more than once
+	sal_Bool bDoDispose = sal_False;
+	{
+	osl::MutexGuard aGuard( mrBHelper.rMutex );
+	if( !mrBHelper.bDisposed && !mrBHelper.bInDispose )
+	{
+		// only one call go into this section
+		mrBHelper.bInDispose = sal_True;
+		bDoDispose = sal_True;
+	}
+	}
+
+	// Do not hold the mutex because we are broadcasting
+	if( bDoDispose )
+	{
+		// Create an event with this as sender
+		try
+		{
+			uno::Reference< uno::XInterface > xSource( uno::Reference< uno::XInterface >::query( (lang::XComponent *)this ) );
+=====================================================================
+Found a 20 line (110 tokens) duplication in the following files: 
+Starting at line 3718 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3167 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+	aGeo.nDrehWink = 0;
+	aGeo.RecalcSinCos();
+	aGeo.nShearWink = 0;
+	aGeo.RecalcTan();
+
+	// force metric to pool metric
+	SfxMapUnit eMapUnit = pModel->GetItemPool().GetMetric(0);
+	if(eMapUnit != SFX_MAPUNIT_100TH_MM)
+	{
+		switch(eMapUnit)
+		{
+			case SFX_MAPUNIT_TWIP :
+			{
+				// position
+				aTranslate.setX(ImplMMToTwips(aTranslate.getX()));
+				aTranslate.setY(ImplMMToTwips(aTranslate.getY()));
+
+				// size
+				aScale.setX(ImplMMToTwips(aScale.getX()));
+				aScale.setY(ImplMMToTwips(aScale.getY()));
+=====================================================================
+Found a 29 line (110 tokens) duplication in the following files: 
+Starting at line 679 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpbitmap.cxx
+Starting at line 810 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpbitmap.cxx
+
+				long nCount     = pBitmapList->Count();
+
+				for( long i = 0; i < nCount && bDifferent; i++ )
+                    if( aName == pBitmapList->GetBitmap( i )->GetName() )
+						bDifferent = FALSE;
+
+				if( bDifferent ) {
+					nError = 0;
+					break;
+				}
+
+				if( !pWarnBox )
+				{
+					pWarnBox = new WarningBox( DLGWIN,
+											   WinBits( WB_OK_CANCEL ),
+											   String( ResId( nError, rMgr ) ) );
+					pWarnBox->SetHelpId( HID_WARN_NAME_DUPLICATE );
+				}
+
+
+				if( pWarnBox->Execute() != RET_OK )
+					break;
+			}
+			//Rectangle aDlgRect( pDlg->GetPosPixel(), pDlg->GetSizePixel() );
+			delete pDlg;
+			delete pWarnBox;
+
+			if( !nError )
+			{
+=====================================================================
+Found a 23 line (110 tokens) duplication in the following files: 
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/docrecovery.cxx
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/docrecovery.cxx
+
+void RecoveryCore::forgetAllRecoveryEntries()
+{
+    if (!m_xRealCore.is())
+        return;
+
+    css::util::URL aRemoveURL = impl_getParsedURL(RECOVERY_CMD_DO_ENTRY_CLEANUP);
+    css::uno::Sequence< css::beans::PropertyValue > lRemoveArgs(2);
+    lRemoveArgs[0].Name    = PROP_DISPATCHASYNCHRON;
+    lRemoveArgs[0].Value <<= sal_False;
+    lRemoveArgs[1].Name    = PROP_ENTRYID;
+    // lRemoveArgs[1].Value will be changed during next loop ...
+
+    // work on a copied list only ...
+    // Reason: We will get notifications from the core for every
+    // changed or removed element. And that will change our m_lURLs list.
+    // That's not a good idea, if we use a stl iterator inbetween .-)
+    TURLList lURLs = m_lURLs;
+    TURLList::const_iterator pIt;
+    for (  pIt  = lURLs.begin();
+           pIt != lURLs.end()  ;
+         ++pIt                 )
+    {
+        const TURLInfo& rInfo = *pIt;
+=====================================================================
+Found a 13 line (110 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/tbxcustomshapes.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/tbxalign.cxx
+
+void SAL_CALL SvxTbxCtlAlign::updateImage() throw (::com::sun::star::uno::RuntimeException)
+{
+    // We should update the button image of our parent (toolbar). Use the stored
+    // command to set the correct current image.
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+    if ( m_aCommand.getLength() > 0 )
+    {
+        ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame( getFrameInterface());
+        Image aImage = GetImage( xFrame, m_aCommand, hasBigImages(), isHighContrast() );
+        if ( !!aImage )
+            GetToolBox().SetItemImage( GetId(), aImage );
+    }
+}
+=====================================================================
+Found a 16 line (110 tokens) duplication in the following files: 
+Starting at line 261 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+void SAL_CALL ToolboxController::dispose() 
+throw (::com::sun::star::uno::RuntimeException)
+{
+    Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        if ( m_bDisposed )
+            throw DisposedException();
+    }
+
+    com::sun::star::lang::EventObject aEvent( xThis );
+    m_aListenerContainer.disposeAndClear( aEvent );
+
+    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+    Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+=====================================================================
+Found a 16 line (110 tokens) duplication in the following files: 
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/transfer.cxx
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/transfer.cxx
+
+	if( xSelection.is() && !mxTerminateListener.is() )
+	{
+		const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+
+		try
+		{
+            TransferableHelper*                 pThis = const_cast< TransferableHelper* >( this );
+			Reference< XMultiServiceFactory >   xFact( ::comphelper::getProcessServiceFactory() );
+
+			if( xFact.is() )
+			{
+				Reference< XDesktop > xDesktop( xFact->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.frame.Desktop" ) ), UNO_QUERY );
+
+				if( xDesktop.is() )
+					xDesktop->addTerminateListener( pThis->mxTerminateListener = new TerminateListener( *pThis ) );
+			}
+=====================================================================
+Found a 23 line (110 tokens) duplication in the following files: 
+Starting at line 993 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/ctrlbox.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/control/stdmenu.cxx
+
+		USHORT		nId = FONTSTYLEMENU_FIRSTID;
+		FontWeight	eLastWeight = WEIGHT_DONTKNOW;
+		FontItalic	eLastItalic = ITALIC_NONE;
+		FontWidth	eLastWidth = WIDTH_DONTKNOW;
+		BOOL		bNormal = FALSE;
+		BOOL		bItalic = FALSE;
+		BOOL		bBold = FALSE;
+		BOOL		bBoldItalic = FALSE;
+		BOOL		bInsert = FALSE;
+		FontInfo	aInfo;
+		while ( hFontInfo )
+		{
+			aInfo = pList->GetFontInfo( hFontInfo );
+
+			FontWeight	eWeight = aInfo.GetWeight();
+			FontItalic	eItalic = aInfo.GetItalic();
+			FontWidth	eWidth = aInfo.GetWidthType();
+			// Only if the attributes are different, we insert the
+			// Font to avoid double Entries in different languages
+			if ( (eWeight != eLastWeight) || (eItalic != eLastItalic) ||
+				 (eWidth != eLastWidth) )
+			{
+				if ( bInsert )
+=====================================================================
+Found a 27 line (110 tokens) duplication in the following files: 
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/desktopbe/desktopbecdef.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/gconfbe/gconfbecdef.cxx
+
+        GconfBackend::getBackendServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+	{ NULL, NULL, NULL, NULL, NULL, 0 }
+} ;
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+                                            const sal_Char **aEnvTypeName,
+                                            uno_Environment **/*aEnvironment*/) {
+    *aEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(void */*pServiceManager*/,
+                                                 void *pRegistryKey) {
+    
+    using namespace ::com::sun::star::registry;
+    if (pRegistryKey)
+    {
+        try
+        {
+            uno::Reference< XRegistryKey > xImplKey = static_cast< XRegistryKey* >( pRegistryKey )->createKey(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + GconfBackend::getBackendName()
+=====================================================================
+Found a 26 line (110 tokens) duplication in the following files: 
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
+Starting at line 381 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleTreeNode.cxx
+
+void SAL_CALL AccessibleTreeNode::addEventListener(
+    const Reference<XAccessibleEventListener >& rxListener) 
+    throw (RuntimeException)
+{
+	if (rxListener.is())
+    {
+        const osl::MutexGuard aGuard(maMutex);
+
+        if (IsDisposed())
+        {
+            uno::Reference<uno::XInterface> x ((lang::XComponent *)this, uno::UNO_QUERY);
+		    rxListener->disposing (lang::EventObject (x));
+	    }
+        else
+        {
+            if ( ! mnClientId)
+                mnClientId = comphelper::AccessibleEventNotifier::registerClient();
+            comphelper::AccessibleEventNotifier::addEventListener(mnClientId, rxListener);
+        }
+    }
+}
+
+
+
+
+void SAL_CALL AccessibleTreeNode::removeEventListener(
+=====================================================================
+Found a 14 line (110 tokens) duplication in the following files: 
+Starting at line 4492 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 914 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin2.cxx
+
+	BOOL bTimer = FALSE;
+	Point aPos = rMEvt.GetPosPixel();
+	SCsCOL nDx = 0;
+	SCsROW nDy = 0;
+	if ( aPos.X() < 0 ) nDx = -1;
+	if ( aPos.Y() < 0 ) nDy = -1;
+	Size aSize = GetOutputSizePixel();
+	if ( aPos.X() >= aSize.Width() )
+		nDx = 1;
+	if ( aPos.Y() >= aSize.Height() )
+		nDy = 1;
+	if ( nDx != 0 || nDy != 0 )
+	{
+		if ( bPagebreakDrawn )			// weginvertieren
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 1134 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+Starting at line 1278 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+void ScDBFunc::UngroupDataPilot()
+{
+    ScDPObject* pDPObj = GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
+                                        GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
+    if ( pDPObj )
+    {
+        StrCollection aEntries;
+        long nSelectDimension = -1;
+        GetSelectedMemberList( aEntries, nSelectDimension );
+
+        if ( aEntries.GetCount() > 0 )
+        {
+            BOOL bIsDataLayout;
+            String aDimName = pDPObj->GetDimName( nSelectDimension, bIsDataLayout );
+
+            ScDPSaveData aData( *pDPObj->GetSaveData() );
+            ScDPDimensionSaveData* pDimData = aData.GetDimensionData();     // created if not there
+=====================================================================
+Found a 15 line (110 tokens) duplication in the following files: 
+Starting at line 676 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 2772 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+	if (bUndo)
+	{
+		SCTAB nStartTab = aMarkRange.aStart.Tab();
+		SCTAB nTabCount = pDoc->GetTableCount();
+
+		ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+		pUndoDoc->InitUndo( pDoc, nStartTab, nStartTab );
+		for (SCTAB i=0; i<nTabCount; i++)
+			if (i != nStartTab && rMark.GetTableSelect(i))
+				pUndoDoc->AddUndoTab( i, i );
+
+		ScRange aCopyRange = aMarkRange;
+		aCopyRange.aStart.SetTab(0);
+		aCopyRange.aEnd.SetTab(nTabCount-1);
+		pDoc->CopyToDocument( aCopyRange, IDF_ATTRIB, TRUE, pUndoDoc, (ScMarkData*)&rMark );
+=====================================================================
+Found a 27 line (110 tokens) duplication in the following files: 
+Starting at line 901 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+Starting at line 1984 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+
+		USHORT	fBottom	= ( nValue & 0xF000 ) >> 12;
+
+		if( fLeft > 1 )
+			nLeft = 50;
+		else if( fLeft > 0 )
+			nLeft = 20;
+
+		if( fTop > 1 )
+			nTop = 50;
+		else if( fTop > 0 )
+			nTop = 20;
+
+		if( fRight > 1 )
+			nRight = 50;
+		else if( fRight > 0 )
+			nRight = 20;
+
+		if( fBottom > 1 )
+			nBottom = 50;
+		else if( fBottom > 0 )
+			nBottom = 20;
+
+		Color	ColorLeft( COL_BLACK );
+		Color	ColorTop( COL_BLACK );
+		Color	ColorRight( COL_BLACK );
+		Color	ColorBottom( COL_BLACK );
+		USHORT	nFrmColVal	= aFrameColor.pData[ nColorIndex ].Value;
+=====================================================================
+Found a 28 line (110 tokens) duplication in the following files: 
+Starting at line 173 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/autoform.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblafmt.cxx
+
+void SwAfVersions::Load( SvStream& rStream, USHORT nVer )
+{
+	rStream >> nFontVersion;
+	rStream >> nFontHeightVersion;
+	rStream >> nWeightVersion;
+	rStream >> nPostureVersion;
+	rStream >> nUnderlineVersion;
+	rStream >> nCrossedOutVersion;
+	rStream >> nContourVersion;
+	rStream >> nShadowedVersion;
+	rStream >> nColorVersion;
+	rStream >> nBoxVersion;
+    if ( nVer >= AUTOFORMAT_ID_680DR14 )
+        rStream >> nLineVersion;
+	rStream >> nBrushVersion;
+	rStream >> nAdjustVersion;
+	rStream >> nHorJustifyVersion;
+	rStream >> nVerJustifyVersion;
+	rStream >> nOrientationVersion;
+	rStream >> nMarginVersion;
+	rStream >> nBoolVersion;
+	if ( nVer >= AUTOFORMAT_ID_504 )
+	{
+		rStream >> nInt32Version;
+		rStream >> nRotateModeVersion;
+	}
+	rStream >> nNumFmtVersion;
+}
+=====================================================================
+Found a 26 line (110 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/autoform.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblafmt.cxx
+
+SwAfVersions::SwAfVersions() :
+	nFontVersion(0),
+	nFontHeightVersion(0),
+	nWeightVersion(0),
+	nPostureVersion(0),
+	nUnderlineVersion(0),
+	nCrossedOutVersion(0),
+	nContourVersion(0),
+	nShadowedVersion(0),
+	nColorVersion(0),
+	nBoxVersion(0),
+    nLineVersion(0),
+	nBrushVersion(0),
+	nAdjustVersion(0),
+	nHorJustifyVersion(0),
+	nVerJustifyVersion(0),
+	nOrientationVersion(0),
+	nMarginVersion(0),
+	nBoolVersion(0),
+	nInt32Version(0),
+	nRotateModeVersion(0),
+	nNumFmtVersion(0)
+{
+}
+
+void SwAfVersions::Load( SvStream& rStream, USHORT nVer )
+=====================================================================
+Found a 31 line (110 tokens) duplication in the following files: 
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testcopy/cbcpytest.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/clipboardwben/testpaste/cbptest.cxx
+
+					PasteClipboardData2(hWnd);
+					break;
+
+				case IDM_EXIT:
+				   DestroyWindow( hWnd );
+				   break;
+
+				default:
+				   return DefWindowProc( hWnd, message, wParam, lParam );
+			}
+			break;
+
+		case WM_PAINT:
+			hdc = BeginPaint (hWnd, &ps);
+			// ZU ERLEDIGEN: Hier beliebigen Code zum Zeichnen hinzuf�gen...
+			RECT rt;
+			GetClientRect( hWnd, &rt );
+			
+			if ( NULL != pTextBuff )
+			{
+				DrawText( hdc, pTextBuff, lData, &rt, DT_CENTER );
+			}
+			else
+			{
+				DrawText( hdc, szHello, strlen(szHello), &rt, DT_CENTER );
+			}
+
+			EndPaint( hWnd, &ps );
+			break;
+
+		case WM_DESTROY:
+=====================================================================
+Found a 29 line (110 tokens) duplication in the following files: 
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022cn.c
+Starting at line 355 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022kr.c
+
+        for (; nConverted < nSrcChars; ++nConverted)
+        {
+            sal_Bool bUndefined = sal_True;
+            sal_uInt32 nChar = *pSrcBuf++;
+            if (nHighSurrogate == 0)
+            {
+                if (ImplIsHighSurrogate(nChar))
+                {
+                    nHighSurrogate = (sal_Unicode) nChar;
+                    continue;
+                }
+            }
+            else if (ImplIsLowSurrogate(nChar))
+                nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
+            else
+            {
+                bUndefined = sal_False;
+                goto bad_input;
+            }
+
+            if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
+            {
+                bUndefined = sal_False;
+                goto bad_input;
+            }
+
+            if (nChar == 0x0A || nChar == 0x0D) /* LF, CR */
+            {
+                if (eSet == IMPL_UNICODE_TO_ISO_2022_KR_SET_1001)
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 3221 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+Starting at line 3264 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+
+bool PrintFontManager::getMetrics( fontID nFontID, sal_Unicode minCharacter, sal_Unicode maxCharacter, CharacterMetric* pArray, bool bVertical ) const
+{
+    PrintFont* pFont = getFont( nFontID );
+    if( ! pFont )
+        return false;
+
+    if( ( pFont->m_nAscend == 0 && pFont->m_nDescend == 0 )
+        || ! pFont->m_pMetrics || pFont->m_pMetrics->isEmpty()
+        )
+    {
+        // might be a font not yet analyzed
+        if( pFont->m_eType == fonttype::Type1 || pFont->m_eType == fonttype::Builtin )
+            pFont->readAfmMetrics( getAfmFile( pFont ), m_pAtoms, false, false );
+        else if( pFont->m_eType == fonttype::TrueType )
+            analyzeTrueTypeFile( pFont );
+    }
+
+    for( sal_Unicode code = minCharacter; code <= maxCharacter; code++ )
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 2676 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+Starting at line 2709 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontmanager/fontmanager.cxx
+
+                if( aBuiltinPSNames.find( pFont->m_nPSName ) != aBuiltinPSNames.end() )
+                {
+                    bool bInsert = true;
+                    if( bUseOverrideMetrics )
+                    {
+                        // in override case only use the override fonts, not their counterparts
+                        std::map<int,fontID>::const_iterator over = aOverridePSNames.find( pFont->m_nPSName );
+                        if( over != aOverridePSNames.end() && over->second != it->first )
+                            bInsert = false;
+                    }
+                    else
+                    {
+                        // do not insert override fonts in non override case
+                        if( std::find( m_aOverrideFonts.begin(), m_aOverrideFonts.end(), it->first ) != m_aOverrideFonts.end() )
+                            bInsert = false;
+                    }
+                    if( bInsert )
+=====================================================================
+Found a 8 line (110 tokens) duplication in the following files: 
+Starting at line 2322 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 2333 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+			{
+				m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
+								(	::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
+								,	::getCppuType( ( const uno::Reference< embed::XStorage >* )NULL )
+								,	::getCppuType( ( const uno::Reference< embed::XTransactedObject >* )NULL )
+								,	::getCppuType( ( const uno::Reference< embed::XTransactionBroadcaster >* )NULL )
+								,	::getCppuType( ( const uno::Reference< util::XModifiable >* )NULL )
+								,	::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 139 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/opipe.cxx
+
+			   RuntimeException );
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference< XConnectable >& aPredecessor)
+		throw( RuntimeException );
+    virtual Reference< XConnectable > SAL_CALL getPredecessor(void) throw( RuntimeException );
+    virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
+		throw( RuntimeException );
+    virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw( RuntimeException ) ;
+
+
+public: // XServiceInfo
+    OUString                    SAL_CALL getImplementationName() throw(  );
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw(  );
+    sal_Bool                        SAL_CALL supportsService(const OUString& ServiceName) throw(  );
+
+private:
+=====================================================================
+Found a 4 line (110 tokens) duplication in the following files: 
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 4 line (110 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1c,0x0e,
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (110 tokens) duplication in the following files: 
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1c,0x0e,
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 937 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (110 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1c,0x0e,
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 3 line (110 tokens) duplication in the following files: 
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+Starting at line 504 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/casefolding_data.h
+
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // ffe8 - ffef
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff0 - fff7
+    {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x0000}, // fff8 - ffff
+=====================================================================
+Found a 5 line (110 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 19 line (110 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 544 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+  double big, pivinv, save;
+
+  for (j = 0; j < n; j++)
+    ipiv[j] = 0;
+
+  for (i = 0; i < n; i++)
+  {
+    big = 0;
+    for (j = 0; j < n; j++)
+    {
+      if ( ipiv[j] != 1 )
+      {
+	for (k = 0; k < n; k++)
+	{
+	  if ( ipiv[k] == 0 )
+	  {
+	    if ( fabs(a[j][k]) >= big )
+	    {
+	      big = fabs(a[j][k]);
+=====================================================================
+Found a 21 line (110 tokens) duplication in the following files: 
+Starting at line 1798 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+Starting at line 1908 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eps/eps.cxx
+
+					ImplWriteLine( "/Decode[0 1 0 1 0 1]" );
+					*mpPS << "/ImageMatrix[";
+					ImplWriteLong( nWidth );
+					*mpPS << "0 0 ";
+					ImplWriteLong( -nHeight );
+					ImplWriteLong( 0 );
+					ImplWriteLong( nHeight, PS_NONE );
+					ImplWriteByte( ']', PS_RET );
+					ImplWriteLine( "/DataSource currentfile" );
+					ImplWriteLine( "/ASCIIHexDecode filter" );
+					if ( mbCompression )
+						ImplWriteLine( "/LZWDecode filter" );
+					ImplWriteLine( ">>" );
+					ImplWriteLine( "image" );
+					if ( mbCompression )
+					{
+						StartCompression();
+						for ( long y = 0; y < nHeight; y++ )
+						{
+							for ( long x = 0; x < nWidth; x++ )
+							{
+=====================================================================
+Found a 13 line (110 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/menubarfactory.cxx
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/statusbarfactory.cxx
+
+    Sequence< Any > aPropSeq( 4 );
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
+    aPropValue.Value <<= xFrame;
+    aPropSeq[0] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ConfigurationSource" ));
+    aPropValue.Value <<= xCfgMgr;
+    aPropSeq[1] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResourceURL" ));
+    aPropValue.Value <<= aResourceURL;
+    aPropSeq[2] <<= aPropValue;
+    aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Persistent" ));
+    aPropValue.Value <<= bPersistent;
+    aPropSeq[3] <<= aPropValue;
+=====================================================================
+Found a 19 line (110 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+
+void SAL_CALL FooterMenuController::select( const css::awt::MenuEvent& rEvent ) throw (RuntimeException)
+{
+    Reference< css::awt::XPopupMenu >   xPopupMenu;
+    Reference< XDispatch >              xDispatch;
+    Reference< XMultiServiceFactory >   xServiceManager;
+
+    ResetableGuard aLock( m_aLock );
+    xPopupMenu      = m_xPopupMenu;
+    xDispatch       = m_xDispatch;
+    xServiceManager = m_xServiceManager;
+    aLock.unlock();
+
+    if ( xPopupMenu.is() && xDispatch.is() )
+    {
+        VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+        if ( pPopupMenu )
+        {
+            css::util::URL               aTargetURL;
+	        Sequence<PropertyValue>	     aArgs( 1 );
+=====================================================================
+Found a 21 line (110 tokens) duplication in the following files: 
+Starting at line 1083 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 1469 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::store() 
+throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aGuard( m_aLock );
+
+    if ( m_bDisposed )
+        throw DisposedException();
+
+    if ( m_bModified )
+    {
+        sal_Bool bWritten( sal_False );
+        for ( sal_Int32 i = 0; i < ImageType_COUNT; i++ )
+        {
+            sal_Bool bSuccess = implts_storeUserImages( ImageType(i), m_xUserImageStorage, m_xUserBitmapsStorage );
+            if ( bSuccess )
+                bWritten = sal_True;
+            m_bUserImageListModified[i] = false;
+        }
+
+        if ( bWritten && 
+             m_xUserConfigStorage.is() &&  
+=====================================================================
+Found a 3 line (110 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/globalsettings.cxx
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xml/xmltxtexp.cxx
+
+    virtual void SAL_CALL dispose(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 11 line (110 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/uiconfigelementwrapperbase.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarwrapper.cxx
+
+DEFINE_XTYPEPROVIDER_11 (   MenuBarWrapper                                  ,
+                            ::com::sun::star::lang::XTypeProvider           ,
+                            ::com::sun::star::ui::XUIElement                ,
+                            ::com::sun::star::ui::XUIElementSettings        ,
+                            ::com::sun::star::beans::XMultiPropertySet      ,
+                            ::com::sun::star::beans::XFastPropertySet       ,
+                            ::com::sun::star::beans::XPropertySet           ,
+                            ::com::sun::star::lang::XInitialization         ,
+                            ::com::sun::star::lang::XComponent              ,
+                            ::com::sun::star::util::XUpdatable              ,
+                            ::com::sun::star::ui::XUIConfigurationListener  ,
+=====================================================================
+Found a 19 line (110 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/dispatch/menudispatcher.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/dispatch/popupmenudispatcher.cxx
+
+namespace framework{
+
+using namespace ::com::sun::star				;
+using namespace ::com::sun::star::awt			;
+using namespace ::com::sun::star::beans			;
+using namespace ::com::sun::star::container		;
+using namespace ::com::sun::star::frame			;
+using namespace ::com::sun::star::lang			;
+using namespace ::com::sun::star::uno			;
+using namespace ::com::sun::star::util			;
+using namespace ::cppu							;
+using namespace ::osl							;
+using namespace ::rtl							;
+using namespace ::vos							;
+
+//_________________________________________________________________________________________________________________
+//	non exported const
+//_________________________________________________________________________________________________________________
+const char*     PROTOCOL_VALUE      = "vnd.sun.star.popup:";
+=====================================================================
+Found a 16 line (110 tokens) duplication in the following files: 
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 730 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+			aNormSize.Width() = pDX[ nLen - 2 ] + mpVDev->GetTextWidth( rText.GetChar( sal::static_int_cast<USHORT>( nLen - 1 ) ) );
+
+			if( nWidth && aNormSize.Width() && ( nWidth != aNormSize.Width() ) )
+			{
+				const double fFactor = (double) nWidth / aNormSize.Width();
+
+				for( i = 0; i < ( nLen - 1 ); i++ )
+					pDX[ i ] = FRound( pDX[ i ] * fFactor );
+			}
+		}
+
+		FastString			aStyle;
+		const Font&			rFont = mpVDev->GetFont();
+		const FontMetric	aMetric( mpVDev->GetFontMetric() );
+		Point				aBaseLinePos( rPos );
+		SvXMLElementExport*	pTransform = NULL;
+=====================================================================
+Found a 29 line (110 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+void SAL_CALL
+Interceptor::addEventListener( 
+	const uno::Reference<lang::XEventListener >& Listener )
+	throw( uno::RuntimeException )
+{
+	osl::MutexGuard aGuard( m_aMutex );
+	
+	if ( ! m_pDisposeEventListeners )
+		m_pDisposeEventListeners =
+			new cppu::OInterfaceContainerHelper( m_aMutex );
+	
+	m_pDisposeEventListeners->addInterface( Listener );
+}
+
+
+void SAL_CALL
+Interceptor::removeEventListener( 
+	const uno::Reference< lang::XEventListener >& Listener )
+	throw( uno::RuntimeException )
+{
+	osl::MutexGuard aGuard( m_aMutex );
+	
+	if ( m_pDisposeEventListeners )
+		m_pDisposeEventListeners->removeInterface( Listener );
+}
+
+
+void SAL_CALL Interceptor::dispose()
+	throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 13 line (110 tokens) duplication in the following files: 
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) UNOEmbeddedObjectCreator::createInstanceInitNew" );
+
+	uno::Reference< uno::XInterface > xResult;
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											3 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											4 );
+=====================================================================
+Found a 20 line (110 tokens) duplication in the following files: 
+Starting at line 681 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/embedobj.cxx
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/oleembed.cxx
+
+void SAL_CALL OleEmbeddedObject::setUpdateMode( sal_Int32 nMode )
+		throw ( embed::WrongStateException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object has no persistence!\n" ),
+										uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	
+	OSL_ENSURE( nMode == embed::EmbedUpdateModes::ALWAYS_UPDATE
+					|| nMode == embed::EmbedUpdateModes::EXPLICIT_UPDATE,
+				"Unknown update mode!\n" );
+	m_nUpdateMode = nMode;
+}
+
+//----------------------------------------------
+sal_Int64 SAL_CALL OleEmbeddedObject::getStatus( sal_Int64
+=====================================================================
+Found a 4 line (110 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1c,0x0e,
+=====================================================================
+Found a 14 line (110 tokens) duplication in the following files: 
+Starting at line 471 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+
+sal_Bool FirstStartWizard::impl_isFirstStart()
+{
+    try {
+        Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+        // get configuration provider
+        Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+        xFactory->createInstance(sConfigSrvc), UNO_QUERY_THROW);
+        Sequence< Any > theArgs(1);
+        NamedValue v(OUString::createFromAscii("NodePath"), 
+            makeAny(OUString::createFromAscii("org.openoffice.Setup/Office")));
+        theArgs[0] <<= v;
+        Reference< XPropertySet > pset = Reference< XPropertySet >(
+            theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs), UNO_QUERY_THROW);
+        Any result = pset->getPropertyValue(OUString::createFromAscii("FirstStartWizardCompleted"));
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 102 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/DriverSettings.cxx
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/DriverSettings.cxx
+
+		default:
+			_rDetailsIds.push_back(DSID_ADDITIONALOPTIONS);
+			_rDetailsIds.push_back(DSID_CHARSET);
+			_rDetailsIds.push_back(DSID_SQL92CHECK);
+			_rDetailsIds.push_back(DSID_USECATALOG);
+			_rDetailsIds.push_back(DSID_AUTOINCREMENTVALUE);
+			_rDetailsIds.push_back(DSID_AUTORETRIEVEVALUE);
+			_rDetailsIds.push_back(DSID_AUTORETRIEVEENABLED);
+			_rDetailsIds.push_back(DSID_PARAMETERNAMESUBST);
+			_rDetailsIds.push_back(DSID_SUPPRESSVERSIONCL);
+			_rDetailsIds.push_back(DSID_ENABLEOUTERJOIN);
+			_rDetailsIds.push_back(DSID_CATALOG);
+			_rDetailsIds.push_back(DSID_SCHEMA);
+			_rDetailsIds.push_back(DSID_APPEND_TABLE_ALIAS);
+			_rDetailsIds.push_back(DSID_AS_BEFORE_CORRNAME);
+			_rDetailsIds.push_back(DSID_BOOLEANCOMPARISON);
+			_rDetailsIds.push_back(DSID_INDEXAPPENDIX);
+=====================================================================
+Found a 3 line (110 tokens) duplication in the following files: 
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/documentdefinition.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/ipclient.cxx
+
+    virtual void SAL_CALL changingState( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::embed::WrongStateException, ::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL stateChanged( const ::com::sun::star::lang::EventObject& aEvent, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 24 line (110 tokens) duplication in the following files: 
+Starting at line 867 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 907 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+                                                const ::basegfx::B2DHomMatrix&	rTextTransform ) :
+                mxFont( rState.xFont ),
+                maStringContext( rText, nStartPos, nLen ),
+                mpCanvas( rCanvas ),
+                maState(),
+                maTextLineInfo( tools::createTextLineInfo( rVDev, rState ) ),
+                maLinesOverallSize(),
+                mnLineWidth( getLineWidth( rVDev, rState, maStringContext ) ),
+                mxTextLines(),
+                maReliefOffset( rReliefOffset ),
+                maReliefColor( rReliefColor ),
+                maShadowOffset( rShadowOffset ),
+                maShadowColor( rShadowColor ),
+                maTextDirection( rState.textDirection )
+            {
+                initEffectLinePolyPolygon( maLinesOverallSize,
+                                           mxTextLines,
+                                           rCanvas,
+                                           mnLineWidth,
+                                           maTextLineInfo );
+
+                init( maState, mxFont, 
+                      rStartPoint, 
+                      rState, rCanvas, rTextTransform );
+=====================================================================
+Found a 17 line (110 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CCatalog.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DCatalog.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LCatalog.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/ECatalog.cxx
+
+void OFlatCatalog::refreshTables()
+{
+	TStringVector aVector;
+	Sequence< ::rtl::OUString > aTypes;
+	Reference< XResultSet > xResult = m_xMetaData->getTables(Any(),
+		::rtl::OUString::createFromAscii("%"),::rtl::OUString::createFromAscii("%"),aTypes);
+
+	if(xResult.is())
+	{
+		Reference< XRow > xRow(xResult,UNO_QUERY);
+		while(xResult->next())
+			aVector.push_back(xRow->getString(3));
+	}
+	if(m_pTables)
+		m_pTables->reFill(aVector);
+	else
+		m_pTables = new OFlatTables(m_xMetaData,*this,m_aMutex,aVector);
+=====================================================================
+Found a 32 line (110 tokens) duplication in the following files: 
+Starting at line 813 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 1062 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+	}
+}
+// -------------------------------------------------------------------------
+void OStatement_Base::getFastPropertyValue(Any& rValue,sal_Int32 nHandle) const
+{
+	switch(nHandle)
+	{
+		case PROPERTY_ID_QUERYTIMEOUT:
+			rValue <<= getQueryTimeOut();
+			break;
+		case PROPERTY_ID_MAXFIELDSIZE:
+			rValue <<= getMaxFieldSize();
+			break;
+		case PROPERTY_ID_MAXROWS:
+			rValue <<= getMaxRows();
+			break;
+		case PROPERTY_ID_CURSORNAME:
+			rValue <<= getCursorName();
+			break;
+		case PROPERTY_ID_RESULTSETCONCURRENCY:
+			rValue <<= getResultSetConcurrency();
+			break;
+		case PROPERTY_ID_RESULTSETTYPE:
+			rValue <<= getResultSetType();
+			break;
+		case PROPERTY_ID_FETCHDIRECTION:
+			rValue <<= getFetchDirection();
+			break;
+		case PROPERTY_ID_FETCHSIZE:
+			rValue <<= getFetchSize();
+			break;
+		case PROPERTY_ID_USEBOOKMARKS:
+=====================================================================
+Found a 22 line (110 tokens) duplication in the following files: 
+Starting at line 1363 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FValue.cxx
+Starting at line 1433 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/commontools/FValue.cxx
+
+				nRet = dbtools::DBTypeConversion::toDouble(*(::com::sun::star::util::DateTime*)m_aValue.m_pValue);
+				break;
+			case DataType::BINARY:
+			case DataType::VARBINARY:
+			case DataType::LONGVARBINARY:
+				OSL_ASSERT(!"getDouble() for this type is not allowed!");
+				break;
+			case DataType::BIT:
+			case DataType::BOOLEAN:
+				nRet = m_aValue.m_bBool;
+				break;
+			case DataType::TINYINT:
+				if ( m_bSigned )
+					nRet = m_aValue.m_nInt8;
+				else
+					nRet = m_aValue.m_nInt16;
+				break;
+			case DataType::SMALLINT:
+				if ( m_bSigned )
+					nRet = m_aValue.m_nInt16;
+				else
+					nRet = m_aValue.m_nInt32;
+=====================================================================
+Found a 13 line (110 tokens) duplication in the following files: 
+Starting at line 2042 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/noderef.cxx
+Starting at line 2058 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/noderef.cxx
+
+bool isSetNode(Tree const& aTree, NodeRef const& aNode)
+{
+	OSL_PRECOND( !aNode.isValid() || !aTree.isEmpty(), "ERROR: Configuration: Tree operation requires a valid Tree");
+	OSL_PRECOND( !aNode.isValid() || aTree.isValidNode(aNode), "WARNING: Configuration: NodeRef does not match Tree");
+
+    view::ViewTreeAccess aView = aTree.getView();
+
+    OSL_ASSERT( !aNode.isValid() || 
+                aView.isGroupNode(aNode) || 
+                aView.isSetNode(aNode) ||
+                (aView.isValueNode(aNode) && isRootNode(aTree,aNode)) );
+
+	return aNode.isValid() && aView.isSetNode(aNode);
+=====================================================================
+Found a 25 line (110 tokens) duplication in the following files: 
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/idlmaker/idltype.cxx
+
+void IdlType::dumpNameSpace(FileStream& o, sal_Bool bOpen, sal_Bool bFull, const OString& type)
+{
+	OString typeName(type);
+	sal_Bool bOneLine = sal_True;
+	if (typeName.getLength() == 0)
+	{
+		typeName = m_typeName;
+		bOneLine = sal_False;
+	}
+
+	if (typeName == "/")
+		return;
+
+	if (typeName.indexOf( '/' ) == -1 && !bFull)
+		return;
+
+	if (!bFull)
+        typeName = typeName.copy( 0, typeName.lastIndexOf( '/' ) );
+
+	if (bOpen)
+	{
+        sal_Int32 nIndex = 0;
+		do
+		{
+			o << "module " << typeName.getToken(0, '/', nIndex);
+=====================================================================
+Found a 30 line (110 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/PageBackground.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/StockBar.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/Title.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/Wall.cxx
+
+uno::Any Wall::GetDefaultValue( sal_Int32 nHandle ) const
+    throw(beans::UnknownPropertyException)
+{
+    static tPropertyValueMap aStaticDefaults;
+
+    // /--
+    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aStaticDefaults.size() )
+    {
+        // initialize defaults
+        LineProperties::AddDefaultsToMap( aStaticDefaults );
+        FillProperties::AddDefaultsToMap( aStaticDefaults );
+
+        // initialize defaults
+        // Note: this should be last to override defaults of the previously
+        // added defaults
+        lcl_AddDefaultsToMap( aStaticDefaults );
+    }
+
+    tPropertyValueMap::const_iterator aFound(
+        aStaticDefaults.find( nHandle ));
+
+    if( aFound == aStaticDefaults.end())
+        return uno::Any();
+
+    return (*aFound).second;
+    // \--
+}
+
+::cppu::IPropertyArrayHelper & SAL_CALL Wall::getInfoHelper()
+=====================================================================
+Found a 21 line (110 tokens) duplication in the following files: 
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataPointStyle.cxx
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataSeriesStyle.cxx
+
+using namespace ::com::sun::star;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::beans::Property;
+using ::osl::MutexGuard;
+
+// ____________________________________________________________
+
+namespace
+{
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+    static uno::Sequence< Property > aPropSeq;
+
+    // /--
+    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        ::chart::DataSeriesProperties::AddPropertiesToVector( aProperties );
+=====================================================================
+Found a 20 line (110 tokens) duplication in the following files: 
+Starting at line 422 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+
+uno::Sequence< uno::Any > SAL_CALL UpDownBarWrapper::getPropertyDefaults( const uno::Sequence< ::rtl::OUString >& rNameSeq )
+                    throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+    Sequence< Any > aRetSeq;
+    if( rNameSeq.getLength() )
+    {
+        aRetSeq.realloc( rNameSeq.getLength() );
+        for(sal_Int32 nN=0; nN<rNameSeq.getLength(); nN++)
+        {
+            ::rtl::OUString aPropertyName( rNameSeq[nN] );
+            aRetSeq[nN] = this->getPropertyDefault( aPropertyName );
+        }
+    }
+    return aRetSeq;
+}
+
+
+// ================================================================================
+
+Sequence< OUString > UpDownBarWrapper::getSupportedServiceNames_Static()
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 324 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+            {
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[2] ),
+=====================================================================
+Found a 29 line (110 tokens) duplication in the following files: 
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+
+        : : "m" (dret), "m" (iret), "m" (iret2)
+    );
+
+
+    switch( eReturnType )
+	{
+		case typelib_TypeClass_HYPER:
+		case typelib_TypeClass_UNSIGNED_HYPER:
+			((long*)pRegisterReturn)[1] = iret2;
+                        // fall thru on purpose
+		case typelib_TypeClass_LONG:
+		case typelib_TypeClass_UNSIGNED_LONG:
+		case typelib_TypeClass_ENUM:
+			((long*)pRegisterReturn)[0] = iret;
+			break;
+
+		case typelib_TypeClass_CHAR:
+		case typelib_TypeClass_SHORT:
+		case typelib_TypeClass_UNSIGNED_SHORT:
+		        *(unsigned short*)pRegisterReturn = (unsigned short)iret;
+			break;
+
+		case typelib_TypeClass_BOOLEAN:
+		case typelib_TypeClass_BYTE:
+		        *(unsigned char*)pRegisterReturn = (unsigned char)iret;
+			break;
+
+		case typelib_TypeClass_FLOAT:
+		        *(float*)pRegisterReturn = (float)dret;
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 312 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+            {
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[2] ),
+=====================================================================
+Found a 27 line (110 tokens) duplication in the following files: 
+Starting at line 53 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+using namespace com::sun::star::uno;
+
+namespace
+{
+//==================================================================================================
+static typelib_TypeClass cpp2uno_call(
+	 bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** pCallStack,
+	sal_Int64 * pRegisterReturn /* space for register return */ )
+{
+	// pCallStack: [ret ptr], this, params
+	char * pCppStack = (char *)pCallStack;
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+=====================================================================
+Found a 18 line (110 tokens) duplication in the following files: 
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+			eRet = typelib_TypeClass_VOID;
+			break;
+		case 0: // queryInterface() opt
+		{
+			typelib_TypeDescription * pTD = 0;
+			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
+			if (pTD)
+            {
+                XInterface * pInterface = 0;
+                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
+                    pCppI->getBridge()->getCppEnv(),
+                    (void **)&pInterface, pCppI->getOid().pData,
+                    (typelib_InterfaceTypeDescription *)pTD );
+
+                if (pInterface)
+                {
+                    ::uno_any_construct(
+                        reinterpret_cast< uno_Any * >( pCallStack[2] ),
+=====================================================================
+Found a 28 line (110 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxuint.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxulng.cxx
+
+	UINT32 nRes;
+start:
+	switch( p->eType )
+	{
+		case SbxNULL:
+			SbxBase::SetError( SbxERR_CONVERSION );
+		case SbxEMPTY:
+			nRes = 0; break;
+		case SbxCHAR:
+			nRes = p->nChar;
+			break;
+		case SbxBYTE:
+			nRes = p->nByte; break;
+		case SbxINTEGER:
+		case SbxBOOL:
+			if( p->nInteger < 0 )
+			{
+				SbxBase::SetError( SbxERR_OVERFLOW ); nRes = 0;
+			}
+			else
+				nRes = p->nInteger;
+			break;
+		case SbxERROR:
+		case SbxUSHORT:
+			nRes = p->nUShort;
+			break;
+		case SbxLONG:
+			if( p->nLong < 0 )
+=====================================================================
+Found a 38 line (109 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/FileXXmlReader.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/unocomponent/debugservices/xxml/StorageXXmlReader.cxx
+
+const sal_Char StorageXXmlReader::IMPLEMENTATION_NAME[40] = "debugservices.xxml.StorageXXmlReader";
+
+
+class MyHandler : public xxml::ContentHandler
+{
+public:
+	int events;
+	virtual void startDocument()
+	{
+		events=1;
+	}
+	virtual void endDocument()
+	{
+		events++;
+	}
+	virtual void startElement(QName_t /*name*/, QName_t * /*attrName[]*/, const xxml::Value ** /*attrValue[]*/, int attrs)
+	{
+		events++;
+//		printf("<{%s}:%s>\n", QName::serializer().getNamespaceUri(name), QName::serializer().getLocalName(name));
+		for(int i=0;i<attrs;i++)
+		{
+//			printf("@{%s}:%s=\"%s\"\n", QName::serializer().getNamespaceUri(attrName[i]), QName::serializer().getLocalName(attrName[i]), attrValue[i]->getOString().getStr());
+			events++;
+		}
+	}
+
+	virtual void endElement(QName_t /*name*/)
+	{
+		//printf("</{%s}:%s>\n", QName::serializer().getNamespaceUri(name), QName::serializer().getLocalName(name));
+		events++;
+	}
+	virtual void characters(const xxml::Value & /*value*/)
+	{
+		//printf("\"%s\"\n", value.getOString().getStr());
+		events++;
+	}
+
+	virtual void startStream(QName_t stream)
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 4552 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6388 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x00,0x00,0x68,0x54,0x54,0x44,0x44,0x44,0x44,0x00,0x00,
+
+        7, // 0x6E 'n'
+        0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+        7, // 0x6F 'o'
+        0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+        7, // 0x70 'p'
+        0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+        7, // 0x71 'q'
+        0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,
+=====================================================================
+Found a 18 line (109 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //--------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 24 line (109 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_gray.h
+
+                    y_hr += ry_inv;
+                    ++y_lr;
+                }
+                while(y_hr < filter_size);
+
+                fg        /= total_weight;
+                src_alpha /= total_weight;
+
+                if(fg        < 0) fg        = 0;
+                if(src_alpha < 0) src_alpha = 0;
+
+                if(src_alpha > base_mask) src_alpha = base_mask;
+                if(fg        > src_alpha) fg        = src_alpha;
+
+                span->v = (value_type)fg;
+                span->a = (value_type)src_alpha;
+
+                ++span;
+                ++base_type::interpolator();
+            } while(--len);
+            return base_type::allocator().span();
+        }
+        
+    };
+=====================================================================
+Found a 11 line (109 tokens) duplication in the following files: 
+Starting at line 395 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 957 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+                calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+                if(alpha == base_mask)
+                {
+                    pixel_type v;
+                    ((value_type*)&v)[order_type::R] = c.r;
+                    ((value_type*)&v)[order_type::G] = c.g;
+                    ((value_type*)&v)[order_type::B] = c.b;
+                    ((value_type*)&v)[order_type::A] = c.a;
+                    do
+                    {
+                        *(pixel_type*)(m_rbuf->span_ptr(x, y++, 1)) = v;
+=====================================================================
+Found a 24 line (109 tokens) duplication in the following files: 
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+Starting at line 205 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+
+	xmlNodePtr pNode = NULL ;
+	//sal_Bool valid ;
+
+	if( !aTemplate.is() )
+		throw RuntimeException() ;
+
+	if( !aSecurityCtx.is() )
+		throw RuntimeException() ;
+
+	//Get Keys Manager
+	Reference< XSecurityEnvironment > xSecEnv 
+		= aSecurityCtx->getSecurityEnvironmentByIndex(
+			aSecurityCtx->getDefaultSecurityEnvironmentIndex());
+	Reference< XUnoTunnel > xSecTunnel( xSecEnv , UNO_QUERY ) ;
+	if( !xSecTunnel.is() ) {
+		 throw RuntimeException() ;
+	}
+
+	SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xSecTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
+	if( pSecEnv == NULL )
+		throw RuntimeException() ;
+
+	//Get the xml node
+	Reference< XXMLElementWrapper > xElement = aTemplate->getTemplate() ;
+=====================================================================
+Found a 18 line (109 tokens) duplication in the following files: 
+Starting at line 1184 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 1538 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+Starting at line 2133 of /local/ooo-build/ooo-build/src/oog680-m3/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
+
+Reference< xml::input::XElement > WindowElement::startChildElement(
+	sal_Int32 nUid, OUString const & rLocalName,
+	Reference< xml::input::XAttributes > const & xAttributes )
+	throw (xml::sax::SAXException, RuntimeException)
+{
+	// event
+    if (_pImport->isEventElement( nUid, rLocalName ))
+	{
+		return new EventElement( nUid, rLocalName, xAttributes, this, _pImport );
+	}
+	else if (_pImport->XMLNS_DIALOGS_UID != nUid)
+	{
+		throw xml::sax::SAXException(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal namespace!") ),
+			Reference< XInterface >(), Any() );
+	}
+	// styles
+	else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("styles") ))
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 1559 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/animationexport.cxx
+Starting at line 1686 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/animationexport.cxx
+
+	if( rValue.getValueType() == ::getCppuType((Sequence<Any>*)0) )
+	{
+		const Sequence<Any>* pSequence = static_cast< const Sequence<Any>* >( rValue.getValue() );
+		const sal_Int32 nLength = pSequence->getLength();
+		sal_Int32 nElement;
+		const Any* pAny = pSequence->getConstArray();
+
+		OUStringBuffer sTmp2;
+		
+		for( nElement = 0; nElement < nLength; nElement++, pAny++ )
+		{
+			if( sTmp.getLength() )
+				sTmp.append( (sal_Unicode)';' );
+=====================================================================
+Found a 21 line (109 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/XMLTextShapeStyleContext.cxx
+
+SvXMLImportContext *XMLTextShapeStyleContext::CreateChildContext(
+		sal_uInt16 nPrefix,
+		const OUString& rLocalName,
+		const Reference< XAttributeList > & xAttrList )
+{
+	SvXMLImportContext *pContext = 0;
+
+	if( XML_NAMESPACE_STYLE == nPrefix )
+	{
+		sal_uInt32 nFamily = 0;
+		if( IsXMLToken( rLocalName, XML_TEXT_PROPERTIES ) )
+			nFamily = XML_TYPE_PROP_TEXT;
+		else if( IsXMLToken( rLocalName, XML_PARAGRAPH_PROPERTIES ) )
+			nFamily = XML_TYPE_PROP_PARAGRAPH;
+		else if( IsXMLToken( rLocalName, XML_GRAPHIC_PROPERTIES ) )
+			nFamily = XML_TYPE_PROP_GRAPHIC;
+		if( nFamily )
+		{
+			UniReference < SvXMLImportPropertyMapper > xImpPrMap =
+				GetStyles()->GetImportPropertyMapper( GetFamily() );
+			if( xImpPrMap.is() )
+=====================================================================
+Found a 5 line (109 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+ 0x7e,0x7c,0x00,0x00,0x78,0x7c,0x00,0x00,0x70,0x38,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 22 line (109 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndevdis.cxx
+Starting at line 466 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndevdis.cxx
+
+sal_Int32 DNDEventDispatcher::fireDropActionChangedEvent( Window *pWindow,
+	const Reference< XDropTargetDragContext >& xContext, const sal_Int8 nDropAction,
+	const Point& rLocation, const sal_Int8 nSourceActions
+)
+	throw(RuntimeException)
+{
+	sal_Int32 n = 0;
+
+	if( pWindow && pWindow->IsInputEnabled() )
+	{
+		OClearableGuard aGuard( Application::GetSolarMutex() );
+
+		// query DropTarget from window
+		Reference< XDropTarget > xDropTarget = pWindow->GetDropTarget();
+
+		if( xDropTarget.is() )
+		{
+			// retrieve relative mouse position
+			Point relLoc = pWindow->ImplFrameToOutput( rLocation );
+			aGuard.clear();
+
+			n = static_cast < DNDListenerContainer * > ( xDropTarget.get() )->fireDropActionChangedEvent(
+=====================================================================
+Found a 21 line (109 tokens) duplication in the following files: 
+Starting at line 534 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/opengl.cxx
+Starting at line 1254 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/opengl.cxx
+
+void OpenGL::Scissor( GLint nX, GLint nY, GLsizei nWidth, GLsizei nHeight )
+{
+	if( OGL_INIT() )
+	{
+		long nOutHeight;
+
+		if( mpOutDev->GetOutDevType() == OUTDEV_WINDOW )
+			nOutHeight = ( (Window*) mpOutDev )->ImplGetFrameWindow()->mnOutHeight;
+		else
+			nOutHeight = mpOutDev->mnOutHeight;
+
+		mpOGL->OGLEntry( PGRAPHICS );
+
+        // --- RTL --- mirror scissor coordinates
+        if( mpOutDev->ImplHasMirroredGraphics() )
+        {
+            long lx = nX + mpOutDev->mnOutOffX;
+            long lwidth = nWidth;
+            mpOutDev->mpGraphics->mirror( lx, lwidth, mpOutDev );
+            nX = lx - mpOutDev->mnOutOffX;
+        }
+=====================================================================
+Found a 29 line (109 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgservices.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/treeview/tvfactory.cxx
+
+	Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+			pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+=====================================================================
+Found a 29 line (109 tokens) duplication in the following files: 
+Starting at line 320 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 461 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+
+						queryContentIdentifierString( nIndex ) );
+		m_pImpl->m_aResults[ nIndex ]->xRow = xRow;
+		return xRow;
+	}
+
+    return uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::releasePropertyValues( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+        m_pImpl->m_aResults[ nIndex ]->xRow = uno::Reference< sdbc::XRow >();
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::close()
+{
+}
+
+//=========================================================================
+// virtual
+void DataSupplier::validate()
+    throw( ucb::ResultSetException )
+{
+=====================================================================
+Found a 41 line (109 tokens) duplication in the following files: 
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgresultset.cxx
+
+using namespace package_ucp;
+
+//=========================================================================
+//=========================================================================
+//
+// DynamicResultSet Implementation.
+//
+//=========================================================================
+//=========================================================================
+
+DynamicResultSet::DynamicResultSet(
+              const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+              const rtl::Reference< Content >& rxContent,
+              const ucb::OpenCommandArgument2& rCommand,
+              const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+=====================================================================
+Found a 29 line (109 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/prov.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgservices.cxx
+
+	uno::Reference< registry::XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< registry::XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( registry::InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( registry::InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+=====================================================================
+Found a 23 line (109 tokens) duplication in the following files: 
+Starting at line 694 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+Starting at line 827 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlplug.cxx
+
+	pAppletImpl->FinishApplet();
+
+	// und in das Dok einfuegen
+	SwFrmFmt* pFlyFmt =
+		pDoc->Insert( *pPam,
+					::svt::EmbeddedObjectRef( pAppletImpl->GetApplet(), ::com::sun::star::embed::Aspects::MSOLE_CONTENT ),
+					&pAppletImpl->GetItemSet(),
+					NULL,
+					NULL );
+
+	// den alternativen Namen setzen
+	SwNoTxtNode *pNoTxtNd =
+		pDoc->GetNodes()[ pFlyFmt->GetCntnt().GetCntntIdx()
+						  ->GetIndex()+1 ]->GetNoTxtNode();
+	pNoTxtNd->SetAlternateText( pAppletImpl->GetAltText() );
+
+	// Ggf Frames anlegen und auto-geb. Rahmen registrieren
+	RegisterFlyFrm( pFlyFmt );
+
+	delete pAppletImpl;
+	pAppletImpl = 0;
+#endif
+}
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unosett.cxx
+Starting at line 765 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unosett.cxx
+
+void SwXEndnoteProperties::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
+	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
+		lang::WrappedTargetException, uno::RuntimeException )
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+	if(pDoc)
+	{
+		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+														_pMap, rPropertyName);
+		if(pMap)
+		{
+		    if ( pMap->nFlags & PropertyAttribute::READONLY)
+                throw PropertyVetoException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+=====================================================================
+Found a 21 line (109 tokens) duplication in the following files: 
+Starting at line 519 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+Starting at line 582 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docredln.cxx
+
+					if( POS_INSIDE == eCmpPos )
+					{
+						// aufsplitten
+						if( *pEnd != *pREnd )
+						{
+							SwRedline* pCpy = new SwRedline( *pRedl );
+							pCpy->SetStart( *pEnd );
+							pRedlineTbl->Insert( pCpy );
+						}
+						pRedl->SetEnd( *pStt, pREnd );
+                        if( ( *pStt == *pRStt ) &&
+                            ( pRedl->GetContentIdx() == NULL ) )
+                        {
+							pRedlineTbl->DeleteAndDestroy( n );
+                            bDec = true;
+                        }
+						else if( !pRedl->HasValidRange() )
+						{
+							// neu einsortieren
+							pRedlineTbl->Remove( n );
+							pRedlineTbl->Insert( pRedl, n );
+=====================================================================
+Found a 21 line (109 tokens) duplication in the following files: 
+Starting at line 979 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/acctable.cxx
+Starting at line 1010 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/acctable.cxx
+
+sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleColumnExtentAt(
+		   	sal_Int32 nRow, sal_Int32 nColumn )
+	throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+{
+	sal_Int32 nExtend = -1;
+
+	vos::OGuard aGuard(Application::GetSolarMutex());
+
+	CHECK_FOR_DEFUNC( XAccessibleTable )
+
+	GetTableData().CheckRowAndCol( nRow, nColumn, this );
+
+	Int32Set_Impl::const_iterator aSttCol(
+									GetTableData().GetColumnIter( nColumn ) );
+	Int32Set_Impl::const_iterator aSttRow(
+									GetTableData().GetRowIter( nRow ) );
+	const SwFrm *pCellFrm = GetTableData().GetCellAtPos( *aSttCol, *aSttRow,
+														 sal_False );
+	if( pCellFrm )
+	{
+		sal_Int32 nRight = pCellFrm->Frm().Right();
+=====================================================================
+Found a 21 line (109 tokens) duplication in the following files: 
+Starting at line 2105 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 2503 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+						if( pItem->GetLineEndValue() != pLineEndItem->GetLineEndValue() )
+						{
+							// same name but different value, we need a new name for this item
+							aUniqueName = String();
+							bForceNew = sal_True;
+						}
+						break;
+					}
+				}
+			}
+		}
+
+		const SfxItemPool* pPool2 = pModel->GetStyleSheetPool() ? &pModel->GetStyleSheetPool()->GetPool() : NULL;
+		if( aUniqueName.Len() && pPool2)
+		{
+			nCount = pPool2->GetItemCount( XATTR_LINESTART );
+			for( nSurrogate = 0; nSurrogate < nCount; nSurrogate++ )
+			{
+				const XLineStartItem* pItem = (const XLineStartItem*)pPool2->GetItem( XATTR_LINESTART, nSurrogate );
+
+				if( pItem && ( pItem->GetName() == pLineEndItem->GetName() ) )
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshape.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/unoatrcn.cxx
+
+const ::com::sun::star::uno::Sequence< sal_Int8 > & SvUnoAttributeContainer::getUnoTunnelId() throw()
+{
+	static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0;
+	if( !pSeq )
+	{
+		::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+		if( !pSeq )
+		{
+			static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+			rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+			pSeq = &aSeq;
+		}
+	}
+	return *pSeq;
+}
+=====================================================================
+Found a 7 line (109 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshape.cxx
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshape.cxx
+
+		{MAP_CHAR_LEN("TextPortionType"),				WID_PORTIONTYPE,	&::getCppuType((const ::rtl::OUString*)0), beans::PropertyAttribute::READONLY, 0 },
+		{MAP_CHAR_LEN("TextUserDefinedAttributes"),			EE_CHAR_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+	};
+
+	return aSvxTextPortionPropertyMap;
+=====================================================================
+Found a 8 line (109 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 471 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		CUSTOMSHAPE_PROPERTIES
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aAllPropertyMap_Impl;
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unopool.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unogallery/unogalitem.cxx
+
+uno::Any SAL_CALL GalleryItem::queryAggregation( const uno::Type & rType ) 
+	throw( uno::RuntimeException )
+{
+	uno::Any aAny;
+
+	if( rType == ::getCppuType((const uno::Reference< lang::XServiceInfo >*)0) )
+		aAny <<= uno::Reference< lang::XServiceInfo >(this);
+	else if( rType == ::getCppuType((const uno::Reference< lang::XTypeProvider >*)0) )
+		aAny <<= uno::Reference< lang::XTypeProvider >(this);
+	else if( rType == ::getCppuType((const uno::Reference< gallery::XGalleryItem >*)0) )
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdorect.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotxdr.cxx
+
+		case 7: aPnt=aRect.BottomRight();  eKind=HDL_LWRGT; break; // Unten rechts
+	}
+	if (aGeo.nShearWink!=0) ShearPoint(aPnt,aRect.TopLeft(),aGeo.nTan);
+	if (aGeo.nDrehWink!=0) RotatePoint(aPnt,aRect.TopLeft(),aGeo.nSin,aGeo.nCos);
+	if (eKind!=HDL_MOVE) {
+		pH=new SdrHdl(aPnt,eKind);
+		pH->SetObj((SdrObject*)this);
+		pH->SetDrehWink(aGeo.nDrehWink);
+	}
+	return pH;
+}
+
+FASTBOOL SdrTextObj::HasSpecialDrag() const
+=====================================================================
+Found a 7 line (109 tokens) duplication in the following files: 
+Starting at line 746 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+Starting at line 767 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+					bPnt2=TRUE;
+					double nXFact=0; if (!bVLin) nXFact=(double)ndx/(double)ndx0;
+					double nYFact=0; if (!bHLin) nYFact=(double)ndy/(double)ndy0;
+					FASTBOOL bHor=bHLin || (!bVLin && (nXFact>nYFact) ==bBigOrtho);
+					FASTBOOL bVer=bVLin || (!bHLin && (nXFact<=nYFact)==bBigOrtho);
+					if (bHor) ndy=long(ndy0*nXFact);
+					if (bVer) ndx=long(ndx0*nYFact);
+=====================================================================
+Found a 9 line (109 tokens) duplication in the following files: 
+Starting at line 2267 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoedge.cxx
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+
+void SdrObjGroup::NbcSetSnapRect(const Rectangle& rRect)
+{
+	Rectangle aOld(GetSnapRect());
+	long nMulX=rRect.Right()-rRect.Left();
+	long nDivX=aOld.Right()-aOld.Left();
+	long nMulY=rRect.Bottom()-rRect.Top();
+	long nDivY=aOld.Bottom()-aOld.Top();
+	if (nDivX==0) { nMulX=1; nDivX=1; }
+	if (nDivY==0) { nMulY=1; nDivY=1; }
+=====================================================================
+Found a 16 line (109 tokens) duplication in the following files: 
+Starting at line 2189 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 3034 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x4C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00,
+		0x42, 0x00, 0x6F, 0x00, 0x78, 0x00, 0x31, 0x00,
+		0x00, 0x00, 0x00, 0x00
+		};
+
+	{
+	SvStorageStreamRef xStor2( rObj->OpenSotStream( C2S("\3OCXNAME")));
+	xStor2->Write(aOCXNAME,sizeof(aOCXNAME));
+	DBG_ASSERT((xStor2.Is() && (SVSTREAM_OK == xStor2->GetError())),"damn");
+	}
+
+	SvStorageStreamRef xContents( rObj->OpenSotStream( C2S("contents")));
+	return WriteContents(xContents, rPropSet, rSize);
+}
+
+sal_Bool OCX_Control::Read(SvStorageStream *pS)
+=====================================================================
+Found a 8 line (109 tokens) duplication in the following files: 
+Starting at line 3439 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/gridcell.cxx
+Starting at line 3648 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/gridcell.cxx
+Starting at line 3796 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/gridcell.cxx
+
+Sequence< ::com::sun::star::uno::Type > SAL_CALL FmXListBoxCell::getTypes(  ) throw(RuntimeException)
+{
+    Sequence< ::com::sun::star::uno::Type > aTypes = OComponentHelper::getTypes();
+
+    sal_Int32 nLen = aTypes.getLength();
+    aTypes.realloc(nLen + 2);
+    aTypes.getArray()[nLen++] = ::getCppuType(static_cast< Reference< ::com::sun::star::awt::XControl >* >(NULL));
+    aTypes.getArray()[nLen++] = ::getCppuType(static_cast< Reference< ::com::sun::star::awt::XListBox >* >(NULL));
+=====================================================================
+Found a 11 line (109 tokens) duplication in the following files: 
+Starting at line 3756 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/obj3d.cxx
+Starting at line 3861 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/engine3d/obj3d.cxx
+
+				basegfx::B3DRange aNewSize(basegfx::tools::getRange(aLocalBack));
+
+				// Skalierung feststellen (nur X,Y)
+				basegfx::B3DPoint aScaleVec(
+					(aNewSize.getWidth() != 0.0) ? aOldSize.getWidth() / aNewSize.getWidth() : 1.0,
+					(aNewSize.getHeight() != 0.0) ? aOldSize.getHeight() / aNewSize.getHeight() : 1.0,
+					(aNewSize.getDepth() != 0.0) ? aOldSize.getDepth() / aNewSize.getDepth() : 1.0);
+
+				// Transformation bilden
+				basegfx::B3DHomMatrix aTransMat;
+				aTransMat.scale(aScaleVec.getX(), aScaleVec.getY(), aScaleVec.getZ());
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 2245 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpbitmap.cxx
+
+			String			aString( SVX_RES( RID_SVXSTR_TABLE ) ); aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+			INetURLObject	aURL( pBitmapList->GetPath() );
+
+			aURL.Append( pBitmapList->GetName() );
+			DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
+
+			if( aURL.getBase().getLength() > 18 )
+			{
+				aString += String(aURL.getBase()).Copy( 0, 15 );
+				aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "..." ) );
+			}
+			else
+				aString += String(aURL.getBase());
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 1982 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpgradnt.cxx
+
+			String			aString( SVX_RES( RID_SVXSTR_TABLE ) ); aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+			INetURLObject	aURL( pGradientList->GetPath() );
+
+			aURL.Append( pGradientList->GetName() );
+			DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
+
+			if ( aURL.getBase().getLength() > 18 )
+			{
+				aString += String(aURL.getBase()).Copy( 0, 15 );
+				aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "..." ) );
+			}
+			else
+				aString += String(aURL.getBase());
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 1892 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tparea.cxx
+Starting at line 269 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpcolor.cxx
+
+			String			aString( SVX_RES( RID_SVXSTR_TABLE ) ); aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+			INetURLObject	aURL( pColorTab->GetPath() );
+
+			aURL.Append( pColorTab->GetName() );
+			DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
+
+			if ( aURL.getBase().getLength() > 18 )
+			{
+				aString += String(aURL.getBase()).Copy( 0, 15 );
+				aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "..." ) );
+			}
+			else
+				aString += String(aURL.getBase());
+=====================================================================
+Found a 16 line (109 tokens) duplication in the following files: 
+Starting at line 4631 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 4217 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	0xa302, 0x6000, 0x8000
+};
+static const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] = 
+{
+	{ { 3180, 3180 }, { 18420, 18420 } }
+};
+static const mso_CustomShape msoFlowChartConnector =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartConnectorVert, sizeof( mso_sptFlowChartConnectorVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptFlowChartConnectorSegm, sizeof( mso_sptFlowChartConnectorSegm ) >> 1,
+	NULL, 0,
+	NULL,
+	(SvxMSDffTextRectangles*)mso_sptFlowChartConnectorTextRect, sizeof( mso_sptFlowChartConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape3d.cxx
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape3d.cxx
+
+		double fH(rVolume.getHeight());
+
+		rCamera.SetAutoAdjustProjection( FALSE );
+		rCamera.SetViewWindow( -fW / 2, - fH / 2, fW, fH);
+		basegfx::B3DPoint aLookAt( 0.0, 0.0, 0.0 );
+        basegfx::B3DPoint aCamPos( 0.0, 0.0, 100.0 );
+
+		rCamera.SetDefaults( basegfx::B3DPoint( 0.0, 0.0, 100.0 ), aLookAt, 100.0 );
+		rCamera.SetPosAndLookAt( aCamPos, aLookAt );
+		rCamera.SetFocalLength( 1.0 );
+		rCamera.SetProjection( eProjectionType );
+		pScene->SetCamera( rCamera );
+		pScene->SetRectsDirty();
+
+		double fViewPointOriginX = ((double)((sal_Int32)rPropSet.GetPropertyValue( DFF_Prop_c3DOriginX, 32768 )) * rSnapRect.GetWidth()) / 65536.0;
+=====================================================================
+Found a 7 line (109 tokens) duplication in the following files: 
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleEditableTextPara.cxx
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshape.cxx
+
+		SVX_UNOEDIT_PARA_PROPERTIES,
+		{MAP_CHAR_LEN("TextUserDefinedAttributes"),			EE_CHAR_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+	};
+
+	return aSvxUnoOutlinerTextCursorPropertyMap;
+=====================================================================
+Found a 29 line (109 tokens) duplication in the following files: 
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+							uno::UNO_QUERY );
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+												 uno::Reference< io::XInputStream >(),
+												 aCaught );
+	}
+=====================================================================
+Found a 30 line (109 tokens) duplication in the following files: 
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsfactory.cxx
+Starting at line 109 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/hatchwindow/hatchwindowfactory.cxx
+
+uno::Sequence< ::rtl::OUString > SAL_CALL OHatchWindowFactory::getSupportedServiceNames()
+	throw ( uno::RuntimeException )
+{
+	return impl_staticGetSupportedServiceNames();
+}
+
+//-------------------------------------------------------------------------
+
+extern "C"
+{
+
+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
+	void * /* pServiceManager */, void * pRegistryKey)
+{
+	if (pRegistryKey)
+	{
+		uno::Reference< registry::XRegistryKey> xRegistryKey (
+			reinterpret_cast< registry::XRegistryKey* >(pRegistryKey));
+		uno::Reference< registry::XRegistryKey> xNewKey;
+
+		// OHatchWindowFactory registration
+
+		xNewKey = xRegistryKey->createKey (
+			::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + 
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 653 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/colctrl.cxx
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/color.cxx
+
+		UINT8 c = (UINT8) ( nB * ( 100 - ( (double)nSat * ( 1.0 - f ) + 0.5 ) ) / 100 );
+
+		switch( n )
+		{
+			case 0: cR = nB;	cG = c;		cB = a; 	break;
+			case 1: cR = b;		cG = nB;	cB = a; 	break;
+			case 2: cR = a;		cG = nB;	cB = c;		break;
+			case 3: cR = a;		cG = b; 	cB = nB;	break;
+			case 4: cR = c;		cG = a; 	cB = nB;	break;
+			case 5: cR = nB; 	cG = a;		cB = b;		break;
+=====================================================================
+Found a 24 line (109 tokens) duplication in the following files: 
+Starting at line 1385 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/viewsh.cxx
+Starting at line 1427 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/viewsh.cxx
+
+    for ( ++nPos; nPos < rShells.Count(); ++nPos )
+	{
+		SfxViewShell *pShell = rShells.GetObject(nPos);
+        if ( pShell )
+        {
+            // sometimes dangling SfxViewShells exist that point to a dead SfxViewFrame
+            // these ViewShells shouldn't be accessible anymore
+            // a destroyed ViewFrame is not in the ViewFrame array anymore, so checking this array helps
+            for ( sal_uInt16 n=0; n<rFrames.Count(); ++n )
+            {
+                SfxViewFrame *pFrame = rFrames.GetObject(n);
+                if ( pFrame == pShell->GetViewFrame() )
+                {
+                    // only ViewShells with a valid ViewFrame will be returned
+                    if ( ( !bOnlyVisible || pFrame->IsVisible_Impl() ) && ( !pType || pShell->IsA(*pType) ) )
+                        return pShell;
+                    break;
+                }
+            }
+        }
+    }
+
+	return 0;
+}
+=====================================================================
+Found a 47 line (109 tokens) duplication in the following files: 
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/doctempl.cxx
+Starting at line 841 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/doctempl.cxx
+
+    DocTempl_EntryData_Impl  *pEntry = NULL;
+
+    if ( pRegion )
+        pEntry = pRegion->GetEntry( rLongName );
+
+    if ( pEntry )
+        return pEntry->GetTargetURL();
+    else if ( pRegion )
+    {
+		// a new template is going to be inserted, generate a new URL
+		// TODO/LATER: if the title is localized, use minimized URL in future
+
+        INetURLObject aURLObj( pRegion->GetTargetURL() );
+        aURLObj.insertName( rLongName, false,
+                     INetURLObject::LAST_SEGMENT, true,
+                     INetURLObject::ENCODE_ALL );
+
+        OUString aExtension = aURLObj.getExtension();
+
+        if ( ! aExtension.getLength() )
+            aURLObj.setExtension( OUString( RTL_CONSTASCII_USTRINGPARAM( "vor" ) ) );
+
+        return aURLObj.GetMainURL( INetURLObject::NO_DECODE );
+    }
+    else
+        return String();
+
+/* dv! missing: create the directory, if it doesn't exists
+
+
+    DBG_ASSERT(aDirs.GetTokenCount(cDelim), "Keine Bereiche");
+    DirEntry aPath(aDirs.GetToken(0, cDelim));
+
+    // Verzeichnis anlegen
+    if(!aPath.MakeDir())
+        return String();
+
+    MakeFileName_Impl(aPath, rLongName, sal_True);
+    SfxTemplateDir  *pEntry = new SfxTemplateDir;
+    SfxTemplateDirEntryPtr pDirEntry =
+        new SfxTemplateDirEntry( String( '.' ), aPath.GetPath() );
+    pDirEntry->SetContent(new SfxTemplateDir(aPath.GetPath()));
+    pEntry->Insert(pDirEntry, pEntry->Count());
+    pDirs->Insert(pEntry, pDirs->Count());
+    return aPath.GetFull();
+*/
+}
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopstyl.cxx
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshape.cxx
+
+const ::com::sun::star::uno::Sequence< sal_Int8 > & SvxShape::getUnoTunnelId() throw()
+{
+	static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0;
+	if( !pSeq )
+	{
+		::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+		if( !pSeq )
+		{
+			static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+			rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+			pSeq = &aSeq;
+		}
+	}
+	return *pSeq;
+}
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 1233 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodel.cxx
+Starting at line 638 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unomod.cxx
+
+	sal_uInt16 i = 0;
+
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.DashTable"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.GradientTable"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.HatchTable"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.BitmapTable"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.TransparencyGradientTable"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.MarkerTable"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.NumberingRules"));
+	aSNS[i++] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.image.ImageMapRectangleObject"));
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unogstyl.cxx
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopstyl.cxx
+
+const ::com::sun::star::uno::Sequence< sal_Int8 > & SdUnoPseudoStyle::getUnoTunnelId() throw()
+{
+	static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0;
+	if( !pSeq )
+	{
+		::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+		if( !pSeq )
+		{
+			static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+			rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+			pSeq = &aSeq;
+		}
+	}
+	return *pSeq;
+}
+=====================================================================
+Found a 17 line (109 tokens) duplication in the following files: 
+Starting at line 953 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+Starting at line 1090 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/dbfunc3.cxx
+
+void ScDBFunc::NumGroupDataPilot( const ScDPNumGroupInfo& rInfo )
+{
+    ScDPObject* pDPObj = GetViewData()->GetDocument()->GetDPAtCursor( GetViewData()->GetCurX(),
+                                        GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
+    if ( pDPObj )
+    {
+        StrCollection aEntries;
+        long nSelectDimension = -1;
+        GetSelectedMemberList( aEntries, nSelectDimension );
+
+        if ( aEntries.GetCount() > 0 )
+        {
+            BOOL bIsDataLayout;
+            String aDimName = pDPObj->GetDimName( nSelectDimension, bIsDataLayout );
+
+            ScDPSaveData aData( *pDPObj->GetSaveData() );
+            ScDPDimensionSaveData* pDimData = aData.GetDimensionData();     // created if not there
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/dispuno.cxx
+Starting at line 138 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unodispatch.cxx
+
+    DispatchMutexLock_Impl aLock(*this);
+    uno::Sequence< uno::Reference< frame::XDispatch> > aReturn(aDescripts.getLength());
+	uno::Reference< frame::XDispatch>* pReturn = aReturn.getArray();
+	const frame::DispatchDescriptor* pDescripts = aDescripts.getConstArray();
+	for (sal_Int16 i=0; i<aDescripts.getLength(); ++i, ++pReturn, ++pDescripts)
+	{
+		*pReturn = queryDispatch(pDescripts->FeatureURL,
+				pDescripts->FrameName, pDescripts->SearchFlags);
+	}
+	return aReturn;
+}
+/*-- 07.11.00 13:25:52---------------------------------------------------
+
+  -----------------------------------------------------------------------*/
+uno::Reference< frame::XDispatchProvider > SwXDispatchProviderInterceptor::getSlaveDispatchProvider(  )
+=====================================================================
+Found a 19 line (109 tokens) duplication in the following files: 
+Starting at line 1115 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 1227 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+	const uno::Sequence<rtl::OUString>* pArray = aData.getConstArray();
+	if ( nRows )
+		nCols = pArray[0].getLength();
+
+	if ( nCols != nEndCol-nStartCol+1 || nRows != nEndRow-nStartRow+1 )
+	{
+		//!	error message?
+		return FALSE;
+	}
+
+	ScDocument* pUndoDoc = NULL;
+	if ( bUndo )
+	{
+		pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+		pUndoDoc->InitUndo( pDoc, nTab, nTab );
+		pDoc->CopyToDocument( rRange, IDF_CONTENTS, FALSE, pUndoDoc );
+	}
+
+	pDoc->DeleteAreaTab( nStartCol, nStartRow, nEndCol, nEndRow, nTab, IDF_CONTENTS );
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/fuins2.cxx
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/tablemgr.cxx
+
+            uno::makeAny( rCellRange ), beans::PropertyState_DIRECT_VALUE );
+        aArgs[1] = beans::PropertyValue(
+            ::rtl::OUString::createFromAscii("HasCategories"), -1,
+            uno::makeAny( bHasCategories ), beans::PropertyState_DIRECT_VALUE );
+        aArgs[2] = beans::PropertyValue(
+            ::rtl::OUString::createFromAscii("FirstCellAsLabel"), -1,
+            uno::makeAny( bFirstCellAsLabel ), beans::PropertyState_DIRECT_VALUE );
+        aArgs[3] = beans::PropertyValue(
+            ::rtl::OUString::createFromAscii("DataRowSource"), -1,
+            uno::makeAny( eDataRowSource ), beans::PropertyState_DIRECT_VALUE );
+=====================================================================
+Found a 18 line (109 tokens) duplication in the following files: 
+Starting at line 168 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+Starting at line 437 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+
+BOOL ScOutlineDocFunc::ShowMarkedOutlines( const ScRange& rRange, BOOL bRecord, BOOL bApi )
+{
+	BOOL bDone = FALSE;
+
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nTab = rRange.aStart.Tab();
+
+	ScDocument* pDoc = rDocShell.GetDocument();
+
+	if (bRecord && !pDoc->IsUndoEnabled())
+		bRecord = FALSE;
+	ScOutlineTable* pTable = pDoc->GetOutlineTable( nTab );
+
+	if (pTable)
+	{
+=====================================================================
+Found a 19 line (109 tokens) duplication in the following files: 
+Starting at line 2513 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 2569 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+
+	nFlags &= ~CR_MANUALBREAK;
+	if (bColumn)
+		pDoc->SetColFlags( static_cast<SCCOL>(nPos), nTab, nFlags );
+	else
+		pDoc->SetRowFlags( static_cast<SCROW>(nPos), nTab, nFlags );
+	pDoc->UpdatePageBreaks( nTab );
+
+	if (bColumn)
+	{
+		rDocShell.PostPaint( static_cast<SCCOL>(nPos)-1, 0, nTab, MAXCOL, MAXROW, nTab, PAINT_GRID );
+		if (pBindings)
+		{
+			pBindings->Invalidate( FID_INS_COLBRK );
+			pBindings->Invalidate( FID_DEL_COLBRK );
+		}
+	}
+	else
+	{
+		rDocShell.PostPaint( 0, nPos-1, nTab, MAXCOL, MAXROW, nTab, PAINT_GRID );
+=====================================================================
+Found a 18 line (109 tokens) duplication in the following files: 
+Starting at line 2422 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/docfunc.cxx
+Starting at line 2085 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewfunc.cxx
+
+						pDoc->ShowRows( nStartNo, nEndNo, nTab, nSizeTwips != 0 );
+					}
+					else if ( eMode==SC_SIZE_SHOW )
+					{
+						pDoc->ShowRows( nStartNo, nEndNo, nTab, TRUE );
+					}
+				}
+				else								// Spaltenbreiten
+				{
+					for (SCCOL nCol=static_cast<SCCOL>(nStartNo); nCol<=static_cast<SCCOL>(nEndNo); nCol++)
+					{
+						if ( eMode != SC_SIZE_VISOPT ||
+							 (pDoc->GetColFlags( nCol, nTab ) & CR_HIDDEN) == 0 )
+						{
+							USHORT nThisSize = nSizeTwips;
+
+							if ( eMode==SC_SIZE_OPTIMAL || eMode==SC_SIZE_VISOPT )
+								nThisSize = nSizeTwips + GetOptimalColWidth( nCol, nTab, bFormula );
+=====================================================================
+Found a 19 line (109 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx
+
+uno::Reference<XAccessibleStateSet> SAL_CALL ScAccessiblePreviewHeaderCell::getAccessibleStateSet()
+						    throw(uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+
+	uno::Reference<XAccessibleStateSet> xParentStates;
+	if (getAccessibleParent().is())
+	{
+		uno::Reference<XAccessibleContext> xParentContext = getAccessibleParent()->getAccessibleContext();
+		xParentStates = xParentContext->getAccessibleStateSet();
+	}
+	utl::AccessibleStateSetHelper* pStateSet = new utl::AccessibleStateSetHelper();
+	if (IsDefunc(xParentStates))
+		pStateSet->AddState(AccessibleStateType::DEFUNC);
+    else
+    {
+	    pStateSet->AddState(AccessibleStateType::ENABLED);
+	    pStateSet->AddState(AccessibleStateType::MULTI_LINE);
+	    if (isShowing())
+=====================================================================
+Found a 24 line (109 tokens) duplication in the following files: 
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/read.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/read.cxx
+
+            case Z_Biff4T:       // --------------------------------- Z_Biff4T -
+			{
+				switch( nOpcode )
+				{
+                    // skip chart substream
+                    case EXC_ID2_BOF:
+                    case EXC_ID3_BOF:
+                    case EXC_ID4_BOF:
+                    case EXC_ID5_BOF:           XclTools::SkipSubStream( maStrm );  break;
+
+                    case EXC_ID2_DIMENSIONS:
+                    case EXC_ID3_DIMENSIONS:    ReadDimensions();       break;
+                    case EXC_ID2_BLANK:
+                    case EXC_ID3_BLANK:         ReadBlank();            break;
+                    case EXC_ID2_INTEGER:       ReadInteger();          break;
+                    case EXC_ID2_NUMBER:
+                    case EXC_ID3_NUMBER:        ReadNumber();           break;
+                    case EXC_ID2_LABEL:
+                    case EXC_ID3_LABEL:         ReadLabel();            break;
+                    case EXC_ID2_BOOLERR:
+                    case EXC_ID3_BOOLERR:       ReadBoolErr();          break;
+                    case EXC_ID_RK:             ReadRk();               break;
+
+					case 0x0A:							// EOF			[ 2345]
+=====================================================================
+Found a 14 line (109 tokens) duplication in the following files: 
+Starting at line 1697 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+Starting at line 1739 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+
+                            const double* pColArr = pRowArr[nRow].getConstArray();
+                            for (nCol=0; nCol<nColCount; nCol++)
+                                pMatrix->PutDouble( pColArr[nCol],
+                                        static_cast<SCSIZE>(nCol),
+                                        static_cast<SCSIZE>(nRow) );
+                            for (nCol=nColCount; nCol<nMaxColCount; nCol++)
+                                pMatrix->PutDouble( 0.0,
+                                        static_cast<SCSIZE>(nCol),
+                                        static_cast<SCSIZE>(nRow) );
+                        }
+                    }
+                }
+            }
+            else if ( aType.equals( getCppuType( (uno::Sequence< uno::Sequence<rtl::OUString> > *)0 ) ) )
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 127 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/documen5.cxx
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/tablemgr.cxx
+
+            uno::makeAny( rCellRange ), beans::PropertyState_DIRECT_VALUE );
+        aArgs[1] = beans::PropertyValue(
+            ::rtl::OUString::createFromAscii("HasCategories"), -1,
+            uno::makeAny( bHasCategories ), beans::PropertyState_DIRECT_VALUE );
+        aArgs[2] = beans::PropertyValue(
+            ::rtl::OUString::createFromAscii("FirstCellAsLabel"), -1,
+            uno::makeAny( bFirstCellAsLabel ), beans::PropertyState_DIRECT_VALUE );
+        aArgs[3] = beans::PropertyValue(
+            ::rtl::OUString::createFromAscii("DataRowSource"), -1,
+            uno::makeAny( eDataRowSource ), beans::PropertyState_DIRECT_VALUE );
+=====================================================================
+Found a 25 line (109 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testsax.cxx
+Starting at line 155 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+	}
+
+public: // Error handler
+    virtual void SAL_CALL error(const Any& aSAXParseException) throw (SAXException, RuntimeException)
+    {
+    	printf( "Error !\n" );
+    	throw  SAXException(
+			OUString( RTL_CONSTASCII_USTRINGPARAM("error from error handler")) ,
+			Reference < XInterface >() ,
+			aSAXParseException );
+    }
+    virtual void SAL_CALL fatalError(const Any& aSAXParseException) throw (SAXException, RuntimeException)
+    {
+    	printf( "Fatal Error !\n" );
+    }
+    virtual void SAL_CALL warning(const Any& aSAXParseException) throw (SAXException, RuntimeException)
+    {
+    	printf( "Warning !\n" );
+    }
+
+
+public: // ExtendedDocumentHandler
+
+    virtual void SAL_CALL startDocument(void) throw (SAXException, RuntimeException)
+    {
+=====================================================================
+Found a 18 line (109 tokens) duplication in the following files: 
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/sal/test/unloading/unloadTest.cxx
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/sal/test/unloading/unloadTest.cxx
+
+	sal_Bool retval=sal_False;
+	OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
+	{
+	Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
+ 		OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
+
+	Reference<XInterface> xint=	serviceManager->createInstance( OUString(
+				RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
+
+	handleMod=	osl_loadModule( lib1Name.pData, 0);
+	osl_unloadModule( handleMod);
+	//-----------------------------------------------------------
+	oslModule mod1= osl_loadModule( lib1Name.pData, 0);
+	oslModule mod2= osl_loadModule( lib1Name.pData, 0);
+	oslModule mod3= osl_loadModule( lib1Name.pData, 0);
+
+	rtl_registerModuleForUnloading(mod1);
+	rtl_registerModuleForUnloading(mod2);
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 577 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+	sal_Int32 i;
+
+    for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+        sal_Int32 cmpRes = arrTestCase[i].input1->compareTo
+            (*arrTestCase[i].input2, arrTestCase[i].maxLength);
+        cmpRes = (cmpRes == 0) ? 0 : (cmpRes > 0) ? +1 : -1 ;
+        sal_Bool lastRes = (cmpRes == arrTestCase[i].expVal);
+
+        c_rtl_tres_state
+            (
+                hRtlTestResult,
+                lastRes,
+                arrTestCase[i].comments,
+                createName( pMeth, "compareTo_002(const OString&, sal_Int32)", i )
+=====================================================================
+Found a 24 line (109 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/ntprophelp.cxx
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/prophelp.cxx
+
+void PropertyChgHelper::SetTmpPropVals( const PropertyValues &rPropVals )
+{
+	// return value is default value unless there is an explicitly supplied
+	// temporary value
+	bResIsGermanPreReform			= bIsGermanPreReform;
+	bResIsIgnoreControlCharacters	= bIsIgnoreControlCharacters;
+	bResIsUseDictionaryList			= bIsUseDictionaryList;
+	//
+	INT32 nLen = rPropVals.getLength();
+	if (nLen)
+	{
+		const PropertyValue *pVal = rPropVals.getConstArray();
+		for (INT32 i = 0;  i < nLen;  ++i)
+		{
+			BOOL  *pbResVal = NULL;
+			switch (pVal[i].Handle)
+			{
+				case UPH_IS_GERMAN_PRE_REFORM		: 
+						pbResVal = &bResIsGermanPreReform; break;
+				case UPH_IS_IGNORE_CONTROL_CHARACTERS : 
+						pbResVal = &bResIsIgnoreControlCharacters; break;
+				case UPH_IS_USE_DICTIONARY_LIST		: 
+						pbResVal = &bResIsUseDictionaryList; break;
+				default:
+=====================================================================
+Found a 11 line (109 tokens) duplication in the following files: 
+Starting at line 1558 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1973 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+                    continue;
+            }
+
+            // check compoundend flag in suffix and prefix
+            if ((rv) && !checked_prefix && compoundend && !hu_mov_rule &&
+                ((pfx && ((PfxEntry*)pfx)->getCont() &&
+                    TESTAFF(((PfxEntry*)pfx)->getCont(), compoundend, 
+                        ((PfxEntry*)pfx)->getContLen())) ||
+                (sfx && ((SfxEntry*)sfx)->getCont() &&
+                    TESTAFF(((SfxEntry*)sfx)->getCont(), compoundend, 
+                        ((SfxEntry*)sfx)->getContLen())))) {
+=====================================================================
+Found a 38 line (109 tokens) duplication in the following files: 
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/idl/source/cmptools/char.cxx
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/rsc/source/tools/rscchar.cxx
+
+			switch( *pStr )
+			{
+				case 'a':
+					c = '\a';
+					break;
+				case 'b':
+					c = '\b';
+					break;
+				case 'f':
+					c = '\f';
+					break;
+				case 'n':
+					c = '\n';
+					break;
+				case 'r':
+					c = '\r';
+					break;
+				case 't':
+					c = '\t';
+					break;
+				case 'v':
+					c = '\v';
+					break;
+				case '\\':
+					c = '\\';
+					break;
+				case '?':
+					c = '\?';
+					break;
+				case '\'':
+					c = '\'';
+					break;
+				case '\"':
+					c = '\"';
+					break;
+				default:
+				{
+					if( '0' <= *pStr && '7' >= *pStr )
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 1506 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1519 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd90 - fd9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fda0 - fdaf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fdb0 - fdbf
+    13,13,13,13,13,13,13,13, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+=====================================================================
+Found a 7 line (109 tokens) duplication in the following files: 
+Starting at line 1343 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/udm/source/xml/xmlitem.cxx
+
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+	  0,  0,  0,  0,  0,  	0,  0,  0,  0,  0,
+
+	  0,  0,  0,  0,  0,  	1					// &nbsp;
+=====================================================================
+Found a 6 line (109 tokens) duplication in the following files: 
+Starting at line 1324 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1338 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 22f0 - 22ff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2300 - 230f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2310 - 231f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2320 - 232f
+    10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2330 - 233f
+=====================================================================
+Found a 5 line (109 tokens) duplication in the following files: 
+Starting at line 1136 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1225 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1650 - 165f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1660 - 166f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1670 - 167f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b00 - 0b0f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b10 - 0b1f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b20 - 0b2f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0,17,// 0b30 - 0b3f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 1093 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1225 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1640 - 164f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1650 - 165f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1660 - 166f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1670 - 167f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd90 - fd9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fda0 - fdaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fdb0 - fdbf
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 691 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,// 3280 - 328f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3290 - 329f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 32a0 - 32af
+    27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 32b0 - 32bf
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 670 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3240 - 324f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3250 - 325f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3260 - 326f
+    27,27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0,27,// 3270 - 327f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 588 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,24,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25c0 - 25cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25d0 - 25df
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 25e0 - 25ef
+    27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0,// 25f0 - 25ff
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 577 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,// 3280 - 328f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3290 - 329f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 32a0 - 32af
+    27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 32b0 - 32bf
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1039 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 570 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,// 3220 - 322f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3230 - 323f
+    27,27,27,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3240 - 324f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 3250 - 325f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 897 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fec0 - fecf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fed0 - fedf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fee0 - feef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,16,// fef0 - feff
+=====================================================================
+Found a 5 line (109 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1210 - 121f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1220 - 122f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1230 - 123f
+     5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 0, 0,// 1240 - 124f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1262 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0,// 0740 - 074f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0750 - 075f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0760 - 076f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0770 - 077f
+=====================================================================
+Found a 4 line (109 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1554 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/unographic/descriptor.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unogallery/unogalitem.cxx
+
+uno::Any SAL_CALL GalleryItem::queryAggregation( const uno::Type & rType ) 
+	throw( uno::RuntimeException )
+{
+	uno::Any aAny;
+
+	if( rType == ::getCppuType((const uno::Reference< lang::XServiceInfo >*)0) )
+		aAny <<= uno::Reference< lang::XServiceInfo >(this);
+	else if( rType == ::getCppuType((const uno::Reference< lang::XTypeProvider >*)0) )
+		aAny <<= uno::Reference< lang::XTypeProvider >(this);
+	else if( rType == ::getCppuType((const uno::Reference< gallery::XGalleryItem >*)0) )
+=====================================================================
+Found a 20 line (109 tokens) duplication in the following files: 
+Starting at line 455 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itga/itga.cxx
+Starting at line 498 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itga/itga.cxx
+
+							*mpTGA >> nBlue >> nGreen >> nRed;
+							for ( USHORT i = 0; i < ( ( nRunCount & 0x7f ) + 1 ); i++ )
+							{
+								mpAcc->SetPixel( nY, nX, BitmapColor( nRed, nGreen, nBlue ) );
+								nX += nXAdd;
+								nXCount++;
+								if ( nXCount == mpFileHeader->nImageWidth )
+								{
+									nX = nXStart;
+									nXCount = 0;
+									nY += nYAdd;
+									nYCount++;
+								}
+							}
+						}
+						else						// a raw packet
+						{
+							for ( USHORT i = 0; i < ( ( nRunCount & 0x7f ) + 1 ); i++ )
+							{
+								*mpTGA >> nBlue >> nGreen >> nRed;
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/itemcontainer.cxx
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/rootitemcontainer.cxx
+
+const Sequence< sal_Int8 >& RootItemContainer::GetUnoTunnelId() throw()
+{
+	static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = NULL;
+	if( !pSeq )
+	{
+		::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+		if( !pSeq )
+		{
+			static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+			rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+			pSeq = &aSeq;
+		}
+	}
+	return *pSeq;
+}
+=====================================================================
+Found a 25 line (109 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/dropdownboxtoolbarcontroller.cxx
+Starting at line 228 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/edittoolbarcontroller.cxx
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/togglebuttontoolbarcontroller.cxx
+
+void SAL_CALL ToggleButtonToolbarController::execute( sal_Int16 KeyModifier )
+throw ( RuntimeException )
+{
+    Reference< XDispatch >       xDispatch;
+    Reference< XURLTransformer > xURLTransformer;
+    OUString                     aCommandURL;
+    OUString                     aSelectedText;
+    ::com::sun::star::util::URL  aTargetURL;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        if ( m_bInitialized &&
+             m_xFrame.is() &&
+             m_xServiceManager.is() &&
+             m_aCommandURL.getLength() )
+        {
+            xURLTransformer = m_xURLTransformer;
+            xDispatch = getDispatchFromCommand( m_aCommandURL );
+            aCommandURL = m_aCommandURL;
+            aTargetURL = getInitializedURL();
+            aSelectedText = m_aCurrentSelection;
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 328 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/constitemcontainer.cxx
+Starting at line 198 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/itemcontainer.cxx
+
+const Sequence< sal_Int8 >& ItemContainer::GetUnoTunnelId() throw()
+{
+	static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = NULL;
+	if( !pSeq )
+	{
+		::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+		if( !pSeq )
+		{
+			static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+			rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+			pSeq = &aSeq;
+		}
+	}
+	return *pSeq;
+}
+=====================================================================
+Found a 25 line (109 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/comboboxtoolbarcontroller.cxx
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/dropdownboxtoolbarcontroller.cxx
+
+void SAL_CALL DropdownToolbarController::execute( sal_Int16 KeyModifier )
+throw ( RuntimeException )
+{
+    Reference< XDispatch >       xDispatch;
+    Reference< XURLTransformer > xURLTransformer;
+    OUString                     aCommandURL;
+    OUString                     aSelectedText;
+    ::com::sun::star::util::URL  aTargetURL;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        if ( m_bInitialized &&
+             m_xFrame.is() &&
+             m_xServiceManager.is() &&
+             m_aCommandURL.getLength() )
+        {
+            xURLTransformer = m_xURLTransformer;
+            xDispatch = getDispatchFromCommand( m_aCommandURL );
+            aCommandURL = m_aCommandURL;
+            aTargetURL = getInitializedURL();
+            aSelectedText = m_pListBoxControl->GetText();
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 685 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/addonsoptions.cxx
+Starting at line 724 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/addonsoptions.cxx
+
+	sal_uInt32				nCount = aAddonHelpMenuNodeSeq.getLength();
+	sal_uInt32				nIndex = 0;
+	Sequence< PropertyValue > aMenuItem( PROPERTYCOUNT_MENUITEM );
+
+	// Init the property value sequence
+	aMenuItem[ OFFSET_MENUITEM_URL				].Name = m_aPropNames[ INDEX_URL			];
+	aMenuItem[ OFFSET_MENUITEM_TITLE			].Name = m_aPropNames[ INDEX_TITLE			];
+	aMenuItem[ OFFSET_MENUITEM_TARGET			].Name = m_aPropNames[ INDEX_TARGET			];
+	aMenuItem[ OFFSET_MENUITEM_IMAGEIDENTIFIER	].Name = m_aPropNames[ INDEX_IMAGEIDENTIFIER];
+	aMenuItem[ OFFSET_MENUITEM_CONTEXT			].Name = m_aPropNames[ INDEX_CONTEXT		];
+	aMenuItem[ OFFSET_MENUITEM_SUBMENU			].Name = m_aPropNames[ INDEX_SUBMENU		];	// Submenu set!
+
+	for ( sal_uInt32 n = 0; n < nCount; n++ )
+	{
+		OUString aRootMenuItemNode( aAddonHelpMenuItemNode + aAddonHelpMenuNodeSeq[n] );
+=====================================================================
+Found a 21 line (109 tokens) duplication in the following files: 
+Starting at line 236 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/accelerators/acceleratorexecute.cxx
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/acceleratorexecute.cxx
+
+    return impl_ts_findCommand(aKey);
+}
+//-----------------------------------------------
+::rtl::OUString AcceleratorExecute::impl_ts_findCommand(const css::awt::KeyEvent& aKey)
+{
+    // SAFE -> ----------------------------------
+    ::osl::ResettableMutexGuard aLock(m_aLock);
+    
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xGlobalCfg = m_xGlobalCfg;
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xModuleCfg = m_xModuleCfg;
+    css::uno::Reference< css::ui::XAcceleratorConfiguration > xDocCfg    = m_xDocCfg   ;
+    
+    aLock.clear();    
+    // <- SAFE ----------------------------------
+
+    ::rtl::OUString sCommand;
+
+    try
+    {
+        if (xDocCfg.is())
+            sCommand = xDocCfg->getCommandByKeyEvent(aKey);
+=====================================================================
+Found a 11 line (109 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormattedField.cxx
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ImageControl.cxx
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::ui::dialogs;
+=====================================================================
+Found a 28 line (109 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cppToUno/testcppuno.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpptest/cpptest.cpp
+
+int main(int argc, char* argv[])
+{
+	HRESULT hr;
+	if( FAILED( hr=CoInitialize(NULL)))
+	{
+		_tprintf(_T("CoInitialize failed \n"));
+		return -1;
+	}
+
+	
+	_Module.Init( ObjectMap, GetModuleHandle( NULL));
+
+	if( FAILED(hr=doTest()))
+	{
+		_com_error err( hr);
+		const TCHAR * errMsg= err.ErrorMessage();
+		MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+	}
+
+
+	_Module.Term();
+	CoUninitialize();
+	return 0;
+}
+
+HRESULT doTest()
+{
+	HRESULT hr;
+=====================================================================
+Found a 6 line (109 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/resource/oooresourceloader.cxx
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdiclist.cxx
+
+    virtual sal_Bool SAL_CALL hasElements(  ) throw (::com::sun::star::uno::RuntimeException);
+
+    // XNameAccess
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/propctrlr/cellbindinghelper.cxx
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/forms/formcellbinding.cxx
+
+{
+//............................................................................
+
+    using namespace ::com::sun::star::uno;
+    using namespace ::com::sun::star::beans;
+    using namespace ::com::sun::star::frame;
+    using namespace ::com::sun::star::sheet;
+    using namespace ::com::sun::star::container;
+    using namespace ::com::sun::star::drawing;
+    using namespace ::com::sun::star::table;
+    using namespace ::com::sun::star::form;
+    using namespace ::com::sun::star::lang;
+    using namespace ::com::sun::star::form::binding;
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/preload/oemwiz.cxx
+Starting at line 625 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/license.cxx
+
+void LicenseView::Notify( SfxBroadcaster&, const SfxHint& rHint )
+{
+    if ( rHint.IsA( TYPE(TextHint) ) )
+    {
+        BOOL    bLastVal = EndReached();
+        ULONG   nId = ((const TextHint&)rHint).GetId();
+
+        if ( nId == TEXT_HINT_PARAINSERTED )
+        {
+            if ( bLastVal )
+                mbEndReached = IsEndReached();
+        }
+        else if ( nId == TEXT_HINT_VIEWSCROLLED )
+        {
+            if ( ! mbEndReached )
+                mbEndReached = IsEndReached();
+            maScrolledHdl.Call( this );
+        }
+
+        if ( EndReached() && !bLastVal )
+        {
+            maEndReachedHdl.Call( this );
+        }
+    }
+}
+
+}		//	namespace framework
+=====================================================================
+Found a 13 line (109 tokens) duplication in the following files: 
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObjectFactory::createInstanceInitFromMediaDescriptor" );
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Reference< uno::XInterface > xResult(
+=====================================================================
+Found a 14 line (109 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+
+	uno::Reference< uno::XInterface > xResult;
+
+	// the initialization is completelly controlled by user
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Sequence< beans::PropertyValue > aTempMedDescr( lArguments );
+=====================================================================
+Found a 15 line (109 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/specialobject.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/visobj.cxx
+
+		throw ( uno::Exception,
+				uno::RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The own object has no persistence!\n" ),
+=====================================================================
+Found a 8 line (109 tokens) duplication in the following files: 
+Starting at line 430 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/miscobj.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/miscobj.cxx
+
+			{
+	           	static ::cppu::OTypeCollection aTypeCollection(
+											::getCppuType( (const uno::Reference< lang::XTypeProvider >*)NULL ),
+											::getCppuType( (const uno::Reference< embed::XEmbeddedObject >*)NULL ),
+											::getCppuType( (const uno::Reference< embed::XInplaceObject >*)NULL ),
+											::getCppuType( (const uno::Reference< embed::XCommonEmbedPersist >*)NULL ),
+                                            ::getCppuType( (const uno::Reference< container::XChild >*)NULL ),
+											::getCppuType( (const uno::Reference< embed::XEmbedPersist >*)NULL ) );
+=====================================================================
+Found a 65 line (109 tokens) duplication in the following files: 
+Starting at line 559 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/dtobj/XTDataObject.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/workbench/XTDo.cxx
+
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->GetDataHere
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::GetDataHere( LPFORMATETC, LPSTGMEDIUM )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->GetCanonicalFormatEtc
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::GetCanonicalFormatEtc( LPFORMATETC, LPFORMATETC )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->SetData
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::SetData( LPFORMATETC, LPSTGMEDIUM, BOOL )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->DAdvise
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::DAdvise( LPFORMATETC, DWORD, LPADVISESINK, DWORD * )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->DUnadvise
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::DUnadvise( DWORD )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// IDataObject->EnumDAdvise
+//------------------------------------------------------------------------
+
+STDMETHODIMP CXTDataObject::EnumDAdvise( LPENUMSTATDATA * )
+{
+	return E_NOTIMPL;
+}
+
+//------------------------------------------------------------------------
+// for our convenience
+//------------------------------------------------------------------------
+
+CXTDataObject::operator IDataObject*( )
+{
+	return static_cast< IDataObject* >( this );
+}
+=====================================================================
+Found a 17 line (109 tokens) duplication in the following files: 
+Starting at line 763 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/factory.cxx
+Starting at line 792 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/factory.cxx
+
+    const Sequence<Any>& Arguments )
+    throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
+{
+	if( !xModuleFactory.is() && !xModuleFactoryDepr.is() )
+	{
+        Reference< XInterface > x( createModuleFactory() );
+        if (x.is())
+        {
+            MutexGuard aGuard( aMutex );
+            if( !xModuleFactory.is() && !xModuleFactoryDepr.is() )
+            {
+                xModuleFactory.set( x, UNO_QUERY );
+                xModuleFactoryDepr.set( x, UNO_QUERY );
+            }
+        }
+	}
+    if( xModuleFactoryDepr.is() )
+=====================================================================
+Found a 28 line (109 tokens) duplication in the following files: 
+Starting at line 395 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/FreeReference/FreeReference.test.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/Map/Map.test.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/Shield/Shield.test.cxx
+
+   	s_test__unshieldAny();
+
+	s_env.clear();
+
+
+	uno_Environment_enter(NULL);
+
+
+	int ret;
+	if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
+		ret = 0;
+	}
+	else 
+	{
+		s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
+		ret = -1;
+	}
+
+	std::cerr 
+		<< argv[0] 
+		<< std::endl 
+		<< rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() 
+		<< std::endl;
+
+	return ret;
+}
+=====================================================================
+Found a 31 line (109 tokens) duplication in the following files: 
+Starting at line 512 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OConnection.cxx
+Starting at line 327 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx
+
+}
+// --------------------------------------------------------------------------------
+// XCloseable
+void SAL_CALL OConnection::close(  ) throw(SQLException, RuntimeException)
+{
+	// we just dispose us
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+			
+	}
+	dispose();
+}
+// --------------------------------------------------------------------------------
+// XWarningsSupplier
+Any SAL_CALL OConnection::getWarnings(  ) throw(SQLException, RuntimeException)
+{
+	// when you collected some warnings -> return it
+	return Any();
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::clearWarnings(  ) throw(SQLException, RuntimeException)
+{
+	// you should clear your collected warnings here
+}
+//--------------------------------------------------------------------
+void OConnection::buildTypeInfo() throw( SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+
+	Reference< XResultSet> xRs = getMetaData ()->getTypeInfo ();
+=====================================================================
+Found a 28 line (109 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConnection.cxx
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx
+
+}
+// --------------------------------------------------------------------------------
+sal_Bool SAL_CALL OConnection::isClosed(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	
+	// just simple -> we are close when we are disposed taht means someone called dispose(); (XComponent)
+	return OConnection_BASE::rBHelper.bDisposed;
+}
+// --------------------------------------------------------------------------------
+Reference< XDatabaseMetaData > SAL_CALL OConnection::getMetaData(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+		
+	// here we have to create the class with biggest interface
+	// The answer is 42 :-)
+	Reference< XDatabaseMetaData > xMetaData = m_xMetaData;
+	if(!xMetaData.is())
+	{
+		xMetaData = new ODatabaseMetaData(this); // need the connection because it can return it
+		m_xMetaData = xMetaData;
+	}
+
+	return xMetaData;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setReadOnly( sal_Bool readOnly ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 10 line (109 tokens) duplication in the following files: 
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/ChainablePropertySetInfo.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/MasterPropertySetInfo.cxx
+
+using ::comphelper::MasterPropertySetInfo;
+using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::Type;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::XInterface;
+using ::com::sun::star::uno::RuntimeException;
+using ::com::sun::star::beans::Property;
+using ::com::sun::star::beans::XPropertySetInfo;
+using ::com::sun::star::beans::UnknownPropertyException;
+=====================================================================
+Found a 18 line (109 tokens) duplication in the following files: 
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_devicehelper.cxx
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/devicehelper.cxx
+
+                              mpSpriteCanvas ) );
+    }
+
+    uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	,
+        const geometry::IntegerSize2D& 						 )
+    {
+        return uno::Reference< rendering::XVolatileBitmap >();
+    }
+
+    uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleAlphaBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	,
+        const geometry::IntegerSize2D& 						size )
+    {
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XBitmap >(); // we're disposed
+
+        return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+                char const * rttiName = symName.getStr() +5;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+    }
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+	char * pCppStack		= (char *)alloca( sizeof(sal_Int32) + (nParams * sizeof(sal_Int64)) );
+	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+                char const * rttiName = symName.getStr() +5;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+    }
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+	char * pCppStack		= (char *)alloca( sizeof(sal_Int32) + (nParams * sizeof(sal_Int64)) );
+	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+                char const * rttiName = symName.getStr() +5;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+            }
+    }
+=====================================================================
+Found a 27 line (109 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx
+
+	char * pCppStack		= (char *)alloca( sizeof(sal_Int32) + (nParams * sizeof(sal_Int64)) );
+	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+                   ? alloca( pReturnTypeDescr->nSize )
+                   : pUnoReturn); // direct way
+			pCppStack += sizeof(void *);
+		}
+	}
+=====================================================================
+Found a 23 line (109 tokens) duplication in the following files: 
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/accessibility/accessibledialogwindow.cxx
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/accessibility/accessibledialogwindow.cxx
+
+	if ( m_pDialogWindow )
+	{
+		m_pDialogWindow->RemoveEventListener( LINK( this, AccessibleDialogWindow, WindowEventListener ) );
+		m_pDialogWindow = NULL;
+
+		if ( m_pDlgEditor )
+			EndListening( *m_pDlgEditor );
+		m_pDlgEditor = NULL;
+
+		if ( m_pDlgEdModel )
+			EndListening( *m_pDlgEdModel );
+		m_pDlgEdModel = NULL;
+
+		// dispose all children
+		for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+		{
+			Reference< XComponent > xComponent( m_aAccessibleChildren[i].rxAccessible, UNO_QUERY );
+			if ( xComponent.is() )
+				xComponent->dispose();
+		}
+		m_aAccessibleChildren.clear();
+	}
+}
+=====================================================================
+Found a 14 line (108 tokens) duplication in the following files: 
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+
+            const uno::Sequence< beans::PropertyValues > aDebugCurrentRow = aCellProperties[nDebugRow];
+            sal_Int32 nDebugCells = aDebugCurrentRow.getLength();
+            (void) nDebugCells;
+            for( sal_Int32  nDebugCell = 0; nDebugCell < nDebugCells; ++nDebugCell)
+            {
+                const uno::Sequence< beans::PropertyValue >& aDebugCellProperties = aDebugCurrentRow[nDebugCell];
+                sal_Int32 nDebugCellProperties = aDebugCellProperties.getLength();
+                for( sal_Int32  nDebugProperty = 0; nDebugProperty < nDebugCellProperties; ++nDebugProperty)
+                {
+                    const ::rtl::OUString sName = aDebugCellProperties[nDebugProperty].Name;
+                    sNames += sName;
+                    sNames += ::rtl::OUString('-');
+                }
+                sNames += ::rtl::OUString('+');
+=====================================================================
+Found a 16 line (108 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                    y_hr += ry_inv;
+                    ++y_lr;
+                }
+                while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+=====================================================================
+Found a 9 line (108 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/MergeElemTContext.cxx
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PersMixedContentTContext.cxx
+
+	virtual ~XMLPersTextTContext_Impl();
+
+	virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix,
+								   const ::rtl::OUString& rLocalName,
+								   const ::rtl::OUString& rQName,
+								   const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
+	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
+	virtual void EndElement();
+	virtual void Characters( const ::rtl::OUString& rChars );
+=====================================================================
+Found a 27 line (108 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/writerperfect/source/wpdimp/wpft_genericfilter.cxx
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/framework/xsec_framework.cxx
+
+using namespace ::rtl;
+using namespace ::cppu;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::registry;
+
+extern "C"
+{
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment **)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * /*pServiceManager*/, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+			//Decryptor
+			sal_Int32 nPos = 0;
+			Reference< XRegistryKey > xNewKey(
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( DecryptorImpl_getImplementationName() ) ); 
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0xff,0xfe,0x00,0x00,0xfe,0xfe,0x00,0x00,0xf8,0x7c,0x00,0x00,0xf0,0x39,0x00,
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asns_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x04,0x00,0x00,0xf0,0x07,0x00,0x00,0xe0,
+ 0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0xc0,0x01,0x00,0x00,0x80,0x00,0x00,0x00,
+ 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (108 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x9c,0x0f,0x00,0x00,0x3e,0x1f,
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/headless/svpprn.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/gdi/salprnpsp.cxx
+
+static String getPdfDir( const PrinterInfo& rInfo )
+{
+	String aDir;
+    sal_Int32 nIndex = 0;
+    while( nIndex != -1 )
+	{
+		OUString aToken( rInfo.m_aFeatures.getToken( 0, ',', nIndex ) );
+		if( ! aToken.compareToAscii( "pdf=", 4 ) )
+		{
+            sal_Int32 nPos = 0;
+			aDir = aToken.getToken( 1, '=', nPos );
+			if( ! aDir.Len() )
+				aDir = String( ByteString( getenv( "HOME" ) ), osl_getThreadTextEncoding() );
+			break;
+		}
+	}
+	return aDir;
+}
+=====================================================================
+Found a 27 line (108 tokens) duplication in the following files: 
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev5.cxx
+Starting at line 301 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev5.cxx
+
+		mpMetaFile->AddAction( new MetaChordAction( rRect, rStartPt, rEndPt ) );
+
+	if ( !IsDeviceOutputNecessary() || (!mbLineColor && !mbFillColor) || ImplIsRecordLayout() )
+		return;
+
+	Rectangle aRect( ImplLogicToDevicePixel( rRect ) );
+	if ( aRect.IsEmpty() )
+		return;
+
+	// we need a graphics
+	if ( !mpGraphics )
+	{
+		if ( !ImplGetGraphics() )
+			return;
+	}
+
+	if ( mbInitClipRegion )
+		ImplInitClipRegion();
+	if ( mbOutputClipped )
+		return;
+
+	if ( mbInitLineColor )
+		ImplInitLineColor();
+
+	const Point 	aStart( ImplLogicToDevicePixel( rStartPt ) );
+	const Point 	aEnd( ImplLogicToDevicePixel( rEndPt ) );
+	Polygon 		aChordPoly( aRect, aStart, aEnd, POLY_CHORD );
+=====================================================================
+Found a 8 line (108 tokens) duplication in the following files: 
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+Starting at line 1233 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+			ImplCalcHatchValues( aRect, nWidth, rHatch.GetAngle() + 450, aPt1, aPt2, aInc, aEndPt1 );
+			do
+			{
+				ImplDrawHatchLine( Line( aPt1, aPt2 ), rPolyPoly, pPtBuffer, bMtf );
+				aPt1.X() += aInc.Width(); aPt1.Y() += aInc.Height();
+				aPt2.X() += aInc.Width(); aPt2.Y() += aInc.Height();
+			}
+			while( ( aPt1.X() <= aEndPt1.X() ) && ( aPt1.Y() <= aEndPt1.Y() ) );
+=====================================================================
+Found a 20 line (108 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/imgcons.cxx
+
+				BitmapColor aCol;
+				BitmapColor	aMskWhite( pMskAcc->GetBestMatchingColor( Color( COL_WHITE ) ) );
+
+				for( long nY = nStartY; nY <= nEndY; nY++ )
+				{
+					const BYTE* pTmp = pData + ( nY - nStartY ) * nScanSize + nOffset;
+
+					for( long nX = nStartX; nX <= nEndX; nX++ )
+					{
+						const BYTE		cIndex = *pTmp++;
+						const Color&	rCol = mpPal[ cIndex ];
+
+						// 0: Transparent; >0: Non-Transparent
+						if( !rCol.GetTransparency() )
+						{
+							pMskAcc->SetPixel( nY, nX, aMskWhite );
+							mbTrans = TRUE;
+						}
+						else
+						{
+=====================================================================
+Found a 12 line (108 tokens) duplication in the following files: 
+Starting at line 2422 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+Starting at line 3417 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/button.cxx
+
+    if ( ( aText.Len() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) ) ||
+         ( HasImage() && !  (ImplGetButtonState() & BUTTON_DRAW_NOIMAGE) ) )
+    {
+        USHORT nTextStyle = Button::ImplGetTextStyle( aText, nWinStyle, nDrawFlags );
+
+        Size aSize( rSize );
+        Point aPos( rPos );
+        aPos.X() += rImageSize.Width() + nImageSep;
+        aSize.Width() -= rImageSize.Width() + nImageSep;
+
+        ImplDrawAlignedImage( pDev, aPos, aSize, bLayout, 1,
+                              nDrawFlags, nTextStyle, NULL );
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salobj.h
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salobj.h
+
+    virtual ~X11SalObject();
+
+    // overload all pure virtual methods
+ 	virtual void					ResetClipRegion();
+	virtual USHORT					GetClipRegionType();
+	virtual void					BeginSetClipRegion( ULONG nRects );
+	virtual void					UnionClipRegion( long nX, long nY, long nWidth, long nHeight );
+	virtual void					EndSetClipRegion();
+
+	virtual void					SetPosSize( long nX, long nY, long nWidth, long nHeight );
+	virtual void					Show( BOOL bVisible );
+	virtual void					Enable( BOOL nEnable );
+	virtual void					GrabFocus();
+
+	virtual void					SetBackground();
+	virtual void					SetBackground( SalColor nSalColor );
+
+	virtual const SystemEnvData*	GetSystemData() const;
+=====================================================================
+Found a 20 line (108 tokens) duplication in the following files: 
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salgdi.h
+
+                                                   const sal_uInt32* pPoints,
+                                                   const SalPoint* const* pPtAry,
+                                                   const BYTE* const* pFlgAry );
+	virtual void			copyArea( long nDestX,
+                                      long nDestY,
+                                      long nSrcX,
+                                      long nSrcY,
+                                      long nSrcWidth,
+                                      long nSrcHeight,
+                                      USHORT nFlags );
+    virtual void			copyBits( const SalTwoRect* pPosAry,
+                                      SalGraphics* pSrcGraphics );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap,
+                                        SalColor nTransparentColor );
+    virtual void			drawBitmap( const SalTwoRect* pPosAry,
+                                        const SalBitmap& rSalBitmap,
+                                        const SalBitmap& rMaskBitmap );
+=====================================================================
+Found a 29 line (108 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+
+	sal_uInt32 nOldCount = m_pImpl->m_aResults.size();
+
+	while ( m_pImpl->m_xFolderEnum->hasMoreElements() )
+	{
+		try
+		{
+            uno::Reference< container::XNamed > xNamed;
+			m_pImpl->m_xFolderEnum->nextElement() >>= xNamed;
+
+			if ( !xNamed.is() )
+			{
+                OSL_ENSURE( sal_False,
+							"DataSupplier::getResult - Got no XNamed!" );
+				break;
+			}
+
+            rtl::OUString aName = xNamed->getName();
+
+			if ( !aName.getLength() )
+			{
+                OSL_ENSURE( sal_False,
+							"DataSupplier::getResult - Empty name!" );
+				break;
+			}
+
+			// Assemble URL for child.
+			rtl::OUString aURL = assembleChildURL( aName );
+
+			m_pImpl->m_aResults.push_back( new ResultListEntry( aURL ) );
+=====================================================================
+Found a 34 line (108 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+	}
+}
+
+//=========================================================================
+//=========================================================================
+//
+// DataSupplier Implementation.
+//
+//=========================================================================
+//=========================================================================
+
+DataSupplier::DataSupplier( const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+							const rtl::Reference< Content >& rContent,
+							sal_Int32 nOpenMode )
+: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) )
+{
+}
+
+//=========================================================================
+// virtual
+DataSupplier::~DataSupplier()
+{
+	delete m_pImpl;
+}
+
+//=========================================================================
+// virtual
+rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+		rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aId;
+=====================================================================
+Found a 25 line (108 tokens) duplication in the following files: 
+Starting at line 1595 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1642 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                    uno::Reference< io::XInputStream > xIn = getInputStream( xEnv );
+                    if ( !xIn.is() )
+                    {
+                        // No interaction if we are not persistent!
+                        uno::Any aProps
+                            = uno::makeAny(
+                                     beans::PropertyValue(
+                                         rtl::OUString(
+                                             RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                         -1,
+                                         uno::makeAny(m_xIdentifier->
+                                                          getContentIdentifier()),
+                                         beans::PropertyState_DIRECT_VALUE));
+                        ucbhelper::cancelCommandExecution(
+                            ucb::IOErrorCode_CANT_READ,
+                            uno::Sequence< uno::Any >(&aProps, 1),
+                            m_eState == PERSISTENT
+                                ? xEnv
+                                : uno::Reference<
+                                      ucb::XCommandEnvironment >(),
+                            rtl::OUString::createFromAscii(
+                                "Got no data stream!" ),
+                            this );
+                        // Unreachable
+                    }
+=====================================================================
+Found a 29 line (108 tokens) duplication in the following files: 
+Starting at line 1103 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 869 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+			nPos = aChildURL.indexOf( '/', nLen );
+
+			if ( ( nPos == -1 ) ||
+				 ( nPos == ( aChildURL.getLength() - 1 ) ) )
+			{
+				// No further slashes / only a final slash. It's a child!
+				rChildren.push_back(
+					ContentRef(
+						static_cast< Content * >( xChild.get() ) ) );
+			}
+		}
+		++it;
+	}
+}
+
+//=========================================================================
+void Content::insert(
+        const uno::Reference< io::XInputStream > & xInputStream,
+        sal_Bool bReplaceExisting,
+        const uno::Reference< ucb::XCommandEnvironment >& Environment )
+    throw( uno::Exception )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+	// Check, if all required properties were set.
+
+#if 0
+    // @@@ add checks for property presence 
+	if ( m_aProps.xxxx == yyyyy )
+=====================================================================
+Found a 30 line (108 tokens) duplication in the following files: 
+Starting at line 1499 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1468 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            if ( !storeData( uno::Reference< io::XInputStream >(), xEnv ) )
+            {
+                uno::Any aProps
+                    = uno::makeAny(
+                             beans::PropertyValue(
+                                 rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                     "Uri")),
+                                 -1,
+                                 uno::makeAny(m_xIdentifier->
+                                                  getContentIdentifier()),
+                                 beans::PropertyState_DIRECT_VALUE));
+                ucbhelper::cancelCommandExecution(
+                    ucb::IOErrorCode_CANT_WRITE,
+                    uno::Sequence< uno::Any >(&aProps, 1),
+                    xEnv,
+                    rtl::OUString::createFromAscii(
+                        "Cannot store persistent data!" ),
+                    this );
+                // Unreachable
+            }
+        }
+
+		aChanges.realloc( nChanged );
+
+		aGuard.clear();
+		notifyPropertiesChange( aChanges );
+	}
+
+    return aRet;
+}
+=====================================================================
+Found a 31 line (108 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_resultset.cxx
+
+DynamicResultSet::DynamicResultSet(
+    const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+    const rtl::Reference< Content >& rxContent,
+    const ucb::OpenCommandArgument2& rCommand,
+    const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+=====================================================================
+Found a 13 line (108 tokens) duplication in the following files: 
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/lngmerge.cxx
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/lngmerge.cxx
+
+		ByteString sLanguagesDone;
+
+		while ( nPos < pLines->Count() && !bGroup ) {
+			ByteString sLine( *pLines->GetObject( nPos ));
+			sLine.EraseLeadingChars( ' ' );
+			sLine.EraseTrailingChars( ' ' );
+			if (( sLine.GetChar( 0 ) == '[' ) &&
+				( sLine.GetChar( sLine.Len() - 1 ) == ']' ))
+			{
+				sGroup = sLine.GetToken( 1, '[' ).GetToken( 0, ']' );
+				sGroup.EraseLeadingChars( ' ' );
+				sGroup.EraseTrailingChars( ' ' );
+				bGroup = TRUE;
+=====================================================================
+Found a 3 line (108 tokens) duplication in the following files: 
+Starting at line 538 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+/* - */ PA+PB+PC+PD+PE   +PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* . */ PA+PB+PC+PD+PE   +PG+PH+PI+PJ+PK+PL+PM+PN+PO+PP+PQ+PR+PS+PT+PU+PV+PW+PX+PY+PZ+P1+P2,
+/* / */ PA+PB+PC            +PH   +PJ   +PL+PM      +PP+PQ+PR   +PT+PU+PV   +PX         +P2,
+=====================================================================
+Found a 10 line (108 tokens) duplication in the following files: 
+Starting at line 470 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 241 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/wrthtml.cxx
+
+	SvxHtmlOptions* pHtmlOptions = SvxHtmlOptions::Get();
+
+	// die Fontgroessen 1-7
+	aFontHeights[0] = pHtmlOptions->GetFontSize( 0 ) * 20;
+	aFontHeights[1] = pHtmlOptions->GetFontSize( 1 ) * 20;
+	aFontHeights[2] = pHtmlOptions->GetFontSize( 2 ) * 20;
+	aFontHeights[3] = pHtmlOptions->GetFontSize( 3 ) * 20;
+	aFontHeights[4] = pHtmlOptions->GetFontSize( 4 ) * 20;
+	aFontHeights[5] = pHtmlOptions->GetFontSize( 5 ) * 20;
+	aFontHeights[6] = pHtmlOptions->GetFontSize( 6 ) * 20;
+=====================================================================
+Found a 14 line (108 tokens) duplication in the following files: 
+Starting at line 1943 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotext.cxx
+Starting at line 207 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+
+            const uno::Sequence< beans::PropertyValues > aDebugCurrentRow = aCellProperties[nRow];
+            sal_Int32 nDebugCells = aDebugCurrentRow.getLength();
+            (void) nDebugCells;
+            for( sal_Int32  nDebugCell = 0; nDebugCell < nDebugCells; ++nDebugCell)
+            {
+                const uno::Sequence< beans::PropertyValue >& aDebugCellProperties = aDebugCurrentRow[nDebugCell];
+                sal_Int32 nDebugCellProperties = aDebugCellProperties.getLength();
+                for( sal_Int32  nDebugProperty = 0; nDebugProperty < nDebugCellProperties; ++nDebugProperty)
+                {
+                    const ::rtl::OUString sName = aDebugCellProperties[nDebugProperty].Name;
+                    sNames += sName;
+                    sNames += ::rtl::OUString('-');
+                }
+                sNames += ::rtl::OUString(' ');
+=====================================================================
+Found a 19 line (108 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/txtatr2.cxx
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/txtatr2.cxx
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/txtatr2.cxx
+
+void SwTxtRuby::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew )
+{
+	USHORT nWhich = pOld ? pOld->Which() : pNew ? pNew->Which() : 0;
+#ifndef PRODUCT
+	if ( (nWhich<RES_CHRATR_BEGIN || nWhich>RES_CHRATR_END)
+			&& (nWhich!=RES_OBJECTDYING)
+			&& (nWhich!=RES_ATTRSET_CHG)
+			&& (nWhich!=RES_FMT_CHG) )
+		ASSERT(!this, "SwTxtCharFmt::Modify(): unbekanntes Modify!");
+#endif
+
+	if( pMyTxtNd )
+	{
+		SwUpdateAttr aUpdateAttr( *GetStart(), *GetEnd(), nWhich );
+		pMyTxtNd->SwCntntNode::Modify( &aUpdateAttr, &aUpdateAttr );
+	}
+}
+
+BOOL SwTxtRuby::GetInfo( SfxPoolItem& rInfo ) const
+=====================================================================
+Found a 7 line (108 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 290 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return a3DCubeObjectPropertyMap_Impl;
+=====================================================================
+Found a 20 line (108 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtxhdl.cxx
+Starting at line 649 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdtxhdl.cxx
+
+		else y-=nDick+(nDist+1)/2;
+
+		basegfx::B2DHomMatrix aMatrix;
+
+		if(bIsVertical)
+		{
+			aMatrix.translate(aStartPos.X() - (y - nHochTief), aStartPos.Y());
+		}
+		else
+		{
+			aMatrix.translate(aStartPos.X(), aStartPos.Y() + y - nHochTief);
+		}
+
+		aPolyPolygon.transform(aMatrix);
+
+		// aFormTextBoundRect enthaelt den Ausgabebereich des Textobjekts
+		SdrObject* pObj=rTextObj.ImpConvertMakeObj(aPolyPolygon, sal_True, !bToPoly, sal_True);
+		pObj->SetMergedItemSet(aAttrSet);
+		pGroup->GetSubList()->InsertObject(pObj);
+	}
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 3248 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 2927 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	(SvxMSDffVertPair*)mso_sptMoonGluePoints, sizeof( mso_sptMoonGluePoints ) / sizeof( SvxMSDffVertPair )
+};
+
+static const SvxMSDffVertPair mso_sptBracketPairVert[] =	// adj value 0 -> 10800
+{
+	{ 0 MSO_I, 0 },		{ 0, 1 MSO_I },		// left top alignment
+	{ 0, 2 MSO_I },		{ 0 MSO_I, 21600 },	// left  bottom "
+	{ 3 MSO_I, 21600 },	{ 21600, 2 MSO_I },	// right bottom	"
+	{ 21600, 1 MSO_I },	{ 3 MSO_I, 0 }		// right top	"
+};
+static const sal_uInt16 mso_sptBracketPairSegm[] =
+{
+	0x4000, 0xa701, 0x0001, 0xa801, 0x8000,
+	0x4000, 0xa701, 0x0001, 0xa801, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptBracketPairCalc[] =
+{
+	{ 0x6000, DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 },
+=====================================================================
+Found a 12 line (108 tokens) duplication in the following files: 
+Starting at line 1556 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/edit/texteng.cxx
+Starting at line 2689 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit3.cxx
+
+	if ( mpIMEInfos && mpIMEInfos->pAttribs && ( mpIMEInfos->aPos.GetNode() == pNode ) &&
+		( nPos > mpIMEInfos->aPos.GetIndex() ) && ( nPos <= ( mpIMEInfos->aPos.GetIndex() + mpIMEInfos->nLen ) ) )
+	{
+		sal_uInt16 nAttr = mpIMEInfos->pAttribs[ nPos - mpIMEInfos->aPos.GetIndex() - 1 ];
+		if ( nAttr & EXTTEXTINPUT_ATTR_UNDERLINE )
+			rFont.SetUnderline( UNDERLINE_SINGLE );
+		else if ( nAttr & EXTTEXTINPUT_ATTR_BOLDUNDERLINE )
+			rFont.SetUnderline( UNDERLINE_BOLD );
+		else if ( nAttr & EXTTEXTINPUT_ATTR_DOTTEDUNDERLINE )
+			rFont.SetUnderline( UNDERLINE_DOTTED );
+		else if ( nAttr & EXTTEXTINPUT_ATTR_DASHDOTUNDERLINE )
+			rFont.SetUnderline( UNDERLINE_DOTTED );
+=====================================================================
+Found a 26 line (108 tokens) duplication in the following files: 
+Starting at line 1408 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/edit/svmedit.cxx
+Starting at line 1829 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/edit.cxx
+
+            ImplDrawFrame( pDev, aRect );
+		}
+		if ( bBackground )
+		{
+			pDev->SetFillColor( GetControlBackground() );
+			pDev->DrawRect( aRect );
+		}
+	}
+
+	// Inhalt
+	if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+		pDev->SetTextColor( Color( COL_BLACK ) );
+	else
+	{
+		if ( !(nFlags & WINDOW_DRAW_NODISABLE ) && !IsEnabled() )
+		{
+			const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+			pDev->SetTextColor( rStyleSettings.GetDisableColor() );
+		}
+		else
+		{
+			pDev->SetTextColor( GetTextColor() );
+		}
+	}
+
+	XubString	aText = ImplGetText();
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 3510 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 3650 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+
+void SmXMLExport::GetViewSettings( Sequence < PropertyValue >& aProps)
+{
+    uno::Reference <frame::XModel> xModel = GetModel();
+    if( !xModel.is() )
+        return;
+
+    uno::Reference <lang::XUnoTunnel> xTunnel;
+    xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY);
+    SmModel *pModel = reinterpret_cast<SmModel *>
+        (xTunnel->getSomething(SmModel::getUnoTunnelId()));
+
+    if( !pModel )
+        return;
+
+    SmDocShell *pDocShell =
+        static_cast<SmDocShell*>(pModel->GetObjectShell());
+    if( !pDocShell )
+        return;
+=====================================================================
+Found a 13 line (108 tokens) duplication in the following files: 
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 684 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+			  &::getCppuType( (uno::Reference<XInterface> *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "BaseURI", sizeof("BaseURI")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamRelPath", sizeof("StreamRelPath")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		{ "StreamName", sizeof("StreamName")-1, 0,
+			  &::getCppuType( (OUString *)0 ),
+			  beans::PropertyAttribute::MAYBEVOID, 0 },
+		// properties for insert modes
+		{ "StyleInsertModeFamilies", sizeof("StyleInsertModeFamilies")-1, 0,
+=====================================================================
+Found a 23 line (108 tokens) duplication in the following files: 
+Starting at line 1105 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviews1.cxx
+Starting at line 1166 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviews1.cxx
+
+			SdrPageView* pPageView = mpDrawView->GetSdrPageView();
+
+			if (pPageView)
+			{
+				mpFrameView->SetVisibleLayers( pPageView->GetVisibleLayers() );
+				mpFrameView->SetPrintableLayers( pPageView->GetPrintableLayers() );
+				mpFrameView->SetLockedLayers( pPageView->GetLockedLayers() );
+
+				if (mePageKind == PK_NOTES)
+				{
+					mpFrameView->SetNotesHelpLines( pPageView->GetHelpLines() );
+				}
+				else if (mePageKind == PK_HANDOUT)
+				{
+					mpFrameView->SetHandoutHelpLines( pPageView->GetHelpLines() );
+				}
+				else
+				{
+					mpFrameView->SetStandardHelpLines( pPageView->GetHelpLines() );
+				}
+			}
+
+			mpDrawView->HideSdrPage();
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+Starting at line 928 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+
+		throw UnknownPropertyException();
+
+	SdOptionsPrintItem aOptionsPrintItem( ATTR_OPTIONS_PRINT );
+
+	SfxPrinter* pPrinter = pDocSh->GetPrinter( FALSE );
+	if( pPrinter )
+	{
+		SdOptionsPrintItem* pPrinterOptions = NULL;
+		if(pPrinter->GetOptions().GetItemState( ATTR_OPTIONS_PRINT, FALSE, (const SfxPoolItem**) &pPrinterOptions) == SFX_ITEM_SET)
+			aOptionsPrintItem.GetOptionsPrint() = pPrinterOptions->GetOptionsPrint();
+	}
+	else
+	{
+		aOptionsPrintItem.SetOptions( SD_MOD()->GetSdOptions(pDoc->GetDocumentType()) );
+	}
+	SdOptionsPrint& aPrintOpts = aOptionsPrintItem.GetOptionsPrint();
+
+	for( ; *ppEntries; ppEntries++, pValue++ )
+=====================================================================
+Found a 24 line (108 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuediglu.cxx
+Starting at line 586 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fusel.cxx
+
+                        mpView->BegDragObj(aMDPos, (OutputDevice*)NULL, pHdl, nDrgLog);
+			}
+        }
+        else
+        {
+            /******************************************************************
+            * Objekt selektieren oder draggen
+            ******************************************************************/
+            if (!rMEvt.IsShift() && !rMEvt.IsMod2() && eHit == SDRHIT_UNMARKEDOBJECT)
+            {
+               mpView->UnmarkAllObj();
+            }
+
+            BOOL bMarked = FALSE;
+
+            if (!rMEvt.IsMod1())
+            {
+                if (rMEvt.IsMod2())
+                {
+                    bMarked = mpView->MarkNextObj(aMDPos, nHitLog, rMEvt.IsShift());
+                }
+                else
+                {
+                    bMarked = mpView->MarkObj(aMDPos, nHitLog, rMEvt.IsShift(), FALSE);
+=====================================================================
+Found a 16 line (108 tokens) duplication in the following files: 
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconarc.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconcs.cxx
+
+BOOL FuConstructCustomShape::MouseButtonDown(const MouseEvent& rMEvt)
+{
+	BOOL bReturn = FuConstruct::MouseButtonDown(rMEvt);
+
+	if ( rMEvt.IsLeft() && !mpView->IsAction() )
+	{
+		Point aPnt( mpWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+
+		mpWindow->CaptureMouse();
+		USHORT nDrgLog = USHORT ( mpWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+
+		mpView->BegCreateObj(aPnt, (OutputDevice*) NULL, nDrgLog);
+
+		SdrObject* pObj = mpView->GetCreateObj();
+		if ( pObj )
+		{
+=====================================================================
+Found a 10 line (108 tokens) duplication in the following files: 
+Starting at line 2161 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+Starting at line 3079 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/output2.cxx
+
+						long nCellWidth = (long) pRowInfo[0].pCellInfo[nX+1].nWidth;
+
+						SvxCellHorJustify eHorJust = (SvxCellHorJustify)((const SvxHorJustifyItem&)
+											pPattern->GetItem(ATTR_HOR_JUSTIFY, pCondSet)).GetValue();
+						BOOL bBreak = ( eHorJust == SVX_HOR_JUSTIFY_BLOCK ) ||
+									((const SfxBoolItem&)pPattern->GetItem(ATTR_LINEBREAK, pCondSet)).GetValue();
+                        BOOL bRepeat = ( eHorJust == SVX_HOR_JUSTIFY_REPEAT && !bBreak );
+                        BOOL bShrink = !bBreak && !bRepeat && static_cast<const SfxBoolItem&>
+                                        (pPattern->GetItem( ATTR_SHRINKTOFIT, pCondSet )).GetValue();
+                        SvxCellOrientation eOrient = pPattern->GetCellOrientation( pCondSet );
+=====================================================================
+Found a 17 line (108 tokens) duplication in the following files: 
+Starting at line 328 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/defltuno.cxx
+Starting at line 916 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+Starting at line 1315 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+
+uno::Sequence<beans::PropertyState> SAL_CALL ScStyleObj::getPropertyStates(
+							const uno::Sequence<rtl::OUString>& aPropertyNames )
+					throw(beans::UnknownPropertyException, uno::RuntimeException)
+{
+	//	duemmliche Default-Implementierung: alles einzeln per getPropertyState holen
+	//!	sollte optimiert werden!
+
+	ScUnoGuard aGuard;
+	const rtl::OUString* pNames = aPropertyNames.getConstArray();
+	uno::Sequence<beans::PropertyState> aRet(aPropertyNames.getLength());
+	beans::PropertyState* pStates = aRet.getArray();
+	for(sal_Int32 i = 0; i < aPropertyNames.getLength(); i++)
+		pStates[i] = getPropertyState(pNames[i]);
+	return aRet;
+}
+
+void SAL_CALL ScStyleObj::setPropertyToDefault( const rtl::OUString& aPropertyName )
+=====================================================================
+Found a 15 line (108 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+Starting at line 427 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+
+        sal_Bool bAddNote(sal_False);
+        for (sal_Int32 nIndex = 0; nIndex < nCount; ++nIndex)
+        {
+            if (rData.GetNoteInRange(rVisRect, nIndex, bMark, aNote.maNoteCell, aNote.maRect))
+            {
+                if (bMark)
+                {
+	                // Document not needed, because only the cell address, but not the tablename is needed
+	                aNote.maNoteCell.Format( aNote.maNoteText, SCA_VALID, NULL );
+                }
+                else
+                {
+                    ScPostIt aPostIt(pDoc);
+                    pDoc->GetNote(aNote.maNoteCell.Col(), aNote.maNoteCell.Row(), aNote.maNoteCell.Tab(), aPostIt);
+                    aNote.maNoteText = aPostIt.GetText();
+=====================================================================
+Found a 13 line (108 tokens) duplication in the following files: 
+Starting at line 904 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1634 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Int32 nPosition(0);
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+=====================================================================
+Found a 24 line (108 tokens) duplication in the following files: 
+Starting at line 1564 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1858 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+		ScMatrixRef pResMat = MatMul(pMat1, pMat2);
+		if (!pResMat)
+			SetNoValue();
+		else
+			PushMatrix(pResMat);
+	}
+	else if (pMat1 || pMat2)
+	{
+		double fVal;
+		ScMatrixRef pMat = pMat1;
+		if (!pMat)
+		{
+			fVal = fVal1;
+			pMat = pMat2;
+		}
+		else
+			fVal = fVal2;
+        SCSIZE nC, nR;
+		pMat->GetDimensions(nC, nR);
+		ScMatrixRef pResMat = GetNewMat(nC, nR);
+		if (pResMat)
+		{
+			SCSIZE nCount = nC * nR;
+			for ( SCSIZE i = 0; i < nCount; i++ )
+=====================================================================
+Found a 20 line (108 tokens) duplication in the following files: 
+Starting at line 951 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+Starting at line 1027 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+
+	Rectangle aObjRect;
+
+	ScDrawLayer* pModel = pDoc->GetDrawLayer();
+	SdrPage* pPage = pModel->GetPage(static_cast<sal_uInt16>(nTab));
+	DBG_ASSERT(pPage,"Page ?");
+
+	pPage->RecalcObjOrdNums();
+
+	long	nDelCount = 0;
+	ULONG	nObjCount = pPage->GetObjCount();
+	if (nObjCount)
+	{
+		SdrObject** ppObj = new SdrObject*[nObjCount];
+
+		SdrObjListIter aIter( *pPage, IM_FLAT );
+		SdrObject* pObject = aIter.Next();
+		while (pObject)
+		{
+			if ( pObject->GetLayer() == SC_LAYER_INTERN &&
+					pObject->Type() == TYPE(SdrRectObj) )
+=====================================================================
+Found a 46 line (108 tokens) duplication in the following files: 
+Starting at line 541 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_String_Utils.cxx
+Starting at line 523 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_String_Utils.cxx
+
+		while ( nCount >= 0 )
+		{
+			*pDest = (unsigned char)*pSrc;
+
+			pDest++;
+			pSrc++;
+
+			// Since we are dealing with unsigned integers
+			// we want to make sure that the last number is
+			// indeed zero.
+
+			if ( nCount > 0 )
+			{
+				nCount--;
+			} // if
+			else
+			{
+				break;
+			} // else
+		} // while
+
+		if ( nCount == 0 )
+		{
+			bCopied = sal_True;
+		} // if
+	} // if
+
+	return  bCopied;
+} // AStringToUStringCopy
+
+//------------------------------------------------------------------------
+
+sal_Bool AStringToUStringNCopy( sal_Unicode       *pDest,
+                                const sal_Char    *pSrc,
+                                const sal_uInt32   nSrcLen
+                              )
+{
+	sal_Bool    bCopied = sal_False;
+	sal_uInt32  nCount  = nSrcLen;
+	sal_uInt32  nLen    = nSrcLen;
+
+	if (    ( pDest != NULL )
+	     && ( pSrc  != NULL )
+	     && ( AStringNIsValid( pSrc, nLen ) )
+	   )
+	{
+=====================================================================
+Found a 34 line (108 tokens) duplication in the following files: 
+Starting at line 667 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno.cxx
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno_callable.cxx
+
+    (reprfunc) 0,
+        (getattrofunc)0,
+    (setattrofunc)0,
+    NULL,
+    0,
+    NULL,
+    (traverseproc)0,
+    (inquiry)0,
+    (richcmpfunc)0,
+    0,
+    (getiterfunc)0,
+    (iternextfunc)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    (descrgetfunc)0,
+    (descrsetfunc)0,
+    0,
+    (initproc)0,
+    (allocfunc)0,
+    (newfunc)0,
+    (freefunc)0,
+    (inquiry)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    (destructor)0
+};
+
+PyRef PyUNO_callable_new (
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldsp.cxx
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/spelldsp.cxx
+
+		if ((!bTmpResValid || xTmpRes.is())
+			&&  pEntry->aFlags.nLastTriedSvcIndex < nLen - 1)
+		{
+			const OUString *pImplNames = pEntry->aSvcImplNames.getConstArray();
+			Reference< XSpellChecker1 > *pRef1 = pEntry->aSvc1Refs.getArray();
+			Reference< XSpellChecker >  *pRef  = pEntry->aSvcRefs .getArray();
+			
+			Reference< XMultiServiceFactory >  xMgr( getProcessServiceFactory() );
+			if (xMgr.is())
+			{
+				// build service initialization argument
+				Sequence< Any > aArgs(2);
+				aArgs.getArray()[0] <<= GetPropSet();
+				//! The dispatcher searches the dictionary-list
+				//! thus the service needs not to now about it
+				//aArgs.getArray()[1] <<= GetDicList();
+
+				while (i < nLen  &&  (!bTmpResValid || xTmpRes.is()))
+=====================================================================
+Found a 9 line (108 tokens) duplication in the following files: 
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/hunspell.cxx
+
+      unsigned short idx;
+      for (int i = 0; i < nc; i++) {
+         idx = (u[i].h << 8) + u[i].l;
+         if (idx != utfconv[idx].cupper) {
+            u[i].h = (unsigned char) (utfconv[idx].cupper >> 8);
+            u[i].l = (unsigned char) (utfconv[idx].cupper & 0x00FF);
+         }
+      }
+      u16_u8(p, MAXWORDUTF8LEN, u, nc);
+=====================================================================
+Found a 28 line (108 tokens) duplication in the following files: 
+Starting at line 654 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 719 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+     sStart[sp] = (AffEntry*)ep;
+     return 0;
+  }
+
+  // otherwise use binary tree insertion so that a sorted
+  // list can easily be generated later
+  pptr = NULL;
+  for (;;) {
+    pptr = ptr;
+    if (strcmp(ep->getKey(), ptr->getKey() ) <= 0) {
+       ptr = ptr->getNextEQ();
+       if (!ptr) {
+	  pptr->setNextEQ(ep);
+          break;
+       }
+    } else {
+       ptr = ptr->getNextNE();
+       if (!ptr) {
+	  pptr->setNextNE(ep);
+          break;
+       }
+    }
+  }
+  return 0;
+}
+
+// convert from binary tree to sorted list
+int AffixMgr::process_pfx_tree_to_list()
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+Starting at line 949 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+
+void OMarkableInputStream::checkMarksAndFlush()
+{
+	map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii;
+	
+	// find the smallest mark
+	sal_Int32 nNextFound = m_nCurrentPos;
+	for( ii = m_mapMarks.begin() ; ii != m_mapMarks.end() ; ii ++ ) {
+		if( (*ii).second <= nNextFound )  {
+			nNextFound = (*ii).second;	
+		}
+	}
+
+	if( nNextFound ) {
+		// some data must be released !
+		m_nCurrentPos -= nNextFound;
+		for( ii = m_mapMarks.begin() ; ii != m_mapMarks.end() ; ii ++ ) {
+			(*ii).second -= nNextFound;
+		}
+=====================================================================
+Found a 15 line (108 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/opipe.cxx
+
+			   RuntimeException );
+
+public: // XConnectable
+    virtual void SAL_CALL setPredecessor(const Reference< XConnectable >& aPredecessor)
+		throw( RuntimeException );
+    virtual Reference< XConnectable > SAL_CALL getPredecessor(void) throw( RuntimeException );
+    virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
+		throw( RuntimeException );
+    virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw( RuntimeException ) ;
+
+
+public: // XServiceInfo
+    OUString                    SAL_CALL getImplementationName() throw(  );
+    Sequence< OUString >         SAL_CALL getSupportedServiceNames(void) throw(  );
+    sal_Bool                        SAL_CALL supportsService(const OUString& ServiceName) throw(  );
+=====================================================================
+Found a 9 line (108 tokens) duplication in the following files: 
+Starting at line 1112 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1448 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							aCol0 = pAcc->GetPixel( nTmpY, --nTmpX );
+							cR1 = MAP( aCol0.GetRed(), aCol1.GetRed(), nTmpFX );
+							cG1 = MAP( aCol0.GetGreen(), aCol1.GetGreen(), nTmpFX );
+							cB1 = MAP( aCol0.GetBlue(), aCol1.GetBlue(), nTmpFX );
+
+							aColRes.SetRed( MAP( cR0, cR1, nTmpFY ) );
+							aColRes.SetGreen( MAP( cG0, cG1, nTmpFY ) );
+							aColRes.SetBlue( MAP( cB0, cB1, nTmpFY ) );
+							pWAcc->SetPixel( nY, nX, aColRes );
+=====================================================================
+Found a 13 line (108 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/dlgeos2.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/dlgepct.cxx
+
+	sal_Int32 nStrMode = pConfigItem->ReadInt32( String( ResId( KEY_MODE, *pMgr ) ), 0 );
+	::com::sun::star::awt::Size aDefault( 10000, 10000 );
+	::com::sun::star::awt::Size aSize;
+	aSize = pConfigItem->ReadSize( String( ResId( KEY_SIZE, *pMgr ) ), aDefault );
+
+	aMtfSizeX.SetDefaultUnit( FUNIT_MM );
+	aMtfSizeY.SetDefaultUnit( FUNIT_MM );
+	aMtfSizeX.SetValue( aSize.Width );
+	aMtfSizeY.SetValue( aSize.Height );
+
+	switch ( rPara.eFieldUnit )
+	{
+		case FUNIT_NONE :
+=====================================================================
+Found a 16 line (108 tokens) duplication in the following files: 
+Starting at line 154 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/interaction/restricteduiinteraction.cxx
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/interaction/stillinteraction.cxx
+
+void SAL_CALL StillInteraction::handle( const css::uno::Reference< css::task::XInteractionRequest >& xRequest ) throw( css::uno::RuntimeException )
+{
+    // safe the request for outside analyzing everytime!
+    css::uno::Any aRequest = xRequest->getRequest();
+    /* SAFE { */
+    WriteGuard aWriteLock(m_aLock);
+    m_aRequest = aRequest;
+    aWriteLock.unlock();
+    /* } SAFE */
+
+    // analyze the request
+    // We need XAbort as possible continuation as minimum!
+    // An optional filter selection we can handle too.
+    css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > lContinuations = xRequest->getContinuations();
+    css::uno::Reference< css::task::XInteractionAbort >                              xAbort     ;
+    css::uno::Reference< css::task::XInteractionApprove >                            xApprove   ;
+=====================================================================
+Found a 19 line (108 tokens) duplication in the following files: 
+Starting at line 545 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 623 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+
+					pMenuItemHandler->aTargetFrame = pAddonAttributes->aTargetFrame;
+				}
+
+				m_aMenuItemHandlerVector.push_back( pMenuItemHandler );
+			}
+		}
+	}
+
+	m_pVCLMenu->SetHighlightHdl( LINK( this, MenuManager, Highlight ));
+	m_pVCLMenu->SetActivateHdl( LINK( this, MenuManager, Activate ));
+	m_pVCLMenu->SetDeactivateHdl( LINK( this, MenuManager, Deactivate ));
+	m_pVCLMenu->SetSelectHdl( LINK( this, MenuManager, Select ));
+}
+
+
+// #110897#
+MenuManager::MenuManager( 
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+	REFERENCE< XFRAME >& rFrame, AddonPopupMenu* pAddonPopupMenu, sal_Bool bDelete, sal_Bool bDeleteChildren ) 
+=====================================================================
+Found a 21 line (108 tokens) duplication in the following files: 
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/richtext/richtextvclcontrol.cxx
+Starting at line 3403 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/fmcomp/gridctrl.cxx
+
+			const KeyEvent* pKeyEvent = rEvt.GetKeyEvent();
+
+			sal_uInt16 nCode = pKeyEvent->GetKeyCode().GetCode();
+			sal_Bool   bShift = pKeyEvent->GetKeyCode().IsShift();
+			sal_Bool   bCtrl = pKeyEvent->GetKeyCode().IsMod1();
+			sal_Bool   bAlt = pKeyEvent->GetKeyCode().IsMod2();
+			if ( ( KEY_TAB == nCode ) && bCtrl && !bAlt )
+			{
+				// Ctrl-Tab is used to step out of the control, without traveling to the
+				// remaining cells first
+				// -> build a new key event without the Ctrl-key, and let the very base class handle it
+				KeyCode aNewCode( KEY_TAB, bShift, sal_False, sal_False );
+				KeyEvent aNewEvent( pKeyEvent->GetCharCode(), aNewCode );
+
+				// call the Control - our direct base class will interpret this in a way we do not want (and do
+				// a cell traveling)
+				Control::KeyInput( aNewEvent );
+				return 1;
+			}
+
+			if ( !bShift && !bCtrl && ( KEY_ESCAPE == nCode ) )
+=====================================================================
+Found a 10 line (108 tokens) duplication in the following files: 
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/Button.cxx
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ImageControl.cxx
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::form;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::io;
+using namespace ::com::sun::star::ui::dialogs;
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,// 2490 - 249f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24a0 - 24af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24b0 - 24bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24c0 - 24cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 24d0 - 24df
+=====================================================================
+Found a 20 line (108 tokens) duplication in the following files: 
+Starting at line 818 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/sax/testsax.cxx
+Starting at line 749 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/sax/testsax.cxx
+
+		Reference < XErrorHandler >	rErrorHandler( ( XErrorHandler * )pDocHandler , UNO_QUERY );
+		
+		rParser->setDocumentHandler( rDocHandler );
+		rParser->setEntityResolver( rEntityResolver );
+		rParser->setErrorHandler( rErrorHandler );
+
+		try
+		{
+			TimeValue aStartTime, aEndTime;
+			osl_getSystemTime( &aStartTime );
+			rParser->parseStream( source );
+			osl_getSystemTime( &aEndTime );
+			
+			double fStart = (double)aStartTime.Seconds + ((double)aStartTime.Nanosec / 1000000000.0);
+			double fEnd = (double)aEndTime.Seconds + ((double)aEndTime.Nanosec / 1000000000.0);
+			
+			printf( "Performance reading : %g s\n" , fEnd - fStart );
+			
+		}
+		catch( SAXParseException &e ) {
+=====================================================================
+Found a 5 line (108 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 25 line (108 tokens) duplication in the following files: 
+Starting at line 208 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/license_dialog.cxx
+Starting at line 468 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/preload/oemwiz.cxx
+
+    void LicenceView::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+    {
+        if ( rHint.IsA( TYPE(TextHint) ) )
+        {
+            BOOL    bLastVal = EndReached();
+            ULONG   nId = ((const TextHint&)rHint).GetId();
+
+            if ( nId == TEXT_HINT_PARAINSERTED )
+            {
+                if ( bLastVal )
+                    mbEndReached = IsEndReached();
+            }
+            else if ( nId == TEXT_HINT_VIEWSCROLLED )
+            {
+                if ( ! mbEndReached )
+                    mbEndReached = IsEndReached();
+                maScrolledHdl.Call( this );
+            }
+
+            if ( EndReached() && !bLastVal )
+            {
+                maEndReachedHdl.Call( this );
+            }
+        }
+    }
+=====================================================================
+Found a 16 line (108 tokens) duplication in the following files: 
+Starting at line 837 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/queryfilter.cxx
+Starting at line 861 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/queryfilter.cxx
+
+		if ( aLB_WHERECOND3.GetSelectEntryPos() )
+		{
+			sal_Int32 nPos = _rValues.getLength();
+			_rValues.realloc( nPos + 1);
+			_rValues[nPos].realloc( 1);
+			pPos = &_rValues[nPos][0];
+		}
+		else
+		{
+			sal_Int32 nPos = _rValues.getLength() - 1;
+			sal_Int32 nAndPos = _rValues[nPos].getLength();
+			_rValues[nPos].realloc( _rValues[nPos].getLength() + 1);
+			pPos = &_rValues[nPos][nAndPos];
+		}
+		*pPos = aValue;
+	}
+=====================================================================
+Found a 25 line (108 tokens) duplication in the following files: 
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CRowSetColumn.cxx
+Starting at line 197 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CRowSetDataColumn.cxx
+
+sal_Bool SAL_CALL ORowSetDataColumn::convertFastPropertyValue( Any & rConvertedValue,
+															Any & rOldValue,
+															sal_Int32 nHandle,
+															const Any& rValue ) throw (IllegalArgumentException)
+{
+	sal_Bool bModified = sal_False;
+	switch(nHandle)
+	{
+		case PROPERTY_ID_ALIGN:
+		case PROPERTY_ID_NUMBERFORMAT:
+		case PROPERTY_ID_RELATIVEPOSITION:
+		case PROPERTY_ID_WIDTH:
+		case PROPERTY_ID_HIDDEN:
+		case PROPERTY_ID_CONTROLMODEL:
+		case PROPERTY_ID_HELPTEXT:
+		case PROPERTY_ID_CONTROLDEFAULT:
+			bModified = OColumnSettings::convertFastPropertyValue( rConvertedValue, rOldValue, nHandle, rValue );
+			break;
+		case PROPERTY_ID_VALUE:
+			rConvertedValue = rValue;
+			getFastPropertyValue(rOldValue, PROPERTY_ID_VALUE);
+			bModified = !::comphelper::compare(rConvertedValue, rOldValue);
+			break;
+		default:
+			bModified = ODataColumn::convertFastPropertyValue(rConvertedValue, rOldValue, nHandle, rValue);
+=====================================================================
+Found a 12 line (108 tokens) duplication in the following files: 
+Starting at line 1955 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 2185 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
+    }
+    {
+        Exception1 b(
+            rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
+        CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
+    }
+    {
+        css::uno::Reference< Interface1 > i(new Impl1);
+        css::uno::Reference< Interface1 > b(i);
+        CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
+    }
+=====================================================================
+Found a 9 line (108 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/sdbcx/VTable.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/sdbcx/VView.cxx
+
+void OView::construct()
+{
+	ODescriptor::construct();
+
+	sal_Int32 nAttrib = isNew() ? 0 : PropertyAttribute::READONLY;
+
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME),		PROPERTY_ID_CATALOGNAME,nAttrib,&m_CatalogName,	::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME),		PROPERTY_ID_SCHEMANAME,	nAttrib,&m_SchemaName,	::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
+	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_COMMAND),			PROPERTY_ID_COMMAND,	nAttrib,&m_Command,		::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
+=====================================================================
+Found a 17 line (108 tokens) duplication in the following files: 
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+			jbyteArray out = (jbyteArray)t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			if (out)
+			{
+				jboolean p = sal_False;
+				aSeq.realloc(t.pEnv->GetArrayLength(out));
+				memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength());
+				t.pEnv->DeleteLocalRef(out);
+			}
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	return aSeq;
+}
+// -------------------------------------------------------------------------
+
+::com::sun::star::util::Date SAL_CALL java_sql_ResultSet::getDate( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 26 line (108 tokens) duplication in the following files: 
+Starting at line 255 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DNoException.cxx
+Starting at line 2460 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+
+		delete m_pBuffer;
+		m_pBuffer = NULL;
+	}
+
+	// Falls noch kein Puffer vorhanden: allozieren:
+	if (m_pBuffer == NULL && nSize)
+	{
+		m_nBufferSize = nSize;
+		m_pBuffer		= new BYTE[m_nBufferSize+1];
+	}
+}
+// -----------------------------------------------------------------------------
+BOOL ODbaseTable::WriteBuffer()
+{
+	OSL_ENSURE(m_nFilePos >= 1,"SdbDBFCursor::FileFetchRow: ungueltige Record-Position");
+
+	// Auf gewuenschten Record positionieren:
+	long nPos = m_aHeader.db_kopf + (long)(m_nFilePos-1) * m_aHeader.db_slng;
+	m_pFileStream->Seek(nPos);
+	return m_pFileStream->Write((char*) m_pBuffer, m_aHeader.db_slng) > 0;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 ODbaseTable::getCurrentLastPos() const
+{
+	return m_aHeader.db_anz;
+}
+=====================================================================
+Found a 26 line (108 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+}
+//--------------------------------------------------------------------
+// clearMyResultSet
+// If a ResultSet was created for this Statement, close it
+//--------------------------------------------------------------------
+
+void OStatement_Base::clearMyResultSet () throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+    try
+    {
+	    Reference<XCloseable> xCloseable;
+	    if ( ::comphelper::query_interface( m_xResultSet.get(), xCloseable ) )
+		    xCloseable->close();
+    }
+    catch( const DisposedException& ) { }
+
+    m_xResultSet = Reference< XResultSet >();
+}
+//--------------------------------------------------------------------
+sal_Int32 OStatement_Base::getRowCount () throw( SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 13 line (108 tokens) duplication in the following files: 
+Starting at line 2010 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/noderef.cxx
+Starting at line 2026 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/noderef.cxx
+Starting at line 2042 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treemgr/noderef.cxx
+
+bool isGroupNode(Tree const& aTree, NodeRef const& aNode)
+{
+	OSL_PRECOND( !aNode.isValid() || !aTree.isEmpty(), "ERROR: Configuration: Tree operation requires a valid Tree");
+	OSL_PRECOND( !aNode.isValid() || aTree.isValidNode(aNode), "WARNING: Configuration: NodeRef does not match Tree");
+
+    view::ViewTreeAccess aView = aTree.getView();
+
+    OSL_ASSERT( !aNode.isValid() || 
+                aView.isGroupNode(aNode) || 
+                aView.isSetNode(aNode) ||
+                (aView.isValueNode(aNode) && isRootNode(aTree,aNode)) );
+
+	return aNode.isValid() && aView.isGroupNode(aNode);
+=====================================================================
+Found a 15 line (108 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/DataInterpreter.cxx
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/XYDataInterpreter.cxx
+
+        Reference< XDataSeries > xSeries;
+        if( nSeriesIndex < aSeriesToReUse.getLength())
+            xSeries.set( aSeriesToReUse[nSeriesIndex] );
+        else
+            xSeries.set( new DataSeries( GetComponentContext() ) );
+        OSL_ASSERT( xSeries.is() );
+        Reference< data::XDataSink > xSink( xSeries, uno::UNO_QUERY );
+        OSL_ASSERT( xSink.is() );
+        xSink->setData( aNewData );
+
+        aSeriesVec.push_back( xSeries );
+    }
+
+    Sequence< Sequence< Reference< XDataSeries > > > aSeries(1);
+    aSeries[0] = ContainerHelper::ContainerToSequence( aSeriesVec );
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+
+    if (iFind == m_rttis.end())
+    {
+        // RTTI symbol
+        OStringBuffer buf( 64 );
+        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
+        sal_Int32 index = 0;
+        do
+        {
+            OUString token( unoName.getToken( 0, '.', index ) );
+            buf.append( token.getLength() );
+            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
+            buf.append( c_token );
+        }
+        while (index >= 0);
+        buf.append( 'E' );
+        
+        OString symName( buf.makeStringAndClear() );
+        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+=====================================================================
+Found a 18 line (108 tokens) duplication in the following files: 
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxcurr.cxx
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxsng.cxx
+
+	SbxValues aTmp;
+start:
+	switch( p->eType )
+	{
+		case SbxCHAR:
+			aTmp.pChar = &p->nChar; goto direct;
+		case SbxBYTE:
+			aTmp.pByte = &p->nByte; goto direct;
+		case SbxINTEGER:
+		case SbxBOOL:
+			aTmp.pInteger = &p->nInteger; goto direct;
+		case SbxLONG:
+			aTmp.pLong = &p->nLong; goto direct;
+		case SbxULONG:
+			aTmp.pULong = &p->nULong; goto direct;
+		case SbxERROR:
+		case SbxUSHORT:
+			aTmp.pUShort = &p->nUShort; goto direct;
+=====================================================================
+Found a 27 line (108 tokens) duplication in the following files: 
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/extended/accessibletabbarpagelist.cxx
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblestatusbar.cxx
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessibletabcontrol.cxx
+
+void VCLXAccessibleTabControl::RemoveChild( sal_Int32 i )
+{
+	if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+	{
+		// get the accessible of the removed page
+		Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+
+		// remove entry in child list
+		m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+
+		// send accessible child event
+		if ( xChild.is() )
+		{
+			Any aOldValue, aNewValue;
+			aOldValue <<= xChild;
+			NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+
+			Reference< XComponent > xComponent( xChild, UNO_QUERY );
+			if ( xComponent.is() )
+				xComponent->dispose();
+		}
+	}
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+Starting at line 174 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgba.h
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)fg[order_type::A];
+
+                ++span;
+                ++base_type::interpolator();
+            } while(--len);
+            return base_type::allocator().span();
+        }
+    };
+
+
+
+
+
+
+
+    //==============================================span_image_resample_rgba
+    template<class ColorT,
+             class Order, 
+             class Interpolator, 
+             class Allocator = span_allocator<ColorT> >
+    class span_image_resample_rgba : 
+=====================================================================
+Found a 12 line (107 tokens) duplication in the following files: 
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+                    pixel_type v;
+                    ((value_type*)&v)[order_type::R] = c.r;
+                    ((value_type*)&v)[order_type::G] = c.g;
+                    ((value_type*)&v)[order_type::B] = c.b;
+                    ((value_type*)&v)[order_type::A] = c.a;
+                    do
+                    {
+                        *(pixel_type*)p = v;
+                        p = (value_type*)m_rbuf->next_row(p);
+                    }
+                    while(--len);
+                }
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 2380 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+Starting at line 2528 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshap.cxx
+
+				}
+#endif
+			}
+		}
+
+		if(mbIsUserTransformed)
+		{
+			uno::Reference< beans::XPropertySet > xProps(mxShape, uno::UNO_QUERY);
+			if(xProps.is())
+			{
+				uno::Reference< beans::XPropertySetInfo > xPropsInfo( xProps->getPropertySetInfo() );
+				if( xPropsInfo.is() )
+				{
+					if( xPropsInfo->hasPropertyByName(OUString(RTL_CONSTASCII_USTRINGPARAM("IsPlaceholderDependent") )))
+						xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("IsPlaceholderDependent") ), ::cppu::bool2any( sal_False ) );
+				}
+			}
+		}
+
+
+		// set pos, size, shear and rotate
+		SetTransformation();
+
+		SdXMLShapeContext::StartElement(xAttrList);
+=====================================================================
+Found a 25 line (107 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndevdis.cxx
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dndevdis.cxx
+
+	sal_Int32 nListeners;
+
+	// find the window that is toplevel for this coordinates
+	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
+
+    // because those coordinates come from outside, they must be mirrored if RTL layout is active
+    if( Application::GetSettings().GetLayoutRTL() )
+        m_pTopWindow->ImplMirrorFramePos( location );
+	Window * pChildWindow = m_pTopWindow->ImplFindWindow( location );
+
+	if( NULL == pChildWindow )
+        pChildWindow = m_pTopWindow;
+
+    while( pChildWindow->ImplGetClientWindow() )
+        pChildWindow = pChildWindow->ImplGetClientWindow();
+
+    if( pChildWindow->ImplHasMirroredGraphics() && !pChildWindow->IsRTLEnabled() )
+        pChildWindow->ImplReMirror( location );
+
+	aSolarGuard.clear();
+
+	if( pChildWindow != m_pCurrentWindow )
+	{
+		// fire dragExit on listeners of previous window
+		fireDragExitEvent( m_pCurrentWindow );
+=====================================================================
+Found a 34 line (107 tokens) duplication in the following files: 
+Starting at line 1180 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 954 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_content.cxx
+
+	aGuard.clear();
+	inserted();
+}
+
+#endif // IMPLEMENT_COMMAND_INSERT
+
+#ifdef IMPLEMENT_COMMAND_DELETE
+
+//=========================================================================
+void Content::destroy( sal_Bool bDeletePhysical )
+    throw( uno::Exception )
+{
+	// @@@ take care about bDeletePhysical -> trashcan support
+
+    uno::Reference< ucb::XContent > xThis = this;
+
+	deleted();
+
+	osl::Guard< osl::Mutex > aGuard( m_aMutex );
+
+	// Process instanciated children...
+
+	ContentRefList aChildren;
+	queryChildren( aChildren );
+
+	ContentRefList::const_iterator it  = aChildren.begin();
+	ContentRefList::const_iterator end = aChildren.end();
+
+	while ( it != end )
+	{
+		(*it)->destroy( bDeletePhysical );
+		++it;
+	}
+}
+=====================================================================
+Found a 22 line (107 tokens) duplication in the following files: 
+Starting at line 1096 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_content.cxx
+Starting at line 883 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+        rtl::OUString aChildURL
+            = xChild->getIdentifier()->getContentIdentifier();
+
+		// Is aURL a prefix of aChildURL?
+		if ( ( aChildURL.getLength() > nLen ) &&
+			 ( aChildURL.compareTo( aURL, nLen ) == 0 ) )
+		{
+			sal_Int32 nPos = nLen;
+			nPos = aChildURL.indexOf( '/', nPos );
+
+			if ( ( nPos == -1 ) ||
+				 ( nPos == ( aChildURL.getLength() - 1 ) ) )
+			{
+                // No further slashes / only a final slash. It's a child!
+				rChildren.push_back(
+                    ContentRef(
+                        static_cast< Content * >( xChild.get() ) ) );
+			}
+		}
+		++it;
+	}
+}
+=====================================================================
+Found a 17 line (107 tokens) duplication in the following files: 
+Starting at line 961 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/content.cxx
+Starting at line 2304 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+    aURL += rtl::OUString::createFromAscii( "/" );
+
+	sal_Int32 nLen = aURL.getLength();
+
+	::ucbhelper::ContentRefList::const_iterator it  = aAllContents.begin();
+	::ucbhelper::ContentRefList::const_iterator end = aAllContents.end();
+
+	while ( it != end )
+	{
+		::ucbhelper::ContentImplHelperRef xChild = (*it);
+        rtl::OUString aChildURL
+            = xChild->getIdentifier()->getContentIdentifier();
+
+		// Is aURL a prefix of aChildURL?
+		if ( ( aChildURL.getLength() > nLen ) &&
+			 ( aChildURL.compareTo( aURL, nLen ) == 0 ) )
+		{
+=====================================================================
+Found a 16 line (107 tokens) duplication in the following files: 
+Starting at line 773 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpurl.cxx
+Starting at line 824 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpurl.cxx
+
+	slist = curl_slist_append(slist,dele.getStr());
+	curl_easy_setopt(curl,CURLOPT_POSTQUOTE,slist);
+
+	SET_CONTROL_CONTAINER;
+	curl_easy_setopt(curl,CURLOPT_NOBODY,true);       // no data => no transfer
+    curl_easy_setopt(curl,CURLOPT_QUOTE,0);
+
+	rtl::OUString url(parent(true));
+	if(1+url.lastIndexOf(sal_Unicode('/')) != url.getLength())
+		url += rtl::OUString::createFromAscii("/");
+	SET_URL(url);
+
+	CURLcode err = curl_easy_perform(curl);
+	curl_slist_free_all(slist);
+	if(err != CURLE_OK)
+		throw curl_exception(err);
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 3092 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+Starting at line 3312 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/controls/unocontrols.cxx
+
+	ImplRegisterProperty( BASEPROPERTY_CURSYM_POSITION );
+	ImplRegisterProperty( BASEPROPERTY_DECIMALACCURACY );
+	ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
+	ImplRegisterProperty( BASEPROPERTY_ENABLED );
+	ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
+	ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
+	ImplRegisterProperty( BASEPROPERTY_HELPURL );
+	ImplRegisterProperty( BASEPROPERTY_NUMSHOWTHOUSANDSEP );
+	ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
+	ImplRegisterProperty( BASEPROPERTY_READONLY );
+	ImplRegisterProperty( BASEPROPERTY_REPEAT );
+	ImplRegisterProperty( BASEPROPERTY_REPEAT_DELAY );
+	ImplRegisterProperty( BASEPROPERTY_SPIN );
+	ImplRegisterProperty( BASEPROPERTY_STRICTFORMAT );
+	ImplRegisterProperty( BASEPROPERTY_TABSTOP );
+	ImplRegisterProperty( BASEPROPERTY_VALUEMAX_DOUBLE );
+	ImplRegisterProperty( BASEPROPERTY_VALUEMIN_DOUBLE );
+	ImplRegisterProperty( BASEPROPERTY_VALUESTEP_DOUBLE );
+	ImplRegisterProperty( BASEPROPERTY_VALUE_DOUBLE );
+    ImplRegisterProperty( BASEPROPERTY_ENFORCE_FORMAT );
+	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
+}
+
+::rtl::OUString UnoControlCurrencyFieldModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 27 line (107 tokens) duplication in the following files: 
+Starting at line 362 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unomod.cxx
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unomod.cxx
+
+void SwXPrintSettings::_preGetValues ()
+	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
+{
+	switch (meType)
+	{
+		case PRINT_SETTINGS_MODULE:
+			mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False );
+		break;
+		case PRINT_SETTINGS_WEB:
+			mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True );
+		break;
+		case PRINT_SETTINGS_DOCUMENT:
+		{
+			if (!mpDoc)
+				throw IllegalArgumentException ();
+            if ( !mpDoc->getPrintData() )
+			{
+				mpPrtOpt = new SwPrintData;
+                mpDoc->setPrintData ( *mpPrtOpt );
+				delete mpPrtOpt;
+			}
+            mpPrtOpt = mpDoc->getPrintData();
+		}
+		break;
+	}
+}
+void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, ::com::sun::star::uno::Any & rValue )
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 443 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/frmsh.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/grfsh.cxx
+
+			aSet.Put( aFrmSize );
+
+			aSet.Put( aMgr.GetAttrSet() );
+			aSet.SetParent( aMgr.GetAttrSet().GetParent() );
+
+			// Bei %-Werten Groesse initialisieren
+			SwFmtFrmSize& rSize = (SwFmtFrmSize&)aSet.Get(RES_FRM_SIZE);
+			if (rSize.GetWidthPercent() && rSize.GetWidthPercent() != 0xff)
+				rSize.SetWidth(rSh.GetAnyCurRect(RECT_FLY_EMBEDDED).Width());
+			if (rSize.GetHeightPercent() && rSize.GetHeightPercent() != 0xff)
+				rSize.SetHeight(rSh.GetAnyCurRect(RECT_FLY_EMBEDDED).Height());
+=====================================================================
+Found a 19 line (107 tokens) duplication in the following files: 
+Starting at line 315 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+    OutField(0, ww::eFORMCHECKBOX, FieldString(ww::eFORMCHECKBOX),
+        WRITEFIELD_START | WRITEFIELD_CMD_START);
+    // write the refence to the "picture" structure
+    ULONG nDataStt = pDataStrm->Tell();
+    pChpPlc->AppendFkpEntry( Strm().Tell() );
+
+    WriteChar( 0x01 );
+    static BYTE aArr1[] = {
+        0x03, 0x6a, 0,0,0,0,    // sprmCPicLocation
+
+        0x06, 0x08, 0x01,       // sprmCFData
+        0x55, 0x08, 0x01,       // sprmCFSpec
+        0x02, 0x08, 0x01        // sprmCFFldVanish
+    };
+    BYTE* pDataAdr = aArr1 + 2;
+    Set_UInt32( pDataAdr, nDataStt );
+
+    pChpPlc->AppendFkpEntry(Strm().Tell(),
+                sizeof( aArr1 ), aArr1 );
+=====================================================================
+Found a 12 line (107 tokens) duplication in the following files: 
+Starting at line 2052 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtfatr.cxx
+Starting at line 2292 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8nds.cxx
+
+    const BYTE nMaxCols = rWW8Wrt.bWrtWW8 ? 63 : 31;
+    // rCols are the array of all cols of the table
+    const SwWriteTableCols& rCols = pTableWrt->GetCols();
+    USHORT nColCnt = rCols.Count();
+    SwWriteTableCellPtr* pBoxArr = new SwWriteTableCellPtr[ nColCnt ];
+    USHORT* pRowSpans = new USHORT[ nColCnt ];
+    memset( pBoxArr, 0, sizeof( pBoxArr[0] ) * nColCnt );
+    memset( pRowSpans, 0, sizeof( pRowSpans[0] ) * nColCnt );
+    const SwWriteTableRows& rRows = pTableWrt->GetRows();
+    for( USHORT nLine = 0; nLine < rRows.Count(); ++nLine )
+    {
+        USHORT nBox, nRealBox;
+=====================================================================
+Found a 23 line (107 tokens) duplication in the following files: 
+Starting at line 1315 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/EnhancedPDFExportHelper.cxx
+Starting at line 1479 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/text/EnhancedPDFExportHelper.cxx
+
+                        const SwPosition aPos( *pTNd );
+                        const bool bHeaderFooter = pDoc->IsInHeaderFooter( aPos.nNode );
+                        // <--
+
+                        // Create links for all selected rectangles:
+                        const USHORT nNumOfRects = aTmp.Count();
+                        for ( int i = 0; i < nNumOfRects; ++i )
+                        {
+                            // Link rectangle
+                            const SwRect& rLinkRect( aTmp[ i ] );
+
+                            // Link PageNum
+                            const sal_Int32 nLinkPageNum = CalcOutputPageNum( rLinkRect );
+
+                            if ( -1 != nLinkPageNum )
+                            {
+                                // Link Export
+                                const sal_Int32 nLinkId =
+                                    pPDFExtOutDevData->CreateLink( rLinkRect.SVRect(), nLinkPageNum );
+
+                                // Store link info for tagged pdf output:
+                                const IdMapEntry aLinkEntry( rLinkRect, nLinkId );
+                                aLinkIdMap.push_back( aLinkEntry );
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 2576 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accmap.cxx
+Starting at line 2604 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accmap.cxx
+
+        for ( ; aIter != pPrevSelectedParas->end(); ++aIter )
+        {
+            uno::Reference < XAccessible > xAcc( (*aIter).first );
+            if ( xAcc.is() )
+            {
+                ::vos::ORef < SwAccessibleContext > xAccImpl(
+                            static_cast<SwAccessibleContext*>( xAcc.get() ) );
+                if ( xAccImpl.isValid() && xAccImpl->GetFrm() )
+                {
+                    const SwTxtFrm* pTxtFrm(
+                            dynamic_cast<const SwTxtFrm*>(xAccImpl->GetFrm()) );
+                    ASSERT( pTxtFrm,
+                            "<SwAccessibleMap::_SubmitTextSelectionChangedEvents()> - unexcepted type of frame" );
+                    if ( pTxtFrm )
+                    {
+                        InvalidateParaTextSelection( *pTxtFrm );
+                    }
+                }
+            }
+        }
+=====================================================================
+Found a 7 line (107 tokens) duplication in the following files: 
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unotext2.cxx
+Starting at line 578 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unotext2.cxx
+
+		*pTypes++ = ::getCppuType(( const uno::Reference< text::XTextCursor >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertySet >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XMultiPropertySet >*)0);
+//		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XTolerantMultiPropertySet >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertyState >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRangeCompare >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< lang::XServiceInfo >*)0);
+=====================================================================
+Found a 16 line (107 tokens) duplication in the following files: 
+Starting at line 2058 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap2.cxx
+Starting at line 2080 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshap2.cxx
+
+				Point aRef2( aRef1.X() + 1000, aRef1.Y() );
+				USHORT i;
+				USHORT nPntAnz=aPol.GetSize();
+				for (i=0; i<nPntAnz; i++)
+				{
+					MirrorPoint(aPol[i],aRef1,aRef2);
+				}
+				// Polygon wenden und etwas schieben
+				Polygon aPol0(aPol);
+				aPol[0]=aPol0[1];
+				aPol[1]=aPol0[0];
+				aPol[2]=aPol0[3];
+				aPol[3]=aPol0[2];
+				aPol[4]=aPol0[1];
+				Poly2Rect( aPol, aRectangle, aNewGeo );
+			}
+=====================================================================
+Found a 7 line (107 tokens) duplication in the following files: 
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fontworkgallery.cxx
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fontworkgallery.cxx
+
+		bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
+
+		mpMenu->appendEntry( 0, String( SVX_RES( STR_ALIGN_LEFT ) ), bHighContrast ? maImgAlgin1h : maImgAlgin1 );
+		mpMenu->appendEntry( 1, String( SVX_RES( STR_ALIGN_CENTER ) ), bHighContrast ? maImgAlgin2h : maImgAlgin2 );
+		mpMenu->appendEntry( 2, String( SVX_RES( STR_ALIGN_RIGHT ) ), bHighContrast ? maImgAlgin3h : maImgAlgin3 );
+		mpMenu->appendEntry( 3, String( SVX_RES( STR_ALIGN_WORD ) ), bHighContrast ? maImgAlgin4h : maImgAlgin4 );
+		mpMenu->appendEntry( 4, String( SVX_RES( STR_ALIGN_STRETCH ) ), bHighContrast ? maImgAlgin5h : maImgAlgin5 );
+=====================================================================
+Found a 7 line (107 tokens) duplication in the following files: 
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdomeas.cxx
+Starting at line 746 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+					bPnt1=TRUE;
+					double nXFact=0; if (!bVLin) nXFact=(double)ndx/(double)ndx0;
+					double nYFact=0; if (!bHLin) nYFact=(double)ndy/(double)ndy0;
+					FASTBOOL bHor=bHLin || (!bVLin && (nXFact>nYFact) ==bBigOrtho);
+					FASTBOOL bVer=bVLin || (!bHLin && (nXFact<=nYFact)==bBigOrtho);
+					if (bHor) ndy=long(ndy0*nXFact);
+					if (bVer) ndx=long(ndx0*nYFact);
+=====================================================================
+Found a 16 line (107 tokens) duplication in the following files: 
+Starting at line 3816 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3838 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+
+			Point aRef2( aRef1.X() + 1000, aRef1.Y() );
+			USHORT i;
+			USHORT nPntAnz=aPol.GetSize();
+			for (i=0; i<nPntAnz; i++)
+			{
+				MirrorPoint(aPol[i],aRef1,aRef2);
+			}
+			// Polygon wenden und etwas schieben
+			Polygon aPol0(aPol);
+			aPol[0]=aPol0[1];
+			aPol[1]=aPol0[0];
+			aPol[2]=aPol0[3];
+			aPol[3]=aPol0[2];
+			aPol[4]=aPol0[1];
+			Poly2Rect(aPol,aRectangle,aNewGeo);
+		}
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 821 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedtv2.cxx
+Starting at line 910 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdedtv2.cxx
+
+						double fStepWidth = (double)nHeight / (double)(aEntryList.Count() - 1);
+						double fStepStart = (double)aEntryList.GetObject(0)->mnPos;
+						fStepStart += fStepWidth;
+
+						// move entries 1..n-1
+						for(a=1;a<aEntryList.Count()-1;a++)
+						{
+							ImpDistributeEntry* pCurr = aEntryList.GetObject(a);
+							INT32 nDelta = (INT32)(fStepStart + 0.5) - pCurr->mnPos;
+							AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pCurr->mpObj));
+							pCurr->mpObj->Move(Size(0, nDelta));
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 663 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpbitmap.cxx
+Starting at line 491 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpgradnt.cxx
+Starting at line 560 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tphatch.cxx
+
+            if( aName == pHatchingList->GetHatch( i )->GetName() )
+				bDifferent = FALSE;
+	}
+
+	//CHINA001 SvxNameDialog* pDlg     = new SvxNameDialog( DLGWIN, aName, aDesc );
+	SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+	DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
+	AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( DLGWIN, aName, aDesc, RID_SVXDLG_NAME );
+	DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
+	WarningBox*    pWarnBox = NULL;
+	USHORT         nError   = RID_SVXSTR_WARN_NAME_DUPLICATE;
+
+	while( pDlg->Execute() == RET_OK )
+	{
+		pDlg->GetName( aName );
+
+		bDifferent = TRUE;
+
+		for( long i = 0; i < nCount && bDifferent; i++ )
+            if( aName == pHatchingList->GetHatch( i )->GetName() )
+=====================================================================
+Found a 14 line (107 tokens) duplication in the following files: 
+Starting at line 4310 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3907 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] =
+{
+	{ 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I },
+	{ 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }
+};
+static const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] =
+{
+	0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] =
+{
+	{ 0x2000, DFF_Prop_geoLeft, 2540, 0 },
+=====================================================================
+Found a 33 line (107 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 184 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+static const sal_Int32 mso_sptDefault0[] =
+{
+	1, 0
+};
+static const sal_Int32 mso_sptDefault1400[] = 
+{
+	1, 1400
+};
+static const sal_Int32 mso_sptDefault1800[] = 
+{
+	1, 1800
+};
+static const sal_Int32 mso_sptDefault2500[] = 
+{
+	1, 2500
+};
+static const sal_Int32 mso_sptDefault2700[] = 
+{
+	1, 2700
+};
+static const sal_Int32 mso_sptDefault3600[] = 
+{
+	1, 3600
+};
+static const sal_Int32 mso_sptDefault3700[] = 
+{
+	1, 3700
+};
+static const sal_Int32 mso_sptDefault5400[] = 
+{
+	1, 5400
+};
+static const sal_Int32 mso_sptDefault8100[] = 
+=====================================================================
+Found a 23 line (107 tokens) duplication in the following files: 
+Starting at line 413 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/imap2.cxx
+Starting at line 591 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/misc/imap2.cxx
+
+void ImageMap::ImpReadNCSALine( const ByteString& rLine, const String& rBaseURL )
+{
+	ByteString	aStr( rLine );
+	ByteString	aToken;
+
+	aStr.EraseLeadingChars( ' ' );
+	aStr.EraseLeadingChars( '\t' );
+	aStr.EraseAllChars( ';' );
+	aStr.ToLowerAscii();
+
+	const char*	pStr = aStr.GetBuffer();
+	char		cChar = *pStr++;
+
+		// Anweisung finden
+	while( ( cChar >= 'a' ) && ( cChar <= 'z' ) && NOTEOL( cChar ) )
+	{
+		aToken += cChar;
+		cChar = *pStr++;
+	}
+
+	if ( NOTEOL( cChar ) )
+	{
+		if ( aToken == "rect" )
+=====================================================================
+Found a 18 line (107 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/printdlg.cxx
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/dialogs/prnsetup.cxx
+
+void PrinterSetupDialog::ImplSetInfo()
+{
+	const QueueInfo* pInfo = Printer::GetQueueInfo(maLbName.GetSelectEntry(), true);
+	if ( pInfo )
+	{
+		maFiType.SetText( pInfo->GetDriver() );
+		maFiLocation.SetText( pInfo->GetLocation() );
+		maFiComment.SetText( pInfo->GetComment() );
+		maFiStatus.SetText( ImplPrnDlgGetStatusText( *pInfo ) );
+	}
+	else
+	{
+		XubString aTempStr;
+		maFiType.SetText( aTempStr );
+		maFiLocation.SetText( aTempStr );
+		maFiComment.SetText( aTempStr );
+		maFiStatus.SetText( aTempStr );
+	}
+=====================================================================
+Found a 27 line (107 tokens) duplication in the following files: 
+Starting at line 1570 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docfile.cxx
+Starting at line 1933 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docfile.cxx
+
+				aTransferContent = ::ucbhelper::Content( aDest.GetMainURL( INetURLObject::NO_DECODE ), xComEnv );
+			}
+			catch (const ::com::sun::star::ucb::ContentCreationException& ex)
+            {
+				eError = ERRCODE_IO_GENERAL;
+				if (
+					(ex.eError == ::com::sun::star::ucb::ContentCreationError_NO_CONTENT_PROVIDER    ) ||
+					(ex.eError == ::com::sun::star::ucb::ContentCreationError_CONTENT_CREATION_FAILED)
+				   )
+				{
+					eError = ERRCODE_IO_NOTEXISTSPATH;
+				}
+            }
+            catch (const ::com::sun::star::uno::Exception&)
+            {
+                eError = ERRCODE_IO_GENERAL;
+            }
+
+            if ( !eError || (eError & ERRCODE_WARNING_MASK) )
+            {
+                // free resources, otherwise the transfer may fail
+                Close();
+                // don't create content before Close(), because if the storage was opened in direct mode, it will be flushed
+                // in Close() and this leads to a transfer command executed in the package, which currently is implemented as
+                // remove+move in the file FCP. The "remove" is notified to the ::ucbhelper::Content, that clears its URL and its
+                // content reference in this notification and thus will never get back any URL, so my transfer will fail!
+                ::ucbhelper::Content::create( aSource.GetMainURL( INetURLObject::NO_DECODE ), xEnv, aSourceContent );
+=====================================================================
+Found a 23 line (107 tokens) duplication in the following files: 
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/dockwin.cxx
+Starting at line 598 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/dockwin.cxx
+
+	ULONG nId = GetHelpId();
+	SetHelpId(0);
+	SetUniqueId( nId );
+
+	pImp = new SfxDockingWindow_Impl;
+	pImp->bConstructed = FALSE;
+	pImp->pSplitWin = 0;
+	pImp->bEndDocked = FALSE;
+	pImp->bDockingPrevented = FALSE;
+
+	pImp->bSplitable = TRUE;
+//	pImp->bAutoHide = FALSE;
+
+	// Zun"achst auf Defaults setzen; das Alignment wird in der Subklasse gesetzt
+	pImp->nLine = pImp->nDockLine = 0;
+	pImp->nPos  = pImp->nDockPos = 0;
+	pImp->bNewLine = FALSE;
+	pImp->SetLastAlignment(SFX_ALIGN_NOALIGNMENT);
+    pImp->aMoveTimer.SetTimeout(50);
+    pImp->aMoveTimer.SetTimeoutHdl(LINK(this,SfxDockingWindow,TimerHdl));
+
+//	DBG_ASSERT(pMgr,"DockingWindow erfordert ein SfxChildWindow!");
+}
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 1055 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+Starting at line 1696 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/cfg.cxx
+
+								aArr.Insert( pGrpInfo, aArr.Count() );
+
+								if ( children[n]->hasChildNodes() )
+								{
+									Sequence< Reference< browse::XBrowseNode > > grandchildren =
+										children[n]->getChildNodes();
+
+                                    for ( sal_Int32 m = 0; m < grandchildren.getLength(); m++ )
+									{
+										if ( grandchildren[m]->getType() == browse::BrowseNodeTypes::CONTAINER )
+										{
+											pNewEntry->EnableChildsOnDemand( TRUE );
+											m = grandchildren.getLength();
+										}
+									}
+								}
+							}
+						}
+					}
+				}
+                catch (RuntimeException&) {
+					// do nothing, the entry will not be displayed in the UI
+				}
+			}
+=====================================================================
+Found a 25 line (107 tokens) duplication in the following files: 
+Starting at line 378 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvs2.cxx
+Starting at line 685 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvs2.cxx
+
+			rReq.Ignore ();
+		}
+		break;
+	}
+
+	if(HasCurrentFunction())
+		GetCurrentFunction()->Activate();
+
+	Invalidate( SID_OUTLINE_COLLAPSE_ALL );
+	Invalidate( SID_OUTLINE_COLLAPSE );
+	Invalidate( SID_OUTLINE_EXPAND_ALL );
+	Invalidate( SID_OUTLINE_EXPAND );
+
+	SfxBindings& rBindings = GetViewFrame()->GetBindings();
+	rBindings.Invalidate( SID_OUTLINE_LEFT );
+	rBindings.Invalidate( SID_OUTLINE_RIGHT );
+	rBindings.Invalidate( SID_OUTLINE_UP );
+	rBindings.Invalidate( SID_OUTLINE_DOWN );
+
+	Invalidate( SID_OUTLINE_FORMAT );
+	Invalidate( SID_COLORVIEW );
+	Invalidate(SID_CUT);
+	Invalidate(SID_COPY);
+	Invalidate(SID_PASTE);
+}
+=====================================================================
+Found a 6 line (107 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND),		WID_PAGE_BACK,		&ITYPE(beans::XPropertySet),					0,  0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM),			WID_PAGE_BOTTOM,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT),				WID_PAGE_LEFT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT),			WID_PAGE_RIGHT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/UnoGraphicExporter.cxx
+
+using namespace ::cppu;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::util;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::drawing;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::document;
+using namespace ::com::sun::star::frame;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::task;
+=====================================================================
+Found a 29 line (107 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/slidesorter/controller/SlsListener.cxx
+Starting at line 525 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/slidesorter/controller/SlsListener.cxx
+
+        case frame::FrameAction_COMPONENT_REATTACHED:
+        {
+            ConnectToController();
+            mrController.GetPageSelector().UpdateAllPages();
+
+            // When there is a new controller then the edit mode may have
+            // changed at the same time.
+            Reference<frame::XController> xController (mxControllerWeak);
+            Reference<beans::XPropertySet> xSet (xController, UNO_QUERY);
+            bool bIsMasterPageMode = false;
+            if (xSet != NULL)
+            {
+                try
+                {
+                    Any aValue (xSet->getPropertyValue(
+                        ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsMasterPageMode"))));
+                    aValue >>= bIsMasterPageMode;
+                }
+                catch (beans::UnknownPropertyException e)
+                {
+                    // When the property is not supported then the master
+                    // page mode is not supported, too.
+                    bIsMasterPageMode = false;
+                }
+            }
+            mrController.ChangeEditMode (
+                bIsMasterPageMode ? EM_MASTERPAGE : EM_PAGE);
+        }
+        break;
+=====================================================================
+Found a 9 line (107 tokens) duplication in the following files: 
+Starting at line 5387 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin.cxx
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/gridwin4.cxx
+
+				if ( aRange.aStart.Col() <= aRange.aEnd.Col() &&
+					 aRange.aStart.Row() <= aRange.aEnd.Row() )
+				{
+					Point aStart = pViewData->GetScrPos( aRange.aStart.Col(),
+														 aRange.aStart.Row(), eWhich );
+					Point aEnd = pViewData->GetScrPos( aRange.aEnd.Col()+1,
+													   aRange.aEnd.Row()+1, eWhich );
+					aEnd.X() -= 1;
+					aEnd.Y() -= 1;
+=====================================================================
+Found a 10 line (107 tokens) duplication in the following files: 
+Starting at line 5753 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 1735 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/datauno.cxx
+
+		SCCOL nFieldStart = aDBRange.aStart.Col();
+		for (USHORT i=0; i<MAXSUBTOTAL; i++)
+		{
+			if ( aParam.bGroupActive[i] )
+			{
+                aParam.nField[i] = sal::static_int_cast<SCCOL>( aParam.nField[i] + nFieldStart );
+				for (SCCOL j=0; j<aParam.nSubTotals[i]; j++)
+                    aParam.pSubTotals[i][j] = sal::static_int_cast<SCCOL>( aParam.pSubTotals[i][j] + nFieldStart );
+			}
+		}
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 1754 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undoblk3.cxx
+Starting at line 1828 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undoblk3.cxx
+
+void __EXPORT ScUndoRemoveAreaLink::Undo()
+{
+	ScDocument* pDoc = pDocShell->GetDocument();
+	SvxLinkManager* pLinkManager = pDoc->GetLinkManager();
+
+	ScAreaLink* pLink = new ScAreaLink( pDocShell, aDocName, aFltName, aOptions,
+										aAreaName, aRange.aStart, nRefreshDelay );
+	pLink->SetInCreate( TRUE );
+	pLink->SetDestArea( aRange );
+	pLinkManager->InsertFileLink( *pLink, OBJECT_CLIENT_FILE, aDocName, &aFltName, &aAreaName );
+	pLink->Update();
+	pLink->SetInCreate( FALSE );
+
+	SFX_APP()->Broadcast( SfxSimpleHint( SC_HINT_AREALINKS_CHANGED ) );		// Navigator
+}
+
+
+//----------------------------------------------------------------------------
+
+void __EXPORT ScUndoRemoveAreaLink::Redo()
+=====================================================================
+Found a 25 line (107 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/docshell/olinefun.cxx
+Starting at line 839 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewfun2.cxx
+
+	ScDocument* pDoc = GetViewData()->GetDocument();
+
+	USHORT nParts = PAINT_GRID;
+	SCCOL nStartCol = 0;
+	SCROW nStartRow = 0;
+	SCCOL nEndCol = MAXCOL;			// fuer Test auf Merge
+	SCROW nEndRow = MAXROW;
+	if ( bColumns )
+	{
+		nParts |= PAINT_TOP;
+		nStartCol = static_cast<SCCOL>(nStart);
+		nEndCol = static_cast<SCCOL>(nEnd);
+	}
+	else
+	{
+		nParts |= PAINT_LEFT;
+		nStartRow = nStart;
+		nEndRow = nEnd;
+	}
+	if (pDoc->HasAttrib( nStartCol,nStartRow,nTab, nEndCol,nEndRow,nTab,
+							HASATTR_MERGED | HASATTR_OVERLAPPED ))
+	{
+		nStartCol = 0;
+		nStartRow = 0;
+	}
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/drwtrans.cxx
+Starting at line 70 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/seltrans.cxx
+
+	SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pObject);
+	if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
+   	{
+		uno::Reference<awt::XControlModel> xControlModel = pUnoCtrl->GetUnoControlModel();
+		DBG_ASSERT( xControlModel.is(), "uno control without model" );
+		if ( xControlModel.is() )
+		{
+			uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+			uno::Reference< beans::XPropertySetInfo > xInfo = xPropSet->getPropertySetInfo();
+
+			rtl::OUString sPropButtonType = rtl::OUString::createFromAscii( "ButtonType" );
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 1405 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleDocument.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accdoc.cxx
+
+IMPL_LINK( SwAccessibleDocument, WindowChildEventListener, VclSimpleEvent*, pEvent )
+{
+	DBG_ASSERT( pEvent && pEvent->ISA( VclWindowEvent ), "Unknown WindowEvent!" );
+	if ( pEvent && pEvent->ISA( VclWindowEvent ) )
+	{
+		VclWindowEvent *pVclEvent = static_cast< VclWindowEvent * >( pEvent );
+		DBG_ASSERT( pVclEvent->GetWindow(), "Window???" );
+		switch ( pVclEvent->GetId() )
+		{
+        case VCLEVENT_WINDOW_SHOW:  // send create on show for direct accessible children
+			{
+				Window* pChildWin = static_cast< Window* >( pVclEvent->GetData() );
+				if( pChildWin && AccessibleRole::EMBEDDED_OBJECT == pChildWin->GetAccessibleRole() )
+				{
+					AddChild( pChildWin );
+=====================================================================
+Found a 14 line (107 tokens) duplication in the following files: 
+Starting at line 1438 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1687 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Bool bPosition(sal_False);
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+			{
+=====================================================================
+Found a 12 line (107 tokens) duplication in the following files: 
+Starting at line 1413 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+Starting at line 2118 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+
+		switch ( aRaster.pData[ nRasterIndex ].Value )
+		{
+		case raNone:		nFact = 0xffff; bSwapCol = TRUE; bSetItem = (nBColor > 0); break;
+		case raGray12:	nFact = (0xffff / 100) * 12;	break;
+		case raGray25:	nFact = (0xffff / 100) * 25;	break;
+		case raGray50:	nFact = (0xffff / 100) * 50;	break;
+		case raGray75:	nFact = (0xffff / 100) * 75;	break;
+		default:	nFact = 0xffff; bSetItem = (nRColor < 15);
+		}
+		if ( bSetItem )
+		{
+			if( bSwapCol )
+=====================================================================
+Found a 19 line (107 tokens) duplication in the following files: 
+Starting at line 929 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+Starting at line 2044 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/starcalc/scflt.cxx
+
+            ScPatternAttr   aScPattern(pDoc->GetPool());
+			SvxBorderLine	aLine;
+            SvxBoxItem      aBox( ATTR_BORDER );
+
+			aLine.SetOutWidth( nLeft );
+			aLine.SetColor( ColorLeft );
+			aBox.SetLine( &aLine, BOX_LINE_LEFT );
+
+			aLine.SetOutWidth( nTop );
+			aLine.SetColor( ColorTop );
+			aBox.SetLine( &aLine, BOX_LINE_TOP );
+
+			aLine.SetOutWidth( nRight );
+			aLine.SetColor( ColorRight );
+			aBox.SetLine( &aLine, BOX_LINE_RIGHT );
+
+			aLine.SetOutWidth( nBottom );
+			aLine.SetColor( ColorBottom );
+			aBox.SetLine( &aLine, BOX_LINE_BOTTOM );
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/xechart.cxx
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/xichart.cxx
+
+using ::com::sun::star::drawing::Direction3D;
+
+using ::com::sun::star::chart2::XChartDocument;
+using ::com::sun::star::chart2::XDiagram;
+using ::com::sun::star::chart2::XCoordinateSystemContainer;
+using ::com::sun::star::chart2::XCoordinateSystem;
+using ::com::sun::star::chart2::XChartTypeContainer;
+using ::com::sun::star::chart2::XChartType;
+using ::com::sun::star::chart2::XDataSeriesContainer;
+using ::com::sun::star::chart2::XDataSeries;
+using ::com::sun::star::chart2::XRegressionCurve;
+=====================================================================
+Found a 22 line (107 tokens) duplication in the following files: 
+Starting at line 3859 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+Starting at line 4181 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/compiler.cxx
+
+        nOldPosTab = nPosTab - nDir;    // moved by one
+
+    BOOL bIsRel = FALSE;
+    ScToken* t;
+    pArr->Reset();
+    if (bIsName)
+        t = pArr->GetNextReference();
+    else
+        t = pArr->GetNextReferenceOrName();
+    while( t )
+    {
+        if( t->GetOpCode() == ocName )
+        {
+            if (!bIsName)
+            {
+                ScRangeData* pName = pDoc->GetRangeName()->FindIndex(t->GetIndex());
+                if (pName && pName->HasType(RT_SHAREDMOD))
+                    pRangeData = pName;
+            }
+        }
+        else if( t->GetType() != svIndex )  // it may be a DB area!!!
+        {
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 1052 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_SocketAddr.cxx
+
+			::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_FTP );
+			sal_Bool bOK = saSocketAddr.setPort( IP_PORT_ZERO );
+			
+			oslSocket sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
+			::osl::Socket sSocket(sHandle);			
+			sSocket.setOption( osl_Socket_OptionReuseAddr, 1 );//sal_True);			
+			sal_Bool bOK1 = sSocket.bind( saSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "bind SocketAddr failed", bOK1 == sal_True );
+			
+			sal_Int32 newPort = sSocket.getLocalPort();
+			//t_print("#new port is %d\n", newPort );
+ 
+			CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: port number should be in 1 ~ 65535, set port 0, it should be converted to a port number between 1024~65535.", 
+									( 1024 <= newPort ) && ( 65535 >= newPort ) && ( bOK == sal_True ) );
+			
+		}
+		
+		void setPort_003()
+		{
+			::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_FTP);
+=====================================================================
+Found a 21 line (107 tokens) duplication in the following files: 
+Starting at line 1987 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+Starting at line 15299 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+
+    {
+        OString* arrOUS[5];
+        
+    public:
+        void setUp()
+        {
+            arrOUS[0] = new OString( kTestStr7 );
+            arrOUS[1] = new OString(  );
+            arrOUS[2] = new OString( kTestStr25 );
+            arrOUS[3] = new OString( "\0"  );
+            arrOUS[4] = new OString( kTestStr28 );
+            
+        }
+        
+        void tearDown()
+        {
+            delete arrOUS[0]; delete arrOUS[1]; delete arrOUS[2]; 
+            delete arrOUS[3]; delete arrOUS[4];
+        }
+        
+        void append_001()
+=====================================================================
+Found a 28 line (107 tokens) duplication in the following files: 
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+Starting at line 428 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+
+				   			 		  		   sal_Unicode** pValueList, 
+				   			 		  		   sal_uInt32 len)
+{
+	ORegKey* 	pKey;
+	
+	if (hKey)
+	{
+		pKey = (ORegKey*)hKey;
+
+		if (pKey->isDeleted())
+			return REG_INVALID_KEY;
+	} else
+		return REG_INVALID_KEY;
+
+	if (pKey->isReadOnly())
+		return REG_REGISTRY_READONLY;
+
+	OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
+	if (keyName->length)
+	{
+		RegKeyHandle hSubKey;
+		ORegKey* pSubKey;
+		RegError _ret1 = pKey->openKey(keyName, &hSubKey);
+		if (_ret1)
+			return _ret1;
+
+		pSubKey = (ORegKey*)hSubKey;
+        _ret1 = pSubKey->setUnicodeListValue(valueName, pValueList, len);
+=====================================================================
+Found a 32 line (107 tokens) duplication in the following files: 
+Starting at line 667 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/pyuno/source/module/pyuno_runtime.cxx
+
+    (reprfunc) 0,
+    (getattrofunc)0,
+    (setattrofunc)0,
+    NULL,
+    0,
+    NULL,
+    (traverseproc)0,
+    (inquiry)0,
+    (richcmpfunc)0,
+    0,
+    (getiterfunc)0,
+    (iternextfunc)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    (descrgetfunc)0,
+    (descrsetfunc)0,
+    0,
+    (initproc)0,
+    (allocfunc)0,
+    (newfunc)0,
+    (freefunc)0,
+    (inquiry)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    (destructor)0
+};
+=====================================================================
+Found a 9 line (107 tokens) duplication in the following files: 
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ocompinstream.cxx
+Starting at line 2612 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+	if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
+	for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
+		for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
+			if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Id" ) ) )
+			{
+				if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
+=====================================================================
+Found a 16 line (107 tokens) duplication in the following files: 
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ocompinstream.cxx
+Starting at line 388 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/ocompinstream.cxx
+
+::rtl::OUString SAL_CALL OInputCompStream::getTypeByID(  const ::rtl::OUString& sID  )
+		throw ( container::NoSuchElementException,
+				io::IOException,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
+
+	if ( m_bDisposed )
+		throw lang::DisposedException();
+
+	if ( m_nStorageType != OFOPXML_STORAGE )
+		throw uno::RuntimeException();
+
+	uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
+	for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
+		if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/acceptor/acc_socket.cxx
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/connector/ctr_socket.cxx
+
+		buf.append( (sal_Int32) nPort );
+		buf.appendAscii( ",localHost=" );
+		buf.append( m_socket.getLocalHost( ) );
+
+		m_sDescription += buf.makeStringAndClear();
+	}
+	
+	sal_Int32 SocketConnection::read( Sequence < sal_Int8 > & aReadBytes , sal_Int32 nBytesToRead )
+			throw(::com::sun::star::io::IOException,
+				  ::com::sun::star::uno::RuntimeException)
+	{
+		if( ! m_nStatus )
+		{
+			notifyListeners(this, &_started, callStarted);
+
+			if( aReadBytes.getLength() != nBytesToRead )
+			{
+				aReadBytes.realloc( nBytesToRead );
+			}
+			sal_Int32 i = m_socket.read( aReadBytes.getArray()  , aReadBytes.getLength() );
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 1506 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1510 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd00 - fd0f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd10 - fd1f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd20 - fd2f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,10,// fd30 - fd3f
+=====================================================================
+Found a 6 line (107 tokens) duplication in the following files: 
+Starting at line 1340 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2ef0 - 2eff
+
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f00 - 2f0f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f10 - 2f1f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f20 - 2f2f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2f30 - 2f3f
+=====================================================================
+Found a 5 line (107 tokens) duplication in the following files: 
+Starting at line 1080 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1072 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17,17,17,17,17,17,17,17,17,17, 0, 0, 0, 0, 0,// 0740 - 074f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0750 - 075f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0760 - 076f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0770 - 077f
+=====================================================================
+Found a 5 line (107 tokens) duplication in the following files: 
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/nodrop_curs.h
+
+   0xf0, 0x3f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+=====================================================================
+Found a 5 line (107 tokens) duplication in the following files: 
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 858 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb70 - fb7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb80 - fb8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fb90 - fb9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fba0 - fbaf
+     5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// fbb0 - fbbf
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1262 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 5 line (107 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 701 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    19, 4, 4, 4, 4, 4,27,27,10,10,10, 0, 0, 0,27,27,// 3030 - 303f
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3040 - 304f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3050 - 305f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3060 - 306f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 3070 - 307f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe70 - fe7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe80 - fe8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 651 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c40 - 2c4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c50 - 2c5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c60 - 2c6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2c70 - 2c7f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,// 0d50 - 0d5f
+     5, 5, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,// 0d60 - 0d6f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0d70 - 0d7f
+     0, 0, 8, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0d80 - 0d8f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1430 - 143f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1440 - 144f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1450 - 145f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1460 - 146f
+=====================================================================
+Found a 5 line (107 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 16f0 - 16ff
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1700 - 170f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1710 - 171f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1720 - 172f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 6, 6, 8, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0900 - 090f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0910 - 091f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0920 - 092f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 6, 5, 8, 8,// 0930 - 093f
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0,// 0740 - 074f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0750 - 075f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0760 - 076f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0770 - 077f
+=====================================================================
+Found a 5 line (107 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     1, 2,27, 6, 6, 6, 6, 0, 7, 7, 0, 0, 1, 2, 1, 2,// 0480 - 048f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 0490 - 049f
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 04a0 - 04af
+     1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,// 04b0 - 04bf
+     1, 1, 2, 1, 2, 0, 0, 1, 2, 0, 0, 1, 2, 0, 0, 0,// 04c0 - 04cf
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1072 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    17,17,17,17,17,17,17,17,17,17,17, 0, 0, 0, 0, 0,// 0740 - 074f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0750 - 075f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0760 - 076f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0770 - 077f
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 4450 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 4552 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+                    padd(ascii("svg:width"), sXML_CDATA,
+                        Double2Str (WTMM( drawobj->extent.w )) + ascii("mm"));
+                    padd(ascii("svg:height"), sXML_CDATA,
+                        Double2Str (WTMM( drawobj->extent.h )) + ascii("mm"));
+
+                    sprintf(buf, "0 0 %d %d", WTSM(drawobj->extent.w), WTSM(drawobj->extent.h));
+                    padd(ascii("svg:viewBox"), sXML_CDATA, ascii(buf) );
+
+                    OUString oustr;
+
+                    if (drawobj->u.freeform.npt > 0)
+=====================================================================
+Found a 13 line (107 tokens) duplication in the following files: 
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpread.cpp
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpread.cpp
+
+    hwpf.Read2b(&dummy1, 1);                      /* ���� 4����Ʈ */
+    hwpf.Read2b(&dummy2, 1);
+
+    style.boxnum = fboxnum++;
+	 zorder = zindex++;
+    hwpf.Read1b(&style.anchor_type, 1);           /* ����'ġ */
+    hwpf.Read1b(&style.txtflow, 1);               /* �׸�����. 0-2(�ڸ�����,���,��︲) */
+    hwpf.Read2b(&style.xpos, 1);                  /* ����'ġ : 1 ����, 2�8���, 3 ���, �̿� = ���� */
+    hwpf.Read2b(&style.ypos, 1);                  /* ����'ġ : 1 ', 2 �Ʒ�, 3 ���, �̿� ���� */
+    hwpf.Read2b(&option, 1);                      /* ��Ÿ�ɼ� : �׵θ�,�׸�����,��. bit�� ����. */
+    hwpf.Read2b(&ctrl_ch, 1);                     /* �׻� 11 */
+    hwpf.Read2b(style.margin, 12);                /* ���� : [0-2][] out/in/��,[][0-3] ��/�8�/'/�Ʒ� ���� */
+    hwpf.Read2b(&box_xs, 1);                      /* �ڽ�ũ�� ���� */
+=====================================================================
+Found a 10 line (107 tokens) duplication in the following files: 
+Starting at line 1757 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ios2met/ios2met.cxx
+Starting at line 1834 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ios2met/ios2met.cxx
+
+				aAttr.aImgBgCol=aDefAttr.aImgBgCol;
+			}
+			else {
+				nVal=ReadLittleEndian3BytesLong();
+				if      ((nFlags&0x40)!=0 && nVal==1) aCol=Color(COL_BLACK);
+				else if ((nFlags&0x40)!=0 && nVal==2) aCol=Color(COL_WHITE);
+				else if ((nFlags&0x40)!=0 && nVal==4) aCol=Color(COL_WHITE);
+				else if ((nFlags&0x40)!=0 && nVal==5) aCol=Color(COL_BLACK);
+				else aCol=GetPaletteColor(nVal);
+				aAttr.aLinBgCol = aAttr.aChrBgCol = aAttr.aMrkBgCol =
+=====================================================================
+Found a 9 line (107 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/idxf/dxfentrd.cxx
+
+void DXFTraceEntity::EvaluateGroup(DXFGroupReader & rDGR)
+{
+	switch (rDGR.GetG()) {
+		case 10: aP0.fx=rDGR.GetF(); break;
+		case 20: aP0.fy=rDGR.GetF(); break;
+		case 30: aP0.fz=rDGR.GetF(); break;
+		case 11: aP1.fx=rDGR.GetF(); break;
+		case 21: aP1.fy=rDGR.GetF(); break;
+		case 31: aP1.fz=rDGR.GetF(); break;
+=====================================================================
+Found a 19 line (107 tokens) duplication in the following files: 
+Starting at line 1997 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+Starting at line 1499 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/filter.vcl/wmf/wmfwr.cxx
+
+							aY /= BigInt( aScaleY.GetNumerator() );
+							aOrigin.Y() = (long)aY + aMM.GetOrigin().Y();
+							aSrcMapMode.SetOrigin( aOrigin );
+
+							aScaleX *= aSrcMapMode.GetScaleX();
+							aScaleY *= aSrcMapMode.GetScaleY();
+							aSrcMapMode.SetScaleX( aScaleX );
+							aSrcMapMode.SetScaleY( aScaleY );
+						}
+						else
+							aSrcMapMode=pA->GetMapMode();
+					}
+				}
+				break;
+
+				case META_FONT_ACTION:
+				{
+					const MetaFontAction* pA = (const MetaFontAction*) pMA;
+					aSrcFont = pA->GetFont();
+=====================================================================
+Found a 27 line (107 tokens) duplication in the following files: 
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesconfiguration.cxx
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/imagesconfiguration.cxx
+
+	Reference< XDocumentHandler > xDocHandler( new OReadImagesDocumentHandler( rItems ));
+	Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
+
+	// connect parser and filter
+	xParser->setDocumentHandler( xFilter );
+
+	try
+	{
+		xParser->parseStream( aInputSource );
+		return sal_True;
+	}
+	catch ( RuntimeException& )
+	{
+		return sal_False;
+	}
+	catch( SAXException& )
+	{
+		return sal_False;
+	}
+	catch( ::com::sun::star::io::IOException& )
+	{
+		return sal_False;
+	}
+}
+
+sal_Bool ImagesConfiguration::StoreImages(
+	const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+=====================================================================
+Found a 4 line (107 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0,// 0740 - 074f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0750 - 075f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0760 - 076f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0770 - 077f
+=====================================================================
+Found a 22 line (107 tokens) duplication in the following files: 
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/OleClient/clientTest.cxx
+Starting at line 644 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/OleClient/clientTest.cxx
+
+bool doSimpleTest(const Reference<XInvocation> & inv)
+{
+	Sequence< sal_Int16> seqIndices;
+	Sequence<Any> seqOut;
+
+	Any inBool, outBool;
+	Any inByte, outByte;
+	Any inShort, outShort;
+	Any inLong,  outLong;
+	Any inString,  outString;
+	Any inFloat, outFloat;
+	Any inDouble, outDouble;
+	Any inVariant, outVariant;
+	Any inObject, outObject;
+	Any inUnknown, outUnknown;
+    Any inCY, outCY;
+    Any inDate, outDate;
+    Any inDecimal, outDecimal;
+    Any inSCode, outSCode;
+    Any inrefLong, outrefLong;
+    Any inrefVariant, outrefVariant;
+    Any inrefDecimal, outrefDecimal;
+=====================================================================
+Found a 28 line (107 tokens) duplication in the following files: 
+Starting at line 1030 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+					aString += GetValueString( aSz.Height() );
+					aString += B2UCONST( "\" " );
+
+					aString += NMSP_RTL::OUString::createFromAscii( aXMLAttrXLinkHRef );
+					aString += B2UCONST( "=\"data:image/png;base64," );
+
+					if( aImageData.GetFirstPartString( nPartLen, aImageString ) )
+					{
+						xExtDocHandler->unknown( aString += aImageString );
+
+						while( aImageData.GetNextPartString( nPartLen, aImageString ) )
+						{
+							xExtDocHandler->unknown( aLineFeed );
+							xExtDocHandler->unknown( aImageString );
+						}
+					}
+
+					xExtDocHandler->unknown( B2UCONST( "\"/>" ) );
+				}
+			}
+		}
+	}
+}
+
+// -----------------------------------------------------------------------------
+
+void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, 
+										const NMSP_RTL::OUString* pStyle,
+=====================================================================
+Found a 23 line (107 tokens) duplication in the following files: 
+Starting at line 1381 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/docholder.cxx
+Starting at line 1412 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/docholder.cxx
+
+void SAL_CALL DocumentHolder::notifyClosing( const lang::EventObject& aSource )
+		throw (uno::RuntimeException)
+{
+    if ( m_xComponent.is() && m_xComponent == aSource.Source )
+	{
+        m_xComponent = 0;
+		if ( m_bWaitForClose )
+		{
+			m_bWaitForClose = sal_False;
+			FreeOffice();
+		}
+	}
+
+	if( m_xFrame.is() && m_xFrame == aSource.Source )
+	{
+		m_xHatchWindow = uno::Reference< awt::XWindow >();
+		m_xOwnWindow = uno::Reference< awt::XWindow >();
+		m_xFrame = uno::Reference< frame::XFrame >();
+	}
+}
+
+//---------------------------------------------------------------------------
+void SAL_CALL DocumentHolder::queryTermination( const lang::EventObject& )
+=====================================================================
+Found a 12 line (107 tokens) duplication in the following files: 
+Starting at line 1771 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 2028 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	// TODO: The object must be at least in Running state;
+	if ( !m_bIsLink || m_nObjectState == -1 || !m_pOleComponent )
+=====================================================================
+Found a 28 line (107 tokens) duplication in the following files: 
+Starting at line 1145 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1276 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+
+	OSL_ENSURE( m_xParentStorage.is() && m_xObjectStorage.is(), "The object has no valid persistence!\n" );
+
+	sal_Int32 nTargetStorageFormat = SOFFICE_FILEFORMAT_CURRENT;
+	sal_Int32 nOriginalStorageFormat = SOFFICE_FILEFORMAT_CURRENT;
+	try {
+		nTargetStorageFormat = ::comphelper::OStorageHelper::GetXStorageFormat( xStorage );
+	}
+	catch ( beans::IllegalTypeException& )
+	{
+		// the container just has an unknown type, use current file format
+	}
+	catch ( uno::Exception& )
+	{
+		OSL_ENSURE( sal_False, "Can not retrieve target storage media type!\n" );
+	}
+
+	try
+	{
+		nOriginalStorageFormat = ::comphelper::OStorageHelper::GetXStorageFormat( m_xParentStorage );
+	}
+	catch ( beans::IllegalTypeException& )
+	{
+		// the container just has an unknown type, use current file format
+	}
+	catch ( uno::Exception& )
+	{
+		OSL_ENSURE( sal_False, "Can not retrieve own storage media type!\n" );
+	}
+=====================================================================
+Found a 8 line (107 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 6800 - 6fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7000 - 77ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7800 - 7fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8000 - 87ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8800 - 8fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9000 - 97ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9800 - 9fff
+    0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, // a000 - a7ff
+=====================================================================
+Found a 13 line (107 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+Starting at line 637 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/wizard.cxx
+
+    try 
+    {
+        Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+        // get configuration provider
+        Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+        xFactory->createInstance(sConfigSrvc), UNO_QUERY_THROW);
+        Sequence< Any > theArgs(1);
+        NamedValue v(OUString::createFromAscii("NodePath"), 
+            makeAny(OUString::createFromAscii("org.openoffice.Setup/Office")));
+        theArgs[0] <<= v;
+        Reference< XPropertySet > pset = Reference< XPropertySet >(
+            theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs), UNO_QUERY_THROW);
+        Any result = pset->getPropertyValue(OUString::createFromAscii("LicenseAcceptDate"));
+=====================================================================
+Found a 10 line (107 tokens) duplication in the following files: 
+Starting at line 1057 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/misc/UITools.cxx
+Starting at line 384 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/helper/vclunohelper.cxx
+
+    aFD.Weight= VCLUnoHelper::ConvertFontWeight( rFont.GetWeight() );
+    aFD.Slant = (::com::sun::star::awt::FontSlant)rFont.GetItalic();
+    aFD.Underline = sal::static_int_cast< sal_Int16 >(rFont.GetUnderline());
+    aFD.Strikeout = sal::static_int_cast< sal_Int16 >(rFont.GetStrikeout());
+    aFD.Orientation = rFont.GetOrientation();
+    aFD.Kerning = rFont.IsKerning();
+    aFD.WordLineMode = rFont.IsWordLineMode();
+    aFD.Type = 0;	// ??? => Nur an Metric...
+	return aFD;
+}
+=====================================================================
+Found a 14 line (107 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/CRowSetColumn.cxx
+Starting at line 193 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/resultcolumn.cxx
+
+		DECL_PROP1(DISPLAYSIZE,				sal_Int32,			READONLY);
+		DECL_PROP1_BOOL(ISAUTOINCREMENT,						READONLY);
+		DECL_PROP1_BOOL(ISCASESENSITIVE,						READONLY);
+		DECL_PROP1_BOOL(ISCURRENCY,								READONLY);
+		DECL_PROP1_BOOL(ISDEFINITELYWRITABLE,					READONLY);
+		DECL_PROP1(ISNULLABLE,				sal_Int32,			READONLY);
+		DECL_PROP1_BOOL(ISREADONLY,								READONLY);
+		DECL_PROP1_BOOL(ISROWVERSION,                           READONLY);
+		DECL_PROP1_BOOL(ISSEARCHABLE,							READONLY);
+		DECL_PROP1_BOOL(ISSIGNED,								READONLY);
+		DECL_PROP1_BOOL(ISWRITABLE,								READONLY);
+		DECL_PROP1(LABEL,					::rtl::OUString,	READONLY);
+		DECL_PROP1(NAME,					::rtl::OUString,	READONLY);
+		DECL_PROP1(PRECISION,				sal_Int32,			READONLY);
+=====================================================================
+Found a 26 line (107 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/crashrep/source/unx/main.cxx
+Starting at line 493 of /local/ooo-build/ooo-build/src/oog680-m3/crashrep/source/win32/soreport.cpp
+
+	return FreeLibrary( GetModuleHandle( RICHEDIT ) );
+}
+
+//***************************************************************************
+
+static string trim_string( const string& rString )
+{
+	string temp = rString;
+	
+	while ( temp.length() && temp[0] == ' ' || temp[0] == '\t' )
+		temp.erase( 0, 1 );
+		
+	string::size_type	len = temp.length();
+	
+	while ( len && temp[len-1] == ' ' || temp[len-1] == '\t' )
+	{
+		temp.erase( len - 1, 1 );
+		len = temp.length();
+	}
+	
+	return temp;
+}
+
+//***************************************************************************
+
+static int LoadAndFormatString( HINSTANCE hInstance, UINT uID, LPTSTR lpBuffer, int nBufferMax )
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 648 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 1048 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+                                 const uno::Sequence< double >&	rOffsets,
+                                 const CanvasSharedPtr&			rCanvas,
+                                 const OutDevState&				rState,
+                                 const ::basegfx::B2DHomMatrix&	rTextTransform );
+
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation,
+                                     const Subset&					rSubset ) const;
+
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix&	rTransformation,
+                                                       const Subset&					rSubset ) const;
+
+                virtual sal_Int32 getActionCount() const;
+
+            private:
+                // TODO(P2): This is potentially a real mass object
+                // (every character might be a separate TextAction),
+                // thus, make it as lightweight as possible. For
+                // example, share common RenderState among several
+                // TextActions, maybe using maOffsets for the
+                // translation.
+
+                uno::Reference< rendering::XTextLayout >	mxTextLayout;
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KServices.cxx
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/Yservices.cxx
+
+using namespace connectivity::mysql;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pT
+=====================================================================
+Found a 19 line (107 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Object.cxx
+Starting at line 128 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Throwable.cxx
+
+	SDBThreadAttach t;
+	if( t.pEnv ){
+		// temporaere Variable initialisieren
+		static const char * cSignature = "()Ljava/lang/String;";
+		static const char * cMethodName = "toString";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID);
+			ThrowSQLException(t.pEnv,NULL);
+			
+			aStr = JavaString2String(t.pEnv,out);
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return aStr;
+}
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/Eservices.cxx
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+
+using namespace connectivity;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pModCount
+=====================================================================
+Found a 16 line (107 tokens) duplication in the following files: 
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDriver.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YDriver.cxx
+
+        sal_Bool bIsODBC = isOdbcUrl( url );
+
+		Sequence< ::rtl::OUString > aBoolean(2);
+		aBoolean[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"));
+		aBoolean[1] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"));
+
+		
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet of the database."))
+				,sal_False
+				,::rtl::OUString()
+				,Sequence< ::rtl::OUString >())
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SuppressVersionColumns"))
+=====================================================================
+Found a 30 line (107 tokens) duplication in the following files: 
+Starting at line 1076 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+Starting at line 775 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MDatabaseMetaData.cxx
+
+	return ::rtl::OUString();
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsExtendedSQLGrammar(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsCoreSQLGrammar(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsMinimumSQLGrammar(  ) throw(SQLException, RuntimeException)
+{
+	return sal_True;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsFullOuterJoins(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsLimitedOuterJoins(  ) throw(SQLException, RuntimeException)
+{
+	return sal_False;
+}
+// -------------------------------------------------------------------------
+sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInGroupBy(  ) throw(SQLException, RuntimeException)
+{
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NTable.cxx
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/kab/KTable.cxx
+
+void KabTable::refreshColumns()
+{
+	TStringVector aVector;
+
+	if (!isNew())
+	{
+	    Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns(
+				Any(),
+				m_SchemaName,
+				m_Name,
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")));
+
+	    if (xResult.is())
+	    {
+		Reference< XRow > xRow(xResult, UNO_QUERY);
+		while (xResult->next())
+				aVector.push_back(xRow->getString(4));
+	    }
+	}
+
+	if (m_pColumns)
+	    m_pColumns->reFill(aVector);
+	else
+	    m_pColumns  = new KabColumns(this,m_aMutex,aVector);
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LServices.cxx
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+
+using namespace connectivity;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pModCount
+=====================================================================
+Found a 17 line (107 tokens) duplication in the following files: 
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LFolderList.cxx
+Starting at line 597 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+			switch(nType)
+			{
+				case DataType::TIMESTAMP:
+				case DataType::DATE:
+				case DataType::TIME:
+				{
+					double nRes = 0.0;
+					try
+					{
+						nRes = m_xNumberFormatter->convertStringToNumber(::com::sun::star::util::NumberFormat::ALL,aStr);
+						Reference<XPropertySet> xProp(m_xNumberFormatter->getNumberFormatsSupplier()->getNumberFormatSettings(),UNO_QUERY);
+						com::sun::star::util::Date aDate;
+						xProp->getPropertyValue(::rtl::OUString::createFromAscii("NullDate")) >>= aDate;
+
+						switch(nType)
+						{
+							case DataType::DATE:
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/Dservices.cxx
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+
+using namespace connectivity;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pModCount
+=====================================================================
+Found a 11 line (107 tokens) duplication in the following files: 
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+Sequence< Type > SAL_CALL OEvoabTable::getTypes(  ) throw(RuntimeException)
+{
+	Sequence< Type > aTypes = OTable_TYPEDEF::getTypes();
+	::std::vector<Type> aOwnTypes;
+	aOwnTypes.reserve(aTypes.getLength());
+	const Type* pBegin = aTypes.getConstArray();
+	const Type* pEnd = pBegin + aTypes.getLength();
+	for(;pBegin != pEnd;++pBegin)
+	{
+		if(!(*pBegin == ::getCppuType((const Reference<XKeysSupplier>*)0)	||
+			*pBegin == ::getCppuType((const Reference<XRename>*)0)			||
+=====================================================================
+Found a 16 line (107 tokens) duplication in the following files: 
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DDriver.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YDriver.cxx
+
+        sal_Bool bIsODBC = isOdbcUrl( url );
+
+		Sequence< ::rtl::OUString > aBoolean(2);
+		aBoolean[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("0"));
+		aBoolean[1] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"));
+
+		
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet"))
+				,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharSet of the database."))
+				,sal_False
+				,::rtl::OUString()
+				,Sequence< ::rtl::OUString >())
+				);
+		aDriverInfo.push_back(DriverPropertyInfo(
+				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SuppressVersionColumns"))
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/Cservices.cxx
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+
+using namespace connectivity;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pModCount
+=====================================================================
+Found a 13 line (107 tokens) duplication in the following files: 
+Starting at line 701 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CTable.cxx
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/dbase/DTable.cxx
+
+Sequence< Type > SAL_CALL ODbaseTable::getTypes(  ) throw(RuntimeException)
+{
+	Sequence< Type > aTypes = OTable_TYPEDEF::getTypes();
+	::std::vector<Type> aOwnTypes;
+	aOwnTypes.reserve(aTypes.getLength());
+
+	const Type* pBegin = aTypes.getConstArray();
+	const Type* pEnd = pBegin + aTypes.getLength();
+	for(;pBegin != pEnd;++pBegin)
+	{
+		if(!(*pBegin == ::getCppuType((const Reference<XKeysSupplier>*)0)	||
+			//	*pBegin == ::getCppuType((const Reference<XAlterTable>*)0)	||
+			*pBegin == ::getCppuType((const Reference<XDataDescriptorFactory>*)0)))
+=====================================================================
+Found a 15 line (107 tokens) duplication in the following files: 
+Starting at line 49 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/jservices.cxx
+
+using namespace connectivity;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::registry::XRegistryKey;
+using ::com::sun::star::lang::XSingleServiceFactory;
+using ::com::sun::star::lang::XMultiServiceFactory;
+
+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
+		(
+			const Reference< XMultiServiceFactory > & rServiceManager,
+			const OUString & rComponentName,
+			::cppu::ComponentInstantiation pCreateFunction,
+			const Sequence< OUString > & rServiceNames,
+			rtl_ModuleCount* _pModCount
+=====================================================================
+Found a 10 line (107 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+
+								+ ::rtl::OUString::createFromAscii(" (");
+
+					for ( sal_Int32 column=0; column<xColumns->getCount(); ++column )
+					{
+						if(::cppu::extractInterface(xColProp,xColumns->getByIndex(column)) && xColProp.is())
+							aSql += aQuote + getString(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))) + aQuote
+										+ ::rtl::OUString::createFromAscii(",");
+					}
+
+					aSql = aSql.replaceAt(aSql.getLength()-1,1,::rtl::OUString::createFromAscii(")"));
+=====================================================================
+Found a 14 line (107 tokens) duplication in the following files: 
+Starting at line 95 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BColumns.cxx
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MColumns.cxx
+
+    Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(Any(),
+	m_pTable->getSchema(),m_pTable->getTableName(),_rName);
+
+    sdbcx::ObjectType xRet = NULL;
+	if(xResult.is())
+	{
+        Reference< XRow > xRow(xResult,UNO_QUERY);
+		while(xResult->next())
+		{
+			if(xRow->getString(4) == _rName)
+			{
+				sal_Int32 nType				= xRow->getInt(5);
+				::rtl::OUString sTypeName	= xRow->getString(6);
+				sal_Int32 nPrec				= xRow->getInt(7);
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/api2/updateimpl.cxx
+
+			aTree.integrate(aChange, aNode, true);
+
+			lock.clearForBroadcast();
+			aSender.notifyListeners(aChange);
+		}
+	}
+	catch (configuration::InvalidName& ex)
+	{
+		ExceptionMapper e(ex);
+		OUString sMessage( RTL_CONSTASCII_USTRINGPARAM("Configuration - Cannot replace Set Element: ") );
+		Reference<uno::XInterface> xContext( rNode.getUnoInstance() );
+		throw NoSuchElementException( e.message(), xContext );
+	}
+	catch (configuration::TypeMismatch& ex)
+	{
+		ExceptionMapper e(ex);
+		e.setContext( rNode.getUnoInstance() );	
+		e.illegalArgument(2);
+	}
+	catch (configuration::ConstraintViolation& ex)
+=====================================================================
+Found a 25 line (107 tokens) duplication in the following files: 
+Starting at line 56 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propertysetinfo.cxx
+Starting at line 60 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/property/propertysetinfo.cxx
+
+	void add( PropertyMapEntry* pMap ) throw();
+	void remove( const OUString& aName ) throw();
+
+	Sequence< Property > getProperties() throw();
+
+	const PropertyMap* getPropertyMap() const throw();
+
+	Property getPropertyByName( const OUString& aName ) throw( UnknownPropertyException );
+	sal_Bool hasPropertyByName( const OUString& aName ) throw();
+
+private:
+	PropertyMap maPropertyMap;
+	Sequence< Property > maProperties;
+};
+}
+
+PropertyMapImpl::PropertyMapImpl() throw()
+{
+}
+
+PropertyMapImpl::~PropertyMapImpl() throw()
+{
+}
+
+void PropertyMapImpl::add( PropertyMapEntry* pMap ) throw()
+=====================================================================
+Found a 27 line (107 tokens) duplication in the following files: 
+Starting at line 2263 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2456 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+	}		
+
+	o	<< "  return ret;\n"
+		<< "}\n\n";
+
+	o << "inline sal_Bool bonobobridge::cpp_convert_b2u(";
+	dumpUnoType(o, m_typeName, sal_False, sal_True);
+	o << " u	, ";
+	dumpCorbaType(o, m_typeName, sal_True, sal_True);
+	o << " b,	const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
+	  << "  return convert_b2u_" << m_typeName.replace('/', '_') 
+	  << "(&u, &b, ::getCppuType(&u), bridge);\n"
+	  << "};\n\n";
+	
+	o << "inline sal_Bool bonobobridge::cpp_convert_u2b(";
+	dumpCorbaType(o, m_typeName, sal_False, sal_True);
+	o << " b, ";
+	dumpUnoType(o, m_typeName, sal_True, sal_True);
+	o << " u,	const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"	
+	  << "  return convert_u2b_" << m_typeName.replace('/', '_') 
+	  << "(&b, &u, ::getCppuType(&u), bridge);\n"
+	  << "};\n\n";
+}
+
+
+
+sal_Bool ExceptionType::dumpSuperMember(FileStream& o, const OString& superType, sal_Bool bWithType)
+=====================================================================
+Found a 10 line (107 tokens) duplication in the following files: 
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+
+void VSeriesPlotter::releaseShapes()
+{
+    ::std::vector< ::std::vector< VDataSeriesGroup > >::iterator             aZSlotIter = m_aZSlots.begin();
+    const ::std::vector< ::std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
+    for( ; aZSlotIter != aZSlotEnd; aZSlotIter++ )
+    {
+        ::std::vector< VDataSeriesGroup >::iterator             aXSlotIter = aZSlotIter->begin();
+        const ::std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
+        for( ; aXSlotIter != aXSlotEnd; aXSlotIter++ )
+        {
+=====================================================================
+Found a 30 line (107 tokens) duplication in the following files: 
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nFunctionIndex)
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx
+Starting at line 194 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+        rtti = iRttiFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 30 line (107 tokens) duplication in the following files: 
+Starting at line 286 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nVtableCall)
+=====================================================================
+Found a 24 line (107 tokens) duplication in the following files: 
+Starting at line 219 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+
+        rtti = iFind->second;
+    }
+
+    return rtti;
+}
+
+//--------------------------------------------------------------------------------------------------
+static void deleteException( void * pExc )
+{
+    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
+    typelib_TypeDescription * pTD = 0;
+    OUString unoName( toUNOname( header->exceptionType->name() ) );
+    ::typelib_typedescription_getByName( &pTD, unoName.pData );
+    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
+    if (pTD)
+    {
+		::uno_destructData( pExc, pTD, cpp_release );
+		::typelib_typedescription_release( pTD );
+	}
+}
+
+//==================================================================================================
+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
+{
+=====================================================================
+Found a 30 line (107 tokens) duplication in the following files: 
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+				pCallStack, pRegisterReturn );
+		}
+		else
+		{
+			// is SET method
+			typelib_MethodParameter aParam;
+			aParam.pTypeRef =
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
+			aParam.bIn		= sal_True;
+			aParam.bOut		= sal_False;
+			
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				0, // indicates void return
+				1, &aParam,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	case typelib_TypeClass_INTERFACE_METHOD:
+	{
+		// is METHOD
+		switch (nVtableCall)
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 1726 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+Starting at line 1858 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/workbench/bezierclip.cxx
+
+            Bezier c1_part1;
+            Bezier c1_part2;
+            Bezier c1_part3;
+            
+            // subdivide at t1_c1
+            Impl_deCasteljauAt( c1_part1, c1_part2, c1, t1 );
+            // subdivide at t2_c1
+            Impl_deCasteljauAt( c1_part1, c1_part3, c1_part2, (t2-t1)/(1.0-t1) );
+            
+            // output remaining segment (c1_part1)
+            
+            cout << " bez(" 
+                 << c1.p0.x << "," 
+                 << c1.p1.x << ","
+                 << c1.p2.x << ","
+                 << c1.p3.x << ",t),bez("
+                 << c1.p0.y << "," 
+                 << c1.p1.y << ","
+                 << c1.p2.y << ","
+                 << c1.p3.y << ",t) title \"c1\", "
+=====================================================================
+Found a 19 line (107 tokens) duplication in the following files: 
+Starting at line 265 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolygontools.cxx
+Starting at line 2712 of /local/ooo-build/ooo-build/src/oog680-m3/basegfx/source/polygon/b2dpolygontools.cxx
+
+				B2DPolygon aRetval;
+				B2DCubicBezier aBezier;
+				aBezier.setStartPoint(rCandidate.getB2DPoint(0));
+
+				// add start point
+				aRetval.append(aBezier.getStartPoint());
+
+				for(sal_uInt32 a(0L); a < nEdgeCount; a++)
+				{
+					// get values for edge
+					const sal_uInt32 nNextIndex((a + 1) % nPointCount);
+					aBezier.setEndPoint(rCandidate.getB2DPoint(nNextIndex));
+					aBezier.setControlPointA(rCandidate.getNextControlPoint(a));
+					aBezier.setControlPointB(rCandidate.getPrevControlPoint(nNextIndex));
+					aBezier.testAndSolveTrivialBezier();
+
+					// still bezier?
+					if(aBezier.isBezier())
+					{
+=====================================================================
+Found a 20 line (107 tokens) duplication in the following files: 
+Starting at line 5717 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 5792 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+
+						case M_GetItemType :
+                            {
+								SvTreeListBox *pTree = (SvTreeListBox*)pControl;
+                                SvLBoxEntry *pThisEntry = NULL;
+
+							    if ( ! (nParams & PARAM_USHORT_1) )
+                                {
+                                    pThisEntry = pTree->GetCurEntry();
+                                    if ( !pThisEntry )
+									    ReportError( aUId, GEN_RES_STR2c2( S_NO_SELECTED_ENTRY, MethodString( nMethodId ), "TreeListBox" ) );
+                                }
+                                else
+                                {
+							        if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+							        {
+                                        pThisEntry = (SvLBoxEntry*)pTree->GetEntryAtVisPos( nNr1-1 );
+                                    }
+                                }
+                            
+							    if ( pThisEntry )
+=====================================================================
+Found a 31 line (106 tokens) duplication in the following files: 
+Starting at line 45053 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 45249 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+     case OOXML_ELEMENT_wordprocessingml_pPr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_PPr(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_rPr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_RPr(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblPr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TblPrBase(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_trPr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TrPr(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tcPr:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_TcPr(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_tblStylePr:
+=====================================================================
+Found a 22 line (106 tokens) duplication in the following files: 
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+Starting at line 341 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_gray.h
+
+                                          image_subpixel_shift);
+
+            int maxx = base_type::source_image().width() - 1;
+            int maxy = base_type::source_image().height() - 1;
+
+            do
+            {
+                int x_hr;
+                int y_hr;
+                
+                base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+                x_hr -= base_type::filter_dx_int();
+                y_hr -= base_type::filter_dy_int();
+
+                int x_lr = x_hr >> image_subpixel_shift;
+                int y_lr = y_hr >> image_subpixel_shift;
+
+                if(x_lr >= 0    && y_lr >= 0 &&
+                   x_lr <  maxx && y_lr <  maxy) 
+                {
+                    fg = image_filter_size / 2;
+=====================================================================
+Found a 11 line (106 tokens) duplication in the following files: 
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/demo/multisigdemo.cxx
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/tools/demo/multisigdemo.cxx
+
+	nSecurityId = aSignatureHelper.GetNewSecurityId();
+
+	// Select certificate...
+	uno::Reference< ::com::sun::star::security::XCertificate > xPersonalCert = getCertificateFromEnvironment( xSecurityEnvironment, true );
+	aSignatureHelper.SetX509Certificate(
+        nSecurityId, xPersonalCert->getIssuerName(),
+        bigIntegerToNumericString( xPersonalCert->getSerialNumber()),
+        baseEncode(xPersonalCert->getEncoded(), BASE64));
+	aSignatureHelper.AddForSigning( nSecurityId, aXMLFileName, aXMLFileName, sal_False );
+	aSignatureHelper.AddForSigning( nSecurityId, aBINFileName, aBINFileName, sal_True );
+	aSignatureHelper.SetDateTime( nSecurityId, Date(), Time() );
+=====================================================================
+Found a 10 line (106 tokens) duplication in the following files: 
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using ::com::sun::star::lang::XMultiServiceFactory ;
+using ::com::sun::star::lang::XSingleServiceFactory ;
+using ::rtl::OUString ;
+
+using ::com::sun::star::xml::wrapper::XXMLElementWrapper ;
+using ::com::sun::star::xml::wrapper::XXMLDocumentWrapper ;
+using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
+using ::com::sun::star::xml::crypto::XXMLSignature ;
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 42 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/chart_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/drawarc_curs.h
+
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xbf, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+   0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+=====================================================================
+Found a 6 line (106 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+Starting at line 34 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_gsv_text.cpp
+
+        0x0a,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_mask.h
+
+ 0xf8,0xf7,0xf7,0x0f,0xf0,0xf7,0xf7,0x07,0xc0,0xe7,0xf3,0x01,0x80,0xcf,0xf9,
+ 0x00,0x00,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+
+static char ass_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 15 line (106 tokens) duplication in the following files: 
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/toolbox2.cxx
+Starting at line 824 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/toolbox2.cxx
+
+	aItem.meType	 = TOOLBOXITEM_BREAK;
+	aItem.mbEnabled	 = FALSE;
+    mpData->m_aItems.insert( (nPos < mpData->m_aItems.size()) ? mpData->m_aItems.begin()+nPos : mpData->m_aItems.end(), aItem );
+    mpData->ImplClearLayoutData();
+
+	ImplInvalidate( FALSE );
+
+    // Notify
+    USHORT nNewPos = sal::static_int_cast<USHORT>(( nPos == TOOLBOX_APPEND ) ? ( mpData->m_aItems.size() - 1 ) : nPos);
+    ImplCallEventListeners( VCLEVENT_TOOLBOX_ITEMADDED, reinterpret_cast< void* >( nNewPos ) );
+}
+
+// -----------------------------------------------------------------------
+
+void ToolBox::RemoveItem( USHORT nPos )
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 1218 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 1254 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+				DrawBitmap( rPos, rSize, *static_cast< Bitmap* >( rImage.mpImplData->mpData ) );
+			break;
+	
+			case IMAGETYPE_IMAGE:
+			{
+				ImplImageData* pData = static_cast< ImplImageData* >( rImage.mpImplData->mpData );
+	
+				if ( !pData->mpImageBitmap )
+				{
+					const Size aSize( pData->maBmpEx.GetSizePixel() );
+					
+					pData->mpImageBitmap = new ImplImageBmp;
+					pData->mpImageBitmap->Create( pData->maBmpEx, aSize.Width(), aSize.Height(), 1 );
+				}
+	
+				pData->mpImageBitmap->Draw( 0, this, rPos, nStyle, &rSize );
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 695 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 924 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+	if( !( !aBmpEx ) )
+	{
+		TwoRect aPosAry;
+
+		aPosAry.mnSrcX = rSrcPtPixel.X();
+		aPosAry.mnSrcY = rSrcPtPixel.Y();
+		aPosAry.mnSrcWidth = rSrcSizePixel.Width();
+		aPosAry.mnSrcHeight = rSrcSizePixel.Height();
+		aPosAry.mnDestX = ImplLogicXToDevicePixel( rDestPt.X() );
+		aPosAry.mnDestY = ImplLogicYToDevicePixel( rDestPt.Y() );
+		aPosAry.mnDestWidth = ImplLogicWidthToDevicePixel( rDestSize.Width() );
+		aPosAry.mnDestHeight = ImplLogicHeightToDevicePixel( rDestSize.Height() );
+
+		const ULONG nMirrFlags = ImplAdjustTwoRect( aPosAry, aBmpEx.GetSizePixel() );
+=====================================================================
+Found a 13 line (106 tokens) duplication in the following files: 
+Starting at line 1117 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+Starting at line 1279 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+Size ListBox::CalcAdjustedSize( const Size& rPrefSize ) const
+{
+	Size aSz = rPrefSize;
+	sal_Int32 nLeft, nTop, nRight, nBottom;
+	((Window*)this)->GetBorder( nLeft, nTop, nRight, nBottom );
+	aSz.Height() -= nTop+nBottom;
+	if ( !IsDropDownBox() )
+	{
+		long nEntryHeight = CalcSize( 1, 1 ).Height();
+		long nLines = aSz.Height() / nEntryHeight;
+		if ( nLines < 1 )
+			nLines = 1;
+		aSz.Height() = nLines * nEntryHeight;
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+Starting at line 633 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+void ListBox::SetPosSizePixel( long nX, long nY, long nWidth, long nHeight, USHORT nFlags )
+{
+	if( IsDropDownBox() && ( nFlags & WINDOW_POSSIZE_SIZE ) )
+	{
+		Size aPrefSz = mpFloatWin->GetPrefSize();
+		if ( ( nFlags & WINDOW_POSSIZE_HEIGHT ) && ( nHeight >= 2*mnDDHeight ) )
+			aPrefSz.Height() = nHeight-mnDDHeight;
+		if ( nFlags & WINDOW_POSSIZE_WIDTH )
+			aPrefSz.Width() = nWidth;
+		mpFloatWin->SetPrefSize( aPrefSz );
+
+		if ( IsAutoSizeEnabled() && ! (nFlags & WINDOW_POSSIZE_DROPDOWN) )
+			nHeight = mnDDHeight;
+	}
+=====================================================================
+Found a 9 line (106 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salgdi.h
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/inc/salgdi.h
+
+    virtual BOOL		unionClipRegion( long nX, long nY, long nWidth, long nHeight );
+    // draw --> LineColor and FillColor and RasterOp and ClipRegion
+    virtual void		drawPixel( long nX, long nY );
+    virtual void		drawPixel( long nX, long nY, SalColor nSalColor );
+    virtual void		drawLine( long nX1, long nY1, long nX2, long nY2 );
+    virtual void		drawRect( long nX, long nY, long nWidth, long nHeight );
+    virtual void		drawPolyLine( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void		drawPolygon( ULONG nPoints, const SalPoint* pPtAry );
+    virtual void		drawPolyPolygon( sal_uInt32 nPoly, const sal_uInt32* pPoints, PCONSTSALPOINT* pPtAry );
+=====================================================================
+Found a 8 line (106 tokens) duplication in the following files: 
+Starting at line 98 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/characterdata.cxx
+Starting at line 191 of /local/ooo-build/ooo-build/src/oog680-m3/unoxml/source/dom/characterdata.cxx
+
+            tmp2 += arg;
+            tmp2 += tmp.copy(offset+count, tmp.getLength() - (offset+count));
+            OUString oldValue((char*)m_aNodePtr->content, strlen((char*)m_aNodePtr->content), RTL_TEXTENCODING_UTF8);
+            xmlNodeSetContent(m_aNodePtr, (const xmlChar*)(OUStringToOString(tmp2, RTL_TEXTENCODING_UTF8).getStr()));
+            OUString newValue((char*)m_aNodePtr->content, strlen((char*)m_aNodePtr->content), RTL_TEXTENCODING_UTF8);
+            _dispatchEvent(oldValue, newValue);
+        }
+    }
+=====================================================================
+Found a 25 line (106 tokens) duplication in the following files: 
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydata.cxx
+Starting at line 887 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydata.cxx
+
+sal_Bool HierarchyEntry::remove()
+{
+	try
+	{
+		osl::Guard< osl::Mutex > aGuard( m_aMutex );
+
+		if ( !m_xConfigProvider.is() )
+			m_xConfigProvider = uno::Reference< lang::XMultiServiceFactory >(
+                m_xSMgr->createInstance( m_aServiceSpecifier ),
+				uno::UNO_QUERY );
+
+		if ( m_xConfigProvider.is() )
+		{
+			// Create parent's key. It must exist!
+
+            rtl::OUString aParentPath;
+			sal_Bool bRoot = sal_True;
+
+			sal_Int32 nPos = m_aPath.lastIndexOf( '/' );
+			if ( nPos != -1 )
+			{
+				// Skip "/Children" segment of the path, too.
+				nPos = m_aPath.lastIndexOf( '/', nPos - 1 );
+
+                OSL_ENSURE( nPos != -1,
+=====================================================================
+Found a 32 line (106 tokens) duplication in the following files: 
+Starting at line 1652 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 1834 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+    if ( !storeData( xData, xEnv ) )
+    {
+        uno::Any aProps
+            = uno::makeAny(beans::PropertyValue(
+                                  rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                                    "Uri")),
+                                  -1,
+                                  uno::makeAny(m_xIdentifier->
+                                                   getContentIdentifier()),
+                                  beans::PropertyState_DIRECT_VALUE));
+        ucbhelper::cancelCommandExecution(
+            ucb::IOErrorCode_CANT_WRITE,
+            uno::Sequence< uno::Any >(&aProps, 1),
+            xEnv,
+            rtl::OUString::createFromAscii( "Cannot store persistent data!" ),
+            this );
+        // Unreachable
+    }
+
+    m_eState = PERSISTENT;
+
+    if ( bNewId )
+    {
+        //loadData( m_pProvider, m_aUri, m_aProps );
+
+        aGuard.clear();
+        inserted();
+    }
+}
+
+//=========================================================================
+void Content::destroy( sal_Bool bDeletePhysical,
+=====================================================================
+Found a 27 line (106 tokens) duplication in the following files: 
+Starting at line 1028 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchycontent.cxx
+Starting at line 2258 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+
+					ContentRef xChild = (*it);
+
+					// Create new content identifier for the child...
+                    uno::Reference< ucb::XContentIdentifier > xOldChildId
+                        = xChild->getIdentifier();
+                    rtl::OUString aOldChildURL
+                        = xOldChildId->getContentIdentifier();
+                    rtl::OUString aNewChildURL
+						= aOldChildURL.replaceAt(
+										0,
+										aOldURL.getLength(),
+										xNewId->getContentIdentifier() );
+                    uno::Reference< ucb::XContentIdentifier > xNewChildId
+						= new ::ucbhelper::ContentIdentifier( 
+                            m_xSMgr, aNewChildURL );
+
+					if ( !xChild->exchangeIdentity( xNewChildId ) )
+						return sal_False;
+
+					++it;
+				}
+			}
+			return sal_True;
+		}
+	}
+
+    OSL_ENSURE( sal_False,
+=====================================================================
+Found a 24 line (106 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/gvfs/directory.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+
+DataSupplier::DataSupplier(
+                const uno::Reference< lang::XMultiServiceFactory >& rxSMgr,
+                const rtl::Reference< Content >& rContent,
+                sal_Int32 nOpenMode )
+: m_pImpl( new DataSupplier_Impl( rxSMgr, rContent, nOpenMode ) )
+{
+}
+
+//=========================================================================
+// virtual
+DataSupplier::~DataSupplier()
+{
+	delete m_pImpl;
+}
+
+//=========================================================================
+// virtual
+rtl::OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        rtl::OUString aId = m_pImpl->m_aResults[ nIndex ]->aURL;
+=====================================================================
+Found a 9 line (106 tokens) duplication in the following files: 
+Starting at line 431 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 456 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+bool INetMIME::isEncodedWordTokenChar(sal_uInt32 nChar)
+{
+	static const sal_Char aMap[128]
+		= { false, false, false, false, false, false, false, false,
+			false, false, false, false, false, false, false, false,
+			false, false, false, false, false, false, false, false,
+			false, false, false, false, false, false, false, false,
+			false,  true, false,  true,  true,  true,  true,  true, // !"#$%&'
+			false, false,  true,  true, false,  true, false, false, //()*+,-./
+=====================================================================
+Found a 12 line (106 tokens) duplication in the following files: 
+Starting at line 148 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/flddb.cxx
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/fldfunc.cxx
+
+		for(short i = rRg.nStart; i < rRg.nEnd; ++i)
+		{
+			nTypeId = GetFldMgr().GetTypeId(i);
+			nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(i));
+			aTypeLB.SetEntryData(nPos, (void*)nTypeId);
+		}
+	}
+	else
+	{
+		nTypeId = GetCurField()->GetTypeId();
+		nPos = aTypeLB.InsertEntry(GetFldMgr().GetTypeStr(GetFldMgr().GetPos(nTypeId)));
+		aTypeLB.SetEntryData(nPos, (void*)nTypeId);
+=====================================================================
+Found a 17 line (106 tokens) duplication in the following files: 
+Starting at line 792 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltbli.cxx
+Starting at line 1346 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltbli.cxx
+
+    vos::OGuard aGuard(Application::GetSolarMutex());
+
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
+															&aLocalName );
+		const OUString& rValue = xAttrList->getValueByIndex( i );
+		if( XML_NAMESPACE_TABLE == nPrefix )
+		{
+			if( IsXMLToken( aLocalName, XML_STYLE_NAME ) )
+				aStyleName = rValue;
+			else if( IsXMLToken( aLocalName, XML_NAME ) )
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 1098 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+Starting at line 2604 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+        throw uno::RuntimeException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "SwXTextTable: already attached to range." ) ), static_cast < cppu::OWeakObject * > ( this ) );
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc && nRows && nColumns)
+=====================================================================
+Found a 13 line (106 tokens) duplication in the following files: 
+Starting at line 1091 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undobj.cxx
+Starting at line 1120 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undobj.cxx
+
+BOOL SwUndo::FillSaveDataForFmt( const SwPaM& rRange, SwRedlineSaveDatas& rSData )
+{
+	if( rSData.Count() )
+		rSData.DeleteAndDestroy( 0, rSData.Count() );
+
+	SwRedlineSaveData* pNewData;
+	const SwPosition *pStt = rRange.Start(), *pEnd = rRange.End();
+	const SwRedlineTbl& rTbl = rRange.GetDoc()->GetRedlineTbl();
+	USHORT n = 0;
+	rRange.GetDoc()->GetRedline( *pStt, &n );
+	for( ; n < rTbl.Count(); ++n )
+	{
+		SwRedline* pRedl = rTbl[ n ];
+=====================================================================
+Found a 24 line (106 tokens) duplication in the following files: 
+Starting at line 1365 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/fecopy.cxx
+Starting at line 566 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+        SdrObjListIter aIter( rSdrPage );
+        while( aIter.IsMore() )
+        {
+            SdrOle2Obj* pOle2Obj = dynamic_cast< SdrOle2Obj* >( aIter.Next() );
+            if( pOle2Obj )
+            {
+                // found an ole2 shape
+                SdrObjList* pObjList = pOle2Obj->GetObjList();
+
+                // get its graphic
+                Graphic aGraphic;
+                pOle2Obj->Connect();
+                Graphic* pGraphic = pOle2Obj->GetGraphic();
+                if( pGraphic )
+                    aGraphic = *pGraphic;
+                pOle2Obj->Disconnect();
+
+                // create new graphic shape with the ole graphic and shape size
+                SdrGrafObj* pGraphicObj = new SdrGrafObj( aGraphic, pOle2Obj->GetCurrentBoundRect() );
+                // apply layer of ole2 shape at graphic shape
+                pGraphicObj->SetLayer( pOle2Obj->GetLayer() );
+
+                // replace ole2 shape with the new graphic object and delete the ol2 shape
+                SdrObject* pReplaced = pObjList->ReplaceObject( pGraphicObj, pOle2Obj->GetOrdNum() );
+=====================================================================
+Found a 15 line (106 tokens) duplication in the following files: 
+Starting at line 1452 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doctxm.cxx
+Starting at line 1493 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/doctxm.cxx
+
+	SwClientIter aIter( *pAuthFld );
+	SwFmtFld* pFmtFld = (SwFmtFld*)aIter.First( TYPE( SwFmtFld ));
+	for( ; pFmtFld; pFmtFld = (SwFmtFld*)aIter.Next() )
+	{
+		const SwTxtFld* pTxtFld = pFmtFld->GetTxtFld();
+		//undo
+		if(!pTxtFld)
+			continue;
+		const SwTxtNode& rTxtNode = pTxtFld->GetTxtNode();
+		::SetProgressState( 0, pDoc->GetDocShell() );
+
+//		const SwTxtNode* pChapterCompareNode = 0;
+
+		if( rTxtNode.GetTxt().Len() && rTxtNode.GetFrm() &&
+			rTxtNode.GetNodes().IsDocNodes() /*&&
+=====================================================================
+Found a 15 line (106 tokens) duplication in the following files: 
+Starting at line 1923 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accpara.cxx
+Starting at line 2003 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/access/accpara.cxx
+
+::com::sun::star::accessibility::TextSegment SwAccessibleParagraph::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 nTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+
+	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+
+    ::com::sun::star::accessibility::TextSegment aResult;
+    aResult.SegmentStart = -1;
+    aResult.SegmentEnd = -1;
+    const OUString rText = GetString();
+
+    // implement the silly specification that first position after
+    // text must return an empty string, rather than throwing an
+    // IndexOutOfBoundsException
+    if( nIndex == rText.getLength() )
+=====================================================================
+Found a 23 line (106 tokens) duplication in the following files: 
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+void SdrHdlGradient::CreateB2dIAObject()
+{
+	// first throw away old one
+	GetRidOfIAObject();
+	
+	if(pHdlList)
+	{
+		SdrMarkView* pView = pHdlList->GetView();
+
+		if(pView && !pView->areMarkHandlesHidden())
+		{
+			SdrPageView* pPageView = pView->GetSdrPageView();
+
+			if(pPageView)
+			{
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+=====================================================================
+Found a 15 line (106 tokens) duplication in the following files: 
+Starting at line 3116 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmshimp.cxx
+Starting at line 3162 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmshimp.cxx
+
+	size_t nBoundControl = 0;
+	for (sal_Int32 i=0; i<aControls.getLength(); ++i)
+	{
+		Reference< XBoundControl> xCtrl(pControls[i], UNO_QUERY);
+		if (!xCtrl.is())
+		{
+			// it may be a container of controls
+			Reference< XIndexAccess> xContainer(pControls[i], UNO_QUERY);
+			if (xContainer.is())
+			{	// no recursion. we only know top level control containers (e.g. grid controls)
+				for (sal_Int16 j=0; j<xContainer->getCount(); ++j)
+				{
+					xContainer->getByIndex(j) >>= xCtrl;
+					if (!xCtrl.is())
+						continue;
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tplneend.cxx
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tplneend.cxx
+
+	if( pLineEndList->Count() > 0 )
+	{
+		int nPos = aLbLineEnds.GetSelectEntryPos();
+
+        XLineEndEntry* pEntry = pLineEndList->GetLineEnd( nPos );
+
+		aEdtName.SetText( aLbLineEnds.GetSelectEntry() );
+
+		rXLSet.Put( XLineStartItem( String(), pEntry->GetLineEnd() ) );
+		rXLSet.Put( XLineEndItem( String(), pEntry->GetLineEnd() ) );
+		XOut.SetLineAttr( aXLineAttr.GetItemSet() );
+
+		// #i34740#
+		aCtlPreview.SetLineAttributes(aXLineAttr.GetItemSet());
+
+		aCtlPreview.Invalidate();
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 734 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+Starting at line 978 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/insdlg.cxx
+
+            SvGlobalName aClassId( SO3_IFRAME_CLASSID );
+            m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName );
+            if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED )
+                m_xObj->changeState( embed::EmbedStates::RUNNING );
+            xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY );
+        }
+
+        if ( m_xObj.is() )
+        {
+            try
+            {
+                BOOL bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE;
+                if ( bIPActive )
+                    m_xObj->changeState( embed::EmbedStates::RUNNING );
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 842 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hdft.cxx
+Starting at line 1450 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/page.cxx
+
+	if ( SFX_ITEM_SET ==
+		 rSet.GetItemState( GetWhich( SID_ATTR_PAGE_FOOTERSET ),
+							FALSE, (const SfxPoolItem**)&pSetItem ) )
+	{
+		const SfxItemSet& rFooterSet = pSetItem->GetItemSet();
+		const SfxBoolItem& rFooterOn =
+			(const SfxBoolItem&)rFooterSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+
+		if ( rFooterOn.GetValue() )
+		{
+			const SvxSizeItem& rSize = (const SvxSizeItem&)
+				rFooterSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) );
+			const SvxULSpaceItem& rUL = (const SvxULSpaceItem&)
+				rFooterSet.Get( GetWhich( SID_ATTR_ULSPACE ) );
+=====================================================================
+Found a 18 line (106 tokens) duplication in the following files: 
+Starting at line 568 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+Starting at line 622 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+
+                    aProp[i].Value >>= rStyle;
+                }
+                else if ( aProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_HELPURL ))
+                {
+                    aProp[i].Value >>= rHelpURL;
+                }
+                else if (aProp[i].Name.equalsAscii(ITEM_DESCRIPTOR_CONTAINER))
+                {
+                    aProp[i].Value >>= rSubMenu;
+                }
+                else if ( aProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_LABEL ))
+                {
+                    aProp[i].Value >>= rLabel;
+                }
+                else if ( aProp[i].Name.equalsAscii( ITEM_DESCRIPTOR_TYPE ))
+                {
+                    aProp[i].Value >>= rType;
+                }
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 5339 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 5000 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 }		// pccp
+};
+static const sal_uInt16 mso_sptCloudCalloutSegm[] =
+{
+	0x4000, 0x2016, 0x6001, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000,
+	0x4000, 0x2001, 0xaa00, 0x8000
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 769 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptDownArrowVert[] =	// adjustment1: x 0 - 21600
+{														// adjustment2: y 0 - 10800
+	{ 0 MSO_I, 0 },	{ 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 },
+	{ 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }
+};
+static const sal_uInt16 mso_sptDownArrowSegm[] =
+{
+	0x4000, 0x0006, 0x6001,	0x8000
+};
+static const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] =
+{
+	{ { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } }
+};
+static const mso_CustomShape msoDownArrow =
+=====================================================================
+Found a 19 line (106 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+void ToolboxController::bindListener()
+{
+    std::vector< Listener > aDispatchVector;
+    Reference< XStatusListener > xStatusListener;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        
+        if ( !m_bInitialized )
+            return;
+        
+        // Collect all registered command URL's and store them temporary
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+        if ( m_xServiceManager.is() && xDispatchProvider.is() )
+        {
+            xStatusListener = Reference< XStatusListener >( static_cast< OWeakObject* >( this ), UNO_QUERY );
+            URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+            while ( pIter != m_aListenerMap.end() )
+            {
+=====================================================================
+Found a 17 line (106 tokens) duplication in the following files: 
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/UriReferenceFactory.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/VndSunStarPkgUrlReferenceFactory.cxx
+
+    css::lang::XServiceInfo, css::uri::XVndSunStarPkgUrlReferenceFactory >
+{
+public:
+    explicit Factory(
+        css::uno::Reference< css::uno::XComponentContext > const & context):
+        m_context(context) {}
+
+    virtual rtl::OUString SAL_CALL getImplementationName()
+        throw (css::uno::RuntimeException);
+
+    virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & serviceName)
+        throw (css::uno::RuntimeException);
+
+    virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+    getSupportedServiceNames() throw (css::uno::RuntimeException);
+
+    virtual css::uno::Reference< css::uri::XUriReference > SAL_CALL
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/basedlgs.cxx
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/fldtdlg.cxx
+
+	aPoint.Y() = aRect.Bottom() - aSize.Height();
+
+	aPoint = OutputToScreenPixel( aPoint );
+
+	if ( aPos.X() > aPoint.X() )
+		aPos.X() = aPoint.X() ;
+	if ( aPos.Y() > aPoint.Y() )
+		aPos.Y() = aPoint.Y();
+
+	if ( aPos.X() < 0 ) aPos.X() = 0;
+	if ( aPos.Y() < 0 ) aPos.Y() = 0;
+
+	SetPosPixel( aPos );
+}
+=====================================================================
+Found a 21 line (106 tokens) duplication in the following files: 
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+Starting at line 964 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fupoor.cxx
+
+                    && EditEngine::IsSimpleCharInput(rKEvt))
+				{
+					DrawViewShell* pDrawViewShell = 
+                        static_cast<DrawViewShell*>(mpViewShell);
+					SdPage* pActualPage = pDrawViewShell->GetActualPage();
+					SdrTextObj* pCandidate = 0L;
+
+					if(pActualPage)
+					{
+						SdrObjListIter aIter(*pActualPage, IM_DEEPNOGROUPS);
+
+						while(aIter.IsMore() && !pCandidate)
+						{
+							SdrObject* pObj = aIter.Next();
+
+							if(pObj && pObj->ISA(SdrTextObj))
+							{
+								sal_uInt32 nInv(pObj->GetObjInventor());
+								sal_uInt16 nKnd(pObj->GetObjIdentifier());
+
+								if(SdrInventor == nInv && OBJ_TITLETEXT == nKnd)
+=====================================================================
+Found a 24 line (106 tokens) duplication in the following files: 
+Starting at line 232 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/animations/motionpathtag.cxx
+Starting at line 997 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+void SdrHdlColor::CreateB2dIAObject()
+{
+	// first throw away old one
+	GetRidOfIAObject();
+	
+	if(pHdlList)
+	{
+		SdrMarkView* pView = pHdlList->GetView();
+
+		if(pView && !pView->areMarkHandlesHidden())
+		{
+			SdrPageView* pPageView = pView->GetSdrPageView();
+
+			if(pPageView)
+			{
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					// const SdrPageViewWinRec& rPageViewWinRec = rPageViewWinList[b];
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+=====================================================================
+Found a 18 line (106 tokens) duplication in the following files: 
+Starting at line 719 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+Starting at line 778 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/shapeuno.cxx
+
+    else if ( aNameString.EqualsAscii( SC_UNONAME_VERTPOS ) )
+    {
+		SdrObject *pObj = GetSdrObject();
+		if (pObj)
+		{
+		    ScDrawLayer* pModel = (ScDrawLayer*)pObj->GetModel();
+		    SdrPage* pPage = pObj->GetPage();
+		    if ( pModel && pPage )
+		    {
+			    ScDocument* pDoc = pModel->GetDocument();
+			    if ( pDoc )
+			    {
+					SCTAB nTab = 0;
+					if ( lcl_GetPageNum( pPage, *pModel, nTab ) )
+					{
+                        uno::Reference<drawing::XShape> xShape( mxShapeAgg, uno::UNO_QUERY );
+                        if (xShape.is())
+                        {
+=====================================================================
+Found a 12 line (106 tokens) duplication in the following files: 
+Starting at line 1452 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+Starting at line 1533 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chart2uno.cxx
+
+    ::rtl::math::setNan( & fNAN );
+
+    const ScDocument* pDoc = m_pDocument;
+    sal_Int32 nCount = 0;
+    ScRangePtr p;
+    for ( p = m_xRanges->First(); p; p = m_xRanges->Next())
+    {
+        nCount += sal_Int32(p->aEnd.Col() - p->aStart.Col() + 1) *
+            (p->aEnd.Row() - p->aStart.Row() + 1) * (p->aEnd.Tab() -
+                                                     p->aStart.Tab() + 1);
+    }
+    uno::Sequence< double > aSeq( nCount);
+=====================================================================
+Found a 20 line (106 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/celllistsource.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellvaluebinding.cxx
+
+namespace calc
+{
+//.........................................................................
+
+#define PROP_HANDLE_BOUND_CELL  1
+
+    using namespace ::com::sun::star::uno;
+    using namespace ::com::sun::star::lang;
+    using namespace ::com::sun::star::table;
+    using namespace ::com::sun::star::text;
+    using namespace ::com::sun::star::sheet;
+    using namespace ::com::sun::star::container;
+    using namespace ::com::sun::star::beans;
+    using namespace ::com::sun::star::util;
+    using namespace ::com::sun::star::form::binding;
+
+    //=====================================================================
+    //= OCellValueBinding
+    //=====================================================================
+    DBG_NAME( OCellValueBinding )
+=====================================================================
+Found a 12 line (106 tokens) duplication in the following files: 
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx
+
+        uno::Reference<XAccessible> xAccParent = const_cast<ScAccessiblePreviewHeaderCell*>(this)->getAccessibleParent();
+        if (xAccParent.is())
+        {
+            uno::Reference<XAccessibleContext> xAccParentContext = xAccParent->getAccessibleContext();
+            uno::Reference<XAccessibleComponent> xAccParentComp (xAccParentContext, uno::UNO_QUERY);
+            if (xAccParentComp.is())
+            {
+                Rectangle aParentRect (VCLRectangle(xAccParentComp->getBounds()));
+	            aCellRect.setX(aCellRect.getX() - aParentRect.getX());
+	            aCellRect.setY(aCellRect.getY() - aParentRect.getY());
+            }
+        }
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 904 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1438 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	ScChangeActionState nActionState(SC_CAS_VIRGIN);
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 338 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/read.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/read.cxx
+
+                    case 0x1D:  rTabViewSett.ReadSelection( maStrm );   break;
+					case 0x22:	Rec1904(); break;		// 1904			[ 2345]
+                    case 0x26:
+                    case 0x27:
+                    case 0x28:
+                    case 0x29:  rPageSett.ReadMargin( maStrm );         break;
+                    case 0x2A:  rPageSett.ReadPrintHeaders( maStrm );   break;
+                    case 0x2B:  rPageSett.ReadPrintGridLines( maStrm ); break;
+					case 0x2F:							// FILEPASS		[ 2345]
+                        eLastErr = XclImpDecryptHelper::ReadFilepass( maStrm );
+                        if( eLastErr != ERRCODE_NONE )
+                            eAkt = Z_Ende;
+                        break;
+                    case 0x41:  rTabViewSett.ReadPane( maStrm );        break;
+					case 0x42:	Codepage(); break;		// CODEPAGE		[ 2345]
+					case 0x55:	DefColWidth(); break;
+=====================================================================
+Found a 20 line (106 tokens) duplication in the following files: 
+Starting at line 1754 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+Starting at line 1805 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/detfunc.cxx
+
+void ScDetectiveFunc::UpdateAllArrowColors()
+{
+	//	no undo actions necessary
+
+	ScDrawLayer* pModel = pDoc->GetDrawLayer();
+	if (!pModel)
+		return;
+
+	SCTAB nTabCount = pDoc->GetTableCount();
+	for (SCTAB nObjTab=0; nObjTab<nTabCount; nObjTab++)
+	{
+		SdrPage* pPage = pModel->GetPage(static_cast<sal_uInt16>(nObjTab));
+		DBG_ASSERT(pPage,"Page ?");
+		if (pPage)
+		{
+			SdrObjListIter aIter( *pPage, IM_FLAT );
+			SdrObject* pObject = aIter.Next();
+			while (pObject)
+			{
+				if ( pObject->GetLayer() == SC_LAYER_INTERN )
+=====================================================================
+Found a 29 line (106 tokens) duplication in the following files: 
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/document.cxx
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/document.cxx
+
+				pTab[i]->InsertCol( nStartCol, nStartRow, nEndRow, nSize );
+
+		if ( pChangeTrack && pChangeTrack->IsInDeleteUndo() )
+		{	// durch Restaurierung von Referenzen auf geloeschte Bereiche ist
+			// ein neues Listening faellig, bisherige Listener wurden in
+			// FormulaCell UpdateReference abgehaengt
+			StartAllListeners();
+		}
+		else
+        {   // Listeners have been removed in UpdateReference
+			for (i=0; i<=MAXTAB; i++)
+				if (pTab[i])
+                    pTab[i]->StartNeededListeners();
+            // #69592# at least all cells using range names pointing relative
+            // to the moved range must recalculate
+			for (i=0; i<=MAXTAB; i++)
+				if (pTab[i])
+					pTab[i]->SetRelNameDirty();
+		}
+		bRet = TRUE;
+	}
+	SetAutoCalc( bOldAutoCalc );
+	if ( bRet )
+		pChartListenerCollection->UpdateDirtyCharts();
+	return bRet;
+}
+
+
+BOOL ScDocument::InsertCol( const ScRange& rRange, ScDocument* pRefUndoDoc )
+=====================================================================
+Found a 29 line (106 tokens) duplication in the following files: 
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+Starting at line 368 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+
+                        new OUStringBuffer(26)}
+	};
+
+
+    sal_Bool res = sal_True;
+    sal_Int32 i;
+
+    for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+	sal_Int32 length = arrTestCase[i].input->getLength();
+        sal_Bool lastRes = (length == arrTestCase[i].expVal);
+        c_rtl_tres_state
+        (
+            hRtlTestResult,
+            lastRes,
+            arrTestCase[i].comments,
+            createName( pMeth, "getLength", i )
+
+        );
+	res &= lastRes;
+    }
+    c_rtl_tres_state_end( hRtlTestResult, "getLength");
+//    return ( res );
+}
+//------------------------------------------------------------------------
+// testing the method getCapacity()
+//------------------------------------------------------------------------
+
+extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getCapacity(
+=====================================================================
+Found a 28 line (106 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+
+				   			 		  		 sal_Char** pValueList, 
+				   			 		  		 sal_uInt32 len)
+{
+	ORegKey* 	pKey;
+	
+	if (hKey)
+	{
+		pKey = (ORegKey*)hKey;
+
+		if (pKey->isDeleted())
+			return REG_INVALID_KEY;
+	} else
+		return REG_INVALID_KEY;
+
+	if (pKey->isReadOnly())
+		return REG_REGISTRY_READONLY;
+
+	OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
+	if (keyName->length)
+	{
+		RegKeyHandle hSubKey;
+		ORegKey* pSubKey;
+		RegError _ret1 = pKey->openKey(keyName, &hSubKey);
+		if (_ret1)
+			return _ret1;
+
+		pSubKey = (ORegKey*)hSubKey;
+        _ret1 = pSubKey->setStringListValue(valueName, pValueList, len);
+=====================================================================
+Found a 11 line (106 tokens) duplication in the following files: 
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/suggestmgr.cxx
+Starting at line 645 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/suggestmgr.cxx
+
+         u16_u8(candidate, MAXSWUTF8L, candidate_utf, wl + 1);
+         for (int k=0; k < ns; k++)
+            if (strcmp(candidate,wlst[k]) == 0) cwrd = 0;
+         if ((cwrd) && check(candidate, strlen(candidate), cpdsuggest, &timer, &timelimit)) {
+            if (ns < maxSug) {
+                wlst[ns] = mystrdup(candidate);
+                if (wlst[ns] == NULL) return -1;
+                ns++;
+            } else return ns; 
+         }
+         if (!timelimit) return ns;
+=====================================================================
+Found a 17 line (106 tokens) duplication in the following files: 
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+	     SfxEntry * nptr = ptr->getNext();
+             for (; nptr != NULL; nptr = nptr->getNext()) {
+	         if (! isSubset(ptr->getKey(),nptr->getKey())) break;
+             }
+             ptr->setNextNE(nptr);
+             ptr->setNextEQ(NULL);
+             if ((ptr->getNext()) && isSubset(ptr->getKey(),(ptr->getNext())->getKey())) 
+                 ptr->setNextEQ(ptr->getNext());
+         }
+
+
+         // now clean up by adding smart search termination strings:
+         // if you are already a superset of the previous suffix
+         // but not a subset of the next, search can end here
+         // so set NextNE properly
+
+         ptr = (SfxEntry *) sStart[i];
+=====================================================================
+Found a 4 line (106 tokens) duplication in the following files: 
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (106 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/Base64Codec.cxx
+
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+ 0xf0,0xe3,0xe3,0x07,0xc0,0xe3,0xe3,0x01,0x80,0xc3,0xe1,0x00,0x00,0x06,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (106 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+
+static char ase_mask_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x9c,0x0f,0x00,0x00,0x3e,0x1f,
+=====================================================================
+Found a 9 line (106 tokens) duplication in the following files: 
+Starting at line 2276 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 2360 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+    padd(ascii("style:family"), sXML_CDATA, ascii("graphics"));
+    rstartEl(ascii("style:style"), rList);
+    pList->clear();
+
+    padd(ascii("fo:margin-left"), sXML_CDATA, ascii("0cm"));
+    padd(ascii("fo:margin-right"), sXML_CDATA, ascii("0cm"));
+    padd(ascii("fo:margin-top"), sXML_CDATA, ascii("0cm"));
+    padd(ascii("fo:margin-bottom"), sXML_CDATA, ascii("0cm"));
+    padd(ascii("fo:padding"), sXML_CDATA, ascii("0cm"));
+=====================================================================
+Found a 20 line (106 tokens) duplication in the following files: 
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itga/itga.cxx
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itga/itga.cxx
+
+							nBlue = (BYTE)( nRGB16 << 3 ) & 0xf8;
+							for ( USHORT i = 0; i < ( ( nRunCount & 0x7f ) + 1 ); i++ )
+							{
+								mpAcc->SetPixel( nY, nX, BitmapColor( nRed, nGreen, nBlue ) );
+								nX += nXAdd;
+								nXCount++;
+								if ( nXCount == mpFileHeader->nImageWidth )
+								{
+									nX = nXStart;
+									nXCount = 0;
+									nY += nYAdd;
+									nYCount++;
+								}
+							}
+						}
+						else						// a raw packet
+						{
+							for ( USHORT i = 0; i < ( ( nRunCount & 0x7f ) + 1 ); i++ )
+							{
+								*mpTGA >> nRGB16;
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 1695 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+Starting at line 1716 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+
+				const MetaTextArrayAction*  pA = (const MetaTextArrayAction*) pMA;
+				Point                       aPt( pA->GetPoint() );
+
+				if (aSrcFont.GetAlign()!=ALIGN_BASELINE)
+				{
+					VirtualDevice aVirDev;
+
+					if (aSrcFont.GetAlign()==ALIGN_TOP)
+						aPt.Y()+=(long)aVirDev.GetFontMetric(aSrcFont).GetAscent();
+					else
+						aPt.Y()-=(long)aVirDev.GetFontMetric(aSrcFont).GetDescent();
+				}
+				SetAttrForText();
+				String aStr( pA->GetText(),pA->GetIndex(),pA->GetLen() );
+=====================================================================
+Found a 18 line (106 tokens) duplication in the following files: 
+Starting at line 646 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+Starting at line 683 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+		OUString aLabel;
+
+		// read attributes for menu item
+		for ( sal_Int16 i=0; i< xAttrList->getLength(); i++ )
+		{
+			OUString aName = xAttrList->getNameByIndex( i );
+			OUString aValue = xAttrList->getValueByIndex( i );
+			if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_ID )))
+				aCommandId = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_LABEL )))
+				aLabel = aValue;
+			else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_HELPID )))
+				aHelpId = aValue;
+		}
+
+		if ( aCommandId.getLength() > 0 )
+		{
+            Sequence< PropertyValue > aMenuItem( 5 );
+=====================================================================
+Found a 29 line (106 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/statusbarcontrollerfactory.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uifactory/toolbarcontrollerfactory.cxx
+
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::container;
+using namespace ::com::sun::star::frame;
+
+//_________________________________________________________________________________________________________________
+//	Namespace
+//_________________________________________________________________________________________________________________
+// 
+
+namespace framework
+{
+
+// global function needed by both implementations
+static rtl::OUString getHashKeyFromStrings( const rtl::OUString& aCommandURL, const rtl::OUString& aModuleName )
+{
+    rtl::OUStringBuffer aKey( aCommandURL );
+    aKey.appendAscii( "-" );
+    aKey.append( aModuleName );
+    return aKey.makeStringAndClear();
+}
+
+
+//*****************************************************************************************************************
+//	Configuration access class for ToolbarControllerFactory implementation
+//*****************************************************************************************************************
+
+class ConfigurationAccess_ToolbarControllerFactory : // interfaces
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 1335 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 1051 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+
+void SAL_CALL UIConfigurationManager::insertSettings( const ::rtl::OUString& NewResourceURL, const Reference< XIndexAccess >& aNewData )
+throw ( ElementExistException, IllegalArgumentException, IllegalAccessException, RuntimeException )
+{
+    sal_Int16 nElementType = RetrieveTypeFromResourceURL( NewResourceURL );
+    
+    if (( nElementType == ::com::sun::star::ui::UIElementType::UNKNOWN ) || 
+        ( nElementType >= ::com::sun::star::ui::UIElementType::COUNT   ))
+        throw IllegalArgumentException();
+    else if ( m_bReadOnly )
+        throw IllegalAccessException();
+    else
+    {
+        ResetableGuard aGuard( m_aLock );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+=====================================================================
+Found a 20 line (106 tokens) duplication in the following files: 
+Starting at line 985 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/addonsoptions.cxx
+Starting at line 1072 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/addonsoptions.cxx
+
+	Sequence< OUString >	aNodePropNames( 6 );
+	OUString                aURL;
+
+	for ( sal_uInt32 i = 0; i < nCount; i++ )
+    {
+		OUString aMergeAddonInstructions( aAddonMergeNode + aAddonMergeNodesSeq[i] );
+
+        Sequence< OUString > aAddonInstMergeNodesSeq = GetNodeNames( aMergeAddonInstructions );
+        sal_uInt32           nCountAddons = aAddonInstMergeNodesSeq.getLength();
+
+        for ( sal_uInt32 j = 0; j < nCountAddons; j++ )
+	    {
+		    OUStringBuffer aMergeAddonInstructionBase( aMergeAddonInstructions );
+            aMergeAddonInstructionBase.append( m_aPathDelimiter );
+            aMergeAddonInstructionBase.append( aAddonInstMergeNodesSeq[j] );
+            aMergeAddonInstructionBase.append( m_aPathDelimiter );
+
+            // Create sequence for data access
+            OUStringBuffer aBuffer( aMergeAddonInstructionBase );
+		    aBuffer.append( m_aPropMergeToolbarNames[ OFFSET_MERGETOOLBAR_TOOLBAR ] );
+=====================================================================
+Found a 13 line (106 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/actiontriggercontainer.cxx
+Starting at line 146 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/rootactiontriggercontainer.cxx
+
+throw ( Exception,  RuntimeException )
+{
+	if ( aServiceSpecifier.equalsAscii( SERVICENAME_ACTIONTRIGGER ))
+		return (OWeakObject *)( new ActionTriggerPropertySet( m_xServiceManager ));
+	else if ( aServiceSpecifier.equalsAscii( SERVICENAME_ACTIONTRIGGERCONTAINER ))
+		return (OWeakObject *)( new ActionTriggerContainer( m_xServiceManager ));
+	else if ( aServiceSpecifier.equalsAscii( SERVICENAME_ACTIONTRIGGERSEPARATOR ))
+		return (OWeakObject *)( new ActionTriggerSeparatorPropertySet( m_xServiceManager ));
+	else
+		throw com::sun::star::uno::RuntimeException( OUString( RTL_CONSTASCII_USTRINGPARAM( "Unknown service specifier!" )), (OWeakObject *)this );
+}
+
+Reference< XInterface > SAL_CALL RootActionTriggerContainer::createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier, const Sequence< Any >& /*Arguments*/ ) 
+=====================================================================
+Found a 18 line (106 tokens) duplication in the following files: 
+Starting at line 2001 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+Starting at line 2245 of /local/ooo-build/ooo-build/src/oog680-m3/framework/collector/cmduicollector.cxx
+
+                    aOutputFileURL += OUString::createFromAscii( TBResourceModule_Mapping[i].pXMLPrefix );
+                    aOutputFileURL += OUString::createFromAscii( ".xml" );
+
+                    osl::File aXMLFile( aOutputFileURL );
+                    osl::File::RC nRet = aXMLFile.open( OpenFlag_Create|OpenFlag_Write );
+                    if ( nRet == osl::File::E_EXIST )
+                    {
+                        nRet = aXMLFile.open( OpenFlag_Write );
+                        if ( nRet == osl::File::E_None )
+                            nRet = aXMLFile.setSize( 0 );
+                    }
+
+                    if ( nRet == osl::FileBase::E_None )
+                    {
+                        sal_uInt64 nWritten;
+
+                        aXMLFile.write( XMLStart, strlen( XMLStart ), nWritten );
+                        aXMLFile.write( ToolBarDocType, strlen( ToolBarDocType ), nWritten );
+=====================================================================
+Found a 23 line (106 tokens) duplication in the following files: 
+Starting at line 679 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+Starting at line 3099 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/inspect/introspection.cxx
+
+				stoc_inspect::ImplIntrospection::getSupportedServiceNames_Static();
+			const OUString * pArray = rSNL.getConstArray();
+			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+				xNewKey->createKey( pArray[nPos] );
+			
+			return sal_True;
+		}
+		catch (InvalidRegistryException &)
+		{
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+		}
+	}
+	return sal_False;
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * )
+{
+	void * pRet = 0;
+	
+	if (pServiceManager && rtl_str_compare( pImplName, IMPLEMENTATION_NAME ) == 0)
+	{
+		Reference< XSingleServiceFactory > xFactory( createOneInstanceFactory(
+=====================================================================
+Found a 32 line (106 tokens) duplication in the following files: 
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/scanwin.cxx
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/twain.cxx
+
+			nCurState = 4;
+		}
+		break;
+
+		case( 4 ):
+		{
+			PFUNC( &aAppIdent, NULL, DG_CONTROL, DAT_IDENTITY, MSG_CLOSEDS, &aSrcIdent );
+			nCurState = 3;
+		}
+		break;
+
+		case( 3 ):
+		{
+			PFUNC( &aAppIdent, NULL, DG_CONTROL, DAT_PARENT, MSG_CLOSEDSM, &hTwainWnd );
+			nCurState = 2;
+		}
+		break;
+
+		case( 2 ):
+		{
+			delete pMod;
+			pMod = NULL;
+			nCurState = 1;
+		}
+		break;
+
+		default:
+		{
+			if( nEvent != TWAIN_EVENT_NONE )
+				aNotifyLink.Call( (void*) nEvent );
+
+			bFallback = FALSE;
+=====================================================================
+Found a 6 line (106 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/resource/oooresourceloader.cxx
+Starting at line 1195 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unoobj.cxx
+
+    virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    
+    // XNameAccess
+    virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw(::com::sun::star::uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 26 line (106 tokens) duplication in the following files: 
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+Starting at line 156 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+
+sal_Bool KillFile( const ::rtl::OUString& aURL, const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+{
+	if ( !xFactory.is() )
+		return sal_False;
+
+	sal_Bool bRet = sal_False;
+
+	try
+	{
+		uno::Reference < ucb::XSimpleFileAccess > xAccess( 
+				xFactory->createInstance ( 
+						::rtl::OUString::createFromAscii( "com.sun.star.ucb.SimpleFileAccess" ) ),
+				uno::UNO_QUERY );
+
+		if ( xAccess.is() )
+		{
+			xAccess->kill( aURL );
+			bRet = sal_True;
+		}
+	}
+	catch( uno::Exception& )
+	{
+	}
+
+	return bRet;
+}
+=====================================================================
+Found a 30 line (106 tokens) duplication in the following files: 
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/intercept.cxx
+
+									   aTitle);
+				
+			}
+			
+			for(sal_Int32 k = 0; k < aSeq.getLength(); ++k)
+			{
+				uno::Reference<frame::XStatusListener>
+					Control(aSeq[k],uno::UNO_QUERY);
+				if(Control.is())
+					Control->statusChanged(aStateEvent);
+				
+			}
+		}
+	}
+}
+
+
+void SAL_CALL
+Interceptor::addStatusListener( 
+	const uno::Reference< 
+	frame::XStatusListener >& Control, 
+	const util::URL& URL )
+	throw (
+		uno::RuntimeException
+	)
+{
+	if(!Control.is())
+		return;
+	
+	if( !m_bLink && URL.Complete == m_aInterceptedURL[0] ) 
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OOoEmbeddedObjectFactory::createInstanceUserInit" );
+
+	// the initialization is completelly controlled by user
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Sequence< beans::NamedValue > aObject = m_aConfigHelper.GetObjectPropsByClassID( aClassID );
+=====================================================================
+Found a 22 line (106 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testidlclass.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/testidlclass.cxx
+
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0
+											);
+
+	// Test all ten templates
+	x = ::cppu::createStandardClass(
+								rSMgr ,
+								sImplName,
+								Reference < XIdlClass > () ,
+								(XMultiServiceFactory * ) 0 ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+								(XServiceInfo * ) 0  ,
+=====================================================================
+Found a 19 line (106 tokens) duplication in the following files: 
+Starting at line 386 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MConnection.cxx
+Starting at line 153 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx
+
+IMPLEMENT_SERVICE_INFO(OConnection, "com.sun.star.sdbc.drivers.skeleton.OConnection", "com.sun.star.sdbc.Connection")
+
+// --------------------------------------------------------------------------------
+Reference< XStatement > SAL_CALL OConnection::createStatement(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+		
+	// create a statement
+	// the statement can only be executed once
+	Reference< XStatement > xReturn = new OStatement(this);
+	m_aStatements.push_back(WeakReferenceHelper(xReturn));
+	return xReturn;
+}
+// --------------------------------------------------------------------------------
+Reference< XPreparedStatement > SAL_CALL OConnection::prepareStatement( const ::rtl::OUString& _sSql ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 17 line (106 tokens) duplication in the following files: 
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FConnection.cxx
+Starting at line 318 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OConnection.cxx
+
+IMPLEMENT_SERVICE_INFO(OConnection, "com.sun.star.sdbc.drivers.odbc.OConnection", "com.sun.star.sdbc.Connection")
+
+// --------------------------------------------------------------------------------
+Reference< XStatement > SAL_CALL OConnection::createStatement(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+	Reference< XStatement > xReturn = new OStatement(this);
+	m_aStatements.push_back(WeakReferenceHelper(xReturn));
+	return xReturn;
+}
+// --------------------------------------------------------------------------------
+Reference< XPreparedStatement > SAL_CALL OConnection::prepareStatement( const ::rtl::OUString& sql ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 23 line (106 tokens) duplication in the following files: 
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AConnection.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FConnection.cxx
+
+	return OConnection_BASE::rBHelper.bDisposed;
+}
+// --------------------------------------------------------------------------------
+Reference< XDatabaseMetaData > SAL_CALL OConnection::getMetaData(  ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+
+
+	Reference< XDatabaseMetaData > xMetaData = m_xMetaData;
+	if(!xMetaData.is())
+	{
+		xMetaData = new ODatabaseMetaData(this);
+		m_xMetaData = xMetaData;
+	}
+
+	return xMetaData;
+}
+// --------------------------------------------------------------------------------
+void SAL_CALL OConnection::setReadOnly( sal_Bool readOnly ) throw(SQLException, RuntimeException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OConnection_BASE::rBHelper.bDisposed);
+=====================================================================
+Found a 23 line (106 tokens) duplication in the following files: 
+Starting at line 159 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/local_io/xmlexport.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/workben/local_io/xmlimport.cxx
+
+			m_aCondition.wait();
+		}
+};
+
+class Component: public ::cppu::WeakImplHelper1<lang::XComponent>
+{
+    virtual void SAL_CALL dispose(  )
+		throw(uno::RuntimeException)
+		{
+			OSL_ENSURE(0, "dispose");
+
+		}
+    virtual void SAL_CALL addEventListener( const uno::Reference< lang::XEventListener >& xListener )
+		throw(uno::RuntimeException)
+		{
+			OSL_ENSURE(0, "addEventListener");
+		}
+    virtual void SAL_CALL removeEventListener( const uno::Reference< lang::XEventListener >& aListener )
+		throw(uno::RuntimeException)
+		{
+			OSL_ENSURE(0, "removeEventListener");
+		}
+};
+=====================================================================
+Found a 29 line (106 tokens) duplication in the following files: 
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/xml/attributelist.cxx
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/attributelist.cxx
+
+struct TagAttribute_Impl
+{
+	TagAttribute_Impl(){}
+	TagAttribute_Impl( const OUString &aName, const OUString &aType,
+						 const OUString &aValue )
+	{
+		this->sName 	= aName;
+		this->sType 	= aType;
+		this->sValue 	= aValue;
+	}
+
+	OUString sName;
+	OUString sType;
+	OUString sValue;
+};
+
+struct AttributeList_Impl
+{
+	AttributeList_Impl()
+	{
+		// performance improvement during adding
+		vecAttribute.reserve(20);
+	}
+	::std::vector<struct TagAttribute_Impl> vecAttribute;
+};
+
+sal_Int16 SAL_CALL AttributeList::getLength(void) throw( ::com::sun::star::uno::RuntimeException )
+{
+	return sal::static_int_cast< sal_Int16 >(m_pImpl->vecAttribute.size());
+=====================================================================
+Found a 6 line (106 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/container/NamedPropertyValuesContainer.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/resource/oooresourceloader.cxx
+
+        virtual ::com::sun::star::uno::Any SAL_CALL getDirectElement( const ::rtl::OUString& key ) throw (::com::sun::star::uno::RuntimeException);
+
+        // XNameAccess (base of XResourceBundle)
+        virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames(  ) throw (::com::sun::star::uno::RuntimeException);
+        virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 23 line (106 tokens) duplication in the following files: 
+Starting at line 2338 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 3051 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+sal_Bool ExceptionType::dumpHFile(
+    FileStream& o, codemaker::cppumaker::Includes & includes)
+	throw( CannotDumpException )
+{
+	OString headerDefine(dumpHeaderDefine(o, "HDL"));
+	o << "\n";
+
+	addDefaultHIncludes(includes);
+	includes.dump(o, 0);
+	o << "\n";
+
+    if (codemaker::cppumaker::dumpNamespaceOpen(o, m_typeName, false)) {
+        o << "\n";
+    }
+
+	dumpDeclaration(o);
+	
+    if (codemaker::cppumaker::dumpNamespaceClose(o, m_typeName, false)) {
+        o << "\n";
+    }
+
+	o << "\nnamespace com { namespace sun { namespace star { namespace uno {\n"
+	  << "class Type;\n} } } }\n\n";
+=====================================================================
+Found a 24 line (106 tokens) duplication in the following files: 
+Starting at line 249 of /local/ooo-build/ooo-build/src/oog680-m3/cli_ure/source/climaker/climaker_emit.cxx
+Starting at line 585 of /local/ooo-build/ooo-build/src/oog680-m3/cli_ure/source/uno_bridge/cli_data.cxx
+
+    builder->Append(unoName->Substring(0, index +1 ));
+
+	//Find the first occurrence of ','
+	//If the parameter is a polymorphic struct then we neede to ignore everything
+	//between the brackets because it can also contain commas
+    //get the type list within < and >
+	int endIndex = unoName->Length - 1;
+	index++;
+	int cur = index;
+	int countParams = 0;
+	while (cur <= endIndex)
+	{
+		System::Char c = unoName->Chars[cur];
+		if (c == ',' || c == '>')
+		{
+			//insert a comma if needed
+			if (countParams != 0)
+				builder->Append(S",");
+			countParams++;
+			System::String * sParam = unoName->Substring(index, cur - index);
+			//skip the comma
+			cur++;
+			//the the index to the beginning of the next param
+			index = cur;
+=====================================================================
+Found a 23 line (106 tokens) duplication in the following files: 
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/StockChartTypeTemplate.cxx
+
+Reference< XChartType > SAL_CALL StockChartTypeTemplate::getChartTypeForNewSeries(
+        const uno::Sequence< Reference< chart2::XChartType > >& aFormerlyUsedChartTypes )
+    throw (uno::RuntimeException)
+{
+    Reference< chart2::XChartType > xResult;
+
+    try
+    {
+        Reference< lang::XMultiServiceFactory > xFact(
+            GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW );
+        xResult.set( xFact->createInstance(
+                         CHART2_SERVICE_NAME_CHARTTYPE_LINE ), uno::UNO_QUERY_THROW );
+        ChartTypeTemplate::copyPropertiesFromOldToNewCoordianteSystem( aFormerlyUsedChartTypes, xResult );
+    }
+    catch( uno::Exception & ex )
+    {
+        ASSERT_EXCEPTION( ex );
+    }
+
+    return xResult;
+}
+
+Reference< XDataInterpreter > SAL_CALL StockChartTypeTemplate::getDataInterpreter()
+=====================================================================
+Found a 14 line (106 tokens) duplication in the following files: 
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx
+
+void WrappedAxisLabelExistenceProperty::setPropertyValue( const Any& rOuterValue, const Reference< beans::XPropertySet >& xInnerPropertySet ) const
+                throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+    sal_Bool bNewValue = false;
+    if( ! (rOuterValue >>= bNewValue) )
+        throw lang::IllegalArgumentException( C2U("Has axis or grid properties require boolean values"), 0, 0 );
+
+    sal_Bool bOldValue = false;
+    getPropertyValue( xInnerPropertySet ) >>= bOldValue;
+
+    if( bOldValue == bNewValue )
+        return;
+
+    Reference< chart2::XDiagram > xDiagram( m_spChart2ModelContact->getChart2Diagram() );
+=====================================================================
+Found a 16 line (106 tokens) duplication in the following files: 
+Starting at line 358 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+Starting at line 347 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+
+uno::Sequence< beans::PropertyState > SAL_CALL UpDownBarWrapper::getPropertyStates( const uno::Sequence< ::rtl::OUString >& rNameSeq )
+                    throw (beans::UnknownPropertyException, uno::RuntimeException)
+{
+    Sequence< beans::PropertyState > aRetSeq;
+    if( rNameSeq.getLength() )
+    {
+        aRetSeq.realloc( rNameSeq.getLength() );
+        for(sal_Int32 nN=0; nN<rNameSeq.getLength(); nN++)
+        {
+            ::rtl::OUString aPropertyName( rNameSeq[nN] );
+            aRetSeq[nN] = this->getPropertyState( aPropertyName );
+        }
+    }
+    return aRetSeq;
+}
+void SAL_CALL UpDownBarWrapper::setPropertyToDefault( const ::rtl::OUString& rPropertyName )
+=====================================================================
+Found a 7 line (106 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper_texturefill.cxx
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper_texturefill.cxx
+
+                for( int i=0,p; i<nStepCount; ++i )
+                {
+                    // lerp color
+                    rOutDev.SetFillColor( 
+                        Color( (UINT8)(((nStepCount - i)*rColor1.GetRed() + i*rColor2.GetRed())/nStepCount),
+                               (UINT8)(((nStepCount - i)*rColor1.GetGreen() + i*rColor2.GetGreen())/nStepCount),
+                               (UINT8)(((nStepCount - i)*rColor1.GetBlue() + i*rColor2.GetBlue())/nStepCount) ) );
+=====================================================================
+Found a 25 line (106 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 169 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+
+  		(char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
+#endif
+  	char * pCppStackStart	= pCppStack;
+	
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+	
+	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+		{
+			pCppReturn = pUnoReturn; // direct way for simple types
+		}
+		else
+		{
+			// complex return via ptr
+			pCppReturn = *(void **)pCppStack
+                = (bridges::cpp_uno::shared::relatesToInterfaceType(
+                       pReturnTypeDescr )
+#ifdef BROKEN_ALLOCA
+                   ? malloc( pReturnTypeDescr->nSize )
+=====================================================================
+Found a 19 line (106 tokens) duplication in the following files: 
+Starting at line 231 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
+Starting at line 280 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+											pThis->getBridge()->getCpp2Uno() );
+				}
+			}
+			else // pure out
+			{
+				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getCpp2Uno() );
+			}
+			// destroy temp cpp param => cpp: every param was constructed
+			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_vpgen_clip_polygon.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_vpgen_clip_polyline.h
+
+            m_vertex(0)
+        {
+        }
+
+        void clip_box(double _x1, double _y1, double _x2, double _y2)
+        {
+            m_clip_box.x1 = _x1;
+            m_clip_box.y1 = _y1;
+            m_clip_box.x2 = _x2;
+            m_clip_box.y2 = _y2;
+            m_clip_box.normalize();
+        }
+
+
+        double x1() const { return m_clip_box.x1; }
+        double y1() const { return m_clip_box.y1; }
+        double x2() const { return m_clip_box.x2; }
+        double y2() const { return m_clip_box.y2; }
+
+        static bool auto_close()   { return false; }
+=====================================================================
+Found a 14 line (105 tokens) duplication in the following files: 
+Starting at line 155 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_resample_rgb.h
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_resample_rgba.h
+
+                    y_lr = ++m_wrap_mode_y;
+                } while(y_hr < filter_size);
+
+                fg[0] /= total_weight;
+                fg[1] /= total_weight;
+                fg[2] /= total_weight;
+                fg[3] /= total_weight;
+
+                if(fg[0] < 0) fg[0] = 0;
+                if(fg[1] < 0) fg[1] = 0;
+                if(fg[2] < 0) fg[2] = 0;
+                if(fg[3] < 0) fg[3] = 0;
+
+                if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
+=====================================================================
+Found a 29 line (105 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                        if(fg[2] > src_alpha) fg[2] = src_alpha;
+                    }
+                }
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)src_alpha;
+                ++span;
+                ++base_type::interpolator();
+
+            } while(--len);
+
+            return base_type::allocator().span();
+        }
+    };
+
+
+
+
+
+
+
+    //=================================================span_image_filter_rgb
+    template<class ColorT,
+             class Order, 
+             class Interpolator, 
+             class Allocator = span_allocator<ColorT> > 
+    class span_image_filter_rgb : 
+=====================================================================
+Found a 23 line (105 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+Starting at line 284 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+
+	if( xmlSecDSigCtxVerify( pDsigCtx , pNode ) == 0 )
+    {
+        if (pDsigCtx->status == xmlSecDSigStatusSucceeded)
+            aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED);
+        else
+            aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
+    }
+    else
+    {
+        aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
+    }
+
+    xmlSecDSigCtxDestroy( pDsigCtx ) ;
+    pSecEnv->destroyKeysManager( pMngr ) ; //i39448
+    
+    //Unregistered the stream/URI binding
+    if( xUriBinding.is() )
+        xmlUnregisterStreamInputCallbacks() ;
+    
+	
+    clearErrorRecorder();
+    return aTemplate;
+}
+=====================================================================
+Found a 23 line (105 tokens) duplication in the following files: 
+Starting at line 460 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/urlparameter.cxx
+Starting at line 530 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/urlparameter.cxx
+
+	(void)Environment;
+
+	if( isPicture() )
+	{
+		Reference< XInputStream > xStream;
+		Reference< XHierarchicalNameAccess > xNA =
+			m_pDatabases->jarFile( rtl::OUString::createFromAscii( "picture.jar" ),
+								   get_language() );
+		
+		rtl::OUString path = get_path();
+		if( xNA.is() )
+		{
+			try
+			{
+				Any aEntry = xNA->getByHierarchicalName( path );
+				Reference< XActiveDataSink > xSink;
+				if( ( aEntry >>= xSink ) && xSink.is() )
+					xStream = xSink->getInputStream();
+			}
+			catch ( NoSuchElementException & )
+			{
+			}
+		}
+=====================================================================
+Found a 11 line (105 tokens) duplication in the following files: 
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+				(::_tcslen(CXMergeFilter::m_pszPXLImportDesc) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	lRet = ::RegSetValueEx(hDataKey, _T("Import"), 0, REG_SZ, (LPBYTE)_T(""), (1 * sizeof(TCHAR)));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	lRet = ::RegSetValueEx(hDataKey, _T("NewExtension"), 0, REG_SZ, (LPBYTE)CXMergeFilter::m_pszPXLImportExt,
+=====================================================================
+Found a 11 line (105 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 401 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+				(::_tcslen(CXMergeFilter::m_pszPXLExportDesc) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	lRet = ::RegSetValueEx(hDataKey, _T("Export"), 0, REG_SZ, (LPBYTE)_T(""), (1 * sizeof(TCHAR)));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	lRet = ::RegSetValueEx(hDataKey, _T("NewExtension"), 0, REG_SZ, (LPBYTE)CXMergeFilter::m_pszPXLExportExt,
+=====================================================================
+Found a 12 line (105 tokens) duplication in the following files: 
+Starting at line 604 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/decoview.cxx
+Starting at line 634 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/decoview.cxx
+
+							 nCenterX+n2, nCenterY-n2 );
+			pDev->DrawRect( aRect );
+			Rectangle aTempRect = aRect;
+			aTempRect.Bottom() = nCenterY+n2;
+			aTempRect.Right() = aRect.Left();
+			pDev->DrawRect( aTempRect );
+			aTempRect.Left() = aRect.Right();
+			aTempRect.Right() = aRect.Right();
+			pDev->DrawRect( aTempRect );
+			aTempRect.Top() = aTempRect.Bottom();
+			aTempRect.Left() = aRect.Left();
+			pDev->DrawRect( aTempRect );
+=====================================================================
+Found a 15 line (105 tokens) duplication in the following files: 
+Starting at line 695 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 1171 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+	if ( pImpBmp )
+	{
+		TwoRect aPosAry;
+
+		aPosAry.mnSrcX = rSrcPtPixel.X();
+		aPosAry.mnSrcY = rSrcPtPixel.Y();
+		aPosAry.mnSrcWidth = rSrcSizePixel.Width();
+		aPosAry.mnSrcHeight = rSrcSizePixel.Height();
+		aPosAry.mnDestX = ImplLogicXToDevicePixel( rDestPt.X() );
+		aPosAry.mnDestY = ImplLogicYToDevicePixel( rDestPt.Y() );
+		aPosAry.mnDestWidth = ImplLogicWidthToDevicePixel( rDestSize.Width() );
+		aPosAry.mnDestHeight = ImplLogicHeightToDevicePixel( rDestSize.Height() );
+
+		// spiegeln via Koordinaten wollen wir nicht
+		const ULONG nMirrFlags = ImplAdjustTwoRect( aPosAry, pImpBmp->ImplGetSize() );
+=====================================================================
+Found a 34 line (105 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/cacher/cacheserv.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/xtempfile.cxx
+
+	aKeyName += OUString( RTL_CONSTASCII_USTRINGPARAM ( "/UNO/SERVICES" ) );
+
+	Reference< XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+// C functions to implement this as a component
+
+extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
+=====================================================================
+Found a 33 line (105 tokens) duplication in the following files: 
+Starting at line 188 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/export2.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/export2.cxx
+
+					sReturn += "&lt;";
+				break;
+
+				case '>':
+					sReturn += "&gt;";
+				break;
+
+				case '\"':
+					sReturn += "&quot;";
+				break;
+
+				case '\'':
+					sReturn += "&apos;";
+				break;
+
+				case '&':
+					if ((( i + 4 ) < rString.Len()) &&
+						( rString.Copy( i, 5 ) == "&amp;" ))
+							sReturn += rString.GetChar( i );
+					else
+						sReturn += "&amp;";
+				break;
+
+				default:
+					sReturn += rString.GetChar( i );
+				break;
+			}
+		}
+	}
+	rString = sReturn;
+}
+
+void Export::RemoveUTF8ByteOrderMarker( ByteString &rString ){
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 4269 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindows.cxx
+Starting at line 4575 of /local/ooo-build/ooo-build/src/oog680-m3/toolkit/source/awt/vclxwindows.cxx
+
+void VCLXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+{
+	::vos::OGuard aGuard( GetMutex() );
+
+	if ( GetWindow() )
+	{
+		sal_Bool bVoid = Value.getValueType().getTypeClass() == ::com::sun::star::uno::TypeClass_VOID;
+
+		sal_uInt16 nPropType = GetPropertyId( PropertyName );
+		switch ( nPropType )
+		{
+			case BASEPROPERTY_VALUE_DOUBLE:
+			{
+				if ( bVoid )
+				{
+					((LongCurrencyField*)GetWindow())->EnableEmptyFieldValue( sal_True );
+=====================================================================
+Found a 8 line (105 tokens) duplication in the following files: 
+Starting at line 444 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
+Starting at line 472 of /local/ooo-build/ooo-build/src/oog680-m3/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
+
+		TestDataElements* aGVret = xLBT->getValues(
+			& aRet->Bool, & aRet->Char, & aRet->Byte, & aRet->Short,
+            & aRet->UShort, & aRet->Long, & aRet->ULong, & aRet->Hyper,
+            & aRet->UHyper, & aRet->Float, & aRet->Double, & aRet->Enum,
+            & aRet->String, & aRet->Interface, & aRet->Any, & aRet->Sequence,
+            & aRet2 );
+		
+		bRet = check( compareData( aData, aRet ) && compareData( aData, aRet2 ) && compareData( aData, aGVret ), "getValues test" ) && bRet;
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 736 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/docst.cxx
+Starting at line 805 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/app/docst.cxx
+
+			SfxItemSet aTmpSet( aTmp.GetItemSet() );
+			if( SFX_STYLE_FAMILY_CHAR == nFamily )
+			{
+				const SfxPoolItem *pTmpBrush;
+				if( SFX_ITEM_SET == aTmpSet.GetItemState( RES_BACKGROUND,
+					FALSE, &pTmpBrush ) )
+				{
+					SvxBrushItem aTmpBrush( *((SvxBrushItem*)pTmpBrush) );
+					aTmpBrush.SetWhich( RES_CHRATR_BACKGROUND );
+					aTmpSet.Put( aTmpBrush );
+				}
+				aTmpSet.ClearItem( RES_BACKGROUND );
+			}
+			aTmp.SetItemSet( aTmpSet );
+		}
+		if(SFX_STYLE_FAMILY_PAGE == nFamily)
+			pView->InvalidateRulerPos();
+
+		if( bNew )
+			pBasePool->Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_CREATED, aTmp ) );
+=====================================================================
+Found a 12 line (105 tokens) duplication in the following files: 
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/wrtxml.cxx
+
+	comphelper::PropertyMapEntry aInfoMap[] =
+	{
+		{ "ProgressRange", sizeof("ProgressRange")-1, 0,
+			  &::getCppuType((sal_Int32*)0),
+			  beans::PropertyAttribute::MAYBEVOID, 0},
+		{ "ProgressMax", sizeof("ProgressMax")-1, 0,
+			  &::getCppuType((sal_Int32*)0),
+			  beans::PropertyAttribute::MAYBEVOID, 0},
+		{ "ProgressCurrent", sizeof("ProgressCurrent")-1, 0,
+			  &::getCppuType((sal_Int32*)0),
+			  beans::PropertyAttribute::MAYBEVOID, 0},
+		{ "WrittenNumberStyles", sizeof("WrittenNumberStyles")-1, 0,
+=====================================================================
+Found a 10 line (105 tokens) duplication in the following files: 
+Starting at line 2859 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 4087 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+	String sRange(rRange);
+	String sTLName(sRange.GetToken(0, ':'));
+	String sBRName(sRange.GetToken(1, ':'));
+	if(!sTLName.Len() || !sBRName.Len())
+		throw uno::RuntimeException();
+	SwRangeDescriptor aDesc;
+    aDesc.nTop = aDesc.nLeft = aDesc.nBottom = aDesc.nRight = -1;
+    lcl_GetCellPosition(sTLName, aDesc.nLeft, aDesc.nTop );
+    lcl_GetCellPosition(sBRName, aDesc.nRight, aDesc.nBottom );
+    aDesc.Normalize();
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/trvlfrm.cxx
+Starting at line 505 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/trvlfrm.cxx
+
+		const SwFrm *pFrm = Lower();
+		while ( pFrm && !bRet )
+		{
+			pFrm->Calc();
+			if ( pFrm->Frm().IsInside( rPoint ) )
+			{
+				bRet = pFrm->GetCrsrOfst( pPos, rPoint, pCMS );
+				if ( pCMS && pCMS->bStop )
+					return FALSE;
+			}
+			pFrm = pFrm->GetNext();
+		}
+		if ( !bRet )
+		{
+			Point *pPoint = pCMS && pCMS->pFill ? new Point( rPoint ) : NULL;
+			const SwCntntFrm *pCnt = GetCntntPos(
+											rPoint, TRUE, FALSE, FALSE, pCMS );
+=====================================================================
+Found a 21 line (105 tokens) duplication in the following files: 
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/objectformattertxtfrm.cxx
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/objectformattertxtfrm.cxx
+
+                 bInFollow )
+            // <--
+            {
+                bool bInsert( true );
+                sal_uInt32 nToPageNum( 0L );
+                const SwDoc& rDoc = *(GetPageFrm().GetFmt()->GetDoc());
+                if ( SwLayouter::FrmMovedFwdByObjPos(
+                                        rDoc, mrAnchorTxtFrm, nToPageNum ) )
+                {
+                    if ( nToPageNum < pAnchorPageFrm->GetPhyPageNum() )
+                        SwLayouter::RemoveMovedFwdFrm( rDoc, mrAnchorTxtFrm );
+                    else
+                        bInsert = false;
+                }
+                if ( bInsert )
+                {
+                    SwLayouter::InsertMovedFwdFrm( rDoc, mrAnchorTxtFrm,
+                                                   pAnchorPageFrm->GetPhyPageNum() );
+                    mrAnchorTxtFrm.InvalidatePos();
+                    bSuccess = false;
+                    _InvalidatePrevObjs( *pObj );
+=====================================================================
+Found a 21 line (105 tokens) duplication in the following files: 
+Starting at line 1407 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/fetab.cxx
+Starting at line 1446 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/frmedt/fetab.cxx
+
+	const SwTableNode *pTblNd = IsCrsrInTbl();
+	if( !pTblNd || pTblNd->GetTable().IsTblComplex() )
+		return FALSE;
+
+	SwSelBoxes aBoxes;
+
+	if ( !IsTableMode() )		// falls Crsr noch nicht akt. sind
+		GetCrsr();
+
+	// gesamte Tabelle oder nur auf die akt. Selektion
+	if( IsTableMode() )
+		::GetTblSelCrs( *this, aBoxes );
+	else
+	{
+		const SwTableSortBoxes& rTBoxes = pTblNd->GetTable().GetTabSortBoxes();
+		for( USHORT n = 0; n < rTBoxes.Count(); ++n )
+		{
+			SwTableBox* pBox = rTBoxes[ n ];
+			aBoxes.Insert( pBox );
+		}
+	}
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/layctrl.cxx
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/layctrl.cxx
+
+    SfxPopupWindow( nId, rFrame, WB_SYSTEMWINDOW ),
+    bInitialKeyInput(TRUE),
+    m_bMod1(FALSE),
+    rTbx(rParentTbx),
+    mxFrame(rFrame),
+    maCommand( rCmd )
+{
+	const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
+	svtools::ColorConfig aColorConfig;
+	aLineColor = Color( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
+	aHighlightLineColor = rStyles.GetHighlightTextColor();
+	aFillColor = rStyles.GetWindowColor();
+	aHighlightFillColor = rStyles.GetHighlightColor();
+
+	nTextHeight = GetTextHeight()+1;
+	SetBackground();
+	Font aFont( GetFont() );
+=====================================================================
+Found a 26 line (105 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+    eKind(eNewKind),
+    nDrehWink(0),
+    nObjHdlNum(0),
+    nPolyNum(0),
+    nPPntNum(0),
+    nSourceHdlNum(0),
+    bSelect(FALSE),
+    b1PixMore(FALSE),
+    bPlusHdl(FALSE)
+
+{
+	if(!pSimpleSet)
+		pSimpleSet = new SdrHdlBitmapSet(SIP_SA_MARKERS);
+	DBG_ASSERT(pSimpleSet, "Could not construct SdrHdlBitmapSet()!");
+	
+	if(!pModernSet)
+		pModernSet = new SdrHdlBitmapSet(SIP_SA_FINE_MARKERS);
+	DBG_ASSERT(pModernSet, "Could not construct SdrHdlBitmapSet()!");
+
+	// #101928#
+	if(!pHighContrastSet)
+		pHighContrastSet = new SdrHdlBitmapSet(SIP_SA_ACCESSIBILITY_MARKERS);
+	DBG_ASSERT(pHighContrastSet, "Could not construct SdrHdlBitmapSet()!");
+}
+
+SdrHdl::~SdrHdl()
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 5679 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 5911 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_ScrollBar::WriteContents(
+        SvStorageStreamRef &rObj,
+        const uno::Reference< beans::XPropertySet> &rPropSet,
+        const awt::Size& rSize )
+{
+    if( !rObj.Is() )
+        return sal_False;
+
+    mnBlockFlags = 0x00000008;
+    nWidth = rSize.Width;
+    nHeight = rSize.Height;
+
+    GetInt32Property( mnForeColor, rPropSet, WW8_ASCII2STR( "SymbolColor" ),     0x00000001 );
+    GetInt32Property( mnBackColor, rPropSet, WW8_ASCII2STR( "BackgroundColor" ), 0x00000002 );
+    GetBoolProperty(  mbEnabled,   rPropSet, WW8_ASCII2STR( "Enabled" ),         0x00000304 );
+    GetInt32Property( mnMin,       rPropSet, WW8_ASCII2STR( "ScrollValueMin" ),  0x00000020 );
+=====================================================================
+Found a 30 line (105 tokens) duplication in the following files: 
+Starting at line 2189 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2819 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4986 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+		0x6B, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x78, 0x00,
+		0x31, 0x00, 0x00, 0x00, 0x00, 0x00
+		};
+	{
+	SvStorageStreamRef xStor2( rObj->OpenSotStream( C2S("\3OCXNAME")));
+	xStor2->Write(aOCXNAME,sizeof(aOCXNAME));
+	DBG_ASSERT((xStor2.Is() && (SVSTREAM_OK == xStor2->GetError())),"damn");
+	}
+/*
+	static sal_uInt8 __READONLY_DATA aTest[] = {
+		0x00, 0x02, 0x34, 0x00, 0x46, 0x01, 0xC0, 0x80,
+		0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+		0x01, 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x80,
+		0xE2, 0x0E, 0x00, 0x00, 0x95, 0x02, 0x00, 0x00,
+		0x30, 0x69, 0x1D, 0x00, 0x43, 0x68, 0x65, 0x63,
+		0x6B, 0x42, 0x6F, 0x78, 0x31, 0x20, 0x52, 0x6F,
+		0x00, 0x02, 0x20, 0x00, 0x35, 0x00, 0x00, 0x00,
+		0x0F, 0x00, 0x00, 0x80, 0xC3, 0x00, 0x00, 0x00,
+		0x00, 0x02, 0x00, 0x00, 0x54, 0x69, 0x6D, 0x65,
+		0x73, 0x20, 0x4E, 0x65, 0x77, 0x20, 0x52, 0x6F,
+		0x6D, 0x61, 0x6E, 0x00,
+	};
+*/
+	SvStorageStreamRef xContents( rObj->OpenSotStream( C2S("contents")));
+	return WriteContents(xContents, rPropSet, rSize);
+}
+
+
+sal_Bool OCX_FontData::Read(SvStorageStream *pS)
+=====================================================================
+Found a 14 line (105 tokens) duplication in the following files: 
+Starting at line 1723 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit2.cxx
+Starting at line 1796 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit2.cxx
+
+	BOOL bScriptChange = FALSE;
+
+	if ( rPaM.GetNode()->Len() )
+	{
+		USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
+		ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
+		if ( !pParaPortion->aScriptInfos.Count() )
+			((ImpEditEngine*)this)->InitScriptTypes( nPara );
+
+		ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
+		USHORT nPos = rPaM.GetIndex();
+		for ( USHORT n = 0; n < rTypes.Count(); n++ )
+		{
+			if ( rTypes[n].nStartPos == nPos )
+=====================================================================
+Found a 15 line (105 tokens) duplication in the following files: 
+Starting at line 1146 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1037 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptBentUpArrowVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
+{															// adjustment3 : y 0 - 21600
+	{ 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },
+	{ 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 },
+	{ 0, 21600 }
+};
+static const sal_uInt16 mso_sptBentUpArrowSegm[] =
+{
+	0x4000, 0x0008, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
+{
+	{ 0x2000,	DFF_Prop_adjustValue, 0, 0 },		// 0
+=====================================================================
+Found a 29 line (105 tokens) duplication in the following files: 
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+Starting at line 723 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+												 uno::Reference< io::XInputStream >(),
+												 aCaught );
+	}
+
+	return xResult;
+}
+
+//-----------------------------------------------
+uno::Reference< io::XStream > SAL_CALL FSStorage::cloneStreamElement( const ::rtl::OUString& aStreamName )
+=====================================================================
+Found a 25 line (105 tokens) duplication in the following files: 
+Starting at line 739 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+Starting at line 817 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+
+	e.m_aKey = rDstKey;
+
+	// Find 'Destination' NodePage.
+	storeError eErrCode = find (e, *m_pNode[0]);
+	if (eErrCode != store_E_None)
+		return eErrCode;
+
+	// Find 'Destination' Index.
+	sal_uInt16 i = m_pNode[0]->find(e), n = m_pNode[0]->usageCount();
+	if (!(i < n))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Check for exact match.
+	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+		
+	// Existing entry. Check address.
+	e = m_pNode[0]->m_pData[i];
+	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+=====================================================================
+Found a 19 line (105 tokens) duplication in the following files: 
+Starting at line 507 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/source/engine/smilfunctionparser.cxx
+Starting at line 1125 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx
+
+            BOOST_SPIRIT_DEBUG_RULE(ternaryFunction);
+            BOOST_SPIRIT_DEBUG_RULE(identifier);
+        }
+
+        const ::boost::spirit::rule< ScannerT >& start() const
+        {
+            return additiveExpression;
+        }
+        
+    private:
+        // the constituents of the Spirit arithmetic expression grammar. 
+        // For the sake of readability, without 'ma' prefix.
+        ::boost::spirit::rule< ScannerT >	additiveExpression;
+		::boost::spirit::rule< ScannerT >	multiplicativeExpression;
+		::boost::spirit::rule< ScannerT >	unaryExpression;
+		::boost::spirit::rule< ScannerT >	basicExpression;
+		::boost::spirit::rule< ScannerT >	unaryFunction;
+		::boost::spirit::rule< ScannerT >	binaryFunction;
+		::boost::spirit::rule< ScannerT >	ternaryFunction;
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/shell/qa/recent_docs.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/shell/qa/recent_docs.cxx
+
+        int ret = system("rm $HOME/.recently-used");        
+                
+		rtl::OUString url = rtl::OUString::createFromAscii("file:///home_athene/test.sxw");
+        syssh::AddToRecentDocumentList(url, SXW_MIME_TYPE);                                    
+        
+        url = rtl::OUString::createFromAscii("file:///home_athene/test.sxc");
+        syssh::AddToRecentDocumentList(url, SXC_MIME_TYPE);                                    
+        
+        url = rtl::OUString::createFromAscii("file:///home_athene/test.sxi");
+        syssh::AddToRecentDocumentList(url, SXI_MIME_TYPE);                              
+
+        url = rtl::OUString::createFromAscii("file:///home_athene/test.sxd");
+        syssh::AddToRecentDocumentList(url, SXD_MIME_TYPE);                              
+
+        url = rtl::OUString::createFromAscii("file:///home_athene/test.sxm");
+        syssh::AddToRecentDocumentList(url, SXM_MIME_TYPE); 
+=====================================================================
+Found a 50 line (105 tokens) duplication in the following files: 
+Starting at line 839 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docvor.cxx
+Starting at line 900 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/docvor.cxx
+
+BOOL SfxOrganizeListBox_Impl::NotifyCopying(SvLBoxEntry *pTarget,
+										SvLBoxEntry* pSource,
+										SvLBoxEntry *&pNewParent,
+										ULONG &rIdx)
+/*  [Beschreibung]
+
+	Benachrichtigung, da"s ein Eintrag kopiert werden soll
+	(SV-Handler)
+
+	[Parameter]
+
+	SvLBoxEntry* pTarget        Ziel-Eintrag, auf den kopiert werden soll
+	SvLBoxEntry *pSource        Quell-Eintrag, der kopiert werden soll
+	SvLBoxEntry *&pNewParent    der Parent der an der Zielposition erzeugten
+								Eintrags (Out-Parameter)
+	ULONG &rIdx                 Index des Zieleintrags
+
+
+	[Returnwert]                BOOL: Erfolg oder Mi"serfolg
+
+	[Querverweise]
+
+	<SfxOrganizeListBox_Impl::MoveOrCopyTemplates(SvLBox *pSourceBox,
+											SvLBoxEntry *pSource,
+											SvLBoxEntry* pTarget,
+											SvLBoxEntry *&pNewParent,
+											ULONG &rIdx,
+											BOOL bCopy)>
+	<SfxOrganizeListBox_Impl::MoveOrCopyContents(SvLBox *pSourceBox,
+											SvLBoxEntry *pSource,
+											SvLBoxEntry* pTarget,
+											SvLBoxEntry *&pNewParent,
+											ULONG &rIdx,
+											BOOL bCopy)>
+	<BOOL SfxOrganizeListBox_Impl::NotifyMoving(SvLBoxEntry *pTarget,
+											SvLBoxEntry* pSource,
+											SvLBoxEntry *&pNewParent,
+											ULONG &rIdx)>
+*/
+{
+	BOOL bOk =  FALSE;
+	SvLBox* pSourceBox = GetSourceView();
+	if ( !pSourceBox )
+		pSourceBox = pDlg->pSourceView;
+	DBG_ASSERT( pSourceBox, "no source view" );
+	if ( !pTarget )
+		pTarget = pDlg->pTargetEntry;
+	if ( pSourceBox->GetModel()->GetDepth( pSource ) <= GetDocLevel() &&
+					 GetModel()->GetDepth( pTarget ) <= GetDocLevel() )
+		bOk = MoveOrCopyTemplates( pSourceBox, pSource, pTarget, pNewParent, rIdx, TRUE );
+=====================================================================
+Found a 23 line (105 tokens) duplication in the following files: 
+Starting at line 1668 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/tabdlg.cxx
+Starting at line 1121 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/iconcdlg.cxx
+
+			const USHORT* pTmpRanges = (pData->fnGetRanges)();
+			const USHORT* pIter = pTmpRanges;
+
+			USHORT nLen;
+			for( nLen = 0; *pIter; ++nLen, ++pIter )
+				;
+			aUS.Insert( pTmpRanges, nLen, aUS.Count() );
+		}
+	}
+
+	// remove double Id's
+#ifndef TF_POOLABLE
+	if ( rPool.HasMap() )
+#endif
+	{
+		nCount = aUS.Count();
+
+		for ( i = 0; i < nCount; ++i )
+			aUS[i] = rPool.GetWhich( aUS[i] );
+	}
+
+	// sortieren
+	if ( aUS.Count() > 1 )
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 8 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/quickstarter/quickstarter.cxx
+Starting at line 33 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/regpython/pythonmsi.cxx
+
+std::string GetOfficeInstallationPath(MSIHANDLE handle)
+{
+    std::string progpath;
+    DWORD sz = 0;
+    LPTSTR dummy = TEXT("");
+    
+    if (MsiGetProperty(handle, TEXT("INSTALLLOCATION"), dummy, &sz) == ERROR_MORE_DATA)
+    {
+        sz++; // space for the final '\0'
+        DWORD nbytes = sz * sizeof(TCHAR);
+        LPTSTR buff = reinterpret_cast<LPTSTR>(_alloca(nbytes));
+        ZeroMemory(buff, nbytes);
+        MsiGetProperty(handle, TEXT("INSTALLLOCATION"), buff, &sz);
+        progpath = buff;            
+    }
+    return progpath;
+}
+=====================================================================
+Found a 11 line (105 tokens) duplication in the following files: 
+Starting at line 2765 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 2816 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+			SdDrawDocument* pDoc = (SdDrawDocument*)SvxFmDrawPage::mpPage->GetModel();
+			SfxStyleSheetBasePool* pSSPool = (SfxStyleSheetBasePool*)pDoc->GetStyleSheetPool();
+			if(pSSPool)
+			{
+				String aLayoutName( static_cast< SdPage* >(SvxFmDrawPage::mpPage)->GetLayoutName() );
+				aLayoutName.Erase( aLayoutName.Search(String(RTL_CONSTASCII_USTRINGPARAM(SD_LT_SEPARATOR)))+4);
+				aLayoutName += String(SdResId(STR_LAYOUT_BACKGROUND));
+				SfxStyleSheetBase* pStyleSheet = pSSPool->Find( aLayoutName, (SfxStyleFamily)SD_LT_FAMILY);
+
+				if( pStyleSheet )
+				{
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 257 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fuconstr.cxx
+Starting at line 755 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/func/fusel.cxx
+
+            if (!rMEvt.IsShift() && !rMEvt.IsMod1() && !rMEvt.IsMod2() &&
+                !bSelectionChanged                   &&
+                Abs(aPnt.X() - aMDPos.X()) < nDrgLog &&
+                Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog)
+            {
+                /**************************************************************
+                * Toggle zw. Selektion und Rotation
+                **************************************************************/
+                SdrObject* pSingleObj = NULL;
+                ULONG nMarkCount = mpView->GetMarkedObjectList().GetMarkCount();
+
+                if (nMarkCount==1)
+                {
+                    pSingleObj = mpView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+                }
+
+                if (nSlotId == SID_OBJECT_SELECT
+=====================================================================
+Found a 18 line (105 tokens) duplication in the following files: 
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/animations/DialogListBox.cxx
+Starting at line 2427 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/ilstbox.cxx
+
+long ImplListBox::Notify( NotifyEvent& rNEvt )
+{
+	long nDone = 0;
+	if ( rNEvt.GetType() == EVENT_COMMAND )
+	{
+		const CommandEvent& rCEvt = *rNEvt.GetCommandEvent();
+		if ( rCEvt.GetCommand() == COMMAND_WHEEL )
+		{
+			const CommandWheelData* pData = rCEvt.GetWheelData();
+			if( !pData->GetModifier() && ( pData->GetMode() == COMMAND_WHEEL_SCROLL ) )
+			{
+				nDone = HandleScrollCommand( rCEvt, mpHScrollBar, mpVScrollBar );
+			}
+		}
+	}
+
+	return nDone ? nDone : Window::Notify( rNEvt );
+}
+=====================================================================
+Found a 14 line (105 tokens) duplication in the following files: 
+Starting at line 878 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+Starting at line 1169 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/styleuno.cxx
+
+			ScDocument* pDoc = pDocShell->GetDocument();
+			if ( eFamily == SFX_STYLE_FAMILY_PARA )
+			{
+				//	Zeilenhoehen anpassen...
+
+				VirtualDevice aVDev;
+				Point aLogic = aVDev.LogicToPixel( Point(1000,1000), MAP_TWIP );
+				double nPPTX = aLogic.X() / 1000.0;
+				double nPPTY = aLogic.Y() / 1000.0;
+				Fraction aZoom(1,1);
+				pDoc->StyleSheetChanged( pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom );
+
+				pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT );
+				pDocShell->SetDocumentModified();
+=====================================================================
+Found a 18 line (105 tokens) duplication in the following files: 
+Starting at line 1551 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldpimp.cxx
+Starting at line 1605 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmldpimp.cxx
+
+	pDataPilotGroup(pTempDataPilotGroup)
+{
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		rtl::OUString sAttrName = xAttrList->getNameByIndex( i );
+		rtl::OUString aLocalName;
+		USHORT nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName );
+		rtl::OUString sValue = xAttrList->getValueByIndex( i );
+
+        if (nPrefix == XML_NAMESPACE_TABLE)
+        {
+            if (IsXMLToken(aLocalName, XML_NAME))
+                sName = sValue;
+        }
+	}
+}
+=====================================================================
+Found a 7 line (105 tokens) duplication in the following files: 
+Starting at line 54 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xcl97/xcl97dum.cxx
+Starting at line 61 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xcl97/xcl97dum.cxx
+
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+=====================================================================
+Found a 19 line (105 tokens) duplication in the following files: 
+Starting at line 1137 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabsrc.cxx
+Starting at line 1585 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabsrc.cxx
+Starting at line 1766 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dptabsrc.cxx
+
+uno::Any SAL_CALL ScDPLevels::getByName( const rtl::OUString& aName )
+			throw(container::NoSuchElementException,
+					lang::WrappedTargetException, uno::RuntimeException)
+{
+	long nCount = getCount();
+	for (long i=0; i<nCount; i++)
+		if ( getByIndex(i)->getName() == aName )
+		{
+			uno::Reference<container::XNamed> xNamed = getByIndex(i);
+			uno::Any aRet;
+			aRet <<= xNamed;
+			return aRet;
+		}
+
+	throw container::NoSuchElementException();
+//    return uno::Any();
+}
+
+uno::Sequence<rtl::OUString> SAL_CALL ScDPLevels::getElementNames() throw(uno::RuntimeException)
+=====================================================================
+Found a 29 line (105 tokens) duplication in the following files: 
+Starting at line 1392 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+Starting at line 786 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_SocketAddr.cxx
+
+			::osl::SocketAddr::resolveHostname( rtl::OUString::createFromAscii("127.0.0.1"), saSocketAddr );
+			::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 );
+			sal_Bool bOK = sal_False;
+
+			 if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) )
+			 	bOK = sal_True;
+			
+			CPPUNIT_ASSERT_MESSAGE( "test for resolveHostname() function: try to resolve localhost to 127.0.0.1.", 
+									  sal_True == bOK );
+		}
+		
+		CPPUNIT_TEST_SUITE( resolveHostname );
+		CPPUNIT_TEST( resolveHostname_001 ); 
+		CPPUNIT_TEST_SUITE_END( );
+		
+	}; // class resolveHostname
+
+	
+	/** testing the method:
+		static inline sal_Int32 SAL_CALL getServicePort(
+			const ::rtl::OUString& strServiceName,
+			const ::rtl::OUString & strProtocolName= ::rtl::OUString::createFromAscii( "tcp" ) );		
+	*/
+
+	class gettheServicePort : public CppUnit::TestFixture
+	{
+	public:
+		void gettheServicePort_001()
+		{
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 268 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+Starting at line 3467 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+			::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
+			::osl::StreamSocket ssConnection;
+			
+			/// launch server socket 
+			sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
+			sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
+			CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.",  sal_True == bOK2 );
+			asAcceptorSocket.enableNonBlockingMode( sal_True );
+
+			/// launch client socket 
+			csConnectorSocket.connect( saTargetSocketAddr, pTimeout );   /// connecting to server...
+
+			oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection, saPeerSocketAddr); /// waiting for incoming connection...
+			
+			CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept, accept with peer address.", 
+									( sal_True == bOK2 ) &&
+									( osl_Socket_Ok == eResult ) && 
+									( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) );
+		}
+=====================================================================
+Found a 34 line (105 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/manifest/UnoRegister.cxx
+Starting at line 589 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/xtempfile.cxx
+
+	aKeyName += OUString( RTL_CONSTASCII_USTRINGPARAM ( "/UNO/SERVICES" ) );
+
+	Reference< XRegistryKey > xKey;
+	try
+	{
+		xKey = static_cast< XRegistryKey * >(
+									pRegistryKey )->createKey( aKeyName );
+	}
+	catch ( InvalidRegistryException const & )
+	{
+	}
+
+	if ( !xKey.is() )
+		return sal_False;
+
+	sal_Bool bSuccess = sal_True;
+
+	for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
+	{
+		try
+		{
+			xKey->createKey( rServiceNames[ n ] );
+		}
+		catch ( InvalidRegistryException const & )
+		{
+			bSuccess = sal_False;
+			break;
+		}
+	}
+	return bSuccess;
+}
+// C functions to implement this as a component
+
+extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
+
+using namespace utl;
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::linguistic2;
+using namespace linguistic;
+
+
+
+///////////////////////////////////////////////////////////////////////////
+
+BOOL operator == ( const Locale &rL1, const Locale &rL2 )
+{
+    return  rL1.Language ==  rL2.Language   &&
+            rL1.Country  ==  rL2.Country    &&
+            rL1.Variant  ==  rL2.Variant;
+}
+=====================================================================
+Found a 14 line (105 tokens) duplication in the following files: 
+Starting at line 1993 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3288 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xa3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xe0 },
+=====================================================================
+Found a 23 line (105 tokens) duplication in the following files: 
+Starting at line 1768 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 2210 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+                        case 'I': { if (rv && TESTAFF(rv->astr, 'J', rv->alen)) numsyllable += 1; break; }
+	            }
+	        }
+            }
+
+	    // increment word number, if the second word has a compoundroot flag
+	    if ((rv) && (compoundroot) && 
+		(TESTAFF(rv->astr, compoundroot, rv->alen))) {
+		    wordnum++;
+	    }
+	    // second word is acceptable, as a word with prefix or/and suffix?
+	    // hungarian conventions: compounding is acceptable,
+	    // when compound forms consist 2 word, otherwise
+	    // the syllable number of root words is 6, or lesser.
+	    if ((rv) && 
+                    (
+		      ((cpdwordmax==0) || (wordnum+1<cpdwordmax)) || 
+		      ((cpdmaxsyllable==0) || 
+		          (numsyllable <= cpdmaxsyllable))
+		    )
+		&& (
+		   (!checkcompounddup || (rv != rv_first))
+		   )) {
+=====================================================================
+Found a 12 line (105 tokens) duplication in the following files: 
+Starting at line 1551 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+Starting at line 1727 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affixmgr.cxx
+
+            if ((rv) && 
+                ((pfx && ((PfxEntry*)pfx)->getCont() &&
+                    TESTAFF(((PfxEntry*)pfx)->getCont(), compoundforbidflag, 
+                        ((PfxEntry*)pfx)->getContLen())) ||
+                (sfx && ((SfxEntry*)sfx)->getCont() &&
+                    TESTAFF(((SfxEntry*)sfx)->getCont(), compoundforbidflag, 
+                        ((SfxEntry*)sfx)->getContLen())))) {
+                    rv = NULL;
+            }
+
+	    // check forbiddenwords
+	    if ((rv) && (rv->astr) && (TESTAFF(rv->astr, forbiddenword, rv->alen) ||
+=====================================================================
+Found a 32 line (105 tokens) duplication in the following files: 
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+Starting at line 602 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+
+    if ((optflags & aeXPRODUCT) != 0 &&  (opts & aeXPRODUCT) == 0)
+        return NULL;
+
+    // upon entry suffix is 0 length or already matches the end of the word.
+    // So if the remaining root word has positive length
+    // and if there are enough chars in root word and added back strip chars
+    // to meet the number of characters conditions, then test it
+
+    tmpl = len - appndl;
+
+    if ((tmpl > 0)  &&  (tmpl + stripl >= numconds)) {
+
+	    // generate new root word by removing suffix and adding
+	    // back any characters that would have been stripped or
+	    // or null terminating the shorter string
+
+	    strcpy (tmpword, word);
+	    cp = (unsigned char *)(tmpword + tmpl);
+	    if (stripl) {
+		strcpy ((char *)cp, strip);
+		tmpl += stripl;
+		cp = (unsigned char *)(tmpword + tmpl);
+	    } else *cp = '\0';
+
+            // now make sure all of the conditions on characters
+            // are met.  Please see the appendix at the end of
+            // this file for more info on exactly what is being
+            // tested
+
+            // if all conditions are met then recall suffix_check
+
+	    if (test_condition((char *) cp, (char *) tmpword)) {
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+
+    if (rappnd) free(rappnd);
+    if (strip) free(strip);
+    pmyMgr = NULL;
+    appnd = NULL;
+    strip = NULL;    
+    if (opts & aeUTF8) {
+        for (int i = 0; i < 8; i++) {
+            if (conds.utf8.wchars[i]) free(conds.utf8.wchars[i]);  
+        }
+    }
+    if (morphcode && !(opts & aeALIASM)) free(morphcode);
+    if (contclass && !(opts & aeALIASF)) free(contclass);
+}
+
+// add suffix to this word assuming conditions hold
+char * SfxEntry::add(const char * word, int len)
+=====================================================================
+Found a 19 line (105 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+
+using namespace utl;
+using namespace osl;
+using namespace rtl;
+using namespace com::sun::star;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::linguistic2;
+using namespace linguistic;
+
+
+///////////////////////////////////////////////////////////////////////////
+
+BOOL operator == ( const Locale &rL1, const Locale &rL2 )
+{
+	return	rL1.Language ==  rL2.Language	&&
+			rL1.Country  ==  rL2.Country	&&
+			rL1.Variant  ==  rL2.Variant;
+}
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/include.c
+Starting at line 57 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_include.c
+
+        if (trp->tp->type == LT)
+        {
+            len = 0;
+            trp->tp++;
+            while (trp->tp->type != GT)
+            {
+                if (trp->tp > trp->lp || len + trp->tp->len + 2 >= sizeof(fname))
+                    goto syntax;
+                strncpy(fname + len, (char *) trp->tp->t, trp->tp->len);
+                len += trp->tp->len;
+                trp->tp++;
+            }
+            angled = 1;
+        }
+        else
+            goto syntax;
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 1337 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1414 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,10,10,10,10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0,// 2760 - 276f
+     0, 0, 0, 0, 0, 0,10,10,10,10,10,10,10,10,10,10,// 2770 - 277f
+    10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2780 - 278f
+    10,10,10,10,10, 0, 0, 0,10,10,10,10,10,10,10,10,// 2790 - 279f
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 1199 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1262 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1311 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2150 - 215f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2160 - 216f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2170 - 217f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2180 - 218f
+=====================================================================
+Found a 5 line (105 tokens) duplication in the following files: 
+Starting at line 1162 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 5 line (105 tokens) duplication in the following files: 
+Starting at line 1153 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 609 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/wrtw8esh.cxx
+
+        0x44,0,         // the start of "next" data
+        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
+=====================================================================
+Found a 5 line (105 tokens) duplication in the following files: 
+Starting at line 1085 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 6 line (105 tokens) duplication in the following files: 
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17,17,17,17, 0,17,17, 0, 0, 0, 0,17, 0, 0,// 0ac0 - 0acf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ad0 - 0adf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ae0 - 0aef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0af0 - 0aff
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b00 - 0b0f
+=====================================================================
+Found a 5 line (105 tokens) duplication in the following files: 
+Starting at line 981 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 625 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fa0 - 9faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fb0 - 9fbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fc0 - 9fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fd0 - 9fdf
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 793 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fa0 - 9faf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fb0 - 9fbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fc0 - 9fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 9fd0 - 9fdf
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 409 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 464 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1840 - 184f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1850 - 185f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1860 - 186f
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+=====================================================================
+Found a 5 line (105 tokens) duplication in the following files: 
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,23, 0, 0, 0, 0,// 10f0 - 10ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1100 - 110f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1110 - 111f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1120 - 112f
+=====================================================================
+Found a 5 line (105 tokens) duplication in the following files: 
+Starting at line 195 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1770 - 177f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1780 - 178f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1790 - 179f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 17a0 - 17af
+     5, 5, 5, 5, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 8, 8,// 17b0 - 17bf
+=====================================================================
+Found a 10 line (105 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/solver.cpp
+
+  for (j = 0; j < n; j++)
+  {
+    for (i = 0; i < j; i++)
+      v[i] = A[j][i]*A[i][i];
+
+    v[j] = A[j][j];
+    for (i = 0; i < j; i++)
+      v[j] -= A[j][i]*v[i];
+
+    A[j][j] = v[j];
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1039 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0550 - 055f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0560 - 056f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0570 - 057f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0,// 0580 - 058f
+=====================================================================
+Found a 4 line (105 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27, 6,27,27,27,27,27,27, 0, 0,27,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+=====================================================================
+Found a 8 line (105 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
+        0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+=====================================================================
+Found a 9 line (105 tokens) duplication in the following files: 
+Starting at line 1014 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1448 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							aCol0 = pAcc->GetPixel( nTmpY, --nTmpX );
+							cR1 = MAP( aCol0.GetRed(), aCol1.GetRed(), nTmpFX );
+							cG1 = MAP( aCol0.GetGreen(), aCol1.GetGreen(), nTmpFX );
+							cB1 = MAP( aCol0.GetBlue(), aCol1.GetBlue(), nTmpFX );
+
+							aColRes.SetRed( MAP( cR0, cR1, nTmpFY ) );
+							aColRes.SetGreen( MAP( cG0, cG1, nTmpFY ) );
+							aColRes.SetBlue( MAP( cB0, cB1, nTmpFY ) );
+							pWAcc->SetPixel( nY, nX, aColRes );
+=====================================================================
+Found a 9 line (105 tokens) duplication in the following files: 
+Starting at line 984 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1408 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							const BitmapColor& rCol2 = pAcc->GetPaletteColor( pAcc->GetPixel( nTmpY, --nTmpX ) );
+							cR1 = MAP( rCol2.GetRed(), rCol3.GetRed(), nTmpFX );
+							cG1 = MAP( rCol2.GetGreen(), rCol3.GetGreen(), nTmpFX );
+							cB1 = MAP( rCol2.GetBlue(), rCol3.GetBlue(), nTmpFX );
+
+							aColRes.SetRed( MAP( cR0, cR1, nTmpFY ) );
+							aColRes.SetGreen( MAP( cG0, cG1, nTmpFY ) );
+							aColRes.SetBlue( MAP( cB0, cB1, nTmpFY ) );
+							pWAcc->SetPixel( nY, nX, aColRes );
+=====================================================================
+Found a 21 line (105 tokens) duplication in the following files: 
+Starting at line 1599 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+Starting at line 1682 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+
+void Base3DDefault::DrawLineColor(sal_Int32 nYPos)
+{
+	// Ausserhalb des Clipping-Bereichs?
+	if(IsScissorRegionActive()
+		&& (nYPos < aDefaultScissorRectangle.Top()
+		|| nYPos > aDefaultScissorRectangle.Bottom()))
+		return;
+
+	// Von links bis rechts zeichnen
+	sal_Int32 nXLineStart = aIntXPosLeft.GetLongValue();
+	sal_Int32 nXLineDelta = aIntXPosRight.GetLongValue() - nXLineStart;
+
+	if(nXLineDelta > 0)
+	{
+		// Ausserhalb des Clipping-Bereichs?
+		if(IsScissorRegionActive()
+			&& ( nXLineStart+nXLineDelta < aDefaultScissorRectangle.Left()
+			|| nXLineStart > aDefaultScissorRectangle.Right()))
+			return;
+
+		aIntColorLine.Load(aIntColorLeft.GetColorValue(), aIntColorRight.GetColorValue(), nXLineDelta);
+=====================================================================
+Found a 22 line (105 tokens) duplication in the following files: 
+Starting at line 783 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 815 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+
+			else if ( !AddonPopupMenu::IsCommandURLPrefix ( aItemCommand ))
+			{
+				AttributeListImpl* pListMenu = new AttributeListImpl;
+				Reference< XAttributeList > xListMenu( (XAttributeList *)pListMenu , UNO_QUERY );
+
+                String aCommand( pMenu->GetItemCommand( nItemId ) );
+                if ( !aCommand.Len() )
+                {
+                    aCommand = String::CreateFromAscii("slot:");
+                    aCommand += String::CreateFromInt32( nItemId );
+                }
+
+                pListMenu->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_ID )),
+                                         m_aAttributeType,
+                                         aCommand );
+
+//                if ( pMenu->GetUserValue( nItemId ) & MENU_SAVE_LABEL )
+					pListMenu->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_NS_LABEL )),
+											 m_aAttributeType,
+											 pMenu->GetItemText( nItemId ) );
+
+				m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+=====================================================================
+Found a 24 line (105 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ComboBox.cxx
+Starting at line 738 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/ListBox.cxx
+
+                        else
+                        {
+                            // otherwise look for the alias
+                            Reference<XSQLQueryComposerFactory> xFactory(xConnection, UNO_QUERY);
+                            if (!xFactory.is())
+                                break;
+
+                            Reference<XSQLQueryComposer> xComposer = xFactory->createQueryComposer();
+                            try
+                            {
+                                Reference<XPropertySet> xFormAsSet(xForm, UNO_QUERY);
+                                ::rtl::OUString aStatement;
+                                xFormAsSet->getPropertyValue(PROPERTY_ACTIVECOMMAND) >>= aStatement;
+                                xComposer->setQuery(aStatement);
+                            }
+                            catch(Exception&)
+                            {
+                                disposeComponent(xComposer);
+                                break;
+                            }
+
+                            // search the field
+                            Reference<XColumnsSupplier> xSupplyFields(xComposer, UNO_QUERY);
+                            DBG_ASSERT(xSupplyFields.is(), "OListBoxModel::loadData : invalid query composer !");
+=====================================================================
+Found a 26 line (105 tokens) duplication in the following files: 
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilteradaptor/streamwrap.cxx
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/streaming/streamwrap.cxx
+
+	return nAvailable;
+}
+
+//------------------------------------------------------------------------------
+void SAL_CALL OInputStreamWrapper::closeInput() throw( stario::NotConnectedException, staruno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkConnected();
+
+	if (m_bSvStreamOwner)
+		delete m_pSvStream;
+
+	m_pSvStream = NULL;
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkConnected() const
+{
+	if (!m_pSvStream)
+		throw stario::NotConnectedException(::rtl::OUString(), const_cast<staruno::XWeak*>(static_cast<const staruno::XWeak*>(this)));
+}
+
+//------------------------------------------------------------------------------
+void OInputStreamWrapper::checkError() const
+{
+	checkConnected();
+=====================================================================
+Found a 28 line (105 tokens) duplication in the following files: 
+Starting at line 1882 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 1439 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+			case( META_MAPMODE_ACTION ):
+			case( META_LINECOLOR_ACTION	):
+			case( META_FILLCOLOR_ACTION	):
+			case( META_TEXTLINECOLOR_ACTION ):
+			case( META_TEXTFILLCOLOR_ACTION	):
+			case( META_TEXTCOLOR_ACTION	):
+			case( META_TEXTALIGN_ACTION	):
+			case( META_FONT_ACTION ):
+			case( META_PUSH_ACTION ):
+			case( META_POP_ACTION ):
+			case( META_LAYOUTMODE_ACTION ):
+			{
+				( (MetaAction*) pAction )->Execute( mpVDev );
+			}
+			break;
+
+			case( META_RASTEROP_ACTION ):
+			case( META_MASK_ACTION ):
+			case( META_MASKSCALE_ACTION	):
+			case( META_MASKSCALEPART_ACTION	):
+			case( META_WALLPAPER_ACTION	):
+			case( META_TEXTLINE_ACTION ):
+			{
+				// !!! >>> we don't want to support these actions
+			}
+			break;
+
+			default:
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 455 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/scanwin.cxx
+Starting at line 380 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/scanner/twain.cxx
+
+		long			nYRes = FIXTOLONG( aInfo.YResolution );
+
+		if( PFUNC( &aAppIdent, &aSrcIdent, DG_IMAGE, DAT_IMAGEINFO, MSG_GET, &aInfo ) == TWRC_SUCCESS )
+		{
+			nWidth = aInfo.ImageWidth;
+			nHeight = aInfo.ImageLength;
+			nXRes = FIXTOLONG( aInfo.XResolution );
+			nYRes = FIXTOLONG( aInfo.YResolution );
+		}
+		else
+			nWidth = nHeight = nXRes = nYRes = -1L;
+
+		switch( PFUNC( &aAppIdent, &aSrcIdent, DG_IMAGE, DAT_IMAGENATIVEXFER, MSG_GET, &hDIB ) )
+		{
+			case( TWRC_CANCEL ):
+				nCurState = 7;
+			break;
+
+			case( TWRC_XFERDONE ):
+			{
+=====================================================================
+Found a 14 line (105 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+
+	uno::Reference< uno::XInterface > xResult;
+
+	// the initialization is completelly controlled by user
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Sequence< beans::PropertyValue > aTempMedDescr( lArguments );
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 661 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/manager/dp_manager.cxx
+Starting at line 845 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/manager/dp_manager.cxx
+
+    OUString const & id, ::rtl::OUString const & fileName,
+    Reference<task::XAbortChannel> const & xAbortChannel,
+    Reference<XCommandEnvironment> const & xCmdEnv_ )
+    throw (deployment::DeploymentException, CommandFailedException,
+           CommandAbortedException, lang::IllegalArgumentException,
+           RuntimeException)
+{
+    check();
+    if (m_readOnly)
+        throw deployment::DeploymentException(
+            OUSTR("operating on read-only context!"),
+            static_cast<OWeakObject *>(this), Any() );
+    
+    Reference<XCommandEnvironment> xCmdEnv;
+    if (m_xLogFile.is())
+        xCmdEnv.set( new CmdEnvWrapperImpl( xCmdEnv_, m_xLogFile ) );
+    else
+        xCmdEnv.set( xCmdEnv_ );
+    
+    try {
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/shared/registrationhelper.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/inc/componentmodule.cxx
+
+			"OModule::registerComponent : inconsistent state !");
+
+		sal_Int32 nOldLen = s_pImplementationNames->getLength();
+		s_pImplementationNames->realloc(nOldLen + 1);
+		s_pSupportedServices->realloc(nOldLen + 1);
+		s_pCreationFunctionPointers->realloc(nOldLen + 1);
+		s_pFactoryFunctionPointers->realloc(nOldLen + 1);
+
+		s_pImplementationNames->getArray()[nOldLen] = _rImplementationName;
+		s_pSupportedServices->getArray()[nOldLen] = _rServiceNames;
+		s_pCreationFunctionPointers->getArray()[nOldLen] = reinterpret_cast<sal_Int64>(_pCreateFunction);
+		s_pFactoryFunctionPointers->getArray()[nOldLen] = reinterpret_cast<sal_Int64>(_pFactoryFunction);
+	}
+
+	//--------------------------------------------------------------------------
+	void OModule::revokeComponent(const ::rtl::OUString& _rImplementationName)
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 303 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/propshlp.cxx
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/propshlp.cxx
+
+	const Reference < XVetoableChangeListener > & rxListener )
+	throw(::com::sun::star::beans::UnknownPropertyException, 
+		  ::com::sun::star::lang::WrappedTargetException, 
+		  ::com::sun::star::uno::RuntimeException)
+{
+	MutexGuard aGuard( rBHelper.rMutex );
+	OSL_ENSURE( !rBHelper.bDisposed, "object is disposed" );
+	// all listeners are automaticly released in a dispose call
+	if( !rBHelper.bInDispose && !rBHelper.bDisposed )
+	{
+		if( rPropertyName.getLength() )
+		{
+			// get the map table
+			IPropertyArrayHelper & rPH = getInfoHelper();
+			// map the name to the handle
+			sal_Int32 nHandle = rPH.getHandleByName( rPropertyName );
+			if( nHandle == -1 ) {
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 171 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/testmoz/main.cxx
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/workben/testmoz/mozthread.cxx
+
+		OSL_TRACE(": FAILED to get a ResultSet \n");
+    	}
+}
+void printXResultSet( Reference<XResultSet> &xRes )
+{
+	if(xRes.is())
+	{
+		char* aPat = " %-22s ";
+		char* aPat_Short = " %-12s ";
+		Reference<XRow> xRow(xRes,UNO_QUERY);
+		Reference<XResultSetMetaData> xMeta = Reference<XResultSetMetaDataSupplier>(xRes,UNO_QUERY)->getMetaData();
+		for(sal_Int32 j=1;j<=xMeta->getColumnCount();++j)
+		{
+			try
+			{
+				const char *str = OUtoCStr(xRow->getString(j));
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+	m_xMetaData		= NULL;
+	if( object )
+	{
+        SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+		if( t.pEnv )
+		{
+			// temporaere Variable initialisieren
+			static const char * cSignature = "()V";
+			static const char * cMethodName = "close";
+			// Java-Call absetzen
+			static jmethodID mID = NULL;
+			if ( !mID  )
+				mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+			if( mID ){
+				t.pEnv->CallVoidMethod( object, mID);
+				ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			} //mID
+=====================================================================
+Found a 18 line (105 tokens) duplication in the following files: 
+Starting at line 569 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 567 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/sql/Ref;";
+		static const char * cMethodName = "getBlob";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out==0 ? 0 : new java_sql_Blob( t.pEnv, out );
+}
+// -------------------------------------------------------------------------
+
+Reference< XRef > SAL_CALL java_sql_ResultSet::getRef( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 17 line (105 tokens) duplication in the following files: 
+Starting at line 547 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 545 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/sql/Ref;";
+		static const char * cMethodName = "getClob";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out==0 ? 0 : new java_sql_Clob( t.pEnv, out );
+}
+// -------------------------------------------------------------------------
+Reference< XBlob > SAL_CALL java_sql_ResultSet::getBlob( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 18 line (105 tokens) duplication in the following files: 
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 522 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/sql/Ref;";
+		static const char * cMethodName = "getArray";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out==0 ? 0 : new java_sql_Array( t.pEnv, out );
+}
+// -------------------------------------------------------------------------
+
+Reference< XClob > SAL_CALL java_sql_ResultSet::getClob( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
+=====================================================================
+Found a 36 line (105 tokens) duplication in the following files: 
+Starting at line 1266 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FResultSet.cxx
+Starting at line 1533 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FResultSet.cxx
+
+			m_nRowCountResult = 0;
+			// Vorlaeufig einfach ueber alle Datensaetze iterieren und
+			// dabei die Aktionen bearbeiten (bzw. einfach nur zaehlen):
+			{
+
+				sal_Bool bOK = sal_True;
+				if (m_pEvaluationKeySet)
+				{
+					m_aEvaluateIter = m_pEvaluationKeySet->begin();
+					bOK = m_aEvaluateIter == m_pEvaluationKeySet->end();
+
+				}
+				while (bOK)
+				{
+					if (m_pEvaluationKeySet)
+						ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),TRUE);
+					else
+						bOK = ExecuteRow(IResultSetHelper::NEXT,1,TRUE);
+
+					if (bOK)
+					{
+						m_nRowCountResult++;
+						if(m_pEvaluationKeySet)
+						{
+							++m_aEvaluateIter;
+							bOK = m_aEvaluateIter == m_pEvaluationKeySet->end();
+						}
+					}
+				}
+
+				// Ergebnis von COUNT(*) in nRowCountResult merken.
+				// nRowCount, also die Anzahl der Rows in der Ergebnismenge, ist bei dieser
+				// Anfrage = 1!
+				//	DELETEZ(m_pEvaluationKeySet);
+				m_pEvaluationKeySet = NULL;
+			}
+=====================================================================
+Found a 29 line (105 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/flat/Eservices.cxx
+
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+=====================================================================
+Found a 26 line (105 tokens) duplication in the following files: 
+Starting at line 445 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+Starting at line 248 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+
+    Reference< XResultSet > xRef = pResult;
+
+	// check if any type is given
+	// when no types are given then we have to return all tables e.g. TABLE
+
+	static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
+
+	sal_Bool bTableFound = sal_True;
+	sal_Int32 nLength = types.getLength();
+	if(nLength)
+	{
+		bTableFound = sal_False;
+
+		const ::rtl::OUString* pBegin = types.getConstArray();
+		const ::rtl::OUString* pEnd	= pBegin + nLength;
+		for(;pBegin != pEnd;++pBegin)
+		{
+			if(*pBegin == aTable)
+			{
+				bTableFound = sal_True;
+				break;
+			}
+		}
+	}
+	if(!bTableFound)
+		return xRef;
+=====================================================================
+Found a 29 line (105 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NServices.cxx
+
+		}
+		return xRet.is();
+	}
+
+	void* getProvider() const { return xRet.get(); }
+};
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+				const sal_Char	**ppEnvTypeName,
+				uno_Environment	** /*ppEnv*/
+			)
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+				void* /*pServiceManager*/,
+				void* pRegistryKey
+			)
+{
+	if (pRegistryKey)
+	try
+	{
+		Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
+
+		REGISTER_PROVIDER(
+=====================================================================
+Found a 24 line (105 tokens) duplication in the following files: 
+Starting at line 238 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treecache/cachecontroller.cxx
+Starting at line 166 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/treecache/treemanager.cxx
+
+	CFG_TRACE_INFO("TreeManager: Disposing data and TreeInfo(s) for user '%s'", 
+					OUSTRING2ASCII(_aUserOptions.getEntity()) );
+
+	typedef std::vector< std::pair< RequestOptions, CacheRef > > DisposeList;
+	
+	DisposeList aDisposeList;
+	// collect the ones to dispose
+	{
+		OUString sUser = _aUserOptions.getEntity();
+		OSL_ASSERT(sUser.getLength());
+
+		// This depends on the fact that Options are sorted (by struct ltOptions)
+		// so that all options belonging to one user are together
+		// (and that options with only a user set, sort first)
+
+        CacheList::Map aCacheData;
+        m_aCacheList.swap(aCacheData);
+
+		// find the lower_bound of all options for the user
+		CacheList::Map::iterator const aFirst = aCacheData.lower_bound(_aUserOptions);
+
+		// find the upper_bound of all options for the user (using the lower one)
+		CacheList::Map::iterator aLast = aFirst;
+		while (aLast != aCacheData.end() && aLast->first.getEntity() == sUser)
+=====================================================================
+Found a 16 line (105 tokens) duplication in the following files: 
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cppumaker.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javamaker.cxx
+
+    RegistryKeyList typeKeys = typeMgr.getTypeKeys(typeName);
+	RegistryKeyList::const_iterator iter = typeKeys.begin();
+    RegistryKey key, subKey;
+    RegistryKeyArray subKeys;
+    
+	while (iter != typeKeys.end())
+	{
+        key = (*iter).first;
+
+        if (!(*iter).second  && !key.openSubKeys(OUString(), subKeys))
+        {
+            for (sal_uInt32 i = 0; i < subKeys.getLength(); i++)
+            {
+                subKey = subKeys.getElement(i);
+                if (bFullScope)
+                {
+=====================================================================
+Found a 19 line (105 tokens) duplication in the following files: 
+Starting at line 1224 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 1516 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+	sal_uInt32 methodCount = m_reader.getMethodCount();
+
+	OString methodName, returnType, paramType, paramName;	
+	sal_uInt32 paramCount = 0;
+	sal_uInt32 excCount = 0;
+	RTMethodMode methodMode = RT_MODE_INVALID;
+	RTParamMode	 paramMode = RT_PARAM_INVALID;
+
+	sal_Bool bRef = sal_False;
+	sal_Bool bConst = sal_False;
+	sal_Bool bWithRunTimeExcp = sal_True;
+
+	for (sal_uInt16 i=0; i < methodCount; i++)
+	{
+		methodName = m_reader.getMethodName(i);
+		returnType = m_reader.getMethodReturnType(i);
+		paramCount = m_reader.getMethodParamCount(i);
+		excCount = m_reader.getMethodExcCount(i);
+		methodMode = m_reader.getMethodMode(i);
+=====================================================================
+Found a 12 line (105 tokens) duplication in the following files: 
+Starting at line 1094 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+Starting at line 1147 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/VSeriesPlotter.cxx
+
+    sal_Int32 nRet = 0;
+
+    ::std::vector< ::std::vector< VDataSeriesGroup > >::const_iterator       aZSlotIter = m_aZSlots.begin();
+    const ::std::vector< ::std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
+
+    for( ; aZSlotIter != aZSlotEnd; aZSlotIter++ )
+    {
+        ::std::vector< VDataSeriesGroup >::const_iterator       aXSlotIter = aZSlotIter->begin();
+        const ::std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
+
+        for( ; aXSlotIter != aXSlotEnd; aXSlotIter++ )
+        {
+=====================================================================
+Found a 15 line (105 tokens) duplication in the following files: 
+Starting at line 175 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/DataInterpreter.cxx
+Starting at line 185 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/XYDataInterpreter.cxx
+
+        ContainerHelper::SequenceToVector( aInterpretedData.UnusedData ));
+
+    sal_Int32 i=0;
+    Sequence< Reference< XDataSeries > > aSeries( FlattenSequence( aInterpretedData.Series ));
+    const sal_Int32 nCount = aSeries.getLength();
+    for( ; i<nCount; ++i )
+    {
+        try
+        {
+            Reference< data::XDataSource > xSeriesSource( aSeries[i], uno::UNO_QUERY_THROW );
+            Sequence< Reference< data::XLabeledDataSequence > > aNewSequences;
+
+            // values-y
+            Reference< data::XLabeledDataSequence > xValuesY(
+                DataSeriesHelper::getDataSequenceByRole( xSeriesSource, C2U("values-y"), false ));
+=====================================================================
+Found a 20 line (105 tokens) duplication in the following files: 
+Starting at line 346 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 340 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+
+                        &pInterface, pTD, cpp_acquire );
+                    pInterface->release();
+                    TYPELIB_DANGER_RELEASE( pTD );
+                    *(void **)pRegisterReturn = pCallStack[0];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+=====================================================================
+Found a 27 line (105 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/baside2.cxx
+Starting at line 331 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uiview/srcview.cxx
+
+    return eRet;
+}
+/*-----------------18.11.96 08.21-------------------
+
+--------------------------------------------------*/
+
+void lcl_ConvertTabsToSpaces( String& rLine )
+{
+	if ( rLine.Len() )
+	{
+		USHORT nPos = 0;
+		USHORT nMax = rLine.Len();
+		while ( nPos < nMax )
+		{
+			if ( rLine.GetChar(nPos) == '\t' )
+			{
+				// Nicht 4 Blanks, sondern an 4er TabPos:
+				String aBlanker;
+				aBlanker.Fill( ( 4 - ( nPos % 4 ) ), ' ' );
+				rLine.Erase( nPos, 1 );
+				rLine.Insert( aBlanker, nPos );
+				nMax = rLine.Len();
+			}
+			nPos++;	// Nicht optimal, falls Tab, aber auch nicht verkehrt...
+		}
+	}
+}
+=====================================================================
+Found a 14 line (105 tokens) duplication in the following files: 
+Starting at line 654 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblelistitem.cxx
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/accessibility/source/standard/vclxaccessiblemenuitem.cxx
+
+			Reference< datatransfer::clipboard::XClipboard > xClipboard = pWindow->GetClipboard();
+			if ( xClipboard.is() )
+			{
+				::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+				::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+				const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+				xClipboard->setContents( pDataObj, NULL );
+
+				Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+				if( xFlushableClipboard.is() )
+					xFlushableClipboard->flushClipboard();
+				
+				Application::AcquireSolarMutex( nRef );
+=====================================================================
+Found a 21 line (104 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.cxx
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.cxx
+
+	if( !aSecurityCtx.is() )
+		throw RuntimeException() ;
+
+	//Get the encryption template
+	Reference< XXMLElementWrapper > xTemplate = aTemplate->getTemplate() ;
+	if( !xTemplate.is() ) {
+		throw RuntimeException() ;
+	}
+
+	Reference< XUnoTunnel > xTplTunnel( xTemplate , UNO_QUERY ) ;
+	if( !xTplTunnel.is() ) {
+		throw RuntimeException() ;
+	}
+
+	XMLElementWrapper_XmlSecImpl* pTemplate =
+        reinterpret_cast<XMLElementWrapper_XmlSecImpl*>(
+            sal::static_int_cast<sal_uIntPtr>(
+                xTplTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() )));
+	if( pTemplate == NULL ) {
+		throw RuntimeException() ;
+	}
+=====================================================================
+Found a 15 line (104 tokens) duplication in the following files: 
+Starting at line 101 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ControlOASISTContext.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/FrameOOoTContext.cxx
+
+	Reference< XAttributeList > xFrameAttrList( pFrameMutableAttrList );
+
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+=====================================================================
+Found a 8 line (104 tokens) duplication in the following files: 
+Starting at line 737 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtexppr.cxx
+Starting at line 810 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtexppr.cxx
+
+			pBottomBorderState->maValue >>= aBottom;
+			if( aLeft.Color == aRight.Color && aLeft.InnerLineWidth == aRight.InnerLineWidth &&
+				aLeft.OuterLineWidth == aRight.OuterLineWidth && aLeft.LineDistance == aRight.LineDistance &&
+				aLeft.Color == aTop.Color && aLeft.InnerLineWidth == aTop.InnerLineWidth &&
+				aLeft.OuterLineWidth == aTop.OuterLineWidth && aLeft.LineDistance == aTop.LineDistance &&
+				aLeft.Color == aBottom.Color && aLeft.InnerLineWidth == aBottom.InnerLineWidth &&
+				aLeft.OuterLineWidth == aBottom.OuterLineWidth && aLeft.LineDistance == aBottom.LineDistance )
+			{
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 1925 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+Starting at line 1982 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+
+void XMLShapeExport::ImpExportPluginShape(
+	const uno::Reference< drawing::XShape >& xShape,
+	XmlShapeType, sal_Int32 nFeatures, com::sun::star::awt::Point* pRefPoint)
+{
+	const uno::Reference< beans::XPropertySet > xPropSet(xShape, uno::UNO_QUERY);
+	if(xPropSet.is())
+	{
+		// Transformation
+		ImpExportNewTrans(xPropSet, nFeatures, pRefPoint);
+
+		sal_Bool bCreateNewline( (nFeatures & SEF_EXPORT_NO_WS) == 0 ); // #86116#/#92210#
+		SvXMLElementExport aElement( mrExport, XML_NAMESPACE_DRAW,
+								  XML_FRAME, bCreateNewline, sal_True );
+
+		// export plugin url
+		OUString aStr;
+		xPropSet->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "PluginURL" ) ) ) >>= aStr;
+=====================================================================
+Found a 14 line (104 tokens) duplication in the following files: 
+Starting at line 142 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/XMLNumberStyles.cxx
+
+	virtual ~SdXMLNumberFormatMemberImportContext();
+
+	virtual SvXMLImportContext *CreateChildContext( USHORT nPrefix,
+								   const ::rtl::OUString& rLocalName,
+								   const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
+
+	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
+
+	virtual void EndElement();
+
+	virtual void Characters( const ::rtl::OUString& rChars );
+};
+
+TYPEINIT1( SdXMLNumberFormatMemberImportContext, SvXMLImportContext );
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 1477 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+Starting at line 1540 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+
+	if( mxStockPropProvider.is())
+	{
+		sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0;
+		rtl::OUString sAutoStyleName;
+
+		for( sal_Int16 i = 0; i < nAttrCount; i++ )
+		{
+			rtl::OUString sAttrName = xAttrList->getNameByIndex( i );
+			rtl::OUString aLocalName;
+			USHORT nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
+
+			if( nPrefix == XML_NAMESPACE_CHART &&
+				IsXMLToken( aLocalName, XML_STYLE_NAME ) )
+			{
+				sAutoStyleName = xAttrList->getValueByIndex( i );
+			}
+		}
+=====================================================================
+Found a 21 line (104 tokens) duplication in the following files: 
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/content.cxx
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/content.cxx
+
+	ResultSetForQueryFactory( 
+        const uno::Reference< lang::XMultiServiceFactory >& xSMgr,
+        const uno::Reference< ucb::XContentProvider >&  xProvider,
+        sal_Int32 nOpenMode,
+        const uno::Sequence< beans::Property >& seq,
+        const uno::Sequence< ucb::NumberedSortingInfo >& seqSort,
+        URLParameter aURLParameter,
+        Databases* pDatabases )
+		: m_xSMgr( xSMgr ),
+		  m_xProvider( xProvider ),
+		  m_nOpenMode( nOpenMode ),
+		  m_seq( seq ),
+		  m_seqSort( seqSort ),
+		  m_aURLParameter( aURLParameter ),
+		  m_pDatabases( pDatabases )
+	{
+	}
+
+	ResultSetBase* createResultSet()
+	{
+		return new ResultSetForQuery( m_xSMgr,
+=====================================================================
+Found a 23 line (104 tokens) duplication in the following files: 
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+	lRet = ::RegSetValueEx(hDataKey, CXMergeFilter::m_pszPXLExportCLSID, 0, REG_SZ, (LPBYTE)_T(""), (1 * sizeof(TCHAR)));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	::RegCloseKey(hKey);		hKey = NULL;
+	::RegCloseKey(hDataKey);	hDataKey = NULL;
+
+
+
+	/*
+	 * Following calls create the HKEY_CLASSES_ROOT\CLSID entry for the Calc import filter.
+	 *
+	 * Note that import are export are relative to the WinCE device, so files are 
+	 * exported to the desktop format.
+	 */
+	// Get a handle to the CLSID key
+	lRet = ::RegOpenKeyEx(HKEY_CLASSES_ROOT, _T("CLSID"), 0, KEY_ALL_ACCESS, &hKey);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	// Create the CLSID key for the XMergeFilter
+	lRet = ::RegCreateKeyEx(hKey, CXMergeFilter::m_pszPXLImportCLSID, 0, _T(""), 0, KEY_ALL_ACCESS, NULL, &hKey, NULL);
+=====================================================================
+Found a 21 line (104 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 526 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+				(::_tcslen(CXMergeFilter::m_pszPXLImportExt) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	::RegCloseKey(hKey);		hKey = NULL;
+	::RegCloseKey(hDataKey);	hDataKey = NULL;
+
+
+
+	/*
+	 * Following calls create the entries for the filter in 
+	 * HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\Filters
+	 */
+	lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows CE Services\\Filters"), 
+				0, KEY_ALL_ACCESS, &hKey);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	// Add in defaults for import and export
+	_snprintf(sTemp, _MAX_PATH +1, "%c%s\0", '.', CXMergeFilter::m_pszPXLExportExt);
+=====================================================================
+Found a 23 line (104 tokens) duplication in the following files: 
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 323 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+	lRet = ::RegSetValueEx(hDataKey, CXMergeFilter::m_pszPSWImportCLSID, 0, REG_SZ, (LPBYTE)_T(""), (1 * sizeof(TCHAR)));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	::RegCloseKey(hKey);		hKey = NULL;
+	::RegCloseKey(hDataKey);	hDataKey = NULL;
+
+
+
+	/*
+	 * Following calls create the HKEY_CLASSES_ROOT\CLSID entry for the Calc export filter.
+	 *
+	 * Note that import are export are relative to the WinCE device, so files are 
+	 * exported to the desktop format.
+	 */
+
+	// Get a handle to the CLSID key
+	lRet = ::RegOpenKeyEx(HKEY_CLASSES_ROOT, _T("CLSID"), 0, KEY_ALL_ACCESS, &hKey);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	// Create the CLSID key for the XMerge Filter
+	lRet = ::RegCreateKeyEx(hKey, CXMergeFilter::m_pszPXLExportCLSID, 0, _T(""), 
+=====================================================================
+Found a 22 line (104 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/source/activesync/XMergeSync.cpp
+
+				(::_tcslen(CXMergeFilter::m_pszPXLExportExt) * sizeof(TCHAR) + (1 * sizeof(TCHAR))));
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+
+	::RegCloseKey(hKey);		hKey = NULL;
+	::RegCloseKey(hDataKey);	hDataKey = NULL;
+
+
+
+
+	/*
+	 * Following calls create the entries for the filter in 
+	 * HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\Filters
+	 */
+
+	lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows CE Services\\Filters"), 
+				0, KEY_ALL_ACCESS, &hKey);
+	if (lRet != ERROR_SUCCESS) 
+		return _signalRegError(lRet, hKey, hDataKey);
+
+	_snprintf(sTemp, _MAX_PATH + 1, "%c%s\\InstalledFilters\0", '.', CXMergeFilter::m_pszPXLImportExt);
+=====================================================================
+Found a 5 line (104 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/crop_mask.h
+
+   0xfc, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 9667 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+Starting at line 9844 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/pdfwriter_impl.cxx
+
+                if( eType == PDFWriter::Paragraph	||
+                    eType == PDFWriter::Heading		||
+                    eType == PDFWriter::H1			||
+                    eType == PDFWriter::H2			||
+                    eType == PDFWriter::H3			||
+                    eType == PDFWriter::H4			||
+                    eType == PDFWriter::H5			||
+                    eType == PDFWriter::H6			||
+                    eType == PDFWriter::List		||
+                    eType == PDFWriter::ListItem	||
+                    eType == PDFWriter::LILabel		||
+                    eType == PDFWriter::LIBody		||
+                    eType == PDFWriter::Table		||
+                    eType == PDFWriter::TableRow	||
+                    eType == PDFWriter::TableHeader	||
+                    eType == PDFWriter::TableData )
+                {
+                    bInsert = true;
+                }
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 1975 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+Starting at line 1993 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/gdimtf.cxx
+
+				MetaBmpScaleAction* pAct = (MetaBmpScaleAction*) pAction;
+
+				ShortToSVBT16( pAct->GetType(), aBT16 );
+				nCrc = rtl_crc32( nCrc, aBT16, 2 );
+
+				UInt32ToSVBT32( pAct->GetBitmap().GetChecksum(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetPoint().X(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+
+				UInt32ToSVBT32( pAct->GetPoint().Y(), aBT32 );
+				nCrc = rtl_crc32( nCrc, aBT32, 4 );
+=====================================================================
+Found a 20 line (104 tokens) duplication in the following files: 
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/workben/myucp/myucp_datasupplier.cxx
+
+DataSupplier::queryPropertyValues( sal_uInt32 nIndex  )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+		uno::Reference< sdbc::XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow;
+		if ( xRow.is() )
+		{
+			// Already cached.
+			return xRow;
+		}
+	}
+
+	if ( getResult( nIndex ) )
+	{
+		uno::Reference< sdbc::XRow > xRow = Content::getPropertyValues(
+									m_pImpl->m_xSMgr,
+									getResultSet()->getProperties(),
+									m_pImpl->m_aResults[ nIndex ]->rData,
+=====================================================================
+Found a 34 line (104 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpdynresultset.cxx
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/xmlhelp/source/cxxhelp/provider/resultset.cxx
+
+	const vos::ORef< Content >& rxContent,
+	const OpenCommandArgument2& rCommand,
+	const Reference< XCommandEnvironment >& rxEnv,
+	ResultSetFactory* pFactory )
+	: ResultSetImplHelper( rxSMgr, rCommand ),
+	  m_xContent( rxContent ),
+	  m_xEnv( rxEnv ),
+	  m_pFactory( pFactory )
+{
+}
+
+DynamicResultSet::~DynamicResultSet()
+{
+	delete m_pFactory;
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1 = Reference< XResultSet >( m_pFactory->createResultSet() );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1 = Reference< XResultSet >( m_pFactory->createResultSet() );
+
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 23 line (104 tokens) duplication in the following files: 
+Starting at line 124 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/command.cxx
+Starting at line 150 of /local/ooo-build/ooo-build/src/oog680-m3/tools/bootstrp/command.cxx
+
+CommandLine::CommandLine(const CommandLine& CCommandLine, BOOL bWrite)
+/*****************************************************************************/
+				: bTmpWrite(bWrite)
+{
+	CommandBuffer = new char [1];
+	if (CommandBuffer == NULL) {
+		//cout << "Error: nospace" << endl;
+		exit(0);
+	}
+	nArgc = 0;
+	ppArgv = new char * [1];
+	ppArgv[0] = NULL;
+
+	ComShell = new char [128];
+	char* pTemp = getenv("COMMAND_SHELL");
+	if(!pTemp)
+		strcpy(ComShell,COMMAND_SHELL);
+	else
+		strcpy(ComShell,pTemp);
+
+	strcpy(&ComShell[strlen(ComShell)]," -C ");
+
+	BuildCommand(CCommandLine.CommandBuffer);
+=====================================================================
+Found a 20 line (104 tokens) duplication in the following files: 
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/flddok.cxx
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/fldui/fldref.cxx
+
+		if(!IsRefresh() && sUserData.GetToken(0, ';').
+								EqualsIgnoreCaseAscii(USER_DATA_VERSION_1))
+		{
+			String sVal = sUserData.GetToken(1, ';');
+			USHORT nVal = sVal.ToInt32();
+			if(nVal != USHRT_MAX)
+			{
+				for(USHORT i = 0; i < aTypeLB.GetEntryCount(); i++)
+					if(nVal == (USHORT)(ULONG)aTypeLB.GetEntryData(i))
+					{
+						aTypeLB.SelectEntryPos(i);
+						break;
+					}
+			}
+		}
+	}
+	TypeHdl(0);
+
+	if (IsFldEdit())
+	{
+=====================================================================
+Found a 20 line (104 tokens) duplication in the following files: 
+Starting at line 2136 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+Starting at line 2504 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dochdl/swdtflvr.cxx
+
+		switch( nAction )
+		{
+		case SW_PASTESDR_INSERT:
+			SwTransferable::SetSelInShell( rSh, FALSE, pPt );
+			rSh.Insert( sURL, aEmptyStr, aGrf );
+			break;
+
+		case SW_PASTESDR_REPLACE:
+			if( rSh.IsObjSelected() )
+			{
+				rSh.ReplaceSdrObj( sURL, aEmptyStr, &aGrf );
+				Point aPt( pPt ? *pPt : rSh.GetCrsrDocPos() );
+				SwTransferable::SetSelInShell( rSh, TRUE, &aPt );
+			}
+			else
+				rSh.ReRead( sURL, aEmptyStr, &aGrf );
+			break;
+
+		case SW_PASTESDR_SETATTR:
+			if( SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK == nFmt )
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 686 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+Starting at line 822 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+
+            SwFrmFmt *pFrmFmt = pDoc->Insert( *pTxtCrsr->GetPaM(),
+                                            ::svt::EmbeddedObjectRef( xObj, embed::Aspects::MSOLE_CONTENT ),
+                                            &aItemSet,
+											NULL,
+											NULL);
+            SwXFrame *pXFrame = SwXFrames::GetObject( *pFrmFmt, FLYCNTTYPE_OLE );
+            xPropSet = pXFrame;
+            if( pDoc->GetDrawModel() )
+                SwXFrame::GetOrCreateSdrObject(
+                        static_cast<SwFlyFrmFmt*>( pXFrame->GetFrmFmt() ) ); // req for z-order
+        }
+    }
+    catch ( uno::Exception& )
+    {
+    }
+
+	return xPropSet;
+}
+uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertFloatingFrame(
+=====================================================================
+Found a 12 line (104 tokens) duplication in the following files: 
+Starting at line 2278 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+Starting at line 2319 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+	 			uno::RuntimeException)
+{
+	vos::OGuard aGuard(Application::GetSolarMutex());
+	const sal_Bool bDescriptor = rParent.IsDescriptor();
+	SwSectionFmt* pSectFmt = rParent.GetFmt();
+	if(!pSectFmt && !bDescriptor)
+		throw uno::RuntimeException();
+	if(nIndex < 0 || nIndex > MAXLEVEL)
+		throw lang::IndexOutOfBoundsException();
+	SwTOXBase* pTOXBase = bDescriptor ? &rParent.GetProperties_Impl()->GetTOXBase() :
+				(SwTOXBaseSection*)pSectFmt->GetSection();
+=====================================================================
+Found a 11 line (104 tokens) duplication in the following files: 
+Starting at line 1753 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoframe.cxx
+Starting at line 3186 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoframe.cxx
+
+	if(pFmt)
+	{
+		SwDoc* pDoc = pFmt->GetDoc();
+		const SwFmtCntnt* pCnt = &pFmt->GetCntnt();
+		DBG_ASSERT(	pCnt->GetCntntIdx() &&
+					   pDoc->GetNodes()[ pCnt->GetCntntIdx()->
+										GetIndex() + 1 ]->GetOLENode(), "kein OLE-Node?")
+
+		SwOLENode* pOleNode =  pDoc->GetNodes()[ pCnt->GetCntntIdx()
+										->GetIndex() + 1 ]->GetOLENode();
+        uno::Reference < embed::XEmbeddedObject > xIP = pOleNode->GetOLEObj().GetOleRef();
+=====================================================================
+Found a 20 line (104 tokens) duplication in the following files: 
+Starting at line 3602 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblrwcl.cxx
+Starting at line 4136 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/tblrwcl.cxx
+
+	if( !rParam.bBigger )
+		pFndBox->SetTableLines( rParam.aBoxes, rTbl );
+	else
+	{
+		_FndPara aPara( rParam.aBoxes, pFndBox );
+		rTbl.GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+		ASSERT( pFndBox->GetLines().Count(), "Wo sind die Boxen" );
+		pFndBox->SetTableLines( rTbl );
+
+		if( ppUndo )
+			rTmpLst.Insert( &rTbl.GetTabSortBoxes(), 0, rTbl.GetTabSortBoxes().Count() );
+	}
+
+	//Lines fuer das Layout-Update heraussuchen.
+	pFndBox->DelFrms( rTbl );
+
+	// TL_CHART2: it is currently unclear if sth has to be done here.
+
+	return pFndBox;
+}
+=====================================================================
+Found a 25 line (104 tokens) duplication in the following files: 
+Starting at line 317 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fillctrl.cxx
+Starting at line 367 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fillctrl.cxx
+Starting at line 420 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/tbxctrls/fillctrl.cxx
+
+					String aString( pBitmapItem->GetName() );
+					// Bitmap aBitmap( pBitmapItem->GetValue() );
+
+					// SvxBitmapListItem aItem( *(const SvxBitmapListItem*)(
+					// 	SfxObjectShell::Current()->GetItem( SID_BITMAP_LIST ) ) );
+					pFillAttrLB->SelectEntry( aString );
+					// NEU
+					// Pruefen, ob Eintrag nicht in der Liste ist
+					if( pFillAttrLB->GetSelectEntry() != aString )
+					{
+						USHORT nCount = pFillAttrLB->GetEntryCount();
+						String aTmpStr;
+						if( nCount > 0 )
+						{
+							//Letzter Eintrag wird auf temporaeren Eintrag geprueft
+							aTmpStr = pFillAttrLB->GetEntry( nCount - 1 );
+							if(  aTmpStr.GetChar(0) == TMP_STR_BEGIN &&
+								 aTmpStr.GetChar(aTmpStr.Len()-1) == TMP_STR_END )
+							{
+								pFillAttrLB->RemoveEntry( nCount - 1 );
+							}
+						}
+						aTmpStr = TMP_STR_BEGIN;
+						aTmpStr += aString;
+						aTmpStr += TMP_STR_END;
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 226 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svrtf/svxrtf.cxx
+Starting at line 1024 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/rtf/rtffld.cxx
+
+			break;
+
+		case RTF_LINE:			cCh = '\n';	goto INSINGLECHAR;
+		case RTF_TAB:			cCh = '\t';	goto INSINGLECHAR;
+		case RTF_SUBENTRYINDEX:	cCh = ':';	goto INSINGLECHAR;
+		case RTF_EMDASH:		cCh = 151;	goto INSINGLECHAR;
+		case RTF_ENDASH:		cCh = 150;	goto INSINGLECHAR;
+		case RTF_BULLET:		cCh = 149;	goto INSINGLECHAR;
+		case RTF_LQUOTE:		cCh = 145;	goto INSINGLECHAR;
+		case RTF_RQUOTE:		cCh = 146;	goto INSINGLECHAR;
+		case RTF_LDBLQUOTE:		cCh = 147;	goto INSINGLECHAR;
+		case RTF_RDBLQUOTE:		cCh = 148;	goto INSINGLECHAR;
+INSINGLECHAR:
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 3921 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 4112 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_UserForm::Read(SvStorageStream *pS)
+{
+    long nStart = pS->Tell();
+	*pS >> nIdentifier;
+	DBG_ASSERT(0x400==nIdentifier,
+			"A control that has a different identifier");
+	*pS >> nFixedAreaLen;
+	pS->Read(pBlockFlags,4);
+
+	if (pBlockFlags[0] & 0x01)
+    {
+            DBG_ASSERT(!this, "ARSE");
+    }
+	if (pBlockFlags[0] & 0x02)
+		*pS >> mnBackColor;
+	if (pBlockFlags[0] & 0x04)
+        *pS >> mnForeColor;
+    if (pBlockFlags[0] & 0x08)
+        *pS >> nChildrenA;
+=====================================================================
+Found a 15 line (104 tokens) duplication in the following files: 
+Starting at line 1520 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+Starting at line 1651 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit4.cxx
+
+	aWrp.Convert();
+
+	//if (!bIsInteractive)
+	//SetUpdateMode( TRUE, 0, TRUE );
+
+    if ( !bMultipleDoc )
+    {
+        pEditView->pImpEditView->DrawSelection();
+        if ( aCurSel.Max().GetIndex() > aCurSel.Max().GetNode()->Len() )
+            aCurSel.Max().GetIndex() = aCurSel.Max().GetNode()->Len();
+        aCurSel.Min() = aCurSel.Max();
+        pEditView->pImpEditView->SetEditSelection( aCurSel );
+        pEditView->pImpEditView->DrawSelection();
+        pEditView->ShowCursor( sal_True, sal_False );
+    }
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 626 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tplnedef.cxx
+Starting at line 532 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tplneend.cxx
+
+                if ( aName == pLineEndList->GetLineEnd( i )->GetName() )
+					bDifferent = FALSE;
+		}
+
+		//CHINA001 SvxNameDialog* pDlg = new SvxNameDialog( DLGWIN, aName, aDesc );
+		SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+		DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
+		AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( DLGWIN, aName, aDesc, RID_SVXDLG_NAME );
+		DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
+		BOOL bLoop = TRUE;
+
+		while ( bLoop && pDlg->Execute() == RET_OK )
+		{
+			pDlg->GetName( aName );
+			bDifferent = TRUE;
+
+			for( long i = 0; i < nCount && bDifferent; i++ )
+			{
+                if( aName == pLineEndList->GetLineEnd( i )->GetName() )
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 1663 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+Starting at line 1740 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+
+			aGrfBrushItems.Insert(pInfo, nNumMenuGalleryItems + i);
+
+			Size aSize(aBitmap.GetSizePixel());
+			if(aSize.Width() > MAX_BMP_WIDTH || aSize.Height() > MAX_BMP_HEIGHT)
+			{
+				BOOL bWidth = aSize.Width() > aSize.Height();
+				double nScale = bWidth ?
+									(double)MAX_BMP_WIDTH / (double)aSize.Width():
+									(double)MAX_BMP_HEIGHT / (double)aSize.Height();
+				aBitmap.Scale(nScale, nScale);
+			}
+			Image aImage(aBitmap);
+			pPopup->InsertItem(pInfo->nItemId,*pStr,aImage);
+=====================================================================
+Found a 26 line (104 tokens) duplication in the following files: 
+Starting at line 1628 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+Starting at line 1716 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+
+void FillAttrLB::SelectEntryByList( const XBitmapList* pList, const String& rStr,
+                            const Bitmap& /*rBmp*/)
+{
+	long nCount = pList->Count();
+	XBitmapEntry* pEntry;
+	BOOL bFound = FALSE;
+
+	long i;
+	for( i = 0; i < nCount && !bFound; i++ )
+	{
+        pEntry = pList->GetBitmap( i );
+
+		String aStr = pEntry->GetName();
+		// Bitmap aBmp = pEntry->GetBitmap();
+
+		if( rStr == aStr )
+		{
+			bFound = TRUE;
+		}
+		/*
+		if( rStr == aStr && rBmp == aBmp )
+			bFound = TRUE; */
+	}
+	if( bFound )
+		SelectEntryPos( (USHORT) ( i - 1 ) );
+}
+=====================================================================
+Found a 11 line (104 tokens) duplication in the following files: 
+Starting at line 5409 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 5487 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
+{
+	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	//400 (vert.adj)
+	{ 0x8000, { 21600, 0, 0x400 } },			//401
+	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
+	{ 0x2000, { 0x402, 0, 10800 } },			//403 -2160 -> 2160 (horz.adj)
+	{ 0x2001, { 0x403, 2, 1 } },				//404 -4320 -> 4320 (horz.adj)
+	{ 0x2003, { 0x404, 0, 0 } },				//405 abs( 0x404 )	(horz.adj)
+	{ 0x8000, { 4320, 0, 0x405 } },				//406 -> not used
+	{ 0xa006, { 0x403, 0, 0x405 } },			//407
+	{ 0x4001, { 7900, 0x400, 2230 } },			//408 0 -> 7900	(vert.adj)
+=====================================================================
+Found a 12 line (104 tokens) duplication in the following files: 
+Starting at line 1623 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1676 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1732 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
+{
+	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
+	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
+	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
+	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
+	{ 0x8000, { 21600, 0, 0x0400 } },
+	{ 0x8000, { 21600, 0, 0x0401 } },
+	{ 0x8000, { 21600, 0, 0x0402 } },
+	{ 0x8000, { 21600, 0, 0x0403 } }
+};
+static const sal_Int32 mso_sptQuadArrowCalloutDefault[] =
+=====================================================================
+Found a 12 line (104 tokens) duplication in the following files: 
+Starting at line 753 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+Starting at line 816 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+
+				std::vector< FWParagraphData >::iterator aParagraphIEnd = aTextAreaIter->vParagraphs.end();
+				while( aParagraphIter != aParagraphIEnd )
+				{
+					std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() );
+					std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() );
+					while ( aCharacterIter != aCharacterIEnd )
+					{
+						std::vector< PolyPolygon >::iterator aOutlineIter = aCharacterIter->vOutlines.begin();
+						std::vector< PolyPolygon >::iterator aOutlineIEnd = aCharacterIter->vOutlines.end();
+						while( aOutlineIter != aOutlineIEnd )
+						{
+							PolyPolygon& rPolyPoly = *aOutlineIter;
+=====================================================================
+Found a 10 line (104 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/registry_tdprovider/testregistrytdprovider.cxx
+Starting at line 598 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/test/registry_tdprovider/testregistrytdprovider.cxx
+
+            RTL_CONSTASCII_USTRINGPARAM("test.registrytdprovider.Service3")),
+        service->getName());
+    assertEqual< sal_Int32 >(0, service->getMandatoryServices().getLength());
+    assertEqual< sal_Int32 >(0, service->getOptionalServices().getLength());
+    assertEqual< sal_Int32 >(0, service->getMandatoryInterfaces().getLength());
+    assertEqual< sal_Int32 >(0, service->getOptionalInterfaces().getLength());
+    assertEqual< bool >(true, service->isSingleInterfaceBased());
+    assertEqual(
+        rtl::OUString(
+            RTL_CONSTASCII_USTRINGPARAM("test.registrytdprovider.Typedef2")),
+=====================================================================
+Found a 16 line (104 tokens) duplication in the following files: 
+Starting at line 706 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/UriReferenceFactory.cxx
+Starting at line 149 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/uriproc/VndSunStarPkgUrlReferenceFactory.cxx
+
+{
+
+css::uno::Reference< css::uno::XInterface > create(
+    css::uno::Reference< css::uno::XComponentContext > const & context)
+    SAL_THROW((css::uno::Exception))
+{
+    try {
+        return static_cast< cppu::OWeakObject * >(new Factory(context));
+    } catch (std::bad_alloc &) {
+        throw css::uno::RuntimeException(
+            rtl::OUString::createFromAscii("std::bad_alloc"), 0);
+    }
+}
+
+rtl::OUString getImplementationName() {
+    return rtl::OUString::createFromAscii(
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 1627 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appuno.cxx
+Starting at line 1672 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appuno.cxx
+
+                                        const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArgs )
+              throw (::com::sun::star::uno::RuntimeException)
+{
+    ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+    sal_uInt32 nPropertyCount = lArgs.getLength();
+    ::rtl::OUString aReferer;
+	for( sal_uInt32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
+	{
+        if( lArgs[nProperty].Name == ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Referer")) )
+		{
+            lArgs[nProperty].Value >>= aReferer;
+            break;
+        }
+    }
+
+    ::com::sun::star::uno::Any aAny;
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 579 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appopen.cxx
+Starting at line 630 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appopen.cxx
+
+            pNew->ClearItem( SID_PROGRESS_STATUSBAR_CONTROL );
+			::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aArgs;
+            TransformItems( SID_OPENDOC, *pNew, aArgs );
+
+            sal_Int32 nLength = aArgs.getLength();
+            aArgs.realloc( nLength + 1 );
+
+            aArgs[nLength].Name = DEFINE_CONST_UNICODE("Title");
+            aArgs[nLength].Value <<= ::rtl::OUString( xDoc->GetTitle( SFX_TITLE_DETECT ) );
+
+            xModel->attachResource( ::rtl::OUString(), aArgs );
+            delete pNew;
+		}
+=====================================================================
+Found a 23 line (104 tokens) duplication in the following files: 
+Starting at line 1129 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviews1.cxx
+Starting at line 1198 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviews1.cxx
+
+            GetViewShellBase().GetDrawController().FireSwitchCurrentPage(pMaster);
+
+			SdrPageView* pNewPageView = mpDrawView->GetSdrPageView();
+
+			if (pNewPageView)
+			{
+				pNewPageView->SetVisibleLayers( mpFrameView->GetVisibleLayers() );
+				pNewPageView->SetPrintableLayers( mpFrameView->GetPrintableLayers() );
+				pNewPageView->SetLockedLayers( mpFrameView->GetLockedLayers() );
+
+				if (mePageKind == PK_NOTES)
+				{
+					pNewPageView->SetHelpLines( mpFrameView->GetNotesHelpLines() );
+				}
+				else if (mePageKind == PK_HANDOUT)
+				{
+					pNewPageView->SetHelpLines( mpFrameView->GetHandoutHelpLines() );
+				}
+				else
+				{
+					pNewPageView->SetHelpLines( mpFrameView->GetStandardHelpLines() );
+				}
+			}
+=====================================================================
+Found a 32 line (104 tokens) duplication in the following files: 
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unosrch.cxx
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unosrch.cxx
+
+		if( (aAny >>= xGroupShape ) && xGroupShape->getCount() > 0 )
+		{
+			pContext = new SearchContext_impl( xGroupShape, pContext );
+			xShape = pContext->firstShape();
+		}
+		else
+		{
+			if( pContext )
+				xShape = pContext->nextShape();
+			else
+				xShape = NULL;
+		}
+
+		// test parent contexts for next shape if none
+		// is found in the current context
+		while( pContext && !xShape.is() )
+		{
+			if( pContext->getParent() )
+			{
+				SearchContext_impl* pOldContext = pContext;
+				pContext = pContext->getParent();
+				delete pOldContext;
+				xShape = pContext->nextShape();
+			}
+			else
+			{
+				delete pContext;
+				pContext = NULL;
+				xShape = NULL;
+			}
+		}
+	}
+=====================================================================
+Found a 14 line (104 tokens) duplication in the following files: 
+Starting at line 568 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+Starting at line 729 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/swxml.cxx
+
+	uno::Reference< container::XChild > xChild( xModelComp, uno::UNO_QUERY );
+	if( xChild.is() )
+	{
+		uno::Reference< beans::XPropertySet > xParentSet( xChild->getParent(), uno::UNO_QUERY );
+		if( xParentSet.is() )
+		{
+			uno::Reference< beans::XPropertySetInfo > xPropSetInfo( xParentSet->getPropertySetInfo() );
+			OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BuildId" ) );
+			if( xPropSetInfo.is() && xPropSetInfo->hasPropertyByName(sPropName) )
+			{
+				xInfoSet->setPropertyValue( sPropName, xParentSet->getPropertyValue(sPropName) );
+			}
+		}
+	}
+=====================================================================
+Found a 20 line (104 tokens) duplication in the following files: 
+Starting at line 674 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/docuno.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/docuno.cxx
+
+									const uno::Sequence<beans::PropertyValue>& rOptions )
+								throw(lang::IllegalArgumentException, uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	if (!pDocShell)
+		throw uno::RuntimeException();
+
+	ScMarkData aMark;
+	ScPrintSelectionStatus aStatus;
+	if ( !FillRenderMarkData( aSelection, aMark, aStatus ) )
+		throw lang::IllegalArgumentException();
+
+	if ( !pPrintFuncCache || !pPrintFuncCache->IsSameSelection( aStatus ) )
+	{
+		delete pPrintFuncCache;
+		pPrintFuncCache = new ScPrintFuncCache( pDocShell, aMark, aStatus );
+	}
+	long nTotalPages = pPrintFuncCache->GetPageCount();
+	if ( nRenderer >= nTotalPages )
+		throw lang::IllegalArgumentException();
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 629 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/autofmt.cxx
+Starting at line 726 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/table/tautofmt.cxx
+
+    BYTE    nIndex = static_cast< BYTE >( maArray.GetCellIndex( nCol, nRow ) );
+
+	switch( nIndex )
+	{
+		case  1: cellString = aStrJan;			break;
+		case  2: cellString = aStrFeb;			break;
+		case  3: cellString = aStrMar;			break;
+		case  5: cellString = aStrNorth;		break;
+		case 10: cellString = aStrMid;			break;
+		case 15: cellString = aStrSouth;		break;
+		case  4:
+		case 20: cellString = aStrSum;			break;
+
+		case  6:
+		case  8:
+		case 16:
+		case 18:    nVal = nIndex;
+					nNum = 5;
+					goto MAKENUMSTR;
+=====================================================================
+Found a 18 line (104 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
+
+uno::Reference<XAccessibleStateSet> SAL_CALL ScAccessiblePreviewCell::getAccessibleStateSet()
+						    throw(uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+
+	uno::Reference<XAccessibleStateSet> xParentStates;
+	if (getAccessibleParent().is())
+	{
+		uno::Reference<XAccessibleContext> xParentContext = getAccessibleParent()->getAccessibleContext();
+		xParentStates = xParentContext->getAccessibleStateSet();
+	}
+	utl::AccessibleStateSetHelper* pStateSet = new utl::AccessibleStateSetHelper();
+	if (IsDefunc(xParentStates))
+		pStateSet->AddState(AccessibleStateType::DEFUNC);
+    else
+    {
+	    pStateSet->AddState(AccessibleStateType::ENABLED);
+	    pStateSet->AddState(AccessibleStateType::MULTI_LINE);
+=====================================================================
+Found a 14 line (104 tokens) duplication in the following files: 
+Starting at line 479 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlwrap.cxx
+Starting at line 568 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/filter/xml/sdxmlwrp.cxx
+
+	uno::Reference< container::XChild > xChild( mxModel, uno::UNO_QUERY );
+	if( xChild.is() )
+	{
+		uno::Reference< beans::XPropertySet > xParentSet( xChild->getParent(), uno::UNO_QUERY );
+		if( xParentSet.is() )
+		{
+			uno::Reference< beans::XPropertySetInfo > xPropSetInfo( xParentSet->getPropertySetInfo() );
+			OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BuildId" ) );
+			if( xPropSetInfo.is() && xPropSetInfo->hasPropertyByName(sPropName) )
+			{
+				xInfoSet->setPropertyValue( sPropName, xParentSet->getPropertyValue(sPropName) );
+			}
+		}
+	}
+=====================================================================
+Found a 8 line (104 tokens) duplication in the following files: 
+Starting at line 370 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlstyle.cxx
+Starting at line 810 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtexppr.cxx
+
+			pBottomBorderState->maValue >>= aBottom;
+			if( aLeft.Color == aRight.Color && aLeft.InnerLineWidth == aRight.InnerLineWidth &&
+				aLeft.OuterLineWidth == aRight.OuterLineWidth && aLeft.LineDistance == aRight.LineDistance &&
+				aLeft.Color == aTop.Color && aLeft.InnerLineWidth == aTop.InnerLineWidth &&
+				aLeft.OuterLineWidth == aTop.OuterLineWidth && aLeft.LineDistance == aTop.LineDistance &&
+				aLeft.Color == aBottom.Color && aLeft.InnerLineWidth == aBottom.InnerLineWidth &&
+				aLeft.OuterLineWidth == aBottom.OuterLineWidth && aLeft.LineDistance == aBottom.LineDistance )
+			{
+=====================================================================
+Found a 12 line (104 tokens) duplication in the following files: 
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1440 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+=====================================================================
+Found a 23 line (104 tokens) duplication in the following files: 
+Starting at line 1039 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 1088 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+void ScInterpreter::ScMatInv()
+{
+	if ( MustHaveParamCount( GetByte(), 1 ) )
+	{
+		ScMatrixRef pMat = GetMatrix();
+		if (!pMat)
+		{
+			SetIllegalParameter();
+			return;
+		}
+		if ( !pMat->IsNumeric() )
+		{
+			SetNoValue();
+			return;
+		}
+        SCSIZE nC, nR;
+        pMat->GetDimensions(nC, nR);
+		if ( nC != nR || nC == 0 || (ULONG) nC * nC > ScMatrix::GetElementsMax() )
+			SetIllegalParameter();
+		else
+		{
+            // LUP decomposition is done inplace, use copy.
+            ScMatrixRef xLU = pMat->Clone();
+=====================================================================
+Found a 22 line (104 tokens) duplication in the following files: 
+Starting at line 3486 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 3529 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+void ScInterpreter::ScRows()
+{
+	BYTE nParamCount = GetByte();
+	ULONG nVal = 0;
+	SCCOL nCol1;
+	SCROW nRow1;
+	SCTAB nTab1;
+	SCCOL nCol2;
+	SCROW nRow2;
+	SCTAB nTab2;
+	for (USHORT i = 1; i <= nParamCount; i++)
+	{
+		switch ( GetStackType() )
+		{
+			case svSingleRef:
+				PopError();
+				nVal++;
+				break;
+			case svDoubleRef:
+				PopDoubleRef(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2);
+                nVal += static_cast<ULONG>(nTab2 - nTab1 + 1) *
+                    static_cast<ULONG>(nRow2 - nRow1 + 1);
+=====================================================================
+Found a 23 line (104 tokens) duplication in the following files: 
+Starting at line 329 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/address.cxx
+Starting at line 374 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/address.cxx
+
+lcl_r1c1_get_row( const sal_Unicode* p,
+                  const ScAddress::Details& rDetails,
+                  ScAddress* pAddr, USHORT* nFlags )
+{
+    const sal_Unicode *pEnd;
+    long int n;
+    bool isRelative;
+
+    if( p[0] == '\0' )
+        return NULL;
+
+    p++;
+    if( (isRelative = (*p == '[') ) != false )
+        p++;
+    n = sal_Unicode_strtol( p, &pEnd );
+    if( NULL == pEnd )
+        return NULL;
+
+    if( p == pEnd ) // R is a relative ref with offset 0
+    {
+        if( isRelative )
+            return NULL;
+        n = rDetails.nRow;
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 275 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpoutput.cxx
+Starting at line 1387 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpoutput.cxx
+
+        long nDimCount = xDims->getCount();
+        for (long nDim=0; nDim<nDimCount; nDim++)
+        {
+            uno::Reference<uno::XInterface> xDim =
+                    ScUnoHelpFunctions::AnyToInterface( xDims->getByIndex(nDim) );
+            uno::Reference<beans::XPropertySet> xDimProp( xDim, uno::UNO_QUERY );
+            if ( xDimProp.is() )
+            {
+                sheet::DataPilotFieldOrientation eDimOrient =
+                    (sheet::DataPilotFieldOrientation) ScUnoHelpFunctions::GetEnumProperty(
+                        xDimProp, rtl::OUString::createFromAscii(DP_PROP_ORIENTATION),
+                        sheet::DataPilotFieldOrientation_HIDDEN );
+                if ( ScUnoHelpFunctions::GetBoolProperty( xDimProp,
+=====================================================================
+Found a 25 line (104 tokens) duplication in the following files: 
+Starting at line 827 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file.cxx
+Starting at line 858 of /local/ooo-build/ooo-build/src/oog680-m3/sal/osl/unx/file.cxx
+
+oslFileError osl_copyFile( rtl_uString* ustrFileURL, rtl_uString* ustrDestURL )
+{
+    char srcPath[PATH_MAX];
+    char destPath[PATH_MAX];
+    oslFileError eRet;
+
+    OSL_ASSERT( ustrFileURL );
+    OSL_ASSERT( ustrDestURL );
+
+    /* convert source url to system path */
+    eRet = FileURLToPath( srcPath, PATH_MAX, ustrFileURL );
+    if( eRet != osl_File_E_None )
+        return eRet;
+
+    /* convert destination url to system path */
+    eRet = FileURLToPath( destPath, PATH_MAX, ustrDestURL );
+    if( eRet != osl_File_E_None )
+        return eRet;
+
+#ifdef MACOSX
+    if ( macxp_resolveAlias( srcPath, PATH_MAX ) != 0 || macxp_resolveAlias( destPath, PATH_MAX ) != 0 )
+      return oslTranslateFileError( OSL_FET_ERROR, errno );
+#endif/* MACOSX */
+
+    return osl_psz_copyFile( srcPath, destPath );
+=====================================================================
+Found a 14 line (104 tokens) duplication in the following files: 
+Starting at line 1404 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 1447 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+																	 GetSeekableTempCopy( xInStream, GetServiceFactory() );
+
+	uno::Sequence< uno::Any > aSeq( 1 );
+	aSeq[0] <<= sal_False;
+	uno::Reference< lang::XUnoTunnel > xNewElement( m_xPackage->createInstanceWithArguments( aSeq ),
+													uno::UNO_QUERY );
+
+	OSL_ENSURE( xNewElement.is(), "Not possible to create a new stream!\n" );
+	if ( !xNewElement.is() )
+		throw io::IOException(); // TODO:
+
+	uno::Reference< packages::XDataSinkEncrSupport > xPackageSubStream( xNewElement, uno::UNO_QUERY );
+	if ( !xPackageSubStream.is() )
+		throw uno::RuntimeException(); // TODO
+=====================================================================
+Found a 24 line (104 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/switchpersistencestream.cxx
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/switchpersistencestream.cxx
+
+	if ( !xInputStream.is() )
+		throw uno::RuntimeException();
+
+	sal_Int64 nPos = 0;
+	sal_Bool bInOpen = sal_False;
+	sal_Bool bOutOpen = sal_False;
+
+	if ( m_pStreamData && m_pStreamData->m_xOrigSeekable.is() )
+	{
+		// check that the length is the same
+		if ( m_pStreamData->m_xOrigSeekable->getLength() != xNewSeekable->getLength() )
+			throw uno::RuntimeException();
+
+		// get the current position
+		nPos = m_pStreamData->m_xOrigSeekable->getPosition();
+		bInOpen = m_pStreamData->m_bInOpen;
+		bOutOpen = m_pStreamData->m_bOutOpen;
+	}
+
+	xNewSeekable->seek( nPos );
+
+	CloseAll_Impl();
+
+	m_pStreamData = new SPStreamData_Impl( m_xFactory, sal_True,
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 99 of /local/ooo-build/ooo-build/src/oog680-m3/jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx
+
+    bool bHome = false;
+    bool bAccess = false;
+    
+    typedef vector<pair<OUString, OUString> >::const_iterator it_prop;
+    for (it_prop i = props.begin(); i != props.end(); i++)
+    {
+        if(! bVendor && sVendorProperty.equals(i->first))
+        {
+            m_sVendor = i->second;
+            bVendor = true;
+        }
+        else if (!bVersion && sVersionProperty.equals(i->first))
+        {
+            m_sVersion = i->second;
+            bVersion = true;
+        }
+        else if (!bHome && sHomeProperty.equals(i->first))
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 1366 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 805 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 28 line (104 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
+
+                *dst ++ = currentChar;
+                previousChar = *src ++;
+                nCount --;
+                continue;
+            }
+        }
+
+        if (useOffset)
+            *p ++ = position++;
+        *dst ++ = previousChar;
+        previousChar = currentChar;
+    }
+
+    if (nCount == 0) {
+        if (useOffset)
+            *p = position;
+        *dst ++ = previousChar;
+    }
+
+    *dst = (sal_Unicode) 0;
+
+    newStr->length = sal_Int32(dst - newStr->buffer);
+    if (useOffset)
+        offset.realloc(newStr->length);
+    return OUString( newStr ); // defined in rtl/usrting. The reference count is increased from 0 to 1.
+}
+
+} } } }
+=====================================================================
+Found a 4 line (104 tokens) duplication in the following files: 
+Starting at line 453 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+=====================================================================
+Found a 18 line (104 tokens) duplication in the following files: 
+Starting at line 2806 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+Starting at line 2887 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/hwpreader.cxx
+
+        if (para->hhstr[n]->hh == CH_SPACE && !firstspace)
+        {
+            makeChars(gstr, l);
+            l = 0;
+            rstartEl(ascii("text:s"), rList);
+            rendEl(ascii("text:s"));
+        }
+        else if (para->hhstr[n]->hh == CH_END_PARA)
+        {
+            makeChars(gstr, l);
+            l = 0;
+            rendEl(ascii("text:span"));
+            rendEl(ascii("text:p"));
+            break;
+        }
+        else
+        {
+			  if( para->hhstr[n]->hh < CH_SPACE )
+=====================================================================
+Found a 20 line (104 tokens) duplication in the following files: 
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itga/itga.cxx
+Starting at line 455 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/itga/itga.cxx
+
+								*mpTGA >> nBlue >> nGreen >> nRed >> nDummy;
+								for ( USHORT i = 0; i < ( ( nRunCount & 0x7f ) + 1 ); i++ )
+								{
+									mpAcc->SetPixel( nY, nX, BitmapColor( nRed, nGreen, nBlue ) );
+									nX += nXAdd;
+									nXCount++;
+									if ( nXCount == mpFileHeader->nImageWidth )
+									{
+										nX = nXStart;
+										nXCount = 0;
+										nY += nYAdd;
+										nYCount++;
+									}
+								}
+							}
+							else						// a raw packet
+							{
+								for ( USHORT i = 0; i < ( ( nRunCount & 0x7f ) + 1 ); i++ )
+								{
+									*mpTGA >> nBlue >> nGreen >> nRed >> nDummy;
+=====================================================================
+Found a 8 line (104 tokens) duplication in the following files: 
+Starting at line 1684 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ios2met/ios2met.cxx
+Starting at line 1758 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/ios2met/ios2met.cxx
+
+			}
+			else {
+				nVal=ReadLittleEndian3BytesLong();
+				if      ((nFlags&0x40)!=0 && nVal==1) aCol=Color(COL_BLACK);
+				else if ((nFlags&0x40)!=0 && nVal==2) aCol=Color(COL_WHITE);
+				else if ((nFlags&0x40)!=0 && nVal==4) aCol=Color(COL_WHITE);
+				else if ((nFlags&0x40)!=0 && nVal==5) aCol=Color(COL_BLACK);
+				else aCol=GetPaletteColor(nVal);
+=====================================================================
+Found a 12 line (104 tokens) duplication in the following files: 
+Starting at line 1713 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+Starting at line 1845 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/toolbarmanager.cxx
+
+                Reference< XDispatch > xDisp;
+                com::sun::star::util::URL aURL;
+                if ( m_xFrame.is() )
+                {
+                    Reference< XDispatchProvider > xProv( m_xFrame, UNO_QUERY );
+                    Reference< XURLTransformer > xTrans( m_xServiceManager->createInstance(
+                                                            OUString( RTL_CONSTASCII_USTRINGPARAM(
+                                                            "com.sun.star.util.URLTransformer" ))), UNO_QUERY );
+                    aURL.Complete = OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ConfigureDialog" ));
+                    xTrans->parseStrict( aURL );
+                    if ( xProv.is() )
+                        xDisp = xProv->queryDispatch( aURL, ::rtl::OUString(), 0 );
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/controlmenucontroller.cxx
+Starting at line 313 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/fontmenucontroller.cxx
+
+        m_xPopupMenu = xPopupMenu;
+	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+
+
+        Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance( 
+                                                        rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))), 
+                                                    UNO_QUERY );
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+        
+        com::sun::star::util::URL aTargetURL;
+        aTargetURL.Complete = m_aCommandURL;
+        xURLTransformer->parseStrict( aTargetURL );
+        m_xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+=====================================================================
+Found a 28 line (104 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/aqua/FilterHelper.cxx
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+	return m_aSubFilters.getLength();
+}
+
+static bool
+isFilterString( const rtl::OUString &rFilterString, const char *pMatch )
+{
+		sal_Int32 nIndex = 0;
+		rtl::OUString aToken;
+		bool bIsFilter = true;
+
+        rtl::OUString aMatch(rtl::OUString::createFromAscii(pMatch));
+
+		do
+		{
+			aToken = rFilterString.getToken( 0, ';', nIndex );
+			if( !aToken.match( aMatch ) )
+			{
+				bIsFilter = false;
+				break;
+			}
+		}
+		while( nIndex >= 0 );
+
+		return bIsFilter;
+}
+
+static rtl::OUString
+shrinkFilterName( const rtl::OUString &rFilterName, bool bAllowNoStar = false )
+=====================================================================
+Found a 16 line (104 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/xforms/submission/submission_get.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/xforms/submission/submission_post.cxx
+
+    apSerialization->serialize();
+
+    // create a commandEnvironment and use the default interaction handler
+    CCommandEnvironmentHelper *pHelper = new CCommandEnvironmentHelper;
+    if( aInteractionHandler.is() )
+        pHelper->m_aInteractionHandler = aInteractionHandler;
+    else
+        pHelper->m_aInteractionHandler = CSS::uno::Reference< XInteractionHandler >(m_aFactory->createInstance(
+            OUString::createFromAscii("com.sun.star.task.InteractionHandler")), UNO_QUERY);
+    OSL_ENSURE(pHelper->m_aInteractionHandler.is(), "failed to create IntreractionHandler");
+    CProgressHandlerHelper *pProgressHelper = new CProgressHandlerHelper;
+    pHelper->m_aProgressHandler = CSS::uno::Reference< XProgressHandler >(pProgressHelper);
+    // UCB has ownership of environment...
+    CSS::uno::Reference< XCommandEnvironment > aEnvironment(pHelper);
+
+    try {
+=====================================================================
+Found a 43 line (104 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/uno.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svguno.cxx
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilteradaptor/genericfilter.cxx
+Starting at line 115 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilterdetect/fdcomp.cxx
+
+			const Sequence< OUString > & rSNL = FilterDetect_getSupportedServiceNames();
+
+			const OUString * pArray = rSNL.getConstArray();
+
+			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+
+				xNewKey->createKey( pArray[nPos] );
+
+
+
+			return sal_True;
+
+		}
+
+		catch (InvalidRegistryException &)
+
+		{
+
+			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+
+		}
+
+	}
+
+	return sal_False;
+
+}
+
+//==================================================================================================
+
+void * SAL_CALL component_getFactory(
+
+	const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
+
+{
+
+	void * pRet = 0;
+
+	
+
+    OUString implName = OUString::createFromAscii( pImplName );
+
+	if ( pServiceManager && implName.equals(FilterDetect_getImplementationName()) )
+=====================================================================
+Found a 4 line (104 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07b0 - 07bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07c0 - 07cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07d0 - 07df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 07e0 - 07ef
+=====================================================================
+Found a 13 line (104 tokens) duplication in the following files: 
+Starting at line 233 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/OleClient/clientTest.cxx
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/OleClient/clientTest.cxx
+
+    inv->invoke(OUString(L"optional3"), seqNamed5, seqIndices, seqOut);
+	seqIndices.realloc(0);
+	seqOut.realloc(0);
+    inv->invoke(OUString(L"optional5"), seqPositional, seqIndices, seqOut);
+    if ( ! checkOutArgs(seqOut, seqIndices, seqOutOpt1))
+        return false;
+    //2 args, 1 provided (incorrect order)
+    seqIndices.realloc(0);
+    seqOut.realloc(0);
+    inv->invoke(OUString(L"optional3"), seqPositional0, seqIndices, seqOut);
+	seqIndices.realloc(0);
+	seqOut.realloc(0);
+    inv->invoke(OUString(L"optional3"), seqNamed6, seqIndices, seqOut);
+=====================================================================
+Found a 40 line (104 tokens) duplication in the following files: 
+Starting at line 66 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/AxTestComponents/AxTestComponents.cpp
+Starting at line 31 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/EventListenerSample/EventListener/EventListener.cpp
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.cpp
+
+        _Module.Init(ObjectMap, hInstance, &LIBID_XCALLBACK_IMPLLib);
+        DisableThreadLibraryCalls(hInstance);
+    }
+    else if (dwReason == DLL_PROCESS_DETACH)
+        _Module.Term();
+    return TRUE;    // ok
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Used to determine whether the DLL can be unloaded by OLE
+
+STDAPI DllCanUnloadNow(void)
+{
+    return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Returns a class factory to create an object of the requested type
+
+STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
+{
+    return _Module.GetClassObject(rclsid, riid, ppv);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// DllRegisterServer - Adds entries to the system registry
+
+STDAPI DllRegisterServer(void)
+{
+    // registers object, typelib and all interfaces in typelib
+    return _Module.RegisterServer(TRUE);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// DllUnregisterServer - Removes entries from the system registry
+
+STDAPI DllUnregisterServer(void)
+{
+    return _Module.UnregisterServer(TRUE);
+}
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 1201 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/oleobjw.cxx
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/servprov.cxx
+Starting at line 620 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/ole/servprov.cxx
+
+Reference< XInterface > OleClient_Impl::createUnoWrapperInstance()
+{
+	if( m_nUnoWrapperClass == INTERFACE_OLE_WRAPPER_IMPL)
+	{
+		Reference<XWeak> xWeak= static_cast<XWeak*>( new InterfaceOleWrapper_Impl(
+								m_smgr, m_nUnoWrapperClass, m_nComWrapperClass));
+		return Reference<XInterface>( xWeak, UNO_QUERY);
+	}
+	else if( m_nUnoWrapperClass == UNO_OBJECT_WRAPPER_REMOTE_OPT)
+	{
+		Reference<XWeak> xWeak= static_cast<XWeak*>( new UnoObjectWrapperRemoteOpt(
+								m_smgr, m_nUnoWrapperClass, m_nComWrapperClass));
+		return Reference<XInterface>( xWeak, UNO_QUERY);
+	}
+	else
+		return Reference< XInterface>();
+}
+// UnoConversionUtilities -----------------------------------------------------------------------------
+Reference< XInterface > OleClient_Impl::createComWrapperInstance( )
+=====================================================================
+Found a 15 line (104 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 279 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) UNOEmbeddedObjectCreator::createInstanceInitFromMediaDescriptor" );
+
+	// TODO: use lObjArgs
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Reference< uno::XInterface > xResult;
+=====================================================================
+Found a 15 line (104 tokens) duplication in the following files: 
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/dnd/sourcecontext.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/win32/dnd/sourcecontext.cxx
+
+		e.DragSource= m_dragSource;
+		e.DragSourceContext= static_cast<XDragSourceContext*>( this);
+		e.Source= Reference<XInterface>( static_cast<XDragSourceContext*>( this), UNO_QUERY);
+
+		OInterfaceContainerHelper* pContainer= rBHelper.getContainer(
+			getCppuType( (Reference<XDragSourceListener>* )0 ) );
+
+		if( pContainer)
+		{
+			OInterfaceIteratorHelper iter( *pContainer);
+			while( iter.hasMoreElements())
+			{
+				Reference<XDragSourceListener> listener(
+					static_cast<XDragSourceListener*>( iter.next()));
+				listener->dropActionChanged( e);
+=====================================================================
+Found a 4 line (104 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 22 line (104 tokens) duplication in the following files: 
+Starting at line 616 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/pages.cxx
+Starting at line 263 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/so_comp/oemjob.cxx
+
+	Bootstrap().getIniName( aSofficeIniFileURL );
+
+	if ( utl::Bootstrap::locateUserData( aUserDataPath ) == utl::Bootstrap::PATH_EXISTS )
+	{
+		const char CONFIG_DIR[] = "/config";
+		
+		sal_Int32 nIndex = aSofficeIniFileURL.lastIndexOf( '/');
+		if ( nIndex > 0 )
+		{
+			OUString		aUserSofficeIniFileURL;
+			OUStringBuffer	aBuffer( aUserDataPath );
+			aBuffer.appendAscii( CONFIG_DIR );
+			aBuffer.append( aSofficeIniFileURL.copy( nIndex ));
+			aUserSofficeIniFileURL = aBuffer.makeStringAndClear();
+			
+			if ( existsURL( aUserSofficeIniFileURL ))
+				return aUserSofficeIniFileURL;
+		}
+	}	
+	// Fallback try to use the soffice.ini/rc from program folder
+	return aSofficeIniFileURL;
+}
+=====================================================================
+Found a 22 line (104 tokens) duplication in the following files: 
+Starting at line 306 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/dp_gui_cmdenv.cxx
+Starting at line 200 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/migration/dp_migration.cxx
+
+                        RTL_TEXTENCODING_UTF8 ).getStr() );
+        
+        // ignore intermediate errors of legacy packages, i.e.
+        // former pkgchk behaviour:
+        const Reference<deployment::XPackage> xPackage(
+            wtExc.Context, UNO_QUERY );
+        OSL_ASSERT( xPackage.is() );
+        if (xPackage.is()) {
+            const Reference<deployment::XPackageTypeInfo> xPackageType(
+                xPackage->getPackageType() );
+            OSL_ASSERT( xPackageType.is() );
+            if (xPackageType.is()) {
+                approve = (xPackage->isBundle() &&
+                           xPackageType->getMediaType().matchAsciiL(
+                               RTL_CONSTASCII_STRINGPARAM(
+                                   "application/"
+                                   "vnd.sun.star.legacy-package-bundle") ));
+            }
+        }
+        abort = !approve;
+    }
+    else
+=====================================================================
+Found a 10 line (104 tokens) duplication in the following files: 
+Starting at line 656 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/documentcontainer.cxx
+Starting at line 672 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/documentcontainer.cxx
+
+void SAL_CALL ODocumentContainer::revert(  ) throw (::com::sun::star::io::IOException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+	MutexGuard aGuard(m_aMutex);
+	Documents::iterator aIter = m_aDocumentMap.begin();
+	Documents::iterator aEnd = m_aDocumentMap.end();
+	for (; aIter != aEnd ; ++aIter)
+	{
+		Reference<XTransactedObject> xTrans(aIter->second.get(),UNO_QUERY);
+		if ( xTrans.is() )
+			xTrans->revert();
+=====================================================================
+Found a 29 line (104 tokens) duplication in the following files: 
+Starting at line 227 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/test/cfg_test.cxx
+Starting at line 466 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/javaloader/javaloader.cxx
+
+		loader_getSupportedServiceNames, createSingleComponentFactory,
+		0 , 0
+	},
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+// NOTE: component_canUnload is not exported, as the library cannot be unloaded.
+
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+	const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+	void * pServiceManager, void * pRegistryKey )
+{
+	return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+	return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
+}
+}
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_cuno.c
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/test_cuno.c
+
+	aExc.ArgumentPosition = 5;
+	aExc._Base.Message = 0;
+	rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum...");
+	aExc._Base.Context = 0;
+	if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) ))
+	{
+		/* ... */
+		uno_any_destruct( &excp, 0 );
+	}
+
+	uno_any_construct(pExc, &aExc, pTD, c_acquire);
+	uno_destructData(&aExc, pTD, c_release);
+	typelib_typedescription_release(pTD);
+	rtl_uString_release(pTypeName);
+
+	return CUNO_ERROR_EXCEPTION;	
+}	
+=====================================================================
+Found a 18 line (104 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HTables.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YTables.cxx
+
+	return new OMySQLTable(this,static_cast<OMySQLCatalog&>(m_rParent).getConnection());
+}
+// -------------------------------------------------------------------------
+// XAppend
+sdbcx::ObjectType OTables::appendObject( const ::rtl::OUString& _rForName, const Reference< XPropertySet >& descriptor )
+{
+	createTable(descriptor);
+    return createObject( _rForName );
+}
+// -------------------------------------------------------------------------
+// XDrop
+void OTables::dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName)
+{
+    Reference< XInterface > xObject( getObject( _nPos ) );
+    sal_Bool bIsNew = connectivity::sdbcx::ODescriptor::isNew( xObject );
+	if (!bIsNew)
+	{
+		Reference< XConnection > xConnection = static_cast<OMySQLCatalog&>(m_rParent).getConnection();
+=====================================================================
+Found a 22 line (104 tokens) duplication in the following files: 
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/codemaker/typemanager.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/unodevtools/source/unodevtools/typemanager.cxx
+
+typereg::Reader UnoTypeManager::getTypeReader(RegistryKey& rTypeKey) const
+{
+    typereg::Reader reader;
+	
+	if (rTypeKey.isValid()) {
+		RegValueType 	valueType;
+		sal_uInt32		valueSize;
+
+		if (!rTypeKey.getValueInfo(OUString(), &valueType, &valueSize)) {
+			sal_uInt8*	pBuffer = (sal_uInt8*)rtl_allocateMemory(valueSize);	
+			if ( !rTypeKey.getValue(OUString(), pBuffer) ) {
+                reader = typereg::Reader(
+                    pBuffer, valueSize, true, TYPEREG_VERSION_1);
+			}		
+			rtl_freeMemory(pBuffer);
+		}
+	}
+	return reader;
+}	
+
+
+RTTypeClass UnoTypeManager::getTypeClass(const OString& name) const
+=====================================================================
+Found a 11 line (104 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/AreaChart.cxx
+Starting at line 587 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/AreaChart.cxx
+
+        for( ; aZSlotIter != aZSlotEnd; aZSlotIter++ )
+        {
+            ::std::vector< VDataSeriesGroup >::iterator             aXSlotIter = aZSlotIter->begin();
+            const ::std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
+
+            //iterate through all x slots in this category to get 100percent sum
+            for( ; aXSlotIter != aXSlotEnd; aXSlotIter++ )
+	        {
+                ::std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
+                ::std::vector< VDataSeries* >::const_iterator       aSeriesIter = pSeriesList->begin();
+                const ::std::vector< VDataSeries* >::const_iterator aSeriesEnd  = pSeriesList->end();
+=====================================================================
+Found a 21 line (104 tokens) duplication in the following files: 
+Starting at line 145 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataPoint.cxx
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/main/DataSeries.cxx
+
+        Reference< beans::XPropertySet > xPropertySet;
+        uno::Any aValue;
+
+        getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_X );
+        if( ( aValue >>= xPropertySet )
+            && xPropertySet.is())
+            ModifyListenerHelper::removeListener( xPropertySet, m_xModifyEventForwarder );
+
+        getFastPropertyValue( aValue, DataPointProperties::PROP_DATAPOINT_ERROR_BAR_Y );
+        if( ( aValue >>= xPropertySet )
+            && xPropertySet.is())
+            ModifyListenerHelper::removeListener( xPropertySet, m_xModifyEventForwarder );
+    }
+    catch( const uno::Exception & ex )
+    {
+        ASSERT_EXCEPTION( ex );
+    }
+}
+
+// ____ XCloneable ____
+uno::Reference< util::XCloneable > SAL_CALL DataSeries::createClone()
+=====================================================================
+Found a 19 line (104 tokens) duplication in the following files: 
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/AxisWrapper.cxx
+Starting at line 273 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/LegendWrapper.cxx
+
+                  ::getCppuType( reinterpret_cast< const ::com::sun::star::chart::ChartLegendPosition * >(0)),
+                  beans::PropertyAttribute::BOUND
+                  | beans::PropertyAttribute::MAYBEDEFAULT ));
+}
+
+const Sequence< Property > & lcl_GetPropertySequence()
+{
+    static Sequence< Property > aPropSeq;
+
+    // /--
+    MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+    if( 0 == aPropSeq.getLength() )
+    {
+        // get properties
+        ::std::vector< ::com::sun::star::beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+        ::chart::CharacterProperties::AddPropertiesToVector( aProperties );
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::FillProperties::AddPropertiesToVector( aProperties );
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/null/null_devicehelper.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/devicehelper.cxx
+
+        if( !mpOutputWindow )
+            return uno::Reference< rendering::XBezierPolyPolygon2D >(); // we're disposed
+
+        return uno::Reference< rendering::XBezierPolyPolygon2D >( 
+            new ::canvas::LinePolyPolygonBase( 
+                ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence( points ) ) );
+    }
+
+    uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	,
+        const geometry::IntegerSize2D& 						size )
+    {
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XBitmap >(); // we're disposed
+
+        return uno::Reference< rendering::XBitmap >( 
+            new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
+=====================================================================
+Found a 21 line (104 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_devicehelper.cxx
+Starting at line 243 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/devicehelper.cxx
+
+                                          rBounds.Height) );
+    }
+
+    void DeviceHelper::dumpScreenContent() const
+    {
+        static sal_uInt32 nFilePostfixCount(0);
+
+        if( mpOutputWindow )
+        {
+            String aFilename( String::CreateFromAscii("dbg_frontbuffer") );
+            aFilename += String::CreateFromInt32(nFilePostfixCount);
+            aFilename += String::CreateFromAscii(".bmp");
+
+            SvFileStream aStream( aFilename, STREAM_STD_READWRITE );
+
+            const ::Point aEmptyPoint;
+            bool bOldMap( mpOutputWindow->IsMapModeEnabled() );
+            mpOutputWindow->EnableMapMode( FALSE );
+            aStream << mpOutputWindow->GetBitmap(aEmptyPoint,
+                                                mpOutputWindow->GetOutputSizePixel());
+            mpOutputWindow->EnableMapMode( bOldMap );
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_devicehelper.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/devicehelper.cxx
+
+        if( !mpOutputWindow )
+            return uno::Reference< rendering::XBezierPolyPolygon2D >(); // we're disposed
+
+        return uno::Reference< rendering::XBezierPolyPolygon2D >( 
+            new ::canvas::LinePolyPolygonBase( 
+                ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence( points ) ) );
+    }
+
+    uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap( 
+        const uno::Reference< rendering::XGraphicDevice >& 	,
+        const geometry::IntegerSize2D& 						size )
+    {
+        if( !mpSpriteCanvas )
+            return uno::Reference< rendering::XBitmap >(); // we're disposed
+
+        return uno::Reference< rendering::XBitmap >( 
+            new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+		    nRes = *p->pnInt64; break;
+
+		// from here the values has to be checked
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			aTmp.nUShort = *p->pUShort; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+        case SbxBYREF | SbxSALUINT64:
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxchar.cxx
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxuint.cxx
+
+			p->nULong = n; break;
+		case SbxSINGLE:
+			p->nSingle = n; break;
+		case SbxDATE:
+		case SbxDOUBLE:
+			p->nDouble = n; break;
+		case SbxSALINT64:
+			p->nInt64 = n; break;
+		case SbxSALUINT64:
+			p->uInt64 = n; break;
+		case SbxULONG64:
+			p->nULong64 = ImpDoubleToUINT64( (double)n ); break;
+		case SbxLONG64:
+			p->nLong64 = ImpDoubleToINT64( (double)n ); break;
+		case SbxCURRENCY:
+			p->nLong64 = ImpDoubleToCurrency( (double)n ); break;
+		case SbxDECIMAL:
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxchar.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+		    nRes = *p->pnInt64; break;
+
+		// from here the values has to be checked
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			aTmp.nUShort = *p->pUShort; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+        case SbxBYREF | SbxSALUINT64:
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 253 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxchar.cxx
+
+			p->nLong = n; break;
+		case SbxSINGLE:
+			p->nSingle = n; break;
+		case SbxDATE:
+		case SbxDOUBLE:
+			p->nDouble = n; break;
+		case SbxSALINT64:
+			p->nInt64 = n; break;
+		case SbxSALUINT64:
+			p->uInt64 = n; break;
+		case SbxULONG64:
+			p->nULong64 = ImpDoubleToUINT64( (double)n ); break;
+		case SbxLONG64:
+			p->nLong64 = ImpDoubleToINT64( (double)n ); break;
+		case SbxCURRENCY:
+			p->nLong64 = ImpDoubleToCurrency( (double)n ); break;
+		case SbxBYREF | SbxDECIMAL:
+=====================================================================
+Found a 17 line (104 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxbyte.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxint.cxx
+
+		    nRes = *p->pnInt64; break;
+
+		// from here the values has to be checked
+		case SbxBYREF | SbxERROR:
+		case SbxBYREF | SbxUSHORT:
+			aTmp.nUShort = *p->pUShort; goto ref;
+		case SbxBYREF | SbxSINGLE:
+			aTmp.nSingle = *p->pSingle; goto ref;
+		case SbxBYREF | SbxDATE:
+		case SbxBYREF | SbxDOUBLE:
+			aTmp.nDouble = *p->pDouble; goto ref;
+		case SbxBYREF | SbxULONG64:
+			aTmp.nULong64 = *p->pULong64; goto ref;
+		case SbxBYREF | SbxLONG64:
+		case SbxBYREF | SbxCURRENCY:
+			aTmp.nLong64 = *p->pLong64; goto ref;
+        case SbxBYREF | SbxSALUINT64:
+=====================================================================
+Found a 15 line (104 tokens) duplication in the following files: 
+Starting at line 2103 of /local/ooo-build/ooo-build/src/oog680-m3/animations/source/animcore/animcore.cxx
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unogstyl.cxx
+
+const ::com::sun::star::uno::Sequence< sal_Int8 > & SdUnoGraphicStyle::getUnoTunnelId() throw()
+{
+	static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0;
+	if( !pSeq )
+	{
+		::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+		if( !pSeq )
+		{
+			static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+			rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+			pSeq = &aSeq;
+		}
+	}
+	return *pSeq;
+}
+=====================================================================
+Found a 13 line (103 tokens) duplication in the following files: 
+Starting at line 6178 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6484 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        7, // 0x28 '('
+        0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x00,
+
+        7, // 0x29 ')'
+        0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x00,
+
+        7, // 0x2A '*'
+        0x00,0x00,0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x00,
+
+        7, // 0x2B '+'
+        0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 11 line (103 tokens) duplication in the following files: 
+Starting at line 4413 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 6249 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        7, // 0x3F '?'
+        0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+        7, // 0x40 '@'
+        0x00,0x38,0x44,0x44,0x5C,0x54,0x54,0x4C,0x40,0x38,0x00,0x00,
+
+        7, // 0x41 'A'
+        0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,
+
+        7, // 0x42 'B'
+        0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,
+=====================================================================
+Found a 19 line (103 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, 0),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+            calc_type fg[4];
+=====================================================================
+Found a 28 line (103 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+
+                }
+
+                span->r = (value_type)fg[order_type::R];
+                span->g = (value_type)fg[order_type::G];
+                span->b = (value_type)fg[order_type::B];
+                span->a = (value_type)src_alpha;
+                ++span;
+                ++base_type::interpolator();
+
+            } while(--len);
+
+            return base_type::allocator().span();
+        }
+    };
+
+
+
+
+
+
+
+
+    //=========================================span_image_filter_rgb_2x2
+    template<class ColorT,
+             class Order, 
+             class Interpolator, 
+             class Allocator = span_allocator<ColorT> > 
+    class span_image_filter_rgb_2x2 : 
+=====================================================================
+Found a 7 line (103 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_markers.h
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_renderer_markers.h
+
+                    int r3 = -(r / 3);
+                    do
+                    {
+                        base_type::ren().blend_pixel(x - dx, y + dy, base_type::line_color(), cover_full);
+                        base_type::ren().blend_pixel(x + dx, y + dy, base_type::line_color(), cover_full);
+                        base_type::ren().blend_pixel(x - dx, y - dy, base_type::line_color(), cover_full);
+                        base_type::ren().blend_pixel(x + dx, y - dy, base_type::line_color(), cover_full);
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 41 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgb.h
+Starting at line 87 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+        apply_gamma_dir_rgba(const GammaLut& gamma) : m_gamma(gamma) {}
+
+        AGG_INLINE void operator () (value_type* p)
+        {
+            p[Order::R] = m_gamma.dir(p[Order::R]);
+            p[Order::G] = m_gamma.dir(p[Order::G]);
+            p[Order::B] = m_gamma.dir(p[Order::B]);
+        }
+
+    private:
+        const GammaLut& m_gamma;
+    };
+
+
+
+    //=====================================================apply_gamma_inv_rgba
+    template<class ColorT, class Order, class GammaLut> class apply_gamma_inv_rgba
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 448 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/workben/signaturetest.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/xmlsecurity/workben/signaturetest.cxx
+
+IMPL_LINK( MyWin, VerifyButtonHdl, Button*, EMPTYARG )
+{
+    String aXMLFileName = maEditXMLFileName.GetText();
+    String aBINFileName = maEditBINFileName.GetText();
+    String aSIGFileName = maEditSIGFileName.GetText();
+
+	String aTokenFileName;
+	if ( !maCryptoCheckBox.IsChecked() )
+	    aTokenFileName = maEditTokenName.GetText();
+
+    XMLSignatureHelper aSignatureHelper( comphelper::getProcessServiceFactory() );
+    bool bInit = aSignatureHelper.Init( aTokenFileName );
+
+    if ( !bInit )
+    {
+        ErrorBox( this, WB_OK, String( RTL_CONSTASCII_USTRINGPARAM( "Error initializing security context!" ) ) ).Execute();
+        return 0;
+    }
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 100 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+Starting at line 483 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/PropertyActionsOASIS.cxx
+
+			   								  XML_VERTICAL_ALIGN ), 0, 0 },
+	{ XML_NAMESPACE_FO, XML_BORDER, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_TOP, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_ATACTION_INS2INCHS, 
+	  	NO_PARAMS }, /* generated entry */
+	{ XML_NAMESPACE_STYLE, XML_DIAGONAL_BL_TR, XML_ATACTION_INS2INCHS, 
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 90 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/ChartOASISTContext.cxx
+Starting at line 151 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/transform/FormPropOASISTContext.cxx
+
+	sal_Bool bIsVoid = sal_False;
+	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for( sal_Int16 i=0; i < nAttrCount; i++ )
+	{
+		const OUString& rAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix =
+			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName, 
+																 &aLocalName );
+		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
+		XMLTransformerActions::const_iterator aIter =
+			pActions->find( aKey );
+		if( !(aIter == pActions->end() ) )
+		{
+=====================================================================
+Found a 26 line (103 tokens) duplication in the following files: 
+Starting at line 6099 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salframe.cxx
+Starting at line 6127 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/window/salframe.cxx
+
+LRESULT CALLBACK SalFrameWndProcW( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam )
+{
+    int bDef = TRUE;
+    LRESULT nRet = 0;
+#ifdef __MINGW32__
+    jmp_buf jmpbuf;
+    __SEHandler han;
+    if (__builtin_setjmp(jmpbuf) == 0)
+    {
+        han.Set(jmpbuf, NULL, (__SEHandler::PF)EXCEPTION_EXECUTE_HANDLER);
+#else
+    __try
+    {
+#endif
+        nRet = SalFrameWndProc( hWnd, nMsg, wParam, lParam, bDef );
+    }
+#ifdef __MINGW32__
+    han.Reset();
+#else
+    __except(WinSalInstance::WorkaroundExceptionHandlingInUSER32Lib(GetExceptionCode(), GetExceptionInformation()))
+    {
+    }
+#endif
+
+    if ( bDef )
+        nRet = DefWindowProcW( hWnd, nMsg, wParam, lParam );
+=====================================================================
+Found a 10 line (103 tokens) duplication in the following files: 
+Starting at line 953 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dockmgr.cxx
+Starting at line 555 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/dockwin.cxx
+
+            Size    aFrameSize = mpWindowImpl->mpFrameWindow->GetOutputSizePixel();
+            if ( aFrameMousePos.X() < 0 )
+                aFrameMousePos.X() = 0;
+            if ( aFrameMousePos.Y() < 0 )
+                aFrameMousePos.Y() = 0;
+            if ( aFrameMousePos.X() > aFrameSize.Width()-1 )
+                aFrameMousePos.X() = aFrameSize.Width()-1;
+            if ( aFrameMousePos.Y() > aFrameSize.Height()-1 )
+                aFrameMousePos.Y() = aFrameSize.Height()-1;
+            aMousePos = ImplFrameToOutput( aFrameMousePos );
+=====================================================================
+Found a 15 line (103 tokens) duplication in the following files: 
+Starting at line 1894 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+Starting at line 1915 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev2.cxx
+
+                case( BMP_FORMAT_24BIT_TC_RGB ):
+                    {
+                        for( nY = 0; nY < nDstHeight; nY++ )
+                        {
+                            const long	nMapY = pMapY[ nY ];
+                            Scanline	pPScan = pP->GetScanline( nMapY );
+                            Scanline	pAScan = pA->GetScanline( nMapY );
+
+                            for( nX = 0; nX < nDstWidth; nX++ )
+                            {
+                                const long	nMapX = pMapX[ nX ];
+                                Scanline    pTmp = pPScan + nMapX * 3;
+
+                                aDstCol = pB->GetPixel( nY, nX );
+                                pB->SetPixel( nY, nX, aDstCol.Merge( pTmp[ 0 ], pTmp[ 1 ], pTmp[ 2 ],
+=====================================================================
+Found a 6 line (103 tokens) duplication in the following files: 
+Starting at line 176 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+Starting at line 295 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/rtftok/RTFScanner.cxx
+
+       13,   13,   22,   23,   24,   25,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 1857 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/edit.cxx
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+		long		nTextWidth = pDev->GetTextWidth( aText );
+		long		nOffX = 3*nOnePixel;
+		long		nOffY = (aSize.Height()-nTextHeight) / 2;
+
+		// Clipping?
+		if ( (nOffY < 0) ||
+			 ((nOffY+nTextHeight) > aSize.Height()) ||
+			 ((nOffX+nTextWidth) > aSize.Width()) )
+		{
+			Rectangle aClip( aPos, aSize );
+			if ( nTextHeight > aSize.Height() )
+				aClip.Bottom() += nTextHeight-aSize.Height()+1;  // Damit HP-Drucker nicht 'weg-optimieren'
+			pDev->IntersectClipRegion( aClip );
+		}
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 1824 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/source/gdi/salgdi.cxx
+Starting at line 2593 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/win/source/gdi/salgdi3.cxx
+
+                nGlyphIdx = ::MapChar( aSftTTF.get(), sal::static_int_cast<sal_uInt16>(nGlyphIdx), bVertical );
+            }
+        }
+        aShortIDs[i] = static_cast<USHORT>( nGlyphIdx );
+        if( !nGlyphIdx )
+            if( nNotDef < 0 )
+                nNotDef = i; // first NotDef glyph found
+    }
+
+    if( nNotDef != 0 )
+    {
+        // add fake NotDef glyph if needed
+        if( nNotDef < 0 )
+            nNotDef = nGlyphCount++;
+
+        // NotDef glyph must be in pos 0 => swap glyphids
+        aShortIDs[ nNotDef ] = aShortIDs[0];
+        aTempEncs[ nNotDef ] = aTempEncs[0];
+        aShortIDs[0] = 0;
+        aTempEncs[0] = 0;
+    }
+    DBG_ASSERT( nGlyphCount < 257, "too many glyphs for subsetting" );
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/aqua/inc/salsys.h
+Starting at line 62 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/inc/salsys.h
+
+    virtual ~X11SalSystem();
+    
+    // overload pure virtual methods
+    virtual unsigned int GetDisplayScreenCount();
+    virtual bool IsMultiDisplay();
+    virtual unsigned int GetDefaultDisplayNumber();
+    virtual Rectangle GetDisplayScreenPosSizePixel( unsigned int nScreen );
+    virtual Rectangle GetDisplayWorkAreaPosSizePixel( unsigned int nScreen );
+    virtual rtl::OUString GetScreenName( unsigned int nScreen );
+    virtual int ShowNativeDialog( const String& rTitle,
+                                  const String& rMessage,
+                                  const std::list< String >& rButtons,
+                                  int nDefButton );
+    virtual int ShowNativeMessageBox( const String& rTitle,
+                                      const String& rMessage,
+                                      int nButtonCombination,
+                                      int nDefaultButton);
+};
+=====================================================================
+Found a 27 line (103 tokens) duplication in the following files: 
+Starting at line 485 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 802 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavcontent.cxx
+
+        aRet <<= getCommandInfo( Environment, sal_False );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+                  RTL_CONSTASCII_STRINGPARAM( "open" ) ) )
+    {
+        //////////////////////////////////////////////////////////////////
+      	// open
+      	//////////////////////////////////////////////////////////////////
+
+        ucb::OpenCommandArgument2 aOpenCommand;
+        if ( !( aCommand.Argument >>= aOpenCommand ) )
+        {
+            ucbhelper::cancelCommandExecution(
+                uno::makeAny( lang::IllegalArgumentException(
+                                    rtl::OUString::createFromAscii(
+                                        "Wrong argument type!" ),
+                                    static_cast< cppu::OWeakObject * >( this ),
+                                    -1 ) ),
+                Environment );
+            // Unreachable
+        }
+
+        aRet = open( aOpenCommand, Environment );
+    }
+    else if ( aCommand.Name.equalsAsciiL(
+                  RTL_CONSTASCII_STRINGPARAM( "insert" ) ) )
+    {
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydata.cxx
+Starting at line 912 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/hierarchy/hierarchydata.cxx
+
+							"HierarchyEntry::remove - Wrong path!" );
+
+				aParentPath += m_aPath.copy( 0, nPos );
+				bRoot = sal_False;
+			}
+
+            uno::Sequence< uno::Any > aArguments( 1 );
+			beans::PropertyValue	  aProperty;
+
+			aProperty.Name	  = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+													CFGPROPERTY_NODEPATH ) );
+			aProperty.Value	<<= aParentPath;
+			aArguments[ 0 ]	<<= aProperty;
+
+			uno::Reference< util::XChangesBatch > xBatch(
+				m_xConfigProvider->createInstanceWithArguments(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+                        READWRITE_SERVICE_NAME ) ),
+					aArguments ),
+				uno::UNO_QUERY );
+
+            OSL_ENSURE( xBatch.is(),
+=====================================================================
+Found a 13 line (103 tokens) duplication in the following files: 
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/filglob.cxx
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/ucbhelper/tempfile.cxx
+
+rtl::OUString getParentName( const rtl::OUString& aFileName )
+{
+    sal_Int32 lastIndex = aFileName.lastIndexOf( sal_Unicode('/') );
+    rtl::OUString aParent = aFileName.copy( 0,lastIndex );
+
+    if( aParent[ aParent.getLength()-1] == sal_Unicode(':') && aParent.getLength() == 6 )
+        aParent += rtl::OUString::createFromAscii( "/" );
+
+    if( 0 == aParent.compareToAscii( "file://" ) )
+        aParent = rtl::OUString::createFromAscii( "file:///" );
+
+    return aParent;
+}
+=====================================================================
+Found a 34 line (103 tokens) duplication in the following files: 
+Starting at line 799 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwtxtsh.cxx
+Starting at line 1119 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/textsh.cxx
+
+void SwTextShell::ExecTransliteration( SfxRequest & rReq )
+{
+	using namespace ::com::sun::star::i18n;
+	{
+		sal_uInt32 nMode = 0;
+
+		switch( rReq.GetSlot() )
+		{
+		case SID_TRANSLITERATE_UPPER:
+			nMode = TransliterationModules_LOWERCASE_UPPERCASE;
+			break;
+		case SID_TRANSLITERATE_LOWER:
+			nMode = TransliterationModules_UPPERCASE_LOWERCASE;
+			break;
+
+		case SID_TRANSLITERATE_HALFWIDTH:
+			nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
+			break;
+		case SID_TRANSLITERATE_FULLWIDTH:
+			nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
+			break;
+
+		case SID_TRANSLITERATE_HIRAGANA:
+			nMode = TransliterationModules_KATAKANA_HIRAGANA;
+			break;
+		case SID_TRANSLITERATE_KATAGANA:
+			nMode = TransliterationModules_HIRAGANA_KATAKANA;
+			break;
+
+		default:
+			ASSERT(!this, "falscher Dispatcher");
+		}
+
+		if( nMode )
+=====================================================================
+Found a 13 line (103 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/usrpref.cxx
+Starting at line 360 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/usrpref.cxx
+
+void SwLayoutViewConfig::Load()
+{
+	Sequence<OUString> aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			if(pValues[nProp].hasValue())
+			{
+                sal_Bool bSet = nProp < 8 || nProp == 10 ? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
+=====================================================================
+Found a 16 line (103 tokens) duplication in the following files: 
+Starting at line 4070 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4205 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+	_HTMLAttrContext *pCntxt = new _HTMLAttrContext( nToken, nColl, aClass );
+
+	// Styles parsen (zu Class siehe auch NewPara)
+	if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
+	{
+		SfxItemSet aItemSet( pDoc->GetAttrPool(), pCSS1Parser->GetWhichMap() );
+		SvxCSS1PropertyInfo aPropInfo;
+
+		if( ParseStyleOptions( aStyle, aId, aEmptyStr, aItemSet, aPropInfo, &aLang, &aDir ) )
+		{
+			ASSERT( !aClass.Len() || !pCSS1Parser->GetClass( aClass ),
+					"Class wird nicht beruecksichtigt" );
+			DoPositioning( aItemSet, aPropInfo, pCntxt );
+			InsertAttrs( aItemSet, aPropInfo, pCntxt );
+		}
+	}
+=====================================================================
+Found a 15 line (103 tokens) duplication in the following files: 
+Starting at line 2147 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoframe.cxx
+Starting at line 1099 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc )
+	{
+		SwUnoInternalPaM aPam(*pDoc);
+=====================================================================
+Found a 12 line (103 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/unins.cxx
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/untblk.cxx
+
+	pHistory->Rollback( pDoc, nSetPos );
+
+	if( pRedlData && IDocumentRedlineAccess::IsRedlineOn( GetRedlineMode() ))
+	{
+		IDocumentRedlineAccess::RedlineMode_t eOld = pDoc->GetRedlineMode();
+		pDoc->SetRedlineMode_intern((IDocumentRedlineAccess::RedlineMode_t)( eOld & ~IDocumentRedlineAccess::REDLINE_IGNORE ));
+		pDoc->AppendRedline( new SwRedline( *pRedlData, *pPam ), true);
+		pDoc->SetRedlineMode_intern( eOld );
+	}
+	else if( !( IDocumentRedlineAccess::REDLINE_IGNORE & GetRedlineMode() ) &&
+			pDoc->GetRedlineTbl().Count() )
+		pDoc->SplitRedline( *pPam );
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 443 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docftn.cxx
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docftn.cxx
+
+			nEndCnt >= *pTxtFtn->GetStart() ) )
+		{
+			const SwFmtFtn& rFtn = pTxtFtn->GetFtn();
+			if( /*rFtn.GetNumber() != nNumber ||*/
+				rFtn.GetNumStr() != rNumStr ||
+				rFtn.IsEndNote() != bIsEndNote )
+			{
+				bChg = TRUE;
+				if( pUndo )
+					pUndo->GetHistory()->Add( *pTxtFtn );
+
+				pTxtFtn->SetNumber( nNumber, &rNumStr );
+				if( rFtn.IsEndNote() != bIsEndNote )
+				{
+					((SwFmtFtn&)rFtn).SetEndNote( bIsEndNote );
+					bTypeChgd = TRUE;
+					pTxtFtn->CheckCondColl();
+=====================================================================
+Found a 16 line (103 tokens) duplication in the following files: 
+Starting at line 272 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/doc/docdraw.cxx
+Starting at line 774 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/anchoreddrawobject.cxx
+
+    const bool bR2L = _pNewAnchorFrm->IsRightToLeft();
+    if ( bVert )
+    {
+        nHoriRelPos = aObjRect.Top() - aAnchorPos.Y();
+        nVertRelPos = aAnchorPos.X() - aObjRect.Right();
+    }
+    else if ( bR2L )
+    {
+        nHoriRelPos = aAnchorPos.X() - aObjRect.Right();
+        nVertRelPos = aObjRect.Top() - aAnchorPos.Y();
+    }
+    else
+    {
+        nHoriRelPos = aObjRect.Left() - aAnchorPos.X();
+        nVertRelPos = aObjRect.Top() - aAnchorPos.Y();
+    }
+=====================================================================
+Found a 10 line (103 tokens) duplication in the following files: 
+Starting at line 1604 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unotext.cxx
+Starting at line 1753 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unoedit/unotext.cxx
+
+        *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextPortionAppend >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< lang::XServiceInfo >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< lang::XTypeProvider >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< lang::XUnoTunnel >*)0);
+		*pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRangeCompare >*)0);
+	}
+	return maTypeSequence;
+}
+
+uno::Sequence< uno::Type > SAL_CALL SvxUnoTextBase::getTypes()
+=====================================================================
+Found a 16 line (103 tokens) duplication in the following files: 
+Starting at line 3146 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+Starting at line 2211 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdotext.cxx
+
+void SdrTextObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const basegfx::B2DPolyPolygon& /*rPolyPolygon*/)
+{
+	// break up matrix
+	basegfx::B2DTuple aScale;
+	basegfx::B2DTuple aTranslate;
+	double fRotate, fShearX;
+	rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+
+	// #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+	// in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+	if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+	{
+		aScale.setX(fabs(aScale.getX()));
+		aScale.setY(fabs(aScale.getY()));
+		fRotate = fmod(fRotate + F_PI, F_2PI);
+	}
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 1356 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdocirc.cxx
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdorect.cxx
+
+		long nDst=Round((aRect.Bottom()-aRect.Top())*aGeo.nTan);
+		if (aGeo.nShearWink>0) {
+			Point aRef(rRect.TopLeft());
+			rRect.Left()-=nDst;
+			Point aTmpPt(rRect.TopLeft());
+			RotatePoint(aTmpPt,aRef,aGeo.nSin,aGeo.nCos);
+			aTmpPt-=rRect.TopLeft();
+			rRect.Move(aTmpPt.X(),aTmpPt.Y());
+		} else {
+			rRect.Right()-=nDst;
+		}
+	}
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// #i25616#
+
+void SdrRectObj::ImpDoPaintRectObjShadow(XOutputDevice& rXOut, const SdrPaintInfoRec& rInfoRec, 
+=====================================================================
+Found a 16 line (103 tokens) duplication in the following files: 
+Starting at line 3700 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoashp.cxx
+Starting at line 3146 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const basegfx::B2DPolyPolygon& rPolyPolygon)
+{
+	// break up matrix
+	basegfx::B2DTuple aScale;
+	basegfx::B2DTuple aTranslate;
+	double fRotate, fShearX;
+	rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+
+	// #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+	// in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+	if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+	{
+		aScale.setX(fabs(aScale.getX()));
+		aScale.setY(fabs(aScale.getY()));
+		fRotate = fmod(fRotate + F_PI, F_2PI);
+	}
+=====================================================================
+Found a 16 line (103 tokens) duplication in the following files: 
+Starting at line 1327 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+Starting at line 1394 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+		if(pView && !pView->areMarkHandlesHidden())
+		{
+			SdrPageView* pPageView = pView->GetSdrPageView();
+
+			if(pPageView)
+			{
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+							basegfx::B2DPoint aPosition1(pHdl1->GetPos().X(), pHdl1->GetPos().Y());
+							basegfx::B2DPoint aPosition2(aPos.X(), aPos.Y());
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 1934 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2605 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+sal_Bool OCX_ComboBox::Import(com::sun::star::uno::Reference<
+    com::sun::star::beans::XPropertySet> &rPropSet)
+{
+
+	uno::Any aTmp(&sName,getCppuType((OUString *)0));
+	rPropSet->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
+
+    aTmp = bool2any(fEnabled != 0);
+	rPropSet->setPropertyValue( WW8_ASCII2STR("Enabled"), aTmp);
+
+    aTmp = bool2any(fLocked != 0);
+	rPropSet->setPropertyValue( WW8_ASCII2STR("ReadOnly"), aTmp);
+
+    aTmp = bool2any( nDropButtonStyle != 0 );
+=====================================================================
+Found a 23 line (103 tokens) duplication in the following files: 
+Starting at line 1870 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/editdoc.cxx
+Starting at line 1928 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/editdoc.cxx
+
+				rCurSet.InvalidateItem( pAttr->GetItem()->Which() );
+			}
+
+			if ( pItem )
+			{
+				USHORT nWhich = pItem->Which();
+				if ( rCurSet.GetItemState( nWhich ) == SFX_ITEM_OFF )
+				{
+					rCurSet.Put( *pItem );
+				}
+				else if ( rCurSet.GetItemState( nWhich ) == SFX_ITEM_ON )
+				{
+					const SfxPoolItem& rItem = rCurSet.Get( nWhich );
+					if ( rItem != *pItem )
+					{
+						rCurSet.InvalidateItem( nWhich );
+					}
+				}
+			}
+			nAttr++;
+			pAttr = GetAttrib( pNode->GetCharAttribs().GetAttribs(), nAttr );
+		}
+	}
+=====================================================================
+Found a 29 line (103 tokens) duplication in the following files: 
+Starting at line 593 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/fontsubs.cxx
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optfltr.cxx
+
+void OfaMSFilterTabPage2::MSFltrSimpleTable::SetCheckButtonState(
+                            SvLBoxEntry* pEntry, USHORT nCol, SvButtonState eState)
+{
+	SvLBoxButton* pItem = (SvLBoxButton*)(pEntry->GetItem(nCol + 1));
+
+	DBG_ASSERT(pItem,"SetCheckButton:Item not found")
+	if (((SvLBoxItem*)pItem)->IsA() == SV_ITEM_ID_LBOXBUTTON)
+	{
+		switch( eState )
+		{
+			case SV_BUTTON_CHECKED:
+				pItem->SetStateChecked();
+				break;
+
+			case SV_BUTTON_UNCHECKED:
+				pItem->SetStateUnchecked();
+				break;
+
+			case SV_BUTTON_TRISTATE:
+				pItem->SetStateTristate();
+				break;
+		}
+		InvalidateEntry( pEntry );
+	}
+}
+/* -----------------------------2002/06/20 11:56------------------------------
+
+ ---------------------------------------------------------------------------*/
+SvButtonState OfaMSFilterTabPage2::MSFltrSimpleTable::GetCheckButtonState(
+=====================================================================
+Found a 27 line (103 tokens) duplication in the following files: 
+Starting at line 2003 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+Starting at line 2142 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+Starting at line 2234 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numfmt.cxx
+
+void SvxNumberPreviewImpl::InitSettings( BOOL bForeground, BOOL bBackground )
+{
+	const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+
+	if ( bForeground )
+	{
+		svtools::ColorConfig aColorConfig;
+		Color aTextColor( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
+
+		if ( IsControlForeground() )
+			aTextColor = GetControlForeground();
+		SetTextColor( aTextColor );
+	}
+
+	if ( bBackground )
+	{
+		if ( IsControlBackground() )
+			SetBackground( GetControlBackground() );
+		else
+			SetBackground( rStyleSettings.GetWindowColor() );
+	}
+	Invalidate();
+}
+
+// -----------------------------------------------------------------------
+
+void SvxNumberPreviewImpl::StateChanged( StateChangedType nType )
+=====================================================================
+Found a 30 line (103 tokens) duplication in the following files: 
+Starting at line 972 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/autocdlg.cxx
+Starting at line 593 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/fontsubs.cxx
+
+void SvxFontSubstCheckListBox::SetCheckButtonState( SvLBoxEntry* pEntry, USHORT nCol, SvButtonState eState)
+{
+	SvLBoxButton* pItem = (SvLBoxButton*)(pEntry->GetItem(nCol + 1));
+
+	DBG_ASSERT(pItem,"SetCheckButton:Item not found")
+	if (((SvLBoxItem*)pItem)->IsA() == SV_ITEM_ID_LBOXBUTTON)
+	{
+		switch( eState )
+		{
+			case SV_BUTTON_CHECKED:
+				pItem->SetStateChecked();
+				break;
+
+			case SV_BUTTON_UNCHECKED:
+				pItem->SetStateUnchecked();
+				break;
+
+			case SV_BUTTON_TRISTATE:
+				pItem->SetStateTristate();
+				break;
+		}
+		InvalidateEntry( pEntry );
+	}
+}
+
+/*********************************************************************/
+/*                                                                   */
+/*********************************************************************/
+
+SvButtonState SvxFontSubstCheckListBox::GetCheckButtonState( SvLBoxEntry* pEntry, USHORT nCol ) const
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 2083 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1814 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+	{ 0x18 MSO_I, 10800 }, { 0x1c MSO_I, 10800 }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I }
+
+};
+static const sal_uInt16 mso_sptActionButtonHomeSegm[] =
+{
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x000a, 0x6001, 0x8000,
+	0x4000, 0x0003, 0x6001, 0x8000,
+	0x4000, 0x0007, 0x6001, 0x8000
+};
+static const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] =	// adj value 0 - 5400
+{
+	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 425 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/framestatuslistener.cxx
+Starting at line 670 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+void StatusbarController::updateStatus( const rtl::OUString aCommandURL )
+{
+    Reference< XDispatch > xDispatch;
+    Reference< XStatusListener > xStatusListener;
+    com::sun::star::util::URL aTargetURL;
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        if ( !m_bInitialized )
+            return;
+        
+        // Try to find a dispatch object for the requested command URL
+        Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+        xStatusListener = Reference< XStatusListener >( static_cast< OWeakObject* >( this ), UNO_QUERY );
+        if ( m_xServiceManager.is() && xDispatchProvider.is() )
+        {
+            Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 1918 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zformat.cxx
+Starting at line 2584 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zformat.cxx
+
+    const USHORT nAnz = NumFor[nIx].GetnAnz();
+    for (USHORT i = 0; i < nAnz; i++)
+    {
+        switch (rInfo.nTypeArray[i])
+        {
+            case NF_SYMBOLTYPE_STAR:
+                if( bStarFlag )
+                {
+                    OutString += (sal_Unicode) 0x1B;
+                    OutString += rInfo.sStrArray[i].GetChar(1);
+                    bRes = TRUE;
+                }
+                break;
+            case NF_SYMBOLTYPE_BLANK:
+                InsertBlanks( OutString, OutString.Len(),
+                    rInfo.sStrArray[i].GetChar(1) );
+                break;
+            case NF_SYMBOLTYPE_STRING:
+=====================================================================
+Found a 33 line (103 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/poolitem.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/items1/poolitem.cxx
+
+	DBG_CTOR(SfxPoolItem, 0);
+#if OSL_DEBUG_LEVEL > 1
+	++nItemCount;
+	if ( pw1 && nItemCount>=10000 )
+	{
+		DBG_WARNING( pw1 );
+		pw1 = NULL;
+	}
+	if ( pw2 && nItemCount>=100000 )
+	{
+		DBG_WARNING( pw2 );
+		pw2 = NULL;
+	}
+	if ( pw3 && nItemCount>=1000000 )
+	{
+		DBG_WARNING( pw3 );
+		pw3 = NULL;
+	}
+	if ( pw4 && nItemCount>=5000000 )
+	{
+		DBG_WARNING( pw4 );
+		pw4 = NULL;
+	}
+	if ( pw5 && nItemCount>=10000000 )
+	{
+		DBG_WARNING( pw5 );
+		pw5 = NULL;
+	}
+#endif
+}
+
+// ------------------------------------------------------------------------
+SfxPoolItem::~SfxPoolItem()
+=====================================================================
+Found a 26 line (103 tokens) duplication in the following files: 
+Starting at line 229 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svtabbx.cxx
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svtabbx.cxx
+
+	const Image& rExpandedEntryBmp,	const Image& rCollapsedEntryBmp,
+	SvLBoxEntry* pParent,ULONG nPos,USHORT nCol, void* pUser )
+{
+	XubString aStr;
+	if( nCol != 0xffff )
+	{
+		while( nCol )
+		{
+			aStr += '\t';
+			nCol--;
+		}
+	}
+	aStr += rStr;
+	XubString aFirstStr( aStr );
+	USHORT nEnd = aFirstStr.Search( '\t' );
+	if( nEnd != STRING_NOTFOUND )
+	{
+		aFirstStr.Erase( nEnd );
+		aCurEntry = aStr;
+		aCurEntry.Erase( 0, ++nEnd );
+	}
+	else
+		aCurEntry.Erase();
+
+	return SvTreeListBox::InsertEntry(
+		aFirstStr,
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 2849 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/imivctl1.cxx
+Starting at line 2910 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svimpicn.cxx
+
+void SvImpIconView::ClipAtVirtOutRect( Rectangle& rRect ) const
+{
+	if( rRect.Bottom() >= aVirtOutputSize.Height() )
+		rRect.Bottom() = aVirtOutputSize.Height() - 1;
+	if( rRect.Right() >= aVirtOutputSize.Width() )
+		rRect.Right() = aVirtOutputSize.Width() - 1;
+	if( rRect.Top() < 0 )
+		rRect.Top() = 0;
+	if( rRect.Left() < 0 )
+		rRect.Left() = 0;
+}
+
+// rRect: Bereich des Dokumentes (in Dokumentkoordinaten), der
+// sichtbar gemacht werden soll.
+// bScrBar == TRUE: Das Rect wurde aufgrund eines ScrollBar-Events berechnet
+
+void SvImpIconView::MakeVisible( const Rectangle& rRect, BOOL bScrBar )
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 155 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/misccfg.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/envelp/envimg.cxx
+
+	Sequence<OUString> aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+	EnableNotification(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			if(pValues[nProp].hasValue())
+			{
+				switch(nProp)
+				{
+					case  0: pValues[nProp] >>= aEnvItem.aAddrText; break;// "Inscription/Addressee",
+=====================================================================
+Found a 11 line (103 tokens) duplication in the following files: 
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/historyoptions.cxx
+Starting at line 514 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/historyoptions.cxx
+Starting at line 532 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/historyoptions.cxx
+
+        sNode   = PROPERTYNAME_HELPBOOKMARKS + PATHDELIMITER + FIXB + OUString::valueOf( (sal_Int32)nItem ) + PATHDELIMITER;
+		seqPropertyValues[OFFSET_URL		].Name  =	sNode + PROPERTYNAME_HISTORYITEM_URL		;
+		seqPropertyValues[OFFSET_FILTER		].Name  =	sNode + PROPERTYNAME_HISTORYITEM_FILTER		;
+		seqPropertyValues[OFFSET_TITLE		].Name  =	sNode + PROPERTYNAME_HISTORYITEM_TITLE		;
+		seqPropertyValues[OFFSET_PASSWORD	].Name  =	sNode + PROPERTYNAME_HISTORYITEM_PASSWORD	;
+		seqPropertyValues[OFFSET_URL		].Value <<=	aItem.sURL									;
+		seqPropertyValues[OFFSET_FILTER		].Value <<=	aItem.sFilter								;
+		seqPropertyValues[OFFSET_TITLE		].Value <<=	aItem.sTitle								;
+		seqPropertyValues[OFFSET_PASSWORD	].Value <<=	aItem.sPassword								;
+
+        SetSetProperties( PROPERTYNAME_HELPBOOKMARKS, seqPropertyValues );
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+Starting at line 1025 of /local/ooo-build/ooo-build/src/oog680-m3/store/source/storpage.cxx
+
+	eErrCode = find (e, *m_pNode[0]);
+	if (eErrCode != store_E_None)
+		return eErrCode;
+
+	// Find 'Source' Index.
+	sal_uInt16 i = m_pNode[0]->find(e), n = m_pNode[0]->usageCount();
+	if (!(i < n))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Check for exact match.
+	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
+	{
+		// Page not present.
+		return store_E_NotExists;
+	}
+
+	// Existing 'Source' entry. Check address.
+	e = m_pNode[0]->m_pData[i];
+	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+=====================================================================
+Found a 20 line (103 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crcomp.cxx
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/crenum.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/stoc/source/corereflection/criface.cxx
+
+Sequence< Type > IdlAttributeFieldImpl::getTypes()
+	throw (::com::sun::star::uno::RuntimeException)
+{
+	static OTypeCollection * s_pTypes = 0;
+	if (! s_pTypes)
+	{
+		MutexGuard aGuard( getMutexAccess() );
+		if (! s_pTypes)
+		{
+			static OTypeCollection s_aTypes(
+				::getCppuType( (const Reference< XIdlField2 > *)0 ),
+				::getCppuType( (const Reference< XIdlField > *)0 ),
+				IdlMemberImpl::getTypes() );
+			s_pTypes = &s_aTypes;
+		}
+	}
+	return s_pTypes->getTypes();
+}
+//__________________________________________________________________________________________________
+Sequence< sal_Int8 > IdlAttributeFieldImpl::getImplementationId()
+=====================================================================
+Found a 27 line (103 tokens) duplication in the following files: 
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/frmload.cxx
+Starting at line 482 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/view/frmload.cxx
+
+                const SfxPoolItem* pRet = pApp->NewDocDirectExec_ImplOld(aReq);
+                if (pRet)
+                {
+                    // default must be set to true, because some return values
+                    // cant be checked ... but indicates "success"!
+                    bLoadState = sal_True;
+
+                    // On the other side some special slots return a boolean state,
+                    // which can be set to FALSE.
+                    SfxBoolItem *pItem = PTR_CAST( SfxBoolItem, pRet );
+                    if (pItem)
+                        bLoadState = pItem->GetValue();
+                }
+                else
+                    bLoadState = sal_False;
+
+                if ( !bLoadState && bFrameCreated && wFrame && !wFrame->GetCurrentDocument() )
+                {
+                    css::uno::Reference< css::frame::XFrame > axFrame;
+                    wFrame->SetFrameInterface_Impl( axFrame );
+                    wFrame->DoClose();
+                }
+
+                xFrame.clear();
+                xListener.clear();
+                return bLoadState;
+            }
+=====================================================================
+Found a 5 line (103 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+Starting at line 345 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unopage.cxx
+
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM),			WID_PAGE_BOTTOM,	&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT),				WID_PAGE_LEFT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT),			WID_PAGE_RIGHT,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_TOP),				WID_PAGE_TOP,		&::getCppuType((const sal_Int32*)0),			0,	0},
+		{ MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT),			WID_PAGE_HEIGHT,	&::getCppuType((const sal_Int32*)0),			0,	0},
+=====================================================================
+Found a 13 line (103 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
+Starting at line 486 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
+
+	rtl::OUString sDescription;
+
+    uno::Reference<lang::XServiceInfo> xInfo (mxController, uno::UNO_QUERY);
+    if (xInfo.is())
+    {
+        uno::Sequence< ::rtl::OUString > aServices( xInfo->getSupportedServiceNames() );
+        OUString sFirstService = aServices[0];
+        if (sFirstService == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.DrawingDocumentDrawView")))
+        {
+            if( aServices.getLength() >= 2 &&
+                aServices[1] == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PresentationView")))
+            {
+                ::vos::OGuard aGuard( Application::GetSolarMutex() );
+=====================================================================
+Found a 20 line (103 tokens) duplication in the following files: 
+Starting at line 474 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/EffectMigration.cxx
+Starting at line 641 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/core/EffectMigration.cxx
+
+void EffectMigration::SetTextAnimationEffect( SvxShape* pShape, AnimationEffect eEffect )
+{
+	DBG_ASSERT( pShape && pShape->GetSdrObject() && pShape->GetSdrObject()->GetPage(),
+				"sd::EffectMigration::SetAnimationEffect(), invalid argument!" );
+	if( !pShape || !pShape->GetSdrObject() || !pShape->GetSdrObject()->GetPage() )
+		return;
+
+	SdrObject* pObj = pShape->GetSdrObject();
+	if( implIsInsideGroup( pObj ) )
+		return;
+
+	// first map the deprecated AnimationEffect to a preset and subtype
+	OUString aPresetId;
+	OUString aPresetSubType;
+
+	if( !ConvertAnimationEffect( eEffect, aPresetId, aPresetSubType ) )
+	{
+		DBG_ERROR( "sd::EffectMigration::SetAnimationEffect(), no mapping for given AnimationEffect value" );
+		return;
+	}
+=====================================================================
+Found a 9 line (103 tokens) duplication in the following files: 
+Starting at line 660 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/prevloc.cxx
+Starting at line 679 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/prevloc.cxx
+
+			for ( nCol=nMainColStart; nCol<=nMainColEnd; nCol++ )
+				if ( ( pDoc->GetColFlags( nCol, nTab ) & CR_HIDDEN ) == 0 )
+				{
+					USHORT nDocW = pDoc->GetColWidth( nCol, nTab );
+					long nNextX = nPosX + (long) (nDocW * nScaleX);
+
+					long nPixelStart = pWindow->LogicToPixel( Size( nPosX, 0 ), aCellMapMode ).Width();
+					long nPixelEnd = pWindow->LogicToPixel( Size( nNextX, 0 ), aCellMapMode ).Width() - 1;
+					pColInfo[nColPos].Set( FALSE, nCol,
+=====================================================================
+Found a 21 line (103 tokens) duplication in the following files: 
+Starting at line 1113 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/dwfunctr.cxx
+Starting at line 1969 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+
+				String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("AcceptChgDat:")));
+
+			// Versuche, den Alignment-String "ALIGN:(...)" einzulesen; wenn
+			// er nicht vorhanden ist, liegt eine "altere Version vor
+			if ( nPos != STRING_NOTFOUND )
+			{
+				xub_StrLen n1 = pInfo->aExtraString.Search('(', nPos);
+				if ( n1 != STRING_NOTFOUND )
+				{
+					xub_StrLen n2 = pInfo->aExtraString.Search(')', n1);
+					if ( n2 != STRING_NOTFOUND )
+					{
+						// Alignment-String herausschneiden
+						aStr = pInfo->aExtraString.Copy(nPos, n2 - nPos + 1);
+						pInfo->aExtraString.Erase(nPos, n2 - nPos + 1);
+						aStr.Erase(0, n1-nPos+1);
+					}
+				}
+			}
+		}
+	}
+=====================================================================
+Found a 27 line (103 tokens) duplication in the following files: 
+Starting at line 716 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/drawfunc/drtxtob.cxx
+Starting at line 270 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/shells/drwtxtex.cxx
+
+		case SID_ATTR_PARA_ADJUST_BLOCK:
+			aNewAttr.Put(SvxAdjustItem(SVX_ADJUST_BLOCK, EE_PARA_JUST));
+        break;
+
+		case SID_ATTR_PARA_LINESPACE_10:
+		{
+			SvxLineSpacingItem aItem(SVX_LINESPACE_ONE_LINE, EE_PARA_SBL);
+			aItem.SetPropLineSpace(100);
+			aNewAttr.Put(aItem);
+		}
+		break;
+		case SID_ATTR_PARA_LINESPACE_15:
+		{
+			SvxLineSpacingItem aItem(SVX_LINESPACE_ONE_POINT_FIVE_LINES, EE_PARA_SBL);
+			aItem.SetPropLineSpace(150);
+			aNewAttr.Put(aItem);
+		}
+		break;
+		case SID_ATTR_PARA_LINESPACE_20:
+		{
+			SvxLineSpacingItem aItem(SVX_LINESPACE_TWO_LINES, EE_PARA_SBL);
+			aItem.SetPropLineSpace(200);
+			aNewAttr.Put(aItem);
+		}
+		break;
+
+		case FN_SET_SUPER_SCRIPT:
+=====================================================================
+Found a 37 line (103 tokens) duplication in the following files: 
+Starting at line 293 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/drwtrans.cxx
+Starting at line 432 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/app/sdxfer.cxx
+
+}
+
+// -----------------------------------------------------------------------------
+
+BOOL lcl_HasOnlyControls( SdrModel* pModel )
+{
+    BOOL bOnlyControls = FALSE;         // default if there are no objects
+
+    if ( pModel )
+    {
+        SdrPage* pPage = pModel->GetPage(0);
+        if (pPage)
+        {
+            SdrObjListIter aIter( *pPage, IM_DEEPNOGROUPS );
+            SdrObject* pObj = aIter.Next();
+            if ( pObj )
+            {
+                bOnlyControls = TRUE;   // only set if there are any objects at all
+                while ( pObj )
+                {
+                    if (!pObj->ISA(SdrUnoObj))
+                    {
+                        bOnlyControls = FALSE;
+                        break;
+                    }
+                    pObj = aIter.Next();
+                }
+            }
+        }
+    }
+
+    return bOnlyControls;
+}
+
+// -----------------------------------------------------------------------------
+
+void SdTransferable::AddSupportedFormats()
+=====================================================================
+Found a 13 line (103 tokens) duplication in the following files: 
+Starting at line 753 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1168 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Bool bIsCoveredMatrix(sal_False);
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_FORMULA))
+=====================================================================
+Found a 37 line (103 tokens) duplication in the following files: 
+Starting at line 2873 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+Starting at line 2915 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr3.cxx
+
+void ScInterpreter::ScSmall()
+{
+	if ( !MustHaveParamCount( GetByte(), 2 )  )
+		return;
+	double f = ::rtl::math::approxFloor(GetDouble());
+	if (f < 1.0)
+	{
+		SetIllegalArgument();
+		return;
+	}
+    SCSIZE k = static_cast<SCSIZE>(f);
+	double* pSortArray = NULL;
+	SCSIZE nSize = 0;
+	GetSortArray(1, &pSortArray, nSize);
+	if (!pSortArray || nSize == 0 || nGlobalError || nSize < k)
+		SetNoValue();
+	else
+	{
+#if 0
+/*
+		SCSIZE nCount = 1;
+		double nOldVal = pSortArray[0];
+		for (SCSIZE i = 1; i < nSize && nCount < k; i++)
+		{
+			if (pSortArray[i] != nOldVal)
+			{
+				nCount++;
+				nOldVal = pSortArray[i];
+			}
+		}
+		if (nCount < k)
+			SetNoValue();
+		else
+			PushDouble(nOldVal);
+*/
+#endif
+		PushDouble( pSortArray[ k-1 ] );
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 430 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+Starting at line 873 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/addincol.cxx
+
+                        long nOld = nFuncCount;
+                        nFuncCount = nNewCount+nOld;
+                        if ( nOld )
+                        {
+                            ScUnoAddInFuncData** ppNew = new ScUnoAddInFuncData*[nFuncCount];
+                            for (long i=0; i<nOld; i++)
+                                ppNew[i] = ppFuncData[i];
+                            delete[] ppFuncData;
+                            ppFuncData = ppNew;
+                        }
+                        else
+                            ppFuncData = new ScUnoAddInFuncData*[nFuncCount];
+
+                        //! TODO: adjust bucket count?
+                        if ( !pExactHashMap )
+                            pExactHashMap = new ScAddInHashMap;
+                        if ( !pNameHashMap )
+                            pNameHashMap = new ScAddInHashMap;
+                        if ( !pLocalHashMap )
+                            pLocalHashMap = new ScAddInHashMap;
+
+                        const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
+=====================================================================
+Found a 12 line (103 tokens) duplication in the following files: 
+Starting at line 643 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/document.cxx
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/document.cxx
+
+BOOL ScDocument::CanInsertCol( const ScRange& rRange ) const
+{
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	SCTAB nStartTab = rRange.aStart.Tab();
+	SCCOL nEndCol = rRange.aEnd.Col();
+	SCROW nEndRow = rRange.aEnd.Row();
+	SCTAB nEndTab = rRange.aEnd.Tab();
+	PutInOrder( nStartCol, nEndCol );
+	PutInOrder( nStartRow, nEndRow );
+	PutInOrder( nStartTab, nEndTab );
+	SCSIZE nSize = static_cast<SCSIZE>(nEndCol - nStartCol + 1);
+=====================================================================
+Found a 15 line (103 tokens) duplication in the following files: 
+Starting at line 643 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/compressedarray.cxx
+Starting at line 706 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/compressedarray.cxx
+
+        if ((this->pData[nIndex].aValue & rBitMask) != 0)
+        {
+            A nS = ::std::max( (nIndex>0 ? this->pData[nIndex-1].nEnd+1 : 0), nStart);
+            A nE = ::std::min( this->pData[nIndex].nEnd, nEnd);
+            nRet += nE - nS + 1;
+        }
+        if (this->pData[nIndex].nEnd >= nEnd)
+            break;  // while
+        ++nIndex;
+    } while (nIndex < this->nCount);
+    return nRet;
+}
+
+
+template< typename A, typename D >
+=====================================================================
+Found a 28 line (103 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+Starting at line 399 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
+
+    c_rtl_tres_state_start( hRtlTestResult, "getCapacity");
+    sal_Char methName[MAXBUFLENGTH];
+    sal_Char* pMeth = methName;
+
+    OUString arrOUS[6]={OUString( aUStr1 ),
+                        OUString( "1",1,
+	                kEncodingRTLTextUSASCII,
+	                kConvertFlagsOStringToOUString),
+                        OUString(),
+                        OUString( "",0,
+	                kEncodingRTLTextUSASCII,
+	                kConvertFlagsOStringToOUString),
+                        OUString( "\0",0,
+	                kEncodingRTLTextUSASCII,
+	                kConvertFlagsOStringToOUString),
+                        OUString( aUStr2 )};
+
+    typedef struct TestCase
+    {
+	sal_Char*		comments;
+	sal_Int32 		expVal;
+    	OUStringBuffer*         input;
+    	~TestCase()             { delete input;}
+    } TestCase;
+
+    TestCase arrTestCase[]={
+
+	{"capacity of ascii string", kTestStr1Len+16, 
+=====================================================================
+Found a 12 line (103 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/remotebridges/examples/officeclient.cxx
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx
+
+using namespace ::rtl;
+using namespace ::cppu;
+using namespace ::osl;
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::registry;
+using namespace ::com::sun::star::connection;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::bridge;
+using namespace ::com::sun::star::text;
+using namespace ::com::sun::star::frame;
+=====================================================================
+Found a 31 line (103 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/registry.cxx
+Starting at line 387 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/registry.cxx
+
+static RegError REGISTRY_CALLTYPE saveKey(RegHandle hReg,
+								   		   RegKeyHandle hKey, 
+										   rtl_uString* keyName, 
+										   rtl_uString* regFileName)
+{
+	ORegistry	*pReg;
+	ORegKey 	*pKey, *pNewKey;
+	RegError	_ret;
+	
+	if (hReg)
+	{
+		pReg = (ORegistry*)hReg;
+		if (!pReg->isOpen())
+			return REG_REGISTRY_NOT_OPEN;
+	} else
+	{
+		return REG_INVALID_REGISTRY;
+	}
+
+	if (hKey)
+	{
+		pKey = (ORegKey*)hKey;
+
+		if (pKey->getRegistry() != pReg || pKey->isDeleted())
+			return REG_INVALID_KEY;
+	} else
+	{
+		return REG_INVALID_KEY;
+	}
+
+	if ((_ret = pKey->openKey(keyName, (RegKeyHandle*)&pNewKey)))
+=====================================================================
+Found a 37 line (103 tokens) duplication in the following files: 
+Starting at line 2453 of /local/ooo-build/ooo-build/src/oog680-m3/regexp/orig/regex.c
+Starting at line 1334 of /local/ooo-build/ooo-build/src/oog680-m3/regexp/source/reclass.cxx
+
+	  if (compile_stack.stack == NULL) return(REG_ESPACE);
+
+	  compile_stack.size <<= 1;
+	}
+
+	/* These are the values to restore when we hit end of this
+	   group.  They are all relative offsets, so that if the
+	   whole pattern moves because of realloc, they will still
+	   be valid.  */
+	COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer;
+	COMPILE_STACK_TOP.fixup_alt_jump
+	  = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0;
+	COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer;
+	COMPILE_STACK_TOP.regnum = regnum;
+
+	/* We will eventually replace the 0 with the number of
+	   groups inner to this one.  But do not push a
+	   start_memory for groups beyond the last one we can
+	   represent in the compiled pattern.  */
+	if (regnum <= MAX_REGNUM) {
+	  COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 2;
+	  BUF_PUSH_3 (start_memory, regnum, 0);
+	}
+
+	compile_stack.avail++;
+
+	fixup_alt_jump = 0;
+	laststart = 0;
+	begalt = b;
+	/* If we've reached MAX_REGNUM groups, then this open
+	   won't actually generate any code, so we'll have to
+	   clear pending_exact explicitly.  */
+	pending_exact = 0;
+	break;
+
+
+      case (sal_Unicode)')':
+=====================================================================
+Found a 30 line (103 tokens) duplication in the following files: 
+Starting at line 5316 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 788 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+		xTempOut->closeOutput();
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( packages::WrongPasswordException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+=====================================================================
+Found a 31 line (103 tokens) duplication in the following files: 
+Starting at line 2467 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 603 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/fsstor/fsstorage.cxx
+
+			xResult = static_cast< io::XStream* >( new OFSInputStreamContainer( xInStream ) );
+		}
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( packages::WrongPasswordException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
+=====================================================================
+Found a 23 line (103 tokens) duplication in the following files: 
+Starting at line 3075 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/owriteablestream.cxx
+Starting at line 3802 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+		m_pImpl->m_bBroadcastModified = sal_True;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+        uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Problems on revert!" ),
+								  uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >( this ) ),
+								  aCaught );
+	}
+
+	aGuard.clear();
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 744 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1264 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xe3, 0xe3 },
+{ 0x00, 0xe4, 0xc4 },
+{ 0x00, 0xe5, 0xc5 },
+{ 0x00, 0xe6, 0xc6 },
+{ 0x00, 0xe7, 0xc7 },
+{ 0x00, 0xe8, 0xc8 },
+{ 0x00, 0xe9, 0xc9 },
+{ 0x00, 0xea, 0xca },
+{ 0x00, 0xeb, 0xcb },
+{ 0x00, 0xec, 0xcc },
+{ 0x00, 0xed, 0xcd },
+{ 0x00, 0xee, 0xce },
+{ 0x00, 0xef, 0xcf },
+{ 0x00, 0xf0, 0xf0 },
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 1510 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1519 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fd90 - fd9f
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fda0 - fdaf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// fdb0 - fdbf
+    13,13,13,13,13,13,13,13, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 1362 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+=====================================================================
+Found a 5 line (103 tokens) duplication in the following files: 
+Starting at line 1011 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 868 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 877 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fd90 - fd9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fda0 - fdaf
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fdb0 - fdbf
+     5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,// fdc0 - fdcf
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 676 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 740 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,// 3280 - 328f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 3290 - 329f
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 32a0 - 32af
+    27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 32b0 - 32bf
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 614 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 744 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0, 0,// 32c0 - 32cf
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 32d0 - 32df
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,// 32e0 - 32ef
+    27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 0,// 32f0 - 32ff
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 440 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1311 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0,10,10,10,10,10,10,10,10,10,10,10,10,10,// 2150 - 215f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2160 - 216f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2170 - 217f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 2180 - 218f
+=====================================================================
+Found a 26 line (103 tokens) duplication in the following files: 
+Starting at line 356 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/localedata/saxparser.cxx
+Starting at line 515 of /local/ooo-build/ooo-build/src/oog680-m3/sax/test/saxdemo.cxx
+
+	Reference < XImplementationRegistration > xReg;
+	try
+	{
+		// Create registration service
+		Reference < XInterface > x = xSMgr->createInstance(
+			OUString::createFromAscii( "com.sun.star.registry.ImplementationRegistration" ) );
+		xReg = Reference<  XImplementationRegistration > ( x , UNO_QUERY );
+	}
+	catch( Exception & ) {
+		printf( "Couldn't create ImplementationRegistration service\n" );
+		exit(1);
+	}
+
+	OString sTestName;
+	try
+	{
+		// Load dll for the tested component
+		OUString aDllName =
+            OUString::createFromAscii( "sax.uno" SAL_DLLEXTENSION );
+		xReg->registerImplementation(
+			OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ),
+			aDllName,
+			Reference< XSimpleRegistry > ()  );
+	}
+	catch( Exception &e ) {
+		printf( "Couldn't reach sax dll\n" );
+=====================================================================
+Found a 5 line (103 tokens) duplication in the following files: 
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1190 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0,17, 0,17, 0,17,10,10,10,10, 0, 0,// 0f30 - 0f3f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f40 - 0f4f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f50 - 0f5f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0f60 - 0f6f
+     0,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 0,// 0f70 - 0f7f
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 812 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27, 0,27,27,27, 0,27, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4c0 - a4cf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4d0 - a4df
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4e0 - a4ef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// a4f0 - a4ff
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27, 6,27,27,27,27,27,27, 0, 0,27,// 0fc0 - 0fcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fd0 - 0fdf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0fe0 - 0fef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ff0 - 0fff
+=====================================================================
+Found a 4 line (103 tokens) duplication in the following files: 
+Starting at line 147 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/grammar.cpp
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap3.cxx
+
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 1388 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1533 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							nSinY = pSinY[ nY ], nCosY = pCosY[ nY ];
+
+							for( nX = 0; nX < nDstW; nX++ )
+							{
+								nUnRotX = ( pCosX[ nX ] - nSinY ) >> 8;
+								nUnRotY = ( pSinX[ nX ] + nCosY ) >> 8;
+
+								if( ( nUnRotX >= 0L ) && ( nUnRotX < nUnRotW ) &&
+									( nUnRotY >= 0L ) && ( nUnRotY < nUnRotH ) )
+								{
+									nTmpX = pMapIX[ nUnRotX ]; nTmpFX = pMapFX[ nUnRotX ];
+									nTmpY = pMapIY[ nUnRotY ], nTmpFY = pMapFY[ nUnRotY ];
+
+									const long	nAlpha0 = pAcc->GetPixel( nTmpY, nTmpX ).GetIndex();
+=====================================================================
+Found a 11 line (103 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+Starting at line 645 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+
+				ImplGetVector( &vector[ 0 ] );
+
+				fStartAngle = acos( vector[ 0 ] / sqrt( vector[ 0 ] * vector[ 0 ] + vector[ 1 ] * vector[ 1 ] ) ) * 57.29577951308;
+				fEndAngle = acos( vector[ 2 ] / sqrt( vector[ 2 ] * vector[ 2 ] + vector[ 3 ] * vector[ 3 ] ) ) * 57.29577951308;
+
+				if ( vector[ 1 ] > 0 )
+					fStartAngle = 360 - fStartAngle;
+				if ( vector[ 3 ] > 0 )
+					fEndAngle = 360 - fEndAngle;
+
+				if ( bDirection )
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 767 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+Starting at line 804 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/base3d/b3ddeflt.cxx
+
+					{
+						while(nCount--)
+						{
+							// weiterer Punkt
+							nDx = aIntXPosLeft.GetLongValue();
+							nDy = aIntXPosRight.GetLongValue();
+							nDepth = aIntDepthLine.GetUINT32Value();
+
+							if(IsVisibleAndScissor(nDx, nDy, nDepth))
+							{
+								Point aTmpPoint(nDx, nDy);
+								basegfx::B3DPoint aPoint = Get3DCoor(aTmpPoint, nDepth);
+								aPoint -= aInvTrans;
+								aPoint /= aInvScale;
+								basegfx::B3DVector aNormal;
+								aIntVectorLine.GetVector3DValue(aNormal);
+								aNormal.normalize();
+								Color aCol = SolveColorModel(GetMaterialObject(), aNormal, aPoint);
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 1117 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+Starting at line 1482 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+
+Reference< XIndexAccess > SAL_CALL ModuleUIConfigurationManager::getDefaultSettings( const ::rtl::OUString& ResourceURL ) 
+throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+    sal_Int16 nElementType = RetrieveTypeFromResourceURL( ResourceURL );
+    
+    if (( nElementType == ::com::sun::star::ui::UIElementType::UNKNOWN ) || 
+        ( nElementType >= ::com::sun::star::ui::UIElementType::COUNT   ))
+        throw IllegalArgumentException();
+    else
+    {
+        ResetableGuard aGuard( m_aLock );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+    Reference< XStatusListener > xStatusListener;
+	USHORT nItemCount = pAddonPopupMenu->GetItemCount();
+	for ( USHORT i = 0; i < nItemCount; i++ )
+	{
+		USHORT nItemId = pAddonPopupMenu->GetItemId( i );
+
+		::rtl::OUString aItemCommand = pAddonPopupMenu->GetItemCommand( nItemId );
+		if ( !aItemCommand.getLength() )
+		{
+			aItemCommand = aSlotString;
+			aItemCommand += ::rtl::OUString::valueOf( (sal_Int32)nItemId );
+			pAddonPopupMenu->SetItemCommand( nItemId, aItemCommand );
+		}
+
+		PopupMenu* pPopupMenu = pAddonPopupMenu->GetPopupMenu( nItemId );
+		if ( pPopupMenu )
+		{
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 580 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menumanager.cxx
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+    Reference< XDispatch > xDispatch;
+	USHORT nItemCount = pAddonMenu->GetItemCount();
+	for ( USHORT i = 0; i < nItemCount; i++ )
+	{
+		USHORT nItemId = pAddonMenu->GetItemId( i );
+
+		::rtl::OUString aItemCommand = pAddonMenu->GetItemCommand( nItemId );
+		if ( !aItemCommand.getLength() )
+		{
+			aItemCommand = aSlotString;
+			aItemCommand += ::rtl::OUString::valueOf( (sal_Int32)nItemId );
+			pAddonMenu->SetItemCommand( nItemId, aItemCommand );
+		}
+
+		PopupMenu* pPopupMenu = pAddonMenu->GetPopupMenu( nItemId );
+		if ( pPopupMenu )
+		{
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 201 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/classes/menuconfiguration.cxx
+Starting at line 204 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menuconfiguration.cxx
+
+        OWriteMenuDocumentHandler aWriteMenuDocumentHandler( rMenuBarConfiguration, xWriter );
+		aWriteMenuDocumentHandler.WriteMenuDocument();
+	}
+	catch ( RuntimeException& e )
+	{
+		throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
+	}
+	catch ( SAXException& e )
+	{
+		throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
+	}
+	catch ( ::com::sun::star::io::IOException& e )
+	{
+		throw WrappedTargetException( e.Message, Reference< XInterface >(), Any() );
+	}
+}
+
+}
+=====================================================================
+Found a 42 line (103 tokens) duplication in the following files: 
+Starting at line 112 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/win32/misc/resourceprovider.cxx
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/sysui/source/win32/misc/resourceprovider.cxx
+
+    { LISTBOX_IMAGE_TEMPLATE + LB_LABEL_OFFSET, STR_SVT_FILEPICKER_IMAGE_TEMPLATE },
+    { CHECKBOX_SELECTION,                       STR_SVT_FILEPICKER_SELECTION },
+    { FOLDERPICKER_TITLE,                       STR_SVT_FOLDERPICKER_DEFAULT_TITLE },
+    { FOLDER_PICKER_DEF_DESCRIPTION,            STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION }
+};
+
+const sal_Int32 SIZE_TABLE = sizeof( CtrlIdToResIdTable ) / sizeof( _Entry );
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+sal_Int16 CtrlIdToResId( sal_Int32 aControlId )
+{    
+    sal_Int16 aResId = -1;
+
+    for ( sal_Int32 i = 0; i < SIZE_TABLE; i++ )
+    {
+        if ( CtrlIdToResIdTable[i].ctrlId == aControlId )
+        {
+            aResId = CtrlIdToResIdTable[i].resId;
+            break;
+        }
+    }    
+    
+    return aResId;
+}
+
+//------------------------------------------------------------
+//
+//------------------------------------------------------------
+
+class CResourceProvider_Impl
+{
+public:
+
+    //-------------------------------------
+    //
+    //-------------------------------------
+
+    CResourceProvider_Impl( )
+    {        
+=====================================================================
+Found a 47 line (103 tokens) duplication in the following files: 
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilteradaptor/genericfilter.cxx
+Starting at line 63 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilterdetect/fdcomp.cxx
+
+using namespace ::rtl;
+
+using namespace ::cppu;
+
+using namespace ::com::sun::star::uno;
+
+using namespace ::com::sun::star::lang;
+
+using namespace ::com::sun::star::registry;
+
+
+
+extern "C"
+
+{
+
+//==================================================================================================
+
+void SAL_CALL component_getImplementationEnvironment(
+
+	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
+
+{
+
+	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+
+}
+
+//==================================================================================================
+
+sal_Bool SAL_CALL component_writeInfo(
+
+	void * /* pServiceManager */, void * pRegistryKey )
+
+{
+
+	if (pRegistryKey)
+
+	{
+
+		try
+
+		{
+
+			Reference< XRegistryKey > xNewKey(
+
+				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( FilterDetect_getImplementationName() ) ); 
+=====================================================================
+Found a 6 line (103 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/placeware/Base64Codec.cxx
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0,17,17,17,17,17, 0,17,17, 0, 0, 0, 0,17, 0, 0,// 0ac0 - 0acf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ad0 - 0adf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0ae0 - 0aef
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0af0 - 0aff
+
+     0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0b00 - 0b0f
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 575 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 709 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+	{
+		Size	aNormSize;
+		sal_Int32*	pOwnArray;
+		sal_Int32*	pDX;
+
+		// get text sizes
+		if( pDXArray )
+		{
+			pOwnArray = NULL;
+			aNormSize = Size( mpVDev->GetTextWidth( rText ), 0 );
+			pDX = (sal_Int32*) pDXArray;
+		}
+		else
+		{	
+			pOwnArray = new sal_Int32[ nLen ];
+			aNormSize = Size( mpVDev->GetTextArray( rText, pOwnArray ), 0 );
+			pDX = pOwnArray;
+		}
+
+		if( nLen > 1 )
+		{
+			aNormSize.Width() = pDX[ nLen - 2 ] + mpVDev->GetTextWidth( rText.GetChar( sal::static_int_cast<USHORT>( nLen - 1 ) ) );
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/filtertracer/filtertracer.cxx
+Starting at line 157 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
+
+void SAL_CALL EnhancedCustomShapeEngine::initialize( const SEQ( NMSP_UNO::Any )& aArguments )
+	throw ( NMSP_UNO::Exception, NMSP_UNO::RuntimeException )
+{
+	sal_Int32 i;
+	SEQ( NMSP_BEANS::PropertyValue ) aParameter;
+	for ( i = 0; i < aArguments.getLength(); i++ )
+	{
+		if ( aArguments[ i ] >>= aParameter )
+			break;
+	}
+	for ( i = 0; i < aParameter.getLength(); i++ )
+	{
+		const NMSP_BEANS::PropertyValue& rProp = aParameter[ i ];
+		if ( rProp.Name.equalsAscii( "CustomShape" ) )
+=====================================================================
+Found a 19 line (103 tokens) duplication in the following files: 
+Starting at line 308 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/stm/marktest.cxx
+Starting at line 306 of /local/ooo-build/ooo-build/src/oog680-m3/io/test/stm/marktest.cxx
+
+		sal_Int32 nMark2 = rMarkable->createMark( );
+
+		for( i = 0 ; i < 10 ; i ++ )
+		{
+			aByte.getArray()[i] = i+10;
+		}
+
+		rOutput->writeBytes( aByte );
+
+		// allow the bytes to be written !
+		rMarkable->jumpToFurthest();
+		rMarkable->deleteMark( nMark1 );
+		rMarkable->deleteMark( nMark2 );
+
+		ERROR_ASSERT( 256 == rInput->available(), "in between mark failure" );
+		rInput->readBytes( aByte ,256);
+		for( i = 0 ; i < 256 ; i ++ )
+		{
+			ERROR_ASSERT( i == ((sal_uInt8*)(aByte.getArray()))[i] , "in between mark failure" );
+=====================================================================
+Found a 10 line (103 tokens) duplication in the following files: 
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+Starting at line 1187 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+
+                             awt::Rectangle( INSTALL_BTN_X, BUTTON_Y_POS, BUTTON_WIDTH, BUTTON_HEIGHT ),
+                             aProps );
+    }
+    {   // download button
+        uno::Sequence< beans::NamedValue > aProps(5);
+
+        setProperty( aProps, 0, UNISTRING("DefaultButton"), uno::Any( false ) );
+        setProperty( aProps, 1, UNISTRING("Enabled"), uno::Any( true ) );
+        setProperty( aProps, 2, UNISTRING("PushButtonType"), uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) );
+        setProperty( aProps, 3, UNISTRING("Label"), uno::Any( msDownload ) );
+=====================================================================
+Found a 19 line (103 tokens) duplication in the following files: 
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/so_activex.cpp
+Starting at line 506 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/so_activex.cpp
+
+       			if ( ERROR_SUCCESS != RegDeleteValue( hkey, "CLSID" ) )
+					fErr = TRUE;
+
+				if ( ERROR_SUCCESS != RegQueryInfoKey(  hkey, NULL, NULL, NULL,
+														&nSubKeys, NULL, NULL,
+														&nValues, NULL, NULL, NULL, NULL ) )
+				{
+					RegCloseKey( hkey ), hkey = NULL;
+					fErr = TRUE;
+				}
+				else 
+				{
+					RegCloseKey( hkey ), hkey = NULL;
+					if ( !nSubKeys && !nValues )
+						SHDeleteKey( bForAllUsers ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER, aSubKey );
+				}
+			}
+
+       		wsprintf( aSubKey, "%s%s", aPrefix, aMSFileExt[ind] );
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 266 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/filter/migration/cfgimport.cxx
+Starting at line 556 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/JoinController.cxx
+
+	if ( !m_vTableData.empty() )
+	{
+		PropertyValue *pViewIter = _rViewProps.getArray();
+		PropertyValue *pEnd = pViewIter + _rViewProps.getLength();
+		const static ::rtl::OUString s_sTables(RTL_CONSTASCII_USTRINGPARAM("Tables"));
+		for (; pViewIter != pEnd && pViewIter->Name != s_sTables; ++pViewIter)
+			;
+		
+		if ( pViewIter == pEnd )
+		{
+			sal_Int32 nLen = _rViewProps.getLength(); 
+			_rViewProps.realloc( nLen + 1 );
+			pViewIter = _rViewProps.getArray() + nLen;
+			pViewIter->Name = s_sTables;
+		}
+		
+		Sequence<PropertyValue> aTables(m_vTableData.size());
+=====================================================================
+Found a 20 line (103 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 988 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+=====================================================================
+Found a 22 line (103 tokens) duplication in the following files: 
+Starting at line 1690 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaData.cxx
+Starting at line 1714 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaData.cxx
+Starting at line 1738 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/ODatabaseMetaData.cxx
+
+sal_Bool SAL_CALL ODatabaseMetaData::ownInsertsAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
+{
+	SQLUINTEGER nValue;
+    SQLUSMALLINT nAskFor( SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 );
+	switch(setType)
+	{
+		case ResultSetType::FORWARD_ONLY:
+			nAskFor = SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2;
+			break;
+		case ResultSetType::SCROLL_INSENSITIVE:
+			nAskFor = SQL_STATIC_CURSOR_ATTRIBUTES2;
+			break;
+		case ResultSetType::SCROLL_SENSITIVE:
+			nAskFor = SQL_DYNAMIC_CURSOR_ATTRIBUTES2;
+			break;
+        default:
+            ::dbtools::throwGenericSQLException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Invalid result set type." ) ), *this );
+            break;
+	}
+
+	OTools::GetInfo(m_pConnection,m_aConnectionHandle,nAskFor,nValue,*this);
+	return (nValue & SQL_CA2_SENSITIVITY_ADDITIONS) == SQL_CA2_SENSITIVITY_ADDITIONS;
+=====================================================================
+Found a 14 line (103 tokens) duplication in the following files: 
+Starting at line 805 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+Starting at line 501 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "()Ljava/sql/ResultSetMetaData;";
+		static const char * cMethodName = "getMetaData";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID );
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+		}
+	}
+
+	return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, m_aLogger );
+}
+=====================================================================
+Found a 15 line (103 tokens) duplication in the following files: 
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/CallableStatement.cxx
+Starting at line 590 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/ResultSet.cxx
+
+		static const char * cSignature = "(I)Ljava/sql/Ref;";
+		static const char * cMethodName = "getRef";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID, columnIndex);
+			ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+			// und aufraeumen
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out==0 ? 0 : new java_sql_Ref( t.pEnv, out );
+}
+=====================================================================
+Found a 21 line (103 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+Starting at line 1207 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+
+	const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
+	
+	sal_Bool bTableFound = sal_True;
+	sal_Int32 nLength = types.getLength();
+	if(nLength)
+		{
+			bTableFound = sal_False;
+			
+			const ::rtl::OUString* pBegin = types.getConstArray();
+			const ::rtl::OUString* pEnd	= pBegin + nLength;
+			for(;pBegin != pEnd;++pBegin)
+				{
+					if(*pBegin == aTable)
+						{
+							bTableFound = sal_True;
+							break;
+						}
+				}
+		}
+	if(!bTableFound)
+		return xRef;
+=====================================================================
+Found a 10 line (103 tokens) duplication in the following files: 
+Starting at line 725 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/CTable.cxx
+Starting at line 524 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/evoab/LTable.cxx
+
+Any SAL_CALL OEvoabTable::queryInterface( const Type & rType ) throw(RuntimeException)
+{
+	if( rType == ::getCppuType((const Reference<XKeysSupplier>*)0)		||
+		rType == ::getCppuType((const Reference<XIndexesSupplier>*)0)	||
+		rType == ::getCppuType((const Reference<XRename>*)0)			||
+		rType == ::getCppuType((const Reference<XAlterTable>*)0)		||
+		rType == ::getCppuType((const Reference<XDataDescriptorFactory>*)0))
+		return Any();
+
+	Any aRet = OTable_TYPEDEF::queryInterface(rType);
+=====================================================================
+Found a 13 line (103 tokens) duplication in the following files: 
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/BTables.cxx
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mozab/MTables.cxx
+
+using namespace connectivity::mozab;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
+using namespace dbtools;
+typedef connectivity::sdbcx::OCollection OCollection_TYPE;
+
+sdbcx::ObjectType OTables::createObject(const ::rtl::OUString& _rName)
+{
+	::rtl::OUString aName,aSchema;
+=====================================================================
+Found a 17 line (103 tokens) duplication in the following files: 
+Starting at line 768 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/mergechange.cxx
+Starting at line 1139 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/misc/mergechange.cxx
+
+				aTreeUpdate.applyToChildren(_rSubtree);
+
+                // make a new subtree with the changed data
+                data::TreeSegment aNewTree = data::TreeSegment::createNew(pAddNode->getNodeName(), pAddedNode);
+
+				std::auto_ptr<AddNode> pNewAdd( new AddNode(aNewTree, pAddNode->getNodeName(), pAddNode->isToDefault()) );
+				if (pAddNode->isReplacing())
+					pNewAdd->setReplacing();
+
+				std::auto_ptr<Change> pNewChange( pNewAdd.release() );
+
+                m_pCurrentParent->removeChange(pAddNode->getNodeName());
+                m_pCurrentParent->addChange( pNewChange );
+			}
+			else
+			{
+				OSL_ENSURE(false, "OMergeChanges: Unexpected node type found in an AddNode.");
+=====================================================================
+Found a 24 line (103 tokens) duplication in the following files: 
+Starting at line 348 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/LineChartTypeTemplate.cxx
+Starting at line 256 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/model/template/ScatterChartTypeTemplate.cxx
+
+void SAL_CALL ScatterChartTypeTemplate::applyStyle(
+    const Reference< chart2::XDataSeries >& xSeries,
+    ::sal_Int32 nChartTypeIndex,
+    ::sal_Int32 nSeriesIndex,
+    ::sal_Int32 nSeriesCount )
+    throw (uno::RuntimeException)
+{
+    ChartTypeTemplate::applyStyle( xSeries, nChartTypeIndex, nSeriesIndex, nSeriesCount );
+
+    try
+    {
+        Reference< beans::XPropertySet > xProp( xSeries, uno::UNO_QUERY_THROW );
+
+        DataSeriesHelper::switchSymbolsOnOrOff( xProp, m_bHasSymbols, nSeriesIndex );
+        DataSeriesHelper::switchLinesOnOrOff( xProp, m_bHasLines );
+    }
+    catch( uno::Exception & ex )
+    {
+        ASSERT_EXCEPTION( ex );
+    }
+}
+
+// ____ XChartTypeTemplate ____
+Sequence< OUString > SAL_CALL ScatterChartTypeTemplate::getAvailableCreationParameterNames()
+=====================================================================
+Found a 28 line (103 tokens) duplication in the following files: 
+Starting at line 608 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/workben/canvasdemo.cxx
+Starting at line 507 of /local/ooo-build/ooo-build/src/oog680-m3/slideshow/test/demoshow.cxx
+
+}
+
+USHORT DemoApp::Exception( USHORT nError )
+{
+	switch( nError & EXC_MAJORTYPE )
+	{
+		case EXC_RSCNOTLOADED:
+			Abort( String::CreateFromAscii( "Error: could not load language resources.\nPlease check your installation.\n" ) );
+			break;
+	}
+	return 0;
+}
+
+void DemoApp::Main()
+{
+	bool bHelp = false;
+
+	for( USHORT i = 0; i < GetCommandLineParamCount(); i++ )
+	{
+		::rtl::OUString aParam = GetCommandLineParam( i );
+
+		if( aParam.equalsAscii( "--help" ) ||
+			aParam.equalsAscii( "-h" ) )
+				bHelp = true;
+	}
+
+	if( bHelp )
+	{
+=====================================================================
+Found a 25 line (103 tokens) duplication in the following files: 
+Starting at line 1296 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/cairo/cairo_canvashelper.cxx
+Starting at line 854 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/vcl/canvashelper.cxx
+
+                               true );
+    }
+
+    uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice()
+    {
+        // cast away const, need to change refcount (as this is
+        // ~invisible to client code, still logically const)
+        return uno::Reference< rendering::XGraphicDevice >(mpDevice);
+    }
+
+    void CanvasHelper::copyRect( const rendering::XCanvas* 							, 
+                                 const uno::Reference< rendering::XBitmapCanvas >& 	, 
+                                 const geometry::RealRectangle2D& 					, 
+                                 const rendering::ViewState& 						, 
+                                 const rendering::RenderState& 						, 
+                                 const geometry::RealRectangle2D& 					, 
+                                 const rendering::ViewState& 						, 
+                                 const rendering::RenderState& 						 )
+    {
+        // TODO(F1)
+    }
+            
+    geometry::IntegerSize2D CanvasHelper::getSize()
+    {
+        if( !mpOutDev.get() )
+=====================================================================
+Found a 29 line (103 tokens) duplication in the following files: 
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
+Starting at line 117 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+            // value
+		{
+			pCppArgs[nPos] = pCppStack;
+			pUnoArgs[nPos] = pCppStack;
+			switch (pParamTypeDescr->eTypeClass)
+			{
+			case typelib_TypeClass_HYPER:
+			case typelib_TypeClass_UNSIGNED_HYPER:
+			case typelib_TypeClass_DOUBLE:
+				pCppStack += sizeof(sal_Int32); // extra long
+			}
+			// no longer needed
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		else // ptr to complex value | ref
+		{
+			pCppArgs[nPos] = *(void **)pCppStack;
+
+			if (! rParam.bIn) // is pure out
+			{
+				// uno out is unconstructed mem!
+				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
+				pTempIndizes[nTempIndizes] = nPos;
+				// will be released at reconversion
+				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+			}
+			// is in/inout
+			else if (bridges::cpp_uno::shared::relatesToInterfaceType(
+=====================================================================
+Found a 25 line (103 tokens) duplication in the following files: 
+Starting at line 180 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+                char const * rttiName = symName.getStr() +5;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+=====================================================================
+Found a 28 line (103 tokens) duplication in the following files: 
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx
+
+using namespace ::com::sun::star::uno;
+
+namespace
+{
+
+//==================================================================================================
+void cpp2uno_call(
+	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** pCallStack,
+	void * pReturnValue )
+{
+	// pCallStack: ret, [return ptr], this, params
+	char * pCppStack = (char *)(pCallStack +1);
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+=====================================================================
+Found a 25 line (103 tokens) duplication in the following files: 
+Starting at line 178 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/mingw_intel/except.cxx
+
+                char const * rttiName = symName.getStr() +5;
+#if OSL_DEBUG_LEVEL > 1
+                fprintf( stderr,"generated rtti for %s\n", rttiName );
+#endif
+                if (pTypeDescr->pBaseTypeDescription)
+                {
+                    // ensure availability of base
+                    type_info * base_rtti = getRTTI(
+                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
+                    rtti = new __si_class_type_info(
+                        strdup( rttiName ), (__class_type_info *)base_rtti );
+                }
+                else
+                {
+                    // this class has no base class
+                    rtti = new __class_type_info( strdup( rttiName ) );
+                }
+
+                pair< t_rtti_map::iterator, bool > insertion(
+                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
+                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
+            }
+            else // taking already generated rtti
+            {
+                rtti = iFind->second;
+=====================================================================
+Found a 18 line (103 tokens) duplication in the following files: 
+Starting at line 456 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+
+			pThis->pCppI, nVtableCall,
+			pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+=====================================================================
+Found a 29 line (103 tokens) duplication in the following files: 
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+Starting at line 55 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+
+using namespace ::com::sun::star::uno;
+
+namespace
+{
+
+//==================================================================================================
+void cpp2uno_call(
+	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+	const typelib_TypeDescription * pMemberTypeDescr,
+	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+	sal_Int32 nParams, typelib_MethodParameter * pParams,
+	void ** pCallStack,
+	void * pReturnValue )
+{
+	// pCallStack: ret, [return ptr], this, params
+	char * pCppStack = (char *)(pCallStack +1);
+
+	// return
+	typelib_TypeDescription * pReturnTypeDescr = 0;
+	if (pReturnTypeRef)
+		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+	
+	void * pUnoReturn = 0;
+	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
+	
+	if (pReturnTypeDescr)
+	{
+        // xxx todo: test PolyStructy<STRUCT<long>> foo()
+		if (CPPU_CURRENT_NAMESPACE::isSimpleReturnType( pReturnTypeDescr ))
+=====================================================================
+Found a 25 line (103 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if ( pUnoExc )
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any
+=====================================================================
+Found a 24 line (103 tokens) duplication in the following files: 
+Starting at line 202 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 259 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+			}
+			// destroy temp uno param
+			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+			
+			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+		}
+		// return
+		if ( pCppReturn ) // has complex return
+		{
+			if ( pUnoReturn != pCppReturn ) // needs reconversion
+			{
+				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+										pThis->getBridge()->getUno2Cpp() );
+				// destroy temp uno return
+				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+			}
+			// complex return ptr is set to return reg
+			*(void **)pRegisterReturn = pCppReturn;
+		}
+		if ( pReturnTypeDescr )
+		{
+=====================================================================
+Found a 25 line (103 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+
+	}
+	
+	// ExceptionHolder
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if ( pUnoExc )
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any
+=====================================================================
+Found a 16 line (103 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxchar.cxx
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxuint.cxx
+
+			*p->pDouble = n; break;
+		case SbxBYREF | SbxSALINT64:
+			*p->pnInt64 = n; break;
+		case SbxBYREF | SbxSALUINT64:
+			*p->puInt64 = n; break;
+		case SbxBYREF | SbxULONG64:
+			*p->pULong64 = ImpDoubleToUINT64( (double)n ); break;
+		case SbxBYREF | SbxLONG64:
+			*p->pLong64 = ImpDoubleToINT64( (double)n ); break;
+		case SbxBYREF | SbxCURRENCY:
+			*p->pLong64 = ImpDoubleToCurrency( (double)n ); break;
+
+		default:
+			SbxBase::SetError( SbxERR_CONVERSION );
+	}
+}
+=====================================================================
+Found a 25 line (103 tokens) duplication in the following files: 
+Starting at line 1589 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/app.cxx
+Starting at line 1613 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/app.cxx
+Starting at line 1637 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/app.cxx
+
+		case RID_WINTILEVERT:
+//#define WINDOWARRANGE_TILE		1
+//#define WINDOWARRANGE_HORZ		2
+//#define WINDOWARRANGE_VERT		3
+//#define WINDOWARRANGE_CASCADE	4
+			{
+				WindowArrange aArange;
+				for ( ULONG i = 0 ; i < pList->Count() ; i++ )
+				{
+					aArange.AddWindow( pList->GetObject( i ) );
+					pList->GetObject( i )->Restore();
+				}
+
+
+				sal_Int32 nTitleHeight;
+				{
+					sal_Int32 nDummy1, nDummy2, nDummy3;
+					GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
+				}
+
+				Size aSize = GetOutputSizePixel();
+				aSize.Height() -= nTitleHeight;
+				Rectangle aRect( Point( 0, nTitleHeight ), aSize );
+
+				aArange.Arrange( WINDOWARRANGE_VERT, aRect );
+=====================================================================
+Found a 30 line (103 tokens) duplication in the following files: 
+Starting at line 363 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/bastypes.cxx
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/app/brkpnts.cxx
+
+	Breakpoint* pBrk = First();
+	while ( pBrk )
+	{
+		BOOL bDelBrk = FALSE;
+		if ( pBrk->nLine == nLine )
+		{
+			if ( bInserted )
+				pBrk->nLine++;
+			else
+				bDelBrk = TRUE;
+		}
+		else if ( pBrk->nLine > nLine )
+		{
+			if ( bInserted )
+				pBrk->nLine++;
+			else
+				pBrk->nLine--;
+		}
+
+		if ( bDelBrk )
+		{
+			ULONG n = GetCurPos();
+			delete Remove( pBrk );
+			pBrk = Seek( n );
+		}
+		else
+		{
+			pBrk = Next();
+		}
+	}
+=====================================================================
+Found a 31 line (102 tokens) duplication in the following files: 
+Starting at line 25569 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 28401 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 36819 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+OOXMLContext_wordprocessingml_CT_TcBorders::element(TokenEnum_t nToken)
+{
+    OOXMLContext::Pointer_t pResult;
+    
+    switch (nToken)
+    {
+     case OOXML_ELEMENT_wordprocessingml_top:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_left:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_bottom:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_right:
+        {
+            pResult = OOXMLContext::Pointer_t
+               ( new OOXMLContext_wordprocessingml_CT_Border(*this));
+         }
+             break;
+     case OOXML_ELEMENT_wordprocessingml_insideH:
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 132 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+Starting at line 352 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_interpolator_persp.h
+
+            int y2 = int(yt * subpixel_size);
+
+            // Calculate scale by X at x2,y2
+            dx = xt + delta;
+            dy = yt;
+            m_trans_inv.transform(&dx, &dy);
+            dx -= x;
+            dy -= y;
+            int sx2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+            // Calculate scale by Y at x2,y2
+            dx = xt;
+            dy = yt + delta;
+            m_trans_inv.transform(&dx, &dy);
+            dx -= x;
+            dy -= y;
+            int sy2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+=====================================================================
+Found a 15 line (102 tokens) duplication in the following files: 
+Starting at line 658 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgb.h
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_image_filter_rgba.h
+
+            int fg[4];
+
+            value_type back_r = base_type::background_color().r;
+            value_type back_g = base_type::background_color().g;
+            value_type back_b = base_type::background_color().b;
+            value_type back_a = base_type::background_color().a;
+
+            const value_type *fg_ptr;
+
+            unsigned   diameter     = base_type::filter().diameter();
+            int        start        = base_type::filter().start();
+            int        start1       = start - 1;
+            const int16* weight_array = base_type::filter().weight_array();
+
+            unsigned step_back = diameter << 2;
+=====================================================================
+Found a 14 line (102 tokens) duplication in the following files: 
+Starting at line 58 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpnote.cxx
+Starting at line 891 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpstyl.cxx
+
+	const sal_Bool bHandoutMaster = IsXMLToken( rLName, XML_HANDOUT_MASTER );
+
+	const sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+	for(sal_Int16 i=0; i < nAttrCount; i++)
+	{
+		OUString sAttrName = xAttrList->getNameByIndex( i );
+		OUString aLocalName;
+		sal_uInt16 nPrefix = GetSdImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
+		OUString sValue = xAttrList->getValueByIndex( i );
+		const SvXMLTokenMap& rAttrTokenMap = GetSdImport().GetMasterPageAttrTokenMap();
+
+		switch(rAttrTokenMap.Get(nPrefix, aLocalName))
+		{
+			case XML_TOK_MASTERPAGE_NAME:
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 495 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+Starting at line 574 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+
+	mpUnitConv( new SvXMLUnitConverter( MAP_100TH_MM, SvXMLUnitConverter::GetMapUnit(eDfltUnit), getServiceFactory() ) ),
+	mpNumExport(0L),
+	mpProgressBarHelper( NULL ),
+	mpEventExport( NULL ),
+	mpImageMapExport( NULL ),
+	mpXMLErrors( NULL ),
+	mbExtended( sal_False ),
+	meClass( XML_TOKEN_INVALID ),
+	mnExportFlags( 0 ),
+	mnErrorFlags( ERROR_NO ),
+	msWS( GetXMLToken(XML_WS) ),
+	mbSaveLinkedSections(sal_True)
+{
+	DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
+	_InitCtor();
+
+	if (mxNumberFormatsSupplier.is())
+		mpNumExport = new SvXMLNumFmtExport(*this, mxNumberFormatsSupplier);
+}
+
+SvXMLExport::~SvXMLExport()
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_mask.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/assw_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asse_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asns_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnswe_curs.h
+
+static char asnswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xe0,
+ 0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0xf0,0x07,0x00,0x00,0x10,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+Starting at line 43 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+
+ 0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0xc0,0x07,0x00,0x00,0x80,0x03,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/airbrush_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/airbrush_mask.h
+
+static char airbrush_mask_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
+ 0x7c,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x1f,0x00,0x00,0x98,0x0f,0x00,0x00,
+ 0xcc,0x07,0x00,0x00,0xf4,0x03,0x00,0x00,0xf0,0x01,0x00,0x00,0xf8,0x00,0x00,
+=====================================================================
+Found a 15 line (102 tokens) duplication in the following files: 
+Starting at line 3797 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/menu.cxx
+Starting at line 4422 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/menu.cxx
+
+        if( pMenu->pStartedFrom && !pMenu->pStartedFrom->bIsMenuBar )
+        {
+            // #102461# make sure parent entry is highlighted as well
+            MenuItemData* pData;
+            USHORT i, nCount = (USHORT)pMenu->pStartedFrom->pItemList->Count();
+            for(i = 0; i < nCount; i++)
+            {
+                pData = pMenu->pStartedFrom->pItemList->GetDataFromPos( i );
+                if( pData && ( pData->pSubMenu == pMenu ) )
+                    break;
+            }
+            if( i < nCount )
+            {
+                MenuFloatingWindow* pPWin = (MenuFloatingWindow*)pMenu->pStartedFrom->ImplGetWindow();
+                if( pPWin && pPWin->nHighlightedItem != i )
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 1992 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev.cxx
+Starting at line 1114 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outdev4.cxx
+
+		else if ( mnDrawMode & DRAWMODE_GRAYLINE )
+		{
+			const UINT8 cLum = aColor.GetLuminance();
+			aColor = Color( cLum, cLum, cLum );
+		}
+        else if( mnDrawMode & DRAWMODE_SETTINGSLINE )
+        {
+            aColor = GetSettings().GetStyleSettings().GetFontColor();
+        }
+
+		if ( mnDrawMode & DRAWMODE_GHOSTEDLINE )
+		{
+			aColor = Color( ( aColor.GetRed() >> 1 ) | 0x80, 
+							( aColor.GetGreen() >> 1 ) | 0x80, 
+							( aColor.GetBlue() >> 1 ) | 0x80);
+		}
+=====================================================================
+Found a 18 line (102 tokens) duplication in the following files: 
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+Starting at line 354 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/bitmap4.cxx
+
+					pWriteAcc->SetPixel( nY, nX, BitmapColor( (BYTE) nR2, (BYTE) nG2, (BYTE) nB2 ) );
+				}
+
+				if( ++nY < nHeight )
+				{
+					if( pRowTmp1 == pColRow1 )
+						pRowTmp1 = pColRow2, pRowTmp2 = pColRow3, pRowTmp3 = pColRow1;
+					else if( pRowTmp1 == pColRow2 )
+						pRowTmp1 = pColRow3, pRowTmp2 = pColRow1, pRowTmp3 = pColRow2;
+					else
+						pRowTmp1 = pColRow1, pRowTmp2 = pColRow2, pRowTmp3 = pColRow3;
+
+					for( i = 0; i < nWidth2; i++ )
+						pRowTmp3[ i ] = pReadAcc->GetColor( pRows[ nY + 2 ], pColm[ i ] );
+				}
+			}
+
+			delete[] (BYTE*) pColRow1;
+=====================================================================
+Found a 20 line (102 tokens) duplication in the following files: 
+Starting at line 1161 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+Starting at line 1340 of /local/ooo-build/ooo-build/src/oog680-m3/unotools/source/config/configitem.cxx
+
+sal_Bool ConfigItem::AddNode(const rtl::OUString& rNode, const rtl::OUString& rNewNode)
+{
+	ValueCounter_Impl aCounter(pImpl->nInValueChange);
+    sal_Bool bRet = sal_True;
+    Reference<XHierarchicalNameAccess> xHierarchyAccess = GetTree();
+    if(xHierarchyAccess.is())
+	{
+		Reference<XChangesBatch> xBatch(xHierarchyAccess, UNO_QUERY);
+		try
+		{
+			Reference<XNameContainer> xCont;
+			if(rNode.getLength())
+			{
+				Any aNode = xHierarchyAccess->getByHierarchicalName(rNode);
+				aNode >>= xCont;
+			}
+			else
+				xCont = Reference<XNameContainer> (xHierarchyAccess, UNO_QUERY);
+			if(!xCont.is())
+				return sal_False;
+=====================================================================
+Found a 28 line (102 tokens) duplication in the following files: 
+Starting at line 1097 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/content.cxx
+Starting at line 1132 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/client/content.cxx
+
+	Reference< XDynamicResultSet > aOrigCursor = createDynamicCursor( rPropertyHandles, eMode );
+
+	if( aOrigCursor.is() )
+	{
+		Reference< XMultiServiceFactory > aServiceManager = m_xImpl->getServiceManager();
+
+		if( aServiceManager.is() )
+		{
+			Reference< XSortedDynamicResultSetFactory > aSortFactory( aServiceManager->createInstance(
+								rtl::OUString::createFromAscii( "com.sun.star.ucb.SortedDynamicResultSetFactory" )),
+								UNO_QUERY );
+
+			aResult = aSortFactory->createSortedDynamicResultSet( aOrigCursor,
+															  rSortInfo,
+															  rAnyCompareFactory );
+		}
+
+		OSL_ENSURE( aResult.is(), "Content::createSortedDynamicCursor - no sorted cursor!\n" );
+
+		if( !aResult.is() )
+			aResult = aOrigCursor;
+	}
+
+	return aResult;
+}
+
+//=========================================================================
+Reference< XResultSet > Content::createSortedCursor(
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+Starting at line 325 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/webdav/webdavdatasupplier.cxx
+
+uno::Reference< sdbc::XRow > DataSupplier::queryPropertyValues(
+                                                    sal_uInt32 nIndex  )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< sdbc::XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow;
+		if ( xRow.is() )
+		{
+			// Already cached.
+			return xRow;
+		}
+	}
+
+	if ( getResult( nIndex ) )
+	{
+        uno::Reference< sdbc::XRow > xRow
+            = Content::getPropertyValues(
+                m_pImpl->m_xSMgr,
+                getResultSet()->getProperties(),
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 1546 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+Starting at line 1582 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+                if ( !xIn.is() )
+                {
+                    // No interaction if we are not persistent!
+                    uno::Any aProps
+                        = uno::makeAny(
+                                 beans::PropertyValue(
+                                     rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+                                                       "Uri")),
+                                     -1,
+                                     uno::makeAny(m_xIdentifier->
+                                                      getContentIdentifier()),
+                                     beans::PropertyState_DIRECT_VALUE));
+                    ucbhelper::cancelCommandExecution(
+                        ucb::IOErrorCode_CANT_READ,
+                        uno::Sequence< uno::Any >(&aProps, 1),
+                        m_eState == PERSISTENT
+                            ? xEnv
+                            : uno::Reference< ucb::XCommandEnvironment >(),
+                        rtl::OUString::createFromAscii( "Got no data stream!" ),
+                        this );
+                    // Unreachable
+                }
+=====================================================================
+Found a 19 line (102 tokens) duplication in the following files: 
+Starting at line 439 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgdatasupplier.cxx
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+
+ResultSetDataSupplier::queryPropertyValues( sal_uInt32 nIndex  )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+	{
+        uno::Reference< sdbc::XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow;
+		if ( xRow.is() )
+		{
+			// Already cached.
+			return xRow;
+		}
+	}
+
+	if ( getResult( nIndex ) )
+	{
+        uno::Reference< sdbc::XRow > xRow = Content::getPropertyValues(
+						m_pImpl->m_xSMgr,
+						getResultSet()->getProperties(),
+=====================================================================
+Found a 23 line (102 tokens) duplication in the following files: 
+Starting at line 1596 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 1546 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+            if ( !xStream.is() )
+            {
+                // No interaction if we are not persistent!
+                uno::Any aProps
+                    = uno::makeAny(
+                             beans::PropertyValue(
+                                 rtl::OUString(
+                                     RTL_CONSTASCII_USTRINGPARAM("Uri")),
+                                 -1,
+                                 uno::makeAny(m_xIdentifier->
+                                                  getContentIdentifier()),
+                                 beans::PropertyState_DIRECT_VALUE));
+                ucbhelper::cancelCommandExecution(
+                    ucb::IOErrorCode_CANT_READ,
+                    uno::Sequence< uno::Any >(&aProps, 1),
+                    m_eState == PERSISTENT
+                        ? xEnv
+                        : uno::Reference< ucb::XCommandEnvironment >(),
+                    rtl::OUString::createFromAscii(
+                        "Got no data stream!" ),
+                    this );
+                // Unreachable
+            }
+=====================================================================
+Found a 36 line (102 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_resultset.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgresultset.cxx
+
+              const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 11 line (102 tokens) duplication in the following files: 
+Starting at line 2609 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+Starting at line 2707 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+Starting at line 2889 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/file/shell.cxx
+
+	std::list< PropertyChangeNotifier* >& listeners = *p;
+	{
+		osl::MutexGuard aGuard( m_aMutex );
+		shell::ContentMap::iterator it = m_aContent.find( aName );
+		if( it != m_aContent.end() && it->second.notifier )
+		{
+			std::list<Notifier*>& listOfNotifiers = *( it->second.notifier );
+			std::list<Notifier*>::iterator it1 = listOfNotifiers.begin();
+			while( it1 != listOfNotifiers.end() )
+			{
+				Notifier* pointer = *it1;
+=====================================================================
+Found a 10 line (102 tokens) duplication in the following files: 
+Starting at line 457 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/solar/solar.c
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/tools/workben/solar.c
+
+  fprintf( f, "#define __STACKALIGNMENT wird nicht benutzt\t%d\n", pThis->nStackAlignment );
+  fprintf( f, "#define __STACKDIRECTION\t%d\n",
+		   pThis->bStackGrowsDown ? -1 : 1 );
+  fprintf( f, "#define __SIZEOFCHAR\t%d\n", sizeof( char ) );
+  fprintf( f, "#define __SIZEOFSHORT\t%d\n", sizeof( short ) );
+  fprintf( f, "#define __SIZEOFINT\t%d\n", sizeof( int ) );
+  fprintf( f, "#define __SIZEOFLONG\t%d\n", sizeof( long ) );
+  fprintf( f, "#define __SIZEOFPOINTER\t%d\n", sizeof( void* ) );
+  fprintf( f, "#define __SIZEOFDOUBLE\t%d\n", sizeof( double ) );
+  fprintf( f, "#define __IEEEDOUBLE\n" );
+=====================================================================
+Found a 20 line (102 tokens) duplication in the following files: 
+Starting at line 880 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+Starting at line 904 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/inet/inetmime.cxx
+
+	const sal_Unicode * p = rBegin;
+	for ( ; p != pEnd; ++p)
+	{
+		int nWeight = getWeight(*p);
+		if (nWeight < 0)
+			break;
+		nTheValue = 10 * nTheValue + nWeight;
+		if (nTheValue > std::numeric_limits< sal_uInt32 >::max())
+			return false;
+	}
+	if (nTheValue == 0 && (p == rBegin || !bLeadingZeroes && p - rBegin != 1))
+		return false;
+	rBegin = p;
+	rValue = sal_uInt32(nTheValue);
+	return true;
+}
+
+//============================================================================
+// static
+bool INetMIME::scanUnsignedHex(const sal_Char *& rBegin,
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 4423 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+Starting at line 4603 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/fsys/urlobj.cxx
+
+bool INetURLObject::removeExtension(sal_Int32 nIndex, bool bIgnoreFinalSlash)
+{
+	SubString aSegment(getSegment(nIndex, bIgnoreFinalSlash));
+	if (!aSegment.isPresent())
+		return false;
+
+	sal_Unicode const * pPathBegin
+		= m_aAbsURIRef.getStr() + m_aPath.getBegin();
+	sal_Unicode const * pPathEnd = pPathBegin + m_aPath.getLength();
+	sal_Unicode const * pSegBegin
+		= m_aAbsURIRef.getStr() + aSegment.getBegin();
+	sal_Unicode const * pSegEnd = pSegBegin + aSegment.getLength();
+
+    if (pSegBegin < pSegEnd && *pSegBegin == '/')
+        ++pSegBegin;
+	sal_Unicode const * pExtension = 0;
+=====================================================================
+Found a 14 line (102 tokens) duplication in the following files: 
+Starting at line 110 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/prtopt.cxx
+Starting at line 105 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/utlui/navicfg.cxx
+
+	Sequence<OUString> aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+//	EnableNotification(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			if(pValues[nProp].hasValue())
+			{
+				switch(nProp)
+				{
+					case 0: pValues[nProp] >>= nRootType;	   break;
+=====================================================================
+Found a 13 line (102 tokens) duplication in the following files: 
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/modcfg.cxx
+Starting at line 975 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/modcfg.cxx
+
+void SwTableConfig::Load()
+{
+	const Sequence<OUString>& aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			if(pValues[nProp].hasValue())
+			{
+				sal_Int32 nTemp;
+=====================================================================
+Found a 15 line (102 tokens) duplication in the following files: 
+Starting at line 2147 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoframe.cxx
+Starting at line 1493 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+
+	if(pDoc )
+	{
+=====================================================================
+Found a 20 line (102 tokens) duplication in the following files: 
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/objectpositioning/anchoredobjectposition.cxx
+Starting at line 691 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/objectpositioning/anchoredobjectposition.cxx
+
+            if ( _rHoriOrientFrm.IsPageFrm() && bVert )
+            {
+                // for to-page anchored objects, consider header/footer frame
+                // in vertical layout
+                const SwFrm* pPrtFrm =
+                        static_cast<const SwPageFrm&>(_rHoriOrientFrm).Lower();
+                while( pPrtFrm )
+                {
+                    if( pPrtFrm->IsHeaderFrm() )
+                    {
+                        nWidth -= pPrtFrm->Frm().Height();
+                        nOffset += pPrtFrm->Frm().Height();
+                    }
+                    else if( pPrtFrm->IsFooterFrm() )
+                    {
+                        nWidth -= pPrtFrm->Frm().Height();
+                    }
+                    pPrtFrm = pPrtFrm->GetNext();
+                }
+            }
+=====================================================================
+Found a 11 line (102 tokens) duplication in the following files: 
+Starting at line 2240 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/flowfrm.cxx
+Starting at line 2348 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/flowfrm.cxx
+
+                            SwLayoutFrm* pNewNextUpper = pNewUpper->GetLeaf( MAKEPAGE_NONE, TRUE );
+                            if ( pNewNextUpper &&
+                                 pNewNextUpper != rThis.GetUpper() &&
+                                 pNewNextUpper->GetType() == pNewUpper->GetType() &&
+                                 pNewNextUpper->IsInDocBody() == pNewUpper->IsInDocBody() &&
+                                 pNewNextUpper->IsInFtn() == pNewUpper->IsInFtn() &&
+                                 pNewNextUpper->IsInTab() == pNewUpper->IsInTab() &&
+                                 pNewNextUpper->IsInSct() == pNewUpper->IsInSct() &&
+                                 !rThis.WrongPageDesc( pNewNextUpper->FindPageFrm() ) )
+                            {
+                                pNewUpper = pNewNextUpper;
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 1164 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+Starting at line 1387 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+	SdrHdl::CreateB2dIAObject();
+
+	// create lines
+	if(pHdlList)
+	{
+		SdrMarkView* pView = pHdlList->GetView();
+
+		if(pView && !pView->areMarkHandlesHidden())
+		{
+			SdrPageView* pPageView = pView->GetSdrPageView();
+
+			if(pPageView)
+			{
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+							basegfx::B2DPoint aPosition1(pHdl1->GetPos().X(), pHdl1->GetPos().Y());
+=====================================================================
+Found a 18 line (102 tokens) duplication in the following files: 
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+				aEndPos = aStartPos + (aFullVec * fLen);
+			}
+			
+			if(rG.aGradient.GetAngle())
+			{
+				const double fAngle = (double)rG.aGradient.GetAngle() * (F_PI180 / 10.0);
+				basegfx::B2DHomMatrix aTransformation;
+
+				aTransformation.translate(-aCenter.getX(), -aCenter.getY());
+				aTransformation.rotate(-fAngle);
+				aTransformation.translate(aCenter.getX(), aCenter.getY());
+				
+				aStartPos *= aTransformation;
+				aEndPos *= aTransformation;
+			}
+			break;
+		}
+		case XGRAD_RADIAL :
+=====================================================================
+Found a 6 line (102 tokens) duplication in the following files: 
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/eschesdo.cxx
+Starting at line 847 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/eschesdo.cxx
+
+		const ::com::sun::star::awt::Size	aSize100thmm( rObj.GetShapeRef()->getSize() );
+		const ::com::sun::star::awt::Point	aPoint100thmm( rObj.GetShapeRef()->getPosition() );
+		Rectangle	aRect100thmm( Point( aPoint100thmm.X, aPoint100thmm.Y ), Size( aSize100thmm.Width, aSize100thmm.Height ) );
+		if ( !mpPicStrm )
+			mpPicStrm = mpEscherEx->QueryPicStream();
+		EscherPropertyContainer aPropOpt( (EscherGraphicProvider&)*mpEscherEx, mpPicStrm, aRect100thmm );
+=====================================================================
+Found a 20 line (102 tokens) duplication in the following files: 
+Starting at line 1432 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmvwimp.cxx
+Starting at line 1607 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmvwimp.cxx
+
+		::rtl::OUString sLabelPostfix = _rDesc.szName;
+
+		////////////////////////////////////////////////////////////////
+		// nur fuer Textgroesse
+		OutputDevice* _pOutDev = NULL;
+		if (m_pView->GetActualOutDev() && m_pView->GetActualOutDev()->GetOutDevType() == OUTDEV_WINDOW)
+			_pOutDev = const_cast<OutputDevice*>(m_pView->GetActualOutDev());
+		else
+		{// OutDev suchen
+			SdrPageView* pPageView = m_pView->GetSdrPageView();
+			if( pPageView && !_pOutDev )
+			{
+				// const SdrPageViewWinList& rWinList = pPageView->GetWinList();
+				// const SdrPageViewWindows& rPageViewWindows = pPageView->GetPageViewWindows();
+
+				for( sal_uInt32 i = 0L; i < pPageView->PageWindowCount(); i++ )
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(i);
+
+					if( rPageWindow.GetPaintWindow().GetOutputDevice().GetOutDevType() == OUTDEV_WINDOW)
+=====================================================================
+Found a 14 line (102 tokens) duplication in the following files: 
+Starting at line 2423 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 1663 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+
+				Bitmap aBitmap(pGraphic->GetBitmap());
+				Size aSize(aBitmap.GetSizePixel());
+				if(aSize.Width()  > MAX_BMP_WIDTH ||
+				   aSize.Height() > MAX_BMP_HEIGHT)
+				{
+					BOOL bWidth = aSize.Width() > aSize.Height();
+					double nScale = bWidth ?
+										(double)MAX_BMP_WIDTH / (double)aSize.Width():
+										(double)MAX_BMP_HEIGHT / (double)aSize.Height();
+					aBitmap.Scale(nScale, nScale);
+
+				}
+				Image aImage(aBitmap);
+				pPopup->InsertItem(pInfo->nItemId, *pUIName, aImage );
+=====================================================================
+Found a 20 line (102 tokens) duplication in the following files: 
+Starting at line 192 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hyphen.cxx
+Starting at line 217 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/hyphen.cxx
+
+		if( aTxt.GetChar( i ) == sal_Unicode( SW_SOFT_HYPHEN ) )
+		{
+			aTxt.SetChar( i, sal_Unicode( HYPHHERE ) );
+
+			if ( nOldPos != 0 && nOldPos != aTxt.Len() )
+				aTxt.SetChar( nOldPos, sal_Unicode( SW_SOFT_HYPHEN ) );
+			nOldPos = i;
+			aWordEdit.SetText( aTxt );
+			aWordEdit.GrabFocus();
+			aWordEdit.SetSelection( Selection( i, i + 1 ) );
+			break;
+		}
+	}
+	nHyphPos = GetHyphIndex_Impl();
+	EnableLRBtn_Impl();
+}
+
+// -----------------------------------------------------------------------
+
+void SvxHyphenWordDialog::EnableLRBtn_Impl()
+=====================================================================
+Found a 23 line (102 tokens) duplication in the following files: 
+Starting at line 484 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/charmap.cxx
+Starting at line 2003 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/dlgctrl.cxx
+Starting at line 445 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/fntctrl.cxx
+
+void SvxFontPrevWindow::InitSettings( BOOL bForeground, BOOL bBackground )
+{
+	const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+
+	if ( bForeground )
+	{
+		svtools::ColorConfig aColorConfig;
+		Color aTextColor( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
+
+		if ( IsControlForeground() )
+			aTextColor = GetControlForeground();
+		SetTextColor( aTextColor );
+	}
+
+	if ( bBackground )
+	{
+		if ( IsControlBackground() )
+			SetBackground( GetControlBackground() );
+		else
+			SetBackground( rStyleSettings.GetWindowColor() );
+	}
+	Invalidate();
+}
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 4081 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+Starting at line 4120 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+
+	if ( rResourceURL.indexOf( OUString::createFromAscii( "private" ) ) == 0 &&
+		 m_xPersistentWindowState.is() &&
+		 m_xPersistentWindowState->hasByName( rResourceURL ) )
+	{
+		try
+		{
+			uno::Sequence< beans::PropertyValue > aProps;
+			uno::Any a( m_xPersistentWindowState->getByName( rResourceURL ) );
+
+			if ( a >>= aProps )
+			{
+				for ( sal_Int32 i = 0; i < aProps.getLength(); i++ )
+				{
+					if ( aProps[ i ].Name.equalsAscii( ITEM_DESCRIPTOR_STYLE) )
+					{
+						aProps[i].Value >>= result;
+=====================================================================
+Found a 12 line (102 tokens) duplication in the following files: 
+Starting at line 6879 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 6897 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+	(SvxMSDffVertPair*)mso_sptTextWave2Vert, sizeof( mso_sptTextWave2Vert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptWaveDefault,
+	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
+	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
+};
+
+static const SvxMSDffVertPair mso_sptTextWave3Vert[] =	// adjustment1 : 0 - 2230
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 1709 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShape2d.cxx
+Starting at line 6359 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+														bFirstDirection = FALSE;
+													else if ( bFirstDirection )
+														nModT ^= 1;
+												}
+												if ( nModT )			// get the right corner
+												{
+													nX = aCurrent.X();
+													nY = aPrev.Y();
+												}
+												else
+												{
+													nX = aPrev.X();
+													nY = aCurrent.Y();
+												}
+												sal_Int32 nXVec = ( nX - aPrev.X() ) >> 1;
+												sal_Int32 nYVec = ( nY - aPrev.Y() ) >> 1;
+												Point aControl1( aPrev.X() + nXVec, aPrev.Y() + nYVec );
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 1180 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/edit/textview.cxx
+Starting at line 1403 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/edit.cxx
+
+void Edit::ImplPaste( uno::Reference< datatransfer::clipboard::XClipboard >& rxClipboard )
+{
+	if ( rxClipboard.is() )
+	{
+        uno::Reference< datatransfer::XTransferable > xDataObj;
+
+		const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+		
+        try
+		{
+            xDataObj = rxClipboard->getContents();
+		}
+		catch( const ::com::sun::star::uno::Exception& )
+		{
+		}
+
+        Application::AcquireSolarMutex( nRef );
+
+        if ( xDataObj.is() )
+		{
+			datatransfer::DataFlavor aFlavor;
+			SotExchange::GetFormatDataFlavor( SOT_FORMAT_STRING, aFlavor );
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 403 of /local/ooo-build/ooo-build/src/oog680-m3/so3/source/dialog/linkdlg2.cxx
+Starting at line 398 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/linkdlg.cxx
+
+                MakeLnkName( sNewLinkName, 0 ,
+						aUrl2.GetMainURL(INetURLObject::DECODE_TO_IURI), sLinkName, &sFilter);
+				pLink->SetLinkSourceName( sNewLinkName );
+				pLink->Update();
+			}
+			if( pLinkMgr->GetPersist() )
+				pLinkMgr->GetPersist()->SetModified();
+			SvLinkManager* pNewMgr = pLinkMgr;
+			pLinkMgr = 0;
+			SetManager( pNewMgr );
+		}
+	}
+	else
+	{
+		USHORT nPos;
+		SvBaseLink* pLink = GetSelEntry( &nPos );
+        if ( pLink && (pLink->GetLinkSourceName().Len() != 0) )
+=====================================================================
+Found a 28 line (102 tokens) duplication in the following files: 
+Starting at line 627 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodel.cxx
+Starting at line 672 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/dialog/mailmodel.cxx
+
+                            aURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:MailExportFinished" ));
+                            xURLTransformer->parseStrict( aURL );
+                        }
+                        
+                        if ( xDispatchProvider.is() )
+                        {
+                            xDispatch = css::uno::Reference< css::frame::XDispatch >( 
+                                xDispatchProvider->queryDispatch( aURL, ::rtl::OUString(), 0 ));
+                            if ( xDispatch.is() )
+                            {
+                                try
+                                {
+                                    xDispatch->dispatch( aURL, aDispatchArgs );
+                                }
+                                catch ( css::uno::RuntimeException& )
+                                {
+                                    throw;
+                                }
+                                catch ( css::uno::Exception& )
+                                {
+                                }
+                            }
+                        }
+                    }   
+                    // If the model is not modified, it could be modified by the dispatch calls.
+                    // Therefore set back to modified = false. This should not hurt if we call
+                    // on a non-modified model.
+                    if ( !bModified )
+=====================================================================
+Found a 12 line (102 tokens) duplication in the following files: 
+Starting at line 599 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/appl/appopen.cxx
+Starting at line 1039 of /local/ooo-build/ooo-build/src/oog680-m3/sfx2/source/doc/objxtor.cxx
+
+	String aFact( rFact );
+	String aPrefix = String::CreateFromAscii( "private:factory/" );
+	if ( aPrefix.Len() == aFact.Match( aPrefix ) )
+		aFact.Erase( 0, aPrefix.Len() );
+	USHORT nPos = aFact.Search( '?' );
+	String aParam;
+	if ( nPos != STRING_NOTFOUND )
+	{
+		aParam = aFact.Copy( nPos, aFact.Len() );
+		aFact.Erase( nPos, aFact.Len() );
+		aParam.Erase(0,1);
+	}
+=====================================================================
+Found a 23 line (102 tokens) duplication in the following files: 
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/regactivex/regactivex.cxx
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/regpatchactivex/regpatchactivex.cxx
+
+}		
+
+//----------------------------------------------------------
+BOOL GetMsiProp( MSIHANDLE hMSI, const wchar_t* pPropName, wchar_t** ppValue )
+{
+    DWORD sz = 0;
+   	if ( MsiGetProperty( hMSI, pPropName, L"", &sz ) == ERROR_MORE_DATA )
+   	{
+       	sz++;
+       	DWORD nbytes = sz * sizeof( wchar_t );
+       	wchar_t* buff = reinterpret_cast<wchar_t*>( malloc( nbytes ) );
+       	ZeroMemory( buff, nbytes );
+       	MsiGetProperty( hMSI, pPropName, buff, &sz );
+   		*ppValue = buff;
+
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+//----------------------------------------------------------
+BOOL MakeInstallForAllUsers( MSIHANDLE hMSI )
+=====================================================================
+Found a 32 line (102 tokens) duplication in the following files: 
+Starting at line 83 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/indexingfilter/restartindexingservice.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/indexingfilter/restartindexingservice.cxx
+
+            while (status.dwCurrentState == SERVICE_START_PENDING) 
+            { 
+                // Do not wait longer than the wait hint. A good interval is 
+                // one tenth the wait hint, but no less than 1 second and no 
+                // more than 10 seconds.          
+                DWORD waitTime = status.dwWaitHint / 10;
+
+                if (waitTime < 1000)
+                    waitTime = 1000;
+                else if (waitTime > 10000)
+                    waitTime = 10000;
+
+                Sleep(waitTime);
+
+                // Check the status again.          
+                if (!QueryServiceStatus_(hService, &status) ||
+                    (status.dwCurrentState == SERVICE_STOPPED))  
+                    break;
+                                                 
+                if (status.dwCheckPoint > oldCheckPoint)
+                {                
+                    startTime = GetTickCount();
+                    oldCheckPoint = status.dwCheckPoint;
+                }
+                else if ((GetTickCount() - startTime) > status.dwWaitHint)
+                {
+                    // service doesn't react anymore
+                    break;
+                }                                    
+            }
+        }
+    }        
+=====================================================================
+Found a 24 line (102 tokens) duplication in the following files: 
+Starting at line 366 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/SdUnoDrawView.cxx
+Starting at line 144 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/SdUnoOutlineView.cxx
+
+sal_Bool SdUnoOutlineView::convertFastPropertyValue (
+	Any & rConvertedValue, 
+	Any & rOldValue, 
+	sal_Int32 nHandle, 
+	const Any& rValue)
+    throw ( com::sun::star::lang::IllegalArgumentException)
+{
+    sal_Bool bResult = sal_False;
+
+	switch( nHandle )
+	{
+		case DrawController::PROPERTY_CURRENTPAGE:
+			{
+				Reference< drawing::XDrawPage > xOldPage( getCurrentPage() );
+				Reference< drawing::XDrawPage > xNewPage;
+				::cppu::convertPropertyValue( xNewPage, rValue );
+				if( xOldPage != xNewPage )
+				{
+					rConvertedValue <<= xNewPage;
+					rOldValue <<= xOldPage;
+					bResult = sal_True;
+				}
+			}
+            break;
+=====================================================================
+Found a 7 line (102 tokens) duplication in the following files: 
+Starting at line 1851 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbarange.cxx
+Starting at line 1876 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/vba/vbarange.cxx
+
+		uno::Reference< table::XCellRange > xCellRange( xRange->getCellRange(), uno::UNO_QUERY_THROW );
+		uno::Reference< sheet::XSheetCellRange > xSheetCellRange(xCellRange, ::uno::UNO_QUERY_THROW );
+		uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
+		uno::Reference< table::XCellRange > xDest( xSheet, uno::UNO_QUERY_THROW );
+		uno::Reference< sheet::XCellRangeMovement > xMover( xSheet, uno::UNO_QUERY_THROW);
+		uno::Reference< sheet::XCellAddressable > xDestination( xDest->getCellByPosition(
+												xRange->getColumn()-1,xRange->getRow()-1), uno::UNO_QUERY);
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 761 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+Starting at line 1586 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undodat.cxx
+
+											aBlockEnd.Col(),aBlockEnd.Row(),nTab );
+
+	if (pUndoRange)
+		pDoc->SetRangeName( new ScRangeName( *pUndoRange ) );
+	if (pUndoDB)
+		pDoc->SetDBCollection( new ScDBCollection( *pUndoDB ), TRUE );
+
+// erack! it's broadcasted
+//	pDoc->SetDirty();
+
+	SCTAB nVisTab = pViewShell->GetViewData()->GetTabNo();
+	if ( nVisTab != nTab )
+		pViewShell->SetTabNo( nTab );
+
+	pDocShell->PostPaint(0,0,nTab,MAXCOL,MAXROW,nTab,PAINT_GRID|PAINT_LEFT|PAINT_TOP|PAINT_SIZE);
+	pDocShell->PostDataChanged();
+
+	EndUndo();
+}
+
+void __EXPORT ScUndoRepeatDB::Redo()
+=====================================================================
+Found a 18 line (102 tokens) duplication in the following files: 
+Starting at line 374 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undobase.cxx
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/undo/undobase.cxx
+
+    if ( pAutoDBRange )
+    {
+        // move the database range to this function's position again (see ScDocShell::GetDBData)
+
+        USHORT nNoNameIndex;
+        ScDocument* pDoc = pDocShell->GetDocument();
+        ScDBCollection* pColl = pDoc->GetDBCollection();
+        if ( pColl->SearchName( ScGlobal::GetRscString( STR_DB_NONAME ), nNoNameIndex ) )
+        {
+            ScDBData* pNoNameData = (*pColl)[nNoNameIndex];
+
+            SCCOL nRangeX1;
+            SCROW nRangeY1;
+            SCCOL nRangeX2;
+            SCROW nRangeY2;
+            SCTAB nRangeTab;
+            pNoNameData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+            pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+=====================================================================
+Found a 19 line (102 tokens) duplication in the following files: 
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+Starting at line 723 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/miscdlgs/acredlin.cxx
+
+	BOOL bFlag=FALSE;
+
+	ScRange aRef=pScChangeAction->GetBigRange().MakeRange();
+	String aUser=pScChangeAction->GetUser();
+	DateTime aDateTime=pScChangeAction->GetDateTime();
+
+	if(pTheView->IsValidEntry(&aUser,&aDateTime)||bIsGenerated)
+	{
+		if(pTPFilter->IsRange())
+		{
+			ScRange* pRangeEntry=aRangeList.First();
+
+			while(pRangeEntry!=NULL)
+			{
+				if(pRangeEntry->Intersects(aRef)) break;
+				pRangeEntry=aRangeList.Next();
+			}
+			//SC_CAS_VIRGIN,SC_CAS_ACCEPTED,SC_CAS_REJECTED
+			if(pRangeEntry!=NULL)
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 905 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/formula.cxx
+Starting at line 975 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/formdlg/formula.cxx
+
+	if ( bFound )
+	{
+		xub_StrLen nFEnd;
+
+		// Selektion merken und neue setzen
+		pScMod->InputGetSelection( nFStart, nFEnd );
+		pScMod->InputSetSelection( nNextFStart, nNextFEnd );
+		if(!bEditFlag)
+			pMEdit->SetText(pScMod->InputGetFormulaStr());
+
+		xub_StrLen PrivStart, PrivEnd;
+		pScMod->InputGetSelection( PrivStart, PrivEnd);
+		if(!bEditFlag)
+		{
+			pMEdit->SetSelection( Selection(PrivStart, PrivEnd));
+			aMEFormula.UpdateOldSel();
+		}
+
+		pData->SetFStart( nNextFStart );
+		pData->SetOffset( 0 );
+		pData->SetEdFocus( 0 );
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 548 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/filtdlg.cxx
+Starting at line 417 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/dbgui/pfiltdlg.cxx
+
+	for ( SCSIZE i=0; i<3; i++ )
+	{
+		USHORT 		nField	= aFieldLbArr[i]->GetSelectEntryPos();
+		ScQueryOp	eOp		= (ScQueryOp)aCondLbArr[i]->GetSelectEntryPos();
+
+		BOOL bDoThis = (aFieldLbArr[i]->GetSelectEntryPos() != 0);
+		theParam.GetEntry(i).bDoQuery = bDoThis;
+
+		if ( bDoThis )
+		{
+			ScQueryEntry& rEntry = theParam.GetEntry(i);
+
+			String aStrVal( aValueEdArr[i]->GetText() );
+
+			/*
+			 * Dialog liefert die ausgezeichneten Feldwerte "leer"/"nicht leer"
+			 * als Konstanten in nVal in Verbindung mit dem Schalter
+			 * bQueryByString auf FALSE.
+			 */
+			if ( aStrVal == aStrEmpty )
+			{
+=====================================================================
+Found a 23 line (102 tokens) duplication in the following files: 
+Starting at line 264 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/conditio.cxx
+Starting at line 478 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/conditio.cxx
+
+				pFormula2 = aComp.CompileString( rExpr2 );
+				if ( pFormula2->GetLen() == 1 )
+				{
+					// einzelne (konstante Zahl) ?
+					ScToken* pToken = pFormula2->First();
+					if ( pToken->GetOpCode() == ocPush )
+					{
+						if ( pToken->GetType() == svDouble )
+						{
+							nVal2 = pToken->GetDouble();
+							DELETEZ(pFormula2);				// nicht als Formel merken
+						}
+						else if ( pToken->GetType() == svString )
+						{
+							bIsStr2 = TRUE;
+							aStrVal2 = pToken->GetString();
+							DELETEZ(pFormula2);				// nicht als Formel merken
+						}
+					}
+				}
+				bRelRef2 = lcl_HasRelRef( pDoc, pFormula2 );
+			}
+		}
+=====================================================================
+Found a 34 line (102 tokens) duplication in the following files: 
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/tcvtmb.c
+Starting at line 520 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/tcvtmb.c
+
+                if ( (cLead < JIS_EUC_LEAD_OFF) || (cTrail < JIS_EUC_TRAIL_OFF) )
+                {
+                    *pInfo |= RTL_TEXTTOUNICODE_INFO_INVALID;
+                    if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR )
+                    {
+                        *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
+                        break;
+                    }
+                    else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_INVALID_MASK) == RTL_TEXTTOUNICODE_FLAGS_INVALID_IGNORE )
+                    {
+                        pSrcBuf++;
+                        continue;
+                    }
+                    else
+                        cConv = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
+                }
+                else
+                {
+                    *pInfo |= RTL_TEXTTOUNICODE_INFO_MBUNDEFINED;
+                    if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR )
+                    {
+                        *pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR;
+                        break;
+                    }
+                    else if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_IGNORE )
+                    {
+                        pSrcBuf++;
+                        continue;
+                    }
+                    else
+                        cConv = RTL_TEXTENC_UNICODE_REPLACEMENT_CHARACTER;
+                }
+            }
+        }
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 510 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+	sal_Int32 i;
+
+    for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+        sal_Int32 cmpRes = arrTestCase[i].input1->compareTo
+            (*arrTestCase[i].input2);
+        cmpRes = ( cmpRes == 0 ) ? 0 : ( cmpRes > 0 ) ? +1 : -1 ;
+        sal_Bool lastRes = ( cmpRes == arrTestCase[i].expVal);
+
+    
+        c_rtl_tres_state
+            (
+                hRtlTestResult,
+                lastRes,
+                arrTestCase[i].comments,
+                createName( pMeth, "compareTo_001(const OString&)", i )
+=====================================================================
+Found a 13 line (102 tokens) duplication in the following files: 
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdicxml.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/linguistic/source/convdicxml.cxx
+
+void ConvDicXMLEntryTextContext_Impl::StartElement(
+		const uno::Reference< xml::sax::XAttributeList >& rxAttrList )
+{
+    sal_Int16 nAttrCount = rxAttrList.is() ? rxAttrList->getLength() : 0;
+    for (sal_Int16 i = 0;  i < nAttrCount;  ++i)
+    {
+        OUString aAttrName = rxAttrList->getNameByIndex(i);
+        OUString aLocalName;
+        sal_uInt16 nPrefix = GetImport().GetNamespaceMap().
+                                    GetKeyByAttrName( aAttrName, &aLocalName );
+        OUString aValue = rxAttrList->getValueByIndex(i);
+
+        if (nPrefix == XML_NAMESPACE_TCD && aLocalName.equalsAscii( "left-text" ))
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x9c,0x0f,0x00,0x00,0x3e,0x1f,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 945 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 937 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x9c,0x0f,0x00,0x00,0x3e,0x1f,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 937 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x9c,0x0f,0x00,0x00,0x3e,0x1f,
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 931 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
+Starting at line 52 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
+
+ignoreKiKuFollowedBySa_ja_JP::folding( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset )
+  throw(RuntimeException)
+{
+    // Create a string buffer which can hold nCount + 1 characters.
+    // The reference count is 0 now.
+    rtl_uString * newStr = x_rtl_uString_new_WithLength( nCount ); // defined in x_rtl_ustring.h  
+    sal_Unicode * dst = newStr->buffer;
+    const sal_Unicode * src = inStr.getStr() + startPos;
+
+    sal_Int32 *p = 0;
+	sal_Int32 position = 0;
+    if (useOffset) {
+        // Allocate nCount length to offset argument.
+        offset.realloc( nCount );
+        p = offset.getArray();
+        position = startPos;
+    }
+
+    // 
+    sal_Unicode previousChar = *src ++;
+    sal_Unicode currentChar;
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (102 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_curs.h
+
+static char aswe_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x80,0xc3,0xe1,0x00,0xc0,0xe3,0xe3,0x01,
+=====================================================================
+Found a 15 line (102 tokens) duplication in the following files: 
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_hi.cxx
+Starting at line 126 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/breakiterator/breakiterator_th.cxx
+
+	throw(RuntimeException)
+{
+	if (Text != cachedText) {
+	    cachedText = Text;
+	    if (cellIndexSize < cachedText.getLength()) {
+		cellIndexSize = cachedText.getLength();
+		free(nextCellIndex);
+		free(previousCellIndex);
+		nextCellIndex = (sal_Int32*) calloc(cellIndexSize, sizeof(sal_Int32));
+		previousCellIndex = (sal_Int32*) calloc(cellIndexSize, sizeof(sal_Int32));
+	    }
+	    // reset nextCell for new Text
+	    memset(nextCellIndex, 0, cellIndexSize * sizeof(sal_Int32));
+	}
+	else if (nextCellIndex[nStartPos] > 0 || ! is_Thai(Text[nStartPos]))
+=====================================================================
+Found a 7 line (102 tokens) duplication in the following files: 
+Starting at line 59 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/ksc5601.h
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/app/i18n_keysym.cxx
+
+    0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
+    0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
+    0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
+    0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
+    0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
+    0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
+    0x3161, 0x3162, 0x3163, 0x11a8, 0x11a9, 0x11aa, 0x11ab, 0x11ac,
+=====================================================================
+Found a 12 line (102 tokens) duplication in the following files: 
+Starting at line 1428 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1533 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							nSinY = pSinY[ nY ], nCosY = pCosY[ nY ];
+
+							for( nX = 0; nX < nDstW; nX++ )
+							{
+								nUnRotX = ( pCosX[ nX ] - nSinY ) >> 8;
+								nUnRotY = ( pSinX[ nX ] + nCosY ) >> 8;
+
+								if( ( nUnRotX >= 0L ) && ( nUnRotX < nUnRotW ) &&
+									( nUnRotY >= 0L ) && ( nUnRotY < nUnRotH ) )
+								{
+									nTmpX = pMapIX[ nUnRotX ]; nTmpFX = pMapFX[ nUnRotX ];
+									nTmpY = pMapIY[ nUnRotY ], nTmpFY = pMapFY[ nUnRotY ];
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 82 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/attributelist.cxx
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/config/xmlaccelcfg.cxx
+
+	::std::vector<struct TagAttribute> vecAttribute;
+};
+
+
+
+sal_Int16 SAL_CALL AttributeListImpl::getLength(void) throw (RuntimeException)
+{
+	return sal::static_int_cast< sal_Int16 >(m_pImpl->vecAttribute.size());
+}
+
+
+AttributeListImpl::AttributeListImpl( const AttributeListImpl &r ) :
+    cppu::WeakImplHelper1<com::sun::star::xml::sax::XAttributeList>(r)
+{
+	m_pImpl = new AttributeListImpl_impl;
+	*m_pImpl = *(r.m_pImpl);
+}
+
+OUString AttributeListImpl::getNameByIndex(sal_Int16 i) throw (RuntimeException)
+{
+	if( i < sal::static_int_cast<sal_Int16>(m_pImpl->vecAttribute.size()) ) {
+=====================================================================
+Found a 18 line (102 tokens) duplication in the following files: 
+Starting at line 1227 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+Starting at line 1930 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/menubarmanager.cxx
+
+    {
+        RetrieveShortcuts( m_aMenuItemHandlerVector );
+        std::vector< MenuItemHandler* >::iterator p;
+		for ( p = m_aMenuItemHandlerVector.begin(); p != m_aMenuItemHandlerVector.end(); p++ )
+		{
+		    MenuItemHandler* pMenuItemHandler = *p;
+
+            // Set key code, workaround for hard-coded shortcut F1 mapped to .uno:HelpIndex
+            // Only non-popup menu items can have a short-cut
+            if ( pMenuItemHandler->aMenuItemURL == aCmdHelpIndex )
+            {
+                KeyCode aKeyCode( KEY_F1 );
+                pMenu->SetAccelKey( pMenuItemHandler->nItemId, aKeyCode );
+            }
+            else if ( pMenu->GetPopupMenu( pMenuItemHandler->nItemId ) == 0 )
+                pMenu->SetAccelKey( pMenuItemHandler->nItemId, pMenuItemHandler->aKeyCode );
+        }
+    }
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 905 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/menudocumenthandler.cxx
+Starting at line 939 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/xml/menudocumenthandler.cxx
+
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUITEM )), xList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUITEM )) );
+}
+
+
+void OWriteMenuDocumentHandler::WriteMenuSeparator()
+{
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUSEPARATOR )), m_xEmptyList );
+	m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
+	m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_NS_MENUSEPARATOR )) );
+}
+
+} // namespace framework
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 392 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/navigationbar.cxx
+Starting at line 360 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/richtext/richtextmodel.cxx
+
+    sal_Bool SAL_CALL ORichTextModel::convertFastPropertyValue( Any& _rConvertedValue, Any& _rOldValue, sal_Int32 _nHandle, const Any& _rValue ) throw( IllegalArgumentException )
+    {
+        sal_Bool bModified = sal_False;
+
+        if ( isRegisteredProperty( _nHandle ) )
+        {
+            bModified = OPropertyContainerHelper::convertFastPropertyValue( _rConvertedValue, _rOldValue, _nHandle, _rValue );
+        }
+        else if ( isFontRelatedProperty( _nHandle ) )
+        {
+            bModified = FontControlModel::convertFastPropertyValue( _rConvertedValue, _rOldValue, _nHandle, _rValue );
+        }
+        else
+        {
+    		bModified = OControlModel::convertFastPropertyValue( _rConvertedValue, _rOldValue, _nHandle, _rValue );
+        }
+
+        return bModified;
+    }
+
+    //--------------------------------------------------------------------
+    void SAL_CALL ORichTextModel::setFastPropertyValue_NoBroadcast( sal_Int32 _nHandle, const Any& _rValue ) throw ( Exception)
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 947 of /local/ooo-build/ooo-build/src/oog680-m3/fileaccess/source/FileAccess.cxx
+Starting at line 680 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xsltfilter/XSLTFilter.cxx
+
+            const OUString * pArray = rSNL.getConstArray();
+            for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
+                xNewKey->createKey( pArray[nPos] );
+
+            return sal_True;
+        }
+        catch (InvalidRegistryException &)
+        {
+            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+        }
+    }
+    return sal_False;
+}
+
+void * SAL_CALL component_getFactory(
+    const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
+{
+    void * pRet = 0;
+
+    if (pServiceManager && rtl_str_compare( pImplName, IMPLEMENTATION_NAME ) == 0)
+    {
+        Reference< XSingleServiceFactory > xFactory( createSingleFactory(
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 1784 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpnt/cpnt.cxx
+Starting at line 1956 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpnt/cpnt.cxx
+
+			arAny[0] <<=  xSimple;
+			SimpleStruct aStruct;
+			Reference<XIdlReflection> xRefl( m_rFactory->createInstance(L"com.sun.star.reflection.CoreReflection"), UNO_QUERY);
+			if( xRefl.is())
+			{
+				Reference<XIdlClass> xClass= xRefl->forName(L"oletest.SimpleStruct");
+				Any any;
+				if( xClass.is())
+					xClass->createObject( any);
+
+				if( any.getValueTypeClass() == TypeClass_STRUCT)
+				{
+					SimpleStruct* pStruct= ( SimpleStruct*) any.getValue();
+					pStruct->message= OUString::createFromAscii("This struct was created in OleTest");
+					any >>= aStruct;
+				}
+			}
+=====================================================================
+Found a 24 line (102 tokens) duplication in the following files: 
+Starting at line 81 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/OleConverterVar1/convTest.cxx
+Starting at line 47 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/test/ole/cpptest/cpptest.cpp
+
+int main(int argc, char* argv[])
+{
+	HRESULT hr;
+	if( FAILED( hr=CoInitialize(NULL)))
+	{
+		_tprintf(_T("CoInitialize failed \n"));
+		return -1;
+	}
+
+	
+	_Module.Init( ObjectMap, GetModuleHandle( NULL));
+
+	if( FAILED(hr=doTest()))
+	{
+		_com_error err( hr);
+		const TCHAR * errMsg= err.ErrorMessage();
+		MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+	}
+
+
+	_Module.Term();
+	CoUninitialize();
+	return 0;
+}
+=====================================================================
+Found a 11 line (102 tokens) duplication in the following files: 
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+Starting at line 222 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											3 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											4 );
+
+	uno::Reference< uno::XInterface > xResult(
+=====================================================================
+Found a 13 line (102 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 214 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OOoEmbeddedObjectFactory::createInstanceInitFromMediaDescriptor" );
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Sequence< beans::PropertyValue > aTempMedDescr( aMediaDescr );
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/visobj.cxx
+Starting at line 334 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olevisual.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObject::getPreferredVisualRepresentation" );
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	// TODO: if the object has cached representation then it should be returned
+	// TODO: if the object has no cached representation and is in loaded state it should switch itself to the running state
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The object is not loaded!\n" ),
+=====================================================================
+Found a 16 line (102 tokens) duplication in the following files: 
+Starting at line 1520 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1850 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+
+	VerbExecutionControllerGuard aVerbGuard( m_aVerbExecutionController );
+
+	if ( m_nObjectState == -1 )
+	{
+		// the object is still not loaded
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Can't store object without persistence!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+	}
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_bReadOnly )
+		throw io::IOException(); // TODO: access denied
+=====================================================================
+Found a 4 line (102 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x9c,0x0f,0x00,0x00,0x3e,0x1f,
+=====================================================================
+Found a 27 line (102 tokens) duplication in the following files: 
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/qssl/runargv.c
+Starting at line 713 of /local/ooo-build/ooo-build/src/oog680-m3/dmake/unix/runargv.c
+
+      Unlink_temp_files( _procs[i].pr_target );
+      Handle_result(status,_procs[i].pr_ignore,_abort_flg,_procs[i].pr_target);
+
+ ABORT_REMAINDER_OF_RECIPE:
+      if( _procs[i].pr_last ) {
+	 FREE(_procs[i].pr_dir ); /* Set in _add_child() */
+
+	 if( !Doing_bang ) Update_time_stamp( _procs[i].pr_target );
+      }
+   }
+
+   Set_dir(dir);
+   FREE(dir);
+}
+
+
+static int
+_running( cp )/*
+================
+  Check if target exists in process array AND is running. Return its
+  process array index if it is running, return -1 otherwise.
+*/
+CELLPTR cp;
+{
+   register int i;
+
+   if( !_procs ) return( -1 );
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 118 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/app/officeipcthread.cxx
+Starting at line 48 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl/digest/rtl_digest.cxx
+
+rtl::OUString CreateMD5FromString( const rtl::OUString& aMsg )
+{
+	// PRE: aStr "file"
+	// BACK: Str "ababab....0f" Hexcode String
+
+	rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
+	if ( handle > 0 )
+	{
+		const sal_uInt8* pData = (const sal_uInt8*)aMsg.getStr();
+		sal_uInt32		 nSize = ( aMsg.getLength() * sizeof( sal_Unicode ));
+		sal_uInt32		 nMD5KeyLen = rtl_digest_queryLength( handle );
+		sal_uInt8*		 pMD5KeyBuffer = new sal_uInt8[ nMD5KeyLen ];
+
+		rtl_digest_init( handle, pData, nSize );
+		rtl_digest_update( handle, pData, nSize );
+		rtl_digest_get( handle, pMD5KeyBuffer, nMD5KeyLen );
+		rtl_digest_destroy( handle );
+=====================================================================
+Found a 11 line (102 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/querydesign/TableWindowTitle.cxx
+Starting at line 1313 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/optinet2.cxx
+
+	aPt = Point(OutputToScreenPixel( aItemRect.TopLeft() ));
+	aItemRect.Left()   = aPt.X();
+	aItemRect.Top()    = aPt.Y();
+	aPt = OutputToScreenPixel( aItemRect.BottomRight() );
+	aItemRect.Right()  = aPt.X();
+	aItemRect.Bottom() = aPt.Y();
+	if( rHEvt.GetMode() == HELPMODE_BALLOON )
+		Help::ShowBalloon( this, aItemRect.Center(), aItemRect, aHelpText);
+	else
+		Help::ShowQuickHelp( this, aItemRect, aHelpText );
+}
+=====================================================================
+Found a 36 line (102 tokens) duplication in the following files: 
+Starting at line 78 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/myucp_resultset.cxx
+Starting at line 71 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgresultset.cxx
+
+              const uno::Reference< ucb::XCommandEnvironment >& rxEnv )
+: ResultSetImplHelper( rxSMgr, rCommand ),
+  m_xContent( rxContent ),
+  m_xEnv( rxEnv )
+{
+}
+
+//=========================================================================
+//
+// Non-interface methods.
+//
+//=========================================================================
+
+void DynamicResultSet::initStatic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+}
+
+//=========================================================================
+void DynamicResultSet::initDynamic()
+{
+	m_xResultSet1
+		= new ::ucbhelper::ResultSet( m_xSMgr,
+                                      m_aCommand.Properties,
+                                      new DataSupplier( m_xSMgr,
+                                                        m_xContent,
+                                                        m_aCommand.Mode ),
+                                      m_xEnv );
+	m_xResultSet2 = m_xResultSet1;
+}
+=====================================================================
+Found a 20 line (102 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 574 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+    CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int16 >());
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
+=====================================================================
+Found a 14 line (102 tokens) duplication in the following files: 
+Starting at line 114 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx
+
+using namespace connectivity::skeleton;
+//------------------------------------------------------------------------------
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::sdbc;
+using namespace com::sun::star::sdbcx;
+using namespace com::sun::star::container;
+using namespace com::sun::star::io;
+using namespace com::sun::star::util;
+//------------------------------------------------------------------------------
+OStatement_Base::OStatement_Base(OConnection* _pConnection ) 
+	: OStatement_BASE(m_aMutex),
+	OPropertySetHelper(OStatement_BASE::rBHelper),
+=====================================================================
+Found a 10 line (102 tokens) duplication in the following files: 
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Array.cxx
+Starting at line 196 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Array.cxx
+
+::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL java_sql_Array::getResultSetAtIndex( sal_Int32 index, sal_Int32 count, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
+{
+	jobject out(0);
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+	if( t.pEnv ){
+		// Parameter konvertieren
+		jobject obj = convertTypeMapToJavaMap(t.pEnv,typeMap);
+		// temporaere Variable initialisieren
+		static const char * cSignature = "(Ljava/util/Map;)Ljava/sql/ResultSet;";
+		static const char * cMethodName = "getResultSetAtIndex";
+=====================================================================
+Found a 31 line (102 tokens) duplication in the following files: 
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/adabas/Bservices.cxx
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/calc/Cservices.cxx
+
+		OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+	}
+
+	return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+					const sal_Char* pImplementationName,
+					void* pServiceManager,
+					void* /*pRegistryKey*/)
+{
+	void* pRet = 0;
+	if (pServiceManager)
+	{
+		ProviderRequest aReq(pServiceManager,pImplementationName);
+
+		aReq.CREATE_PROVIDER(
+			ODriver::getImplementationName_Static(),
+			ODriver::getSupportedServiceNames_Static(),
+			ODriver_CreateInstance, ::cppu::createSingleFactory)
+		;
+
+		if(aReq.xRet.is())
+			aReq.xRet->acquire();
+
+		pRet = aReq.getProvider();
+	}
+
+	return pRet;
+};
+=====================================================================
+Found a 13 line (102 tokens) duplication in the following files: 
+Starting at line 330 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/platformbe/systemintegrationmanager.cxx
+Starting at line 361 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/platformbe/systemintegrationmanager.cxx
+
+void SAL_CALL SystemIntegrationManager::removeChangesListener( 
+	const uno::Reference<backenduno::XBackendChangesListener>& xListener,
+	const rtl::OUString& aComponent)
+	throw (::com::sun::star::uno::RuntimeException)
+{
+	osl::MutexGuard aGuard(mMutex);
+    {
+        PlatformBackendList aUniversalBackends = getSupportingBackends(getAllComponentsName());
+        for (sal_uInt32 i=0; i< aUniversalBackends.size(); i++)
+        {
+            uno::Reference<backenduno::XBackendChangesNotifier> xBackend( aUniversalBackends[i], uno::UNO_QUERY) ;
+            if (xBackend.is())
+                xBackend->removeChangesListener(xListener, aComponent);
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 179 of /local/ooo-build/ooo-build/src/oog680-m3/comphelper/source/property/propstate.cxx
+Starting at line 955 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/FormComponent.cxx
+
+PropertyState OControlModel::getPropertyStateByHandle( sal_Int32 _nHandle )
+{
+	// simply compare the current and the default value
+	Any aCurrentValue = getPropertyDefaultByHandle( _nHandle );
+	Any aDefaultValue;  getFastPropertyValue( aDefaultValue, _nHandle );
+
+	sal_Bool bEqual = uno_type_equalData(
+			const_cast< void* >( aCurrentValue.getValue() ), aCurrentValue.getValueType().getTypeLibType(),
+			const_cast< void* >( aDefaultValue.getValue() ), aDefaultValue.getValueType().getTypeLibType(),
+			reinterpret_cast< uno_QueryInterfaceFunc >(cpp_queryInterface),
+            reinterpret_cast< uno_ReleaseFunc >(cpp_release)
+		);
+    return bEqual ? PropertyState_DEFAULT_VALUE : PropertyState_DIRECT_VALUE;
+}
+
+//------------------------------------------------------------------------------
+void OControlModel::setPropertyToDefaultByHandle( sal_Int32 _nHandle)
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 2959 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javatype.cxx
+Starting at line 3152 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/javamaker/javatype.cxx
+
+    code->branchHere(branch1);
+    code->instrNew(
+        rtl::OString(RTL_CONSTASCII_STRINGPARAM("com/sun/star/uno/Type")));
+    // stack: value type
+    code->instrDup();
+    // stack: value type type
+    code->loadStringConstant(realJavaBaseName);
+    // stack: value type type "..."
+    code->instrGetstatic(
+        rtl::OString(RTL_CONSTASCII_STRINGPARAM("com/sun/star/uno/TypeClass")),
+        rtl::OString(RTL_CONSTASCII_STRINGPARAM("INTERFACE")),
+        rtl::OString(
+            RTL_CONSTASCII_STRINGPARAM("Lcom/sun/star/uno/TypeClass;")));
+    // stack: value type type "..." INTERFACE
+    code->instrInvokespecial(
+        rtl::OString(RTL_CONSTASCII_STRINGPARAM("com/sun/star/uno/Type")),
+        rtl::OString(RTL_CONSTASCII_STRINGPARAM("<init>")),
+        rtl::OString(
+            RTL_CONSTASCII_STRINGPARAM(
+                "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V")));
+    // stack: value type
+    code->instrSwap();
+=====================================================================
+Found a 27 line (102 tokens) duplication in the following files: 
+Starting at line 2338 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 3635 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+sal_Bool TypeDefType::dumpHFile(
+    FileStream& o, codemaker::cppumaker::Includes & includes)
+	throw( CannotDumpException )
+{
+	OString headerDefine(dumpHeaderDefine(o, "HDL"));
+	o << "\n";
+
+	addDefaultHIncludes(includes);
+	includes.dump(o, 0);
+	o << "\n";
+
+    if (codemaker::cppumaker::dumpNamespaceOpen(o, m_typeName, false)) {
+        o << "\n";
+    }
+
+	dumpDeclaration(o);
+
+    if (codemaker::cppumaker::dumpNamespaceClose(o, m_typeName, false)) {
+        o << "\n";
+    }
+
+//	o << "\nnamespace com { namespace sun { namespace star { namespace uno {\n"
+//	  << "class Type;\n} } } }\n\n";
+//	o << "inline const ::com::sun::star::uno::Type& SAL_CALL get_" << m_typeName.replace('/', '_')
+//	  <<  "_Type( ) SAL_THROW( () );\n\n";
+
+	o << "#endif // "<< headerDefine << "\n";
+=====================================================================
+Found a 25 line (102 tokens) duplication in the following files: 
+Starting at line 1079 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 1303 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cunomaker/cunotype.cxx
+
+OString	CunoType::checkSpecialCunoType(const OString& type)
+{
+	OString baseType(type);
+
+	RegistryTypeReaderLoader & rReaderLoader = getRegistryTypeReaderLoader();
+
+	RegistryKey 	key;
+	sal_uInt8*		pBuffer=NULL;
+	RTTypeClass 	typeClass;
+	sal_Bool 		isTypeDef = (m_typeMgr.getTypeClass(baseType) == RT_TYPE_TYPEDEF);
+	TypeReader		reader;
+
+	while (isTypeDef)
+	{
+		reader = m_typeMgr.getTypeReader(baseType);
+
+		if (reader.isValid())
+		{
+			typeClass = reader.getTypeClass();
+
+			if (typeClass == RT_TYPE_TYPEDEF)
+				baseType = reader.getSuperTypeName();
+			else
+				isTypeDef = sal_False;
+		} else
+=====================================================================
+Found a 9 line (102 tokens) duplication in the following files: 
+Starting at line 433 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/AreaChart.cxx
+Starting at line 794 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/charttypes/BarChart.cxx
+
+    if( bDrawConnectionLines )
+    {
+        ::std::vector< ::std::vector< VDataSeriesGroup > >::iterator             aZSlotIter = m_aZSlots.begin();
+        const ::std::vector< ::std::vector< VDataSeriesGroup > >::const_iterator  aZSlotEnd = m_aZSlots.end();
+//=============================================================================
+        for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; aZSlotIter++, nZ++ )
+        {
+            ::std::vector< VDataSeriesGroup >::iterator             aXSlotIter = aZSlotIter->begin();
+            const ::std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
+=====================================================================
+Found a 17 line (102 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx
+Starting at line 76 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/tools/PotentialRegressionCurveCalculator.cxx
+
+            RegressionCalculationHelper::isValidAndBothPositive()));
+
+    const size_t nMax = aValues.first.size();
+    if( nMax == 0 )
+    {
+        ::rtl::math::setNan( & m_fSlope );
+        ::rtl::math::setNan( & m_fIntercept );
+        ::rtl::math::setNan( & m_fCorrelationCoeffitient );
+        return;
+    }
+
+    double fAverageX = 0.0, fAverageY = 0.0;
+    size_t i = 0;
+    for( i = 0; i < nMax; ++i )
+    {
+        fAverageX += log( aValues.first[i] );
+        fAverageY += log( aValues.second[i] );
+=====================================================================
+Found a 2 line (102 tokens) duplication in the following files: 
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+Starting at line 80 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx
+
+    void setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xInnerPropertySet ) const
+                    throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+Starting at line 267 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+
+		throw RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("illegal vtable index!") ),
+								(XInterface *)pThis );
+	}
+
+	// determine called method
+	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+
+	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+
+	typelib_TypeClass eRet;
+	switch (aMemberDescr.get()->eTypeClass)
+	{
+	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+	{
+		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+		{
+			// is GET method
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
+				0, 0, // no params
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 163 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+
+	uno_Any aUnoExc; // Any will be constructed by callee
+	uno_Any * pUnoExc = &aUnoExc;
+
+	// invoke uno dispatch call
+	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+	
+	// in case an exception occured...
+	if (pUnoExc)
+	{
+		// destruct temporary in/inout params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			
+			if (pParams[nIndex].bIn) // is in/inout => was constructed
+				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
+			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
+		}
+		if (pReturnTypeDescr)
+			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+		
+		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
+=====================================================================
+Found a 28 line (102 tokens) duplication in the following files: 
+Starting at line 900 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/scriptcont.cxx
+Starting at line 1004 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/uno/scriptcont.cxx
+
+																		embed::ElementModes::READ );
+
+							SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( xCodeStream );
+							if ( !pStream || pStream->GetError() )
+							{
+								sal_Int32 nError = pStream ? pStream->GetError() : ERRCODE_IO_GENERAL;
+								delete pStream;
+								throw task::ErrorCodeIOException( ::rtl::OUString(),
+																	uno::Reference< uno::XInterface >(),
+																	nError );
+							}
+
+                            /*BOOL bRet = */pMod->LoadBinaryData( *pStream );
+                            // TODO: Check return value
+
+							delete pStream;
+                        }
+						catch( uno::Exception& )
+						{
+                            // TODO: error handling
+						}
+                    }
+
+                    // Load source
+                    if( bLoadSource || bVerifyPasswordOnly )
+                    {
+                        // Access encrypted source stream
+		                OUString aSourceStreamName( RTL_CONSTASCII_USTRINGPARAM("source.xml") );
+=====================================================================
+Found a 21 line (102 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdate.cxx
+Starting at line 72 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/sbx/sbxdbl.cxx
+
+			nRes = p->nDouble; break;
+		case SbxCURRENCY:
+			nRes = ImpCurrencyToDouble( p->nLong64 ); break;
+		case SbxSALINT64:
+            nRes = static_cast< double >(p->nInt64); break;
+		case SbxSALUINT64:
+            nRes = ImpSalUInt64ToDouble( p->uInt64 ); break;
+		case SbxDECIMAL:
+		case SbxBYREF | SbxDECIMAL:
+			if( p->pDecimal )
+				p->pDecimal->getDouble( nRes );
+			else
+				nRes = 0.0;
+			break;
+		case SbxBYREF | SbxSTRING:
+		case SbxSTRING:
+		case SbxLPSTR:
+			if( !p->pString )
+				nRes = 0;
+			else
+			{
+=====================================================================
+Found a 22 line (102 tokens) duplication in the following files: 
+Starting at line 490 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedobj.cxx
+Starting at line 1589 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/dlged/dlgedobj.cxx
+
+    if ( TransformSdrToFormCoordinates( nXIn, nYIn, nWidthIn, nHeightIn, nXOut, nYOut, nWidthOut, nHeightOut ) )
+    {
+        // set properties
+        Reference< beans::XPropertySet > xPSet( GetUnoControlModel(), UNO_QUERY );
+        if ( xPSet.is() )
+        {
+            Any aValue;
+            aValue <<= nXOut;
+            xPSet->setPropertyValue( DLGED_PROP_POSITIONX, aValue );
+            aValue <<= nYOut;
+            xPSet->setPropertyValue( DLGED_PROP_POSITIONY, aValue );
+            aValue <<= nWidthOut;
+            xPSet->setPropertyValue( DLGED_PROP_WIDTH, aValue );
+            aValue <<= nHeightOut;
+            xPSet->setPropertyValue( DLGED_PROP_HEIGHT, aValue );
+        }
+    }
+}
+
+//----------------------------------------------------------------------------
+
+void DlgEdForm::AddChild( DlgEdObj* pDlgEdObj )
+=====================================================================
+Found a 22 line (101 tokens) duplication in the following files: 
+Starting at line 4950 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+Starting at line 5077 of /local/ooo-build/ooo-build/src/oog680-m3/writerfilter/source/ooxml/OOXMLresources.cxx
+
+    {       
+        OOXMLContext::Pointer_t pSubContext = OOXMLContext::Pointer_t
+            ( new OOXMLContext_drawingml_EG_FillProperties(*this));
+        OOXMLContext::Pointer_t pContext(pSubContext->element(nToken));
+
+        if (pContext.get() != NULL)
+            return pContext;
+     }
+    
+    {       
+        OOXMLContext::Pointer_t pSubContext = OOXMLContext::Pointer_t
+            ( new OOXMLContext_drawingml_EG_EffectProperties(*this));
+        OOXMLContext::Pointer_t pContext(pSubContext->element(nToken));
+
+        if (pContext.get() != NULL)
+            return pContext;
+     }
+    
+    return OOXMLContext::Pointer_t();
+}
+    
+OOXMLContext::Pointer_t
+=====================================================================
+Found a 8 line (101 tokens) duplication in the following files: 
+Starting at line 7410 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+Starting at line 7716 of /local/ooo-build/ooo-build/src/oog680-m3/agg/source/agg_embedded_raster_fonts.cpp
+
+        8, // 0x2A '*'
+        0x00,0x00,0x10,0x54,0x38,0x54,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+        9, // 0x2B '+'
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
+
+        4, // 0x2C ','
+        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x40,
+=====================================================================
+Found a 18 line (101 tokens) duplication in the following files: 
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+            base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 17 line (101 tokens) duplication in the following files: 
+Starting at line 489 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgb.h
+Starting at line 500 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_rgba.h
+
+                base_type::interpolator().coordinates(&x, &y);
+
+                x -= base_type::filter_dx_int();
+                y -= base_type::filter_dy_int();
+
+                int x_hr = x; 
+                int y_hr = y; 
+
+                int x_fract = x_hr & image_subpixel_mask;
+                unsigned y_count = diameter;
+
+                int y_lr  = m_wrap_mode_y((y >> image_subpixel_shift) + start);
+                int x_int = (x >> image_subpixel_shift) + start;
+                int x_lr;
+
+                y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+                fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+=====================================================================
+Found a 18 line (101 tokens) duplication in the following files: 
+Starting at line 64 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_span_pattern_filter_gray.h
+
+            base_type(alloc, src, color_type(0,0), inter, &filter),
+            m_wrap_mode_x(src.width()),
+            m_wrap_mode_y(src.height())
+        {}
+
+        //-------------------------------------------------------------------
+        void source_image(const rendering_buffer& src) 
+        { 
+            base_type::source_image(src);
+            m_wrap_mode_x = WrapModeX(src.width());
+            m_wrap_mode_y = WrapModeX(src.height());
+        }
+
+        //--------------------------------------------------------------------
+        color_type* generate(int x, int y, unsigned len)
+        {
+            base_type::interpolator().begin(x + base_type::filter_dx_dbl(), 
+                                            y + base_type::filter_dy_dbl(), len);
+=====================================================================
+Found a 23 line (101 tokens) duplication in the following files: 
+Starting at line 1868 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparai.cxx
+Starting at line 1901 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtparai.cxx
+
+                    Reference < XShape > xShape = pDHint->GetShape();
+                    if ( xShape.is() )
+                    {
+                        // determine anchor type
+                        Reference < XPropertySet > xPropSet( xShape, UNO_QUERY );
+                        TextContentAnchorType eAnchorType = TextContentAnchorType_AT_PARAGRAPH;
+                        {
+                            OUString sAnchorType( RTL_CONSTASCII_USTRINGPARAM( "AnchorType" ) );
+                            Any aAny = xPropSet->getPropertyValue( sAnchorType );
+                            aAny >>= eAnchorType;
+                        }
+                        if ( TextContentAnchorType_AT_CHARACTER == eAnchorType )
+                        {
+                            // set anchor position for at-character anchored objects
+                            Reference<XTextRange> xRange(xAttrCursor, UNO_QUERY);
+                            Any aPos;
+                            aPos <<= xRange;
+                            OUString sTextRange( RTL_CONSTASCII_USTRINGPARAM( "TextRange" ) );
+                            xPropSet->setPropertyValue(sTextRange, aPos);
+                        }
+                    }
+                    // <--
+				}
+=====================================================================
+Found a 17 line (101 tokens) duplication in the following files: 
+Starting at line 863 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+Starting at line 1842 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/shapeexport2.cxx
+
+	XmlShapeType, sal_Int32 nFeatures /* = SEF_DEFAULT */, awt::Point* pRefPoint /* = NULL */)
+{
+	const uno::Reference< beans::XPropertySet > xPropSet(xShape, uno::UNO_QUERY);
+	if(xPropSet.is())
+	{
+		// Transformation
+		ImpExportNewTrans(xPropSet, nFeatures, pRefPoint);
+
+		// evtl. corner radius?
+		sal_Int32 nCornerRadius(0L);
+		xPropSet->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("CornerRadius"))) >>= nCornerRadius;
+		if(nCornerRadius)
+		{
+			OUStringBuffer sStringBuffer;
+			mrExport.GetMM100UnitConverter().convertMeasure(sStringBuffer, nCornerRadius);
+			mrExport.AddAttribute(XML_NAMESPACE_DRAW, XML_CORNER_RADIUS, sStringBuffer.makeStringAndClear());
+		}
+=====================================================================
+Found a 11 line (101 tokens) duplication in the following files: 
+Starting at line 103 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/animimp.cxx
+Starting at line 96 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/eventimp.cxx
+Starting at line 89 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/ximpshow.cxx
+
+using namespace ::rtl;
+using namespace ::std;
+using namespace ::cppu;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::xml;
+using namespace ::com::sun::star::xml::sax;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::drawing;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 40 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_mask.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_mask.h
+
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 32 line (101 tokens) duplication in the following files: 
+Starting at line 1848 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+Starting at line 1884 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+
+			a7 *= n6;
+
+			if ( LONG_MAX / Abs(n4) < Abs(n5) )
+			{
+				BigInt a8 = n4;
+				a8 *= n5;
+
+				BigInt a9 = a8;
+				a9 /= 2;
+				if ( a7.IsNeg() )
+					a7 -= a9;
+				else
+					a7 += a9;
+
+				a7 /= a8;
+			} // of if
+			else
+			{
+				long n8 = n4 * n5;
+
+				if ( a7.IsNeg() )
+					a7 -= n8 / 2;
+				else
+					a7 += n8 / 2;
+
+				a7 /= n8;
+			} // of else
+			return (long)a7;
+		} // of if
+		else
+		{
+			long n7 = n1 * n6;
+=====================================================================
+Found a 16 line (101 tokens) duplication in the following files: 
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impvect.cxx
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/impvect.cxx
+
+		else if( nFlag & VECT_POLY_INLINE_OUTER )
+		{
+			long nFirstX, nFirstY;
+			long nLastX, nLastY;
+
+			nFirstX = nLastX = maStartPt.X();
+			nFirstY = nLastY = maStartPt.Y();
+			aArr.ImplSetSize( mnCount << 1 );
+
+			USHORT i, nPolyPos;
+			for( i = 0, nPolyPos = 0; i < ( mnCount - 1 ); i++ )
+			{
+				const BYTE				cMove = mpCodes[ i ];
+				const BYTE				cNextMove = mpCodes[ i + 1 ];
+				const ChainMove&		rMove = aImplMove[ cMove ];
+				const ChainMove&		rMoveOuter = aImplMoveOuter[ cMove ];
+=====================================================================
+Found a 26 line (101 tokens) duplication in the following files: 
+Starting at line 1909 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontent.cxx
+Starting at line 2012 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/tdoc/tdoc_content.cxx
+
+    }
+}
+
+//=========================================================================
+void Content::transfer(
+            const ucb::TransferInfo& rInfo,
+            const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+    throw( uno::Exception )
+{
+	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+
+	// Persistent?
+	if ( m_eState != PERSISTENT )
+	{
+        ucbhelper::cancelCommandExecution(
+            uno::makeAny( ucb::UnsupportedCommandException(
+                                rtl::OUString::createFromAscii(
+                                    "Not persistent!" ),
+                                static_cast< cppu::OWeakObject * >( this ) ) ),
+            xEnv );
+        // Unreachable
+	}
+
+    // Does source URI scheme match? Only vnd.sun.star.tdoc is supported.
+
+    if ( ( rInfo.SourceURL.getLength() < TDOC_URL_SCHEME_LENGTH + 2 ) )
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 113 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/ftp/ftpcontentidentifier.cxx
+Starting at line 199 of /local/ooo-build/ooo-build/src/oog680-m3/ucbhelper/source/provider/contentidentifier.cxx
+
+ContentIdentifier::getTypes()
+	throw( RuntimeException )
+{
+	static cppu::OTypeCollection* pCollection = NULL;
+  	if ( !pCollection )
+  	{
+		osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+		if ( !pCollection )
+		{
+			static cppu::OTypeCollection collection(
+					getCppuType( static_cast<
+						Reference < XTypeProvider > * >( 0 ) ),
+					getCppuType( static_cast<
+						Reference< XContentIdentifier > * >( 0 ) ) );
+			pCollection = &collection;
+		}
+	}
+	return (*pCollection).getTypes();
+}
+=====================================================================
+Found a 26 line (101 tokens) duplication in the following files: 
+Starting at line 429 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/string/strimp.cxx
+Starting at line 475 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/string/strimp.cxx
+
+	if ( !nLen )
+	{
+		STRING_NEW((STRING_TYPE **)&mpData);
+	}
+	else
+	{
+		// Wenn String genauso lang ist, wie der String, dann direkt kopieren
+		if ( (nLen == mpData->mnLen) && (mpData->mnRefCount == 1) )
+			memcpy( mpData->maStr, pCharStr, nLen*sizeof( STRCODE ) );
+		else
+		{
+			// Alte Daten loeschen
+			STRING_RELEASE((STRING_TYPE *)mpData);
+
+			// Daten initialisieren und String kopieren
+			mpData = ImplAllocData( nLen );
+			memcpy( mpData->maStr, pCharStr, nLen*sizeof( STRCODE ) );
+		}
+	}
+
+	return *this;
+}
+
+// -----------------------------------------------------------------------
+
+STRING& STRING::Assign( STRCODE c )
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 218 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/usrpref.cxx
+Starting at line 594 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/usrpref.cxx
+
+void SwCursorConfig::Load()
+{
+	Sequence<OUString> aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			if(pValues[nProp].hasValue())
+			{
+				sal_Bool bSet;
+=====================================================================
+Found a 21 line (101 tokens) duplication in the following files: 
+Starting at line 819 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+Starting at line 972 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/xml/xmltexti.cxx
+
+                    makeAny( sal_Int32( aMargin.Height() ) ) );
+            }
+
+            SwFrmFmt *pFrmFmt = pDoc->Insert( *pTxtCrsr->GetPaM(),
+                                            ::svt::EmbeddedObjectRef( xObj, embed::Aspects::MSOLE_CONTENT ),
+                                            &aItemSet,
+											NULL,
+											NULL);
+            SwXFrame *pXFrame = SwXFrames::GetObject( *pFrmFmt, FLYCNTTYPE_OLE );
+            xPropSet = pXFrame;
+            if( pDoc->GetDrawModel() )
+                SwXFrame::GetOrCreateSdrObject(
+                        static_cast<SwFlyFrmFmt*>( pXFrame->GetFrmFmt() ) ); // req for z-order
+        }
+    }
+    catch ( uno::Exception& )
+    {
+    }
+
+	return xPropSet;
+}
+=====================================================================
+Found a 16 line (101 tokens) duplication in the following files: 
+Starting at line 3936 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+Starting at line 4205 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+	_HTMLAttrContext *pCntxt = new _HTMLAttrContext( nToken, nColl, aClass );
+
+	// Styles parsen (zu Class siehe auch NewPara)
+	if( HasStyleOptions( aStyle, aId, aEmptyStr, &aLang, &aDir ) )
+	{
+		SfxItemSet aItemSet( pDoc->GetAttrPool(), pCSS1Parser->GetWhichMap() );
+		SvxCSS1PropertyInfo aPropInfo;
+
+		if( ParseStyleOptions( aStyle, aId, aEmptyStr, aItemSet, aPropInfo, &aLang, &aDir ) )
+		{
+			ASSERT( !aClass.Len() || !pCSS1Parser->GetClass( aClass ),
+					"Class wird nicht beruecksichtigt" );
+			DoPositioning( aItemSet, aPropInfo, pCntxt );
+			InsertAttrs( aItemSet, aPropInfo, pCntxt );
+		}
+	}
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 592 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlforw.cxx
+Starting at line 729 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlforw.cxx
+
+            aTmp = xPropSet->getPropertyValue(
+                            OUString::createFromAscii( "Name" ) );
+            if( aTmp.getValueType() == ::getCppuType((const OUString*)0) &&
+                ((OUString*)aTmp.getValue())->getLength() )
+            {
+                (( sOut += ' ' ) += sHTML_O_name ) += "=\"";
+                Strm() << sOut.GetBuffer();
+                HTMLOutFuncs::Out_String( Strm(), *(OUString*)aTmp.getValue(),
+                                          eDestEnc, &aNonConvertableCharacters );
+                sOut = '\"';
+            }
+            aTmp = xPropSet->getPropertyValue(
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 690 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+Starting at line 2648 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+				SwClientIter aIter( *pTblFmt );
+				for( SwClient* pC = aIter.First( TYPE( SwFrm ));
+						pC; pC = aIter.Next() )
+				{
+					if( ((SwFrm*)pC)->IsTabFrm() )
+					{
+						if(((SwFrm*)pC)->IsValid())
+							((SwFrm*)pC)->InvalidatePos();
+						((SwTabFrm*)pC)->SetONECalcLowers();
+						((SwTabFrm*)pC)->Calc();
+					}
+				}
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 1391 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unofield.cxx
+Starting at line 2606 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc && nRows && nColumns)
+=====================================================================
+Found a 16 line (101 tokens) duplication in the following files: 
+Starting at line 660 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/unattr.cxx
+Starting at line 583 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/undo/undobj1.cxx
+
+				SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
+				ASSERT( pTxtNode->HasHints(), "Missing FlyInCnt-Hint." );
+				const xub_StrLen nIdx = pPos->nContent.GetIndex();
+				SwTxtAttr * pHnt = pTxtNode->GetTxtAttr( nIdx, RES_TXTATR_FLYCNT );
+#ifndef PRODUCT
+				ASSERT( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT,
+							"Missing FlyInCnt-Hint." );
+				ASSERT( pHnt && pHnt->GetFlyCnt().GetFrmFmt() == pFrmFmt,
+							"Wrong TxtFlyCnt-Hint." );
+#endif
+				((SwFmtFlyCnt&)pHnt->GetFlyCnt()).SetFlyFmt();
+
+				// Die Verbindung ist geloest, jetzt muss noch das Attribut
+				// vernichtet werden.
+				pTxtNode->Delete( RES_TXTATR_FLYCNT, nIdx, nIdx );
+			}
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 2444 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/frmtool.cxx
+Starting at line 2481 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/frmtool.cxx
+
+		UINT32 nOrd = USHRT_MAX;
+        const SwSortedObjs *pObjs = pPage->GetSortedObjs();
+		if ( pObjs->Count() )
+		{
+            (*pObjs)[0]->GetDrawObj()->GetOrdNum();  //Aktualisieren erzwingen!
+			for ( USHORT i = 0; i < pObjs->Count(); ++i )
+			{
+                const SdrObject* pObj = (*pObjs)[i]->GetDrawObj();
+				if ( bFlysOnly && !pObj->ISA(SwVirtFlyDrawObj) )
+					continue;
+				UINT32 nTmp = pObj->GetOrdNumDirect();
+				if ( nTmp > nCurOrd && nTmp < nOrd )
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 2408 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/frmtool.cxx
+Starting at line 2518 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/frmtool.cxx
+
+		UINT32 nOrd = 0;
+        const SwSortedObjs *pObjs = pPage->GetSortedObjs();
+		if ( pObjs->Count() )
+		{
+            (*pObjs)[0]->GetDrawObj()->GetOrdNum();  //Aktualisieren erzwingen!
+			for ( USHORT i = 0; i < pObjs->Count(); ++i )
+			{
+                const SdrObject* pObj = (*pObjs)[i]->GetDrawObj();
+				if ( bFlysOnly && !pObj->ISA(SwVirtFlyDrawObj) )
+					continue;
+				UINT32 nTmp = pObj->GetOrdNumDirect();
+				if ( nTmp < nCurOrd && nTmp >= nOrd )
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 3949 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 3986 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+			XGradient aXGradient;
+
+			aXGradient.SetGradientStyle( (XGradientStyle) aGradient2.Style );
+			aXGradient.SetStartColor( aGradient2.StartColor );
+			aXGradient.SetEndColor( aGradient2.EndColor );
+			aXGradient.SetAngle( aGradient2.Angle );
+			aXGradient.SetBorder( aGradient2.Border );
+			aXGradient.SetXOffset( aGradient2.XOffset );
+			aXGradient.SetYOffset( aGradient2.YOffset );
+			aXGradient.SetStartIntens( aGradient2.StartIntensity );
+			aXGradient.SetEndIntens( aGradient2.EndIntensity );
+			aXGradient.SetSteps( aGradient2.StepCount );
+
+			SetGradientValue( aXGradient );
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 1303 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+Starting at line 1339 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr.cxx
+
+			XDash aXDash;
+
+			aXDash.SetDashStyle((XDashStyle)((UINT16)(aLineDash.Style)));
+			aXDash.SetDots(aLineDash.Dots);
+			aXDash.SetDotLen(aLineDash.DotLen);
+			aXDash.SetDashes(aLineDash.Dashes);
+			aXDash.SetDashLen(aLineDash.DashLen);
+			aXDash.SetDistance(aLineDash.Distance);
+
+			if((0 == aXDash.GetDots()) && (0 == aXDash.GetDashes()))
+				aXDash.SetDots(1);
+
+			SetDashValue( aXDash );
+=====================================================================
+Found a 6 line (101 tokens) duplication in the following files: 
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoshape.cxx
+
+		{MAP_CHAR_LEN("TextUserDefinedAttributes"),			EE_CHAR_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+	};
+
+	return aSvxUnoOutlinerTextCursorPropertyMap;
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 396 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 469 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 551 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 628 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+Starting at line 717 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/XPropertyTable.cxx
+
+	SvxUnoXBitmapTable( XPropertyList* pTable ) throw() : SvxUnoXPropertyTable( XATTR_FILLBITMAP, pTable ) {};
+
+	// SvxUnoXPropertyTable
+	virtual uno::Any getAny( const XPropertyEntry* pEntry ) const throw();
+	virtual XPropertyEntry* getEntry( const OUString& rName, const uno::Any& rAny ) const throw();
+
+	// XElementAccess
+    virtual uno::Type SAL_CALL getElementType() throw( uno::RuntimeException );
+
+	// XServiceInfo
+    virtual OUString SAL_CALL getImplementationName(  ) throw( uno::RuntimeException );
+    virtual uno::Sequence<  OUString > SAL_CALL getSupportedServiceNames(  ) throw( uno::RuntimeException);
+};
+
+uno::Reference< uno::XInterface > SAL_CALL SvxUnoXBitmapTable_createInstance( XPropertyList* pTable ) throw()
+=====================================================================
+Found a 20 line (101 tokens) duplication in the following files: 
+Starting at line 1207 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoole2.cxx
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdouno.cxx
+
+void SdrUnoObj::TakeObjInfo(SdrObjTransformInfoRec& rInfo) const
+{
+	rInfo.bRotateFreeAllowed		=	FALSE;
+	rInfo.bRotate90Allowed			=	FALSE;
+	rInfo.bMirrorFreeAllowed		=	FALSE;
+	rInfo.bMirror45Allowed			=	FALSE;
+	rInfo.bMirror90Allowed			=	FALSE;
+	rInfo.bTransparenceAllowed = FALSE;
+	rInfo.bGradientAllowed = FALSE;
+	rInfo.bShearAllowed 			=	FALSE;
+	rInfo.bEdgeRadiusAllowed		=	FALSE;
+	rInfo.bNoOrthoDesired			=	FALSE;
+	rInfo.bCanConvToPath			=	FALSE;
+	rInfo.bCanConvToPoly			=	FALSE;
+	rInfo.bCanConvToPathLineToArea	=	FALSE;
+	rInfo.bCanConvToPolyLineToArea	=	FALSE;
+	rInfo.bCanConvToContour = FALSE;
+}
+
+UINT16 SdrUnoObj::GetObjIdentifier() const
+=====================================================================
+Found a 39 line (101 tokens) duplication in the following files: 
+Starting at line 2005 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msdffimp.cxx
+Starting at line 1094 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdfppt.cxx
+
+							| PPT_TEXTOBJ_FLAGS_PARA_ALIGNMENT_USED_CENTER | PPT_TEXTOBJ_FLAGS_PARA_ALIGNMENT_USED_BLOCK;
+
+				if ( bVerticalText )
+				{
+    				eTVA = SDRTEXTVERTADJUST_BLOCK;
+	    			eTHA = SDRTEXTHORZADJUST_CENTER;
+
+					// Textverankerung lesen
+					MSO_Anchor eTextAnchor = (MSO_Anchor)GetPropertyValue( DFF_Prop_anchorText, mso_anchorTop );
+
+					switch( eTextAnchor )
+					{
+						case mso_anchorTop:
+						case mso_anchorTopCentered:
+						case mso_anchorTopBaseline:
+						case mso_anchorTopCenteredBaseline:
+							eTHA = SDRTEXTHORZADJUST_RIGHT;
+						break;
+
+						case mso_anchorMiddle :
+						case mso_anchorMiddleCentered:
+							eTHA = SDRTEXTHORZADJUST_CENTER;
+						break;
+
+						case mso_anchorBottom:
+						case mso_anchorBottomCentered:
+						case mso_anchorBottomBaseline:
+						case mso_anchorBottomCenteredBaseline:
+							eTHA = SDRTEXTHORZADJUST_LEFT;
+						break;
+					}
+					// if there is a 100% use of following attributes, the textbox can been aligned also in vertical direction
+					switch ( eTextAnchor )
+					{
+						case mso_anchorTopCentered :
+						case mso_anchorMiddleCentered :
+						case mso_anchorBottomCentered :
+						case mso_anchorTopCenteredBaseline:
+						case mso_anchorBottomCenteredBaseline:
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 833 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/form/fmundo.cxx
+Starting at line 938 of /local/ooo-build/ooo-build/src/oog680-m3/reportdesign/source/core/sdr/UndoActions.cxx
+
+        if ( !m_pImpl->m_bReadOnly )
+        {
+            Reference< XPropertySet > xProps( _rxObject, UNO_QUERY );
+	        if ( xProps.is() )
+                if ( _bStartListening )
+    		        xProps->addPropertyChangeListener( ::rtl::OUString(), this );
+                else
+    	    	    xProps->removePropertyChangeListener( ::rtl::OUString(), this );
+        }
+
+        Reference< XModifyBroadcaster > xBroadcaster( _rxObject, UNO_QUERY );
+        if ( xBroadcaster.is() )
+            if ( _bStartListening )
+                xBroadcaster->addModifyListener( this );
+            else
+                xBroadcaster->removeModifyListener( this );
+    }
+    catch( const Exception& )
+    {
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 1663 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+Starting at line 1783 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+
+            Bitmap aBitmap(pItem->GetGraphic()->GetBitmap());
+            Size aSize(aBitmap.GetSizePixel());
+            if(aSize.Width()  > MAX_BMP_WIDTH ||
+               aSize.Height() > MAX_BMP_HEIGHT)
+            {
+                BOOL bWidth = aSize.Width() > aSize.Height();
+                double nScale = bWidth ?
+                    (double)MAX_BMP_WIDTH / (double)aSize.Width():
+                    (double)MAX_BMP_HEIGHT / (double)aSize.Height();
+                aBitmap.Scale(nScale, nScale);
+            }
+            Image aImage(aBitmap);
+            pPopup->SetItemImage( pBmpInfo->nItemId, aImage );
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 1014 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+Starting at line 1691 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+
+		VirtualDevice aVDev;
+		aVDev.SetMapMode(MapMode(MAP_100TH_MM));
+		SdrModel* pModel = new SdrModel(NULL, NULL, LOADREFCOUNTS);
+		pModel->GetItemPool().FreezeIdRanges();
+		// Page
+		SdrPage* pPage = new SdrPage( *pModel, FALSE );
+		pPage->SetSize(Size(1000,1000));
+		pModel->InsertPage( pPage, 0 );
+		// 3D View
+		SdrView* pView = new SdrView( pModel, &aVDev );
+		pView->hideMarkHandles();
+//		SdrPageView* pPageView = pView->ShowSdrPage(pPage, Point());
+		SdrPageView* pPageView = pView->ShowSdrPage(pPage);
+=====================================================================
+Found a 37 line (101 tokens) duplication in the following files: 
+Starting at line 309 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tphatch.cxx
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tplnedef.cxx
+
+													String( ResId( RID_SVXSTR_ASK_CHANGE_LINESTYLE, rMgr ) ),
+													&aWarningBoxImage );
+		DBG_ASSERT(aMessDlg, "Dialogdiet fail!");//CHINA001
+		aMessDlg->SetButtonText( MESS_BTN_1, //CHINA001 aMessDlg.SetButtonText( MESS_BTN_1,
+								String( ResId( RID_SVXSTR_CHANGE, rMgr ) ) );
+		aMessDlg->SetButtonText( MESS_BTN_2, //CHINA001 aMessDlg.SetButtonText( MESS_BTN_2,
+								String( ResId( RID_SVXSTR_ADD, rMgr ) ) );
+
+		short nRet = aMessDlg->Execute(); //CHINA001 short nRet = aMessDlg.Execute();
+
+		switch( nRet )
+		{
+			case RET_BTN_1: // Aendern
+			{
+				ClickModifyHdl_Impl( this );
+				//aXDash = pDashList->Get( nPos )->GetDash();
+			}
+			break;
+
+			case RET_BTN_2: // Hinzufuegen
+			{
+				ClickAddHdl_Impl( this );
+				//nPos = aLbLineStyles.GetSelectEntryPos();
+				//aXDash = pDashList->Get( nPos )->GetDash();
+			}
+			break;
+
+			case RET_CANCEL:
+			break;
+			// return( TRUE ); // Abbruch
+		}
+		delete aMessDlg; //add by CHINA001
+	}
+
+
+
+	USHORT nPos = aLbLineStyles.GetSelectEntryPos();
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/draw/EnhancedCustomShapeToken.cxx
+
+	EnhancedCustomShapeTokenEnum eRetValue = EAS_NotFound;
+	int i, nLen = rShapeType.getLength();
+	char* pBuf = new char[ nLen + 1 ];
+	for ( i = 0; i < nLen; i++ )
+		pBuf[ i ] = (char)rShapeType[ i ];
+	pBuf[ i ] = 0;
+	TypeNameHashMap::iterator aHashIter( pHashMap->find( pBuf ) );
+	delete[] pBuf;
+	if ( aHashIter != pHashMap->end() )
+		eRetValue = (*aHashIter).second;
+	return eRetValue;
+}
+
+rtl::OUString EASGet( const EnhancedCustomShapeTokenEnum eToken )
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 6920 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 6938 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+	(SvxMSDffVertPair*)mso_sptTextWave4Vert, sizeof( mso_sptTextWave4Vert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
+	(sal_Int32*)mso_sptDoubleWaveDefault,
+	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
+	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
+};
+
+static const sal_Int32 mso_sptCalloutDefault1[] =
+=====================================================================
+Found a 11 line (101 tokens) duplication in the following files: 
+Starting at line 1106 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 1158 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+
+static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
+{
+	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0
+	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 1
+	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },		// 2
+	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 3
+	{ 0x2001, { 0x0403, 1, 2 } },						// 4
+	{ 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },	// 5
+	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },	// 6
+	{ 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },	// 7
+	{ 0x6000, { 0x0407, 0x0406, 0 } },					// 8
+=====================================================================
+Found a 7 line (101 tokens) duplication in the following files: 
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/accessibility/AccessibleEditableTextPara.cxx
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unoprov.cxx
+
+		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
+		{0,0,0,0,0,0}
+
+	};
+
+	return aShapePropertyMap_Impl;
+=====================================================================
+Found a 24 line (101 tokens) duplication in the following files: 
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+Starting at line 213 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/toolboxcontroller.cxx
+
+    const rtl::OUString aParentWindow( RTL_CONSTASCII_USTRINGPARAM( "ParentWindow" ));
+
+    bool bInitialized( true );
+
+    { 
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        bInitialized = m_bInitialized;
+    }
+
+    if ( !bInitialized )
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        m_bInitialized = sal_True;
+        
+        PropertyValue aPropValue;
+        for ( int i = 0; i < aArguments.getLength(); i++ )
+        {
+            if ( aArguments[i] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "Frame" ))
+=====================================================================
+Found a 25 line (101 tokens) duplication in the following files: 
+Starting at line 2122 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zforscan.cxx
+Starting at line 2362 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zforscan.cxx
+
+			while (i < nAnzStrings)
+			{
+				switch (nTypeArray[i])
+				{
+					case NF_SYMBOLTYPE_BLANK:
+					case NF_SYMBOLTYPE_STAR:
+					case NF_SYMBOLTYPE_STRING:
+						nPos = nPos + sStrArray[i].Len();
+						i++;
+					break;
+					case NF_SYMBOLTYPE_COMMENT:
+					{
+						String& rStr = sStrArray[i];
+						nPos = nPos + rStr.Len();
+						SvNumberformat::EraseCommentBraces( rStr );
+						rComment += rStr;
+						nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
+						nAnzResStrings--;
+						i++;
+					}
+					break;
+					case NF_SYMBOLTYPE_DEL:
+					{
+						int nCalRet;
+                        if ( (nCalRet = FinalScanGetCalendar( nPos, i, nAnzResStrings )) != 0 )
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 640 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/ivctrl.cxx
+Starting at line 2578 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/contnr/svtreebx.cxx
+
+::com::sun::star::uno::Reference< XAccessible > SvTreeListBox::CreateAccessible()
+{
+    Window* pParent = GetAccessibleParentWindow();
+    DBG_ASSERT( pParent, "SvTreeListBox::CreateAccessible - accessible parent not found" );
+
+    ::com::sun::star::uno::Reference< XAccessible > xAccessible;
+    if ( pParent )
+    {
+        ::com::sun::star::uno::Reference< XAccessible > xAccParent = pParent->GetAccessible();
+        if ( xAccParent.is() )
+		{
+			// need to be done here to get the vclxwindow later on in the accessbile
+			::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xTemp(GetComponentInterface());
+            xAccessible = pImp->m_aFactoryAccess.getFactory().createAccessibleTreeListBox( *this, xAccParent );
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 1757 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 1901 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+Starting at line 2100 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/mathml.cxx
+
+void SmXMLOperatorContext_Impl::StartElement(const uno::Reference<
+    xml::sax::XAttributeList > & xAttrList )
+{
+    sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+    for (sal_Int16 i=0;i<nAttrCount;i++)
+    {
+        OUString sAttrName = xAttrList->getNameByIndex(i);
+        OUString aLocalName;
+        sal_uInt16 nPrefix = GetImport().GetNamespaceMap().
+            GetKeyByAttrName(sAttrName,&aLocalName);
+
+        OUString sValue = xAttrList->getValueByIndex(i);
+        const SvXMLTokenMap &rAttrTokenMap =
+            GetSmImport().GetOperatorAttrTokenMap();
+=====================================================================
+Found a 24 line (101 tokens) duplication in the following files: 
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/detreg.cxx
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/register.cxx
+
+    aServices = SmDocument_getSupportedServiceNames();
+    for(i = 0; i < aServices.getLength(); i++ )
+        xNewKey->createKey( aServices.getConstArray()[i] );
+
+    return sal_True;
+}
+
+void* SAL_CALL component_getFactory( const sal_Char* pImplementationName,
+                                     void* pServiceManager,
+                                     void* /*pRegistryKey*/ )
+{
+	// Set default return value for this operation - if it failed.
+	void* pReturn = NULL ;
+
+	if	(
+			( pImplementationName	!=	NULL ) &&
+			( pServiceManager		!=	NULL )
+		)
+	{
+		// Define variables which are used in following macros.
+        Reference< XSingleServiceFactory >   xFactory                                                                                                ;
+        Reference< XMultiServiceFactory >    xServiceManager( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+
+		if( SmXMLImport_getImplementationName().equalsAsciiL(
+=====================================================================
+Found a 27 line (101 tokens) duplication in the following files: 
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/macbe/macbecdef.cxx
+Starting at line 73 of /local/ooo-build/ooo-build/src/oog680-m3/shell/source/backends/wininetbe/wininetbecdef.cxx
+
+        WinInetBackend::getBackendServiceNames,
+        cppu::createSingleComponentFactory,
+        NULL,
+        0
+    },
+    { NULL }
+} ;
+
+//------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+    const sal_Char **aEnvTypeName, uno_Environment ** /*aEnvironment*/) {
+    
+    *aEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(void * /*pServiceManager*/, void *pRegistryKey) {
+    
+    using namespace ::com::sun::star::registry;
+    if (pRegistryKey)
+    {
+        try
+        {
+            uno::Reference< XRegistryKey > xImplKey = static_cast< XRegistryKey* >( pRegistryKey )->createKey(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + WinInetBackend::getBackendName()
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 223 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/outlnvs2.cxx
+Starting at line 775 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/slidvish.cxx
+
+			Invalidate( SID_SIZE_REAL );
+			Cancel();
+			rReq.Done();
+		}
+		break;
+
+		case SID_ZOOM_IN:
+		{
+			SetZoom( Max( (long) ( GetActiveWindow()->GetZoom() / 2 ), (long) GetActiveWindow()->GetMinZoom() ) );
+			Rectangle aVisAreaWin = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0),
+											 GetActiveWindow()->GetOutputSizePixel()) );
+			mpZoomList->InsertZoomRect(aVisAreaWin);
+			Invalidate( SID_ATTR_ZOOM );
+			Invalidate( SID_ZOOM_OUT);
+			Invalidate( SID_ZOOM_IN );
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 164 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodule.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unomodule.cxx
+
+sal_Bool SAL_CALL SwUnoModule::supportsService( const ::rtl::OUString& sServiceName ) throw(::com::sun::star::uno::RuntimeException)
+{
+    UNOSEQUENCE< UNOOUSTRING >  seqServiceNames =   getSupportedServiceNames();
+    const UNOOUSTRING*          pArray          =   seqServiceNames.getConstArray();
+    for ( sal_Int32 nCounter=0; nCounter<seqServiceNames.getLength(); nCounter++ )
+    {
+        if ( pArray[nCounter] == sServiceName )
+        {
+            return sal_True ;
+        }
+    }
+    return sal_False ;
+}
+
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL SwUnoModule::getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException)
+=====================================================================
+Found a 17 line (101 tokens) duplication in the following files: 
+Starting at line 398 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/docshell/docshel4.cxx
+Starting at line 543 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/docshell/docshel4.cxx
+
+	SetWaitCursor( TRUE );
+
+    SfxItemSet* pSet = rMedium.GetItemSet();
+	if( pSet )
+	{
+		if( (  SFX_ITEM_SET == pSet->GetItemState(SID_PREVIEW ) ) && ( (SfxBoolItem&) ( pSet->Get( SID_PREVIEW ) ) ).GetValue() )
+		{
+			mpDoc->SetStarDrawPreviewMode( TRUE );
+		}
+
+		if( SFX_ITEM_SET == pSet->GetItemState(SID_DOC_STARTPRESENTATION)&&
+			( (SfxBoolItem&) ( pSet->Get( SID_DOC_STARTPRESENTATION ) ) ).GetValue() )
+		{
+			bStartPresentation = true;
+			mpDoc->SetStartWithPresentation( true );
+		}
+	}
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 364 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/prltempl.cxx
+Starting at line 167 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/dlg/tabtempl.cxx
+
+		break;
+
+		case RID_SVXPAGE_SHADOW:
+				aSet.Put (SvxColorTableItem(pColorTab,SID_COLOR_TABLE)); //add CHINA001
+				aSet.Put (SfxUInt16Item(SID_PAGE_TYPE,nPageType));
+				aSet.Put (SfxUInt16Item(SID_DLG_TYPE,nDlgType));
+				rPage.PageCreated(aSet);
+			break;
+
+		case RID_SVXPAGE_TRANSPARENCE:
+					aSet.Put (SfxUInt16Item(SID_PAGE_TYPE,nPageType));
+					aSet.Put (SfxUInt16Item(SID_DLG_TYPE,nDlgType));
+					rPage.PageCreated(aSet);
+		break;
+
+		case RID_SVXPAGE_CHAR_NAME:
+		{
+			SvxFontListItem aItem(*( (const SvxFontListItem*)
+				( rDocShell.GetItem( SID_ATTR_CHAR_FONTLIST) ) ) );
+=====================================================================
+Found a 20 line (101 tokens) duplication in the following files: 
+Starting at line 393 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewutil.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/viewutil.cxx
+
+	if ( nNewStartX == nOldStartX && nNewEndX == nOldEndX &&
+		 nNewStartY == nOldStartY && nNewEndY == nOldEndY )
+	{
+		rX1 = nNewStartX;
+		rY1 = nNewStartY;
+		rX2 = nNewStartX;
+		rY2 = nNewStartY;
+		return FALSE;
+	}
+
+	rX1 = Min(nNewStartX,nOldStartX);
+	rY1 = Min(nNewStartY,nOldStartY);
+	rX2 = Max(nNewEndX,nOldEndX);
+	rY2 = Max(nNewEndY,nOldEndY);
+
+	if ( nNewStartX == nOldStartX && nNewEndX == nOldEndX )				// nur vertikal
+	{
+		if ( nNewStartY == nOldStartY )
+		{
+			rY1 = Min( nNewEndY, nOldEndY ) + 1;
+=====================================================================
+Found a 25 line (101 tokens) duplication in the following files: 
+Starting at line 85 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/detreg.cxx
+Starting at line 88 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/detreg.cxx
+
+    Sequence< OUString > aServices = SdFilterDetect::impl_getStaticSupportedServiceNames();
+    for(i = 0; i < aServices.getLength(); i++ )
+        xNewKey->createKey( aServices.getConstArray()[i] );
+
+    return sal_True;
+}
+
+SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
+	const sal_Char* pImplementationName,
+	void* pServiceManager,
+	void*  )
+{
+	// Set default return value for this operation - if it failed.
+	void* pReturn = NULL ;
+
+	if	(
+			( pImplementationName	!=	NULL ) &&
+			( pServiceManager		!=	NULL )
+		)
+	{
+		// Define variables which are used in following macros.
+        Reference< XSingleServiceFactory >   xFactory                                                                                                ;
+        Reference< XMultiServiceFactory >    xServiceManager( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+
+		if( SdFilterDetect::impl_getStaticImplementationName().equalsAscii( pImplementationName ) )
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 5470 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 1626 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/datauno.cxx
+
+	const ScDBData* pData = GetDBData_Impl();
+	if (pData)
+	{
+		pData->GetSortParam(aParam);
+
+		//	im SortDescriptor sind die Fields innerhalb des Bereichs gezaehlt
+		ScRange aDBRange;
+		pData->GetArea(aDBRange);
+		SCCOLROW nFieldStart = aParam.bByRow ? static_cast<SCCOLROW>(aDBRange.aStart.Col()) : static_cast<SCCOLROW>(aDBRange.aStart.Row());
+		for (USHORT i=0; i<MAXSORT; i++)
+			if ( aParam.bDoSort[i] && aParam.nField[i] >= nFieldStart )
+				aParam.nField[i] -= nFieldStart;
+	}
+=====================================================================
+Found a 18 line (101 tokens) duplication in the following files: 
+Starting at line 1838 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+Starting at line 186 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
+
+uno::Reference<XAccessibleStateSet> SAL_CALL ScAccessiblePreviewCell::getAccessibleStateSet()
+						    throw(uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+
+	uno::Reference<XAccessibleStateSet> xParentStates;
+	if (getAccessibleParent().is())
+	{
+		uno::Reference<XAccessibleContext> xParentContext = getAccessibleParent()->getAccessibleContext();
+		xParentStates = xParentContext->getAccessibleStateSet();
+	}
+	utl::AccessibleStateSetHelper* pStateSet = new utl::AccessibleStateSetHelper();
+	if (IsDefunc(xParentStates))
+		pStateSet->AddState(AccessibleStateType::DEFUNC);
+    else
+    {
+	    pStateSet->AddState(AccessibleStateType::ENABLED);
+	    pStateSet->AddState(AccessibleStateType::MULTI_LINE);
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 1479 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 1595 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+SvXMLImportContext *ScXMLInsertionContext::CreateChildContext( USHORT nPrefix,
+									 const ::rtl::OUString& rLocalName,
+									 const ::com::sun::star::uno::Reference<
+									  	::com::sun::star::xml::sax::XAttributeList>& xAttrList )
+{
+	SvXMLImportContext *pContext(0);
+
+	if ((nPrefix == XML_NAMESPACE_OFFICE) && (IsXMLToken(rLocalName, XML_CHANGE_INFO)))
+	{
+		pContext = new ScXMLChangeInfoContext(GetScImport(), nPrefix, rLocalName, xAttrList, pChangeTrackingImportHelper);
+	}
+	else if (nPrefix == XML_NAMESPACE_TABLE)
+	{
+		if (IsXMLToken(rLocalName, XML_DEPENDENCIES))
+=====================================================================
+Found a 12 line (101 tokens) duplication in the following files: 
+Starting at line 754 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+Starting at line 836 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+
+	sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0);
+	for( sal_Int16 i=0; i < nAttrCount; ++i )
+	{
+		const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i ));
+		rtl::OUString aLocalName;
+		USHORT nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName(
+											sAttrName, &aLocalName ));
+		const rtl::OUString& sValue(xAttrList->getValueByIndex( i ));
+
+		if (nPrefix == XML_NAMESPACE_TABLE)
+		{
+			if (IsXMLToken(aLocalName, XML_ID))
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 3370 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/biffdump.cxx
+Starting at line 3389 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/excel/biffdump.cxx
+
+				ADDTEXT( "   date/time: " );	ADDDEC( 2 );
+				ADDTEXT( "-" );					ADDDEC( 1 );
+				ADDTEXT( "-" );					ADDDEC( 1 );
+				ADDTEXT( " " );					ADDDEC( 1 );
+				ADDTEXT( ":" );					ADDDEC( 1 );
+				ADDTEXT( ":" );					ADDDEC( 1 );
+				ADDTEXT( "   unknown: " );		ADDHEX( 1 );
+				PRINT();
+				LINESTART();
+				ADDTEXT( "user: " );
+				if( rIn.GetRecLeft() > 3 )
+					AddUNICODEString( t, rIn );
+				PRINT();
+=====================================================================
+Found a 18 line (101 tokens) duplication in the following files: 
+Starting at line 3538 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 3889 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+				pResMat->PutDouble(exp(fVal), i);
+			}
+		}
+		else
+		{
+			pResMat = GetNewMat(nCXN, 1);
+			if (!pResMat)
+			{
+				PushError();
+				return;
+			}
+			double fVal;
+			for (i = 0; i < nCXN; i++)
+			{
+				fVal = pQ->GetDouble(0, M+1);
+				for (j = 0; j < M; j++)
+					fVal += pQ->GetDouble(j+1, M+1)*pMatNewX->GetDouble(i, j);
+				pResMat->PutDouble(exp(fVal), i);
+=====================================================================
+Found a 25 line (101 tokens) duplication in the following files: 
+Starting at line 289 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/pivot2.cxx
+Starting at line 416 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/collect.cxx
+
+		TypedStrData& rData1 = (TypedStrData&)*pKey1;
+		TypedStrData& rData2 = (TypedStrData&)*pKey2;
+
+		if ( rData1.nStrType > rData2.nStrType )
+			nResult = 1;
+		else if ( rData1.nStrType < rData2.nStrType )
+			nResult = -1;
+		else if ( !rData1.nStrType /* && !rData2.nStrType */ )
+		{
+			//--------------------
+			// Zahlen vergleichen:
+			//--------------------
+			if ( rData1.nValue == rData2.nValue )
+				nResult = 0;
+			else if ( rData1.nValue < rData2.nValue )
+				nResult = -1;
+			else
+				nResult = 1;
+		}
+		else /* if ( rData1.nStrType && rData2.nStrType ) */
+		{
+			//---------------------
+			// Strings vergleichen:
+			//---------------------
+			if ( bCaseSensitive )
+=====================================================================
+Found a 22 line (101 tokens) duplication in the following files: 
+Starting at line 240 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/conditio.cxx
+Starting at line 442 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/conditio.cxx
+
+				pFormula1 = aComp.CompileString( rExpr1 );
+				if ( pFormula1->GetLen() == 1 )
+				{
+					// einzelne (konstante Zahl) ?
+					ScToken* pToken = pFormula1->First();
+					if ( pToken->GetOpCode() == ocPush )
+					{
+						if ( pToken->GetType() == svDouble )
+						{
+							nVal1 = pToken->GetDouble();
+							DELETEZ(pFormula1);				// nicht als Formel merken
+						}
+						else if ( pToken->GetType() == svString )
+						{
+							bIsStr1 = TRUE;
+							aStrVal1 = pToken->GetString();
+							DELETEZ(pFormula1);				// nicht als Formel merken
+						}
+					}
+				}
+				bRelRef1 = lcl_HasRelRef( pDoc, pFormula1 );
+			}
+=====================================================================
+Found a 21 line (101 tokens) duplication in the following files: 
+Starting at line 230 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_DatagramSocket.cxx
+Starting at line 3625 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/osl/socket/osl_Socket.cxx
+
+			::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9 );
+			::osl::DatagramSocket dsSocket;
+			dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
+			dsSocket.bind( saLocalSocketAddr );
+			
+			sal_Char pReadBuffer[30];
+			TalkerThread myTalkThread;
+			myTalkThread.create();
+			sal_Int32 nRecv = dsSocket.recvFrom( pReadBuffer, 30, &saLocalSocketAddr);
+			myTalkThread.join();
+			//t_print("#received buffer is %s# \n", pReadBuffer);
+			
+			sal_Bool bOk = ( strcmp(pReadBuffer, pTestString1) == 0 );
+	
+			CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a talker thread and recvFrom in the main thread, check if the datagram socket can communicate successfully.", 
+									nRecv > 0 && bOk == sal_True );
+		}
+		
+		void sr_002()
+		{			
+			::osl::SocketAddr saListenSocketAddr( aHostIp1, IP_PORT_MYPORT10 );
+=====================================================================
+Found a 27 line (101 tokens) duplication in the following files: 
+Starting at line 285 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+Starting at line 333 of /local/ooo-build/ooo-build/src/oog680-m3/registry/source/regkey.cxx
+
+				   			 		  		sal_uInt32 len)
+{
+	ORegKey* 	pKey;
+	
+	if (hKey)
+	{
+		pKey = (ORegKey*)hKey;
+
+		if (pKey->isDeleted())
+			return REG_INVALID_KEY;
+	} else
+		return REG_INVALID_KEY;
+
+	if (pKey->isReadOnly())
+		return REG_REGISTRY_READONLY;
+
+	OUString valueName( RTL_CONSTASCII_USTRINGPARAM("value") );
+	if (keyName->length)
+	{
+		RegKeyHandle hSubKey;
+		ORegKey* pSubKey;
+		RegError _ret1 = pKey->openKey(keyName, &hSubKey);
+		if (_ret1)
+			return _ret1;
+
+		pSubKey = (ORegKey*)hSubKey;
+        _ret1 = pSubKey->setLongListValue(valueName, pValueList, len);
+=====================================================================
+Found a 30 line (101 tokens) duplication in the following files: 
+Starting at line 2766 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+Starting at line 5316 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/xstorage.cxx
+
+			throw uno::RuntimeException(); // if the stream reference is set it must not be changed!
+	}
+	catch( embed::InvalidStorageException& )
+	{
+		throw;
+	}
+	catch( lang::IllegalArgumentException& )
+	{
+		throw;
+	}
+	catch( packages::WrongPasswordException& )
+	{
+		throw;
+	}
+	catch( io::IOException& )
+	{
+		throw;
+	}
+	catch( embed::StorageWrappedTargetException& )
+	{
+		throw;
+	}
+	catch( uno::RuntimeException& )
+	{
+		throw;
+	}
+	catch( uno::Exception& )
+	{
+      	uno::Any aCaught( ::cppu::getCaughtException() );
+		throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy stream data!" ),
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 2770 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3288 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xa3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xe0 },
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 712 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 1232 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x00, 0xc3, 0xc3 },
+{ 0x01, 0xe4, 0xc4 },
+{ 0x01, 0xe5, 0xc5 },
+{ 0x01, 0xe6, 0xc6 },
+{ 0x01, 0xe7, 0xc7 },
+{ 0x01, 0xe8, 0xc8 },
+{ 0x01, 0xe9, 0xc9 },
+{ 0x01, 0xea, 0xca },
+{ 0x01, 0xeb, 0xcb },
+{ 0x01, 0xec, 0xcc },
+{ 0x01, 0xed, 0xcd },
+{ 0x01, 0xee, 0xce },
+{ 0x01, 0xef, 0xcf },
+{ 0x00, 0xd0, 0xd0 },
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 696 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+Starting at line 3288 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/csutil.cxx
+
+{ 0x01, 0xa3, 0xb3 },
+{ 0x00, 0xb4, 0xb4 },
+{ 0x00, 0xb5, 0xb5 },
+{ 0x00, 0xb6, 0xb6 },
+{ 0x00, 0xb7, 0xb7 },
+{ 0x00, 0xb8, 0xb8 },
+{ 0x00, 0xb9, 0xb9 },
+{ 0x00, 0xba, 0xba },
+{ 0x00, 0xbb, 0xbb },
+{ 0x00, 0xbc, 0xbc },
+{ 0x00, 0xbd, 0xbd },
+{ 0x00, 0xbe, 0xbe },
+{ 0x00, 0xbf, 0xbf },
+{ 0x00, 0xc0, 0xe0 },
+=====================================================================
+Found a 16 line (101 tokens) duplication in the following files: 
+Starting at line 549 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/lingucomponent/source/spellcheck/hunspell/affentry.cxx
+
+                            ((optflags & aeXPRODUCT) == 0 || 
+                            TESTAFF(he->astr, ep->getFlag(), he->alen) ||
+                             // handle conditional suffix
+                            ((contclass) && TESTAFF(contclass, ep->getFlag(), contclasslen))
+                            ) &&
+                            // handle cont. class
+                            ((!cclass) || 
+                                ((contclass) && TESTAFF(contclass, cclass, contclasslen))
+                            ) &&
+                            // handle required flag
+                            ((!needflag) || 
+                              (TESTAFF(he->astr, needflag, he->alen) ||
+                              ((contclass) && TESTAFF(contclass, needflag, contclasslen)))
+                            )
+                        ) return he;
+    }
+=====================================================================
+Found a 25 line (101 tokens) duplication in the following files: 
+Starting at line 92 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/odata.cxx
+Starting at line 525 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/omark.cxx
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/io/source/stm/opipe.cxx
+
+	~OPipeImpl();
+
+public: // XInputStream
+    virtual sal_Int32 SAL_CALL readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
+		throw(	NotConnectedException,
+				BufferSizeExceededException,
+				RuntimeException );
+    virtual sal_Int32 SAL_CALL readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
+		throw( NotConnectedException,
+			   BufferSizeExceededException,
+			   RuntimeException );
+    virtual void SAL_CALL skipBytes(sal_Int32 nBytesToSkip)
+		throw( NotConnectedException,
+			   BufferSizeExceededException,
+			   RuntimeException );
+    virtual sal_Int32 SAL_CALL available(void)
+		throw( NotConnectedException,
+			   RuntimeException );
+    virtual void SAL_CALL closeInput(void)
+		throw( NotConnectedException,
+			   RuntimeException );
+
+public: // XOutputStream
+
+    virtual void SAL_CALL writeBytes(const Sequence< sal_Int8 >& aData)
+=====================================================================
+Found a 21 line (101 tokens) duplication in the following files: 
+Starting at line 403 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/eval.c
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_eval.c
+
+    if (rnd == 0)
+        goto syntax;
+    if (evalop(priority[END]) != 0)
+        return 0;
+    if (op != &ops[1] || vp != &vals[1])
+    {
+        error(ERROR, "Botch in #if/#elsif");
+        return 0;
+    }
+    if (vals[0].type == UND)
+        error(ERROR, "Undefined expression value");
+    return vals[0].val;
+syntax:
+    error(ERROR, "Syntax error in #if/#elsif");
+    return 0;
+}
+
+int
+    evalop(struct pri pri)
+{
+    struct value v1;
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 1141 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1262 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1870 - 187f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1880 - 188f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 1890 - 189f
+     0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0,// 18a0 - 18af
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 1058 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 1061 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// 06a0 - 06af
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// 06b0 - 06bf
+    13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,// 06c0 - 06cf
+    13,13,13,13,13,13,17,17,17,17,17,17,17,17,17,17,// 06d0 - 06df
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 939 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 44 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_mask.h
+
+ 0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 441 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 991 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0290 - 029f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 02a0 - 02af
+     0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0,// 02b0 - 02bf
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 404 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 892 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 0, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe70 - fe7f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe80 - fe8f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fe90 - fe9f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// fea0 - feaf
+=====================================================================
+Found a 6 line (101 tokens) duplication in the following files: 
+Starting at line 383 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 389 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,// 12e0 - 12ef
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 12f0 - 12ff
+
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,// 1300 - 130f
+     5, 0, 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0,// 1310 - 131f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 1320 - 132f
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 991 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0280 - 028f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0290 - 029f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 02a0 - 02af
+     0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0,// 02b0 - 02bf
+=====================================================================
+Found a 5 line (101 tokens) duplication in the following files: 
+Starting at line 212 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 305 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 8, 8,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 0df0 - 0dff
+
+     0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0e00 - 0e0f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0e10 - 0e1f
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,// 0e20 - 0e2f
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 379 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 1554 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffa0 - ffaf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffb0 - ffbf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffc0 - ffcf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// ffd0 - ffdf
+=====================================================================
+Found a 4 line (101 tokens) duplication in the following files: 
+Starting at line 319 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 571 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    27,27,27,27,27,27,27,27,27,27,27, 0, 0, 0, 0, 0,// 2390 - 239f
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23a0 - 23af
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23b0 - 23bf
+     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// 23c0 - 23cf
+=====================================================================
+Found a 10 line (101 tokens) duplication in the following files: 
+Starting at line 1103 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+Starting at line 1439 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/graphic/grfmgr2.cxx
+
+							nTmpY = pMapIY[ nUnRotY ], nTmpFY = pMapFY[ nUnRotY ];
+
+							aCol0 = pAcc->GetPixel( nTmpY, nTmpX );
+							aCol1 = pAcc->GetPixel( nTmpY, ++nTmpX );
+							cR0 = MAP( aCol0.GetRed(), aCol1.GetRed(), nTmpFX );
+							cG0 = MAP( aCol0.GetGreen(), aCol1.GetGreen(), nTmpFX );
+							cB0 = MAP( aCol0.GetBlue(), aCol1.GetBlue(), nTmpFX );
+
+							aCol1 = pAcc->GetPixel( ++nTmpY, nTmpX );
+							aCol0 = pAcc->GetPixel( nTmpY, --nTmpX );
+=====================================================================
+Found a 9 line (101 tokens) duplication in the following files: 
+Starting at line 542 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+Starting at line 673 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/icgm/class4.cxx
+
+				ImplGetVector( &vector[ 0 ] );
+
+				fStartAngle = acos( vector[ 0 ] / sqrt( vector[ 0 ] * vector[ 0 ] + vector[ 1 ] * vector[ 1 ] ) ) * 57.29577951308;
+				fEndAngle = acos( vector[ 2 ] / sqrt( vector[ 2 ] * vector[ 2 ] + vector[ 3 ] * vector[ 3 ] ) ) * 57.29577951308;
+
+				if ( vector[ 1 ] > 0 )
+					fStartAngle = 360 - fStartAngle;
+				if ( vector[ 3 ] > 0 )
+					fEndAngle = 360 - fEndAngle;
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 1982 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+Starting at line 367 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+
+		if( rMapRes.mnMapOfsY >= 0 )
+		{
+			if ( aScaleY.GetNumerator() >= 0 )
+				aY += BigInt( aScaleY.GetNumerator()/2 );
+			else
+				aY -= BigInt( (aScaleY.GetNumerator()+1)/2 );
+		}
+		else
+		{
+			if ( aScaleY.GetNumerator() >= 0 )
+				aY -= BigInt( (aScaleY.GetNumerator()-1)/2 );
+			else
+				aY += BigInt( aScaleY.GetNumerator()/2 );
+		}
+		aY /= BigInt( aScaleY.GetNumerator() );
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 1962 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/epict/epict.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+
+		if ( rMapRes.mnMapOfsX >= 0 )
+		{
+			if ( aScaleX.GetNumerator() >= 0 )
+				aX += BigInt( aScaleX.GetNumerator()/2 );
+			else
+				aX -= BigInt( (aScaleX.GetNumerator()+1)/2 );
+		}
+		else
+		{
+			if ( aScaleX.GetNumerator() >= 0 )
+				aX -= BigInt( (aScaleX.GetNumerator()-1)/2 );
+			else
+				aX += BigInt( aScaleX.GetNumerator()/2 );
+		}
+		aX /= BigInt( aScaleX.GetNumerator() );
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 2236 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 367 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+
+		if( rMapRes.mnMapOfsY >= 0 )
+		{
+			if ( aScaleY.GetNumerator() >= 0 )
+				aY += BigInt( aScaleY.GetNumerator()/2 );
+			else
+				aY -= BigInt( (aScaleY.GetNumerator()+1)/2 );
+		}
+		else
+		{
+			if ( aScaleY.GetNumerator() >= 0 )
+				aY -= BigInt( (aScaleY.GetNumerator()-1)/2 );
+			else
+				aY += BigInt( aScaleY.GetNumerator()/2 );
+		}
+		aY /= BigInt( aScaleY.GetNumerator() );
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 2215 of /local/ooo-build/ooo-build/src/oog680-m3/goodies/source/filter.vcl/eos2met/eos2met.cxx
+Starting at line 349 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/outmap.cxx
+
+		if ( rMapRes.mnMapOfsX >= 0 )
+		{
+			if ( aScaleX.GetNumerator() >= 0 )
+				aX += BigInt( aScaleX.GetNumerator()/2 );
+			else
+				aX -= BigInt( (aScaleX.GetNumerator()+1)/2 );
+		}
+		else
+		{
+			if ( aScaleX.GetNumerator() >= 0 )
+				aX -= BigInt( (aScaleX.GetNumerator()-1)/2 );
+			else
+				aX += BigInt( aScaleX.GetNumerator()/2 );
+		}
+		aX /= BigInt( aScaleX.GetNumerator() );
+=====================================================================
+Found a 20 line (101 tokens) duplication in the following files: 
+Starting at line 359 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/footermenucontroller.cxx
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/headermenucontroller.cxx
+
+void SAL_CALL HeaderMenuController::updatePopupMenu() throw (::com::sun::star::uno::RuntimeException)
+{
+    ResetableGuard aLock( m_aLock );
+    
+    if ( m_bDisposed )
+        throw DisposedException();
+    
+    Reference< com::sun::star::frame::XModel > xModel( m_xModel );
+    aLock.unlock();
+    
+    if ( !xModel.is() )
+        PopupMenuControllerBase::updatePopupMenu();
+    
+    aLock.lock();
+    if ( m_xPopupMenu.is() && m_xModel.is() )
+        fillPopupMenu( m_xModel, m_xPopupMenu );
+}
+
+// XInitialization
+void SAL_CALL HeaderMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+=====================================================================
+Found a 24 line (101 tokens) duplication in the following files: 
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uielement/buttontoolbarcontroller.cxx
+Starting at line 206 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/uno/statusbarcontroller.cxx
+
+    const rtl::OUString aIdentifier( RTL_CONSTASCII_USTRINGPARAM( "Identifier" ));
+
+    bool bInitialized( true );
+
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+
+        if ( m_bDisposed )
+            throw DisposedException();
+
+        bInitialized = m_bInitialized;
+    }
+
+    if ( !bInitialized )
+    {
+        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+        m_bInitialized = sal_True;
+
+        PropertyValue aPropValue;
+        for ( int i = 0; i < aArguments.getLength(); i++ )
+        {
+            if ( aArguments[i] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "Frame" ))
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 561 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/imagemanager.cxx
+Starting at line 855 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/uiconfiguration/moduleimagemanager.cxx
+
+void SAL_CALL ModuleImageManager::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
+{
+    ResetableGuard aLock( m_aLock );
+
+    if ( !m_bInitialized )
+    {
+        for ( sal_Int32 n = 0; n < aArguments.getLength(); n++ )
+        {
+            PropertyValue aPropValue;
+            if ( aArguments[n] >>= aPropValue )
+            {
+                if ( aPropValue.Name.equalsAscii( "UserConfigStorage" ))
+                {
+                    aPropValue.Value >>= m_xUserConfigStorage;
+                }
+                else if ( aPropValue.Name.equalsAscii( "ModuleIdentifier" ))
+                {
+                    aPropValue.Value >>= m_aModuleIdentifier;
+                }
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 1240 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/frame.cxx
+Starting at line 1340 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/services/frame.cxx
+
+void SAL_CALL Frame::deactivate() throw( css::uno::RuntimeException )
+{
+	/* UNSAFE AREA --------------------------------------------------------------------------------------------- */
+    // Register transaction and reject wrong calls.
+    TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS );
+
+	/* SAFE AREA ----------------------------------------------------------------------------------------------- */
+    WriteGuard aWriteLock( m_aLock );
+
+    // Copy neccessary member and free the lock.
+    css::uno::Reference< css::frame::XFrame >           xActiveChild    = m_aChildFrameContainer.getActive()                                     ;
+    css::uno::Reference< css::frame::XFramesSupplier >  xParent         ( m_xParent, css::uno::UNO_QUERY )                                ;
+    css::uno::Reference< css::frame::XFrame >           xThis           ( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY );
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 511 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/statusindicatorfactory.cxx
+Starting at line 562 of /local/ooo-build/ooo-build/src/oog680-m3/framework/source/helper/statusindicatorfactory.cxx
+
+void StatusIndicatorFactory::impl_showProgress()
+{
+    // SAFE -> ----------------------------------
+    ReadGuard aReadLock(m_aLock);
+
+    css::uno::Reference< css::frame::XFrame >              xFrame (m_xFrame.get()      , css::uno::UNO_QUERY);
+    css::uno::Reference< css::awt::XWindow >               xWindow(m_xPluggWindow.get(), css::uno::UNO_QUERY);
+    css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR  = m_xSMGR;
+
+    aReadLock.lock();
+    // <- SAFE ----------------------------------
+
+    css::uno::Reference< css::task::XStatusIndicator > xProgress;
+    
+    if (xFrame.is())
+=====================================================================
+Found a 8 line (101 tokens) duplication in the following files: 
+Starting at line 377 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/imgprod.cxx
+Starting at line 447 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/imgprod.cxx
+
+		mbConsInit = sal_False;
+
+		// create temporary list to hold interfaces
+		for( pCons = maConsList.First(); pCons; pCons = maConsList.Next() )
+			aTmp.Insert( new ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > ( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > *) pCons ), LIST_APPEND );
+
+		// iterate through interfaces
+		for( pCons = aTmp.First(); pCons; pCons = aTmp.Next() )
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 1663 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/flash/swfwriter1.cxx
+Starting at line 1259 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+					( nWriteFlags & SVGWRITER_WRITE_FILL ) )
+				{
+					const MetaGradientExAction*	pGradAction = NULL;
+					sal_Bool					bDone = sal_False;
+
+					while( !bDone && ( ++i < nCount ) )
+					{
+						pAction = rMtf.GetAction( i );
+
+						if( pAction->GetType() == META_GRADIENTEX_ACTION )
+							pGradAction = (const MetaGradientExAction*) pAction;
+						else if( ( pAction->GetType() == META_COMMENT_ACTION ) && 
+								 ( ( (const MetaCommentAction*) pAction )->GetComment().CompareIgnoreCaseToAscii( "XGRAD_SEQ_END" ) == COMPARE_EQUAL ) )
+						{
+							bDone = sal_True;
+						}
+					}
+
+					if( pGradAction )
+=====================================================================
+Found a 10 line (101 tokens) duplication in the following files: 
+Starting at line 1081 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+Starting at line 1095 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+Starting at line 1174 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/update/check/updatehdl.cxx
+
+                             awt::Rectangle( CLOSE_BTN_X, BUTTON_Y_POS, BUTTON_WIDTH, BUTTON_HEIGHT ),
+                             aProps );
+    }
+    {   // install button
+        uno::Sequence< beans::NamedValue > aProps(5);
+
+        setProperty( aProps, 0, UNISTRING("DefaultButton"), uno::Any( false ) );
+        setProperty( aProps, 1, UNISTRING("Enabled"), uno::Any( true ) );
+        setProperty( aProps, 2, UNISTRING("PushButtonType"), uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) );
+        setProperty( aProps, 3, UNISTRING("Label"), uno::Any( msInstall ) );
+=====================================================================
+Found a 23 line (101 tokens) duplication in the following files: 
+Starting at line 108 of /local/ooo-build/ooo-build/src/oog680-m3/embedserv/source/embed/register.cxx
+Starting at line 75 of /local/ooo-build/ooo-build/src/oog680-m3/package/source/xstor/register.cxx
+
+											OStorageFactory::impl_staticGetSupportedServiceNames() );
+	}
+		
+	if ( xFactory.is() )
+	{
+		xFactory->acquire();
+		pRet = xFactory.get();
+	}
+	
+	return pRet;
+}
+
+sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
+{
+	if (pRegistryKey)
+	{
+		try
+		{
+    		uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
+
+    		uno::Reference< registry::XRegistryKey >  xNewKey;
+
+			xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + 
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 281 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 220 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xolefactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OleEmbeddedObjectFactory::createInstanceInitNew" );
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											3 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											4 );
+
+	uno::Reference< uno::XInterface > xResult(
+=====================================================================
+Found a 14 line (101 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+
+	uno::Reference< uno::XInterface > xResult;
+
+	// the initialization is completelly controlled by user
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	uno::Sequence< beans::PropertyValue > aTempMedDescr( lArguments );
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/specialobject.cxx
+Starting at line 209 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/specialobject.cxx
+
+awt::Size SAL_CALL OSpecialEmbeddedObject::getVisualAreaSize( sal_Int64 nAspect )
+		throw ( lang::IllegalArgumentException,
+				embed::WrongStateException,
+				uno::Exception,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 31 line (101 tokens) duplication in the following files: 
+Starting at line 362 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/myucp_datasupplier.cxx
+Starting at line 403 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/odma/odma_datasupplier.cxx
+
+		if ( nOldCount < m_pImpl->m_aResults.size() )
+			xResultSet->rowCountChanged(
+									nOldCount, m_pImpl->m_aResults.size() );
+
+		xResultSet->rowCountFinal();
+	}
+
+	return m_pImpl->m_aResults.size();
+}
+
+//=========================================================================
+// virtual
+sal_uInt32 DataSupplier::currentCount()
+{
+	return m_pImpl->m_aResults.size();
+}
+
+//=========================================================================
+// virtual
+sal_Bool DataSupplier::isCountFinal()
+{
+	return m_pImpl->m_bCountFinal;
+}
+
+//=========================================================================
+// virtual
+Reference< XRow > DataSupplier::queryPropertyValues( sal_uInt32 nIndex  )
+{
+	osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+
+	if ( nIndex < m_pImpl->m_aResults.size() )
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 445 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/KeySet.cxx
+Starting at line 768 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/api/KeySet.cxx
+
+	aSql += ::rtl::OUString::createFromAscii(" WHERE ");
+
+	// list all cloumns that should be set
+	::rtl::OUString aQuote	= getIdentifierQuoteString();
+	static ::rtl::OUString aAnd		= ::rtl::OUString::createFromAscii(" AND ");
+
+	// use keys and indexes for excat postioning
+	Reference<XNameAccess> xKeyColumns = getKeyColumns();
+	// second the indexes
+	Reference<XIndexesSupplier> xIndexSup(_xTable,UNO_QUERY);
+	Reference<XIndexAccess> xIndexes;
+	if ( xIndexSup.is() )
+		xIndexes.set(xIndexSup->getIndexes(),UNO_QUERY);
+
+	//	Reference<XColumnsSupplier>
+	::std::vector< Reference<XNameAccess> > aAllIndexColumns;
+	lcl_fillIndexColumns(xIndexes,aAllIndexColumns);
+
+	::rtl::OUString aColumnName,sIndexCondition;
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 189 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/tdmgr.cxx
+Starting at line 247 of /local/ooo-build/ooo-build/src/oog680-m3/cppuhelper/source/tdmgr.cxx
+
+            access, xType->getBaseType() );
+		if (pBaseType)
+			typelib_typedescription_register( &pBaseType );
+
+		// construct member init array
+		const Sequence<Reference< XTypeDescription > > & rMemberTypes = xType->getMemberTypes();
+		const Sequence< OUString > & rMemberNames					  = xType->getMemberNames();
+
+		const Reference< XTypeDescription > * pMemberTypes = rMemberTypes.getConstArray();
+		const OUString * pMemberNames					   = rMemberNames.getConstArray();
+
+		sal_Int32 nMembers = rMemberTypes.getLength();
+		OSL_ENSURE( nMembers == rMemberNames.getLength(), "### lens differ!" );
+
+		OUString aTypeName( xType->getName() );
+=====================================================================
+Found a 21 line (101 tokens) duplication in the following files: 
+Starting at line 496 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 801 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt32 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
+    }
+    {
+        sal_Int64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
+    }
+    {
+        sal_uInt64 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
+    }
+    {
+        float b = 2;
+        CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
+=====================================================================
+Found a 20 line (101 tokens) duplication in the following files: 
+Starting at line 276 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+Starting at line 677 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/qa/test_any.cxx
+
+        a.getValueType() == getCppuType(static_cast< sal_uInt16 const * >(0)));
+    {
+        bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
+    }
+    {
+        sal_Bool b = true;
+        CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
+    }
+    {
+        sal_Int8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_uInt8 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
+    }
+    {
+        sal_Int16 b = 2;
+        CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
+=====================================================================
+Found a 17 line (101 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/wrapper/basegfxfactory.cxx
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/wrapper/basegfxfactory.cxx
+
+    BitmapSharedPtr BaseGfxFactory::createAlphaBitmap( const CanvasSharedPtr&	rCanvas, 
+                                                       const ::basegfx::B2ISize& rSize ) const
+    {
+        OSL_ENSURE( rCanvas.get() != NULL &&
+                    rCanvas->getUNOCanvas().is(), 
+                    "BaseGfxFactory::createBitmap(): Invalid canvas" );
+        
+        if( rCanvas.get() == NULL )
+            return BitmapSharedPtr();
+
+        uno::Reference< rendering::XCanvas > xCanvas( rCanvas->getUNOCanvas() );
+        if( !xCanvas.is() )
+            return BitmapSharedPtr();
+
+        return BitmapSharedPtr( 
+            new internal::ImplBitmap( rCanvas, 
+                                      xCanvas->getDevice()->createCompatibleAlphaBitmap( 
+=====================================================================
+Found a 13 line (101 tokens) duplication in the following files: 
+Starting at line 1579 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 1694 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+            OutlineAction::OutlineAction( const ::basegfx::B2DPoint&							rStartPoint,  
+                                          const ::basegfx::B2DSize&								rReliefOffset,  
+                                          const ::Color&										rReliefColor,
+                                          const ::basegfx::B2DSize&								rShadowOffset,
+                                          const ::Color&										rShadowColor,
+                                          const ::basegfx::B2DRectangle&						rOutlineBounds,
+                                          const uno::Reference< rendering::XPolyPolygon2D >& 	rTextPoly,
+                                          const ::std::vector< sal_Int32 >& 					rPolygonGlyphMap,
+                                          const uno::Sequence< double >&						rOffsets,
+                                          VirtualDevice&										rVDev,
+                                          const CanvasSharedPtr&								rCanvas, 
+                                          const OutDevState& 									rState,
+                                          const ::basegfx::B2DHomMatrix&						rTextTransform ) :
+=====================================================================
+Found a 16 line (101 tokens) duplication in the following files: 
+Starting at line 648 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+Starting at line 816 of /local/ooo-build/ooo-build/src/oog680-m3/cppcanvas/source/mtfrenderer/textaction.cxx
+
+                                  VirtualDevice&					rVDev,
+                                  const CanvasSharedPtr&			rCanvas, 
+                                  const OutDevState& 				rState,
+                                  const ::basegfx::B2DHomMatrix&	rTextTransform ); 
+
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation,
+                                     const Subset&					rSubset ) const;
+
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation ) const;
+                virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix&	rTransformation,
+                                                       const Subset&					rSubset ) const;
+
+                virtual sal_Int32 getActionCount() const;
+
+            private:
+=====================================================================
+Found a 20 line (101 tokens) duplication in the following files: 
+Starting at line 120 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Class.cxx
+Starting at line 141 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/Class.cxx
+
+jobject java_lang_Class::newInstanceObject()
+{
+	jobject out(NULL);
+	SDBThreadAttach t;
+	if( t.pEnv )
+	{
+		// temporaere Variable initialisieren
+		static const char * cSignature = "()Ljava/lang/Object;";
+		static const char * cMethodName = "newInstance";
+		// Java-Call absetzen
+		static jmethodID mID = NULL;
+		if ( !mID  )
+			mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+		if( mID ){
+			out = t.pEnv->CallObjectMethod( object, mID);
+			ThrowSQLException(t.pEnv,0);
+		} //mID
+	} //t.pEnv
+	// ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!!
+	return out;
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 2266 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+Starting at line 2575 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/bonobowrappermaker/corbatype.cxx
+
+	  << "}\n\n";
+
+	o << "inline sal_Bool bonobobridge::cpp_convert_b2u(";
+	dumpUnoType(o, m_typeName, sal_False, sal_True);
+	o << " u	, ";
+	dumpCorbaType(o, m_typeName, sal_True, sal_True);
+	o << " b,	const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"
+	  << "  return convert_b2u_" << m_typeName.replace('/', '_') 
+	  << "(&u, &b, ::getCppuType(&u), bridge);\n"
+	  << "};\n\n";
+	
+	o << "inline sal_Bool bonobobridge::cpp_convert_u2b(";
+	dumpCorbaType(o, m_typeName, sal_False, sal_True);
+	o << " b, ";
+	dumpUnoType(o, m_typeName, sal_True, sal_True);
+	o << " u,	const ::vos::ORef< ::bonobobridge::Bridge >& bridge) {\n"	
+	  << "  return convert_u2b_" << m_typeName.replace('/', '_') 
+	  << "(&b, &u, ::getCppuType(&u), bridge);\n"
+	  << "};\n\n";
+=====================================================================
+Found a 11 line (101 tokens) duplication in the following files: 
+Starting at line 298 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/PropertyMapper.cxx
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/main/PropertyMapper.cxx
+
+        ( C2U( "FillTransparenceGradientName" ), C2U("TransparencyGradientName") )
+        //bitmap properties
+        ( C2U( "FillBitmapMode" ),        C2U( "FillBitmapMode" ) )
+        ( C2U( "FillBitmapSizeX" ),       C2U( "FillBitmapSizeX" ) )
+        ( C2U( "FillBitmapSizeY" ),       C2U( "FillBitmapSizeY" ) )
+        ( C2U( "FillBitmapLogicalSize" ), C2U( "FillBitmapLogicalSize" ) )
+        ( C2U( "FillBitmapOffsetX" ),     C2U( "FillBitmapOffsetX" ) )
+        ( C2U( "FillBitmapOffsetY" ),     C2U( "FillBitmapOffsetY" ) )
+        ( C2U( "FillBitmapRectanglePoint" ),C2U( "FillBitmapRectanglePoint" ) )
+        ( C2U( "FillBitmapPositionOffsetX" ),C2U( "FillBitmapPositionOffsetX" ) )
+        ( C2U( "FillBitmapPositionOffsetY" ),C2U( "FillBitmapPositionOffsetY" ) )
+=====================================================================
+Found a 7 line (101 tokens) duplication in the following files: 
+Starting at line 91 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx
+
+                Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartType > > aChartTypes(
+                    ::chart::DiagramHelper::getChartTypesFromDiagram( m_spChart2ModelContact->getChart2Diagram() ) );
+                for( sal_Int32 nN = aChartTypes.getLength(); nN--; )
+                {
+                    try
+                    {
+                        ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xChartTypePropertySet( aChartTypes[nN], ::com::sun::star::uno::UNO_QUERY );
+=====================================================================
+Found a 19 line (101 tokens) duplication in the following files: 
+Starting at line 645 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx
+
+    Reference< chart2::XChartTypeTemplate > xTemplate = aTemplateAndService.first;
+
+    // (fall-back)
+    if( ! xTemplate.is())
+    {
+        if( aServiceName.getLength() == 0 )
+            aServiceName = C2U("com.sun.star.chart2.template.Column");
+        xTemplate.set( xFact->createInstance( aServiceName ), uno::UNO_QUERY );
+    }
+    OSL_ASSERT( xTemplate.is());
+
+    if( xTemplate.is() && xSource.is())
+    {
+        // argument detection works with internal knowledge of the
+        // ArrayDataProvider
+        OSL_ASSERT( xDia.is());
+        xTemplate->changeDiagramData(
+            xDia, xSource, aArguments );
+    }
+=====================================================================
+Found a 18 line (101 tokens) duplication in the following files: 
+Starting at line 278 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+Starting at line 316 of /local/ooo-build/ooo-build/src/oog680-m3/canvas/source/tools/image.cxx
+
+                ::basegfx::B2DPolyPolygon clip(*pViewClip);
+                aPolyPolygon = ::basegfx::tools::removeAllIntersections(aPolyPolygon);
+                aPolyPolygon = ::basegfx::tools::removeNeutralPolygons(aPolyPolygon,
+                                                                       sal_True);
+                clip = ::basegfx::tools::removeAllIntersections(clip);
+                clip = ::basegfx::tools::removeNeutralPolygons(clip,
+                                                               sal_True);
+                aPolyPolygon.append(clip);
+                aPolyPolygon = ::basegfx::tools::removeAllIntersections(aPolyPolygon);
+                aPolyPolygon = ::basegfx::tools::removeNeutralPolygons(aPolyPolygon,
+                                                                       sal_False);
+            }
+            else
+            {
+                // TODO(F3): add AW's addition to clipPolyPolygonOnPolyPolygon
+                // regarding open/close state
+                aPolyPolygon = basegfx::tools::clipPolyPolygonOnPolyPolygon(aPolyPolygon,
+                                                                            *pViewClip,
+=====================================================================
+Found a 18 line (101 tokens) duplication in the following files: 
+Starting at line 271 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+Starting at line 258 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
+
+			pThis->pCppI, nVtableCall,
+			pCppReturn, pReturnTypeDescr->eTypeClass,
+			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+		// NO exception occured...
+		*ppUnoExc = 0;
+		
+		// reconvert temporary params
+		for ( ; nTempIndizes--; )
+		{
+			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
+			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
+			
+			if (pParams[nIndex].bIn)
+			{
+				if (pParams[nIndex].bOut) // inout
+				{
+					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+=====================================================================
+Found a 15 line (101 tokens) duplication in the following files: 
+Starting at line 752 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/scriptdocument.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/scripting/source/basprov/basprov.cxx
+
+                OSL_VERIFY( aFileItem.getFileStatus( aFileStatus ) == osl::FileBase::E_None );
+                ::rtl::OUString aCanonicalFileURL( aFileStatus.getFileURL() );
+
+                ::rtl::OUString aShareURL;
+                OSL_VERIFY( osl_getExecutableFile( &aShareURL.pData ) == osl_Process_E_None );
+                sal_Int32 nIndex = aShareURL.lastIndexOf( '/' );
+                if ( nIndex >= 0 )
+                {
+                    nIndex = aShareURL.lastIndexOf( '/', nIndex );
+                    if ( nIndex >= 0 )
+                    {
+                        aShareURL = aShareURL.copy( 0, nIndex + 1 );
+                        aShareURL += ::rtl::OUString::createFromAscii( "share" );
+                    }
+                }
+=====================================================================
+Found a 14 line (100 tokens) duplication in the following files: 
+Starting at line 1548 of /local/ooo-build/ooo-build/src/oog680-m3/basebmp/source/bitmapdevice.cxx
+Starting at line 1580 of /local/ooo-build/ooo-build/src/oog680-m3/basebmp/source/bitmapdevice.cxx
+
+    OSL_ASSERT( rMask->getSize() == rSrcBitmap->getSize() );
+
+    const basegfx::B2IVector& rSrcSize( rSrcBitmap->getSize() );
+    const basegfx::B2IRange   aSrcBounds( 0,0,rSrcSize.getX(),rSrcSize.getY() );
+    basegfx::B2IRange         aSrcRange( rSrcRect );
+    basegfx::B2IRange         aDestRange( rDstRect );
+
+    if( clipAreaImpl( aDestRange,
+                      aSrcRange,
+                      mpImpl->maBounds,
+                      aSrcBounds ))
+    {
+        assertImageRange(aDestRange,mpImpl->maBounds);
+        assertImageRange(aSrcRange,aSrcBounds);
+=====================================================================
+Found a 13 line (100 tokens) duplication in the following files: 
+Starting at line 351 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+Starting at line 888 of /local/ooo-build/ooo-build/src/oog680-m3/agg/inc/agg_pixfmt_rgba.h
+
+            value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+            pixel_type v;
+            ((value_type*)&v)[order_type::R] = c.r;
+            ((value_type*)&v)[order_type::G] = c.g;
+            ((value_type*)&v)[order_type::B] = c.b;
+            ((value_type*)&v)[order_type::A] = c.a;
+            do
+            {
+                *(pixel_type*)p = v;
+                p += 4;
+            }
+            while(--len);
+        }
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 250 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/XMLTextShapeStyleContext.cxx
+Starting at line 262 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/text/txtstyli.cxx
+
+	XMLPropStyleContext::CreateAndInsert( bOverwrite );
+	Reference < XStyle > xStyle = GetStyle();
+	if( !xStyle.is() || !(bOverwrite || IsNew()) )
+		return;
+
+	Reference < XPropertySet > xPropSet( xStyle, UNO_QUERY );
+	Reference< XPropertySetInfo > xPropSetInfo =
+				xPropSet->getPropertySetInfo();
+	if( xPropSetInfo->hasPropertyByName( sIsAutoUpdate ) )
+	{
+		Any aAny;
+		sal_Bool bTmp = bAutoUpdate;
+		aAny.setValue( &bTmp, ::getBooleanCppuType() );
+		xPropSet->setPropertyValue( sIsAutoUpdate, aAny );
+	}
+=====================================================================
+Found a 23 line (100 tokens) duplication in the following files: 
+Starting at line 406 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlimp.cxx
+Starting at line 435 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlimp.cxx
+
+	mxGraphicResolver( rGraphicObjects ),
+	mpImpl( new SvXMLImport_Impl() ),
+	// #110680#
+	mxServiceFactory(xServiceFactory),
+	mpNamespaceMap( new SvXMLNamespaceMap ),
+	// #110680#
+	// pUnitConv( new SvXMLUnitConverter( MAP_100TH_MM, MAP_100TH_MM ) ),
+	mpUnitConv( new SvXMLUnitConverter( MAP_100TH_MM, MAP_100TH_MM, getServiceFactory() ) ),
+	mpContexts( new SvXMLImportContexts_Impl ),
+	mpNumImport( NULL ),
+	mpProgressBarHelper( NULL ),
+	mpEventImportHelper( NULL ),
+	mpXMLErrors( NULL ),
+	mpStyleMap(0),
+	mnImportFlags( IMPORT_ALL ),
+	mnErrorFlags(0),
+    mbIsFormsSupported( sal_True )
+{
+	DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
+	_InitCtor();
+}
+
+SvXMLImport::~SvXMLImport() throw ()
+=====================================================================
+Found a 12 line (100 tokens) duplication in the following files: 
+Starting at line 750 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlexp.cxx
+Starting at line 906 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/core/xmlimp.cxx
+
+void SAL_CALL SvXMLImport::initialize( const uno::Sequence< uno::Any >& aArguments )
+	throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
+{
+	const sal_Int32 nAnyCount = aArguments.getLength();
+	const uno::Any* pAny = aArguments.getConstArray();
+
+	for( sal_Int32 nIndex = 0; nIndex < nAnyCount; nIndex++, pAny++ )
+    {
+        Reference<XInterface> xValue;
+        *pAny >>= xValue;
+
+        uno::Reference<task::XStatusIndicator> xTmpStatusIndicator(
+=====================================================================
+Found a 13 line (100 tokens) duplication in the following files: 
+Starting at line 1436 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+Starting at line 172 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/chart/SchXMLSeries2Context.cxx
+
+void SchXMLDomain2Context::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList )
+{
+	sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0;
+
+	for( sal_Int16 i = 0; i < nAttrCount; i++ )
+	{
+		rtl::OUString sAttrName = xAttrList->getNameByIndex( i );
+		rtl::OUString aLocalName;
+		USHORT nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
+
+		if( nPrefix == XML_NAMESPACE_TABLE &&
+			IsXMLToken( aLocalName, XML_CELL_RANGE_ADDRESS ) )
+		{
+=====================================================================
+Found a 5 line (100 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movebezierweight_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/movepoint_curs.h
+
+static char movepoint_curs_bits[] = {
+   0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff,
+   0xf1, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff,
+   0x81, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xfe, 0xff, 0xff,
+   0x01, 0xfc, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0x91, 0xff, 0xff, 0xff,
+=====================================================================
+Found a 4 line (100 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_mask.h
+
+ 0x00,0x00,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (100 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ass_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+static char asw_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x70,0x38,0x00,0x00,0x78,0x7c,0x00,0x00,
+=====================================================================
+Found a 4 line (100 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnw_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_mask.h
+
+ 0x00,0x00,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (100 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asns_mask.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asnswe_mask.h
+
+ 0x00,0x00,0x16,0x34,0x00,0x00,0xf8,0x0f,0x00,0x00,0xf8,0x0f,0x00,0x00,0xf0,
+ 0x07,0x00,0x00,0xf0,0x07,0x00,0x00,0xe0,0x03,0x00,0x00,0xc0,0x01,0x00,0x00,
+ 0xc0,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 4 line (100 tokens) duplication in the following files: 
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asn_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_mask.h
+
+ 0x00,0x00,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 5 line (100 tokens) duplication in the following files: 
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/ase_curs.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+static char asw_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x70,0x38,0x00,0x00,0x78,0x7c,0x00,0x00,
+=====================================================================
+Found a 14 line (100 tokens) duplication in the following files: 
+Starting at line 787 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/toolbox2.cxx
+Starting at line 807 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/window/toolbox2.cxx
+
+		aItem.mnSepSize = nPixSize;
+    mpData->m_aItems.insert( (nPos < mpData->m_aItems.size()) ? mpData->m_aItems.begin()+nPos : mpData->m_aItems.end(), aItem );
+    mpData->ImplClearLayoutData();
+
+	ImplInvalidate( FALSE );
+
+    // Notify
+    USHORT nNewPos = sal::static_int_cast<USHORT>(( nPos == TOOLBOX_APPEND ) ? ( mpData->m_aItems.size() - 1 ) : nPos);
+    ImplCallEventListeners( VCLEVENT_TOOLBOX_ITEMADDED, reinterpret_cast< void* >( nNewPos ) );
+}
+
+// -----------------------------------------------------------------------
+
+void ToolBox::InsertBreak( USHORT nPos )
+=====================================================================
+Found a 27 line (100 tokens) duplication in the following files: 
+Starting at line 158 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/fixed.cxx
+Starting at line 473 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/fixed.cxx
+
+		SetTextColor( aColor );
+		SetTextFillColor();
+	}
+
+	if ( bBackground )
+	{
+		Window* pParent = GetParent();
+		if ( pParent->IsChildTransparentModeEnabled() && !IsControlBackground() )
+		{
+			EnableChildTransparentMode( TRUE );
+			SetParentClipMode( PARENTCLIPMODE_NOCLIP );
+			SetPaintTransparent( TRUE );
+			SetBackground();
+		}
+		else
+		{
+			EnableChildTransparentMode( FALSE );
+			SetParentClipMode( 0 );
+			SetPaintTransparent( FALSE );
+
+			if ( IsControlBackground() )
+				SetBackground( GetControlBackground() );
+			else
+				SetBackground( pParent->GetBackground() );
+		}
+	}
+}
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 1528 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+Starting at line 742 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/lstbox.cxx
+
+long ListBox::GetIndexForPoint( const Point& rPoint, USHORT& rPos ) const
+{
+    if( ! mpLayoutData )
+        FillLayoutData();
+
+    // check whether rPoint fits at all
+    long nIndex = Control::GetIndexForPoint( rPoint );
+    if( nIndex != -1 )
+    {
+        // point must be either in main list window
+        // or in impl window (dropdown case)
+        ImplListBoxWindow* pMain = mpImplLB->GetMainWindow();
+    
+        // convert coordinates to ImplListBoxWindow pixel coordinate space
+        Point aConvPoint = LogicToPixel( rPoint );
+        aConvPoint = OutputToAbsoluteScreenPixel( aConvPoint );
+        aConvPoint = pMain->AbsoluteScreenToOutputPixel( aConvPoint );
+        aConvPoint = pMain->PixelToLogic( aConvPoint );
+
+        // try to find entry
+        USHORT nEntry = pMain->GetEntryPosForPoint( aConvPoint );
+        if( nEntry == LISTBOX_ENTRY_NOTFOUND )
+=====================================================================
+Found a 26 line (100 tokens) duplication in the following files: 
+Starting at line 369 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+Starting at line 451 of /local/ooo-build/ooo-build/src/oog680-m3/ucb/source/ucp/package/pkgcontentcaps.cxx
+
+                    getCppuVoidType()
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
+                ),
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
+                    -1,
+                    getCppuType(
+                        static_cast< ucb::TransferInfo * >( 0 ) )
+                ),
+                ///////////////////////////////////////////////////////////
+                // New commands
+                ///////////////////////////////////////////////////////////
+                ucb::CommandInfo(
+                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "flush" ) ),
+                    -1,
+                    getCppuVoidType()
+                )
+            };
+
+            return uno::Sequence<
+                    ucb::CommandInfo >( aFolderCommandInfoTable, 9 );
+=====================================================================
+Found a 19 line (100 tokens) duplication in the following files: 
+Starting at line 131 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/helpmerge.cxx
+Starting at line 265 of /local/ooo-build/ooo-build/src/oog680-m3/transex3/source/helpmerge.cxx
+
+    bool hasNoError = true;
+    
+    SimpleXMLParser aParser;
+
+    String sUsedTempFile;
+    String sXmlFile;
+
+    if( Export::fileHasUTF8ByteOrderMarker( sHelpFile ) ){
+        DirEntry aTempFile = Export::GetTempFile();
+        DirEntry aSourceFile( String( sHelpFile , RTL_TEXTENCODING_ASCII_US ) );
+        aSourceFile.CopyTo( aTempFile , FSYS_ACTION_COPYFILE );
+        String sTempFile = aTempFile.GetFull();
+        Export::RemoveUTF8ByteOrderMarkerFromFile( ByteString( sTempFile , RTL_TEXTENCODING_ASCII_US ) );
+        sUsedTempFile = sTempFile;
+        sXmlFile = sTempFile;
+    }else{
+        sUsedTempFile = String::CreateFromAscii("");
+        sXmlFile = String( sHelpFile , RTL_TEXTENCODING_ASCII_US );
+    }
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 1064 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/bigint.cxx
+Starting at line 1091 of /local/ooo-build/ooo-build/src/oog680-m3/tools/source/generic/bigint.cxx
+
+sal_Bool operator<( const BigInt& rVal1, const BigInt& rVal2 )
+{
+    if ( rVal1.bIsBig || rVal2.bIsBig )
+    {
+        BigInt nA, nB;
+        nA.MakeBigInt( rVal1 );
+        nB.MakeBigInt( rVal2 );
+        if ( nA.bIsNeg == nB.bIsNeg )
+        {
+            if ( nA.nLen == nB.nLen )
+            {
+                int i;
+                for ( i = nA.nLen - 1; i > 0 && nA.nNum[i] == nB.nNum[i]; i-- )
+                {
+                }
+=====================================================================
+Found a 19 line (100 tokens) duplication in the following files: 
+Starting at line 135 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/optload.cxx
+Starting at line 224 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/optpage.cxx
+
+    aAnyRulerCB.SetClickHdl(LINK(this, SwContentOptPage, AnyRulerHdl));
+
+    SvxStringArray aMetricArr( SW_RES( STR_ARR_METRIC ) );
+    for ( USHORT i = 0; i < aMetricArr.Count(); ++i )
+	{
+		String sMetric = aMetricArr.GetStringByPos( i );
+		FieldUnit eFUnit = (FieldUnit)aMetricArr.GetValue( i );
+
+		switch ( eFUnit )
+		{
+			case FUNIT_MM:
+			case FUNIT_CM:
+			case FUNIT_POINT:
+			case FUNIT_PICA:
+			case FUNIT_INCH:
+			{
+				// nur diese Metriken benutzen
+				USHORT nPos = aMetricLB.InsertEntry( sMetric );
+				aMetricLB.SetEntryData( nPos, (void*)(long)eFUnit );
+=====================================================================
+Found a 12 line (100 tokens) duplication in the following files: 
+Starting at line 77 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/barcfg.cxx
+Starting at line 419 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/modcfg.cxx
+
+	const Sequence<OUString>& aNames = GetPropertyNames();
+	Sequence<Any> aValues = GetProperties(aNames);
+	const Any* pValues = aValues.getConstArray();
+	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed")
+	if(aValues.getLength() == aNames.getLength())
+	{
+		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
+		{
+			if(pValues[nProp].hasValue())
+			{
+				sal_Int32 nVal;
+				pValues[nProp] >>= nVal;
+=====================================================================
+Found a 12 line (100 tokens) duplication in the following files: 
+Starting at line 414 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/dbui/mailmergechildwindow.cxx
+Starting at line 337 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/config/mailconfigpage.cxx
+
+    Size aLBSize(m_aStatusLB.GetOutputSizePixel());
+    m_aStatusHB.SetSizePixel(aLBSize);
+    Size aHeadSize(m_aStatusHB.CalcWindowSizePixel());
+    aHeadSize.Width() = aLBSize.Width();
+    m_aStatusHB.SetSizePixel(aHeadSize);
+    Point aLBPos(m_aStatusLB.GetPosPixel());
+    m_aStatusHB.SetPosPixel(aLBPos);
+    aLBPos.Y() += aHeadSize.Height();
+    aLBSize.Height() -= aHeadSize.Height();
+    m_aStatusLB.SetPosSizePixel(aLBPos, aLBSize);
+    
+    Size aSz(m_aStatusHB.GetOutputSizePixel());
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 1942 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+Starting at line 1990 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8par.cxx
+
+    if( pHdFt )
+    {
+        WW8_CP start;
+        long nLen;
+        BYTE nNumber = 5;
+
+        for( BYTE nI = 0x20; nI; nI >>= 1, nNumber-- )
+        {
+            if (nI & nWhichItems)
+            {
+                bool bOk = true;
+                if( bVer67 )
+                    bOk = ( pHdFt->GetTextPos(grpfIhdt, nI, start, nLen ) && nLen >= 2 );
+                else
+                {
+                    pHdFt->GetTextPosExact(nNumber + (nSect+1)*6, start, nLen);
+                    bOk = ( 2 <= nLen );
+                }
+=====================================================================
+Found a 35 line (100 tokens) duplication in the following files: 
+Starting at line 843 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/dump/ww8scan.cxx
+Starting at line 921 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/ww8/ww8scan.cxx
+
+    if (pSprms && nRemLen > (mrSprmParser.getVersion()?1:0)) //see #125180#
+    {
+        nAktId = mrSprmParser.GetSprmId(pSprms);
+        pAktParams = pSprms + mrSprmParser.DistanceToData(nAktId);
+        nAktSize = mrSprmParser.GetSprmSize(nAktId, pSprms);
+    }
+    else
+    {
+        nAktId = 0;
+        pAktParams = 0;
+        nAktSize = 0;
+        nRemLen = 0;
+    }
+}
+
+const BYTE* WW8SprmIter::FindSprm(USHORT nId)
+{
+    while(GetSprms())
+    {
+        if( GetAktId() == nId )
+            return GetAktParams();              // SPRM found!
+        operator ++(0);
+    }
+
+    return 0;                                   // SPRM _not_ found
+}
+
+//-----------------------------------------
+//      temporaerer Test
+//-----------------------------------------
+// WW8PLCFx_PCDAttrs halten sich an WW8PLCF_Pcd fest und besitzen deshalb keine
+// eigenen Iteratoren. Alle sich auf Iteratoren beziehenden Methoden
+// sind deshalb Dummies.
+
+WW8PLCFx_PCDAttrs::WW8PLCFx_PCDAttrs(ww::WordVersion eVersion, 
+=====================================================================
+Found a 20 line (100 tokens) duplication in the following files: 
+Starting at line 610 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/htmlsect.cxx
+Starting at line 3452 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/filter/html/swhtml.cxx
+
+	for( USHORT i = pOptions->Count(); i; )
+	{
+		const HTMLOption *pOption = (*pOptions)[--i];
+		switch( pOption->GetToken() )
+		{
+		case HTML_O_ID:
+			aId = pOption->GetString();
+			break;
+		case HTML_O_STYLE:
+			aStyle = pOption->GetString();
+			break;
+		case HTML_O_CLASS:
+			aClass = pOption->GetString();
+			break;
+		case HTML_O_LANG:
+			aLang = pOption->GetString();
+			break;
+		case HTML_O_DIR:
+			aDir = pOption->GetString();
+			break;
+=====================================================================
+Found a 12 line (100 tokens) duplication in the following files: 
+Starting at line 421 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unosect.cxx
+Starting at line 2606 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unotbl.cxx
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+	if(pDoc && nRows && nColumns)
+=====================================================================
+Found a 25 line (100 tokens) duplication in the following files: 
+Starting at line 311 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoparagraph.cxx
+Starting at line 3385 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unostyle.cxx
+
+void SwXPageStyle::setPropertyValues(
+    const uno::Sequence< OUString >& rPropertyNames,
+    const uno::Sequence< uno::Any >& rValues )
+        throw(beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+    vos::OGuard aGuard(Application::GetSolarMutex());
+
+    // workaround for bad designed API
+    try
+    {
+        SetPropertyValues_Impl( rPropertyNames, rValues );
+    }
+    catch (beans::UnknownPropertyException &rException)
+    {
+        // wrap the original (here not allowed) exception in
+        // a lang::WrappedTargetException that gets thrown instead.
+        lang::WrappedTargetException aWExc;
+        aWExc.TargetException <<= rException;
+        throw aWExc;
+    }
+}
+/* -----------------------------04.11.03 13:50--------------------------------
+
+ ---------------------------------------------------------------------------*/
+uno::Sequence< uno::Any > SAL_CALL SwXPageStyle::GetPropertyValues_Impl(
+=====================================================================
+Found a 14 line (100 tokens) duplication in the following files: 
+Starting at line 1391 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unofield.cxx
+Starting at line 1493 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/unocore/unoidx.cxx
+
+	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+	SwXTextRange* pRange = 0;
+	OTextCursorHelper* pCursor = 0;
+	if(xRangeTunnel.is())
+	{
+		pRange = (SwXTextRange*)xRangeTunnel->getSomething(
+								SwXTextRange::getUnoTunnelId());
+		pCursor = (OTextCursorHelper*)xRangeTunnel->getSomething(
+								OTextCursorHelper::getUnoTunnelId());
+	}
+
+	SwDoc* pDoc = pRange ? (SwDoc*)pRange->GetDoc() : pCursor ? (SwDoc*)pCursor->GetDoc() : 0;
+
+	if(pDoc )
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 1530 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/ndtxt.cxx
+Starting at line 2005 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/txtnode/ndtxt.cxx
+
+            if( nInitSize || pDest->HasSwAttrSet() ||
+				nLen != pDest->GetTxt().Len() )
+			{
+				SfxItemSet aCharSet( pDest->GetDoc()->GetAttrPool(),
+									RES_CHRATR_BEGIN, RES_CHRATR_END-1,
+									RES_TXTATR_CHARFMT, RES_TXTATR_CHARFMT,
+									RES_TXTATR_INETFMT, RES_TXTATR_INETFMT,
+									RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1,
+									0 );
+				aCharSet.Put( *GetpSwAttrSet() );
+				if( aCharSet.Count() )
+                    pDest->SetAttr( aCharSet, nDestStart, nDestStart + nLen );
+			}
+			else
+				GetpSwAttrSet()->CopyToModify( *pDest );
+		}
+=====================================================================
+Found a 21 line (100 tokens) duplication in the following files: 
+Starting at line 300 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/laycache.cxx
+Starting at line 458 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/layout/laycache.cxx
+
+                        ++nIndex;
+                    }
+                }
+                else if( pTmp->IsTabFrm() )
+                {
+                    SwTabFrm* pTab = (SwTabFrm*)pTmp;
+                    ULONG nOfst = STRING_LEN;
+                    if( pTab->IsFollow() )
+                    {
+                        nOfst = 0;
+                        if( pTab->IsFollow() )
+                            pTab = pTab->FindMaster( true );
+                        while( pTab != pTmp )
+                        {
+                            SwFrm* pSub = pTab->Lower();
+                            while( pSub )
+                            {
+                                ++nOfst;
+                                pSub = pSub->GetNext();
+                            }
+                            pTab = pTab->GetFollow();
+=====================================================================
+Found a 19 line (100 tokens) duplication in the following files: 
+Starting at line 371 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/fields/cellfml.cxx
+Starting at line 952 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/core/fields/cellfml.cxx
+
+	SwSelBoxes* pBoxes = (SwSelBoxes*)pPara;
+	SwTableBox* pSttBox, *pEndBox = 0;
+
+	rFirstBox.Erase(0,1);		// Kennung fuer Box loeschen
+	// ein Bereich in dieser Klammer ?
+	if( pLastBox )
+	{
+		pEndBox = (SwTableBox*)pLastBox->ToInt64();
+
+		// ist das ueberhaupt ein gueltiger Pointer ??
+		if( !rTbl.GetTabSortBoxes().Seek_Entry( pEndBox ))
+			pEndBox = 0;
+		rFirstBox.Erase( 0, pLastBox->Len()+1 );
+	}
+
+	pSttBox = (SwTableBox*)rFirstBox.ToInt64();
+	// ist das ueberhaupt ein gueltiger Pointer ??
+	if( !rTbl.GetTabSortBoxes().Seek_Entry( pSttBox ))
+		pSttBox = 0;
+=====================================================================
+Found a 30 line (100 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr2.cxx
+Starting at line 397 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/xoutdev/xattr2.cxx
+
+SfxItemPresentation XFillTransparenceItem::GetPresentation
+(
+	SfxItemPresentation ePres,
+	SfxMapUnit			/*eCoreUnit*/,
+	SfxMapUnit			/*ePresUnit*/,
+    XubString&          rText, const IntlWrapper *
+)	const
+{
+	rText.Erase();
+
+	switch ( ePres )
+	{
+		case SFX_ITEM_PRESENTATION_NONE:
+			return ePres;
+		case SFX_ITEM_PRESENTATION_COMPLETE:
+			rText = XubString( ResId( RID_SVXSTR_TRANSPARENCE, DIALOG_MGR() ) );
+			rText.AppendAscii(": ");
+		case SFX_ITEM_PRESENTATION_NAMELESS:
+			rText += XubString( UniString::CreateFromInt32((USHORT) GetValue() ));
+			rText += sal_Unicode('%');
+			return ePres;
+		default:
+			return SFX_ITEM_PRESENTATION_NONE;
+	}
+}
+
+//------------------------------
+// class XFormTextShadowTranspItem
+//------------------------------
+TYPEINIT1_AUTOFACTORY(XFormTextShadowTranspItem, SfxUInt16Item);
+=====================================================================
+Found a 9 line (100 tokens) duplication in the following files: 
+Starting at line 94 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/gluepts.cxx
+Starting at line 152 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/unodraw/unonrule.cxx
+
+    virtual void SAL_CALL replaceByIndex( sal_Int32 Index, const uno::Any& Element ) throw(lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException);
+
+	//XIndexAccess
+    virtual sal_Int32 SAL_CALL getCount() throw(uno::RuntimeException) ;
+    virtual uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException);
+
+	//XElementAccess
+    virtual uno::Type SAL_CALL getElementType() throw(uno::RuntimeException);
+    virtual sal_Bool SAL_CALL hasElements() throw(uno::RuntimeException);
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 994 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/toolbars/extrusionbar.cxx
+Starting at line 1155 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/toolbars/extrusionbar.cxx
+
+	int nFinalLevel = -1;
+	bool bHasCustomShape = false;
+
+	for(i=0;i<nCount; i++)
+	{
+		SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
+		if( pObj->ISA(SdrObjCustomShape) )
+		{
+			SdrCustomShapeGeometryItem aGeometryItem( (SdrCustomShapeGeometryItem&)pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) );
+
+			// see if this is an extruded customshape
+			if( !bHasCustomShape )
+			{
+				Any* pAny_ = aGeometryItem.GetPropertyValueByName( sExtrusion, sExtrusion );
+				if( pAny_ )
+					*pAny_ >>= bHasCustomShape;
+
+				if( !bHasCustomShape )
+					continue;
+			}
+
+			double fBrightness = 22178.0 / 655.36;
+=====================================================================
+Found a 10 line (100 tokens) duplication in the following files: 
+Starting at line 1398 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+Starting at line 1472 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdopath.cxx
+
+				if (IsBezier(pU->eAktKind) && nActPoint-pU->nBezierStartPoint>=3 && ((nActPoint-pU->nBezierStartPoint)%3)==0) {
+					rXPoly.PointsToBezier(nActPoint-3);
+					rXPoly.SetFlags(nActPoint-1,XPOLY_CONTROL);
+					rXPoly.SetFlags(nActPoint-2,XPOLY_CONTROL);
+
+					if (nActPoint>=6 && rXPoly.IsControl(nActPoint-4)) {
+						rXPoly.CalcTangent(nActPoint-3,nActPoint-4,nActPoint-2);
+						rXPoly.SetFlags(nActPoint-3,XPOLY_SMOOTH);
+					}
+				}
+=====================================================================
+Found a 7 line (100 tokens) duplication in the following files: 
+Starting at line 2269 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdoedge.cxx
+Starting at line 612 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdogrp.cxx
+
+	Rectangle aOld(GetSnapRect());
+	long nMulX=rRect.Right()-rRect.Left();
+	long nDivX=aOld.Right()-aOld.Left();
+	long nMulY=rRect.Bottom()-rRect.Top();
+	long nDivY=aOld.Bottom()-aOld.Top();
+	if (nDivX==0) { nMulX=1; nDivX=1; }
+	if (nDivY==0) { nMulY=1; nDivY=1; }
+=====================================================================
+Found a 21 line (100 tokens) duplication in the following files: 
+Starting at line 1000 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+Starting at line 1387 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+	SdrHdl::CreateB2dIAObject();
+
+	// create lines
+	if(pHdlList)
+	{
+		SdrMarkView* pView = pHdlList->GetView();
+
+		if(pView && !pView->areMarkHandlesHidden())
+		{
+			SdrPageView* pPageView = pView->GetSdrPageView();
+
+			if(pPageView)
+			{
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 297 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+Starting at line 518 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/gradtrns.cxx
+
+				const basegfx::B2DVector aOldVec(aCenterLeft - aTopLeft);
+				const double fFullLen(aFullVec.getLength());
+				const double fOldLen(aOldVec.getLength());
+				const double fNewBorder((fFullLen * 100.0) / fOldLen);
+				sal_Int32 nNewBorder(100L - FRound(fNewBorder));
+
+				// clip
+				if(nNewBorder < 0L)
+				{
+					nNewBorder = 0L;
+				}
+
+				if(nNewBorder > 100L)
+				{
+					nNewBorder = 100L;
+				}
+
+				// set
+				if(nNewBorder != rG.aGradient.GetBorder())
+				{
+					rG.aGradient.SetBorder((sal_uInt16)nNewBorder);
+				}
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 2057 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+Starting at line 2692 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msocximex.cxx
+
+    fHideSelection = any2bool(rPropSet->getPropertyValue(WW8_ASCII2STR("HideInactiveSelection")));
+    if( fHideSelection )
+        nTemp |= 0x20;
+    *rContents << nTemp;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("BackgroundColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnBackColor;
+	*rContents << ExportColor(mnBackColor);
+	pBlockFlags[0] |= 0x02;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("TextColor"));
+    if (aTmp.hasValue())
+	    aTmp >>= mnForeColor;
+	*rContents << ExportColor(mnForeColor);
+	pBlockFlags[0] |= 0x04;
+
+	aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("Border"));
+=====================================================================
+Found a 13 line (100 tokens) duplication in the following files: 
+Starting at line 2423 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/numpages.cxx
+Starting at line 1783 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/tpline.cxx
+
+            Bitmap aBitmap(pItem->GetGraphic()->GetBitmap());
+            Size aSize(aBitmap.GetSizePixel());
+            if(aSize.Width()  > MAX_BMP_WIDTH ||
+               aSize.Height() > MAX_BMP_HEIGHT)
+            {
+                BOOL bWidth = aSize.Width() > aSize.Height();
+                double nScale = bWidth ?
+                    (double)MAX_BMP_WIDTH / (double)aSize.Width():
+                    (double)MAX_BMP_HEIGHT / (double)aSize.Height();
+                aBitmap.Scale(nScale, nScale);
+            }
+            Image aImage(aBitmap);
+            pPopup->SetItemImage( pBmpInfo->nItemId, aImage );
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 4236 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+Starting at line 4313 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/dialog/cfg.cxx
+
+			    uno::Sequence< beans::PropertyValue > props = info_[ i ];
+
+			    OUString url;
+			    OUString systemname;
+			    OUString uiname;
+
+			    for ( sal_Int32 j = 0; j < props.getLength(); j++ )
+			    {
+				    if ( props[ j ].Name.equalsAscii( ITEM_DESCRIPTOR_RESOURCEURL) )
+				    {
+					    props[ j ].Value >>= url;
+					    systemname = url.copy( url.lastIndexOf( '/' ) + 1 );
+				    }
+				    else if ( props[ j ].Name.equalsAscii( ITEM_DESCRIPTOR_UINAME) )
+				    {
+					    props[ j ].Value >>= uiname;
+				    }
+			    }
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 4293 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+Starting at line 3891 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/msfilter/msashape.cxx
+
+};
+
+static const SvxMSDffVertPair mso_sptFlowChartProcessVert[] =
+{
+	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
+};
+static const mso_CustomShape msoFlowChartProcess =
+{
+	(SvxMSDffVertPair*)mso_sptFlowChartProcessVert, sizeof( mso_sptFlowChartProcessVert ) / sizeof( SvxMSDffVertPair ),
+	NULL, 0,
+	NULL, 0,
+	NULL,
+	NULL, 0,
+	21600, 21600,
+	0x80000000, 0x80000000,
+	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
+=====================================================================
+Found a 28 line (100 tokens) duplication in the following files: 
+Starting at line 1576 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zforfind.cxx
+Starting at line 1820 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/numbers/zforfind.cxx
+
+            nMatchedAllStrings |= nMatchedEndString;
+        else
+            nMatchedAllStrings = 0;
+    }
+
+    SkipBlanks(rString, nPos);
+    if (GetDecSep(rString, nPos))                   // decimal separator?
+    {
+        if (nDecPos == 1 || nDecPos == 3)           // .12.4 or 12.E4.
+            return MatchedReturn();
+        else if (nDecPos == 2)                      // . dup: 12.4.
+        {
+            if (bDecSepInDateSeps)                  // . also date sep
+            {
+                if (    eScannedType != NUMBERFORMAT_UNDEFINED &&
+                        eScannedType != NUMBERFORMAT_DATE &&
+                        eScannedType != NUMBERFORMAT_DATETIME)  // already another type
+                    return MatchedReturn();
+                if (eScannedType == NUMBERFORMAT_UNDEFINED)
+                    eScannedType = NUMBERFORMAT_DATE;   // !!! it IS a date
+                SkipBlanks(rString, nPos);
+            }
+            else
+                return MatchedReturn();
+        }
+        else
+        {
+            nDecPos = 3;                            // . in end string
+=====================================================================
+Found a 14 line (100 tokens) duplication in the following files: 
+Starting at line 1568 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/edit/texteng.cxx
+Starting at line 2701 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/editeng/impedit3.cxx
+
+		else if ( nAttr & EXTTEXTINPUT_ATTR_REDTEXT )
+			rFont.SetColor( Color( COL_RED ) );
+		else if ( nAttr & EXTTEXTINPUT_ATTR_HALFTONETEXT )
+			rFont.SetColor( Color( COL_LIGHTGRAY ) );
+		if ( nAttr & EXTTEXTINPUT_ATTR_HIGHLIGHT )
+		{
+			const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+			rFont.SetColor( rStyleSettings.GetHighlightTextColor() );
+			rFont.SetFillColor( rStyleSettings.GetHighlightColor() );
+			rFont.SetTransparent( FALSE );
+		}
+		else if ( nAttr & EXTTEXTINPUT_ATTR_GRAYWAVELINE )
+		{
+			rFont.SetUnderline( UNDERLINE_WAVE );
+=====================================================================
+Found a 19 line (100 tokens) duplication in the following files: 
+Starting at line 1389 of /local/ooo-build/ooo-build/src/oog680-m3/svtools/source/edit/svmedit.cxx
+Starting at line 1209 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/control/combobox.cxx
+
+	Font aFont = mpImplLB->GetMainWindow()->GetDrawPixelFont( pDev );
+	OutDevType eOutDevType = pDev->GetOutDevType();
+
+	pDev->Push();
+	pDev->SetMapMode();
+	pDev->SetFont( aFont );
+	pDev->SetTextFillColor();
+
+	// Border/Background
+	pDev->SetLineColor();
+	pDev->SetFillColor();
+	BOOL bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
+	BOOL bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+	if ( bBorder || bBackground )
+	{
+		Rectangle aRect( aPos, aSize );
+		// aRect.Top() += nEditHeight;
+		if ( bBorder )
+		{
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 1016 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 1611 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+Point SmEditViewForwarder::LogicToPixel( const Point& rPoint, const MapMode& rMapMode ) const
+{
+	EditView *pEditView = rEditAcc.GetEditView();
+	OutputDevice* pOutDev = pEditView ? pEditView->GetWindow() : 0;
+
+    if( pOutDev )
+    {
+        MapMode aMapMode(pOutDev->GetMapMode());
+        Point aPoint( OutputDevice::LogicToLogic( rPoint, rMapMode,
+                                                  aMapMode.GetMapUnit() ) );
+        aMapMode.SetOrigin(Point());
+        return pOutDev->LogicToPixel( aPoint, aMapMode );
+    }
+
+    return Point();
+}
+
+Point SmEditViewForwarder::PixelToLogic( const Point& rPoint, const MapMode& rMapMode ) const
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 365 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+Starting at line 1885 of /local/ooo-build/ooo-build/src/oog680-m3/starmath/source/accessibility.cxx
+
+sal_Int32 SAL_CALL SmEditAccessible::getBackground()
+    throw (RuntimeException)
+{
+    vos::OGuard aGuard(Application::GetSolarMutex());
+
+    if (!pWin)
+        throw RuntimeException();
+    Wallpaper aWall( pWin->GetDisplayBackground() );
+    ColorData nCol;
+    if (aWall.IsBitmap() || aWall.IsGradient())
+        nCol = pWin->GetSettings().GetStyleSettings().GetWindowColor().GetColor();
+    else
+        nCol = aWall.GetColor().GetColor();
+    return (sal_Int32) nCol;
+}
+
+// XAccessibleContext
+sal_Int32 SAL_CALL SmEditAccessible::getAccessibleChildCount(  )
+=====================================================================
+Found a 17 line (100 tokens) duplication in the following files: 
+Starting at line 133 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/regactivex/regactivex.cxx
+Starting at line 51 of /local/ooo-build/ooo-build/src/oog680-m3/setup_native/source/win32/customactions/tools/checkversion.cxx
+
+BOOL GetMsiProp( MSIHANDLE hMSI, const wchar_t* pPropName, wchar_t** ppValue )
+{
+    DWORD sz = 0;
+   	if ( MsiGetProperty( hMSI, pPropName, L"", &sz ) == ERROR_MORE_DATA )
+   	{
+       	sz++;
+       	DWORD nbytes = sz * sizeof( wchar_t );
+       	wchar_t* buff = reinterpret_cast<wchar_t*>( malloc( nbytes ) );
+       	ZeroMemory( buff, nbytes );
+       	MsiGetProperty( hMSI, pPropName, buff, &sz );
+   		*ppValue = buff;
+
+		return TRUE;
+	}
+
+	return FALSE;
+}
+=====================================================================
+Found a 17 line (100 tokens) duplication in the following files: 
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/unomodule.cxx
+Starting at line 130 of /local/ooo-build/ooo-build/src/oog680-m3/sw/source/ui/uno/unomodule.cxx
+
+SEQUENCE< REFERENCE< XDISPATCH > > SAL_CALL SwUnoModule::queryDispatches( const SEQUENCE< DISPATCHDESCRIPTOR >& seqDescripts ) throw( ::com::sun::star::uno::RuntimeException )
+{
+    sal_Int32 nCount = seqDescripts.getLength();
+    SEQUENCE< REFERENCE< XDISPATCH > > lDispatcher( nCount );
+
+    for( sal_Int32 i=0; i<nCount; ++i )
+    {
+        lDispatcher[i] = queryDispatch( seqDescripts[i].FeatureURL  ,
+                                        seqDescripts[i].FrameName   ,
+                                        seqDescripts[i].SearchFlags );
+    }
+
+    return lDispatcher;
+}
+
+// XDispatchProvider
+REFERENCE< XDISPATCH > SAL_CALL SwUnoModule::queryDispatch( const UNOURL& aURL, const OUSTRING& sTargetFrameName, sal_Int32 eSearchFlags	) throw( RUNTIMEEXCEPTION )
+=====================================================================
+Found a 21 line (100 tokens) duplication in the following files: 
+Starting at line 235 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/animations/motionpathtag.cxx
+Starting at line 1387 of /local/ooo-build/ooo-build/src/oog680-m3/svx/source/svdraw/svdhdl.cxx
+
+	SdrHdl::CreateB2dIAObject();
+
+	// create lines
+	if(pHdlList)
+	{
+		SdrMarkView* pView = pHdlList->GetView();
+
+		if(pView && !pView->areMarkHandlesHidden())
+		{
+			SdrPageView* pPageView = pView->GetSdrPageView();
+
+			if(pPageView)
+			{
+				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
+				{
+					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
+
+					if(rPageWindow.GetPaintWindow().OutputToWindow())
+					{
+						if(rPageWindow.GetOverlayManager())
+						{
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 251 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/prevwsh.cxx
+Starting at line 361 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/view/tabvwsh4.cxx
+
+	ScDocument*			pDoc		= GetViewData()->GetDocument();
+	ScStyleSheetPool*	pStylePool  = pDoc->GetStyleSheetPool();
+	SfxStyleSheetBase*	pStyleSheet = pStylePool->Find(
+										pDoc->GetPageStyle( nCurTab ),
+										SFX_STYLE_FAMILY_PAGE );
+
+	DBG_ASSERT( pStyleSheet, "PageStyle not found :-/" );
+
+	if ( pStyleSheet )
+	{
+		const SfxItemSet&  rSet 	 = pStyleSheet->GetItemSet();
+		const SvxSizeItem& rItem	 = (const SvxSizeItem&)rSet.Get( ATTR_PAGE_SIZE );
+		const Size&		   rPageSize = rItem.GetSize();
+
+		aOptSize.Width()  = (long) (rPageSize.Width()  * GetViewData()->GetPPTX());
+=====================================================================
+Found a 28 line (100 tokens) duplication in the following files: 
+Starting at line 374 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/scdetect.cxx
+Starting at line 296 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/unoidl/sddetect.cxx
+
+                    uno::Reference < embed::XStorage > xStorage = aMedium.GetStorage();
+
+                    //TODO/LATER: move error handling to central place! (maybe even complete own filters)
+                    if ( aMedium.GetLastStorageCreationState() != ERRCODE_NONE )
+					{
+						// error during storage creation means _here_ that the medium
+						// is broken, but we can not handle it in medium since unpossibility
+						// to create a storage does not _always_ means that the medium is broken
+						aMedium.SetError( aMedium.GetLastStorageCreationState() );
+						if ( xInteraction.is() )
+						{
+							OUString empty;
+							try
+							{
+								InteractiveAppException xException( empty,
+																REFERENCE< XInterface >(),
+																InteractionClassification_ERROR,
+																aMedium.GetError() );
+
+								REFERENCE< XInteractionRequest > xRequest(
+									new ucbhelper::SimpleInteractionRequest( makeAny( xException ),
+																	 	 ucbhelper::CONTINUATION_APPROVE ) );
+								xInteraction->handle( xRequest );
+							}
+							catch ( Exception & ) {};
+						}
+					}
+					else
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 86 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chartuno.cxx
+Starting at line 350 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/chartuno.cxx
+
+	if ( pDocShell )
+	{
+		ScDocument* pDoc = pDocShell->GetDocument();
+		ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
+		if (pDrawLayer)
+		{
+			SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
+			DBG_ASSERT(pPage, "Page nicht gefunden");
+			if (pPage)
+			{
+				SdrObjListIter aIter( *pPage, IM_DEEPNOGROUPS );
+				SdrObject* pObject = aIter.Next();
+				while (pObject)
+				{
+					if ( pObject->GetObjIdentifier() == OBJ_OLE2 && pDoc->IsChart(pObject) )
+=====================================================================
+Found a 14 line (100 tokens) duplication in the following files: 
+Starting at line 7156 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+Starting at line 7173 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/unoobj/cellsuno.cxx
+
+void SAL_CALL ScTableSheetObj::copyRange( const table::CellAddress& aDestination,
+										const table::CellRangeAddress& aSource )
+										throw(uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	ScDocShell* pDocSh = GetDocShell();
+	if ( pDocSh )
+	{
+		DBG_ASSERT( aSource.Sheet == GetTab_Impl(), "falsche Tabelle in CellRangeAddress" );
+		ScRange aSourceRange;
+		ScUnoConversion::FillScRange( aSourceRange, aSource );
+		ScAddress aDestPos( (SCCOL)aDestination.Column, (SCROW)aDestination.Row, aDestination.Sheet );
+		ScDocFunc aFunc(*pDocSh);
+		aFunc.MoveBlock( aSourceRange, aDestPos, FALSE, TRUE, TRUE, TRUE );
+=====================================================================
+Found a 17 line (100 tokens) duplication in the following files: 
+Starting at line 653 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/ui/app/scmod.cxx
+Starting at line 744 of /local/ooo-build/ooo-build/src/oog680-m3/sd/source/ui/view/drviewsb.cxx
+
+			rReq.Ignore ();
+		}
+		break;
+
+        case SID_OPEN_XML_FILTERSETTINGS:
+        {
+			try
+			{
+				com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XExecutableDialog > xDialog(::comphelper::getProcessServiceFactory()->createInstance(rtl::OUString::createFromAscii("com.sun.star.comp.ui.XSLTFilterDialog")), com::sun::star::uno::UNO_QUERY);
+				if( xDialog.is() )
+				{
+					xDialog->execute();
+				}
+			}
+			catch( ::com::sun::star::uno::RuntimeException& )
+			{
+			}
+=====================================================================
+Found a 9 line (100 tokens) duplication in the following files: 
+Starting at line 140 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/filter/xml/xmlstyli.cxx
+Starting at line 122 of /local/ooo-build/ooo-build/src/oog680-m3/xmloff/source/style/PageMasterImportPropMapper.cxx
+
+	XMLPropertyState* pAllPaddingProperty = NULL;
+	XMLPropertyState* pPadding[4] = { NULL, NULL, NULL, NULL };
+	XMLPropertyState* pNewPadding[4] = { NULL, NULL, NULL, NULL };
+	XMLPropertyState* pAllBorderProperty = NULL;
+	XMLPropertyState* pBorders[4] = { NULL, NULL, NULL, NULL };
+	XMLPropertyState* pNewBorders[4] = { NULL, NULL, NULL, NULL };
+	XMLPropertyState* pAllBorderWidthProperty = NULL;
+	XMLPropertyState* pBorderWidths[4] = { NULL, NULL, NULL, NULL };
+	XMLPropertyState* pAllHeaderPaddingProperty = NULL;
+=====================================================================
+Found a 9 line (100 tokens) duplication in the following files: 
+Starting at line 67 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/rangeseq.cxx
+Starting at line 123 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/rangeseq.cxx
+
+BOOL ScRangeToSequence::FillDoubleArray( uno::Any& rAny, ScDocument* pDoc, const ScRange& rRange )
+{
+	SCTAB nTab = rRange.aStart.Tab();
+	SCCOL nStartCol = rRange.aStart.Col();
+	SCROW nStartRow = rRange.aStart.Row();
+	long nColCount = rRange.aEnd.Col() + 1 - rRange.aStart.Col();
+	long nRowCount = rRange.aEnd.Row() + 1 - rRange.aStart.Row();
+
+	uno::Sequence< uno::Sequence<double> > aRowSeq( nRowCount );
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 2580 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+Starting at line 2609 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr5.cxx
+
+		{
+			for (k = 0; k < N; k++)
+			{
+				double Yk = pMatY->GetDouble(k);
+				pE->PutDouble( pE->GetDouble(M+1)+Yk*Yk, M+1 );
+				double sumYk = pQ->GetDouble(0, M+1) + Yk;
+				pQ->PutDouble( sumYk, 0, M+1 );
+				pE->PutDouble( sumYk, 0 );
+				for (i = 0; i < M; i++)
+				{
+					double Xki = pMatX->GetDouble(k,i);
+=====================================================================
+Found a 20 line (100 tokens) duplication in the following files: 
+Starting at line 6182 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 6268 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+			fDec = ::rtl::math::approxFloor(GetDoubleWithDefault( 2.0 ));
+			if (fDec < -15.0 || fDec > 15.0)
+			{
+				SetIllegalArgument();
+				return;
+			}
+		}
+		else
+			fDec = 2.0;
+		double fVal = GetDouble();
+		double fFac;
+		if ( fDec != 0.0 )
+			fFac = pow( (double)10, fDec );
+		else
+			fFac = 1.0;
+		if (fVal < 0.0)
+			fVal = ceil(fVal*fFac-0.5)/fFac;
+		else
+			fVal = floor(fVal*fFac+0.5)/fFac;
+		Color* pColor = NULL;
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 1135 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+Starting at line 1189 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/tool/interpr1.cxx
+
+	nFuncFmtType = NUMBERFORMAT_LOGICAL;
+    switch ( GetStackType() )
+    {
+        case svMatrix :
+        {
+            ScMatrixRef pMat = GetMatrix();
+            if ( !pMat )
+                PushError();
+            else
+            {
+                SCSIZE nC, nR;
+                pMat->GetDimensions( nC, nR );
+                ScMatrixRef pResMat = GetNewMat( nC, nR);
+                if ( !pResMat )
+                    PushError();
+                else
+                {
+                    SCSIZE nCount = nC * nR;
+                    for ( SCSIZE j=0; j<nCount; ++j )
+                    {
+                        if ( pMat->IsValueOrEmpty(j) )
+                            pResMat->PutDouble( (pMat->GetDouble(j) == 0.0), j );
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 1112 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+Starting at line 1408 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/dpobject.cxx
+
+		long nHierarchy = ScUnoHelpFunctions::GetLongProperty( xDimProp,
+								rtl::OUString::createFromAscii(DP_PROP_USEDHIERARCHY) );
+		if ( nHierarchy >= xHiers->getCount() )
+			nHierarchy = 0;
+
+		uno::Reference<uno::XInterface> xHier = ScUnoHelpFunctions::AnyToInterface(
+									xHiers->getByIndex(nHierarchy) );
+		uno::Reference<sheet::XLevelsSupplier> xHierSupp( xHier, uno::UNO_QUERY );
+		if ( xHierSupp.is() )
+		{
+			uno::Reference<container::XIndexAccess> xLevels = new ScNameToIndexAccess( xHierSupp->getLevels() );
+=====================================================================
+Found a 17 line (100 tokens) duplication in the following files: 
+Starting at line 1976 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/document.cxx
+Starting at line 2033 of /local/ooo-build/ooo-build/src/oog680-m3/sc/source/core/data/document.cxx
+
+		SCROW nEndRow = aArea.aEnd.Row();
+
+		SCTAB nCount = GetTableCount();
+		for (SCTAB i=0; i<nCount; i++)
+			if ( i!=nSrcTab && pTab[i] && rMark.GetTableSelect(i) )
+			{
+				if (bDoMix)
+				{
+					if (!pMixDoc)
+					{
+						pMixDoc = new ScDocument( SCDOCMODE_UNDO );
+						pMixDoc->InitUndo( this, i, i );
+					}
+					else
+						pMixDoc->AddUndoTab( i, i );
+					pTab[i]->CopyToTable( nStartCol,nStartRow, nEndCol,nEndRow,
+											IDF_CONTENTS, TRUE, pMixDoc->pTab[i], &rMark );
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 353 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/t_cipher.c
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/sal/workben/t_cipher.c
+
+			OSL_ASSERT(arcfour_out[length] == 0);
+		}
+
+		n = arcfour_data_len[3];
+		for (i = 1; i < n; i++)
+		{
+			length = i;
+
+			result = rtl_cipher_init (
+				cipher, rtl_Cipher_DirectionBoth,
+				&(arcfour_key[3][1]), arcfour_key[3][0], 0, 0);
+			OSL_ASSERT(result == rtl_Cipher_E_None);
+
+			memset (arcfour_out, 0, sizeof(arcfour_out));
+			result = rtl_cipher_encode (
+				cipher, &(arcfour_data[3][0]), length,
+=====================================================================
+Found a 27 line (100 tokens) duplication in the following files: 
+Starting at line 337 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertbig5hkscs.c
+Starting at line 558 of /local/ooo-build/ooo-build/src/oog680-m3/sal/textenc/convertiso2022cn.c
+
+    for (; nConverted < nSrcChars; ++nConverted)
+    {
+        sal_Bool bUndefined = sal_True;
+        sal_uInt32 nChar = *pSrcBuf++;
+        if (nHighSurrogate == 0)
+        {
+            if (ImplIsHighSurrogate(nChar))
+            {
+                nHighSurrogate = (sal_Unicode) nChar;
+                continue;
+            }
+        }
+        else if (ImplIsLowSurrogate(nChar))
+            nChar = ImplCombineSurrogates(nHighSurrogate, nChar);
+        else
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (ImplIsLowSurrogate(nChar) || ImplIsNoncharacter(nChar))
+        {
+            bUndefined = sal_False;
+            goto bad_input;
+        }
+
+        if (nChar == 0x0A || nChar == 0x0D) /* LF, CR */
+=====================================================================
+Found a 27 line (100 tokens) duplication in the following files: 
+Starting at line 372 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OString.cxx
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/sal/qa/rtl_strings/rtl_OUString.cxx
+
+    sal_Int32 i;
+
+    for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
+    {
+        sal_Bool lastRes =
+            ( arrTestCase[i].input1->equals(*(arrTestCase[i].input2)) ==  
+              arrTestCase[i].expVal );
+
+        c_rtl_tres_state
+            (
+                hRtlTestResult,
+                lastRes,
+                arrTestCase[i].comments,
+                createName( pMeth, "equals", i )
+                );
+
+        res &= lastRes;
+    }
+    c_rtl_tres_state_end( hRtlTestResult, "equals"); 
+//    return (res);
+}
+
+//------------------------------------------------------------------------
+// testing the method equalsIgnoreAsciiCase( const OString & aStr )
+//------------------------------------------------------------------------
+
+extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUString_equalsIgnoreAsciiCase(
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 156 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/ttcr.c
+Starting at line 170 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/ttcr.c
+
+_inline void PutUInt16(sal_uInt16 val, sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+{
+    assert(ptr != 0);
+
+    if (bigendian) {
+        ptr[offset] = (sal_uInt8)((val >> 8) & 0xFF);
+        ptr[offset+1] = (sal_uInt8)(val & 0xFF);
+    } else {
+        ptr[offset+1] = (sal_uInt8)((val >> 8) & 0xFF);
+        ptr[offset] = (sal_uInt8)(val & 0xFF);
+    }
+
+}
+
+
+_inline void PutUInt32(sal_uInt32 val, sal_uInt8 *ptr, sal_uInt32 offset, int bigendian)
+=====================================================================
+Found a 8 line (100 tokens) duplication in the following files: 
+Starting at line 3258 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/sft.c
+Starting at line 3285 of /local/ooo-build/ooo-build/src/oog680-m3/psprint/source/fontsubset/sft.c
+
+    sal_uInt16 glyphArray[] = { 0,  6711,  6724,  11133,  11144, 14360, 26,  27,  28,  29, 30, 31, 1270, 1289, 34};
+    sal_uInt8 encoding[]     = {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46};
+    int r;
+
+    if ((r = OpenTTFont(av[1], 0, &fnt)) != SF_OK) {
+        fprintf(stderr, "Error %d opening font file: `%s`.\n", r, av[1]);
+        return 0;
+    }
+=====================================================================
+Found a 32 line (100 tokens) duplication in the following files: 
+Starting at line 326 of /local/ooo-build/ooo-build/src/oog680-m3/idlc/source/preproc/eval.c
+Starting at line 292 of /local/ooo-build/ooo-build/src/oog680-m3/soltools/cpp/_eval.c
+
+                if (rnd == 0)
+                {
+                    if (tp->type == MINUS)
+                        *op++ = UMINUS;
+                    if (tp->type == STAR || tp->type == AND)
+                    {
+                        error(ERROR, "Illegal operator * or & in #if/#elsif");
+                        return 0;
+                    }
+                    continue;
+                }
+                /* flow through */
+
+                /* plain binary */
+            case EQ:
+            case NEQ:
+            case LEQ:
+            case GEQ:
+            case LSH:
+            case RSH:
+            case LAND:
+            case LOR:
+            case SLASH:
+            case PCT:
+            case LT:
+            case GT:
+            case CIRC:
+            case OR:
+            case QUEST:
+            case COLON:
+            case COMMA:
+                if (rnd == 0)
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 216 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+Starting at line 806 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/source/gdi/fontcvt.cxx
+
+             0,         0,         0,         0,
+    // F0d0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0e0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+    // F0f0
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0,
+             0,         0,         0,         0
+=====================================================================
+Found a 7 line (100 tokens) duplication in the following files: 
+Starting at line 38 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 939 of /local/ooo-build/ooo-build/src/oog680-m3/i18nutil/source/utility/unicode_data.h
+
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7000 - 77ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7800 - 7fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8000 - 87ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8800 - 8fff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9000 - 97ff
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9800 - 9fff
+    0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, // a000 - a7ff
+=====================================================================
+Found a 5 line (100 tokens) duplication in the following files: 
+Starting at line 37 of /local/ooo-build/ooo-build/src/oog680-m3/i18npool/source/indexentry/data/indexdata_alphanumeric.h
+Starting at line 39 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/asw_curs.h
+
+static char asw_curs_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x70,0x38,0x00,0x00,0x78,0x7c,0x00,0x00,
+=====================================================================
+Found a 6 line (100 tokens) duplication in the following files: 
+Starting at line 405 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+Starting at line 411 of /local/ooo-build/ooo-build/src/oog680-m3/hwpfilter/source/lexer.cpp
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0
+=====================================================================
+Found a 23 line (100 tokens) duplication in the following files: 
+Starting at line 466 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/office/OfficeFilePicker.cxx
+Starting at line 687 of /local/ooo-build/ooo-build/src/oog680-m3/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+
+sal_Bool SalGtkFilePicker::FilterNameExists( const UnoFilterList& _rGroupedFilters )
+{
+	sal_Bool bRet = sal_False;
+
+	if( m_pFilterList )
+	{
+		const UnoFilterEntry* pStart = _rGroupedFilters.getConstArray();
+		const UnoFilterEntry* pEnd = pStart + _rGroupedFilters.getLength();
+		for( ; pStart != pEnd; ++pStart )
+			if( m_pFilterList->end() != ::std::find_if( 
+						m_pFilterList->begin(),
+						m_pFilterList->end(),
+						FilterTitleMatch( pStart->First ) ) )
+				break;
+
+		bRet = pStart != pEnd;
+	}
+
+	return bRet;
+}
+
+//------------------------------------------------------------------------------------
+void SalGtkFilePicker::ensureFilterList( const ::rtl::OUString& _rInitialCurrentFilter )
+=====================================================================
+Found a 5 line (100 tokens) duplication in the following files: 
+Starting at line 450 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/imgprod.cxx
+Starting at line 522 of /local/ooo-build/ooo-build/src/oog680-m3/forms/source/component/imgprod.cxx
+
+		for( pCons = maConsList.First(); pCons; pCons = maConsList.Next() )
+			aTmp.Insert( new ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > ( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer > *) pCons ), LIST_APPEND );
+
+		// iterate through interfaces
+		for( pCons = aTmp.First(); pCons; pCons = aTmp.Next() )
+=====================================================================
+Found a 10 line (100 tokens) duplication in the following files: 
+Starting at line 136 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/xmlfilterdetect/filterdetect.cxx
+Starting at line 84 of /local/ooo-build/ooo-build/src/oog680-m3/writerperfect/source/wpdimp/WordPerfectImportFilter.cxx
+
+using rtl::OUString;
+using com::sun::star::uno::Sequence;
+using com::sun::star::uno::Reference;
+using com::sun::star::uno::Any;
+using com::sun::star::uno::UNO_QUERY;
+using com::sun::star::uno::XInterface;
+using com::sun::star::uno::Exception;
+using com::sun::star::uno::RuntimeException;
+using com::sun::star::lang::XMultiServiceFactory;
+using com::sun::star::beans::PropertyValue;
+=====================================================================
+Found a 14 line (100 tokens) duplication in the following files: 
+Starting at line 655 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/svg/svgaction.cxx
+Starting at line 477 of /local/ooo-build/ooo-build/src/oog680-m3/filter/source/svg/svgwriter.cxx
+
+	FastString					aPathData;
+	const NMSP_RTL::OUString	aBlank( B2UCONST( " " ) );
+	const NMSP_RTL::OUString	aComma( B2UCONST( "," ) );
+	Point						aPolyPoint;
+
+	for( long i = 0, nCount = rPolyPoly.Count(); i < nCount; i++ )
+	{
+		const Polygon&	rPoly = rPolyPoly[ (USHORT) i ];
+		USHORT			n = 1, nSize = rPoly.GetSize();
+
+		if( nSize > 1 )
+		{
+			aPathData += B2UCONST( "M " );
+			aPathData += GetValueString( ( aPolyPoint = rPoly[ 0 ] ).X() );
+=====================================================================
+Found a 24 line (100 tokens) duplication in the following files: 
+Starting at line 134 of /local/ooo-build/ooo-build/src/oog680-m3/extensions/source/activex/main/SOActiveX.cpp
+Starting at line 143 of /local/ooo-build/ooo-build/src/oog680-m3/odk/examples/OLE/activex/SOActiveX.cpp
+
+	HRESULT hr = CoCreateInstance( clsFactory, NULL, CLSCTX_ALL, __uuidof(IDispatch), (void**)&mpDispFactory);
+
+    mPWinClass.style			= CS_HREDRAW|CS_VREDRAW; 
+    mPWinClass.lpfnWndProc		= ::DefWindowProc; 
+    mPWinClass.cbClsExtra		= 0; 
+    mPWinClass.cbWndExtra		= 0; 
+    mPWinClass.hInstance		= (HINSTANCE) GetModuleHandle(NULL); //myInstance; 
+    mPWinClass.hIcon			= NULL; 
+    mPWinClass.hCursor			= NULL; 
+    mPWinClass.hbrBackground	= (HBRUSH) COLOR_BACKGROUND; 
+    mPWinClass.lpszMenuName	    = NULL; 
+    mPWinClass.lpszClassName	= STAROFFICE_WINDOWCLASS;
+
+	RegisterClass(&mPWinClass);
+}
+
+CSOActiveX::~CSOActiveX()
+{
+	Cleanup();
+
+}
+
+HRESULT CSOActiveX::Cleanup()
+{
+=====================================================================
+Found a 13 line (100 tokens) duplication in the following files: 
+Starting at line 160 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+Starting at line 1472 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/olepersist.cxx
+Starting at line 177 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/msole/xdialogcreator.cxx
+
+	uno::Sequence< beans::PropertyValue > aObjArgs( aInObjArgs );
+
+#ifdef WNT
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 412 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+Starting at line 568 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+				const uno::Sequence< beans::PropertyValue >& /* lArguments */,
+				const uno::Sequence< beans::PropertyValue >& /* lObjArgs */ )
+		throw ( lang::IllegalArgumentException,
+				embed::WrongStateException,
+				io::IOException,
+				uno::Exception,
+				uno::RuntimeException )
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	CheckInit();
+
+	if ( m_bWaitSaveCompleted )
+		throw embed::WrongStateException(
+					::rtl::OUString::createFromAscii( "The object waits for saveCompleted() call!\n" ),
+					uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 332 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+=====================================================================
+Found a 13 line (100 tokens) duplication in the following files: 
+Starting at line 283 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 438 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/xcreator.cxx
+
+		if ( !xStorage.is() )
+			throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+												uno::Reference< uno::XInterface >(
+													static_cast< ::cppu::OWeakObject* >(this) ),
+												3 );
+
+		if ( !sEntName.getLength() )
+			throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+												uno::Reference< uno::XInterface >(
+													static_cast< ::cppu::OWeakObject* >(this) ),
+												4 );
+
+		uno::Reference< embed::XLinkCreator > xLinkCreator(
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+Starting at line 357 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/dummyobject.cxx
+
+		throw lang::DisposedException(); // TODO
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+=====================================================================
+Found a 12 line (100 tokens) duplication in the following files: 
+Starting at line 215 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/specialobject.cxx
+Starting at line 74 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/visobj.cxx
+
+	::osl::MutexGuard aGuard( m_aMutex );
+	if ( m_bDisposed )
+		throw lang::DisposedException(); // TODO
+
+	OSL_ENSURE( nAspect != embed::Aspects::MSOLE_ICON, "For iconified objects no graphical replacement is required!\n" );
+	if ( nAspect == embed::Aspects::MSOLE_ICON )
+		// no representation can be retrieved
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "Illegal call!\n" ),
+									uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ) );
+
+	if ( m_nObjectState == -1 )
+		throw embed::WrongStateException( ::rtl::OUString::createFromAscii( "The own object has no persistence!\n" ),
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 950 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 1771 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+
+	if ( !m_bIsLink || m_nObjectState == -1 )
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 948 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/persistence.cxx
+Starting at line 106 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/commonembedding/xfactory.cxx
+
+	RTL_LOGFILE_CONTEXT( aLog, "embeddedobj (mv76033) OOoEmbeddedObjectFactory::createInstanceInitFromEntry" );
+
+	if ( !xStorage.is() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "No parent storage is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											1 );
+
+	if ( !sEntName.getLength() )
+		throw lang::IllegalArgumentException( ::rtl::OUString::createFromAscii( "Empty element name is provided!\n" ),
+											uno::Reference< uno::XInterface >( static_cast< ::cppu::OWeakObject* >(this) ),
+											2 );
+=====================================================================
+Found a 4 line (100 tokens) duplication in the following files: 
+Starting at line 46 of /local/ooo-build/ooo-build/src/oog680-m3/dtrans/source/X11/nodrop_curs.h
+Starting at line 45 of /local/ooo-build/ooo-build/src/oog680-m3/vcl/unx/source/inc/aswe_mask.h
+
+ 0x00,0x00,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 252 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/services/autocorrmigration.cxx
+Starting at line 239 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/migration/services/basicmigration.cxx
+
+    void BasicMigration::initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException)
+    {
+        ::osl::MutexGuard aGuard( m_aMutex );
+
+        const Any* pIter = aArguments.getConstArray();
+        const Any* pEnd = pIter + aArguments.getLength();
+        for ( ; pIter != pEnd ; ++pIter )
+        {
+            beans::NamedValue aValue;
+            *pIter >>= aValue;
+            if ( aValue.Name.equalsAscii( "UserData" ) )
+            {
+                if ( !(aValue.Value >>= m_sSourceDir) )
+                {
+                    OSL_ENSURE( false, "BasicMigration::initialize: argument UserData has wrong type!" );
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 310 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/deployment/gui/dp_gui_cmdenv.cxx
+Starting at line 277 of /local/ooo-build/ooo-build/src/oog680-m3/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
+
+        const Reference<deployment::XPackage> xPackage(
+            wtExc.Context, UNO_QUERY );
+        OSL_ASSERT( xPackage.is() );
+        if (xPackage.is()) {
+            const Reference<deployment::XPackageTypeInfo> xPackageType(
+                xPackage->getPackageType() );
+            OSL_ASSERT( xPackageType.is() );
+            if (xPackageType.is()) {
+                approve = (xPackage->isBundle() &&
+                           xPackageType->getMediaType().matchAsciiL(
+                               RTL_CONSTASCII_STRINGPARAM(
+                                   "application/"
+                                   "vnd.sun.star.legacy-package-bundle") ));
+            }
+        }
+        abort = !approve;
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 162 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/ConnectionHelper.cxx
+Starting at line 165 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/ui/dlg/ConnectionPage.cxx
+
+typedef void*				HWND;
+typedef void*				HMENU;
+typedef void*				HDC;
+#ifndef _SV_SYSDATA_HXX
+#include <vcl/sysdata.hxx>
+#endif
+#ifndef _DBAUI_ADO_DATALINK_HXX_
+#include "adodatalinks.hxx"
+#endif
+#endif //_ADO_DATALINK_BROWSE_
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+	using namespace ::com::sun::star::uno;
+	using namespace ::com::sun::star::ucb;
+	using namespace ::com::sun::star::ui::dialogs;
+	using namespace ::com::sun::star::sdbc;
+	using namespace ::com::sun::star::beans;
+	using namespace ::com::sun::star::lang;
+	using namespace ::com::sun::star::container;
+	using namespace ::dbtools;
+=====================================================================
+Found a 19 line (100 tokens) duplication in the following files: 
+Starting at line 161 of /local/ooo-build/ooo-build/src/oog680-m3/dbaccess/source/core/dataaccess/intercept.cxx
+Starting at line 203 of /local/ooo-build/ooo-build/src/oog680-m3/embeddedobj/source/general/intercept.cxx
+
+			uno::Sequence< beans::PropertyValue > aNewArgs = Arguments;
+			sal_Int32 nInd = 0;
+
+			while( nInd < aNewArgs.getLength() )
+			{
+				if ( aNewArgs[nInd].Name.equalsAscii( "SaveTo" ) )
+				{
+					aNewArgs[nInd].Value <<= sal_True;
+					break;
+				}
+				nInd++;
+			}
+			
+			if ( nInd == aNewArgs.getLength() )
+			{
+				aNewArgs.realloc( nInd + 1 );
+				aNewArgs[nInd].Name = ::rtl::OUString::createFromAscii( "SaveTo" );
+				aNewArgs[nInd].Value <<= sal_True;
+			}
+=====================================================================
+Found a 19 line (100 tokens) duplication in the following files: 
+Starting at line 65 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/env_tester/purpenv.test.cxx
+Starting at line 121 of /local/ooo-build/ooo-build/src/oog680-m3/cppu/test/env_tester/purpenv.test.cxx
+
+		g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("s_freeFunc"));
+		
+		rtl::OUString reason;
+		int valid = g_env.isValid(&reason);
+		
+		g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("["));
+		g_comment += rtl::OUString::valueOf((sal_Int32)valid);
+		g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(","));
+		g_comment += reason;
+		g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]"));
+
+		if (!valid)
+			g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE"));
+
+		g_comment += g_usret;
+	}
+}}
+
+static rtl::OUString s_test_registerProxyInterface(rtl::OUString const & envDcp)
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 376 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/hsqldb/HDriver.cxx
+Starting at line 336 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/mysql/YDriver.cxx
+
+        return Sequence< DriverPropertyInfo >(&aDriverInfo[0],aDriverInfo.size()); 
+	}
+
+	//--------------------------------------------------------------------
+	sal_Int32 SAL_CALL ODriverDelegator::getMajorVersion(  ) throw (RuntimeException)
+	{
+		return 1;
+	}
+
+	//--------------------------------------------------------------------
+	sal_Int32 SAL_CALL ODriverDelegator::getMinorVersion(  ) throw (RuntimeException)
+	{
+		return 0;
+	}
+	
+	//--------------------------------------------------------------------
+	Reference< XTablesSupplier > SAL_CALL ODriverDelegator::getDataDefinitionByConnection( const Reference< XConnection >& connection ) throw (SQLException, RuntimeException)
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(ODriverDelegator_BASE::rBHelper.bDisposed);
+
+		Reference< XTablesSupplier > xTab;
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 702 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 974 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/jdbc/JStatement.cxx
+
+	Property* pProperties = aProps.getArray();
+	sal_Int32 nPos = 0;
+	DECL_PROP0(CURSORNAME,	::rtl::OUString);
+	DECL_BOOL_PROP0(ESCAPEPROCESSING);
+	DECL_PROP0(FETCHDIRECTION,sal_Int32);
+	DECL_PROP0(FETCHSIZE,	sal_Int32);
+	DECL_PROP0(MAXFIELDSIZE,sal_Int32);
+	DECL_PROP0(MAXROWS,		sal_Int32);
+	DECL_PROP0(QUERYTIMEOUT,sal_Int32);
+	DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
+	DECL_PROP0(RESULTSETTYPE,sal_Int32);
+	DECL_BOOL_PROP0(USEBOOKMARKS);
+
+	return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
+// -------------------------------------------------------------------------
+::cppu::IPropertyArrayHelper & java_sql_Statement_Base::getInfoHelper()
+=====================================================================
+Found a 29 line (100 tokens) duplication in the following files: 
+Starting at line 183 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/ado/AStatement.cxx
+Starting at line 234 of /local/ooo-build/ooo-build/src/oog680-m3/connectivity/source/drivers/odbc/OStatement.cxx
+
+}
+// -------------------------------------------------------------------------
+
+void SAL_CALL OStatement_Base::close(  ) throw(SQLException, RuntimeException)
+{
+	{
+		::osl::MutexGuard aGuard( m_aMutex );
+		checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+	}
+	dispose();
+}
+// -------------------------------------------------------------------------
+
+void SAL_CALL OStatement::clearBatch(  ) throw(SQLException, RuntimeException)
+{
+
+}
+// -------------------------------------------------------------------------
+
+void OStatement_Base::reset() throw (SQLException)
+{
+	::osl::MutexGuard aGuard( m_aMutex );
+	checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+
+
+	clearWarnings ();
+
+	if (m_xResultSet.get().is())
+=====================================================================
+Found a 11 line (100 tokens) duplication in the following files: 
+Starting at line 463 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/backend/binaryreader.cxx
+Starting at line 503 of /local/ooo-build/ooo-build/src/oog680-m3/configmgr/source/backend/binaryreader.cxx
+
+			result.n = sal_uInt64(
+				(sal_uInt64(pData[0]) << 56) |
+				(sal_uInt64(pData[1]) << 48) |
+				(sal_uInt64(pData[2]) << 40) |
+				(sal_uInt64(pData[3]) << 32) |
+				(sal_uInt64(pData[4]) << 24) |
+				(sal_uInt64(pData[5]) << 16) |
+				(sal_uInt64(pData[6]) <<  8) |
+				(sal_uInt64(pData[7]) <<  0)   );
+
+			return result.d;
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 3114 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+Starting at line 3248 of /local/ooo-build/ooo-build/src/oog680-m3/codemaker/source/cppumaker/cpputype.cxx
+
+		for (sal_uInt16 i=0; i < fieldCount; i++)
+		{
+			access = m_reader.getFieldFlags(i);
+			
+			if (access == RT_ACCESS_CONST || access == RT_ACCESS_INVALID)
+				continue;
+
+			fieldName = rtl::OUStringToOString(
+                m_reader.getFieldName(i), RTL_TEXTENCODING_UTF8);
+			fieldType = rtl::OUStringToOString(
+                m_reader.getFieldTypeName(i), RTL_TEXTENCODING_UTF8);
+		
+			if (superHasMember)
+				o << ", ";
+			else
+				superHasMember = sal_True;
+				
+			dumpType(o, fieldType, sal_True, sal_True);	
+//			o << " __" << fieldName;
+			o << " " << fieldName << "_";
+		}		
+		o << ") SAL_THROW( () )\n";
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 93 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+Starting at line 190 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/view/axes/VPolarCoordinateSystem.cxx
+
+void VPolarCoordinateSystem::createGridShapes()
+{
+    if(!m_xLogicTargetForGrids.is() || !m_xFinalTarget.is() )
+        return;
+
+    sal_Int32 nDimensionCount = m_xCooSysModel->getDimension();
+    bool bSwapXAndY = this->getPropertySwapXAndYAxis();
+
+    for( sal_Int32 nDimensionIndex=0; nDimensionIndex<3; nDimensionIndex++)
+    {
+        sal_Int32 nAxisIndex = MAIN_AXIS_INDEX;
+
+        Reference< XAxis > xAxis( AxisHelper::getAxis( nDimensionIndex, nAxisIndex, m_xCooSysModel ) );
+        if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, m_xCooSysModel ))
+            continue;
+=====================================================================
+Found a 3 line (100 tokens) duplication in the following files: 
+Starting at line 125 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx
+Starting at line 107 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx
+
+void WrappedStockProperty::setPropertyValue( const ::com::sun::star::uno::Any& rOuterValue, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& /*xInnerPropertySet*/ ) const
+                throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+=====================================================================
+Found a 16 line (100 tokens) duplication in the following files: 
+Starting at line 307 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx
+Starting at line 304 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx
+
+uno::Sequence< uno::Any > SAL_CALL UpDownBarWrapper::getPropertyValues( const uno::Sequence< ::rtl::OUString >& rNameSeq )
+                    throw (uno::RuntimeException)
+{
+    Sequence< Any > aRetSeq;
+    if( rNameSeq.getLength() )
+    {
+        aRetSeq.realloc( rNameSeq.getLength() );
+        for(sal_Int32 nN=0; nN<rNameSeq.getLength(); nN++)
+        {
+            ::rtl::OUString aPropertyName( rNameSeq[nN] );
+            aRetSeq[nN] = this->getPropertyValue( aPropertyName );
+        }
+    }
+    return aRetSeq;
+}
+void SAL_CALL UpDownBarWrapper::addPropertiesChangeListener( const uno::Sequence< ::rtl::OUString >& /* aPropertyNames */, const uno::Reference< beans::XPropertiesChangeListener >& /* xListener */ )
+=====================================================================
+Found a 27 line (100 tokens) duplication in the following files: 
+Starting at line 287 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/LegendWrapper.cxx
+Starting at line 211 of /local/ooo-build/ooo-build/src/oog680-m3/chart2/source/controller/chartapiwrapper/TitleWrapper.cxx
+
+        ::std::vector< beans::Property > aProperties;
+        lcl_AddPropertiesToVector( aProperties );
+        ::chart::CharacterProperties::AddPropertiesToVector( aProperties );
+        ::chart::LineProperties::AddPropertiesToVector( aProperties );
+        ::chart::FillProperties::AddPropertiesToVector( aProperties );
+//         ::chart::NamedProperties::AddPropertiesToVector( aProperties );
+        ::chart::UserDefinedProperties::AddPropertiesToVector( aProperties );
+
+        // and sort them for access via bsearch
+        ::std::sort( aProperties.begin(), aProperties.end(),
+                     ::chart::PropertyNameLess() );
+
+        // transfer result to static Sequence
+        aPropSeq = ::chart::ContainerHelper::ContainerToSequence( aProperties );
+    }
+
+    return aPropSeq;
+}
+
+} // anonymous namespace
+
+// --------------------------------------------------------------------------------
+
+namespace chart
+{
+namespace wrapper
+{
+=====================================================================
+Found a 22 line (100 tokens) duplication in the following files: 
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+Starting at line 343 of /local/ooo-build/ooo-build/src/oog680-m3/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+
+                    *(void **)pRegisterReturn = pCallStack[1];
+                    eRet = typelib_TypeClass_ANY;
+                    break;
+                }
+                TYPELIB_DANGER_RELEASE( pTD );
+            }
+		} // else perform queryInterface()
+		default:
+			eRet = cpp2uno_call(
+				pCppI, aMemberDescr.get(),
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
+				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
+				pCallStack, pRegisterReturn );
+		}
+		break;
+	}
+	default:
+	{
+		throw RuntimeException(
+            rtl::OUString::createFromAscii("no member description found!"),
+            (XInterface *)pThis );
+=====================================================================
+Found a 13 line (100 tokens) duplication in the following files: 
+Starting at line 724 of /local/ooo-build/ooo-build/src/oog680-m3/basctl/source/basicide/scriptdocument.cxx
+Starting at line 210 of /local/ooo-build/ooo-build/src/oog680-m3/scripting/source/basprov/basprov.cxx
+
+                        ::rtl::OUString aScheme = xUriRef->getScheme();
+                        if ( aScheme.equalsIgnoreAsciiCaseAscii( "file" ) )
+                        {
+                            aFileURL = aLinkURL;
+                        }
+                        else if ( aScheme.equalsIgnoreAsciiCaseAscii( "vnd.sun.star.pkg" ) )
+                        {
+                            ::rtl::OUString aAuthority = xUriRef->getAuthority();
+                            if ( aAuthority.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "vnd.sun.star.expand:" ) ) )
+                            {
+                                ::rtl::OUString aDecodedURL( aAuthority.copy( sizeof ( "vnd.sun.star.expand:" ) - 1 ) );
+                                aDecodedURL = ::rtl::Uri::decode( aDecodedURL, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
+                                Reference<util::XMacroExpander> xMacroExpander( 
+=====================================================================
+Found a 18 line (100 tokens) duplication in the following files: 
+Starting at line 3212 of /local/ooo-build/ooo-build/src/oog680-m3/automation/source/server/statemnt.cxx
+Starting at line 2703 of /local/ooo-build/ooo-build/src/oog680-m3/basic/source/runtime/methods.cxx
+
+						INT16 nCurFlags = pRTLData->nDirFlags;
+						if( (nCurFlags == Sb_ATTR_NORMAL)
+						  && !(nFlags & ( _A_HIDDEN | _A_SYSTEM | _A_VOLID | _A_SUBDIR ) ) )
+							break;
+						else if( (nCurFlags & Sb_ATTR_HIDDEN) && (nFlags & _A_HIDDEN) )
+							break;
+						else if( (nCurFlags & Sb_ATTR_SYSTEM) && (nFlags & _A_SYSTEM) )
+							break;
+						else if( (nCurFlags & Sb_ATTR_VOLUME) && (nFlags & _A_VOLID) )
+							break;
+						else if( (nCurFlags & Sb_ATTR_DIRECTORY) && (nFlags & _A_SUBDIR) )
+							break;
+					}
+	#else
+					break;
+	#endif
+				}
+			}
+=====================================================================
+Found a 15 line (100 tokens) duplication in the following files: 
+Starting at line 79 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/display/idl/hfi_navibar.cxx
+Starting at line 129 of /local/ooo-build/ooo-build/src/oog680-m3/autodoc/source/display/idl/hfi_navibar.cxx
+
+HF_IdlNavigationBar::Produce_CeXrefsMainRow( const client & i_ce )
+{
+    HF_NaviMainRow
+                aNaviMain( CurOut() );
+
+    StreamLock  aLink(500);
+    StreamStr & rLink = aLink();
+
+    Env().Get_LinkTo( rLink.reset(),
+					  Env().OutputTree().Overview() );
+    aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+    Env().Get_LinkTo( rLink.reset(),
+					  Env().Linker().PositionOf_CurModule() );
+    aNaviMain.Add_StdItem( C_sModule, rLink.c_str() );
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/stat-localizations.txt
+++ openoffice.org-2.4.1/ooo-build/doc/stat-localizations.txt
@@ -0,0 +1,118 @@
+The script bin/stat-localizations tries to find some poor localizations.
+
+The numbers show how many strings differ from the English localization. That's 
+why the en-US localization has 0% and and en-GB has 7% resp. 10%.
+
+Note that there is no localizations with 100%. There are many international
+strings that are not translated. Then again some things marked translatable
+are really not eg.'#VALUE!' in Calc.
+
+
+Here is the statistic taken from Novell build (2 May, 2006):
+
+Locale:af	ui:92%		help:0%
+Locale:ar	ui:85%		help:0%
+Locale:be-BY	ui:85%		help:0%
+Locale:ca	ui:91%		help:0%
+Locale:cy	ui:88%		help:0%
+Locale:en-US	ui:0%		help:0%
+Locale:fi	ui:92%		help:0%
+Locale:gu-IN	ui:60%		help:0%
+Locale:hi-IN	ui:56%		help:0%
+Locale:lt	ui:93%		help:0%
+Locale:nb	ui:92%		help:0%
+Locale:nn	ui:91%		help:0%
+Locale:pa-IN	ui:58%		help:0%
+Locale:pt	ui:59%		help:0%
+Locale:st	ui:96%		help:0%
+Locale:ts	ui:96%		help:0%
+Locale:xh	ui:96%		help:0%
+Locale:zu	ui:93%		help:0%
+Locale:sr-CS	ui:92%		help:2%
+Locale:vi	ui:86%		help:2%
+Locale:en-GB	ui:7%		help:10%
+Locale:rw	ui:88%		help:11%
+Locale:tr	ui:95%		help:11%
+Locale:el	ui:90%		help:12%
+Locale:hr	ui:88%		help:14%
+Locale:mk	ui:94%		help:24%
+Locale:sk	ui:91%		help:28%
+Locale:sl	ui:93%		help:31%
+Locale:bg	ui:91%		help:32%
+Locale:zh-CN	ui:31%		help:64%
+Locale:zh-TW	ui:31%		help:65%
+Locale:et	ui:92%		help:66%
+Locale:km	ui:39%		help:74%
+Locale:ko	ui:45%		help:75%
+Locale:ja	ui:72%		help:86%
+Locale:cs	ui:87%		help:91%
+Locale:hu	ui:92%		help:91%
+Locale:pl	ui:92%		help:92%
+Locale:ru	ui:89%		help:92%
+Locale:da	ui:91%		help:93%
+Locale:fr	ui:90%		help:93%
+Locale:pt-BR	ui:94%		help:93%
+Locale:sv	ui:93%		help:93%
+Locale:de	ui:93%		help:94%
+Locale:nl	ui:93%		help:94%
+Locale:it	ui:92%		help:95%
+Locale:es	ui:95%		help:96%
+
+Note that many localizations were updated from the GSI sources that can be
+found at
+ftp://ftp.linux.cz/pub/localization/OpenOffice.org/devel/build/Files/OOB680
+The statistic is based on GSI files grabbed at 20 January, 2006.
+
+
+Here is the statistic taken from Novell build (3 Nov, 2006):
+
+Locale:af       ui:90%          help:0%
+Locale:ca       ui:91%          help:0%
+Locale:cy       ui:87%          help:4%
+Locale:fi       ui:91%          help:4%
+Locale:lt       ui:92%          help:4%
+Locale:sr-CS    ui:90%          help:6%
+Locale:vi       ui:84%          help:6%
+Locale:tr       ui:93%          help:9%
+Locale:rw       ui:86%          help:15%
+Locale:el       ui:89%          help:17%
+Locale:hr       ui:86%          help:18%
+Locale:nn       ui:91%          help:25%
+Locale:nb       ui:92%          help:30%
+Locale:sk       ui:91%          help:30%
+Locale:mk       ui:96%          help:34%
+Locale:bg       ui:91%          help:44%
+Locale:hi-IN    ui:56%          help:51%
+Locale:sl       ui:93%          help:84%
+
+Here is the statistic taken from Novell build of ooo-build-2.1.3 (5 Feb, 2007):
+
+Locale:af       ui:90%          help:0%
+Locale:ar       ui:83%          help:0%
+Locale:bn-IN    ui:0%           help:0%
+Locale:bn       ui:5%           help:0%
+Locale:ca       ui:92%          help:0%
+Locale:mr-IN    ui:52%          help:0%
+Locale:nb       ui:92%          help:0%
+Locale:nn       ui:91%          help:0%
+Locale:xh       ui:93%          help:0%
+Locale:zu       ui:91%          help:0%
+Locale:gu-IN    ui:61%          help:3%
+Locale:ta-IN    ui:40%          help:4%
+Locale:fi       ui:93%          help:5%
+Locale:hi-IN    ui:55%          help:51%
+Locale:zh-CN    ui:31%          help:64%
+Locale:zh-TW    ui:31%          help:65%
+Locale:ja       ui:72%          help:86%
+Locale:cs       ui:87%          help:91%
+Locale:hu       ui:92%          help:91%
+Locale:ru       ui:89%          help:91%
+Locale:da       ui:91%          help:93%
+Locale:fr       ui:90%          help:93%
+Locale:pl       ui:93%          help:93%
+Locale:pt-BR    ui:94%          help:93%
+Locale:sv       ui:93%          help:93%
+Locale:de       ui:92%          help:94%
+Locale:it       ui:92%          help:95%
+Locale:nl       ui:93%          help:95%
+Locale:es       ui:95%          help:96%
--- openoffice.org-2.4.1.orig/ooo-build/doc/symbol-font.txt
+++ openoffice.org-2.4.1/ooo-build/doc/symbol-font.txt
@@ -0,0 +1,33 @@
+Some overview docs. on symbol problems
+
+    The overall strategy with bullets / symbols is this:
+
+    1. user creates a bullet with a font that exists eg. opensymbol.
+    2. on save to MS format map known symbols to the "symbol"
+       font for maximum interoperability
+    3. on load keep the "symbol" font associated with bullets (which
+       causes the selector to behave strangely), and map this back
+       to opensymbol each time we render to the screen.
+
+    In addition to this, there is a special 'Symbol' textencoding
+which differs per symbol font, but provides an extra piece of markup
+information. The code involved in these stages is:
+
+* Mapping on MS export
+
+    sw/filter/source/ww8/wrtw8num.cxx (SubstituteBullet):
+	calls CreateStarSymbolToMSMultiFont
+    vcl/source/gdi/fontcvt.cxx (StarSymbolToMSMultiFont) class
+	this does various splitting / mapping stuff for export.
+
+* Mapping on render
+
+    vcl/source/gdi/fontcvt.cxx (ImplRecodeString)
+	the outdev3.cxx font engine decides which font to map eg.
+	"symbol" to, and then calls ImplGetRecodeData, which builds
+	an ImplCvtChar structure, containing pointers to character
+	re-location tables for that font mapping.
+
+* Symbol textencoding
+
+    cf. RTL_TEXTENCONDING_SYMBOL and code in sal/textenc.
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/excel-formcontrols-import-export-notes.txt
+++ openoffice.org-2.4.1/ooo-build/doc/excel-formcontrols-import-export-notes.txt
@@ -0,0 +1,97 @@
+form control objects imported by
+
+XclImpTbxControlObj
+
+
+where 
+
+XclImpControlObjHelper
+     /|\ 
+      |
+XclImpDrawObjBase
+     /|\ 
+      |
+XclImpDrawingObj
+     /|\ 
+      |
+XclImpTbxControlObj
+
+key methods are 
+o CreateSdrObject - factory to create the correct 'type' of object
+o DoProcessObj -    object specific processing e.g. for shape, control, note etc.
+
+XclImpTbxControlObj::DoProcessSdrObj()  xiescher.cxx:943
+XclImpDrawObjBase::ProcessSdrObject () xiescher.cxx:561
+XclImpDffManager::ProcessObj() xiescher.cxx:1779 - note: after processing the object t is inserted into the solver container, there is a map between the shapeId and the SdrObject - useful I guess for postprocessing
+SvxMSDffManager::ImportShape() msdffimp.cxx:5425 - imports the shape e.g. size, position, font specifics etc. it also calls XclImpDffManager::ProcessObj() at xiescher.cxx:1681
+  XclImpDffManager::ProcessObj() calls XclImpDffManager::CreateCustomSdrObject() which calls XclImpDffManager::CreateSdrObject() 
+SvxMSDffManager::ImportObj () msdffimp.cxx:4657 - calls appropriate sub processing importShape or importGroup
+XclImpDffManager::ProcessShContainer () at xiescher.cxx:1927 - imports the object
+XclImpDffManager::ProcessShGrContainer() at xiescher.cxx:1895 this fellow then loops for the DFF_msofbtSpgrContainer reading each record ( shape )
+XclImpDffManager::ProcessDgContainer () at xiescher.cxx:1869  - called in a loop, depending on the record ( DFF_msofbtSolverContainer or DFF_msofbtSpgrContainer ) a ProcessSolverContainer or ProcessShGrContainer call is made
+
+XclImpDffManager::ProcessDrawing() - called once per tab
+
+XclImpTbxControlObj ( and other subclasses of XclImpDrawObjBase are created by XclImpDrawObjBase::ReadObjCmo ( static ) called by the objectmanager
+
+The bones of the object ( formcontrol ) specific import happens in XclImpTbxControlObj::ReadSubRecord() where local variables are populated. The next stage is when XclImpTbxControlObj::DoProcessSdrObj is called. At the point the info stored by the local variables ( things like state, control name etc. ) are set on the uno object via the XPropertySet associated with the imported control. Access to the XPropertySet is given by XclImpControlObjHelper:: GetControlPropSet()
+
+Export
+======
+
+XclImpTbxControlObj(s) are all created before exporting  ( so there is some chance to tweak them )
+
+#0  XclExpTbxControlObj (this=0x8a2b280, rRoot=@0x8916580, xShape=@0xbfbbcdf4) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/xeescher.cxx:341
+#1  0xb1801e72 in XclExpOcxConverter::CreateCtrlObj (this=0x8916558, xShape=@0xbfbbce4c) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/xlocx.cxx:335
+#2  0xb1817162 in XclEscherEx::StartShape (this=0x89164a8, rShape=@0xbfbbd238) at /data4/CWS/npower10/src680-m241/sc/source/filter/xcl97/xcl97esc.cxx:253
+#3  0xb0c521fe in ImplEESdrWriter::ImplWriteShape (this=0x89e0374, rObj=@0xbfbbd238, rSolverContainer=@0x8a28f38, ePageType=NORMAL) at /data4/CWS/npower10/src680-m241/svx/source/msfilter/eschesdo.cxx:255
+#4  0xb0c55da2 in ImplEESdrWriter::ImplWritePage (this=0x89e0374, rSolverContainer=@0x8a28f38, ePageType=NORMAL) at /data4/CWS/npower10/src680-m241/svx/source/msfilter/eschesdo.cxx:990
+#5  0xb0c55e22 in ImplEscherExSdr::ImplWriteCurrentPage (this=0x89e0370) at /data4/CWS/npower10/src680-m241/svx/source/msfilter/eschesdo.cxx:1082
+#6  0xb0c55e62 in EscherEx::AddSdrPage (this=0x89164a8, rPage=@0x86a4aa0) at /data4/CWS/npower10/src680-m241/svx/source/msfilter/eschesdo.cxx:1101
+#7  0xb1816a0b in XclEscher::AddSdrPage (this=0x89c7938, rRoot=@0x8a230dc) at /data4/CWS/npower10/src680-m241/sc/source/filter/xcl97/xcl97esc.cxx:409
+#8  0xb16802ad in ExcTable::FillAsTable (this=0x8a230d8, nCodeNameIdx=0) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/excdoc.cxx:377
+#9  0xb16821d9 in ExcDocument::ReadDoc (this=0x8928220) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/excdoc.cxx:488
+#10 0xb169dde3 in ExportBiff5::Write (this=0xbfbbd648) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/expop2.cxx:115
+#11 0xb16859fa in ScExportExcel5 (rMedium=@0x8916710, pDocument=0x85fed28, bBiff8=1 '\001', eNach=1) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/excel.cxx:252
+
+ImplEESdrWriter::ImplWritePage() - write shapes on a page
+{
+    ImplEESdrWriter::ImplWriteShape() - writes a shape
+    {
+        strange is seems to have a local shape id ( ahh used when called recusively )
+        it also handles (recursively of course ) some group related foo ( that I don't understand )
+        ExlEscherEx::StartShape() creates the ExcExpTbxControl object, there seems to be some support for grouping ( via pumping info in pCurrAppData [ XclEscherHostAppData ] & pCurrXclObj [ XclObjAny ] into a stack 
+            pCurrAppData is pumped with various data 
+               * Anchor data
+               * ClientTextbox etc. 
+    )
+
+}
+
+
+saving the subRecords is triggered from
+
+#0  XclExpTbxControlObj::WriteSubRecs (this=0x8aead70, rStrm=@0x8acfa98) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/xeescher.cxx:588
+#1  0xb181dab5 in XclObj::WriteBody (this=0x8aead70, rStrm=@0xbfbbd434) at /data4/CWS/npower10/src680-m241/sc/source/filter/xcl97/xcl97rec.cxx:461
+#2  0xb17246df in XclExpRecord::Save (this=0x8aead70, rStrm=@0xbfbbd434) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/xerecord.cxx:89
+#3  0xb1819418 in XclObj::Save (this=0x8aead70, rStrm=@0xbfbbd434) at /data4/CWS/npower10/src680-m241/sc/source/filter/xcl97/xcl97rec.cxx:481
+#4  0xb1819a1e in XclObjList::Save (this=0x8ac7c30, rStrm=@0xbfbbd434) at /data4/CWS/npower10/src680-m241/sc/source/filter/xcl97/xcl97rec.cxx:365
+#5  0xb1682aee in XclExpRecordList<XclExpRecordBase>::Save (this=0x8ac7bf8, rStrm=@0xbfbbd434) at ../inc/xerecord.hxx:281
+#6  0xb167f307 in ExcTable::Write (this=0x8ac7be8, rStr=@0xbfbbd434) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/excdoc.cxx:452
+#7  0xb167f46c in ExcDocument::Write (this=0x8ad30b8, rSvStrm=@0x8ab39f0) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/excdoc.cxx:534
+#8  0xb169ddfb in ExportBiff5::Write (this=0xbfbbd648) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/expop2.cxx:116
+#9  0xb16859fa in ScExportExcel5 (rMedium=@0x8ab2458, pDocument=0x8818bc8, bBiff8=1 '\001', eNach=1) at /data4/CWS/npower10/src680-m241/sc/source/filter/excel/excel.cxx:252
+#10 0xb10bbbf2 in ScDocShell::ConvertTo (this=0x8818b90, rMed=@0x8ab2458) at
+
+
+basically ExcDocument has member maTableList which stores Table ( sheet ) records, e.g.
+
+maTableList.GetRecord( nTab )->Write( aXclStrm );
+
+where each ExcTable has a list of (objects) to write XclExpTbxControlObj(s) are all created before exporting  ( so there is some chance to tweak them )
+
+these tables are filled ( as per where the XclExpTbxControlObj(s) are all created above ) e.g. from 
+ExcDocument::ReadDoc ()
+   creates a ExcTable for each tab, and calls ExcTable::FillAsTable for each of those
+ExcTable::FillAsTable ()
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/calc-optional.txt
+++ openoffice.org-2.4.1/ooo-build/doc/calc-optional.txt
@@ -0,0 +1,106 @@
+Improve tests:
+    + bugs
+	+ Trailing ocMissing problems:
+	    + allow ocMissing ocSep ocMissing ocClose etc.
+	      at end of fn. [ without an error (!) ]
+	    + for nParamCount
+		+ elide trailing optional params (?)
+		  [ or not ? ]
+		+ what about functions with trailing optionals ?
+		    + behave differently if vararg ? lbound/ubound ?
+	    + trailing ocMissing
+		+ elide trailers on XML export
+
+    + tests
+	+ add missing argument to end of (normal) optional arg
+	  function, that doesn't assume '0' default [?]
+	    + [ or - better, elide extra ';'s only down to min(nargs) ]
+	+ export / add missing ops into formulae where XL does
+	  not allow them to be entered / re-import to XL & test.
+	+ round-trip to XL ...
+
+    + Do we get an 'svMissing' / 'ocMissing' between
+      'ocSep' from the parser ? [ if empty ? (or just ocSpace ?) ]
+
+#if 0
+        {   // #84460# May occur if imported from Xcl.
+            // The real value for missing parameters depends on the function
+            // where it is used, interpreter would have to handle this.
+            // If it does remove this error case here, that could also be the
+            // time to generate ocMissing in between subsequent ocSep.
+            // Xcl import should map missings to values if possible.
+            SetError( errParameterExpected );
+        }
+#endif
+
++ interpr1.cxx 'GetDBParams' - missing ?
+	+ explicit svMissing handling (!?) ...
+
++ interpr4.cxx:
+	+ ScInterpreter::PopDouble() - seems to handle svMissing
+	+ also PopString
+
+(gdb) bt
+#0  ScCompiler::SetError (this=0xbff77644, nError=508) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:1088
+#1  0xa1cbfa83 in ScCompiler::Factor (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3052
+#2  0xa1cc000f in ScCompiler::UnionCutLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3166
+#3  0xa1cc016b in ScCompiler::UnaryLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3190
+#4  0xa1cc017f in ScCompiler::PostOpLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3197
+#5  0xa1cc01dd in ScCompiler::PowLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3209
+#6  0xa1cc0263 in ScCompiler::MulDivLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3223
+#7  0xa1cc031b in ScCompiler::AddSubLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3237
+#8  0xa1cc03d3 in ScCompiler::ConcatLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3251
+#9  0xa1cc0459 in ScCompiler::CompareLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3265
+#10 0xa1cc0511 in ScCompiler::NotLine (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3279
+#11 0xa1cc05dd in ScCompiler::Expression (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:3300
+#12 0xa1cc0837 in ScCompiler::CompileTokenArray (this=0xbff77644) at /data/OpenOffice/ood680-m4/sc/source/core/tool/compiler.cxx:2782
+
+re-factor eOp >= ... inline-functions 'isFunction(eOp)' [ or whatever ]
+
+
+Factor::3052:
+
+    + detects fn start
+    + iterates over args
+	+ NextToken()
+	    - odd semantic
+	+ Expression
+	    - PutCode's a full expression ?
+		+ via NotLine (?) ... [ cf. above ]
+	    + -> UnaryLine
+
+* Where to hack the compiler
+
+    CompileString:
+
+    + ScCompiler::IsOpCode - catches ';' & generates ocSep
+	+ need to spew a double op-code from it (?)
+	+ where is this inserted ?
+
+		if( eLastOp == ocSep &&
+			pRawToken->GetOpCode() == ocSep )
+		{
+			fprintf( stderr, "Add ocMissing before sep\n");
+			// FIXME: should we check for known functions with
+			// optional args so the correction dialog can do better ?
+			ScRawToken aMissingToken;
+			aMissingToken.SetOpCode( ocMissing );
+			if ( !pArr->AddToken( aMissingToken ) )
+			{
+				fprintf (stderr, "Error adding ocMissing\n");
+				SetError(errCodeOverflow); break;
+			}
+		}
+
+excform.cxx:
+	// #84453# skip missing parameters at end of parameter list
+	while( (nSkipEnd < nLast) && aPool.IsSingleOp( eParam[ nSkipEnd + 1 ], ocMissing ) )
+
+xeformula.cxx:
+        /*  #i37355# insert tMissArg token for missing parameters --
+            Excel import filter adds ocMissing token (handled in Factor()),
+            but Calc itself does not do this if a new formula is entered. */
+        switch( aTokData.GetOpCode() )
+        {
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/link.txt
+++ openoffice.org-2.4.1/ooo-build/doc/link.txt
@@ -0,0 +1,3015 @@
+	+ Accelerating startup:
+	    + svt #1 offender: 2841 -> 1136 [ remove sRTF, sHTML ]
+	    + svx - #2 - 2655 [ of which 2015, _ZTV (700), _ZTI (700), _ZTS(600) ] 
+	    + sw - #3 - 2290 [ only 723 are class/types ], [ 600 sRTF/sHTML ]
+		+ Lots of: _ZN13SfxUInt32Item10StaticTypeEv ~ 100 instances.
+		+ Lots of: _ZN19SfxStatusBarControl24RegisterStatusBarControlEP9SfxModuleP17SfxStbCtrlFactory
+	    + icui18n - not using -Bsymb-functions (or vtrelocs?) ...
+	    + sb - lots of _ZVTR_ exports
+	    + configmgr
+		+ most odd ! - why are we resolving these globally !?
+		    + eg. _ZTIN9configmgr7backend11PropertyAddE
+		+ is that what we want !? :-) [ no! ]
+		    + can we add the '-Wbind-...' stuff only for libraries
+		      without .def files [ !? :-]
+
+
+Linker hacking:
+	+ LD hacks ?
+		+ LD_WEAKMAP=lib... 
+		+ instant relocations if not in there (?)
+			+ much reduced lookup penalty
+			+ much warmer cache (?)
+			+ might be useful.
+		+ 
+	+ objcopy - nearest thing to what we want in binutils.
+		+ special code to keep symbols with relocations ...
+			--prune-relocs = <true> ...
+		+ libbfd
+			+ seems not to bother with dynamic relocs (!?)
+			+ API for setting / removing them falls down ?
+		+ use native elf bits ?
+		+ write simpler separate code to massage it ?
+		    + add a 'weak library' thing full of weak symbols
+
+	+ elf code - (libelf?)
+	    + read all relocations,
+	    + uniqify all symbols
+		    + remove duplicate / weak symbols
+		    + do we need to even read the symbol tables ?
+	    + either
+		    + tag them as such in syms
+		    + or elide them from the table (built-in relocs?)
+	    + perl [?]
+
+	+ stub-map
+		+ 1 symbol - .out: 660 .so 1236 (stripped)
+		+ 2 symbol - .out: 688 .so 1324 (stripped)
+		+ 32 syms  - .out: 1605 .so 2440 (stripped)
+		+ exrapolate; 10k syms == 744k [ at least !]
+
+	+ Loads of (weak?) symbols, very few necessary
+		+ Duplicates: 9328 of total 93569
+	+ re-write the relocations [!]
+
+
+	+ TODO:
+	    + dig into SdrObject:: symbols.
+
+	+ What does the 'info' field contain
+	    + 'weak-ness' hint ?
+
+	+ Relocation processing 50-70% of the time ...
+
+	  ELF_DYNAMIC_DO_REL ((map), edr_lazy);
+	  ->  _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, _ELF_CHECK_REL)
+
+	    * ELF_MACHINE_PLTREL_OVERLAP - not defined for i386
+		+ the .lazy - code / data range (?)
+
+	for (ranges_index = 0; ranges_index < 2; ++ranges_index)	      \
+	  elf_dynamic_do_##reloc ((map),				      \
+				  ranges[ranges_index].start,		      \
+				  ranges[ranges_index].size,		      \
+				  ranges[ranges_index].lazy);		      \
+      }									      \
+	+ No relocation processing - only PLT processing can be lazy.
+
+	    + thousands of calls to elf_dynamic_do_reloc
+		+ 
+
+       + libsvx - 65k relocations ...
+		+ symbol analysis:
+			+ 1357 'vtable'
+			+ 4400 'non-virtual thunk'
+		+ Type analysis:
+			+  1200 - R_386_RELATIVE
+			+  5600 - R_386_GLOB_DAT
+			+ 12600 - R_386_JUMP_SLOT
+			+ 47100 - R_386_32
+
+		Relocation section '.rel.dyn' contains 53848 entries:
+
+SvxLineSpacingItem::GetPresentation(SfxItemPresentation, SfxMapUnit, SfxMapUnit, String&, IntlWrapper const*) const
+
+
+	+ Thunks: - multiple inheritance 'This' adjustors:
+	    + http://www.usenix.org/publications/library/proceedings/c++94/full_papers/baumgartner.a
+	    + http://66.102.9.104/search?q=cache:ayKhh8VT-DsJ:www.research.att.com/~bs/performanceTR.pdf+%22non-virtual%22+thunk+rational&hl=en
+
+	+ Only functions can be lazy linked ...
+	    + all pointers to global variables, functions etc.
+		+ must be resolved at link time.
+
+	* we do cache relocations, such that symbol lookups are reduced
+	* however - the symbol lookup scope contains duplicates [!?]
+	    + potentially two scopes ?
+	* can we resolve if a relocation is to
+	    + a weak or strong symbol in advance ?
+		+ could look up in our own table 1st and work it out (?)
+	    + what is a relocation ? ;-)
+	    + this reloc is an: R_386_32
+		    + 47k of them are R_386_32 relocs.
+
+
+
+       libsvx - 65k relocations ...
+    248 ZNK6Window7GetTextEv
+    250 ZN6Window4MoveEv
+    262 ZN6Window8ActivateEv
+    264 ZN6Window10DeactivateEv
+    264 ZN6Window5KeyUpERK8KeyEvent
+    265 ZN6Window9UserEventEmPv
+    266 ZN6Window12GetClipboardEv
+    266 ZN6Window12GetSelectionEv
+    266 ZN6Window13GetDragSourceEv
+    266 ZN6Window13GetDropTargetEv
+    266 ZN6Window21GetComponentInterfaceEh
+    266 ZN6Window21SetComponentInterfaceEN3com3sun4star3uno9ReferenceINS2_3awt11XWindowPeerEEE
+    266 ZN6Window24GetDragGestureRecognizerEv
+    266 ZNK6Window17GetParentLabelForEPKS_
+    266 ZNK6Window18GetParentLabeledByEPKS_
+    274 ZN11SfxPoolItem12ScaleMetricsEll
+    274 ZNK11SfxPoolItem10HasMetricsEv
+    281 ZNK11SfxPoolItem10GetVersionEt
+    321 ZNK11SfxPoolItem7CompareERKS_RK11IntlWrapper
+    342 ZNK11SfxPoolItem10GetVersionEv
+    342 ZNK11SfxPoolItem5StoreER8SvStream
+   1006 _cxa_pure_virtual
+
+
+       Looks like the re-location processing is horribly slow
+	    + lots of these relocations are for the same symbol (adjcently)
+		    + are we caching those lookups [!?]
+
+      5283:	 total time ('libfwl645li.so'):      0:130947 flags 0x101
+       5283:	  dl_open_worker fresh2 'libwrp645li.so' 1097237469:960576
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' before map deps 1097237469:960965
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' after map deps 1097237469:963210
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' before relocate 1097237469:963390
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libj645li_g.so' 1097237469:963425
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libxcr645li.so' 1097237469:964026
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libxo645li.so' 1097237469:996123
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libgo645li.so' 1097237470:204004
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libsb645li.so' 1097237470:217921
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libfwe645li.so' 1097237470:283186
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libsfx645li.so' 1097237470:309325
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libsvx645li.so' 1097237470:519584
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libofa645li.so' 1097237471:289441
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libso645li.so' 1097237471:317938
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' relocate './libwrp645li.so' 1097237471:368879
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' after relocate 1097237471:372310
+      5283:	       5283:	  dl_open_worker 'libwrp645li.so' after bump open count 1097237471:374122
+      5283:	       5283:	  dl_open_worker end 'libwrp645li.so' 1097237471:374201
+      5283:	 total time ('libwrp645li.so'):      1:544618 flags 0x101
+
+
+    + dl-open.c (dl_open_worker):
+	-> dl-reloc.c (_dl_relocate_object)
+	   -> dynamic-link.h etc.
+#0  _dl_lookup_symbol_x (undef_name=Variable "undef_name" is not available.
+) at dl-lookup.c:233
+#1  0x4000a3e4 in _dl_relocate_object (l=0x81a7e20, scope=0x81a7fc0, lazy=1, consider_profiling=0) at dl-machine.h:426
+#2  0x413ff8b7 in dl_open_worker (a=0xbfffc690) at dl-open.c:322
+    ie. lazy == 1 - but still doing lots of symbol lookups (?)
+	[ debug relocs ]
+
+	dl-machine.h uses the 'RESOLVE*' macros to do lookups,
+	from (inlined) elf_machine_rel* function.
+
+	ELF_DYNAMIC_RELOCATE(...)
+	    -> elf_machine_runtime_setup() ...
+	    -> ELF_DYNAMIC_DO_REL()	   \ must do lots of chewing
+	    -> ELF_DYNAMIC_DOR_RELA()	   /
+
+	do-rel.h (elf_dynamic_do_rel)
+	    + does most of the work ...
+
+Doing a 'full' make - it seems big chunks are included in libc:
+      dl-open.c etc.
+
+       make -C .. objdir=`pwd` -C elf subdir_lib
+
+    include/link.h: linker structures.
+
+struct link_map
+    - describes a loaded shared object;
+    has lots of struct r_scope_elem 
+
+core:
+    do-lookup.h (do_lookup_x)
+	+ looks through a single scope (list of link maps
+	  / libraries) for a symbol.
+
+    dl-lookup.c (_dl_lookup_symbol_x)
+	+ passed a NULL terminated array of
+	  scopes (4th arg)
+
+    callers:
+	dl-reloc.c (RESOLVE, RESOLVE_MAP)
+	dl-rtld.c
+	    + (dl_main): debugging code
+	    + (struct: .dl_lookup_symbol_x) - hook
+	dl-runtime.c
+	    + (profile_fixup) - profiling only
+	    + (fixup) - the real entry point
+		        called per PLT entry via.
+			the trampoline.
+	dl-open.c
+	    + _dl_open_worker - _Loads_ of OO.o linkage calls from here.
+
+
+	dl-deps.c (_dl_map_object_deps)
+	    + builds the dep list we want into l_searchlist
+		+ only seems to work for dlopened' stuff.
+		    ( & deps )
+	    + called from:
+		+ rtld _dl_map_object_deps vtable
+    
+const ElfW(Sym) *sym = &symtab[ELFW(R_SYM) (reloc->r_info)];
+	+ our local symbol info:
+
+elf/elf.h:
+
+typedef struct
+{
+  Elf32_Word	st_name;		/* Symbol name (string tbl index) */
+  Elf32_Addr	st_value;		/* Symbol value */
+  Elf32_Word	st_size;		/* Symbol size */
+  unsigned char	st_info;		/* Symbol type and binding */
+  unsigned char	st_other;		/* Symbol visibility */
+  Elf32_Section	st_shndx;		/* Section index */
+} Elf32_Sym;
+
+
+st_info: 
+
+/* Legal values for ST_BIND subfield of st_info (symbol binding).  */
+
+#define STB_LOCAL	0		/* Local symbol */
+#define STB_GLOBAL	1		/* Global symbol */
+#define STB_WEAK	2		/* Weak symbol */
+#define	STB_NUM		3		/* Number of defined types.  */
+#define STB_LOOS	10		/* Start of OS-specific */
+#define STB_HIOS	12		/* End of OS-specific */
+#define STB_LOPROC	13		/* Start of processor-specific */
+#define STB_HIPROC	15		/* End of processor-specific */
+    
+#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
+
+if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
+
+_dl_lookup_symbol_skip (...)
+	+ only looks at objects loaded after
+	  the described object - pretty pants, but better.
+
+
+fixup:
+    passed 'link_map' l -> scope
+    Have Sym *symtab; & local sym; ie. can:
+
+    if (ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
+       ... do something fast ...
+
+    switch (l->l_info[VERSYMIDX (DT_VERSYM)] != NULL) {
+	   is or is not versioned ...
+	      [ versioned symbols can be dog slow too ]
+    }
+
+    Passes l->l_scope for _both_ methods.
+	+ l_searchlist (?) - DT_NEEDED dependencies & their deps in order :-)
+	    + ... looks ideal ... [ dependency order ? ]
+
+
+LD_DEBUG=<anything but reloc> stops 'fixup' being called;
+    + also stops things working nastily.
+
+
+
+Relocation processing:
+
+     5524:       dl_open_worker 'libwrp645li.so' relocate './libsvx645li.so' 1097239792:994007
+      5524:            5524:    symbol=_ZNK11SfxPoolItem5StoreER8SvStream; nurk lookup in file=./soffice.newlink
+      5524:     symbol=_ZNK11SfxPoolItem5StoreER8SvStream; nurk lookup in file=./libvcl645li.so
+      5524:     symbol=_ZNK11SfxPoolItem5StoreER8SvStream; nurk lookup in file=./libsvl645li.so
+      5524:     symbol=_ZNK11SfxPoolItem10GetVersionEv; nurk lookup in file=./soffice.newlink
+      5524:     symbol=_ZNK11SfxPoolItem10GetVersionEv; nurk lookup in file=./libvcl645li.so
+      5524:     symbol=_ZNK11SfxPoolItem10GetVersionEv; nurk lookup in file=./libsvl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./soffice.newlink
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libvcl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvt645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libutl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libtl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcomphelp3gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucbhelper2gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libvos3gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcppuhelpergcc3.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcppu.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsal.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libtk645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXext.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libSM.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libICE.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libX11.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libdl.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libpthread.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libm.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libstlport_gcc.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libstdc++.so.5
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/chroot/lib/libc.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsot645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libicuuc.so.22
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libicule.so.22
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libfreetype.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libz.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libart_lgpl_2.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgnomevfs-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libbonobo-activation.so.4
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libORBit-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgmodule-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgthread-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libglib-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsalhelpergcc3.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/chroot/lib/ld.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libgcc_s.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libicudata.so.22
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgconf-2.so.4
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libbonobo-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libxml2.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libssl.so.0.9.7
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libcrypto.so.0.9.7
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/librt.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libORBitCosNaming-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgobject-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libpopt.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/servicemgr.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/shlibloader.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/shlibloader.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/simplereg.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/nestedreg.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/typemgr.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/implreg.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/security.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/regtypeprov.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcfgmgr2.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./typeconverter.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./sax.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./streams.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libspl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/gtk-2.0/engines/libindustrial.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgtk-x11-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgdk-x11-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libatk-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgdk_pixbuf-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpangoxft-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpangox-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpango-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXrandr.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXi.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXft.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXrender.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libfontconfig.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpangoft2-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libexpat.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucb1.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libfwl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libfwi645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucpfile1.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucpgvfs1.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libwrp645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libutl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvt645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libso645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsot645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libvos3gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libofa645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvx645li.so
+
+
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./soffice.newlink
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libvcl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvl645li.so
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvt645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libutl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libtl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcomphelp3gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucbhelper2gcc3.so
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libvos3gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcppuhelpergcc3.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcppu.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsal.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libtk645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXext.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libSM.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libICE.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libX11.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libdl.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libpthread.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libm.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libstlport_gcc.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libstdc++.so.5
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/chroot/lib/libc.so.6
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsot645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libicuuc.so.22
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libicule.so.22
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libfreetype.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libz.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libart_lgpl_2.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgnomevfs-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libbonobo-activation.so.4
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libORBit-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgmodule-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgthread-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libglib-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsalhelpergcc3.so.3
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/chroot/lib/ld.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libgcc_s.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libicudata.so.22
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgconf-2.so.4
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libbonobo-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libxml2.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libssl.so.0.9.7
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libcrypto.so.0.9.7
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/librt.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libORBitCosNaming-2.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgobject-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libpopt.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/servicemgr.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/shlibloader.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/simplereg.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/nestedreg.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/typemgr.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/implreg.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/security.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/regtypeprov.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcfgmgr2.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./typeconverter.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./sax.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./streams.uno.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libspl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/gtk-2.0/engines/libindustrial.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgtk-x11-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgdk-x11-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libatk-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgdk_pixbuf-2.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpangoxft-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpangox-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpango-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXrandr.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXi.so.6
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXft.so.2
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXrender.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libfontconfig.so.1
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpangoft2-1.0.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libexpat.so.0
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucb1.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libfwl645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libfwi645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucpfile1.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucpgvfs1.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libwrp645li.so
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libutl645li.so
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvt645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libso645li.so
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsot645li.so
+**      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libvos3gcc3.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libofa645li.so
+      5524:     symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvx645li.so
+
+      5524:     symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./soffice.newlink
+      5524:     symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./libvcl645li.so
+      5524:     symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./libsvl645li.so
+      5524:     symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./libsvt645li.so
+...
+
+
+* glibc/
+    + dl-reloc.c
+	+ _dl_relocate_object ...
+    + where are copy relocs processed ?
+
+    + build & get glibc testing working - go around a devel
+      iteration & make it work nicely
+    + use the 'gcc --with-linker' thing ? [ somehow ? ]
+	+ and LD_LIBRARY_PATH etc.
+
+
+* re-diff glibc
+* re-diff binutils
+* ... get gcc patched & working (!) ... *
+
+
+* re-apply 'revert.diff' ?
+
+* FIXME: lost elf-vtreloc.c [!] ...
+
+
+(gdb) finish
+Run till exit from #0  call_init (l=0xb7f222e8, argc=1, argv=0xbf93c964, env=0xbf93c96c) at dl-init.c:74
+_dl_init (main_map=0xb7f3e660, argc=1, argv=0xbf93c964, env=0xbf93c96c) at dl-init.c:133
+133       while (i-- > 0)
+(gdb) p i
+$2 = 7
+(gdb) n
+134         call_init (main_map->l_initfini[i], argc, argv, env);
+(gdb) s
+0x080486f0 in __do_global_dtors_aux ()
+(gdb) s
+Single stepping until exit from function __do_global_dtors_aux, 
+which has no line number information.
+0x08048787 in __i686.get_pc_thunk.bx ()
+(gdb) s
+Single stepping until exit from function __i686.get_pc_thunk.bx, 
+which has no line number information.
+0x080486f9 in __do_global_dtors_aux ()
+(gdb) s
+Single stepping until exit from function __do_global_dtors_aux, 
+which has no line number information.
+     11004:     symbol=__cxa_finalize;  lookup in file=/home/opt/gcc/src/vtable/tests/copyrel [0]
+     11004:     symbol=__cxa_finalize;  lookup in file=/usr/lib/libstdc++.so.6 [0]
+     11004:     symbol=__cxa_finalize;  lookup in file=./libfoo.so [0]
+     11004:     symbol=__cxa_finalize;  lookup in file=/lib/libm.so.6 [0]
+     11004:     symbol=__cxa_finalize;  lookup in file=/lib/libgcc_s.so.1 [0]
+     11004:     symbol=__cxa_finalize;  lookup in file=/lib/libc.so.6 [0]
+     11004:     binding file /home/opt/gcc/src/vtable/tests/copyrel [0] to /lib/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+__cxa_finalize (d=0x804b01c) at cxa_finalize.c:35
+35        for (funcs = __exit_funcs; funcs; funcs = funcs->next)
+(gdb) l
+30      __cxa_finalize (void *d)
+31      {
+32        struct exit_function_list *funcs;
+33
+34       restart:
+35        for (funcs = __exit_funcs; funcs; funcs = funcs->next)
+36          {
+37            struct exit_function *f;
+38
+39            for (f = &funcs->fns[funcs->idx - 1]; f >= &funcs->fns[0]; --f)
+
+
+** Some exception got thrown ?? ! ?? **
+
+(gdb) bt
+#0  __cxa_finalize (d=0x804b01c) at cxa_finalize.c:35
+#1  0x08048723 in __do_global_dtors_aux ()
+(gdb) l
+40              {
+41                void (*cxafn) (void *arg, int status);
+42                void *cxaarg;
+43
+44                if ((d == NULL || d == f->func.cxa.dso_handle)
+45                    /* We don't want to run this cleanup more than once.  */
+46                    && (cxafn = f->func.cxa.fn,
+47                        cxaarg = f->func.cxa.arg,
+48                        ! catomic_compare_and_exchange_bool_acq (&f->flavor, ef_free,
+49                                                                 ef_cxa)))
+
+The IA64 C++ ABI (and the new g++ ABI) require two additional routines
+in the C library (__cxa_atexit and __cxa_finalize).  These routines
+handle destructors for static objects when a shared library is
+unloaded.
+
+
+(gdb) c
+Continuing.
+     11591:     symbol=__cxa_finalize;  lookup in file=/home/opt/gcc/src/vtable/tests/copyrel [0]
+     11591:     symbol=__cxa_finalize;  lookup in file=/usr/lib/libstdc++.so.6 [0]
+     11591:     symbol=__cxa_finalize;  lookup in file=./libfoo.so [0]
+     11591:     symbol=__cxa_finalize;  lookup in file=/lib/libm.so.6 [0]
+     11591:     symbol=__cxa_finalize;  lookup in file=/lib/libgcc_s.so.1 [0]
+     11591:     symbol=__cxa_finalize;  lookup in file=/lib/libc.so.6 [0]
+     11591:     binding file /home/opt/gcc/src/vtable/tests/copyrel [0] to /lib/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
+
+__do_global_dtors_aux - how did we get here !?
+    + how/why are we called !?
+
+080486f0 <__do_global_dtors_aux>:
+ 80486f0:       55                      push   %ebp
+ 80486f1:       89 e5                   mov    %esp,%ebp
+ 80486f3:       53                      push   %ebx
+ 80486f4:       e8 8e 00 00 00          call   8048787 <__i686.get_pc_thunk.bx>
+ 80486f9:       81 c3 fb 28 00 00       add    $0x28fb,%ebx
+ 80486ff:       83 ec 04                sub    $0x4,%esp
+ 8048702:       80 bb b8 00 00 00 00    cmpb   $0x0,0xb8(%ebx)
+ 8048709:       75 38                   jne    8048743 <__do_global_dtors_aux+0x53>
+ 804870b:       8b 83 fc ff ff ff       mov    -0x4(%ebx),%eax
+ 8048711:       85 c0                   test   %eax,%eax
+ 8048713:       74 1b                   je     8048730 <__do_global_dtors_aux+0x40>
+ 8048715:       8b 83 28 00 00 00       mov    0x28(%ebx),%eax
+ 804871b:       89 04 24                mov    %eax,(%esp)
+ 804871e:       e8 b5 ff ff ff          call   80486d8 <__cxa_finalize@plt>
+ 8048723:       eb 0b                   jmp    8048730 <__do_global_dtors_aux+0x40>
+ 8048725:       83 c0 04                add    $0x4,%eax
+ 8048728:       89 83 2c 00 00 00       mov    %eax,0x2c(%ebx)
+ 804872e:       ff d2                   call   *%edx
+ 8048730:       8b 83 2c 00 00 00       mov    0x2c(%ebx),%eax
+ 8048736:       8b 10                   mov    (%eax),%edx
+ 8048738:       85 d2                   test   %edx,%edx
+ 804873a:       75 e9                   jne    8048725 <__do_global_dtors_aux+0x35>
+ 804873c:       c6 83 b8 00 00 00 01    movb   $0x1,0xb8(%ebx)
+ 8048743:       83 c4 04                add    $0x4,%esp
+ 8048746:       5b                      pop    %ebx
+ 8048747:       5d                      pop    %ebp
+ 8048748:       c3                      ret    
+ 8048749:       8d b4 26 00 00 00 00    lea    0x0(%esi,%eiz,1),%esi
+
+(gdb) bt
+#0  _dl_lookup_symbol_x (undef_name=0x8048453 "__cxa_finalize", undef_map=0xb7f02660, ref=0xbfe0f5f4, symbol_scope=0xb7f0281c, version=0xb7ee6ee0, 
+    type_class=1, flags=1, skip_map=0x0) at dl-lookup.c:414
+#1  0xb7ef42ef in _dl_fixup (l=0xb7f02660, reloc_offset=<value optimized out>) at dl-runtime.c:105
+#2  0xb7ef9b40 in _dl_runtime_resolve () from /lib/ld-linux.so.2
+#3  0x08048723 in __do_global_dtors_aux ()
+
+[ from where !? ... ]
+
+** Is it some libstdc++ version mismatch foo ?
+    + does it happen if we have no vtlink ?
+
+collect2 version 4.2.1 (SUSE Linux) (i386 Linux/ELF)
+ld_file_name        = /opt/gcc/bin/ld
+c_file_name         = /opt/gcc/bin/g++
+nm_file_name        = /opt/gcc/bin/nm
+strip_file_name     = /opt/gcc/bin/strip
+c_file              = /tmp/ccLjjwqC.c
+o_file              = /tmp/ccq5w1G4.o
+COLLECT_GCC_OPTIONS = '-shared' '-L../../unxlngi6.pro/lib' '-L../lib' '-L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib' '-L/opt/OpenOffice/ooh680-m1/solver/68
+0/unxlngi6.pro/lib' '-L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib' '-L/usr/lib/jvm/java/lib' '-L/usr/lib/jvm/java/jre/lib/i386' '-L/usr/lib/jvm/java/jre/li
+b/i386/client' '-L/usr/lib/jvm/java/jre/lib/i386/native_threads' '-L/usr/lib' '-L/usr/lib/xulrunner-1.8.1.4' '-o' '../../unxlngi6.pro/lib/libspl_unx680li.so' 
+'-shared-libgcc' '-mtune=generic'
+COLLECT_GCC         = g++
+COMPILER_PATH       = /home/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.1/:/home/opt/gcc/bin/../libexec/gcc/:/opt/gcc/libexec/gcc/i686-pc-linux-gnu/4.2.1
+/:/opt/gcc/libexec/gcc/i686-pc-linux-gnu/4.2.1/:/opt/gcc/libexec/gcc/i686-pc-linux-gnu/:/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/:/opt/gcc/lib/gcc/i686-pc-lin
+ux-gnu/
+LIBRARY_PATH        = /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/:/home/opt/gcc/bin/../lib/gcc/:/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/:/home/opt/
+gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../:/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../:/lib/:/usr/lib/
+
+/opt/gcc/bin/ld --eh-frame-hdr -m elf_i386 -shared -o ../../unxlngi6.pro/lib/libspl_unx680li.so /usr/lib/crti.o /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu
+/4.2.1/crtbeginS.o -L../../unxlngi6.pro/lib -L../lib -L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib -L/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/lib -
+L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib -L/usr/lib/jvm/java/lib -L/usr/lib/jvm/java/jre/lib/i386 -L/usr/lib/jvm/java/jre/lib/i386/client -L/usr/lib/jvm
+/java/jre/lib/i386/native_threads -L/usr/lib -L/usr/lib/xulrunner-1.8.1.4 -L/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1 -L/home/opt/gcc/bin/../lib/gc
+c -L/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1 -L/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../.. -L/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../
+.. -z noexecstack -z combreloc -z defs --hash-style=gnu -rpath $ORIGIN:$ORIGIN/../ure-link/lib -O1 --version-script ../../unxlngi6.pro/misc/exports_spl_unx680
+li.map ../../unxlngi6.pro/slo/unxsplash.o ../../unxlngi6.pro/slo/services_unxsplash.o ../../unxlngi6.pro/slo/spl_unx_dflt_version.o -lvos3gcc3 -luno_cppuhelpe
+rgcc3 -luno_cppu -luno_sal -ldl -lpthread -Bdynamic -lstlport_gcc -lstdc++ -lm -lgcc_s -lc -lgcc_s /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/crtend
+S.o /usr/lib/crtn.o
+...
+Reloc 'vtable for SvRefBase' 1 0 0 0 i:47 
+Reloc 'vtable for SvWeakHdl' 0 1 0 0 i:-1 '.data.rel.ro._ZTV9SvWeakHdl' vma 0x5bb8 offset 0 output off 0
+Reloc 'vtable for SvRefBase' 1 0 0 0 i:47 
+Reloc 'vtable for SvCompatWeakHdl' 0 1 0 0 i:-1 '.data.rel.ro._ZTV15SvCompatWeakHdl' vma 0x5bb8 offset 0 output off 0
+../../unxlngi6.pro/slo/unxsplash.o: In function `SvWeakHdl::~SvWeakHdl()':
+unxsplash.cxx:(.text._ZN9SvWeakHdlD0Ev[SvWeakHdl::~SvWeakHdl()]+0x23): undefined reference to `SvRefBase::~SvRefBase()'
+../../unxlngi6.pro/slo/unxsplash.o: In function `SvWeakHdl::~SvWeakHdl()':
+unxsplash.cxx:(.text._ZN9SvWeakHdlD1Ev[SvWeakHdl::~SvWeakHdl()]+0x22): undefined reference to `SvRefBase::~SvRefBase()'
+../../unxlngi6.pro/slo/unxsplash.o: In function `SvCompatWeakHdl::~SvCompatWeakHdl()':
+unxsplash.cxx:(.text._ZN15SvCompatWeakHdlD0Ev[SvCompatWeakHdl::~SvCompatWeakHdl()]+0x23): undefined reference to `SvRefBase::~SvRefBase()'
+../../unxlngi6.pro/slo/unxsplash.o: In function `SvCompatWeakHdl::~SvCompatWeakHdl()':
+unxsplash.cxx:(.text._ZN15SvCompatWeakHdlD1Ev[SvCompatWeakHdl::~SvCompatWeakHdl()]+0x22): undefined reference to `SvRefBase::~SvRefBase()'
+../../unxlngi6.pro/slo/unxsplash.o:(.data.rel.ro._ZTI9SvWeakHdl[typeinfo for SvWeakHdl]+0x8): undefined reference to `typeinfo for SvRefBase'
+../../unxlngi6.pro/slo/unxsplash.o:(.data.rel.ro._ZTI15SvCompatWeakHdl[typeinfo for SvCompatWeakHdl]+0x8): undefined reference to `typeinfo for SvRefBase'
+
+
+** FIXME:
+    + generate a test from the splash thing it ...
+	+ is it the map file ?
+	+ what's going on !?
+
+
+** FIXME:
+    + how do we do the GC on this ?
+
+$2 = {root = {root = {next = 0x0, string = 0x80f22e3 "_ZTV9SvRefBase", hash = 290430804}, type = bfd_link_hash_undefined, u = {undef = {next = 0x80f0f48, 
+        abfd = 0x80f0508, weak = 0x0}, def = {next = 0x80f0f48, section = 0x80f0508, value = 0}, i = {next = 0x80f0f48, link = 0x80f0508, warning = 0x0}, 
+      c = {next = 0x80f0f48, p = 0x80f0508, size = 0}}}, indx = -1, dynindx = -1, got = {refcount = -1, offset = 18446744073709551615, glist = 0xffffffff, 
+    plist = 0xffffffff}, plt = {refcount = -1, offset = 18446744073709551615, glist = 0xffffffff, plist = 0xffffffff}, size = 0, type = 0, other = 0, 
+  ref_regular = 1, def_regular = 0, ref_dynamic = 0, def_dynamic = 0, ref_regular_nonweak = 1, dynamic_adjusted = 0, needs_copy = 0, needs_plt = 0, 
+  non_elf = 0, hidden = 0, forced_local = 0, dynamic = 0, mark = 0, non_got_ref = 1, dynamic_def = 0, dynamic_weak = 0, pointer_equality_needed = 1, 
+  dynstr_index = 0, u = {weakdef = 0x0, elf_hash_value = 0}, verinfo = {verdef = 0x0, vertree = 0x0}, vtable = 0x0}
+
+
+* test asm output ...
+
+
+** FIXME:
+    + the GC seems to be done in gcc here ...
+	+ interesting [!]
+    + our new reference / section screws that up unfortunately.
+    + FIXME: we -know- that this isn't an issue with the stmt stuff
+	+ only with the DECL generation - since we do the stmts
+	  earlier
+
+    + FIXME: we need to find a similar situation
+	+ outputting some auto-generated foo, but only iff - used (eg.)
+
+** TypeInfo - for RTTI (surely?) **
+	+ if a vtable is not referred to:
+	    + we don't want to construct it - surely (!?)
+		+ must be a 'GC' phase here, where dead stuff is pruned
+		+ find the code (?!)
+		+ must avoid the built-in typeinfo: identically ...
+
+    + are we doing this in the wrong place ?
+	+ can we associate a constructor-list to each vtable (somehow)
+	+ then do something clever as/when/if it's emitted
+
+
+
+* Research rtti goodness:
+
+/* 1 iff VAR_DECL node NODE is a type-info decl.  This flag is set for
+   both the primary typeinfo object and the associated NTBS name.  */
+#define DECL_TINFO_P(NODE) TREE_LANG_FLAG_4 (VAR_DECL_CHECK (NODE))
+
+/* 1 iff VAR_DECL node NODE is virtual table or VTT.  */
+#define DECL_VTABLE_OR_VTT_P(NODE) TREE_LANG_FLAG_5 (VAR_DECL_CHECK (NODE))
+
+/* DECL_EXTERNAL must be set on a decl until the decl is actually emitted,
+   so that assemble_external will work properly.  So we have this flag to
+   tell us whether the decl is really not external.  */
+#define DECL_NOT_REALLY_EXTERN(NODE) \
+  (DECL_LANG_SPECIFIC (NODE)->decl_flags.not_really_extern)
+
+[ interesting ! ;-]
+
+    + maybe_emit_vtables ?
+	+ do the goodness here ? ...
+	    + unfortunately - this is still called for
+	      vtables that are not (ultimately) emitted ! ;-)
+
+    + can we force the vtable to refer to this, by appending
+      a reference to us at the end ? ;->
+	+ will that work ?
+	+ will it keep us around ?
+	    + can we do this another way ?
+
+    ++ where does -Wunused-variable get triggered ? ++
+
+  /* Before we remove the declarations first check for unused variables.  */
+  if (warn_unused_variable
+      && !processing_template_decl)
+    for (decl = getdecls (); decl; decl = TREE_CHAIN (decl))
+      if (TREE_CODE (decl) == VAR_DECL
+	  && ! TREE_USED (decl)
+	  && ! DECL_IN_SYSTEM_HEADER (decl)
+	  && DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl))
+	warning (OPT_Wunused_variable, "unused variable %q+D", decl);
+
+	+ TREE_USED ?
+
+<richi> I suppose that happens somewhere in cgraph which analyzes the whole unit
+*** <richi> look for cgraph_ and varpool_ there's sth like 'mark_needed'
+
+<michael_> thanks;
+<michael_> and, final - follow-on / silly question,
+<michael_> I would like to have this strange relocation data (in a magic variable, in a '.vtreloc' section) dependant on the vtable,
+<michael_> so if the vtable is dropped - the strange section is dropped too...
+<michael_> .
+<michael_> does that sound horribly hard
+<richi> uh
+<richi> so it's a separate decl?
+<michael_> yep
+<richi> if it is not referenced it should not be emitted -- if it is not marked extern
+<michael_> I guess a little like rtti - although, there is no pointer in the vtable to it
+<richi> so you need to make it local to the CU
+<michael_> sure; OTOH - if the vtable is not emitted, I don't want to emit it :-) - hence the problem ...
+<michael_> I guess I could perhaps add a bogus reference to this data at the end of the vtable (?)
+<michael_> at least as a quick hack for now: that would work I guess (?)
+<richi> how would an extra reference help?
+<michael_> oh, it would then refer to this new decl
+<michael_> so vtable -> (rtti and .vtreloc decl)
+<michael_> so, hopefully if the vtable is not referenced, the compiler would notice all this was dead & throw it out.
+<michael_> otherwise, if it is referenced, it'll be referenced & retained (?)
+<richi> err, yes? ;)
+<michael_> thanks :-)
+* michael_ stops wasting time & starts typing again ...
+
+
+
+** FIXME: follow RTTI ..
+	+ unemitted_tinfo_decls ...
+		+ get emitted one by one.
+
+** FIXME:
+	+ add our output to 'maybe_emit_vtables' ...
+		+ [foo]
+
+get_tinfo_decl
+	+ sets 'CLASSTYPE_TYPEINFO_VAR' on type ...
+	+ caches the beastie ... [ also a cache on the name though ... ]
+		+ why have both ?
+
+FIXME: changes & breaks the ABI ...
+	+ but tests still run (apparently) ;-)
+	+ will need to fix (somehow)
+		+ pwrt. deriving classes etc.
+
+gdb --args /home/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1plus -quiet -I. -iprefix /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/ -D_GNU_SOURCE unused.cxx -quiet -dumpbase unused.cxx -mtune=generic -auxbase-strip unused.S -O0 -fdump-tree-all -o unused.S
+
+Breakpoint 1, cgraph_varpool_mark_needed_node (node=0xb7dd8498) at ../.././gcc/cgraph.c:931
+931       if (getenv ("DEBUG"))
+(gdb) n
+932         fprintf (stderr, "Mark node '%s' as needed\n",
+(gdb) 
+Mark node '__vt_copy_slot_relocs _ZVTR9SvRefBase [2]' as needed
+934       if (!node->needed && node->finalized
+(gdb) bt
+#0  cgraph_varpool_mark_needed_node (node=0xb7dd8498) at ../.././gcc/cgraph.c:934
+#1  0x0841f088 in cgraph_varpool_finalize_decl (decl=0xb7cf3630) at ../.././gcc/cgraph.c:1009
+#2  0x083db122 in rest_of_decl_compilation (decl=0xb7cf3630, top_level=1, at_end=0) at ../.././gcc/passes.c:162
+#3  0x08059c4a in make_rtl_for_nonlocal_decl (decl=0xb7cf3630, init=0x0, asmspec=0x0) at ../.././gcc/cp/decl.c:5036
+#4  0x08064845 in cp_finish_decl (decl=0xb7cf3630, init=0x0, init_const_expr_p=0 '\0', asmspec_tree=0x0, flags=0) at ../.././gcc/cp/decl.c:5394
+#5  0x080659af in finish_decl (decl=0xb7cf3630, init=0x0, asmspec_tree=0x0) at ../.././gcc/cp/decl.c:5476
+#6  0x080d56ee in pushdecl_top_level_1 (x=0xb7cf3630, init=0xbfcf97a4, is_friend=<value optimized out>) at ../.././gcc/cp/name-lookup.c:3405
+#7  0x080d5742 in pushdecl_top_level_and_finish (x=0xb7cf3630, init=0x0) at ../.././gcc/cp/name-lookup.c:3433
+#8  0x0807f47f in get_vtreloc_decl (t=0xb7dd59b4, slot_relocs=0xb7dd8450) at ../.././gcc/cp/class.c:6392
+#9  0x08082fd7 in finish_vtbls (t=0xb7dd59b4) at ../.././gcc/cp/class.c:6699
+#10 0x08083e0e in finish_struct_1 (t=0xb7dd59b4) at ../.././gcc/cp/class.c:5113
+#11 0x08084a40 in finish_struct (t=0xb7dd59b4, attributes=0x0) at ../.././gcc/cp/class.c:5227
+#12 0x08092c6c in cp_parser_type_specifier (parser=0xb7dbba5c, flags=<value optimized out>, decl_specs=0xbfcf9948, is_declaration=1 '\001', 
+    declares_class_or_enum=0xbfcf9904, is_cv_qualifier=0xbfcf990b "") at ../.././gcc/cp/parser.c:13172
+#13 0x08093349 in cp_parser_decl_specifier_seq (parser=0xb7dbba5c, flags=CP_PARSER_FLAGS_OPTIONAL, decl_specs=0xbfcf9948, declares_class_or_enum=0xbfcf9994)
+    at ../.././gcc/cp/parser.c:7668
+#14 0x08093770 in cp_parser_simple_declaration (parser=0xb7dbba5c, function_definition_allowed_p=1 '\001') at ../.././gcc/cp/parser.c:7370
+#15 0x0809a3eb in cp_parser_block_declaration (parser=0xb7dbba5c, statement_p=0 '\0') at ../.././gcc/cp/parser.c:7331
+#16 0x0809efa1 in cp_parser_declaration (parser=0xb7dbba5c) at ../.././gcc/cp/parser.c:7247
+#17 0x0809f3de in cp_parser_declaration_seq_opt (parser=0xb7dbba5c) at ../.././gcc/cp/parser.c:7142
+#18 0x0809f89c in c_parse_file () at ../.././gcc/cp/parser.c:2845
+#19 0x08100d5a in c_common_parse_file (set_yydebug=0) at ../.././gcc/c-opts.c:1183
+#20 0x083bb3c0 in toplev_main (argc=17, argv=0xbfcf9b94) at ../.././gcc/toplev.c:1042
+#21 0x0810b19f in main (argc=Cannot access memory at address 0xffffffff
+
+** FIXME:
+	+ now it works ! ;-)
+	+ can we avoid mangling the vtables ?
+	+ .vtrelocs - can we get defined symbols out of these sections
+	  & mangle them to point elsewhere ? :-)
+
+
+FIXME:
+	+ optimisation:
+		+ elide 'zero' copies ... [ do we do that anyway ? ]
+		+ can it be that we screw this up in gcc !? ...
+
+	+ why does the beastie crash ?
+	+ mismatching sizes (odd):
+ERROR: mismatching vtreloc sec & reloc count 0x2d4, 0x22 -> 10
+ERROR: mismatching vtreloc sec & reloc count 0x1b4, 0x18 -> 4
+ERROR: mismatching vtreloc sec & reloc count 0xd0, 0xc -> 4
+
+	+ Just broken !
+		+ clearly ordering is broken, need to
+		  copy stuff in a zane order:
+     20074:	do copy 0xdeadbeef to 0xdeadbeef match [&0xb7c90bb4 -> &0xb7c90a54]
+
+		+ we have got stray muck creeping in ...
+
+* The plan:
+	+ generate the inits earlier - so we know what they are
+		+ keep them around, get the sizing perfect ...
+		+ elide '0' copies ...
+	+ build better tests:
+		+ why is the ordering broken ?
+	+ check numerical results from tests/
+		+ call each vmethod etc. see what it returns.
+	+ check linker: how do we get so many '00000s' in here ?
+		+ sort out the 'internal' vs. 'external' symbol stuff.
+
+
+* binutils error:
+
+_ZVTRN17_GLOBAL__N_global1BE:
+	.long	_ZTVN17_GLOBAL__N_global5VBaseE+28
+	.long	_ZTVN17_GLOBAL__N_global1BE+324
+	.long	3
+	.long	_ZTVN17_GLOBAL__N_global1AE+140
+	.long	_ZTVN17_GLOBAL__N_global1BE+232
+	.long	183
+	.long	_ZTVN17_GLOBAL__N_global1AE+12
+	.long	_ZTVN17_GLOBAL__N_global1BE+104
+	.long	1011087613
+	.long	_ZTVN17_GLOBAL__N_global12VOffsetDerivE+20
+	.long	_ZTVN17_GLOBAL__N_global1BE+20
+	.long	7
+	.zero	12
+: vtable for (anonymous namespace)::VBase
+
+	+ Can't get these right ... [!?]
+
+	+ 2 purposes for the reloc info:
+		+ a) to get the sorting / initialization right.
+		+ b) to propagate this to the children ...
+
+	+ this -used- to work (surely!?), why not now ?
+
+	+ FIXME: surely we know what section the
+	         reloc goes into, and it's offset (?)
+
+** FIXME:
+   + do we really want to be sorting relocations ?
+	+ why can't we sort sections instead ?
+		+ would make *lots* more sense ... [!]
+		+ save re-writing the sections.
+		+ => can do it with opaque addresses
+
+   + can we do this with an <N> way tree of some sort.
+	+ create a single ordering ...
+
+   + can we terminate the section ?
+   
+* TODO:
+	+ -ffunction-sections
+		+ we want to emit a new .vtrelocs section -per- vtable
+		+ we relocate, do we do that ?
+			+ currently no.
+		+ need to force it somehow.
+
+	+ then - we need to look at the .text section sorting logic
+
+	+ then - bingo ! ;-)
+		+ we only have to ensure all .src and all .dest
+		  are sorted & all is good.
+
+<micha> Let's say end of february is feature freeze.
+<micha> Bugfixes are possible till april.
+
+
+(gdb) p m_pContext
+$1 = (class ConfigurationErrorHandler::Context *) 0x814a588
+(gdb) p *(m_pContext)
+$2 = {<(anonymous namespace)::SimpleCurrentContext> = {<cppu::WeakImplHelper1<com::sun::star::uno::XCurrentContext>> = {<cppu::OWeakObject> = {<com::sun::star::uno::XWeak> = {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x8097e88}, <No data fields>}, m_refCount = 0, m_pWeakConnectionPoint = 0x0, 
+        m_pReserved = 0x5f564e45}, <com::sun::star::lang::XTypeProvider> = {<com::sun::star::uno::XInterface> = {
+          _vptr.XInterface = 0x8097eb4}, <No data fields>}, <com::sun::star::uno::XCurrentContext> = {<com::sun::star::uno::XInterface> = {
+          _vptr.XInterface = 0x8097ed0}, <No data fields>}, <No data fields>}, m_xChainedContext = {<com::sun::star::uno::BaseReference> = {
+        _pInterface = 0x814112c}, <No data fields>}}, m_xHandler = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x0}, <No data fields>}}
+(gdb) bt
+#0  0xdeadbeef in ?? ()
+#1  0x0808d55c in ConfigurationErrorHandler::activate (this=0xbfb3f6d0) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/configinit.cxx:287
+#2  0x0806e68e in desktop::Desktop::Main (this=0xbfb3f8c4) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/app.cxx:1337
+#3  0xb7d03259 in ImplSVMain () from ./libvcl680li.so
+#4  0xb7d03367 in SVMain () from ./libvcl680li.so
+#5  0x080608ba in sal_main_with_args () at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/main.cxx:61
+#6  0x08060946 in main (argc=1, argv=0xbfb3f9d4) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/main.cxx:52
+(gdb) up
+#1  0x0808d55c in ConfigurationErrorHandler::activate (this=0xbfb3f6d0) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/configinit.cxx:287
+287             m_pContext->acquire();
+(gdb) l
+
+** FIXME: related to a sorting issue:
+	+ FIXME: surely we should get a 'Bug' warning here though ?
+
+	+ this order observed:
+
+ErrorHandlerContext VTR ! ( derived from SimpleCurrentContext )
+	
+_ZVTRN25ConfigurationErrorHandler7ContextE:
+	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_E68E979820SimpleCurrentContextE+8
+	.long	_ZTVN25ConfigurationErrorHandler7ContextE+8
+
+SimpleCurrentContext VTR !
+	
+_ZVTRN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_E68E979820SimpleCurrentContextE:
+	.long	_ZTVN4cppu15WeakImplHelper1IN3com3sun4star3uno15XCurrentContextEEE+8
+	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_E68E979820SimpleCurrentContextE+8
+	.long	207
+
+     29119:     copy from 0x8097d48 to 0x8097e88 mask 0xcf
+     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d48 -> &0x8097e88]
+     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d4c -> &0x8097e8c]
+     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d50 -> &0x8097e90]
+     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d54 -> &0x8097e94]
+
+
+
+	.section	.vtrelocs._ZVTR_00000001_N25ConfigurationErrorHandler7ContextE,"aG",@progbits,_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE,comdat
+	.type	_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE, @object
+	.size	_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE, 12
+_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE:
+	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE+8
+	.long	_ZTVN25ConfigurationErrorHandler7ContextE+8
+	.long	207
+
+	.section	.vtrelocs._ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE,"aG",@progbits,_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE,comdat
+	.type	_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE, @object
+	.size	_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE, 12
+_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE:
+	.long	_ZTVN4cppu15WeakImplHelper1IN3com3sun4star3uno15XCurrentContextEEE+8
+	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE+8
+	.long	207
+
+** Nice idea ! - but same number :-(
+
+class ConfigurationErrorHandler::Context : public SimpleCurrentContext
+{
+public:
+    Context()
+    : SimpleCurrentContext( uno::getCurrentContext() )
+    {
+    }
+
+FIXME:
+	+ should warn on that in glibc [!] ...
+
+** sort via the linker script ...
+	+ ld/ldlang.c 'sort_common' ?
+
+** FIXME:
+	+ remove the __vtrelocs symbol in the link.
+
+** FIXME:
+	+ can we be cunning ! ;-)
+		+ oh yes !
+
+	+ can we add a magic-number in the symbol name
+		+ max-distance-from-parent ?
+	+ that will increment with inheritance ?
+		+ we have the full inheritance graph
+
+	+ is it is always the case that a derived class has more slots
+	  than it's parent: no.
+
+	+ slot_count is a pretty good approximation though,
+		+ better ? a count of inherited parents ?
+
+	+ then sort by that.
+		+ we have a 'SortByName'
+		+ so simply prepend a string to the section name:
+			+ including the inherited table count.
+
+	+ VCL problem:
+		+ if outside 'me' don't fixup
+
+
+./soffice.bin: Symbol `_ZTV8OKButton' has different size in shared object, consider re-linking
+./soffice.bin: Symbol `_ZTV9FixedText' has different size in shared object, consider re-linking
+./soffice.bin: Symbol `_ZTV7MessBox' has different size in shared object, consider re-linking
+./soffice.bin: Symbol `_ZTV11Application' has different size in shared object, consider re-linking
+./soffice.bin: Symbol `_ZTV6Dialog' has different size in shared object, consider re-linking
+./soffice.bin: Symbol `_ZTV11IntroWindow' has different size in shared object, consider re-linking
+
+
+* Debug svx compile-time crash ... [ garbage-collection ? / string management ? ]
+
+* check ordering in soffice.bin fixes foo !
+
+* Check that 
+
+#0  0xdeadbeef in ?? ()
+#1  0xa2d12bf1 in desktop::SplashScreen::initialize (this=0x814e938, aArguments=@0xbfbffe14)
+    at /home/opt/OpenOffice/ooh680-m1/desktop/source/splash/splash.cxx:198
+#2  0xb74f1fc7 in cppu::OSingleFactoryHelper::createInstanceWithArgumentsAndContext () from ./libuno_cppuhelpergcc3.so.3
+
+
+    23241:     new vtcopy-reloc processing on './soffice.bin' offset 0x0 map 0x8048000
+     23241:     vtreloc section found in '' at 0x80a3d14 (0x80a3d14) mapped at 0x0
+
+order:
+	'.vtrelocs._ZVTR_00000003_N7desktop7DesktopE':
+	'.vtrelocs._ZVTR_00000004_N7desktop32SalMainPipeExchangeSignalHandlerE':
+	'.vtrelocs._ZVTR_00000005_N7desktop15OfficeIPCThreadE':
+	'.vtrelocs._ZVTR_00000007_11ModalDialog':
+	'.vtrelocs._ZVTR_00000008_N7desktop16IntroWindow_ImplE':
+	'.vtrelocs._ZVTR_00000008_N7desktop17CmdlineHelpDialogE':
+	'.vtrelocs._ZVTR_00000009_7InfoBox':
+	'.vtrelocs._ZVTR_00000009_8ErrorBox':
+	'.vtrelocs._ZVTR_00000009_8QueryBox':
+
+
+	'.vtrelocs._ZVTR_00000003_N7desktop7DesktopE':
+     23241:     copy from 0x80a4c40 to 0x80957d8 mask 0x81ff
+     23241:     do copy 0xb7d24592 to 0xdeadbeef match [&0x80a4c40 -> &0x80957d8]
+     23241:     do copy 0xb7d245a4 to 0xdeadbeef match [&0x80a4c44 -> &0x80957dc]
+     23241:     do copy 0xb7d245aa to 0xdeadbeef match [&0x80a4c48 -> &0x80957e0]
+     23241:     do copy 0xb7d24598 to 0xdeadbeef match [&0x80a4c4c -> &0x80957e4]
+     23241:     do copy 0xb7d245b0 to 0xdeadbeef match [&0x80a4c50 -> &0x80957e8]
+     23241:     do copy 0xb7d2459e to 0xdeadbeef match [&0x80a4c54 -> &0x80957ec]
+     23241:     do copy 0xb7d245b6 to 0xdeadbeef match [&0x80a4c58 -> &0x80957f0]
+     23241:     do copy 0xb7d245bc to 0xdeadbeef match [&0x80a4c5c -> &0x80957f4]
+     23241:     do copy 0xb7d245c2 to 0xdeadbeef match [&0x80a4c60 -> &0x80957f8]
+     23241:     no copy 0xb7d245c8 to 0x8069f1a skip
+     23241:     no copy 0xb7d245ce to 0x8060aaa skip
+     23241:     no copy 0xb7d245d4 to 0x80671ae skip
+     23241:     no copy 0xb7d24f52 to 0x8069b4c skip
+     23241:     no copy 0xb7d245da to 0x8065bd0 skip
+     23241:     no copy 0xb7d246b4 to 0x8069290 skip
+     23241:     do copy 0xb7d24686 to 0xdeadbeef match [&0x80a4c7c -> &0x8095814]
+     23241:     move to next vtrel entry
+
+	'.vtrelocs._ZVTR_00000004_N7desktop32SalMainPipeExchangeSignalHandlerE':
+     23241:     copy from 0x80a4ca0 to 0x80968f0 mask 0x1
+     23241:     do copy 0xb7683e8e to 0xdeadbeef match [&0x80a4ca0 -> &0x80968f0]
+     23241:     move to next vtrel entry
+
+	'.vtrelocs._ZVTR_00000005_N7desktop15OfficeIPCThreadE':
+     23241:     copy from 0x80a4b14 to 0x8096814 mask 0x1f
+     23241:     do copy 0xb767f760 to 0xdeadbeef match [&0x80a4b14 -> &0x8096814]
+     23241:     do copy 0xb767fb0a to 0xdeadbeef match [&0x80a4b18 -> &0x8096818]
+     23241:     do copy 0xb767fbee to 0xdeadbeef match [&0x80a4b1c -> &0x809681c]
+     23241:     do copy 0xb767fae4 to 0xdeadbeef match [&0x80a4b20 -> &0x8096820]
+     23241:     do copy 0xb767f77c to 0xdeadbeef match [&0x80a4b24 -> &0x8096824]
+     23241:     move to next vtrel entry
+
+**** Herein lies the error ! ****
+	'.vtrelocs._ZVTR_00000007_11ModalDialog':
+     23241:     copy from 0x80a4d38 to 0x8098d30 mask 0x3fffffff
+     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d38 -> &0x8098d30]
+     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d3c -> &0x8098d34]
+     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d40 -> &0x8098d38]
+     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d44 -> &0x8098d3c]
+     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d48 -> &0x8098d40]
+     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d4c -> &0x8098d44]
+
+
+** FIXME: test for shlibs, not for apps
+	+ 'data' relocations [ are evil ! ]
+	+ can that even be done ? how is the data one done ?
+	  where does the data come from ?
+
+** Chase the error !
+	+ think - what is the order of relocations ?
+	+ what is the linkage order ?
+	+ when do 'copy' relocs get processed ?
+
+soffice.bin's copy relocs:
+
+Relocation section '.rel.dyn' at offset 0x16f44 contains 24 entries:
+ Offset     Info    Type                Sym. Value  Symbol's Name
+0808ffe0  00039f06 R_386_GLOB_DAT         08060174   _ZNSt9bad_allocD1Ev
+0808ffe4  00004706 R_386_GLOB_DAT         00000000   _ZTVSt9exception
+0808ffe8  00006a06 R_386_GLOB_DAT         00000000   __gmon_start__
+0808ffec  0003bf06 R_386_GLOB_DAT         08090b20   _ZTVSt9bad_alloc
+08090b20  0003bf05 R_386_COPY             08090b20   _ZTVSt9bad_alloc
+0808fff0  00046306 R_386_GLOB_DAT         08090b64   _ZTISt9bad_alloc
+08090b64  00046305 R_386_COPY             08090b64   _ZTISt9bad_alloc
+08090880  0001f605 R_386_COPY             08090880   _ZTV8OKButton
+08090980  00021b05 R_386_COPY             08090980   _ZTV9FixedText
+08090a70  00019605 R_386_COPY             08090a70   _ZTVN4cppu11OWeakObjectE
+08090aa0  00020605 R_386_COPY             08090aa0   _ZTVN10__cxxabiv121__vmi_class_type_infoE
+08090ae0  00022c05 R_386_COPY             08090ae0   _ZTVN10__cxxabiv117__class_type_infoE
+08090b38  00029b05 R_386_COPY             08090b38   _ZN19SvtTabAppearanceCfg12bInitializedE
+08090b40  0004a405 R_386_COPY             08090b40   _ZTVN3utl22OConfigurationTreeRootE
+08090b58  00032505 R_386_COPY             08090b58   _ZTI7MessBox
+08090b70  00026b05 R_386_COPY             08090b70   _ZTIN4cppu11OWeakObjectE
+08090b7c  0001f705 R_386_COPY             08090b7c   _ZTI5Timer
+08090b88  00037005 R_386_COPY             08090b88   _ZTIN3vos7OThreadE
+08090ba8  00027e05 R_386_COPY             08090ba8   stderr
+08090bb0  0002ed05 R_386_COPY             08090bb0   _ZTI11Application
+08090bc0  00024c05 R_386_COPY             08090bc0   _ZTVN10__cxxabiv120__si_class_type_infoE
+08090bf0  00037205 R_386_COPY             08090bf0   _ZTI6Dialog
+08090c00  0003a905 R_386_COPY             08090c00   _ZTIN3vos14OSignalHandlerE
+08090c10  00038c05 R_386_COPY             08090c10   _ZTI11IntroWindow
+
+
+
+
+
+* First: fix the gtk+ issue ...
+
+** libvclplug_gtk ...
+
+	'.vtrelocs._ZVTR_00000003_13GtkSalDisplay':
+	'.vtrelocs._ZVTR_00000004_11GtkInstance':
+	'.vtrelocs._ZVTR_00000004_12GtkSalSystem':
+	'.vtrelocs._ZVTR_00000004_14GtkSalGraphics':
+	'.vtrelocs._ZVTR_00000006_13GtkYieldMutex':
+	'.vtrelocs._ZVTR_00000007_19GtkHookedYieldMutex':
+	'.vtrelocs._ZVTR_00000011_11AtkListener':
+	'.vtrelocs._ZVTR_00000011_21DocumentFocusListener':
+	'.vtrelocs._ZVTR_00000012_N4cppu15WeakImplHelper1IN3com3sun4star13accessibility24XAccessibleEventListenerEEE':
+
+     28115:	new vtcopy-reloc processing on '/opt/OOInstall/program/libvclplug_gtk680li.so' offset 0xb63d4000 map 0xb63d4000
+     28115:	vtreloc section found in '/opt/OOInstall/program/libvclplug_gtk680li.so' at 0xb641831c (0x4431c) mapped at 0xb63d4000
+     28115:	copy from 0xb5dd69a4 to 0xb64185cc mask 0x1
+     28115:	do copy 0xb5db2aa4 to 0xdeadbeef match [&0xb5dd69a4 -> &0xb64185cc]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb5dd6a08 to 0xb6418668 mask 0x1ffefffd
+     28115:	do copy 0xb5dbb89c to 0xdeadbeef match [&0xb5dd6a08 -> &0xb6418668]
+     28115:	no copy 0xb5d901e2 to 0xb63e89c8 skip
+     28115:	do copy 0xb5d8f4f0 to 0xdeadbeef match [&0xb5dd6a10 -> &0xb6418670]
+     28115:	do copy 0xb5d96a1c to 0xdeadbeef match [&0xb5dd6a14 -> &0xb6418674]
+     28115:	do copy 0xb5d96450 to 0xdeadbeef match [&0xb5dd6a18 -> &0xb6418678]
+     28115:	do copy 0xb5da898c to 0xdeadbeef match [&0xb5dd6a1c -> &0xb641867c]
+     28115:	do copy 0xb5da71ac to 0xdeadbeef match [&0xb5dd6a20 -> &0xb6418680]
+     28115:	do copy 0xb5da80da to 0xdeadbeef match [&0xb5dd6a24 -> &0xb6418684]
+     28115:	do copy 0xb5da71c8 to 0xdeadbeef match [&0xb5dd6a28 -> &0xb6418688]
+     28115:	do copy 0xb5da9d78 to 0xdeadbeef match [&0xb5dd6a2c -> &0xb641868c]
+     28115:	do copy 0xb5da71e4 to 0xdeadbeef match [&0xb5dd6a30 -> &0xb6418690]
+     28115:	do copy 0xb5da895a to 0xdeadbeef match [&0xb5dd6a34 -> &0xb6418694]
+     28115:	do copy 0xb5da72e2 to 0xdeadbeef match [&0xb5dd6a38 -> &0xb6418698]
+     28115:	do copy 0xb5db2554 to 0xdeadbeef match [&0xb5dd6a3c -> &0xb641869c]
+     28115:	do copy 0xb5dbb8b8 to 0xdeadbeef match [&0xb5dd6a40 -> &0xb64186a0]
+     28115:	do copy 0xb5dae55c to 0xdeadbeef match [&0xb5dd6a44 -> &0xb64186a4]
+     28115:	no copy 0xb5dbbf70 to 0xb63e948a skip
+     28115:	do copy 0xb5d936ae to 0xdeadbeef match [&0xb5dd6a4c -> &0xb64186ac]
+     28115:	do copy 0xb5dbb860 to 0xdeadbeef match [&0xb5dd6a50 -> &0xb64186b0]
+     28115:	do copy 0xb5dbb9e2 to 0xdeadbeef match [&0xb5dd6a54 -> &0xb64186b4]
+     28115:	do copy 0xb5dbb874 to 0xdeadbeef match [&0xb5dd6a58 -> &0xb64186b8]
+     28115:	do copy 0xb5dbbc00 to 0xdeadbeef match [&0xb5dd6a5c -> &0xb64186bc]
+     28115:	do copy 0xb5dbbdcc to 0xdeadbeef match [&0xb5dd6a60 -> &0xb64186c0]
+     28115:	do copy 0xb5d90490 to 0xdeadbeef match [&0xb5dd6a64 -> &0xb64186c4]
+     28115:	do copy 0xb5d90498 to 0xdeadbeef match [&0xb5dd6a68 -> &0xb64186c8]
+     28115:	do copy 0xb5d904b4 to 0xdeadbeef match [&0xb5dd6a6c -> &0xb64186cc]
+     28115:	do copy 0xb5d904bc to 0xdeadbeef match [&0xb5dd6a70 -> &0xb64186d0]
+     28115:	do copy 0xb5dbe334 to 0xdeadbeef match [&0xb5dd6a74 -> &0xb64186d4]
+     28115:	do copy 0xb5dbb954 to 0xdeadbeef match [&0xb5dd6a78 -> &0xb64186d8]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb5dd6ae8 to 0xb6418760 mask 0x7f
+     28115:	do copy 0xb5dbc14c to 0xdeadbeef match [&0xb5dd6ae8 -> &0xb6418760]
+     28115:	do copy 0xb5dbc1a8 to 0xdeadbeef match [&0xb5dd6aec -> &0xb6418764]
+     28115:	do copy 0xb5dbc188 to 0xdeadbeef match [&0xb5dd6af0 -> &0xb6418768]
+     28115:	do copy 0xb5dbc1e8 to 0xdeadbeef match [&0xb5dd6af4 -> &0xb641876c]
+     28115:	do copy 0xb5dbbf50 to 0xdeadbeef match [&0xb5dd6af8 -> &0xb6418770]
+     28115:	do copy 0xb5dbc2a4 to 0xdeadbeef match [&0xb5dd6afc -> &0xb6418774]
+     28115:	do copy 0xb5dbc532 to 0xdeadbeef match [&0xb5dd6b00 -> &0xb6418778]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb5dd5d24 to 0xb6418b44 mask 0x7fffffc
+     28115:	no copy 0xb5d94bb6 to 0xb63fcce6 skip
+     28115:	no copy 0xb5d94b10 to 0xb63fcc9c skip
+     28115:	do copy 0xb5d949f0 to 0xdeadbeef match [&0xb5dd5d2c -> &0xb6418b4c]
+     28115:	do copy 0xb5d94ae0 to 0xdeadbeef match [&0xb5dd5d30 -> &0xb6418b50]
+     28115:	do copy 0xb5d94a0c to 0xdeadbeef match [&0xb5dd5d34 -> &0xb6418b54]
+     28115:	do copy 0xb5d95f84 to 0xdeadbeef match [&0xb5dd5d38 -> &0xb6418b58]
+     28115:	do copy 0xb5d94a36 to 0xdeadbeef match [&0xb5dd5d3c -> &0xb6418b5c]
+     28115:	do copy 0xb5d9576c to 0xdeadbeef match [&0xb5dd5d40 -> &0xb6418b60]
+     28115:	do copy 0xb5d956f6 to 0xdeadbeef match [&0xb5dd5d44 -> &0xb6418b64]
+     28115:	do copy 0xb5d9e8b4 to 0xdeadbeef match [&0xb5dd5d48 -> &0xb6418b68]
+     28115:	do copy 0xb5d9f95c to 0xdeadbeef match [&0xb5dd5d4c -> &0xb6418b6c]
+     28115:	do copy 0xb5d9f2ae to 0xdeadbeef match [&0xb5dd5d50 -> &0xb6418b70]
+     28115:	do copy 0xb5d9e542 to 0xdeadbeef match [&0xb5dd5d54 -> &0xb6418b74]
+     28115:	do copy 0xb5d9f1ea to 0xdeadbeef match [&0xb5dd5d58 -> &0xb6418b78]
+     28115:	do copy 0xb5da09f0 to 0xdeadbeef match [&0xb5dd5d5c -> &0xb6418b7c]
+     28115:	do copy 0xb5d9e0a8 to 0xdeadbeef match [&0xb5dd5d60 -> &0xb6418b80]
+     28115:	do copy 0xb5d9e6b0 to 0xdeadbeef match [&0xb5dd5d64 -> &0xb6418b84]
+     28115:	do copy 0xb5d9e504 to 0xdeadbeef match [&0xb5dd5d68 -> &0xb6418b88]
+     28115:	do copy 0xb5d9e47e to 0xdeadbeef match [&0xb5dd5d6c -> &0xb6418b8c]
+     28115:	do copy 0xb5d9e4d0 to 0xdeadbeef match [&0xb5dd5d70 -> &0xb6418b90]
+     28115:	do copy 0xb5d9e4aa to 0xdeadbeef match [&0xb5dd5d74 -> &0xb6418b94]
+     28115:	do copy 0xb5d9e440 to 0xdeadbeef match [&0xb5dd5d78 -> &0xb6418b98]
+     28115:	do copy 0xb5d9f3aa to 0xdeadbeef match [&0xb5dd5d7c -> &0xb6418b9c]
+     28115:	do copy 0xb5d9e0ae to 0xdeadbeef match [&0xb5dd5d80 -> &0xb6418ba0]
+     28115:	do copy 0xb5d9ee16 to 0xdeadbeef match [&0xb5dd5d84 -> &0xb6418ba4]
+     28115:	do copy 0xb5da026c to 0xdeadbeef match [&0xb5dd5d88 -> &0xb6418ba8]
+     28115:	do copy 0xb7e2cc58 to 0xdeadbeef match [&0xb5dd5d8c -> &0xb6418bac]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb5dd5ca4 to 0xb6418ac4 mask 0x7e1ff7ff
+     28115:	do copy 0xb5d953be to 0xdeadbeef match [&0xb5dd5ca4 -> &0xb6418ac4]
+     28115:	do copy 0xb5d952e0 to 0xdeadbeef match [&0xb5dd5ca8 -> &0xb6418ac8]
+     28115:	do copy 0xb5d95606 to 0xdeadbeef match [&0xb5dd5cac -> &0xb6418acc]
+     28115:	do copy 0xb5d95be8 to 0xdeadbeef match [&0xb5dd5cb0 -> &0xb6418ad0]
+     28115:	do copy 0xb5d955ac to 0xdeadbeef match [&0xb5dd5cb4 -> &0xb6418ad4]
+     28115:	do copy 0xb5d95a66 to 0xdeadbeef match [&0xb5dd5cb8 -> &0xb6418ad8]
+     28115:	do copy 0xb5d95902 to 0xdeadbeef match [&0xb5dd5cbc -> &0xb6418adc]
+     28115:	do copy 0xb5d94a7c to 0xdeadbeef match [&0xb5dd5cc0 -> &0xb6418ae0]
+     28115:	do copy 0xb5d94a84 to 0xdeadbeef match [&0xb5dd5cc4 -> &0xb6418ae4]
+     28115:	do copy 0xb5d94a8c to 0xdeadbeef match [&0xb5dd5cc8 -> &0xb6418ae8]
+     28115:	do copy 0xb5d9065a to 0xdeadbeef match [&0xb5dd5ccc -> &0xb6418aec]
+     28115:	no copy 0xb5d91dda to 0xb63feffe skip
+     28115:	do copy 0xb5d91124 to 0xdeadbeef match [&0xb5dd5cd4 -> &0xb6418af4]
+     28115:	do copy 0xb5d906a2 to 0xdeadbeef match [&0xb5dd5cd8 -> &0xb6418af8]
+     28115:	do copy 0xb5d910c2 to 0xdeadbeef match [&0xb5dd5cdc -> &0xb6418afc]
+     28115:	do copy 0xb5d913ac to 0xdeadbeef match [&0xb5dd5ce0 -> &0xb6418b00]
+     28115:	do copy 0xb5d9197e to 0xdeadbeef match [&0xb5dd5ce4 -> &0xb6418b04]
+     28115:	do copy 0xb5d909e6 to 0xdeadbeef match [&0xb5dd5ce8 -> &0xb6418b08]
+     28115:	do copy 0xb5d91320 to 0xdeadbeef match [&0xb5dd5cec -> &0xb6418b0c]
+     28115:	do copy 0xb5d954f2 to 0xdeadbeef match [&0xb5dd5cf0 -> &0xb6418b10]
+     28115:	do copy 0xb5d94a94 to 0xdeadbeef match [&0xb5dd5cf4 -> &0xb6418b14]
+     28115:	no copy 0xb7e45890 to 0xb63fe328 skip
+     28115:	no copy 0xb7e45898 to 0xb63fe750 skip
+     28115:	no copy 0xb7e458a0 to 0xb63f7d8a skip
+     28115:	no copy 0xb7e458a8 to 0xb63fd804 skip
+     28115:	do copy 0xb5d9152c to 0xdeadbeef match [&0xb5dd5d08 -> &0xb6418b28]
+     28115:	do copy 0xb5d91b28 to 0xdeadbeef match [&0xb5dd5d0c -> &0xb6418b2c]
+     28115:	do copy 0xb5d95c72 to 0xdeadbeef match [&0xb5dd5d10 -> &0xb6418b30]
+     28115:	do copy 0xb5d956b8 to 0xdeadbeef match [&0xb5dd5d14 -> &0xb6418b34]
+     28115:	do copy 0xb5d956e6 to 0xdeadbeef match [&0xb5dd5d18 -> &0xb6418b38]
+     28115:	do copy 0xb5d949d0 to 0xdeadbeef match [&0xb5dd5d1c -> &0xb6418b3c]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb5dd6a90 to 0xb6418618 mask 0x1
+     28115:	do copy 0xb769b1fa to 0xdeadbeef match [&0xb5dd6a90 -> &0xb6418618]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb6418618 to 0xb64186f0 mask 0x1
+     28115:	do copy 0xb769b1fa to 0xdeadbeef match [&0xb6418618 -> &0xb64186f0]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb6418858 to 0xb64187b8 mask 0xcf
+     28115:	do copy 0xb63ee3d4 to 0xdeadbeef match [&0xb6418858 -> &0xb64187b8]
+     28115:	do copy 0xb63ee3a2 to 0xdeadbeef match [&0xb641885c -> &0xb64187bc]
+     28115:	do copy 0xb63ee370 to 0xdeadbeef match [&0xb6418860 -> &0xb64187c0]
+     28115:	do copy 0xdeadbeef to 0xdeadbeef match [&0xb6418864 -> &0xb64187c4]
+     28115:	no copy 0xb63ee2ec to 0xb63ecec6 skip
+     28115:	no copy 0xb63ee2a8 to 0xb63ece60 skip
+     28115:	do copy 0xb63ee25a to 0xdeadbeef match [&0xb6418870 -> &0xb64187d0]
+     28115:	do copy 0xb63ee226 to 0xdeadbeef matchg [&0xb6418874 -> &0xb64187d4]
+     28115:	move to next vtrel entry
+     28115:	copy from 0xb6418858 to 0xb6418988 mask 0xcf
+     28115:	do copy 0xb63ee3d4 to 0xdeadbeef match [&0xb6418858 -> &0xb6418988]
+     28115:	do copy 0xb63ee3a2 to 0xdeadbeef match [&0xb641885c -> &0xb641898c]
+     28115:	do copy 0xb63ee370 to 0xdeadbeef match [&0xb6418860 -> &0xb6418990]
+     28115:	do copy 0xdeadbeef to 0xdeadbeef match [&0xb6418864 -> &0xb6418994]
+     28115:	no copy 0xb63ee2ec to 0xb63f50dc skip
+     28115:	no copy 0xb63ee2a8 to 0xb63f5076 skip
+     28115:	do copy 0xb63ee25a to 0xdeadbeef match [&0xb6418870 -> &0xb64189a0]
+     28115:	do copy 0xb63ee226 to 0xdeadbeef match [&0xb6418874 -> &0xb64189a4]
+     28115:	move to next vtrel entry
+     28115:	copy from 0x8090a84 to 0xb6418864 mask 0x1
+     28115:	do copy 0x80619e4 to 0xdeadbeef match [&0x8090a84 -> &0xb6418864]
+     28115:	move to next vtrel entry
+
+
+These two are confused:
+
+	'.vtrelocs._ZVTR_00000011_21DocumentFocusListener':
+
+     28115:	copy from 0xb6418858 to 0xb6418988 mask 0xcf
+     28115:	do copy 0xb63ee3d4 to 0xdeadbeef match [&0xb6418858 -> &0xb6418988]
+     28115:	do copy 0xb63ee3a2 to 0xdeadbeef match [&0xb641885c -> &0xb641898c]
+     28115:	do copy 0xb63ee370 to 0xdeadbeef match [&0xb6418860 -> &0xb6418990]
+     28115:	do copy 0xdeadbeef to 0xdeadbeef match [***&0xb6418864*** -> &0xb6418994]
+     28115:	no copy 0xb63ee2ec to 0xb63f50dc skip
+     28115:	no copy 0xb63ee2a8 to 0xb63f5076 skip
+     28115:	do copy 0xb63ee25a to 0xdeadbeef match [&0xb6418870 -> &0xb64189a0]
+     28115:	do copy 0xb63ee226 to 0xdeadbeef match [&0xb6418874 -> &0xb64189a4]
+     28115:	move to next vtrel entry
+
+	'.vtrelocs._ZVTR_00000012_N4cppu15WeakImplHelper1IN3com3sun4star13accessibility24XAccessibleEventListenerEEE':
+     28115:	copy from 0x8090a84 to 0xb6418864 mask 0x1
+     28115:	do copy 0x80619e4 to 0xdeadbeef match [&0x8090a84 -> ***&0xb6418864***]
+
+** Build a test:
+
+
+	'.vtrelocs._ZVTR_00000008_8ErrorBox':
+	'.vtrelocs._ZVTR_00000008_8QueryBox':
+
+/home/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1plus -quiet -I. -I../../unxlngi6.pro/inc/svdraw -I../inc -I../../inc/pch -I../../inc -I../../unx/inc -I../../unxlngi6.pro/inc -I. -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/stl -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/external -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc -I/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/inc -I/opt/OpenOffice/ooh680-m1/solenv/inc -I/opt/OpenOffice/ooh680-m1/res -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/stl -I/opt/OpenOffice/ooh680-m1/solenv/inc/Xp31 -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I/usr/lib/jvm/java/include/native_threads/include -I/usr/include -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/offuh -I. -I../../res -I. -iprefix /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/ -D_GNU_SOURCE -DENABLE_GTK -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/include/c++/4.2.1 -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DGSTREAMER -DCUI -DSOLAR_JAVA -DOOH680=OOH680 -DSVX_DLLIMPLEMENTATION -DSHAREDLIB -D_DLL_ -DEXCEPTIONS_ON /home/opt/OpenOffice/ooh680-m1/svx/source/svdraw/svdobj.cxx -quiet -dumpbase svdobj.cxx -mtune=pentiumpro -auxbase-strip ../../unxlngi6.pro/slo/svdobj.o -Os -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fmessage-length=0 -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -fpic -fexceptions -fno-enforce-eh-specs -o -
+
+Generate vtreloc variable '_ZVTR_00000002_15SvCompatWeakHdl' comdat? 1name '_ZVTR_00000002_9SvWeakHdl'
+Generate vtreloc variable '_ZVTR_00000002_9SvWeakHdl' comdat? 1
+Program received signal SIGSEGV, Segmentation fault.
+cgraph_node_remove_callees (node=0xb1713000) at ../.././gcc/cgraph.c:436
+436       if (e->prev_caller)
+(gdb) bt
+#0  cgraph_node_remove_callees (node=0xb1713000) at ../.././gcc/cgraph.c:436
+#1  0x084204ea in cgraph_remove_node (node=0xb1713000) at ../.././gcc/cgraph.c:535
+#2  0x0842272e in cgraph_finalize_compilation_unit () at ../.././gcc/cgraphunit.c:1167
+#3  0x080892f5 in cp_finish_file () at ../.././gcc/cp/decl2.c:3414
+#4  0x0810102f in c_common_parse_file (set_yydebug=0) at ../.././gcc/c-opts.c:1184
+#5  0x083bb5d0 in toplev_main (argc=87, argv=0xbf969944) at ../.././gcc/toplev.c:1033
+#6  0x0810b46f in main (argc=1, argv=0x0) at ../.././gcc/main.c:35
+
+
+SVX:
+
+../unxlngi6.pro/slo/xmlxtexp.o:(.data.rel.ro._ZTV27SvxXMLXTableExportComponent[vtable
+for SvxXMLXTableExportComponent]+0x16c): undefined reference to
+`non-virtual thunk to
+cppu::WeakImplHelper6<com::sun::star::document::XFilter,
+com::sun::star::lang::XServiceInfo,
+com::sun::star::document::XExporter,
+com::sun::star::lang::XInitialization,
+com::sun::star::container::XNamed,
+com::sun::star::lang::XUnoTunnel>::release()'
+
+_ZTV27SvxXMLXTableExportComponent:
+->
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	+ simply not in the .s file [ most odd ]
+
+
+** Turn on & try construction vtable bits ? :-)
+
+** FIXME:
+	+ should we be copying thunks from our parents ?
+
+method.c: 'emit_associated_thunks' ...
+	+ hmm ;-)
+method.c: 'make_thunk' ... - called from where ?
+
+** FIXME: make_thunk - called, but not 'finish_thunk' ...
+
+* we have 195 'make_thunk' calls
+* we have 8 'generate thunk' calls.
+	+ most odd [!]
+
+grep '_ZThn' /tmp/xmlxtexp.s.pristine | wc -l
+196
+grep '_ZThn' /tmp/xmlxtexp.s-shrink | wc -l
+81
+
+	+ Interesting.
+
+
+** Chase how thunks are generated
+	+ can we defer our generation of _ZVTR stuff
+	  until a -lot- later ?
+
+** FIXME: why are we not generating thunks !?
+	+ they seem to be associated with functions
+	+ but ... why? they don't call functions.
+
+** The --real-- question from xmlxtexp.cxx is:
+	+ *Why* do we not get an SvXMLExport vtable ?
+
+_ZVTR_00000006_27SvxXMLXTableExportComponent:
+	.long	_ZTV11SvXMLExport+136
+	.long	_ZTV27SvxXMLXTableExportComponent+136
+	.long	4095
+
+	+ *That* should have the missing thunks [!]
+	+ Or better [!]
+		+ we should generate copy relocs for the thunks
+		+ they are after all - just the same ...
+		+ *But* why are we missing that vtable too ?
+		+ it is external ... [!?]
+
+	+ FIXME:
+		+ make test case:
+		+ hide the parent classs
+		+ first force some thunk generation (!?)
+
+** FIXME:
+	+ specified in libxo680li ... [!]
+
+** FIXME:
+	+ regression test with visibility markup ! ;-)
+
+
+** FIXME:
+	+ working nicely now -except- [!]
+		+ define SAL_NO_VTABLE
+	+ abstract base classes - don't need copying ?
+		+ they won't have a vtable emitted ...
+
+
+
+** FIXME:
+   +
+	../unxlngi6.pro/slo/xmlxtexp.o:(.data.rel.ro._ZTV27SvxXMLXTableExportComponent[vtable
+	for SvxXMLXTableExportComponent]+0x16c): undefined reference
+	to `non-virtual thunk to
+	cppu::WeakImplHelper6<com::sun::star::document::XFilter,
+	com::sun::star::lang::XServiceInfo,
+	com::sun::star::document::XExporter,
+	com::sun::star::lang::XInitialization,
+	com::sun::star::container::XNamed,
+	com::sun::star::lang::XUnoTunnel>::release()'
+
+
+	.long	-40
+	.long	_ZTI27SvxXMLXTableExportComponent
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE7acquireEv
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE7releaseEv
+	.long	_ZThn40_N11SvXMLExport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
+	.long	_ZVTR_00000006_27SvxXMLXTableExportComponent
+
+Thunk!: 1 1 1 1
+ cppu::WeakImplHelper6<com::sun::star::document::XFilter,
+ com::sun::star::lang::XServiceInfo,
+ com::sun::star::document::XExporter,
+ com::sun::star::lang::XInitialization,
+ com::sun::star::container::XNamed,
+ com::sun::star::lang::XUnoTunnel>::_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE7releaseEv
+ : com::sun::star::uno::XInterface !=?
+ cppu::WeakImplHelper6<com::sun::star::document::XFilter,
+ com::sun::star::lang::XServiceInfo,
+ com::sun::star::document::XExporter,
+ com::sun::star::lang::XInitialization,
+ com::sun::star::container::XNamed, com::sun::star::lang::XUnoTunnel>
+ 0xb6a89bdc !=? 0xb4f84564 !=? 0xb4f82780 !=? 0xb4f82780 !=?
+ 0xb4f66e70 (nil) !=? 0x32040200 !=? 0xb4f66e70 !=? 0xb4f66e70 !=?
+ (nil)
+
+** Hard to determine overriding by thetimewe get here ...
+so- instead-update_vtable_entry_for_fn (?)
+
+finish_struct_1 ? ... :-)
+
+../unxlngi6.pro/slo/xmlxtimp.o:(.vtrelocs._ZVTR_00000006_18SvxXMLXTableImport[_ZVTR_00000006_18SvxXMLXTableImport]+0x3c):
+undefined reference to `vtable for com::sun::star::xml::sax::XExtendedDocumentHandler'
+
+FIXME: this is just bogus !
+SvxXMLXTableImport does indeed inherit from XExtendedDocumentHandler
+	+ but not here
+	+ and only 'via' a template class:
+		.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+
+	class SvxXMLXTableImport : public SvXMLImport
+
+Copy SvXMLImport + 2 =>  SvxXMLXTableImport + 2 mask 0xfffffecf
+Copy SvXMLImport + 34 =>  SvxXMLXTableImport + 34 mask 0x7f
+Copy com::sun::star::lang::XTypeProvider + 2 =>  SvxXMLXTableImport + 43 mask 0x1f
+Copy com::sun::star::xml::sax::XExtendedDocumentHandler + 2 =>  SvxXMLXTableImport + 50 mask 0xffff
+Copy com::sun::star::lang::XServiceInfo + 2 =>  SvxXMLXTableImport + 68 mask 0x3f
+Copy com::sun::star::lang::XInitialization + 2 =>  SvxXMLXTableImport + 76 mask 0xf
+Copy com::sun::star::document::XImporter + 2 =>  SvxXMLXTableImport + 82 mask 0xf
+Copy com::sun::star::document::XFilter + 2 =>  SvxXMLXTableImport + 88 mask 0x1f
+Copy com::sun::star::lang::XUnoTunnel + 2 =>  SvxXMLXTableImport + 95 mask 0xf
+
+** Just a nonsense ! :-)
+
+FIXME: why so hard to generate test cases ?
+
+FIXME: it's all rubbish!
+	+ thunk namemangling *looks* like it's inheritingsomething,
+ 	  but it'snot.
+	+there is (apparently) no vtablefor:
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+
+
+eg. xmlxtimp.s.pristine:
+	.long	-20
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+
+	these guys above should be there.
+	below - notso.
+
+	.long	_ZThn20_N11SvXMLImport13startDocumentEv
+	.long	_ZThn20_N11SvXMLImport11endDocumentEv
+	.long	_ZThn20_N11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZThn20_N11SvXMLImport10endElementERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport10charactersERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
+	.long	_ZThn20_N11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
+	.long	_ZThn20_N11SvXMLImport10startCDATAEv
+	.long	_ZThn20_N11SvXMLImport8endCDATAEv
+	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
+	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
+
+
+
+hacked:
+
+_ZTV18SvxXMLXTableImport:
+	.long	0
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	_ZN18SvxXMLXTableImportD1Ev
+	.long	_ZN18SvxXMLXTableImportD0Ev
+	.long	-559038737
+	.long	-559038737
+	.long	_ZN18SvxXMLXTableImport13CreateContextEtRKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-559038737
+	.long	-16
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-20
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-24
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-28
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	_ZThn28_N11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
+	.long	-32
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	_ZThn32_N11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
+	.long	-36
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	_ZThn36_N11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZThn36_N11SvXMLImport6cancelEv
+	.long	-40
+	.long	_ZTI18SvxXMLXTableImport
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	_ZThn40_N11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
+	.long	_ZVTR_00000006_18SvxXMLXTableImport
+	.hidden	_ZTV24SvxXMLTableImportContext
+
+pristine:
+
+_ZTV18SvxXMLXTableImport:
+	.long	0
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZN4cppu11OWeakObject12queryAdapterEv
+	.long	_ZN18SvxXMLXTableImportD1Ev
+	.long	_ZN18SvxXMLXTableImportD0Ev
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
+	.long	_ZN18SvxXMLXTableImport13CreateContextEtRKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZN11SvXMLImport16CreateTextImportEv
+	.long	_ZN11SvXMLImport17CreateShapeImportEv
+	.long	_ZN11SvXMLImport17CreateChartImportEv
+	.long	_ZN11SvXMLImport16CreateFormImportEv
+	.long	_ZN11SvXMLImport13startDocumentEv
+	.long	_ZN11SvXMLImport11endDocumentEv
+	.long	_ZN11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZN11SvXMLImport10endElementERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport10charactersERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
+	.long	_ZN11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
+	.long	_ZN11SvXMLImport10startCDATAEv
+	.long	_ZN11SvXMLImport8endCDATAEv
+	.long	_ZN11SvXMLImport7commentERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport14allowLineBreakEv
+	.long	_ZN11SvXMLImport7unknownERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
+	.long	_ZN11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZN11SvXMLImport6cancelEv
+	.long	_ZN11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
+	.long	_ZN11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
+	.long	_ZN11SvXMLImport21getImplementationNameEv
+	.long	_ZN11SvXMLImport15supportsServiceERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport24getSupportedServiceNamesEv
+	.long	_ZN11SvXMLImport22SetStatisticAttributesERKN3com3sun4star3uno9ReferenceINS2_3xml3sax14XAttributeListEEE
+	.long	_ZN11SvXMLImport15SetViewSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZN11SvXMLImport24SetConfigurationSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZN11SvXMLImport14DisposingModelEv
+	.long	_ZN11SvXMLImport10initXFormsEv
+	.long	-16
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
+	.long	-20
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn20_N11SvXMLImport13startDocumentEv
+	.long	_ZThn20_N11SvXMLImport11endDocumentEv
+	.long	_ZThn20_N11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZThn20_N11SvXMLImport10endElementERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport10charactersERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
+	.long	_ZThn20_N11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
+	.long	_ZThn20_N11SvXMLImport10startCDATAEv
+	.long	_ZThn20_N11SvXMLImport8endCDATAEv
+	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
+	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
+	.long	-24
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn24_N11SvXMLImport21getImplementationNameEv
+	.long	_ZThn24_N11SvXMLImport15supportsServiceERKN3rtl8OUStringE
+	.long	_ZThn24_N11SvXMLImport24getSupportedServiceNamesEv
+	.long	-28
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn28_N11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
+	.long	-32
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn32_N11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
+	.long	-36
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn36_N11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZThn36_N11SvXMLImport6cancelEv
+	.long	-40
+	.long	_ZTI18SvxXMLXTableImport
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn40_N11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
+	.hidden	_ZTV24SvxXMLTableImportContext
+	.weak	_ZTV24SvxXMLTableImportContext
+	.section	.data.rel.ro._ZTV24SvxXMLTableImportContext,"awG",@progbits,_ZTV24SvxXMLTableImportContext,comdat
+
+
+parent:
+
+_ZTV11SvXMLImport:
+	.long	0
+	.long	_ZTI11SvXMLImport
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZN4cppu11OWeakObject12queryAdapterEv
+	.long	_ZN11SvXMLImportD1Ev
+	.long	_ZN11SvXMLImportD0Ev
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
+	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
+	.long	_ZN11SvXMLImport13CreateContextEtRKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZN11SvXMLImport16CreateTextImportEv
+	.long	_ZN11SvXMLImport17CreateShapeImportEv
+	.long	_ZN11SvXMLImport17CreateChartImportEv
+	.long	_ZN11SvXMLImport16CreateFormImportEv
+	.long	_ZN11SvXMLImport13startDocumentEv
+	.long	_ZN11SvXMLImport11endDocumentEv
+	.long	_ZN11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZN11SvXMLImport10endElementERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport10charactersERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
+	.long	_ZN11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
+	.long	_ZN11SvXMLImport10startCDATAEv
+	.long	_ZN11SvXMLImport8endCDATAEv
+	.long	_ZN11SvXMLImport7commentERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport14allowLineBreakEv
+	.long	_ZN11SvXMLImport7unknownERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
+	.long	_ZN11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZN11SvXMLImport6cancelEv
+	.long	_ZN11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
+	.long	_ZN11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
+	.long	_ZN11SvXMLImport21getImplementationNameEv
+	.long	_ZN11SvXMLImport15supportsServiceERKN3rtl8OUStringE
+	.long	_ZN11SvXMLImport24getSupportedServiceNamesEv
+	.long	_ZN11SvXMLImport22SetStatisticAttributesERKN3com3sun4star3uno9ReferenceINS2_3xml3sax14XAttributeListEEE
+	.long	_ZN11SvXMLImport15SetViewSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZN11SvXMLImport24SetConfigurationSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZN11SvXMLImport14DisposingModelEv
+	.long	_ZN11SvXMLImport10initXFormsEv
+	.long	-16
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
+	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
+	.long	-20
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn20_N11SvXMLImport13startDocumentEv
+	.long	_ZThn20_N11SvXMLImport11endDocumentEv
+	.long	_ZThn20_N11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
+	.long	_ZThn20_N11SvXMLImport10endElementERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport10charactersERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
+	.long	_ZThn20_N11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
+	.long	_ZThn20_N11SvXMLImport10startCDATAEv
+	.long	_ZThn20_N11SvXMLImport8endCDATAEv
+	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
+	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
+	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
+	.long	-24
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn24_N11SvXMLImport21getImplementationNameEv
+	.long	_ZThn24_N11SvXMLImport15supportsServiceERKN3rtl8OUStringE
+	.long	_ZThn24_N11SvXMLImport24getSupportedServiceNamesEv
+	.long	-28
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn28_N11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
+	.long	-32
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn32_N11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
+	.long	-36
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn36_N11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
+	.long	_ZThn36_N11SvXMLImport6cancelEv
+	.long	-40
+	.long	_ZTI11SvXMLImport
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
+	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
+	.long	_ZThn40_N11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
+	.hidden	_ZTV24SvXMLImportEventListener
+	.weak	_ZTV24SvXMLImportEventListener
+
+// Herein lies the problem:
+// 
+Init vtable idx 2:  
+     t - (SvxXMLXTableImport)
+     binfo - (com::sun::star::xml::sax::XExtendedDocumentHandler)
+     orig_binfo - (com::sun::star::xml::sax::XExtendedDocumentHandler)
+     rtti-binfo - (SvxXMLXTableImport)
+     primary-binfo (com::sun::star::xml::sax::XDocumentHandler)** 2 inits **
+
+  /* Write details about vtable inheritance, if we have any parent entries */
+  if (slot_relocs)
+  {
+      unsigned i;
+      tree copy_parent = orig_binfo;
+      if (orig_binfo == TYPE_BINFO (t))
+          copy_parent = get_primary_binfo (orig_binfo);
+
+
+** FIXME:intests,definekey method in.cxx ...
+
+crashes on:
+86        pWeak->getTypes();
+
+(gdb) p (void (void) **)&_ZTV15DerivedFromWeak
+
+
+** Broken copy offset: [!?]
+
+(gdb) p $17[8]
+$43 = (void (*)(void)) 0x8048fe4 <typeinfo for DerivedFromWeak>
+(gdb) p $17[9]
+$44 = (void (*)(void)) 0x804876c <XTypeProvider::getTypes()>
+(gdb) p $17[10]
+$45 = (void (*)(void)) 0xffffffec
+
+From XTypeProvider [!]
+
+_ZVTR_00000005_15DerivedFromWeak:
+	.long	_ZTV15WeakImplHelper1I24XAccessibleEventListenerE+8
+	.long	_ZTV15DerivedFromWeak+8
+	.long	14723
+
+should be:
+	.long	-12
+	.long	_ZTI15DerivedFromWeak
+	.long	_ZN13XTypeProvider7acquireEv
+	.long	_ZN13XTypeProvider8getTypesEv
+
+_ZTV15WeakImplHelper1I24XAccessibleEventListenerE:
+	.long	0
+	.long	_ZTI15WeakImplHelper1I24XAccessibleEventListenerE
+	.long	_ZN5XWeak7acquireEv
+	.long	_ZN5XWeak12queryAdapterEv
+	.long	_ZN15WeakImplHelper1I24XAccessibleEventListenerED1Ev
+	.long	_ZN15WeakImplHelper1I24XAccessibleEventListenerED0Ev
+	.long	-12
+	.long	_ZTI15WeakImplHelper1I24XAccessibleEventListenerE
+	.long	_ZN13XTypeProvider7acquireEv
+	.long	_ZN13XTypeProvider8getTypesEv
+	.long	-20
+	.long	_ZTI15WeakImplHelper1I24XAccessibleEventListenerE
+	.long	_ZN14XEventListener7acquireEv
+	.long	_ZN14XEventListener9disposingEv
+	.long	_ZN24XAccessibleEventListener11notifyEventEv
+	[end]
+
+_ZTV15DerivedFromWeak:
+	.long	0
+	.long	_ZTI15DerivedFromWeak
+	.long	_ZN5XWeak7acquireEv
+	.long	_ZN5XWeak12queryAdapterEv
+	.long	_ZN15DerivedFromWeakD1Ev
+	.long	_ZN15DerivedFromWeakD0Ev
+	.long	_ZN15DerivedFromWeak9thunkfestEv  !!!!!!!!!!! new method !!!!!!!!!!
+	.long	-12
+	.long	_ZTI15DerivedFromWeak
+	.long	_ZN13XTypeProvider7acquireEv
+	.long	_ZN13XTypeProvider8getTypesEv
+	.long	-20
+	.long	_ZTI15DerivedFromWeak
+	.long	_ZN14XEventListener7acquireEv
+	.long	_ZN14XEventListener9disposingEv
+	.long	_ZN24XAccessibleEventListener11notifyEventEv
+	[end]
+
+ie. vtables can grow in the middle - *because* we find
+    vmethods from the instance, and this has fixed up
+    pointers.
+	+ the instance fixup numbers are stored in
+	  BINFO_OFFSET - but this is an instance fixup
+	  offset: not what we want in fact.
+
+* What data do we have to hand ? *
+	* What data do we need to get through to this thing ? *
+
+* FIXME: how does a virtual function call, find which fn
+  it is in a vtable ?
+
+	* FIXME: if we could just compare lists of
+	  inits straight ? would that be easier ?
+		* and zap them later ?
+		* could include the int csts etc. ?
+		* very simple & generic ?
+
+DerivedFromWeak (0xb7dd4740) 0
+  WeakImplHelper1<XAccessibleEventListener> (0xb7dd1510) 0
+      primary-for DerivedFromWeak (0xb7dd4740)
+    OWeakObject (0xb7dd4780) 0
+        primary-for WeakImplHelper1<XAccessibleEventListener> (0xb7dd1510)
+      XWeak (0xb7dd47c0) 0
+          primary-for OWeakObject (0xb7dd4780)
+        XInterface (0xb7dd4800) 0 nearly-empty
+            primary-for XWeak (0xb7dd47c0)
+    XTypeProvider (0xb7dd4840) 12
+      XInterface (0xb7dd4880) 12 nearly-empty
+          primary-for XTypeProvider (0xb7dd4840)
+    XAccessibleEventListener (0xb7dd48c0) 20
+      XEventListener (0xb7dd4900) 20
+          primary-for XAccessibleEventListener (0xb7dd48c0)
+        XInterface (0xb7dd4940) 20 nearly-empty
+            primary-for XEventListener (0xb7dd4900)
+
+ie.
+	+ We cannot do a linear copy from 
+		_ZTV15WeakImplHelper1I24XAccessibleEventListenerE:
+	+ to 
+		_ZTV15DerivedFromWeak:
+
+	+ we need to skip pieces ... ! :-)
+		+ our new vtable is longer.
+		+ SOOoooo .... :-)
+		+ need to notice & calc the difference [?]
+
+Mismatch vs:
+	from WeakImplHelper1<XAccessibleEventListener> (16) entries
+	  0	NULL
+	  1	NULL
+	  2	XWeak::acquire [ 0 ]
+	  3	XWeak::queryAdapter [ 1 ]
+	  4	NULL
+	  5	NULL
+	  6	NULL
+	  7	NULL	** One too many here ! **
+	  8	NULL
+	  9	XTypeProvider::acquire [ 0 ]
+	 10	XTypeProvider::getTypes [ 1 ]
+	 11	NULL
+	 12	NULL
+	 13	XEventListener::acquire [ 0 ]
+	 14	XEventListener::disposing [ 1 ]
+	 15	XAccessibleEventListener::notifyEvent [ 2 ]
+
+
+*** FIXME:
+	+ a nice generic algorithm for comparing classes ...
+
+	+ a set of inits can be seen as:
+		+ [[<offsets>]+<type-info>[method+]]+
+		+ => we can use the type-info pieces to
+		     thunk this pleasantly.
+		+ this substantially shrinks the search space ...
+		+ <type-info> is prolly optional - 
+
+	+ FIXME: print-out a set of examples & hack up an algorithm ...
+	+ compile a.cxx and b.cxx etc.
+
+
+VTable for 'VVirt'
+	0     28u
+	4     (int (*)(...))0
+	8     (int (*)(...))(& _ZTI5VVirt)
+	12    XTypeProvider::acquire
+	16    XTypeProvider::getTypes
+	20    VVirt::~VVirt
+	24    VVirt::~VVirt
+	28    16u
+	32    (int (*)(...))-0x00000000c
+	36    (int (*)(...))(& _ZTI5VVirt)
+	40    XEventListener::acquire
+	44    XEventListener::disposing
+	48    XAccessibleEventListener::notifyEvent
+	52    VVirt::_ZThn12_N5VVirtD1Ev
+	56    VVirt::_ZThn12_N5VVirtD0Ev
+	60    -28u
+	64    0u
+	68    0u
+	72    (int (*)(...))-0x00000001c
+	76    (int (*)(...))(& _ZTI5VVirt)
+	80    XWeak::acquire
+	84    XWeak::queryAdapter
+	88    VVirt::_ZTv0_n20_N5VVirtD1Ev
+	92    VVirt::_ZTv0_n20_N5VVirtD0Ev
+	96    -267522035u
+Inherited from:
+VTable for 'VBase1'
+	0     12u
+	4     (int (*)(...))0
+	8     (int (*)(...))(& _ZTI6VBase1)
+	12    XTypeProvider::acquire
+	16    XTypeProvider::getTypes
+	20    VBase1::~VBase1
+	24    VBase1::~VBase1
+	28    -12u
+	32    0u
+	36    0u
+	40    (int (*)(...))-0x00000000c
+	44    (int (*)(...))(& _ZTI6VBase1)
+	48    XWeak::acquire
+	52    XWeak::queryAdapter
+	56    VBase1::_ZTv0_n20_N6VBase1D1Ev
+	60    VBase1::_ZTv0_n20_N6VBase1D0Ev
+	64    -267522035u
+same ? 0 or super-type
+VTable for 'VBase2'
+	0     16u
+	4     (int (*)(...))0
+	8     (int (*)(...))(& _ZTI6VBase2)
+	12    XEventListener::acquire
+	16    XEventListener::disposing
+	20    XAccessibleEventListener::notifyEvent
+	24    VBase2::~VBase2
+	28    VBase2::~VBase2
+	32    -16u
+	36    0u
+	40    0u
+	44    (int (*)(...))-0x000000010
+	48    (int (*)(...))(& _ZTI6VBase2)
+	52    XWeak::acquire
+	56    XWeak::queryAdapter
+	60    VBase2::_ZTv0_n20_N6VBase2D1Ev
+	64    VBase2::_ZTv0_n20_N6VBase2D0Ev
+	68    -267522035u
+
+FIXME: bitmask or bitmap ? ...
+FIXME: Look at construction vtables: turn them off ? ...
+	+ or does it work ok ?
+
+
+Compiling desktop, we get horrors like:
+
+vtcopies: 2 records
+	copy from MessBox+3 to MessBox+3 mask 0xffffffff
+	copy from MessBox+36 to MessBox+36 mask 0x7fffffff
+
+
+../../unxlngi6.pro/slo/dp_package.o:(.data.rel.ro+0x1f0): undefined reference to `non-virtual thunk to dp_registry::backend::bundle::(anonymous namespace)::BackendImpl::PackageImpl::getVersion()'
+
+** FIXME: we're clobbering the wrong things ! :-)
+
+	0     (int (*)(...))0
+!!	1     (int (*)(...))(& _ZTIN11dp_registry7backend6bundle117_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_deployment_registry_package_dp_package.cxx_00000000_CEA456DD11BackendImpl11PackageImplE)
+!!	2     cppu::WeakComponentImplHelper1<Ifc1>::queryInterface [with Ifc1 = com::sun::star::deployment::XPackage]
+!!	3     cppu::WeakComponentImplHelper1<Ifc1>::acquire [with Ifc1 = com::sun::star::deployment::XPackage]
+!!	4     cppu::WeakComponentImplHelper1<Ifc1>::release [with Ifc1 = com::sun::star::deployment::XPackage]
+	5     cppu::OWeakObject::queryAdapter
+	6     dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::~PackageImpl
+	7     dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::~PackageImpl
+!!	8     dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::disposing
+!!	9     dp_registry::backend::Package::dispose
+!!	10    dp_registry::backend::Package::addEventListener
+!!	11    dp_registry::backend::Package::removeEventListener
+!!	12    cppu::WeakComponentImplHelper1<Ifc1>::getTypes [with Ifc1 = com::sun::star::deployment::XPackage]
+	13    cppu::WeakComponentImplHelper1<Ifc1>::getImplementationId [with Ifc1 = com::sun::star::deployment::XPackage]
+	14    dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::isRegistered_
+!!	15    dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::processPackage_
+!!	16    dp_registry::backend::Package::addModifyListener
+!!	17    dp_registry::backend::Package::removeModifyListener
+!!	18    dp_registry::backend::Package::createAbortChannel
+	19    dp_registry::backend::Package::isRegistered
+
+An offset of 1 (somehow) [urgh!] - why ? mismatch with bitmask ?
+
+
+
+** Well !!!
+	+ now we have it working well ...
+		+ everything is broken :-)
+	+ and we get the copy-relocs problem again ...
+	+ [ FIXME: should we just have a hidden visibility
+	    symbol / label that points into the vtable
+	    and link our vtrelocs to that ? ]
+
+
+** FIXME:
+	+ build test 
+		+ why do our tests not work here ?
+		+ ho hum ...
+
+
+** Binutils hack:
+	+ post-process the section, and downgrade the reloc ?
+		+ in per-backend specific foo ?
+	+ re-write the relocs ?
+
+	+ load the section - force in the relocs,
+		+ clobber them just before we sort relocs (?)
+		+ doesn't change the section size of course.
+
+	+ FIXME: chase visibility through linking ...
+		+ look at reloc sorting etc.
+		+ look at targets ...
+			+ can we easily locate .suse.vtrelocs ?
+			+ can we find relocations into it ?
+			+ can we determine -which- are the 'dest'
+			  relocs %3 or something ?
+
+A typical soffice.bin symbol search:
+
+	* what is obvious:
+		+ ordering is *totally* crack smoking ...
+		+ if a vtable is defined - then we have the info to fix it up.
+
+		+ the problem is ...
+			+ copy relocs [!]
+
+		+ if *dest* is clobbered ...
+			+ we still -copy- **from** (potentially) soffice.bin ...
+				+ can give a chain-of-poisoning - that runs
+				  well outside soffice.bin ...
+			+ *so* !?
+			+ urgh ... do we need to manual symbol lookup
+			  avoiding soffice.bin ?
+				+ does that fix it ?
+
+	* Apparently ...
+		+ relocation processing happens in a pseudo-random
+		  order too [!]
+		+ ** Surely **
+			+ there must be an 'init' order that we can
+			  bootstrap off ?
+			+ perhaps that happens after copy-reloc
+			  processing too !?
+			+ can we re-use that order in advance ?
+
+lookup in file=/usr/lib/ooo-2.0/program/soffice.bin [0]
+
+lookup in file=/usr/lib/ooo-2.0/program/libvcl680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsvl680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsvt680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libutl680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libtl680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libi18nisolang1gcc3.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libcomphelp4gcc3.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libucbhelper4gcc3.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libvos3gcc3.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libuno_cppuhelpergcc3.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libuno_cppu.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libuno_sal.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libtk680li.so [0]
+lookup in file=/usr/lib/libXext.so.6 [0]
+lookup in file=/usr/lib/libSM.so.6 [0]
+lookup in file=/usr/lib/libICE.so.6 [0]
+lookup in file=/usr/lib/libX11.so.6 [0]
+lookup in file=/lib/libdl.so.2 [0]
+lookup in file=/lib/libpthread.so.0 [0]
+lookup in file=/usr/lib/libstdc++.so.6 [0]
+lookup in file=/lib/libm.so.6 [0]
+lookup in file=/lib/libgcc_s.so.1 [0]
+lookup in file=/lib/libc.so.6 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libpsp680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsot680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libbasegfx680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libicuuc.so.36 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libicule.so.36 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libjvmaccessgcc3.so.3 [0]
+lookup in file=/usr/lib/libfreetype.so.6 [0]
+lookup in file=/lib/libz.so.1 [0]
+lookup in file=/usr/lib/libjpeg.so.62 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libjvmfwk.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libuno_salhelpergcc3.so.3 [0]
+lookup in file=/lib/libcrypt.so.1 [0]
+lookup in file=/usr/lib/libXau.so.6 [0]
+lookup in file=/usr/lib/libxcb-xlib.so.0 [0]
+lookup in file=/usr/lib/libxcb.so.1 [0]
+lookup in file=/lib/ld-linux.so.2 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libicudata.so.36 [0]
+lookup in file=/usr/lib/libxml2.so.2 [0]
+lookup in file=/usr/lib/dri/fglrx_dri.so [0]
+lookup in file=/usr/lib/libstdc++.so.5 [0]
+lookup in file=/lib/librt.so.1 [0]
+lookup in file=/usr/lib/xorg/libGL.so.1 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libgcc3_uno.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libexlink680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libreg.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libstore.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/libunsafe_uno_uno.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libuno_purpenvhelpergcc3.so.3 [0]
+lookup in file=/usr/lib/ooo-2.0/program/desktopbe1.uno.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libspl_unx680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libfwl680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libfwi680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsfx680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libfwe680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsb680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libxcr680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libj680li_g.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libfwk680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libspl680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libfilterconfig1.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsvx680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libavmedia680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libxo680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libgo680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/liblng680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libi18nutilgcc3.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libdtransX11680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libuui680li.so [0]
+lookup in file=/usr/lib/ooo-2.0/program/libsw680li.so [0]
+
+** Processing relocs **
+
+      9962:	relocation processing: /usr/lib/libxml2.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicudata.so.36 (lazy)
+      9962:	relocation processing: /usr/lib/libxcb.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libxcb-xlib.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libXau.so.6 (lazy)
+      9962:	relocation processing: /lib/libcrypt.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_salhelpergcc3.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libjvmfwk.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/libjpeg.so.62 (lazy)
+      9962:	relocation processing: /lib/libz.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libfreetype.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libjvmaccessgcc3.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicule.so.36 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicuuc.so.36 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libbasegfx680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsot680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libpsp680li.so (lazy)
+      9962:	relocation processing: /lib/libc.so.6 (lazy)
+      9962:	relocation processing: /lib/libgcc_s.so.1 (lazy)
+      9962:	relocation processing: /lib/libm.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/libstdc++.so.6 (lazy)
+      9962:	relocation processing: /lib/libpthread.so.0 (lazy)
+      9962:	relocation processing: /lib/libdl.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libX11.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/libICE.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/libSM.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/libXext.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libtk680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_sal.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_cppu.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_cppuhelpergcc3.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvos3gcc3.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libucbhelper4gcc3.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libcomphelp4gcc3.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libi18nisolang1gcc3.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libtl680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libutl680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsvt680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsvl680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvcl680li.so (lazy)
+      9962:	relocation processing: ./soffice.bin (lazy)
+      9962:	relocation processing: /lib/ld-linux.so.2
+      9962:	relocation processing: /usr/lib/libogg.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libjack.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libasound.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libFLAC.so.8 (lazy)
+      9962:	relocation processing: /lib/libexpat.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libstartup-notification-1.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libportaudio.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libsndfile.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libpcre.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libxcb-render.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libxcb-render-util.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libpng12.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libglitz.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libpangoft2-1.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libXcursor.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libXrandr.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libXi.so.6 (lazy)
+      9962:	relocation processing: /usr/lib/libXinerama.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libXrender.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libfontconfig.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libXfixes.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/libXdamage.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libXcomposite.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvclplug_gen680li.so (lazy)
+      9962:	relocation processing: /usr/lib/libglib-2.0.so.0 (lazy)
+      9962:	relocation processing: /lib/librt.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libgthread-2.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libgmodule-2.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libgobject-2.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libcairo.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libpango-1.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libpangocairo-1.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libgdk_pixbuf-2.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libatk-1.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libgdk-x11-2.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libgtk-x11-2.0.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvclplug_gtk680li.so (lazy)
+      9962:	relocation processing: /lib/libnsl.so.1 (lazy)
+      9962:	relocation processing: /lib/libnss_compat.so.2 (lazy)
+      9962:	relocation processing: /lib/libnss_files.so.2 (lazy)
+      9962:	relocation processing: /lib/libnss_nis.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libelf.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/bug-buddy/libbreakpad.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/gtk-2.0/modules/libgnomebreakpad.so (lazy)
+      9962:	relocation processing: /usr/lib/gconv/ISO8859-1.so (lazy)
+      9962:	relocation processing: /usr/lib/xorg/libGL.so.1
+      9962:	relocation processing: /usr/lib/libstdc++.so.5
+      9962:	relocation processing: /usr/lib/dri/fglrx_dri.so
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libgcc3_uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libstore.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libreg.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libexlink680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/servicemgr.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/shlibloader.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/simplereg.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/nestedreg.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/typemgr.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/implreg.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/security.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_purpenvhelpergcc3.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libunsafe_uno_uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/regtypeprov.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/configmgr2.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/typeconverter.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/sysmgr1.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/desktopbe1.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/libORBit-2.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/libgconf-2.so.4 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/gconfbe1.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/behelper.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/sax.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/localebe1.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/uriproc.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libspl680li.so (lazy)
+      9962:	relocation processing: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so (lazy)
+      9962:	relocation processing: /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libpackage2.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwi680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwl680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfileacc.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libucb1.so (lazy)
+      9962:	relocation processing: /lib/libutil.so.1 (lazy)
+      9962:	relocation processing: /lib/libresolv.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libavahi-client.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/libavahi-common.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/libavahi-glib.so.1 (lazy)
+      9962:	relocation processing: /usr/lib/libcrypto.so.0.9.8 (lazy)
+      9962:	relocation processing: /usr/lib/libssl.so.0.9.8 (lazy)
+      9962:	relocation processing: /lib/libdbus-1.so.3 (lazy)
+      9962:	relocation processing: /usr/lib/libdbus-glib-1.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libgnomevfs-2.so.0 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/ucpgvfs1.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libucpfile1.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libj680li_g.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libxcr680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsb680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwe680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsfx680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwk680li.so (lazy)
+      9962:	relocation processing: /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so (lazy)
+      9962:	relocation processing: /usr/lib/pango/1.6.0/modules/pango-basic-fc.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libi18nutilgcc3.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/liblng680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libgo680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libxo680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libavmedia680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsvx680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuui680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfilterconfig1.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libdtransX11680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsw680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicui18n.so.36 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/i18npool.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/liblocaledata_en.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/fsstorage.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libxstor.so (lazy)
+      9962:	relocation processing: /usr/lib/libcups.so.2 (lazy)
+      9969:	relocation processing: /lib/libc.so.6 (lazy)
+      9969:	relocation processing: /lib/libdl.so.2 (lazy)
+      9969:	relocation processing: /lib/libncurses.so.5 (lazy)
+      9969:	relocation processing: /lib/libhistory.so.5 (lazy)
+      9969:	relocation processing: /lib/libreadline.so.5 (lazy)
+      9969:	relocation processing: sh (lazy)
+      9969:	relocation processing: /lib/ld-linux.so.2
+      9962:	relocation processing: /usr/lib/libsasl2.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/liblber-2.4.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/libldap-2.4.so.2 (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/ldapbe2.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/vbaevents680li.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libdbtools680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfrm680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/introspection.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/reflection.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libevtatt.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libmcnttype.so (lazy)
+      9962:	relocation processing: /usr/lib/libdb-4.5.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/libdeploymentmisc680li.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/deployment680li.uno.so (lazy)
+      9962:	relocation processing: /usr/lib/ooo-2.0/program/ucpexpand1.uno.so (lazy)
+
+
+
+
+ldd ./libvcl680li.so 
+        linux-gate.so.1 =>  (0xffffe000)
+        libpsp680li.so => /opt/OOInstall/program/./libpsp680li.so (0xb7c15000)
+        libsot680li.so => /opt/OOInstall/program/./libsot680li.so (0xb7bc7000)
+        libutl680li.so => /opt/OOInstall/program/./libutl680li.so (0xb7b56000)
+        libtl680li.so => /opt/OOInstall/program/./libtl680li.so (0xb7ad2000)
+        libi18nisolang1gcc3.so => /opt/OOInstall/program/./libi18nisolang1gcc3.so (0xb7acb000)
+        libcomphelp4gcc3.so => /opt/OOInstall/program/./libcomphelp4gcc3.so (0xb79f1000)
+        libucbhelper4gcc3.so => /opt/OOInstall/program/./libucbhelper4gcc3.so (0xb7994000)
+        libuno_cppuhelpergcc3.so.3 => /opt/OOInstall/program/./libuno_cppuhelpergcc3.so.3 (0xb7911000)
+        libuno_cppu.so.3 => /opt/OOInstall/program/./libuno_cppu.so.3 (0xb78e3000)
+        libvos3gcc3.so => /opt/OOInstall/program/./libvos3gcc3.so (0xb78c0000)
+        libuno_sal.so.3 => /opt/OOInstall/program/./libuno_sal.so.3 (0xb787a000)
+        libbasegfx680li.so => /opt/OOInstall/program/./libbasegfx680li.so (0xb7825000)
+        libicuuc.so.36 => /opt/OOInstall/program/./libicuuc.so.36 (0xb7714000)
+        libicule.so.36 => /opt/OOInstall/program/./libicule.so.36 (0xb76d4000)
+        libjvmaccessgcc3.so.3 => /opt/OOInstall/program/./libjvmaccessgcc3.so.3 (0xb76cb000)
+        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb763f000)
+        libz.so.1 => /lib/libz.so.1 (0xb762c000)
+        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7511000)
+        libXext.so.6 => /usr/lib/libXext.so.6 (0xb7502000)
+        libdl.so.2 => /lib/libdl.so.2 (0xb74fe000)
+        libpthread.so.0 => /lib/libpthread.so.0 (0xb74e6000)
+        libstlport_gcc.so => /opt/OOInstall/program/./libstlport_gcc.so (0xb741c000)
+        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb732e000)
+        libm.so.6 => /lib/libm.so.6 (0xb7309000)
+        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb72fb000)
+        libc.so.6 => /lib/libc.so.6 (0xb71c8000)
+        libjvmfwk.so.3 => /opt/OOInstall/program/./libjvmfwk.so.3 (0xb71af000)
+        libuno_salhelpergcc3.so.3 => /opt/OOInstall/program/./libuno_salhelpergcc3.so.3 (0xb71aa000)
+        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7178000)
+        libicudata.so.36 => /opt/OOInstall/program/./libicudata.so.36 (0xb6b56000)
+        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb6b53000)
+        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6b3a000)
+        libXau.so.6 => /usr/lib/libXau.so.6 (0xb6b36000)
+        /lib/ld-linux.so.2 (0x80000000)
+        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb69f6000)
+
+** FIXME: 'inits' **
+   ... are a far better fit ...
+
+	OTOH - memory protection etc. ? ... ;-)
+
+
+
+     10963:	calling init: /lib/libpthread.so.0
+     10963:	calling init: /lib/libc.so.6
+     10963:	calling init: /usr/lib/libXau.so.6
+     10963:	calling init: /usr/lib/libxcb.so.1
+     10963:	calling init: /usr/lib/libxcb-xlib.so.0
+     10963:	calling init: /lib/libcrypt.so.1
+     10963:	calling init: /usr/lib/libjpeg.so.62
+     10963:	calling init: /lib/libz.so.1
+     10963:	calling init: /usr/lib/libfreetype.so.6
+     10963:	calling init: /lib/libgcc_s.so.1
+     10963:	calling init: /lib/libm.so.6
+     10963:	calling init: /usr/lib/libstdc++.so.6
+     10963:	calling init: /usr/lib/ooo-2.0/program/libicuuc.so.36
+     10963:	calling init: /usr/lib/ooo-2.0/program/libicule.so.36
+     10963:	calling init: /lib/libdl.so.2
+     10963:	calling init: /usr/lib/libxml2.so.2
+     10963:	calling init: /usr/lib/libX11.so.6
+     10963:	calling init: /usr/lib/libICE.so.6
+     10963:	calling init: /usr/lib/libSM.so.6
+     10963:	calling init: /usr/lib/libXext.so.6
+     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_sal.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_salhelpergcc3.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_cppu.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libjvmaccessgcc3.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_cppuhelpergcc3.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libjvmfwk.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libbasegfx680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libvos3gcc3.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libucbhelper4gcc3.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libcomphelp4gcc3.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libi18nisolang1gcc3.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libtl680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libutl680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsot680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libpsp680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libvcl680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libtk680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsvl680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsvt680li.so
+     10963:	initialize program: ./soffice.bin
+     10963:	calling init: /usr/lib/libogg.so.0
+     10963:	calling init: /lib/libexpat.so.1
+     10963:	calling init: /usr/lib/libpcre.so.0
+     10963:	calling init: /usr/lib/libxcb-render.so.0
+     10963:	calling init: /usr/lib/libxcb-render-util.so.0
+     10963:	calling init: /usr/lib/libfontconfig.so.1
+     10963:	calling init: /usr/lib/libFLAC.so.8
+     10963:	calling init: /usr/lib/libsndfile.so.1
+     10963:	calling init: /usr/lib/libpng12.so.0
+     10963:	calling init: /usr/lib/libglitz.so.1
+     10963:	calling init: /usr/lib/libglib-2.0.so.0
+     10963:	calling init: /lib/librt.so.1
+     10963:	calling init: /usr/lib/libgthread-2.0.so.0
+     10963:	calling init: /usr/lib/libjack.so.0
+     10963:	calling init: /usr/lib/libasound.so.2
+     10963:	calling init: /usr/lib/libportaudio.so.2
+     10963:	calling init: /usr/lib/libstartup-notification-1.so.0
+     10963:	calling init: /usr/lib/libXrender.so.1
+     10963:	calling init: /usr/lib/libXfixes.so.3
+     10963:	calling init: /usr/lib/libXcursor.so.1
+     10963:	calling init: /usr/lib/libXdamage.so.1
+     10963:	calling init: /usr/lib/libXrandr.so.2
+     10963:	calling init: /usr/lib/libXi.so.6
+     10963:	calling init: /usr/lib/libXinerama.so.1
+     10963:	calling init: /usr/lib/libXcomposite.so.1
+     10963:	calling init: /usr/lib/ooo-2.0/program/libvclplug_gen680li.so
+     10963:	calling init: /usr/lib/libgmodule-2.0.so.0
+     10963:	calling init: /usr/lib/libgobject-2.0.so.0
+     10963:	calling init: /usr/lib/libcairo.so.2
+     10963:	calling init: /usr/lib/libpango-1.0.so.0
+     10963:	calling init: /usr/lib/libpangoft2-1.0.so.0
+     10963:	calling init: /usr/lib/libpangocairo-1.0.so.0
+     10963:	calling init: /usr/lib/libgdk_pixbuf-2.0.so.0
+     10963:	calling init: /usr/lib/libatk-1.0.so.0
+     10963:	calling init: /usr/lib/libgdk-x11-2.0.so.0
+     10963:	calling init: /usr/lib/libgtk-x11-2.0.so.0
+     10963:	calling init: /usr/lib/ooo-2.0/program/libvclplug_gtk680li.so
+     10963:	calling init: /lib/libnsl.so.1
+     10963:	calling init: /lib/libnss_compat.so.2
+     10963:	calling init: /lib/libnss_files.so.2
+     10963:	calling init: /lib/libnss_nis.so.2
+     10963:	calling init: /usr/lib/libelf.so.1
+     10963:	calling init: /usr/lib/bug-buddy/libbreakpad.so.0
+     10963:	calling init: /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
+     10963:	calling init: /usr/lib/gconv/ISO8859-1.so
+     10963:	calling init: /usr/lib/xorg/libGL.so.1
+     10963:	calling init: /usr/lib/libstdc++.so.5
+     10963:	calling init: /usr/lib/dri/fglrx_dri.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libgcc3_uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libstore.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libreg.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libexlink680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/servicemgr.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/shlibloader.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/simplereg.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/nestedreg.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/typemgr.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/implreg.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/security.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_purpenvhelpergcc3.so.3
+     10963:	calling init: /usr/lib/ooo-2.0/program/libunsafe_uno_uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/regtypeprov.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/configmgr2.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/typeconverter.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/sysmgr1.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/desktopbe1.uno.so
+     10963:	calling init: /usr/lib/libORBit-2.so.0
+     10963:	calling init: /usr/lib/libgconf-2.so.4
+     10963:	calling init: /usr/lib/ooo-2.0/program/gconfbe1.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/behelper.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/sax.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/localebe1.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/uriproc.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libspl680li.so
+     10963:	calling init: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so
+     10963:	calling init: /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libpackage2.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfwi680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfwl680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfileacc.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libucb1.so
+     10963:	calling init: /lib/libutil.so.1
+     10963:	calling init: /lib/libresolv.so.2
+     10963:	calling init: /lib/libdbus-1.so.3
+     10963:	calling init: /usr/lib/libavahi-common.so.3
+     10963:	calling init: /usr/lib/libavahi-glib.so.1
+     10963:	calling init: /usr/lib/libdbus-glib-1.so.2
+     10963:	calling init: /usr/lib/libavahi-client.so.3
+     10963:	calling init: /usr/lib/libcrypto.so.0.9.8
+     10963:	calling init: /usr/lib/libssl.so.0.9.8
+     10963:	calling init: /usr/lib/libgnomevfs-2.so.0
+     10963:	calling init: /usr/lib/ooo-2.0/program/ucpgvfs1.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libucpfile1.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libj680li_g.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libxcr680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsb680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfwe680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsfx680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfwk680li.so
+     10963:	calling init: /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so
+     10963:	calling init: /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libi18nutilgcc3.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libgo680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libxo680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/liblng680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libavmedia680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsvx680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libuui680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfilterconfig1.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libdtransX11680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libsw680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libicui18n.so.36
+     10963:	calling init: /usr/lib/ooo-2.0/program/i18npool.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/liblocaledata_en.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/fsstorage.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libxstor.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/vbaevents680li.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libdbtools680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libfrm680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/introspection.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/reflection.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libevtatt.so
+     10963:	calling init: /usr/lib/libcups.so.2
+     10970:	calling init: /lib/libc.so.6
+     10970:	calling init: /lib/libdl.so.2
+     10970:	calling init: /lib/libncurses.so.5
+     10970:	calling init: /lib/libhistory.so.5
+     10970:	calling init: /lib/libreadline.so.5
+     10963:	calling init: /usr/lib/libdb-4.5.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libdeploymentmisc680li.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/deployment680li.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/ucpexpand1.uno.so
+     10963:	calling init: /usr/lib/liblber-2.4.so.2
+     10963:	calling init: /usr/lib/libsasl2.so.2
+     10963:	calling init: /usr/lib/libldap-2.4.so.2
+     10963:	calling init: /usr/lib/ooo-2.0/program/ldapbe2.uno.so
+     10963:	calling init: /usr/lib/ooo-2.0/program/libmcnttype.so
+
+
+** FIXME:
+	+ working well ... but we now export a -load- of named relocs to
+	  vtables that we didn't (apparently) before (?)
+		+ is this good in the long run ? (comdat?)
+		+ how can that have changed ? [ of course our own relocations ... but ... ;-]
+	+ diff /tmp/old -> /tmp/new ...
+	+ will this clobber linking in fact ?
+		+ all these are 'dest' vtables ...
+		+ [ FIXME: ugly hacks to resolve internally ? ;-]
+			+ falls over the copy-reloc problem again ... ;-)
+		+ unless we re-do glibc foo ...
+
+
+
+FIXME use:
+	-Wl,--Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+	
+FIXME: why does it crash ?
+
+
+FIXME:
+	PropertySetMixin ...
+		+ has no vtable to copy from ! :-)
+		+ but then defines no virtual methods either ...
+		+ so - surely, we should copy from the next parent up ?
+			+ how does gcc know not to emit a vtable ?
+			+ is there just no trigger method ?
+		+ can we build a test ? ...
+	
+
+
+TODO:
+	gcc - do we need the custom 'decl' logic ?
+		+ is it enough just to initialize the decl in class.c ?
+		+ add a command-line option, and bin the environment variables ...
+			+ add a 'debug foo' env. var in 1 place
+	binutils ...
+		+ SEC_EXCLUDE - if we don't have anything in the section ...
+
+
+** FIXME: 
+     29526:     binding file /opt/NNInstall/program/libsvt680li.so [0] to /opt/NNInstall/program/libsvt680li.so [0]: normal symbol `sRTF_SHADOW'
+
+	svtools/source/svrtf/rtfkeywd.hxx [ fix me ! ]
+		+ broken - linking wise...
+cf.	sw/source/filter/rtf/ ...
+
+	svtools/inc/htmlkeywd
+
+		+ 2.5% of the total ! ;-)
+		+ 1481 unique named relocs ... [!]
+			+ and a ton of symbols and size etc.
+
+		+ 911 - 'sHTML' relocations as well [!]
+
+
+** FIXME:
+	+ construction vtables:
+		+ need a regression test
+		+ ensure the vtrelocs refer to the right symbol
+			+ (they do not !) ;-)
+
+michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> MOREDEBUG=1 g++  -fmessage-length=0 -S -Os -fno-strict-aliasing   -fvisibility=hidden -I.  -I../../unxlngi6.pro/inc/svcontnr -I../inc -I../../inc/pch -I../../inc -I../../unx/inc -I../../unxlngi6.pro/inc -I. -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/stl -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/external -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/unxlngi6/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/res -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/stl -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/inc/Xp31 -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I/usr/lib/jvm/java/include/native_threads/include -I/usr/include     -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/offuh -I. -I../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy     -Wno-non-virtual-dtor   -fpic -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1 -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DGSTREAMER -DCUI -DSOLAR_JAVA -DOOH680=OOH680   -DSVT_DLLIMPLEMENTATION -DSHAREDLIB -D_DLL_   -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON  -o /tmp/fileview.s /home/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr/fileview.cxx >& /tmp/fileview.s.output
+michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTv0_n12_N3vos6OTimerD1Ev
+virtual thunk to vos::OTimer::~OTimer()
+michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE:
+_ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE:
+michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE:
+_ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE:
+michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE 
+vtable for (anonymous namespace)::CallbackTimer
+michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE 
+construction vtable for vos::OTimer-in-(anonymous namespace)::CallbackTimer
+
+
+
+../unxlngi6.pro/slo/basdoc.o:(.data.rel.ro._ZTC13BasicDocShell48_9SotObject[vtable
+for BasicDocShell]+0x74): undefined reference to `virtual thunk to
+SotObject::~SotObject()'
+
+Basically bogus: ... :-)
+
+Constr VTable for SotObject-in-BasicDocShell
+	0     0u
+	1     0u
+	2     0u
+	3     0u
+	4     0u
+	5     0u
+	6     0u
+	7     0u
+	8     0u
+	9     0u
+	10    16u
+	11    (int (*)(...))0
+	12    (int (*)(...))(& _ZTI9SotObject)
+	13    SotObject::~SotObject
+	14    SotObject::~SotObject
+	15    SotObject::Close
+	16    SotObject::GetSvFactory
+	17    SotObject::Cast
+	18    SotObject::TestObjRef
+	19    SotObject::TestInvariant
+	20    SotObject::GetInterface
+	21    SotObject::QueryDelete
+	22    SotObject::CreateAggObj
+	23    SotObject::FuzzyLock
+	24    -16u
+	25    -16u
+	26    (int (*)(...))-0x000000010
+	27    (int (*)(...))(& _ZTI9SotObject)
+	28    SotObject::_ZTv0_n12_N9SotObjectD1Ev
+	29    SotObject::_ZTv0_n12_N9SotObjectD0Ev
+	30    SotObject::_ZTv0_n16_N9SotObject11QueryDeleteEv
+Inherited from:
+VTable for SfxObjectShell
+	0     60u
+	1     44u
+	2     (int (*)(...))0
+	3     (int (*)(...))(& _ZTI14SfxObjectShell)
+	4     SfxBroadcaster::ListenersGone
+	5     SfxObjectShell::Type
+	6     SfxObjectShell::IsA
+	7     SfxObjectShell::~SfxObjectShell
+	8     SfxObjectShell::~SfxObjectShell
+	9     SfxShell::GetGlobalName
+	10    SfxObjectShell::GetInterface
+	11    SfxShell::GetUndoManager
+	12    SfxObjectShell::Invalidate
+	13    SfxShell::Activate
+	14    SfxShell::Deactivate
+	15    SfxShell::ParentActivate
+	16    SfxShell::ParentDeactivate
+	17    SfxShell::HasUIFeature
+	18    SfxObjectShell::GetObjectShell
+	19    SfxShell::CreateItemSet
+	20    SfxShell::ApplyItemSet
+	21    SfxObjectShell::ModifyChanged
+	22    SfxObjectShell::Close
+	23    __cxa_pure_virtual
+	24    SfxObjectShell::GetAPIName
+	25    SfxObjectShell::DoSaveCompleted
+	26    SfxObjectShell::LoadOwnFormat
+	27    SfxObjectShell::SaveAsOwnFormat
+	28    SfxObjectShell::ConvertFrom
+	29    SfxObjectShell::ConvertTo
+	30    SfxObjectShell::InitNew
+	31    SfxObjectShell::Load
+	32    SfxObjectShell::LoadFrom
+	33    SfxObjectShell::Save
+	34    SfxObjectShell::SaveAs
+	35    SfxObjectShell::SaveCompleted
+	36    SfxObjectShell::SwitchPersistance
+	37    SfxObjectShell::UpdateLinks
+	38    SfxObjectShell::QueryTitle
+	39    SfxObjectShell::CreateDocumentInfoDialog
+	40    SfxObjectShell::ViewAssigned
+	41    SfxObjectShell::PrepareClose
+	42    SfxObjectShell::IsInformationLost
+	43    SfxObjectShell::GetHiddenInformationState
+
+
+Mis comparison:
+
+p src_fn->decl_minimal->context->type.name
+
+
+* Is this a bogus warning: ?
+
+Making: ../../../unxlngi6.pro/slo/ViewTabBar.obj
+In file included from /home/opt/OpenOffice/HEAD/build/ooh680-m3/sd/source/ui/view/ViewTabBar.cxx:50:
+../inc/DrawController.hxx:130: warning: 'sd::DrawController' has a field 'sd::DrawController::<anonymous>' whose type uses the anonymous namespace
+../inc/DrawController.hxx:130: warning: 'sd::DrawController' has a base '<unnamed>::BroadcastHelperOwner' whose type uses the anonymous namespace
+
+
+
+These numbers are from a dlopen of libsvx:
+
+After: -Bsym with vtreloc & no thunks: HHInstall
+
+==6245== 
+==6245== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==6245== Collected : 93792593 30621698 12509521 5348 982519 40248 4415 106999 21671
+==6245== 
+==6245== I   refs:      93,792,593
+==6245== I1  misses:         5,348
+==6245== L2i misses:         4,415
+==6245== I1  miss rate:        0.0%
+==6245== L2i miss rate:        0.0%
+==6245== 
+==6245== D   refs:      43,131,219  (30,621,698 rd + 12,509,521 wr)
+==6245== D1  misses:     1,022,767  (   982,519 rd +     40,248 wr)
+==6245== L2d misses:       128,670  (   106,999 rd +     21,671 wr)
+==6245== D1  miss rate:        2.3% (       3.2%   +        0.3%  )
+==6245== L2d miss rate:        0.2% (       0.3%   +        0.1%  )
+==6245== 
+==6245== L2 refs:        1,028,115  (   987,867 rd +     40,248 wr)
+==6245== L2 misses:        133,085  (   111,414 rd +     21,671 wr)
+==6245== L2 miss rate:         0.0% (       0.0%   +        0.1%  )
+
+
+After: (-Bsym with vtreloc) NNInstall
+
+==5654== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==5654== Collected : 93934554 30683111 12523945 5401 1042727 39626 4460 108467 21739
+==5654== 
+==5654== I   refs:      93,934,554
+==5654== I1  misses:         5,401
+==5654== L2i misses:         4,460
+==5654== I1  miss rate:        0.0%
+==5654== L2i miss rate:        0.0%
+==5654== 
+==5654== D   refs:      43,207,056  (30,683,111 rd + 12,523,945 wr)
+==5654== D1  misses:     1,082,353  ( 1,042,727 rd +     39,626 wr)
+==5654== L2d misses:       130,206  (   108,467 rd +     21,739 wr)
+==5654== D1  miss rate:        2.5% (       3.3%   +        0.3%  )
+==5654== L2d miss rate:        0.3% (       0.3%   +        0.1%  )
+==5654== 
+==5654== L2 refs:        1,087,754  ( 1,048,128 rd +     39,626 wr)
+==5654== L2 misses:        134,666  (   112,927 rd +     21,739 wr)
+==5654== L2 miss rate:         0.0% (       0.0%   +        0.1%  )
+
+Before: (-Bsym - no vtreloc) OOInstall
+
+==5757== 
+==5757== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==5757== Collected : 103124440 33576208 13653348 5330 1063384 46609 4394 115172 21304
+==5757== 
+==5757== I   refs:      103,124,440
+==5757== I1  misses:          5,330
+==5757== L2i misses:          4,394
+==5757== I1  miss rate:         0.0%
+==5757== L2i miss rate:         0.0%
+==5757== 
+==5757== D   refs:       47,229,556  (33,576,208 rd + 13,653,348 wr)
+==5757== D1  misses:      1,109,993  ( 1,063,384 rd +     46,609 wr)
+==5757== L2d misses:        136,476  (   115,172 rd +     21,304 wr)
+==5757== D1  miss rate:         2.3% (       3.1%   +        0.3%  )
+==5757== L2d miss rate:         0.2% (       0.3%   +        0.1%  )
+==5757== 
+==5757== L2 refs:         1,115,323  ( 1,068,714 rd +     46,609 wr)
+==5757== L2 misses:         140,870  (   119,566 rd +     21,304 wr)
+==5757== L2 miss rate:          0.0% (       0.0%   +        0.1%  )
+
+Without -Bsymb-function: PPInstall
+
+==6021== 
+==6021== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==6021== Collected : 150810465 47775963 19058259 5441 1550394 53953 4440 155020 22712
+==6021== 
+==6021== I   refs:      150,810,465
+==6021== I1  misses:          5,441
+==6021== L2i misses:          4,440
+==6021== I1  miss rate:         0.0%
+==6021== L2i miss rate:         0.0%
+==6021== 
+==6021== D   refs:       66,834,222  (47,775,963 rd + 19,058,259 wr)
+==6021== D1  misses:      1,604,347  ( 1,550,394 rd +     53,953 wr)
+==6021== L2d misses:        177,732  (   155,020 rd +     22,712 wr)
+==6021== D1  miss rate:         2.4% (       3.2%   +        0.2%  )
+==6021== L2d miss rate:         0.2% (       0.3%   +        0.1%  )
+==6021== 
+==6021== L2 refs:         1,609,788  ( 1,555,835 rd +     53,953 wr)
+==6021== L2 misses:         182,172  (   159,460 rd +     22,712 wr)
+==6021== L2 miss rate:          0.0% (       0.0%   +        0.1%  )
+
+
+** So - instead go for size savings ! ;-)
+	+ call.c
+	+ is there an optimisation that converts a
+	  virtual call, to a direct one - if the type is
+	  fully known ? [!?]
+
+
+
+So - LD_DEBUG=bindings output:
+
+After:
+
+cat /tmp/linklog | sed 's/.*file '// | sed 's/ \[.*//' | sort | uniq -c | sort -n
+
+    456 /usr/lib/libgtk-x11-2.0.so.0
+    466 /opt/HHInstall/program/libfwe680li.so
+    479 /opt/HHInstall/program/bootstrap.uno.so
+    481 /opt/HHInstall/program/liblng680li.so
+    515 /usr/lib/libxml2.so.2
+    518 /opt/HHInstall/program/i18npool.uno.so
+    521 /usr/lib/libORBit-2.so.0
+    664 /usr/lib/libdb-4.5.so
+    694 /opt/HHInstall/program/libicuuc.so.36
+    929 /opt/HHInstall/program/libvcl680li.so
+    938 /opt/HHInstall/program/libsfx680li.so
+   1061 /opt/HHInstall/program/libfwk680li.so
+   1070 /opt/HHInstall/program/libstlport_gcc.so
+   1121 /usr/lib/libstdc++.so.6
+   1178 /opt/HHInstall/program/configmgr2.uno.so
+   1195 /opt/HHInstall/program/libsb680li.so
+   1667 /opt/HHInstall/program/libicui18n.so.36
+   2308 /opt/HHInstall/program/libsw680li.so
+   2664 /opt/HHInstall/program/libsvx680li.so
+   2855 /opt/HHInstall/program/libsvt680li.so
+
+with -Bsym-fn
+    687 /opt/OOInstall/program/libicuuc.so.36
+    943 /opt/OOInstall/program/libvcl680li.so
+   1075 /opt/OOInstall/program/libsb680li.so
+   1091 /opt/OOInstall/program/libstlport_gcc.so
+   1121 /usr/lib/libstdc++.so.6
+   1214 /opt/OOInstall/program/configmgr2.uno.so
+   1436 /opt/OOInstall/program/libsfx680li.so
+   1509 /opt/OOInstall/program/libfwk680li.so
+   1637 /opt/OOInstall/program/libicui18n.so.36
+   3553 /opt/OOInstall/program/libsvt680li.so
+   4037 /opt/OOInstall/program/libsw680li.so
+   4418 /opt/OOInstall/program/libsvx680li.so
+
+** so - why not a greater speedup ? - **
+
+before:
+
+   1091 /opt/PPInstall/program/libstlport_gcc.so
+   1121 /usr/lib/libstdc++.so.6
+   1174 /opt/PPInstall/program/libfwe680li.so
+   1181 /opt/PPInstall/program/libtk680li.so
+   1214 /opt/PPInstall/program/configmgr2.uno.so
+   1266 /opt/PPInstall/program/libcomphelp4gcc3.so
+   1509 /opt/PPInstall/program/libfwk680li.so
+   1637 /opt/PPInstall/program/libicui18n.so.36
+   2591 /opt/PPInstall/program/libsb680li.so
+   2801 /opt/PPInstall/program/libsfx680li.so
+   3088 /opt/PPInstall/program/libvcl680li.so
+   5132 /opt/PPInstall/program/libsw680li.so
+   5472 /opt/PPInstall/program/libsvt680li.so
+  11718 /opt/PPInstall/program/libsvx680li.so
--- openoffice.org-2.4.1.orig/ooo-build/doc/file-dialog.txt
+++ openoffice.org-2.4.1/ooo-build/doc/file-dialog.txt
@@ -0,0 +1,141 @@
+See svtools/source/filepicker.cxx
+
+	And see tools/inc/urlobj.hxx
+	( tools/source/fsys/urlobj.cxx )
+
+	It seems like the 'Edit FT_EXPLORERFILE_FILENAME' is the real
+McCoy - _pFtFileName ( FixedText ). This seems not to be used internally,
+merely passed outside by implGetControl nControlId == EDIT_FILEURI.
+
+	Then again, there is _pEdFileName - a SvtURLBox - that looks
+hopeful as well - AutoExtensionHdl_Impl ?
+
+
+*** The sfx2 file dialog is just bunk & not used ***
+
+sfx2/source/dialog/filedlghelper.cxx (getCurrentSfxFilter):
+	+ Seems to indicate the dialog has an XFilterManager
+	  UNO interface
+	+ addFilters ... [ from SfxObjectFactory ]
+	-> sfx2::appendFilters (filtergrouping.hxx)
+	iterates over SfxFilterMatcher on SfxObjectFactory
+
+sfx2/source/bastyp/fltfnc.cxx (SfxFilterMatcher) ->
+	(ReadExternalFilters) -> does a query string on the
+	(UNO container XNameAccess xFilterCFG):
+	  xFilterCFG->getByName (
+	    "_query_writer:sort_prop=uiname:use_order:default_first");
+
+[ http://ooo.ximian.com/lxr/search?string=default_first
+	a good overview of how this querying business works.
+ framework/source/classes/filtercache.cxx (queryFilters) ]
+
+	xFilterCFG created via UNO -> 
+                xMan->createInstance(
+			DEFINE_CONST_UNICODE( "com.sun.star.document.FilterFactory" ) ),
+			::com::sun::star::uno::UNO_QUERY );
+
+	lives in: framework/source/services/filterfactory.cxx
+	(getByName) -> uses bits poked above & FilterCache.
+
+Instantiated from:
+	 Reference< XMultiServiceFactory > xFilterFactory(
+		getProcessServiceFactory()->createInstance(
+			SERVICENAME_FILTERFACTORY )
+
+insertByName:
+descr Use this method to register a new filter. We will write given information in our configuration
+	file "org.openoffice.Office.TypeDetection.xml" and use it from follow office startup.
+
+Discovered this data is registered from scp files eg:
+	scp/source/calc/profile_calc.scp [ presumably generated from scp ]
+
+	* Horrors, altering the mysterious '67' to '323' in the
+	  system TypeDetection.xml file results in a new system
+	  default; wow. The numbers tie up with 
+	  sfx2/inc/docfilt.hxx's #define set.
+
+	* The numbers get magically inserted into
+		officecfg/data/org/openoffice/Office/TypeDetection.xcd
+
+!	The names are defined twice in filterflags.h and docfilt.hxx
+
+	So you have to hack the magic numbers in TypeDetection.xcd [!]
+
+
+Trace of File->'Save As' from 'sw'
+
+#0  0x40bee41e in select () from /lib/libc.so.6
+#1  0x4040ff50 in __DTOR_END__ () from ./libvcl641li.so
+#2  0x4036f71d in SalInstance::Yield(unsigned char) (this=0x4087bc60, bWait=1) at ../../../unx/inc/saldata.hxx:170
+#3  0x401f103e in Application::Yield() () at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/source/app/svapp.cxx:707
+#4  0x402ae1a5 in Dialog::Execute() (this=0x433091c8)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/source/window/dialog.cxx:673
+#5  0x44ae5398 in SvtFileDialog::Execute() (this=0x433091c8)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/svtools/source/filepicker/iodlg.cxx:2054
+#6  0x44acfcff in SvtFilePicker_Impl::execute() (this=0x46676310)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/svtools/source/filepicker/filepicker.cxx:501
+#7  0x44ad13e0 in SvtFilePicker::execute() (this=0x43306d20)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/svtools/source/filepicker/filepicker.cxx:707
+#8  0x4436e7c0 in sfx2::FileDialogHelper_Impl::implDoExecute() (this=0x43312500)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/solver/641/unxlngi4.pro/inc/com/sun/star/uno/Reference.h:260
+#9  0x4436e883 in sfx2::FileDialogHelper_Impl::execute(SvStringsDtor*&, SfxItemSet*&, String&) (this=0x43312500, rpURLList=@0xbfffe4f8, 
+    rpSet=@0xbfffe574, rFilter=@0xbffff000)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/dialog/filedlghelper.cxx:1246
+#10 0x443730ac in sfx2::FileDialogHelper::Execute(SfxItemSet*&, String&) (this=0xbfffefe0, rpSet=@0xbfffe574, rFilter=@0xbffff000)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/dialog/filedlghelper.cxx:1983
+#11 0x4427d7eb in SfxObjectShell::SaveAs_Impl(unsigned char, SfxRequest*) (this=0x462a7eb8, bUrl=0 '\0', pRequest=0x46636730)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/doc/objstor.cxx:1786
+#12 0x4428734c in SfxObjectShell::ExecFile_Impl(SfxRequest&) (this=0x462a7eb8, rReq=@0x46636730)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/doc/objserv.cxx:479
+#13 0x442862ef in SfxStubSfxObjectShellExecFile_Impl(SfxShell*, SfxRequest&) (pShell=0x462a7eb8, rReq=@0x46636730)
+    at ../../unxlngi4.pro/inc/sfxslots.hxx:187
+#14 0x4430cbb7 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, unsigned char) (this=0x462b18b0, rShell=@0x462a7eb8, 
+    rSlot=@0x443f6f54, rReq=@0x46636730, bRecord=1) at ../../inc/shell.hxx:229
+#15 0x4430f521 in SfxDispatcher::PostMsgHandler(SfxRequest*) (this=0x462b18b0, pReq=0x46636730)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/control/dispatch.cxx:1524
+#16 0x4430f3ef in SfxDispatcher::LinkStubPostMsgHandler(void*, void*) (pThis=0x462b18b0, pCaller=0x46636730)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/control/dispatch.cxx:1491
+#17 0x4432c838 in SfxHintPoster::Event(SfxHint*) (this=0x462c15a8, pPostedHint=0x46636730)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/solver/641/unxlngi4.pro/inc/tools/link.hxx:156
+#18 0x4432c7d4 in SfxHintPoster::LinkStubDoEvent_Impl(void*, void*) (pThis=0x462c15a8, pCaller=0x46636730)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/sfx2/source/notify/hintpost.cxx:110
+#19 0x402eda91 in ImplHandleUserEvent(ImplSVEvent*) (pSVEvent=0x46670710)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/solver/641/unxlngi4.pro/inc/tools/link.hxx:156
+#20 0x402ee1a9 in ImplWindowFrameProc(void*, SalFrame*, unsigned short, void const*) (pInst=0x4536ed10, pFrame=0x4536ef68, nEvent=22, 
+    pEvent=0x46670710) at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/source/window/winproc.cxx:2030
+#21 0x40346219 in SalFrameData::HandleClientMessage(XClientMessageEvent*) (this=0x4536ef68, pEvent=0xbffff734)
+    at ../../../unx/inc/salframe.h:252
+#22 0x4034689a in SalFrameData::Dispatch(_XEvent*) (this=0x4536ef68, pEvent=0xbffff734)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/unx/source/window/salframe.cxx:3326
+#23 0x4036c385 in SalDisplay::Dispatch(_XEvent*) (this=0x4087b7a8, pEvent=0xbffff734)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/unx/source/app/saldisp.cxx:2659
+#24 0x4036c0b8 in SalDisplay::Yield(unsigned char) (this=0x4087b7a8, bWait=1)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/unx/source/app/saldisp.cxx:2560
+#25 0x40367995 in DisplayYield(int, SalDisplay*) (fd=4, pDisplay=0x4087b7a8)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/unx/source/app/saldisp.cxx:810
+#26 0x40366514 in SalXLib::Yield(unsigned char) (this=0x4087b408, bWait=1 '\001')
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/unx/source/app/saldata.cxx:644
+#27 0x4036f71d in SalInstance::Yield(unsigned char) (this=0x4087bc60, bWait=1) at ../../../unx/inc/saldata.hxx:170
+#28 0x401f103e in Application::Yield() () at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/source/app/svapp.cxx:707
+#29 0x401f0f78 in Application::Execute() () at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/source/app/svapp.cxx:666
+#30 0x0805e0cd in Desktop::Main() (this=0x807d714)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/desktop/source/app/app.cxx:1581
+#31 0x401f3727 in SVMain() () at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/source/app/svmain.cxx:281
+#32 0x4036539a in main (argc=1, argv=0xbffffbe4)
+    at /opt/OpenOffice/openoffice/build/unknown/OOO_STABLE_1/vcl/unx/source/app/salmain.cxx:87
+#33 0x40b2f1c4 in __libc_start_main () from /lib/libc.so.6
+
+	* poked at offmgr/source/offapp/dialog/optfltr.src,
+	  seems to be part of some generic filter mechanism.
+	  'RID_OFAPAGE_MSFILTEROPT' / 'GB_WORD'
+
+
+
+It appears these filters are for something else:
+	Filters registered:
+		sfx2/inc/docfac.hxx: RegisterFilter, GetFilter, xf SFX_.*_FILTER_REGISTRATION
+	SfxFactoryFilterContainer:
+		sfx2/source/bastyp/fltfnc.cxx
+	See:
+		sfx2/source/doc/objstor.cxx
--- openoffice.org-2.4.1.orig/ooo-build/doc/announce.txt
+++ openoffice.org-2.4.1/ooo-build/doc/announce.txt
@@ -0,0 +1,24 @@
+ooo-build <openoffice@lists.ximian.com>
+Announce <gnome-announce-list@gnome.org>, Announce <kde-announce@kde.org>, debian-openoffice <debian-openoffice@lists.debian.org>
+
+ANNOUNCE: ooo-build-***
+
+OpenOffice.org build:
+
+	This package contains Desktop integration work for
+OpenOffice.org, several back-ported features & speedups, and a much
+simplified build wrapper, making an OO.o build / install possible for
+the common man. It is a staging ground for up-streaming patches to
+stock OO.o.
+
+Changes in this release:
+
+
+Package available from:
+       
+http://go-oo.org/packages/***/ooo-build-***.tar.gz
+
+	To find out more and/or get involved in OOo hacking see
+http://go-oo.org/ and/or subscribe to our OO.o development
+mailing list at:
+        http://lists.ximian.com/mailman/listinfo/openoffice.
--- openoffice.org-2.4.1.orig/ooo-build/doc/evo-mailmerge.txt
+++ openoffice.org-2.4.1/ooo-build/doc/evo-mailmerge.txt
@@ -0,0 +1,35 @@
+
+OOo mailmerge with evolution 
+----------------------------
+
+Currently OOo 2.0 mailmerge feature have some 14 attributes (Ex <Title>, <First Name>, <ZIP> etc) that can be used to create letter. Now a user can create a "customized" letter from the selected "address block". OOo allows the mapping of "our" database (evo etc) columnNames to  these predefined attributes.
+
+As of now the OOo does not give any meaningful xml file which will map "columnNames" by default :(.
+
+Ideally the OOo2.0 MailMerge code should take the column mapping from the
+DataAccess.xcu ..
+
+ <node oor:name="com.sun.star.comp.sdbc.evoab.OEvoabDriver">
+      <node oor:name="EvolutionPreferences">
+        <prop oor:name="FullPathExportingCommand">
+          <value>Personal</value>
+        </prop>
+      </node>
+      <node oor:name="ColumnAliases">
+        <prop oor:name="First Name">
+          <value>given_name</value>
+        </prop>
+        <prop oor:name="LastName">
+          <value>family_name</value>
+        </prop>
+        <prop oor:name="DisplayName">
+          <value>full_name</value>
+        </prop>
+
+When first time a user maps a columnName for a particular "table Name" (ex: biblio) a binary entry is created ~/.ooo-2.0-pre/user/registry/cache/org.openoffice.Office.DataAccess.dat :(
+One more interesting thing is that, If your database provides more than 14 attributes than one cannot map it :(
+
+Place to hack:
+file ./sw/source/ui/dbui/mailmergehelper.cxx
+Function Name FillData (...)
+This is the place where the 14 attributes maps to "none available" or "columnName".
--- openoffice.org-2.4.1.orig/ooo-build/doc/a11y.txt
+++ openoffice.org-2.4.1/ooo-build/doc/a11y.txt
@@ -0,0 +1,457 @@
+Chasing misc. a11y issues:
+
+
+
+Is Bill's work in cvs. ?
+
+(gdb) bt
+#0  0x423fbc62 in g_log () from /opt/gnome/lib/libglib-2.0.so.0
+#1  0x4232415d in atk_object_get_role (accessible=Variable "accessible" is not available.
+) at atkobject.c:714
+#2  0x42824ff3 in gail_toplevel_show_event_watcher (ihint=0xbfffe538, n_param_values=1, param_values=0xbfffe650, data=0x80f0d80)
+    at gailtoplevel.c:252
+
+(gdb) t 3
+[Switching to thread 3 (Thread 16386 (LWP 20348))]#0  0x414992a4 in __pthread_sigsuspend (set=0x414a0484)
+    at ../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:54
+54        INTERNAL_SYSCALL (rt_sigsuspend, err, 2, set, _NSIG / 8);
+(gdb) bt
+#0  0x414992a4 in __pthread_sigsuspend (set=0x414a0484) at ../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:54
+#1  0x41498028 in __pthread_wait_for_restart_signal (self=0xbf7ffbe0) at pthread.c:1216
+#2  0x4149580c in __pthread_cond_wait (cond=Variable "cond" is not available.
+) at restart.h:34
+#3  0x4296be19 in giop_recv_buffer_get () from /opt/gnome/lib/libORBit-2.so.0
+#4  0x42970962 in ORBit_small_invoke_stub () from /opt/gnome/lib/libORBit-2.so.0
+#5  0x42970b00 in ORBit_small_invoke_stub_n () from /opt/gnome/lib/libORBit-2.so.0
+#6  0x4297d982 in ORBit_c_stub_invoke () from /opt/gnome/lib/libORBit-2.so.0
+#7  0x428c048c in Accessibility_EventListener_notifyEvent (_obj=0x81170c8, e=0xfffffffc, ev=0x428405d8) at Accessibility-stubs.c:754
+#8  0x4283d72c in spi_atk_emit_eventv (gobject=Variable "gobject" is not available.
+) at bridge.c:654
+#9  0x4283dc9e in spi_atk_bridge_signal_listener (signal_hint=Variable "signal_hint" is not available.
+) at bridge.c:1034
+#10 0x423a8ec6 in signal_emit_unlocked_R () from /opt/gnome/lib/libgobject-2.0.so.0
+#11 0x423aa371 in g_signal_emit_valist () from /opt/gnome/lib/libgobject-2.0.so.0
+#12 0x423aa575 in g_signal_emit_by_name () from /opt/gnome/lib/libgobject-2.0.so.0
+#13 0x41f683dc in AtkListener::handleChildRemoved (this=0x939ddf0, rxParent=@0xbf7ff404, rxChild=@0xbf7ff3f4)
+    at /opt/OpenOffice/src680-m137/vcl/unx/gtk/a11y/atklistener.cxx:184
+#14 0x41f6862f in AtkListener::notifyEvent (this=0x939ddf0, aEvent=@0xbf7ff524)
+    at /opt/OpenOffice/src680-m137/vcl/unx/gtk/a11y/atklistener.cxx:226
+#15 0x40cbd2f8 in comphelper::AccessibleEventNotifier::addEvent () from ./libcomphelp4gcc3.so
+#16 0x40cab7d3 in comphelper::OAccessibleContextHelper::NotifyAccessibleEvent () from ./libcomphelp4gcc3.so
+#17 0x411b009a in VCLXAccessibleComponent::ProcessWindowEvent () from ./libtk680li.so
+#18 0x411af885 in VCLXAccessibleComponent::WindowEventListener () from ./libtk680li.so
+#19 0x411af814 in VCLXAccessibleComponent::LinkStubWindowEventListener () from ./libtk680li.so
+#20 0x401e0e34 in Link::Call (this=0x542d90c0, pCaller=0xbf7ff6e4) at link.hxx:155
+#21 0x401f81dc in VclEventListeners::Call (this=0x939e360, pEvent=0xbf7ff6e4) at /opt/OpenOffice/src680-m137/vcl/source/app/vclevent.cxx:49
+#22 0x403f74a7 in Window::CallEventListeners (this=0x939e198, nEvent=501, pData=0x939d890)
+    at /opt/OpenOffice/src680-m137/vcl/source/window/window.cxx:5286
+#23 0x403f73eb in Window::ImplCallEventListeners (this=0x939e198, nEvent=501, pData=0x939d890)
+    at /opt/OpenOffice/src680-m137/vcl/source/window/window.cxx:5267
+#24 0x403f2e0c in ~Window (this=0x939d890) at /opt/OpenOffice/src680-m137/vcl/source/window/window.cxx:4311
+#25 0x40421f5c in ~Control (this=0x939d890) at /opt/OpenOffice/src680-m137/vcl/source/control/ctrl.cxx:109
+#26 0x4041266f in ~Button (this=0x939d890) at /opt/OpenOffice/src680-m137/vcl/source/control/button.cxx:187
+#27 0x4041771f in ~PushButton (this=0x939d890) at /opt/OpenOffice/src680-m137/vcl/source/control/button.cxx:1508
+#28 0x40420de3 in ~ImageButton (this=0x939d890) at /opt/OpenOffice/src680-m137/vcl/source/control/button.cxx:4078
+#29 0x407f866b in svt::CloserButton_Impl::~CloserButton_Impl () from ./libsvt680li.so
+#30 0x407f82de in svt::HelpAgentWindow::~HelpAgentWindow () from ./libsvt680li.so
+#31 0x510bc49f in framework::HelpAgentDispatcher::closeAgentWindow () from /opt/OOInstall/program/./libfwk680li.so
+#32 0x510bc23d in framework::HelpAgentDispatcher::timerExpired () from /opt/OOInstall/program/./libfwk680li.so
+#33 0x510eeab2 in framework::OTimerHelper::onShot () from /opt/OOInstall/program/./libfwk680li.so
+#34 0x40dd897d in vos::OTimerManager::checkForTimeout () from ./libvos3gcc3.so
+#35 0x40dd8ab6 in vos::OTimerManager::run () from ./libvos3gcc3.so
+#36 0x40dd6702 in vos::_cpp_OThread_WorkerFunction () from ./libvos3gcc3.so
+#37 0x40dd66e9 in _OThread_WorkerFunction () from ./libvos3gcc3.so
+#38 0x40e8e8a0 in osl_thread_start_Impl () from ./libuno_sal.so.3
+#39 0x4149628b in pthread_start_thread (arg=Variable "arg" is not available.
+) at manager.c:310
+#40 0x4149631f in pthread_start_thread_event (arg=0xbf7ffbe0) at manager.c:334
+#41 0x4173f55a in clone () from /lib/libc.so.6
+
+vs.
+
+(gdb) t 1
+[Switching to thread 1 (Thread 16384 (LWP 20328))]#0  0x414992a4 in __pthread_sigsuspend (set=0x414a0484)
+    at ../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:54
+54        INTERNAL_SYSCALL (rt_sigsuspend, err, 2, set, _NSIG / 8);
+(gdb) bt
+#0  0x414992a4 in __pthread_sigsuspend (set=0x414a0484) at ../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:54
+#1  0x41498028 in __pthread_wait_for_restart_signal (self=0x4149fbc0) at pthread.c:1216
+#2  0x4149b4fc in __pthread_lock (lock=Variable "lock" is not available.
+) at restart.h:34
+#3  0x414977c5 in *__GI___pthread_mutex_lock (mutex=Variable "mutex" is not available.
+) at mutex.c:112
+#4  0x40e8df36 in osl_acquireMutex () from ./libuno_sal.so.3
+#5  0x40dd199a in vos::OMutex::acquire () from ./libvos3gcc3.so
+#6  0x424ea6a6 in SalYieldMutex::acquire (this=0x80a9040) at /opt/OpenOffice/src680-m137/vcl/unx/source/app/salinst.cxx:93
+#7  0x41f4a981 in GtkHookedYieldMutex::acquire (this=0x80a9040) at /opt/OpenOffice/src680-m137/vcl/unx/gtk/app/gtkinst.cxx:91
+#8  0x424eac65 in X11SalInstance::AcquireYieldMutex (this=0x80a8f58, nCount=1)
+    at /opt/OpenOffice/src680-m137/vcl/unx/source/app/salinst.cxx:284
+#9  0x41f4a3ad in ~YieldMutexReleaser (this=0xbfffe930) at saldata.hxx:153
+#10 0x41f49522 in GtkXLib::Yield (this=0x80a9108, bWait=1 '\001') at /opt/OpenOffice/src680-m137/vcl/unx/gtk/app/gtkdata.cxx:687
+#11 0x424eaca9 in X11SalInstance::Yield (this=0x80a8f58, bWait=1 '\001') at /opt/OpenOffice/src680-m137/vcl/unx/source/app/salinst.cxx:290
+#12 0x401eac50 in Application::Yield () at /opt/OpenOffice/src680-m137/vcl/source/app/svapp.cxx:539
+#13 0x401eab41 in Application::Execute () at /opt/OpenOffice/src680-m137/vcl/source/app/svapp.cxx:501
+#14 0x0806e0a8 in desktop::Desktop::Main ()
+#15 0x401f3510 in ImplSVMain () at /opt/OpenOffice/src680-m137/vcl/source/app/svmain.cxx:242
+#16 0x401f361b in SVMain () at /opt/OpenOffice/src680-m137/vcl/source/app/svmain.cxx:273
+#17 0x08067971 in sal_main ()
+#18 0x0806790c in main ()
+
+
+** What is happening **
+
++ we are writing down a socket to the same process & blocking until it returns ...
++ unfortunately - we are also holding the Solar Mutex ..
++ even more unfortunately - the impl. is in the current process & the mainloop is blocked by this.
+
+** Foo ! ... **
+
++ so ... same problem as idle gnome-vfs init at startup (?) 
+    + need to be more intelligent about the 'main' GThread
+	+ in this case it is us: we 'own' *world* at this stage.
+
+
++ ORBit2/src/orb/orb-core/orbit-small.c:
+    + ORBit_small_invoke_stub:
+	+ calls ORBit_objref_get_proxy
+	    + urgh...
+
++ What can we do here ?
+    + can we 
+
+The problem is perhaps here:
+
+2003-05-29  Michael Meeks  <michael@ximian.com>
+
+        * src/orb/orb-core/orbit-small.c
+        (ORBit_small_invoke_stub): check cross-thread calls,
+        and generate an in-proc proxy for non-allowed xt cases.
+
+        * src/orb/poa/poa.c (ORBit_poa_allow_cross_thread_call): impl.
+        (get_c_method): use it.
+
+        * src/orb/GIOP/giop.c (giop_thread_same_key): impl.
+
+** Same as the VFS problem:
+
+=> ORB initialization ...
+    + assuming we initialize the ORB 1st ...
+	+ that -does- store a 'primary thread' concept.
+
+    + giop.c (giop_init)
+	+ sets 'giop_main_thread' to be the one with the
+	  g_main_context_default() association;
+	+ sets that thread's thread data to be that ...
+
+    ** Instead **
+	+ we need to implement 'g_main_context_is_owner' [ or sim. ]
+
+=> Test:
+    ** Need an idle timeout in 1 thread (same [default] mainloop)
+       to be locked by another thread etc.
+
+	+ a condition to fire ?
+	+ spawn another thread ?
+
+=> Is there a 'default' mainloop ? - does gtk+ assume this ?
+    + Yes a default context: "g_main_context_default ()"
+    + can we assume it to slave ORBit2 locking from it ?
+
+    + g_main_context_acquire / release
+	+ closest equivalent to recursive Solar Mutex ...
+
+    'bool IsMainThread'
+	+ if (g_main_context_acquire (NULL))
+	  {
+	    g_main_context_release (NULL); return TRUE;
+	  }
+	else return FALSE;
+
+    + etc.
+
+	+ Would - a) check not in I/O thread
+	          b) try to grab glib lock to process in-line ?
+	  work ?
+
+	+ ST gtk+ apps - biggest concern ...
+		+ non-issue; this won't occur.
+
+	+ in our 'client' case:
+		+ call 'stub-invoke' from N threads
+		+ goes to I/O thread ...
+		+ then what ?
+			+ no 'glib' thread anyway,
+			+ => who should process this ?
+
+	+ whomever is 1st - process in-thread ?
+		+ but - if we don't spin the mainloop ...
+			+ what happens !?
+
+	+ can we / should we rely on someone running a
+	  (default) glib mainloop somewhere ?
+		+ [ prolly yes ... ]
+
+	+ The real problem is one of deadlock.
+		+ 2 'locks'
+			+ g_main_context - to process a request
+			+ gdk_threads - to use gtk+
+
+	+ To determine whether to invoke XYZ in-process
+	  via fake I/O
+		+ need to know if it's possible to process it:
+			+ if we can get the g_main_context it is not.
+			=> certain that we would block otherwise ?
+			=> are we certain that we will deadlock though ?
+
+	+ What about a thread -> I/O to the I/O thread -> but there is no glib mainloop ?
+
+	+ Should we then just do it in-process in the thread ?
+		+ if not, 
+
+	+ can we special case 'unrefs' ?
+		+ ... urgh ...
+		+ can we 'g_idle_add (foo, unref)'
+
+	+ URGH - why don't we just do 'bonobo_object_unref()' ...
+
+	+ foo ...
+
+	+ Can we think of a scenario we would break by doing XYZ ?
+		+ when do we spawn the I/O as a separate thread ?
+			+ idly ? - when another thread emits a call ...
+
+	+ So - the single-threaded GConf case will still work.
+		+ not a problem ...
+
+	+ If we have the 'g_main_context' lock - it is *possible* that
+	  we don't have the gdk lock.
+
+	+ what do we break:
+		+ the case where thread a) didn't have a glib mainloop,
+		+ and thread b) was running it - but not 'in' the loop
+
+	+ g_main_context_acquire/release called top/tail of
+		+ g_main_context_iterate ...
+		+ with a g_main_run type thing
+			+ we ~always hold the context - if we're doing
+			  anything useful.
+
+	+ => only 1 thread can be processing 'stuff' on that glib
+	  mainloop concurrently.
+
+	+ this is the behavior we want.
+		+ not 'thread affine' but 'context affine'
+
+	+ If we hold the Solar mutex to do stuff - the more the merrier.
+
+** Problem:
+	+ what about multiple slave threads - only 1 can get the context
+		+ but this thread will not process any calls but it's
+		  own (probably)
+		+ [ in this case - should we spin the glib mainloop a bit ?
+** NO:		    *Evil* re-enterancy hazard ... ]
+
+	+ => all these threads need to wait for the main context (?)
+		+ [ the I/O thread will do the I/O for us prolly ]
+		+ 
+
+	+ So - use g_main_context_wait (context, cont, mutex)
+		+ [ this will kick the main-loop & not be a problem ]
+		+ [ possibly we also need a 'wakeup' before that ]
+
+	+ moral - your STA shouldn't run the default glib mainloop ? ;->
+		+ *OR* your 'other' thread, shouldn't run the default glib mainloop ?
+		+ thread-affine gtk+ mainloop in VCL ?
+
+	+ Can we then process the request in-process -if-we-have-that-lock ?
+		+ avoids marshalling => also a speedup :-)
+
+	need a:
+		+ g_main_really_acquire:
+			++ (g_main_context_default())
+			while (!g_main_context_wait ()) ;
+			... [ call method in-process ] ...
+		+ g_main_context_release ();
+
+	* so far:
+		+ orbit-policy.c: clean anyway
+		+ 
+		+ giop.c: fixed.
+		+ 
+
+	* ORBit2/src/orb/GIOP/giop.c:
+		+ [foo]
+		+ give up with this approach - just 'get_main_context'
+		  & do it in-line (or emit idly ... [async])
+
+	+ giop_thread_new_check:
+		+ the only -legitimiate- use of giop_thread_main
+			+ rename to ORB_init_thread
+	+ giop_thread_set_main_handler
+		+ Needs re-naming to be 'giop_set_incoming_handler'
+	+ giop_thread_get_main
+		+ needs to die ...
+	+ giop_thread_same_key
+		+ 1 use in poa.c
+	+ giop_thread_self:
+		+ dangerous if pushing to a queue eg.
+
+	* ORBit2/src/orb/GIOP/giop-recv-buffer.c:
+		+ set src_thread ...
+		+ giop_recv_buffer_get - seems sane still.
+
+	* ORBit2/src/orb/orb-core/orbit-policy.c:
+		+ clean.
+
+	* ORBit2/src/orb/poa/poa.c:
+		+ (ORBit_poa_allow_cross_thread_call)
+			+ the main fix necessary is here
+			+ the other POA bits - only called from
+			  existing I/O that has happened (?)
+			  and/or the I/O thread - ie. this problem
+			  doesn't apply
+			+ thread-same-key bit is fine ...
+		+ Other:
+			+ (ORBit_POA_handle_request)
+				+ requires SINGLE_THREAD re-work ...
+			+ ONEWAY_AT_IDLE
+				+ also requires re-work.
+			+ push_request_T [ take a NULL ? ]
+		+ use the right main context foo ...
+
+	* We hurt people who were not running a custom/glib integrated
+	  mainloop, and were relying on nothing happening from another
+	  thread. c'est-la-vie ...
+		+ And were using threads
+		+ and were calling 'single threaded' / main appartment
+		  calls from them.
+
+	* Linc
+		+ seems linc is not thread-affine
+		+ except for the I/O thread - fair enough.
+
+
+* FIXME:
+	+ Audit 'main' thread queue & g_main_context wakeup
+	  foo ...
+		+ need to make sure that whatever giop_get_self
+		  returns - we do the work ...
+		+ giop_mainloop_handle_input
+
+	+ Do we need a per-thread 'tdata' - for 'is this the main thread'
+		+ and also a 'giop_gmain_pseudo_thread' (?)
+		+ how will this work for single-threaded case ?
+
+	+ How does this work with people waiting for data to
+	  come back ? [ single threaded etc. ? ... ]
+		+ either the main 'thread context' or ... ?
+		+ Audit giop_recv_list_setup_queue_entry ...
+
+		+ what is the src_thread used for:
+		    + giop.c:
+			+ giop_invoke_async
+				+ [bogus] - check for same thread
+				  to emit async callback - needs
+				  be 'get_main_appartment_foo' etc. (?)
+				+ should instead try to get maincontext ?
+				+ should check 'are-we-in-IO-thread?'
+					+ if so ... XYZ
+			+ else - signal a thread-pool-thread ...
+				+ push on/off stack etc. [urgh]
+
+			+ [perhaps detecting foo .. ]
+		    + giop-recv-buffer.c
+			+ ent_lock / ent_unlock ...
+			+ giop_recv_list_zap
+				+ giop_incoming_signal_T ...
+
+	+ Some problem:
+		+ some non-main-loop async callback functionality
+		  not expected...
+			+ can get an async callback from an idling
+			  method / the inferior mainloop - possibly
+			  useful.
+
+	+ How do we know which queue to put it on ?
+**NO:	    + For async:
+		+ if (no-thread-io)
+			=> use main/default context queue.
+		  else if (safe_get_main_context)
+			=> use main as before
+			unlock ...
+		  else if (random other)
+			set src_thread to current value.
+
+	** Unfortunately
+		+ we can accidentally get the glib context
+		  'by mistake' ... in a random thread.
+
+	** What are we trying to achieve ?
+		+ can we push this back ?
+		+ who knows what thread we are really in ?
+			+ same async API used for both
+			  'call-back-in-this-thread'
+			+ and 'call-back-in-main-loop'
+		+ Not possible to distinguish in the ORB.
+			+ Ergo - we have to make all async
+			  calls return in the GMainContext
+			+ our only hope ...
+		+ of course all returns go to the waiting
+		  XYZ thread ...
+
+	** we want to 'take/grab/poke' the GMainContext lock
+		+ no way to do that
+		+ can't push into the mainloop -> may not be running.
+		+ we can require that there is a running loop for that
+		  case.
+			+ different past ?
+			+ have a glib mainloop running ?
+				+ ask for the context
+				+ if we can't get it push ...
+				+ but don't allow re-enterancy.
+			+ => foo ...
+			+ make tests spin...
+
+	** Did we break anything else ? **
+	    ... re-enterancy ...
+		+ This also fixes the ORBit2 foo ...
+		+ What async invocation stuff do we need
+		  for a11y ? ...
+
+	** poa's: thread_push_T
+	    + is this ok ?
+
+** 2 problems
+    + a) handle_request - have no idea who to hand
+         it to / wake-up on 'NULL'
+	    + which of the waiting threads is the 'main' one ...
+    + as we acquire / release the context over a call
+      - we can find out ?
+    + b) Handle incoming foo [!?] - no idea what queue to put it on ...
+	+ should we have a 'set this as main thread' ?
+	    + whomever is waiting & has the lock ?
+	    + have no 'main thread' thing; but switch ownership ?
+	      + rotate & leave 'the main thread' as the owner
+	      + have a lock on it (?)
+      + a g_idle_foo - that sets us as the owner ?
+      + 
+
+	** "We get a 'handle_reqest'
+	    + no idea to whom to hand it ...
+	    + no way of knowing if we 'own' the glib mainloop
+	      reliably ...
+	** if g_get_foo ...
+	** then ...
+
+TODO:
+    ** Audit 'handle_reply' pointer changes in diff:
+    
+
+
+
+** Other approaches:
+    + just don't do any CORBA IPC in-proc to other objects
+	++ OR - tag them all as 'thread-safe' though they are not...
+
+** Perhaps unify thread foo ..
+    + 
--- openoffice.org-2.4.1.orig/ooo-build/doc/ucp.txt
+++ openoffice.org-2.4.1/ooo-build/doc/ucp.txt
@@ -0,0 +1,100 @@
+Notes on implementing a Universal Content Provider
+
+* ucb/source/ucp/file: started reading, grief these guys are
+slap-stick about implementing the whole interface. FileProvider:
+XPropertySet, XFileIdentifierConverter, XContentIdentifierFactory,
+XContentProvider. 
+
+* ucb/source/ucp/webdav: This provider is based on the
+ucb::ContentProviderImplHelper which seems to help, this code is in:
+
+* ucbhelper/inc/ucbhelper.hxx, etc. seems much simpler, should base
+our code on the webdav provider I think, only ~2678 lines - and has to
+do the auth stuff too.
+
+* see http://ucb.openoffice.org/ - lots of useful docs
+
+* package - provides zip file UCP.
+
+
+** Properties
+
+	+ It seems properties are used on objects instead of having
+	structured data,
+	+ Thus a File may have a 'ContentType', 'hidden' etc. properties
+	+ Properties seem not to extend to manipulating children
+
+** Content  <-> maps to a URI
+	+ encapsulates a resource
+	+ properties / events / 'commands'
+	+ may have children
+		+ File / Folder Contents
+	+ commands are opaque strings
+		+ open, delete, transfer, insert,
+		  getCommandInfo[!] etc.
+
+** Content Service
+	+ XContent
+	+ XCommandProcessor
+	+ XPropertyContainer
+	+ XPropertiesChangeNotifier
+	+ XChild (optional)
+	+ XContentCreator (optional)
+
+** Content commands
+
+	+ 'open' -> open for reading
+	+ 'insert' -> create / overwrite stream
+	+ 'globalTransfer' - possibly hooked by a higher level ?
+
+** ContentProvider
+	+ factory for a set of Contents
+
+** UCB == a set of UCPs.
+
+** Authentication
+
+	+ DAVResourceAccess.cxx: 
+		new ucbhelper::SimpleAuthenticationRequest ();
+		getInteractionHandler ...
+
+** Component config
+	+ need to be mapped in 
+		officecfg/data/org/openoffice/ucb/Configuration.xcd
+	+ also need to 'register' in setup process get into applicat.rdb
+	  cf. libucpfile1.so 's registration
+
+* Chaos not good as a base to work from, use webdav/ucphelper.
+
+* webdav:
+	+ file by file clone ...
+
+* TODO
+	+ do we want to store our own mirror tree of
+	  'Content's ?
+	+ implement 'transfer' ?
+	+ exchangeIdentity ?
+	+ what is the 'transient' concept ?
+		is this for non-instantiated temporary local stuff ?
+		we can bin that.
+
+* Registering:
+    ran:
+	regcomp -register -r /opt/OOInstall/program/applicat.rdb \
+		-c /opt/OOInstall/program/libucpgvfs1.so 
+    hacked:
+	/opt/OOInstall/share/config/registry/instance/org/openoffice/ucb/Configuration.xml
+	to use the GnomeVFSContentProvider
+
+* Commands
+
+** open
+	+ seems to return a sequence of children if applied to a directory
+
+** Registry screwups ... [ talked to Stephan B. on the phone ]
+
+	* Configuation.xml - screwed up - 
+	* applicat.rdb - stuffed [!], copy from solver & register everything ...
+
+** People constantly calling 'isFolder'
+	+ can't work without an InteractionEnvironment [!]
--- openoffice.org-2.4.1.orig/ooo-build/doc/split.txt
+++ openoffice.org-2.4.1/ooo-build/doc/split.txt
@@ -0,0 +1,23 @@
+Source splitting notes:
+
+icu		8236k
+stlport:	4704k
+libxmlsec:	1925k
+rhino:		1185k
+nas:		1165k
+curl:		805k
+neon:		601k
+regexp:		444k
+sablot:		372k
+expat:		236k
+berkeleydb:     209k
+msfontextract:	196k
+unixODBC: 	180k
+twain:		148k
+x11_extensions: 92k
+
+
+moz:		36009k
+dictionaries:	11858k
+libxml:		2995k
+zlib:		260k
--- openoffice.org-2.4.1.orig/ooo-build/doc/dia.txt
+++ openoffice.org-2.4.1/ooo-build/doc/dia.txt
@@ -0,0 +1,159 @@
+Notes on Dia shapes & importing them:
+
+* Dia shapes
+    'dia' in Gnome CVS
+	+ dia/shapes/*
+
+    + Simple XML format:
+
+<?xml version="1.0"?>
+
+<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns"
+       xmlns:svg="http://www.w3.org/2000/svg">
+  <name>Circuit - Horizontal Capacitor</name>
+  <description>A horizontally aligned capacitor</description>
+  <icon>hcapacitor.png</icon>
+  <connections>
+    <point x="0" y="0"/>
+    <point x="5" y="0"/>
+  </connections>
+  <svg:svg width="3.0" height="3.0">
+    <svg:line x1="0" y1="0" x2="2" y2="0" />
+    <svg:line x1="2" y1="-1" x2="2" y2="1" />
+    <svg:line x1="3" y1="-1" x2="3" y2="1" />
+    <svg:line x1="3" y1="0" x2="5" y2="0" />
+  </svg:svg>
+</shape>
+
+    + Name
+    + Description
+	[ icon - not needed for OO.o - has a rendered preview ]
+    + <connections>
+    + simple/cut-down svg.
+	+ including width/height.
+
+svx/inc/tbxcustomshapes.hxx
+svx/source/customshapes/tbxcustomshapes.cxx
+    + EnhancedCustomShape2d.hxx (eg.)
+sd/source/ui/app/sddll2.cxx
+
+
+"glue points"
+      + the OO.o name for 'connections'
+      + "Insert Glue Points"
+	    + allows you to define your own (nice)
+
+Look at the svg import proto-'filter' at:
+     http://www.openoffice.org/issues/show_bug.cgi?id=2497
+or:
+http://framework.openoffice.org/source/browse/framework/filter/source/xslt/import/svg/Attic/svg2draw.xsl
+
+
+Example styles from dia shapes:
+
+svg:polygon:
+    <svg:polygon points="0,2 -1,3.75 1,3.75" style="fill: default" />
+    <svg:polygon points="-1.50,2.62 -1.50,2.30 -1.30,2.30" style="fill:inverse" />
+svg:line:
+    <svg:line x1="4.5" y1="-0.5" x2="4.5" y2="-1.5" />
+svg:rect:
+    <svg:rect x="1.5" y="-0.5" width="3" height="1" style="fill: default" /> 
+svg:polyline:
+    <svg:polyline points="6,-4 6,-3 5,-3 5,3 6,3 6,4 " />
+svg:path:
+    <svg:path d="M530.63 -1951.28 l0 44.92 l29.42 -18.15 l0 -44.92 l-57.39
+                -112.32l0 -44.92 l-31.1 18.15 l0 44.92"
+     style="stroke: background; stroke-width: 0.8;
+     stroke-miterlimit: 4"/>
+    <svg:path d="M646.15 -7055.21l49.7 -101.86l-344.11 0l-77.36 101.86l371.78 0z" style="fill: foreground; stroke-width: 0"/>
+svg:ellipse:
+    <svg:ellipse style="stroke-width: 0.1; stroke: #000000" cx="19.495" cy="8.625" rx="0.25" ry="0.275"/>
+    <svg:ellipse style="fill: #ffffff" cx="20.195" cy="9.225" rx="0.25" ry="0.275"/>
+svg:circle:
+    <svg:circle cx="0" r="1.5" />
+    <svg:circle color="#ff0000" style="stroke: #ff000; fill: #ff0000" cx="0" r="0.1" /> 
+
+Line Width: 0.1 (?)
+
+Example XML from OO.o document:
+
+  <office:drawing>
+   <draw:page draw:name="page1" draw:style-name="dp1" draw:master-page-name="Default">
+    <draw:line draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+    svg:x1="7.135cm" svg:y1="8.135cm" svg:x2="7.135cm" svg:y2="14.635cm">
+     <text:p/>
+    </draw:line>
+    <draw:line draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+    svg:x1="6.635cm" svg:y1="12.635cm" svg:x2="12.135cm" svg:y2="13.135cm">
+     <text:p/>
+    </draw:line>
+    <draw:rect draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+    svg:width="5cm" svg:height="2.5cm" svg:x="6.635cm" svg:y="17.635cm">
+     <text:p/>
+    </draw:rect>
+    <draw:ellipse draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+    svg:width="5cm" svg:height="3.5cm" svg:x="7.135cm" svg:y="3.635cm">
+     <text:p/>
+    </draw:ellipse>
+    <draw:polygon draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+    svg:width="8.5cm" svg:height="6.5cm" svg:x="3.635cm" svg:y="22.135cm"
+    svg:viewBox="0 0 8501 6501" draw:points="0,3500 7000,0 8500,4500 3500,6500 3000,500">
+     <text:p/>
+    </draw:polygon>
+   </draw:page>
+  </office:drawing>
+
+Example XML from OO.o document - with glue-points ...
+
+  <office:body>
+    <draw:page draw:name="page1" draw:style-name="dp1" draw:master-page-name="Default">
+      <draw:g draw:name="Capacitor">
+        <draw:glue-point draw:id="5" svg:x="0.772cm" svg:y="-4.677cm"/>
+        <draw:glue-point draw:id="6" svg:x="4.594cm" svg:y="-0.805cm"/>
+        <draw:ellipse draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="5.334cm" svg:height="2.862cm" svg:x="3.901cm" svg:y="14.479cm"/>
+        <draw:rect draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="1.041cm" svg:height="5.376cm" svg:x="6.026cm" svg:y="13.222cm"/>
+      </draw:g>
+    </draw:page>
+  </office:body>
+
+Example XML from OO.o document with fill/non-fill
+
+  <office:automatic-styles>
+    <style:style style:name="dp1" style:family="drawing-page"/>
+    <style:style style:name="gr1" style:family="graphics" style:parent-style-name="objectwithoutfill">
+      <style:properties draw:fill="none" draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle"/>
+    </style:style>
+    <style:style style:name="gr2" style:family="graphics" style:parent-style-name="standard">
+      <style:properties draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle"/>
+    </style:style>
+    <style:style style:name="P1" style:family="paragraph">
+      <style:properties fo:text-align="center"/>
+    </style:style>
+  </office:automatic-styles>
+  <office:body>
+    <draw:page draw:name="page1" draw:style-name="dp1" draw:master-page-name="Default">
+      <draw:polygon draw:name="empty poly" draw:style-name="gr1"
+      draw:text-style-name="P1" draw:layer="layout"
+      svg:width="6.678cm" svg:height="7.371cm"
+      svg:x="6.763cm" svg:y="6.112cm"
+      svg:viewBox="0 0 6678 7371"
+      draw:points="477,781 6677,1994 6416,7370 0,6633 3815,0 434,650 347,650"/>
+
+
+      <draw:polygon draw:name="fill poly" draw:style-name="gr2" draw:text-style-name="P1" draw:layer="layout"
+      svg:width="9.149cm" svg:height="7.241cm" svg:x="2.341cm" svg:y="17.34cm"
+      svg:viewBox="0 0 9149 7241" draw:points="0,1908 7414,7240 9148,0 1908,6243 217,1995"/>
+      <draw:circle draw:name="circle" draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+      svg:width="3.166cm" svg:height="3.166cm"
+      svg:x="8.237cm" svg:y="3.858cm"/>
+      <draw:path draw:name="path" draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+      svg:width="8.899cm" svg:height="11.998cm" svg:x="3.42cm" svg:y="10.014cm"
+      svg:viewBox="0 0 8899 11998"
+      svg:d="m222 0c9884 3035 8627 10014 8627 10014 0 0-9061-2774-8844 1214 217 3988 7847-8800 7847-8800"/>
+      <draw:polyline draw:name="open poly" draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout"
+      svg:width="5.507cm" svg:height="10.666cm" svg:x="13.873cm"
+      svg:y="2.774cm" svg:viewBox="0 0 5507 10666"
+      draw:points="4812,4595 910,0 0,7283 4119,10665 5506,7283"/>
+
+  </draw:page>
+  </office:body>
--- openoffice.org-2.4.1.orig/ooo-build/doc/layout.txt
+++ openoffice.org-2.4.1/ooo-build/doc/layout.txt
@@ -0,0 +1,449 @@
+----------------- The first section is obsolete -----------------
+
+[ Search for '----' for the live stuff at the bottom ]
+
+
+Some thoughts on coding up layout.
+
+* Resource compiler (rsc/source/*)
+	+ rscdep - dependencies ?
+	+ rscpp - pre-processor ?
+	+ rsc2 - real compile
+
+* Resource reader (tools/source/rc/resmgr)
+
+* Current design:
+
+	+ Hierarchical information
+		+ None in the resource file
+		+ None in the code
+
+	+ Window construction
+		+ can pass ResId for toplevel win, but
+		  doesn't have to [ only bother fixing up
+		  people using ResIds ].
+		+ children instantiated, associated with
+		  Window parent (and a ResId).
+
+	+ Resource load (Window -> is a Resource) [ tools/inc/rc.h ]
+		+ Window::ImplInitRes( rResId )
+			+ GetRes( rResId )
+		+ Whole resource load process done via cursor
+		  state on GetResManager(); 
+		+ ResManager has an Init/PopContext stack
+		  
+		
+
+* Hacking
+
+	+ Hierarchical information
+		+ Add it to the resource format - tied to
+		  Window - do we currently have a list of
+		  children even ? [ or is it totally abstract e
+
+	+ Window creation
+		+ walk hierarchical information
+		+ build a set of layout / peers
+		+ associate these at Window::ImplLoadRes time
+		+ post-association / on Window show => doLayout first.
+
+* Demo
+
+	+ svtools/workben (svdem): hack here ... ?
+
+* Suggested Format:
+
+#define DLG_TEST   1001
+#define BTN_OK     1002
+#define BTN_CANCEL 1003
+#define DLG_TEST_LAYOUT   1100
+
+ModalDialog DLG_TEST
+{
+        OutputSize = TRUE ;
+        Moveable = TRUE ;
+        Closeable = TRUE ;
+        Sizeable = TRUE;
+        LayoutId = DLG_TEST_LAYOUT;
+
+        PushButton BTN_OK
+        {
+                Text = "OK";
+        };
+        PushButton BTN_CANCEL
+
+        {
+                Text = "Cancel";
+        };
+
+        Layout DLG_TEST_LAYOUT {
+                Homogeneous = False;
+                Layout {
+                        PeerId = BTN_OK;
+                        Expand = True;
+                        Fill = True;
+                };
+                Layout {
+                        PeerId = BTN_CANCEL;
+                        Expand = False;
+                        Fill = False;
+                };
+        };
+};
+
+
+* Glade2 XML format:
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox4">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox1">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="enable_toggle">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">E_nable sound server startup</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <signal name="toggled" handler="enable_toggled_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+		  ...
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+	  etc.
+
+		
+* Resource compiler class hierarachy:
+
+# BiNode
+    * NameNode
+          o IdNode
+                + RefNode
+                      # RscTop
+                            * RscArray
+                                  o RscClassArray
+                                  o RscLangArray
+                            * RscBaseCont
+                                  o RscContWriteSrc
+                                        + RscCont
+                                        + RscContExtraData
+                            * RscClass
+                                  o RscMgr
+                                  o RscSysDepend
+                                        + RscFirstSysDepend
+                                  o RscTupel
+                            * RscClient
+                            * RscConst
+                                  o RscEnum
+                                  o RscFlag
+                            * RscIdRange
+                            * RscLongRange
+                                  o RscLongEnumRange
+                            * RscRange
+                                  o RscBool
+                                  o RscBreakRange
+                            * RscString
+                + RscInstNode
+          o StringNode
+                + RscDefine
+
+
+	+ despite all the .cxx, .hxx etc. stuff it seems to
+	  compile direct .src -> .rc with no intermediates.
+	+ Post parsing we call WriteRc on the nodes,
+	+ We can also call WriteSrc - presumably a legacy
+	  from the src -> representation / fiddle / -> src 
+	  round-trip process.
+	+ RscCont is a generic container class.
+	+ code hidden in rsc/source/prj/gui.cxx flow:
+		rscyacc.y:
+			+ everything built into a RscTypeCont *pTC.
+			+ all strings munged into HashString: pHS
+			+ pHS->Get( HASHID ) returns it to a string.
+		RscTypeCont -> RscTypCont::Init - sets up parser.
+		RscCompiler (pTypeCont)->Start.
+			+ CheckSyntax -> ParseOneFile -> parser -> yyparse
+			  -> DoClassHeader (rscyacc.cxx) -> GetElement (rsctop.cxx)
+
+	+ Problems
+		+ each RscClass has to define it's child
+		    properties => we have to define all possible
+		    child properties in advance for 'Widget')
+
+* VCL Issues
+
+	+ Flow:
+		+ Res -> Window -> [ constr. Layout tree ]
+	+ We need to associate instances of widgets later;
+		+ They do ImplInitRes - and we need to connect them
+		  and queue re-draws on the parent etc.
+		+ Have a hash of Layout <-> ResId mappings on Window ...
+		+ re-flow on re-size etc. 'queue_redraw' ?
+
+	+ Layout -> Widget [ via. Layout tree & peers, toplevel is always a peer ]
+
+	+ Window <-> Layout in all cases ? [ show / hide ? ]
+	  cache 'visible' state ? etc. have a Layout ptr. on each
+	  Window ...
+	+ Need a factory for Layouts ...
+	+ We only need to virtualize sizeAllocate on the Layouts,
+	  not the widgets - thank goodness.
+
+** Decisions
+	+ Totally static layout manipulation
+		- ie. no self-building - too complex anyway.
+
+----------------- Above here is obsolete -----------------
+
+[ This is the current notes: ]
+
+** Form XML format:
+
+    + from the basic editor:
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog1" dlg:left="204" dlg:top="148" dlg:width="136" dlg:height="115" dlg:closeable="true" dlg:moveable="true">
+  <dlg:bulletinboard>
+    <dlg:button dlg:id="OkButtonName" dlg:tab-index="0" dlg:left="86" dlg:top="92" dlg:width="44" dlg:height="19" dlg:value="OkButtonLabel"/>
+    <dlg:titledbox dlg:id="FrameControl1" dlg:tab-index="1" dlg:left="4" dlg:top="7" dlg:width="68" dlg:height="41">
+      <dlg:title dlg:value="FrameControl1"/>
+    </dlg:titledbox>
+    <dlg:scrollbar dlg:id="ScrollBar1" dlg:tab-index="2" dlg:left="82" dlg:top="10" dlg:width="45" dlg:height="24"/>
+    <dlg:scrollbar dlg:id="ScrollBar2" dlg:tab-index="3" dlg:left="107" dlg:top="43" dlg:width="21" dlg:height="37" dlg:align="vertical"/>
+    <dlg:timefield dlg:id="TimeField1" dlg:tab-index="4" dlg:left="4" dlg:top="92" dlg:width="28" dlg:height="19"/>
+    <dlg:text dlg:id="Label1" dlg:tab-index="5" dlg:left="22" dlg:top="61" dlg:width="44" dlg:height="15" dlg:value="Label1"/>
+  </dlg:bulletinboard>
+</dlg:window>
+
+    + code to read this & generate UIs is in:
+	+ DTD: xmlscript/dtd/dialog.dtd
+	+ xmlscript/source/xmldlg_imexp/imp_share.hxx, line 674
+	+ xmlscript/source/misc/unoservices.cxx
+		xmlscript/source/xmlflat_imexp/xmlbas_import.cxx (?)
+		"com.sun.star.comp.xmlscript.XMLBasicImporter"
+	+ the dialog piece seems separate ?
+		"importDialogModel" ...
+	+ cf. the interesting test code ...
+	+ cd xmlscript/test
+	  dmake
+	  ../unxlngi6.pro/bin/imexp /opt/OOInstall ./test.xml
+	    + generates & renders a dialog ...
+
+	+ This code has ~all we need to get a simple impl.
+	    + compatibility wrappers [!]
+
+    // first create model:
+    Reference< container::XNameContainer > xModel( xContext->getServiceManager()->createInstanceWithContext(
+	OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ), xContext ), UNO_QUERY );
+    // NB. xmldlg_addfunc.cxx not xmldlg_import.cxx [!?] ;-)
+    ::xmlscript::importDialogModel( ::xmlscript::createInputStream( bytes ),
+				    xModel, xContext );
+
+    // second create view of model:
+    Reference< awt::XControl > xDlg( xMSF->createInstance(
+	OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialog" ) ) ), UNO_QUERY );
+    xDlg->setModel( Reference< awt::XControlModel >::query( xModel ) );
+
+    // third - associate toolkit / peer ...
+    Reference< awt::XToolkit> xToolkit( xMSF->createInstance(
+	OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.ExtToolkit" ) ) ), UNO_QUERY );
+    xDlg->createPeer( xToolkit, 0 );
+
+    // fourth - execute [ nasty ... ]
+    Reference< awt::XDialog > xD( xDlg, UNO_QUERY );
+    xD->execute();
+
+
+** Basic dialog editor:
+
+    + basctl/source/dlged/dlged.cxx
+	+ dialog editor (?)
+    + basctl/source/basicide/basobj3.cxx
+    + basctl/source/basicide/basides3.cxx
+	+ BasicIDEShell:CreateDlgWin ...
+
+** AWT interfaces:
+    + offapi/com/sun/star/awt/* - eg. XButton.idl
+	+ 'XLayoutConstrains.idl' [ published & mis-named ! ]
+
+    + We can build 'Layout' into the AWT at the toolkit level
+	+ this should be fairly easy, and wouldn't touch VCL much.
+
+** Toolkit (awt) implementation:
+    + toolkit/source/awt/vclxwindows.cxx:
+	+ much of the implementation lurks in here ...
+    + The size information is in 'vclxwindows.cxx' ...
+
+    + toolkit/source/helper/unowrapper.cxx
+	+ factories / code to associate UNO peers with VCL windows
+	+ pWindow->
+
+
+** TODO:
+    + the dialog editor needs containers
+	+ we need a hierarchy / tree view there ...
+	+ 
+
+    + The sizing logic is in 
+	+ toolkit/source/awt/vclxtoolkit.cxx (ImplCreateWindow)
+	    + the sizing is done on creation [ hmm ... ]
+
+    + 1st Axiom:
+	+ all layout is containment based: with
+	  special back-compat 'Fixed' case
+	    + perhaps this is: <dlg:bulletinboard>
+
+** How my layout patch worked:
+    + introduce a parallel 'Layout' hierarchy
+	+ ie. all windows continue to have flat children
+	+ we do the layout in parallel to that, by absolute
+	  positioning.
+
+    + ie. store the UNO peers in a tree;
+	+ and simply ensure that the layout entries don't
+	  yield widgets.
+
+
+** A plan:
+    + a) add a few layout XML elements / attributes to a
+         sample XML file.
+    + b) port layout-vcl-layout.diff to use UNO controls
+    + c) populate layout data from XML
+    + d) render dialog.
+
+    + e) add UI designer work ...
+
+---
+
+    + f) wrapper API to allow old code to work with new dialogs.
+    + g) porting of lots of dialogs.
+
+
+** xmlscript/ElementDescriptor - can cope to these.
+   + xml_helper/xml_impctx.cxx - builds lists of m_elements etc.
+
+
+--- How hierarchies should work IMHO ---
+
+On-screen:
+
++-------------------+
+| Label:   [Entry]  |
+| - - - - - - - - - |                  |
+|             [ Ok ]|
++-------------------+
+
+VCL Window hierarcy:
+	Window
+		+ Label
+		+ Entry
+		+ Ok
+
+	ie. unchanged, and backwards compatible - a flat
+representation.
+
+Toolkit Hierachy
+
+	WindowContainer [Bin?]
+		+ Vbox
+			+ HBox
+				+ Label
+				+ Entry
+		+ Alignment
+			+ Ok
+
+	the layout process would happen inside the toolkit code
+(perhaps eventually genericisd itself), and the result from the
+(re-)layout process would be a set of SetPosition/SetSize calls made
+to VCL.
+
+* xmlscript
+	+ xmldlg_import.cxx - 
+	+ xml_helper/xml_impctx.cxx - foo ...
+
+
+* plan:
+	+ hard-code container hooks into the xmlscript/ parser ...
+	+ create a layout object in toolkit/
+		+ populate it with good things ...
+
+	+ coupling to toolkit - widget instantiation: how ...
+		+ ComponentInfos
+			+ vclxtoolkit.cxx:
+		+ has a 'hook function' for 'fnSvtCreateWindow'
+		  for SVT widgets :-) [ grotesque ;-]
+			+ [ wow - fetched by dlopen! ;-]
+
+	+ A little app - a-la solver: using awt (?)
+		+ XMessageBoxFactory ...
+		+ XToolkit:
+			+ CreateWindow ...
+		+ ** how does the xml code generate these guys ? **
+
+	+ what APIs does the xmlimporter use ? not 'createWindow' seemingly.
+
++ existing xml import uses: property bag a -lot-:
+	Reference< beans::XPropertySet > xProps(
+	        _pImport->_xDialogModel, UNO_QUERY_THROW );
+	* we do _xDialogModel->insertByName (new any<XControlModel>())
+		+ to build hierarchy ( cf. ~ControlImportContext )
+
+	DialogImport:
+		css::uno::Reference< css::container::XNameContainer > _xDialogModel;
+
+	Reference< container::XNameContainer > xModel( xContext->getServiceManager()->createInstanceWithContext(
+			OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ), xContext ), UNO_QUERY );
+
+	toolkit/source/controls/dialogcontrol.cxx
+		+ UnoControlButtonModel (eg.)
+		+ service 'UnoControlModel' ...
+
+	+ poke at 'titledbox' or 'radiogroup' to see how containment works there ...
+		+ how will child widget properties work ?
+		+ bug with a 'vbox' inside a 'titledbox' ...
+	+ titledbox - acts as a container (interesting)
+		- offsetting child positions
+	+ how will pseudo-containers eg. "radiogroup" cope ?
+
+	+ propose new syntax: [ with child properties a-la glade ]:
+
+	<hbox id="baa" flange="true">
+		<child padding="0" expand="false" fill="false">
+			<radio id="foo" value="..."/>
+		</child>
+		<radio id="foo" value="..."/>
+	</hbox>
+	
+	+ if 'child' element omitted - default properties used ...
+	+ if multiple elements in same 'child' set: all have the same props.
+
+	+ LayoutContainerElement:
+		+ should maintain a stack of elements on the context ...
+		+ in ~LayoutContainerElement - remove them etc.
+
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlButtonModel") ) );
+		OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlVBoxModel") ) );
+
+	+ toolkit:
+		+ how do we go from an 'UnoControlXYZModel' to an 'UnoControlXYZ' ?
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/startup.txt
+++ openoffice.org-2.4.1/ooo-build/doc/startup.txt
@@ -0,0 +1,30 @@
+Notes on obvious speedups / wins:
+
+    + 'soffice' shell: script:
+
+3178  1155897987.630322 execve("/usr/lib/ooo-2.0/program/soffice", ["/usr/lib/ooo-2.0/program/soffice"..., "-writer", "-splash-pipe=6"], [/* 85 vars */] <unfinished ...>
+3187  1155897987.909912 rt_sigaction(SIGCHLD, {SIG_DFL}, {0x80752e0, [], 0}, 8) = 0
+	+ 70ms - spawns uname - twice [ platform known at compile time ;-] 
+	+ works out /usr/lib/ooo-2.0/program/soffice.bin
+	    + Forks 'dirname' and 'basename'
+		+ all known at install time
+
+3187  1155897987.910129 execve("/usr/lib/ooo-2.0/program/javaldx", ["/usr/lib/ooo-2.0/program/javaldx"...], [/* 88 vars */] <unfinished ...>
+3187  1155897988.441309 exit_group(0)   = ?
+	+ 530ms - running javaldx
+	    + [ wow - 1/2 a second ! ]
+
+
+    + 500ms: javaldx
+	+ 300ms - loads a great stack of libraries
+	+ 200ms - re-reading same files N times
+
+    + 6 seconds : pagein ...
+
+3188  1155897988.451521 execve("/usr/lib/ooo-2.0/program/pagein", ["/usr/lib/ooo-2.0/program/pagein", "-L/usr/lib/ooo-2.0/program", "@pagein-writer", "@pagein-common"], [/* 89 vars */] <unfinished ...>
+...
+3188  1155897994.420566 exit_group(0)   = ?
+
+	+ (that quick?)
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/printing.txt
+++ openoffice.org-2.4.1/ooo-build/doc/printing.txt
@@ -0,0 +1,313 @@
+
+* Print Properties
+
+** How W97 does print properties
+
+3 scopes:
+
+	+ per document: each document has a page size setting, this is
+	                constant, to avoid re-layout.
+	+ per printer: there is a default 'paper size' setting, this
+		       is (perhaps) analgous to gnome-cups-manager's
+	+ per session: if you change the 'paper size' - it persists only
+		       for that session, in effect with a copy of the	
+		       settings for that printer.
+
+	Since we 
+
+** Issue
+
+	Staroffice has a synchronous, modal properties dialog, that is
+passed the PrinterInfo 'aInfo' structure in SalInfoPrinter::Setup,
+then on exit JobData is transfered to the pJobSetup passed to
+'::Setup' by 'copyJobDataToJobSetup'.
+
+	Unfortunately, we can't do this - since gnome-print-manager
+fires off a separate process that creates the dialog.
+
+	We need to unwind what is done with that; and whether we can
+simply delay that work until StartJob time - which (presumably) gets
+the same pJobSetup.
+
+	'Setup' is called by vcl/source/gdi/print.cxx (Setup), all the
+data appears to be local. If the sal level data has changed;
+'ImplUpdateJobSetupPaper' + ImplUpdatePageData + ImplUpdateFontList
+are called.
+
+	ImplUpdateJobSetupPaper pokes at and verifies the contents of
+the JobSetup impl, to set standard page sizes etc. There is also a UNO
+'UserSetupCompleted' callback, that seems to do what we want.
+
+	It doesn't _look_ like we can do this in
+'SalPrinter::StartJob' NB. SalPrinter != SalInfoPrinter. The
+UserSetupCompleted code is used only for the remote appserver case.
+
+	Somehow we need to turn modality on; spawn the manager
+synchronously etc. - or can we hook into StartJob ?
+
+	Then again - it seems there is no messing about in
+printdlg.cxx's (ImplPRopertiesHdl) wrt. re-synching changed settings.
+After running the dialog we get a Printer->EnablePrintFile (foo) call
+svtools/source/dialog/printdlg.cxx (ImplFillDialogData).
+
+	Need to test the 'print' button to make that work; and/or
+ensure that we re-parse ppd files occasionally.
+
+	Is 'Printer::StartJob' always called before
+'Printer::GetPaperSize*' ? It seems 'StartJob' emits the 'StartPrint'
+signal.
+
+	Can we update the PrinterInfo from the maJobSetup
+unconditionally after the StartJob there ? Testing made hader by
+Print::GetPaperSize[Pixel] being inline.
+
+	The safest path seems to be via. the dialog; with a new API
+addition to print.hxx (& salprn.hxx). I wonder how the windows backend
+deals with this.
+
+	The OK button in the svtools dialog (if we have a TEMPPRINTER)
+dows a SetPrinterProps on mpPrinter. If you hit properties - it
+creates a TEMPPRINTER. Printer::SetPrinterProps does a 'SetJobSetup',
+which does a 'mpInfoPrinter->SetPrinterData (new_setup)' if the
+printer names are the same & refreshes everything nicely.
+
+	ARGH - discovered that the settings are per document in some
+sense, and not in fact printer properties - but document/printer
+properties: Bother !
+
+	sdraw: new drawing, Page -> User 21x29.7
+	config printer: ->A5,landscape -> No effect on new drawing
+	   -> print settings -> vanished => per document
+
+	Set settings from 'spadmin' -> A5,landscape
+	Re-run - it uses that paper size [!] - nice :-)
+
+
+	It seems CreateInfoPrinter->getJobInfo->mergeToJobData is the
+live path for interesting information getting to the job info.
+	Also PrinterGfx::Init (JobData) -> ::InitForPrinter, grabs
+pParser & mbUploadPS42Fonts [etc.]
+
+	It seems the PPDContext - is the place where settings must
+lurk; 'getPageSize', setValue etc.
+
+	Is printerjob.cxx::InitPaperSize - a valid PPD the source of
+our margin problems ? - are we marginalized by it ;-)
+
+** ARGH ** Two copies of PPDContext / PPDParser
+	etc. vcl/inc/ppdparser.hxx vs psprint/inc/psprint/ppdparser.hxx
+
+
+cf. vcl/inc/jobset.h
+
+-- 
+
+
+* TODO
+	+ get vcl/inc/salprn.hxx (SalPrinterQueueInfo):
+		+ mnStatus
+		+ mnJobs 
+		+ printer tray listing ...
+	+ re-architect API to provide a sensible callback system
+	  and / or mapping
+	+ bin all uses of salprnpsp.cxx (getPaLib)
+
+* The hard-core printing seems to go to a buffer and in:
+
+	printerjob.cxx (EndJob): we have a popen () on the shell
+command's stuff, looks like we should instead do a 'cupsFoo' there.
+
+* salprnpsp.cxx includes psprint/printerinfomanager.hxx - good [!]
+
+	vcl/source/gdi/print[2].cxx implement printing code,
+
+* GUI is defined in:
+
+	svtools/source/dialogs/printdlg.src
+
+* configuration
+
+	It seems we use a separate config file to work out which
+printers to show to the user - rather than just using the output of
+the commands we use to interrogate the system ... [ most curious ]
+
+* Printing seems to be used in:
+
+	vcl/unx/source/gdi/salprnpsp.cxx,
+	vcl/unx/inc/salprn.h (SalPrinterData) - 'm_bFax' eg.
+
+	again, all ugly public structs.
+
+* Trace through a print toolbar item:
+
+	sfx2/source/view/viewprn.cxx (DoPrint):
+	sends an 'SFX_EVENT_PRINTDOC' to the SfxApp (OnPrint?) - untraceable
+
+	SfxPrinter ...
+
+* In the short term
+
+	We can just support CUPS - and have nasty ugly printer
+selection, but ensure that it actually works.
+
+** Paths:
+	+ source/printer/printerinfomanager.cxx
+	none of the code is privatized - all hacky public structs [!]
+
+** What does 'padmin' do ?
+
+	Run 'spadmin' from program/ - a separate GUI, seemingly
+inaccessible from the main app - we prolly don't want to ship /
+support that.
+
+	CUPS provides duplicate functionality here - so we just need
+to bin spadmin.
+
+** Postscript Prinder Description (PPD) files ...
+
+	CUPS provides some PPD file handling (remote printers ?) -
+OO.o also provides PPD stuff, do we need both ?
+
+* How to port printing to libgnomeprint
+
+	We need to attack printergfx.hxx - and progressively re-write
+source/printergfx/common_gfx.cxx.
+
+
+* How Printing works ...
+
+OutputDevice::
+	Implemented in vcl/source/gdi/outdev*
+	Proxies rendering onto the mpGraphics context
+
+class OutputDevice : public Resource
+{
+    friend class Window;
+    friend class VirtualDevice;
+    friend class Printer;
+    friend class ImplQPrinter;
+    friend class OpenGL;
+
+private:
+#ifndef REMOTE_APPSERVER
+    SalGraphics*        mpGraphics;
+#else
+    ImplServerGraphics* mpGraphics;
+#endif
+
+	The SalGraphics comes from 'salgdi.hxx':
+
+vcl/unx/source/gdi/salgdi.h
+
+	Which implements:
+
+vcl/inc/salgdi.hxx for X
+
+
+psprint/inc/psprint/printerjob.hxx:
+
+	SalGraphics * StartPage (const JobData& rJobSetup, sal_Bool bNewJobData);
+
+seems to implement
+
+vcl/inc/salprn.hxx
+
+	class SalPrinter
+
+vcl/inc/impprn.hxx
+
+	class ImplQPrinter : public Printer
+
+vcl/inc/print.hxx
+
+	class Printer : public OutputDevice
+
+vcl/inc/gdi/print.cxx: fetch an mpGraphics context:
+
+	// we need a graphics
+	if ( !ImplGetGraphics() )
+
+vcl/source/gdi/outdev.cxx (ImplGetGraphics):
+
+	else if ( meOutDevType == OUTDEV_PRINTER )
+	{
+		Printer* pPrinter = (Printer*)this;
+
+		if ( pPrinter->mpJobGraphics )
+			mpGraphics = pPrinter->mpJobGraphics;
+
+[ vcl/source/gdi/print.cxx (StartPage): 
+
+	if ( mpPrinter || mpQPrinter )
+	{
+		if ( mpPrinter )
+		{
+			SalGraphics* pGraphics = mpPrinter->StartPage( maJobSetup.ImplGetConstData(), mbNewJobSetup );
+			if ( pGraphics )
+			{
+				ImplReleaseGraphics();
+				mpJobGraphics = pGraphics;
+			}
+			mbDevOutput = TRUE;
+		}
+		else
+		{
+			ImplGetGraphics();
+			mpJobGraphics = mpGraphics;
+		}
+
+	...
+]
+
+		else if ( pPrinter->mpDisplayDev )
+		{
+			VirtualDevice* pVirDev = pPrinter->mpDisplayDev;
+			mpGraphics = pVirDev->mpVirDev->GetGraphics();
+
+[ vcl/source/gdi/print.cxx (ImplInitDisplay):
+
+	if ( pWindow )
+		mpDisplayDev = new VirtualDevice( *pWindow );
+	else
+		mpDisplayDev = new VirtualDevice();
+
+]
+
+			while ( !mpGraphics )
+			{
+				if ( !pSVData->maGDIData.mpLastVirGraphics )
+					break;
+				pSVData->maGDIData.mpLastVirGraphics->ImplReleaseGraphics();
+				mpGraphics = pVirDev->mpVirDev->GetGraphics();
+			}
+			if ( mpGraphics )
+			{
+				mpNextGraphics = pSVData->maGDIData.mpFirstVirGraphics;
+				pSVData->maGDIData.mpFirstVirGraphics = this;
+				if ( mpNextGraphics )
+					mpNextGraphics->mpPrevGraphics = this;
+				if ( !pSVData->maGDIData.mpLastVirGraphics )
+					pSVData->maGDIData.mpLastVirGraphics = this;
+			}
+		}
+		else
+		{
+			mpGraphics = pPrinter->mpInfoPrinter->GetGraphics();
+			while ( !mpGraphics )
+			{
+				if ( !pSVData->maGDIData.mpLastPrnGraphics )
+					break;
+				pSVData->maGDIData.mpLastPrnGraphics->ImplReleaseGraphics();
+				mpGraphics = pPrinter->mpInfoPrinter->GetGraphics();
+			}
+			if ( mpGraphics )
+			{
+				mpNextGraphics = pSVData->maGDIData.mpFirstPrnGraphics;
+				pSVData->maGDIData.mpFirstPrnGraphics = this;
+				if ( mpNextGraphics )
+					mpNextGraphics->mpPrevGraphics = this;
+				if ( !pSVData->maGDIData.mpLastPrnGraphics )
+					pSVData->maGDIData.mpLastPrnGraphics = this;
+			}
+		}
+	}
--- openoffice.org-2.4.1.orig/ooo-build/doc/calc-datapilot-internals.txt
+++ openoffice.org-2.4.1/ooo-build/doc/calc-datapilot-internals.txt
@@ -0,0 +1,42 @@
+<h3>Basics</h3>
+Data pilot object has the concept of <em>dimensions</em>, where each dimension can be one of column, row, data, or page dimension.  These dimensions are sometimes also referred to as fields i.e. column field, row field etc.  (There is also another dimension called the <em>data layout</em> dimension.)  Each dimension also has multiple members, and each member corresponds with each individual value.  You can think of a dimension as a column in a tabular data, and a member as a cell.
+
+At top level, {ooolxr:ScPivotShell}'s {ooolxr:Execute} method receives all data pilot related shell requests (delete, refresh, and filter to be precise).  Refresh and delete requests are simply routed to {ooolxr:ScDBFunc}'s {ooolxr:RecalcPivotTable} and {ooolxr:DeletePivotTable} methods respectively.  Execution of creation and modification of a data pilot, i.e. when the user clicks OK on the main DataPilot dialog, is handled by {ooolxr:ScCellShell}'s {ooolxr:ExecuteDB} method (which eventually calls {ooolxr:ScDBFunc}'s {ooolxr:MakePivotTable} method).  The same method also handles the launching of the dialog itself, associated with the SID_OPENDLG_PIVOTTABLE slot ID.
+
+<h3>Top-level data pilot object</h3>
+
+Each data pilot in Calc document is represented by {ooolxr:ScDPObject}.
+
+Class {ooolxr:ScDPOutput} represents each data pilot view that is actually displayed on the sheet.  The instance of this class stores the geometry of the data pilot view it represents.  The multi-level column, row, and page fields information are also stored herein.  Each field can have up to 256 levels of headers, and instances of {ooolxr:ScDPOutLevelData} are used to store the field information (aCaption data member stores the label of a field, and aResult data member stores the value of each column or row as an array ordered from left to right).  Have a look at {ooolxr:pColFields}, {ooolxr:pRowFields}, and {ooolxr:pPageFields} that are pointer data members of {ooolxr:ScDPOutput}.  The current levels of column, row, and page fields are stored in {ooolxr:nColFieldCount}, {ooolxr:nRowFieldCount}, and {ooolxr:nPageFieldCount} data members, respectively.  These numbers get updated only when an instance of {ooolxr:ScDPOutput} is constructed; in other words, every time a new level gets introduced in a data pilot view, Calc destroys the old instance of {ooolxr:ScDPOutput} and constructs a new one to take its place.
+
+The data source used to create the data pilot output is stored with the {ooolxr:ScDPObject} object as an {ooolxr:XDimensionsSupplier} interface instance, which is implemented by {ooolxr:ScDPSource} class.  A reference to the {ooolxr:XDimensionsSupplier} instance can be obtained via {ooolxr:ScDPObject}'s {ooolxr:GetSource} method.  The {ooolxr:XNameAccess} reference object returned by the {ooolxr:XDimensionsSupplier} instance (via {ooolxr:getDimensions} call) is implemented by {ooolxr:ScDPDimensions} class.
+
+<h3>Data source access</h3>
+To build a data pilot output, you have to parse the original data source at some point.
+
+{ooolxr:ScDPTableData} abstracts the data source access, which can be either a cell range in the same document or an external data source accessed via the registered database functionality (?).  {ooolxr:ScDPTableData} has three child classes: {ooolxr:ScSheetDPData}, {ooolxr:ScDatabaseDPData}, and {ooolxr:ScDPGroupTableData} (the last one is just a proxy implementation of {ooolxr:ScDPTableData} to add grouped items).  {ooolxr:ScSheetDPData} represents a sheet data source within the same document with the data pilot output.  Its {ooolxr:GetNextRow} method makes actual calls to the cell instances to get their values.  The {ooolxr:GetNextRow} method is expected to be called in a loop, and each call retrieves a row, and increments the iterator position.
+
+There is only one instance of {ooolxr:ScDPTableData}, which gets created in {ooolxr:ScDPObject}'s {ooolxr:CreateObjects} method, and is passed to the {ooolxr:ScDPSource} instance, which takes care of destroying it in the end.
+
+The heavy-lifting action of processing the source data and constructing a data pilot output from it is all done within {ooolxr:ScDPSource}'s {ooolxr:CreateRes_Impl} method, where an instance of {ooolxr:ScDPResultData} and two instances of {ooolxr:ScDPResultMember} (for column and row "roots") are created, and the source data gets scanned.  {ooolxr:ScDPResultData} stores metadata on the data field, but not the values themselves.
+
+To get a list of unique entries for each column, {ooolxr:ScDPTableData}'s virtual function {ooolxr:GetColumnEntries} gets called.  Since this method is virtual, it must be overwritten by each derived class.  {ooolxr:ScSheetDPData}'s implementation of {ooolxr:GetColumnEntries} scans all individual cells and pick up their string values, then use {ooolxr:TypedStrCollection} container class to reduce them down to the unique set of values.  It uses {ooolxr:ScDocument}'s {ooolxr:GetString} method to get the string value from each cell, even for numeric cells.
+
+{ooolxr:ScDPItemData} is used to hold a single cell data during the scanning of source data, but this class is also used in other places.
+
+<h3>Double-click on member to expand or shrink</h3>
+{ooolxr:ScDPositionData} stores basic information of a given single cell position within the data pilot area.  It is used, for example, when the user double-clicks within a data pilot region by passing an empty instance of that class to the {ooolxr:GetPositionData} method of the corresponding {ooolxr:ScDPObject} instance, which in turn calls {ooolxr:GetPositionData} of {ooolxr:ScDPOutput} class instance.
+
+{ooolxr:ScDPObject}'s {ooolxr:ToggleDetails} method handles expanding and shrinking of child data members of the member whose cell is double-clicked on.
+
+<h3>Switching page field value</h3>
+The user can change the page field value from the page field list box located above the main data pilot box.  When the user commits the value change, {ooolxr:ScGridWindow}'s {ooolxr:FilterSelect} gets called from the list box handler ({ooolxr:ScFilterListBox}), and subsequently {ooolxr:ExecPageFieldSelect} of the same class gets called.  The {ooolxr:ScFilterListBox} instance knows which mode it is operating under.  Have a look at {ooolxr:ScFilterBoxMode} enum values for possible mode values for {ooolxr:ScFIlterListBox}.
+
+{ooolxr:ScDBDocFunc}'s {ooolxr:DataPilotUpdate} is the top-level routine that oversees the entire update operation.  This is where the source data gets invalidated, and subsequently reloaded (i.e. {ooolxr:CreateRes_Impl} gets called to re-build the result data from the data source once again).  {ooolxr:DataPilotUpdate} is also called from {ooolxr:ScDBFunc}::{ooolxr:RecalcPivotTable} when the output is being refreshed.
+
+<h3>Filtering data source</h3>
+When the user clicks the Filter button at the top of the data pilot area, {ooolxr:ScGridWindow}'s {ooolxr:DoPushButton} gets called.  (This method also gets called when clicking on other buttons within the data pilot output.)  Then the filter dialog gets displayed and returns when done.  If the OK is pressed, it creates a new instance of {ooolxr:ScSheetSourceDesc} with the query parameter from the filter dialog, and passes it to a new instance of {ooolxr:ScDPObject}.  {ooolxr:ScDBDocFunc}'s {ooolxr:DataPilotUpdate} gets called in the end to execute the update operation.
+
+<h3>Undo in Data Pilot</h3>
+{ooolxr:ScUndoDataPilot}...
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/sample-macros02.txt
+++ openoffice.org-2.4.1/ooo-build/doc/sample-macros02.txt
@@ -0,0 +1,4369 @@
+Project Name : 'VBAProject'
+Quirk - duff tag length======================
+Module12
+>>>>>>
+Attribute VB_Name = "Module12"
+Sub CLASVR()
+Attribute CLASVR.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute CLASVR.VB_ProcData.VB_Invoke_Func = "U\n14"
+'
+' CLASVR Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+U
+'
+Application.ScreenUpdating = False
+Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("CLA Server-TDF", "CLA Server-AFS-Customer", _
+        "Post Audit Instructions")).Copy
+    
+    Sheets("CLA Server-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("CLA Server-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 5").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub CLASVR1()
+Attribute CLASVR1.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute CLASVR1.VB_ProcData.VB_Invoke_Func = "h\n14"
+'
+' CLASVR1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+h
+'
+Application.ScreenUpdating = False
+    Sheets(Array("CLA Server RLP", "CLA Server-TDF", "CLA Server-AFS-Customer", _
+        "CLA Server-AFS-Novell")).Copy
+  
+    Sheets("CLA Server RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Server-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Server-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 5").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Server-AFS-Novell").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub CLAUSR()
+Attribute CLAUSR.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute CLAUSR.VB_ProcData.VB_Invoke_Func = "T\n14"
+'
+' CLAUSR Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+T
+'
+Application.ScreenUpdating = False
+Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("CLA User TDF (Expanded)", "CLA User", "CLA User AFS (Customer)", "Post Audit Instructions")). _
+        Copy
+        
+    Sheets("CLA User TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+       Range("A1").Select
+       Sheets("CLA User").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+       Range("A1").Select
+    Sheets("CLA User AFS (Customer)").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub CLAUSR1()
+Attribute CLAUSR1.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute CLAUSR1.VB_ProcData.VB_Invoke_Func = "g\n14"
+'
+' CLAUSR1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+g
+'
+Application.ScreenUpdating = False
+    
+    Sheets(Array("CLA User RLP", "CLA User TDF (Expanded)", "CLA User", "CLA User AFS (Customer)", _
+        "CLA User AFS (Novell)")).Copy
+  
+    Sheets("CLA User RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA User").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA User AFS (Customer)").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA User AFS (Novell)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub CLASIT()
+Attribute CLASIT.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute CLASIT.VB_ProcData.VB_Invoke_Func = "R\n14"
+'
+' CLASIT Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+R
+'
+Application.ScreenUpdating = False
+Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("CLA Site TDF (Expanded)", "CLA Site-TDF", _
+        "CLA Site-AFS-Customer", "Post Audit Instructions")).Copy
+    
+        Sheets("CLA Site TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Cells.Select
+        
+        
+    Sheets("CLA Site-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Sheets("CLA Site-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Cells.Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+
+     sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub CLASIT1()
+Attribute CLASIT1.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute CLASIT1.VB_ProcData.VB_Invoke_Func = "r\n14"
+'
+' CLASIT1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+r
+'
+Application.ScreenUpdating = False
+    
+    Sheets(Array("CLA RLP", "CLA Site TDF (Expanded)", "CLA Site-TDF", _
+        "CLA Site-AFS-Customer", "CLA Site-AFS-Novell")).Copy
+    
+    Sheets("CLA RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Site TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Site-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Site-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("CLA Site-AFS-Novell").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+Sub ECLASERCUST()
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("CLA Server-TDF", "CLA Server-AFS-Customer", _
+        "Post Audit Instructions")).Copy
+
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("CLA Server-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("CLA Server-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Shapes("Button 5").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+Sub ECLAUSRCUST()
+
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("CLA User TDF (Expanded)", "CLA User", "CLA User AFS (Customer)", "Post Audit Instructions")). _
+        Copy
+        
+    Sheets("CLA User TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+   '    .CenterHorizontally = True
+   '    .CenterVertically = False
+       .PaperSize = xlPaperA4
+   '    .FitToPagesWide = 1
+   '    .FitToPagesTall = 1
+    End With
+
+
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("CLA User").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("CLA User AFS (Customer)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+    
+
+End Sub
+
+Sub ECLASITCUST()
+
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("CLA Site TDF (Expanded)", "CLA Site-TDF", "CLA Site-AFS-Customer", "Post Audit Instructions")). _
+        Copy
+        
+    Sheets("CLA Site TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+   '    .CenterHorizontally = True
+   '    .CenterVertically = False
+       .PaperSize = xlPaperA4
+   '    .FitToPagesWide = 1
+   '    .FitToPagesTall = 1
+    End With
+
+
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("CLA Site-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("CLA Site-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+     sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+<<<<<<
+======================
+ThisWorkbook
+>>>>>>
+Attribute VB_Name = "ThisWorkbook"
+Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module5
+>>>>>>
+Attribute VB_Name = "Module5"
+<<<<<<
+======================
+Sheet3
+>>>>>>
+Attribute VB_Name = "Sheet3"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet4
+>>>>>>
+Attribute VB_Name = "Sheet4"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet5
+>>>>>>
+Attribute VB_Name = "Sheet5"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet6
+>>>>>>
+Attribute VB_Name = "Sheet6"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet7
+>>>>>>
+Attribute VB_Name = "Sheet7"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet8
+>>>>>>
+Attribute VB_Name = "Sheet8"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet9
+>>>>>>
+Attribute VB_Name = "Sheet9"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub Worksheet_SelectionChange(ByVal Target As Range)
+
+End Sub
+<<<<<<
+======================
+Sheet10
+>>>>>>
+Attribute VB_Name = "Sheet10"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet11
+>>>>>>
+Attribute VB_Name = "Sheet11"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet12
+>>>>>>
+Attribute VB_Name = "Sheet12"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet13
+>>>>>>
+Attribute VB_Name = "Sheet13"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet14
+>>>>>>
+Attribute VB_Name = "Sheet14"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub Worksheet_SelectionChange(ByVal Target As Range)
+
+End Sub
+<<<<<<
+======================
+Sheet45
+>>>>>>
+Attribute VB_Name = "Sheet45"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet17
+>>>>>>
+Attribute VB_Name = "Sheet17"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module11
+>>>>>>
+Attribute VB_Name = "Module11"
+Sub MLAUSR()
+Attribute MLAUSR.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute MLAUSR.VB_ProcData.VB_Invoke_Func = "O\n14"
+'
+' MLAUSR Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+O
+'
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("MLA User TDF (Expanded)", "MLA User", "MLA User Customer AFS", "Post Audit Instructions")). _
+        Copy
+    
+    Sheets("MLA User TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User Customer AFS").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub MLAUSR1()
+Attribute MLAUSR1.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute MLAUSR1.VB_ProcData.VB_Invoke_Func = "L\n14"
+'
+' MLAUSR1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+L
+'
+Application.ScreenUpdating = False
+
+    Sheets(Array("MLA User RLP", "MLA User TDF (Expanded)", "MLA User", "MLA User Customer AFS", "MLA User AFS")) _
+        .Copy
+    Sheets("MLA User Customer AFS").Select
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Sheets("MLA User RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User Customer AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub MLANOD()
+Attribute MLANOD.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute MLANOD.VB_ProcData.VB_Invoke_Func = "I\n14"
+'
+' MLANOD Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+I
+'
+Application.ScreenUpdating = False
+
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("Nodal TDF (Expanded)", "Nodal TDF", "MLA Nodal Customer AFS", _
+        "Post Audit Instructions")).Copy
+    
+    Sheets("Nodal TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Nodal TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("MLA Nodal Customer AFS").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub MLANOD1()
+Attribute MLANOD1.VB_Description = "Macro recorded 9/27/2002 by Brandon L. Bailey"
+Attribute MLANOD1.VB_ProcData.VB_Invoke_Func = "k\n14"
+'
+' MLANOD1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+k
+'
+Application.ScreenUpdating = False
+    
+    Sheets(Array("MLA RLP", "Nodal TDF (Expanded)", "Nodal TDF", _
+        "MLA Nodal Customer AFS", "Nodal AFS")).Copy
+    Sheets("MLA Nodal Customer AFS").Select
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Sheets("MLA RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("Nodal TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("Nodal TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA Nodal Customer AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("Nodal AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+Sub EMLAUSRCUST()
+
+'
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("MLA User TDF (Expanded)", "MLA User", "MLA User Customer AFS", "Post Audit Instructions")). _
+        Copy
+   
+    Sheets("MLA User TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+   '    .CenterHorizontally = True
+   '    .CenterVertically = False
+       .PaperSize = xlPaperA4
+   '    .FitToPagesWide = 1
+   '    .FitToPagesTall = 1
+    End With
+
+
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("MLA User").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("MLA User Customer AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+Sub EMLANODCUST()
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("Nodal TDF (Expanded)", "Nodal TDF", "MLA Nodal Customer AFS", "Post Audit Instructions")). _
+        Copy
+        
+    Sheets("Nodal TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+   '    .CenterHorizontally = True
+   '    .CenterVertically = False
+       .PaperSize = xlPaperA4
+   '    .FitToPagesWide = 1
+   '    .FitToPagesTall = 1
+    End With
+
+
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("Nodal TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("MLA Nodal Customer AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+
+<<<<<<
+======================
+Sheet2
+>>>>>>
+Attribute VB_Name = "Sheet2"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub Worksheet_SelectionChange(ByVal Target As Range)
+
+End Sub
+<<<<<<
+======================
+Sheet1
+>>>>>>
+Attribute VB_Name = "Sheet1"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet47
+>>>>>>
+Attribute VB_Name = "Sheet47"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet20
+>>>>>>
+Attribute VB_Name = "Sheet20"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet21
+>>>>>>
+Attribute VB_Name = "Sheet21"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet22
+>>>>>>
+Attribute VB_Name = "Sheet22"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub Worksheet_SelectionChange(ByVal Target As Range)
+
+End Sub
+<<<<<<
+======================
+Sheet23
+>>>>>>
+Attribute VB_Name = "Sheet23"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet24
+>>>>>>
+Attribute VB_Name = "Sheet24"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet25
+>>>>>>
+Attribute VB_Name = "Sheet25"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub CommandButton1_Click()
+
+End Sub
+<<<<<<
+======================
+Sheet26
+>>>>>>
+Attribute VB_Name = "Sheet26"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub CheckBox1_Click()
+
+End Sub
+<<<<<<
+======================
+Sheet27
+>>>>>>
+Attribute VB_Name = "Sheet27"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+Private Sub TextBox1_Change()
+
+End Sub
+<<<<<<
+======================
+Sheet28
+>>>>>>
+Attribute VB_Name = "Sheet28"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet29
+>>>>>>
+Attribute VB_Name = "Sheet29"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet30
+>>>>>>
+Attribute VB_Name = "Sheet30"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet31
+>>>>>>
+Attribute VB_Name = "Sheet31"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module2
+>>>>>>
+Attribute VB_Name = "Module2"
+Sub Button6_Click()
+Attribute Button6_Click.VB_Description = "Macro recorded 6/20/2002 by Brandon L. Bailey"
+Attribute Button6_Click.VB_ProcData.VB_Invoke_Func = "l\n14"
+'
+' Button6_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+l
+'
+'Sheets("Customers Network").Select
+    'Rows("35:36").Select
+   ' Selection.EntireRow.Hidden = False
+    
+    Application.ScreenUpdating = False
+    
+ 
+    Sheets("Customers Network").Rows("46:47").EntireRow.Hidden = False
+    
+    Sheets("Customers Network").Select
+    Range("B47").Select
+    Selection.ClearContents
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[1]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[1]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[1]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("Technical Data").Rows("11:17").EntireRow.Hidden = False
+    Sheets("CLA User TDF (Expanded)").Visible = False
+    Sheets("CLA RLP").Visible = False
+    Sheets("CLA Site TDF (Expanded)").Visible = False
+    Sheets("MLA User TDF (Expanded)").Visible = False
+    Sheets("CLA Site-TDF").Visible = False
+    Sheets("CLA Site-AFS-Customer").Visible = False
+    Sheets("CLA Site-AFS-Novell").Visible = False
+    Sheets("CLA User RLP").Visible = False
+    Sheets("CLA User AFS (Customer)").Visible = False
+    Sheets("CLA User AFS (Novell)").Visible = False
+    Sheets("CLA User").Visible = False
+    Sheets("CLA Server RLP").Visible = False
+    Sheets("CLA Server-TDF").Visible = False
+    Sheets("CLA Server-AFS-Customer").Visible = False
+    Sheets("CLA Server-AFS-Novell").Visible = False
+    Sheets("MLA RLP").Visible = False
+    Sheets("Nodal TDF (Expanded)").Visible = False
+    Sheets("Nodal TDF").Visible = False
+    Sheets("Nodal AFS").Visible = False
+    Sheets("MLA User RLP").Visible = False
+    Sheets("MLA User AFS").Visible = False
+    Sheets("MLA User").Visible = False
+    Sheets("MLA User Customer AFS").Visible = False
+    Sheets("MLA Nodal Customer AFS").Visible = False
+    Sheets("SEA Employee RLP").Visible = False
+    Sheets("SEA Employee").Visible = False
+    Sheets("SEA Employee Customer AFS").Visible = False
+    Sheets("SEA Employee AFS").Visible = False
+    Sheets("SEA WS RLP").Visible = False
+    Sheets("SEA WS TDF (Expanded)").Visible = False
+    Sheets("SEA WS-TDF").Visible = False
+    Sheets("SEA WS-AFS-Customer").Visible = False
+    Sheets("SEA WS-AFS-Novell").Visible = False
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+    Range("E8").Select
+    Selection.Hyperlinks.Delete
+  With Selection
+        .HorizontalAlignment = xlCenter
+        .VerticalAlignment = xlCenter
+        .WrapText = True
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+        .MergeCells = True
+    End With
+    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
+    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
+    With Selection.Borders(xlEdgeLeft)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Borders(xlEdgeTop)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Borders(xlEdgeBottom)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Borders(xlEdgeRight)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
+    
+    Sheets("Purchasing Data").Select
+    Range("E11").Select
+    Selection.Hyperlinks.Delete
+  With Selection
+        .HorizontalAlignment = xlCenter
+        .VerticalAlignment = xlCenter
+        .WrapText = True
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+        .MergeCells = True
+    End With
+    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
+    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
+    With Selection.Borders(xlEdgeLeft)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Borders(xlEdgeTop)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Borders(xlEdgeBottom)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Borders(xlEdgeRight)
+        .LineStyle = xlContinuous
+        .Weight = xlMedium
+        .ColorIndex = xlAutomatic
+    End With
+    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
+
+    
+    Sheets("Table of Contents").Select
+    Range("F32").Select
+    Selection.Hyperlinks.Delete
+    Range("F33").Select
+    Selection.Hyperlinks.Delete
+    Range("F34").Select
+    Selection.Hyperlinks.Delete
+    Range("D32").Select
+    Selection.Hyperlinks.Delete
+    Range("D33").Select
+    Selection.Hyperlinks.Delete
+    Range("D34").Select
+    Selection.Hyperlinks.Delete
+    Range("D19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection.Interior
+        .ColorIndex = 15
+        .Pattern = xlSolid
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+    With Selection.Interior
+        .ColorIndex = 15
+        .Pattern = xlSolid
+    End With
+    Range("F4:I5").Select
+End Sub
+Sub Button8_Click()
+Attribute Button8_Click.VB_Description = "Macro recorded 6/20/2002 by Brandon L. Bailey"
+Attribute Button8_Click.VB_ProcData.VB_Invoke_Func = "j\n14"
+'
+' Button8_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+j
+'
+Application.ScreenUpdating = False
+
+Sheets("Customers Network").Select
+    Range("B47").Select
+    ActiveCell.FormulaR1C1 = "NA"
+    
+Sheets("Customers Network").Select
+    Rows("46:47").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Technical Data").Select
+    Rows("17").Select
+    Selection.EntireRow.Hidden = True
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[4]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[4]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[4]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("MLA User RLP").Visible = True
+    Sheets("MLA User AFS").Visible = True
+    Sheets("MLA User").Visible = True
+    Sheets("MLA User Customer AFS").Visible = True
+    Sheets("MLA User TDF (Expanded)").Visible = True
+    
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User RLP'!A1", TextToDisplay:="RLP"
+        
+    Sheets("Table of Contents").Select
+    Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User AFS'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA User AFS'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+    Range("F4:I5").Select
+End Sub
+Sub Button3_Click()
+Attribute Button3_Click.VB_Description = "Macro recorded 6/20/2002 by Brandon L. Bailey"
+Attribute Button3_Click.VB_ProcData.VB_Invoke_Func = "u\n14"
+'
+' Button3_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+u
+'
+    Application.ScreenUpdating = False
+    
+    Sheets("Technical Data").Select
+    Rows("13:17").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[1]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[1]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[1]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("CLA User RLP").Visible = True
+    Sheets("CLA User AFS (Customer)").Visible = True
+    Sheets("CLA User AFS (Novell)").Visible = True
+    Sheets("CLA User").Visible = True
+    Sheets("CLA User TDF (Expanded)").Visible = True
+    
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User RLP'!A1", TextToDisplay:="RLP"
+        
+    Sheets("Table of Contents").Select
+    Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User AFS (Customer)'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA User AFS (Customer)'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+
+    Range("F4:I5").Select
+End Sub
+Sub Button1_Click()
+Attribute Button1_Click.VB_Description = "Macro recorded 6/20/2002 by Brandon L. Bailey"
+Attribute Button1_Click.VB_ProcData.VB_Invoke_Func = "t\n14"
+'
+' Button1_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+t
+'
+    Application.ScreenUpdating = False
+
+    Sheets("Technical Data").Select
+    Rows("13:17").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("CLA RLP").Visible = True
+    Sheets("CLA Site TDF (Expanded)").Visible = True
+    Sheets("CLA Site-TDF").Visible = True
+    Sheets("CLA Site-AFS-Customer").Visible = True
+    Sheets("CLA Site-AFS-Novell").Visible = True
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Site-TDF'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA RLP'!A1", TextToDisplay:="RLP"
+    
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    Sheets("Table of Contents").Select
+        Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Site-TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Site-AFS-Customer'!A1", TextToDisplay:="Audit Finding Sheet"
+        Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Site-TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Site-AFS-Customer'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+
+    Range("F4:I5").Select
+End Sub
+Sub Button2_Click()
+Attribute Button2_Click.VB_Description = "Macro recorded 6/20/2002 by Brandon L. Bailey"
+Attribute Button2_Click.VB_ProcData.VB_Invoke_Func = "y\n14"
+'
+' Button2_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+y
+'
+    Application.ScreenUpdating = False
+    
+    Sheets("Technical Data").Select
+    Rows("11:15").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[2]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[2]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[2]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("CLA Server RLP").Visible = True
+    Sheets("CLA Server-TDF").Visible = True
+    Sheets("CLA Server-AFS-Customer").Visible = True
+    Sheets("CLA Server-AFS-Novell").Visible = True
+    
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server-TDF'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server RLP'!A1", TextToDisplay:="RLP"
+        
+    Sheets("Table of Contents").Select
+        Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server RLP'!A6", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server-TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server-AFS-Customer'!A1", TextToDisplay:="Audit Finding Sheet"
+        Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server RLP'!A6", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server-TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'CLA Server-AFS-Customer'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+
+    Range("F4:I5").Select
+End Sub
+Sub Button4_Click()
+Attribute Button4_Click.VB_Description = "Macro recorded 6/20/2002 by Brandon L. Bailey"
+Attribute Button4_Click.VB_ProcData.VB_Invoke_Func = "i\n14"
+'
+' Button4_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+i
+'
+Application.ScreenUpdating = False
+Sheets("Customers Network").Select
+    Range("B47").Select
+    ActiveCell.FormulaR1C1 = "NA"
+    
+    Sheets("Customers Network").Select
+    Rows("46:47").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Technical Data").Select
+    Rows("17").Select
+    Selection.EntireRow.Hidden = True
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[3]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[3]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[3]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("MLA Nodal Customer AFS").Visible = True
+    Sheets("MLA RLP").Visible = True
+    Sheets("Nodal TDF (Expanded)").Visible = True
+    Sheets("Nodal TDF").Visible = True
+    Sheets("Nodal AFS").Visible = True
+
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'Nodal TDF'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA RLP'!A1", TextToDisplay:="RLP"
+        
+    Sheets("Table of Contents").Select
+            Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'Nodal TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'Nodal AFS'!A1", TextToDisplay:="Audit Finding Sheet"
+            Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'MLA RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'Nodal TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'Nodal AFS'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+
+    Range("F4:I5").Select
+End Sub
+
+Sub Button5_Click()
+'
+' Button5_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+'
+'
+Application.ScreenUpdating = False
+Sheets("Customers Network").Select
+    Range("B47").Select
+    ActiveCell.FormulaR1C1 = "NA"
+    
+    Sheets("Customers Network").Select
+    Rows("46:47").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Technical Data").Select
+    Rows("13:17").Select
+    Selection.EntireRow.Hidden = True
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[6]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[6]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[6]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("SEA Employee Customer AFS").Visible = True
+    Sheets("SEA Employee RLP").Visible = True
+    Sheets("SEA Employee").Visible = True
+    Sheets("SEA Employee AFS").Visible = True
+
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee TDF'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee RLP'!A1", TextToDisplay:="RLP"
+        
+    Sheets("Table of Contents").Select
+            Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee AFS'!A1", TextToDisplay:="Audit Finding Sheet"
+            Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA Employee AFS'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+
+    Range("F4:I5").Select
+End Sub
+
+Sub Button7_Click()
+'
+' Button7_Click Macro
+' Macro recorded 6/20/2002 by Brandon L. Bailey
+'
+'
+'
+Application.ScreenUpdating = False
+Sheets("Customers Network").Select
+    Range("B47").Select
+    ActiveCell.FormulaR1C1 = "NA"
+    
+    Sheets("Customers Network").Select
+    Rows("46:47").Select
+    Selection.EntireRow.Hidden = True
+    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
+    
+    Sheets("Technical Data").Select
+    Rows("13:17").Select
+    Selection.EntireRow.Hidden = True
+    
+    Sheets("Macro Box").Visible = True
+    Sheets("Macro Box").Select
+    Range("B36").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[5]"
+    Range("B50").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[5]"
+    Range("B154").Select
+    ActiveCell.FormulaR1C1 = "=+R[-1]C[5]"
+    Sheets("Macro Box").Visible = False
+    
+    Sheets("SEA WS-AFS-Customer").Visible = True
+    Sheets("SEA WS RLP").Visible = True
+    Sheets("SEA WS TDF (Expanded)").Visible = True
+    Sheets("SEA WS-TDF").Visible = True
+    Sheets("SEA WS-AFS-Novell").Visible = True
+
+    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
+    
+    Sheets("Technical Data").Select
+        Range("E8").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS-TDF'!A1", TextToDisplay:="TDF"
+        
+        Sheets("Purchasing Data").Select
+        Range("E11").Select
+        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS RLP'!A1", TextToDisplay:="RLP"
+        
+    Sheets("Table of Contents").Select
+    Range("F32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("F33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS-TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("F34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS-AFS-Customer'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("D32").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS RLP'!A1", TextToDisplay:="License Reconciliation Form"
+    Range("D33").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS-TDF'!A1", TextToDisplay:="Technical Data Form"
+    Range("D34").Select
+    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
+        "'SEA WS-AFS-Customer'!A1", TextToDisplay:="Audit Finding Sheet"
+    Range("F19:F34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Bold"
+        .Size = 12
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    Range("D19:D34").Select
+    With Selection.Font
+        .Name = "Arial"
+        .FontStyle = "Regular"
+        .Size = 10
+        .Strikethrough = False
+        .Superscript = False
+        .Subscript = False
+        .OutlineFont = False
+        .Shadow = False
+        .Underline = xlUnderlineStyleNone
+        .ColorIndex = xlAutomatic
+    End With
+    With Selection
+        .HorizontalAlignment = xlRight
+        .VerticalAlignment = xlBottom
+        .WrapText = False
+        .Orientation = 0
+        .AddIndent = False
+        .IndentLevel = 0
+        .ShrinkToFit = False
+        .ReadingOrder = xlContext
+    End With
+
+    Range("F4:I5").Select
+End Sub
+<<<<<<
+======================
+Sheet32
+>>>>>>
+Attribute VB_Name = "Sheet32"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet33
+>>>>>>
+Attribute VB_Name = "Sheet33"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet34
+>>>>>>
+Attribute VB_Name = "Sheet34"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet35
+>>>>>>
+Attribute VB_Name = "Sheet35"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet36
+>>>>>>
+Attribute VB_Name = "Sheet36"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet37
+>>>>>>
+Attribute VB_Name = "Sheet37"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet38
+>>>>>>
+Attribute VB_Name = "Sheet38"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet39
+>>>>>>
+Attribute VB_Name = "Sheet39"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module3
+>>>>>>
+Attribute VB_Name = "Module3"
+<<<<<<
+======================
+Module4
+>>>>>>
+Attribute VB_Name = "Module4"
+Sub SEAEE()
+'
+' MLAUSR Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+O
+'
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("SEA Employee", "SEA Employee Customer AFS", "Post Audit Instructions")). _
+        Copy
+    
+    Sheets("SEA Employee").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA Employee Customer AFS").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub SEAEE1()
+'
+' MLAUSR1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+L
+'
+Application.ScreenUpdating = False
+
+    Sheets(Array("SEA Employee RLP", "SEA Employee", "SEA Employee Customer AFS", "SEA Employee AFS")) _
+        .Copy
+    Sheets("SEA Employee Customer AFS").Select
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Sheets("SEA Employee RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA Employee").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA Employee Customer AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA Employee AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub SEAWS()
+'
+' MLANOD Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+I
+'
+Application.ScreenUpdating = False
+
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("SEA WS TDF (Expanded)", "SEA WS-TDF", "SEA WS-AFS-Customer", _
+        "Post Audit Instructions")).Copy
+    
+    Sheets("SEA WS TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("SEA WS-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("SEA WS-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+Sub SEAWS1()
+'
+' MLANOD1 Macro
+' Macro recorded 9/27/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+k
+'
+Application.ScreenUpdating = False
+    
+    Sheets(Array("SEA WS RLP", "SEA WS TDF (Expanded)", "SEA WS-TDF", _
+        "SEA WS-AFS-Customer", "SEA WS-AFS-Novell")).Copy
+    Sheets("SEA WS-AFS-Customer").Select
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    Sheets("SEA WS RLP").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA WS TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA WS-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA WS-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    Sheets("SEA WS-AFS-Novell").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+    
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+Sub ESEAEE()
+
+'
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("SEA Employee", "SEA Employee Customer AFS", "Post Audit Instructions")). _
+        Copy
+   
+    Sheets("SEA Employee").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("SEA Employee Customer AFS").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+Sub ESEAWS()
+Application.ScreenUpdating = False
+    Sheets("Post Audit Instructions").Visible = True
+    Sheets(Array("SEA WS TDF (Expanded)", "SEA WS-TDF", "SEA WS-AFS-Customer", "Post Audit Instructions")). _
+        Copy
+        
+    Sheets("SEA WS-TDF").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+   '    .CenterHorizontally = True
+   '    .CenterVertically = False
+       .PaperSize = xlPaperA4
+   '    .FitToPagesWide = 1
+   '    .FitToPagesTall = 1
+    End With
+
+
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("SEA WS TDF (Expanded)").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+        
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+    Range("A1").Select
+
+    Sheets("SEA WS-AFS-Customer").Select
+    ActiveSheet.Unprotect
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+       .PaperSize = xlPaperA4
+    '   .FitToPagesWide = 1
+    '   .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Shapes("Button 2").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 3").Select
+    Selection.Delete
+    ActiveSheet.Shapes("Button 4").Select
+    Selection.Delete
+    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
+        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
+        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
+        AllowDeletingRows:=True
+        Range("A1").Select
+
+    Sheets("Post Audit Instructions").Select
+    ActiveSheet.Unprotect ("toshiba")
+    Cells.Select
+    Selection.Copy
+    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
+        :=False, Transpose:=False
+    Application.CutCopyMode = False
+    
+    With ActiveSheet.PageSetup
+    '   .CenterHorizontally = True
+    '   .CenterVertically = False
+        .PaperSize = xlPaperA4
+    '    .FitToPagesWide = 1
+    '    .FitToPagesTall = 1
+    End With
+    
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True
+    Range("A1").Select
+    sFilt = "Excel File (*.xls),*.xls"
+    sFilename = ActiveWorkbook.Application.GetSaveAsFilename(, sFilt)
+    If sFilename <> False Then
+    ActiveWorkbook.SaveAs Filename:=sFilename
+    ActiveWindow.Close
+    Else
+    ActiveWindow.Close (False)
+    
+    End If
+    
+    Sheets("Post Audit Instructions").Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+
+
+
+
+<<<<<<
+======================
+Module13
+>>>>>>
+Attribute VB_Name = "Module13"
+Sub Instructions()
+Attribute Instructions.VB_Description = "Macro recorded 10/7/2002 by Brandon L. Bailey"
+Attribute Instructions.VB_ProcData.VB_Invoke_Func = "m\n14"
+'
+' Instructions Macro
+' Macro recorded 10/7/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+m
+'
+    Sheets("Instructions").Visible = True
+    Sheets("Instructions").Select
+End Sub
+Sub hide()
+Attribute hide.VB_Description = "Macro recorded 10/7/2002 by Brandon L. Bailey"
+Attribute hide.VB_ProcData.VB_Invoke_Func = "n\n14"
+'
+' hide Macro
+' Macro recorded 10/7/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+n
+'
+    ActiveWindow.WindowState = xlMaximized
+    ActiveWindow.SelectedSheets.Visible = False
+    Sheets("Table of Contents").Select
+End Sub
+<<<<<<
+======================
+Sheet40
+>>>>>>
+Attribute VB_Name = "Sheet40"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet41
+>>>>>>
+Attribute VB_Name = "Sheet41"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module1
+>>>>>>
+Attribute VB_Name = "Module1"
+Sub Products()
+
+Application.ScreenUpdating = False
+
+    Dim iValue
+    iValue = Worksheets("Customers Network").CheckBoxes(Application.Caller).Value
+    Dim oProductRange As Excel.Range
+    Set oProductRange = Worksheets("Row List").Range(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text)
+    
+    If iValue = 1 Then
+       For i = 1 To oProductRange.Rows.Count
+            sSheetName = oProductRange.Cells(i, 1)
+            sRowNumber = oProductRange.Cells(i, 2)
+            Worksheets(sSheetName).Rows(sRowNumber & ":" & sRowNumber).EntireRow.Hidden = False
+           
+       Next i
+       
+       If InStr(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text, "Other") <> 0 Then
+            VersionForm2.Caption = Worksheets("Customers Network").CheckBoxes(Application.Caller).Text
+            VersionForm2.Show
+       ElseIf InStr(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text, "Zen_SD") <> 0 Then
+            Call AddButtonsToUserFormForZen(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text)
+       Else
+            Call AddButtonsToUserForm(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text)
+       End If
+          
+    Else
+        For i = 1 To oProductRange.Rows.Count
+            sSheetName = oProductRange.Cells(i, 1)
+            sRowNumber = oProductRange.Cells(i, 2)
+            Worksheets(sSheetName).Rows(sRowNumber & ":" & sRowNumber).EntireRow.Hidden = True
+        Next i
+        
+        If InStr(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text, "Other") <> 0 Then
+            Call FillOtherCheckBox(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text, "", "")
+        ElseIf Worksheets("Customers Network").CheckBoxes(Application.Caller).Caption = "Zen_SD" Then
+            Worksheets("Customers Network").Range("C33").Value = ""
+            Worksheets("Customers Network").Range("D33").Value = ""
+        Else
+            Call FillProductCheckBox(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text, "")
+        End If
+        
+        If InStr(Worksheets("Customers Network").CheckBoxes(Application.Caller).Text, "NetWare") <> 0 Then
+        Sheets("Installed License").Select
+        ActiveSheet.Unprotect ("toshiba")
+            Worksheets("Installed License").Rows("7:7").EntireRow.Hidden = True
+            Worksheets("Installed License").Rows("9:9").EntireRow.Hidden = True
+            Worksheets("Installed License").Rows("11:11").EntireRow.Hidden = True
+            Worksheets("Installed License").Rows("13:13").EntireRow.Hidden = True
+    
+        ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True _
+            , AllowInsertingHyperlinks:=True
+        Sheets("Customers Network").Select
+        End If
+    
+    End If
+    
+End Sub
+
+
+Sub AddButtonsToUserForm(sProduct As String)
+    Dim oChk
+    Dim sRange As String
+    sRange = sProduct + "_Version"
+    Dim oProductRange As Excel.Range
+    Set oProductRange = Worksheets("Versions").Range(sRange)
+    
+        For i = 1 To oProductRange.Rows.Count
+            n = 0 + (i * 20)
+            Set oChk = VersionForm.Controls.Add("Forms.CheckBox.1")
+            With oChk
+                .Caption = oProductRange.Cells(i, 1)
+                .Top = n
+                .Left = 20
+            End With
+        Next i
+    
+        Set oOtherChk = VersionForm.Controls.Add("Forms.CheckBox.1")
+        With oOtherChk
+            .Caption = "Other"
+            .Top = n + 20
+            .Left = 20
+        End With
+        
+        Set oOtherTextBox = VersionForm.Controls.Add("Forms.TextBox.1")
+        oOtherTextBox.Top = n + 20
+        oOtherTextBox.Left = 70
+            
+    VersionForm.Caption = sProduct
+    VersionForm.Controls("CommandButton1").Top = n + 60
+    VersionForm.Controls("CommandButton2").Top = n + 60
+    VersionForm.Height = n + 130
+    VersionForm.Show
+End Sub
+
+Sub AddButtonsToUserFormForZen(sProduct)
+    
+    Dim oProductRange As Excel.Range
+    Dim oProductRange2 As Excel.Range
+    Set oProductRange = Worksheets("Versions").Range("Zen_Desktops_Version")
+    Set oProductRange2 = Worksheets("Versions").Range("Zen_Servers_Version")
+    
+    Set oLbl1 = VersionForm.Controls.Add("Forms.Label.1")
+    Set oLbl2 = VersionForm.Controls.Add("Forms.Label.1")
+    oLbl1.Top = 20
+    oLbl1.Left = 20
+    oLbl2.Top = 20
+    oLbl2.Left = 170
+    oLbl1.Caption = "Zen Desktops"
+    oLbl2.Caption = "Zen Servers"
+    
+        
+    For i = 1 To oProductRange.Rows.Count
+            n = 20 + (i * 20)
+            Set oChk = VersionForm.Controls.Add("Forms.CheckBox.1")
+            With oChk
+                .Caption = oProductRange.Cells(i, 1)
+                .Top = n
+                .Left = 20
+                .Name = "Desktops_" & i
+            End With
+    Next i
+    
+    For i = 1 To oProductRange2.Rows.Count
+            z = 20 + (i * 20)
+            Set oChk = VersionForm.Controls.Add("Forms.CheckBox.1")
+            With oChk
+                .Caption = oProductRange2.Cells(i, 1)
+                .Top = z
+                .Left = 170
+                .Name = "Servers_" & i
+            End With
+    Next i
+    
+    Set oOtherChk = VersionForm.Controls.Add("Forms.CheckBox.1")
+    With oOtherChk
+        .Caption = "Other"
+        .Top = n + 20
+        .Left = 20
+        .Name = "D_Other"
+    End With
+    
+    Set oOtherChk = VersionForm.Controls.Add("Forms.CheckBox.1")
+    With oOtherChk
+        .Caption = "Other"
+        .Top = z + 20
+        .Left = 170
+        .Name = "S_Other"
+    End With
+    
+    Set oOtherTextBox = VersionForm.Controls.Add("Forms.TextBox.1")
+    oOtherTextBox.Top = n + 20
+    oOtherTextBox.Left = 70
+        
+     Set oOtherTextBox = VersionForm.Controls.Add("Forms.TextBox.1")
+    oOtherTextBox.Top = z + 20
+    oOtherTextBox.Left = 220
+    
+    VersionForm.Caption = sProduct
+    VersionForm.Controls("CommandButton1").Top = n + 60
+    VersionForm.Controls("CommandButton2").Top = n + 60
+    VersionForm.Height = n + 130
+    VersionForm.Show
+End Sub
+
+Sub FillProductCheckBox(sProduct, sValue)
+
+    Select Case sProduct
+        Case "NetWare"
+                Worksheets("Customers Network").Range("C27").Value = sValue
+        Case "GroupWise"
+                 Worksheets("Customers Network").Range("C29").Value = sValue
+        Case "BorderManager"
+                 Worksheets("Customers Network").Range("C31").Value = sValue
+        Case "Zen_Desktops"
+                 Worksheets("Customers Network").Range("C37").Value = sValue
+        Case "Zen_Servers"
+                 Worksheets("Customers Network").Range("C35").Value = sValue
+        Case "ManageWise"
+                 Worksheets("Customers Network").Range("C39").Value = sValue
+        Case "E_Directory"
+                 Worksheets("Customers Network").Range("C41").Value = sValue
+        Case "ZenSuite"
+                 Worksheets("Customers Network").Range("C43").Value = sValue
+        Case "DirXML"
+                 Worksheets("Customers Network").Range("G27").Value = sValue
+        Case "NAM"
+                 Worksheets("Customers Network").Range("G29").Value = sValue
+        Case "DirXML_SAP"
+                 Worksheets("Customers Network").Range("M27").Value = sValue
+        Case "DirXML_PS"
+                 Worksheets("Customers Network").Range("M29").Value = sValue
+        Case "DirXML_JDBC"
+                 Worksheets("Customers Network").Range("M31").Value = sValue
+    End Select
+    
+End Sub
+
+Sub FillOtherCheckBox(sCheckBox, sProduct, sVersion)
+    Select Case sCheckBox
+        Case "Other_1"
+                Worksheets("Customers Network").Range("G31").Value = sProduct
+                Worksheets("Customers Network").Range("H31").Value = sVersion
+        Case "Other_2"
+                Worksheets("Customers Network").Range("G33").Value = sProduct
+                 Worksheets("Customers Network").Range("H33").Value = sVersion
+        Case "Other_3"
+                Worksheets("Customers Network").Range("G35").Value = sProduct
+                 Worksheets("Customers Network").Range("H35").Value = sVersion
+        Case "Other_4"
+                Worksheets("Customers Network").Range("G37").Value = sProduct
+                Worksheets("Customers Network").Range("H37").Value = sVersion
+        Case "Other_5"
+                Worksheets("Customers Network").Range("G39").Value = sProduct
+                Worksheets("Customers Network").Range("H39").Value = sVersion
+        Case "Other_6"
+                Worksheets("Customers Network").Range("G41").Value = sProduct
+                Worksheets("Customers Network").Range("H41").Value = sVersion
+        Case "Other_7"
+                Worksheets("Customers Network").Range("G43").Value = sProduct
+                Worksheets("Customers Network").Range("H43").Value = sVersion
+    End Select
+End Sub
+<<<<<<
+======================
+Module6
+>>>>>>
+Attribute VB_Name = "Module6"
+<<<<<<
+======================
+Module7
+>>>>>>
+Attribute VB_Name = "Module7"
+Sub actionitems()
+Attribute actionitems.VB_Description = "Macro recorded 10/11/2002 by Brandon L. Bailey"
+Attribute actionitems.VB_ProcData.VB_Invoke_Func = "C\n14"
+'
+' actionitems Macro
+' Macro recorded 10/11/2002 by Brandon L. Bailey
+'
+' Keyboard Shortcut: Ctrl+Shift+C
+'
+Application.ScreenUpdating = False
+    Sheets("Action Items").Select
+    Sheets("Action Items").Copy
+    ActiveWorkbook.SaveAs Filename:= _
+        "C:\Documents and Settings\Administrator\Desktop\Audit Action Items.xls", _
+        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
+        ReadOnlyRecommended:=False, CreateBackup:=False
+    ActiveWorkbook.Save
+    ActiveWindow.Close
+End Sub
+
+<<<<<<
+======================
+VersionForm
+>>>>>>
+Attribute VB_Name = "VersionForm"
+Attribute VB_Base = "0{5D3C9EC2-D4F5-4DCD-93EF-62B256C76E27}{F11B96F1-20B8-4F01-90FE-2E6FEC6FD174}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = False
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = False
+Private Sub CommandButton1_Click()
+    Dim sValue As String
+    sValue = ""
+    sDesktopValue = ""
+    sServersValue = ""
+    For Each octrl In VersionForm.Controls
+        If TypeName(octrl) = "CheckBox" Then
+            If InStr(octrl.Name, "CheckBox") <> 0 Then
+                If octrl.Value = True Then
+                    If octrl.Caption = "Other" Then
+                        sValue = sValue + VersionForm.Controls("TextBox1").Value + ", "
+                    Else
+                        sValue = sValue + octrl.Caption + ", "
+                    End If
+                End If
+            Else
+                If octrl.Value = True Then
+                    If octrl.Name = "D_Other" Then
+                        sDesktopValue = sDesktopValue & VersionForm.Controls("TextBox1").Value + ", "
+                    ElseIf octrl.Name = "S_Other" Then
+                        sServersValue = sServersValue & VersionForm.Controls("TextBox2").Value + ", "
+                    ElseIf InStr(octrl.Name, "Desktops") <> 0 Then
+                        sDesktopValue = sDesktopValue & octrl.Caption & ", "
+                    ElseIf InStr(octrl.Name, "Servers") <> 0 Then
+                        sServersValue = sServersValue & octrl.Caption & ", "
+                    End If
+                    
+                    If sDesktopValue = "" Then
+                        sDesktopValueResult = ""
+                    Else
+                        sDesktopValueResult = Left(sDesktopValue, (Len(sDesktopValue) - 2))
+                        
+                    End If
+                    If sServersValue = "" Then
+                        sServersValueResult = ""
+                    Else
+                        sServersValueResult = Left(sServersValue, (Len(sServersValue) - 2))
+                    End If
+                    
+                    Worksheets("Customers Network").Range("C33").Value = sDesktopValueResult
+                    Worksheets("Customers Network").Range("D33").Value = sServersValueResult
+                 End If
+            End If
+        End If
+    Next
+            If sValue = "" Then
+                sResult = ""
+            Else
+                sResult = Left(sValue, (Len(sValue) - 2))
+            End If
+        
+    Call Module1.FillProductCheckBox(VersionForm.Caption, sResult)
+    Call Module9.hidenonuse
+           
+    Unload VersionForm
+
+End Sub
+
+Private Sub CommandButton2_Click()
+
+Dim oProductRange As Excel.Range
+Set oProductRange = Worksheets("drop-down menu").Range(VersionForm.Caption)
+
+For i = 1 To oProductRange.Rows.Count
+      sSheetName = oProductRange.Cells(i, 1)
+      sRowNumber = oProductRange.Cells(i, 2)
+      Worksheets(sSheetName).Rows(sRowNumber & ":" & sRowNumber).EntireRow.Hidden = True
+Next i
+
+Select Case VersionForm.Caption
+        Case "NetWare"
+                Worksheets("Customers Network").Range("C27").Value = ""
+        Case "GroupWise"
+                 Worksheets("Customers Network").Range("C29").Value = ""
+        Case "BorderManager"
+                 Worksheets("Customers Network").Range("C31").Value = ""
+        Case "Zen_SD"
+                 Worksheets("Customers Network").Range("C33").Value = ""
+        Case "Zen_Desktops"
+                 Worksheets("Customers Network").Range("C35").Value = ""
+        Case "Zen_Servers"
+                 Worksheets("Customers Network").Range("C37").Value = ""
+        Case "ManageWise"
+                 Worksheets("Customers Network").Range("C39").Value = ""
+        Case "E_Directory"
+                 Worksheets("Customers Network").Range("C41").Value = ""
+        Case "DirXML"
+                 Worksheets("Customers Network").Range("G27").Value = ""
+        Case "NAM"
+                 Worksheets("Customers Network").Range("G29").Value = ""
+    End Select
+    Worksheets("Customers Network").CheckBoxes(Application.Caller).Value = False
+    Unload VersionForm
+End Sub
+
+
+Private Sub otherversion_Change()
+
+End Sub
+
+Private Sub UserForm_Click()
+
+End Sub
+<<<<<<
+======================
+VersionForm2
+>>>>>>
+Attribute VB_Name = "VersionForm2"
+Attribute VB_Base = "0{D5BCCDF3-33CB-41D3-825A-8CACD8507DD5}{B38C7E84-5946-4E03-99AB-52B7BCC19FC1}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = False
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = False
+Private Sub CommandButton3_Click()
+sProduct = TextBox1.Text
+sVersion = TextBox2.Text
+
+    Call Module1.FillOtherCheckBox(VersionForm2.Caption, sProduct, sVersion)
+
+    Unload VersionForm2
+End Sub
+
+Private Sub CommandButton4_Click()
+    Dim oProductRange As Excel.Range
+    Set oProductRange = Worksheets("drop-down menu").Range(VersionForm2.Caption)
+    
+    For i = 1 To oProductRange.Rows.Count
+          sSheetName = oProductRange.Cells(i, 1)
+          sRowNumber = oProductRange.Cells(i, 2)
+          Worksheets(sSheetName).Rows(sRowNumber & ":" & sRowNumber).EntireRow.Hidden = True
+    Next i
+    
+    Worksheets("Customers Network").CheckBoxes(Application.Caller).Value = False
+    Unload VersionForm2
+       
+End Sub
+
+Private Sub UserForm_Click()
+
+End Sub
+<<<<<<
+======================
+VersionForm3
+>>>>>>
+Attribute VB_Name = "VersionForm3"
+Attribute VB_Base = "0{AAAA3876-867C-4016-96E4-556F77398D6C}{FC1A5E62-389F-4601-B7D7-B85EBAA03FB8}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = False
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = False
+Private Sub UserForm_Click()
+
+End Sub
+<<<<<<
+======================
+Sheet55
+>>>>>>
+Attribute VB_Name = "Sheet55"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module8
+>>>>>>
+Attribute VB_Name = "Module8"
+
+<<<<<<
+======================
+Sheet16
+>>>>>>
+Attribute VB_Name = "Sheet16"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet18
+>>>>>>
+Attribute VB_Name = "Sheet18"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Module9
+>>>>>>
+Attribute VB_Name = "Module9"
+Sub hidenonuse()
+
+Application.ScreenUpdating = False
+
+Sheets("Installed License").Select
+    ActiveSheet.Unprotect ("toshiba")
+
+    If InStr(Worksheets("Customers Network").Range("C27").Value, "3") <> 0 Then
+
+
+        Worksheets("Installed License").Rows("7:7").EntireRow.Hidden = False
+        
+    End If
+    
+
+    If InStr(Worksheets("Customers Network").Range("C27").Value, "4") <> 0 Then
+
+
+        Worksheets("Installed License").Rows("9:9").EntireRow.Hidden = False
+        
+    End If
+        
+   If InStr(Worksheets("Customers Network").Range("C27").Value, "5") <> 0 Then
+
+
+        Worksheets("Installed License").Rows("11:11").EntireRow.Hidden = False
+        
+    End If
+    
+    If InStr(Worksheets("Customers Network").Range("C27").Value, "6.5") <> 0 Then
+    
+        Worksheets("Installed License").Rows("11:11").EntireRow.Hidden = True
+        
+    End If
+        
+    If InStr(Worksheets("Customers Network").Range("C27").Value, "6") <> 0 Then
+
+
+        Worksheets("Installed License").Rows("13:13").EntireRow.Hidden = False
+
+End If
+
+    ActiveSheet.Protect Password:="toshiba", DrawingObjects:=True, Contents:=True, Scenarios:=True _
+        , AllowInsertingHyperlinks:=True
+  Sheets("Customers Network").Select
+End Sub
+
+Sub SheetLock()
+
+Application.ScreenUpdating = False
+
+sPassword = Application.InputBox("What is the password?", "Unlock All")
+
+Sheets("Table of Contents").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Customer info").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Pre-Audit meeting").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Attendance").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Customers Network").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Self Audit").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Master Software").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Installed License").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Purchasing Data").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Technical Data").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Closing Meeting").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Action Items").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Post Audit").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Audit Closure").Select
+    ActiveSheet.Unprotect (sPassword)
+        With ActiveWindow
+        .DisplayGridlines = True
+        .DisplayHeadings = True
+    End With
+    
+Sheets("Table of Contents").Select
+MsgBox "All Unlocked"
+
+
+End Sub
+
+Sub SheetUnlock()
+
+Application.ScreenUpdating = False
+
+sPassword = Application.InputBox("What is the password?", "Lock All")
+
+Sheets("Table of Contents").Select
+    Range("F32:F34").Select
+        Selection.Locked = False
+        Selection.FormulaHidden = False
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingRows:=True, _
+        AllowInsertingColumns:=True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+        
+Sheets("Customer info").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+        
+Sheets("Pre-Audit meeting").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Attendance").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+        
+Sheets("Customers Network").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingRows:=True, _
+        AllowInsertingColumns:=True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+        
+Sheets("Self Audit").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Master Software").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Installed License").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+Sheets("Purchasing Data").Select
+Range("E11:E11").Select
+        Selection.Locked = False
+        Selection.FormulaHidden = False
+   ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingRows:=True, _
+        AllowInsertingColumns:=True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+        
+Sheets("Technical Data").Select
+Range("E8:E8").Select
+        Selection.Locked = False
+        Selection.FormulaHidden = False
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowFormattingCells:=True, AllowFormattingRows:=True, _
+        AllowInsertingColumns:=True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+        
+Sheets("Closing Meeting").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Action Items").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Post Audit").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Audit Closure").Select
+    ActiveSheet.Protect (sPassword), DrawingObjects:=False, Contents:=True, Scenarios:= _
+        True, AllowInsertingHyperlinks:=True
+    With ActiveWindow
+        .DisplayGridlines = False
+        .DisplayHeadings = False
+    End With
+    
+Sheets("Table of Contents").Select
+MsgBox "All Locked"
+
+End Sub
+
+
+
+<<<<<<
+======================
+Module10
+>>>>>>
+Attribute VB_Name = "Module10"
+Sub ToggleCheckBoxes()
+    If InStr(Application.Caller, "No") = 0 Then
+        If ActiveSheet.CheckBoxes(Application.Caller).Value = 1 Then
+            sName = Application.Caller & "_No"
+            ActiveSheet.CheckBoxes(sName).Value = -4146
+        End If
+    Else
+        If ActiveSheet.CheckBoxes(Application.Caller).Value = 1 Then
+            sName = Left(Application.Caller, Len(Application.Caller) - 3)
+            ActiveSheet.CheckBoxes(sName).Value = -4146
+        End If
+    End If
+End Sub
+<<<<<<
+======================
+Sheet19
+>>>>>>
+Attribute VB_Name = "Sheet19"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet42
+>>>>>>
+Attribute VB_Name = "Sheet42"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet43
+>>>>>>
+Attribute VB_Name = "Sheet43"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet46
+>>>>>>
+Attribute VB_Name = "Sheet46"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet44
+>>>>>>
+Attribute VB_Name = "Sheet44"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet56
+>>>>>>
+Attribute VB_Name = "Sheet56"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet49
+>>>>>>
+Attribute VB_Name = "Sheet49"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet50
+>>>>>>
+Attribute VB_Name = "Sheet50"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet51
+>>>>>>
+Attribute VB_Name = "Sheet51"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet52
+>>>>>>
+Attribute VB_Name = "Sheet52"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet53
+>>>>>>
+Attribute VB_Name = "Sheet53"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
+======================
+Sheet54
+>>>>>>
+Attribute VB_Name = "Sheet54"
+Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = True
+Attribute VB_TemplateDerived = False
+Attribute VB_Customizable = True
+<<<<<<
--- openoffice.org-2.4.1.orig/ooo-build/doc/clipboard.txt
+++ openoffice.org-2.4.1/ooo-build/doc/clipboard.txt
@@ -0,0 +1,40 @@
+offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl:
+    + 3 methods:
+	XTransferable getContents();
+	[oneway] void setContents( [in] XTransferable xTrans, [in] XClipboardOwner xClipboardOwner );
+	string getName();
+
+offapi/com/sun/star/datatransfer/XTransferable.idl:
+    + 3 methods:
+	any getTransferData( [in] DataFlavor aFlavor )
+		raises ( UnsupportedFlavorException, com::sun::star::io::IOException );
+	sequence < DataFlavor > getTransferDataFlavors();
+	boolean isDataFlavorSupported( [in] DataFlavor aFlavor );
+
+offapi/com/sun/star/datatransfer/DataFlavour.idl:
+    struct DataFlavor
+    {
+	string MimeType;
+	string HumanPresentableName;
+	type DataType;
+    }
+
+* Main Access points:
+
+vcl/source/window/window.cxx (Window::GetClipboard):
+	+ Reference< XClipboard > Window::GetClipboard()
+	+ creates & initialises the service:
+	    "com.sun.star.datatransfer.clipboard.SystemClipboard"
+or eg.
+vcl/source/control/window.cxx (Windo::GetSelection):
+	+ again, creates the same service.
+
+
+* X / backend implementation:
+    dtrans/source/X11/*.[ch]*
+	+ implements the interfaces for X11
+
+* Client access / helper code
+	svtools/inc/transfer.hxx
+	svtools/source/misc/transfer.cxx (TransferableDataHelper)
+    
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/vcl-HEAD.txt
+++ openoffice.org-2.4.1/ooo-build/doc/vcl-HEAD.txt
@@ -0,0 +1,71 @@
+** Notes on back-port of VCL HEAD code: **
+
+* Background:
+
+    With the switch to HEAD in the next few months, we can afford to
+make a huge / hard-to-manage patch - for the medium term.
+
+* TODO
+
+cups work - forward port:
+
+2004-07-08  Chris Halls  <halls@debian.org>
+
+	* patches/OOO_1_1/psprint-cups.diff: Add missing
+	logic that disabled 'Add a printer' button in
+	padmin (it doesn't do anything when CUPS is used).
+	Debian bug#251888
+
+gui-scale-ruler still problematic ...
+
+NotVCLPlug - deal with these patches [!]
+
+Win32
+    + back-port the win32 theme stuff ...
+
+Potential KDE cut/paste issues (?):
+    + gui-scale-ruler.diff
+    + gui-i18n-default-font.diff
+
+* Merge features:
+
+cvs diff -u -r OpenOffice_1_1_2 -r SRC680_m46 vcl
+
+vcl/
+    win/
+    aqua/
+    os2/
+    mac/
+    workben/
+    util/defs/
+    source/remote/
+plain removals:
+      source/app/oldsv.cxx
+      inc/xevthdl.hxx
+      inc/window.imp
+      inc/vector2d.hxx
+      inc/scrbar.imp
+      inc/rvp.hxx
+      inc/rversion.h
+      inc/rmwindow.hxx
+      inc/rmsound.hxx
+      inc/rmprint.hxx
+      inc/rmoutdev.hxx
+      inc/rmevents.hxx
+      inc/rmcache.hxx
+      inc/resary.hxx
+      inc/outdev.imp
+      inc/ooffice.hxx
+      inc/line.hxx
+      inc/access.hxx
+copied in:
+      vcl/unx/gtk/
+      vcl/unx/dummy/
+      vcl/inv/plugins/
+
+-#ifndef REMOTE_APPSERVER
+	 type removals - mae the patch bug / cumbersome (?)
+	 source/gdi/opengl.cxx - particularly huge / uninteresting.
+
+-#ifndef __SGI_STL_FUNCTIONAL
++#ifndef _STLP_FUNCTIONAL
--- openoffice.org-2.4.1.orig/ooo-build/doc/mono-gc.txt
+++ openoffice.org-2.4.1/ooo-build/doc/mono-gc.txt
@@ -0,0 +1,445 @@
+The problem:
+    + mono is mind mangled & doesn't expose a sane GC API
+    + ie. it wants to know about your entire C stack & wander over it
+	+ it should push/pop start/stop tags as we invoke in/out
+	+ it should manage C handles with a controlled lifecycle
+	  mechanism: ref/unref layered on top of the GC
+	    => no need to worry about walking the C stack.
+    + however - this is horribly broken somehow.
+
+We really need something like GC_start_routine()
+   the start_info would be used to invoke our fn. and cleanup would
+   be automatic.
+
+* RedHerring 1: what is:
+    GC_push_all_stack(self, <base ptr>)
+    called from GCThreadFunctions mono_gc_thread_vtable
+	-> mono_gc_push_all_stacks
+	    + for the debugger [ libgc/include/libgc-mono-debugger.h ]
+
+    
+* The pthread_support.c code seems to be not much called:
+	GC_segment_is_thread_stack - only from some dlopen code
+	    GC_register_map_entries() [ filtering out code regions ? ]
+
+	    * seems to call GC_add_roots *
+
+	    /* Add a root segment.  Wizards only. */
+	    GC_API void GC_add_roots GC_PROTO((char * low_address,
+	    				       char * high_address_plus_1));
+	   /* Remove a root segment.  Wizards only. */
+	   GC_API void GC_remove_roots GC_PROTO((char * low_address, 
+				                char * high_address_plus_1));
+
+
+* Adding a thread has to set the GC_suspend_handler / GC_restart_handler
+    + cf. pthread_stop_world, pthread_stop_init (?)
+
+    + GC_stop_world uses the stop_world method from the vtable ...
+	    GCThreadFunctions *gc_thread_vtable = &pthread_thread_vtable;
+
+    => We need thread data to ensure we have stopped all the threads properly.
+	    => we need to setup / install our signal handler properly in
+	       each thread.
+
+    + The high stack pointer is grokked from the 
+      GC_approx_sp function - from the signal handler - just
+      returns cur ptr. - signal handler executing on stack of
+      signal recieving thread. [ fun ]
+
+* GC_push_all_stacks [ pthread_stop_world.c ]
+    + calls 'push_all_stack' for each thread.
+	    + called from os_dep.c (GC_default_push_other_roots)
+		    [ GC_push_other_roots ]
+
+* Hacking libgc:
+
+<lupus> yes, I suggest just duplicating the needed code for now
+<michael_> lupus: is this a minimal-changes regimen ? or a wild-crazy-re-factoring-festival ?
+<lupus> michael_: no crazy refactoring:-)
+<michael_> lupus: and what does one do about a non-internal libgcj ? - or is that not a case worth worrying about ?
+<lupus> michael_: we'll use the proper ifdef in the mono runtime
+<michael_> sure - but it's ok to break horribly if we're not using an internal libgcj ? ;-)
+<lupus> but a not internal gc is just for our testing, it's not a supported feature for people to use
+<michael_> ie. no foreign-thread / OO.o impl. ?
+<michael_> oh - great :-)
+
+** How does Mono get a callback from the pthread foo ?
+    + 
+
+We need to add the functionality we need to mono_thread_attach
+
+
+2005-04-12 log:
+
+<michael_> lupus: so - are you utterly opposed to adding this to mono_runtime_invoke ?
+<lupus> michael_: why should I be opposed?
+<michael_> lupus: there is a small cost, particularly if you don't have a thread-variable,
+<michael_> lupus: of course - then we could bin the mono_thread_attach or whatever;
+<lupus> michael_: unmanaged->managed is not an important transition and a simple check is cheap
+<lupus> of course there is no need to drop mono_thread_attach
+<michael_> lupus: ok'y dokey,
+<michael_> lupus: so - I'll re-work the patch to move this code into mono_runtime_invoke ?
+<lupus> michael_: if your current patch works for you, I can write the equivalent code for the next mono release
+<lupus> we're not going to remove the thread info at the end of _invoke
+<lupus> something like the setspecific hack you had may be enough
+<michael_> lupus: the problem is - we could get invoked again from lower down the stack in the same thread trivially.
+<michael_> lupus: so - it's really no safer;
+<michael_> lupus: and removing the thread information from the gc post invoke - [ if we added it ourself ] is cheap anyhow.
+<lupus> that is not cheap, it requires locking both in the runtime and the GC
+<lupus> I don't see what removing the info each time buys us
+<michael_> lupus: consider A() -> B() -> C() -> runtime_invoke -> adds stack base --><--
+--> eno (~atsushi@east94-p4.eaccess.hi-ho.ne.jp) has joined #mono
+<lupus> the code I have in mind will check the stack start registered: if it doesn't contain the current stack address, we change it
+<michael_> lupus: subsequently A() -> runtime_invoke -> stack base is now --><--
+<michael_> lupus: sounds fine,
+<lupus> it will also register an aligned address
+<michael_> lupus: sounds fine,
+<lupus> at a page size so hopefully we get a good enough approximation of the thread start
+<michael_> lupus: sounds like you've got it under control anyhow
+<michael_> clearly manipulating the local thread stack/state should require precisely no locking in an ideal world ;-)
+<michael_> but ...
+<michael_> [ when we write a better GC - we'll make it perfectly precise - right ? ;-]
+<lupus> michael_: since you need to register the thread with the GC it's not possible to avoid a lock, since it's global state
+<lupus> and we won't have a perfectly precise GC
+<michael_> lupus: AFAICS the GC only asks for that when a signal is fired,
+<lupus> the unamanged stack will still be conservatively scanned for a while
+<lupus> michael_: the GC needs the stack boundaries when doing collection
+<michael_> lupus: I appreciate that ;-)
+<michael_> lupus: anyhow - thanks for taking that on.
+<michael_> lupus: when is the next release ? :-)
+<lupus> michael_: likely in a month or so
+
+
+
+
+--------------------- Debugging my bogus (non)-GC related bug ---------------------
+
+0x8240e70
+
+	+ Threads created outside Mono's control ...
+	+ GC crash - under gdb:
+		+ greatest_ha - 
+(gdb) p limit
+$1 = (word *) 0x83c2104
+(gdb) p *limit
+Cannot access memory at address 0x83c2104
+(gdb) p *(limit - 4096)
+$2 = 0
+(gdb) p *(limit + 4096)
+Cannot access memory at address 0x83c6104
+
+	GC_mark_from mis-calculates limit, clearly it's scanning a
+broken / non-object; missing the length [ with 0 bottom 2 bits] tag /
+marker. Who sets that up ?
+
+	The mark stack is a simple array, and looks fine ( in places ):
+
+$42 = {mse_start = 0x81fd800, mse_descr = 1024}
+(gdb) p mark_stack[14]
+$43 = {mse_start = 0x81eff00, mse_descr = 32}
+(gdb) p mark_stack[15]
+$44 = {mse_start = 0x81eef00, mse_descr = 160}
+(gdb) p mark_stack[16]
+$45 = {mse_start = 0x81fae00, mse_descr = 4294967279}
+... <identical > ...
+(gdb) p mark_stack[20]
+$52 = {mse_start = 0x8355000, mse_descr = 4294967279}
+(gdb) p mark_stack[21]
+$53 = {mse_start = 0x83c2108, mse_descr = 136027216}
+(gdb) p mark_stack[22]
+$54 = {mse_start = 0x83acd20, mse_descr = 80}
+(gdb) p mark_stack[23]
+$55 = {mse_start = 0x83accd0, mse_descr = 80}
+
+	The mark stack data comes from: MARK_FROM_MARK_STACK
+
+	GC_mark_stack_top = GC_mark_from(GC_mark_stack_top, \
+					 GC_mark_stack, \
+					 GC_mark_stack + GC_mark_stack_size);
+
+	+ need to watch all manipulations of the GC_mark_stack ... (?)
+		gc_pmark.h
+	+ GC_PUSH_ONE_HEAP, GC_PUSH_ONE_STACK (calls)
+		-> GC_mark_and_push, GC_mark_and_push_stack
+
+	The problem comes from: GC_push_all_stacks ... (pthread_stop_world.c)
+
+#1  0x080fbe2b in GC_push_all_eager (bottom=0xbfffc1b4 "0%Gï¿½ï¿½ï¿½%@", top=0xbfffce30 "\002") at mark.c:1485
+#2  0x0813a7eb in pthread_push_all_stacks () at pthread_stop_world.c:260
+#3  0x0813a6ad in GC_push_all_stacks () at pthread_stop_world.c:291
+#4  0x080f673b in GC_push_roots (all=1, cold_gc_frame=0xbfffc254 "\200") at mark_rts.c:643
+#5  0x080fd0ea in GC_mark_some (cold_gc_frame=0xbfffc254 "\200") at mark.c:306
+#6  0x080ff51c in GC_stopped_mark (stop_func=0x80febe0 <GC_never_stop_func>) at alloc.c:533
+#7  0x080ff7d8 in GC_try_to_collect_inner (stop_func=0x80febe0 <GC_never_stop_func>) at alloc.c:375
+#8  0x080ff98d in GC_collect_or_expand (needed_blocks=1, ignore_off_page=0) at alloc.c:1035
+#9  0x080ffe23 in GC_allocobj (sz=128, kind=0) at alloc.c:1112
+#10 0x080f9041 in GC_generic_malloc_inner (lb=454, k=0) at malloc.c:136
+#11 0x080f90b4 in GC_generic_malloc (lb=454, k=0) at malloc.c:192
+#12 0x080f9361 in GC_malloc_atomic (lb=454) at malloc.c:270
+#13 0x080c226a in mono_string_new_size (domain=0x81eef00, len=220) at object.c:2081
+#14 0x080d1c18 in ves_icall_System_String_InternalAllocateStr (length=220) at string-icalls.c:634
+
+	* pthread_stop_world.c - do we set p->flags & MAIN_THREAD ?
+		+ bs_lo = p->backing_store_end
+		+ bs_hi = GC_save_regs_in_stack etc.
+
+	* GC_push_all_eager - must get the wrong end of the stick somehow (?)
+
+initially (fine):
+
+Pushing stacks from thread 0x4021abc0
+Stack for thread 0x4021abc0(0x6) = [bfffcd64,bfffd0b0)
+
+later (broken):
+
+Pushing stacks from thread 0x4021abc0
+Stack for thread 0x40b01bb0(0x2) = [40b01594,40b02000)
+Stack for thread 0x4021abc0(0x6) = [bfffc434,bfffd0b0)
+
+	hi < lo etc. [!]...
+
+	+ How does MAIN_THREAD get set (?)
+		- surely correct (by Mono)
+
+	+ Header from pointer: GET_HDR()... GC_find_header(p)
+
+	hdr * GC_find_header(h) ptr_t h;
+		+ does return HDR_INNER(h)
+
+# define HDR_FROM_BI(bi, p) \
+		((bi)->index[((word)(p) >> LOG_HBLKSIZE) & (BOTTOM_SZ - 1)])
+# ifndef HASH_TL
+#   define BI(p) (GC_top_index \
+		[(word)(p) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE)])
+#   define HDR_INNER(p) HDR_FROM_BI(BI(p),p)
+
+
+#   define LOG_BOTTOM_SZ 10
+#   define BOTTOM_SZ 1<<10
+#   define LOG_HBLKSIZE 12
+
+	By instrumenting hb_descr setting with:
+
+Set hb_descr to 16 on hdr 0x81eed70
+Set hb_descr to -17 on hdr 0x81efe08
+
+#0  setup_header (hhdr=0x81efe08, sz=4, kind=4, flags=0 '\0') at allchblk.c:243
+#1  0x080fc1e5 in GC_allochblk_nth (sz=4, kind=4, flags=0 '\0', n=6) at allchblk.c:743
+#2  0x080fbd78 in GC_allochblk (sz=4, kind=4, flags=0) at allchblk.c:558
+#3  0x081018a9 in GC_new_hblk (sz=4, kind=4) at new_hblk.c:253
+#4  0x081013d0 in GC_allocobj (sz=4, kind=4) at alloc.c:1103
+#5  0x080f94f6 in GC_generic_malloc_inner (lb=12, k=4) at malloc.c:136
+#6  0x080ff9c6 in GC_gcj_malloc (lb=12, ptr_to_struct_containing_descr=0x81b3b38) at gcj_mlc.c:157
+#7  0x080fa20b in GC_local_gcj_malloc (bytes=12, ptr_to_struct_containing_descr=0x81b3b38) at pthread_support.c:387
+#8  0x080c1117 in mono_object_new_alloc_specific (vtable=0x81b3b38) at object.c:2089
+#9  0x080c127b in mono_object_new_specific (vtable=0x81b3b38) at object.c:2147
+#10 0x080af01f in mono_type_get_object (domain=0x81f0f00, type=0x81c7e34) at reflection.c:5381
+#11 0x080c2094 in mono_class_vtable (domain=0x81f0f00, class=0x81c7d88) at object.c:861
+#12 0x080c20ca in mono_class_vtable (domain=0x81f0f00, class=0x81c7cb8) at object.c:859
+#13 0x080c20ca in mono_class_vtable (domain=0x81f0f00, class=0x81c7be8) at object.c:859
+#14 0x080c3223 in mono_object_new (domain=0x81f0f00, klass=0x81c7be8) at object.c:2108
+#15 0x080af01f in mono_type_get_object (domain=0x81f0f00, type=0x81c550c) at reflection.c:5381
+#16 0x080c2094 in mono_class_vtable (domain=0x81f0f00, class=0x81c5460) at object.c:861
+#17 0x080c20ca in mono_class_vtable (domain=0x81f0f00, class=0x81cc9a0) at object.c:859
+#18 0x080c3223 in mono_object_new (domain=0x81f0f00, klass=0x81cc9a0) at object.c:2108
+#19 0x080a7a1f in mono_runtime_init (domain=0x81f0f00, start_cb=0x81036b0 <mono_thread_start_cb>, 
+    attach_cb=0x8103760 <mono_thread_attach_cb>) at appdomain.c:96
+#20 0x081053cd in mini_init (filename=0xbfffd37d "ViewSample.exe") at mini.c:10053
+#21 0x0805b99b in mono_main (argc=2, argv=0xbfffce24) at driver.c:837
+#22 0x0805b218 in main (argc=2, argv=0xbfffce24) at main.c:6
+
+	So: 
+
+(gdb) p GC_obj_kinds[kind].ok_descriptor
+$3 = 4294967279
+(gdb) p GC_obj_kinds[kind]
+$4 = {ok_freelist = 0x81f4000, ok_reclaim_list = 0x8223000, ok_descriptor = 4294967279, ok_relocate_descr = 0, ok_init = 1}
+(gdb) p kind
+$5 = 4
+
+	Clearly ok_descriptor must be valid ... - do we not use this
+as a size ?
+	allchblk.c (setup_header):
+	      descr = GC_obj_kinds[kind].ok_descriptor;
+	      if (...) descr += WORDS_TO_BYTES(sz);
+
+	PUSH_OBJ(obj,hhdr) -> sets mse_descr to _descr
+
+	Is this:
+	      GC_obj_kinds[NORMAL].ok_descriptor = ((word)(-ALIGNMENT) | GC_DS_LENGTH);
+		responsible !?
+
+/* Predefined kinds: */
+# define PTRFREE 0
+# define NORMAL  1
+# define UNCOLLECTABLE 2
+# ifdef ATOMIC_UNCOLLECTABLE
+#   define AUNCOLLECTABLE 3
+#   define STUBBORN 4
+#   define IS_UNCOLLECTABLE(k) (((k) & ~1) == UNCOLLECTABLE)
+# else
+#   define STUBBORN 3
+#   define IS_UNCOLLECTABLE(k) ((k) == UNCOLLECTABLE)
+# endif
+
+GC_new_kind_inner screwed up -17
+
+Program received signal SIGSEGV, Segmentation fault.
+[Switching to Thread 1075948480 (LWP 8355)]
+GC_new_kind_inner (fl=0x81f4000, descr=4294967279, adjust=0, clear=1) at misc.c:1128
+1128                *(int *)NULL = 0;
+(gdb) bt
+#0  GC_new_kind_inner (fl=0x81f4000, descr=4294967279, adjust=0, clear=1) at misc.c:1128
+#1  0x080ff8f8 in GC_init_gcj_malloc (mp_index=5, mp=0x0) at gcj_mlc.c:87
+#2  0x080c1886 in mono_class_compute_gc_descriptor (class=0x81cc9a0) at object.c:539
+#3  0x080c1a77 in mono_class_vtable (domain=0x81f0f00, class=0x81cc9a0) at object.c:695
+#4  0x080c3223 in mono_object_new (domain=0x81f0f00, klass=0x81cc9a0) at object.c:2108
+#5  0x080a7a1f in mono_runtime_init (domain=0x81f0f00, start_cb=0x8103720 <mono_thread_start_cb>, 
+    attach_cb=0x81037d0 <mono_thread_attach_cb>) at appdomain.c:96
+#6  0x0810543d in mini_init (filename=0xbfffd37d "ViewSample.exe") at mini.c:10053
+#7  0x0805b99b in mono_main (argc=2, argv=0xbfffce24) at driver.c:837
+#8  0x0805b218 in main (argc=2, argv=0xbfffce24) at main.c:6
+(gdb) 
+
+	So - I hypothesize - the kinds are meant to be big/negative - but this is
+compensated for by the size of the allocation.
+
+	GC_gcj_kind = GC_new_kind_inner(
+			(void **)GC_gcjobjfreelist,
+			(((word)(-MARK_DESCR_OFFSET - GC_INDIR_PER_OBJ_BIAS))
+	   		 | GC_DS_PER_OBJECT),
+			FALSE, TRUE);
+
+
+	export GC_IGNORE_GCJ_INFO=1 - and it works ...
+
+	My gamble on GC_gcj_kind being broken ...
+
+	The problem comes from:
+
+(gdb) bt
+#0  setup_header (hhdr=0x81efe08, sz=4, kind=4, flags=0 '\0') at allchblk.c:245
+#1  0x080fc1ed in GC_allochblk_nth (sz=4, kind=4, flags=0 '\0', n=6) at allchblk.c:744
+#2  0x080fbd80 in GC_allochblk (sz=4, kind=4, flags=0) at allchblk.c:559
+#3  0x081018fd in GC_new_hblk (sz=4, kind=4) at new_hblk.c:253
+#4  0x08101424 in GC_allocobj (sz=4, kind=4) at alloc.c:1103
+#5  0x080f94f6 in GC_generic_malloc_inner (lb=12, k=4) at malloc.c:136
+#6  0x080ffa1a in GC_gcj_malloc (lb=12, ptr_to_struct_containing_descr=0x81b3b38) at gcj_mlc.c:157
+#7  0x080fa20b in GC_local_gcj_malloc (bytes=12, ptr_to_struct_containing_descr=0x81b3b38) at pthread_support.c:387
+#8  0x080c1117 in mono_object_new_alloc_specific (vtable=0x81b3b38) at object.c:2089
+#9  0x080c127b in mono_object_new_specific (vtable=0x81b3b38) at object.c:2147
+#10 0x080af01f in mono_type_get_object (domain=0x81f0f00, type=0x81c7e34) at reflection.c:5381
+#11 0x080c2094 in mono_class_vtable (domain=0x81f0f00, class=0x81c7d88) at object.c:861
+#12 0x080c20ca in mono_class_vtable (domain=0x81f0f00, class=0x81c7cb8) at object.c:859
+#13 0x080c20ca in mono_class_vtable (domain=0x81f0f00, class=0x81c7be8) at object.c:859
+#14 0x080c3223 in mono_object_new (domain=0x81f0f00, klass=0x81c7be8) at object.c:2108
+#15 0x080af01f in mono_type_get_object (domain=0x81f0f00, type=0x81c550c) at reflection.c:5381
+#16 0x080c2094 in mono_class_vtable (domain=0x81f0f00, class=0x81c5460) at object.c:861
+#17 0x080c20ca in mono_class_vtable (domain=0x81f0f00, class=0x81cc9a0) at object.c:859
+#18 0x080c3223 in mono_object_new (domain=0x81f0f00, klass=0x81cc9a0) at object.c:2108
+#19 0x080a7a1f in mono_runtime_init (domain=0x81f0f00, start_cb=0x8103700 <mono_thread_start_cb>, 
+    attach_cb=0x81037b0 <mono_thread_attach_cb>) at appdomain.c:96
+#20 0x0810541d in mini_init (filename=0xbfffd37d "ViewSample.exe") at mini.c:10053
+#21 0x0805b99b in mono_main (argc=2, argv=0xbfffce24) at driver.c:837
+#22 0x0805b218 in main (argc=2, argv=0xbfffce24) at main.c:6
+(gdb) up
+
+	So - then - negative hb_descrs are to be expected (apparently).
+
+process slot: 27
+ DS_PER_OBJECT: 0xffffffef
+  Object of type 'MonoType' has size 536870913
+ DS_BITMAP: 0x20000001
+process slot: 26
+ DS_PER_OBJECT: 0xffffffef
+  Object of type 'XModel' has size 138021856
+ DS_LENGTH: 0x83a0be0
+Assertion failure: mark.c:658
+assertion failure
+
+	...
+
+(gdb) p mark_stack_top
+$1 = (mse *) 0x81e50d0
+(gdb) p *mark_stack_top
+$2 = {mse_start = 0x8240e70, mse_descr = 4294967279}
+(gdb) p *mark_stack_top->mse_start
+$3 = 137267600
+(gdb) p *(MonoVTable **)mark_stack_top->mse_start
+$4 = (struct MonoVTable *) 0x82e8990
+(gdb) p *$4
+$5 = {klass = 0x8398d38, gc_descr = 0x8398ec0, domain = 0x83a0bc0, interface_offsets = 0x83a0ce8, data = 0x0, type = 0x81fffa0, 
+  max_interface_id = 34, rank = 0 '\0', remote = 0, initialized = 1, vtable = 0x82e89ac}
+(gdb) p *$4->klass
+$6 = {image = 0x8225010, enum_basetype = 0x0, element_class = 0x8398d38, cast_class = 0x8398d38, rank = 0 '\0', inited = 1, 
+  init_pending = 0, size_inited = 1, valuetype = 0, enumtype = 0, blittable = 1, unicode = 0, wastypebuilder = 0, min_align = 1, 
+  packing_size = 0, ghcimpl = 0, has_finalize = 0, marshalbyref = 0, contextbound = 0, delegate = 0, gc_descr_inited = 1, has_cctor = 0, 
+  dummy = 0, has_references = 0, has_static_refs = 0, declsec_flags = 0, exception_type = 0, exception_data = 0x0, parent = 0x0, 
+  nested_in = 0x0, nested_classes = 0x0, type_token = 33554953, name = 0x40b62892 "XModel", 
+  name_space = 0x40b62899 "unoidl.com.sun.star.frame", supertypes = 0x83a1988, idepth = 1, interface_count = 1, interface_id = 72, 
+  max_interface_id = 72, interface_offsets = 0x8397128, interfaces = 0x8352e28, instance_size = 8, class_size = 0, vtable_size = 0, 
+  flags = 161, field = {first = 911, last = 911, count = 0}, method = {first = 1137, last = 1148, count = 11}, property = {first = 0, 
+    last = 0, count = 0}, event = {first = 0, last = 0, count = 0}, marshal_info = 0x0, fields = 0x0, properties = 0x0, events = 0x0, 
+  methods = 0x83985d8, this_arg = {data = {klass = 0x8398d38, type = 0x8398d38, array = 0x8398d38, method = 0x8398d38, 
+      generic_param = 0x8398d38, generic_class = 0x8398d38}, attrs = 0, type = 18, num_mods = 0, byref = 1, pinned = 0, 
+    modifiers = 0x8398de4}, byval_arg = {data = {klass = 0x8398d38, type = 0x8398d38, array = 0x8398d38, method = 0x8398d38, 
+      generic_param = 0x8398d38, generic_class = 0x8398d38}, attrs = 0, type = 18, num_mods = 0, byref = 0, pinned = 0, 
+    modifiers = 0x8398dec}, generic_class = 0x0, generic_container = 0x0, reflection_info = 0x0, gc_descr = 0x0, 
+  runtime_info = 0x82470a0, vtable = 0x0}
+(gdb) p mono_class_get_parent($4->klass)
+$7 = (MonoClass *) 0x0
+(gdb) 
+
+with:
+
+(gdb) p fprintf(stderr, "0x%x\n", 137989824)
+0x8398ec0
+
+	ie. the gc_descr looks dead wrong.
+
+
+	** Frighteningly the gc_descr points to another MonoClass - instead of a GC value [!?]
+
+	With more debug printout we see:
+
+Add interface 'XComponentContext'
+Set pvt->gc_descr to 0x30000001: vtable 0x82e8888
+...
+  Object of type 'TransparentProxy' vtable 0x82e8888 class 0x81cd9d0 currentp 0x8240e70 has size 805306369 slot 29 on stack
+ DS_BITMAP: 0x30000001
+...
+  Object of type 'XModel' vtable 0x82e8888 class 0x838a538 currentp 0x8240e70 has size 137930328 slot 26 on stack
+ DS_LENGTH: 0x838a658
+
+    The instance seems to change type [!?]
+
+	Break in:
+
+Hardware watchpoint 3: *$3
+
+Old value = (MonoClass *) 0x81cd9d0
+New value = (MonoClass *) 0x838a538
+0x080c1545 in mono_upgrade_remote_class (domain=0x81f5f00, remote_class=0x82bdbd0, klass=0x838a538) at object.c:1108
+1108                            remote_class->interfaces [remote_class->interface_count-1] = klass;
+(gdb) bt
+#0  0x080c1545 in mono_upgrade_remote_class (domain=0x81f5f00, remote_class=0x82bdbd0, klass=0x838a538) at object.c:1108
+#1  0x0809506a in mono_upgrade_remote_class_wrapper (rtype=0x7, tproxy=0x836c120) at marshal.c:6806
+
+From TransparentProxy -> XModel
+
+...
+
+Then - trampling all over the GC data:
+
+Hardware watchpoint 2: *$2
+
+Old value = (void *) 0x30000001
+New value = (void *) 0x838a658
+0x080c1545 in mono_upgrade_remote_class (domain=0x81f5f00, remote_class=0x82bdbd0, klass=0x838a658) at object.c:1108
+1108                            remote_class->interfaces [remote_class->interface_count-1] = klass;
+(gdb) bt
+#0  0x080c1545 in mono_upgrade_remote_class (domain=0x81f5f00, remote_class=0x82bdbd0, klass=0x838a658) at object.c:1108
+#1  0x080c4563 in mono_object_isinst_mbyref (obj=0x837ecd8, klass=0x838a658) at object.c:2862
+#2  0x080c655e in ves_icall_type_IsInstanceOfType (type=0x8, obj=0x837ecd8) at icall.c:1189
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/calc.txt
+++ openoffice.org-2.4.1/ooo-build/doc/calc.txt
@@ -0,0 +1,41 @@
+
+	* sc/source/filter/excel/excrecds.cxx: seems we
+	re-'compile' the spreadsheet to an XL form for
+	export; good (ExcFormula)
+	(XclExptExtNameAddIn) instantiated from (InsertAddIn)
+	exccomp.cxx (CExcelCompiler::Factor), need hooks
+	here. -> xelink.cxx (XclExpLinkManager::GetLinkManager) -> add link.
+	Existing name write: (ptgName), (CExcelCompiler::IsNamedRange)
+	-> token; -> 
+
+
+	CExcelCompiler - sub-classed by 'ExcUPN':
+	    GetData(), GetLen() - in-line.
+	ExcUPN -> chains constructor and does:
+	    rCodeType = CreateCode( ... );
+
+	excrecds.cxx ExcFormula - creates ExcUPNs
+
+	Ergo -> most work done in 'CreateCode'
+	     'GetNextToken()'
+	     'Expression()'
+		-> complicated chained functions eg. 'PowLine'
+		-> Unclear as to their function
+		    -> What if a Concat is after a MulDiv ?
+
+	    'Factor'
+		-> Recurses through Expression [how odd]
+		-> PutCode - outputs code ...
+
+
+	    if (pSave->nParamCount == nVarParam)
+		- output a param count too.
+
+	ExcNameList::ExcNameList: GetExportIndex; index setup here.
+	new 'ExcName' -> root->pNameList (?) [ new ExcNameList ]
+	excrecds.cxx (ExcNameList::ExcNameList) sets up indexes etc.
+
+Factor:
+    + Outputs a Name record as well - highly convoluted & ugly code !
+    + prolly quite buggy too.
+    + Need to move name record output to link manager.
--- openoffice.org-2.4.1.orig/ooo-build/doc/memory.ods.uu
+++ openoffice.org-2.4.1/ooo-build/doc/memory.ods.uu
@@ -0,0 +1,482 @@
+begin 644 doc/memory.ods
+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
+M\&@:E_(G\<@9N+PIC*M2OL[>DA<^G8S&#_/E+/M>+5BMG2D!274'MEJ_?KS/
+M&$^D7+;@EF5I<A"-KZ2<9W/VV>DB6\K%%V>\>Q(%%3S"KYEQ*(>G:\J#=ZK1
+M:%`Y70,JRE43O8HF#S4X4G_UZA!C,F)G<&DL)%'H]Q<!H#`ZH7T+*==M:TVN
+M*98@MZX01R]Q:2&P]:`+W``0/T/*8&W2:MJD7')YER<&)V(.$8S(&U>:*OCC
+M9[_;[%*"S[>:]T-7)J?@`6^E$>Q(QMG[J3$-'1H\"(;D(NTMX.#8&DC_`]H/
+MRS:A_G':6)34'47KJJ'APQ8+1''_3]6.Y=6&3GX!4$L'"(/0@[@Y`0``.00`
+M`%!+`0(4`!0```````ER6S.%;#F*+@```"X````(````````````````````
+M``!M:6UE='EP95!+`0(4`!0```````ER6S,````````````````0````````
+M`````````%0```!#;VYF:6=U<F%T:6]N<S(O4$L!`A0`%```````"7);,P``
+M``````````````D`````````````````@@```%!I8W1U<F5S+U!+`0(4`!0`
+M"``(``ER6S,ESN+12R@``",&`P`+`````````````````*D```!C;VYT96YT
+M+GAM;%!+`0(4`!0`"``(``ER6S.G#6C!9P4```88```*````````````````
+M`"TI``!S='EL97,N>&UL4$L!`A0`%```````"7);,S>,;3O1`P``T0,```@`
+M````````````````S"X``&UE=&$N>&UL4$L!`A0`%``(``@`"7);,[Q9`1#.
+M&```R1@``!@`````````````````PS(``%1H=6UB;F%I;',O=&AU;6)N86EL
+M+G!N9U!+`0(4`!0`"``(``ER6S,XXM&>7@0``&`<```,````````````````
+M`-=+``!S971T:6YG<RYX;6Q02P$"%``4``@`"``)<ELS@]"#N#D!```Y!```
+M%0````````````````!O4```345402U)3D8O;6%N:69E<W0N>&UL4$L%!@``
+0```)``D`%0(``.M1````````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/postit.txt
+++ openoffice.org-2.4.1/ooo-build/doc/postit.txt
@@ -0,0 +1,268 @@
+Notes on postit use:
+
++++ sc/inc/postit.hxx	2006-07-03 17:40:57.000000000 +0100
++++ sc/inc/document.hxx	2006-07-03 17:27:26.000000000 +0100
++++ sc/inc/dociter.hxx	2006-07-04 09:43:00.000000000 +0100
++++ sc/inc/column.hxx	2006-07-04 09:21:13.000000000 +0100
++++ sc/inc/cell.hxx	2006-07-04 18:22:00.000000000 +0100
+
++++ sc/source/ui/view/printfun.cxx
+    + pDoc->GetCell( ScAddress ) + GetNotePtr on cell ...
+    + ScHorizontalCellIterator ... (also have ScAddress)
+
++++ sc/source/ui/view/output.cxx
+    + All calls: - use CellInfo
+*** AA
+AA	+ document.cxx :: ScTableInfo 'FillInfo' method
+AA	+ update fillinfo copy constructors etc.
+
++++ sc/source/ui/unoobj/docuno.cxx
+    + ScAnnotationsObj uses ScCellIterator ...
+AA	+ add GetNotePtr to that
+
++ other ScCellIterator fixups:
+	+ do we need an ScNoteIterator ? [ easyish ? ]
+    +++ sc/source/ui/unoobj/cellsuno.cxx
+    +++ sc/source/ui/navipi/content.cxx
+    +++ sc/source/ui/docshell/docsh.cxx
+    +++ sc/source/ui/docshell/dbdocfun.cxx
+    +++ sc/source/filter/xml/xmlexprt.cxx
+    +++ sc/source/filter/excel/xetable.cxx
+    +++ sc/source/core/data/dociter.cxx
+
++++ sc/source/core/tool/interpr2.cxx
+    + has ScAddress
+
++++ sc/source/core/data/table6.cxx
+    + col/row etc.
+AA: + need ScTable::GetNote ().
+
++++ sc/source/core/data/column.cxx
++++ sc/source/core/data/column3.cxx
++++ sc/source/core/data/column2.cxx
+    + hard core, but has doc/column [etc.]
+
++++ sc/source/core/data/cell.cxx
+    + should remove all note logic ...
+    + copy constructors ...
+
++ Currently touched only for 'Delete' ptr. [hmm]
+    +++ sc/source/ui/undo/undocell.cxx
+	+ needs native storage for notes [ parallel to cell ]
+	+ [ ScPostIt ** arrays ? ]
+    +++ sc/source/ui/docshell/docfunc.cxx
+	+ have ScAddress etc.
+AA:	    + Was this used for PostIt setting ?
+		+ if so, it won't work now :-)
+		+ Audit PutCell usage ...
+    +++ sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
+	+ ScMyCellInfo - (in .hxx) - unclear ...
+    +++ sc/source/core/tool/chgtrack.cxx
+	+ ScChangeActionContent : ScChangeAction
+	    ScBigRange: row/col/tab all there ...
+    +++ sc/source/core/data/validat.cxx
+	+ IsDataValid - no note necessary
+
+
++ old cell methods:
+	// these may live somewhere else more logically
+	void			SetNote( const ScPostIt& rNote, ScDocument* pDoc );
+	BOOL			GetNote( ScPostIt& rNote, ScDocument* pDoc ) const;
+	const ScPostIt*	GetNotePtr( ScDocument *pDoc) const;
+	void	    	DeleteNote(ScDocument* pDoc);
+
++ implement new methods.
+    + do we need an 'ScNoteCell ?' - hash on address ?
+
+
++ ScDocument::GetNotePtr (...
+    + NULL cell -> NULL
+    + check / set 'special ...'
++ FIXME:
+    + we shouldn't copy 'special' [ we can't use it ... ]
+    + SetNote should cope with set to itself elegantly ;-)
+      + should create & insert an ScNote cell if absent ...
+	+ SetNoteInternal ...
+    + Cell's Delete:
+	+ *should* have ScDocument *
+	    ... pDoc->DeleteNote(pCell) [etc.]
+    + Hmm - compromise ...
+    + URGH !!! - SetNoteInternal
+	+ need to pass the ScNoteTracker - 
+
++ For this semantic:
+    + Column::DeleteNote:
+	+ we need to remove the cell itself ...
+
++ Need DeleteNote ...
+
+	BOOL bEmpty = rNote.IsEmpty();
+
+	SCSIZE nIndex;
+	if (Search(nRow, nIndex))
+	{
+		ScBaseCell* pCell = pItems[nIndex].pCell;
+		if (bEmpty && pCell->GetCellType() == CELLTYPE_NOTE && !pCell->GetBroadcaster())
+			DeleteAtIndex(nIndex);
+		else
+			pCell->SetNote(rNote, pDocument);
+	}
+	else
+	{
+		if (!bEmpty)
+		{
+				fprintf (stderr, "inline me!\n");
+				ScNoteCell *foo = new ScNoteCell(rNote);
+				fprintf (stderr, "don't inline me!\n");
+				Insert(nRow, foo);
+				fprintf (stderr, "don't inline me!\n");
+		}
+	}
+
+ScNoteCell - can disappear ...
+
+++ Move 'LoadNote' to Document ... (?)
+
+void ScBaseCell::LoadNote( SvStream& rStream, ScDocument* pDoc )
+{
+		fprintf (stderr, "LoadNote ran... - FIXME unimplemented ... special = %d\n", bSpecial);
+
+/*	pNote = new ScPostIt(pDoc);
+	rStream >> *pNote;
+*/
+}
+
+TODO:
+    + fix Ekie & Dr's comments ...
+    + Bin all 'ScNoteCell' constructors -
+      that consume ScPostIts ...
+	+ Rename ScNostCell - ScPlaceholderCell
+	    + ScDepTargetCell ... / whatever.
+    + FIXME: do we need all those 'Doc' pointers on
+             construction ? [urk?]
+
+    + Add the pDocument to 'Delete' ...
+      remove from the hash ... or Column->Delete (?)
+
+* Test:
+    + change tracking
+    + Excel import / export
+    + load/save etc.
+    + add assertions to check doc / pool is empty at end
+    + Functions:
+	+ test ScColumn::SwapRow ..
+
+
+* TODO:
+
+    * Catch all remaning cases of failure
+    * Catch all 'CloneCell' calls - that are unhandled ...
+    * All 'DeleteCell's handled except:
+
+Audit classes:
+    + no elegant sharing possible ... - just brute force add
+      the Note information ...
+    + These have no 'Format' work => not used for Notes
+	+ ScUndoEnterValue
+	    + sc/source/ui/view/viewfunc.cxx (ScViewFunc::EnterData)
+		+ build list of Notes (?)
+	+ ScUndoPutCell
+	    + Should ScDocFunc::PutCell take a 'Note' pointer ?
+		+ it does no 'format' stuff so ... (?)
+	    + sc/source/ui/docshell/docfunc.cxx (ScDocFunc::PutCell)
+    + This guy needs hacking ...
+	+ ScUndoEnterData
+	    + sc/source/ui/view/viewfunc.cxx (ScViewFunc::EnterData)
+		+ build list of Notes (?)
+	    + sc/source/ui/docshell/docfunc.cxx (ScDocFunc::SetNormalString)
+		+ likewise.
+
++ FIXME: 
+    + PostIt * pointers not being re-written when cut/pasting across documents
+	+ Does a 'PostIt' really need a 'Doc' pointer anymore ?
+	+ how did that get re-written in the past anyway ?
+	    + urk !? [ noo ... ]
+    + Add debug assertion on 'Insert' ?
+    + *somehow* the PostIt *pDocument isn't getting re-written [urgh!?]
+	+ set this in the 'SetNote' method on Document ?
+
+
+  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                    
+no file:
+24291 michael   15   0  144m  56m  39m S    0  2.8   0:01.86 soffice.bin               # before
+24340 michael   15   0  161m  55m  40m S    0  2.8   0:01.58 soffice.bin               # after
+
+1 million ScCellValues:
+24195 michael   15   0  183m  88m  41m S   14  4.4   0:08.94 soffice.bin                # before
+24082 michael   15   0  186m  82m  42m S    7  4.1   0:07.03 soffice.bin                # after          
+
+
+pDocShell->GetDocument()->GetDrawLayer() != 0 - is true ...
+
+* We can store data in 2 places:
+    + the draw layer for [xyz]?
+    + the pNoteItemPool if not ...
+	+ the note itself has the data to do this,
+	    + lazy/code-re-use to store otherwise.
+
+
+#0  0xb25670a3 in _STL::vector<ImplXMLShapeExportInfo, _STL::allocator<ImplXMLShapeExportInfo> >::size () from ./libxo680li.so
+#1  0xb191eb66 in ScXMLExport::WriteAnnotation (this=0x889c9a0, rMyCell=@0xbf84e000) at /data/OpenOffice/ood680-m1/sc/source/filter/xml/xmlexprt.cxx:2822
+#2  0xb192169d in ScXMLExport::WriteCell (this=0x889c9a0, aCell=@0xbf84e000) at /data/OpenOffice/ood680-m1/sc/source/filter/xml/xmlexprt.cxx:2505
+#3  0xb192a298 in ScXMLExport::_ExportContent (this=0x889c9a0) at /data/OpenOffice/ood680-m1/sc/source/filter/xml/xmlexprt.cxx:1686
+#4  0xb243e546 in SvXMLExport::ImplExportContent () from ./libxo680li.so
+...
+(gdb) p rMyCell
+$1 = (ScMyCell &) @0xbf84e000: {xAnnotation = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x92fc854}, <No data fields>}, 
+  xNoteShape = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x92fca60}, <No data fields>}, aCellAddress = {Sheet = 0, Column = 0, Row = 0}, 
+  aMergeRange = {Sheet = 0, StartColumn = 0, StartRow = 0, EndColumn = 0, EndRow = 0}, aMatrixRange = {Sheet = 0, StartColumn = 0, StartRow = 0, 
+    EndColumn = 0, EndRow = 0}, sStringValue = {pData = 0x9302010}, sAnnotationText = {pData = 0x92fe7d8}, aAreaLink = {sFilter = {pData = 0xb7674ed8}, 
+    sFilterOptions = {pData = 0xb7674ed8}, sURL = {pData = 0xb7674ed8}, sSourceStr = {pData = 0xb7674ed8}, aDestRange = {Sheet = 0, StartColumn = 0, 
+      StartRow = 0, EndColumn = 0, EndRow = 0}, nRefresh = 0}, aShapeList = {<_STL::_List_base<ScMyShape,_STL::allocator<ScMyShape> >> = {
+      _M_node = {<_STL::allocator<_STL::_List_node<ScMyShape> >> = {<No data fields>}, _M_data = 0x8eb7300}}, <No data fields>}, 
+  aDetectiveObjVec = {<_STL::_Vector_base<ScMyDetectiveObj,_STL::allocator<ScMyDetectiveObj> >> = {_M_start = 0x0, _M_finish = 0x0, 
+      _M_end_of_storage = {<_STL::allocator<ScMyDetectiveObj>> = {<No data fields>}, _M_data = 0x0}}, <No data fields>}, 
+  aDetectiveOpVec = {<_STL::_Vector_base<ScMyDetectiveOp,_STL::allocator<ScMyDetectiveOp> >> = {_M_start = 0x0, _M_finish = 0x0, 
+      _M_end_of_storage = {<_STL::allocator<ScMyDetectiveOp>> = {<No data fields>}, _M_data = 0x0}}, <No data fields>}, fValue = -7.2094253395936799e-66, 
+  nValidationIndex = -1, nStyleIndex = -1, nNumberFormat = 0, nType = com::sun::star::table::CellContentType_TEXT, bIsAutoStyle = 0 '\0', 
+  bHasShape = 0 '\0', bIsMergedBase = 0 '\0', bIsCovered = 0 '\0', bHasAreaLink = 0 '\0', bHasEmptyDatabase = 0 '\0', bHasDetectiveObj = 0 '\0', 
+  bHasDetectiveOp = 0 '\0', bIsEditCell = 0 '\0', bKnowWhetherIsEditCell = 0 '\0', bHasStringValue = 1 '\001', bHasDoubleValue = 0 '\0', bHasXText = 0 '\0', 
+  bIsMatrixBase = 0 '\0', bIsMatrixCovered = 0 '\0', bHasAnnotation = 1 '\001'}
+(gdb) p rMyCell.xNoteShape
+$2 = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x92fca60}, <No data fields>}
+
+
+
+** ScMyNoteShapesContainer
+    + only note shapes in here [ !? why not on the Cell !? ]
+
+    + copied from:
+
+void ScMySharedData::AddNoteObj(const uno::Reference<drawing::XShape>& xShape, const ScAddress& rPos)
+{
+    if (!pNoteShapes)
+        pNoteShapes = new ScMyNoteShapesContainer();
+    ScMyNoteShape aNote;
+    aNote.xShape = xShape;
+    aNote.aPos = rPos;
+    pNoteShapes->AddNewNote(aNote);
+}
+
+    + used to collect auto-styles .. xmlexprt.cxx:
+
+                    while (aNoteShapeItr != aNoteShapeEndItr)
+                    {
+                        if (static_cast<sal_Int32>(aNoteShapeItr->aPos.Tab()) == nTable)
+                            GetShapeExport()->collectShapeAutoStyles(aNoteShapeItr->xShape);
+                        ++aNoteShapeItr;
+                    }
+
+
++ AddNoteObj - called by:
+    + CollectShapesAutoStyles
+	[ done already ? ]
+
+    + This is broken ... [!?]
+
++ try pasting a shape too ? :-)
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/bundle-contrib-dicts.sh
+++ openoffice.org-2.4.1/ooo-build/doc/bundle-contrib-dicts.sh
@@ -0,0 +1,158 @@
+NOTE:
+
+NOT TO BE USED ANY MORE. Now we use prebuilt dictionaries, zipped up
+now and then on a SLED machine with all dictionaries installed. See
+ChangeLog and references to writingaids* in ../download.in,
+../bin/unpack and ../patches/src680/win32-prebuilt-writingaids-zip.diff.
+
+
+#!/bin/sh
+
+# Very hacky script to unpack contributed dictionary packs into the
+# build source tree, create dictionary.lst and makefile.mk files for
+# them, and update dictionaries/prj/build.lst. This is for Win32 where
+# we want to bundle selected contributed dictionaries into the base
+# installer, as there is no system myspell or package management
+# system.
+
+# This script is more for documentation than to be used as such,
+# although it did work for me.
+
+# To use, you should download a selection of the *-pack.zip files from
+# http://ftp.stardiv.de/pub/OpenOffice.org/contrib/dictionaries/ or
+# one of its mirrors into the src directory. Then run this script,
+# then build. (If you already have a build and just want an
+# incremental rebuild to add the new dictionaries to the installer,
+# run "build" and "deliver" in dictionaries, then "build" in
+# instsetoo_native.)
+
+# Note that this script is not clever enough to notice that
+# pt_PT-pack.zip contains a dictionary also for pt_BR. Ditto for es_ES
+# and es_MX. Another quirk is no_NO-pack.zip which contains
+# dictionaries for nb_NO and nn_NO, but not no_NO. Handle those
+# manually: Copy pt_PT-pack.zip to pt_BR-pack.zip, and copy
+# es_ES-pack.zip to es_MX-pack.zip before running this script. Also
+# rename no_NO-pack.zip to nb_NO-pack.zip and copy it to
+# nn_NO-pack.zip.
+
+# An even more difficult case is Russian. ru_RU-pack.zip contains
+# ru_RU_ye.zip and ru_RU_yo.zip. ru_RU_ye.zip then inconsistently
+# contains a dictionary for ru_RU_ie (and not ru_RU_ye). You can spell
+# Russian in two "styles" or "variants", "ye" and "yo". But in OOo's
+# dictionary.lst you can have just one DICT for "ru RU" anyway, so you
+# will have to decide which one to have spell checking for and bundle
+# that. If I understand correctly, the "ye" variant is more informal,
+# and the "yo" variant more formal, and is the one usually taught to
+# non-native speakers and in primary school.
+
+. bin/setup
+
+echo "Unpacking contributed dictionaries into the tree"
+for F in $SRCDIR/??*_??-pack.zip; do
+    L=`basename $F .zip`
+    L=${L%-pack}
+    LLANG=${L%_??}
+    LLANGU=`echo $LLANG | tr a-z A-Z`
+    LCOUNTRY=${L#*_}
+    LDIR=$OOBUILDDIR/dictionaries/$L
+    if test ! -d $LDIR; then
+	T=`mktemp -d`
+	unzip $F -d $T
+	mkdir $LDIR
+	cat >$LDIR/makefile.mk <<EOF
+PRJ = ..
+
+PRJNAME	= dictionaries
+TARGET	= dict_$L
+
+#----- Settings ---------------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+.IF "\$(DIC_ALL)\$(DIC_${LLANGU}${LCOUNTRY})"!=""
+
+DIC2BIN= \\
+EOF
+	(
+	cd $T
+
+	if test -s spell.txt -a -f $L.zip; then
+	    unzip $L.zip
+	    if test -f $L.aff -a -f $L.dic; then
+		cp $L.aff $L.dic $LDIR
+		echo DICT ${L%_??} ${L#??_} $L >>$LDIR/dictionary.lst
+		cat >>$LDIR/makefile.mk <<EOF
+	$L.aff \\
+	$L.dic \\
+EOF
+	    fi
+	fi
+
+	if test -s hyph.txt -a -f hyph_$L.zip; then
+	    unzip hyph_$L.zip
+	    if test -f hyph_$L.dic; then
+		cp hyph_$L.dic $LDIR
+		echo HYPH $LLANG $LCOUNTRY hyph_$L >>$LDIR/dictionary.lst
+		cat >>$LDIR/makefile.mk <<EOF
+	hyph_$L.dic \\
+EOF
+	    fi
+	fi
+
+	if test -s thes.txt -a -f thes_$L.zip; then
+	    unzip thes_$L.zip
+	    if test -f th_$L.dat -a -f th_$L.idx; then
+		cp th_$L.dat th_$L.idx $LDIR
+		echo THES $LLANG $LCOUNTRY th_$L >>$LDIR/dictionary.lst
+		cat >>$LDIR/makefile.mk <<EOF
+	th_$L.dat \\
+	th_$L.idx \\
+EOF
+	    fi
+	fi
+
+	for README in README_*.txt; do
+	    if test -s $README; then
+		cat >>$LDIR/makefile.mk <<EOF
+	$README \\
+EOF
+		cp $README $LDIR
+	    fi
+	done
+
+	echo >>$LDIR/makefile.mk
+	)
+
+	rm -rf $T
+
+	cat >>$LDIR/makefile.mk <<EOF
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : \$(PRJ)\$/util\$/target.pmk
+
+EOF
+    fi
+done
+
+# rewrite the prj/build.lst
+cat >$OOBUILDDIR/dictionaries/prj/build.lst <<EOF
+di      dictionaries :       lingucomponent NULL
+di	dictionaries					usr1 - all di_mkout NULL
+di	dictionaries\\diclst	nmake	-	all	di_diclst NULL
+EOF
+LLIST=''
+for D in $OOBUILDDIR/dictionaries/*_??; do
+    L=`basename $D`
+    cat >>$OOBUILDDIR/dictionaries/prj/build.lst <<EOF
+di	dictionaries\\$L	nmake	-	all	di_$L di_diclst NULL
+EOF
+    LLIST="$LLIST di_$L"
+done
+cat >>$OOBUILDDIR/dictionaries/prj/build.lst <<EOF
+di      dictionaries\\util       nmake   -       all     di_util${LLIST} di_diclst NULL
+EOF
--- openoffice.org-2.4.1.orig/ooo-build/doc/getpivotdata.txt
+++ openoffice.org-2.4.1/ooo-build/doc/getpivotdata.txt
@@ -0,0 +1,204 @@
+The following describes the way to add a function
+
+
++++ inc/compiler.hrc	2005-03-30 09:49:01.000000000 +0530
+@@ -386,9 +386,10 @@
+ #define	SC_OPCODE_CELL				385
+ #define	SC_OPCODE_ISPMT				386
+ #define	SC_OPCODE_HYPERLINK			387
+-#define	SC_OPCODE_END_2_PAR			388
++#define SC_OPCODE_GETPIVOTDATA			388
+
+The above code defines a function opcode.
+
+
+diff -u -r ../../src680-m79.bak/sc/inc/opcode.hxx inc/opcode.hxx
+--- ../../src680-m79.bak/sc/inc/opcode.hxx	2005-03-09 10:20:38.000000000 +0530
++++ inc/opcode.hxx	2005-03-30 11:40:11.457289727 +0530
+@@ -414,7 +414,8 @@
+ 	// ab hier sind Extradaten drin
+ 		ocDataToken1		= SC_OPCODE_DATA_TOKEN_1,
+ 	// kein OpCode
+-		ocNone				= SC_OPCODE_NONE
++		ocNone				= SC_OPCODE_NONE,
++		ocGetPivotData			= SC_OPCODE_GETPIVOTDATA
+
+This is the internal way of using a opcode.
+
+diff -u -r ../../src680-m79.bak/sc/inc/scfuncs.hrc inc/scfuncs.hrc
+--- ../../src680-m79.bak/sc/inc/scfuncs.hrc	2005-03-09 10:20:37.000000000 +0530
++++ inc/scfuncs.hrc	2005-03-30 10:18:00.000000000 +0530
+@@ -323,6 +323,7 @@
+ #define HID_FUNC_TABELLE			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+18)
+ #define HID_FUNC_TABELLEN			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+19)
+ #define HID_FUNC_HYPERLINK			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+20)
++#define HID_FUNC_GETPIVOTDATA			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+21)
+
+This defines the function GETPIVOTDATA under ID_FUNCTION_GRP_TABLE which is SpreadSheet tab
+
+
+diff -u -r ../../src680-m79.bak/sc/source/core/inc/interpre.hxx source/core/inc/interpre.hxx
+--- ../../src680-m79.bak/sc/source/core/inc/interpre.hxx	2005-03-09 10:21:07.000000000 +0530
++++ source/core/inc/interpre.hxx	2005-03-30 11:42:39.000000000 +0530
+@@ -684,6 +684,7 @@
+ void ScSTEXY();
+ void ScSlope();
+ void ScTrend();
++void ScGetPivotData();
+
+This will  be function thatz called incase of the opcode ocGetPivotData
+
+diff -u -r ../../src680-m79.bak/sc/source/core/src/compiler.src source/core/src/compiler.src
+--- ../../src680-m79.bak/sc/source/core/src/compiler.src	2005-03-09 10:21:08.000000000 +0530
++++ source/core/src/compiler.src	2005-03-30 11:09:55.000000000 +0530
+@@ -1692,6 +1692,11 @@
+ 		Text [ de ] = "HYPERLINK";
+ 		Text[ en-US ] = "HYPERLINK";
+ 	};
++	String SC_OPCODE_GETPIVOTDATA
++	{
++		Text [ de ] = "";
++		Text [ en-US ] = "GETPIVOTDATA" ;
++	};
+ };
+ Resource RID_SC_FUNCTION_NAMES_ENGLISH
+ {
+@@ -1987,5 +1992,6 @@
+ 	String SC_OPCODE_ROMAN { Text = "ROMAN" ; };
+ 	String SC_OPCODE_ARABIC { Text = "ARABIC" ; };
+ 	String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
++	String SC_OPCODE_GETPIVOTDATA { Text = "GETPIVOTDATA" ; };
+ };
+
+This defines the text in resource file.
+
+
+
+diff -u -r ../../src680-m79.bak/sc/source/core/tool/interpr4.cxx source/core/tool/interpr4.cxx
+--- ../../src680-m79.bak/sc/source/core/tool/interpr4.cxx	2005-03-09 10:21:12.000000000 +0530
++++ source/core/tool/interpr4.cxx	2005-03-30 13:39:53.000000000 +0530
+@@ -3530,6 +3530,7 @@
+                 case ocTTT              : ScTTT();                      break;
+                 case ocSpew             : ScSpewFunc();                 break;
+                 case ocGame             : ScGame();                     break;
++		case ocGetPivotData	: ScGetPivotData();		break;
+                 case ocNone : nFuncFmtType = NUMBERFORMAT_UNDEFINED;    break;
+                 default : SetError(errUnknownOpCode); PushInt(0);       break;
+             }
+
+This is the place where the func is called incase of that opcode.
+
+
+
+diff -u -r ../../src680-m79.bak/sc/source/ui/src/scfuncs.src source/ui/src/scfuncs.src
+--- ../../src680-m79.bak/sc/source/ui/src/scfuncs.src	2005-03-09 10:20:52.000000000 +0530
++++ source/ui/src/scfuncs.src	2005-03-30 11:22:29.000000000 +0530
+@@ -11015,6 +11015,74 @@
+ 			Text [ en-US ] = "The text that represents a Roman numeral.";
+ 		};
+ 	};
++        Resource SC_OPCODE_GETPIVOTDATA
++        {
++                String 1 // Description
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "Gets data from the pivot table.";
++                };
++                ExtraData =
++                {
++                        ID_FUNCTION_GRP_TABLE;
++                        U2S( HID_FUNC_GETPIVOTDATA );
++                        VAR_ARGS+2;      0;	0;	1;
++                };
++                String 2 // Name of Parameter 1
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "Data Field";
++                };
++                String 3 // Description of Parameter 1
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "The name of the field you want to retieve data from";
++                };
++                String 4 // Name of Parameter 2
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "Pivot Table";
++                };
++                String 5 // Description of Parameter 2
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "The reference to a cell in the Pivottable report that contains the data.";
++                };
++//              String 6 // Name of Parameter 3
++//              {
++//                      Text [ de ] = "" ;
++//                      Text [ en-US ] = "field1";
++//              };
++//              String 7 // Description of Parameter 3
++//              {
++//                      Text [ de ] = "" ;
++//                      Text [ en-US ] = "The name of the field that filters the data you want to retrieve";
++//              };
++//              String 8 // Name of Parameter 4
++//              {
++//                      Text [ de ] = "" ;
++//                      Text [ en-US ] = "Item1";
++//              };
++//              String 9 // Description of Parameter 4
++//              {
++//                      Text [ de ] = "" ;
++//                      Text [ en-US ] = "The value in the field that filters the data you want to retrieve.";
++//              };*/
++                String 6 // Name of Parameter 4
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "Field/Item ";
++                };
++                String 7 // Description of Parameter 4
++                {
++                        Text [ de ] = "" ;
++                        Text [ en-US ] = "Field name/value that filters the data you want to retrieve. ";
++                };
++
++
++
++        };
++	
+ };
+
+This is the schema of the func.. stating that 2 fixed and max of 30 variable params.
+Will be refining the code later.. so ignore comments
+
+
+diff -u -r ../../src680-m79.bak/sc/source/core/tool/interpr2.cxx source/core/tool/interpr2.cxx
+--- ../../src680-m79.bak/sc/source/core/tool/interpr2.cxx	2005-03-09 10:21:12.000000000 +0530
++++ source/core/tool/interpr2.cxx	2005-03-30 16:24:58.860089755 +0530
+@@ -2322,3 +2322,45 @@
+         PushMatrix(pResMat);
+     }
+ }
++
++void ScInterpreter::ScGetPivotData()
++{
++    BYTE nParamCount = GetByte();
++    if (  nParamCount>= 2)
++    {
++	ScBaseCell* pCell;
++	ScAddress aCellAddress;
++	String aField; 
++	String aItem[15], aValue[15];
++	int i;
++}
+
+This is the place where im processing the data to get the value..
+
+Im using the filters approach.
+
+Im getting the pivottable at cursor, copy to a new one. Create a new
+ScQueryParam with the params passed and set that to the sheet and
+query the reqd coln. THis is the approach. Looks like im partly
+success...
+
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/package.txt
+++ openoffice.org-2.4.1/ooo-build/doc/package.txt
@@ -0,0 +1,43 @@
+Notes on transitioning to the new packaging infrastructure
+
+* Requirements of old packaging infrastructure:
+
+  + package-ooo
+    + runs setup to install basic files
+  + package-lang
+    + creates lang_ISO_list.txt files
+      + these contain a list of files
+      + also contains a list of directories &
+        parent directories
+
+* Requirements for hackers:
+  + Simple install to a given directory
+
+* Requirements for autobuild/RPM generation
+  + need per-language file / directory lists in RPM format
+  + need an installed image to package
+  + destdir support
+
+* Existing make_installer.pl code
+  + -languagepack parameter ?
+    + do foo ...
+  + runs 'epm'
+    + doesn't build a working tree
+  + epm files contain the data we want
+  + for multiple languages - do we have
+    just the files per package (?)
+
+* Other bits
+  + DESTDIR support
+	+ [ DESTDIR is the removed prefix from the
+	    front of the install prefix to the
+	    run-time root ]
+  + Split out the state into a file (?)
+    + split into several passes ?
+
+
+* External option:
+  + parse / collate the relevant epm files
+    + extract the data we need
+  + do a manual install from the epm files
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/wmicon.txt
+++ openoffice.org-2.4.1/ooo-build/doc/wmicon.txt
@@ -0,0 +1,28 @@
++ Need to re-write code
+    + for themable <Alt-Tab icons>
+
+		+ desktop/source/icons/...
+			syswin.cxx: SystemWindow::SetIcon()
+			+ sfx2/source/view/topfrm.cxx (SfxTopFrame::Create)
+				+ sfx2 depends on framework
+			+ framework/source/services/frame.cxx (implts_setIconOnWindow)
+				+ depends on svtools
+				+ [ gets IconId property & sets icon from it ]
+		+ IconId manglers:
+			+ svx/source/dialog/hdlocntp.cpp /IconId/
+			+ sfx2/source/bastyp/fltfnc.cxx /IconId/
+			+ basctl/source/basicide/basidectrllr.cxx /IconId/
+				+ set property to ICON_MACRO_LIBRARY
+		+ How does this tie up with 'Document Title' code (?)
+		+ Existing icon factory work ...
+			+ svtools/inc/imagemgr.hxx
+				+ svtools/source/misc/imagemgr.cxx
+			+ App IDs are enumerated in:
+				+ vcl/inc/syswin.hxx
+			+ Is there a good type to pass around / set
+			  this with (!?)
+				vector<BitmapEx> ?
+
+    + Is there any way to pass a Bitmap through UNO ?
+
+    + 
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/OOoStartup.sxw.uu
+++ openoffice.org-2.4.1/ooo-build/doc/OOoStartup.sxw.uu
@@ -0,0 +1,1024 @@
+begin 644 doc/OOoStartup.sxw
+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
+MP`21E(NZ0!_OQ_`%'<JGO:PJ3EA.)>E;)DRHS7?#=#`7"YVOBP4Z&]/E`+)C
+M8OT5257#<QS'L'ZC2X&M]GHK-F[89+QZ`0[CTX.]K=@X57CTZ@7,86R^DDZ/
+MXQB-J95)EF7P^?8*1ZE:['J9&BZ^[GJ[ZOH@SG6]:JRB!%C#EKPU)%$"FQ5]
+M>V+*WS4V^"I#/=2W&EG#'MSQR!DK?]96_*:7T@?II=2U0!3O_)NO9"N04GKT
+M[M^CFK7O)G<P*FZ8^L.)EQ/<$'=.V=Y)+X%9A&Q8+@D%ES&YFJ=R&YYU9J#<
+MP^UI*G\`4$L'")Y/3$4D`0``C0,``%!+`P04``````"E>E0S2EC'W/,#``#S
+M`P``"````&UE=&$N>&UL/#]X;6P@=F5R<VEO;CTB,2XP(B!E;F-O9&EN9STB
+M551&+3@B/SX*/&]F9FEC93ID;V-U;65N="UM971A('AM;&YS.F]F9FEC93TB
+M:'1T<#HO+V]P96YO9F9I8V4N;W)G+S(P,#`O;V9F:6-E(B!X;6QN<SIX;&EN
+M:STB:'1T<#HO+W=W=RYW,RYO<F<O,3DY.2]X;&EN:R(@>&UL;G,Z9&,](FAT
+M='`Z+R]P=7)L+F]R9R]D8R]E;&5M96YT<R\Q+C$O(B!X;6QN<SIM971A/2)H
+M='1P.B\O;W!E;F]F9FEC92YO<F<O,C`P,"]M971A(B!X;6QN<SIO;V\](FAT
+M='`Z+R]O<&5N;V9F:6-E+F]R9R\R,#`T+V]F9FEC92(@;V9F:6-E.G9E<G-I
+M;VX](C$N,"(^/&]F9FEC93IM971A/CQM971A.F=E;F5R871O<CY/<&5N3V9F
+M:6-E+F]R9R\R+C`D3&EN=7@@3W!E;D]F9FEC92YO<F=?<')O:F5C="\V.#`D
+M0G5I;&0M.#@R-3PO;65T83IG96YE<F%T;W(^/&UE=&$Z:6YI=&EA;"UC<F5A
+M=&]R/DUI8VAA96P@365E:W,\+VUE=&$Z:6YI=&EA;"UC<F5A=&]R/CQM971A
+M.F-R96%T:6]N+61A=&4^,C`P-2TP-RTR-50Q,CHS,3HT-3PO;65T83IC<F5A
+M=&EO;BUD871E/CQD8SIC<F5A=&]R/DUI8VAA96P@365E:W,\+V1C.F-R96%T
+M;W(^/&1C.F1A=&4^,C`P-2TQ,"TR,%0Q-CHQ.#HP.3PO9&,Z9&%T93X\9&,Z
+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
+MJ2`&C:9_<L502!YCWT)&>-LJ*3BZ5;.C+JCM-'6A]+N1"(:<)Y6=4G'+L<H(
+M(\Q+1B>I:'0I#YUY/#F>MGHZQ":O#1^';J7`SH#]GZ7LI>:F'^<KWC<=QH*+
+M"EX9@?"`S)5G'.P*AF[RS_IYY5KL%=@+L..XS?X;"'>KLU.AW3WJMOG\L;E>
+M7?UJ\ZM\O9RFR_F:VF,=*-IKH4[X4"9.`1<K^=OS)BIN\(50GPJ2L`J2T`J2
+MRQ7\*Q\0W0?&JV2NQ`NI/AVG81VGH1VG@1VG;^(X]>IX%M;Q++3CV5N\2F=^
+M:U4#<F]?YUW5U7O-I;(,ARYM]<$WW.\?RK/G:,'.D-^=VQ]02P<(:LH?<[(!
+M``#&"P``4$L!`A0`%```````I7I4,^&E,3D>````'@````@`````````````
+M`````````&UI;65T>7!E4$L!`A0`%```````I7I4,P```````````````!``
+M````````````````1````$-O;F9I9W5R871I;VYS,B]02P$"%``4``````"E
+M>E0S````````````````"0````````````````!R````4&EC='5R97,O4$L!
+M`A0`%``(``@`I7I4,ZZ3[.=T````KP````P`````````````````F0```&QA
+M>6]U="UC86-H95!+`0(4`!0`"``(`*5Z5#.KQC)#)BH``!;2```+````````
+M`````````$<!``!C;VYT96YT+GAM;%!+`0(4`!0`"``(`*5Z5#/&P5-QV10`
+M`*)4`0`*`````````````````*8K``!S='EL97,N>&UL4$L!`A0`%``(``@`
+MI7I4,_[N&7!Q`@``=PP``#8`````````````````MT```$]B:F5C="`Q+U!I
+M8W1U<F5S+S(P,#`P,#4U,#`P,#`X0S8P,#`P,#A$-D1%0C$S0C5%+G-V;5!+
+M`0(4`!0`"``(`*5Z5#/0\]JTQ@<``+<K```4`````````````````(Q#``!/
+M8FIE8W0@,2]C;VYT96YT+GAM;%!+`0(4`!0`"``(`*5Z5#.>3TQ%)`$``(T#
+M```3`````````````````)1+``!/8FIE8W0@,2]S='EL97,N>&UL4$L!`A0`
+M%```````I7I4,P```````````````!(`````````````````^4P``$]B:F5C
+M="`R+U!I8W1U<F5S+U!+`0(4`!0`"``(`*5Z5#/Q+7#T>`0``.,;```4````
+M`````````````"E-``!/8FIE8W0@,B]C;VYT96YT+GAM;%!+`0(4`!0`"``(
+M`*5Z5#.]8^FN+`4``&T6```3`````````````````.-1``!/8FIE8W0@,B]S
+M='EL97,N>&UL4$L!`A0`%``(``@`I7I4,TLEY^">`P``^`\``!4`````````
+M````````4%<``$]B:F5C="`R+W-E='1I;F=S+GAM;%!+`0(4`!0``````*5Z
+M5#,````````````````2`````````````````#%;``!/8FIE8W0@,R]0:6-T
+M=7)E<R]02P$"%``4``@`"`"E>E0S/BZGJA$$``#>%```%```````````````
+M``!A6P``3V)J96-T(#,O8V]N=&5N="YX;6Q02P$"%``4``@`"`"E>E0SO6/I
+MKBP%``!M%@``$P````````````````"T7P``3V)J96-T(#,O<W1Y;&5S+GAM
+M;%!+`0(4`!0`"``(`*5Z5#.72M-'GP,``/@/```5`````````````````"%E
+M``!/8FIE8W0@,R]S971T:6YG<RYX;6Q02P$"%``4``````"E>E0S````````
+M````````$@`````````````````#:0``3V)J96-T(#0O4&EC='5R97,O4$L!
+M`A0`%``(``@`I7I4,^\!U:^=!@``LR0``!0`````````````````,VD``$]B
+M:F5C="`T+V-O;G1E;G0N>&UL4$L!`A0`%``(``@`I7I4,YY/3$4D`0``C0,`
+M`!,`````````````````$G```$]B:F5C="`T+W-T>6QE<RYX;6Q02P$"%``4
+M``````"E>E0S2EC'W/,#``#S`P``"`````````````````!W<0``;65T82YX
+M;6Q02P$"%``4``@`"`"E>E0SN*:R7C0Q``!.,0``&`````````````````"0
+M=0``5&AU;6)N86EL<R]T:'5M8FYA:6PN<&YG4$L!`A0`%``(``@`I7I4,P6@
+MZ8L?!```LAD```P`````````````````"J<``'-E='1I;F=S+GAM;%!+`0(4
+M`!0`"``(`*5Z5#-JRA]SL@$``,8+```5`````````````````&.K``!-151!
+G+4E.1B]M86YI9F5S="YX;6Q02P4&`````!@`&``%!@``6*T`````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/strhash.txt
+++ openoffice.org-2.4.1/ooo-build/doc/strhash.txt
@@ -0,0 +1,568 @@
+* Research:
+    + s/aquire/acquire/ :-)
+
+    + Need:
+	+ total number of string calls (from KCacheGrind (or a plain dump?))
+	+ string ops on XML file load ?
+	+ performance regression tests ... [!]
+	    + [ need a big list of strings ]
+	    + with small pool, with stuffed pool.
+
+Check Kai's numbers:
+	http://wiki.services.openoffice.org/wiki/Uno/Binary/Analysis/String_Performance
+
+Q1. - do we have to 'intern' everything ?
+    + Ans: no - Java doesn't prolly for good reason.
+
+Q2. - 'reliability' - and a local cache ?
+    + Ans: not need to be reliable.
+
+Q3. - 'lifecycle' - hold a ref ?
+	+ annotating an 'interned' string - ref. count fair game ?
+    + <mmeeks> 2 bits: 1 is a 'static' flag (also a guard against huge /wrap-around ref-counts)
+      <mmeeks> and bit 2 is the "is-interned" flag
+      <mmeeks> ;-)
+      * mmeeks really goes.
+      <kr_> you mean least significant, don't you?
+      <kr_> sounds fine for me !
+
+Q4. - is OUString only acceptable ?
+
+Q5. - ignore 'long' strings > 1024 chars ?
+
+* Need 1 more atomic operation:
+    + 'setBit'  (or atomic Xor I guess)
+
+1st concept:
+
+Current design thoughts:
+    + explicit "intern" calls, in hot string spots (?)
+	+ "intern" only works for 'small' < page strings.
+    + comparison operator optimised for ptr == first.
+	+ becomes a more common case.
+
+    + problem:
+	+ "how can you tell an 'interned' string"
+	    + bit-mask on the length ?
+	    + bit-mask on the 'refCount' ?
+	    + "static" bit on the 'refCount' ?
+	    + store a byte 'cookie' / 'canary' at
+	      the end ?
+	    + cookie.
+	+ OR:
+	    + a garbage type impl.
+	    	+ small hash ~1 page of entries in
+		  'thread private storage'
+		+ holds a ref on the strings
+	    + when this gets full [ size > N bytes ]
+		+ scan for 'ref == 1'
+	    + 'old' strings - moved to 'old' list (?)
+	    + occasionally scan whole list
+	      for 'ref == 1' strings
+
+* What about a 'static-intern' (?) :-)
+    + never ref count it ...
+
+
+* Performance points:
+    + charset conversion is -normally- done
+      in constructors
+	+ we can subvert these ?
+
+static OUString createIntern( sal_Unicode *, sal_Int32 nLength );
+static OUString createIntern( sal_Char *, sal_Int32 nLength, rtl_TextEncoding );
+static OUString createFromAsciiIntern( sal_Char *, sal_Int32 nLength, rtl_TextEncoding );
+	+ makes sense ...
+
+
+ustring.c:
+void SAL_CALL rtl_string2UString( rtl_uString** ppThis,
+                                  const sal_Char* pStr,
+                                  sal_Int32 nLen,
+                                  rtl_TextEncoding eTextEncoding,
+                                  sal_uInt32 nCvtFlags )
+
+	+ We -could- adapt this to pass an alloca'd "scratch" buffer,
+	  and have a more complex calling behavior (and/or duplicate
+	  the special cases for _ASCII & _UTF8) & fall-back to a
+	  dup/free for others ?
+
+
+* InterlockedXor (!?)
+* InterlockedAnd (!?)
+    + do we need interlock on the 'And' ?
+	+ can set coming out of the pool lock ?
+
+http://www.gamasutra.com/features/20060630/paquet_01.shtml
+
+* Need a WRITE_BARRIER between lock & a compare ...
+
+
+* consistency: important,
+    + how to update a per-thread cache ?
+	+ hold a ref inside the cache ?
+	+ if the bit is set ... when we get down to 1 ref ... (?)
+	    + transfer it to the main cache & set the bit -only- when out of the per-thead cache ...
+
+
+TODO:
+    hack in the 'sal' CWS ...
+
+* Get a list of all strings allocated / freed at OO.o startup
+* Get another list: all strings loading a writer document (?)
+
+* Looking at 'all' strings ...
+    + there are a lot [!]
+    + 
+
+
+Static strings:
+
+<kr_> how do I past something here?
+<kr_> search for lines with RTL_CONST gave:
+<kr_>  String literals found: 20121
+<kr_>  Chars in these literals: 321687
+<kr_> search for lines with "createFrom" gave:
+<kr_>  String literals found: 9676
+<kr_>  Chars in these literals: 187719
+<kr_> if every strings gets instantiated once, than we have 1018812 ==
+1m to save, not counting duplicates ...
+
+
+gcc - use pre-processor to create in-line static strings,
+    + use crack-tastic gcc extensions to do it ...
+
+Charset stuff:
+ -fexec-charset 
+
+http://developer.mozilla.org/en/docs/XPCOM_string_guide
+
+The STRING versions of these macros provide a portable way of
+declaring UTF-16 versions of the given literal string, avoiding
+runtime conversion on platforms which support literal UTF-16 strings
+(e.g., MSVC++ and GCC with the -fshort-wchar option).
+
++ check boost ... (for string literals etc.)
+
+
+typedef struct {
+    int ref;
+    int len;
+    const wchar_t buffer[4];
+} Str;
+
+giveStr(&((const Str) { 12, 3, L"Foo" }));//{ 'f', 'o', 'o' } }));
+
+gcc -O2 -S -std=c99 -Wall -fshort-wchar -fwide-exec-charset=UTF-16 ~/a.c
+
+#define DECL_STR(a) \
+    ((Str *)(&((const struct { int r; int l; const wchar_t b[strlen(a) + 1]; } ) { (1<<30)+1, strlen(a), L##a })))
+
+-fshort-wchar is sufficient ...
+In fact -fwide-exec-charset=UTF16 - breaks stuff ...
+
+TODO:
+    + remove interned strings on destruction
+      from the pool ...
+    + add primes for hash sizes ...
+    + add debug to show pool size / re-size.
+    + beef up the regression tests & make it
+      resize the pool more frequently.
+
+    + next - beef up offapi/xmlkywd.hxx:
+	+ lame-ass code ...
+	+ better to export rtl_uStrings I think.
+
+
+* FIXME:
+    + remove generic foo ...
+
+Reply to Stefan:
+    + source/rtl/locale.c: rtl_hashtable_ ...
+	+ custom hash table etc.
+    + plays havoc with 'unloading' of libaries
+	+ 'const' strings - can potentially be -very- long lived.
+	+ some modules: heavy string users / use for comparison ?
+
+    + file bug: interlck.h:
+	@return The result of the operation is zero, the value of the count variable.
+    + should be the 'new value of the count' ...
+
+    + Nasty:
+	+ freeing rtl_str_hash_intern (in error)
+
+
+    + add an OUStringBuffer: 'intern'
+	+ 'intern' target sites:
+	    + 
+
+
+Strings to catch: (HIT_STR)
+    NoName    
+    calc_pdf_Export
+"<tab><</PageSize [279 540] /ImagingBBox null>> setpagedevice"
+    Impress 8
+    OnPrint
+    com.sun.star.office.comp.SplashScreen
+    LabelType
+    $1
+    Bold
+
+    draw8_template
+    .uno:ExtendedHelp
+
+
+
+* Archetypes:
+--------------------------------------------------------------------------------
+HIT_STR=.uno:ExtendedHelp
+--------------------------------------------------------------------------------
+
+* 1st: UI code:
+
+#11 0xa1b22479 in framework::MenuConfiguration::CreateMenuBarConfigurationFromXML () from ./libfwe680li.so
+-> menudocumenthandler.cxx:
+    ExtractMenuParameters: '.intern' on rCommandURL ...
+
+* 3rd: UI code:
+#13 0xa1b2cdc3 in framework::ToolBoxConfiguration::LoadToolBox () from ./libfwe680li.so
+-> toolboxdocumenthandler.cxx
+    ExtractToolbarParameters.cxx '.intern()' on rCommandURL
+
+* 2nd : configmgr
+    + intern -all- configmgr keys ? :-) (?)
+
+* 3 incidences:
+
+#10 0xa178436a in framework::URLTransformer::parseStrict () at /opt/OpenOffice/OOE680_m6/solver/680/unxlngi6.pro/inc/com/sun/star/uno/Reference.h:293
+
+	aURL.Complete	= aParser.GetMainURL( INetURLObject::NO_DECODE           );
++                aURL.Complete   = aURL.Complete.intern();
+
+	aParser.SetMark	( OUString() );
+
+
+[ real component use ]:
+--------------------------------------------------------------------------------
+HIT_STR=com.sun.star.ucb.SimpleFileAccess
+--------------------------------------------------------------------------------
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb7d7aa77 in rtl::OUString::createFromAscii () from ./libvcl680li.so
+#3  0xb7dcc44e in ImplImageTree::implInit () from ./libvcl680li.so
+#4  0xb7dcca04 in ImplImageTree::loadImage () from ./libvcl680li.so
+#5  0xb7d9f4a1 in BitmapEx::BitmapEx () from ./libvcl680li.so
+#6  0xb662410a in GtkSalFrame::SetIcon () from ./libvclplug_gtk680li.so
+#7  0xb661ff2b in GtkSalFrame::InitCommon () from ./libvclplug_gtk680li.so
+#8  0xb6620363 in GtkSalFrame::Init () from ./libvclplug_gtk680li.so
+#9  0xb66232af in GtkSalFrame::GtkSalFrame () from ./libvclplug_gtk680li.so
+#10 0xb6604a82 in GtkInstance::CreateFrame () from ./libvclplug_gtk680li.so
+#11 0xb7ee8e39 in Window::ImplInit () from ./libvcl680li.so
+#12 0xb7e84c2a in ImplBorderWindow::ImplInit () from ./libvcl680li.so
+#13 0xb7e84d46 in ImplBorderWindow::ImplBorderWindow () from ./libvcl680li.so
+#14 0xb7ef5eb2 in WorkWindow::ImplInit () from ./libvcl680li.so
+#15 0xb7e9f2fa in IntroWindow::IntroWindow () from ./libvcl680li.so
+#16 0xa2b9943c in desktop::SplashScreen::SplashScreen () from ./libspl680li.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb759b709 in rtl_uString_newFromStr_WithLength () from ./libuno_sal.so.3
+#3  0xa4a34025 in rtl::OUString::copy () from ./libreg.so.3
+#4  0xa4a2fbf1 in ORegistry::openKeyWithoutLink () from ./libreg.so.3
+#5  0xa4a3188d in ORegistry::openKey () from ./libreg.so.3
+#6  0xa4a3841f in ORegKey::openKey () from ./libreg.so.3
+#7  0xa4a36186 in openKey () from ./libreg.so.3
+#8  0xa49ecac9 in RegistryKey::openKey () from /opt/HHInstall/program/simplereg.uno.so
+#9  0xa49eaae1 in stoc_simreg::RegistryKeyImpl::openKey () from /opt/HHInstall/program/simplereg.uno.so
+#10 0xa49f9f06 in stoc_smgr::retrieveAsciiValueList () from /opt/HHInstall/program/servicemgr.uno.so
+#11 0xa49fa06a in stoc_smgr::ORegistryServiceManager::getFromServiceName () from /opt/HHInstall/program/servicemgr.uno.so
+#12 0xa49fcbcd in stoc_smgr::ORegistryServiceManager::loadWithServiceName () from /opt/HHInstall/program/servicemgr.uno.so
+#13 0xa49fd46e in stoc_smgr::ORegistryServiceManager::queryServiceFactories () from /opt/HHInstall/program/servicemgr.uno.so
+#14 0xa49fcf53 in stoc_smgr::OServiceManager::createInstanceWithContext () from /opt/HHInstall/program/servicemgr.uno.so
+#15 0xa49fbb73 in stoc_smgr::OServiceManager::createInstance () from /opt/HHInstall/program/servicemgr.uno.so
+#16 0xb7dcc459 in ImplImageTree::implInit () from ./libvcl680li.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb7598d1c in checkString () from ./libuno_sal.so.3
+#2  0xb759970e in rtl_impl_convertUStringToString () from ./libuno_sal.so.3
+#3  0xb7599777 in rtl_uString2String () from ./libuno_sal.so.3
+#4  0xa4a15bb8 in rtl::OString::OString () from ./libstore.so.3
+#5  0xa4a1c8b7 in store::OStoreDirectory::create () from ./libstore.so.3
+#6  0xa4a225f2 in store_openDirectory () from ./libstore.so.3
+#7  0xa4a337f0 in store::OStoreDirectory::create () from ./libreg.so.3
+#8  0xa4a2fc89 in ORegistry::openKeyWithoutLink () from ./libreg.so.3
+#9  0xa4a3188d in ORegistry::openKey () from ./libreg.so.3
+#10 0xa4a3841f in ORegKey::openKey () from ./libreg.so.3
+#11 0xa4a36186 in openKey () from ./libreg.so.3
+#12 0xa49ecac9 in RegistryKey::openKey () from /opt/HHInstall/program/simplereg.uno.so
+#13 0xa49eaae1 in stoc_simreg::RegistryKeyImpl::openKey () from /opt/HHInstall/program/simplereg.uno.so
+#14 0xa49f9f06 in stoc_smgr::retrieveAsciiValueList () from /opt/HHInstall/program/servicemgr.uno.so
+#15 0xa49fa06a in stoc_smgr::ORegistryServiceManager::getFromServiceName () from /opt/HHInstall/program/servicemgr.uno.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb759b868 in rtl_uString_newFromStr () from ./libuno_sal.so.3
+#3  0xa4a346fc in rtl::OUString::OUString () from ./libreg.so.3
+#4  0xa4a3a72a in ORegKey::getKeyNames () from ./libreg.so.3
+#5  0xa4a362d1 in getKeyNames () from ./libreg.so.3
+#6  0xa49ec7a0 in RegistryKey::getKeyNames () from /opt/HHInstall/program/simplereg.uno.so
+#7  0xa49e722a in stoc_simreg::RegistryKeyImpl::getKeyNames () from /opt/HHInstall/program/simplereg.uno.so
+#8  0xb7612943 in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#9  0xa49fc808 in stoc_smgr::OServiceManager::insert () from /opt/HHInstall/program/servicemgr.uno.so
+#10 0xa49fcac1 in stoc_smgr::ORegistryServiceManager::loadWithImplementationName () from /opt/HHInstall/program/servicemgr.uno.so
+#11 0xa49fcbf0 in stoc_smgr::ORegistryServiceManager::loadWithServiceName () from /opt/HHInstall/program/servicemgr.uno.so
+#12 0xa49fd46e in stoc_smgr::ORegistryServiceManager::queryServiceFactories () from /opt/HHInstall/program/servicemgr.uno.so
+#13 0xa49fcf53 in stoc_smgr::OServiceManager::createInstanceWithContext () from /opt/HHInstall/program/servicemgr.uno.so
+#14 0xa49fbb73 in stoc_smgr::OServiceManager::createInstance () from /opt/HHInstall/program/servicemgr.uno.so
+#15 0xb7dcc459 in ImplImageTree::implInit () from ./libvcl680li.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb759b709 in rtl_uString_newFromStr_WithLength () from ./libuno_sal.so.3
+#3  0xb7602a01 in cppu::createRegistryServiceFactory () from ./libuno_cppuhelpergcc3.so.3
+#4  0xb7612965 in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#5  0xa49fc808 in stoc_smgr::OServiceManager::insert () from /opt/HHInstall/program/servicemgr.uno.so
+#6  0xa49fcac1 in stoc_smgr::ORegistryServiceManager::loadWithImplementationName () from /opt/HHInstall/program/servicemgr.uno.so
+#7  0xa49fcbf0 in stoc_smgr::ORegistryServiceManager::loadWithServiceName () from /opt/HHInstall/program/servicemgr.uno.so
+#8  0xa49fd46e in stoc_smgr::ORegistryServiceManager::queryServiceFactories () from /opt/HHInstall/program/servicemgr.uno.so
+#9  0xa49fcf53 in stoc_smgr::OServiceManager::createInstanceWithContext () from /opt/HHInstall/program/servicemgr.uno.so
+#10 0xa49fbb73 in stoc_smgr::OServiceManager::createInstance () from /opt/HHInstall/program/servicemgr.uno.so
+#11 0xb7dcc459 in ImplImageTree::implInit () from ./libvcl680li.so
+#12 0xb7dcca04 in ImplImageTree::loadImage () from ./libvcl680li.so
+#13 0xb7d9f4a1 in BitmapEx::BitmapEx () from ./libvcl680li.so
+#14 0xb662410a in GtkSalFrame::SetIcon () from ./libvclplug_gtk680li.so
+#15 0xb661ff2b in GtkSalFrame::InitCommon () from ./libvclplug_gtk680li.so
+#16 0xb6620363 in GtkSalFrame::Init () from ./libvclplug_gtk680li.so
+#17 0xb66232af in GtkSalFrame::GtkSalFrame () from ./libvclplug_gtk680li.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xa2ad3a91 in rtl::OUString::createFromAscii () from ./libfileacc.so
+#3  0xa2ace92a in io_FileAccess::FileAccess_getSupportedServiceNames () from ./libfileacc.so
+#4  0xa2ad02ad in component_getFactory () from ./libfileacc.so
+#5  0xb761a332 in cppu::loadSharedLibComponentFactory () from ./libuno_cppuhelpergcc3.so.3
+#6  0xb5da2080 in stoc_loader::DllComponentLoader::activate () from /opt/HHInstall/program/shlibloader.uno.so
+#7  0xb76119bd in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#8  0xb7611e8a in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#9  0xb761123d in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#10 0xb7611311 in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#11 0xa49fcf9c in stoc_smgr::OServiceManager::createInstanceWithContext () from /opt/HHInstall/program/servicemgr.uno.so
+#12 0xa49fbb73 in stoc_smgr::OServiceManager::createInstance () from /opt/HHInstall/program/servicemgr.uno.so
+#13 0xb7dcc459 in ImplImageTree::implInit () from ./libvcl680li.so
+#14 0xb7dcca04 in ImplImageTree::loadImage () from ./libvcl680li.so
+#15 0xb7d9f4a1 in BitmapEx::BitmapEx () from ./libvcl680li.so
+#16 0xb662410a in GtkSalFrame::SetIcon () from ./libvclplug_gtk680li.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb7d7aa77 in rtl::OUString::createFromAscii () from ./libvcl680li.so
+#3  0xb7dcc44e in ImplImageTree::implInit () from ./libvcl680li.so
+#4  0xb7dcca04 in ImplImageTree::loadImage () from ./libvcl680li.so
+#5  0xb7d9f4a1 in BitmapEx::BitmapEx () from ./libvcl680li.so
+#6  0xb662410a in GtkSalFrame::SetIcon () from ./libvclplug_gtk680li.so
+#7  0xb661ff2b in GtkSalFrame::InitCommon () from ./libvclplug_gtk680li.so
+#8  0xb6620363 in GtkSalFrame::Init () from ./libvclplug_gtk680li.so
+#9  0xb66232af in GtkSalFrame::GtkSalFrame () from ./libvclplug_gtk680li.so
+#10 0xb6604a82 in GtkInstance::CreateFrame () from ./libvclplug_gtk680li.so
+#11 0xb7ee8e39 in Window::ImplInit () from ./libvcl680li.so
+#12 0xb7e84c2a in ImplBorderWindow::ImplInit () from ./libvcl680li.so
+#13 0xb7e84d46 in ImplBorderWindow::ImplBorderWindow () from ./libvcl680li.so
+#14 0xb7ef5eb2 in WorkWindow::ImplInit () from ./libvcl680li.so
+#15 0xb7e9f2fa in IntroWindow::IntroWindow () from ./libvcl680li.so
+#16 0xa2b9943c in desktop::SplashScreen::SplashScreen () from ./libspl680li.so
+
+#0  0xb6f95c06 in fscanf () from /lib/libc.so.6
+#1  0xb759aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb7d7aa77 in rtl::OUString::createFromAscii () from ./libvcl680li.so
+#3  0xb7dcc44e in ImplImageTree::implInit () from ./libvcl680li.so
+#4  0xb7dcca04 in ImplImageTree::loadImage () from ./libvcl680li.so
+#5  0xb7d9f4a1 in BitmapEx::BitmapEx () from ./libvcl680li.so
+#6  0xb662410a in GtkSalFrame::SetIcon () from ./libvclplug_gtk680li.so
+#7  0xb661ff2b in GtkSalFrame::InitCommon () from ./libvclplug_gtk680li.so
+#8  0xb6620363 in GtkSalFrame::Init () from ./libvclplug_gtk680li.so
+#9  0xb66232af in GtkSalFrame::GtkSalFrame () from ./libvclplug_gtk680li.so
+#10 0xb6604a82 in GtkInstance::CreateFrame () from ./libvclplug_gtk680li.so
+#11 0xb7ee8e39 in Window::ImplInit () from ./libvcl680li.so
+#12 0xb7e8eb0a in Dialog::ImplInit () from ./libvcl680li.so
+#13 0xb7e8f708 in ModalDialog::ModalDialog () from ./libvcl680li.so
+#14 0xb7a68259 in WizardDialog::WizardDialog () from ./libsvt680li.so
+#15 0xb7a49162 in svt::OWizardMachine::OWizardMachine () from ./libsvt680li.so
+#16 0xb7a46660 in svt::RoadmapWizard::RoadmapWizard () from ./libsvt680li.so
+#17 0xa2ba4029 in desktop::FirstStartWizard::FirstStartWizard () from ./libspl680li.so
+#18 0xa2b9aebb in desktop::FirstStart::execute () from ./libspl680li.so
+#19 0x0806d3a0 in desktop::Desktop::Main ()
+
+
+--------------------------------------------------------------------------------
+HIT_STR=draw8_template
+--------------------------------------------------------------------------------
+
+5x - every time - coming from the configmgr: ...
+    + just a -lot- of duplicates in the XML ;-) [neat]
+
+(gdb) bt
+#0  0xb6edac06 in fscanf () from /lib/libc.so.6
+#1  0xb74dfa20 in checkString () from ./libuno_sal.so.3
+#2  0xb74e0450 in rtl_string2UString () from ./libuno_sal.so.3
+#3  0xa3c885f4 in configmgr::backend::BinaryReader_Impl::readUTF () from ./configmgr2.uno.so
+#4  0xa3c890b1 in configmgr::backend::BinaryReader::read () from ./configmgr2.uno.so
+#5  0xa3c8d513 in configmgr::backend::readAsAny<rtl::OUString> () from ./configmgr2.uno.so
+#6  0xa3c8bcaa in configmgr::backend::BinaryReadHandler::readValue () from ./configmgr2.uno.so
+#7  0xa3c8c9ea in configmgr::backend::BinaryReadHandler::readChildren () from ./configmgr2.uno.so
+#8  0xa3c8c799 in configmgr::backend::BinaryReadHandler::readChildren () from ./configmgr2.uno.so
+#9  0xa3c8c8cd in configmgr::backend::BinaryReadHandler::readChildren () from ./configmgr2.uno.so
+#10 0xa3c8c799 in configmgr::backend::BinaryReadHandler::readChildren () from ./configmgr2.uno.so
+#11 0xa3c8cda7 in configmgr::backend::BinaryReadHandler::readToplevelTree () from ./configmgr2.uno.so
+#12 0xa3c8cecb in configmgr::backend::BinaryReadHandler::readComponentTree () from ./configmgr2.uno.so
+#13 0xa3c8dbe0 in configmgr::backend::BinaryCache::readComponentData () from ./configmgr2.uno.so
+#14 0xa3c7f384 in configmgr::backend::BackendAccess::readDefaultData () from ./configmgr2.uno.so
+#15 0xa3c7f7cb in configmgr::backend::BackendAccess::getNodeData () from ./configmgr2.uno.so
+#16 0xa3c4ad97 in configmgr::backend::CacheController::loadDirectly () from ./configmgr2.uno.so
+#17 0xa3c4afa7 in configmgr::backend::CacheController::loadComponent () from ./configmgr2.uno.so
+
+
+** We need to implement internConvert - & intern all utf8 strings ... [IMHO]
+
+--------------------------------------------------------------------------------
+HIT_STR=org.openoffice.Office.Substitution
+--------------------------------------------------------------------------------
+
+#0  0xb6f05c06 in fscanf () from /lib/libc.so.6
+#1  0xb750aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb750b709 in rtl_uString_newFromStr_WithLength () from ./libuno_sal.so.3
+#3  0xa3c8f8e9 in rtl::OUString::OUString () from ./configmgr2.uno.so
+#4  0xa3ce964e in configmgr::configuration::(anonymous namespace)::implParsePath () from ./configmgr2.uno.so
+#5  0xa3ce97ed in configmgr::configuration::AbsolutePath::parse () from ./configmgr2.uno.so
+#6  0xa3d15a1e in configmgr::OProviderImpl::buildUpdateAccess () from ./configmgr2.uno.so
+#7  0xa3d19241 in configmgr::OConfigurationProviderImpl::createUpdateAccess () from ./configmgr2.uno.so
+#8  0xa3d18175 in configmgr::OConfigurationProvider::createInstanceWithArguments () from ./configmgr2.uno.so
+#9  0xb77e84ea in utl::ConfigManager::AcquireTree () from ./libutl680li.so
+#10 0xb77e8dd2 in utl::ConfigManager::AddConfigItem () from ./libutl680li.so
+#11 0xb77e4e47 in utl::ConfigItem::ConfigItem () from ./libutl680li.so
+#12 0xa2a8da72 in framework::SubstitutePathVariables_Impl::SubstitutePathVariables_Impl () from ./libfwl680li.so
+#13 0xa2a90561 in framework::SubstitutePathVariables::SubstitutePathVariables () from ./libfwl680li.so
+#14 0xa2a908c1 in framework::SubstitutePathVariables::impl_createInstance () from ./libfwl680li.so
+#15 0xb758151c in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+#16 0xb758123d in cppu::createSingleFactory () from ./libuno_cppuhelpergcc3.so.3
+
+2,3,4,5 - configmgr:
+
+#0  0xb6f05c06 in fscanf () from /lib/libc.so.6
+#1  0xb750aa20 in checkString () from ./libuno_sal.so.3
+#2  0xb750b450 in rtl_string2UString () from ./libuno_sal.so.3
+#3  0xa3cb35f4 in configmgr::backend::BinaryReader_Impl::readUTF () from ./configmgr2.uno.so
+#4  0xa3cb40b1 in configmgr::backend::BinaryReader::read () from ./configmgr2.uno.so
+#5  0xa3cb7323 in configmgr::backend::BinaryReadHandler::verifyFileHeader () from ./configmgr2.uno.so
+#6  0xa3cb7464 in configmgr::backend::BinaryReadHandler::validateHeader () from ./configmgr2.uno.so
+#7  0xa3cb8bc4 in configmgr::backend::BinaryCache::readComponentData () from ./configmgr2.uno.so
+#8  0xa3caa384 in configmgr::backend::BackendAccess::readDefaultData () from ./configmgr2.uno.so
+#9  0xa3caa7cb in configmgr::backend::BackendAccess::getNodeData () from ./configmgr2.uno.so
+#10 0xa3c75d97 in configmgr::backend::CacheController::loadDirectly () from ./configmgr2.uno.so
+
+
+--------------------------------------------------------------------------------
+HIT_STR=res/commandimagelist/lc_underline.png
+--------------------------------------------------------------------------------
+
+* trivial to fix ...
+
+(gdb) bt
+#0  0xb6eaec06 in fscanf () from /lib/libc.so.6
+#1  0xb74b3a20 in checkString () from ./libuno_sal.so.3
+#2  0xb74b4450 in rtl_string2UString () from ./libuno_sal.so.3
+#3  0xa2a36cfe in rtl::OUString::OUString () from ./libpackage2.so
+#4  0xa2a34c46 in ZipFile::readCEN () from ./libpackage2.so
+#5  0xa2a3523f in ZipFile::ZipFile () from ./libpackage2.so
+#6  0xa2a50ca6 in OZipFileAccess::initialize () from ./libpackage2.so
+#7  0xb7ce5544 in ImplImageTree::implInit () from ./libvcl680li.so
+#8  0xb7ce5a04 in ImplImageTree::loadImage () from ./libvcl680li.so
+#9  0xb7cb84a1 in BitmapEx::BitmapEx () from ./libvcl680li.so
+#10 0xb653d10a in GtkSalFrame::SetIcon () from ./libvclplug_gtk680li.so
+#11 0xb6538f2b in GtkSalFrame::InitCommon () from ./libvclplug_gtk680li.so
+#12 0xb6539363 in GtkSalFrame::Init () from ./libvclplug_gtk680li.so
+#13 0xb653c2af in GtkSalFrame::GtkSalFrame () from ./libvclplug_gtk680li.so
+#14 0xb651da82 in GtkInstance::CreateFrame () from ./libvclplug_gtk680li.so
+#15 0xb7e01e39 in Window::ImplInit () from ./libvcl680li.so
+#16 0xb7da7b0a in Dialog::ImplInit () from ./libvcl680li.so
+#17 0xb7da8708 in ModalDialog::ModalDialog () from ./libvcl680li.so
+#18 0xb7981259 in WizardDialog::WizardDialog () from ./libsvt680li.so
+#19 0xb7962162 in svt::OWizardMachine::OWizardMachine () from ./libsvt680li.so
+#20 0xb795f660 in svt::RoadmapWizard::RoadmapWizard () from ./libsvt680li.so
+#21 0xa2a96029 in desktop::FirstStartWizard::FirstStartWizard () from ./libspl680li.so
+#22 0xa2a8cebb in desktop::FirstStart::execute () from ./libspl680li.so
+#23 0x0806d3a0 in desktop::Desktop::Main ()
+#24 0xb7c9b3eb in ImplSVMain () from ./libvcl680li.so
+#25 0xb7c9b501 in SVMain () from ./libvcl680li.so
+#26 0x080646db in sal_main ()
+#27 0x08064730 in main ()
+
+1hit: vcl impimagetree hash.
+
+1 hit resmgr:
+
+#0  0xb6d30c06 in fscanf () from /lib/libc.so.6
+#1  0xb733e5fa in checkString () from ./libuno_sal.so.3
+#2  0xb733f09c in rtl_string2UString () from ./libuno_sal.so.3
+#3  0xb76f6748 in String::String () from ./libtl680li.so
+#4  0xb7723459 in ResMgr::GetStringWithoutHook () from ./libtl680li.so
+#5  0xb7725996 in ResMgr::ReadStringWithoutHook () from ./libtl680li.so
+#6  0xb7725a1e in ResMgr::ReadString () from ./libtl680li.so
+#7  0xb7ccf270 in ImageList::ImageList () from ./libvcl680li.so
+#8  0xb78a946f in GetImageFromList_Impl () from ./libsvt680li.so
+#9  0xb78aab8e in SvFileInformationManager::GetImageNoDefault () from ./libsvt680li.so
+#10 0xa1aa172d in SfxAppToolBoxControl_Impl::SetImage () from ./libsfx680li.so
+#11 0xa1aa2d66 in SfxAppToolBoxControl_Impl::SfxAppToolBoxControl_Impl () from ./libsfx680li.so
+#12 0xa1aa2dea in SfxAppToolBoxControl_Impl::CreateImpl () from ./libsfx680li.so
+#13 0xa1aa52d8 in SfxToolBoxControl::CreateControl () from ./libsfx680li.so
+#14 0xa1aa5602 in SfxToolBoxControllerFactory () from ./libsfx680li.so
+
+--------------------------------------------------------------------------------
+HIT_STR=Regular
+--------------------------------------------------------------------------------
+
+#0  0xb6e0ec06 in fscanf () from /lib/libc.so.6
+#1  0xb741c5fa in checkString () from ./libuno_sal.so.3
+#2  0xb741d09c in rtl_string2UString () from ./libuno_sal.so.3
+#3  0xb6afa2be in rtl::OUString::OUString () from ./libpsp680li.so
+#4  0xb6afed2a in psp::FontCache::read () from ./libpsp680li.so
+#5  0xb6afefa2 in psp::FontCache::FontCache () from ./libpsp680li.so
+#6  0xb6aec465 in psp::PrintFontManager::initialize () from ./libpsp680li.so
+#7  0xb6aed740 in psp::PrintFontManager::get () from ./libpsp680li.so
+
+
+
+* Measurement:
+
+    + add all the 'interns' ...
+	+ then disable 'intern' ;-)
+
+
+pmap `ps ax | grep soffice.bin | grep -v grep | cut -f 2 -d ' '` | grep writable
+before:
+71196K writable-private, 88220K readonly-private, and 286440K shared
+71176K writable-private, 88220K readonly-private, and 286440K shared
+71172K writable-private, 88220K readonly-private, and 286440K shared
+
+hash size 29503
+
+
+after:
+70688K writable-private, 88220K readonly-private, and 286440K shared
+70688K writable-private, 88220K readonly-private, and 286440K shared
+70616K writable-private, 88220K readonly-private, and 286440K shared
+
+hash size 21050
+
+* Saved another 600Kb ...
+    + check how much the (stupid) STL::hash wastes of that (!?)
+	+ allocation overhead, silly hash arrangement etc.
+
+* Checking vs. new uniqued string dump
+    + only ~120kb left (of duplicates)
+	    + ie. small change.
+	    + shrink the hash (!?)
+
+    + test vs. smaller hash foo (!)
+	+ re-profile without the g_hash_table foo (?)
+	    + [ may magnify the delta ]
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/data-from-remote-mysql-server.txt
+++ openoffice.org-2.4.1/ooo-build/doc/data-from-remote-mysql-server.txt
@@ -0,0 +1,71 @@
+	 Connecting to MySQL server on a remote machine using ODBC
+     ---------------------------------------------------------
+    It will be a good idea to read "using-mysql-databases.txt" before reading this document.
+    
+1.  Configuring MySQL Server.
+
+    No idea, what is the default nature of mysql binding ! I think the default binding is to 
+    localhost. So its good idea to add a attribute to be on a safer side :). Do not complain 
+    me later that, it was not told ;)
+    
+    # vi /etc/my.conf
+    
+        Search for [mysqld]. In this section add attribute
+        bind-address=<your-machine-ip-addr-or-domain-name>
+    
+    1.1 Grant permission to remote user
+    
+        enter into mysql
+    
+        #mysql -u root -p 
+        #mysql> use <your-database1>
+        #mysql> GRANT ALL PRIVILEGES ON <your-table-name/database-name/*>.* TO \
+            'remote-user'@'remote-domain' IDENTIFIED BY 'put-ur-passwd';
+    
+        The privileges can be given to "database" or "table in a database" or "*" all !!
+    
+    1.2 Test it
+
+        Use another machine having mysql client.
+        # mysql -h <your-machine-ip-addr-or-domain-name> -u remote-user -p
+
+        <your-machine-ip-addr-or-domain-name>:Put the ip address or domain name where the server is 
+        running.
+        remote-user: The user name which is permitted(granted) from this machine to use the 
+        database.
+        -p : Prompts the password. type the password given at the time of GRANT.
+
+        If you are able to see "#mysql>" prompt its a success.
+
+    
+2.  Connecting to MySQL with ODBC Driver
+
+    2.1 Configure the ini file.
+    
+         #vi /etc/unixODBC/odbc.ini
+
+         Add the entries as follows:
+         [MySQL-test]
+         Description = abc
+         Driver      = MySQL
+         Server      = mysqlserver.com //or the ip address where MySQL Server is running
+         User        = mjayant //remote user
+         Password    = abcd //clear password
+         Database    = test //database name
+         Port        = 3306 //port number
+
+         * Please do not put the comment the "above" way. That was context sensitive comment ;) 
+         (Saves effort and space)
+
+         For some unknown reason the User and password does not work.
+
+    2.2 Test the driver.
+        
+        #isql  MySQL-test mjayant abcd
+
+        if this gives you "SQL>" prompt you are done :)
+
+         
+3.  Connecting with OOo to remote server.
+
+    Use the same steps written in section 3.1 of doc/using-mysql-databases.txt :)
--- openoffice.org-2.4.1.orig/ooo-build/doc/wpd.txt
+++ openoffice.org-2.4.1/ooo-build/doc/wpd.txt
@@ -0,0 +1,56 @@
+libwpd / writerfilter analysis
+
+Type detection problems:
+
+     SfxApplication::InsertDocumentDialog
+	sfx2/source/bastyp/fltfnc.cxx:
+	    SfxFilterMatcher::DetectFilter
+		-> GuessFilter ?
+		   -> no exception in there ..
+
+    -> ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > lDescriptor = aDescriptor.getAsConstPropertyValueList(); 
+       sTypeName = xDetection->queryTypeByDescriptor(lDescriptor, sal_True); // lDescriptor is used as In/Out param ... dont use aDescriptor.getAsConstPropertyValueList() directly!
+
+       filter/source/cache/typedetection.cxx
+	    impl_askDetectService - does the call ...
+
+	
+
+
+
+type detection:
+     + sw/source/ui/app/swlib.cxx
+	rFactory.GetFilterContainer()->SetDetectFilter( &SwDLL::DetectFilter );
+     + sw/source/ui/app/swcomlib.cxx (GlobDetectFilter)
+
+// Only works for storages (!?)
+    SwIoSystem::IsValidStgFilter( *aStg, **ppFilter ))
+
+    nMust != ( (*ppFilter)->GetFilterFlags() & nMust ) ||
+	0 != ( (*ppFilter)->GetFilterFlags() & nDont )) )
+	
+	'IsValidStgFilter' -> sw/inc/iodetect.hxx
+	rStd.GetFormat()
+
+	GetSubStorageName (rFilter )
+	    [ need a hack for OLE2 sub-streams ]
+
+libwpd/
+    src/
+	lib/ - only bit worth dmaking.
+
+
+sfx2/docfile.hxx - SfxMedium
+so3/inc/svstor.hxx - ole2 bits ?
+sot/source/sdstor/stgole.cxx - ole2 parsing ?
+
+unotools/ucbstreamhelper.hxx:43:        static SvStream*    CreateStream( NS_UNO::Reference < NS_IO::XInputStream > xStream );
+
+    
+sw/source/filter/inc/fltini.hxx (StgReader->Reader ::Read)
+
+sw/inc/shellio.hxx: StgReader, && Reader
+
+CWS:
+       cws_srx645_wpd01
+	    + only 'sw', need 'scp' etc. adding.
--- openoffice.org-2.4.1.orig/ooo-build/doc/extra-localizations.txt
+++ openoffice.org-2.4.1/ooo-build/doc/extra-localizations.txt
@@ -0,0 +1,54 @@
+Translations
+------------
+
+All translations come from OpenOffice.org CVS repository and they are
+not modified by ooo-build unless you provide your own GSI files.
+
+How to update translations
+--------------------------
+
+You can put GSI_$lang.sdf file into $SRCDIR (obviously ooo-build/src)
+directory. You can put GSI files for more than one language safely.
+All GSI files are automatically recognized and used by build scripts.
+
+I have updated GSI file, what should I do?
+------------------------------------------
+
+Your build is completed and you have updated GSI file. What should
+you do?
+
+ 1) put updated GSI_$lang.sdf file into $SRCDIR
+ 2) remove related line in ooo-build/stamp/build.extra.translations
+ 3) remove ooo-build/stamp/build
+ 4) run make again to re-localize and re-build your ooo-build tree
+
+Where are the extra sources available?
+--------------------------------------
+
+Pavel Janik collected some. They can be found at:
+ftp://ftp.linux.cz/pub/localization/OpenOffice.org/devel/680/SRC680_m*/Build-*/build/Files/2.0/
+
+He uses the following script to update some of them:
+
+#!/bin/sh
+echo "Estonian: et"
+wget http://linux.ee/~vagula/gsi/GSI_et.sdf.bz2
+bunzip2 -f GSI_et.sdf.bz2
+
+echo "Slovak: sk"
+wget "http://sk.openoffice.org/unbranded-source/browse/*checkout*/sk/gsi/GSI_sk.sdf.gz?rev=HEAD&content-type=text/plain"
+mv GSI_sk.sdf.gz* GSI_sk.sdf.gz
+gunzip -f GSI_sk.sdf.gz
+
+echo "Hungarian: hu"
+wget http://hu.openoffice.org/nonav/source/browse/*checkout*/hu/hu-po-2/hu.sdf.bz2
+bunzip2 -f hu.sdf.bz2
+mv hu.sdf GSI_hu.sdf
+
+echo "Norwegian: nb"
+wget http://developer.skulelinux.no/~gautehk/GSI_nb.sdf.bz2
+bunzip2 -f GSI_nb.sdf.bz2
+
+echo "Norwegian: nn"
+wget http://developer.skulelinux.no/~gautehk/GSI_nn.sdf.bz2
+bunzip2 -f GSI_nn.sdf.bz2
--- openoffice.org-2.4.1.orig/ooo-build/doc/dmake.txt
+++ openoffice.org-2.4.1/ooo-build/doc/dmake.txt
@@ -0,0 +1,176 @@
+Dmake slowness ... - why !?
+
+Lots of forks:
+(dmake/unix/runargv.c ?)
+
+    + The unix runargv is called on Win32 too
+	+ we fork 'tcsh' for 'echo' since for 4NT echo is an
+	  external process, not needed for Unix though.
+
+    PUBLIC int
+    runargv(target, ignore, group, last, shell, cmd)
+
+    PUBLIC int
+    Do_cmnd(cmd, group, do_it, target, ignore, shell, last)
+
+./mac/bogus.c:66:runargv (CELLPTR target, int ignore, int,
+./mac/bogus.c:77:} /* int runargv () */
+./qssl/runargv.c:1:/* RCS  $Id: dmake.txt 5749 2006-02-07 19:05:38Z martink $
+./qssl/runargv.c:62:runargv(target, ignore, group, last, shell, cmd)
+./qssl/runargv.c:223:      runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group,
+./unix/runargv.c:1:/* $RCSfile$
+./unix/runargv.c:107:runargv(target, ignore, group, last, shell, cmd)
+./unix/runargv.c:290:      runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group,
+./msdos/runargv.c:1:/* RCS  $Id: dmake.txt 5749 2006-02-07 19:05:38Z martink $
+./msdos/runargv.c:36:runargv(target, ignore, group, last, shell, cmd)
+./win95/microsft/vpp40/runargv.c:3:/* RCS  $Id: dmake.txt 5749 2006-02-07 19:05:38Z martink $
+./win95/microsft/vpp40/runargv.c:68:runargv(target, ignore, group, last, shell, cmd)
+./win95/microsft/vpp40/runargv.c:217:      runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group,
+./winnt/microsft/vpp40/runargv.c:3:/* RCS  $Id: dmake.txt 5749 2006-02-07 19:05:38Z martink $
+./winnt/microsft/vpp40/runargv.c:68:runargv(target, ignore, group, last, shell, cmd)
+./winnt/microsft/vpp40/runargv.c:217:      runargv( _procs[i].pr_target, rp->prp_ignore, rp->prp_group,
+./sysintf.c:31:--               runargv()
+./sysintf.c:200:   if( (i = runargv(target, ignore, group, last, shell, cmd)) == -1 )
+./sysintf.c:203:   /* NOTE:  runargv must return either 0 or 1, 0 ==> command executed, and
+
+
+32049 execve("/usr/bin/perl", ["perl", "../solenv/bin/build.pl"], [/* 300 vars */]) = 0
+32050 execve("/bin/pwd", ["/bin/pwd"], [/* 300 vars */] <unfinished ...>
+32050 <... execve resumed> )            = 0
+32051 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake", "-V"], [/* 301 vars */] <unfinished ...>
+32051 <... execve resumed> )            = 0
+32052 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */]) = 0
+32053 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32054 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32055 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo -------------"], [/* 308 vars */]) = 0
+32056 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */] <unfinished ...>
+32056 <... execve resumed> )            = 0
+32057 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32058 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32059 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo \"Nothing to build for GUIBA"...], [/* 308 vars */]) = 0
+32060 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */] <unfinished ...>
+32060 <... execve resumed> )            = 0
+32061 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32062 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32063 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo \"Nothing to build for GUIBA"...], [/* 308 vars */]) = 0
+32064 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */]) = 0
+32065 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32066 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo ..."], [/* 302 vars */]) = 0
+32067 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */] <unfinished ...>
+32067 <... execve resumed> )            = 0
+32068 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32069 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32070 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo \"Nothing to build for GUIBA"...], [/* 308 vars */]) = 0
+32071 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */]) = 0
+32072 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32073 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32074 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo --- EXCEPTIONSFILES ---"], [/* 308 vars */]) = 0
+32075 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "dmake  -f makefile.mk ENABLE_EXC"...], [/* 308 vars */]) = 0
+32076 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake", "-f", "makefile.mk", "ENABLE_EXCEPTIONS=true", "../../unxlngi6.pro/slo/svapp.obj"..., "../../unxlngi6.pro/slo/svdata.ob"..., "../../unxlngi6.pro/slo/dndhelp.o"..., "../../unxlngi6.pro/slo/unohelp.o"..., "../../unxlngi6.pro/slo/unohelp2."..., "../../unxlngi6.pro/slo/i18nhelp."..., "../../unxlngi6.pro/slo/svmain.ob"..., "../../unxlngi6.pro/slo/session.o"..., "EXCEPTIONS_FLAG=TRUE"], [/* 310 vars */]) = 0
+32077 execve("/bin/date", ["date", "+%d%m%Y"], [/* 310 vars */]) = 0
+32079 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo --- EXCEPTIONSFILES OVER --"...], [/* 308 vars */]) = 0
+32080 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo -------------"], [/* 308 vars */]) = 0
+32081 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */] <unfinished ...>
+32081 <... execve resumed> )            = 0
+32082 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32083 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32084 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo --- EXCEPTIONSFILES ---"], [/* 308 vars */]) = 0
+32085 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "dmake  -f makefile.mk ENABLE_EXC"...], [/* 308 vars */]) = 0
+32086 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake", "-f", "makefile.mk", "ENABLE_EXCEPTIONS=true", "../../unxlngi6.pro/slo/edit.obj", "../../unxlngi6.pro/slo/field2.ob"..., "../../unxlngi6.pro/slo/ilstbox.o"..., "../../unxlngi6.pro/slo/tabctrl.o"..., "EXCEPTIONS_FLAG=TRUE"], [/* 310 vars */]) = 0
+32087 execve("/bin/date", ["date", "+%d%m%Y"], [/* 310 vars */]) = 0
+32088 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo --- EXCEPTIONSFILES OVER --"...], [/* 308 vars */]) = 0
+32089 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo -------------"], [/* 308 vars */]) = 0
+32090 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */]) = 0
+32091 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32092 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32093 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo --- EXCEPTIONSFILES ---"], [/* 308 vars */]) = 0
+32094 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "dmake  -f makefile.mk ENABLE_EXC"...], [/* 308 vars */]) = 0
+32095 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake", "-f", "makefile.mk", "ENABLE_EXCEPTIONS=true", "../../unxlngi6.pro/slo/outdev.ob"..., "../../unxlngi6.pro/slo/gfxlink.o"..., "../../unxlngi6.pro/slo/print.obj"..., "../../unxlngi6.pro/slo/impgraph."..., "../../unxlngi6.pro/slo/bmpconv.o"..., "../../unxlngi6.pro/slo/pdfextout"..., "../../unxlngi6.pro/slo/impimaget"..., "../../unxlngi6.pro/slo/virdev.ob"..., "EXCEPTIONS_FLAG=TRUE"], [/* 310 vars */]) = 0
+32096 execve("/bin/date", ["date", "+%d%m%Y"], [/* 310 vars */]) = 0
+32097 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo --- EXCEPTIONSFILES OVER --"...], [/* 308 vars */]) = 0
+32098 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo -------------"], [/* 308 vars */]) = 0
+32099 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */]) = 0
+32100 execve("/opt/OpenOffice/src680-m152/solenv/unxlngi6/bin/dmake", ["dmake"], [/* 301 vars */]) = 0
+32101 execve("/bin/date", ["date", "+%d%m%Y"], [/* 307 vars */]) = 0
+32102 execve("/usr/bin/tcsh", ["/usr/bin/tcsh", "-fc", "echo -------------"], [/* 308 vars */]) = 0
+32103 execve("/bin/pwd", ["/bin/pwd"], [/* 301 vars */] <unfinished ...>
+32103 <... execve resumed> )            = 0
+
+Proto patch for builtin 'dmake':
+
+Index: unix/runargv.c
+===================================================================
+RCS file: /cvs/tools/dmake/unix/runargv.c,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 runargv.c
+--- unix/runargv.c	8 Sep 2004 16:09:39 -0000	1.8
++++ unix/runargv.c	7 Feb 2006 17:49:08 -0000
+@@ -103,6 +103,44 @@ private_strerror (errnum)
+ #define strerror private_strerror
+ #endif /* HAVE_STRERROR */
+ 
++/* A set of commands that handle some things we do a lot */
++static int
++builtin_do_date (argv, ret)
++char ** argv;
++int *ret;
++{
++  if (argv[1] && !strcmp (argv[1], "+%d%m%Y"))
++  {
++    fprintf (stdout, "dateseldomused\n");
++	*ret = 1;
++	return 1;
++  }
++  return 0;
++}
++
++static int
++exec_builtin_command (argv, ret)
++char ** argv;
++int *ret;
++{
++  const char *command;
++
++  if (!argv || !argv[0])
++    return 0;
++
++  command = argv[0];
++
++  if (!strcmp (command, "date"))
++    return builtin_do_date (argv, ret);
++
++
++  fprintf (stderr, "Command: '%s' args:", argv[0]);
++  while (*argv)
++		  fprintf (stderr, "'%s' ", *argv++);
++  fprintf (stderr, "\n");
++  return 0;
++}
++
+ PUBLIC int
+ runargv(target, ignore, group, last, shell, cmd)
+ CELLPTR target;
+@@ -113,6 +151,7 @@ int     shell;
+ char	*cmd;
+ {
+    int          pid;
++   int          ret;
+    char         **argv;
+ 
+    if( _running(target) /*&& Max_proc != 1*/ ) {
+@@ -138,6 +177,9 @@ char	*cmd;
+ 
+    argv = Pack_argv( group, shell, cmd );
+ 
++   if (exec_builtin_command (argv, &ret))
++	   return ret;
++
+ #if HAVE_SPAWN_H
+    if (posix_spawn (&pid, argv[0], NULL, NULL, argv, (char *)NULL))
+    {   /* posix_spawn failed */
+
+
+It might be possible to eliminate most date calls completely (yeah, I
+know builtin_do_date is just an example). Superficial grepping in
+solenv/inc/*mk makes it look like the date call is in a file that
+everybody .INCLUDEs, to set a variable that affects only scp2 (?).
--- openoffice.org-2.4.1.orig/ooo-build/doc/events.txt
+++ openoffice.org-2.4.1/ooo-build/doc/events.txt
@@ -0,0 +1,752 @@
+Info on VBA events for controls
+BeforeDropOrPaste Event
+=======================
+                        
+
+Occurs when the user is about to drop or paste data onto an object.
+
+Syntax
+
+For Frame
+Private Sub object_BeforeDropOrPaste( ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+For MultiPage
+Private Sub object_BeforeDropOrPaste( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+For TabStrip
+Private Sub object_BeforeDropOrPaste( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+For other controls
+Private Sub object_BeforeDropOrPaste( ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+The BeforeDropOrPaste event syntax has these parts:
+
+Part Description 
+object Required. A valid object name. 
+index Required. The index of the Page in a MultiPage that the drop or paste operation will affect. 
+Cancel Required. Event status. False indicates that the control should handle the event (default). True indicates the application handles the event. 
+ctrl Required. The target control. 
+Action Required. Indicates the result, based on the current keyboard settings, of the pending drag-and-drop operation. 
+Data Required. Data that is dragged in a drag-and-drop operation. The data is packaged in a DataObject. 
+X, Y Required. The horizontal and vertical position of the mouse pointer when the drop occurs. Both coordinates are measured in points. X is measured from the left edge of the control; Y is measured from the top of the control.. 
+Effect Required. Effect of the drag-and-drop operation on the target control. 
+Shift Required. Specifies the state of SHIFT, CTRL, and ALT. 
+
+
+Settings
+
+The settings for Action are: 
+
+Constant Value Description 
+fmActionPaste 2 Pastes the selected object into the drop target. 
+fmActionDragDrop 3 Indicates the user has dragged the object from its source to the drop target and dropped it on the drop target. 
+
+
+The settings for Effect are: 
+
+Constant Value Description 
+fmDropEffectNone 0 Does not copy or move the drop source to the drop target. 
+fmDropEffectCopy 1 Copies the drop source to the drop target. 
+fmDropEffectMove 2 Moves the drop source to the drop target. 
+fmDropEffectCopyOrMove  3 Copies or moves the drop source to the drop target. 
+
+
+The settings for Shift are: 
+
+Constant Value Description 
+fmShiftMask 1 SHIFT was pressed. 
+fmCtrlMask 2 CTRL was pressed. 
+fmAltMask 4 ALT was pressed. 
+
+
+Remarks
+
+For a MultiPage or TabStrip, Visual Basic for Applications initiates this event when it transfers a data object to the control.
+
+For other controls, the system initiates this event immediately prior to the drop or paste operation.
+
+When a control handles this event, you can update the Action argument to identify the drag-and-drop action to perform. When Effect is set to fmDropEffectCopyOrMove, you can assign Action to fmDropEffectNone, fmDropEffectCopy, or fmDropEffectMove. When Effect is set to fmDropEffectCopy or fmDropEffectMove, you can reassign Action to fmDropEffectNone. You cannot reassign Action when Effect is set to fmDropEffectNone.
+
+DropButtonClick Event
+=====================                        
+
+Occurs whenever the drop-down list appears or disappears.
+
+Syntax
+
+Private Sub object_DropButtonClick( )
+
+The DropButtonClick event syntax has these parts:
+
+
+Part Description 
+object Required. A valid object. 
+
+
+Remarks
+
+You can initiate the DropButtonClick event through code or by taking certain actions in the user interface.
+
+In code, calling the DropDown method initiates the DropButtonClick event.
+
+In the user interface, any of the following actions initiates the event: 
+
+Clicking the drop-down button on the control.
+
+
+Pressing F4. 
+Any of the above actions, in code or in the interface, cause the drop-down box to appear on the control. The system initiates the DropButtonClick event when the drop-down box goes away.
+
+
+KeyPress Event
+==============                        
+
+Occurs when the user presses an ANSI key.
+
+Syntax
+
+Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)
+
+The KeyPress event syntax has these parts:
+
+Part Description 
+object Required. A valid object. 
+KeyANSI Required. An integer value that represents a standard numeric ANSI key code. 
+
+
+Remarks
+
+The KeyPress event occurs when the user presses a key that produces a typeable character (an ANSI key) on a running form while the form or a control on it has the focus. The event can occur either before or after the key is released. This event also occurs if you send an ANSI keystroke to a form or control using either the SendKeys action in a macro or the SendKeys Statement in Visual Basic.
+
+A KeyPress event can occur when any of the following keys are pressed: 
+
+Any printable keyboard character.
+
+
+CTRL combined with a character from the standard alphabet.
+
+
+CTRL combined with any special character.
+
+
+BACKSPACE.
+
+
+ESC. 
+A KeyPress event does not occur under the following conditions: 
+
+Pressing TAB.
+
+
+Pressing ENTER.
+
+
+Pressing an arrow key.
+
+
+When a keystroke causes the focus to move from one control to another. 
+Note BACKSPACE is part of the ANSI character set, but DELETE is not. Deleting a character in a control using BACKSPACE causes a KeyPress event; deleting a character using DELETE doesn't.
+
+When a user holds down a key that produces an ANSI keycode, the KeyDown and KeyPress events alternate repeatedly. When the user releases the key, the KeyUp event occurs. The form or control with the focus receives all keystrokes. A form can have the focus only if it has no controls, or if all its visible controls are disabled.
+
+The default action for the KeyPress event is to process the event code that corresponds to the key that was pressed. KeyANSI indicates the ANSI character that corresponds to the pressed key or key combination. The KeyPress event interprets the uppercase and lowercase of each character as separate key codes and, therefore, as two separate characters.
+
+To respond to the physical state of the keyboard, or to handle keystrokes not recognized by the KeyPress event, such as function keys, navigation keys, and any combinations of these with keyboard modifiers (ALT, SHIFT, or CTRL), use the KeyDown and KeyUp event procedures.
+
+The sequence of keyboard-related events is: 
+
+KeyDown
+
+
+KeyPress
+
+
+KeyUp 
+
+
+DblClick Event
+================                        
+
+Occurs when the user points to an object and then clicks a mouse button twice.
+
+Syntax
+
+For MultiPage, TabStrip 
+Private Sub object_DblClick( index As Long, ByVal Cancel As MSForms.ReturnBoolean)
+
+For other controls
+Private Sub object_DblClick( ByVal Cancel As MSForms.ReturnBoolean)
+
+The DblClick event syntax has these parts:
+
+Part Description 
+object Required. A valid object. 
+index Required. The position of a Page or Tab object within a Pages or Tabs collection. 
+Cancel Required. Event status. False indicates that the control should handle the event (default). True indicates the application handles the event. 
+
+
+Remarks
+
+For this event to occur, the two clicks must occur within the time span specified by the system's double-click speed setting.
+
+For controls that support Click, the following sequence of events leads to the DblClick event: 
+
+MouseDown
+
+
+MouseUp
+
+
+Click
+
+
+DblClick 
+If a control, such as TextBox, does not support Click, Click is omitted fom the order of events leading to the DblClick event.
+
+If the return value of Cancel is True when the user clicks twice, the control ignores the second click. This is useful if the second click reverses the effect of the first, such as double-clicking a toggle button. The Cancel argument allows your form to ignore the second click, so that either clicking or double-clicking the button has the same effect.
+
+
+MouseDown, MouseUp Events
+==========================                        
+
+Occur when the user clicks a mouse button. MouseDown occurs when the user presses the mouse button; MouseUp occurs when the user releases the mouse button.
+
+Syntax
+
+For MultiPage, TabStrip
+Private Sub object_MouseDown( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
+
+Private Sub object_MouseUp( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
+
+For other controls
+Private Sub object_MouseDown( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
+
+Private Sub object_MouseUp( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
+
+The MouseDown and MouseUp event syntaxes have these parts:
+
+Part Description 
+object Required. A valid object. 
+index Required. The index of the page or tab in a MultiPage or TabStrip with the specified event. 
+Button Required. An integer value that identifies which mouse button caused the event. 
+Shift Required. The state of SHIFT, CTRL, and ALT.  
+X, Y Required. The horizontal or vertical position, in points, from the left or top edge of the form, Frame, or Page. 
+
+
+Settings
+
+The settings for Button are:
+
+Constant Value Description 
+fmButtonLeft 1 The left button was pressed. 
+fmButtonRight 2 The right button was pressed. 
+fmButtonMiddle 4 The middle button was pressed. 
+
+
+The settings for Shift are:
+
+Value Description 
+1 SHIFT was pressed. 
+2 CTRL was pressed. 
+3 SHIFT and CTRL were pressed. 
+4 ALT was pressed. 
+5 ALT and SHIFT were pressed. 
+6 ALT and CTRL were pressed. 
+7 ALT, SHIFT, and CTRL were pressed. 
+
+
+You can identify individual keyboard modifiers by using the following constants:
+
+Constant Value Description 
+fmShiftMask 1 Mask to detect SHIFT. 
+fmCtrlMask 2 Mask to detect CTRL. 
+fmAltMask 4 Mask to detect ALT. 
+
+
+Remarks
+
+For a MultiPage, the MouseDown event occurs when the user presses a mouse button over the control.
+
+For a TabStrip, the index argument identifies the tab where the user clicked. An index of 1 indicates the user did not click a tab. For example, if there are no tabs in the upper right corner of the control, clicking in the upper right corner sets the index to 1.
+
+For a form, the user can generate MouseDown and MouseUp events by pressing and releasing a mouse button in a blank area, record selector, or scroll bar on the form.
+
+The sequence of mouse-related events is: 
+
+MouseDown
+
+
+MouseUp
+
+
+Click
+
+
+DblClick
+
+
+MouseUp 
+MouseDown or MouseUp event procedures specify actions that occur when a mouse button is pressed or released. MouseDown and MouseUp events enable you to distinguish between the left, right, and middle mouse buttons. You can also write code for mouse-keyboard combinations that use the SHIFT, CTRL, and ALT keyboard modifiers.
+
+If a mouse button is pressed while the pointer is over a form or control, that object "captures" the mouse and receives all mouse events up to and including the last MouseUp event. This implies that the X, Y mouse-pointer coordinates returned by a mouse event may not always be within the boundaries of the object that receives them.
+
+If mouse buttons are pressed in succession, the object that captures the mouse receives all successive mouse events until all buttons are released.
+
+Use the Shift argument to identify the state of SHIFT, CTRL, and ALT when the MouseDown or MouseUp event occurred. For example, if both CTRL and ALT are pressed, the value of Shift is 6.
+
+
+MouseMove Event
+===============                        
+
+Occurs when the user moves the mouse.
+
+Syntax
+
+For MultiPage, TabStrip 
+Private Sub object_MouseMove( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
+
+For other controls
+Private Sub object_MouseMove( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
+
+The MouseMove event syntax has these parts:
+
+Part Description 
+object Required. A valid object name. 
+index Required. The index of the page or tab in a MultiPage or TabStrip associated with this event. 
+Button Required. An integer value that identifies the state of the mouse buttons. 
+Shift Required. Specifies the state of SHIFT, CTRL, and ALT. 
+X, Y Required. The horizontal or vertical position, measured in points, from the left or top edge of the control. 
+
+
+Settings
+
+The index argument specifies which page or tab was clicked over. A 1 designates that the user did not click on any of the pages or tabs.
+
+The settings for Button are:
+
+Value Description 
+0 No button is pressed. 
+1 The left button is pressed. 
+2 The right button is pressed. 
+3 The right and left buttons are pressed. 
+4 The middle button is pressed. 
+5 The middle and left buttons are pressed. 
+6 The middle and right buttons are pressed. 
+7 All three buttons are pressed. 
+
+
+The settings for Shift are:
+
+Value Description 
+1 SHIFT was pressed. 
+2 CTRL was pressed. 
+3 SHIFT and CTRL were pressed. 
+4 ALT was pressed. 
+5 ALT and SHIFT were pressed. 
+6 ALT and CTRL were pressed. 
+7 ALT, SHIFT, and CTRL were pressed. 
+
+
+You can identify individual keyboard modifiers by using the following constants:
+
+Constant Value Description 
+fmShiftMask 1 Mask to detect SHIFT. 
+fmCtrlMask 2 Mask to detect CTRL. 
+fmAltMask 4 Mask to detect ALT. 
+
+
+Remarks
+
+The MouseMove event applies to forms, controls on a form, and labels.
+
+MouseMove events are generated continually as the mouse pointer moves across objects. Unless another object has captured the mouse, an object recognizes a MouseMove event whenever the mouse position is within its borders.
+
+Moving a form can also generate a MouseMove event even if the mouse is stationary. MouseMove events are generated when the form moves underneath the pointer. If a macro or event procedure moves a form in response to a MouseMove event, the event can continually generate (cascade) MouseMove events.
+
+If two controls are very close together, and you move the mouse pointer quickly over the space between them, the MouseMove event might not occur for that space. In such cases, you might need to respond to the MouseMove event in both controls.
+
+You can use the value returned in the Button argument to identify the state of the mouse buttons.
+
+Use the Shift argument to identify the state of SHIFT, CTRL, and ALT when the MouseMove event occurred. For example, if both CTRL and ALT are pressed, the value of Shift is 6.
+
+Note You can use MouseDown and MouseUp event procedures to respond to events caused by pressing and releasing mouse buttons.
+
+
+
+SpinDown, SpinUp Events
+========================                        
+
+SpinDown occurs when the user clicks the lower or left spin-button arrow. SpinUp occurs when the user clicks the upper or right spin-button arrow.
+
+Syntax
+
+Private Sub object_SpinDown( )
+
+Private Sub object_SpinUp( )
+
+The SpinDown and SpinUp event syntaxes have these parts:
+
+Part Description 
+object Required. A valid object. 
+
+
+Remarks
+
+The SpinDown event decreases the Value property. The SpinUp event increases Value.
+
+Scroll Event
+============                        
+
+Occurs when the scroll box is repositioned.
+
+Syntax
+
+For ScrollBar
+Private Sub object_Scroll( )
+
+For MultiPage
+Private Sub object_Scroll( index As Long, ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)
+
+For Frame
+Private Sub object_Scroll( ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)
+
+The Scroll event syntax has these parts:
+
+Part Description 
+object Required. A valid object name. 
+index Required. The index of the page in a MultiPage associated with this event. 
+ActionX Required. The action that occurred in the horizontal direction. 
+ActionY Required. The action that occurred in the vertical direction. 
+RequestDx Required. The distance, in points, you want the scroll bar to move in the horizontal direction. 
+RequestDy Required. The distance, in points, you want the scroll bar to move in the vertical direction. 
+ActualDx Required. The distance, in points, the scroll bar travelled in the horizontal direction. 
+ActualDy Required. The distance, in points, the scroll bar travelled in the vertical direction. 
+
+
+Settings
+
+The settings for ActionX and ActionY are:
+
+Constant Value Description 
+fmScrollActionNoChange 0 No change occurred. 
+fmScrollActionLineUp 1 A small distance up on a vertical scroll bar; a small distance to the left on a horizontal scroll bar. Movement is equivalent to pressing the up or left arrow keys on the keyboard to move the scroll bar. 
+fmScrollActionLineDown 2 A small distance down on a vertical scroll bar; a small distance to the right on a horizontal scroll bar. Movement is equivalent to pressing the down or right arrow keys on the keyboard to move the scroll bar. 
+fmScrollActionPageUp 3 One page up on a vertical scroll bar; one page to the left on a horizontal scroll bar. Movement is equivalent to pressing PAGE UP on the keyboard to move the scroll bar. 
+fmScrollActionPageDown 4 One page down on a vertical scroll bar; one page to the right on a horizontal scroll bar. Movement is equivalent to pressing PAGE DOWN on the keyboard to move the scroll bar. 
+fmScrollActionBegin 5 The top of a vertical scroll bar; the left end of a horizontal scroll bar. 
+fmScrollActionEnd 6 The bottom of a vertical scroll bar; the right end of a horizontal scroll bar. 
+fmScrollActionPropertyChange  8 The value of either the ScrollTop or the ScrollLeft property changed. The direction and amount of movement depend on which property was changed and on the new property value. 
+fmScrollActionControlRequest  9 A control asked its container to scroll. The amount of movement depends on the specific control and container involved. 
+fmScrollActionFocusRequest  10 The user moved to a different control. The amount of movement depends on the placement of the selected control, and generally has the effect of moving the selected control so it is completely visible to the user. 
+
+
+Remarks
+
+The Scroll events associated with a form, Frame, or Page return the following arguments: ActionX, ActionY, ActualX, and ActualY. ActionX and ActionY identify the action that occurred. ActualX and ActualY identify the distance that the scroll box traveled.
+
+The default action is to calculate the new position of the scroll box and then scroll to that position.
+
+You can initiate a Scroll event by issuing a Scroll method for a form, Frame, or Page. Users can generate Scroll events by moving the scroll box.
+
+The Scroll event associated with the stand-alone ScrollBar indicates that the user moved the scroll box in either direction. This event is not initiated when the value of the ScrollBar changes by code or by the user clicking on parts of the ScrollBar other than the scroll box.
+
+
+Error Event
+=============                        
+
+Occurs when a control detects an error and cannot return the error information to a calling program.
+
+Syntax
+
+For MultiPage
+Private Sub object_Error( index As Long, ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
+
+For other controls
+Private Sub object_Error( ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
+
+The Error event syntax has these parts:
+
+Part Description 
+object Required. A valid object name. 
+index Required. The index of the page in a MultiPage associated with this event. 
+Number Required. Specifies a unique value that the control uses to identify the error. 
+Description Required. A textual description of the error. 
+SCode Required. Specifies the OLE status code for the error. The low-order 16 bits specify a value that is identical to the Number argument. 
+Source Required. The string that identifies the control which initiated the event. 
+HelpFile Required. Specifies a fully qualified path name for the Help file that describes the error. 
+HelpContext Required. Specifies the context ID of the Help file topic that contains a description of the error. 
+CancelDisplay Required. Specifies whether to display the error string in a message box. 
+
+
+Remarks
+
+The code written for the Error event determines how the control responds to the error condition.
+
+The ability to handle error conditions varies from one application to another. The Error event is initiated when an error occurs that the application is not equipped to handle.
+
+
+BeforeDragOver Event
+=====================
+                        
+
+Occurs when a drag-and-drop operation is in progress.
+
+Syntax
+
+For Frame
+Private Sub object_BeforeDragOver( ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+For MultiPage
+Private Sub object_BeforeDragOver( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+For TabStrip
+Private Sub object_BeforeDragOver( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
+
+For other controls
+Private Sub object_BeforeDragOver( ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState) 
+
+The BeforeDragOver event syntax has these parts:
+
+Part Description 
+object Required. A valid object name. 
+index Required. The index of the Page in a MultiPage that the drag-and-drop operation will affect. 
+Cancel Required. Event status. False indicates that the control should handle the event (default). True indicates the application handles the event. 
+ctrl Required. The control being dragged over. 
+Data Required. Data that is dragged in a drag-and-drop operation. The data is packaged in a DataObject. 
+X, Y Required. The horizontal and vertical coordinates of the control's position. Both coordinates are measured in points. X is measured from the left edge of the control; Y is measured from the top of the control.. 
+DragState Required. Transition state of the data being dragged. 
+Effect Required. Operations supported by the drop source. 
+Shift Required. Specifies the state of SHIFT, CTRL, and ALT. 
+
+
+Settings
+
+The settings for DragState are:
+
+Constant Value Description 
+fmDragStateEnter 0 Mouse pointer is within range of a target. 
+fmDragStateLeave 1 Mouse pointer is outside the range of a target. 
+fmDragStateOver 2 Mouse pointer is at a new position, but remains within range of the same target. 
+
+
+The settings for Effect are:
+
+Constant Value Description 
+fmDropEffectNone 0 Does not copy or move the drop source to the drop target. 
+fmDropEffectCopy 1 Copies the drop source to the drop target. 
+fmDropEffectMove 2 Moves the drop source to the drop target. 
+fmDropEffectCopyOrMove  3 Copies or moves the drop source to the drop target. 
+
+
+The settings for Shift are: 
+
+Constant Value Description 
+fmShiftMask 1 SHIFT was pressed. 
+fmCtrlMask 2 CTRL was pressed. 
+fmAltMask 4 ALT was pressed. 
+
+
+Remarks
+
+Use this event to monitor the mouse pointer as it enters, leaves, or rests directly over a valid target. When a drag-and-drop operation is in progress, the system initiates this event when the user moves the mouse, or presses or releases the mouse button or buttons. The mouse pointer position determines the target object that receives this event. You can determine the state of the mouse pointer by examining the DragState argument.
+
+When a control handles this event, you can use the Effect argument to identify the drag-and-drop action to perform. When Effect is set to fmDropEffectCopyOrMove, the drop source supports a copy (fmDropEffectCopy), move (fmDropEffectMove), or a cancel (fmDropEffectNone) operation.
+
+When Effect is set to fmDropEffectCopy, the drop source supports a copy or a cancel (fmDropEffectNone) operation.
+
+When Effect is set to fmDropEffectMove, the drop source supports a move or a cancel (fmDropEffectNone) operation.
+
+When Effect is set to fmDropEffectNone. the drop source supports a cancel operation.
+
+Most controls do not support drag-and-drop while Cancel is False, which is the default setting. This means the control rejects attempts to drag or drop anything on the control, and the control does not initiate the BeforeDropOrPaste event. The TextBox and ComboBox controls are exceptions to this; these controls support drag-and-drop operations even when Cancel is False.
+
+KeyDown, KeyUp Events
+======================                        
+
+Occur in sequence when a user presses and releases a key. KeyDown occurs when the user presses a key. KeyUp occurs when the user releases a key.
+
+Syntax
+
+Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
+
+Private Sub object_KeyUp( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
+
+The KeyDown and KeyUp event syntaxes have these parts:
+
+Part Description 
+object Required. A valid object name. 
+KeyCode Required. An integer that represents the key code of the key that was pressed or released. 
+Shift Required. The state of SHIFT, CTRL, and ALT. 
+
+
+Settings
+
+The settings for Shift are:
+
+Constant Value Description 
+fmShiftMask 1 SHIFT was pressed. 
+fmCtrlMask 2 CTRL was pressed. 
+fmAltMask 4 ALT was pressed. 
+
+
+Remarks
+
+The KeyDown event occurs when the user presses a key on a running form while that form or a control on it has the focus. The KeyDown and KeyPress events alternate repeatedly until the user releases the key, at which time the KeyUp event occurs. The form or control with the focus receives all keystrokes. A form can have the focus only if it has no controls or all its visible controls are disabled.
+
+These events also occur if you send a keystroke to a form or control using either the SendKeys action in a macro or the SendKeys Statement in Visual Basic.
+
+The KeyDown and KeyUp events are typically used to recognize or distinguish between: 
+
+Extended character keys, such as function keys.
+
+
+Navigation keys, such as HOME, END, PAGEUP, PAGEDOWN, UP ARROW, DOWN ARROW, RIGHT ARROW, LEFT ARROW, and TAB.
+
+
+Combinations of keys and standard keyboard modifiers (SHIFT, CTRL, or ALT).
+
+
+The numeric keypad and keyboard number keys. 
+The KeyDown and KeyUp events do not occur under the following circumstances: 
+
+The user presses enter on a form with a command button whose Default property is set to True.
+
+
+The user presses esc on a form with a command button whose Cancel property is set to True. 
+The KeyDown and KeyPress events occur when you press or send an ANSI key. The KeyUp event occurs after any event for a control caused by pressing or sending the key. If a keystroke causes the focus to move from one control to another control, the KeyDown event occurs for the first control, while the KeyPress and KeyUp events occur for the second control.
+
+The sequence of keyboard-related events is: 
+
+KeyDown
+
+
+KeyPress
+
+
+KeyUp 
+Note The KeyDown and KeyUp events apply only to forms and controls on a form. To interpret ANSI characters or to find out the ANSI character corresponding to the key pressed, use the KeyPress event.
+
+
+
+selected dump of event info from various ooo events
+
+key up & key down
+=================
+
+dumpEvent: ScriptType VBAInterop
+dumpEvent: ScriptCode CommandButton1_KeyDown
+dumpEvent: ListenerType com.sun.star.awt.XKeyListener
+dumpEvent: Listener methodname com.sun.star.awt.XKeyListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.KeyEvent) { { { Source = (com.sun.star.uno.XInterface) 0x48224bd0 (ImplementationName = "com.sun.star.comp.forms.OButtonControl") }, Modifiers = (short) 0 }, KeyCode = (short) 517, KeyChar = 'f', KeyFunc = (short) 0 }
+
+dumpEvent: ScriptType VBAInterop
+dumpEvent: ScriptCode CommandButton1_KeyUp
+dumpEvent: ListenerType com.sun.star.awt.XKeyListener
+dumpEvent: Listener methodname com.sun.star.awt.XKeyListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.KeyEvent) { { { Source = (com.sun.star.uno.XInterface) 0x48224bd0 (ImplementationName = "com.sun.star.comp.forms.OButtonControl") }, Modifiers = (short) 0 }, KeyCode = (short) 517, KeyChar = 'f', KeyFunc = (short) 0 }
+
+SpinButton
+============
+
+click on up
+
+dumpEvent: ScriptCode SpinButton_Scroll
+dumpEvent: ListenerType com.sun.star.awt.XAdjustmentListener
+dumpEvent: Listener methodname com.sun.star.awt.XAdjustmentListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.AdjustmentEvent) { { Source = (com.sun.star.uno.XInterface) 0x495c60b0 (ImplementationName = "com.sun.star.comp.toolkit.UnoSpinButtonControl") }, Value = (long) 1, Type = (com.sun.star.awt.AdjustmentType) ADJUST_LINE }
+
+click on down
+
+:dumpEvent: ScriptType VBAInterop
+dumpEvent: ScriptCode SpinButton_Scroll
+dumpEvent: ListenerType com.sun.star.awt.XAdjustmentListener
+dumpEvent: Listener methodname com.sun.star.awt.XAdjustmentListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.AdjustmentEvent) { { Source = (com.sun.star.uno.XInterface) 0x495c60b0 (ImplementationName = "com.sun.star.comp.toolkit.UnoSpinButtonControl") }, Value = (long) 0, Type = (com.sun.star.awt.AdjustmentType) ADJUST_LINE }
+
+
+so, can't tell if its up or down unless we maintain state
+
+ScrollBar
+============
+
+dumpEvent: ScriptType VBAInterop
+dumpEvent: ScriptCode Scrollbar_Scroll
+dumpEvent: ListenerType com.sun.star.awt.XAdjustmentListener
+dumpEvent: Listener methodname com.sun.star.awt.XAdjustmentListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.AdjustmentEvent) { { Source = (com.sun.star.uno.XInterface) 0x495c8ac8 (ImplementationName = "stardiv.Toolkit.UnoScrollBarControl") 
+
+so this is ok for _Scroll event
+
+DropButtonClick event in vba
+=============================
+Doesn't seem to be any thing to tell when a drop list appears, may need to modify the control :-(
+
+
+Dbl_Click
+==========
+
+dumpEvent: Source (com.sun.star.uno.XInterface) 0x47ff01f8
+dumpEvent: ScriptType VBAInterop
+dumpEvent: ScriptCode Button_MouseDown
+dumpEvent: ListenerType com.sun.star.awt.XMouseListener
+dumpEvent: Listener methodname com.sun.star.awt.XMouseListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.MouseEvent) { { { Source = (com.sun.star.uno.XInterface) 0x47fe54b0 (ImplementationName = "com.sun.star.comp.forms.OButtonControl") }, Modifiers = (short) 0 }, Buttons = (short) 1, X = (long) 77, Y = (long) 46, ClickCount = (long) 2, PopupTrigger = false }
+
+ClickCount, probably can use this for Dbl_Click, also maybe better to use same for single click ( instread of actionListener )
+
+MouseMove
+=========
+
+dumpEvent: Source (com.sun.star.uno.XInterface) 0x48497bb0
+dumpEvent: ScriptType VBAInterop
+dumpEvent: ScriptCode Button_MouseMove
+dumpEvent: ListenerType com.sun.star.awt.XMouseMotionListener
+dumpEvent: Listener methodname com.sun.star.awt.XMouseMotionListener
+dumpEvent: arguments;
+         [0] (com.sun.star.awt.MouseEvent) { { { Source = (com.sun.star.uno.XInterface) 0x413d0828 (ImplementationName = "com.sun.star.comp.forms.OButtonControl") }, Modifiers = (short) 0 }, Buttons = (short) 0, X = (long) 184, Y = (long) 35, ClickCount = (long) 0, PopupTrigger = false }
+
+X & Y are position from the topleft ( not sure if they are in points though )
+
+
+
+Summary
+===================
+
+Some intitial support for Form Controls provided in vba/patches
+
+At the moment _Change will happen when the Value property of the control changes, need to investigate further as to whether say changed or actionperformed might give the same result
+
+Spin_Up/Spin_Down ( not possible as far as I know without modifying the control )
+
+_Scroll supported
+
+_KeyPress should be possible to translate this (Done needs testing )
+
+_KeyUp should be possible to translate this (Done needs testing )
+
+_KeyDown should be possible to translate this (Done needs testing )
+
+_MouseMove should be possible to translate this (Done needs testing )
+
+_MouseUp should be possible to translate this (Done needs testing )
+
+_MouseDown should be possible to translate this (Done needs testing )
+
+_Dbl_Click should be possible to emulate this (Done needs testing )
+
+_DropButton ( can't see a way to support this without direct modification of the control )
+
+_Error ( nothing appropriate )
+
+_BeforeDropOrPaste ( unclear whether this is possible, cant see anyting in ooo re. controls for this )
+
+_BeforeDragOver ( may be possible with mouse dragged event )
+
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/cups-crash.txt
+++ openoffice.org-2.4.1/ooo-build/doc/cups-crash.txt
@@ -0,0 +1,203 @@
+When the cups server u access doesnt have rights for you to access, impress and writer 
+crashes
+
+Impress Crashes with the following stack trace.
+In the code, when  the warning dialog is made silent or if the option like "Fit to Window" is selected
+in the print dialog, then it works properly.
+
+It basically crashes from  the Execute of  AbstractSdPrintDlg_Impl which inherits ModalDialog.
+Writer too crashes the sameway in ImplPrnDlgUpdatePrinter.
+
+#0  0x40e77f13 in osl_incrementInterlockedCount () from ./libuno_sal.so.3
+#1  0x40b7f1c0 in String::Assign () from ./libtl680li.so
+#2  0x40230a4e in String::operator= (this=0xbfffdc20, rStr=@0x496ff6a4) at string.hxx:541
+#3  0x4085c06a in ImplPrnDlgUpdatePrinter (pPrinter=0x496ff588, pTempPrinter=0x0)
+    at /root/cvs/m79/ooo-build/build/src680-m79/svtools/source/dialogs/prnsetup.cxx:157
+#4  0x4086346e in PrintDialog::DataChanged () from ./libsvt680li.so
+#5  0x4033793c in Window::NotifyAllChilds () from ./libvcl680li.so
+#6  0x4016f599 in Application::NotifyAllWindows () from ./libvcl680li.so
+#7  0x403497a9 in ImplHandleSalSettings () from ./libvcl680li.so
+#8  0x40349e95 in ImplWindowFrameProc () from ./libvcl680li.so
+#9  0x4239c12b in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
+#10 0x41e8d852 in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
+#11 0x422c9221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#12 0x422cae87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#13 0x422cd5c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+#14 0x422cd6c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
+#15 0x41e8d9e2 in GtkXLib::Yield () from ./libvclplug_gtk680li.so
+#16 0x423a062f in X11SalInstance::Yield () from ./libvclplug_gen680li.so
+#17 0x4016ed62 in Application::Yield () from ./libvcl680li.so
+#18 0x402d56e0 in Dialog::Execute () from ./libvcl680li.so
+#19 0x46e9a8cb in AbstractSdPrintDlg_Impl::Execute (this=0x48c87e40)
+    at /root/cvs/m79/ooo-build/build/src680-m79/sd/source/ui/dlg/sddlgfact.cxx:139
+#20 0x46ab5b5b in sd::PrintManager::FitPageToPrinterWithDialog (this=0x44be6e88, pPrinter=0x470c5eb0, bSilent=false)
+    at /root/cvs/m79/ooo-build/build/src680-m79/sd/source/ui/view/PrintManager.cxx:775
+#21 0x46ab5454 in sd::PrintManager::DoPrint (this=0x44be6e88, pPrinter=0x470c5eb0, pPrintDialog=0x49898b10, bSilent=0 '\0')
+    at /root/cvs/m79/ooo-build/build/src680-m79/sd/source/ui/view/PrintManager.cxx:578
+#22 0x46ab8895 in sd::ViewShellBase::DoPrint () from ./libsd680li.so
+#23 0x440873cd in SfxViewShell::ExecPrint_Impl () from ./libsfx680li.so
+#24 0x4406ffd4 in SfxStubSfxViewShellExecPrint_Impl () from ./libsfx680li.so
+#25 0x440b68f3 in SfxDispatcher::Call_Impl () from ./libsfx680li.so
+#26 0x440b9159 in SfxDispatcher::PostMsgHandler () from ./libsfx680li.so
+#27 0x440b906e in SfxDispatcher::LinkStubPostMsgHandler () from ./libsfx680li.so
+#28 0x440dc2ee in SfxHintPoster::Event () from ./libsfx680li.so
+#29 0x440dc299 in SfxHintPoster::LinkStubDoEvent_Impl () from ./libsfx680li.so
+#30 0x4034936f in ImplHandleUserEvent () from ./libvcl680li.so
+#31 0x40349e9f in ImplWindowFrameProc () from ./libvcl680li.so
+#32 0x4239c12b in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
+#33 0x41e8d852 in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
+#34 0x422c9221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#35 0x422cae87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
+#36 0x422cd5c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
+
+
+Solution:
+
+there is SfxPrinter *mpPrinter pointer which is bogus. It means, that this is freed
+and later the same thing is used.
+
+>> SNIP
+Printer* ImplPrnDlgUpdatePrinter( Printer* pPrinter, Printer* pTempPrinter )
+{
+        XubString aPrnName;
+        if ( pTempPrinter )
+                aPrnName = pTempPrinter->GetName();
+        else
+                aPrnName = pPrinter->GetName(); /* CRASHES HERE BECAUSE pPrinter is bogus */
+                                                                                                                             
+        BOOL    bFound = FALSE;
+<< SNIP
+
+So this pPrinter which is of SfxPrinter * is freed somewhere.
+SfxPrinter is inherited from Printer (vcl/source/gdi/print.cxx)
+
+>>SNIP
+
+// class SfxPrinter ------------------------------------------------------
+                                                                                                                             
+class SFX2_DLLPUBLIC SfxPrinter : public Printer
+{
+private:
+        JobSetup                                aOrigJobSetup;
+        SfxItemSet*                             pOptions;
+        SfxPrinter_Impl*                pImpl;
+        BOOL                                    bKnown;
+                                                                                                                             
+
+<<SNIP
+
+So putting a break point into Printer::~Printer() at vcl/source/gdi/print.cxx
+
+>>SNIP
+Printer::~Printer()
+{
+        DBG_ASSERT( !IsPrinting(), "Printer::~Printer() - Job is printing" );
+        DBG_ASSERT( !IsJobActive(), "Printer::~Printer() - Job is active" );
+        DBG_ASSERT( !mpQPrinter, "Printer::~Printer() - QueuePrinter not destroyed" );
+        DBG_ASSERT( !mpQMtf, "Printer::~Printer() - QueueMetafile not destroyed" );
+                                                                                                                             
+    delete mpPrinterOptions;
+                                                                                                                           
+<<SNIP
+
+It reveals that it is freed from 
+
+sfx2/source/view/viewprn.cxx +348 is the place where it frees at
+SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter )
+
+>>SNIP
+
+        if ( aNewJobSetup != aOldJobSetup )
+        {
+            // JobSetup hat sich geaendert (=> App mu\s neu formatieren)
+            // pDocPrinter->SetOrigJobSetup( aNewJobSetup );
+            nChangedFlags |= SFX_PRINTER_JOBSETUP;
+        }
+                                                                                                                             
+        // alten, ver"anderten Printer behalten
+        pDocPrinter->SetPrinterProps( pNewPrinter );
+        delete pNewPrinter; // FREED FROM HERE.
+        }
+                                                                                                                             
+        if ( 0 != nChangedFlags )
+        // SetPrinter will delete the old printer if it changes
+        SetPrinter( pDocPrinter, nChangedFlags );
+        return pDocPrinter;
+<<SNIP
+
+Going slightly up the stack to its caller 
+SfxViewShell::ExecPrint_Impl at sfx2/source/view/viewprn.cxx +366
+I came to the conclusion, that the pointer is freed. But used later
+
+Lemme explain:
+
+>>SNIP
+               // if no arguments are given, retrieve them from a dialog
+                if ( !bIsAPI )
+                        {
+                    // PrinterDialog needs a temporary printer
+                                SfxPrinter* pDlgPrinter = pPrinter->Clone();
+                                nDialogRet = 0;
+                                if ( SID_PRINTDOC == nId )
+                                {
+<<SNIP.
+
+In the above function pDlgPrinter is cloned from pPrinter.
+
+>>SNIP
+                                // set printer on dialog and execute
+                                                pPrintDlg->SetPrinter( pDlgPrinter );
+                                ::DisableRanges( *pPrintDlg, pDlgPrinter );
+                                                nDialogRet = pPrintDlg->Execute();
+<<SNIP
+
+That cloned pointer is set as the printer to pPrintDlg <NOTE THIS POINT !!!>
+and the window is executed.
+
+>>SNIP
+                        // take the changes made in the dialog
+                                        pPrinter = SetPrinter_Impl( pDlgPrinter );
+                                                                                                                             
+                        // forget new printer, it was taken over (as pPrinter) or deleted
+                        pDlgPrinter = NULL;
+
+<<SNIP
+This code frees pDlgPrinter inside the function SetPrinter_Impl which is the place
+the pointer is freed as explained above.
+
+But remember though the pDlgPrinter is freed and NULLed, but the pPrintDlg still points
+to the freed location of pDlgPrinter.
+
+>>SNIP
+               if ( bDontModifyDoc && bOldFlag != pObjSh->IsEnableSetModified() )
+                    pObjSh->EnableSetModified( bOldFlag );
+                                                                                                                             
+                        GetObjectShell()->Broadcast( SfxPrintingHint( -1, pPrintDlg, pPrinter ) );
+                        ErrCode nError = DoPrint( pPrinter, pPrintDlg, bSilent );
+                        if ( nError == PRINTER_OK )
+                        {
+
+<<SNIP
+
+At this place still pPrintDlg points to the pDlgPrinter freed location, which on exec
+crashes.
+
+Now i added 
+
+>>SNIP
+
+                        // take the changes made in the dialog
+                                        pPrinter = SetPrinter_Impl( pDlgPrinter );
+                                                                                                                             
+                        // forget new printer, it was taken over (as pPrinter) or deleted
+                        pDlgPrinter = NULL;
+                        /* Now lets reset the Dialog printer, since its freed */
+                        pPrintDlg->SetPrinter (pPrinter);
+                                                                                                                             
+    
+<<SNIP
+
+which should solve the problem
+
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/memory.txt
+++ openoffice.org-2.4.1/ooo-build/doc/memory.txt
@@ -0,0 +1,1193 @@
+TODO:
+    + hard-code the few truly useful text encoding
+      translations into sal - and dlopen the rest on demand (?)
+
+    + Size saving ideas:
+	+ invstigate rtl::OUString bits
+	    + can we whack them into
+	      const sections (?)
+	    + [ magic 'no ref-count' bit (?) ]
+		+ whack some flags in the ref-count.
+	    + can we create a SAL_CONST_USTRING("")
+	      macro ? [ cross-platform ? ]
+	+ unloading shlibs (?!) [ dupping nice then but ... ]
+
+    + 2nd soffice - pages in *everything* - urgh ...
+	+ we lost what we didn't need - and ... bang ...
+
+    + re-generate memory.sxw / memory.txt
+	+ memory figures are broken without this.
+
+    + Generate a run-time library-dependency picture/chart ...
+	+ make it easy to re-generate.
+
+Overall memory usage:
+
+    + savings by size:
+	+ 5Mb from .rdb re-work
+	+ ~3Mb from i18npool (?)
+	    + put all _en in 1 lib, all _es in 1 etc.
+	+ 400k - bogus .comment sections
+	+ 400k - sndfile etc. bits - & 2 libs on startup
+	+ 330k - total Sfx Slot size (etc.)
+	    + [ plus some stubs ]
+	+ 208k - remove avmedia
+	+ 80k - run-time filter cache storage (to OString)
+
+
++ Document load:
+	+ do 'on-demand' data conversion for embedded objects [!?]
+	+ better quality, better performance etc. [!?]
+
+** Overall source section break down **
+
+Section size breakdown
+ code            55808kb - 49%
+ linking         16294kb - 14%
+ data            13840kb - 13% - excluding .bss
+ exceptions      11903kb - 10%
+ data relocs      5712kb -  5%
+ symbols          1334kb - 1.2%
+ debug             737kb - 0.65%
+ versioning        470kb - 0.41%
+ misc              140kb - 0.12%
+ init/fini          12kb - 0.011%
+ c/d-tors            8kb - 0.0076%
+ Total: 116778352 bytes
+
+.comment - needs binutils to elide identical .comment sections ...
+
+** Best way to see data **
+
+Compile with symbols:
+
+objdump -t libpsp680li.so | grep '\.data'
+
+
++ libsw's .data section has a huge scad of:
+  from 0x7cf41c - GCC: 4.0.2 ...
+  to   0x7d7f9c
+    + '.comment' section ... [ hmm ]
+
+Large .data offenders:
+ + i18npool.uno.so   - 2967kb
+ + libdict_zh	     - 2209kb
+ + libdict_ja	     - 1024kb
+ + libsw	     -  545kb - **
+ + libsc             -  407kb
+ + libsd             -  315kb 
+ + libpsp            -  310kb - **  - xlat unicode -> MS mapping, 'NO_MAPPERS' ?
+ + liblocaledata_others 297kb
+ + libxo	     -  262kb - lots of xml tokens & strings
+ + slideshow.uno.so  -  211kb - **
+ + configmgr2.uno.so -  181kb
+ + libtk             -  176kb
+ + libdbu	     -  138kb
+ + libdbtools        -  121kb
+
+Memory shrinkage: to start 2,553,127 bytes
+    + types.rdb ...
+    + reduce bogus usage of services.rdb
+
+** Images.zip
+    + check the compression algorithms &
+      the 'store data behind 0 alpha' state ...
+
+** Real (allocated) memory usage is tiny 
+    + code size is large & painful
+
+** Looking at eg. libsvx:
+Section size breakdown
+ code            5207kb - 54%
+ linking         1533kb - 16%
+ eh frame?        860kb -  9%
+ data             624kb - 6.5%
+ data relocs      553kb - 5.8%
+ debug            516kb - 5.4%
+ exceptions       246kb - 2.6%
+ versioning        39kb - 0.41%
+ comment           27kb - 0.28%
+
+ Total: 9840975 bytes
+> ls -l libsvx680li.so
+-rwxr-xr-x  1 michael users 14303406 2005-10-26 16:28 libsvx680li.so
+
+    Why is there a 4MB difference between the sum of the section
+sizes & the overall size ?
+
+
+    + memprof shows only ~2.5Mb of 'real' memory usage ...
+	+ quick look at shrinking it ...
+	+ desktop::Desktop::OpenSplashScreen() 
+	    + IntroWindow::IntroWindow - 145k - all gtk+ related
+
+	+ framework::AutoRecovery::implts_readConfig - 130k
+	    + filter::config::FilterCache::load ...
+		+ filter::config::FilterCache::impl_loadSet
+			+ CacheItem hash table ... stl foo ... [124k]
+
+		+ filter/source/config/filtercache.cxx (impl_loadSet):
+			(*pCache)[pItems[i]] = ...
+			[ hash table ? ]
+				+ big old hash table ... [ lots of entries ? ]
+
+Non-shared in memory:
+
+Size/kB	NAME
+17,256	svx/...libsvx680li.so
+16,354	sw/...libsw680li.so
+8,926	/lib/libc.so.6
+6,151	svtools/...libsvt680li.so
+6,136	xmloff/...libxo680li.so
+5,984	offapi/.../types.db
+5,329	sfx2/...libsfx680li.so
+5,161	instsetoo_native/.../images_industrial.zip
+5,107	vcl/...libvcl680li.so
+4,416	services.rdb
+4,313	toolkit/...libtk680li.so
+3,921	i18npool/...i18npool.uno.so
+3,789	libicudata.so.26.0
+3,523	configmgr/...configmgr2.uno.so
+3,344	framework/...libfwk680li.so
+1,991	libuno_sal.so.3
+1,954	connectivity/...libdbtools680li.so
+1,747	comphelper/...libcomphelp4gcc3.so
+1,461	basic/...libsb680li.so
+1,408	svtools/...libsvl680li.so
+1,224	psprint/...libpsp680li.so
+1,154	libicui18n.so.26.0
+1,101	/usr/lib/libcrypto.so.0.9.7
+1,052	/opt/OOInstall/help/en/swriter.db
+998	libstlport_gcc.so
+994	libdb-4.2.so
+973	unotools/...libutl680li.so
+962	tools/...libtl680li.so
+949	/usr/lib/libstdc++.so.5.0.6
+924	/opt/OOInstall/help/en/swriter.ht
+878	libucpchelp1.so
+858	vcl/...libvclplug_gen680li.so
+853	linguistic/...liblng680li.so
+842	xmlscript/...libxcr680li.so
+827	ucbhelper/...libucbhelper3gcc3.so
+819	libicuuc.so.26.0
+769	framework/...libfwe680li.so
+721	ucb/...ucpgvfs1.uno.so
+667	goodies/...libgo680li.so
+544	sot/...libsot680li.so
+525	basegfx/...libbasegfx680li.so
+519	package/...libpackage2.so
+487	soffice.bin
+485	ucb/...libucpfile1.so
+481	libuno_cppuhelpergcc3.so.3
+471	/usr/lib/libfontconfig.so.1.0.4
+466	/usr/lib/libfreetype.so.6.3.5
+461	/opt/gnome/lib/libbonobo-2.so.0.0.0
+438	/opt/gnome/lib/libgnomevfs-2.so.0.601.0
+407	/lib/libpthread.so.0
+406	package/...libxstor.so
+385	filter/...libfilterconfig1.so
+384	/opt/gnome/lib/libORBit-2.so.0.0.0
+376	stoc/...regtypeprov.uno.so
+365	/lib/ld-2.3.3.so
+361	shell/...gconfbe1.uno.so
+354	ucb/...libucb1.so
+353	svx/unxlngi4.pro/bin/svx680en-US.res
+343	dtrans/...libdtransX11680li.so
+330	libsndfile.so.1.0.9
+317	framework/...libfwi680li.so
+315	/opt/gnome/lib/libatk-1.0.so.0.0.0
+290	vcl/...libvclplug_gtk680li.so
+272	sw/unxlngi4.pro/bin/sw680en-US.res
+269	sax/...sax.uno.so
+267	libuno_cppu.so.3
+259	/opt/gnome/lib/libgobject-2.0.so.0.400.6
+247	/opt/gnome/lib/libgconf-2.so.4.1.0
+245	desktop/...libspl680li.so
+233	/opt/gnome/lib/libpango-1.0.so.0.400.1
+232	stoc/...typemgr.uno.so
+231	stoc/...servicemgr.uno.so
+230	uui/...libuui680li.so
+227	/usr/lib/libldap.so.199.3.4
+217	/usr/lib/libssl.so.0.9.7
+210	libicule.so.26.0
+208	avmedia/...libavmedia680li.so
+207	/usr/X11R6/lib/X11/fonts/truetype/thowr___.ttf
+204	/usr/lib/locale/en_GB.utf8/LC_CTYPE
+203	/lib/libresolv.so.2
+192	i18npool/...liblocaledata_en.so
+187	extensions/...ldapbe2.uno.so
+182	vos/...libvos3gcc3.so
+172	framework/...libfwl680li.so
+168	svtools/...svtmisc.uno.so
+167	stoc/...security.uno.so
+158	libreg.so.3
+156	/usr/lib/libexpat.so.0.5.0
+147	sfx2/unxlngi4.pro/bin/sfx680en-US.res
+144	libstore.so.3
+141	/lib/libnss_files.so.2
+138	/lib/librt.so.1
+135	stoc/...uriproc.uno.so
+134	/usr/lib/libjpeg.so.62.0.0
+131	svtools/...fsstorage.uno.so
+127	libjvmfwk.so.3
+123	/usr/lib/libcups.so.2
+108	stoc/...implreg.uno.so
+103	fileaccess/...libfileacc.so
+99	stoc/...nestedreg.uno.so
+98	stoc/...simplereg.uno.so
+96	/usr/X11R6/lib/libICE.so.6.3
+95	configmgr/...sysmgr1.uno.so
+91	/usr/lib/libsasl2.so.2.0.18
+89	/opt/gnome/share/locale/en_GB/LC_MESSAGES/gtk20-properties.mo
+83	/usr/X11R6/lib/libXft.so.2.1.1
+80	/lib/libcrypt.so.1
+77	bridges/...libgcc3_uno.so
+70	i18nutil/...libi18nutilgcc3.so
+69	/lib/libz.so.1.2.1
+66	configmgr/...behelper.uno.so
+66	/usr/X11R6/lib/libXext.so.6.4
+59	stoc/...typeconverter.uno.so
+57	dtrans/...libmcnttype.so
+56	/usr/lib/liblber.so.199.3.4
+53	/opt/gnome/lib/libpangox-1.0.so.0.400.1
+52	shell/...localebe1.uno.so
+51	/lib/libdl.so.2
+50	/opt/gnome/lib/gtk-2.0/engines/libindustrial.so
+47	svtools/unxlngi4.pro/bin/svt680en-US.res
+43	stoc/...shlibloader.uno.so
+39	/lib/libgcc_s.so.1
+39	/usr/X11R6/lib/libXcursor.so.1.0.2
+38	sj2/...libj680li_g.so
+37	/usr/X11R6/lib/libSM.so.6.0
+36	/opt/gnome/lib/memprof/libmemintercept.so
+36	/usr/lib/libstartup-notification-1.so.0.0.0
+34	/usr/X11R6/lib/libXi.so.6.0
+33	/usr/X11R6/lib/libXrender.so.1.2.2
+32	/opt/gnome/share/locale/en_GB/LC_MESSAGES/gtk20.mo
+31	svx/unxlngi4.pro/bin/ofa680en-US.res
+31	/usr/lib/libpopt.so.0.0.0
+29	libportaudio.so.0.0.18
+28	/opt/gnome/lib/libORBitCosNaming-2.so.0.0.0
+23	libjvmaccessgcc3.so.3
+22	libuno_salhelpergcc3.so.3
+22	/opt/gnome/lib/libpangoxft-1.0.so.0.400.1
+21	svx/unxlngi4.pro/bin/ooo680en-US.res
+21	/usr/lib/gconv/gconv-modules.cache
+20	/usr/X11R6/lib/libXxf86vm.so.1.0
+18	/opt/gnome/lib/libgthread-2.0.so.0.400.6
+13	vcl/unxlngi4.pro/bin/vcl680en-US.res
+13	/usr/X11R6/lib/libXrandr.so.2.0
+13	/opt/gnome/lib/libgmodule-2.0.so.0.400.6
+12	/opt/OOInstall/program
+11	desktop/unxlngi4.pro/bin/dkt680en-US.res
+9	/opt/gnome/lib/pango/1.4.0/modules/pango-basic-fc.so
+7	/usr/X11R6/lib/X11/locale/lib/common/xlcUTF8Load.so.2
+6	/usr/lib/gconv/ISO8859-1.so
+2	/usr/lib/locale/en_GB.utf8/LC_TIME
+1	/usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+
+
+** SDI Slots
+    * sw:
+
+007b2400 l     O .data  00001194              aSwBaseShellSlots_Impl
+007b50a0 l     O .data  00001194              aSwDrawTextShellSlots_Impl
+007b92c0 l     O .data  000039a8              aSwTextShellSlots_Impl
+007c6920 l     O .data  000037c8              aSwWebTextShellSlots_Impl
+007caf60 l     O .data  00001824              aSwWebViewSlots_Impl
+007ccaa0 l     O .data  00001f2c              aSwViewSlots_Impl
+
+    + looks like the .sdi slot info has a large cost ... ]
+
+aSwBaseShellSlots_Impl eg.
+    sw/swslots.hxx:
+#define SFX_SLOTMAP_ARG(ShellClass) static SfxSlot __FAR_DATA a##ShellClass##Slots_Impl[] =
+    + memory chew is:
+	+ [SfxSlot]:
+	    + 2+2+4+4+2+2+4+4+4+4+4+4+4+4+2+4+4
+	    + == 5*2 + 12*4 = 58bytes [say 60 ;-]
+	+ how many slots ?
+	    + 1355 in swslots.hxx
+		+ 81k
+	    + Total -5111 == 306K
+grep SFX_NEW_SLOT_ARG */unxlngi6.pro/inc/*slots*.hxx | wc -l
+5111
+#define SFX_ARGUMENTMAP(ShellClass) static SfxFormalArgument __FAR_DATA a##ShellClass##Args_Impl[] =
+	+ SfxFormalArgument == 10bytes.
+grep SFX_ARGUMENTMAP */unxlngi6.pro/inc/*slots*.hxx | wc -l
+2396
+	=> 24k
+
+
+** libsvx - the bloat-king ...
+
+    + Why / How could it possibly be so big ?
+    + what of it isn't used much ?
+	+ cutting code out is hard:
+	+ if *something* in libsw needs it ...
+	    + what is the solution ?
+	    + yet more modularity ?
+	    + UNO components ?
+
+    + Can we have 'base' pieces in svx ?
+	+ and impl. pieces elsewhere ?
+	+ code break-down by directory size ...
+	    + code size ? file size ?
+
+$ cat > pat
+*.src
+$ du -b -X ./pat * | grep -v '/' | sort -n
+
+6212    init
+18199   gengal
+22147   mnuctrls
+32823   src
+38283   svxlink
+40565   intro
+44856   stbctrls
+51757   unogallery
+66194   toolbars
+100726  unodialogs
+117713  svrtf
+131409  xml
+154090  options
+173234  outliner
+349369  gallery2
+400116  unoedit
+429906  tbxctrls
+502922  fmcomp
+508433  sdr
+589702  customshapes
+612951  xoutdev
+678797  items
+685524  unodraw
+695427  accessibility
+724752  engine3d
+741794  inc
+1066371 msfilter
+1400303 editeng
+1656212 form
+2666721 svdraw
+5410880 dialog
+
+	+ it looks like most of the size is in dialog/
+
++ Can we split a load of code out of libraries ?
+    + could we do 'clever' things in the linker ?
+	+ 'in-another-shlib' feature ?
+	    + everything not on startup - 'in another' ...
+		+ or ... an 'LD_PRELOAD' full of stubs ?
+    + want to hook XYZ ?
+	+ fine to 'link' to it, as long as we don't 'use' it ...
+	+ which of these dialogs are really used ?
+	+ which are really important ?
+
+*** Dialogs
+    + if all the _application_ logic has split
+      out 'abstract' dialogs
+	+ eg. writer, calc etc.
+	+ surely - we can now split the dialog bases out of svx ...
+	    + do we win ? can we keep them out of startup ?
+    + chop dialogs.lib & form.lib out:
+	+ items, form, dialogs
+
+*** If we can't pull out what is not used,
+    *** Can we pull in what is used ?
+	*** 'libsvx-startup.so' ? ... ;-)
+
+
++ Gun for [ both in libsvx core ]:
+
+    + 'Form' logic - how much API does that expose ?
+	+ looks somewhat uno-ized anyway ...
+
+	+ Most of the form headers -appear- to be internal ...
+	    + ... hmm ...
+    + Dialog logic - ditto.
+
+cui - what is that ?
+    + cuiexp.obj
+    + dlgfact.obj
+
+Section size breakdown
+ code            5207kb - 37%
+ linking         1533kb - 11%
+ exceptions      1107kb - 7.9%
+ data             611kb - 4.4%
+ data relocs      553kb -  4%
+ debug            516kb - 3.7%
+ versioning        39kb - 0.28%
+ comment           27kb - 0.2%
+ bss               13kb - 0.094%
+
+    + lots of symbols ...
+
+** Sound foo
+
+    + Sound bits:
+	+ bin libraries from search path
+	+ size savings:
+		330k - libsndfile.so.1.0.9
+		29k - libportaudio.so.0.0.18
+	+ framework's 'soundhandler' appears unused.
+	    + no hits for 'SoundHandler' in *.so
+	    + (except in QA project)
+	+ sd needs a little work ...
+
+
+Nasty:
+    + debug why existing sound foo not working ...
+    + add dummy for Sound::IsSoundFile [...]
+	+ can we use avmedia ?
+	+ should we move the audio stuff here ?
+	+ WTF. is that being linked / used at startup ?
+	    + it's a crazy thing ! ;-)
+		+ [ helper code presumably ]
+	+ avmedia needs a head-less player service
+	    + it needs to work nicely ;-)
+	    + needs to be able to detect media files ...
+
+
+    Binary file libsd680li.so matches
+	sd/source/ui/dlg/filedlg.cxx - IsSoundFile
+	sd/source/ui/views/drviewse.cxx - 
+
+    Binary file libsc680li.so matches - 'IsSoundFile'
+	sc/source/ui/view/tabvwshg.cxx
+    Binary file libsw680li.so matches - 'IsSoundFile'
+	sw/source/ui/shells/textdrw.cxx - cut/paste 'DispatchURLInternal' [hmm]
+
+Ok:
+    Binary file libbasctl680li.so matches
+    Binary file libsb680li.so matches
+    Binary file libsts680li.so matches
+    Binary file libsvt680li.so matches
+    Binary file libvcl680li.so matches
+    Binary file libsvx680li.so matches
+    Binary file libfwk680li.so matches
+
+
+** i18npool foo:
+
+    + source/registerservices.cxx:
+	+ registers loads of _ja etc. cruft.
+	    + split into a 'western.so' ? - easy to do ...
+	    + but where is the size data ? ...
+		+ LocaleData ?
+	+ The Localedata:
+	    + source/localedata/
+	    + pDLL
+	    + 'getFunctionSymbolByName' etc.
+		+ liblocaledata_en
+		    + exports lots of symbols.
+	    + *why*
+		+ liblocaledata_others loaded ?
+		+ -en- is way smaller ...
+
+	    + hack registry / services foo ..
+
+    + split out Asian bits ...
+	+ copy svx/source/dialog/makefile.mk
+	
+	+ calc 'break-iterator' sizes ...
+	    + generated OpenOffice_icu_dat.c stuff ?
+	    + 'OpenOffice_dict_word_brk' etc.
+
+00075840 l     O .rodata        000065f8              OpenOffice_dict_word_brk
+0006f140 l     O .rodata        000066f8              OpenOffice_dict_word_hu_brk
+0007be40 l     O .rodata        00006f80              OpenOffice_edit_word_brk
+000610e0 l     O .rodata        00007ec8              OpenOffice_count_word_brk
+00082dc0 l     O .rodata        0000ac70              OpenOffice_line_brk
+00068fc0 l     O .rodata        00006180              OpenOffice_dict_word_ca_brk
+
+Binary file OpenOffice_dict_word_brk.o matches
+Binary file OpenOffice_icu_dat.o matches
+
+
++ The com.sun.star.i18n.IndexEntrySupplier
+	+ not used at startup / in euro locales [ apparently ]
++ i18n.TextConversion
+	+ ditto ...
+
+
++ Why - no i18n services activated ?
+    + or are they ?
+
+What we load on startup:
+
+'com.sun.star.i18n.BreakIterator'
+'com.sun.star.i18n.BreakIterator_en'
+'com.sun.star.i18n.BreakIterator_en_US'
+'com.sun.star.i18n.BreakIterator_Unicode'
+'com.sun.star.i18n.Calendar_gregorian'
+'com.sun.star.i18n.CharacterClassification'
+'com.sun.star.i18n.CharacterClassification_en'
+'com.sun.star.i18n.CharacterClassification_en_US'
+'com.sun.star.i18n.CharacterClassification_Unicode'
+'com.sun.star.i18n.Collator'
+'com.sun.star.i18n.Collator_alphanumeric'
+'com.sun.star.i18n.Collator_en_alphanumeric'
+'com.sun.star.i18n.Collator_en_US_alphanumeric'
+'com.sun.star.i18n.Collator_Unicode'
+'com.sun.star.i18n.LocaleCalendar'
+'com.sun.star.i18n.LocaleData'
+'com.sun.star.i18n.NumberFormatMapper'
+'com.sun.star.i18n.Transliteration'
+
+'IndexEntry' - unused ...
+
++ Collator - interface bits.
++ LocaleData - interface bits.
+
+
+i#57229
+
+31770 write(2, "CreateInstanceWithContext \'com.sun.star.i18n.Transliteration\'\n", 62) = 62
+31770 write(2, "CreateInstanceWithContext \'com.sun.star.loader.SharedLibrary\'\n", 62) = 62
+31770 write(2, "CreateInstanceWithContext \'com.sun.star.i18n.LocaleData\'\n", 57) = 57
+31770 mmap2(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x46abf000
+31770 mmap2(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x46acf000
+31770 mmap2(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x46adf000
+31770 mmap2(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x46aef000
+31770 mmap2(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x46aff000
+31770 write(2, "CreateInstanceWithContext \'com.sun.star.loader.SharedLibrary\'\n", 62) = 62
+31770 write(2, "CreateInstanceWithContext \'com.sun.star.loader.SharedLibrary\'\n", 62) = 62
+31770 open("./tls/i686/sse2/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./tls/i686/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./tls/sse2/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./tls/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./i686/sse2/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./i686/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./sse2/libi18npool_asian.uno.so", O_RDONLY) = -1 ENOENT (No such file or directory)
+31770 open("./libi18npool_asian.uno.so", O_RDONLY) = 34
+31770 read(34, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\251\1\0004\0\0\0\0\225/\0\0\0\0\0004\0 \0\5\0(\0\"\0\37\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\370\201\36\0\370\201\36\0\5\0\0\0\0\20\0\0\1\0\0\0\370\201\36\0\370\221\36\0\370\221\36\0\30\0\21\0p!\21\0\6\0\0\0\0\20\0\0\2\0\0\0\220\210\36\0\220\230\36\0\220\230\36\0H\1\0\0H\1\0\0\6\0\0\0\4\0\0\0P\345td\34\310\35\0\34\310\35\0\34\310\35\0004\34\0\0004\34\0\0\4\0\0\0\4\0\0\0Q\345td\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\4\0\0\0\257\3\0\0\354\1\0\0"..., 512) = 512
+31770 fstat64(34, {st_mode=S_IFREG|0755, st_size=3327460, ...}) = 0
+
+
+#0  0x408824c7 in cppu::loadSharedLibComponentFactory () from ./libuno_cppuhelpergcc3.so.3
+#1  0x42077ff3 in component_getFactory () from /nld/suse-opt/OOInstall.normal/program/shlibloader.uno.so
+#2  0x4087b828 in cppu::ORegistryFactoryHelper::createModuleFactory () from ./libuno_cppuhelpergcc3.so.3
+#3  0x4087bcb5 in cppu::ORegistryFactoryHelper::createInstanceEveryTime () from ./libuno_cppuhelpergcc3.so.3
+#4  0x4087a24f in cppu::OSingleFactoryHelper::createInstanceWithContext () from ./libuno_cppuhelpergcc3.so.3
+#5  0x4087a307 in cppu::OFactoryComponentHelper::createInstanceWithContext () from ./libuno_cppuhelpergcc3.so.3
+#6  0x4087a486 in cppu::OSingleFactoryHelper::createInstance () from ./libuno_cppuhelpergcc3.so.3
+#7  0x4087a55d in cppu::OFactoryComponentHelper::createInstance () from ./libuno_cppuhelpergcc3.so.3
+#8  0x45688bd9 in loadBody (xSMgr=@0x46abc184, implName=@0xbf8be3a8, body=@0x46abc118)
+    at /nld/opt/suse-OpenOffice/src680-m133/i18npool/source/transliteration/transliterationImpl.cxx:612
+#9  0x45688e74 in com::sun::star::i18n::TransliterationImpl::loadModuleByName (this=0x46abc0f8, implName=@0xbf8be3ec, body=@0x46abc118, 
+    rLocale=@0x46abbd80) at /nld/opt/suse-OpenOffice/src680-m133/i18npool/source/transliteration/transliterationImpl.cxx:632
+#10 0x45686c01 in com::sun::star::i18n::TransliterationImpl::loadModule (this=0x46abc0f8, modType=1280, rLocale=@0x46abbd80)
+    at /nld/opt/suse-OpenOffice/src680-m133/i18npool/source/transliteration/transliterationImpl.cxx:216
+#11 0x40647421 in utl::TransliterationWrapper::loadModuleImpl () from ./libutl680li.so
+#12 0x40647545 in utl::TransliterationWrapper::loadModuleIfNeeded () from ./libutl680li.so
+#13 0x400a0785 in vcl::I18nHelper::~I18nHelper () from ./libvcl680li.so
+#14 0x400a0905 in vcl::I18nHelper::MatchString () from ./libvcl680li.so
+
+
+** VM wasteage **
+	+ pthread_attr_set_stacksize (&attr, stack_size);
+		+ pthread_create (&attr) etc...
+	    + sal/osl/unx/thread.c - 
+
+static gulong g_thread_min_stack_size = 0;
+
+#ifdef _SC_THREAD_STACK_MIN
+  g_thread_min_stack_size = MAX (sysconf (_SC_THREAD_STACK_MIN), 0);
+#endif /* _SC_THREAD_STACK_MIN */
+
+#ifdef HAVE_PTHREAD_ATTR_SETSTACKSIZE
+  if (stack_size)
+    {
+      stack_size = MAX (g_thread_min_stack_size, stack_size);
+      /* No error check here, because some systems can't do it and
+       * we simply don't want threads to fail because of that. */
+      pthread_attr_setstacksize (&attr, stack_size);
+    }
+#endif /* HAVE_PTHREAD_ATTR_SETSTACKSIZE */
+
+       Target threads:
+       + need a 'push-policy' type thing ...
+	    + push-thread-stack-policy, pop-thread-stack-policy...
+**            desktop::OfficeIPCThread::run ()
+		    + desktop/source/app/officeipcthread.hxx
+			vos::OThread ...
+			pThread->create() etc.
+**	      X11SalInstance::CreateSalSession ()
+		    + vcl/unx/source/app/sm.cxx /osl_createSuspendedThread/
+	      vos::OTimerManager::run ()
+		    + looks like a mess ...
+		    + 'onShot' could do anything => do not shrink stack
+
+#0  0x41000fb8 in poll () from /lib/tls/libc.so.6
+#1  0x441894e8 in ?? () from ./libdtransX11680li.so
+#2  0x441895af in ?? () from ./libdtransX11680li.so
+#3  0x408e2ea4 in osl_thread_start_Impl () from ./libuno_sal.so.3
+#4  0x40d6c107 in start_thread () from /lib/tls/libpthread.so.0
+	    + where does this thread come from ?
+
++ ImpEditEngine
+    + how many of these do we have ?
+    + loads of wasted non-bitfield sal_Bools ...
+
+
+
+PMap command:
+    + pmap `ps ax | grep soffice | grep -v ps | sed 's/pts.*//'` | tail -n 3
+
+Before:
+Total:   155044K  54952K  15700K
+65660K writable-private, 74776K readonly-private, and 14608K shared
+
+After:
+Total:   131224K  55020K  15720K
+41840K writable-private, 74776K readonly-private, and 14608K shared
+
+
+~600k ?
+OMultiTypeInterfaceContainer
+    + cppuhelper/source/ ... has a hash ...
+
+250k ?
+vcl's: FtFontInfo
+    vcl/source/glyphs/gcach_ftyp.hxx
+	[ allocate idly ? ]
+
+
+_hash_map.h:
+  hash_map() : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
+
+_hashtable.h:
+  hashtable(size_type __n,
+..
+  {
+    _M_initialize_buckets(__n);
+  }
+
+  void _M_initialize_buckets(size_type __n)
+  {
+    const size_type __n_buckets = _M_next_size(__n);
+    _M_buckets.reserve(__n_buckets);
+    _M_buckets.insert(_M_buckets.end(), __n_buckets, (void*) 0);
+    _M_num_elements._M_data = 0;
+  }
+
+# define __PRIME_LIST_BODY { \
+  53ul,         97ul,         193ul ...
+
+    so - either 97 entries, or 193 - prolly the latter.
+
+    ** The -Smallest- hash is 53 items **
+
+    [ can calc from saving (?) ;-] 
+
+OMulti.log ...
+
+41832K writable-private, 74920K readonly-private, and 14608K shared
+41820K writable-private, 74920K readonly-private, and 14608K shared
+
+after:
+
+41336K writable-private, 74920K readonly-private, and 14608K shared
+41332K writable-private, 74920K readonly-private, and 14608K shared
+
+
+* FtFontInfo
+    + constructor - very bad. 251672 ...
+
+'Create new Font Info: 162'
+'Created hashes for' - only 1 font on startup of writer.
+
+Saves 2*192*162*4 bytes = 250kb.
+
+* fontcfg.cxx:
+
+before:
+
+41816K writable-private, 74920K readonly-private, and 14608K shared
+41812K writable-private, 74920K readonly-private, and 14608K shared
+
+after:
+
+41228K writable-private, 74920K readonly-private, and 14608K shared
+41224K writable-private, 74920K readonly-private, and 14608K shared
+
+
+** Catching bad behavior ...
+
+    + add a 'match string with XYZ' in the strtmpl.c code
+	+ breakpoint on XYZ string.
+
+** ConfigMgr:
+
+    + wastage - adding 8 string back-comparison check,
+      no performance impact:
+
+before ...
+
+001271 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001304 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001363 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001338 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001300 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+after:
+
+001266 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001300 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001336 1 } PERFORMANCE - DesktopOpenClients_Impl()
+001309 1 } PERFORMANCE - DesktopOpenClients_Impl()
+
+       + however - strings still duplicated - somewhere - :-)
+
+* This is amazing: same/same but different ... 
+
+#0  __fscanf (stream=0xb6f2b440, format=0xb7457028 "") at fscanf.c:31
+#1  0xb743ea22 in checkFor (pStr=0xb1335698) at strtmpl.c:108
+#2  0xb7441c61 in rtl_string2UString (ppThis=0xb1c4a000, pStr=0xb3571b96 "", nLen=0, eTextEncoding=11, nCvtFlags=819) at ustring.c:620
+#3  0xb3554b6d in rtl::OUString::OUString () from ./libfilterconfig1.so
+#4  0xb3561535 in filter::config::FilterCache::impl_readPatchUINames () from ./libfilterconfig1.so
+#5  0xb3562a0e in filter::config::FilterCache::impl_loadItem () from ./libfilterconfig1.so
+#6  0xb3562eca in filter::config::FilterCache::impl_loadSet () from ./libfilterconfig1.so
+#7  0xb35630d7 in filter::config::FilterCache::impl_load () from ./libfilterconfig1.so
+#8  0xb3563504 in filter::config::FilterCache::load () from ./libfilterconfig1.so
+#9  0xb356adf3 in filter::config::LateInitThread::run () from ./libfilterconfig1.so
+#10 0xb356a7c9 in threadFunc () from ./libfilterconfig1.so
+#11 0xb742a068 in osl_thread_start_Impl () from ./libuno_sal.so.3
+#12 0xb710b1db in start_thread (arg=0xb1c4aba0) at pthread_create.c:306
+#13 0xb6ecb9ee in clone () from /lib/libc.so.6
+
+
+before:
+41076K writable-private, 73560K readonly-private, and 14608K shared
+41080K writable-private, 73560K readonly-private, and 14608K shared
+41084K writable-private, 73560K readonly-private, and 14608K shared
+after:
+40936K writable-private, 73552K readonly-private, and 14608K shared
+40812K writable-private, 73548K readonly-private, and 14608K shared
+40924K writable-private, 73552K readonly-private, and 14608K shared
+
+140k - saved.
+
+* 'Type':
+
+#0  __fscanf (stream=0xb6f6d440, format=0xb7499048 "") at fscanf.c:31
+#1  0xb7480a3b in checkFor (pStr=0x8121058) at strtmpl.c:109
+#2  0xb7483a98 in rtl_string2UString (ppThis=0xbfad4770, pStr=0x811b586 "", nLen=0, eTextEncoding=76, nCvtFlags=819) at ustring.c:555
+#3  0xb5c4eb03 in typereg_reader_getFieldName () from ./libreg.so.3
+#4  0xb50d99f6 in typereg::Reader::getFieldName () from /data/OODInstall/program/regtypeprov.uno.so
+#5  0xb50db974 in stoc_rdbtdp::CompoundTypeDescriptionImpl::getMemberNames () from /data/OODInstall/program/regtypeprov.uno.so
+#6  0xb50e7f02 in stoc::registry_tdprovider::StructTypeDescription::getMemberNames () from /data/OODInstall/program/regtypeprov.uno.so
+#7  0xb7668d71 in cppu::installTypeDescriptionManager () from ./libuno_cppuhelpergcc3.so.3
+
+or:
+* (gdb) bt 10
+#0  __fscanf (stream=0xb6f6d440, format=0xb7499048 "") at fscanf.c:31
+#1  0xb7480a3b in checkFor (pStr=0x85c4fe0) at strtmpl.c:109
+#2  0xb7482290 in rtl_uString_newFromStr_WithLength (ppThis=0xbfad4610, pCharStr=0x85ad4e0, nLen=4) at strtmpl.c:1268
+#3  0xb4e5cdd0 in rtl::OUString::copy (this=0xbfad4644, beginIndex=0, count=4) at /opt/OpenOffice/ood680-m1/solver/680/unxlngi6.pro/inc/rtl/ustring.hxx:866
+#4  0xb4f3c043 in configmgr::configuration::(anonymous namespace)::implSplitCompositeName (_aCompositeName=@0xbfad46dc, _rBaseName=@0xbfad4694, 
+    _rPredicate=@0xbfad4698) at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/configpath.cxx:948
+#5  0xb4f3c5f6 in configmgr::configuration::Path::Component::getName (this=0xbfad46dc)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/configpath.cxx:256
+#6  0xb4f76511 in configmgr::configuration::TreeImpl::getSimpleRootName (this=0x85a8ea0)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/treeimpl.cxx:585
+#7  0xb4f6a51e in validatedName (aTree=@0xbfad47dc) at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/setnodeimpl.cxx:182
+#8  0xb4f6d0cc in configmgr::configuration::SetNodeImpl::implInitElement (this=0x85ca5a0, aNewElement=@0xbfad47dc)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/setnodeimpl.cxx:855
+#9  0xb4f6d387 in configmgr::configuration::SetNodeImpl::implInitElements (this=0x85ca5a0, _aNode=@0xbfad4844, nDepth=4294967295)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/setnodeimpl.cxx:842
+...
+#1  0xb7480a3b in checkFor (pStr=0x85c4aa0) at strtmpl.c:109
+#2  0xb7482290 in rtl_uString_newFromStr_WithLength (ppThis=0xbfad4610, pCharStr=0x85ab3c8, nLen=4) at strtmpl.c:1268
+#3  0xb4e5cdd0 in rtl::OUString::copy (this=0xbfad4644, beginIndex=0, count=4) at /opt/OpenOffice/ood680-m1/solver/680/unxlngi6.pro/inc/rtl/ustring.hxx:866
+#4  0xb4f3c043 in configmgr::configuration::(anonymous namespace)::implSplitCompositeName (_aCompositeName=@0xbfad46dc, _rBaseName=@0xbfad4694, 
+    _rPredicate=@0xbfad4698) at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/configpath.cxx:948
+#5  0xb4f3c5f6 in configmgr::configuration::Path::Component::getName (this=0xbfad46dc)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/configpath.cxx:256
+#6  0xb4f76511 in configmgr::configuration::TreeImpl::getSimpleRootName (this=0x85ae7c8)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/treeimpl.cxx:585
+#7  0xb4f76585 in configmgr::configuration::TreeImpl::getSimpleNodeName (this=0x85ae7c8, nNode=1)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/treeimpl.cxx:577
+#8  0xb4f5db04 in configmgr::configuration::Tree::getName (this=0xbfad47d0, aNode=@0xbfad47c8)
+    at /data/OpenOffice/ood680-m1/configmgr/source/treemgr/noderef.cxx:501
+#9  0xb4fe0064 in configmgr::configapi::CollectNodeNames::handle (this=0xbfad4998, aTree=@0xbfad47d0, aNode=@0xbfad47c8)
+    at /data/OpenOffice/ood680-m1/configmgr/source/api2/treeiterators.cxx:60
+
+... would you believe it - the Framework code ! :-) ...
+
+#0  __fscanf (stream=0xb6f6d440, format=0xb7499048 "") at fscanf.c:31
+#1  0xb7480a3b in checkFor (pStr=0x87ccbf8) at strtmpl.c:109
+#2  0xb7483c7a in rtl_string2UString (ppThis=0xbfad3694, pStr=0xb3d9cfa7 "", nLen=0, eTextEncoding=11, nCvtFlags=819) at ustring.c:620
+#3  0xb3d6b783 in rtl::OUString::OUString () from ./libfwe680li.so
+#4  0xb3d74bfe in framework::OReadMenuPopupHandler::startElement () from ./libfwe680li.so
+#5  0xb3d72a3b in framework::OReadMenuHandler::startElement () from ./libfwe680li.so
+#6  0xb3d72b9e in framework::OReadMenuBarHandler::startElement () from ./libfwe680li.so
+#7  0xb3d72421 in framework::OReadMenuDocumentHandler::startElement () from ./libfwe680li.so
+#8  0xb3d76037 in framework::SaxNamespaceFilter::startElement () from ./libfwe680li.so
+#9  0xb4d360dc in sax_expatwrap::SaxExpatParser_Impl::callbackStartElement () from ./sax.uno.so
+#10 0xb4d36213 in call_callbackStartElement () from ./sax.uno.so
+#11 0xb5ee2fef in XML_ParserCreate () from /usr/lib/libexpat.so.1
+#12 0xb5ee3e2d in XML_ParserCreate () from /usr/lib/libexpat.so.1
+#13 0xb5ee4ee4 in XML_ParserCreate () from /usr/lib/libexpat.so.1
+#14 0xb5ee5db5 in XML_ParserCreate () from /usr/lib/libexpat.so.1
+#15 0xb5edd62b in XML_ParseBuffer () from /usr/lib/libexpat.so.1
+#16 0xb5ee6292 in XML_Parse () from /usr/lib/libexpat.so.1
+#17 0xb4d346ce in sax_expatwrap::SaxExpatParser_Impl::parse () from ./sax.uno.so
+#18 0xb4d34f6c in sax_expatwrap::SaxExpatParser::parseStream () from ./sax.uno.so
+#19 0xb3d712c1 in framework::MenuConfiguration::CreateMenuBarConfigurationFromXML () from ./libfwe680li.so
+#20 0xb3ad5db9 in framework::ModuleUIConfigurationManager::impl_requestUIElementData () from ./libfwk680li.so
+#21 0xb3ad6ee3 in framework::ModuleUIConfigurationManager::impl_findUIElementData () from ./libfwk680li.so
+#22 0xb3ad7ca4 in framework::ModuleUIConfigurationManager::getSettings () from ./libfwk680li.so
+#23 0xb3ab092e in framework::MenuBarWrapper::initialize () from ./libfwk680li.so
+#24 0xb3adb888 in framework::MenuBarFactory::createUIElement () from ./libfwk680li.so
+#25 0xb3ab6a34 in framework::UIElementFactoryManager::createUIElement () from ./libfwk680li.so
+#26 0xb3a98817 in framework::LayoutManager::implts_createElement () from ./libfwk680li.so
+#27 0xb3a98e22 in framework::LayoutManager::createElement () from ./libfwk680li.so
+
+incidence Name                   size	wasted
+~350      Type                     16   5584
+548       UIName                   20  10940
+368       CommandURL               28  10276
+351       HelpURL                  22   7700
+347       Label                    18   6228
+281       ItemDescriptorContainer  54  15120
+                                Total 55,848
+
+** Config Mgr - Urgh [!?]
+
+// not these guys:
+source/backendhelper/backendlayerhelper.cxx:		rtl::OUString aName = aPropInfo.Name.getToken(0, '/',nNextToken);
+source/backendhelper/backendlayerhelper.cxx:	rtl::OUString aName = aPropertyInfos[0].Name.getToken(0, '/',nNextToken);
+
+source/xml/elementformatter.cxx:			    OUString aNodeName = _aName.copy(nIndex + 1);
+source/xml/elementformatter.cxx:		            OUString aPackage = _aName.copy(0, nIndex);
+source/treemgr/templateimpl.cxx:	OUString sTypeName = aName.toString();
+
+* We need to chase eg. 'LabelType' here
+
+0  __fscanf (stream=0xb6fca440, format=0xb74f6028 "") at fscanf.c:31
+#1  0xb74dda22 in checkFor (pStr=0x85c9da0) at strtmpl.c:108
+#2  0xb74df277 in rtl_uString_newFromStr_WithLength (ppThis=0xbfaf3d30, pCharStr=0x85b575c, nLen=6) at strtmpl.c:1267
+#3  0xb4fc9c12 in rtl::OUString::OUString () from ./configmgr2.uno.so
+#4  0xb50791a8 in configmgr::sharable::readString () from ./configmgr2.uno.so
+#5  0xb507c649 in configmgr::sharable::NodeInfo::getName () from ./configmgr2.uno.so
+#6  0xb5037930 in configmgr::data::SetNodeAccess::getName () from ./configmgr2.uno.so
+#7  0xb5036a48 in configmgr::configuration::TreeImplBuilder::addSet () from ./configmgr2.uno.so
+#8  0xb5036b1e in configmgr::configuration::TreeImplBuilder::handle () from ./configmgr2.uno.so
+#9  0xb507d830 in configmgr::data::NodeVisitor::Dispatcher::dispatch () from ./configmgr2.uno.so
+
+
+ pmap `ps ax | grep soffice | grep -v ps | sed 's/pts.*//'` | tail -n 1
+
+before:
+
+40688K writable-private, 74536K readonly-private, and 14608K shared
+40728K writable-private, 75428K readonly-private, and 14608K shared
+40592K writable-private, 74536K readonly-private, and 14608K shared
+
+after:
+
+40348K writable-private, 75244K readonly-private, and 14608K shared
+40408K writable-private, 75428K readonly-private, and 14608K shared
+40360K writable-private, 75376K readonly-private, and 14608K shared
+
+
+** Filter code:
+      5 writer_AportisDoc_PalmDB_File
+      5 writer_DocBook_File
+      5 writer_Lotus_1_2_3_10_DOS_StarWriter
+      5 writer_Lotus_1_2_3_10_WIN_StarWriter
+      5 writer_LotusWordPro_Document
+      5 writer_MS_WinWord_5
+      5 writer_MS_WinWord_60
+      8 writer8_template
+      8 writer_globaldocument_StarOffice_XML_Writer_GlobalDocument
+      8 writer_JustSystem_Ichitaro_10
+      8 writer_JustSystem_Ichitaro_10_template
+      8 writer_MIZI_Hwp_97
+     12 com.sun.star.comp.Writer.XmlFilterAdaptor
+     12 com.sun.star.frame.StartModule
+     12 com.sun.star.script.BasicIDE
+     12 com.sun.star.sdb.DataSourceBrowser
+     12 com.sun.star.sdb.QueryDesign
+     12 com.sun.star.sdb.RelationDesign
+    108 UIOrder
+    109 ClipboardFormat
+    109 Preferred
+    109 URLPattern
+    166 FileFormatVersion
+    167 FilterService
+    167 UIComponent
+    169 DocumentService
+    169 UserData
+    175 TemplateName
+    501 x-default - (xml:lang attribute)
+    + 
+
+
+configmgr: use ustring stuff...
+
+before:
+
+40788K writable-private, 73644K readonly-private, and 15032K shared
+40856K writable-private, 73644K readonly-private, and 15032K shared
+40868K writable-private, 73644K readonly-private, and 15032K shared
+40852K writable-private, 73644K readonly-private, and 15032K shared
+40860K writable-private, 73644K readonly-private, and 15032K shared
+
+memprof: 10576000, 10579000, 10577000 = 10577000
+
+after:
+
+39880K writable-private, 74620K readonly-private, and 15032K shared
+39876K writable-private, 74620K readonly-private, and 15032K shared
+31692K writable-private, 74616K readonly-private, and 15032K shared
+31820K writable-private, 74616K readonly-private, and 15032K shared
+31700K writable-private, 74616K readonly-private, and 15032K shared
+
+memprof: 9742000, 9742000, 9742000  - avg. 9742000
+
+Saving = 7% of memory, >800k
+
+re-worked configmgr piece [ multi-cache ]:
+
+saved readName 'Properties'
+Saved 30977 strings 880646 bytes
+saved readName 'cfg:localized'
+
+
+
+* configmgr::Subtree::addChild(INode *)
+
+* where do these come from:
+    110 cfg:value
+    112 cfg:any
+    285 cfg:localized
+    286 cfg:string
+
+#21 0xb7e26b84 in vcl::DefaultFontConfiguration::DefaultFontConfiguration () from ./libvcl680li.so
+#22 0xb7e26ef3 in vcl::DefaultFontConfiguration::get () from ./libvcl680li.so
+
+
+* share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_impressgraphics_filters.xcu:
+  <value xml:lang="x-default">BMP - Windows Bitmap</value>
+
+
+1  0xb74d62e6 in breakPoint () from ./libuno_sal.so.3
+#2  0xb74d72b6 in rtl_uString_newFromStr () from ./libuno_sal.so.3
+#3  0xa3ce4c03 in OUString (this=0xbfd77efc, value=0x814dd20) at /opt/OpenOffice/ood680-m4/solver/680/unxlngi6.pro/inc/rtl/ustring.hxx:168
+#4  0xa3dbed29 in configmgr::sharable::SetNode::allocTemplateData (_anAllocator=@0xbfd77f30, pName=0x814dd20, pModule=0x811c218)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/node.cxx:240
+#5  0xa3dba933 in configmgr::data::ConvertingDataTreeBuilder::makeTemplateData (this=0xbfd78034, _aTemplateName=@0x8145f9c, _aTemplateModule=@0x8145fa0)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:1010
+#6  0xa3dbb93c in configmgr::data::ConvertingDataTreeBuilder::handle (this=0xbfd78034, _aNode=@0x8145f88)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:895
+#7  0xa3dcf1af in configmgr::ISubtree::dispatch (this=0x8145f88, anAction=@0xbfd78034) at ../inc/valuenode.hxx:230
+#8  0xa3c8037b in configmgr::NodeAction::applyToNode (this=0xbfd78034, aNode=@0x8145f88) at ../inc/valuenode.hxx:316
+#9  0xa3dbc09c in configmgr::data::ConvertingDataTreeBuilder::buildElement (this=0xbfd78034, _aNode=@0x8145f88, _aTypeName=@0xbfd7813c, _bWithDefaults=true)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:867
+#10 0xa3dbc128 in configmgr::data::ConvertingDataTreeBuilder::ElementListBuilder::handleNode (this=0xbfd78130, _aSourceNode=@0x8145f88)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:1032
+#11 0xa3dbc19e in configmgr::data::ConvertingDataTreeBuilder::ElementListBuilder::handle (this=0xbfd78130, _aSourceNode=@0x8145f88)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:1046
+#12 0xa3dcf1af in configmgr::ISubtree::dispatch (this=0x8145f88, anAction=@0xbfd78130) at ../inc/valuenode.hxx:230
+#13 0xa3dce680 in configmgr::Subtree::forEachChild (this=0x8146340, anAction=@0xbfd78130) at /data/OpenOffice/ood680-m4/configmgr/source/tree/cmtree.cxx:298
+#14 0xa3c8039d in configmgr::NodeAction::applyToChildren (this=0xbfd78130, aSubtree=@0x8146340) at ../inc/valuenode.hxx:318
+#15 0xa3dba8b9 in configmgr::data::ConvertingDataTreeBuilder::ElementListBuilder::buildElementList (this=0xbfd78130, _aSet=@0x8146340, _bWithDefaults=true)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:1023
+#16 0xa3dbba22 in configmgr::data::ConvertingDataTreeBuilder::handle (this=0xbfd782a4, _aNode=@0x8146340)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:902
+#17 0xa3dcf1af in configmgr::ISubtree::dispatch (this=0x8146340, anAction=@0xbfd782a4) at ../inc/valuenode.hxx:230
+#18 0xa3dce680 in configmgr::Subtree::forEachChild (this=0x814ae18, anAction=@0xbfd782a4) at /data/OpenOffice/ood680-m4/configmgr/source/tree/cmtree.cxx:298
+#19 0xa3c8039d in configmgr::NodeAction::applyToChildren (this=0xbfd782a4, aSubtree=@0x814ae18) at ../inc/valuenode.hxx:318
+#20 0xa3dbba94 in configmgr::data::ConvertingDataTreeBuilder::handle (this=0xbfd782a4, _aNode=@0x814ae18)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:907
+#21 0xa3dcf1af in configmgr::ISubtree::dispatch (this=0x814ae18, anAction=@0xbfd782a4) at ../inc/valuenode.hxx:230
+#22 0xa3c8037b in configmgr::NodeAction::applyToNode (this=0xbfd782a4, aNode=@0x814ae18) at ../inc/valuenode.hxx:316
+#23 0xa3dbbefe in configmgr::data::ConvertingDataTreeBuilder::buildTree (this=0xbfd782a4, _aTreeName=@0x814ae1c, _aNode=@0x814ae18, _bWithDefaults=true)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:882
+#24 0xa3dbbf7b in configmgr::data::buildTree (_aTargetMemory=@0xbfd78450, _aTreeName=@0x814ae1c, _aNode=@0x814ae18, _bWithDefaults=true)
+    at /data/OpenOffice/ood680-m4/configmgr/source/tree/builddata.cxx:449
+#25 0xa3c320a9 in configmgr::CacheLine::setComponentData (this=0x814c528, _aAccessToken=@0xbfd78450, _aComponentInstance=@0xbfd78390, _bWithDefaults=true)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheline.cxx:227
+#26 0xa3c2ccfc in configmgr::ExtendedCacheData::addComponentData (this=0x80d7d54, _aUpdateToken=@0xbfd78450, _aComponentInstance=@0x81c7728, 
+    _bWithDefaults=true) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachedata.cxx:503
+#27 0xa3c27fb8 in configmgr::CacheLoadingAccess::addComponentData (this=0x80d7d48, _aAccessToken=@0xbfd78450, _aComponentInstance=@0x81c7728, 
+    _bIncludesDefaults=true) at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cacheaccess.cxx:341
+#28 0xa3c3ac58 in configmgr::backend::CacheController::loadComponent (this=0x810f5e0, _aRequest=@0xbfd78508)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/cachecontroller.cxx:459
+#29 0xa3c4328a in configmgr::TreeManager::requestSubtree (this=0x810fe10, aSubtreePath=@0xbfd78650, _aOptions=@0xbfd786c0)
+    at /data/OpenOffice/ood680-m4/configmgr/source/treecache/treemanager.cxx:344
+#30 0xa3d559c1 in configmgr::OProviderImpl::requestSubtree (this=0x80eca48, aSubtreePath=@0xbfd78650, _aOptions=@0xbfd786c0)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:428
+#31 0xa3d56192 in configmgr::OProviderImpl::buildReadAccess (this=0x80eca48, _rAccessor=@0xbfd786d8, _aOptions=@0xbfd786c0, nMinLevels=-1)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/providerimpl.cxx:581
+#32 0xa3d5bbad in configmgr::OConfigurationProviderImpl::createReadAccess (this=0x80eca48, aArgs=@0xbfd787d4)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/confproviderimpl2.cxx:108
+#33 0xa3d58e2e in configmgr::OConfigurationProvider::createInstanceWithArguments (this=0x80ec2c8, aServiceSpecifier=@0xbfd787f8, aArguments=@0xbfd787d4)
+    at /data/OpenOffice/ood680-m4/configmgr/source/api2/confprovider2.cxx:364
+#34 0xb7e2eb84 in vcl::DefaultFontConfiguration::DefaultFontConfiguration () from ./libvcl680li.so
+
+      3 iname: 'cfg:string-list'
+      3 iname: 'ContentHandler'
+      3 iname: 'ControllerType'
+      3 iname: 'FrameLoader'
+      3 iname: 'HistoryType'
+      3 iname: 'MenuType'
+      4 iname: 'LabelType'
+      4 iname: 'MenuItem'
+     25 iname: 'MultiPath'
+     64 iname: 'cfg:any'
+   2576 iname: 'cfg:string'
+
+* Next '.uno' strings ...
+
+grep '\.uno:' /tmp/strlog8-sorted | wc -l
+1134
+
+#0  __fscanf (stream=0xb6f86440, format=0xb74aad26 "") at fscanf.c:31
+#1  0xb74992c9 in breakPoint () from ./libuno_sal.so.3
+#2  0xb7499e1e in rtl_string2UString () from ./libuno_sal.so.3
+#3  0xa3abc245 in rtl::OUString::OUString () from ./sax.uno.so
+#4  0xa3abb00a in sax_expatwrap::SaxExpatParser_Impl::callbackStartElement () from ./sax.uno.so
+#5  0xa3abb213 in call_callbackStartElement () from ./sax.uno.so
+#6  0xb5b62e28 in doContent (parser=0x86dc2a0, startTagLevel=0, enc=0xb5bb5320, 
+    s=0x86e136c "<menu:menuitem menu:id=\".uno:Undo\"/>\n\t\t\t<menu:menuitem menu:id=\".uno:Redo\"/>\n\t\t\t<menu:menuitem menu:id=\".uno:Repeat\"/>\n\t\t\t<menu:menuseparator/>\n\t\t\t<menu:menuitem menu:id=\".uno:Cut\"/>\n\t\t\t<menu:menuitem"..., end=0x86e4a80 "\216He\003\021\004", nextPtr=0x86dc2b8, 
+    haveMore=1 '\001') at lib/xmlparse.c:2366
+#7  0xb5b6246c in contentProcessor (parser=0x86dc2a0, start=0xb6f8685c "@d%Gï¿½%@d%Gï¿½%@200e%Gï¿½%@, end=0xb6f8685c "@d%Gï¿½%@d%Gï¿½%@200e%Gï¿½%@, endPtr=0xb6f8685c)
+    at lib/xmlparse.c:2002
+#8  0xb5b6503c in doProlog (parser=0x86dc2a0, enc=0xb5bb5320, 
+    s=0x86e0aa7 "<menu:menubar xmlns:menu=\"http://openoffice.org/2001/menu\" menu:id=\"menubar\">\n\t<menu:menu menu:id=\".uno:PickList\">\n\t\t<menu:menupopup>\n\t\t\t<menu:menuitem menu:id=\".uno:AddDirect\"/>\n\t\t\t<menu:menuitem men"..., end=0x86e4a80 "\216He\003\021\004", tok=29, 
+    next=0x86e0aa7 "<menu:menubar xmlns:menu=\"http://openoffice.org/2001/menu\" menu:id=\"menubar\">\n\t<menu:menu menu:id=\".uno:PickList\">\n\t\t<menu:menupopup>\n\t\t\t<menu:menuitem menu:id=\".uno:AddDirect\"/>\n\t\t\t<menu:menuitem men"..., nextPtr=0x86dc2b8, haveMore=1 '\001') at lib/xmlparse.c:3803
+#9  0xb5b64e51 in prologProcessor (parser=0x86dc2a0, 
+    s=0x86e0a80 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<menu:menubar xmlns:menu=\"http://openoffice.org/2001/menu\" menu:id=\"menubar\">\n\t<menu:menu menu:id=\".uno:PickList\">\n\t\t<menu:menupopup>\n\t\t\t<menu:menuitem menu:id=\""..., end=0x86e4a80 "\216He\003\021\004", nextPtr=0x86e7de0)
+    at lib/xmlparse.c:3551
+#10 0xb5b61c56 in XML_ParseBuffer (parser=0x86dc2a0, len=16384, isFinal=0) at lib/xmlparse.c:1562
+#11 0xa3ab96ce in sax_expatwrap::SaxExpatParser_Impl::parse () from ./sax.uno.so
+#12 0xa3ab9f6c in sax_expatwrap::SaxExpatParser::parseStream () from ./sax.uno.so
+#13 0xa2afc381 in framework::MenuConfiguration::CreateMenuBarConfigurationFromXML () from ./libfwe680li.so
+#14 0xa285fdb9 in framework::ModuleUIConfigurationManager::impl_requestUIElementData () from ./libfwk680li.so
+#15 0xa2860ee3 in framework::ModuleUIConfigurationManager::impl_findUIElementData () from ./libfwk680li.so
+#16 0xa2861ca4 in framework::ModuleUIConfigurationManager::getSettings () from ./libfwk680li.so
+#17 0xa283a92e in framework::MenuBarWrapper::initialize () from ./libfwk680li.so
+#18 0xa2865888 in framework::MenuBarFactory::createUIElement () from ./libfwk680li.so
+#19 0xa2840a34 in framework::UIElementFactoryManager::createUIElement () from ./libfwk680li.so
+#20 0xa2822817 in framework::LayoutManager::implts_createElement () from ./libfwk680li.so
+#21 0xa2822e22 in framework::LayoutManager::createElement () from ./libfwk680li.so
+
+#0  __fscanf (stream=0xb6f86440, format=0xb74aad26 "") at fscanf.c:31
+#1  0xb74992c9 in breakPoint () from ./libuno_sal.so.3
+#2  0xb7499b09 in rtl_uString_newConcat () from ./libuno_sal.so.3
+#3  0xb7499f0c in rtl_uString_newReplaceStrAt () from ./libuno_sal.so.3
+#4  0xb78380e6 in rtl::OUString::replaceAt () from ./libtl680li.so
+#5  0xb7838121 in INetURLObject::SubString::set () from ./libtl680li.so
+#6  0xb7838174 in INetURLObject::SubString::set () from ./libtl680li.so
+#7  0xb78381c1 in INetURLObject::SubString::set () from ./libtl680li.so
+#8  0xb783415b in INetURLObject::setAbsURIRef () from ./libtl680li.so
+#9  0xa27ebf5c in INetURLObject::INetURLObject () from ./libfwk680li.so
+
+#10 0xa28b1057 in framework::CmdImageList::impl_fillCommandToImageNameMap () from ./libfwk680li.so
+#11 0xa28b11fe in framework::CmdImageList::getImageFromCommandURL () from ./libfwk680li.so
+#12 0xa28b1283 in framework::GlobalImageList::getImageFromCommandURL () from ./libfwk680li.so
+#13 0xa28b1bc0 in framework::ModuleImageManager::getImages () from ./libfwk680li.so
+#14 0xa288dd54 in framework::ToolBarManager::RequestImages () from ./libfwk680li.so
+#15 0xa2891172 in framework::ToolBarManager::FillToolbar () from ./libfwk680li.so
+#16 0xa288b5e9 in framework::ToolBarWrapper::initialize () from ./libfwk680li.so
+#17 0xa28896a8 in framework::ToolBoxFactory::createUIElement () from ./libfwk680li.so
+#18 0xa2840a34 in framework::UIElementFactoryManager::createUIElement () from ./libfwk680li.so
+#19 0xa2822817 in framework::LayoutManager::implts_createElement () from ./libfwk680li.so
+#20 0xa2822a9f in framework::LayoutManager::createElement () from ./libfwk680li.so
+#21 0xa281ee7c in framework::LayoutManager::requestElement () from ./libfwk680li.so
+
+#0  __fscanf (stream=0xb6f86440, format=0xb74aad26 "") at fscanf.c:31
+#1  0xb74992c9 in breakPoint () from ./libuno_sal.so.3
+#2  0xb749a12e in rtl_uString_newFromStr_WithLength () from ./libuno_sal.so.3
+#3  0xa27d161c in rtl::OUString::copy () from ./libfwk680li.so
+#4  0xa27fdb54 in framework::URLTransformer::parseStrict () from ./libfwk680li.so
+
+#5  0xa2cf23ae in SfxStatusListener::SfxStatusListener () from ./libsfx680li.so
+#6  0xa155ea14 in SfxStyleControllerItem_Impl::SfxStyleControllerItem_Impl () from ./libsvx680li.so
+#7  0xa15657fd in SvxStyleToolBoxControl::initialize () from ./libsvx680li.so
+#8  0xa289039b in framework::ToolBarManager::CreateControllers () from ./libfwk680li.so
+#9  0xa2891183 in framework::ToolBarManager::FillToolbar () from ./libfwk680li.so
+#10 0xa288b5e9 in framework::ToolBarWrapper::initialize () from ./libfwk680li.so
+#11 0xa28896a8 in framework::ToolBoxFactory::createUIElement () from ./libfwk680li.so
+#12 0xa2840a34 in framework::UIElementFactoryManager::createUIElement () from ./libfwk680li.so
+#13 0xa2822817 in framework::LayoutManager::implts_createElement () from ./libfwk680li.so
+#14 0xa2822a9f in framework::LayoutManager::createElement () from ./libfwk680li.so
+#15 0xa281ee7c in framework::LayoutManager::requestElement () from ./libfwk680li.so
+#16 0xa2c3209d in SfxWorkWindow::UpdateObjectBars_Impl () from ./libsfx680li.so
+#17 0xa2c3465d in SfxFrameWorkWin_Impl::UpdateObjectBars_Impl () from ./libsfx680li.so
+#18 0xa2ce6864 in SfxDispatcher::Update_Impl () from ./libsfx680li.so
+#19 0xa2bcbb72 in SfxApplication::SetViewFrame_Impl () from ./libsfx680li.so
+#20 0xa2ccac95 in SfxViewFrame::SetViewFrame () from ./libsfx680li.so
+#21 0xa2ccd444 in SfxViewFrame::MakeActive_Impl () from ./libsfx680li.so
+#22 0xa2cd8329 in SfxTopFrame::InsertDocument () from ./libsfx680li.so
+#23 0xa2bdd789 in SfxApplication::NewDocDirectExec_ImplOld () from ./libsfx680li.so
+#24 0xa2cbec93 in SfxFrameLoader_Impl::load () from ./libsfx680li.so
+#25 0xa286b1e4 in framework::LoadEnv::impl_loadContent () from ./libfwk680li.so
+#26 0xa286b3fc in framework::LoadEnv::startLoading () from ./libfwk680li.so
+#27 0xa286b5b6 in framework::LoadEnv::loadComponentFromURL () from ./libfwk680li.so
+#28 0xa27bd731 in framework::Desktop::loadComponentFromURL () from ./libfwk680li.so
+
+#0  __fscanf (stream=0xb6f86440, format=0xb74aad26 "") at fscanf.c:31
+#1  0xb74992c9 in breakPoint () from ./libuno_sal.so.3
+#2  0xb749a12e in rtl_uString_newFromStr_WithLength () from ./libuno_sal.so.3
+#3  0xb7823fda in rtl::OUString::OUString () from ./libtl680li.so
+#4  0xb7835411 in INetURLObject::decode () from ./libtl680li.so
+#5  0xa27fe2e5 in INetURLObject::decode () from ./libfwk680li.so
+#6  0xa27fe31a in INetURLObject::GetMainURL () from ./libfwk680li.so
+#7  0xa27fde85 in framework::URLTransformer::parseStrict () from ./libfwk680li.so
+
+#8  0xb7aaa016 in svt::ToolboxController::bindListener () from ./libsvt680li.so
+#9  0xb7aaa383 in svt::ToolboxController::update () from ./libsvt680li.so
+#10 0xa288e62d in framework::ToolBarManager::UpdateControllers () from ./libfwk680li.so
+#11 0xa288e6df in framework::ToolBarManager::AsyncUpdateControllersHdl () from ./libfwk680li.so
+#12 0xa288e73c in framework::ToolBarManager::LinkStubAsyncUpdateControllersHdl () from ./libfwk680li.so
+#13 0xb7d51176 in Link::Call () from ./libvcl680li.so
+#14 0xb7d5d820 in Timer::Timeout () from ./libvcl680li.so
+#15 0xb7d5d95a in Timer::ImplTimerCallbackProc () from ./libvcl680li.so
+
+... one copy coming in from the binary config cache ".uno:..." ...
+... at least one copy coming from the framework ...
+... one from parseStrict ? ...
+
+
++ configmgr -
+    + rtl::OUString(short *, long) -  396k
+    + configmgr::implReadPredicate -  218k
+    + SimpleReferenceObject        -  229k
+    + nodes (RBTree, hash, data)   - 1225k
+    + SimpleCheckingHeapMgr	   - 1375k
+	Total: 3443 ...
+
+* SfxNewHdl - allocates 1/2 Mb - to free it in
+  case of problems. - doesn't seem to be used.
+
+
++ re-use cppuhelper foo ..
+    + the interfacecontainer.cxx
+	+ the HelperInt32 - we have 392 of them - and ~none contain anything.
+	    + 'addInterface' - never called - load a doc: one or 2 entries.
+
++ saves 713k
+
+SalStrIntern:
+
+before: (K)
+
+Total:   446728 326580  22036
+Total:   446724 326576  22036
+Total:   446728 326572  22032
+
+after: (K)
+Total:   445872 325704  21164
+Total:   445868 325704  21164
+Total:   445868 325712  21168
+
+Saving:
+    + 860K ...
+
+
+** We should look at the 'Resource' files ...
+   + can we shrink these ?
--- openoffice.org-2.4.1.orig/ooo-build/doc/intro.txt
+++ openoffice.org-2.4.1/ooo-build/doc/intro.txt
@@ -0,0 +1,262 @@
+Introduction into ooo-build
+===========================
+
+ooo-build provides an "easy" way for building and developing custom builds
+of OpenOffice.org. It allows cooperation and work sharing of more vendors.
+
+ooo-build supports building OOo the standard way: configure, make, make install.
+It is able to apply lots of additional patches, hacks and fixes withing the
+build and installation process. One release of ooo-build can support more
+versions of OOo sources and more vendors. All the patches, hacks, etc. can
+be effectively reused and shared. Finally, the are some more scripts that
+are useful for developing OOo.
+
+
+Example build using ooo-build
+-----------------------------
+
+# get ooo-build, for example a released one from
+# http://go-ooo.org/packages/OOO680/ 
+
+tar -xzf ooo-build-<version>.tar.gz
+cd ooo-build-<version>
+
+./configure \
+    --with-distro=SUSE \
+    --with-vendor=Novell \
+    --prefix=/usr \
+    --with-installed-ooo-dirname=ooo-2.0
+    --enable-binfilter
+
+./download	# this is one non-standard helper command, we added it because
+		# there are many sources to be downloaded.
+		# First, the OOo sources are split into more tarballs.
+		# In addition, ooo-build is able to use some more extra
+		# sources to enable features that have not been accepted
+		# by the upstream yet
+
+make
+
+make install
+
+
+
+
+Configuration
+-------------
+
+ooo-build has it's own configure script that has the following functions:
+    - select vendor and distro for which the custom build is being done
+    - select the right version of OOo sources
+    - set some custom setting that is not supported by upstream, such as:
+	--prefix
+	--with-installed-ooo-dirname
+	--with-binsuffix
+	--with-max-jobs
+    - enable/disable some optional features that are not yet configurable by
+      upstream, for example:
+        --enable-access (access import pieces via mdbtools)
+	--with-openclipart (extra galleries from OpenClipArt)
+
+The configure script generates the following files from the *.in templates:
+    - download
+    - bin/setup
+    - distro-configs/*.conf
+    - scratch/place
+    - intltools*
+    - and lots Makefiles all over the ooo-build sources
+
+The tool download will be described later, see below.
+
+The file bin/setup is a simple shell script that sets and exports some
+shell variables. Many other ooo-build tools source this script to read
+the setting.
+
+The config files distro-configs/*.conf include config switches that are
+passed to the OOo native configure script during the build phase.
+distro-configs/Common.conf includes some common options, shared
+by all distributions. distro-configs/<vendor>.conf includes vendor
+specific options. There is one for each vendor.
+
+The script scratch/place helps to develop huge fixes for OOo via the copy of
+source files rather than by patches.
+
+intltools are three scripts that help us to update translations of some
+additional files. They are actually used only to update some desktop files.
+
+
+
+Downloading of ooo-build sources
+-------------------------------
+
+The released versions of ooo-build and almost all the additional sources
+can be download from http://go-ooo.org/packages/. Note that ooo-build
+currently uses its own repacked OOo sources that are split into more
+tarballs: binfilter, core, lang, sdk_oo, and system.
+
+There is the script "download" that is able to download all the necessary
+sources. It is generated by ooo-build/configure, see above.
+
+It currently downloads:
+    - the split OOo source tarballs
+    - two dll files for mono stuff
+    - slideshow html export icons
+    - mdbtools source tarball
+    - stripped down xt source zip
+    - etc.
+
+
+
+
+Unpacking, preparing sources
+----------------------------
+
+There are some preliminary actions that are done when "make" is called.
+
+1. bin/unpack is called. It is a simple shell script that unpacks all
+   the necessary tarballs into ooo-build/build directory or even into the
+   unpacked OOo source tree
+
+2. Thereafter "make" installs some extra artwork, like vendor specific bitmaps
+   for splash screen.
+
+3. Then the script bin/build-tools is called. It is able to build a special
+   version of gcc. It was used in the past to test build with gcc-3.4.
+
+4. Then patches/apply.pl is called. It applies all the selected patches, see
+   below for more details
+
+5. Finally, bin/transform is called. This shell script currently calls two
+   scripts that update the default lists of fonts:
+    * bin/font-munge
+    * bin/help-font-munge
+
+All these steps are reversible. It is very helpful, for example, for creating
+and testing incremental patches.
+
+
+Something more about patches
+- - - - - - - - - - - - - - -
+
+We currently have more than 500 patches. They are sorted into various
+directories below ooo-build/patch. Then there is a so-called apply file in
+ooo-build/patches/src680/. This file sorts patches into some more groups,
+for example:
+
+[ QuickStarter ]                                                                
+# An improved built-in quick-starter applet / systray thing. i#57872            
+speed-quickstart.diff                                                           
+# An improved built-in quick-starter applet / systray thing. i#57872            
+speed-quickstart-eggtray.diff                                                   
+
+
+Some patches could depend on the OOo source version, for example:
+
+[ TemporaryHacks < src680-m153 ]                                                
+# LD_LIBRARY_PATH should not end with a ":" N#118188, #55733                    
+ld-library-path.diff                                                            
+
+
+The apply file also allows to define groups of groups, for example:
+
+LinuxCommon : Common, BuildBitsLinuxOnly, LinuxOnly, SystemBits, CWSBackports, G
+              QPro, Lwp, cairocanvas, VBAObjects, msaccess, \                   
+              Safe64bit, FPickers, Mono, AddressBooks, QuickStarter, Shrink     
+
+
+Finally, it defines what groups should applied for which distro, for example:
+
+SUSE      : NovellBase, BerkeleyDB43                                            
+
+
+This approach helps us to share work with more distributions. The
+version-dependant patches are necessary because we do not want to force
+everyone to use the same OOo source snapshot at the same time. One snapshot
+is always set (in configure) as the default one but...
+
+
+
+Building
+--------
+
+The command "make" calls bin/build-ooo after the sources are unpacked, patched,
+and hacked.
+
+The main tasks of the script build-ooo are:
+    - run the OOo internal configure, see below* for more details
+    - source the generated *set.sh
+    - bootstrap OOo build
+    - build the module transex3 and update translations from extra GSI sources
+      if any available
+    - finish build
+
+In addition, there are some other build hacks and fixes, for example:
+    - export LANG="C"; export LD_ASSUME_KERNEL=2.2.5 to avoid problems with
+      Java on some platforms
+    - set extra flags for dmake to allow parallel build with icecream
+
+* The options for the OOo internal configure are read from bin/setup. It
+  combines options that are passed to the ooo-build/configure, and options
+  defined in ooo-build/distro-configs/*.conf
+
+
+
+
+Installation
+------------
+
+The command "make install" calls bin/package-ooo. This script has the
+following tasks:
+
+    - install OOo
+    - install extra wrappers into /usr/bin
+    - install man pages
+    - install vendor specific desktop files and icons
+    - install extra dictionaries
+    - install script for bash completion
+    - build openclipart galleries
+    - remove copies of the English help and rather create symlinks
+    - hacks file lists:
+	- rearrange subpackages
+	- add some RPM specific tags, such as %config, %dir
+	- remove RPM specific destdir
+
+Some of the tasks are vendor specific, so there are many tests, such as:
+    if test "z$VENDORNAME" != "zNovell" ; then 
+	...
+    fi
+
+Some of the functionality is put into standalone scripts, for example:
+    - bin/ooinstall
+    - bin/build-galleries
+    - bin/install-dictionaries
+
+
+
+Misc stuff
+----------
+
+Everything above was necessary to build and install the custom build of OOo.
+
+In addition there are some scripts that are helpful for developers, such as:
+    - bin/tunnel, bin/cws-commit-patch, bin/cws-extract, which are very helpful
+      for upstreaming patches and working with OOo cvs/CWS.
+    - bin/oosmoketest, bin/ootestapi, bin/ootesttool, bin/test-ooo,
+      bin/test-ooo-analyze, which might be useful for testing the custom build.
+      These are quite new, so it is still a work in progress.
+
+The directory ooo-build/scratch is used for developing huge fixes or features.
+It allows to keep the current state in cvs via files instead of patches.
+It is better because these kind of changes are usually developed a longer
+time by more developers, ...
+
+The directory ooo-build/stamp is used by makefile. It helps to define dependency
+between the various makefile targets.
+
+Finally, there are directories for some extra sources:
+    - ooo-build/desktop
+    - ooo-build/doc
+    - ooo-build/fonts
+    - ooo-build/man
+    - ooo-build/src
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/gconf.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gconf.txt
@@ -0,0 +1,37 @@
+Documents on Gconf Integration
+
+
+<michael_>     try
+<michael_>     {
+<michael_>         // Query XNameAccess interface of the
+<michael_> org.openoffice.Office.Common/ExternalMailer
+<michael_>         // configuration node to retriece the users preferred email
+<michael_> application. This may
+<michael_>         // transparently by redirected to e.g. the corresponding GConf
+<michael_> setting in GNOME.
+<michael_>         OUString aConfigRoot = OUString( 
+<michael_> RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.Office.Common/ExternalMailer" ) );
+<michael_> .
+<michael_> that is from shell/source/cmdmail/cmdmailsuppl.cxx or thereabouts I think.
+
+* shell/ Has a lot of code for gconf
+* Just a snip revealed that therz a backend class which is inherited by gconfbackend
+  which redirects configuration
+
+
+sabayon:
+    lockdown/maindialog.py:
+	+ beef this up & add glade bits.
+    pesulus.glade...
+
+Weird strings:
+
+Security:
+
+TODO:
+    + remove debug ...
+    + mail Sabayon list [ subscribe to it ? ]
+	+ tri-state issue ...
+	+ poke Vincent <foo>
+		+ pesulus - bah.
+		+ gamin ?o
--- openoffice.org-2.4.1.orig/ooo-build/doc/using-mysql-databases.txt
+++ openoffice.org-2.4.1/ooo-build/doc/using-mysql-databases.txt
@@ -0,0 +1,111 @@
+        Connecting to MySQL or ODBC driver with OOo
+        -------------------------------------------
+
+    This is a bit longer document which deals with all the steps to start using MySQL server. The document is long because of the cumbersome procedure to see the database :(
+
+1.  Install MySQL.
+    Get the sources/binaries from http://dev.mysql.com/.
+   
+    1.1 Start MySql server
+    
+        By default most of the operation system does not start this service.
+        #/etc/init.d/mysql start
+        it will ask you to create a login and password.
+        #/usr/bin/mysqladmin -u root -h 'your.machine.host.name' password '****'
+
+    1.2 Test the server
+    
+        #mysql 
+        #mysql> show databases;
+        #mysql> use test; //test is the default database that comes with mysql
+        #mysql> show tables; //Will be empty b'se by default there is no tables.
+
+    1.3 Create table and insert values
+    
+        #mysql> create table abc (Name varchar(20), age varchar(4));
+        #mysql> insert into abc values ('kid1','5');
+
+        Now repeat the steps in 1.2 will show the data.
+
+    1.4 Test the table
+
+        Use step 1.3 to create more entries
+        #mysql> select * from abc; //This will show all the entries :)
+
+
+        These steps are more than sufficient to know that you have a table up and running.
+
+2.  Installing mysql-ODBC connector
+
+    Chances of this package present in your OS will be less so follow the steps.
+    
+    2.1 Installing 
+    
+        Get the binaries/sources from http://dev.mysql.com/downloads/connector/odbc/3.51.html
+        For me the binaries worked :)
+        Assuming that binary file is download.
+    
+        #rpm -i --nosignature MyODBC-3.51.11-2.i586.rpm
+        Do not ask me why there is a "nosignature" it was cribbing for me :(
+    
+        This will create 2 files:
+        a> /etc/unixODBC/odbcinst.ini
+            [MySQL ]
+            DRIVER      = /usr/lib/libmyodbc3.so
+            SETUP       = /usr/lib/libmyodbc3S.so
+            UsageCount      = 1
+
+            This is an autogenerated file so DO NOT modify.
+
+        b> /etc/unixODBC/odbc.ini
+            This will be a blank file.
+
+            Put the following lines into this file!!
+
+            [MySQL-test]
+        Description = abc
+        Driver      = MySQL
+        Server      = localhost
+        Database    = test
+        Port        = 3306
+
+    2.2 Testing the Connector
+        # isql MySQL-test test
+    
+        A successful will show the following on the screen
+    
+        +---------------------------------------+
+        | Connected!                            |
+        |                                       |
+        | sql-statement                         |
+        | help [tablename]                      |
+        | quit                                  |
+        |                                       |
+        +---------------------------------------+
+        SQL>
+
+3.  Use OOo to connect to MySql Server
+    
+    3.1 Steps
+        - Open OOo
+        - File->new->database
+        - Select connect to exsisting database. Select MySql. Next
+        - Select connect using ODBC. Next
+        - Name of the Database sourse click on the Browse button will show "MySql-test".Next
+        - UserName : root. Choose Password required. Next 
+        //UserName and Password depends on the way you have configured MySql :)
+        - Finish.
+        - A popup dialog comes up give proper name ex: MySql-ODBC-data
+    
+    3.2 View the table
+        -Open OOo writer
+        - F4 will show "MySql-ODBC-data".
+
+4. Use OOo to connect to ODBC
+    This is similar to the MySql Connection
+    In the previous 3.1 Select connect to exsisting database. Select ODBC. Next
+    rest is same :)
+    
+5. Connect to remote MySQL server
+    Read "data-from-remote-mysql-server.txt" :)
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/nsplugin.txt
+++ openoffice.org-2.4.1/ooo-build/doc/nsplugin.txt
@@ -0,0 +1,28 @@
+nsplugin
+--------
+
+* consists of 2 files: libnpsoplugin.so and nsplugin, both are and should stay
+  in .../program
+
+* libnpsoplugin.so is the plugin for mozilla, needs to be registered at
+  mozilla. It calls nsplugin.
+
+* Two possibilities of enabling:
+	- users' choice: there's an option to enable it in OOo's options;
+	  OOo then creates a symlink from ~/.mozilla/plugins to that .so
+
+	- packagers choice: install symlinks in mozillas / firefox' plugin dir
+	  (/usr/lib/mozilla/plugins or /opt/mozilla/lib/plugins and
+	   /usr/lib/mozilla-forefox-plugins or /opt/MozillaFirefox/lib/plugins
+	   or whereever it lies on your system for Mozilla and Firefox)
+	  to that .so, affects everyone and is enabled in Mozilla.
+
+* Problems:
+	- what is the priority? mozplugger in Debian seems to supersede
+	  OOo's plugin if both are installed... Does mozilla have a
+	  priority system for the plugins?
+	  
+* problems found in src680_102:
+	- cannot be enabled globally by the system administrator, i#49590
+	- mozilla crashes if the document or tab is closed, i#49593
+	- the plugin eats all the events from keyboard, i#49595
--- openoffice.org-2.4.1.orig/ooo-build/doc/xhtml.txt
+++ openoffice.org-2.4.1/ooo-build/doc/xhtml.txt
@@ -0,0 +1,87 @@
+Bug n#90666
+
+** Chasing xhtml (non) exporting: generating a 0 length file:
+
+filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx:
+    + (exporter)
+      + calls '::exporter' on xsltfilter/XSLTFilter.cxx
+      + then creates an 'XExporter/XFilter'
+	    + [ com.sun.star.comp.Writer.XMLExporter ]
+	    + calls 'filter' & problems occur ...
+
+    + Everything goes really nicely until:
+	XSLTransformer.java:
+	    xostream.writeBytes(resultbuf.toByteArray());
+	we get an:
+	   com.sun.star.io.BufferSizeExceededException: 
+	   [ an OO.o exception ]
+	   
+BufferSizeExceededException: thrown by:
+     so3/source/persist/transprt.cxx, line 1192
+     ucb/source/ucp/file/filstr.cxx, line 228
+     comphelper/source/streaming/oslfile2streamwrap.cxx, line 93
+     comphelper/source/streaming/seqstream.cxx, line 137
+     configmgr/source/backend/binaryreader.cxx, line 254
+     io/source/stm/omark.cxx, line 669
+     sot/source/sdstor/ucbstorage.cxx, line 233
+     svtools/source/misc/strmadpt.cxx, line 413
+     unotools/source/streaming/streamhelper.cxx, line 89 [!]
+     unotools/source/streaming/streamwrap.cxx, line 140  [!]
+     unotools/source/ucbhelper/xtempfile.cxx, line 175   [!]
+     package/source/zipapi/EntryInputStream.cxx, line 127
+     package/source/zippackage/ZipPackageBuffer.cxx, line 93
+     filter/source/xmlfilteradaptor/streamwrap.cxx, line 102 [!]
+     
+     Most likely candidate:
+          io/source/stm/opipe.cxx, line 387
+
+     Unfortunately - we don't hit opipe.cxx 'writeBytes' where
+     we throw the exception ie.
+
+	System.out.println("XSLTransformer: D - size bytes " +
+			   resultbuf.toByteArray().length);
+	try {
+	    xostream.writeBytes(resultbuf.toByteArray());
+	} catch (java.lang.Throwable ex) {
+	    System.out.println ("Failed to write bytes " + ex);
+	}
+
+    Deep evilness gives us:
+
+XSLTransformer: D - size bytes 1354
+Failed to write bytes com.sun.star.io.BufferSizeExceededException: 
+
+       This turns out to be from:
+
+unohelper::OOutputStreamWrapper::writeBytes 1369 bytes
+Tried to write 1352 bytes wrote 0 -> errcode 3088 (0xc10) throw BufferSizefoo
+    + not the xmltransformerhelper stream thing ...
+	[ why is there a duplicate foo::OOutputStreamWrapper ? ]
+
+unotools/source/streaming/streamwrap.cxx, line 140  [!]
+
+errorcodes in tools/inc/errcode.hxx 0xc10
+#define ERRCODE_CLASS_SHIFT               8
+
+0xc10 == (<ERRCODE_CLASS_WRITE> << 8) | ERRCODE_IO_CANTWRITE ...
+
+      Why can't we write ?
+
+
+** Most likely the OOutputStreamWrapper holds a reference to a stream
+that no longer exists:
+
+sfx2/source/objstor.cxx (ExportTo):
+    pNewValue[i].Name = sOutputStream;
+    pNewValue[i].Value <<= com::sun::star::uno::Reference < com::sun::star::io::XOutputStream > ( new utl::OOutputStreamWrapper ( *rMedium.GetOutStream() ) );
+...
+    return xFilter->filter( aArgs );
+
+And at some stage *rMedium.GetOutStream() goes away ...
+
+* Can we add an 'waitCompleted' method to XExportFilter ...
+    + it's what we need ...
+
+* 'endDocument' is called:    
+    + we wait for m_cTransformed ...
+    + however - it gets signalled far, far too early...
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/git.txt
+++ openoffice.org-2.4.1/ooo-build/doc/git.txt
@@ -0,0 +1,34 @@
+MinGW git compilation
+---------------------
+
+- packages
+  - bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
+  - binutils-2.16.91-20060119-1.tar.gz - can be installed with MinGW
+  - gcc-core-3.4.2-20040916-1.tar.gz - can be installed with MinGW
+  - gcc-g++-3.4.2-20040916-1.tar.gz - can be installed with MinGW
+  - gdb-6.3-2.exe
+  - mingw-runtime-3.12.tar.gz
+  - mingw32-make-3.81-2.tar.gz
+  - MinGW-5.1.3.exe
+  - msysDTK-1.0.1.exe
+  - MSYS-1.0.11-2004.04.30-1.exe
+  - tcltk-8.4.1-1.exe
+  - unzip-5.51-1-bin.zip
+  - wget-1.9.1-mingwPORT.tar.bz2
+  - w32api-3.9.tar.gz
+  - zlib-1.2.3-mingwPORT-1.tar.bz2
+
+- installation order
+  - MinGW, to eg. X:\mingw
+  - MSYS, to eg. X:\msys
+    - in postinstall, give it the path to MinGW, eg. X:/mingw
+  - MSYS DTK
+  - edit X:\msys\msys.bat to get better font (size) and colors ;-)
+  - unpack bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 and copy bash.exe over
+    X:\msys\bin\sh.exe
+  - unpack mingw32-make-3.81-2.tar.gz and copy mingw-make.exe over
+    X:\msys\bin\make.exe
+  - copy wget.exe from wget-1.9.1-mingwPORT.tar.bz2 to /bin
+  - build & install zlib using zlib-1.2.3-mingwPORT-1.tar.bz2
+    - might need some tweaking
+  - untar w32api-3.9.tar.gz in /mingw
--- openoffice.org-2.4.1.orig/ooo-build/doc/shared-worksheet.txt
+++ openoffice.org-2.4.1/ooo-build/doc/shared-worksheet.txt
@@ -0,0 +1,157 @@
+Shared worksheets
+=================
+
+- Excel's feature description
+  - http://office.microsoft.com/en-us/assistance/HA010130571033.aspx
+
+- Proposal
+  - switch to shared workbook
+    - implies Edit -> Changes -> Record on
+  - on save do
+    - Merge Documents...
+    - resolve conflicts
+      - using the existing version dialog (but present just the conflicting
+	changes!)
+    - actual save
+
+- Potential troubles
+  - locking
+    - OOo does not have an API to lock a certain file on demand
+  - older OOo versions that are not aware of the shared documents
+    - they open the file and take the lock
+    - we have to provide the user with 'Save As' if we cannot obtain the lock
+      (we could issue a 'Waiting for other users to save the changes...'
+      dialog box with [Save As] and [Cancel] buttons.)
+
+-----------------------------------------------------------
+
+Change tracking in OOo - Calc
+
+- Edit -> Changes
+  - track changes in the document (who + what)
+  - Record              - FID_CHG_RECORD
+    - ScDocument::StartChangeTracking()
+    - sc/inc/document.hxx,
+      sc/source/core/data/documen2.cxx
+    - creates new ScChangeTrack()
+  - Protect Records,,,  - SID_CHG_PROTECT
+  - Show...             - FID_CHG_SHOW
+  - Accept or Reject... - FID_CHG_ACCEPT
+  - Comments...         - FID_CHG_COMMENT
+  - Merge Document...   - SID_DOCUMENT_MERGE
+
+- Edit -> Compare documents...
+  - SID_DOCUMENT_COMPARE
+  - generates a set of changes (even if the document does not have change
+    tracking on) & enables change tracking
+  - sc/source/ui/docshell/docsh4.cxx
+    - search for SID_DOCUMENT_COMPARE
+      - handles even SID_DOCUMENT_MERGE
+    - ScDocShell::ExecuteChangeProtectionDialog()
+      - ask for passwd (if set)
+    - get pOtherDocSh - ScDocShell for the second document
+    - call ScDocShell::CompareDocument() or ScDocShell::MergeDocument() (in
+      the merge case)
+      - sc/source/ui/docshell/docsh3.cxx
+      - ScDocShell::CompareDocument()
+        - creates a new change track and calls ScDocument::CompareDocument()
+	- sc/source/core/data/documen4.cxx
+      - ScDocShell::MergeDocument()
+        - does the work by itself
+        - sc/source/ui/docshell/docsh3.cxx
+
+- ScChangeTrack
+  - sc/inc/chgtrack.hxx
+  - sc/source/core/tool/chgtrack.cxx
+
+-----------------------------------------------------------
+
+Change tracking in OOo - Writer
+
+- Edit -> Compare documents...
+  - SID_DOCUMENT_COMPARE
+  - sw/source/ui/uiview/view2.cxx
+    sw/source/ui/uiview/viewstat.cxx
+
+-----------------------------------------------------------
+
+Change tracking in OOo - common
+
+- Change tracking dialog
+  - sc/source/ui/inc/acredlin.hxx
+  - sc/source/ui/miscdlgs/acredlin.cxx
+
+- Locking
+  - not shared between 32bit and 64bit version?! FIXME?
+
+-----------------------------------------------------------
+
+Common loading notes
+
+- a (~random) backtrace from loading:
+    __cxa_throw
+    SvxUnoDrawMSFactory::createInstance
+    SvxFmMSFactory::createInstance
+    SwXTextDocument::createInstance
+    SvXMLImport::startDocument
+    SwXMLImport::startDocument
+    OOo2OasisTransformer::startDocument
+    sax_expatwrap::SaxExpatParser::parseStream
+    ReadThroughComponent
+    ReadThroughComponent
+    XMLReader::Read
+    SwReader::Read
+    SwDocShell::Load
+    SfxObjectShell::LoadOwnFormat
+    SfxObjectShell::DoLoad
+    SfxBaseModel::load
+    SfxFrameLoader_Impl::load
+    framework::LoadEnv::impl_loadContent
+    framework::LoadEnv::startLoading
+    framework::LoadEnv::loadComponentFromURL
+    framework::Desktop::loadComponentFromURL
+    SfxApplication::OpenDocExec_Impl
+    SfxDispatcher::Call_Impl
+    SfxDispatcher::Execute
+    SfxApplication::OpenDocExec_Impl
+    SfxDispatcher::Call_Impl
+    SfxDispatcher::PostMsgHandler
+    SfxHintPoster::LinkStubDoEvent_Impl
+    ImplWindowFrameProc
+    SalDisplay::DispatchInternalEvent
+    SalX11Display::Yield
+    DisplayYield
+    SalXLib::Yield
+    Application::Yield
+    Application::Execute
+    _ZN7desktop7Desktop4MainEv
+    ImplSVMain
+    SVMain
+    sal_main
+    __libc_start_main
+    _start
+
+- framework::LoadEnv
+  - the doc says
+    - implements general mechainsm for loading documents
+    - An instance of this class can be used inside the API calls
+      XComponentLoader::loadComponentFromURL() and XDispatch::dispatch()
+      (of course in its derived interfaces too :-)).
+  - include framework/source/inc/loadenv/loadenv.hxx
+  - implementation framework/source/loadenv/loadenv.cxx
+  - methods
+    - loadComponentFromURL() - loading
+      - impl_detectTypeAndFilter() - type detection
+        - filter::config::TypeDetection
+      - impl_loadContent()
+
+- filter::config::TypeDetection
+  - methods
+    - queryTypeByDescriptor()
+
+- Detectors
+  - "com.sun.star.comp.chart.FormatDetector"  - sch/source/ui/unoidl/schdet.cxx
+  - "com.sun.star.comp.draw.FormatDetector"   - sd/source/ui/unoidl/sddetect.cxx
+  - "com.sun.star.comp.calc.FormatDetector"   - sc/source/ui/unoobj/scdetect.cxx
+  - "com.sun.star.comp.math.FormatDetector"   - starmath/source/smdetect.cxx
+  - "com.sun.star.comp.writer.FormatDetector" - sw/source/ui/uno/swdetect.cxx
--- openoffice.org-2.4.1.orig/ooo-build/doc/gw-odma-word-vs-ooo.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gw-odma-word-vs-ooo.txt
@@ -0,0 +1,304 @@
+Comparing GW integration in Word and OOo.
+
+In an empty app, write some text and do "Exit"
+- If GW running:
+  - Word:
+        "Do you want to save the changes to ..."
+        [ Yes ] [ No ] [ Cancel ]
+
+        Yes -> 
+
+        "Document Save As"
+                  [ ] Save Document Using Application Dialog
+                  [x] Save As New Document
+		  [ ] greyed out: Save as New Document
+        [ OK ] [ Options] [ Cancel ]
+
+        OK -> 
+
+        GW dialog "Select a Library and Folder" flashes orange in taskbar
+        etc
+        
+  - OOo:
+        "The document Untitled1 has been  modified. Do you want to save the changes?"
+        [ Save ] [ Discard ] [ Cancel ]
+
+        Save ->
+
+        OOo's "Save as" dialog". No visual indication of possibility
+        to save in DMS. The File name input box is empty, and has a
+        dropdown menu of previous documents, those from ODMA are as
+        URIs starting with vnd.sun.star.odma:. But we want to save as
+        a new document, so that is not really helpful.
+
+- If GW not running:
+  - Word:
+        "Do you want to save the changes to ..."
+        [ Yes ] [ No ] [ Cancel ]
+
+        Yes ->
+
+        "GroupWise Integration" dialog: This application uses
+        GroupWise Libraries to store documents. GroupWise is not
+        currently running. To save or retrieve documents in a
+        GroupWise Library, you must first start GroupWise. 
+	[ ] Do not display the message again.  
+
+	[ OK ]
+
+        OK ->
+
+        Normal Windows file Save As dialog.
+
+  - OOo:
+        "The document Untitled1 has been  modified. Do you want to save the changes?"
+        [ Save ] [ Discard ] [ Cancel ]
+
+        Save ->
+
+        OOo's "Save as" dialog". Again no mention of GroupWise or
+        ODMA. vnd.sun.star.odma URIs visible in history dropdown.
+
+====
+In an empty app, write some text and do "Save As"
+- If GW running:
+  - Word:
+        "Document Save As"
+                  [ ] Save Document Using Application Dialog
+                  [x] Save As New Document
+        [ OK ] [ Options] [ Cancel ]
+
+        OK ->
+
+        GW dialog "Select a Library and Folder" flashes orange in taskbar
+        etc
+
+  - OOo:
+        OOo's "Save as" dialog". No visual indication of possibility to
+        save in DMS. The File name input box has a dropdown menu of
+        previous documents, those from ODMA are as URIs starting with
+        vnd.sun.star.odma:. But we want to save as a new document, so that
+        is not really helpful.
+  
+
+- If GW not running:
+  - Word:
+        "GroupWise Integration" dialog: This application uses
+        GroupWise Libraries to store documents. GroupWise is not
+        currently running. To save or retrieve documents in a
+        GroupWise Library, you must first start GroupWise.  [ ] Do not
+        display the message again.  [ OK ]
+
+        OK ->
+
+        Normal Windows file Save As dialog.
+
+  - OOo:
+        OOo's "Save as" dialog". Again no mention of GroupWise or
+        ODMA. vnd.sun.star.odma URIs visible in history dropdown.
+
+====
+Open document from file system, edit it, do "Exit"
+- If GW running:
+  - Word:
+        "Do you want to save the changes to foobar3.doc?
+        [ Yes ] [ No ] [ Cancel ]
+
+        Yes ->
+
+        saves silently and exits
+
+  - OOo:
+        "The document xxx has been  modified. Do you want to save the changes?"
+        [ Save ] [ Discard ] [ Cancel ]
+
+        Save ->
+
+        saves silently and exits
+
+- If GW not running: The same as if GW is running.
+        
+====
+Open document from file system, do "Save As"
+- If GW running:
+  - Word:
+        "Document Save As"
+                  [ ] Save Document Using Application Dialog
+                  [x] Save As New Document
+        [ OK ] [ Options] [ Cancel ]
+
+        OK ->
+
+        GW dialog "Select a Library and Folder" flashes orange in taskbar
+        etc
+        
+  - OOo:
+        OOo's "Save as" dialog". No visual indication of possibility
+        to save in DMS. The File name input box has the name of the
+        document you opened, and a dropdown menu of previous
+        documents, those from ODMA are as URIs starting with
+        vnd.sun.star.odma:. But if you want to save as a new document
+        through ODMA, that is not really helpful.
+
+
+- If GW not running:
+  - Word:
+        "GroupWise Integration" dialog: This application uses
+        GroupWise Libraries to store documents. GroupWise is not
+        currently running. To save or retrieve documents in a
+        GroupWise Library, you must first start GroupWise.  [ ] Do not
+        display the message again.  [ OK ]
+
+        OK ->
+
+        Normal Windows file Save As dialog.
+
+  - OOo:
+        OOo's "Save as" dialog". Again no mention of GroupWise or
+        ODMA. vnd.sun.star.odma URIs visible in history dropdown.
+
+====
+Open document from GW, don't change it, do "Save"
+  - Word:
+        Save available, doing Save doesn't seem to do anything.
+  - OOo:
+        Save greyed out if no changes
+
+====
+Open document from GW, don't change it, do "Close" (or just exit)
+  - Word:
+        OK. Left as available.
+  - OOo:
+        OK. Left as available.
+
+====
+Open document from GW, edit it, do "Save"
+  - Word:
+        Overwrites same version, left as available.
+  - OOo:
+        "Document Save As"
+                  [ ] Save Document Using Application Dialog
+                  [x] Save As New Document
+                  [ ] Save As New Version
+        [ OK ] [ Cancel ]
+        (i.e, no possibility to overwrite the version opened. This might of course be 
+        the more correct thing to do?)
+
+        --- Save As New Document:
+
+        OK ->
+
+        "New Document"
+        [x] Select an application                   [ OK ]
+        [ ] Select a GroupWise template             [ Cancel ]
+        [ ] Select a file
+        
+        Applications:
+        [ ...
+          OpenDocument Text
+          ...]
+
+        Library where document will be stored:
+        [ EMEA-General_Use (Default) ... ] 
+
+        OK ->
+
+        "New Document"
+        Document subject:
+        [        ]
+                        [ OK ] [ Cancel ] [ Properties ]
+
+        OK ->
+
+        GroupWise Error (8209)
+        Unable to create new document. 8209: File does not exist.
+            [ OK ]
+
+        OK ->
+
+        "ODMA Connection Manager"
+        Specified DMS is not registered with ODMA Keys"
+            [ OK ]
+
+        OK ->
+        
+        "OpenOffice.org 2.0"
+        Error saving the document ::ODMA\GRPWISE\EMEA1.EMEA1-DOC.EMEA-General_use:16311:
+        General Error.
+        General input/output error.
+            [ OK ]
+
+        --- Save As New Version:
+
+        OK ->
+
+        Jumps to GW, "Select a Folder" dialog
+
+        "New Version"
+        Version description:
+        [       ]
+                        [ OK ] [ Cancel ] [ Properties ]
+
+        OK ->
+
+        saves silently new version without problems, left in Available status.
+        
+====
+OPEN document from GW, don't change it, do "Save As"
+  - Word:
+        "Document Save As"
+                  [ ] Save Document Using Application Dialog
+                  [x] Save As New Document
+                  [ ] Save As New Version
+        [ OK ] [ Options ] [ Cancel ]
+
+        --- Save As New Document:
+
+        OK ->
+
+        "Select a Library and Folder"
+
+        ->
+        "New Document"
+        Document subject:
+        [        ]
+                        [ OK ] [ Cancel ] [ Properties ]
+
+        etc, OK. Creates new document, status In Use.
+
+        --- Save As New Version:
+
+        OK ->
+
+        "Select a Folder"
+
+        OK ->
+        
+        "New Version"
+
+        Version description:
+        [          ]
+                        [ OK ] [ Cancel ] [ Properties ]
+
+        OK ->   
+
+        saves new version, leaves new version in state In Use.
+
+  - OOo:
+        GroupWise Error (E823)
+        E823: Incalid transport server identifier. 
+        :0.0
+            [ OK ]
+
+        OK ->
+
+        OOo's "Save As" dialog, this time with vnd.sun.star.odma:/ as
+        the displayed "folder", without any contents though.  The File
+        name box contains the edited document version's URI without
+        the version number. Hmm. No apparent discoverable way to save
+        as new document in GW.
+
+
+====
+Open document from GW, edit it, do "Save As"
+        As previous case.
--- openoffice.org-2.4.1.orig/ooo-build/doc/dialogevent-stuff.txt
+++ openoffice.org-2.4.1/ooo-build/doc/dialogevent-stuff.txt
@@ -0,0 +1,65 @@
+Events & Dialogs ( UserForms )
+===============================
+
+creating a dialog from uno is achieved via RTL_Impl_CreateUnoDialog
+
+o RTL_Impl_CreateUnoDialog 
+   o gets as one of the params a stream to the dialog descsription xml file - which amonst other things contains the event bindings ( or any event bindings that are defined )
+   o creates a dialog model ("com.sun.star.awt.UnoControlDialogModel") and populated the model based on the xml description
+      o e.g. it calls xmsscript::importDialogModel
+   o the dialog elements ( the dialog control, parent window etc. ) are constructed, the model ( populated via the xml file )
+   o attachDialogEvents is called to attach the events
+
+attachDialogEvents( StarBASIC* pBasic, const Reference< frame::XModel >&,
+			 const Reference< awt::XControl >& )
+   o a static instance of the XScriptEventsAttacher ( DialogEventAttacher ) is created
+   o a XScriptListener .. ( BasicScriptListener_Impl is created to handle the events that fire... to call the appropriate macros )    
+   o  DialogEventAttacher::attachEvents is called to attach the events
+       o this method iterates over the the dialog control ( and the contained controls ) and inspects the model for each control. Each control has a XScriptEventsupplier interface, this interface has the information about the event bindings set up for each control
+           o a DialogAllEventListener_Impl ( a XAllListener ) implementation ( 1:1 DialogAllEventListener_Impl <-> event ) is created for each event
+           o the XAllEventListener instance is attached to the control via the ) 'attachSingleEventListener' method
+           
+o it seems that DialogEventAttacher::attachEvents is the easiest place to hack into
+    o but we only need to fake the vba event binding if 
+       a) we are an imported mso excel document
+       b) we are an openoffice document in compatibility mode
+       c) acutally b) could cover all scenario, but we don't have such and option yet
+      we don't want to fake vba event bindings for an application dialog
+
+    o we need to know if the dialog is from a document
+        o we 'possibly' need to know if the document needs to work in compatibility mode, we could just always support the fake vba bindings but this could result in compatibilty issues if we later introduce a document wide vba mode.
+
+    o what we can do 
+        o create a custom 'XScriptEventsupplier' implementation for each control  via the hacky vba service "org.openoffice.vba.VBAToOOEventDesc"  ( the XScriptEventSupplier impl alread exists ) then we could modify DialogEventAttacher::attachEvents to additionally attache all possible fake vba events
+
+
+Oh Oh......
+
+It appears there is a whole code lot of duplication at scripting/source/dlgprov
+this is an uno service that allows dialogs to be created via uno. Additionally there appears to be support for 'UNO' scripts... whatever they are, there is however no support for such script types when creating the same dialog from basic????
+
+DialogProvider - event handling
+===============================
+
+it appears the same classes are duplicated ( and extended ) e.g.
+
+DialogEventsAttacherImpl ( is more or less the same as DialogEventAttacher )
+DialogAllListenerImpl ( is more or less the same as DialogAllListener_Impl )
+DialogScriptListenerImpl ( is more or less the same as BasicScriptListener_Impl & 
+
+o Entry point for DialogProvider is the createDialog(..) method
+   o a url is specified
+      o the dialog model is created via a local createDialogModel(..) method, createDialogModel take a URL
+          o eventually after alot of messing around ::xmlscript::importDialogModel is called as before.
+          o the next steps are very similar to what happens in the basic ( RTL_Impl_CreateUnoDialog ) case e.g.
+              o dialog control is created
+              o [different] an XIntrospectionAccess instance is created ( used for this 'UNO' script stuff )
+              o method 'DialogProviderImpl::attachControlEvents' creates a XScriptEventsAttacher ( DialogEventsAttacherImpl ) and calls attachEvents on it
+                  o DialogEventsAttacherImpl::attachEvent is very similar to the basic variant, it iterates over the controls creating the DialogAllListenerImpl and attaching it via attachSingleEventListener
+       
+the main differences with the DialogProvider ( and the Basic ) dialog creation is in terms of initialisation ( dialogprovider is initialse via a url ), and additionally it there is this extra handling for UNO script types ) there may be differences with resource handling ( didn't really look at the code )
+
+- the bottom line is that the DialogProvider also needs to be changed to support the fake vba events, it make no sense to do this in 2 places, additionally it makes no sense to have the 2 seperate impls anyway ( especially given the amount of 
+ cut'n'paste - duplicated code )
+
+it *looks* like this code/service could be removed from scripting and added to the basic library ( and this should let the impl code be shared between the basic variant and the uno service )
--- openoffice.org-2.4.1.orig/ooo-build/doc/help.txt
+++ openoffice.org-2.4.1/ooo-build/doc/help.txt
@@ -0,0 +1,75 @@
+
+HelpButton in .src file
+	   -> vcl/source/control/button.cxx (HelpButton::Click)
+
+    if ( !GetClickHdl() )
+    {
+        Window* pFocusWin = Application::GetFocusWindow();
+        if ( !pFocusWin )
+            pFocusWin = this;
+
+        HelpEvent aEvt( pFocusWin->GetPointerPosPixel(), HELPMODE_CONTEXT );
+        pFocusWin->RequestHelp( aEvt );
+    }
+
+-> vcl/source/window/window.cxx (RequestHelp)
+    + several cases ->
+
+	    ULONG nStartHelpId = GetHelpId();
+            if ( !nStartHelpId )
+                nStartHelpId = HELP_INDEX;
+            Help* pHelp = Application::GetHelp();
+            if ( pHelp )
+                pHelp->Start( nStartHelpId, this );
+
+Application::GetHelp
+    + gets impl. from sfx2/source/appl/app.cxx (SfxApplication::GetOrCreate):
+            SfxHelp* pSfxHelp = new SfxHelp;
+            Application::SetHelp( pSfxHelp );
+
+    + sfx2/source/appl/sfxhelp.cxx:
+	    + ::Start( nId, this )
+		+ creates URL: (CreateHelpURL_Impl) :
+		        aHelpURL = String::CreateFromAscii("vnd.sun.star.help://");
+			aHelpURL += aModuleName;
+
+			if ( !nHelpId )
+			    aHelpURL += String::CreateFromAscii("/start");
+			else
+			{
+			    aHelpURL += '/';
+			    aHelpURL += String::CreateFromInt64( nHelpId );
+			}
+
+window2.cxx:1482:ULONG Window::GetHelpId() const { return mpWindowImpl->mnHelpId; }
+	overridden for menu, toolbox etc.
+
+window.cxx (Window::ImplLoadRes): SetHelpId,
+	   'GetLongRes' - the 1st item from the resource.
+
+ie. the HelpId is prolly on the window eg.
+
+sfx2/source/doc/doc.src
+QueryBox MSG_QUERY_LOAD_TEMPLATE
+{
+    BUTTONS = WB_YES_NO ;
+    DEFBUTTON = WB_DEF_NO ;
+    HelpId = MSG_QUERY_LOAD_TEMPLATE;
+...
+
+
+
+Specific case:
+    ModalDialog RID_DLG_ALIEN_WARNING:
+        HelpId = HID_WARNING_ALIENFORMAT;
+
+sfx2/source/inc/helpid.hrc:
+#define HID_START                   32768
+#define HID_SFX_START               (HID_START+300)
+#define HID_SEARCHDIALOG 			    (HID_SFX_START + 311) = 33379
+#define HID_WARNING_MACROSDISABLED                  (HID_SFX_START + 319)
+#define HID_WARNING_ALIENFORMAT                     (HID_SFX_START + 320)
+			== 32768 + 620 = 33388
+
+cf.  helpcontent2/helpers/hid.lst:3894:HID_SEARCHDIALOG 33379
+     [ no entry for ALIENFORMAT - we have 'Macros disabled' though ]
--- openoffice.org-2.4.1.orig/ooo-build/doc/class_diagram.odg.uu
+++ openoffice.org-2.4.1/ooo-build/doc/class_diagram.odg.uu
@@ -0,0 +1,2239 @@
+begin 644 doc/class_diagram.odg
+M4$L#!!0``````!>ACSB?`R[$*P```"L````(````;6EM971Y<&5A<'!L:6-A
+M=&EO;B]V;F0N;V%S:7,N;W!E;F1O8W5M96YT+F=R87!H:6-S4$L#!!0`````
+M`!>ACS@````````````````:````0V]N9FEG=7)A=&EO;G,R+W-T871U<V)A
+M<B]02P,$%``(``@`%Z&/.````````````````"<```!#;VYF:6=U<F%T:6]N
+M<S(O86-C96QE<F%T;W(O8W5R<F5N="YX;6P#`%!+!P@``````@````````!0
+M2P,$%```````%Z&/.````````````````!@```!#;VYF:6=U<F%T:6]N<S(O
+M9FQO871E<B]02P,$%```````%Z&/.````````````````!H```!#;VYF:6=U
+M<F%T:6]N<S(O<&]P=7!M96YU+U!+`P04```````7H8\X````````````````
+M'````$-O;F9I9W5R871I;VYS,B]P<F]G<F5S<V)A<B]02P,$%```````%Z&/
+M.````````````````!@```!#;VYF:6=U<F%T:6]N<S(O;65N=6)A<B]02P,$
+M%```````%Z&/.````````````````!@```!#;VYF:6=U<F%T:6]N<S(O=&]O
+M;&)A<B]02P,$%```````%Z&/.````````````````!\```!#;VYF:6=U<F%T
+M:6]N<S(O:6UA9V5S+T)I=&UA<',O4$L#!!0``````!>ACSC/HX#O6P,``%L#
+M```M````4&EC='5R97,O,3`P,#`P,#`P,#`P,#`R,#`P,#`P,#(P,#`S,#E&
+M,4,N<&YGB5!.1PT*&@H````-24A$4@```"`````@"`,```!$I(K&```#`%!,
+M5$4``````(``@```@("```"``("`@`"`@(#`P,```/\`_P``____``#_`/__
+M_P#___\````S``!F``"9``#,``#_````,P`S,P!F,P"9,P#,,P#_,P``9@`S
+M9@!F9@"99@#,9@#_9@``F0`SF0!FF0"9F0#,F0#_F0``S``SS`!FS`"9S`#,
+MS`#_S```_P`S_P!F_P"9_P#,_P#__P```#,S`#-F`#.9`#/,`#/_`#,`,S,S
+M,S-F,S.9,S/,,S/_,S,`9C,S9C-F9C.99C/,9C/_9C,`F3,SF3-FF3.9F3/,
+MF3/_F3,`S#,SS#-FS#.9S#/,S#/_S#,`_S,S_S-F_S.9_S/,_S/__S,``&8S
+M`&9F`&:9`&;,`&;_`&8`,V8S,V9F,V:9,V;,,V;_,V8`9F8S9F9F9F:99F;,
+M9F;_9F8`F68SF69FF6:9F6;,F6;_F68`S&8SS&9FS&:9S&;,S&;_S&8`_V8S
+M_V9F_V:9_V;,_V;__V8``)DS`)EF`)F9`)G,`)G_`)D`,YDS,YEF,YF9,YG,
+M,YG_,YD`9IDS9IEF9IF99IG,9IG_9ID`F9DSF9EFF9F9F9G,F9G_F9D`S)DS
+MS)EFS)F9S)G,S)G_S)D`_YDS_YEF_YF9_YG,_YG__YD``,PS`,QF`,R9`,S,
+M`,S_`,P`,\PS,\QF,\R9,\S,,\S_,\P`9LPS9LQF9LR99LS,9LS_9LP`F<PS
+MF<QFF<R9F<S,F<S_F<P`S,PSS,QFS,R9S,S,S,S_S,P`_\PS_\QF_\R9_\S,
+M_\S__\P``/\S`/]F`/^9`/_,`/__`/\`,_\S,_]F,_^9,__,,___,_\`9O\S
+M9O]F9O^99O_,9O__9O\`F?\SF?]FF?^9F?_,F?__F?\`S/\SS/]FS/^9S/_,
+MS/__S/\`__\S__]F__^9___,______\`N/\`````````````````````````
+M````````````````````````````````````````````````````````````
+M``````"XTD\8````%DE$051XG&/@)P`81A6,*AA5,%(5``#+53P!-`_@\```
+M``!)14Y$KD)@@E!+`P04``@`"``7H8\X````````````````"P```&-O;G1E
+M;G0N>&UL[+W=<MO(EBYX/T^A\(DYL3OB*(W\3U1WU0F77=[MCO(N1\F[MN?<
+M5,`D9+--$6S^V/*^FC>8B[F8]SM/,ID`2.0",I$)"I1$21W1M:LD@B)7KER_
+MW_K6O_W/ZZOYV==\M9X5BQ^?890\.\L7DV(Z6WSZ\=G?W[\^5\_^YT__Q[\5
+MEY>S2?[#M)ALK_+%YGQ2+#;Z?\_TTXOU#]5O?WRV72U^*++U;/W#(KO*US]L
+M)C\4RWRQ>^H'^]4_E'^K^LEZ\WT>_7CY8OOI37Z]B7W8O!8\FWV,_\OEB^VG
+MIZOL6^S#YK5:J/;CET7LP]?K^?EEH:5^M<PVL]:GN)[/%E]^?/9YLUG^\/SY
+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
+M97,Z=&,Z;W!E;F1O8W5M96YT.GAM;&YS.G-M:6PM8V]M<&%T:6)L93HQ+C`B
+M('AM;&YS.F%N:6T](G5R;CIO87-I<SIN86UE<SIT8SIO<&5N9&]C=6UE;G0Z
+M>&UL;G,Z86YI;6%T:6]N.C$N,"(@;V9F:6-E.G9E<G-I;VX](C$N,2(^/&]F
+M9FEC93IM971A/CQM971A.F=E;F5R871O<CY/<&5N3V9F:6-E+F]R9R\R+C0D
+M3&EN=7@@3W!E;D]F9FEC92YO<F=?<')O:F5C="\V.#!M,3(D0G5I;&0M.3(X
+M-CPO;65T83IG96YE<F%T;W(^/&1C.G1I=&QE/D]/;R!#;&%S<R!$:6%G<F%M
+M/"]D8SIT:71L93X\9&,Z9&5S8W)I<'1I;VX^5&AI<R!D;V-U;65N="!I<R!C
+M;W!Y<FEG:'1E9"!B>2!+;VAE:2!9;W-H:61A("@R,#`X*2X*"E)E9&ES=')I
+M8G5T:6]N(&]F('1H:7,@9&]C=6UE;G0@=6YD97(@=&AE(&QI8V5N<V4@;V8@
+M3$=03"!I<R!P97)M:71T960N("!2961I<W1R:6)U=&EO;B!O9B!T:&ES(&1O
+M8W5M96YT('5N9&5R(&%N>2!O=&AE<B!L:6-E;G-E<R!W:71H;W5T(&%N(&5X
+M<&QI8VET('=R:71T96X@<&5R;6ES<VEO;B!F<F]M('1H92!A=71H;W(@:7,@
+M<W1R:6-T;'D@<')O:&EB:71E9"X\+V1C.F1E<V-R:7!T:6]N/CQM971A.FEN
+M:71I86PM8W)E871O<CY+;VAE:2!9;W-H:61A/"]M971A.FEN:71I86PM8W)E
+M871O<CX\;65T83IC<F5A=&EO;BUD871E/C(P,#<M,#,M,#A4,3$Z-34Z-34\
+M+VUE=&$Z8W)E871I;VXM9&%T93X\9&,Z8W)E871O<CY+;VAE:2!9;W-H:61A
+M/"]D8SIC<F5A=&]R/CQD8SID871E/C(P,#@M,#0M,354,38Z,#@Z,C(\+V1C
+M.F1A=&4^/&UE=&$Z961I=&EN9RUC>6-L97,^.34Q/"]M971A.F5D:71I;F<M
+M8WEC;&5S/CQM971A.F5D:71I;F<M9'5R871I;VX^4#(Q1%0P2#$P334W4SPO
+M;65T83IE9&ET:6YG+61U<F%T:6]N/CQM971A.G5S97(M9&5F:6YE9"!M971A
+M.FYA;64](DEN9F\@,2(O/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64]
+M(DEN9F\@,B(O/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@
+M,R(O/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@-"(O/CQM
+M971A.F1O8W5M96YT+7-T871I<W1I8R!M971A.F]B:F5C="UC;W5N=#TB,C(Q
+M-"(O/CPO;V9F:6-E.FUE=&$^/"]O9F9I8V4Z9&]C=6UE;G0M;65T83Y02P,$
+M%``(``@`%Z&/.````````````````!@```!4:'5M8FYA:6QS+W1H=6UB;F%I
+M;"YP;F==F'DT%%[8Q^_,V-=A[,+(FNQ9(C$A2D:44+:R1/9]2<P@>R&2O6&4
+M-4N8[(U=*0:1/6OXV27K6%Z_][SO>9=_[GG./>>>^[W/?<[G/M\;8VB@RTC'
+M0P<`8+QY0_L.`)"S$!!HJ,[&"J@@&P!L"S>UKQD'9*UE6[KP=?EVD42NQ[+>
+MC$NZ09=O5_3&-3*Z55RIZ$;AJK&!ZW`1DBT>(D0+Y]H,?WZ8&_*UH2A5C8*2
+M;B<WE`UVS2D':C&(RL:G9-=J(JXDWF4MDD(Q_=;\Y*(;+?DU3&2+;.M-:CKG
+MM?YK=')T(WWRE!FY_GLRH<'?OQ?3^SU+I:K7\QP4O$[V#;0&`*F!!.`U%PT`
+M(IUW@42*WGPOI,M3PBB!$MA%$:D]9BGZIY'].RO:RF[&>U:C3824PKR\D\#;
+MS/T3Y_J/U/I_EFJ3U#-;[&$@J=D:,/%_(.[N*(;T4A%#@N<<JJI\C?J0L?Z0
+M<BAV?HL3V]__]_.!F(;@6$7H4(XT_U&75M*JY43]]<'Q6]6VU/WY:&UJIG?^
+M?&=Z;D,V2SSKJ!(LA33V<PZ]9RPEI<L450`H@H^USOHP*27F^T-`W_D[[+PU
+MN_X",G%T8X?`3E<<`H]<WH7.<I62+>`P4-D6K;.;PIYL;89T<BXAKCN1]C*`
+M."R7`EG*$PAVU$!=8@,U4!;`'GVQ!"C9KGB^N_&-66J!K+.T-A!(Q8N[!0;]
+M_7FZVY\9#.&OH?#!;[@;2'B?SN#?V;J<!>J;+!=8X>UBXCG=*R=BQQ;MOA9-
+M3U,.R>2K<Y=:+:(,*M*&MZRZ(B<UEGBN\4V)8DW'$7:Z8YZL(8O13T\N#[/O
+MFG$%JD')0#L3X4JRNU9%EX8M!Q[F54[[\4?=N&VRB[1,&KX!*WH2B9_:EL]E
+M`T2S8$0=OE8U.3RN<=TA2?`GL$IA>M"&?88X>-Q-:=RH/$.5Z;)Z75/$`N_R
+MA9QF*(KE?P"=ME\5#:#ZHSAZ9[_58BZ"GC/K5JJTD8.#&*&ZNN_/'_G)>M\X
+M*BHJIZM[0U/Z4<P"\8K<%_68@_I4?I^Z!HC:BQB"]C;O(!#6*.#WJXHV+_[U
+M4OSOC=$J78>:P>>W%<H?.T2K*BFX)5^5*3^>SDY'+]U`W0LR5_L;.G</IK;.
+M^IQSIXG*W[6L"C>L:']_,U9-$Q\D\&C)CU55*J`OW$UVMIBKEC+T('4XIKXA
+M)K]@>?:C+6>_]7JI>V::V;CU<,6VY+-UEJ3SN2OWFCMJ.*V94?98!MZU=8&B
+M&MKPQ8PI2_+PIX1[65JW%7#NSY[U[.OJ[-?&YMF.V(L_^^,-5T%0$!P^RI&=
+MZ:!:$7[3%\$CIR#N\@R-I<8_!_HRPO?]L,LTN3%\.94>I4J(E_6:B=T6X%X/
+ML3O.B.3$?Y\[:SSQP;#((N6[`]Z'JPOA_S1S)!8(4K[T"M@)3IM^F>;!F`^#
+M]&D[T+SF7NQ]P:X3?`<W;GRYJ[-3,YAI%0*%0_T+"I<2$6OC%Q&^<P+<W$5I
+M<.$4MG,^SVD?=5!`X;!^)LY0&8NYN(RK*SSJI1O>MVEL61)9$&TN?QR;>6+H
+MFX,VFA:_]_3T?PXFJX4_=9&2M-\8U%.UXYI/^`267JS\4=]NU*_MVLW93M.W
+MPHM\3EVDT#<P&'@C9>[X^'&DJJJJHY.3Q$\U(.JX;UBSH27V,JMW9^2!RHC>
+M+#\JB+P<R]^=;GL38WU_,QV1>+B/>;VM3.4[M$4GB7@]V=8-<X54>/[DNT$]
+MZ4`ZCXSRPY%Q3_>5N^0D3?@ZI(*U3<OA.VXEY4PX!?&"%NU=@)^'50P=*X=*
+MTE6ZX5F?O/-FK\LWQ9AX,AU%'`9-SO0@K]B4,JT2S`J=K`W/&7?V?G$C6FQ3
+M0^9(">V'X.'2+F*/N[NU3Y+U:7(#ZE.[&[366I`"1=D=D8Z$%\XWRWY#VT%0
+M+9#FD&D(MC5,3^(_644%!:B84``,;?X'7W20M*PLGS++!IV5GZ5Y,&JF'`=.
+MQ]"OJ!8S03!U.M,WIJ$ANEBCT::%IN.Z6?=1\PS,_SR,`#F=U$B^#W``4*HH
+M`,3EX,#0K*^.6]\%LFFN6AQ]ZS$GRV3UFE4ZKG6U?$PY9CM2A?_#JVCJG`?G
+MZ;[IC%[C$J)U-JPG%_A:P?7Q4.S[/%`1-P)%-AS8T!;5+E(`.Y@J!"(NUTF'
+M&HD7!*B`%^QG.QUR702%_T!N"-A2`I"H#L="9X<Q7LLCCJ[C'^\BNM<N6//(
+M,M!@[?>Y]]K;VY>5]NY,-$JFRI[DB75=[#)XE&LBTX@W[X#OD3>(&Q-UWE%G
+MV'D2$O)VX^K:R,=P);<)L_&0M3'%Q39FC7?Q\4QC];X7T;=O#W]R'ZEHN1P:
+M`<RBQVO+]5\DRYZ\>L4B;=?MNS^R66[5M-Q(7F_H3;_D4-C4E%V+U#C:;*L.
+MW%Z(I+2>I-F87B&99%T9CEYPB/[I+OS`2O1!AMCRJ-&')^/K-TRV,*BEH&F_
+M'UC`QL`1YCET.'EQ?-_7QZ?Z">^PS:I@EIJJIJZ!DA)SF?Z'TB/R'%'H<!RC
+M?U3Y,IQ17;Q2<=T/<;80*#E.[C9,:?/LP@/('^_VC,]OG^XZ&)4-\#\O(;TJ
+M=6F'GDPUN??Y_1"R%00<7EO0_O=QVOZNY^LW;LW$,[+2^5"4L?B_R6-$`4G-
+MVJ5PZ[>%)XKN<Z9E'1U![(U7EX)V0QIF):5,QG>]=Y1"G'G[;7:"%SGP4\<E
+MV917G\R'<-W#Q$FULX(4UF[<:'&L:%N;OZX".6FBL[>U&1,^=1Q4'W!(_;:K
+M=*.,J/IMA\AAC$"/N/R5_RBPACF1Z=<D^*75:PW^,O!9X>B':6DG,%`*T"=I
+M*?G-4!:JA:8^%HL..127DKG'V$#PS%SJ4&X8E\!H=XA*7,F\J&H-V5R19=4X
+M+-\3";Z)I,.GAMC9=42SEZDSS\3LN<TEA`5]^?:7J?R=QWA$CR9\"5+;E<4]
+M<S*R'QZ'[3Y>73]Q5\6<9%;;?U-QV%X(*BQP"/IA937W%P],3^[+**;Q\D8V
+M).F,=+1"C<PSF]!A*$C%3M1HM[E[TV]]-+K_<&?EB:?G1Z<O5]6^UQRR';WP
+M\JBPDDA-Y<Q&;J#C>>R,7X5?\W@I\UFW[#AN\-;Z=:/55E,0N]LWT$Z:OKR\
+M_C9H/3>.4V8@'YT9W::]03P-65Y==1G;>Z7+;Y2-_TF6,22L33:=%F/Y=5@4
+MS:Y@1J"E7N'?[EC-3STA;Q@T8DP+IE#7#8]\)YQMYE;6UBP9`]EQ07R(W[G%
+M&;=</+Y__ZZ/IDB;F7FDI.[TY,F3_?@<)%^(O=`>3S<"YXT!U.0B'7IIR_KV
+MC\OG:@S<B<>?O#>:]@8*<"%ZXS7*RMQI])S2@V4Q&U-=`AA]_ZE@Y;5?39F7
+MQSP>VDGA#3G@=<G?'\]MXHV#@=%^SRDB^&GZ4J\KOE<:?^*JG<"T(B#P'LTM
+MC`P/#Y_-TX^ZT*;]SU?RUO.D]^]%#E>K2$Z_PIA<]B=HS39H/@0,+I,^A#`'
+M05<IC3-Y=M1!!(BIL.&0.1EO\)<I'[#80ESDMO.3SS2FF":MEYQ&"!;-XT-F
+M!>DF6UO#?OS\N1!XHN8L7><J'94>F7T#'W0\L#=DE4F&ZMQT"]'_\-9*@TBD
+MRPY&L]/Z(YJ/T]'OSH-`GT2:EH=:6Y<>?KV[N<-5R1%:Y4!2K7&?RK^M?O!\
+M=W54J^`VCBF828ZBD'@:'80AW7^^3FK$,][K0;;(G(87$A[,2DAIW[VWL;GY
+MXQ=YK.^K:%R:.8W+_49A3T@TC_#,4!F=-Q,B\'>*Z5)[#,+`W]^_U/1TNB7<
+M91HM7;WZIBHS>*DOMX]X7P&"MRJII?(W^VCM^!$USU71XI'<+B.<5K,E.[/*
+M8+1GV=.5X5%^A_'/]S:/\+&L2O.U7YU=Q8]]_OD3AT.XK@K7!R87UI3_8GBZ
+MD-ZII$PB<KKM$8F6DWNJ_::?$I1K3R8ZXY\RWIR.EQB\6K:4C9$X>C%"`6,^
+M/V2$E24$)%&*=M>U5EM/>O1\"[8/MBZECI#]<,C'R[/G73?1.W6.S3US;/0!
+M(FB@V?TU1('UYV1J@ER$L1I6_)J()PW/FU?N]61(^UH[BYLR3O=DTFW./X\<
+M+*NSO<4*_?'"\OJC,VQ_H9<I'X[,-W3*QMY/(GQCYFFI]@BZL*/OGAV6[E/]
+MT&B+Y^1BN+*CMZ-'$64SO1SAS4QO4RCAI&ZH]ZJ*4?Z%=F[HBUO<#)/TF5$5
+M@H"?QC9V!>(33+ZY'')HCEZL/78_30EHB>:EAJ?(1ASU*$_YN/UJ_.K-[)2,
+M#Y!N[>LS+/96P"K#L:"1;L*YO&GAG$;(Q&B=MX-K$DM>&25)G-2"G^:`$+DB
+M]7[75KNZ[&1_`6]?SY3H\(F*B64SJ^_G*"6_$E/\M]&S3;B:ST=G@0NQP.6\
+ML[&G&11WEV"(<(/N2_DTC[RA%'7*"N-]6T#$G)Z,D9W6KKLW;E'Y^OH.F<3.
+M\+B-?W)56\SY)*]/R)^[[\^R\8.+=LX_BS/S/,UH83M!3!!:?!F4Y;*+TS_=
+MQHNTH$5ZO<5QSHMW';+.*O+GK^W@D]DXF<+R\@3UTR/OIS,1G$ZODC8:MPVD
+MBI-@)6F+.(SZL)>C<T'E&^II*Q&1I6W)OFS[?(EGJ8O#4#^NLKJV3XNIJ:G.
+M&)=I&`PF254R95XJDBW^#17C3'QVX.5J!1;I'[(4G9@\G0ZESK#AT9_WWQ@D
+MW\POB/FT(7RX4'@N(=<_/HK_:?0#<W/G6\Y;[@X)<V?$4Y2;OO<B@&?'FW0U
+M=8'4UUK",#9/^9P56_'#)]Q8;AU]N+,1HTZ\5FVFN-3@#R=@^EV^]!!L.D:'
+M?CTKJR"(#:M;7:)K>G%Z=+#-1.I85('$F9;_*"G_O+PZ1B@1U.SKFHM5TY*7
+MOB;XV:MZ-IP\A['&8#"_M[H$$C#GX3=R@+`B6IG1.#VJBDYE-]-@M6-S<S,C
+M=;,=03"5X[2.N%"WZY.!MK?PJ*89#=5RH&1"K*<M,'[<>OPMV@"UURZ@0N(7
+M$I7Y?1P4.,M:P(HKJM^[EY#UN>K.M89%B=?VERO$6VZ'\C?_,[RR9F\E&#GN
+M]_WGY_J5X^.V)]96@7*NO].#,9]WWQ;4TODL2-1F,@7ARBY[URS3QTL:?S,V
+M):@17*O=?1\=<']-)NH'6-53T#7[GTK$?0-N^M+:7M3%O/>TITD)+Q4"Z%8:
+MEC&?;/]<&J"\'\HHI$_ZHRL0;$Q?//-(GI_)VZ1^-.&<"NM!7>#04GV$99/U
+MG*SU21//UL?`56NJ4)0*/A9N=^1DI*(+$G!!?8DZ$^@12NT\844I5:6HTVX4
+M\&J]R)9&?\=02H)AL'QXDL]BCBJ0:E;H^=C/70T81/:%+"$*K8AF^=@S<@\%
+MZ'0X`O>)A\8=Z;@RAWW+M%(.O!^^+(3\=&O.$(=[5#`N@]`#QD9.GK#P`0N6
+MP@_OLI-*Y\H.!2J&-RD[`T"^=A-[:+7E#_FAOVZQ`P=B-"+@B61&;D,.=1]L
+MC_GYM5N@,FN9RX3"Q>`KPVJ>^-PIU)4962I0?&D*N40^?I/'RI;;Q9$67KI]
+M.JE`B[46SB!7(8T231NVPDQQ?#MZ['FT+WCG0]<(&GE_@8_3($%?)BNY>QP;
+M^+;)NI+QU_J-]/-A\O"Z"ZU:8'>Z!EGX4IQR^K18Z>JEZSYK"=KFA]$<)JQN
+MSXY8^O/Y\?%,>/>U9$PML>>IR/@F@NH%W5GSJ`?9S]"-4/^;<G@Q2MU+7N]5
+MA%)A)'/O0%4D%[NLU`$-T._G0+UDHV[V)$6%[-NM-5W:+JQ2(^"R?ML?[F@<
+M(6H6,]UB738?>6U03L[C120ID<[GJ:&3@02Y2=^]N[=5)>:8P]W>L`N>G]"L
+M]9S;>5#O9,#_E58A]<V;RV("37\';GE*4P*1]TNPZ,&27P,!B<..85]L9?IV
+M:+23M8Y(5I1!P-:VK?NX[A3%'^$AU<-'6],%88:-&"2#=J-+<D1+_R%>?VN4
+MX9ACBMG^>U%.*@GZT%[Q<-RC/._*B1SF9EA-?X&OMUT_S5T8/<O#N=^/NNKJ
+MZL8DE"<LIH^V)YY-^TS*$(\J%U7VR?!*"ZO&!<B(!8<\CN'UST/?>B'6G<=M
+M9@/6S'J:8Y>DJD2'1['79EZOGT#Y9OI&J:$`;]/0TO#5`DP0JJT'!:=6WTV6
+MB//Y7_\*89XU:E_,BJ.N,+D5])M8DK=\P-P0*0":,RTR@1&;XLN3<&1LX1&0
+M[;2C@`([9@J`985!0$[[?QD(H,?P_Z:P%/UHQU@U:#,;$EP(FX`T^R`![6S9
+MZ*L1MC0F"J28]J[P0E#3E:M[X5BL0B@0CNZ5=_C3?KX7+[S'F_,55%)!$V5#
+M#ABI<"&5N0L.\SQO,QDDH6G!-)50:**0)%4EF430H,>NLN?03K\TU;F0@CVT
+MQ_U!6&1?1S7%[VV?Z$.@B8+K!#:NO3[!###3IUA<V,G9Y8A6"#A[7YX?#,E$
+M_XO,7=;)QFN#OIS]1VI&MQ.>8@8WMV@;O'S-W)&Q>W![Q34U+!#^KLSO?H0;
+M-II_/XCZ\X6*O;,V8,I[L5>EJJK*YZPG:)[#<Y7%=):=R9*7/?E+:^L2FZ'B
+MYW8J&\R2#X$`),3%4@9`@5Y$@XF!4XH87[BRY_4+9^Y-KO^^C*'#93GFL[38
+MQJU0`QCD!OS'1`->:+C6"!;<&$\H%4V@HP!F:-;.DF7.S?&IE2N-)LQ*W#2@
+M@E^I,R*"LJ"TM*<FGWDE]_K6DEVYMOHO8SDLP&J><>9^,Y5[<6[0V?810E]H
+M?)T>FVL&SD'/Q,#T=YB0H/E!H]-\Q394GZ'O*]V9%.Y'^"]GEQ8=,[6)B]&1
+M@?VKVKAHFBK>M&.ZMGX2\U?/>S95S4L+!5!%7ZJ%W/37($O2R&3*,]^H6NGU
+MK:NKZXF-C<W0B*Z.CM.4\QT.\3.)'$:9F7V])\<'3I>FF;7IO>_E.0F-$3*7
+M>//R2H8[-9%Q$#&,;[@H`&_D%?1]IN"ZPL4_FE^:=&`?74,A`!;:VDFB>!^J
+M=18RT&:\=]!$G)=!@ARV3=G)5LVF-QSE^G=H+5S0%&=:WR/1L*$MI"PGP&:)
+M5\4)4)SEC)[ABOI94<JW:K>$_6_+S/W0:8#EO]VT3MH2)0I@"6F.AI_.4F6"
+M4!`Q\U?,R3E.5N\\*]J<UQ2!S*J1O)V;:';HOR>:Y#IZ1^+>F1"%_I_"_XX#
+M<YDWU^EX1(_^_?^\>=U`NTSS8=A_`%!+!PBQC4!J_!0``!\5``!02P,$%``(
+M``@`%Z&/.`````````````````P```!S971T:6YG<RYX;6SE6FUSVC@0_GZ_
+M(L/<A[NY23"$I(5)Z!C"6PN4\)8FWX2]`36RY)'D&/KK*QG(4;`;*L<WG3D^
+M)&!)S[.K7>VN%JX^+#UR\@Q<8$:O<X4S*W<"U&$NIO/KW&3</'V?^U#]XXH]
+M/F('*BYS`@^H/!4@I9HB3M1R*BKKX>M<P&F%(8%%A2(/1$4Z%>8#W2ZK[,ZN
+M1&3K)TN"Z=-U;B&E7\GGPS`\"\_/&)_G"^5R.1^-;J?Z'(2"0C(2^#C"W36[
+MM`ZCCWA^+,IZ]NYZQMB+T'K!6K%(\*)EE?+KS]O9PL/D6"X]]]1AGJ]DGI$?
+M]@I1[!T+H^?N:+W9^!US%W+5K6VW)JU>;11=_SO%$CQM[Y/-8\UWG5.J5YXQ
+MA"^>D(M;]^.:*19:&9L#&C,_MQV4*U\-8BISU=)%^;QXE3\$^B7P+CS*./1B
+M\:)PF1K]#KMR$0M_7BJE%[X->+Z(%]]Z5SH_%O_40_XIIBXLP=WG@C#>6M$:
+MY3Q\=8S$$';</3&%Y,H5<E7M&`6SG6AQ[';$9C_VX&>,$4`T5WU$1$`:_"9G
+M='^/WP*](T84^6.F63*$'Z`Y]!"?8RJ26"0/4I+HOUU,(9'B#13Y//L*CFQR
+M]3!SE@%3IR@;908D$&U$70+")B%:9>B_VG?5FQN.YB-UUDBR><P]H$&PARF2
+M,&!D%6U;5SV0MJ:+"TR%"\LRU>:0*PL3;>S112N5^O;QD8#+4DT)P5>Y:O[H
+MU_MK,UD&*D9*]+M(TV7.$[BOBY)_':K/;*D2P"P+`_99G1%V*&)Z9Q\&!'B6
+M&4<'ZT\J$^_GR@7CZNP8'IP1$!72P-7@\<!%XR,9.4./N8F;D2:WU/!\$RDS
+M"8XW+%!6K!/L/(UA*1LN3DSS:;2(".H+1.<P9.M[10;JC`AV00R`#UD8;^22
+M88!7VZ(-/)+*%(CONV84U`W=9PO=9_+`Q&^!JYV'!;'UL6'%^3^XE1Q]:S"\
+ME1BZH:Z2ZPQQ`8G2%XKO#!WF7_!DV=.A-U5QG"CXY?E%.N1DJ5-!ZXHX$OI+
+M/_"`(\EXAAPW0%E4WL6SI+@COG#<_P=ZW&>C1T=$);6F:5!=$69Q9]3H&53N
+M#XQYGVE,^7&,S#$/=WL/2<.;=D;\!`'R^,[5^D'`H\S]*RTLV_?):B*`WR")
+MWKZRJ&&I%!UK7Y@,NPG=E3__"I0`?V\(\F*3Q,\$FYFQJD*&(U5-\CKS=*M4
+M-P?'BO)-*]:H?C?6S#$CO4%B8<SI&G+"(PJ(5+0C&5]/_$K:2>[C-1F?8=<%
+M^F*^]%V]KJIH@Y@KQ6:O@)K:/M#\":B3D6%Y@CA&!VV\#>H1]]4:S#'5'2YC
+MA`9U?[H^;9Q[/4DA%RLP8Q>?F^U\&TG'_%PM3+/E)^#4%LKF@X`Z,LCJVM41
+M48NFQM@3@6RZQ+L$->0\97%'W>7X:;\[-8G*A=FT.B/T)I:&9<:1!.THBFJ.
+M3+KI$8=&[V?5Y8X8QIA`MOLTQIG(KR.H"J3&X<24EB%W",AEE.PGIK?0J@=(
+M!!PF]*`!M2FCWIEW$]6-9P9<Y7\/Q5X0#:_C`U5&S#GR%Z/`\[(*KI$GW0:(
+M8+F_[6G:0Q$L\([*G/I;<)43NVAUV"?:>A-AX:DJ=!D)M)JI*&-.]9:E!10X
+M=DXV,U/1C$`&^\7DC]\5W-GM?_*62V;>=(7N>O-)^Z,_HT/BS.W?\C6QW.:8
+MU$;3UZ?>V79/W6%?/C?MYL-$_7^:W=KVR"OC8:MIW8_L99W6E.X7UL.73GE8
+MG`8/7S[Z]ZO:K>.1P&U-5W6OK,:GZGW30G?E8#"M/3MTN+J_(U;=ZS\[+4*<
+M;]:R[A46CN?Z,V^X0'3ZS6T5R(S>EGOU,.S>V*)G^U]GQ>6SXZG];0_98-RQ
+M%/>W66M:?+@+R[OCKD>^/HRML$YJM\-&_UG;!!K#A=MJ?)JTFO1AVO?!FUR.
+M6U-+RZCT,OPN9X2>8;K^;<=G6B=,9!&N1PXBD$T_)(+^:3O'$'CBNZI$4460
+M-P;/)V;E2F+3(7_P`YI\TL^EJM\!4$L'"-J,5N3L!0``<"4``%!+`P04``@`
+M"``7H8\X````````````````%0```$U%5$$M24Y&+VUA;FEF97-T+GAM;+65
+M06_"(!2`[_L5#?<6=9>ML9K,Q/,.[@<@?:TD%`CO8?3?CYJHW6:6=2F]``E\
+MW^-!'\OUJ=/9$3PJ:RHV+V8L`R-MK4Q;L8_=-G]AZ]73LA-&-8!47CM97&?P
+M-JQ8\*:T`A661G2`)<G2.C"UE:$#0^77^65O6CUE=W"C-.1QHC]G=QG42N1T
+M=E`QX9Q64E",DQ]-75Q<Q5!1M%ZX@Y+([H0F:)T[08>*<<9'"1]3-M8TJ@W^
+M$@@N.)*@@'OAT^"%E*`A#JWG,GC?;S-F,KDKB:#15A`D@COK@HO7("3">]MZ
+MP'0GW8>>#$[6ZF1PU8D6D+\IZH3#I(Z1[.\U`X/I_YXBJ$(.!7^+8:3\$C)W
+MIGU,?U>20KQ1?#X;?HM!^SQ[W<XW18^8(J<WXT@:P8EX7W0>4F,BZ7]5Z7<N
+MTED#3H[M@,1D%71W"-W>"*61T[4[V7$-X-,F%HCBZWY+[9+_>-Q7GU!+!PC^
+MB7E)90$``!<(``!02P$"%``4```````7H8\XGP,NQ"L````K````"```````
+M````````````````;6EM971Y<&502P$"%``4```````7H8\X````````````
+M````&@````````````````!1````0V]N9FEG=7)A=&EO;G,R+W-T871U<V)A
+M<B]02P$"%``4``@`"``7H8\X``````(`````````)P````````````````")
+M````0V]N9FEG=7)A=&EO;G,R+V%C8V5L97)A=&]R+V-U<G)E;G0N>&UL4$L!
+M`A0`%```````%Z&/.````````````````!@`````````````````X````$-O
+M;F9I9W5R871I;VYS,B]F;&]A=&5R+U!+`0(4`!0``````!>ACS@`````````
+M```````:`````````````````!8!``!#;VYF:6=U<F%T:6]N<S(O<&]P=7!M
+M96YU+U!+`0(4`!0``````!>ACS@````````````````<````````````````
+M`$X!``!#;VYF:6=U<F%T:6]N<S(O<')O9W)E<W-B87(O4$L!`A0`%```````
+M%Z&/.````````````````!@`````````````````B`$``$-O;F9I9W5R871I
+M;VYS,B]M96YU8F%R+U!+`0(4`!0``````!>ACS@````````````````8````
+M`````````````+X!``!#;VYF:6=U<F%T:6]N<S(O=&]O;&)A<B]02P$"%``4
+M```````7H8\X````````````````'P````````````````#T`0``0V]N9FEG
+M=7)A=&EO;G,R+VEM86=E<R]":71M87!S+U!+`0(4`!0``````!>ACSC/HX#O
+M6P,``%L#```M`````````````````#$"``!0:6-T=7)E<R\Q,#`P,#`P,#`P
+M,#`P,#(P,#`P,#`P,C`P,#,P.48Q0RYP;F=02P$"%``4``@`"``7H8\X7#JJ
+M,LQ,`0!B'`T`"P````````````````#7!0``8V]N=&5N="YX;6Q02P$"%``4
+M``@`"``7H8\X(^K7Z#<.````@```"@````````````````#<4@$`<W1Y;&5S
+M+GAM;%!+`0(4`!0``````!>ACSC0-P9]!`8```0&```(````````````````
+M`$MA`0!M971A+GAM;%!+`0(4`!0`"``(`!>ACSBQC4!J_!0``!\5```8````
+M`````````````'5G`0!4:'5M8FYA:6QS+W1H=6UB;F%I;"YP;F=02P$"%``4
+M``@`"``7H8\XVHQ6Y.P%``!P)0``#`````````````````"W?`$`<V5T=&EN
+M9W,N>&UL4$L!`A0`%``(``@`%Z&/./Z)>4EE`0``%P@``!4`````````````
+M````W8(!`$U%5$$M24Y&+VUA;FEF97-T+GAM;%!+!08`````$``0`$D$``"%
+%A`$`````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/redline.txt
+++ openoffice.org-2.4.1/ooo-build/doc/redline.txt
@@ -0,0 +1,180 @@
+Notes on debugging redlining: from caolan.
+
+Delphic utterances:
+
+    "redlining sort of busted in the core for many things, but on the
+     basic ww8 side, it's fairly easy:  in ww8par4.cxx"
+	-> ww8par4.cxx (Read_CRevisionMark)
+	    -> ww8par6.cxx (NewAttr) -> redlinestack::open
+		+ filter/inc/fltshell.hxx (SwFltRedLine) attr ...
+		+ filter/inc/msfilter.hxx (RedLineStack)
+
+    "perhaps adding some prints to the ReadPlainChars and then
+     to sw:util::RedlineStack open & close might throw the
+     problem out"
+	+ ww8par.cxx (SwWW8ImplReader::ReadPlainChars)
+	+ writerhelper.cxx (RedlineStack::open) etc.
+
+    "could be a corrupt, or reading corrupt srpms property,
+     sometimes there are places where we get the length of
+     properties wrong, and so lose one"
+	"if the dates are whacked, then there might be some
+	 buggery along those lines"
+
+    "though writer's redlining is foul, word's is simply an
+     attribute like bold/italic. writer's is a sort of
+     bag-on-the-side et of indexes into places, and doesn't
+     work well with graphics and tables
+    "so we have to cut up the word span into little mini
+     "acceptable to writer" spans when the redline range
+     encompases eg. text table text so someting might have
+     gone wrong in a place like that too"
+
+    "in *theory* in *theory*, though I don't think it ever happens
+     those redline properties could appear in styles and not as
+     hard-attributes during text. No idea if we ever handled that
+     case, but that's unlikely. It'll be a more prosaic out by one or
+     something"
+
+    "the 'redline' problem is sort of the same as the 'delete a table
+     in a document if there's no content before it' problem. ie. there
+     is no place for the cursor to go so as to be able to get the
+     range over which to put redlining, same as putting the cursor
+     into eg. the last cell of a table and select as far as *outside*
+     the table into the following paragraph"
+	 "eg. new writer doc->insert table, try & delete - foo !
+			    ->return, insert table, easy to delete - baa!"
+
+
+
+** sw/inc/redlenum.hxx:
+
+enum SwRedlineType
+{
+	// die RedlineTypen gehen von 0 bis 127
+	REDLINE_INSERT, 			// Inhalt wurde eingefuegt
+	REDLINE_DELETE, 			// Inhalt wurde geloescht
+	REDLINE_FORMAT,				// Attributierung wurde angewendet
+	REDLINE_TABLE,				// TabellenStruktur wurde veraendert
+	REDLINE_FMTCOLL,			// FormatVorlage wurde veraendert (Autoformat!)
+
+	// ab 128 koennen Flags hineinverodert werden
+	REDLINE_NO_FLAG_MASK	= 0x007f,
+	REDLINE_FLAG_MASK		= 0xff80,
+	REDLINE_FORM_AUTOFMT	= 0x0080	// kann als Flag im RedlineType stehen
+
+
+*** Helpful debugging patch ***
+
+--- sw/source/filter/ww8/writerhelper.cxx
++++ sw/source/filter/ww8/writerhelper.cxx
+@@ -833,6 +833,10 @@ namespace sw
+ 
+         void RedlineStack::open(const SwPosition& rPos, const SfxPoolItem& rAttr)
+         {
++                       const SwFltRedline *pRl = static_cast<const SwFltRedline *> (&rAttr);
++                       fprintf (stderr, "RedlineStack::open type %d (%d) Auth %d (%d)\n",
++                                        pRl->eType, pRl->eTypePrev, pRl->nAutorNo, pRl->nAutorNoPrev);
++
+             ASSERT(rAttr.Which() == RES_FLTR_REDLINE, "not a redline");
+             maStack.push_back(new SwFltStackEntry(rPos,rAttr.Clone()));
+         }
+@@ -858,7 +862,12 @@ namespace sw
+                 SameOpenRedlineType(eType));
+             ASSERT(aResult != maStack.rend(), "close without open!");
+             if (aResult != maStack.rend())
++                       {
++                               const SwFltRedline *pRl = static_cast<const SwFltRedline *> ((*aResult)->pAttr);
++                               fprintf (stderr, "RedlineStack::close intype %d type %d (%d) Auth %d (%d)\n",
++                                                eType, pRl->eType, pRl->eTypePrev, pRl->nAutorNo, pRl->nAutorNoPrev);
+                 (*aResult)->SetEndPos(rPos);
++                       }
+         }
+ 
+ 
+diff -u -p -u -r1.168 ww8par.cxx
+--- sw/source/filter/ww8/ww8par.cxx
++++ sw/source/filter/ww8/ww8par.cxx
+@@ -2609,6 +2609,8 @@ bool SwWW8ImplReader::ReadPlainChars(WW8
+ 
+     if (nL2)
+     {
++               fprintf (stderr, "Text: '%s'\n",
++                                rtl::OUStringToOString (sPlainCharsBuf, RTL_TEXTENCODING_UTF8 ).getStr() );
+         AddTextToParagraph(sPlainCharsBuf);
+         rPos += nL2;
+         if (!maApos.back()) //a para end in apo doesn't count
+
+
+*** Sample output ***
+
+RedlineStack::open type 1 (0) Auth 1 (65535) /DELETE
+RedlineStack::open type 0 (0) Auth 2 (65535) /INSERT 
+Text: 'such'
+RedlineStack::close intype 0 type 0 (0) Auth 2 (65535) /INSERT
+RedlineStack::close intype 1 type 1 (0) Auth 1 (65535) /DELETE
+
+
+* During RedlineStack destruction:
+
+        RedlineStack::~RedlineStack()
+        {
+            std::sort(maStack.begin(), maStack.end(), CompareRedlines());
+            std::for_each(maStack.begin(), maStack.end(), SetInDocAndDelete(mrDoc));
+        }
+
+void SetInDocAndDelete::operator()(SwFltStackEntry *pEntry)
+     + presumably where the entries actually are inserted
+
+before sort
+type delete auth# 1 time 2006-06-21 10:42:00.00
+type insert auth# 2 time 2029-06-00 00:02:00.00
+after sort
+type delete auth# 1 time 2006-06-21 10:42:00.00
+type insert auth# 2 time 2029-06-00 00:02:00.00
+
+** Core redlining support:
+
+    + sw/source/core/doc/docredln.cxx
+
+** Most likely:
+    + date/time support broken ...
+
+
+
+** Good trick:
+
+    + Export to Office Open XML & poke:
+
+      <w:ins w:id="0" w:author="Author">
+        <w:del w:id="1" w:author="Travis Tom" w:date="2006-06-21T10:42:00Z">
+          <w:r w:rsidR="0075694B" w:rsidDel="0056141D">
+            <w:rPr>
+              <w:color w:val="000000"/>
+              <w:sz w:val="20"/>
+              <w:szCs w:val="20"/>
+            </w:rPr>
+            <w:delText>such</w:delText>
+          </w:r>
+        </w:del>
+      </w:ins>
+    </w:p>
+
+
+** code: ww8par4.cxx
+
+    pPlcxMan->HasCharSprm( bIns ? 0x6805 : 0x6864, aResult);
+    pSprmCDttmRMark = aResult.empty() ? 0 : aResult.front();
+
+-> ww8scan.cxx::HasCharSprm -> HasSprm
+    -> ww8scan.hxx: WW8SprmIter::GetAktParams
+        const BYTE* GetAktParams() const { return pAktParams; }
+
+ww8scan.hxx:
+
+struct SprmInfo
+{
+    sal_uInt16 nId;         //A ww8 sprm is hardcoded as 16bits
+    unsigned int nLen : 6;
+    unsigned int nVari : 2;
+};
--- openoffice.org-2.4.1.orig/ooo-build/doc/print-integration.txt
+++ openoffice.org-2.4.1/ooo-build/doc/print-integration.txt
@@ -0,0 +1,62 @@
+Gnome printing integration...
+
+* VCL
+
+** GUI
+	+ Name/Status/Location/Comment
+	+ print to file [PDF/PS]
+	+ Print range; - All/Pages/Selection
+	+ Number of copies / collate
+	+ 'Properties' ...
+	+ same for every component so far.
+	+ "Extended Options"
+		+ calc
+			+ Suppress output of empty pages
+			+ Print only selected sheets
+		+ writer
+			+ Contents
+				+ Graphics, Tables, Drawings, Controls,
+				  Background, Print black
+			+ Pages
+				+ Left pages, right pages,
+				  reversed, brochure
+			+ Notes
+				+ None, notes only, end of document,
+				  end of page
+			+ Other
+				+ create single print jobs
+				+ paper tray from printer settings
+				+ FAX ...
+		+ impress
+			+ Contents
+				+ Drawing, Notes, Handouts, Outline
+			+ Quality
+				+ Default, Greyscale, Black&White
+			+ Print
+				+ Page name, Date, Time, Hidden pages
+			+ Page options
+				+ Default, Fit to page, Tile pages,
+				  Brochure [ Front, Back ],
+				  Paper tray from printer settings
+	+ ergo extended options => app specific, and not implementable.
+	+ Dialog in very bad need of layout.
+
+** Code
+	+ No printer dialog in VCL
+	+ svtools/source/dialogs/printdlg.cxx (PrintDialog)
+		+ the only implementation / not sub-classed.
+		  only inherited virtual functions.
+		+ svtools/inc/printdlg.hxx
+		+ re-write the dialog completely ...
+
+* libgnomeprintui
+
+** GUI
+	+ As per Galeon's method:
+		dialog = gnome_print_dialog_new(job, "Print", 0);
+		g_object_set_data      (G_OBJECT (dialog), "job",          job);
+		gnome_print_dialog_print_file_hack (GNOME_PRINT_DIALOG (dialog));
+		config = gnome_print_job_get_config(job);
+		g_object_set_data_full (G_OBJECT (config), "tempfilename", filename, g_free);
+		g_object_unref(config);
+		...
--- openoffice.org-2.4.1.orig/ooo-build/doc/setup.txt
+++ openoffice.org-2.4.1/ooo-build/doc/setup.txt
@@ -0,0 +1,28 @@
+./setup.bin -debug -net -v -r:/tmp/aresp.conf -d:/tmp/dest_dir
+
+	-v verbose mode, print status ...
+	-n / -net - do a network install
+	-f:<app-to-run-following-install>
+	-d:<destination path>
+	-debug - stops the intermediate /tmp/sv00N.tmp dir being removed
+	         with the live instset in it
+
+	-r:<filename> - response filename
+	-rsp1:<filename> - response level 1 [?]
+	-rsp2:<filename> - response level 2 [?]
+
+	-rspa
+	-rspa:<filename> - resp. file autopilot (creation) GUI
+
+	-nogui - disable GUI in response file mode; #7630
+
+[[/tmp/aresp.conf]]
+[ENVIRONMENT]
+INSTALLATIONMODE=INSTALL_NETWORK
+INSTALLATIONTYPE=STANDARD
+OUTERPATH=
+LOGFILE=
+LANGUAGELIST=<LANGUAGE>
+
+[JAVA]
+JavaSupport=preinstalled_or_none
--- openoffice.org-2.4.1.orig/ooo-build/doc/history.txt
+++ openoffice.org-2.4.1/ooo-build/doc/history.txt
@@ -0,0 +1,37 @@
+Milestone:
+
+
+NLD9 (1.1+2.0bits)
+
+.     evo2    gcc34   mscodec vclplug wpd
+318     30      4       7       83      40
+
+
+SL9.3 (pre2.0)
+
+.       64bit   evo2    mono
+227      78      29      4
+
+
+2.0.0
+
+.       64bit   cairo   evo2    mono	vba
+344       65      58      3       22	83
+
+
+2.0.1
+
+.       64bit   cairo   evo2    mono    vba
+422     85      42      4       23      104
+
+
+2.0.2
+
+.       64bit   cairo   evo2    mono    scsolver        vba
+428     54      59      2       22      63      313
+
+2.0.3
+
+.       64bit   cairo   evo2    mono    scsolver        vba
+378     2       4       2       23      87      313
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/code-sizes.txt
+++ openoffice.org-2.4.1/ooo-build/doc/code-sizes.txt
@@ -0,0 +1,176 @@
+8284	boost.tar.bz2
+7684	icu.tar.bz2
+7000	extras.tar.bz2 - was 25157
+6602	sw.tar.bz2
+6502	svx.tar.bz2
+4793	sc.tar.bz2
+4016	berkeleydb.tar.bz2
+4004	xalan.tar.bz2
+3776	stlport.tar.bz2
+3652	offapi.tar.bz2
+3203	odk.tar.bz2
+3123	hsqldb.tar.bz2
+2539	default_images.tar.bz2
+2378	i18npool.tar.bz2
+2166	sd.tar.bz2
+2050	officecfg.tar.bz2
+1970	svtools.tar.bz2
+1922	xmerge.tar.bz2
+1838	sfx2.tar.bz2
+1754	sal.tar.bz2
+1694	ooo_custom_images.tar.bz2
+1638	libxmlsec.tar.bz2
+1574	vcl.tar.bz2
+1481	qadevOOo.tar.bz2
+1469	dbaccess.tar.bz2
+1393	netbeans_integration.tar.bz2
+1253	rhino.tar.bz2
+1089	nas.tar.bz2
+1017	wizards.tar.bz2
+997	framework.tar.bz2
+965	extensions.tar.bz2
+925	sysui.tar.bz2
+921	desktop.tar.bz2
+869	xmloff.tar.bz2
+753	connectivity.tar.bz2
+749	external.tar.bz2
+745	sch.tar.bz2
+721	beanshell.tar.bz2
+705	instsetoo_native.tar.bz2
+677	psprint_config.tar.bz2
+633	chart2.tar.bz2
+585	basic.tar.bz2
+561	filter.tar.bz2
+541	smoketestoo_native.tar.bz2
+513	tools.tar.bz2
+493	psprint.tar.bz2
+493	configmgr.tar.bz2
+481	libwpd.tar.bz2
+477	solenv.tar.bz2
+464	epm.tar.bz2
+444	xmlsecurity.tar.bz2
+412	dmake.tar.bz2
+408	portaudio.tar.bz2
+400	readlicense_oo.tar.bz2
+384	starmath.tar.bz2
+380	goodies.tar.bz2
+368	forms.tar.bz2
+356	ucb.tar.bz2
+344	scripting.tar.bz2
+344	scaddins.tar.bz2
+316	so3.tar.bz2
+304	autodoc.tar.bz2
+260	toolkit.tar.bz2
+256	sablot.tar.bz2
+244	basctl.tar.bz2
+240	scp2.tar.bz2
+232	bridges.tar.bz2
+220	slideshow.tar.bz2
+200	padmin.tar.bz2
+196	stoc.tar.bz2
+172	rsc.tar.bz2
+168	canvas.tar.bz2
+160	agg.tar.bz2
+156	comphelper.tar.bz2
+156	basegfx.tar.bz2
+152	expat.tar.bz2
+152	automation.tar.bz2
+148	fpicker.tar.bz2
+140	hwpfilter.tar.bz2
+136	shell.tar.bz2
+136	jurt.tar.bz2
+132	XmlSearch.tar.bz2
+128	uui.tar.bz2
+120	msfontextract.tar.bz2
+120	cppuhelper.tar.bz2
+116	udkapi.tar.bz2
+116	setup_native.tar.bz2
+116	lingucomponent.tar.bz2
+112	xmlhelp.tar.bz2
+112	unotools.tar.bz2
+112	dtrans.tar.bz2
+108	linguistic.tar.bz2
+104	config_office.tar.bz2
+100	package.tar.bz2
+100	embeddedobj.tar.bz2
+100	crashrep.tar.bz2
+100	cppu.tar.bz2
+96	ucbhelper.tar.bz2
+96	transex3.tar.bz2
+92	sot.tar.bz2
+88	vos.tar.bz2
+88	soltools.tar.bz2
+84	testshl2.tar.bz2
+84	codemaker.tar.bz2
+80	idlc.tar.bz2
+72	registry.tar.bz2
+72	pyuno.tar.bz2
+72	avmedia.tar.bz2
+68	testtools.tar.bz2
+64	regexp.tar.bz2
+64	javaunohelper.tar.bz2
+64	cppcanvas.tar.bz2
+60	xmlscript.tar.bz2
+60	jvmfwk.tar.bz2
+56	idl.tar.bz2
+52	store.tar.bz2
+52	np_sdk.tar.bz2
+48	cli_ure.tar.bz2
+44	sj2.tar.bz2
+44	io.tar.bz2
+44	embedserv.tar.bz2
+44	accessibility.tar.bz2
+40	i18nutil.tar.bz2
+40	bean.tar.bz2
+36	unoxml.tar.bz2
+36	UnoControls.tar.bz2
+36	cosv.tar.bz2
+32	xml2cmp.tar.bz2
+32	sax.tar.bz2
+32	ridljar.tar.bz2
+28	udm.tar.bz2
+28	sandbox.tar.bz2
+28	rvpapi.tar.bz2
+24	writerperfect.tar.bz2
+24	unixODBC.tar.bz2
+24	twain.tar.bz2
+20	salhelper.tar.bz2
+20	remotebridges.tar.bz2
+20	rdbmaker.tar.bz2
+20	cpputools.tar.bz2
+20	animations.tar.bz2
+16	ure.tar.bz2
+16	jvmaccess.tar.bz2
+16	jut.tar.bz2
+12	testshl.tar.bz2
+12	postprocess.tar.bz2
+12	MathMLDTD.tar.bz2
+12	fileaccess.tar.bz2
+12	eventattacher.tar.bz2
+8	x11_extensions.tar.bz2
+8	unoil.tar.bz2
+8	sane.tar.bz2
+8	offuh.tar.bz2
+
+
+Already separate:
+
+28636	sdk_oo.tar.bz2
+17801	binfilter.tar.bz2
+7151	python.tar.bz2
+5646	dictionaries.tar.bz2
+3960	libxml2.tar.bz2
+1550	curl.tar.bz2
+1065	freetype.tar.bz2
+773	sndfile.tar.bz2
+613	jpeg.tar.bz2
+605	neon.tar.bz2
+348	bitstream_vera_fonts.tar.bz2
+188	zlib.tar.bz2
+72	moz.tar.bz2
+
+Others:
+
+23891	helpcontent2.tar.bz2 [ in -lang package ]
+~18000	extras.tar.bz2 - [was 25157]
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/testtoolrc.sample
+++ openoffice.org-2.4.1/ooo-build/doc/testtoolrc.sample
@@ -0,0 +1,43 @@
+[Misc]
+ServerTimeout=4500
+StopOnSyntaxError=0
+CurrentProfile=_profile_Novell OOo-2.0
+
+[Path]
+BaseDir=
+LogBaseDir=
+HIDDir=
+
+[GUI Platform]
+Current=03
+All=03
+
+[WinGeom]
+WinParams=4,25,1272,944;53;4,25,1272,944;
+
+[_profile_Novell OOo-2.0]
+LogBaseDir=/home/pmladek/OOo/qa/logs
+BaseDir=/home/pmladek/OOo/qa/qatesttool
+HIDDir=/home/pmladek/OOo/qa/qatesttool/global/hid
+AutoReload=0
+AutoSave=0
+StopOnSyntaxError=0
+
+[OOoProgramDir]
+Current=/usr/lib/ooo-2.0
+
+[Crashreporter]
+UseProxy=false
+ProxyServer=
+ProxyPort=
+AllowContact=false
+ReturnAddress=
+
+[Communication]
+Host=localhost
+TTPort=12479
+UnoPort=65535
+
+[LRU]
+MaxLRU=4
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/gw-odma.txt
+++ openoffice.org-2.4.1/ooo-build/doc/gw-odma.txt
@@ -0,0 +1,194 @@
+Random notes after testing 2.0.2 and GW 7 by tml:
+=================================================
+
+These notes are from testing with OOo 2.0.2 built with
+novell-win32-odma.diff as it was in late March, 2006, and GroupWise 7.
+
+* Registry:
+
+The ODMA 2.0 documentation says one needs the following stuff in the
+Registry:
+
+HKEY_CLASSES_ROOT\ODMA32.FileTypes\<FileType> = "<AppSubkey>"
+
+where <FileType> is the default value in the HKEY_CLASSES_ROOT\<ext>
+for the file extension in question. For instance,
+"opendocument.WriterDocument.1" for the .odt extension, and <AppSubkey>
+is the application's AppId as passed to ODMRegisterApp(). This is
+"sodma" for OOo. (See the #define of ODMA_ODMA_REGNAME in
+odma_provider.hxx and the call to NODMRegisterApp() in
+odma_provider.cxx:ContentProvider::getHandle().)
+
+HKEY_CLASSES_ROOT\ODMA32.ClientApps\<AppSubkey> = "<AppId>"
+
+where both <AppSubkey>> and <AppId> are again "sodma".
+
+These entries should be added when installing OOo. (Until this gets
+done automatically by the installer, do it manually.)
+
+For some reason, it seems to be enough to have the above for only
+"opendocument.WriterDocument.1", and the below will still work also
+for .odp documents, for instance???
+
+* GroupWise
+
+After installing GroupWise, go to
+Tools:Options:Documents:Integrations. Check Enable integrations,
+select each of the OpenDocument applications and toggle the Enabled
+button. When GW warns that the application is not registered with GW
+as an ODMA integrated application, click Yes. Click OK and
+Close.
+
+Leave GW, and launch it again. Have a look at
+Tools:Options:Documents:Integrations again, and you will notice that
+the integration enablings didn't seem to "stick"... but but no worry,
+once you double-click on an OOo document, it launches OOo, and from
+the title bar you can verify that you are operating on the document
+from GW: The title bar should say something like:
+
+ ::ODMA\GRPWISE\EMEA1.EMEA1-DOC.EMEA-General_Use:16344 - OpenOffice.org Writer
+
+If it instead just gives a file name like 16344-2.odt, GW doesn't know
+of the integration .
+
+* No registry entries needed at all?
+
+Actually, testing a bit more (yay for vmware, makes it trivial to go
+back to a known clean state repeatedly) indicates that no
+ODMA32.FileTypes or ODMA32.ClientApps Registry entries at all seem to
+be necessary. (This was also indicated by the fact that Word
+integrates very nicely with GW, and doesn't add any such Registry
+entries.)
+
+What you need to do is turn on integration for OpenDocument Text, for
+instance, in GW, then double-click on some such document in GW. This
+will make GW notice the integration permanently, also for the other
+OpenDocument types. Weird...
+
+Older stuff by mmeeks:
+======================
+
+* Groupwise / ODMA work:
+
+** Final status:
+
+    + Version mismatch causes grief
+    + OO.o UCP API usage very odd, pwrt 'transfer' (Save)
+	+ always uses SaveAs (with NULL name) [ bFolder brokenness ? ]
+	+ does OpenDoc / re-save having done the transfer [ most odd ]
+    + Not convinced that we can hook 'Close' properly
+      without more core changes
+
+** Hidden gotchas
+
+    + Adding a key of name length > 8 chars to ODMA32 registry
+      entry results in silent fatal errors opening ODMA connection.
+
+** Version 1.0: (Groupwise):
+
+ODMRegisterApp
+ODMUnRegisterApp
+ODMSelectDoc
+ODMOpenDoc
+ODMSaveDoc
+ODMCloseDoc
+ODMNewDoc
+ODMSaveAs
+ODMActivate
+ODMGetDocInfo
+ODMSetDocInfo
+ODMGetDMSInfo
+ODMGetODMInterface
+ODMGetLeadMoniker
+ODMQueryInterface
+
+** OO.o tests (for version 2.0):
+
+ODMRegisterApp
+ODMUnRegisterApp
+ODMSelectDoc
+ODMOpenDoc
+ODMSaveDoc
+ODMCloseDoc
+ODMNewDoc
+ODMSaveAs
+ODMActivate
+ODMGetDocInfo
+ODMSetDocInfo
+ODMGetDMSInfo
+ODMGetDMSCount
+ODMGetDMSList
+ODMGetDMS
+ODMSetDMS
+ODMQueryExecute
+ODMQueryGetResults
+ODMQueryClose
+ODMCloseDocEx
+ODMSaveAsEx
+ODMSaveDocEx
+ODMSelectDocEx
+ODMQueryCapability
+ODMSetDocEvent
+ODMGetAlternateContent
+ODMSetAlternateContent
+ODMGetDocRelation
+ODMSetDocRelation
+
+** Differences
+
+* 'OpenFolder' / folder browse functionality:
+    < missing ODMQueryExecute >	    - used in queryContentProperty
+    < missing ODMQueryGetResults >  - used in getResult
+    < missing ODMQueryClose >	    - used in getResult
+
+* Extended versions of things we need:
+	[ for use of the ODM_SILENT flag ]
+    < missing ODMCloseDocEx >	- used in closeDocument
+    < missing ODMSaveDocEx >	- used for saveDocument
+    < missing ODMSaveAsEx >	- used for 'transfer' (save) command
+
+< missing ODMGetDMS >		- unused
+< missing ODMGetDMSCount >	- unused
+< missing ODMGetDMSList >	- unused
+< missing ODMSetDMS >		- unused
+< missing ODMQuerySelectDocEx >	- unused
+< missing ODMQueryCapability >	- unused
+< missing ODMSetDocEvent >	- unused
+< missing ODMGetAlternateContent >  - unused
+< missing ODMSetAlternateContent >  - unused
+< missing ODMSetDocRelation >	    - unused
+< missing ODMGetDocRelation >	    - unused
+
+[ unused but in GW version ]:
+ODMGetODMInterface
+ODMGetLeadMoniker
+ODMQueryInterface
+
+
+
+1. detect ODMA configured & in-use ...
+    + if so, throw up the new dialog
+	    + [ never show me this again ]
+	+ interact with that dialog
+
+2. creating a dialog
+    + can do that quite easily.
+
+--- might work ---
+
++ add code to ODMA UCP +
+    + 'create new document'
+    + - detect if ODMA stuff configured correctly -
+	+ is there a provider ?
+	    + odma::LoadLibrary
+
++ wrapper foo - activate ODMA component
+    + if not there -> proxy
+    + else dialog : QueryBox ...
+
+--- implement 'createFoo' method ---
+
+odma_content.cxx 'insert'
+    + poke here ...
+
+.src file
--- openoffice.org-2.4.1.orig/ooo-build/doc/fields.txt
+++ openoffice.org-2.4.1/ooo-build/doc/fields.txt
@@ -0,0 +1,57 @@
+Requirement:
+    Make editing readonly documents with multiple fields pleasant
+	 ie. <tab><edit><tab><edit>
+
+<michael_> caolan: around ?
+<michael_> caolan: I have a word/forms query - from a lead,
+<michael_> caolan: they have a document, with a load of read-only content & fields in it,
+<michael_> caolan: they're used to pressing <tab> - to get to the next field, and typing content in directly.
+<michael_> caolan: OO.o insists on click-directly-on-the-field, and then we get a sick pop-up ;-)
+<michael_> caolan: is there a way to get a nice tab/edit/tab/edit experience [ some random setting somewhere ] ?
+<caolan> michael_: I know, there are only two available options in writer, fixed width "forms", and variable width "fields" with the pop-up
+<caolan> michael_: originally I tried the fixed width, which has the nice traversal behaviour, but crap visual appearance. 
+<michael_> ah; so this is more of an import behavior things.
+<michael_> I saw that the fields defaulted to an N space-char string ;->
+<caolan> michael_: i.e. layout wrong, so the input field was the best I could do.
+<caolan> michael_: yes. fixed with, guessing at len etc is a total failure layout wise, worse is the multiline behaviour.
+<caolan> michael_: so input field is the best option, and I'm sure I logged a feature against UserExperience or OS for tab traversal/direct input for the input fields, or for a new field which operated the ms-way
+<michael_> caolan: so we trade ergonomics for layout ?
+>caolan< I'd hate to get the user in a really bad mood,
+>caolan< this is for the proabation form for a US state :-)
+<caolan> michael_: yes. the "fixed width" form control is actually a 1-1 mapping to the VBA input box, which is what the fixed width should be restricted to
+>caolan< "ARGH - no tab!" "you're all going down forever"
+
+<caolan> and vice-versa I can quote the german tax office about the problematic layout in the other case :-)
+<michael_> haha,
+<michael_> sigh - so there is no way to fix it,
+<michael_> beyond re-working the document to use fixed-width fields,
+<michael_> s/fields/form elements/
+<caolan> there are 3 things in word, vba fixed, "ask" fields which popup a dialog, and these fields
+<caolan> there are 2 things in writer, fixed uno control forms, and the input field which popups a dialog
+<caolan> something has got to give, I hijacked the input field to serve as ask and this input field
+<michael_> ok :-)
+* michael_ is very slow here,
+<michael_> so - starting again from scratch,
+<michael_> there is essentially no feature in OO.o that will allow one a ~variable width, in-sheet-editable, tab-traversable field.
+<caolan> yup
+<michael_> you either get a big-square-ugly-box which is tab-traversible, or a nasty-pop-up-ergonomic-nightmare ?
+<caolan> yup
+<michael_> s/square/rectangular/
+<michael_> neat :-)
+<michael_> thanks for the insight,
+<michael_> .
+<caolan> perhaps adding a "next" button to the input field to go from input field to the next one without pain would be useful
+<caolan> there's precedent in other fields I think
+<michael_> I imagine, doing this generically is hard, inasmuch that the layout logic is much more complex for the in-doc-editable thing ?
+<michael_> sure;
+<michael_> but - grief; that pop-up dialog is sooo ugly,
+<michael_> :-
+<michael_> :-)
+<michael_> man months for clueless me to fix this problem ?
+<caolan> yeah, the in-doc thing is just a graphic/object, a big stupid square. fine for some small things like fill in x chars, but disasterous for free form text
+<caolan> depends on what you want to do, add a next button -> easy, add a new field like the input box would be reasonably easy, but there are no other fields I think which are directly editable, so there's probably dragons there
+<michael_> right;
+<michael_> so - 2 months ?
+<caolan> not a bad guesstimate I guess, oh yeah writer specific. Though worth seeing if excel has the same form fields, there was some overlap I heard at one stage
+<caolan> i suppose there's some possible hack option with allowing tab traversal in a readonly document to include this type of field, and invoking the dialog on a keystroke when on such a field
+<michael_> yes; that might fly,
--- openoffice.org-2.4.1.orig/ooo-build/doc/setup-update.txt
+++ openoffice.org-2.4.1/ooo-build/doc/setup-update.txt
@@ -0,0 +1,25 @@
+Update mode in setup:
+
+Autoreponse: UPDATEMODE=IF_AVAILABLE
+
+setup2/source/other/respfile.cxx (ReadUpdateMode)
+    eUpdate = IF_AVAILABLE ...
+
+(ProcessEvents)
+    if (bIsUpdate)
+        bDoUpdate = TRUE;
+
+            if ( bDoUpdate )
+            {
+                if ( pEnv->IsUpdateOldVersionNoRights() )
+                    Critical_Error( ERR_UPDATE_NO_RIGHTS, "" );
+                if ( pEnv->IsUpdateOldVersionWrongLanguage() )
+                    Critical_Error( ERR_UPDATE_WRONG_LANGUAGE, "" );
+                
+                pEnv->SetUpdateOldVersion( TRUE );
+                nReturnEvent = EVT_START_UPDATE_OLD_VERSION;
+                break;
+            }
+
+-> setup2/source/ui/mainevt.cxx (UserEvent)
+   -> (RunUpdateOldVersion)
\ No newline at end of file
--- openoffice.org-2.4.1.orig/ooo-build/doc/source-split.txt
+++ openoffice.org-2.4.1/ooo-build/doc/source-split.txt
@@ -0,0 +1,38 @@
+- the proposed layout
+  - 52M     ure
+    17M     ooo-bootstrap
+    107M    ooo-libs-core
+    83M     ooo-libs-guitoolkit
+    137M    ooo-libs-3rdparty
+    12M     ooo-apps-base
+    23M     ooo-apps-calc
+    26M     ooo-apps-extensions
+    11M     ooo-apps-chart
+    35M     ooo-apps-impress
+    33M     ooo-apps-writer
+    14M     ooo-artwork
+    83M     ooo-filters
+    863M    ooo-l10n
+    40M     ooo-sdk
+    34M     ooo-testing
+    (1.6G   total)
+  - see git/ooo-link-modules.list for what should belong where
+
+- ooo-bootstrap
+  - scp2 must be split and the respective part present in each ooo-*/ure, not
+    in ooo-bootstrap!
+  - ln -s ../ooo-artwork/default_images . in ooo-bootstrap (or where the
+    solver is) so that vcl builds [needs the checkbox etc. images]
+
+- ooo-libs-guitoolkit
+  - vcl does not compile without access to default_images - needs them for the
+    checkboxes etc.
+    Workaround: ln -s ../ooo-artwork/default_images . in ooo-bootstrap (or
+    where the solver is)
+
+- ooo-libs-3rdparty
+  - cli_types.dll should be delivered to the solver so that ure/cli_ure compiles.
+
+- ure
+  - javaunohelper/com/sun/star/comp/juhtest does not compile without ucb, must
+    be disabled (together with javaunohelper/com/sun/star/comp)
--- openoffice.org-2.4.1.orig/ooo-build/doc/lwp.txt
+++ openoffice.org-2.4.1/ooo-build/doc/lwp.txt
@@ -0,0 +1,273 @@
+More information linked from:
+     http://www.openoffice.org/issues/show_bug.cgi?id=11215
+   http://www.xpertss.com/cgi-bin/WebX?23@101.nptzachifeG.0@13%40.ee735e2/0
+and [ very interesting ]
+   http://info.wgbh.org/upf/pdfs/BentoSpec1_0d5.pdf
+
+Thunking also seems to happen with 0x01 & 0x02 characters
+There is a ~unambiguous string run length
+      => we must have some fixed-length records.
+
+
+Framing from repeat sections: ?
+
+000019f0  40 10 40 10 61 fb ff 70  01 45 2e 8c 03 04 12 01  |@.@.a..p.E......|
+00001a00  40 10 40 10 61 f7 ff 70  08 40 01 50 03 54 82 03  |@.@.a..p.@.P.T..|
+00001a10  04 12 01 40 10 40 10 61  f7 ff 70 01 45 2e 8c 03  |...@.@.a..p.E...|
+00001a20  04 12 01 40 10 40 10 61  ef ff 70 08 40 03 50 04  |...@.@.a..p.@.P.|
+00001a30  54 82 03 04 12 01 40 10  40 10 61 ef ff 70 01 45  |T.....@.@.a..p.E|
+00001a40  2e 8c 03 04 12 01 40 10  40 10 61 df ff 70 08 40  |......@.@.a..p.@|
+00001a50  05 50 05 54 82 03 04 12  01 40 10 40 10 61 df ff  |.P.T.....@.@.a..|
+00001a60  70 01 45 2e 8c 03 04 12  01 40 10 40 10 61 bf ff  |p.E......@.@.a..|
+00001a70  70 08 40 01 50 06 54 82  03 04 12 01 40 10 40 10  |p.@.P.T.....@.@.|
+00001a80  61 bf ff 70 01 45 29 8c  03 04 12 01 40 10 40 10  |a..p.E).....@.@.|
+00001a90  61 7f ff 70 08 40 03 50  07 54 82 03 04 12 01 40  |a..p.@.P.T.....@|
+00001aa0  10 40 10 61 7f ff 70 01  45 29 8c 03 04 12 01 40  |.@.a..p.E).....@|
+00001ab0  10 40 10 61 ff fe 70 08  40 05 50 08 54 82 03 04  |.@.a..p.@.P.T...|
+00001ac0  12 01 40 10 40 10 61 ff  fe 70 01 45 29 82 03 04  |..@.@.a..p.E)...|
+00001ad0  12 01 40 10 40 10 61 ff  fd 70 01 45 28 8c 03 04  |..@.@.a..p.E(...|
+
+	  Unless - the tag is unimportant - just seeks the next recurrence (?)
+
+
+ Odd section:
+ 02 02 3f bf 62 65 20 6f 6e 20 68 69 73 20 66 69 | ..?.be on his fi
+ 72 73 74 20 65 6e 74 65 72 69 6e 67 20 61 20 6e | rst entering a n
+ 65 69 67 68 62 6f 75 72 68 6f 6f 64 2c 20 74 68 | eighbourhood, th
+ 69 73 20 74 72 75 74 68 20 69 73 20 73 6f 20 77 | is truth is so w
+ 65 6c 6c 01 c0 02 53 53 45 6e 64 00 00 94 02 2e | ell...SSEnd.....
+          ^^^^^^^^
+ 00 02 6a c1 02 2f 41 02 2d 48 0f 61 01 6d 46 8d | ..j../A.-H.a.mF.
+ 46 c3 01 f6 28 0e 41 01 96 40 01 42 | F...(.A..@.B
+
+    Very unusual - _looks_ like there may be some overarching stream
+encapsulation above this, with an underlying 2byte based framing (?)
+
+    eg. could this be a directory entry & if so, is it possible that
+some of the data is just uninitialised / random.
+
+Field 0x01 (last 01) [0] length 152
+  01 f6 98 ff bc ff bc ff bc ff bc ff bc ff bc ff | ................
+  bc ff bc ff bc ff bc ff bc ff bc ff bc ff bc ff | ................
+  bc ff bc ff bc ff bc ff bc ff bc ff bc ff bc ff | ................
+  00 00 00 0d 00 4d 69 73 63 65 6c 6c 61 6e 65 6f | .....Miscellaneo
+  75 73 00 00 1a 00 4d 00 69 00 73 00 63 00 65 00 | us....M.i.s.c.e.
+  6c 00 6c 00 61 00 6e 00 65 00 6f 00 75 00 73 00 | l.l.a.n.e.o.u.s.
+  46 69 6c 65 50 72 6f 74 65 63 74 69 6f 6e 00 48 | FileProtection.H
+  65 61 64 65 72 00 4c 57 50 53 74 72 65 61 6d 54 | eader.LWPStreamT
+  79 70 65 00 50 72 65 76 69 65 77 00 57 6f 72 64 | ype.Preview.Word
+  50 72 6f 44 61 74 61 00 | ProData.
+Field 0x01 (last 01) [0] length 1
+
+    All (test) .lwp files include 'LWPStreamType' and 'WordProData'
+strings.
+
+    Saving a large .jpeg inside a .lwp file, results in a very large
+.lwp file - apparently storing the data as a .bmp internally.
+
+00002f60  00 44 c0 01 44 59 c6 a4  31 a2 41 25 1a 49 24 2b  |.D..DY..1.A%.I$+|
+00002f70  49 d6 2c 48 0c af 59 c6  a4 31 e1 fa 4f 41 bd 5d  |I.,H..Y..1..OA.]|
+00002f80  d9 31 51 76 bc 31 ca 26  2f 32 c9 30 2f 32 aa e0  |.1Qv.1.&/2.0/2..|
+00002f90  11 32 7b 18 b8 32 45 19  37 32 ad 65 fe 31 a7 63  |.2{..2E.72.e.1.c|
+00002fa0  fe 31 7b 52 30 32 42 4d  da 20 5d 00 00 00 00 00  |.1{R02BM. ].....|
+00002fb0  36 04 00 00 28 00 00 00  0c 0d 00 00 23 07 00 00  |6...(.......#...|
+
+    Indeed, chopping the prepended data out, gives a pristine .bmp; 
+        => the framing structure can cope with large chunks / lengths
+        => there is no escaping of (binary) stream contents
+	=> there must be a directory / length description / offset
+	   table somewhere.
+
+    OLE2 support - I can insert an OO.o formula editor piece.
+	=> there must be some flattening of OLE2 Storage ->
+	   a Stream, streams seem to be appended.
+
+.SAM file has [ right at the end ] a name-less directory:
+	[Embedded]
+	1 .ole 10916 7462 0 0
+	2 .ole 18378 11707 0 0
+	3 .ole 30085 8382 0 0 
+	00038469
+
+	-the .sam file length is 38564
+
+    ole.lwp file has last 8 bytes:
+000085a0  a4 43 4d a5 48 64 72 d7  01 01 01 00 02 00 00 00  |.CM.Hdr.........|
+000085b0  84 81 00 00 1c 04 00 00                           |........|
+	       81 84 + 04 1c = 85a1
+
+    austin.lwp:
+000333c0  00 18 ff ff a4 43 4d a5  48 64 72 d7 01 01 01 00  |.....CM.Hdr.....|
+000333d0  02 00 00 00 b0 32 03 00  14 01 00 00              |.....2......|
+000333dc
+    0332b0 +0114 = 333c4
+
+    Looks like the last 4 bytes could be an offset skipping the
+Header, followed by a length of data after that.
+    Interestingly in both instances, the data is aligned
+	=> all .lwp files are a multiple of 4 bytes long;
+	    [ seems to hold for our test files ]
+	=> there must be some internal pad / alignment adjustment
+
+Lotus hosted junk:
+
+Smartsuite:
+	http://www-128.ibm.com/developerworks/lotus/products/smartsuite/
+Lotus Word Pro <x.y> docs:
+	http://www-10.lotus.com/ldd/notesua.nsf/ddaf2e7f76d2cfbf8525674b00508d2b/8454a86d0399e63c00256c170040be11?OpenDocument
+fixing corrupted files (?)
+       http://www-1.ibm.com/support/docview.wss?rs=481&context=SSKTZ5&uid=swg27002671&loc=en_US&cs=utf-8&lang=en
+
+
+
+From: 	Tim Reid  <timothymreid@hotmail.com>
+To: 	Michael Meeks <michael@ximian.com>
+Subject: 	Word Pro files
+
+Well, I got somewhere with this, but hardly that you'd notice ...
+
+I enclose some text in ASCII, Word Pro format and Ami Pro format. Also, I'm
+enclosing my doodlings on a chunk from the Word Pro file. It seems as if the
+text itself is stored in pieces, with some length information. I'm going to
+call each of the pieces a scrap (for want of a word). A scrap seems to be:
+
+  o one byte of <length>
+  o one byte of <something>
+  o some ASCII characters totalling <length> displayable characters,
+        but possibly also containing some control characters (e.g. 0xc6,
+        0xc2) embedded directly in the text.
+
+The file working.txt shows this. Non-printable characters (and a few
+printable ones as well) have been replaced with #nn where nn is the hex
+representation of the byte. The only other thing I've added is a double
+colon at the beginning of lines which represent a complete scrap, that is
+the number of displaying characters is verified correct.
+
+You'll see that most lines are represented by one scrap. However, in a few
+cases, a line is split up into several scraps. "Mr. Bennet" seems to suffer
+from this particularly badly, but "Mrs. Long" seems fine. Hmmm.
+
+Also there is a 0x0202 (shown as #02#02) before most scraps, and seemingly
+always before scraps which start a line.
+
+The long parts like this:
+
+#01#02SSEnd#00#00#94#028#00#02#20#c1#029#41#027#48#19a#01mF#8dF#c3#01#f6#28#
+0e#41#01#96#40#01#41
+
+seem to come after each line (possibly each paragraph, as the pasted-in text
+comes with embedded newlines, of course - I've only just twigged that) and
+two where there is a blank line in the text. Note the one-up counter things
+at bytes ten and sixteen, after #02.
+
+Right, better go. I hope that this is of some help, at least. Let me know
+what you think.
+
+
+
+* Lotus Word Pro - part of SmartSuite, originally named 'Ami Pro'
+    + .lwp - lotus word pro
+    + .sam - Ami Pro file (from company Samna)
+
+* Interesting (?)
+    http://www.abisource.com/mailinglists/abiword-dev/02/Mar/0387.html
+    http://webcvs.kde.org/cgi-bin/cvsweb.cgi/koffice/filters/kword/amipro/
+
+* Format dissimilar to MS Word format:
+	formatting there seems to be a separate appendage;
+	no useful comparison.
+
+* Austen annotations:
+
+It is a truth universally acknowledged, that a single man in
+
+#01#02SSEnd#00#00#94#02*#00#02#5c#c1#02+#41#02#29#48#0ba#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+
+#02#02
+::#38#b9possession of a good fortune, must be in want of a wife.
+
+#01#02SSEnd#00#00#94#02+#00#02#20#c1#02,#41#02*#48#0ca#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01#41
+#01#02SSEnd#00#00#94#02,#00#02`#c1#02-#41#02+#48#0da#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#3c#bdHowever little known the feelings or views of such a man may
+
+#01#02SSEnd#00#00#94#02-#00#02d#c1#02.#41#02,#48#0ea#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#3f#bfbe on his first entering a neighbourhood, this truth is so well
+
+#01#c0#02SSEnd#00#00#94#02.#00#02j#c1#02#2f#41#02-#48#0fa#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#45#bffixed in the minds of the surrounding families, that he is consi#c6dered
+
+#01#02SSEnd#00#00#94#02#2f#00#02b#c1#020#41#02.#48#10a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#3e#bfthe rightful property of some one or other of their daughters.
+
+#01#02SSEnd#00#00#94#020#00#02#20#c1#021#41#02#2f#48#11a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01#41
+#01#02SSEnd#00#00#94#021#00#02v#c1#022#41#020#48#12P#0c#41#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#0d#91"My dear Mr. 
+
+#82#02#04#12#01#40#20#40#20#40#20#0b#c0
+::#08#8aBennet,"
+
+#02#02
+::#28#a9 said his lady to him one day, "have you
+
+#01#02SSEnd#00#00#94#022#00#02e#c1#023#41#021#48#13P#0c#41#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#0b#8fheard that 
+
+#82#02#04#12#01#40#20#40#20#40#20#0b#c0#0b#8dNetherfield
+
+#02#02
+::#16#97 Park is let at last?"
+#01#02SSEnd#00#00#94#023#00#02#20#c1#024#41#022#48#14a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01#41
+#01#02SSEnd#00#00#94#024#00#02#5c#c1#025#41#023#48#15P#0c#41#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#04#88Mr. 
+
+#82#02#04#12#01#40#20#40#20#40#20#0b#c0
+
+::#06#88Bennet
+
+#02#02
+::#19#9a replied that he had not.
+
+#01#02SSEnd#00#00#94#025#00#02#20#c1#026#41#024#48#16a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01#41
+#01#02SSEnd#00#00#94#026#00#02f#c1#027#41#025#48#17a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#41#bf"But it is," returned she; "for Mrs. Long has just been here, an#c2d
+
+#01#02SSEnd#00#00#94#027#00#02>#c1#028#41#026#48#18a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#1a#9bshe told me all about it."
+
+#01#02SSEnd#00#00#94#028#00#02#20#c1#029#41#027#48#19a#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01#41
+#01#02SSEnd#00#00#94#029#00#02S#c1#02:#41#028#48#1aP#0c#41#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#04#88Mr. 
+
+#82#02#04#12#01#40#20#40#20#40#20#0b#c0
+
+::#06#88Bennet
+
+#02#02
+::#10#91 made no answer.
+
+#01#02SSEnd#00#00#94#02:#00#02#20#c1#02;#41#029#48#1ba#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01#41
+#01#02SSEnd#00#00#94#02;#00#02^#c1#02<#41#02:#48#1ca#01mF#8dF#c3#01#f6#28#0e#41#01#96#40#01B
+
+#02#02
+::#3a#bb"Do you not want to know who has taken it?" cried his wife
--- openoffice.org-2.4.1.orig/ooo-build/doc/novell-configuration.txt
+++ openoffice.org-2.4.1/ooo-build/doc/novell-configuration.txt
@@ -0,0 +1,46 @@
+If you want to build Novell version of OOo on a selected product, you should
+use the following configure swithes:
+
+Vendor is always the same:
+
+    --with-vendor=Novell
+
+
+Distribution depends on the product you want to built on. You can use the
+following distro tags if you want to build on HEAD, such as a SUSE Linux
+alpha or beta version:
+
+    --with-distro=SUSE
+or 
+    --with-distro-NLD
+
+
+You should use the following tags if you want to build on a released product:
+
+    --with-distro=SUSE-MAJOR_VER.MINOR_VER
+or
+    --with-distro-NLD-VER
+    
+For example:
+
+    --with-distro=SUSE-9.3
+or
+    --with-distro=NLD-9
+
+We added extra configuration for each distribution because there were necessary
+some product specific hacks. For example, system Berkley db cannot be used on
+SUSE Linux < 10.1.
+
+IMPORTANT: These are only the configure swithes. The configure script
+translates the NLD tags to the respective SUSE tags and ONLY the SUSE
+tags can be used on other locations inside ooo-build!!!
+
+The translation is done because we have started to use the same packages
+on both products since SL10.1/NLD10. The extra things for NLD are put into
+the subpackage nld. Thereafter the build hacks have to be the same for NLD
+and the respective SL version...
+
+The current translation table looks like:
+
+    NLD-9   ->   SUSE-9.1
+   (NLD-10  ->   SUSE-10.1   - not yet released)
--- openoffice.org-2.4.1.orig/ooo-build/doc/wait-to-exit.txt
+++ openoffice.org-2.4.1/ooo-build/doc/wait-to-exit.txt
@@ -0,0 +1,110 @@
+** Notes on making OO.o wait to exit instead of immediate quit having
+   spawned a new factory instance.
+
+desktop/source/app/officeipcthread.[ch]xx:
+
+class OfficeIPCThread : public vos::OThread
+    ...
+    vos::OPipe		maPipe;
+    vos::OStreamPipe	maStreamPipe;
+
+
+OfficeIPCThread::run():
+    + maPipe.accept( maStreamPipe )
+	    + UH !? - why do we put this in a global variable ?
+
+vos/inc/vos/pipe.hxx:
+    TPipeError SAL_CALL accept(OStreamPipe& Connection);
+
+    class OStreamPipe : public NAMESPACE_VOS(OPipe),
+	                public NAMESPACE_VOS(IStream)
+
+
+    The client code waits for a reply to be written to the pipe;
+ergo a quick hack is to add '-wait', for just 1 document; and
+block the IPC thread until we get a reply [ pretty ugly ]
+
+    'cProcessed.set()' - the condition we wait on for stuff
+to happen - why bother ? why bother blocking all of OO.o for
+stuff to happen ? [ perhaps a feature ? ] either way - we could
+use cProcessed.set() - perhaps (?).
+
+    Minimal changes:
+	    + ie. continue to block / signal cProcessed
+		( pRequest->pcProcessed ) in every case.
+	    + allocate the stream connection ...
+
+* ProcessDocumentsRequest does the real open
+    + passed to app.cxx (OpenClients).
+	[ it seems the args are just parsed on both sides ]
+    + OfficeIPCThread::ExecuteCmdLineRequests
+	+ builds DispatchWatcher::DispatchList aDispatchList ...
+	+ invokes DispatchWatcher::GetDispatchWatcher() [ XDispatchListener ]
+	( dispatchwatcher.cxx )
+	   executeDispatchRequests
+	    + This builds a set of (fake) URIs & argument data,
+	    + iterates over doing a xDisp->dispatchWithNotification
+		+ dispatchFinished then called per dispatch finished ...
+
+
+    + Implementation in framework/source/dispatch/basedispatcher.cxx
+	    + [ addStatusListener / removeStatusListener (progress) ]
+	    + we need a handle to what got loaded though ...
+	    
+
+
+
+
+	    + need a new method 'fileFinished' [!?]
+		+ and a map of who is waiting for whom ;->
+		  [ a ] waits for [ b ]
+		  simple struct list is fine.
+			[ DispatchResultEvent ]
+	    + also used in sfx2/source/appl/appopen.cxx
+
+
+struct EventObject
+{
+    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > Source;
+};
+struct DispatchResultEvent: com::sun::star::lang::EventObject
+{
+    /** describes state of dispatch
+    short State;
+    /** describes result for given <var>State</var>
+    any Result;
+};
+
+
+* framework/source/dispatch/basedispatcher.cxx:
+	(implts_sendResultEvent)
+	    + aEvent.State == css::frame::DispatchResultState::SUCCESS
+	    + aEvent.Source = (css::frame::XDispatch*) this; [ BaseDispatcher ]
+	    + aEvent.Result == css::uno::Reference< css::frame::XFrame >& xEventSource
+
+* So - we need to work with the XFrame ...
+	+ frameAction/FrameActionListener - seems uninteresting.
+
+	+ frameworks/source/services/frame.cxx
+	    + COMPONENT_DETACHING, REATTACHED, ATTACHED
+
+	+ addCloseListener() ...
+
+	'getController()->getModel()->
+
+* sfx2/source/doc/sfxbasemodel.cxx
+	+ 'addCloseListener' ...
+	    + [ XCLOSELISTENER ]
+	+ 'isModified'
+
+* Security audit this mess [!] ...
+	+ nasty hole in there.
+
+
+* TODO / Test:
+    + multiple files opened; we need some
+      ref count / gateing somewhere.
+    + file already open [!?] need a list of
+      clients to notify ...
+
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/binutils.txt
+++ openoffice.org-2.4.1/ooo-build/doc/binutils.txt
@@ -0,0 +1,321 @@
++ Fixes to make:
+
+ -Bdirect: cuml. dlopen times:
+0.676526
+0.695816
+0.703797
+ normal: culm dlopen times:
+1.811801
+1.830609
+1.859336
+
+kcachgrind: 10million L1 cache misses, 2.3million L2 misses
+LD_DEBUG=stats - 64k named relocations
+=160 L1 cache misses each, & 31 L2 misses each.
+
+Afterwards:
+    Linking 'only' ~15% of the time (vs. 50%)
+	+ still the largest single thing though.
+
+
+    + suse-dynsort: FIXME: need to free this data too ...
+
+
+The dynsort harness: -zdynsort, -hashvals:
+UnSorted
+Iter 39.66 ms
+Iter 39.60 ms
+Iter 41.17 ms
+Iter 39.49 ms
+Sorted
+Iter 14.18 ms
+Iter 14.22 ms
+Iter 14.12 ms
+Iter 15.06 ms
+     ie. a ~60% speedup [ no benefit from -Bdirect either ;-]
+
+-Wl,-Bdirect -Wl,-z dynsort -Wl,-hashvals
+
+** Generating a new '.suse.hashvals' section **
+   DT_SUSE_HASHVALS 0x60000000d 0x6ffff000
+   + Random no. in range:
+	SUSE_LO 6cbdd030
+	SUSE_HI 6cbdd031
+
+VCL diffs:
+    Iter 192.02 ms
+    Iter 192.23 ms
+    Iter 192.22 ms
+
+    Iter 94.25 ms
+    Iter 93.78 ms
+    Iter 94.96 ms
+
+
+   + Easy to output
+	+ re-factoring glibc is a *total* PITA ...
+
+	dl-reloc.c - calls 'RESOLVE_MAP'
+
+(gdb) p map->l_info[0x4b]
+$2 = (Elf32_Dyn *) 0x0
+(gdb) p *map
+$3 = {l_addr = 1073872896, l_name = 0x400009a8 "/usr/lib/libstdc++.so.6",	
+
+** 
+
+
+Improving binutils' symbol & reloc sorting efficiency:
+
+// Improved binutils symbol sorting for cache efficiency ...
+    + Unfortunately -Wl,-combreloc exports & re-imports
+      the relocs before sorting them [ most odd ]
+
+    + We sort .dynsym nicely (by elf hash)
+	+ we fail to sort .dynstr
+	    - in sequence of suffix order [!?]
+	+ elf-strtab.c (_bfd_elf_strtab_finalize)
+	    + does a sort - but only on a copy ...
+		+ also assigns hard addresses [!]
+	    + ultimately in bfd_strtab_add order ...
+		+ can we sort earlier & influence that ?
+	    + red herring:
+	    	    + '_bfd_elf_export_symbol' ...
+	    + _bfd_elf_merge_symbol (?)
+	    + *Unfortunately*
+		+ the sym table is already built & swapped out (?)
+
+    + we want relocs sorted by absolute elf hash value
+	+ Unfortunately - we don't have the symbol foo here
+	+ which *really* sucks ...
+	+ The relocs are typically just copied from the source
+	  though so ... _bfd_elf_link_output_relocs ...
+	    + the SymStrTab + contains all the symbols
+	    + in the right order - given an index each
+	    + unfortunately inaccessible by 'index' ...
+    + Back the strhash with the actual string data ? [!?]
+	+ thus avoiding foos ?
+
+    + and we want symbols sorted by % hash_table_size
+        + HACK: _bfd_elf_link_renumber_dynsyms [!?]
+	    + sort as we renumber ?
+	+ bfd_elf_final_link
+	    + elf_link_hash_traverse ... elf_link_output_extsym
+	    + [ elf_sort_symbol ? ]
+
+    ** Could we have a flat array of entries ?
+	+ we need Index [ it's a byte index ... ]
+	+ urgh ...
+		+ st_name is a byte offset into foo
+
+
+    ** Problems:
+	+ dynsym index order is: (bfd_elf_final_link):
+	    + dummy_symbol [elf_link_output_sym ...]
+	    + elf_link_hash_traverse (elf_link_output_extsym...)
+		localsyms = true
+	    + abfd->sections order
+	    + local dynsyms ...
+	    + elf_link_hash_traverse (elf_link_output_extsym)
+		localsyms = false
+    ** To Do:
+	+ 'simply' - pre-quicksort on 
+	    (elf_link_hash_entry):
+	    ** h->u.elf_hash_value % hash_size [!?]
+	+ iterate over that instead of the hash ...
+	+ also sorts the strings by elf hash incidentally :-)
+
+	+ bucketcount = elf_hash_table (finfo->info)->bucketcount;
+	+ bucket = h->u.elf_hash_value % bucketcount;
+
+	    + compute_bucket_count ...
+		+ builds 'hashcodes' list ...
+		+ used only locally ...
+
+    ** What about _bfd_elf_link_renumber_dynsyms ...
+	+ what about hash table removals
+	    - surely they change the order of traversal ?
+
+** Hack elf_link_hash_traverse
+	+ in 2 modes: pre-sort & post sort.
+
+** We want to sort before _bfd_elf_link_renumber_dynsyms:
+	from bfd_elf_size_dynamic_sections ...
+	    + bucketcount calculated on line 5787
+		+ bfd_elf_size_dynamic_sections [4987->5816]
+	    + renumber_dynsyms is line 5715
+		+ [urk]
+
+dltest.c - simple dlopen 100 times of libvcl:
+Iter 0.12241 us
+Iter 0.12255 us
+Iter 0.12828 us
+
+sorted alphabetically:
+Iter 0.12222 us
+Iter 0.12506 us
+Iter 0.12137 us
+
+just libvcl sorted by elf_hash % bucketcount:
+Iter 0.11994 us
+Iter 0.11950 us
+Iter 0.11959 us
+
+more libvcl ldd output re-linked:
+     sal, libutl, libsot
+
+unchanged:
+Iter 0.36873 us
+Iter 0.36727 us
+Iter 0.3777 us
+Iter 0.39592 us
+Iter 0.41514 us -- outlier
+Iter 0.38233 us
+
+Avg: 0.3784 ( + 0.3845 with outlier)
+
+changed:
+Iter 0.35362 us
+Iter 0.35221 us
+Iter 0.3547 us
+Iter 0.37611 us
+Iter 0.38871 us
+Iter 0.37706 us
+
+Avg: 0.3671
+
+** sorting relocs by elf hash
+   + store the hash value as we write it out ?!
+   + store an array of 'h' pointers per reloc ?
+...
+    + then we have an array of foo ...
+	+ or ? ... symbol foo...
+    + OR - store the symbol strings in a chunk
+      instead & index by offsets ?
+	+ can realloc take that ?
+	+ can we work out the size in advance ?
+	+ can we get a very-slow prototype ?
+    + foo:
+	+ just read-in the elf string tab anyway.
+	+ it got emitted by bfd_stringtab_emit just above anyway.
+
+    + relocations - point into dynsym ? - if so - horay ;-)
+	+ we can use the previous sort / foo table too ?
+	+ otherwise we screwed that up nastily [?]
+	    + hmm.
+
+    + relocs must have a dynsym ptr - since that's
+      what we accelerate -Bdirect with ...
+
+** TODO
+	+ Check that we do elide partially matching symbols ...
+	+ run 'make check' (?)
+	    + 3 unexpected failures
+		+ all related to having re-sorted syms / relocs
+
++ Issues:
+	+ qsort 'global' closure ?
+	    + Pre % the elf symbol hash data with the
+	      bucket count ! :-)
+	+ add an elf_link_hash_entry pointer and pass
+	  that (if we can) from bfd_elf_link_record_dynamic_symbol ?
+	+ then we can avoid re-calculating the symbol hash etc.
+	  also get the foo to baa more nicely ... (?)
+
+
+** Way better:
+    + 30% faster ...
+	[ for my 1 test ;-]
+
+** For just libsvx: - each avg of 10 runs:
+
+Unsorted:
+Iter 549 ms
+Iter 552 ms
+Iter 550 ms
+     Avg: 550ms
+
+Sorted:
+Iter 536 ms
+Iter 540 ms
+Iter 540 ms
+     Avg: 539ms
+
+
+** For libvcl: avg of 50 runs
+    + with 5 of it's deps re-linked:
+
+Unsorted:
+Iter 88.45 ms
+Iter 88.27 ms
+Iter 89.89 ms
+Iter 88.65 ms
+     + 88.82ms
+
+Sorted:
+Iter 85.11 ms
+Iter 85.22 ms
+Iter 85.43 ms
+Iter 84.57 ms
+     + 85.08ms
+
+
+** Analysis of the test harness:
+
+L2 data read misses:
+
+do_lookup_x    362k -> 130k
+strcmp	       159k -> 53k
+_dl_elf_hash   158k -> 147k
+
+L1 data read misses:
+
+_dl_relocate_obj    1649k -> 587k
+do_lookup_x	    923k -> 295k
+_dl_elf_hash	    187k -> 162k
+strcmp		    216k -> 80k
+
+michael@linux:/opt/OOInstall/program> for a in 0 1 2 3 4 5 6 7 8 9; do /opt/gcc/src/dynsort-test/dltest 10 ./libsvx680li.so; done
+Iter 982.57 ms
+Iter 1028.00 ms
+Iter 1029.86 ms
+Iter 1019.55 ms
+Iter 1047.68 ms
+Iter 1031.04 ms
+Iter 1051.30 ms
+Iter 1029.33 ms
+Iter 1016.63 ms
+Iter 615.35 ms
+michael@linux:/opt/OOInstall.sorted/program> for a in 0 1 2 3 4 5 6 7 8 9; do /opt/gcc/src/dynsort-test/dltest 10 ./libsvx680li.so; done
+Iter 938.20 ms
+Iter 962.02 ms
+Iter 941.60 ms
+Iter 944.48 ms
+Iter 931.99 ms
+Iter 942.54 ms
+Iter 953.35 ms
+Iter 939.51 ms
+Iter 962.91 ms
+Iter 949.63 ms
+
+
+Not having 'UNDEF' slots in the chain:
+no slots:
+Iter 3753.08 ms
+Iter 3602.53 ms
+Iter 3654.38 ms
+Iter 3575.02 ms
+Iter 3661.06 ms
+Iter 3659.29 ms
+slots:
+Iter 3526.86 ms
+Iter 3634.79 ms
+Iter 3666.99 ms
+Iter 3595.30 ms
+Iter 3685.82 ms
+Iter 3681.00 ms
+
+michael@linux:/opt/OOInstall/program> objdump -T libsvx680li.so | grep '\*UND\*' | wc -l
+5219
+michael@linux:/opt/OOInstall/program> objdump -T libsvx680li.so | grep -v '\*UND\*' | wc -l
+48289
--- openoffice.org-2.4.1.orig/ooo-build/doc/performance-data.sxw.uu
+++ openoffice.org-2.4.1/ooo-build/doc/performance-data.sxw.uu
@@ -0,0 +1,171 @@
+begin 644 doc/performance-data.sxw
+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
+M9&]C=6UE;G0M;65T82!054),24,@(BTO+T]P96Y/9F9I8V4N;W)G+R]$5$0@
+M3V9F:6-E1&]C=6UE;G0@,2XP+R]%3B(@(F]F9FEC92YD=&0B/CQO9F9I8V4Z
+M9&]C=6UE;G0M;65T82!X;6QN<SIO9F9I8V4](FAT='`Z+R]O<&5N;V9F:6-E
+M+F]R9R\R,#`P+V]F9FEC92(@>&UL;G,Z>&QI;FL](FAT='`Z+R]W=W<N=S,N
+M;W)G+S$Y.3DO>&QI;FLB('AM;&YS.F1C/2)H='1P.B\O<'5R;"YO<F<O9&,O
+M96QE;65N=',O,2XQ+R(@>&UL;G,Z;65T83TB:'1T<#HO+V]P96YO9F9I8V4N
+M;W)G+S(P,#`O;65T82(@;V9F:6-E.G9E<G-I;VX](C$N,"(^/&]F9FEC93IM
+M971A/CQM971A.F=E;F5R871O<CY/<&5N3V9F:6-E+F]R9R`Q+C$N,R`H3&EN
+M=7@I/"]M971A.F=E;F5R871O<CX\(2TM-C0U*$)U:6QD.C@W.30I+2T^/&UE
+M=&$Z8W)E871I;VXM9&%T93XR,#`U+3`Q+3(W5#$Q.C`T.C0X/"]M971A.F-R
+M96%T:6]N+61A=&4^/&1C.F1A=&4^,C`P-2TP,BTP,50Q-SHP,#HQ,#PO9&,Z
+M9&%T93X\9&,Z;&%N9W5A9V4^96XM55,\+V1C.FQA;F=U86=E/CQM971A.F5D
+M:71I;F<M8WEC;&5S/C$Y/"]M971A.F5D:71I;F<M8WEC;&5S/CQM971A.F5D
+M:71I;F<M9'5R871I;VX^4%0Y2#$T334U4SPO;65T83IE9&ET:6YG+61U<F%T
+M:6]N/CQM971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@,2(O/CQM
+M971A.G5S97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@,B(O/CQM971A.G5S
+M97(M9&5F:6YE9"!M971A.FYA;64](DEN9F\@,R(O/CQM971A.G5S97(M9&5F
+M:6YE9"!M971A.FYA;64](DEN9F\@-"(O/CQM971A.F1O8W5M96YT+7-T871I
+M<W1I8R!M971A.G1A8FQE+6-O=6YT/2(Q(B!M971A.FEM86=E+6-O=6YT/2(P
+M(B!M971A.F]B:F5C="UC;W5N=#TB,"(@;65T83IP86=E+6-O=6YT/2(R(B!M
+M971A.G!A<F%G<F%P:"UC;W5N=#TB,3,P(B!M971A.G=O<F0M8V]U;G0](C0P
+M,R(@;65T83IC:&%R86-T97(M8V]U;G0](C,Q,C0B+SX\+V]F9FEC93IM971A
+M/CPO;V9F:6-E.F1O8W5M96YT+6UE=&$^4$L#!!0`"``(`,5;03(`````````
+M```````,````<V5T=&EN9W,N>&ULS5E;5^HX%'Z?7\'T=1:VU*,C+N6L`A91
+MN5DNVK>TB5!-DYPDI7!^_:0M.$>D9SF%KC4^8-OL?GMGY]LWN/J^"G%EB;@(
+M*+G6:B>&5D'$IS`@\VMM,K:K%]KWQA]7?[8'K?'S\*9"7UX"'UU"ZD<A(K(J
+MD)1*5E2&D^9#MU71JKH^8(@,4KD3RN>ZWAZW*]E]>_-:12G2]9N^5M$RP!,H
+MH=:XRD575A)QF2U?:PLIV:6N4Z6'_JO'-`Q#S^ZUS0LK')"W=_DXCD_BTU2V
+M5J_7]71U*^I3\A+,?X-=TS,1;>N##UY[MWUK<N,J$]\`5P.)PF0_E<UC`D*U
+MDV6`XO==:OO>^2@_5?(61V!,F;9=D6NF5@(BM89QI7]&^#KJ`WJ1)<#.`B@7
+M^W!-\^\+\S#L6Q3,%WN-KIGF64%P9T'C1P05/5!K`<@<B1T%'J48`:(U)(]0
+M<1VW"$#$9XL`HR:GL5`DR%/T`K`X0)--J2Q?4Y>DX*A'(3H*?#4$K!H0B%8(
+M?C[__0&3OJ.2!U]_C45=N&.JD#QQ3R.)S0/8F1=,=<.\*(Z:$_AGM?-:45`1
+M>!@=/?13U&.GJ13T,2_BDW1RF!>:5$H:YF63@F:[E(9CA;1+LP7EQ7V1@-K`
+MEY3OAZT9!8&[PD$8^1)!FZL'!<)XS\-?8S)O>1/F^P54B?Q:0<UN(@ZD*LW_
+MI;):$`X!!V.@:.`PX)>3(8<JM<A'E+0.:#?O'`/_074T$P:!W)>#M]0H!JTJ
+M(5>$0[Q%0\:12'J?H],Z]8^C?(_1'?5RR^X!'LJ\8W,5DRAD6%V7=<Q#P!!/
+M%#E(1KMY\!A:%&73&%6]M2)Z&<Y*]Y&4AB$HI0E*\=.0*P$\(:RT(DFS(R_)
+M^A95:8WBLIR#^%[V`('.OS4#`OA::[CQ[5_Z:7,-9F>&^]2U_N]_H]IT-/G)
+M8C_$$>Q,U[\1G5E6S^*C[$;7+YJ6M7#4Y0U4'TY8#QX[MO'L6*L6>=]_W;^]
+M8QYYQ/Z<+94.K*X7L(.7WFMMY)W>&7YH,VBQ5^^TR=RG7KTW8C^?35NX8V/5
+M:UOWWLQ>NR:.W([]`S[U#6\VC6#;B!_:ENBUXK@5]I=>I[YV.],8=N;UWNOH
+MWK_M"_?)Q9Z2^V7=!+,^'HZM^XG=O!F9]62_WU*;1^S.(\T:M/O".QV=CV?X
+MS>VLL&4W%ZXY'8,GA@=O-X;:YO4!]+$(H3*MA?GUH&"JMAC#ZXE`O`TD.#[[
+M[0!A6&;T.F")IMD(/R`M3$49A2!1TL'4`WC[U4=2H<M(U5UQCSBQ1`#(,"*^
+MC-)3+Z/JX&!.5,YV)&5#*H*2U+0BSI6[$G(EV2[Y[]"(^Y](G$UK^I?S:?]S
+M5[N=^%@F<4"\V6"5C_]5&],!IZ2*VQ4/P$/O;"RG*]EMI"WI2%6+2VNT.!5,
+MC2QEX7<X8(O`+^$T+(QIG.I0W6X+$!_A$OJ@CY&DVO<0$+BG=3]D-M\$5U<-
+M<0RI#Y7HP)I&NV>RC31$$GK`@BV\0`,,^U'H(5[BF)9$8!/X;W-.(Y([K!W[
+M7`Y+'6T.XG3@+:<;;6+E#UMUO$4J6.Y<KW_ZZES/^R&@\0]02P<(82&-?*`$
+M``"Q&```4$L#!!0`"``(`,5;03(````````````````5````345402U)3D8O
+M;6%N:69E<W0N>&ULK9.Q;L(P$(;W/H5[>W+0J4($I!(J56I+!A@ZNLZ%6'+L
+MR+Y0\O9UAT`ELD1BLZV[[_]\LI?K<V/$B7S0SF8P3V<@R"I7:GO,X+!_39YA
+MO7I8/N:[S?ZKV(I&6EU1X,6P$,7AY?UM(R!!W+5D=U6E%:7.'Q'S?2X^AKK(
+M1MQ^@H#A*"VYA`B_948I&R[;#&KF=H'H(M]=^4^SV1R'H@@25U*E#25DV??_
+MC*G4,N&^I0QDVQJM),=;X\F6:>AL&D/3'Z^9/%R;JLZ8I)5<9X"`DS+&*856
+MW'D*4VG1>!#^UE;Z?AQO9.\Z3I14-4U,8#HSQB&,@Y6S')O_IG17;N#>4+@[
+MMB&6]W<EYO@Q+K9+O'FZJU]02P<(R30=X1,!``!2`P``4$L!`A0`%```````
+MQ5M!,N&E,3D>````'@````@``````````````````````&UI;65T>7!E4$L!
+M`A0`%```````Q5M!,JY*TVT6````%@````P`````````````````1````&QA
+M>6]U="UC86-H95!+`0(4`!0`"``(`,5;03('#U4FT@H``+AC```+````````
+M`````````(0```!C;VYT96YT+GAM;%!+`0(4`!0`"``(`,5;03)I7KGY;P4`
+M`+85```*`````````````````(\+``!S='EL97,N>&UL4$L!`A0`%```````
+MQ5M!,H0X5;<N!```+@0```@`````````````````-A$``&UE=&$N>&UL4$L!
+M`A0`%``(``@`Q5M!,F$AC7R@!```L1@```P`````````````````BA4``'-E
+M='1I;F=S+GAM;%!+`0(4`!0`"``(`,5;03+)-!WA$P$``%(#```5````````
+M`````````&0:``!-151!+4E.1B]M86YI9F5S="YX;6Q02P4&``````<`!P"4
+)`0``NAL`````
+`
+end
--- openoffice.org-2.4.1.orig/ooo-build/doc/macro-compile-parse.txt
+++ openoffice.org-2.4.1/ooo-build/doc/macro-compile-parse.txt
@@ -0,0 +1,240 @@
+the whole Parse chain is generally set in motion via
+
+SbiModule::Compile
+ while ( SbiParser::Parse() )
+
+for the purpose of example consider the following module code
+
+e.g. 
+line: content
+-------------
+1     REM  *****  BASIC  *****
+2     
+3     Sub Main
+4     n = 52
+5     cMAX = 10.234
+6     Dim mRangeArray(0, 0) as String
+7     ReDim mRangeArray(CInt(cMAX), n) as String
+8     'msgbox (  ("here"), cInt(2) , "foo" )
+9     End Sub
+
+
+this compiles into the following pcode
+
+SbiRuntime::StepSTMNT (3, 0)
+SbiRuntime::StepSTMNT (4, 0)
+SbiRuntime::StepFIND (2, 12)
+SbiRuntime::StepLOADI (52)
+SbiRuntime::StepPUT
+SbiRuntime::StepSTMNT (5, 0)
+SbiRuntime::StepFIND (3, 12)
+SbiRuntime::StepLOADNC (4)
+SbiRuntime::StepPUT
+SbiRuntime::StepSTMNT (6, 0)
+SbiRuntime::StepLOCAL (5, 8)
+SbiRuntime::StepARGC
+SbiRuntime::StepLOADI (0)
+SbiRuntime::StepBASED (0)
+SbiRuntime::StepARGV
+SbiRuntime::StepARGV
+SbiRuntime::StepLOADI (0)
+SbiRuntime::StepBASED (0)
+SbiRuntime::StepARGV
+SbiRuntime::StepARGV
+SbiRuntime::StepFIND (32773, 8)
+SbiRuntime::StepDIM
+SbiRuntime::StepSTMNT (7, 0)
+SbiRuntime::StepFIND (5, 8)
+SbiRuntime::StepERASE
+SbiRuntime::StepARGC
+SbiRuntime::StepARGC
+SbiRuntime::StepFIND (3, 12)
+SbiRuntime::StepARGV
+SbiRuntime::StepRTL (32774, 2)
+SbiRuntime::StepBASED (0)
+SbiRuntime::StepARGV
+SbiRuntime::StepARGV
+SbiRuntime::StepFIND (2, 12)
+SbiRuntime::StepBASED (0)
+SbiRuntime::StepARGV
+SbiRuntime::StepARGV
+SbiRuntime::StepFIND (32773, 8)
+SbiRuntime::StepREDIM
+SbiRuntime::StepSTMNT (9, 0)
+SbiRuntime::StepLEAVE
+
+REM and its line contents are practically ignored as they are not compilable content, ditto the blank lines, the Next significate line to be processed is
+
+Sub Main
+which initially yields the SUB token, SUB is processed as follows
+
+where 
+SbiParser::Parse
+   SbiParser::Peek()
+   tests for end of file 
+      if true ( generates code ( JMP 0 ) for that ) and returns FALSE to terminate the compile
+   test for end of line  
+      calls Next() and return TRUE ( indicating more stuff to parse )
+
+the main SbiParser::Parse function sets detects the main statements to process like function/subroutine etc. ( keywords are picked up from StmntTable in parser.cxx, note in addition to the Statements the appropriate handlers (functions) are also defined e.g. SbiParser::SubFunc )
+   A SUB, FUNCTION or PROPERY results in a  STATEMENT getting generated 
+
+SbiParser::SubFunc
+   SbiParser::DefProc
+      create a SbiProcdecl by calling SbiParser::ProcDecl
+          a new SbiProcDef is created to hold procedure related info e.g. ( scope ( static, public etc. ) params defined for the procedure, local variables, return type )
+      if public the SbiProcDecl instance is added to aPublics ( list of public procedures )
+      SbiParser::pProc is set to the current procedure
+      OpenBlock() is called ( with SUB token )
+          creates a SbiParseStack ( and sets SbiParser::pStack to that )
+      StmntBlock( ENDSUB )          
+          does a while loop on Parse ( e.g. recursive call ) 
+          SbiParse::Parse()
+1st iter
+=========
+            processes the tokens e.g. like line 4 "n = 52"
+            the first token to be read is n which doesn't match anything token is deemed to be a SYMBOL ( e.g. to be resolved later or at runtime, basically a SYMBOL is a lhs arg or a procedure call )
+            a SYMBOL is treated as follows
+                strange Next()/Push() call combination where Next() returns the previously "Peeked" SYMBOL, followed by a Push() to ensure Next() will be set up to return SYMBOL again
+                a STATEMENT is generated
+                SbiParser::Symbol() is called
+                    which creates a SbiExpression aVar( this, SbSYMBOL ) [1]
+                    peeks at the next symbol to decide whether this is a procedure/object call or EQ ( it is in this case EQ )
+                    aVar.Gen( eRecMode ) ( from above ) is called the value of eRecMode refects whether this is EQ or call
+
+                      calls SbiExprNode::GenElement( SbiOpcode eOp )(..) which generates a eOp  _FIND  e.g. ( StepFIND( id, type ) )
+		      pGen->Gen( _FIND.... ) where pGen is a SbiCodeGen 
+                      note: first call of SbiCodeGen::Gen will generate a statement ( STMNT  ) prior ti the desired type ( so in fact this will generates StepSTMNT(..) followed by StepFIND
+                   the above generates the lhs of the assignment
+                   for the rhs another SbiExpression is created e.g. SbiExpression aExpr(this) - note the lack a SbSYMBOL in the ctor [3]
+                   aExpr.Gen() is called  ( which generates _NUMBER with 52 )
+                   and then a _PUT is forced
+2nd iter
+========
+         processes newline
+3rd iter
+========
+         processes cMAX = 10.234
+            the processing is identical to the previous processing for "n = 52"
+4th iter
+========
+
+         Dim mRangeArray(0, 0) as String
+
+         fixed token to be consumed is of course the Dim
+         from the StmntTable we know SbiParser::DIM
+         First a STMNT is generated
+         then SbiParser::Dim()
+            calls SbiParser::DefVar()
+               calls SbiParser::VarDecl
+                   if the peeked token is a LPARAM then
+                      creates pDim = new SbiDimList( this );
+                         loops around each comma delimited expression ( and creates a SbiExpression for those )
+                   call TypeDecl to see if there is a 'as something' following the variable declaration  
+               add the SbiSymDef returned from SbiParser::VarDecl to the localvariables
+               another STMNT is emmited
+               An expression is created from the SbiSymDef returned from SbiParser::VarDecl ( no further parsing here, it's already done, it just sets up the info in the SbiExpression to allow the appropriate p-code to be emitted )
+               calling the Gen() on the the SbiExrNode recusively calls each SbiExprNode via aVar.pNext ( where aVar is essentially struture containing a linked list of more nodes, paramaters ( SbiExprList ( ARGC/ARGV ) ) & a symbol definition.
+
+this essentially results in the following pcode generated for the line above
+
+SbiRuntime::StepLOCAL (5, 8)     aVar.pNext->Gen() ( I think )
+SbiRuntime::StepARGC             aVar.pVar->Gen() - results in the SbiExprList->Gen()
+SbiRuntime::StepLOADI (0)
+SbiRuntime::StepBASED (0)
+SbiRuntime::StepARGV
+SbiRuntime::StepARGV
+SbiRuntime::StepLOADI (0)
+SbiRuntime::StepBASED (0)
+SbiRuntime::StepARGV
+SbiRuntime::StepARGV
+SbiRuntime::StepFIND (32773, 8)
+SbiRuntime::StepDIM
+
+5th iter
+---------
+7:     ReDim mRangeArray(CInt(cMAX), n) as String
+
+    this follows nearly the same path as above with the exception that a secodary sub-parsing happens for CInt(cMAX) which results in some extra processing for the RTL function ( and it's paramaters )
+[1]
+SbiExpression() this class is passed an instance of the parser and all of the work is done in the ctor,
+  basically depending of the type passed either
+    SbiExpression::Term() or SbiExpression::Boolean() are called which return a SbiExprNode ( )
+       SbiExpression::Term()
+          can handle a following '.' DOT and associated processing or..
+          locks the column ( why? ) pParser->LockColumn
+          Peeks at the following TOKEN 
+          if the peeked token == ASSIGN
+             unlocks the column if its and Assign and returns a new SbiExprNode( represents a single or list of expressions left to right *I think* )
+          if its a KeyWord and it's compatible and == INPUT then INPUT is turned into SYMBOL and returned, otherwise an Error is generated ( looks like INPUT has been filtered out here ) - check with other compat filtering to see why here, is this useful for filtering out other vba specific bits?
+          the is a check to see if parameters follow
+             if so then SbiParameters are created ( which can create further SbiExpressions etc. )
+          see if the current symbol ( "n" ) at the stage is in the pParser->pPool or if its in the RTL library e.g. pParser->CheckRTLForSym( aSym, eType );
+          if we don't have a symbol definition for the symbol then 
+             create a new symbol definition via AddSym[2]
+          create a new SbiExprNode          	
+          the SbiExprNode always has a valid instance of SbiParameters associated with it ( event if there are no paramaters ) so a new SbiParameters is created 
+          column is unlocked and the SbiNode created previously is returned
+
+      
+[2]
+A symbol definintion is defined by the SbiSymDef class, it of course defines the name of the symbol, it's type, it's scope, and can of course also define it's own symbols ( e.g. if the symbol is a procedure )
+
+[3]
+SbiExpression::SbiExpression calles
+    SbiExpression::Boolean() is called for a Standard expression
+        SbiExpNode pNd is created for from SbiExpression::Like()
+            SbiExpression::Like() calls SbiExprNode* pNd = Cat(), which inturn calls AddSub, Mod, IntDiv, MulDiv, Exp, Unary, 
+                in the case of "n = 52" in Unary() pNd is set to result of Operand()
+                    Operand()
+                        just returns a new SbiExpression for a simple number, result falls back through each of the previous AddSub(), Mod(), IntDiv() etc. calls 
+
+
+The Tokenizer
+=============
+
+The tokenizer is a strange beast that operates with
+
+Next() & Peek() semantics, 
+
+there is no point talking about how the strings in the module are processed, suffice to say the SbiParser has the following inheritance
+
+SbiScanner
+    |
+SbiTokenizer
+    |
+SbiParser
+
+where SbiScanner does the hard lifting wrt parsing the raw lines into Symbols
+
+Peek() 
+======
+
+you would think would return the next symbol ( lookahead ) and it *sortof* works like this
+
+if ePush IS NIL then ePush is set to result of Next() ( what sets ePush )
+
+eCurTok is allways set to ePush  ( this is the strange bit for me )
+eCurTok is returned
+
+so it seems if you call Peek() you will get the Next() token only if you didn't call Peek() previously
+
+
+Next()
+======
+basically if Peek() was called previously ( and then Next() returns the value previoulsy 'Peeked' at ( and sets up ePush to NIL to force either next call to Peek() or next call to Next() to read the next token ) - what makes this strange for me is the fact that Peek() modifies the current token ( e.g. eCurTok )
+
+
+if ePush ISN'T NIL ( NIL is the initial and terminating state ) eCurTok is set to ePush and ePush is set to NIL
+
+otherwise is gets the next symbol ( via NextSym() which populates aSym )
+aSym is compared with the tokens in pTokTable 
+   pTokTable contains keywords and symbols like ( &,+,And,Goto,If etc... ) { populated from aTokTable_Basic }
+when aSym matches something from pTokTable then it is handled in the 'special' labled code branch ( urky ) c/c++ mix
+   'special' branch can cause recursion if the symbol is 'LINE' or 'END' ( this is so END FUNCTION, END SUB, LINE INPUT etc. will be resolved as single tokens
+    if the aSym is neither LINE or END then some further magic happens like
+        * detecting datatype symbols e.g. INTEGER, DOUBLE, OBJECT etc.
+        * detecting As
+        * suppressing compatibility only tokens ( like CLASSMODULE, ENUM etc. )
+            these are supressed by returning the SYMBOL token
+
--- openoffice.org-2.4.1.orig/ooo-build/doc/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/doc/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = doc
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = ${wildcard *.txt *.sh *.sample} README
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/doc/novell-win32-incremental-patch-build.txt
+++ openoffice.org-2.4.1/ooo-build/doc/novell-win32-incremental-patch-build.txt
@@ -0,0 +1,354 @@
+This document describes the procedure to produce incremental patch for
+the NovellWin32ISO installers. This is somewhat hard to automate. This
+document is very much a work in progress, written and updated while
+working out how this actually should be done. Read with a large pinch
+of salt.
+
+The NovellWin32ISO builds are identified by the full three-part
+PACKAGEVERSION from openoffice.lst (2.0.4, for instance) suffixed by a
+dash and a counter, starting from 1 in the first build. The first
+distributed NovellWin32ISO build of 2.0.4 is thus 2.0.4-1.
+
+The "PATCHLEVEL" we talk about below is a NovellWin32ISO concept, not
+to be confused with other things related to "patching" that might have
+similar names in the upstream installer-building Perl code (much of
+which is undocumented, and even probably unfinished, or remains of
+procedures never fully implemented, or whatever). So when you see
+mentions of patching and updating in solenv/bin/modules/installer/*.pm
+etc, note that this has nothing to do with the Windows Installer
+patching stuff described here.
+
+For the first build, build 1, PATCHLEVEL is 0. For build 2 it is 1,
+etc. Yeah, this is illogical, I should have called the first build
+2.0.4-0.
+
+The idea is that the original build directory is kept, and only
+incremental changes are done. Only those projects where there has been
+code changes (i.e. updated ooo-build patches that affect the project)
+since the previous build are rebuilt. Thus the files that are included
+in each build's installer are mostly from the original build, only
+those that have actual changes are fresher.
+
+
+
+- Rename build/$tag/instsetoo_native/wntmsci10.pro/OpenOffice to
+OpenOffice-$previous (where $previous is the previous build
+counter). Ditto for OpenOffice_languagepack, although I don't think
+there would be any point in producing Windows Installer patch
+installers for language packs.
+
+- Add a new marker to ChangeLog indicating at which stage this build
+was done.
+
+- Edit novell-win32-vrb-branding.diff, increment the PATCHLEVEL
+value. This means that DLLs built from now on (once the patch is
+applied) will get a new version number.
+
+- Run make patch.apply.
+
+- Run sh doc/AUTOGEN.NovellWin32ISO.sh.
+
+- Run make and interrupt it when it starts the main build with
+"Building project solenv", i.e. after having done the upstream
+configure script and set_soenv stuff.
+
+- Inspect ChangeLog entries since the last marker. Go to build/$tag,
+source winenv.set.sh. In each project directly affected by changes
+since the last marker, to a build && deliver. Be careful to do this in
+the correct order in case a patch since the last release build has
+changed the API of some project, but I sure hope that won't happen.
+
+For 2.0.4-2 vs. 2.0.4-1, the projects affected by patches changed seem
+to be, in a hopefully correct order:
+
+officecfg
+sfx2
+sc
+binfilter (but nothing that affected what gets built had changed)
+helpcontent2
+
+For 2.0.4-4 vs. 2.0.4-2, they are:
+
+offapi
+scp2
+scsolver
+fpicker
+basic
+sfx2
+filter (because of the added MOOX xcu fragments)
+sc
+sysui (jimmac's new icons)
+desktop (-"-)
+
+Note carefully what changed/new files get delivered, just for
+double-checking later.
+
+To find out the correct order to build && deliver, given we know what projects are affected, go to postprocess and run:
+
+build --all --show | grep 'Building project' |grep -E ' (offapi|sfx2|scsolver|sc|scp2|basic|filter|fpicker)$'
+
+(use the relevant list of projects in the grep, of course.)
+
+- Remove sfx2/wntmsci10.pro/slo/about.obj and do a build && deliver in
+sfx2, too, if not already done above.
+
+- Go to postprocess, build & deliver.
+
+- Go to instsetoo_native. Edit util/makefile.mk to avoid building
+language packs. Do a build there.
+
+- Do an administrative install of previous build(s), and of what you just
+built:
+
+  cd build/OOO_2_0_4/instsetoo_native/OpenOffice-2/msi/install/en-US_ar_cs_blabla
+  msiexec /a openofficeorg20.msi
+
+  cd build/OOO_2_0_4/instsetoo_native/OpenOffice-1/msi/install/en-US_ar_cs_blabla
+  msiexec /a openofficeorg20.msi
+
+  cd build/OOO_2_0_4/instsetoo_native/OpenOffice/msi/install/en-US_ar_cs_blabla
+  msiexec /a openofficeorg20.msi
+
+for instance, for 2.0.4-1 and 2.0.4-2: install into
+c:\tmp\OOo-2.0.4-1-admin and c:\tmp\OOo-2.0.4-2-admin
+
+- Make a new folder for the patch installer, for instance
+c:\tmp\OOo-2.0.4-1-2-patch.
+
+Note that a Windows Installer patch can contain several patch pairs;
+for instance, we can eventually have a single patch (.msp file) that
+patches 2.0.4-1 to 2.0.4-4, 2.0.4-2 to 2.0.4-4, and 2.0.4-3 to
+2.0.4-4. For simplicity, below I talk just about a patch for one
+update, from 2.0.4-1 to 2.0.4-2.
+
+- Create a Patch Creation Properties (.pcp) file, for instance
+openofficeorg20.pcp. Copy the
+Samples/SysMgmt/Msi/Patching/TEMPLATE.PCP file from the Platform SDK.
+A dump of the relevant tables in that file for the 2.0.4-1 to 2.0.4-2
+and 2.0.4-1 and -2 to 2.0.4-4 patches is included below. Remember to
+generate a new GUID for the patch in the PatchGUID property in the
+Properties table.
+
+- Add PATCHLEVEL to the last part of the ProductVersion in the
+Properties table of the .msi file in the "upgraded" administrative
+installation.
+
+For instance, for 2.0.4-1, the ProductVersion property is 2.0.9073,
+and for 2.0.4-2 this was manually changed to 2.0.9074, and for 2.0.4-4
+to 2.0.9076.
+
+Some typical MS braindamage here: The ProductVersion property is
+documented to be three digits: uchar.uchar.ushort, i.e. the first two
+<= 255, the last <= 65535. So we can't use the same kind of version
+number as for the FileVersion column in the File table, which is four
+ushorts, and constructed as
+
+ OOO_MAJOR . OOO_MINOR*100+OOO_MICRO . BUILDID . PATCHLEVEL
+
+For files that are changed in 2.0.4-2, that would be 2.4.9073.1. This
+sucks, yeah. But just incrementing the last part (buildid) hopefully
+won't cause any trouble, even though it is misleading, as the real
+buildid of course is the same for all NovellWin32ISO 2.0.4-x
+builds. (Recall that "buildid" in OOo means a number corresponding to
+the milestone, it has nothing to do with actual "builds" by
+distributors of OOo, like NovellWin32ISO builds. For the milestone
+OOO_2_0_4 the OOo buildid is 9073.)
+
+Hmm, even though documentation says that the ProductVersion property
+should be three parts as above (uchar.uchar.ushort), in reality many
+of the .msi files out there, even from Microsoft, have four-part
+ProductVersion properties. The Value column in the Property table is a
+string, so there is nothing in the MSI format that prevents this,
+although it is of course questionable how Windows Installer accepts
+other that three-part ProductVersion properties. Oh well...
+
+- Run msimsp to find the differences between the two above
+installations, verify that the DLL and EXE files that have changed
+indeed have the updated version in their VRBs.
+
+  msimsp -s openofficeorg20.pcp -p openofficeorg20.msp -l logfile.log
+
+Read the logfile looking for which files have changed
+
+- This step and the two following don't seem to actually be
+necessary. Windows Installer will patch a file even if its version
+number stays the same. It is also tedious manual work: Edit the
+corresponding rows (updated DLLs, EXEs, and nonversioned files) in
+openofficeorg20.msi in the second administrative installation, change
+the final number of the FileVersion rows in the File table to the
+patchlevel in question.
+
+For versioned files (DLLs and EXEs) I guess it is best if the version
+of the file recorded in Windows Installer is the same as the one in
+the file's VRB block, though, but even that doesn't seem to be
+necessary.
+
+- Run msimsp again
+
+- Verify that the changed files are indeed exactly those for which you
+edited the FileVersion, no more, no less.
+
+================
+
+Exports (.idt files) of the non-empty tables in the Patch Creation
+Properties (.pcp) file used when creating the 2.0.4-1 to 2.0.4-2
+patch. I have also added some comments.
+
+==> ImageFamilies:
+
+Family	MediaSrcPropName	MediaDiskId	FileSequenceStart	DiskPrompt	VolumeLabel
+s8	S72	I2	I2	S128	S32
+ImageFamilies	Family
+OOo	OOoSrcPropName	100	11000		
+
+The number of files in OOo is under 11000, so we start files
+introduced by patches at 11000.
+
+==> PatchMetadata:
+
+Company	Property	Value
+S72	s72	l0
+PatchMetadata	Company	Property
+	AllowRemoval	1
+	Classification	update
+	CreationTimeUTC	2006-11-21 17:00
+	Description	2.0.4-1/2
+	DisplayName	2.0.4-1/2
+	ManufacturerName	Novell, Inc.
+	MoreInfoURL	http://www.novell.com
+	TargetProductName	OpenOffice.org 2.0.4
+
+The Description and DisplayName strings don't have any prescribed
+format, that "2.0.4-1/2" is just a convention I invented to indicate a
+patch from 2.0.4-1 to 2.0.4-2.
+
+==> Properties:
+
+Name	Value
+s72	L0
+Properties	Name
+AllowProductCodeMismatches	1
+AllowProductVersionMajorMismatches	1
+ApiPatchingSymbolFlags	0x00000000
+DontRemoveTempFolderWhenFinished	1
+IncludeWholeFilesOnly	0
+ListOfPatchGUIDsToReplace	
+ListOfTargetProductCodes	*
+MinimumRequiredMsiVersion	300
+PatchGUID	{489E4A5F-830E-425D-BFA6-6E1C57D35CF6}
+PatchOutputPath	openofficeorg20.msp
+SEQUENCE_DATA_GENERATION_DISABLED	1
+
+The PatchGUID must be unique for each .msp file.
+
+==> TargetImages:
+
+Target	MsiPath	SymbolPaths	Upgraded	Order	ProductValidateFlags	IgnoreMissingSrcFiles
+s13	s255	S255	s13	i2	S16	i2
+TargetImages	Target
+2p0p4d1	c:\tmp\OOo-2.0.4-1-admin\openofficeorg20.msi		2p0p4d2	1		0
+
+The Target and Upgraded fields must be alphanumeric, thus I
+transformed periods to "p" and dashes to "d", i.e. 2.0.4-1 became
+2p0p4d1...
+
+==> UpgradedImages:
+
+Upgraded	MsiPath	PatchMsiPath	SymbolPaths	Family
+s13	s255	S255	S255	s8
+UpgradedImages	Upgraded
+2p0p4d2	c:\tmp\OOo-2.0.4-2-admin\openofficeorg20.msi			OOo
+
+================
+
+Corresponding exports of the non-empty tables in the pcp file used
+when creating the 2.0.4-1 and 2.0.4-2 to 2.0.4-4 patch.
+
+This patch is capable of upgrading either 2.0.4-1 or 2.0.4-2 to
+2.0.4-4. (2.0.4-3 was an intermediate build that I just made the en-US
+-only installer for.
+
+Here we had to add rows to the UpgradedFiles_OptionalData table so
+that the msvcr71.dll and msvcp71.dll files were included in the patch
+as whole files. These files changed when running build in postprocess
+as they were rebased to a different address than in the earlier
+builds.
+
+Of course, the base addess is just one field in the PE header, so
+being able to have a binary patch for them would have been extremely
+nice. But unfortunately, as the versions (in the VRB) of these files
+didn't change, and we don't generate MsiFileHash entries for dll and
+exe files, there is no way Windows Installer can verify that it would
+be patching the right file. Thus we have to include the "new" ones
+(with just the base address change) in toto.
+
+When starting a new base build plus patch chain (OO.o 2.1?)  we should
+begin calculating MsiFileHash values also for versioned files, to
+avoid this issue.
+
+==> ImageFamilies:
+
+Family	MediaSrcPropName	MediaDiskId	FileSequenceStart	DiskPrompt	VolumeLabel
+s8	S72	I2	I2	S128	S32
+ImageFamilies	Family
+OOo	OOoSrcPropName	100	11000		
+
+==> PatchMetadata:
+
+Company	Property	Value
+S72	s72	l0
+PatchMetadata	Company	Property
+	AllowRemoval	1
+	Classification	update
+	CreationTimeUTC	2006-12-14 22:00
+	Description	2.0.4-1+2/4
+	DisplayName	2.0.4-1+2/4
+	ManufacturerName	Novell, Inc.
+	MoreInfoURL	http://www.novell.com
+	TargetProductName	OpenOffice.org 2.0.4
+
+==> Properties:
+
+Name	Value
+s72	L0
+Properties	Name
+AllowProductCodeMismatches	1
+AllowProductVersionMajorMismatches	1
+ApiPatchingSymbolFlags	0x00000000
+DontRemoveTempFolderWhenFinished	1
+IncludeWholeFilesOnly	0
+ListOfPatchGUIDsToReplace	
+ListOfTargetProductCodes	*
+MinimumRequiredMsiVersion	300
+PatchGUID	{D79AFC12-0A1B-4E9D-9C29-4128BBDE0365}
+PatchOutputPath	openofficeorg20.msp
+
+I removed the SEQUENCE_DATA_GENERATION_DISABLED property.
+
+==> TargetImages:
+
+Target	MsiPath	SymbolPaths	Upgraded	Order	ProductValidateFlags	IgnoreMissingSrcFiles
+s13	s255	S255	s13	i2	S16	i2
+TargetImages	Target
+2p0p4d1	c:\tmp\OOo-2.0.4-1-admin\openofficeorg20.msi		2p0p4d4	1		0
+2p0p4d2	c:\tmp\OOo-2.0.4-2-admin\openofficeorg20.msi		2p0p4d4	2		0
+
+I don't know whether the values in the Order columns actually are
+needed or not.
+
+==> UpgradedFiles_OptionalData
+
+Upgraded	FTK	SymbolPaths	AllowIgnoreOnPatchError	IncludeWholeFile
+s13	s255	S255	I2	I2
+UpgradedFiles_OptionalData	Upgraded	FTK
+2p0p4d4	msvcp71.dll			1
+2p0p4d4	msvcr71.dll			1
+
+See above why we need to mention msvcr71.dll and msvcp71.dll here.
+
+==> UpgradedImages:
+
+Upgraded	MsiPath	PatchMsiPath	SymbolPaths	Family
+s13	s255	S255	S255	s8
+UpgradedImages	Upgraded
+2p0p4d4	c:\tmp\OOo-2.0.4-4-admin\openofficeorg20.msi			OOo
--- openoffice.org-2.4.1.orig/ooo-build/patches/hotfixes/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/patches/hotfixes/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = README $(wildcard *.diff)
--- openoffice.org-2.4.1.orig/ooo-build/patches/hotfixes/README
+++ openoffice.org-2.4.1/ooo-build/patches/hotfixes/README
@@ -0,0 +1,11 @@
+All patches in this directory are automatically applied in alphabetical order.
+They are applied after the "regular" patches mentioned in the apply file. Only
+files with the .diff suffix are processed.
+
+It is intended for distributors that would like to add some patches to an
+already released ooo-build. It is enough to copy the patch here after the
+ooo-build tarball is unpacked. It is not longer needed to create patches
+against ooo-build (patches against patches).
+
+Please, do not commit any patches in this directory into ooo-build SVN.
+Use the normal process via the apply file instead.
--- openoffice.org-2.4.1.orig/ooo-build/patches/hotfixes/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/patches/hotfixes/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = patches/hotfixes
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = README $(wildcard *.diff)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  patches/hotfixes/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  patches/hotfixes/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680-only/cws-s390port01.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680-only/cws-s390port01.diff
@@ -0,0 +1,1347 @@
+Index: automation/source/testtool/objtest.cxx
+===================================================================
+RCS file: /cvs/util/automation/source/testtool/objtest.cxx,v
+retrieving revision 1.37
+retrieving revision 1.37.2.1
+diff -u -p -u -p -b -w -B -r1.37 -r1.37.2.1
+--- automation/source/testtool/objtest.cxx	27 Feb 2008 09:44:28 -0000	1.37
++++ automation/source/testtool/objtest.cxx	1 Mar 2008 15:16:43 -0000	1.37.2.1
+@@ -544,6 +544,8 @@ void TestToolObj::LoadIniFile()				// La
+     abGP.Append( "19" );  // Linux ARM
+ #elif defined LINUX && defined IA64
+     abGP.Append( "20" );  // Linux ia64
++#elif defined LINUX && defined S390
++    abGP.Append( "21" );  // Linux S390
+ #else
+ #error ("unknown platform. please request an ID for your platform on qa/dev")
+ #endif
+Index: solenv/inc/unxlngs3904.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxlngs3904.mk,v
+retrieving revision 1.18
+retrieving revision 1.18.124.1
+diff -u -p -u -p -b -w -B -r1.18 -r1.18.124.1
+--- solenv/inc/unxlngs3904.mk	12 Dec 2007 13:21:06 -0000	1.18
++++ solenv/inc/unxlngs3904.mk	29 Feb 2008 14:49:56 -0000	1.18.124.1
+@@ -33,11 +33,11 @@
+ #
+ #*************************************************************************
+ 
+-# mk file for linux s390 using gcc 3.X
++# mk file for linux s390
+ ASM=
+ AFLAGS=
+ 
+-SOLAR_JAVA*=TRUE
++SOLAR_JAVA*=
+ JAVAFLAGSDEBUG=-g
+ 
+ # filter for supressing verbose messages from linker
+@@ -45,7 +45,12 @@ JAVAFLAGSDEBUG=-g
+ #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
+ 
+ # _PTHREADS is needed for the stl
+-CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=$(STLPORT_VER)
++CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DS390 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=$(STLPORT_VER)
++
++# enable visibility define in "sal/types.h"
++.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE
++.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+ 
+ # this is a platform with JAVA support
+ .IF "$(SOLAR_JAVA)"!=""
+@@ -65,15 +70,25 @@ ARCH_FLAGS*=
+ CXX*=g++
+ # name of C Compiler
+ CC*=gcc
++.IF "$(SYSBASE)"!=""
++CFLAGS_SYSBASE:=-isystem $(SYSBASE)$/usr$/include
++CXX+:=$(CFLAGS_SYSBASE)
++CC+:=$(CFLAGS_SYSBASE)
++.ENDIF          # "$(SYSBASE)"!=""
++CFLAGS+=-Wreturn-type -fmessage-length=0 -c
++# flags to enable build with symbols; required for crashdump feature
++.IF "$(ENABLE_SYMBOLS)"=="SMALL"
++CFLAGSENABLESYMBOLS=-g1
++.ELSE
++CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
+ 
+-CFLAGS+=-fsigned-char -fmessage-length=0 -c
++.ENDIF
+ 
++CFLAGS+=-fsigned-char -fno-omit-frame-pointer
+ # flags for the C++ Compiler
+ CFLAGSCC= -fsigned-char -pipe $(ARCH_FLAGS)
+-
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+-
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+@@ -77,14 +92,18 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+-CFLAGSCXX= -fsigned-char -pipe -fno-rtti $(ARCH_FLAGS)
+-#CFLAGSCXX= -fsigned-char -pipe
++CFLAGSCXX= -fsigned-char -pipe $(ARCH_FLAGS)
++CFLAGSCXX+= -Wno-ctor-dtor-privacy
++CFLAGSCXX+= -fno-use-cxa-atexit
+ PICSWITCH:=-fPIC
++.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++CFLAGSCXX += -fvisibility-inlines-hidden
++.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+ 
+ # Compiler flags for compiling static object in multi threaded environment with graphical user interface
+-CFLAGSOBJGUIMT=$(PICSWITCH)
++CFLAGSOBJGUIMT=
+ # Compiler flags for compiling static object in multi threaded environment with character user interface
+-CFLAGSOBJCUIMT=$(PICSWITCH)
++CFLAGSOBJCUIMT=
+ # Compiler flags for compiling shared object in multi threaded environment with graphical user interface
+ CFLAGSSLOGUIMT=$(PICSWITCH)
+ # Compiler flags for compiling shared object in multi threaded environment with character user interface
+@@ -96,24 +113,21 @@ CFLAGSPROF=
+ # Compiler flags for debugging
+ CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-
+ # Compiler flags for enabling optimizations
+-#CFLAGSOPT=-O2 -fno-schedule-insns -fno-strict-aliasing -fno-schedule-insns2
+-CFLAGSOPT=-O2 -fno-strict-aliasing
+-
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-O2 -fno-strict-aliasing             # optimizing for products
++CFLAGSOPT+=-Wuninitialized                             # not supported without optimization
++.ELSE  # "$(PRODUCT)"!=""
++CFLAGSOPT=                                                     # no optimizing for non products
++.ENDIF # "$(PRODUCT)"!=""
+ # Compiler flags for disabling optimizations
+-# don't change - required to work around optimization bugs
+ CFLAGSNOOPT=-O0
+-
+ # Compiler flags for describing the output path
+ CFLAGSOUTOBJ=-o
+-
+-CFLAGSWARNCC=
+-CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy
+-# -Wshadow does not work for C with nested uses of pthread_cleanup_push:
+-CFLAGSWALLCC=-Wall -Wextra -Wendif-labels
+-CFLAGSWALLCXX=$(CFLAGSWALLCC) -Wshadow -Wno-ctor-dtor-privacy
+-CFLAGSWERRCC=-Werror
++# Enable all warnings
++CFLAGSWALL=-Wall
++# Set default warn level
++CFLAGSDFLTWARN=
+ 
+ # switches for dynamic and static linking
+ STATIC		= -Wl,-Bstatic
+@@ -121,8 +135,12 @@ DYNAMIC		= -Wl,-Bdynamic
+ 
+ # name of linker
+ LINK*=$(CXX)
++LINKC*=$(CC)
++
+ # default linker flags
+-LINKFLAGS=
++LINKFLAGSDEFS*=-Wl,-z,defs
++LINKFLAGSRUNPATH*=-Wl,-rpath,\''$$ORIGIN'\'
++LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+@@ -137,14 +154,10 @@ LINKFLAGSPROF=
+ LINKFLAGSDEBUG=-g
+ LINKFLAGSOPT=
+ 
+-.IF "$(NO_BSYMBOLIC)"==""
+-.IF "$(PRJNAME)" != "envtest"
+-LINKFLAGSSHLGUI+=-Wl,-Bsymbolic
+-LINKFLAGSSHLCUI+=-Wl,-Bsymbolic
+-.ENDIF
+-.ENDIF				# "$(NO_BSYMBOLIC)"==""
+-
+-LINKVERSIONMAPFLAG=-Wl,--version-script
++# linker flags for optimization (symbol hashtable)
++# for now, applied to symbol scoped libraries, only
++LINKFLAGSOPTIMIZE*=-Wl,-O1
++LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script
+ 
+ SONAME_SWITCH=-Wl,-h
+ 
+@@ -153,6 +166,7 @@ SONAME_SWITCH=-Wl,-h
+ STDLIBCPP=-lstdc++
+ 
+ # default objectfilenames to link
++STDOBJVCL=$(L)$/salmain.o
+ STDOBJGUI=
+ STDSLOGUI=
+ STDOBJCUI=
+@@ -165,13 +179,20 @@ STDLIBCUIMT=-ldl -lpthread -lm
+ STDSHLGUIMT=-lX11 -lXext -ldl -lpthread -lm
+ STDSHLCUIMT=-ldl -lpthread -lm
+ 
++LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive
++
++.IF "$(USE_STLP_DEBUG)" != ""
++LIBSTLPORT=$(DYNAMIC) -lstlport_gcc_stldebug
++LIBSTLPORTST=$(STATIC) -lstlport_gcc_stldebug $(DYNAMIC)
++.ELSE # "$(USE_STLP_DEBUG)" != ""
+ .IF "$(STLPORT_VER)" >= "500"
+-LIBSTLPORT=$(DYNAMIC) -lstlport -lstdc++
++LIBSTLPORT=$(DYNAMIC) -lstlport
+ LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC)
+ .ELSE
+-LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -lstdc++
++LIBSTLPORT=$(DYNAMIC) -lstlport_gcc
+ LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC)
+ .ENDIF
++.ENDIF # "$(USE_STLP_DEBUG)" != ""
+ 
+ #FILLUPARC=$(STATIC) -lsupc++ $(DYNAMIC)
+ 
+Index: bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.92.2
+diff -u -p -u -p -b -w -B -r1.4 -r1.4.92.2
+--- bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx	16 Sep 2006 15:48:49 -0000	1.4
++++ bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx	4 Mar 2008 10:14:37 -0000	1.4.92.2
+@@ -36,34 +36,26 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_bridges.hxx"
+ 
+-#include <malloc.h>
+-#include <hash_map>
+-
+-#include <rtl/alloc.h>
+-#include <osl/mutex.hxx>
+-
++#include <com/sun/star/uno/genfunc.hxx>
+ #include <uno/data.h>
+ #include <typelib/typedescription.hxx>
+ 
+-#include <bridges/cpp_uno/bridge.hxx>
+-#include <bridges/cpp_uno/type_misc.hxx>
++#include "bridges/cpp_uno/shared/bridge.hxx"
++#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
++#include "bridges/cpp_uno/shared/types.hxx"
++#include "bridges/cpp_uno/shared/vtablefactory.hxx"
+ 
+ #include "share.hxx"
++#include <stdio.h>
++#include <string.h>
+ 
+-
+-using namespace ::osl;
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ 
+-namespace CPPU_CURRENT_NAMESPACE
++namespace 
+ {
+ 
+-//==================================================================================================
+-rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
+-
+-//==================================================================================================
+ static typelib_TypeClass cpp2uno_call(
+-	cppu_cppInterfaceProxy * pThis,
++	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
+ 	const typelib_TypeDescription * pMemberTypeDescr,
+ 	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
+ 	sal_Int32 nParams, typelib_MethodParameter * pParams,
+@@ -88,7 +80,7 @@ static typelib_TypeClass cpp2uno_call(
+ 	
+ 	if (pReturnTypeDescr)
+ 	{
+-		if (cppu_isSimpleType( pReturnTypeDescr ))
++		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+ 		{
+ 			pUnoReturn = pRegisterReturn; // direct way for simple types
+ 		}
+@@ -98,7 +90,7 @@ static typelib_TypeClass cpp2uno_call(
+                         gpreg++;
+                         ng++;
+ 			
+-			pUnoReturn = (cppu_relatesToInterface( pReturnTypeDescr )
++			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+ 						  ? alloca( pReturnTypeDescr->nSize )
+ 						  : pCppReturn); // direct way
+ 		}
+@@ -125,7 +117,7 @@ static typelib_TypeClass cpp2uno_call(
+ 		typelib_TypeDescription * pParamTypeDescr = 0;
+ 		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+ 
+-		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
++		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) // value
+ 		{
+ 
+ 			switch (pParamTypeDescr->eTypeClass)
+@@ -246,11 +238,11 @@ static typelib_TypeClass cpp2uno_call(
+ 				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+ 			}
+ 			// is in/inout
+-			else if (cppu_relatesToInterface( pParamTypeDescr ))
++			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ 			{
+ 				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ 										*(void **)pCppStack, pParamTypeDescr,
+-										&pThis->pBridge->aCpp2Uno );
++										pThis->getBridge()->getCpp2Uno() );
+ 				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+ 				// will be released at reconversion
+ 				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+@@ -269,7 +261,7 @@ static typelib_TypeClass cpp2uno_call(
+ 	uno_Any * pUnoExc = &aUnoExc;
+ 
+ 	// invoke uno dispatch call
+-	(*pThis->pUnoI->pDispatcher)( pThis->pUnoI, pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
++	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
+ 	
+ 	// in case an exception occured...
+ 	if (pUnoExc)
+@@ -286,7 +278,7 @@ static typelib_TypeClass cpp2uno_call(
+ 		if (pReturnTypeDescr)
+ 			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+ 		
+-		raiseException( &aUnoExc, &pThis->pBridge->aUno2Cpp ); // has to destruct the any
++		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any
+ 		// is here for dummy
+ 		return typelib_TypeClass_VOID;
+ 	}
+@@ -303,7 +295,7 @@ static typelib_TypeClass cpp2uno_call(
+ 				// convert and assign
+ 				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+ 				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
+-										&pThis->pBridge->aUno2Cpp );
++										pThis->getBridge()->getUno2Cpp() );
+ 			}
+ 			// destroy temp uno param
+ 			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
+@@ -316,7 +308,7 @@ static typelib_TypeClass cpp2uno_call(
+ 			if (pUnoReturn != pCppReturn) // needs reconversion
+ 			{
+ 				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
+-										&pThis->pBridge->aUno2Cpp );
++										pThis->getBridge()->getUno2Cpp() );
+ 				// destroy temp uno return
+ 				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
+ 			}
+@@ -335,43 +327,53 @@ static typelib_TypeClass cpp2uno_call(
+ }
+ 
+ 
+-//==================================================================================================
++//============================================================================
+ static typelib_TypeClass cpp_mediate(
+-	sal_Int32 nVtableCall,
++	sal_uInt32 nOffsetAndIndex,
+         void ** gpreg, void ** fpreg, void ** ovrflw,
+ 	sal_Int64 * pRegisterReturn /* space for register return */ )
+ {
+ 	OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
+ 	
++    sal_Int16 nVtableOffset = (nOffsetAndIndex >> 16);
++    sal_Int16 nFunctionIndex = (nOffsetAndIndex & 0xFFFF);
++	
+ 	// gpreg:  [ret *], this, [other gpr params]
+ 	// fpreg:  [fpr params]
+ 	// ovrflw: [gpr or fpr params (properly aligned)]
+ 
+ 	// _this_ ptr is patched cppu_XInterfaceProxy object
+-	cppu_cppInterfaceProxy * pCppI = NULL;
+-	if( nVtableCall & 0x80000000 )
++	void * pThis;
++	if( nFunctionIndex & 0x8000 )
+ 	{
+-		nVtableCall &= 0x7fffffff;
+-		pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(gpreg +1);
++		nFunctionIndex &= 0x7fff;
++		pThis = gpreg[1];
+ 	}
+ 	else
+     {
+-		pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(gpreg);
++		pThis = gpreg[0];
+     }
+     
+-	typelib_InterfaceTypeDescription * pTypeDescr = pCppI->pTypeDescr;
++    pThis = static_cast< char * >(pThis) - nVtableOffset;
+ 	
+-	OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+-	if (nVtableCall >= pTypeDescr->nMapFunctionIndexToMemberIndex)
++    bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
++        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
++            pThis);
++
++    typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
++
++	
++	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
++	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
+ 	{
+ 		throw RuntimeException(
+-            OUString::createFromAscii("illegal vtable index!"),
++            rtl::OUString::createFromAscii("illegal vtable index!"),
+             (XInterface *)pCppI );
+ 	}
+ 	
+ 	// determine called method
+ 	OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+-	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nVtableCall];
++	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
+ 	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
+ 
+ 	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
+@@ -381,7 +383,7 @@ static typelib_TypeClass cpp_mediate(
+ 	{
+ 	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+ 	{
+-		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
++		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
+ 		{
+ 			// is GET method
+ 			eRet = cpp2uno_call(
+@@ -410,7 +412,7 @@ static typelib_TypeClass cpp_mediate(
+ 	case typelib_TypeClass_INTERFACE_METHOD:
+ 	{
+ 		// is METHOD
+-		switch (nVtableCall)
++		switch (nFunctionIndex)
+ 		{
+ 		case 1: // acquire()
+ 			pCppI->acquireProxy(); // non virtual call!
+@@ -427,9 +429,10 @@ static typelib_TypeClass cpp_mediate(
+ 			if (pTD)
+ 			{
+                 XInterface * pInterface = 0;
+-                (*pCppI->pBridge->pCppEnv->getRegisteredInterface)(
+-                    pCppI->pBridge->pCppEnv,
+-                    (void **)&pInterface, pCppI->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
++                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
++                    pCppI->getBridge()->getCppEnv(),
++                    (void **)&pInterface, pCppI->getOid().pData, 
++					(typelib_InterfaceTypeDescription *)pTD );
+ 			
+                 if (pInterface)
+                 {
+@@ -458,7 +461,7 @@ static typelib_TypeClass cpp_mediate(
+ 	default:
+ 	{
+ 		throw RuntimeException(
+-            OUString::createFromAscii("no member description found!"),
++            rtl::OUString::createFromAscii("no member description found!"),
+             (XInterface *)pCppI );
+ 		// is here for dummy
+ 		eRet = typelib_TypeClass_VOID;
+@@ -473,8 +476,13 @@ static typelib_TypeClass cpp_mediate(
+  * is called on incoming vtable calls
+  * (called by asm snippets)
+  */
+-static void cpp_vtable_call( int nTableEntry, void** gpregptr, void** fpregptr, void** ovrflw)
++static void privateSnippetExecutor( sal_uInt32 nOffsetAndIndex, void** gpregptr, void** fpregptr, void** ovrflw)
+ {
++#ifdef CMC_DEBUG
++	fprintf(stderr, "privateSnippetExecutor\n");
++#endif
++
++
+         sal_Int32     gpreg[8];
+         double        fpreg[8];
+ 
+@@ -483,10 +491,9 @@ static void cpp_vtable_call( int nTableE
+ 
+ 	volatile long nRegReturn[2];
+ 
+-        sal_Bool bComplex = nTableEntry & 0x80000000 ? sal_True : sal_False;
+-
+ 	typelib_TypeClass aType = 
+-             cpp_mediate( nTableEntry, (void**)gpreg, (void**)fpreg, ovrflw, (sal_Int64*)nRegReturn );
++		cpp_mediate( nOffsetAndIndex, (void**)gpreg, (void**)fpreg, ovrflw, 
++		(sal_Int64*)nRegReturn );
+     
+ 	switch( aType )
+ 	{
+@@ -546,43 +553,22 @@ static void cpp_vtable_call( int nTableE
+ 	}
+ }
+ 
++const int codeSnippetSize = 50;
+ 
+-//==================================================================================================
+-class MediateClassData
+-{
+-    typedef ::std::hash_map< OUString, void *, OUStringHash > t_classdata_map;
+-	t_classdata_map m_map;
+-	Mutex m_mutex;
+-    
+-public:
+-	void const * get_vtable( typelib_InterfaceTypeDescription * pTD ) SAL_THROW( () );
+-    
+-	inline MediateClassData() SAL_THROW( () )
+-        {}
+-	~MediateClassData() SAL_THROW( () );
+-};
+-//__________________________________________________________________________________________________
+-MediateClassData::~MediateClassData() SAL_THROW( () )
++unsigned char* codeSnippet( unsigned char * code, sal_Int16 nFunctionIndex, sal_Int16 nVtableOffset, bool simple_ret_type )
+ {
+-	OSL_TRACE( "> calling ~MediateClassData(): freeing mediate vtables." );
++    sal_uInt32 nOffsetAndIndex = ( ( nVtableOffset ) << 16 ) | ( nFunctionIndex );
+ 	
+-	for ( t_classdata_map::const_iterator iPos( m_map.begin() ); iPos != m_map.end(); ++iPos )
+-	{
+-		::rtl_freeMemory( iPos->second );
+-	}
+-}
+-//--------------------------------------------------------------------------------------------------
+-static inline void codeSnippet( long * code, sal_uInt32 vtable_pos, bool simple_ret_type ) SAL_THROW( () )
+-{
+     if (! simple_ret_type)
+-        vtable_pos |= 0x80000000;
++        nOffsetAndIndex |= 0x8000;
++
+     OSL_ASSERT( sizeof (long) == 4 );
+ 
+      /* generate this code */
+      // lr      %r0,%r13
+      // bras    %r13,0x6
+-     // .long   cpp_vtable_call 
+-     // .long   vtable_pos
++     // .long   privateSnippetExecutor 
++     // .long   nOffsetAndIndex
+      // stm     %r2,%r6,8(%r15)
+      // std     %f0,64(%r15)
+      // std     %f2,72(%r15)
+@@ -595,142 +581,123 @@ static inline void codeSnippet( long * c
+      // lr      %r13,%r0
+      // br      %r1
+ 
++    unsigned char * p = code;
++    *reinterpret_cast< sal_Int16 * >(p) = 0x180d;
++    p += sizeof(sal_Int16);
++    *reinterpret_cast< sal_Int32 * >(p) = 0xa7d50006;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) =
++        reinterpret_cast< sal_Int32 >(privateSnippetExecutor);
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = nOffsetAndIndex;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x9026f008;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x6000f040;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x6020f048;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x5820d004;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x4130f008;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x4140f040;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x4150f060;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int32 * >(p) = 0x5810d000;
++    p += sizeof(sal_Int32);
++    *reinterpret_cast< sal_Int16 * >(p) = 0x18d0;
++    p += sizeof(sal_Int16);
++    *reinterpret_cast< sal_Int16 * >(p) = 0x07f1;
++    p += sizeof(sal_Int16);
++
++    return (code + codeSnippetSize);
++}
++}
++
++void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const *, unsigned char const *)
++{
++}
++
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++{
++    return static_cast< Slot * >(block) + 2;
++}
++
++sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
++    sal_Int32 slotCount)
++{
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
++}
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
++}
++
++unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
++    Slot ** slots, unsigned char * code,
++    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
++{
++     (*slots) -= functionCount;
++     Slot * s = *slots;
++#ifdef CMC_DEBUG
++    fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
++    fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
++#endif
+ 
+-      * ((short*)code)++ = 0x180d;
+-      * code++ = 0xa7d50006;
+-      * code++ = cpp_vtable_call;
+-      * code++ = vtable_pos;
+-      * code++ = 0x9026f008;
+-      * code++ = 0x6000f040;
+-      * code++ = 0x6020f048;
+-      * code++ = 0x5820d004;
+-      * code++ = 0x4130f008;
+-      * code++ = 0x4140f040;
+-      * code++ = 0x4150f060;
+-      * code++ = 0x5810d000;
+-      * ((short*)code)++ = 0x18d0;
+-      * ((short*)code)++ = 0x07f1;
+-
+-}
+-//__________________________________________________________________________________________________
+-void const * MediateClassData::get_vtable( typelib_InterfaceTypeDescription * pTD ) SAL_THROW( () )
+-{
+-    void * buffer;
+-    const int nSnippetSize = 50;
+-
+-    // avoiding locked counts
+-    OUString const & unoName = *(OUString const *)&((typelib_TypeDescription *)pTD)->pTypeName;
+-    {
+-	MutexGuard aGuard( m_mutex );
+-	t_classdata_map::const_iterator iFind( m_map.find( unoName ) );
+-	if (iFind == m_map.end())
+-    {
+-        // create new vtable
+-        sal_Int32 nSlots = pTD->nMapFunctionIndexToMemberIndex;
+-        buffer = ::rtl_allocateMemory( ((2+ nSlots) * sizeof (void *)) + (nSlots *nSnippetSize) );
+-        
+-        ::std::pair< t_classdata_map::iterator, bool > insertion(
+-            m_map.insert( t_classdata_map::value_type( unoName, buffer ) ) );
+-        OSL_ENSURE( insertion.second, "### inserting new vtable buffer failed?!" );
+-        
+-        void ** slots = (void **)buffer;
+-        *slots++ = 0;
+-        *slots++ = 0; // rtti
+-        char * code = (char *)(slots + nSlots);
+-        
+-        sal_uInt32 vtable_pos = 0;
+-        sal_Int32 nAllMembers = pTD->nAllMembers;
+-        typelib_TypeDescriptionReference ** ppAllMembers = pTD->ppAllMembers;
+-        for ( sal_Int32 nPos = 0; nPos < nAllMembers; ++nPos )
+-        {
+-            typelib_TypeDescription * pTD = 0;
+-            TYPELIB_DANGER_GET( &pTD, ppAllMembers[ nPos ] );
+-            OSL_ASSERT( pTD );
+-            if (typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass)
+-            {
+-                bool simple_ret = cppu_isSimpleType(
+-                    ((typelib_InterfaceAttributeTypeDescription *)pTD)->pAttributeTypeRef->eTypeClass );
+-                // get method
+-                *slots = code;
+-                codeSnippet( (long *)code, vtable_pos++, simple_ret );
+-                code += nSnippetSize;
+-                slots++;
+-                if (! ((typelib_InterfaceAttributeTypeDescription *)pTD)->bReadOnly)
+-                {
+-                    // set method
+-                    *slots = code;
+-                    codeSnippet( (long *)code, vtable_pos++, true );
+-                    code += nSnippetSize;
+-                    slots++;
+-                }
+-            }
+-            else
+-            {
+-                bool simple_ret = cppu_isSimpleType(
+-                    ((typelib_InterfaceMethodTypeDescription *)pTD)->pReturnTypeRef->eTypeClass );
+-                *slots = code;
+-                codeSnippet( (long *)code, vtable_pos++, simple_ret );
+-                code += nSnippetSize;
+-                slots++;
+-            }
+-            TYPELIB_DANGER_RELEASE( pTD );
+-        }
+-        OSL_ASSERT( vtable_pos == nSlots );
+-    }
+-    else
++    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
++        typelib_TypeDescription * member = 0;
++        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
++        OSL_ASSERT(member != 0);
++        switch (member->eTypeClass) {
++        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++            // Getter:
++            (s++)->fn = code;
++            code = codeSnippet(
++                code, functionOffset++, vtableOffset,
++                bridges::cpp_uno::shared::isSimpleType(
++                    reinterpret_cast<
++                    typelib_InterfaceAttributeTypeDescription * >(
++                        member)->pAttributeTypeRef));
++
++            // Setter:
++            if (!reinterpret_cast<
++                typelib_InterfaceAttributeTypeDescription * >(
++                    member)->bReadOnly)
+     {
+-        buffer = iFind->second;
+-    }
++                (s++)->fn = code;
++                code = codeSnippet(code, functionOffset++, vtableOffset, true);
+     }
++            break;
+     
+-    return ((void **)buffer +2);
+-}
++        case typelib_TypeClass_INTERFACE_METHOD:
++            (s++)->fn = code;
++            code = codeSnippet(
++                code, functionOffset++, vtableOffset,
++                bridges::cpp_uno::shared::isSimpleType(
++                    reinterpret_cast<
++                    typelib_InterfaceMethodTypeDescription * >(
++                        member)->pReturnTypeRef));
++            break;
+ 
+-//==================================================================================================
+-void SAL_CALL cppu_cppInterfaceProxy_patchVtable(
+-	XInterface * pCppI, typelib_InterfaceTypeDescription * pTypeDescr ) throw ()
+-{
+-	static MediateClassData * s_pMediateClassData = 0;
+-	if (! s_pMediateClassData)
+-	{
+-		MutexGuard aGuard( Mutex::getGlobalMutex() );
+-		if (! s_pMediateClassData)
+-		{
+-#ifdef LEAK_STATIC_DATA
+-			s_pMediateClassData = new MediateClassData();
+-#else
+-			static MediateClassData s_aMediateClassData;
+-			s_pMediateClassData = &s_aMediateClassData;
+-#endif
+-		}
++        default:
++            OSL_ASSERT(false);
++            break;
+ 	}
+-	*(void const **)pCppI = s_pMediateClassData->get_vtable( pTypeDescr );
++        TYPELIB_DANGER_RELEASE(member);
+ }
+-
++    return code;
+ }
+ 
+-extern "C"
+-{
+-//##################################################################################################
+-sal_Bool SAL_CALL component_canUnload( TimeValue * pTime )
+-	SAL_THROW_EXTERN_C()
+-{
+-	return CPPU_CURRENT_NAMESPACE::g_moduleCount.canUnload(
+-        &CPPU_CURRENT_NAMESPACE::g_moduleCount, pTime );
+-}
+-//##################################################################################################
+-void SAL_CALL uno_initEnvironment( uno_Environment * pCppEnv )
+-	SAL_THROW_EXTERN_C()
+-{
+-	CPPU_CURRENT_NAMESPACE::cppu_cppenv_initEnvironment(
+-        pCppEnv );
+-}
+-//##################################################################################################
+-void SAL_CALL uno_ext_getMapping(
+-	uno_Mapping ** ppMapping, uno_Environment * pFrom, uno_Environment * pTo )
+-	SAL_THROW_EXTERN_C()
+-{
+-	CPPU_CURRENT_NAMESPACE::cppu_ext_getMapping(
+-        ppMapping, pFrom, pTo );
+-}
+-}
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx,v
+retrieving revision 1.5
+retrieving revision 1.5.92.3
+diff -u -p -u -p -b -w -B -r1.5 -r1.5.92.3
+--- bridges/source/cpp_uno/gcc3_linux_s390/except.cxx	16 Sep 2006 15:49:02 -0000	1.5
++++ bridges/source/cpp_uno/gcc3_linux_s390/except.cxx	4 Mar 2008 19:49:29 -0000	1.5.92.3
+@@ -37,6 +37,7 @@
+ #include "precompiled_bridges.hxx"
+ 
+ #include <stdio.h>
++#include <string.h>
+ #include <dlfcn.h>
+ #include <cxxabi.h>
+ #include <hash_map>
+@@ -46,7 +47,7 @@
+ #include <osl/diagnose.h>
+ #include <osl/mutex.hxx>
+ 
+-#include <bridges/cpp_uno/bridge.hxx>
++#include <com/sun/star/uno/genfunc.hxx>
+ #include <typelib/typedescription.hxx>
+ #include <uno/any2.h>
+ 
+@@ -291,4 +292,4 @@ void fillUnoException( __cxa_exception *
+ }
+ 
+ }
+-
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: bridges/source/cpp_uno/gcc3_linux_s390/makefile.mk
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_s390/makefile.mk,v
+retrieving revision 1.5
+retrieving revision 1.5.24.1
+diff -u -p -u -p -b -w -B -r1.5 -r1.5.24.1
+--- bridges/source/cpp_uno/gcc3_linux_s390/makefile.mk	15 Oct 2007 11:57:04 -0000	1.5
++++ bridges/source/cpp_uno/gcc3_linux_s390/makefile.mk	29 Feb 2008 14:56:00 -0000	1.5.24.1
+@@ -52,6 +52,10 @@ ENABLE_EXCEPTIONS=TRUE
+ CFLAGS += -DLEAK_STATIC_DATA
+ .ENDIF
+ 
++# In case someone enabled the non-standard -fomit-frame-pointer which does not
++# work with the .cxx sources in this directory:
++CFLAGSCXX += -fno-omit-frame-pointer
++
+ CFLAGSNOOPT=-O0
+ 
+ SLOFILES= \
+@@ -66,10 +70,8 @@ SHL1IMPLIB=i$(TARGET)
+ SHL1VERSIONMAP=..$/..$/bridge_exports.map
+ SHL1RPATH=URELIB
+ 
+-SHL1OBJS= \
+-	$(SLO)$/except.obj		\
+-	$(SLO)$/cpp2uno.obj		\
+-	$(SLO)$/uno2cpp.obj
++SHL1OBJS= $(SLOFILES)
++SHL1LIBS = $(SLB)$/cpp_uno_shared.lib
+ 
+ SHL1STDLIBS= \
+ 	$(CPPULIB)			\
+Index: bridges/source/cpp_uno/gcc3_linux_s390/share.hxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_s390/share.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.162.1
+diff -u -p -u -p -b -w -B -r1.3 -r1.3.162.1
+--- bridges/source/cpp_uno/gcc3_linux_s390/share.hxx	7 Sep 2005 22:24:36 -0000	1.3
++++ bridges/source/cpp_uno/gcc3_linux_s390/share.hxx	29 Feb 2008 14:56:00 -0000	1.3.162.1
+@@ -33,6 +33,8 @@
+  *
+  ************************************************************************/
+ 
++#include "uno/mapping.h"
++
+ #include <typeinfo>
+ #include <exception>
+ #include <cstddef>
+@@ -40,6 +42,9 @@
+ namespace CPPU_CURRENT_NAMESPACE
+ {
+ 
++  void dummy_can_throw_anything( char const * );
++
++
+ // ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
+ 
+ struct _Unwind_Exception
+@@ -92,3 +97,4 @@ void raiseException(
+ void fillUnoException(
+     __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
+ }
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.92.1
+diff -u -p -u -p -b -w -B -r1.4 -r1.4.92.1
+--- bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx	16 Sep 2006 15:49:15 -0000	1.4
++++ bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx	29 Feb 2008 14:56:00 -0000	1.4.92.1
+@@ -37,23 +37,26 @@
+ #include "precompiled_bridges.hxx"
+ 
+ #include <malloc.h>
+-#include <rtl/alloc.h>
+ 
++#include <com/sun/star/uno/genfunc.hxx>
+ #include <uno/data.h>
+-#include <bridges/cpp_uno/bridge.hxx>
+-#include <bridges/cpp_uno/type_misc.hxx>
++
++#include "bridges/cpp_uno/shared/bridge.hxx"
++#include "bridges/cpp_uno/shared/types.hxx"
++#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx"
++#include "bridges/cpp_uno/shared/vtables.hxx"
+ 
+ #include "share.hxx"
+ 
++#include <stdio.h>
++#include <string.h>
++
+ 
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ 
+-namespace CPPU_CURRENT_NAMESPACE
++namespace
+ {
+-
+-void dummy_can_throw_anything( char const * );
+-
+ static sal_Int32
+ invoke_count_words(char * pPT)
+ {
+@@ -209,7 +212,7 @@ static void callVirtualMethod(
+      volatile float fret;
+      volatile int iret, iret2;
+ 
+-     char * dummy = alloca(32); // dummy alloca to force r11 usage for exception handling
++     void * dummy = alloca(32); // dummy alloca to force r11 usage for exception handling
+ 
+     __asm__ __volatile__
+      (
+@@ -287,10 +290,10 @@ static void callVirtualMethod(
+ }
+ 
+ 
+-//================================================================================================== 
++//============================================================================ 
+ static void cpp_call(
+-	cppu_unoInterfaceProxy * pThis,
+-	sal_Int32 nVtableCall,
++        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
++        bridges::cpp_uno::shared::VtableSlot  aVtableSlot,
+ 	typelib_TypeDescriptionReference * pReturnTypeRef,
+ 	sal_Int32 nParams, typelib_MethodParameter * pParams,
+ 	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+@@ -313,22 +316,23 @@ static void cpp_call(
+ 	
+ 	if (pReturnTypeDescr)
+ 	{
+-		if (cppu_isSimpleType( pReturnTypeDescr ))
++		if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
+ 		{
+ 			pCppReturn = pUnoReturn; // direct way for simple types
+ 		}
+ 		else
+ 		{
+ 			// complex return via ptr
+-			pCppReturn = *(void **)pCppStack = (cppu_relatesToInterface( pReturnTypeDescr )
++			pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+ 												? alloca( pReturnTypeDescr->nSize )
+ 												: pUnoReturn); // direct way
+                         *pPT++ = 'I'; //signify that a complex return type on stack
+ 			pCppStack += sizeof(void *);
+ 		}
+ 	}
+-	// push this
+-	*(void**)pCppStack = pThis->pCppI;
++        // push "this" pointer
++        void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
++	*(void**)pCppStack = pAdjustedThisPtr;
+ 	pCppStack += sizeof( void* );
+         *pPT++ = 'I';
+ 
+@@ -349,10 +353,10 @@ static void cpp_call(
+ 		typelib_TypeDescription * pParamTypeDescr = 0;
+ 		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
+ 		
+-		if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
++		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+ 		{
+ 			uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
+-									&pThis->pBridge->aUno2Cpp );
++									pThis->getBridge()->getUno2Cpp() );
+ 
+ 			switch (pParamTypeDescr->eTypeClass)
+ 			{
+@@ -414,11 +418,11 @@ static void cpp_call(
+ 				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
+ 			}
+ 			// is in/inout
+-			else if (cppu_relatesToInterface( pParamTypeDescr ))
++			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ 			{
+ 				uno_copyAndConvertData(
+ 					*(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+-					pUnoArgs[nPos], pParamTypeDescr, &pThis->pBridge->aUno2Cpp );
++					pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+ 				
+ 				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+ 				// will be released at reconversion
+@@ -444,7 +448,7 @@ static void cpp_call(
+ 	{
+ 		OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
+ 		callVirtualMethod(
+-			pThis->pCppI, nVtableCall,
++			pAdjustedThisPtr, aVtableSlot.index,
+ 			pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
+ 			(sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
+ 		// NO exception occured...
+@@ -462,13 +466,13 @@ static void cpp_call(
+ 				{
+ 					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
+ 					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+-											&pThis->pBridge->aCpp2Uno );
++											pThis->getBridge()->getCpp2Uno() );
+ 				}
+ 			}
+ 			else // pure out
+ 			{
+ 				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
+-										&pThis->pBridge->aCpp2Uno );
++										pThis->getBridge()->getCpp2Uno() );
+ 			}
+ 			// destroy temp cpp param => cpp: every param was constructed
+ 			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
+@@ -479,14 +483,16 @@ static void cpp_call(
+ 		if (pCppReturn && pUnoReturn != pCppReturn)
+ 		{
+ 			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
+-									&pThis->pBridge->aCpp2Uno );
++									pThis->getBridge()->getCpp2Uno() );
+ 			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
+ 		}
+ 	}
+  	catch (...)
+  	{
+   		// fill uno exception
+-		fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, &pThis->pBridge->aCpp2Uno );
++		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
++			*ppUnoExc, pThis->getBridge()->getCpp2Uno() );
++
+         
+ 		// temporary params
+ 		for ( ; nTempIndizes--; )
+@@ -501,33 +507,40 @@ static void cpp_call(
+ 			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
+ 	}
+ }
++}
+ 
++namespace bridges { namespace cpp_uno { namespace shared {
+ 
+-//==================================================================================================
+-void SAL_CALL cppu_unoInterfaceProxy_dispatch(
++void unoInterfaceProxyDispatch(
+ 	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
+-	void * pReturn, void * pArgs[], uno_Any ** ppException ) throw ()
++	void * pReturn, void * pArgs[], uno_Any ** ppException )
+ {
++#ifdef CMC_DEBUG
++	fprintf(stderr, "unoInterfaceProxyDispatch\n");
++#endif
++	
++
+ 	// is my surrogate
+-	cppu_unoInterfaceProxy * pThis = (cppu_unoInterfaceProxy *)pUnoI;
++        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
++            = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
+ 	typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
+ 	
+ 	switch (pMemberDescr->eTypeClass)
+ 	{
+ 	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+ 	{
+-		// determine vtable call index
+-		sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
+-		OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
+ 		
+-		sal_Int32 nVtableCall = pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos];
+-		OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
++        VtableSlot aVtableSlot(
++            getVtableSlot(
++                reinterpret_cast<
++                    typelib_InterfaceAttributeTypeDescription const * >(
++                        pMemberDescr)));
+ 		
+ 		if (pReturn)
+ 		{
+ 			// dependent dispatch
+ 			cpp_call(
+-				pThis, nVtableCall,
++				pThis, aVtableSlot,
+ 				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
+ 				0, 0, // no params
+ 				pReturn, pArgs, ppException );
+@@ -547,8 +560,9 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
+ 				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
+ 			
+ 			// dependent dispatch
++                        aVtableSlot.index += 1; //get then set method
+ 			cpp_call(
+-				pThis, nVtableCall +1, // get, then set method
++				pThis, aVtableSlot,
+ 				pReturnTypeRef,
+ 				1, &aParam,
+ 				pReturn, pArgs, ppException );
+@@ -560,14 +574,13 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
+ 	}
+ 	case typelib_TypeClass_INTERFACE_METHOD:
+ 	{
+-		// determine vtable call index
+-		sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
+-		OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
+ 		
+-		sal_Int32 nVtableCall = pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos];
+-		OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
+-		
+-		switch (nVtableCall)
++        VtableSlot aVtableSlot(
++            getVtableSlot(
++                reinterpret_cast<
++                    typelib_InterfaceMethodTypeDescription const * >(
++                        pMemberDescr)));
++		switch (aVtableSlot.index)
+ 		{
+ 			// standard calls
+ 		case 1: // acquire uno interface
+@@ -585,8 +598,8 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
+ 			if (pTD)
+ 			{
+                 uno_Interface * pInterface = 0;
+-                (*pThis->pBridge->pUnoEnv->getRegisteredInterface)(
+-                    pThis->pBridge->pUnoEnv,
++                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
++                    pThis->pBridge->getUnoEnv(),
+                     (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
+ 			
+                 if (pInterface)
+@@ -605,7 +618,7 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
+ 		default:
+ 			// dependent dispatch
+ 			cpp_call(
+-				pThis, nVtableCall,
++				pThis, aVtableSlot,
+ 				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
+ 				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
+ 				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
+@@ -626,5 +639,5 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
+ 	}
+ }
+ 
+-}
+-
++} } }
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.249
+retrieving revision 1.249.10.1
+diff -u -p -u -p -b -w -B -r1.249 -r1.249.10.1
+--- config_office/configure.in	19 Feb 2008 12:37:37 -0000	1.249
++++ config_office/configure.in	6 Mar 2008 12:37:36 -0000	1.249.10.1
+@@ -1318,20 +1318,6 @@ if test \( "$_os" != "WINNT" -o "$WITH_M
+ fi 
+ AC_SUBST(GCCVER)
+ 
+-if test "$GCC" = "yes"; then
+-   AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
+-   save_CFLAGS=$CFLAGS
+-   CFLAGS="$CFLAGS -fvisibility=hidden"
+-   AC_TRY_LINK([], [ return 0; ], [ HAVE_GCC_VISIBILITY_FEATURE=TRUE ], [])
+-   CFLAGS=$save_CFLAGS
+-   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
+-      AC_MSG_RESULT([yes])
+-   else
+-      AC_MSG_RESULT([no])
+-   fi
+-fi
+-AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
+-
+ dnl ===================================================================
+ dnl Set the ENABLE_PCH variable. (Activate --enable-pch)
+ dnl ===================================================================
+@@ -2270,6 +2256,22 @@ AC_SUBST(STLPORT_VER)
+ AC_SUBST(USE_SYSTEM_STL)
+ 
+ dnl ===================================================================
++dnl visibility feature
++dnl ===================================================================
++if test "$GCC" = "yes"; then
++   AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
++   save_CFLAGS=$CFLAGS
++   CFLAGS="$CFLAGS -fvisibility=hidden"
++   AC_TRY_LINK([], [ return 0; ], [ HAVE_GCC_VISIBILITY_FEATURE=TRUE ], [])
++   CFLAGS=$save_CFLAGS
++   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
++      AC_MSG_RESULT([yes])
++   else
++      AC_MSG_RESULT([no])
++   fi
++fi
++
++dnl ===================================================================
+ dnl system stl sanity tests
+ dnl ===================================================================
+ if test "$USE_SYSTEM_STL" = "YES"; then
+@@ -2292,9 +2294,13 @@ using namespace __gnu_cxx;
+       AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no)
+       AC_MSG_RESULT([$stlvisok])
+       if test "$stlvisok" = "no"; then
+-         AC_MSG_ERROR([Your gcc STL headers are not visibility safe. Try with --with-stlport])
++         AC_MSG_WARN([Your gcc STL headers are not visibility safe. Disabling visibility])
++         echo "Your gcc STL headers are not visibility safe. Disabling visibility" >> warn
++         unset HAVE_GCC_VISIBILITY_FEATURE
++      fi
+       fi
+ 
++   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
+       sharedlink_ldflags_save=$LDFLAGS
+       LDFLAGS="$LDFLAGS -fvisibility-inlines-hidden -fpic -shared"
+ 
+@@ -2302,20 +2308,24 @@ using namespace __gnu_cxx;
+       AC_TRY_LINK([#include <sstream>
+ using namespace std;
+ ],[istringstream strm( "test" ); return 0;],
+-     gccvisok=yes, gccvisok=no)
+-
+-      LDFLAGS=$sharedlink_ldflags_save
+-
++      $EGREP -q  unresolvable conftest.err;
++      if test $? -eq 0; then gccvisok=no; else gccvisok=yes; fi, 
++      gccvisok=no)
+       AC_MSG_RESULT([$gccvisok])
+       if test "$gccvisok" = "no"; then
+-         AC_MSG_ERROR([Your gcc is not -fvisibility-inlines-hidden safe. Try with --with-stlport])
++         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility])
++         echo "Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility" >> warn
++         unset HAVE_GCC_VISIBILITY_FEATURE
+       fi
+ 
++      LDFLAGS=$sharedlink_ldflags_save
+    fi
+ 
+    AC_LANG_POP([C++])
+ fi
+ 
++AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
++
+ dnl ===================================================================
+ dnl allocator
+ dnl ===================================================================
+Index: config_office/set_soenv.in
+===================================================================
+RCS file: /cvs/tools/config_office/set_soenv.in,v
+retrieving revision 1.174
+retrieving revision 1.174.4.1
+diff -u -p -u -p -b -w -B -r1.174 -r1.174.4.1
+--- config_office/set_soenv.in	27 Feb 2008 10:03:23 -0000	1.174
++++ config_office/set_soenv.in	29 Feb 2008 14:47:00 -0000	1.174.4.1
+@@ -374,7 +374,7 @@ elsif ( $platform =~ m/freebsd/ ) 
+    }
+       $INPATH         = $OUTPATH.$PROEXT;
+ } 
+-elsif ( $platform =~ m/linux-gnu/ ) 
++elsif ( $platform =~ m/linux/ ) 
+ {
+ # General Linux settings:
+       $CVER           = "C300";
+@@ -1083,7 +1083,7 @@ if ($platform =~ m/solaris/) 
+                         $ps.$JRETHREADDIR.
+                         $ps.'$SOLARVER'.$ds.'$INPATH'.$LIB;
+ }
+-elsif ($platform =~ m/linux-gnu|netbsd|osf1|freebsd|aix/)
++elsif ($platform =~ m/linux|netbsd|osf1|freebsd|aix/)
+ {  $LD_LIBRARY_PATH   = $cur_dir.
+                         $ps.'$SOLARENV'.$ds.'$INPATH'.$LIB.
+                         $ps.$JRELIBDIR.
+@@ -1125,7 +1125,7 @@ if ($platform =~ m/solaris/) 
+                         $L.$USR_DT.$LIB.
+                         $L.$USR_OPENWIN.$LIB;
+ }
+-elsif ($platform =~ m/linux-gnu|netbsd|osf1|irix|freebsd|aix/)
++elsif ($platform =~ m/linux|netbsd|osf1|irix|freebsd|aix/)
+ {
+    $SOLAREXTRALIB     = $L.$par_dir.$LIB64;
+ }
+@@ -1191,7 +1191,7 @@ if ($platform =~ m/cygwin|os2/)
+ }
+      
+ # The general environment path.
+-if ($platform =~ m/linux-gnu|netbsd|odf1|irix|freebsd|aix|solaris/)
++if ($platform =~ m/linux|netbsd|odf1|irix|freebsd|aix|solaris/)
+ {  $PATH              = $cur_dir.
+                         $ps.'$SOLARVER'.$ds.'$INPATH'.$BIN.
+                         $ps.'$SOLARENV'.$ds.'$OUTPATH'.$BIN.
+@@ -1382,7 +1382,7 @@ if ($platform =~ m/solaris/) 
+                         $L_STLPORT_LIB.
+                         $L.$XLIB;
+ }
+-elsif ($platform =~ m/linux-gnu|netbasd|osf1|irix|aix|freebsd/)
++elsif ($platform =~ m/linux|netbasd|osf1|irix|aix|freebsd/)
+ {  $SOLARLIB          = $L.$par_dir.$LIB.
+                         $L.'$SOLARENV'.$ds.'$OUTPATH'.$LIB.
+                         $L.'$SOLARVER'.$ds.'$INPATH'.$LIB.
+@@ -1425,7 +1425,7 @@ $SOLARINC             = $I.$cur_dir.
+                         $I.'$SOLARENV'.$INC.
+                         $I.'$SRC_ROOT'.$ds."res";
+ 
+-if ($platform =~ m/solaris|linux-gnu|osf1|freebsd|netbsd|irix/)
++if ($platform =~ m/solaris|linux|osf1|freebsd|netbsd|irix/)
+ {
+ $SOLARINC	     .= $STLPORT_stlport;
+ if ($platform =~ m/linux|freebsd|netbsd/)
+@@ -1443,7 +1443,7 @@ if ($platform =~ m/solaris/)
+     $temp =~ s:$COMPATH:/bin\$:;
+     $SOLARINC         .= $I.$temp.$ds."include";
+ }
+-if ($platform =~ m/linux-gnu/)
++if ($platform =~ m/linux/)
+ {
+ # This simply adds an include path, so even cases that break the FHS work
+    $SOLARINC         .= $STLPORT_inc_stlport;
+@@ -1459,7 +1459,7 @@ if ($platform =~ m/linux-gnu/)
+    		if ($platform =~ m/solaris/)
+    		{  $SOLARINC   .=$I.'$JAVA_HOME'.$INCLUDE.$ds."solaris";
+    		}
+-   		elsif  ($platform =~ m/linux-gnu|osf1/)
++   		elsif  ($platform =~ m/linux|osf1/)
+    		{  $SOLARINC   .=$I.'$JAVA_HOME'.$INCLUDE.$ds."linux";
+    		}
+    		elsif ($platform =~ m/freebsd/)
+@@ -1480,7 +1480,7 @@ if ($platform =~ m/linux-gnu/)
+    		$SOLARINC .=$I.'$JAVA_HOME'.$INCLUDE.$ds."native_threads".$ds."include";
+ 	}
+     #The tail, if needed
+-    if ($platform =~ m/linux-gnu|freebsd|netbsd/)
++    if ($platform =~ m/linux|freebsd|netbsd/)
+     {  $SOLARINC  .= $I.$XINC;
+     }
+     elsif ($platform =~ m/osf1/)
+Index: bean/native/unix/makefile.mk
+===================================================================
+RCS file: /cvs/api/bean/native/unix/makefile.mk,v
+retrieving revision 1.9
+retrieving revision 1.9.10.1
+diff -u -p -u -p -b -w -B -r1.9 -r1.9.10.1
+--- bean/native/unix/makefile.mk	26 Jun 2007 17:45:46 -0000	1.9
++++ bean/native/unix/makefile.mk	29 Feb 2008 23:19:13 -0000	1.9.10.1
+@@ -30,9 +30,6 @@ SHL1LIBS=	$(SLB)$/$(TARGET).lib
+ SHL1STDLIBS=$(AWTLIB)
+ 
+ .IF "$(OS)" == "LINUX"
+-.IF "$(CPUNAME)" == "S390"
+-SHL1STDLIBS+=-lzip -lawt
+-.ENDIF
+ SHL1STDLIBS+=-lstdc++
+ .ENDIF
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680-only/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/patches/src680-only/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.diff)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680-only/svtools-html-iso-8859-2-ignore-chars.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680-only/svtools-html-iso-8859-2-ignore-chars.diff
@@ -0,0 +1,73 @@
+? svtools/svtools.vpj
+Index: svtools/source/svhtml/htmlout.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/svhtml/htmlout.cxx,v
+retrieving revision 1.23
+diff -u -r1.23 htmlout.cxx
+--- svtools/source/svhtml/htmlout.cxx	1 Nov 2007 15:20:27 -0000	1.23
++++ svtools/source/svhtml/htmlout.cxx	4 Dec 2007 16:00:42 -0000
+@@ -99,6 +99,55 @@
+ 											 rtl_TextEncoding eDestEnc )
+ {
+ 	const sal_Char* pStr = 0;
++
++    // Note: We currently handle special cases for ISO-8859-2 here simply because
++    // the code was already submitted.  But we should also handle other code pages
++    // as well as the code becomes available.
++
++    if( eDestEnc == RTL_TEXTENCODING_ISO_8859_2 || eDestEnc == RTL_TEXTENCODING_MS_1250 )
++    {
++        // Don't handle the following characters for Easter European (ISO-8859-2).
++        switch ( c )
++        {
++        case 164: // curren
++        case 184: // ccedil
++        case 193: // Aacute
++        case 194: // Acirc
++        case 196: // Auml 
++        case 199: // Ccedil
++        case 201: // Eacute
++        case 203: // Euml 
++        case 205: // Iacute
++        case 206: // Icirc
++        case 211: // Oacute
++        case 212: // Ocirc
++        case 214: // Ouml 
++        case 215: // times
++        case 218: // Uacute
++        case 220: // Uuml 
++        case 221: // Yacute
++        case 225: // aacute
++        case 226: // acirc
++        case 228: // auml 
++        case 233: // eacute
++        case 235: // euml 
++        case 237: // iacute
++        case 238: // icirc
++        case 243: // oacute
++        case 244: // ocirc
++        case 246: // ouml 
++        case 247: // divide
++        case 250: // uacute
++        case 252: // uuml
++        case 253: // yacute
++        case 352: // Scaron
++        case 353: // scaron
++            return pStr;
++        }
++    }
++
++    // TODO: handle more special cases for other code pages.
++
+ 	switch( c )
+ 	{
+ //	    case '\x0a':   return HTMLOutFuncs::Out_Tag( rStream, sHTML_linebreak );
+@@ -402,7 +451,7 @@
+ 		// The new HTML4 entities above 255 are not used for UTF-8,
+ 		// because Netscape 4 does support UTF-8 but does not support
+ 		// these entities.
+-		if( c < 256 || RTL_TEXTENCODING_UTF8 != rContext.m_eDestEnc )
++		if( c < 128 || RTL_TEXTENCODING_UTF8 != rContext.m_eDestEnc )
+ 			pStr = lcl_svhtml_GetEntityForChar( c, rContext.m_eDestEnc );
+ 		break;
+ 	}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680-only/Makefile.in
+++ openoffice.org-2.4.1/ooo-build/patches/src680-only/Makefile.in
@@ -0,0 +1,379 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = patches/src680-only
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACONF = @ACONF@
+ADD_OPENXML_PRESENTATION_MIME = @ADD_OPENXML_PRESENTATION_MIME@
+ADD_OPENXML_SPREADSHEET_MIME = @ADD_OPENXML_SPREADSHEET_MIME@
+ADD_OPENXML_WORD_MIME = @ADD_OPENXML_WORD_MIME@
+AGFA_MONOTYPE_FONTS_SOURCE = @AGFA_MONOTYPE_FONTS_SOURCE@
+AMTAR = @AMTAR@
+APPLY_DIR = @APPLY_DIR@
+ARCHITECTURE = @ARCHITECTURE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+BUILDDIR = @BUILDDIR@
+BUILD_MOZILLA_SOURCE = @BUILD_MOZILLA_SOURCE@
+BUILD_NCPUS = @BUILD_NCPUS@
+BUILD_WIN32 = @BUILD_WIN32@
+CABEXTRACT = @CABEXTRACT@
+CAIRO_CONFIGURE_FLAG = @CAIRO_CONFIGURE_FLAG@
+CAIRO_ENABLED = @CAIRO_ENABLED@
+CAIRO_VER = @CAIRO_VER@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CVSTAG = @CVSTAG@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAVU_FONTS_PACK_NAME = @DEJAVU_FONTS_PACK_NAME@
+DEJAVU_FONTS_VER = @DEJAVU_FONTS_VER@
+DEPDIR = @DEPDIR@
+DISTRO = @DISTRO@
+DRINK = @DRINK@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_ACCESS = @ENABLE_ACCESS@
+ENABLE_BINFILTER = @ENABLE_BINFILTER@
+ENABLE_CCACHE = @ENABLE_CCACHE@
+ENABLE_GRAPHITE = @ENABLE_GRAPHITE@
+ENABLE_ICECREAM = @ENABLE_ICECREAM@
+ENABLE_MONO = @ENABLE_MONO@
+ENABLE_ODK = @ENABLE_ODK@
+ENABLE_OPENXML = @ENABLE_OPENXML@
+EXEEXT = @EXEEXT@
+FLEX = @FLEX@
+FOO_COMMON_CFLAGS = @FOO_COMMON_CFLAGS@
+FOO_COMMON_LIBS = @FOO_COMMON_LIBS@
+FOO_GTK_CFLAGS = @FOO_GTK_CFLAGS@
+FOO_GTK_LIBS = @FOO_GTK_LIBS@
+GNUCP = @GNUCP@
+GNUPATCH = @GNUPATCH@
+GNUTAR = @GNUTAR@
+GRAPHITE_SRC = @GRAPHITE_SRC@
+GREP = @GREP@
+ICECREAM_BINDIR = @ICECREAM_BINDIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+LDFLAGS = @LDFLAGS@
+LIBERATION_FONTS_VER = @LIBERATION_FONTS_VER@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MAX_JOBS = @MAX_JOBS@
+MDBTOOLS_SRC = @MDBTOOLS_SRC@
+MIRROR = @MIRROR@
+MKDIR_P = @MKDIR_P@
+MONO_GAC_ROOT = @MONO_GAC_ROOT@
+MWS = @MWS@
+OBJEXT = @OBJEXT@
+OOBUILDDIR = @OOBUILDDIR@
+OOOINSTALLDIRNAME = @OOOINSTALLDIRNAME@
+OOOP_FONTS_PACK = @OOOP_FONTS_PACK@
+OOOP_GALLERY_PACK = @OOOP_GALLERY_PACK@
+OOOP_SAMPLES_PACK = @OOOP_SAMPLES_PACK@
+OOOP_TEMPLATES_PACK = @OOOP_TEMPLATES_PACK@
+OOO_ADDITIONAL_SECTIONS = @OOO_ADDITIONAL_SECTIONS@
+OOO_BINSUFFIX = @OOO_BINSUFFIX@
+OOO_BUILDVERSION = @OOO_BUILDVERSION@
+OOO_CUSTOM_IMAGES = @OOO_CUSTOM_IMAGES@
+OOO_EXTRA_ARTWORK = @OOO_EXTRA_ARTWORK@
+OOO_LANGS = @OOO_LANGS@
+OOO_POOR_HELP_LOCALIZATIONS = @OOO_POOR_HELP_LOCALIZATIONS@
+OOO_STRIP = @OOO_STRIP@
+OOO_VERSION = @OOO_VERSION@
+OOO_WIDGET_FLAGS = @OOO_WIDGET_FLAGS@
+OOX_MODULE_TARBALL = @OOX_MODULE_TARBALL@
+OPENCLIPART_DIR = @OPENCLIPART_DIR@
+OPENCLIPART_VER = @OPENCLIPART_VER@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PREBUILT_WRITINGAIDS_TIMESTAMP = @PREBUILT_WRITINGAIDS_TIMESTAMP@
+PROPAGATED_ARGS = @PROPAGATED_ARGS@
+RUN_POST_INSTALL_SCRIPTS = @RUN_POST_INSTALL_SCRIPTS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNAPSHOT_TAG = @SNAPSHOT_TAG@
+SPLIT_APP_MODULES = @SPLIT_APP_MODULES@
+SPLIT_OPT_FEATURES = @SPLIT_OPT_FEATURES@
+SRCDIR = @SRCDIR@
+STRIP = @STRIP@
+SYSTEM_CAIRO = @SYSTEM_CAIRO@
+SYSTEM_LIBWPD = @SYSTEM_LIBWPD@
+SYSTEM_LIBWPG = @SYSTEM_LIBWPG@
+SYSTEM_LIBWPS = @SYSTEM_LIBWPS@
+SYSTEM_MDBTOOLS = @SYSTEM_MDBTOOLS@
+TOOLSDIR = @TOOLSDIR@
+UPSTREAM_NAME = @UPSTREAM_NAME@
+UPSTREAM_SOURCE = @UPSTREAM_SOURCE@
+UPSTREAM_URI = @UPSTREAM_URI@
+USE_PREBUILD_UNOWINREG_DLL = @USE_PREBUILD_UNOWINREG_DLL@
+VENDORNAME = @VENDORNAME@
+VERSION = @VERSION@
+WGET = @WGET@
+WRITERFILTER_MODULE_TARBALL = @WRITERFILTER_MODULE_TARBALL@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.diff)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  patches/src680-only/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  patches/src680-only/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+	distclean-generic distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- openoffice.org-2.4.1.orig/ooo-build/patches/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/patches/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS=64bit cairo emf+ evo2 gstreamer hotfixes mono ooxml scsolver src680 src680-only vba postgresql
+
+EXTRA_DIST=README apply.pl.in $(wildcard *.diff)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/static-libs-use-_pic.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/static-libs-use-_pic.diff
@@ -0,0 +1,46 @@
+Index: lingucomponent/source/thesaurus/libnth/makefile.mk
+===================================================================
+RCS file: /cvs/whiteboard/lingucomponent/source/thesaurus/libnth/makefile.mk,v
+retrieving revision 1.4
+diff -u -u -r1.4 makefile.mk
+--- lingucomponent/source/thesaurus/libnth/makefile.mk	17 Jun 2005 09:22:43 -0000	1.4
++++ lingucomponent/source/thesaurus/libnth/makefile.mk	8 Aug 2005 20:42:23 -0000
+@@ -70,7 +70,11 @@
+ 
+ .IF "$(MYTHESLIB)"==""
+ .IF "$(GUI)"=="UNX"
++.IF "$(SYSTEM_MYTHES)" == "YES"
++MYTHESLIB=-lmythes_pic
++.ELSE
+ MYTHESLIB=-lmythes
++.ENDIF
+ .ENDIF # unx
+ .IF "$(GUI)"=="WNT"
+ MYTHESLIB=libmythes.lib
+--- solenv/inc/libs.mk.old 2005-12-09 08:25:13.000000000 +0100
++++ solenv/inc/libs.mk     2005-12-09 08:25:28.000000000 +0100
+@@ -115,7 +115,7 @@
+ CANVASTOOLSLIB=-lcanvastools$(OFFICEUPD)$(DLLPOSTFIX)
+ CPPCANVASLIB=-lcppcanvas$(OFFICEUPD)$(DLLPOSTFIX)
+ .IF "$(SYSTEM_AGG)" == "YES"
+-AGGLIB=-lagg
++AGGLIB=-lagg_pic
+ .ELSE
+ AGGLIB=-lagg$(OFFICEUPD)$(DLLPOSTFIX)
+ .ENDIF
+@@ -321,13 +321,13 @@
+ SABLOT3RDLIB=-lsablot
+ APP3RDLIB=-lapp
+ SAMPLE3RDLIB=-lsample
+-HNJLIB=-lhnj
++HNJLIB*=-lhnj
+ MYSPELLLIB=-lmyspell
+ COSVLIB=-lcosv
+ UDMLIB=-ludm
+ HUNSPELLLIB*=-lhunspell
+ ULINGULIB=-lulingu
+-MYTHESLIB=-lmythes
++MYTHESLIB*=-lmythes
+ PYUNOLIB=-lpyuno
+
+ .ELSE                          # "$(GUI)"=="UNX"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/pyuno-rpath-ooodir.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/pyuno-rpath-ooodir.diff
@@ -0,0 +1,16 @@
+Index: makefile.mk
+===================================================================
+RCS file: /cvs/udk/pyuno/source/module/makefile.mk,v
+retrieving revision 1.15
+diff -u -u -r1.15 makefile.mk
+--- pyuno/source/module/makefile.mk	15 Oct 2007 13:03:49 -0000	1.15
++++ pyuno/source/module/makefile.mk	24 Nov 2007 13:22:23 -0000
+@@ -121,7 +121,7 @@
+ .IF "$(GUI)" == "UNX"
+ $(PYUNO_MODULE) : $(SLO)$/pyuno_dlopenwrapper.obj
+ .IF "$(OS)" == "LINUX"
+-	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSRUNPATH_OOO) $(LINKFLAGSSHLCUI) -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
++	@echo $(LINK) -Wl,-z,combreloc $(LINKFLAGS) $(LINKFLAGSRUNPATH_OOO) -Wl,-rpath,/usr/lib/openoffice/program $(LINKFLAGSSHLCUI) -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
+ .ELIF "$(OS)" == "SOLARIS"
+ 	@echo ld -G -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
+ .ELIF "$(OS)" == "FREEBSD"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcj-32bit-runtime-path.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcj-32bit-runtime-path.diff
@@ -0,0 +1,33 @@
+--- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx~	2006-09-04 20:24:48.710718000 +0200
++++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx	2006-09-04 20:37:56.620718000 +0200
+@@ -37,6 +37,11 @@
+ #include "osl/thread.h"
+ #include "gnujre.hxx"
+ #include "util.hxx"
++extern "C"
++{
++#include <sys/utsname.h>
++#include <string.h>
++}
+ 
+ using namespace rtl;
+ using namespace std;
+@@ -153,7 +158,18 @@
+         return false;
+ 
+     if (!m_sJavaHome.getLength())
++#if defined (__linux__) && defined (__i386__)
++    {
++       struct utsname uts;
++       uname(&uts);
++       if(!strcmp("x86_64",uts.machine))
++               m_sJavaHome = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///usr/lib32"));
++       else
++               m_sJavaHome = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///usr/lib"));
++    }
++#else
+         m_sJavaHome = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file:///usr/lib"));
++#endif
+ 
+     // init m_sRuntimeLibrary
+     OSL_ASSERT(m_sHome.getLength());
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/disable-xmlsearch-and-xmlhelp-jar.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/disable-xmlsearch-and-xmlhelp-jar.diff
@@ -0,0 +1,17 @@
+Index: xmlhelp/prj/build.lst
+===================================================================
+RCS file: /cvs/util/xmlhelp/prj/build.lst,v
+retrieving revision 1.8
+diff -u -u -r1.8 build.lst
+--- xmlhelp/prj/build.lst	14 Feb 2002 13:22:16 -0000	1.8
++++ xmlhelp/prj/build.lst	3 Jun 2005 11:34:12 -0000
+@@ -1,8 +1,7 @@
+-xh	xmlhelp	:	ucbhelper XmlSearch SABLOT:sablot jut unoil BERKELEYDB:berkeleydb svtools NULL
++xh	xmlhelp	:	ucbhelper SABLOT:sablot jut unoil BERKELEYDB:berkeleydb svtools NULL
+ xh	xmlhelp									usr1	-	all	xh_mkout NULL
+ xh	xmlhelp\source\helpprovider				nmake	-	all	xh_helpprovider NULL
+ xh	xmlhelp\source\treeview					nmake	-	all	xh_treeview NULL
+-xh	xmlhelp\source\com\sun\star\help		nmake	-	all	xh_help NULL
+ xh	xmlhelp\source\cxxhelp\util				nmake	-	all	xh_cutil NULL
+ xh	xmlhelp\source\cxxhelp\qe				nmake	-	all	xh_qe NULL
+ xh	xmlhelp\source\cxxhelp\db				nmake	-	all	xh_db NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/selection-crash-svx-svdmrkv.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/selection-crash-svx-svdmrkv.diff
@@ -0,0 +1,22 @@
+--- svx/source/svdraw/svdmrkv.cxx.orig	2007-05-23 17:21:10.000000000 +0800
++++ svx/source/svdraw/svdmrkv.cxx	2007-05-23 17:21:15.000000000 +0800
+@@ -254,6 +254,19 @@
+ 	GetMarkedObjectListWriteAccess().SetUnsorted();
+ 	SortMarkedObjects();
+ 	bMrkPntDirty=TRUE;
++    //remove empty maked SdrObject
++    ULONG nMarkAnz=GetMarkedObjectCount();
++    for (ULONG nMarkNum=nMarkAnz; nMarkNum>0;)
++    {
++        nMarkNum--;
++        SdrMark* pM=GetSdrMarkByIndex(nMarkNum);
++        const SdrObject* pObj=pM->GetMarkedSdrObj();
++        if( pObj == NULL )
++        {
++            GetMarkedObjectListWriteAccess().DeleteMark(nMarkNum);
++        }
++    }
++
+ 	UndirtyMrkPnt();
+ 	SdrView* pV=(SdrView*)this;
+ 	if (pV!=NULL && !pV->IsDragObj() && !pV->IsInsObjPoint()) { // an dieser Stelle habe ich ein ziemliches Problem !!!
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/binfilter-dont-extern-sRTF-sHTML.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/binfilter-dont-extern-sRTF-sHTML.diff
@@ -0,0 +1,17 @@
+diff --git binfilter/bf_sw/source/filter/inc/SwAppletImpl.hxx binfilter/bf_sw/source/filter/inc/SwAppletImpl.hxx
+index f309c89..959ed93 100644
+--- binfilter/bf_sw/source/filter/inc/SwAppletImpl.hxx
++++ binfilter/bf_sw/source/filter/inc/SwAppletImpl.hxx
+@@ -69,12 +69,6 @@
+ class SfxItemSet; 
+ namespace binfilter {
+ 
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_O_hidden, "HIDDEN" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_HIDDEN_false, "FALSE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_O_archive, "ARCHIVE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_O_archives, "ARCHIVES" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_O_object, "OBJECT" );
+-
+ class SwApplet_Impl
+ {
+ 	SvAppletObjectRef xApplet;		// das aktuelle Applet
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-conditn.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-conditn.diff
@@ -0,0 +1,586 @@
+diff --git a/configmgr/inc/pch/precompiled_configmgr.hxx b/configmgr/inc/pch/precompiled_configmgr.hxx
+index 13f06d4..3502b7c 100644
+--- configmgr/inc/pch/precompiled_configmgr.hxx
++++ configmgr/inc/pch/precompiled_configmgr.hxx
+@@ -241,7 +241,7 @@
+ 
+ 
+ 
+-#include "vos/conditn.hxx"
++#include "osl/conditn.hxx"
+ #include "vos/pipe.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+diff --git a/configmgr/workben/apitest/cfgregistry.cxx b/configmgr/workben/apitest/cfgregistry.cxx
+index 945782a..e593ef8 100644
+--- configmgr/workben/apitest/cfgregistry.cxx
++++ configmgr/workben/apitest/cfgregistry.cxx
+@@ -72,8 +72,8 @@
+ #ifndef _CPPUHELPER_EXTRACT_HXX_
+ #include <cppuhelper/extract.hxx>
+ #endif
+-#ifndef _VOS_CONDITN_HXX_
+-#include <vos/conditn.hxx>
++#ifndef _OSL_CONDITN_HXX_
++#include <osl/conditn.hxx>
+ #endif
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+diff --git a/configmgr/workben/local_io/cfglocal.cxx b/configmgr/workben/local_io/cfglocal.cxx
+index 3cf1777..b77089d 100644
+--- configmgr/workben/local_io/cfglocal.cxx
++++ configmgr/workben/local_io/cfglocal.cxx
+@@ -62,8 +62,8 @@
+ #ifndef _CPPUHELPER_IMPLBASE1_HXX_
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+-#ifndef _VOS_CONDITN_HXX_
+-#include <vos/conditn.hxx>
++#ifndef _OSL_CONDITN_HXX_
++#include <osl/conditn.hxx>
+ #endif
+ 
+ #include <osl/time.h>
+@@ -126,7 +126,7 @@ class OOpenNodeCallback : public IOpenObjectCallback, public OOpenNodeCallback_B
+ {
+ protected:
+ 	OUString				m_sNodeId;
+-	::vos::OCondition&		m_rFinishCondition;
++	osl::Condition&		m_rFinishCondition;
+ 
+ 	enum ACTION	{ STARTELEMENT, CHARACTERS, ENDELEMENT };
+ 	ACTION					m_eLastAction;
+@@ -139,7 +139,7 @@ protected:
+ 	}
+ 
+ public:
+-	OOpenNodeCallback(::vos::OCondition& _rFinishCond) : m_rFinishCondition(_rFinishCond),  m_nLevel(0), m_eLastAction(ENDELEMENT), m_bCloseStartTag(sal_False) { }
++	OOpenNodeCallback(osl::Condition& _rFinishCond) : m_rFinishCondition(_rFinishCond),  m_nLevel(0), m_eLastAction(ENDELEMENT), m_bCloseStartTag(sal_False) { }
+ 
+ 	OUString getNodeId() const { return m_sNodeId; }
+ 
+@@ -530,10 +530,10 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ 	aTimeout.Seconds = 30;
+ 	switch (aWaitForSomething.wait(&aTimeout))
+ 	{
+-	case ICondition::result_error:
++	case osl_cond_result_error:
+ 		printf("error while waiting for the callback ... exiting\n\n");
+ 		return;
+-	case ICondition::result_timeout:
++	case osl_cond_result_timeout:
+ 		if (bPrint) printf("timed out ... exiting\n\n");
+ 		return;
+ 	}
+@@ -554,10 +554,10 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ // 
+ // 		   switch (aWaitForSomething.wait(&aTimeout))
+ // 		   {
+-// 			   case ICondition::result_error:
++// 			   case osl_cond_result_error:
+ // 				   printf("error while waiting for the callback ... exiting\n\n");
+ // 				   return;
+-// 			   case ICondition::result_timeout:
++// 			   case osl_cond_result_timeout:
+ // 				   printf("timed out ... exiting\n\n");
+ // 				   return;
+ // 		   }
+@@ -569,10 +569,10 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ 	aSession.addNode(sOpenedNode, UNI_STRING(pLayoutNode), &aAddTabstops, new OOpenNodeCallback(aWaitForSomething));
+ 	switch (aWaitForSomething.wait(&aTimeout))
+ 	{
+-	case ICondition::result_error:
++	case osl_cond_result_error:
+ 		printf("error while waiting for the callback ... exiting\n\n");
+ 		return;
+-	case ICondition::result_timeout:
++	case osl_cond_result_timeout:
+ 		if (bPrint) printf("timed out ... exiting\n\n");
+ 		return;
+ 	}
+@@ -586,10 +586,10 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ 
+ 	switch (aWaitForSomething.wait(&aTimeout))
+ 	{
+-	case ICondition::result_error:
++	case osl_cond_result_error:
+ 		printf("error while waiting for the callback ... exiting\n\n");
+ 		return;
+-	case ICondition::result_timeout:
++	case osl_cond_result_timeout:
+ 		if (bPrint) printf("timed out ... exiting\n\n");
+ 		return;
+ 	}
+@@ -602,10 +602,10 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ 	aSession.deleteNode(sOpenedNode, UNI_STRING(pLayoutNode2), new OOpenNodeCallback(aWaitForSomething));
+ 	switch (aWaitForSomething.wait(&aTimeout))
+ 	{
+-	case ICondition::result_error:
++	case osl_cond_result_error:
+ 		printf("error while waiting for the callback ... exiting\n\n");
+ 		return;
+-	case ICondition::result_timeout:
++	case osl_cond_result_timeout:
+ 		if (bPrint) printf("timed out ... exiting\n\n");
+ 		return;
+ 	}
+@@ -628,10 +628,10 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ // 		   aSession.getNode(UNI_STRING(pLayoutNode), new OOpenNodeCallback(aWaitForSomething));
+ // 		   switch (aWaitForSomething.wait(&aTimeout))
+ // 		   {
+-// 			   case ICondition::result_error:
++// 			   case osl_cond_result_error:
+ // 				   printf("error while waiting for the callback ... exiting\n\n");
+ // 				   return;
+-// 			   case ICondition::result_timeout:
++// 			   case osl_cond_result_timeout:
+ // 				   printf("timed out ... exiting\n\n");
+ // 				   return;
+ // 		   }
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 24167fd..54fdd33 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -543,7 +543,7 @@
+ 
+ #include "vcl/fldunit.hxx"
+ 
+-#include "vos/conditn.hxx"
++#include "osl/conditn.hxx"
+ #include "osl/diagnose.h"
+ #include "vos/macros.hxx"
+ #include "vos/module.hxx"
+diff --git a/extensions/source/plugin/inc/plugin/unx/mediator.hxx b/extensions/source/plugin/inc/plugin/unx/mediator.hxx
+index a7d9fbb..bbc9b98 100644
+--- extensions/source/plugin/inc/plugin/unx/mediator.hxx
++++ extensions/source/plugin/inc/plugin/unx/mediator.hxx
+@@ -53,8 +53,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_CONDITN_HXX_
+-#include <vos/conditn.hxx>
++#ifndef _OSL_CONDITN_HXX_
++#include <osl/conditn.hxx>
+ #endif
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+@@ -117,7 +117,7 @@ protected:
+     osl::Mutex                          m_aQueueMutex;
+     osl::Mutex                          m_aSendMutex;
+ 	// only one thread can send a message at any given time
+-	NAMESPACE_VOS(OCondition)			m_aNewMessageCdtn;
++	osl::Condition						m_aNewMessageCdtn;
+ 	MediatorListener*					m_pListener;
+ 	// thread to fill the queue
+ 
+diff --git a/extensions/test/sax/testsax.cxx b/extensions/test/sax/testsax.cxx
+index e778dce..1b2d845 100644
+--- extensions/test/sax/testsax.cxx
++++ extensions/test/sax/testsax.cxx
+@@ -46,7 +46,7 @@
+ //#include <osl/diagnose.h>
+ #include <usr/weak.hxx>
+ #include <tools/string.hxx>
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+diff --git a/extensions/test/stm/datatest.cxx b/extensions/test/stm/datatest.cxx
+index fa4cd8e..fce1697 100644
+--- extensions/test/stm/datatest.cxx
++++ extensions/test/stm/datatest.cxx
+@@ -53,7 +53,7 @@
+ #include <usr/reflserv.hxx>  // for EXTERN_SERVICE_CALLTYPE
+ #include <usr/weak.hxx>      // OWeakObject
+ 
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ #include <osl/mutex.hxx>
+ #include <osl/thread.hxx>
+ 
+diff --git a/extensions/test/stm/marktest.cxx b/extensions/test/stm/marktest.cxx
+index f99e57d..5bb24cd 100644
+--- extensions/test/stm/marktest.cxx
++++ extensions/test/stm/marktest.cxx
+@@ -49,7 +49,7 @@
+ #include <usr/reflserv.hxx>  // for EXTERN_SERVICE_CALLTYPE
+ #include <usr/weak.hxx>      // OWeakObject
+ 
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ #include <osl/mutex.hxx>
+ #include <osl/thread.hxx>
+ 
+diff --git a/extensions/test/stm/pipetest.cxx b/extensions/test/stm/pipetest.cxx
+index 0aa6d41..cee0050 100644
+--- extensions/test/stm/pipetest.cxx
++++ extensions/test/stm/pipetest.cxx
+@@ -46,7 +46,7 @@
+ #include <usr/reflserv.hxx>  // for EXTERN_SERVICE_CALLTYPE
+ #include <usr/weak.hxx>      // OWeakObject
+ 
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ #include <osl/mutex.hxx>
+ #include <osl/thread.hxx>
+ 
+diff --git a/extensions/workben/pythonautotest.cxx b/extensions/workben/pythonautotest.cxx
+index d41a255..950d28f 100644
+--- extensions/workben/pythonautotest.cxx
++++ extensions/workben/pythonautotest.cxx
+@@ -48,7 +48,7 @@
+ #include <usr/ustring.hxx>
+ #include <usr/weak.hxx>
+ #include <tools/string.hxx>
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+ #endif
+diff --git a/extensions/workben/pythontest.cxx b/extensions/workben/pythontest.cxx
+index 73d466a..2c8d894 100644
+--- extensions/workben/pythontest.cxx
++++ extensions/workben/pythontest.cxx
+@@ -49,7 +49,7 @@
+ #include <usr/ustring.hxx>
+ #include <usr/weak.hxx>
+ #include <tools/string.hxx>
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+ #endif
+diff --git a/extensions/workben/testcomponent.cxx b/extensions/workben/testcomponent.cxx
+index 607e4bd..cd49e03 100644
+--- extensions/workben/testcomponent.cxx
++++ extensions/workben/testcomponent.cxx
+@@ -55,7 +55,7 @@
+ #include <vcl/svapp.hxx>
+ #include <usr/ustring.hxx>
+ #include <tools/string.hxx>
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+diff --git a/sal/typesconfig/core b/sal/typesconfig/core
+index b5b6cf5..97fe99e 100644
+Binary files a/sal/typesconfig/core and b/sal/typesconfig/core differ
+diff --git a/unotools/inc/unotools/ucblockbytes.hxx b/unotools/inc/unotools/ucblockbytes.hxx
+index a87730f..8e8942c 100644
+--- unotools/inc/unotools/ucblockbytes.hxx
++++ unotools/inc/unotools/ucblockbytes.hxx
+@@ -18,7 +18,7 @@
+ #endif
+ 
+ #include <osl/thread.hxx>
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ #include <osl/mutex.hxx>
+ #include <tools/stream.hxx>
+ #include <tools/link.hxx>
+@@ -88,8 +88,8 @@ SV_DECL_IMPL_REF( UcbLockBytesHandler )
+ 
+ class UNOTOOLS_DLLPUBLIC UcbLockBytes : public virtual SvLockBytes
+ {
+-	vos::OCondition			m_aInitialized;
+-	vos::OCondition			m_aTerminated;
++	osl::Condition			m_aInitialized;
++	osl::Condition			m_aTerminated;
+ 	osl::Mutex				m_aMutex;
+ 
+     String                  m_aContentType;
+diff --git a/vos/inc/vos/conditn.hxx b/vos/inc/vos/conditn.hxx
+deleted file mode 100644
+index cd1b76d..0000000
+--- vos/inc/vos/conditn.hxx
++++ /dev/null
+@@ -1,150 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: conditn.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:35:55 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_CONDITN_HXX_
+-#define _VOS_CONDITN_HXX_
+-
+-#ifndef _OSL_CONDITN_H_
+-#	include <osl/conditn.h>
+-#endif
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#	include <vos/object.hxx>
+-#endif
+-
+-namespace vos
+-{
+-
+-/** ICondition
+-	
+-	Interface for a thread-spanning condition. If a condition-object
+-	is created, its initial condition is False. You can check the
+-	condition nonblocking with "check()" or wait for it to become set
+-	with "wait()". The methods "set()" and "reset()" are used to change
+-	the conditions state.
+-
+-    @author  Bernd Hofner
+-	@version 1.0
+-*/
+-class ICondition
+-{
+-public:
+-
+-    ICondition() { }
+-    virtual ~ICondition() { }
+-    
+-    
+-    
+-	enum TResult
+-    {
+-	    result_ok          = osl_cond_result_ok,
+-	    result_error       = osl_cond_result_error,
+-		result_timeout     = osl_cond_result_timeout
+-	};
+-
+-	/** set condition to True =>
+-		wait() will not block, check() returns True
+-	*/
+-	virtual void SAL_CALL set()= 0;
+-
+-	/** set condition to False =>
+-		wait() will block, check() returns False
+-	*/
+-	virtual void SAL_CALL reset()= 0;
+-
+-	/** Blocks if condition is not set<BR>
+-		If condition has been destroyed prematurely, wait() will
+-		return with False.
+-	*/
+-	virtual TResult SAL_CALL wait(const TimeValue* pTimeout = 0)= 0;
+-
+-	/** True: condition is set <BR>
+-		False: condition is not set <BR>
+-		does not block
+-	*/
+-	virtual sal_Bool SAL_CALL check()= 0;
+-};
+-
+-
+-/** OCondition
+-	
+-	Implements the ICondition interface.
+-
+-    @author  Bernd Hofner
+-	@version 1.0
+-
+-*/
+-class OCondition : public OObject, public ICondition
+-{
+-
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OCondition, vos));
+-
+-public:
+-
+-	/// initial state of condition is not set
+-	OCondition();
+-	virtual ~OCondition();
+-
+-	/// set condition to True => wait() will not block, check() returns True
+-	virtual void SAL_CALL set();
+-
+-	/// set condition to False => wait() will block, check() returns False
+-	virtual void SAL_CALL reset();
+-
+-	/** Blocks if condition is not set<BR>
+-		If condition has been destroyed prematurely, wait() will
+-		return with False.
+-	*/
+-	TResult SAL_CALL wait(const TimeValue* pTimeout = 0);
+-
+-	/** True: condition is set <BR>
+-		False: condition is not set <BR>
+-		does not block
+-	*/
+-	virtual sal_Bool SAL_CALL check();
+-
+-protected:
+-
+-	oslCondition	m_Condition;
+-
+-};
+-
+-}
+-
+-#endif	// _VOS_CONDITN_HXX_
+-
+diff --git a/vos/source/conditn.cxx b/vos/source/conditn.cxx
+deleted file mode 100644
+index 828f3e9..0000000
+--- vos/source/conditn.cxx
++++ /dev/null
+@@ -1,86 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: conditn.cxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:41:52 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-#include <vos/conditn.hxx>
+-#include <osl/diagnose.h>
+-
+-using namespace vos;
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OCondition, vos), VOS_NAMESPACE(OCondition, vos), VOS_NAMESPACE(OObject, vos), 0);
+-
+-/// initial state of condition is not set
+-OCondition::OCondition()
+-{
+-	m_Condition= osl_createCondition();
+-}
+-
+-OCondition::~OCondition()
+-{
+-	osl_destroyCondition(m_Condition);
+-}
+-
+-/// set condition to sal_True => wait() will not block, check() returns sal_True
+-void OCondition::set()
+-{
+-	osl_setCondition(m_Condition);
+-}
+-
+-/// set condition to sal_False => wait() will block, check() returns sal_False
+-void OCondition::reset()
+-{
+-	osl_resetCondition(m_Condition);
+-}
+-
+-/** Blocks if condition is not set<BR>
+-	If condition has been destroyed prematurely, wait() will
+-	return with sal_False.
+-*/
+-OCondition::TResult OCondition::wait(const TimeValue* pTimeout)
+-{
+-	return (TResult)osl_waitCondition(m_Condition, pTimeout);
+-}
+-
+-/** sal_True: condition is set <BR>
+-	sal_False: condition is not set <BR>
+-	does not block
+-*/
+-sal_Bool OCondition::check()
+-{
+-	return osl_checkCondition(m_Condition);
+-}
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 2cf9daf..5efea26 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -45,7 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
+ 
+ # --- Files --------------------------------------------------------
+ 
+-SLOFILES=       $(SLO)$/conditn.obj     \
++SLOFILES= \
+ 				$(SLO)$/object.obj      \
+ 				$(SLO)$/refernce.obj    \
+ 				$(SLO)$/socket.obj      \
+@@ -61,7 +61,7 @@ SLOFILES=       $(SLO)$/conditn.obj     \
+ 
+ 
+ .IF "$(UPDATER)"=="YES"
+-OBJFILES=       $(OBJ)$/conditn.obj     \
++OBJFILES= \
+ 				$(OBJ)$/object.obj      \
+ 				$(OBJ)$/refernce.obj    \
+ 				$(OBJ)$/socket.obj      \
+diff --git a/vos/source/timer.cxx b/vos/source/timer.cxx
+index 3ba8830..4750ac6 100644
+--- vos/source/timer.cxx
++++ vos/source/timer.cxx
+@@ -41,7 +41,7 @@
+ #include <osl/diagnose.h>
+ #include <vos/ref.hxx>
+ #include <vos/thread.hxx>
+-#include <vos/conditn.hxx>
++#include <osl/conditn.hxx>
+ 
+ 
+ /////////////////////////////////////////////////////////////////////////////
+@@ -91,7 +91,7 @@ protected:
+     // List Protection
+     osl::Mutex					m_Lock;
+     // Signal the insertion of a timer
+-    NAMESPACE_VOS(OCondition)	m_notEmpty;
++    osl::Condition				m_notEmpty;
+ 
+     // Synchronize access to OTimerManager
+ 	static osl::Mutex 			m_Access;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/no-mozilla-plug-in-option.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/no-mozilla-plug-in-option.diff
@@ -0,0 +1,302 @@
+--- svx/source/dialog/optinet2.cxx-old	2007-05-04 22:59:31.000000000 +0200
++++ svx/source/dialog/optinet2.cxx	2007-05-04 22:59:56.000000000 +0200
+@@ -1737,188 +1737,6 @@
+ 	maProtectRecordsPB.SetText( sNewText );
+ }
+ 
+-//added by jmeng begin
+-MozPluginTabPage::MozPluginTabPage(Window* pParent, const SfxItemSet& rSet)
+-	: SfxTabPage( pParent, SVX_RES( RID_SVXPAGE_INET_MOZPLUGIN ), rSet ),
+-	aMSWordGB		( this, SVX_RES( GB_MOZPLUGIN	    ) ),
+-	aWBasicCodeCB	( this, SVX_RES( CB_MOZPLUGIN_CODE ) )
+-{
+-	FreeResource();
+-}
+-
+-MozPluginTabPage::~MozPluginTabPage()
+-{
+-}
+-
+-SfxTabPage*	MozPluginTabPage::Create( Window* pParent,
+-										const SfxItemSet& rAttrSet )
+-{
+-	return new MozPluginTabPage( pParent, rAttrSet );
+-}
+-BOOL MozPluginTabPage::FillItemSet( SfxItemSet& )
+-{
+-	BOOL hasInstall = isInstalled();
+-	BOOL hasChecked = aWBasicCodeCB.IsChecked();
+-	if(hasInstall && (!hasChecked)){
+-		//try to uninstall
+-		uninstallPlugin();
+-	}
+-	else if((!hasInstall) && hasChecked){
+-		//try to install
+-		installPlugin();
+-	}
+-	else{
+-		// do nothing
+-	}
+-	return TRUE;
+-}
+-void MozPluginTabPage::Reset( const SfxItemSet& )
+-{
+-		aWBasicCodeCB.Check( isInstalled());
+-		aWBasicCodeCB.SaveValue();
+-}
+-
+-#ifdef WNT
+-extern "C" {
+-	int lc_isInstalled(const  char* realFilePath);
+-	int lc_installPlugin(const  char* realFilePath);
+-	int lc_uninstallPlugin(const  char* realFilePath);
+-}
+-#endif
+-
+-#define NPP_PATH_MAX 2048
+-inline ::rtl::OString getDllURL( void )
+-{
+-//    ::rtl::OUString libPath(rtl::OUString::createFromAscii("libcui680li.so"));
+-    ::rtl::OUString dirPath/*dllPath, */;
+-    osl::Module::getUrlFromAddress(reinterpret_cast< oslGenericFunction >(getDllURL), dirPath);
+-    dirPath = dirPath.copy(0, dirPath.lastIndexOf('/'));
+-//    osl::FileBase::getAbsoluteFileURL(dirPath, libPath, dllPath);
+-    ::rtl::OUString sysDirPath;
+-	osl::FileBase::getSystemPathFromFileURL(dirPath, sysDirPath);
+-    ::rtl::OString oSysDirPath;
+-    oSysDirPath = OUStringToOString(sysDirPath, RTL_TEXTENCODING_ASCII_US);
+-    return oSysDirPath;
+-}
+-
+-BOOL MozPluginTabPage::isInstalled()
+-{
+-#ifdef UNIX
+-    // get the real file referred by .so lnk file
+-    char lnkFilePath[NPP_PATH_MAX] = {0};
+-    char lnkReferFilePath[NPP_PATH_MAX] = {0};
+-    char* pHome = getpwuid(getuid())->pw_dir;
+-	strcat(lnkFilePath, pHome);
+-	strcat(lnkFilePath, "/.mozilla/plugins/libnpsoplugin" SAL_DLLEXTENSION);
+-
+-	struct stat sBuf;
+-	if (0 > lstat(lnkFilePath, &sBuf))
+-	    return false;
+-    if (!S_ISLNK(sBuf.st_mode))
+-		return false;
+-    if (0 >= readlink(lnkFilePath, lnkReferFilePath, NPP_PATH_MAX))
+-		return false;
+-    // If the link is relative, then we regard it as non-standard
+-    if (lnkReferFilePath[0] != '/')
+-        return false;
+-
+-    // get the real file path
+-    char realFilePath[NPP_PATH_MAX] = {0};
+-    ::rtl::OString tempString;
+-    tempString = getDllURL();
+-    strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
+-	strcat(realFilePath, "/libnpsoplugin" SAL_DLLEXTENSION);
+-
+-    if (0 != strcmp(lnkReferFilePath, realFilePath))
+-        return false;
+-    return true;
+-#endif
+-#ifdef WNT
+-	// get the value from registry
+-		BOOL ret = true;
+-	::rtl::OString tempString;
+-	char realFilePath[NPP_PATH_MAX] = {0};
+-    tempString = getDllURL();
+-    strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
+-	if(! lc_isInstalled(realFilePath))
+-		ret =true;
+-	else
+-		ret = false;
+-	return ret;
+-#endif
+-}
+-
+-BOOL MozPluginTabPage::installPlugin()
+-{
+-#ifdef UNIX
+-    // get the real file referred by .so lnk file
+-    char lnkFilePath[NPP_PATH_MAX] = {0};
+-    char* pHome = getpwuid(getuid())->pw_dir;
+-	strcat(lnkFilePath, pHome);
+-    strcat(lnkFilePath, "/.mozilla/plugins/libnpsoplugin" SAL_DLLEXTENSION);
+-    remove(lnkFilePath);
+-
+-    // create the dirs if necessary
+-    struct stat buf;
+-    char tmpDir[NPP_PATH_MAX] = {0};
+-    sprintf(tmpDir, "%s/.mozilla", pHome);
+-    if (0 > stat(lnkFilePath, &buf))
+-    {
+-        mkdir(tmpDir, 0755);
+-        strcat(tmpDir, "/plugins");
+-        mkdir(tmpDir, 0755);
+-    }
+-
+-    // get the real file path
+-    char realFilePath[NPP_PATH_MAX] = {0};
+-    ::rtl::OString tempString;
+-    tempString = getDllURL();
+-    strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
+-	strcat(realFilePath, "/libnpsoplugin" SAL_DLLEXTENSION);
+-
+-    // create the link
+-    if (0 != symlink(realFilePath, lnkFilePath))
+-        return false;
+-    return true;
+-#endif
+-#ifdef WNT
+-	::rtl::OString tempString;
+-	char realFilePath[NPP_PATH_MAX] = {0};
+-    tempString = getDllURL();
+-    strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
+-	if( !lc_installPlugin(realFilePath))
+-		return true;
+-	else
+-		return false;
+-#endif
+-}
+-
+-BOOL MozPluginTabPage::uninstallPlugin()
+-{
+-#ifdef UNIX
+-    // get the real file referred by .so lnk file
+-    char lnkFilePath[NPP_PATH_MAX] = {0};
+-    char* pHome = getpwuid(getuid())->pw_dir;
+-	strcat(lnkFilePath, pHome);
+-	strcat(lnkFilePath, "/.mozilla/plugins/libnpsoplugin" SAL_DLLEXTENSION);
+-
+-	if(0 > remove(lnkFilePath))
+-	    return false;
+-	return true;
+-#endif
+-#ifdef WNT
+-	::rtl::OString tempString;
+-	char realFilePath[NPP_PATH_MAX] = {0};
+-    tempString = getDllURL();
+-    strncpy(realFilePath, tempString.getStr(), NPP_PATH_MAX);
+-	if(!lc_uninstallPlugin(realFilePath))
+-		return true;
+-	else
+-		return false;
+-#endif
+-}
+-//added by jmeng end
+-
+ /* -------------------------------------------------------------------------*/
+ 
+ class MailerProgramCfg_Impl : public utl::ConfigItem
+--- svx/source/dialog/optinet2.hxx-old	2007-05-04 23:00:51.000000000 +0200
++++ svx/source/dialog/optinet2.hxx	2007-05-04 23:01:01.000000000 +0200
+@@ -307,29 +307,6 @@
+ 	virtual	void 		Reset( const SfxItemSet& rSet );
+ };
+ 
+-//added by jmeng begin
+-class MozPluginTabPage : public SfxTabPage
+-{
+-    FixedLine       aMSWordGB;
+-	CheckBox		aWBasicCodeCB;
+-
+-	BOOL isInstalled(void);
+-	BOOL installPlugin(void);
+-	BOOL uninstallPlugin(void);
+-
+-	MozPluginTabPage( Window* pParent, const SfxItemSet& rSet );
+-	virtual ~MozPluginTabPage();
+-
+-public:
+-
+-	static SfxTabPage*	Create( Window* pParent,
+-								const SfxItemSet& rAttrSet );
+-
+-	virtual	BOOL 		FillItemSet( SfxItemSet& rSet );
+-	virtual	void 		Reset( const SfxItemSet& rSet );
+-
+-};
+-//added by jmeng end
+ #endif
+ 
+ /* -----------------------------20.06.01 16:32--------------------------------
+--- svx/source/options/optinet2.src-old	2007-05-04 23:02:09.000000000 +0200
++++ svx/source/options/optinet2.src	2007-05-04 23:02:33.000000000 +0200
+@@ -45,32 +45,6 @@
+ /*                                                                      */
+ /************************************************************************/
+ 
+-// added by jmeng begin
+-
+-TabPage RID_SVXPAGE_INET_MOZPLUGIN
+-{
+-	OutputSize = TRUE ;
+-	Size = MAP_APPFONT ( 260 , 185 ) ;
+-	SVLook = TRUE ;
+-	Hide = TRUE ;
+-
+-    FixedLine GB_MOZPLUGIN
+-	{
+-		Pos = MAP_APPFONT ( 6 , 3 ) ;
+-        Size = MAP_APPFONT (  248 , 8  ) ;
+-		Text[ en-US ] = "Mozilla Plug-in";
+-	};
+-	CheckBox CB_MOZPLUGIN_CODE
+-	{
+-		Pos = MAP_APPFONT ( 12 , 14 ) ;
+-		Size = MAP_APPFONT (  236 , 10  ) ;
+-		TabStop = TRUE ;
+-		Text [ en-US ] = "~Enable" ;
+-	};
+-};
+-
+-//added by jmeng end
+-
+ TabPage RID_SVXPAGE_INET_PROXY
+ {
+ 	HelpId = HID_OPTIONS_PROXY ;
+--- svx/source/dialog/treeopt.src-old	2007-05-04 23:03:46.000000000 +0200
++++ svx/source/dialog/treeopt.src	2007-05-04 23:04:15.000000000 +0200
+@@ -191,7 +191,6 @@
+ 			< "Proxy" ;  RID_SVXPAGE_INET_PROXY; > ;
+ 			< "Search" ;  RID_SVXPAGE_INET_SEARCH; > ;
+ 			< "E-mail" ;  RID_SVXPAGE_INET_MAIL; > ;
+-			< "Mozilla Plug-in" ;  RID_SVXPAGE_INET_MOZPLUGIN; > ;
+ 		};
+ 		//modified by jmeng end
+ 	};
+--- svx-old/inc/svx/dialogs.hrc     2006-06-05 02:13:40.000000000 +0200
++++ svx/inc/svx/dialogs.hrc 2006-06-05 06:37:48.000000000 +0200
+@@ -250,11 +250,6 @@
+ #define RID_SVXPAGE_INET_CACHE              (RID_SVX_START + 158)
+ #define RID_SVXPAGE_INET_TYPE               (RID_SVX_START + 159)
+ #define RID_SVXPAGE_INET_SEARCH                                (RID_SVX_START + 160)
+-//added by jmeng begin
+-#define RID_SVXPAGE_INET_MOZPLUGIN                     (RID_SVX_START + 2161)
+-#define GB_MOZPLUGIN   1
+-#define CB_MOZPLUGIN_CODE      2
+-//added by jmeng end
+ #define RID_SVXPAGE_INET_SECURITY                      (RID_SVX_START + 200)
+
+ #define RID_SVXPAGE_BROWSER_OTHER           (RID_SVX_START + 202)
+--- svx-old/source/dialog/treeopt.cxx   2006-05-02 17:34:07.000000000 +0200
++++ svx/source/dialog/treeopt.cxx       2006-06-05 06:45:20.000000000 +0200
+@@ -325,9 +325,6 @@
+                case RID_SVXPAGE_ACCESSIBILITYCONFIG:           fnCreate = &SvxAccessibilityOptionsTabPage::Create; break;
+                case RID_SVXPAGE_SSO:                                           fnCreate = ( CreateTabPage ) GetSSOCreator(); break;
+                case RID_SVXPAGE_OPTIONS_CTL:                           fnCreate = &SvxCTLOptionsPage::Create ; break;
+-               //added by jmeng begin
+-               case RID_SVXPAGE_INET_MOZPLUGIN:                        fnCreate = &MozPluginTabPage::Create; break;
+-               //added by jmeng end
+                case RID_SVXPAGE_OPTIONS_JAVA:                          fnCreate = &SvxJavaOptionsPage::Create ; break;
+        }
+
+@@ -370,7 +367,6 @@
+     { "Internet",           "Proxy",                RID_SVXPAGE_INET_PROXY },
+     { "Internet",           "Search",               RID_SVXPAGE_INET_SEARCH },
+     { "Internet",           "Email",                RID_SVXPAGE_INET_MAIL },
+-    { "Internet",           "MozillaPlugin",        RID_SVXPAGE_INET_MOZPLUGIN },
+     { "LoadSave",           NULL,                   SID_FILTER_DLG },
+     { "LoadSave",           "General",              RID_SFXPAGE_SAVE },
+     { "LoadSave",           "VBAProperties",        SID_OPTFILTER_MSOFFICE },
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_makefile_accessories.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_makefile_accessories.diff
@@ -0,0 +1,50 @@
+--- scp2/util/makefile.mk.orig	2007-08-10 19:15:34.000000000 +0200
++++ scp2/util/makefile.mk	2007-09-12 15:16:23.177216800 +0200
+@@ -90,7 +90,22 @@
+              module_python_mailmerge.par   \
+              file_python.par               \
+              profileitem_python.par        \
+-             shortcut_python.par
++             shortcut_python.par           \
++             module_accessories.par        \
++             module_font_accessories.par      \
++             module_gallery_accessories.par   \
++             module_samples_accessories.par   \
++             module_samples_accessories_langpack.par     \
++             module_templates_accessories.par \
++	      module_templates_accessories_langpack.par   \
++             module_documentations_accessories_langpack.par     \
++             module_advertisement_accessories_langpack.par     \
++             file_accessories.par     \
++             file_font_accessories.par     \
++             file_gallery_accessories.par  \
++             file_samples_accessories.par  \
++             file_templates_accessories.par
++
+ 
+ .IF "$(SOLAR_JAVA)"!=""
+ SCP1FILES +=                               \
+@@ -223,7 +234,22 @@
+              module_python.par             \
+              module_python_mailmerge.par   \
+              file_python.par               \
+-             profileitem_python.par
++             profileitem_python.par        \
++             module_accessories.par        \
++             module_font_accessories.par      \
++             module_gallery_accessories.par   \
++             module_samples_accessories.par   \
++             module_samples_accessories_langpack.par     \
++             module_templates_accessories.par \
++	      module_templates_accessories_langpack.par   \
++             module_documentations_accessories_langpack.par     \
++             module_advertisement_accessories_langpack.par     \
++             file_accessories.par     \
++             file_font_accessories.par     \
++             file_gallery_accessories.par  \
++             file_samples_accessories.par  \
++             file_templates_accessories.par
++
+ 
+ .IF "$(SOLAR_JAVA)"!=""
+ SCP2FILES +=                               \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-npower9.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-npower9.diff
@@ -0,0 +1,1107 @@
+cvs diff: cannot open CVS/Entries for reading: No such file or directory
+cvs [diff aborted]: no repository
+cvs diff: cannot open CVS/Entries for reading: No such file or directory
+cvs [diff aborted]: no repository
+Index: scripting/source/dlgprov/dlgevtatt.cxx
+===================================================================
+RCS file: /cvs/framework/scripting/source/dlgprov/dlgevtatt.cxx,v
+retrieving revision 1.13
+retrieving revision 1.13.22.2
+diff -u -p -u -p -b -w -B -r1.13 -r1.13.22.2
+--- scripting/source/dlgprov/dlgevtatt.cxx	20 Jun 2007 10:27:38 -0000	1.13
++++ scripting/source/dlgprov/dlgevtatt.cxx	15 Jan 2008 17:08:46 -0000	1.13.22.2
+@@ -92,7 +92,9 @@
+ #ifndef _COM_SUN_STAR_BEANS_XMATERIALHOLDER_HPP_
+ #include <com/sun/star/beans/XMaterialHolder.hpp>
+ #endif
+-
++#ifdef FAKE_VBA_EVENT_SUPPORT
++#include <org/openoffice/vba/XVBAToOOEventDescGen.hpp>
++#endif
+ 
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::awt;
+@@ -107,15 +109,111 @@ using namespace ::com::sun::star::reflec
+ //.........................................................................
+ namespace dlgprov
+ {
++
++  class DialogSFScriptListenerImpl : public DialogScriptListenerImpl
++    {
++        protected:
++        Reference< frame::XModel >  m_xModel;
++        virtual void firing_impl( const script::ScriptEvent& aScriptEvent, uno::Any* pRet );
++        public:
++        DialogSFScriptListenerImpl( const Reference< XComponentContext >& rxContext, const Reference< frame::XModel >& rxModel ) : DialogScriptListenerImpl( rxContext ), m_xModel( rxModel ) {}
++    };
++
++  class DialogLegacyScriptListenerImpl : public DialogSFScriptListenerImpl
++    {
++        protected:
++        virtual void firing_impl( const script::ScriptEvent& aScriptEvent, uno::Any* pRet );
++        public:
++        DialogLegacyScriptListenerImpl( const Reference< XComponentContext >& rxContext, const Reference< frame::XModel >& rxModel ) : DialogSFScriptListenerImpl( rxContext, rxModel ){}
++    };
++
++  class DialogUnoScriptListenerImpl : public DialogSFScriptListenerImpl
++    {
++	Reference< awt::XControl > m_xControl;
++        Reference< XInterface >	m_xHandler;
++	Reference< beans::XIntrospectionAccess > m_xIntrospectionAccess;
++	bool m_bDialogProviderMode;
++
++        virtual void firing_impl( const script::ScriptEvent& aScriptEvent, uno::Any* pRet );
++
++    public:
++        DialogUnoScriptListenerImpl( const Reference< XComponentContext >& rxContext,            
++            const Reference< frame::XModel >& rxModel,
++			const Reference< awt::XControl >& rxControl,
++			const Reference< XInterface >& rxHandler,
++			const Reference< beans::XIntrospectionAccess >& rxIntrospectionAccess,
++			bool bDialogProviderMode );		// false: ContainerWindowProvider mode
++
++    };
++
++#ifdef FAKE_VBA_EVENT_SUPPORT
++  class DialogVBAScriptListenerImpl : public DialogScriptListenerImpl
++    {
++        protected:
++        rtl::OUString msDialogCodeName;
++        Reference<  script::XScriptListener > mxListener;
++        virtual void firing_impl( const script::ScriptEvent& aScriptEvent, uno::Any* pRet );
++        public:
++        DialogVBAScriptListenerImpl( const Reference< XComponentContext >& rxContext, const Reference< awt::XControl >& rxControl, const Reference< frame::XModel >& xModel );
++    };
++
++    DialogVBAScriptListenerImpl::DialogVBAScriptListenerImpl( const Reference< XComponentContext >& rxContext, const Reference< awt::XControl >& rxControl, const Reference< frame::XModel >& xModel ) : DialogScriptListenerImpl( rxContext )
++    {
++        Reference< XMultiComponentFactory > xSMgr( m_xContext->getServiceManager() );
++        if ( xSMgr.is() )
++        {
++            Sequence< Any > args(1);
++            args[0] <<= xModel;
++            mxListener = Reference< XScriptListener >( xSMgr->createInstanceWithArgumentsAndContext( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.vba.EventListener" ) ), args, m_xContext ), UNO_QUERY );
++        }
++        if ( rxControl.is() )
++        {
++            Reference< XPropertySet > xProps( rxControl->getModel(), UNO_QUERY );
++            try
++            {
++                xProps->getPropertyValue( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Name") ) ) >>= msDialogCodeName;
++            } 
++            catch ( Exception&  ) {}
++        }
++            
++    }
++
++    void DialogVBAScriptListenerImpl::firing_impl( const script::ScriptEvent& aScriptEvent, uno::Any* )
++    {
++        if ( aScriptEvent.ScriptType.equals( rtl::OUString::createFromAscii("VBAInterop") ) && mxListener.is() )
++        {
++            ScriptEvent aScriptEventCopy( aScriptEvent );
++            aScriptEventCopy.ScriptCode = msDialogCodeName;
++            try
++            {
++                mxListener->firing( aScriptEventCopy );
++            }
++            catch( Exception& ) {}
++        }
++    }
++#endif
++
+ //.........................................................................
+ 
+     // =============================================================================
+     // DialogEventsAttacherImpl
+     // =============================================================================
+ 
+-    DialogEventsAttacherImpl::DialogEventsAttacherImpl( const Reference< XComponentContext >& rxContext )
++    DialogEventsAttacherImpl::DialogEventsAttacherImpl( const Reference< XComponentContext >& rxContext, const Reference< frame::XModel >& rxModel, const Reference< awt::XControl >& rxControl, const Reference< XInterface >& rxHandler, const Reference< beans::XIntrospectionAccess >& rxIntrospect, bool bProviderMode, const Reference< script::XScriptListener >& rxRTLListener   )
+         :m_xContext( rxContext )
+     {
++        // key listeners by protocol when ScriptType = 'Script'
++        // otherwise key is the ScriptType e.g. StarBasic
++        if ( rxRTLListener.is() ) // set up handler for RTL_BASIC
++            listernersForTypes[ rtl::OUString::createFromAscii("StarBasic") ] = rxRTLListener;
++        else
++            listernersForTypes[ rtl::OUString::createFromAscii("StarBasic") ] = new DialogLegacyScriptListenerImpl( rxContext, rxModel );
++        // handler for Script & ::rtl::OUString::createFromAscii( "vnd.sun.star.UNO:" )
++        listernersForTypes[ rtl::OUString::createFromAscii("vnd.sun.star.UNO") ] = new DialogUnoScriptListenerImpl( rxContext, rxModel, rxControl, rxHandler, rxIntrospect, bProviderMode );
++        listernersForTypes[ rtl::OUString::createFromAscii("vnd.sun.star.script") ] = new DialogSFScriptListenerImpl( rxContext, rxModel );
++#ifdef FAKE_VBA_EVENT_SUPPORT
++        listernersForTypes[ rtl::OUString::createFromAscii("VBAInterop") ] = new DialogVBAScriptListenerImpl( rxContext, rxControl, rxModel );
++#endif
+     }
+ 
+     // -----------------------------------------------------------------------------
+@@ -125,55 +223,38 @@ namespace dlgprov
+     }
+ 
+     // -----------------------------------------------------------------------------
+-    // XScriptEventsAttacher
+-    // -----------------------------------------------------------------------------
+-
+-    void SAL_CALL DialogEventsAttacherImpl::attachEvents( const Sequence< Reference< XInterface > >& Objects,
+-        const Reference< XScriptListener >& xListener, const Any& Helper ) 
+-        throw (IllegalArgumentException, IntrospectionException, CannotCreateAdapterException, 
+-               ServiceNotRegisteredException, RuntimeException)
++    Reference< script::XScriptListener > 
++    DialogEventsAttacherImpl::getScriptListenerForKey( const rtl::OUString& sKey ) throw ( RuntimeException )
+     {
+-        // get EventAttacher
+-        {
+-            ::osl::MutexGuard aGuard( getMutex() );
+-
+-            if ( !m_xEventAttacher.is() )
++        ListenerHash::iterator it = listernersForTypes.find( sKey );
++        if ( it == listernersForTypes.end() )
++            throw RuntimeException(); // more text info here please
++        return it->second; 
++    }
++#ifdef FAKE_VBA_EVENT_SUPPORT
++    Reference< XScriptEventsSupplier > DialogEventsAttacherImpl::getFakeVbaEventsSupplier( const Reference< XControl >& xControl )
+             {
++        Reference< XScriptEventsSupplier > xEventsSupplier;
+                 Reference< XMultiComponentFactory > xSMgr( m_xContext->getServiceManager() );
+                 if ( xSMgr.is() )
+                 {
+-                    m_xEventAttacher = Reference< XEventAttacher >( xSMgr->createInstanceWithContext(
+-                        ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.script.EventAttacher" ) ), m_xContext ), UNO_QUERY );
+-
+-                    if ( !m_xEventAttacher.is() )
+-                        throw ServiceNotRegisteredException();
+-                }
+-                else
+-                {
+-                    throw RuntimeException();
+-                }
++            Reference< org::openoffice::vba::XVBAToOOEventDescGen > xVBAToOOEvtDesc( xSMgr->createInstanceWithContext( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.vba.VBAToOOEventDesc" ) ), m_xContext ), UNO_QUERY );
++            if ( xVBAToOOEvtDesc.is() )
++                xEventsSupplier.set( xVBAToOOEvtDesc->getEventSupplier( xControl ), UNO_QUERY );
+ 
+             }
++        return xEventsSupplier;
+         }
++#endif
+ 
+-        // go over all objects
+-        const Reference< XInterface >* pObjects = Objects.getConstArray();
+-        sal_Int32 nObjCount = Objects.getLength();
+-        for ( sal_Int32 i = 0; i < nObjCount; ++i )
++    // -----------------------------------------------------------------------------
++    void SAL_CALL DialogEventsAttacherImpl::attachEventsToControl( const Reference< XControl>& xControl, const Reference< XScriptEventsSupplier >& xEventsSupplier, const Any& Helper )
+         {
+-            // We know that we have to do with instances of XControl.
+-            // Otherwise this is not the right implementation for
+-            // XScriptEventsAttacher and we have to give up.
+-            Reference< XControl > xControl( pObjects[ i ], UNO_QUERY );
+-            if ( !xControl.is() )
+-                throw IllegalArgumentException();
+-
+-            // get XEventsSupplier from control model
+-            Reference< XControlModel > xControlModel = xControl->getModel();
+-            Reference< XScriptEventsSupplier > xEventsSupplier( xControlModel, UNO_QUERY );
+             if ( xEventsSupplier.is() )
+             {
+                 Reference< container::XNameContainer > xEventCont = xEventsSupplier->getEvents();
++
++            Reference< XControlModel > xControlModel = xControl->getModel();
+                 if ( xEventCont.is() )
+                 {
+                     Sequence< ::rtl::OUString > aNames = xEventCont->getElementNames();
+@@ -186,8 +267,14 @@ namespace dlgprov
+ 
+                         Any aElement = xEventCont->getByName( pNames[ j ] );
+                         aElement >>= aDesc;
++                    rtl::OUString sKey = aDesc.ScriptType;
++                    if ( aDesc.ScriptType.equals( rtl::OUString::createFromAscii("Script" ) ) || aDesc.ScriptType.equals( rtl::OUString::createFromAscii("UNO" ) ) )
++                    {
++                        sal_Int32 nIndex = aDesc.ScriptCode.indexOf( ':' );
++                        sKey = aDesc.ScriptCode.copy( 0, nIndex );	
++                    }
+                         Reference< XAllListener > xAllListener =
+-                            new DialogAllListenerImpl( xListener, aDesc.ScriptType, aDesc.ScriptCode );
++                        new DialogAllListenerImpl( getScriptListenerForKey( sKey ), aDesc.ScriptType, aDesc.ScriptCode );
+ 
+                         // try first to attach event to the ControlModel
+                         bool bSuccess = false;
+@@ -239,6 +326,61 @@ namespace dlgprov
+                 }
+             }
+         }
++
++    // -----------------------------------------------------------------------------
++    // XScriptEventsAttacher
++    // -----------------------------------------------------------------------------
++
++    void SAL_CALL DialogEventsAttacherImpl::attachEvents( const Sequence< Reference< XInterface > >& Objects,
++        const com::sun::star::uno::Reference<com::sun::star::script::XScriptListener>&,
++        const Any& Helper ) 
++        throw (IllegalArgumentException, IntrospectionException, CannotCreateAdapterException, 
++               ServiceNotRegisteredException, RuntimeException)
++    {
++        // get EventAttacher
++        {
++            ::osl::MutexGuard aGuard( getMutex() );
++
++            if ( !m_xEventAttacher.is() )
++            {
++                Reference< XMultiComponentFactory > xSMgr( m_xContext->getServiceManager() );
++                if ( xSMgr.is() )
++                {
++                    m_xEventAttacher = Reference< XEventAttacher >( xSMgr->createInstanceWithContext(
++                        ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.script.EventAttacher" ) ), m_xContext ), UNO_QUERY );
++
++                    if ( !m_xEventAttacher.is() )
++                        throw ServiceNotRegisteredException();
++                }
++                else
++                {
++                    throw RuntimeException();
++                }
++
++            }
++        }
++
++        // go over all objects
++        const Reference< XInterface >* pObjects = Objects.getConstArray();
++        sal_Int32 nObjCount = Objects.getLength();
++        for ( sal_Int32 i = 0; i < nObjCount; ++i )
++        {
++            // We know that we have to do with instances of XControl.
++            // Otherwise this is not the right implementation for
++            // XScriptEventsAttacher and we have to give up.
++            Reference< XControl > xControl( pObjects[ i ], UNO_QUERY );
++            if ( !xControl.is() )
++                throw IllegalArgumentException();
++
++            // get XEventsSupplier from control model
++            Reference< XControlModel > xControlModel = xControl->getModel();
++            Reference< XScriptEventsSupplier > xEventsSupplier( xControlModel, UNO_QUERY );
++            attachEventsToControl( xControl, xEventsSupplier, Helper );
++#ifdef FAKE_VBA_EVENT_SUPPORT
++            xEventsSupplier.set( getFakeVbaEventsSupplier( xControl ) );
++            attachEventsToControl( xControl, xEventsSupplier, Helper );
++#endif
++        }
+     }
+ 
+ 
+@@ -318,14 +460,13 @@ namespace dlgprov
+     // DialogScriptListenerImpl
+     // =============================================================================
+ 
+-    DialogScriptListenerImpl::DialogScriptListenerImpl( const Reference< XComponentContext >& rxContext, 
++    DialogUnoScriptListenerImpl::DialogUnoScriptListenerImpl( const Reference< XComponentContext >& rxContext, 
+             const Reference< ::com::sun::star::frame::XModel >& rxModel,
+ 			const Reference< ::com::sun::star::awt::XControl >& rxControl,
+ 			const Reference< ::com::sun::star::uno::XInterface >& rxHandler,
+ 			const Reference< ::com::sun::star::beans::XIntrospectionAccess >& rxIntrospectionAccess,
+ 			bool bDialogProviderMode )
+-        :m_xContext( rxContext ) 
+-        ,m_xModel( rxModel )
++        : DialogSFScriptListenerImpl( rxContext, rxModel )
+         ,m_xControl( rxControl )
+         ,m_xHandler( rxHandler )
+         ,m_xIntrospectionAccess( rxIntrospectionAccess )
+@@ -340,42 +481,8 @@ namespace dlgprov
+     }
+ 
+     // -----------------------------------------------------------------------------
+-
+-    void DialogScriptListenerImpl::firing_impl( const ScriptEvent& aScriptEvent, Any* pRet )
+-    {            
+-		static ::rtl::OUString aVndSunStarUNO = 
+-			::rtl::OUString::createFromAscii( "vnd.sun.star.UNO:" );
+-
+-        ::rtl::OUString sScriptURL;
+-        ::rtl::OUString sScriptCode( aScriptEvent.ScriptCode );
+-
+-		bool bUNO = (sScriptCode.indexOf( aVndSunStarUNO ) == 0);
+-		if( bUNO )
+-		{
+-			handleUnoScript( aScriptEvent, pRet );
+-			return;
+-		}
+-		else
+-		{
+-			if ( aScriptEvent.ScriptType.compareToAscii( "StarBasic" ) == 0 )
+-			{
+-				// StarBasic script: convert ScriptCode to scriptURL
+-				sal_Int32 nIndex = sScriptCode.indexOf( ':' );
+-				if ( nIndex >= 0 && nIndex < sScriptCode.getLength() )
+-				{
+-					sScriptURL = ::rtl::OUString::createFromAscii( "vnd.sun.star.script:" );
+-					sScriptURL += sScriptCode.copy( nIndex + 1 );
+-					sScriptURL += ::rtl::OUString::createFromAscii( "?language=Basic&location=" );
+-					sScriptURL += sScriptCode.copy( 0, nIndex );
+-				}
+-			}
+-			else
++    void DialogSFScriptListenerImpl::firing_impl( const ScriptEvent& aScriptEvent, Any* pRet )
+ 			{
+-				// scripting framework script: ScriptCode contains scriptURL
+-				sScriptURL = sScriptCode;            
+-			}
+-		}
+-
+         try
+         {
+             Reference< provider::XScriptProvider > xScriptProvider;
+@@ -409,7 +516,7 @@ namespace dlgprov
+ 
+             if ( xScriptProvider.is() )
+             {                    
+-                Reference< provider::XScript > xScript = xScriptProvider->getScript( sScriptURL );
++                Reference< provider::XScript > xScript = xScriptProvider->getScript( aScriptEvent.ScriptCode );
+                 OSL_ENSURE( xScript.is(), "DialogScriptListenerImpl::firing_impl: failed to get script" );
+ 
+                 if ( xScript.is() )
+@@ -439,7 +546,29 @@ namespace dlgprov
+         }
+     }
+ 
+-	void DialogScriptListenerImpl::handleUnoScript( const ScriptEvent& aScriptEvent, Any* pRet )
++    void DialogLegacyScriptListenerImpl::firing_impl( const ScriptEvent& aScriptEvent, Any* pRet )
++    {            
++        ::rtl::OUString sScriptURL;
++        ::rtl::OUString sScriptCode( aScriptEvent.ScriptCode );
++
++	if ( aScriptEvent.ScriptType.compareToAscii( "StarBasic" ) == 0 )
++	{
++		// StarBasic script: convert ScriptCode to scriptURL
++		sal_Int32 nIndex = sScriptCode.indexOf( ':' );
++		if ( nIndex >= 0 && nIndex < sScriptCode.getLength() )
++		{
++			sScriptURL = ::rtl::OUString::createFromAscii( "vnd.sun.star.script:" );
++			sScriptURL += sScriptCode.copy( nIndex + 1 );
++			sScriptURL += ::rtl::OUString::createFromAscii( "?language=Basic&location=" );
++			sScriptURL += sScriptCode.copy( 0, nIndex );
++		}
++		ScriptEvent aSFScriptEvent( aScriptEvent );
++		aSFScriptEvent.ScriptCode = sScriptURL;
++		DialogSFScriptListenerImpl::firing_impl( aSFScriptEvent, pRet );
++	}
++    }
++
++	void DialogUnoScriptListenerImpl::firing_impl( const ScriptEvent& aScriptEvent, Any* pRet )
+ 	{
+ 		static ::rtl::OUString sUnoURLScheme = ::rtl::OUString::createFromAscii( "vnd.sun.star.UNO:" );
+ 
+Index: scripting/source/dlgprov/dlgevtatt.hxx
+===================================================================
+RCS file: /cvs/framework/scripting/source/dlgprov/dlgevtatt.hxx,v
+retrieving revision 1.6
+retrieving revision 1.6.22.3
+diff -u -p -u -p -b -w -B -r1.6 -r1.6.22.3
+--- scripting/source/dlgprov/dlgevtatt.hxx	20 Jun 2007 10:28:01 -0000	1.6
++++ scripting/source/dlgprov/dlgevtatt.hxx	30 Jan 2008 16:27:06 -0000	1.6.22.3
+@@ -65,7 +65,9 @@
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+ 
++#include <com/sun/star/script/XScriptEventsSupplier.hpp>
+ 
++#include <hash_map>
+ //.........................................................................
+ namespace dlgprov
+ {
+@@ -74,6 +76,10 @@ namespace dlgprov
+     // =============================================================================
+     // class DialogEventsAttacherImpl
+     // =============================================================================
++    typedef std::hash_map< rtl::OUString, 
++        ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >, 
++        ::rtl::OUStringHash, 
++        ::std::equal_to< ::rtl::OUString > > ListenerHash;
+ 
+     typedef ::cppu::WeakImplHelper1<
+         ::com::sun::star::script::XScriptEventsAttacher > DialogEventsAttacherImpl_BASE;
+@@ -82,17 +88,28 @@ namespace dlgprov
+     class DialogEventsAttacherImpl : public DialogEventsAttacherImpl_BASE
+     {
+     private:
++        ListenerHash listernersForTypes;
+         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
+         ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacher > m_xEventAttacher;
+-
++        ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener > getScriptListenerForKey( const rtl::OUString& sScriptName ) throw ( ::com::sun::star::uno::RuntimeException );
++#ifdef FAKE_VBA_EVENT_SUPPORT
++        ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptEventsSupplier > getFakeVbaEventsSupplier( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl );
++#endif
++        void  SAL_CALL attachEventsToControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl, const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptEventsSupplier >& events, const ::com::sun::star::uno::Any& Helper  );
+     public:
+-        DialogEventsAttacherImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext );
++        DialogEventsAttacherImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, 
++        	 const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel, 
++        	 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& xControl, 
++        	 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xHandler, 
++        	 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess >& xIntrospect, 
++             bool bProviderMode, 
++        	 const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xRTLListener );
+         virtual ~DialogEventsAttacherImpl();
+ 
+         // XScriptEventsAttacher
+         virtual void SAL_CALL attachEvents( const ::com::sun::star::uno::Sequence< 
+             ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& Objects, 
+-            const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener, 
++			const com::sun::star::uno::Reference<com::sun::star::script::XScriptListener>&,
+             const ::com::sun::star::uno::Any& Helper ) 
+             throw (::com::sun::star::lang::IllegalArgumentException, 
+                    ::com::sun::star::beans::IntrospectionException, 
+@@ -146,24 +163,11 @@ namespace dlgprov
+ 
+     class DialogScriptListenerImpl : public DialogScriptListenerImpl_BASE
+     {
++    protected:
+         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >		m_xContext;
+-        ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >				    m_xModel;
+-		::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >					m_xControl;
+-        ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >				m_xHandler;
+-		::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess >	m_xIntrospectionAccess;
+-		bool																				m_bDialogProviderMode;
+-
+-        virtual void firing_impl( const ::com::sun::star::script::ScriptEvent& aScriptEvent, ::com::sun::star::uno::Any* pRet );
+-
+-		void handleUnoScript( const ::com::sun::star::script::ScriptEvent& aScriptEvent, ::com::sun::star::uno::Any* pRet );
+-
++        virtual void firing_impl( const ::com::sun::star::script::ScriptEvent& aScriptEvent, ::com::sun::star::uno::Any* pRet ) = 0;
+     public:
+-        DialogScriptListenerImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext,            
+-            const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel,
+-			const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& rxControl,
+-			const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxHandler,
+-			const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess >& rxIntrospectionAccess,
+-			bool bDialogProviderMode );		// false: ContainerWindowProvider mode
++        DialogScriptListenerImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ) : m_xContext( rxContext ) {}
+         virtual ~DialogScriptListenerImpl();
+ 
+         // XEventListener
+Index: scripting/source/dlgprov/dlgprov.cxx
+===================================================================
+RCS file: /cvs/framework/scripting/source/dlgprov/dlgprov.cxx,v
+retrieving revision 1.13
+retrieving revision 1.12.8.4
+diff -u -p -u -p -b -w -B -r1.13 -r1.12.8.4
+--- scripting/source/dlgprov/dlgprov.cxx	28 Jan 2008 13:57:53 -0000	1.13
++++ scripting/source/dlgprov/dlgprov.cxx	25 Feb 2008 11:12:21 -0000	1.12.8.4
+@@ -113,6 +113,7 @@ namespace dlgprov
+ {
+ //.........................................................................
+ 
++static ::rtl::OUString aResourceResolverPropName = ::rtl::OUString::createFromAscii( "ResourceResolver" );
+     // =============================================================================
+     // component operations
+     // =============================================================================
+@@ -210,9 +211,41 @@ namespace dlgprov
+ 		return xStringResourceManager;
+ 	}
+ 
++    Reference< container::XNameContainer > DialogProviderImpl::createControlModel() throw ( Exception )
++    {
++        Reference< XMultiComponentFactory > xSMgr_( m_xContext->getServiceManager(), UNO_QUERY_THROW );
++        Reference< container::XNameContainer > xControlModel( xSMgr_->createInstanceWithContext( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ), m_xContext ), UNO_QUERY_THROW );
++        return xControlModel;
++    }
++
++    Reference< container::XNameContainer > DialogProviderImpl::createDialogModel( const Reference< io::XInputStream >& xInput, const Reference< resource::XStringResourceManager >& xStringResourceManager ) throw ( Exception )
++    {
++        Reference< container::XNameContainer > xDialogModel(  createControlModel() );
++        ::xmlscript::importDialogModel( xInput, xDialogModel, m_xContext );
++        // Set resource property
++        if( xStringResourceManager.is() )
++        {
++            Reference< beans::XPropertySet > xDlgPSet( xDialogModel, UNO_QUERY );
++            Any aStringResourceManagerAny;
++            aStringResourceManagerAny <<= xStringResourceManager;
++            xDlgPSet->setPropertyValue( aResourceResolverPropName, aStringResourceManagerAny );
++        }
++	
++        return xDialogModel; 
++    }
++
++    Reference< XControlModel > DialogProviderImpl::createDialogModelForBasic() throw ( Exception )
++    {
++        if ( !m_BasicInfo.get() ) 
++            // shouln't get here 
++            throw RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("No information to create dialog" ) ), Reference< XInterface >() );
++        Reference< resource::XStringResourceManager > xStringResourceManager = getStringResourceFromDialogLibrary( m_BasicInfo->mxDlgLib );
++        Reference< XControlModel > xCtrlModel( createDialogModel( m_BasicInfo->mxInput, xStringResourceManager ), UNO_QUERY_THROW );
++        return xCtrlModel;
++    }
++
+     Reference< XControlModel > DialogProviderImpl::createDialogModel( const ::rtl::OUString& sURL )
+     {
+-		static ::rtl::OUString aResourceResolverPropName = ::rtl::OUString::createFromAscii( "ResourceResolver" );
+ 
+ 		::rtl::OUString aURL( sURL );
+ 
+@@ -408,24 +441,6 @@ namespace dlgprov
+         Reference< XControlModel > xCtrlModel;
+         if ( xInput.is() && m_xContext.is() )
+         {
+-            Reference< XMultiComponentFactory > xSMgr_( m_xContext->getServiceManager() );
+-            if ( xSMgr_.is() )
+-            {
+-                Reference< container::XNameContainer > xDialogModel( xSMgr_->createInstanceWithContext(
+-                    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ), m_xContext ), UNO_QUERY );
+-
+-                if ( xDialogModel.is() )
+-                {
+-					Any aDialogSourceURLAny;
+-					aDialogSourceURLAny <<= aURL;
+-					::rtl::OUString aDlgSrcUrlPropName( RTL_CONSTASCII_USTRINGPARAM( "DialogSourceURL" ) );
+-					Reference< beans::XPropertySet > xDlgPropSet( xDialogModel, UNO_QUERY );
+-					xDlgPropSet->setPropertyValue( aDlgSrcUrlPropName, aDialogSourceURLAny );
+-					
+-					::xmlscript::importDialogModel( xInput, xDialogModel, m_xContext );
+-
+-					xCtrlModel = Reference< XControlModel >( xDialogModel, UNO_QUERY );                    
+-
+ 					Reference< resource::XStringResourceManager > xStringResourceManager;
+ 					if( bSingleDialog )
+ 					{
+@@ -446,7 +461,7 @@ namespace dlgprov
+ 
+ 						Reference< task::XInteractionHandler > xDummyHandler;
+ 						aArgs[5] <<= xDummyHandler;
+-
++				Reference< XMultiComponentFactory > xSMgr_( m_xContext->getServiceManager(), UNO_QUERY_THROW );
+ 						// TODO: Ctor
+ 						xStringResourceManager = Reference< resource::XStringResourceManager >( xSMgr_->createInstanceWithContext
+ 							( ::rtl::OUString::createFromAscii( "com.sun.star.resource.StringResourceWithLocation" ), 
+@@ -463,16 +478,15 @@ namespace dlgprov
+ 						xStringResourceManager = getStringResourceFromDialogLibrary( xDialogLib );
+ 					}
+ 
+-					// Set resource property
+-					if( xStringResourceManager.is() )
+-					{
+-						Reference< beans::XPropertySet > xDlgPSet( xDialogModel, UNO_QUERY );
+-						Any aStringResourceManagerAny;
+-						aStringResourceManagerAny <<= xStringResourceManager;
+-						xDlgPSet->setPropertyValue( aResourceResolverPropName, aStringResourceManagerAny );
+-					}
+-                }
+-            }
++            Reference< container::XNameContainer > xDialogModel( createDialogModel( xInput , xStringResourceManager ), UNO_QUERY_THROW );
++			Any aDialogSourceURLAny;
++			aDialogSourceURLAny <<= aURL;
++			::rtl::OUString aDlgSrcUrlPropName( RTL_CONSTASCII_USTRINGPARAM( "DialogSourceURL" ) );
++			Reference< beans::XPropertySet > xDlgPropSet( xDialogModel, UNO_QUERY );
++			xDlgPropSet->setPropertyValue( aDlgSrcUrlPropName, aDialogSourceURLAny );
++					
++
++			xCtrlModel = Reference< XControlModel >( xDialogModel, UNO_QUERY );
+         }
+         return xCtrlModel;
+     }
+@@ -563,19 +577,13 @@ namespace dlgprov
+                 // also add the dialog control itself to the sequence
+                 pObjects[nControlCount] = Reference< XInterface >( rxControl, UNO_QUERY );
+ 
+-                Reference< XScriptListener > xScriptListener = new DialogScriptListenerImpl
+-					( m_xContext, m_xModel, rxControl, rxHandler, rxIntrospectionAccess, bDialogProviderMode );
+-
+-                if ( xScriptListener.is() )
+-                {
+                     if ( !m_xScriptEventsAttacher.is() )
+-                        m_xScriptEventsAttacher = new DialogEventsAttacherImpl( m_xContext );
++                    m_xScriptEventsAttacher = new DialogEventsAttacherImpl( m_xContext, m_xModel, rxControl, rxHandler, rxIntrospectionAccess, bDialogProviderMode, ( m_BasicInfo.get() ? m_BasicInfo->mxBasicRTLListener : NULL ) );
+ 
+                     if ( m_xScriptEventsAttacher.is() )
+                     {
+                         Any aHelper;
+-                        m_xScriptEventsAttacher->attachEvents( aObjects, xScriptListener, aHelper );
+-                    }
++                    m_xScriptEventsAttacher->attachEvents( aObjects, Reference< XScriptListener >(), aHelper );
+                 }
+             }
+         }
+@@ -672,7 +680,19 @@ namespace dlgprov
+                     Reference< XInterface >() );
+             }
+         }
+-        else if ( aArguments.getLength() > 1 )
++        else if ( aArguments.getLength() == 4 )
++        {
++            // call from RTL_Impl_CreateUnoDialog
++            aArguments[0] >>= m_xModel;
++            m_BasicInfo.reset( new BasicRTLParams() );
++            m_BasicInfo->mxInput.set( aArguments[ 1 ], UNO_QUERY_THROW );
++            m_BasicInfo->mxDlgLib.set( aArguments[ 2 ], UNO_QUERY_THROW );
++            // leave the possibility to optionally allow the old dialog creation
++            // to use the new XScriptListener ( which converts the old style macro
++            // to a SF url )
++            m_BasicInfo->mxBasicRTLListener.set( aArguments[ 3 ], UNO_QUERY);
++        }
++        else if ( aArguments.getLength() > 4 )
+         {
+             throw RuntimeException(
+                 ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DialogProviderImpl::initialize: invalid number of arguments!" ) ),
+@@ -698,13 +718,20 @@ namespace dlgprov
+ 
+         ::osl::MutexGuard aGuard( getMutex() );
+ 
+-        OSL_ENSURE( URL.getLength(), "DialogProviderImpl::getDialog: no URL!" );
+ 
+ 		// m_xHandler = xHandler;
+ 
+         //Reference< XDialog > xDialog;
+ 		Reference< XControl > xCtrl;
+-        Reference< XControlModel > xCtrlMod( createDialogModel( URL ) );
++        Reference< XControlModel > xCtrlMod;
++        // add support for basic RTL_FUNCTION
++        if ( m_BasicInfo.get() )
++            xCtrlMod = createDialogModelForBasic();
++        else
++        {
++            OSL_ENSURE( URL.getLength(), "DialogProviderImpl::getDialog: no URL!" );
++            xCtrlMod = createDialogModel( URL );
++        }
+         if ( xCtrlMod.is() )
+         {
+ 			// i83963 Force decoration
+Index: scripting/source/dlgprov/dlgprov.hxx
+===================================================================
+RCS file: /cvs/framework/scripting/source/dlgprov/dlgprov.hxx,v
+retrieving revision 1.6
+retrieving revision 1.6.22.2
+diff -u -p -u -p -b -w -B -r1.6 -r1.6.22.2
+--- scripting/source/dlgprov/dlgprov.hxx	20 Jun 2007 10:28:40 -0000	1.6
++++ scripting/source/dlgprov/dlgprov.hxx	15 Jan 2008 12:57:32 -0000	1.6.22.2
+@@ -66,6 +66,9 @@
+ #ifndef _COM_SUN_STAR_BEANS_XINTROSPECTION_HPP_
+ #include <com/sun/star/beans/XIntrospectionAccess.hpp>
+ #endif
++#include <com/sun/star/container/XNameContainer.hpp>
++#include <com/sun/star/io/XInputStream.hpp>
++#include <com/sun/star/resource/XStringResourceManager.hpp>
+ 
+ #ifndef _CPPUHELPER_IMPLBASE3_HXX_
+ #include <cppuhelper/implbase4.hxx>
+@@ -73,7 +76,7 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-
++#include <memory>
+ 
+ //.........................................................................
+ namespace dlgprov
+@@ -101,6 +103,13 @@ namespace dlgprov
+     class DialogProviderImpl : public DialogProviderImpl_BASE
+     {
+     private:
++        struct BasicRTLParams
++        {
++             ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > mxInput;
++             ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > mxDlgLib;
++             ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener > mxBasicRTLListener;
++        };
++        std::auto_ptr< BasicRTLParams > m_BasicInfo;
+         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >        m_xContext;
+         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >                 m_xModel;
+         ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptEventsAttacher > m_xScriptEventsAttacher;
+@@ -118,6 +127,10 @@ namespace dlgprov
+ 			bool bDialogProviderMode );
+ 		::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess > inspectHandler( 
+ 			const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxHandler );
++	// helper methods
++			::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > createControlModel() throw ( ::com::sun::star::uno::Exception );
++			::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > createDialogModel( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInput, const ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager >& xStringResourceManager ) throw ( ::com::sun::star::uno::Exception );
++			::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > createDialogModelForBasic() throw ( ::com::sun::star::uno::Exception );
+ 
+         // XDialogProvider / XDialogProvider2 impl method
+ 	    virtual ::com::sun::star::uno::Reference < ::com::sun::star::awt::XControl > SAL_CALL createDialogImpl(
+Index: basic/source/classes/eventatt.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/eventatt.cxx,v
+retrieving revision 1.31
+retrieving revision 1.30.30.3
+diff -u -p -u -p -b -w -B -r1.31 -r1.30.30.3
+--- basic/source/classes/eventatt.cxx	28 Jan 2008 13:59:47 -0000	1.31
++++ basic/source/classes/eventatt.cxx	15 Apr 2008 15:21:04 -0000	1.30.30.3
+@@ -96,6 +96,7 @@
+ 
+ #include <com/sun/star/script/provider/XScriptProviderSupplier.hpp>
+ #include <com/sun/star/script/provider/XScriptProvider.hpp>
++#include <com/sun/star/awt/XDialogProvider.hpp>
+ 
+ #include <com/sun/star/frame/XModel.hpp>
+ 
+@@ -115,36 +116,6 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::script;
+ using namespace ::com::sun::star::resource;
+ 
+-typedef ::cppu::WeakImplHelper1< ::com::sun::star::script::XScriptEventsAttacher > ScriptEventsAttacherHelper;
+-
+-
+-// Attaches dialogs
+-class DialogEventAttacher : public ScriptEventsAttacherHelper
+-{
+-    friend class DialogAllListener_Impl;
+-
+-    ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacher > mxEventAttacher;
+-	::osl::Mutex maMutex;
+-
+-public:
+-	DialogEventAttacher( void ) {}
+-
+-    // Methods
+-    virtual void SAL_CALL attachEvents( const ::com::sun::star::uno::Sequence< 
+-		::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& Objects, 
+-		const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener, 
+-		const ::com::sun::star::uno::Any& Helper ) 
+-			throw(::com::sun::star::lang::IllegalArgumentException, 
+-				  ::com::sun::star::beans::IntrospectionException, 
+-				  ::com::sun::star::script::CannotCreateAdapterException, 
+-				  ::com::sun::star::lang::ServiceNotRegisteredException, 
+-				  ::com::sun::star::uno::RuntimeException);
+-};
+-
+-
+-
+-//===================================================================
+-
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+@@ -477,264 +448,6 @@ void BasicScriptListener_Impl::firing_im
+         }
+ }
+ 
+-
+-//===================================================================
+-
+-// Function to map from NameContainer to sequence needed 
+-// to call XScriptEventsAttacher::attachEvents
+-//void SAL_CALL attachDialogEvents( StarBASIC* pBasic, 
+-void SAL_CALL attachDialogEvents( StarBASIC* pBasic, const Reference< frame::XModel >& xModel, 
+-	const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& xDialogControl )
+-	//const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener )
+-{
+-	static Reference< XScriptEventsAttacher > xEventsAttacher;
+-	Guard< Mutex > aGuard( Mutex::getGlobalMutex() );
+-	{
+-		if( !xEventsAttacher.is() )
+-			xEventsAttacher = new DialogEventAttacher();
+-	}
+-
+-	if( !xDialogControl.is() )
+-		return;
+-
+-	Reference< XControlContainer > xControlContainer( xDialogControl, UNO_QUERY );
+-	if( !xControlContainer.is() )
+-		return;
+-	Sequence< Reference< XControl > > aControls = xControlContainer->getControls();
+-	const Reference< XControl >* pControls = aControls.getConstArray();
+-	sal_Int32 nControlCount = aControls.getLength();
+-	sal_Int32 nObjectCount = nControlCount + 1;
+-
+-	Sequence< Reference< XInterface > > aObjectSeq( nObjectCount );
+-	Reference< XInterface >* pObjects = aObjectSeq.getArray();
+-	for( sal_Int32 i = 0 ; i < nControlCount ; i++ )
+-	{
+-		Reference< XInterface > xIface( pControls[i], UNO_QUERY );
+-		pObjects[i] = xIface;
+-	}
+-
+-	// Also take the DialogControl itself into the sequence
+-	Reference< XInterface > xDialogIface( xDialogControl, UNO_QUERY );
+-	pObjects[ nControlCount ] = xDialogIface;
+-
+-	Reference< XScriptListener > xScriptListener = new BasicScriptListener_Impl( pBasic, xModel );
+-	Any Helper;
+-	xEventsAttacher->attachEvents( aObjectSeq, xScriptListener, Helper );
+-}
+-
+-
+-//===================================================================
+-
+-class DialogAllListener_Impl : public WeakImplHelper1< XAllListener >
+-{
+-	Reference< XScriptListener >	mxScriptListener;
+-    OUString						maScriptType;
+-    OUString						maScriptCode;
+-	Mutex							maMutex;
+-
+-	virtual void firing_impl(const AllEventObject& Event, Any* pRet);
+-
+-public:
+-    DialogAllListener_Impl( const Reference< XScriptListener >& xListener, 
+-		const OUString &rScriptType, const OUString & rScriptCode );
+-
+-    // Methoden von XAllListener
+-    virtual void SAL_CALL firing(const AllEventObject& Event) 
+-		throw( RuntimeException );
+-    virtual Any SAL_CALL approveFiring(const AllEventObject& Event) 
+-		throw( InvocationTargetException, RuntimeException );
+-
+-    // Methoden von XEventListener
+-    virtual void SAL_CALL disposing(const EventObject& Source) 
+-		throw( RuntimeException );
+-};
+-
+-//========================================================================
+-
+-DialogAllListener_Impl::DialogAllListener_Impl( const Reference< XScriptListener >& xListener, 
+-	const OUString &rScriptType, const OUString & rScriptCode )
+-		: mxScriptListener( xListener )
+-		, maScriptType( rScriptType )
+-		, maScriptCode( rScriptCode )
+-{
+-}
+-
+-// Methods XAllListener
+-void DialogAllListener_Impl::firing( const AllEventObject& Event ) throw ( RuntimeException )
+-{
+-	firing_impl( Event, NULL );
+-}
+-
+-Any DialogAllListener_Impl::approveFiring( const AllEventObject& Event ) 
+-	throw ( InvocationTargetException, RuntimeException )
+-{
+-	Any aRetAny;
+-	firing_impl( Event, &aRetAny );
+-	return aRetAny;
+-}
+-
+-// Methods XEventListener
+-void DialogAllListener_Impl::disposing(const EventObject& ) throw ( RuntimeException )
+-{
+-	// TODO: ???
+-	//NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+-	//xSbxObj.Clear();
+-}
+-
+-void DialogAllListener_Impl::firing_impl( const AllEventObject& Event, Any* pRet )
+-{
+-	Guard< Mutex > aGuard( maMutex );
+-
+-    ScriptEvent aScriptEvent;
+-    aScriptEvent.Source         = (OWeakObject *)this;	// get correct XInterface
+-    aScriptEvent.ListenerType   = Event.ListenerType;
+-    aScriptEvent.MethodName     = Event.MethodName;
+-    aScriptEvent.Arguments      = Event.Arguments;
+-    aScriptEvent.Helper         = Event.Helper;
+-    aScriptEvent.Arguments      = Event.Arguments;
+-    aScriptEvent.ScriptType     = maScriptType;
+-    aScriptEvent.ScriptCode     = maScriptCode;
+-
+-	if( pRet )
+-		*pRet = mxScriptListener->approveFiring( aScriptEvent );
+-	else
+-		mxScriptListener->firing( aScriptEvent );
+-}
+-
+-
+-//===================================================================
+-
+-
+-
+-void SAL_CALL DialogEventAttacher::attachEvents
+-(
+-	const Sequence< Reference< XInterface > >& Objects,
+-	const Reference< XScriptListener >& xListener, 
+-	const Any& Helper 
+-) 
+-	throw(	IllegalArgumentException, 
+-			IntrospectionException, 
+-			CannotCreateAdapterException, 
+-			ServiceNotRegisteredException, 
+-			RuntimeException )
+-{
+-	// Get EventAttacher and Introspection (Introspection???)
+-	{
+-		Guard< Mutex > aGuard( maMutex );
+-		if( !mxEventAttacher.is() )
+-		{
+-			// AllListenerAdapterService holen
+-			Reference< XMultiServiceFactory > xSMgr( comphelper::getProcessServiceFactory() );
+-			if( !xSMgr.is() )
+-				throw RuntimeException();
+-
+-			Reference< XInterface > xIFace( xSMgr->createInstance( 
+-				OUString::createFromAscii("com.sun.star.script.EventAttacher") ) );
+-			if ( xIFace.is() )
+-			{
+-				mxEventAttacher = Reference< XEventAttacher >::query( xIFace );
+-			}
+-			if( !mxEventAttacher.is() )
+-				throw ServiceNotRegisteredException();
+-		}
+-	}
+-
+-	// Go over all objects
+-	const Reference< XInterface >* pObjects = Objects.getConstArray();
+-	sal_Int32 i, nObjCount = Objects.getLength();
+-	for( i = 0 ; i < nObjCount ; i++ )
+-	{
+-		// We know that we have to do with instances of XControl
+-		// Otherwise this is not the right implementation for
+-		// XScriptEventsAttacher and we have to give up
+-		Reference< XControl > xControl( pObjects[ i ], UNO_QUERY );
+-		if( !xControl.is() )
+-			throw IllegalArgumentException();
+-
+-		// Get XEventsSupplier from ControlModel
+-		Reference< XControlModel > xControlModel = xControl->getModel();
+-		Reference< XScriptEventsSupplier > xEventsSupplier( xControlModel, UNO_QUERY );
+-		if( xEventsSupplier.is() )
+-		{
+-			Reference< XNameContainer > xEventCont = xEventsSupplier->getEvents();
+-			Sequence< OUString > aNames = xEventCont->getElementNames();
+-			const OUString* pNames = aNames.getConstArray();
+-			sal_Int32 j, nNameCount = aNames.getLength();
+-
+-			for( j = 0 ; j < nNameCount ; j++ )
+-			{
+-				ScriptEventDescriptor aDesc;
+-
+-				Any aElement = xEventCont->getByName( pNames[ j ] );
+-				aElement >>= aDesc;
+-				Reference< XAllListener > xAllListener =
+-					new DialogAllListener_Impl( xListener, aDesc.ScriptType, aDesc.ScriptCode );
+-
+-				// Try first to attach event to the ControlModel
+-				sal_Bool bSuccess = sal_False;
+-				try
+-				{
+-					Reference< XEventListener > xListener_ = mxEventAttacher->
+-						attachSingleEventListener( xControlModel, xAllListener, Helper, 
+-						aDesc.ListenerType, aDesc.AddListenerParam, aDesc.EventMethod );
+-
+-					if( xListener_.is() )
+-						bSuccess = sal_True;
+-				}
+-				catch( IllegalArgumentException& ) 
+-				{}
+-				catch( IntrospectionException& ) 
+-				{}
+-				catch( CannotCreateAdapterException& ) 
+-				{}
+-				catch( ServiceNotRegisteredException& ) 
+-				{}
+-				//{
+-					//throw IntrospectionException();
+-				//}
+-
+-				try
+-				{
+-				// If we had no success, try to attach to the Control
+-				if( !bSuccess )
+-				{
+-					Reference< XEventListener > xListener_;	// Do we need that?!?
+-					xListener_ = mxEventAttacher->attachSingleEventListener
+-						( xControl, xAllListener, Helper, aDesc.ListenerType,
+-						  aDesc.AddListenerParam, aDesc.EventMethod );
+-				}
+-				}
+-				catch( IllegalArgumentException& ) 
+-				{}
+-				catch( IntrospectionException& ) 
+-				{}
+-				catch( CannotCreateAdapterException& ) 
+-				{}
+-				catch( ServiceNotRegisteredException& ) 
+-				{}
+-			}
+-		}
+-	}
+-
+-}
+-
+-Reference< XStringResourceManager > getStringResourceFromDialogLibrary( const Any& aDlgLibAny )
+-{
+-	Reference< resource::XStringResourceManager > xStringResourceManager;
+-
+-	Reference< resource::XStringResourceSupplier > xStringResourceSupplier;
+-	aDlgLibAny >>= xStringResourceSupplier;
+-	if( xStringResourceSupplier.is() )
+-	{
+-		Reference< resource::XStringResourceResolver >
+-			xStringResourceResolver = xStringResourceSupplier->getStringResource();
+-
+-		xStringResourceManager = 
+-			Reference< resource::XStringResourceManager >( xStringResourceResolver, UNO_QUERY );
+-	}
+-	return xStringResourceManager;
+-}
+-
+ Any implFindDialogLibForDialog( const Any& rDlgAny, SbxObject* pBasic )
+ {
+ 	Any aRetDlgLibAny;
+@@ -842,7 +555,6 @@ void RTL_Impl_CreateUnoDialog( StarBASIC
+ 
+ 	// Import the DialogModel
+ 	Reference< XInputStream > xInput( xISP->createInputStream() );
+-    xmlscript::importDialogModel( xInput, xDialogModel, xContext );
+ 
+ 	// i83963 Force decoration
+ 	uno::Reference< beans::XPropertySet > xDlgModPropSet( xDialogModel, uno::UNO_QUERY );
+@@ -889,39 +601,38 @@ void RTL_Impl_CreateUnoDialog( StarBASIC
+ 			aDlgLibAny = implFindDialogLibForDialog( aAnyISP, pSearchBasic2 );
+ 	}
+ 
+-	// Get resource from dialog library and set at dialog
+-	Reference< XStringResourceManager > xStringResourceManager
+-		= getStringResourceFromDialogLibrary( aDlgLibAny );
+-	if( xStringResourceManager.is() )
+-	{
+-		Reference< beans::XPropertySet > xDlgPSet( xDialogModel, UNO_QUERY );
+-		Any aStringResourceManagerAny;
+-		aStringResourceManagerAny <<= xStringResourceManager;
+-		xDlgPSet->setPropertyValue( aResourceResolverPropName, aStringResourceManagerAny );
+-	}
+ 
+-    // Add dialog model to dispose vector
+-	Reference< XComponent > xDlgComponent( xDialogModel, UNO_QUERY );
+-    pINST->getComponentVector().push_back( xDlgComponent );
++    OSL_TRACE("About to try get a hold of ThisComponent");
++    Reference< frame::XModel > xModel = getModelFromBasic( pStartedBasic ) ;            
++	Reference< XScriptListener > xScriptListener = new BasicScriptListener_Impl( pBasic, xModel );
+ 
++	Sequence< Any > aArgs( 4 );
++	aArgs[ 0 ] <<= xModel;
++	aArgs[ 1 ] <<= xInput;
++	aArgs[ 2 ] = aDlgLibAny;
++	aArgs[ 3 ] <<= xScriptListener;
+ 	// Create a "living" Dialog
+-	Reference< XControl > xDlg( xMSF->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialog" ) ) ), UNO_QUERY );
+-	Reference< XControlModel > xDlgMod( xDialogModel, UNO_QUERY );
+-	xDlg->setModel( xDlgMod );
+-	Reference< XWindow > xW( xDlg, UNO_QUERY );
+-	xW->setVisible( sal_False );
+-	Reference< XToolkit > xToolkit( xMSF->createInstance( 
+-	OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.ExtToolkit" ) ) ), UNO_QUERY );
+-	xDlg->createPeer( xToolkit, NULL );
++        Reference< XControl > xCntrl;
++        try
++        {
++	    Reference< XDialogProvider >  xDlgProv( xMSF->createInstanceWithArguments( OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.scripting.DialogProvider" ) ), aArgs ), UNO_QUERY );
++            xCntrl.set( xDlgProv->createDialog( rtl::OUString() ), UNO_QUERY_THROW );
++           // Add dialog model to dispose vector
++           Reference< XComponent > xDlgComponent( xCntrl->getModel(), UNO_QUERY );
++           pINST->getComponentVector().push_back( xDlgComponent );
+     // need ThisCompoent from calling script
+-
+-    OSL_TRACE("About to try get a hold of ThisComponent");
+-    Reference< frame::XModel > xModel = getModelFromBasic( pStartedBasic ) ;            
+-	attachDialogEvents( pStartedBasic, xModel, xDlg );
++        }
++        // preserve existing bad behaviour, it's possible... but probably
++        // illegal to open 2 dialogs ( they ARE modal ) when this happens, sometimes 
++        // create dialog fails.  So, in this case let's not throw, just leave basic 
++        // detect the unset object.
++        catch( uno::Exception& )
++        {
++        }
+     
+ 	// Return dialog
+ 	Any aRetVal;
+-	aRetVal <<= xDlg;
++	aRetVal <<= xCntrl;
+ 	SbxVariableRef refVar = rPar.Get(0);
+ 	unoToSbxValue( (SbxVariable*)refVar, aRetVal );
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-filter.diff
@@ -0,0 +1,5 @@
+--- filter/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ filter/prj/tests.lst	2007-09-07 14:32:14.000000000 +0200
+@@ -0,0 +1,2 @@
++fl   filter\qa\complex\filter\detection\typeDetection   nmake - all fl_qa_complex_filter_detection_typeDetection NULL
++fl   filter\qa\complex\filter\misc                      nmake - all fl_qa_complex_filter_misc NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix-enable-reportdesign-check.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix-enable-reportdesign-check.diff
@@ -0,0 +1,11 @@
+--- config_office/configure.in.old	2008-03-20 21:10:37.000000000 +0100
++++ config_office/configure.in	2008-03-27 17:40:30.000000000 +0100
+@@ -5380,7 +5380,7 @@ else
+ fi
+ 
+ AC_MSG_CHECKING([whether to build the Report Builder extension])
+-if test -z "$enable_reportdesign" -a "$enable_reportdesign" != "no" && test "$WITH_JAVA" != "no"; then
++if test -z "$enable_reportdesign" -o "$enable_reportdesign" != "no" && test "$WITH_JAVA" != "no"; then
+   AC_MSG_RESULT([yes])
+   ENABLE_REPORTDESIGN=YES
+   AC_MSG_CHECKING([which jfreereport libs to use])
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-badscript.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-badscript.diff
@@ -0,0 +1,34 @@
+Index: source/dialog/selector.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/dialog/selector.cxx,v
+retrieving revision 1.17
+diff -u -r1.17 selector.cxx
+--- svx/source/dialog/selector.cxx	8 Sep 2005 22:01:09 -0000	1.17
++++ svx/source/dialog/selector.cxx	31 Jul 2006 10:03:28 -0000
+@@ -586,6 +586,8 @@
+ 							node is a first level child of the Root and is NOT
+ 							either the current document, user or share */
+ 							Reference< browse::XBrowseNode >& theChild = children[n];
++							if (!theChild.is())
++								continue;
+                             ::rtl::OUString uiName = theChild->getName();
+ 							BOOL bDisplay = TRUE;
+ 
+@@ -905,6 +907,8 @@
+ 
+ 					for ( ULONG n = 0; n < children.getLength(); n++ )
+ 					{
++         				if (!children[n].is())
++							continue;
+ 						if (children[n]->getType() == browse::BrowseNodeTypes::SCRIPT)
+ 						{
+ 							OUString uri;
+@@ -1061,6 +1065,8 @@
+ 							node is a first level child of the Root and is NOT
+ 							either the current document, user or share */
+ 							Reference< browse::XBrowseNode >& theChild = children[n];
++                            if (!theChild.is())
++                                continue;
+                             ::rtl::OUString uiName = theChild->getName();
+ 							BOOL bDisplay = TRUE;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo72129.vcl.fontglyphindex.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo72129.vcl.fontglyphindex.diff
@@ -0,0 +1,100 @@
+diff -u -r1.145 gcach_ftyp.cxx
+--- vcl/source/glyphs/gcach_ftyp.cxx	31 Jul 2007 16:09:17 -0000	1.145
++++ vcl/source/glyphs/gcach_ftyp.cxx	22 Aug 2007 10:35:26 -0000
+@@ -97,6 +97,9 @@
+     #include <io.h>
+     #define strncasecmp strnicmp
+ #endif
++#if defined(UNX) && !defined(MACOSX)
++#include <psprint/fontmanager.hxx>
++#endif
+ 
+ #include <vcl/svapp.hxx>
+ #include <vcl/settings.hxx>
+@@ -1187,6 +1187,11 @@
+             // check if symbol aliasing helps
+             if( (aChar <= 0x00FF) && mpFontInfo->IsSymbolFont() )
+                 nGlyphIndex = FT_Get_Char_Index( maFaceFT, aChar | 0xF000 );
++#if defined(UNX) && !defined(MACOSX)
++            // Finally try the postscript name table
++            if (!nGlyphIndex)
++                nGlyphIndex = psp::PrintFontManager::get().FreeTypeCharIndex( maFaceFT, aChar );
++#endif
+         }
+         mpFontInfo->CacheGlyphIndex( aChar, nGlyphIndex );
+     }
+--- psprint/source/fontmanager/makefile.mk	2007-10-23 15:58:05.000000000 +0200
++++ psprint/source/fontmanager/makefile.mk	2007-10-23 16:00:36.000000000 +0200
+@@ -49,6 +49,12 @@
+ CDEFS += -DENABLE_FONTCONFIG
+ .ENDIF
+ 
++.IF "$(SYSTEM_FREETYPE)" == "YES"
++CFLAGS+= $(FREETYPE_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc
++.ENDIF
++
+ # --- Files --------------------------------------------------------
+ 
+ .IF "$(GUIBASE)"=="aqua"
+--- psprint/inc/psprint/fontmanager.hxx	20 Jun 2007 10:07:18 -0000	1.33
++++ psprint/inc/psprint/fontmanager.hxx	22 Aug 2007 10:26:46 -0000
+@@ -767,6 +767,8 @@
+      */
+     bool matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale );
+     FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize);
++
++    int FreeTypeCharIndex( void *pFace, sal_uInt32 aChar );
+ 
+     String Substitute(const std::vector<String> &rNames, std::vector<sal_Unicode> &rGlyphs, 
+         const ByteString &rLangAttrib, italic::type eItalic, weight::type eWeight, 
+--- psprint/source/fontmanager/fontconfig.cxx	24 Oct 2006 15:06:22 -0000	1.24
++++ psprint/source/fontmanager/fontconfig.cxx	22 Aug 2007 10:26:50 -0000
+@@ -38,6 +38,7 @@
+ 
+ #ifdef ENABLE_FONTCONFIG
+ #include <fontconfig/fontconfig.h>
++#include <fontconfig/fcfreetype.h>
+ // be compatible with fontconfig 2.2.0 release
+ #ifndef FC_WEIGHT_BOOK
+ #define FC_WEIGHT_BOOK 75
+@@ -104,6 +105,7 @@
+     FcBool			(*m_pFcConfigSubstitute)(FcConfig*,FcPattern*,FcMatchKind);
+     FcBool			(*m_pFcPatternAddInteger)(FcPattern*,const char*,int);
+     FcBool			(*m_pFcPatternAddString)(FcPattern*,const char*,const FcChar8*);
++    FT_UInt         (*m_pFcFreeTypeCharIndex)(FT_Face,FcChar32);
+ 
+     oslGenericFunction loadSymbol( const char* );
+ 
+@@ -228,6 +228,8 @@
+     { return m_pFcPatternAddBool( pPattern, pObject, nValue ); }
+     FcBool FcPatternAddCharSet(FcPattern* pPattern,const char* pObject,const FcCharSet*pCharSet)
+     { return m_pFcPatternAddCharSet(pPattern,pObject,pCharSet); }
++    FT_UInt FcFreeTypeCharIndex( FT_Face face, FcChar32 ucs4 )
++    { return m_pFcFreeTypeCharIndex ? m_pFcFreeTypeCharIndex( face, ucs4 ) : 0; }
+ 
+ public: // TODO: cleanup
+     std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash > m_aFontconfigNameToLocalized;
+@@ -252,6 +256,8 @@
+         loadSymbol( "FcPatternAddInteger" );
+     m_pFcPatternAddString = (FcBool(*)(FcPattern*,const char*,const FcChar8*))
+         loadSymbol( "FcPatternAddString" );
++    m_pFcFreeTypeCharIndex = (FT_UInt(*)(FT_Face,FcChar32))
++        loadSymbol( "FcFreeTypeCharIndex" );
+ 
+     if( ! (
+             m_pFcInit						&&
+@@ -563,6 +569,12 @@
+     FontCfgWrapper::release();
+ }
+ 
++int PrintFontManager::FreeTypeCharIndex( void *pFace, sal_uInt32 aChar )
++{
++    FontCfgWrapper& rWrapper = FontCfgWrapper::get();
++    return rWrapper.isValid() ? rWrapper.FcFreeTypeCharIndex( (FT_Face)pFace, aChar ) : 0;
++}
++
+ bool PrintFontManager::matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale )
+ {
+ #ifdef ENABLE_FONTCONFIG
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-custom-show-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-custom-show-fix.diff
@@ -0,0 +1,13 @@
+--- sd/source/ui/slideshow/slideshowimpl.cxx	7 Dec 2007 11:59:34 -0000	1.50
++++ sd/source/ui/slideshow/slideshowimpl.cxx	30 May 2008 09:20:47 -0000
+@@ -2451,9 +2455,7 @@ void SlideshowImpl::createSlideList( boo
+ 			for( pCustomSlide = pCustomShow->First(),nSlideIndex=0; pCustomSlide; pCustomSlide = pCustomShow->Next(), nSlideIndex++ )
+ 			{
+ 				const USHORT nSdSlide = ( ( (SdPage*) pCustomSlide )->GetPageNum() - 1 ) / 2;
+-
+-				if( !( mpDoc->GetSdPage( nSdSlide, PK_STANDARD ) )->IsExcluded())
+-					mpSlideController->insertSlideNumber( nSdSlide );
++                mpSlideController->insertSlideNumber( nSdSlide );
+ 			}
+ 		}
+ 	}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/macosx-lpsolve-makefile.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/macosx-lpsolve-makefile.diff
@@ -0,0 +1,14 @@
+--- lpsolve/makefile.mk	Sun Nov 26 12:03:35 2006
++++ lpsolve/makefile.mk	Sun Nov 26 12:03:58 2006
+@@ -56,7 +56,11 @@
+ .IF "$(GUI)"=="WNT"
+ BUILD_ACTION=cmd /c cvc6.bat
+ .ELSE
++.IF "$(OS)"=="MACOSX"
++BUILD_ACTION=sh ccc.osx
++.ELSE
+ BUILD_ACTION=sh ccc
++.ENDIF
+ .ENDIF
+ 
+ # --- Targets ------------------------------------------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-transitions-slideshow.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-transitions-slideshow.diff
@@ -0,0 +1,207 @@
+diff -rup slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx
+--- slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionImpl.cxx	2007-12-17 17:04:21.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	2007-12-18 12:25:11.000000000 +0100
+@@ -45,6 +45,8 @@ void OGLTransitionImpl::clear()
+     for(unsigned int i(0); i < maSceneObjects.size(); ++i)
+         delete maSceneObjects[i];
+     maSceneObjects.clear();
++
++    bReflectSlides = false;
+ }
+ 
+ OGLTransitionImpl::~OGLTransitionImpl()
+@@ -66,6 +68,30 @@ void OGLTransitionImpl::finish()
+     }
+ }
+ 
++static void blendSlide( double depth )
++{
++    double showHeight = -1 + depth*2;
++    GLfloat reflectionColor[] = {0, 0, 0, 0.25};
++
++    glBegin( GL_QUADS );
++    glColor4fv( reflectionColor );
++    glVertex3f( -1.01, -1.01, 0.001 );
++    glColor4f( 0, 0, 0, 1 );
++    glVertex3f(-1.01,  showHeight, 0.001 );
++    glVertex3f( 1.01,  showHeight, 0.001 );
++    glColor4fv( reflectionColor );
++    glVertex3f( 1.01, -1.01, 0.001 );
++    glEnd();
++
++    glBegin( GL_QUADS );
++    glColor4f( 0, 0, 0, 1 );
++    glVertex3f( -1.01, showHeight, 0.001 );
++    glVertex3f( -1.01,  1.01, 0.001 );
++    glVertex3f(  1.01,  1.01, 0.001 );
++    glVertex3f(  1.01, showHeight, 0.001 );
++    glEnd();
++}
++
+ void OGLTransitionImpl::display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex,
+                                  double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
+ {
+@@ -75,30 +101,79 @@ void OGLTransitionImpl::display( double 
+     SlideHeightScale = SlideHeight/DispHeight;
+ 
+     glPushMatrix();
+-    glEnable(GL_TEXTURE_2D);
+-    //TODO change to foreach
++    if ( bReflectSlides ) {
++        double reflectionDepth = 0.3;
++        double surfaceLevel = -0.04;
++
++        /* reflected slides */
++        glPushMatrix();
++
++        glScaled( 1, -1, 1 );
++        glTranslated( 0, 2 - surfaceLevel, 0 );
++
++        glCullFace(GL_FRONT);
++        displaySlides( nTime, glLeavingSlideTex, glEnteringSlideTex, SlideWidthScale, SlideHeightScale );
++        glCullFace(GL_BACK);
++
++        glEnable(GL_BLEND);
++        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
++        glDisable(GL_LIGHTING);
++
++        /* leaving slide reflection blending */
++        glPushMatrix();
++        maLeavingSlidePrimitives[0].applyOperations( nTime, SlideWidthScale, SlideHeightScale );
++        blendSlide( reflectionDepth );
++        glPopMatrix();
++
++        /* entering slide reflection blending */
++        glPushMatrix();
++        maEnteringSlidePrimitives[0].applyOperations( nTime, SlideWidthScale, SlideHeightScale );
++        blendSlide( reflectionDepth );
++        glPopMatrix();
++
++        glDisable(GL_BLEND);
++        glEnable(GL_LIGHTING);
++
++        glPopMatrix();
++    }
++
++    displaySlides( nTime, glLeavingSlideTex, glEnteringSlideTex, SlideWidthScale, SlideHeightScale );
++    displayScene( nTime, SlideWidth, SlideHeight, DispWidth, DispHeight );
++    glPopMatrix();
++}
++
++void OGLTransitionImpl::applyOverallOperations( double nTime, double SlideWidthScale, double SlideHeightScale )
++{
+     for(unsigned int i(0); i < OverallOperations.size(); ++i)
+         OverallOperations[i]->interpolate(nTime,SlideWidthScale,SlideHeightScale);
++}
++
++void OGLTransitionImpl::displaySlides( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex,
++                                       double SlideWidthScale, double SlideHeightScale )
++{
++    applyOverallOperations( nTime, SlideWidthScale, SlideHeightScale );
++    glEnable(GL_TEXTURE_2D);
++    //TODO change to foreach
+     glBindTexture(GL_TEXTURE_2D, glLeavingSlideTex);
+     for(unsigned int i(0); i < maLeavingSlidePrimitives.size(); ++i)
+         maLeavingSlidePrimitives[i].display(nTime,SlideWidthScale,SlideHeightScale);
+     glBindTexture(GL_TEXTURE_2D, glEnteringSlideTex);
+     for(unsigned int i(0); i < maEnteringSlidePrimitives.size(); ++i)
+         maEnteringSlidePrimitives[i].display(nTime,SlideWidthScale,SlideHeightScale);
++}
+ 
++void OGLTransitionImpl::displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
++{
++    glEnable(GL_TEXTURE_2D);
+     for(unsigned int i(0); i < maSceneObjects.size(); ++i)
+         maSceneObjects[i]->display(nTime, SlideWidth, SlideHeight, DispWidth, DispHeight);
+-    
+-
+-    glPopMatrix();
+ }
+ 
+ void Primitive::display(double nTime, double WidthScale, double HeightScale)
+ {
+     glPushMatrix();
+-    for(unsigned int i(0); i < Operations.size(); ++i)
+-        Operations[i]->interpolate( nTime ,WidthScale,HeightScale);
+-    glScaled(WidthScale,HeightScale,1);
++
++    applyOperations( nTime, WidthScale, HeightScale );
+ 
+     glEnableClientState( GL_VERTEX_ARRAY );
+     if(!Normals.empty())
+@@ -113,6 +188,13 @@ void Primitive::display(double nTime, do
+     glPopMatrix();
+ }
+ 
++void Primitive::applyOperations(double nTime, double WidthScale, double HeightScale)
++{
++    for(unsigned int i(0); i < Operations.size(); ++i)
++        Operations[i]->interpolate( nTime ,WidthScale,HeightScale);
++    glScaled(WidthScale,HeightScale,1);
++}
++
+ Primitive::~Primitive()
+ {
+     for(unsigned int i( 0 ); i < Operations.size(); ++i)
+@@ -224,6 +307,8 @@ void OGLTransitionImpl::makeTurnAround()
+ {
+     clear();
+     Primitive Slide;
++
++    bReflectSlides = true;
+     
+     Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
+     Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
+@@ -322,10 +407,12 @@ void OGLTransitionImpl::makeRochade()
+     clear();
+     Primitive Slide;
+     
++    bReflectSlides = true;
++
+     double w, h;
+ 
+     w = 2.2;
+-    h = 5;
++    h = 10;
+ 
+     Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
+     Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
+diff -rup slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionImpl.hxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx
+--- slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionImpl.hxx	2007-12-17 17:04:21.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	2007-12-18 11:05:40.000000000 +0100
+@@ -95,6 +95,15 @@ private:
+     /** All the operations that should be applied to both leaving and entering slide primitives. These operations will be called in the order they were pushed back in. In OpenGL this effectively uses the operations in the opposite order they were pushed back.
+ 	*/
+ 	std::vector<Operation*> OverallOperations;
++
++    /** Whether to reflect slides, the reflection happens on flat surface beneath the slides.
++     ** Now it only works with slides which keep their rectangular shape together.
++     */
++    bool bReflectSlides;
++
++    void displaySlides( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale );
++    void displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight);
++    void applyOverallOperations( double nTime, double SlideWidthScale, double SlideHeightScale );
+ };
+ 
+ class SceneObject
+@@ -138,6 +147,7 @@ public:
+     Primitive(const Primitive& rvalue);
+ 	~Primitive();
+ 
++    void applyOperations(double nTime, double SlideWidthScale, double SlideHeightScale);
+     void display(double nTime, double SlideWidthScale, double SlideHeightScale);
+     const Primitive& operator=(const Primitive& rvalue);
+     
+diff --git a/slideshow/source/engine/OGLTrans/makefile.mk b/slideshow/source/engine/OGLTrans/makefile.mk
+index 44de526..73f41cd 100644
+--- slideshow/source/engine/OGLTrans/makefile.mk
++++ slideshow/source/engine/OGLTrans/makefile.mk
+@@ -63,6 +63,7 @@ SLOFILES = \
+         $(SLO)$/OGLTrans_TransitionImpl.obj \
+         $(SLO)$/OGLTrans_TransitionerImpl.obj
+         
++DLLPRE=
+ SHL1TARGET=$(TARGET).uno
+ 
+ SHL1STDLIBS= $(SALLIB) $(VCLLIB) $(CPPULIB) $(CPPUHELPERLIB) $(COMPHELPERLIB) $(CANVASTOOLSLIB) -lGL -lGLU -lX11
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-better-fallback.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-better-fallback.diff
@@ -0,0 +1,17 @@
+--- vcl/unx/source/plugadapt/salplug.cxx	2005-06-21 09:49:05.563280678 +0200
++++ vcl/unx/source/plugadapt/salplug.cxx	2005-06-21 10:19:57.119254553 +0200
+@@ -464,9 +464,11 @@ SalInstance *CreateSalInstance()
+     if( ! pInst && pUsePlugin && *pUsePlugin )
+         pInst = tryInstance( OUString::createFromAscii( pUsePlugin ) );
+ 
+-    // fallback to gen
+-    if( ! pInst )
+-        pInst = tryInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "gen" ) ) );
++    // fallback, try everything
++    const char* pPlugin[] = { "gtk", "kde", "gen", 0 };
++
++    for ( int i = 0; !pInst && pPlugin[ i ]; ++i )
++        pInst = tryInstance( OUString::createFromAscii( pPlugin[ i ] ) );
+ 
+     if( ! pInst )
+     {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-extra-cell-margins.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-extra-cell-margins.diff
@@ -0,0 +1,19 @@
+Index: sc/source/core/data/docpool.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/docpool.cxx,v
+retrieving revision 1.24
+diff -u -p -r1.24 docpool.cxx
+--- sc/source/core/data/docpool.cxx	10 May 2007 16:43:34 -0000	1.24
++++ sc/source/core/data/docpool.cxx	28 Feb 2008 15:28:44 -0000
+@@ -279,7 +279,10 @@ ScDocumentPool::ScDocumentPool( SfxItemP
+     ppPoolDefaults[ ATTR_SHRINKTOFIT     - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_SHRINKTOFIT );
+     ppPoolDefaults[ ATTR_BORDER_TLBR     - ATTR_STARTINDEX ] = new SvxLineItem( ATTR_BORDER_TLBR );
+     ppPoolDefaults[ ATTR_BORDER_BLTR     - ATTR_STARTINDEX ] = new SvxLineItem( ATTR_BORDER_BLTR );
+-    ppPoolDefaults[ ATTR_MARGIN          - ATTR_STARTINDEX ] = new SvxMarginItem( ATTR_MARGIN );
++    SvxMarginItem* pItem = new SvxMarginItem( ATTR_MARGIN );
++    pItem->SetTopMargin( 27 );
++    pItem->SetBottomMargin( 27 );
++    ppPoolDefaults[ ATTR_MARGIN          - ATTR_STARTINDEX ] = pItem;
+ 	ppPoolDefaults[	ATTR_MERGE			 - ATTR_STARTINDEX ] = new ScMergeAttr;
+ 	ppPoolDefaults[	ATTR_MERGE_FLAG		 - ATTR_STARTINDEX ] = new ScMergeFlagAttr;
+ 	ppPoolDefaults[	ATTR_VALUE_FORMAT	 - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_VALUE_FORMAT, 0 );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-skip-pivot-charts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-skip-pivot-charts.diff
@@ -0,0 +1,110 @@
+Index: sc/source/filter/excel/xichart.cxx
+===================================================================
+RCS file: /cvs/sc/sc/sc/source/filter/excel/xichart.cxx,v
+retrieving revision 1.16
+diff -u -r1.16 xichart.cxx
+--- sc/source/filter/excel/xichart.cxx	22 Oct 2007 16:36:47 -0000	1.16
++++ sc/source/filter/excel/xichart.cxx	26 Jan 2008 00:02:11 -0000
+@@ -3309,7 +3309,8 @@
+ 
+ XclImpChart::XclImpChart( const XclImpRoot& rRoot, bool bOwnTab ) :
+     XclImpRoot( rRoot ),
+-    mbOwnTab( bOwnTab )
++    mbOwnTab( bOwnTab ),
++    mbIsPivotChart( false )
+ {
+ }
+ 
+@@ -3356,7 +3357,10 @@
+ 
+             case EXC_ID_CHCHART:        ReadChChart( rStrm );                   break;
+             case EXC_ID_OBJ:            GetTracer().TraceChartEmbeddedObj();    break;
+-            case EXC_ID8_CHPIVOTREF:    GetTracer().TracePivotChartExists();    break;
++            case EXC_ID8_CHPIVOTREF:    
++                GetTracer().TracePivotChartExists();
++                mbIsPivotChart = true;
++            break;
+         }
+     }
+ }
+@@ -3380,6 +3384,11 @@
+         mxChartData->Convert( xChartDoc, rProgress );
+ }
+ 
++bool XclImpChart::IsPivotChart() const
++{
++    return mbIsPivotChart;
++}
++
+ void XclImpChart::ReadChChart( XclImpStream& rStrm )
+ {
+     mxChartData.reset( new XclImpChChart( GetRoot() ) );
+Index: sc/source/filter/excel/xiescher.cxx
+===================================================================
+RCS file: /cvs/sc/sc/sc/source/filter/excel/xiescher.cxx,v
+retrieving revision 1.54
+diff -u -r1.54 xiescher.cxx
+--- sc/source/filter/excel/xiescher.cxx	6 Jul 2007 12:37:20 -0000	1.54
++++ sc/source/filter/excel/xiescher.cxx	26 Jan 2008 00:02:12 -0000
+@@ -1400,6 +1400,11 @@
+     }
+ }
+ 
++bool XclImpChartObj::IsPivotChart() const
++{
++    return mxChart->IsPivotChart();
++}
++
+ SdrObject* XclImpChartObj::CreateSdrObject( const Rectangle& rAnchorRect, ScfProgressBar& rProgress ) const
+ {
+     SdrObjectPtr xSdrObj;
+@@ -2092,7 +2097,8 @@
+     DBG_ASSERT_BIFF( GetBiff() >= EXC_BIFF5 );
+     XclImpChartObjRef xChartObj( new XclImpChartObj( GetRoot(), true ) );
+     xChartObj->ReadChartSubStream( rStrm );
+-    maTabCharts.push_back( xChartObj );
++    if ( !xChartObj->IsPivotChart() )
++        maTabCharts.push_back( xChartObj );
+ }
+ 
+ // *** Drawing objects *** ----------------------------------------------------
+Index: sc/source/filter/inc/xichart.hxx
+===================================================================
+RCS file: /cvs/sc/sc/sc/source/filter/inc/xichart.hxx,v
+retrieving revision 1.9
+diff -u -r1.9 xichart.hxx
+--- sc/source/filter/inc/xichart.hxx	3 Jul 2007 13:25:45 -0000	1.9
++++ sc/source/filter/inc/xichart.hxx	26 Jan 2008 00:02:12 -0000
+@@ -1390,6 +1390,8 @@
+     /** Creates the chart object in the passed component. */
+     void                Convert( XModelRef xModel, ScfProgressBar& rProgress ) const;
+ 
++    bool                IsPivotChart() const;
++
+ private:
+     /** Reads the CHCHART group (entire chart data). */
+     void                ReadChChart( XclImpStream& rStrm );
+@@ -1397,6 +1399,7 @@
+ private:
+     XclImpChChartRef    mxChartData;        /// The chart data (CHCHART group).
+     bool                mbOwnTab;           /// true = own sheet; false = embedded object.
++    bool                mbIsPivotChart;
+ };
+ 
+ // ============================================================================
+Index: sc/source/filter/inc/xiescher.hxx
+===================================================================
+RCS file: /cvs/sc/sc/sc/source/filter/inc/xiescher.hxx,v
+retrieving revision 1.27
+diff -u -r1.27 xiescher.hxx
+--- sc/source/filter/inc/xiescher.hxx	6 Jul 2007 12:38:40 -0000	1.27
++++ sc/source/filter/inc/xiescher.hxx	26 Jan 2008 00:02:12 -0000
+@@ -371,6 +371,8 @@
+         @descr  The passed stream must be located in the BOF record of the chart substream. */
+     void                ReadChartSubStream( XclImpStream& rStrm );
+ 
++    bool                IsPivotChart() const;
++
+     /** Creates and returns a new SdrObject that contains the chart. Caller takes ownership! */
+     SdrObject*          CreateSdrObject( const Rectangle& rAnchorRect, ScfProgressBar& rProgress ) const;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-auto-text-indent-zh.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-auto-text-indent-zh.diff
@@ -0,0 +1,200 @@
+--- sw/inc/doc.hxx.orig	2007-09-05 21:59:02.000000000 +0800
++++ sw/inc/doc.hxx	2007-09-11 14:55:09.000000000 +0800
+@@ -616,6 +616,7 @@ class SwDoc :
+     bool mbUnixForceZeroExtLeading                  : 1;   // FME 2006-10-09 #i60945#
+     bool mbOldPrinterMetrics                        : 1;   // FME 2007-05-14 #147385#
+     bool mbProtectForm                              : 1;
++	bool mbZHAutoFirstIndent						: 1;	// PFLIN 2007-09-03
+     //
+     // COMPATIBILITY FLAGS END
+     //
+--- sw/inc/IDocumentSettingAccess.hxx.orig	2007-09-05 21:58:59.000000000 +0800
++++ sw/inc/IDocumentSettingAccess.hxx	2007-09-11 14:55:57.000000000 +0800
+@@ -88,6 +88,7 @@ namespace com { namespace sun { namespac
+          UNIX_FORCE_ZERO_EXT_LEADING,
+          USE_OLD_PRINTER_METRICS,
+ 	 PROTECT_FORM,
++	 	ZH_AUTO_FIRST_INDENT,
+          // COMPATIBILITY FLAGS END
+ 
+          BROWSE_MODE,
+--- sw/source/ui/uno/SwXDocumentSettings.cxx.orig	2007-09-05 21:58:59.000000000 +0800
++++ sw/source/ui/uno/SwXDocumentSettings.cxx	2007-09-11 15:01:25.000000000 +0800
+@@ -160,7 +160,8 @@ enum SwDocumentSettingsPropertyHandles
+     HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES,
+     HANDLE_UNIX_FORCE_ZERO_EXT_LEADING,
+     HANDLE_USE_OLD_PRINTER_METRICS,
+-    HANDLE_PROTECT_FORM
++    HANDLE_PROTECT_FORM,
++	HANDLE_ZH_AUTO_FIRST_INDENT
+ };
+ 
+ MasterPropertySetInfo * lcl_createSettingsInfo()
+@@ -211,6 +212,7 @@ MasterPropertySetInfo * lcl_createSettin
+         { RTL_CONSTASCII_STRINGPARAM("UnxForceZeroExtLeading"), HANDLE_UNIX_FORCE_ZERO_EXT_LEADING, CPPUTYPE_BOOLEAN, 0, 0},
+         { RTL_CONSTASCII_STRINGPARAM("UseOldPrinterMetrics"), HANDLE_USE_OLD_PRINTER_METRICS, CPPUTYPE_BOOLEAN, 0, 0},
+         { RTL_CONSTASCII_STRINGPARAM("ProtectForm"), HANDLE_PROTECT_FORM, CPPUTYPE_BOOLEAN, 0, 0},
++        { RTL_CONSTASCII_STRINGPARAM("ZHAutoFirstIndent"), HANDLE_ZH_AUTO_FIRST_INDENT, CPPUTYPE_BOOLEAN, 0, 0},
+ 
+ /*
+  * As OS said, we don't have a view when we need to set this, so I have to
+@@ -691,6 +693,12 @@ void SwXDocumentSettings::_setSingleValu
+             mpDoc->set(IDocumentSettingAccess::PROTECT_FORM, bTmp);
+         }
+         break;
++		case HANDLE_ZH_AUTO_FIRST_INDENT:
++        {
++            sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
++            mpDoc->set(IDocumentSettingAccess::ZH_AUTO_FIRST_INDENT, bTmp);
++        }
++		break;
+ 
+         default:
+ 			throw UnknownPropertyException();
+@@ -991,6 +999,12 @@ void SwXDocumentSettings::_getSingleValu
+             rValue.setValue( &bTmp, ::getBooleanCppuType() );
+         }
+         break;
++        case HANDLE_ZH_AUTO_FIRST_INDENT:
++        {
++            sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ZH_AUTO_FIRST_INDENT);
++            rValue.setValue( &bTmp, ::getBooleanCppuType() );
++        }
++        break;
+ 
+         default:
+ 			throw UnknownPropertyException();
+--- sw/source/core/doc/doc.cxx.orig	2007-09-05 21:58:59.000000000 +0800
++++ sw/source/core/doc/doc.cxx	2007-09-11 14:56:57.000000000 +0800
+@@ -299,6 +299,7 @@ bool SwDoc::get(/*[in]*/ DocumentSetting
+         case UNIX_FORCE_ZERO_EXT_LEADING: return mbUnixForceZeroExtLeading;
+         case USE_OLD_PRINTER_METRICS: return mbOldPrinterMetrics;
+ 	case PROTECT_FORM: return mbProtectForm;
++		case ZH_AUTO_FIRST_INDENT: return mbZHAutoFirstIndent;			   
+          // COMPATIBILITY FLAGS END
+ 
+         case BROWSE_MODE: return mbBrowseMode;
+@@ -414,6 +415,9 @@ void SwDoc::set(/*[in]*/ DocumentSetting
+ 	case PROTECT_FORM:
+ 	    mbProtectForm = value;
+ 	    break;
++		case ZH_AUTO_FIRST_INDENT:
++		mbZHAutoFirstIndent = value;
++		break;
+ 
+          // COMPATIBILITY FLAGS END
+ 
+--- sw/source/core/doc/docnew.cxx.orig	2007-09-05 21:59:02.000000000 +0800
++++ sw/source/core/doc/docnew.cxx	2007-09-11 14:57:12.000000000 +0800
+@@ -417,6 +417,7 @@ SwDoc::SwDoc() :
+     mbUnixForceZeroExtLeading               = false;        // hidden
+     mbOldPrinterMetrics                     = false;        // hidden
+     mbProtectForm                           = false;        // hidden
++	mbZHAutoFirstIndent						= true;			// hidden
+ 
+     //
+     // COMPATIBILITY FLAGS END
+--- sw/source/core/text/itrcrsr.cxx.orig	2007-06-27 21:19:49.000000000 +0800
++++ sw/source/core/text/itrcrsr.cxx	2007-09-11 14:59:33.000000000 +0800
+@@ -85,6 +85,10 @@
+ #include <pormulti.hxx> 	// SwMultiPortion
+ #endif
+ 
++#ifndef __SVTOOLS_CJKOPTIONS_HXX
++#include <svtools/cjkoptions.hxx>	//SvtCJKOptions
++#endif
++
+ // Nicht reentrant !!!
+ // wird in GetCharRect gesetzt und im UnitUp/Down ausgewertet.
+ sal_Bool SwTxtCursor::bRightMargin = sal_False;
+@@ -254,49 +258,56 @@ void SwTxtMargin::CtorInit( SwTxtFrm *pF
+ 			rSpace.IsAutoFirst() )
+ 		{
+ 			nFirstLineOfs = GetFnt()->GetSize( GetFnt()->GetActual() ).Height();
+-			const SvxLineSpacingItem *pSpace = aLineInf.GetLineSpacing();
+-			if( pSpace )
++			if ( pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::ZH_AUTO_FIRST_INDENT) )
++			{
++					nFirstLineOfs *= 2;
++			}
++			else
+ 			{
+-				switch( pSpace->GetLineSpaceRule() )
++				const SvxLineSpacingItem *pSpace = aLineInf.GetLineSpacing();
++				if( pSpace )
+ 				{
+-					case SVX_LINE_SPACE_AUTO:
+-					break;
+-					case SVX_LINE_SPACE_MIN:
++					switch( pSpace->GetLineSpaceRule() )
+ 					{
+-						if( nFirstLineOfs < KSHORT( pSpace->GetLineHeight() ) )
+-							nFirstLineOfs = pSpace->GetLineHeight();
++						case SVX_LINE_SPACE_AUTO:
+ 						break;
+-					}
+-					case SVX_LINE_SPACE_FIX:
+-						nFirstLineOfs = pSpace->GetLineHeight();
+-					break;
+-					default: ASSERT( sal_False, ": unknown LineSpaceRule" );
+-				}
+-				switch( pSpace->GetInterLineSpaceRule() )
+-				{
+-					case SVX_INTER_LINE_SPACE_OFF:
+-					break;
+-					case SVX_INTER_LINE_SPACE_PROP:
+-					{
+-						long nTmp = pSpace->GetPropLineSpace();
+-						// 50% ist das Minimum, bei 0% schalten wir auf
+-						// den Defaultwert 100% um ...
+-						if( nTmp < 50 )
+-							nTmp = nTmp ? 50 : 100;
+-
+-						nTmp *= nFirstLineOfs;
+-						nTmp /= 100;
+-						if( !nTmp )
+-							++nTmp;
+-						nFirstLineOfs = (KSHORT)nTmp;
++						case SVX_LINE_SPACE_MIN:
++						{
++							if( nFirstLineOfs < KSHORT( pSpace->GetLineHeight() ) )
++								nFirstLineOfs = pSpace->GetLineHeight();
++							break;
++						}
++						case SVX_LINE_SPACE_FIX:
++							nFirstLineOfs = pSpace->GetLineHeight();
+ 						break;
++						default: ASSERT( sal_False, ": unknown LineSpaceRule" );
+ 					}
+-					case SVX_INTER_LINE_SPACE_FIX:
++					switch( pSpace->GetInterLineSpaceRule() )
+ 					{
+-						nFirstLineOfs += pSpace->GetInterLineSpace();
++						case SVX_INTER_LINE_SPACE_OFF:
+ 						break;
++						case SVX_INTER_LINE_SPACE_PROP:
++						{
++							long nTmp = pSpace->GetPropLineSpace();
++							// 50% ist das Minimum, bei 0% schalten wir auf
++							// den Defaultwert 100% um ...
++							if( nTmp < 50 )
++								nTmp = nTmp ? 50 : 100;
++	
++							nTmp *= nFirstLineOfs;
++							nTmp /= 100;
++							if( !nTmp )
++								++nTmp;
++							nFirstLineOfs = (KSHORT)nTmp;
++							break;
++						}
++						case SVX_INTER_LINE_SPACE_FIX:
++						{
++							nFirstLineOfs += pSpace->GetInterLineSpace();
++							break;
++						}
++						default: ASSERT( sal_False, ": unknown InterLineSpaceRule" );
+ 					}
+-					default: ASSERT( sal_False, ": unknown InterLineSpaceRule" );
+ 				}
+ 			}
+ 		}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sax.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sax.diff
@@ -0,0 +1,5 @@
+--- sax/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sax/prj/tests.lst	2007-09-07 11:38:53.000000000 +0200
+@@ -0,0 +1,2 @@
++#does not build: ax   sax\test\sax                                       nmake - all ax_test_sax NULL
++#does not build: ax   sax\test                                           nmake - all ax_test NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extensions_deliver.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extensions_deliver.diff
@@ -0,0 +1,7 @@
+--- sdext/prj/d.lst.orig	2007-10-11 14:10:27.000000000 +0200
++++ sdext/prj/d.lst	2008-04-01 22:11:56.000000000 +0200
+@@ -1,3 +1,4 @@
+ mkdir: %_DEST%\bin%_EXT%\minimizer
+ ..\%__SRC%\bin\sun-presentation-minimizer.oxt %_DEST%\bin%_EXT%\minimizer\sun-presentation-minimizer.oxt
++..\%__SRC%\bin\sun-presentation-minimizer.oxt %_DEST%\bin%_EXT%\sun-presentation-minimizer.oxt
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-shader-transitions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-shader-transitions.diff
@@ -0,0 +1,621 @@
+diff -rup slideshow/source/engine/OGLTrans-orig/makefile.mk slideshow/source/engine/OGLTrans/makefile.mk
+--- slideshow/source/engine/OGLTrans-orig/makefile.mk	2008-03-10 16:48:29.000000000 +0100
++++ slideshow/source/engine/OGLTrans/makefile.mk	2008-03-10 15:15:33.000000000 +0100
+@@ -56,7 +56,7 @@ ENABLE_EXCEPTIONS=TRUE
+ SLOFILES = \
+         $(SLO)$/OGLTrans_TransitionImpl.obj \
+         $(SLO)$/OGLTrans_TransitionerImpl.obj
+-        
++
+ DLLPRE=
+ SHL1TARGET=$(TARGET).uno
+ 
+diff -rup slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx	2008-03-10 16:48:29.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-03-10 15:15:33.000000000 +0100
+@@ -86,7 +86,7 @@ class OGLTransitionerImpl : private cppu
+ {
+ public:
+     explicit OGLTransitionerImpl(OGLTransitionImpl* pOGLTransition);
+-    void initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double);
++    bool initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double);
+     void setSlides( const uno::Reference< rendering::XBitmap >& xLeavingSlide , const uno::Reference< rendering::XBitmap >& xEnteringSlide );
+ 
+     // XTransition
+@@ -154,15 +154,18 @@ private:    
+ 
+     /** whether we are running on ATI fglrx with bug related to textures
+      */
+-    bool bBrokenTexturesATI;
++    bool mbBrokenTexturesATI;
++
++    /* GL version */
++    float mnGLVersion;
+ };
+ 
+-void OGLTransitionerImpl::initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double)
++bool OGLTransitionerImpl::initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double)
+ {
+     osl::MutexGuard const guard( m_aMutex );
+ 
+     if (isDisposed())
+-        return;
++        return false;
+ 
+     /// take the XSlideShowView and extract the parent window from it. see viewmediashape.cxx
+     uno::Reference< rendering::XCanvas > xCanvas(xView->getCanvas(), uno::UNO_QUERY_THROW);
+@@ -281,6 +284,10 @@ void OGLTransitionerImpl::initWindowFrom
+                                  vi,
+                                  0,
+                                  GL_TRUE);
++    if( glGetError() != GL_NO_ERROR ) {
++        OSL_TRACE("glError: %s\n", (char *)gluErrorString(glGetError()));
++        return false;
++    }
+     glXMakeCurrent( GLWin.dpy, GLWin.win, GLWin.ctx );
+ 
+     if(GLWin.HasGLXExtension("GLX_SGI_swap_control")) {
+@@ -293,8 +300,19 @@ void OGLTransitionerImpl::initWindowFrom
+         }
+     }
+ 
++    const GLubyte* version = glGetString( GL_VERSION );
++    if( version && version[0] ) {
++        mnGLVersion = version[0] - '0';
++        if( version[1] == '.' && version[2] )
++            mnGLVersion += (version[2] - '0')/10.0;
++    } else
++        mnGLVersion = 1.0;
++    OSL_TRACE("GL version: %s parsed: %f", version, mnGLVersion );
++
+     /* TODO: check for version once the bug in fglrx driver is fixed */
+-    bBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
++    mbBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
++
++    
+ 
+     glEnable(GL_CULL_FACE);
+     glCullFace(GL_BACK);
+@@ -313,8 +331,10 @@ void OGLTransitionerImpl::initWindowFrom
+     if( LeavingBytes.hasElements() && EnteringBytes.hasElements())
+        GLInitSlides();//we already have uninitialized slides, let's initialize 
+ 
+-    if (pTransition)
+-        pTransition->prepare ();
++    if( pTransition && pTransition->mnRequiredGLVersion <= mnGLVersion )
++        pTransition->prepare( GLleavingSlide, GLenteringSlide );
++
++    return true;
+ }
+ 
+ void OGLTransitionerImpl::setSlides( const uno::Reference< rendering::XBitmap >& xLeavingSlide, 
+@@ -338,7 +358,6 @@ void OGLTransitionerImpl::setSlides( con
+     LeavingBytes = LeavingSlideIntBitmap->getData(SlideBitmapLayout,SlideRect);
+     EnteringBytes = EnteringSlideIntBitmap->getData(SlideBitmapLayout,SlideRect);
+ 
+-
+     if(GLWin.ctx)//if we have a rendering context, let's init the slides
+         GLInitSlides();
+ 
+@@ -350,7 +369,7 @@ void OGLTransitionerImpl::GLInitSlides()
+ {
+     osl::MutexGuard const guard( m_aMutex );
+ 
+-    if (isDisposed())
++    if (isDisposed() || pTransition->mnRequiredGLVersion > mnGLVersion)
+         return;
+ 
+     glMatrixMode(GL_PROJECTION);
+@@ -440,7 +459,7 @@ void OGLTransitionerImpl::GLInitSlides()
+     
+     glGenTextures(1, &GLleavingSlide);
+ 	glBindTexture(GL_TEXTURE_2D, GLleavingSlide);
+-    if( pTransition && !bBrokenTexturesATI && !pTransition->mbUseMipMapLeaving) {
++    if( pTransition && !mbBrokenTexturesATI && !pTransition->mbUseMipMapLeaving) {
+         glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SlideSize.Width, SlideSize.Height, 0, Format, GL_UNSIGNED_BYTE, &LeavingBytes[0]);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+@@ -464,7 +483,7 @@ void OGLTransitionerImpl::GLInitSlides()
+ 	
+ 	glGenTextures(1, &GLenteringSlide);
+ 	glBindTexture(GL_TEXTURE_2D, GLenteringSlide);
+-    if( pTransition && !bBrokenTexturesATI && !pTransition->mbUseMipMapEntering ) {
++    if( pTransition && !mbBrokenTexturesATI && !pTransition->mbUseMipMapEntering ) {
+         glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SlideSize.Width, SlideSize.Height, 0, Format, GL_UNSIGNED_BYTE, &EnteringBytes[0]);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+@@ -489,14 +508,14 @@ void SAL_CALL OGLTransitionerImpl::updat
+ {
+     osl::MutexGuard const guard( m_aMutex );
+ 
+-    if (isDisposed())
++    if (isDisposed() || pTransition->mnRequiredGLVersion > mnGLVersion)
+         return;
+-        
++
+     glEnable(GL_DEPTH_TEST);
+ 	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ 
+ 	if(pTransition)
+-	    pTransition->display( nTime , GLleavingSlide , GLenteringSlide , 
++	    pTransition->display( nTime, GLleavingSlide, GLenteringSlide, 
+                               SlideSize.Width, SlideSize.Height,
+                               static_cast<double>(GLWin.Width),
+                               static_cast<double>(GLWin.Height) );
+@@ -567,6 +586,8 @@ public:
+                 case animations::TransitionSubType::BOTTOMRIGHT:
+                 case animations::TransitionSubType::BOTTOMLEFT:
+                 case animations::TransitionSubType::TOPCENTER:
++                case animations::TransitionSubType::RIGHTCENTER:
++                case animations::TransitionSubType::BOTTOMCENTER:
+                     return sal_True;
+ 
+                 default:
+@@ -588,6 +609,9 @@ public:
+         const uno::Reference< rendering::XBitmap >&           enteringBitmap, 
+         const geometry::RealPoint2D&                          slideOffset ) throw (uno::RuntimeException)
+     {
++        if( !hasTransition( transitionType, transitionSubType ) )
++            return uno::Reference< presentation::XTransition >();
++
+         OGLTransitionImpl* pTransition;
+ 
+         if( transitionType == animations::TransitionType::MISCSHAPEWIPE ) {
+@@ -630,8 +654,12 @@ public:
+                 case animations::TransitionSubType::TOPCENTER:
+                     pTransition->makeVenetianBlinds( false, 6 );
+                     break;
+-                default:
+-                    return uno::Reference< presentation::XTransition >();
++                case animations::TransitionSubType::RIGHTCENTER:
++                    pTransition->makeStatic();
++                    break;
++                case animations::TransitionSubType::BOTTOMCENTER:
++                    pTransition->makeDissolve();
++                    break;
+                 }
+         } else if( transitionType == animations::TransitionType::FADE && transitionSubType == animations::TransitionSubType::CROSSFADE ) {
+             pTransition = new OGLTransitionImpl();
+@@ -639,13 +667,12 @@ public:
+         } else if( transitionType == animations::TransitionType::IRISWIPE && transitionSubType == animations::TransitionSubType::DIAMOND ) {
+             pTransition = new OGLTransitionImpl();
+             pTransition->makeDiamond();
+-        } else {
+-            return uno::Reference< presentation::XTransition >();
+         }
+ 
+         rtl::Reference<OGLTransitionerImpl> xRes(
+             new OGLTransitionerImpl(pTransition) );
+-        xRes->initWindowFromSlideShowView(view,slideOffset.X,slideOffset.Y);
++        if(!xRes->initWindowFromSlideShowView(view,slideOffset.X,slideOffset.Y))
++            return uno::Reference< presentation::XTransition >();
+         xRes->setSlides(leavingBitmap,enteringBitmap);
+ 
+         return uno::Reference<presentation::XTransition>(xRes.get());
+diff -rup slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx
+--- slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionImpl.cxx	2008-03-10 16:48:29.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	2008-03-10 16:43:23.000000000 +0100
+@@ -32,8 +32,10 @@
+  *    MA  02111-1307  USA
+  *
+  ************************************************************************/
++#define GL_GLEXT_PROTOTYPES 1
+ #include "OGLTrans_TransitionImpl.hxx"
+ #include <GL/gl.h>
++#include <GL/glext.h>
+ #include <math.h>
+ 
+ void OGLTransitionImpl::clear()
+@@ -48,6 +50,31 @@ void OGLTransitionImpl::clear()
+     maSceneObjects.clear();
+ 
+     mbReflectSlides = false;
++
++#ifdef GL_VERSION_2_0
++    if( mProgramObject ) {
++        glDeleteProgram( mProgramObject );
++        mProgramObject = 0;
++    }
++
++    if( mVertexObject ) {
++        glDeleteShader( mVertexObject );
++        mVertexObject = 0;
++    }
++
++    if( mFragmentObject ) {
++        glDeleteShader( mFragmentObject );
++        mFragmentObject = 0;
++    }
++#endif
++
++    if( maHelperTexture ) {
++        glDeleteTextures( 1, &maHelperTexture );
++        maHelperTexture = 0;
++    }
++
++    if( mmClearTransition )
++        (this->*mmClearTransition)();
+ }
+ 
+ OGLTransitionImpl::~OGLTransitionImpl()
+@@ -55,11 +82,14 @@ OGLTransitionImpl::~OGLTransitionImpl()
+     clear();
+ }
+ 
+-void OGLTransitionImpl::prepare()
++void OGLTransitionImpl::prepare( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex )
+ {
+     for(unsigned int i(0); i < maSceneObjects.size(); ++i) {
+         maSceneObjects[i]->prepare();
+     }
++
++    if( mmPrepareTransition )
++        (this->*mmPrepareTransition)( glLeavingSlideTex, glEnteringSlideTex );
+ }
+ 
+ void OGLTransitionImpl::finish()
+@@ -986,3 +1016,273 @@ void OGLTransitionImpl::makeFadeSmoothly
+     mmDisplaySlides = &OGLTransitionImpl::displaySlidesFadeSmoothly;
+     mbUseMipMapLeaving = mbUseMipMapEntering = false;
+ }
++
++static GLuint linkProgram( const char *vertexShader, const char *fragmentShader )
++{
++#ifdef GL_VERSION_2_0
++    GLhandleARB vertexObject, fragmentObject, programObject;
++    GLint vertexCompiled, fragmentCompiled, programLinked;
++    char log[1024];
++
++    vertexObject = glCreateShaderObjectARB( GL_VERTEX_SHADER_ARB );
++    fragmentObject = glCreateShader( GL_FRAGMENT_SHADER );
++    OSL_TRACE("checkpoint 1: shaders created (%d) vertex: %d fragment: %d", glGetError() == GL_NO_ERROR, vertexObject, fragmentObject );
++
++
++    glShaderSourceARB( vertexObject, 1, &vertexShader, NULL );
++    glShaderSourceARB( fragmentObject, 1, &fragmentShader, NULL );
++
++    glCompileShader( vertexObject );
++    glGetInfoLogARB( vertexObject, sizeof( log ), NULL, log );
++    OSL_TRACE("vertex compile log: %s", log);
++    glGetShaderiv( vertexObject, GL_COMPILE_STATUS, &vertexCompiled );
++    glCompileShader( fragmentObject );
++    glGetInfoLogARB( fragmentObject, sizeof( log ), NULL, log );
++    OSL_TRACE("fragment compile log: %s", log);
++    glGetShaderiv( fragmentObject, GL_COMPILE_STATUS, &fragmentCompiled );
++
++    if( !vertexCompiled || !fragmentCompiled )
++        return 0;
++
++    OSL_TRACE("checkpoint 2: shaders compiled (%d)", glGetError() == GL_NO_ERROR);
++
++    programObject = glCreateProgram();
++    glAttachShader( programObject, vertexObject );
++    glAttachShader( programObject, fragmentObject );
++
++    glLinkProgram( programObject );
++    glGetInfoLogARB( programObject, sizeof( log ), NULL, log );
++    OSL_TRACE("program link log: %s", log);
++    glGetProgramiv( programObject, GL_LINK_STATUS, &programLinked );
++
++    if( !programLinked )
++        return 0;
++
++    OSL_TRACE("checkpoint 3: program linked (%d)", glGetError() == GL_NO_ERROR);
++
++    return programObject;
++#else
++    return 0;
++#endif
++}
++
++static const char* basicVertexShader = "\n\
++varying vec2 v_texturePosition;\n\
++\n\
++void main( void )\n\
++{\n\
++	gl_Position = ftransform();\n\
++	v_texturePosition = gl_MultiTexCoord0.xy;\n\
++}\n\
++";
++
++static const char* staticFragmentShader = "\n\
++uniform sampler2D leavingSlideTexture;\n\
++uniform sampler2D enteringSlideTexture;\n\
++uniform sampler2D permTexture;\n\
++uniform float time;\n\
++varying vec2 v_texturePosition;\n\
++\n\
++float snoise(vec2 P) {\n\
++\n\
++  return texture2D(permTexture, P).r;\n\
++}\n\
++\n\
++\n\
++#define PART 0.5\n\
++#define START 0.4\n\
++#define END 0.9\n\
++\n\
++void main() {\n\
++    float sn = snoise(10.0*v_texturePosition+time*0.07);\n\
++    if( time < PART ) {\n\
++        float sn1 = snoise(vec2(time*15.0, 20.0*v_texturePosition.y));\n\
++        float sn2 = snoise(v_texturePosition);\n\
++        if (sn1 > 1.0 - time*time && sn2 < 2.0*time+0.1)\n\
++	        gl_FragColor = vec4(sn, sn, sn, 1.0);\n\
++        else if (time > START )\n\
++            gl_FragColor = ((time-START)/(PART - START))*vec4(sn, sn, sn, 1.0) + (1.0 - (time - START)/(PART - START))*texture2D(leavingSlideTexture, v_texturePosition);\n\
++        else\n\
++            gl_FragColor = texture2D(leavingSlideTexture, v_texturePosition);\n\
++    } else if ( time < PART ) {\n\
++            gl_FragColor = texture2D(leavingSlideTexture, v_texturePosition);\n\
++    } else if ( time > END ) {\n\
++        gl_FragColor = ((1.0 - time)/(1.0 - END))*vec4(sn, sn, sn, 1.0) + ((time - END)/(1.0 - END))*texture2D(enteringSlideTexture, v_texturePosition);\n\
++    } else \n\
++	    gl_FragColor = vec4(sn, sn, sn, 1.0);\n\
++}\n\
++";
++
++static const char* dissolveFragmentShader = "\n\
++uniform sampler2D leavingSlideTexture;\n\
++uniform sampler2D enteringSlideTexture;\n\
++uniform sampler2D permTexture;\n\
++uniform float time;\n\
++varying vec2 v_texturePosition;\n\
++\n\
++float snoise(vec2 P) {\n\
++\n\
++  return texture2D(permTexture, P).r;\n\
++}\n\
++\n\
++void main() {\n\
++     float sn = snoise(10.0*v_texturePosition);\n\
++     if( sn < time)\n\
++         gl_FragColor = texture2D(enteringSlideTexture, v_texturePosition);\n\
++     else\n\
++         gl_FragColor = texture2D(leavingSlideTexture, v_texturePosition);\n\
++}\n\
++";
++
++int permutation256 [256]= {
++215, 100, 200, 204, 233,  50,  85, 196, 
++ 71, 141, 122, 160,  93, 131, 243, 234, 
++162, 183,  36, 155,   4,  62,  35, 205, 
++ 40, 102,  33,  27, 255,  55, 214, 156, 
++ 75, 163, 134, 126, 249,  74, 197, 228, 
++ 72,  90, 206, 235,  17,  22,  49, 169, 
++227,  89,  16,   5, 117,  60, 248, 230, 
++217,  68, 138,  96, 194, 170, 136,  10, 
++112, 238, 184, 189, 176,  42, 225, 212, 
++ 84,  58, 175, 244, 150, 168, 219, 236, 
++101, 208, 123,  37, 164, 110, 158, 201, 
++ 78, 114,  57,  48,  70, 142, 106,  43, 
++232,  26,  32, 252, 239,  98, 191,  94, 
++ 59, 149,  39, 187, 203, 190,  19,  13, 
++133,  45,  61, 247,  23,  34,  20,  52, 
++118, 209, 146, 193, 222,  18,   1, 152, 
++ 46,  41,  91, 148, 115,  25, 135,  77, 
++254, 147, 224, 161,   9, 213, 223, 250, 
++231, 251, 127, 166,  63, 179,  81, 130, 
++139,  28, 120, 151, 241,  86, 111,   0, 
++ 88, 153, 172, 182, 159, 105, 178,  47, 
++ 51, 167,  65,  66,  92,  73, 198, 211, 
++245, 195,  31, 220, 140,  76, 221, 186, 
++154, 185,  56,  83,  38, 165, 109,  67, 
++124, 226, 132,  53, 229,  29,  12, 181, 
++121,  24, 207, 199, 177, 113,  30,  80, 
++  3,  97, 188,  79, 216, 173,   8, 145, 
++ 87, 128, 180, 237, 240, 137, 125, 104, 
++ 15, 242, 119, 246, 103, 143,  95, 144, 
++  2,  44,  69, 157, 192, 174,  14,  54, 
++218,  82,  64, 210,  11,   6, 129,  21, 
++116, 171,  99, 202,   7, 107, 253, 108
++};
++
++void initPermTexture(GLuint *texID)
++{
++  glGenTextures(1, texID);
++  glBindTexture(GL_TEXTURE_2D, *texID);
++
++  static bool initialized = false;
++  static unsigned char permutation2D[256*256*4];
++  if( !initialized ) {
++      int x, y;
++
++      for( y=0; y < 256; y++ )
++          for( x=0; x < 256; x++ )
++              permutation2D[x*4 + y*1024] = permutation256[(y + permutation256[x]) & 0xff];
++
++      initialized = true;
++  }
++
++  glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, permutation2D );
++  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
++  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
++}
++
++void OGLTransitionImpl::preparePermShader()
++{
++#ifdef GL_VERSION_2_0
++    if( mProgramObject ) {
++        glUseProgram( mProgramObject );
++
++        GLint location = glGetUniformLocation( mProgramObject, "leavingSlideTexture" );
++        if( location != -1 ) {
++            glUniform1i( location, 0 );  // texture unit 0
++        }
++
++        glActiveTexture(GL_TEXTURE1);
++        if( !maHelperTexture )
++            initPermTexture( &maHelperTexture );
++        glActiveTexture(GL_TEXTURE0);
++
++        location = glGetUniformLocation( mProgramObject, "permTexture" );
++        if( location != -1 ) {
++            glUniform1i( location, 1 );  // texture unit 1
++        }
++
++        location = glGetUniformLocation( mProgramObject, "enteringSlideTexture" );
++        if( location != -1 ) {
++            glUniform1i( location, 2 );  // texture unit 2
++        }
++    }
++#endif
++}
++
++void OGLTransitionImpl::prepareStatic( ::sal_Int32 /* glLeavingSlideTex */, ::sal_Int32 /* glEnteringSlideTex */ )
++{
++    mProgramObject = linkProgram( basicVertexShader, staticFragmentShader );
++
++    preparePermShader();
++}
++
++void OGLTransitionImpl::displaySlidesShaders( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex,
++                                              double SlideWidthScale, double SlideHeightScale )
++{
++    applyOverallOperations( nTime, SlideWidthScale, SlideHeightScale );
++
++#ifdef GL_VERSION_2_0
++    if( mProgramObject ) {
++        GLint location = glGetUniformLocation( mProgramObject, "time" );
++        if( location != -1 ) {
++            glUniform1f( location, nTime );
++        }
++    }
++#endif
++
++    glActiveTexture( GL_TEXTURE2 );
++    glBindTexture( GL_TEXTURE_2D, glEnteringSlideTex );
++    glActiveTexture( GL_TEXTURE0 );
++
++    displaySlide( nTime, glLeavingSlideTex, maLeavingSlidePrimitives, SlideWidthScale, SlideHeightScale );
++}
++
++void OGLTransitionImpl::makeStatic()
++{
++    Primitive Slide;
++
++    Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1));
++    Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1));
++    maLeavingSlidePrimitives.push_back (Slide);
++    maEnteringSlidePrimitives.push_back (Slide);
++
++    mmDisplaySlides = &OGLTransitionImpl::displaySlidesShaders;
++    mmPrepareTransition = &OGLTransitionImpl::prepareStatic;
++    mbUseMipMapLeaving = mbUseMipMapEntering = false;
++
++    mnRequiredGLVersion = 2.0;
++}
++
++void OGLTransitionImpl::prepareDissolve( ::sal_Int32 /* glLeavingSlideTex */, ::sal_Int32 /* glEnteringSlideTex */ )
++{
++    mProgramObject = linkProgram( basicVertexShader, dissolveFragmentShader );
++
++    preparePermShader();
++}
++
++void OGLTransitionImpl::makeDissolve()
++{
++    Primitive Slide;
++
++    Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1));
++    Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1));
++    maLeavingSlidePrimitives.push_back (Slide);
++    maEnteringSlidePrimitives.push_back (Slide);
++
++    mmDisplaySlides = &OGLTransitionImpl::displaySlidesShaders;
++    mmPrepareTransition = &OGLTransitionImpl::prepareDissolve;
++    mbUseMipMapLeaving = mbUseMipMapEntering = false;
++
++    mnRequiredGLVersion = 2.0;
++}
+diff -rup slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionImpl.hxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx
+--- slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionImpl.hxx	2008-03-10 16:48:29.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	2008-03-10 16:44:56.000000000 +0100
+@@ -55,18 +55,25 @@ public:
+     OGLTransitionImpl() :
+         mbUseMipMapLeaving( true ),
+         mbUseMipMapEntering( true ),
++        mnRequiredGLVersion( 1.0 ),
+         maLeavingSlidePrimitives(),
+         maEnteringSlidePrimitives(),
+         maSceneObjects(),
+         mbReflectSlides( false ),
++        mVertexObject( 0 ),
++        mFragmentObject( 0 ),
++        mProgramObject( 0 ),
++        maHelperTexture( 0 ),
+         mmPrepare( NULL ),
++        mmPrepareTransition( NULL ),
++        mmClearTransition( NULL ),
+         mmDisplaySlides( NULL )
+     {}
+ 
+     ~OGLTransitionImpl();
+     
+-    void prepare();
+-    void display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight);
++    void prepare( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex );
++    void display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight );
+     void finish();
+ 
+     void makeOutsideCubeFaceToLeft();
+@@ -80,6 +87,8 @@ public:
+     void makeIris();
+     void makeRochade();
+     void makeVenetianBlinds( bool vertical, int parts );
++    void makeStatic();
++    void makeDissolve();
+ 
+     /** 2D replacements
+      */
+@@ -91,6 +100,10 @@ public:
+     bool mbUseMipMapLeaving;
+     bool mbUseMipMapEntering;
+ 
++    /** which GL version does the transition require
++     */
++    float mnRequiredGLVersion;
++
+ private:
+     /** clears all the primitives and operations
+ 	*/
+@@ -117,11 +130,28 @@ private:
+      */
+     bool mbReflectSlides;
+ 
++    /** GLSL objects, shaders and program
++     */
++    GLuint mVertexObject, mFragmentObject, mProgramObject;
++
++    /* various data */
++    GLuint maHelperTexture;
++
+     /** When this method is not NULL, it is called in display method to prepare the slides, scene, etc.
+      ** We might later replace this by cleaner derived class.
+      */
+     void (OGLTransitionImpl::*mmPrepare)( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight );
+ 
++    /** When this method is not NULL, it is called after glx context is ready to let the transition prepare GL related things, like GLSL program.
++     ** We might later replace this by cleaner derived class.
++     */
++    void (OGLTransitionImpl::*mmPrepareTransition)( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex );
++
++    /** When this method is not NULL, it is called when the transition needs to clear after itself, like delete own textures etc.
++     ** We might later replace this by cleaner derived class.
++     */
++    void (OGLTransitionImpl::*mmClearTransition)();
++
+     /** When this method is not NULL, it is called in display method to display the slides.
+      ** We might later replace this by cleaner derived class.
+      */
+@@ -136,6 +166,10 @@ private:
+      */
+     void prepareDiamond( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight );
+     void displaySlidesFadeSmoothly( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale );
++    void displaySlidesShaders( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale );
++    void prepareStatic( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex );
++    void prepareDissolve( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex );
++    void preparePermShader();
+ };
+ 
+ class SceneObject
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooowikipedia_toolbars.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooowikipedia_toolbars.diff
@@ -0,0 +1,30 @@
+diff -Naur -x .svn null/uiconfig/sglobal/toolbar/dataminer.xml sw/uiconfig/sglobal/toolbar/dataminer.xml
+--- sw/uiconfig/sglobal/toolbar/dataminer.xml	1970-01-01 01:00:00.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/dataminer.xml	2007-01-09 18:37:26.000000000 +0100
+@@ -0,0 +1,6 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
++<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
++ <toolbar:toolbaritem xlink:href="macro:///OOoWikipedia.Module1.StarWithDefaultLanguage" toolbar:text="WPD"/>
++ <toolbar:toolbaritem xlink:href="macro:///OOoWikipedia.Module1.StartWithChooseBox" toolbar:text="WPC"/>
++</toolbar:toolbar>
+diff -Naur -x .svn null/uiconfig/sweb/toolbar/dataminer.xml sw/uiconfig/sweb/toolbar/dataminer.xml
+--- sw/uiconfig/sweb/toolbar/dataminer.xml	1970-01-01 01:00:00.000000000 +0100
++++ sw/uiconfig/sweb/toolbar/dataminer.xml	2007-01-09 18:37:26.000000000 +0100
+@@ -0,0 +1,6 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
++<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
++ <toolbar:toolbaritem xlink:href="macro:///OOoWikipedia.Module1.StarWithDefaultLanguage" toolbar:text="WPD"/>
++ <toolbar:toolbaritem xlink:href="macro:///OOoWikipedia.Module1.StartWithChooseBox" toolbar:text="WPC"/>
++</toolbar:toolbar>
+diff -Naur -x .svn null/uiconfig/swriter/toolbar/dataminer.xml sw/uiconfig/swriter/toolbar/dataminer.xml
+--- sw/uiconfig/swriter/toolbar/dataminer.xml	1970-01-01 01:00:00.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/dataminer.xml	2007-01-09 18:37:26.000000000 +0100
+@@ -0,0 +1,6 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
++<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
++ <toolbar:toolbaritem xlink:href="macro:///OOoWikipedia.Module1.StarWithDefaultLanguage" toolbar:text="WPD"/>
++ <toolbar:toolbaritem xlink:href="macro:///OOoWikipedia.Module1.StartWithChooseBox" toolbar:text="WPC"/>
++</toolbar:toolbar>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/testtool-more-defaults.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/testtool-more-defaults.diff
@@ -0,0 +1,60 @@
+Index: automation/source/testtool/objtest.cxx
+===================================================================
+RCS file: /cvs/util/automation/source/testtool/objtest.cxx,v
+retrieving revision 1.20
+diff -u -p -r1.20 objtest.cxx
+--- automation/source/testtool/objtest.cxx	6 Oct 2005 12:37:43 -0000	1.20
++++ automation/source/testtool/objtest.cxx	27 Feb 2006 20:26:19 -0000
+@@ -516,6 +516,52 @@ void TestToolObj::LoadIniFile()				// La
+     GetHostConfig();
+     GetTTPortConfig();
+     GetUnoPortConfig();
++
++    aConf.SetGroup("Crashreporter");
++
++    String aUP;
++    GETSET( aUP, "UseProxy", "false" );
++    String aPS;
++    GETSET( aPS, "ProxyServer", "" );
++    String aPP;
++    GETSET( aPP, "ProxyPort", "" );
++    String aAC;
++    GETSET( aAC, "AllowContact", "false" );
++    String aRA;
++    GETSET( aRA, "ReturnAddress", "" );
++
++    OUString sPath;
++    if( osl_getExecutableFile( (rtl_uString**)&sPath ) == osl_Process_E_None)
++    {
++        sPath = sPath.copy(7); // strip file://
++
++        int i = sPath.lastIndexOf('/');
++        if (i >= 0)
++            i = sPath.lastIndexOf('/', i-1 );
++
++        if (i >= 0)
++        {
++            sPath = sPath.copy(0, i);
++            ByteString bsPath( sPath.getStr(), sPath.getLength(),
++                               RTL_TEXTENCODING_UTF8 );
++            
++            aConf.SetGroup( "OOoProgramDir" );
++            String aOPD;
++            GETSET( aOPD, "Current", bsPath);
++
++            aConf.SetGroup( "Path" );
++            String aPBD;
++            bsPath += "/qatesttool";
++            GETSET( aPBD, "BaseDir", bsPath );
++
++            String aPHD;
++            bsPath += "/global/hid";
++            GETSET( aPHD, "HIDDir", bsPath );
++
++            String aLD;
++            GETSET( aLD, "LogBaseDir", ByteString( "/tmp" ) );
++        }
++    }
+ }
+ 
+ #define MAKE_TT_KEYWORD( cName, aType, aResultType, nID ) \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xalan-serializer-jar-more.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xalan-serializer-jar-more.diff
@@ -0,0 +1,38 @@
+--- config_office/configure.in.old	2006-10-09 20:39:18.000000000 +0200
++++ config_office/configure.in	2006-10-10 18:14:31.000000000 +0200
+@@ -3317,10 +3317,25 @@
+           AC_CHECK_FILE($XALAN_JAR, [],
+                [AC_MSG_ERROR(xalan.jar replacement not found.)], [])
+         fi
+-        if test -n "$SERIALIZER_JAR"; then
++        if test -z "$SERIALIZER_JAR"; then
++          # FIXME: add check for xalan version to know when serializer.jar
++          #        is required 
++          AC_CHECK_FILE(/usr/share/java/xalan-j2-serializer.jar, 
++            [ SERIALIZER_JAR=/usr/share/java/xalan-j2-serializer.jar ],
++            [
++              AC_CHECK_FILE(/usr/share/java/xalan2-serializer.jar, 
++                [ SERIALIZER_JAR=/usr/share/java/xalan2-serializer.jar ],
++                [ AC_CHECK_FILE(/usr/share/java/serializer.jar,
++                    [ SERIALIZER_JAR=/usr/share/java/serializer.jar ],
++                    [], []
++                  )
++                ]
++              )
++            ]
++          )
++	else
+           AC_CHECK_FILE($SERIALIZER_JAR, [],
+                [AC_MSG_ERROR(serializer.jar not found.)], [])
+-          AC_SUBST(SERIALIZER_JAR)
+         fi
+ else
+     AC_MSG_RESULT([internal])
+@@ -3329,6 +3344,7 @@
+ fi
+ AC_SUBST(SYSTEM_XALAN)
+ AC_SUBST(XALAN_JAR)
++AC_SUBST(SERIALIZER_JAR)
+ 
+ if test -n "$NEED_XALAN"; then
+    BUILD_TYPE="$BUILD_TYPE XALAN"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo67658.sfx2.reloadcrash.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo67658.sfx2.reloadcrash.diff
@@ -0,0 +1,20 @@
+--- sfx2/source/doc/objxtor.cxx.old	2006-09-27 15:53:41.918388000 +0200
++++ sfx2/source/doc/objxtor.cxx	2006-09-27 15:55:17.118388000 +0200
+@@ -279,7 +279,16 @@
+     }
+ 
+     if ( pImp->bOwnsStorage && pImp->m_xDocStorage.is() )
+-    	pImp->m_xDocStorage->dispose();
++    {
++	try
++	{
++    	    pImp->m_xDocStorage->dispose();
++	}
++	catch( Exception& )
++	{
++            /* what to do ? */
++	}
++    }
+ 
+ 	// The removing of the temporary file must be done as the latest step in the document destruction
+     if ( pImp->aTempName.Len() )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-openformula-frequency.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-openformula-frequency.diff
@@ -0,0 +1,522 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/inc/interpre.hxx sc/source/core/inc/interpre.hxx
+--- sc.clean/source/core/inc/interpre.hxx	2008-04-20 15:27:24.000000000 -0400
++++ sc/source/core/inc/interpre.hxx	2008-04-20 15:27:56.000000000 -0400
+@@ -657,7 +657,8 @@ void ScStandard();
+ void ScSkew();
+ void ScMedian();
+ void GetSortArray(BYTE nParamCount, double** ppSortArray, SCSIZE& nSize);
+-void QuickSort(long nLo, long nHi, double* pSortArr);
++void GetSortArray(BYTE nParamCount, ::std::vector<double>& rSortArray, ::std::vector<long>* pIndexOrder = NULL);
++void QuickSort(::std::vector<double>& rSortArray, ::std::vector<long>* pIndexOrder = NULL);
+ void ScModalValue();
+ void ScAveDev();
+ void ScDevSq();
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr3.cxx sc/source/core/tool/interpr3.cxx
+--- sc.clean/source/core/tool/interpr3.cxx	2008-04-20 15:27:24.000000000 -0400
++++ sc/source/core/tool/interpr3.cxx	2008-04-20 16:58:36.000000000 -0400
+@@ -56,6 +56,8 @@
+ #include "scmatrix.hxx"
+ #include "globstr.hrc"
+ 
++using ::std::vector;
++
+ // STATIC DATA -----------------------------------------------------------
+ 
+ #define SCdEpsilon                1.0E-7
+@@ -3063,216 +3065,184 @@ void ScInterpreter::ScTrimMean()
+ 
+ void ScInterpreter::GetSortArray(BYTE nParamCount, double** ppSortArray, SCSIZE& nSize)
+ {
+-	*ppSortArray = NULL;
+-	nSize = 0;
++    // TODO: This is a glue method.  Check all the references of this method,
++    // and rewrite them to use the other GetSortArray method so that we can 
++    // remove this one.
++
++    nSize = 0;
++    vector<double> aSortArray;
++    GetSortArray(nParamCount, aSortArray);
++    if (aSortArray.empty())
++        return;
+ 
+-	USHORT SaveSP = sp;
+-	SCSIZE rValCount = 0;
+-	ScAddress aAdr;
+-	ScRange aRange;
+-    BYTE nParam;
+-	for (nParam = 0; nParam < nParamCount; nParam++)
+-	{
+-		switch (GetStackType())
+-		{
+-			case svDouble :
+-                PopDouble();
+-				rValCount++;
++    nSize = aSortArray.size();
++    *ppSortArray = new double[nSize];
++    double* pSortArray = *ppSortArray;
++    for (SCSIZE i = 0; i < nSize; ++i)
++        pSortArray[i] = aSortArray[i];
++}
++
++void ScInterpreter::GetSortArray(BYTE nParamCount, vector<double>& rSortArray, vector<long>* pIndexOrder)
++{
++    for (BYTE nParam = 0; nParam < nParamCount; ++nParam)
++    {
++        switch (GetStackType())
++        {
++            case svDouble:
++                rSortArray.push_back(GetDouble());
+             break;
+-			case svSingleRef :
+-			{
+-				PopSingleRef( aAdr );
+-				ScBaseCell* pCell = GetCell( aAdr );
+-				if (HasCellValueData(pCell))
+-					rValCount++;
+-			}
+-			break;
+-			case svDoubleRef :
+-			{
+-				PopDoubleRef( aRange );
+-				USHORT nErr = 0;
+-				double nCellVal;
+-				ScValueIterator aValIter(pDok, aRange);
+-				if (aValIter.GetFirst(nCellVal, nErr))
+-				{
+-					rValCount++;
+-					SetError(nErr);
+-					while ((nErr == 0) && aValIter.GetNext(nCellVal, nErr))
+-						rValCount++;
+-					SetError(nErr);
+-				}
+-			}
+-			break;
+-			case svMatrix :
+-			{
+-				ScMatrixRef pMat = PopMatrix();
+-				if (pMat)
+-				{
+-                    SCSIZE nCount = pMat->GetElementCount();
+-					if (pMat->IsNumeric())
+-                        rValCount += nCount;
+-					else
+-					{
+-                        for (SCSIZE i = 0; i < nCount; i++)
+-                            if (!pMat->IsString(i))
+-                                rValCount++;
+-					}
+-				}
+-			}
+-			break;
+-			default :
+-				SetError(errIllegalParameter);
+-			break;
+-		}
+-	}
+-	if (rValCount > MAX_ANZ_DOUBLE_FOR_SORT || nGlobalError)
+-	{
+-		SetError(errStackOverflow);
+-		return;
+-	}
+-	else if (rValCount == 0)
+-	{
+-		SetNoValue();
+-		return;
+-	}
+-	*ppSortArray = new double[rValCount];
+-	double* pSortArray = *ppSortArray;
+-	if (!*ppSortArray)
+-	{
+-		rValCount = 0;
+-		SetError(errStackOverflow);
+-		return;
+-	}
+-	sp = SaveSP;
+-	SCSIZE nIndex = 0;
+-	for (nParam = 0; nParam < nParamCount; nParam++)
+-	{
+-		switch (GetStackType())
+-		{
+-			case svDouble :
+-				pSortArray[nIndex] = GetDouble();
+-				nIndex++;
+-				break;
+-			case svSingleRef :
+-			{
+-				PopSingleRef( aAdr );
+-				ScBaseCell* pCell = GetCell( aAdr );
+-				if (HasCellValueData(pCell))
+-				{
+-					pSortArray[nIndex] = GetCellValue( aAdr, pCell );
+-					nIndex++;
+-				}
+-			}
+-			break;
+-			case svDoubleRef :
+-			{
+-				PopDoubleRef( aRange );
+-				USHORT nErr;
+-				double nCellVal;
+-				ScValueIterator aValIter(pDok, aRange);
+-				if (aValIter.GetFirst(nCellVal, nErr))
+-				{
+-					pSortArray[nIndex] = nCellVal;
+-					nIndex++;
+-					while (aValIter.GetNext(nCellVal, nErr))
+-					{
+-						pSortArray[nIndex] = nCellVal;
+-						nIndex++;
+-					}
+-				}
+-			}
+-			break;
+-			case svMatrix :
+-			{
+-				ScMatrixRef pMat = PopMatrix();
+-				if (pMat)
+-				{
+-                    SCSIZE nCount = pMat->GetElementCount();
+-					if (pMat->IsNumeric())
+-					{
+-                        for (SCSIZE i = 0; i < nCount; i++)
+-                        {
+-                            pSortArray[nIndex] = pMat->GetDouble(i);
+-                            nIndex++;
+-                        }
+-					}
+-					else
+-					{
+-                        for (SCSIZE i = 0; i < nCount; i++)
+-                            if (!pMat->IsString(i))
+-							{
+-                                pSortArray[nIndex] = pMat->GetDouble(i);
+-								nIndex++;
+-							}
+-					}
+-				}
+-			}
+-			break;
+-			default : SetError(errIllegalParameter); break;
+-		}
+-	}
+-	DBG_ASSERT(nIndex == rValCount,"nIndex != rValCount");
+-	if (nGlobalError == 0)
+-	{
+-		double fVal;
+-		SCSIZE nInd;
+-		for (SCSIZE i = 0; (i + 4) <= rValCount-1; i += 4)
+-		{
+-			nInd = rand() % (int) (rValCount-1);
+-			fVal = pSortArray[i];
+-			pSortArray[i] = pSortArray[nInd];
+-			pSortArray[nInd] = fVal;
+-		}
+-		QuickSort(0, static_cast<long>(rValCount)-1, pSortArray);
+-	}
+-	nSize = rValCount;
++            case svSingleRef:
++            {
++                ScAddress aAddr;
++                PopSingleRef(aAddr);
++                ScBaseCell* pCell = GetCell(aAddr);
++                if (HasCellValueData(pCell))
++                    rSortArray.push_back(GetCellValue(aAddr, pCell));
++            }
++            break;
++            case svDoubleRef :
++            {
++                ScRange aRange;
++                PopDoubleRef(aRange);
++                if (!aRange.IsValid())
++                    break;
++
++                aRange.Justify();
++                SCSIZE nCellCount = aRange.aEnd.Col() - aRange.aStart.Col() + 1;
++                nCellCount *= aRange.aEnd.Row() - aRange.aStart.Row() + 1;
++                rSortArray.reserve(rSortArray.size() + nCellCount);
++
++                USHORT nErr = 0;
++                double fCellVal;
++                ScValueIterator aValIter(pDok, aRange);
++                if (aValIter.GetFirst(fCellVal, nErr))
++                {
++                    rSortArray.push_back(fCellVal);
++                    SetError(nErr);
++                    while (nErr == 0 && aValIter.GetNext(fCellVal, nErr))
++                        rSortArray.push_back(fCellVal);
++                    SetError(nErr);
++                }
++            }
++            break;
++            case svMatrix :
++            {
++                ScMatrixRef pMat = PopMatrix();
++                if (!pMat)
++                    break;
++
++                SCSIZE nCount = pMat->GetElementCount();
++                rSortArray.reserve(rSortArray.size() + nCount);
++                if (pMat->IsNumeric())
++                {
++                    for (SCSIZE i = 0; i < nCount; ++i)
++                        rSortArray.push_back(pMat->GetDouble(i));
++                }
++                else
++                {
++                    for (SCSIZE i = 0; i < nCount; ++i)
++                        if (!pMat->IsString(i))
++                            rSortArray.push_back(pMat->GetDouble(i));
++                }
++            }
++            break;
++            default : 
++                SetError(errIllegalParameter); 
++                return;
++        }
++    }
++
++    if (rSortArray.size() > MAX_ANZ_DOUBLE_FOR_SORT || nGlobalError)
++    {
++        SetError(errStackOverflow);
++        return;
++    }
++
++    if (rSortArray.empty())
++    {
++        SetNoValue();
++        return;
++    }
++
++    if (nGlobalError == 0)
++        QuickSort(rSortArray, pIndexOrder);
+ }
+ 
+-void ScInterpreter::QuickSort(long nLo, long nHi, double* pSortArray)
++static void lcl_QuickSort(long nLo, long nHi, vector<double>& rSortArray, vector<long>* pIndexOrder)
+ {
+-	if (nHi - nLo == 1)
+-	{
+-		if (pSortArray[nLo] > pSortArray[nHi])
+-		{
+-			double fVal;
+-			fVal = pSortArray[nLo];
+-			pSortArray[nLo] = pSortArray[nHi];
+-			pSortArray[nHi] = fVal;
+-		}
+-	}
+-	else
+-	{
+-		long ni = nLo;
+-		long nj = nHi;
+-		do
+-		{
+-			while (ni <= nHi && pSortArray[ni]  < pSortArray[nLo]) ni++;
+-			while (nj >= nLo && pSortArray[nLo] < pSortArray[nj])  nj--;
+-			if (ni <= nj)
+-			{
+-				if (ni != nj)
+-				{
+-					double fVal;
+-					fVal = pSortArray[ni];
+-					pSortArray[ni] = pSortArray[nj];
+-					pSortArray[nj] = fVal;
+-				}
+-				ni++;
+-				nj--;
+-			}
+-		}
+-		while (ni < nj);
+-		if ((nj - nLo) < (nHi - ni))
+-		{
+-			if (nLo < nj) QuickSort(nLo, nj, pSortArray);
+-			if (ni < nHi) QuickSort(ni, nHi, pSortArray);
+-		}
+-		else
+-		{
+-			if (ni < nHi) QuickSort(ni, nHi, pSortArray);
+-			if (nLo < nj) QuickSort(nLo, nj, pSortArray);
+-		}
+-	}
++    // If pIndexOrder is not NULL, we assume rSortArray.size() == pIndexOrder->size().
++
++    using ::std::swap;
++
++    if (nHi - nLo == 1)
++    {
++        if (rSortArray[nLo] > rSortArray[nHi])
++        {
++            swap(rSortArray[nLo],  rSortArray[nHi]);
++            if (pIndexOrder)
++                swap(pIndexOrder->at(nLo), pIndexOrder->at(nHi));
++        }
++        return;
++    }
++
++    long ni = nLo;
++    long nj = nHi;
++    do
++    {
++        while (ni <= nHi && rSortArray[ni]  < rSortArray[nLo]) ni++;
++        while (nj >= nLo && rSortArray[nLo] < rSortArray[nj])  nj--;
++        if (ni <= nj)
++        {
++            if (ni != nj)
++            {
++                swap(rSortArray[ni],  rSortArray[nj]);
++                if (pIndexOrder)
++                    swap(pIndexOrder->at(ni), pIndexOrder->at(nj));
++            }
++
++            ++ni;
++            --nj;
++        }
++    }
++    while (ni < nj);
++
++    if ((nj - nLo) < (nHi - ni))
++    {
++        if (nLo < nj) lcl_QuickSort(nLo, nj, rSortArray, pIndexOrder);
++        if (ni < nHi) lcl_QuickSort(ni, nHi, rSortArray, pIndexOrder);
++    }
++    else
++    {
++        if (ni < nHi) lcl_QuickSort(ni, nHi, rSortArray, pIndexOrder);
++        if (nLo < nj) lcl_QuickSort(nLo, nj, rSortArray, pIndexOrder);
++    }
++}
++
++void ScInterpreter::QuickSort(vector<double>& rSortArray, vector<long>* pIndexOrder)
++{
++    size_t n = rSortArray.size();
++
++    if (pIndexOrder)
++    {
++        pIndexOrder->clear();
++        pIndexOrder->reserve(n);
++        for (size_t i = 0; i < n; ++i)
++            pIndexOrder->push_back(static_cast<long>(i));
++    }
++
++    if (n < 2)
++        return;
++
++    size_t nValCount = rSortArray.size();
++    for (size_t i = 0; (i + 4) <= nValCount-1; i += 4)
++    {
++        size_t nInd = rand() % (int) (nValCount-1);
++        ::std::swap( rSortArray[i], rSortArray[nInd]);
++        if (pIndexOrder)
++            ::std::swap( pIndexOrder->at(i), pIndexOrder->at(nInd));
++    }
++
++    lcl_QuickSort(0, n-1, rSortArray, pIndexOrder);
+ }
+ 
+ void ScInterpreter::ScRank()
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr5.cxx sc/source/core/tool/interpr5.cxx
+--- sc.clean/source/core/tool/interpr5.cxx	2008-04-20 15:27:24.000000000 -0400
++++ sc/source/core/tool/interpr5.cxx	2008-04-20 16:07:06.000000000 -0400
+@@ -63,6 +63,10 @@
+ #include "globstr.hrc"
+ #include "cellkeytranslator.hxx"
+ 
++#include <vector>
++
++using ::std::vector;
++
+ const double fInvEpsilon = 1.0E-7;
+ 
+ // -----------------------------------------------------------------------
+@@ -2272,51 +2276,52 @@ void ScInterpreter::ScFrequency()
+ 	if ( !MustHaveParamCount( GetByte(), 2 ) )
+ 		return;
+ 
+-	double* pSortArray1 = NULL;
+-	SCSIZE nSize1 = 0;
+-	GetSortArray(1, &pSortArray1, nSize1);
+-	if (nGlobalError)
+-		SetNoValue();
+-	double* pSortArray2 = NULL;
+-	SCSIZE nSize2 = 0;
+-	GetSortArray(1, &pSortArray2, nSize2);
+-	if (!pSortArray2 || nSize2 == 0 || nGlobalError)
+-	{
+-		if (pSortArray1)
+-			delete pSortArray1;
+-		if (pSortArray2)
+-			delete pSortArray2;
+-		SetNoValue();
+-		return;
+-	}
+-	ScMatrixRef pResMat = GetNewMat( 1, nSize1+1);
+-	if (!pResMat)
+-	{
+-		if (pSortArray1)
+-			delete pSortArray1;
+-		if (pSortArray2)
+-			delete pSortArray2;
+-		PushError();
+-		return;
+-	}
++    vector<double>  aBinArray;
++    vector<long>    aBinIndexOrder;
++
++    GetSortArray(1, aBinArray, &aBinIndexOrder);
++    SCSIZE nBinSize = aBinArray.size();
++    if (nGlobalError)
++    {
++        SetNoValue();
++        return;
++    }
++
++    vector<double>  aDataArray;
++    GetSortArray(1, aDataArray);
++    SCSIZE nDataSize = aDataArray.size();
++
++    if (aDataArray.empty() || nGlobalError)
++    {
++        SetNoValue();
++        return;
++    }
++    ScMatrixRef pResMat = GetNewMat(1, nBinSize+1);
++    if (!pResMat)
++    {
++        PushError();
++        return;
++    }
++
++    if (nBinSize != aBinIndexOrder.size())
++    {
++        PushError();
++        return;
++    }
+ 
+ 	SCSIZE j;
+ 	SCSIZE i = 0;
+-	for (j = 0; j < nSize1; j++)
++    for (j = 0; j < nBinSize; ++j)
+ 	{
+ 		SCSIZE nCount = 0;
+-		while (i < nSize2 && pSortArray2[i] <= pSortArray1[j])
+-		{
+-			nCount++;
+-			i++;
+-		}
+-        pResMat->PutDouble((double) nCount, j);
+-	}
+-    pResMat->PutDouble((double) (nSize2-i), j);
+-	if (pSortArray1)
+-		delete pSortArray1;
+-	if (pSortArray2)
+-		delete pSortArray2;
++        while (i < nDataSize && aDataArray[i] <= aBinArray[j])
++        {
++            ++nCount;
++            ++i;
++        }
++        pResMat->PutDouble(static_cast<double>(nCount), aBinIndexOrder[j]);
++    }
++    pResMat->PutDouble(static_cast<double>(nDataSize-i), j);
+ 	PushMatrix(pResMat);
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ark-xmlhelp-use-libxslt-from-system.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ark-xmlhelp-use-libxslt-from-system.diff
@@ -0,0 +1,448 @@
+--- xmlhelp/util/makefile.mk.xslt~	2006-01-05 18:18:15.000000000 +0000
++++ xmlhelp/util/makefile.mk	2006-02-16 16:05:55.000000000 +0000
+@@ -62,6 +62,11 @@
+ .ENDIF # wnt
+ .ENDIF # sablot3rdlib
+ 
++.IF "$(SYSTEM_LIBXSLT)" == "YES"
++PKGCONFIG_MODULES=libxslt
++.INCLUDE: pkg_config.mk
++.ENDIF
++
+ # --- Shared-Library ---------------------------------------------------
+ 
+ SHL1TARGET=$(TARGET)$(UCP_VERSION)
+@@ -75,12 +80,16 @@
+ 	$(CPPULIB)               \
+ 	$(SALLIB)                \
+ 	$(VOSLIB)                \
+-	$(SABLOT3RDLIB)          \
+ 	$(EXPATASCII3RDLIB)      \
+ 	$(UCBHELPERLIB)          \
+ 	$(SVLLIB)             \
+ 	$(BERKELEYLIB)
+-#	$(BERKELEYCPPLIB)
++
++.IF "$(SYSTEM_LIBXSLT)" == "YES"
++	SHL1STDLIBS+=$(PKGCONFIG_LIBS)
++.ELSE
++	SHL1STDLIBS+=$(SABLOT3RDLIB)
++.ENDIF
+ 
+ SHL1LIBS =                       \
+ 	$(SLB)$/jaqe.lib         \
+--- xmlhelp/source/cxxhelp/provider/makefile.mk.xslt~	2005-09-09 12:19:42.000000000 +0000
++++ xmlhelp/source/cxxhelp/provider/makefile.mk	2006-02-16 16:05:55.000000000 +0000
+@@ -52,6 +52,12 @@
+ CFLAGS+=-DSYSTEM_DB -I$(DB_INCLUDES)
+ .ENDIF
+ 
++.IF "$(SYSTEM_LIBXSLT)" == "YES"
++PKGCONFIG_MODULES=libxslt
++.INCLUDE: pkg_config.mk
++CFLAGS+=-DSYSTEM_LIBXSLT
++.ENDIF
++
+ .IF "$(SYSTEM_SABLOT)" == "YES"
+ CFLAGS+=-DSYSTEM_SABLOT
+ .ENDIF
+--- xmlhelp/source/cxxhelp/provider/urlparameter.cxx.xslt~	2006-02-16 15:59:10.000000000 +0000
++++ xmlhelp/source/cxxhelp/provider/urlparameter.cxx	2006-02-16 16:05:55.000000000 +0000
+@@ -61,6 +61,11 @@
+ #ifndef _RTL_URI_HXX_
+ #include <rtl/uri.hxx>
+ #endif
++#ifdef SYSTEM_LIBXSLT
++#include <libxslt/xslt.h>
++#include <libxslt/transform.h>
++#include <libxslt/xsltutils.h>
++#else
+ #ifdef SYSTEM_SABLOT
+ #include <sablot.h>
+ #include <shandler.h>
+@@ -72,6 +77,7 @@
+ #include <sablot/shandler.h>
+ #endif
+ #endif
++#endif
+ #ifndef BERKELEYDBPROXY_DB_HXX_
+ #include "db.hxx"
+ #endif
+@@ -727,8 +733,7 @@
+ 	return ret;
+ }
+ 
+-
+-
++#ifndef SYSTEM_LIBXSLT
+ 
+ ////////////////////////////////////////////////////////////////////////////////
+ //                           InutStreamTransformerImpl                        //
+@@ -762,6 +767,7 @@
+ 						SablotHandle processor_,
+ 						int handle );
+ 
++#endif
+ 
+ struct UserData {
+ 	
+@@ -779,7 +785,124 @@
+ 	URLParameter*                       m_pInitial;
+ };
+ 
++#ifdef SYSTEM_LIBXSLT
++UserData *ugblData = 0;
++
++static int
++pkgMatch(const char * URI) {
++    if ((URI != NULL) && !strncmp(URI, "vnd.sun.star.pkg", 16))
++        return 1;
++    return 0;
++}
++
++static int
++helpMatch(const char * URI) {
++    if ((URI != NULL) && !strncmp(URI, "vnd.sun.star.help", 17))
++        return 1;
++    return 0;
++}
++
++static void *
++pkgOpen(const char * URI) {
++	rtl::OUString language,jar,path;
++
++	if( ugblData->m_pInitial->get_eid().getLength() )
++		return (void*)(new Reference< XHierarchicalNameAccess >);
++	else
++	{
++		jar = ugblData->m_pInitial->get_jar();
++		language = ugblData->m_pInitial->get_language();
++		path = ugblData->m_pInitial->get_path();
++	}
++            
++	Reference< XHierarchicalNameAccess > xNA(ugblData->m_pDatabases->jarFile( jar,language ));
++
++    Reference< XInputStream > xInputStream;
++
++	if( xNA.is() )
++	{
++		try
++		{
++			Any aEntry = xNA->getByHierarchicalName( path );
++			Reference< XActiveDataSink > xSink;
++			if( ( aEntry >>= xSink ) && xSink.is() )
++				xInputStream = xSink->getInputStream();
++		}
++		catch ( NoSuchElementException & )
++		{
++		}
++	}
++	
++	if( xInputStream.is() )
++	{
++		return new Reference<XInputStream>(xInputStream);
++	}
++	return 0;
++}
++
++static void *
++helpOpen(const char * URI) {
++	rtl::OUString language,jar,path;
+ 
++	URLParameter urlpar( rtl::OUString::createFromAscii( URI ),
++						 ugblData->m_pDatabases );
++		
++	jar = urlpar.get_jar();
++	language = urlpar.get_language();
++	path = urlpar.get_path();
++
++	Reference< XHierarchicalNameAccess > xNA(ugblData->m_pDatabases->jarFile( jar,language ));
++
++    Reference< XInputStream > xInputStream;
++
++	if( xNA.is() )
++	{
++		try
++		{
++			Any aEntry = xNA->getByHierarchicalName( path );
++			Reference< XActiveDataSink > xSink;
++			if( ( aEntry >>= xSink ) && xSink.is() )
++				xInputStream = xSink->getInputStream();
++		}
++		catch ( NoSuchElementException & )
++		{
++		}
++	}
++	
++	if( xInputStream.is() )
++		return new Reference<XInputStream>(xInputStream);
++	return 0;
++}
++
++static int
++helpRead(void * context, char * buffer, int len) {
++	Reference< XInputStream > *pRef = (Reference< XInputStream >*)context;
++
++	Sequence< sal_Int8 > aSeq;
++	len = (*pRef)->readBytes( aSeq,len);
++	memcpy(buffer, aSeq.getConstArray(), len);
++
++	return len;
++}
++
++static int
++pkgRead(void * context, char * buffer, int len) {
++	if( ugblData->m_pInitial->get_eid().getLength() )
++	{
++		ugblData->m_pDatabases->popupDocument( ugblData->m_pInitial,&buffer,&len);
++		return len;
++	}
++	else
++		return helpRead(context, buffer, len);
++}
++
++static int
++uriClose(void * context) {
++	Reference< XInputStream > *pRef = (Reference< XInputStream >*)context;
++	delete pRef;
++    return 0;
++}
++#endif
+ 
+ InputStreamTransformer::InputStreamTransformer( URLParameter* urlParam,
+ 												Databases*    pDatabases,
+@@ -806,6 +929,7 @@
+ 	}
+ 	else
+ 	{
++#ifndef SYSTEM_LIBXSLT
+ 		SchemeHandler schemeHandler;
+ 		schemeHandler.getAll = schemehandlergetall;
+ 		schemeHandler.freeMemory = schemehandlerfreememory;
+@@ -813,6 +937,7 @@
+ 		schemeHandler.get = schemehandlerget;
+ 		schemeHandler.put = schemehandlerput;
+ 		schemeHandler.close = schemehandlerclose;
++#endif
+ 	
+ 		UserData userData( this,urlParam,pDatabases );
+ 	
+@@ -823,77 +948,78 @@
+         int last = 0;
+         
+ 		parString[last++] = "Program";
+-		parString[last++] = urlParam->getByName( "Program" );
++		parString[last++] = rtl::OString('\'') + urlParam->getByName( "Program" ) + rtl::OString('\'');
+ 		parString[last++] = "Database";
+-		parString[last++] = urlParam->getByName( "DatabasePar" );
++		parString[last++] = rtl::OString('\'') + urlParam->getByName( "DatabasePar" ) + rtl::OString('\'');
+ 		parString[last++] = "Id";
+-		parString[last++] = urlParam->getByName( "Id" );
++		parString[last++] = rtl::OString('\'') + urlParam->getByName( "Id" ) + rtl::OString('\'');
+ 		parString[last++] = "Path";
+-		parString[last++] = urlParam->getByName( "Path" );
++		parString[last++] = rtl::OString('\'') + urlParam->getByName( "Path" ) + rtl::OString('\'');
+ 		parString[last++] = "Language";
+-		parString[last++] = urlParam->getByName( "Language" );
++		parString[last++] = rtl::OString('\'') + urlParam->getByName( "Language" ) + rtl::OString('\'');
+ 		parString[last++] = "System";
+-		parString[last++] = urlParam->getByName( "System" );
++		parString[last++] = rtl::OString('\'') + urlParam->getByName( "System" ) + rtl::OString('\'');
+ 		parString[last++] = "productname";
+-		parString[last++] = rtl::OString(
++		parString[last++] = rtl::OString('\'') + rtl::OString(
+             pDatabases->getProductName().getStr(),
+             pDatabases->getProductName().getLength(),
+-            RTL_TEXTENCODING_UTF8 );
++            RTL_TEXTENCODING_UTF8 ) + rtl::OString('\'');
+ 		parString[last++] = "productversion";
+-		parString[last++] = 
+-            rtl::OString( pDatabases->getProductVersion().getStr(),
++		parString[last++] = rtl::OString('\'') + 
++            rtl::OString(  pDatabases->getProductVersion().getStr(),
+                           pDatabases->getProductVersion().getLength(),
+-                          RTL_TEXTENCODING_UTF8 );
++                          RTL_TEXTENCODING_UTF8 ) + rtl::OString('\'');
+ 
+         parString[last++] = "imgrepos";
+-        parString[last++] = pDatabases->getImagesZipFileURL();
++        parString[last++] = rtl::OString('\'') + pDatabases->getImagesZipFileURL() + rtl::OString('\'');
+         parString[last++] = "hp";
+-        parString[last++] = urlParam->getByName( "HelpPrefix" );
++        parString[last++] = rtl::OString('\'') + urlParam->getByName( "HelpPrefix" ) + rtl::OString('\'');
+         
+         if( parString[last-1].getLength() )
+         {
+             parString[last++] = "sm";
+-            parString[last++] = "vnd.sun.star.help%3A%2F%2F";
++            parString[last++] = "'vnd.sun.star.help%3A%2F%2F'";
+             parString[last++] = "qm";
+-            parString[last++] = "%3F";
++            parString[last++] = "'%3F'";
+             parString[last++] = "es";
+-            parString[last++] = "%3D";
++            parString[last++] = "'%3D'";
+             parString[last++] = "am";
+-            parString[last++] = "%26";
++            parString[last++] = "'%26'";
+             parString[last++] = "cl";
+-            parString[last++] = "%3A";
++            parString[last++] = "'%3A'";
+             parString[last++] = "sl";
+-            parString[last++] = "%2F";
++            parString[last++] = "'%2F'";
+             parString[last++] = "hm";
+-            parString[last++] = "%23";
++            parString[last++] = "'%23'";
+             parString[last++] = "cs";
+-            parString[last++] = "css";
++            parString[last++] = "'css'";
+ 
+             parString[last++] = "vendorname";
+-            parString[last++] = 
++            parString[last++] = rtl::OString('\'') + 
+                 rtl::OString( pDatabases->getVendorName().getStr(),
+                               pDatabases->getVendorName().getLength(),
+-                              RTL_TEXTENCODING_UTF8 );
++                              RTL_TEXTENCODING_UTF8 ) + rtl::OString('\'');
+             parString[last++] = "vendorversion";
+-            parString[last++] = 
++            parString[last++] = rtl::OString('\'') + 
+                 rtl::OString( pDatabases->getVendorVersion().getStr(),
+                               pDatabases->getVendorVersion().getLength(),
+-                              RTL_TEXTENCODING_UTF8 );
++                              RTL_TEXTENCODING_UTF8 ) + rtl::OString('\'');
+             parString[last++] = "vendorshort";
+-            parString[last++] = 
++            parString[last++] = rtl::OString('\'') + 
+                 rtl::OString( pDatabases->getVendorShort().getStr(),
+                               pDatabases->getVendorShort().getLength(),
+-                              RTL_TEXTENCODING_UTF8 );
++                              RTL_TEXTENCODING_UTF8 ) + rtl::OString('\'');
+         }
+         
+ 		for( int i = 0; i < last; ++i )
+ 			parameter[i] = parString[i].getStr();
+ 		parameter[last] = 0;
+ 		
+-	
++#ifndef SYSTEM_LIBXSLT	
+ 		SablotHandle p;
+ 		SablotCreateProcessor(&p);
+ 		SablotRegHandler( p,HLR_SCHEME,&schemeHandler,(void*)(&userData) );
++#endif
+ 		rtl::OUString xslURL = pDatabases->getInstallPathAsURL/*WithOutEncoding*/();
+ 		
+ 		rtl::OString xslURLascii( 
+@@ -902,6 +1028,31 @@
+ 			RTL_TEXTENCODING_ASCII_US/*osl_getThreadTextEncoding()*/);
+ 		xslURLascii += "main_transform.xsl";
+ 
++#ifdef SYSTEM_LIBXSLT
++		ugblData = &userData;
++
++		xmlRegisterInputCallbacks(pkgMatch, pkgOpen, pkgRead, uriClose);
++		xmlRegisterInputCallbacks(helpMatch, helpOpen, helpRead, uriClose);
++
++		xsltStylesheetPtr cur = 
++			xsltParseStylesheetFile((const xmlChar *)xslURLascii.getStr());
++
++		xmlDocPtr doc = xmlParseFile("vnd.sun.star.pkg:/");
++
++		xmlDocPtr res = xsltApplyStylesheet(cur, doc, parameter);
++	if (res) {
++		xmlChar *doc_txt_ptr=0;
++		int doc_txt_len;
++		int nResult = xsltSaveResultToString(&doc_txt_ptr, &doc_txt_len, res, cur);
++		addToBuffer((const char*)doc_txt_ptr, doc_txt_len);
++		xmlFree(doc_txt_ptr);
++	}
++		xmlPopInputCallbacks();
++		xmlPopInputCallbacks();
++		xmlFreeDoc(res);
++		xmlFreeDoc(doc);
++		xsltFreeStylesheet(cur);
++#else
+ 		const char aVndPkgConstStr[] = "vnd.sun.star.pkg:/";
+ 		const char aVndResConstStr[] = "vnd.sun.star.resultat:/";
+ 		char aVndPkgStr[ sizeof( aVndPkgConstStr ) ];
+@@ -919,6 +1070,7 @@
+ #endif
+ 		 
+ 		SablotDestroyProcessor( p );
++#endif
+ 	}
+ }
+ 	
+@@ -1064,8 +1216,7 @@
+ }
+ 
+ 
+-
+-
++#ifndef SYSTEM_LIBXSLT
+ 
+ /**
+  *    getAll: open the URI and return the whole string
+@@ -1238,7 +1389,4 @@
+ 	return 0;
+ }
+ 
+-
+-
+-
+-
++#endif
+--- config_office/set_soenv.in.xslt~	2006-02-16 15:59:18.000000000 +0000
++++ config_office/set_soenv.in	2006-02-16 16:06:18.000000000 +0000
+@@ -1802,6 +1802,7 @@
+ ToFile( "DB_INCLUDES",       "@DB_INCLUDES@",      "e" );
+ ToFile( "DB_JAR",            "@DB_JAR@",           "e" );
+ ToFile( "DB_JAR_SO",         "@DB_JAR_SO@",        "e" );
++ToFile( "SYSTEM_LIBXSLT",    "@SYSTEM_LIBXSLT@",   "e" );
+ ToFile( "SYSTEM_HSQLDB",     "@SYSTEM_HSQLDB@",    "e" );
+ ToFile( "HSQLDB_JAR",        "@HSQLDB_JAR@",       "e" );
+ ToFile( "SYSTEM_BSH",        "@SYSTEM_BSH@",       "e" );
+--- config_office/configure.in.xslt~	2006-02-16 15:59:18.000000000 +0000
++++ config_office/configure.in	2006-02-16 16:05:55.000000000 +0000
+@@ -319,6 +319,9 @@
+ AC_ARG_WITH(system-sablot,
+ [  --with-system-sablot    Use sablot already on system
+ ],,)
++AC_ARG_WITH(system-libxslt,
++[  --with-system-libxslt   Use libxslt already on system
++],,)
+ AC_ARG_WITH(system-odbc,
+ [  --with-system-odbc-headers     Use the odbc headers already on system
+ ],,)
+@@ -3089,6 +3092,22 @@
+ AC_SUBST(XT_JAR)
+ 
+ dnl ===================================================================
++dnl Check for system libxslt
++dnl ===================================================================
++AC_MSG_CHECKING([which libxslt to use])
++if test -n "$with_system_libxslt" && test "$with_system_libxslt" != "no"; then
++   AC_MSG_RESULT([external])
++   SYSTEM_LIBXSLT=YES
++
++   PKG_CHECK_MODULES( LIBXSLT, libxslt )
++else
++   AC_MSG_RESULT([none])
++   SYSTEM_LIBXSLT=NO
++fi
++AC_SUBST(SYSTEM_LIBXSLT)
++
++if test "$SYSTEM_LIBXSLT" == "NO"; then
++dnl ===================================================================
+ dnl Check for system sablot
+ dnl ===================================================================
+ AC_MSG_CHECKING([which sablot to use])
+@@ -3111,6 +3130,7 @@
+ fi
+ AC_SUBST(SYSTEM_SABLOT)
+ AC_SUBST(SABLOT_LIBS)
++fi
+ 
+ dnl ===================================================================
+ dnl Check for system curl
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-bridges.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-bridges.diff
@@ -0,0 +1,73 @@
+--- bridges/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ bridges/prj/tests.lst	2007-09-07 10:34:48.000000000 +0200
+@@ -0,0 +1,9 @@
++#does not build: br   bridges\test\com\sun\star\lib\uno\bridges\java_remote nmake - all br_test_com_sun_star_lib_uno_bridges_java_remote NULL
++#does not build: br   bridges\test\com\sun\star\lib                      nmake - all br_test_com_sun_star_lib NULL
++br   bridges\test                                       nmake - all br_test NULL
++br   bridges\test\inter_libs_exc                        nmake - all br_test_inter_libs_exc NULL
++#does not build: br   bridges\test\java_uno\acquire                      nmake - all br_test_java_uno_acquire NULL
++#does not build: br   bridges\test\java_uno\any                          nmake - all br_test_java_uno_any NULL
++#does not build: br   bridges\test\java_uno\equals                       nmake - all br_test_java_uno_equals NULL
++#depends on javaunohelper: br   bridges\test\java_uno\nativethreadpool             nmake - all br_test_java_uno_nativethreadpool NULL
++#does not build: br   bridges\test\performance                           nmake - all br_test_performance NULL
+--- bridges/test/java_uno/nativethreadpool/Relay.java	2005-09-08 01:00:52.000000000 +0200
++++ bridges/test/java_uno/nativethreadpool/Relay.java	2007-09-07 10:32:08.000000000 +0200
+@@ -106,7 +106,7 @@ public final class Relay implements XRel
+         }
+     }
+ 
+-    public int get() {
++    public long get() {
+         return source.get();
+     }
+ 
+--- bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx	2006-09-16 18:05:35.000000000 +0200
++++ bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx	2007-09-07 10:28:34.000000000 +0200
+@@ -82,7 +82,7 @@ private:
+     virtual sal_Int32 SAL_CALL run(css::uno::Sequence< rtl::OUString > const &)
+         throw (css::uno::RuntimeException);
+ 
+-    virtual sal_Int32 SAL_CALL get() throw (css::uno::RuntimeException);
++    virtual sal_Int64 SAL_CALL get() throw (css::uno::RuntimeException);
+ 
+     css::uno::Reference< css::uno::XComponentContext > context;
+     osl::ThreadData data;
+@@ -150,8 +150,8 @@ sal_Int32 Client::run(css::uno::Sequence
+     return success ? 0 : 1;
+ }
+ 
+-sal_Int32 Client::get() throw (css::uno::RuntimeException) {
+-    return reinterpret_cast< sal_Int32 >(data.getData());
++sal_Int64 Client::get() throw (css::uno::RuntimeException) {
++    return static_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(data.getData()));
+ }
+ 
+ css::uno::Reference< css::uno::XInterface > SAL_CALL create(
+--- bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx	2006-09-16 18:05:51.000000000 +0200
++++ bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx	2007-09-07 10:30:20.000000000 +0200
+@@ -74,12 +74,12 @@ public:
+ private:
+     virtual ~Server() {}
+ 
+-    virtual sal_Int32 SAL_CALL get() throw (css::uno::RuntimeException);
++    virtual sal_Int64 SAL_CALL get() throw (css::uno::RuntimeException);
+ 
+     css::uno::Reference< css::uno::XComponentContext > context;
+ };
+ 
+-sal_Int32 Server::get() throw (css::uno::RuntimeException) {
++sal_Int64 Server::get() throw (css::uno::RuntimeException) {
+     css::uno::Reference< css::lang::XMultiComponentFactory > factory(
+         context->getServiceManager());
+     if (!factory.is()) {
+--- bridges/test/java_uno/nativethreadpool/types.idl	2005-09-08 01:02:09.000000000 +0200
++++ bridges/test/java_uno/nativethreadpool/types.idl	2007-09-07 10:27:57.000000000 +0200
+@@ -38,7 +38,7 @@
+ module test { module javauno { module nativethreadpool {
+ 
+ interface XSource: com::sun::star::uno::XInterface {
+-    long get();
++    hyper get();
+ };
+ 
+ interface XRelay: com::sun::star::uno::XInterface {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-package.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-package.diff
@@ -0,0 +1,13 @@
+--- package/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ package/prj/tests.lst	2007-09-07 14:32:15.000000000 +0200
+@@ -0,0 +1,2 @@
++pk   package\qa\ofopxmlstorages                         nmake - all pk_qa_ofopxmlstorages NULL
++pk   package\qa\storages                                nmake - all pk_qa_storages NULL
+--- package/prj/build.lst	2006-10-30 10:27:12.000000000 +0100
++++ package/prj/build.lst	2007-09-07 21:57:29.000000000 +0200
+@@ -1,4 +1,4 @@
+-pk	package	:	cppu cppuhelper comphelper ucbhelper sal ZLIB:zlib NULL
++pk	package	:	cppu cppuhelper comphelper ucbhelper sal ZLIB:zlib QADEVOOO:qadevOOo NULL
+ pk	package									usr1	-	all	pk_mkout NULL
+ pk	package\inc								nmake	-	all	pk_inc NULL
+ pk	package\source\zipapi					nmake	-	all	pk_zipapi pk_inc NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-cppu.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-cppu.diff
@@ -0,0 +1,25 @@
+--- cppu/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ cppu/prj/tests.lst	2007-09-07 14:38:11.000000000 +0200
+@@ -0,0 +1,22 @@
++cu   cppu\qa                                            nmake - all cu_qa NULL
++
++# older tests:
++cu   cppu\test\AffineBridge                             nmake - all cu_test_AffineBridge cu_util NULL
++#depends on cppuhelper: cu   cppu\test                                          nmake - all cu_test cu_util NULL
++cu   cppu\test\AntiEnvGuard                             nmake - all cu_test_AntiEnvGuard cu_util NULL
++cu   cppu\test\EnvDcp                                   nmake - all cu_test_EnvDcp cu_util NULL
++cu   cppu\test\EnvGuard                                 nmake - all cu_test_EnvGuard cu_util NULL
++cu   cppu\test\EnvStack                                 nmake - all cu_test_EnvStack cu_util NULL
++cu   cppu\test\EnvStack_tester                          nmake - all cu_test_EnvStack_tester cu_util cu_util NULL
++#depends on cppuhelper: cu   cppu\test\FreeReference                            nmake - all cu_test_FreeReference cu_test_ObjectFactory cu_util NULL
++#depends on cppuhelper: cu   cppu\test\Map                                      nmake - all cu_test_Map cu_util NULL
++#depends on cppuhelper: cu   cppu\test\ObjectFactory                            nmake - all cu_test_ObjectFactory cu_util NULL
++#depends on cppuhelper: cu   cppu\test\Shield                                   nmake - all cu_test_Shield cu_util NULL
++cu   cppu\test\UnsafeBridge                             nmake - all cu_test_UnsafeBridge cu_util NULL
++#depends on cppuhelper: cu   cppu\test\alignment                                nmake - all cu_test_alignment cu_util NULL
++#depends on cppuhelper: cu   cppu\test\cascade_mapping                          nmake - all cu_test_cascade_mapping cu_util NULL
++cu   cppu\test\env_substs                               nmake - all cu_test_env_substs cu_util NULL
++#depends on cppuhelper: cu   cppu\test\env_tester                               nmake - all cu_test_env_tester cu_util NULL
++#depends on cppuhelper: cu   cppu\test\mapping_tester                           nmake - all cu_test_mapping_tester cu_util NULL
++cu   cppu\test\purpenvhelper                            nmake - all cu_test_purpenvhelper cu_util NULL
++cu   cppu\test\purpose_envs                             nmake - all cu_test_purpose_envs cu_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/tools-urlobj-smb-scheme-patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/tools-urlobj-smb-scheme-patch.diff
@@ -0,0 +1,89 @@
+--- tools/inc/tools/urlobj.hxx	2006-07-20 18:09:51.000000000 +0200
++++ tools/inc/tools/urlobj.hxx	2007-06-14 11:36:58.000000000 +0200
+@@ -1557,6 +1557,9 @@ private:
+ 
+     TOOLS_DLLPRIVATE static bool scanIPv6reference(
+         sal_Unicode const *& rBegin, sal_Unicode const * pEnd);
++
++private:
++    void changeScheme(INetProtocol eTargetScheme);
+ };
+ 
+ // static
+--- tools/source/fsys/urlobj.cxx.old	2006-09-17 02:54:24.000000000 +0200
++++ tools/source/fsys/urlobj.cxx	2007-06-14 11:36:58.000000000 +0200
+@@ -1460,10 +1460,48 @@ bool INetURLObject::setAbsURIRef(rtl::OU
+ 
+ 	m_aAbsURIRef = aSynAbsURIRef;
+ 
++	// At this point references of type "\\server\paths" have
++	// been converted to file:://server/path".
++#ifdef LINUX
++	if (m_eScheme==INET_PROT_FILE && !m_aHost.isEmpty()) {
++	    // Change "file:://server/path" URIs to "smb:://server/path" on
++	    // Linux
++	    // Leave "file::path" URIs unchanged.
++	    changeScheme(INET_PROT_SMB);	   
++	}
++#endif
++
++#ifdef WIN
++	if (m_eScheme==INET_PROT_SMB) {
++	    // Change "smb://server/path" URIs to "file://server/path"
++	    // URIs on Windows, since Windows doesn't understand the
++	    // SMB scheme.
++	    changeScheme(INET_PROT_FILE);
++	}
++#endif
++
+ 	return true;
+ }
+ 
+ //============================================================================
++void INetURLObject::changeScheme(INetProtocol eTargetScheme) {
++    ::rtl::OUString aTmpStr=m_aAbsURIRef.makeStringAndClear();
++    int oldSchemeLen=strlen(getSchemeInfo().m_pScheme);
++    m_eScheme=eTargetScheme;	   	   
++    int newSchemeLen=strlen(getSchemeInfo().m_pScheme);
++    m_aAbsURIRef.appendAscii(getSchemeInfo().m_pScheme);
++    m_aAbsURIRef.append(aTmpStr.getStr()+oldSchemeLen);
++    int delta=newSchemeLen-oldSchemeLen;
++    m_aUser+=delta;
++    m_aAuth+=delta;
++    m_aHost+=delta;
++    m_aPort+=delta;
++    m_aPath+=delta;
++    m_aQuery+=delta;
++    m_aFragment+=delta;
++}
++
++//============================================================================
+ bool INetURLObject::convertRelToAbs(rtl::OUString const & rTheRelURIRef,
+ 									bool bOctets,
+ 									INetURLObject & rTheAbsURIRef,
+--- sw/source/filter/ww8/wrtw8nds.cxx	26 Jun 2007 10:44:02 -0000	1.100
++++ sw/source/filter/ww8/wrtw8nds.cxx	8 Oct 2007 10:18:08 -0000
+@@ -1020,7 +1020,7 @@
+     SwWW8Writer::WriteLong( *rWrt.pDataStrm, nFlag );
+ 
+     INetProtocol eProto = aURL.GetProtocol();
+-    if (eProto == INET_PROT_FILE)
++    if (eProto == INET_PROT_FILE || eProto == INET_PROT_SMB)
+     {
+ // version 1 (for a document)
+ 
+@@ -1036,7 +1036,13 @@
+             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+         };
+ 
+-        sURL = aURL.PathToFileName();
++	if (eProto == INET_PROT_SMB) { // #n261623# Convert smb notation to \\
++	    sURL = aURL.GetMainURL(INetURLObject::NO_DECODE);
++	    sURL = String(sURL.GetBuffer()+strlen("smb:"));
++	    sURL.SearchAndReplaceAll('/', '\\');
++	} else {
++	    sURL = aURL.PathToFileName();
++	}
+ 
+         rWrt.pDataStrm->Write( MAGIC_C, sizeof(MAGIC_C) );
+         SwWW8Writer::WriteLong( *rWrt.pDataStrm, sURL.Len()+1 );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/binfilter-stl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/binfilter-stl.diff
@@ -0,0 +1,44 @@
+--- binfilter/bf_svx/source/svdraw/svx_svdouno.cxx.orig	2006-07-12 12:48:54.000000000 +0200
++++ binfilter/bf_svx/source/svdraw/svx_svdouno.cxx	2006-07-12 12:50:32.000000000 +0200
+@@ -746,7 +746,7 @@
+ /*N*/         SdrViewIter aIter( this );
+ /*N*/ 	    for ( SdrView* pView = aIter.FirstView(); pView; pView = aIter.NextView() )
+ /*N*/         {
+-/*N*/             ::std::set< SdrView* >::const_iterator aPrevPos = aPreviouslyVisible.find( pView );
++/*N*/             ::std::set< SdrView* >::iterator aPrevPos = aPreviouslyVisible.find( pView );
+ /*N*/             if ( aPreviouslyVisible.end() != aPrevPos )
+ /*N*/             {   // in pView, we were visible _before_ the layer change, and are
+ /*N*/                 // visible _after_ the layer change, too
+--- binfilter/bf_xmloff/source/core/xmloff_nmspmap.cxx.orig	2006-07-12 13:16:27.000000000 +0200
++++ binfilter/bf_xmloff/source/core/xmloff_nmspmap.cxx	2006-07-12 13:17:43.000000000 +0200
+@@ -99,7 +99,12 @@
+ 
+ int SvXMLNamespaceMap::operator ==( const SvXMLNamespaceMap& rCmp ) const
+ {
++#if STLPORT_VERSION >= 500
++//FIXME: STLport5 alternative map compare?
++	return static_cast < int > (aNameHash.size() == rCmp.aNameHash.size());
++#else
+ 	return static_cast < int > (aNameHash == rCmp.aNameHash);
++#endif
+ }
+ 
+ sal_uInt16 SvXMLNamespaceMap::_Add( const OUString& rPrefix, const OUString &rName, sal_uInt16 nKey )
+--- binfilter/bf_xmloff/source/style/xmloff_xmlnumfe.cxx.orig	2006-07-12 13:23:46.000000000 +0200
++++ binfilter/bf_xmloff/source/style/xmloff_xmlnumfe.cxx	2006-07-12 13:24:42.000000000 +0200
+@@ -172,13 +172,13 @@
+ 
+ sal_Bool SvXMLNumUsedList_Impl::IsUsed( sal_uInt32 nKey ) const
+ {
+-	SvXMLuInt32Set::iterator aItr = aUsed.find(nKey);
++	SvXMLuInt32Set::const_iterator aItr = aUsed.find(nKey);
+ 	return (aItr != aUsed.end());
+ }
+ 
+ sal_Bool SvXMLNumUsedList_Impl::IsWasUsed( sal_uInt32 nKey ) const
+ {
+-	SvXMLuInt32Set::iterator aItr = aWasUsed.find(nKey);
++	SvXMLuInt32Set::const_iterator aItr = aWasUsed.find(nKey);
+ 	return (aItr != aWasUsed.end());
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-dictionary.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-dictionary.diff
@@ -0,0 +1,22 @@
+--- extras/source/wordbook/makefile.mk.old	2005-09-08 23:20:19.000000000 +0200
++++ extras/source/wordbook/makefile.mk	2006-08-28 23:03:19.850718000 +0200
+@@ -47,7 +47,7 @@
+ 
+ ZIP1TARGET      = $(WORDBOOK_ALL_TARGET)
+ 
+-ZIP1LIST        = sun.dic
++ZIP1LIST        = Ubuntu.dic
+ 
+ 
+ ZIP2TARGET      = $(WORDBOOK_USER_TARGET)
+--- officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs.old	2005-09-08 17:15:44.000000000 +0200
++++ officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs	2006-08-28 23:03:51.250718000 +0200
+@@ -118,7 +118,7 @@
+ 						<desc>Specifies the custom dictionaries to be used. The Ignore list (IgnoreAllList (All)) is administered in the RAM only for the current spellcheck.</desc>
+ 						<label>Custom dictionaries</label>
+ 					</info>
+-					<value oor:separator=";">IgnoreAllList;soffice.dic;standard.dic;sun.dic</value>
++					<value oor:separator=";">IgnoreAllList;soffice.dic;standard.dic;Ubuntu.dic</value>
+ 				</prop>
+ 				<prop oor:name="IsUseDictionaryList" oor:type="xs:boolean">
+ 					<!-- OldLocation: NEW -->
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-gcc430two-binfilter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-gcc430two-binfilter.diff
@@ -0,0 +1,59 @@
+--- binfilter/bf_basic/source/comp/codegen.cxx.old	2007-03-15 16:07:02.000000000 +0100
++++ binfilter/bf_basic/source/comp/codegen.cxx	2007-11-16 19:19:12.000000000 +0100
+@@ -531,15 +531,8 @@
+ 	m_nCnvtdSize = static_cast<S>( aTrnsfrmer.buffer().GetSize() );
+ }
+ 
+-void NeverRunsEver()
+-{
+-    // force instatiation of templates... I dunno why, but I have to do
+-	// this to force instatiation of the template. Otherwise using the template
+-	// in another code module results in link errors :-(
+-	PCodeBuffConvertor< UINT16, UINT32 > aInst1(0,0);	
+-	aInst1.convert();
+-	PCodeBuffConvertor< UINT32, UINT16 > aInst2(0,0);	
+-	aInst2.convert();
+-}
++// instantiate for types needed in SbiImage::Load and SbiImage::Save
++template class PCodeBuffConvertor<UINT16, UINT32 >;
++template class PCodeBuffConvertor<UINT32, UINT16>;
+ 
+ }
+--- binfilter/inc/bf_xmloff/nmspmap.hxx.old	2007-01-02 19:52:42.000000000 +0100
++++ binfilter/inc/bf_xmloff/nmspmap.hxx	2007-11-16 19:28:59.000000000 +0100
+@@ -36,6 +36,8 @@
+ #ifndef _XMLOFF_NMSPMAP_HXX
+ #define _XMLOFF_NMSPMAP_HXX
+ 
++#include <limits.h>
++
+ #ifndef __SGI_STL_HASH_MAP
+ #include <hash_map>
+ #endif
+--- binfilter/inc/bf_xmloff/PropertySetInfoHash.hxx.old	2005-09-09 19:12:49.000000000 +0200
++++ binfilter/inc/bf_xmloff/PropertySetInfoHash.hxx	2007-11-16 19:26:51.000000000 +0100
+@@ -35,6 +35,8 @@
+ #ifndef _XMLOFF_PROPERTYSETINFOHASH_HXX
+ #define _XMLOFF_PROPERTYSETINFOHASH_HXX
+ 
++#include <string.h>
++
+ #ifndef _XMLOFF_PROPERTYSETINFOKEY_HXX
+ #include <bf_xmloff/PropertySetInfoKey.hxx>
+ #endif
+Index: bf_forms/source/component/forms_ComboBox.cxx
+===================================================================
+RCS file: /cvs/framework/binfilter/bf_forms/source/component/forms_ComboBox.cxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 forms_ComboBox.cxx
+--- binfilter/bf_forms/source/component/forms_ComboBox.cxx	27 Oct 2006 13:59:08 -0000	1.7
++++ binfilter/bf_forms/source/component/forms_ComboBox.cxx	25 Jan 2008 16:29:51 -0000
+@@ -97,6 +97,8 @@
+ #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
+ #endif
+ 
++#include <limits.h>
++
+ namespace binfilter {
+ 
+ 	using namespace ::dbtools;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-forms.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-forms.diff
@@ -0,0 +1,6 @@
+--- forms/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ forms/prj/tests.lst	2007-09-07 14:32:14.000000000 +0200
+@@ -0,0 +1,3 @@
++fm   forms\qa\complex\forms                             nmake - all fm_qa_complex_forms NULL
++fm   forms\qa\integration\forms                         nmake - all fm_qa_integration_forms NULL
++#does not build: fm   forms\qa\unoapi                                    nmake - all fm_qa_unoapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sdk-gid-module-name.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sdk-gid-module-name.diff
@@ -0,0 +1,22 @@
+--- setup_native/source/packinfo/packinfo_sdkoo.txt  6 Sep 2007 10:02:35 -0000       1.2
++++ setup_native/source/packinfo/packinfo_sdkoo.txt  28 Nov 2007 11:46:14 -0000
+@@ -29,7 +29,7 @@
+ #*************************************************************************
+ 
+ Start
+-module = "gid_Module_Root"
++module = "gid_Module_Root_SDK"
+ solarispackagename = "OpenOfficeorgSDK"
+ packagename = "openoffice.org-sdk"
+ copyright = "2005-2007 by OpenOffice.org"
+--- scp2/source/sdkoo/sdkoo.scp.old	2005-11-09 10:40:01.000000000 +0100
++++ scp2/source/sdkoo/sdkoo.scp	2006-04-25 16:44:28.000000000 +0200
+@@ -60,7 +60,7 @@
+     DosName = "readme";
+ End
+ 
+-Module gid_Module_Root
++Module gid_Module_Root_SDK
+     Name = "sdkoo";
+     Description = "sdkoo";
+ End
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-libc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-libc.diff
@@ -0,0 +1,564 @@
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.169
+diff -u -u -r1.169 configure.in
+--- config_office/configure.in	10 Jul 2006 19:00:12 -0000	1.169
++++ config_office/configure.in	19 Jul 2006 10:35:14 -0000
+@@ -3727,6 +3727,10 @@
+       AC_MSG_ERROR([no, upgrade libc])
+    fi
+ fi
++AC_CHECK_FUNC(getopt, HAVE_GETOPT=YES, HAVE_GETOPT=NO)
++AC_CHECK_FUNC(readdir_r, HAVE_READDIR_R=YES, HAVE_READDIR_R=NO)
++AC_SUBST(HAVE_READDIR_R)
++AC_SUBST(HAVE_GETOPT)
+ 
+ dnl =========================================
+ dnl Check for the Microsoft Platform SDK.
+Index: config_office/set_soenv.in
+===================================================================
+RCS file: /cvs/tools/config_office/set_soenv.in,v
+retrieving revision 1.107
+diff -u -u -r1.107 set_soenv.in
+--- config_office/set_soenv.in	5 Jul 2006 22:32:39 -0000	1.107
++++ config_office/set_soenv.in	19 Jul 2006 10:35:14 -0000
+@@ -1577,6 +1577,8 @@
+ ToFile( "CVER",              $CVER,              "e" );
+ ToFile( "GUI",               $GUI,               "e" );
+ ToFile( "GLIBC",             $GLIBC,             "e" );
++ToFile( "HAVE_GETOPT",       "@HAVE_GETOPT@",    "e" );
++ToFile( "HAVE_READDIR_R",    "@HAVE_READDIR_R@", "e" );
+ ToFile( "GUIBASE",           $GUIBASE,           "e" );
+ ToFile( "GUIENV",            $GUIENV,            "e" );
+ ToFile( "GVER",              $GVER,              "e" );
+Index: extensions/source/plugin/unx/makefile.mk
+===================================================================
+RCS file: /cvs/util/extensions/source/plugin/unx/makefile.mk,v
+retrieving revision 1.12
+diff -u -u -r1.12 makefile.mk
+--- extensions/source/plugin/unx/makefile.mk	19 Jun 2006 10:45:51 -0000	1.12
++++ extensions/source/plugin/unx/makefile.mk	19 Jul 2006 10:36:22 -0000
+@@ -80,6 +80,14 @@
+ .ENDIF
+ .ENDIF
+ 
++.IF "$(HAVE_READDIR_R)" != "YES"
++.IF "$(OS)" == "WNT"
++APP1STDLIBS+= gnu_readdir.lib
++.ELSE
++APP1STDLIBS+=-lgnu_readdir_r
++.ENDIF
++.ENDIF
++
+ APP1DEF=	$(MISC)$/$(TARGET).def
+ 
+ .ENDIF # $(WITH_MOZILLA) != "NO"
+Index: idlc/source/preproc/makefile.mk
+===================================================================
+RCS file: /cvs/udk/idlc/source/preproc/makefile.mk,v
+retrieving revision 1.4
+diff -u -u -r1.4 makefile.mk
+--- idlc/source/preproc/makefile.mk	7 Sep 2005 18:15:31 -0000	1.4
++++ idlc/source/preproc/makefile.mk	19 Jul 2006 10:36:49 -0000
+@@ -63,13 +62,22 @@
+ OBJFILES=   \
+ 			$(OBJ)$/cpp.obj	\
+ 			$(OBJ)$/eval.obj	\
+-			$(OBJ)$/getopt.obj	\
+ 			$(OBJ)$/include.obj	\
+ 			$(OBJ)$/lex.obj	\
+ 			$(OBJ)$/macro.obj	\
+ 			$(OBJ)$/nlist.obj	\
+ 			$(OBJ)$/tokens.obj	\
+ 			$(OBJ)$/unix.obj
++
++.IF "$(HAVE_GETOPT)"!="YES"
++.IF "$(OS)" == "WNT"
++APP1STDLIBS+= gnu_getopt.lib
++.ELSE
++APP1STDLIBS+= -lgnu_getopt
++.ENDIF
++.ELSE
++CDEFS+= -DHAVE_GETOPT
++.ENDIF
+ 
+ # --- CPP -------------------------------------------------------
+ 
+Index: idlc/source/preproc/nlist.c
+===================================================================
+RCS file: /cvs/udk/idlc/source/preproc/nlist.c,v
+retrieving revision 1.3
+diff -u -u -r1.3 nlist.c
+--- idlc/source/preproc/nlist.c	20 Jun 2006 03:51:46 -0000	1.3
++++ idlc/source/preproc/nlist.c	19 Jul 2006 10:36:49 -0000
+@@ -37,9 +37,13 @@
+ #include <string.h>
+ #include "cpp.h"
+ 
++#ifndef HAVE_GETOPT
+ extern int getopt(int, char *const *, const char *);
+ extern char *optarg;
+ extern int optind;
++#else
++#include <getopt.h>
++#endif
+ extern int Cplusplus;
+ Nlist *kwdefined;
+ char wd[128];
+Index: idlc/source/preproc/unix.c
+===================================================================
+RCS file: /cvs/udk/idlc/source/preproc/unix.c,v
+retrieving revision 1.6
+diff -u -u -r1.6 unix.c
+--- idlc/source/preproc/unix.c	20 Jun 2006 03:52:12 -0000	1.6
++++ idlc/source/preproc/unix.c	19 Jul 2006 10:36:49 -0000
+@@ -46,10 +46,14 @@
+ 
+ #include "cpp.h"
+ 
++#ifndef HAVE_GETOPT
+ extern int getopt(int, char *const *, const char *);
+-extern char *optarg, rcsid[];
++extern char *optarg;
+ extern int optind;
+-
++#else
++#include <getopt.h>
++#endif
++extern char rcsid[];
+ int Pflag = 0;                          /* print no line information */
+ int Iflag = 0;							/* print includes */
+ int Mflag = 0;                          /* print macor expansion */
+Index: sal/osl/unx/makefile.mk
+===================================================================
+RCS file: /cvs/porting/sal/osl/unx/makefile.mk,v
+retrieving revision 1.27
+diff -u -u -r1.27 makefile.mk
+--- sal/osl/unx/makefile.mk	8 Sep 2005 14:57:34 -0000	1.27
++++ sal/osl/unx/makefile.mk	19 Jul 2006 10:38:49 -0000
+@@ -54,6 +54,16 @@
+ 
+ .INCLUDE :  settings.mk
+ 
++.IF "$(HAVE_READDIR_R)"=="YES"
++CDEFS+=-DHAVE_READDIR_H
++.ELSE
++.IF "$(OS)" == "WNT"
++SHL1STDLIBS+= gnu_readdir.lih
++.ELSE
++SHL1STDLIBS+= -lgnu_readdir
++.ENDIF
++.ENDIF
++
+ CFLAGS+= $(LFS_CFLAGS)
+ CXXFLAGS+= $(LFS_CFLAGS)
+ 
+Index: sal/osl/unx/system.c
+===================================================================
+RCS file: /cvs/porting/sal/osl/unx/system.c,v
+retrieving revision 1.12
+diff -u -u -r1.12 system.c
+--- sal/osl/unx/system.c	20 Jun 2006 04:19:35 -0000	1.12
++++ sal/osl/unx/system.c	19 Jul 2006 10:38:49 -0000
+@@ -440,6 +440,8 @@
+  * in MacOS X 10.1.x and earlier.
+  */
+ 
++#ifndef HAVE_READDIR_H
++
+ /* MacOS X doesn't have readdir_r() standard, plus readdir() isn't threadsafe. */
+ 
+ /*******************************************************************************/
+@@ -477,6 +479,8 @@
+ 
+     return nRet;
+ }
++
++#endif
+ 
+ /* No reentrant asctime() either... */
+ 
+Index: sal/osl/unx/system.h
+===================================================================
+RCS file: /cvs/porting/sal/osl/unx/system.h,v
+retrieving revision 1.32
+diff -u -u -r1.32 system.h
+--- sal/osl/unx/system.h	20 Jun 2006 04:19:46 -0000	1.32
++++ sal/osl/unx/system.h	19 Jul 2006 10:38:49 -0000
+@@ -366,7 +366,9 @@
+ #	define  NO_PTHREAD_RTL
+ /* for NSGetArgc/Argv/Environ */
+ #       include <crt_externs.h>
++#ifndef HAVE_READDIR_H
+ int  readdir_r( DIR *dirp, struct dirent *entry, struct dirent **result );
++#endif
+ char *asctime_r( const struct tm *tm, char *buffer );
+ void macxp_getSystemVersion( unsigned int *isDarwin, unsigned int *majorVersion, unsigned int *minorVersion, unsigned int *minorMinorVersion );
+ #ifdef __cplusplus
+Index: soltools/javadep/javadep.c
+===================================================================
+RCS file: /cvs/tools/soltools/javadep/javadep.c,v
+retrieving revision 1.8
+diff -u -u -r1.8 javadep.c
+--- soltools/javadep/javadep.c	20 Jun 2006 05:08:14 -0000	1.8
++++ soltools/javadep/javadep.c	19 Jul 2006 10:39:21 -0000
+@@ -62,6 +62,8 @@
+ #define ntohs(x)    ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) 
+ #endif
+ 
++#include <getopt.h>
++
+ /* max. length of line in response file */
+ #define RES_FILE_BUF    65536
+ 
+@@ -144,13 +146,6 @@
+ void    err_quit(const char *, ...);
+ void    silent_quit(void);
+ 
+-/* poor man's getopt() */
+-int     simple_getopt(char *pargv[], const char *poptstring);
+-char    *optarg = NULL;
+-int     optind  = 1;
+-int     optopt  = 0;
+-int     opterr  = 0;
+-
+ uint8
+ read_uint8(const file_t *pfile)
+ {
+@@ -774,45 +769,6 @@
+             pprogname);
+ }
+ 
+-/* my very simple minded implementation of getopt()
+- * it's to sad that getopt() is not available everywhere
+- * note: this is not a full POSIX conforming getopt()
+- */
+-int simple_getopt(char *pargv[], const char *poptstring)
+-{
+-    char *parg = pargv[optind];
+-
+-    /* skip all response file arguments */
+-    if ( parg ) {
+-        while ( *parg == '@' )
+-            parg = pargv[++optind];
+-        
+-        if ( parg[0] == '-' && parg[1] != '\0' ) {
+-            char *popt;
+-            int c = parg[1];
+-            if ( (popt = strchr(poptstring, c)) == NULL ) {
+-                optopt = c;
+-                if ( opterr )
+-                    fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
+-                return '?';
+-            }
+-            if ( *(++popt) == ':') {
+-                if ( parg[2] != '\0' ) {
+-                    optarg = ++parg;
+-                } else {
+-                    optarg = pargv[++optind];
+-                }
+-            } else {
+-                optarg = NULL;
+-            }
+-            ++optind;
+-            return c;
+-        }
+-    }
+-    return -1;
+-}
+-
+-
+ int CDECL
+ main(int argc, char *argv[])
+ {
+@@ -860,7 +816,7 @@
+     opterr = 0;
+     pincs = allocate_growable();
+ 
+-    while( (c = simple_getopt(pall_argv, ":i:I:s:S:o:OhHvV")) != -1 ) {
++    while( (c = getopt(nall_argc, pall_argv, ":i:I:s:S:o:OhHvV")) != -1 ) {
+         switch(c) {
+             case 'i':
+             case 'I':
+Index: soltools/javadep/makefile.mk
+===================================================================
+RCS file: /cvs/tools/soltools/javadep/makefile.mk,v
+retrieving revision 1.7
+diff -u -u -r1.7 makefile.mk
+--- soltools/javadep/makefile.mk	8 Sep 2005 07:27:39 -0000	1.7
++++ soltools/javadep/makefile.mk	19 Jul 2006 10:39:21 -0000
+@@ -49,6 +49,16 @@
+ UWINAPILIB=$(0)
+ LIBSALCPPRT=$(0)
+ 
++.IF "$(HAVE_GETOPT)"=="YES"
++CDEFS+=-DHAVE_GETOPT
++.ELSE
++.IF "$(OS)" == "WNT"
++APP1STDLIBS+= gnu_getopt.lib
++.ELSE
++APP1STDLIBS+=-lgnu_getopt
++.ENDIF
++.ENDIF
++
+ # --- Files --------------------------------------------------------
+ 
+ APP1TARGET	= 	javadep
+Index: tools/bootstrp/makefile.mk
+===================================================================
+RCS file: /cvs/util/tools/bootstrp/makefile.mk,v
+retrieving revision 1.22
+diff -u -u -r1.22 makefile.mk
+--- tools/bootstrp/makefile.mk	9 Sep 2005 13:30:26 -0000	1.22
++++ tools/bootstrp/makefile.mk	19 Jul 2006 10:40:13 -0000
+@@ -97,6 +97,14 @@
+ APP2LIBS=   $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib
+ APP2STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB)
+ 
++.IF "$(HAVE_GETOPT)"!="YES"
++.IF "$(OS)" == "WNT"
++APP2STDLIBS+= gnu_getopt.lib
++.ELSE
++APP2STDLIBS+= -lgnu_getopt
++.ENDIF
++.ENDIF
++
+ APP3TARGET=  so_checksum
+ APP3OBJS=    $(OBJ)$/md5.obj \
+              $(OBJ)$/so_checksum.obj
+Index: tools/bootstrp/rscdep.cxx
+===================================================================
+RCS file: /cvs/util/tools/bootstrp/rscdep.cxx,v
+retrieving revision 1.21
+diff -u -u -r1.21 rscdep.cxx
+--- tools/bootstrp/rscdep.cxx	19 Jun 2006 13:21:59 -0000	1.21
++++ tools/bootstrp/rscdep.cxx	19 Jul 2006 10:40:13 -0000
+@@ -49,6 +49,8 @@
+ 
+ #include "cppdep.hxx"
+ 
++#include <getopt.h>
++
+ class RscHrcDep : public CppDep
+ {
+ public:
+@@ -74,16 +76,6 @@
+ 
+ //static String aDelim;
+ 
+-/* poor man's getopt() */
+-int     simple_getopt(char *argv[], const char *optstring);
+-#ifdef WNT
+-static char	*optarg = NULL;
+-static int	optind = 1; 
+-static int	optopt = 0; 
+-static int	opterr = 0; 
+-#endif
+-
+-
+ int
+ #ifdef WNT
+ _cdecl
+@@ -175,7 +167,7 @@
+ 
+ 	while( 1 )
+ 	{
+-		c = simple_getopt( argv,
++		c = getopt( argc, argv,
+ 		"_abcdefghi:jklmnopqrstuvwxyzABCDEFGHI:JKLMNOPQRSTUVWXYZ1234567890/-+=.\\()\"");
+ 		if ( c == -1 )
+ 			break;
+@@ -293,43 +285,5 @@
+ 	aOutStream.Close();
+ 
+ 	return 0;
+-}
+-
+-/* my very simple minded implementation of getopt()
+- * it's too sad that getopt() is not available everywhere
+- * note: this is not a full POSIX conforming getopt()
+- */
+-int simple_getopt(char *argv[], const char *optstring)
+-{
+-    char *arg = argv[optind];
+-
+-    /* skip all response file arguments */
+-    if ( arg ) {
+-		while ( *arg == '@' )
+-        	arg = argv[++optind];
+-        
+-    	if ( arg[0] == '-' && arg[1] != '\0' ) {
+-        	const char *popt;
+-        	int c = arg[1];
+-        	if ( (popt = strchr(optstring, c)) == NULL ) {
+-            	optopt = c;
+-            	if ( opterr )
+-                	fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
+-            	return '?';
+-        	}
+-        	if ( *(++popt) == ':') {
+-             	if ( arg[2] != '\0' ) {
+-                 	optarg = ++arg;
+-             	} else {
+-                 	optarg = argv[++optind];
+-             	}
+-         	} else {
+-             	optarg = NULL;
+-         	}
+-         	++optind;
+-         	return c;
+-    	}
+-	}
+-    return -1;
+ }
+ 
+Index: glibc-2.1.3.patch
+===================================================================
+RCS file: /cvs/util/external/Attic/glibc-2.1.3.patch,v
+retrieving revision 1.1.2.1
+diff -u -u -r1.1.2.1 glibc-2.1.3.patch
+--- external/glibc-2.1.3.patch	11 Aug 2006 10:48:49 -0000	1.1.2.1
++++ external/glibc-2.1.3.patch	18 Aug 2006 21:32:24 -0000
+@@ -59,7 +59,7 @@
+ ***************
+ *** 1 ****
+ ! dummy
+---- 1,71 ----
++--- 1,75 ----
+ ! #*************************************************************************
+ ! #
+ ! #   OpenOffice.org - a multi-platform office productivity suite
+@@ -115,6 +115,8 @@
+ ! 
+ ! # --- Files --------------------------------------------------------
+ ! 
++! .IF "$(HAVE_GETOPT)" != "YES"
++! 
+ ! OBJFILES=	$(OBJ)$/getopt.obj		\
+ ! 			$(OBJ)$/getopt1.obj
+ ! 
+@@ -122,7 +124,9 @@
+ ! LIB1ARCHIV=$(LB)$/lib$(TARGET).a
+ ! LIB1OBJFILES=$(OBJFILES)
+ ! 
+-! .IF "$(OS)"=="NETBSD"
++! .ENDIF
++! 
++! .IF "$(HAVE_READDIR_R)" != "YES"
+ ! TARGET2=gnu_readdir_r
+ ! OBJFILES+= $(OBJ)$/readdir_r.obj
+ ! LIB2TARGET=$(SLB)$/$(TARGET2).lib
+Index: glibc/makefile.mk
+===================================================================
+RCS file: /cvs/util/external/glibc/makefile.mk,v
+retrieving revision 1.7.30.1
+diff -u -u -r1.7.30.1 makefile.mk
+--- external/glibc/makefile.mk	11 Aug 2006 10:47:02 -0000	1.7.30.1
++++ external/glibc/makefile.mk	18 Aug 2006 21:32:24 -0000
+@@ -44,6 +44,7 @@
+ 
+ # --- Files --------------------------------------------------------
+ 
++.IF "$(HAVE_GETOPT)" != "YES" || "$(HAVE_READDIR_R)" != "YES"
+ TARFILE_NAME=glibc-2.1.3-stub
+ TARFILE_ROOTDIR=glibc-2.1.3
+ ADDITIONAL_FILES=posix$/makefile.mk posix$/config.h posix$/readdir_r.c
+@@ -55,6 +56,10 @@
+ 
+ BUILD_DIR=posix
+ BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
++.ELSE
++@all:
++	@echo "Nothing to do here."
++.ENDIF
+ 
+ # --- Targets ------------------------------------------------------
+ 
+Index: prj/d.lst
+===================================================================
+RCS file: /cvs/util/external/prj/d.lst,v
+retrieving revision 1.25.4.4
+diff -u -u -r1.25.4.4 d.lst
+--- external/prj/d.lst	17 Aug 2006 10:32:41 -0000	1.25.4.4
++++ external/prj/d.lst	18 Aug 2006 21:39:06 -0000
+@@ -7,8 +7,8 @@
+ ..\jars\parser.jar %_DEST%\bin%_EXT%\parser.jar
+ ..\jars\jaxp.jar %_DEST%\bin%_EXT%\jaxp.jar
+ 
+-..\glibc\rtufiles\config.h %_DEST%\inc%_EXT%\external\glibc\config.h
+-..\glibc\rtufiles\getopt.h %_DEST%\inc%_EXT%\external\glibc\getopt.h
++..\%__SRC%\misc/build/glibc-2.1.3/posix/config.h %_DEST%\inc%_EXT%\external\glibc\config.h
++..\%__SRC%\misc/build/glibc-2.1.3/posix/getopt.h %_DEST%\inc%_EXT%\external\glibc\getopt.h
+ ..\gpc\gpc.h %_DEST%\inc%_EXT%\external\gpc\gpc.h
+ 
+ ..\%__SRC%\slb\gnu_getopt.lib %_DEST%\lib%_EXT%\gnu_getopt.lib
+Index: _nlist.c
+===================================================================
+RCS file: /cvs/tools/soltools/cpp/_nlist.c,v
+retrieving revision 1.3
+diff -u -u -r1.3 _nlist.c
+--- soltools/cpp/_nlist.c	20 Jun 2006 05:06:54 -0000	1.3
++++ soltools/cpp/_nlist.c	3 Sep 2006 20:13:15 -0000
+@@ -1,9 +1,9 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <getopt.h>
+ #include "cpp.h"
+ 
+-extern int getopt(int, char *const *, const char *);
+ extern char *optarg;
+ extern int optind;
+ extern int Cplusplus;
+Index: _unix.c
+===================================================================
+RCS file: /cvs/tools/soltools/cpp/_unix.c,v
+retrieving revision 1.4
+diff -u -u -r1.4 _unix.c
+--- soltools/cpp/_unix.c	20 Jun 2006 05:07:17 -0000	1.4
++++ soltools/cpp/_unix.c	3 Sep 2006 20:13:15 -0000
+@@ -9,10 +9,10 @@
+ #else
+ #include <unistd.h>
+ #endif
++#include <getopt.h>
+ 
+ #include "cpp.h"
+ 
+-extern int getopt(int, char *const *, const char *);
+ extern char *optarg, rcsid[];
+ extern int optind;
+ 
+Index: makefile.mk
+===================================================================
+RCS file: /cvs/tools/soltools/cpp/makefile.mk,v
+retrieving revision 1.9
+diff -u -u -r1.9 makefile.mk
+--- soltools/cpp/makefile.mk	8 Sep 2005 07:23:35 -0000	1.9
++++ soltools/cpp/makefile.mk	3 Sep 2006 20:13:15 -0000
+@@ -54,7 +54,6 @@
+ OBJFILES= \
+ 	$(OBJ)$/_cpp.obj		\
+ 	$(OBJ)$/_eval.obj 	\
+-	$(OBJ)$/_getopt.obj	\
+ 	$(OBJ)$/_include.obj \
+ 	$(OBJ)$/_lex.obj 	\
+ 	$(OBJ)$/_macro.obj 	\
+@@ -62,6 +61,16 @@
+ 	$(OBJ)$/_nlist.obj 	\
+ 	$(OBJ)$/_tokens.obj 	\
+ 	$(OBJ)$/_unix.obj
++
++.IF "$(HAVE_GETOPT)"!="YES"
++.IF "$(OS)" == "WNT"
++APP1STDLIBS+= gnu_getopt.lib
++.ELSE
++APP1STDLIBS+= -lgnu_getopt
++.ENDIF
++.ELSE
++CDEFS+= -DHAVE_GETOPT
++.ENDIF
+ 
+ APP1TARGET	=	$(TARGET)
+ APP1STACK	=	1000000
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/calc-new-acceleration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/calc-new-acceleration.diff
@@ -0,0 +1,16 @@
+Index: sc/uiconfig/scalc/accelerator/en-US/default.xml
+===================================================================
+RCS file: /cvs/sc/sc/uiconfig/scalc/accelerator/en-US/default.xml,v
+retrieving revision 1.3
+diff -u -r1.3 default.xml
+--- sc/uiconfig/scalc/accelerator/en-US/default.xml	2 Nov 2004 12:14:03 -0000	1.3
++++ sc/uiconfig/scalc/accelerator/en-US/default.xml	6 Apr 2005 15:13:44 -0000
+@@ -89,7 +92,7 @@
+ 	<accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
+ 	<accel:item accel:code="KEY_PAGEUP" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToPrevTableSel"/>
+ 	<accel:item accel:code="KEY_F4" accel:shift="true" xlink:href=".uno:ToggleRelative"/>
+-	<accel:item accel:code="KEY_D" accel:mod1="true" xlink:href=".uno:DataSelect"/>
++	<accel:item accel:code="KEY_D" accel:mod1="true" xlink:href=".uno:FillDown"/>
+ 	<accel:item accel:code="KEY_F" accel:shift="true" accel:mod1="true" xlink:href=".uno:RepeatSearch"/>
+ 	<accel:item accel:code="KEY_T" accel:shift="true" accel:mod1="true" xlink:href=".uno:FocusCellAddress"/>
+ 	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:FocusCellAddress"/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svtools-dont-extern-sRTF-sHTML.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svtools-dont-extern-sRTF-sHTML.diff
@@ -0,0 +1,6061 @@
+diff --git svtools/inc/htmlkywd.hxx svtools/inc/htmlkywd.hxx
+index 87ff760..1f4f8bb 100644
+--- svtools/inc/htmlkywd.hxx
++++ svtools/inc/htmlkywd.hxx
+@@ -36,817 +36,804 @@
+ #ifndef _HTMLKYWD_HXX
+ #define _HTMLKYWD_HXX
+ 
+-#ifndef INCLUDED_SVTDLLAPI_H
+-#include "svtools/svtdllapi.h"
+-#endif
+-
+ #ifndef _SAL_TYPES_H_
+ #include "sal/types.h"
+ #endif
+ 
+-#ifndef SVTOOLS_CONSTASCII_DECL
+-#define SVTOOLS_CONSTASCII_DECL( n, s ) n[sizeof(s)]
+-#endif
+-#ifndef SVTOOLS_CONSTASCII_DEF
+-#define SVTOOLS_CONSTASCII_DEF( n, s ) n[sizeof(s)] = s
+-#endif
+-
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doctype32,
+-	"HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doctype40,
+-	"HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"" );
++#define sHTML_doctype32 "HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\""
++#define sHTML_doctype40 "HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\""
+ 
+ 
+ // diese werden nur eingeschaltet
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_area, "AREA" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_base, "BASE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_comment, "!--" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doctype, "!DOCTYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_embed, "EMBED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_figureoverlay, "OVERLAY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_horzrule, "HR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_horztab, "TAB" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_image, "IMG" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_image2, "IMAGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_input, "INPUT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_isindex, "ISINDEX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_linebreak, "BR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_li, "LI" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_link, "LINK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_meta, "META" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_nextid, "NEXTID" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_nobr, "NOBR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_object, "OBJECT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_of, "OF" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_option, "OPTION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_param, "PARAM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_range, "RANGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_spacer, "SPACER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_wbr, "WBR" );
++#define sHTML_area "AREA"
++#define sHTML_base "BASE"
++#define sHTML_comment "!--"
++#define sHTML_doctype "!DOCTYPE"
++#define sHTML_embed "EMBED"
++#define sHTML_figureoverlay "OVERLAY"
++#define sHTML_horzrule "HR"
++#define sHTML_horztab "TAB"
++#define sHTML_image "IMG"
++#define sHTML_image2 "IMAGE"
++#define sHTML_input "INPUT"
++#define sHTML_isindex "ISINDEX"
++#define sHTML_linebreak "BR"
++#define sHTML_li "LI"
++#define sHTML_link "LINK"
++#define sHTML_meta "META"
++#define sHTML_nextid "NEXTID"
++#define sHTML_nobr "NOBR"
++#define sHTML_object "OBJECT"
++#define sHTML_of "OF"
++#define sHTML_option "OPTION"
++#define sHTML_param "PARAM"
++#define sHTML_range "RANGE"
++#define sHTML_spacer "SPACER"
++#define sHTML_wbr "WBR"
+ 
+ // diese werden wieder abgeschaltet
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_abbreviation, "ABBREV" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_above, "ABOVE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_acronym, "ACRONYM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_address, "ADDRESS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_anchor, "A" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_applet, "APPLET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_array, "ARRAY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_author, "AU" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_banner, "BANNER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bar, "BAR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_basefont, "BASEFONT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_below, "BELOW" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bigprint, "BIG" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_blink, "BLINK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_blockquote, "BLOCKQUOTE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_blockquote30, "BQ" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_body, "BODY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bold, "B" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_boldtext, "BT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_box, "BOX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_caption, "CAPTION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_center, "CENTER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_citiation, "CITE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_code, "CODE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_col, "COL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_colgroup, "COLGROUP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_credit, "CREDIT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dd, "DD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_deflist, "DL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_deletedtext, "DEL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dirlist, "DIR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_division, "DIV" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dot, "DOT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doubledot, "DDOT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dt, "DT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_emphasis, "EM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_figure, "FIG" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_font, "FONT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_footnote, "FN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_form, "FORM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_frame, "FRAME" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_frameset, "FRAMESET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_hat, "HAT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head1, "H1" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head2, "H2" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head3, "H3" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head4, "H4" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head5, "H5" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head6, "H6" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head, "HEAD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_html, "HTML" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_iframe, "IFRAME" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ilayer, "ILAYER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_insertedtext, "INS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_italic, "I" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_item, "ITEM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_keyboard, "KBD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_language, "LANG" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_layer, "LAYER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_listheader, "LH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_map, "MAP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_math, "MATH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_menulist, "MENU" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_multicol, "MULTICOL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noembed, "NOEMBED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noframe, "NOFRAME" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noframes, "NOFRAMES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noscript, "NOSCRIPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_note, "NOTE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_orderlist, "OL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_parabreak, "P" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_person, "PERSON" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_plaintext, "T" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_preformtxt, "PRE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_root, "ROOT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_row, "ROW" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sample, "SAMP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_script, "SCRIPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_select, "SELECT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_shortquote, "Q" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_smallprint, "SMALL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_span, "SPAN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_squareroot, "AQRT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_strikethrough, "S" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_strong, "STRONG" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_style, "STYLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_subscript, "SUB" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_superscript, "SUP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_table, "TABLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tablerow, "TR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tabledata, "TD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tableheader, "TH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tbody, "TBODY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_teletype, "TT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_text, "TEXT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_textarea, "TEXTAREA" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_textflow, "TEXTFLOW" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tfoot, "TFOOT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_thead, "THEAD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tilde, "TILDE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_title, "TITLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_underline, "U" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_unorderlist, "UL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_variable, "VAR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_vector, "VEC" );
++#define sHTML_abbreviation "ABBREV"
++#define sHTML_above "ABOVE"
++#define sHTML_acronym "ACRONYM"
++#define sHTML_address "ADDRESS"
++#define sHTML_anchor "A"
++#define sHTML_applet "APPLET"
++#define sHTML_array "ARRAY"
++#define sHTML_author "AU"
++#define sHTML_banner "BANNER"
++#define sHTML_bar "BAR"
++#define sHTML_basefont "BASEFONT"
++#define sHTML_below "BELOW"
++#define sHTML_bigprint "BIG"
++#define sHTML_blink "BLINK"
++#define sHTML_blockquote "BLOCKQUOTE"
++#define sHTML_blockquote30 "BQ"
++#define sHTML_body "BODY"
++#define sHTML_bold "B"
++#define sHTML_boldtext "BT"
++#define sHTML_box "BOX"
++#define sHTML_caption "CAPTION"
++#define sHTML_center "CENTER"
++#define sHTML_citiation "CITE"
++#define sHTML_code "CODE"
++#define sHTML_col "COL"
++#define sHTML_colgroup "COLGROUP"
++#define sHTML_credit "CREDIT"
++#define sHTML_dd "DD"
++#define sHTML_deflist "DL"
++#define sHTML_deletedtext "DEL"
++#define sHTML_dirlist "DIR"
++#define sHTML_division "DIV"
++#define sHTML_dot "DOT"
++#define sHTML_doubledot "DDOT"
++#define sHTML_dt "DT"
++#define sHTML_emphasis "EM"
++#define sHTML_figure "FIG"
++#define sHTML_font "FONT"
++#define sHTML_footnote "FN"
++#define sHTML_form "FORM"
++#define sHTML_frame "FRAME"
++#define sHTML_frameset "FRAMESET"
++#define sHTML_hat "HAT"
++#define sHTML_head1 "H1"
++#define sHTML_head2 "H2"
++#define sHTML_head3 "H3"
++#define sHTML_head4 "H4"
++#define sHTML_head5 "H5"
++#define sHTML_head6 "H6"
++#define sHTML_head "HEAD"
++#define sHTML_html "HTML"
++#define sHTML_iframe "IFRAME"
++#define sHTML_ilayer "ILAYER"
++#define sHTML_insertedtext "INS"
++#define sHTML_italic "I"
++#define sHTML_item "ITEM"
++#define sHTML_keyboard "KBD"
++#define sHTML_language "LANG"
++#define sHTML_layer "LAYER"
++#define sHTML_listheader "LH"
++#define sHTML_map "MAP"
++#define sHTML_math "MATH"
++#define sHTML_menulist "MENU"
++#define sHTML_multicol "MULTICOL"
++#define sHTML_noembed "NOEMBED"
++#define sHTML_noframe "NOFRAME"
++#define sHTML_noframes "NOFRAMES"
++#define sHTML_noscript "NOSCRIPT"
++#define sHTML_note "NOTE"
++#define sHTML_orderlist "OL"
++#define sHTML_parabreak "P"
++#define sHTML_person "PERSON"
++#define sHTML_plaintext "T"
++#define sHTML_preformtxt "PRE"
++#define sHTML_root "ROOT"
++#define sHTML_row "ROW"
++#define sHTML_sample "SAMP"
++#define sHTML_script "SCRIPT"
++#define sHTML_select "SELECT"
++#define sHTML_shortquote "Q"
++#define sHTML_smallprint "SMALL"
++#define sHTML_span "SPAN"
++#define sHTML_squareroot "AQRT"
++#define sHTML_strikethrough "S"
++#define sHTML_strong "STRONG"
++#define sHTML_style "STYLE"
++#define sHTML_subscript "SUB"
++#define sHTML_superscript "SUP"
++#define sHTML_table "TABLE"
++#define sHTML_tablerow "TR"
++#define sHTML_tabledata "TD"
++#define sHTML_tableheader "TH"
++#define sHTML_tbody "TBODY"
++#define sHTML_teletype "TT"
++#define sHTML_text "TEXT"
++#define sHTML_textarea "TEXTAREA"
++#define sHTML_textflow "TEXTFLOW"
++#define sHTML_tfoot "TFOOT"
++#define sHTML_thead "THEAD"
++#define sHTML_tilde "TILDE"
++#define sHTML_title "TITLE"
++#define sHTML_underline "U"
++#define sHTML_unorderlist "UL"
++#define sHTML_variable "VAR"
++#define sHTML_vector "VEC"
+ 
+ // obsolete features
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_xmp, "XMP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_listing, "LISTING" );
++#define sHTML_xmp "XMP"
++#define sHTML_listing "LISTING"
+ 
+ // proposed features
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_definstance, "DFN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_strike, "STRIKE" );
++#define sHTML_definstance "DFN"
++#define sHTML_strike "STRIKE"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bgsound, "BGSOUND" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_comment2, "COMMENT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_marquee, "MARQUEE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_plaintext2, "PLAINTEXT" );
++#define sHTML_bgsound "BGSOUND"
++#define sHTML_comment2 "COMMENT"
++#define sHTML_marquee "MARQUEE"
++#define sHTML_plaintext2 "PLAINTEXT"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfield, "SDFIELD" );
++#define sHTML_sdfield "SDFIELD"
+ 
+ // die Namen fuer alle Zeichen
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_lt, "lt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_gt, "gt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_amp, "amp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_quot, "quot" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Aacute, "Aacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Agrave, "Agrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Acirc, "Acirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Atilde, "Atilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Aring, "Aring" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Auml, "Auml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_AElig, "AElig" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ccedil, "Ccedil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Eacute, "Eacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Egrave, "Egrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ecirc, "Ecirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Euml, "Euml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Iacute, "Iacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Igrave, "Igrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Icirc, "Icirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Iuml, "Iuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_ETH, "ETH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ntilde, "Ntilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Oacute, "Oacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ograve, "Ograve" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ocirc, "Ocirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Otilde, "Otilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ouml, "Ouml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Oslash, "Oslash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Uacute, "Uacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ugrave, "Ugrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ucirc, "Ucirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Uuml, "Uuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Yacute, "Yacute" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_THORN, "THORN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_szlig, "szlig" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_aacute, "aacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_agrave, "agrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_acirc, "acirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_atilde, "atilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_aring, "aring" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_auml, "auml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_aelig, "aelig" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ccedil, "ccedil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_eacute, "eacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_egrave, "egrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ecirc, "ecirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_euml, "euml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iacute, "iacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_igrave, "igrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_icirc, "icirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iuml, "iuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_eth, "eth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ntilde, "ntilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oacute, "oacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ograve, "ograve" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ocirc, "ocirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_otilde, "otilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ouml, "ouml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oslash, "oslash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uacute, "uacute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ugrave, "ugrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ucirc, "ucirc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uuml, "uuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_yacute, "yacute" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_thorn, "thorn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_yuml, "yuml" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_acute, "acute" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_brvbar, "brvbar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cedil, "cedil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cent, "cent" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_copy, "copy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_curren, "curren" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_deg, "deg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_divide, "divide" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frac12, "frac12" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frac14, "frac14" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frac34, "frac34" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iexcl, "iexcl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iquest, "iquest" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_laquo, "laquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_macr, "macr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_micro, "micro" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_middot, "middot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nbsp, "nbsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_not, "not" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ordf, "ordf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ordm, "ordm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_para, "para" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_plusmn, "plusmn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_pound, "pound" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_raquo, "raquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_reg, "reg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sect, "sect" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_shy, "shy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup1, "sup1" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup2, "sup2" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup3, "sup3" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_times, "times" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uml, "uml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_yen, "yen" );
++#define sHTML_C_lt "lt"
++#define sHTML_C_gt "gt"
++#define sHTML_C_amp "amp"
++#define sHTML_C_quot "quot"
++
++#define sHTML_C_Aacute "Aacute"
++#define sHTML_C_Agrave "Agrave"
++#define sHTML_C_Acirc "Acirc"
++#define sHTML_C_Atilde "Atilde"
++#define sHTML_C_Aring "Aring"
++#define sHTML_C_Auml "Auml"
++#define sHTML_C_AElig "AElig"
++#define sHTML_C_Ccedil "Ccedil"
++#define sHTML_C_Eacute "Eacute"
++#define sHTML_C_Egrave "Egrave"
++#define sHTML_C_Ecirc "Ecirc"
++#define sHTML_C_Euml "Euml"
++#define sHTML_C_Iacute "Iacute"
++#define sHTML_C_Igrave "Igrave"
++#define sHTML_C_Icirc "Icirc"
++#define sHTML_C_Iuml "Iuml"
++#define sHTML_C_ETH "ETH"
++#define sHTML_C_Ntilde "Ntilde"
++#define sHTML_C_Oacute "Oacute"
++#define sHTML_C_Ograve "Ograve"
++#define sHTML_C_Ocirc "Ocirc"
++#define sHTML_C_Otilde "Otilde"
++#define sHTML_C_Ouml "Ouml"
++#define sHTML_C_Oslash "Oslash"
++#define sHTML_C_Uacute "Uacute"
++#define sHTML_C_Ugrave "Ugrave"
++#define sHTML_C_Ucirc "Ucirc"
++#define sHTML_C_Uuml "Uuml"
++#define sHTML_C_Yacute "Yacute"
++
++#define sHTML_C_THORN "THORN"
++#define sHTML_C_szlig "szlig"
++
++#define sHTML_S_aacute "aacute"
++#define sHTML_S_agrave "agrave"
++#define sHTML_S_acirc "acirc"
++#define sHTML_S_atilde "atilde"
++#define sHTML_S_aring "aring"
++#define sHTML_S_auml "auml"
++#define sHTML_S_aelig "aelig"
++#define sHTML_S_ccedil "ccedil"
++#define sHTML_S_eacute "eacute"
++#define sHTML_S_egrave "egrave"
++#define sHTML_S_ecirc "ecirc"
++#define sHTML_S_euml "euml"
++#define sHTML_S_iacute "iacute"
++#define sHTML_S_igrave "igrave"
++#define sHTML_S_icirc "icirc"
++#define sHTML_S_iuml "iuml"
++#define sHTML_S_eth "eth"
++#define sHTML_S_ntilde "ntilde"
++#define sHTML_S_oacute "oacute"
++#define sHTML_S_ograve "ograve"
++#define sHTML_S_ocirc "ocirc"
++#define sHTML_S_otilde "otilde"
++#define sHTML_S_ouml "ouml"
++#define sHTML_S_oslash "oslash"
++#define sHTML_S_uacute "uacute"
++#define sHTML_S_ugrave "ugrave"
++#define sHTML_S_ucirc "ucirc"
++#define sHTML_S_uuml "uuml"
++#define sHTML_S_yacute "yacute"
++
++#define sHTML_S_thorn "thorn"
++#define sHTML_S_yuml "yuml"
++
++#define sHTML_S_acute "acute"
++#define sHTML_S_brvbar "brvbar"
++#define sHTML_S_cedil "cedil"
++#define sHTML_S_cent "cent"
++#define sHTML_S_copy "copy"
++#define sHTML_S_curren "curren"
++#define sHTML_S_deg "deg"
++#define sHTML_S_divide "divide"
++#define sHTML_S_frac12 "frac12"
++#define sHTML_S_frac14 "frac14"
++#define sHTML_S_frac34 "frac34"
++#define sHTML_S_iexcl "iexcl"
++#define sHTML_S_iquest "iquest"
++#define sHTML_S_laquo "laquo"
++#define sHTML_S_macr "macr"
++#define sHTML_S_micro "micro"
++#define sHTML_S_middot "middot"
++#define sHTML_S_nbsp "nbsp"
++#define sHTML_S_not "not"
++#define sHTML_S_ordf "ordf"
++#define sHTML_S_ordm "ordm"
++#define sHTML_S_para "para"
++#define sHTML_S_plusmn "plusmn"
++#define sHTML_S_pound "pound"
++#define sHTML_S_raquo "raquo"
++#define sHTML_S_reg "reg"
++#define sHTML_S_sect "sect"
++#define sHTML_S_shy "shy"
++#define sHTML_S_sup1 "sup1"
++#define sHTML_S_sup2 "sup2"
++#define sHTML_S_sup3 "sup3"
++#define sHTML_S_times "times"
++#define sHTML_S_uml "uml"
++#define sHTML_S_yen "yen"
+ 
+ // Netscape kennt noch ein paar in Grossbuchstaben ...
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_LT, "LT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_GT, "GT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_AMP, "AMP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_QUOT, "QUOT" );
++#define sHTML_C_LT "LT"
++#define sHTML_C_GT "GT"
++#define sHTML_C_AMP "AMP"
++#define sHTML_C_QUOT "QUOT"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_COPY, "COPY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_REG, "REG" );
++#define sHTML_S_COPY "COPY"
++#define sHTML_S_REG "REG"
+ 
+ //HTML4
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_alefsym, "alefsym" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Alpha, "Alpha" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_alpha, "alpha" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_and, "and" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ang, "ang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_asymp, "asymp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_bdquo, "bdquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Beta, "Beta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_beta, "beta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_bull, "bull" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cap, "cap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_chi, "chi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Chi, "Chi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_circ, "circ" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_clubs, "clubs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cong, "cong" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_crarr, "crarr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cup, "cup" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_dagger, "dagger" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Dagger, "Dagger" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_darr, "darr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_dArr, "dArr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Delta, "Delta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_delta, "delta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_diams, "diams" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_empty, "empty" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_emsp, "emsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ensp, "ensp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Epsilon, "Epsilon" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_epsilon, "epsilon" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_equiv, "equiv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Eta, "Eta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_eta, "eta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_euro, "euro" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_exist, "exist" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_fnof, "fnof" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_forall, "forall" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frasl, "frasl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Gamma, "Gamma" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_gamma, "gamma" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ge, "ge" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_harr, "harr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_hArr, "hArr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_hearts, "hearts" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_hellip, "hellip" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_image, "image" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_infin, "infin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_int, "int" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Iota, "Iota" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iota, "iota" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_isin, "isin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Kappa, "Kappa" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_kappa, "kappa" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Lambda, "Lambda" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lambda, "lambda" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lang, "lang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_larr, "larr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lArr, "lArr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lceil, "lceil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ldquo, "ldquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_le, "le" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lfloor, "lfloor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lowast, "lowast" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_loz, "loz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lrm, "lrm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lsaquo, "lsaquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lsquo, "lsquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_mdash, "mdash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_minus, "minus" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Mu, "Mu" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_mu, "mu" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nabla, "nabla" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ndash, "ndash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ne, "ne" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ni, "ni" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_notin, "notin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nsub, "nsub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Nu, "Nu" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nu, "nu" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_OElig, "OElig" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oelig, "oelig" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oline, "oline" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Omega, "Omega" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_omega, "omega" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Omicron, "Omicron" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_omicron, "omicron" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oplus, "oplus" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_or, "or" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_otimes, "otimes" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_part, "part" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_permil, "permil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_perp, "perp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Phi, "Phi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_phi, "phi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Pi, "Pi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_pi, "pi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_piv, "piv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_prime, "prime" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Prime, "Prime" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_prod, "prod" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_prop, "prop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Psi, "Psi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_psi, "psi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_radic, "radic" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rang, "rang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rarr, "rarr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rArr, "rArr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rceil, "rceil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rdquo, "rdquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_real, "real" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rfloor, "rfloor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Rho, "Rho" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rho, "rho" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rlm, "rlm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rsaquo, "rsaquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rsquo, "rsquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sbquo, "sbquo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Scaron, "Scaron" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_scaron, "scaron" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sdot, "sdot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Sigma, "Sigma" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sigma, "sigma" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sigmaf, "sigmaf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sim, "sim" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_spades, "spades" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sub, "sub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sube, "sube" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sum, "sum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup, "sup" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_supe, "supe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Tau, "Tau" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_tau, "tau" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_there4, "there4" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Theta, "Theta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_theta, "theta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_thetasym, "thetasym" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_thinsp, "thinsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_tilde, "tilde" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_trade, "trade" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uarr, "uarr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uArr, "uArr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_upsih, "upsih" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Upsilon, "Upsilon" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_upsilon, "upsilon" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_weierp, "weierp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Xi, "Xi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_xi, "xi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Yuml, "Yuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Zeta, "Zeta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_zeta, "zeta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_zwj, "zwj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_zwnj, "zwnj" );
++#define sHTML_S_alefsym "alefsym"
++#define sHTML_S_Alpha "Alpha"
++#define sHTML_S_alpha "alpha"
++#define sHTML_S_and "and"
++#define sHTML_S_ang "ang"
++#define sHTML_S_asymp "asymp"
++#define sHTML_S_bdquo "bdquo"
++#define sHTML_S_Beta "Beta"
++#define sHTML_S_beta "beta"
++#define sHTML_S_bull "bull"
++#define sHTML_S_cap "cap"
++#define sHTML_S_chi "chi"
++#define sHTML_S_Chi "Chi"
++#define sHTML_S_circ "circ"
++#define sHTML_S_clubs "clubs"
++#define sHTML_S_cong "cong"
++#define sHTML_S_crarr "crarr"
++#define sHTML_S_cup "cup"
++#define sHTML_S_dagger "dagger"
++#define sHTML_S_Dagger "Dagger"
++#define sHTML_S_darr "darr"
++#define sHTML_S_dArr "dArr"
++#define sHTML_S_Delta "Delta"
++#define sHTML_S_delta "delta"
++#define sHTML_S_diams "diams"
++#define sHTML_S_empty "empty"
++#define sHTML_S_emsp "emsp"
++#define sHTML_S_ensp "ensp"
++#define sHTML_S_Epsilon "Epsilon"
++#define sHTML_S_epsilon "epsilon"
++#define sHTML_S_equiv "equiv"
++#define sHTML_S_Eta "Eta"
++#define sHTML_S_eta "eta"
++#define sHTML_S_euro "euro"
++#define sHTML_S_exist "exist"
++#define sHTML_S_fnof "fnof"
++#define sHTML_S_forall "forall"
++#define sHTML_S_frasl "frasl"
++#define sHTML_S_Gamma "Gamma"
++#define sHTML_S_gamma "gamma"
++#define sHTML_S_ge "ge"
++#define sHTML_S_harr "harr"
++#define sHTML_S_hArr "hArr"
++#define sHTML_S_hearts "hearts"
++#define sHTML_S_hellip "hellip"
++#define sHTML_S_image "image"
++#define sHTML_S_infin "infin"
++#define sHTML_S_int "int"
++#define sHTML_S_Iota "Iota"
++#define sHTML_S_iota "iota"
++#define sHTML_S_isin "isin"
++#define sHTML_S_Kappa "Kappa"
++#define sHTML_S_kappa "kappa"
++#define sHTML_S_Lambda "Lambda"
++#define sHTML_S_lambda "lambda"
++#define sHTML_S_lang "lang"
++#define sHTML_S_larr "larr"
++#define sHTML_S_lArr "lArr"
++#define sHTML_S_lceil "lceil"
++#define sHTML_S_ldquo "ldquo"
++#define sHTML_S_le "le"
++#define sHTML_S_lfloor "lfloor"
++#define sHTML_S_lowast "lowast"
++#define sHTML_S_loz "loz"
++#define sHTML_S_lrm "lrm"
++#define sHTML_S_lsaquo "lsaquo"
++#define sHTML_S_lsquo "lsquo"
++#define sHTML_S_mdash "mdash"
++#define sHTML_S_minus "minus"
++#define sHTML_S_Mu "Mu"
++#define sHTML_S_mu "mu"
++#define sHTML_S_nabla "nabla"
++#define sHTML_S_ndash "ndash"
++#define sHTML_S_ne "ne"
++#define sHTML_S_ni "ni"
++#define sHTML_S_notin "notin"
++#define sHTML_S_nsub "nsub"
++#define sHTML_S_Nu "Nu"
++#define sHTML_S_nu "nu"
++#define sHTML_S_OElig "OElig"
++#define sHTML_S_oelig "oelig"
++#define sHTML_S_oline "oline"
++#define sHTML_S_Omega "Omega"
++#define sHTML_S_omega "omega"
++#define sHTML_S_Omicron "Omicron"
++#define sHTML_S_omicron "omicron"
++#define sHTML_S_oplus "oplus"
++#define sHTML_S_or "or"
++#define sHTML_S_otimes "otimes"
++#define sHTML_S_part "part"
++#define sHTML_S_permil "permil"
++#define sHTML_S_perp "perp"
++#define sHTML_S_Phi "Phi"
++#define sHTML_S_phi "phi"
++#define sHTML_S_Pi "Pi"
++#define sHTML_S_pi "pi"
++#define sHTML_S_piv "piv"
++#define sHTML_S_prime "prime"
++#define sHTML_S_Prime "Prime"
++#define sHTML_S_prod "prod"
++#define sHTML_S_prop "prop"
++#define sHTML_S_Psi "Psi"
++#define sHTML_S_psi "psi"
++#define sHTML_S_radic "radic"
++#define sHTML_S_rang "rang"
++#define sHTML_S_rarr "rarr"
++#define sHTML_S_rArr "rArr"
++#define sHTML_S_rceil "rceil"
++#define sHTML_S_rdquo "rdquo"
++#define sHTML_S_real "real"
++#define sHTML_S_rfloor "rfloor"
++#define sHTML_S_Rho "Rho"
++#define sHTML_S_rho "rho"
++#define sHTML_S_rlm "rlm"
++#define sHTML_S_rsaquo "rsaquo"
++#define sHTML_S_rsquo "rsquo"
++#define sHTML_S_sbquo "sbquo"
++#define sHTML_S_Scaron "Scaron"
++#define sHTML_S_scaron "scaron"
++#define sHTML_S_sdot "sdot"
++#define sHTML_S_Sigma "Sigma"
++#define sHTML_S_sigma "sigma"
++#define sHTML_S_sigmaf "sigmaf"
++#define sHTML_S_sim "sim"
++#define sHTML_S_spades "spades"
++#define sHTML_S_sub "sub"
++#define sHTML_S_sube "sube"
++#define sHTML_S_sum "sum"
++#define sHTML_S_sup "sup"
++#define sHTML_S_supe "supe"
++#define sHTML_S_Tau "Tau"
++#define sHTML_S_tau "tau"
++#define sHTML_S_there4 "there4"
++#define sHTML_S_Theta "Theta"
++#define sHTML_S_theta "theta"
++#define sHTML_S_thetasym "thetasym"
++#define sHTML_S_thinsp "thinsp"
++#define sHTML_S_tilde "tilde"
++#define sHTML_S_trade "trade"
++#define sHTML_S_uarr "uarr"
++#define sHTML_S_uArr "uArr"
++#define sHTML_S_upsih "upsih"
++#define sHTML_S_Upsilon "Upsilon"
++#define sHTML_S_upsilon "upsilon"
++#define sHTML_S_weierp "weierp"
++#define sHTML_S_Xi "Xi"
++#define sHTML_S_xi "xi"
++#define sHTML_S_Yuml "Yuml"
++#define sHTML_S_Zeta "Zeta"
++#define sHTML_S_zeta "zeta"
++#define sHTML_S_zwj "zwj"
++#define sHTML_S_zwnj "zwnj"
+ 
+ // HTML Attribut-Token (=Optionen)
+ 
+ // Attribute ohne Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_box, "BOX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_checked, "CHECKED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_compact, "COMPACT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_continue, "CONTINUE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_controls, "CONTROLS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_declare, "DECLARE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_disabled, "DISABLED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_folded, "FOLDED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_ismap, "ISMAP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_mayscript, "MAYSCRIPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_multiple, "MULTIPLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_noflow, "NOFLOW" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_nohref, "NOHREF" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_noresize, "NORESIZE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_noshade, "NOSHADE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_nowrap, "NOWRAP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_plain, "PLAIN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdfixed, "SDFIXED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_selected, "SELECTED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_shapes, "SHAPES" );
++#define sHTML_O_box "BOX"
++#define sHTML_O_checked "CHECKED"
++#define sHTML_O_compact "COMPACT"
++#define sHTML_O_continue "CONTINUE"
++#define sHTML_O_controls "CONTROLS"
++#define sHTML_O_declare "DECLARE"
++#define sHTML_O_disabled "DISABLED"
++#define sHTML_O_folded "FOLDED"
++#define sHTML_O_ismap "ISMAP"
++#define sHTML_O_mayscript "MAYSCRIPT"
++#define sHTML_O_multiple "MULTIPLE"
++#define sHTML_O_noflow "NOFLOW"
++#define sHTML_O_nohref "NOHREF"
++#define sHTML_O_noresize "NORESIZE"
++#define sHTML_O_noshade "NOSHADE"
++#define sHTML_O_nowrap "NOWRAP"
++#define sHTML_O_plain "PLAIN"
++#define sHTML_O_sdfixed "SDFIXED"
++#define sHTML_O_selected "SELECTED"
++#define sHTML_O_shapes "SHAPES"
+ 
+ // Attribute mit einem String als Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_above, "ABOVE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_accesskey, "ACCESSKEY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_accept, "ACCEPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_add_date, "ADD_DATE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_alt, "ALT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_axes, "AXES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_axis, "AXIS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_below, "BELOW" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_char, "CHAR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_class, "CLASS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_clip, "CLIP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_code, "CODE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_codetype, "CODETYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_colspec, "COLSPEC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_content, "CONTENT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_coords, "COORDS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dp, "DP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_enctype, "ENCTYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_error, "ERROR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_face, "FACE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_frameborder, "FRAMEBORDER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_httpequiv, "HTTP-EQUIV" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_language, "LANGUAGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_last_modified, "LAST_MODIFIED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_last_visit, "LAST_VISIT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_md, "MD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_n, "N" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_name, "NAME" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_notation, "NOTATION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_prompt, "PROMPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_shape, "SHAPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_standby, "STANDBY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_style, "STYLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_title, "TITLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_value, "VALUE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDval, "SDVAL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDnum, "SDNUM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdlibrary, "SDLIBRARY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdmodule, "SDMODULE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdevent, "SDEVENT-" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdaddparam, "SDADDPARAM-" );
++#define sHTML_O_above "ABOVE"
++#define sHTML_O_accesskey "ACCESSKEY"
++#define sHTML_O_accept "ACCEPT"
++#define sHTML_O_add_date "ADD_DATE"
++#define sHTML_O_alt "ALT"
++#define sHTML_O_axes "AXES"
++#define sHTML_O_axis "AXIS"
++#define sHTML_O_below "BELOW"
++#define sHTML_O_char "CHAR"
++#define sHTML_O_class "CLASS"
++#define sHTML_O_clip "CLIP"
++#define sHTML_O_code "CODE"
++#define sHTML_O_codetype "CODETYPE"
++#define sHTML_O_colspec "COLSPEC"
++#define sHTML_O_content "CONTENT"
++#define sHTML_O_coords "COORDS"
++#define sHTML_O_dp "DP"
++#define sHTML_O_enctype "ENCTYPE"
++#define sHTML_O_error "ERROR"
++#define sHTML_O_face "FACE"
++#define sHTML_O_frameborder "FRAMEBORDER"
++#define sHTML_O_httpequiv "HTTP-EQUIV"
++#define sHTML_O_language "LANGUAGE"
++#define sHTML_O_last_modified "LAST_MODIFIED"
++#define sHTML_O_last_visit "LAST_VISIT"
++#define sHTML_O_md "MD"
++#define sHTML_O_n "N"
++#define sHTML_O_name "NAME"
++#define sHTML_O_notation "NOTATION"
++#define sHTML_O_prompt "PROMPT"
++#define sHTML_O_shape "SHAPE"
++#define sHTML_O_standby "STANDBY"
++#define sHTML_O_style "STYLE"
++#define sHTML_O_title "TITLE"
++#define sHTML_O_value "VALUE"
++#define sHTML_O_SDval "SDVAL"
++#define sHTML_O_SDnum "SDNUM"
++#define sHTML_O_sdlibrary "SDLIBRARY"
++#define sHTML_O_sdmodule "SDMODULE"
++#define sHTML_O_sdevent "SDEVENT-"
++#define sHTML_O_sdaddparam "SDADDPARAM-"
+ 
+ // Attribute mit einem SGML-Identifier als Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_from, "FROM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_id, "ID" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_target, "TARGET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_to, "TO" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_until, "UNTIL" );
++#define sHTML_O_from "FROM"
++#define sHTML_O_id "ID"
++#define sHTML_O_target "TARGET"
++#define sHTML_O_to "TO"
++#define sHTML_O_until "UNTIL"
+ 
+ // Attribute mit einem URI als Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_action, "ACTION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_archive, "ARCHIVE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_background, "BACKGROUND" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_classid, "CLASSID" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_codebase, "CODEBASE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_data, "DATA" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dynsrc, "DYNSRC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dynsync, "DYNSYNC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_imagemap, "IMAGEMAP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_href, "HREF" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_lowsrc, "LOWSRC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_script, "SCRIPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_src, "SRC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_usemap, "USEMAP" );
++#define sHTML_O_action "ACTION"
++#define sHTML_O_archive "ARCHIVE"
++#define sHTML_O_background "BACKGROUND"
++#define sHTML_O_classid "CLASSID"
++#define sHTML_O_codebase "CODEBASE"
++#define sHTML_O_data "DATA"
++#define sHTML_O_dynsrc "DYNSRC"
++#define sHTML_O_dynsync "DYNSYNC"
++#define sHTML_O_imagemap "IMAGEMAP"
++#define sHTML_O_href "HREF"
++#define sHTML_O_lowsrc "LOWSRC"
++#define sHTML_O_script "SCRIPT"
++#define sHTML_O_src "SRC"
++#define sHTML_O_usemap "USEMAP"
+ 
+ // Attribute mit Entity-Namen als Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dingbat, "DINGBAT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sym, "SYM" );
++#define sHTML_O_dingbat "DINGBAT"
++#define sHTML_O_sym "SYM"
+ 
+ // Attribute mit einer Farbe als Wert (alle Netscape)
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_alink, "ALINK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bgcolor, "BGCOLOR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bordercolor, "BORDERCOLOR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bordercolorlight, "BORDERCOLORLIGHT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bordercolordark, "BORDERCOLORDARK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_color, "COLOR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_link, "LINK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_text, "TEXT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_vlink, "VLINK" );
++#define sHTML_O_alink "ALINK"
++#define sHTML_O_bgcolor "BGCOLOR"
++#define sHTML_O_bordercolor "BORDERCOLOR"
++#define sHTML_O_bordercolorlight "BORDERCOLORLIGHT"
++#define sHTML_O_bordercolordark "BORDERCOLORDARK"
++#define sHTML_O_color "COLOR"
++#define sHTML_O_link "LINK"
++#define sHTML_O_text "TEXT"
++#define sHTML_O_vlink "VLINK"
+ 
+ // Attribute mit einem numerischen Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_border, "BORDER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_cellspacing, "CELLSPACING" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_cellpadding, "CELLPADDING" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_charoff, "CHAROFF" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_colspan, "COLSPAN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_framespacing, "FRAMESPACING" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_gutter, "GUTTER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_indent, "INDENT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_height, "HEIGHT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_hspace, "HSPACE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_left, "LEFT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_leftmargin, "LEFTMARGIN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_loop, "LOOP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_marginheight, "MARGINHEIGHT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_marginwidth, "MARGINWIDTH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_max, "MAX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_maxlength, "MAXLENGTH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_min, "MIN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_pagex, "PAGEX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_pagey, "PAGEY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_pointsize, "POINT-SIZE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rowspan, "ROWSPAN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_scrollamount, "SCROLLAMOUNT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_scrolldelay, "SCROLLDELAY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_seqnum, "SEQNUM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_skip, "SKIP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_span, "SPAN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_tabindex, "TABINDEX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_top, "TOP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_topmargin, "TOPMARGIN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_vspace, "VSPACE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_weight, "WEIGHT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_width, "WIDTH" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_x, "X" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_y, "Y" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_zindex, "Z-INDEX" );
++#define sHTML_O_border "BORDER"
++#define sHTML_O_cellspacing "CELLSPACING"
++#define sHTML_O_cellpadding "CELLPADDING"
++#define sHTML_O_charoff "CHAROFF"
++#define sHTML_O_colspan "COLSPAN"
++#define sHTML_O_framespacing "FRAMESPACING"
++#define sHTML_O_gutter "GUTTER"
++#define sHTML_O_indent "INDENT"
++#define sHTML_O_height "HEIGHT"
++#define sHTML_O_hspace "HSPACE"
++#define sHTML_O_left "LEFT"
++#define sHTML_O_leftmargin "LEFTMARGIN"
++#define sHTML_O_loop "LOOP"
++#define sHTML_O_marginheight "MARGINHEIGHT"
++#define sHTML_O_marginwidth "MARGINWIDTH"
++#define sHTML_O_max "MAX"
++#define sHTML_O_maxlength "MAXLENGTH"
++#define sHTML_O_min "MIN"
++#define sHTML_O_pagex "PAGEX"
++#define sHTML_O_pagey "PAGEY"
++#define sHTML_O_pointsize "POINT-SIZE"
++#define sHTML_O_rowspan "ROWSPAN"
++#define sHTML_O_scrollamount "SCROLLAMOUNT"
++#define sHTML_O_scrolldelay "SCROLLDELAY"
++#define sHTML_O_seqnum "SEQNUM"
++#define sHTML_O_skip "SKIP"
++#define sHTML_O_span "SPAN"
++#define sHTML_O_tabindex "TABINDEX"
++#define sHTML_O_top "TOP"
++#define sHTML_O_topmargin "TOPMARGIN"
++#define sHTML_O_vspace "VSPACE"
++#define sHTML_O_weight "WEIGHT"
++#define sHTML_O_width "WIDTH"
++#define sHTML_O_x "X"
++#define sHTML_O_y "Y"
++#define sHTML_O_zindex "Z-INDEX"
+ 
+ // Attribute mit Enum-Werten
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_behavior, "BEHAVIOR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bgproperties, "BGPROPERTIES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_clear, "CLEAR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dir, "DIR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_direction, "DIRECTION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_format, "FORMAT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_frame, "FRAME" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_lang, "LANG" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_method, "METHOD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_palette, "PALETTE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rel, "REL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rev, "REV" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rules, "RULES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_scrolling, "SCROLLING" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdreadonly, "READONLY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_subtype, "SUBTYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_type, "TYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_valign, "VALIGN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_valuetype, "VALUETYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_visibility, "VISIBILITY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_wrap, "WRAP" );
++#define sHTML_O_behavior "BEHAVIOR"
++#define sHTML_O_bgproperties "BGPROPERTIES"
++#define sHTML_O_clear "CLEAR"
++#define sHTML_O_dir "DIR"
++#define sHTML_O_direction "DIRECTION"
++#define sHTML_O_format "FORMAT"
++#define sHTML_O_frame "FRAME"
++#define sHTML_O_lang "LANG"
++#define sHTML_O_method "METHOD"
++#define sHTML_O_palette "PALETTE"
++#define sHTML_O_rel "REL"
++#define sHTML_O_rev "REV"
++#define sHTML_O_rules "RULES"
++#define sHTML_O_scrolling "SCROLLING"
++#define sHTML_O_sdreadonly "READONLY"
++#define sHTML_O_subtype "SUBTYPE"
++#define sHTML_O_type "TYPE"
++#define sHTML_O_valign "VALIGN"
++#define sHTML_O_valuetype "VALUETYPE"
++#define sHTML_O_visibility "VISIBILITY"
++#define sHTML_O_wrap "WRAP"
+ 
+ // Attribute mit Script-Code als Wert
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onblur, "ONBLUR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onchange, "ONCHANGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onclick, "ONCLICK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onfocus, "ONFOCUS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onload, "ONLOAD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onmouseover, "ONMOUSEOVER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onreset, "ONRESET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onselect, "ONSELECT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onsubmit, "ONSUBMIT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onunload, "ONUNLOAD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onabort, "ONABORT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onerror, "ONERROR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onmouseout, "ONMOUSEOUT" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonblur, "SDONBLUR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonchange, "SDONCHANGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonclick, "SDONCLICK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonfocus, "SDONFOCUS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonload, "SDONLOAD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonmouseover, "SDONMOUSEOVER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonreset, "SDONRESET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonselect, "SDONSELECT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonsubmit, "SDONSUBMIT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonunload, "SDONUNLOAD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonabort, "SDONABORT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonerror, "SDONERROR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonmouseout, "SDONMOUSEOUT" );
++#define sHTML_O_onblur "ONBLUR"
++#define sHTML_O_onchange "ONCHANGE"
++#define sHTML_O_onclick "ONCLICK"
++#define sHTML_O_onfocus "ONFOCUS"
++#define sHTML_O_onload "ONLOAD"
++#define sHTML_O_onmouseover "ONMOUSEOVER"
++#define sHTML_O_onreset "ONRESET"
++#define sHTML_O_onselect "ONSELECT"
++#define sHTML_O_onsubmit "ONSUBMIT"
++#define sHTML_O_onunload "ONUNLOAD"
++#define sHTML_O_onabort "ONABORT"
++#define sHTML_O_onerror "ONERROR"
++#define sHTML_O_onmouseout "ONMOUSEOUT"
++
++#define sHTML_O_SDonblur "SDONBLUR"
++#define sHTML_O_SDonchange "SDONCHANGE"
++#define sHTML_O_SDonclick "SDONCLICK"
++#define sHTML_O_SDonfocus "SDONFOCUS"
++#define sHTML_O_SDonload "SDONLOAD"
++#define sHTML_O_SDonmouseover "SDONMOUSEOVER"
++#define sHTML_O_SDonreset "SDONRESET"
++#define sHTML_O_SDonselect "SDONSELECT"
++#define sHTML_O_SDonsubmit "SDONSUBMIT"
++#define sHTML_O_SDonunload "SDONUNLOAD"
++#define sHTML_O_SDonabort "SDONABORT"
++#define sHTML_O_SDonerror "SDONERROR"
++#define sHTML_O_SDonmouseout "SDONMOUSEOUT"
+ 
+ // Attribute mit Kontext-abhaengigen Werten
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_align, "ALIGN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_cols, "COLS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rows, "ROWS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_start, "START" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_size, "SIZE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_units, "UNITS" );
++#define sHTML_O_align "ALIGN"
++#define sHTML_O_cols "COLS"
++#define sHTML_O_rows "ROWS"
++#define sHTML_O_start "START"
++#define sHTML_O_size "SIZE"
++#define sHTML_O_units "UNITS"
+ 
+ 
+ // Werte von <INPUT TYPE=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_text, "TEXT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_password, "PASSWORD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_checkbox, "CHECKBOX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_radio, "RADIO" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_range, "RANGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_scribble, "SCRIBBLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_file, "FILE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_hidden, "HIDDEN" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_submit, "SUBMIT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_image, "IMAGE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_reset, "RESET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_button, "BUTTON" );
++#define sHTML_IT_text "TEXT"
++#define sHTML_IT_password "PASSWORD"
++#define sHTML_IT_checkbox "CHECKBOX"
++#define sHTML_IT_radio "RADIO"
++#define sHTML_IT_range "RANGE"
++#define sHTML_IT_scribble "SCRIBBLE"
++#define sHTML_IT_file "FILE"
++#define sHTML_IT_hidden "HIDDEN"
++#define sHTML_IT_submit "SUBMIT"
++#define sHTML_IT_image "IMAGE"
++#define sHTML_IT_reset "RESET"
++#define sHTML_IT_button "BUTTON"
+ 
+ // Werte von <TABLE FRAME=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_void, "VOID" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_above, "ABOVE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_below, "BELOW" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_hsides, "HSIDES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_lhs, "LHS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_rhs, "RHS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_vsides, "VSIDES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_box, "BOX" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_border, "BORDER" );
++#define sHTML_TF_void "VOID"
++#define sHTML_TF_above "ABOVE"
++#define sHTML_TF_below "BELOW"
++#define sHTML_TF_hsides "HSIDES"
++#define sHTML_TF_lhs "LHS"
++#define sHTML_TF_rhs "RHS"
++#define sHTML_TF_vsides "VSIDES"
++#define sHTML_TF_box "BOX"
++#define sHTML_TF_border "BORDER"
+ 
+ // Werte von <TABLE RULES=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_none, "NONE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_groups, "GROUPS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_rows, "ROWS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_cols, "COLS" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_all, "ALL" );
++#define sHTML_TR_none "NONE"
++#define sHTML_TR_groups "GROUPS"
++#define sHTML_TR_rows "ROWS"
++#define sHTML_TR_cols "COLS"
++#define sHTML_TR_all "ALL"
+ 
+ // Werte von <P, H?, TR, TH, TD ALIGN=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_left, "LEFT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_center, "CENTER" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_middle, "MIDDLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_right, "RIGHT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_justify, "JUSTIFY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_char, "CHAR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_all, "ALL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_none, "NONE" );
++#define sHTML_AL_left "LEFT"
++#define sHTML_AL_center "CENTER"
++#define sHTML_AL_middle "MIDDLE"
++#define sHTML_AL_right "RIGHT"
++#define sHTML_AL_justify "JUSTIFY"
++#define sHTML_AL_char "CHAR"
++#define sHTML_AL_all "ALL"
++#define sHTML_AL_none "NONE"
+ 
+ // Werte von <TR VALIGN=...>, <IMG ALIGN=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_top, "TOP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_middle, "MIDDLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_bottom, "BOTTOM" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_baseline, "BASELINE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_texttop, "TEXTTOP" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_absmiddle, "ABSMIDDLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_absbottom, "ABSBOTTOM" );
++#define sHTML_VA_top "TOP"
++#define sHTML_VA_middle "MIDDLE"
++#define sHTML_VA_bottom "BOTTOM"
++#define sHTML_VA_baseline "BASELINE"
++#define sHTML_VA_texttop "TEXTTOP"
++#define sHTML_VA_absmiddle "ABSMIDDLE"
++#define sHTML_VA_absbottom "ABSBOTTOM"
+ 
+ // Werte von <AREA SHAPE=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_rect, "RECT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_rectangle, "RECTANGLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_circ, "CIRC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_circle, "CIRCLE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_poly, "POLY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_polygon, "POLYGON" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_default, "DEFAULT" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_starbasic, "STARBASIC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_javascript, "JAVASCRIPT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_javascript11, "JAVASCRIPT1.1" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_livescript, "LIVESCRIPT" );
+-//extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_vbscript, "VBSCRIPT" );
+-//extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_unused_javascript, "UNUSED JAVASCRIPT" );
+-//extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_starone, "StarScript" );
++#define sHTML_SH_rect "RECT"
++#define sHTML_SH_rectangle "RECTANGLE"
++#define sHTML_SH_circ "CIRC"
++#define sHTML_SH_circle "CIRCLE"
++#define sHTML_SH_poly "POLY"
++#define sHTML_SH_polygon "POLYGON"
++#define sHTML_SH_default "DEFAULT"
++
++#define sHTML_LG_starbasic "STARBASIC"
++#define sHTML_LG_javascript "JAVASCRIPT"
++#define sHTML_LG_javascript11 "JAVASCRIPT1.1"
++#define sHTML_LG_livescript "LIVESCRIPT"
++//#define sHTML_LG_vbscript "VBSCRIPT"
++//#define sHTML_LG_unused_javascript "UNUSED JAVASCRIPT"
++//#define sHTML_LG_starone "StarScript"
+ 
+ // ein par Werte fuer unser StarBASIC-Support
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SB_library, "$LIBRARY:" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SB_module, "$MODULE:" );
++#define sHTML_SB_library "$LIBRARY:"
++#define sHTML_SB_module "$MODULE:"
+ 
+ 
+ // Werte von <FORM METHOD=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_METHOD_get, "GET" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_METHOD_post, "POST" );
++#define sHTML_METHOD_get "GET"
++#define sHTML_METHOD_post "POST"
+ 
+ // Werte von <META CONTENT/HTTP-EQUIV=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_refresh, "REFRESH" );
++#define sHTML_META_refresh "REFRESH"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_generator, "GENERATOR" );
++#define sHTML_META_generator "GENERATOR"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_author, "AUTHOR" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_classification, "CLASSIFICATION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_description, "DESCRIPTION" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_keywords, "KEYWORDS" );
++#define sHTML_META_author "AUTHOR"
++#define sHTML_META_classification "CLASSIFICATION"
++#define sHTML_META_description "DESCRIPTION"
++#define sHTML_META_keywords "KEYWORDS"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_changed, "CHANGED" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_changedby, "CHANGEDBY" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_created, "CREATED" );
++#define sHTML_META_changed "CHANGED"
++#define sHTML_META_changedby "CHANGEDBY"
++#define sHTML_META_created "CREATED"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_content_type, "CONTENT-TYPE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_content_script_type, "CONTENT-SCRIPT-TYPE" );
++#define sHTML_META_content_type "CONTENT-TYPE"
++#define sHTML_META_content_script_type "CONTENT-SCRIPT-TYPE"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_sdendnote, "SDENDNOTE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_sdfootnote, "SDFOOTNOTE" );
++#define sHTML_META_sdendnote "SDENDNOTE"
++#define sHTML_META_sdfootnote "SDFOOTNOTE"
+ 
+ // Werte von <UL TYPE=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ULTYPE_disc, "DISC" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ULTYPE_square, "SQUARE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ULTYPE_circle, "CIRCLE" );
++#define sHTML_ULTYPE_disc "DISC"
++#define sHTML_ULTYPE_square "SQUARE"
++#define sHTML_ULTYPE_circle "CIRCLE"
+ 
+ // Werte von <FRAMESET SCROLLING=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SCROLL_yes, "YES" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SCROLL_no, "NO" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SCROLL_auto, "AUTO" );
++#define sHTML_SCROLL_yes "YES"
++#define sHTML_SCROLL_no "NO"
++#define sHTML_SCROLL_auto "AUTO"
+ 
+ // Werte von <MULTICOL TYPE=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_MCTYPE_horizontal, "HORIZONTAL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_MCTYPE_vertical, "VERTICAL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_MCTYPE_box, "BOX" );
++#define sHTML_MCTYPE_horizontal "HORIZONTAL"
++#define sHTML_MCTYPE_vertical "VERTICAL"
++#define sHTML_MCTYPE_box "BOX"
+ 
+ // Werte von <MARQUEE BEHAVIOUR=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_BEHAV_scroll, "SCROLL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_BEHAV_slide, "SLIDE" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_BEHAV_alternate, "ALTERNATE" );
++#define sHTML_BEHAV_scroll "SCROLL"
++#define sHTML_BEHAV_slide "SLIDE"
++#define sHTML_BEHAV_alternate "ALTERNATE"
+ 
+ // Werte von <MARQUEE LOOP=...>
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LOOP_infinite, "INFINITE" );
++#define sHTML_LOOP_infinite "INFINITE"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SPTYPE_block, "BLOCK" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SPTYPE_horizontal, "HORIZONTAL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SPTYPE_vertical, "VERTICAL" );
++#define sHTML_SPTYPE_block "BLOCK"
++#define sHTML_SPTYPE_horizontal "HORIZONTAL"
++#define sHTML_SPTYPE_vertical "VERTICAL"
+ 
+ 
+ // interne Grafik-Namen
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_private_image, "private:image/" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_internal_gopher, "internal-gopher-" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_internal_icon, "internal-icon-" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_binary, "binary" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_image, "image" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_index, "index" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_menu, "menu" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_movie, "movie" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_sound, "sound" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_telnet, "telnet" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_text, "text" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_unknown, "unknown" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_baddata, "baddata" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_delayed, "delayed" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_embed, "embed" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_insecure, "insecure" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_notfound, "notfound" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdendnote, "sdendnote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdendnote_anc, "sdendnoteanc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdendnote_sym, "sdendnotesym" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfootnote, "sdfootnote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfootnote_anc, "sdfootnoteanc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfootnote_sym, "sdfootnotesym" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_FTN_anchor, "anc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_FTN_symbol, "sym" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_off, "OFF" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_hard, "HARD" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_soft, "SOFT" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_virtual, "VIRTUAL" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_physical, "PHYSICAL" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_on, "on" );
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ET_url, "application/x-www-form-urlencoded" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ET_multipart, "multipart/form-data" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ET_text, "text/plain" );
++#define sHTML_private_image "private:image/"
++
++#define sHTML_internal_gopher "internal-gopher-"
++#define sHTML_internal_icon "internal-icon-"
++
++#define sHTML_INT_GOPHER_binary "binary"
++#define sHTML_INT_GOPHER_image "image"
++#define sHTML_INT_GOPHER_index "index"
++#define sHTML_INT_GOPHER_menu "menu"
++#define sHTML_INT_GOPHER_movie "movie"
++#define sHTML_INT_GOPHER_sound "sound"
++#define sHTML_INT_GOPHER_telnet "telnet"
++#define sHTML_INT_GOPHER_text "text"
++#define sHTML_INT_GOPHER_unknown "unknown"
++#define sHTML_INT_ICON_baddata "baddata"
++#define sHTML_INT_ICON_delayed "delayed"
++#define sHTML_INT_ICON_embed "embed"
++#define sHTML_INT_ICON_insecure "insecure"
++#define sHTML_INT_ICON_notfound "notfound"
++
++#define sHTML_sdendnote "sdendnote"
++#define sHTML_sdendnote_anc "sdendnoteanc"
++#define sHTML_sdendnote_sym "sdendnotesym"
++#define sHTML_sdfootnote "sdfootnote"
++#define sHTML_sdfootnote_anc "sdfootnoteanc"
++#define sHTML_sdfootnote_sym "sdfootnotesym"
++#define sHTML_FTN_anchor "anc"
++#define sHTML_FTN_symbol "sym"
++
++#define sHTML_WW_off "OFF"
++#define sHTML_WW_hard "HARD"
++#define sHTML_WW_soft "SOFT"
++#define sHTML_WW_virtual "VIRTUAL"
++#define sHTML_WW_physical "PHYSICAL"
++
++#define sHTML_on "on"
++
++#define sHTML_ET_url "application/x-www-form-urlencoded"
++#define sHTML_ET_multipart "multipart/form-data"
++#define sHTML_ET_text "text/plain"
+ 
+ 
+ #endif
+diff --git svtools/source/svhtml/htmlkey2.cxx svtools/source/svhtml/htmlkey2.cxx
+deleted file mode 100644
+index 3a28484..0000000
+--- svtools/source/svhtml/htmlkey2.cxx
++++ /dev/null
+@@ -1,835 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: htmlkey2.cxx,v $
+- *
+- *  $Revision: 1.8 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 15:26:06 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_svtools.hxx"
+-
+-#include "htmlkywd.hxx"
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doctype32,
+-	"HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doctype40,
+-	"HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"" );
+-
+-
+-// diese werden nur eingeschaltet
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_area, "AREA" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_base, "BASE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_comment, "!--" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doctype, "!DOCTYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_embed, "EMBED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_figureoverlay, "OVERLAY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_horzrule, "HR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_horztab, "TAB" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_image, "IMG" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_image2, "IMAGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_input, "INPUT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_isindex, "ISINDEX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_linebreak, "BR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_li, "LI" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_link, "LINK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_meta, "META" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_nextid, "NEXTID" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_nobr, "NOBR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_of, "OF" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_option, "OPTION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_param, "PARAM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_range, "RANGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_spacer, "SPACER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_wbr, "WBR" );
+-
+-// diese werden wieder abgeschaltet
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_abbreviation, "ABBREV" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_above, "ABOVE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_acronym, "ACRONYM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_address, "ADDRESS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_anchor, "A" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_applet, "APPLET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_array, "ARRAY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_author, "AU" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_banner, "BANNER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bar, "BAR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_basefont, "BASEFONT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_below, "BELOW" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bigprint, "BIG" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_blink, "BLINK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_blockquote, "BLOCKQUOTE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_blockquote30, "BQ" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_body, "BODY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bold, "B" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_boldtext, "BT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_box, "BOX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_caption, "CAPTION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_center, "CENTER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_citiation, "CITE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_code, "CODE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_col, "COL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_colgroup, "COLGROUP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_credit, "CREDIT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dd, "DD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_deflist, "DL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_deletedtext, "DEL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dirlist, "DIR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_division, "DIV" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dot, "DOT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doubledot, "DDOT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dt, "DT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_emphasis, "EM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_figure, "FIG" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_font, "FONT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_footnote, "FN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_form, "FORM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_frame, "FRAME" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_frameset, "FRAMESET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_hat, "HAT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head1, "H1" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head2, "H2" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head3, "H3" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head4, "H4" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head5, "H5" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head6, "H6" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head, "HEAD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_html, "HTML" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_iframe, "IFRAME" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ilayer, "ILAYER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_insertedtext, "INS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_italic, "I" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_item, "ITEM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_keyboard, "KBD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_language, "LANG" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_layer, "LAYER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_listheader, "LH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_map, "MAP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_math, "MATH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_menulist, "MENU" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_multicol, "MULTICOL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noembed, "NOEMBED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noframe, "NOFRAME" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noframes, "NOFRAMES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noscript, "NOSCRIPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_note, "NOTE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_object, "OBJECT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_orderlist, "OL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_parabreak, "P" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_person, "PERSON" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_plaintext, "T" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_preformtxt, "PRE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_root, "ROOT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_row, "ROW" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sample, "SAMP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_script, "SCRIPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_select, "SELECT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_shortquote, "Q" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_smallprint, "SMALL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_span, "SPAN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_squareroot, "AQRT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_strikethrough, "S" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_strong, "STRONG" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_style, "STYLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_subscript, "SUB" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_superscript, "SUP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_table, "TABLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tablerow, "TR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tabledata, "TD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tableheader, "TH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tbody, "TBODY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_teletype, "TT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_text, "TEXT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_textarea, "TEXTAREA" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_textflow, "TEXTFLOW" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tfoot, "TFOOT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_thead, "THEAD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tilde, "TILDE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_title, "TITLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_underline, "U" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_unorderlist, "UL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_variable, "VAR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_vector, "VEC" );
+-
+-// obsolete features
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_xmp, "XMP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_listing, "LISTING" );
+-
+-// proposed features
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_definstance, "DFN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_strike, "STRIKE" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bgsound, "BGSOUND" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_comment2, "COMMENT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_marquee, "MARQUEE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_plaintext2, "PLAINTEXT" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfield, "SDFIELD" );
+-
+-// die Namen fuer alle Zeichen
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_lt, "lt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_gt, "gt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_amp, "amp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_quot, "quot" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Aacute, "Aacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Agrave, "Agrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Acirc, "Acirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Atilde, "Atilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Aring, "Aring" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Auml, "Auml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_AElig, "AElig" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ccedil, "Ccedil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Eacute, "Eacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Egrave, "Egrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ecirc, "Ecirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Euml, "Euml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Iacute, "Iacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Igrave, "Igrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Icirc, "Icirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Iuml, "Iuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_ETH, "ETH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ntilde, "Ntilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Oacute, "Oacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ograve, "Ograve" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ocirc, "Ocirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Otilde, "Otilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ouml, "Ouml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Oslash, "Oslash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Uacute, "Uacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ugrave, "Ugrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ucirc, "Ucirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Uuml, "Uuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Yacute, "Yacute" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_THORN, "THORN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_szlig, "szlig" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_aacute, "aacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_agrave, "agrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_acirc, "acirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_atilde, "atilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_aring, "aring" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_auml, "auml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_aelig, "aelig" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ccedil, "ccedil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_eacute, "eacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_egrave, "egrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ecirc, "ecirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_euml, "euml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iacute, "iacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_igrave, "igrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_icirc, "icirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iuml, "iuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_eth, "eth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ntilde, "ntilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oacute, "oacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ograve, "ograve" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ocirc, "ocirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_otilde, "otilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ouml, "ouml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oslash, "oslash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uacute, "uacute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ugrave, "ugrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ucirc, "ucirc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uuml, "uuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_yacute, "yacute" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_thorn, "thorn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_yuml, "yuml" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_acute, "acute" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_brvbar, "brvbar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cedil, "cedil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cent, "cent" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_copy, "copy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_curren, "curren" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_deg, "deg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_divide, "divide" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frac12, "frac12" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frac14, "frac14" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frac34, "frac34" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iexcl, "iexcl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iquest, "iquest" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_laquo, "laquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_macr, "macr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_micro, "micro" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_middot, "middot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nbsp, "nbsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_not, "not" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ordf, "ordf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ordm, "ordm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_para, "para" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_plusmn, "plusmn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_pound, "pound" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_raquo, "raquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_reg, "reg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sect, "sect" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_shy, "shy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup1, "sup1" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup2, "sup2" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup3, "sup3" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_times, "times" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uml, "uml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_yen, "yen" );
+-
+-// Netscape kennt noch ein paar in Grossbuchstaben ...
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_LT, "LT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_GT, "GT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_AMP, "AMP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_QUOT, "QUOT" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_COPY, "COPY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_REG, "REG" );
+-
+-// HTML4
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_alefsym, "alefsym" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Alpha, "Alpha" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_alpha, "alpha" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_and, "and" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ang, "ang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_asymp, "asymp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_bdquo, "bdquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Beta, "Beta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_beta, "beta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_bull, "bull" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cap, "cap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_chi, "chi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Chi, "Chi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_circ, "circ" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_clubs, "clubs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cong, "cong" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_crarr, "crarr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cup, "cup" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_dagger, "dagger" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Dagger, "Dagger" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_darr, "darr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_dArr, "dArr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Delta, "Delta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_delta, "delta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_diams, "diams" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_empty, "empty" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_emsp, "emsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ensp, "ensp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Epsilon, "Epsilon" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_epsilon, "epsilon" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_equiv, "equiv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Eta, "Eta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_eta, "eta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_euro, "euro" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_exist, "exist" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_fnof, "fnof" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_forall, "forall" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frasl, "frasl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Gamma, "Gamma" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_gamma, "gamma" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ge, "ge" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_harr, "harr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_hArr, "hArr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_hearts, "hearts" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_hellip, "hellip" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_image, "image" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_infin, "infin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_int, "int" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Iota, "Iota" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iota, "iota" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_isin, "isin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Kappa, "Kappa" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_kappa, "kappa" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Lambda, "Lambda" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lambda, "lambda" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lang, "lang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_larr, "larr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lArr, "lArr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lceil, "lceil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ldquo, "ldquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_le, "le" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lfloor, "lfloor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lowast, "lowast" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_loz, "loz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lrm, "lrm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lsaquo, "lsaquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lsquo, "lsquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_mdash, "mdash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_minus, "minus" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Mu, "Mu" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_mu, "mu" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nabla, "nabla" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ndash, "ndash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ne, "ne" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ni, "ni" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_notin, "notin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nsub, "nsub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Nu, "Nu" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nu, "nu" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_OElig, "OElig" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oelig, "oelig" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oline, "oline" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Omega, "Omega" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_omega, "omega" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Omicron, "Omicron" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_omicron, "omicron" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oplus, "oplus" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_or, "or" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_otimes, "otimes" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_part, "part" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_permil, "permil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_perp, "perp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Phi, "Phi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_phi, "phi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Pi, "Pi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_pi, "pi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_piv, "piv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_prime, "prime" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Prime, "Prime" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_prod, "prod" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_prop, "prop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Psi, "Psi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_psi, "psi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_radic, "radic" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rang, "rang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rarr, "rarr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rArr, "rArr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rceil, "rceil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rdquo, "rdquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_real, "real" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rfloor, "rfloor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Rho, "Rho" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rho, "rho" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rlm, "rlm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rsaquo, "rsaquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rsquo, "rsquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sbquo, "sbquo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Scaron, "Scaron" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_scaron, "scaron" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sdot, "sdot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Sigma, "Sigma" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sigma, "sigma" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sigmaf, "sigmaf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sim, "sim" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_spades, "spades" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sub, "sub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sube, "sube" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sum, "sum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup, "sup" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_supe, "supe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Tau, "Tau" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_tau, "tau" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_there4, "there4" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Theta, "Theta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_theta, "theta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_thetasym, "thetasym" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_thinsp, "thinsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_tilde, "tilde" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_trade, "trade" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uarr, "uarr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uArr, "uArr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_upsih, "upsih" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Upsilon, "Upsilon" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_upsilon, "upsilon" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_weierp, "weierp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Xi, "Xi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_xi, "xi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Yuml, "Yuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Zeta, "Zeta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_zeta, "zeta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_zwj, "zwj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_zwnj, "zwnj" );
+-
+-// HTML Attribut-Token (=Optionen)
+-
+-// Attribute ohne Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_box, "BOX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_checked, "CHECKED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_compact, "COMPACT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_continue, "CONTINUE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_controls, "CONTROLS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_declare, "DECLARE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_disabled, "DISABLED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_folded, "FOLDED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_ismap, "ISMAP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_mayscript, "MAYSCRIPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_multiple, "MULTIPLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_noflow, "NOFLOW" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_nohref, "NOHREF" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_noresize, "NORESIZE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_noshade, "NOSHADE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_nowrap, "NOWRAP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_plain, "PLAIN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdfixed, "SDFIXED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_selected, "SELECTED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_shapes, "SHAPES" );
+-
+-// Attribute mit einem String als Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_above, "ABOVE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_accesskey, "ACCESSKEY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_accept, "ACCEPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_add_date, "ADD_DATE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_alt, "ALT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_axes, "AXES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_axis, "AXIS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_below, "BELOW" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_char, "CHAR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_class, "CLASS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_clip, "CLIP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_code, "CODE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_codetype, "CODETYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_colspec, "COLSPEC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_content, "CONTENT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_coords, "COORDS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dp, "DP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_enctype, "ENCTYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_error, "ERROR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_face, "FACE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_frameborder, "FRAMEBORDER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_httpequiv, "HTTP-EQUIV" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_language, "LANGUAGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_last_modified, "LAST_MODIFIED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_last_visit, "LAST_VISIT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_md, "MD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_n, "N" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_name, "NAME" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_notation, "NOTATION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_prompt, "PROMPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_shape, "SHAPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_standby, "STANDBY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_style, "STYLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_title, "TITLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_value, "VALUE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDval, "SDVAL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDnum, "SDNUM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdlibrary, "SDLIBRARY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdmodule, "SDMODULE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdevent, "SDEVENT-" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdaddparam, "SDADDPARAM-" );
+-
+-// Attribute mit einem SGML-Identifier als Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_from, "FROM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_id, "ID" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_target, "TARGET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_to, "TO" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_until, "UNTIL" );
+-
+-// Attribute mit einem URI als Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_action, "ACTION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_archive, "ARCHIVE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_background, "BACKGROUND" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_classid, "CLASSID" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_codebase, "CODEBASE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_data, "DATA" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dynsrc, "DYNSRC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dynsync, "DYNSYNC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_imagemap, "IMAGEMAP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_href, "HREF" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_lowsrc, "LOWSRC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_script, "SCRIPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_src, "SRC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_usemap, "USEMAP" );
+-
+-// Attribute mit Entity-Namen als Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dingbat, "DINGBAT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sym, "SYM" );
+-
+-// Attribute mit einer Farbe als Wert (alle Netscape)
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_alink, "ALINK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bgcolor, "BGCOLOR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bordercolor, "BORDERCOLOR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bordercolorlight, "BORDERCOLORLIGHT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bordercolordark, "BORDERCOLORDARK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_color, "COLOR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_link, "LINK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_text, "TEXT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_vlink, "VLINK" );
+-
+-// Attribute mit einem numerischen Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_border, "BORDER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_cellspacing, "CELLSPACING" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_cellpadding, "CELLPADDING" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_charoff, "CHAROFF" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_colspan, "COLSPAN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_framespacing, "FRAMESPACING" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_gutter, "GUTTER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_indent, "INDENT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_height, "HEIGHT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_hspace, "HSPACE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_left, "LEFT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_leftmargin, "LEFTMARGIN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_loop, "LOOP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_marginheight, "MARGINHEIGHT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_marginwidth, "MARGINWIDTH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_max, "MAX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_maxlength, "MAXLENGTH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_min, "MIN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_pagex, "PAGEX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_pagey, "PAGEY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_pointsize, "POINT-SIZE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rowspan, "ROWSPAN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_scrollamount, "SCROLLAMOUNT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_scrolldelay, "SCROLLDELAY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_seqnum, "SEQNUM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_skip, "SKIP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_span, "SPAN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_tabindex, "TABINDEX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_top, "TOP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_topmargin, "TOPMARGIN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_vspace, "VSPACE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_weight, "WEIGHT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_width, "WIDTH" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_x, "X" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_y, "Y" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_zindex, "Z-INDEX" );
+-
+-// Attribute mit Enum-Werten
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_behavior, "BEHAVIOR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bgproperties, "BGPROPERTIES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_clear, "CLEAR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dir, "DIR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_direction, "DIRECTION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_format, "FORMAT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_frame, "FRAME" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_lang, "LANG" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_method, "METHOD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_palette, "PALETTE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rel, "REL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rev, "REV" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rules, "RULES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_scrolling, "SCROLLING" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdreadonly, "READONLY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_subtype, "SUBTYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_type, "TYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_valign, "VALIGN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_valuetype, "VALUETYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_visibility, "VISIBILITY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_wrap, "WRAP" );
+-
+-// Attribute mit Script-Code als Wert
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onblur, "ONBLUR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onchange, "ONCHANGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onclick, "ONCLICK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onfocus, "ONFOCUS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onload, "ONLOAD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onmouseover, "ONMOUSEOVER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onreset, "ONRESET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onselect, "ONSELECT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onsubmit, "ONSUBMIT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onunload, "ONUNLOAD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onabort, "ONABORT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onerror, "ONERROR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onmouseout, "ONMOUSEOUT" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonblur, "SDONBLUR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonchange, "SDONCHANGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonclick, "SDONCLICK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonfocus, "SDONFOCUS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonload, "SDONLOAD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonmouseover, "SDONMOUSEOVER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonreset, "SDONRESET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonselect, "SDONSELECT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonsubmit, "SDONSUBMIT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonunload, "SDONUNLOAD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonabort, "SDONABORT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonerror, "SDONERROR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonmouseout, "SDONMOUSEOUT" );
+-
+-// Attribute mit Kontext-abhaengigen Werten
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_align, "ALIGN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_cols, "COLS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rows, "ROWS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_start, "START" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_size, "SIZE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_units, "UNITS" );
+-
+-
+-// Werte von <INPUT TYPE=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_text, "TEXT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_password, "PASSWORD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_checkbox, "CHECKBOX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_radio, "RADIO" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_range, "RANGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_scribble, "SCRIBBLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_file, "FILE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_hidden, "HIDDEN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_submit, "SUBMIT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_image, "IMAGE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_reset, "RESET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_button, "BUTTON" );
+-
+-// Werte von <TABLE FRAME=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_void, "VOID" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_above, "ABOVE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_below, "BELOW" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_hsides, "HSIDES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_lhs, "LHS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_rhs, "RHS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_vsides, "VSIDES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_box, "BOX" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_border, "BORDER" );
+-
+-// Werte von <TABLE RULES=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_none, "NONE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_groups, "GROUPS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_rows, "ROWS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_cols, "COLS" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_all, "ALL" );
+-
+-// Werte von <P, H?, TR, TH, TD ALIGN=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_left, "LEFT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_center, "CENTER" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_middle, "MIDDLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_right, "RIGHT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_justify, "JUSTIFY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_char, "CHAR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_all, "ALL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_none, "NONE" );
+-
+-// Werte von <TR VALIGN=...>, <IMG ALIGN=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_top, "TOP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_middle, "MIDDLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_bottom, "BOTTOM" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_baseline, "BASELINE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_texttop, "TEXTTOP" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_absmiddle, "ABSMIDDLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_absbottom, "ABSBOTTOM" );
+-
+-// Werte von <AREA SHAPE=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_rect, "RECT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_rectangle, "RECTANGLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_circ, "CIRC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_circle, "CIRCLE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_poly, "POLY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_polygon, "POLYGON" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_default, "DEFAULT" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_starbasic, "STARBASIC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_javascript, "JAVASCRIPT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_javascript11, "JAVASCRIPT1.1" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_livescript, "LIVESCRIPT" );
+-//sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_vbscript, "VBSCRIPT" );
+-//sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_unused_javascript, "UNUSED JAVASCRIPT" );
+-//sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_starone, "StarScript" );
+-
+-// ein par Werte fuer unser StarBASIC-Support
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SB_library, "$LIBRARY:" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SB_module, "$MODULE:" );
+-
+-
+-// Werte von <FORM METHOD=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_METHOD_get, "GET" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_METHOD_post, "POST" );
+-
+-// Werte von <META CONTENT/HTTP-EQUIV=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_refresh, "REFRESH" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_generator, "GENERATOR" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_author, "AUTHOR" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_classification, "CLASSIFICATION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_description, "DESCRIPTION" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_keywords, "KEYWORDS" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_changed, "CHANGED" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_changedby, "CHANGEDBY" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_created, "CREATED" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_content_type, "CONTENT-TYPE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_content_script_type, "CONTENT-SCRIPT-TYPE" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_sdendnote, "SDENDNOTE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_sdfootnote, "SDFOOTNOTE" );
+-
+-// Werte von <UL TYPE=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ULTYPE_disc, "DISC" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ULTYPE_square, "SQUARE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ULTYPE_circle, "CIRCLE" );
+-
+-// Werte von <FRAMESET SCROLLING=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SCROLL_yes, "YES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SCROLL_no, "NO" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SCROLL_auto, "AUTO" );
+-
+-// Werte von <MULTICOL TYPE=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_MCTYPE_horizontal, "HORIZONTAL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_MCTYPE_vertical, "VERTICAL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_MCTYPE_box, "BOX" );
+-
+-// Werte von <MARQUEE BEHAVIOUR=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_BEHAV_scroll, "SCROLL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_BEHAV_slide, "SLIDE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_BEHAV_alternate, "ALTERNATE" );
+-
+-// Werte von <MARQUEE LOOP=...>
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LOOP_infinite, "INFINITE" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SPTYPE_block, "BLOCK" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SPTYPE_horizontal, "HORIZONTAL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SPTYPE_vertical, "VERTICAL" );
+-
+-
+-// interne Grafik-Namen
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_private_image, "private:image/" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_internal_gopher, "internal-gopher-" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_internal_icon, "internal-icon-" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_binary, "binary" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_image, "image" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_index, "index" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_menu, "menu" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_movie, "movie" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_sound, "sound" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_telnet, "telnet" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_text, "text" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_unknown, "unknown" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_baddata, "baddata" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_delayed, "delayed" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_embed, "embed" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_insecure, "insecure" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_notfound, "notfound" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdendnote, "sdendnote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdendnote_anc, "sdendnoteanc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdendnote_sym, "sdendnotesym" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfootnote, "sdfootnote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfootnote_anc, "sdfootnoteanc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfootnote_sym, "sdfootnotesym" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_FTN_anchor, "anc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_FTN_symbol, "sym" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_off, "OFF" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_hard, "HARD" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_soft, "SOFT" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_virtual, "VIRTUAL" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_physical, "PHYSICAL" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_on, "on" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ET_url, "application/x-www-form-urlencoded" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ET_multipart, "multipart/form-data" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ET_text, "text/plain" );
+diff --git svtools/source/svhtml/htmlkywd.cxx svtools/source/svhtml/htmlkywd.cxx
+index 52c4e9b..3703140 100644
+--- svtools/source/svhtml/htmlkywd.cxx
++++ svtools/source/svhtml/htmlkywd.cxx
+@@ -61,146 +61,146 @@ struct HTML_TokenEntry
+ // und scheinen im Gegensatz zu denen aus
+ // "http://www.infi.net/wwwimages/colorindex.html"
+ // zu stimmen
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aliceblue, "ALICEBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_antiquewhite, "ANTIQUEWHITE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aqua, "AQUA" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aquamarine, "AQUAMARINE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_azure, "AZURE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_beige, "BEIGE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_bisque, "BISQUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_black, "BLACK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blanchedalmond, "BLANCHEDALMOND" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blue, "BLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blueviolet, "BLUEVIOLET" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_brown, "BROWN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_burlywood, "BURLYWOOD" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cadetblue, "CADETBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_chartreuse, "CHARTREUSE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_chocolate, "CHOCOLATE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_coral, "CORAL" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cornflowerblue, "CORNFLOWERBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cornsilk, "CORNSILK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_crimson, "CRIMSON" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cyan, "CYAN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkblue, "DARKBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkcyan, "DARKCYAN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgoldenrod, "DARKGOLDENROD" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgray, "DARKGRAY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgreen, "DARKGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkkhaki, "DARKKHAKI" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkmagenta, "DARKMAGENTA" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkolivegreen, "DARKOLIVEGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkorange, "DARKORANGE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkorchid, "DARKORCHID" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkred, "DARKRED" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darksalmon, "DARKSALMON" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkseagreen, "DARKSEAGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkslateblue, "DARKSLATEBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkslategray, "DARKSLATEGRAY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkturquoise, "DARKTURQUOISE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkviolet, "DARKVIOLET" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_deeppink, "DEEPPINK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_deepskyblue, "DEEPSKYBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_dimgray, "DIMGRAY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_dodgerblue, "DODGERBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_firebrick, "FIREBRICK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_floralwhite, "FLORALWHITE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_forestgreen, "FORESTGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_fuchsia, "FUCHSIA" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gainsboro, "GAINSBORO" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_ghostwhite, "GHOSTWHITE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gold, "GOLD" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_goldenrod, "GOLDENROD" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gray, "GRAY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_green, "GREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_greenyellow, "GREENYELLOW" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_honeydew, "HONEYDEW" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_hotpink, "HOTPINK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_indianred, "INDIANRED" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_indigo, "INDIGO" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_ivory, "IVORY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_khaki, "KHAKI" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lavender, "LAVENDER" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lavenderblush, "LAVENDERBLUSH" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lawngreen, "LAWNGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lemonchiffon, "LEMONCHIFFON" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightblue, "LIGHTBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightcoral, "LIGHTCORAL" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightcyan, "LIGHTCYAN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgoldenrodyellow, "LIGHTGOLDENRODYELLOW" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgreen, "LIGHTGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgrey, "LIGHTGREY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightpink, "LIGHTPINK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightsalmon, "LIGHTSALMON" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightseagreen, "LIGHTSEAGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightskyblue, "LIGHTSKYBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightslategray, "LIGHTSLATEGRAY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightsteelblue, "LIGHTSTEELBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightyellow, "LIGHTYELLOW" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lime, "LIME" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_limegreen, "LIMEGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_linen, "LINEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_magenta, "MAGENTA" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_maroon, "MAROON" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumaquamarine, "MEDIUMAQUAMARINE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumblue, "MEDIUMBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumorchid, "MEDIUMORCHID" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumpurple, "MEDIUMPURPLE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumseagreen, "MEDIUMSEAGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumslateblue, "MEDIUMSLATEBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumspringgreen, "MEDIUMSPRINGGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumturquoise, "MEDIUMTURQUOISE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumvioletred, "MEDIUMVIOLETRED" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_midnightblue, "MIDNIGHTBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mintcream, "MINTCREAM" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mistyrose, "MISTYROSE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_moccasin, "MOCCASIN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_navajowhite, "NAVAJOWHITE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_navy, "NAVY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_oldlace, "OLDLACE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_olive, "OLIVE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_olivedrab, "OLIVEDRAB" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orange, "ORANGE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orangered, "ORANGERED" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orchid, "ORCHID" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palegoldenrod, "PALEGOLDENROD" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palegreen, "PALEGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_paleturquoise, "PALETURQUOISE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palevioletred, "PALEVIOLETRED" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_papayawhip, "PAPAYAWHIP" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_peachpuff, "PEACHPUFF" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_peru, "PERU" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_pink, "PINK" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_plum, "PLUM" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_powderblue, "POWDERBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_purple, "PURPLE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_red, "RED" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_rosybrown, "ROSYBROWN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_royalblue, "ROYALBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_saddlebrown, "SADDLEBROWN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_salmon, "SALMON" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_sandybrown, "SANDYBROWN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_seagreen, "SEAGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_seashell, "SEASHELL" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_sienna, "SIENNA" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_silver, "SILVER" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_skyblue, "SKYBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_slateblue, "SLATEBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_slategray, "SLATEGRAY" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_snow, "SNOW" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_springgreen, "SPRINGGREEN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_steelblue, "STEELBLUE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_tan, "TAN" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_teal, "TEAL" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_thistle, "THISTLE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_tomato, "TOMATO" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_turquoise, "TURQUOISE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_violet, "VIOLET" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_wheat, "WHEAT" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_white, "WHITE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_whitesmoke, "WHITESMOKE" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_yellow, "YELLOW" );
+-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_yellowgreen, "YELLOWGREEN" );
++#define sHTML_COL_aliceblue "ALICEBLUE"
++#define sHTML_COL_antiquewhite "ANTIQUEWHITE"
++#define sHTML_COL_aqua "AQUA"
++#define sHTML_COL_aquamarine "AQUAMARINE"
++#define sHTML_COL_azure "AZURE"
++#define sHTML_COL_beige "BEIGE"
++#define sHTML_COL_bisque "BISQUE"
++#define sHTML_COL_black "BLACK"
++#define sHTML_COL_blanchedalmond "BLANCHEDALMOND"
++#define sHTML_COL_blue "BLUE"
++#define sHTML_COL_blueviolet "BLUEVIOLET"
++#define sHTML_COL_brown "BROWN"
++#define sHTML_COL_burlywood "BURLYWOOD"
++#define sHTML_COL_cadetblue "CADETBLUE"
++#define sHTML_COL_chartreuse "CHARTREUSE"
++#define sHTML_COL_chocolate "CHOCOLATE"
++#define sHTML_COL_coral "CORAL"
++#define sHTML_COL_cornflowerblue "CORNFLOWERBLUE"
++#define sHTML_COL_cornsilk "CORNSILK"
++#define sHTML_COL_crimson "CRIMSON"
++#define sHTML_COL_cyan "CYAN"
++#define sHTML_COL_darkblue "DARKBLUE"
++#define sHTML_COL_darkcyan "DARKCYAN"
++#define sHTML_COL_darkgoldenrod "DARKGOLDENROD"
++#define sHTML_COL_darkgray "DARKGRAY"
++#define sHTML_COL_darkgreen "DARKGREEN"
++#define sHTML_COL_darkkhaki "DARKKHAKI"
++#define sHTML_COL_darkmagenta "DARKMAGENTA"
++#define sHTML_COL_darkolivegreen "DARKOLIVEGREEN"
++#define sHTML_COL_darkorange "DARKORANGE"
++#define sHTML_COL_darkorchid "DARKORCHID"
++#define sHTML_COL_darkred "DARKRED"
++#define sHTML_COL_darksalmon "DARKSALMON"
++#define sHTML_COL_darkseagreen "DARKSEAGREEN"
++#define sHTML_COL_darkslateblue "DARKSLATEBLUE"
++#define sHTML_COL_darkslategray "DARKSLATEGRAY"
++#define sHTML_COL_darkturquoise "DARKTURQUOISE"
++#define sHTML_COL_darkviolet "DARKVIOLET"
++#define sHTML_COL_deeppink "DEEPPINK"
++#define sHTML_COL_deepskyblue "DEEPSKYBLUE"
++#define sHTML_COL_dimgray "DIMGRAY"
++#define sHTML_COL_dodgerblue "DODGERBLUE"
++#define sHTML_COL_firebrick "FIREBRICK"
++#define sHTML_COL_floralwhite "FLORALWHITE"
++#define sHTML_COL_forestgreen "FORESTGREEN"
++#define sHTML_COL_fuchsia "FUCHSIA"
++#define sHTML_COL_gainsboro "GAINSBORO"
++#define sHTML_COL_ghostwhite "GHOSTWHITE"
++#define sHTML_COL_gold "GOLD"
++#define sHTML_COL_goldenrod "GOLDENROD"
++#define sHTML_COL_gray "GRAY"
++#define sHTML_COL_green "GREEN"
++#define sHTML_COL_greenyellow "GREENYELLOW"
++#define sHTML_COL_honeydew "HONEYDEW"
++#define sHTML_COL_hotpink "HOTPINK"
++#define sHTML_COL_indianred "INDIANRED"
++#define sHTML_COL_indigo "INDIGO"
++#define sHTML_COL_ivory "IVORY"
++#define sHTML_COL_khaki "KHAKI"
++#define sHTML_COL_lavender "LAVENDER"
++#define sHTML_COL_lavenderblush "LAVENDERBLUSH"
++#define sHTML_COL_lawngreen "LAWNGREEN"
++#define sHTML_COL_lemonchiffon "LEMONCHIFFON"
++#define sHTML_COL_lightblue "LIGHTBLUE"
++#define sHTML_COL_lightcoral "LIGHTCORAL"
++#define sHTML_COL_lightcyan "LIGHTCYAN"
++#define sHTML_COL_lightgoldenrodyellow "LIGHTGOLDENRODYELLOW"
++#define sHTML_COL_lightgreen "LIGHTGREEN"
++#define sHTML_COL_lightgrey "LIGHTGREY"
++#define sHTML_COL_lightpink "LIGHTPINK"
++#define sHTML_COL_lightsalmon "LIGHTSALMON"
++#define sHTML_COL_lightseagreen "LIGHTSEAGREEN"
++#define sHTML_COL_lightskyblue "LIGHTSKYBLUE"
++#define sHTML_COL_lightslategray "LIGHTSLATEGRAY"
++#define sHTML_COL_lightsteelblue "LIGHTSTEELBLUE"
++#define sHTML_COL_lightyellow "LIGHTYELLOW"
++#define sHTML_COL_lime "LIME"
++#define sHTML_COL_limegreen "LIMEGREEN"
++#define sHTML_COL_linen "LINEN"
++#define sHTML_COL_magenta "MAGENTA"
++#define sHTML_COL_maroon "MAROON"
++#define sHTML_COL_mediumaquamarine "MEDIUMAQUAMARINE"
++#define sHTML_COL_mediumblue "MEDIUMBLUE"
++#define sHTML_COL_mediumorchid "MEDIUMORCHID"
++#define sHTML_COL_mediumpurple "MEDIUMPURPLE"
++#define sHTML_COL_mediumseagreen "MEDIUMSEAGREEN"
++#define sHTML_COL_mediumslateblue "MEDIUMSLATEBLUE"
++#define sHTML_COL_mediumspringgreen "MEDIUMSPRINGGREEN"
++#define sHTML_COL_mediumturquoise "MEDIUMTURQUOISE"
++#define sHTML_COL_mediumvioletred "MEDIUMVIOLETRED"
++#define sHTML_COL_midnightblue "MIDNIGHTBLUE"
++#define sHTML_COL_mintcream "MINTCREAM"
++#define sHTML_COL_mistyrose "MISTYROSE"
++#define sHTML_COL_moccasin "MOCCASIN"
++#define sHTML_COL_navajowhite "NAVAJOWHITE"
++#define sHTML_COL_navy "NAVY"
++#define sHTML_COL_oldlace "OLDLACE"
++#define sHTML_COL_olive "OLIVE"
++#define sHTML_COL_olivedrab "OLIVEDRAB"
++#define sHTML_COL_orange "ORANGE"
++#define sHTML_COL_orangered "ORANGERED"
++#define sHTML_COL_orchid "ORCHID"
++#define sHTML_COL_palegoldenrod "PALEGOLDENROD"
++#define sHTML_COL_palegreen "PALEGREEN"
++#define sHTML_COL_paleturquoise "PALETURQUOISE"
++#define sHTML_COL_palevioletred "PALEVIOLETRED"
++#define sHTML_COL_papayawhip "PAPAYAWHIP"
++#define sHTML_COL_peachpuff "PEACHPUFF"
++#define sHTML_COL_peru "PERU"
++#define sHTML_COL_pink "PINK"
++#define sHTML_COL_plum "PLUM"
++#define sHTML_COL_powderblue "POWDERBLUE"
++#define sHTML_COL_purple "PURPLE"
++#define sHTML_COL_red "RED"
++#define sHTML_COL_rosybrown "ROSYBROWN"
++#define sHTML_COL_royalblue "ROYALBLUE"
++#define sHTML_COL_saddlebrown "SADDLEBROWN"
++#define sHTML_COL_salmon "SALMON"
++#define sHTML_COL_sandybrown "SANDYBROWN"
++#define sHTML_COL_seagreen "SEAGREEN"
++#define sHTML_COL_seashell "SEASHELL"
++#define sHTML_COL_sienna "SIENNA"
++#define sHTML_COL_silver "SILVER"
++#define sHTML_COL_skyblue "SKYBLUE"
++#define sHTML_COL_slateblue "SLATEBLUE"
++#define sHTML_COL_slategray "SLATEGRAY"
++#define sHTML_COL_snow "SNOW"
++#define sHTML_COL_springgreen "SPRINGGREEN"
++#define sHTML_COL_steelblue "STEELBLUE"
++#define sHTML_COL_tan "TAN"
++#define sHTML_COL_teal "TEAL"
++#define sHTML_COL_thistle "THISTLE"
++#define sHTML_COL_tomato "TOMATO"
++#define sHTML_COL_turquoise "TURQUOISE"
++#define sHTML_COL_violet "VIOLET"
++#define sHTML_COL_wheat "WHEAT"
++#define sHTML_COL_white "WHITE"
++#define sHTML_COL_whitesmoke "WHITESMOKE"
++#define sHTML_COL_yellow "YELLOW"
++#define sHTML_COL_yellowgreen "YELLOWGREEN"
+ 
+ 
+ // Flag: RTF-Token Tabelle wurde schon sortiert
+diff --git svtools/source/svhtml/makefile.mk svtools/source/svhtml/makefile.mk
+index 3d5819c..1e578ca 100644
+--- svtools/source/svhtml/makefile.mk
++++ svtools/source/svhtml/makefile.mk
+@@ -46,7 +46,6 @@ TARGET=svhtml
+ # --- Files --------------------------------------------------------
+ 
+ SLOFILES=\
+-	$(SLO)$/htmlkey2.obj	\
+ 	$(SLO)$/htmlkywd.obj	\
+ 	$(SLO)$/htmlsupp.obj	\
+ 	$(SLO)$/htmlout.obj		\
+diff --git svtools/source/svrtf/makefile.mk svtools/source/svrtf/makefile.mk
+index 1c5c0e1..6269643 100644
+--- svtools/source/svrtf/makefile.mk
++++ svtools/source/svrtf/makefile.mk
+@@ -49,8 +49,7 @@ SLOFILES =	\
+ 		$(SLO)$/svparser.obj \
+ 		$(SLO)$/parrtf.obj	\
+ 		$(SLO)$/rtfout.obj \
+-		$(SLO)$/rtfkeywd.obj \
+-		$(SLO)$/rtfkey2.obj
++		$(SLO)$/rtfkeywd.obj
+ 
+ # ==========================================================================
+ 
+diff --git svtools/source/svrtf/rtfkey2.cxx svtools/source/svrtf/rtfkey2.cxx
+deleted file mode 100644
+index 9efa039..0000000
+--- svtools/source/svrtf/rtfkey2.cxx
++++ /dev/null
+@@ -1,1146 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: rtfkey2.cxx,v $
+- *
+- *  $Revision: 1.13 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 15:27:28 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_svtools.hxx"
+-
+-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */
+-
+-#include "rtfkeywd.hxx"
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEXCHAR, "\\'" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_IGNORE, "\\*" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OPTHYPH, "\\-" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBENTRY, "\\:" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSH, "\\absh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSW, "\\absw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ALT, "\\alt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANNOTATION, "\\annotation" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANSI, "\\ansi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNID, "\\atnid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AUTHOR, "\\author" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_B, "\\b" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGBDIAG, "\\bgbdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGCROSS, "\\bgcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDCROSS, "\\bgdcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKBDIAG, "\\bgdkbdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKCROSS, "\\bgdkcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKDCROSS, "\\bgdkdcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKFDIAG, "\\bgdkfdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKHORIZ, "\\bgdkhoriz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKVERT, "\\bgdkvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGFDIAG, "\\bgfdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGHORIZ, "\\bghoriz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGVERT, "\\bgvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BIN, "\\bin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BINFSXN, "\\binfsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BINSXN, "\\binsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKCOLF, "\\bkmkcolf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKCOLL, "\\bkmkcoll" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKEND, "\\bkmkend" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKSTART, "\\bkmkstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLUE, "\\blue" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BOX, "\\box" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRB, "\\brdrb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRBAR, "\\brdrbar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRBTW, "\\brdrbtw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRCF, "\\brdrcf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDB, "\\brdrdb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDOT, "\\brdrdot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRHAIR, "\\brdrhair" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRL, "\\brdrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRR, "\\brdrr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRS, "\\brdrs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRSH, "\\brdrsh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRT, "\\brdrt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTH, "\\brdrth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRW, "\\brdrw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRSP, "\\brsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BULLET, "\\bullet" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BUPTIM, "\\buptim" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BXE, "\\bxe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CAPS, "\\caps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CB, "\\cb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CBPAT, "\\cbpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CELL, "\\cell" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CELLX, "\\cellx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CF, "\\cf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CFPAT, "\\cfpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHATN, "\\chatn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHDATE, "\\chdate" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHDPA, "\\chdpa" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHDPL, "\\chdpl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHFTN, "\\chftn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHFTNSEP, "\\chftnsep" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHFTNSEPC, "\\chftnsepc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHPGN, "\\chpgn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHTIME, "\\chtime" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGBDIAG, "\\clbgbdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGCROSS, "\\clbgcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDCROSS, "\\clbgdcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKBDIAG, "\\clbgdkbdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKCROSS, "\\clbgdkcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKDCROSS, "\\clbgdkdcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKFDIAG, "\\clbgdkfdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKHOR, "\\clbgdkhor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKVERT, "\\clbgdkvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGFDIAG, "\\clbgfdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGHORIZ, "\\clbghoriz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGVERT, "\\clbgvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRB, "\\clbrdrb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRL, "\\clbrdrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRR, "\\clbrdrr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRT, "\\clbrdrt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLCBPAT, "\\clcbpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLCFPAT, "\\clcfpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLMGF, "\\clmgf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLMRG, "\\clmrg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLSHDNG, "\\clshdng" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLNO, "\\colno" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLORTBL, "\\colortbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLS, "\\cols" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLSR, "\\colsr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLSX, "\\colsx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLUMN, "\\column" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLW, "\\colw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COMMENT, "\\comment" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CREATIM, "\\creatim" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CTRL, "\\ctrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFF, "\\deff" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFFORMAT, "\\defformat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFLANG, "\\deflang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFTAB, "\\deftab" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DELETED, "\\deleted" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTX, "\\dfrmtxtx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTY, "\\dfrmtxty" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DIBITMAP, "\\dibitmap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DN, "\\dn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCCOMM, "\\doccomm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCTEMP, "\\doctemp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DROPCAPLI, "\\dropcapli" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DROPCAPT, "\\dropcapt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSNOOVRLP, "\\absnoovrlp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DXFRTEXT, "\\dxfrtext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DY, "\\dy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EDMINS, "\\edmins" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMDASH, "\\emdash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDASH, "\\endash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDDOC, "\\enddoc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDNHERE, "\\endnhere" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDNOTES, "\\endnotes" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EXPND, "\\expnd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EXPNDTW, "\\expndtw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_F, "\\f" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FACINGP, "\\facingp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FACPGSXN, "\\facpgsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FALT, "\\falt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FCHARSET, "\\fcharset" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FDECOR, "\\fdecor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FI, "\\fi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FIELD, "\\field" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDDIRTY, "\\flddirty" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDEDIT, "\\fldedit" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDINST, "\\fldinst" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDLOCK, "\\fldlock" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDPRIV, "\\fldpriv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDRSLT, "\\fldrslt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FMODERN, "\\fmodern" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FN, "\\fn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FNIL, "\\fnil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FONTTBL, "\\fonttbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTER, "\\footer" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERF, "\\footerf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERL, "\\footerl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERR, "\\footerr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERY, "\\footery" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTNOTE, "\\footnote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FPRQ, "\\fprq" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRACWIDTH, "\\fracwidth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FROMAN, "\\froman" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FS, "\\fs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FSCRIPT, "\\fscript" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FSWISS, "\\fswiss" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTECH, "\\ftech" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNBJ, "\\ftnbj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNCN, "\\ftncn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNRESTART, "\\ftnrestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNSEP, "\\ftnsep" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNSEPC, "\\ftnsepc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNSTART, "\\ftnstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNTJ, "\\ftntj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GREEN, "\\green" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GUTTER, "\\gutter" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GUTTERSXN, "\\guttersxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADER, "\\header" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERF, "\\headerf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERL, "\\headerl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERR, "\\headerr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERY, "\\headery" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HR, "\\hr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHHOTZ, "\\hyphhotz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_I, "\\i" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ID, "\\id" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_INFO, "\\info" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_INTBL, "\\intbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_IXE, "\\ixe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEEP, "\\keep" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEEPN, "\\keepn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KERNING, "\\kerning" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEYCODE, "\\keycode" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEYWORDS, "\\keywords" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LANDSCAPE, "\\landscape" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LANG, "\\lang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LDBLQUOTE, "\\ldblquote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVEL, "\\level" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LI, "\\li" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LIN, "\\lin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINE, "\\line" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEBETCOL, "\\linebetcol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINECONT, "\\linecont" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEMOD, "\\linemod" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEPPAGE, "\\lineppage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINERESTART, "\\linerestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINESTART, "\\linestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINESTARTS, "\\linestarts" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEX, "\\linex" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LNDSCPSXN, "\\lndscpsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LQUOTE, "\\lquote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MAC, "\\mac" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MACPICT, "\\macpict" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MAKEBACKUP, "\\makebackup" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGB, "\\margb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGBSXN, "\\margbsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGL, "\\margl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGLSXN, "\\marglsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGMIRROR, "\\margmirror" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGR, "\\margr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGRSXN, "\\margrsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGT, "\\margt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGTSXN, "\\margtsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MIN, "\\min" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MO, "\\mo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NEXTCSET, "\\nextcset" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NEXTFILE, "\\nextfile" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFCHARS, "\\nofchars" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFPAGES, "\\nofpages" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFWORDS, "\\nofwords" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOLINE, "\\noline" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSUPERSUB, "\\nosupersub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOWRAP, "\\nowrap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OPERATOR, "\\operator" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OUTL, "\\outl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAGE, "\\page" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAGEBB, "\\pagebb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAPERH, "\\paperh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAPERW, "\\paperw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAR, "\\par" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PARD, "\\pard" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PC, "\\pc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PCA, "\\pca" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGHSXN, "\\pghsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNCONT, "\\pgncont" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNDEC, "\\pgndec" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNLCLTR, "\\pgnlcltr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNLCRM, "\\pgnlcrm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNRESTART, "\\pgnrestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNSTART, "\\pgnstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNSTARTS, "\\pgnstarts" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNUCLTR, "\\pgnucltr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNUCRM, "\\pgnucrm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNX, "\\pgnx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNY, "\\pgny" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGWSXN, "\\pgwsxn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PHCOL, "\\phcol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PHMRG, "\\phmrg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PHPG, "\\phpg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPB, "\\piccropb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPL, "\\piccropl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPR, "\\piccropr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPT, "\\piccropt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICH, "\\pich" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICHGOAL, "\\pichgoal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICSCALED, "\\picscaled" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICSCALEX, "\\picscalex" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICSCALEY, "\\picscaley" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICT, "\\pict" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICW, "\\picw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICWGOAL, "\\picwgoal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PLAIN, "\\plain" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PMMETAFILE, "\\pmmetafile" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSNEGX, "\\posnegx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSNEGY, "\\posnegy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSX, "\\posx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXC, "\\posxc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXI, "\\posxi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXL, "\\posxl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXO, "\\posxo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXR, "\\posxr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSY, "\\posy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYB, "\\posyb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYC, "\\posyc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYIL, "\\posyil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYT, "\\posyt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRINTIM, "\\printim" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PSOVER, "\\psover" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PVMRG, "\\pvmrg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PVPARA, "\\pvpara" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PVPG, "\\pvpg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QC, "\\qc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QJ, "\\qj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QL, "\\ql" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QR, "\\qr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RDBLQUOTE, "\\rdblquote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RED, "\\red" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVBAR, "\\revbar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVISED, "\\revised" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVISIONS, "\\revisions" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVPROP, "\\revprop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVTIM, "\\revtim" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RI, "\\ri" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RIN, "\\rin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ROW, "\\row" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RQUOTE, "\\rquote" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTF, "\\rtf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RXE, "\\rxe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_S, "\\s" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SA, "\\sa" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SB, "\\sb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBASEDON, "\\sbasedon" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKCOL, "\\sbkcol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKEVEN, "\\sbkeven" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKNONE, "\\sbknone" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKODD, "\\sbkodd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKPAGE, "\\sbkpage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBYS, "\\sbys" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SCAPS, "\\scaps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECT, "\\sect" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTD, "\\sectd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHAD, "\\shad" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHADING, "\\shading" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHIFT, "\\shift" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SL, "\\sl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SNEXT, "\\snext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STRIKE, "\\strike" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STYLESHEET, "\\stylesheet" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUB, "\\sub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBJECT, "\\subject" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUPER, "\\super" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TAB, "\\tab" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TB, "\\tb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TC, "\\tc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCF, "\\tcf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCL, "\\tcl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TEMPLATE, "\\template" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TITLE, "\\title" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TITLEPG, "\\titlepg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLDOT, "\\tldot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLEQ, "\\tleq" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLHYPH, "\\tlhyph" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLTH, "\\tlth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLUL, "\\tlul" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQC, "\\tqc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQDEC, "\\tqdec" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQR, "\\tqr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQL, "\\tql" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRGAPH, "\\trgaph" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRLEFT, "\\trleft" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TROWD, "\\trowd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRQC, "\\trqc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRQL, "\\trql" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRQR, "\\trqr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRRH, "\\trrh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TX, "\\tx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TXE, "\\txe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UL, "\\ul" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULD, "\\uld" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDB, "\\uldb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULNONE, "\\ulnone" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULW, "\\ulw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UP, "\\up" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_V, "\\v" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERN, "\\vern" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERSION, "\\version" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALB, "\\vertalb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALC, "\\vertalc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALJ, "\\vertalj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALT, "\\vertalt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBITMAP, "\\wbitmap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBMBITSPIXEL, "\\wbmbitspixel" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBMPLANES, "\\wbmplanes" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBMWIDTHBYTES, "\\wbmwidthbytes" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WIDOWCTRL, "\\widowctrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WMETAFILE, "\\wmetafile" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_XE, "\\xe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_YR, "\\yr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOBRKHYPH, "\\_" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMULA, "\\|" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOBREAK, "\\~" );
+-
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AB, "\\ab" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACAPS, "\\acaps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACF, "\\acf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADDITIVE, "\\additive" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADN, "\\adn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AENDDOC, "\\aenddoc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AENDNOTES, "\\aendnotes" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AEXPND, "\\aexpnd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AF, "\\af" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFS, "\\afs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNBJ, "\\aftnbj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNCN, "\\aftncn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNALC, "\\aftnnalc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNAR, "\\aftnnar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNAUC, "\\aftnnauc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNCHI, "\\aftnnchi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNRLC, "\\aftnnrlc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNRUC, "\\aftnnruc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNRESTART, "\\aftnrestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNRSTCONT, "\\aftnrstcont" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNSEP, "\\aftnsep" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNSEPC, "\\aftnsepc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNSTART, "\\aftnstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNTJ, "\\aftntj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AI, "\\ai" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ALANG, "\\alang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ALLPROT, "\\allprot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANNOTPROT, "\\annotprot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AOUTL, "\\aoutl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASCAPS, "\\ascaps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASHAD, "\\ashad" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASTRIKE, "\\astrike" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNAUTHOR, "\\atnauthor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNICN, "\\atnicn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNREF, "\\atnref" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNTIME, "\\atntime" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATRFEND, "\\atrfend" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATRFSTART, "\\atrfstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AUL, "\\aul" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULD, "\\auld" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULDB, "\\auldb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULNONE, "\\aulnone" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULW, "\\aulw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AUP, "\\aup" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKPUB, "\\bkmkpub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASH, "\\brdrdash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRKFRM, "\\brkfrm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CCHS, "\\cchs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CPG, "\\cpg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CS, "\\cs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CVMME, "\\cvmme" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DATAFIELD, "\\datafield" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DO, "\\do" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBXCOLUMN, "\\dobxcolumn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBXMARGIN, "\\dobxmargin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBXPAGE, "\\dobxpage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBYMARGIN, "\\dobymargin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBYPAGE, "\\dobypage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBYPARA, "\\dobypara" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DODHGT, "\\dodhgt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOLOCK, "\\dolock" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDHOL, "\\dpaendhol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDL, "\\dpaendl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDSOL, "\\dpaendsol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDW, "\\dpaendw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPARC, "\\dparc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPARCFLIPX, "\\dparcflipx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPARCFLIPY, "\\dparcflipy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTHOL, "\\dpastarthol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTL, "\\dpastartl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTSOL, "\\dpastartsol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTW, "\\dpastartw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCALLOUT, "\\dpcallout" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOA, "\\dpcoa" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOACCENT, "\\dpcoaccent" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOBESTFIT, "\\dpcobestfit" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOBORDER, "\\dpcoborder" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODABS, "\\dpcodabs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODBOTTOM, "\\dpcodbottom" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODCENTER, "\\dpcodcenter" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODTOP, "\\dpcodtop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOLENGTH, "\\dpcolength" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOMINUSX, "\\dpcominusx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOMINUSY, "\\dpcominusy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOOFFSET, "\\dpcooffset" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOSMARTA, "\\dpcosmarta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTDOUBLE, "\\dpcotdouble" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTRIGHT, "\\dpcotright" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTSINGLE, "\\dpcotsingle" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTTRIPLE, "\\dpcottriple" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOUNT, "\\dpcount" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPELLIPSE, "\\dpellipse" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPENDGROUP, "\\dpendgroup" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGCB, "\\dpfillbgcb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGCG, "\\dpfillbgcg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGCR, "\\dpfillbgcr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGGRAY, "\\dpfillbggray" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGPAL, "\\dpfillbgpal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGCB, "\\dpfillfgcb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGCG, "\\dpfillfgcg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGCR, "\\dpfillfgcr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGGRAY, "\\dpfillfggray" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGPAL, "\\dpfillfgpal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLPAT, "\\dpfillpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPGROUP, "\\dpgroup" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINE, "\\dpline" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINECOB, "\\dplinecob" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINECOG, "\\dplinecog" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINECOR, "\\dplinecor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDADO, "\\dplinedado" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDADODO, "\\dplinedadodo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDASH, "\\dplinedash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDOT, "\\dplinedot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEGRAY, "\\dplinegray" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEHOLLOW, "\\dplinehollow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEPAL, "\\dplinepal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINESOLID, "\\dplinesolid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEW, "\\dplinew" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPOLYCOUNT, "\\dppolycount" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPOLYGON, "\\dppolygon" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPOLYLINE, "\\dppolyline" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPTX, "\\dpptx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPTY, "\\dppty" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPRECT, "\\dprect" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPROUNDR, "\\dproundr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPSHADOW, "\\dpshadow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPSHADX, "\\dpshadx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPSHADY, "\\dpshady" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPTXBX, "\\dptxbx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPTXBXMAR, "\\dptxbxmar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPTXBXTEXT, "\\dptxbxtext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPX, "\\dpx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPXSIZE, "\\dpxsize" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPY, "\\dpy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPYSIZE, "\\dpysize" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DS, "\\ds" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMSPACE, "\\emspace" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENSPACE, "\\enspace" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FBIDI, "\\fbidi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FET, "\\fet" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FID, "\\fid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FILE, "\\file" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FILETBL, "\\filetbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDALT, "\\fldalt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FNETWORK, "\\fnetwork" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FONTEMB, "\\fontemb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FONTFILE, "\\fontfile" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMDISP, "\\formdisp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMPROT, "\\formprot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMSHADE, "\\formshade" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOSNUM, "\\fosnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRELATIVE, "\\frelative" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNALT, "\\ftnalt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNIL, "\\ftnil" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNALC, "\\ftnnalc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNAR, "\\ftnnar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNAUC, "\\ftnnauc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNCHI, "\\ftnnchi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNRLC, "\\ftnnrlc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNRUC, "\\ftnnruc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNRSTCONT, "\\ftnrstcont" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNRSTPG, "\\ftnrstpg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTTRUETYPE, "\\fttruetype" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDDOS, "\\fvaliddos" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDHPFS, "\\fvalidhpfs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDMAC, "\\fvalidmac" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDNTFS, "\\fvalidntfs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHAUTO, "\\hyphauto" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHCAPS, "\\hyphcaps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHCONSEC, "\\hyphconsec" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHPAR, "\\hyphpar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINKSELF, "\\linkself" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINKSTYLES, "\\linkstyles" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRCH, "\\ltrch" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRDOC, "\\ltrdoc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRMARK, "\\ltrmark" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRPAR, "\\ltrpar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRROW, "\\ltrrow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRSECT, "\\ltrsect" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOCOLBAL, "\\nocolbal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOEXTRASPRL, "\\noextrasprl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOTABIND, "\\notabind" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOWIDCTLPAR, "\\nowidctlpar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJALIAS, "\\objalias" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJALIGN, "\\objalign" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJAUTLINK, "\\objautlink" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCLASS, "\\objclass" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPB, "\\objcropb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPL, "\\objcropl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPR, "\\objcropr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPT, "\\objcropt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJDATA, "\\objdata" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJECT, "\\object" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJEMB, "\\objemb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJH, "\\objh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJICEMB, "\\objicemb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJLINK, "\\objlink" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJLOCK, "\\objlock" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJNAME, "\\objname" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJPUB, "\\objpub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSCALEX, "\\objscalex" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSCALEY, "\\objscaley" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSECT, "\\objsect" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSETSIZE, "\\objsetsize" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSUB, "\\objsub" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJTIME, "\\objtime" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJTRANSY, "\\objtransy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJUPDATE, "\\objupdate" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJW, "\\objw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OTBLRUL, "\\otblrul" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHN, "\\pgnhn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSC, "\\pgnhnsc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSH, "\\pgnhnsh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSM, "\\pgnhnsm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSN, "\\pgnhnsn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSP, "\\pgnhnsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICBMP, "\\picbmp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICBPP, "\\picbpp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PN, "\\pn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNACROSS, "\\pnacross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNB, "\\pnb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCAPS, "\\pncaps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCARD, "\\pncard" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCF, "\\pncf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDEC, "\\pndec" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNF, "\\pnf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNFS, "\\pnfs" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNHANG, "\\pnhang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNI, "\\pni" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNINDENT, "\\pnindent" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLCLTR, "\\pnlcltr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLCRM, "\\pnlcrm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVL, "\\pnlvl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVLBLT, "\\pnlvlblt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVLBODY, "\\pnlvlbody" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVLCONT, "\\pnlvlcont" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNNUMONCE, "\\pnnumonce" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNORD, "\\pnord" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNORDT, "\\pnordt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNPREV, "\\pnprev" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNQC, "\\pnqc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNQL, "\\pnql" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNQR, "\\pnqr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRESTART, "\\pnrestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSCAPS, "\\pnscaps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSECLVL, "\\pnseclvl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSP, "\\pnsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSTART, "\\pnstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSTRIKE, "\\pnstrike" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNTEXT, "\\pntext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNTXTA, "\\pntxta" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNTXTB, "\\pntxtb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNUCLTR, "\\pnucltr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNUCRM, "\\pnucrm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNUL, "\\pnul" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULD, "\\pnuld" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULDB, "\\pnuldb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULNONE, "\\pnulnone" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULW, "\\pnulw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRCOLBL, "\\prcolbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRINTDATA, "\\printdata" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PSZ, "\\psz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PUBAUTO, "\\pubauto" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RESULT, "\\result" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVAUTH, "\\revauth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVDTTM, "\\revdttm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVPROT, "\\revprot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVTBL, "\\revtbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTBMP, "\\rsltbmp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTMERGE, "\\rsltmerge" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTPICT, "\\rsltpict" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTRTF, "\\rsltrtf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTTXT, "\\rslttxt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLCH, "\\rtlch" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLDOC, "\\rtldoc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLMARK, "\\rtlmark" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLPAR, "\\rtlpar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLROW, "\\rtlrow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLSECT, "\\rtlsect" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SEC, "\\sec" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTNUM, "\\sectnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTUNLOCKED, "\\sectunlocked" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SLMULT, "\\slmult" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTCOL, "\\softcol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTLHEIGHT, "\\softlheight" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTLINE, "\\softline" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTPAGE, "\\softpage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSSPBF, "\\sprsspbf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSTSP, "\\sprstsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBDOCUMENT, "\\subdocument" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SWPBDR, "\\swpbdr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCN, "\\tcn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRANSMF, "\\transmf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRB, "\\trbrdrb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRH, "\\trbrdrh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRL, "\\trbrdrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRR, "\\trbrdrr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRT, "\\trbrdrt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRV, "\\trbrdrv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRHDR, "\\trhdr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRKEEP, "\\trkeep" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDB, "\\trpaddb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDL, "\\trpaddl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDR, "\\trpaddr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDT, "\\trpaddt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFB, "\\trpaddfb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFL, "\\trpaddfl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFR, "\\trpaddfr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFT, "\\trpaddft" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WRAPTRSP, "\\wraptrsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_XEF, "\\xef" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ZWJ, "\\zwj" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ZWNJ, "\\zwnj" );
+-
+-// neue Tokens zur 1.5
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSLOCK, "\\abslock" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADJUSTRIGHT, "\\adjustright" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNCHOSUNG, "\\aftnnchosung" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNCNUM, "\\aftnncnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBAR, "\\aftnndbar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUM, "\\aftnndbnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUMD, "\\aftnndbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUMK, "\\aftnndbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUMT, "\\aftnndbnumt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGANADA, "\\aftnnganada" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUM, "\\aftnngbnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUMD, "\\aftnngbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUMK, "\\aftnngbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUML, "\\aftnngbnuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNZODIAC, "\\aftnnzodiac" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNZODIACD, "\\aftnnzodiacd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNZODIACL, "\\aftnnzodiacl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANIMTEXT, "\\animtext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANSICPG, "\\ansicpg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BACKGROUND, "\\background" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BDBFHDR, "\\bdbfhdr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLIPTAG, "\\bliptag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLIPUID, "\\blipuid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLIPUPI, "\\blipupi" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRART, "\\brdrart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHD, "\\brdrdashd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHDD, "\\brdrdashdd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHDOTSTR, "\\brdrdashdotstr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHSM, "\\brdrdashsm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDREMBOSS, "\\brdremboss" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRENGRAVE, "\\brdrengrave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRFRAME, "\\brdrframe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTHTNLG, "\\brdrthtnlg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTHTNMG, "\\brdrthtnmg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTHTNSG, "\\brdrthtnsg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHLG, "\\brdrtnthlg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHMG, "\\brdrtnthmg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHSG, "\\brdrtnthsg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHTNLG, "\\brdrtnthtnlg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHTNMG, "\\brdrtnthtnmg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHTNSG, "\\brdrtnthtnsg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTRIPLE, "\\brdrtriple" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRWAVY, "\\brdrwavy" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRWAVYDB, "\\brdrwavydb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CATEGORY, "\\category" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CGRID, "\\cgrid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHARSCALEX, "\\charscalex" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGBDIAG, "\\chbgbdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGCROSS, "\\chbgcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDCROSS, "\\chbgdcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKBDIAG, "\\chbgdkbdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKCROSS, "\\chbgdkcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKDCROSS, "\\chbgdkdcross" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKFDIAG, "\\chbgdkfdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKHORIZ, "\\chbgdkhoriz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKVERT, "\\chbgdkvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGFDIAG, "\\chbgfdiag" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGHORIZ, "\\chbghoriz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGVERT, "\\chbgvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBRDR, "\\chbrdr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHCBPAT, "\\chcbpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHCFPAT, "\\chcfpat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHSHDNG, "\\chshdng" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADL, "\\clpadl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADT, "\\clpadt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADB, "\\clpadb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADR, "\\clpadr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFL, "\\clpadfl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFT, "\\clpadft" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFB, "\\clpadfb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFR, "\\clpadfr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXLRTB, "\\cltxlrtb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXTBRL, "\\cltxtbrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVERTALB, "\\clvertalb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVERTALC, "\\clvertalc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVERTALT, "\\clvertalt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVMGF, "\\clvmgf" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVMRG, "\\clvmrg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXTBRLV, "\\cltxtbrlv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXBTLR, "\\cltxbtlr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXLRTBV, "\\cltxlrtbv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COMPANY, "\\company" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CRAUTH, "\\crauth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CRDATE, "\\crdate" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DATE, "\\date" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFLANGFE, "\\deflangfe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRAUTH, "\\dfrauth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRDATE, "\\dfrdate" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRSTART, "\\dfrstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRSTOP, "\\dfrstop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRXST, "\\dfrxst" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DGMARGIN, "\\dgmargin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DNTBLNSBDB, "\\dntblnsbdb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCTYPE, "\\doctype" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCVAR, "\\docvar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODESCENT, "\\dpcodescent" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMBO, "\\embo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMFBLIP, "\\emfblip" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EXPSHRTN, "\\expshrtn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAAUTO, "\\faauto" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FBIAS, "\\fbias" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFDEFRES, "\\ffdefres" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFDEFTEXT, "\\ffdeftext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFENTRYMCR, "\\ffentrymcr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFEXITMCR, "\\ffexitmcr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFFORMAT, "\\ffformat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFHASLISTBOX, "\\ffhaslistbox" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFHELPTEXT, "\\ffhelptext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFHPS, "\\ffhps" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFL, "\\ffl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFMAXLEN, "\\ffmaxlen" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFNAME, "\\ffname" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFOWNHELP, "\\ffownhelp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFOWNSTAT, "\\ffownstat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFPROT, "\\ffprot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFRECALC, "\\ffrecalc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFRES, "\\ffres" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFSIZE, "\\ffsize" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFSTATTEXT, "\\ffstattext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFTYPE, "\\fftype" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFTYPETXT, "\\fftypetxt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDTYPE, "\\fldtype" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FNAME, "\\fname" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMFIELD, "\\formfield" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FROMTEXT, "\\fromtext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNCHOSUNG, "\\ftnnchosung" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNCNUM, "\\ftnncnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBAR, "\\ftnndbar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUM, "\\ftnndbnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUMD, "\\ftnndbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUMK, "\\ftnndbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUMT, "\\ftnndbnumt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGANADA, "\\ftnnganada" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUM, "\\ftnngbnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUMD, "\\ftnngbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUMK, "\\ftnngbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUML, "\\ftnngbnuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNZODIAC, "\\ftnnzodiac" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNZODIACD, "\\ftnnzodiacd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNZODIACL, "\\ftnnzodiacl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_G, "\\g" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GCW, "\\gcw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRIDTBL, "\\gridtbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HIGHLIGHT, "\\highlight" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLFR, "\\hlfr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLINKBASE, "\\hlinkbase" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLLOC, "\\hlloc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLSRC, "\\hlsrc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ILVL, "\\ilvl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_IMPR, "\\impr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_JPEGBLIP, "\\jpegblip" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELFOLLOW, "\\levelfollow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELINDENT, "\\levelindent" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELJC, "\\leveljc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELLEGAL, "\\levellegal" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELNFC, "\\levelnfc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELNORESTART, "\\levelnorestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELNUMBERS, "\\levelnumbers" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELOLD, "\\levelold" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELPREV, "\\levelprev" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELPREVSPACE, "\\levelprevspace" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELSPACE, "\\levelspace" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELSTARTAT, "\\levelstartat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELTEXT, "\\leveltext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINKVAL, "\\linkval" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LIST, "\\list" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTID, "\\listid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTLEVEL, "\\listlevel" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTNAME, "\\listname" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDE, "\\listoverride" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDECOUNT, "\\listoverridecount" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDEFORMAT, "\\listoverrideformat" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDESTART, "\\listoverridestart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDETABLE, "\\listoverridetable" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTRESTARTHDN, "\\listrestarthdn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTSIMPLE, "\\listsimple" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTTABLE, "\\listtable" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTTEMPLATEID, "\\listtemplateid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTTEXT, "\\listtext" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LS, "\\ls" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LYTEXCTTP, "\\lytexcttp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LYTPRTMET, "\\lytprtmet" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MANAGER, "\\manager" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MSMCAP, "\\msmcap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFCHARSWS, "\\nofcharsws" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOLEAD, "\\nolead" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NONSHPPICT, "\\nonshppict" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSECTEXPAND, "\\nosectexpand" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSNAPLINEGRID, "\\nosnaplinegrid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSPACEFORUL, "\\nospaceforul" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOULTRLSPC, "\\noultrlspc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOXLATTOYEN, "\\noxlattoyen" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJATTPH, "\\objattph" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJHTML, "\\objhtml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJOCX, "\\objocx" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLDLINEWRAP, "\\oldlinewrap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OUTLINELEVEL, "\\outlinelevel" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OVERLAY, "\\overlay" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PANOSE, "\\panose" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRB, "\\pgbrdrb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRFOOT, "\\pgbrdrfoot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRHEAD, "\\pgbrdrhead" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRL, "\\pgbrdrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDROPT, "\\pgbrdropt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRR, "\\pgbrdrr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRSNAP, "\\pgbrdrsnap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRT, "\\pgbrdrt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNCHOSUNG, "\\pgnchosung" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNCNUM, "\\pgncnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNDBNUMK, "\\pgndbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNDBNUMT, "\\pgndbnumt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGANADA, "\\pgnganada" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUM, "\\pgngbnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUMD, "\\pgngbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUMK, "\\pgngbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUML, "\\pgngbnuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNZODIAC, "\\pgnzodiac" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNZODIACD, "\\pgnzodiacd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNZODIACL, "\\pgnzodiacl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICPROP, "\\picprop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNAIUEO, "\\pnaiueo" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNAIUEOD, "\\pnaiueod" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCHOSUNG, "\\pnchosung" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUMD, "\\pndbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUMK, "\\pndbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUML, "\\pndbnuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUMT, "\\pndbnumt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGANADA, "\\pnganada" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBLIP, "\\pngblip" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUM, "\\pngbnum" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUMD, "\\pngbnumd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUMK, "\\pngbnumk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUML, "\\pngbnuml" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRAUTH, "\\pnrauth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRDATE, "\\pnrdate" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRNFC, "\\pnrnfc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRNOT, "\\pnrnot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRPNBR, "\\pnrpnbr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRRGB, "\\pnrrgb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRSTART, "\\pnrstart" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRSTOP, "\\pnrstop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRXST, "\\pnrxst" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNZODIAC, "\\pnzodiac" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNZODIACD, "\\pnzodiacd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNZODIACL, "\\pnzodiacl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LFOLEVEL, "\\lfolevel" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYIN, "\\posyin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYOUT, "\\posyout" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRIVATE, "\\private" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PROPNAME, "\\propname" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PROPTYPE, "\\proptype" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVAUTHDEL, "\\revauthdel" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVDTTMDEL, "\\revdttmdel" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SAUTOUPD, "\\sautoupd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTDEFAULTCL, "\\sectdefaultcl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTEXPAND, "\\sectexpand" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTLINEGRID, "\\sectlinegrid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTSPECIFYCL, "\\sectspecifycl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTSPECIFYL, "\\sectspecifyl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHIDDEN, "\\shidden" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBOTTOM, "\\shpbottom" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBXCOLUMN, "\\shpbxcolumn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBXMARGIN, "\\shpbxmargin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBXPAGE, "\\shpbxpage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBYMARGIN, "\\shpbymargin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBYPAGE, "\\shpbypage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBYPARA, "\\shpbypara" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPFBLWTXT, "\\shpfblwtxt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPFHDR, "\\shpfhdr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPGRP, "\\shpgrp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLEFT, "\\shpleft" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLID, "\\shplid" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLOCKANCHOR, "\\shplockanchor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPPICT, "\\shppict" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPRIGHT, "\\shpright" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPRSLT, "\\shprslt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPTOP, "\\shptop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPTXT, "\\shptxt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPWRK, "\\shpwrk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPWR, "\\shpwr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPZ, "\\shpz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSBSP, "\\sprsbsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSLNSP, "\\sprslnsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSTSM, "\\sprstsm" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STATICVAL, "\\staticval" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STEXTFLOW, "\\stextflow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STRIKED, "\\striked" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBFONTBYSIZE, "\\subfontbysize" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCELLD, "\\tcelld" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TIME, "\\time" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRUNCATEFONTHEIGHT, "\\truncatefontheight" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UC, "\\uc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UD, "\\ud" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDASH, "\\uldash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDASHD, "\\uldashd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDASHDD, "\\uldashdd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTH, "\\ulth" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULWAVE, "\\ulwave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULC, "\\ulc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_U, "\\u" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UPR, "\\upr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_USERPROPS, "\\userprops" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VIEWKIND, "\\viewkind" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VIEWSCALE, "\\viewscale" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VIEWZK, "\\viewzk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WIDCTLPAR, "\\widctlpar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WINDOWCAPTION, "\\windowcaption" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WPEQN, "\\wpeqn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WPJST, "\\wpjst" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WPSP, "\\wpsp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_YXE, "\\yxe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXLRTB, "\\frmtxlrtb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXTBRL, "\\frmtxtbrl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXBTLR, "\\frmtxbtlr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXLRTBV, "\\frmtxlrtbv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXTBRLV, "\\frmtxtbrlv" );
+-
+-// MS-2000 Tokens
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHD, "\\ulthd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHDASH, "\\ulthdash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULLDASH, "\\ulldash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHLDASH, "\\ulthldash" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHDASHD, "\\ulthdashd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHDASHDD, "\\ulthdashdd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULHWAVE, "\\ulhwave" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULULDBWAVE, "\\ululdbwave" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LOCH,    	"\\loch" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HICH,    	"\\hich" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DBCH,    	"\\dbch" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LANGFE,    "\\langfe" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADEFLANG,	"\\adeflang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADEFF,		"\\adeff" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACCNONE,	"\\accnone" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACCDOT,	"\\accdot" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACCCOMMA,	"\\acccomma" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TWOINONE,	"\\twoinone" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HORZVERT,	"\\horzvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAHANG, 	"\\fahang" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAVAR, 	"\\favar" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FACENTER, 	"\\facenter" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAROMAN, 	"\\faroman" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAFIXED, 	"\\fafixed" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOCWRAP, 	"\\nocwrap" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOOVERFLOW,"\\nooverflow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASPALPHA, 	"\\aspalpha" );
+-
+-// SWG spezifische Attribute
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRFALIGNV, "\\grfalignv" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRFALIGNH, "\\grfalignh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRFMIRROR, "\\grfmirror" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERYB, "\\headeryb" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERXL, "\\headerxl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERXR, "\\headerxr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERYT, "\\footeryt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERXL, "\\footerxl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERXR, "\\footerxr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERYH, "\\headeryh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERYH, "\\footeryh" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BALANCEDCOLUMN, "\\swcolmnblnc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UPDNPROP, "\\updnprop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRTDATA, "\\prtdata" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKKEY, "\\bkmkkey" );
+-
+-// Attribute fuer die freifliegenden Rahmen
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYPRINT, "\\flyprint" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYOPAQUE, "\\flyopaque" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYPRTCTD, "\\flyprtctd" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYMAINCNT, "\\flymaincnt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYVERT, "\\flyvert" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYHORZ, "\\flyhorz" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTL, "\\dfrmtxtl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTR, "\\dfrmtxtr" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTU, "\\dfrmtxtu" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTW, "\\dfrmtxtw" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYANCHOR, "\\flyanchor" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYCNTNT, "\\flycntnt" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYCOLUMN, "\\flycolumn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYPAGE, "\\flypage" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYINPARA, "\\flyinpara" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDBOX, "\\brdbox" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNCOL, "\\brdlncol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNIN, "\\brdlnin" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNOUT, "\\brdlnout" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNDIST, "\\brdlndist" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHADOW, "\\shadow" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWDIST, "\\shdwdist" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWSTYLE, "\\shdwstyle" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWCOL, "\\shdwcol" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWFCOL, "\\shdwfcol" );
+-
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCTBL, "\\pgdsctbl" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSC, "\\pgdsc" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCUSE, "\\pgdscuse" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCNXT, "\\pgdscnxt" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHEN, "\\hyphen" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHLEAD, "\\hyphlead" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHTRAIL, "\\hyphtrail" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHMAX, "\\hyphmax" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLSWG, "\\tlswg" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRK, "\\pgbrk" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCNO, "\\pgdscno" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOUTLVL, "\\soutlvl" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHP, "\\shp" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SN, "\\sn" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SV, "\\sv" );
+-/*
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLEFT, "\\shpleft" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPTOP, "\\shptop" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBOTTOM, "\\shpbottom" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPRIGHT, "\\shpright" );
+-*/
+-
+-/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+diff --git svtools/source/svrtf/rtfkeywd.hxx svtools/source/svrtf/rtfkeywd.hxx
+index 1deccb9..346e4a8 100644
+--- svtools/source/svrtf/rtfkeywd.hxx
++++ svtools/source/svrtf/rtfkeywd.hxx
+@@ -36,1128 +36,1117 @@
+ #ifndef _RTFKEYWD_HXX
+ #define _RTFKEYWD_HXX
+ 
+-#ifndef INCLUDED_SVTDLLAPI_H
+-#include "svtools/svtdllapi.h"
+-#endif
+-
+ #ifndef _SAL_TYPES_H_
+ #include "sal/types.h"
+ #endif
+ 
+-#ifndef SVTOOLS_CONSTASCII_DECL
+-#define SVTOOLS_CONSTASCII_DECL( n, s ) n[sizeof(s)]
+-#endif
+-#ifndef SVTOOLS_CONSTASCII_DEF
+-#define SVTOOLS_CONSTASCII_DEF( n, s ) n[sizeof(s)] = s
+-#endif
+-
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEXCHAR, "\\'" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_IGNORE, "\\*" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OPTHYPH, "\\-" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBENTRY, "\\:" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSH, "\\absh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSW, "\\absw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ALT, "\\alt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANNOTATION, "\\annotation" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANSI, "\\ansi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNID, "\\atnid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AUTHOR, "\\author" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_B, "\\b" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGBDIAG, "\\bgbdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGCROSS, "\\bgcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDCROSS, "\\bgdcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKBDIAG, "\\bgdkbdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKCROSS, "\\bgdkcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKDCROSS, "\\bgdkdcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKFDIAG, "\\bgdkfdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKHORIZ, "\\bgdkhoriz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKVERT, "\\bgdkvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGFDIAG, "\\bgfdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGHORIZ, "\\bghoriz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGVERT, "\\bgvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BIN, "\\bin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BINFSXN, "\\binfsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BINSXN, "\\binsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKCOLF, "\\bkmkcolf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKCOLL, "\\bkmkcoll" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKEND, "\\bkmkend" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKSTART, "\\bkmkstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLUE, "\\blue" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BOX, "\\box" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRB, "\\brdrb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRBAR, "\\brdrbar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRBTW, "\\brdrbtw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRCF, "\\brdrcf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDB, "\\brdrdb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDOT, "\\brdrdot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRHAIR, "\\brdrhair" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRL, "\\brdrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRR, "\\brdrr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRS, "\\brdrs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRSH, "\\brdrsh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRT, "\\brdrt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTH, "\\brdrth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRW, "\\brdrw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRSP, "\\brsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BULLET, "\\bullet" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BUPTIM, "\\buptim" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BXE, "\\bxe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CAPS, "\\caps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CB, "\\cb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CBPAT, "\\cbpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CELL, "\\cell" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CELLX, "\\cellx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CF, "\\cf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CFPAT, "\\cfpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHATN, "\\chatn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHDATE, "\\chdate" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHDPA, "\\chdpa" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHDPL, "\\chdpl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHFTN, "\\chftn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHFTNSEP, "\\chftnsep" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHFTNSEPC, "\\chftnsepc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHPGN, "\\chpgn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHTIME, "\\chtime" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGBDIAG, "\\clbgbdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGCROSS, "\\clbgcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDCROSS, "\\clbgdcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKBDIAG, "\\clbgdkbdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKCROSS, "\\clbgdkcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKDCROSS, "\\clbgdkdcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKFDIAG, "\\clbgdkfdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKHOR, "\\clbgdkhor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKVERT, "\\clbgdkvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGFDIAG, "\\clbgfdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGHORIZ, "\\clbghoriz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGVERT, "\\clbgvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRB, "\\clbrdrb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRL, "\\clbrdrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRR, "\\clbrdrr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRT, "\\clbrdrt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLCBPAT, "\\clcbpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLCFPAT, "\\clcfpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLMGF, "\\clmgf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLMRG, "\\clmrg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLSHDNG, "\\clshdng" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLNO, "\\colno" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLORTBL, "\\colortbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLS, "\\cols" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLSR, "\\colsr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLSX, "\\colsx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLUMN, "\\column" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLW, "\\colw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COMMENT, "\\comment" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CREATIM, "\\creatim" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CTRL, "\\ctrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFF, "\\deff" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFFORMAT, "\\defformat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFLANG, "\\deflang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFTAB, "\\deftab" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DELETED, "\\deleted" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTX, "\\dfrmtxtx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTY, "\\dfrmtxty" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DIBITMAP, "\\dibitmap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DN, "\\dn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCCOMM, "\\doccomm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCTEMP, "\\doctemp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DROPCAPLI, "\\dropcapli" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DROPCAPT, "\\dropcapt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSNOOVRLP, "\\absnoovrlp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DXFRTEXT, "\\dxfrtext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DY, "\\dy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EDMINS, "\\edmins" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMDASH, "\\emdash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDASH, "\\endash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDDOC, "\\enddoc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDNHERE, "\\endnhere" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDNOTES, "\\endnotes" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EXPND, "\\expnd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EXPNDTW, "\\expndtw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_F, "\\f" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FACINGP, "\\facingp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FACPGSXN, "\\facpgsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FALT, "\\falt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FCHARSET, "\\fcharset" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FDECOR, "\\fdecor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FI, "\\fi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FIELD, "\\field" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDDIRTY, "\\flddirty" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDEDIT, "\\fldedit" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDINST, "\\fldinst" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDLOCK, "\\fldlock" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDPRIV, "\\fldpriv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDRSLT, "\\fldrslt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FMODERN, "\\fmodern" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FN, "\\fn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FNIL, "\\fnil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FONTTBL, "\\fonttbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTER, "\\footer" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERF, "\\footerf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERL, "\\footerl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERR, "\\footerr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERY, "\\footery" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTNOTE, "\\footnote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FPRQ, "\\fprq" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRACWIDTH, "\\fracwidth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FROMAN, "\\froman" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FS, "\\fs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FSCRIPT, "\\fscript" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FSWISS, "\\fswiss" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTECH, "\\ftech" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNBJ, "\\ftnbj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNCN, "\\ftncn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNRESTART, "\\ftnrestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNSEP, "\\ftnsep" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNSEPC, "\\ftnsepc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNSTART, "\\ftnstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNTJ, "\\ftntj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GREEN, "\\green" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GUTTER, "\\gutter" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GUTTERSXN, "\\guttersxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADER, "\\header" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERF, "\\headerf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERL, "\\headerl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERR, "\\headerr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERY, "\\headery" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HR, "\\hr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHHOTZ, "\\hyphhotz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_I, "\\i" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ID, "\\id" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_INFO, "\\info" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_INTBL, "\\intbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_IXE, "\\ixe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEEP, "\\keep" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEEPN, "\\keepn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KERNING, "\\kerning" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEYCODE, "\\keycode" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEYWORDS, "\\keywords" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LANDSCAPE, "\\landscape" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LANG, "\\lang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LDBLQUOTE, "\\ldblquote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVEL, "\\level" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LI, "\\li" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LIN, "\\lin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINE, "\\line" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEBETCOL, "\\linebetcol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINECONT, "\\linecont" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEMOD, "\\linemod" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEPPAGE, "\\lineppage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINERESTART, "\\linerestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINESTART, "\\linestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINESTARTS, "\\linestarts" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEX, "\\linex" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LNDSCPSXN, "\\lndscpsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LQUOTE, "\\lquote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MAC, "\\mac" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MACPICT, "\\macpict" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MAKEBACKUP, "\\makebackup" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGB, "\\margb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGBSXN, "\\margbsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGL, "\\margl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGLSXN, "\\marglsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGMIRROR, "\\margmirror" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGR, "\\margr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGRSXN, "\\margrsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGT, "\\margt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGTSXN, "\\margtsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MIN, "\\min" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MO, "\\mo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NEXTCSET, "\\nextcset" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NEXTFILE, "\\nextfile" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFCHARS, "\\nofchars" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFPAGES, "\\nofpages" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFWORDS, "\\nofwords" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOLINE, "\\noline" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSUPERSUB, "\\nosupersub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOWRAP, "\\nowrap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OPERATOR, "\\operator" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OUTL, "\\outl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAGE, "\\page" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAGEBB, "\\pagebb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAPERH, "\\paperh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAPERW, "\\paperw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAR, "\\par" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PARD, "\\pard" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PC, "\\pc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PCA, "\\pca" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGHSXN, "\\pghsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNCONT, "\\pgncont" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNDEC, "\\pgndec" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNLCLTR, "\\pgnlcltr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNLCRM, "\\pgnlcrm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNRESTART, "\\pgnrestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNSTART, "\\pgnstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNSTARTS, "\\pgnstarts" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNUCLTR, "\\pgnucltr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNUCRM, "\\pgnucrm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNX, "\\pgnx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNY, "\\pgny" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGWSXN, "\\pgwsxn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PHCOL, "\\phcol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PHMRG, "\\phmrg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PHPG, "\\phpg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPB, "\\piccropb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPL, "\\piccropl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPR, "\\piccropr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPT, "\\piccropt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICH, "\\pich" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICHGOAL, "\\pichgoal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICSCALED, "\\picscaled" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICSCALEX, "\\picscalex" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICSCALEY, "\\picscaley" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICT, "\\pict" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICW, "\\picw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICWGOAL, "\\picwgoal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PLAIN, "\\plain" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PMMETAFILE, "\\pmmetafile" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSNEGX, "\\posnegx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSNEGY, "\\posnegy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSX, "\\posx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXC, "\\posxc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXI, "\\posxi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXL, "\\posxl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXO, "\\posxo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXR, "\\posxr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSY, "\\posy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYB, "\\posyb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYC, "\\posyc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYIL, "\\posyil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYT, "\\posyt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRINTIM, "\\printim" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PSOVER, "\\psover" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PVMRG, "\\pvmrg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PVPARA, "\\pvpara" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PVPG, "\\pvpg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QC, "\\qc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QJ, "\\qj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QL, "\\ql" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QR, "\\qr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RDBLQUOTE, "\\rdblquote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RED, "\\red" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVBAR, "\\revbar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVISED, "\\revised" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVISIONS, "\\revisions" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVPROP, "\\revprop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVTIM, "\\revtim" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RI, "\\ri" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RIN, "\\rin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ROW, "\\row" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RQUOTE, "\\rquote" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTF, "\\rtf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RXE, "\\rxe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_S, "\\s" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SA, "\\sa" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SB, "\\sb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBASEDON, "\\sbasedon" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKCOL, "\\sbkcol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKEVEN, "\\sbkeven" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKNONE, "\\sbknone" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKODD, "\\sbkodd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKPAGE, "\\sbkpage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBYS, "\\sbys" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SCAPS, "\\scaps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECT, "\\sect" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTD, "\\sectd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHAD, "\\shad" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHADING, "\\shading" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHIFT, "\\shift" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SL, "\\sl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SNEXT, "\\snext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STRIKE, "\\strike" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STYLESHEET, "\\stylesheet" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUB, "\\sub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBJECT, "\\subject" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUPER, "\\super" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TAB, "\\tab" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TB, "\\tb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TC, "\\tc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCF, "\\tcf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCL, "\\tcl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TEMPLATE, "\\template" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TITLE, "\\title" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TITLEPG, "\\titlepg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLDOT, "\\tldot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLEQ, "\\tleq" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLHYPH, "\\tlhyph" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLTH, "\\tlth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLUL, "\\tlul" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQC, "\\tqc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQDEC, "\\tqdec" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQR, "\\tqr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQL, "\\tql" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRGAPH, "\\trgaph" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRLEFT, "\\trleft" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TROWD, "\\trowd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRQC, "\\trqc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRQL, "\\trql" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRQR, "\\trqr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRRH, "\\trrh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TX, "\\tx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TXE, "\\txe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UL, "\\ul" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULD, "\\uld" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDB, "\\uldb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULNONE, "\\ulnone" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULW, "\\ulw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UP, "\\up" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_V, "\\v" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERN, "\\vern" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERSION, "\\version" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALB, "\\vertalb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALC, "\\vertalc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALJ, "\\vertalj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALT, "\\vertalt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBITMAP, "\\wbitmap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBMBITSPIXEL, "\\wbmbitspixel" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBMPLANES, "\\wbmplanes" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBMWIDTHBYTES, "\\wbmwidthbytes" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WIDOWCTRL, "\\widowctrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WMETAFILE, "\\wmetafile" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_XE, "\\xe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_YR, "\\yr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOBRKHYPH, "\\_" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMULA, "\\|" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOBREAK, "\\~" );
++#define sRTF_HEXCHAR "\\'"
++#define sRTF_IGNORE "\\*"
++#define sRTF_OPTHYPH "\\-"
++#define sRTF_SUBENTRY "\\:"
++#define sRTF_ABSH "\\absh"
++#define sRTF_ABSW "\\absw"
++#define sRTF_ALT "\\alt"
++#define sRTF_ANNOTATION "\\annotation"
++#define sRTF_ANSI "\\ansi"
++#define sRTF_ATNID "\\atnid"
++#define sRTF_AUTHOR "\\author"
++#define sRTF_B "\\b"
++#define sRTF_BGBDIAG "\\bgbdiag"
++#define sRTF_BGCROSS "\\bgcross"
++#define sRTF_BGDCROSS "\\bgdcross"
++#define sRTF_BGDKBDIAG "\\bgdkbdiag"
++#define sRTF_BGDKCROSS "\\bgdkcross"
++#define sRTF_BGDKDCROSS "\\bgdkdcross"
++#define sRTF_BGDKFDIAG "\\bgdkfdiag"
++#define sRTF_BGDKHORIZ "\\bgdkhoriz"
++#define sRTF_BGDKVERT "\\bgdkvert"
++#define sRTF_BGFDIAG "\\bgfdiag"
++#define sRTF_BGHORIZ "\\bghoriz"
++#define sRTF_BGVERT "\\bgvert"
++#define sRTF_BIN "\\bin"
++#define sRTF_BINFSXN "\\binfsxn"
++#define sRTF_BINSXN "\\binsxn"
++#define sRTF_BKMKCOLF "\\bkmkcolf"
++#define sRTF_BKMKCOLL "\\bkmkcoll"
++#define sRTF_BKMKEND "\\bkmkend"
++#define sRTF_BKMKSTART "\\bkmkstart"
++#define sRTF_BLUE "\\blue"
++#define sRTF_BOX "\\box"
++#define sRTF_BRDRB "\\brdrb"
++#define sRTF_BRDRBAR "\\brdrbar"
++#define sRTF_BRDRBTW "\\brdrbtw"
++#define sRTF_BRDRCF "\\brdrcf"
++#define sRTF_BRDRDB "\\brdrdb"
++#define sRTF_BRDRDOT "\\brdrdot"
++#define sRTF_BRDRHAIR "\\brdrhair"
++#define sRTF_BRDRL "\\brdrl"
++#define sRTF_BRDRR "\\brdrr"
++#define sRTF_BRDRS "\\brdrs"
++#define sRTF_BRDRSH "\\brdrsh"
++#define sRTF_BRDRT "\\brdrt"
++#define sRTF_BRDRTH "\\brdrth"
++#define sRTF_BRDRW "\\brdrw"
++#define sRTF_BRSP "\\brsp"
++#define sRTF_BULLET "\\bullet"
++#define sRTF_BUPTIM "\\buptim"
++#define sRTF_BXE "\\bxe"
++#define sRTF_CAPS "\\caps"
++#define sRTF_CB "\\cb"
++#define sRTF_CBPAT "\\cbpat"
++#define sRTF_CELL "\\cell"
++#define sRTF_CELLX "\\cellx"
++#define sRTF_CF "\\cf"
++#define sRTF_CFPAT "\\cfpat"
++#define sRTF_CHATN "\\chatn"
++#define sRTF_CHDATE "\\chdate"
++#define sRTF_CHDPA "\\chdpa"
++#define sRTF_CHDPL "\\chdpl"
++#define sRTF_CHFTN "\\chftn"
++#define sRTF_CHFTNSEP "\\chftnsep"
++#define sRTF_CHFTNSEPC "\\chftnsepc"
++#define sRTF_CHPGN "\\chpgn"
++#define sRTF_CHTIME "\\chtime"
++#define sRTF_CLBGBDIAG "\\clbgbdiag"
++#define sRTF_CLBGCROSS "\\clbgcross"
++#define sRTF_CLBGDCROSS "\\clbgdcross"
++#define sRTF_CLBGDKBDIAG "\\clbgdkbdiag"
++#define sRTF_CLBGDKCROSS "\\clbgdkcross"
++#define sRTF_CLBGDKDCROSS "\\clbgdkdcross"
++#define sRTF_CLBGDKFDIAG "\\clbgdkfdiag"
++#define sRTF_CLBGDKHOR "\\clbgdkhor"
++#define sRTF_CLBGDKVERT "\\clbgdkvert"
++#define sRTF_CLBGFDIAG "\\clbgfdiag"
++#define sRTF_CLBGHORIZ "\\clbghoriz"
++#define sRTF_CLBGVERT "\\clbgvert"
++#define sRTF_CLBRDRB "\\clbrdrb"
++#define sRTF_CLBRDRL "\\clbrdrl"
++#define sRTF_CLBRDRR "\\clbrdrr"
++#define sRTF_CLBRDRT "\\clbrdrt"
++#define sRTF_CLCBPAT "\\clcbpat"
++#define sRTF_CLCFPAT "\\clcfpat"
++#define sRTF_CLMGF "\\clmgf"
++#define sRTF_CLMRG "\\clmrg"
++#define sRTF_CLSHDNG "\\clshdng"
++#define sRTF_COLNO "\\colno"
++#define sRTF_COLORTBL "\\colortbl"
++#define sRTF_COLS "\\cols"
++#define sRTF_COLSR "\\colsr"
++#define sRTF_COLSX "\\colsx"
++#define sRTF_COLUMN "\\column"
++#define sRTF_COLW "\\colw"
++#define sRTF_COMMENT "\\comment"
++#define sRTF_CREATIM "\\creatim"
++#define sRTF_CTRL "\\ctrl"
++#define sRTF_DEFF "\\deff"
++#define sRTF_DEFFORMAT "\\defformat"
++#define sRTF_DEFLANG "\\deflang"
++#define sRTF_DEFTAB "\\deftab"
++#define sRTF_DELETED "\\deleted"
++#define sRTF_DFRMTXTX "\\dfrmtxtx"
++#define sRTF_DFRMTXTY "\\dfrmtxty"
++#define sRTF_DIBITMAP "\\dibitmap"
++#define sRTF_DN "\\dn"
++#define sRTF_DOCCOMM "\\doccomm"
++#define sRTF_DOCTEMP "\\doctemp"
++#define sRTF_DROPCAPLI "\\dropcapli"
++#define sRTF_DROPCAPT "\\dropcapt"
++#define sRTF_ABSNOOVRLP "\\absnoovrlp"
++#define sRTF_DXFRTEXT "\\dxfrtext"
++#define sRTF_DY "\\dy"
++#define sRTF_EDMINS "\\edmins"
++#define sRTF_EMDASH "\\emdash"
++#define sRTF_ENDASH "\\endash"
++#define sRTF_ENDDOC "\\enddoc"
++#define sRTF_ENDNHERE "\\endnhere"
++#define sRTF_ENDNOTES "\\endnotes"
++#define sRTF_EXPND "\\expnd"
++#define sRTF_EXPNDTW "\\expndtw"
++#define sRTF_F "\\f"
++#define sRTF_FACINGP "\\facingp"
++#define sRTF_FACPGSXN "\\facpgsxn"
++#define sRTF_FALT "\\falt"
++#define sRTF_FCHARSET "\\fcharset"
++#define sRTF_FDECOR "\\fdecor"
++#define sRTF_FI "\\fi"
++#define sRTF_FIELD "\\field"
++#define sRTF_FLDDIRTY "\\flddirty"
++#define sRTF_FLDEDIT "\\fldedit"
++#define sRTF_FLDINST "\\fldinst"
++#define sRTF_FLDLOCK "\\fldlock"
++#define sRTF_FLDPRIV "\\fldpriv"
++#define sRTF_FLDRSLT "\\fldrslt"
++#define sRTF_FMODERN "\\fmodern"
++#define sRTF_FN "\\fn"
++#define sRTF_FNIL "\\fnil"
++#define sRTF_FONTTBL "\\fonttbl"
++#define sRTF_FOOTER "\\footer"
++#define sRTF_FOOTERF "\\footerf"
++#define sRTF_FOOTERL "\\footerl"
++#define sRTF_FOOTERR "\\footerr"
++#define sRTF_FOOTERY "\\footery"
++#define sRTF_FOOTNOTE "\\footnote"
++#define sRTF_FPRQ "\\fprq"
++#define sRTF_FRACWIDTH "\\fracwidth"
++#define sRTF_FROMAN "\\froman"
++#define sRTF_FS "\\fs"
++#define sRTF_FSCRIPT "\\fscript"
++#define sRTF_FSWISS "\\fswiss"
++#define sRTF_FTECH "\\ftech"
++#define sRTF_FTNBJ "\\ftnbj"
++#define sRTF_FTNCN "\\ftncn"
++#define sRTF_FTNRESTART "\\ftnrestart"
++#define sRTF_FTNSEP "\\ftnsep"
++#define sRTF_FTNSEPC "\\ftnsepc"
++#define sRTF_FTNSTART "\\ftnstart"
++#define sRTF_FTNTJ "\\ftntj"
++#define sRTF_GREEN "\\green"
++#define sRTF_GUTTER "\\gutter"
++#define sRTF_GUTTERSXN "\\guttersxn"
++#define sRTF_HEADER "\\header"
++#define sRTF_HEADERF "\\headerf"
++#define sRTF_HEADERL "\\headerl"
++#define sRTF_HEADERR "\\headerr"
++#define sRTF_HEADERY "\\headery"
++#define sRTF_HR "\\hr"
++#define sRTF_HYPHHOTZ "\\hyphhotz"
++#define sRTF_I "\\i"
++#define sRTF_ID "\\id"
++#define sRTF_INFO "\\info"
++#define sRTF_INTBL "\\intbl"
++#define sRTF_IXE "\\ixe"
++#define sRTF_KEEP "\\keep"
++#define sRTF_KEEPN "\\keepn"
++#define sRTF_KERNING "\\kerning"
++#define sRTF_KEYCODE "\\keycode"
++#define sRTF_KEYWORDS "\\keywords"
++#define sRTF_LANDSCAPE "\\landscape"
++#define sRTF_LANG "\\lang"
++#define sRTF_LDBLQUOTE "\\ldblquote"
++#define sRTF_LEVEL "\\level"
++#define sRTF_LI "\\li"
++#define sRTF_LIN "\\lin"
++#define sRTF_LINE "\\line"
++#define sRTF_LINEBETCOL "\\linebetcol"
++#define sRTF_LINECONT "\\linecont"
++#define sRTF_LINEMOD "\\linemod"
++#define sRTF_LINEPPAGE "\\lineppage"
++#define sRTF_LINERESTART "\\linerestart"
++#define sRTF_LINESTART "\\linestart"
++#define sRTF_LINESTARTS "\\linestarts"
++#define sRTF_LINEX "\\linex"
++#define sRTF_LNDSCPSXN "\\lndscpsxn"
++#define sRTF_LQUOTE "\\lquote"
++#define sRTF_MAC "\\mac"
++#define sRTF_MACPICT "\\macpict"
++#define sRTF_MAKEBACKUP "\\makebackup"
++#define sRTF_MARGB "\\margb"
++#define sRTF_MARGBSXN "\\margbsxn"
++#define sRTF_MARGL "\\margl"
++#define sRTF_MARGLSXN "\\marglsxn"
++#define sRTF_MARGMIRROR "\\margmirror"
++#define sRTF_MARGR "\\margr"
++#define sRTF_MARGRSXN "\\margrsxn"
++#define sRTF_MARGT "\\margt"
++#define sRTF_MARGTSXN "\\margtsxn"
++#define sRTF_MIN "\\min"
++#define sRTF_MO "\\mo"
++#define sRTF_NEXTCSET "\\nextcset"
++#define sRTF_NEXTFILE "\\nextfile"
++#define sRTF_NOFCHARS "\\nofchars"
++#define sRTF_NOFPAGES "\\nofpages"
++#define sRTF_NOFWORDS "\\nofwords"
++#define sRTF_NOLINE "\\noline"
++#define sRTF_NOSUPERSUB "\\nosupersub"
++#define sRTF_NOWRAP "\\nowrap"
++#define sRTF_OPERATOR "\\operator"
++#define sRTF_OUTL "\\outl"
++#define sRTF_PAGE "\\page"
++#define sRTF_PAGEBB "\\pagebb"
++#define sRTF_PAPERH "\\paperh"
++#define sRTF_PAPERW "\\paperw"
++#define sRTF_PAR "\\par"
++#define sRTF_PARD "\\pard"
++#define sRTF_PC "\\pc"
++#define sRTF_PCA "\\pca"
++#define sRTF_PGHSXN "\\pghsxn"
++#define sRTF_PGNCONT "\\pgncont"
++#define sRTF_PGNDEC "\\pgndec"
++#define sRTF_PGNLCLTR "\\pgnlcltr"
++#define sRTF_PGNLCRM "\\pgnlcrm"
++#define sRTF_PGNRESTART "\\pgnrestart"
++#define sRTF_PGNSTART "\\pgnstart"
++#define sRTF_PGNSTARTS "\\pgnstarts"
++#define sRTF_PGNUCLTR "\\pgnucltr"
++#define sRTF_PGNUCRM "\\pgnucrm"
++#define sRTF_PGNX "\\pgnx"
++#define sRTF_PGNY "\\pgny"
++#define sRTF_PGWSXN "\\pgwsxn"
++#define sRTF_PHCOL "\\phcol"
++#define sRTF_PHMRG "\\phmrg"
++#define sRTF_PHPG "\\phpg"
++#define sRTF_PICCROPB "\\piccropb"
++#define sRTF_PICCROPL "\\piccropl"
++#define sRTF_PICCROPR "\\piccropr"
++#define sRTF_PICCROPT "\\piccropt"
++#define sRTF_PICH "\\pich"
++#define sRTF_PICHGOAL "\\pichgoal"
++#define sRTF_PICSCALED "\\picscaled"
++#define sRTF_PICSCALEX "\\picscalex"
++#define sRTF_PICSCALEY "\\picscaley"
++#define sRTF_PICT "\\pict"
++#define sRTF_PICW "\\picw"
++#define sRTF_PICWGOAL "\\picwgoal"
++#define sRTF_PLAIN "\\plain"
++#define sRTF_PMMETAFILE "\\pmmetafile"
++#define sRTF_POSNEGX "\\posnegx"
++#define sRTF_POSNEGY "\\posnegy"
++#define sRTF_POSX "\\posx"
++#define sRTF_POSXC "\\posxc"
++#define sRTF_POSXI "\\posxi"
++#define sRTF_POSXL "\\posxl"
++#define sRTF_POSXO "\\posxo"
++#define sRTF_POSXR "\\posxr"
++#define sRTF_POSY "\\posy"
++#define sRTF_POSYB "\\posyb"
++#define sRTF_POSYC "\\posyc"
++#define sRTF_POSYIL "\\posyil"
++#define sRTF_POSYT "\\posyt"
++#define sRTF_PRINTIM "\\printim"
++#define sRTF_PSOVER "\\psover"
++#define sRTF_PVMRG "\\pvmrg"
++#define sRTF_PVPARA "\\pvpara"
++#define sRTF_PVPG "\\pvpg"
++#define sRTF_QC "\\qc"
++#define sRTF_QJ "\\qj"
++#define sRTF_QL "\\ql"
++#define sRTF_QR "\\qr"
++#define sRTF_RDBLQUOTE "\\rdblquote"
++#define sRTF_RED "\\red"
++#define sRTF_REVBAR "\\revbar"
++#define sRTF_REVISED "\\revised"
++#define sRTF_REVISIONS "\\revisions"
++#define sRTF_REVPROP "\\revprop"
++#define sRTF_REVTIM "\\revtim"
++#define sRTF_RI "\\ri"
++#define sRTF_RIN "\\rin"
++#define sRTF_ROW "\\row"
++#define sRTF_RQUOTE "\\rquote"
++#define sRTF_RTF "\\rtf"
++#define sRTF_RXE "\\rxe"
++#define sRTF_S "\\s"
++#define sRTF_SA "\\sa"
++#define sRTF_SB "\\sb"
++#define sRTF_SBASEDON "\\sbasedon"
++#define sRTF_SBKCOL "\\sbkcol"
++#define sRTF_SBKEVEN "\\sbkeven"
++#define sRTF_SBKNONE "\\sbknone"
++#define sRTF_SBKODD "\\sbkodd"
++#define sRTF_SBKPAGE "\\sbkpage"
++#define sRTF_SBYS "\\sbys"
++#define sRTF_SCAPS "\\scaps"
++#define sRTF_SECT "\\sect"
++#define sRTF_SECTD "\\sectd"
++#define sRTF_SHAD "\\shad"
++#define sRTF_SHADING "\\shading"
++#define sRTF_SHIFT "\\shift"
++#define sRTF_SL "\\sl"
++#define sRTF_SNEXT "\\snext"
++#define sRTF_STRIKE "\\strike"
++#define sRTF_STYLESHEET "\\stylesheet"
++#define sRTF_SUB "\\sub"
++#define sRTF_SUBJECT "\\subject"
++#define sRTF_SUPER "\\super"
++#define sRTF_TAB "\\tab"
++#define sRTF_TB "\\tb"
++#define sRTF_TC "\\tc"
++#define sRTF_TCF "\\tcf"
++#define sRTF_TCL "\\tcl"
++#define sRTF_TEMPLATE "\\template"
++#define sRTF_TITLE "\\title"
++#define sRTF_TITLEPG "\\titlepg"
++#define sRTF_TLDOT "\\tldot"
++#define sRTF_TLEQ "\\tleq"
++#define sRTF_TLHYPH "\\tlhyph"
++#define sRTF_TLTH "\\tlth"
++#define sRTF_TLUL "\\tlul"
++#define sRTF_TQC "\\tqc"
++#define sRTF_TQDEC "\\tqdec"
++#define sRTF_TQR "\\tqr"
++#define sRTF_TQL "\\tql"
++#define sRTF_TRGAPH "\\trgaph"
++#define sRTF_TRLEFT "\\trleft"
++#define sRTF_TROWD "\\trowd"
++#define sRTF_TRQC "\\trqc"
++#define sRTF_TRQL "\\trql"
++#define sRTF_TRQR "\\trqr"
++#define sRTF_TRRH "\\trrh"
++#define sRTF_TX "\\tx"
++#define sRTF_TXE "\\txe"
++#define sRTF_UL "\\ul"
++#define sRTF_ULD "\\uld"
++#define sRTF_ULDB "\\uldb"
++#define sRTF_ULNONE "\\ulnone"
++#define sRTF_ULW "\\ulw"
++#define sRTF_UP "\\up"
++#define sRTF_V "\\v"
++#define sRTF_VERN "\\vern"
++#define sRTF_VERSION "\\version"
++#define sRTF_VERTALB "\\vertalb"
++#define sRTF_VERTALC "\\vertalc"
++#define sRTF_VERTALJ "\\vertalj"
++#define sRTF_VERTALT "\\vertalt"
++#define sRTF_WBITMAP "\\wbitmap"
++#define sRTF_WBMBITSPIXEL "\\wbmbitspixel"
++#define sRTF_WBMPLANES "\\wbmplanes"
++#define sRTF_WBMWIDTHBYTES "\\wbmwidthbytes"
++#define sRTF_WIDOWCTRL "\\widowctrl"
++#define sRTF_WMETAFILE "\\wmetafile"
++#define sRTF_XE "\\xe"
++#define sRTF_YR "\\yr"
++#define sRTF_NOBRKHYPH "\\_"
++#define sRTF_FORMULA "\\|"
++#define sRTF_NOBREAK "\\~"
+ 
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AB, "\\ab" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACAPS, "\\acaps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACF, "\\acf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADDITIVE, "\\additive" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADN, "\\adn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AENDDOC, "\\aenddoc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AENDNOTES, "\\aendnotes" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AEXPND, "\\aexpnd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AF, "\\af" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFS, "\\afs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNBJ, "\\aftnbj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNCN, "\\aftncn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNALC, "\\aftnnalc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNAR, "\\aftnnar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNAUC, "\\aftnnauc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNCHI, "\\aftnnchi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNRLC, "\\aftnnrlc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNRUC, "\\aftnnruc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNRESTART, "\\aftnrestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNRSTCONT, "\\aftnrstcont" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNSEP, "\\aftnsep" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNSEPC, "\\aftnsepc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNSTART, "\\aftnstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNTJ, "\\aftntj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AI, "\\ai" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ALANG, "\\alang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ALLPROT, "\\allprot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANNOTPROT, "\\annotprot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AOUTL, "\\aoutl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASCAPS, "\\ascaps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASHAD, "\\ashad" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASTRIKE, "\\astrike" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNAUTHOR, "\\atnauthor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNICN, "\\atnicn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNREF, "\\atnref" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNTIME, "\\atntime" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATRFEND, "\\atrfend" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATRFSTART, "\\atrfstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AUL, "\\aul" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULD, "\\auld" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULDB, "\\auldb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULNONE, "\\aulnone" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULW, "\\aulw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AUP, "\\aup" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKPUB, "\\bkmkpub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASH, "\\brdrdash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRKFRM, "\\brkfrm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CCHS, "\\cchs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CPG, "\\cpg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CS, "\\cs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CVMME, "\\cvmme" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DATAFIELD, "\\datafield" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DO, "\\do" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBXCOLUMN, "\\dobxcolumn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBXMARGIN, "\\dobxmargin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBXPAGE, "\\dobxpage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBYMARGIN, "\\dobymargin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBYPAGE, "\\dobypage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBYPARA, "\\dobypara" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DODHGT, "\\dodhgt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOLOCK, "\\dolock" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDHOL, "\\dpaendhol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDL, "\\dpaendl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDSOL, "\\dpaendsol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDW, "\\dpaendw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPARC, "\\dparc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPARCFLIPX, "\\dparcflipx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPARCFLIPY, "\\dparcflipy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTHOL, "\\dpastarthol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTL, "\\dpastartl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTSOL, "\\dpastartsol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTW, "\\dpastartw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCALLOUT, "\\dpcallout" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOA, "\\dpcoa" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOACCENT, "\\dpcoaccent" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOBESTFIT, "\\dpcobestfit" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOBORDER, "\\dpcoborder" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODABS, "\\dpcodabs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODBOTTOM, "\\dpcodbottom" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODCENTER, "\\dpcodcenter" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODTOP, "\\dpcodtop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOLENGTH, "\\dpcolength" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOMINUSX, "\\dpcominusx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOMINUSY, "\\dpcominusy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOOFFSET, "\\dpcooffset" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOSMARTA, "\\dpcosmarta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTDOUBLE, "\\dpcotdouble" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTRIGHT, "\\dpcotright" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTSINGLE, "\\dpcotsingle" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTTRIPLE, "\\dpcottriple" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOUNT, "\\dpcount" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPELLIPSE, "\\dpellipse" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPENDGROUP, "\\dpendgroup" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGCB, "\\dpfillbgcb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGCG, "\\dpfillbgcg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGCR, "\\dpfillbgcr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGGRAY, "\\dpfillbggray" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGPAL, "\\dpfillbgpal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGCB, "\\dpfillfgcb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGCG, "\\dpfillfgcg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGCR, "\\dpfillfgcr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGGRAY, "\\dpfillfggray" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGPAL, "\\dpfillfgpal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLPAT, "\\dpfillpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPGROUP, "\\dpgroup" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINE, "\\dpline" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINECOB, "\\dplinecob" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINECOG, "\\dplinecog" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINECOR, "\\dplinecor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDADO, "\\dplinedado" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDADODO, "\\dplinedadodo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDASH, "\\dplinedash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDOT, "\\dplinedot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEGRAY, "\\dplinegray" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEHOLLOW, "\\dplinehollow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEPAL, "\\dplinepal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINESOLID, "\\dplinesolid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEW, "\\dplinew" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPOLYCOUNT, "\\dppolycount" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPOLYGON, "\\dppolygon" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPOLYLINE, "\\dppolyline" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPTX, "\\dpptx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPTY, "\\dppty" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPRECT, "\\dprect" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPROUNDR, "\\dproundr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPSHADOW, "\\dpshadow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPSHADX, "\\dpshadx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPSHADY, "\\dpshady" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPTXBX, "\\dptxbx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPTXBXMAR, "\\dptxbxmar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPTXBXTEXT, "\\dptxbxtext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPX, "\\dpx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPXSIZE, "\\dpxsize" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPY, "\\dpy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPYSIZE, "\\dpysize" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DS, "\\ds" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMSPACE, "\\emspace" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENSPACE, "\\enspace" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FBIDI, "\\fbidi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FET, "\\fet" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FID, "\\fid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FILE, "\\file" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FILETBL, "\\filetbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDALT, "\\fldalt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FNETWORK, "\\fnetwork" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FONTEMB, "\\fontemb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FONTFILE, "\\fontfile" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMDISP, "\\formdisp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMPROT, "\\formprot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMSHADE, "\\formshade" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOSNUM, "\\fosnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRELATIVE, "\\frelative" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNALT, "\\ftnalt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNIL, "\\ftnil" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNALC, "\\ftnnalc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNAR, "\\ftnnar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNAUC, "\\ftnnauc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNCHI, "\\ftnnchi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNRLC, "\\ftnnrlc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNRUC, "\\ftnnruc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNRSTCONT, "\\ftnrstcont" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNRSTPG, "\\ftnrstpg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTTRUETYPE, "\\fttruetype" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDDOS, "\\fvaliddos" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDHPFS, "\\fvalidhpfs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDMAC, "\\fvalidmac" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDNTFS, "\\fvalidntfs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHAUTO, "\\hyphauto" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHCAPS, "\\hyphcaps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHCONSEC, "\\hyphconsec" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHPAR, "\\hyphpar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINKSELF, "\\linkself" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINKSTYLES, "\\linkstyles" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRCH, "\\ltrch" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRDOC, "\\ltrdoc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRMARK, "\\ltrmark" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRPAR, "\\ltrpar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRROW, "\\ltrrow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRSECT, "\\ltrsect" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOCOLBAL, "\\nocolbal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOEXTRASPRL, "\\noextrasprl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOTABIND, "\\notabind" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOWIDCTLPAR, "\\nowidctlpar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJALIAS, "\\objalias" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJALIGN, "\\objalign" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJAUTLINK, "\\objautlink" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCLASS, "\\objclass" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPB, "\\objcropb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPL, "\\objcropl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPR, "\\objcropr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPT, "\\objcropt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJDATA, "\\objdata" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJECT, "\\object" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJEMB, "\\objemb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJH, "\\objh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJICEMB, "\\objicemb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJLINK, "\\objlink" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJLOCK, "\\objlock" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJNAME, "\\objname" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJPUB, "\\objpub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSCALEX, "\\objscalex" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSCALEY, "\\objscaley" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSECT, "\\objsect" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSETSIZE, "\\objsetsize" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSUB, "\\objsub" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJTIME, "\\objtime" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJTRANSY, "\\objtransy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJUPDATE, "\\objupdate" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJW, "\\objw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OTBLRUL, "\\otblrul" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHN, "\\pgnhn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSC, "\\pgnhnsc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSH, "\\pgnhnsh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSM, "\\pgnhnsm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSN, "\\pgnhnsn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSP, "\\pgnhnsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICBMP, "\\picbmp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICBPP, "\\picbpp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PN, "\\pn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNACROSS, "\\pnacross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNB, "\\pnb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCAPS, "\\pncaps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCARD, "\\pncard" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCF, "\\pncf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDEC, "\\pndec" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNF, "\\pnf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNFS, "\\pnfs" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNHANG, "\\pnhang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNI, "\\pni" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNINDENT, "\\pnindent" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLCLTR, "\\pnlcltr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLCRM, "\\pnlcrm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVL, "\\pnlvl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVLBLT, "\\pnlvlblt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVLBODY, "\\pnlvlbody" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVLCONT, "\\pnlvlcont" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNNUMONCE, "\\pnnumonce" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNORD, "\\pnord" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNORDT, "\\pnordt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNPREV, "\\pnprev" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNQC, "\\pnqc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNQL, "\\pnql" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNQR, "\\pnqr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRESTART, "\\pnrestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSCAPS, "\\pnscaps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSECLVL, "\\pnseclvl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSP, "\\pnsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSTART, "\\pnstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSTRIKE, "\\pnstrike" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNTEXT, "\\pntext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNTXTA, "\\pntxta" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNTXTB, "\\pntxtb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNUCLTR, "\\pnucltr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNUCRM, "\\pnucrm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNUL, "\\pnul" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULD, "\\pnuld" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULDB, "\\pnuldb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULNONE, "\\pnulnone" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULW, "\\pnulw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRCOLBL, "\\prcolbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRINTDATA, "\\printdata" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PSZ, "\\psz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PUBAUTO, "\\pubauto" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RESULT, "\\result" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVAUTH, "\\revauth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVDTTM, "\\revdttm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVPROT, "\\revprot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVTBL, "\\revtbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTBMP, "\\rsltbmp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTMERGE, "\\rsltmerge" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTPICT, "\\rsltpict" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTRTF, "\\rsltrtf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTTXT, "\\rslttxt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLCH, "\\rtlch" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLDOC, "\\rtldoc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLMARK, "\\rtlmark" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLPAR, "\\rtlpar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLROW, "\\rtlrow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLSECT, "\\rtlsect" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SEC, "\\sec" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTNUM, "\\sectnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTUNLOCKED, "\\sectunlocked" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SLMULT, "\\slmult" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTCOL, "\\softcol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTLHEIGHT, "\\softlheight" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTLINE, "\\softline" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTPAGE, "\\softpage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSSPBF, "\\sprsspbf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSTSP, "\\sprstsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBDOCUMENT, "\\subdocument" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SWPBDR, "\\swpbdr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCN, "\\tcn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRANSMF, "\\transmf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRB, "\\trbrdrb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRH, "\\trbrdrh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRL, "\\trbrdrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRR, "\\trbrdrr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRT, "\\trbrdrt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRV, "\\trbrdrv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRHDR, "\\trhdr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRKEEP, "\\trkeep" );
++#define sRTF_AB "\\ab"
++#define sRTF_ACAPS "\\acaps"
++#define sRTF_ACF "\\acf"
++#define sRTF_ADDITIVE "\\additive"
++#define sRTF_ADN "\\adn"
++#define sRTF_AENDDOC "\\aenddoc"
++#define sRTF_AENDNOTES "\\aendnotes"
++#define sRTF_AEXPND "\\aexpnd"
++#define sRTF_AF "\\af"
++#define sRTF_AFS "\\afs"
++#define sRTF_AFTNBJ "\\aftnbj"
++#define sRTF_AFTNCN "\\aftncn"
++#define sRTF_AFTNNALC "\\aftnnalc"
++#define sRTF_AFTNNAR "\\aftnnar"
++#define sRTF_AFTNNAUC "\\aftnnauc"
++#define sRTF_AFTNNCHI "\\aftnnchi"
++#define sRTF_AFTNNRLC "\\aftnnrlc"
++#define sRTF_AFTNNRUC "\\aftnnruc"
++#define sRTF_AFTNRESTART "\\aftnrestart"
++#define sRTF_AFTNRSTCONT "\\aftnrstcont"
++#define sRTF_AFTNSEP "\\aftnsep"
++#define sRTF_AFTNSEPC "\\aftnsepc"
++#define sRTF_AFTNSTART "\\aftnstart"
++#define sRTF_AFTNTJ "\\aftntj"
++#define sRTF_AI "\\ai"
++#define sRTF_ALANG "\\alang"
++#define sRTF_ALLPROT "\\allprot"
++#define sRTF_ANNOTPROT "\\annotprot"
++#define sRTF_AOUTL "\\aoutl"
++#define sRTF_ASCAPS "\\ascaps"
++#define sRTF_ASHAD "\\ashad"
++#define sRTF_ASTRIKE "\\astrike"
++#define sRTF_ATNAUTHOR "\\atnauthor"
++#define sRTF_ATNICN "\\atnicn"
++#define sRTF_ATNREF "\\atnref"
++#define sRTF_ATNTIME "\\atntime"
++#define sRTF_ATRFEND "\\atrfend"
++#define sRTF_ATRFSTART "\\atrfstart"
++#define sRTF_AUL "\\aul"
++#define sRTF_AULD "\\auld"
++#define sRTF_AULDB "\\auldb"
++#define sRTF_AULNONE "\\aulnone"
++#define sRTF_AULW "\\aulw"
++#define sRTF_AUP "\\aup"
++#define sRTF_BKMKPUB "\\bkmkpub"
++#define sRTF_BRDRDASH "\\brdrdash"
++#define sRTF_BRKFRM "\\brkfrm"
++#define sRTF_CCHS "\\cchs"
++#define sRTF_CPG "\\cpg"
++#define sRTF_CS "\\cs"
++#define sRTF_CVMME "\\cvmme"
++#define sRTF_DATAFIELD "\\datafield"
++#define sRTF_DO "\\do"
++#define sRTF_DOBXCOLUMN "\\dobxcolumn"
++#define sRTF_DOBXMARGIN "\\dobxmargin"
++#define sRTF_DOBXPAGE "\\dobxpage"
++#define sRTF_DOBYMARGIN "\\dobymargin"
++#define sRTF_DOBYPAGE "\\dobypage"
++#define sRTF_DOBYPARA "\\dobypara"
++#define sRTF_DODHGT "\\dodhgt"
++#define sRTF_DOLOCK "\\dolock"
++#define sRTF_DPAENDHOL "\\dpaendhol"
++#define sRTF_DPAENDL "\\dpaendl"
++#define sRTF_DPAENDSOL "\\dpaendsol"
++#define sRTF_DPAENDW "\\dpaendw"
++#define sRTF_DPARC "\\dparc"
++#define sRTF_DPARCFLIPX "\\dparcflipx"
++#define sRTF_DPARCFLIPY "\\dparcflipy"
++#define sRTF_DPASTARTHOL "\\dpastarthol"
++#define sRTF_DPASTARTL "\\dpastartl"
++#define sRTF_DPASTARTSOL "\\dpastartsol"
++#define sRTF_DPASTARTW "\\dpastartw"
++#define sRTF_DPCALLOUT "\\dpcallout"
++#define sRTF_DPCOA "\\dpcoa"
++#define sRTF_DPCOACCENT "\\dpcoaccent"
++#define sRTF_DPCOBESTFIT "\\dpcobestfit"
++#define sRTF_DPCOBORDER "\\dpcoborder"
++#define sRTF_DPCODABS "\\dpcodabs"
++#define sRTF_DPCODBOTTOM "\\dpcodbottom"
++#define sRTF_DPCODCENTER "\\dpcodcenter"
++#define sRTF_DPCODTOP "\\dpcodtop"
++#define sRTF_DPCOLENGTH "\\dpcolength"
++#define sRTF_DPCOMINUSX "\\dpcominusx"
++#define sRTF_DPCOMINUSY "\\dpcominusy"
++#define sRTF_DPCOOFFSET "\\dpcooffset"
++#define sRTF_DPCOSMARTA "\\dpcosmarta"
++#define sRTF_DPCOTDOUBLE "\\dpcotdouble"
++#define sRTF_DPCOTRIGHT "\\dpcotright"
++#define sRTF_DPCOTSINGLE "\\dpcotsingle"
++#define sRTF_DPCOTTRIPLE "\\dpcottriple"
++#define sRTF_DPCOUNT "\\dpcount"
++#define sRTF_DPELLIPSE "\\dpellipse"
++#define sRTF_DPENDGROUP "\\dpendgroup"
++#define sRTF_DPFILLBGCB "\\dpfillbgcb"
++#define sRTF_DPFILLBGCG "\\dpfillbgcg"
++#define sRTF_DPFILLBGCR "\\dpfillbgcr"
++#define sRTF_DPFILLBGGRAY "\\dpfillbggray"
++#define sRTF_DPFILLBGPAL "\\dpfillbgpal"
++#define sRTF_DPFILLFGCB "\\dpfillfgcb"
++#define sRTF_DPFILLFGCG "\\dpfillfgcg"
++#define sRTF_DPFILLFGCR "\\dpfillfgcr"
++#define sRTF_DPFILLFGGRAY "\\dpfillfggray"
++#define sRTF_DPFILLFGPAL "\\dpfillfgpal"
++#define sRTF_DPFILLPAT "\\dpfillpat"
++#define sRTF_DPGROUP "\\dpgroup"
++#define sRTF_DPLINE "\\dpline"
++#define sRTF_DPLINECOB "\\dplinecob"
++#define sRTF_DPLINECOG "\\dplinecog"
++#define sRTF_DPLINECOR "\\dplinecor"
++#define sRTF_DPLINEDADO "\\dplinedado"
++#define sRTF_DPLINEDADODO "\\dplinedadodo"
++#define sRTF_DPLINEDASH "\\dplinedash"
++#define sRTF_DPLINEDOT "\\dplinedot"
++#define sRTF_DPLINEGRAY "\\dplinegray"
++#define sRTF_DPLINEHOLLOW "\\dplinehollow"
++#define sRTF_DPLINEPAL "\\dplinepal"
++#define sRTF_DPLINESOLID "\\dplinesolid"
++#define sRTF_DPLINEW "\\dplinew"
++#define sRTF_DPPOLYCOUNT "\\dppolycount"
++#define sRTF_DPPOLYGON "\\dppolygon"
++#define sRTF_DPPOLYLINE "\\dppolyline"
++#define sRTF_DPPTX "\\dpptx"
++#define sRTF_DPPTY "\\dppty"
++#define sRTF_DPRECT "\\dprect"
++#define sRTF_DPROUNDR "\\dproundr"
++#define sRTF_DPSHADOW "\\dpshadow"
++#define sRTF_DPSHADX "\\dpshadx"
++#define sRTF_DPSHADY "\\dpshady"
++#define sRTF_DPTXBX "\\dptxbx"
++#define sRTF_DPTXBXMAR "\\dptxbxmar"
++#define sRTF_DPTXBXTEXT "\\dptxbxtext"
++#define sRTF_DPX "\\dpx"
++#define sRTF_DPXSIZE "\\dpxsize"
++#define sRTF_DPY "\\dpy"
++#define sRTF_DPYSIZE "\\dpysize"
++#define sRTF_DS "\\ds"
++#define sRTF_EMSPACE "\\emspace"
++#define sRTF_ENSPACE "\\enspace"
++#define sRTF_FBIDI "\\fbidi"
++#define sRTF_FET "\\fet"
++#define sRTF_FID "\\fid"
++#define sRTF_FILE "\\file"
++#define sRTF_FILETBL "\\filetbl"
++#define sRTF_FLDALT "\\fldalt"
++#define sRTF_FNETWORK "\\fnetwork"
++#define sRTF_FONTEMB "\\fontemb"
++#define sRTF_FONTFILE "\\fontfile"
++#define sRTF_FORMDISP "\\formdisp"
++#define sRTF_FORMPROT "\\formprot"
++#define sRTF_FORMSHADE "\\formshade"
++#define sRTF_FOSNUM "\\fosnum"
++#define sRTF_FRELATIVE "\\frelative"
++#define sRTF_FTNALT "\\ftnalt"
++#define sRTF_FTNIL "\\ftnil"
++#define sRTF_FTNNALC "\\ftnnalc"
++#define sRTF_FTNNAR "\\ftnnar"
++#define sRTF_FTNNAUC "\\ftnnauc"
++#define sRTF_FTNNCHI "\\ftnnchi"
++#define sRTF_FTNNRLC "\\ftnnrlc"
++#define sRTF_FTNNRUC "\\ftnnruc"
++#define sRTF_FTNRSTCONT "\\ftnrstcont"
++#define sRTF_FTNRSTPG "\\ftnrstpg"
++#define sRTF_FTTRUETYPE "\\fttruetype"
++#define sRTF_FVALIDDOS "\\fvaliddos"
++#define sRTF_FVALIDHPFS "\\fvalidhpfs"
++#define sRTF_FVALIDMAC "\\fvalidmac"
++#define sRTF_FVALIDNTFS "\\fvalidntfs"
++#define sRTF_HYPHAUTO "\\hyphauto"
++#define sRTF_HYPHCAPS "\\hyphcaps"
++#define sRTF_HYPHCONSEC "\\hyphconsec"
++#define sRTF_HYPHPAR "\\hyphpar"
++#define sRTF_LINKSELF "\\linkself"
++#define sRTF_LINKSTYLES "\\linkstyles"
++#define sRTF_LTRCH "\\ltrch"
++#define sRTF_LTRDOC "\\ltrdoc"
++#define sRTF_LTRMARK "\\ltrmark"
++#define sRTF_LTRPAR "\\ltrpar"
++#define sRTF_LTRROW "\\ltrrow"
++#define sRTF_LTRSECT "\\ltrsect"
++#define sRTF_NOCOLBAL "\\nocolbal"
++#define sRTF_NOEXTRASPRL "\\noextrasprl"
++#define sRTF_NOTABIND "\\notabind"
++#define sRTF_NOWIDCTLPAR "\\nowidctlpar"
++#define sRTF_OBJALIAS "\\objalias"
++#define sRTF_OBJALIGN "\\objalign"
++#define sRTF_OBJAUTLINK "\\objautlink"
++#define sRTF_OBJCLASS "\\objclass"
++#define sRTF_OBJCROPB "\\objcropb"
++#define sRTF_OBJCROPL "\\objcropl"
++#define sRTF_OBJCROPR "\\objcropr"
++#define sRTF_OBJCROPT "\\objcropt"
++#define sRTF_OBJDATA "\\objdata"
++#define sRTF_OBJECT "\\object"
++#define sRTF_OBJEMB "\\objemb"
++#define sRTF_OBJH "\\objh"
++#define sRTF_OBJICEMB "\\objicemb"
++#define sRTF_OBJLINK "\\objlink"
++#define sRTF_OBJLOCK "\\objlock"
++#define sRTF_OBJNAME "\\objname"
++#define sRTF_OBJPUB "\\objpub"
++#define sRTF_OBJSCALEX "\\objscalex"
++#define sRTF_OBJSCALEY "\\objscaley"
++#define sRTF_OBJSECT "\\objsect"
++#define sRTF_OBJSETSIZE "\\objsetsize"
++#define sRTF_OBJSUB "\\objsub"
++#define sRTF_OBJTIME "\\objtime"
++#define sRTF_OBJTRANSY "\\objtransy"
++#define sRTF_OBJUPDATE "\\objupdate"
++#define sRTF_OBJW "\\objw"
++#define sRTF_OTBLRUL "\\otblrul"
++#define sRTF_PGNHN "\\pgnhn"
++#define sRTF_PGNHNSC "\\pgnhnsc"
++#define sRTF_PGNHNSH "\\pgnhnsh"
++#define sRTF_PGNHNSM "\\pgnhnsm"
++#define sRTF_PGNHNSN "\\pgnhnsn"
++#define sRTF_PGNHNSP "\\pgnhnsp"
++#define sRTF_PICBMP "\\picbmp"
++#define sRTF_PICBPP "\\picbpp"
++#define sRTF_PN "\\pn"
++#define sRTF_PNACROSS "\\pnacross"
++#define sRTF_PNB "\\pnb"
++#define sRTF_PNCAPS "\\pncaps"
++#define sRTF_PNCARD "\\pncard"
++#define sRTF_PNCF "\\pncf"
++#define sRTF_PNDEC "\\pndec"
++#define sRTF_PNF "\\pnf"
++#define sRTF_PNFS "\\pnfs"
++#define sRTF_PNHANG "\\pnhang"
++#define sRTF_PNI "\\pni"
++#define sRTF_PNINDENT "\\pnindent"
++#define sRTF_PNLCLTR "\\pnlcltr"
++#define sRTF_PNLCRM "\\pnlcrm"
++#define sRTF_PNLVL "\\pnlvl"
++#define sRTF_PNLVLBLT "\\pnlvlblt"
++#define sRTF_PNLVLBODY "\\pnlvlbody"
++#define sRTF_PNLVLCONT "\\pnlvlcont"
++#define sRTF_PNNUMONCE "\\pnnumonce"
++#define sRTF_PNORD "\\pnord"
++#define sRTF_PNORDT "\\pnordt"
++#define sRTF_PNPREV "\\pnprev"
++#define sRTF_PNQC "\\pnqc"
++#define sRTF_PNQL "\\pnql"
++#define sRTF_PNQR "\\pnqr"
++#define sRTF_PNRESTART "\\pnrestart"
++#define sRTF_PNSCAPS "\\pnscaps"
++#define sRTF_PNSECLVL "\\pnseclvl"
++#define sRTF_PNSP "\\pnsp"
++#define sRTF_PNSTART "\\pnstart"
++#define sRTF_PNSTRIKE "\\pnstrike"
++#define sRTF_PNTEXT "\\pntext"
++#define sRTF_PNTXTA "\\pntxta"
++#define sRTF_PNTXTB "\\pntxtb"
++#define sRTF_PNUCLTR "\\pnucltr"
++#define sRTF_PNUCRM "\\pnucrm"
++#define sRTF_PNUL "\\pnul"
++#define sRTF_PNULD "\\pnuld"
++#define sRTF_PNULDB "\\pnuldb"
++#define sRTF_PNULNONE "\\pnulnone"
++#define sRTF_PNULW "\\pnulw"
++#define sRTF_PRCOLBL "\\prcolbl"
++#define sRTF_PRINTDATA "\\printdata"
++#define sRTF_PSZ "\\psz"
++#define sRTF_PUBAUTO "\\pubauto"
++#define sRTF_RESULT "\\result"
++#define sRTF_REVAUTH "\\revauth"
++#define sRTF_REVDTTM "\\revdttm"
++#define sRTF_REVPROT "\\revprot"
++#define sRTF_REVTBL "\\revtbl"
++#define sRTF_RSLTBMP "\\rsltbmp"
++#define sRTF_RSLTMERGE "\\rsltmerge"
++#define sRTF_RSLTPICT "\\rsltpict"
++#define sRTF_RSLTRTF "\\rsltrtf"
++#define sRTF_RSLTTXT "\\rslttxt"
++#define sRTF_RTLCH "\\rtlch"
++#define sRTF_RTLDOC "\\rtldoc"
++#define sRTF_RTLMARK "\\rtlmark"
++#define sRTF_RTLPAR "\\rtlpar"
++#define sRTF_RTLROW "\\rtlrow"
++#define sRTF_RTLSECT "\\rtlsect"
++#define sRTF_SEC "\\sec"
++#define sRTF_SECTNUM "\\sectnum"
++#define sRTF_SECTUNLOCKED "\\sectunlocked"
++#define sRTF_SLMULT "\\slmult"
++#define sRTF_SOFTCOL "\\softcol"
++#define sRTF_SOFTLHEIGHT "\\softlheight"
++#define sRTF_SOFTLINE "\\softline"
++#define sRTF_SOFTPAGE "\\softpage"
++#define sRTF_SPRSSPBF "\\sprsspbf"
++#define sRTF_SPRSTSP "\\sprstsp"
++#define sRTF_SUBDOCUMENT "\\subdocument"
++#define sRTF_SWPBDR "\\swpbdr"
++#define sRTF_TCN "\\tcn"
++#define sRTF_TRANSMF "\\transmf"
++#define sRTF_TRBRDRB "\\trbrdrb"
++#define sRTF_TRBRDRH "\\trbrdrh"
++#define sRTF_TRBRDRL "\\trbrdrl"
++#define sRTF_TRBRDRR "\\trbrdrr"
++#define sRTF_TRBRDRT "\\trbrdrt"
++#define sRTF_TRBRDRV "\\trbrdrv"
++#define sRTF_TRHDR "\\trhdr"
++#define sRTF_TRKEEP "\\trkeep"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDB, "\\trpaddb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDL, "\\trpaddl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDR, "\\trpaddr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDT, "\\trpaddt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFB, "\\trpaddfb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFL, "\\trpaddfl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFR, "\\trpaddfr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFT, "\\trpaddft" );
++#define sRTF_TRPADDB "\\trpaddb"
++#define sRTF_TRPADDL "\\trpaddl"
++#define sRTF_TRPADDR "\\trpaddr"
++#define sRTF_TRPADDT "\\trpaddt"
++#define sRTF_TRPADDFB "\\trpaddfb"
++#define sRTF_TRPADDFL "\\trpaddfl"
++#define sRTF_TRPADDFR "\\trpaddfr"
++#define sRTF_TRPADDFT "\\trpaddft"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WRAPTRSP, "\\wraptrsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_XEF, "\\xef" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ZWJ, "\\zwj" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ZWNJ, "\\zwnj" );
++#define sRTF_WRAPTRSP "\\wraptrsp"
++#define sRTF_XEF "\\xef"
++#define sRTF_ZWJ "\\zwj"
++#define sRTF_ZWNJ "\\zwnj"
+ 
+ // neue Tokens zur 1.5
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSLOCK, "\\abslock" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADJUSTRIGHT, "\\adjustright" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNCHOSUNG, "\\aftnnchosung" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNCNUM, "\\aftnncnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBAR, "\\aftnndbar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUM, "\\aftnndbnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUMD, "\\aftnndbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUMK, "\\aftnndbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUMT, "\\aftnndbnumt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGANADA, "\\aftnnganada" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUM, "\\aftnngbnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUMD, "\\aftnngbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUMK, "\\aftnngbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUML, "\\aftnngbnuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNZODIAC, "\\aftnnzodiac" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNZODIACD, "\\aftnnzodiacd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNZODIACL, "\\aftnnzodiacl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANIMTEXT, "\\animtext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANSICPG, "\\ansicpg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BACKGROUND, "\\background" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BDBFHDR, "\\bdbfhdr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLIPTAG, "\\bliptag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLIPUID, "\\blipuid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLIPUPI, "\\blipupi" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRART, "\\brdrart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHD, "\\brdrdashd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHDD, "\\brdrdashdd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHDOTSTR, "\\brdrdashdotstr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHSM, "\\brdrdashsm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDREMBOSS, "\\brdremboss" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRENGRAVE, "\\brdrengrave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRFRAME, "\\brdrframe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTHTNLG, "\\brdrthtnlg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTHTNMG, "\\brdrthtnmg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTHTNSG, "\\brdrthtnsg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHLG, "\\brdrtnthlg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHMG, "\\brdrtnthmg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHSG, "\\brdrtnthsg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHTNLG, "\\brdrtnthtnlg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHTNMG, "\\brdrtnthtnmg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHTNSG, "\\brdrtnthtnsg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTRIPLE, "\\brdrtriple" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRWAVY, "\\brdrwavy" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRWAVYDB, "\\brdrwavydb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CATEGORY, "\\category" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CGRID, "\\cgrid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHARSCALEX, "\\charscalex" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGBDIAG, "\\chbgbdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGCROSS, "\\chbgcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDCROSS, "\\chbgdcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKBDIAG, "\\chbgdkbdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKCROSS, "\\chbgdkcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKDCROSS, "\\chbgdkdcross" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKFDIAG, "\\chbgdkfdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKHORIZ, "\\chbgdkhoriz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKVERT, "\\chbgdkvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGFDIAG, "\\chbgfdiag" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGHORIZ, "\\chbghoriz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGVERT, "\\chbgvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBRDR, "\\chbrdr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHCBPAT, "\\chcbpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHCFPAT, "\\chcfpat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHSHDNG, "\\chshdng" );
++#define sRTF_ABSLOCK "\\abslock"
++#define sRTF_ADJUSTRIGHT "\\adjustright"
++#define sRTF_AFTNNCHOSUNG "\\aftnnchosung"
++#define sRTF_AFTNNCNUM "\\aftnncnum"
++#define sRTF_AFTNNDBAR "\\aftnndbar"
++#define sRTF_AFTNNDBNUM "\\aftnndbnum"
++#define sRTF_AFTNNDBNUMD "\\aftnndbnumd"
++#define sRTF_AFTNNDBNUMK "\\aftnndbnumk"
++#define sRTF_AFTNNDBNUMT "\\aftnndbnumt"
++#define sRTF_AFTNNGANADA "\\aftnnganada"
++#define sRTF_AFTNNGBNUM "\\aftnngbnum"
++#define sRTF_AFTNNGBNUMD "\\aftnngbnumd"
++#define sRTF_AFTNNGBNUMK "\\aftnngbnumk"
++#define sRTF_AFTNNGBNUML "\\aftnngbnuml"
++#define sRTF_AFTNNZODIAC "\\aftnnzodiac"
++#define sRTF_AFTNNZODIACD "\\aftnnzodiacd"
++#define sRTF_AFTNNZODIACL "\\aftnnzodiacl"
++#define sRTF_ANIMTEXT "\\animtext"
++#define sRTF_ANSICPG "\\ansicpg"
++#define sRTF_BACKGROUND "\\background"
++#define sRTF_BDBFHDR "\\bdbfhdr"
++#define sRTF_BLIPTAG "\\bliptag"
++#define sRTF_BLIPUID "\\blipuid"
++#define sRTF_BLIPUPI "\\blipupi"
++#define sRTF_BRDRART "\\brdrart"
++#define sRTF_BRDRDASHD "\\brdrdashd"
++#define sRTF_BRDRDASHDD "\\brdrdashdd"
++#define sRTF_BRDRDASHDOTSTR "\\brdrdashdotstr"
++#define sRTF_BRDRDASHSM "\\brdrdashsm"
++#define sRTF_BRDREMBOSS "\\brdremboss"
++#define sRTF_BRDRENGRAVE "\\brdrengrave"
++#define sRTF_BRDRFRAME "\\brdrframe"
++#define sRTF_BRDRTHTNLG "\\brdrthtnlg"
++#define sRTF_BRDRTHTNMG "\\brdrthtnmg"
++#define sRTF_BRDRTHTNSG "\\brdrthtnsg"
++#define sRTF_BRDRTNTHLG "\\brdrtnthlg"
++#define sRTF_BRDRTNTHMG "\\brdrtnthmg"
++#define sRTF_BRDRTNTHSG "\\brdrtnthsg"
++#define sRTF_BRDRTNTHTNLG "\\brdrtnthtnlg"
++#define sRTF_BRDRTNTHTNMG "\\brdrtnthtnmg"
++#define sRTF_BRDRTNTHTNSG "\\brdrtnthtnsg"
++#define sRTF_BRDRTRIPLE "\\brdrtriple"
++#define sRTF_BRDRWAVY "\\brdrwavy"
++#define sRTF_BRDRWAVYDB "\\brdrwavydb"
++#define sRTF_CATEGORY "\\category"
++#define sRTF_CGRID "\\cgrid"
++#define sRTF_CHARSCALEX "\\charscalex"
++#define sRTF_CHBGBDIAG "\\chbgbdiag"
++#define sRTF_CHBGCROSS "\\chbgcross"
++#define sRTF_CHBGDCROSS "\\chbgdcross"
++#define sRTF_CHBGDKBDIAG "\\chbgdkbdiag"
++#define sRTF_CHBGDKCROSS "\\chbgdkcross"
++#define sRTF_CHBGDKDCROSS "\\chbgdkdcross"
++#define sRTF_CHBGDKFDIAG "\\chbgdkfdiag"
++#define sRTF_CHBGDKHORIZ "\\chbgdkhoriz"
++#define sRTF_CHBGDKVERT "\\chbgdkvert"
++#define sRTF_CHBGFDIAG "\\chbgfdiag"
++#define sRTF_CHBGHORIZ "\\chbghoriz"
++#define sRTF_CHBGVERT "\\chbgvert"
++#define sRTF_CHBRDR "\\chbrdr"
++#define sRTF_CHCBPAT "\\chcbpat"
++#define sRTF_CHCFPAT "\\chcfpat"
++#define sRTF_CHSHDNG "\\chshdng"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADL, "\\clpadl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADT, "\\clpadt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADB, "\\clpadb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADR, "\\clpadr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFL, "\\clpadfl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFT, "\\clpadft" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFB, "\\clpadfb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFR, "\\clpadfr" );
++#define sRTF_CLPADL "\\clpadl"
++#define sRTF_CLPADT "\\clpadt"
++#define sRTF_CLPADB "\\clpadb"
++#define sRTF_CLPADR "\\clpadr"
++#define sRTF_CLPADFL "\\clpadfl"
++#define sRTF_CLPADFT "\\clpadft"
++#define sRTF_CLPADFB "\\clpadfb"
++#define sRTF_CLPADFR "\\clpadfr"
+ 
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXLRTB, "\\cltxlrtb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXTBRL, "\\cltxtbrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVERTALB, "\\clvertalb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVERTALC, "\\clvertalc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVERTALT, "\\clvertalt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVMGF, "\\clvmgf" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVMRG, "\\clvmrg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXTBRLV, "\\cltxtbrlv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXBTLR, "\\cltxbtlr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXLRTBV, "\\cltxlrtbv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COMPANY, "\\company" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CRAUTH, "\\crauth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CRDATE, "\\crdate" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DATE, "\\date" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFLANGFE, "\\deflangfe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRAUTH, "\\dfrauth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRDATE, "\\dfrdate" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRSTART, "\\dfrstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRSTOP, "\\dfrstop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRXST, "\\dfrxst" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DGMARGIN, "\\dgmargin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DNTBLNSBDB, "\\dntblnsbdb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCTYPE, "\\doctype" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCVAR, "\\docvar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODESCENT, "\\dpcodescent" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMBO, "\\embo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMFBLIP, "\\emfblip" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EXPSHRTN, "\\expshrtn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAAUTO, "\\faauto" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FBIAS, "\\fbias" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFDEFRES, "\\ffdefres" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFDEFTEXT, "\\ffdeftext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFENTRYMCR, "\\ffentrymcr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFEXITMCR, "\\ffexitmcr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFFORMAT, "\\ffformat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFHASLISTBOX, "\\ffhaslistbox" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFHELPTEXT, "\\ffhelptext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFHPS, "\\ffhps" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFL, "\\ffl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFMAXLEN, "\\ffmaxlen" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFNAME, "\\ffname" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFOWNHELP, "\\ffownhelp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFOWNSTAT, "\\ffownstat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFPROT, "\\ffprot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFRECALC, "\\ffrecalc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFRES, "\\ffres" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFSIZE, "\\ffsize" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFSTATTEXT, "\\ffstattext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFTYPE, "\\fftype" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFTYPETXT, "\\fftypetxt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDTYPE, "\\fldtype" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FNAME, "\\fname" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMFIELD, "\\formfield" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FROMTEXT, "\\fromtext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNCHOSUNG, "\\ftnnchosung" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNCNUM, "\\ftnncnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBAR, "\\ftnndbar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUM, "\\ftnndbnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUMD, "\\ftnndbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUMK, "\\ftnndbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUMT, "\\ftnndbnumt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGANADA, "\\ftnnganada" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUM, "\\ftnngbnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUMD, "\\ftnngbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUMK, "\\ftnngbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUML, "\\ftnngbnuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNZODIAC, "\\ftnnzodiac" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNZODIACD, "\\ftnnzodiacd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNZODIACL, "\\ftnnzodiacl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_G, "\\g" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GCW, "\\gcw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRIDTBL, "\\gridtbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HIGHLIGHT, "\\highlight" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLFR, "\\hlfr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLINKBASE, "\\hlinkbase" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLLOC, "\\hlloc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLSRC, "\\hlsrc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ILVL, "\\ilvl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_IMPR, "\\impr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_JPEGBLIP, "\\jpegblip" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELFOLLOW, "\\levelfollow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELINDENT, "\\levelindent" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELJC, "\\leveljc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELLEGAL, "\\levellegal" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELNFC, "\\levelnfc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELNORESTART, "\\levelnorestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELNUMBERS, "\\levelnumbers" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELOLD, "\\levelold" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELPREV, "\\levelprev" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELPREVSPACE, "\\levelprevspace" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELSPACE, "\\levelspace" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELSTARTAT, "\\levelstartat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELTEXT, "\\leveltext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINKVAL, "\\linkval" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LIST, "\\list" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTID, "\\listid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTLEVEL, "\\listlevel" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTNAME, "\\listname" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDE, "\\listoverride" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDECOUNT, "\\listoverridecount" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDEFORMAT, "\\listoverrideformat" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDESTART, "\\listoverridestart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDETABLE, "\\listoverridetable" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTRESTARTHDN, "\\listrestarthdn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTSIMPLE, "\\listsimple" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTTABLE, "\\listtable" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTTEMPLATEID, "\\listtemplateid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTTEXT, "\\listtext" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LS, "\\ls" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LYTEXCTTP, "\\lytexcttp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LYTPRTMET, "\\lytprtmet" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MANAGER, "\\manager" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MSMCAP, "\\msmcap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFCHARSWS, "\\nofcharsws" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOLEAD, "\\nolead" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NONSHPPICT, "\\nonshppict" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSECTEXPAND, "\\nosectexpand" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSNAPLINEGRID, "\\nosnaplinegrid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSPACEFORUL, "\\nospaceforul" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOULTRLSPC, "\\noultrlspc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOXLATTOYEN, "\\noxlattoyen" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJATTPH, "\\objattph" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJHTML, "\\objhtml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJOCX, "\\objocx" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLDLINEWRAP, "\\oldlinewrap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OUTLINELEVEL, "\\outlinelevel" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OVERLAY, "\\overlay" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PANOSE, "\\panose" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRB, "\\pgbrdrb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRFOOT, "\\pgbrdrfoot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRHEAD, "\\pgbrdrhead" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRL, "\\pgbrdrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDROPT, "\\pgbrdropt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRR, "\\pgbrdrr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRSNAP, "\\pgbrdrsnap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRT, "\\pgbrdrt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNCHOSUNG, "\\pgnchosung" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNCNUM, "\\pgncnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNDBNUMK, "\\pgndbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNDBNUMT, "\\pgndbnumt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGANADA, "\\pgnganada" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUM, "\\pgngbnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUMD, "\\pgngbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUMK, "\\pgngbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUML, "\\pgngbnuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNZODIAC, "\\pgnzodiac" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNZODIACD, "\\pgnzodiacd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNZODIACL, "\\pgnzodiacl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICPROP, "\\picprop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNAIUEO, "\\pnaiueo" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNAIUEOD, "\\pnaiueod" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCHOSUNG, "\\pnchosung" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUMD, "\\pndbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUMK, "\\pndbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUML, "\\pndbnuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUMT, "\\pndbnumt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGANADA, "\\pnganada" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBLIP, "\\pngblip" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUM, "\\pngbnum" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUMD, "\\pngbnumd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUMK, "\\pngbnumk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUML, "\\pngbnuml" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRAUTH, "\\pnrauth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRDATE, "\\pnrdate" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRNFC, "\\pnrnfc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRNOT, "\\pnrnot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRPNBR, "\\pnrpnbr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRRGB, "\\pnrrgb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRSTART, "\\pnrstart" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRSTOP, "\\pnrstop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRXST, "\\pnrxst" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNZODIAC, "\\pnzodiac" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNZODIACD, "\\pnzodiacd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNZODIACL, "\\pnzodiacl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LFOLEVEL, "\\lfolevel" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYIN, "\\posyin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYOUT, "\\posyout" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRIVATE, "\\private" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PROPNAME, "\\propname" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PROPTYPE, "\\proptype" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVAUTHDEL, "\\revauthdel" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVDTTMDEL, "\\revdttmdel" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SAUTOUPD, "\\sautoupd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTDEFAULTCL, "\\sectdefaultcl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTEXPAND, "\\sectexpand" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTLINEGRID, "\\sectlinegrid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTSPECIFYCL, "\\sectspecifycl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTSPECIFYL, "\\sectspecifyl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHIDDEN, "\\shidden" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBOTTOM, "\\shpbottom" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBXCOLUMN, "\\shpbxcolumn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBXMARGIN, "\\shpbxmargin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBXPAGE, "\\shpbxpage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBYMARGIN, "\\shpbymargin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBYPAGE, "\\shpbypage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBYPARA, "\\shpbypara" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPFBLWTXT, "\\shpfblwtxt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPFHDR, "\\shpfhdr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPGRP, "\\shpgrp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLEFT, "\\shpleft" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLID, "\\shplid" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLOCKANCHOR, "\\shplockanchor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPPICT, "\\shppict" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPRIGHT, "\\shpright" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPRSLT, "\\shprslt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPTOP, "\\shptop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPTXT, "\\shptxt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPWRK, "\\shpwrk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPWR, "\\shpwr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPZ, "\\shpz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSBSP, "\\sprsbsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSLNSP, "\\sprslnsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSTSM, "\\sprstsm" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STATICVAL, "\\staticval" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STEXTFLOW, "\\stextflow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STRIKED, "\\striked" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBFONTBYSIZE, "\\subfontbysize" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCELLD, "\\tcelld" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TIME, "\\time" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRUNCATEFONTHEIGHT, "\\truncatefontheight" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UC, "\\uc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UD, "\\ud" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDASH, "\\uldash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDASHD, "\\uldashd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDASHDD, "\\uldashdd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTH, "\\ulth" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULWAVE, "\\ulwave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULC, "\\ulc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_U, "\\u" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UPR, "\\upr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_USERPROPS, "\\userprops" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VIEWKIND, "\\viewkind" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VIEWSCALE, "\\viewscale" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VIEWZK, "\\viewzk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WIDCTLPAR, "\\widctlpar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WINDOWCAPTION, "\\windowcaption" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WPEQN, "\\wpeqn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WPJST, "\\wpjst" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WPSP, "\\wpsp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_YXE, "\\yxe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXLRTB, "\\frmtxlrtb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXTBRL, "\\frmtxtbrl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXBTLR, "\\frmtxbtlr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXLRTBV, "\\frmtxlrtbv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXTBRLV, "\\frmtxtbrlv" );
++#define sRTF_CLTXLRTB "\\cltxlrtb"
++#define sRTF_CLTXTBRL "\\cltxtbrl"
++#define sRTF_CLVERTALB "\\clvertalb"
++#define sRTF_CLVERTALC "\\clvertalc"
++#define sRTF_CLVERTALT "\\clvertalt"
++#define sRTF_CLVMGF "\\clvmgf"
++#define sRTF_CLVMRG "\\clvmrg"
++#define sRTF_CLTXTBRLV "\\cltxtbrlv"
++#define sRTF_CLTXBTLR "\\cltxbtlr"
++#define sRTF_CLTXLRTBV "\\cltxlrtbv"
++#define sRTF_COMPANY "\\company"
++#define sRTF_CRAUTH "\\crauth"
++#define sRTF_CRDATE "\\crdate"
++#define sRTF_DATE "\\date"
++#define sRTF_DEFLANGFE "\\deflangfe"
++#define sRTF_DFRAUTH "\\dfrauth"
++#define sRTF_DFRDATE "\\dfrdate"
++#define sRTF_DFRSTART "\\dfrstart"
++#define sRTF_DFRSTOP "\\dfrstop"
++#define sRTF_DFRXST "\\dfrxst"
++#define sRTF_DGMARGIN "\\dgmargin"
++#define sRTF_DNTBLNSBDB "\\dntblnsbdb"
++#define sRTF_DOCTYPE "\\doctype"
++#define sRTF_DOCVAR "\\docvar"
++#define sRTF_DPCODESCENT "\\dpcodescent"
++#define sRTF_EMBO "\\embo"
++#define sRTF_EMFBLIP "\\emfblip"
++#define sRTF_EXPSHRTN "\\expshrtn"
++#define sRTF_FAAUTO "\\faauto"
++#define sRTF_FBIAS "\\fbias"
++#define sRTF_FFDEFRES "\\ffdefres"
++#define sRTF_FFDEFTEXT "\\ffdeftext"
++#define sRTF_FFENTRYMCR "\\ffentrymcr"
++#define sRTF_FFEXITMCR "\\ffexitmcr"
++#define sRTF_FFFORMAT "\\ffformat"
++#define sRTF_FFHASLISTBOX "\\ffhaslistbox"
++#define sRTF_FFHELPTEXT "\\ffhelptext"
++#define sRTF_FFHPS "\\ffhps"
++#define sRTF_FFL "\\ffl"
++#define sRTF_FFMAXLEN "\\ffmaxlen"
++#define sRTF_FFNAME "\\ffname"
++#define sRTF_FFOWNHELP "\\ffownhelp"
++#define sRTF_FFOWNSTAT "\\ffownstat"
++#define sRTF_FFPROT "\\ffprot"
++#define sRTF_FFRECALC "\\ffrecalc"
++#define sRTF_FFRES "\\ffres"
++#define sRTF_FFSIZE "\\ffsize"
++#define sRTF_FFSTATTEXT "\\ffstattext"
++#define sRTF_FFTYPE "\\fftype"
++#define sRTF_FFTYPETXT "\\fftypetxt"
++#define sRTF_FLDTYPE "\\fldtype"
++#define sRTF_FNAME "\\fname"
++#define sRTF_FORMFIELD "\\formfield"
++#define sRTF_FROMTEXT "\\fromtext"
++#define sRTF_FTNNCHOSUNG "\\ftnnchosung"
++#define sRTF_FTNNCNUM "\\ftnncnum"
++#define sRTF_FTNNDBAR "\\ftnndbar"
++#define sRTF_FTNNDBNUM "\\ftnndbnum"
++#define sRTF_FTNNDBNUMD "\\ftnndbnumd"
++#define sRTF_FTNNDBNUMK "\\ftnndbnumk"
++#define sRTF_FTNNDBNUMT "\\ftnndbnumt"
++#define sRTF_FTNNGANADA "\\ftnnganada"
++#define sRTF_FTNNGBNUM "\\ftnngbnum"
++#define sRTF_FTNNGBNUMD "\\ftnngbnumd"
++#define sRTF_FTNNGBNUMK "\\ftnngbnumk"
++#define sRTF_FTNNGBNUML "\\ftnngbnuml"
++#define sRTF_FTNNZODIAC "\\ftnnzodiac"
++#define sRTF_FTNNZODIACD "\\ftnnzodiacd"
++#define sRTF_FTNNZODIACL "\\ftnnzodiacl"
++#define sRTF_G "\\g"
++#define sRTF_GCW "\\gcw"
++#define sRTF_GRIDTBL "\\gridtbl"
++#define sRTF_HIGHLIGHT "\\highlight"
++#define sRTF_HLFR "\\hlfr"
++#define sRTF_HLINKBASE "\\hlinkbase"
++#define sRTF_HLLOC "\\hlloc"
++#define sRTF_HLSRC "\\hlsrc"
++#define sRTF_ILVL "\\ilvl"
++#define sRTF_IMPR "\\impr"
++#define sRTF_JPEGBLIP "\\jpegblip"
++#define sRTF_LEVELFOLLOW "\\levelfollow"
++#define sRTF_LEVELINDENT "\\levelindent"
++#define sRTF_LEVELJC "\\leveljc"
++#define sRTF_LEVELLEGAL "\\levellegal"
++#define sRTF_LEVELNFC "\\levelnfc"
++#define sRTF_LEVELNORESTART "\\levelnorestart"
++#define sRTF_LEVELNUMBERS "\\levelnumbers"
++#define sRTF_LEVELOLD "\\levelold"
++#define sRTF_LEVELPREV "\\levelprev"
++#define sRTF_LEVELPREVSPACE "\\levelprevspace"
++#define sRTF_LEVELSPACE "\\levelspace"
++#define sRTF_LEVELSTARTAT "\\levelstartat"
++#define sRTF_LEVELTEXT "\\leveltext"
++#define sRTF_LINKVAL "\\linkval"
++#define sRTF_LIST "\\list"
++#define sRTF_LISTID "\\listid"
++#define sRTF_LISTLEVEL "\\listlevel"
++#define sRTF_LISTNAME "\\listname"
++#define sRTF_LISTOVERRIDE "\\listoverride"
++#define sRTF_LISTOVERRIDECOUNT "\\listoverridecount"
++#define sRTF_LISTOVERRIDEFORMAT "\\listoverrideformat"
++#define sRTF_LISTOVERRIDESTART "\\listoverridestart"
++#define sRTF_LISTOVERRIDETABLE "\\listoverridetable"
++#define sRTF_LISTRESTARTHDN "\\listrestarthdn"
++#define sRTF_LISTSIMPLE "\\listsimple"
++#define sRTF_LISTTABLE "\\listtable"
++#define sRTF_LISTTEMPLATEID "\\listtemplateid"
++#define sRTF_LISTTEXT "\\listtext"
++#define sRTF_LS "\\ls"
++#define sRTF_LYTEXCTTP "\\lytexcttp"
++#define sRTF_LYTPRTMET "\\lytprtmet"
++#define sRTF_MANAGER "\\manager"
++#define sRTF_MSMCAP "\\msmcap"
++#define sRTF_NOFCHARSWS "\\nofcharsws"
++#define sRTF_NOLEAD "\\nolead"
++#define sRTF_NONSHPPICT "\\nonshppict"
++#define sRTF_NOSECTEXPAND "\\nosectexpand"
++#define sRTF_NOSNAPLINEGRID "\\nosnaplinegrid"
++#define sRTF_NOSPACEFORUL "\\nospaceforul"
++#define sRTF_NOULTRLSPC "\\noultrlspc"
++#define sRTF_NOXLATTOYEN "\\noxlattoyen"
++#define sRTF_OBJATTPH "\\objattph"
++#define sRTF_OBJHTML "\\objhtml"
++#define sRTF_OBJOCX "\\objocx"
++#define sRTF_OLDLINEWRAP "\\oldlinewrap"
++#define sRTF_OUTLINELEVEL "\\outlinelevel"
++#define sRTF_OVERLAY "\\overlay"
++#define sRTF_PANOSE "\\panose"
++#define sRTF_PGBRDRB "\\pgbrdrb"
++#define sRTF_PGBRDRFOOT "\\pgbrdrfoot"
++#define sRTF_PGBRDRHEAD "\\pgbrdrhead"
++#define sRTF_PGBRDRL "\\pgbrdrl"
++#define sRTF_PGBRDROPT "\\pgbrdropt"
++#define sRTF_PGBRDRR "\\pgbrdrr"
++#define sRTF_PGBRDRSNAP "\\pgbrdrsnap"
++#define sRTF_PGBRDRT "\\pgbrdrt"
++#define sRTF_PGNCHOSUNG "\\pgnchosung"
++#define sRTF_PGNCNUM "\\pgncnum"
++#define sRTF_PGNDBNUMK "\\pgndbnumk"
++#define sRTF_PGNDBNUMT "\\pgndbnumt"
++#define sRTF_PGNGANADA "\\pgnganada"
++#define sRTF_PGNGBNUM "\\pgngbnum"
++#define sRTF_PGNGBNUMD "\\pgngbnumd"
++#define sRTF_PGNGBNUMK "\\pgngbnumk"
++#define sRTF_PGNGBNUML "\\pgngbnuml"
++#define sRTF_PGNZODIAC "\\pgnzodiac"
++#define sRTF_PGNZODIACD "\\pgnzodiacd"
++#define sRTF_PGNZODIACL "\\pgnzodiacl"
++#define sRTF_PICPROP "\\picprop"
++#define sRTF_PNAIUEO "\\pnaiueo"
++#define sRTF_PNAIUEOD "\\pnaiueod"
++#define sRTF_PNCHOSUNG "\\pnchosung"
++#define sRTF_PNDBNUMD "\\pndbnumd"
++#define sRTF_PNDBNUMK "\\pndbnumk"
++#define sRTF_PNDBNUML "\\pndbnuml"
++#define sRTF_PNDBNUMT "\\pndbnumt"
++#define sRTF_PNGANADA "\\pnganada"
++#define sRTF_PNGBLIP "\\pngblip"
++#define sRTF_PNGBNUM "\\pngbnum"
++#define sRTF_PNGBNUMD "\\pngbnumd"
++#define sRTF_PNGBNUMK "\\pngbnumk"
++#define sRTF_PNGBNUML "\\pngbnuml"
++#define sRTF_PNRAUTH "\\pnrauth"
++#define sRTF_PNRDATE "\\pnrdate"
++#define sRTF_PNRNFC "\\pnrnfc"
++#define sRTF_PNRNOT "\\pnrnot"
++#define sRTF_PNRPNBR "\\pnrpnbr"
++#define sRTF_PNRRGB "\\pnrrgb"
++#define sRTF_PNRSTART "\\pnrstart"
++#define sRTF_PNRSTOP "\\pnrstop"
++#define sRTF_PNRXST "\\pnrxst"
++#define sRTF_PNZODIAC "\\pnzodiac"
++#define sRTF_PNZODIACD "\\pnzodiacd"
++#define sRTF_PNZODIACL "\\pnzodiacl"
++#define sRTF_LFOLEVEL "\\lfolevel"
++#define sRTF_POSYIN "\\posyin"
++#define sRTF_POSYOUT "\\posyout"
++#define sRTF_PRIVATE "\\private"
++#define sRTF_PROPNAME "\\propname"
++#define sRTF_PROPTYPE "\\proptype"
++#define sRTF_REVAUTHDEL "\\revauthdel"
++#define sRTF_REVDTTMDEL "\\revdttmdel"
++#define sRTF_SAUTOUPD "\\sautoupd"
++#define sRTF_SECTDEFAULTCL "\\sectdefaultcl"
++#define sRTF_SECTEXPAND "\\sectexpand"
++#define sRTF_SECTLINEGRID "\\sectlinegrid"
++#define sRTF_SECTSPECIFYCL "\\sectspecifycl"
++#define sRTF_SECTSPECIFYL "\\sectspecifyl"
++#define sRTF_SHIDDEN "\\shidden"
++#define sRTF_SHPBOTTOM "\\shpbottom"
++#define sRTF_SHPBXCOLUMN "\\shpbxcolumn"
++#define sRTF_SHPBXMARGIN "\\shpbxmargin"
++#define sRTF_SHPBXPAGE "\\shpbxpage"
++#define sRTF_SHPBYMARGIN "\\shpbymargin"
++#define sRTF_SHPBYPAGE "\\shpbypage"
++#define sRTF_SHPBYPARA "\\shpbypara"
++#define sRTF_SHPFBLWTXT "\\shpfblwtxt"
++#define sRTF_SHPFHDR "\\shpfhdr"
++#define sRTF_SHPGRP "\\shpgrp"
++#define sRTF_SHPLEFT "\\shpleft"
++#define sRTF_SHPLID "\\shplid"
++#define sRTF_SHPLOCKANCHOR "\\shplockanchor"
++#define sRTF_SHPPICT "\\shppict"
++#define sRTF_SHPRIGHT "\\shpright"
++#define sRTF_SHPRSLT "\\shprslt"
++#define sRTF_SHPTOP "\\shptop"
++#define sRTF_SHPTXT "\\shptxt"
++#define sRTF_SHPWRK "\\shpwrk"
++#define sRTF_SHPWR "\\shpwr"
++#define sRTF_SHPZ "\\shpz"
++#define sRTF_SPRSBSP "\\sprsbsp"
++#define sRTF_SPRSLNSP "\\sprslnsp"
++#define sRTF_SPRSTSM "\\sprstsm"
++#define sRTF_STATICVAL "\\staticval"
++#define sRTF_STEXTFLOW "\\stextflow"
++#define sRTF_STRIKED "\\striked"
++#define sRTF_SUBFONTBYSIZE "\\subfontbysize"
++#define sRTF_TCELLD "\\tcelld"
++#define sRTF_TIME "\\time"
++#define sRTF_TRUNCATEFONTHEIGHT "\\truncatefontheight"
++#define sRTF_UC "\\uc"
++#define sRTF_UD "\\ud"
++#define sRTF_ULDASH "\\uldash"
++#define sRTF_ULDASHD "\\uldashd"
++#define sRTF_ULDASHDD "\\uldashdd"
++#define sRTF_ULTH "\\ulth"
++#define sRTF_ULWAVE "\\ulwave"
++#define sRTF_ULC "\\ulc"
++#define sRTF_U "\\u"
++#define sRTF_UPR "\\upr"
++#define sRTF_USERPROPS "\\userprops"
++#define sRTF_VIEWKIND "\\viewkind"
++#define sRTF_VIEWSCALE "\\viewscale"
++#define sRTF_VIEWZK "\\viewzk"
++#define sRTF_WIDCTLPAR "\\widctlpar"
++#define sRTF_WINDOWCAPTION "\\windowcaption"
++#define sRTF_WPEQN "\\wpeqn"
++#define sRTF_WPJST "\\wpjst"
++#define sRTF_WPSP "\\wpsp"
++#define sRTF_YXE "\\yxe"
++#define sRTF_FRMTXLRTB "\\frmtxlrtb"
++#define sRTF_FRMTXTBRL "\\frmtxtbrl"
++#define sRTF_FRMTXBTLR "\\frmtxbtlr"
++#define sRTF_FRMTXLRTBV "\\frmtxlrtbv"
++#define sRTF_FRMTXTBRLV "\\frmtxtbrlv"
+ 
+ 
+ // MS-2000 Tokens
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHD, "\\ulthd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHDASH, "\\ulthdash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULLDASH, "\\ulldash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHLDASH, "\\ulthldash" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHDASHD, "\\ulthdashd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHDASHDD, "\\ulthdashdd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULHWAVE, "\\ulhwave" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULULDBWAVE, "\\ululdbwave" );
++#define sRTF_ULTHD "\\ulthd"
++#define sRTF_ULTHDASH "\\ulthdash"
++#define sRTF_ULLDASH "\\ulldash"
++#define sRTF_ULTHLDASH "\\ulthldash"
++#define sRTF_ULTHDASHD "\\ulthdashd"
++#define sRTF_ULTHDASHDD "\\ulthdashdd"
++#define sRTF_ULHWAVE "\\ulhwave"
++#define sRTF_ULULDBWAVE "\\ululdbwave"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LOCH,    	"\\loch" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HICH,    	"\\hich" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DBCH,    	"\\dbch" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LANGFE,    "\\langfe" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADEFLANG,	"\\adeflang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADEFF,		"\\adeff" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACCNONE,	"\\accnone" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACCDOT,	"\\accdot" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACCCOMMA,	"\\acccomma" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TWOINONE,	"\\twoinone" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HORZVERT,	"\\horzvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAHANG, 	"\\fahang" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAVAR, 	"\\favar" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FACENTER, 	"\\facenter" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAROMAN, 	"\\faroman" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAFIXED, 	"\\fafixed" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOCWRAP, 	"\\nocwrap" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOOVERFLOW,"\\nooverflow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASPALPHA, 	"\\aspalpha" );
++#define sRTF_LOCH "\\loch"
++#define sRTF_HICH "\\hich"
++#define sRTF_DBCH "\\dbch"
++#define sRTF_LANGFE "\\langfe"
++#define sRTF_ADEFLANG "\\adeflang"
++#define sRTF_ADEFF "\\adeff"
++#define sRTF_ACCNONE "\\accnone"
++#define sRTF_ACCDOT "\\accdot"
++#define sRTF_ACCCOMMA "\\acccomma"
++#define sRTF_TWOINONE "\\twoinone"
++#define sRTF_HORZVERT "\\horzvert"
++#define sRTF_FAHANG "\\fahang"
++#define sRTF_FAVAR "\\favar"
++#define sRTF_FACENTER "\\facenter"
++#define sRTF_FAROMAN "\\faroman"
++#define sRTF_FAFIXED "\\fafixed"
++#define sRTF_NOCWRAP "\\nocwrap"
++#define sRTF_NOOVERFLOW "\\nooverflow"
++#define sRTF_ASPALPHA "\\aspalpha"
+ 
+ // SWG spezifische Attribute
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRFALIGNV, "\\grfalignv" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRFALIGNH, "\\grfalignh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRFMIRROR, "\\grfmirror" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERYB, "\\headeryb" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERXL, "\\headerxl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERXR, "\\headerxr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERYT, "\\footeryt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERXL, "\\footerxl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERXR, "\\footerxr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERYH, "\\headeryh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERYH, "\\footeryh" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BALANCEDCOLUMN, "\\swcolmnblnc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UPDNPROP, "\\updnprop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRTDATA, "\\prtdata" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKKEY, "\\bkmkkey" );
++#define sRTF_GRFALIGNV "\\grfalignv"
++#define sRTF_GRFALIGNH "\\grfalignh"
++#define sRTF_GRFMIRROR "\\grfmirror"
++#define sRTF_HEADERYB "\\headeryb"
++#define sRTF_HEADERXL "\\headerxl"
++#define sRTF_HEADERXR "\\headerxr"
++#define sRTF_FOOTERYT "\\footeryt"
++#define sRTF_FOOTERXL "\\footerxl"
++#define sRTF_FOOTERXR "\\footerxr"
++#define sRTF_HEADERYH "\\headeryh"
++#define sRTF_FOOTERYH "\\footeryh"
++#define sRTF_BALANCEDCOLUMN "\\swcolmnblnc"
++#define sRTF_UPDNPROP "\\updnprop"
++#define sRTF_PRTDATA "\\prtdata"
++#define sRTF_BKMKKEY "\\bkmkkey"
+ 
+ // Attribute fuer die freifliegenden Rahmen
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYPRINT, "\\flyprint" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYOPAQUE, "\\flyopaque" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYPRTCTD, "\\flyprtctd" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYMAINCNT, "\\flymaincnt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYVERT, "\\flyvert" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYHORZ, "\\flyhorz" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTL, "\\dfrmtxtl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTR, "\\dfrmtxtr" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTU, "\\dfrmtxtu" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTW, "\\dfrmtxtw" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYANCHOR, "\\flyanchor" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYCNTNT, "\\flycntnt" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYCOLUMN, "\\flycolumn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYPAGE, "\\flypage" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYINPARA, "\\flyinpara" );
++#define sRTF_FLYPRINT "\\flyprint"
++#define sRTF_FLYOPAQUE "\\flyopaque"
++#define sRTF_FLYPRTCTD "\\flyprtctd"
++#define sRTF_FLYMAINCNT "\\flymaincnt"
++#define sRTF_FLYVERT "\\flyvert"
++#define sRTF_FLYHORZ "\\flyhorz"
++#define sRTF_DFRMTXTL "\\dfrmtxtl"
++#define sRTF_DFRMTXTR "\\dfrmtxtr"
++#define sRTF_DFRMTXTU "\\dfrmtxtu"
++#define sRTF_DFRMTXTW "\\dfrmtxtw"
++#define sRTF_FLYANCHOR "\\flyanchor"
++#define sRTF_FLYCNTNT "\\flycntnt"
++#define sRTF_FLYCOLUMN "\\flycolumn"
++#define sRTF_FLYPAGE "\\flypage"
++#define sRTF_FLYINPARA "\\flyinpara"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDBOX, "\\brdbox" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNCOL, "\\brdlncol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNIN, "\\brdlnin" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNOUT, "\\brdlnout" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNDIST, "\\brdlndist" );
++#define sRTF_BRDBOX "\\brdbox"
++#define sRTF_BRDLNCOL "\\brdlncol"
++#define sRTF_BRDLNIN "\\brdlnin"
++#define sRTF_BRDLNOUT "\\brdlnout"
++#define sRTF_BRDLNDIST "\\brdlndist"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHADOW, "\\shadow" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWDIST, "\\shdwdist" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWSTYLE, "\\shdwstyle" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWCOL, "\\shdwcol" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWFCOL, "\\shdwfcol" );
++#define sRTF_SHADOW "\\shadow"
++#define sRTF_SHDWDIST "\\shdwdist"
++#define sRTF_SHDWSTYLE "\\shdwstyle"
++#define sRTF_SHDWCOL "\\shdwcol"
++#define sRTF_SHDWFCOL "\\shdwfcol"
+ 
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCTBL, "\\pgdsctbl" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSC, "\\pgdsc" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCUSE, "\\pgdscuse" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCNXT, "\\pgdscnxt" );
++#define sRTF_PGDSCTBL "\\pgdsctbl"
++#define sRTF_PGDSC "\\pgdsc"
++#define sRTF_PGDSCUSE "\\pgdscuse"
++#define sRTF_PGDSCNXT "\\pgdscnxt"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHEN, "\\hyphen" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHLEAD, "\\hyphlead" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHTRAIL, "\\hyphtrail" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHMAX, "\\hyphmax" );
++#define sRTF_HYPHEN "\\hyphen"
++#define sRTF_HYPHLEAD "\\hyphlead"
++#define sRTF_HYPHTRAIL "\\hyphtrail"
++#define sRTF_HYPHMAX "\\hyphmax"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLSWG, "\\tlswg" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRK, "\\pgbrk" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCNO, "\\pgdscno" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOUTLVL, "\\soutlvl" );
++#define sRTF_TLSWG "\\tlswg"
++#define sRTF_PGBRK "\\pgbrk"
++#define sRTF_PGDSCNO "\\pgdscno"
++#define sRTF_SOUTLVL "\\soutlvl"
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHP, "\\shp" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SN, "\\sn" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SV, "\\sv" );
++#define sRTF_SHP "\\shp"
++#define sRTF_SN "\\sn"
++#define sRTF_SV "\\sv"
+ /*
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLEFT, "\\shpleft" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPTOP, "\\shptop" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBOTTOM, "\\shpbottom" );
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPRIGHT, "\\shpright" );
++#define sRTF_SHPLEFT "\\shpleft"
++#define sRTF_SHPTOP "\\shptop"
++#define sRTF_SHPBOTTOM "\\shpbottom"
++#define sRTF_SHPRIGHT "\\shpright"
+ */
+ 
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-openoffice-java-common.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-openoffice-java-common.diff
@@ -0,0 +1,44 @@
+--- svtools/source/java/javainteractionhandler.cxx~	2008-04-21 21:43:59.249678235 +0200
++++ svtools/source/java/javainteractionhandler.cxx	2008-04-21 22:12:26.615433459 +0200
+@@ -75,9 +75,10 @@
+ #include <svtools/javainteractionhandler.hxx>
+ #include <svtools/javacontext.hxx>
+ 
++#define DEFINE_CONST_UNICODE(CONSTASCII) UniString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
++
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::task;
+-
+ namespace svt
+ {
+ 
+@@ -184,6 +185,9 @@
+                 aTitle = String( SvtResId( STR_WARNING_JAVANOTFOUND ));
+ 
+             aWarningBox.SetText( aTitle );
++	    String aText = String(aWarningBox.GetMessText());
++	    aText.Append(DEFINE_CONST_UNICODE("\nPlease install the openoffice.org-java-common package for this functionality."));
++            aWarningBox.SetMessText( aText );
+             nResult = aWarningBox.Execute();
+ 
+         }
+@@ -256,6 +260,9 @@
+                 aTitle = String( SvtResId( STR_QUESTION_JAVADISABLED ));
+ 
+             aQueryBox.SetText( aTitle );
++	    String aText = String(aQueryBox.GetMessText());
++	    aText.Append(DEFINE_CONST_UNICODE("\nPlease install the openoffice.org-java-common package for this functionality."));
++            aQueryBox.SetMessText( aText );
+             nResult = aQueryBox.Execute();
+             if ( nResult == RET_YES )
+             {
+@@ -297,6 +304,9 @@
+                 aTitle = String( SvtResId(STR_ERROR_JVMCREATIONFAILED));
+ 
+             aErrorBox.SetText( aTitle );
++	    String aText = String(aErrorBox.GetMessText());
++	    aText.Append(DEFINE_CONST_UNICODE("\nPlease install the openoffice.org-java-common package for this functionality."));
++            aErrorBox.SetMessText( aText );
+             nResult = aErrorBox.Execute();
+         }
+         else
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-xmlhelp.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-xmlhelp.diff
@@ -0,0 +1,37 @@
+--- xmlhelp/inc/db/BtreeDictParameters.hxx	2005-09-09 14:07:32.000000000 +0200
++++ xmlhelp/inc/db/BtreeDictParameters.hxx	2007-09-07 12:51:39.000000000 +0200
+@@ -36,7 +36,7 @@
+ #define _XMLSEARCH_DB_BTREEDICTPARAMETERS_HXX_
+ 
+ #ifndef _RTL_USTRING_
+-#include  <rtl/ustring>
++#include  <rtl/ustring.hxx>
+ #endif
+ #ifndef _XMLSEARCH_DB_DBPARTPARAMETERS_HXX_
+ #include <db/DBPartParameters.hxx>
+--- xmlhelp/inc/db/DBPartParameters.hxx	2005-09-09 14:08:13.000000000 +0200
++++ xmlhelp/inc/db/DBPartParameters.hxx	2007-09-07 12:52:09.000000000 +0200
+@@ -40,7 +40,7 @@
+ #define INCLUDED_STL_HASH_MAP
+ #endif
+ #ifndef _RTL_USTRING_
+-#include <rtl/ustring>
++#include <rtl/ustring.hxx>
+ #endif
+ #ifndef _XMLSEARCH_DB_SCHEMA_HXX_
+ #include <db/Schema.hxx>
+--- xmlhelp/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ xmlhelp/prj/tests.lst	2007-09-07 12:52:56.000000000 +0200
+@@ -0,0 +1 @@
++xh   xmlhelp\source\cxxhelp\test                        nmake - all xh_source_cxxhelp_test xh_util NULL
+--- xmlhelp/source/cxxhelp/test/searchdemo.cxx	2006-09-17 03:20:27.000000000 +0200
++++ xmlhelp/source/cxxhelp/test/searchdemo.cxx	2007-09-07 12:51:05.000000000 +0200
+@@ -35,7 +35,7 @@
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_xmlhelp.hxx"
+-#include <rtl/string.hxx>
++#include <rtl/ustring.hxx>
+ #include <osl/file.hxx>
+ #include <db/Block.hxx>
+ #include <db/Schema.hxx>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/no-fontooo-wizard.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/no-fontooo-wizard.diff
@@ -0,0 +1,29 @@
+Index: Common.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
+retrieving revision 1.31
+diff -u -u -r1.31 Common.xcu
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu	23 Mar 2005 10:53:46 -0000	1.31
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu	20 Jun 2005 17:38:08 -0000
+@@ -500,21 +500,6 @@
+           <value >private:image/3216</value>
+         </prop>
+       </node>
+-      <node oor:name="m16" oor:op="replace" install:module="dicooo">
+-        <prop oor:name="URL"  oor:type="xs:string">
+-          <value >macro:///Launcher.FontOOo.StartFontOOo</value>
+-        </prop>
+-        <prop oor:name="Title">
+-          <value>FontOOo Wizard...</value>
+-          <value xml:lang="en-US">Install fonts from the web...</value>
+-        </prop>
+-        <prop oor:name="TargetName"  oor:type="xs:string">
+-          <value >_self</value>
+-        </prop>
+-        <prop oor:name="ImageIdentifier"  oor:type="xs:string">
+-          <value >private:image/3216</value>
+-        </prop>
+-      </node>
+     </node>
+   </node>
+   <node oor:name="Forms">
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layoutdialogs-svx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layoutdialogs-svx.diff
@@ -0,0 +1,777 @@
+cvs diff: Diffing svx
+cvs diff: Diffing svx/doc
+cvs diff: Diffing svx/doc/UML
+cvs diff: Diffing svx/inc
+cvs diff: Diffing svx/inc/pch
+cvs diff: Diffing svx/inc/svx
+cvs diff: Diffing svx/inc/svx/sdr
+cvs diff: Diffing svx/inc/svx/sdr/animation
+cvs diff: Diffing svx/inc/svx/sdr/contact
+cvs diff: Diffing svx/inc/svx/sdr/event
+cvs diff: Diffing svx/inc/svx/sdr/mixer
+cvs diff: Diffing svx/inc/svx/sdr/overlay
+cvs diff: Diffing svx/inc/svx/sdr/properties
+cvs diff: Diffing svx/inc/svx/sdr/table
+cvs diff: Diffing svx/prj
+Index: svx/prj/build.lst
+===================================================================
+RCS file: /cvs/graphics/svx/prj/build.lst,v
+retrieving revision 1.28
+retrieving revision 1.28.18.1
+diff -p -u -u -p -b -w -B -r1.28 -r1.28.18.1
+--- svx/prj/build.lst	12 Mar 2008 09:34:44 -0000	1.28
++++ svx/prj/build.lst	28 Mar 2008 11:19:36 -0000	1.28.18.1
+@@ -1,6 +1,7 @@
+ sx	svx	:	SUN:officenames connectivity xmloff linguistic jvmfwk avmedia configmgr ucb fileaccess NULL
+ sx	svx										usr1	-	all	sx_mkout NULL
+ sx	svx\inc									nmake	-	all	sx_inc NULL
++sx	svx\uiconfig\layout									nmake	-	all	sx_layout NULL
+ sx	svx\prj									get		-	all	sx_prj NULL
+ sx	svx\win\res								get		-	all	sx_wres NULL
+ sx	svx\os2\res								get		-	all	sx_ores NULL
+Index: svx/prj/d.lst
+===================================================================
+RCS file: /cvs/graphics/svx/prj/d.lst,v
+retrieving revision 1.136
+retrieving revision 1.136.18.2
+diff -p -u -u -p -b -w -B -r1.136 -r1.136.18.2
+--- svx/prj/d.lst	12 Mar 2008 09:35:06 -0000	1.136
++++ svx/prj/d.lst	31 Mar 2008 14:52:10 -0000	1.136.18.2
+@@ -648,3 +648,4 @@ mkdir: %_DEST%\inc%_EXT%\svx\sdr\table
+ ..\uiconfig\accelerator\en-US\*.xml %_DEST%\xml%_EXT%\uiconfig\global\accelerator\en-US\*.xml
+ ..\uiconfig\accelerator\es\*.xml %_DEST%\xml%_EXT%\uiconfig\global\accelerator\es\*.xml
+ 
++..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+cvs diff: Diffing svx/qa
+cvs diff: Diffing svx/qa/unoapi
+cvs diff: Diffing svx/qa/unoapi/testdocuments
+cvs diff: Diffing svx/sdi
+cvs diff: Diffing svx/source
+cvs diff: Diffing svx/source/accessibility
+cvs diff: Diffing svx/source/customshapes
+cvs diff: Diffing svx/source/dialog
+cvs diff: Diffing svx/source/editeng
+cvs diff: Diffing svx/source/engine3d
+cvs diff: Diffing svx/source/fmcomp
+cvs diff: Diffing svx/source/form
+cvs diff: Diffing svx/source/gallery2
+cvs diff: Diffing svx/source/gengal
+cvs diff: Diffing svx/source/inc
+cvs diff: Diffing svx/source/init
+cvs diff: Diffing svx/source/intro
+cvs diff: Diffing svx/source/items
+cvs diff: Diffing svx/source/mnuctrls
+cvs diff: Diffing svx/source/msfilter
+cvs diff: Diffing svx/source/options
+cvs diff: Diffing svx/source/outliner
+cvs diff: Diffing svx/source/sdr
+cvs diff: Diffing svx/source/sdr/animation
+cvs diff: Diffing svx/source/sdr/contact
+cvs diff: Diffing svx/source/sdr/event
+cvs diff: Diffing svx/source/sdr/mixer
+cvs diff: Diffing svx/source/sdr/overlay
+cvs diff: Diffing svx/source/sdr/properties
+cvs diff: Diffing svx/source/smarttags
+cvs diff: Diffing svx/source/src
+cvs diff: Diffing svx/source/stbctrls
+cvs diff: Diffing svx/source/svdraw
+cvs diff: Diffing svx/source/svrtf
+cvs diff: Diffing svx/source/svxlink
+cvs diff: Diffing svx/source/table
+cvs diff: Diffing svx/source/tbxctrls
+cvs diff: Diffing svx/source/toolbars
+cvs diff: Diffing svx/source/unodialogs
+cvs diff: Diffing svx/source/unodialogs/inc
+cvs diff: Diffing svx/source/unodialogs/textconversiondlgs
+cvs diff: Diffing svx/source/unodraw
+cvs diff: Diffing svx/source/unoedit
+cvs diff: Diffing svx/source/unogallery
+cvs diff: Diffing svx/source/xml
+cvs diff: Diffing svx/source/xoutdev
+cvs diff: Diffing svx/uiconfig
+cvs diff: Diffing svx/uiconfig/accelerator
+cvs diff: Diffing svx/uiconfig/accelerator/en-US
+cvs diff: Diffing svx/uiconfig/accelerator/es
+cvs diff: Diffing svx/uiconfig/layout
+Index: svx/uiconfig/layout/delzip
+===================================================================
+RCS file: svx/uiconfig/layout/delzip
+diff -N svx/uiconfig/layout/delzip
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/uiconfig/layout/delzip	3 Apr 2008 08:39:33 -0000	1.1.2.2
+@@ -0,0 +1 @@
++empty
+\ No newline at end of file
+Index: svx/uiconfig/layout/layout.mk
+===================================================================
+RCS file: svx/uiconfig/layout/layout.mk
+diff -N svx/uiconfig/layout/layout.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/uiconfig/layout/layout.mk	31 Mar 2008 15:01:53 -0000	1.1.2.1
+@@ -0,0 +1,33 @@
++# TODO: move to solenv/inc
++# copies: sw/uiconfig/layout svx/uiconfig/layout
++
++TRALAY=tralay
++XML_DEST=$(DLLDEST)
++XML_LANGS=$(alllangiso)
++
++ALL_XMLS=$(foreach,i,$(XML_FILES) $(XML_DEST)/$i) $(foreach,i,$(XML_LANGS) $(foreach,j,$(XML_FILES) $(XML_DEST)/$i/$j))
++
++# Must remove the -j (no duplicate base file names) flag
++ZIPUPDATE=-u
++XML_ZIP = $(PRJNAME)-layout
++
++ALLTAR: $(XML_ZIP)
++
++$(XML_ZIP): $(ALL_XMLS)
++
++ZIP1DIR=$(XML_DEST)
++ZIP1TARGET=$(XML_ZIP)
++ZIP1LIST=$(ALL_XMLS:s@$(XML_DEST)/@@)
++
++$(foreach,i,$(XML_LANGS) $(XML_DEST)/$i/%.xml): %.xml
++	-$(MKDIR) $(@:d)
++	@echo $(foreach,i,$(XML_LANGS) $(XML_DEST)/$i/%.xml): %.xml
++	$(TRALAY) -m localize.sdf -o $(XML_DEST) -l $(XML_LANGS:f:t" -l ") $<
++
++$(XML_DEST)/%.xml: %.xml
++	-$(MKDIR) $(@:d)
++	$(COPY) $< $@
++
++# Don't want to overwrite filled localize.sdf with empty template
++template.sdf:
++	$(foreach,i,$(XML_FILES) $(TRALAY) -l en-US $i) > $@
+Index: svx/uiconfig/layout/localize.sdf
+===================================================================
+RCS file: svx/uiconfig/layout/localize.sdf
+diff -N svx/uiconfig/layout/localize.sdf
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/uiconfig/layout/localize.sdf	28 Mar 2008 11:19:36 -0000	1.1.2.1
+@@ -0,0 +1,493 @@
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	en-US	Zoom & View Layout				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-US	Zoom factor				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-US	Whole Page				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_AUTOMATIC_label				0	en-US	~Automatic				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_SINGLE_label				0	en-US	~Single page				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_COLUMNS_label				0	en-US	~Columns				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	ED_COLUMNS_text				0	en-US	1				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	CHK_BOOK_label				0	en-US	~Book mode				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_VIEWLAYOUT_text				0	en-US	View layout				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_AUTOMATIC_label				0	de	~Automatisch				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_SINGLE_label				0	de	~Einzelne Seite				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_COLUMNS_label				0	de	~Spalten				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	ED_COLUMNS_text				0	de	1				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	CHK_BOOK_label				0	de	~Buch Modus				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_VIEWLAYOUT_text				0	de	Ansichtlayout				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	de	Maßstab & Ansichtlayout				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_AUTOMATIC_label				0	nl	~Automatisch				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_SINGLE_label				0	nl	~Enkele pagina				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_COLUMNS_label				0	nl	~Kolommen				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	ED_COLUMNS_text				0	nl	1				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	CHK_BOOK_label				0	nl	~Boek modus				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_VIEWLAYOUT_text				0	nl	Beeldopmaak				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nl	Zoom & Beeldopmaak				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-US	Page Width				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-US	Optimal				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_200_label				0	en-US	200 %				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_150_label				0	en-US	15~0 %				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_100_label				0	en-US	100 %				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_75_label				0	en-US	75 %				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_50_label				0	en-US	50 %				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	en-US	Variable				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	ED_USER_text				0	en-US	100%				20080215 15:20:14
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	af	Zoemfaktor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ar	عامل تكبير/تصغير				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	as-IN	জুম কাৰক				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	be-BY	Маштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	bg	Мащаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	br	Parenn				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	bs	Faktor povećanja				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ca	Factor de l'escala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	cs	Faktor zvětšení				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	cy	Ffactor chwyddo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	da	Zoomfaktor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	de	Zoomfaktor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	dz	ཆ་རྐྱེན་རྒྱས་ཟུམ།				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	el	Συντελεστής εστίασης				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-GB	Zoom factor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-ZA	Zoom factor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	eo	Zoma faktoro				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	es	Escala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	et	Suurendusaste				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	fa	عامل زوم				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	fi	Zoom-kerroin				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	fr	Facteur				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ga	Fachtóir súmála				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	gl	Factor de zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	gu	ઝુમનો અવયવ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	gu-IN	ઝુમનો અવયવ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	he	גורם זום				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	hi-IN	जूम कारक				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	hr	Faktor uvećanja				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	hu	Nagyítás mértéke				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	it	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ja	ズーム率				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ka	მაშტაბირების ფაქტორი				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	km	កត្តា​ពង្រីក				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ko	확대/축소				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ku	Rêjeya Nêzîkirinê				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	lt	Mastelio parinkimas				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	mk	Фактор на зумирање				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ml-IN	സൂം ഘടകം				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	mr-IN	झूम गुणक				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nb	Skaleringsfaktor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ne	जुम खण्ड				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nl	Zoomfactor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nn	Skaleringsfaktor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nr	Ifektha yokukhulisa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ns	Godiša ntlha				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	or-IN	ଜୁମ୍ ଫ୍ଯାକଟର				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pa-IN	ਅਕਾਰ ਗੁਣਾਂਕ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pl	Powiększenie				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pt	Factor de zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pt-BR	Fator de zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ru	Масштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	rw	Igikubisho cy'ihindurangano				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sh	Faktor uvećanja				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sk	Faktor zväčšenia				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sl	Faktor povečave				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sr	Фактор увећања				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ss	Ifektha yaZumu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	st	Zoom factore				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sv	Zoomfaktor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sw-TZ	Kiwango tutushi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ta	Zoom factor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ta-IN	Zoom factor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	te-IN	జూమ్ కారకం				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	tg	Коэффитсиенти масштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	th	Zoom factor				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	tn	Siana lebaka				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	tr	Yakınlaştırma oranı				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ts	Xivumbi xa ku kurisa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	uk	Коефіцієнт масштабування				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ur-IN	زوم  فیكٹر				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	uz	Kattalashtirish darajasi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ve	Fekhitha ya Zumu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	vi	Hệ số thu phóng				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	xh	Umba wokwandisa unciphisa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	zh-CN	显示比例				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	zh-TW	顯示比例				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	FL_ZOOM_text				0	zu	Ingxenye yokusondeza				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	af	Zoem				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ar	تكبير/تصغير				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	as-IN	জুম				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	be-BY	Маштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	bg	Мащаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	br	Zoum				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	bs	Uvećaj				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ca	Escala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	cs	Lupa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	cy	Chwyddo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	da	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	dz	རྒྱས་ཟུམ།				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	el	Εστίαση				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	en-GB	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	en-ZA	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	eo	Zomi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	es	Escala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	et	Suurendus				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	fa	زوم				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	fi	Zoomaus				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	fr	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ga	Súmáil				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	gl	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	gu	નાનુમોટુ કરવુ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	gu-IN	નાનુમોટુ કરવુ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	he	זום				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	hi-IN	जूम				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	hr	Uvećaj/umanji				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	hu	Nagyítás				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	it	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ja	ズーム				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ka	მაშტაბი				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	km	ពង្រីក​				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ko	배율				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ku	Mezinkirin				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	lt	Mastelis				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	mk	Зумирање				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ml-IN	സൂം				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	mr-IN	झूम करा				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nb	Skaler				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ne	जुम				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nn	Skaler				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nr	Khula msinyana				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ns	Godiša				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	or-IN	ଜୁମ୍				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pa-IN	ਜ਼ੂਮ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pl	Skala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pt	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pt-BR	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ru	Масштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	rw	Ihindurangano				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sh	Uveličanje				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sk	Lupa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sl	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sr	Увеличање				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ss	Zumu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	st	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sv	Skala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sw-TZ	Tutusha				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ta	கிட்டப்பார்				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ta-IN	கிட்டப்பார்				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	te-IN	జూమ్				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	tg	Масштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	th	Zoom				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	tn	Siana				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	tr	Yakınlaştır				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ts	Ku kurisa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	uk	Масштаб				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ur-IN	 زوم				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	uz	Kattalashtirish				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ve	Zumu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	vi	Thu/phóng				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	xh	Ukwandisa unciphise				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	zh-CN	显示比例				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	zh-TW	顯示比例				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	zu	Sondeza				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	af	~Optimale				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ar	الأمثل~				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	be-BY	Аптымальна				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	bg	~Оптимален				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	br	~Gwellek				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	bs	~Optimalno				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ca	Ò~ptim				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	cs	Optimální				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	cy	~Gorau				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	da	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	de	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	dz	གང་དྲག(~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	el	Βέ~λτιστα				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-GB	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-ZA	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	eo	Optimuma				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	es	Ó~ptimo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	et	Optimaalne				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	fa	~بهینه				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	fi	O~ptimaalinen				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	fr	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ga	~Optamach				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	gl	~Ideal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	gu	શ્રેષ્ઠ (~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	gu-IN	શ્રેષ્ઠ (~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	he	מיטבי				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	hi-IN	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	hr	~Optimalno				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	hu	~Optimális				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	it	~Ottimale				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ja	最適(~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ka	~ოფტიმალური				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	km	ប្រសើរ​បំផុត 				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ko	최적(~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ku	D~înamik				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	lt	~Optimalus				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	mk	~Оптимално				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nb	~Best mulig				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ne	इष्टतम				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nl	~Optimaal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nn	~Best mogleg				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nr	~Ngaletha ipumelelo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ns	~Kgolo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	or-IN	ଅପଟିମାଲ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pa-IN	ਅਨੁਕੂਲ(~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pl	~Optymalny				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pt	~Optimizado				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pt-BR	~Ideal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ru	Оптимально				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	rw	Gihamye				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sh	~Optimalan				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sk	~Optimálny				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sl	~Optimalno				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sr	~Оптималан				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ss	~Kwekugcina				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	st	~E fetisisang				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sv	Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sw-TZ	Sadifu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ta	~சிறப்பு				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ta-IN	~சிறப்பு				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	te-IN	అనుకూలమైన				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	tg	Оптималӣ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	th	เ~หมาะที่สุด				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	tn	~Nepagetse				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	tr	En Uygun				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ts	~Mpimo wa le makumu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	uk	Оптимальний				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ur-IN	مناسب				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	uz	~Optimal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ve	~Oputimala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	vi	Tối ư~u				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	xh	~Okufaneleke ncam				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	zh-CN	最佳(~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	zh-TW	最合適(~O)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	zu	~Okuthandwayo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	af	~Bladsybreedte				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ar	~عرض الصفحة				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	as-IN	পৃষ্ঠাৰ প্রস্থ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	be-BY	Шырыня старонкі				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	bg	~Ширина на страницата				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	br	~Led pajenn				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	bs	Širina ~stranice				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ca	~Ample de pàgina				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	cs	Šířka stránky				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	cy	~Lled tudalen				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	da	Side~bredde				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	de	Seiten~breite				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	dz	ཤོག་ལེབ་ཀྱི་རྒྱ་ཚད།(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	el	Πλάτος σελίδας				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-GB	~Page Width				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-ZA	~Page Width				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	eo	Pagxa largxo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	es	~Ancho de página				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	et	Lehekülje laius				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	fa	~عرض صفحه				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	fi	~Sivun leveys				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	fr	~Largeur de page				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ga	Leithead ~Leathanaigh				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	gl	Largura de ~páxina				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	gu	પાનું પહોળાઈ(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	gu-IN	પાનું પહોળાઈ(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	he	רוחב עמוד				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	hi-IN	पृष्ठ चौड़ाई (~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	hr	~Širina stranice				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	hu	~Oldalszélesség				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	it	Larg~h. pagina				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ja	ページ幅(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ka	~გვერდის სიგანე				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	km	ទទឹង​ទំព័រ 				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ko	페이지 너비(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	lt	~Puslapio plotis				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	mk	Ширина на ~страница				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ml-IN	പേജിന്റെ വീതി				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	mr-IN	~पृष्ठाची रुंदी				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nb	~Sidebredde				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ne	पृष्ठ चौडाइ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nl	~Paginabreedte				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nn	~Sidebreidd				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nr	~Ububanzi bekhasi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ns	~Bophara bja Letlakala				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	or-IN	ପୃଷ୍ଠାର ଓସାର				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pa-IN	ਸਫ਼ਾ ਚੌੜਾਈ(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pl	Szerokość ~strony				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pt	~Largura da página				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pt-BR	Largura da ~página				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ru	По ширине страницы				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	rw	Ubugari bw'Urupapuro				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sh	~Širina strane				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sk	Šírka ~strany				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sl	Širina s~trani				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sr	~Ширина стране				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ss	~Bubanti belipheji				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	st	~Bophara ba Leqephe				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sv	Sidbredd				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sw-TZ	Upana Ukurasa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ta	பக்க அகலம்				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ta-IN	பக்க அகலம்				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	te-IN	పుటము యొక్క వెడెల్పు				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	tg	Ба бари саҳифа				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	th	ความกว้างของ~หน้า				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	tn	~Tsebe Bophara				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	tr	Sayfa Genişliği				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ts	~Ku anama ka pheji				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	uk	~Page Width				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ur-IN	صفحہ کی چوڑائی				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	uz	Betning ~eni				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ve	~Vhuphara ha Siatari				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	vi	Độ ~rộng trang				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	xh	~Ububanzi Bekhasi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	zh-CN	页面宽度(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	zh-TW	頁面寬度(~P)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	zu	Ububanzi be~khasi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	af	~Veranderlike				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ar	م~تغير				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	as-IN	চলক				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	be-BY	Зменная				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	bg	~Променлив				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	br	~All				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	bs	~Promjenljivo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ca	~Variable				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	cs	Proměnný				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	cy	~Newidiol				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	da	~Variabel				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	de	~Stufenlos				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	dz	འགྱུར་ཅན།(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	el	Προ~σαρμογή				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	en-GB	~Variable				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	en-ZA	~Variable				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	eo	Variablo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	es	~Variable				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	et	Kohandatud				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	fa	~متغیر				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	fi	~Vaihtuva				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	fr	~Autre				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ga	~Luaineach				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	gl	~Variable				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	gu	ચલ(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	gu-IN	ચલ(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	he	משתנה				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	hi-IN	चर (~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	hr	~Varijabilno				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	hu	~Egyéb:				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	it	~Variabile				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ja	任意(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ka	~ცვლადი				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	km	អថេរ 				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ko	가변(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ku	~Guherbar				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	lt	~Kitoks				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	mk	Променли~во				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ml-IN	വെരിയബിള്				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	mr-IN	~वेरीयेबल				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	nb	~Tilpass				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ne	चल				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	nl	~Variabel				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	nn	~Tilpass				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	nr	~Kwehlukano-gama				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ns	~Fetogago				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	or-IN	ପରିବର୍ତ୍ତନଶୀଳ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	pa-IN	ਮੁੱਲ(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	pl	~Inne				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	pt	~Variável				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	pt-BR	~Variável				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ru	Произвольно				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	rw	Bihinduka				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	sh	~Promenljiv				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	sk	~Premenný				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	sl	~Spremenljivo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	sr	~Променљив				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ss	~Kugucugucuka				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	st	~Variebole				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	sv	~Steglös				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	sw-TZ	Kibadili				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ta	மாறுவது				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ta-IN	மாறுவது				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	te-IN	చరరాశి				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	tg	~Тағирёбанда				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	th	~ตัวแปร				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	tn	~Farologane				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	tr	Değişken				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ts	~Lexi cincacincaka				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	uk	Змінний				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ur-IN	تغیر				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	uz	Oʻz~garuvchan				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	ve	~Variebulu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	vi	~Biến đổi				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	xh	~Iziguquguquki				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	zh-CN	无级缩放(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	zh-TW	無級縮放(~V)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_USER_label				0	zu	~Okushintshayo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	af	~Hele bladsy				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ar	~صفحة كاملة				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	as-IN	সম্পূর্ণ পৃষ্ঠা				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	be-BY	Старонка цалкам				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	bg	~Цяла страница				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	br	Pajenn a-bezh				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	bs	~Cijela stranica				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ca	~Tota la pàgina				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	cs	Celá stránka				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	cy	~Tudalen Gyfan				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	da	H~ele siden				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	de	~Ganze Seite				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	dz	ཤོག་ལེབ་ཧྲིལ་བུ།(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	el	Ολόκληρη σελίδα				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-GB	~Entire Page				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-ZA	~Entire Page				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	eo	Integra pagxo				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	es	~Toda la página				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	et	Terve lehekülg				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	fa	~سراسر صفحه				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	fi	~Koko sivu				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	fr	Page entière				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ga	L~eathanach ar fad				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	gl	Páxina completa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	gu	આખુ પાનું(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	gu-IN	આખુ પાનું(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	he	עמוד שלם				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	hi-IN	सम्पूर्ण पृष्ठ (~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	hr	~Cijela stranica				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	hu	~Teljes oldal				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	it	~Pagina intera				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ja	ページ全体(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ka	~მთლიანი გვერდი				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	km	ទំព័រទាំងមូល 				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ko	전체 페이지(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	lt	~Visas puslapis				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	mk	~Цела страница				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ml-IN	മുഴുവന് പേജ്				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	mr-IN	~संपूर्ण पृष्ठ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nb	~Hele siden				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ne	सम्पूर्ण पृष्ठ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nl	H~ele pagina				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nn	~Heile sida				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nr	~Ikhasi Loke				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ns	~Letlakala Ka moka				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	or-IN	ସମଗ୍ର ପୃଷ୍ଠା				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pa-IN	ਮੁਕੰਮਲ ਸਫ਼ਾ(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pl	~Cała strona				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pt	~Página inteira				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pt-BR	Página int~eira				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ru	Вся страница				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	rw	Paji yose				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sh	~Cela strana				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sk	~Celá strana				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sl	~Cela stran				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sr	~Цела страна				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ss	~Lonkhe lipheji				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	st	~Leqephe kaofela				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sv	Hela sidan				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sw-TZ	Ukurasa Mzima				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ta	முழுப்பக்கம்				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ta-IN	முழுப்பக்கம்				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	te-IN	పుటము మొత్తము				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	tg	Ба тамомми саҳифа				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	th	~ทั้งหน้า				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	tn	~Yotlhe Tsebe				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	tr	Tüm Sayfa				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ts	~Pheji hinkwaro				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	uk	~Entire Page				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ur-IN	پوراصفحہ				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	uz	Bu~tun bet				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ve	~Siatari Lothe				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	vi	~Toàn trang				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	xh	~Ikhasi Liphelele				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	zh-CN	整页(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	zh-TW	整頁(~E)				2002-02-02 02:02:02
++layout	svx\uiconfig\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	zu	Ikhasi ~lonke				2002-02-02 02:02:02
+Index: svx/uiconfig/layout/makefile.mk
+===================================================================
+RCS file: svx/uiconfig/layout/makefile.mk
+diff -N svx/uiconfig/layout/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/uiconfig/layout/makefile.mk	3 Apr 2008 16:47:47 -0000	1.1.2.4
+@@ -0,0 +1,54 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++#     MA  02110-1301  USA
++#
++#*************************************************************************
++
++PRJ=../..
++PRJNAME=svx
++TARGET=layout
++
++.INCLUDE : settings.mk
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++all: ALLTAR
++
++XML_FILES=zoom.xml
++
++.INCLUDE : layout.mk
++
++.ELSE # ENABLE_LAYOUT != TRUE
++all .PHONY:
++.ENDIF # ENABLE_LAYOUT != TRUE
++
++.INCLUDE :  target.mk
+Index: svx/uiconfig/layout/zoom.xml
+===================================================================
+RCS file: svx/uiconfig/layout/zoom.xml
+diff -N svx/uiconfig/layout/zoom.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/uiconfig/layout/zoom.xml	4 Apr 2008 09:14:29 -0000	1.1.2.2
+@@ -0,0 +1,40 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated xml files are generated from this template by
++     transex3/layout/tralay.  !-->
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="RID_SVXDLG_ZOOM" _title="Set Zoom" optimumsize="true"
++	     help-id="SID_ATTR_ZOOM"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox spacing="5" border="5">
++	<fixedline id="FL_ZOOM" _text="Zoom factor" cnt:expand="true"/>
++	<radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
++	<radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" _label="Page Width"/>
++	<radiobutton radiogroup="zoom" id="BTN_OPTIMAL"   _label="Optimal"/>
++	<radiobutton radiogroup="zoom" id="BTN_200"   _label="200 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_150"   _label="15~0 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_100"   _label="100 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_75"    _label="75 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_50"    _label="50 %"/>
++	<hbox cnt:expand="false" cnt:fill="true">
++	    <align cnt:expand="false" cnt:fill="true">
++		<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" _label="Variable"/>
++	    </align>
++	    <flow cnt:padding="10" cnt:expand="false"/>
++	    <metricfield id="ED_USER" value-step="1"
++			 repeat="true" has_border="true" spin="true"
++			 _text="100%" unit="11" custom-unit-text="%"
++			 right="true"
++			 cnt:expand="false"/>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton     id="BTN_ZOOM_OK"/>
++	    <cancelbutton id="BTN_ZOOM_CANCEL"/>
++	    <helpbutton   id="BTN_ZOOM_HELP"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+cvs diff: Diffing svx/util
+Index: svx/util/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/svx/util/makefile.mk,v
+retrieving revision 1.56
+retrieving revision 1.56.18.2
+diff -p -u -u -p -b -w -B -r1.56 -r1.56.18.2
+--- svx/util/makefile.mk	12 Mar 2008 10:14:26 -0000	1.56
++++ svx/util/makefile.mk	28 Mar 2008 10:17:48 -0000	1.56.18.2
+@@ -188,11 +188,6 @@ SHL2STDLIBS+= \
+              $(ADVAPI32LIB)
+ .ENDIF # WNT
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-LINKFLAGS+= -L../$(PRJ)/layout/$(INPATH)/lib
+-SHL2STDLIBS += -ltklayout$(UPD)$(DLLPOSTFIX)
+-.ENDIF # ENABLE_LAYOUT == TRUE
+-
+ # ------------------------------------------------------------------------------
+ 
+ # Resource files
+cvs diff: Diffing svx/util/defs
+cvs diff: Diffing svx/workben
+cvs diff: Diffing svx/workben/msview
+cvs diff: Diffing svx/xml
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-skip-overlapped-cells.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-skip-overlapped-cells.diff
@@ -0,0 +1,34 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/table1.cxx sc/source/core/data/table1.cxx
+--- sc.clean/source/core/data/table1.cxx	2008-03-11 09:39:38.000000000 -0400
++++ sc/source/core/data/table1.cxx	2008-03-11 17:26:50.000000000 -0400
+@@ -819,6 +819,10 @@ BOOL ScTable::ValidNextPos( SCCOL nCol, 
+ 	if (!ValidCol(nCol) || !ValidRow(nRow))
+ 		return FALSE;
+ 
++    if (pDocument->HasAttrib(nCol, nRow, nTab, nCol, nRow, nTab, HASATTR_OVERLAPPED))
++        // Skip an overlapped cell.
++        return false;
++
+ 	if (bMarked && !rMark.IsCellMarked(nCol,nRow))
+ 		return FALSE;
+ 
+@@ -861,7 +865,8 @@ void ScTable::GetNextPos( SCCOL& rCol, S
+ 	{
+ 		BOOL bUp = ( nMovY < 0 );
+ 		nRow = rMark.GetNextMarked( nCol, nRow, bUp );
+-		while ( VALIDROW(nRow) && pRowFlags && (pRowFlags->GetValue(nRow) & CR_HIDDEN) )
++        while ( (VALIDROW(nRow) && pRowFlags && (pRowFlags->GetValue(nRow) & CR_HIDDEN)) ||
++                pDocument->HasAttrib(nCol, nRow, nTab, nCol, nRow, nTab, HASATTR_OVERLAPPED) )
+ 		{
+ 			//	#53697# ausgeblendete ueberspringen (s.o.)
+ 			nRow += nMovY;
+@@ -890,7 +895,8 @@ void ScTable::GetNextPos( SCCOL& rCol, S
+ 			else if (nRow > MAXROW)
+ 				nRow = 0;
+ 			nRow = rMark.GetNextMarked( nCol, nRow, bUp );
+-			while ( VALIDROW(nRow) && pRowFlags && (pRowFlags->GetValue(nRow) & CR_HIDDEN) )
++            while ( (VALIDROW(nRow) && pRowFlags && (pRowFlags->GetValue(nRow) & CR_HIDDEN)) ||
++                    pDocument->HasAttrib(nCol, nRow, nTab, nCol, nRow, nTab, HASATTR_OVERLAPPED) )
+ 			{
+ 				//	#53697# ausgeblendete ueberspringen (s.o.)
+ 				nRow += nMovY;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sax-writer.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sax-writer.diff
@@ -0,0 +1,51 @@
+--- sax/source/expatwrap/saxwriter.cxx.old	2005-09-08 14:05:06.000000000 +0200
++++ sax/source/expatwrap/saxwriter.cxx	2006-06-21 13:58:54.000000000 +0200
+@@ -455,7 +455,7 @@ inline sal_Bool SaxWriterHelper::convert
+ 		    						  sal_Int8(0x80 | ((nSurrogate >>  6) & 0x3F)),
+ 			    					  sal_Int8(0x80 | ((nSurrogate >>  0) & 0x3F)) };
+     			if ((rPos + 4) > SEQUENCESIZE)
+-	    			AddBytes(pTarget, rPos, aBytes, 3);
++	    			AddBytes(pTarget, rPos, aBytes, 4);
+ 		    	else
+ 			    {
+ 				    pTarget[rPos] = aBytes[0];
+@@ -565,6 +565,8 @@ inline void SaxWriterHelper::insertInden
+ 	}
+ 	else
+ 	{
++		if (nCurrentPos == SEQUENCESIZE)
++			nCurrentPos = writeSequence();
+ 		mp_Sequence[nCurrentPos] = LINEFEED;
+ 		nLastLineFeedPos = nCurrentPos;
+ 		nCurrentPos++;
+@@ -590,22 +592,20 @@ inline void SaxWriterHelper::startDocume
+ {
+ 	const char pc[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
+ 	const int nLen = strlen( pc );
+-	if ((nCurrentPos + nLen + 1) <= SEQUENCESIZE)
++	if ((nCurrentPos + nLen) <= SEQUENCESIZE)
+ 	{
+ 		memcpy( mp_Sequence, pc , nLen );
+ 		nCurrentPos += nLen;
+-		mp_Sequence[nCurrentPos] = LINEFEED;
+-		nCurrentPos++;
+ 	}
+ 	else
+-	{
+ 		AddBytes(mp_Sequence, nCurrentPos, (sal_Int8*)pc, nLen);
+-		OSL_ENSURE(nCurrentPos <= SEQUENCESIZE, "not reset current position");
+-		if (nCurrentPos == SEQUENCESIZE)
+-			nCurrentPos = writeSequence();
+-		mp_Sequence[nCurrentPos] = LINEFEED;
+-		nCurrentPos++;
+-	}
++
++	OSL_ENSURE(nCurrentPos <= SEQUENCESIZE, "not reset current position");
++	if (nCurrentPos == SEQUENCESIZE)
++		nCurrentPos = writeSequence();
++	mp_Sequence[nCurrentPos] = LINEFEED;
++	nCurrentPos++;
++	
+ 	if (nCurrentPos == SEQUENCESIZE)
+ 		nCurrentPos = writeSequence();
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-save-as.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-save-as.diff
@@ -0,0 +1,165 @@
+diff --git ucb/source/ucp/webdav/DAVResourceAccess.cxx ucb/source/ucp/webdav/DAVResourceAccess.cxx
+index 1686958..a9b3742 100644
+--- ucb/source/ucp/webdav/DAVResourceAccess.cxx
++++ ucb/source/ucp/webdav/DAVResourceAccess.cxx
+@@ -444,7 +444,8 @@ void DAVResourceAccess::GET(
+ uno::Reference< io::XStream > DAVResourceAccess::GET(
+     const std::vector< rtl::OUString > & rHeaderNames,
+     DAVResource & rResource,
+-    const uno::Reference< ucb::XCommandEnvironment > & xEnv )
++    const uno::Reference< ucb::XCommandEnvironment > & xEnv,
++    sal_Bool bAllowEmpty )
+   throw( DAVException )
+ {
+     initialize();
+@@ -468,7 +469,8 @@ uno::Reference< io::XStream > DAVResourceAccess::GET(
+                                        DAVRequestEnvironment(
+                                            getRequestURI(),
+                                            new DAVAuthListener_Impl( xEnv ),
+-                                           aHeaders, xEnv ) );
++                                           aHeaders, xEnv ),
++                                       bAllowEmpty );
+         }
+         catch ( DAVException & e )
+         {
+diff --git ucb/source/ucp/webdav/DAVResourceAccess.hxx ucb/source/ucp/webdav/DAVResourceAccess.hxx
+index aba8342..b7cc610 100644
+--- ucb/source/ucp/webdav/DAVResourceAccess.hxx
++++ ucb/source/ucp/webdav/DAVResourceAccess.hxx
+@@ -171,7 +171,8 @@ public:
+     GET( const std::vector< rtl::OUString > & rHeaderNames, // empty == 'all'
+          DAVResource & rResource,
+          const com::sun::star::uno::Reference<
+-	     com::sun::star::ucb::XCommandEnvironment > & xEnv )
++	     com::sun::star::ucb::XCommandEnvironment > & xEnv,
++         sal_Bool bAllowEmpty = sal_False )
+         throw( DAVException );
+ 
+     void
+diff --git ucb/source/ucp/webdav/DAVSession.hxx ucb/source/ucp/webdav/DAVSession.hxx
+index a0d6d38..ae4ae52 100644
+--- ucb/source/ucp/webdav/DAVSession.hxx
++++ ucb/source/ucp/webdav/DAVSession.hxx
+@@ -150,7 +150,8 @@ public:
+                     GET( const ::rtl::OUString & inPath,
+                          const std::vector< ::rtl::OUString > & inHeaderNames,
+                          DAVResource & ioResource,
+-                         const DAVRequestEnvironment & rEnv )
++                         const DAVRequestEnvironment & rEnv,
++                         sal_Bool bAllowEmpty )
+         throw( DAVException ) = 0;
+ 
+     virtual void    GET( const ::rtl::OUString & inPath,
+diff --git ucb/source/ucp/webdav/NeonSession.cxx ucb/source/ucp/webdav/NeonSession.cxx
+index 5c05445..6ca255b 100644
+--- ucb/source/ucp/webdav/NeonSession.cxx
++++ ucb/source/ucp/webdav/NeonSession.cxx
+@@ -1146,7 +1146,8 @@ uno::Reference< io::XStream >
+ NeonSession::GET( const rtl::OUString & inPath,
+ 		  const std::vector< ::rtl::OUString > & inHeaderNames,
+ 		  DAVResource & ioResource,
+-		  const DAVRequestEnvironment & rEnv )
++		  const DAVRequestEnvironment & rEnv,
++		  sal_Bool bAllowEmpty )
+     throw ( DAVException )
+ {
+     osl::Guard< osl::Mutex > theGuard( m_aMutex );
+@@ -1166,7 +1167,14 @@ NeonSession::GET( const rtl::OUString & inPath,
+                          NeonSession_ResponseBlockReader,
+                          true,
+                          &aCtx );
+-    HandleError( theRetVal );
++    try {
++        HandleError( theRetVal );
++    }
++    catch ( DAVException const & e )
++    {
++        if ( !bAllowEmpty || ( e.getStatus() != SC_NOT_FOUND ) )
++            throw;
++    }
+     return uno::Reference< io::XStream >( xStream.get() );
+ }
+ 
+diff --git ucb/source/ucp/webdav/NeonSession.hxx ucb/source/ucp/webdav/NeonSession.hxx
+index 7ac692d..7099da1 100644
+--- ucb/source/ucp/webdav/NeonSession.hxx
++++ ucb/source/ucp/webdav/NeonSession.hxx
+@@ -159,7 +159,8 @@ class NeonSession : public DAVSession
+         GET( const ::rtl::OUString & inPath,
+              const std::vector< ::rtl::OUString > & inHeaderNames,
+              DAVResource & ioResource,
+-             const DAVRequestEnvironment & rEnv )
++             const DAVRequestEnvironment & rEnv,
++             sal_Bool bAllowEmpty = sal_False )
+             throw ( DAVException );
+ 
+         virtual void
+diff --git ucb/source/ucp/webdav/webdavcontent.cxx ucb/source/ucp/webdav/webdavcontent.cxx
+index 6e01a66..f91405c 100644
+--- ucb/source/ucp/webdav/webdavcontent.cxx
++++ ucb/source/ucp/webdav/webdavcontent.cxx
+@@ -1558,8 +1558,13 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
+ 
+                         if ( !bNetworkAccessAllowed )
+                         {
+-                            cancelCommandExecution( e, xEnv );
+-                            // unreachable
++                            if ( e.getStatus() == SC_NOT_FOUND )
++                                xProps.reset();
++                            else
++                            {
++                                cancelCommandExecution( e, xEnv );
++                                // unreachable
++                            }
+                         }
+                     }
+ 
+@@ -2321,20 +2326,28 @@ uno::Any Content::open(
+                     //                        // be mapped to UCB properties.
+                     //                        ContentProperties::getMappableHTTPHeaders( aHeaders );
+ 
+-                    // if the locking or the creation of the stream below
+-		    // fails, we are read only at the next try
+-		    m_bForceReadOnly = sal_True;
++                    try {
++                        m_xResAccess->LOCK( aLock, xEnv );
++                    }
++                    catch ( ucb::CommandFailedException const &e )
++                    {
++                        // stream locked?
++                        ucb::InteractiveIOException aIoException;
++                        if ( ( e.Reason >>= aIoException ) && ( aIoException.Code == ucb::IOErrorCode_LOCKING_VIOLATION ) )
++                        {
++                            // yes => we must be read only at the next try
++                            m_bForceReadOnly = sal_True;
++                        }
+ 
+-		    m_xResAccess->LOCK( aLock, xEnv );
++                        throw;
++                    }
+ 
+-		    uno::Reference< io::XStream > xStream
+-                        = xResAccess->GET( aHeaders, aResource, xEnv );
++                    uno::Reference< io::XStream > xStream
++                        = xResAccess->GET( aHeaders, aResource, xEnv, sal_True );
+ 
+                     // pass the lock to the stream
+-		    static_cast< NeonInputStream* >( xStream.get() )->SetLock( aLock, m_xResAccess->getURL() );
++                    static_cast< NeonInputStream* >( xStream.get() )->SetLock( aLock, m_xResAccess->getURL() );
+ 
+-		    // everything went well wrt. locking
+-		    m_bForceReadOnly = sal_False;
+                     {
+ 
+                         osl::MutexGuard aGuard( m_aMutex );
+@@ -2350,8 +2363,8 @@ uno::Any Content::open(
+                 }
+                 catch ( DAVException const & e )
+                 {
+-		    m_xResAccess->UNLOCK( aLock, xEnv );
+-		    m_bForceReadOnly = sal_False;
++                    m_xResAccess->UNLOCK( aLock, xEnv );
++                    m_bForceReadOnly = sal_False;
+ 
+                     cancelCommandExecution( e, xEnv );
+                     // Unreachable
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-javaunohelper.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-javaunohelper.diff
@@ -0,0 +1,5 @@
+--- javaunohelper/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ javaunohelper/prj/tests.lst	2007-09-07 11:29:10.000000000 +0200
+@@ -0,0 +1,2 @@
++jh   javaunohelper\test\com\sun\star\comp\helper        nmake - all jh_test_com_sun_star_comp_helper jh_util NULL
++jh   javaunohelper\test\com\sun\star\lib\uno\helper     nmake - all jh_test_com_sun_star_lib_uno_helper jh_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cjk-character-units-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cjk-character-units-fix.diff
@@ -0,0 +1,170 @@
+diff -uNpr officecfg-orig/registry/schema/org/openoffice/Office/Writer.xcs officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+--- officecfg-orig/registry/schema/org/openoffice/Office/Writer.xcs	2008-03-07 12:01:16.000000000 +0800
++++ officecfg/registry/schema/org/openoffice/Office/Writer.xcs	2008-03-03 14:49:15.000000000 +0800
+@@ -1515,18 +1515,6 @@
+ 					</info>
+ 					<value>false</value>
+ 				</prop>
+-				<!-- added for apply char unit 2006-12-1 -->
+-				<prop oor:name="ApplyCharUnit" oor:type="xs:boolean">
+-					<!-- OldPath: Writer/Layout -->
+-					<!-- OldLocation: Soffice.cfg -->
+-					<!-- UIHints: Tools - Options - Text document - Layout - [Section] Apply char unit -->
+-					<info>
+-						<author>OS</author>
+-						<desc>apply char unit to calculate the paragraph's indent</desc>
+-						<label>apply char unit</label>
+-					</info>
+-					<value>true</value>
+-				</prop>
+ 			</group>
+ 			<group oor:name="Other">
+ 				<info>
+@@ -1608,6 +1596,18 @@
+ 					</info>
+ 					<value>true</value>
+ 				</prop>	
++				<!-- added for apply char unit 2006-12-1 -->
++				<prop oor:name="ApplyCharUnit" oor:type="xs:boolean">
++					<!-- OldPath: Writer/Layout -->
++					<!-- OldLocation: Soffice.cfg -->
++					<!-- UIHints: Tools - Options - Text document - Layout - [Section] Apply char unit -->
++					<info>
++						<author>OS</author>
++						<desc>apply char unit to calculate the paragraph's indent</desc>
++						<label>apply char unit</label>
++					</info>
++					<value>true</value>
++				</prop>
+ 			</group>
+ 			<group oor:name="Zoom">
+ 				<info>
+diff -uNpr sw-orig/source/ui/app/appopt.cxx sw/source/ui/app/appopt.cxx
+--- sw-orig/source/ui/app/appopt.cxx	2008-02-22 11:55:53.000000000 +0800
++++ sw/source/ui/app/appopt.cxx	2008-03-04 22:18:51.000000000 +0800
+@@ -288,6 +288,7 @@ SfxItemSet*	 SwModule::CreateItemSet( US
+         pAppView->GetVLinealMetric(eUnit);
+     pRet->Put(SfxUInt16Item( FN_VSCROLL_METRIC, static_cast< UINT16 >(eUnit) ));
+     pRet->Put(SfxUInt16Item( SID_ATTR_METRIC, static_cast< UINT16 >(pPref->GetMetric()) ));
++    pRet->Put(SfxBoolItem(SID_ATTR_APPLYCHARUNIT, pPref->IsApplyCharUnit()));
+     if(bTextDialog)
+ 	{
+ 		if(pAppView)
+diff -uNpr sw-orig/source/ui/app/swmodul1.cxx sw/source/ui/app/swmodul1.cxx
+--- sw-orig/source/ui/app/swmodul1.cxx	2008-02-22 11:55:53.000000000 +0800
++++ sw/source/ui/app/swmodul1.cxx	2008-03-04 22:18:25.000000000 +0800
+@@ -384,8 +384,10 @@ void SwModule::ApplyUserCharUnit(BOOL bA
+ 	}
+ 	else
+ 	{
+-		eHScrollMetric = FUNIT_CM;
+-		eVScrollMetric = FUNIT_CM;
++		if ( eHScrollMetric == FUNIT_CHAR )
++			eHScrollMetric == FUNIT_CM;
++		if ( eVScrollMetric == FUNIT_LINE )
++			eVScrollMetric == FUNIT_CM;
+ 	}
+ 	SwView* pTmpView = SwModule::GetFirstView();
+ 	// fuer alle MDI-Fenster das Lineal umschalten
+diff -uNpr sw-orig/source/ui/config/optload.cxx sw/source/ui/config/optload.cxx
+--- sw-orig/source/ui/config/optload.cxx	2008-02-25 17:22:20.000000000 +0800
++++ sw/source/ui/config/optload.cxx	2008-03-04 22:22:18.000000000 +0800
+@@ -184,7 +184,10 @@ SwLoadOptPage::SwLoadOptPage( Window* pP
+ 	
+ 	SvtCJKOptions aCJKOptions;
+ 	if(!aCJKOptions.IsAsianTypographyEnabled())
++        {
+ 		aUseSquaredPageMode.Hide();
++                aUseCharUnit.Hide();
++        }
+ }
+ 
+ /*-----------------18.01.97 12.43-------------------
+diff -uNpr sw-orig/source/ui/config/optload.src sw/source/ui/config/optload.src
+--- sw-orig/source/ui/config/optload.src	2008-02-22 11:55:53.000000000 +0800
++++ sw/source/ui/config/optload.src	2008-03-05 15:12:21.000000000 +0800
+@@ -152,8 +152,7 @@ TabPage TP_OPTLOAD_PAGE
+     {
+         Pos = MAP_APPFONT ( 12 , 130) ;
+         Size = MAP_APPFONT ( 109 , 10 ) ;
+-        Text [ de ] = "appy char unit" ;
+-        Text [ en-US ] = "apply char unit";
++        Text [ en-US ] = "Enable char unit";
+         Text [ x-comment ] = " ";
+     };
+ 
+diff -uNpr sw-orig/source/ui/config/usrpref.cxx sw/source/ui/config/usrpref.cxx
+--- sw-orig/source/ui/config/usrpref.cxx	2008-02-22 11:55:53.000000000 +0800
++++ sw/source/ui/config/usrpref.cxx	2008-03-04 22:20:44.000000000 +0800
+@@ -85,6 +85,7 @@ SwMasterUsrPref::SwMasterUsrPref(BOOL bW
+     bIsVScrollMetricSet(sal_False),
+     nDefTab( MM50 * 4 ),
+     bIsSquaredPageMode(sal_False),
++    bApplyCharUnit(sal_False),
+     aContentConfig(bWeb, *this),
+     aLayoutConfig(bWeb, *this),
+     aGridConfig(bWeb, *this),
+@@ -351,7 +352,7 @@ void SwLayoutViewConfig::Commit()
+             case 14: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(rParent.GetDefTab())); break;// "Other/TabStop",
+             case 15: bSet = rParent.IsVRulerRight(); break;// "Window/IsVerticalRulerRight",
+             case 16: bSet = rParent.IsSquaredPageMode(); break;// "Other/IsSquaredPageMode",
+-            case 17: bSet = rParent.IsApplyCharUnit(); break;// "Other/IsApplyCharUnit",
++            case 17: bSet = rParent.IsApplyCharUnit(); break;// "Other/ApplyCharUnit",
+         }
+         if(nProp < 8 || nProp == 10 || nProp == 16 || nProp == 17)
+ 			pValues[nProp].setValue(&bSet, ::getBooleanCppuType());
+diff -uNpr sw-orig/source/ui/misc/pggrid.cxx sw/source/ui/misc/pggrid.cxx
+--- sw-orig/source/ui/misc/pggrid.cxx	2008-02-22 11:55:53.000000000 +0800
++++ sw/source/ui/misc/pggrid.cxx	2008-03-06 17:09:01.000000000 +0800
+@@ -357,17 +357,17 @@ void SwTextGridPage::PutGridItem(SfxItem
+         aGridItem.SetColor(aColorLB.GetSelectEntryColor());
+         rSet.Put(aGridItem);
+ /// Amelia
++            SwView * pView = ::GetActiveView();
+         if ( aGridItem.GetGridType() != GRID_NONE )
+         {
+-            SwView * pView = ::GetActiveView();
+             if ( aGridItem.GetGridType() == GRID_LINES_CHARS )
+             {
+-                pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
+                 m_bHRulerChanged = sal_True;
+             }
+-            pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
+             m_bVRulerChanged = sal_True;
+         }
++        pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
++        pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
+ }
+ /* -----------------------------08.02.2002 10:54------------------------------
+ 
+diff -uNpr sw-orig/source/ui/uiview/view.cxx sw/source/ui/uiview/view.cxx
+--- sw-orig/source/ui/uiview/view.cxx	2008-02-25 17:22:20.000000000 +0800
++++ sw/source/ui/uiview/view.cxx	2008-02-28 16:03:47.000000000 +0800
+@@ -266,7 +266,9 @@
+ #endif
+ 
+ #include <unomid.h>
+-
++#ifndef _SVTOOLS_CJKOPTIONS_HXX
++#include <svtools/cjkoptions.hxx>
++#endif
+ 
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -1065,13 +1067,14 @@ SwView::SwView( SfxViewFrame *_pFrame, S
+     FieldUnit eMetric = pUsrPref->GetHScrollMetric();
+ 
+     BOOL bApplyCharUnit = pUsrPref->IsApplyCharUnit();
+-    if ( bApplyCharUnit )
++    SvtCJKOptions aCJKOptions;
++    if ( aCJKOptions.IsAsianTypographyEnabled() && bApplyCharUnit )
+         pHRuler->SetUnit( FUNIT_CHAR );
+     else
+         pHRuler->SetUnit( eMetric );
+ 
+     eMetric = pUsrPref->GetVScrollMetric();
+-    if ( bApplyCharUnit )
++    if ( aCJKOptions.IsAsianTypographyEnabled() && bApplyCharUnit )
+         pVRuler->SetUnit(FUNIT_LINE);
+     else
+         pVRuler->SetUnit( eMetric );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkwarn-svx-warning-dlg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkwarn-svx-warning-dlg.diff
@@ -0,0 +1,448 @@
+--- svx/inc/svx/dialogs.hrc	2008-05-08 07:03:42.000000000 +0200
++++ svx/inc/svx/dialogs.hrc	2008-05-07 14:19:21.000000000 +0200
+@@ -38,7 +38,7 @@
+ // Resource-Id's ------------------------------------------------------------
+ 
+ // Bitte FIRSTFREE pflegen!!! (gilt nicht f"ur Strings)
+-#define RID_SVX_FIRSTFREE                   302
++#define RID_SVX_FIRSTFREE                   312
+ 
+ // ResId fuer die Hintergrund-TabPage
+ #define RID_SVXPAGE_BACKGROUND              (RID_SVX_START +   1)
+@@ -437,6 +437,7 @@
+ #define RID_OPTPAGE_CHART_DEFCOLORS         (RID_SVX_START + 299)
+ #define RID_SVXDLG_SECURITY_OPTIONS         (RID_SVX_START + 300)
+ #define RID_SVXDLG_WEBCONNECTION_INFO       (RID_SVX_START + 301)
++#define RID_SVXDLG_LINK_WARNING             (RID_SVX_START + 311)
+ // !!! please update RID_SVX_FIRSTFREE !!! see line 46
+ 
+ // Strings ------------------------------------------------------------------
+diff -urN ooo-build-anon/build/current/svx/inc/svx/linkwarn.hxx ooo-build/build/current/svx/inc/svx/linkwarn.hxx
+--- svx/inc/svx/linkwarn.hxx	1970-01-01 01:00:00.000000000 +0100
++++ svx/inc/svx/linkwarn.hxx	2008-05-07 18:08:58.000000000 +0200
+@@ -0,0 +1,61 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: linkwarn.hxx,v $
++ *
++ *  $Revision: $
++ *
++ *  last change: $Author: $ $Date: $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef _SFX_LINKWARN_HXX
++#define _SFX_LINKWARN_HXX
++
++#include <vcl/button.hxx>
++#include <vcl/fixed.hxx>
++#include <sfx2/basedlgs.hxx>
++#include "svx/svxdllapi.h"
++
++class SVX_DLLPUBLIC SvxLinkWarningDialog : public SfxModalDialog
++{
++private:
++    FixedImage              m_aQueryImage;
++    FixedText               m_aInfoText;
++    OKButton                m_aLinkGraphicBtn;
++    CancelButton            m_aEmbedGraphicBtn;
++    FixedLine               m_aOptionLine;
++    CheckBox                m_aWarningOnBox;
++
++    void                    InitSize();
++
++public:
++             SvxLinkWarningDialog( Window* pParent, const String& _rFileName );
++    virtual ~SvxLinkWarningDialog();
++};
++
++#endif // #ifndef _SFX_LINKWARN_HXX
++
+diff -urN ooo-build-anon/build/current/svx/prj/d.lst ooo-build/build/current/svx/prj/d.lst
+--- svx/prj/d.lst	2008-05-08 07:04:17.000000000 +0200
++++ svx/prj/d.lst	2008-05-07 15:27:21.000000000 +0200
+@@ -53,6 +53,7 @@
+ ..\inc\charhiddenitem.hxx %_DEST%\inc%_EXT%\svx\charhiddenitem.hxx
+ ..\inc\svx\bmpmask.hxx %_DEST%\inc%_EXT%\svx\bmpmask.hxx
+ ..\inc\bolnitem.hxx %_DEST%\inc%_EXT%\svx\bolnitem.hxx
++..\inc\svx\linkwarn.hxx %_DEST%\inc%_EXT%\svx\linkwarn.hxx
+ ..\inc\svx\borderline.hxx %_DEST%\inc%_EXT%\svx\borderline.hxx
+ ..\inc\svx\boxitem.hxx %_DEST%\inc%_EXT%\svx\boxitem.hxx
+ ..\inc\svx\brkitem.hxx %_DEST%\inc%_EXT%\svx\brkitem.hxx
+--- svx/source/dialog/linkwarn.cxx	1970-01-01 01:00:00.000000000 +0100
++++ svx/source/dialog/linkwarn.cxx	2008-05-07 18:12:55.000000000 +0200
+@@ -0,0 +1,155 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: linkwarn.cxx,v $
++ *
++ *  $Revision: $
++ *
++ *  last change: $Author: $ $Date: $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_svx.hxx"
++
++#include "linkwarn.hrc"
++#include "svx/linkwarn.hxx"
++#include "svx/dialogs.hrc"
++#include "svx/dialmgr.hxx"
++#include <vcl/msgbox.hxx>
++#include <sfx2/basedlgs.hxx>
++#include <svtools/miscopt.hxx>
++
++SvxLinkWarningDialog::SvxLinkWarningDialog( Window* pParent, const String& _rFileName ) :
++    SfxModalDialog( pParent, SVX_RES( RID_SVXDLG_LINK_WARNING ) ),
++    m_aQueryImage       ( this, SVX_RES( FI_QUERY ) ),
++    m_aInfoText         ( this, SVX_RES( FT_INFOTEXT ) ),
++    m_aLinkGraphicBtn   ( this, SVX_RES( PB_OK ) ),
++    m_aEmbedGraphicBtn  ( this, SVX_RES( PB_NO ) ),
++    m_aOptionLine       ( this, SVX_RES( FL_OPTION ) ),
++    m_aWarningOnBox     ( this, SVX_RES( CB_WARNING_OFF ) )
++{
++    FreeResource();
++
++    // set questionmark image
++    m_aQueryImage.SetImage( QueryBox::GetStandardImage() );
++
++    // replace filename
++    String sInfoText = m_aInfoText.GetText();
++    sInfoText.SearchAndReplaceAll( 
++        UniString::CreateFromAscii( 
++            RTL_CONSTASCII_STRINGPARAM( "%FILENAME" ) ), _rFileName );
++    m_aInfoText.SetText( sInfoText );
++
++    // load state of "warning on" checkbox from misc options
++    SvtMiscOptions aMiscOpt;
++    m_aWarningOnBox.Check( aMiscOpt.ShowLinkWarningDialog() == sal_True );
++    if( aMiscOpt.IsShowLinkWarningDialogReadOnly() )
++        m_aWarningOnBox.Disable();
++
++    // set focus to Cancel button
++    m_aEmbedGraphicBtn.GrabFocus();
++
++    // calculate and set the size of the dialog and its controls
++    InitSize();
++}
++
++// -----------------------------------------------------------------------
++
++SvxLinkWarningDialog::~SvxLinkWarningDialog()
++{
++    // save value of "warning off" checkbox, if necessary
++    SvtMiscOptions aMiscOpt;
++    sal_Bool bChecked = m_aWarningOnBox.IsChecked();
++    if ( aMiscOpt.ShowLinkWarningDialog() != bChecked )
++        aMiscOpt.SetShowLinkWarningDialog( bChecked );
++}
++
++// -----------------------------------------------------------------------
++
++void SvxLinkWarningDialog::InitSize()
++{
++    // text of checkbox to wide -> add new line
++    long nTxtW = m_aWarningOnBox.GetCtrlTextWidth( m_aWarningOnBox.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH;
++    long nCtrlW = m_aWarningOnBox.GetSizePixel().Width();
++    if ( nTxtW >= nCtrlW )
++    {
++        long nTextHeight = m_aWarningOnBox.GetTextHeight();
++        Size aNewSize = m_aWarningOnBox.GetSizePixel();
++        aNewSize.Height() += nTextHeight;
++        m_aWarningOnBox.SetSizePixel( aNewSize );
++        aNewSize = GetSizePixel();
++        aNewSize.Height() += nTextHeight;
++        SetSizePixel( aNewSize );
++    }
++
++    // align the size of the information text control (FixedText) to its content
++    Size aMinSize = m_aInfoText.CalcMinimumSize( m_aInfoText.GetSizePixel().Width() );
++    long nTxtH = aMinSize.Height();
++    long nCtrlH = m_aInfoText.GetSizePixel().Height();
++    long nDelta = ( nCtrlH - nTxtH );
++    Size aNewSize = m_aInfoText.GetSizePixel();
++    aNewSize.Height() -= nDelta;
++    m_aInfoText.SetSizePixel( aNewSize );
++
++    // new position for the succeeding windows
++    Window* pWins[] =
++    {
++        &m_aLinkGraphicBtn, &m_aEmbedGraphicBtn, &m_aOptionLine, &m_aWarningOnBox
++    };
++    Window** pCurrent = pWins;
++    for ( sal_uInt32 i = 0; i < sizeof(pWins) / sizeof(*pWins); ++i, ++pCurrent )
++    {
++        Point aNewPos = (*pCurrent)->GetPosPixel();
++        aNewPos.Y() -= nDelta;
++        (*pCurrent)->SetPosPixel( aNewPos );
++    }
++
++    // new size of the dialog
++    aNewSize = GetSizePixel();
++    aNewSize.Height() -= nDelta;
++    SetSizePixel( aNewSize );
++
++    // recalculate the size and position of the buttons
++    nTxtW = m_aLinkGraphicBtn.GetCtrlTextWidth( m_aLinkGraphicBtn.GetText() );
++    long nTemp = m_aEmbedGraphicBtn.GetCtrlTextWidth( m_aEmbedGraphicBtn.GetText() );
++    if ( nTemp > nTxtW )
++        nTxtW = nTemp;
++    nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
++    Size a3Size = LogicToPixel( Size( 3, 3 ), MAP_APPFONT );
++    Point aPos = m_aLinkGraphicBtn.GetPosPixel();
++    aPos.X() = ( aNewSize.Width() - (2*nTxtW) - a3Size.Width() ) / 2;
++    long nDefX = m_aWarningOnBox.GetPosPixel().X();
++    if ( nDefX < aPos.X() )
++        aPos.X() = nDefX;
++    aNewSize = m_aLinkGraphicBtn.GetSizePixel();
++    aNewSize.Width() = nTxtW;
++    m_aLinkGraphicBtn.SetPosSizePixel( aPos, aNewSize );
++    aPos.X() += nTxtW + a3Size.Width();
++    m_aEmbedGraphicBtn.SetPosSizePixel( aPos, aNewSize );
++}
++
+diff -urN ooo-build-anon/build/current/svx/source/dialog/linkwarn.hrc ooo-build/build/current/svx/source/dialog/linkwarn.hrc
+--- svx/source/dialog/linkwarn.hrc	1970-01-01 01:00:00.000000000 +0100
++++ svx/source/dialog/linkwarn.hrc	2008-05-07 17:21:30.000000000 +0200
+@@ -0,0 +1,67 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: linkwarn.hrc,v $
++ *
++ *  $Revision: $
++ *
++ *  last change: $Author: $ $Date: $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef _SVX_LINKWARN_HRC
++#define _SVX_LINKWARN_HRC
++
++#include <svtools/controldims.hrc>
++
++// dialog ids
++#define FI_QUERY        10
++#define FT_INFOTEXT     11
++#define PB_OK          12
++#define PB_NO           13
++#define FL_OPTION       15
++#define CB_WARNING_OFF  16
++
++// --------- general metrics ---------
++
++#define SYMBOL_EDGE         20
++#define DIALOG_WIDTH        220
++#define INFO_TEXT_LINES     11
++
++#define AW_COL_1            (RSC_SP_DLG_INNERBORDER_LEFT)
++#define AW_COL_2            (AW_COL_1+SYMBOL_EDGE+RSC_SP_CTRL_DESC_X)
++#define AW_COL_3            (AW_COL_2+RSC_CD_PUSHBUTTON_WIDTH+RSC_SP_CTRL_DESC_X)
++#define AW_COL_4            (DIALOG_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT-RSC_CD_PUSHBUTTON_WIDTH)
++
++#define AW_ROW_1            (RSC_SP_DLG_INNERBORDER_TOP)
++#define AW_ROW_2            (AW_ROW_1+INFO_TEXT_LINES*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_Y)
++#define AW_ROW_3            (AW_ROW_2+RSC_CD_PUSHBUTTON_HEIGHT+RSC_SP_CTRL_DESC_Y)
++#define AW_ROW_4            (AW_ROW_3+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_CTRL_DESC_Y)
++
++#define DIALOG_HEIGHT       (AW_ROW_4+RSC_CD_CHECKBOX_HEIGHT+RSC_SP_DLG_INNERBORDER_BOTTOM)
++
++#endif
++
+diff -urN ooo-build-anon/build/current/svx/source/dialog/linkwarn.src ooo-build/build/current/svx/source/dialog/linkwarn.src
+--- svx/source/dialog/linkwarn.src	1970-01-01 01:00:00.000000000 +0100
++++ svx/source/dialog/linkwarn.src	2008-05-07 20:13:42.000000000 +0200
+@@ -0,0 +1,94 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: linkwarn.src,v $
++ *
++ *  $Revision: $
++ *
++ *  last change: $Author: $ $Date: $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "linkwarn.hrc"
++#include "svx/dialogs.hrc"
++#include "helpid.hrc"
++
++ModalDialog RID_SVXDLG_LINK_WARNING
++{
++    Size = MAP_APPFONT( DIALOG_WIDTH, DIALOG_HEIGHT );
++	OutputSize = TRUE;
++	Closeable = FALSE;
++	Moveable = TRUE;
++	SVLook = TRUE;
++
++    Text = "%PRODUCTNAME %PRODUCTVERSION %PRODUCTEXTENSION";
++
++    FixedImage FI_QUERY
++	{
++        Pos = MAP_APPFONT( AW_COL_1, AW_ROW_1 );
++        Size = MAP_APPFONT( SYMBOL_EDGE, SYMBOL_EDGE );
++	};
++    FixedText FT_INFOTEXT
++	{
++        Pos = MAP_APPFONT( AW_COL_2, AW_ROW_1 );
++        Size = MAP_APPFONT( DIALOG_WIDTH-AW_COL_2-RSC_SP_DLG_INNERBORDER_RIGHT, INFO_TEXT_LINES*RSC_CD_FIXEDTEXT_HEIGHT );
++		NoLabel = TRUE;
++        Wordbreak = TRUE;
++        Text [ en-US ] = "The file %FILENAME will not be stored along with your document, but only referenced as a link. This is dangerous if you move and/or rename the files. Do you want to embed the graphic instead?";
++        Text [ de-DE ] = "Die Datei %FILENAME wird nicht zusammen mit dem Dokument gespeichert, sondern nur als Verweis referenziert. Dies kann zu Problemen führen, wenn die Dateien verschoben und/oder umbenannt werden. Möchten Sie stattdessen die Grafik als eingebettetes Objekt einfügen?";
++	};
++    OKButton PB_OK
++    {
++        Pos = MAP_APPFONT( AW_COL_2, AW_ROW_2 );
++        Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
++        DefButton = TRUE ;
++        Text [ en-US ] = "~Keep Link";
++        Text [ de-DE ] = "~Als Verweis einfügen";
++    };
++    CancelButton PB_NO
++	{
++        Pos = MAP_APPFONT( AW_COL_3, AW_ROW_2 );
++        Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
++        Text [ en-US ] = "~Embed Graphic";
++        Text [ de-DE ] = "~Eingebettet einfügen";
++	};
++    FixedLine FL_OPTION
++	{
++        Pos = MAP_APPFONT( 0, AW_ROW_3 );
++        Size = MAP_APPFONT( DIALOG_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
++	};
++	CheckBox CB_WARNING_OFF
++	{
++        Pos = MAP_APPFONT( AW_COL_2, AW_ROW_4 );
++        Size = MAP_APPFONT( DIALOG_WIDTH-AW_COL_2-RSC_SP_DLG_INNERBORDER_RIGHT, RSC_CD_CHECKBOX_HEIGHT );
++        WordBreak = TRUE ;
++        Text [ en-US ] = "~Ask when linking a graphic";
++        Text [ de-DE ] = "~Nachfragen falls Grafik als Verweis eingefügt wird";
++	};
++};
++
++
+--- svx/source/dialog/makefile.mk	2008-05-08 07:03:59.000000000 +0200
++++ svx/source/dialog/makefile.mk	2008-05-07 17:19:22.000000000 +0200
+@@ -83,6 +83,7 @@
+         impgrf.src \
+         language.src \
+         lingu.src \
++        linkwarn.src \
+         numfmt.src \
+         numpages.src \
+         page.src \
+@@ -191,6 +192,7 @@
+     $(SLO)$/hldoctp.obj \
+     $(SLO)$/imapdlg.obj \
+     $(SLO)$/imapwnd.obj \
++    $(SLO)$/linkwarn.obj \
+     $(SLO)$/measure.obj \
+     $(SLO)$/dstribut.obj \
+     $(SLO)$/measctrl.obj \
+@@ -336,6 +338,7 @@
+ 	$(SLO)$/hdft.obj     \
+ 	$(SLO)$/impgrf.obj   \
+ 	$(SLO)$/langbox.obj \
++    $(SLO)$/linkwarn.obj \
+ 	$(SLO)$/wrapfield.obj    \
+ 	$(SLO)$/pagectrl.obj \
+ 	$(SLO)$/paraprev.obj \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layoutdialogs-transex3.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layoutdialogs-transex3.diff
@@ -0,0 +1,513 @@
+cvs diff: Diffing transex3
+cvs diff: Diffing transex3/inc
+cvs diff: Diffing transex3/inc/pch
+cvs diff: Diffing transex3/inc/transex3
+cvs diff: Diffing transex3/java
+cvs diff: Diffing transex3/java/l10nconv
+cvs diff: Diffing transex3/java/l10nconv/documentation
+cvs diff: Diffing transex3/java/l10nconv/java
+cvs diff: Diffing transex3/java/l10nconv/java/com
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/DirtyTags
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/converter
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/converter/dtd
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/languageResolver
+cvs diff: Diffing transex3/java/receditor
+cvs diff: Diffing transex3/java/receditor/java
+cvs diff: Diffing transex3/java/receditor/java/transex3
+cvs diff: Diffing transex3/java/receditor/java/transex3/controller
+cvs diff: Diffing transex3/java/receditor/java/transex3/model
+cvs diff: Diffing transex3/java/receditor/java/transex3/view
+cvs diff: Diffing transex3/layout
+Index: transex3/layout/layoutparse.cxx
+===================================================================
+RCS file: /cvs/l10n/transex3/layout/layoutparse.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.2.3
+--- transex3/layout/layoutparse.cxx	6 Mar 2008 12:35:12 -0000	1.2
++++ transex3/layout/layoutparse.cxx	4 Apr 2008 09:11:45 -0000	1.2.2.3
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
+ #include "layoutparse.hxx"
+ 
+ #define STRING( str ) String( str, RTL_TEXTENCODING_UTF8 )
+@@ -20,6 +55,8 @@ LayoutXMLFile::SearchL10NElements( XMLPa
+         for ( ULONG i = 0; i < lst->Count(); i++ )
+             if ( lst->GetObject( i )->GetNodeType() == XML_NODE_TYPE_ELEMENT )
+                 HandleElement( ( XMLElement* )lst->GetObject( i ) );
++            else if ( lst->GetObject( i )->GetNodeType() == XML_NODE_TYPE_COMMENT )
++                lst->Remove( i-- );
+ }
+ 
+ std::vector<XMLAttribute*>
+@@ -42,13 +79,14 @@ LayoutXMLFile::HandleElement( XMLElement
+     
+     if ( interesting.size() )
+     {
+-        ByteString id = BSTRING( interesting[0]->GetValue() );
++        std::vector<XMLAttribute*>::iterator i = interesting.begin();
++
++        ByteString id = BSTRING( (*i++)->GetValue() );
+ 
+         if ( mMergeMode )
+             InsertL10NElement( id, element );
+         else
+-            for ( std::vector<XMLAttribute*>::iterator i = ++interesting.begin();
+-                  i != interesting.end(); ++i )
++            for ( ; i != interesting.end(); ++i )
+             {
+                 ByteString attributeId = id;
+                 ByteString value = BSTRING( ( *i )->GetValue() );
+Index: transex3/layout/layoutparse.hxx
+===================================================================
+RCS file: /cvs/l10n/transex3/layout/layoutparse.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.2.2
+--- transex3/layout/layoutparse.hxx	6 Mar 2008 12:35:24 -0000	1.2
++++ transex3/layout/layoutparse.hxx	27 Mar 2008 13:09:53 -0000	1.2.2.2
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUTPARSE_HXX
+ #define LAYOUTPARSE_HXX
+ 
+@@ -14,6 +49,9 @@ public:
+     BOOL Write( ByteString &aFilename );
+     void HandleElement( XMLElement* element );
+     void InsertL10NElement( ByteString const& id, XMLElement* element );
++
++    using XMLFile::InsertL10NElement;
++    using XMLFile::Write;
+ };
+ 
+ std::vector<XMLAttribute*> interestingAttributes( XMLAttributeList* lst );
+Index: transex3/layout/makefile.mk
+===================================================================
+RCS file: /cvs/l10n/transex3/layout/makefile.mk,v
+retrieving revision 1.2
+retrieving revision 1.2.2.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.2.3
+--- transex3/layout/makefile.mk	6 Mar 2008 12:36:23 -0000	1.2
++++ transex3/layout/makefile.mk	30 Mar 2008 13:36:03 -0000	1.2.2.3
+@@ -1,3 +1,38 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++#     MA  02110-1301  USA
++#
++#*************************************************************************
++
+ PRJ=..
+ 
+ INCPRE=$(MISC)
+@@ -20,14 +55,8 @@ CFLAGS+=-DSYSTEM_EXPAT
+ 
+ # --- Files --------------------------------------------------------
+ 
+-CXXFILES=\
+-	layoutparse.cxx\
+-	tralay.cxx
+-
+ APP1TARGET=$(TARGET)
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-
+ OBJFILES =\
+ 	$(OBJ)/export2.obj\
+ 	$(OBJ)/helpmerge.obj\
+@@ -41,27 +70,16 @@ APP1OBJS = $(OBJFILES)
+ APP1STDLIBS =\
+ 	$(EXPATASCII3RDLIB)\
+ 	$(TOOLSLIB)\
+-	$(VOSLIB)
++	$(VOSLIB)\
++	$(CPPULIB) \
++	$(SALLIB)	
+ 
+ # --- Targets ------------------------------------------------------
+ 
+ .INCLUDE :  target.mk
+ 
+ test .PHONY:
+-	../$(INPATH)/bin/tralay -l en-US zoom.xml > out.sdf
++	../$(INPATH)/bin/tralay -l en-US -o out.sdf zoom.xml
+ 	cat out.sdf > trans.sdf
+ 	sed 's/en-US\t/de\tde:/' out.sdf >> trans.sdf 
+-	../$(INPATH)/bin/tralay -m trans.sdf -l de zoom.xml #> zoom-DE.xml
+-
+-.ELSE # ENABLE_LAYOUT != TRUE
+-
+-$(BIN)$/$(APP1TARGET)$(EXECPOST):
+-	touch $@
+-
+-ALLTAR:
+-all:
+-check:
+-clean:
+-
+-.ENDIF # ENABLE_LAYOUT != TRUE
+-
++	../$(INPATH)/bin/tralay -m trans.sdf -l de -o zoom-DE.xml zoom.xml
+Index: transex3/layout/tralay.cxx
+===================================================================
+RCS file: /cvs/l10n/transex3/layout/tralay.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.7
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.2.7
+--- transex3/layout/tralay.cxx	6 Mar 2008 12:36:58 -0000	1.2
++++ transex3/layout/tralay.cxx	4 Apr 2008 09:11:45 -0000	1.2.2.7
+@@ -1,6 +1,43 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
+ #include <com/sun/star/xml/sax/SAXException.hpp>
+ #include <transex3/vosapp.hxx>
+ 
++#include <osl/file.hxx>
++
+ #include "export.hxx"
+ #include "layoutparse.hxx"
+ #include "helpmerge.hxx"
+@@ -12,7 +49,9 @@
+ #define STRING( str ) String( str, RTL_TEXTENCODING_UTF8 )
+ #define BSTRING( str ) ByteString( str, RTL_TEXTENCODING_UTF8 )
+ 
+-using namespace ::rtl;
++using ::rtl::OUString;
++
++using namespace ::osl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
+@@ -31,7 +70,7 @@ class TranslateLayout : public Applicati
+ 
+ public:
+     TranslateLayout();
+-    ~TranslateLayout();
++    virtual ~TranslateLayout();
+     ByteString GetCommandLineParam( int i );
+     ByteString GetOptionArgument( int const i );
+     void ExceptionalMain();
+@@ -40,6 +79,8 @@ public:
+     void MergeLanguage( ByteString const& language );
+     void ParseCommandLine();
+     void CreateSDF();
++
++    using Application::GetCommandLineParam;
+ };
+ 
+ static void usage()
+@@ -55,9 +96,29 @@ static void usage()
+     exit( 2 );
+ }
+ 
++static ByteString ConvertSystemPath( const ByteString& rPath )
++{
++    if( rPath.CompareTo( ".", 1 ) == 0 )
++    {
++        OUString sPath( rPath.GetBuffer(), rPath.Len(), RTL_TEXTENCODING_UTF8 );
++
++        ::rtl::OUString curDirPth, sURL;
++        osl_getProcessWorkingDir( &curDirPth.pData );
++
++        ::osl::FileBase::getAbsoluteFileURL( curDirPth, sPath, sURL );
++        ::osl::FileBase::getSystemPathFromFileURL( sURL, sPath );
++
++        return ByteString( rtl::OUStringToOString( sPath, RTL_TEXTENCODING_UTF8 ) );
++    }
++    else
++    {
++        return rPath;
++    }
++}
++
+ ByteString TranslateLayout::GetCommandLineParam( int i )
+ {
+-    return ByteString( OUSTRING_CSTR( Application::GetCommandLineParam( i ) ) );
++    return ByteString( OUSTRING_CSTR( Application::GetCommandLineParam( sal::static_int_cast< USHORT >( i ) ) ) );
+ }
+ 
+ ByteString TranslateLayout::GetOptionArgument( int const i )
+@@ -90,14 +151,14 @@ void TranslateLayout::ParseCommandLine()
+             mLocalize = GetOptionArgument( ++i );
+         }
+         else if ( aParam.Equals( "-o" ) || aParam.Equals( "--output" ) )
+-            mOutput = GetOptionArgument( ++i );
++            mOutput = ConvertSystemPath( GetOptionArgument( ++i ) );
+         else if ( !aParam.CompareTo( "-", 1 ) )
+         {
+             fprintf( stderr, "error: No such option: %s\n", aParam.GetBuffer() );
+             usage();
+         }
+         else
+-            mFiles.push_back( aParam );
++            mFiles.push_back( ConvertSystemPath( aParam ) );
+     }
+     if ( !mFiles.size() )
+     {
+@@ -129,10 +190,14 @@ translateElement( XMLElement* element, B
+                   ResData* resData, MergeDataFile& mergeData )
+ {
+     XMLAttributeList* attributes = element->GetAttributeList();
+-    std::vector<XMLAttribute*> interesting = interestingAttributes( attributes );
+-    ByteString id = BSTRING( interesting[0]->GetValue() );
+-    for ( std::vector<XMLAttribute*>::iterator i = ++interesting.begin();
+-          i != interesting.end(); ++i )
++    std::vector<XMLAttribute*> interesting( interestingAttributes( attributes ) );
++
++
++    if( !interesting.empty() )
++    {
++        std::vector<XMLAttribute*>::iterator i( interesting.begin() );
++        ByteString id = BSTRING( (*i++)->GetValue() );
++        for ( ; i != interesting.end(); ++i )
+     {
+         ByteString attributeId = id;
+         attributeId += BSTRING ( **i );
+@@ -154,24 +219,47 @@ translateElement( XMLElement* element, B
+         }
+     }
+ }
++}
+ 
+ static bool is_dir( ByteString const& name )
+ {
+-    if (DIR* dir = opendir( name.GetBuffer() ) )
++    DirectoryItem aItem;
++    OUString sFileURL( name.GetBuffer(), name.Len(), RTL_TEXTENCODING_UTF8 );
++    FileBase::getFileURLFromSystemPath( sFileURL, sFileURL );
++    if( DirectoryItem::get( sFileURL, aItem ) == FileBase::E_None )
++    {
++        FileStatus aStatus(FileStatusMask_Type);
++        if( aItem.getFileStatus( aStatus ) == FileBase::E_None )
+     {
+-        closedir( dir );
++            if( aStatus.getFileType() == FileStatus::Directory )
+         return true;
+     }
++    }
+     return false;
+ }
+ 
+ static void make_directory( ByteString const& name )
+ {
+-#ifdef WNT
+-    _mkdir( name.GetBuffer() );
+-#else
+-    mkdir( name.GetBuffer() , S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
+-#endif
++    OUString sFileURL( name.GetBuffer(), name.Len(), RTL_TEXTENCODING_UTF8 );
++    FileBase::getFileURLFromSystemPath( sFileURL, sFileURL );
++    Directory::create( sFileURL );
++}
++
++static void insertMarker( XMLParentNode *p, ByteString const& file )
++{
++    if ( XMLChildNodeList* lst = p->GetChildList() )
++        if ( lst->Count() )
++        {
++            ULONG i = 1;
++            // Skip newline, if possible.
++            if ( lst->Count() > 1
++                 && lst->GetObject( 2 )->GetNodeType() == XML_NODE_TYPE_DEFAULT )
++                i++;
++            OUString marker = OUString::createFromAscii( "\n    NOTE: This file has been generated automagically by transex3/layout/tralay,\n          from source template: " )
++                + STRING( file )
++                + OUString::createFromAscii( ".\n          Do not edit, changes will be lost.\n" );
++            lst->Insert( new XMLComment( marker, 0 ), i );
++        }
+ }
+ 
+ void TranslateLayout::MergeLanguage( ByteString const& language )
+@@ -190,6 +278,7 @@ void TranslateLayout::MergeLanguage( Byt
+     }
+     
+     layoutXml->Extract();
++    insertMarker( layoutXml, xmlFile );
+ 
+     ResData	resData( "", "", "" );
+     resData.sResTyp = mProject; /* mGid1 ?? */
+@@ -204,7 +293,11 @@ void TranslateLayout::MergeLanguage( Byt
+                 translateElement( element, language, &resData, mergeData );
+     }
+     
++#ifndef WNT
+     ByteString outFile = "/dev/stdout";
++#else
++    ByteString outFile = "\\\\.\\CON";
++#endif
+     if ( mOutput.Len() )
+     {
+         outFile = mOutput;
+@@ -235,7 +328,11 @@ void TranslateLayout::Merge()
+ void TranslateLayout::CreateSDF()
+ {
+     ByteString xmlFile = mFiles.front();
++#ifndef WNT
+     ByteString sdf = "/dev/stdout";
++#else
++    ByteString sdf = "\\\\.\\CON";
++#endif
+     if ( mOutput.Len() )
+         sdf = mOutput;
+     Export::SetLanguages( mLanguages );
+@@ -289,7 +386,7 @@ TranslateLayout::TranslateLayout()
+     , mLocalize( "localize.sdf" )
+     , mOutput()
+     , mProject( "layout" )
+-    , mRoot( "/root" )
++    , mRoot()
+     , mMergeMode( false )
+     , mLanguages()
+     , mFiles()
+Index: transex3/layout/zoom.xml
+===================================================================
+RCS file: /cvs/l10n/transex3/layout/zoom.xml,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.2.1
+--- transex3/layout/zoom.xml	6 Mar 2008 12:37:10 -0000	1.2
++++ transex3/layout/zoom.xml	4 Apr 2008 09:11:45 -0000	1.2.2.1
+@@ -1,4 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated xml files are generated from this template by
++     transex3/layout/tralay.  !-->
+ 
+ <modaldialog xmlns="http://openoffice.org/2007/layout"
+              xmlns:cnt="http://openoffice.org/2007/layout/container"
+cvs diff: Diffing transex3/prj
+cvs diff: Diffing transex3/scripts
+cvs diff: Diffing transex3/source
+cvs diff: Diffing transex3/workbench
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-unlock-on-crash.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-unlock-on-crash.diff
@@ -0,0 +1,79 @@
+diff --git ucb/source/ucp/webdav/NeonInputStream.cxx ucb/source/ucp/webdav/NeonInputStream.cxx
+index c969218..08b82c7 100644
+--- ucb/source/ucp/webdav/NeonInputStream.cxx
++++ ucb/source/ucp/webdav/NeonInputStream.cxx
+@@ -56,6 +56,15 @@ using namespace com::sun::star::io;
+ using namespace com::sun::star;
+ using namespace webdav_ucp;
+ 
++oslSignalAction NeonInputStream::UnlockOnSignal( void* pData, oslSignalInfo* )
++{
++    NeonInputStream *pStream = static_cast< NeonInputStream *>( pData );
++
++    if ( pStream )
++        pStream->Unlock();
++
++    return osl_Signal_ActCallNextHdl;
++}
+ 
+ // -------------------------------------------------------------------
+ // Constructor
+@@ -66,6 +75,7 @@ NeonInputStream::NeonInputStream()
+   m_bDirty( sal_False ),
+   m_pLock( NULL )
+ {
++    m_pSignalHandler = osl_addSignalHandler( NeonInputStream::UnlockOnSignal, this );
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -74,6 +84,8 @@ NeonInputStream::NeonInputStream()
+ NeonInputStream::~NeonInputStream( void )
+ {
+     Unlock();
++
++    osl_removeSignalHandler( m_pSignalHandler );
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -365,6 +377,10 @@ void SAL_CALL NeonInputStream::truncate( void )
+ // -------------------------------------------------------------------
+ void NeonInputStream::Unlock( void )
+ {
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "WebDAV: unlock()\n" );
++#endif
++
+     if ( m_pLock )
+     {
+         // FIXME It's really hacky to create the new session
+diff --git ucb/source/ucp/webdav/NeonInputStream.hxx ucb/source/ucp/webdav/NeonInputStream.hxx
+index ba470e6..8545cfd 100644
+--- ucb/source/ucp/webdav/NeonInputStream.hxx
++++ ucb/source/ucp/webdav/NeonInputStream.hxx
+@@ -38,6 +38,7 @@
+ #ifndef _SAL_TYPES_H_
+ #include <sal/types.h>
+ #endif
++#include <osl/signal.h>
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+ #endif
+@@ -93,6 +94,8 @@ private:
+     com::sun::star::ucb::Lock *m_pLock;
+     rtl::OUString              m_aURL;
+ 
++    oslSignalHandler           m_pSignalHandler;
++
+ public:
+              NeonInputStream( void );
+     virtual ~NeonInputStream();
+@@ -199,6 +202,9 @@ protected:
+ 
+     // Unlock the stream & destroy the lock
+     void Unlock( void );
++
++    // Unlock the stream when OOo crashes/is terminated/...
++    static oslSignalAction UnlockOnSignal( void* pData, oslSignalInfo* pInfo );
+ };
+ 
+ } // namespace webdav_ucp
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/help-support.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/help-support.diff
@@ -0,0 +1,46 @@
+Index: sfx2/source/appl/appserv.cxx
+===================================================================
+RCS file: /cvs/framework/sfx2/source/appl/appserv.cxx,v
+retrieving revision 1.30.116.1
+diff -u -r1.30.116.1 appserv.cxx
+--- sfx2/source/appl/appserv.cxx	20 Jan 2004 10:43:08 -0000	1.30.116.1
++++ sfx2/source/appl/appserv.cxx	9 Sep 2004 10:45:38 -0000
+@@ -123,6 +123,12 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
++#ifndef _COM_SUN_STAR_SYSTEM_XSYSTEMSHELLEXECUTE_HPP_
++#include <com/sun/star/system/XSystemShellExecute.hpp>
++#endif
++#ifndef _COM_SUN_STAR_SYSTEM_SYSTEMSHELLEXECUTEFLAGS_HPP_
++#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
++#endif
+ #ifndef _SFXCANCEL_HXX //autogen
+ #include <svtools/cancel.hxx>
+ #endif
+@@ -467,9 +473,24 @@
+ 			break;
+ 		}
+ 
++		case SID_HELP_SUPPORTPAGE:
++		{
++			try {
++				Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
++					( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
++				if ( xSystemShell.is()) {
++					rtl::OUString aURI( DEFINE_CONST_UNICODE( "http://www.novell.com/support" ) );
++					xSystemShell->execute( aURI, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
++				}
++
++				break;
++			} catch (const ::com::sun::star::uno::Exception &) {
++ 			}
++			/* drop through on exception */
++		}
++
+         // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+         case SID_HELPINDEX:
+-        case SID_HELP_SUPPORTPAGE:
+         {
+             Help* pHelp = Application::GetHelp();
+             if ( pHelp )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-mutex.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-mutex.diff
@@ -0,0 +1,51555 @@
+diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx
+index f80d9e8..b3ba5f1 100644
+--- accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx
++++ accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx
+@@ -54,6 +54,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ #ifndef _CPPUHELPER_COMPBASE5_HXX_
+ #include <cppuhelper/compbase5.hxx>
+ #endif
+@@ -123,10 +125,10 @@ namespace accessibility {
+ // ============================================================================
+ 
+ /** Aquire the solar mutex. */
+-class BBSolarGuard : public ::vos::OGuard
++class BBSolarGuard : public osl::SolarMutexGuard
+ {
+ public:
+-    inline BBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
++    inline BBSolarGuard() : osl::SolarMutexGuard( Application::GetSolarMutex() ) {}
+ };
+ 
+ // ============================================================================
+diff --git a/accessibility/source/extended/accessibleiconchoicectrlentry.cxx b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
+index 6476d63..1002824 100644
+--- accessibility/source/extended/accessibleiconchoicectrlentry.cxx
++++ accessibility/source/extended/accessibleiconchoicectrlentry.cxx
+@@ -118,10 +118,10 @@ namespace accessibility
+ 	// class ALBSolarGuard ---------------------------------------------------------
+ 
+ 	/** Aquire the solar mutex. */
+-	class ALBSolarGuard : public ::vos::OGuard
++	class ALBSolarGuard : public osl::SolarMutexGuard
+ 	{
+ 	public:
+-    	inline ALBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
++    	inline ALBSolarGuard() : osl::SolarMutexGuard( Application::GetSolarMutex() ) {}
+ 	};
+ 
+ 	// class AccessibleIconChoiceCtrlEntry -----------------------------------------------------
+diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx b/accessibility/source/extended/accessiblelistboxentry.cxx
+index 48d06c2..2a1a407 100644
+--- accessibility/source/extended/accessiblelistboxentry.cxx
++++ accessibility/source/extended/accessiblelistboxentry.cxx
+@@ -119,10 +119,10 @@ namespace accessibility
+ 	// class ALBSolarGuard ---------------------------------------------------------
+ 
+ 	/** Aquire the solar mutex. */
+-	class ALBSolarGuard : public ::vos::OGuard
++	class ALBSolarGuard : public osl::SolarMutexGuard
+ 	{
+ 	public:
+-    	inline ALBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
++    	inline ALBSolarGuard() : osl::SolarMutexGuard( Application::GetSolarMutex() ) {}
+ 	};
+ 
+ 	// class AccessibleListBoxEntry -----------------------------------------------------
+diff --git a/accessibility/source/extended/accessibletablistbox.cxx b/accessibility/source/extended/accessibletablistbox.cxx
+index 54252b9..8f69a8b 100644
+--- accessibility/source/extended/accessibletablistbox.cxx
++++ accessibility/source/extended/accessibletablistbox.cxx
+@@ -58,10 +58,10 @@ namespace accessibility
+ 	// class TLBSolarGuard ---------------------------------------------------------
+ 
+ 	/** Aquire the solar mutex. */
+-	class TLBSolarGuard : public ::vos::OGuard
++	class TLBSolarGuard : public osl::SolarMutexGuard
+ 	{
+ 	public:
+-    	inline TLBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
++    	inline TLBSolarGuard() : osl::SolarMutexGuard( Application::GetSolarMutex() ) {}
+ 	};
+ 
+ 	// class AccessibleTabListBox -----------------------------------------------------
+diff --git a/accessibility/source/extended/accessibletablistboxtable.cxx b/accessibility/source/extended/accessibletablistboxtable.cxx
+index 9d0d492..23ea596 100644
+--- accessibility/source/extended/accessibletablistboxtable.cxx
++++ accessibility/source/extended/accessibletablistboxtable.cxx
+@@ -49,6 +49,8 @@
+ #include <svtools/svtabbx.hxx>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEEVENTID_HPP_
+ #include <com/sun/star/accessibility/AccessibleEventId.hpp>
+ #endif
+@@ -61,10 +63,10 @@ namespace accessibility
+ 	// class TLBSolarGuard ---------------------------------------------------------
+ 
+ 	/** Aquire the solar mutex. */
+-	class TLBSolarGuard : public ::vos::OGuard
++	class TLBSolarGuard : public osl::SolarMutexGuard
+ 	{
+ 	public:
+-    	inline TLBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
++    	inline TLBSolarGuard() : osl::SolarMutexGuard( Application::GetSolarMutex() ) {}
+ 	};
+ 
+ 	// class AccessibleTabListBoxTable ---------------------------------------------
+diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx
+index a0e4b02..5c35365 100644
+--- accessibility/source/standard/vclxaccessiblebox.cxx
++++ accessibility/source/standard/vclxaccessiblebox.cxx
+@@ -84,6 +84,8 @@
+ #include <accessibility/helper/accessiblestrings.hrc>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -251,7 +253,7 @@ Reference< XAccessibleContext > SAL_CALL VCLXAccessibleBox::getAccessibleContext
+ sal_Int32 SAL_CALL VCLXAccessibleBox::getAccessibleChildCount (void)
+     throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+     // Usually a box has a text field and a list of items as its children.
+@@ -275,7 +277,7 @@ sal_Int32 SAL_CALL VCLXAccessibleBox::getAccessibleChildCount (void)
+ Reference<XAccessible> SAL_CALL VCLXAccessibleBox::getAccessibleChild (sal_Int32 i)
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	if (i<0 || i>=getAccessibleChildCount())
+@@ -355,7 +357,7 @@ sal_Bool SAL_CALL VCLXAccessibleBox::doAccessibleAction (sal_Int32 nIndex)
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+         if (nIndex<0 || nIndex>=getAccessibleActionCount())
+diff --git a/accessibility/source/standard/vclxaccessiblelist.cxx b/accessibility/source/standard/vclxaccessiblelist.cxx
+index b02e2b8..e4991d4 100644
+--- accessibility/source/standard/vclxaccessiblelist.cxx
++++ accessibility/source/standard/vclxaccessiblelist.cxx
+@@ -75,6 +75,8 @@
+ #include "listboxhelper.hxx"
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -182,7 +184,7 @@ void VCLXAccessibleList::clearItems()
+ 
+ void VCLXAccessibleList::FillAccessibleStateSet (utl::AccessibleStateSetHelper& rStateSet)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+ 	// check if our list should be visible
+@@ -441,7 +443,7 @@ Reference<XAccessibleContext> SAL_CALL
+ sal_Int32 SAL_CALL VCLXAccessibleList::getAccessibleChildCount (void)
+     throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	sal_Int32 nCount = 0;
+@@ -455,7 +457,7 @@ sal_Int32 SAL_CALL VCLXAccessibleList::getAccessibleChildCount (void)
+ Reference<XAccessible> SAL_CALL VCLXAccessibleList::getAccessibleChild (sal_Int32 i)
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	if ( i < 0 || i >= getAccessibleChildCount() )
+@@ -506,7 +508,7 @@ sal_Int16 SAL_CALL VCLXAccessibleList::getAccessibleRole (void)
+ 
+ sal_Bool SAL_CALL VCLXAccessibleList::contains( const awt::Point& rPoint ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	sal_Bool bInside = sal_False;
+@@ -525,7 +527,7 @@ sal_Bool SAL_CALL VCLXAccessibleList::contains( const awt::Point& rPoint ) throw
+ Reference< XAccessible > SAL_CALL VCLXAccessibleList::getAccessibleAt( const awt::Point& rPoint )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	Reference< XAccessible > xChild;
+@@ -572,7 +574,7 @@ Sequence< ::rtl::OUString > VCLXAccessibleList::getSupportedServiceNames (void)
+ // -----------------------------------------------------------------------------
+ void VCLXAccessibleList::UpdateEntryRange_Impl()
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	sal_Int32 nTop = m_nLastTopEntry;
+@@ -622,7 +624,7 @@ void VCLXAccessibleList::UpdateSelection_Impl(USHORT)
+ 	uno::Any aOldValue, aNewValue;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 	    Reference< XAccessible > xNewAcc;
+ 
+@@ -686,7 +688,7 @@ void SAL_CALL VCLXAccessibleList::selectAccessibleChild( sal_Int32 nChildIndex )
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 		if ( m_pListBoxHelper )
+@@ -708,7 +710,7 @@ void SAL_CALL VCLXAccessibleList::selectAccessibleChild( sal_Int32 nChildIndex )
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL VCLXAccessibleList::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+     sal_Bool bRet = sal_False;
+@@ -726,7 +728,7 @@ void SAL_CALL VCLXAccessibleList::clearAccessibleSelection(  ) throw (RuntimeExc
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 		if ( m_pListBoxHelper )
+@@ -745,7 +747,7 @@ void SAL_CALL VCLXAccessibleList::selectAllAccessibleChildren(  ) throw (Runtime
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 		if ( m_pListBoxHelper )
+@@ -767,7 +769,7 @@ void SAL_CALL VCLXAccessibleList::selectAllAccessibleChildren(  ) throw (Runtime
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXAccessibleList::getSelectedAccessibleChildCount(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+     sal_Int32 nCount = 0;
+@@ -778,7 +780,7 @@ sal_Int32 SAL_CALL VCLXAccessibleList::getSelectedAccessibleChildCount(  ) throw
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL VCLXAccessibleList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	if ( m_pListBoxHelper )
+@@ -795,7 +797,7 @@ void SAL_CALL VCLXAccessibleList::deselectAccessibleChild( sal_Int32 nSelectedCh
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 		if ( m_pListBoxHelper )
+@@ -850,7 +852,7 @@ awt::Rectangle VCLXAccessibleList::implGetBounds() throw (uno::RuntimeException)
+ 
+ awt::Point VCLXAccessibleList::getLocationOnScreen(  ) throw (uno::RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	awt::Point aPos;
+diff --git a/accessibility/source/standard/vclxaccessiblelistboxlist.cxx b/accessibility/source/standard/vclxaccessiblelistboxlist.cxx
+index 8f2e4bc..4c2b5da 100644
+--- accessibility/source/standard/vclxaccessiblelistboxlist.cxx
++++ accessibility/source/standard/vclxaccessiblelistboxlist.cxx
+@@ -172,7 +172,7 @@ void VCLXAccessibleListBoxList::UpdateSelection_Impl()
+ 	uno::Any aOldValue, aNewValue;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 	    Reference< XAccessible > xNewAcc;
+ 
+@@ -238,7 +238,7 @@ void SAL_CALL VCLXAccessibleListBoxList::selectAccessibleChild( sal_Int32 nChild
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	    ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+@@ -260,7 +260,7 @@ void SAL_CALL VCLXAccessibleListBoxList::selectAccessibleChild( sal_Int32 nChild
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL VCLXAccessibleListBoxList::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+     sal_Bool bRet = sal_False;
+@@ -278,7 +278,7 @@ void SAL_CALL VCLXAccessibleListBoxList::clearAccessibleSelection(  ) throw (Run
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	    ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+@@ -298,7 +298,7 @@ void SAL_CALL VCLXAccessibleListBoxList::selectAllAccessibleChildren(  ) throw (
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	    ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+@@ -321,7 +321,7 @@ void SAL_CALL VCLXAccessibleListBoxList::selectAllAccessibleChildren(  ) throw (
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChildCount(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+     sal_Int32 nCount = 0;
+@@ -333,7 +333,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChildCount(
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+     ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+@@ -351,7 +351,7 @@ void SAL_CALL VCLXAccessibleListBoxList::deselectAccessibleChild( sal_Int32 nSel
+ 	sal_Bool bNotify = sal_False;
+ 
+ 	{
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	    ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+diff --git a/accessibility/source/standard/vclxaccessiblelistitem.cxx b/accessibility/source/standard/vclxaccessiblelistitem.cxx
+index 20c70b1..c23d80e 100644
+--- accessibility/source/standard/vclxaccessiblelistitem.cxx
++++ accessibility/source/standard/vclxaccessiblelistitem.cxx
+@@ -393,7 +393,7 @@ Reference< XAccessibleStateSet > SAL_CALL VCLXAccessibleListItem::getAccessibleS
+ // -----------------------------------------------------------------------------
+ Locale SAL_CALL VCLXAccessibleListItem::getLocale(  ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+     return implGetLocale();
+@@ -403,7 +403,7 @@ Locale SAL_CALL VCLXAccessibleListItem::getLocale(  ) throw (IllegalAccessibleCo
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL VCLXAccessibleListItem::containsPoint( const awt::Point& _aPoint ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	sal_Bool bInside = sal_False;
+@@ -423,7 +423,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleAtPoint(
+ // -----------------------------------------------------------------------------
+ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	awt::Rectangle aRect;
+@@ -435,7 +435,7 @@ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds(  ) throw (RuntimeExce
+ // -----------------------------------------------------------------------------
+ awt::Point SAL_CALL VCLXAccessibleListItem::getLocation(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	Point aPoint(0,0);
+@@ -449,7 +449,7 @@ awt::Point SAL_CALL VCLXAccessibleListItem::getLocation(  ) throw (RuntimeExcept
+ // -----------------------------------------------------------------------------
+ awt::Point SAL_CALL VCLXAccessibleListItem::getLocationOnScreen(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	Point aPoint(0,0);
+@@ -464,7 +464,7 @@ awt::Point SAL_CALL VCLXAccessibleListItem::getLocationOnScreen(  ) throw (Runti
+ // -----------------------------------------------------------------------------
+ awt::Size SAL_CALL VCLXAccessibleListItem::getSize(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	Size aSize;
+@@ -488,7 +488,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getCaretPosition() throw (RuntimeExce
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL VCLXAccessibleListItem::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+     if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+@@ -499,7 +499,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setCaretPosition( sal_Int32 nIndex ) t
+ // -----------------------------------------------------------------------------
+ sal_Unicode SAL_CALL VCLXAccessibleListItem::getCharacter( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getCharacter( nIndex );
+@@ -507,7 +507,7 @@ sal_Unicode SAL_CALL VCLXAccessibleListItem::getCharacter( sal_Int32 nIndex ) th
+ // -----------------------------------------------------------------------------
+ Sequence< PropertyValue > SAL_CALL VCLXAccessibleListItem::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	::rtl::OUString sText( implGetText() );
+@@ -519,7 +519,7 @@ Sequence< PropertyValue > SAL_CALL VCLXAccessibleListItem::getCharacterAttribute
+ // -----------------------------------------------------------------------------
+ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	::rtl::OUString sText( implGetText() );
+@@ -540,7 +540,7 @@ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getCharacterBounds( sal_Int32 nI
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXAccessibleListItem::getCharacterCount() throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getCharacterCount();
+@@ -548,7 +548,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getCharacterCount() throw (RuntimeExc
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXAccessibleListItem::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	sal_Int32 nIndex = -1;
+@@ -567,7 +567,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getIndexAtPoint( const awt::Point& aP
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL VCLXAccessibleListItem::getSelectedText() throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getSelectedText();
+@@ -575,7 +575,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getIndexAtPoint( const awt::Point& aP
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionStart() throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getSelectionStart();
+@@ -583,7 +583,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionStart() throw (RuntimeExc
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionEnd() throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getSelectionEnd();
+@@ -591,7 +591,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionEnd() throw (RuntimeExcep
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+     if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+@@ -602,7 +602,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL VCLXAccessibleListItem::getText() throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getText();
+@@ -610,7 +610,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL VCLXAccessibleListItem::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+@@ -618,7 +618,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
+ // -----------------------------------------------------------------------------
+ ::com::sun::star::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getTextAtIndex( nIndex, aTextType );
+@@ -626,7 +626,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
+ // -----------------------------------------------------------------------------
+ ::com::sun::star::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getTextBeforeIndex( nIndex, aTextType );
+@@ -634,7 +634,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
+ // -----------------------------------------------------------------------------
+ ::com::sun::star::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	return OCommonAccessibleText::getTextBehindIndex( nIndex, aTextType );
+@@ -642,7 +642,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL VCLXAccessibleListItem::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	checkIndex_Impl( nStartIndex, m_sEntryText );
+diff --git a/automation/inc/automation/communi.hxx b/automation/inc/automation/communi.hxx
+index 35c1729..42ed266 100644
+--- automation/inc/automation/communi.hxx
++++ automation/inc/automation/communi.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_TIMER_HXX
+ #include <vcl/timer.hxx>
+@@ -120,8 +120,8 @@ protected:
+ 	virtual BOOL ShutdownCommunication();
+ 	ULONG nConnectionClosedEventId;
+ 	ULONG nDataReceivedEventId;
+-	NAMESPACE_VOS(OMutex) aMConnectionClosed;	// Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+-	NAMESPACE_VOS(OMutex) aMDataReceived;		// Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
++	osl::Mutex aMConnectionClosed;	// Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
++	osl::Mutex aMDataReceived;		// Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+ 	virtual void WaitForShutdown();
+ 
+     DECL_LINK( ShutdownLink, void* );
+@@ -168,7 +168,7 @@ private:
+ 	ULONG nPortToListen;
+ 	USHORT nMaxConnections;
+ 	ULONG nAddConnectionEventId;
+-	NAMESPACE_VOS(OMutex) aMAddConnection;	// Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
++	osl::Mutex aMAddConnection;	// Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+ 	void CallInfoMsg( InfoString aMsg ){ pMyServer->CallInfoMsg( aMsg ); }
+ 	CM_InfoType GetInfoType(){ return pMyServer->GetInfoType(); }
+ 
+diff --git a/automation/source/communi/communi.cxx b/automation/source/communi/communi.cxx
+index 498ea8c..292b15a 100644
+--- automation/source/communi/communi.cxx
++++ automation/source/communi/communi.cxx
+@@ -87,7 +87,7 @@ _SV_SEEK_PTR( nm, AE )
+ 
+ SV_IMPL_PTRARR_SORT( CommunicationLinkList, CommunicationLink* );
+ 
+-NAMESPACE_VOS(OMutex) *pMPostUserEvent=NULL;		// Notwendig, da nicht threadfest
++osl::Mutex *pMPostUserEvent=NULL;		// Notwendig, da nicht threadfest
+ 
+ CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
+ : SimpleCommunicationLinkViaSocket( pMan, pSocket )
+@@ -98,7 +98,7 @@ CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pM
+ {
+     SetPutDataReceivedHdl(LINK( this, CommunicationLinkViaSocket, PutDataReceivedHdl ));
+     if ( !pMPostUserEvent )
+-        pMPostUserEvent = new NAMESPACE_VOS(OMutex);
++        pMPostUserEvent = new osl::Mutex;
+     // this is necassary to prevent the running thread from sending the close event
+     // before the open event has been sent.
+    	StartCallback();
+@@ -113,7 +113,7 @@ CommunicationLinkViaSocket::~CommunicationLinkViaSocket()
+ 	while ( nConnectionClosedEventId || nDataReceivedEventId )
+ 		GetpApp()->Yield();
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMConnectionClosed );
++		osl::MutexGuard aGuard( aMConnectionClosed );
+ 		if ( nConnectionClosedEventId )
+ 		{
+ 			GetpApp()->RemoveUserEvent( nConnectionClosedEventId );
+@@ -124,7 +124,7 @@ CommunicationLinkViaSocket::~CommunicationLinkViaSocket()
+ 		}
+ 	}
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMDataReceived );
++		osl::MutexGuard aGuard( aMDataReceived );
+ 		if ( nDataReceivedEventId )
+ 		{
+ 			GetpApp()->RemoveUserEvent( nDataReceivedEventId );
+@@ -230,8 +230,8 @@ void CommunicationLinkViaSocket::run()
+ 		SetNewPacketAsCurrent();
+ 		StartCallback();
+ 		{
+-			NAMESPACE_VOS(OGuard) aGuard( aMDataReceived );
+-            NAMESPACE_VOS(OGuard) aGuard2( *pMPostUserEvent );
++			osl::MutexGuard aGuard( aMDataReceived );
++            osl::MutexGuard aGuard2( *pMPostUserEvent );
+             mlPutDataReceived.Call(this);
+ 		}
+ 	}
+@@ -241,8 +241,8 @@ void CommunicationLinkViaSocket::run()
+ 
+     StartCallback();
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMConnectionClosed );
+-        NAMESPACE_VOS(OGuard) aGuard2( *pMPostUserEvent );
++		osl::MutexGuard aGuard( aMConnectionClosed );
++        osl::MutexGuard aGuard2( *pMPostUserEvent );
+ 		nConnectionClosedEventId = GetpApp()->PostUserEvent( LINK( this, CommunicationLinkViaSocket, ConnectionClosed ) );
+ 	}
+ }
+@@ -259,7 +259,7 @@ BOOL CommunicationLinkViaSocket::DoTransferDataStream( SvStream *pDataStream, CM
+ long CommunicationLinkViaSocket::ConnectionClosed( void* EMPTYARG )
+ {
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMConnectionClosed );
++		osl::MutexGuard aGuard( aMConnectionClosed );
+ 		nConnectionClosedEventId = 0;	// Achtung!! alles andere mu� oben gemacht werden.
+ 	}
+ 	ShutdownCommunication();
+@@ -270,7 +270,7 @@ long CommunicationLinkViaSocket::ConnectionClosed( void* EMPTYARG )
+ long CommunicationLinkViaSocket::DataReceived( void* EMPTYARG )
+ {
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMDataReceived );
++		osl::MutexGuard aGuard( aMDataReceived );
+ 		nDataReceivedEventId = 0;	// Achtung!! alles andere mu� oben gemacht werden.
+ 	}
+ 	return CommunicationLink::DataReceived( );
+@@ -474,7 +474,7 @@ CommunicationManagerServerAcceptThread::CommunicationManagerServerAcceptThread(
+ , xmNewConnection( NULL )
+ {
+     if ( !pMPostUserEvent )
+-        pMPostUserEvent = new NAMESPACE_VOS(OMutex);
++        pMPostUserEvent = new osl::Mutex;
+ 	create();
+ }
+ 
+@@ -501,7 +501,7 @@ CommunicationManagerServerAcceptThread::~CommunicationManagerServerAcceptThread(
+ 	DEBUGPRINTF ("Destructor CommunicationManagerServerAcceptThread �bersprungen!!!! (wegen Solaris BUG)\n");
+ #endif
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMAddConnection );
++		osl::MutexGuard aGuard( aMAddConnection );
+ 		if ( nAddConnectionEventId )
+ 		{
+ 			GetpApp()->RemoveUserEvent( nAddConnectionEventId );
+@@ -552,8 +552,8 @@ void CommunicationManagerServerAcceptThread::run()
+ 				xmNewConnection = new CommunicationLinkViaSocket( pMyServer, pStreamSocket );
+ 				xmNewConnection->StartCallback();
+ 				{
+-					NAMESPACE_VOS(OGuard) aGuard( aMAddConnection );
+-                    NAMESPACE_VOS(OGuard) aGuard2( *pMPostUserEvent );
++					osl::MutexGuard aGuard( aMAddConnection );
++                    osl::MutexGuard aGuard2( *pMPostUserEvent );
+ 					nAddConnectionEventId = GetpApp()->PostUserEvent( LINK( this, CommunicationManagerServerAcceptThread, AddConnection ) );
+ 				}
+ 			}
+@@ -578,7 +578,7 @@ void CommunicationManagerServerAcceptThread::run()
+ IMPL_LINK( CommunicationManagerServerAcceptThread, AddConnection, void*, EMPTYARG )
+ {
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( aMAddConnection );
++		osl::MutexGuard aGuard( aMAddConnection );
+ 		nAddConnectionEventId = 0;
+ 	}
+ 	pMyServer->AddConnection( xmNewConnection );
+diff --git a/automation/source/simplecm/tcpio.cxx b/automation/source/simplecm/tcpio.cxx
+index d840ab5..d546690 100644
+--- automation/source/simplecm/tcpio.cxx
++++ automation/source/simplecm/tcpio.cxx
+@@ -41,7 +41,7 @@
+ /// implement ITransmiter
+ comm_USHORT TCPIO::TransferBytes( const void* pBuffer, comm_UINT32 nLen )
+ {
+-    vos::OGuard aGuard( aMSocketWriteAccess );
++    osl::MutexGuard aGuard( aMSocketWriteAccess );
+     if ( !pStreamSocket )
+ 	{
+ 		nLastSent = 0;
+@@ -57,7 +57,7 @@ comm_USHORT TCPIO::TransferBytes( const void* pBuffer, comm_UINT32 nLen )
+ /// implement IReceiver
+ comm_USHORT TCPIO::ReceiveBytes( void* pBuffer, comm_UINT32 nLen )
+ {
+-    vos::OGuard aGuard( aMSocketReadAccess );
++    osl::MutexGuard aGuard( aMSocketReadAccess );
+ 	if ( !pStreamSocket )
+ 	{
+ 		nLastReceived = 0;
+@@ -73,7 +73,7 @@ comm_USHORT TCPIO::ReceiveBytes( void* pBuffer, comm_UINT32 nLen )
+ // helper
+ void TCPIO::SetStreamSocket( NAMESPACE_VOS(OStreamSocket) *pSocket )
+ {
+-    vos::OGuard aRGuard( aMSocketReadAccess );
+-    vos::OGuard aWGuard( aMSocketWriteAccess );
++    osl::MutexGuard aRGuard( aMSocketReadAccess );
++    osl::MutexGuard aWGuard( aMSocketWriteAccess );
+     pStreamSocket = pSocket;    
+ }
+diff --git a/automation/source/simplecm/tcpio.hxx b/automation/source/simplecm/tcpio.hxx
+index 72cffb3..bb41764 100644
+--- automation/source/simplecm/tcpio.hxx
++++ automation/source/simplecm/tcpio.hxx
+@@ -40,8 +40,8 @@
+ #include <vos/socket.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include "communiio.hxx"
+@@ -50,8 +50,8 @@ class TCPIO : public ITransmiter, public IReceiver
+ {
+ private:
+ 	NAMESPACE_VOS(OStreamSocket) *pStreamSocket;
+-    vos::OMutex aMSocketReadAccess;
+-    vos::OMutex aMSocketWriteAccess;
++    osl::Mutex aMSocketReadAccess;
++    osl::Mutex aMSocketWriteAccess;
+ 
+ public:
+ 
+diff --git a/avmedia/source/viewer/mediaevent_impl.cxx b/avmedia/source/viewer/mediaevent_impl.cxx
+index 5f2cf90..496a25e 100644
+--- avmedia/source/viewer/mediaevent_impl.cxx
++++ avmedia/source/viewer/mediaevent_impl.cxx
+@@ -36,7 +36,7 @@
+ #include "mediaevent_impl.hxx"
+ #include "mediawindow_impl.hxx"
+ #include <osl/mutex.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/event.hxx>
+ 
+@@ -81,7 +81,7 @@ void SAL_CALL MediaEventListenersImpl::keyPressed( const ::com::sun::star::awt::
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -101,7 +101,7 @@ void SAL_CALL MediaEventListenersImpl::keyReleased( const ::com::sun::star::awt:
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -120,7 +120,7 @@ void SAL_CALL MediaEventListenersImpl::mousePressed( const ::com::sun::star::awt
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -141,7 +141,7 @@ void SAL_CALL MediaEventListenersImpl::mouseReleased( const ::com::sun::star::aw
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -162,7 +162,7 @@ void SAL_CALL MediaEventListenersImpl::mouseEntered( const ::com::sun::star::awt
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -175,7 +175,7 @@ void SAL_CALL MediaEventListenersImpl::mouseExited( const ::com::sun::star::awt:
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -188,7 +188,7 @@ void SAL_CALL MediaEventListenersImpl::mouseDragged( const ::com::sun::star::awt
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+@@ -203,7 +203,7 @@ void SAL_CALL MediaEventListenersImpl::mouseMoved( const ::com::sun::star::awt::
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+     const ::osl::MutexGuard aGuard( maMutex );
+-    const ::vos::OGuard aAppGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aAppGuard( Application::GetSolarMutex() );
+ 
+     if( mpNotifyWindow )
+     {
+diff --git a/basctl/source/basicide/unomodel.cxx b/basctl/source/basicide/unomodel.cxx
+index 6ccfc94..75a153b 100644
+--- basctl/source/basicide/unomodel.cxx
++++ basctl/source/basicide/unomodel.cxx
+@@ -38,8 +38,8 @@
+ 
+ #include "unomodel.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -82,13 +82,13 @@ uno::Any SAL_CALL SIDEModel::queryInterface( const uno::Type& rType ) throw(uno:
+ 
+ void SAL_CALL SIDEModel::acquire() throw()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OWeakObject::acquire();
+ }
+ 
+ void SAL_CALL SIDEModel::release() throw()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OWeakObject::release();
+ }
+ 
+@@ -133,7 +133,7 @@ uno::Sequence< OUString > SIDEModel::getSupportedServiceNames_Static(void)
+ uno::Reference< uno::XInterface > SAL_CALL SIDEModel_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	BasicIDEDLL::Init();
+ 	SfxObjectShell* pShell = new BasicDocShell();
+ 	return uno::Reference< uno::XInterface >( pShell->GetModel() );
+diff --git a/basctl/source/dlged/dlgedclip.cxx b/basctl/source/dlged/dlgedclip.cxx
+index e320fc2..800990f 100644
+--- basctl/source/dlged/dlgedclip.cxx
++++ basctl/source/dlged/dlgedclip.cxx
+@@ -40,8 +40,8 @@
+ #include "dlgedclip.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -126,7 +126,7 @@ sal_Bool DlgEdTransferableImpl::compareDataFlavors( const DataFlavor& lFlavor, c
+ 
+ Any SAL_CALL DlgEdTransferableImpl::getTransferData( const DataFlavor& rFlavor ) throw(UnsupportedFlavorException, IOException, RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( !isDataFlavorSupported( rFlavor ) )
+         throw UnsupportedFlavorException();
+@@ -149,7 +149,7 @@ Any SAL_CALL DlgEdTransferableImpl::getTransferData( const DataFlavor& rFlavor )
+ 
+ Sequence< DataFlavor > SAL_CALL DlgEdTransferableImpl::getTransferDataFlavors(  ) throw(RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return m_SeqFlavors;
+ }
+@@ -158,7 +158,7 @@ Sequence< DataFlavor > SAL_CALL DlgEdTransferableImpl::getTransferDataFlavors(
+ 
+ sal_Bool SAL_CALL DlgEdTransferableImpl::isDataFlavorSupported( const DataFlavor& rFlavor ) throw(RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Bool bRet = sal_False;
+ 
+@@ -179,7 +179,7 @@ sal_Bool SAL_CALL DlgEdTransferableImpl::isDataFlavorSupported( const DataFlavor
+ 
+ void SAL_CALL DlgEdTransferableImpl::lostOwnership( const Reference< XClipboard >&, const Reference< XTransferable >& ) throw(RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     m_SeqFlavors = Sequence< DataFlavor >();
+     m_SeqData = Sequence< Any >();
+diff --git a/basic/inc/pch/precompiled_basic.hxx b/basic/inc/pch/precompiled_basic.hxx
+index ca62d59..1808ad3 100644
+--- basic/inc/pch/precompiled_basic.hxx
++++ basic/inc/pch/precompiled_basic.hxx
+@@ -285,7 +285,7 @@
+ 
+ #include "osl/diagnose.h"
+ #include "vos/macros.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ 
+ #include "xmlscript/xmldlg_imexp.hxx"
+ #include "xmlscript/xmllib_imexp.hxx"
+diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
+index 1558147..4b39dfe 100644
+--- basic/source/classes/sb.cxx
++++ basic/source/classes/sb.cxx
+@@ -75,8 +75,8 @@
+ #include "sb.hrc"
+ #include <basrid.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ // #pragma SW_SEGMENT_CLASS( SBASIC, SBASIC_CODE )
+@@ -1228,7 +1228,7 @@ BOOL runsInSetup( void )
+ 
+ void StarBASIC::MakeErrorText( SbError nId, const String& aMsg )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	if( bStaticSuppressSfxResource )
+ 	{
+@@ -1271,7 +1271,7 @@ void StarBASIC::MakeErrorText( SbError nId, const String& aMsg )
+ BOOL StarBASIC::CError
+ 	( SbError code, const String& rMsg, USHORT l, USHORT c1, USHORT c2 )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	// Compiler-Fehler waehrend der Laufzeit -> Programm anhalten
+ 	if( IsRunning() )
+@@ -1313,7 +1313,7 @@ BOOL StarBASIC::RTError
+ 
+ BOOL StarBASIC::RTError( SbError code, const String& rMsg, USHORT l, USHORT c1, USHORT c2 )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	SbError c = code;
+ 	if( (c & ERRCODE_CLASS_MASK) == ERRCODE_CLASS_COMPILER )
+diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
+index 95923c6..d79ac95 100644
+--- basic/source/classes/sbunoobj.cxx
++++ basic/source/classes/sbunoobj.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_basic.hxx"
+ //#include <stl_queue.h>
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -3402,7 +3402,7 @@ BasicAllListener_Impl::~BasicAllListener_Impl()
+ 
+ void BasicAllListener_Impl::firing_impl( const AllEventObject& Event, Any* pRet )
+ {
+-	NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+ 
+ 	if( xSbxObj.Is() )
+ 	{
+@@ -3467,7 +3467,7 @@ Any BasicAllListener_Impl::approveFiring( const AllEventObject& Event ) throw (
+ // Methoden von XEventListener
+ void BasicAllListener_Impl ::disposing(const EventObject& ) throw ( RuntimeException )
+ {
+-	NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+ 
+ 	xSbxObj.Clear();
+ }
+diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
+index 8be7fec..ee6f507 100644
+--- basic/source/classes/sbxmod.cxx
++++ basic/source/classes/sbxmod.cxx
+@@ -63,8 +63,8 @@
+ #include <basic/hilight.hxx>
+ #include <basic/basrdll.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ // for the bsearch
+@@ -836,7 +836,7 @@ USHORT SbModule::Run( SbMethod* pMeth )
+ 				delete pINST, pINST = NULL, bDelInst = FALSE;
+ 
+ 				// #i30690
+-				vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++				osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 				SendHint( GetParent(), SBX_HINT_BASICSTOP, pMeth );
+ 
+ 		        GlobalRunDeInit();
+diff --git a/basic/source/runtime/iosys.cxx b/basic/source/runtime/iosys.cxx
+index 15fd60b..f43f3f1 100644
+--- basic/source/runtime/iosys.cxx
++++ basic/source/runtime/iosys.cxx
+@@ -55,8 +55,8 @@
+ #include <osl/file.hxx>
+ #include <tools/urlobj.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include "runtime.hxx"
+@@ -1069,7 +1069,7 @@ void SbiIoSystem::WriteCon( const ByteString& rText )
+ 			aOut.Erase( 0, 1 );
+ 		String aStr( s, gsl_getSystemTextEncoding() );
+         {
+-            vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		    if( !MessBox( GetpApp()->GetDefDialogParent(),
+ 					    WinBits( WB_OK_CANCEL | WB_DEF_OK ),
+ 					    String(), aStr ).Execute() )
+diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
+index 79f0198..1c2d4dd 100644
+--- basic/source/uno/namecont.cxx
++++ basic/source/uno/namecont.cxx
+@@ -55,8 +55,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef __RSC //autogen
+ #include <tools/errinf.hxx>
+diff --git a/binfilter/bf_basic/source/classes/sb.cxx b/binfilter/bf_basic/source/classes/sb.cxx
+index 3c6801e..753227c 100644
+--- binfilter/bf_basic/source/classes/sb.cxx
++++ binfilter/bf_basic/source/classes/sb.cxx
+@@ -70,8 +70,8 @@
+ /*?*/ //#include "sb.hrc"
+ /*?*/ //#include "basrid.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ namespace binfilter {
+@@ -1207,7 +1207,7 @@ BOOL runsInSetup( void )
+ 
+ void StarBASIC::MakeErrorText( SbError nId, const String& /*aMsg*/ )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	if( bStaticSuppressSfxResource )
+ 	{
+@@ -1251,7 +1251,7 @@ void StarBASIC::MakeErrorText( SbError nId, const String& /*aMsg*/ )
+ BOOL StarBASIC::CError
+ 	( SbError code, const String& rMsg, USHORT l, USHORT c1, USHORT c2 )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	// Compiler-Fehler waehrend der Laufzeit -> Programm anhalten
+ 	if( IsRunning() )
+@@ -1293,7 +1293,7 @@ BOOL StarBASIC::RTError
+ 
+ BOOL StarBASIC::RTError( SbError code, const String& rMsg, USHORT l, USHORT c1, USHORT c2 )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	SbError c = code;
+ 	if( (c & ERRCODE_CLASS_MASK) == ERRCODE_CLASS_COMPILER )
+diff --git a/binfilter/bf_basic/source/classes/sbunoobj.cxx b/binfilter/bf_basic/source/classes/sbunoobj.cxx
+index 836d4a4..cfa21f5 100644
+--- binfilter/bf_basic/source/classes/sbunoobj.cxx
++++ binfilter/bf_basic/source/classes/sbunoobj.cxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -3255,7 +3255,7 @@ BasicAllListener_Impl::~BasicAllListener_Impl()
+ 
+ void BasicAllListener_Impl::firing_impl( const AllEventObject& Event, Any* pRet )
+ {
+-	NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+ 
+ 	if( xSbxObj.Is() )
+ 	{
+@@ -3320,7 +3320,7 @@ Any BasicAllListener_Impl::approveFiring( const AllEventObject& Event ) throw (
+ // Methoden von XEventListener
+ void BasicAllListener_Impl ::disposing(const EventObject& ) throw ( RuntimeException )
+ {
+-	NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+ 
+ 	xSbxObj.Clear();
+ }
+diff --git a/binfilter/bf_basic/source/classes/sbxmod.cxx b/binfilter/bf_basic/source/classes/sbxmod.cxx
+index d37200c..9a6b628 100644
+--- binfilter/bf_basic/source/classes/sbxmod.cxx
++++ binfilter/bf_basic/source/classes/sbxmod.cxx
+@@ -57,7 +57,7 @@
+ /*?*/ // #include "hilight.hxx"
+ #include "basrdll.hxx"
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <rtl/ustring.hxx>
+ 
+ // for the bsearch
+@@ -793,7 +793,7 @@ USHORT SbModule::Run( SbMethod* /*pMeth*/ )
+ /*?*/ // 				delete pINST, pINST = NULL, bDelInst = FALSE;
+ /*?*/ // 
+ /*?*/ // 				// #i30690
+-/*?*/ // 				vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++/*?*/ // 				osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ /*?*/ // 				SendHint( GetParent(), SBX_HINT_BASICSTOP, pMeth );
+ /*?*/ // 
+ /*?*/ // 		        GlobalRunDeInit();
+diff --git a/binfilter/bf_forms/source/component/forms_DatabaseForm.cxx b/binfilter/bf_forms/source/component/forms_DatabaseForm.cxx
+index 5a5d255..071a7ba 100644
+--- binfilter/bf_forms/source/component/forms_DatabaseForm.cxx
++++ binfilter/bf_forms/source/component/forms_DatabaseForm.cxx
+@@ -150,9 +150,11 @@
+ #ifndef _INETTYPE_HXX
+ #include <svtools/inettype.hxx>
+ #endif
+-#ifndef _SV_SVAPP_HXX	// because of the solar mutex
++
++// because of the solar mutex
+ #include <vcl/svapp.hxx>
+-#endif
++#include <osl/mutex.hxx>
++
+ #ifndef _RTL_TENCINFO_H
+ #include <rtl/tencinfo.h>
+ #endif
+@@ -2241,7 +2243,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 	::rtl::OUString aTargetName;
+ 	Reference< XModel >  xModel;
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		// starform->Forms
+ 
+ 		Reference<XChild>  xParent(m_xParent, UNO_QUERY);
+@@ -2273,7 +2275,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 	{
+ 		::rtl::OUString aData;
+ 		{
+-			::vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 			aData = GetDataURLEncoded( Control, MouseEvt );
+ 		}
+ 
+@@ -2351,7 +2353,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 			::rtl::OUString aContentType;
+ 			Sequence<sal_Int8> aData;
+ 			{
+-				::vos::OGuard aGuard( Application::GetSolarMutex() );
++				osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 				aData = GetDataMultiPartEncoded(Control, MouseEvt, aContentType);
+ 			}
+ 			if (!aData.getLength())
+@@ -2376,7 +2378,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 	{
+ 		::rtl::OUString aData;
+ 		{
+-			::vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 			aData = GetDataTextEncoded( Reference<XControl> (), MouseEvt );
+ 		}
+ 
+diff --git a/binfilter/bf_forms/source/component/forms_FormattedField.cxx b/binfilter/bf_forms/source/component/forms_FormattedField.cxx
+index e9ecf9c..bf0eb83 100644
+--- binfilter/bf_forms/source/component/forms_FormattedField.cxx
++++ binfilter/bf_forms/source/component/forms_FormattedField.cxx
+@@ -116,8 +116,8 @@
+ #ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
+ #include <com/sun/star/container/XIndexAccess.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 	// needed as long as we use the SolarMutex
+ #ifndef _COMPHELPER_STREAMSECTION_HXX_
+@@ -756,7 +756,7 @@ void OFormattedModel::loaded(const EventObject& rEvent) throw ( ::com::sun::star
+ 	// the only "clean" solution for me.
+ 	// FS - 69603 - 02.11.99
+ 
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OEditBaseModel::loaded(rEvent);
+ }
+ 
+diff --git a/binfilter/bf_forms/source/component/forms_Image.cxx b/binfilter/bf_forms/source/component/forms_Image.cxx
+index 50ae16e..657dd66 100644
+--- binfilter/bf_forms/source/component/forms_Image.cxx
++++ binfilter/bf_forms/source/component/forms_Image.cxx
+@@ -68,8 +68,8 @@
+ #ifndef _SFX_OBJSH_HXX //autogen
+ #include <bf_sfx2/objsh.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _FRM_SERVICES_HXX_
+@@ -316,7 +316,7 @@ void OImageControl::actionPerformed_Impl(sal_Bool bNotifyListener, const ::com::
+     InterfaceRef  xParent;
+     FormButtonType eButtonType;
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // Parent holen
+         Reference<XFormComponent>  xComp(getModel(), UNO_QUERY);
+@@ -359,7 +359,7 @@ void OImageControl::actionPerformed_Impl(sal_Bool bNotifyListener, const ::com::
+ 
+         case FormButtonType_URL:
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             Reference< XModel >  xModel = getXModel(xParent);
+             if (!xModel.is())
+diff --git a/binfilter/bf_sc/source/core/data/sc_documen3.cxx b/binfilter/bf_sc/source/core/data/sc_documen3.cxx
+index d3eed7e..8389afd 100644
+--- binfilter/bf_sc/source/core/data/sc_documen3.cxx
++++ binfilter/bf_sc/source/core/data/sc_documen3.cxx
+@@ -121,6 +121,8 @@
+ #include "hints.hxx"
+ #include "dpobject.hxx"
+ 
++#include <osl/mutex.hxx>
++
+ namespace binfilter {
+ using namespace ::com::sun::star;
+ 
+@@ -416,7 +418,7 @@ using namespace ::com::sun::star;
+ /*?*/ 			//	This check is done after calling EndListening, so a later BroadcastUno call
+ /*?*/ 			//	won't touch this object.
+ /*?*/ 
+-/*?*/ 			vos::IMutex& rSolarMutex = Application::GetSolarMutex();
++/*?*/ 			osl::SolarMutex& rSolarMutex = Application::GetSolarMutex();
+ /*?*/ 			if ( rSolarMutex.tryToAcquire() )
+ /*?*/ 			{
+ /*?*/ 				//	BroadcastUno is always called with the SolarMutex locked, so if it
+diff --git a/binfilter/bf_sc/source/core/tool/sc_refreshtimer.cxx b/binfilter/bf_sc/source/core/tool/sc_refreshtimer.cxx
+index 940d421..3049371 100644
+--- binfilter/bf_sc/source/core/tool/sc_refreshtimer.cxx
++++ binfilter/bf_sc/source/core/tool/sc_refreshtimer.cxx
+@@ -50,7 +50,7 @@ namespace binfilter {
+ /*N*/ 	{
+ /*N*/ 		(*ppControl)->SetAllowRefresh( FALSE );
+ /*N*/ 		// wait for any running refresh in another thread to finnish
+-/*N*/ 		::vos::OGuard aGuard( (*ppControl)->GetMutex() );
++/*N*/ 		::osl::MutexGuard aGuard( (*ppControl)->GetMutex() );
+ /*N*/ 	}
+ /*N*/ }
+ 
+diff --git a/binfilter/bf_sc/source/ui/unoobj/sc_unodoc.cxx b/binfilter/bf_sc/source/ui/unoobj/sc_unodoc.cxx
+index cc23dfd..3db7791 100644
+--- binfilter/bf_sc/source/ui/unoobj/sc_unodoc.cxx
++++ binfilter/bf_sc/source/ui/unoobj/sc_unodoc.cxx
+@@ -39,8 +39,8 @@
+ 
+ #include "scmod.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -65,7 +65,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL ScDocument_getSupportedServiceNames()
+ uno::Reference< uno::XInterface > SAL_CALL ScDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SC_MOD(), "No StarCalc module!" );
+diff --git a/binfilter/bf_sc/source/ui/unoobj/sc_unoguard.cxx b/binfilter/bf_sc/source/ui/unoobj/sc_unoguard.cxx
+index c17d7fc..014138e 100644
+--- binfilter/bf_sc/source/ui/unoobj/sc_unoguard.cxx
++++ binfilter/bf_sc/source/ui/unoobj/sc_unoguard.cxx
+@@ -46,7 +46,7 @@ namespace binfilter {
+ //------------------------------------------------------------------------
+ 
+ ScUnoGuard::ScUnoGuard() :
+-	OGuard( Application::GetSolarMutex() )
++	osl::SolarMutexGuard( Application::GetSolarMutex() )
+ {
+ }
+ 
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx
+index 0a36403..589c2e8 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx
+@@ -38,7 +38,6 @@
+ #endif
+ #include "schattr.hxx"
+ 
+-// header for class OGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -92,7 +91,6 @@
+ 
+ namespace binfilter {
+ 
+-using namespace vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -117,7 +115,7 @@ throw( uno::RuntimeException )
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartAxis::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< ::rtl::OUString > aSeq( 4 );
+ 	aSeq[ 0 ] = ::rtl::OUString::createFromAscii( "com.sun.star.chart.ChartAxis" );
+@@ -171,7 +169,7 @@ void ChXChartAxis::InitNumberFormatter() throw( uno::RuntimeException )
+ // XNumberFormatsSupplier
+ uno::Reference< beans::XPropertySet > SAL_CALL ChXChartAxis::getNumberFormatSettings() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	InitNumberFormatter();
+ 
+ 	return rNumberFormatter.get()->getNumberFormatSettings();
+@@ -179,7 +177,7 @@ uno::Reference< beans::XPropertySet > SAL_CALL ChXChartAxis::getNumberFormatSett
+ 
+ uno::Reference< util::XNumberFormats > SAL_CALL ChXChartAxis::getNumberFormats() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	InitNumberFormatter();
+ 
+ 	return rNumberFormatter.get()->getNumberFormats();
+@@ -267,7 +265,7 @@ uno::Any SAL_CALL ChXChartAxis::getPropertyValue( const ::rtl::OUString& Propert
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	if( mpModel )
+     {
+@@ -321,7 +319,7 @@ void SAL_CALL ChXChartAxis::setPropertyValue( const ::rtl::OUString& aPropertyNa
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	if( mpModel && mnWhichId != CHOBJID_ANY )
+ 	{
+@@ -604,7 +602,7 @@ void SAL_CALL ChXChartAxis::setPropertyValues	(
+ 			lang::WrappedTargetException,
+ 			uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	
+ 	if (mpModel == NULL || mnWhichId == CHOBJID_ANY)
+ 		return;
+@@ -855,7 +853,7 @@ Sequence<PropertyState > SAL_CALL ChXChartAxis::getPropertyStates(
+ 		throw( UnknownPropertyException,
+ 			   RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const sal_Int32 nCount = aPropertyNames.getLength();
+ 	const ::rtl::OUString * pName = aPropertyNames.getConstArray();
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx
+index 18fc5a9..704f9e4 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx
+@@ -39,7 +39,6 @@
+ #ifndef SVX_UNOPROV_HXX
+ #include <bf_svx/unoprov.hxx>
+ #endif
+-// header for class OGuard
+ // header for rtl_createUuid
+ #ifndef _RTL_UUID_H_
+ #include <rtl/uuid.h>
+@@ -57,7 +56,6 @@ namespace binfilter {
+ #define SCH_ASCII_TO_OU( s )  ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( s ) )
+ #endif
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ 
+ #define SCH_BIN_MIN(a,b) ( ((a)<(b))? (a) : (b) )
+@@ -269,7 +267,7 @@ uno::Sequence< uno::Sequence< double > > SAL_CALL ChXChartDataArray::getData() t
+ 	if( ! mpModel )
+ 		return uno::Sequence< uno::Sequence< double > >();
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	double *pData;
+ 
+@@ -307,7 +305,7 @@ void SAL_CALL ChXChartDataArray::setData( const uno::Sequence< uno::Sequence< do
+ 	if( ! mpModel )
+ 		return;
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// get number of rows/columns
+ 	const uno::Sequence< double >* pSequence = aData.getConstArray();
+@@ -363,7 +361,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataArray::getRowDescriptions(
+ 	if( ! mpModel )
+ 		return uno::Sequence< ::rtl::OUString >();
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SchMemChart* pDocData = mpModel->GetChartData();
+ 	sal_Int32 nRow, nRowCnt = pDocData->GetRowCount();
+@@ -386,7 +384,7 @@ void SAL_CALL ChXChartDataArray::setRowDescriptions( const uno::Sequence< ::rtl:
+ 	if( ! mpModel )
+ 		return;
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SchMemChart* pDocData = mpModel->GetChartData();
+ 	sal_Int32 nRow, nRowCnt = SCH_BIN_MIN( (sal_Int32)pDocData->GetRowCount(), aRowDescriptions.getLength() );
+@@ -405,7 +403,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataArray::getColumnDescriptio
+ 	if( ! mpModel )
+ 		return uno::Sequence< ::rtl::OUString >();
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SchMemChart* pDocData = mpModel->GetChartData();
+ 	sal_Int32 nCol, nColCnt = pDocData->GetColCount();
+@@ -426,7 +424,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataArray::getColumnDescriptio
+ 	if( ! mpModel )
+ 		return;
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SchMemChart* pDocData = mpModel->GetChartData();
+ 	sal_Int32 nCol, nColCnt = SCH_BIN_MIN( (sal_Int32)pDocData->GetColCount(), aColumnDescriptions.getLength() );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx
+index be12d56..c130e44 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx
+@@ -37,9 +37,9 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-// header for class OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++// header for class osl::SolarMutexGuard
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include "ChXChartDataChangeEventListener.hxx"
+@@ -52,7 +52,6 @@ namespace binfilter {
+ 
+ // using namespace osl;
+ using namespace rtl;
+-using namespace vos;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+@@ -64,14 +63,14 @@ ChXChartDataChangeEventListener::ChXChartDataChangeEventListener()
+ 
+ void ChXChartDataChangeEventListener::SetOwner( ChXChartDocument* pXDoc ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	mpXDoc = pXDoc;
+ }
+ 
+ void ChXChartDataChangeEventListener::Reset() throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	mpXDoc = NULL;
+ }
+ 
+@@ -79,7 +78,7 @@ void ChXChartDataChangeEventListener::Reset() throw()
+ void SAL_CALL ChXChartDataChangeEventListener::chartDataChanged( const chart::ChartDataChangeEvent& aEvent )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpXDoc )
+ 		mpXDoc->RefreshData( aEvent );
+ }
+@@ -110,7 +109,7 @@ sal_Bool SAL_CALL ChXChartDataChangeEventListener::supportsService( const OUStri
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataChangeEventListener::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< OUString > aServSeq( 0 );
+ 	return aServSeq;
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx
+index f7ccf21..8dffcc0 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx
+@@ -83,7 +83,6 @@
+ #include <svtools/numuno.hxx>
+ #endif
+ 
+-// header for class OGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -115,7 +114,6 @@ namespace binfilter {
+ 
+ extern SchUnoPropertyMapProvider aSchMapProvider;
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ using ::rtl::OUString;
+ 
+@@ -137,7 +135,7 @@ ChXChartDocument::ChXChartDocument( SchChartDocShell* pShell ) :
+ {
+ 	if( pShell )
+ 	{
+-		OGuard aSolarGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 
+ 		m_pDocShell = pShell;
+ 		if( m_pDocShell->GetModelPtr())
+@@ -183,7 +181,7 @@ ChXChartDocument::~ChXChartDocument()
+ void ChXChartDocument::setDiagramType( const ::rtl::OUString& aType,
+ 									   sal_Bool bKeepAddin /* = sal_False */ ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	if( ! m_pModel )
+ 		return;
+@@ -552,7 +550,7 @@ void SAL_CALL ChXChartDocument::setPropertyValue( const ::rtl::OUString& aProper
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	if( m_pModel )
+ 	{
+@@ -746,7 +744,7 @@ uno::Any SAL_CALL ChXChartDocument::getPropertyValue( const ::rtl::OUString& aPr
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	uno::Any aAny;
+ 	if( m_pModel )
+@@ -1043,7 +1041,7 @@ void SAL_CALL ChXChartDocument::setDiagram( const uno::Reference< chart::XDiagra
+ 		// use AddIn
+ 		if( m_pModel )
+ 		{
+-			OGuard aGuard( Application::GetSolarMutex());
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 			m_pModel->SetChartAddIn( xAddIn );
+ 
+ 			// initialize AddIn with this as chart document
+@@ -1090,7 +1088,7 @@ void SAL_CALL ChXChartDocument::setDiagram( const uno::Reference< chart::XDiagra
+ 		// clear addin
+ 		if( m_pModel )
+ 		{
+-			OGuard aGuard( Application::GetSolarMutex());
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+             uno::Reference< util::XRefreshable > xRefreshable;
+             m_pModel->SetChartAddIn( xRefreshable );
+ 		}
+@@ -1123,7 +1121,7 @@ void SAL_CALL ChXChartDocument::setDiagram( const uno::Reference< chart::XDiagra
+ 						// update local model
+ 						if( m_pModel )
+ 						{
+-							OGuard aGuard( Application::GetSolarMutex());
++							osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 							m_pModel = m_pDocShell->GetModelPtr();
+ 						}
+ 					}
+@@ -1251,7 +1249,7 @@ void SAL_CALL ChXChartDocument::lockControllers() throw( uno::RuntimeException )
+ {
+ 	if( m_pModel )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 		m_pModel->LockBuild();
+ 	}
+     else
+@@ -1262,7 +1260,7 @@ void SAL_CALL ChXChartDocument::unlockControllers() throw( uno::RuntimeException
+ {
+ 	if( m_pModel )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 		m_pModel->UnlockBuild();
+ 	}
+ 	else
+@@ -1273,7 +1271,7 @@ sal_Bool SAL_CALL ChXChartDocument::hasControllersLocked() throw( uno::RuntimeEx
+ {
+ 	if( m_pModel )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 		return m_pModel->IsLockedBuild();
+ 	}
+ 	else
+@@ -1413,7 +1411,7 @@ void ChXChartDocument::InitNumberFormatter() throw( uno::RuntimeException )
+ 	{
+ 		if( m_pModel )
+ 		{
+-			OGuard aGuard( Application::GetSolarMutex());
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 			mrNumberFormatter = new SvNumberFormatsSupplierObj( m_pModel->GetNumFormatter() );
+ 		}
+ 		else
+@@ -1545,7 +1543,7 @@ void SAL_CALL ChXChartDocument::disposing (const lang::EventObject & Source)
+ 		return;
+ 
+ 	//	Inform the document shell of the disposing of Source.Source.
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SchChartDocShell* pDocSh = (SchChartDocShell*)GetObjectShell();
+ 	if (pDocSh == NULL)
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx
+index 07b9e58..fa20bf1 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx
+@@ -35,7 +35,6 @@
+ #include "ChXChartDrawPage.hxx"
+ #include "chtmodel.hxx"
+ 
+-// header for class OGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -49,7 +48,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ 
+ #define CHART_DRAW_PAGE_WIDTH_ID 1
+@@ -139,7 +137,7 @@ uno::Sequence< sal_Int8 > SAL_CALL ChXChartDrawPage::getImplementationId() throw
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXChartDrawPage::getPropertySetInfo()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	return maPropSet.getPropertySetInfo();
+ }
+@@ -151,7 +149,7 @@ void SAL_CALL ChXChartDrawPage::setPropertyValue( const ::rtl::OUString& aProper
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName );
+ 	if( mpModel &&
+@@ -199,7 +197,7 @@ uno::Any SAL_CALL ChXChartDrawPage::getPropertyValue( const ::rtl::OUString& aPr
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	uno::Any aResult;
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx
+index 0c88517..1471a2e 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx
+@@ -36,7 +36,6 @@
+ #include "ChXChartObject.hxx"
+ #include "schattr.hxx"
+ 
+-// header for class OGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -106,7 +105,6 @@ namespace binfilter {
+ 
+ extern SchUnoPropertyMapProvider aSchMapProvider;
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+@@ -185,7 +183,7 @@ void setLogicRectHack( SdrObject* pObj, const Rectangle& rRect )
+ 
+ SdrObject* ChXChartObject::GetCurrentSdrObject() const
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrObject* pResult = NULL;
+ 	if( mpModel )
+@@ -209,7 +207,7 @@ SdrObject* ChXChartObject::GetCurrentSdrObject() const
+ // XShape interface methods
+ awt::Point SAL_CALL ChXChartObject::getPosition() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrObject* pObj = GetCurrentSdrObject();
+ 	if( pObj )
+@@ -242,7 +240,7 @@ void SAL_CALL ChXChartObject::setPosition( const awt::Point& aPosition ) throw(
+ 			return;
+ 	}
+ 
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrObject* pObj = GetCurrentSdrObject();
+ 	if( pObj )
+@@ -274,7 +272,7 @@ void SAL_CALL ChXChartObject::setPosition( const awt::Point& aPosition ) throw(
+ 
+ awt::Size SAL_CALL ChXChartObject::getSize() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrObject* pObj = GetCurrentSdrObject();
+ 	if( pObj )
+@@ -301,7 +299,7 @@ void SAL_CALL ChXChartObject::setSize( const awt::Size& aSize )
+ // XPropertySet
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXChartObject::getPropertySetInfo() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	return maPropSet.getPropertySetInfo();
+ }
+ 
+@@ -312,7 +310,7 @@ void SAL_CALL ChXChartObject::setPropertyValue( const ::rtl::OUString& aProperty
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	if( mpModel && mnWhichId != CHOBJID_ANY )
+ 	{
+@@ -452,7 +450,7 @@ uno::Any SAL_CALL ChXChartObject::getPropertyValue( const ::rtl::OUString& Prope
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	uno::Any aResultaAny;
+     sal_Bool bPropertyUnknown = sal_False;
+@@ -712,7 +710,7 @@ void SAL_CALL ChXChartObject::setPropertyValues	(
+ 			lang::WrappedTargetException,
+ 			uno::RuntimeException)
+ {
+-	OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 	
+ 	//	Get pointers to first elements of lists.
+ 	const SfxItemPropertyMap *	pProperty = maPropSet.getPropertyMap ();
+@@ -876,7 +874,7 @@ uno::Sequence< uno::Any > SAL_CALL ChXChartObject::getPropertyValues	(
+ 	
+ 	return aResult;
+ #endif
+-	OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 	
+ 	//	This sequence is filled with the requested values for the given property names.
+ 	Sequence<Any> aResult (aPropertyNames.getLength());
+@@ -948,7 +946,7 @@ void SAL_CALL ChXChartObject::firePropertiesChangeEvent	(
+ beans::PropertyState SAL_CALL ChXChartObject::getPropertyState( const ::rtl::OUString& PropertyName )
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+@@ -1017,7 +1015,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL ChXChartObject::getPropertyStates
+ 			   uno::RuntimeException )
+ {
+ #if 0
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const sal_Int32 nCount = aPropertyNames.getLength();
+ 	const ::rtl::OUString * pName = aPropertyNames.getConstArray();
+@@ -1032,7 +1030,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL ChXChartObject::getPropertyStates
+ 
+ 	return aStates;
+ #else
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	//	Get pointers to first elements of lists.
+ 	const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap ();
+@@ -1132,7 +1130,7 @@ void SAL_CALL ChXChartObject::setPropertyToDefault( const ::rtl::OUString& Prope
+ 		throw( beans::UnknownPropertyException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx
+index e890370..153755d 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx
+@@ -37,7 +37,7 @@
+ #include "mapprov.hxx"
+ 
+ // header for SvxServiceInfoHelper
+-// header for class OGuard
++// header for class osl::SolarMutexGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -100,7 +100,6 @@ namespace binfilter {
+ 
+ extern SchUnoPropertyMapProvider aSchMapProvider;
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ 
+ ChXDataPoint::ChXDataPoint( sal_Int32 _Col, sal_Int32 _Row, ChartModel* _Model ) :
+@@ -158,7 +157,7 @@ uno::Sequence< sal_Int8 > SAL_CALL ChXDataPoint::getImplementationId()
+ // XPropertySet
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXDataPoint::getPropertySetInfo() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return maPropSet.getPropertySetInfo();
+ }
+ 
+@@ -177,7 +176,7 @@ void SAL_CALL ChXDataPoint::setPropertyValue( const ::rtl::OUString& aPropertyNa
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Bool bPropertyUnknown = sal_False;
+ 
+ 	if( mpModel )
+@@ -384,7 +383,7 @@ uno::Any SAL_CALL ChXDataPoint::getPropertyValue( const ::rtl::OUString& Propert
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	
+ 	uno::Any aAny;
+ 
+@@ -581,7 +580,7 @@ void SAL_CALL ChXDataPoint::removeVetoableChangeListener( const ::rtl::OUString&
+ beans::PropertyState SAL_CALL ChXDataPoint::getPropertyState( const ::rtl::OUString& PropertyName )
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+@@ -653,7 +652,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL ChXDataPoint::getPropertyStates(
+ 		throw( beans::UnknownPropertyException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const sal_Int32 nCount = aPropertyName.getLength();
+ 	const ::rtl::OUString* pNames = aPropertyName.getConstArray();
+@@ -674,7 +673,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL
+ 		throw (beans::UnknownPropertyException,
+ 			uno::RuntimeException)
+ {
+-	OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+ 	const sal_Int32 nCount = aPropertyName.getLength();
+ 	const ::rtl::OUString* pNames = aPropertyName.getConstArray();
+@@ -775,7 +774,7 @@ void SAL_CALL ChXDataPoint::setPropertyToDefault( const ::rtl::OUString& Propert
+ 		throw( beans::UnknownPropertyException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx
+index d83e6e6..466e1ac 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx
+@@ -38,7 +38,6 @@
+ #include "ChartLine.hxx"
+ 
+ // header for SvxServiceInfoHelper
+-// header for class OGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -106,7 +105,6 @@ namespace binfilter {
+ 
+ extern SchUnoPropertyMapProvider aSchMapProvider;
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ 
+ ChXDataRow::ChXDataRow( sal_Int32 _Row, ChartModel* _Model ) :
+@@ -147,7 +145,7 @@ ChXDataRow* ChXDataRow::getImplementation( uno::Reference< uno::XInterface > xDa
+ 
+ uno::Reference< beans::XPropertySet > ChXDataRow::getStatisticsProperties( sal_Int32 nId ) const
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	if( mpModel )
+ 	{
+@@ -168,7 +166,7 @@ uno::Reference< beans::XPropertySet > ChXDataRow::getStatisticsProperties( sal_I
+ // XPropertySet
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXDataRow::getPropertySetInfo() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	return maPropSet.getPropertySetInfo();
+ }
+ 
+@@ -179,7 +177,7 @@ void SAL_CALL ChXDataRow::setPropertyValue( const ::rtl::OUString& aPropertyName
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	sal_Bool bPropertyUnknown = sal_False;
+ 
+ 	if( mpModel )
+@@ -421,7 +419,7 @@ uno::Any SAL_CALL ChXDataRow::getPropertyValue( const ::rtl::OUString& PropertyN
+ 		   lang::WrappedTargetException,
+ 		   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	
+ 	uno::Any aAny;
+ 
+@@ -638,7 +636,7 @@ void SAL_CALL ChXDataRow::removeVetoableChangeListener( const ::rtl::OUString& P
+ beans::PropertyState SAL_CALL ChXDataRow::getPropertyState( const ::rtl::OUString& PropertyName )
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+@@ -699,7 +697,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL ChXDataRow::getPropertyStates(
+ 		throw( beans::UnknownPropertyException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const sal_Int32 nCount = aPropertyName.getLength();
+ 	const ::rtl::OUString* pNames = aPropertyName.getConstArray();
+@@ -717,7 +715,7 @@ void SAL_CALL ChXDataRow::setPropertyToDefault( const ::rtl::OUString& PropertyN
+ 		throw( beans::UnknownPropertyException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx
+index 544cf42..a53bfbe 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx
+@@ -33,7 +33,6 @@
+  *
+  ************************************************************************/
+ 
+-// header for class OGuard
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -141,7 +140,6 @@ namespace
+ 
+ namespace binfilter {
+ 
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -221,7 +219,7 @@ ChXDiagram::~ChXDiagram() {}
+ // bKeepModel = sal_True => try to keep model. If model is invalid take the one from DocShell
+ sal_Bool ChXDiagram::SetDocShell( SchChartDocShell* pDocShell, sal_Bool bKeepModel ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Bool bModelKept = sal_False;
+ 
+ 	if( pDocShell )
+@@ -394,7 +392,7 @@ uno::Any ChXDiagram::GetAnyByItem( SfxItemSet& aSet, const SfxItemPropertyMap* p
+         return maServiceName;
+     }
+ 
+-  	OGuard aGuard( Application::GetSolarMutex() );
++  	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel )
+ 	{
+@@ -443,7 +441,7 @@ uno::Any ChXDiagram::GetAnyByItem( SfxItemSet& aSet, const SfxItemPropertyMap* p
+ uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDataRowProperties( sal_Int32 Row )
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel )
+ 	{
+@@ -472,7 +470,7 @@ uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDataRowProperties(
+ uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDataPointProperties( sal_Int32 Column, sal_Int32 Row )
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel )
+ 	{
+@@ -504,7 +502,7 @@ uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDataPointPropertie
+ // XShape ( ::XDiagram)
+ awt::Size SAL_CALL ChXDiagram::getSize() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel )
+ 	{
+@@ -519,7 +517,7 @@ void SAL_CALL ChXDiagram::setSize( const awt::Size& aSize )
+ 	throw( uno::RuntimeException,
+ 		   beans::PropertyVetoException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpModel )
+ 	{
+ 		Rectangle aRect = mpModel->GetChartRect();
+@@ -542,7 +540,7 @@ void SAL_CALL ChXDiagram::setSize( const awt::Size& aSize )
+ 
+ awt::Point SAL_CALL ChXDiagram::getPosition() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpModel )
+ 	{
+ 		Point aPoint = mpModel->GetChartRect().TopLeft();
+@@ -557,7 +555,7 @@ awt::Point SAL_CALL ChXDiagram::getPosition() throw( uno::RuntimeException )
+ 
+ void SAL_CALL ChXDiagram::setPosition( const awt::Point& aPosition ) throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel )
+ 	{
+@@ -797,7 +795,7 @@ uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getWall() throw( ::co
+ // XPropertySet
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXDiagram::getPropertySetInfo() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return maPropSet.getPropertySetInfo();
+ }
+ 
+@@ -815,7 +813,7 @@ void SAL_CALL ChXDiagram::setPropertyValue( const ::rtl::OUString& aPropertyName
+ 			   lang::WrappedTargetException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel )
+ 	{
+@@ -1183,7 +1181,7 @@ uno::Any SAL_CALL ChXDiagram::getPropertyValue( const ::rtl::OUString& PropertyN
+ 		   uno::RuntimeException )
+ {
+ 	RTL_LOGFILE_CONTEXT (context, "sch (af119097) ::ChXDiagram::getPropertyValue");
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -1385,7 +1383,7 @@ Sequence<Any> SAL_CALL	ChXDiagram::getPropertyValues (
+ 	
+ 	return aResult;
+ #else
+-	OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 	
+ 	//	This sequence is filled with the requested values for the given property names.
+ 	Sequence<Any> aResult (aPropertyNames.getLength());
+@@ -1647,7 +1645,7 @@ beans::PropertyState SAL_CALL ChXDiagram::getPropertyState( const ::rtl::OUStrin
+ 
+                 default:
+                     {
+-                        OGuard aGuard( Application::GetSolarMutex() );
++                        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+                         SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID );
+                         ChartType aType( mpModel );
+@@ -1674,7 +1672,7 @@ void SAL_CALL ChXDiagram::setPropertyToDefault( const ::rtl::OUString& PropertyN
+ 		throw( beans::UnknownPropertyException,
+ 			   uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName );
+ 
+@@ -1747,7 +1745,7 @@ Sequence<PropertyState> SAL_CALL ChXDiagram::getPropertyStates (
+ 	throw (beans::UnknownPropertyException,
+ 			uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ #if 0
+ 	//	Old implementation.
+@@ -2058,7 +2056,7 @@ sal_Int64 SAL_CALL ChXDiagram::getSomething( const uno::Sequence< sal_Int8 >& aI
+ // XComponent
+ void SAL_CALL ChXDiagram::dispose() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+   
+     const int	nMemberListSize = 19;
+     const uno::Reference<uno::XInterface> xMemberList[nMemberListSize] = {
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx
+index 7b0caa3..b27213b 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx
+@@ -37,8 +37,8 @@
+ #include "mapprov.hxx"
+ 
+ // header for class OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -69,7 +69,7 @@ ChartArea::~ChartArea()
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChartArea::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< ::rtl::OUString > aSeq( 4 );
+ 	aSeq[ 0 ] = ::rtl::OUString::createFromAscii( "com.sun.star.chart.ChartArea" );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx
+index 9539ca5..8bc3ecc 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx
+@@ -37,8 +37,8 @@
+ #include "mapprov.hxx"
+ 
+ // header for class OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -69,7 +69,7 @@ ChartGrid::~ChartGrid()
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChartGrid::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< ::rtl::OUString > aSeq( 3 );
+ 	aSeq[ 0 ] = ::rtl::OUString::createFromAscii( "com.sun.star.chart.ChartGrid" );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx
+index 1740c0d..3b98ae0 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx
+@@ -37,8 +37,8 @@
+ #include "defines.hxx"
+ 
+ // header for class OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -69,7 +69,7 @@ ChartLegend::~ChartLegend()
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChartLegend::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< ::rtl::OUString > aSeq( 6 );
+ 	aSeq[ 0 ] = ::rtl::OUString::createFromAscii( "com.sun.star.chart.ChartLegend" );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx
+index 8e39e73..f6a98e4 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx
+@@ -37,8 +37,8 @@
+ #include "mapprov.hxx"
+ 
+ // header for class OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -69,7 +69,7 @@ ChartLine::~ChartLine()
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChartLine::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< ::rtl::OUString > aSeq( 3 );
+ 	aSeq[ 0 ] = ::rtl::OUString::createFromAscii( "com.sun.star.chart.ChartLine" );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx
+index df969ef..9b05f60 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx
+@@ -77,7 +77,7 @@ ChartTitle::~ChartTitle()
+ uno::Sequence< ::rtl::OUString > SAL_CALL ChartTitle::getSupportedServiceNames()
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< ::rtl::OUString > aSeq( 4 );
+ 	aSeq[ 0 ] = ::rtl::OUString::createFromAscii( "com.sun.star.chart.ChartTitle" );
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx
+index 0ef2d0e..0382b8c 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx
+@@ -40,8 +40,8 @@
+ 
+ #include "schmod.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -68,7 +68,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SchDocument_getSupportedServiceNames()
+ uno::Reference< uno::XInterface > SAL_CALL SchDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SCH_MOD1(), "No StarChart module!" );
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_SdUnoPresView.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_SdUnoPresView.cxx
+index be1c9d7..afb740d 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_SdUnoPresView.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_SdUnoPresView.cxx
+@@ -5,8 +5,8 @@
+ #include <com/sun/star/beans/PropertyAttribute.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX 
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx
+index ff21f32..6c02eb6 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx
+@@ -106,7 +106,6 @@ namespace binfilter {
+ using namespace ::comphelper;
+ using namespace ::osl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+@@ -265,7 +264,7 @@ DocumentSettings::~DocumentSettings() throw()
+ 
+ void DocumentSettings::_setPropertyValues( const PropertyMapEntry** ppEntries, const Any* pValues ) throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	SdDrawDocShell* pDocSh = mpModel->GetDocShell();
+@@ -812,7 +811,7 @@ void DocumentSettings::_setPropertyValues( const PropertyMapEntry** ppEntries, c
+ 
+ void DocumentSettings::_getPropertyValues( const PropertyMapEntry** ppEntries, Any* pValue ) throw(UnknownPropertyException, WrappedTargetException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	SdDrawDocShell* pDocSh = mpModel->GetDocShell();
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unocpres.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unocpres.cxx
+index d8bfde8..c834927 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unocpres.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unocpres.cxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -55,7 +55,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ 
+@@ -109,7 +108,7 @@ uno::Sequence< OUString > SAL_CALL SdXCustomPresentation::getSupportedServiceNam
+ void SAL_CALL SdXCustomPresentation::insertByIndex( sal_Int32 Index, const uno::Any& Element )
+ 	throw(lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( Index < 0 || Index > (sal_Int32)( mpSdCustomShow ? mpSdCustomShow->Count() : 0 ) )
+ 		throw lang::IndexOutOfBoundsException();
+@@ -140,7 +139,7 @@ void SAL_CALL SdXCustomPresentation::insertByIndex( sal_Int32 Index, const uno::
+ void SAL_CALL SdXCustomPresentation::removeByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpSdCustomShow)
+ 	{
+@@ -177,7 +176,7 @@ uno::Type SAL_CALL SdXCustomPresentation::getElementType()
+ sal_Bool SAL_CALL SdXCustomPresentation::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return getCount() > 0;
+ }
+ 
+@@ -185,14 +184,14 @@ sal_Bool SAL_CALL SdXCustomPresentation::hasElements()
+ sal_Int32 SAL_CALL SdXCustomPresentation::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpSdCustomShow?mpSdCustomShow->Count():0;
+ }
+ 
+ uno::Any SAL_CALL SdXCustomPresentation::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( Index < 0 || Index >= (sal_Int32)mpSdCustomShow->Count() )
+ 		throw lang::IndexOutOfBoundsException();
+@@ -216,7 +215,7 @@ uno::Any SAL_CALL SdXCustomPresentation::getByIndex( sal_Int32 Index )
+ OUString SAL_CALL SdXCustomPresentation::getName()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpSdCustomShow)
+ 		return mpSdCustomShow->GetName();
+@@ -227,7 +226,7 @@ OUString SAL_CALL SdXCustomPresentation::getName()
+ void SAL_CALL SdXCustomPresentation::setName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpSdCustomShow)
+ 		mpSdCustomShow->SetName( aName );
+@@ -236,7 +235,7 @@ void SAL_CALL SdXCustomPresentation::setName( const OUString& aName )
+ // XComponent
+ void SAL_CALL SdXCustomPresentation::dispose() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		return;	// catched a recursion
+@@ -318,7 +317,7 @@ uno::Reference< uno::XInterface > SAL_CALL SdXCustomPresentationAccess::createIn
+ void SAL_CALL SdXCustomPresentationAccess::insertByName( const OUString& aName, const uno::Any& aElement )
+ 	throw(lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// get the documents custom show list
+ 	List* pList;
+@@ -372,7 +371,7 @@ void SAL_CALL SdXCustomPresentationAccess::insertByName( const OUString& aName,
+ void SAL_CALL SdXCustomPresentationAccess::removeByName( const OUString& Name )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdCustomShow* pShow = getSdCustomShow(Name);
+ 
+@@ -397,7 +396,7 @@ void SAL_CALL SdXCustomPresentationAccess::replaceByName( const OUString& aName,
+ uno::Any SAL_CALL SdXCustomPresentationAccess::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -418,7 +417,7 @@ uno::Any SAL_CALL SdXCustomPresentationAccess::getByName( const OUString& aName
+ uno::Sequence< OUString > SAL_CALL SdXCustomPresentationAccess::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	List* pList = GetCustomShowList();
+ 	const sal_uInt32 nCount = pList?pList->Count():0;
+@@ -441,7 +440,7 @@ uno::Sequence< OUString > SAL_CALL SdXCustomPresentationAccess::getElementNames(
+ sal_Bool SAL_CALL SdXCustomPresentationAccess::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return getSdCustomShow(aName) != NULL;
+ }
+ 
+@@ -455,7 +454,7 @@ uno::Type SAL_CALL SdXCustomPresentationAccess::getElementType()
+ sal_Bool SAL_CALL SdXCustomPresentationAccess::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	List* pList = GetCustomShowList();
+ 	return pList && pList->Count() > 0;
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unodoc.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unodoc.cxx
+index d870fe1..89228d7 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unodoc.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unodoc.cxx
+@@ -40,8 +40,8 @@
+ 
+ #include "sdmod.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -69,7 +69,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SdDrawingDocument_getSupportedServiceN
+ uno::Reference< uno::XInterface > SAL_CALL SdDrawingDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SD_MOD(), "No StarDraw module!" );
+@@ -108,7 +108,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SdPresentationDocument_getSupportedSer
+ uno::Reference< uno::XInterface > SAL_CALL SdPresentationDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SD_MOD(), "No StarDraw module!" );
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unogsfm.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unogsfm.cxx
+index 26e9eed..6eb93a4 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unogsfm.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unogsfm.cxx
+@@ -34,8 +34,8 @@
+  ************************************************************************/
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -67,7 +67,6 @@ namespace binfilter {
+ //#endif
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ UNO3_GETIMPLEMENTATION_IMPL( SdUnoGraphicStyleFamily );
+@@ -217,7 +216,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoGraphicStyleFamily::getSupportedServiceN
+ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	if( NULL == pDoc || 0 == aName.getLength() )
+@@ -236,7 +235,7 @@ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdUnoGraphicStyleFamily::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	SfxStyleSheetIterator* pIter = NULL;
+@@ -272,7 +271,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoGraphicStyleFamily::getElementNames()
+ sal_Bool SAL_CALL SdUnoGraphicStyleFamily::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	if( pDoc == NULL )
+@@ -293,7 +292,7 @@ uno::Type SAL_CALL SdUnoGraphicStyleFamily::getElementType()
+ sal_Bool SAL_CALL SdUnoGraphicStyleFamily::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpModel->GetDoc() != NULL;
+ }
+ 
+@@ -302,7 +301,7 @@ sal_Bool SAL_CALL SdUnoGraphicStyleFamily::hasElements()
+ sal_Int32 SAL_CALL SdUnoGraphicStyleFamily::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount;
+ 
+@@ -320,7 +319,7 @@ sal_Int32 SAL_CALL SdUnoGraphicStyleFamily::getCount()
+ 
+ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByIndex( sal_Int32 Index ) throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -346,7 +345,7 @@ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByIndex( sal_Int32 Index ) throw(l
+ void SAL_CALL SdUnoGraphicStyleFamily::insertByName( const OUString& aName, const uno::Any& aElement )
+ 	throw(lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdUnoGraphicStyle* pStyle = getStyleFromAny( aElement );
+ 
+@@ -371,7 +370,7 @@ void SAL_CALL SdUnoGraphicStyleFamily::insertByName( const OUString& aName, cons
+ void SAL_CALL SdUnoGraphicStyleFamily::removeByName( const OUString& Name )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aStyleName( Name );
+ 
+@@ -398,7 +397,7 @@ void SAL_CALL SdUnoGraphicStyleFamily::removeByName( const OUString& Name )
+ void SAL_CALL SdUnoGraphicStyleFamily::replaceByName( const OUString& aName, const uno::Any& aElement )
+ 	throw(lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdUnoGraphicStyle* pStyle = getStyleFromAny( aElement );
+ 
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unogstyl.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unogstyl.cxx
+index 8105ada..95fa980 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unogstyl.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unogstyl.cxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -63,7 +63,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ SdUnoGraphicStyle::SdUnoGraphicStyle( SdXImpressDocument* pModel /* = NULL */, 
+@@ -155,7 +154,7 @@ void SdUnoGraphicStyle::create( SdXImpressDocument* pModel, SfxStyleSheetBase* p
+ OUString SAL_CALL SdUnoGraphicStyle::getName(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OUString aName;
+ 	if( mpStyleSheet )
+@@ -173,7 +172,7 @@ OUString SAL_CALL SdUnoGraphicStyle::getName(  )
+ void SAL_CALL SdUnoGraphicStyle::setName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpStyleSheet )
+ 	{
+@@ -242,7 +241,7 @@ void SAL_CALL SdUnoGraphicStyle::removeVetoableChangeListener( const ::rtl::OUSt
+ OUString SAL_CALL SdUnoGraphicStyle::getParentStyle(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OUString aName;
+ 	if( mpStyleSheet )
+@@ -260,7 +259,7 @@ OUString SAL_CALL SdUnoGraphicStyle::getParentStyle(  )
+ void SAL_CALL SdUnoGraphicStyle::setParentStyle( const OUString& aParentStyle )
+ 	throw(container::NoSuchElementException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpStyleSheet )
+ 	{
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unolayer.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unolayer.cxx
+index c033fa3..be60b7e 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unolayer.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unolayer.cxx
+@@ -74,7 +74,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ //=============================================================================
+@@ -198,14 +197,14 @@ uno::Sequence< OUString > SAL_CALL SdLayer::getSupportedServiceNames()
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdLayer::getPropertySetInfo(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return aPropSet.getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pLayer == NULL || pLayerManager == NULL)
+ 		throw uno::RuntimeException();
+@@ -262,7 +261,7 @@ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const un
+ uno::Any SAL_CALL SdLayer::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pLayer == NULL || pLayerManager == NULL)
+ 		throw uno::RuntimeException();
+@@ -470,7 +469,7 @@ uno::Sequence< OUString > SAL_CALL SdLayerManager::getSupportedServiceNames()
+ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::insertNewByIndex( sal_Int32 nIndex )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XLayer > xLayer;
+ 
+@@ -501,7 +500,7 @@ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::insertNewByIndex( sal
+ void SAL_CALL SdLayerManager::remove( const uno::Reference< drawing::XLayer >& xLayer )
+ 	throw(container::NoSuchElementException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdLayer* pSdLayer = SdLayer::getImplementation(xLayer);
+ 
+@@ -519,7 +518,7 @@ void SAL_CALL SdLayerManager::remove( const uno::Reference< drawing::XLayer >& x
+ void SAL_CALL SdLayerManager::attachShapeToLayer( const uno::Reference< drawing::XShape >& xShape, const uno::Reference< drawing::XLayer >& xLayer )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(rModel.pDoc==NULL)
+ 		return;
+@@ -540,7 +539,7 @@ void SAL_CALL SdLayerManager::attachShapeToLayer( const uno::Reference< drawing:
+ 
+ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::getLayerForShape( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XLayer >  xLayer;
+ 
+@@ -562,7 +561,7 @@ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::getLayerForShape( con
+ sal_Int32 SAL_CALL SdLayerManager::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( rModel.pDoc )
+ 	{
+@@ -576,7 +575,7 @@ sal_Int32 SAL_CALL SdLayerManager::getCount()
+ uno::Any SAL_CALL SdLayerManager::getByIndex( sal_Int32 nLayer )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( nLayer >= getCount() || nLayer < 0 )
+ 		throw lang::IndexOutOfBoundsException();
+@@ -597,7 +596,7 @@ uno::Any SAL_CALL SdLayerManager::getByIndex( sal_Int32 nLayer )
+ uno::Any SAL_CALL SdLayerManager::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XLayer >  xLayer;
+ 
+@@ -622,7 +621,7 @@ uno::Any SAL_CALL SdLayerManager::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdLayerManager::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ 	const sal_uInt16 nLayerCount = rLayerAdmin.GetLayerCount();
+@@ -644,7 +643,7 @@ uno::Sequence< OUString > SAL_CALL SdLayerManager::getElementNames()
+ 
+ sal_Bool SAL_CALL SdLayerManager::hasByName( const OUString& aName ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ 
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unomodel.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unomodel.cxx
+index c6e9581..39bee67 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unomodel.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unomodel.cxx
+@@ -132,7 +132,6 @@ namespace binfilter {
+ 
+ using namespace ::osl;
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -696,7 +695,7 @@ void SAL_CALL SdXImpressDocument::setViewData( const uno::Reference < container:
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( const uno::Reference< drawing::XDrawPage >& xPage )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -725,7 +724,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( con
+ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getDrawPages()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -745,7 +744,7 @@ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getDrawPages(
+ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getMasterPages()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -765,7 +764,7 @@ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getMasterPage
+ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLayerManager(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -782,7 +781,7 @@ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLayerMa
+ uno::Reference< container::XNameContainer > SAL_CALL SdXImpressDocument::getCustomPresentations()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -799,7 +798,7 @@ uno::Reference< container::XNameContainer > SAL_CALL SdXImpressDocument::getCust
+ uno::Reference< presentation::XPresentation > SAL_CALL SdXImpressDocument::getPresentation()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -816,7 +815,7 @@ uno::Reference< presentation::XPresentation > SAL_CALL SdXImpressDocument::getPr
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::getHandoutMasterPage()
+ 	throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -837,7 +836,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::getHandoutMast
+ uno::Reference< uno::XInterface > SAL_CALL SdXImpressDocument::createInstance( const OUString& aServiceSpecifier )
+ 	throw(uno::Exception, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -1144,14 +1143,14 @@ uno::Sequence< OUString > SAL_CALL SdXImpressDocument::getSupportedServiceNames(
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdXImpressDocument::getPropertySetInfo(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return aPropSet.getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdXImpressDocument::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -1221,7 +1220,7 @@ void SAL_CALL SdXImpressDocument::setPropertyValue( const OUString& aPropertyNam
+ uno::Any SAL_CALL SdXImpressDocument::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	if( NULL == pDoc )
+@@ -1297,7 +1296,7 @@ void SAL_CALL SdXImpressDocument::removeVetoableChangeListener( const OUString&
+ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLinks()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -1309,7 +1308,7 @@ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLinks()
+ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getStyleFamilies(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -1334,7 +1333,7 @@ sal_Int32 SAL_CALL SdXImpressDocument::getRendererCount( const uno::Any& rSelect
+                                                          const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard      aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard      aGuard( Application::GetSolarMutex() );
+ 	sal_Int32   nRet = 0;
+ 
+ 	if( NULL == pDoc )
+@@ -1368,7 +1367,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SdXImpressDocument::getRenderer(
+                                                                                 const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -1454,7 +1453,7 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
+                                           const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == pDoc )
+ 		throw lang::DisposedException();
+@@ -1505,7 +1504,7 @@ void SdXImpressDocument::initializeDocument()
+ void SAL_CALL SdXImpressDocument::dispose() throw (::com::sun::star::uno::RuntimeException)
+ {
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if( pDoc )
+ 		{
+ 			EndListening( *pDoc );
+@@ -1545,7 +1544,7 @@ SdDrawPagesAccess::~SdDrawPagesAccess() throw()
+ sal_Int32 SAL_CALL SdDrawPagesAccess::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1556,7 +1555,7 @@ sal_Int32 SAL_CALL SdDrawPagesAccess::getCount()
+ uno::Any SAL_CALL SdDrawPagesAccess::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1579,7 +1578,7 @@ uno::Any SAL_CALL SdDrawPagesAccess::getByIndex( sal_Int32 Index )
+ // XNameAccess
+ uno::Any SAL_CALL SdDrawPagesAccess::getByName( const OUString& aName ) throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1609,7 +1608,7 @@ uno::Any SAL_CALL SdDrawPagesAccess::getByName( const OUString& aName ) throw(co
+ 
+ uno::Sequence< OUString > SAL_CALL SdDrawPagesAccess::getElementNames() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1630,7 +1629,7 @@ uno::Sequence< OUString > SAL_CALL SdDrawPagesAccess::getElementNames() throw(un
+ 
+ sal_Bool SAL_CALL SdDrawPagesAccess::hasByName( const OUString& aName ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1672,7 +1671,7 @@ sal_Bool SAL_CALL SdDrawPagesAccess::hasElements()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPagesAccess::insertNewByIndex( sal_Int32 nIndex )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1698,7 +1697,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPagesAccess::insertNewByInde
+ void SAL_CALL SdDrawPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ 		throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1769,7 +1768,7 @@ SdMasterPagesAccess::~SdMasterPagesAccess() throw()
+ sal_Int32 SAL_CALL SdMasterPagesAccess::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1784,7 +1783,7 @@ sal_Int32 SAL_CALL SdMasterPagesAccess::getCount()
+ uno::Any SAL_CALL SdMasterPagesAccess::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1821,7 +1820,7 @@ sal_Bool SAL_CALL SdMasterPagesAccess::hasElements()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIndex( sal_Int32 nInsertPos )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1924,7 +1923,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIn
+ void SAL_CALL SdMasterPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.pDoc )
+ 		throw lang::DisposedException();
+@@ -1992,7 +1991,7 @@ SdDocLinkTargets::~SdDocLinkTargets() throw()
+ uno::Any SAL_CALL SdDocLinkTargets::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.GetDoc() )
+ 		throw lang::DisposedException();
+@@ -2014,7 +2013,7 @@ uno::Any SAL_CALL SdDocLinkTargets::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdDocLinkTargets::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.GetDoc() )
+ 		throw lang::DisposedException();
+@@ -2047,7 +2046,7 @@ uno::Sequence< OUString > SAL_CALL SdDocLinkTargets::getElementNames()
+ sal_Bool SAL_CALL SdDocLinkTargets::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == rModel.GetDoc() )
+ 		throw lang::DisposedException();
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unoobj.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unoobj.cxx
+index 2455533..db29e0d 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unoobj.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unoobj.cxx
+@@ -116,7 +116,6 @@ namespace binfilter {
+  #endif
+ #endif
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+ 
+@@ -345,7 +344,7 @@ uno::Sequence< uno::Type > SAL_CALL SdXShape::getTypes()
+ // XPropertyState
+ beans::PropertyState SAL_CALL SdXShape::getPropertyState( const OUString& PropertyName ) throw( beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maPropSet.getPropertyMapEntry(PropertyName) )
+ 	{
+@@ -363,7 +362,7 @@ beans::PropertyState SAL_CALL SdXShape::getPropertyState( const OUString& Proper
+ 
+ void SAL_CALL SdXShape::setPropertyToDefault( const OUString& PropertyName ) throw( beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maPropSet.getPropertyMapEntry(PropertyName) )
+ 	{
+@@ -377,7 +376,7 @@ void SAL_CALL SdXShape::setPropertyToDefault( const OUString& PropertyName ) thr
+ 
+ uno::Any SAL_CALL SdXShape::getPropertyDefault( const OUString& aPropertyName ) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maPropSet.getPropertyMapEntry(aPropertyName) )
+ 	{
+@@ -432,7 +431,7 @@ uno::Any SAL_CALL SdXShape::getPropertyDefault( const OUString& aPropertyName )
+ void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(aPropertyName);
+ 
+@@ -636,7 +635,7 @@ void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName,
+ ::com::sun::star::uno::Any SAL_CALL SdXShape::getPropertyValue( const ::rtl::OUString& PropertyName )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aRet;
+ 
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unopage.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unopage.cxx
+index a5c68af..2c19a9a 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unopage.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unopage.cxx
+@@ -101,7 +101,6 @@
+ #include "unohelp.hxx"
+ namespace binfilter {
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::osl;
+ using namespace ::com::sun::star;
+@@ -358,14 +357,14 @@ uno::Any SAL_CALL SdGenericDrawPage::queryInterface( const uno::Type & rType )
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdGenericDrawPage::getPropertySetInfo()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return maPropSet.getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (GetPage() == NULL) || (mpModel == NULL) )
+ 		throw uno::RuntimeException();
+@@ -584,7 +583,7 @@ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName
+ uno::Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	if( (GetPage() == NULL) || (mpModel == NULL) )
+@@ -945,7 +944,7 @@ void SdGenericDrawPage::setBookmarkURL( ::rtl::OUString& rURL )
+ uno::Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::combine( const uno::Reference< drawing::XShapes >& xShapes )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(pPage,"SdrPage ist NULL! [CL]");
+ 	DBG_ASSERT(pView, "SdrView ist NULL! [CL]");
+@@ -980,7 +979,7 @@ uno::Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::combine( const uno
+ void SAL_CALL SdGenericDrawPage::split( const uno::Reference< drawing::XShape >& xGroup )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(GetPage()==NULL||pView==NULL||!xGroup.is()||mpModel==NULL)
+ 		return;
+@@ -997,7 +996,7 @@ void SAL_CALL SdGenericDrawPage::split( const uno::Reference< drawing::XShape >&
+ uno::Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::bind( const uno::Reference< drawing::XShapes >& xShapes )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XShape > xShape;
+ 	if(GetPage()==NULL||pView==NULL||!xShapes.is()||mpModel==NULL)
+@@ -1029,7 +1028,7 @@ uno::Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::bind( const uno::R
+ void SAL_CALL SdGenericDrawPage::unbind( const uno::Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(GetPage()==NULL||pView==NULL||!xShape.is()||mpModel==NULL)
+ 		return;
+@@ -1335,7 +1334,7 @@ uno::Type SAL_CALL SdPageLinkTargets::getElementType()
+ sal_Bool SAL_CALL SdPageLinkTargets::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdPage* pPage = mpUnoPage->GetPage();
+ 	if( pPage != NULL )
+@@ -1362,7 +1361,7 @@ sal_Bool SAL_CALL SdPageLinkTargets::hasElements()
+ uno::Any SAL_CALL SdPageLinkTargets::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdPage* pPage = mpUnoPage->GetPage();
+ 	if( pPage != NULL )
+@@ -1381,7 +1380,7 @@ uno::Any SAL_CALL SdPageLinkTargets::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdPageLinkTargets::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_uInt32 nObjCount = 0;
+ 
+@@ -1423,7 +1422,7 @@ uno::Sequence< OUString > SAL_CALL SdPageLinkTargets::getElementNames()
+ sal_Bool SAL_CALL SdPageLinkTargets::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return FindObject( aName ) != NULL;
+ }
+@@ -1669,7 +1668,7 @@ sal_Bool SAL_CALL SdDrawPage::supportsService( const OUString& ServiceName )
+ void SAL_CALL SdDrawPage::setName( const OUString& rName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( GetPage() && !GetPage()->IsMasterPage(), "Don't call base implementation for masterpages!" );
+ 
+@@ -1718,7 +1717,7 @@ void SAL_CALL SdDrawPage::setName( const OUString& rName )
+ OUString SAL_CALL SdDrawPage::getName()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return getPageApiName( GetPage() );
+ }
+@@ -1727,7 +1726,7 @@ OUString SAL_CALL SdDrawPage::getName()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getMasterPage(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(mpModel,"SdDrawPage hat kein Model??");
+ 	if(mpModel && GetPage())
+@@ -1746,7 +1745,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getMasterPage(  )
+ void SAL_CALL SdDrawPage::setMasterPage( const uno::Reference< drawing::XDrawPage >& xMasterPage )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(mpModel,"SdDrawPage hat kein Model??");
+ 	if(mpModel && pPage)
+@@ -1785,7 +1784,7 @@ void SAL_CALL SdDrawPage::setMasterPage( const uno::Reference< drawing::XDrawPag
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getNotesPage()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pPage && mpModel && mpModel->GetDoc() )
+ 	{
+@@ -2324,7 +2323,7 @@ void SdMasterPage::getBackground( uno::Any& rValue ) throw()
+ void SAL_CALL SdMasterPage::setName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pPage && GetPage()->GetPageKind() != PK_NOTES)
+ 	{
+@@ -2341,7 +2340,7 @@ void SAL_CALL SdMasterPage::setName( const OUString& aName )
+ OUString SAL_CALL SdMasterPage::getName(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pPage)
+ 	{
+@@ -2358,7 +2357,7 @@ OUString SAL_CALL SdMasterPage::getName(  )
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPage::getNotesPage()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pPage && mpModel && mpModel->GetDoc() )
+ 	{
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unopback.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unopback.cxx
+index f4ea032..28f3acf 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unopback.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unopback.cxx
+@@ -62,7 +62,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ const SfxItemPropertyMap* ImplGetPageBackgroundPropertyMap()
+@@ -197,7 +196,7 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdUnoPageBackground::getPrope
+ void SAL_CALL SdUnoPageBackground::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( aPropertyName );
+ 
+@@ -254,7 +253,7 @@ void SAL_CALL SdUnoPageBackground::setPropertyValue( const OUString& aPropertyNa
+ uno::Any SAL_CALL SdUnoPageBackground::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+@@ -313,7 +312,7 @@ void SAL_CALL SdUnoPageBackground::removeVetoableChangeListener( const OUString&
+ beans::PropertyState SAL_CALL SdUnoPageBackground::getPropertyState( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+ 
+@@ -360,7 +359,7 @@ beans::PropertyState SAL_CALL SdUnoPageBackground::getPropertyState( const OUStr
+ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPageBackground::getPropertyStates( const uno::Sequence< OUString >& aPropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = aPropertyName.getLength();
+ 	const OUString* pNames = aPropertyName.getConstArray();
+@@ -377,7 +376,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPageBackground::getPropertyS
+ void SAL_CALL SdUnoPageBackground::setPropertyToDefault( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+ 
+@@ -401,7 +400,7 @@ void SAL_CALL SdUnoPageBackground::setPropertyToDefault( const OUString& Propert
+ uno::Any SAL_CALL SdUnoPageBackground::getPropertyDefault( const OUString& aPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(aPropertyName);
+ 	if( pMap == NULL || mpSet == NULL )
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unopres.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unopres.cxx
+index 9e6ccef..38a1e6d 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unopres.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unopres.cxx
+@@ -47,13 +47,12 @@
+ #include "unohelp.hxx"
+ #include "unopage.hxx"
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ const SfxItemPropertyMap* ImplGetPresentationPropertyMap()
+@@ -121,14 +120,14 @@ uno::Sequence< OUString > SAL_CALL SdXPresentation::getSupportedServiceNames(  )
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdXPresentation::getPropertySetInfo()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return maPropSet.getPropertySetInfo();
+  }
+ 
+ void SAL_CALL SdXPresentation::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mrModel.GetDoc();
+ 	if(pDoc == NULL)
+@@ -349,7 +348,7 @@ void SAL_CALL SdXPresentation::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL SdXPresentation::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any any;
+ 
+@@ -452,21 +451,21 @@ void SAL_CALL SdXPresentation::removeVetoableChangeListener( const OUString& Pro
+ void SAL_CALL SdXPresentation::start(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	DBG_ERROR("Strip!");
+ }
+ 
+ void SAL_CALL SdXPresentation::end(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	DBG_ERROR("Strip!");
+ }
+ 
+ void SAL_CALL SdXPresentation::rehearseTimings(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	DBG_ERROR("Strip!");
+ }
+ 
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unopsfm.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unopsfm.cxx
+index 8bd29e3..e76c2c4 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unopsfm.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unopsfm.cxx
+@@ -66,7 +66,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ static struct StyleNameMapping_t
+@@ -166,7 +165,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyleFamily::getSupportedServiceNa
+ uno::Any SAL_CALL SdUnoPseudoStyleFamily::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( 0 == aName.getLength() )
+ 		throw container::NoSuchElementException();
+@@ -187,7 +186,7 @@ uno::Any SAL_CALL SdUnoPseudoStyleFamily::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyleFamily::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< OUString > aNameSequence( nPseudoStyleCount );
+ 	OUString* pNamesSeq = aNameSequence.getArray();
+@@ -205,7 +204,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyleFamily::getElementNames()
+ sal_Bool SAL_CALL SdUnoPseudoStyleFamily::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aName.getLength() )
+ 	{
+@@ -248,7 +247,7 @@ sal_Int32 SAL_CALL SdUnoPseudoStyleFamily::getCount()
+ uno::Any SAL_CALL SdUnoPseudoStyleFamily::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() || Index < 0 || Index >= nPseudoStyleCount )
+ 		throw lang::IndexOutOfBoundsException();
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unopstyl.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unopstyl.cxx
+index 34c6274..88d85fd 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unopstyl.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unopstyl.cxx
+@@ -35,8 +35,8 @@
+ 
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -82,7 +82,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ #define WID_STYLE_DISPNAME	7998
+@@ -216,7 +215,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyle::getSupportedServiceNames()
+ OUString SAL_CALL SdUnoPseudoStyle::getName(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( isValid() )
+ 		return SdUnoPseudoStyleFamily::getExternalStyleName( mpStyleSheet->GetName() );
+@@ -233,14 +232,14 @@ void SAL_CALL SdUnoPseudoStyle::setName( const OUString& aName )
+ sal_Bool SAL_CALL SdUnoPseudoStyle::isUserDefined(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpStyleSheet && mpStyleSheet->IsUserDefined(); 
+ }
+ 
+ sal_Bool SAL_CALL SdUnoPseudoStyle::isInUse(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return mpStyleSheet && mpStyleSheet->IsUsed(); 
+ }
+@@ -248,7 +247,7 @@ sal_Bool SAL_CALL SdUnoPseudoStyle::isInUse(  )
+ OUString SAL_CALL SdUnoPseudoStyle::getParentStyle(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OUString aName;
+ 	if( isValid() )
+@@ -272,7 +271,7 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdUnoPseudoStyle::getProperty
+ void SAL_CALL SdUnoPseudoStyle::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( aPropertyName );
+ 
+@@ -360,7 +359,7 @@ void SAL_CALL SdUnoPseudoStyle::setPropertyValue( const OUString& aPropertyName,
+ 
+ uno::Any SAL_CALL SdUnoPseudoStyle::getPropertyValue( const OUString& PropertyName ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( PropertyName );
+@@ -461,7 +460,7 @@ void SAL_CALL SdUnoPseudoStyle::removeVetoableChangeListener( const OUString& Pr
+ // XPropertyState
+ beans::PropertyState SAL_CALL SdUnoPseudoStyle::getPropertyState( const OUString& PropertyName ) throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( PropertyName );
+ 
+@@ -545,7 +544,7 @@ beans::PropertyState SAL_CALL SdUnoPseudoStyle::getPropertyState( const OUString
+ 
+ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPseudoStyle::getPropertyStates( const uno::Sequence< OUString >& aPropertyName ) throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = aPropertyName.getLength();
+ 	const OUString* pNames = aPropertyName.getConstArray();
+@@ -561,7 +560,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPseudoStyle::getPropertyStat
+ 
+ void SAL_CALL SdUnoPseudoStyle::setPropertyToDefault( const OUString& PropertyName ) throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( PropertyName );
+@@ -590,7 +589,7 @@ void SAL_CALL SdUnoPseudoStyle::setPropertyToDefault( const OUString& PropertyNa
+ 
+ uno::Any SAL_CALL SdUnoPseudoStyle::getPropertyDefault( const OUString& aPropertyName ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( aPropertyName );
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unosrch.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unosrch.cxx
+index d03f663..1381961 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unosrch.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unosrch.cxx
+@@ -37,8 +37,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ 
+@@ -55,7 +55,6 @@
+ #include "unosrch.hxx"
+ namespace binfilter {
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+ 
+@@ -792,14 +791,14 @@ void SAL_CALL SdUnoSearchReplaceDescriptor::setReplaceString( const ::rtl::OUStr
+ uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SdUnoSearchReplaceDescriptor::getPropertySetInfo()
+ 	throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpPropSet->getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdUnoSearchReplaceDescriptor::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = mpPropSet->getPropertyMapEntry(aPropertyName);
+ 
+@@ -827,7 +826,7 @@ void SAL_CALL SdUnoSearchReplaceDescriptor::setPropertyValue( const ::rtl::OUStr
+ uno::Any SAL_CALL SdUnoSearchReplaceDescriptor::getPropertyValue( const ::rtl::OUString& PropertyName )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unostyls.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unostyls.cxx
+index e21d9ff..7788690 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unostyls.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unostyls.cxx
+@@ -49,7 +49,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 	
+ SdUnoStyleFamilies::SdUnoStyleFamilies( SdXImpressDocument* pModel ) throw()
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx
+index a95adc2..6b50346 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx
+@@ -126,8 +126,8 @@
+ 
+ #include <legacysmgr/legacy_binfilters_smgr.hxx>	//STRIP002
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <cppuhelper/implbase1.hxx>
+@@ -172,7 +172,7 @@ public:
+ /*N*/     if( xDesktop.is() == sal_True )
+ /*N*/         xDesktop->removeTerminateListener( this );
+ /*N*/
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/     SfxApplication* pApp = SFX_APP();
+ /*N*/     pApp->Broadcast( SfxSimpleHint( SFX_HINT_DEINITIALIZING ) );
+ /*N*/     pApp->NotifyEvent(SfxEventHint( SFX_EVENT_CLOSEAPP) );
+@@ -220,7 +220,7 @@ public:
+ /*N*/
+ /*N*/ 	pImp->pObjShells = new SfxObjectShellArr_Impl;
+ /*N*/
+-/*N*/ //    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ //    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/
+ /*N*/ 	SfxEventConfiguration::RegisterEvent(SFX_EVENT_STARTAPP,		String(),	String::CreateFromAscii("OnStartApp") );
+ /*N*/ 	SfxEventConfiguration::RegisterEvent(SFX_EVENT_CLOSEAPP,		String(),	String::CreateFromAscii("OnCloseApp") );
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+index b4660c8..57de9b0 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+@@ -86,7 +86,7 @@
+ #include <tools/config.hxx>
+ #endif
+ #include <tools/rcid.h>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #ifdef _MSC_VER
+ #pragma hdrstop
+ #ifndef _UTL_CONFIGMGR_HXX_
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_imestatuswindow.cxx b/binfilter/bf_sfx2/source/appl/sfx2_imestatuswindow.cxx
+index 22560ee..0805484 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_imestatuswindow.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_imestatuswindow.cxx
+@@ -45,7 +45,7 @@
+ #include "osl/diagnose.h"
+ #include "rtl/ustring.h"
+ #include "sal/types.h"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ 
+ namespace binfilter {
+ 
+diff --git a/binfilter/bf_sfx2/source/doc/sfx2_docfile.cxx b/binfilter/bf_sfx2/source/doc/sfx2_docfile.cxx
+index c42da68..149aa11 100644
+--- binfilter/bf_sfx2/source/doc/sfx2_docfile.cxx
++++ binfilter/bf_sfx2/source/doc/sfx2_docfile.cxx
+@@ -205,7 +205,7 @@ namespace binfilter {
+ /*N*/ {
+ /*N*/     ULONG           m_nAcquireCount;
+ /*N*/     SfxMedium*      m_pMedium;
+-/*N*/     ::vos::OMutex   m_aMutex;
++/*N*/     osl::Mutex   m_aMutex;
+ /*N*/ public:
+ /*N*/                     SfxLockBytesHandler_Impl( SfxMedium* pMedium )
+ /*N*/                         : m_pMedium( pMedium )
+@@ -213,7 +213,7 @@ namespace binfilter {
+ /*N*/                     {}
+ /*N*/
+ /*N*/     virtual void    Handle( ::utl::UcbLockBytesHandler::LoadHandlerItem nWhich, ::utl::UcbLockBytesRef xLockBytes );
+-/*N*/     ::vos::OMutex&  GetMutex()
++/*N*/     osl::Mutex&  GetMutex()
+ /*N*/                     { return m_aMutex; }
+ /*N*/     void            ReleaseMedium()
+ /*N*/                     { m_pMedium = NULL; }
+@@ -223,7 +223,7 @@ namespace binfilter {
+ 
+ /*N*/ void SfxLockBytesHandler_Impl::Handle( ::utl::UcbLockBytesHandler::LoadHandlerItem nWhich, ::utl::UcbLockBytesRef xLockBytes )
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( m_aMutex );
++/*N*/     osl::MutexGuard aGuard( m_aMutex );
+ /*N*/     if ( IsActive() && xLockBytes.Is()&& m_pMedium )
+ /*N*/     {
+ /*N*/         switch( nWhich )
+@@ -1707,7 +1707,7 @@ namespace binfilter {
+         => further the help will be empty then ... #100490#
+      */
+ /*N*/     //CancelTransfers();
+-/*N*/     ::vos::OClearableGuard aGuard( pImp->aHandler->GetMutex() );
++/*N*/     osl::ClearableMutexGuard aGuard( pImp->aHandler->GetMutex() );
+ /*N*/     pImp->aHandler->ReleaseMedium();
+ /*N*/     aGuard.clear();
+ /*N*/
+diff --git a/binfilter/bf_sfx2/source/doc/sfx2_objmisc.cxx b/binfilter/bf_sfx2/source/doc/sfx2_objmisc.cxx
+index 71ddbb9..613942c 100644
+--- binfilter/bf_sfx2/source/doc/sfx2_objmisc.cxx
++++ binfilter/bf_sfx2/source/doc/sfx2_objmisc.cxx
+@@ -46,7 +46,7 @@
+ #include <svtools/intitem.hxx>
+ #endif
+ #include <bf_so3/inetbnd.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <bf_sfx2/app.hxx>
+ 
+ #pragma hdrstop
+diff --git a/binfilter/bf_sfx2/source/doc/sfx2_objuno.cxx b/binfilter/bf_sfx2/source/doc/sfx2_objuno.cxx
+index 9ba934c..9822b91 100644
+--- binfilter/bf_sfx2/source/doc/sfx2_objuno.cxx
++++ binfilter/bf_sfx2/source/doc/sfx2_objuno.cxx
+@@ -84,10 +84,9 @@
+ #include "objshimp.hxx"
+ 
+ #include <osl/mutex.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ namespace binfilter {
+ 
+-using namespace vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::frame;
+@@ -368,7 +367,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ void SAL_CALL  SfxDocumentInfoObject::setFastPropertyValue(sal_Int32 nHandle, const ::com::sun::star::uno::Any& aValue) throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	sal_Bool bModified = sal_True;
+ /*N*/
+ /*N*/ 	if ( aValue.getValueType() == ::getCppuType((const ::rtl::OUString*)0) )
+@@ -568,7 +567,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ ::com::sun::star::uno::Any SAL_CALL  SfxDocumentInfoObject::getFastPropertyValue(sal_Int32 nHandle) throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	::com::sun::star::uno::Any aValue;
+ /*N*/ 	if ( nHandle == WID_CONTENT_TYPE )
+ /*N*/ 	{
+@@ -719,7 +718,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ sal_Int16 SAL_CALL  SfxDocumentInfoObject::getUserFieldCount() throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	return _pInfo->GetUserKeyCount();
+ /*N*/ }
+ 
+@@ -727,7 +726,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ ::rtl::OUString SAL_CALL  SfxDocumentInfoObject::getUserFieldName(sal_Int16 nIndex) throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( nIndex < _pInfo->GetUserKeyCount() )
+ /*N*/ 		return _pInfo->GetUserKey( nIndex ).GetTitle();
+ /*N*/ 	else
+@@ -738,7 +737,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ ::rtl::OUString SAL_CALL  SfxDocumentInfoObject::getUserFieldValue(sal_Int16 nIndex) throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( nIndex < _pInfo->GetUserKeyCount() )
+ /*N*/ 		return _pInfo->GetUserKey( nIndex ).GetWord();
+ /*N*/ 	else
+@@ -749,7 +748,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ void  SAL_CALL SfxDocumentInfoObject::setUserFieldName(sal_Int16 nIndex, const ::rtl::OUString& aName ) throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( nIndex < _pInfo->GetUserKeyCount() )
+ /*N*/ 	{
+ /*N*/ 		const SfxDocUserKey& rKey = _pInfo->GetUserKey( nIndex );
+@@ -764,7 +763,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ void SAL_CALL  SfxDocumentInfoObject::setUserFieldValue( sal_Int16 nIndex, const ::rtl::OUString& aValue ) throw( ::com::sun::star::uno::RuntimeException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( nIndex < _pInfo->GetUserKeyCount() )
+ /*N*/ 	{
+ /*N*/ 		const SfxDocUserKey& rKey = _pInfo->GetUserKey( nIndex );
+@@ -860,7 +859,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ void SAL_CALL  SfxStandaloneDocumentInfoObject::loadFromURL(const ::rtl::OUString& aURL) throw( ::com::sun::star::io::IOException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	sal_Bool bOK = sal_False;
+ /*N*/ 	String aName( aURL );
+ /*N*/     SvStorage* pStorage = GetStorage_Impl( aName, sal_False );
+@@ -922,7 +921,7 @@ using namespace ::com::sun::star::frame;
+ 
+ /*N*/ void SAL_CALL  SfxStandaloneDocumentInfoObject::storeIntoURL(const ::rtl::OUString& aURL) throw( ::com::sun::star::io::IOException )
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	sal_Bool bOK = sal_False;
+ /*N*/ 	String aName( aURL );
+ /*N*/ 	SvStorage* pStor = GetStorage_Impl( aName, sal_True );
+diff --git a/binfilter/bf_sfx2/source/doc/sfx2_objxtor.cxx b/binfilter/bf_sfx2/source/doc/sfx2_objxtor.cxx
+index 64b85a6..0aec1df 100644
+--- binfilter/bf_sfx2/source/doc/sfx2_objxtor.cxx
++++ binfilter/bf_sfx2/source/doc/sfx2_objxtor.cxx
+@@ -39,8 +39,8 @@
+ #include <com/sun/star/util/XCloseable.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_RESARY_HXX
+@@ -621,7 +621,7 @@ Reference< XLibraryContainer > SfxObjectShell::GetBasicContainer()
+ /*N*/ 
+ /*N*/ SEQUENCE< OUSTRING > SfxObjectShell::GetEventNames_Impl()
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	SEQUENCE < OUSTRING > aSequence( 14 );
+ 		OUSTRING* pNames = aSequence.getArray();
+ 		sal_Int32 i=0;
+diff --git a/binfilter/bf_sfx2/source/doc/sfx2_sfxbasemodel.cxx b/binfilter/bf_sfx2/source/doc/sfx2_sfxbasemodel.cxx
+index 18b8178..b302aa8 100644
+--- binfilter/bf_sfx2/source/doc/sfx2_sfxbasemodel.cxx
++++ binfilter/bf_sfx2/source/doc/sfx2_sfxbasemodel.cxx
+@@ -140,7 +140,7 @@
+ #include <ucbhelper/content.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/salctype.hxx>
+ #include <svtools/printdlg.hxx>
+ 
+@@ -509,7 +509,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ REFERENCE< XNAMECONTAINER > SAL_CALL SfxBaseModel::getLibraryContainer() throw( RUNTIMEEXCEPTION )
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -530,7 +530,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ 	const OUSTRING& ExternalSourceURL, const OUSTRING& LinkTargetURL )
+ /*N*/ 		throw(ELEMENTEXISTEXCEPTION, RUNTIMEEXCEPTION)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -549,7 +549,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ 	const OUSTRING& Language, const OUSTRING& Source )
+ /*N*/ 		throw( NOSUCHELEMENTEXCEPTION, RUNTIMEEXCEPTION)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -568,7 +568,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ 	const ::com::sun::star::uno::Sequence< sal_Int8 >& Data )
+ /*N*/ 		throw(NOSUCHELEMENTEXCEPTION, RUNTIMEEXCEPTION)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -602,7 +602,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 		}
+ 	}
+ */
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -615,7 +615,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ void SAL_CALL SfxBaseModel::setParent(const REFERENCE< XINTERFACE >& Parent) throw(NOSUPPORTEXCEPTION, RUNTIMEEXCEPTION)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( Parent.is() && getParent().is() )
+ /*N*/ 		// only set parent when no parent is available
+ /*N*/ 		throw NOSUPPORTEXCEPTION();
+@@ -631,7 +631,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ void SAL_CALL SfxBaseModel::dispose() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/
+ /*N*/ 	// object already disposed?
+ /*N*/ 	if ( impl_isDisposed() )
+@@ -699,7 +699,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/     throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -714,7 +714,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/     throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -728,7 +728,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ REFERENCE< XDOCUMENTINFO > SAL_CALL SfxBaseModel::getDocumentInfo() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -745,7 +745,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::disposing( const EVENTOBJECT& aObject )
+ /*N*/     throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -769,7 +769,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ 												const	SEQUENCE< PROPERTYVALUE >&	rArgs	)
+ /*N*/     throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -832,7 +832,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ OUSTRING SAL_CALL SfxBaseModel::getURL() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -845,7 +845,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ SEQUENCE< PROPERTYVALUE > SAL_CALL SfxBaseModel::getArgs() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -921,7 +921,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::connectController( const REFERENCE< XCONTROLLER >& xController )
+ /*N*/     throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -939,7 +939,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ void SAL_CALL SfxBaseModel::disconnectController( const REFERENCE< XCONTROLLER >& xController ) throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -969,7 +969,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ void SAL_CALL SfxBaseModel::lockControllers() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/ 	++m_pData->m_nControllerLockCount ;
+@@ -981,7 +981,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ void SAL_CALL SfxBaseModel::unlockControllers() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/ 	--m_pData->m_nControllerLockCount ;
+@@ -993,7 +993,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ sal_Bool SAL_CALL SfxBaseModel::hasControllersLocked() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/ 	return ( m_pData->m_nControllerLockCount != 0 ) ;
+@@ -1006,7 +1006,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ REFERENCE< XCONTROLLER > SAL_CALL SfxBaseModel::getCurrentController() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1026,7 +1026,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/         throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1040,7 +1040,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ REFERENCE< XINTERFACE > SAL_CALL SfxBaseModel::getCurrentSelection() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1071,7 +1071,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ sal_Bool SAL_CALL SfxBaseModel::isModified() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1086,7 +1086,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/         throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1101,7 +1101,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::addModifyListener(const REFERENCE< XMODIFYLISTENER >& xListener) throw( RUNTIMEEXCEPTION )
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1115,7 +1115,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::removeModifyListener(const REFERENCE< XMODIFYLISTENER >& xListener) throw( RUNTIMEEXCEPTION )
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1128,7 +1128,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ 
+ /*N*/ void SAL_CALL SfxBaseModel::close( sal_Bool bDeliverOwnership ) throw (CLOSEVETOEXCEPTION, RUNTIMEEXCEPTION)
+ /*N*/ {
+-/*N*/ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( !m_pData || m_pData->m_bClosed || m_pData->m_bClosing )
+ /*N*/ 		return;
+ /*N*/
+@@ -1184,7 +1184,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::addCloseListener( const REFERENCE< XCLOSELISTENER >& xListener ) throw (RUNTIMEEXCEPTION)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1198,7 +1198,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::removeCloseListener( const REFERENCE< XCLOSELISTENER >& xListener ) throw (RUNTIMEEXCEPTION)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1220,7 +1220,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ sal_Bool SAL_CALL SfxBaseModel::hasLocation() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1234,7 +1234,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ OUSTRING SAL_CALL SfxBaseModel::getLocation() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1248,7 +1248,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ sal_Bool SAL_CALL SfxBaseModel::isReadonly() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1262,7 +1262,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::store() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1287,7 +1287,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/         throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1310,7 +1310,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/         throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1331,7 +1331,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ 			   ::com::sun::star::uno::Exception)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1365,7 +1365,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ 			   ::com::sun::star::uno::Exception)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1455,7 +1455,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ REFERENCE< XNAMEREPLACE > SAL_CALL SfxBaseModel::getEvents() throw( RUNTIMEEXCEPTION )
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1474,7 +1474,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::addEventListener( const REFERENCE< XDOCEVENTLISTENER >& aListener ) throw( RUNTIMEEXCEPTION )
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1488,7 +1488,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::removeEventListener( const REFERENCE< XDOCEVENTLISTENER >& aListener ) throw( RUNTIMEEXCEPTION )
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1577,7 +1577,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		return;
+ /*N*/
+@@ -1720,7 +1720,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ REFERENCE < XINDEXACCESS > SAL_CALL SfxBaseModel::getViewData() throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+@@ -1731,7 +1731,7 @@ extern sal_Bool supportsMetaFileHandle_Impl();
+ /*N*/ void SAL_CALL SfxBaseModel::setViewData( const REFERENCE < XINDEXACCESS >& aData ) throw(::com::sun::star::uno::RuntimeException)
+ /*N*/ {
+ /*N*/ 	// object already disposed?
+-/*N*/     ::vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/     osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	if ( impl_isDisposed() )
+ /*N*/ 		throw DISPOSEDEXCEPTION();
+ /*N*/
+diff --git a/binfilter/bf_sfx2/source/inc/eventsupplier.hxx b/binfilter/bf_sfx2/source/inc/eventsupplier.hxx
+index 6df0bad..c17844d 100644
+--- binfilter/bf_sfx2/source/inc/eventsupplier.hxx
++++ binfilter/bf_sfx2/source/inc/eventsupplier.hxx
+@@ -85,7 +85,7 @@
+ #include <sfxuno.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <cppuhelper/interfacecontainer.hxx>
+ #include <svtools/lstner.hxx>
+ class SvxMacro;
+diff --git a/binfilter/bf_starmath/source/starmath_unodoc.cxx b/binfilter/bf_starmath/source/starmath_unodoc.cxx
+index d22bd64..ec644e3 100644
+--- binfilter/bf_starmath/source/starmath_unodoc.cxx
++++ binfilter/bf_starmath/source/starmath_unodoc.cxx
+@@ -44,8 +44,8 @@
+ 
+ #include "smmod.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -69,7 +69,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SmDocument_getSupportedServiceNames()
+ uno::Reference< uno::XInterface > SAL_CALL SmDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SM_MOD(), "No StarMath module!" );
+diff --git a/binfilter/bf_starmath/source/starmath_unomodel.cxx b/binfilter/bf_starmath/source/starmath_unomodel.cxx
+index df45433..e567cf7 100644
+--- binfilter/bf_starmath/source/starmath_unomodel.cxx
++++ binfilter/bf_starmath/source/starmath_unomodel.cxx
+@@ -35,8 +35,8 @@
+ 
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+@@ -308,7 +308,7 @@ uno::Any SAL_CALL SmModel::queryInterface( const uno::Type& rType ) throw(uno::R
+   -----------------------------------------------------------------------*/
+ void SAL_CALL SmModel::acquire() throw()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OWeakObject::acquire();
+ }
+ /*-- 28.03.00 14:18:18---------------------------------------------------
+@@ -316,7 +316,7 @@ void SAL_CALL SmModel::acquire() throw()
+   -----------------------------------------------------------------------*/
+ void SAL_CALL SmModel::release() throw()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OWeakObject::release();
+ }
+ /*-- 28.03.00 14:18:19---------------------------------------------------
+@@ -324,7 +324,7 @@ void SAL_CALL SmModel::release() throw()
+   -----------------------------------------------------------------------*/
+ uno::Sequence< uno::Type > SAL_CALL SmModel::getTypes(  ) throw(uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Type > aTypes = SfxBaseModel::getTypes();
+     sal_Int32 nLen = aTypes.getLength();
+     aTypes.realloc(nLen + 5);
+@@ -411,7 +411,7 @@ sal_Bool SmModel::supportsService(const OUString& rServiceName) throw( uno::Runt
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SmModel::getSupportedServiceNames(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Sequence< OUString > aRet(2);
+ 	OUString* pArray = aRet.getArray();
+@@ -423,7 +423,7 @@ uno::Sequence< OUString > SmModel::getSupportedServiceNames(void) throw( uno::Ru
+ void SmModel::_setPropertyValues(const PropertyMapEntry** ppEntries, const Any* pValues)
+ 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SmDocShell *pDocSh = static_cast < SmDocShell * > (GetObjectShell());
+ 
+@@ -858,7 +858,7 @@ sal_Int32 SAL_CALL SmModel::getRendererCount(
+         const uno::Sequence< beans::PropertyValue >& xOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return 1;
+ }
+ 
+@@ -892,7 +892,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SmModel::getRenderer(
+         const uno::Sequence< beans::PropertyValue >& xOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (0 != nRenderer)
+         throw IllegalArgumentException();
+@@ -926,7 +926,7 @@ void SAL_CALL SmModel::render(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (0 != nRenderer)
+         throw IllegalArgumentException();
+diff --git a/binfilter/bf_svx/source/form/svx_ParseContext.cxx b/binfilter/bf_svx/source/form/svx_ParseContext.cxx
+index 1c85f90..5ac1aa1 100644
+--- binfilter/bf_svx/source/form/svx_ParseContext.cxx
++++ binfilter/bf_svx/source/form/svx_ParseContext.cxx
+@@ -45,8 +45,8 @@
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SHL_HXX
+@@ -66,7 +66,7 @@ using namespace ::connectivity;
+ /*N*/ OSystemParseContext::OSystemParseContext() : IParseContext()
+ /*N*/ {
+ /*N*/ 	DBG_CTOR(OSystemParseContext,NULL);
+-/*N*/ 	vos::OGuard aGuard( Application::GetSolarMutex() );
++/*N*/ 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ /*N*/ 	m_aSQLInternationals = ByteString(SVX_RES(RID_STR_SVT_SQL_INTERNATIONAL),RTL_TEXTENCODING_ASCII_US);
+ /*N*/ }
+ 
+diff --git a/binfilter/bf_svx/source/inc/trace.hxx b/binfilter/bf_svx/source/inc/trace.hxx
+index c6de8b5..89650b9 100644
+--- binfilter/bf_svx/source/inc/trace.hxx
++++ binfilter/bf_svx/source/inc/trace.hxx
+@@ -47,7 +47,7 @@ class Tracer
+ 	DECLARE_STL_STDKEY_MAP( ::oslThreadIdentifier, sal_Int32, MapThreadId2Int );
+ 	static MapThreadId2Int s_aThreadIndents;
+ 
+-	static ::vos::OMutex	s_aMapSafety;
++	static osl::Mutex	s_aMapSafety;
+ 
+ public:
+ 	Tracer(const char* _pBlockDescription);
+diff --git a/binfilter/bf_svx/source/unodraw/svx_UnoNameItemTable.cxx b/binfilter/bf_svx/source/unodraw/svx_UnoNameItemTable.cxx
+index 6dbc310..05238f0 100644
+--- binfilter/bf_svx/source/unodraw/svx_UnoNameItemTable.cxx
++++ binfilter/bf_svx/source/unodraw/svx_UnoNameItemTable.cxx
+@@ -54,8 +54,8 @@
+ #include "UnoNameItemTable.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -67,7 +67,6 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ 
+ SvxUnoNameItemTable::SvxUnoNameItemTable( SdrModel* pModel, USHORT nWhich, BYTE nMemberId ) throw()
+ : mpModel( pModel ),
+@@ -134,7 +133,7 @@ void SAL_CALL SvxUnoNameItemTable::ImplInsertByName( const OUString& aName, cons
+ void SAL_CALL SvxUnoNameItemTable::insertByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( hasByName( aApiName ) )
+ 		throw container::ElementExistException();
+@@ -150,7 +149,7 @@ void SAL_CALL SvxUnoNameItemTable::insertByName( const OUString& aApiName, const
+ void SAL_CALL SvxUnoNameItemTable::removeByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String Name;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, Name );
+@@ -181,7 +180,7 @@ void SAL_CALL SvxUnoNameItemTable::removeByName( const OUString& aApiName )
+ void SAL_CALL SvxUnoNameItemTable::replaceByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, aName );
+@@ -237,7 +236,7 @@ void SAL_CALL SvxUnoNameItemTable::replaceByName( const OUString& aApiName, cons
+ uno::Any SAL_CALL SvxUnoNameItemTable::getByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException,  lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, aName );
+@@ -270,7 +269,7 @@ uno::Any SAL_CALL SvxUnoNameItemTable::getByName( const OUString& aApiName )
+ uno::Sequence< OUString > SAL_CALL SvxUnoNameItemTable::getElementNames(  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	std::set< OUString, comphelper::UStringLess > aNameSet;
+ 
+@@ -307,7 +306,7 @@ uno::Sequence< OUString > SAL_CALL SvxUnoNameItemTable::getElementNames(  )
+ sal_Bool SAL_CALL SvxUnoNameItemTable::hasByName( const OUString& aApiName )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, aName );
+@@ -334,7 +333,7 @@ sal_Bool SAL_CALL SvxUnoNameItemTable::hasByName( const OUString& aApiName )
+ sal_Bool SAL_CALL SvxUnoNameItemTable::hasElements(  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const NameOrIndex *pItem;
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_XPropertyTable.cxx b/binfilter/bf_svx/source/unodraw/svx_XPropertyTable.cxx
+index 73a9fac..90204cf 100644
+--- binfilter/bf_svx/source/unodraw/svx_XPropertyTable.cxx
++++ binfilter/bf_svx/source/unodraw/svx_XPropertyTable.cxx
+@@ -52,8 +52,8 @@
+ #include <com/sun/star/container/XNameContainer.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -83,7 +83,6 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ using namespace ::cppu;
+ using namespace ::rtl;
+-using namespace ::vos;
+ 
+ class SvxUnoXPropertyTable : public WeakImplHelper2< XNameContainer, XServiceInfo >
+ {
+@@ -167,7 +166,7 @@ sal_Bool SAL_CALL SvxUnoXPropertyTable::supportsService( const  OUString& Servic
+ void SAL_CALL SvxUnoXPropertyTable::insertByName( const  OUString& aName, const  Any& aElement )
+ 	throw( IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpList && NULL == mpTable )
+ 		throw IllegalArgumentException();
+@@ -191,7 +190,7 @@ void SAL_CALL SvxUnoXPropertyTable::insertByName( const  OUString& aName, const
+ void SAL_CALL SvxUnoXPropertyTable::removeByName( const  OUString& Name )
+ 	throw( NoSuchElementException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, Name, aInternalName );
+@@ -219,7 +218,7 @@ void SAL_CALL SvxUnoXPropertyTable::removeByName( const  OUString& Name )
+ void SAL_CALL SvxUnoXPropertyTable::replaceByName( const  OUString& aName, const  Any& aElement )
+ 	throw( IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aName, aInternalName );
+@@ -251,7 +250,7 @@ void SAL_CALL SvxUnoXPropertyTable::replaceByName( const  OUString& aName, const
+ Any SAL_CALL SvxUnoXPropertyTable::getByName( const  OUString& aName )
+ 	throw( NoSuchElementException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aName, aInternalName );
+@@ -273,7 +272,7 @@ Any SAL_CALL SvxUnoXPropertyTable::getByName( const  OUString& aName )
+ Sequence<  OUString > SAL_CALL SvxUnoXPropertyTable::getElementNames()
+ 	throw( RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const long nCount = getCount();
+ 	Sequence< OUString > aNames( nCount );
+@@ -297,7 +296,7 @@ Sequence<  OUString > SAL_CALL SvxUnoXPropertyTable::getElementNames()
+ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasByName( const  OUString& aName )
+ 	throw( RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aName, aInternalName );
+@@ -319,7 +318,7 @@ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasByName( const  OUString& aName )
+ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasElements(  )
+ 	throw( RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return getCount() != 0;
+ }
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unomod.cxx b/binfilter/bf_svx/source/unodraw/svx_unomod.cxx
+index 1abd272..f37b494 100644
+--- binfilter/bf_svx/source/unodraw/svx_unomod.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unomod.cxx
+@@ -96,7 +96,6 @@ extern UHashMapEntry pSdrShapeIdentifierMap[];
+ 
+ using namespace ::rtl;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ //-////////////////////////////////////////////////////////////////////
+@@ -451,7 +450,7 @@ sal_Bool SAL_CALL SvxUnoDrawingModel::hasControllersLocked(  )
+ uno::Reference< drawing::XDrawPages > SAL_CALL SvxUnoDrawingModel::getDrawPages()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XDrawPages >  xDrawPages( mxDrawPagesAccess );
+ 
+@@ -465,7 +464,7 @@ uno::Reference< drawing::XDrawPages > SAL_CALL SvxUnoDrawingModel::getDrawPages(
+ uno::Reference< uno::XInterface > SAL_CALL SvxUnoDrawingModel::createInstance( const OUString& aServiceSpecifier )
+ 	throw(uno::Exception, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.DashTable") ) )
+ 	{
+@@ -684,7 +683,7 @@ SvxUnoDrawPagesAccess::~SvxUnoDrawPagesAccess() throw()
+ sal_Int32 SAL_CALL SvxUnoDrawPagesAccess::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = 0;
+ 
+@@ -697,7 +696,7 @@ sal_Int32 SAL_CALL SvxUnoDrawPagesAccess::getCount()
+ uno::Any SAL_CALL SvxUnoDrawPagesAccess::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -749,7 +748,7 @@ sal_Bool SAL_CALL SvxUnoDrawPagesAccess::hasElements()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SvxUnoDrawPagesAccess::insertNewByIndex( sal_Int32 nIndex )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XDrawPage > xDrawPage;
+ 
+@@ -772,7 +771,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SvxUnoDrawPagesAccess::insertNewBy
+ void SAL_CALL SvxUnoDrawPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ 		throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_uInt16 nPageCount = mrModel.mpDoc->GetPageCount();
+ 	if( nPageCount > 1 )
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx b/binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx
+index de5c185..91011b5 100644
+--- binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unomtabl.cxx
+@@ -75,8 +75,8 @@
+ 	
+ #include <vector>
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -89,7 +89,6 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ 
+ typedef std::vector< SfxItemSet* > ItemPoolVector;
+ 
+@@ -219,7 +218,7 @@ void SAL_CALL SvxUnoMarkerTable::ImplInsertByName( const OUString& aName, const
+ void SAL_CALL SvxUnoMarkerTable::insertByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( hasByName( aApiName ) )
+ 		throw container::ElementExistException();
+@@ -233,7 +232,7 @@ void SAL_CALL SvxUnoMarkerTable::insertByName( const OUString& aApiName, const u
+ void SAL_CALL SvxUnoMarkerTable::removeByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String Name;
+ 	SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, Name );
+@@ -264,7 +263,7 @@ void SAL_CALL SvxUnoMarkerTable::removeByName( const OUString& aApiName )
+ void SAL_CALL SvxUnoMarkerTable::replaceByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName );
+@@ -353,7 +352,7 @@ static sal_Bool getByNameFromPool( const String& rSearchName, SfxItemPool* pPool
+ uno::Any SAL_CALL SvxUnoMarkerTable::getByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException,  lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName );
+@@ -402,7 +401,7 @@ static void createNamesForPool( SfxItemPool* pPool, USHORT nWhich, std::set< OUS
+ uno::Sequence< OUString > SAL_CALL SvxUnoMarkerTable::getElementNames()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	std::set< OUString, comphelper::UStringLess > aNameSet;
+ 
+@@ -429,7 +428,7 @@ uno::Sequence< OUString > SAL_CALL SvxUnoMarkerTable::getElementNames()
+ sal_Bool SAL_CALL SvxUnoMarkerTable::hasByName( const OUString& aName )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aName.getLength() == 0 )
+ 		return sal_False;
+@@ -470,7 +469,7 @@ uno::Type SAL_CALL SvxUnoMarkerTable::getElementType(  )
+ sal_Bool SAL_CALL SvxUnoMarkerTable::hasElements(  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	NameOrIndex *pItem;
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unonrule.cxx b/binfilter/bf_svx/source/unodraw/svx_unonrule.cxx
+index a53fc8b..da4f6b8 100644
+--- binfilter/bf_svx/source/unodraw/svx_unonrule.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unonrule.cxx
+@@ -51,8 +51,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <toolkit/unohlp.hxx>
+@@ -68,7 +68,6 @@
+ 
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::std;
+ 
+ /******************************************************************
+@@ -127,7 +126,7 @@ SvxUnoNumberingRules::~SvxUnoNumberingRules() throw()
+ void SAL_CALL SvxUnoNumberingRules::replaceByIndex( sal_Int32 Index, const uno::Any& Element )
+ 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(maRule.GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ 		Index++;
+@@ -145,7 +144,7 @@ void SAL_CALL SvxUnoNumberingRules::replaceByIndex( sal_Int32 Index, const uno::
+ //XIndexAccess
+ sal_Int32 SAL_CALL SvxUnoNumberingRules::getCount() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = maRule.GetLevelCount();
+ 	if(maRule.GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+@@ -157,7 +156,7 @@ sal_Int32 SAL_CALL SvxUnoNumberingRules::getCount() throw( uno::RuntimeException
+ uno::Any SAL_CALL SvxUnoNumberingRules::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(maRule.GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ 		Index++;
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unopage.cxx b/binfilter/bf_svx/source/unodraw/svx_unopage.cxx
+index 5a3b9e1..22e06dd 100644
+--- binfilter/bf_svx/source/unodraw/svx_unopage.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unopage.cxx
+@@ -68,7 +68,6 @@
+ 
+ namespace binfilter {
+ 
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -166,7 +165,7 @@ void SvxDrawPage::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+ void SAL_CALL SvxDrawPage::add( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -199,7 +198,7 @@ void SAL_CALL SvxDrawPage::add( const Reference< drawing::XShape >& xShape )
+ void SAL_CALL SvxDrawPage::remove( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -239,7 +238,7 @@ sal_Int32 SAL_CALL SvxDrawPage::getCount()
+ uno::Any SAL_CALL SvxDrawPage::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pPage == NULL)
+ 		throw uno::RuntimeException();
+@@ -325,7 +324,7 @@ void SvxDrawPage::_SelectObjectInView( const Reference< drawing::XShape > & xSha
+ Reference< drawing::XShapeGroup > SAL_CALL SvxDrawPage::group( const Reference< drawing::XShapes >& xShapes )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(pPage,"SdrPage ist NULL! [CL]");
+ 	DBG_ASSERT(pView, "SdrView ist NULL! [CL]");
+@@ -361,7 +360,7 @@ Reference< drawing::XShapeGroup > SAL_CALL SvxDrawPage::group( const Reference<
+ void SAL_CALL SvxDrawPage::ungroup( const Reference< drawing::XShapeGroup >& aGroup )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(pPage,"SdrPage ist NULL! [CL]");
+ 	DBG_ASSERT(pView, "SdrView ist NULL! [CL]");
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unopool.cxx b/binfilter/bf_svx/source/unodraw/svx_unopool.cxx
+index 3721e9f..1d10c8b 100644
+--- binfilter/bf_svx/source/unodraw/svx_unopool.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unopool.cxx
+@@ -233,7 +233,7 @@ void SvxUnoDrawPool::putAny( SfxItemPool* pPool, const comphelper::PropertyMapEn
+ void SvxUnoDrawPool::_setPropertyValues( const comphelper::PropertyMapEntry** ppEntries, const Any* pValues )
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_False );
+ 
+@@ -248,7 +248,7 @@ void SvxUnoDrawPool::_setPropertyValues( const comphelper::PropertyMapEntry** pp
+ void SvxUnoDrawPool::_getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, Any* pValue )
+ 	throw(UnknownPropertyException, WrappedTargetException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_True );
+ 
+@@ -263,7 +263,7 @@ void SvxUnoDrawPool::_getPropertyValues( const comphelper::PropertyMapEntry** pp
+ void SvxUnoDrawPool::_getPropertyStates( const comphelper::PropertyMapEntry** ppEntries, PropertyState* pStates )
+ 	throw(UnknownPropertyException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_True );
+ 
+@@ -318,7 +318,7 @@ void SvxUnoDrawPool::_getPropertyStates( const comphelper::PropertyMapEntry** pp
+ void SvxUnoDrawPool::_setPropertyToDefault( const comphelper::PropertyMapEntry* pEntry )
+ 	throw(UnknownPropertyException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_True );
+ 
+@@ -329,7 +329,7 @@ void SvxUnoDrawPool::_setPropertyToDefault( const comphelper::PropertyMapEntry*
+ Any SvxUnoDrawPool::_getPropertyDefault( const comphelper::PropertyMapEntry* pEntry )
+ 	throw(UnknownPropertyException, WrappedTargetException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Any aAny;
+ 	getAny( mpDefaultsPool, pEntry, aAny );
+@@ -394,7 +394,7 @@ uno::Sequence< uno::Type > SAL_CALL SvxUnoDrawPool::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL SvxUnoDrawPool::getImplementationId()
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	static uno::Sequence< sal_Int8 > aId;
+ 	if( aId.getLength() == 0 )
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoprov.cxx b/binfilter/bf_svx/source/unodraw/svx_unoprov.cxx
+index ac5a23e..141df52 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoprov.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoprov.cxx
+@@ -1215,7 +1215,7 @@ void SvxUnogetInternalNameForItem( const sal_Int16 nWhich, const ::rtl::OUString
+ 
+ comphelper::PropertySetInfo* SvxPropertySetInfoPool::getOrCreate( sal_Int32 nServiceId ) throw()
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( nServiceId > SVXUNO_SERVICEID_LASTID )
+ 	{
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx
+index bf8ed2b..b4d61e7 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx
+@@ -74,7 +74,6 @@
+ namespace binfilter {
+ 
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -240,7 +239,7 @@ void SAL_CALL SvxShapeGroup::leaveGroup(  ) throw(uno::RuntimeException)
+ void SAL_CALL SvxShapeGroup::add( const uno::Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -279,7 +278,7 @@ void SAL_CALL SvxShapeGroup::add( const uno::Reference< drawing::XShape >& xShap
+ void SAL_CALL SvxShapeGroup::remove( const uno::Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrObject* pSdrShape = NULL;
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+@@ -320,7 +319,7 @@ void SAL_CALL SvxShapeGroup::remove( const uno::Reference< drawing::XShape >& xS
+ //----------------------------------------------------------------------
+ sal_Int32 SAL_CALL SvxShapeGroup::getCount() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nRetval = 0;
+ 
+@@ -336,7 +335,7 @@ sal_Int32 SAL_CALL SvxShapeGroup::getCount() throw( uno::RuntimeException )
+ uno::Any SAL_CALL SvxShapeGroup::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pObj == NULL || pObj->GetSubList() == NULL )
+ 		throw uno::RuntimeException();
+@@ -367,7 +366,7 @@ uno::Type SAL_CALL SvxShapeGroup::getElementType() throw( uno::RuntimeException
+ //----------------------------------------------------------------------
+ sal_Bool SAL_CALL SvxShapeGroup::hasElements() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return pObj && pObj->GetSubList() && (pObj->GetSubList()->GetObjCount() > 0);
+ }
+@@ -485,7 +484,7 @@ void SAL_CALL SvxShapeConnector::setSize( const awt::Size& rSize )
+ 
+ void SAL_CALL SvxShapeConnector::connectStart( const uno::Reference< drawing::XConnectableShape >& xShape, drawing::ConnectionType nPos ) throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
+ 	SvxShape* pShape = SvxShape::getImplementation( xRef );
+@@ -501,7 +500,7 @@ void SAL_CALL SvxShapeConnector::connectStart( const uno::Reference< drawing::XC
+ void SAL_CALL SvxShapeConnector::connectEnd( const uno::Reference< drawing::XConnectableShape >& xShape, drawing::ConnectionType nPos )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
+ 	SvxShape* pShape = SvxShape::getImplementation( xRef );
+@@ -517,7 +516,7 @@ void SAL_CALL SvxShapeConnector::connectEnd( const uno::Reference< drawing::XCon
+ void SAL_CALL SvxShapeConnector::disconnectBegin( const uno::Reference< drawing::XConnectableShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj)
+ 		pObj->DisconnectFromNode( sal_True );
+@@ -530,7 +529,7 @@ void SAL_CALL SvxShapeConnector::disconnectBegin( const uno::Reference< drawing:
+ void SAL_CALL SvxShapeConnector::disconnectEnd( const uno::Reference< drawing::XConnectableShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj)
+ 		pObj->DisconnectFromNode( sal_False );
+@@ -652,7 +651,7 @@ void SAL_CALL SvxShapeControl::setSize( const awt::Size& rSize )
+ Reference< awt::XControlModel > SAL_CALL SvxShapeControl::getControl()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< awt::XControlModel > xModel;
+ 
+@@ -667,7 +666,7 @@ Reference< awt::XControlModel > SAL_CALL SvxShapeControl::getControl()
+ void SAL_CALL SvxShapeControl::setControl( const Reference< awt::XControlModel >& xControl )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrUnoObj* pUnoObj = PTR_CAST(SdrUnoObj, pObj);
+ 	if( pUnoObj )
+@@ -1059,7 +1058,7 @@ void SAL_CALL ImplSvxPolyPolygonToPointSequenceSequence( const drawing::PointSeq
+ void SAL_CALL SvxShapePolyPolygon::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGON)))
+ 	{
+@@ -1163,7 +1162,7 @@ void SAL_CALL ImplSvxPointSequenceSequenceToPolyPolygon( const XPolyPolygon& rPo
+ uno::Any SAL_CALL SvxShapePolyPolygon::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGON)))
+ 	{
+@@ -1234,7 +1233,7 @@ drawing::PolygonKind SvxShapePolyPolygon::GetPolygonKind() const throw()
+ //----------------------------------------------------------------------
+ void SvxShapePolyPolygon::SetPolygon(const XPolyPolygon& rNew) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj)
+ 		((SdrPathObj*)pObj)->SetPathPoly(rNew);
+@@ -1243,7 +1242,7 @@ void SvxShapePolyPolygon::SetPolygon(const XPolyPolygon& rNew) throw()
+ //----------------------------------------------------------------------
+ const XPolyPolygon& SvxShapePolyPolygon::GetPolygon() const throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj)
+ 		return ((SdrPathObj*)pObj)->GetPathPoly();
+@@ -1396,7 +1395,7 @@ void SAL_CALL ImplSvxPolyPolygonBezierCoordsToPolyPolygon( drawing::PolyPolygonB
+ void SAL_CALL SvxShapePolyPolygonBezier::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGONBEZIER)))
+ 	{
+@@ -1469,7 +1468,7 @@ void SAL_CALL ImplSvxPolyPolygonToPolyPolygonBezierCoords( const XPolyPolygon& r
+ uno::Any SAL_CALL SvxShapePolyPolygonBezier::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	uno::Any aAny;
+ 
+ 	if(aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGONBEZIER)))
+@@ -1517,7 +1516,7 @@ drawing::PolygonKind SvxShapePolyPolygonBezier::GetPolygonKind() const throw()
+ //----------------------------------------------------------------------
+ void SvxShapePolyPolygonBezier::SetPolygon(const XPolyPolygon& rNew) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj)
+ 		((SdrPathObj*)pObj)->SetPathPoly(rNew);
+@@ -1526,7 +1525,7 @@ void SvxShapePolyPolygonBezier::SetPolygon(const XPolyPolygon& rNew) throw()
+ //----------------------------------------------------------------------
+ const XPolyPolygon& SvxShapePolyPolygonBezier::GetPolygon() const throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj)
+ 		return ((SdrPathObj*)pObj)->GetPathPoly();
+@@ -1579,7 +1578,7 @@ SvxGraphicObject::~SvxGraphicObject() throw()
+ void SAL_CALL SvxGraphicObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_GRAPHOBJ_FILLBITMAP)))
+ 	{
+@@ -1700,7 +1699,7 @@ void SAL_CALL SvxGraphicObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL SvxGraphicObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_GRAPHOBJ_FILLBITMAP)))
+ 	{
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx
+index 8e26913..04c7a1b 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx
+@@ -63,7 +63,6 @@
+ #include "svdmodel.hxx"
+ namespace binfilter {
+ 
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -156,7 +155,7 @@ uno::Sequence< sal_Int8 > SAL_CALL Svx3DSceneObject::getImplementationId()
+ void SAL_CALL Svx3DSceneObject::add( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -186,7 +185,7 @@ void SAL_CALL Svx3DSceneObject::add( const Reference< drawing::XShape >& xShape
+ void SAL_CALL Svx3DSceneObject::remove( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -227,7 +226,7 @@ void SAL_CALL Svx3DSceneObject::remove( const Reference< drawing::XShape >& xSha
+ sal_Int32 SAL_CALL Svx3DSceneObject::getCount()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nRetval = 0;
+ 
+@@ -241,7 +240,7 @@ sal_Int32 SAL_CALL Svx3DSceneObject::getCount()
+ uno::Any SAL_CALL Svx3DSceneObject::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pObj == NULL || pObj->GetSubList() == NULL )
+ 		throw uno::RuntimeException();
+@@ -272,7 +271,7 @@ uno::Type SAL_CALL Svx3DSceneObject::getElementType()
+ sal_Bool SAL_CALL Svx3DSceneObject::hasElements()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return pObj && pObj->GetSubList() && (pObj->GetSubList()->GetObjCount() > 0);
+ }
+@@ -337,7 +336,7 @@ struct ImpRememberTransAndRect
+ void SAL_CALL Svx3DSceneObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -448,7 +447,7 @@ void SAL_CALL Svx3DSceneObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL Svx3DSceneObject::getPropertyValue( const OUString& PropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -516,7 +515,7 @@ Svx3DCubeObject::~Svx3DCubeObject() throw()
+ void SAL_CALL Svx3DCubeObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -562,7 +561,7 @@ void SAL_CALL Svx3DCubeObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL Svx3DCubeObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -634,7 +633,7 @@ Svx3DSphereObject::~Svx3DSphereObject() throw()
+ void SAL_CALL Svx3DSphereObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)))
+ 	{
+@@ -671,7 +670,7 @@ void SAL_CALL Svx3DSphereObject::setPropertyValue( const OUString& aPropertyName
+ uno::Any SAL_CALL Svx3DSphereObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)))
+ 	{
+@@ -819,7 +818,7 @@ Svx3DLatheObject::~Svx3DLatheObject() throw()
+ void SAL_CALL Svx3DLatheObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -857,7 +856,7 @@ void SAL_CALL Svx3DLatheObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL Svx3DLatheObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -944,7 +943,7 @@ Svx3DExtrudeObject::~Svx3DExtrudeObject() throw()
+ void SAL_CALL Svx3DExtrudeObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -969,7 +968,7 @@ void SAL_CALL Svx3DExtrudeObject::setPropertyValue( const OUString& aPropertyNam
+ uno::Any SAL_CALL Svx3DExtrudeObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -1058,7 +1057,7 @@ Svx3DPolygonObject::~Svx3DPolygonObject() throw()
+ void SAL_CALL Svx3DPolygonObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -1108,7 +1107,7 @@ void SAL_CALL Svx3DPolygonObject::setPropertyValue( const OUString& aPropertyNam
+ uno::Any SAL_CALL Svx3DPolygonObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pObj && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshap4.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshap4.cxx
+index 262b918..e910516 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshap4.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshap4.cxx
+@@ -74,7 +74,6 @@ namespace binfilter {
+ ///////////////////////////////////////////////////////////////////////
+ 
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star::uno;
+@@ -103,7 +102,7 @@ SvxOle2Shape::~SvxOle2Shape() throw()
+ //XPropertySet
+ void SAL_CALL SvxOle2Shape::setPropertyValue( const OUString& aPropertyName, const Any& aValue ) 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CLSID" ) ) )
+ 	{
+@@ -200,7 +199,7 @@ void SAL_CALL SvxOle2Shape::setPropertyValue( const OUString& aPropertyName, con
+ 
+ Any SAL_CALL SvxOle2Shape::getPropertyValue( const OUString& PropertyName ) throw( UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ThumbnailGraphicURL" ) ) )
+ 	{
+@@ -410,7 +409,7 @@ void SvxAppletShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage ) throw (
+ //XPropertySet
+ void SAL_CALL SvxAppletShape::setPropertyValue( const OUString& aPropertyName, const Any& aValue ) 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Bool bOwn = sal_False;
+ 
+@@ -513,7 +512,7 @@ void SAL_CALL SvxAppletShape::setPropertyValue( const OUString& aPropertyName, c
+ 
+ Any SAL_CALL SvxAppletShape::getPropertyValue( const OUString& PropertyName ) throw( UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -577,7 +576,7 @@ void SvxPluginShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage ) throw (
+ void SAL_CALL SvxPluginShape::setPropertyValue( const OUString& aPropertyName, const Any& aValue )
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Bool bOwn = sal_False;
+ 
+@@ -658,7 +657,7 @@ void SAL_CALL SvxPluginShape::setPropertyValue( const OUString& aPropertyName, c
+ 
+ Any SAL_CALL SvxPluginShape::getPropertyValue( const OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -724,7 +723,7 @@ void SvxFrameShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage ) throw ()
+ void SAL_CALL SvxFrameShape::setPropertyValue( const OUString& aPropertyName, const Any& aValue )
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Bool bOwn = sal_False;
+ 
+@@ -853,7 +852,7 @@ void SAL_CALL SvxFrameShape::setPropertyValue( const OUString& aPropertyName, co
+ 
+ Any SAL_CALL SvxFrameShape::getPropertyValue( const OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshape.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshape.cxx
+index e5a09aa..3657217 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshape.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshape.cxx
+@@ -127,7 +127,6 @@
+ namespace binfilter {
+ 
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -257,7 +256,7 @@ SvxShape::SvxShape() throw()
+ //----------------------------------------------------------------------
+ SvxShape::~SvxShape() throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( mnLockCount == 0, "Locked shape was disposed!" );
+ 
+@@ -1004,7 +1003,7 @@ void setLogicRectHack( SdrObject* pObj, const Rectangle& rRect )
+ 
+ awt::Point SAL_CALL SvxShape::getPosition() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pObj && pModel)
+ 	{
+@@ -1027,7 +1026,7 @@ awt::Point SAL_CALL SvxShape::getPosition() throw(uno::RuntimeException)
+ //----------------------------------------------------------------------
+ void SAL_CALL SvxShape::setPosition( const awt::Point& Position ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pObj && pModel )
+ 	{
+@@ -1057,7 +1056,7 @@ void SAL_CALL SvxShape::setPosition( const awt::Point& Position ) throw(uno::Run
+ //----------------------------------------------------------------------
+ awt::Size SAL_CALL SvxShape::getSize() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pObj && pModel)
+ 	{
+@@ -1074,7 +1073,7 @@ awt::Size SAL_CALL SvxShape::getSize() throw(uno::RuntimeException)
+ void SAL_CALL SvxShape::setSize( const awt::Size& rSize )
+ 	throw(beans::PropertyVetoException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pObj && pModel)
+ 	{
+@@ -1157,7 +1156,7 @@ OUString SAL_CALL SvxShape::getShapeType() throw(uno::RuntimeException)
+ //----------------------------------------------------------------------
+ void SAL_CALL SvxShape::dispose() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		return;	// catched a recursion
+@@ -1460,7 +1459,7 @@ void SAL_CALL SvxShape::setPropertyValue( const OUString& rPropertyName, const u
+ void SAL_CALL SvxShape::_setPropertyValue( const OUString& rPropertyName, const uno::Any& rVal )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(rPropertyName);
+ 
+@@ -2077,7 +2076,7 @@ uno::Any SAL_CALL SvxShape::getPropertyValue( const OUString& PropertyName )
+ uno::Any SvxShape::_getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -2686,7 +2685,7 @@ beans::PropertyState SAL_CALL SvxShape::getPropertyState( const OUString& Proper
+ beans::PropertyState SAL_CALL SvxShape::_getPropertyState( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -2802,7 +2801,7 @@ void SAL_CALL SvxShape::setPropertyToDefault( const OUString& PropertyName )
+ void SAL_CALL SvxShape::_setPropertyToDefault( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -2845,7 +2844,7 @@ uno::Any SAL_CALL SvxShape::getPropertyDefault( const OUString& aPropertyName )
+ uno::Any SAL_CALL SvxShape::_getPropertyDefault( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(aPropertyName);
+ 
+@@ -2952,7 +2951,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_GroupServices;
+@@ -2972,7 +2971,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_LineServices;
+@@ -3007,7 +3006,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_RectServices;
+@@ -3045,7 +3044,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_CircServices;
+@@ -3082,7 +3081,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_PathServices;
+@@ -3117,7 +3116,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_PolyServices;
+@@ -3154,7 +3153,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_FreeLineServices;
+@@ -3193,7 +3192,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_FreeFillServices;
+@@ -3231,7 +3230,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_TextServices;
+@@ -3265,7 +3264,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_GrafServices;
+@@ -3297,7 +3296,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_Ole2Services;
+@@ -3317,7 +3316,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_CaptionServices;
+@@ -3353,7 +3352,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_PageServices;
+@@ -3374,7 +3373,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_MeasureServices;
+@@ -3411,7 +3410,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_FrameServices;
+@@ -3432,7 +3431,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_UnoServices;
+@@ -3451,7 +3450,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_EdgeServices;
+@@ -3494,7 +3493,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-					OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_UnoServices;
+@@ -3602,7 +3601,7 @@ void SvxShape::unlock()
+ // XActionLockable
+ sal_Bool SAL_CALL SvxShape::isActionLocked(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return mnLockCount != 0;
+ }
+@@ -3611,7 +3610,7 @@ sal_Bool SAL_CALL SvxShape::isActionLocked(  ) throw (::com::sun::star::uno::Run
+ 
+ void SAL_CALL SvxShape::addActionLock(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( mnLockCount < 0xffff, "lock overflow in SvxShape!" );
+ 	mnLockCount++;
+@@ -3624,7 +3623,7 @@ void SAL_CALL SvxShape::addActionLock(  ) throw (::com::sun::star::uno::RuntimeE
+ 
+ void SAL_CALL SvxShape::removeActionLock(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( mnLockCount > 0, "lock underflow in SvxShape!" );
+ 	mnLockCount--;
+@@ -3637,7 +3636,7 @@ void SAL_CALL SvxShape::removeActionLock(  ) throw (::com::sun::star::uno::Runti
+ 
+ void SAL_CALL SvxShape::setActionLocks( sal_Int16 nLock ) throw (::com::sun::star::uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mnLockCount == 0) && (nLock != 0) )
+ 		unlock();
+@@ -3652,7 +3651,7 @@ void SAL_CALL SvxShape::setActionLocks( sal_Int16 nLock ) throw (::com::sun::sta
+ 
+ sal_Int16 SAL_CALL SvxShape::resetActionLocks(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mnLockCount != 0 )
+ 		unlock();
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshtxt.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshtxt.cxx
+index ab729e4..c2a1611 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshtxt.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshtxt.cxx
+@@ -77,7 +77,6 @@ namespace binfilter {
+ 
+ 
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::rtl;
+ 
+ namespace css = ::com::sun::star;
+@@ -918,7 +917,7 @@ SvxTextEditSource::SvxTextEditSource( SvxTextEditSourceImpl* pImpl )
+ //------------------------------------------------------------------------
+ SvxTextEditSource::~SvxTextEditSource()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	mpImpl->release();
+ }
+diff --git a/binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx b/binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx
+index 588a333..5ef2b22 100644
+--- binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx
++++ binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx
+@@ -41,8 +41,8 @@
+ #include "forbiddencharacterstable.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -59,7 +59,6 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::i18n;
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ 
+ SvxUnoForbiddenCharsTable::SvxUnoForbiddenCharsTable(rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars) :
+@@ -78,7 +77,7 @@ void SvxUnoForbiddenCharsTable::onChange()
+ ForbiddenCharacters SvxUnoForbiddenCharsTable::getForbiddenCharacters( const Locale& rLocale )
+ 	throw(NoSuchElementException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+@@ -94,7 +93,7 @@ ForbiddenCharacters SvxUnoForbiddenCharsTable::getForbiddenCharacters( const Loc
+ sal_Bool SvxUnoForbiddenCharsTable::hasForbiddenCharacters( const Locale& rLocale )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		return sal_False;
+@@ -108,7 +107,7 @@ sal_Bool SvxUnoForbiddenCharsTable::hasForbiddenCharacters( const Locale& rLocal
+ void SvxUnoForbiddenCharsTable::setForbiddenCharacters(const Locale& rLocale, const ForbiddenCharacters& rForbiddenCharacters )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+@@ -122,7 +121,7 @@ void SvxUnoForbiddenCharsTable::setForbiddenCharacters(const Locale& rLocale, co
+ void SvxUnoForbiddenCharsTable::removeForbiddenCharacters( const Locale& rLocale )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+@@ -137,7 +136,7 @@ void SvxUnoForbiddenCharsTable::removeForbiddenCharacters( const Locale& rLocale
+ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales()
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Count() : 0;
+ 
+@@ -159,7 +158,7 @@ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales()
+ sal_Bool SAL_CALL SvxUnoForbiddenCharsTable::hasLocale( const Locale& aLocale )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return hasForbiddenCharacters( aLocale );
+ }
+diff --git a/binfilter/bf_svx/source/unoedit/svx_unoedacc.cxx b/binfilter/bf_svx/source/unoedit/svx_unoedacc.cxx
+index ff86755..8d60486 100644
+--- binfilter/bf_svx/source/unoedit/svx_unoedacc.cxx
++++ binfilter/bf_svx/source/unoedit/svx_unoedacc.cxx
+@@ -45,8 +45,8 @@
+ #include <vector>
+ #include <algorithm>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif 
+ 
+ #ifndef _SV_WINDOW_HXX
+@@ -980,7 +980,7 @@ SvxAccessibleTextHelper_Impl::SvxAccessibleTextHelper_Impl( const uno::Reference
+ 
+ SvxAccessibleTextHelper_Impl::~SvxAccessibleTextHelper_Impl()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     try
+     {
+@@ -1331,7 +1331,7 @@ void SvxAccessibleTextHelper_Impl::UpdateParagraphIndices( sal_Int32 nStart, sal
+ #ifdef DBG_UTIL
+ void SvxAccessibleTextHelper_Impl::CheckInvariants() const
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( !mxFrontEnd.is() )
+         DBG_ERROR( "SvxAccessibleTextHelper: no frontend" );
+@@ -1675,14 +1675,14 @@ void SvxAccessibleTextHelper_Impl::StateChangeEvent( sal_Int32 nParagraph, const
+ // XAccessibleContext
+ sal_Int32 SAL_CALL SvxAccessibleTextHelper_Impl::getAccessibleChildCount() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return mnLastVisibleChild - mnFirstVisibleChild + 1;
+ }
+ 
+ uno::Reference< accessibility::XAccessible > SAL_CALL SvxAccessibleTextHelper_Impl::getAccessibleChild( sal_Int32 i ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( 0 > i || i > getAccessibleChildCount() ||
+         GetTextForwarder().GetParagraphCount() <= i )
+@@ -1783,7 +1783,7 @@ SvxAccessibleTextHelper::SvxAccessibleTextHelper( const uno::Reference< accessib
+                                                   ::std::auto_ptr< SvxEditSource > 						pEditSource ) :
+ 	mpImpl( new SvxAccessibleTextHelper_Impl( rInterface ) )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     SetEditSource( pEditSource );
+ }
+@@ -2441,14 +2441,14 @@ uno::Reference< accessibility::XAccessibleContext > SAL_CALL SvxAccessibleEditab
+ // XAccessibleContext
+ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getAccessibleChildCount() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return HaveChildren() ? 1 : 0;
+ }
+ 
+ uno::Reference< accessibility::XAccessible > SAL_CALL SvxAccessibleEditableTextPara::getAccessibleChild( sal_Int32 i ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( !HaveChildren() )
+         throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No childs available")), 
+@@ -2478,7 +2478,7 @@ sal_Int16 SAL_CALL SvxAccessibleEditableTextPara::getAccessibleRole() throw (uno
+ 
+ ::rtl::OUString SAL_CALL SvxAccessibleEditableTextPara::getAccessibleDescription() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ::rtl::OUString aStr( RTL_CONSTASCII_USTRINGPARAM("Paragraph containing: ") );
+ 
+@@ -2515,7 +2515,7 @@ sal_Int16 SAL_CALL SvxAccessibleEditableTextPara::getAccessibleRole() throw (uno
+ 
+ ::rtl::OUString SAL_CALL SvxAccessibleEditableTextPara::getAccessibleName() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ::rtl::OUString aStr( RTL_CONSTASCII_USTRINGPARAM("Paragraph ") );
+ 
+@@ -2532,7 +2532,7 @@ uno::Reference< accessibility::XAccessibleRelationSet > SAL_CALL SvxAccessibleEd
+ 
+ uno::Reference< accessibility::XAccessibleStateSet > SAL_CALL SvxAccessibleEditableTextPara::getAccessibleStateSet() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     utl::AccessibleStateSetHelper* aStateSet = new ::utl::AccessibleStateSetHelper();
+     uno::Reference< accessibility::XAccessibleStateSet > xStateSet( static_cast< cppu::OWeakObject* > (aStateSet), uno::UNO_QUERY );
+@@ -2569,7 +2569,7 @@ uno::Reference< accessibility::XAccessibleStateSet > SAL_CALL SvxAccessibleEdita
+ 
+ lang::Locale SAL_CALL SvxAccessibleEditableTextPara::getLocale() throw (accessibility::IllegalAccessibleComponentStateException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     lang::Locale		aLocale;
+ 
+@@ -2593,7 +2593,7 @@ void SAL_CALL SvxAccessibleEditableTextPara::removeEventListener( const uno::Ref
+ // XAccessibleComponent
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::containsPoint( const awt::Point& aTmpPoint ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::contains: index value overflow");
+@@ -2607,7 +2607,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::containsPoint( const awt::Point
+ 
+ uno::Reference< accessibility::XAccessible > SAL_CALL SvxAccessibleEditableTextPara::getAccessibleAtPoint( const awt::Point& aPoint ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( HaveChildren() )
+     {
+@@ -2624,7 +2624,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL SvxAccessibleEditableTextP
+ 
+ awt::Rectangle SAL_CALL SvxAccessibleEditableTextPara::getBounds() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getBounds: index value overflow");
+@@ -2648,7 +2648,7 @@ awt::Rectangle SAL_CALL SvxAccessibleEditableTextPara::getBounds() throw (uno::R
+ 
+ awt::Point SAL_CALL SvxAccessibleEditableTextPara::getLocation(  ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     awt::Rectangle aRect = getBounds();
+ 
+@@ -2657,7 +2657,7 @@ awt::Point SAL_CALL SvxAccessibleEditableTextPara::getLocation(  ) throw (uno::R
+ 
+ awt::Point SAL_CALL SvxAccessibleEditableTextPara::getLocationOnScreen(  ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // relate us to parent
+     uno::Reference< accessibility::XAccessible > xParent = getAccessibleParent();
+@@ -2682,7 +2682,7 @@ awt::Point SAL_CALL SvxAccessibleEditableTextPara::getLocationOnScreen(  ) throw
+ 
+ awt::Size SAL_CALL SvxAccessibleEditableTextPara::getSize(  ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     awt::Rectangle aRect = getBounds();
+ 
+@@ -2739,7 +2739,7 @@ uno::Any SAL_CALL SvxAccessibleEditableTextPara::getAccessibleKeyBinding(  ) thr
+ // XAccessibleText
+ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getCaretPosition() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( !HaveEditView() )
+         return -1;
+@@ -2758,7 +2758,7 @@ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getCaretPosition() throw (uno:
+ 
+ sal_Unicode SAL_CALL SvxAccessibleEditableTextPara::getCharacter( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getCharacter: index value overflow");
+@@ -2772,7 +2772,7 @@ sal_Unicode SAL_CALL SvxAccessibleEditableTextPara::getCharacter( sal_Int32 nInd
+ 
+ uno::Sequence< beans::PropertyValue > SAL_CALL SvxAccessibleEditableTextPara::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >getCharacterAttributes( sal_Int32 nIndex ) aRequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     SvxTextForwarder& rCacheTF = GetTextForwarder();
+     USHORT nPara = static_cast< USHORT >( GetParagraphIndex() );
+@@ -2819,7 +2819,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SvxAccessibleEditableTextPara::ge
+ 
+ awt::Rectangle SAL_CALL SvxAccessibleEditableTextPara::getCharacterBounds( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getCharacterBounds: index value overflow");
+@@ -2890,7 +2890,7 @@ awt::Rectangle SAL_CALL SvxAccessibleEditableTextPara::getCharacterBounds( sal_I
+ 
+ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getCharacterCount() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getCharacterCount: index value overflow");
+@@ -2900,7 +2900,7 @@ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getCharacterCount() throw (uno
+ 
+ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getIndexAtPoint( const awt::Point& rPoint ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     USHORT nPara, nIndex;
+ 
+@@ -3012,7 +3012,7 @@ sal_Bool SvxAccessibleEditableTextPara::GetSelection( USHORT& nStartPos, USHORT&
+ 
+ ::rtl::OUString SAL_CALL SvxAccessibleEditableTextPara::getSelectedText() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getSelectedText: index value overflow");
+@@ -3029,7 +3029,7 @@ sal_Bool SvxAccessibleEditableTextPara::GetSelection( USHORT& nStartPos, USHORT&
+ 
+ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getSelectionStart() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getSelectionStart: index value overflow");
+@@ -3046,7 +3046,7 @@ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getSelectionStart() throw (uno
+ 
+ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getSelectionEnd() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getSelectionEnd: index value overflow");
+@@ -3063,7 +3063,7 @@ sal_Int32 SAL_CALL SvxAccessibleEditableTextPara::getSelectionEnd() throw (uno::
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::setSelection: paragraph index value overflow");
+@@ -3076,7 +3076,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartI
+ 
+ ::rtl::OUString SAL_CALL SvxAccessibleEditableTextPara::getText() throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getText: paragraph index value overflow");
+@@ -3086,7 +3086,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartI
+ 
+ ::rtl::OUString SAL_CALL SvxAccessibleEditableTextPara::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+                "SvxAccessibleEditableTextPara::getTextRange: paragraph index value overflow");
+@@ -3098,7 +3098,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartI
+ 
+ ::com::sun::star::accessibility::TextSegment SAL_CALL SvxAccessibleEditableTextPara::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder&	rCacheTF = GetTextForwarder();
+     sal_Int32			nParaIndex = GetParagraphIndex();
+ 
+@@ -3173,7 +3173,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartI
+ 
+ ::com::sun::star::accessibility::TextSegment SAL_CALL SvxAccessibleEditableTextPara::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder&	rCacheTF = GetTextForwarder();
+     sal_Int32			nParaIndex = GetParagraphIndex();
+ 
+@@ -3292,7 +3292,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartI
+ 
+ ::com::sun::star::accessibility::TextSegment SAL_CALL SvxAccessibleEditableTextPara::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();	
+ 	sal_Int32 nParaIndex = GetParagraphIndex();
+ 
+@@ -3409,7 +3409,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setSelection( sal_Int32 nStartI
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();	// MUST be after GetEditViewForwarder(), see method docs
+     sal_Bool aRetVal;
+@@ -3434,7 +3434,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::copyText( sal_Int32 nStartIndex
+ // XAccessibleEditableText
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();	// MUST be after GetEditViewForwarder(), see method docs
+ 
+@@ -3457,7 +3457,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::cutText( sal_Int32 nStartIndex,
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::pasteText( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();	// MUST be after GetEditViewForwarder(), see method docs
+ 
+@@ -3479,7 +3479,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::pasteText( sal_Int32 nIndex ) t
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+@@ -3502,7 +3502,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::deleteText( sal_Int32 nStartInd
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();	
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+@@ -3526,7 +3526,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::insertText( const ::rtl::OUStri
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::rtl::OUString& sReplacement ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();
+ 
+     DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX, 
+@@ -3551,7 +3551,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::replaceText( sal_Int32 nStartIn
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const uno::Sequence< beans::PropertyValue >& aAttributeSet ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SvxTextForwarder& rCacheTF = GetTextForwarder();
+     USHORT nPara = static_cast< USHORT >( GetParagraphIndex() );
+ 
+@@ -3601,7 +3601,7 @@ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setAttributes( sal_Int32 nStart
+ 
+ sal_Bool SAL_CALL SvxAccessibleEditableTextPara::setText( const ::rtl::OUString& sText ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return replaceText(0, getCharacterCount(), sText);
+ }
+diff --git a/binfilter/bf_svx/source/unoedit/svx_unofield.cxx b/binfilter/bf_svx/source/unoedit/svx_unofield.cxx
+index 5e3334f..939d303 100644
+--- binfilter/bf_svx/source/unoedit/svx_unofield.cxx
++++ binfilter/bf_svx/source/unoedit/svx_unofield.cxx
+@@ -45,8 +45,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <rtl/uuid.h>
+@@ -71,7 +71,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -607,7 +606,7 @@ void SAL_CALL SvxUnoTextField::release() throw( )
+ OUString SAL_CALL SvxUnoTextField::getPresentation( sal_Bool bShowCommand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(bShowCommand)
+ 	{
+@@ -665,14 +664,14 @@ void SAL_CALL SvxUnoTextField::removeEventListener( const uno::Reference< lang::
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SvxUnoTextField::getPropertySetInfo(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpPropSet->getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SvxUnoTextField::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpImpl == NULL )
+ 		throw uno::RuntimeException();
+@@ -842,7 +841,7 @@ void SAL_CALL SvxUnoTextField::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL SvxUnoTextField::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aValue;
+ 
+diff --git a/binfilter/bf_svx/source/unoedit/svx_unotext.cxx b/binfilter/bf_svx/source/unoedit/svx_unotext.cxx
+index 5d3a245..c617bb2 100644
+--- binfilter/bf_svx/source/unoedit/svx_unotext.cxx
++++ binfilter/bf_svx/source/unoedit/svx_unotext.cxx
+@@ -86,7 +86,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -221,7 +220,7 @@ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SfxItemPropertyMap* _pMap ) thro
+ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxEditSource* pSource, const SfxItemPropertyMap* _pMap ) throw()
+ : aPropSet(_pMap)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(pSource,"SvxUnoTextRangeBase: I need a valid SvxEditSource!");
+ 
+@@ -234,7 +233,7 @@ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxEditSource* pSource, const Sf
+ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxUnoTextRangeBase& rRange ) throw()
+ : aPropSet(rRange.getPropertyMap())
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	pEditSource = rRange.pEditSource ? rRange.pEditSource->Clone() : NULL;
+ 
+@@ -265,7 +264,7 @@ void SvxUnoTextRangeBase::SetEditSource( SvxEditSource* pSource ) throw()
+     corresponding with this range */
+ void SvxUnoTextRangeBase::attachField( const SvxFieldData* pData ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pData )
+ 	{
+@@ -280,7 +279,7 @@ void SvxUnoTextRangeBase::attachField( const SvxFieldData* pData ) throw()
+ 
+ void SvxUnoTextRangeBase::SetSelection( const ESelection& rSelection ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	aSelection = rSelection;
+ 	CheckSelection( aSelection, pEditSource->GetTextForwarder() );
+@@ -291,7 +290,7 @@ void SvxUnoTextRangeBase::SetSelection( const ESelection& rSelection ) throw()
+ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getStart(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< text::XTextRange > xRange;
+ 
+@@ -321,7 +320,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getStart(void)
+ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getEnd(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< text::XTextRange > xRet;
+ 
+@@ -349,7 +348,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getEnd(void)
+ OUString SAL_CALL SvxUnoTextRangeBase::getString(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = pEditSource ? pEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -368,7 +367,7 @@ OUString SAL_CALL SvxUnoTextRangeBase::getString(void)
+ void SAL_CALL SvxUnoTextRangeBase::setString(const OUString& aString)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = pEditSource ? pEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -408,7 +407,7 @@ void SAL_CALL SvxUnoTextRangeBase::setPropertyValue(const OUString& PropertyName
+ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValue( const OUString& PropertyName, const uno::Any& aValue, sal_Int32 nPara )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = pEditSource ? pEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -548,7 +547,7 @@ uno::Any SAL_CALL SvxUnoTextRangeBase::getPropertyValue(const OUString& Property
+ uno::Any SAL_CALL SvxUnoTextRangeBase::_getPropertyValue(const OUString& PropertyName, sal_Int32 nPara )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -695,7 +694,7 @@ void SAL_CALL SvxUnoTextRangeBase::setPropertyValues( const uno::Sequence< ::rtl
+ 
+ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, const uno::Sequence< uno::Any >& aValues, sal_Int32 nPara ) throw (beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = pEditSource ? pEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -837,7 +836,7 @@ uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::getPropertyValues( const
+ 
+ uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::_getPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, sal_Int32 nPara ) throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 
+@@ -907,7 +906,7 @@ static sal_uInt16 aSvxUnoFontDescriptorWhichMap[] = { EE_CHAR_FONTINFO, EE_CHAR_
+ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const OUString& PropertyName, sal_Int32 nPara /* = -1 */)
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = pEditSource ? pEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -1143,7 +1142,7 @@ void SAL_CALL SvxUnoTextRangeBase::setPropertyToDefault( const OUString& Propert
+ void SvxUnoTextRangeBase::_setPropertyToDefault(const OUString& PropertyName, sal_Int32 nPara /* = -1 */)
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	do
+ 	{
+@@ -1192,7 +1191,7 @@ void SvxUnoTextRangeBase::_setPropertyToDefault(const OUString& PropertyName, sa
+ uno::Any SAL_CALL SvxUnoTextRangeBase::getPropertyDefault( const OUString& aPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = pEditSource ? pEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -1607,14 +1606,14 @@ uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextBase::getImplementationId()
+ uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursor()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return new SvxUnoTextCursor( *this );
+ }
+ 
+ uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursorByRange( const uno::Reference< text::XTextRange >& aTextPosition )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxUnoTextCursor* pCursor = new SvxUnoTextCursor( *this );
+ 	uno::Reference< text::XTextCursor >  xCursor( pCursor );
+@@ -1632,7 +1631,7 @@ uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursorByR
+ void SAL_CALL SvxUnoTextBase::insertString( const uno::Reference< text::XTextRange >& xRange, const OUString& aString, sal_Bool bAbsorb )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !xRange.is() )
+ 		return;
+@@ -1660,7 +1659,7 @@ void SAL_CALL SvxUnoTextBase::insertString( const uno::Reference< text::XTextRan
+ void SAL_CALL SvxUnoTextBase::insertControlCharacter( const uno::Reference< text::XTextRange >& xRange, sal_Int16 nControlCharacter, sal_Bool bAbsorb )
+ 	throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
+ 
+@@ -1748,7 +1747,7 @@ void SAL_CALL SvxUnoTextBase::insertControlCharacter( const uno::Reference< text
+ void SAL_CALL SvxUnoTextBase::insertTextContent( const uno::Reference< text::XTextRange >& xRange, const uno::Reference< text::XTextContent >& xContent, sal_Bool bAbsorb )
+ 	throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -1794,7 +1793,7 @@ void SAL_CALL SvxUnoTextBase::removeTextContent( const uno::Reference< text::XTe
+ uno::Reference< text::XText > SAL_CALL SvxUnoTextBase::getText()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	ESelection aSelection;
+ 	::binfilter::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );//STRIP008 	::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
+@@ -1830,7 +1829,7 @@ void SAL_CALL SvxUnoTextBase::setString( const OUString& aString ) throw(uno::Ru
+ uno::Reference< container::XEnumeration > SAL_CALL SvxUnoTextBase::createEnumeration()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	ESelection aSelection;
+ 	::binfilter::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );//STRIP008 	::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
+@@ -1848,7 +1847,7 @@ uno::Type SAL_CALL SvxUnoTextBase::getElementType(  ) throw(uno::RuntimeExceptio
+ 
+ sal_Bool SAL_CALL SvxUnoTextBase::hasElements(  ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(GetEditSource())
+ 	{
+diff --git a/binfilter/bf_svx/source/unoedit/svx_unotext2.cxx b/binfilter/bf_svx/source/unoedit/svx_unotext2.cxx
+index 5e67266..33e87b1 100644
+--- binfilter/bf_svx/source/unoedit/svx_unotext2.cxx
++++ binfilter/bf_svx/source/unoedit/svx_unotext2.cxx
+@@ -36,8 +36,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #define _SVSTDARR_USHORTS
+@@ -63,7 +63,6 @@
+ namespace binfilter {
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -95,13 +94,13 @@ SvxUnoTextContentEnumeration::~SvxUnoTextContentEnumeration() throw()
+ sal_Bool SAL_CALL SvxUnoTextContentEnumeration::hasMoreElements(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return nNextParagraph < pEditSource->GetTextForwarder()->GetParagraphCount();
+ }
+ 
+ uno::Any SvxUnoTextContentEnumeration::nextElement(void) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!hasMoreElements())
+ 		throw container::NoSuchElementException();
+@@ -255,7 +254,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextContent::getAnchor() throw
+ void SAL_CALL SvxUnoTextContent::dispose()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		return;	// catched a recursion
+@@ -287,7 +286,7 @@ void SAL_CALL SvxUnoTextContent::removeEventListener( const uno::Reference< lang
+ uno::Reference< container::XEnumeration > SAL_CALL SvxUnoTextContent::createEnumeration(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return new SvxUnoTextRangeEnumeration( rParentText, nParagraph );
+ }
+@@ -303,7 +302,7 @@ uno::Type SAL_CALL SvxUnoTextContent::getElementType()
+ sal_Bool SAL_CALL SvxUnoTextContent::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -416,7 +415,7 @@ SvxUnoTextRangeEnumeration::~SvxUnoTextRangeEnumeration() throw()
+ sal_Bool SAL_CALL SvxUnoTextRangeEnumeration::hasMoreElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return pPortions ? nNextPortion < pPortions->Count() : 0;
+ }
+@@ -424,7 +423,7 @@ sal_Bool SAL_CALL SvxUnoTextRangeEnumeration::hasMoreElements()
+ uno::Any SAL_CALL SvxUnoTextRangeEnumeration::nextElement()
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pPortions == NULL || nNextPortion >= pPortions->Count() )
+ 		throw container::NoSuchElementException();
+@@ -553,49 +552,49 @@ uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextCursor::getImplementationId()
+ void SAL_CALL SvxUnoTextCursor::collapseToStart()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	CollapseToStart();
+ }
+ 
+ void SAL_CALL SvxUnoTextCursor::collapseToEnd()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	CollapseToEnd();
+ }
+ 
+ sal_Bool SAL_CALL SvxUnoTextCursor::isCollapsed()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return IsCollapsed();
+ }
+ 
+ sal_Bool SAL_CALL SvxUnoTextCursor::goLeft( sal_Int16 nCount, sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return GoLeft( nCount, bExpand );
+ }
+ 
+ sal_Bool SAL_CALL SvxUnoTextCursor::goRight( sal_Int16 nCount, sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return GoRight( nCount, bExpand );
+ }
+ 
+ void SAL_CALL SvxUnoTextCursor::gotoStart( sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	GotoStart( bExpand );
+ }
+ 
+ void SAL_CALL SvxUnoTextCursor::gotoEnd( sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	GotoEnd( bExpand );
+ }
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx b/binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx
+index 150a335..ff95d6f 100644
+--- binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -122,7 +122,7 @@ Reference< XPropertySetInfo > SAL_CALL SwXTextDefaults::getPropertySetInfo(  )
+ void SAL_CALL SwXTextDefaults::setPropertyValue( const OUString& rPropertyName, const Any& aValue )
+ 		throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     if (!pDoc)
+         throw RuntimeException();
+     const SfxItemPropertyMap *pMap = SfxItemPropertyMap::GetByName( aPropSet.getPropertyMap(), rPropertyName);
+@@ -188,7 +188,7 @@ void SAL_CALL SwXTextDefaults::setPropertyValue( const OUString& rPropertyName,
+ Any SAL_CALL SwXTextDefaults::getPropertyValue( const OUString& rPropertyName )
+ 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     if (!pDoc)
+         throw RuntimeException();
+     const SfxItemPropertyMap *pMap = SfxItemPropertyMap::GetByName( aPropSet.getPropertyMap(), rPropertyName);
+@@ -233,7 +233,7 @@ void SAL_CALL SwXTextDefaults::removeVetoableChangeListener( const OUString& rPr
+ PropertyState SAL_CALL SwXTextDefaults::getPropertyState( const OUString& rPropertyName )
+         throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     PropertyState eRet = PropertyState_DIRECT_VALUE;
+     if (!pDoc)
+         throw RuntimeException();
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unobkm.cxx b/binfilter/bf_sw/source/core/unocore/sw_unobkm.cxx
+index f5b1f9d..2502942 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unobkm.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unobkm.cxx
+@@ -36,8 +36,8 @@
+ 
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -179,7 +179,7 @@ void SwXBookmark::attachToRange(const uno::Reference< text::XTextRange > & xText
+ void SwXBookmark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 							throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 10.12.98 10:14:39---------------------------------------------------
+@@ -187,7 +187,7 @@ void SwXBookmark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXBookmark::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRet;
+ 	SwBookmark* pBkm = GetBookmark();
+ 
+@@ -209,7 +209,7 @@ uno::Reference< text::XTextRange >  SwXBookmark::getAnchor(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ void SwXBookmark::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	if(pBkm)
+ 		GetDoc()->DelBookmark(getName());
+@@ -240,7 +240,7 @@ void SwXBookmark::removeEventListener(const uno::Reference< lang::XEventListener
+   -----------------------------------------------------------------------*/
+ OUString SwXBookmark::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	OUString sRet;
+ 	if(pBkm)
+@@ -256,7 +256,7 @@ OUString SwXBookmark::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXBookmark::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	String sBkName(rName);
+ 	String sOldName = getName();
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx b/binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx
+index 15121dc..64734b4 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx
+@@ -103,8 +103,8 @@
+ #ifndef _OSL_MUTEX_HXX_ //autogen
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_TEXT_XTEXTTABLECURSOR_HPP_
+ #include <com/sun/star/text/XTextTableCursor.hpp>
+@@ -298,7 +298,7 @@ const SvEventDescription* lcl_GetSupportedMacroItems()
+   -----------------------------------------------------------------------*/
+ OUString	SwXServiceProvider::GetProviderName(sal_uInt16 nObjectType)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sRet;
+ 	if(nObjectType <= SW_SERVICE_LAST)
+ 		sRet = C2U(aProvNames[nObjectType]);
+@@ -343,7 +343,7 @@ sal_uInt16	SwXServiceProvider::GetProviderType(const OUString& rServiceName)
+  * --------------------------------------------------*/
+ uno::Reference< uno::XInterface >  	SwXServiceProvider::MakeInstance(sal_uInt16 nObjectType, SwDoc* pDoc)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< uno::XInterface >  xRet;
+ 	switch(nObjectType)
+ 	{
+@@ -617,7 +617,7 @@ SwXTextTables::~SwXTextTables()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextTables::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	if(IsValid())
+ 		nRet = GetDoc()->GetTblFrmFmtCount(sal_True);
+@@ -629,7 +629,7 @@ sal_Int32 SwXTextTables::getCount(void) throw( uno::RuntimeException )
+ uno::Any SAL_CALL SwXTextTables::getByIndex(sal_Int32 nIndex)
+ 		throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -653,7 +653,7 @@ uno::Any SAL_CALL SwXTextTables::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXTextTables::getByName(const OUString& rItemName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -684,7 +684,7 @@ uno::Any SwXTextTables::getByName(const OUString& rItemName)
+ uno::Sequence< OUString > SwXTextTables::getElementNames(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = GetDoc()->GetTblFrmFmtCount(sal_True);
+@@ -707,7 +707,7 @@ uno::Sequence< OUString > SwXTextTables::getElementNames(void)
+ sal_Bool SwXTextTables::hasByName(const OUString& rName)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet= sal_False;
+ 	if(IsValid())
+ 	{
+@@ -741,7 +741,7 @@ uno::Type SAL_CALL
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTables::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 != GetDoc()->GetTblFrmFmtCount(sal_True);
+@@ -775,7 +775,7 @@ uno::Sequence< OUString > SwXTextTables::getSupportedServiceNames(void) throw( u
+   -----------------------------------------------------------------------*/
+ XTextTable* SwXTextTables::GetObject( SwFrmFmt& rFmt )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXTextTable* pTbl = (SwXTextTable*)SwClientIter( rFmt ).
+ 									First( TYPE( SwXTextTable ));
+ 	if( !pTbl )
+@@ -831,7 +831,7 @@ SwXFrames::~SwXFrames()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXFrames::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nRet = 0;
+ 	if(IsValid())
+ 		nRet = GetDoc()->GetFlyCount(eType);
+@@ -845,7 +845,7 @@ sal_Int32 SwXFrames::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXFrames::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -889,7 +889,7 @@ uno::Any SwXFrames::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXFrames::getByName(const OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame* pFrm = 0;
+ 	if(IsValid())
+ 	{
+@@ -938,7 +938,7 @@ uno::Any SwXFrames::getByName(const OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXFrames::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = IsValid() ? GetDoc()->GetFlyCount(eType) : 0;
+@@ -959,7 +959,7 @@ uno::Sequence< OUString > SwXFrames::getElementNames(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXFrames::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -978,7 +978,7 @@ sal_Bool SwXFrames::hasByName(const OUString& rName) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ uno::Type SAL_CALL SwXFrames::getElementType() throw(uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Type aRet;
+ 	switch(eType)
+ 	{
+@@ -1001,7 +1001,7 @@ uno::Type SAL_CALL SwXFrames::getElementType() throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXFrames::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nRet = 0;
+ 	if(IsValid())
+ 		nRet = GetDoc()->GetFlyCount(eType);
+@@ -1204,7 +1204,7 @@ SwXTextSections::~SwXTextSections()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextSections::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwSectionFmts& rSectFmts = GetDoc()->GetSections();
+@@ -1222,7 +1222,7 @@ sal_Int32 SwXTextSections::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTextSections::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+     if(IsValid())
+ 	{
+@@ -1258,7 +1258,7 @@ uno::Any SwXTextSections::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXTextSections::getByName(const OUString& Name)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+     if(IsValid())
+ 	{
+@@ -1288,7 +1288,7 @@ uno::Any SwXTextSections::getByName(const OUString& Name)
+ uno::Sequence< OUString > SwXTextSections::getElementNames(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = GetDoc()->GetSections().Count();
+@@ -1323,7 +1323,7 @@ uno::Sequence< OUString > SwXTextSections::getElementNames(void)
+ sal_Bool SwXTextSections::hasByName(const OUString& Name)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	String aName(Name);
+     if(IsValid())
+@@ -1359,7 +1359,7 @@ uno::Type SAL_CALL SwXTextSections::getElementType() throw(uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextSections::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nCount = 0;
+     if(IsValid())
+ 	{
+@@ -1426,7 +1426,7 @@ SwXBookmarks::~SwXBookmarks()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXBookmarks::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return GetDoc()->GetBookmarkCnt(sal_True);
+@@ -1437,7 +1437,7 @@ sal_Int32 SwXBookmarks::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXBookmarks::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1460,7 +1460,7 @@ uno::Any SwXBookmarks::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXBookmarks::getByName(const ::rtl::OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1489,7 +1489,7 @@ uno::Any SwXBookmarks::getByName(const ::rtl::OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXBookmarks::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = GetDoc()->GetBookmarkCnt(sal_True);
+@@ -1510,7 +1510,7 @@ uno::Sequence< OUString > SwXBookmarks::getElementNames(void) throw( uno::Runtim
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXBookmarks::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(IsValid())
+ 	{
+@@ -1542,7 +1542,7 @@ uno::Type SAL_CALL SwXBookmarks::getElementType() throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXBookmarks::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return GetDoc()->GetBookmarkCnt(sal_True) != 0;
+@@ -1604,7 +1604,7 @@ SwXFootnotes::~SwXFootnotes()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXFootnotes::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_Int32 nCount = 0;
+@@ -1626,7 +1626,7 @@ sal_Int32 SwXFootnotes::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXFootnotes::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	sal_uInt32 nCount = 0;
+ 	if(IsValid())
+@@ -1668,7 +1668,7 @@ uno::Type SAL_CALL SwXFootnotes::getElementType() throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXFootnotes::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return GetDoc()->GetFtnIdxs().Count() > 0;
+@@ -1731,7 +1731,7 @@ SwXReferenceMarks::~SwXReferenceMarks()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXReferenceMarks::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return GetDoc()->GetRefMarks();
+@@ -1742,7 +1742,7 @@ sal_Int32 SwXReferenceMarks::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXReferenceMarks::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+@@ -1766,7 +1766,7 @@ uno::Any SwXReferenceMarks::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXReferenceMarks::getByName(const OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1788,7 +1788,7 @@ uno::Any SwXReferenceMarks::getByName(const OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXReferenceMarks::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Sequence<OUString> aRet;
+ 	if(IsValid())
+ 	{
+@@ -1808,7 +1808,7 @@ uno::Sequence< OUString > SwXReferenceMarks::getElementNames(void) throw( uno::R
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXReferenceMarks::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 != GetDoc()->GetRefMark( rName);
+@@ -1825,7 +1825,7 @@ uno::Type SAL_CALL SwXReferenceMarks::getElementType() throw(uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXReferenceMarks::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 !=	GetDoc()->GetRefMarks();
+@@ -1835,7 +1835,7 @@ sal_Bool SwXReferenceMarks::hasElements(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ SwXReferenceMark* SwXReferenceMarks::GetObject( SwDoc* pDoc, const SwFmtRefMark* pMark )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwClientIter aIter( *pDoc->GetUnoCallBack() );
+ 	SwXReferenceMark* pxMark = (SwXReferenceMark*)aIter.First( TYPE( SwXReferenceMark ));
+ 	while(pxMark)
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx b/binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx
+index 13c712d..dbda9ee 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx
+@@ -126,8 +126,8 @@
+ #ifndef _CRSTATE_HXX //autogen
+ #include <crstate.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COMPHELPER_EXTRACT_HXX_
+ #include <comphelper/extract.hxx>
+@@ -490,7 +490,7 @@ Sequence< Type > SwXDrawPage::getTypes(  ) throw(RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXDrawPage::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(!pDoc->GetDrawModel())
+@@ -507,7 +507,7 @@ sal_Int32 SwXDrawPage::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXDrawPage::getByIndex(sal_Int32 nIndex)
+ 		throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(!pDoc->GetDrawModel())
+@@ -533,7 +533,7 @@ uno::Type  SwXDrawPage::getElementType(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ sal_Bool SwXDrawPage::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(!pDoc->GetDrawModel())
+@@ -548,7 +548,7 @@ sal_Bool SwXDrawPage::hasElements(void) throw( uno::RuntimeException )
+ void SwXDrawPage::add(const uno::Reference< drawing::XShape > & xShape)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	uno::Reference< XUnoTunnel > xShapeTunnel(xShape, uno::UNO_QUERY);
+@@ -684,7 +684,7 @@ void SwXDrawPage::add(const uno::Reference< drawing::XShape > & xShape)
+  * --------------------------------------------------*/
+ void SwXDrawPage::remove(const uno::Reference< drawing::XShape > & xShape) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+     Reference<lang::XComponent> xComp(xShape, UNO_QUERY);
+@@ -695,7 +695,7 @@ void SwXDrawPage::remove(const uno::Reference< drawing::XShape > & xShape) throw
+  * --------------------------------------------------*/
+ uno::Reference< drawing::XShapeGroup >  SwXDrawPage::group(const uno::Reference< drawing::XShapes > & xShapes) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc || !xShapes.is())
+ 		throw uno::RuntimeException();
+ 	uno::Reference< drawing::XShapeGroup >  xRet;
+@@ -746,7 +746,7 @@ uno::Reference< drawing::XShapeGroup >  SwXDrawPage::group(const uno::Reference<
+  * --------------------------------------------------*/
+ void SwXDrawPage::ungroup(const uno::Reference< drawing::XShapeGroup > & xShapeGroup) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(xPageAgg.is())
+@@ -773,7 +773,7 @@ SwFmDrawPage* 	SwXDrawPage::GetSvxPage()
+ {
+ 	if(!xPageAgg.is() && pDoc)
+ 	{
+-		vos::OGuard  aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 		SdrModel* pModel = pDoc->MakeDrawModel();
+ 		SdrPage* pPage = pModel->GetPage( 0 );
+ 
+@@ -923,7 +923,7 @@ Sequence< Type > SwXShape::getTypes(  ) throw(RuntimeException)
+  ---------------------------------------------------------------------------*/
+ Sequence< sal_Int8 > SwXShape::getImplementationId(  ) throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	// do we need to compute the implementation id for this instance?
+     if( !pImplementationId && xShapeAgg.is())
+ 	{
+@@ -967,7 +967,7 @@ Sequence< sal_Int8 > SwXShape::getImplementationId(  ) throw(RuntimeException)
+   -----------------------------------------------------------------------*/
+ uno::Reference< XPropertySetInfo >  SwXShape::getPropertySetInfo(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XPropertySetInfo >  aRet;
+ 	if(xShapeAgg.is())
+ 	{
+@@ -993,7 +993,7 @@ void SwXShape::setPropertyValue(const OUString& rPropertyName, const uno::Any& a
+ 	throw( UnknownPropertyException, PropertyVetoException,
+ 		IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 												_pMap, rPropertyName);
+@@ -1151,7 +1151,7 @@ void SwXShape::setPropertyValue(const OUString& rPropertyName, const uno::Any& a
+ uno::Any SwXShape::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	if(xShapeAgg.is())
+@@ -1252,7 +1252,7 @@ uno::Any SwXShape::getPropertyValue(const OUString& rPropertyName)
+ PropertyState SwXShape::getPropertyState( const OUString& rPropertyName )
+ 	throw(beans::UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	Sequence< OUString > aNames(1);
+ 	OUString* pStrings = aNames.getArray();
+ 	pStrings[0] = rPropertyName;
+@@ -1266,7 +1266,7 @@ Sequence< PropertyState > SwXShape::getPropertyStates(
+ 	const Sequence< OUString >& aPropertyNames )
+ 		throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	Sequence< PropertyState > aRet(aPropertyNames.getLength());
+ 	if(xShapeAgg.is())
+@@ -1374,7 +1374,7 @@ Sequence< PropertyState > SwXShape::getPropertyStates(
+ void SwXShape::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	if(xShapeAgg.is())
+ 	{
+@@ -1427,7 +1427,7 @@ void SwXShape::setPropertyToDefault( const OUString& rPropertyName )
+ Any SwXShape::getPropertyDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	Any aRet;
+ 	if(xShapeAgg.is())
+@@ -1503,7 +1503,7 @@ void SwXShape::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ void SwXShape::attach(const Reference< XTextRange > & xTextRange)
+ 	throw( IllegalArgumentException, RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 
+     // get access to SwDoc
+     // (see also SwXTextRange::XTextRangeToSwPaM)
+@@ -1562,7 +1562,7 @@ void SwXShape::attach(const Reference< XTextRange > & xTextRange)
+  * --------------------------------------------------*/
+ Reference< XTextRange >  SwXShape::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	Reference< XTextRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1586,7 +1586,7 @@ Reference< XTextRange >  SwXShape::getAnchor(void) throw( RuntimeException )
+  * --------------------------------------------------*/
+ void SwXShape::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -1746,7 +1746,7 @@ void SwXGroupShape::release(  ) throw()
+   -----------------------------------------------------------------------*/
+ void SwXGroupShape::add( const Reference< XShape >& xShape ) throw (RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SvxShape* pSvxShape = GetSvxShape();
+     SwFrmFmt* pFmt = GetFrmFmt();
+     if(pSvxShape && pFmt)
+@@ -1806,7 +1806,7 @@ void SwXGroupShape::add( const Reference< XShape >& xShape ) throw (RuntimeExcep
+   -----------------------------------------------------------------------*/
+ void SwXGroupShape::remove( const Reference< XShape >& xShape ) throw (RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     sal_Bool bOk = FALSE;
+     Reference<XShapes> xShapes;
+     if( xShapeAgg.is() )
+@@ -1824,7 +1824,7 @@ void SwXGroupShape::remove( const Reference< XShape >& xShape ) throw (RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXGroupShape::getCount(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     sal_Int32 nRet = 0;
+     Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+@@ -1842,7 +1842,7 @@ sal_Int32 SwXGroupShape::getCount(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ Any SwXGroupShape::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+@@ -1859,7 +1859,7 @@ Any SwXGroupShape::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException
+   -----------------------------------------------------------------------*/
+ uno::Type SwXGroupShape::getElementType(  ) throw(RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+@@ -1876,7 +1876,7 @@ uno::Type SwXGroupShape::getElementType(  ) throw(RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXGroupShape::hasElements(  ) throw(RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unofield.cxx b/binfilter/bf_sw/source/core/unocore/sw_unofield.cxx
+index c684d1a..d4ad126 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unofield.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unofield.cxx
+@@ -220,8 +220,8 @@
+ #endif
+ #define _SVSTDARR_STRINGS
+ #include <svtools/svstdarr.hxx>
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -681,7 +681,7 @@ SwXFieldMaster::~SwXFieldMaster()
+ uno::Reference< XPropertySetInfo >  SwXFieldMaster::getPropertySetInfo(void)
+ 											throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XPropertySetInfo >  aRef = new SfxItemPropertySetInfo(
+ 						aSwMapProvider.GetPropertyMap(
+ 								lcl_GetPropMapIdForFieldType( nResTypeId ) ));
+@@ -695,7 +695,7 @@ void SwXFieldMaster::setPropertyValue( const OUString& rPropertyName,
+ 	throw( UnknownPropertyException, PropertyVetoException,
+ 			IllegalArgumentException, WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SwFieldType* pType = GetFldType(sal_True);
+ 	if(pType)
+ 	{
+@@ -889,7 +889,7 @@ SV_IMPL_PTRARR(SwDependentFields, SwFmtFldPtr)
+ uno::Any SwXFieldMaster::getPropertyValue(const OUString& rPropertyName)
+ 		throw( UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+     SwFieldType* pType = GetFldType(sal_True);
+     if( rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_INSTANCE_NAME)) )
+@@ -1048,7 +1048,7 @@ void SwXFieldMaster::removeVetoableChangeListener(const OUString& PropertyName,
+   -----------------------------------------------------------------------*/
+ void SwXFieldMaster::dispose(void) 			throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SwFieldType* pFldType = GetFldType(sal_True);
+ 	if(pFldType)
+ 	{
+@@ -1300,7 +1300,7 @@ SwXTextField::~SwXTextField()
+ void SwXTextField::attachTextFieldMaster(const uno::Reference< XPropertySet > & xFieldMaster)
+ 					throw( IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!m_bIsDescriptor)
+ 		throw uno::RuntimeException();
+ 	uno::Reference< XUnoTunnel > xMasterTunnel(xFieldMaster, uno::UNO_QUERY);
+@@ -1323,7 +1323,7 @@ void SwXTextField::attachTextFieldMaster(const uno::Reference< XPropertySet > &
+   -----------------------------------------------------------------------*/
+ uno::Reference< XPropertySet >  SwXTextField::getTextFieldMaster(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetRegisteredIn())
+ 		throw uno::RuntimeException();
+ 	SwFieldType* pType = pFmtFld->GetFld()->GetTyp();
+@@ -1339,7 +1339,7 @@ uno::Reference< XPropertySet >  SwXTextField::getTextFieldMaster(void) throw( un
+   -----------------------------------------------------------------------*/
+ OUString SwXTextField::getPresentation(sal_Bool bShowCommand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	OUString sRet;
+ 	const SwField* pField = GetField();
+ 	if(pField)
+@@ -1355,7 +1355,7 @@ void SwXTextField::attachToRange(
+ 		const uno::Reference< XTextRange > & xTextRange)
+ 	throw( IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!m_bIsDescriptor)
+ 		throw uno::RuntimeException();
+ 	uno::Reference<XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+@@ -1872,7 +1872,7 @@ void SwXTextField::attachToRange(
+ void SwXTextField::attach(const uno::Reference< XTextRange > & xTextRange)
+ 	throw( IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 14.12.98 11:37:18---------------------------------------------------
+@@ -1880,7 +1880,7 @@ void SwXTextField::attach(const uno::Reference< XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextField::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >   aRef;
+ 	SwField* pField = (SwField*)GetField();
+ 	if(pField)
+@@ -1903,7 +1903,7 @@ uno::Reference< XTextRange >  SwXTextField::getAnchor(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ void SwXTextField::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwField* pField = (SwField*)GetField();
+ 	if(pField)
+ 	{
+@@ -1939,7 +1939,7 @@ void SwXTextField::removeEventListener(const uno::Reference< XEventListener > &
+ uno::Reference< XPropertySetInfo >  SwXTextField::getPropertySetInfo(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	//kein static
+ 	uno::Reference< XPropertySetInfo >  aRef;
+ 	if(m_nServiceId != USHRT_MAX)
+@@ -1964,7 +1964,7 @@ void SwXTextField::setPropertyValue(const OUString& rPropertyName, const uno::An
+ 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException,
+ 		WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwField* pField = (SwField*)GetField();
+ 	const SfxItemPropertyMap* _pMap = aSwMapProvider.GetPropertyMap(
+ 								lcl_GetPropertyMapOfService( m_nServiceId));
+@@ -2091,7 +2091,7 @@ void SwXTextField::setPropertyValue(const OUString& rPropertyName, const uno::An
+ uno::Any SwXTextField::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	const SwField* pField = GetField();
+ 	const SfxItemPropertyMap* _pMap = aSwMapProvider.GetPropertyMap(
+@@ -2227,7 +2227,7 @@ void SwXTextField::removeVetoableChangeListener(const OUString& PropertyName, co
+  ---------------------------------------------------------------------------*/
+ void SwXTextField::update(  ) throw (RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     const SwField* pFld = GetField();
+     if(pFld)
+     {
+@@ -2453,7 +2453,7 @@ sal_uInt16 lcl_GetIdByName( String& rName, String& rTypeName )
+ uno::Any SwXTextFieldMasters::getByName(const OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 
+@@ -2529,7 +2529,7 @@ sal_Bool SwXTextFieldMasters::getInstanceName(
+ uno::Sequence< OUString > SwXTextFieldMasters::getElementNames(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 
+@@ -2567,7 +2567,7 @@ uno::Sequence< OUString > SwXTextFieldMasters::getElementNames(void)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextFieldMasters::hasByName(const OUString& rName) throw( RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 
+@@ -2594,7 +2594,7 @@ uno::Type  SwXTextFieldMasters::getElementType(void) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextFieldMasters::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return sal_True;
+@@ -2656,7 +2656,7 @@ void SwXTextFieldTypes::Invalidate()
+ uno::Reference< XEnumeration >  SwXTextFieldTypes::createEnumeration(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return new SwXFieldEnumeration(GetDoc());
+@@ -2674,7 +2674,7 @@ uno::Type  SwXTextFieldTypes::getElementType(void) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextFieldTypes::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	//es gibt sie immer
+@@ -2685,7 +2685,7 @@ sal_Bool SwXTextFieldTypes::hasElements(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ void SwXTextFieldTypes::refresh(void)  throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	UnoActionContext aContext(GetDoc());
+@@ -2702,7 +2702,7 @@ void SwXTextFieldTypes::refresh(void)  throw( uno::RuntimeException )
+ void SwXTextFieldTypes::addRefreshListener(const uno::Reference< util::XRefreshListener > & l)
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() )
+ 		throw RuntimeException();
+ 	aRefreshCont.AddListener ( reinterpret_cast < const Reference < lang::XEventListener > &> ( l ));
+@@ -2713,7 +2713,7 @@ void SwXTextFieldTypes::addRefreshListener(const uno::Reference< util::XRefreshL
+ void SwXTextFieldTypes::removeRefreshListener(const uno::Reference< util::XRefreshListener > & l)
+ 	 throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() || !aRefreshCont.RemoveListener ( reinterpret_cast < const Reference < lang::XEventListener > &> ( l ) ) )
+ 		throw RuntimeException();
+ }
+@@ -2803,7 +2803,7 @@ SwXFieldEnumeration::~SwXFieldEnumeration()
+ sal_Bool SwXFieldEnumeration::hasMoreElements(void)
+     throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     return nNextIndex < aItems.getLength();
+ }
+ /*-- 21.12.98 14:57:42---------------------------------------------------
+@@ -2812,7 +2812,7 @@ sal_Bool SwXFieldEnumeration::hasMoreElements(void)
+ uno::Any SwXFieldEnumeration::nextElement(void)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 
+     if (!(nNextIndex < aItems.getLength()))
+         throw NoSuchElementException();
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx
+index 8f19b75..1b92fd5 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx
+@@ -211,8 +211,8 @@
+ #ifndef _NDGRF_HXX
+ #include <ndgrf.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -1018,7 +1018,7 @@ SwXFrame::~SwXFrame()
+   -----------------------------------------------------------------------*/
+ OUString SwXFrame::getName(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1034,7 +1034,7 @@ OUString SwXFrame::getName(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXFrame::setName(const OUString& rName) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	String sTmpName(rName);
+ 	if(pFmt)
+@@ -1129,7 +1129,7 @@ SwFrmFmt *lcl_GetFrmFmt( const uno::Any& rValue, SwDoc *pDoc )
+ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
+ 	throw( UnknownPropertyException, PropertyVetoException, lang::IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+     const SfxItemPropertyMap* pCur = SfxItemPropertyMap::GetByName(_pMap, rPropertyName);
+ 
+@@ -1474,7 +1474,7 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const uno::Any& a
+ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aAny;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+     const SfxItemPropertyMap* pCur = SfxItemPropertyMap::GetByName(_pMap, rPropertyName);
+@@ -1710,7 +1710,7 @@ void SwXFrame::removeVetoableChangeListener(
+ PropertyState SwXFrame::getPropertyState( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Sequence< OUString > aPropertyNames(1);
+ 	OUString* pNames = aPropertyNames.getArray();
+ 	pNames[0] = rPropertyName;
+@@ -1724,7 +1724,7 @@ Sequence< PropertyState > SwXFrame::getPropertyStates(
+ 	const Sequence< OUString >& aPropertyNames )
+ 		throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Sequence< PropertyState > aStates(aPropertyNames.getLength());
+ 	PropertyState* pStates = aStates.getArray();
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+@@ -1789,7 +1789,7 @@ Sequence< PropertyState > SwXFrame::getPropertyStates(
+ void SwXFrame::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -1861,7 +1861,7 @@ void SwXFrame::setPropertyToDefault( const OUString& rPropertyName )
+ Any SwXFrame::getPropertyDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1920,7 +1920,7 @@ void 	SwXFrame::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+   -----------------------------------------------------------------------*/
+ void SwXFrame::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -1945,7 +1945,7 @@ void SwXFrame::dispose(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXFrame::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2267,7 +2267,7 @@ void SwXFrame::attach(const uno::Reference< XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ awt::Point SwXFrame::getPosition(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	RuntimeException aRuntime;
+ 	aRuntime.Message = C2U("position cannot be determined with this method");
+ 	throw aRuntime;
+@@ -2278,7 +2278,7 @@ awt::Point SwXFrame::getPosition(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXFrame::setPosition(const awt::Point& aPosition) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	RuntimeException aRuntime;
+ 	aRuntime.Message = C2U("position cannot be changed with this method");
+ 	throw aRuntime;
+@@ -2395,7 +2395,7 @@ uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL SwXTextFrame::getTypes(  )
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXTextFrame::getImplementationId(  ) throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2439,7 +2439,7 @@ uno::Reference< XTextCursor >   SwXTextFrame::createCursor() throw ( ::com::sun:
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextCursor >  SwXTextFrame::createTextCursor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2489,7 +2489,7 @@ uno::Reference< XTextCursor >  SwXTextFrame::createTextCursor(void) throw( Runti
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextCursor >  SwXTextFrame::createTextCursorByRange(const uno::Reference< XTextRange > & aTextPosition) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	SwUnoInternalPaM aPam(*GetDoc());
+@@ -2513,7 +2513,7 @@ uno::Reference< XTextCursor >  SwXTextFrame::createTextCursorByRange(const uno::
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXTextFrame::createEnumeration(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+  uno::XInterface* pRet = 0;
+@@ -2558,7 +2558,7 @@ void SwXTextFrame::attach(const uno::Reference< XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextFrame::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXFrame::getAnchor();
+ }
+ /*-- 11.12.98 15:23:05---------------------------------------------------
+@@ -2566,7 +2566,7 @@ uno::Reference< XTextRange >  SwXTextFrame::getAnchor(void) throw( RuntimeExcept
+   -----------------------------------------------------------------------*/
+ void SwXTextFrame::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame::dispose();
+ }
+ /*-- 11.12.98 15:23:05---------------------------------------------------
+@@ -2649,7 +2649,7 @@ sal_Int64 SAL_CALL SwXTextFrame::getSomething( const uno::Sequence< sal_Int8 >&
+ uno::Any SwXTextFrame::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     if(rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_START_REDLINE))||
+             rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_END_REDLINE)))
+@@ -2739,7 +2739,7 @@ uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXTextGraphicObject::getImplementationId(  ) throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2761,7 +2761,7 @@ void SwXTextGraphicObject::attach(const uno::Reference< XTextRange > & xTextRang
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextGraphicObject::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXFrame::getAnchor();
+ }
+ /*-- 11.12.98 16:02:28---------------------------------------------------
+@@ -2769,7 +2769,7 @@ uno::Reference< XTextRange >  SwXTextGraphicObject::getAnchor(void) throw( Runti
+   -----------------------------------------------------------------------*/
+ void SwXTextGraphicObject::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame::dispose();
+ }
+ /*-- 11.12.98 16:02:29---------------------------------------------------
+@@ -2919,7 +2919,7 @@ uno::Sequence< uno::Type > SAL_CALL SwXTextEmbeddedObject::getTypes(  ) throw(Ru
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXTextEmbeddedObject::getImplementationId(  ) throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2941,7 +2941,7 @@ void SwXTextEmbeddedObject::attach(const uno::Reference< XTextRange > & xTextRan
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextEmbeddedObject::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXFrame::getAnchor();
+ }
+ /*-- 11.12.98 16:16:54---------------------------------------------------
+@@ -2949,7 +2949,7 @@ uno::Reference< XTextRange >  SwXTextEmbeddedObject::getAnchor(void) throw( Runt
+   -----------------------------------------------------------------------*/
+ void SwXTextEmbeddedObject::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame::dispose();
+ }
+ /*-- 11.12.98 16:16:55---------------------------------------------------
+@@ -3080,7 +3080,7 @@ uno::Reference<container::XNameReplace> SAL_CALL
+ void SwXOLEListener::modified( const EventObject& rEvent )
+ 										throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwOLENode* pNd;
+ 	sal_uInt16 nFndPos = FindEntry( rEvent, &pNd );
+@@ -3098,7 +3098,7 @@ void SwXOLEListener::modified( const EventObject& rEvent )
+ void SwXOLEListener::disposing( const EventObject& rEvent )
+ 						throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference< util::XModifyListener >  xListener( this );
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx
+index c2235be..dd6f593 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx
+@@ -36,8 +36,8 @@
+ 
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -210,7 +210,7 @@ uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL SwXFootnote::getTypes(  )
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXFootnote::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -236,7 +236,7 @@ uno::Any SAL_CALL SwXFootnote::queryInterface( const uno::Type& aType ) throw(un
+   -----------------------------------------------------------------------*/
+ OUString SwXFootnote::getLabel(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRet;
+ 	const SwFmtFtn*  pFmt = SwXFootnote::FindFmt();
+ 	if(pFmt)
+@@ -252,7 +252,7 @@ OUString SwXFootnote::getLabel(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXFootnote::setLabel(const OUString& aLabel) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+ 	{
+@@ -331,7 +331,7 @@ void SwXFootnote::attachToRange(const uno::Reference< text::XTextRange > & xText
+ void SwXFootnote::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 			throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 10.12.98 15:31:48---------------------------------------------------
+@@ -339,7 +339,7 @@ void SwXFootnote::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXFootnote::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRef;
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+@@ -357,7 +357,7 @@ uno::Reference< text::XTextRange >  SwXFootnote::getAnchor(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ void SwXFootnote::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+ 	{
+@@ -414,7 +414,7 @@ uno::Reference< text::XTextCursor >   SwXFootnote::createCursor() throw ( ::com:
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXFootnote::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+@@ -437,7 +437,7 @@ uno::Reference< text::XTextCursor >  SwXFootnote::createTextCursorByRange(
+ 	const uno::Reference< text::XTextRange > & aTextPosition)
+ 			throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	SwUnoInternalPaM aPam(*GetDoc());
+@@ -462,7 +462,7 @@ uno::Reference< text::XTextCursor >  SwXFootnote::createTextCursorByRange(
+   -----------------------------------------------------------------------*/
+ Reference< XEnumeration >  SwXFootnote::createEnumeration() throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+  	uno::XInterface* pRet = 0;
+ 	const SwFmtFtn*  pFmt = FindFmt();
+@@ -555,7 +555,7 @@ void SwXFootnote::setPropertyValue( const ::rtl::OUString&,
+ Any SwXFootnote::getPropertyValue( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aRet;
+ 	if(!SwXParagraph::getDefaultTextContentValue(aRet, rPropertyName))
+ 	{
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx
+index 772722d..5d39087 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx
+@@ -40,8 +40,8 @@
+ #ifndef _TOOLS_DEBUG_HXX //autogen
+ #include <tools/debug.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -441,7 +441,7 @@ OUString SwXDocumentIndex::getServiceName(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXDocumentIndex::update(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXBase* pTOXBase = (SwTOXBaseSection*)GetFmt()->GetSection();
+ 	if(!pTOXBase)
+ 		throw RuntimeException();
+@@ -465,7 +465,7 @@ void SwXDocumentIndex::setPropertyValue(const OUString& rPropertyName,
+ 		throw( UnknownPropertyException, PropertyVetoException,
+  				IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 														_pMap, rPropertyName);
+     if (!pMap)
+@@ -754,7 +754,7 @@ void SwXDocumentIndex::setPropertyValue(const OUString& rPropertyName,
+ uno::Any SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 													_pMap, rPropertyName);
+@@ -1174,7 +1174,7 @@ void SwXDocumentIndex::attachToRange(const Reference< text::XTextRange > & xText
+ void SwXDocumentIndex::attach(const Reference< text::XTextRange > & xTextRange)
+ 	throw( IllegalArgumentException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 15.01.99 14:23:56---------------------------------------------------
+@@ -1182,7 +1182,7 @@ void SwXDocumentIndex::attach(const Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ Reference< text::XTextRange >  SwXDocumentIndex::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< text::XTextRange >   xRet;
+ 	if(GetRegisteredIn())
+ 	{
+@@ -1225,7 +1225,7 @@ void lcl_RemoveChildSections(SwSectionFmt& rParentFmt)
+ }
+ void SwXDocumentIndex::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetRegisteredIn())
+ 	{
+ 		SwSectionFmt*  pSectFmt = GetFmt();
+@@ -1433,7 +1433,7 @@ void SwXDocumentIndexMark::InitMap(TOXTypes eToxType)
+   -----------------------------------------------------------------------*/
+ OUString SwXDocumentIndexMark::getMarkEntry(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	OUString sRet;
+ 	if(pType)
+@@ -1453,7 +1453,7 @@ OUString SwXDocumentIndexMark::getMarkEntry(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXDocumentIndexMark::setMarkEntry(const OUString& rIndexEntry) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	if(pType)
+ 	{
+@@ -1508,7 +1508,7 @@ void SwXDocumentIndexMark::setMarkEntry(const OUString& rIndexEntry) throw( Runt
+ void SwXDocumentIndexMark::attachToRange(const Reference< text::XTextRange > & xTextRange)
+ 				throw( IllegalArgumentException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!bIsDescriptor)
+ 		throw RuntimeException();
+ 
+@@ -1625,7 +1625,7 @@ void SwXDocumentIndexMark::attachToRange(const Reference< text::XTextRange > & x
+ void SwXDocumentIndexMark::attach(const Reference< text::XTextRange > & xTextRange)
+ 				throw( IllegalArgumentException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 14.12.98 10:25:45---------------------------------------------------
+@@ -1633,7 +1633,7 @@ void SwXDocumentIndexMark::attach(const Reference< text::XTextRange > & xTextRan
+   -----------------------------------------------------------------------*/
+ Reference< text::XTextRange >  SwXDocumentIndexMark::getAnchor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< text::XTextRange >  aRet;
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	if(pType)
+@@ -1664,7 +1664,7 @@ Reference< text::XTextRange >  SwXDocumentIndexMark::getAnchor(void) throw( Runt
+   -----------------------------------------------------------------------*/
+ void SwXDocumentIndexMark::dispose(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	if(pType)
+ 	{
+@@ -1726,7 +1726,7 @@ void SwXDocumentIndexMark::setPropertyValue(const OUString& rPropertyName,
+ 	throw( UnknownPropertyException, PropertyVetoException,
+ 		IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 														_pMap, rPropertyName);
+@@ -1865,7 +1865,7 @@ void SwXDocumentIndexMark::setPropertyValue(const OUString& rPropertyName,
+ uno::Any SwXDocumentIndexMark::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2085,7 +2085,7 @@ SwXDocumentIndexes::~SwXDocumentIndexes()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXDocumentIndexes::getCount(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 
+@@ -2106,7 +2106,7 @@ sal_Int32 SwXDocumentIndexes::getCount(void) throw( RuntimeException )
+ uno::Any SwXDocumentIndexes::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 
+@@ -2138,7 +2138,7 @@ uno::Any SwXDocumentIndexes::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXDocumentIndexes::getByName(const OUString& rName)
+ 	throw( container::NoSuchElementException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 
+@@ -2169,7 +2169,7 @@ uno::Any SwXDocumentIndexes::getByName(const OUString& rName)
+ uno::Sequence< OUString > SwXDocumentIndexes::getElementNames(void)
+ 	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 
+@@ -2204,7 +2204,7 @@ uno::Sequence< OUString > SwXDocumentIndexes::getElementNames(void)
+ sal_Bool SwXDocumentIndexes::hasByName(const OUString& rName)
+ 	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 
+@@ -2234,7 +2234,7 @@ uno::Type SwXDocumentIndexes::getElementType(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXDocumentIndexes::hasElements(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	return 0 != getCount();
+@@ -2282,7 +2282,7 @@ SwXIndexStyleAccess_Impl::SwXIndexStyleAccess_Impl(SwXDocumentIndex& rParentIdx)
+ 	rParent(rParentIdx),
+ 	xParent(&rParentIdx)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetStyleAccess(this);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2290,7 +2290,7 @@ SwXIndexStyleAccess_Impl::SwXIndexStyleAccess_Impl(SwXDocumentIndex& rParentIdx)
+   -----------------------------------------------------------------------*/
+ SwXIndexStyleAccess_Impl::~SwXIndexStyleAccess_Impl()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetStyleAccess(0);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2300,7 +2300,7 @@ void SwXIndexStyleAccess_Impl::replaceByIndex(sal_Int32 nIndex, const uno::Any&
+ 	throw( IllegalArgumentException, IndexOutOfBoundsException,
+ 		  WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2341,7 +2341,7 @@ uno::Any SwXIndexStyleAccess_Impl::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException,
+ 	 			RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2419,7 +2419,7 @@ SwXIndexTokenAccess_Impl::SwXIndexTokenAccess_Impl(SwXDocumentIndex& rParentIdx)
+ 	xParent(&rParentIdx),
+ 	nCount(SwForm::GetFormMaxLevel(rParent.GetTOXType()))
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetTokenAccess(this);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2427,7 +2427,7 @@ SwXIndexTokenAccess_Impl::SwXIndexTokenAccess_Impl(SwXDocumentIndex& rParentIdx)
+   -----------------------------------------------------------------------*/
+ SwXIndexTokenAccess_Impl::~SwXIndexTokenAccess_Impl()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetTokenAccess(0);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2437,7 +2437,7 @@ void SwXIndexTokenAccess_Impl::replaceByIndex(sal_Int32 nIndex, const uno::Any&
+ 	throw( IllegalArgumentException, IndexOutOfBoundsException,
+ 			WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2584,7 +2584,7 @@ void SwXIndexTokenAccess_Impl::replaceByIndex(sal_Int32 nIndex, const uno::Any&
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXIndexTokenAccess_Impl::getCount(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2602,7 +2602,7 @@ uno::Any SwXIndexTokenAccess_Impl::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException,
+  		RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx
+index 3078e8a..17fc3d0 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoobj.cxx
+@@ -275,8 +275,8 @@
+ #ifndef _OSL_MUTEX_HXX_ //autogen
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -1113,7 +1113,7 @@ sal_Int64 SAL_CALL SwXTextCursor::getSomething( const uno::Sequence< sal_Int8 >&
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::collapseToStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1134,7 +1134,7 @@ void SwXTextCursor::collapseToStart(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::collapseToEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1155,7 +1155,7 @@ void SwXTextCursor::collapseToEnd(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isCollapsed(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_True;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr && pUnoCrsr->GetMark())
+@@ -1169,7 +1169,7 @@ sal_Bool SwXTextCursor::isCollapsed(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::goLeft(sal_Int16 nCount, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1188,7 +1188,7 @@ sal_Bool SwXTextCursor::goLeft(sal_Int16 nCount, sal_Bool Expand) throw( uno::Ru
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::goRight(sal_Int16 nCount, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1207,7 +1207,7 @@ sal_Bool SwXTextCursor::goRight(sal_Int16 nCount, sal_Bool Expand) throw( uno::R
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1259,7 +1259,7 @@ void SwXTextCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1287,7 +1287,7 @@ void SwXTextCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+ void SwXTextCursor::gotoRange(const uno::Reference< XTextRange > & xRange, sal_Bool bExpand )
+ 								throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pOwnCursor = GetCrsr();
+ 	if(!pOwnCursor || !xRange.is())
+ 	{
+@@ -1426,7 +1426,7 @@ void SwXTextCursor::gotoRange(const uno::Reference< XTextRange > & xRange, sal_B
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isStartOfWord(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1444,7 +1444,7 @@ sal_Bool SwXTextCursor::isStartOfWord(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isEndOfWord(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1462,7 +1462,7 @@ sal_Bool SwXTextCursor::isEndOfWord(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoNextWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	//Probleme gibt's noch mit einem Absatzanfang, an dem kein Wort beginnt.
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+@@ -1492,7 +1492,7 @@ sal_Bool SwXTextCursor::gotoNextWord(sal_Bool Expand) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoPreviousWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// hier machen Leerzeichen am Absatzanfang Probleme
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+@@ -1520,7 +1520,7 @@ sal_Bool SwXTextCursor::gotoPreviousWord(sal_Bool Expand) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoEndOfWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1542,7 +1542,7 @@ sal_Bool SwXTextCursor::gotoEndOfWord(sal_Bool Expand) throw( uno::RuntimeExcept
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoStartOfWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	sal_Bool bRet = FALSE;
+ 	if(pUnoCrsr)
+@@ -1564,7 +1564,7 @@ sal_Bool SwXTextCursor::gotoStartOfWord(sal_Bool Expand) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isStartOfSentence(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1590,7 +1590,7 @@ sal_Bool SwXTextCursor::isStartOfSentence(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isEndOfSentence(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1616,7 +1616,7 @@ sal_Bool SwXTextCursor::isEndOfSentence(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoNextSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1646,7 +1646,7 @@ sal_Bool SwXTextCursor::gotoNextSentence(sal_Bool Expand) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoPreviousSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1673,7 +1673,7 @@ sal_Bool SwXTextCursor::gotoPreviousSentence(sal_Bool Expand) throw( uno::Runtim
+  --------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoStartOfSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1695,7 +1695,7 @@ sal_Bool SwXTextCursor::gotoStartOfSentence(sal_Bool Expand) throw( uno::Runtime
+  --------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoEndOfSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1720,7 +1720,7 @@ sal_Bool SwXTextCursor::gotoEndOfSentence(sal_Bool Expand) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isStartOfParagraph(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1734,7 +1734,7 @@ sal_Bool SwXTextCursor::isStartOfParagraph(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isEndOfParagraph(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1748,7 +1748,7 @@ sal_Bool SwXTextCursor::isEndOfParagraph(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoStartOfParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr )
+@@ -1767,7 +1767,7 @@ sal_Bool SwXTextCursor::gotoStartOfParagraph(sal_Bool Expand) throw( uno::Runtim
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoEndOfParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1786,7 +1786,7 @@ sal_Bool SwXTextCursor::gotoEndOfParagraph(sal_Bool Expand) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoNextParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1803,7 +1803,7 @@ sal_Bool SwXTextCursor::gotoNextParagraph(sal_Bool Expand) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoPreviousParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1827,7 +1827,7 @@ uno::Reference< XText >  SwXTextCursor::getText(void) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextCursor::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextCursor*)this)->GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1845,7 +1845,7 @@ uno::Reference< XTextRange >  SwXTextCursor::getStart(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextCursor::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextCursor*)this)->GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1863,7 +1863,7 @@ uno::Reference< XTextRange >  SwXTextCursor::getEnd(void) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ OUString SwXTextCursor::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString aTxt;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextCursor*)this)->GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1894,7 +1894,7 @@ OUString SwXTextCursor::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -2090,7 +2090,7 @@ void SwXTextCursor::SetPropertyToDefault(
+ 	const OUString& rPropertyName)
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwDoc* pDoc = rPaM.GetDoc();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 							rPropSet.getPropertyMap(), rPropertyName);
+@@ -2167,7 +2167,7 @@ void SwXTextCursor::setPropertyValue(const OUString& rPropertyName, const uno::A
+ 		throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+  			lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aAny;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2195,7 +2195,7 @@ void SwXTextCursor::setPropertyValue(const OUString& rPropertyName, const uno::A
+ Any SwXTextCursor::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aAny;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2252,7 +2252,7 @@ void SwXTextCursor::removeVetoableChangeListener(const OUString& PropertyName, c
+ beans::PropertyState SwXTextCursor::getPropertyState(const OUString& rPropertyName)
+ 						throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	beans::PropertyState eRet = beans::PropertyState_DEFAULT_VALUE;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2270,7 +2270,7 @@ uno::Sequence< beans::PropertyState > SwXTextCursor::getPropertyStates(
+ 			const uno::Sequence< OUString >& PropertyNames)
+ 			throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw RuntimeException();
+@@ -2298,7 +2298,7 @@ uno::Any SwXTextCursor::getPropertyDefault(const OUString& rPropertyName)
+ void SAL_CALL SwXTextCursor::setAllPropertiesToDefault()
+ 	throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 		lcl_SelectParaAndReset ( *pUnoCrsr, pUnoCrsr->GetDoc());
+@@ -2308,7 +2308,7 @@ void SAL_CALL SwXTextCursor::setAllPropertiesToDefault()
+ void SAL_CALL SwXTextCursor::setPropertiesToDefault( const Sequence< OUString >& aPropertyNames )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 	if ( nCount )
+ 	{
+@@ -2360,7 +2360,7 @@ void SAL_CALL SwXTextCursor::setPropertiesToDefault( const Sequence< OUString >&
+ Sequence< Any > SAL_CALL SwXTextCursor::getPropertyDefaults( const Sequence< OUString >& aPropertyNames )
+ 	throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 	Sequence < Any > aRet ( nCount );
+ 	if ( nCount )
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx
+index ae13510..3c1aa57 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx
+@@ -283,8 +283,8 @@
+ #ifndef _OSL_MUTEX_HXX_ //autogen
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -434,7 +434,7 @@ void SwXTextCursor::insertDocumentFromURL(const OUString& rURL,
+ 	const uno::Sequence< beans::PropertyValue >& aOptions)
+ 	throw( lang::IllegalArgumentException, io::IOException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -571,7 +571,7 @@ uno::Sequence< beans::PropertyValue > SwXTextCursor::createSortDescriptor(sal_Bo
+   -----------------------------------------------------------------------*/
+ uno::Sequence< beans::PropertyValue > SwXTextCursor::createSortDescriptor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXTextCursor::createSortDescriptor(sal_False);
+ }
+ /* -----------------------------15.12.00 14:06--------------------------------
+@@ -780,7 +780,7 @@ sal_Bool SwXTextCursor::convertSortProperties(
+ void SwXTextCursor::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSortOptions aSortOpt;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+@@ -1155,7 +1155,7 @@ SwXParagraphEnumeration::~SwXParagraphEnumeration()
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXParagraphEnumeration::hasMoreElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1193,7 +1193,7 @@ sal_Bool SwXParagraphEnumeration::hasMoreElements(void) throw( uno::RuntimeExcep
+ uno::Any SwXParagraphEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextContent >  aRef;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1501,7 +1501,7 @@ void 	SwXTextRange::DeleteAndInsert(const String& rText) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ uno::Reference< XText >  SwXTextRange::getText(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xParentText.is())
+ 	{
+ 		if(eRangePosition == RANGE_IN_FRAME &&
+@@ -1556,7 +1556,7 @@ uno::Reference< XText >  SwXTextRange::getText(void) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextRange::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwBookmark* pBkm = GetBookmark();
+ 	if(!xParentText.is())
+@@ -1580,7 +1580,7 @@ uno::Reference< XTextRange >  SwXTextRange::getStart(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextRange::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwBookmark* pBkm = GetBookmark();
+ 	if(!xParentText.is())
+@@ -1604,7 +1604,7 @@ uno::Reference< XTextRange >  SwXTextRange::getEnd(void) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ OUString SwXTextRange::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	OUString sRet;
+ 	//fuer Tabellen gibt es keine Bookmark, also auch keinen Text
+@@ -1638,7 +1638,7 @@ OUString SwXTextRange::getString(void) throw( uno::RuntimeException )
+ void SwXTextRange::setString(const OUString& aString)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(RANGE_IS_TABLE == eRangePosition)
+ 	{
+ 		//setString in Tabellen kann nicht erlaubt werden
+@@ -2090,7 +2090,7 @@ Sequence< OUString > SAL_CALL SwXTextRange::getAvailableServiceNames(void) throw
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySetInfo > SAL_CALL SwXTextRange::getPropertySetInfo(  ) throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	static Reference< XPropertySetInfo > xRef =
+ 		aPropSet.getPropertySetInfo();
+ 	return xRef;
+@@ -2103,7 +2103,7 @@ void SAL_CALL SwXTextRange::setPropertyValue(
+ 	throw(UnknownPropertyException, PropertyVetoException,
+ 		IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(GetDoc()->GetNodes());
+@@ -2116,7 +2116,7 @@ void SAL_CALL SwXTextRange::setPropertyValue(
+ Any SAL_CALL SwXTextRange::getPropertyValue( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2165,7 +2165,7 @@ void SAL_CALL SwXTextRange::removeVetoableChangeListener(
+ PropertyState SAL_CALL SwXTextRange::getPropertyState( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2178,7 +2178,7 @@ PropertyState SAL_CALL SwXTextRange::getPropertyState( const OUString& rProperty
+ Sequence< PropertyState > SAL_CALL SwXTextRange::getPropertyStates(
+ 	const Sequence< OUString >& rPropertyName ) throw(UnknownPropertyException, RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2191,7 +2191,7 @@ Sequence< PropertyState > SAL_CALL SwXTextRange::getPropertyStates(
+ void SAL_CALL SwXTextRange::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2204,7 +2204,7 @@ void SAL_CALL SwXTextRange::setPropertyToDefault( const OUString& rPropertyName
+ Any SAL_CALL SwXTextRange::getPropertyDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2323,7 +2323,7 @@ SwXTextRanges::~SwXTextRanges()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextRanges::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	SwUnoCrsr* pCrsr = GetCrsr();
+ 	if(pCrsr)
+@@ -2342,7 +2342,7 @@ sal_Int32 SwXTextRanges::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTextRanges::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  aRef;
+ 	XTextRangeArr* pArr = ((SwXTextRanges*)this)->GetRangesArray();
+ 	if(pArr && pArr->Count() > nIndex)
+@@ -2367,7 +2367,7 @@ uno::Type  SwXTextRanges::getElementType(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextRanges::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return getCount() > 0;
+ }
+ /* -----------------10.12.98 14:25-------------------
+@@ -2542,7 +2542,7 @@ void SwXParaFrameEnumeration::FillFrame(SwUnoCrsr& rUnoCrsr)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXParaFrameEnumeration::hasMoreElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetCrsr())
+ 		throw uno::RuntimeException();
+ 	return xNextObject.is() ? sal_True : CreateNextObject();
+@@ -2553,7 +2553,7 @@ sal_Bool SwXParaFrameEnumeration::hasMoreElements(void) throw( uno::RuntimeExcep
+ uno::Any SwXParaFrameEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetCrsr())
+ 		throw uno::RuntimeException();
+ 	if(!xNextObject.is() && aFrameArr.Count())
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx
+index c4e827f..503a2c7 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx
+@@ -71,8 +71,8 @@
+ #ifndef _NDTXT_HXX //autogen
+ #include <ndtxt.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -248,7 +248,7 @@ void SwXParagraph::setPropertyValue(const OUString& rPropertyName, const Any& aV
+     throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException,
+         WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence<OUString> aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     Sequence<Any> aValues(1);
+@@ -261,7 +261,7 @@ void SwXParagraph::setPropertyValue(const OUString& rPropertyName, const Any& aV
+ uno::Any SwXParagraph::getPropertyValue(const OUString& rPropertyName)
+     throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence<OUString> aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     Sequence< Any > aRet = getPropertyValues(aPropertyNames );
+@@ -276,7 +276,7 @@ void SwXParagraph::setPropertyValues(
+         throw(PropertyVetoException, IllegalArgumentException,
+                         WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -311,7 +311,7 @@ Sequence< Any > SwXParagraph::getPropertyValues(
+     const Sequence< OUString >& rPropertyNames )
+         throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< Any > aValues(rPropertyNames.getLength());
+     SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -498,7 +498,7 @@ beans::PropertyState lcl_SwXParagraph_getPropertyState(
+ beans::PropertyState SwXParagraph::getPropertyState(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	beans::PropertyState eRet = beans::PropertyState_DEFAULT_VALUE;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if( pUnoCrsr )
+@@ -524,7 +524,7 @@ uno::Sequence< beans::PropertyState > SwXParagraph::getPropertyStates(
+ 		const uno::Sequence< OUString >& PropertyNames)
+ 		throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const OUString* pNames = PropertyNames.getConstArray();
+ 	uno::Sequence< beans::PropertyState > aRet(PropertyNames.getLength());
+ 	beans::PropertyState* pStates = aRet.getArray();
+@@ -559,7 +559,7 @@ uno::Sequence< beans::PropertyState > SwXParagraph::getPropertyStates(
+ void SwXParagraph::setPropertyToDefault(const OUString& rPropertyName)
+ 		throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -655,7 +655,7 @@ uno::Any SwXParagraph::getPropertyDefault(const OUString& rPropertyName)
+ void SwXParagraph::attach(const uno::Reference< XTextRange > & xTextRange)
+ 					throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // SwXParagraph will only created in order to be inserteb by
+     // 'insertTextContentBefore' or 'insertTextContentAfter' therefore
+     // they cannot be attached
+@@ -666,7 +666,7 @@ void SwXParagraph::attach(const uno::Reference< XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXParagraph::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  aRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -684,7 +684,7 @@ uno::Reference< XTextRange >  SwXParagraph::getAnchor(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ void SwXParagraph::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -721,7 +721,7 @@ void SwXParagraph::removeEventListener(const uno::Reference< lang::XEventListene
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXParagraph::createEnumeration(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -743,7 +743,7 @@ uno::Type SwXParagraph::getElementType(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXParagraph::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(((SwXParagraph*)this)->GetCrsr())
+ 		return sal_True;
+ 	else
+@@ -761,7 +761,7 @@ uno::Reference< XText >  SwXParagraph::getText(void) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXParagraph::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if( pUnoCrsr)
+@@ -779,7 +779,7 @@ uno::Reference< XTextRange >  SwXParagraph::getStart(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXParagraph::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if( pUnoCrsr)
+@@ -797,7 +797,7 @@ uno::Reference< XTextRange >  SwXParagraph::getEnd(void) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ OUString SwXParagraph::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString aRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if( pUnoCrsr)
+@@ -816,7 +816,7 @@ OUString SwXParagraph::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXParagraph::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+ 	if(pUnoCrsr)
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoport.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoport.cxx
+index c09f974..0e6f559 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoport.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoport.cxx
+@@ -37,8 +37,8 @@
+ #pragma hdrstop
+ 
+ #include <cmdid.h>
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -221,7 +221,7 @@ uno::Reference< XText >  SwXTextPortion::getText(void) throw( uno::RuntimeExcept
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextPortion::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -239,7 +239,7 @@ uno::Reference< XTextRange >  SwXTextPortion::getStart(void) throw( uno::Runtime
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextPortion::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -257,7 +257,7 @@ uno::Reference< XTextRange >  SwXTextPortion::getEnd(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ OUString SwXTextPortion::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String aTxt;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -280,7 +280,7 @@ OUString SwXTextPortion::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 		SwXTextCursor::SetString(*pUnoCrsr, aString);
+@@ -312,7 +312,7 @@ void SwXTextPortion::setPropertyValue(const OUString& rPropertyName,
+ 	throw( beans::UnknownPropertyException,
+ 		beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -485,7 +485,7 @@ uno::Any SwXTextPortion::getPropertyValue(
+     const OUString& rPropertyName)
+         throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aAny;
+ 	GetPropertyValues( &rPropertyName, &aAny, 1 );
+     return aAny;
+@@ -499,7 +499,7 @@ void SwXTextPortion::setPropertyValues(
+         throw(PropertyVetoException, IllegalArgumentException,
+             WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -528,7 +528,7 @@ Sequence< Any > SwXTextPortion::getPropertyValues(
+     const Sequence< OUString >& rPropertyNames )
+         throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< Any > aValues(rPropertyNames.getLength());
+ 
+ 	GetPropertyValues( rPropertyNames.getConstArray(),
+@@ -596,7 +596,7 @@ void SwXTextPortion::removeVetoableChangeListener(const OUString& PropertyName,
+ beans::PropertyState SwXTextPortion::getPropertyState(const OUString& rPropertyName)
+ 			throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	beans::PropertyState eRet = beans::PropertyState_DEFAULT_VALUE;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -618,7 +618,7 @@ uno::Sequence< beans::PropertyState > SwXTextPortion::getPropertyStates(
+         const uno::Sequence< OUString >& rPropertyNames)
+ 		throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw RuntimeException();
+@@ -642,7 +642,7 @@ uno::Sequence< beans::PropertyState > SwXTextPortion::getPropertyStates(
+ void SwXTextPortion::setPropertyToDefault(const OUString& rPropertyName)
+ 				throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -672,7 +672,7 @@ uno::Any SwXTextPortion::getPropertyDefault(const OUString& rPropertyName)
+   -----------------------------------------------------------------------*/
+ OUString SwXTextPortion::getPresentation(sal_Bool bShowCommand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	String sRet;
+ 	SwFmtFld* pFmt = 0;
+@@ -690,7 +690,7 @@ OUString SwXTextPortion::getPresentation(sal_Bool bShowCommand) throw( uno::Runt
+ void SwXTextPortion::attach(const uno::Reference< XTextRange > & xTextRange)
+     throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // SwXTextPortion cannot be created at the factory therefore
+     // they cannot be attached
+     throw uno::RuntimeException();
+@@ -700,7 +700,7 @@ void SwXTextPortion::attach(const uno::Reference< XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextPortion::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  aRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -714,7 +714,7 @@ uno::Reference< XTextRange >  SwXTextPortion::getAnchor(void) throw( uno::Runtim
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -729,7 +729,7 @@ void SwXTextPortion::dispose(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::addEventListener(const uno::Reference< lang::XEventListener > & aListener) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetRegisteredIn())
+ 		throw uno::RuntimeException();
+ 	aLstnrCntnr.AddListener(aListener);
+@@ -739,7 +739,7 @@ void SwXTextPortion::addEventListener(const uno::Reference< lang::XEventListener
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::removeEventListener(const uno::Reference< lang::XEventListener > & aListener) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetRegisteredIn() || !aLstnrCntnr.RemoveListener(aListener))
+ 		throw uno::RuntimeException();
+ }
+@@ -749,7 +749,7 @@ void SwXTextPortion::removeEventListener(const uno::Reference< lang::XEventListe
+ uno::Reference< container::XEnumeration >  SwXTextPortion::createContentEnumeration(const OUString& aServiceName)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -784,7 +784,7 @@ sal_Int64 SwXTextPortion::getSomething( const uno::Sequence< sal_Int8 >& rId )
+  * --------------------------------------------------*/
+ uno::Sequence< OUString > SwXTextPortion::getAvailableServiceNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Sequence< OUString > aRet(1);
+ 	OUString* pArray = aRet.getArray();
+ 	pArray[0] = C2U("com.sun.star.text.TextContent");
+@@ -802,7 +802,7 @@ OUString SwXTextPortion::getImplementationName(void) throw( uno::RuntimeExceptio
+  * --------------------------------------------------*/
+ sal_Bool SwXTextPortion::supportsService(const OUString& rServiceName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -852,7 +852,7 @@ sal_Bool SwXTextPortion::supportsService(const OUString& rServiceName) throw( un
+ uno::Sequence< OUString > SwXTextPortion::getSupportedServiceNames(void)
+ 												throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx
+index 8610108..4fe5b0e 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx
+@@ -94,8 +94,8 @@
+ #ifndef _CRSSKIP_HXX
+ #include <crsskip.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -204,7 +204,7 @@ SwXTextPortionEnumeration::~SwXTextPortionEnumeration()
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextPortionEnumeration::hasMoreElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aPortionArr.Count() > 0;
+ }
+ /*-- 27.01.99 10:44:45---------------------------------------------------
+@@ -213,7 +213,7 @@ sal_Bool SwXTextPortionEnumeration::hasMoreElements(void) throw( uno::RuntimeExc
+ uno::Any SwXTextPortionEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!aPortionArr.Count())
+ 		throw container::NoSuchElementException();
+ 	XTextRangeRefPtr pPortion = aPortionArr.GetObject(0);
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx
+index 72860f5..6730f5d 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx
+@@ -36,8 +36,8 @@
+ 
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -177,7 +177,7 @@ Sequence<Type> SwXRedlineText::getTypes()
+ Sequence<sal_Int8> SwXRedlineText::getImplementationId()
+ 	throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -193,7 +193,7 @@ Sequence<sal_Int8> SwXRedlineText::getImplementationId()
+ Reference<XTextCursor> SwXRedlineText::createTextCursor(void)
+ 	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwPosition aPos(aNodeIndex);
+ 	SwXTextCursor* pCrsr = new SwXTextCursor(this, aPos, CURSOR_REDLINE,
+@@ -249,7 +249,7 @@ Reference<XTextCursor> SwXRedlineText::createTextCursorByRange(
+ Reference<XEnumeration> SwXRedlineText::createEnumeration(void)
+ 	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwPaM aPam(aNodeIndex);
+ 	aPam.Move(fnMoveForward, fnGoNode);
+ 	return new SwXParagraphEnumeration(this, *aPam.Start(), CURSOR_REDLINE);
+@@ -342,7 +342,7 @@ Sequence<PropertyValue> lcl_GetSuccessorProperties(const SwRedline& rRedline)
+ Any SwXRedlinePortion::getPropertyValue( const OUString& rPropertyName )
+ 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Validate();
+ 	Any aRet;
+ 	if(rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_REDLINE_TEXT)))
+@@ -391,7 +391,7 @@ void SwXRedlinePortion::Validate() throw( RuntimeException )
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXRedlinePortion::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -531,7 +531,7 @@ void SwXRedline::setPropertyValue( const OUString& rPropertyName, const Any& aVa
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException,
+ 		WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw RuntimeException();
+ 	if(rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_REDLINE_AUTHOR)))
+@@ -569,7 +569,7 @@ void SwXRedline::setPropertyValue( const OUString& rPropertyName, const Any& aVa
+ Any SwXRedline::getPropertyValue( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw RuntimeException();
+ 	Any aRet;
+@@ -687,7 +687,7 @@ void SwXRedline::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+   -----------------------------------------------------------------------*/
+ Reference< XEnumeration >  SwXRedline::createEnumeration(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XEnumeration > xRet;
+ 	if(!pDoc)
+ 		throw RuntimeException();
+@@ -722,7 +722,7 @@ sal_Bool SwXRedline::hasElements(  ) throw(RuntimeException)
+  ---------------------------------------------------------------------------*/
+ Reference< XTextCursor >  SwXRedline::createTextCursor(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw RuntimeException();
+ 
+@@ -799,7 +799,7 @@ Sequence<Type> SwXRedline::getTypes()
+ Sequence<sal_Int8> SwXRedline::getImplementationId()
+ 	throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx
+index 6fedf10..f9810c1 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx
+@@ -36,8 +36,8 @@
+ 
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -111,7 +111,7 @@ SwXRedlines::~SwXRedlines()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXRedlines::getCount(  ) throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+@@ -123,7 +123,7 @@ sal_Int32 SwXRedlines::getCount(  ) throw(RuntimeException)
+ Any SwXRedlines::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+@@ -143,7 +143,7 @@ Any SwXRedlines::getByIndex(sal_Int32 nIndex)
+ Reference< XEnumeration >  SwXRedlines::createEnumeration(void)
+ 	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+@@ -161,7 +161,7 @@ Type SwXRedlines::getElementType(  ) throw(RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXRedlines::hasElements(  ) throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx b/binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx
+index 2846cee..323e218 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx
+@@ -36,8 +36,8 @@
+ 
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -229,7 +229,7 @@ void SwXReferenceMark::attachToRange(const uno::Reference< text::XTextRange > &
+ void SwXReferenceMark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 11.12.98 10:28:34---------------------------------------------------
+@@ -237,7 +237,7 @@ void SwXReferenceMark::attach(const uno::Reference< text::XTextRange > & xTextRa
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXReferenceMark::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	if(IsValid())
+ 	{
+@@ -268,7 +268,7 @@ uno::Reference< text::XTextRange >  SwXReferenceMark::getAnchor(void) throw( uno
+   -----------------------------------------------------------------------*/
+ void SwXReferenceMark::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		const SwFmtRefMark*	pNewMark = pDoc->GetRefMark(sMarkName);
+@@ -313,7 +313,7 @@ void SwXReferenceMark::removeEventListener(const uno::Reference< lang::XEventLis
+   -----------------------------------------------------------------------*/
+ OUString SwXReferenceMark::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid() || !pDoc->GetRefMark(sMarkName))
+ 	{
+ 		throw uno::RuntimeException();
+@@ -325,7 +325,7 @@ OUString SwXReferenceMark::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXReferenceMark::setName(const OUString& Name_) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(m_bIsDescriptor)
+ 		sMarkName = String(Name_);
+ 	else
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unosect.cxx b/binfilter/bf_sw/source/core/unocore/sw_unosect.cxx
+index 9a18a70..b913f2f 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unosect.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unosect.cxx
+@@ -59,8 +59,8 @@
+ #ifndef _LNKBASE_HXX
+ #include <so3/lnkbase.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -258,7 +258,7 @@ SwXTextSection::~SwXTextSection()
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextSection >  SwXTextSection::getParentSection(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< text::XTextSection >  aRef;
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+@@ -284,7 +284,7 @@ uno::Reference< text::XTextSection >  SwXTextSection::getParentSection(void) thr
+ uno::Sequence< uno::Reference< text::XTextSection >  > SwXTextSection::getChildSections(void)
+     throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence<uno::Reference< text::XTextSection > > aSeq;
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+@@ -449,7 +449,7 @@ void SwXTextSection::attachToRange(const uno::Reference< text::XTextRange > & xT
+ void SwXTextSection::attach(const uno::Reference< text::XTextRange > & xTextRange)
+                     throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ 
+@@ -458,7 +458,7 @@ void SwXTextSection::attach(const uno::Reference< text::XTextRange > & xTextRang
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextSection::getAnchor(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< text::XTextRange >  xRet;
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+@@ -486,7 +486,7 @@ uno::Reference< text::XTextRange >  SwXTextSection::getAnchor(void) throw( uno::
+   -----------------------------------------------------------------------*/
+ void SwXTextSection::dispose(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+         pSectFmt->GetDoc()->DelSectionFmt( pSectFmt );
+@@ -539,7 +539,7 @@ void SwXTextSection::setPropertyValues(
+         throw(PropertyVetoException, lang::IllegalArgumentException,
+                         lang::WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(rPropertyNames.getLength() != rValues.getLength())
+         throw IllegalArgumentException();
+@@ -837,7 +837,7 @@ void SwXTextSection::setPropertyValue(
+         lang::IllegalArgumentException,     lang::WrappedTargetException,
+         uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< ::rtl::OUString > aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     Sequence< Any > aValues(1);
+@@ -851,7 +851,7 @@ Sequence< Any > SwXTextSection::getPropertyValues(
+     const Sequence< ::rtl::OUString >& rPropertyNames )
+         throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< Any > aRet(rPropertyNames.getLength());
+     Any* pRet = aRet.getArray();
+     SwSectionFmt*   pFmt = GetFmt();
+@@ -1096,7 +1096,7 @@ Sequence< Any > SwXTextSection::getPropertyValues(
+ uno::Any SwXTextSection::getPropertyValue(const OUString& rPropertyName)
+     throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< ::rtl::OUString > aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     return getPropertyValues(aPropertyNames).getConstArray()[0];
+@@ -1164,7 +1164,7 @@ void SwXTextSection::removeVetoableChangeListener(const OUString& PropertyName,
+ PropertyState SwXTextSection::getPropertyState( const OUString& rPropertyName )
+     throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< OUString > aNames(1);
+     aNames.getArray()[0] = rPropertyName;
+     return getPropertyStates(aNames).getConstArray()[0];
+@@ -1176,7 +1176,7 @@ Sequence< PropertyState > SwXTextSection::getPropertyStates(
+     const Sequence< OUString >& rPropertyNames )
+         throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< PropertyState > aStates(rPropertyNames.getLength());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(pFmt||m_bIsDescriptor)
+@@ -1241,7 +1241,7 @@ Sequence< PropertyState > SwXTextSection::getPropertyStates(
+ void SwXTextSection::setPropertyToDefault( const OUString& rPropertyName )
+     throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(pFmt||m_bIsDescriptor)
+     {
+@@ -1349,7 +1349,7 @@ void SwXTextSection::setPropertyToDefault( const OUString& rPropertyName )
+ Any SwXTextSection::getPropertyDefault( const OUString& rPropertyName )
+     throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     SwSectionFmt*   pFmt = GetFmt();
+     const SfxItemPropertyMap*   pMap = SfxItemPropertyMap::GetByName(
+@@ -1404,7 +1404,7 @@ Any SwXTextSection::getPropertyDefault( const OUString& rPropertyName )
+   -----------------------------------------------------------------------*/
+ OUString SwXTextSection::getName(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String sRet;
+     const SwSectionFmt* pFmt = GetFmt();
+     if(pFmt)
+@@ -1420,7 +1420,7 @@ OUString SwXTextSection::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextSection::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(pFmt)
+     {
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unosett.cxx b/binfilter/bf_sw/source/core/unocore/sw_unosett.cxx
+index 2271f65..66e5de7 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unosett.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unosett.cxx
+@@ -153,8 +153,8 @@
+ #ifndef _CTRLTOOL_HXX //autogen
+ #include <svtools/ctrltool.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -456,7 +456,7 @@ uno::Reference< beans::XPropertySetInfo >  SwXFootnoteProperties::getPropertySet
+ void SwXFootnoteProperties::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pDoc)
+ 	{
+ 		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -582,7 +582,7 @@ void SwXFootnoteProperties::setPropertyValue(const OUString& rPropertyName, cons
+ uno::Any SwXFootnoteProperties::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(pDoc)
+ 	{
+@@ -795,7 +795,7 @@ void SwXEndnoteProperties::setPropertyValue(const OUString& rPropertyName, const
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
+ 		lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pDoc)
+ 	{
+ 		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -875,7 +875,7 @@ void SwXEndnoteProperties::setPropertyValue(const OUString& rPropertyName, const
+ uno::Any SwXEndnoteProperties::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(pDoc)
+ 	{
+@@ -1053,7 +1053,7 @@ void SwXLineNumberingProperties::setPropertyValue(
+ 		throw( UnknownPropertyException, PropertyVetoException,
+ 				IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pDoc)
+ 	{
+ 		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -1169,7 +1169,7 @@ void SwXLineNumberingProperties::setPropertyValue(
+ Any SwXLineNumberingProperties::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aRet;
+ 	if(pDoc)
+ 	{
+@@ -1430,7 +1430,7 @@ void SwXNumberingRules::replaceByIndex(sal_Int32 nIndex, const uno::Any& rElemen
+ 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException,
+  				 lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(rElement.getValueType().getTypeClass() != uno::TypeClass_SEQUENCE)
+ 		throw lang::IllegalArgumentException();
+ 	const uno::Sequence<beans::PropertyValue>& rProperties =
+@@ -1508,7 +1508,7 @@ uno::Any SwXNumberingRules::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+ 			uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aVal;
+ 	if(MAXLEVEL <= nIndex)
+ 		throw lang::IndexOutOfBoundsException();
+@@ -1553,7 +1553,7 @@ sal_Bool SwXNumberingRules::hasElements(void) throw( uno::RuntimeException )
+ uno::Sequence<beans::PropertyValue> SwXNumberingRules::getNumberingRuleByIndex(
+ 				const SwNumRule& rNumRule, sal_Int32 nIndex) const
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwNumFmt& rFmt = rNumRule.Get( (sal_uInt16)nIndex );
+ 
+ 	sal_Bool bChapterNum = pDocShell != 0;
+@@ -1758,7 +1758,7 @@ void SwXNumberingRules::setNumberingRuleByIndex(
+ 			const uno::Sequence<beans::PropertyValue>& rProperties, sal_Int32 nIndex)
+ 	throw( uno::RuntimeException, lang::IllegalArgumentException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// the order of the names is important!
+ 	static const char* aNumPropertyNames[] =
+ 	{
+@@ -2461,7 +2461,7 @@ SwXTextColumns::~SwXTextColumns()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextColumns::getReferenceValue(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return nReference;
+ }
+ /*-- 16.12.98 14:06:55---------------------------------------------------
+@@ -2469,7 +2469,7 @@ sal_Int32 SwXTextColumns::getReferenceValue(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Int16 SwXTextColumns::getColumnCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aTextColumns.getLength();
+ }
+ /*-- 16.12.98 14:06:55---------------------------------------------------
+@@ -2477,7 +2477,7 @@ sal_Int16 SwXTextColumns::getColumnCount(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextColumns::setColumnCount(sal_Int16 nColumns) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(nColumns <= 0)
+ 		throw uno::RuntimeException();
+     bIsAutomaticWidth = sal_True;
+@@ -2500,7 +2500,7 @@ void SwXTextColumns::setColumnCount(sal_Int16 nColumns) throw( uno::RuntimeExcep
+   -----------------------------------------------------------------------*/
+ uno::Sequence< TextColumn > SwXTextColumns::getColumns(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aTextColumns;
+ }
+ /*-- 16.12.98 14:06:56---------------------------------------------------
+@@ -2509,7 +2509,7 @@ uno::Sequence< TextColumn > SwXTextColumns::getColumns(void) throw( uno::Runtime
+ void SwXTextColumns::setColumns(const uno::Sequence< TextColumn >& rColumns)
+ 			throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nReferenceTemp = 0;
+ 	const TextColumn* prCols = rColumns.getConstArray();
+ 	for(long i = 0; i < rColumns.getLength(); i++)
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx b/binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx
+index c55364e..3989391 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx
+@@ -58,8 +58,8 @@
+ #ifndef _UNOOBJ_HXX
+ #include <unoobj.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -530,7 +530,7 @@ sal_Int64 SAL_CALL SwXTextSearch::getSomething( const Sequence< sal_Int8 >& rId
+   -----------------------------------------------------------------------*/
+ OUString SwXTextSearch::getSearchString(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sSearchText;
+ }
+ /*-- 14.12.98 13:07:12---------------------------------------------------
+@@ -539,7 +539,7 @@ OUString SwXTextSearch::getSearchString(void) throw( RuntimeException )
+ void SwXTextSearch::setSearchString(const OUString& rString)
+ 										throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sSearchText = String(rString);
+ }
+ /*-- 14.12.98 13:07:12---------------------------------------------------
+@@ -547,7 +547,7 @@ void SwXTextSearch::setSearchString(const OUString& rString)
+   -----------------------------------------------------------------------*/
+ OUString SwXTextSearch::getReplaceString(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sReplaceText;
+ }
+ /*-- 14.12.98 13:07:12---------------------------------------------------
+@@ -555,7 +555,7 @@ OUString SwXTextSearch::getReplaceString(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextSearch::setReplaceString(const OUString& rReplaceString) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sReplaceText = String(rReplaceString);
+ }
+ /*-- 14.12.98 13:07:13---------------------------------------------------
+@@ -573,7 +573,7 @@ void SwXTextSearch::setPropertyValue(const OUString& rPropertyName, const Any& a
+ 	throw( UnknownPropertyException, PropertyVetoException,
+ 		lang::IllegalArgumentException, lang::WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 												_pMap, rPropertyName);
+ 	if(pMap)
+@@ -608,7 +608,7 @@ void SwXTextSearch::setPropertyValue(const OUString& rPropertyName, const Any& a
+   -----------------------------------------------------------------------*/
+ Any SwXTextSearch::getPropertyValue(const OUString& rPropertyName) throw( UnknownPropertyException, lang::WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aRet;
+ 
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -676,7 +676,7 @@ void SwXTextSearch::removeVetoableChangeListener(const OUString& PropertyName, c
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextSearch::getValueSearch(void) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return bIsValueSearch;
+ }
+ /*-- 14.12.98 13:07:15---------------------------------------------------
+@@ -684,7 +684,7 @@ sal_Bool SwXTextSearch::getValueSearch(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextSearch::setValueSearch(sal_Bool ValueSearch_) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	bIsValueSearch = ValueSearch_;
+ }
+ /*-- 14.12.98 13:07:15---------------------------------------------------
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx b/binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx
+index 1258a8d..4f34385 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx
+@@ -40,8 +40,8 @@
+ #include <hintids.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -351,7 +351,7 @@ Any SAL_CALL SwXStyleFamilies::getByName(const OUString& Name)
+         lang::WrappedTargetException,
+         RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ // der Index kommt aus const unsigned short aStyleByIndex[] =
+     Any aRet;
+     if(!IsValid())
+@@ -411,7 +411,7 @@ sal_Int32 SwXStyleFamilies::getCount(void) throw( RuntimeException )
+ Any SwXStyleFamilies::getByIndex(sal_Int32 nIndex)
+     throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Any aRet;
+     if(nIndex >= STYLE_FAMILY_COUNT)
+         throw lang::IndexOutOfBoundsException();
+@@ -501,7 +501,7 @@ void SwXStyleFamilies::loadStylesFromURL(const OUString& rURL,
+     const Sequence< PropertyValue >& aOptions)
+     throw( io::IOException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool    bLoadStyleText = sal_True;
+     sal_Bool    LoadStyleFrame = sal_True;
+     sal_Bool    bLoadStylePage = sal_True;
+@@ -551,7 +551,7 @@ void SwXStyleFamilies::loadStylesFromURL(const OUString& rURL,
+ Sequence< PropertyValue > SwXStyleFamilies::getStyleLoaderOptions(void)
+         throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< PropertyValue > aSeq(5);
+     PropertyValue* pArray = aSeq.getArray();
+     Any aVal;
+@@ -771,7 +771,7 @@ sal_Int32 lcl_GetCountOrName ( const SwDoc &rDoc, SfxStyleFamily eFamily, String
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXStyleFamily::getCount(void) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return lcl_GetCountOrName ( *pDocShell->GetDoc(), eFamily, NULL );
+ }
+ /*-- 16.12.98 16:03:57---------------------------------------------------
+@@ -780,7 +780,7 @@ sal_Int32 SwXStyleFamily::getCount(void) throw( RuntimeException )
+ Any SwXStyleFamily::getByIndex(sal_Int32 nTempIndex)
+     throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Any aRet;
+ 	if ( nTempIndex >= 0 && nTempIndex < USHRT_MAX )
+ 	{
+@@ -916,7 +916,7 @@ Any SwXStyleFamily::getByIndex(sal_Int32 nTempIndex)
+ Any SwXStyleFamily::getByName(const OUString& rName)
+     throw( container::NoSuchElementException, lang::WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Any aRet;
+     String sStyleName;
+ 	SwStyleNameMapper::FillUIName(rName, sStyleName, lcl_GetSwEnumFromSfxEnum ( eFamily ), sal_True );
+@@ -950,7 +950,7 @@ Any SwXStyleFamily::getByName(const OUString& rName)
+   -----------------------------------------------------------------------*/
+ Sequence< OUString > SwXStyleFamily::getElementNames(void) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< OUString > aRet;
+     if(pBasePool)
+     {
+@@ -975,7 +975,7 @@ Sequence< OUString > SwXStyleFamily::getElementNames(void) throw( RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXStyleFamily::hasByName(const OUString& rName) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool bRet = sal_False;
+     if(pBasePool)
+     {
+@@ -1013,7 +1013,7 @@ sal_Bool SwXStyleFamily::hasElements(void) throw( RuntimeException )
+ void SwXStyleFamily::insertByName(const OUString& rName, const Any& rElement)
+         throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         String sStyleName;
+@@ -1079,7 +1079,7 @@ void SwXStyleFamily::insertByName(const OUString& rName, const Any& rElement)
+ void SwXStyleFamily::replaceByName(const OUString& rName, const Any& rElement)
+     throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily);
+@@ -1113,7 +1113,7 @@ void SwXStyleFamily::replaceByName(const OUString& rName, const Any& rElement)
+   -----------------------------------------------------------------------*/
+ void SwXStyleFamily::removeByName(const OUString& rName) throw( container::NoSuchElementException, lang::WrappedTargetException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily, SFXSTYLEBIT_ALL );
+@@ -1481,7 +1481,7 @@ void SwXStyle::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ }
+ OUString SwXStyle::getName(void) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String aString;
+     if(pBasePool)
+     {
+@@ -1501,7 +1501,7 @@ OUString SwXStyle::getName(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXStyle::setName(const OUString& rName) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily, SFXSTYLEBIT_ALL );
+@@ -1526,7 +1526,7 @@ void SwXStyle::setName(const OUString& rName) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXStyle::isUserDefined(void) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool bRet = sal_False;
+     if(pBasePool)
+     {
+@@ -1545,7 +1545,7 @@ sal_Bool SwXStyle::isUserDefined(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXStyle::isInUse(void) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool bRet = sal_False;
+     if(pBasePool)
+     {
+@@ -1563,7 +1563,7 @@ sal_Bool SwXStyle::isInUse(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ OUString SwXStyle::getParentStyle(void) throw( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String aString;
+     if(pBasePool)
+     {
+@@ -1585,7 +1585,7 @@ OUString SwXStyle::getParentStyle(void) throw( RuntimeException )
+ void SwXStyle::setParentStyle(const OUString& rParentStyle)
+             throw( container::NoSuchElementException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String sParentStyle;
+ 	SwStyleNameMapper::FillUIName(rParentStyle, sParentStyle, lcl_GetSwEnumFromSfxEnum ( eFamily ), sal_True );
+     if(pBasePool)
+@@ -2134,7 +2134,7 @@ void SwXStyle::setPropertyValues(
+         throw(PropertyVetoException, IllegalArgumentException,
+                 WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !m_pDoc )
+ 		throw RuntimeException();
+     sal_Int8 nPropSetId = PROPERTY_SET_CHAR_STYLE;
+@@ -2347,7 +2347,7 @@ query_itemset:
+ Sequence< Any > SwXStyle::getPropertyValues(
+     const Sequence< OUString >& rPropertyNames ) throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !m_pDoc )
+ 		throw RuntimeException();
+     sal_Int8 nPropSetId = PROPERTY_SET_CHAR_STYLE;
+@@ -2523,7 +2523,7 @@ void SwXStyle::removeVetoableChangeListener(const OUString& PropertyName,
+ PropertyState SwXStyle::getPropertyState(const OUString& rPropertyName)
+         throw( UnknownPropertyException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     Sequence< OUString > aNames(1);
+     OUString* pNames = aNames.getArray();
+@@ -2538,7 +2538,7 @@ Sequence< PropertyState > SwXStyle::getPropertyStates(
+     const Sequence< OUString >& rPropertyNames)
+         throw( UnknownPropertyException, RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< PropertyState > aRet(rPropertyNames.getLength());
+     PropertyState* pStates = aRet.getArray();
+     if(pBasePool)
+@@ -2639,7 +2639,7 @@ void SwXStyle::setPropertyToDefault(const OUString& rPropertyName)
+ void SAL_CALL SwXStyle::setPropertiesToDefault( const Sequence< OUString >& aPropertyNames )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFmt *pTargetFmt = 0;
+ 
+     if(pBasePool)
+@@ -2706,7 +2706,7 @@ void SAL_CALL SwXStyle::setPropertiesToDefault( const Sequence< OUString >& aPro
+ void SAL_CALL SwXStyle::setAllPropertiesToDefault(  )
+ 	throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily);
+@@ -2810,7 +2810,7 @@ void SAL_CALL SwXStyle::setAllPropertiesToDefault(  )
+ Sequence< Any > SAL_CALL SwXStyle::getPropertyDefaults( const Sequence< OUString >& aPropertyNames )
+ 	throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 	Sequence < Any > aRet ( nCount );
+ 	if ( nCount )
+@@ -2946,7 +2946,7 @@ void SwXPageStyle::setPropertyValues(
+     const Sequence< Any >& rValues )
+         throw(PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!GetDoc())
+         throw RuntimeException();
+     SfxItemPropertySet& aPropSet = aSwMapProvider.GetPropertySet(PROPERTY_SET_PAGE_STYLE);
+@@ -3156,7 +3156,7 @@ Sequence< Any > SwXPageStyle::getPropertyValues(
+     const Sequence< OUString >& rPropertyNames )
+         throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!GetDoc())
+         throw RuntimeException();
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx b/binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx
+index 2c141d8..ec6acdd 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx
+@@ -214,8 +214,8 @@
+ #ifndef _SWUNDO_HXX
+ #include <swundo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SWSTYLENAMEMAPPER_HXX
+ #include <SwStyleNameMapper.hxx>
+@@ -854,7 +854,7 @@ Sequence< uno::Type > SAL_CALL SwXCell::getTypes(  ) throw(::com::sun::star::uno
+  ---------------------------------------------------------------------------*/
+ Sequence< sal_Int8 > SAL_CALL SwXCell::getImplementationId(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -929,7 +929,7 @@ sal_Bool	SwXCell::IsValid()
+   -----------------------------------------------------------------------*/
+ OUString SwXCell::getFormula(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sRet;
+ 	if(IsValid())
+ 	{
+@@ -945,7 +945,7 @@ OUString SwXCell::getFormula(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXCell::setFormula(const OUString& rFormula) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		// Der Text mu� zunaechst (vielleicht) geloescht werden
+@@ -978,7 +978,7 @@ void SwXCell::setFormula(const OUString& rFormula) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ double SwXCell::getValue(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return lcl_getValue( *this );
+ }
+ /*-- 11.12.98 10:56:26---------------------------------------------------
+@@ -986,7 +986,7 @@ double SwXCell::getValue(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXCell::setValue(double rValue) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     lcl_setValue( *this, rValue );
+ }
+ /*-- 11.12.98 10:56:26---------------------------------------------------
+@@ -1002,7 +1002,7 @@ table::CellContentType SwXCell::getType(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ void SwXCell::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     lcl_setString( *this, aString );
+ }
+ 
+@@ -1011,7 +1011,7 @@ void SwXCell::setString(const OUString& aString) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXCell::getError(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sContent = getString();
+ 	return sContent.equals(ViewShell::GetShellRes()->aCalc_Error);
+ }
+@@ -1020,7 +1020,7 @@ sal_Int32 SwXCell::getError(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextCursor >  SwXCell::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  	aRef;
+ 	if(pStartNode || IsValid())
+ 	{
+@@ -1046,7 +1046,7 @@ uno::Reference< XTextCursor >  SwXCell::createTextCursor(void) throw( uno::Runti
+ uno::Reference< XTextCursor >  SwXCell::createTextCursorByRange(const uno::Reference< XTextRange > & xTextPosition)
+ 														throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  aRef;
+ 	SwUnoInternalPaM aPam(*GetDoc());
+ 	if((pStartNode || IsValid()) && SwXTextRange::XTextRangeToSwPaM(aPam, xTextPosition))
+@@ -1077,7 +1077,7 @@ uno::Reference< beans::XPropertySetInfo >  SwXCell::getPropertySetInfo(void) thr
+   -----------------------------------------------------------------------*/
+ void SwXCell::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue) throw( beans::UnknownPropertyException, beans::PropertyVetoException, IllegalArgumentException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		SwFrmFmt* pBoxFmt = pBox->ClaimFrmFmt();
+@@ -1092,7 +1092,7 @@ void SwXCell::setPropertyValue(const OUString& rPropertyName, const uno::Any& aV
+ uno::Any SwXCell::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1163,7 +1163,7 @@ void SwXCell::removeVetoableChangeListener(const OUString& PropertyName, const u
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXCell::createEnumeration(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	if(IsValid())
+ 	{
+@@ -1341,7 +1341,7 @@ void SwXTextTableRow::setPropertyValue(const OUString& rPropertyName,
+ 	const uno::Any& aValue)
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, IllegalArgumentException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -1401,7 +1401,7 @@ void SwXTextTableRow::setPropertyValue(const OUString& rPropertyName,
+   -----------------------------------------------------------------------*/
+ uno::Any SwXTextTableRow::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1563,7 +1563,7 @@ SwXTextTableCursor::~SwXTextTableCursor()
+   -----------------------------------------------------------------------*/
+ OUString SwXTextTableCursor::getRangeName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString aRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1595,7 +1595,7 @@ OUString SwXTextTableCursor::getRangeName(void) throw( uno::RuntimeException )
+ sal_Bool SwXTextTableCursor::gotoCellByName(const OUString& CellName, sal_Bool Expand)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1612,7 +1612,7 @@ sal_Bool SwXTextTableCursor::gotoCellByName(const OUString& CellName, sal_Bool E
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goLeft(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1628,7 +1628,7 @@ sal_Bool SwXTextTableCursor::goLeft(sal_Int16 Count, sal_Bool Expand) throw( uno
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goRight(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1644,7 +1644,7 @@ sal_Bool SwXTextTableCursor::goRight(sal_Int16 Count, sal_Bool Expand) throw( un
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goUp(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1660,7 +1660,7 @@ sal_Bool SwXTextTableCursor::goUp(sal_Int16 Count, sal_Bool Expand) throw( uno::
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goDown(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1676,7 +1676,7 @@ sal_Bool SwXTextTableCursor::goDown(sal_Int16 Count, sal_Bool Expand) throw( uno
+   -----------------------------------------------------------------------*/
+ void SwXTextTableCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1690,7 +1690,7 @@ void SwXTextTableCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ void SwXTextTableCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1704,7 +1704,7 @@ void SwXTextTableCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::mergeRange(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1735,7 +1735,7 @@ sal_Bool SwXTextTableCursor::mergeRange(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::splitRange(sal_Int16 Count, sal_Bool Horizontal) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (Count <= 0)
+         throw RuntimeException( OUString( RTL_CONSTASCII_USTRINGPARAM( "Illegal first argument: needs to be > 0" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+ 	sal_Bool bRet = sal_False;
+@@ -1775,7 +1775,7 @@ void SwXTextTableCursor::setPropertyValue(const OUString& rPropertyName,
+  					WrappedTargetException,
+  					uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1834,7 +1834,7 @@ void SwXTextTableCursor::setPropertyValue(const OUString& rPropertyName,
+ uno::Any SwXTextTableCursor::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2293,7 +2293,7 @@ void SwXTextTable::initialize(sal_Int32 nR, sal_Int32 nC) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ uno::Reference< table::XTableRows >  SwXTextTable::getRows(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XTableRows >  xRet;
+ 	if (SwFrmFmt* pFmt = GetFrmFmt())
+     {
+@@ -2312,7 +2312,7 @@ uno::Reference< table::XTableRows >  SwXTextTable::getRows(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ uno::Reference< table::XTableColumns >  SwXTextTable::getColumns(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XTableColumns >  xRet;
+ 	if (SwFrmFmt* pFmt = GetFrmFmt())
+     {
+@@ -2331,7 +2331,7 @@ uno::Reference< table::XTableColumns >  SwXTextTable::getColumns(void) throw( un
+   -----------------------------------------------------------------------*/
+ uno::Reference< table::XCell >  SwXTextTable::getCellByName(const OUString& CellName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCell >  xRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2353,7 +2353,7 @@ uno::Reference< table::XCell >  SwXTextTable::getCellByName(const OUString& Cell
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXTextTable::getCellNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2381,7 +2381,7 @@ uno::Sequence< OUString > SwXTextTable::getCellNames(void) throw( uno::RuntimeEx
+ uno::Reference< XTextTableCursor >  SwXTextTable::createCursorByCellName(const OUString& CellName)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextTableCursor >  xRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2507,7 +2507,7 @@ void SwXTextTable::attachToRange(const uno::Reference< XTextRange > & xTextRange
+ void SwXTextTable::attach(const uno::Reference< XTextRange > & xTextRange)
+ 		throw( IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 11.12.98 12:42:46---------------------------------------------------
+@@ -2516,7 +2516,7 @@ void SwXTextTable::attach(const uno::Reference< XTextRange > & xTextRange)
+ uno::Reference< XTextRange >  SwXTextTable::getAnchor(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(!pFmt)
+ 		throw uno::RuntimeException();
+@@ -2528,7 +2528,7 @@ uno::Reference< XTextRange >  SwXTextTable::getAnchor(void)
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2564,7 +2564,7 @@ void SwXTextTable::removeEventListener(const uno::Reference< XEventListener > &
+ uno::Reference< table::XCell >  SwXTextTable::getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCell >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	// Sheet interessiert nicht
+@@ -2587,7 +2587,7 @@ uno::Reference< table::XCellRange >  SwXTextTable::GetRangeByName(SwFrmFmt* pFmt
+ 					const String& rTLName, const String& rBRName,
+ 					SwRangeDescriptor& rDesc)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRef;
+ 	String sTLName(rTLName);
+ 	String sBRName(rBRName);
+@@ -2626,7 +2626,7 @@ uno::Reference< table::XCellRange >  SwXTextTable::getCellRangeByPosition(sal_In
+ 				sal_Int32 nRight, sal_Int32 nBottom)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt && nRight < USHRT_MAX && nBottom < USHRT_MAX &&
+@@ -2656,7 +2656,7 @@ uno::Reference< table::XCellRange >  SwXTextTable::getCellRangeByPosition(sal_In
+ uno::Reference< table::XCellRange >  SwXTextTable::getCellRangeByName(const OUString& aRange)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2688,7 +2688,7 @@ uno::Sequence< uno::Sequence< uno::Any > > SAL_CALL SwXTextTable::getDataArray()
+ {
+     // see SwXTextTable::getData(...) also
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -2743,7 +2743,7 @@ void SAL_CALL SwXTextTable::setDataArray(
+ {
+     // see SwXTextTable::setData(...) also
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Int16 nRowCount = nRows;
+     sal_Int16 nColCount = nColumns;
+ 
+@@ -2806,7 +2806,7 @@ void SAL_CALL SwXTextTable::setDataArray(
+ uno::Sequence< uno::Sequence< double > > SwXTextTable::getData(void)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -2850,7 +2850,7 @@ uno::Sequence< uno::Sequence< double > > SwXTextTable::getData(void)
+ void SwXTextTable::setData(const uno::Sequence< uno::Sequence< double > >& rData)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	sal_Bool bChanged = sal_False;
+@@ -2899,7 +2899,7 @@ void SwXTextTable::setData(const uno::Sequence< uno::Sequence< double > >& rData
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXTextTable::getRowDescriptions(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	if(!nRowCount)
+ 	{
+@@ -2941,7 +2941,7 @@ uno::Sequence< OUString > SwXTextTable::getRowDescriptions(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2981,7 +2981,7 @@ void SwXTextTable::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc)
+ uno::Sequence< OUString > SwXTextTable::getColumnDescriptions(void)
+ 												throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nColCount)
+ 	{
+@@ -3023,7 +3023,7 @@ uno::Sequence< OUString > SwXTextTable::getColumnDescriptions(void)
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::setColumnDescriptions(const uno::Sequence< OUString >& rColumnDesc) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nColCount)
+ 	{
+@@ -3103,7 +3103,7 @@ double SwXTextTable::getNotANumber(void) throw( uno::RuntimeException )
+ uno::Sequence< beans::PropertyValue > SwXTextTable::createSortDescriptor(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXTextCursor::createSortDescriptor(sal_False);
+ }
+ /*-- 11.12.98 12:42:49---------------------------------------------------
+@@ -3112,7 +3112,7 @@ uno::Sequence< beans::PropertyValue > SwXTextTable::createSortDescriptor(void)
+ void SwXTextTable::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSortOptions aSortOpt;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt &&
+@@ -3135,7 +3135,7 @@ void SwXTextTable::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::autoFormat(const OUString& aName) throw( IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -3164,7 +3164,7 @@ void SwXTextTable::setPropertyValue(const OUString& rPropertyName,
+ 		throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+ 				IllegalArgumentException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(!aValue.hasValue())
+ 		throw IllegalArgumentException();
+@@ -3319,7 +3319,7 @@ void SwXTextTable::setPropertyValue(const OUString& rPropertyName,
+   -----------------------------------------------------------------------*/
+ uno::Any SwXTextTable::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -3495,7 +3495,7 @@ void SwXTextTable::removeVetoableChangeListener(const OUString& PropertyName, co
+   -----------------------------------------------------------------------*/
+ OUString SwXTextTable::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(!pFmt && !bIsDescriptor)
+@@ -3513,7 +3513,7 @@ OUString SwXTextTable::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	String sNewTblName(rName);
+ 	if(!pFmt && !bIsDescriptor ||
+@@ -3588,7 +3588,7 @@ void SwXTextTable::setName(const OUString& rName) throw( uno::RuntimeException )
+ --------------------------------------------------*/
+ sal_uInt16 SwXTextTable::getRowCount(void)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRet = 0;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -3606,7 +3606,7 @@ sal_uInt16 SwXTextTable::getRowCount(void)
+ --------------------------------------------------*/
+ sal_uInt16 SwXTextTable::getColumnCount(void)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	sal_Int16 nRet = 0;
+ 	if(pFmt)
+@@ -3785,7 +3785,7 @@ SwXCellRange::~SwXCellRange()
+ uno::Reference< table::XCell >  SwXCellRange::getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCell >  aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -3810,7 +3810,7 @@ uno::Reference< table::XCellRange >  SwXCellRange::getCellRangeByPosition(
+ 		sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt && getColumnCount() > nRight && getRowCount() > nBottom &&
+@@ -3866,7 +3866,7 @@ uno::Reference< table::XCellRange >  SwXCellRange::getCellRangeByPosition(
+ Reference< XCellRange >  SwXCellRange::getCellRangeByName(const OUString& rRange)
+ 		throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRange(rRange);
+ 	String sTLName(sRange.GetToken(0, ':'));
+ 	String sBRName(sRange.GetToken(1, ':'));
+@@ -3895,7 +3895,7 @@ void SwXCellRange::setPropertyValue(const OUString& rPropertyName,
+ 		beans::PropertyVetoException, IllegalArgumentException,
+ 			WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -4011,7 +4011,7 @@ void SwXCellRange::setPropertyValue(const OUString& rPropertyName,
+   -----------------------------------------------------------------------*/
+ uno::Any SwXCellRange::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -4123,7 +4123,7 @@ uno::Sequence< uno::Sequence< uno::Any > > SAL_CALL SwXCellRange::getDataArray()
+ {
+     // see SwXCellRange::getData also
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	//
+@@ -4179,7 +4179,7 @@ void SAL_CALL SwXCellRange::setDataArray(
+ {
+     // see SwXCellRange::setData also
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -4241,7 +4241,7 @@ void SAL_CALL SwXCellRange::setDataArray(
+   -----------------------------------------------------------------------*/
+ uno::Sequence< uno::Sequence< double > > SwXCellRange::getData(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	//
+@@ -4283,7 +4283,7 @@ uno::Sequence< uno::Sequence< double > > SwXCellRange::getData(void) throw( uno:
+ void SwXCellRange::setData(const uno::Sequence< uno::Sequence< double > >& rData)
+ 												throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -4329,7 +4329,7 @@ void SwXCellRange::setData(const uno::Sequence< uno::Sequence< double > >& rData
+ uno::Sequence< OUString > SwXCellRange::getRowDescriptions(void)
+ 											throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	if(!nRowCount)
+ 	{
+@@ -4372,7 +4372,7 @@ uno::Sequence< OUString > SwXCellRange::getRowDescriptions(void)
+ void SwXCellRange::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc)
+ 													throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -4410,7 +4410,7 @@ void SwXCellRange::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc)
+ uno::Sequence< OUString > SwXCellRange::getColumnDescriptions(void)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nColCount)
+ 	{
+@@ -4453,7 +4453,7 @@ uno::Sequence< OUString > SwXCellRange::getColumnDescriptions(void)
+ void SwXCellRange::setColumnDescriptions(const uno::Sequence< OUString >& ColumnDesc)
+ 														throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -4520,7 +4520,7 @@ double SwXCellRange::getNotANumber(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Sequence< beans::PropertyValue > SwXCellRange::createSortDescriptor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXTextCursor::createSortDescriptor(sal_False);
+ }
+ /*-- 11.12.98 14:27:39---------------------------------------------------
+@@ -4529,7 +4529,7 @@ uno::Sequence< beans::PropertyValue > SwXCellRange::createSortDescriptor(void) t
+ void SAL_CALL SwXCellRange::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSortOptions aSortOpt;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt &&
+@@ -4620,7 +4620,7 @@ SwXTableRows::~SwXTableRows()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTableRows::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+@@ -4638,7 +4638,7 @@ sal_Int32 SwXTableRows::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTableRows::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt || nIndex < 0 )
+@@ -4683,7 +4683,7 @@ uno::Type SAL_CALL SwXTableRows::getElementType(void) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTableRows::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+ 		throw uno::RuntimeException();
+@@ -4695,7 +4695,7 @@ sal_Bool SwXTableRows::hasElements(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTableRows::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt || nIndex < 0 || nCount <= 0)
+ 		throw uno::RuntimeException();
+@@ -4741,7 +4741,7 @@ void SwXTableRows::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno:
+   -----------------------------------------------------------------------*/
+ void SwXTableRows::removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt || nIndex < 0 || nCount <=0 )
+ 		throw uno::RuntimeException();
+@@ -4848,7 +4848,7 @@ SwXTableColumns::~SwXTableColumns()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTableColumns::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+@@ -4871,7 +4871,7 @@ sal_Int32 SwXTableColumns::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTableColumns::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< uno::XInterface >  xRet;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+@@ -4905,7 +4905,7 @@ uno::Type SAL_CALL SwXTableColumns::getElementType(void) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTableColumns::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+ 		throw uno::RuntimeException();
+@@ -4916,7 +4916,7 @@ sal_Bool SwXTableColumns::hasElements(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTableColumns::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt|| nIndex < 0 || nCount <=0 )
+ 		throw uno::RuntimeException();
+@@ -4961,7 +4961,7 @@ void SwXTableColumns::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( u
+   -----------------------------------------------------------------------*/
+ void SwXTableColumns::removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt|| nIndex < 0 || nCount <=0 )
+ 		throw uno::RuntimeException();
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unotext.cxx b/binfilter/bf_sw/source/core/unocore/sw_unotext.cxx
+index 94c50f6..c5e9d0c 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unotext.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unotext.cxx
+@@ -46,8 +46,8 @@
+ #ifndef _CMDID_H
+ #include <cmdid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -265,7 +265,7 @@ void SwXText::insertString(const uno::Reference< XTextRange > & xTextRange,
+ 								const OUString& aString, sal_Bool bAbsorb)
+ 								throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetDoc() && xTextRange.is())
+ 	{
+ 		uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+@@ -343,7 +343,7 @@ void SwXText::insertControlCharacter(const uno::Reference< XTextRange > & xTextR
+ 				sal_Int16 nControlCharacter, sal_Bool bAbsorb)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetDoc() && xTextRange.is())
+ 	{
+ 		SwUnoInternalPaM aPam(*GetDoc());
+@@ -442,7 +442,7 @@ void SwXText::insertTextContent(const uno::Reference< XTextRange > & xRange,
+ 				const uno::Reference< XTextContent > & xContent, sal_Bool bAbsorb)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// erstmal testen, ob der Range an der richtigen Stelle ist und dann
+ 	// am Sw-Content attachToRange aufrufen
+ 	if(!GetDoc())
+@@ -697,7 +697,7 @@ void SwXText::insertTextContentBefore(
+ 	const Reference< XTextContent>& xSuccessor)
+ 		throw(IllegalArgumentException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 	{
+ 		RuntimeException aRuntime;
+@@ -752,7 +752,7 @@ void SwXText::insertTextContentAfter(
+ 	const Reference< XTextContent>& xPredecessor)
+ 		throw(IllegalArgumentException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw RuntimeException();
+ 	SwXParagraph* pPara = SwXParagraph::GetImplementation(xNewContent);
+@@ -799,7 +799,7 @@ void SwXText::removeTextContentBefore(
+ 	const Reference< XTextContent>& xSuccessor)
+ 		throw(IllegalArgumentException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 	{
+ 		RuntimeException aRuntime;
+@@ -846,7 +846,7 @@ void SwXText::removeTextContentBefore(
+ void SwXText::removeTextContentAfter(const Reference< XTextContent>& xPredecessor)
+ 		throw(IllegalArgumentException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 	{
+ 		RuntimeException aRuntime;
+@@ -894,7 +894,7 @@ void SwXText::removeTextContentAfter(const Reference< XTextContent>& xPredecesso
+ void SwXText::removeTextContent(const uno::Reference< XTextContent > & xContent)
+ 	throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xContent.is())
+ 	{
+ 		RuntimeException aRuntime;
+@@ -910,7 +910,7 @@ void SwXText::removeTextContent(const uno::Reference< XTextContent > & xContent)
+ uno::Reference< XText >  SwXText::getText(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XText >  xRet = (SwXText*)this;
+ 	return xRet;
+ 
+@@ -920,7 +920,7 @@ uno::Reference< XText >  SwXText::getText(void)
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXText::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  xRef = createCursor();
+ 	if(!xRef.is())
+ 	{
+@@ -937,7 +937,7 @@ uno::Reference< XTextRange >  SwXText::getStart(void) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXText::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  xRef = createCursor();
+ 	if(!xRef.is())
+ 	{
+@@ -956,7 +956,7 @@ uno::Reference< XTextRange >  SwXText::getEnd(void) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ OUString SwXText::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  xRet = createCursor();
+ 	if(!xRet.is())
+ 	{
+@@ -975,7 +975,7 @@ OUString SwXText::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXText::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const SwStartNode* pStartNode = GetStartNode();
+     if(!pStartNode)
+         throw uno::RuntimeException();
+@@ -1179,7 +1179,7 @@ sal_Int16 SwXText::compareRegionStarts(
+ 	const Reference<XTextRange>& xR2)
+ 			throw(IllegalArgumentException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xR1.is() || !xR2.is())
+ 		throw IllegalArgumentException();
+ 	Reference<XTextRange> xStart1 = xR1->getStart();
+@@ -1195,7 +1195,7 @@ sal_Int16 SwXText::compareRegionEnds(
+ 	const Reference<XTextRange>& xR2)
+ 					throw(IllegalArgumentException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xR1.is() || !xR2.is())
+ 		throw IllegalArgumentException();
+ 	Reference<XTextRange> xEnd1 = xR1->getEnd();
+@@ -1232,7 +1232,7 @@ uno::Any SwXText::getPropertyValue(
+         throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+                 uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+     const SfxItemPropertyMap*   pMap = SfxItemPropertyMap::GetByName(
+@@ -1442,7 +1442,7 @@ uno::Sequence< uno::Type > SwXBodyText::getTypes(  ) throw(uno::RuntimeException
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SwXBodyText::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -1498,7 +1498,7 @@ uno::Reference< XTextCursor >  SwXBodyText::CreateTextCursor(sal_Bool bIgnoreTab
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextCursor >  SwXBodyText::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  aRef = CreateTextCursor(sal_False);
+ 	if(!aRef.is())
+ 	{
+@@ -1514,7 +1514,7 @@ uno::Reference< XTextCursor >  SwXBodyText::createTextCursor(void) throw( uno::R
+ uno::Reference< XTextCursor >  SwXBodyText::createTextCursorByRange(
+ 			const uno::Reference< XTextRange > & aTextPosition) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  aRef;
+ 	if(!IsValid())
+ 	{
+@@ -1548,7 +1548,7 @@ uno::Reference< XTextCursor >  SwXBodyText::createTextCursorByRange(
+ uno::Reference< container::XEnumeration >  SwXBodyText::createEnumeration(void)
+ 							throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	if(IsValid())
+ 	{
+@@ -1579,7 +1579,7 @@ uno::Type SwXBodyText::getElementType(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ sal_Bool SwXBodyText::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 		return sal_True;
+ 	else
+@@ -1681,7 +1681,7 @@ uno::Sequence< ::com::sun::star::uno::Type > SwXHeadFootText::getTypes(  ) throw
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SwXHeadFootText::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -1707,7 +1707,7 @@ uno::Any SwXHeadFootText::queryInterface( const uno::Type& aType ) throw(uno::Ru
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextCursor >  SwXHeadFootText::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  	xRet;
+ 	SwFrmFmt* pHeadFootFmt = GetFmt();
+ 	if(pHeadFootFmt)
+@@ -1760,7 +1760,7 @@ uno::Reference< XTextCursor >  SwXHeadFootText::createTextCursor(void) throw( un
+ uno::Reference< XTextCursor >  SwXHeadFootText::createTextCursorByRange(
+ 				const uno::Reference< XTextRange > & aTextPosition) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextCursor >  xRet;
+ 	SwFrmFmt* pHeadFootFmt = GetFmt();
+ 	SwUnoInternalPaM aPam(*GetDoc());
+@@ -1786,7 +1786,7 @@ uno::Reference< XTextCursor >  SwXHeadFootText::createTextCursorByRange(
+ uno::Reference< container::XEnumeration >  SwXHeadFootText::createEnumeration(void)
+ 	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	//wenn this ungueltig ist, dann kommt die uno::Exception aus createTextCursor()
+ 	SwFrmFmt* pHeadFootFmt = GetFmt();
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_XMLRedlineImportHelper.cxx b/binfilter/bf_sw/source/filter/xml/sw_XMLRedlineImportHelper.cxx
+index 65c7b11..0b9f283 100644
+--- binfilter/bf_sw/source/filter/xml/sw_XMLRedlineImportHelper.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_XMLRedlineImportHelper.cxx
+@@ -101,8 +101,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ namespace binfilter {
+ 
+@@ -518,7 +518,7 @@ Reference<XTextCursor> XMLRedlineImportHelper::CreateRedlineTextSection(
+ 	Reference<XTextCursor> xReturn;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// get RedlineInfo
+ 	RedlineMapType::iterator aFind = aRedlineMap.find(rId);
+@@ -610,7 +610,7 @@ void XMLRedlineImportHelper::AdjustStartNodeCursor(
+ 	Reference<XTextRange> & rRange)
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // start + end nodes are treated the same. For either it's
+     // necessary that the target node already exists.
+@@ -650,7 +650,7 @@ void XMLRedlineImportHelper::InsertIntoDocument(RedlineInfo* pRedlineInfo)
+ 	DBG_ASSERT(IsReady(pRedlineInfo), "redline info not complete yet!");
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// Insert the Redline as described by pRedlineInfo into the
+ 	// document.  If we are in insert mode, don't insert any redlines
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx
+index 17ede8d..ce2277a 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx
+@@ -167,8 +167,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _LEGACYBINFILTERMGR_HXX
+ #include <legacysmgr/legacy_binfilters_smgr.hxx>	//STRIP002 
+@@ -304,7 +304,7 @@ sal_uInt32 SwXMLExport::exportDoc( enum XMLTokenEnum eClass )
+ 		return ERR_SWG_WRITE_ERROR;
+ 
+     // from here, we use core interfaces -> lock Solar-Mutex (#91949#)
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwXText *pText = (SwXText *)xTextTunnel->getSomething(
+ 										SwXText::getUnoTunnelId() );
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx
+index be2d6b8..6a30446 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx
+@@ -162,8 +162,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ namespace binfilter {
+ 
+@@ -507,7 +507,7 @@ void SwXMLImport::startDocument( void )
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// There only is a text cursor by now if we are in insert mode. In any
+ 	// other case we have to create one at the start of the document.
+@@ -625,7 +625,7 @@ void SwXMLImport::endDocument( void )
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( pGraphicResolver )
+ 		SvXMLGraphicHelper::Destroy( pGraphicResolver );
+@@ -875,7 +875,7 @@ void SwXMLImport::SetViewSettings(const Sequence < PropertyValue > & aViewProps)
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference < XTextDocument > xTextDoc( GetModel(), UNO_QUERY );
+ 	Reference < XText > xText = xTextDoc->getText();
+@@ -970,7 +970,7 @@ void SwXMLImport::SetViewSettings(const Sequence < PropertyValue > & aViewProps)
+ void SwXMLImport::SetConfigurationSettings(const Sequence < PropertyValue > & aConfigProps)
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference< lang::XMultiServiceFactory > xFac( GetModel(), UNO_QUERY );
+ 	if( !xFac.is() )
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx
+index 1809985..4e7ce87 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx
+@@ -152,8 +152,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _NDTXT_HXX
+@@ -1309,7 +1309,7 @@ SwXMLTableContext::SwXMLTableContext( SwXMLImport& rImport,
+ 	OUString aName;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+ 	for( sal_Int16 i=0; i < nAttrCount; i++ )
+@@ -2595,7 +2595,7 @@ void SwXMLTableContext::MakeTable()
+     // this method will modify the document directly -> lock SolarMutex 
+     // This will call all other MakeTable*(..) methods, so
+     // those don't need to be locked separately.
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwXMLImport& rSwImport = GetSwImport();
+ 
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
+index a0495c8..a1ce56a 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
+@@ -129,8 +129,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #include "so3/staticbaseurl.hxx"
+ namespace binfilter {
+@@ -271,7 +271,7 @@ Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOLEObject(
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference < XPropertySet > xPropSet;
+ 
+@@ -526,7 +526,7 @@ Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertApplet(
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference < XPropertySet > xPropSet;
+ 	Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
+@@ -612,7 +612,7 @@ Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertFloatingFrame(
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference < XPropertySet > xPropSet;
+ 	Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
+@@ -724,7 +724,7 @@ void SwXMLTextImportHelper::endAppletOrPlugin(
+         ::std::map < const ::rtl::OUString, ::rtl::OUString, ::comphelper::UStringLess > &rParamMap)
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     Reference<XUnoTunnel> xCrsrTunnel( rPropSet, UNO_QUERY );
+ 	ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for embedded" );
+diff --git a/binfilter/bf_sw/source/ui/dbui/sw_dbmgr.cxx b/binfilter/bf_sw/source/ui/dbui/sw_dbmgr.cxx
+index 929b5c2..5cff190 100644
+--- binfilter/bf_sw/source/ui/dbui/sw_dbmgr.cxx
++++ binfilter/bf_sw/source/ui/dbui/sw_dbmgr.cxx
+@@ -240,8 +240,8 @@
+ #ifndef _CPPUHELPER_IMPLBASE1_HXX_
+ #include <cppuhelper/implbase1.hxx> 
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _LEGACYBINFILTERMGR_HXX
+ #include <legacysmgr/legacy_binfilters_smgr.hxx>	//STRIP002 
+@@ -779,7 +779,7 @@ SwDbtoolsClient* SwNewDBMgr::pDbtoolsClient = NULL;
+ /*N*/ void SwConnectionDisposedListener_Impl::disposing( const EventObject& rSource ) 
+ /*N*/         throw (RuntimeException)
+ /*N*/ {
+-/*N*/     ::vos::OGuard aGuard(Application::GetSolarMutex());
++/*N*/     osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ /*N*/     Reference<XConnection> xSource(rSource.Source, UNO_QUERY);
+ /*N*/     for(USHORT nPos = rDBMgr.aDataSourceParams.Count(); nPos; nPos--)
+ /*N*/     {
+diff --git a/binfilter/bf_sw/source/ui/inc/unodispatch.hxx b/binfilter/bf_sw/source/ui/inc/unodispatch.hxx
+index c829966..6e32542 100644
+--- binfilter/bf_sw/source/ui/inc/unodispatch.hxx
++++ binfilter/bf_sw/source/ui/inc/unodispatch.hxx
+@@ -54,8 +54,8 @@
+ //#ifndef _OSL_MUTEX_HXX_
+ //#include <osl/mutex.hxx>
+ //#endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ namespace binfilter {
+ 
+@@ -71,7 +71,7 @@ class SwXDispatchProviderInterceptor : public cppu::WeakImplHelper3
+     class DispatchMutexLock_Impl
+     {
+         //::osl::MutexGuard   aGuard; #102295# solar mutex has to be used currently
+-        vos::OGuard         aGuard;
++        osl::MutexGuard         aGuard;
+         DispatchMutexLock_Impl();
+     public:
+         DispatchMutexLock_Impl(SwXDispatchProviderInterceptor&);
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx b/binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx
+index 0e6da96..39b4656 100644
+--- binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx
+@@ -34,8 +34,8 @@
+  ************************************************************************/
+ #pragma hdrstop
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SW_XDOCUMENT_SETTINGS_HXX
+@@ -255,7 +255,7 @@ void SwXDocumentSettings::release ()
+ uno::Sequence< uno::Type > SAL_CALL SwXDocumentSettings::getTypes(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Sequence< uno::Type > aBaseTypes( 5 );
+     uno::Type* pBaseTypes = aBaseTypes.getArray();
+@@ -274,7 +274,7 @@ uno::Sequence< uno::Type > SAL_CALL SwXDocumentSettings::getTypes(  )
+ uno::Sequence< sal_Int8 > SAL_CALL SwXDocumentSettings::getImplementationId(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_SwXFilterOptions.cxx b/binfilter/bf_sw/source/ui/uno/sw_SwXFilterOptions.cxx
+index 1ca7991..d609a4f 100644
+--- binfilter/bf_sw/source/ui/uno/sw_SwXFilterOptions.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_SwXFilterOptions.cxx
+@@ -49,8 +49,8 @@
+ #include <unoprnms.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -230,7 +230,7 @@ uno::Sequence< ::rtl::OUString > SwXFilterOptions::getSupportedServiceNames()
+ uno::Reference<uno::XInterface> SAL_CALL SwXFilterOptions_createInstance(
+ 						const uno::Reference<lang::XMultiServiceFactory>& )
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SW_DLL()->Load();       // load module
+ 
+     return (::cppu::OWeakObject*) new SwXFilterOptions;
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_dlelstnr.cxx b/binfilter/bf_sw/source/ui/uno/sw_dlelstnr.cxx
+index a7562c0..a2919f9 100644
+--- binfilter/bf_sw/source/ui/uno/sw_dlelstnr.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_dlelstnr.cxx
+@@ -56,8 +56,8 @@
+ #include <comphelper/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -132,7 +132,7 @@ void SwLinguServiceEventListener::processDictionaryListEvent(
+ 			const DictionaryListEvent& rDicListEvent)
+ 		throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_Int16 nEvt = rDicListEvent.nCondensedEvent;
+ 
+@@ -158,7 +158,7 @@ void SAL_CALL SwLinguServiceEventListener::processLinguServiceEvent(
+ 			const LinguServiceEvent& rLngSvcEvent ) 
+ 		throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	
+ 	if (rLngSvcEvent.Source == xLngSvcMgr)
+ 	{
+@@ -178,7 +178,7 @@ void SAL_CALL SwLinguServiceEventListener::disposing(
+ 			const EventObject& rEventObj )
+ 		throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if (xLngSvcMgr.is()  &&  rEventObj.Source == xLngSvcMgr)
+ 	{
+@@ -191,7 +191,7 @@ void SAL_CALL SwLinguServiceEventListener::queryTermination(
+ 			const EventObject& rEventObj )
+ 		throw(TerminationVetoException, RuntimeException)
+ {
+-	//vos::OGuard aGuard(Application::GetSolarMutex());
++	//osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ }
+ 
+ 
+@@ -199,7 +199,7 @@ void SAL_CALL SwLinguServiceEventListener::notifyTermination(
+ 			const EventObject& rEventObj )
+ 		throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if (xDesktop.is()  &&  rEventObj.Source == xDesktop)
+ 	{
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_unodoc.cxx b/binfilter/bf_sw/source/ui/uno/sw_unodoc.cxx
+index 3cf14ec..4b1332e 100644
+--- binfilter/bf_sw/source/ui/uno/sw_unodoc.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_unodoc.cxx
+@@ -44,8 +44,8 @@
+ 
+ #include "swmodule.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -75,7 +75,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SwTextDocument_getSupportedServiceName
+ uno::Reference< uno::XInterface > SAL_CALL SwTextDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > &rSMgr )
+ 	throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SW_MOD(), "No StarWriter module!" );
+@@ -116,7 +116,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SwWebDocument_getSupportedServiceNames
+ uno::Reference< uno::XInterface > SAL_CALL SwWebDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > &rSMgr )
+ 	throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SW_MOD(), "No StarWriter module!" );
+@@ -157,7 +157,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SwGlobalDocument_getSupportedServiceNa
+ uno::Reference< uno::XInterface > SAL_CALL SwGlobalDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > &rSMgr )
+ 	throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// to create the service the SW_MOD should be already initialized
+ 	DBG_ASSERT( SW_MOD(), "No StarWriter module!" );
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_unomod.cxx b/binfilter/bf_sw/source/ui/uno/sw_unomod.cxx
+index bb91f19..c1e79db 100644
+--- binfilter/bf_sw/source/ui/uno/sw_unomod.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_unomod.cxx
+@@ -85,8 +85,8 @@
+ #ifndef _VIEWOPT_HXX //autogen
+ #include <viewopt.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -288,7 +288,7 @@ SwXModule::~SwXModule()
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySet >  SwXModule::getViewSettings(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pxViewSettings)
+ 	{
+ 		((SwXModule*)this)->pxViewSettings = new Reference< XPropertySet > ;
+@@ -302,7 +302,7 @@ Reference< XPropertySet >  SwXModule::getViewSettings(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySet >  SwXModule::getPrintSettings(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pxPrintSettings)
+ 	{
+ 		((SwXModule*)this)->pxPrintSettings = new Reference< XPropertySet > ;
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx b/binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx
+index 6c8faca..3c825e3 100644
+--- binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx
+@@ -198,8 +198,8 @@
+ #ifndef _SFX_PROGRESS_HXX
+ #include <bf_sfx2/progress.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SWTYPES_HXX
+@@ -507,7 +507,7 @@ void SwXTextDocument::GetNumberFormatter()
+   -----------------------------------------------------------------------*/
+ Reference< XText >  SwXTextDocument::getText(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!xBodyText.is())
+@@ -522,7 +522,7 @@ Reference< XText >  SwXTextDocument::getText(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::reformat(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ }
+@@ -531,7 +531,7 @@ void SwXTextDocument::reformat(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::lockControllers(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		UnoActionContext* pContext = new UnoActionContext(pDocShell->GetDoc());
+@@ -545,7 +545,7 @@ void SwXTextDocument::lockControllers(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::unlockControllers(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(aActionArr.Count())
+ 	{
+ 		UnoActionContext* pContext = aActionArr.GetObject(0);
+@@ -560,7 +560,7 @@ void SwXTextDocument::unlockControllers(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextDocument::hasControllersLocked(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aActionArr.Count() > 0;
+ }
+ /*-- 18.12.98 13:12:23---------------------------------------------------
+@@ -583,7 +583,7 @@ void SwXTextDocument::setCurrentController(const Reference< frame::XController >
+  * --------------------------------------------------*/
+ Reference< XInterface >  SwXTextDocument::getCurrentSelection() throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xRef;
+ 	return xRef;
+ }
+@@ -652,7 +652,7 @@ void SwXTextDocument::removeEventListener(const Reference< lang::XEventListener
+ Reference< XPropertySet > SwXTextDocument::getLineNumberingProperties(void)
+ 			throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		if(!pxXLineNumberingProperties)
+@@ -671,7 +671,7 @@ Reference< XPropertySet > SwXTextDocument::getLineNumberingProperties(void)
+ Reference< XIndexReplace >  SwXTextDocument::getChapterNumberingRules(void)
+ 									throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXChapterNumbering)
+@@ -686,7 +686,7 @@ Reference< XIndexReplace >  SwXTextDocument::getChapterNumberingRules(void)
+   -----------------------------------------------------------------------*/
+ Reference< XIndexAccess >  SwXTextDocument::getFootnotes(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXFootnotes)
+@@ -702,7 +702,7 @@ Reference< XIndexAccess >  SwXTextDocument::getFootnotes(void) throw( RuntimeExc
+ Reference< XPropertySet >  SAL_CALL
+ 		SwXTextDocument::getFootnoteSettings(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXFootnoteSettings)
+@@ -717,7 +717,7 @@ Reference< XPropertySet >  SAL_CALL
+   -----------------------------------------------------------------------*/
+ Reference< XIndexAccess >  SwXTextDocument::getEndnotes(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXEndnotes)
+@@ -732,7 +732,7 @@ Reference< XIndexAccess >  SwXTextDocument::getEndnotes(void) throw( RuntimeExce
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySet >  SwXTextDocument::getEndnoteSettings(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXEndnoteSettings)
+@@ -748,7 +748,7 @@ Reference< XPropertySet >  SwXTextDocument::getEndnoteSettings(void) throw( Runt
+ Reference< util::XReplaceDescriptor >  SwXTextDocument::createReplaceDescriptor(void)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< util::XReplaceDescriptor >  xRet = new SwXTextSearch;
+ 	return xRet;
+ }
+@@ -782,7 +782,7 @@ SwUnoCrsr* 	SwXTextDocument::CreateCursorForSearch(Reference< XTextCursor > & xC
+ sal_Int32 SwXTextDocument::replaceAll(const Reference< util::XSearchDescriptor > & xDesc)
+ 										throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XUnoTunnel > xDescTunnel(xDesc, UNO_QUERY);
+ 	if(!IsValid() || !xDescTunnel.is() || !xDescTunnel->getSomething(SwXTextSearch::getUnoTunnelId()))
+ 		throw RuntimeException();
+@@ -856,7 +856,7 @@ sal_Int32 SwXTextDocument::replaceAll(const Reference< util::XSearchDescriptor >
+ Reference< util::XSearchDescriptor >  SwXTextDocument::createSearchDescriptor(void)
+ 													throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< util::XSearchDescriptor >  xRet = new SwXTextSearch;
+ 	return xRet;
+ 
+@@ -992,7 +992,7 @@ Reference< XIndexAccess >
+ 	SwXTextDocument::findAll(const Reference< util::XSearchDescriptor > & xDesc)
+ 												throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xTmp;
+ 	sal_Int32 nResult = 0;
+ 	Reference< XTextCursor >  xCrsr;
+@@ -1013,7 +1013,7 @@ Reference< XIndexAccess >
+ Reference< XInterface >  SwXTextDocument::findFirst(const Reference< util::XSearchDescriptor > & xDesc)
+ 											throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xTmp;
+ 	sal_Int32 nResult = 0;
+ 	Reference< XTextCursor >  xCrsr;
+@@ -1039,7 +1039,7 @@ Reference< XInterface >  SwXTextDocument::findNext(const Reference< XInterface >
+ 			const Reference< util::XSearchDescriptor > & xDesc)
+ 			throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xTmp;
+ 	sal_Int32 nResult = 0;
+ 	Reference< XTextCursor >  xCrsr;
+@@ -1067,7 +1067,7 @@ Reference< XInterface >  SwXTextDocument::findNext(const Reference< XInterface >
+ Sequence< beans::PropertyValue > SwXTextDocument::getPagePrintSettings(void)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Sequence< beans::PropertyValue > aSeq(9);
+ 	if(IsValid())
+ 	{
+@@ -1149,7 +1149,7 @@ sal_uInt32 lcl_Any_To_ULONG(const Any& rValue, sal_Bool& bException)
+ void SwXTextDocument::setPagePrintSettings(const Sequence< beans::PropertyValue >& aSettings)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		SwPagePreViewPrtData aData;
+@@ -1230,7 +1230,7 @@ void SwXTextDocument::printPages(const Sequence< beans::PropertyValue >& xOption
+ Reference< XNameAccess >  SwXTextDocument::getReferenceMarks(void)
+ 										throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXReferenceMarks)
+@@ -1245,7 +1245,7 @@ Reference< XNameAccess >  SwXTextDocument::getReferenceMarks(void)
+  * --------------------------------------------------*/
+ Reference< XEnumerationAccess >  SwXTextDocument::getTextFields(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextFieldTypes)
+@@ -1261,7 +1261,7 @@ Reference< XEnumerationAccess >  SwXTextDocument::getTextFields(void) throw( Run
+ Reference< XNameAccess >  SwXTextDocument::getTextFieldMasters(void)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextFieldMasters)
+@@ -1276,7 +1276,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextFieldMasters(void)
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getEmbeddedObjects(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXEmbeddedObjects)
+@@ -1291,7 +1291,7 @@ Reference< XNameAccess >  SwXTextDocument::getEmbeddedObjects(void) throw( Runti
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getBookmarks(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXBookmarks)
+@@ -1306,7 +1306,7 @@ Reference< XNameAccess >  SwXTextDocument::getBookmarks(void) throw( RuntimeExce
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getTextSections(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextSections)
+@@ -1321,7 +1321,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextSections(void) throw( RuntimeE
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getTextTables(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextTables)
+@@ -1336,7 +1336,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextTables(void) throw( RuntimeExc
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getGraphicObjects(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXGraphicObjects)
+@@ -1351,7 +1351,7 @@ Reference< XNameAccess >  SwXTextDocument::getGraphicObjects(void) throw( Runtim
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getTextFrames(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextFrames)
+@@ -1366,7 +1366,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextFrames(void) throw( RuntimeExc
+  * --------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getStyleFamilies(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXStyleFamilies)
+@@ -1381,7 +1381,7 @@ Reference< XNameAccess >  SwXTextDocument::getStyleFamilies(void) throw( Runtime
+   -----------------------------------------------------------------------*/
+ Reference< drawing::XDrawPage >  SwXTextDocument::getDrawPage(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXDrawPage)
+@@ -1626,7 +1626,7 @@ void	SwXTextDocument::InitNewDoc()
+ Reference< XInterface >  SwXTextDocument::createInstance(const OUString& rServiceName)
+ 										throw( Exception, RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	Reference< XInterface >  xRet;
+@@ -1789,7 +1789,7 @@ Sequence< OUString > SwXTextDocument::getSupportedServiceNames(void) throw( Runt
+  * --------------------------------------------------*/
+ Reference< XIndexAccess >  SwXTextDocument::getDocumentIndexes(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXDocumentIndexes)
+@@ -1816,7 +1816,7 @@ void SwXTextDocument::setPropertyValue(const OUString& rPropertyName,
+ 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException,
+ 										 WrappedTargetException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -1966,7 +1966,7 @@ void SwXTextDocument::setPropertyValue(const OUString& rPropertyName,
+ Any SwXTextDocument::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2155,7 +2155,7 @@ Reference< XEnumerationAccess > SwXTextDocument::getRedlines(  ) throw(RuntimeEx
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::refresh(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	SwWrtShell *pWrtShell = pDocShell->GetWrtShell();
+@@ -2169,7 +2169,7 @@ void SwXTextDocument::refresh(void) throw( RuntimeException )
+ void SwXTextDocument::addRefreshListener(const Reference< util::XRefreshListener > & l)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() )
+ 		throw RuntimeException();
+ 	aRefreshCont.AddListener ( reinterpret_cast < const Reference < lang::XEventListener > &> ( l ));
+@@ -2180,7 +2180,7 @@ void SwXTextDocument::addRefreshListener(const Reference< util::XRefreshListener
+ void SwXTextDocument::removeRefreshListener(const Reference< util::XRefreshListener > & l)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() || !aRefreshCont.RemoveListener ( reinterpret_cast < const Reference < lang::XEventListener > &> ( l ) ) )
+ 		throw RuntimeException();
+ }
+@@ -2189,7 +2189,7 @@ void SwXTextDocument::removeRefreshListener(const Reference< util::XRefreshListe
+  ---------------------------------------------------------------------------*/
+ void SwXTextDocument::updateLinks(  ) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	SwDoc* pDoc = pDocShell->GetDoc();
+@@ -2204,7 +2204,7 @@ void SwXTextDocument::updateLinks(  ) throw(RuntimeException)
+ PropertyState SAL_CALL SwXTextDocument::getPropertyState( const OUString& rPropertyName )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	PropertyState eRet = PropertyState_DIRECT_VALUE;
+ 	if(!IsValid())
+ 		throw RuntimeException();
+@@ -2236,7 +2236,7 @@ Sequence< PropertyState > SAL_CALL SwXTextDocument::getPropertyStates( const Seq
+ void SAL_CALL SwXTextDocument::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2251,7 +2251,7 @@ void SAL_CALL SwXTextDocument::setPropertyToDefault( const OUString& rPropertyNa
+ Any SAL_CALL SwXTextDocument::getPropertyDefault( const OUString& rPropertyName )
+ 	throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2297,7 +2297,7 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+ 
+@@ -2329,7 +2329,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+     SwDoc *pDoc = GetRenderDoc( rSelection );
+@@ -2364,7 +2364,7 @@ void SAL_CALL SwXTextDocument::render(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+     SwDoc *pDoc = GetRenderDoc( rSelection );
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx b/binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx
+index ff9e5c5..3b85503 100644
+--- binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx
+@@ -130,8 +130,8 @@
+ #include "XMLBasicExportFilter.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _RTL_LOGFILE_HXX_
+@@ -1790,8 +1790,8 @@ void SvXMLExport::SetError(
+     const Reference<XLocator>& rLocator )
+ {
+     // allow multi-threaded access to the cancel() method
+-    static ::vos::OMutex aMutex;
+-    ::vos::OGuard aGuard(aMutex);
++    static ::osl::Mutex aMutex;
++    ::osl::MutexGuard aGuard(aMutex);
+ 
+     // maintain error flags
+     if ( ( nId & XMLERROR_FLAG_ERROR ) != 0 )
+diff --git a/binfilter/binfilterdetect/source/bindetect.cxx b/binfilter/binfilterdetect/source/bindetect.cxx
+index c8bb05a..e25313f 100644
+--- binfilter/binfilterdetect/source/bindetect.cxx
++++ binfilter/binfilterdetect/source/bindetect.cxx
+@@ -61,7 +61,7 @@
+ #include <svtools/pathoptions.hxx>
+ #endif
+ #include <rtl/ustring.h>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <sot/storage.hxx>
+ #include <sot/exchange.hxx>
+ #include <comphelper/mediadescriptor.hxx>
+@@ -560,7 +560,7 @@ BinFilterDetect::~BinFilterDetect()
+ 
+ ::rtl::OUString SAL_CALL BinFilterDetect::detect( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lDescriptor ) throw( ::com::sun::star::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // create MediaDescriptor
+     comphelper::MediaDescriptor aMedium( lDescriptor );
+diff --git a/binfilter/filter/source/bf_offwrp/bf_wrapper.cxx b/binfilter/filter/source/bf_offwrp/bf_wrapper.cxx
+index 61441ea..4864b0f 100644
+--- binfilter/filter/source/bf_offwrp/bf_wrapper.cxx
++++ binfilter/filter/source/bf_offwrp/bf_wrapper.cxx
+@@ -52,7 +52,7 @@
+ #endif
+ 
+ // #i30187#
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ namespace binfilter {
+ 
+@@ -105,7 +105,7 @@ Reference< XInterface >  SAL_CALL bf_OfficeWrapper_CreateInstance( const Referen
+ 		if ( 0L == pOfficeWrapper )
+ 		{
+ 			// #i30187#
+-			::vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 			return (XComponent*) ( new bf_OfficeWrapper( rSMgr ) );
+ 		}
+diff --git a/binfilter/inc/bf_goodies/base3d.hxx b/binfilter/inc/bf_goodies/base3d.hxx
+index 059105a..ddce624 100644
+--- binfilter/inc/bf_goodies/base3d.hxx
++++ binfilter/inc/bf_goodies/base3d.hxx
+@@ -65,8 +65,8 @@
+ #include <vcl/timer.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ // Vorausdeklarationen
+@@ -99,7 +99,7 @@ namespace binfilter {
+ //	// Texturverwaltung
+ //	Container				maTextureStore;
+ //	AutoTimer				maTimer;
+-//	vos::OMutex				maMutex;
++//	osl::Mutex				maMutex;
+ //
+ //	// link for timer
+ //    DECL_LINK(TimerHdl, AutoTimer*);
+diff --git a/binfilter/inc/bf_sc/refreshtimer.hxx b/binfilter/inc/bf_sc/refreshtimer.hxx
+index ad3004a..991512a 100644
+--- binfilter/inc/bf_sc/refreshtimer.hxx
++++ binfilter/inc/bf_sc/refreshtimer.hxx
+@@ -39,9 +39,9 @@
+ #ifndef _SV_TIMER_HXX
+ #include <vcl/timer.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
+-#endif
++
++#include <osl/mutex.hxx>
++
+ namespace binfilter {
+ 
+ #define SC_REFRESHTIMER_CONTROL_LIST 0
+@@ -53,7 +53,7 @@ DECLARE_LIST( ScRefreshTimerList, ScRefreshTimer* )
+ class ScRefreshTimerControl
+ {
+ private:
+-			::vos::OMutex		aMutex;
++			::osl::Mutex		aMutex;
+ 			USHORT				nBlockRefresh;
+ 
+ public:
+@@ -71,7 +71,7 @@ public:
+ 											++nBlockRefresh;
+ 									}
+ 			BOOL				IsRefreshAllowed() const	{ return !nBlockRefresh; }
+-			::vos::OMutex&		GetMutex()					{ return aMutex; }
++			::osl::Mutex&		GetMutex()					{ return aMutex; }
+ };
+ 
+ 
+diff --git a/binfilter/inc/bf_sc/unoguard.hxx b/binfilter/inc/bf_sc/unoguard.hxx
+index 22cc607..8e16652 100644
+--- binfilter/inc/bf_sc/unoguard.hxx
++++ binfilter/inc/bf_sc/unoguard.hxx
+@@ -36,12 +36,12 @@
+ #ifndef SC_UNOGUARD_HXX
+ #define SC_UNOGUARD_HXX
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ namespace binfilter {
+ 
+-class ScUnoGuard : public NAMESPACE_VOS(OGuard)
++class ScUnoGuard : public osl::SolarMutexGuard
+ {
+ public:
+ 			ScUnoGuard();
+diff --git a/canvas/inc/canvas/vclwrapper.hxx b/canvas/inc/canvas/vclwrapper.hxx
+index 4c3e30a..fc2c541 100644
+--- canvas/inc/canvas/vclwrapper.hxx
++++ canvas/inc/canvas/vclwrapper.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -132,7 +132,7 @@ namespace canvas
+             {
+                 // This here is the whole purpose of the template:
+                 // protecting object deletion with the solar mutex
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                 
+                 if( mpWrappee )
+                     delete mpWrappee;
+diff --git a/canvas/source/cairo/cairo_canvasfont.cxx b/canvas/source/cairo/cairo_canvasfont.cxx
+index 68c7c1a..a7e685b 100644
+--- canvas/source/cairo/cairo_canvasfont.cxx
++++ canvas/source/cairo/cairo_canvasfont.cxx
+@@ -42,6 +42,7 @@
+ #include <basegfx/numeric/ftools.hxx>
+ 
+ #include <vcl/metric.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include "cairo_canvasfont.hxx"
+ #include "cairo_textlayout.hxx"
+@@ -68,7 +69,7 @@ namespace cairocanvas
+         	}
+ 
+         private:
+-            ::vos::OGuard aGuard;        
++            osl::SolarMutexGuard aGuard;        
+         }; 
+     }
+ 
+diff --git a/canvas/source/vcl/bitmapbackbuffer.cxx b/canvas/source/vcl/bitmapbackbuffer.cxx
+index c02d160..7d1a164 100644
+--- canvas/source/vcl/bitmapbackbuffer.cxx
++++ canvas/source/vcl/bitmapbackbuffer.cxx
+@@ -39,7 +39,7 @@
+ #include "bitmapbackbuffer.hxx"
+ 
+ #include <osl/mutex.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <vcl/svapp.hxx>
+ #include <vcl/bitmapex.hxx>
+@@ -62,7 +62,7 @@ namespace vclcanvas
+     {
+         // make sure solar mutex is held on deletion (other methods
+         // are supposed to be called with already locked solar mutex)
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         
+         if( mpVDev )
+             delete mpVDev;
+diff --git a/canvas/source/vcl/impltools.hxx b/canvas/source/vcl/impltools.hxx
+index 0f16129..386c74f 100644
+--- canvas/source/vcl/impltools.hxx
++++ canvas/source/vcl/impltools.hxx
+@@ -37,10 +37,11 @@
+ #define _VCLCANVAS_TOOLS_HXX
+ 
+ #include <osl/mutex.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <vcl/svapp.hxx>
+ #include <vcl/outdev.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <basegfx/polygon/b2dpolypolygon.hxx>
+ 
+@@ -141,7 +142,7 @@ namespace vclcanvas
+         	}
+ 
+         private:
+-            ::vos::OGuard aGuard;        
++            osl::SolarMutexGuard aGuard;        
+         };
+ 
+         class OutDevStateKeeper
+diff --git a/chart2/inc/pch/precompiled_chart2.hxx b/chart2/inc/pch/precompiled_chart2.hxx
+index 02334c2..c9d0470 100644
+--- chart2/inc/pch/precompiled_chart2.hxx
++++ chart2/inc/pch/precompiled_chart2.hxx
+@@ -278,6 +278,6 @@
+ 
+ #include "vcl/fldunit.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ //---MARKER---
+ #endif
+diff --git a/chart2/source/controller/accessibility/AccStatisticsObject.cxx b/chart2/source/controller/accessibility/AccStatisticsObject.cxx
+index 3cbb5a8..ca86fcd 100644
+--- chart2/source/controller/accessibility/AccStatisticsObject.cxx
++++ chart2/source/controller/accessibility/AccStatisticsObject.cxx
+@@ -59,7 +59,7 @@ AccStatisticsObject::AccStatisticsObject( const AccessibleElementInfo& rAccInfo
+ //    OSL_ASSERT( pModel );
+ 
+     // /-- solar
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ /*    switch( eType )
+     {
+         case MEAN_VAL_LINE:
+diff --git a/chart2/source/controller/accessibility/AccessibleBase.cxx b/chart2/source/controller/accessibility/AccessibleBase.cxx
+index 0d543c5..72f1ec0 100644
+--- chart2/source/controller/accessibility/AccessibleBase.cxx
++++ chart2/source/controller/accessibility/AccessibleBase.cxx
+@@ -95,6 +95,8 @@
+ #include <vcl/window.hxx>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ #include <algorithm>
+ 
+ #include "ChartElementFactory.hxx"
+@@ -796,7 +798,7 @@ awt::Rectangle SAL_CALL AccessibleBase::getBounds()
+                              aLogicRect.X + aLogicRect.Width,
+                              aLogicRect.Y + aLogicRect.Height );
+             // /-- solar
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             aRect = pWindow->LogicToPixel( aRect );
+ 
+             // aLogicRect ist relative to the page, but we need a value relative
+diff --git a/chart2/source/controller/accessibility/AccessibleChartElement.cxx b/chart2/source/controller/accessibility/AccessibleChartElement.cxx
+index 017ab00..12936e3 100644
+--- chart2/source/controller/accessibility/AccessibleChartElement.cxx
++++ chart2/source/controller/accessibility/AccessibleChartElement.cxx
+@@ -161,7 +161,7 @@ void AccessibleChartElement::InitTextEdit()
+ //     OSL_ASSERT( m_pTextHelper == 0 );
+ 
+ //     // /-- solar
+-//     ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++//     osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ //     Window* pWindow( VCLUnoHelper::GetWindow( GetInfo().m_xWindow ));
+ //     if( pWindow )
+ //     {
+@@ -200,7 +200,7 @@ Reference< XAccessible > AccessibleChartElement::ImplGetAccessibleChildById( sal
+     {
+         xResult.set( m_xTextHelper->getAccessibleChild( i ));
+         // /-- solar
+-//         ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++//         osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ //         if( m_pTextHelper )
+ //             xResult.set( m_pTextHelper->GetChild( i ) );
+         // \-- solar
+diff --git a/chart2/source/controller/accessibility/AccessibleChartView.cxx b/chart2/source/controller/accessibility/AccessibleChartView.cxx
+index 72037e1..b45c0ba 100644
+--- chart2/source/controller/accessibility/AccessibleChartView.cxx
++++ chart2/source/controller/accessibility/AccessibleChartView.cxx
+@@ -54,6 +54,7 @@
+ #include <toolkit/helper/vclunohelper.hxx>
+ // for SolarMutex
+ #include <vcl/svapp.hxx>
++#include <osl/mutex.hxx>
+ 
+ // header for typedef MutexGuard
+ #include <osl/mutex.hxx>
+@@ -105,7 +106,7 @@ awt::Rectangle AccessibleChartView::GetWindowPosSize() const
+     if( pWindow )
+     {
+         // /-- solar
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         Point aVCLPoint( pWindow->OutputToAbsoluteScreenPixel( Point( 0, 0 ) ));
+         aBBox.X = aVCLPoint.getX();
+         aBBox.Y = aVCLPoint.getY();
+diff --git a/chart2/source/controller/accessibility/AccessibleTextHelper.cxx b/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
+index 9a7f27f..33a8194 100644
+--- chart2/source/controller/accessibility/AccessibleTextHelper.cxx
++++ chart2/source/controller/accessibility/AccessibleTextHelper.cxx
+@@ -40,7 +40,7 @@
+ #include "DrawViewWrapper.hxx"
+ 
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <svx/AccessibleTextHelper.hxx>
+ #include <svx/unoshtxt.hxx>
+@@ -94,7 +94,7 @@ void SAL_CALL AccessibleTextHelper::initialize( const Sequence< uno::Any >& aArg
+         return;
+ 
+     // /-- solar
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     if( m_pTextHelper )
+         delete m_pTextHelper;
+@@ -128,7 +128,7 @@ void SAL_CALL AccessibleTextHelper::initialize( const Sequence< uno::Any >& aArg
+     if( m_pTextHelper )
+     {
+         // /-- solar
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         return m_pTextHelper->GetChildCount();
+         // \-- solar
+     }
+@@ -142,7 +142,7 @@ Reference< XAccessible > SAL_CALL AccessibleTextHelper::getAccessibleChild( ::sa
+     if( m_pTextHelper )
+     {
+         // /-- solar
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         return m_pTextHelper->GetChild( i );
+         // \-- solar
+     }
+diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
+index 22293e7..6ee8875 100644
+--- chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
++++ chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx
+@@ -46,8 +46,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -103,7 +103,7 @@ CreationWizardUnoDlg::CreationWizardUnoDlg( const uno::Reference< uno::XComponen
+ }
+ CreationWizardUnoDlg::~CreationWizardUnoDlg()
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 	if( m_pDialog )
+ 	{
+ 		delete m_pDialog;
+@@ -209,7 +209,7 @@ uno::Sequence< sal_Int8 > SAL_CALL CreationWizardUnoDlg::getImplementationId( vo
+ // XTerminateListener
+ void SAL_CALL CreationWizardUnoDlg::queryTermination( const lang::EventObject& /*Event*/ ) throw( frame::TerminationVetoException, uno::RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 
+ 	// we will never give a veto here
+ 	if( m_pDialog && !m_pDialog->isClosable() )
+@@ -239,7 +239,7 @@ void SAL_CALL CreationWizardUnoDlg::setTitle( const ::rtl::OUString& /*rTitle*/
+ //-------------------------------------------------------------------------
+ void CreationWizardUnoDlg::createDialogOnDemand()
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 	if( !m_pDialog )
+ 	{
+ 		Window* pParent = NULL;
+@@ -282,7 +282,7 @@ sal_Int16 SAL_CALL CreationWizardUnoDlg::execute(  ) throw(uno::RuntimeException
+ {
+     sal_Int16 nRet = RET_CANCEL;
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         createDialogOnDemand();
+         if( !m_pDialog )
+             return nRet;
+@@ -324,7 +324,7 @@ void SAL_CALL CreationWizardUnoDlg::disposing()
+     m_xParentWindow.clear();
+ 
+     // /--
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     if( m_pDialog )
+     {
+         delete m_pDialog;
+@@ -370,7 +370,7 @@ void SAL_CALL CreationWizardUnoDlg::setPropertyValue( const ::rtl::OUString& rPr
+ 
+         //set left upper outer corner relative to screen
+         //pixels, screen position
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         createDialogOnDemand();
+         if( m_pDialog )
+         {
+@@ -402,7 +402,7 @@ uno::Any SAL_CALL CreationWizardUnoDlg::getPropertyValue( const ::rtl::OUString&
+     {
+         //get left upper outer corner relative to screen
+         //pixels, screen position
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         createDialogOnDemand();
+         if( m_pDialog )
+         {
+@@ -415,7 +415,7 @@ uno::Any SAL_CALL CreationWizardUnoDlg::getPropertyValue( const ::rtl::OUString&
+     {
+         //get outer size inclusive decoration
+         //pixels, screen position
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         createDialogOnDemand();
+         if( m_pDialog )
+         {
+diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx
+index ea5922e..2739f44 100644
+--- chart2/source/controller/main/ChartController.cxx
++++ chart2/source/controller/main/ChartController.cxx
+@@ -83,7 +83,7 @@
+ #include <toolkit/awt/vclxwindow.hxx>
+ #include <toolkit/helper/vclunohelper.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ //-------
+ #include <com/sun/star/frame/XLayoutManager.hpp>
+ #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
+@@ -368,7 +368,7 @@ APPHELPER_XSERVICEINFO_IMPL(ChartController,CHART_CONTROLLER_SERVICE_IMPLEMENTAT
+ ::attachFrame( const uno::Reference<frame::XFrame>& xFrame )
+ 		throw(uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	
+ 	if( impl_isDisposedOrSuspended() ) //@todo? allow attaching the frame while suspended?
+ 		return; //behave passive if already disposed or suspended
+@@ -417,7 +417,7 @@ APPHELPER_XSERVICEINFO_IMPL(ChartController,CHART_CONTROLLER_SERVICE_IMPLEMENTAT
+         awt::Size aPageSize( ChartModelHelper::getPageSize(m_aModel->getModel()) );
+         
+ 		// calls to VCL
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 		m_pChartWindow = new ChartWindow(this,pParent,pParent?pParent->GetStyle():0);
+ 		m_pChartWindow->SetBackground();//no Background
+ 		m_xViewWindow = uno::Reference< awt::XWindow >( m_pChartWindow->GetComponentInterface(), uno::UNO_QUERY );
+@@ -481,7 +481,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+     {
+         //the view is about to become invalid so end all actions on it
+         impl_invalidateAccessible();
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	    if( m_pDrawViewWrapper && m_pDrawViewWrapper->IsTextEdit() )
+             this->EndTextEdit();
+         if( m_pDrawViewWrapper )
+@@ -501,7 +501,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+                 if(m_pDrawModelWrapper)
+                 {
+                     {
+-                        ::vos::OGuard aGuard( Application::GetSolarMutex());
++                        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+                         if( m_pDrawViewWrapper )
+                             m_pDrawViewWrapper->ReInit();
+                     }
+@@ -533,7 +533,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+ 	//is called to attach the controller to a new model.
+ 	//return true if attach was successfully, false otherwise (e.g. if you do not work with a model)
+ 
+-    ::vos::OClearableGuard aGuard( Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( impl_isDisposedOrSuspended() ) //@todo? allow attaching a new model while suspended?
+ 		return sal_False; //behave passive if already disposed or suspended
+ 	aGuard.clear();
+@@ -631,7 +631,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+ 	//set of data that can be used to restore the current view status at later time
+ 	//	by using XController::restoreViewData()
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( impl_isDisposedOrSuspended() )
+ 		return uno::Any(); //behave passive if already disposed or suspended //@todo? or throw an exception??
+ 
+@@ -648,7 +648,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+ {
+ 	//restores the view status using the data gotten from a previous call to XController::getViewData()
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( impl_isDisposedOrSuspended() )
+ 		return; //behave passive if already disposed or suspended //@todo? or throw an exception??
+ 
+@@ -666,7 +666,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+ 
+     //we may show dialogs here to ask the user for saving changes ... @todo?
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( m_aLifeTimeManager.impl_isDisposed() )
+ 		return sal_False; //behave passive if already disposed, return false because request was not accepted //@todo? correct
+ 
+@@ -709,7 +709,7 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent
+ 
+ void ChartController::impl_createDrawViewController()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     if(!m_pDrawViewWrapper)
+     {
+         if( m_pDrawModelWrapper )
+@@ -723,7 +723,7 @@ void ChartController::impl_deleteDrawViewController()
+ {
+     if( m_pDrawViewWrapper )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         if( m_pDrawViewWrapper->IsTextEdit() )
+             this->EndTextEdit();
+         DELETEZ( m_pDrawViewWrapper );
+@@ -776,7 +776,7 @@ void ChartController::impl_deleteDrawViewController()
+                 xViewBroadcaster->removeModeChangeListener(this);
+             // /--
+             impl_invalidateAccessible();
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+             impl_deleteDrawViewController();
+             m_pDrawModelWrapper.reset();
+ 
+@@ -840,7 +840,7 @@ void ChartController::impl_deleteDrawViewController()
+ ::addEventListener( const uno::Reference<lang::XEventListener>& xListener )
+ 		throw(uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( impl_isDisposedOrSuspended() )//@todo? allow adding of listeners in suspend mode?
+ 		return; //behave passive if already disposed or suspended
+ 
+@@ -853,7 +853,7 @@ void ChartController::impl_deleteDrawViewController()
+ 		lang::XEventListener>& xListener )
+ 		throw(uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     if( m_aLifeTimeManager.impl_isDisposed() )
+ 		return; //behave passive if already disposed or suspended
+ 
+@@ -1149,7 +1149,7 @@ bool lcl_isFormatObjectCommand( const rtl::OString& aCommand )
+ 			throw (uno::RuntimeException)
+ {
+ //     // TODO: add listener by URL !
+-// 	::vos::OGuard aGuard( Application::GetSolarMutex());
++// 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ // 	if( impl_isDisposedOrSuspended() )//@todo? allow adding of listeners in suspend mode?
+ // 		return; //behave passive if already disposed or suspended
+ 
+@@ -1163,7 +1163,7 @@ bool lcl_isFormatObjectCommand( const rtl::OString& aCommand )
+ 			throw (uno::RuntimeException)
+ {
+ //     // TODO: remove listener by URL !
+-// 	::vos::OGuard aGuard( Application::GetSolarMutex());
++// 	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ //     if( m_aLifeTimeManager.impl_isDisposed() )
+ // 		return; //behave passive if already disposed or suspended
+ 
+@@ -1204,7 +1204,7 @@ void SAL_CALL ChartController::executeDispatch_ChartType()
+         ::rtl::OUString( String( SchResId( STR_ACTION_EDIT_CHARTTYPE ))), m_xUndoManager, m_aModel->getModel() );
+ 
+     // /--
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     //prepare and open dialog
+     ChartTypeDialog aDlg( m_pChartWindow, m_aModel->getModel(), m_xCC );
+     if( aDlg.Execute() == RET_OK )
+@@ -1230,7 +1230,7 @@ void SAL_CALL ChartController::executeDispatch_SourceData()
+     if( xChartDoc.is())
+     {
+         // /--
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         ::chart::DataSourceDialog aDlg( m_pChartWindow, xChartDoc, m_xCC );
+         if( aDlg.Execute() == RET_OK )
+         {
+diff --git a/chart2/source/controller/main/ChartController_EditData.cxx b/chart2/source/controller/main/ChartController_EditData.cxx
+index b8142cc..bdf7078 100644
+--- chart2/source/controller/main/ChartController_EditData.cxx
++++ chart2/source/controller/main/ChartController_EditData.cxx
+@@ -54,8 +54,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_CHART2_XCHARTDOCUMENT_HPP_
+@@ -81,7 +81,7 @@ void ChartController::executeDispatch_EditData()
+ 
+         {
+             // /--
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+             // using assignment for broken gcc 3.3
+             UndoLiveUpdateGuardWithData aUndoGuard = UndoLiveUpdateGuardWithData(
+                 ::rtl::OUString( String( SchResId( STR_ACTION_EDIT_CHART_DATA ))),
+diff --git a/chart2/source/controller/main/ChartController_Insert.cxx b/chart2/source/controller/main/ChartController_Insert.cxx
+index 4bce8e3..8ec3ad1 100644
+--- chart2/source/controller/main/ChartController_Insert.cxx
++++ chart2/source/controller/main/ChartController_Insert.cxx
+@@ -77,8 +77,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ // header for class ::vos::OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ //.............................................................................
+@@ -106,7 +106,7 @@ void SAL_CALL ChartController::executeDispatch_InsertAxis()
+         AxisHelper::getAxisOrGridExcistence( aDialogInput.aExistenceList, xDiagram, sal_True );
+         AxisHelper::getAxisOrGridPossibilities( aDialogInput.aPossibilityList, xDiagram, sal_True );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SchAxisDlg aDlg( m_pChartWindow, aDialogInput );
+         if( aDlg.Execute() == RET_OK )
+         {
+@@ -144,7 +144,7 @@ void SAL_CALL ChartController::executeDispatch_InsertGrid()
+         AxisHelper::getAxisOrGridExcistence( aDialogInput.aExistenceList, xDiagram, sal_False );
+         AxisHelper::getAxisOrGridPossibilities( aDialogInput.aPossibilityList, xDiagram, sal_False );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SchGridDlg aDlg( m_pChartWindow, aDialogInput );//aItemSet, b3D, bNet, bSecondaryX, bSecondaryY );
+         if( aDlg.Execute() == RET_OK )
+         {
+@@ -179,7 +179,7 @@ void SAL_CALL ChartController::executeDispatch_InsertTitle()
+         TitleDialogData aDialogInput;
+         aDialogInput.readFromModel( m_aModel->getModel() );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SchTitleDlg aDlg( m_pChartWindow, aDialogInput );
+         if( aDlg.Execute() == RET_OK )
+         {
+@@ -208,7 +208,7 @@ void SAL_CALL ChartController::executeDispatch_InsertLegend()
+     try
+     {
+         //prepare and open dialog
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SchLegendDlg aDlg( m_pChartWindow, m_xCC );
+         aDlg.init( m_aModel->getModel() );
+         if( aDlg.Execute() == RET_OK )
+@@ -247,7 +247,7 @@ void SAL_CALL ChartController::executeDispatch_InsertDataLabel()
+         aItemConverter.FillItemSet( aItemSet );
+ 
+         //prepare and open dialog
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+         //get number formatter
+         uno::Reference< util::XNumberFormatsSupplier > xNumberFormatsSupplier( m_aModel->getModel(), uno::UNO_QUERY );
+@@ -288,7 +288,7 @@ void SAL_CALL ChartController::executeDispatch_InsertStatistic()
+         aItemConverter.FillItemSet( aItemSet );
+ 
+         //prepare and open dialog
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SchDataStatisticsDlg aDlg( m_pChartWindow, aItemSet);
+ //         aDlg.EnableTrendLine( ChartTypeHelper::isSupportingRegressionProperties( xChartType ));
+         aDlg.EnableTrendLine( true );
+diff --git a/chart2/source/controller/main/ChartController_Position.cxx b/chart2/source/controller/main/ChartController_Position.cxx
+index f6e0ed3..f72219d 100644
+--- chart2/source/controller/main/ChartController_Position.cxx
++++ chart2/source/controller/main/ChartController_Position.cxx
+@@ -68,8 +68,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ //.............................................................................
+@@ -126,7 +126,7 @@ void SAL_CALL ChartController::executeDispatch_PositionAndSize()
+         SdrView* pSdrView = m_pDrawViewWrapper;
+         bool bResizePossible=true;
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SvxAbstractDialogFactory * pFact = SvxAbstractDialogFactory::Create();
+         DBG_ASSERT( pFact, "No dialog factory" );
+         pDlg = pFact->CreateSchTransformTabDialog(
+diff --git a/chart2/source/controller/main/ChartController_Properties.cxx b/chart2/source/controller/main/ChartController_Properties.cxx
+index ca64fda..a337abb 100644
+--- chart2/source/controller/main/ChartController_Properties.cxx
++++ chart2/source/controller/main/ChartController_Properties.cxx
+@@ -84,8 +84,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SVX_ACTIONDESCRIPTIONPROVIDER_HXX
+@@ -583,7 +583,7 @@ void SAL_CALL ChartController::executeDlg_ObjectProperties( const ::rtl::OUStrin
+ 		aDialogParameter.init( m_aModel->getModel() );
+         ViewElementListProvider aViewElementListProvider( m_pDrawModelWrapper.get() );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         SchAttribTabDlg aDlg( m_pChartWindow, &aItemSet, &aDialogParameter, &aViewElementListProvider
+             , uno::Reference< util::XNumberFormatsSupplier >( m_aModel->getModel(), uno::UNO_QUERY ) );
+ 
+@@ -695,7 +695,7 @@ void SAL_CALL ChartController::executeDispatch_View3D()
+ 
+         // /--
+         //open dialog
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         View3DDialog aDlg( m_pChartWindow, m_aModel->getModel(), m_pDrawModelWrapper->GetColorTable() );
+         if( aDlg.Execute() == RET_OK )
+             aUndoGuard.commitAction();
+diff --git a/chart2/source/controller/main/ChartController_TextEdit.cxx b/chart2/source/controller/main/ChartController_TextEdit.cxx
+index 4b8023c..47bb82c 100644
+--- chart2/source/controller/main/ChartController_TextEdit.cxx
++++ chart2/source/controller/main/ChartController_TextEdit.cxx
+@@ -70,8 +70,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+@@ -177,7 +177,7 @@ bool ChartController::EndTextEdit()
+ 
+ void SAL_CALL ChartController::executeDispatch_InsertSpecialCharacter()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+     if( m_pDrawViewWrapper && !m_pDrawViewWrapper->IsTextEdit() )
+         this->StartTextEdit();
+diff --git a/chart2/source/controller/main/ChartController_Tools.cxx b/chart2/source/controller/main/ChartController_Tools.cxx
+index 9a4b486..15b83a2 100644
+--- chart2/source/controller/main/ChartController_Tools.cxx
++++ chart2/source/controller/main/ChartController_Tools.cxx
+@@ -83,8 +83,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ using namespace ::com::sun::star;
+@@ -297,7 +297,7 @@ void ChartController::executeDispatch_NewArrangement()
+ 
+ void ChartController::executeDispatch_ScaleText()
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     // using assignment for broken gcc 3.3
+     UndoGuard aUndoGuard = UndoGuard(
+         ::rtl::OUString( String( SchResId( STR_ACTION_SCALE_TEXT ))),
+@@ -445,7 +445,7 @@ void ChartController::executeDispatch_Copy()
+     Reference< datatransfer::XTransferable > xTransferable;
+ 
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         SdrObject * pSelectedObj = 0;
+         if( m_pDrawViewWrapper && m_pDrawModelWrapper )
+         {
+@@ -578,7 +578,7 @@ bool ChartController::executeDispatch_Delete()
+         {
+             m_aSelection.clearSelection();
+             {
+-                ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++                osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+                 if( m_pDrawViewWrapper )
+                     m_pDrawViewWrapper->UnmarkAll();
+             }
+diff --git a/chart2/source/controller/main/ChartController_Window.cxx b/chart2/source/controller/main/ChartController_Window.cxx
+index f0309af..555f270 100644
+--- chart2/source/controller/main/ChartController_Window.cxx
++++ chart2/source/controller/main/ChartController_Window.cxx
+@@ -93,8 +93,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ // for InfoBox
+@@ -457,7 +457,7 @@ void ChartController::execute_Paint( const Rectangle& rRect )
+         {
+             awt::Size aResolution(1000,1000);
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex());
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+                 if( m_pChartWindow )
+                 {
+                     aResolution.Width = m_pChartWindow->GetSizePixel().Width();
+@@ -474,7 +474,7 @@ void ChartController::execute_Paint( const Rectangle& rRect )
+ 
+         Window* pWindow = m_pChartWindow;
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+             DrawViewWrapper* pDrawViewWrapper = m_pDrawViewWrapper;
+             if(pDrawViewWrapper)
+                 pDrawViewWrapper->CompleteRedraw(pWindow, Region(rRect) );
+@@ -543,7 +543,7 @@ IMPL_LINK( ChartController, DoubleClickWaitingHdl, void*, EMPTYARG )
+ 
+ void ChartController::execute_MouseButtonDown( const MouseEvent& rMEvt )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+     m_bWaitingForMouseUp = true;
+ 
+@@ -651,7 +651,7 @@ void ChartController::execute_MouseButtonDown( const MouseEvent& rMEvt )
+ 
+ void ChartController::execute_MouseMove( const MouseEvent& rMEvt )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+     Window* pWindow = m_pChartWindow;
+     DrawViewWrapper* pDrawViewWrapper = m_pDrawViewWrapper;
+@@ -684,7 +684,7 @@ void ChartController::execute_MouseButtonUp( const MouseEvent& rMEvt )
+     m_bWaitingForMouseUp = false;
+     bool bNotifySelectionChange = false;
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 
+ 	    Window* pWindow = m_pChartWindow;
+         DrawViewWrapper* pDrawViewWrapper = m_pDrawViewWrapper;
+@@ -838,7 +838,7 @@ void ChartController::execute_Command( const CommandEvent& rCEvt )
+ 
+     bool bIsAction = false;
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+         DrawViewWrapper* pDrawViewWrapper = m_pDrawViewWrapper;
+         if(!pWindow || !pDrawViewWrapper)
+             return;
+@@ -1233,7 +1233,7 @@ bool ChartController::requestQuickHelp(
+ 		view::XSelectionChangeListener > & xListener )
+ 		throw(uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( impl_isDisposedOrSuspended() )//@todo? allow adding of listeners in suspend mode?
+ 		return; //behave passive if already disposed or suspended
+ 
+@@ -1246,7 +1246,7 @@ bool ChartController::requestQuickHelp(
+ 		view::XSelectionChangeListener > & xListener )
+ 		throw(uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 	if( impl_isDisposedOrSuspended() ) //@todo? allow removing of listeners in suspend mode?
+ 		return; //behave passive if already disposed or suspended
+ 
+@@ -1405,7 +1405,7 @@ bool ChartController::impl_DragDataPoint( const ::rtl::OUString & rCID, double f
+ 
+ void ChartController::impl_SetMousePointer( const MouseEvent & rEvent )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     Window* pWindow = m_pChartWindow;
+     if( m_pDrawViewWrapper && pWindow )
+     {
+diff --git a/chart2/source/controller/main/SelectionHelper.cxx b/chart2/source/controller/main/SelectionHelper.cxx
+index 4179b73..9d2005b 100644
+--- chart2/source/controller/main/SelectionHelper.cxx
++++ chart2/source/controller/main/SelectionHelper.cxx
+@@ -60,8 +60,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _BGFX_POINT_B2DPOINT_HXX
+@@ -91,7 +91,7 @@ rtl::OUString lcl_getObjectName( SdrObject* pObj )
+ 
+ void impl_selectObject( SdrObject* pObjectToSelect, DrawViewWrapper& rDrawViewWrapper )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     
+     if(pObjectToSelect)
+     {
+@@ -182,7 +182,7 @@ void Selection::applySelection( DrawViewWrapper* pDrawViewWrapper )
+     if( pDrawViewWrapper )
+     {
+         {
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+             pDrawViewWrapper->UnmarkAll();
+         }
+         SdrObject* pObjectToSelect = 0;
+@@ -205,7 +205,7 @@ void Selection::adaptSelectionToNewPos( const Point& rMousePos, DrawViewWrapper*
+ 
+         const rtl::OUString aNameOfLastSelectedObject( m_aSelectedObjectCID );
+ 
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         
+         //bAllowMultiClickSelectionChange==true -> a second click on the same object can lead to a changed selection (e.g. series -> single data point)
+ 
+@@ -348,7 +348,7 @@ bool SelectionHelper::findNamedParent( SdrObject*& pInOutObject
+                                       , rtl::OUString& rOutName
+                                       , bool bGivenObjectMayBeResult )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     //find the deepest named group
+     SdrObject* pObj = pInOutObject;
+     rtl::OUString aName;
+@@ -386,7 +386,7 @@ bool SelectionHelper::isDragableObjectHitTwice( const Point& rMPos
+         return false;
+     if( !ObjectIdentifier::isDragableObject(rNameOfSelectedObject) )
+         return false;
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     SdrObject* pObj = rDrawViewWrapper.getNamedSdrObject( rNameOfSelectedObject );
+     if( !rDrawViewWrapper.IsObjectHit( pObj, rMPos ) )
+         return false;
+@@ -403,7 +403,7 @@ rtl::OUString lcl_getObjectCIDToSelect( const Point& rMPos
+ {
+     rtl::OUString aRet;
+ 
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     
+     //bAllowMultiClickSelectionChange==true -> a second click on the same object can lead to a changed selection (e.g. series -> single data point)
+ 
+@@ -501,7 +501,7 @@ rtl::OUString lcl_getObjectCIDToSelect( const Point& rMPos
+     bool bGetDiagramInsteadOf_Wall )
+ {
+     // //- solar mutex
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     rtl::OUString aRet;
+ 
+     SdrObject* pNewObj = rDrawViewWrapper.getHitObject(rMPos);
+@@ -604,7 +604,7 @@ SdrObject* SelectionHelper::getMarkHandlesObject( SdrObject* pObj )
+         return 0;
+ 
+     //search for a child with name "MarkHandles" or "HandlesOnly"
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     SdrObjList* pSubList = pObj->GetSubList();
+     if(pSubList)
+     {
+@@ -629,7 +629,7 @@ SdrObject* SelectionHelper::getObjectToMark()
+     //search for a child with name "MarkHandles" or "HandlesOnly"
+     if(pObj)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         SdrObjList* pSubList = pObj->GetSubList();
+         if(pSubList)
+         {
+@@ -661,7 +661,7 @@ E3dScene* SelectionHelper::getSceneToRotate( SdrObject* pObj )
+         pRotateable = dynamic_cast<E3dObject*>(pObj);
+         if( !pRotateable )
+         {
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+             SdrObjList* pSubList = pObj->GetSubList();
+             if(pSubList)
+             {
+@@ -678,7 +678,7 @@ E3dScene* SelectionHelper::getSceneToRotate( SdrObject* pObj )
+     E3dScene* pScene = 0;
+     if(pRotateable)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         pScene = pRotateable->GetScene();
+     }
+     return pScene;
+@@ -688,7 +688,7 @@ E3dScene* SelectionHelper::getSceneToRotate( SdrObject* pObj )
+ //virtual
+ bool SelectionHelper::getMarkHandles( SdrHdlList& rHdlList )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 
+     //@todo -> more flexible handle creation
+     //2 scenarios possible:
+diff --git a/chart2/source/controller/main/StatusBarCommandDispatch.cxx b/chart2/source/controller/main/StatusBarCommandDispatch.cxx
+index 612bb0f..5696073 100644
+--- chart2/source/controller/main/StatusBarCommandDispatch.cxx
++++ chart2/source/controller/main/StatusBarCommandDispatch.cxx
+@@ -44,8 +44,8 @@
+ #include <com/sun/star/util/XModifyBroadcaster.hpp>
+ #endif
+ 
+-// #ifndef _VOS_MUTEX_HXX_
+-// #include <vos/mutex.hxx>
++// #ifndef _OSL_MUTEX_HXX_
++// #include <osl/mutex.hxx>
+ // #endif
+ // #ifndef _SV_SVAPP_HXX
+ // #include <vcl/svapp.hxx>
+diff --git a/chart2/source/controller/main/UndoCommandDispatch.cxx b/chart2/source/controller/main/UndoCommandDispatch.cxx
+index ae78534..8dffc6f 100644
+--- chart2/source/controller/main/UndoCommandDispatch.cxx
++++ chart2/source/controller/main/UndoCommandDispatch.cxx
+@@ -42,7 +42,7 @@
+ #include <com/sun/star/chart2/XUndoSupplier.hpp>
+ #include <com/sun/star/util/XModifyBroadcaster.hpp>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ // for ressource strings STR_UNDO and STR_REDO
+@@ -121,7 +121,7 @@ void SAL_CALL UndoCommandDispatch::dispatch(
+     {
+         // why is it necessary to lock the solar mutex here?
+         // /--
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         if( URL.Path.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Undo" )))
+             m_xUndoManager->undo( m_xModel );
+         else
+diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
+index 2085979..a4d9bff 100644
+--- chart2/source/view/main/ChartView.cxx
++++ chart2/source/view/main/ChartView.cxx
+@@ -91,8 +91,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <time.h>
+@@ -245,7 +245,7 @@ void SAL_CALL ChartView::initialize( const uno::Sequence< uno::Any >& aArguments
+     if( !m_pDrawModelWrapper.get() )
+     {
+         // /--
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         m_pDrawModelWrapper = ::boost::shared_ptr< DrawModelWrapper >( new DrawModelWrapper( m_xCC ) );
+         m_xShapeFactory = m_pDrawModelWrapper->getShapeFactory();
+         m_xDrawPage = m_pDrawModelWrapper->getMainDrawPage();
+@@ -1340,7 +1340,7 @@ SdrPage* ChartView::getSdrPage()
+ 
+ uno::Reference< drawing::XShape > ChartView::getShapeForCID( const rtl::OUString& rObjectCID )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     SdrObject* pObj = DrawModelWrapper::getNamedSdrObject( rObjectCID, this->getSdrPage() );
+     if( pObj ) 
+         return uno::Reference< drawing::XShape >( pObj->getUnoShape(), uno::UNO_QUERY);
+@@ -1360,7 +1360,7 @@ awt::Rectangle ChartView::getRectangleOfObject( const rtl::OUString& rObjectCID,
+         ObjectType eObjectType( ObjectIdentifier::getObjectType( rObjectCID ) );
+         if( eObjectType == OBJECTTYPE_AXIS || eObjectType == OBJECTTYPE_DIAGRAM )
+         {
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+             SvxShape* pRoot = SvxShape::getImplementation( xShape );
+ 	        if( pRoot )
+             {
+@@ -2019,7 +2019,7 @@ void ChartView::createShapes()
+     if( m_pDrawModelWrapper )
+     {
+         // /--
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         m_pDrawModelWrapper->clearMainDrawPage();
+         // \--
+     }
+@@ -2038,7 +2038,7 @@ void ChartView::createShapes()
+     }
+ 
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         
+         //------------ apply fill properties to page
+         // todo: it would be nicer to just pass the page m_xDrawPage and format it,
+@@ -2169,7 +2169,7 @@ void ChartView::impl_updateView()
+ 		    //prepare draw model
+             {
+                 // /--
+-                ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++                osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+                 m_pDrawModelWrapper->lockControllers();
+                 m_pDrawModelWrapper->updateTablesFromChartModel( m_xChartModel );
+                 // \--
+@@ -2178,7 +2178,7 @@ void ChartView::impl_updateView()
+ 		    //create chart view
+ 		    {
+ 			    /*
+-			    ::vos::OGuard aGuard( Application::GetSolarMutex());
++			    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+ 			    while( m_bViewDirty )
+ 			    {
+ 				    createShapes();
+@@ -2218,7 +2218,7 @@ void ChartView::impl_updateView()
+ 
+         {
+             // /--
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+             m_pDrawModelWrapper->unlockControllers();
+             // \--
+         }
+diff --git a/comphelper/inc/comphelper/ChainablePropertySet.hxx b/comphelper/inc/comphelper/ChainablePropertySet.hxx
+index 557faeb..9c18aa5 100644
+--- comphelper/inc/comphelper/ChainablePropertySet.hxx
++++ comphelper/inc/comphelper/ChainablePropertySet.hxx
+@@ -56,10 +56,6 @@ namespace comphelper
+ { 
+ 	class ChainablePropertySetInfo;
+ }
+-namespace vos
+-{
+-	class IMutex;
+-}
+ /*
+  * A ChainablePropertySet has the following features:
+  *
+@@ -94,7 +90,7 @@ namespace comphelper
+ 		friend class MasterPropertySet;
+ 	protected:
+ 		ChainablePropertySetInfo *mpInfo;
+-		vos::IMutex *mpMutex;
++		osl::SolarMutex *mpMutex;
+ 		::com::sun::star::uno::Reference < com::sun::star::beans::XPropertySetInfo > mxInfo;
+ 		void lockMutex();
+ 		void unlockMutex();
+@@ -126,7 +122,7 @@ namespace comphelper
+ 			throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException );
+ 
+ 	public:
+-		ChainablePropertySet( comphelper::ChainablePropertySetInfo* pInfo, vos::IMutex *pMutex = NULL )
++		ChainablePropertySet( comphelper::ChainablePropertySetInfo* pInfo, osl::SolarMutex *pMutex = NULL )
+ 			throw();
+ 		virtual ~ChainablePropertySet() 
+ 			throw();
+diff --git a/comphelper/inc/comphelper/MasterPropertySet.hxx b/comphelper/inc/comphelper/MasterPropertySet.hxx
+index 9b7fd8c..a704c26 100644
+--- comphelper/inc/comphelper/MasterPropertySet.hxx
++++ comphelper/inc/comphelper/MasterPropertySet.hxx
+@@ -51,10 +51,6 @@
+ #include "comphelper/comphelperdllapi.h"
+ #endif
+ #include <map>
+-namespace vos
+-{
+-	class IMutex;
+-}
+ namespace comphelper 
+ { 
+ 	class MasterPropertySetInfo;
+@@ -89,7 +85,7 @@ namespace comphelper
+ 	{
+ 	protected:
+ 		MasterPropertySetInfo *mpInfo;
+-		vos::IMutex *mpMutex;
++		osl::SolarMutex *mpMutex;
+ 		sal_uInt8 mnLastId;
+ 		SlaveMap maSlaveMap;
+ 		::com::sun::star::uno::Reference < com::sun::star::beans::XPropertySetInfo > mxInfo;
+@@ -123,7 +119,7 @@ namespace comphelper
+ 			throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException );
+ 
+ 	public:
+-		MasterPropertySet( comphelper::MasterPropertySetInfo* pInfo, ::vos::IMutex *pMutex = NULL )
++		MasterPropertySet( comphelper::MasterPropertySetInfo* pInfo, ::osl::SolarMutex *pMutex = NULL )
+ 			throw();
+ 		virtual ~MasterPropertySet() 
+ 			throw();
+diff --git a/comphelper/inc/comphelper/SettingsHelper.hxx b/comphelper/inc/comphelper/SettingsHelper.hxx
+index 8a8507c..d8d5448 100644
+--- comphelper/inc/comphelper/SettingsHelper.hxx
++++ comphelper/inc/comphelper/SettingsHelper.hxx
+@@ -47,9 +47,9 @@
+ #ifndef _CPPUHELPER_IMPLBASE3_HXX_
+ #include <cppuhelper/implbase3.hxx>
+ #endif
+-namespace vos
++namespace osl
+ {
+-	class IMutex;
++	class SolarMutex;
+ }
+ 
+ namespace comphelper
+@@ -71,7 +71,7 @@ namespace comphelper
+ 		public ComphelperBase
+ 	{
+ 	public:
+-		SettingsHelperNoState ( ComphelperBaseInfo *pInfo, ::vos::IMutex *pMutex = NULL)
++		SettingsHelperNoState ( ComphelperBaseInfo *pInfo, ::osl::SolarMutex *pMutex = NULL)
+ 		: ComphelperBase ( pInfo, pMutex )
+ 		{}
+ 		virtual ~SettingsHelperNoState () throw( ) {}
+diff --git a/comphelper/source/property/ChainablePropertySet.cxx b/comphelper/source/property/ChainablePropertySet.cxx
+index 518cf83..97bfc1d 100644
+--- comphelper/source/property/ChainablePropertySet.cxx
++++ comphelper/source/property/ChainablePropertySet.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _COMPHELPER_CHAINABLEPROPERTYSETINFO_HXX_
+ #include <comphelper/ChainablePropertySetInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <memory>       // STL auto_ptr
+@@ -55,9 +55,8 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+-using ::vos::IMutex;
+ 
+-ChainablePropertySet::ChainablePropertySet( comphelper::ChainablePropertySetInfo* pInfo, vos::IMutex *pMutex ) 
++ChainablePropertySet::ChainablePropertySet( comphelper::ChainablePropertySetInfo* pInfo, osl::SolarMutex *pMutex ) 
+ 	throw()
+ : mpInfo ( pInfo )
+ , mpMutex ( pMutex )
+@@ -93,9 +92,9 @@ void SAL_CALL ChainablePropertySet::setPropertyValue( const ::rtl::OUString& rPr
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+ 	PropertyInfoHash::const_iterator aIter = mpInfo->maMap.find ( rPropertyName );
+ 
+@@ -111,9 +110,9 @@ Any SAL_CALL ChainablePropertySet::getPropertyValue( const ::rtl::OUString& rPro
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+ 	PropertyInfoHash::const_iterator aIter = mpInfo->maMap.find ( rPropertyName );
+ 
+@@ -157,9 +156,9 @@ void SAL_CALL ChainablePropertySet::setPropertyValues( const Sequence< ::rtl::OU
+ 	throw(PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+     const sal_Int32 nCount = aPropertyNames.getLength();
+ 
+@@ -191,9 +190,9 @@ Sequence< Any > SAL_CALL ChainablePropertySet::getPropertyValues( const Sequence
+ 	throw(RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+ 	const sal_Int32 nCount = aPropertyNames.getLength();
+ 
+diff --git a/comphelper/source/property/MasterPropertySet.cxx b/comphelper/source/property/MasterPropertySet.cxx
+index 8ccb6b8..0e35fcb 100644
+--- comphelper/source/property/MasterPropertySet.cxx
++++ comphelper/source/property/MasterPropertySet.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _COMPHELPER_CHAINABLEPROPERTYSETINFO_HXX_
+ #include <comphelper/ChainablePropertySetInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <memory>       // STL auto_ptr
+@@ -59,19 +59,19 @@
+ class AutoOGuardArray
+ {
+     sal_Int32                       nSize;
+-    std::auto_ptr< vos::OGuard > *  pGuardArray;
++    std::auto_ptr< osl::SolarMutexGuard > *  pGuardArray;
+ 
+ public:
+     AutoOGuardArray( sal_Int32 nNumElements );
+     ~AutoOGuardArray();
+ 
+-    std::auto_ptr< vos::OGuard > &  operator[] ( sal_Int32 i ) { return pGuardArray[i]; }
++    std::auto_ptr< osl::SolarMutexGuard > &  operator[] ( sal_Int32 i ) { return pGuardArray[i]; }
+ };
+ 
+ AutoOGuardArray::AutoOGuardArray( sal_Int32 nNumElements )
+ {
+     nSize       = nNumElements;
+-    pGuardArray = new std::auto_ptr< vos::OGuard >[ nSize ];
++    pGuardArray = new std::auto_ptr< osl::SolarMutexGuard >[ nSize ];
+ }
+ 
+ AutoOGuardArray::~AutoOGuardArray()
+@@ -89,7 +89,6 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+-using vos::IMutex;
+ 
+ SlaveData::SlaveData ( ChainablePropertySet *pSlave)
+ : mpSlave ( pSlave )
+@@ -98,7 +97,7 @@ SlaveData::SlaveData ( ChainablePropertySet *pSlave)
+ {
+ }
+ 
+-MasterPropertySet::MasterPropertySet( comphelper::MasterPropertySetInfo* pInfo, IMutex *pMutex ) 
++MasterPropertySet::MasterPropertySet( comphelper::MasterPropertySetInfo* pInfo, osl::SolarMutex *pMutex ) 
+ 	throw()
+ : mpInfo ( pInfo )
+ , mpMutex ( pMutex )
+@@ -147,9 +146,9 @@ void SAL_CALL MasterPropertySet::setPropertyValue( const ::rtl::OUString& rPrope
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+     PropertyDataHash::const_iterator aIter = mpInfo->maMap.find ( rPropertyName );
+ 
+@@ -167,9 +166,9 @@ void SAL_CALL MasterPropertySet::setPropertyValue( const ::rtl::OUString& rPrope
+         ChainablePropertySet * pSlave = maSlaveMap [ (*aIter).second->mnMapId ]->mpSlave;
+         
+         // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-        std::auto_ptr< vos::OGuard > pMutexGuard2;
++        std::auto_ptr< osl::SolarMutexGuard > pMutexGuard2;
+         if (pSlave->mpMutex)
+-            pMutexGuard2.reset( new vos::OGuard(pSlave->mpMutex) );
++            pMutexGuard2.reset( new osl::SolarMutexGuard(pSlave->mpMutex) );
+ 
+ 		pSlave->_preSetValues();
+ 		pSlave->_setSingleValue( *((*aIter).second->mpInfo), rValue );
+@@ -181,9 +180,9 @@ Any SAL_CALL MasterPropertySet::getPropertyValue( const ::rtl::OUString& rProper
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+     PropertyDataHash::const_iterator aIter = mpInfo->maMap.find ( rPropertyName );
+ 
+@@ -202,9 +201,9 @@ Any SAL_CALL MasterPropertySet::getPropertyValue( const ::rtl::OUString& rProper
+ 		ChainablePropertySet * pSlave = maSlaveMap [ (*aIter).second->mnMapId ]->mpSlave;
+ 
+         // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-        std::auto_ptr< vos::OGuard > pMutexGuard2;
++        std::auto_ptr< osl::SolarMutexGuard > pMutexGuard2;
+         if (pSlave->mpMutex)
+-            pMutexGuard2.reset( new vos::OGuard(pSlave->mpMutex) );
++            pMutexGuard2.reset( new osl::SolarMutexGuard(pSlave->mpMutex) );
+         
+ 		pSlave->_preGetValues();
+ 		pSlave->_getSingleValue( *((*aIter).second->mpInfo), aAny );
+@@ -242,9 +241,9 @@ void SAL_CALL MasterPropertySet::setPropertyValues( const Sequence< ::rtl::OUStr
+ 	throw(PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+     const sal_Int32 nCount = aPropertyNames.getLength();
+ 
+@@ -281,7 +280,7 @@ void SAL_CALL MasterPropertySet::setPropertyValues( const Sequence< ::rtl::OUStr
+ 				{
+                     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+                     if (pSlave->mpSlave->mpMutex)
+-                        aOGuardArray[i].reset( new vos::OGuard(pSlave->mpSlave->mpMutex) );
++                        aOGuardArray[i].reset( new osl::SolarMutexGuard(pSlave->mpSlave->mpMutex) );
+                     
+ 					pSlave->mpSlave->_preSetValues();
+ 					pSlave->SetInit ( sal_True );
+@@ -308,9 +307,9 @@ Sequence< Any > SAL_CALL MasterPropertySet::getPropertyValues( const Sequence< :
+ 	throw(RuntimeException)
+ {
+     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-    std::auto_ptr< vos::OGuard > pMutexGuard;
++    std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+     if (mpMutex)
+-        pMutexGuard.reset( new vos::OGuard(mpMutex) );
++        pMutexGuard.reset( new osl::SolarMutexGuard(mpMutex) );
+ 
+     const sal_Int32 nCount = aPropertyNames.getLength();
+ 
+@@ -346,7 +345,7 @@ Sequence< Any > SAL_CALL MasterPropertySet::getPropertyValues( const Sequence< :
+ 				{
+                     // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+                     if (pSlave->mpSlave->mpMutex)
+-                        aOGuardArray[i].reset( new vos::OGuard(pSlave->mpSlave->mpMutex) );
++                        aOGuardArray[i].reset( new osl::SolarMutexGuard(pSlave->mpSlave->mpMutex) );
+ 
+ 					pSlave->mpSlave->_preGetValues();
+ 					pSlave->SetInit ( sal_True );
+@@ -409,9 +408,9 @@ PropertyState SAL_CALL MasterPropertySet::getPropertyState( const ::rtl::OUStrin
+ 		ChainablePropertySet * pSlave = maSlaveMap [ (*aIter).second->mnMapId ]->mpSlave;
+ 
+         // acquire mutex in c-tor and releases it in the d-tor (exception safe!).
+-        std::auto_ptr< vos::OGuard > pMutexGuard;
++        std::auto_ptr< osl::SolarMutexGuard > pMutexGuard;
+         if (pSlave->mpMutex)
+-            pMutexGuard.reset( new vos::OGuard(pSlave->mpMutex) );
++            pMutexGuard.reset( new osl::SolarMutexGuard(pSlave->mpMutex) );
+ 
+ 		pSlave->_preGetPropertyState();
+ 		pSlave->_getPropertyState( *((*aIter).second->mpInfo), aState );
+diff --git a/comphelper/source/property/genericpropertyset.cxx b/comphelper/source/property/genericpropertyset.cxx
+index 8b1a34b..2730a20 100644
+--- comphelper/source/property/genericpropertyset.cxx
++++ comphelper/source/property/genericpropertyset.cxx
+@@ -69,8 +69,8 @@
+ #include <comphelper/stl_types.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _RTL_UUID_H_ 
+diff --git a/connectivity/inc/pch/precompiled_connectivity.hxx b/connectivity/inc/pch/precompiled_connectivity.hxx
+index 796ec58..67dd6dc 100644
+--- connectivity/inc/pch/precompiled_connectivity.hxx
++++ connectivity/inc/pch/precompiled_connectivity.hxx
+@@ -331,7 +331,7 @@
+ #include "unotools/processfactory.hxx"
+ #include "unotools/sharedunocomponent.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "rtl/ref.hxx"		
+ #include "salhelper/simplereferenceobject.hxx"
+diff --git a/connectivity/source/drivers/jdbc/Object.cxx b/connectivity/source/drivers/jdbc/Object.cxx
+index b509d34..fd703ef 100644
+--- connectivity/source/drivers/jdbc/Object.cxx
++++ connectivity/source/drivers/jdbc/Object.cxx
+@@ -51,8 +51,8 @@
+ #ifndef _CONNECTIVITY_JAVA_SQL_SQLEXCEPTION_HXX_
+ #include "java/sql/SQLException.hxx"
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #include <osl/thread.h>
+ 
+diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
+index f179933..178ec4c 100644
+--- cppcanvas/source/mtfrenderer/implrenderer.cxx
++++ cppcanvas/source/mtfrenderer/implrenderer.cxx
+@@ -40,7 +40,7 @@
+ #include <canvas/verbosetrace.hxx>
+ 
+ #include <osl/mutex.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #include <rtl/logfile.hxx>
+diff --git a/dbaccess/inc/AsyncronousLink.hxx b/dbaccess/inc/AsyncronousLink.hxx
+index 73dcbab..c2f04a0 100644
+--- dbaccess/inc/AsyncronousLink.hxx
++++ dbaccess/inc/AsyncronousLink.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _LINK_HXX 
+ #include <tools/link.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #include "dbaccessdllapi.h"
+ 
+@@ -60,8 +60,8 @@ namespace dbaui
+ 		Link					m_aHandler;
+ 
+ 	protected:
+-		::vos::OMutex*		m_pEventSafety;
+-		::vos::OMutex*		m_pDestructionSafety;
++		::osl::Mutex*		m_pEventSafety;
++		::osl::Mutex*		m_pDestructionSafety;
+ 		BOOL				m_bOwnMutexes;
+ 		ULONG				m_nEventId;
+ 
+@@ -79,7 +79,7 @@ namespace dbaui
+ 			If you use this "mutex feature" be aware of the lifetime of all involved objects : the mutexes
+ 			you specify upon construction should live (at least) as long as the OAsyncronousLink object does.
+ 		*/
+-		OAsyncronousLink(const Link& _rHandler, ::vos::OMutex* _pEventSafety = NULL, ::vos::OMutex* _pDestructionSafety = NULL);
++		OAsyncronousLink(const Link& _rHandler, ::osl::Mutex* _pEventSafety = NULL, ::osl::Mutex* _pDestructionSafety = NULL);
+ 		virtual ~OAsyncronousLink();
+ 
+         bool    IsRunning() const { return m_nEventId != 0; }
+diff --git a/dbaccess/inc/pch/precompiled_dbaccess.hxx b/dbaccess/inc/pch/precompiled_dbaccess.hxx
+index d8b7f38..934d6d2 100644
+--- dbaccess/inc/pch/precompiled_dbaccess.hxx
++++ dbaccess/inc/pch/precompiled_dbaccess.hxx
+@@ -502,7 +502,7 @@
+ #include "unotools/processfactory.hxx"
+ 
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/thread.hxx"
+diff --git a/dbaccess/source/core/dataaccess/documentdefinition.cxx b/dbaccess/source/core/dataaccess/documentdefinition.cxx
+index 7531dd1..bbac4eb 100644
+--- dbaccess/source/core/dataaccess/documentdefinition.cxx
++++ dbaccess/source/core/dataaccess/documentdefinition.cxx
+@@ -200,8 +200,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_VIEW_XVIEWSETTINGSSUPPLIER_HPP_
+ #include <com/sun/star/view/XViewSettingsSupplier.hpp>
+@@ -1130,7 +1130,7 @@ sal_Bool ODocumentDefinition::save(sal_Bool _bApprove)
+ 	{
+ 
+ 		{
+-			::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++			osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 
+ 			// the request
+ 			Reference<XNameAccess> xName(m_xParentContainer,UNO_QUERY);
+diff --git a/dbaccess/source/filter/xml/dbloader2.cxx b/dbaccess/source/filter/xml/dbloader2.cxx
+index 2a108a6..e08d72d 100644
+--- dbaccess/source/filter/xml/dbloader2.cxx
++++ dbaccess/source/filter/xml/dbloader2.cxx
+@@ -584,7 +584,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const ::
+ 		    xController->attachModel(xModel);
+ 		    xModel->setCurrentController(xController);
+ 
+-		    ::vos::OGuard aGuard(Application::GetSolarMutex());
++		    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 		    // and initialize
+ 		    try
+@@ -675,7 +675,7 @@ IMPL_LINK( DBContentLoader, OnStartTableWizard, void*, /*NOTINTERESTEDIN*/ )
+         aValue.Value <<= m_sCurrentURL;
+ 		aWizArgs[0] <<= aValue;
+ 
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		Reference< XJobExecutor > xTableWizard(m_xServiceFactory->createInstanceWithArguments(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.wizards.table.CallTableWizard")),aWizArgs),UNO_QUERY);
+ 
+         if ( xTableWizard.is() )
+diff --git a/dbaccess/source/filter/xml/xmlfilter.cxx b/dbaccess/source/filter/xml/xmlfilter.cxx
+index e262a21..18d8620 100644
+--- dbaccess/source/filter/xml/xmlfilter.cxx
++++ dbaccess/source/filter/xml/xmlfilter.cxx
+@@ -120,8 +120,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFXECODE_HXX
+ #include <svtools/sfxecode.hxx>
+@@ -334,7 +334,7 @@ sal_Bool SAL_CALL ODBFilter::filter( const Sequence< PropertyValue >& rDescripto
+ {
+     uno::Reference< ::com::sun::star::awt::XWindow > xWindow;
+     {
+-        ::vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         Window*     pFocusWindow = Application::GetFocusWindow();
+         xWindow = VCLUnoHelper::GetInterface( pFocusWindow );
+         if( pFocusWindow )
+@@ -347,7 +347,7 @@ sal_Bool SAL_CALL ODBFilter::filter( const Sequence< PropertyValue >& rDescripto
+ 
+     if ( xWindow.is() )
+     {
+-        ::vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         Window* pFocusWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pFocusWindow )
+     	    pFocusWindow->LeaveWait();
+diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx
+index 6494d90..61fbaf0 100644
+--- dbaccess/source/ui/app/AppController.cxx
++++ dbaccess/source/ui/app/AppController.cxx
+@@ -553,7 +553,7 @@ void SAL_CALL OApplicationController::disposing(const EventObject& _rSource) thr
+ //--------------------------------------------------------------------
+ sal_Bool SAL_CALL OApplicationController::suspend(sal_Bool bSuspend) throw( RuntimeException )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard(m_aMutex);
+ 
+     if ( getView() && getView()->IsInModalMode() )
+@@ -952,7 +952,7 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
+ // -----------------------------------------------------------------------------
+ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >& aArgs)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	if ( !getContainer() || m_bReadOnly )
+ 		return; // return without execution
+@@ -1445,7 +1445,7 @@ void OApplicationController::onCreationClick(const ::rtl::OUString& _sCommand)
+ // ::com::sun::star::container::XContainerListener
+ void SAL_CALL OApplicationController::elementInserted( const ContainerEvent& _rEvent ) throw(RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	Reference< XContainer > xContainer(_rEvent.Source, UNO_QUERY);
+@@ -1481,7 +1481,7 @@ void SAL_CALL OApplicationController::elementInserted( const ContainerEvent& _rE
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OApplicationController::elementRemoved( const ContainerEvent& _rEvent ) throw(RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	Reference< XContainer > xContainer(_rEvent.Source, UNO_QUERY);
+@@ -1515,7 +1515,7 @@ void SAL_CALL OApplicationController::elementRemoved( const ContainerEvent& _rEv
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OApplicationController::elementReplaced( const ContainerEvent& _rEvent ) throw(RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	Reference< XContainer > xContainer(_rEvent.Source, UNO_QUERY);
+@@ -1889,7 +1889,7 @@ void OApplicationController::addContainerListener(const Reference<XNameAccess>&
+ // -----------------------------------------------------------------------------
+ void OApplicationController::renameEntry()
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	OSL_ENSURE(getContainer(),"View is NULL! -> GPF");
+diff --git a/dbaccess/source/ui/app/AppControllerDnD.cxx b/dbaccess/source/ui/app/AppControllerDnD.cxx
+index 2b6dd4b..3f134e5 100644
+--- dbaccess/source/ui/app/AppControllerDnD.cxx
++++ dbaccess/source/ui/app/AppControllerDnD.cxx
+@@ -443,7 +443,7 @@ void OApplicationController::deleteObjects( const Reference< XNameContainer>& _r
+ // -----------------------------------------------------------------------------
+ void OApplicationController::deleteEntries()
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	if ( getContainer() )
+@@ -473,7 +473,7 @@ void OApplicationController::deleteEntries()
+ // -----------------------------------------------------------------------------
+ const SharedConnection& OApplicationController::ensureConnection()
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+     if ( !m_xDataSourceConnection.is() )
+@@ -594,7 +594,7 @@ void OApplicationController::impl_initialize()
+ // -----------------------------------------------------------------------------
+ void OApplicationController::getSelectionElementNames(::std::vector< ::rtl::OUString>& _rNames)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	OSL_ENSURE(getContainer(),"View isn't valid! -> GPF");
+@@ -656,7 +656,7 @@ TransferableHelper* OApplicationController::copyObject()
+ {
+ 	try
+ 	{
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 		ElementType eType = getContainer()->getElementType();
+@@ -936,7 +936,7 @@ sal_Bool OApplicationController::copyTagTable(OTableCopyHelper::DropDescriptor&
+ IMPL_LINK( OApplicationController, OnAsyncDrop, void*, /*NOTINTERESTEDIN*/ )
+ {
+ 	m_nAsyncDrop = 0;
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 
+diff --git a/dbaccess/source/ui/app/AppControllerGen.cxx b/dbaccess/source/ui/app/AppControllerGen.cxx
+index 66759ea..d1538c0 100644
+--- dbaccess/source/ui/app/AppControllerGen.cxx
++++ dbaccess/source/ui/app/AppControllerGen.cxx
+@@ -264,7 +264,7 @@ void OApplicationController::openDialog( const ::rtl::OUString& _sServiceName )
+ {
+ 	try
+ 	{
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		::osl::MutexGuard aGuard(m_aMutex);
+ 		WaitObject aWO(getView());
+ 
+@@ -354,7 +354,7 @@ void OApplicationController::openDirectSQLDialog()
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OApplicationController::propertyChange( const PropertyChangeEvent& evt ) throw (RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	m_bNeedToReconnect = sal_True;
+ 	if ( evt.PropertyName == PROPERTY_USER )
+@@ -405,7 +405,7 @@ Reference< XConnection > SAL_CALL OApplicationController::getActiveConnection()
+ // -----------------------------------------------------------------------------
+ ::sal_Bool SAL_CALL OApplicationController::connect(  ) throw (RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+     ensureConnection();
+@@ -416,7 +416,7 @@ Reference< XConnection > SAL_CALL OApplicationController::getActiveConnection()
+ // -----------------------------------------------------------------------------
+ void OApplicationController::previewChanged( sal_Int32 _nMode )
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	if ( m_xDataSource.is() )
+diff --git a/dbaccess/source/ui/browser/AsyncronousLink.cxx b/dbaccess/source/ui/browser/AsyncronousLink.cxx
+index 61455db..6c71162 100644
+--- dbaccess/source/ui/browser/AsyncronousLink.cxx
++++ dbaccess/source/ui/browser/AsyncronousLink.cxx
+@@ -51,7 +51,7 @@
+ using namespace dbaui;
+ DBG_NAME(OAsyncronousLink)
+ //------------------------------------------------------------------
+-OAsyncronousLink::OAsyncronousLink(const Link& _rHandler, ::vos::OMutex* _pEventSafety, ::vos::OMutex* _pDestructionSafety)
++OAsyncronousLink::OAsyncronousLink(const Link& _rHandler, ::osl::Mutex* _pEventSafety, ::osl::Mutex* _pDestructionSafety)
+ 	:m_aHandler(_rHandler)
+ 	,m_pEventSafety(NULL)
+ 	,m_pDestructionSafety(NULL)
+@@ -68,8 +68,8 @@ OAsyncronousLink::OAsyncronousLink(const Link& _rHandler, ::vos::OMutex* _pEvent
+ 	}
+ 	else
+ 	{
+-		m_pEventSafety = new ::vos::OMutex;
+-		m_pDestructionSafety = new ::vos::OMutex;
++		m_pEventSafety = new ::osl::Mutex;
++		m_pDestructionSafety = new ::osl::Mutex;
+ 		m_bOwnMutexes = TRUE;
+ 	}
+ }
+@@ -78,14 +78,14 @@ OAsyncronousLink::OAsyncronousLink(const Link& _rHandler, ::vos::OMutex* _pEvent
+ OAsyncronousLink::~OAsyncronousLink()
+ {
+ 	{
+-		::vos::OGuard aEventGuard(*m_pEventSafety);
++		osl::MutexGuard aEventGuard(*m_pEventSafety);
+ 		if (m_nEventId)
+ 			Application::RemoveUserEvent(m_nEventId);
+ 		m_nEventId = 0;
+ 	}
+ 
+ 	{
+-		::vos::OGuard aDestructionGuard(*m_pDestructionSafety);
++		osl::MutexGuard aDestructionGuard(*m_pDestructionSafety);
+ 		// this is just for the case we're deleted while another thread just handled the event :
+ 		// if this other thread called our link while we were deleting the event here, the
+ 		// link handler blocked. With leaving the above block it continued, but now we are prevented
+@@ -106,7 +106,7 @@ OAsyncronousLink::~OAsyncronousLink()
+ //------------------------------------------------------------------
+ void OAsyncronousLink::Call(void* /*_pArgument*/)
+ {
+-	::vos::OGuard aEventGuard(*m_pEventSafety);
++	osl::MutexGuard aEventGuard(*m_pEventSafety);
+ 	if (m_nEventId)
+ 		Application::RemoveUserEvent(m_nEventId);
+ 	m_nEventId = Application::PostUserEvent(LINK(this, OAsyncronousLink, OnAsyncCall));
+@@ -115,7 +115,7 @@ void OAsyncronousLink::Call(void* /*_pArgument*/)
+ //------------------------------------------------------------------
+ void OAsyncronousLink::CancelCall()
+ {
+-	::vos::OGuard aEventGuard(*m_pEventSafety);
++	osl::MutexGuard aEventGuard(*m_pEventSafety);
+ 	if (m_nEventId)
+ 		Application::RemoveUserEvent(m_nEventId);
+ 	m_nEventId = 0;
+@@ -125,9 +125,9 @@ void OAsyncronousLink::CancelCall()
+ IMPL_LINK(OAsyncronousLink, OnAsyncCall, void*, _pArg)
+ {
+ 	{
+-		::vos::OGuard aDestructionGuard(*m_pDestructionSafety);
++		osl::MutexGuard aDestructionGuard(*m_pDestructionSafety);
+ 		{
+-			::vos::OGuard aEventGuard(*m_pEventSafety);
++			osl::MutexGuard aEventGuard(*m_pEventSafety);
+ 			if (!m_nEventId)
+ 				// our destructor deleted the event just while we we're waiting for m_pEventSafety
+ 				// -> get outta here
+diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
+index ee6057a..826e952 100644
+--- dbaccess/source/ui/browser/brwctrlr.cxx
++++ dbaccess/source/ui/browser/brwctrlr.cxx
+@@ -999,7 +999,7 @@ void SbaXDataBrowserController::propertyChange(const PropertyChangeEvent& evt) t
+ 	if (!xSource.is())
+ 		return;
+ 
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// the IsModified changed to sal_False ?
+ 	if	(	(evt.PropertyName.equals(PROPERTY_ISMODIFIED))
+ 		&&	(::comphelper::getBOOL(evt.NewValue) == sal_False)
+@@ -1109,7 +1109,7 @@ sal_Bool SbaXDataBrowserController::suspend(sal_Bool /*bSuspend*/) throw( Runtim
+ 	// have a pending open operation ?
+ 	if (PendingLoad())
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		if (m_nPendingLoadFinished != 0)
+ 		{	// clean up directly. Otherwise there may be a pending asynchronous call
+ 			// to OnOpenFinishedMainThread, which won't be executed before we leave
+@@ -1302,7 +1302,7 @@ void SbaXDataBrowserController::errorOccured(const ::com::sun::star::sdb::SQLErr
+ 	SQLExceptionInfo aInfo(aEvent.Reason);
+ 	if ( aInfo.isValid() )
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		OSQLMessageBox aDlg(getBrowserView(), aInfo);
+ 		aDlg.Execute();
+ 	}
+@@ -1321,7 +1321,7 @@ sal_Bool SbaXDataBrowserController::approveParameter(const ::com::sun::star::for
+ 	}
+ 
+ 	Reference< ::com::sun::star::container::XIndexAccess >	xParameters = aEvent.Parameters;
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 		// this may be executed in a non-main thread and we want to use vcl ...
+ 	Window* pParent = Application::GetDefDialogParent();
+ 		// don't use the content as parent if it isn't visible
+@@ -2190,7 +2190,7 @@ void SbaXDataBrowserController::CellDeactivated()
+ //------------------------------------------------------------------------------
+ IMPL_LINK( SbaXDataBrowserController, OnClipboardChanged, void*, EMPTYARG )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return OnInvalidateClipboard( NULL );
+ }
+ 
+@@ -2392,7 +2392,7 @@ IMPL_LINK(SbaXDataBrowserController, OnCanceledNotFound, FmFoundRecordInformatio
+ //------------------------------------------------------------------------------
+ IMPL_LINK(SbaXDataBrowserController, OnOpenFinishedMainThread, void*, EMPTYARG)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if (!m_nPendingLoadFinished)
+ 		// it's possible that the direct call of this link from within suspend caused this method to be executed
+ 		// in another thread while we were waiting for the mutex in this thread
+@@ -2763,7 +2763,7 @@ void LoadFormThread::run()
+ 	// To prevent that we get the solar mutex and _block_ 'til we got it.
+ 	// As we are in the 'top level execution' of this thread (with a rather small stack and no other mutexes locked)
+ 	// we shouldn't experience problems with deadlocks ...
+-	::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex());
++	osl::ClearableSolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	ThreadStopper* pStopper = new ThreadStopper(this, m_sStopperCaption);
+ 	aSolarGuard.clear();
+ 
+diff --git a/dbaccess/source/ui/browser/dbloader.cxx b/dbaccess/source/ui/browser/dbloader.cxx
+index f9d5445..78ae4ef 100644
+--- dbaccess/source/ui/browser/dbloader.cxx
++++ dbaccess/source/ui/browser/dbloader.cxx
+@@ -335,7 +335,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const ::
+ 		// init controller
+ 		if ( bSuccess )
+ 		{
+-			::vos::OGuard aGuard(Application::GetSolarMutex());
++			osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 			// and initialize
+ 			try
+ 			{
+diff --git a/dbaccess/source/ui/browser/dsbrowserDnD.cxx b/dbaccess/source/ui/browser/dsbrowserDnD.cxx
+index 03ce5df..a5eb268 100644
+--- dbaccess/source/ui/browser/dsbrowserDnD.cxx
++++ dbaccess/source/ui/browser/dsbrowserDnD.cxx
+@@ -273,7 +273,7 @@ namespace dbaui
+     IMPL_LINK( SbaTableQueryBrowser, OnAsyncDrop, void*, /*NOTINTERESTEDIN*/ )
+     {
+ 	    m_nAsyncDrop = 0;
+-	    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	    ::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 
+diff --git a/dbaccess/source/ui/browser/genericcontroller.cxx b/dbaccess/source/ui/browser/genericcontroller.cxx
+index 47d2ebf..d35b701 100644
+--- dbaccess/source/ui/browser/genericcontroller.cxx
++++ dbaccess/source/ui/browser/genericcontroller.cxx
+@@ -245,7 +245,7 @@ void OGenericUnoController::impl_initialize()
+ // -------------------------------------------------------------------------
+ void SAL_CALL OGenericUnoController::initialize( const Sequence< Any >& aArguments ) throw(Exception, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	Reference< XWindow >		xParent;
+@@ -737,7 +737,7 @@ void OGenericUnoController::setMasterDispatchProvider(const Reference< XDispatch
+ // -----------------------------------------------------------------------
+ void OGenericUnoController::dispatch(const URL& _aURL, const Sequence< PropertyValue >& aArgs) throw(RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     // Since the fix for #123967#, the SolarMutex is not locked anymore when the framework calls into
+     // here. So, lock it ourself. The real solution would be to lock it only in the places
+     // where it's needed, but a) this might turn out difficult, since we then also need to care
+diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
+index 292d5b3..5087e57 100644
+--- dbaccess/source/ui/browser/sbagrid.cxx
++++ dbaccess/source/ui/browser/sbagrid.cxx
+@@ -455,7 +455,7 @@ void SAL_CALL SbaXGridControl::removeStatusListener(const Reference< ::com::sun:
+ //---------------------------------------------------------------------------------------
+ void SAL_CALL SbaXGridControl::dispose(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	EventObject aEvt;
+ 	aEvt.Source = *this;
+@@ -630,7 +630,7 @@ void SAL_CALL SbaXGridPeer::dispatch(const URL& aURL, const Sequence< PropertyVa
+ 		return;
+ 	}
+ 
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColId = -1;
+ 	const PropertyValue* pArgs = aArgs.getConstArray();
+ 	for (sal_uInt16 i=0; i<aArgs.getLength(); ++i, ++pArgs)
+@@ -786,7 +786,7 @@ SbaGridHeader::SbaGridHeader(BrowseBox* pParent, WinBits nWinBits)
+ //---------------------------------------------------------------------------------------
+ void SbaGridHeader::StartDrag( sal_Int8 _nAction, const Point& _rPosPixel )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		// in the new DnD API, the solar mutex is not locked when StartDrag get's called
+ 
+ 	ImplStartColumnDrag( _nAction, _rPosPixel );
+@@ -1300,7 +1300,7 @@ void SbaGridControl::MouseButtonDown( const BrowserMouseEvent& rMEvt)
+ //---------------------------------------------------------------------------------------
+ void SbaGridControl::StartDrag( sal_Int8 _nAction, const Point& _rPosPixel )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		// in the new DnD API, the solar mutex is not locked when StartDrag get's called
+ 
+ 	sal_Bool bHandled = sal_False;
+@@ -1774,7 +1774,7 @@ IMPL_LINK(SbaGridControl, AsynchDropEvent, void*, /*EMPTY_ARG*/)
+ 	::rtl::OUString sRet;
+ 	if ( ::svt::BBTYPE_BROWSEBOX == eObjType )
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		sRet = String(ModuleRes(STR_DATASOURCE_GRIDCONTROL_DESC));
+ 	}
+ 	else
+diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx
+index 0ead4e5..197fb96 100644
+--- dbaccess/source/ui/browser/unodatbr.cxx
++++ dbaccess/source/ui/browser/unodatbr.cxx
+@@ -409,7 +409,7 @@ void SafeRemovePropertyListener(const Reference< XPropertySet > & xSet, const ::
+ //-------------------------------------------------------------------------
+ Reference< XInterface > SAL_CALL SbaTableQueryBrowser::Create(const Reference<XMultiServiceFactory >& _rxFactory)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return *(new SbaTableQueryBrowser(_rxFactory));
+ }
+ 
+@@ -483,7 +483,7 @@ Sequence< sal_Int8 > SAL_CALL SbaTableQueryBrowser::getImplementationId(  ) thro
+ //------------------------------------------------------------------------------
+ void SAL_CALL SbaTableQueryBrowser::disposing()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		// doin' a lot of VCL stuff here -> lock the SolarMutex
+ 
+ 	// kiss our listeners goodbye
+@@ -999,7 +999,7 @@ void SbaTableQueryBrowser::propertyChange(const PropertyChangeEvent& evt) throw(
+ // -----------------------------------------------------------------------
+ sal_Bool SbaTableQueryBrowser::suspend(sal_Bool bSuspend) throw( RuntimeException )
+ {
+-    vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+     if ( getView() && getView()->IsInModalMode() )
+         return sal_False;
+@@ -1433,7 +1433,7 @@ void SbaTableQueryBrowser::implRemoveStatusListeners()
+ // -------------------------------------------------------------------------
+ sal_Bool SAL_CALL SbaTableQueryBrowser::select( const Any& _rSelection ) throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		// doin' a lot of VCL stuff here -> lock the SolarMutex
+ 
+ 	Sequence< PropertyValue > aDescriptorSequence;
+@@ -2001,7 +2001,7 @@ void SbaTableQueryBrowser::implAddDatasource(const String& _rDbName, Image& _rDb
+ 		String& _rQueryName, Image& _rQueryImage, String& _rTableName, Image& _rTableImage,
+         const SharedConnection& _rxConnection)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	// initialize the names/images if necessary
+ 	if (!_rQueryName.Len())
+ 		_rQueryName = String(ModuleRes(RID_STR_QUERIES_CONTAINER));
+@@ -2627,7 +2627,7 @@ SvLBoxEntry* SbaTableQueryBrowser::getEntryFromContainer(const Reference<XNameAc
+ // -------------------------------------------------------------------------
+ void SAL_CALL SbaTableQueryBrowser::elementInserted( const ContainerEvent& _rEvent ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aEntryMutex);
+ 
+ 	Reference< XNameAccess > xNames(_rEvent.Source, UNO_QUERY);
+@@ -2684,7 +2684,7 @@ sal_Bool SbaTableQueryBrowser::isCurrentlyDisplayedChanged(const String& _sName,
+ // -------------------------------------------------------------------------
+ void SAL_CALL SbaTableQueryBrowser::elementRemoved( const ContainerEvent& _rEvent ) throw(RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aEntryMutex);
+ 
+ 
+@@ -3007,7 +3007,7 @@ void SbaTableQueryBrowser::unloadAndCleanup( sal_Bool _bDisposeConnection )
+ // -------------------------------------------------------------------------
+ void SbaTableQueryBrowser::impl_initialize()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		// doin' a lot of VCL stuff here -> lock the SolarMutex
+ 
+ 	// first initialize the parent
+diff --git a/dbaccess/source/ui/control/toolboxcontroller.cxx b/dbaccess/source/ui/control/toolboxcontroller.cxx
+index ce0589b..4ec9e2f 100644
+--- dbaccess/source/ui/control/toolboxcontroller.cxx
++++ dbaccess/source/ui/control/toolboxcontroller.cxx
+@@ -83,8 +83,8 @@
+ #ifndef INCLUDED_SVTOOLS_MENUOPTIONS_HXX
+ #include <svtools/menuoptions.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _DBU_REGHELPER_HXX_
+ #include "dbu_reghelper.hxx"
+@@ -159,7 +159,7 @@ namespace dbaui
+ 	void SAL_CALL OToolboxController::initialize( const Sequence< Any >& _rArguments ) throw (Exception, RuntimeException)
+ 	{
+ 		ToolboxController::initialize(_rArguments);
+-		vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 		::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 		if ( m_aCommandURL.equalsAscii(".uno:DBNewForm") )
+@@ -204,7 +204,7 @@ namespace dbaui
+ 	// -----------------------------------------------------------------------------
+ 	void SAL_CALL OToolboxController::statusChanged( const FeatureStateEvent& Event ) throw ( RuntimeException )
+ 	{
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 		::osl::MutexGuard aGuard(m_aMutex);	
+ 		TCommandState::iterator aFind = m_aStates.find( Event.FeatureURL.Complete );
+ 		if ( aFind != m_aStates.end() )
+@@ -286,7 +286,7 @@ namespace dbaui
+ 	Reference< ::com::sun::star::awt::XWindow > SAL_CALL OToolboxController::createPopupWindow() throw (RuntimeException)
+ 	{
+ 		// execute the menu
+-		vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 		::osl::MutexGuard aGuard(m_aMutex);	
+ 
+ 		ToolBox* pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
+diff --git a/dbaccess/source/ui/dlg/directsql.cxx b/dbaccess/source/ui/dlg/directsql.cxx
+index 5b78aea..f1e79db 100644
+--- dbaccess/source/ui/dlg/directsql.cxx
++++ dbaccess/source/ui/dlg/directsql.cxx
+@@ -57,8 +57,8 @@
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ //........................................................................
+@@ -156,7 +156,7 @@ DBG_NAME(DirectSQLDialog)
+ 	//--------------------------------------------------------------------
+ 	void DirectSQLDialog::_disposing( const EventObject& _rSource )
+ 	{
+-		::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 		::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 		OSL_ENSURE(Reference< XConnection >(_rSource.Source, UNO_QUERY).get() == m_xConnection.get(),
+diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx
+index 87d1bf0..88215a1 100644
+--- dbaccess/source/ui/dlg/tablespage.cxx
++++ dbaccess/source/ui/dlg/tablespage.cxx
+@@ -111,8 +111,8 @@
+ #ifndef DBAUI_TOOLS_HXX
+ #include "UITools.hxx"
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SVTOOLS_IMGDEF_HXX
+ #include <svtools/imgdef.hxx>
+diff --git a/dbaccess/source/ui/misc/UITools.cxx b/dbaccess/source/ui/misc/UITools.cxx
+index 19ef983..637c2ac 100644
+--- dbaccess/source/ui/misc/UITools.cxx
++++ dbaccess/source/ui/misc/UITools.cxx
+@@ -1666,7 +1666,7 @@ TOTypeInfoSP queryTypeInfoByType(sal_Int32 _nDataType,const OTypeInfoMap& _rType
+ // -----------------------------------------------------------------------------
+ sal_Int32 askForUserAction(Window* _pParent,USHORT _nTitle,USHORT _nText,sal_Bool _bAll,const ::rtl::OUString& _sName)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	String aMsg = String(ModuleRes(_nText));
+ 	aMsg.SearchAndReplace(String::CreateFromAscii("%1"),String(_sName));
+ 	OSQLMessageBox aAsk(_pParent,String(ModuleRes(_nTitle )),aMsg,WB_YES_NO | WB_DEF_YES,OSQLMessageBox::Query);
+diff --git a/dbaccess/source/ui/misc/dsntypes.cxx b/dbaccess/source/ui/misc/dsntypes.cxx
+index 49cc24f..eef6002 100644
+--- dbaccess/source/ui/misc/dsntypes.cxx
++++ dbaccess/source/ui/misc/dsntypes.cxx
+@@ -54,8 +54,8 @@
+ #include <tools/rc.hxx>
+ #endif
+ // --- needed because of the solar mutex
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -143,7 +143,7 @@ ODsnTypeCollection::ODsnTypeCollection()
+ :m_nLivingIterators(0)
+ #endif
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	DBG_CTOR(ODsnTypeCollection,NULL);
+ 	ODataSourceTypeStringListResource aTypes(RSC_DATASOURCE_TYPES);
+ 	aTypes.fill(m_aDsnPrefixes);
+diff --git a/dbaccess/source/ui/querydesign/JoinController.cxx b/dbaccess/source/ui/querydesign/JoinController.cxx
+index 84a3d4c..36264ae 100644
+--- dbaccess/source/ui/querydesign/JoinController.cxx
++++ dbaccess/source/ui/querydesign/JoinController.cxx
+@@ -454,7 +454,7 @@ sal_Bool SAL_CALL OJoinController::suspend(sal_Bool _bSuspend) throw( RuntimeExc
+ 	if ( getBroadcastHelper().bInDispose || getBroadcastHelper().bDisposed )
+ 		return sal_True;
+ 
+-    vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+     if ( getView() && getView()->IsInModalMode() )
+         return sal_False;
+diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx
+index b841272..bb373e8 100644
+--- dbaccess/source/ui/querydesign/querycontroller.cxx
++++ dbaccess/source/ui/querydesign/querycontroller.cxx
+@@ -896,7 +896,7 @@ void OQueryController::updateTitle()
+ 	{
+         if ( !m_bIndependent )
+         {
+-			::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++			osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 			::osl::MutexGuard aGuard(m_aMutex);
+ 		    if ( !sName.getLength() )
+ 		    {				
+@@ -983,7 +983,7 @@ void OQueryController::setModified(sal_Bool _bModified)
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OQueryController::disposing( const EventObject& Source ) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference< XFrame > xSource(Source.Source, UNO_QUERY);
+ 	if (xSource.is() && getContainer())
+@@ -1478,7 +1478,7 @@ void OQueryController::doSaveAsDoc(sal_Bool _bSaveAs)
+ // -----------------------------------------------------------------------------
+ short OQueryController::saveModified()
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	short nRet = RET_YES;
+     if ( !isConnected() || !isModified() )
+diff --git a/dbaccess/source/ui/tabledesign/TableController.cxx b/dbaccess/source/ui/tabledesign/TableController.cxx
+index 1469051..7d3edf5 100644
+--- dbaccess/source/ui/tabledesign/TableController.cxx
++++ dbaccess/source/ui/tabledesign/TableController.cxx
+@@ -683,7 +683,7 @@ sal_Bool SAL_CALL OTableController::suspend(sal_Bool /*_bSuspend*/) throw( Runti
+ 	if ( getBroadcastHelper().bInDispose || getBroadcastHelper().bDisposed )
+ 		return sal_True;
+ 
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+     if ( getView() && getView()->IsInModalMode() )
+         return sal_False;
+diff --git a/dbaccess/source/ui/uno/ColumnPeer.cxx b/dbaccess/source/ui/uno/ColumnPeer.cxx
+index 32a0688..25125a4 100644
+--- dbaccess/source/ui/uno/ColumnPeer.cxx
++++ dbaccess/source/ui/uno/ColumnPeer.cxx
+@@ -76,7 +76,7 @@ OColumnPeer::OColumnPeer(Window* _pParent,const Reference<XMultiServiceFactory>&
+ // -----------------------------------------------------------------------------
+ void OColumnPeer::setEditWidth(sal_Int32 _nWidth)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OColumnControlWindow* pFieldControl = static_cast<OColumnControlWindow*>( GetWindow() );
+ 	if ( pFieldControl )
+@@ -87,7 +87,7 @@ void OColumnPeer::setEditWidth(sal_Int32 _nWidth)
+ // -----------------------------------------------------------------------------
+ void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OColumnControlWindow* pFieldControl = static_cast<OColumnControlWindow*>( GetWindow() );
+ 	if ( pFieldControl )
+@@ -135,7 +135,7 @@ void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
+ // -----------------------------------------------------------------------------
+ void OColumnPeer::setConnection(const Reference< XConnection>& _xCon)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	OColumnControlWindow* pFieldControl = static_cast<OColumnControlWindow*>( GetWindow() );
+ 	if ( pFieldControl )
+ 		pFieldControl->setConnection(_xCon);
+@@ -143,7 +143,7 @@ void OColumnPeer::setConnection(const Reference< XConnection>& _xCon)
+ //------------------------------------------------------------------------------
+ void OColumnPeer::setProperty( const ::rtl::OUString& _rPropertyName, const Any& Value) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if ( 0 == _rPropertyName.compareToAscii( PROPERTY_COLUMN ) )
+ 	{
+diff --git a/dbaccess/source/ui/uno/dbinteraction.cxx b/dbaccess/source/ui/uno/dbinteraction.cxx
+index a5fc72d..4617da1 100644
+--- dbaccess/source/ui/uno/dbinteraction.cxx
++++ dbaccess/source/ui/uno/dbinteraction.cxx
+@@ -90,8 +90,8 @@
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef DBAUI_COLLECTIONVIEW_HXX
+ #include "CollectionView.hxx"
+@@ -185,7 +185,7 @@ namespace dbaui
+ 	//-------------------------------------------------------------------------
+ 	void OInteractionHandler::implHandle(const ParametersRequest& _rParamRequest, const Sequence< Reference< XInteractionContinuation > >& _rContinuations)
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 			// want to open a dialog ....
+ 
+ 		sal_Int32 nAbortPos = getContinuation(ABORT, _rContinuations);
+@@ -229,7 +229,7 @@ namespace dbaui
+ 	//-------------------------------------------------------------------------
+ 	void OInteractionHandler::implHandle(const AuthenticationRequest& _rAuthRequest, const Sequence< Reference< XInteractionContinuation > >& _rContinuations)
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 			// want to open a dialog ....
+ 
+ 		// search the continuations we can handle
+@@ -349,7 +349,7 @@ namespace dbaui
+ 	//-------------------------------------------------------------------------
+ 	void OInteractionHandler::implHandle(const SQLExceptionInfo& _rSqlInfo, const Sequence< Reference< XInteractionContinuation > >& _rContinuations)
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 			// want to open a dialog ....
+ 
+ 		sal_Int32 nApprovePos = getContinuation(APPROVE, _rContinuations);
+@@ -398,7 +398,7 @@ namespace dbaui
+ 	//-------------------------------------------------------------------------
+ 	void OInteractionHandler::implHandle(const DocumentSaveRequest& _rDocuRequest, const Sequence< Reference< XInteractionContinuation > >& _rContinuations)
+ 	{
+-		::vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 			// want to open a dialog ....
+ 
+ 		sal_Int32 nApprovePos = getContinuation(APPROVE, _rContinuations);
+diff --git a/dbaccess/source/ui/uno/unoadmin.cxx b/dbaccess/source/ui/uno/unoadmin.cxx
+index da319fc..52f8dca 100644
+--- dbaccess/source/ui/uno/unoadmin.cxx
++++ dbaccess/source/ui/uno/unoadmin.cxx
+@@ -68,8 +68,8 @@
+ #endif
+ 
+ // --- needed because of the solar mutex
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index 2a5d975..cad4d22 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -196,8 +196,8 @@
+ #ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+ #include <toolkit/unohlp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _VOS_SECURITY_HXX_
+ #include <vos/security.hxx>
+@@ -1680,7 +1680,7 @@ void Desktop::Main()
+ 
+     // Release solar mutex just before we wait for our client to connect
+     int nAcquireCount = 0;
+-    ::vos::IMutex& rMutex = Application::GetSolarMutex();
++    osl::SolarMutex& rMutex = Application::GetSolarMutex();
+     if ( rMutex.tryToAcquire() )
+         nAcquireCount = Application::ReleaseSolarMutex() - 1;
+ 
+diff --git a/desktop/source/deployment/gui/dp_gui_cmdenv.cxx b/desktop/source/deployment/gui/dp_gui_cmdenv.cxx
+index a9356a1..6c2d59d 100644
+--- desktop/source/deployment/gui/dp_gui_cmdenv.cxx
++++ desktop/source/deployment/gui/dp_gui_cmdenv.cxx
+@@ -59,6 +59,7 @@
+ #include "tools/resid.hxx"
+ #include "tools/rcid.h"
+ #include "vcl/msgbox.hxx"
++#include "osl/mutex.hxx"
+ #include "vcl/threadex.hxx"
+ #include "toolkit/helper/vclunohelper.hxx"
+ #include "boost/bind.hpp"
+@@ -103,7 +104,7 @@ void ProgressCommandEnv::ProgressDialog::CancelButtonImpl::Click()
+ void ProgressCommandEnv::solarthread_dtor()
+ {
+     if (m_progressDialog.get() != 0) {
+-        const ::vos::OGuard guard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+         m_progressDialog->SetModalInputMode( FALSE );
+         m_progressDialog.reset();
+     }
+@@ -216,7 +217,7 @@ void ProgressCommandEnv::progressSection(
+         ++m_currentProgressSection;
+         m_currentInnerProgress = 0;
+         if (m_progressDialog.get() != 0) {
+-            const ::vos::OGuard guard( Application::GetSolarMutex() );
++            const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+             if (m_progressDialog->m_statusBar->IsProgressMode())
+                 m_progressDialog->m_statusBar->EndProgressMode();
+             m_progressDialog->m_statusBar->StartProgressMode( text );
+@@ -231,7 +232,7 @@ void ProgressCommandEnv::updateProgress( OUString const & text )
+ {
+     if (m_progressDialog.get() != 0)
+     {
+-        const ::vos::OGuard guard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+         if (text.getLength() > 0)
+             m_progressDialog->m_ftCurrentAction->SetText( text );
+         // xxx todo: how to do better?
+@@ -334,7 +335,7 @@ void ProgressCommandEnv::handle(
+                 dp_misc::Dependencies::name(depExc.UnsatisfiedDependencies[i]));
+         }
+         {
+-            vos::OGuard guard(Application::GetSolarMutex());
++            osl::SolarMutexGuard guard(Application::GetSolarMutex());
+             short n = DependencyDialog(activeDialog(), deps).Execute();
+             // Distinguish between closing the dialog and programatically
+             // canceling the dialog (headless VCL):
+@@ -344,7 +345,7 @@ void ProgressCommandEnv::handle(
+     }
+     else if (request >>= licAgreementExc)
+     {   
+-        vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ResId warnId(WARNINGBOX_NOSHAREDALLOWED, *DeploymentGuiResMgr::get());
+         WarningBox warn(activeDialog(), warnId);
+         String msgText = warn.GetMessText();
+@@ -386,7 +387,7 @@ void ProgressCommandEnv::handle(
+             break;
+         }
+         {
+-            vos::OGuard guard(Application::GetSolarMutex());
++            osl::SolarMutexGuard guard(Application::GetSolarMutex());
+             InfoBox box(activeDialog(), ResId(id, *DeploymentGuiResMgr::get()));
+             String s(box.GetMessText());
+             s.SearchAndReplaceAllAscii(
+@@ -408,7 +409,7 @@ void ProgressCommandEnv::handle(
+ 		}
+ 		else
+ 		{
+-            vos::OGuard guard(Application::GetSolarMutex());
++            osl::SolarMutexGuard guard(Application::GetSolarMutex());
+             InfoBox box(activeDialog(), ResId(RID_QUERYBOX_INSTALL_EXTENSION, *DeploymentGuiResMgr::get()));
+             String s(box.GetMessText());
+             s.SearchAndReplaceAllAscii("%NAME", instExc.New->getDisplayName());
+diff --git a/desktop/source/deployment/gui/dp_gui_dialog.cxx b/desktop/source/deployment/gui/dp_gui_dialog.cxx
+index cee6489..88b419f 100644
+--- desktop/source/deployment/gui/dp_gui_dialog.cxx
++++ desktop/source/deployment/gui/dp_gui_dialog.cxx
+@@ -54,6 +54,7 @@
+ #include "toolkit/helper/vclunohelper.hxx"
+ #include "vcl/wintypes.hxx"
+ #include "vcl/msgbox.hxx"
++#include <osl/mutex.hxx>
+ #include "vcl/threadex.hxx"
+ #include "svtools/svtools.hrc"
+ #include "com/sun/star/lang/XMultiComponentFactory.hpp"
+@@ -404,7 +405,7 @@ DialogImpl::~DialogImpl()
+     if (defEntry != 0)
+         that->m_treelb->Select( defEntry );
+ 
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     if (! s_dialog.is()) {
+         OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
+         s_dialog = that;
+@@ -833,7 +834,7 @@ bool DialogImpl::supportsOptions( ::rtl::OUString const & sExtensionId)
+ namespace {
+ struct StrAllFiles : public rtl::StaticWithInit<const OUString, StrAllFiles> {
+     const OUString operator () () {
+-        const ::vos::OGuard guard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+         ::std::auto_ptr<ResMgr> const resmgr(
+             ResMgr::CreateResMgr( "fps_office" LIBRARY_SOLARUPD() ) );
+         OSL_ASSERT( resmgr.get() != 0 );
+@@ -1253,7 +1254,7 @@ void DialogImpl::clickOptions( USHORT )
+         if ( xPackage.is() )
+             sExtensionId = xPackage->getIdentifier().Value;
+ 
+-        const ::vos::OGuard guard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+         VclAbstractDialog* pDlg = pFact->CreateOptionsDialog( this, sExtensionId, rtl::OUString() );
+         pDlg->Execute();
+         delete pDlg;
+@@ -1263,7 +1264,7 @@ void DialogImpl::clickOptions( USHORT )
+ //______________________________________________________________________________
+ void DialogImpl::errbox( OUString const & msg )
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     ::std::auto_ptr<ErrorBox> box( new ErrorBox( this, WB_OK, msg ) );
+     box->SetText( GetText() );
+     box->Execute();
+@@ -1298,7 +1299,7 @@ bool DialogImpl::continueActionOnSharedExtension(
+     if (xPMgr->getContext().equals(OUSTR("shared"))
+         && ! xPMgr->isReadOnly())
+     {
+-        vos::OGuard guard(Application::GetSolarMutex());
++        osl::SolarMutexGuard guard(Application::GetSolarMutex());
+         InfoBox box(const_cast<DialogImpl*>(this),
+                     ResId(RID_INFOBOX_MODIFY_SHARED_EXTENSION, *DeploymentGuiResMgr::get()));
+         String msgText = box.GetMessText();
+@@ -1384,7 +1385,7 @@ DialogImpl::ThreadedPushButton::~ThreadedPushButton()
+ //==============================================================================
+ ResId DialogImpl::getResId( USHORT id )
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     return ResId( id, *DeploymentGuiResMgr::get() );
+ }
+ 
+@@ -1393,7 +1394,7 @@ String DialogImpl::getResourceString( USHORT id )
+ {
+     // init with non-acquired solar mutex:
+     BrandName::get();
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     String ret( ResId( id, *DeploymentGuiResMgr::get() ) );
+     if (ret.SearchAscii( "%PRODUCTNAME" ) != STRING_NOTFOUND) {
+         ret.SearchAndReplaceAllAscii( "%PRODUCTNAME", BrandName::get() );
+diff --git a/desktop/source/deployment/gui/dp_gui_service.cxx b/desktop/source/deployment/gui/dp_gui_service.cxx
+index 664abb9..6a34c35 100644
+--- desktop/source/deployment/gui/dp_gui_service.cxx
++++ desktop/source/deployment/gui/dp_gui_service.cxx
+@@ -46,6 +46,7 @@
+ #include <i18npool/mslangid.hxx>
+ #include "vcl/svapp.hxx"
+ #include "vcl/msgbox.hxx"
++#include <osl/mutex.hxx>
+ #include "com/sun/star/lang/XServiceInfo.hpp"
+ #include "com/sun/star/task/XJobExecutor.hpp"
+ #include "com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp"
+@@ -198,7 +199,7 @@ void ServiceImpl::setDialogTitle( OUString const & title )
+     throw (RuntimeException)
+ {
+     if (::dp_gui::DialogImpl::s_dialog.is()) {
+-        const ::vos::OGuard guard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+         ::dp_gui::DialogImpl::get(
+             m_xComponentContext,
+             m_parent ? *m_parent : Reference<awt::XWindow>(),
+@@ -224,7 +225,7 @@ void ServiceImpl::startExecuteModal(
+         }
+         catch (Exception & exc) {
+             if (bAppUp) {
+-                const vos::OGuard guard( Application::GetSolarMutex() );
++                const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+                 std::auto_ptr<ErrorBox> box(
+                     new ErrorBox( Application::GetActiveTopWindow(),
+                                   WB_OK, exc.Message ) );
+@@ -261,7 +262,7 @@ void ServiceImpl::startExecuteModal(
+     }
+     
+     {
+-        const ::vos::OGuard guard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+         ::rtl::Reference< ::dp_gui::DialogImpl > dialog(
+             ::dp_gui::DialogImpl::get(
+                 m_xComponentContext,
+diff --git a/desktop/source/deployment/gui/dp_gui_treelb.cxx b/desktop/source/deployment/gui/dp_gui_treelb.cxx
+index 3b61e20..5baf155 100644
+--- desktop/source/deployment/gui/dp_gui_treelb.cxx
++++ desktop/source/deployment/gui/dp_gui_treelb.cxx
+@@ -43,7 +43,7 @@
+ #include "cppuhelper/exc_hlp.hxx"
+ #include "comphelper/anytostring.hxx"
+ #include "ucbhelper/content.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "vcl/help.hxx"
+ #include "vcl/waitobj.hxx"
+ #include "tools/urlobj.hxx"
+@@ -236,7 +236,7 @@ Image NodeImpl::getIcon() const
+ void NodeImpl::disposing( lang::EventObject const & evt )
+     throw (RuntimeException)
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     
+     OSL_ASSERT( m_lbEntry != 0 );
+     if (m_lbEntry != 0)
+@@ -280,7 +280,7 @@ struct iface_hash {
+ //______________________________________________________________________________
+ void NodeImpl::modified( Reference<XCommandEnvironment> const & xCmdEnv )
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     
+     if (m_xPackage.is())
+     {
+@@ -356,7 +356,7 @@ void NodeImpl::modified( lang::EventObject const & )
+ //______________________________________________________________________________
+ DialogImpl::TreeListBoxImpl::~TreeListBoxImpl()
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     m_dialog = 0; // in deinit
+     
+     const lang::EventObject evt;
+@@ -857,7 +857,7 @@ void DialogImpl::TreeListBoxImpl::DataChanged( DataChangedEvent const & evt )
+ //Currently only works for extensions installed in user context
+ void DialogImpl::TreeListBoxImpl::select(css::uno::Reference<css::deployment::XPackage> const & xPackage)
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+ 	//GetEntryCount includes all child nodes
+ 	if (GetEntryCount() == 0)
+ 	{
+@@ -947,7 +947,7 @@ void DialogImpl::disposing( lang::EventObject const & evt )
+     {
+         bool shutDown = (evt.Source == m_xDesktop);       
+         {
+-            const ::vos::OGuard guard( Application::GetSolarMutex() );
++            const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+             // remove contexts:
+             SvLBoxEntry * entry = m_treelb->First();
+             while (entry != 0)
+@@ -1004,7 +1004,7 @@ void DialogImpl::notifyTermination( lang::EventObject const & evt )
+ void DialogImpl::contentEvent( ContentEvent const & evt )
+     throw (RuntimeException)
+ {
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+     
+     OSL_ASSERT( evt.Id == m_xTdocRoot->getIdentifier() );
+     try {
+diff --git a/desktop/source/deployment/gui/dp_gui_updatability.cxx b/desktop/source/deployment/gui/dp_gui_updatability.cxx
+index 80c8cff..b9df440 100644
+--- desktop/source/deployment/gui/dp_gui_updatability.cxx
++++ desktop/source/deployment/gui/dp_gui_updatability.cxx
+@@ -62,7 +62,7 @@
+ #include "sal/types.h"
+ #include "vcl/svapp.hxx"
+ #include "vcl/window.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ 
+ #include "dp_misc.h"
+ #include "dp_gui_thread.hxx"
+@@ -139,7 +139,7 @@ void Updatability::Thread::start() {
+ void Updatability::Thread::stop() {
+     css::uno::Reference< css::task::XAbortChannel > abort;
+     {
+-        vos::OGuard g1(Application::GetSolarMutex());
++        osl::SolarMutexGuard g1(Application::GetSolarMutex());
+         osl::MutexGuard g2(m_mutex);
+         m_input = STOP;
+         m_enabled = NULL;
+@@ -242,7 +242,7 @@ void Updatability::Thread::execute() {
+                 }
+             }
+         }
+-        vos::OGuard g1(Application::GetSolarMutex());
++        osl::SolarMutexGuard g1(Application::GetSolarMutex());
+         Window * e;
+         {
+             osl::MutexGuard g2(m_mutex);
+diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx
+index f18e9d7..8fd23e9 100644
+--- desktop/source/deployment/gui/dp_gui_updatedialog.cxx
++++ desktop/source/deployment/gui/dp_gui_updatedialog.cxx
+@@ -98,7 +98,7 @@
+ #include "vcl/image.hxx"
+ #include "vcl/msgbox.hxx"
+ #include "vcl/svapp.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ 
+ #include "dp_dependencies.hxx"
+ #include "dp_descriptioninfoset.hxx"
+@@ -308,7 +308,7 @@ UpdateDialog::Thread::Thread(
+ void UpdateDialog::Thread::stop() {
+     css::uno::Reference< css::task::XAbortChannel > abort;
+     {
+-        vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         abort = m_abort;
+         m_stop = true;
+     }
+@@ -338,7 +338,7 @@ void UpdateDialog::Thread::execute() {
+             css::uno::Reference< css::deployment::XPackage > p;
+             css::uno::Reference< css::deployment::XPackageManager > m;
+             {
+-                vos::OGuard g(Application::GetSolarMutex());
++                osl::SolarMutexGuard g(Application::GetSolarMutex());
+                 if (m_stop) {
+                     return;
+                 }
+@@ -354,7 +354,7 @@ void UpdateDialog::Thread::execute() {
+             css::uno::Reference< css::task::XAbortChannel > abort(
+                 m_packageManagers[i]->createAbortChannel());
+             {
+-                vos::OGuard g(Application::GetSolarMutex());
++                osl::SolarMutexGuard g(Application::GetSolarMutex());
+                 if (m_stop) {
+                     return;
+                 }
+@@ -379,7 +379,7 @@ void UpdateDialog::Thread::execute() {
+             }
+             for (sal_Int32 j = 0; j < ps.getLength(); ++j) {
+                 {
+-                    vos::OGuard g(Application::GetSolarMutex());
++                    osl::SolarMutexGuard g(Application::GetSolarMutex());
+                     if (m_stop) {
+                         return;
+                     }
+@@ -427,7 +427,7 @@ void UpdateDialog::Thread::execute() {
+             }
+         }
+     }
+-    vos::OGuard g(Application::GetSolarMutex());
++    osl::SolarMutexGuard g(Application::GetSolarMutex());
+     if (!m_stop) {
+         m_dialog.checkingDone();
+     }
+@@ -441,7 +441,7 @@ void UpdateDialog::Thread::handleGeneralError(css::uno::Any const & exception)
+     if (exception >>= e) {
+         message = e.Message;
+     }
+-    vos::OGuard g(Application::GetSolarMutex());
++    osl::SolarMutexGuard g(Application::GetSolarMutex());
+     if (!m_stop) {
+         m_dialog.addGeneralError(message);
+     }
+@@ -459,7 +459,7 @@ void UpdateDialog::Thread::handleSpecificError(
+     if (exception >>= e) {
+         data.message = e.Message;
+     }
+-    vos::OGuard g(Application::GetSolarMutex());
++    osl::SolarMutexGuard g(Application::GetSolarMutex());
+     if (!m_stop) {
+         m_dialog.addSpecificError(data);
+     }
+@@ -507,7 +507,7 @@ void UpdateDialog::Thread::handle(
+              && packageManager->getContext().equals(OUSTR("shared"))
+              && ! packageManager->isReadOnly())
+         {
+-            vos::OGuard guard(Application::GetSolarMutex());
++            osl::SolarMutexGuard guard(Application::GetSolarMutex());
+             InfoBox box(&m_dialog, ResId(RID_INFOBOX_UPDATE_SHARED_EXTENSION,
+                                         *DeploymentGuiResMgr::get()));
+             String msgText = box.GetMessText();
+@@ -573,13 +573,13 @@ bool UpdateDialog::Thread::update(
+         data.aInstalledPackage = package;
+         data.aPackageManager = packageManager;
+         data.aUpdateInfo = updateInfo;
+-        vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (!m_stop) {
+             m_dialog.addEnabledUpdate(du.name, data);
+         }
+         return !m_stop;
+     } else {
+-        vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (!m_stop) {
+             m_dialog.addDisabledUpdate(du);
+         }
+diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
+index 273428b..d64e02e 100644
+--- desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
++++ desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx
+@@ -49,7 +49,7 @@
+ #include "vcl/dialog.hxx"
+ #include "vcl/msgbox.hxx"
+ #include "vcl/svapp.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "vcl/dialog.hxx"
+ #include "cppuhelper/implbase3.hxx"
+ 
+@@ -86,7 +86,7 @@
+ #include "dp_gui_thread.hxx"
+ #include "ucbhelper/content.hxx"
+ #include "osl/mutex.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "com/sun/star/uno/Sequence.h"
+ #include "comphelper/anytostring.hxx"
+@@ -196,7 +196,7 @@ UpdateInstallDialog::Thread::Thread(
+ void UpdateInstallDialog::Thread::stop() {
+     css::uno::Reference< css::task::XAbortChannel > abort;
+     {
+-        vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         abort = m_abort;
+         m_stop = true;
+     }
+@@ -225,7 +225,7 @@ void UpdateInstallDialog::Thread::execute()
+ 
+     {
+         //make sure m_dialog is still alive
+-        ::vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (! m_stop) 
+              m_dialog.updateDone();
+     }
+@@ -393,7 +393,7 @@ void UpdateInstallDialog::Thread::downloadExtensions()
+                 continue;
+             //update the name of the extension which is to be downloaded
+             {
+-                ::vos::OGuard g(Application::GetSolarMutex());
++                osl::SolarMutexGuard g(Application::GetSolarMutex());
+                 if (m_stop) {
+                     return;
+                 }
+@@ -425,7 +425,7 @@ void UpdateInstallDialog::Thread::downloadExtensions()
+             } 
+             //update the progress and display download error
+             {
+-                ::vos::OGuard g(Application::GetSolarMutex());
++                osl::SolarMutexGuard g(Application::GetSolarMutex());
+                 if (m_stop) {
+                     return;
+                 }
+@@ -452,7 +452,7 @@ void UpdateInstallDialog::Thread::downloadExtensions()
+     }
+     catch (cssu::Exception & e)
+     {
+-        ::vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (m_stop) {
+             return;
+         }
+@@ -463,7 +463,7 @@ void UpdateInstallDialog::Thread::installExtensions()
+ {
+     //Update the fix text in the dialog to "Installing extensions..."
+     {
+-        vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (m_stop) {
+             return;
+         }
+@@ -477,7 +477,7 @@ void UpdateInstallDialog::Thread::installExtensions()
+     {         
+         //update the name of the extension which is to be installed
+         {
+-            ::vos::OGuard g(Application::GetSolarMutex());
++            osl::SolarMutexGuard g(Application::GetSolarMutex());
+             if (m_stop) {
+                 return;
+             }
+@@ -503,7 +503,7 @@ void UpdateInstallDialog::Thread::installExtensions()
+             Reference< css::task::XAbortChannel > xAbortChannel(
+                 curData.aPackageManager->createAbortChannel() );
+             {
+-                vos::OGuard g(Application::GetSolarMutex());
++                osl::SolarMutexGuard g(Application::GetSolarMutex());
+                 if (m_stop) {
+                     return;
+                 }
+@@ -532,7 +532,7 @@ void UpdateInstallDialog::Thread::installExtensions()
+ 
+         if (bLicenseDeclined)
+         {
+-            ::vos::OGuard g(Application::GetSolarMutex());
++            osl::SolarMutexGuard g(Application::GetSolarMutex());
+             if (m_stop) {
+                 return;
+             }
+@@ -541,7 +541,7 @@ void UpdateInstallDialog::Thread::installExtensions()
+         }
+         else if (!xPackage.is() || bError)
+         {
+-            ::vos::OGuard g(Application::GetSolarMutex());
++            osl::SolarMutexGuard g(Application::GetSolarMutex());
+             if (m_stop) {
+                 return;
+             }
+@@ -550,7 +550,7 @@ void UpdateInstallDialog::Thread::installExtensions()
+         }
+     }
+     {
+-        vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (m_stop) {
+             return;
+         }
+@@ -577,7 +577,7 @@ void UpdateInstallDialog::Thread::removeTempDownloads()
+ void UpdateInstallDialog::Thread::download(OUString const & sDownloadURL, UpdateData & aUpdateData)
+ {
+     {
+-        ::vos::OGuard g(Application::GetSolarMutex());
++        osl::SolarMutexGuard g(Application::GetSolarMutex());
+         if (m_stop) {
+             return;
+         }
+@@ -609,7 +609,7 @@ void UpdateInstallDialog::Thread::download(OUString const & sDownloadURL, Update
+     {
+         //the user may have been cancelled the dialog because downloading took to look
+         {
+-            ::vos::OGuard g(Application::GetSolarMutex());
++            osl::SolarMutexGuard g(Application::GetSolarMutex());
+             if (m_stop) {
+                 return;
+             }
+diff --git a/desktop/source/deployment/gui/license_dialog.cxx b/desktop/source/deployment/gui/license_dialog.cxx
+index f063c97..720715d 100644
+--- desktop/source/deployment/gui/license_dialog.cxx
++++ desktop/source/deployment/gui/license_dialog.cxx
+@@ -56,6 +56,7 @@
+ //#include <vcl/button.hxx>
+ //#include <vcl/dialog.hxx>
+ #include <vcl/scrbar.hxx>
++#include <osl/mutex.hxx>
+ //#include <svtools/wizardmachine.hxx>
+ 
+ 
+@@ -358,7 +359,7 @@ sal_Int16 LicenseDialog::execute() throw (RuntimeException)
+     //    
+     //}
+     
+-    const ::vos::OGuard guard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard guard( Application::GetSolarMutex() );
+ 	std::auto_ptr<LicenseDialogImpl> dlg(new LicenseDialogImpl(
+ 		VCLUnoHelper::GetWindow(m_parent), m_xComponentContext, m_sLicenseText));
+ 
+diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx
+index 538e5b6..b1b87ac 100644
+--- desktop/source/splash/splash.cxx
++++ desktop/source/splash/splash.cxx
+@@ -58,7 +58,7 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <com/sun/star/registry/XRegistryKey.hpp>
+ #include <rtl/logfile.hxx>
+@@ -116,7 +116,7 @@ void SAL_CALL SplashScreen::start(const OUString&, sal_Int32 nRange)
+     _iMax = nRange;
+     if (_bVisible) {
+         _bProgressEnd = sal_False;
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         if ( _eBitmapMode == BM_FULLSCREEN )
+             ShowFullScreenMode( TRUE );
+         Show();
+@@ -168,7 +168,7 @@ void SAL_CALL SplashScreen::setValue(sal_Int32 nValue)
+     RTL_LOGFILE_CONTEXT( aLog, "::SplashScreen::setValue (lo119109)" );
+     RTL_LOGFILE_CONTEXT_TRACE1( aLog, "value=%d", nValue );
+ 
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     if (_bVisible && !_bProgressEnd) {
+         if ( _eBitmapMode == BM_FULLSCREEN )
+             ShowFullScreenMode( TRUE );
+diff --git a/embeddedobj/source/msole/graphconvert.cxx b/embeddedobj/source/msole/graphconvert.cxx
+index 4f04ec0..776693a 100644
+--- embeddedobj/source/msole/graphconvert.cxx
++++ embeddedobj/source/msole/graphconvert.cxx
+@@ -58,7 +58,7 @@
+ 
+ #include <tools/link.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ 
+ using namespace ::com::sun::star;
+@@ -141,7 +141,7 @@ IMPL_STATIC_LINK_NOINSTANCE( MainThreadNotificationRequest, worker, MainThreadNo
+ 				if ( xLock.is() )
+ 				{
+ 					// this is the main thread, the solar mutex must be locked
+-					::vos::OGuard aGuard( Application::GetSolarMutex() );
++					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 					if ( pMTRequest->m_nNotificationType == OLECOMP_ONCLOSE )
+ 						pMTRequest->m_pObject->OnClosed_Impl();
+ 					else if ( pMTRequest->m_nAspect == embed::Aspects::MSOLE_CONTENT )
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 1572a21..24167fd 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -547,7 +547,7 @@
+ #include "osl/diagnose.h"
+ #include "vos/macros.hxx"
+ #include "vos/module.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "vos/pipe.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+diff --git a/extensions/source/bibliography/bibload.cxx b/extensions/source/bibliography/bibload.cxx
+index 1f9efb0..2574d89 100644
+--- extensions/source/bibliography/bibload.cxx
++++ extensions/source/bibliography/bibload.cxx
+@@ -376,7 +376,7 @@ void BibliographyLoader::load(const Reference< XFrame > & rFrame, const rtl::OUS
+ {
+ 	//!
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     m_pBibMod = OpenBibModul();
+ 
+ 	String aURLStr( rURL );
+@@ -399,7 +399,7 @@ void BibliographyLoader::loadView(const Reference< XFrame > & rFrame, const rtl:
+ 		const Sequence< PropertyValue >& rArgs,
+ 		const Reference< XLoadEventListener > & rListener)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     //!
+ 	if(!m_pBibMod)
+ 		m_pBibMod = OpenBibModul();
+diff --git a/extensions/source/bibliography/framectr.cxx b/extensions/source/bibliography/framectr.cxx
+index 1687c87..6c66563 100644
+--- extensions/source/bibliography/framectr.cxx
++++ extensions/source/bibliography/framectr.cxx
+@@ -128,8 +128,8 @@
+ #ifndef _SV_EDIT_HXX
+ #include <vcl/edit.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <hash_map>
+@@ -256,7 +256,7 @@ void BibFrameCtrl_Impl::frameAction(const FrameActionEvent& aEvent) throw( uno::
+ void BibFrameCtrl_Impl::disposing( const lang::EventObject& Source )
+ 	throw (::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if ( pController )
+ 		pController->getFrame()->removeFrameActionListener( this );
+ }
+@@ -531,7 +531,7 @@ void BibFrameController_Impl::dispatch(const util::URL& aURL, const uno::Sequenc
+ {
+ 	if ( !bDisposing )
+ 	{
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         Window* pParent = VCLUnoHelper::GetWindow( xWindow );
+ 		WaitObject aWaitObject( pParent );
+ 
+diff --git a/extensions/source/bibliography/toolbar.cxx b/extensions/source/bibliography/toolbar.cxx
+index b85e7cd..05972c6 100644
+--- extensions/source/bibliography/toolbar.cxx
++++ extensions/source/bibliography/toolbar.cxx
+@@ -80,8 +80,8 @@
+ #ifndef BIBTOOLS_HXX
+ #include "bibtools.hxx"
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ using namespace ::rtl;
+@@ -109,7 +109,7 @@ void BibToolBarListener::statusChanged(const ::com::sun::star::frame::FeatureSta
+ {
+ 	if(rEvt.FeatureURL.Complete == aCommand)
+ 	{
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         pToolBar->EnableItem(nIndex,rEvt.IsEnabled);
+ 
+ 		::com::sun::star::uno::Any aState=rEvt.State;
+@@ -157,7 +157,7 @@ void BibTBListBoxListener::statusChanged(const ::com::sun::star::frame::FeatureS
+ {
+ 	if(rEvt.FeatureURL.Complete == GetCommand())
+ 	{
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         pToolBar->EnableSourceList(rEvt.IsEnabled);
+ 
+ 		Any aState = rEvt.State;
+@@ -197,7 +197,7 @@ void BibTBQueryMenuListener::statusChanged(const frame::FeatureStateEvent& rEvt)
+ {
+ 	if(rEvt.FeatureURL.Complete == GetCommand())
+ 	{
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         pToolBar->EnableSourceList(rEvt.IsEnabled);
+ 
+ 		uno::Any aState=rEvt.State;
+@@ -235,7 +235,7 @@ void BibTBEditListener::statusChanged(const frame::FeatureStateEvent& rEvt)throw
+ {
+ 	if(rEvt.FeatureURL.Complete == GetCommand())
+ 	{
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         pToolBar->EnableQuery(rEvt.IsEnabled);
+ 
+ 		uno::Any aState=rEvt.State;
+diff --git a/extensions/source/plugin/inc/plugin/unx/mediator.hxx b/extensions/source/plugin/inc/plugin/unx/mediator.hxx
+index cbcc327..a7d9fbb 100644
+--- extensions/source/plugin/inc/plugin/unx/mediator.hxx
++++ extensions/source/plugin/inc/plugin/unx/mediator.hxx
+@@ -50,8 +50,8 @@
+ #ifndef _VOS_PIPE_HXX_
+ #include <vos/pipe.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _VOS_CONDITN_HXX_
+ #include <vos/conditn.hxx>
+@@ -114,8 +114,8 @@ protected:
+     int									m_nSocket;
+ 
+ 	MediatorMessageList					m_aMessageQueue;
+-	NAMESPACE_VOS(OMutex)				m_aQueueMutex;
+-	NAMESPACE_VOS(OMutex)				m_aSendMutex;
++    osl::Mutex                          m_aQueueMutex;
++    osl::Mutex                          m_aSendMutex;
+ 	// only one thread can send a message at any given time
+ 	NAMESPACE_VOS(OCondition)			m_aNewMessageCdtn;
+ 	MediatorListener*					m_pListener;
+@@ -179,7 +179,7 @@ class MediatorListener : public osl::Thread
+ 	friend class Mediator;
+   private:
+ 	Mediator*		m_pMediator;
+-    ::vos::OMutex	m_aMutex;
++    osl::Mutex      m_aMutex;
+ 
+ 	MediatorListener( Mediator* );
+ 	~MediatorListener();
+diff --git a/extensions/source/plugin/inc/plugin/unx/plugcon.hxx b/extensions/source/plugin/inc/plugin/unx/plugcon.hxx
+index 621c66b..9dada14 100644
+--- extensions/source/plugin/inc/plugin/unx/plugcon.hxx
++++ extensions/source/plugin/inc/plugin/unx/plugcon.hxx
+@@ -134,7 +134,7 @@ DECLARE_LIST( PluginConnectorList, PluginConnector* );
+ class PluginConnector : public Mediator
+ {
+ protected:
+-	NAMESPACE_VOS(OMutex)               m_aUserEventMutex;
++    osl::Mutex                          m_aUserEventMutex;
+ 
+ 	static PluginConnectorList          allConnectors;
+ 	
+diff --git a/extensions/source/plugin/unx/mediator.cxx b/extensions/source/plugin/unx/mediator.cxx
+index fda6a4e..1867e42 100644
+--- extensions/source/plugin/unx/mediator.cxx
++++ extensions/source/plugin/unx/mediator.cxx
+@@ -58,7 +58,7 @@ Mediator::~Mediator()
+ 	if( m_pListener )
+ 	{
+         {
+-            ::vos::OGuard aGuard( m_pListener->m_aMutex );
++            osl::MutexGuard aGuard( m_pListener->m_aMutex );
+             m_pListener->m_pMediator = NULL;
+         }
+ 		m_pListener = NULL;
+@@ -85,7 +85,7 @@ ULONG Mediator::SendMessage( ULONG nBytes, const char* pBytes, ULONG nMessageID
+     if( ! m_pListener )
+         return 0;
+ 
+-	NAMESPACE_VOS(OGuard) aGuard( m_aSendMutex );
++	osl::MutexGuard aGuard( m_aSendMutex );
+ 	if( ! nMessageID )
+ 		nMessageID = m_nCurrentID;
+ 
+@@ -137,7 +137,7 @@ MediatorMessage* Mediator::WaitForAnswer( ULONG nMessageID )
+ 	while( m_pListener )
+ 	{
+ 		{
+-			NAMESPACE_VOS(OGuard) aGuard( m_aQueueMutex );
++			osl::MutexGuard aGuard( m_aQueueMutex );
+ 			for( int i = 0; i < m_aMessageQueue.Count(); i++ )
+ 			{
+ 				ULONG nID = m_aMessageQueue.GetObject( i )->m_nID;
+@@ -158,7 +158,7 @@ MediatorMessage* Mediator::GetNextMessage( BOOL bWait )
+ 		{
+ 			// guard must be after WaitForMessage, else the listener
+ 			// cannot insert a new one -> deadlock
+-			NAMESPACE_VOS(OGuard) aGuard( m_aQueueMutex );
++			osl::MutexGuard aGuard( m_aQueueMutex );
+ 			for( int i = 0; i < m_aMessageQueue.Count(); i++ )
+ 				if( ! ( m_aMessageQueue.GetObject( i )->m_nID & 0xff000000 ) )
+ 					return m_aMessageQueue.Remove( i );
+@@ -200,9 +200,9 @@ void MediatorListener::run()
+             char* pBuffer = new char[ nHeader[ 1 ] ];
+             if( m_pMediator && read( m_pMediator->m_nSocket, pBuffer, nHeader[ 1 ] ) == nHeader[ 1 ] )
+             {
+-                ::vos::OGuard aMyGuard( m_aMutex );
++                osl::MutexGuard aMyGuard( m_aMutex );
+                 {
+-                    NAMESPACE_VOS(OGuard)
++                    osl::MutexGuard
+                         aGuard( m_pMediator->m_aQueueMutex );
+                     MediatorMessage* pMessage =
+                         new MediatorMessage( nHeader[ 0 ], nHeader[ 1 ], pBuffer );
+diff --git a/extensions/source/plugin/unx/nppapi.cxx b/extensions/source/plugin/unx/nppapi.cxx
+index 5462bc0..4485a5c 100644
+--- extensions/source/plugin/unx/nppapi.cxx
++++ extensions/source/plugin/unx/nppapi.cxx
+@@ -27,13 +27,13 @@ PluginConnector::PluginConnector( int nSocket ) :
+ 
+ PluginConnector::~PluginConnector()
+ {
+-	NAMESPACE_VOS(OGuard) aGuard( m_aUserEventMutex );
++    osl::MutexGuard aGuard( m_aUserEventMutex );
+ 	allConnectors.Remove( this );
+ }
+ 
+ IMPL_LINK( PluginConnector, NewMessageHdl, Mediator*, pMediator )
+ {
+-	NAMESPACE_VOS(OGuard) aGuard( m_aUserEventMutex );
++	osl::MutexGuard aGuard( m_aUserEventMutex );
+ 	if( allConnectors.GetPos( this ) == LIST_ENTRY_NOTFOUND )
+ 		return 0;
+     Application::PostUserEvent( LINK( this, PluginConnector, WorkOnNewMessageHdl ) );
+@@ -46,7 +46,7 @@ IMPL_LINK( PluginConnector, WorkOnNewMessageHdl, Mediator*, pMediator )
+ 		return 0;
+ /*
+ 	{
+-		NAMESPACE_VOS(OGuard) aGuard( m_aUserEventMutex );
++		osl::MutexGuard aGuard( m_aUserEventMutex );
+ 		m_aUserEventIDs.pop_front();
+ 	}
+ */
+diff --git a/extensions/source/plugin/unx/plugcon.cxx b/extensions/source/plugin/unx/plugcon.cxx
+index b0c3293..35ce340 100644
+--- extensions/source/plugin/unx/plugcon.cxx
++++ extensions/source/plugin/unx/plugcon.cxx
+@@ -134,7 +134,7 @@ MediatorMessage* PluginConnector::WaitForAnswer( ULONG nMessageID )
+ 	while( m_pListener )
+ 	{
+ 		{
+-			NAMESPACE_VOS(OGuard) aGuard( m_aQueueMutex );
++			osl::MutexGuard aGuard( m_aQueueMutex );
+ 			for( int i = 0; i < m_aMessageQueue.Count(); i++ )
+ 			{
+ 				ULONG nID = m_aMessageQueue.GetObject( i )->m_nID;
+diff --git a/extensions/source/propctrlr/browserlistbox.cxx b/extensions/source/propctrlr/browserlistbox.cxx
+index fb51022..b2988a6 100644
+--- extensions/source/propctrlr/browserlistbox.cxx
++++ extensions/source/propctrlr/browserlistbox.cxx
+@@ -82,8 +82,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ //............................................................................
+@@ -283,7 +283,7 @@ namespace pcr
+     //--------------------------------------------------------------------
+     void SAL_CALL PropertyControlContext_Impl::dispose()
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         if ( impl_isDisposed_nothrow() )
+             return;
+ 
+@@ -294,7 +294,7 @@ namespace pcr
+     //--------------------------------------------------------------------
+     void PropertyControlContext_Impl::setNotificationMode( NotifcationMode _eMode )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         m_eMode = _eMode;
+     }
+ 
+@@ -304,7 +304,7 @@ namespace pcr
+         ::comphelper::AnyEventRef pEvent;
+ 
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+             impl_checkAlive_throw();
+             pEvent = new ControlEvent( _rxControl, _eType );
+ 
+@@ -354,7 +354,7 @@ namespace pcr
+     //--------------------------------------------------------------------
+     void PropertyControlContext_Impl::processEvent( const ::comphelper::AnyEvent& _rEvent )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         if ( impl_isDisposed_nothrow() )
+             return;
+ 
+diff --git a/extensions/source/propctrlr/propcontroller.cxx b/extensions/source/propctrlr/propcontroller.cxx
+index a997174..b733a64 100644
+--- extensions/source/propctrlr/propcontroller.cxx
++++ extensions/source/propctrlr/propcontroller.cxx
+@@ -114,8 +114,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _CPPUHELPER_COMPONENT_CONTEXT_HXX_
+ #include <cppuhelper/component_context.hxx>
+@@ -345,7 +345,7 @@ namespace pcr
+     //--------------------------------------------------------------------
+     void SAL_CALL OPropertyBrowserController::inspect( const Sequence< Reference< XInterface > >& _rObjects ) throw (com::sun::star::util::VetoException, RuntimeException)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ::osl::MutexGuard aGuard( m_aMutex );
+ 
+         if ( m_bSuspendingPropertyHandlers || !suspendAll_nothrow() )
+@@ -427,7 +427,7 @@ namespace pcr
+     //------------------------------------------------------------------------
+ 	void SAL_CALL OPropertyBrowserController::attachFrame( const Reference< XFrame >& _rxFrame ) throw(RuntimeException)
+ 	{
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 		if (_rxFrame.is() && haveView())
+@@ -592,7 +592,7 @@ namespace pcr
+ 	//------------------------------------------------------------------------
+ 	void SAL_CALL OPropertyBrowserController::dispose(  ) throw(RuntimeException)
+ 	{
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+         // stop inspecting the current object
+ 		stopInspection( false );
+@@ -1774,7 +1774,7 @@ namespace pcr
+ 	//------------------------------------------------------------------------
+     void SAL_CALL OPropertyBrowserController::setHelpSectionText( const ::rtl::OUString& _rHelpText ) throw (NoSupportException, RuntimeException)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ::osl::MutexGuard aGuard( m_aMutex );
+ 
+         if ( !haveView() )
+diff --git a/extensions/source/resource/resource.cxx b/extensions/source/resource/resource.cxx
+index 21a6d00..25ce10a 100644
+--- extensions/source/resource/resource.cxx
++++ extensions/source/resource/resource.cxx
+@@ -40,7 +40,7 @@
+ #include "res_services.hxx"
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <uno/lbnames.h>			// CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
+ #include <cppuhelper/factory.hxx>	// helper for factories
+ #include <cppuhelper/implbase3.hxx>	// helper for implementations
+@@ -61,7 +61,6 @@
+ #include <rtl/ustring.hxx>
+ #include <rtl/strbuf.hxx>
+ 
+-using namespace vos;
+ using namespace rtl;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+@@ -167,7 +166,7 @@ Sequence< OUString > ResourceService::getSupportedServiceNames_Static(void) thro
+ // ResourceService
+ Reference< XTypeConverter > ResourceService::getTypeConverter() const
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( xSMgr.is() )
+ 	{
+ 		Reference< XTypeConverter > xConv( xSMgr->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.script.Converter" ))), UNO_QUERY );
+@@ -179,7 +178,7 @@ Reference< XTypeConverter > ResourceService::getTypeConverter() const
+ // ResourceService
+ Reference< XInvocation > ResourceService::getDefaultInvocation() const
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	/* f�hrt zur Zeit noch zu einer rekursion
+ 	if( xSMgr.is() )
+ 	{
+@@ -266,7 +265,7 @@ Any SAL_CALL ResourceService::invoke
+         Reference< XTypeConverter > xC = getTypeConverter();
+         bool bGetBranch = FunctionName.equalsAscii( "getString" ) || FunctionName.equalsAscii( "getStrings" );
+             
+-        OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         for( sal_Int32 n = 0; n < nElements; n++ )
+         {
+             sal_Int32 nId;
+@@ -320,7 +319,7 @@ Any SAL_CALL ResourceService::invoke
+         if( Params.getLength() != 1 )
+             throw IllegalArgumentException();
+         Reference< XTypeConverter > xC = getTypeConverter();
+-        OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 nId;
+         if( !(Params.getConstArray()[0] >>= nId) )
+@@ -394,7 +393,7 @@ void SAL_CALL ResourceService::setValue(const OUString& PropertyName, const Any&
+ 				throw CannotConvertException();
+ 		}
+ 
+-		OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         OStringBuffer aBuf( aName.getLength()+8 );
+         aBuf.append( OUStringToOString( aName, osl_getThreadTextEncoding() ) );
+         aBuf.append( sal_Int32(SUPD) );
+@@ -420,7 +419,7 @@ void SAL_CALL ResourceService::setValue(const OUString& PropertyName, const Any&
+ Any SAL_CALL ResourceService::getValue(const OUString& PropertyName) 
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( PropertyName.equalsAscii("FileName" ))
+ 		return makeAny( aFileName );
+ 	else
+diff --git a/extensions/source/scanner/sane.hxx b/extensions/source/scanner/sane.hxx
+index e62b33e..d9dca5e 100644
+--- extensions/source/scanner/sane.hxx
++++ extensions/source/scanner/sane.hxx
+@@ -48,7 +48,7 @@
+ class BitmapTransporter : public OWeakObject, AWT::XBitmap
+ {
+ 	SvMemoryStream						m_aStream;
+-	vos::OMutex							m_aProtector;
++	osl::Mutex							m_aProtector;
+ 										
+ public:									
+ 										
+diff --git a/extensions/source/scanner/scanner.hxx b/extensions/source/scanner/scanner.hxx
+index a49265d..cec5ee2 100644
+--- extensions/source/scanner/scanner.hxx
++++ extensions/source/scanner/scanner.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _STREAM_HXX
+ #include <tools/stream.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef __RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+@@ -98,7 +98,7 @@ class ScannerManager : public OWeakObject, XScannerManager, AWT::XBitmap
+ {
+ protected:
+ 
+-	vos::OMutex								maProtector;
++	osl::Mutex								maProtector;
+ 	void*									mpData;
+ 
+ 	void									DestroyData();
+diff --git a/extensions/source/scanner/scanunx.cxx b/extensions/source/scanner/scanunx.cxx
+index 7d2ad90..50147a5 100644
+--- extensions/source/scanner/scanunx.cxx
++++ extensions/source/scanner/scanunx.cxx
+@@ -71,7 +71,7 @@ ANY SAL_CALL BitmapTransporter::queryInterface( const Type& rType ) throw( Runti
+ 
+ AWT::Size BitmapTransporter::getSize() throw()
+ {
+-	vos::OGuard	aGuard( m_aProtector );
++	osl::MutexGuard	aGuard( m_aProtector );
+ 	int			nPreviousPos = m_aStream.Tell();
+ 	AWT::Size	aRet;
+ 
+@@ -95,7 +95,7 @@ AWT::Size BitmapTransporter::getSize() throw()
+ 
+ SEQ( sal_Int8 ) BitmapTransporter::getDIB() throw()
+ {
+-	vos::OGuard aGuard( m_aProtector );
++	osl::MutexGuard aGuard( m_aProtector );
+ 	int			nPreviousPos = m_aStream.Tell();
+ 
+ 	// create return value
+@@ -118,7 +118,7 @@ struct SaneHolder
+ {
+ 	Sane				m_aSane;
+ 	REF( AWT::XBitmap )	m_xBitmap;
+-	vos::OMutex			m_aProtector;
++	osl::Mutex			m_aProtector;
+ 	ScanError			m_nError;
+     bool				m_bBusy;
+ };
+@@ -126,7 +126,7 @@ struct SaneHolder
+ DECLARE_LIST( SaneHolderList, SaneHolder* );
+ 
+ static SaneHolderList	allSanes;
+-static vos::OMutex		aSaneProtector;
++static osl::Mutex		aSaneProtector;
+ 
+ // -----------------
+ // - ScannerThread -
+@@ -170,7 +170,7 @@ ScannerThread::~ScannerThread()
+ 
+ void ScannerThread::run()
+ {
+-	vos::OGuard			aGuard( m_pHolder->m_aProtector );
++	osl::MutexGuard			aGuard( m_pHolder->m_aProtector );
+     BitmapTransporter*	pTransporter = new BitmapTransporter;
+ 	REF( XInterface )	aIf( static_cast< OWeakObject* >( pTransporter ) );
+ 
+@@ -225,7 +225,7 @@ SEQ( sal_Int8 ) ScannerManager::getDIB() throw()
+ 
+ SEQ( ScannerContext ) ScannerManager::getAvailableScanners() throw()
+ {
+-	vos::OGuard aGuard( aSaneProtector );
++	osl::MutexGuard aGuard( aSaneProtector );
+ 
+ 	if( ! allSanes.Count() )
+ 	{
+@@ -253,7 +253,7 @@ SEQ( ScannerContext ) ScannerManager::getAvailableScanners() throw()
+ 
+ BOOL ScannerManager::configureScanner( ScannerContext& scanner_context ) throw( ScannerException )
+ {
+-	vos::OGuard aGuard( aSaneProtector );
++	osl::MutexGuard aGuard( aSaneProtector );
+ 
+ #if OSL_DEBUG_LEVEL > 1
+     fprintf( stderr, "ScannerManager::configureScanner\n" );
+@@ -287,7 +287,7 @@ BOOL ScannerManager::configureScanner( ScannerContext& scanner_context ) throw(
+ void ScannerManager::startScan( const ScannerContext& scanner_context,
+ 								const REF( com::sun::star::lang::XEventListener )& listener ) throw( ScannerException )
+ {
+-	vos::OGuard aGuard( aSaneProtector );
++	osl::MutexGuard aGuard( aSaneProtector );
+ 
+ #if OSL_DEBUG_LEVEL > 1
+     fprintf( stderr, "ScannerManager::startScan\n" );
+@@ -316,7 +316,7 @@ void ScannerManager::startScan( const ScannerContext& scanner_context,
+ 
+ ScanError ScannerManager::getError( const ScannerContext& scanner_context ) throw( ScannerException )
+ {
+-	vos::OGuard aGuard( aSaneProtector );
++	osl::MutexGuard aGuard( aSaneProtector );
+ 
+ 	if( scanner_context.InternalData < 0 || scanner_context.InternalData >= allSanes.Count() )
+ 		throw ScannerException(
+@@ -334,7 +334,7 @@ ScanError ScannerManager::getError( const ScannerContext& scanner_context ) thro
+ 
+ REF( AWT::XBitmap ) ScannerManager::getBitmap( const ScannerContext& scanner_context ) throw( ScannerException )
+ {
+-	vos::OGuard aGuard( aSaneProtector );
++	osl::MutexGuard aGuard( aSaneProtector );
+ 
+ 	if( scanner_context.InternalData < 0 || scanner_context.InternalData >= allSanes.Count() )
+ 		throw ScannerException(
+@@ -344,7 +344,7 @@ REF( AWT::XBitmap ) ScannerManager::getBitmap( const ScannerContext& scanner_con
+ 			);
+ 	SaneHolder* pHolder = allSanes.GetObject( scanner_context.InternalData );
+ 
+-	vos::OGuard aProtGuard( pHolder->m_aProtector );
++	osl::MutexGuard aProtGuard( pHolder->m_aProtector );
+ 
+ 	REF( AWT::XBitmap ) xRet( pHolder->m_xBitmap );
+ 	pHolder->m_xBitmap = REF( AWT::XBitmap )();
+diff --git a/extensions/source/scanner/scanwin.cxx b/extensions/source/scanner/scanwin.cxx
+index 134d3be..1a1014a 100644
+--- extensions/source/scanner/scanwin.cxx
++++ extensions/source/scanner/scanwin.cxx
+@@ -79,7 +79,7 @@
+ #include <math.h>
+ #include <tools/svwin.h>
+ #include <tools/stream.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vos/module.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/wrkwin.hxx>
+diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx
+index 908125f..8411e44 100644
+--- extensions/source/update/ui/updatecheckui.cxx
++++ extensions/source/update/ui/updatecheckui.cxx
+@@ -66,7 +66,7 @@
+ 
+ #include <comphelper/processfactory.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/mutex.hxx>
+ 
+ #include <vcl/window.hxx>
+@@ -407,7 +407,7 @@ void UpdateCheckUI::AddMenuBarIcon( SystemWindow *pSysWin )
+     if ( ! mbShowMenuIcon )
+         return;
+ 
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     MenuBar *pActiveMBar = pSysWin->GetMenuBar();
+     if ( ( pSysWin != mpIconSysWin ) || ( pActiveMBar != mpIconMBar ) )
+@@ -443,7 +443,7 @@ void UpdateCheckUI::AddMenuBarIcon( SystemWindow *pSysWin )
+ void SAL_CALL UpdateCheckUI::notifyEvent(const document::EventObject& rEvent)
+     throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( rEvent.EventName.compareToAscii( RTL_CONSTASCII_STRINGPARAM("OnPrepareViewClosing") ) == 0 )
+     {
+@@ -625,7 +625,7 @@ BubbleWindow * UpdateCheckUI::GetBubbleWindow()
+ //------------------------------------------------------------------------------
+ void UpdateCheckUI::RemoveBubbleWindow( bool bRemoveIcon )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     maWaitTimer.Stop();
+     maTimeoutTimer.Stop();
+@@ -659,7 +659,7 @@ IMPL_LINK( UpdateCheckUI, ClickHdl, USHORT*, EMPTYARG )
+ 
+     if ( mrJob.is() )
+     {
+-        vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try {
+             uno::Sequence<beans::NamedValue> aEmpty;
+@@ -710,7 +710,7 @@ IMPL_LINK( UpdateCheckUI, TimeOutHdl, Timer*, EMPTYARG )
+ // -----------------------------------------------------------------------
+ IMPL_LINK( UpdateCheckUI, UserEventHdl, UpdateCheckUI*, EMPTYARG )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     Window *pTopWin = Application::GetFirstTopLevelWindow();
+     Window *pActiveWin = Application::GetActiveTopWindow();
+@@ -781,7 +781,7 @@ IMPL_LINK( UpdateCheckUI, ApplicationEventHdl, VclSimpleEvent *, pEvent)
+         case VCLEVENT_WINDOW_SHOW:
+         case VCLEVENT_WINDOW_ACTIVATE:
+         case VCLEVENT_WINDOW_GETFOCUS: {
+-            vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             Window *pWindow = static_cast< VclWindowEvent * >(pEvent)->GetWindow();
+             if ( pWindow && pWindow->IsTopWindow() )
+@@ -834,7 +834,7 @@ BubbleWindow::~BubbleWindow()
+ //------------------------------------------------------------------------------
+ void BubbleWindow::Resize()
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	FloatingWindow::Resize();
+ 
+@@ -877,7 +877,7 @@ void BubbleWindow::SetTitleAndText( const XubString& rTitle,
+ //------------------------------------------------------------------------------
+ void BubbleWindow::Paint( const Rectangle& )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     LineInfo aThickLine( LINE_SOLID, 2 );
+ 
+@@ -923,7 +923,7 @@ void BubbleWindow::MouseButtonDown( const MouseEvent& )
+ //------------------------------------------------------------------------------
+ void BubbleWindow::Show( BOOL bVisible, USHORT nFlags )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if ( !bVisible )
+     {
+diff --git a/extensions/test/stm/datatest.cxx b/extensions/test/stm/datatest.cxx
+index 69c0d82..fa4cd8e 100644
+--- extensions/test/stm/datatest.cxx
++++ extensions/test/stm/datatest.cxx
+@@ -54,7 +54,7 @@
+ #include <usr/weak.hxx>      // OWeakObject
+ 
+ #include <vos/conditn.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/thread.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+diff --git a/extensions/test/stm/marktest.cxx b/extensions/test/stm/marktest.cxx
+index 994cbba..f99e57d 100644
+--- extensions/test/stm/marktest.cxx
++++ extensions/test/stm/marktest.cxx
+@@ -50,7 +50,7 @@
+ #include <usr/weak.hxx>      // OWeakObject
+ 
+ #include <vos/conditn.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/thread.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+diff --git a/extensions/test/stm/pipetest.cxx b/extensions/test/stm/pipetest.cxx
+index 41d9c22..0aa6d41 100644
+--- extensions/test/stm/pipetest.cxx
++++ extensions/test/stm/pipetest.cxx
+@@ -47,7 +47,7 @@
+ #include <usr/weak.hxx>      // OWeakObject
+ 
+ #include <vos/conditn.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/thread.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+diff --git a/extensions/workben/testframecontrol.cxx b/extensions/workben/testframecontrol.cxx
+index 8b56357..dfbb793 100644
+--- extensions/workben/testframecontrol.cxx
++++ extensions/workben/testframecontrol.cxx
+@@ -36,7 +36,7 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_extensions.hxx"
+ 
+-//#include <vos/mutex.hxx>
++//#include <osl/mutex.hxx>
+ #include <vos/dynload.hxx>
+ 
+ #include <vcl/wrkwin.hxx>
+diff --git a/filter/source/svg/svgfilter.cxx b/filter/source/svg/svgfilter.cxx
+index d2e29ac..836eeeb 100644
+--- filter/source/svg/svgfilter.cxx
++++ filter/source/svg/svgfilter.cxx
+@@ -49,8 +49,8 @@
+ #include <com/sun/star/frame/XDesktop.hdl>
+ #include <com/sun/star/frame/XController.hdl>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ using ::rtl::OUString;
+@@ -88,7 +88,7 @@ SVGFilter::~SVGFilter()
+ sal_Bool SAL_CALL SVGFilter::filter( const Sequence< PropertyValue >& rDescriptor ) 
+ 	throw (RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Window*     pFocusWindow = Application::GetFocusWindow();
+ 	sal_Int16 	nCurrentPageNumber = -1;
+     sal_Bool    bRet;
+diff --git a/filter/source/xsltdialog/xmlfileview.cxx b/filter/source/xsltdialog/xmlfileview.cxx
+index 32d8f7e..1fe725e 100644
+--- filter/source/xsltdialog/xmlfileview.cxx
++++ filter/source/xsltdialog/xmlfileview.cxx
+@@ -65,8 +65,8 @@
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _TEXTVIEW_HXX
+ #include <svtools/textview.hxx>
+@@ -152,7 +152,7 @@ XMLErrorHandler::XMLErrorHandler( XMLSourceFileDialog* pParent, ListBox& rListBo
+ // XMLErrorHandler
+ void SAL_CALL XMLErrorHandler::error( const Any& aSAXParseException ) throw (SAXException, RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SAXParseException e;
+ 	if( aSAXParseException >>= e )
+@@ -167,7 +167,7 @@ void SAL_CALL XMLErrorHandler::error( const Any& aSAXParseException ) throw (SAX
+ 
+ void SAL_CALL XMLErrorHandler::fatalError( const Any& aSAXParseException ) throw (SAXException, RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SAXParseException e;
+ 	if( aSAXParseException >>= e )
+diff --git a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
+index 2a9919d..626ae71 100644
+--- filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
++++ filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_ 
+@@ -349,7 +349,7 @@ sal_Bool SAL_CALL XMLFilterDialogComponent::supportsService(const ::rtl::OUStrin
+ */
+ void SAL_CALL XMLFilterDialogComponent::disposing()
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpDialog )
+ 	{
+@@ -369,7 +369,7 @@ void SAL_CALL XMLFilterDialogComponent::disposing()
+ // XTerminateListener
+ void SAL_CALL XMLFilterDialogComponent::queryTermination( const EventObject& /* Event */ ) throw (TerminationVetoException, RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// we will never give a veto here
+ 	if( mpDialog && !mpDialog->isClosable() )
+@@ -399,7 +399,7 @@ void SAL_CALL XMLFilterDialogComponent::setTitle( const ::rtl::OUString& /* _rTi
+ //-------------------------------------------------------------------------
+ sal_Int16 SAL_CALL XMLFilterDialogComponent::execute(  ) throw(RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpResMgr )
+ 	{
+diff --git a/filter/source/xsltdialog/xmlfiltertestdialog.cxx b/filter/source/xsltdialog/xmlfiltertestdialog.cxx
+index dfbbfe1..8030d29 100644
+--- filter/source/xsltdialog/xmlfiltertestdialog.cxx
++++ filter/source/xsltdialog/xmlfiltertestdialog.cxx
+@@ -101,8 +101,8 @@
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _FILEDLGHELPER_HXX 
+@@ -130,7 +130,6 @@
+ using namespace rtl;
+ using namespace utl;
+ using namespace osl;
+-using namespace vos;
+ using namespace comphelper;
+ using namespace com::sun::star::lang;
+ using namespace com::sun::star::beans;
+@@ -164,7 +163,7 @@ GlobalEventListenerImpl::GlobalEventListenerImpl( XMLFilterTestDialog* pDialog )
+ 
+ void SAL_CALL GlobalEventListenerImpl::notifyEvent( const com::sun::star::document::EventObject& Event ) throw (RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( (Event.EventName.compareToAscii( RTL_CONSTASCII_STRINGPARAM("OnFocus") ) == 0) ||
+ 		(Event.EventName.compareToAscii( RTL_CONSTASCII_STRINGPARAM("OnUnload") ) == 0) )
+ 	{
+diff --git a/forms/inc/pch/precompiled_forms.hxx b/forms/inc/pch/precompiled_forms.hxx
+index 80edef2..18f7540 100644
+--- forms/inc/pch/precompiled_forms.hxx
++++ forms/inc/pch/precompiled_forms.hxx
+@@ -402,7 +402,7 @@
+ #include "vcl/timer.hxx"
+ #include "vcl/wintypes.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "osl/thread.hxx"
+ //---MARKER---
+ #endif
+diff --git a/forms/source/component/Button.cxx b/forms/source/component/Button.cxx
+index 7651e9f..1352165 100644
+--- forms/source/component/Button.cxx
++++ forms/source/component/Button.cxx
+@@ -46,8 +46,8 @@
+ #ifndef _URLOBJ_HXX
+ #include <tools/urlobj.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -402,7 +402,7 @@ void OButtonControl::actionPerformed_Impl( sal_Bool _bNotifyListener, const ::co
+             if ( !approveAction() )
+                 return;
+ 
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+             dispatch( nFeatureId );
+             return;
+         }
+diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
+index 8b5f4a0..d5e187d 100644
+--- forms/source/component/DatabaseForm.cxx
++++ forms/source/component/DatabaseForm.cxx
+@@ -181,8 +181,8 @@
+ #ifndef _COMPHELPER_EXTRACT_HXX_
+ #include <comphelper/extract.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX	// because of the solar mutex
+ #include <vcl/svapp.hxx>
+@@ -2188,7 +2188,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 	::rtl::OUString aTargetName;
+ 	Reference< XModel >  xModel;
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		// starform->Forms
+ 
+ 		Reference<XChild>  xParent(m_xParent, UNO_QUERY);
+@@ -2220,7 +2220,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 	{
+ 		::rtl::OUString aData;
+ 		{
+-			::vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 			aData = GetDataURLEncoded( Control, MouseEvt );
+ 		}
+ 
+@@ -2298,7 +2298,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 			::rtl::OUString aContentType;
+ 			Sequence<sal_Int8> aData;
+ 			{
+-				::vos::OGuard aGuard( Application::GetSolarMutex() );
++				osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 				aData = GetDataMultiPartEncoded(Control, MouseEvt, aContentType);
+ 			}
+ 			if (!aData.getLength())
+@@ -2323,7 +2323,7 @@ void ODatabaseForm::submit_impl(const Reference<XControl>& Control, const ::com:
+ 	{
+ 		::rtl::OUString aData;
+ 		{
+-			::vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 			aData = GetDataTextEncoded( Reference<XControl> (), MouseEvt );
+ 		}
+ 
+diff --git a/forms/source/component/FormattedField.cxx b/forms/source/component/FormattedField.cxx
+index 6c793ee..d821c80 100644
+--- forms/source/component/FormattedField.cxx
++++ forms/source/component/FormattedField.cxx
+@@ -119,8 +119,8 @@
+ #ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
+ #include <com/sun/star/container/XIndexAccess.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 	// needed as long as we use the SolarMutex
+ #ifndef _COMPHELPER_STREAMSECTION_HXX_
+@@ -771,7 +771,7 @@ void OFormattedModel::loaded(const EventObject& rEvent) throw ( ::com::sun::star
+ 	// the only "clean" solution for me.
+ 	// FS - 69603 - 02.11.99
+ 
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OEditBaseModel::loaded(rEvent);
+ }
+ 
+diff --git a/forms/source/component/ImageButton.cxx b/forms/source/component/ImageButton.cxx
+index c77153c..b30cb5a 100644
+--- forms/source/component/ImageButton.cxx
++++ forms/source/component/ImageButton.cxx
+@@ -49,8 +49,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COMPHELPER_BASIC_IO_HXX_
+@@ -256,7 +256,7 @@ Any SAL_CALL OImageButtonControl::queryAggregation(const Type& _rType) throw (Ru
+ //------------------------------------------------------------------------------
+ void OImageButtonControl::mousePressed(const awt::MouseEvent& e) throw ( ::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     if (e.Buttons != awt::MouseButton::LEFT)
+ 		return;
+diff --git a/forms/source/component/ImageControl.cxx b/forms/source/component/ImageControl.cxx
+index 9becce6..e62fa65 100644
+--- forms/source/component/ImageControl.cxx
++++ forms/source/component/ImageControl.cxx
+@@ -121,6 +121,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ #ifndef _UNOTOOLS_STREAMHELPER_HXX_
+ #include <unotools/streamhelper.hxx>
+ #endif
+@@ -756,7 +758,7 @@ bool OImageControlControl::impl_isEmptyGraphics_nothrow() const
+ //------------------------------------------------------------------------------
+ void OImageControlControl::mousePressed(const ::com::sun::star::awt::MouseEvent& e) throw ( ::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if (e.Buttons != MouseButton::LEFT)
+ 		return;
+diff --git a/forms/source/component/clickableimage.cxx b/forms/source/component/clickableimage.cxx
+index dea2bb6..56a4fe9 100644
+--- forms/source/component/clickableimage.cxx
++++ forms/source/component/clickableimage.cxx
+@@ -92,8 +92,8 @@
+ #ifndef _SFX_OBJSH_HXX //autogen
+ #include <sfx2/objsh.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _FRM_SERVICES_HXX_
+@@ -286,7 +286,7 @@ namespace frm
+         Reference< XInterface > xModelsParent;
+         FormButtonType eButtonType = FormButtonType_PUSH;
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             // Parent holen
+             Reference<XFormComponent>  xComp(getModel(), UNO_QUERY);
+@@ -334,7 +334,7 @@ namespace frm
+ 
+             case FormButtonType_URL:
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+                 Reference< XModel >  xModel = getXModel(xModelsParent);
+                 if (!xModel.is())
+diff --git a/forms/source/richtext/richtextcontrol.cxx b/forms/source/richtext/richtextcontrol.cxx
+index 66a6bb2..1e9a023 100644
+--- forms/source/richtext/richtextcontrol.cxx
++++ forms/source/richtext/richtextcontrol.cxx
+@@ -268,7 +268,7 @@ namespace frm
+             return;
+         }
+ 
+-    	::vos::OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	    if (!getPeer().is())
+ 	    {
+@@ -417,7 +417,7 @@ namespace frm
+     void ORichTextPeer::dispose( ) throw(RuntimeException)
+     {
+         {
+-        	::vos::OGuard aGuard( GetMutex() );
++        	osl::SolarMutexGuard aGuard( GetMutex() );
+             RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+ 
+             if ( pRichTextControl )
+diff --git a/forms/source/richtext/richtextmodel.cxx b/forms/source/richtext/richtextmodel.cxx
+index 6082e60..893ba7f 100644
+--- forms/source/richtext/richtextmodel.cxx
++++ forms/source/richtext/richtextmodel.cxx
+@@ -491,7 +491,7 @@ namespace frm
+     {
+         if ( m_pEngine.get() )
+         {
+-            ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             m_bSettingEngineText = true;
+             m_pEngine->SetText( _rText );
+             m_bSettingEngineText = false;
+diff --git a/forms/source/runtime/formoperations.cxx b/forms/source/runtime/formoperations.cxx
+index 8744b86..4fd8c17 100644
+--- forms/source/runtime/formoperations.cxx
++++ forms/source/runtime/formoperations.cxx
+@@ -103,7 +103,7 @@
+ #include <comphelper/property.hxx>
+ #include <comphelper/namedvaluecollection.hxx>
+ #include <cppuhelper/exc_hlp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ //--------------------------------------------------------------------------
+ extern "C" void SAL_CALL createRegistryInfo_FormOperations()
+@@ -493,7 +493,7 @@ namespace frm
+     //--------------------------------------------------------------------
+     void SAL_CALL FormOperations::execute( ::sal_Int16 _nFeature ) throw (RuntimeException, IllegalArgumentException, SQLException, WrappedTargetException)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         MethodGuard aGuard( *this );
+ 
+         if ( ( _nFeature != FormFeature::DeleteRecord ) && ( _nFeature != FormFeature::UndoRecordChanges ) )
+@@ -746,7 +746,7 @@ namespace frm
+             return;
+         }
+ 
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         MethodGuard aGuard( *this );
+ 
+         // at the moment we have only one feature which supports execution parameters
+diff --git a/forms/source/solar/component/navbarcontrol.cxx b/forms/source/solar/component/navbarcontrol.cxx
+index f68f131..cd109a0 100644
+--- forms/source/solar/component/navbarcontrol.cxx
++++ forms/source/solar/component/navbarcontrol.cxx
+@@ -180,7 +180,7 @@ namespace frm
+     //------------------------------------------------------------------
+     void SAL_CALL ONavigationBarControl::createPeer( const Reference< XToolkit >& /*_rToolkit*/, const Reference< XWindowPeer >& _rParentPeer ) throw( RuntimeException )
+     {
+-    	::vos::OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	    if (!getPeer().is())
+ 	    {
+@@ -343,7 +343,7 @@ namespace frm
+     //------------------------------------------------------------------
+     void SAL_CALL ONavigationBarPeer::setProperty( const ::rtl::OUString& _rPropertyName, const Any& _rValue ) throw( RuntimeException )
+     {
+-    	::vos::OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     	NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+         if ( !pNavBar )
+@@ -424,7 +424,7 @@ namespace frm
+     //------------------------------------------------------------------
+     Any SAL_CALL ONavigationBarPeer::getProperty( const ::rtl::OUString& _rPropertyName ) throw( RuntimeException )
+     {
+-    	::vos::OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         Any aReturn;
+     	NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+diff --git a/fpicker/source/aqua/ControlHelper.cxx b/fpicker/source/aqua/ControlHelper.cxx
+index 6280dbf..fbebaff 100644
+--- fpicker/source/aqua/ControlHelper.cxx
++++ fpicker/source/aqua/ControlHelper.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _COM_SUN_STAR_UI_DIALOGS_TEMPLATEDESCRIPTION_HPP_
+ #include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -173,7 +173,7 @@ void ControlHelper::enableControl(sal_Int16 nControlId, sal_Bool bEnable)
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "enable", bEnable);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ControlRef pControl;
+ 
+@@ -195,7 +195,7 @@ OUString ControlHelper::getLabel(sal_Int16 nControlId)
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ControlRef pControl;
+ 
+@@ -218,7 +218,7 @@ void ControlHelper::setLabel( sal_Int16 nControlId, const CFStringRef aLabel )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "label", aLabel);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ControlRef pControl = getControl(nControlId);
+     if (NULL != pControl) {
+@@ -264,7 +264,7 @@ void ControlHelper::setValue( sal_Int16 nControlId, sal_Int16 nControlAction, co
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "controlAction", nControlAction);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ControlRef pControl;
+ 
+@@ -294,7 +294,7 @@ uno::Any ControlHelper::getValue(sal_Int16 nControlId, sal_Int16 nControlAction)
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "controlAction", nControlAction);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Any aRetval;
+ 
+     ControlRef pControl;
+@@ -326,7 +326,7 @@ void ControlHelper::handleStart(NavCBRecPtr callBackParms)
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     OSStatus status = noErr;
+ 
+@@ -350,7 +350,7 @@ void ControlHelper::handleCustomize(NavCBRecPtr callBackParms)
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (true == m_bUserPaneNeeded && NULL == m_pUserPane) {
+         createUserPane(callBackParms->window);
+@@ -388,7 +388,7 @@ void ControlHelper::handleEvent(NavCBRecPtr callBackParms, NavEventCallbackMessa
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "latestEvent", aLatestEvent);
+ 
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     NavEventData data = callBackParms->eventData;
+     NavEventDataInfo info = data.eventDataParms;
+diff --git a/fpicker/source/aqua/FilterHelper.cxx b/fpicker/source/aqua/FilterHelper.cxx
+index 5b39a17..28bf7cd 100644
+--- fpicker/source/aqua/FilterHelper.cxx
++++ fpicker/source/aqua/FilterHelper.cxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -274,7 +274,7 @@ void FilterHelper::SetCurFilter( const rtl::OUString& rFilter )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "filter", rFilter);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if(m_aCurrentFilter.equals(rFilter) == false)
+     {
+@@ -321,7 +321,7 @@ void FilterHelper::appendFilter(const ::rtl::OUString& aTitle, const ::rtl::OUSt
+ throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException ) {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle, "filter", aFilterString);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( FilterNameExists( aTitle ) ) {
+         throw com::sun::star::lang::IllegalArgumentException();
+@@ -363,7 +363,7 @@ throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::
+ 
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", OUStringToOString(sGroupTitle, RTL_TEXTENCODING_UTF8).getStr());
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     //add a separator if this is not the first group to be added
+     sal_Bool bPrependSeparator = m_pFilterList != NULL;
+diff --git a/fpicker/source/aqua/SalAquaFilePicker.cxx b/fpicker/source/aqua/SalAquaFilePicker.cxx
+index 22dd695..bbdeb19 100644
+--- fpicker/source/aqua/SalAquaFilePicker.cxx
++++ fpicker/source/aqua/SalAquaFilePicker.cxx
+@@ -76,8 +76,8 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #include <FPServiceInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -187,7 +187,7 @@ void SAL_CALL SalAquaFilePicker::addFilePickerListener( const uno::Reference<XFi
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_xListener = xListener;
+ 
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -198,7 +198,7 @@ void SAL_CALL SalAquaFilePicker::removeFilePickerListener( const uno::Reference<
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_xListener.clear();
+ 
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -213,7 +213,7 @@ void SAL_CALL SalAquaFilePicker::setTitle( const rtl::OUString& aTitle ) throw(
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     implsetTitle(aTitle);
+ 
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -223,7 +223,7 @@ sal_Int16 SAL_CALL SalAquaFilePicker::execute() throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Int16 retVal = 0;
+ 
+@@ -297,7 +297,7 @@ void SAL_CALL SalAquaFilePicker::setMultiSelectionMode( sal_Bool bMode ) throw(
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "multiSelectable?", bMode);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if (bMode == sal_True)
+         m_pDialogOptions.optionFlags |= kNavAllowMultipleFiles;
+@@ -312,7 +312,7 @@ throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "name", aName);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     setDefaultName(aName, false);
+ 
+@@ -343,7 +343,7 @@ uno::Sequence<rtl::OUString> SAL_CALL SalAquaFilePicker::getFiles() throw( uno::
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     AEDescList aFileList;
+     OSStatus status = noErr;
+@@ -480,7 +480,7 @@ throw( lang::IllegalArgumentException, uno::RuntimeException )
+ rtl::OUString SAL_CALL SalAquaFilePicker::getCurrentFilter() throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ //  OSL_TRACE( "GetCURRENTfilter" );
+ 
+@@ -572,7 +572,7 @@ uno::Sequence<sal_Int16> SAL_CALL SalAquaFilePicker::getSupportedImageFormats()
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Sequence< sal_Int16 > aFormats( 1 );
+ 
+     aFormats[0] = FilePreviewImageFormats::BITMAP;
+@@ -586,7 +586,7 @@ sal_Int32 SAL_CALL SalAquaFilePicker::getTargetColorDepth() throw( uno::RuntimeE
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // TODO return m_pImpl->getTargetColorDepth();
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -598,7 +598,7 @@ sal_Int32 SAL_CALL SalAquaFilePicker::getAvailableWidth() throw( uno::RuntimeExc
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // TODO return m_pImpl->getAvailableWidth();
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -610,7 +610,7 @@ sal_Int32 SAL_CALL SalAquaFilePicker::getAvailableHeight() throw( uno::RuntimeEx
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // TODO return m_pImpl->getAvailableHeight();
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -623,7 +623,7 @@ throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // TODO m_pImpl->setImage( aImageFormat, aImage );
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -643,7 +643,7 @@ sal_Bool SAL_CALL SalAquaFilePicker::setShowState( sal_Bool bShowState ) throw(
+ sal_Bool SAL_CALL SalAquaFilePicker::getShowState() throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+-    //  ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    //  osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     //  // TODO return m_pImpl->getShowState();
+     DBG_PRINT_EXIT(CLASS_NAME, __func__);
+@@ -746,7 +746,7 @@ void SAL_CALL SalAquaFilePicker::cancel() throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     OSStatus status = NavCustomControl(m_pDialog, kNavCtlCancel, NULL);
+     if (status != noErr) {
+diff --git a/fpicker/source/aqua/SalAquaFolderPicker.cxx b/fpicker/source/aqua/SalAquaFolderPicker.cxx
+index a8523a6..640af68 100644
+--- fpicker/source/aqua/SalAquaFolderPicker.cxx
++++ fpicker/source/aqua/SalAquaFolderPicker.cxx
+@@ -70,8 +70,8 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #include <FPServiceInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -154,7 +154,7 @@ sal_Int16 SAL_CALL SalAquaFolderPicker::execute() throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Int16 retVal = 0;
+ 
+@@ -190,7 +190,7 @@ void SAL_CALL SalAquaFolderPicker::setDisplayDirectory( const rtl::OUString& aDi
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "directory", aDirectory);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     m_sDisplayDirectory = aDirectory;
+ 
+@@ -201,7 +201,7 @@ rtl::OUString SAL_CALL SalAquaFolderPicker::getDisplayDirectory() throw( uno::Ru
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ::rtl::OUString aDirectory;
+ 
+@@ -297,7 +297,7 @@ void SAL_CALL SalAquaFolderPicker::cancel() throw( uno::RuntimeException )
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     OSStatus status = NavCustomControl(m_pDialog, kNavCtlCancel, NULL);
+     if (status != noErr) {
+diff --git a/fpicker/source/aqua/SalAquaPicker.cxx b/fpicker/source/aqua/SalAquaPicker.cxx
+index c30978e..63b253d 100644
+--- fpicker/source/aqua/SalAquaPicker.cxx
++++ fpicker/source/aqua/SalAquaPicker.cxx
+@@ -55,8 +55,8 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #include <FPServiceInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -333,7 +333,7 @@ void SAL_CALL SalAquaPicker::implsetTitle( const rtl::OUString& aTitle ) throw(
+ {
+     DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle);
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     m_pDialogOptions.windowTitle = CFStringCreateWithOUString ( aTitle );
+ 
+diff --git a/fpicker/source/aqua/SalAquaPicker.hxx b/fpicker/source/aqua/SalAquaPicker.hxx
+index 4e72cff..f3104e0 100644
+--- fpicker/source/aqua/SalAquaPicker.hxx
++++ fpicker/source/aqua/SalAquaPicker.hxx
+@@ -60,8 +60,8 @@
+ #include <com/sun/star/util/XCancellable.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _CONTROLHELPER_HXX_
+diff --git a/fpicker/source/aqua/resourceprovider.cxx b/fpicker/source/aqua/resourceprovider.cxx
+index a3efb9c..c6bef24 100644
+--- fpicker/source/aqua/resourceprovider.cxx
++++ fpicker/source/aqua/resourceprovider.cxx
+@@ -49,8 +49,8 @@
+ #include "resourceprovider.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -197,7 +197,7 @@ public:
+         String   aResString;
+         OUString aResOUString;
+ 
+-        const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+diff --git a/fpicker/source/office/OfficeFilePicker.cxx b/fpicker/source/office/OfficeFilePicker.cxx
+index 7658078..ef98125 100644
+--- fpicker/source/office/OfficeFilePicker.cxx
++++ fpicker/source/office/OfficeFilePicker.cxx
+@@ -102,8 +102,8 @@
+ #include <cppuhelper/typeprovider.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include "vos/mutex.hxx"
++#ifndef _OSL_MUTEX_HXX_
++#include "osl/mutex.hxx"
+ #endif
+ #ifndef _SV_APP_HXX
+ #include "vcl/svapp.hxx"
+@@ -599,7 +599,7 @@ Sequence< rtl::OUString > SAL_CALL SvtFilePicker::getFilesAsURIs() throw (Runtim
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( ! getDialog() )
+ 	{
+ 		Sequence< rtl::OUString > aEmpty;
+@@ -625,7 +625,7 @@ void SAL_CALL SvtFilePicker::setMultiSelectionMode( sal_Bool bMode ) throw( Runt
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_bMultiSelection = bMode;
+ }
+ 
+@@ -633,7 +633,7 @@ void SAL_CALL SvtFilePicker::setDefaultName( const rtl::OUString& aName ) throw(
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_aDefaultName = aName;
+ }
+ 
+@@ -642,7 +642,7 @@ void SAL_CALL SvtFilePicker::setDisplayDirectory( const rtl::OUString& aDirector
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_aDisplayDirectory = aDirectory;
+ }
+ 
+@@ -650,7 +650,7 @@ rtl::OUString SAL_CALL SvtFilePicker::getDisplayDirectory() throw( RuntimeExcept
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( getDialog() )
+     {
+         rtl::OUString aPath = getDialog()->GetPath();
+@@ -678,7 +678,7 @@ Sequence< rtl::OUString > SAL_CALL SvtFilePicker::getFiles() throw( RuntimeExcep
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( ! getDialog() )
+ 	{
+ 		Sequence< rtl::OUString > aEmpty;
+@@ -724,7 +724,7 @@ void SAL_CALL SvtFilePicker::setValue( sal_Int16 nElementID,
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( getDialog() )
+ 	{
+ 		::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+@@ -768,7 +768,7 @@ Any SAL_CALL SvtFilePicker::getValue( sal_Int16 nElementID, sal_Int16 nControlAc
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	Any      aAny;
+ 
+ 	// execute() called?
+@@ -804,7 +804,7 @@ void SAL_CALL SvtFilePicker::setLabel( sal_Int16 nLabelID, const rtl::OUString&
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( getDialog() )
+ 	{
+ 		::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+@@ -844,7 +844,7 @@ rtl::OUString SAL_CALL SvtFilePicker::getLabel( sal_Int16 nLabelID )
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	rtl::OUString aLabel;
+ 
+     if ( getDialog() )
+@@ -877,7 +877,7 @@ void SAL_CALL SvtFilePicker::enableControl( sal_Int16 nElementID, sal_Bool bEnab
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( getDialog() )
+ 	{
+ 		::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+@@ -919,7 +919,7 @@ void SAL_CALL SvtFilePicker::addFilePickerListener( const Reference< XFilePicker
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_xListener = xListener;
+ }
+ 
+@@ -928,7 +928,7 @@ void SAL_CALL SvtFilePicker::removeFilePickerListener( const Reference< XFilePic
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_xListener.clear();
+ }
+ 
+@@ -941,7 +941,7 @@ Sequence< sal_Int16 > SAL_CALL SvtFilePicker::getSupportedImageFormats()
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Sequence< sal_Int16 > aFormats( 1 );
+ 
+     aFormats[0] = FilePreviewImageFormats::BITMAP;
+@@ -954,7 +954,7 @@ sal_Int32 SAL_CALL SvtFilePicker::getTargetColorDepth() throw ( RuntimeException
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     sal_Int32 nDepth = 0;
+ 
+     if ( getDialog() )
+@@ -968,7 +968,7 @@ sal_Int32 SAL_CALL SvtFilePicker::getAvailableWidth() throw ( RuntimeException )
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     sal_Int32 nWidth = 0;
+ 
+     if ( getDialog() )
+@@ -982,7 +982,7 @@ sal_Int32 SAL_CALL SvtFilePicker::getAvailableHeight() throw ( RuntimeException
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     sal_Int32 nHeigth = 0;
+ 
+     if ( getDialog() )
+@@ -997,7 +997,7 @@ void SAL_CALL SvtFilePicker::setImage( sal_Int16 aImageFormat, const Any& rImage
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( getDialog() )
+         getDialog()->setImage( aImageFormat, rImage );
+ }
+@@ -1008,7 +1008,7 @@ sal_Bool SAL_CALL SvtFilePicker::setShowState( sal_Bool bShowState )
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     sal_Bool bRet = sal_False;
+ 
+     if ( getDialog() )
+@@ -1022,7 +1022,7 @@ sal_Bool SAL_CALL SvtFilePicker::getShowState() throw ( RuntimeException )
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     sal_Bool bRet = sal_False;
+ 
+     if ( getDialog() )
+@@ -1041,7 +1041,7 @@ void SAL_CALL SvtFilePicker::appendFilterGroup(	const ::rtl::OUString& sGroupTit
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// check the names
+ 	if ( FilterNameExists( aFilters ) )
+@@ -1068,7 +1068,7 @@ void SAL_CALL SvtFilePicker::appendFilter( const rtl::OUString& aTitle,
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	// check the name
+ 	if ( FilterNameExists( aTitle ) )
+ 		// TODO: a more precise exception message
+@@ -1087,7 +1087,7 @@ void SAL_CALL SvtFilePicker::setCurrentFilter( const rtl::OUString& aTitle )
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( ! FilterNameExists( aTitle ) )
+         throw IllegalArgumentException();
+ 
+@@ -1103,7 +1103,7 @@ rtl::OUString SAL_CALL SvtFilePicker::getCurrentFilter()
+ {
+ 	checkAlive();
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	rtl::OUString aFilter = getDialog() ? rtl::OUString( getDialog()->GetCurFilter() ) :
+                                             rtl::OUString( m_aCurrentFilter );
+ 	return aFilter;
+diff --git a/fpicker/source/office/commonpicker.cxx b/fpicker/source/office/commonpicker.cxx
+index ea7ffd5..50dd5d1 100644
+--- fpicker/source/office/commonpicker.cxx
++++ fpicker/source/office/commonpicker.cxx
+@@ -47,8 +47,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_ 
+ #include <toolkit/helper/vclunohelper.hxx>
+@@ -148,7 +148,7 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	void SAL_CALL OCommonPicker::disposing()
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		stopWindowListening();
+ 
+@@ -179,7 +179,7 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	void SAL_CALL OCommonPicker::disposing( const EventObject& _rSource ) throw (RuntimeException)
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		sal_Bool bDialogDying = _rSource.Source == m_xWindow;
+ 		sal_Bool bParentDying = _rSource.Source == m_xDialogParent;
+ 
+@@ -235,7 +235,7 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	sal_Bool OCommonPicker::createPicker()
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		if ( !m_pDlg )
+ 		{
+@@ -288,7 +288,7 @@ namespace svt
+ 	{
+ 		checkAlive();
+ 
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( createPicker() )
+ 		{
+ 			::svt::OControlAccess aAccess( m_pDlg, m_pDlg->GetView() );
+@@ -301,7 +301,7 @@ namespace svt
+ 	{
+ 		checkAlive();
+ 
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( createPicker() )
+ 		{
+ 			::svt::OControlAccess aAccess( m_pDlg, m_pDlg->GetView() );
+@@ -318,7 +318,7 @@ namespace svt
+ 	{
+ 		checkAlive();
+ 
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( createPicker() )
+ 		{
+ 			::svt::OControlAccess aAccess( m_pDlg, m_pDlg->GetView() );
+@@ -333,7 +333,7 @@ namespace svt
+ 	{
+ 		checkAlive();
+ 
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( createPicker() )
+ 		{
+ 			::svt::OControlAccess aAccess( m_pDlg, m_pDlg->GetView() );
+@@ -348,7 +348,7 @@ namespace svt
+ 	{
+ 		checkAlive();
+ 
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( createPicker() )
+ 		{
+ 			::svt::OControlAccess aAccess( m_pDlg, m_pDlg->GetView() );
+@@ -363,7 +363,7 @@ namespace svt
+ 	{
+ 		checkAlive();
+ 
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( createPicker() )
+ 		{
+ 			::svt::OControlAccess aAccess( m_pDlg, m_pDlg->GetView() );
+@@ -378,14 +378,14 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	void SAL_CALL OCommonPicker::setTitle( const rtl::OUString& _rTitle ) throw( RuntimeException )
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		m_aTitle = _rTitle;
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+ 	sal_Int16 OCommonPicker::execute() throw (RuntimeException)
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         prepareDialog();
+ 
+diff --git a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+index 6097020..ae9c04b 100644
+--- fpicker/source/unx/gnome/SalGtkFilePicker.cxx
++++ fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+@@ -76,8 +76,8 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #include <FPServiceInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -405,14 +405,14 @@ SalGtkFilePicker::SalGtkFilePicker( const uno::Reference<lang::XMultiServiceFact
+ void SAL_CALL SalGtkFilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
+ 	throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_xListener = xListener;
+ }
+ 
+ void SAL_CALL SalGtkFilePicker::removeFilePickerListener( const uno::Reference<XFilePickerListener>& )
+ 	throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_xListener.clear();
+ }
+ 
+@@ -728,7 +728,7 @@ void SAL_CALL SalGtkFilePicker::appendFilter( const rtl::OUString& aTitle, const
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( FilterNameExists( aTitle ) )
+ 	        throw IllegalArgumentException();
+@@ -749,7 +749,7 @@ void SAL_CALL SalGtkFilePicker::setCurrentFilter( const rtl::OUString& aTitle )
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OSL_TRACE( "Setting current filter to %s\n", 
+ 		OUStringToOString( aTitle, RTL_TEXTENCODING_UTF8 ).getStr() );
+@@ -810,7 +810,7 @@ void SalGtkFilePicker::UpdateFilterfromUI()
+ rtl::OUString SAL_CALL SalGtkFilePicker::getCurrentFilter() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OSL_TRACE( "GetCURRENTfilter\n" );
+ 
+@@ -830,7 +830,7 @@ void SAL_CALL SalGtkFilePicker::appendFilterGroup( const rtl::OUString& /*sGroup
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO m_pImpl->appendFilterGroup( sGroupTitle, aFilters );
+ 	// check the names
+@@ -860,7 +860,7 @@ void SAL_CALL SalGtkFilePicker::appendFilterGroup( const rtl::OUString& /*sGroup
+ void SAL_CALL SalGtkFilePicker::setMultiSelectionMode( sal_Bool bMode ) throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	gtk_file_chooser_set_select_multiple( GTK_FILE_CHOOSER(m_pDialog), bMode );
+ }
+@@ -869,7 +869,7 @@ void SAL_CALL SalGtkFilePicker::setDefaultName( const rtl::OUString& aName )
+ 	throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OString aStr = OUStringToOString( aName, RTL_TEXTENCODING_UTF8 );
+     GtkFileChooserAction eAction = gtk_file_chooser_get_action( GTK_FILE_CHOOSER( m_pDialog ) );
+@@ -906,7 +906,7 @@ uno::Sequence<rtl::OUString> SAL_CALL SalGtkFilePicker::getFiles() throw( uno::R
+ uno::Sequence<rtl::OUString> SAL_CALL SalGtkFilePicker::getFilesAsURIs() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	GSList* pPathList = gtk_file_chooser_get_uris( GTK_FILE_CHOOSER(m_pDialog) );
+ 	
+@@ -1045,7 +1045,7 @@ sal_Int16 SAL_CALL SalGtkFilePicker::execute() throw( uno::RuntimeException )
+ {
+ 	OSL_TRACE( "1: HERE WE ARE\n");
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int16 retVal = 0;
+ 
+@@ -1328,7 +1328,7 @@ void SAL_CALL SalGtkFilePicker::setValue( sal_Int16 nControlId, sal_Int16 nContr
+ 	throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OSL_TRACE( "SETTING VALUE %d\n", nControlAction );
+ 	GType tType;
+@@ -1356,7 +1356,7 @@ uno::Any SAL_CALL SalGtkFilePicker::getValue( sal_Int16 nControlId, sal_Int16 nC
+ 	throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	uno::Any aRetval;
+ 
+ 	GType tType;
+@@ -1380,7 +1380,7 @@ void SAL_CALL SalGtkFilePicker::enableControl( sal_Int16 nControlId, sal_Bool bE
+ throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	GtkWidget *pWidget;
+ 
+@@ -1408,7 +1408,7 @@ void SAL_CALL SalGtkFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUS
+ 	throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OString aTxt = OUStringToOString( aLabel, RTL_TEXTENCODING_UTF8 );
+ 
+@@ -1431,7 +1431,7 @@ rtl::OUString SAL_CALL SalGtkFilePicker::getLabel( sal_Int16 nControlId )
+ 	throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	GType tType;
+ 	OString aTxt;
+@@ -1456,7 +1456,7 @@ rtl::OUString SAL_CALL SalGtkFilePicker::getLabel( sal_Int16 nControlId )
+ uno::Sequence<sal_Int16> SAL_CALL SalGtkFilePicker::getSupportedImageFormats() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO return m_pImpl->getSupportedImageFormats();
+ 	return 0;
+@@ -1465,7 +1465,7 @@ uno::Sequence<sal_Int16> SAL_CALL SalGtkFilePicker::getSupportedImageFormats() t
+ sal_Int32 SAL_CALL SalGtkFilePicker::getTargetColorDepth() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO return m_pImpl->getTargetColorDepth();
+ 	return 0;
+@@ -1474,7 +1474,7 @@ sal_Int32 SAL_CALL SalGtkFilePicker::getTargetColorDepth() throw( uno::RuntimeEx
+ sal_Int32 SAL_CALL SalGtkFilePicker::getAvailableWidth() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO return m_pImpl->getAvailableWidth();
+ 	return m_PreviewImageWidth;
+@@ -1483,7 +1483,7 @@ sal_Int32 SAL_CALL SalGtkFilePicker::getAvailableWidth() throw( uno::RuntimeExce
+ sal_Int32 SAL_CALL SalGtkFilePicker::getAvailableHeight() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO return m_pImpl->getAvailableHeight();
+ 	return m_PreviewImageHeight;
+@@ -1493,7 +1493,7 @@ void SAL_CALL SalGtkFilePicker::setImage( sal_Int16 /*aImageFormat*/, const uno:
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO m_pImpl->setImage( aImageFormat, aImage );
+ }
+@@ -1592,7 +1592,7 @@ void SalGtkFilePicker::update_preview_cb( GtkFileChooser *file_chooser, SalGtkFi
+ sal_Bool SAL_CALL SalGtkFilePicker::setShowState( sal_Bool bShowState ) throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );   
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );   
+ 
+ 	// TODO return m_pImpl->setShowState( bShowState );
+ 	if( bShowState != mbPreviewState )
+@@ -1625,7 +1625,7 @@ sal_Bool SAL_CALL SalGtkFilePicker::setShowState( sal_Bool bShowState ) throw( u
+ sal_Bool SAL_CALL SalGtkFilePicker::getShowState() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO return m_pImpl->getShowState();
+ 	return mbPreviewState;
+@@ -1782,7 +1782,7 @@ void SalGtkFilePicker::preview_toggled_cb( GtkObject *cb, SalGtkFilePicker* pobj
+ void SAL_CALL SalGtkFilePicker::cancel() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO m_pImpl->cancel();  
+ }
+diff --git a/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx b/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+index fcf112d..dba0a6c 100644
+--- fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
++++ fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+@@ -73,8 +73,8 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #include <FPServiceInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -148,7 +148,7 @@ void SAL_CALL SalGtkFolderPicker::setDisplayDirectory( const rtl::OUString& aDir
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OString aTxt = unicodetouri( aDirectory );
+ 
+@@ -164,7 +164,7 @@ void SAL_CALL SalGtkFolderPicker::setDisplayDirectory( const rtl::OUString& aDir
+ rtl::OUString SAL_CALL SalGtkFolderPicker::getDisplayDirectory() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	gchar* pCurrentFolder = 
+ 		gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( m_pDialog ) );
+@@ -194,7 +194,7 @@ void SAL_CALL SalGtkFolderPicker::setDescription( const rtl::OUString& rDescript
+ void SAL_CALL SalGtkFolderPicker::setTitle( const rtl::OUString& aTitle ) throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	::rtl::OString aWindowTitle = OUStringToOString( aTitle, RTL_TEXTENCODING_UTF8 );
+ 	gtk_window_set_title( GTK_WINDOW( m_pDialog ), aWindowTitle.getStr() );
+@@ -204,7 +204,7 @@ sal_Int16 SAL_CALL SalGtkFolderPicker::execute() throw( uno::RuntimeException )
+ {
+ 	OSL_TRACE( "1: HERE WE ARE\n");
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int16 retVal = 0;
+ 
+@@ -233,7 +233,7 @@ sal_Int16 SAL_CALL SalGtkFolderPicker::execute() throw( uno::RuntimeException )
+ void SAL_CALL SalGtkFolderPicker::cancel() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// TODO m_pImpl->cancel();  
+ }
+diff --git a/fpicker/source/unx/gnome/SalGtkPicker.cxx b/fpicker/source/unx/gnome/SalGtkPicker.cxx
+index ca807ca..6ec23cc 100644
+--- fpicker/source/unx/gnome/SalGtkPicker.cxx
++++ fpicker/source/unx/gnome/SalGtkPicker.cxx
+@@ -60,8 +60,8 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #include <FPServiceInfo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -167,7 +167,7 @@ void SAL_CALL SalGtkPicker::implsetDisplayDirectory( const rtl::OUString& aDirec
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OString aTxt = unicodetouri(aDirectory);
+ 
+@@ -183,7 +183,7 @@ void SAL_CALL SalGtkPicker::implsetDisplayDirectory( const rtl::OUString& aDirec
+ rtl::OUString SAL_CALL SalGtkPicker::implgetDisplayDirectory() throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	gchar* pCurrentFolder = 
+ 		gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( m_pDialog ) );
+@@ -196,7 +196,7 @@ rtl::OUString SAL_CALL SalGtkPicker::implgetDisplayDirectory() throw( uno::Runti
+ void SAL_CALL SalGtkPicker::implsetTitle( const rtl::OUString& aTitle ) throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	::rtl::OString aWindowTitle = OUStringToOString( aTitle, RTL_TEXTENCODING_UTF8 );
+ 	gtk_window_set_title( GTK_WINDOW( m_pDialog ), aWindowTitle.getStr() );
+diff --git a/fpicker/source/unx/gnome/resourceprovider.cxx b/fpicker/source/unx/gnome/resourceprovider.cxx
+index 7e6535e..d7373d7 100644
+--- fpicker/source/unx/gnome/resourceprovider.cxx
++++ fpicker/source/unx/gnome/resourceprovider.cxx
+@@ -52,8 +52,8 @@
+ #include "resourceprovider.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -200,7 +200,7 @@ public:
+         String   aResString;
+         OUString aResOUString;
+ 
+-        const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+diff --git a/fpicker/source/win32/misc/resourceprovider.cxx b/fpicker/source/win32/misc/resourceprovider.cxx
+index b972a43..a4432c7 100644
+--- fpicker/source/win32/misc/resourceprovider.cxx
++++ fpicker/source/win32/misc/resourceprovider.cxx
+@@ -52,8 +52,8 @@
+ #include "resourceprovider.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -151,7 +151,7 @@ public:
+ 
+     CResourceProvider_Impl( )
+     {
+-        const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		com::sun::star::lang::Locale aLoc( Application::GetSettings().GetUILocale() );
+         m_ResMgr = new SimpleResMgr( CREATEVERSIONRESMGR_NAME( fps_office ), aLoc );
+diff --git a/framework/inc/pch/precompiled_framework.hxx b/framework/inc/pch/precompiled_framework.hxx
+index 4baf72a..dfb58b7 100644
+--- framework/inc/pch/precompiled_framework.hxx
++++ framework/inc/pch/precompiled_framework.hxx
+@@ -493,7 +493,7 @@
+ #include "vcl/window.hxx"
+ #include "vcl/wintypes.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "osl/thread.hxx"
+ #include "vos/timer.hxx"
+diff --git a/framework/inc/threadhelp/lockhelper.hxx b/framework/inc/threadhelp/lockhelper.hxx
+index d065d91..01cd4b4 100644
+--- framework/inc/threadhelp/lockhelper.hxx
++++ framework/inc/threadhelp/lockhelper.hxx
+@@ -68,8 +68,8 @@
+ #include <osl/mutex.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _VCL_SOLARMUTEX_HXX_
++#include <vcl/solarmutex.hxx>
+ #endif
+ 
+ //_________________________________________________________________________________________________________________
+@@ -141,7 +141,7 @@ class LockHelper : public  IMutex
+         //-------------------------------------------------------------------------------------------------------------
+         //  ctor/dtor
+         //-------------------------------------------------------------------------------------------------------------
+-                 LockHelper( ::vos::IMutex* pSolarMutex = NULL );
++                 LockHelper( osl::SolarMutex* pSolarMutex = NULL );
+         virtual ~LockHelper(                                   );
+ 
+         //-------------------------------------------------------------------------------------------------------------
+@@ -162,7 +162,7 @@ class LockHelper : public  IMutex
+         //-------------------------------------------------------------------------------------------------------------
+         //  something else
+         //-------------------------------------------------------------------------------------------------------------
+-        static LockHelper&  getGlobalLock       ( ::vos::IMutex* pSolarMutex = NULL );
++        static LockHelper&  getGlobalLock       ( osl::SolarMutex* pSolarMutex = NULL );
+         ::osl::Mutex&       getShareableOslMutex(                                   );
+ 
+     //-------------------------------------------------------------------------------------------------------------
+@@ -194,7 +194,7 @@ class LockHelper : public  IMutex
+ 
+         mutable FairRWLock*     m_pFairRWLock           ;
+         mutable ::osl::Mutex*   m_pOwnMutex             ;
+-        mutable ::vos::IMutex*  m_pSolarMutex           ;
++        mutable osl::SolarMutex*m_pSolarMutex         ;
+         mutable ::osl::Mutex*   m_pShareableOslMutex    ;
+         mutable sal_Bool        m_bDummySolarMutex      ;
+ };
+diff --git a/framework/inc/threadhelp/threadhelpbase.hxx b/framework/inc/threadhelp/threadhelpbase.hxx
+index 0a82071..8e24f6f 100644
+--- framework/inc/threadhelp/threadhelpbase.hxx
++++ framework/inc/threadhelp/threadhelpbase.hxx
+@@ -87,7 +87,7 @@ struct ThreadHelpBase
+     //  public methods
+     //-------------------------------------------------------------------------------------------------------------
+     public:
+-        ThreadHelpBase( ::vos::IMutex* pSolarMutex = NULL )
++        ThreadHelpBase( osl::SolarMutex* pSolarMutex = NULL )
+                 :   m_aLock( pSolarMutex )
+         {
+         }
+diff --git a/framework/source/classes/fwkresid.cxx b/framework/source/classes/fwkresid.cxx
+index 478792b..6a99d48 100644
+--- framework/source/classes/fwkresid.cxx
++++ framework/source/classes/fwkresid.cxx
+@@ -42,8 +42,8 @@
+ #include <tools/string.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -65,7 +65,7 @@ ResMgr*	FwkResId::GetResManager()
+         aBuf.append( "fwe" );
+         aBuf.append( sal_Int32( SUPD ) );  // current version number
+         
+-		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		pResMgr = ResMgr::CreateResMgr( aBuf.getStr() );
+ 	}
+ 	
+diff --git a/framework/source/classes/imagewrapper.cxx b/framework/source/classes/imagewrapper.cxx
+index 661a1fc..c0dcd6e 100644
+--- framework/source/classes/imagewrapper.cxx
++++ framework/source/classes/imagewrapper.cxx
+@@ -124,7 +124,7 @@ throw ( RuntimeException )
+ // XBitmap
+ com::sun::star::awt::Size SAL_CALL ImageWrapper::getSize() throw ( RuntimeException )
+ {
+-	vos::OGuard	aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+ 	BitmapEx	aBitmapEx( m_aImage.GetBitmapEx() );
+ 	Size		aBitmapSize( aBitmapEx.GetSizePixel() );
+@@ -134,7 +134,7 @@ com::sun::star::awt::Size SAL_CALL ImageWrapper::getSize() throw ( RuntimeExcept
+ 
+ Sequence< sal_Int8 > SAL_CALL ImageWrapper::getDIB() throw ( RuntimeException )
+ {
+-	vos::OGuard	aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 	
+ 	SvMemoryStream aMem;
+ 	aMem << m_aImage.GetBitmapEx().GetBitmap();
+@@ -143,7 +143,7 @@ Sequence< sal_Int8 > SAL_CALL ImageWrapper::getDIB() throw ( RuntimeException )
+ 
+ Sequence< sal_Int8 > SAL_CALL ImageWrapper::getMaskDIB() throw ( RuntimeException )
+ {
+-	vos::OGuard	aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 	BitmapEx 	aBmpEx( m_aImage.GetBitmapEx() );
+ 
+ 	if ( aBmpEx.IsAlpha() )
+diff --git a/framework/source/classes/menumanager.cxx b/framework/source/classes/menumanager.cxx
+index 593f59e..a4f182e 100644
+--- framework/source/classes/menumanager.cxx
++++ framework/source/classes/menumanager.cxx
+@@ -143,7 +143,7 @@
+ 
+ #include <vcl/svapp.hxx>
+ #include <vcl/window.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -162,7 +162,6 @@
+ //_________________________________________________________________________________________________________________
+ 
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::beans;
+@@ -781,7 +780,7 @@ throw ( RuntimeException )
+ 
+ 	if ( pStatusChangedMenu )
+ 	{
+-		OGuard	aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		{
+ 			ResetableGuard aGuard( m_aLock );
+ 
+diff --git a/framework/source/classes/rootactiontriggercontainer.cxx b/framework/source/classes/rootactiontriggercontainer.cxx
+index 75d36da..17d2123 100644
+--- framework/source/classes/rootactiontriggercontainer.cxx
++++ framework/source/classes/rootactiontriggercontainer.cxx
+@@ -227,7 +227,7 @@ throw ( RuntimeException )
+ 	{
+ 		if ( m_pMenu )
+ 		{
+-			vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 			return m_pMenu->GetItemCount();
+ 		}
+ 		else
+@@ -263,7 +263,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ {
+ 	if ( m_pMenu )
+ 	{
+-		vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 		return ( m_pMenu->GetItemCount() > 0 );
+ 	}
+ 
+diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx
+index b3932c7..0efb88b 100644
+--- framework/source/dispatch/closedispatcher.cxx
++++ framework/source/dispatch/closedispatcher.cxx
+@@ -95,7 +95,7 @@
+ 
+ #include <vcl/window.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ //_______________________________________________
+ // namespace
+@@ -624,7 +624,7 @@ css::uno::Reference< css::frame::XFrame > CloseDispatcher::static_impl_searchRig
+             //     Attention ! Checking Window->GetParent() isnt the right approach here.
+             //     Because sometimes VCL create "implicit border windows" as parents even we created
+             //     a simple XWindow using the toolkit only .-(
+-            ::vos::OGuard aSolarLock(&Application::GetSolarMutex());
++            osl::SolarMutexGuard aSolarLock(&Application::GetSolarMutex());
+             Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+             if (
+                 (pWindow				  ) &&
+diff --git a/framework/source/dispatch/helpagentdispatcher.cxx b/framework/source/dispatch/helpagentdispatcher.cxx
+index e72fbff..2e261f1 100644
+--- framework/source/dispatch/helpagentdispatcher.cxx
++++ framework/source/dispatch/helpagentdispatcher.cxx
+@@ -269,7 +269,7 @@ void HelpAgentDispatcher::implts_acceptCurrentURL()
+ 	// show the right help content
+ 	// SOLAR SAFE ->
+ 	{
+-		::vos::OGuard aSolarLock(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 		Help* pHelp = Application::GetHelp();
+ 		if (pHelp)
+ 			pHelp->Start(sAcceptedURL, NULL);
+@@ -306,7 +306,7 @@ void HelpAgentDispatcher::implts_stopTimer()
+ 	// Timer access needs no "own lock" ! It lives if we live ...
+ 	// But it requires locking of the solar mutex ... because it's a vcl based timer.
+ 	{
+-		::vos::OGuard aSolarLock(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 		if (! m_aTimer.IsActive())
+ 			return;
+ 		m_aTimer.Stop();
+@@ -321,7 +321,7 @@ void HelpAgentDispatcher::implts_startTimer()
+ 	// Timer access needs no "own lock" ! It lives if we live ...
+ 	// But it requires locking of the solar mutex ... because it's a vcl based timer.
+ 	{
+-		::vos::OGuard aSolarLock(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 		if (m_aTimer.IsActive())
+ 			return;
+ 	}
+@@ -342,7 +342,7 @@ void HelpAgentDispatcher::implts_startTimer()
+ 	// Timer access needs no "own lock" ! It lives if we live ...
+ 	// But it requires locking of the solar mutex ... because it's a vcl based timer.
+ 	{
+-		::vos::OGuard aSolarLock(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 		m_aTimer.SetTimeout(nTime*1000); // sec => ms !
+ 		m_aTimer.Start();
+ 	}
+@@ -451,7 +451,7 @@ css::uno::Reference< css::awt::XWindow > HelpAgentDispatcher::implts_ensureAgent
+ 	::svt::HelpAgentWindow* pAgentWindow = 0;
+ 	// SOLAR SAFE ->
+ 	{
+-		::vos::OGuard aSolarLock(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 		// create the agent window
+ 		Window*	pContainerWindow = VCLUnoHelper::GetWindow(xContainerWindow);
+ 				pAgentWindow 	 = new ::svt::HelpAgentWindow(pContainerWindow);
+@@ -471,7 +471,7 @@ css::uno::Reference< css::awt::XWindow > HelpAgentDispatcher::implts_ensureAgent
+ 
+ 	// SOLAR SAFE ->
+ 	{
+-		::vos::OGuard aSolarLock(Application::GetSolarMutex());
++		osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 		// establish callback for our internal used timer.
+ 		// Note: Its only active, if the timer will be started ...
+ 		m_aTimer.SetTimeoutHdl(LINK(this, HelpAgentDispatcher, implts_timerExpired));
+diff --git a/framework/source/dispatch/menudispatcher.cxx b/framework/source/dispatch/menudispatcher.cxx
+index 870a56d..c23efb6 100644
+--- framework/source/dispatch/menudispatcher.cxx
++++ framework/source/dispatch/menudispatcher.cxx
+@@ -110,7 +110,7 @@
+ #include <vcl/svapp.hxx>
+ #include <tools/resmgr.hxx>
+ #include <tools/rcid.h>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <toolkit/helper/vclunohelper.hxx>
+ 
+ //_________________________________________________________________________________________________________________
+@@ -136,7 +136,6 @@ using namespace ::com::sun::star::util			;
+ using namespace ::cppu							;
+ using namespace ::osl							;
+ using namespace ::rtl							;
+-using namespace ::vos							;
+ 
+ //_________________________________________________________________________________________________________________
+ //	non exported const
+@@ -243,7 +242,7 @@ void SAL_CALL MenuDispatcher::dispatch(    const   URL&                        /
+             Accelerator*    pAccel        = NULL;
+ 
+ 			aGuard.unlock();
+-			OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 			{
+ 				// execute not thread safe VCL code
+ 				if ( nResIdIndex >= 0 )
+@@ -364,7 +363,7 @@ void SAL_CALL MenuDispatcher::dispatch(    const   URL&                        /
+ 
+ 				try
+ 				{
+-					OGuard aSolarGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 					{
+ 						pNewMenuBar = aMenuConfiguration.CreateMenuBarFromConfiguration( xInputStream );
+ 					}
+@@ -400,7 +399,7 @@ void SAL_CALL MenuDispatcher::dispatch(    const   URL&                        /
+ 
+ 			if ( xOutputStream.is() && m_pMenuManager )
+ 			{
+-				OGuard aSolarGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 				{
+ 					try
+ 					{
+@@ -474,7 +473,7 @@ void SAL_CALL MenuDispatcher::frameAction( const FrameActionEvent& aEvent ) thro
+ 		{
+ 			uno::Reference< ::com::sun::star::awt::XWindow >xContainerWindow = xFrame->getContainerWindow();
+ 
+-			OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 			{
+ 				Window* pWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ 				while ( pWindow && !pWindow->IsSystemWindow() )
+@@ -607,7 +606,7 @@ sal_Bool MenuDispatcher::impl_setMenuBar( MenuBar* pMenuBar, sal_Bool bMenuFromR
+ 		Window* pWindow = NULL;
+ 
+ 		// Use SolarMutex for threadsafe code too!
+-		OGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 		{
+ 			pWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ 			while ( pWindow && !pWindow->IsSystemWindow() )
+diff --git a/framework/source/dispatch/popupmenudispatcher.cxx b/framework/source/dispatch/popupmenudispatcher.cxx
+index e053742..af535d4 100644
+--- framework/source/dispatch/popupmenudispatcher.cxx
++++ framework/source/dispatch/popupmenudispatcher.cxx
+@@ -95,7 +95,7 @@
+ //_________________________________________________________________________________________________________________
+ 
+ #include <ucbhelper/content.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <rtl/ustrbuf.hxx>
+ #include <vcl/svapp.hxx>
+ 
+@@ -116,7 +116,6 @@ using namespace ::com::sun::star::util			;
+ using namespace ::cppu							;
+ using namespace ::osl							;
+ using namespace ::rtl							;
+-using namespace ::vos							;
+ 
+ //_________________________________________________________________________________________________________________
+ //	non exported const
+diff --git a/framework/source/dispatch/windowcommanddispatch.cxx b/framework/source/dispatch/windowcommanddispatch.cxx
+index c8df2c0..6b27f54 100755
+--- framework/source/dispatch/windowcommanddispatch.cxx
++++ framework/source/dispatch/windowcommanddispatch.cxx
+@@ -58,7 +58,7 @@
+ #include <vcl/window.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/cmdevt.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <toolkit/helper/vclunohelper.hxx>
+ 
+ //_______________________________________________
+@@ -112,7 +112,7 @@ void WindowCommandDispatch::impl_startListening()
+         return;
+ 
+     // SYNCHRONIZED ->
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 
+     Window* pWindow = VCLUnoHelper::GetWindow(xWindow);
+     if ( ! pWindow)
+diff --git a/framework/source/helper/actiontriggerhelper.cxx b/framework/source/helper/actiontriggerhelper.cxx
+index 1c95007..23b1e50 100644
+--- framework/source/helper/actiontriggerhelper.cxx
++++ framework/source/helper/actiontriggerhelper.cxx
+@@ -63,8 +63,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _STREAM_HXX
+ #include <tools/stream.hxx>
+@@ -80,7 +80,6 @@
+ const USHORT START_ITEMID = 1000;
+ 
+ using namespace rtl;
+-using namespace vos;
+ using namespace com::sun::star::awt;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+@@ -167,7 +166,7 @@ void InsertSubMenuItems( Menu* pSubMenu, USHORT& nItemId, Reference< XIndexConta
+ 					if ( IsSeparator( xPropSet ))
+ 					{
+ 						// Separator
+-						OGuard aGuard( Application::GetSolarMutex() );
++						osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 						pSubMenu->InsertSeparator();
+ 					}
+ 					else
+@@ -183,7 +182,7 @@ void InsertSubMenuItems( Menu* pSubMenu, USHORT& nItemId, Reference< XIndexConta
+ 						USHORT nNewItemId = nItemId++;
+ 						GetMenuItemAttributes( xPropSet, aLabel, aCommandURL, aHelpURL, xBitmap, xSubContainer );
+ 
+-						OGuard aGuard( Application::GetSolarMutex() );
++						osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 						{
+ 							// insert new menu item
+ 							sal_Int32 nIndex = aCommandURL.indexOf( aSlotURL );
+@@ -372,7 +371,7 @@ Reference< XIndexContainer > CreateActionTriggerContainer( const Reference< XInd
+ 
+ void FillActionTriggerContainerWithMenu( const Menu* pMenu, Reference< XIndexContainer >& rActionTriggerContainer )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	for ( USHORT nPos = 0; nPos < pMenu->GetItemCount(); nPos++ )
+ 	{
+diff --git a/framework/source/helper/persistentwindowstate.cxx b/framework/source/helper/persistentwindowstate.cxx
+index 5ca0c57..4c68a7a 100644
+--- framework/source/helper/persistentwindowstate.cxx
++++ framework/source/helper/persistentwindowstate.cxx
+@@ -339,7 +339,7 @@ void PersistentWindowState::implst_setWindowStateOnConfig(const css::uno::Refere
+     if (xWindow.is())
+     {
+         // SOLAR SAFE -> ------------------------
+-        ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++        osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+         
+         Window* pWindow = VCLUnoHelper::GetWindow(xWindow);
+         // check for system window is neccessary to guarantee correct pointer cast!
+@@ -374,7 +374,7 @@ void PersistentWindowState::implst_setWindowStateOnWindow(const css::uno::Refere
+         return;
+ 
+     // SOLAR SAFE -> ------------------------
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+         
+     Window* pWindow = VCLUnoHelper::GetWindow(xWindow);
+     if (!pWindow)
+diff --git a/framework/source/helper/popupmenucontrollerbase.cxx b/framework/source/helper/popupmenucontrollerbase.cxx
+index 0ce128c..ae692f4 100644
+--- framework/source/helper/popupmenucontrollerbase.cxx
++++ framework/source/helper/popupmenucontrollerbase.cxx
+@@ -152,7 +152,7 @@ void PopupMenuControllerBase::resetPopupMenu( com::sun::star::uno::Reference< co
+          pPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+          if ( pPopupMenu )
+          {
+-            vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+             PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+             pVCLPopupMenu->Clear();
+@@ -243,7 +243,7 @@ void SAL_CALL PopupMenuControllerBase::select( const css::awt::MenuEvent& rEvent
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+             }
+diff --git a/framework/source/helper/propertysetcontainer.cxx b/framework/source/helper/propertysetcontainer.cxx
+index d5a9422..5015cd1 100644
+--- framework/source/helper/propertysetcontainer.cxx
++++ framework/source/helper/propertysetcontainer.cxx
+@@ -49,7 +49,6 @@
+ #define WRONG_TYPE_EXCEPTION	"Only XPropertSet allowed!"
+ 
+ using namespace rtl;
+-using namespace vos;
+ using namespace cppu;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::container;
+diff --git a/framework/source/helper/statusindicatorfactory.cxx b/framework/source/helper/statusindicatorfactory.cxx
+index 49c21da..a00beeb 100644
+--- framework/source/helper/statusindicatorfactory.cxx
++++ framework/source/helper/statusindicatorfactory.cxx
+@@ -131,8 +131,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ //-----------------------------------------------
+diff --git a/framework/source/helper/vclstatusindicator.cxx b/framework/source/helper/vclstatusindicator.cxx
+index b9d09bd..d70544f 100644
+--- framework/source/helper/vclstatusindicator.cxx
++++ framework/source/helper/vclstatusindicator.cxx
+@@ -112,7 +112,7 @@ void SAL_CALL VCLStatusIndicator::start(const ::rtl::OUString& sText ,
+     // <- SAFE ----------------------------------
+     
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+     
+     Window* pParentWindow = VCLUnoHelper::GetWindow(xParentWindow);
+     if (!m_pStatusBar)
+@@ -146,7 +146,7 @@ void SAL_CALL VCLStatusIndicator::reset()
+     throw(css::uno::RuntimeException)
+ {
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+     if (m_pStatusBar)
+     {
+         m_pStatusBar->SetProgressValue(0);
+@@ -169,7 +169,7 @@ void SAL_CALL VCLStatusIndicator::end()
+     // <- SAFE ----------------------------------
+     
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+     if (m_pStatusBar)
+     {
+         m_pStatusBar->EndProgressMode();
+@@ -193,7 +193,7 @@ void SAL_CALL VCLStatusIndicator::setText(const ::rtl::OUString& sText)
+     // <- SAFE ----------------------------------
+     
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+     if (m_pStatusBar)
+         m_pStatusBar->SetText(sText);
+     aSolarLock.clear();
+@@ -224,7 +224,7 @@ void SAL_CALL VCLStatusIndicator::setValue(sal_Int32 nValue)
+             ((nValue*100) / ::std::max(nRange,(sal_Int32)1)), (sal_Int32)100));
+     
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock(Application::GetSolarMutex());
+     if (m_pStatusBar)
+         m_pStatusBar->SetProgressValue(nPercent);
+     aSolarLock.clear();
+diff --git a/framework/source/inc/pattern/window.hxx b/framework/source/inc/pattern/window.hxx
+index bb07569..c46e1c3 100644
+--- framework/source/inc/pattern/window.hxx
++++ framework/source/inc/pattern/window.hxx
+@@ -77,8 +77,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _RTL_USTRING_HXX_
+@@ -108,7 +108,7 @@ static ::rtl::OUString getWindowState(const css::uno::Reference< css::awt::XWind
+         return ::rtl::OUString();
+ 
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+     
+     ByteString sWindowState;
+     Window*    pWindow     = VCLUnoHelper::GetWindow(xWindow);
+@@ -137,7 +137,7 @@ static void setWindowState(const css::uno::Reference< css::awt::XWindow >& xWind
+         return;
+ 
+     // SOLAR SAFE -> ----------------------------
+-    ::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+     
+     Window* pWindow = VCLUnoHelper::GetWindow(xWindow);
+     // check for system window is neccessary to guarantee correct pointer cast!
+@@ -170,7 +170,7 @@ static ::sal_Bool isTopWindow(const css::uno::Reference< css::awt::XWindow >& xW
+         // Attention ! Checking Window->GetParent() isnt the right approach here.
+         // Because sometimes VCL create "implicit border windows" as parents even we created
+         // a simple XWindow using the toolkit only .-(
+-        ::vos::OGuard aSolarLock(&Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarLock(&Application::GetSolarMutex());
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if (
+             (pWindow				  ) &&
+diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
+index 7ef96fb..2ebd83d 100644
+--- framework/source/layoutmanager/layoutmanager.cxx
++++ framework/source/layoutmanager/layoutmanager.cxx
+@@ -363,7 +363,7 @@ static sal_Bool implts_isFrameOrWindowTop( const css::uno::Reference< css::frame
+     if (xWindowCheck.is())
+     {
+         // --> PB 2007-06-18 #i76867# top and system window is required.
+-        ::vos::OGuard aSolarLock(&Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarLock(&Application::GetSolarMutex());
+         css::uno::Reference< css::awt::XWindow > xWindow( xWindowCheck, UNO_QUERY );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         return ( pWindow && pWindow->IsSystemWindow() );
+@@ -498,7 +498,7 @@ void LayoutManager::impl_clearUpMenuBar()
+     // Clear up VCL menu bar to prepare shutdown
+ 	if ( m_xContainerWindow.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+         Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+ 	    while ( pWindow && !pWindow->IsSystemWindow() )
+@@ -871,7 +871,7 @@ void LayoutManager::implts_createCustomToolBar( const rtl::OUString& aTbxResName
+             Reference< XUIElement > xUIElement = getElement( aTbxResName );
+             if ( xUIElement.is() )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+                 Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
+                 Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+@@ -1054,7 +1054,7 @@ void LayoutManager::implts_createAddonsToolBars()
+                 if ( xWindow.is() )
+                 {
+                     // Set generic title for add-on toolbar
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     if ( pWindow->GetText().Len() == 0 )
+                         pWindow->SetText( aGenericAddonTitle );
+@@ -1168,7 +1168,7 @@ void LayoutManager::implts_toggleFloatingUIElementsVisibility( sal_Bool bActive
+             if ( xDockWindow.is() && xWindow.is() )
+             {
+                 sal_Bool bVisible( sal_True );
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                 if ( pWindow )
+                     bVisible = pWindow->IsVisible();
+@@ -1629,7 +1629,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+     if ( xDockWindow.is() && xWindow.is() )
+     {
+         {
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+             pWindow = VCLUnoHelper::GetWindow( xWindow );
+             if ( pWindow )
+             {
+@@ -1656,7 +1656,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+         {
+             if ( pWindow )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 String aText = pWindow->GetText();
+                 if ( aText.Len() == 0 )
+                     pWindow->SetText( rElement.m_aUIName );
+@@ -1684,7 +1684,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+                 if( pToolBox )
+                 {
+                     // set an optimal initial floating size
+-                    vos::OGuard       aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard       aGuard( Application::GetSolarMutex() );
+                     ::Size aSize( pToolBox->CalcFloatingWindowSizePixel() );
+                     pToolBox->SetOutputSizePixel( aSize );
+                 }
+@@ -1705,7 +1705,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+                 implts_writeWindowStateData( rElement.m_aName, rElement );
+             if ( bShowElement && pWindow )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 pWindow->Show( sal_True, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+             }
+         }
+@@ -1718,7 +1718,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+ 
+             if ( pToolBox )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 pToolBox->SetAlign( ImplConvertAlignment(rElement.m_aDockedData.m_nDockedArea )  );
+                 pToolBox->SetLineCount( 1 );
+                 if ( rElement.m_aDockedData.m_bLocked )
+@@ -1746,7 +1746,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+ 
+             if ( bShowElement && pWindow )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 pWindow->Show( sal_True );
+             }
+         }
+@@ -1773,7 +1773,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+     Window* pContainerWindow( 0 );
+     if ( xContainerWindow.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+         if ( pContainerWindow )
+             aStartPos = pContainerWindow->OutputToScreenPixel( aStartPos );
+@@ -1797,7 +1797,7 @@ void LayoutManager::implts_setElementData( UIElement& rElement, const Reference<
+             Reference< css::awt::XWindow > xWindow( xDockWindow, UNO_QUERY );
+             if ( xDockWindow.is() && xWindow.is() && xDockWindow->isFloating() )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                 if ( pWindow && pWindow->IsVisible() )
+                 {
+@@ -1832,7 +1832,7 @@ void LayoutManager::implts_findNextDockingPos( DockingArea DockingArea, const ::
+ 
+     {
+         // Retrieve output size from container Window
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         pDockingWindow  = VCLUnoHelper::GetWindow( xDockingWindow );
+         aDockingWinSize = pDockingWindow->GetOutputSizePixel();
+     }
+@@ -1974,7 +1974,7 @@ void LayoutManager::implts_findNextDockingPos( DockingArea DockingArea, const ::
+     aReadLock.unlock();
+ 
+     // Retrieve output size from container Window
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     pContainerWindow  = VCLUnoHelper::GetWindow( xContainerWindow );
+     if ( pContainerWindow )
+         return pContainerWindow->GetOutputSizePixel();
+@@ -2065,7 +2065,7 @@ void LayoutManager::implts_getDockingAreaElementInfos( DockingArea eDockingArea,
+         css::awt::Rectangle aPosSize;
+         if ( xUIElement.is() )
+         {
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+             xWindow = Reference< css::awt::XWindow >( xUIElement->getRealInterface(), UNO_QUERY );
+             aPosSize = xWindow->getPosSize();
+ 
+@@ -2228,7 +2228,7 @@ void LayoutManager::implts_getDockingAreaElementInfoOnSingleRowCol( DockingArea
+                 Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
+                 if ( xWindow.is() )
+                 {
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+                     if ( pWindow && pIter->m_bVisible && xDockWindow.is() && !pIter->m_bFloating )
+@@ -2265,7 +2265,7 @@ void LayoutManager::implts_getDockingAreaElementInfoOnSingleRowCol( DockingArea
+         css::awt::Rectangle aPosSize;
+         if ( xUIElement.is() )
+         {
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+             xWindow = Reference< css::awt::XWindow >( xUIElement->getRealInterface(), UNO_QUERY );
+             aPosSize = xWindow->getPosSize();
+ 
+@@ -2414,7 +2414,7 @@ void LayoutManager::implts_getDockingAreaElementInfoOnSingleRowCol( DockingArea
+         aReadLock.unlock();
+ 
+         // Calc correct position of the column/row rectangle to be able to compare it with mouse pos/tracking rect
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+         // Retrieve output size from container Window
+         Window* pContainerWindow( VCLUnoHelper::GetWindow( xContainerWindow ));
+@@ -2548,7 +2548,7 @@ LayoutManager::implts_determineDockingOperation(
+         Window* pDockingAreaWindow( 0 );
+         Window* pContainerWindow( 0 );
+         {
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+             pDockingAreaWindow = VCLUnoHelper::GetWindow( xDockingAreaWindow );
+             pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+             nDockPosY = pDockingAreaWindow->ScreenToOutputPixel(
+@@ -2590,7 +2590,7 @@ void LayoutManager::implts_calcDockingPosSize(
+ 
+     {
+         // Retrieve output size from container Window
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         pContainerWindow  = VCLUnoHelper::GetWindow( xContainerWindow );
+         aContainerWinSize = pContainerWindow->GetOutputSizePixel();
+     }
+@@ -2624,7 +2624,7 @@ void LayoutManager::implts_calcDockingPosSize(
+     aReadLock.unlock();
+ 
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         pDockingAreaWindow = VCLUnoHelper::GetWindow( xDockingAreaWindow );
+         pDockWindow        = VCLUnoHelper::GetWindow( xWindow );
+         if ( pDockWindow && pDockWindow->GetType() == WINDOW_TOOLBOX )
+@@ -2674,7 +2674,7 @@ void LayoutManager::implts_calcDockingPosSize(
+ 
+             {
+                 // Calc correct position of the column/row rectangle to be able to compare it with mouse pos/tracking rect
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 aRect.SetPos( pContainerWindow->ScreenToOutputPixel( pDockingAreaWindow->OutputToScreenPixel( aRect.TopLeft() )));
+             }
+ 
+@@ -2773,7 +2773,7 @@ void LayoutManager::implts_calcDockingPosSize(
+                             // Set virtual position
+                             sal_Int32 nPosY( 0 );
+                             {
+-                                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                                 nPosY = pDockingAreaWindow->ScreenToOutputPixel(
+                                                     pContainerWindow->OutputToScreenPixel( aWindowRect.BottomRight() )).Y();
+                             }
+@@ -2899,7 +2899,7 @@ void LayoutManager::implts_calcDockingPosSize(
+             rTrackingRect.setWidth( nSize );
+ 
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 nPosX = pDockingAreaWindow->ScreenToOutputPixel(
+                                     pContainerWindow->OutputToScreenPixel( rTrackingRect.TopLeft() )).X();
+             }
+@@ -2947,7 +2947,7 @@ void LayoutManager::implts_calcDockingPosSize(
+             rTrackingRect.setHeight( nSize );
+ 
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 nPosY = pDockingAreaWindow->ScreenToOutputPixel(
+                                     pContainerWindow->OutputToScreenPixel( rTrackingRect.TopLeft() )).Y();
+             }
+@@ -3175,7 +3175,7 @@ void LayoutManager::implts_updateUIElementsVisibleState( sal_Bool bSetVisible )
+ 
+     try
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         for ( sal_uInt32 i = 0; i < aWinVector.size(); i++ )
+         {
+             Reference< css::awt::XWindow > xWindow( aWinVector[i] );
+@@ -3202,7 +3202,7 @@ void LayoutManager::implts_updateUIElementsVisibleState( sal_Bool bSetVisible )
+ 
+     if (( xMenuBar.is() || xInplaceMenuBar.is() ) && xContainerWindow.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+         MenuBar* pMenuBar( 0 );
+         if ( xInplaceMenuBar.is() )
+@@ -3356,7 +3356,7 @@ void LayoutManager::implts_createProgressBar()
+     {
+         Reference< css::awt::XWindow > xStatusBarWindow = pWrapper->getStatusBar();
+ 
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         Window* pStatusBarWnd = VCLUnoHelper::GetWindow( xStatusBarWindow );
+         if ( !pStatusBarWnd )
+         {
+@@ -3446,7 +3446,7 @@ void LayoutManager::implts_setStatusBarPosSize( const ::Point& rPos, const ::Siz
+ 
+     if ( xWindow.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         Window* pParentWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pParentWindow && ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR ))
+@@ -3487,7 +3487,7 @@ sal_Bool LayoutManager::implts_showProgressBar()
+     }
+     aWriteLock.unlock();
+ 
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+     if ( pWindow )
+     {
+@@ -3529,7 +3529,7 @@ sal_Bool LayoutManager::implts_hideProgressBar()
+     bHideStatusBar = !m_aStatusBarElement.m_bVisible;
+     aWriteLock.unlock();
+ 
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+     if ( pWindow && pWindow->IsVisible() &&
+          ( bHideStatusBar || bInternalStatusBar ))
+@@ -3556,7 +3556,7 @@ sal_Bool LayoutManager::implts_showStatusBar( sal_Bool bStoreState )
+     {
+         Reference< css::awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
+ 
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow && !pWindow->IsVisible() )
+         {
+@@ -3582,7 +3582,7 @@ sal_Bool LayoutManager::implts_hideStatusBar( sal_Bool bStoreState )
+     {
+         Reference< css::awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
+ 
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow && pWindow->IsVisible() )
+         {
+@@ -3602,7 +3602,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+  	if ( !m_bInplaceMenuSet )
+  	{
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+         // Reset old inplace menubar!
+         m_pInplaceMenuBar = 0;
+@@ -3652,7 +3652,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     // if ( m_xMenuBar.is() &&
+     if ( m_xContainerWindow.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         MenuBarWrapper* pMenuBarWrapper = SAL_STATIC_CAST( MenuBarWrapper*, m_xMenuBar.get() );
+ 		Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+ 		while ( pWindow && !pWindow->IsSystemWindow() )
+@@ -3816,7 +3816,7 @@ throw ( RuntimeException )
+         // #i37884# set initial visibility state - in the plugin case the container window is already shown
+         // and we get no notification anymore
+         {
+-            vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+             Window* pContainerWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+             if( pContainerWindow )
+                 m_bParentWindowVisible = pContainerWindow->IsVisible();
+@@ -3838,7 +3838,7 @@ throw ( RuntimeException )
+ 
+     if ( xDockingAreaAcceptor.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         ::DockingAreaWindow* pWindow;
+         pWindow = dynamic_cast< ::DockingAreaWindow* >(VCLUnoHelper::GetWindow( xTopDockWindow ) );
+ 		if( pWindow ) pWindow->SetAlign( WINDOWALIGN_TOP );
+@@ -3932,7 +3932,7 @@ void LayoutManager::implts_reparentChildWindows()
+         }
+     }
+ 
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     Window* pContainerWindow    = VCLUnoHelper::GetWindow( xContainerWindow );
+     Window* pTopDockWindow      = VCLUnoHelper::GetWindow( xTopDockWindow );
+     Window* pBottomDockWindow   = VCLUnoHelper::GetWindow( xBottomDockWindow );
+@@ -4187,7 +4187,7 @@ throw (RuntimeException)
+         {
+             if ( aElementName.equalsIgnoreAsciiCaseAscii( "menubar" ) && !bInPlaceMenu )
+ 	        {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 // PB 2004-12-15 #i38743# don't create a menubar if frame isn't top
+                 if ( !m_xMenuBar.is() && implts_isFrameOrWindowTop(xFrame) )
+                     m_xMenuBar = implts_createElement( aName );
+@@ -4430,7 +4430,7 @@ throw (::com::sun::star::uno::RuntimeException)
+                 if ( xUIElement.is() )
+                 {
+                     // we need VCL here to pass special flags to Show()
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                     Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     if ( pWindow )
+@@ -4480,7 +4480,7 @@ throw (::com::sun::star::uno::RuntimeException)
+                                 aWriteLock.unlock();
+ 
+                                 // we need VCL here to pass special flags to Show()
+-                                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                                 Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                                 if( pWindow && !pWindow->IsReallyVisible() )
+                                 {
+@@ -4666,7 +4666,7 @@ throw (RuntimeException)
+                     if ( xWindow.is() && xDockWindow.is() && bShowElement )
+                     {
+                         // we need VCL here to pass special flags to Show()
+-                        vos::OGuard	aGuard( Application::GetSolarMutex() );
++                        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                         if( pWindow )
+                         {
+@@ -4718,7 +4718,7 @@ throw (RuntimeException)
+ 
+             if ( m_xContainerWindow.is() )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 		        Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+ 	            while ( pWindow && !pWindow->IsSystemWindow() )
+ 		            pWindow = pWindow->GetParent();
+@@ -4826,7 +4826,7 @@ throw (RuntimeException)
+                         ToolBox*    pToolBox( 0 );
+ 
+                         {
+-                            vos::OGuard	aGuard( Application::GetSolarMutex() );
++                            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                             pWindow = VCLUnoHelper::GetWindow( xWindow );
+                             if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+                             {
+@@ -4845,7 +4845,7 @@ throw (RuntimeException)
+                             // we have to find a good place for it.
+                             ::Size      aSize;
+ 
+-                            vos::OGuard	aGuard( Application::GetSolarMutex() );
++                            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                             {
+                                 if ( pToolBox )
+                                     aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( aUIElement.m_aDockedData.m_nDockedArea ) );
+@@ -5189,7 +5189,7 @@ throw (RuntimeException)
+             {
+                 aReadLock.unlock();
+ 
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 		        Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+ 	            while ( pWindow && !pWindow->IsSystemWindow() )
+ 		            pWindow = pWindow->GetParent();
+@@ -5675,7 +5675,7 @@ void LayoutManager::implts_calcWindowPosSizeOnSingleRowColumn( sal_Int32 nDockin
+             css::awt::Rectangle& rWinRect = rRowColumnWindowData.aRowColumnWindowSizes[i];
+             ::Size               aMinSize;
+ 
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+             {
+                 Reference< css::awt::XWindow > xWindow = rRowColumnWindowData.aRowColumnWindows[i];
+                 Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+@@ -5744,7 +5744,7 @@ void LayoutManager::implts_calcWindowPosSizeOnSingleRowColumn( sal_Int32 nDockin
+     else if ( nDockingArea == DockingArea_DOCKINGAREA_BOTTOM )
+         nStartOffset = pDockAreaWindow->GetSizePixel().Height() - rRowColumnWindowData.nStaticSize;
+ 
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     for ( sal_Int32 i = 0; i < sal_Int32( rRowColumnWindowData.aRowColumnWindows.size() ); i++ )
+     {
+         Reference< css::awt::XWindow > xWindow = rRowColumnWindowData.aRowColumnWindows[i];
+@@ -5851,7 +5851,7 @@ css::awt::Rectangle LayoutManager::implts_calcDockingAreaSizes()
+                 Reference< css::awt::XDockableWindow > xDockWindow( xWindow, UNO_QUERY );
+                 if ( xWindow.is() && xDockWindow.is() )
+                 {
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     if ( pWindow && pWindow->IsVisible() && !xDockWindow->isFloating() )
+@@ -6021,7 +6021,7 @@ void LayoutManager::implts_updateMenuBarClose()
+ 
+     if ( xContainerWindow.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+         Window* pWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+ 	    while ( pWindow && !pWindow->IsSystemWindow() )
+@@ -6068,7 +6068,7 @@ sal_Bool LayoutManager::implts_resetMenuBar()
+     aWriteLock.unlock();
+     /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+ 
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 	Window* pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow );
+ 	while ( pWindow && !pWindow->IsSystemWindow() )
+ 		pWindow = pWindow->GetParent();
+@@ -6099,7 +6099,7 @@ sal_Int16 LayoutManager::implts_getCurrentSymbolsSize()
+ 
+     {
+         ReadGuard aReadLock( m_aLock );
+-        vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         if ( m_pMiscOptions )
+             eOptSymbolsSize = m_pMiscOptions->GetCurrentSymbolsSize();
+     }
+@@ -6113,7 +6113,7 @@ sal_Int16 LayoutManager::implts_getCurrentSymbolsStyle()
+ 
+     {
+         ReadGuard aReadLock( m_aLock );
+-        vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         if ( m_pMiscOptions )
+             eOptSymbolsStyle = m_pMiscOptions->GetCurrentSymbolsStyle();
+     }
+@@ -6212,7 +6212,7 @@ void SAL_CALL LayoutManager::startDocking( const ::com::sun::star::awt::DockingE
+     Window* pWindow( 0 );
+     ::Point aMousePos;
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+         aMousePos = pContainerWindow->ScreenToOutputPixel( ::Point( e.MousePos.X, e.MousePos.Y ));
+     }
+@@ -6231,7 +6231,7 @@ void SAL_CALL LayoutManager::startDocking( const ::com::sun::star::awt::DockingE
+             aUIElement.m_aFloatingData.m_aPos    = ::Point( aPos.X, aPos.Y );
+             aUIElement.m_aFloatingData.m_aSize   = ::Size( aSize.Width, aSize.Height );
+ 
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+             pWindow = VCLUnoHelper::GetWindow( xWindow );
+             if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+             {
+@@ -6304,7 +6304,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     {
+         try
+         {
+-            vos::OGuard	aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+             sal_Int16 eDockingArea( -1 ); // none
+             sal_Int32 nMagneticZone( aUIDockingElement.m_bFloating ? MAGNETIC_DISTANCE_DOCK : MAGNETIC_DISTANCE_UNDOCK );
+@@ -6515,7 +6515,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+     if ( bDockingInProgress )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         Window*  pWindow = VCLUnoHelper::GetWindow( Reference< css::awt::XWindow >( e.Source, UNO_QUERY ));
+         ToolBox* pToolBox = 0;
+         if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
+@@ -6580,7 +6580,7 @@ throw (::com::sun::star::uno::RuntimeException)
+             if ( xDockWindow->isFloating() )
+             {
+                 {
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     if ( pWindow )
+                     {
+@@ -6625,7 +6625,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     Reference< css::awt::XWindow2 > xWindow;
+ 
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         xWindow = Reference< css::awt::XWindow2 >( e.Source, UNO_QUERY );
+         pWindow = VCLUnoHelper::GetWindow( xWindow );
+ 
+@@ -6647,7 +6647,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+             if ( aUIDockingElement.m_bFloating )
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 if ( pToolBox )
+                 {
+                     pToolBox->SetLineCount( aUIDockingElement.m_aFloatingData.m_nLines );
+@@ -6690,7 +6690,7 @@ throw (::com::sun::star::uno::RuntimeException)
+                     ::Size  aSize;
+ 
+                     {
+-                        vos::OGuard	aGuard( Application::GetSolarMutex() );
++                        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                         if ( pToolBox )
+                             aSize = pToolBox->CalcWindowSizePixel( 1, ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea ) );
+                         else
+@@ -6704,7 +6704,7 @@ throw (::com::sun::star::uno::RuntimeException)
+                     aUIDockingElement.m_aDockedData.m_aPos = aDockPos;
+                 }
+ 
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 if ( pToolBox )
+                 {
+                     pToolBox->SetAlign( ImplConvertAlignment( aUIDockingElement.m_aDockedData.m_nDockedArea) );
+@@ -6730,7 +6730,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     }
+     else
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         if ( pToolBox )
+         {
+             if ( aUIDockingElement.m_bFloating )
+@@ -7215,7 +7215,7 @@ void SAL_CALL LayoutManager::elementInserted( const ::com::sun::star::ui::Config
+                     }
+ 
+                     {
+-                        vos::OGuard	aGuard( Application::GetSolarMutex() );
++                        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                         Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
+                         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                         if ( pWindow  )
+diff --git a/framework/source/loadenv/loadenv.cxx b/framework/source/loadenv/loadenv.cxx
+index 7e08f07..3897f05 100644
+--- framework/source/loadenv/loadenv.cxx
++++ framework/source/loadenv/loadenv.cxx
+@@ -1726,7 +1726,7 @@ void LoadEnv::impl_reactForLoadingState()
+ 
+         if (bMinimized)
+         {
+-            ::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex());
++            osl::ClearableSolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+             Window* pWindow = VCLUnoHelper::GetWindow(xWindow);
+             // check for system window is neccessary to guarantee correct pointer cast!
+             if (pWindow && pWindow->IsSystemWindow())
+@@ -1873,7 +1873,7 @@ void LoadEnv::impl_applyPersistentWindowState(const css::uno::Reference< css::aw
+        return;
+ 
+     // SOLAR SAFE ->
+-    ::vos::OClearableGuard aSolarLock1(Application::GetSolarMutex());
++    osl::ClearableSolarMutexGuard aSolarLock1(Application::GetSolarMutex());
+ 
+     Window*  pWindow       = VCLUnoHelper::GetWindow(xWindow);
+     sal_Bool bSystemWindow = pWindow->IsSystemWindow();
+@@ -1930,7 +1930,7 @@ void LoadEnv::impl_applyPersistentWindowState(const css::uno::Reference< css::aw
+         if (sWindowState.getLength())
+         {
+             // SOLAR SAFE ->
+-            ::vos::OClearableGuard aSolarLock2(Application::GetSolarMutex());
++            osl::ClearableSolarMutexGuard aSolarLock2(Application::GetSolarMutex());
+ 
+             // We have to retrieve the window pointer again. Because nobody can guarantee
+             // that the XWindow was not disposed inbetween .-)
+diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
+index e7e3fe2..feaa4ad 100644
+--- framework/source/services/autorecovery.cxx
++++ framework/source/services/autorecovery.cxx
+@@ -3600,7 +3600,7 @@ void AutoRecovery::impl_flushALLConfigChanges()
+             ::comphelper::ConfigurationHelper::flush(xRecoveryCfg);
+     
+         // SOLAR SAFE ->
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         ::utl::ConfigManager* pCfgMgr = ::utl::ConfigManager::GetConfigManager();
+         if (pCfgMgr)
+             pCfgMgr->StoreConfigItems();
+diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
+index ede34df..f2bb8a8 100644
+--- framework/source/services/frame.cxx
++++ framework/source/services/frame.cxx
+@@ -2386,7 +2386,7 @@ aEvent
+         // Deactivation is always done implicitely by activation of another frame.
+         // Only if no activation is done, deactivations have to be processed if the activated window
+         // is a parent window of the last active Window!
+-        ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ //       CheckMenuCloser_Impl();
+         Window* pFocusWindow = Application::GetFocusWindow();
+         if  (
+@@ -3089,7 +3089,7 @@ void Frame::implts_setIconOnWindow()
+         //    Don't forget SolarMutex! We use vcl directly :-(
+         //    Check window pointer for right WorkWindow class too!!!
+         /* SAFE AREA ----------------------------------------------------------------------------------------------- */
+-        ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++        osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         Window* pWindow = (VCLUnoHelper::GetWindow( xContainerWindow ));
+         if(
+             ( pWindow            != NULL              ) &&
+diff --git a/framework/source/tabwin/tabwindow.cxx b/framework/source/tabwin/tabwindow.cxx
+index 299b623..6fdbfd8 100644
+--- framework/source/tabwin/tabwindow.cxx
++++ framework/source/tabwin/tabwindow.cxx
+@@ -459,7 +459,7 @@ throw (css::uno::Exception, css::uno::RuntimeException)
+ 
+ 					xWindow->setPosSize( 0, 0, aSize.Width, aSize.Height, css::awt::PosSize::POSSIZE );
+ 
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     if( pWindow )
+                         pWindow->Show( TRUE );
+diff --git a/framework/source/threadhelp/lockhelper.cxx b/framework/source/threadhelp/lockhelper.cxx
+index 5896951..bdd1ca4 100644
+--- framework/source/threadhelp/lockhelper.cxx
++++ framework/source/threadhelp/lockhelper.cxx
+@@ -96,7 +96,7 @@ namespace framework{
+ 
+     @onerror    -
+ *//*-*************************************************************************************************************/
+-LockHelper::LockHelper( ::vos::IMutex* pSolarMutex )
++LockHelper::LockHelper( osl::SolarMutex* pSolarMutex )
+     :   m_pFairRWLock       ( NULL )
+     ,   m_pOwnMutex         ( NULL )
+     ,   m_pSolarMutex       ( NULL )
+@@ -114,7 +114,7 @@ LockHelper::LockHelper( ::vos::IMutex* pSolarMutex )
+         case E_SOLARMUTEX   :   {
+                                     if( pSolarMutex == NULL )
+                                     {
+-                                        m_pSolarMutex      = new ::vos::OMutex;
++                                        m_pSolarMutex      = new ::vcl::SolarMutexObject;
+                                         m_bDummySolarMutex = sal_True;
+                                     }
+                                     else
+@@ -167,7 +167,7 @@ LockHelper::~LockHelper()
+     {
+         if (m_bDummySolarMutex)
+         {
+-            delete static_cast<vos::OMutex*>(m_pSolarMutex);
++            delete static_cast<vcl::SolarMutexObject*>(m_pSolarMutex);
+             m_bDummySolarMutex = sal_False;
+         }
+         m_pSolarMutex = NULL;
+@@ -452,7 +452,7 @@ void LockHelper::downgradeWriteAccess()
+ 
+     @onerror    No error should occure.
+ *//*-*************************************************************************************************************/
+-LockHelper& LockHelper::getGlobalLock( ::vos::IMutex* pSolarMutex )
++LockHelper& LockHelper::getGlobalLock( osl::SolarMutex* pSolarMutex )
+ {
+     // Initialize static "member" only for one time!
+     // Algorithm:
+diff --git a/framework/source/uielement/addonstoolbarwrapper.cxx b/framework/source/uielement/addonstoolbarwrapper.cxx
+index 24f76d0..ab97bed 100644
+--- framework/source/uielement/addonstoolbarwrapper.cxx
++++ framework/source/uielement/addonstoolbarwrapper.cxx
+@@ -189,7 +189,7 @@ void SAL_CALL AddonsToolBarWrapper::initialize( const Sequence< Any >& aArgument
+             ToolBar* pToolBar = 0;
+             AddonsToolBarManager* pToolBarManager = 0;
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 Window* pWindow = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
+                 if ( pWindow )
+                 {
+diff --git a/framework/source/uielement/buttontoolbarcontroller.cxx b/framework/source/uielement/buttontoolbarcontroller.cxx
+index 3fb9efe..e1ee0da 100644
+--- framework/source/uielement/buttontoolbarcontroller.cxx
++++ framework/source/uielement/buttontoolbarcontroller.cxx
+@@ -79,7 +79,7 @@
+ //_________________________________________________________________________________________________________________
+ 
+ #include <rtl/uri.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <comphelper/processfactory.hxx>
+ #include <unotools/ucbstreamhelper.hxx>
+ #include <tools/urlobj.hxx>
+@@ -160,7 +160,7 @@ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException
+     bool bInitialized( true );
+ 
+     { 
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -170,7 +170,7 @@ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException
+ 
+     if ( !bInitialized )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         m_bInitialized = sal_True;
+         
+         PropertyValue aPropValue;
+@@ -195,7 +195,7 @@ void SAL_CALL ButtonToolbarController::dispose() throw (::com::sun::star::uno::R
+     Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         if ( m_bDisposed )
+             throw DisposedException();
+ 
+@@ -225,7 +225,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ void SAL_CALL ButtonToolbarController::update() 
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     if ( m_bDisposed )
+         throw DisposedException();
+ }
+@@ -237,7 +237,7 @@ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+     uno::Reference< uno::XInterface > xSource( Source.Source );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+@@ -266,7 +266,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     ::com::sun::star::util::URL             aTargetURL;
+     
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -318,7 +318,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ void SAL_CALL ButtonToolbarController::click() 
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     if ( m_bDisposed )
+         throw DisposedException();
+diff --git a/framework/source/uielement/comboboxtoolbarcontroller.cxx b/framework/source/uielement/comboboxtoolbarcontroller.cxx
+index 4765533..af6f5d4 100644
+--- framework/source/uielement/comboboxtoolbarcontroller.cxx
++++ framework/source/uielement/comboboxtoolbarcontroller.cxx
+@@ -87,8 +87,8 @@
+ #ifndef _SVTOOLS_TOOLBOXCONTROLLER_HXX
+ #include <svtools/toolboxcontroller.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -235,7 +235,7 @@ ComboboxToolbarController::~ComboboxToolbarController()
+ void SAL_CALL ComboboxToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     m_pToolbar->SetItemWindow( m_nID, 0 );
+     delete m_pComboBox;
+@@ -257,7 +257,7 @@ throw ( RuntimeException )
+     ::com::sun::star::util::URL  aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+diff --git a/framework/source/uielement/complextoolbarcontroller.cxx b/framework/source/uielement/complextoolbarcontroller.cxx
+index ef9a507..5dda95f 100644
+--- framework/source/uielement/complextoolbarcontroller.cxx
++++ framework/source/uielement/complextoolbarcontroller.cxx
+@@ -84,8 +84,8 @@
+ #ifndef _SVTOOLS_TOOLBOXCONTROLLER_HXX
+ #include <svtools/toolboxcontroller.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -137,7 +137,7 @@ ComplexToolbarController::~ComplexToolbarController()
+ void SAL_CALL ComplexToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     m_pToolbar->SetItemWindow( m_nID, 0 );
+     svt::ToolboxController::dispose();
+@@ -158,7 +158,7 @@ throw ( RuntimeException )
+     ::com::sun::star::util::URL  aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -197,7 +197,7 @@ throw ( RuntimeException )
+ void ComplexToolbarController::statusChanged( const FeatureStateEvent& Event )
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+diff --git a/framework/source/uielement/controlmenucontroller.cxx b/framework/source/uielement/controlmenucontroller.cxx
+index 2b5aa2e..fd06400 100644
+--- framework/source/uielement/controlmenucontroller.cxx
++++ framework/source/uielement/controlmenucontroller.cxx
+@@ -321,7 +321,7 @@ void ControlMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rP
+     VCLXPopupMenu*                                     pPopupMenu        = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*                                         pVCLPopupMenu     = 0;
+     
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -366,7 +366,7 @@ void SAL_CALL ControlMenuController::statusChanged( const FeatureStateEvent& Eve
+     {
+         VCLXPopupMenu*  pPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( m_xPopupMenu );
+     
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+         PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+ 
+@@ -427,7 +427,7 @@ void SAL_CALL ControlMenuController::select( const css::awt::MenuEvent& rEvent )
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+ 
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+@@ -451,7 +451,7 @@ void SAL_CALL ControlMenuController::activate( const css::awt::MenuEvent& ) thro
+     
+     if ( m_xPopupMenu.is() )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	    
+ 		// Check if some modes have changed so we have to update our menu images
+ 		const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
+@@ -491,7 +491,7 @@ void SAL_CALL ControlMenuController::setPopupMenu( const Reference< css::awt::XP
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_pResPopupMenu == 0 )
+         {
+diff --git a/framework/source/uielement/dropdownboxtoolbarcontroller.cxx b/framework/source/uielement/dropdownboxtoolbarcontroller.cxx
+index 5544d94..a622fbc 100644
+--- framework/source/uielement/dropdownboxtoolbarcontroller.cxx
++++ framework/source/uielement/dropdownboxtoolbarcontroller.cxx
+@@ -84,8 +84,8 @@
+ #ifndef _SVTOOLS_TOOLBOXCONTROLLER_HXX
+ #include <svtools/toolboxcontroller.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -216,7 +216,7 @@ DropdownToolbarController::~DropdownToolbarController()
+ void SAL_CALL DropdownToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     m_pToolbar->SetItemWindow( m_nID, 0 );
+     delete m_pListBoxControl;
+@@ -238,7 +238,7 @@ throw ( RuntimeException )
+     ::com::sun::star::util::URL  aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+diff --git a/framework/source/uielement/edittoolbarcontroller.cxx b/framework/source/uielement/edittoolbarcontroller.cxx
+index 44202cf..2741316 100644
+--- framework/source/uielement/edittoolbarcontroller.cxx
++++ framework/source/uielement/edittoolbarcontroller.cxx
+@@ -84,8 +84,8 @@
+ #ifndef _SVTOOLS_TOOLBOXCONTROLLER_HXX
+ #include <svtools/toolboxcontroller.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -213,7 +213,7 @@ EditToolbarController::~EditToolbarController()
+ void SAL_CALL EditToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     m_pToolbar->SetItemWindow( m_nID, 0 );
+     delete m_pEditControl;
+@@ -235,7 +235,7 @@ throw ( RuntimeException )
+     ::com::sun::star::util::URL  aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+diff --git a/framework/source/uielement/fontmenucontroller.cxx b/framework/source/uielement/fontmenucontroller.cxx
+index 3606f46..cc98701 100644
+--- framework/source/uielement/fontmenucontroller.cxx
++++ framework/source/uielement/fontmenucontroller.cxx
+@@ -138,7 +138,7 @@ void FontMenuController::fillPopupMenu( const Sequence< ::rtl::OUString >& rFont
+     VCLXPopupMenu*          pPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*              pVCLPopupMenu = 0;
+     
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -243,7 +243,7 @@ void SAL_CALL FontMenuController::select( const css::awt::MenuEvent& rEvent ) th
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 
+                 // Command URL used to dispatch the selected font family name
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+@@ -308,7 +308,7 @@ void SAL_CALL FontMenuController::setPopupMenu( const Reference< css::awt::XPopu
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/fontsizemenucontroller.cxx b/framework/source/uielement/fontsizemenucontroller.cxx
+index 6e3f5d5..923175c 100644
+--- framework/source/uielement/fontsizemenucontroller.cxx
++++ framework/source/uielement/fontsizemenucontroller.cxx
+@@ -213,7 +213,7 @@ void FontSizeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r
+         Printer*        pInfoPrinter = 0;
+         rtl::OUString   aPrinterName;
+         
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         // try to retrieve printer name of document
+         aPrinterName = retrievePrinterName( m_xFrame );
+@@ -352,7 +352,7 @@ void SAL_CALL FontSizeMenuController::statusChanged( const FeatureStateEvent& Ev
+ 
+ 	    if ( m_xPopupMenu.is() )
+         {
+-            vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	        setCurHeight( long( m_aFontHeight.Height * 10), m_xPopupMenu );
+         }
+     }
+@@ -390,7 +390,7 @@ void SAL_CALL FontSizeMenuController::select( const css::awt::MenuEvent& rEvent
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+             }
+@@ -420,7 +420,7 @@ void SAL_CALL FontSizeMenuController::setPopupMenu( const Reference< css::awt::X
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/footermenucontroller.cxx b/framework/source/uielement/footermenucontroller.cxx
+index e5d8af3..871488c 100644
+--- framework/source/uielement/footermenucontroller.cxx
++++ framework/source/uielement/footermenucontroller.cxx
+@@ -147,7 +147,7 @@ void FooterMenuController::fillPopupMenu( const Reference< ::com::sun::star::fra
+     VCLXPopupMenu*                                     pPopupMenu        = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*                                         pVCLPopupMenu     = 0;
+     
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -306,7 +306,7 @@ void SAL_CALL FooterMenuController::select( const css::awt::MenuEvent& rEvent )
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+ 
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+@@ -337,7 +337,7 @@ void SAL_CALL FooterMenuController::setPopupMenu( const Reference< css::awt::XPo
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/generictoolbarcontroller.cxx b/framework/source/uielement/generictoolbarcontroller.cxx
+index 03a4862..4d877fc 100644
+--- framework/source/uielement/generictoolbarcontroller.cxx
++++ framework/source/uielement/generictoolbarcontroller.cxx
+@@ -81,8 +81,8 @@
+ #ifndef _SVTOOLS_TOOLBOXCONTROLLER_HXX
+ #include <svtools/toolboxcontroller.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -174,7 +174,7 @@ GenericToolbarController::~GenericToolbarController()
+ void SAL_CALL GenericToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     svt::ToolboxController::dispose();
+ 
+@@ -190,7 +190,7 @@ throw ( RuntimeException )
+     OUString                     aCommandURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -235,7 +235,7 @@ throw ( RuntimeException )
+ void GenericToolbarController::statusChanged( const FeatureStateEvent& Event )
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+diff --git a/framework/source/uielement/headermenucontroller.cxx b/framework/source/uielement/headermenucontroller.cxx
+index 04011cd..ca3342e 100644
+--- framework/source/uielement/headermenucontroller.cxx
++++ framework/source/uielement/headermenucontroller.cxx
+@@ -162,7 +162,7 @@ void HeaderMenuController::fillPopupMenu( const Reference< ::com::sun::star::fra
+     VCLXPopupMenu*                                     pPopupMenu        = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*                                         pVCLPopupMenu     = 0;
+     
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -323,7 +323,7 @@ void SAL_CALL HeaderMenuController::select( const css::awt::MenuEvent& rEvent )
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+ 
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+@@ -354,7 +354,7 @@ void SAL_CALL HeaderMenuController::setPopupMenu( const Reference< css::awt::XPo
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/imagebuttontoolbarcontroller.cxx b/framework/source/uielement/imagebuttontoolbarcontroller.cxx
+index b8df068..f1e6b22 100644
+--- framework/source/uielement/imagebuttontoolbarcontroller.cxx
++++ framework/source/uielement/imagebuttontoolbarcontroller.cxx
+@@ -85,7 +85,7 @@
+ //_________________________________________________________________________________________________________________
+ 
+ #include <rtl/uri.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <comphelper/processfactory.hxx>
+ #include <unotools/ucbstreamhelper.hxx>
+ #include <tools/urlobj.hxx>
+@@ -123,7 +123,7 @@ uno::Reference< util::XMacroExpander > GetMacroExpander()
+     uno::Reference< util::XMacroExpander > xMacroExpander( m_xMacroExpander );
+     if ( !xMacroExpander.is() )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( !xMacroExpander.is() )
+         {
+@@ -188,7 +188,7 @@ ImageButtonToolbarController::~ImageButtonToolbarController()
+ void SAL_CALL ImageButtonToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     ComplexToolbarController::dispose();
+ }
+ 
+@@ -204,7 +204,7 @@ throw ( RuntimeException )
+ 
+ void ImageButtonToolbarController::executeControlCommand( const ::com::sun::star::frame::ControlCommand& rControlCommand )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     // i73486 to be downward compatible use old and "wrong" also!
+     if (( rControlCommand.Command.equalsAsciiL( "SetImag", 7 )) ||
+         ( rControlCommand.Command.equalsAsciiL( "SetImage", 8 )) )
+diff --git a/framework/source/uielement/logoimagestatusbarcontroller.cxx b/framework/source/uielement/logoimagestatusbarcontroller.cxx
+index 111805a..0b4327b 100644
+--- framework/source/uielement/logoimagestatusbarcontroller.cxx
++++ framework/source/uielement/logoimagestatusbarcontroller.cxx
+@@ -48,8 +48,8 @@
+ #endif
+ #include <classes/resource.hrc>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -122,7 +122,7 @@ void SAL_CALL LogoImageStatusbarController::release() throw ()
+ void SAL_CALL LogoImageStatusbarController::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) 
+ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() ); 
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() ); 
+     
+     svt::StatusbarController::initialize( aArguments );
+ }
+@@ -186,7 +186,7 @@ void SAL_CALL LogoImageStatusbarController::paint(
+     ::sal_Int32 /*nStyle*/ )
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     OutputDevice* pOutDev = VCLUnoHelper::GetOutputDevice( xGraphics );;
+     if ( pOutDev )
+diff --git a/framework/source/uielement/logotextstatusbarcontroller.cxx b/framework/source/uielement/logotextstatusbarcontroller.cxx
+index 96c6d47..d728b53 100644
+--- framework/source/uielement/logotextstatusbarcontroller.cxx
++++ framework/source/uielement/logotextstatusbarcontroller.cxx
+@@ -48,8 +48,8 @@
+ #endif
+ #include <classes/resource.hrc>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -121,7 +121,7 @@ void SAL_CALL LogoTextStatusbarController::release() throw ()
+ void SAL_CALL LogoTextStatusbarController::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) 
+ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() ); 
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() ); 
+     
+     svt::StatusbarController::initialize( aArguments );
+ 
+diff --git a/framework/source/uielement/macrosmenucontroller.cxx b/framework/source/uielement/macrosmenucontroller.cxx
+index 2ce2b90..e3b7796 100644
+--- framework/source/uielement/macrosmenucontroller.cxx
++++ framework/source/uielement/macrosmenucontroller.cxx
+@@ -92,7 +92,7 @@ void MacrosMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPo
+     VCLXPopupMenu* pVCLPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*     pPopupMenu    = 0;
+     
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     resetPopupMenu( rPopupMenu );
+     if ( pVCLPopupMenu )
+@@ -168,7 +168,7 @@ void SAL_CALL MacrosMenuController::select( const css::awt::MenuEvent& rEvent )
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pPopupMenu = (PopupMenu *)pVCLPopupMenu->GetMenu();
+ 
+                 aTargetURL.Complete = pPopupMenu->GetItemCommand( rEvent.MenuId );
+@@ -231,7 +231,7 @@ void SAL_CALL MacrosMenuController::setPopupMenu( const Reference< css::awt::XPo
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
+index 6337366..718b98e 100644
+--- framework/source/uielement/menubarmanager.cxx
++++ framework/source/uielement/menubarmanager.cxx
+@@ -172,7 +172,7 @@
+ #endif
+ #include <vcl/svapp.hxx>
+ #include <vcl/window.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+@@ -199,7 +199,6 @@
+ //_________________________________________________________________________________________________________________
+ 
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+@@ -537,7 +536,7 @@ Any SAL_CALL MenuBarManager::getMenuHandle( const ::com::sun::star::uno::Sequenc
+ 
+     if ( m_pVCLMenu )
+     {
+-        OGuard	aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 
+         SystemMenuData aSystemMenuData;
+         aSystemMenuData.nSize = sizeof( SystemMenuData );
+@@ -569,7 +568,7 @@ MenuBarManager::~MenuBarManager()
+ 
+ void MenuBarManager::Destroy()
+ {
+-    OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+ 
+     if ( !m_bDisposed )
+     {
+@@ -740,7 +739,7 @@ throw ( RuntimeException )
+ {
+ 	::rtl::OUString aFeatureURL = Event.FeatureURL.Complete;
+ 
+-    OGuard	aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 	{
+ 		ResetableGuard aGuard( m_aLock );
+ 
+@@ -884,7 +883,7 @@ void MenuBarManager::RemoveListener()
+             {
+ 		        {
+                     // Remove popup menu from menu structure
+-		            OGuard	aGuard2( Application::GetSolarMutex() );
++		            osl::SolarMutexGuard	aGuard2( Application::GetSolarMutex() );
+                     m_pVCLMenu->SetPopupMenu( pItemHandler->nItemId, 0 );
+                 }
+ 
+@@ -983,7 +982,7 @@ void SAL_CALL MenuBarManager::disposing( const EventObject& Source ) throw ( Run
+                 {
+                     // Remove popup menu from menu structure as we release our reference to
+                     // the controller.
+-		            OGuard	aGuard2( Application::GetSolarMutex() );
++		            osl::SolarMutexGuard	aGuard2( Application::GetSolarMutex() );
+                     m_pVCLMenu->SetPopupMenu( pMenuItemDisposing->nItemId, 0 );
+                 }
+ 
+@@ -1389,7 +1388,7 @@ IMPL_LINK( MenuBarManager, Deactivate, Menu *, pMenu )
+ 
+ IMPL_LINK( MenuBarManager, AsyncSettingsHdl, Timer*,)
+ {
+-    OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     Reference< XInterface > xSelfHold(
+         static_cast< ::cppu::OWeakObject* >( this ), UNO_QUERY_THROW );
+ 
+@@ -2332,7 +2331,7 @@ void MenuBarManager::SetItemContainer( const Reference< XIndexAccess >& rItemCon
+ 
+     // Clear MenuBarManager structures
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         // Check active state as we cannot change our VCL menu during activation by the user
+         if ( m_bActive )
+@@ -2376,7 +2375,7 @@ void MenuBarManager::GetPopupController( PopupControllerCache& rPopupController
+ {
+     String aPopupScheme = String::CreateFromAscii( "vnd.sun.star.popup:" );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     std::vector< MenuItemHandler* >::iterator p;
+     for ( p = m_aMenuItemHandlerVector.begin(); p != m_aMenuItemHandlerVector.end(); p++ )
+diff --git a/framework/source/uielement/menubarwrapper.cxx b/framework/source/uielement/menubarwrapper.cxx
+index 9b34e4b..1e72148 100644
+--- framework/source/uielement/menubarwrapper.cxx
++++ framework/source/uielement/menubarwrapper.cxx
+@@ -202,7 +202,7 @@ void SAL_CALL MenuBarWrapper::initialize( const Sequence< Any >& aArguments ) th
+             MenuBar*        pVCLMenuBar = 0;
+             VCLXMenuBar*    pAwtMenuBar = 0;                
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 pVCLMenuBar = new MenuBar();
+             }
+                 
+diff --git a/framework/source/uielement/newmenucontroller.cxx b/framework/source/uielement/newmenucontroller.cxx
+index fdb97a6..9e3c977 100644
+--- framework/source/uielement/newmenucontroller.cxx
++++ framework/source/uielement/newmenucontroller.cxx
+@@ -407,7 +407,7 @@ void NewMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopup
+     VCLXPopupMenu* pPopupMenu    = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*     pVCLPopupMenu = 0;
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -504,7 +504,7 @@ void SAL_CALL NewMenuController::select( const css::awt::MenuEvent& rEvent ) thr
+         if ( pPopupMenu )
+         {
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+             }
+@@ -538,7 +538,7 @@ void SAL_CALL NewMenuController::select( const css::awt::MenuEvent& rEvent ) thr
+ 
+ void SAL_CALL NewMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     if ( m_xFrame.is() && m_xPopupMenu.is() )
+     {
+         VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( m_xPopupMenu );
+@@ -579,7 +579,7 @@ void SAL_CALL NewMenuController::setPopupMenu( const Reference< css::awt::XPopup
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/objectmenucontroller.cxx b/framework/source/uielement/objectmenucontroller.cxx
+index 7af92c1..5a410dc 100644
+--- framework/source/uielement/objectmenucontroller.cxx
++++ framework/source/uielement/objectmenucontroller.cxx
+@@ -138,7 +138,7 @@ void ObjectMenuController::fillPopupMenu( const Sequence< com::sun::star::embed:
+     VCLXPopupMenu*                                     pPopupMenu        = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*                                         pVCLPopupMenu     = 0;
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -220,7 +220,7 @@ void SAL_CALL ObjectMenuController::select( const css::awt::MenuEvent& rEvent )
+                                                         UNO_QUERY );
+ 
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+ 
+                 aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
+@@ -251,7 +251,7 @@ void SAL_CALL ObjectMenuController::setPopupMenu( const Reference< css::awt::XPo
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/progressbarwrapper.cxx b/framework/source/uielement/progressbarwrapper.cxx
+index 7f75221..d4e60b0 100644
+--- framework/source/uielement/progressbarwrapper.cxx
++++ framework/source/uielement/progressbarwrapper.cxx
+@@ -162,7 +162,7 @@ throw (uno::RuntimeException)
+ 
+     if ( xWindow.is() )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR )
+         {
+@@ -200,7 +200,7 @@ throw (uno::RuntimeException)
+ 
+     if ( xWindow.is() )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR )
+         {
+@@ -230,7 +230,7 @@ throw (uno::RuntimeException)
+ 
+     if ( xWindow.is() )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR )
+         {
+@@ -283,7 +283,7 @@ throw (uno::RuntimeException)
+ 
+     if ( xWindow.is() && bSetValue )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR )
+         {
+diff --git a/framework/source/uielement/recentfilesmenucontroller.cxx b/framework/source/uielement/recentfilesmenucontroller.cxx
+index ade01f0..dcf9ebb 100644
+--- framework/source/uielement/recentfilesmenucontroller.cxx
++++ framework/source/uielement/recentfilesmenucontroller.cxx
+@@ -165,7 +165,7 @@ void RecentFilesMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >
+     VCLXPopupMenu*                                     pPopupMenu        = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
+     PopupMenu*                                         pVCLPopupMenu     = 0;
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     resetPopupMenu( rPopupMenu );
+     if ( pPopupMenu )
+@@ -426,7 +426,7 @@ void SAL_CALL RecentFilesMenuController::setPopupMenu( const Reference< css::awt
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/simpletextstatusbarcontroller.cxx b/framework/source/uielement/simpletextstatusbarcontroller.cxx
+index 20e3680..ab2d021 100644
+--- framework/source/uielement/simpletextstatusbarcontroller.cxx
++++ framework/source/uielement/simpletextstatusbarcontroller.cxx
+@@ -48,8 +48,8 @@
+ #endif
+ #include <classes/resource.hrc>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -121,7 +121,7 @@ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException
+ {
+     const rtl::OUString aPropValueName( RTL_CONSTASCII_USTRINGPARAM( "Value" ));
+     
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() ); 
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() ); 
+     
+     svt::StatusbarController::initialize( aArguments );
+ 
+diff --git a/framework/source/uielement/spinfieldtoolbarcontroller.cxx b/framework/source/uielement/spinfieldtoolbarcontroller.cxx
+index 2c3b0fd..c4dae9d 100644
+--- framework/source/uielement/spinfieldtoolbarcontroller.cxx
++++ framework/source/uielement/spinfieldtoolbarcontroller.cxx
+@@ -87,8 +87,8 @@
+ #ifndef _SVTOOLS_TOOLBOXCONTROLLER_HXX
+ #include <svtools/toolboxcontroller.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -274,7 +274,7 @@ SpinfieldToolbarController::~SpinfieldToolbarController()
+ void SAL_CALL SpinfieldToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     m_pToolbar->SetItemWindow( m_nID, 0 );
+     delete m_pSpinfieldControl;
+@@ -297,7 +297,7 @@ throw ( RuntimeException )
+     bool                         bFloat( false );
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+diff --git a/framework/source/uielement/statusbar.cxx b/framework/source/uielement/statusbar.cxx
+index 5b7b771..d068e5d 100644
+--- framework/source/uielement/statusbar.cxx
++++ framework/source/uielement/statusbar.cxx
+@@ -71,7 +71,7 @@ FrameworkStatusBar::~FrameworkStatusBar()
+         
+ void FrameworkStatusBar::SetStatusBarManager( StatusBarManager* pStatusBarManager )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     m_pMgr = pStatusBarManager;
+ }
+ 
+diff --git a/framework/source/uielement/statusbarwrapper.cxx b/framework/source/uielement/statusbarwrapper.cxx
+index 780e543..b40dcb9 100644
+--- framework/source/uielement/statusbarwrapper.cxx
++++ framework/source/uielement/statusbarwrapper.cxx
+@@ -181,7 +181,7 @@ void SAL_CALL StatusBarWrapper::initialize( const Sequence< Any >& aArguments )
+             StatusBar*        pStatusBar( 0 );
+             StatusBarManager* pStatusBarManager( 0 );
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 Window* pWindow = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
+                 if ( pWindow )
+                 {
+diff --git a/framework/source/uielement/statusindicatorinterfacewrapper.cxx b/framework/source/uielement/statusindicatorinterfacewrapper.cxx
+index 145e119..a339aaf 100644
+--- framework/source/uielement/statusindicatorinterfacewrapper.cxx
++++ framework/source/uielement/statusindicatorinterfacewrapper.cxx
+@@ -57,7 +57,7 @@
+ //_________________________________________________________________________________________________________________
+ 
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ using namespace rtl;
+ using namespace cppu;
+diff --git a/framework/source/uielement/togglebuttontoolbarcontroller.cxx b/framework/source/uielement/togglebuttontoolbarcontroller.cxx
+index c5305e1..b08f5ad 100644
+--- framework/source/uielement/togglebuttontoolbarcontroller.cxx
++++ framework/source/uielement/togglebuttontoolbarcontroller.cxx
+@@ -85,7 +85,7 @@
+ //_________________________________________________________________________________________________________________
+ 
+ #include <rtl/uri.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <comphelper/processfactory.hxx>
+ #include <unotools/ucbstreamhelper.hxx>
+ #include <tools/urlobj.hxx>
+@@ -138,7 +138,7 @@ ToggleButtonToolbarController::~ToggleButtonToolbarController()
+ void SAL_CALL ToggleButtonToolbarController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     ComplexToolbarController::dispose();
+ }
+ 
+@@ -154,7 +154,7 @@ throw ( RuntimeException )
+     ::com::sun::star::util::URL  aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -198,7 +198,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ {
+     uno::Reference< awt::XWindow > xWindow;
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     if (( m_eStyle == STYLE_DROPDOWNBUTTON ) ||
+         ( m_eStyle == STYLE_TOGGLE_DROPDOWNBUTTON ))
+     {
+@@ -228,7 +228,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+ void ToggleButtonToolbarController::executeControlCommand( const ::com::sun::star::frame::ControlCommand& rControlCommand )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if (( m_eStyle == STYLE_DROPDOWNBUTTON ) ||
+         ( m_eStyle == STYLE_TOGGLE_DROPDOWNBUTTON ))
+@@ -373,7 +373,7 @@ void ToggleButtonToolbarController::executeControlCommand( const ::com::sun::sta
+ 
+ IMPL_LINK( ToggleButtonToolbarController, MenuSelectHdl, Menu *, pMenu )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     sal_uInt16 nItemId = pMenu->GetCurItemId();
+     if ( nItemId > 0 && nItemId <= m_aDropdownMenuList.size() )
+diff --git a/framework/source/uielement/toolbarsmenucontroller.cxx b/framework/source/uielement/toolbarsmenucontroller.cxx
+index 3e64fe8..90dcc94 100644
+--- framework/source/uielement/toolbarsmenucontroller.cxx
++++ framework/source/uielement/toolbarsmenucontroller.cxx
+@@ -262,7 +262,7 @@ void ToolbarsMenuController::addCommand(
+             m_xPopupMenu->enableItem( nItemId, sal_False );
+     }
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     Image                aImage;
+ 	const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
+@@ -290,7 +290,7 @@ Reference< XDispatch > ToolbarsMenuController::getDispatchFromCommandURL( const
+     Reference< XFrame >          xFrame;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         xURLTransformer = m_xURLTransformer;
+         xFrame = m_xFrame;
+     }
+@@ -401,7 +401,7 @@ Sequence< Sequence< com::sun::star::beans::PropertyValue > > ToolbarsMenuControl
+ 
+                     aToolBarInfo.aToolBarResName = aResName;
+ 
+-                    vos::OGuard	aGuard( Application::GetSolarMutex() );
++                    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                     Reference< css::awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
+                     Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+                     if ( pWindow )
+@@ -441,7 +441,7 @@ void ToolbarsMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r
+     if( SvtMiscOptions().DisableUICustomization() )
+         return;
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     resetPopupMenu( rPopupMenu );
+ 
+     m_aCommandVector.clear();
+@@ -541,7 +541,7 @@ void ToolbarsMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r
+                 m_xPopupMenu->checkItem( nIndex, sal_True );
+ 
+             {
+-                vos::OGuard	aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+                 VCLXPopupMenu* pXPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( m_xPopupMenu );
+                 PopupMenu*     pVCLPopupMenu = (PopupMenu *)pXPopupMenu->GetMenu();
+ 
+@@ -653,7 +653,7 @@ void SAL_CALL ToolbarsMenuController::statusChanged( const FeatureStateEvent& Ev
+ 
+ 	if ( xPopupMenu.is() )
+     {
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         VCLXPopupMenu* pXPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( xPopupMenu );
+         PopupMenu*     pVCLPopupMenu = (PopupMenu *)pXPopupMenu->GetMenu();
+ 
+@@ -713,7 +713,7 @@ void SAL_CALL ToolbarsMenuController::select( const css::awt::MenuEvent& rEvent
+         VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
+         if ( pPopupMenu )
+         {
+-            vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+             PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
+ 
+             rtl::OUString aCmd( pVCLPopupMenu->GetItemCommand( rEvent.MenuId ));
+@@ -907,7 +907,7 @@ void SAL_CALL ToolbarsMenuController::setPopupMenu( const Reference< css::awt::X
+     if ( m_xFrame.is() && !m_xPopupMenu.is() )
+     {
+         // Create popup menu on demand
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         m_xPopupMenu = xPopupMenu;
+ 	    m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
+diff --git a/framework/source/uielement/toolbarwrapper.cxx b/framework/source/uielement/toolbarwrapper.cxx
+index 60a34f5..ae9b07f 100644
+--- framework/source/uielement/toolbarwrapper.cxx
++++ framework/source/uielement/toolbarwrapper.cxx
+@@ -225,7 +225,7 @@ void SAL_CALL ToolBarWrapper::initialize( const Sequence< Any >& aArguments ) th
+             ToolBar* pToolBar = 0;
+             ToolBarManager* pToolBarManager = 0;
+             {
+-                vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+                 Window* pWindow = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
+                 if ( pWindow )
+                 {
+diff --git a/framework/source/uifactory/addonstoolboxfactory.cxx b/framework/source/uifactory/addonstoolboxfactory.cxx
+index d6450c5..4a2e745 100644
+--- framework/source/uifactory/addonstoolboxfactory.cxx
++++ framework/source/uifactory/addonstoolboxfactory.cxx
+@@ -262,7 +262,7 @@ throw ( ::com::sun::star::container::NoSuchElementException,
+         aPropValue.Value <<= aResourceURL;
+         aPropSeq[2] <<= aPropValue;
+         
+-        vos::OGuard	aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+         AddonsToolBarWrapper* pToolBarWrapper = new AddonsToolBarWrapper( m_xServiceManager );
+         xToolBar = Reference< ::com::sun::star::ui::XUIElement >( (OWeakObject *)pToolBarWrapper, UNO_QUERY );
+         Reference< XInitialization > xInit( xToolBar, UNO_QUERY );
+diff --git a/framework/source/uifactory/menubarfactory.cxx b/framework/source/uifactory/menubarfactory.cxx
+index 4b52308..31766c0 100644
+--- framework/source/uifactory/menubarfactory.cxx
++++ framework/source/uifactory/menubarfactory.cxx
+@@ -237,7 +237,7 @@ throw ( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::l
+     aPropValue.Value <<= bMenuOnly;
+     aPropSeq[4] <<= aPropValue;
+     
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     MenuBarWrapper* pMenuBarWrapper = new MenuBarWrapper( m_xServiceManager );
+     Reference< ::com::sun::star::ui::XUIElement > xMenuBar( (OWeakObject *)pMenuBarWrapper, UNO_QUERY );
+     Reference< XInitialization > xInit( xMenuBar, UNO_QUERY );
+diff --git a/framework/source/uifactory/statusbarfactory.cxx b/framework/source/uifactory/statusbarfactory.cxx
+index 8e63f7a..8b19212 100644
+--- framework/source/uifactory/statusbarfactory.cxx
++++ framework/source/uifactory/statusbarfactory.cxx
+@@ -229,7 +229,7 @@ throw ( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::l
+     aPropValue.Value <<= bPersistent;
+     aPropSeq[3] <<= aPropValue;
+     
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     StatusBarWrapper* pStatusBarWrapper = new StatusBarWrapper( m_xServiceManager );
+     Reference< ::com::sun::star::ui::XUIElement > xStatusBar( (OWeakObject *)pStatusBarWrapper, UNO_QUERY );
+     Reference< XInitialization > xInit( xStatusBar, UNO_QUERY );
+diff --git a/framework/source/uifactory/toolboxfactory.cxx b/framework/source/uifactory/toolboxfactory.cxx
+index a98c4d2..21860df 100644
+--- framework/source/uifactory/toolboxfactory.cxx
++++ framework/source/uifactory/toolboxfactory.cxx
+@@ -235,7 +235,7 @@ throw ( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::l
+     aPropValue.Value <<= bPopupMode;
+     aPropSeq[4] <<= aPropValue;
+     
+-    vos::OGuard	aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aGuard( Application::GetSolarMutex() );
+     ToolBarWrapper* pToolBarWrapper = new ToolBarWrapper( m_xServiceManager );
+     Reference< ::com::sun::star::ui::XUIElement > xToolBar( (OWeakObject *)pToolBarWrapper, UNO_QUERY );
+     Reference< XInitialization > xInit( xToolBar, UNO_QUERY );
+diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk
+index ec79047..bf5bb39 100644
+--- framework/util/makefile.mk
++++ framework/util/makefile.mk
+@@ -121,6 +121,7 @@ SHL1STDLIBS=    \
+ 				$(CPPUHELPERLIB)	\
+                 $(TOOLSLIB)		    \
+                 $(VOSLIB)		    \
++                $(VCLLIB)		    \
+ 				$(CPPULIB)		    \
+                 $(SALLIB)
+ 
+diff --git a/goodies/inc/goodies/base3d.hxx b/goodies/inc/goodies/base3d.hxx
+index 3991290..e2d062b 100644
+--- goodies/inc/goodies/base3d.hxx
++++ goodies/inc/goodies/base3d.hxx
+@@ -65,8 +65,8 @@
+ #include <vcl/timer.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_GEN_HXX
+@@ -101,7 +101,7 @@ private:
+ 	// Texturverwaltung
+ 	Container				maTextureStore;
+ 	AutoTimer				maTimer;
+-	vos::OMutex				maMutex;
++	osl::Mutex				maMutex;
+ 
+ 	// link for timer
+     DECL_LINK(TimerHdl, AutoTimer*);
+diff --git a/goodies/inc/pch/precompiled_goodies.hxx b/goodies/inc/pch/precompiled_goodies.hxx
+index e1d4ec0..3adc329 100644
+--- goodies/inc/pch/precompiled_goodies.hxx
++++ goodies/inc/pch/precompiled_goodies.hxx
+@@ -175,7 +175,7 @@
+ #include "vcl/window.hxx"
+ 
+ #include "vos/macros.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+ 
+diff --git a/goodies/source/unographic/descriptor.cxx b/goodies/source/unographic/descriptor.cxx
+index b317496..3937534 100644
+--- goodies/source/unographic/descriptor.cxx
++++ goodies/source/unographic/descriptor.cxx
+@@ -39,7 +39,7 @@
+ #include "descriptor.hxx"
+ 
+ #include <rtl/uuid.h>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <unotools/ucbstreamhelper.hxx>
+ #include <svtools/filter.hxx>
+ #include <svtools/itemprop.hxx>
+@@ -328,7 +328,7 @@ uno::Sequence< uno::Type > SAL_CALL GraphicDescriptor::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL GraphicDescriptor::getImplementationId()
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard 						aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 						aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+@@ -344,7 +344,7 @@ uno::Sequence< sal_Int8 > SAL_CALL GraphicDescriptor::getImplementationId()
+ 
+ ::comphelper::PropertySetInfo* GraphicDescriptor::createPropertySetInfo()
+ {
+-	vos::OGuard 					aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 					aGuard( Application::GetSolarMutex() );
+ 	::comphelper::PropertySetInfo*	pRet = new ::comphelper::PropertySetInfo();
+ 
+ 	static ::comphelper::PropertyMapEntry aEntries[] =
+@@ -383,7 +383,7 @@ void GraphicDescriptor::_setPropertyValues( const comphelper::PropertyMapEntry**
+ void GraphicDescriptor::_getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, uno::Any* pValues )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	while( *ppEntries )
+ 	{
+diff --git a/goodies/source/unographic/graphic.cxx b/goodies/source/unographic/graphic.cxx
+index d835552..3140337 100644
+--- goodies/source/unographic/graphic.cxx
++++ goodies/source/unographic/graphic.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+@@ -131,7 +131,7 @@ void SAL_CALL Graphic::release() throw()
+ uno::Sequence< sal_Int8 > SAL_CALL Graphic::getImplementationId_Static() 
+ 	throw(uno::RuntimeException)
+ {
+-	vos::OGuard 						aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 						aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+@@ -250,7 +250,7 @@ uno::Sequence< sal_Int8 > SAL_CALL Graphic::getImplementationId()
+ 
+ awt::Size SAL_CALL Graphic::getSize(  ) throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	::Size aVclSize;
+ 	if( mpGraphic && ( mpGraphic->GetType() != GRAPHIC_NONE ) )
+@@ -263,7 +263,7 @@ awt::Size SAL_CALL Graphic::getSize(  ) throw (uno::RuntimeException)
+ 
+ uno::Sequence< ::sal_Int8 > SAL_CALL Graphic::getDIB(  ) throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpGraphic && ( mpGraphic->GetType() != GRAPHIC_NONE ) )
+ 	{
+@@ -281,7 +281,7 @@ uno::Sequence< ::sal_Int8 > SAL_CALL Graphic::getDIB(  ) throw (uno::RuntimeExce
+ 
+ uno::Sequence< ::sal_Int8 > SAL_CALL Graphic::getMaskDIB(  ) throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpGraphic && ( mpGraphic->GetType() != GRAPHIC_NONE ) )
+ 	{
+diff --git a/goodies/source/unographic/provider.cxx b/goodies/source/unographic/provider.cxx
+index 27de661..2c2fb71 100644
+--- goodies/source/unographic/provider.cxx
++++ goodies/source/unographic/provider.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+@@ -163,7 +163,7 @@ uno::Sequence< uno::Type > SAL_CALL GraphicProvider::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL GraphicProvider::getImplementationId() 
+ 	throw(uno::RuntimeException)
+ {
+-	vos::OGuard 						aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 						aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+diff --git a/goodies/source/unographic/renderer.cxx b/goodies/source/unographic/renderer.cxx
+index 7f7ecd8..6b7b812 100644
+--- goodies/source/unographic/renderer.cxx
++++ goodies/source/unographic/renderer.cxx
+@@ -49,8 +49,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+@@ -212,7 +212,7 @@ uno::Sequence< uno::Type > SAL_CALL GraphicRendererVCL::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL GraphicRendererVCL::getImplementationId()
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard 						aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 						aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+@@ -228,7 +228,7 @@ uno::Sequence< sal_Int8 > SAL_CALL GraphicRendererVCL::getImplementationId()
+ 
+ ::comphelper::PropertySetInfo* GraphicRendererVCL::createPropertySetInfo()
+ {
+-	vos::OGuard 					aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 					aGuard( Application::GetSolarMutex() );
+ 	::comphelper::PropertySetInfo*	pRet = new ::comphelper::PropertySetInfo();
+ 
+ 	static ::comphelper::PropertyMapEntry aEntries[] =
+@@ -254,7 +254,7 @@ void GraphicRendererVCL::_setPropertyValues( const comphelper::PropertyMapEntry*
+ 		   lang::IllegalArgumentException,
+ 	   	   lang::WrappedTargetException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	while( *ppEntries )
+ 	{
+@@ -306,7 +306,7 @@ void GraphicRendererVCL::_setPropertyValues( const comphelper::PropertyMapEntry*
+ void GraphicRendererVCL::_getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, uno::Any* pValues )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	while( *ppEntries )
+ 	{
+diff --git a/linguistic/source/thesdsp.hxx b/linguistic/source/thesdsp.hxx
+index 5b6cd10..2514fb2 100644
+--- linguistic/source/thesdsp.hxx
++++ linguistic/source/thesdsp.hxx
+@@ -69,7 +69,7 @@
+ #include <cppuhelper/interfacecontainer.h>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #ifndef _TOOLS_TABLE_HXX
+ #include <tools/table.hxx>
+diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx
+index 7949839..9fda917 100644
+--- reportdesign/source/core/api/ReportDefinition.cxx
++++ reportdesign/source/core/api/ReportDefinition.cxx
+@@ -77,8 +77,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COMPHELPER_UNO3_HXX_
+ #include <comphelper/uno3.hxx>
+@@ -1341,7 +1341,7 @@ void SAL_CALL OReportDefinition::removeCloseListener( const uno::Reference< util
+ // XCloseable
+ void SAL_CALL OReportDefinition::close( ::sal_Bool _bDeliverOwnership ) throw (util::CloseVetoException, uno::RuntimeException)
+ {
+-    vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	::osl::ResettableMutexGuard aGuard(m_aMutex);
+ 	::connectivity::checkDisposed(ReportDefinitionBase::rBHelper.bDisposed);
+@@ -1548,7 +1548,7 @@ void SAL_CALL OReportDefinition::storeToStorage( const uno::Reference< embed::XS
+     if ( !_xStorageToSaveTo.is() )
+         throw lang::IllegalArgumentException(RPT_RESSTRING(RID_STR_ARGUMENT_IS_NULL,m_aProps->m_xContext->getServiceManager()),*this,1);
+ 
+-    vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	::connectivity::checkDisposed(ReportDefinitionBase::rBHelper.bDisposed);
+ 	// create XStatusIndicator
+diff --git a/reportdesign/source/core/sdr/UndoActions.cxx b/reportdesign/source/core/sdr/UndoActions.cxx
+index e50ac35..48badb9 100644
+--- reportdesign/source/core/sdr/UndoActions.cxx
++++ reportdesign/source/core/sdr/UndoActions.cxx
+@@ -658,7 +658,7 @@ void SAL_CALL OXUndoEnvironment::propertyChange( const PropertyChangeEvent& _rEv
+ 	// TODO: this is a potential race condition: two threads here could in theory
+ 	// add their undo actions out-of-order
+ 
+-    ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ORptUndoPropertyAction* pUndo = NULL;
+     try
+     {
+@@ -703,7 +703,7 @@ void SAL_CALL OXUndoEnvironment::propertyChange( const PropertyChangeEvent& _rEv
+ //------------------------------------------------------------------------------
+ void SAL_CALL OXUndoEnvironment::elementInserted(const ContainerEvent& evt) throw(uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ 
+ 	// neues Object zum lauschen
+@@ -764,7 +764,7 @@ void OXUndoEnvironment::implSetModified()
+ //------------------------------------------------------------------------------
+ void SAL_CALL OXUndoEnvironment::elementReplaced(const ContainerEvent& evt) throw(uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ 
+     Reference< XInterface >  xIface(evt.ReplacedElement,uno::UNO_QUERY);
+@@ -780,7 +780,7 @@ void SAL_CALL OXUndoEnvironment::elementReplaced(const ContainerEvent& evt) thro
+ //------------------------------------------------------------------------------
+ void SAL_CALL OXUndoEnvironment::elementRemoved(const ContainerEvent& evt) throw(uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ 
+     Reference< uno::XInterface >  xIface( evt.Element, UNO_QUERY );
+diff --git a/reportdesign/source/filter/xml/xmlExport.cxx b/reportdesign/source/filter/xml/xmlExport.cxx
+index 73c38b5..08dd451 100644
+--- reportdesign/source/filter/xml/xmlExport.cxx
++++ reportdesign/source/filter/xml/xmlExport.cxx
+@@ -122,8 +122,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <boost/bind.hpp>
+@@ -797,7 +797,7 @@ void ORptExport::exportReportComponentAutoStyles(const Reference<XSection>& _xPr
+         {
+             UniReference< XMLShapeExport > xShapeExport = GetShapeExport();
+             xShapeExport->seekShapes(_xProp.get());
+-            vos::OGuard aGuard(Application::GetSolarMutex());
++            osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+             xShapeExport->collectShapeAutoStyles(xShape.get());
+         }
+         else
+diff --git a/reportdesign/source/filter/xml/xmlfilter.cxx b/reportdesign/source/filter/xml/xmlfilter.cxx
+index 905a7b0..86845fc 100644
+--- reportdesign/source/filter/xml/xmlfilter.cxx
++++ reportdesign/source/filter/xml/xmlfilter.cxx
+@@ -115,8 +115,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFXECODE_HXX
+ #include <svtools/sfxecode.hxx>
+@@ -1060,7 +1060,7 @@ void ORptFilter::endDocument( void )
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// Clear the shape import to sort the shapes  (and not in the
+ 	// destructor that might be called after the import has finished
+ 	// for Java filters.
+diff --git a/reportdesign/source/ui/dlg/GroupsSorting.cxx b/reportdesign/source/ui/dlg/GroupsSorting.cxx
+index 8f803dd..ea165d2 100644
+--- reportdesign/source/ui/dlg/GroupsSorting.cxx
++++ reportdesign/source/ui/dlg/GroupsSorting.cxx
+@@ -656,7 +656,7 @@ void SAL_CALL OFieldExpressionControl::elementInserted(const container::Containe
+ {
+     if ( m_bIgnoreEvent )
+         return;
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_aMutex );
+     sal_Int32 nGroupPos = 0;
+     if ( evt.Accessor >>= nGroupPos )
+@@ -705,7 +705,7 @@ void SAL_CALL OFieldExpressionControl::elementReplaced(const container::Containe
+ //------------------------------------------------------------------------------
+ void SAL_CALL OFieldExpressionControl::elementRemoved(const container::ContainerEvent& evt) throw(uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_aMutex );
+ 
+     if ( m_bIgnoreEvent )
+diff --git a/reportdesign/source/ui/misc/toolboxcontroller.cxx b/reportdesign/source/ui/misc/toolboxcontroller.cxx
+index 292e27d..7eb863d 100644
+--- reportdesign/source/ui/misc/toolboxcontroller.cxx
++++ reportdesign/source/ui/misc/toolboxcontroller.cxx
+@@ -85,8 +85,8 @@
+ #ifndef INCLUDED_SVTOOLS_MENUOPTIONS_HXX
+ #include <svtools/menuoptions.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _PASTEDLG_HXX
+ #include <so3/pastedlg.hxx>
+@@ -198,7 +198,7 @@ void SAL_CALL OToolboxController::release() throw ()
+ void SAL_CALL OToolboxController::initialize( const Sequence< Any >& _rArguments ) throw (Exception, RuntimeException)
+ {
+ 	ToolboxController::initialize(_rArguments);
+-	vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+ 	ToolBox*    pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
+@@ -363,7 +363,7 @@ void SAL_CALL OToolboxController::statusChanged( const FeatureStateEvent& Event
+ Reference< awt::XWindow > SAL_CALL OToolboxController::createPopupWindow() throw (RuntimeException)
+ {
+ 	// execute the menu
+-	vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);	
+ 
+ 	Reference< awt::XWindow > xRet;
+@@ -380,7 +380,7 @@ Reference< awt::XWindow > SAL_CALL OToolboxController::createPopupWindow() throw
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL OToolboxController::getSubToolbarName() throw (uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);	
+     uno::Reference< frame::XSubToolbarController> xSub(m_pToolbarController.getRef(),uno::UNO_QUERY);
+     if ( xSub.is() )
+@@ -390,7 +390,7 @@ Reference< awt::XWindow > SAL_CALL OToolboxController::createPopupWindow() throw
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OToolboxController::functionSelected( const ::rtl::OUString& rCommand ) throw (uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);	
+     
+     uno::Reference< frame::XSubToolbarController> xSub(m_pToolbarController.getRef(),uno::UNO_QUERY);
+@@ -402,7 +402,7 @@ void SAL_CALL OToolboxController::functionSelected( const ::rtl::OUString& rComm
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OToolboxController::updateImage(  ) throw (uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);	
+     
+     uno::Reference< frame::XSubToolbarController> xSub(m_pToolbarController.getRef(),uno::UNO_QUERY);
+diff --git a/reportdesign/source/ui/report/ReportController.cxx b/reportdesign/source/ui/report/ReportController.cxx
+index 393eeeb..c71f722 100644
+--- reportdesign/source/ui/report/ReportController.cxx
++++ reportdesign/source/ui/report/ReportController.cxx
+@@ -1062,7 +1062,7 @@ namespace
+ // -----------------------------------------------------------------------------
+ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >& aArgs)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	if ( !getView() )
+     {
+@@ -1890,7 +1890,7 @@ sal_Bool SAL_CALL OReportController::suspend(sal_Bool _bSuspend) throw( RuntimeE
+ 	if ( getBroadcastHelper().bInDispose || getBroadcastHelper().bDisposed )
+ 		return sal_True;
+ 
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 
+     if ( getView() && getView()->IsInModalMode() )
+@@ -2229,7 +2229,7 @@ void OReportController::notifyGroupSections(const ContainerEvent& _rEvent,bool _
+     uno::Reference< report::XGroup> xGroup(_rEvent.Element,uno::UNO_QUERY);
+ 	if ( xGroup.is() )
+ 	{
+-        ::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	    ::osl::MutexGuard aGuard(m_aMutex);
+         sal_Int32 nGroupPos = 0;
+ 		_rEvent.Accessor >>= nGroupPos;
+@@ -2269,14 +2269,14 @@ void SAL_CALL OReportController::elementRemoved( const ContainerEvent& _rEvent )
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OReportController::elementReplaced( const ContainerEvent& /*_rEvent*/ ) throw(RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	OSL_ENSURE(0,"Not yet implemented!");
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OReportController::propertyChange( const beans::PropertyChangeEvent& evt ) throw (RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+ 	try
+ 	{
+diff --git a/sal/inc/osl/mutex.hxx b/sal/inc/osl/mutex.hxx
+index 8d630a1..7bc8b93 100644
+--- sal/inc/osl/mutex.hxx
++++ sal/inc/osl/mutex.hxx
+@@ -254,6 +254,32 @@ namespace osl
+ 	typedef Guard<Mutex> MutexGuard;
+ 	typedef ClearableGuard<Mutex> ClearableMutexGuard;
+ 	typedef ResettableGuard< Mutex > ResettableMutexGuard;
++
++    /** SolarMutex interface, needed for SolarMutex.
++        Deprecated, used just for Application::GetSolarMutex().
++    */
++    class SolarMutex
++    {
++        public:
++            /** Blocks if mutex is already in use
++            */
++            virtual void SAL_CALL acquire() = 0;
++
++            /** Tries to get the mutex without blocking.
++            */
++            virtual sal_Bool SAL_CALL tryToAcquire() = 0;
++
++            /** Releases the mutex.
++            */
++            virtual void SAL_CALL release() = 0;
++
++        protected:
++            SolarMutex() {}
++            virtual ~SolarMutex() {}
++    };
++
++    typedef osl::Guard< SolarMutex > SolarMutexGuard;
++    typedef osl::ClearableGuard< SolarMutex > ClearableSolarMutexGuard;
+ }
+ 
+ #endif  /* __cplusplus */
+diff --git a/sal/typesconfig/core b/sal/typesconfig/core
+index 9e29fe7..b5b6cf5 100644
+Binary files a/sal/typesconfig/core and b/sal/typesconfig/core differ
+diff --git a/sc/inc/refreshtimer.hxx b/sc/inc/refreshtimer.hxx
+index 0a43183..b4acce2 100644
+--- sc/inc/refreshtimer.hxx
++++ sc/inc/refreshtimer.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _SV_TIMER_HXX
+ #include <vcl/timer.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #define SC_REFRESHTIMER_CONTROL_LIST 0
+@@ -55,7 +55,7 @@ DECLARE_LIST( ScRefreshTimerList, ScRefreshTimer* )
+ class ScRefreshTimerControl
+ {
+ private:
+-			::vos::OMutex		aMutex;
++			osl::Mutex			aMutex;
+ 			USHORT				nBlockRefresh;
+ 
+ public:
+@@ -73,7 +73,7 @@ public:
+ 											++nBlockRefresh;
+ 									}
+ 			BOOL				IsRefreshAllowed() const	{ return !nBlockRefresh; }
+-			::vos::OMutex&		GetMutex()					{ return aMutex; }
++			osl::Mutex&			GetMutex()					{ return aMutex; }
+ };
+ 
+ 
+diff --git a/sc/inc/unoguard.hxx b/sc/inc/unoguard.hxx
+index 7ffb0f8..d9d6e68 100644
+--- sc/inc/unoguard.hxx
++++ sc/inc/unoguard.hxx
+@@ -36,11 +36,11 @@
+ #ifndef SC_UNOGUARD_HXX
+ #define SC_UNOGUARD_HXX
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+-class ScUnoGuard : public NAMESPACE_VOS(OGuard)
++class ScUnoGuard : public osl::SolarMutexGuard
+ {
+ public:
+ 			ScUnoGuard();
+diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
+index fa1e026..5e332bb 100644
+--- sc/source/core/data/documen3.cxx
++++ sc/source/core/data/documen3.cxx
+@@ -772,7 +772,7 @@ void ScDocument::RemoveUnoObject( SfxListener& rObject )
+ 			//	This check is done after calling EndListening, so a later BroadcastUno call
+ 			//	won't touch this object.
+ 
+-			vos::IMutex& rSolarMutex = Application::GetSolarMutex();
++            osl::SolarMutex& rSolarMutex = Application::GetSolarMutex();
+ 			if ( rSolarMutex.tryToAcquire() )
+ 			{
+ 				//	BroadcastUno is always called with the SolarMutex locked, so if it
+diff --git a/sc/source/core/tool/refreshtimer.cxx b/sc/source/core/tool/refreshtimer.cxx
+index f90ff55..fabf84a 100644
+--- sc/source/core/tool/refreshtimer.cxx
++++ sc/source/core/tool/refreshtimer.cxx
+@@ -49,7 +49,7 @@ ScRefreshTimerProtector::ScRefreshTimerProtector( ScRefreshTimerControl * const
+ 	{
+ 		(*ppControl)->SetAllowRefresh( FALSE );
+ 		// wait for any running refresh in another thread to finnish
+-		::vos::OGuard aGuard( (*ppControl)->GetMutex() );
++		osl::MutexGuard aGuard( (*ppControl)->GetMutex() );
+ 	}
+ }
+ 
+@@ -78,7 +78,7 @@ void ScRefreshTimer::Timeout()
+ 	if ( ppControl && *ppControl && (*ppControl)->IsRefreshAllowed() )
+ 	{
+ 		// now we COULD make the call in another thread ...
+-		::vos::OGuard aGuard( (*ppControl)->GetMutex() );
++		osl::MutexGuard aGuard( (*ppControl)->GetMutex() );
+ 		maTimeoutHdl.Call( this );
+ 		// restart from now on, don't execute immediately again if timed out
+ 		// a second time during refresh
+diff --git a/sc/source/filter/lotus/lotimpop.cxx b/sc/source/filter/lotus/lotimpop.cxx
+index 9b3d601..5795f75 100644
+--- sc/source/filter/lotus/lotimpop.cxx
++++ sc/source/filter/lotus/lotimpop.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sc.hxx"
+ #include "lotimpop.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include "attrib.hxx"
+@@ -59,7 +59,7 @@
+ #include "lotattr.hxx"
+ 
+ 
+-static NAMESPACE_VOS( OMutex )		aLotImpSemaphore;
++static osl::Mutex aLotImpSemaphore;
+ 
+ 
+ ImportLotus::ImportLotus( SvStream& aStream, ScDocument* pDoc, CharSet eQ ) :
+diff --git a/sc/source/ui/app/drwtrans.cxx b/sc/source/ui/app/drwtrans.cxx
+index 13f2ac4..165d015 100644
+--- sc/source/ui/app/drwtrans.cxx
++++ sc/source/ui/app/drwtrans.cxx
+@@ -78,7 +78,7 @@
+ #include <svtools/itempool.hxx>
+ #include <svtools/urlbmk.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include "drwtrans.hxx"
+ #include "docsh.hxx"
+diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
+index faf4957..5f1f576 100644
+--- sc/source/ui/app/transobj.cxx
++++ sc/source/ui/app/transobj.cxx
+@@ -53,7 +53,7 @@
+ #include <sot/storage.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/virdev.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <sfx2/app.hxx>
+ #include <sfx2/docfile.hxx>
+ 
+diff --git a/sc/source/ui/inc/AccessibleContextBase.hxx b/sc/source/ui/inc/AccessibleContextBase.hxx
+index 1d8c564..60203b9 100644
+--- sc/source/ui/inc/AccessibleContextBase.hxx
++++ sc/source/ui/inc/AccessibleContextBase.hxx
+@@ -74,8 +74,8 @@
+ #ifndef _COM_SUN_STAR_LANG_INDEXOUTOFBOUNDSEXCEPTION_HPP_
+ #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _CPPUHELPER_INTERFACECONTAINER_H_
+ #include <cppuhelper/interfacecontainer.h>
+diff --git a/sc/source/ui/unoobj/scdetect.cxx b/sc/source/ui/unoobj/scdetect.cxx
+index b2c94f0..ba78c19 100644
+--- sc/source/ui/unoobj/scdetect.cxx
++++ sc/source/ui/unoobj/scdetect.cxx
+@@ -111,7 +111,7 @@
+ #include <svtools/eitem.hxx>
+ #include <svtools/stritem.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/sfxecode.hxx>
+ #include <svtools/ehdl.hxx>
+ #include <sot/storinfo.hxx>
+@@ -328,7 +328,7 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
+ 	}
+ 
+     // can't check the type for external filters, so set the "dont" flag accordingly
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     //SfxFilterFlags nMust = SFX_FILTER_IMPORT, nDont = SFX_FILTER_NOTINSTALLED;
+ 
+     SfxAllItemSet *pSet = new SfxAllItemSet( SFX_APP()->GetPool() );
+diff --git a/sc/source/ui/unoobj/unodoc.cxx b/sc/source/ui/unoobj/unodoc.cxx
+index 4bc02c9..0c215fd 100644
+--- sc/source/ui/unoobj/unodoc.cxx
++++ sc/source/ui/unoobj/unodoc.cxx
+@@ -47,8 +47,8 @@
+ 
+ #include "scmod.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -73,7 +73,7 @@ uno::Sequence< rtl::OUString > SAL_CALL ScDocument_getSupportedServiceNames() th
+ uno::Reference< uno::XInterface > SAL_CALL ScDocument_createInstance(
+                 const uno::Reference< lang::XMultiServiceFactory > & /* rSMgr */ ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	ScDLL::Init();
+ 	SfxObjectShell* pShell = new ScDocShell( SFX_CREATE_MODE_STANDARD );
+ 	return uno::Reference< uno::XInterface >( pShell->GetModel() );
+diff --git a/sc/source/ui/unoobj/unoguard.cxx b/sc/source/ui/unoobj/unoguard.cxx
+index a65b110..f13acc8 100644
+--- sc/source/ui/unoobj/unoguard.cxx
++++ sc/source/ui/unoobj/unoguard.cxx
+@@ -46,7 +46,7 @@
+ //------------------------------------------------------------------------
+ 
+ ScUnoGuard::ScUnoGuard() :
+-	OGuard( Application::GetSolarMutex() )
++	osl::SolarMutexGuard( Application::GetSolarMutex() )
+ {
+ }
+ 
+diff --git a/sc/source/ui/vba/vbashape.cxx b/sc/source/ui/vba/vbashape.cxx
+index d82d612..4b08a73 100644
+--- sc/source/ui/vba/vbashape.cxx
++++ sc/source/ui/vba/vbashape.cxx
+@@ -40,7 +40,7 @@
+ #include<com/sun/star/drawing/XDrawPagesSupplier.hpp>
+ #include<com/sun/star/drawing/XDrawPages.hpp>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <svx/unopage.hxx>
+ #include <svx/unoshape.hxx>
+@@ -53,7 +53,6 @@
+ 
+ using namespace ::org::openoffice;
+ using namespace ::com::sun::star;
+-using namespace ::vos;
+ 
+ ScVbaShape::ScVbaShape( const uno::Reference< vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape > xShape, const uno::Reference< drawing::XShapes > xShapes, sal_Int32 nType ) throw( lang::IllegalArgumentException ) : ScVbaShape_BASE( xParent, xContext ), m_xShape( xShape ), m_xShapes( xShapes ), m_nType( nType )
+ {
+@@ -313,7 +312,7 @@ ScVbaShape::TextFrame() throw (uno::RuntimeException)
+ void SAL_CALL 
+ ScVbaShape::Delete() throw (uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_xShapes->remove( m_xShape );
+ }
+ 
+diff --git a/sc/workben/addin.cxx b/sc/workben/addin.cxx
+index d326e9e..1689a7f 100644
+--- sc/workben/addin.cxx
++++ sc/workben/addin.cxx
+@@ -38,7 +38,7 @@
+ #include <usr/factoryhlp.hxx>
+ #include <usr/macros.hxx>
+ #include <usr/reflserv.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <tools/debug.hxx>
+ #include <tools/date.hxx>
+diff --git a/scripting/source/basprov/baslibnode.cxx b/scripting/source/basprov/baslibnode.cxx
+index 3addf03..06b5238 100644
+--- scripting/source/basprov/baslibnode.cxx
++++ scripting/source/basprov/baslibnode.cxx
+@@ -48,8 +48,8 @@
+ #include <com/sun/star/script/browse/BrowseNodeTypes.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -106,7 +106,7 @@ namespace basprov
+ 
+     ::rtl::OUString BasicLibraryNodeImpl::getName(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return m_sLibName;
+     }
+@@ -115,7 +115,7 @@ namespace basprov
+ 
+     Sequence< Reference< browse::XBrowseNode > > BasicLibraryNodeImpl::getChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         Sequence< Reference< browse::XBrowseNode > > aChildNodes; 
+ 
+@@ -149,7 +149,7 @@ namespace basprov
+ 
+     sal_Bool BasicLibraryNodeImpl::hasChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Bool bReturn = sal_False;
+         if ( m_xLibrary.is() )
+@@ -162,7 +162,7 @@ namespace basprov
+ 
+     sal_Int16 BasicLibraryNodeImpl::getType(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return browse::BrowseNodeTypes::CONTAINER;
+     }
+diff --git a/scripting/source/basprov/basmethnode.cxx b/scripting/source/basprov/basmethnode.cxx
+index b56457d..580ceeb 100644
+--- scripting/source/basprov/basmethnode.cxx
++++ scripting/source/basprov/basmethnode.cxx
+@@ -59,8 +59,8 @@
+ #include <com/sun/star/script/browse/BrowseNodeTypes.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -164,7 +164,7 @@ namespace basprov
+ 
+     ::rtl::OUString BasicMethodNodeImpl::getName(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         ::rtl::OUString sMethodName;
+         if ( m_pMethod )
+@@ -177,7 +177,7 @@ namespace basprov
+ 
+     Sequence< Reference< browse::XBrowseNode > > BasicMethodNodeImpl::getChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return Sequence< Reference< browse::XBrowseNode > >(); 
+     }
+@@ -186,7 +186,7 @@ namespace basprov
+ 
+     sal_Bool BasicMethodNodeImpl::hasChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return sal_False;
+     }
+@@ -195,7 +195,7 @@ namespace basprov
+ 
+     sal_Int16 BasicMethodNodeImpl::getType(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return browse::BrowseNodeTypes::SCRIPT;
+     }
+diff --git a/scripting/source/basprov/basmodnode.cxx b/scripting/source/basprov/basmodnode.cxx
+index 63bdabf..579a34b 100644
+--- scripting/source/basprov/basmodnode.cxx
++++ scripting/source/basprov/basmodnode.cxx
+@@ -48,8 +48,8 @@
+ #include <com/sun/star/script/browse/BrowseNodeTypes.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -104,7 +104,7 @@ namespace basprov
+ 
+     ::rtl::OUString BasicModuleNodeImpl::getName(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         ::rtl::OUString sModuleName;
+         if ( m_pModule )
+@@ -117,7 +117,7 @@ namespace basprov
+ 
+     Sequence< Reference< browse::XBrowseNode > > BasicModuleNodeImpl::getChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         Sequence< Reference< browse::XBrowseNode > > aChildNodes; 
+ 
+@@ -146,7 +146,7 @@ namespace basprov
+ 
+     sal_Bool BasicModuleNodeImpl::hasChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Bool bReturn = sal_False;
+         if ( m_pModule )
+@@ -163,7 +163,7 @@ namespace basprov
+ 
+     sal_Int16 BasicModuleNodeImpl::getType(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return browse::BrowseNodeTypes::CONTAINER;
+     }
+diff --git a/scripting/source/basprov/basprov.cxx b/scripting/source/basprov/basprov.cxx
+index 1a36813..a6e9308 100644
+--- scripting/source/basprov/basprov.cxx
++++ scripting/source/basprov/basprov.cxx
+@@ -70,8 +70,8 @@
+ #ifndef _OSL_FILE_HXX_
+ #include <osl/file.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -303,7 +303,7 @@ namespace basprov
+     {
+         // TODO
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         if ( aArguments.getLength() == 1 && aArguments[0].getValueType() ==  ::getCppuType(  (const ::rtl::OUString* ) NULL ))
+         {
+@@ -376,7 +376,7 @@ namespace basprov
+     {
+         // TODO
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         Reference< provider::XScript > xScript;
+         Reference< lang::XMultiComponentFactory > xMcFac ( m_xContext->getServiceManager() );
+@@ -478,7 +478,7 @@ namespace basprov
+     {
+         // TODO
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return ::rtl::OUString::createFromAscii( "Basic" );
+     }
+@@ -487,7 +487,7 @@ namespace basprov
+ 
+     Sequence< Reference< browse::XBrowseNode > > BasicProviderImpl::getChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         Reference< script::XLibraryContainer > xLibContainer;
+         BasicManager* pBasicManager = NULL;
+@@ -545,7 +545,7 @@ namespace basprov
+ 
+     sal_Bool BasicProviderImpl::hasChildNodes(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Bool bReturn = sal_False;
+         Reference< script::XLibraryContainer > xLibContainer;
+@@ -567,7 +567,7 @@ namespace basprov
+ 
+     sal_Int16 BasicProviderImpl::getType(  ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return browse::BrowseNodeTypes::CONTAINER;
+     }
+diff --git a/scripting/source/basprov/basscript.cxx b/scripting/source/basprov/basscript.cxx
+index c7c088b..5d2b921 100644
+--- scripting/source/basprov/basscript.cxx
++++ scripting/source/basprov/basscript.cxx
+@@ -40,8 +40,8 @@
+ #include "basscript.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -106,7 +106,7 @@ namespace basprov
+         // TODO: throw CannotConvertException
+         // TODO: check length of aOutParamIndex, aOutParam
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         Any aReturn;
+ 
+diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx
+index 790e2ca..dde8ed7 100644
+--- sd/inc/pch/precompiled_sd.hxx
++++ sd/inc/pch/precompiled_sd.hxx
+@@ -920,7 +920,7 @@
+ 
+ #include "osl/diagnose.h"
+ #include "vos/module.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "osl/thread.hxx"
+ #include "vos/xception.hxx"
+ //---MARKER---
+diff --git a/sd/source/core/CustomAnimationPreset.cxx b/sd/source/core/CustomAnimationPreset.cxx
+index b931af6..b532b97 100644
+--- sd/source/core/CustomAnimationPreset.cxx
++++ sd/source/core/CustomAnimationPreset.cxx
+@@ -89,8 +89,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _UNTOOLS_UCBSTREAMHELPER_HXX
+@@ -103,7 +103,6 @@
+ 
+ #include <algorithm>
+ 
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::animations;
+ using namespace ::com::sun::star::presentation;
+@@ -619,7 +618,7 @@ const CustomAnimationPresets& CustomAnimationPresets::getCustomAnimationPresets(
+ {
+ 	if( !mpCustomAnimationPresets )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		if( !mpCustomAnimationPresets )
+ 		{
+diff --git a/sd/source/core/TransitionPreset.cxx b/sd/source/core/TransitionPreset.cxx
+index 7f788a3..242ad21 100644
+--- sd/source/core/TransitionPreset.cxx
++++ sd/source/core/TransitionPreset.cxx
+@@ -55,8 +55,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _URLOBJ_HXX
+@@ -94,7 +94,6 @@
+ #include "sdpage.hxx"
+ #include <hash_map>
+ 
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::animations;
+ 
+@@ -214,7 +213,7 @@ const TransitionPresetList& TransitionPreset::getTransitionPresetList()
+ {
+ 	if( !mpTransitionPresetList )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if( !mpTransitionPresetList )
+ 		{
+ 			mpTransitionPresetList = new sd::TransitionPresetList();
+diff --git a/sd/source/core/sdpage_animations.cxx b/sd/source/core/sdpage_animations.cxx
+index 4408614..78665ad 100644
+--- sd/source/core/sdpage_animations.cxx
++++ sd/source/core/sdpage_animations.cxx
+@@ -50,8 +50,8 @@
+ #include <comphelper/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _OUTLINER_HXX
+@@ -86,7 +86,6 @@
+ #include "EffectMigration.hxx"
+ #endif
+ 
+-using namespace ::vos;
+ using namespace ::sd;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::animations;
+diff --git a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
+index c216b34..57e90a6 100644
+--- sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
++++ sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
+@@ -110,8 +110,8 @@
+ #include "accessibility.hrc"
+ #include "sdresid.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ using namespace ::rtl;
+@@ -438,26 +438,26 @@ void SAL_CALL
+             if( aServices.getLength() >= 2 &&
+                 aServices[1] == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PresentationView")))
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+                 sName = String( SdResId(SID_SD_A11Y_I_DRAWVIEW_N) );
+             }
+             else
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                 
+                 sName = String( SdResId(SID_SD_A11Y_D_DRAWVIEW_N) );
+             }
+         }
+         else if (sFirstService == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.NotesView")))
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             sName = String( SdResId(SID_SD_A11Y_I_NOTESVIEW_N) );
+         }
+         else if (sFirstService == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.HandoutView")))
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             sName = String( SdResId(SID_SD_A11Y_I_HANDOUTVIEW_N) );
+         }
+@@ -495,26 +495,26 @@ void SAL_CALL
+             if( aServices.getLength() >= 2 &&
+                 aServices[1] == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PresentationView")))
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+                 sDescription = String( SdResId(SID_SD_A11Y_I_DRAWVIEW_D) );
+             }
+             else
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                 
+                 sDescription = String( SdResId(SID_SD_A11Y_D_DRAWVIEW_D) );
+             }
+         }
+         else if (sFirstService == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.NotesView")))
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             sDescription = String( SdResId(SID_SD_A11Y_I_NOTESVIEW_D) );
+         }
+         else if (sFirstService == OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.HandoutView")))
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             sDescription = String( SdResId(SID_SD_A11Y_I_HANDOUTVIEW_D) );
+         }
+@@ -539,7 +539,7 @@ sal_Bool
+     AccessibleDrawDocumentView::implIsSelected( sal_Int32 nAccessibleChildIndex ) 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard                           aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                           aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< view::XSelectionSupplier >  xSel( mxController, uno::UNO_QUERY );
+     sal_Bool                                    bRet = sal_False;
+ 
+@@ -584,7 +584,7 @@ void
+     AccessibleDrawDocumentView::implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard                           aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                           aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< view::XSelectionSupplier >  xSel( mxController, uno::UNO_QUERY );
+     AccessibleShape* pAccessibleChild;
+ 
+diff --git a/sd/source/ui/accessibility/AccessibleOutlineView.cxx b/sd/source/ui/accessibility/AccessibleOutlineView.cxx
+index 7142b09..3e31341 100644
+--- sd/source/ui/accessibility/AccessibleOutlineView.cxx
++++ sd/source/ui/accessibility/AccessibleOutlineView.cxx
+@@ -111,8 +111,8 @@
+ #include "accessibility.hrc"
+ #include "sdresid.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ using namespace ::com::sun::star;
+@@ -131,7 +131,7 @@ AccessibleOutlineView::AccessibleOutlineView (
+     : AccessibleDocumentViewBase (pSdWindow, pViewShell, rxController, rxParent),
+       maTextHelper( ::std::auto_ptr< SvxEditSource >( NULL ) )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // Beware! Here we leave the paths of the UNO API and descend into the
+     // depths of the core.  Necessary for making the edit engine accessible.
+@@ -242,7 +242,7 @@ void AccessibleOutlineView::FireEvent(const AccessibleEventObject& aEvent )
+ 
+ void AccessibleOutlineView::Activated (void)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // delegate listener handling to children manager.
+     maTextHelper.SetFocus(sal_True);
+@@ -250,7 +250,7 @@ void AccessibleOutlineView::Activated (void)
+ 
+ void AccessibleOutlineView::Deactivated (void)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // delegate listener handling to children manager.
+     maTextHelper.SetFocus(sal_False);
+@@ -300,7 +300,7 @@ void SAL_CALL
+     AccessibleOutlineView::CreateAccessibleName (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return String( SdResId(SID_SD_A11Y_I_OUTLINEVIEW_N) );
+ }
+@@ -313,14 +313,14 @@ void SAL_CALL
+     AccessibleOutlineView::CreateAccessibleDescription (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return String( SdResId(SID_SD_A11Y_I_OUTLINEVIEW_D) );
+ }
+ 
+ void AccessibleOutlineView::UpdateChildren()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // Update visible children
+     maTextHelper.UpdateChildren();
+diff --git a/sd/source/ui/accessibility/AccessibleScrollPanel.cxx b/sd/source/ui/accessibility/AccessibleScrollPanel.cxx
+index 5df3da1..6e23f4f 100644
+--- sd/source/ui/accessibility/AccessibleScrollPanel.cxx
++++ sd/source/ui/accessibility/AccessibleScrollPanel.cxx
+@@ -49,7 +49,7 @@
+ #endif
+ #include <unotools/accessiblestatesethelper.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ using ::rtl::OUString;
+@@ -89,7 +89,7 @@ sal_Int32 SAL_CALL
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     sal_Int32 nChildCount (mrTreeNode.GetControlContainer().GetControlCount());
+     if (GetScrollPanel().IsVerticalScrollBarVisible())
+@@ -109,7 +109,7 @@ Reference<XAccessible> SAL_CALL
+         RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     Reference<XAccessible> xChild;
+     
+diff --git a/sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx b/sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx
+index 535119a..43e454d 100644
+--- sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx
++++ sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx
+@@ -59,9 +59,8 @@
+ #include "sdpage.hxx"
+ #include "sdresid.hxx"
+ 
+-#ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+-#endif
++#include <osl/mutex.hxx>
+ 
+ #include "glob.hrc"
+ 
+@@ -129,7 +128,7 @@ void AccessibleSlideSorterObject::FireAccessibleEvent (
+ 
+ void SAL_CALL AccessibleSlideSorterObject::disposing (void)
+ {
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     // Send a disposing to all listeners.
+ 	if (mnClientId != 0)
+@@ -189,7 +188,7 @@ sal_Int32 SAL_CALL AccessibleSlideSorterObject::getAccessibleIndexInParent()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     sal_Int32 nIndexInParent(-1);
+ 
+     if (mxParent.is())
+@@ -239,7 +238,7 @@ sal_Int16 SAL_CALL AccessibleSlideSorterObject::getAccessibleRole (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     SdPage* pPage = GetPage();
+     if (pPage != NULL)
+@@ -267,7 +266,7 @@ Reference<XAccessibleStateSet> SAL_CALL
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     ::utl::AccessibleStateSetHelper* pStateSet = new ::utl::AccessibleStateSetHelper();
+ 
+     if (mxParent.is())
+@@ -402,7 +401,7 @@ Reference<XAccessible> SAL_CALL
+ awt::Rectangle SAL_CALL AccessibleSlideSorterObject::getBounds (void) 
+     throw (RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     Rectangle aBBox (mrSlideSorterController.GetView().GetPageBoundingBox (
+         mnPageNumber,
+@@ -446,7 +445,7 @@ awt::Point SAL_CALL AccessibleSlideSorterObject::getLocation ()
+ awt::Point SAL_CALL AccessibleSlideSorterObject::getLocationOnScreen (void) 
+     throw (RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     awt::Point aLocation (getLocation());
+ 
+diff --git a/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx b/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
+index 0a00d4a..ec00dae 100644
+--- sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
++++ sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
+@@ -69,9 +69,8 @@
+ #include <unotools/accessiblestatesethelper.hxx>
+ #include <rtl/ref.hxx>
+ 
+-#ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+-#endif
++#include <osl/mutex.hxx>
+ 
+ using ::rtl::OUString;
+ using namespace ::com::sun::star;
+@@ -242,7 +241,7 @@ Reference<XAccessible > SAL_CALL AccessibleSlideSorterView::getAccessibleParent
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     Reference<XAccessible> xParent;
+ 
+     if (mpContentWindow != NULL)
+@@ -260,7 +259,7 @@ sal_Int32 SAL_CALL AccessibleSlideSorterView::getAccessibleIndexInParent (void)
+ {
+     OSL_ASSERT(getAccessibleParent().is());
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     sal_Int32 nIndexInParent(-1);
+ 
+     
+@@ -298,7 +297,7 @@ sal_Int16 SAL_CALL AccessibleSlideSorterView::getAccessibleRole (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    ::vos::OGuard aGuard (Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     return String(SdResId(SID_SD_A11Y_I_SLIDEVIEW_D));
+ }
+@@ -310,7 +309,7 @@ sal_Int16 SAL_CALL AccessibleSlideSorterView::getAccessibleRole (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    ::vos::OGuard aGuard (Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     return String(SdResId(SID_SD_A11Y_I_SLIDEVIEW_N));
+ }
+@@ -333,7 +332,7 @@ Reference<XAccessibleStateSet > SAL_CALL
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     ::utl::AccessibleStateSetHelper* pStateSet = new ::utl::AccessibleStateSetHelper();
+ 
+     pStateSet->AddState(AccessibleStateType::FOCUSABLE);
+@@ -451,7 +450,7 @@ Reference<XAccessible> SAL_CALL
+ {
+     ThrowIfDisposed();
+     Reference<XAccessible> xAccessible;
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     const Point aTestPoint (aPoint.X, aPoint.Y);  
+     ::sd::slidesorter::model::SharedPageDescriptor pHitDescriptor (
+@@ -470,7 +469,7 @@ awt::Rectangle SAL_CALL AccessibleSlideSorterView::getBounds (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     awt::Rectangle aBBox;
+ 
+     if (mpContentWindow != NULL)
+@@ -516,7 +515,7 @@ awt::Point SAL_CALL AccessibleSlideSorterView::getLocationOnScreen()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     awt::Point aParentLocationOnScreen;
+ 
+     Reference<XAccessible> xParent (getAccessibleParent());
+@@ -561,7 +560,7 @@ void SAL_CALL AccessibleSlideSorterView::grabFocus (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     if (mpContentWindow)
+         mpContentWindow->GrabFocus();
+@@ -600,7 +599,7 @@ void SAL_CALL AccessibleSlideSorterView::selectAccessibleChild (sal_Int32 nChild
+         RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     AccessibleSlideSorterObject* pChild = mpImpl->GetAccessibleChild(nChildIndex);
+     if (pChild != NULL)
+@@ -618,7 +617,7 @@ sal_Bool SAL_CALL AccessibleSlideSorterView::isAccessibleChildSelected (sal_Int3
+ {
+     ThrowIfDisposed();
+     sal_Bool bIsSelected = sal_False;
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     AccessibleSlideSorterObject* pChild = mpImpl->GetAccessibleChild(nChildIndex);
+     if (pChild != NULL)
+@@ -636,7 +635,7 @@ void SAL_CALL AccessibleSlideSorterView::clearAccessibleSelection (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     mrSlideSorterController.GetPageSelector().DeselectAllPages();
+ }
+@@ -648,7 +647,7 @@ void SAL_CALL AccessibleSlideSorterView::selectAllAccessibleChildren (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     mrSlideSorterController.GetPageSelector().SelectAllPages();
+ }
+@@ -659,7 +658,7 @@ void SAL_CALL AccessibleSlideSorterView::selectAllAccessibleChildren (void)
+ sal_Int32 SAL_CALL AccessibleSlideSorterView::getSelectedAccessibleChildCount (void) 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     return mrSlideSorterController.GetPageSelector().GetSelectedPageCount();
+ }
+ 
+@@ -670,7 +669,7 @@ Reference<XAccessible > SAL_CALL
+     AccessibleSlideSorterView::getSelectedAccessibleChild (sal_Int32 nSelectedChildIndex ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     Reference<XAccessible> xChild;
+ 
+     ::sd::slidesorter::controller::PageSelector& rSelector (mrSlideSorterController.GetPageSelector());
+@@ -702,7 +701,7 @@ void SAL_CALL AccessibleSlideSorterView::deselectAccessibleChild (sal_Int32 nChi
+         RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     AccessibleSlideSorterObject* pChild = mpImpl->GetAccessibleChild(nChildIndex);
+     if (pChild != NULL)
+diff --git a/sd/source/ui/accessibility/AccessibleSlideView.cxx b/sd/source/ui/accessibility/AccessibleSlideView.cxx
+index 379fdfc..9b41c6c 100644
+--- sd/source/ui/accessibility/AccessibleSlideView.cxx
++++ sd/source/ui/accessibility/AccessibleSlideView.cxx
+@@ -70,9 +70,8 @@
+ #include <comphelper/accessibleeventnotifier.hxx>
+ #endif
+ 
+-#ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+-#endif
++#include <osl/mutex.hxx>
+ 
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+@@ -115,7 +114,7 @@ void AccessibleSlideViewObject::FireAccessibleEvent( short nEventId, const uno::
+ 
+ void AccessibleSlideViewObject::Destroyed (void)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     mxParent = uno::Reference< accessibility::XAccessible >();
+ 
+     // Send a disposing to all listeners.
+@@ -226,7 +225,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideViewObject:
+ sal_Int32 SAL_CALL AccessibleSlideViewObject::getAccessibleIndexInParent() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     sal_Int32           nRet = -1;
+ 
+     if( mxParent.is() )
+@@ -263,7 +262,7 @@ sal_Int16 SAL_CALL AccessibleSlideViewObject::getAccessibleRole()
+ ::rtl::OUString SAL_CALL AccessibleSlideViewObject::getAccessibleName() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     ::rtl::OUString     aRet;
+ 
+     if( mxParent.is() )
+@@ -297,7 +296,7 @@ uno::Reference< accessibility::XAccessibleRelationSet > SAL_CALL AccessibleSlide
+ uno::Reference< accessibility::XAccessibleStateSet > SAL_CALL AccessibleSlideViewObject::getAccessibleStateSet() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard                   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                   aSolarGuard( Application::GetSolarMutex() );
+     ::utl::AccessibleStateSetHelper*    pStateSet = new ::utl::AccessibleStateSetHelper;
+ 
+     if( mxParent.is() )
+@@ -414,7 +413,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideViewObject:
+ awt::Rectangle SAL_CALL AccessibleSlideViewObject::getBounds() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     awt::Rectangle      aRet;
+ 
+     if( mxParent.is() )
+@@ -459,7 +458,7 @@ awt::Point SAL_CALL AccessibleSlideViewObject::getLocation()
+ awt::Point SAL_CALL AccessibleSlideViewObject::getLocationOnScreen() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     awt::Point          aRet;
+ 
+     if( mxParent.is() )
+@@ -621,7 +620,7 @@ void AccessibleSlideView::FireAccessibleEvent( short nEventId, const uno::Any& r
+ 
+ void AccessibleSlideView::Destroyed (void)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     mpDoc = NULL;
+     mpView = NULL;
+     mpParentWindow = NULL;
+@@ -638,7 +637,7 @@ void AccessibleSlideView::Destroyed (void)
+ 
+ sal_Int32 AccessibleSlideView::ImplGetVisibleChildCount() const
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     sal_Int32           nVisibleCount = 0;
+ 
+     if( mpDoc )
+@@ -655,7 +654,7 @@ sal_Int32 AccessibleSlideView::ImplGetVisibleChildCount() const
+ 
+ uno::Reference< accessibility::XAccessible > AccessibleSlideView::ImplGetVisibleChild( sal_Int32 nVisibleChild ) const
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+     sal_Int32                                       nVisibleCount = 0;
+ 
+@@ -834,7 +833,7 @@ uno::Reference< accessibility::XAccessibleContext > SAL_CALL AccessibleSlideView
+ sal_Int32 SAL_CALL AccessibleSlideView::getAccessibleChildCount() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     sal_Int32           nVisibleCount = 0;
+ 
+     if( mpDoc )
+@@ -852,7 +851,7 @@ sal_Int32 SAL_CALL AccessibleSlideView::getAccessibleChildCount()
+ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getAccessibleChild( sal_Int32 i ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+     if( mpDoc )
+@@ -872,7 +871,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getAc
+ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getAccessibleParent() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+     if( mpDoc && mpView && mpParentWindow )
+@@ -891,7 +890,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getAc
+ sal_Int32 SAL_CALL AccessibleSlideView::getAccessibleIndexInParent() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     sal_Int32           nRet = -1;
+ 
+     uno::Reference<accessibility::XAccessible> xParentAcc (getAccessibleParent());
+@@ -926,7 +925,7 @@ sal_Int16 SAL_CALL AccessibleSlideView::getAccessibleRole()
+ ::rtl::OUString SAL_CALL AccessibleSlideView::getAccessibleDescription() 
+     throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return String( SdResId(SID_SD_A11Y_I_SLIDEVIEW_D) );
+ }
+@@ -936,7 +935,7 @@ sal_Int16 SAL_CALL AccessibleSlideView::getAccessibleRole()
+ ::rtl::OUString SAL_CALL AccessibleSlideView::getAccessibleName() 
+     throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return String( SdResId(SID_SD_A11Y_I_SLIDEVIEW_N) );
+ }
+@@ -1029,7 +1028,7 @@ sal_Bool SAL_CALL AccessibleSlideView::containsPoint( const awt::Point& aPoint )
+ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getAccessibleAtPoint( const awt::Point& aPoint ) 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     uno::Reference< accessibility::XAccessible > xRet;
+ 
+@@ -1055,7 +1054,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getAc
+ awt::Rectangle SAL_CALL AccessibleSlideView::getBounds() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     awt::Rectangle      aRet;
+ 
+     if( mpDoc && mpView && mpParentWindow )
+@@ -1094,7 +1093,7 @@ awt::Point SAL_CALL AccessibleSlideView::getLocation()
+ awt::Point SAL_CALL AccessibleSlideView::getLocationOnScreen() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     awt::Point aParentLocationOnScreen;
+ 
+     uno::Reference<accessibility::XAccessible> xParent (getAccessibleParent());
+@@ -1132,7 +1131,7 @@ awt::Size SAL_CALL AccessibleSlideView::getSize()
+ void SAL_CALL AccessibleSlideView::grabFocus() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     if( mpDoc && mpView && mpParentWindow )
+         mpParentWindow->GrabFocus();
+@@ -1167,7 +1166,7 @@ sal_Int32 SAL_CALL AccessibleSlideView::getBackground (void)
+ void SAL_CALL AccessibleSlideView::selectAccessibleChild( sal_Int32 nChildIndex ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    aChild( ImplGetVisibleChild( nChildIndex ) );
+ 
+     if( mpDoc && mpView && mpParentWindow )
+@@ -1187,7 +1186,7 @@ void SAL_CALL AccessibleSlideView::selectAccessibleChild( sal_Int32 nChildIndex
+ sal_Bool SAL_CALL AccessibleSlideView::isAccessibleChildSelected( sal_Int32 nChildIndex ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    aChild( ImplGetVisibleChild( nChildIndex ) );
+     sal_Bool                                        bRet = sal_False;
+ 
+@@ -1215,7 +1214,7 @@ sal_Bool SAL_CALL AccessibleSlideView::isAccessibleChildSelected( sal_Int32 nChi
+ void SAL_CALL AccessibleSlideView::clearAccessibleSelection() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     if( mpDoc && mpView )
+         mpView->SelectAllSlides( sal_False );
+@@ -1226,7 +1225,7 @@ void SAL_CALL AccessibleSlideView::clearAccessibleSelection()
+ void SAL_CALL AccessibleSlideView::selectAllAccessibleChildren() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     if( mpDoc && mpView )
+         mpView->SelectAllSlides( sal_True );
+@@ -1237,7 +1236,7 @@ void SAL_CALL AccessibleSlideView::selectAllAccessibleChildren()
+ sal_Int32 SAL_CALL AccessibleSlideView::getSelectedAccessibleChildCount() 
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard       aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard       aSolarGuard( Application::GetSolarMutex() );
+     sal_Int32               nRet = 0;
+ 
+     if( mpDoc )
+@@ -1264,7 +1263,7 @@ sal_Int32 SAL_CALL AccessibleSlideView::getSelectedAccessibleChildCount()
+ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+     if( mpDoc )
+@@ -1294,7 +1293,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL AccessibleSlideView::getSe
+ void SAL_CALL AccessibleSlideView::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) 
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+ 
+     if( mpDoc )
+     {
+diff --git a/sd/source/ui/accessibility/AccessibleTaskPane.cxx b/sd/source/ui/accessibility/AccessibleTaskPane.cxx
+index f63d068..5d08102 100644
+--- sd/source/ui/accessibility/AccessibleTaskPane.cxx
++++ sd/source/ui/accessibility/AccessibleTaskPane.cxx
+@@ -48,7 +48,7 @@
+ #include <com/sun/star/accessibility/AccessibleRole.hpp>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ using namespace ::rtl;
+diff --git a/sd/source/ui/accessibility/AccessibleTreeNode.cxx b/sd/source/ui/accessibility/AccessibleTreeNode.cxx
+index 30c05ee..06dd3e4 100644
+--- sd/source/ui/accessibility/AccessibleTreeNode.cxx
++++ sd/source/ui/accessibility/AccessibleTreeNode.cxx
+@@ -55,6 +55,7 @@
+ #endif
+ 
+ #include <vcl/svapp.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/window.hxx>
+ #include <svtools/colorcfg.hxx>
+ 
+@@ -195,7 +196,7 @@ sal_Int32 SAL_CALL AccessibleTreeNode::getAccessibleChildCount (void)
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     return mrTreeNode.GetControlContainer().GetControlCount();
+ }
+ 
+@@ -207,7 +208,7 @@ Reference<XAccessible > SAL_CALL
+     throw (lang::IndexOutOfBoundsException, RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     
+     if (nIndex<0 || (sal_uInt32)nIndex>=mrTreeNode.GetControlContainer().GetControlCount())
+         throw lang::IndexOutOfBoundsException();
+@@ -228,7 +229,7 @@ Reference<XAccessible > SAL_CALL AccessibleTreeNode::getAccessibleParent (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     return mxParent;
+ }
+ 
+@@ -240,7 +241,7 @@ sal_Int32 SAL_CALL AccessibleTreeNode::getAccessibleIndexInParent (void)
+ {
+     OSL_ASSERT(getAccessibleParent().is());
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     sal_Int32 nIndexInParent(-1);
+ 
+     
+@@ -309,7 +310,7 @@ Reference<XAccessibleStateSet > SAL_CALL
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     return mrStateSet.get();
+ }
+ 
+@@ -450,7 +451,7 @@ Reference<XAccessible> SAL_CALL
+ {
+     ThrowIfDisposed();
+     Reference<XAccessible> xChildAtPoint;
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     sal_Int32 nChildCount = getAccessibleChildCount();
+     for (sal_Int32 nIndex=0; nIndex<nChildCount; ++nIndex)
+@@ -532,7 +533,7 @@ awt::Point SAL_CALL AccessibleTreeNode::getLocationOnScreen()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     awt::Point aLocationOnScreen;
+ 
+     ::Window* pWindow = mrTreeNode.GetWindow();
+@@ -564,7 +565,7 @@ void SAL_CALL AccessibleTreeNode::grabFocus (void)
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+     if (mrTreeNode.GetWindow() != NULL)
+         mrTreeNode.GetWindow()->GrabFocus();
+diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx
+index 78a80f7..2ad0137 100644
+--- sd/source/ui/app/sdxfer.cxx
++++ sd/source/ui/app/sdxfer.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
+ #include <com/sun/star/lang/XComponent.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _UNTOOLS_UCBSTREAMHELPER_HXX
+ #include <unotools/ucbstreamhelper.hxx>
+diff --git a/sd/source/ui/dlg/TemplateScanner.cxx b/sd/source/ui/dlg/TemplateScanner.cxx
+index 7c09e2d..071a03d 100644
+--- sd/source/ui/dlg/TemplateScanner.cxx
++++ sd/source/ui/dlg/TemplateScanner.cxx
+@@ -46,7 +46,7 @@
+ #endif
+ 
+ #include <tools/debug.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #ifndef _COM_SUN_STAR_FRAME_XDOCUMENTTEMPLATES_HPP_
+@@ -302,7 +302,7 @@ TemplateScanner::State TemplateScanner::ScanEntry (void)
+             }
+             else
+             {
+-                ::vos::OGuard aGuard(Application::GetSolarMutex());
++                osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+                 maFolderList.push_back(mpTemplateDirectory);
+             }
+ 
+diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
+index 1581ed4..6629546 100644
+--- sd/source/ui/dlg/dlgass.cxx
++++ sd/source/ui/dlg/dlgass.cxx
+@@ -47,8 +47,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_MSGBOX_HXX
+@@ -981,7 +981,7 @@ void AssistentDlgImpl::TemplateScanDone (
+     std::vector<TemplateDir*>& rTemplateFolder)
+ {
+ 	//	This method is called from a thread.  Therefore we get the solar mutex.
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     // Copy the contents of the given template folders to a local list.
+     maPresentList.swap (rTemplateFolder);
+diff --git a/sd/source/ui/dlg/filedlg.cxx b/sd/source/ui/dlg/filedlg.cxx
+index 872402f..99c6941 100644
+--- sd/source/ui/dlg/filedlg.cxx
++++ sd/source/ui/dlg/filedlg.cxx
+@@ -94,8 +94,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -159,7 +159,7 @@ public:
+ // ------------------------------------------------------------------------
+ void SAL_CALL SdFileDialog_Imp::ControlStateChanged( const css::ui::dialogs::FilePickerEvent& aEvent )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	switch( aEvent.ElementId ) 
+ 	{
+@@ -262,7 +262,7 @@ IMPL_LINK( SdFileDialog_Imp, StopMusicHdl, void *, EMPTYARG )
+ 	if(mbDuringPreparePlaying)
+ 		return( 0L ); //don't reset the error state of maSound during prepare playing
+ 
+-	 ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	 osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// reset, so that sound file gets unlocked
+ 	maSound.SetSoundName( String() );
+diff --git a/sd/source/ui/framework/configuration/ConfigurationController.cxx b/sd/source/ui/framework/configuration/ConfigurationController.cxx
+index fe4b3bc..7e68a81 100644
+--- sd/source/ui/framework/configuration/ConfigurationController.cxx
++++ sd/source/ui/framework/configuration/ConfigurationController.cxx
+@@ -58,7 +58,7 @@
+ #endif
+ 
+ #include <comphelper/stl_types.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ using namespace ::com::sun::star;
+@@ -182,7 +182,7 @@ void SAL_CALL ConfigurationController::disposing (void)
+ 	aEvent.Source = uno::Reference<uno::XInterface>((cppu::OWeakObject*)this);
+ 
+     {
+-        const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++        const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+         mpBroadcaster->DisposeAndClear();
+     }
+ 
+@@ -496,7 +496,7 @@ void SAL_CALL ConfigurationController::initialize (const Sequence<Any>& aArgumen
+ 
+     if (aArguments.getLength() > 0)
+     {
+-        const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++        const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 
+         mpConfigurationUpdater->SetControllerManager(
+             Reference<XControllerManager>(aArguments[0], UNO_QUERY));
+diff --git a/sd/source/ui/framework/module/ViewShellWrapper.cxx b/sd/source/ui/framework/module/ViewShellWrapper.cxx
+index b9f2d5f..275447f 100644
+--- sd/source/ui/framework/module/ViewShellWrapper.cxx
++++ sd/source/ui/framework/module/ViewShellWrapper.cxx
+@@ -46,7 +46,7 @@
+ 
+ #include <rtl/uuid.h>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ 
+ using namespace ::com::sun::star;
+@@ -182,7 +182,7 @@ const Sequence<sal_Int8>& ViewShellWrapper::getUnoTunnelId (void)
+ 	static Sequence<sal_Int8>* pSequence = NULL;
+ 	if (pSequence == NULL)
+ 	{
+-        const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++        const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 		if (pSequence == NULL)
+ 		{
+ 			static ::com::sun::star::uno::Sequence<sal_Int8> aSequence (16);
+diff --git a/sd/source/ui/framework/pane/Pane.cxx b/sd/source/ui/framework/pane/Pane.cxx
+index ba315b2..c78476d 100644
+--- sd/source/ui/framework/pane/Pane.cxx
++++ sd/source/ui/framework/pane/Pane.cxx
+@@ -39,7 +39,7 @@
+ 
+ #include <rtl/uuid.h>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <toolkit/helper/vclunohelper.hxx>
+ 
+ #include <cppcanvas/vclfactory.hxx>
+@@ -147,7 +147,7 @@ const Sequence<sal_Int8>& Pane::getUnoTunnelId (void)
+ 	static Sequence<sal_Int8>* pSequence = NULL;
+ 	if (pSequence == NULL)
+ 	{
+-        const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++        const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 		if (pSequence == NULL)
+ 		{
+ 			static ::com::sun::star::uno::Sequence<sal_Int8> aSequence (16);
+diff --git a/sd/source/ui/framework/pane/PaneController.cxx b/sd/source/ui/framework/pane/PaneController.cxx
+index 6419268..b7d8373 100644
+--- sd/source/ui/framework/pane/PaneController.cxx
++++ sd/source/ui/framework/pane/PaneController.cxx
+@@ -67,7 +67,7 @@
+ 
+ #include <comphelper/stl_types.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <set>
+ #include <boost/bind.hpp>
+ 
+diff --git a/sd/source/ui/framework/view/ViewController.cxx b/sd/source/ui/framework/view/ViewController.cxx
+index 24435f7..e3298db 100644
+--- sd/source/ui/framework/view/ViewController.cxx
++++ sd/source/ui/framework/view/ViewController.cxx
+@@ -53,7 +53,7 @@
+ 
+ #include <comphelper/stl_types.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <boost/bind.hpp>
+ #include <hash_map>
+diff --git a/sd/source/ui/notes/EditWindow.cxx b/sd/source/ui/notes/EditWindow.cxx
+index 84fc288..7917ed8 100755
+--- sd/source/ui/notes/EditWindow.cxx
++++ sd/source/ui/notes/EditWindow.cxx
+@@ -61,8 +61,8 @@
+ #ifndef _SVX_FHGTITEM_HXX
+ #include <svx/fhgtitem.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -904,7 +904,7 @@ void EditWindow::Delete()
+ void EditWindow::InsertText(const String& Text)
+ {
+     DBG_ASSERT( mpEditView, "EditView missing" );
+-    ::vos::OGuard aGuard (::Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+     if (mpEditView)
+         mpEditView->InsertText(Text);
+ }
+diff --git a/sd/source/ui/notes/TextLogger.cxx b/sd/source/ui/notes/TextLogger.cxx
+index 6668c93..3107ac7 100755
+--- sd/source/ui/notes/TextLogger.cxx
++++ sd/source/ui/notes/TextLogger.cxx
+@@ -40,8 +40,8 @@
+ 
+ #include "EditWindow.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -55,7 +55,7 @@ TextLogger& TextLogger::Instance (void)
+ {
+     if (spInstance == NULL)
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         if (spInstance == NULL)
+             spInstance = new TextLogger ();
+     }
+diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx
+index b7fd834..f0aebf1 100644
+--- sd/source/ui/slideshow/slideshowimpl.cxx
++++ sd/source/ui/slideshow/slideshowimpl.cxx
+@@ -114,7 +114,7 @@
+ #include "canvas/elapsedtime.hxx"
+ #include "canvas/prioritybooster.hxx"
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ // TODO(Q3): This breaks encapsulation. Either export
+ // these strings from avmedia, or provide an XManager
+@@ -1202,7 +1202,7 @@ void SlideshowImpl::onFirstPaint()
+ 		mpShowWindow->SetBackground();
+ 	}
+ 
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	maUpdateTimer.SetTimeout( (ULONG)100 );
+ 	maUpdateTimer.Start();
+ }
+@@ -1229,7 +1229,7 @@ void SlideshowImpl::paint( const Rectangle& /* rRect */ )
+ 
+ void SlideshowImpl::slideEnded() throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	gotoNextSlide();
+ }
+ 
+@@ -1673,7 +1673,7 @@ bool SlideshowImpl::pause( bool bPause )
+ // XShapeEventListener
+ void SAL_CALL SlideshowImpl::click( const Reference< XShape >& xShape, const ::com::sun::star::awt::MouseEvent& /* aOriginalEvent */ ) throw (RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	WrappedShapeEventImplPtr pEvent = maShapeEventMap[xShape];
+ 	if( !pEvent.get() )
+@@ -1951,7 +1951,7 @@ double SlideshowImpl::update()
+ 
+ void SlideshowImpl::startUpdateTimer()
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	maUpdateTimer.SetTimeout( 0 );
+ 	maUpdateTimer.Start();
+ }
+diff --git a/sd/source/ui/slideshow/slideshowviewimpl.cxx b/sd/source/ui/slideshow/slideshowviewimpl.cxx
+index dd5bb4c..4ece365 100644
+--- sd/source/ui/slideshow/slideshowviewimpl.cxx
++++ sd/source/ui/slideshow/slideshowviewimpl.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _SD_SLIDESHOWIMPL_HXX_
+ #include <slideshowimpl.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <com/sun/star/beans/XPropertySet.hpp>
+@@ -342,7 +342,7 @@ void SAL_CALL SlideShowView::clear() throw (::com::sun::star::uno::RuntimeExcept
+ {
+     // paint background in black
+     ::osl::MutexGuard aGuard( m_aMutex );
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     // fill the bounds rectangle in black
+     // ----------------------------------
+@@ -366,7 +366,7 @@ void SAL_CALL SlideShowView::clear() throw (::com::sun::star::uno::RuntimeExcept
+ geometry::AffineMatrix2D SAL_CALL SlideShowView::getTransformation(  ) throw (RuntimeException)
+ {
+     ::osl::MutexGuard aGuard( m_aMutex );
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	const Size& rTmpSize( mrOutputWindow.GetSizePixel() );
+     
+diff --git a/sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx b/sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx
+index b892689..a14c9ac 100644
+--- sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx
++++ sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx
+@@ -35,7 +35,7 @@
+ #include "precompiled_sd.hxx"
+ 
+ #include "SlsCacheConfiguration.hxx"
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #include <comphelper/processfactory.hxx>
+@@ -62,7 +62,7 @@ Timer CacheConfiguration::maReleaseTimer;
+ 
+ ::boost::shared_ptr<CacheConfiguration> CacheConfiguration::Instance (void)
+ {
+-    ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     if (mpInstance.get() == NULL)
+     {
+         // Maybe somebody else kept a previously created instance alive.
+diff --git a/sd/source/ui/slidesorter/cache/SlsQueueProcessorThread.hxx b/sd/source/ui/slidesorter/cache/SlsQueueProcessorThread.hxx
+index c534cad..f422282 100644
+--- sd/source/ui/slidesorter/cache/SlsQueueProcessorThread.hxx
++++ sd/source/ui/slidesorter/cache/SlsQueueProcessorThread.hxx
+@@ -213,7 +213,7 @@ void QueueProcessorThread<Queue, Request, Cache, Factory>
+                 break;
+         }
+         OSL_TRACE ("QueueProcessorThread::ProcessQueueEntry():acquiring mutex for bitmap creation %p", this);
+-        ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+         ::osl::MutexGuard aGuard (maMutex);
+         if (mbIsTerminated)
+             break;
+@@ -314,7 +314,7 @@ void QueueProcessorThread<
+     Queue, RequestData, BitmapCache, BitmapFactory
+     >::Terminate (void)
+ {
+-    //    ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    //    osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     OSL_TRACE("QueueProcessorThread::Terminate(): terminating thread %p", this);
+     ::osl::Thread::terminate ();
+     {
+diff --git a/sd/source/ui/slidesorter/controller/SlsClipboard.cxx b/sd/source/ui/slidesorter/controller/SlsClipboard.cxx
+index e9a8b85..d46ba95 100644
+--- sd/source/ui/slidesorter/controller/SlsClipboard.cxx
++++ sd/source/ui/slidesorter/controller/SlsClipboard.cxx
+@@ -84,8 +84,8 @@
+ #include <tools/urlobj.hxx>
+ #include <rtl/ustring.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -286,7 +286,7 @@ sal_Int32 Clipboard::PasteTransferable (sal_Int32 nInsertPosition)
+     if (pClipTransferable->HasPageBookmarks())
+     {
+         const List& rBookmarkList = pClipTransferable->GetPageBookmarks();
+-        const ::vos::OGuard aGuard (Application::GetSolarMutex());
++        const osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 		    
+         nInsertPageCount = (USHORT) rBookmarkList.Count();
+         mrController.GetModel().GetDocument()->InsertBookmarkAsPage(
+@@ -310,7 +310,7 @@ sal_Int32 Clipboard::PasteTransferable (sal_Int32 nInsertPosition)
+         if (pDataDoc!=NULL 
+             && pDataDoc->GetSdPageCount(PK_STANDARD))
+         {
+-            const ::vos::OGuard aGuard (Application::GetSolarMutex());
++            const osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 				
+             bMergeMasterPages = (pDataDoc != mrController.GetModel().GetDocument());
+             nInsertPageCount = pDataDoc->GetSdPageCount( PK_STANDARD );
+diff --git a/sd/source/ui/toolpanel/TaskPaneFocusManager.cxx b/sd/source/ui/toolpanel/TaskPaneFocusManager.cxx
+index 4f02b90..89b3474 100644
+--- sd/source/ui/toolpanel/TaskPaneFocusManager.cxx
++++ sd/source/ui/toolpanel/TaskPaneFocusManager.cxx
+@@ -39,8 +39,8 @@
+ #include "TaskPaneFocusManager.hxx"
+ 
+ #include <vcl/window.hxx>
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -90,7 +90,7 @@ FocusManager& FocusManager::Instance (void)
+ {
+     if (spInstance == NULL)
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         if (spInstance == NULL)
+             spInstance = new FocusManager ();
+     }
+diff --git a/sd/source/ui/toolpanel/TitleBar.cxx b/sd/source/ui/toolpanel/TitleBar.cxx
+index ec2852d..6d57660 100644
+--- sd/source/ui/toolpanel/TitleBar.cxx
++++ sd/source/ui/toolpanel/TitleBar.cxx
+@@ -47,8 +47,8 @@
+ #endif
+ #include <vcl/window.hxx>
+ #include <vcl/virdev.hxx>
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+diff --git a/sd/source/ui/unoidl/DrawController.cxx b/sd/source/ui/unoidl/DrawController.cxx
+index f68efe8..5136e75 100644
+--- sd/source/ui/unoidl/DrawController.cxx
++++ sd/source/ui/unoidl/DrawController.cxx
+@@ -74,8 +74,8 @@
+ #include <svx/fmshell.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -85,7 +85,6 @@
+ using namespace ::std;
+ using ::rtl::OUString;
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::drawing::framework;
+@@ -199,7 +198,7 @@ void SAL_CALL DrawController::dispose()
+ {
+ 	if( !mbDisposing )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		if( !mbDisposing )
+ 		{
+@@ -295,7 +294,7 @@ sal_Bool SAL_CALL DrawController::select (const Any& aSelection)
+ 	throw(lang::IllegalArgumentException, RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     if (mpSubController.get() != NULL)
+         return mpSubController->select(aSelection);
+@@ -310,7 +309,7 @@ Any SAL_CALL DrawController::getSelection()
+ 	throw(RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     
+     if (mpSubController.get() != NULL)
+         return mpSubController->getSelection();
+@@ -411,7 +410,7 @@ void SAL_CALL DrawController::setCurrentPage( const Reference< drawing::XDrawPag
+ 	throw(RuntimeException)
+ {
+     ThrowIfDisposed();
+-    ::vos::OGuard aGuard (Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     if (mpSubController.get() != NULL)
+         mpSubController->setCurrentPage(xPage);
+@@ -424,7 +423,7 @@ Reference< drawing::XDrawPage > SAL_CALL DrawController::getCurrentPage (void)
+ 	throw(RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Reference<drawing::XDrawPage> xPage;
+ 
+     if (mpSubController.get() != NULL)
+@@ -611,7 +610,7 @@ void SAL_CALL DrawController::registerResourceController (
+     (void)sServiceName;
+ 
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     sal_uInt32 nResourceControllerCount (maResourceControllerList.getLength());
+     maResourceControllerList.realloc(nResourceControllerCount+1);
+@@ -626,7 +625,7 @@ void SAL_CALL DrawController::removeResourceController (
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     sal_uInt32 nResourceControllerCount (maResourceControllerList.getLength());
+     for (sal_uInt32 nIndex=0; nIndex<nResourceControllerCount; ++nIndex)
+@@ -659,7 +658,7 @@ Reference<XInterface> SAL_CALL DrawController::getController (const ::rtl::OUStr
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     Reference<XInterface> xController;
+     ControllerContainer::const_iterator iController (mpControllerContainer->find(sServiceName));
+@@ -695,7 +694,7 @@ Reference<XInterface> SAL_CALL DrawController::getController (const ::rtl::OUStr
+ 
+ void DrawController::ProvideSubControllers (void)
+ {
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     try
+     {
+         Reference<lang::XMultiServiceFactory> xFactory (
+@@ -806,7 +805,7 @@ Reference<XConfigurationController> SAL_CALL DrawController::getConfigurationCon
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     if ( ! mxConfigurationController.is())
+     {
+         mxConfigurationController = Reference<XConfigurationController>(
+@@ -825,7 +824,7 @@ Reference<XModuleController> SAL_CALL DrawController::getModuleController (void)
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     
+     if ( ! mxModuleController.is())
+     {
+@@ -845,7 +844,7 @@ Reference<XPaneController> SAL_CALL DrawController::getPaneController (void)
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     if ( ! mxPaneController.is())
+     {
+         mxPaneController = Reference<XPaneController>(
+@@ -863,7 +862,7 @@ Reference<XViewController> SAL_CALL DrawController::getViewController (void)
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     if ( ! mxViewController.is())
+     {
+         mxViewController = Reference<XViewController>(
+@@ -881,7 +880,7 @@ Reference<XToolBarController> SAL_CALL DrawController::getToolBarController (voi
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     if ( ! mxToolBarController.is())
+     {
+         mxToolBarController = Reference<XToolBarController>(
+@@ -900,7 +899,7 @@ Reference<XCommandController> SAL_CALL DrawController::getCommandController (voi
+     throw (RuntimeException)
+ {
+     ThrowIfDisposed();
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+     if ( ! mxCommandController.is())
+     {
+         mxCommandController = Reference<XCommandController>(
+@@ -1027,7 +1026,7 @@ void DrawController::FillPropertyTable (
+ 
+ IPropertyArrayHelper & DrawController::getInfoHelper()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if (mpPropertyArrayHelper.get() == NULL)
+     {
+@@ -1048,7 +1047,7 @@ IPropertyArrayHelper & DrawController::getInfoHelper()
+ Reference < beans::XPropertySetInfo >  DrawController::getPropertySetInfo()
+ 		throw ( ::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	static Reference < beans::XPropertySetInfo >  xInfo( createPropertySetInfo( getInfoHelper() ) );
+ 	return xInfo;
+@@ -1057,7 +1056,7 @@ Reference < beans::XPropertySetInfo >  DrawController::getPropertySetInfo()
+ 
+ uno::Reference< form::XFormController > SAL_CALL DrawController::getFormController( const uno::Reference< form::XForm >& Form ) throw (uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     FmFormShell* pFormShell = mpBase->GetFormShellManager().GetFormShell();
+     SdrView* pSdrView = mpBase->GetDrawView();
+@@ -1072,7 +1071,7 @@ uno::Reference< form::XFormController > SAL_CALL DrawController::getFormControll
+ 
+ ::sal_Bool SAL_CALL DrawController::isFormDesignMode(  ) throw (uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Bool bIsDesignMode = sal_True;
+ 
+@@ -1085,7 +1084,7 @@ uno::Reference< form::XFormController > SAL_CALL DrawController::getFormControll
+ 
+ void SAL_CALL DrawController::setFormDesignMode( ::sal_Bool _DesignMode ) throw (uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     FmFormShell* pFormShell = mpBase->GetFormShellManager().GetFormShell();
+     if ( pFormShell )
+@@ -1094,7 +1093,7 @@ void SAL_CALL DrawController::setFormDesignMode( ::sal_Bool _DesignMode ) throw
+ 
+ uno::Reference< awt::XControl > SAL_CALL DrawController::getControl( const uno::Reference< awt::XControlModel >& xModel ) throw (container::NoSuchElementException, uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     FmFormShell* pFormShell = mpBase->GetFormShellManager().GetFormShell();
+     SdrView* pSdrView = mpBase->GetDrawView();
+@@ -1134,7 +1133,7 @@ void DrawController::setFastPropertyValue_NoBroadcast (
+ 	const Any& rValue)
+     throw ( com::sun::star::uno::Exception)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (mpSubController.get() != NULL)
+         mpSubController->setFastPropertyValue_NoBroadcast(nHandle, rValue);
+ }
+@@ -1146,7 +1145,7 @@ void DrawController::getFastPropertyValue (
+     Any & rRet, 
+     sal_Int32 nHandle ) const
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	switch( nHandle )
+ 	{
+diff --git a/sd/source/ui/unoidl/SdUnoOutlineView.cxx b/sd/source/ui/unoidl/SdUnoOutlineView.cxx
+index c3810b7..c2a233d 100644
+--- sd/source/ui/unoidl/SdUnoOutlineView.cxx
++++ sd/source/ui/unoidl/SdUnoOutlineView.cxx
+@@ -48,8 +48,8 @@
+ #include <cppuhelper/proptypehlp.hxx>
+ #include <svx/unopage.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+diff --git a/sd/source/ui/unoidl/UnoDocumentSettings.cxx b/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+index 9352edb..d81680e 100644
+--- sd/source/ui/unoidl/UnoDocumentSettings.cxx
++++ sd/source/ui/unoidl/UnoDocumentSettings.cxx
+@@ -82,8 +82,8 @@
+ #include <osl/mutex.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -137,7 +137,6 @@ using namespace ::comphelper;
+ using namespace ::osl;
+ using ::rtl::OUString;
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+@@ -301,7 +300,7 @@ DocumentSettings::~DocumentSettings() throw()
+ 
+ void DocumentSettings::_setPropertyValues( const PropertyMapEntry** ppEntries, const Any* pValues ) throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	::sd::DrawDocShell* pDocSh = mpModel->GetDocShell();
+@@ -920,7 +919,7 @@ void DocumentSettings::_setPropertyValues( const PropertyMapEntry** ppEntries, c
+ 
+ void DocumentSettings::_getPropertyValues( const PropertyMapEntry** ppEntries, Any* pValue ) throw(UnknownPropertyException, WrappedTargetException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDrawDocument* pDoc = mpModel->GetDoc();
+ 	::sd::DrawDocShell* pDocSh = mpModel->GetDocShell();
+diff --git a/sd/source/ui/unoidl/sddetect.cxx b/sd/source/ui/unoidl/sddetect.cxx
+index a835846..c26e928 100644
+--- sd/source/ui/unoidl/sddetect.cxx
++++ sd/source/ui/unoidl/sddetect.cxx
+@@ -109,7 +109,7 @@
+ #include <svtools/eitem.hxx>
+ #include <svtools/stritem.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/sfxecode.hxx>
+ #include <svtools/ehdl.hxx>
+ #include <sot/storinfo.hxx>
+@@ -234,7 +234,7 @@ SdFilterDetect::~SdFilterDetect()
+ 	}
+ 
+     // can't check the type for external filters, so set the "dont" flag accordingly
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     //SfxFilterFlags nMust = SFX_FILTER_IMPORT, nDont = SFX_FILTER_NOTINSTALLED;
+ 
+     SfxApplication* pApp = SFX_APP();
+diff --git a/sd/source/ui/unoidl/unocpres.cxx b/sd/source/ui/unoidl/unocpres.cxx
+index f021b66..8e62dd1 100644
+--- sd/source/ui/unoidl/unocpres.cxx
++++ sd/source/ui/unoidl/unocpres.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -61,7 +61,6 @@
+ #include "unopage.hxx"
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ 
+@@ -115,7 +114,7 @@ uno::Sequence< OUString > SAL_CALL SdXCustomPresentation::getSupportedServiceNam
+ void SAL_CALL SdXCustomPresentation::insertByIndex( sal_Int32 Index, const uno::Any& Element )
+ 	throw(lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+@@ -149,7 +148,7 @@ void SAL_CALL SdXCustomPresentation::insertByIndex( sal_Int32 Index, const uno::
+ void SAL_CALL SdXCustomPresentation::removeByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+@@ -189,7 +188,7 @@ uno::Type SAL_CALL SdXCustomPresentation::getElementType()
+ sal_Bool SAL_CALL SdXCustomPresentation::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+@@ -201,7 +200,7 @@ sal_Bool SAL_CALL SdXCustomPresentation::hasElements()
+ sal_Int32 SAL_CALL SdXCustomPresentation::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+ 
+@@ -211,7 +210,7 @@ sal_Int32 SAL_CALL SdXCustomPresentation::getCount()
+ uno::Any SAL_CALL SdXCustomPresentation::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+@@ -238,7 +237,7 @@ uno::Any SAL_CALL SdXCustomPresentation::getByIndex( sal_Int32 Index )
+ OUString SAL_CALL SdXCustomPresentation::getName()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+@@ -252,7 +251,7 @@ OUString SAL_CALL SdXCustomPresentation::getName()
+ void SAL_CALL SdXCustomPresentation::setName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		throw lang::DisposedException();
+@@ -264,7 +263,7 @@ void SAL_CALL SdXCustomPresentation::setName( const OUString& aName )
+ // XComponent
+ void SAL_CALL SdXCustomPresentation::dispose() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bDisposing )
+ 		return;	// catched a recursion
+@@ -350,7 +349,7 @@ uno::Reference< uno::XInterface > SAL_CALL SdXCustomPresentationAccess::createIn
+ void SAL_CALL SdXCustomPresentationAccess::insertByName( const OUString& aName, const uno::Any& aElement )
+ 	throw(lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// get the documents custom show list
+ 	List* pList = 0;
+@@ -404,7 +403,7 @@ void SAL_CALL SdXCustomPresentationAccess::insertByName( const OUString& aName,
+ void SAL_CALL SdXCustomPresentationAccess::removeByName( const OUString& Name )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdCustomShow* pShow = getSdCustomShow(Name);
+ 
+@@ -429,7 +428,7 @@ void SAL_CALL SdXCustomPresentationAccess::replaceByName( const OUString& aName,
+ uno::Any SAL_CALL SdXCustomPresentationAccess::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -450,7 +449,7 @@ uno::Any SAL_CALL SdXCustomPresentationAccess::getByName( const OUString& aName
+ uno::Sequence< OUString > SAL_CALL SdXCustomPresentationAccess::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	List* pList = GetCustomShowList();
+ 	const sal_uInt32 nCount = pList?pList->Count():0;
+@@ -473,7 +472,7 @@ uno::Sequence< OUString > SAL_CALL SdXCustomPresentationAccess::getElementNames(
+ sal_Bool SAL_CALL SdXCustomPresentationAccess::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return getSdCustomShow(aName) != NULL;
+ }
+ 
+@@ -487,7 +486,7 @@ uno::Type SAL_CALL SdXCustomPresentationAccess::getElementType()
+ sal_Bool SAL_CALL SdXCustomPresentationAccess::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	List* pList = GetCustomShowList();
+ 	return pList && pList->Count() > 0;
+diff --git a/sd/source/ui/unoidl/unodoc.cxx b/sd/source/ui/unoidl/unodoc.cxx
+index 615a186..2f37190 100644
+--- sd/source/ui/unoidl/unodoc.cxx
++++ sd/source/ui/unoidl/unodoc.cxx
+@@ -53,8 +53,8 @@
+ #include "GraphicDocShell.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -81,7 +81,7 @@ uno::Sequence< rtl::OUString > SAL_CALL SdDrawingDocument_getSupportedServiceNam
+ uno::Reference< uno::XInterface > SAL_CALL SdDrawingDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDLL::Init();
+ 	SfxObjectShell* pShell = 
+@@ -108,7 +108,7 @@ uno::Sequence< rtl::OUString > SAL_CALL SdPresentationDocument_getSupportedServi
+ uno::Reference< uno::XInterface > SAL_CALL SdPresentationDocument_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > &  )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdDLL::Init();
+ 	SfxObjectShell* pShell = new ::sd::DrawDocShell(SFX_CREATE_MODE_STANDARD);
+diff --git a/sd/source/ui/unoidl/unogsfm.cxx b/sd/source/ui/unoidl/unogsfm.cxx
+index 7105973..4cf514b 100644
+--- sd/source/ui/unoidl/unogsfm.cxx
++++ sd/source/ui/unoidl/unogsfm.cxx
+@@ -43,8 +43,8 @@
+ #include <com/sun/star/style/XStyle.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -77,7 +77,6 @@
+ //#endif
+ 
+ using rtl::OUString;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
+@@ -228,7 +227,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoGraphicStyleFamily::getSupportedServiceN
+ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -250,7 +249,7 @@ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdUnoGraphicStyleFamily::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -289,7 +288,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoGraphicStyleFamily::getElementNames()
+ sal_Bool SAL_CALL SdUnoGraphicStyleFamily::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -313,7 +312,7 @@ uno::Type SAL_CALL SdUnoGraphicStyleFamily::getElementType()
+ sal_Bool SAL_CALL SdUnoGraphicStyleFamily::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -326,7 +325,7 @@ sal_Bool SAL_CALL SdUnoGraphicStyleFamily::hasElements()
+ sal_Int32 SAL_CALL SdUnoGraphicStyleFamily::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -347,7 +346,7 @@ sal_Int32 SAL_CALL SdUnoGraphicStyleFamily::getCount()
+ 
+ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByIndex( sal_Int32 Index ) throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -376,7 +375,7 @@ uno::Any SAL_CALL SdUnoGraphicStyleFamily::getByIndex( sal_Int32 Index ) throw(l
+ void SAL_CALL SdUnoGraphicStyleFamily::insertByName( const OUString& aName, const uno::Any& aElement )
+ 	throw(lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -404,7 +403,7 @@ void SAL_CALL SdUnoGraphicStyleFamily::insertByName( const OUString& aName, cons
+ void SAL_CALL SdUnoGraphicStyleFamily::removeByName( const OUString& Name )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -434,7 +433,7 @@ void SAL_CALL SdUnoGraphicStyleFamily::removeByName( const OUString& Name )
+ void SAL_CALL SdUnoGraphicStyleFamily::replaceByName( const OUString& aName, const uno::Any& aElement )
+ 	throw(lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -548,7 +547,7 @@ SdUnoGraphicStyle* SdUnoGraphicStyleFamily::getStyleFromAny( const uno::Any& Ele
+ // XComponent
+ void SAL_CALL SdUnoGraphicStyleFamily::dispose(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpModel )
+ 	{
+ 		mpModel = NULL;
+@@ -593,7 +592,7 @@ Any SdUnoGraphicStyleFamily::getPropertyValue(
+ {
+     if (PropertyName.equalsAsciiL(
+             RTL_CONSTASCII_STRINGPARAM("DisplayName") )) {
+-        OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         String graphicsFamily( SdResId(STR_GRAPHICS_STYLE_FAMILY) );
+         return makeAny( OUString(graphicsFamily) );
+     }
+diff --git a/sd/source/ui/unoidl/unogstyl.cxx b/sd/source/ui/unoidl/unogstyl.cxx
+index 7503b4d..f966718 100644
+--- sd/source/ui/unoidl/unogstyl.cxx
++++ sd/source/ui/unoidl/unogstyl.cxx
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sd.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -74,7 +74,6 @@
+ #include <unoprnms.hxx>
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ SdUnoGraphicStyle::SdUnoGraphicStyle( SdXImpressDocument* pModel /* = NULL */, 
+@@ -166,7 +165,7 @@ void SdUnoGraphicStyle::create( SdXImpressDocument* pModel, SfxStyleSheetBase* p
+ OUString SAL_CALL SdUnoGraphicStyle::getName(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OUString aName;
+ 	if( mpStyleSheet )
+@@ -184,7 +183,7 @@ OUString SAL_CALL SdUnoGraphicStyle::getName(  )
+ void SAL_CALL SdUnoGraphicStyle::setName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpStyleSheet )
+ 	{
+@@ -253,7 +252,7 @@ void SAL_CALL SdUnoGraphicStyle::removeVetoableChangeListener( const ::rtl::OUSt
+ OUString SAL_CALL SdUnoGraphicStyle::getParentStyle(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	OUString aName;
+ 	if( mpStyleSheet )
+@@ -271,7 +270,7 @@ OUString SAL_CALL SdUnoGraphicStyle::getParentStyle(  )
+ void SAL_CALL SdUnoGraphicStyle::setParentStyle( const OUString& aParentStyle )
+ 	throw(container::NoSuchElementException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpStyleSheet )
+ 	{
+diff --git a/sd/source/ui/unoidl/unolayer.cxx b/sd/source/ui/unoidl/unolayer.cxx
+index e3f9e6f..8ea9656 100644
+--- sd/source/ui/unoidl/unolayer.cxx
++++ sd/source/ui/unoidl/unolayer.cxx
+@@ -45,8 +45,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <svx/svdpagv.hxx>
+@@ -106,7 +106,6 @@
+ #endif
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ //=============================================================================
+@@ -235,14 +234,14 @@ uno::Sequence< OUString > SAL_CALL SdLayer::getSupportedServiceNames()
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdLayer::getPropertySetInfo(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return aPropSet.getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pLayer == NULL || pLayerManager == NULL)
+ 		throw lang::DisposedException();
+@@ -319,7 +318,7 @@ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const un
+ uno::Any SAL_CALL SdLayer::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(pLayer == NULL || pLayerManager == NULL)
+ 		throw lang::DisposedException();
+@@ -473,7 +472,7 @@ void SdLayer::set( LayerAttribute what, sal_Bool flag ) throw()
+ uno::Reference<uno::XInterface> SAL_CALL SdLayer::getParent (void) 
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pLayerManager == NULL )
+ 		throw lang::DisposedException();
+@@ -576,7 +575,7 @@ uno::Sequence< OUString > SAL_CALL SdLayerManager::getSupportedServiceNames()
+ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::insertNewByIndex( sal_Int32 nIndex )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -610,7 +609,7 @@ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::insertNewByIndex( sal
+ void SAL_CALL SdLayerManager::remove( const uno::Reference< drawing::XLayer >& xLayer )
+ 	throw(container::NoSuchElementException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -631,7 +630,7 @@ void SAL_CALL SdLayerManager::remove( const uno::Reference< drawing::XLayer >& x
+ void SAL_CALL SdLayerManager::attachShapeToLayer( const uno::Reference< drawing::XShape >& xShape, const uno::Reference< drawing::XLayer >& xLayer )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -652,7 +651,7 @@ void SAL_CALL SdLayerManager::attachShapeToLayer( const uno::Reference< drawing:
+ 
+ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::getLayerForShape( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -677,7 +676,7 @@ uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::getLayerForShape( con
+ sal_Int32 SAL_CALL SdLayerManager::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -694,7 +693,7 @@ sal_Int32 SAL_CALL SdLayerManager::getCount()
+ uno::Any SAL_CALL SdLayerManager::getByIndex( sal_Int32 nLayer )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -718,7 +717,7 @@ uno::Any SAL_CALL SdLayerManager::getByIndex( sal_Int32 nLayer )
+ uno::Any SAL_CALL SdLayerManager::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpModel->mpDoc == 0 ) )
+ 		throw lang::DisposedException();
+@@ -734,7 +733,7 @@ uno::Any SAL_CALL SdLayerManager::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdLayerManager::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -759,7 +758,7 @@ uno::Sequence< OUString > SAL_CALL SdLayerManager::getElementNames()
+ 
+ sal_Bool SAL_CALL SdLayerManager::hasByName( const OUString& aName ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
+index 0322722..3c3ed8e 100644
+--- sd/source/ui/unoidl/unomodel.cxx
++++ sd/source/ui/unoidl/unomodel.cxx
+@@ -118,8 +118,8 @@
+ #ifndef _SVDORECT_HXX
+ #include <svx/svdorect.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _TOOLKIT_AWT_VCLXDEVICE_HXX_
+@@ -214,7 +214,6 @@
+ 
+ using namespace ::osl;
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -398,7 +397,7 @@ UNO3_GETIMPLEMENTATION2_IMPL( SdXImpressDocument, SfxBaseModel );
+ // XInterface
+ uno::Any SAL_CALL SdXImpressDocument::queryInterface( const uno::Type & rType ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -456,7 +455,7 @@ void SAL_CALL SdXImpressDocument::release() throw ( )
+ // XTypeProvider
+ uno::Sequence< uno::Type > SAL_CALL SdXImpressDocument::getTypes(  ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maTypeSequence.getLength() == 0 )
+ 	{
+@@ -496,7 +495,7 @@ uno::Sequence< uno::Type > SAL_CALL SdXImpressDocument::getTypes(  ) throw(uno::
+ 
+ uno::Sequence< sal_Int8 > SAL_CALL SdXImpressDocument::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	static uno::Sequence< sal_Int8 > aId;
+ 	if( aId.getLength() == 0 )
+@@ -696,7 +695,7 @@ void SdXImpressDocument::SetModified( sal_Bool bModified /* = sal_True */ ) thro
+ void SAL_CALL SdXImpressDocument	::lockControllers(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -707,7 +706,7 @@ void SAL_CALL SdXImpressDocument	::lockControllers(  )
+ void SAL_CALL SdXImpressDocument::unlockControllers(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -721,7 +720,7 @@ void SAL_CALL SdXImpressDocument::unlockControllers(  )
+ sal_Bool SAL_CALL SdXImpressDocument::hasControllersLocked(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -735,7 +734,7 @@ sal_Bool SAL_CALL SdXImpressDocument::hasControllersLocked(  )
+ 
+ uno::Reference < container::XIndexAccess > SAL_CALL SdXImpressDocument::getViewData() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -778,7 +777,7 @@ uno::Reference < container::XIndexAccess > SAL_CALL SdXImpressDocument::getViewD
+ 
+ void SAL_CALL SdXImpressDocument::setViewData( const uno::Reference < container::XIndexAccess >& xData ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -827,7 +826,7 @@ void SAL_CALL SdXImpressDocument::setViewData( const uno::Reference < container:
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( const uno::Reference< drawing::XDrawPage >& xPage )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -856,7 +855,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( con
+ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getDrawPages()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -876,7 +875,7 @@ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getDrawPages(
+ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getMasterPages()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -896,7 +895,7 @@ uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getMasterPage
+ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLayerManager(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -913,7 +912,7 @@ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLayerMa
+ uno::Reference< container::XNameContainer > SAL_CALL SdXImpressDocument::getCustomPresentations()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -930,7 +929,7 @@ uno::Reference< container::XNameContainer > SAL_CALL SdXImpressDocument::getCust
+ uno::Reference< presentation::XPresentation > SAL_CALL SdXImpressDocument::getPresentation()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -947,7 +946,7 @@ uno::Reference< presentation::XPresentation > SAL_CALL SdXImpressDocument::getPr
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::getHandoutMasterPage()
+ 	throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -968,7 +967,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::getHandoutMast
+ uno::Reference< uno::XInterface > SAL_CALL SdXImpressDocument::createInstance( const OUString& aServiceSpecifier )
+ 	throw(uno::Exception, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -1221,7 +1220,7 @@ uno::Reference< uno::XInterface > SAL_CALL SdXImpressDocument::createInstance( c
+ uno::Sequence< OUString > SAL_CALL SdXImpressDocument::getAvailableServiceNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -1292,7 +1291,7 @@ OUString SAL_CALL SdXImpressDocument::getImplementationName()
+ sal_Bool SAL_CALL SdXImpressDocument::supportsService( const OUString& ServiceName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if (
+         (ServiceName.equalsAscii("com.sun.star.document.OfficeDocument"       )) ||
+@@ -1311,7 +1310,7 @@ sal_Bool SAL_CALL SdXImpressDocument::supportsService( const OUString& ServiceNa
+ 
+ uno::Sequence< OUString > SAL_CALL SdXImpressDocument::getSupportedServiceNames() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Sequence< OUString > aSeq( 4 );
+ 	OUString* pServices = aSeq.getArray();
+@@ -1332,14 +1331,14 @@ uno::Sequence< OUString > SAL_CALL SdXImpressDocument::getSupportedServiceNames(
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdXImpressDocument::getPropertySetInfo(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return maPropSet.getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdXImpressDocument::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -1413,7 +1412,7 @@ void SAL_CALL SdXImpressDocument::setPropertyValue( const OUString& aPropertyNam
+ uno::Any SAL_CALL SdXImpressDocument::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	if( NULL == mpDoc )
+@@ -1499,7 +1498,7 @@ void SAL_CALL SdXImpressDocument::removeVetoableChangeListener( const OUString&
+ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLinks()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -1514,7 +1513,7 @@ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLinks()
+ uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getStyleFamilies(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -1539,7 +1538,7 @@ sal_Int32 SAL_CALL SdXImpressDocument::getRendererCount( const uno::Any& rSelect
+                                                          const uno::Sequence< beans::PropertyValue >&  )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard      aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard      aGuard( Application::GetSolarMutex() );
+ 	sal_Int32   nRet = 0;
+ 
+ 	if( NULL == mpDoc )
+@@ -1572,7 +1571,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SdXImpressDocument::getRenderer(
+                                                                                 const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -1888,7 +1887,7 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
+                                           const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpDoc )
+ 		throw lang::DisposedException();
+@@ -2193,7 +2192,7 @@ void SAL_CALL SdXImpressDocument::dispose() throw (::com::sun::star::uno::Runtim
+     if( !mbDisposed )
+     {
+         {
+-			OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 			if( mpDoc )
+ 			{
+@@ -2308,7 +2307,7 @@ SdDrawPagesAccess::~SdDrawPagesAccess() throw()
+ sal_Int32 SAL_CALL SdDrawPagesAccess::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2319,7 +2318,7 @@ sal_Int32 SAL_CALL SdDrawPagesAccess::getCount()
+ uno::Any SAL_CALL SdDrawPagesAccess::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2342,7 +2341,7 @@ uno::Any SAL_CALL SdDrawPagesAccess::getByIndex( sal_Int32 Index )
+ // XNameAccess
+ uno::Any SAL_CALL SdDrawPagesAccess::getByName( const OUString& aName ) throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2372,7 +2371,7 @@ uno::Any SAL_CALL SdDrawPagesAccess::getByName( const OUString& aName ) throw(co
+ 
+ uno::Sequence< OUString > SAL_CALL SdDrawPagesAccess::getElementNames() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2393,7 +2392,7 @@ uno::Sequence< OUString > SAL_CALL SdDrawPagesAccess::getElementNames() throw(un
+ 
+ sal_Bool SAL_CALL SdDrawPagesAccess::hasByName( const OUString& aName ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2435,7 +2434,7 @@ sal_Bool SAL_CALL SdDrawPagesAccess::hasElements()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPagesAccess::insertNewByIndex( sal_Int32 nIndex )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2461,7 +2460,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPagesAccess::insertNewByInde
+ void SAL_CALL SdDrawPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ 		throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2562,7 +2561,7 @@ void SAL_CALL SdMasterPagesAccess::removeEventListener( const uno::Reference< la
+ sal_Int32 SAL_CALL SdMasterPagesAccess::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel->mpDoc )
+ 		throw lang::DisposedException();
+@@ -2577,7 +2576,7 @@ sal_Int32 SAL_CALL SdMasterPagesAccess::getCount()
+ uno::Any SAL_CALL SdMasterPagesAccess::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2614,7 +2613,7 @@ sal_Bool SAL_CALL SdMasterPagesAccess::hasElements()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIndex( sal_Int32 nInsertPos )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2717,7 +2716,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIn
+ void SAL_CALL SdMasterPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2797,7 +2796,7 @@ void SAL_CALL SdDocLinkTargets::removeEventListener( const uno::Reference< lang:
+ uno::Any SAL_CALL SdDocLinkTargets::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2819,7 +2818,7 @@ uno::Any SAL_CALL SdDocLinkTargets::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdDocLinkTargets::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2872,7 +2871,7 @@ uno::Sequence< OUString > SAL_CALL SdDocLinkTargets::getElementNames()
+ sal_Bool SAL_CALL SdDocLinkTargets::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+@@ -2890,7 +2889,7 @@ uno::Type SAL_CALL SdDocLinkTargets::getElementType()
+ sal_Bool SAL_CALL SdDocLinkTargets::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpModel )
+ 		throw lang::DisposedException();
+diff --git a/sd/source/ui/unoidl/unomodule.cxx b/sd/source/ui/unoidl/unomodule.cxx
+index f5e969f..35fc9b0 100644
+--- sd/source/ui/unoidl/unomodule.cxx
++++ sd/source/ui/unoidl/unomodule.cxx
+@@ -52,8 +52,8 @@
+ #include <sfx2/bindings.hxx>
+ #include <sfx2/request.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -76,7 +76,7 @@ uno::Sequence< rtl::OUString > SAL_CALL SdUnoModule_getSupportedServiceNames() t
+ uno::Reference< uno::XInterface > SAL_CALL SdUnoModule_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return uno::Reference< uno::XInterface >( static_cast< cppu::OWeakObject* >( new SdUnoModule( rSMgr ) ) );
+ }
+ 
+@@ -88,7 +88,7 @@ void SAL_CALL SdUnoModule::dispatchWithNotification( const ::com::sun::star::uti
+     // asynchronous ...
+     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xThis(static_cast< ::com::sun::star::frame::XNotifyingDispatch* >(this));
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SdDLL::Init();
+     const SfxSlot* pSlot = SD_MOD()->GetInterface()->GetSlot( aURL.Complete );
+ 
+@@ -144,7 +144,7 @@ SEQUENCE< REFERENCE< XDISPATCH > > SAL_CALL SdUnoModule::queryDispatches( const
+ // XDispatchProvider
+ REFERENCE< XDISPATCH > SAL_CALL SdUnoModule::queryDispatch( const UNOURL& aURL, const OUSTRING&, sal_Int32 ) throw( RUNTIMEEXCEPTION )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SdDLL::Init();
+ 	const SfxSlot* pSlot = SD_MOD()->GetInterface()->GetSlot( aURL.Complete );
+ 
+diff --git a/sd/source/ui/unoidl/unoobj.cxx b/sd/source/ui/unoidl/unoobj.cxx
+index 22a543e..fb9ee4f 100644
+--- sd/source/ui/unoidl/unoobj.cxx
++++ sd/source/ui/unoidl/unoobj.cxx
+@@ -59,8 +59,8 @@
+ #include <comphelper/stl_types.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFX_ITEMPROP_HXX
+ #include <svtools/itemprop.hxx>
+@@ -158,7 +158,6 @@
+  #endif
+ #endif
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::sd;
+ using namespace ::com::sun::star;
+@@ -390,7 +389,7 @@ uno::Sequence< uno::Type > SAL_CALL SdXShape::getTypes()
+ // XPropertyState
+ beans::PropertyState SAL_CALL SdXShape::getPropertyState( const OUString& PropertyName ) throw( beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maPropSet.getPropertyMapEntry(PropertyName) )
+ 	{
+@@ -408,7 +407,7 @@ beans::PropertyState SAL_CALL SdXShape::getPropertyState( const OUString& Proper
+ 
+ void SAL_CALL SdXShape::setPropertyToDefault( const OUString& PropertyName ) throw( beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maPropSet.getPropertyMapEntry(PropertyName) )
+ 	{
+@@ -422,7 +421,7 @@ void SAL_CALL SdXShape::setPropertyToDefault( const OUString& PropertyName ) thr
+ 
+ uno::Any SAL_CALL SdXShape::getPropertyDefault( const OUString& aPropertyName ) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( maPropSet.getPropertyMapEntry(aPropertyName) )
+ 	{
+@@ -477,7 +476,7 @@ uno::Any SAL_CALL SdXShape::getPropertyDefault( const OUString& aPropertyName )
+ void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(aPropertyName);
+ 
+@@ -727,7 +726,7 @@ void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName,
+ ::com::sun::star::uno::Any SAL_CALL SdXShape::getPropertyValue( const ::rtl::OUString& PropertyName )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aRet;
+ 
+diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx
+index c00a07e..9c40384 100644
+--- sd/source/ui/unoidl/unopage.cxx
++++ sd/source/ui/unoidl/unopage.cxx
+@@ -129,8 +129,8 @@
+ #ifndef _SVDORECT_HXX
+ #include <svx/svdorect.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFXSTYLE_HXX
+ #include <svtools/style.hxx>
+@@ -178,7 +178,6 @@ using ::com::sun::star::animations::XAnimationNodeSupplier;
+ using ::rtl::OUString;
+ using ::rtl::OUStringBuffer;
+ 
+-using namespace ::vos;
+ using namespace ::osl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -559,7 +558,7 @@ Any SAL_CALL SdGenericDrawPage::queryInterface( const uno::Type & rType )
+ Reference< beans::XPropertySetInfo > SAL_CALL SdGenericDrawPage::getPropertySetInfo()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	throwIfDisposed();
+ 	return maPropSet.getPropertySetInfo();
+ }
+@@ -567,7 +566,7 @@ Reference< beans::XPropertySetInfo > SAL_CALL SdGenericDrawPage::getPropertySetI
+ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName, const Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -958,7 +957,7 @@ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName
+ Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -1511,7 +1510,7 @@ void SdGenericDrawPage::setBookmarkURL( rtl::OUString& rURL )
+ Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::combine( const Reference< drawing::XShapes >& xShapes )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -1548,7 +1547,7 @@ Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::combine( const Referenc
+ void SAL_CALL SdGenericDrawPage::split( const Reference< drawing::XShape >& xGroup )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -1567,7 +1566,7 @@ void SAL_CALL SdGenericDrawPage::split( const Reference< drawing::XShape >& xGro
+ Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::bind( const Reference< drawing::XShapes >& xShapes )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -1601,7 +1600,7 @@ Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::bind( const Reference<
+ void SAL_CALL SdGenericDrawPage::unbind( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -1815,7 +1814,7 @@ void SdGenericDrawPage::disposing() throw()
+ // XAnimationNodeSupplier
+ Reference< XAnimationNode > SAL_CALL SdGenericDrawPage::getAnimationNode() throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -1849,7 +1848,7 @@ uno::Type SAL_CALL SdPageLinkTargets::getElementType()
+ sal_Bool SAL_CALL SdPageLinkTargets::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdPage* pPage = mpUnoPage->GetPage();
+ 	if( pPage != NULL )
+@@ -1876,7 +1875,7 @@ sal_Bool SAL_CALL SdPageLinkTargets::hasElements()
+ Any SAL_CALL SdPageLinkTargets::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdPage* pPage = mpUnoPage->GetPage();
+ 	if( pPage != NULL )
+@@ -1895,7 +1894,7 @@ Any SAL_CALL SdPageLinkTargets::getByName( const OUString& aName )
+ Sequence< OUString > SAL_CALL SdPageLinkTargets::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_uInt32 nObjCount = 0;
+ 
+@@ -1937,7 +1936,7 @@ Sequence< OUString > SAL_CALL SdPageLinkTargets::getElementNames()
+ sal_Bool SAL_CALL SdPageLinkTargets::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return FindObject( aName ) != NULL;
+ }
+@@ -2039,7 +2038,7 @@ UNO3_GETIMPLEMENTATION2_IMPL( SdDrawPage, SdGenericDrawPage );
+ // XTypeProvider
+ Sequence< uno::Type > SAL_CALL SdDrawPage::getTypes() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2086,7 +2085,7 @@ Sequence< uno::Type > SAL_CALL SdDrawPage::getTypes() throw(uno::RuntimeExceptio
+ 
+ Sequence< sal_Int8 > SAL_CALL SdDrawPage::getImplementationId() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2196,7 +2195,7 @@ OUString SAL_CALL SdDrawPage::getImplementationName() throw(uno::RuntimeExceptio
+ 
+ Sequence< OUString > SAL_CALL SdDrawPage::getSupportedServiceNames() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2219,7 +2218,7 @@ sal_Bool SAL_CALL SdDrawPage::supportsService( const OUString& ServiceName )
+ void SAL_CALL SdDrawPage::setName( const OUString& rName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2299,7 +2298,7 @@ void SAL_CALL SdDrawPage::setName( const OUString& rName )
+ OUString SAL_CALL SdDrawPage::getName()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2310,7 +2309,7 @@ OUString SAL_CALL SdDrawPage::getName()
+ Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getMasterPage(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2333,7 +2332,7 @@ Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getMasterPage(  )
+ void SAL_CALL SdDrawPage::setMasterPage( const Reference< drawing::XDrawPage >& xMasterPage )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2372,7 +2371,7 @@ void SAL_CALL SdDrawPage::setMasterPage( const Reference< drawing::XDrawPage >&
+ Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getNotesPage()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2423,7 +2422,7 @@ void SAL_CALL SdDrawPage::add( const Reference< drawing::XShape >& xShape ) thro
+ 
+ void SAL_CALL SdDrawPage::remove( const Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2575,7 +2574,7 @@ SdMasterPage::~SdMasterPage() throw()
+ Any SAL_CALL SdMasterPage::queryInterface( const uno::Type & rType )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2612,7 +2611,7 @@ UNO3_GETIMPLEMENTATION2_IMPL( SdMasterPage, SdGenericDrawPage );
+ // XTypeProvider
+ Sequence< uno::Type > SAL_CALL SdMasterPage::getTypes() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2658,7 +2657,7 @@ Sequence< uno::Type > SAL_CALL SdMasterPage::getTypes() throw(uno::RuntimeExcept
+ 
+ Sequence< sal_Int8 > SAL_CALL SdMasterPage::getImplementationId() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2679,7 +2678,7 @@ OUString SAL_CALL SdMasterPage::getImplementationName() throw(uno::RuntimeExcept
+ 
+ Sequence< OUString > SAL_CALL SdMasterPage::getSupportedServiceNames() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2701,7 +2700,7 @@ sal_Bool SAL_CALL SdMasterPage::supportsService( const OUString& ServiceName )
+ // XElementAccess
+ sal_Bool SAL_CALL SdMasterPage::hasElements() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2721,7 +2720,7 @@ uno::Type SAL_CALL SdMasterPage::getElementType()
+ sal_Int32 SAL_CALL SdMasterPage::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2737,7 +2736,7 @@ sal_Int32 SAL_CALL SdMasterPage::getCount()
+ Any SAL_CALL SdMasterPage::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2925,7 +2924,7 @@ void SdMasterPage::getBackground( Any& rValue ) throw()
+ void SAL_CALL SdMasterPage::setName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2962,7 +2961,7 @@ void SAL_CALL SdMasterPage::setName( const OUString& aName )
+ OUString SAL_CALL SdMasterPage::getName(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -2981,7 +2980,7 @@ OUString SAL_CALL SdMasterPage::getName(  )
+ Reference< drawing::XDrawPage > SAL_CALL SdMasterPage::getNotesPage()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+@@ -3005,7 +3004,7 @@ void SAL_CALL SdMasterPage::add( const Reference< drawing::XShape >& xShape ) th
+ 
+ void SAL_CALL SdMasterPage::remove( const Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	throwIfDisposed();
+ 
+diff --git a/sd/source/ui/unoidl/unopback.cxx b/sd/source/ui/unoidl/unopback.cxx
+index b55c7cb..bdb88e9 100644
+--- sd/source/ui/unoidl/unopback.cxx
++++ sd/source/ui/unoidl/unopback.cxx
+@@ -40,8 +40,8 @@
+ #include <com/sun/star/drawing/BitmapMode.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -76,7 +76,6 @@
+ #include "unokywds.hxx"
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ const SfxItemPropertyMap* ImplGetPageBackgroundPropertyMap()
+@@ -226,7 +225,7 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdUnoPageBackground::getPrope
+ void SAL_CALL SdUnoPageBackground::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry( aPropertyName );
+ 
+@@ -283,7 +282,7 @@ void SAL_CALL SdUnoPageBackground::setPropertyValue( const OUString& aPropertyNa
+ uno::Any SAL_CALL SdUnoPageBackground::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+@@ -342,7 +341,7 @@ void SAL_CALL SdUnoPageBackground::removeVetoableChangeListener( const OUString&
+ beans::PropertyState SAL_CALL SdUnoPageBackground::getPropertyState( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+ 
+@@ -389,7 +388,7 @@ beans::PropertyState SAL_CALL SdUnoPageBackground::getPropertyState( const OUStr
+ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPageBackground::getPropertyStates( const uno::Sequence< OUString >& aPropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = aPropertyName.getLength();
+ 	const OUString* pNames = aPropertyName.getConstArray();
+@@ -406,7 +405,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPageBackground::getPropertyS
+ void SAL_CALL SdUnoPageBackground::setPropertyToDefault( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+ 
+@@ -430,7 +429,7 @@ void SAL_CALL SdUnoPageBackground::setPropertyToDefault( const OUString& Propert
+ uno::Any SAL_CALL SdUnoPageBackground::getPropertyDefault( const OUString& aPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = getPropertyMapEntry(aPropertyName);
+ 	if( pMap == NULL || mpSet == NULL )
+diff --git a/sd/source/ui/unoidl/unopres.cxx b/sd/source/ui/unoidl/unopres.cxx
+index 0d530e0..a226617 100644
+--- sd/source/ui/unoidl/unopres.cxx
++++ sd/source/ui/unoidl/unopres.cxx
+@@ -67,8 +67,8 @@
+ #include <com/sun/star/presentation/AnimationSpeed.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SFX_ITEMPROP_HXX
+@@ -112,7 +112,6 @@
+ 
+ using namespace ::rtl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ const SfxItemPropertyMap* ImplGetPresentationPropertyMap()
+@@ -181,14 +180,14 @@ uno::Sequence< OUString > SAL_CALL SdXPresentation::getSupportedServiceNames(  )
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdXPresentation::getPropertySetInfo()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return maPropSet.getPropertySetInfo();
+  }
+ 
+ void SAL_CALL SdXPresentation::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -431,7 +430,7 @@ void SAL_CALL SdXPresentation::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL SdXPresentation::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -521,7 +520,7 @@ void SAL_CALL SdXPresentation::removeVetoableChangeListener( const OUString& , c
+ void SAL_CALL SdXPresentation::start(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpModel->GetDocShell() == 0) )
+ 		throw lang::DisposedException();
+@@ -546,7 +545,7 @@ void SAL_CALL SdXPresentation::start(  )
+ void SAL_CALL SdXPresentation::end(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -562,7 +561,7 @@ void SAL_CALL SdXPresentation::end(  )
+ void SAL_CALL SdXPresentation::rehearseTimings(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == NULL )
+ 		throw lang::DisposedException();
+@@ -578,7 +577,7 @@ void SAL_CALL SdXPresentation::rehearseTimings(  )
+ // XComponent
+ void SAL_CALL SdXPresentation::dispose(  ) throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	mpModel = NULL;
+ }
+ 
+diff --git a/sd/source/ui/unoidl/unopsfm.cxx b/sd/source/ui/unoidl/unopsfm.cxx
+index e310cee..fb6eee2 100644
+--- sd/source/ui/unoidl/unopsfm.cxx
++++ sd/source/ui/unoidl/unopsfm.cxx
+@@ -40,8 +40,8 @@
+ #include <com/sun/star/lang/DisposedException.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -81,7 +81,6 @@
+ #include "helpids.h"
+ 
+ using ::rtl::OUString;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
+@@ -208,7 +207,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyleFamily::getSupportedServiceNa
+ uno::Any SAL_CALL SdUnoPseudoStyleFamily::getByName( const OUString& aName )
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpPage == 0 )
+ 		throw lang::DisposedException();
+@@ -240,7 +239,7 @@ uno::Any SAL_CALL SdUnoPseudoStyleFamily::getByName( const OUString& aName )
+ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyleFamily::getElementNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpPage == 0 )
+ 		throw lang::DisposedException();
+@@ -261,7 +260,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyleFamily::getElementNames()
+ sal_Bool SAL_CALL SdUnoPseudoStyleFamily::hasByName( const OUString& aName )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpPage == 0 )
+ 		throw lang::DisposedException();
+@@ -313,7 +312,7 @@ sal_Int32 SAL_CALL SdUnoPseudoStyleFamily::getCount()
+ uno::Any SAL_CALL SdUnoPseudoStyleFamily::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpPage == 0 )
+ 		throw lang::DisposedException();
+diff --git a/sd/source/ui/unoidl/unopstyl.cxx b/sd/source/ui/unoidl/unopstyl.cxx
+index 474acb5..21ec4b3 100644
+--- sd/source/ui/unoidl/unopstyl.cxx
++++ sd/source/ui/unoidl/unopstyl.cxx
+@@ -50,8 +50,8 @@
+ #include <svtools/smplhint.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -106,7 +106,6 @@
+ #include <helpids.h>
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ #define WID_STYLE_DISPNAME	7998
+@@ -266,7 +265,7 @@ uno::Sequence< OUString > SAL_CALL SdUnoPseudoStyle::getSupportedServiceNames()
+ OUString SAL_CALL SdUnoPseudoStyle::getName(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -283,7 +282,7 @@ void SAL_CALL SdUnoPseudoStyle::setName( const OUString&  )
+ sal_Bool SAL_CALL SdUnoPseudoStyle::isUserDefined(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -294,7 +293,7 @@ sal_Bool SAL_CALL SdUnoPseudoStyle::isUserDefined(  )
+ sal_Bool SAL_CALL SdUnoPseudoStyle::isInUse(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -305,7 +304,7 @@ sal_Bool SAL_CALL SdUnoPseudoStyle::isInUse(  )
+ OUString SAL_CALL SdUnoPseudoStyle::getParentStyle(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -328,7 +327,7 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL SdUnoPseudoStyle::getProperty
+ void SAL_CALL SdUnoPseudoStyle::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -419,7 +418,7 @@ void SAL_CALL SdUnoPseudoStyle::setPropertyValue( const OUString& aPropertyName,
+ 
+ uno::Any SAL_CALL SdUnoPseudoStyle::getPropertyValue( const OUString& PropertyName ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -523,7 +522,7 @@ void SAL_CALL SdUnoPseudoStyle::removeVetoableChangeListener( const OUString& ,
+ // XPropertyState
+ beans::PropertyState SAL_CALL SdUnoPseudoStyle::getPropertyState( const OUString& PropertyName ) throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -610,7 +609,7 @@ beans::PropertyState SAL_CALL SdUnoPseudoStyle::getPropertyState( const OUString
+ 
+ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPseudoStyle::getPropertyStates( const uno::Sequence< OUString >& aPropertyName ) throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -629,7 +628,7 @@ uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPseudoStyle::getPropertyStat
+ 
+ void SAL_CALL SdUnoPseudoStyle::setPropertyToDefault( const OUString& PropertyName ) throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+@@ -661,7 +660,7 @@ void SAL_CALL SdUnoPseudoStyle::setPropertyToDefault( const OUString& PropertyNa
+ 
+ uno::Any SAL_CALL SdUnoPseudoStyle::getPropertyDefault( const OUString& aPropertyName ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !isValid() )
+ 		throw lang::DisposedException();
+diff --git a/sd/source/ui/unoidl/unosrch.cxx b/sd/source/ui/unoidl/unosrch.cxx
+index ab3bb62..cf0c9be 100644
+--- sd/source/ui/unoidl/unosrch.cxx
++++ sd/source/ui/unoidl/unosrch.cxx
+@@ -40,8 +40,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef SVX_UNOSHAPE_HXX
+@@ -64,7 +64,6 @@
+ #include "unoprnms.hxx"
+ #include "unosrch.hxx"
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+ 
+@@ -793,14 +792,14 @@ void SAL_CALL SdUnoSearchReplaceDescriptor::setReplaceString( const ::rtl::OUStr
+ uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SdUnoSearchReplaceDescriptor::getPropertySetInfo()
+ 	throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpPropSet->getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SdUnoSearchReplaceDescriptor::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = mpPropSet->getPropertyMapEntry(aPropertyName);
+ 
+@@ -828,7 +827,7 @@ void SAL_CALL SdUnoSearchReplaceDescriptor::setPropertyValue( const ::rtl::OUStr
+ uno::Any SAL_CALL SdUnoSearchReplaceDescriptor::getPropertyValue( const ::rtl::OUString& PropertyName )
+ 	throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+diff --git a/sd/source/ui/unoidl/unostyls.cxx b/sd/source/ui/unoidl/unostyls.cxx
+index d1e3513..2b95286 100644
+--- sd/source/ui/unoidl/unostyls.cxx
++++ sd/source/ui/unoidl/unostyls.cxx
+@@ -40,8 +40,8 @@
+ #include <com/sun/star/lang/DisposedException.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _LIST_HXX
+@@ -61,7 +61,6 @@
+ #include "glob.hxx"
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using ::com::sun::star::lang::DisposedException;
+ 	
+diff --git a/sd/source/ui/unoidl/unovwcrs.cxx b/sd/source/ui/unoidl/unovwcrs.cxx
+index 7fd72b6..e8e3477 100644
+--- sd/source/ui/unoidl/unovwcrs.cxx
++++ sd/source/ui/unoidl/unovwcrs.cxx
+@@ -47,8 +47,8 @@
+ #include <sfx2/request.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef SD_VIEW_HXX
+@@ -72,7 +72,6 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+ 
+@@ -196,13 +195,13 @@ void SdXTextViewCursor::gotoEnd(sal_Bool ) throw( uno::RuntimeException )
+ 
+ sal_Bool SdXTextViewCursor::screenDown(void) throw( uno::RuntimeException )
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sal_False;
+ }
+ 
+ sal_Bool SdXTextViewCursor::screenUp(void) throw( uno::RuntimeException )
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sal_False;
+ }
+ 
+diff --git a/sd/source/ui/view/ViewClipboard.cxx b/sd/source/ui/view/ViewClipboard.cxx
+index 5cd8706..0effdff 100755
+--- sd/source/ui/view/ViewClipboard.cxx
++++ sd/source/ui/view/ViewClipboard.cxx
+@@ -51,8 +51,8 @@
+ 
+ #include <svx/svdpagv.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -262,7 +262,7 @@ USHORT ViewClipboard::InsertSlides (
+     }
+     if (nInsertPgCnt > 0)
+     {
+-        const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         ::sd::Window* pWin = mrView.GetViewShell()->GetActiveWindow();
+         const BOOL bWait = pWin && pWin->IsWait();
+ 
+diff --git a/sd/source/ui/view/ViewTabBar.cxx b/sd/source/ui/view/ViewTabBar.cxx
+index 261aeca..861487d 100644
+--- sd/source/ui/view/ViewTabBar.cxx
++++ sd/source/ui/view/ViewTabBar.cxx
+@@ -57,7 +57,7 @@
+ #endif
+ #include <vcl/svapp.hxx>
+ #include <vcl/tabpage.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <sfx2/viewfrm.hxx>
+ #ifndef _COM_SUN_STAR_DRAWING_FRAMEWORK_RESOURCEID_HPP_
+ #include <com/sun/star/drawing/framework/ResourceId.hpp>
+@@ -315,7 +315,7 @@ void SAL_CALL ViewTabBar::addTabBarButtonAfter (
+     const TabBarButton& rAnchor)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     AddTabBarButton(rButton, rAnchor);
+ }
+ 
+@@ -325,7 +325,7 @@ void SAL_CALL ViewTabBar::addTabBarButtonAfter (
+ void SAL_CALL ViewTabBar::appendTabBarButton (const TabBarButton& rButton)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     AddTabBarButton(rButton);
+ }
+ 
+@@ -334,7 +334,7 @@ void SAL_CALL ViewTabBar::appendTabBarButton (const TabBarButton& rButton)
+ void SAL_CALL ViewTabBar::removeTabBarButton (const TabBarButton& rButton)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     RemoveTabBarButton(rButton);
+ }
+ 
+@@ -344,7 +344,7 @@ void SAL_CALL ViewTabBar::removeTabBarButton (const TabBarButton& rButton)
+ sal_Bool SAL_CALL ViewTabBar::hasTabBarButton (const TabBarButton& rButton)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     return HasTabBarButton(rButton);
+ }
+ 
+@@ -354,7 +354,7 @@ sal_Bool SAL_CALL ViewTabBar::hasTabBarButton (const TabBarButton& rButton)
+ Sequence<TabBarButton> SAL_CALL ViewTabBar::getTabBarButtons (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++    const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+     return GetTabBarButtons();
+ }
+ 
+@@ -379,7 +379,7 @@ const Sequence<sal_Int8>& ViewTabBar::getUnoTunnelId (void)
+ 	static Sequence<sal_Int8>* pSequence = NULL;
+ 	if (pSequence == NULL)
+ 	{
+-        const ::vos::OGuard aSolarGuard (Application::GetSolarMutex());
++        const osl::SolarMutexGuard aSolarGuard (Application::GetSolarMutex());
+ 		if (pSequence == NULL)
+ 		{
+ 			static ::com::sun::star::uno::Sequence<sal_Int8> aSequence (16);
+diff --git a/sd/source/ui/view/drviews8.cxx b/sd/source/ui/view/drviews8.cxx
+index 027bac2..d9ded0b 100644
+--- sd/source/ui/view/drviews8.cxx
++++ sd/source/ui/view/drviews8.cxx
+@@ -157,8 +157,8 @@
+ #endif
+ #include "zoomlist.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SALBTYPE_HXX
+@@ -556,7 +556,7 @@ void DrawViewShell::ScannerEvent( const ::com::sun::star::lang::EventObject& )
+ 
+ 				if( !!aScanBmp )
+ 				{
+-                    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		            SdrPage*            pPage = mpDrawView->GetSdrPageView()->GetPage();
+             		Size                aBmpSize( aScanBmp.GetPrefSize() ), aPageSize( pPage->GetSize() );
+                     const MapMode       aMap100( MAP_100TH_MM );
+diff --git a/sd/source/ui/view/slidview.cxx b/sd/source/ui/view/slidview.cxx
+index 3ada8eb..2a552c6 100644
+--- sd/source/ui/view/slidview.cxx
++++ sd/source/ui/view/slidview.cxx
+@@ -120,8 +120,8 @@
+ 
+ #include "sdabstdlg.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SDR_OVERLAY_OVERLAYMANAGER_HXX
+@@ -1040,7 +1040,7 @@ void SlideView::DoPaste (::Window* pWindow )
+         if( pClipTransferable->HasPageBookmarks() )
+         {
+             const List&         rBookmarkList = pClipTransferable->GetPageBookmarks();
+-            const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             nInsertPgCnt = (USHORT) rBookmarkList.Count();
+ 		    mpDoc->InsertBookmarkAsPage( const_cast< List* >( &rBookmarkList ), NULL, FALSE, FALSE, nInsertPos,
+@@ -1054,7 +1054,7 @@ void SlideView::DoPaste (::Window* pWindow )
+ 
+ 			if( pDataDoc && pDataDoc->GetSdPageCount( PK_STANDARD ) )
+ 			{
+-                const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+                 nInsertPgCnt = pDataDoc->GetSdPageCount( PK_STANDARD );
+ 				mpDoc->InsertBookmarkAsPage( NULL, NULL, FALSE, FALSE, nInsertPos,
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 6ca2c6b..506e02a 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -672,7 +672,7 @@
+ #include "vcl/wintypes.hxx"
+ #include "osl/diagnose.h"
+ #include "vos/module.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "vos/security.hxx"
+ #include "vos/socket.hxx"
+ #include "osl/thread.hxx"
+diff --git a/sfx2/source/appl/appdata.cxx b/sfx2/source/appl/appdata.cxx
+index eae8e10..c963e85 100644
+--- sfx2/source/appl/appdata.cxx
++++ sfx2/source/appl/appdata.cxx
+@@ -50,7 +50,7 @@
+ 
+ #define _SVSTDARR_STRINGS
+ #include <svtools/svstdarr.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <vcl/menu.hxx>
+ 
+diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
+index 047ba95..5f4455f 100644
+--- sfx2/source/appl/appinit.cxx
++++ sfx2/source/appl/appinit.cxx
+@@ -168,7 +168,7 @@ void SAL_CALL SfxTerminateListener_Impl::disposing( const EventObject& ) throw(
+ 
+ void SAL_CALL SfxTerminateListener_Impl::queryTermination( const EventObject& ) throw(TerminationVetoException, RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( !SFX_APP()->QueryExit_Impl() )
+         throw TerminationVetoException();
+ }
+@@ -182,7 +182,7 @@ void SAL_CALL SfxTerminateListener_Impl::notifyTermination( const EventObject& a
+     if( xDesktop.is() == sal_True )
+         xDesktop->removeTerminateListener( this );
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     utl::ConfigManager::GetConfigManager()->StoreConfigItems();
+     SfxApplication* pApp = SFX_APP();
+     pApp->Get_Impl()->aLateInitTimer.Stop();
+@@ -257,7 +257,7 @@ String GetSpecialCharsForEdit(Window* pParent, const Font& rFont)
+     static bool bDetermineFunction = false;
+     static PFunc_getSpecialCharsForEdit pfunc_getSpecialCharsForEdit = 0;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( !bDetermineFunction )
+     {
+         bDetermineFunction = true;
+@@ -343,7 +343,7 @@ FASTBOOL SfxApplication::Initialize_Impl()
+ 
+ 	Registrations_Impl();
+ 
+-//    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++//    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // TODO/LATER: exchange confusing defines; CREATEDOC -> NEWDOC, DOCCREATED -> CREATEDOC
+     SfxEventConfiguration::RegisterEvent(SFX_EVENT_STARTAPP,        String(SfxResId(STR_EVENT_STARTAPP)),   SfxObjectShell::GetEventNames_Impl()[0] );
+@@ -400,7 +400,7 @@ FASTBOOL SfxApplication::Initialize_Impl()
+     pAppData->aLateInitTimer.Start();
+ 
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         // Set special characters callback on vcl edit control
+         Edit::SetGetSpecialCharsFunction(&GetSpecialCharsForEdit);
+     }
+diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
+index a620071..9118635 100644
+--- sfx2/source/appl/appmisc.cxx
++++ sfx2/source/appl/appmisc.cxx
+@@ -89,7 +89,7 @@
+ #include <tools/config.hxx>
+ #endif
+ #include <tools/rcid.h>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #ifndef GCC
+ #endif
+ #ifndef _UTL_CONFIGMGR_HXX_
+@@ -203,7 +203,7 @@ void SfxApplication::InitializeDisplayName_Impl()
+ 	String aTitle = Application::GetDisplayName();
+     if ( !aTitle.Len() )
+ 	{
+-		OClearableGuard aGuard( OMutex::getGlobalMutex() );
++        osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     	// create version string
+ /*!!! (pb) don't show a version number at the moment
+diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
+index aebc005..c99f71b 100644
+--- sfx2/source/appl/appopen.cxx
++++ sfx2/source/appl/appopen.cxx
+@@ -158,7 +158,7 @@
+ #include <svtools/docpasswdrequest.hxx>
+ #include <vcl/svapp.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <rtl/logfile.hxx>
+ 
+@@ -1154,7 +1154,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
+                     if ( !bIsDir && !aExtendedSecurityOptions.IsSecureHyperlink( aURL.Complete ) )
+ 					{
+ 						// Security check for local files depending on the extension
+-						vos::OGuard aGuard( Application::GetSolarMutex() );
++						osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 						Window *pWindow = SFX_APP()->GetTopWindow();
+ 
+ 						String aSecurityWarningBoxTitle( SfxResId( RID_SECURITY_WARNING_TITLE ));
+@@ -1178,7 +1178,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
+ 			}
+             else if ( eMode == SvtExtendedSecurityOptions::OPEN_NEVER && aINetProtocol != INET_PROT_VND_SUN_STAR_HELP )
+ 			{
+-                vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                 Window *pWindow = SFX_APP()->GetTopWindow();
+ 
+                 String aSecurityWarningBoxTitle( SfxResId( RID_SECURITY_WARNING_TITLE ));
+@@ -1210,13 +1210,13 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
+ 						}
+ 						catch ( ::com::sun::star::lang::IllegalArgumentException& )
+ 						{
+-							vos::OGuard aGuard( Application::GetSolarMutex() );
++							osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                             Window *pWindow = SFX_APP()->GetTopWindow();
+ 							ErrorBox( pWindow, SfxResId( MSG_ERR_NO_WEBBROWSER_FOUND )).Execute();
+ 						}
+ 						catch ( ::com::sun::star::system::SystemShellExecuteException& )
+ 						{
+-							vos::OGuard aGuard( Application::GetSolarMutex() );
++							osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                             Window *pWindow = SFX_APP()->GetTopWindow();
+ 							ErrorBox( pWindow, SfxResId( MSG_ERR_NO_WEBBROWSER_FOUND )).Execute();
+ 						}
+@@ -1239,7 +1239,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
+ 							}
+ 							catch ( ::com::sun::star::lang::IllegalArgumentException& )
+ 							{
+-								vos::OGuard aGuard( Application::GetSolarMutex() );
++								osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                                 Window *pWindow = SFX_APP()->GetTopWindow();
+ 								ErrorBox( pWindow, SfxResId( MSG_ERR_NO_WEBBROWSER_FOUND )).Execute();
+ 							}
+@@ -1247,7 +1247,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
+ 							{
+ 								if ( !pFilter )
+ 								{
+-									vos::OGuard aGuard( Application::GetSolarMutex() );
++									osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	                                Window *pWindow = SFX_APP()->GetTopWindow();
+ 									ErrorBox( pWindow, SfxResId( MSG_ERR_NO_WEBBROWSER_FOUND )).Execute();
+ 								}
+diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
+index e973676..86bbcbf 100644
+--- sfx2/source/appl/appuno.cxx
++++ sfx2/source/appl/appuno.cxx
+@@ -1627,7 +1627,7 @@ void SAL_CALL SfxMacroLoader::dispatchWithNotification( const ::com::sun::star::
+                                                         const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchResultListener >& xListener )
+               throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_uInt32 nPropertyCount = lArgs.getLength();
+     ::rtl::OUString aReferer;
+@@ -1672,7 +1672,7 @@ void SAL_CALL SfxMacroLoader::dispatch( const ::com::sun::star::util::URL&
+                                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArgs )
+               throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_uInt32 nPropertyCount = lArgs.getLength();
+     ::rtl::OUString aReferer;
+@@ -1974,7 +1974,7 @@ throw( RuntimeException )
+ Sequence< sal_Int16 > SAL_CALL SfxAppDispatchProvider::getSupportedCommandGroups()
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     std::list< sal_Int16 > aGroupList;
+     SfxSlotPool* pAppSlotPool = &SFX_APP()->GetAppSlotPool_Impl();
+@@ -2009,7 +2009,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ {
+     std::list< ::com::sun::star::frame::DispatchInformation > aCmdList;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SfxSlotPool* pAppSlotPool = &SFX_APP()->GetAppSlotPool_Impl();
+ 
+     if ( pAppSlotPool )
+diff --git a/sfx2/source/appl/fwkhelper.cxx b/sfx2/source/appl/fwkhelper.cxx
+index 98a3441..ed6b77c 100644
+--- sfx2/source/appl/fwkhelper.cxx
++++ sfx2/source/appl/fwkhelper.cxx
+@@ -47,7 +47,7 @@
+ #include "sal/config.h"
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #include "workwin.hxx"
+@@ -55,7 +55,7 @@
+ 
+ void SAL_CALL RefreshToolbars( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( xFrame.is() )
+ 	{
+ 	    SfxFrame* pFrame=0;
+diff --git a/sfx2/source/appl/imestatuswindow.cxx b/sfx2/source/appl/imestatuswindow.cxx
+index fa697c3..eefaebe 100644
+--- sfx2/source/appl/imestatuswindow.cxx
++++ sfx2/source/appl/imestatuswindow.cxx
+@@ -58,7 +58,7 @@
+ #include "rtl/ustring.hxx"
+ #include "sal/types.h"
+ #include "vcl/svapp.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ 
+ namespace css = com::sun::star;
+ 
+@@ -168,7 +168,7 @@ void SAL_CALL
+ ImeStatusWindow::propertyChange(css::beans::PropertyChangeEvent const & )
+     throw (css::uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     m_rApplication.Invalidate(SID_SHOW_IME_STATUS_WINDOW);
+ }
+ 
+diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
+index 02f134d..0b61adb 100644
+--- sfx2/source/appl/shutdownicon.cxx
++++ sfx2/source/appl/shutdownicon.cxx
+@@ -39,7 +39,7 @@
+ #include <shutdownicon.hxx>
+ #include <app.hrc>
+ #include <sfx2/app.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/imagemgr.hxx>
+ // #include <cmdlineargs.hxx>
+ 
+@@ -129,7 +129,6 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::ui::dialogs;
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::sfx2;
+ 
+@@ -318,7 +317,7 @@ void ShutdownIcon::FileOpen()
+ {
+     if ( getInstance() && getInstance()->m_xDesktop.is() )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		EnterModalMode();
+         getInstance()->StartFileDialog();
+     }
+@@ -369,7 +368,7 @@ void ShutdownIcon::FromTemplate()
+ #include <tools/rcid.h>
+ OUString ShutdownIcon::GetResString( int id )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( ! m_pResMgr )
+         m_pResMgr = SfxResId::GetResMgr();
+@@ -386,7 +385,7 @@ OUString ShutdownIcon::GetResString( int id )
+ 
+ OUString ShutdownIcon::GetUrlDescription( const OUString& aUrl )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return OUString( SvFileInformationManager::GetDescription( INetURLObject( aUrl ) ) );
+ }
+@@ -395,7 +394,7 @@ OUString ShutdownIcon::GetUrlDescription( const OUString& aUrl )
+ 
+ void ShutdownIcon::StartFileDialog()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( !m_pFileDlg )
+         m_pFileDlg = new FileDialogHelper( WB_OPEN | SFXWB_MULTISELECTION, String() );
+@@ -619,7 +618,7 @@ ShutdownIcon* ShutdownIcon::createInstance()
+ void ShutdownIcon::init() throw( ::com::sun::star::uno::Exception )
+ {
+ 	// access resource system and sfx only protected by solarmutex
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	ResMgr *pResMgr = SfxResId::GetResMgr();
+ 
+ 	::osl::ResettableMutexGuard	aGuard(	m_aMutex );
+@@ -788,7 +787,7 @@ rtl::OUString ShutdownIcon::getShortcutName()
+ 	ResMgr* pMgr = SfxResId::GetResMgr();
+     if( pMgr )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         UniString aRes( SfxResId( STR_QUICKSTART_LNKNAME ) );
+         aShortcutName = OUString( aRes );
+     }
+diff --git a/sfx2/source/appl/shutdowniconunx.cxx b/sfx2/source/appl/shutdowniconunx.cxx
+index 5058d82..48a642a 100644
+--- sfx2/source/appl/shutdowniconunx.cxx
++++ sfx2/source/appl/shutdowniconunx.cxx
+@@ -10,7 +10,7 @@
+ #include <gtk/gtk.h>
+ #include <glib.h>
+ #include <eggtray/eggtrayicon.h>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #ifndef _SV_BITMAPEX_HXX
+ #include <vcl/bitmapex.hxx>
+@@ -347,7 +347,7 @@ extern "C" {
+ 	static gboolean
+ 	show_at_idle( gpointer )
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		gtk_widget_show_all( GTK_WIDGET( pTrayIcon ) );
+ 		return FALSE;
+ 	}
+@@ -355,7 +355,7 @@ extern "C" {
+ 
+ void SAL_DLLPUBLIC_EXPORT plugin_init_sys_tray()
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !g_type_from_name( "GdkDisplay" ) )
+ 		return;
+@@ -399,7 +399,7 @@ void SAL_DLLPUBLIC_EXPORT plugin_init_sys_tray()
+ 
+ void SAL_DLLPUBLIC_EXPORT plugin_shutdown_sys_tray()
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( !pTrayIcon )
+ 		return;
+ 	gtk_widget_destroy( GTK_WIDGET( pTrayIcon ) );
+diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
+index 4216a81..a4b8155 100644
+--- sfx2/source/appl/workwin.cxx
++++ sfx2/source/appl/workwin.cxx
+@@ -202,7 +202,7 @@ LayoutManagerListener::~LayoutManagerListener()
+ 
+ void LayoutManagerListener::setFrame( const css::uno::Reference< css::frame::XFrame >& xFrame )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pWrkWin && !m_bHasFrame )
+     {
+         m_xFrame    = xFrame;
+@@ -259,7 +259,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ void SAL_CALL LayoutManagerListener::dispose()
+ throw( css::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // reset member
+     m_pWrkWin = 0;
+@@ -306,7 +306,7 @@ void SAL_CALL LayoutManagerListener::disposing(
+     const css::lang::EventObject& )
+ throw( css::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_pWrkWin = 0;
+     m_bHasFrame = sal_False;
+     m_xFrame = css::uno::Reference< css::frame::XFrame >();
+@@ -321,7 +321,7 @@ void SAL_CALL LayoutManagerListener::layoutEvent(
+     const css::uno::Any&                        )
+ throw (css::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pWrkWin )
+     {
+         if ( eLayoutEvent == css::frame::LayoutManagerEvents::VISIBLE )
+diff --git a/sfx2/source/bastyp/fltlst.cxx b/sfx2/source/bastyp/fltlst.cxx
+index 776c113..15c0c74 100644
+--- sfx2/source/bastyp/fltlst.cxx
++++ sfx2/source/bastyp/fltlst.cxx
+@@ -57,7 +57,7 @@
+ #include <sfx2/docfac.hxx>
+ 
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ //*****************************************************************************************************************
+ //  namespaces
+@@ -111,7 +111,7 @@ SfxFilterListener::~SfxFilterListener()
+ 
+ void SAL_CALL SfxFilterListener::refreshed( const lang::EventObject& aSource ) throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Reference< util::XRefreshable > xContainer( aSource.Source, uno::UNO_QUERY );
+     if(
+         (xContainer.is()           ) &&
+@@ -124,7 +124,7 @@ void SAL_CALL SfxFilterListener::refreshed( const lang::EventObject& aSource ) t
+ 
+ void SAL_CALL SfxFilterListener::disposing( const lang::EventObject& aSource ) throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Reference< util::XRefreshable > xNotifier( aSource.Source, uno::UNO_QUERY );
+     if (!xNotifier.is())
+         return;
+diff --git a/sfx2/source/control/querystatus.cxx b/sfx2/source/control/querystatus.cxx
+index 3311c04..38c3de2 100644
+--- sfx2/source/control/querystatus.cxx
++++ sfx2/source/control/querystatus.cxx
+@@ -57,7 +57,7 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+ #include <comphelper/processfactory.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_
+@@ -140,14 +140,14 @@ SfxQueryStatus_Impl::~SfxQueryStatus_Impl()
+ void SAL_CALL SfxQueryStatus_Impl::disposing( const EventObject& ) 
+ throw( RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_xDispatch.clear();
+ }
+ 
+ void SAL_CALL SfxQueryStatus_Impl::statusChanged( const FeatureStateEvent& rEvent)
+ throw( RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     m_pItem  = NULL;
+     m_eState = SFX_ITEM_DISABLED;
+@@ -218,7 +218,7 @@ throw( RuntimeException )
+ // Query method
+ SfxItemState SfxQueryStatus_Impl::QueryState( SfxPoolItem*& rpPoolItem )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( !m_bQueryInProgress )
+     {
+         m_pItem  = NULL;
+@@ -265,6 +265,6 @@ SfxQueryStatus::~SfxQueryStatus()
+ 
+ SfxItemState SfxQueryStatus::QueryState( SfxPoolItem*& rpPoolItem )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return m_pSfxQueryStatusImpl->QueryState( rpPoolItem );
+ }
+diff --git a/sfx2/source/control/sfxstatuslistener.cxx b/sfx2/source/control/sfxstatuslistener.cxx
+index 70495b3..d5475e9 100644
+--- sfx2/source/control/sfxstatuslistener.cxx
++++ sfx2/source/control/sfxstatuslistener.cxx
+@@ -57,7 +57,7 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+ #include <comphelper/processfactory.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_
+@@ -221,7 +221,7 @@ throw ( RuntimeException )
+ void SAL_CALL SfxStatusListener::disposing( const EventObject& Source )
+ throw( RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( Source.Source == Reference< XInterface >( m_xDispatch, UNO_QUERY ))
+         m_xDispatch.clear();
+@@ -232,7 +232,7 @@ throw( RuntimeException )
+ void SAL_CALL SfxStatusListener::statusChanged( const FeatureStateEvent& rEvent)
+ throw( RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     SfxViewFrame* pViewFrame = NULL;
+     if ( m_xDispatch.is() )
+diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
+index d5ce3e4..256250c 100644
+--- sfx2/source/control/unoctitm.cxx
++++ sfx2/source/control/unoctitm.cxx
+@@ -88,7 +88,7 @@
+ #endif
+ #include <comphelper/processfactory.hxx>
+ #include <comphelper/sequence.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <uno/current_context.hxx>
+ #include <vcl/svapp.hxx>
+ 
+@@ -168,7 +168,7 @@ void SfxUnoControllerItem::UnBind()
+ 
+ void SAL_CALL SfxUnoControllerItem::statusChanged(const ::com::sun::star::frame::FeatureStateEvent& rEvent) throw ( ::com::sun::star::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	DBG_ASSERT( pCtrlItem, "Dispatch hat den StatusListener nicht entfern!" );
+ 
+ 	if ( rEvent.Requery )
+@@ -705,7 +705,7 @@ void SAL_CALL SfxDispatchController_Impl::dispatch( const ::com::sun::star::util
+         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArgs,
+         const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchResultListener >& rListener ) throw( ::com::sun::star::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( pDispatch &&
+         ( aURL.Protocol.equalsAsciiL( ".uno:", 5 ) && aURL.Path == aDispatchURL.Path ||
+           aURL.Protocol.equalsAsciiL( "slot:", 5 ) && aURL.Path.toInt32() == GetId() ) )
+@@ -908,7 +908,7 @@ SfxDispatcher* SfxDispatchController_Impl::GetDispatcher()
+ 
+ void SAL_CALL SfxDispatchController_Impl::addStatusListener(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener > & aListener, const ::com::sun::star::util::URL& aURL) throw ( ::com::sun::star::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( !pDispatch )
+         return;
+ 
+diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
+index 499b880..e2a1312 100644
+--- sfx2/source/dialog/filedlghelper.cxx
++++ sfx2/source/dialog/filedlghelper.cxx
+@@ -141,8 +141,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _VOS_SECURITY_HXX_
+ #include <vos/security.hxx>
+@@ -289,35 +289,35 @@ String DecodeSpaces_Impl( const String& rSource );
+ // ------------------------------------------------------------------------
+ void SAL_CALL FileDialogHelper_Impl::fileSelectionChanged( const FilePickerEvent& aEvent ) throw ( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	mpAntiImpl->FileSelectionChanged( aEvent );
+ }
+ 
+ // ------------------------------------------------------------------------
+ void SAL_CALL FileDialogHelper_Impl::directoryChanged( const FilePickerEvent& aEvent ) throw ( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	mpAntiImpl->DirectoryChanged( aEvent );
+ }
+ 
+ // ------------------------------------------------------------------------
+ OUString SAL_CALL FileDialogHelper_Impl::helpRequested( const FilePickerEvent& aEvent ) throw ( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpAntiImpl->HelpRequested( aEvent );
+ }
+ 
+ // ------------------------------------------------------------------------
+ void SAL_CALL FileDialogHelper_Impl::controlStateChanged( const FilePickerEvent& aEvent ) throw ( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	mpAntiImpl->ControlStateChanged( aEvent );
+ }
+ 
+ // ------------------------------------------------------------------------
+ void SAL_CALL FileDialogHelper_Impl::dialogSizeChanged() throw ( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	mpAntiImpl->DialogSizeChanged();
+ }
+ 
+@@ -326,7 +326,7 @@ void SAL_CALL FileDialogHelper_Impl::dialogSizeChanged() throw ( RuntimeExceptio
+ // ------------------------------------------------------------------------
+ void SAL_CALL FileDialogHelper_Impl::dialogClosed( const DialogClosedEvent& _rEvent ) throw ( RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     mpAntiImpl->DialogClosed( _rEvent );
+     postExecute( _rEvent.DialogResult );
+ }
+@@ -449,7 +449,7 @@ void FileDialogHelper_Impl::handleDialogSizeChanged()
+ // ------------------------------------------------------------------------
+ void SAL_CALL FileDialogHelper_Impl::disposing( const EventObject& ) throw ( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	dispose();
+ }
+ 
+@@ -1264,7 +1264,7 @@ FileDialogHelper_Impl::~FileDialogHelper_Impl()
+ class PickerThread_Impl : public ::osl::Thread
+ {
+ 	uno::Reference < XFilePicker > mxPicker;
+-	::vos::OMutex			maMutex;
++	::osl::Mutex			maMutex;
+ 	virtual void SAL_CALL	run();
+ 	sal_Int16				mnRet;
+ public:
+@@ -1272,10 +1272,10 @@ public:
+ 							: mxPicker( rPicker ), mnRet(nMagic) {}
+ 
+ 	sal_Int16				GetReturnValue()
+-							{ ::vos::OGuard aGuard( maMutex ); return mnRet; }
++							{ ::osl::MutexGuard aGuard( maMutex ); return mnRet; }
+ 
+ 	void					SetReturnValue( sal_Int16 aRetValue )
+-							{ ::vos::OGuard aGuard( maMutex ); mnRet = aRetValue; }
++							{ ::osl::MutexGuard aGuard( maMutex ); mnRet = aRetValue; }
+ };
+ 
+ void SAL_CALL PickerThread_Impl::run()
+diff --git a/sfx2/source/dialog/mailmodel.cxx b/sfx2/source/dialog/mailmodel.cxx
+index 733262d..e08704c 100644
+--- sfx2/source/dialog/mailmodel.cxx
++++ sfx2/source/dialog/mailmodel.cxx
+@@ -926,7 +926,7 @@ SfxMailModel::SendMailResult SfxMailModel::Send( const css::uno::Reference< css:
+ 	                {
+                         css::uno::Reference< css::awt::XWindow > xParentWindow = xFrame->getContainerWindow();
+ 
+-                        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                         Window* pParentWindow = VCLUnoHelper::GetWindow( xParentWindow );
+     		            
+                         ErrorBox aBox( pParentWindow, SfxResId( RID_ERRBOX_MAIL_CONFIG ));
+diff --git a/sfx2/source/dialog/mailmodelapi.cxx b/sfx2/source/dialog/mailmodelapi.cxx
+index 0e7dc09..5e34ba2 100644
+--- sfx2/source/dialog/mailmodelapi.cxx
++++ sfx2/source/dialog/mailmodelapi.cxx
+@@ -88,8 +88,8 @@
+ #ifndef _RTL_TEXTENC_H
+ #include <rtl/textench.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _RTL_URI_H_
+ #include <rtl/uri.h>
+@@ -259,7 +259,7 @@ void SAL_CALL OMailSendThreadImpl::run()
+ 
+ 	if ( m_bSend == sal_False )
+ 	{
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		Reference< ::com::sun::star::awt::XWindow > xParentWindow = m_xCurrentFrame->getContainerWindow();
+ 		Window*                                     pParentWindow = VCLUnoHelper::GetWindow( xParentWindow );
+ 
+diff --git a/sfx2/source/doc/doctempl.cxx b/sfx2/source/doc/doctempl.cxx
+index 577f706..8b250c4 100644
+--- sfx2/source/doc/doctempl.cxx
++++ sfx2/source/doc/doctempl.cxx
+@@ -42,8 +42,8 @@
+ #include <com/sun/star/uno/Any.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
+index 12af260..8d3157b 100644
+--- sfx2/source/doc/doctemplates.cxx
++++ sfx2/source/doc/doctemplates.cxx
+@@ -38,8 +38,8 @@
+ 
+ #include "doctemplates.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef  _TOOLS_DEBUG_HXX
+@@ -517,7 +517,7 @@ void SfxDocTplService_Impl::init_Impl()
+ 		if ( bNeedsUpdate )
+ 		{
+             aGuard.clear();
+-            ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+             WaitWindow_Impl* pWin = new WaitWindow_Impl();
+ 
+@@ -527,7 +527,7 @@ void SfxDocTplService_Impl::init_Impl()
+ 			update( sal_True );
+ 
+             anotherGuard.clear();
+-            ::vos::OGuard aSecondSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSecondSolarGuard( Application::GetSolarMutex() );
+ 
+             delete pWin;
+         }
+@@ -587,7 +587,7 @@ void SfxDocTplService_Impl::getDefaultLocale()
+ // -----------------------------------------------------------------------
+ void SfxDocTplService_Impl::readFolderList()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ResStringArray  aShortNames( SfxResId( TEMPLATE_SHORT_NAMES_ARY ) );
+     ResStringArray  aLongNames( SfxResId( TEMPLATE_LONG_NAMES_ARY ) );
+diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
+index cf0f282..af1e2d6 100644
+--- sfx2/source/doc/objmisc.cxx
++++ sfx2/source/doc/objmisc.cxx
+@@ -48,7 +48,7 @@
+ #ifndef _SFXINTITEM_HXX //autogen
+ #include <svtools/intitem.hxx>
+ #endif
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #ifndef GCC
+ #endif
+@@ -1494,7 +1494,7 @@ ErrCode SfxObjectShell::CallStarBasicScript( const String& _rMacroName, const St
+ 	const void* _pArguments, void* _pReturn )
+ {
+     OSL_TRACE("in CallSBS");
+-	::vos::OClearableGuard aGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// the arguments for the call
+ 	SbxArrayRef xMacroArguments = lcl_translateUno2Basic( _pArguments );
+@@ -1530,7 +1530,7 @@ ErrCode SfxObjectShell::CallScript(
+ 	void *pRet
+ )
+ {
+-	::vos::OClearableGuard aGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	ErrCode nErr = ERRCODE_NONE;
+ 	if( rScriptType.EqualsAscii( "StarBasic" ) )
+ 	{
+diff --git a/sfx2/source/doc/objuno.cxx b/sfx2/source/doc/objuno.cxx
+index 887b513..3f058f0 100644
+--- sfx2/source/doc/objuno.cxx
++++ sfx2/source/doc/objuno.cxx
+@@ -62,7 +62,7 @@
+ #include <hash_map>                     // dynamic props
+ #include <svtools/itemprop.hxx>         // dynamic props
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <tools/errcode.hxx>
+ #include <svtools/cntwids.hrc>
+@@ -1390,7 +1390,7 @@ uno::Reference< embed::XStorage > GetStorage_Impl( const ::rtl::OUString& rName,
+     // Client code checks the returned reference but is not interested on error details.
+     try
+     {
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         return ::comphelper::OStorageHelper::GetStorageFromURL(
+ 						rName,
+ 						bWrite ? embed::ElementModes::READWRITE : embed::ElementModes::READ,
+diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx
+index d6e7c03..c6296a8 100644
+--- sfx2/source/doc/objxtor.cxx
++++ sfx2/source/doc/objxtor.cxx
+@@ -44,8 +44,8 @@
+ #include <com/sun/star/util/XCloseListener.hpp>
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_RESARY_HXX
+@@ -887,7 +887,7 @@ SEQUENCE< OUSTRING > SfxObjectShell::GetEventNames_Impl()
+ 
+ 	if ( !pEventNameContainer )
+ 	{
+-    	::vos::OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if ( !pEventNameContainer )
+ 		{
+ 			static uno::Sequence< ::rtl::OUString > aEventNameContainer( 26 );
+diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx
+index 5d93dfc..d366a81 100755
+--- sfx2/source/doc/printhelper.cxx
++++ sfx2/source/doc/printhelper.cxx
+@@ -59,7 +59,7 @@
+ #include <tools/urlobj.hxx>
+ #include <ucbhelper/content.hxx>
+ #include <cppuhelper/interfacecontainer.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/printdlg.hxx>
+ #include <cppuhelper/implbase1.hxx>
+ 
+@@ -191,7 +191,7 @@ SfxPrintHelper::~SfxPrintHelper()
+ uno::Sequence< beans::PropertyValue > SAL_CALL SfxPrintHelper::getPrinter() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// Printer beschaffen
+ 	SfxViewFrame *pViewFrm = m_pData->m_pObjectShell.Is() ?
+@@ -364,7 +364,7 @@ void SAL_CALL SfxPrintHelper::setPrinter(const uno::Sequence< beans::PropertyVal
+         throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxViewShell* pViewSh = NULL;
+ 	SfxPrinter* pPrinter = NULL;
+@@ -409,7 +409,7 @@ class ImplUCBPrintWatcher : public ::osl::Thread
+         {
+             /* SAFE { */
+             {
+-                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                 while( m_pPrinter->IsPrinting() )
+                     Application::Yield();
+                 m_pPrinter = NULL; // don't delete it! It's borrowed only :-)
+@@ -487,7 +487,7 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >&
+ 
+ 	// object already disposed?
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// get view for sfx printing capabilities
+ 	SfxViewFrame *pViewFrm = m_pData->m_pObjectShell.Is() ?
+@@ -766,13 +766,13 @@ void IMPL_PrintListener_DataContainer::Notify( SfxBroadcaster& rBC, const SfxHin
+ 
+ void SAL_CALL SfxPrintHelper::addPrintJobListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XPrintJobListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_pData->m_aInterfaceContainer.addInterface( ::getCppuType((const uno::Reference < view::XPrintJobListener>*)0), xListener );
+ }
+ 
+ void SAL_CALL SfxPrintHelper::removePrintJobListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XPrintJobListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_pData->m_aInterfaceContainer.removeInterface( ::getCppuType((const uno::Reference < view::XPrintJobListener>*)0), xListener );
+ }
+ 
+diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
+index 829279c..11e8bc1 100644
+--- sfx2/source/doc/sfxbasemodel.cxx
++++ sfx2/source/doc/sfxbasemodel.cxx
+@@ -77,7 +77,7 @@
+ #include <basic/sbuno.hxx>
+ #include <tools/urlobj.hxx>
+ #include <unotools/tempfile.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/salctype.hxx>
+ #include <sot/clsids.hxx>
+ #include <sot/storinfo.hxx>
+@@ -611,7 +611,7 @@ uno::Reference< script::XStarBasicAccess > implGetStarBasicAccess( SfxObjectShel
+ 
+ uno::Reference< XNAMECONTAINER > SAL_CALL SfxBaseModel::getLibraryContainer() throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -632,7 +632,7 @@ void SAL_CALL SfxBaseModel::createLibrary( const ::rtl::OUString& LibName, const
+     const ::rtl::OUString& ExternalSourceURL, const ::rtl::OUString& LinkTargetURL )
+         throw(ELEMENTEXISTEXCEPTION, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -651,7 +651,7 @@ void SAL_CALL SfxBaseModel::addModule( const ::rtl::OUString& LibraryName, const
+     const ::rtl::OUString& Language, const ::rtl::OUString& Source )
+         throw( NOSUCHELEMENTEXCEPTION, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -670,7 +670,7 @@ void SAL_CALL SfxBaseModel::addDialog( const ::rtl::OUString& LibraryName, const
+ 	const ::com::sun::star::uno::Sequence< sal_Int8 >& Data )
+         throw(NOSUCHELEMENTEXCEPTION, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -689,7 +689,7 @@ void SAL_CALL SfxBaseModel::addDialog( const ::rtl::OUString& LibraryName, const
+ 
+ uno::Reference< uno::XInterface > SAL_CALL SfxBaseModel::getParent() throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -702,7 +702,7 @@ uno::Reference< uno::XInterface > SAL_CALL SfxBaseModel::getParent() throw( uno:
+ 
+ void SAL_CALL SfxBaseModel::setParent(const uno::Reference< uno::XInterface >& Parent) throw(NOSUPPORTEXCEPTION, uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_pData->m_xParent = Parent;
+ }
+ 
+@@ -712,7 +712,7 @@ void SAL_CALL SfxBaseModel::setParent(const uno::Reference< uno::XInterface >& P
+ 
+ void SAL_CALL SfxBaseModel::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// object already disposed?
+ 	if ( impl_isDisposed() )
+@@ -773,7 +773,7 @@ void SAL_CALL SfxBaseModel::addEventListener( const uno::Reference< XEVENTLISTEN
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -788,7 +788,7 @@ void SAL_CALL SfxBaseModel::removeEventListener( const uno::Reference< XEVENTLIS
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -802,7 +802,7 @@ void SAL_CALL SfxBaseModel::removeEventListener( const uno::Reference< XEVENTLIS
+ uno::Reference< document::XDocumentInfo > SAL_CALL SfxBaseModel::getDocumentInfo() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -827,7 +827,7 @@ uno::Reference< document::XDocumentInfo > SAL_CALL SfxBaseModel::getDocumentInfo
+ void SAL_CALL SfxBaseModel::disposing( const lang::EventObject& aObject )
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -851,7 +851,7 @@ sal_Bool SAL_CALL SfxBaseModel::attachResource( const   ::rtl::OUString&
+                                                 const   uno::Sequence< beans::PropertyValue >&  rArgs   )
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -934,7 +934,7 @@ sal_Bool SAL_CALL SfxBaseModel::attachResource( const   ::rtl::OUString&
+ 
+ ::rtl::OUString SAL_CALL SfxBaseModel::getURL() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -947,7 +947,7 @@ sal_Bool SAL_CALL SfxBaseModel::attachResource( const   ::rtl::OUString&
+ 
+ uno::Sequence< beans::PropertyValue > SAL_CALL SfxBaseModel::getArgs() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1050,7 +1050,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SfxBaseModel::getArgs() throw(::c
+ void SAL_CALL SfxBaseModel::connectController( const uno::Reference< frame::XController >& xController )
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1068,7 +1068,7 @@ void SAL_CALL SfxBaseModel::connectController( const uno::Reference< frame::XCon
+ 
+ void SAL_CALL SfxBaseModel::disconnectController( const uno::Reference< frame::XController >& xController ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1098,7 +1098,7 @@ void SAL_CALL SfxBaseModel::disconnectController( const uno::Reference< frame::X
+ 
+ void SAL_CALL SfxBaseModel::lockControllers() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 	++m_pData->m_nControllerLockCount ;
+@@ -1110,7 +1110,7 @@ void SAL_CALL SfxBaseModel::lockControllers() throw(::com::sun::star::uno::Runti
+ 
+ void SAL_CALL SfxBaseModel::unlockControllers() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 	--m_pData->m_nControllerLockCount ;
+@@ -1122,7 +1122,7 @@ void SAL_CALL SfxBaseModel::unlockControllers() throw(::com::sun::star::uno::Run
+ 
+ sal_Bool SAL_CALL SfxBaseModel::hasControllersLocked() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 	return ( m_pData->m_nControllerLockCount != 0 ) ;
+@@ -1135,7 +1135,7 @@ sal_Bool SAL_CALL SfxBaseModel::hasControllersLocked() throw(::com::sun::star::u
+ uno::Reference< frame::XController > SAL_CALL SfxBaseModel::getCurrentController() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1155,7 +1155,7 @@ void SAL_CALL SfxBaseModel::setCurrentController( const uno::Reference< frame::X
+         throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1169,7 +1169,7 @@ void SAL_CALL SfxBaseModel::setCurrentController( const uno::Reference< frame::X
+ uno::Reference< uno::XInterface > SAL_CALL SfxBaseModel::getCurrentSelection() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1195,7 +1195,7 @@ uno::Reference< uno::XInterface > SAL_CALL SfxBaseModel::getCurrentSelection() t
+ 
+ sal_Bool SAL_CALL SfxBaseModel::disableSetModified() throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		throw DISPOSEDEXCEPTION();
+ 
+@@ -1210,7 +1210,7 @@ sal_Bool SAL_CALL SfxBaseModel::disableSetModified() throw (::com::sun::star::un
+ 
+ sal_Bool SAL_CALL SfxBaseModel::enableSetModified() throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		throw DISPOSEDEXCEPTION();
+ 
+@@ -1225,7 +1225,7 @@ sal_Bool SAL_CALL SfxBaseModel::enableSetModified() throw (::com::sun::star::uno
+ 
+ sal_Bool SAL_CALL SfxBaseModel::isSetModifiedEnabled() throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		throw DISPOSEDEXCEPTION();
+ 
+@@ -1242,7 +1242,7 @@ sal_Bool SAL_CALL SfxBaseModel::isSetModifiedEnabled() throw (::com::sun::star::
+ sal_Bool SAL_CALL SfxBaseModel::isModified() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1257,7 +1257,7 @@ void SAL_CALL SfxBaseModel::setModified( sal_Bool bModified )
+         throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1272,7 +1272,7 @@ void SAL_CALL SfxBaseModel::setModified( sal_Bool bModified )
+ void SAL_CALL SfxBaseModel::addModifyListener(const uno::Reference< XMODIFYLISTENER >& xListener) throw( uno::RuntimeException )
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -1286,7 +1286,7 @@ void SAL_CALL SfxBaseModel::addModifyListener(const uno::Reference< XMODIFYLISTE
+ void SAL_CALL SfxBaseModel::removeModifyListener(const uno::Reference< XMODIFYLISTENER >& xListener) throw( uno::RuntimeException )
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -1301,7 +1301,7 @@ void SAL_CALL SfxBaseModel::close( sal_Bool bDeliverOwnership ) throw (util::Clo
+ {
+     static ::rtl::OUString MSG_1 = ::rtl::OUString::createFromAscii("Cant close while saving.");
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( !m_pData || m_pData->m_bClosed || m_pData->m_bClosing )
+ 		return;
+ 
+@@ -1365,7 +1365,7 @@ void SAL_CALL SfxBaseModel::close( sal_Bool bDeliverOwnership ) throw (util::Clo
+ void SAL_CALL SfxBaseModel::addCloseListener( const uno::Reference< XCLOSELISTENER >& xListener ) throw (uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -1379,7 +1379,7 @@ void SAL_CALL SfxBaseModel::addCloseListener( const uno::Reference< XCLOSELISTEN
+ void SAL_CALL SfxBaseModel::removeCloseListener( const uno::Reference< XCLOSELISTENER >& xListener ) throw (uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -1393,7 +1393,7 @@ void SAL_CALL SfxBaseModel::removeCloseListener( const uno::Reference< XCLOSELIS
+ uno::Sequence< beans::PropertyValue > SAL_CALL SfxBaseModel::getPrinter() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1407,7 +1407,7 @@ void SAL_CALL SfxBaseModel::setPrinter(const uno::Sequence< beans::PropertyValue
+         throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1419,7 +1419,7 @@ void SAL_CALL SfxBaseModel::print(const uno::Sequence< beans::PropertyValue >& r
+         throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1434,7 +1434,7 @@ void SAL_CALL SfxBaseModel::print(const uno::Sequence< beans::PropertyValue >& r
+ sal_Bool SAL_CALL SfxBaseModel::hasLocation() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1448,7 +1448,7 @@ sal_Bool SAL_CALL SfxBaseModel::hasLocation() throw(::com::sun::star::uno::Runti
+ ::rtl::OUString SAL_CALL SfxBaseModel::getLocation() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1462,7 +1462,7 @@ sal_Bool SAL_CALL SfxBaseModel::hasLocation() throw(::com::sun::star::uno::Runti
+ sal_Bool SAL_CALL SfxBaseModel::isReadonly() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1481,7 +1481,7 @@ void SAL_CALL SfxBaseModel::storeSelf( const    uno::Sequence< beans::PropertyVa
+ 	RTL_LOGFILE_PRODUCT_CONTEXT( aPerfLog, "PERFORMANCE - SfxBaseModel::storeSelf" );
+ 
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1571,7 +1571,7 @@ void SAL_CALL SfxBaseModel::storeAsURL( const   ::rtl::OUString&
+ 	RTL_LOGFILE_PRODUCT_CONTEXT( aPerfLog, "PERFORMANCE - SfxBaseModel::storeAsURL" );
+ 
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1596,7 +1596,7 @@ void SAL_CALL SfxBaseModel::storeToURL( const   ::rtl::OUString&
+         throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1618,7 +1618,7 @@ void SAL_CALL SfxBaseModel::initNew()
+ 			   ::com::sun::star::uno::Exception)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1653,7 +1653,7 @@ void SAL_CALL SfxBaseModel::load(   const uno::Sequence< beans::PropertyValue >&
+ 			   ::com::sun::star::uno::Exception)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -1898,7 +1898,7 @@ uno::Any SAL_CALL SfxBaseModel::getTransferData( const DATAFLAVOR& aFlavor )
+ 			   ::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2133,7 +2133,7 @@ uno::Sequence< DATAFLAVOR > SAL_CALL SfxBaseModel::getTransferDataFlavors()
+ 		throw (::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2205,7 +2205,7 @@ sal_Bool SAL_CALL SfxBaseModel::isDataFlavorSupported( const DATAFLAVOR& aFlavor
+ 		throw (::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2267,7 +2267,7 @@ sal_Bool SAL_CALL SfxBaseModel::isDataFlavorSupported( const DATAFLAVOR& aFlavor
+ uno::Reference< container::XNameReplace > SAL_CALL SfxBaseModel::getEvents() throw( uno::RuntimeException )
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2286,7 +2286,7 @@ uno::Reference< container::XNameReplace > SAL_CALL SfxBaseModel::getEvents() thr
+ void SAL_CALL SfxBaseModel::addEventListener( const uno::Reference< XDOCEVENTLISTENER >& aListener ) throw( uno::RuntimeException )
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -2300,7 +2300,7 @@ void SAL_CALL SfxBaseModel::addEventListener( const uno::Reference< XDOCEVENTLIS
+ void SAL_CALL SfxBaseModel::removeEventListener( const uno::Reference< XDOCEVENTLISTENER >& aListener ) throw( uno::RuntimeException )
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -2457,7 +2457,7 @@ void SfxBaseModel::changing()
+ {
+ 	// object already disposed?
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -2677,7 +2677,7 @@ void SfxBaseModel::postEvent_Impl( ULONG nEventID )
+ uno::Reference < container::XIndexAccess > SAL_CALL SfxBaseModel::getViewData() throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2723,7 +2723,7 @@ uno::Reference < container::XIndexAccess > SAL_CALL SfxBaseModel::getViewData()
+ void SAL_CALL SfxBaseModel::setViewData( const uno::Reference < container::XIndexAccess >& aData ) throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2766,7 +2766,7 @@ sal_Bool SfxBaseModel::hasEventListeners() const
+ void SAL_CALL SfxBaseModel::addPrintJobListener( const uno::Reference< view::XPrintJobListener >& xListener ) throw (uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -2776,7 +2776,7 @@ void SAL_CALL SfxBaseModel::addPrintJobListener( const uno::Reference< view::XPr
+ void SAL_CALL SfxBaseModel::removePrintJobListener( const uno::Reference< view::XPrintJobListener >& xListener ) throw (uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -2789,7 +2789,7 @@ void SAL_CALL SfxBaseModel::removePrintJobListener( const uno::Reference< view::
+ class SvObject;
+ sal_Int64 SAL_CALL SfxBaseModel::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( !impl_isDisposed() && GetObjectShell() )
+ 	{
+         SvGlobalName aName( aIdentifier );
+@@ -2835,7 +2835,7 @@ void SfxBaseModel::StorageIsModified_Impl()
+ uno::Reference< XSTORAGE > SAL_CALL SfxBaseModel::getDocumentSubStorage( const ::rtl::OUString& aStorageName, sal_Int32 nMode )
+     throw ( uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2875,7 +2875,7 @@ Sequence< ::rtl::OUString > SAL_CALL SfxBaseModel::getDocumentSubStoragesNames()
+ 	throw ( io::IOException,
+ 			RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2916,7 +2916,7 @@ Sequence< ::rtl::OUString > SAL_CALL SfxBaseModel::getDocumentSubStoragesNames()
+ uno::Reference< script::provider::XScriptProvider > SAL_CALL SfxBaseModel::getScriptProvider()
+     throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+     uno::Reference< script::provider::XScriptProvider > xSp;
+@@ -2955,7 +2955,7 @@ rtl::OUString SfxBaseModel::getRuntimeUID() const
+ 
+ sal_Bool SfxBaseModel::hasValidSignatures() const
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pObjectShell.Is() )
+         return ( m_pData->m_pObjectShell->ImplGetSignatureState( sal_False ) == SIGNATURESTATE_SIGNATURES_OK );
+     return sal_False;
+@@ -3019,7 +3019,7 @@ static void ConvertSlotsToCommands( SfxObjectShell* pDoc, uno::Reference< contai
+ uno::Reference< ui::XUIConfigurationManager > SAL_CALL SfxBaseModel::getUIConfigurationManager()
+         throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3140,7 +3140,7 @@ void SAL_CALL SfxBaseModel::setVisualAreaSize( sal_Int64 nAspect, const awt::Siz
+ 				uno::Exception,
+ 				uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3174,7 +3174,7 @@ awt::Size SAL_CALL SfxBaseModel::getVisualAreaSize( sal_Int64 /*nAspect*/ )
+ 				uno::Exception,
+ 				uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3205,7 +3205,7 @@ sal_Int32 SAL_CALL SfxBaseModel::getMapUnit( sal_Int64 /*nAspect*/ )
+ 		throw ( uno::Exception,
+ 				uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3221,7 +3221,7 @@ embed::VisualRepresentation SAL_CALL SfxBaseModel::getPreferredVisualRepresentat
+ 				uno::Exception,
+ 				uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3249,7 +3249,7 @@ void SAL_CALL SfxBaseModel::loadFromStorage( const uno::Reference< XSTORAGE >& x
+ 			EXCEPTION,
+             uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3298,7 +3298,7 @@ void SAL_CALL SfxBaseModel::storeToStorage( const uno::Reference< XSTORAGE >& xS
+ 			EXCEPTION,
+             uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3358,7 +3358,7 @@ void SAL_CALL SfxBaseModel::switchToStorage( const uno::Reference< XSTORAGE >& x
+ 				EXCEPTION,
+                 uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3384,7 +3384,7 @@ uno::Reference< XSTORAGE > SAL_CALL SfxBaseModel::getDocumentStorage()
+ 				EXCEPTION,
+                 uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -3399,7 +3399,7 @@ void SAL_CALL SfxBaseModel::addStorageChangeListener(
+             const uno::Reference< document::XStorageChangeListener >& xListener )
+         throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -3411,7 +3411,7 @@ void SAL_CALL SfxBaseModel::removeStorageChangeListener(
+             const uno::Reference< document::XStorageChangeListener >& xListener )
+         throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+ 
+@@ -3438,7 +3438,7 @@ bool SfxBaseModel::impl_getPrintHelper()
+  void SAL_CALL SfxBaseModel::setIdentifier(const ::rtl::OUString& Identifier)
+     throw (css::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return;
+     m_pData->m_sModuleIdentifier = Identifier;
+@@ -3449,7 +3449,7 @@ bool SfxBaseModel::impl_getPrintHelper()
+  ::rtl::OUString SAL_CALL SfxBaseModel::getIdentifier()
+     throw (css::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return ::rtl::OUString();
+     if (m_pData->m_sModuleIdentifier.getLength() > 0)
+@@ -3465,7 +3465,7 @@ css::uno::Reference< css::container::XEnumeration > SAL_CALL SfxBaseModel::getCo
+     throw (css::uno::RuntimeException)
+ {
+ 	// object already disposed?
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+ 		return css::uno::Reference< css::container::XEnumeration >();
+ 
+diff --git a/sfx2/source/inc/eventsupplier.hxx b/sfx2/source/inc/eventsupplier.hxx
+index 1356428..f281c83 100644
+--- sfx2/source/inc/eventsupplier.hxx
++++ sfx2/source/inc/eventsupplier.hxx
+@@ -103,7 +103,7 @@
+ #include <sfx2/sfxuno.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <cppuhelper/interfacecontainer.hxx>
+ #include <svtools/lstner.hxx>
+ #include <svtools/eventcfg.hxx>
+diff --git a/sfx2/source/inc/sfxtypes.hxx b/sfx2/source/inc/sfxtypes.hxx
+index bc4c7be..e70f0a3 100644
+--- sfx2/source/inc/sfxtypes.hxx
++++ sfx2/source/inc/sfxtypes.hxx
+@@ -57,8 +57,8 @@
+ #include <vcl/wrkwin.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef DELETEZ
+diff --git a/sfx2/source/inc/workwin.hxx b/sfx2/source/inc/workwin.hxx
+index 4ae5a20..f550dab 100644
+--- sfx2/source/inc/workwin.hxx
++++ sfx2/source/inc/workwin.hxx
+@@ -67,8 +67,8 @@
+ #ifndef _RTL_USTRING_
+ #include <rtl/ustring.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <sfx2/sfx.hrc>
+diff --git a/sfx2/source/inet/inettbc.cxx b/sfx2/source/inet/inettbc.cxx
+index 86a395a..28c3cc1 100644
+--- sfx2/source/inet/inettbc.cxx
++++ sfx2/source/inet/inettbc.cxx
+@@ -73,8 +73,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #include <rtl/ustring.hxx>
+ 
+diff --git a/sfx2/source/statbar/stbitem.cxx b/sfx2/source/statbar/stbitem.cxx
+index f241f36..7751e93 100644
+--- sfx2/source/statbar/stbitem.cxx
++++ sfx2/source/statbar/stbitem.cxx
+@@ -122,7 +122,7 @@ svt::StatusbarController* SAL_CALL SfxStatusBarControllerFactory(
+     unsigned short nID,
+     const ::rtl::OUString& aCommandURL )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     util::URL aTargetURL;
+     aTargetURL.Complete = aCommandURL;
+@@ -257,7 +257,7 @@ throw ( ::com::sun::star::uno::RuntimeException )
+     SfxViewFrame* pViewFrame = NULL;
+     uno::Reference < frame::XController > xController;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_xFrame.is() )
+         xController = m_xFrame->getController();
+ 
+@@ -362,7 +362,7 @@ throw ( ::com::sun::star::uno::RuntimeException )
+     const awt::MouseEvent& rMouseEvent )
+ throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     ::Point aPos( rMouseEvent.X, rMouseEvent.Y );
+ 
+     ::MouseEvent aMouseEvent( aPos,
+@@ -380,7 +380,7 @@ throw ( uno::RuntimeException )
+     const awt::MouseEvent& rMouseEvent )
+ throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     ::Point aPos( rMouseEvent.X, rMouseEvent.Y );
+ 
+     ::MouseEvent aMouseEvent( aPos,
+@@ -397,7 +397,7 @@ throw (uno::RuntimeException)
+     const ::awt::MouseEvent& rMouseEvent )
+ throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     ::Point aPos( rMouseEvent.X, rMouseEvent.Y );
+ 
+     ::MouseEvent aMouseEvent( aPos,
+@@ -417,7 +417,7 @@ void SAL_CALL SfxStatusBarControl::command(
+     const ::com::sun::star::uno::Any& /*aData*/ )
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     ::Point aPos( rPos.X, rPos.Y );
+     CommandEvent aCmdEvent( aPos, (USHORT)nCommand, TRUE, NULL );
+ 
+@@ -433,7 +433,7 @@ void SAL_CALL SfxStatusBarControl::paint(
+     ::sal_Int32 nStyle )
+ throw ( ::uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     OutputDevice* pOutDev = VCLUnoHelper::GetOutputDevice( xGraphics );;
+     if ( pOutDev )
+@@ -449,7 +449,7 @@ throw ( ::uno::RuntimeException )
+ void SAL_CALL SfxStatusBarControl::click()
+ throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Click();
+ }
+ 
+@@ -458,7 +458,7 @@ throw ( uno::RuntimeException )
+ void SAL_CALL SfxStatusBarControl::doubleClick()
+ throw ( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     DoubleClick();
+ }
+ 
+@@ -676,7 +676,7 @@ SfxStatusBarControl* SfxStatusBarControl::CreateControl
+     SfxModule* pMod
+ )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SfxApplication *pApp = SFX_APP();
+ 
+     SfxSlotPool *pSlotPool;
+diff --git a/sfx2/source/toolbox/imgmgr.cxx b/sfx2/source/toolbox/imgmgr.cxx
+index 4ca8526..2e3df50 100644
+--- sfx2/source/toolbox/imgmgr.cxx
++++ sfx2/source/toolbox/imgmgr.cxx
+@@ -57,7 +57,7 @@
+ #include <tools/rcid.h>
+ #include <tools/link.hxx>
+ #include <svtools/miscopt.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #ifndef GCC
+ #endif
+@@ -108,7 +108,7 @@ static ImageList*            pImageListHiBig=0;
+ 
+ static SfxImageManager_Impl* GetImageManager( SfxModule* pModule )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( pModule == 0 )
+     {
+@@ -137,7 +137,7 @@ static SfxImageManager_Impl* GetImageManager( SfxModule* pModule )
+ // Global image list
+ static ImageList* GetImageList( BOOL bBig, BOOL bHiContrast )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     // Has to be changed if we know how the IDs are named!!!
+     ImageList*& rpList = bBig ? ( bHiContrast ? pImageListHiBig : pImageListBig ) :
+@@ -226,7 +226,7 @@ Image SfxImageManager_Impl::GetImage( USHORT nId, BOOL bBig, BOOL bHiContrast )
+ 
+ void SfxImageManager_Impl::SetSymbolsSize_Impl( sal_Int16 nNewSymbolsSize )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     if ( nNewSymbolsSize != m_nSymbolsSize )
+ 	{
+@@ -307,7 +307,7 @@ SfxImageManager::~SfxImageManager()
+ 
+ SfxImageManager* SfxImageManager::GetImageManager( SfxModule* pModule )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     SfxImageManagerMap::const_iterator pIter = 
+         m_ImageManagerMap.find( sal::static_int_cast< sal_Int64 >( reinterpret_cast< sal_IntPtr >( pModule )));
+@@ -370,7 +370,7 @@ Image SfxImageManager::SeekImage( USHORT nId, BOOL bHiContrast ) const
+ 
+ void SfxImageManager::RegisterToolBox( ToolBox *pBox, USHORT nFlags )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+     ToolBoxInf_Impl* pInf = new ToolBoxInf_Impl;
+     pInf->pToolBox = pBox;
+@@ -382,7 +382,7 @@ void SfxImageManager::RegisterToolBox( ToolBox *pBox, USHORT nFlags )
+ 
+ void SfxImageManager::ReleaseToolBox( ToolBox *pBox )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     for ( sal_uInt32 n=0; n < pImp->m_aToolBoxes.size(); n++ )
+     {
+diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx
+index 07cf117..9c2eed2 100644
+--- sfx2/source/toolbox/tbxitem.cxx
++++ sfx2/source/toolbox/tbxitem.cxx
+@@ -223,7 +223,7 @@ static Window* GetTopMostParentSystemWindow( Window* pWindow )
+ 
+ svt::ToolboxController* SAL_CALL SfxToolBoxControllerFactory( const Reference< XFrame >& rFrame, ToolBox* pToolbox, unsigned short nID, const ::rtl::OUString& aCommandURL )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     URL aTargetURL;
+     aTargetURL.Complete = aCommandURL;
+@@ -367,7 +367,7 @@ void SAL_CALL SfxToolBoxControl::dispose() throw (::com::sun::star::uno::Runtime
+     svt::ToolboxController::dispose();
+ 
+     // Remove and destroy our item window at our toolbox
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Window* pWindow = pImpl->pBox->GetItemWindow( pImpl->nTbxId );
+     pImpl->pBox->SetItemWindow( pImpl->nTbxId, 0 );
+     delete pWindow;
+@@ -400,7 +400,7 @@ void SfxToolBoxControl::RegisterToolBoxControl( SfxModule* pMod, SfxTbxCtrlFacto
+ 
+ SfxToolBoxControl* SfxToolBoxControl::CreateControl( USHORT nSlotId, USHORT nTbxId, ToolBox *pBox, SfxModule* pMod  )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxToolBoxControl *pCtrl;
+ 	SfxApplication *pApp = SFX_APP();
+@@ -538,7 +538,7 @@ void SfxToolBoxControl::Dispatch( const ::rtl::OUString& aCommand, ::com::sun::s
+ {
+     Reference < XController > xController;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( getFrameInterface().is() )
+         xController = getFrameInterface()->getController();
+ 
+@@ -588,7 +588,7 @@ throw ( ::com::sun::star::uno::RuntimeException )
+     SfxViewFrame* pViewFrame = NULL;
+     Reference < XController > xController;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( getFrameInterface().is() )
+         xController = getFrameInterface()->getController();
+ 
+@@ -718,24 +718,24 @@ void SAL_CALL SfxToolBoxControl::updateImage() throw (::com::sun::star::uno::Run
+ // XToolbarController
+ void SAL_CALL SfxToolBoxControl::execute( sal_Int16 KeyModifier ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Select( (USHORT)KeyModifier );
+ }
+ void SAL_CALL SfxToolBoxControl::click() throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Click();
+ }
+ 
+ void SAL_CALL SfxToolBoxControl::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     DoubleClick();
+ }
+ 
+ Reference< ::com::sun::star::awt::XWindow > SAL_CALL SfxToolBoxControl::createPopupWindow() throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Window* pWindow = CreatePopupWindow();
+     if ( pWindow )
+         return VCLUnoHelper::GetInterface( pWindow );
+@@ -745,7 +745,7 @@ Reference< ::com::sun::star::awt::XWindow > SAL_CALL SfxToolBoxControl::createPo
+ 
+ Reference< ::com::sun::star::awt::XWindow > SAL_CALL SfxToolBoxControl::createItemWindow( const Reference< ::com::sun::star::awt::XWindow >& rParent ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return VCLUnoHelper::GetInterface( CreateItemWindow( VCLUnoHelper::GetWindow( rParent )));
+ }
+ 
+@@ -784,7 +784,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ void SAL_CALL SfxToolBoxControl::endPopupMode( const ::com::sun::star::awt::EndPopupModeEvent& aEvent )
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     ::rtl::OUString aSubToolBarResName;
+     if ( pImpl->mxUIElement.is() )
+@@ -870,7 +870,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+ void SfxToolBoxControl::createAndPositionSubToolBar( const ::rtl::OUString& rSubToolBarResName )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( pImpl->pBox )
+     {
+@@ -1142,7 +1142,7 @@ throw ( ::com::sun::star::uno::RuntimeException )
+     SfxViewFrame* pViewFrame = NULL;
+     Reference < XController > xController;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_xFrame.is() )
+         xController = m_xFrame->getController();
+ 
+diff --git a/sfx2/source/view/frmload.cxx b/sfx2/source/view/frmload.cxx
+index 4ec5356..1bcacdd 100644
+--- sfx2/source/view/frmload.cxx
++++ sfx2/source/view/frmload.cxx
+@@ -112,7 +112,7 @@
+ #include <svtools/eitem.hxx>
+ #include <svtools/stritem.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/sfxecode.hxx>
+ #include <svtools/ehdl.hxx>
+ #include <sot/storinfo.hxx>
+@@ -219,7 +219,7 @@ sal_Bool SAL_CALL SfxFrameLoader_Impl::load( const css::uno::Sequence< css::bean
+ 	sal_Bool bLoadState = sal_False;
+ 
+     // this methods assumes that the filter is detected before, usually by calling the detect() method below
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	RTL_LOGFILE_CONTEXT( aLog, "sfx2 (mb93783) ::SfxFrameLoader::load" );
+ 
+diff --git a/sfx2/source/view/ipclient.cxx b/sfx2/source/view/ipclient.cxx
+index b4f3c8b..7547b4b 100644
+--- sfx2/source/view/ipclient.cxx
++++ sfx2/source/view/ipclient.cxx
+@@ -256,7 +256,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+ void SAL_CALL SfxInPlaceClient_Impl::notifyEvent( const document::EventObject& aEvent ) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( m_pClient && aEvent.EventName.equalsAscii("OnVisAreaChanged") && m_nAspect != embed::Aspects::MSOLE_ICON )
+     {
+@@ -393,7 +393,7 @@ void SAL_CALL SfxInPlaceClient_Impl::visibilityChanged( sal_Bool bVisible )
+ 	throw ( embed::WrongStateException,
+ 			uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if ( !m_pClient || !m_pClient->GetViewShell() )
+ 		throw uno::RuntimeException();
+diff --git a/sfx2/source/view/sfxbasecontroller.cxx b/sfx2/source/view/sfxbasecontroller.cxx
+index f402ae3..f8a5236 100644
+--- sfx2/source/view/sfxbasecontroller.cxx
++++ sfx2/source/view/sfxbasecontroller.cxx
+@@ -161,7 +161,7 @@
+ #include <workwin.hxx>
+ #include <sfx2/objface.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/mutex.hxx>
+ #include <comphelper/sequence.hxx>
+ #include <rtl/ustrbuf.hxx>
+@@ -331,7 +331,7 @@ public:
+ 
+ void SAL_CALL SfxStatusIndicator::start(const ::rtl::OUString& aText, sal_Int32 nRange) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( xOwner.is() )
+ 	{
+ 		_nRange = nRange;
+@@ -350,7 +350,7 @@ void SAL_CALL SfxStatusIndicator::start(const ::rtl::OUString& aText, sal_Int32
+ 
+ void SAL_CALL SfxStatusIndicator::end(void) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( xOwner.is() )
+ 	{
+         if ( !xProgress.is() )
+@@ -365,7 +365,7 @@ void SAL_CALL SfxStatusIndicator::end(void) throw(::com::sun::star::uno::Runtime
+ 
+ void SAL_CALL SfxStatusIndicator::setText(const ::rtl::OUString& aText) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( xOwner.is() )
+ 	{
+         if ( !xProgress.is() )
+@@ -380,7 +380,7 @@ void SAL_CALL SfxStatusIndicator::setText(const ::rtl::OUString& aText) throw(::
+ 
+ void SAL_CALL SfxStatusIndicator::setValue( sal_Int32 nValue ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( xOwner.is() )
+ 	{
+ 		_nValue = nValue;
+@@ -399,7 +399,7 @@ void SAL_CALL SfxStatusIndicator::setValue( sal_Int32 nValue ) throw(::com::sun:
+ 
+ void SAL_CALL SfxStatusIndicator::reset() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( xOwner.is() )
+ 	{
+         if ( !xProgress.is() )
+@@ -414,7 +414,7 @@ void SAL_CALL SfxStatusIndicator::reset() throw(::com::sun::star::uno::RuntimeEx
+ 
+ void SAL_CALL SfxStatusIndicator::disposing( const com::sun::star::lang::EventObject& /*Source*/ ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	xOwner = 0;
+     xProgress.clear();
+ }
+@@ -476,7 +476,7 @@ void SAL_CALL IMPL_SfxBaseController_CloseListenerHelper::disposing( const EVENT
+ void SAL_CALL IMPL_SfxBaseController_CloseListenerHelper::queryClosing( const EVENTOBJECT& aEvent, sal_Bool bDeliverOwnership )
+     throw (RUNTIMEEXCEPTION, com::sun::star::util::CloseVetoException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SfxViewShell* pShell = m_pController->GetViewShell_Impl();
+     if  ( m_pController !=  NULL &&  pShell )
+ 	{
+@@ -572,7 +572,7 @@ IMPL_SfxBaseController_ListenerHelper::~IMPL_SfxBaseController_ListenerHelper()
+ 
+ void SAL_CALL IMPL_SfxBaseController_ListenerHelper::frameAction( const FRAMEACTIONEVENT& aEvent ) throw( RUNTIMEEXCEPTION )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if	(
+ 			( m_pController	!=	NULL ) &&
+ 			( aEvent.Frame	==	m_pController->getFrame() )	&&
+@@ -597,7 +597,7 @@ void SAL_CALL IMPL_SfxBaseController_ListenerHelper::frameAction( const FRAMEACT
+ 
+ void SAL_CALL IMPL_SfxBaseController_ListenerHelper::disposing( const EVENTOBJECT& /*aEvent*/ ) throw( ::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pController && m_pController->getFrame().is() )
+ 		m_pController->getFrame()->removeFrameActionListener( this ) ;
+ }
+@@ -759,7 +759,7 @@ void SAL_CALL SfxBaseController::attachFrame( const REFERENCE< XFRAME >& xFrame
+ {
+     REFERENCE< XFRAME > xTemp( getFrame() ) ;
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( xTemp.is() )
+ 	{
+         xTemp->removeFrameActionListener( m_pData->m_xListener ) ;
+@@ -811,7 +811,7 @@ sal_Bool SAL_CALL SfxBaseController::attachModel( const REFERENCE< XMODEL >& xMo
+ 
+ sal_Bool SAL_CALL SfxBaseController::suspend( sal_Bool bSuspend ) throw( ::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// ignore dublicate calls, which doesnt change anything real
+ 	if (bSuspend == m_pData->m_bSuspendState)
+@@ -875,7 +875,7 @@ ANY SfxBaseController::getViewData() throw( ::com::sun::star::uno::RuntimeExcept
+ {
+     ANY         aAny;
+ 	String		sData1;
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+     {
+         m_pData->m_pViewShell->WriteUserData( sData1 ) ;
+@@ -892,7 +892,7 @@ ANY SfxBaseController::getViewData() throw( ::com::sun::star::uno::RuntimeExcept
+ 
+ void SAL_CALL SfxBaseController::restoreViewData( const ANY& aValue ) throw( ::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+     {
+         OUSTRING sData;
+@@ -907,7 +907,7 @@ void SAL_CALL SfxBaseController::restoreViewData( const ANY& aValue ) throw( ::c
+ 
+ REFERENCE< XFRAME > SAL_CALL SfxBaseController::getFrame() throw( ::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return m_pData->m_xFrame;
+ }
+ 
+@@ -917,7 +917,7 @@ REFERENCE< XFRAME > SAL_CALL SfxBaseController::getFrame() throw( ::com::sun::st
+ 
+ REFERENCE< XMODEL > SAL_CALL SfxBaseController::getModel() throw( ::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return m_pData->m_pViewShell ? m_pData->m_pViewShell->GetObjectShell()->GetModel() : REFERENCE < XMODEL > () ;
+ }
+ 
+@@ -929,7 +929,7 @@ REFERENCE< XDISPATCH > SAL_CALL SfxBaseController::queryDispatch(	const	UNOURL&
+ 																	const	OUSTRING&			sTargetFrameName,
+ 																			sal_Int32			eSearchFlags	) throw( RUNTIMEEXCEPTION )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     REFERENCE< XDISPATCH >  xDisp;
+     if ( m_pData->m_pViewShell )
+     {
+@@ -1109,7 +1109,7 @@ frame::BorderWidths SAL_CALL SfxBaseController::getBorder()
+ {
+ 	frame::BorderWidths aResult;
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+ 	{
+ 		SvBorder aBorder = m_pData->m_pViewShell->GetBorderPixel();
+@@ -1139,7 +1139,7 @@ void SAL_CALL SfxBaseController::removeBorderResizeListener( const uno::Referenc
+ awt::Rectangle SAL_CALL SfxBaseController::queryBorderedArea( const awt::Rectangle& aPreliminaryRectangle )
+ 	throw ( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+ 	{
+ 		Rectangle aTmpRect = VCLRectangle( aPreliminaryRectangle );
+@@ -1185,7 +1185,7 @@ void SfxBaseController::FrameIsReleasedWithController (sal_Bool bFlag)
+ 
+ void SAL_CALL SfxBaseController::dispose() throw( ::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     REFERENCE < XCONTROLLER > xTmp( this );
+ 	m_pData->m_bDisposing = sal_True ;
+ 
+@@ -1277,7 +1277,7 @@ void SAL_CALL SfxBaseController::removeEventListener( const REFERENCE< XEVENTLIS
+ 
+ void SfxBaseController::ReleaseShell_Impl()
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+     {
+         SfxObjectShell* pDoc = m_pData->m_pViewShell->GetObjectShell() ;
+@@ -1303,7 +1303,7 @@ SfxViewShell* SfxBaseController::GetViewShell_Impl() const
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > SAL_CALL SfxBaseController::getStatusIndicator(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell && !m_pData->m_xIndicator.is() )
+         m_pData->m_xIndicator = new SfxStatusIndicator( this, m_pData->m_pViewShell->GetViewFrame()->GetFrame()->GetWorkWindow_Impl() );
+     return m_pData->m_xIndicator;
+@@ -1314,7 +1314,7 @@ void SAL_CALL SfxBaseController::registerContextMenuInterceptor( const REFERENCE
+ {
+     m_pData->m_aInterceptorContainer.addInterface( xInterceptor );
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+         m_pData->m_pViewShell->AddContextMenuInterceptor_Impl( xInterceptor );
+ }
+@@ -1324,14 +1324,14 @@ void SAL_CALL SfxBaseController::releaseContextMenuInterceptor( const REFERENCE<
+ {
+     m_pData->m_aInterceptorContainer.removeInterface( xInterceptor );
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+         m_pData->m_pViewShell->RemoveContextMenuInterceptor_Impl( xInterceptor );
+ }
+ 
+ void SAL_CALL SfxBaseController::addKeyHandler( const ::com::sun::star::uno::Reference< XKEYHANDLER >& xHandler ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( !m_pData->m_bHasKeyListeners )
+ 		m_pData->m_bHasKeyListeners = sal_True;
+ 	m_pData->m_aListenerContainer.addInterface( ::getCppuType((const REFERENCE< XKEYHANDLER >*)0), xHandler );
+@@ -1339,7 +1339,7 @@ void SAL_CALL SfxBaseController::addKeyHandler( const ::com::sun::star::uno::Ref
+ 
+ void SAL_CALL SfxBaseController::removeKeyHandler( const ::com::sun::star::uno::Reference< XKEYHANDLER >& xHandler ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_pData->m_aListenerContainer.removeInterface( ::getCppuType((const REFERENCE< XKEYHANDLER >*)0), xHandler );
+ 	m_pData->m_bHasKeyListeners = sal_False;
+     ::cppu::OInterfaceContainerHelper* pContainer = m_pData->m_aListenerContainer.getContainer( ::getCppuType( ( const REFERENCE < XKEYHANDLER >*) NULL ) );
+@@ -1353,7 +1353,7 @@ void SAL_CALL SfxBaseController::removeKeyHandler( const ::com::sun::star::uno::
+ 
+ void SAL_CALL SfxBaseController::addMouseClickHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseClickHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( !m_pData->m_bHasMouseClickListeners )
+ 		m_pData->m_bHasMouseClickListeners = sal_True;
+ 	m_pData->m_aListenerContainer.addInterface( ::getCppuType((const REFERENCE< XMOUSECLICKHANDLER >*)0), xHandler );
+@@ -1361,7 +1361,7 @@ void SAL_CALL SfxBaseController::addMouseClickHandler( const ::com::sun::star::u
+ 
+ void SAL_CALL SfxBaseController::removeMouseClickHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseClickHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_pData->m_aListenerContainer.removeInterface( ::getCppuType((const REFERENCE< XMOUSECLICKHANDLER >*)0), xHandler );
+ 	m_pData->m_bHasMouseClickListeners = sal_False;
+     ::cppu::OInterfaceContainerHelper* pContainer = m_pData->m_aListenerContainer.getContainer( ::getCppuType( ( const REFERENCE < XMOUSECLICKHANDLER >*) NULL ) );
+@@ -1376,7 +1376,7 @@ void SAL_CALL SfxBaseController::removeMouseClickHandler( const ::com::sun::star
+ ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL SfxBaseController::getSupportedCommandGroups()
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     std::list< sal_Int16 > aGroupList;
+     SfxViewFrame* pViewFrame( m_pData->m_pViewShell->GetFrame() );
+@@ -1412,7 +1412,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ {
+     std::list< ::com::sun::star::frame::DispatchInformation > aCmdList;
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_pData->m_pViewShell )
+     {
+         const ULONG nMode( SFX_SLOT_TOOLBOXCONFIG|SFX_SLOT_ACCELCONFIG|SFX_SLOT_MENUCONFIG );
+diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
+index a59b69e..0e3c223 100644
+--- sfx2/source/view/viewsh.cxx
++++ sfx2/source/view/viewsh.cxx
+@@ -87,7 +87,7 @@
+ #endif
+ 
+ #include <osl/file.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <tools/urlobj.hxx>
+ #include <unotools/tempfile.hxx>
+ #include <svtools/pathoptions.hxx>
+@@ -502,7 +502,7 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
+                     }
+                     catch ( uno::Exception& )
+                     {
+-					    vos::OGuard aGuard( Application::GetSolarMutex() );
++					    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                         Window *pParent = SFX_APP()->GetTopWindow();
+ 					    ErrorBox( pParent, SfxResId( MSG_ERROR_NO_WEBBROWSER_FOUND )).Execute();
+                         bRet = FALSE;
+diff --git a/so3/source/ole/socli.cxx b/so3/source/ole/socli.cxx
+index 10d042a..317f870 100644
+--- binfilter/bf_so3/source/ole/socli.cxx
++++ binfilter/bf_so3/source/ole/socli.cxx
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_so3.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+diff --git a/so3/source/persist/transbnd.cxx b/so3/source/persist/transbnd.cxx
+index 94cb2cf..d4c21bb 100644
+--- binfilter/bf_so3/source/persist/transbnd.cxx
++++ binfilter/bf_so3/source/persist/transbnd.cxx
+@@ -56,8 +56,8 @@
+ #include <rtl/ustring.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SOLAR_H
+@@ -468,7 +468,7 @@ void SvBinding::OnStart (void)
+ 	SvBindingRef xThis (this);
+ 	if (m_xCallback.Is())
+ 	{
+-		vos::OGuard aAppGuard (Application::GetSolarMutex());
++		osl::SolarMutexGuard aAppGuard (Application::GetSolarMutex());
+ 		if (m_xCallback.Is())
+ 			m_xCallback->InitStartTime();
+ 	}
+@@ -484,7 +484,7 @@ void SvBinding::OnError (ErrCode eErrCode)
+ 
+ 	if (m_xCallback.Is())
+ 	{
+-		vos::OGuard aAppGuard (Application::GetSolarMutex());
++		osl::SolarMutexGuard aAppGuard (Application::GetSolarMutex());
+ 		if (m_xCallback.Is())
+ 			m_xCallback->OnStopBinding (m_eErrCode, String());
+ 	}
+@@ -538,7 +538,7 @@ void SvBinding::OnDataAvailable (
+ 		case SVBSCF_INTERMEDIATEDATANOTIFICATION:
+ 			if (m_bMimeAvail && m_xLockBytes.Is() && nSize)
+ 			{
+-				vos::IMutex &rAppMutex = Application::GetSolarMutex();
++				osl::SolarMutex &rAppMutex = Application::GetSolarMutex();
+ 				if (m_xCallback.Is() && rAppMutex.tryToAcquire())
+ 				{
+ 					m_xCallback->OnDataAvailable (
+@@ -567,7 +567,7 @@ void SvBinding::OnProgress (
+ 	SvBindingRef xThis (this);
+ 	if (m_xCallback.Is())
+ 	{
+-		vos::IMutex &rAppMutex = Application::GetSolarMutex();
++		osl::SolarMutex &rAppMutex = Application::GetSolarMutex();
+ 		if (m_xCallback.Is() && rAppMutex.tryToAcquire())
+ 		{
+ 			m_xCallback->OnProgress (
+@@ -585,7 +585,7 @@ void SvBinding::OnRedirect (const String &rUrl)
+ 	SvBindingRef xThis (this);
+ 	if (m_xCallback.Is())
+ 	{
+-		vos::OGuard aAppGuard (Application::GetSolarMutex());
++		osl::SolarMutexGuard aAppGuard (Application::GetSolarMutex());
+ 
+ 		INetURLHistory::GetOrCreate()->PutUrl (m_aUrlObj);
+ 		m_aUrlObj.SetURL (rUrl);
+diff --git a/so3/source/persist/transprt.cxx b/so3/source/persist/transprt.cxx
+index 36ceefc..017b4ff 100644
+--- binfilter/bf_so3/source/persist/transprt.cxx
++++ binfilter/bf_so3/source/persist/transprt.cxx
+@@ -127,8 +127,8 @@
+ #ifndef _VOS_MACROS_HXX_
+ #include <vos/macros.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+@@ -1344,7 +1344,7 @@ protected:
+ 
+ 	/** getMutex_Impl.
+ 	 */
+-	inline vos::IMutex& getMutex_Impl (void);
++	inline osl::Mutex& getMutex_Impl (void);
+ 
+ 	/** createContent_Impl.
+ 	 */
+@@ -1359,7 +1359,7 @@ protected:
+ private:
+ 	/** Representation.
+ 	 */
+-    vos::OMutex                         m_aMutex;
++    osl::Mutex                          m_aMutex;
+     Reference<XInteractionHandler>      m_xInteractionHdl;
+     oslInterlockedCount                 m_nProgressDepth;
+     sal_Int32                           m_nProgressMin;
+@@ -1375,7 +1375,7 @@ private:
+  */
+ inline sal_Bool UcbTransport_Impl::getCallback_Impl ( SvBindingTransportCallback *&rpCallback)
+ {
+-	vos::OGuard aGuard (m_aMutex);
++	osl::MutexGuard aGuard (m_aMutex);
+ 	rpCallback = m_pCallback;
+ 	return (!!rpCallback);
+ }
+@@ -1383,7 +1383,7 @@ inline sal_Bool UcbTransport_Impl::getCallback_Impl ( SvBindingTransportCallback
+ /*
+  * getMutex_Impl.
+  */
+-inline vos::IMutex& UcbTransport_Impl::getMutex_Impl (void)
++inline osl::Mutex& UcbTransport_Impl::getMutex_Impl (void)
+ {
+ 	return m_aMutex;
+ }
+@@ -1653,7 +1653,7 @@ Reference<XProgressHandler> SAL_CALL UcbTransport_Impl::getProgressHandler (void
+  */
+ void SAL_CALL UcbTransport_Impl::disposing ( const EventObject & ) throw(RuntimeException)
+ {
+-	vos::OGuard aGuard (m_aMutex);
++	osl::MutexGuard aGuard (m_aMutex);
+ 	// m_xTask = NULL;
+ }
+ 
+@@ -1795,7 +1795,7 @@ void SAL_CALL UcbTransport_Impl::propertiesChange ( const Sequence<PropertyChang
+  */
+ void UcbTransport_Impl::dispose_Impl (void)
+ {
+-	vos::OGuard aGuard (m_aMutex);
++	osl::MutexGuard aGuard (m_aMutex);
+ 
+     Reference<XPropertiesChangeNotifier> xProps (m_xContent, UNO_QUERY);
+ 	if (xProps.is())
+@@ -2170,7 +2170,7 @@ void UcbHTTPTransport_Impl::analyzeHeader_Impl (
+ 
+ 		if (aName.CompareIgnoreCaseToAscii("Content-Type") == COMPARE_EQUAL)
+ 		{
+-			vos::OGuard aGuard (getMutex_Impl());
++			osl::MutexGuard aGuard (getMutex_Impl());
+ 
+ 			m_aContentType = aValue;
+ 			m_bNeedMime = sal_False;
+diff --git a/starmath/source/accessibility.cxx b/starmath/source/accessibility.cxx
+index 212693c..9d3b922 100644
+--- starmath/source/accessibility.cxx
++++ starmath/source/accessibility.cxx
+@@ -94,8 +94,8 @@
+ #ifndef _SV_GEN_HXX
+ #include <tools/gen.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFXITEMSET_HXX
+ #include <svtools/itemset.hxx>
+@@ -197,7 +197,7 @@ SmGraphicAccessible::SmGraphicAccessible( const SmGraphicAccessible &rSmAcc ) :
+     aAccName            ( String(SmResId(RID_DOCUMENTSTR)) ),
+     nClientId           (0)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     pWin = rSmAcc.pWin;
+     DBG_ASSERT( pWin, "SmGraphicAccessible: window missing" );
+     //++aRefCount;
+@@ -207,7 +207,7 @@ SmGraphicAccessible::SmGraphicAccessible( const SmGraphicAccessible &rSmAcc ) :
+ SmGraphicAccessible::~SmGraphicAccessible()
+ {
+ /*
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (--aRefCount == 0)
+     {
+     }
+@@ -260,7 +260,7 @@ void SmGraphicAccessible::LaunchEvent(
+ uno::Reference< XAccessibleContext > SAL_CALL SmGraphicAccessible::getAccessibleContext()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return this;
+ }
+ 
+@@ -270,7 +270,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::containsPoint( const awt::Point& aPoint )
+     //! the arguments coordinates are relativ to the current window !
+     //! Thus the top-left point is (0, 0)
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+ 
+@@ -283,7 +283,7 @@ uno::Reference< XAccessible > SAL_CALL SmGraphicAccessible::getAccessibleAtPoint
+         const awt::Point& aPoint )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     XAccessible *pRes = 0;
+     if (containsPoint( aPoint ))
+         pRes = this;
+@@ -293,7 +293,7 @@ uno::Reference< XAccessible > SAL_CALL SmGraphicAccessible::getAccessibleAtPoint
+ awt::Rectangle SAL_CALL SmGraphicAccessible::getBounds()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -304,7 +304,7 @@ awt::Rectangle SAL_CALL SmGraphicAccessible::getBounds()
+ awt::Point SAL_CALL SmGraphicAccessible::getLocation()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -316,7 +316,7 @@ awt::Point SAL_CALL SmGraphicAccessible::getLocation()
+ awt::Point SAL_CALL SmGraphicAccessible::getLocationOnScreen()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -327,7 +327,7 @@ awt::Point SAL_CALL SmGraphicAccessible::getLocationOnScreen()
+ awt::Size SAL_CALL SmGraphicAccessible::getSize()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -345,7 +345,7 @@ awt::Size SAL_CALL SmGraphicAccessible::getSize()
+ void SAL_CALL SmGraphicAccessible::grabFocus()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+ 
+@@ -355,7 +355,7 @@ void SAL_CALL SmGraphicAccessible::grabFocus()
+ sal_Int32 SAL_CALL SmGraphicAccessible::getForeground()
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (!pWin)
+         throw RuntimeException();
+@@ -365,7 +365,7 @@ sal_Int32 SAL_CALL SmGraphicAccessible::getForeground()
+ sal_Int32 SAL_CALL SmGraphicAccessible::getBackground()
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (!pWin)
+         throw RuntimeException();
+@@ -381,7 +381,7 @@ sal_Int32 SAL_CALL SmGraphicAccessible::getBackground()
+ sal_Int32 SAL_CALL SmGraphicAccessible::getAccessibleChildCount()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return 0;
+ }
+ 
+@@ -389,7 +389,7 @@ Reference< XAccessible > SAL_CALL SmGraphicAccessible::getAccessibleChild(
+         sal_Int32 /*i*/ )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     throw IndexOutOfBoundsException();  // there is no child...
+     /*return 0;*/
+ }
+@@ -397,7 +397,7 @@ Reference< XAccessible > SAL_CALL SmGraphicAccessible::getAccessibleChild(
+ Reference< XAccessible > SAL_CALL SmGraphicAccessible::getAccessibleParent()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+ 
+@@ -409,7 +409,7 @@ Reference< XAccessible > SAL_CALL SmGraphicAccessible::getAccessibleParent()
+ sal_Int32 SAL_CALL SmGraphicAccessible::getAccessibleIndexInParent()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Int32 nIdx = -1;
+     Window *pAccParent = pWin ? pWin->GetAccessibleParentWindow() : 0;
+     if (pAccParent)
+@@ -425,14 +425,14 @@ sal_Int32 SAL_CALL SmGraphicAccessible::getAccessibleIndexInParent()
+ sal_Int16 SAL_CALL SmGraphicAccessible::getAccessibleRole()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return AccessibleRole::DOCUMENT;
+ }
+ 
+ OUString SAL_CALL SmGraphicAccessible::getAccessibleDescription()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SmDocShell *pDoc = GetDoc_Impl();
+     return pDoc ? OUString(pDoc->GetText()) : OUString();
+ }
+@@ -440,14 +440,14 @@ OUString SAL_CALL SmGraphicAccessible::getAccessibleDescription()
+ OUString SAL_CALL SmGraphicAccessible::getAccessibleName()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return aAccName;
+ }
+ 
+ Reference< XAccessibleRelationSet > SAL_CALL SmGraphicAccessible::getAccessibleRelationSet()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Reference< XAccessibleRelationSet > xRelSet = new utl::AccessibleRelationSetHelper();
+     return xRelSet;   // empty relation set
+ }
+@@ -455,7 +455,7 @@ Reference< XAccessibleRelationSet > SAL_CALL SmGraphicAccessible::getAccessibleR
+ Reference< XAccessibleStateSet > SAL_CALL SmGraphicAccessible::getAccessibleStateSet()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	::utl::AccessibleStateSetHelper *pStateSet =
+             new ::utl::AccessibleStateSetHelper;
+ 
+@@ -488,7 +488,7 @@ Reference< XAccessibleStateSet > SAL_CALL SmGraphicAccessible::getAccessibleStat
+ Locale SAL_CALL SmGraphicAccessible::getLocale()
+     throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // should be the document language...
+     // We use the language of the localized symbol names here.
+     return Application::GetSettings().GetUILocale();
+@@ -501,7 +501,7 @@ void SAL_CALL SmGraphicAccessible::addEventListener(
+ {
+ 	if (xListener.is())
+     {
+-		vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		if (pWin)
+ 		{
+ 			if (!nClientId)
+@@ -517,7 +517,7 @@ void SAL_CALL SmGraphicAccessible::removeEventListener(
+ {
+ 	if (xListener.is())
+ 	{
+-		vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( nClientId, xListener );
+ 		if ( !nListenerCount )
+ 		{
+@@ -534,7 +534,7 @@ void SAL_CALL SmGraphicAccessible::removeEventListener(
+ sal_Int32 SAL_CALL SmGraphicAccessible::getCaretPosition()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return 0;
+ }
+ 
+@@ -551,7 +551,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::setCaretPosition( sal_Int32 nIndex )
+ sal_Unicode SAL_CALL SmGraphicAccessible::getCharacter( sal_Int32 nIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     xub_StrLen nIdx = (xub_StrLen) nIndex;
+     String aTxt( GetAccessibleText_Impl() );
+@@ -565,7 +565,7 @@ Sequence< beans::PropertyValue > SAL_CALL SmGraphicAccessible::getCharacterAttri
+         const uno::Sequence< ::rtl::OUString > & /*rRequestedAttributes*/ )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     INT32 nLen = GetAccessibleText_Impl().Len();
+     if (!(0 <= nIndex  &&  nIndex < nLen))
+         throw IndexOutOfBoundsException();
+@@ -575,7 +575,7 @@ Sequence< beans::PropertyValue > SAL_CALL SmGraphicAccessible::getCharacterAttri
+ awt::Rectangle SAL_CALL SmGraphicAccessible::getCharacterBounds( sal_Int32 nIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     awt::Rectangle aRes;
+ 
+@@ -651,14 +651,14 @@ awt::Rectangle SAL_CALL SmGraphicAccessible::getCharacterBounds( sal_Int32 nInde
+ sal_Int32 SAL_CALL SmGraphicAccessible::getCharacterCount()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return GetAccessibleText_Impl().Len();
+ }
+ 
+ sal_Int32 SAL_CALL SmGraphicAccessible::getIndexAtPoint( const awt::Point& aPoint )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     sal_Int32 nRes = -1;
+     if (pWin)
+@@ -726,21 +726,21 @@ sal_Int32 SAL_CALL SmGraphicAccessible::getIndexAtPoint( const awt::Point& aPoin
+ OUString SAL_CALL SmGraphicAccessible::getSelectedText()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return OUString();
+ }
+ 
+ sal_Int32 SAL_CALL SmGraphicAccessible::getSelectionStart()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return -1;
+ }
+ 
+ sal_Int32 SAL_CALL SmGraphicAccessible::getSelectionEnd()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return -1;
+ }
+ 
+@@ -749,7 +749,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::setSelection(
+         sal_Int32 nEndIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     INT32 nLen = GetAccessibleText_Impl().Len();
+     if (!(0 <= nStartIndex  &&  nStartIndex < nLen) ||
+         !(0 <= nEndIndex    &&  nEndIndex   < nLen))
+@@ -760,7 +760,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::setSelection(
+ OUString SAL_CALL SmGraphicAccessible::getText()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return GetAccessibleText_Impl();
+ }
+ 
+@@ -773,7 +773,7 @@ OUString SAL_CALL SmGraphicAccessible::getTextRange(
+     //!! text should be copied exclusive that end index though. And arguments
+     //!! may be switched.
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String aTxt( GetAccessibleText_Impl() );
+     xub_StrLen nStart = (xub_StrLen) Min(nStartIndex, nEndIndex);
+     xub_StrLen nEnd   = (xub_StrLen) Max(nStartIndex, nEndIndex);
+@@ -785,7 +785,7 @@ OUString SAL_CALL SmGraphicAccessible::getTextRange(
+ 
+ ::com::sun::star::accessibility::TextSegment SAL_CALL SmGraphicAccessible::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String aTxt( GetAccessibleText_Impl() );
+     xub_StrLen nIdx = (xub_StrLen) nIndex;
+     //!! nIndex is allowed to be the string length
+@@ -806,7 +806,7 @@ OUString SAL_CALL SmGraphicAccessible::getTextRange(
+ 
+ ::com::sun::star::accessibility::TextSegment SAL_CALL SmGraphicAccessible::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String aTxt( GetAccessibleText_Impl() );
+     xub_StrLen nIdx = (xub_StrLen) nIndex;
+     //!! nIndex is allowed to be the string length
+@@ -828,7 +828,7 @@ OUString SAL_CALL SmGraphicAccessible::getTextRange(
+ 
+ ::com::sun::star::accessibility::TextSegment SAL_CALL SmGraphicAccessible::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String aTxt( GetAccessibleText_Impl() );
+     xub_StrLen nIdx = (xub_StrLen) nIndex;
+     //!! nIndex is allowed to be the string length
+@@ -854,7 +854,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::copyText(
+         sal_Int32 nEndIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bReturn = sal_False;
+ 
+     if (!pWin)
+@@ -886,7 +886,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::copyText(
+ OUString SAL_CALL SmGraphicAccessible::getImplementationName()
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return C2U("SmGraphicAccessible");
+ }
+ 
+@@ -894,7 +894,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::supportsService(
+         const OUString& rServiceName )
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return  rServiceName == C2U( "com::sun::star::accessibility::Accessible" ) ||
+             rServiceName == C2U( "com::sun::star::accessibility::AccessibleComponent" ) ||
+             rServiceName == C2U( "com::sun::star::accessibility::AccessibleContext" ) ||
+@@ -904,7 +904,7 @@ sal_Bool SAL_CALL SmGraphicAccessible::supportsService(
+ Sequence< OUString > SAL_CALL SmGraphicAccessible::getSupportedServiceNames()
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< OUString > aNames(4);
+     OUString *pNames = aNames.getArray();
+     pNames[0] = C2U( "com::sun::star::accessibility::Accessible" );
+@@ -1719,7 +1719,7 @@ SmEditAccessible::SmEditAccessible( const SmEditAccessible &rSmAcc ) :
+     SmEditAccessibleBaseClass(),
+     aAccName            ( String(SmResId(STR_CMDBOXWINDOW)) )
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     pWin = rSmAcc.pWin;
+     DBG_ASSERT( pWin, "SmEditAccessible: window missing" );
+     //++aRefCount;
+@@ -1729,7 +1729,7 @@ SmEditAccessible::~SmEditAccessible()
+ {
+     delete pTextHelper;
+ /*
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (--aRefCount == 0)
+     {
+     }
+@@ -1781,7 +1781,7 @@ void SmEditAccessible::ClearWin()
+ uno::Reference< XAccessibleContext > SAL_CALL SmEditAccessible::getAccessibleContext(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return this;
+ }
+ 
+@@ -1792,7 +1792,7 @@ sal_Bool SAL_CALL SmEditAccessible::containsPoint( const awt::Point& aPoint )
+     //! the arguments coordinates are relativ to the current window !
+     //! Thus the top left-point is (0, 0)
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+ 
+@@ -1804,7 +1804,7 @@ sal_Bool SAL_CALL SmEditAccessible::containsPoint( const awt::Point& aPoint )
+ uno::Reference< XAccessible > SAL_CALL SmEditAccessible::getAccessibleAtPoint( const awt::Point& aPoint )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pTextHelper)
+         throw RuntimeException();
+     return pTextHelper->GetAt( aPoint );
+@@ -1813,7 +1813,7 @@ uno::Reference< XAccessible > SAL_CALL SmEditAccessible::getAccessibleAtPoint( c
+ awt::Rectangle SAL_CALL SmEditAccessible::getBounds(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -1824,7 +1824,7 @@ awt::Rectangle SAL_CALL SmEditAccessible::getBounds(  )
+ awt::Point SAL_CALL SmEditAccessible::getLocation(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -1836,7 +1836,7 @@ awt::Point SAL_CALL SmEditAccessible::getLocation(  )
+ awt::Point SAL_CALL SmEditAccessible::getLocationOnScreen(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -1847,7 +1847,7 @@ awt::Point SAL_CALL SmEditAccessible::getLocationOnScreen(  )
+ awt::Size SAL_CALL SmEditAccessible::getSize(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+     DBG_ASSERT(pWin->GetParent()->GetAccessible() == getAccessibleParent(),
+@@ -1865,7 +1865,7 @@ awt::Size SAL_CALL SmEditAccessible::getSize(  )
+ void SAL_CALL SmEditAccessible::grabFocus(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+ 
+@@ -1875,7 +1875,7 @@ void SAL_CALL SmEditAccessible::grabFocus(  )
+ sal_Int32 SAL_CALL SmEditAccessible::getForeground()
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (!pWin)
+         throw RuntimeException();
+@@ -1885,7 +1885,7 @@ sal_Int32 SAL_CALL SmEditAccessible::getForeground()
+ sal_Int32 SAL_CALL SmEditAccessible::getBackground()
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (!pWin)
+         throw RuntimeException();
+@@ -1902,7 +1902,7 @@ sal_Int32 SAL_CALL SmEditAccessible::getBackground()
+ sal_Int32 SAL_CALL SmEditAccessible::getAccessibleChildCount(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pTextHelper)
+         throw RuntimeException();
+     return pTextHelper->GetChildCount();
+@@ -1911,7 +1911,7 @@ sal_Int32 SAL_CALL SmEditAccessible::getAccessibleChildCount(  )
+ uno::Reference< XAccessible > SAL_CALL SmEditAccessible::getAccessibleChild( sal_Int32 i )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pTextHelper)
+         throw RuntimeException();
+     return pTextHelper->GetChild( i );
+@@ -1920,7 +1920,7 @@ uno::Reference< XAccessible > SAL_CALL SmEditAccessible::getAccessibleChild( sal
+ uno::Reference< XAccessible > SAL_CALL SmEditAccessible::getAccessibleParent(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (!pWin)
+         throw RuntimeException();
+ 
+@@ -1932,7 +1932,7 @@ uno::Reference< XAccessible > SAL_CALL SmEditAccessible::getAccessibleParent(  )
+ sal_Int32 SAL_CALL SmEditAccessible::getAccessibleIndexInParent(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Int32 nIdx = -1;
+     Window *pAccParent = pWin ? pWin->GetAccessibleParentWindow() : 0;
+     if (pAccParent)
+@@ -1948,21 +1948,21 @@ sal_Int32 SAL_CALL SmEditAccessible::getAccessibleIndexInParent(  )
+ sal_Int16 SAL_CALL SmEditAccessible::getAccessibleRole(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return AccessibleRole::PANEL /*TEXT ?*/;
+ }
+ 
+ rtl::OUString SAL_CALL SmEditAccessible::getAccessibleDescription(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return OUString();  // empty as agreed with product-management
+ }
+ 
+ rtl::OUString SAL_CALL SmEditAccessible::getAccessibleName(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // same name as displayed by the window when not docked
+     return aAccName;
+ }
+@@ -1970,7 +1970,7 @@ rtl::OUString SAL_CALL SmEditAccessible::getAccessibleName(  )
+ uno::Reference< XAccessibleRelationSet > SAL_CALL SmEditAccessible::getAccessibleRelationSet(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Reference< XAccessibleRelationSet > xRelSet = new utl::AccessibleRelationSetHelper();
+     return xRelSet;   // empty relation set
+ }
+@@ -1978,7 +1978,7 @@ uno::Reference< XAccessibleRelationSet > SAL_CALL SmEditAccessible::getAccessibl
+ uno::Reference< XAccessibleStateSet > SAL_CALL SmEditAccessible::getAccessibleStateSet(  )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	::utl::AccessibleStateSetHelper *pStateSet =
+             new ::utl::AccessibleStateSetHelper;
+ 
+@@ -2012,7 +2012,7 @@ uno::Reference< XAccessibleStateSet > SAL_CALL SmEditAccessible::getAccessibleSt
+ Locale SAL_CALL SmEditAccessible::getLocale(  )
+     throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // should be the document language...
+     // We use the language of the localized symbol names here.
+     return Application::GetSettings().GetUILocale();
+@@ -2023,14 +2023,14 @@ Locale SAL_CALL SmEditAccessible::getLocale(  )
+ void SAL_CALL SmEditAccessible::addEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());   if (pTextHelper)   // not disposing (about to destroy view shell)
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());   if (pTextHelper)   // not disposing (about to destroy view shell)
+         pTextHelper->AddEventListener( xListener );
+ }
+ 
+ void SAL_CALL SmEditAccessible::removeEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+    if (pTextHelper)   // not disposing (about to destroy view shell)
+         pTextHelper->RemoveEventListener( xListener );
+ }
+@@ -2038,7 +2038,7 @@ void SAL_CALL SmEditAccessible::removeEventListener( const uno::Reference< XAcce
+ OUString SAL_CALL SmEditAccessible::getImplementationName()
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return C2U("SmEditAccessible");
+ }
+ 
+@@ -2046,7 +2046,7 @@ sal_Bool SAL_CALL SmEditAccessible::supportsService(
+         const OUString& rServiceName )
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return  rServiceName == C2U( "com::sun::star::accessibility::Accessible" ) ||
+             rServiceName == C2U( "com::sun::star::accessibility::AccessibleComponent" ) ||
+             rServiceName == C2U( "com::sun::star::accessibility::AccessibleContext" );
+@@ -2055,7 +2055,7 @@ sal_Bool SAL_CALL SmEditAccessible::supportsService(
+ Sequence< OUString > SAL_CALL SmEditAccessible::getSupportedServiceNames()
+     throw (RuntimeException)
+ {
+-    //vos::OGuard aGuard(Application::GetSolarMutex());
++    //osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< OUString > aNames(3);
+     OUString *pNames = aNames.getArray();
+     pNames[0] = C2U( "com::sun::star::accessibility::Accessible" );
+diff --git a/starmath/source/smdetect.cxx b/starmath/source/smdetect.cxx
+index f39d632..f37d9f0 100644
+--- starmath/source/smdetect.cxx
++++ starmath/source/smdetect.cxx
+@@ -105,7 +105,7 @@
+ #include <svtools/eitem.hxx>
+ #include <svtools/stritem.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/sfxecode.hxx>
+ #include <svtools/ehdl.hxx>
+ #include <sot/storinfo.hxx>
+@@ -220,7 +220,7 @@ SmFilterDetect::~SmFilterDetect()
+ 	}
+ 
+     // can't check the type for external filters, so set the "dont" flag accordingly
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     //SfxFilterFlags nMust = SFX_FILTER_IMPORT, nDont = SFX_FILTER_NOTINSTALLED;
+ 
+     SfxApplication* pApp = SFX_APP();
+diff --git a/starmath/source/unodoc.cxx b/starmath/source/unodoc.cxx
+index 82186d3..3b53466 100644
+--- starmath/source/unodoc.cxx
++++ starmath/source/unodoc.cxx
+@@ -48,8 +48,8 @@
+ #include "smdll.hxx"
+ #include "document.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -72,7 +72,7 @@ uno::Sequence< rtl::OUString > SAL_CALL SmDocument_getSupportedServiceNames() th
+ uno::Reference< uno::XInterface > SAL_CALL SmDocument_createInstance(
+                 const uno::Reference< lang::XMultiServiceFactory > & /*rSMgr*/ ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( !SM_MOD() )
+ 		SmDLL::Init();
+ 
+diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
+index 1700a69..97ca0a9 100644
+--- starmath/source/unomodel.cxx
++++ starmath/source/unomodel.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_starmath.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+@@ -331,7 +331,7 @@ void SAL_CALL SmModel::release() throw()
+   -----------------------------------------------------------------------*/
+ uno::Sequence< uno::Type > SAL_CALL SmModel::getTypes(  ) throw(uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Type > aTypes = SfxBaseModel::getTypes();
+     sal_Int32 nLen = aTypes.getLength();
+     aTypes.realloc(nLen + 4);
+@@ -429,7 +429,7 @@ uno::Sequence< OUString > SmModel::getSupportedServiceNames(void) throw( uno::Ru
+ 
+ uno::Sequence< OUString > SmModel::getSupportedServiceNames_Static(void)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Sequence< OUString > aRet(2);
+ 	OUString* pArray = aRet.getArray();
+@@ -441,7 +441,7 @@ uno::Sequence< OUString > SmModel::getSupportedServiceNames_Static(void)
+ void SmModel::_setPropertyValues(const PropertyMapEntry** ppEntries, const Any* pValues)
+ 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SmDocShell *pDocSh = static_cast < SmDocShell * > (GetObjectShell());
+ 
+@@ -905,7 +905,7 @@ sal_Int32 SAL_CALL SmModel::getRendererCount(
+         const uno::Sequence< beans::PropertyValue >& /*xOptions*/ )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return 1;
+ }
+ 
+@@ -939,7 +939,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SmModel::getRenderer(
+         const uno::Sequence< beans::PropertyValue >& /*xOptions*/ )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (0 != nRenderer)
+         throw IllegalArgumentException();
+@@ -973,7 +973,7 @@ void SAL_CALL SmModel::render(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (0 != nRenderer)
+         throw IllegalArgumentException();
+@@ -1060,7 +1060,7 @@ void SAL_CALL SmModel::render(
+ uno::Reference< uno::XInterface > SAL_CALL SmModel_createInstance(
+                 const uno::Reference< lang::XMultiServiceFactory > & /*rSMgr*/ ) throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SmDLL::Init();
+ 	SfxObjectShell* pShell = new SmDocShell( SFX_CREATE_MODE_STANDARD );
+ 	return uno::Reference< uno::XInterface >( pShell->GetModel() );
+@@ -1069,7 +1069,7 @@ uno::Reference< uno::XInterface > SAL_CALL SmModel_createInstance(
+ void SAL_CALL SmModel::setParent( const uno::Reference< uno::XInterface >& xParent)
+         throw( lang::NoSupportException, uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SfxBaseModel::setParent( xParent );
+     uno::Reference< lang::XUnoTunnel > xParentTunnel( xParent, uno::UNO_QUERY );
+     if ( xParentTunnel.is() )
+diff --git a/starmath/source/viewhdl.cxx b/starmath/source/viewhdl.cxx
+index c339465..ca7c6a9 100644
+--- starmath/source/viewhdl.cxx
++++ starmath/source/viewhdl.cxx
+@@ -51,8 +51,8 @@
+ #ifndef _COM_SUN_STAR_DATATRANSFER_CLIPBOARD_XCLIPBOARDNOTIFIER_HPP_
+ #include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _CPPUHELPER_IMPLBASE1_HXX_
+ #include <cppuhelper/implbase1.hxx>
+@@ -113,7 +113,7 @@ void SAL_CALL SmClipboardChangeListener::disposing(
+ void SAL_CALL SmClipboardChangeListener::changedContents(
+ 							const ClipboardEvent& rEventObject ) throw ( ::com::sun::star::uno::RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if( pView )
+ 	{
+@@ -176,7 +176,7 @@ void SmViewShell::AddRemoveClipboardListener( BOOL bAdd )
+ {
+     // AddRemoveListener and ViewDestroyed below should be an 
+     // atomic operation and must not be 'interrupted' by other code
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( bAdd && !xClipEvtLstnr.is() )
+ 	{
+diff --git a/svtools/inc/asynclink.hxx b/svtools/inc/asynclink.hxx
+index fc3a747..6383b07 100644
+--- svtools/inc/asynclink.hxx
++++ svtools/inc/asynclink.hxx
+@@ -49,9 +49,9 @@
+ 
+ class Timer;
+ 
+-namespace vos
++namespace osl
+ {
+-    class OMutex;
++    class Mutex;
+ }
+ 
+ namespace svtools {
+@@ -64,7 +64,7 @@ class SVT_DLLPUBLIC AsynchronLink
+ 	BOOL   _bInCall;
+ 	BOOL*  _pDeleted;
+ 	void*  _pArg;
+-    vos::OMutex* _pMutex;
++    osl::Mutex* _pMutex;
+ 
+ 	DECL_DLLPRIVATE_STATIC_LINK( AsynchronLink, HandleCall, void* );
+ 	SVT_DLLPRIVATE void Call_Impl( void* pArg );
+diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
+index cb4c4c9..8324445 100644
+--- svtools/inc/pch/precompiled_svtools.hxx
++++ svtools/inc/pch/precompiled_svtools.hxx
+@@ -430,7 +430,7 @@
+ #include <vcl/mapunit.hxx>
+ #include <vcl/unohelp.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <rtl/ref.hxx>
+ #include <salhelper/simplereferenceobject.hxx>
+ #include <vos/security.hxx>
+diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx
+index 69ca17e..74957b9 100644
+--- svtools/source/config/colorcfg.cxx
++++ svtools/source/config/colorcfg.cxx
+@@ -76,8 +76,8 @@
+ #ifndef _SFXSMPLHINT_HXX
+ #include <svtools/smplhint.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <itemholder2.hxx>
+@@ -341,7 +341,7 @@ void    ColorConfig_Impl::Notify( const uno::Sequence<OUString>& )
+     //loading via notification always uses the default setting
+     Load(::rtl::OUString());
+ 
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     if(m_bLockBroadcast)
+ 	{
+@@ -442,7 +442,7 @@ sal_Bool ColorConfig_Impl::RemoveScheme(const rtl::OUString& rScheme)
+  ---------------------------------------------------------------------------*/
+ void ColorConfig_Impl::SettingsChanged()
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+ 	ImplUpdateApplicationSettings();
+ 
+@@ -659,7 +659,7 @@ ColorConfigValue ColorConfig::GetColorValue(ColorConfigEntry eEntry, sal_Bool bS
+  ---------------------------------------------------------------------------*/
+ void ColorConfig::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     Broadcast( rHint );
+ }
+diff --git a/svtools/source/config/ctloptions.cxx b/svtools/source/config/ctloptions.cxx
+index caa6621..3c18274 100644
+--- svtools/source/config/ctloptions.cxx
++++ svtools/source/config/ctloptions.cxx
+@@ -64,8 +64,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFXSMPLHINT_HXX
+ #include <svtools/smplhint.hxx>
+@@ -524,7 +524,7 @@ sal_Bool SvtCTLOptions::IsReadOnly(EOption eOption) const
+  --------------------------------------------------*/
+ void SvtCTLOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+     Broadcast( rHint );
+ }
+ 
+diff --git a/svtools/source/config/extcolorcfg.cxx b/svtools/source/config/extcolorcfg.cxx
+index caa0d74..4e5ea54 100644
+--- svtools/source/config/extcolorcfg.cxx
++++ svtools/source/config/extcolorcfg.cxx
+@@ -73,8 +73,8 @@
+ #ifndef _SFXSMPLHINT_HXX
+ #include <svtools/smplhint.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+  /* #100822# ----
+@@ -452,7 +452,7 @@ void    ExtendedColorConfig_Impl::Notify( const uno::Sequence<OUString>& /*rProp
+     //loading via notification always uses the default setting
+     Load(::rtl::OUString());
+ 
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     if(m_bLockBroadcast)
+ 	{
+@@ -594,7 +594,7 @@ sal_Bool ExtendedColorConfig_Impl::RemoveScheme(const rtl::OUString& rScheme)
+  ---------------------------------------------------------------------------*/
+ void ExtendedColorConfig_Impl::SettingsChanged()
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     Broadcast( SfxSimpleHint( SFX_HINT_COLORS_CHANGED ) );
+ }
+@@ -706,7 +706,7 @@ ExtendedColorConfigValue ExtendedColorConfig::GetComponentColorConfigValue(const
+  ---------------------------------------------------------------------------*/
+ void ExtendedColorConfig::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     Broadcast( rHint );
+ }
+diff --git a/svtools/source/config/languageoptions.cxx b/svtools/source/config/languageoptions.cxx
+index f6d036d..8388a57 100644
+--- svtools/source/config/languageoptions.cxx
++++ svtools/source/config/languageoptions.cxx
+@@ -56,8 +56,8 @@
+ #include <i18npool/mslangid.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -236,7 +236,7 @@ sal_Bool SvtLanguageOptions::IsReadOnly(SvtLanguageOptions::EOption eOption) con
+  --------------------------------------------------*/
+ void SvtLanguageOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+     Broadcast( rHint );
+ }
+ 
+diff --git a/svtools/source/config/undoopt.cxx b/svtools/source/config/undoopt.cxx
+index e2dfa41..48457c5 100644
+--- svtools/source/config/undoopt.cxx
++++ svtools/source/config/undoopt.cxx
+@@ -61,8 +61,8 @@
+ #include <com/sun/star/uno/Sequence.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFXSMPLHINT_HXX
+ #include <svtools/smplhint.hxx>
+@@ -237,7 +237,7 @@ sal_Int32 SvtUndoOptions::GetUndoCount() const
+ 
+ void SvtUndoOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+     Broadcast( rHint );
+ }
+ 
+diff --git a/svtools/source/config/useroptions.cxx b/svtools/source/config/useroptions.cxx
+index 05505d2..6e7d7ab 100644
+--- svtools/source/config/useroptions.cxx
++++ svtools/source/config/useroptions.cxx
+@@ -57,8 +57,8 @@
+ #ifndef _SFXSMPLHINT_HXX
+ #include <svtools/smplhint.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -912,7 +912,7 @@ const String&   SvtUserOptions::GetToken(USHORT nToken) const
+  --------------------------------------------------*/
+ void SvtUserOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+     Broadcast( rHint );
+ }
+ 
+diff --git a/svtools/source/contnr/contentenumeration.cxx b/svtools/source/contnr/contentenumeration.cxx
+index 6394bad..33a9635 100644
+--- svtools/source/contnr/contentenumeration.cxx
++++ svtools/source/contnr/contentenumeration.cxx
+@@ -83,8 +83,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <memory>
+@@ -341,7 +341,7 @@ namespace svt
+ 
+                             if ( pData->mbIsFolder )
+                             {
+-                                ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                                osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+                                 ::svtools::VolumeInfo aVolInfo( pData->mbIsVolume, pData->mbIsRemote,
+                                                                 pData->mbIsRemoveable, pData->mbIsFloppy,
+                                                                 pData->mbIsCompactDisc );
+diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
+index 3eb908c..bb1c3ec 100644
+--- svtools/source/contnr/fileview.cxx
++++ svtools/source/contnr/fileview.cxx
+@@ -152,6 +152,8 @@
+ #include <vcl/sound.hxx>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ #ifndef _UNOTOOLS_UCBHELPER_HXX
+ #include <unotools/ucbhelper.hxx>
+ #endif
+@@ -2191,7 +2193,7 @@ void SvtFileView_Impl::CancelRunningAsyncAction()
+ //-----------------------------------------------------------------------
+ void SvtFileView_Impl::onTimeout( CallbackTimer* )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( maMutex );
+     if ( !m_bRunningAsyncAction )
+         // there might have been a race condition while we waited for the mutex
+@@ -2209,7 +2211,7 @@ void SvtFileView_Impl::onTimeout( CallbackTimer* )
+ //-----------------------------------------------------------------------
+ void SvtFileView_Impl::enumerationDone( ::svt::EnumerationResult _eResult )
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( maMutex );
+ 
+     m_pContentEnumerator = NULL;
+diff --git a/svtools/source/control/asynclink.cxx b/svtools/source/control/asynclink.cxx
+index 3ee426d..51b64b6 100644
+--- svtools/source/control/asynclink.cxx
++++ svtools/source/control/asynclink.cxx
+@@ -38,8 +38,8 @@
+ 
+ #include <asynclink.hxx>
+ 
+-#ifndef  _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef  _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef  _TOOLS_DEBUG_HXX
+@@ -58,7 +58,7 @@ namespace svtools {
+ 
+ void AsynchronLink::CreateMutex()
+ {
+-    if( !_pMutex ) _pMutex = new vos::OMutex;
++    if( !_pMutex ) _pMutex = new osl::Mutex;
+ }
+ 
+ void AsynchronLink::Call( void* pObj, BOOL
+diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
+index ba5df8b..f3788a5 100644
+--- svtools/source/control/inettbc.cxx
++++ svtools/source/control/inettbc.cxx
+@@ -94,8 +94,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -181,7 +181,7 @@ public:
+ // -----------------------------------------------------------------------
+ class SvtMatchContext_Impl : public ::osl::Thread
+ {
+-    static ::vos::OMutex*           pDirMutex;
++    static ::osl::Mutex*            pDirMutex;
+ 
+ 	SvStringsDtor 					aPickList;
+     SvStringsDtor*                  pCompletions;
+@@ -204,20 +204,20 @@ class SvtMatchContext_Impl : public ::osl::Thread
+     void                            FillPicklist( SvStringsDtor& rPickList );
+ 
+ public:
+-    static ::vos::OMutex*           GetMutex();
++    static ::osl::Mutex*            GetMutex();
+ 
+                                     SvtMatchContext_Impl( SvtURLBox* pBoxP, const String& rText );
+ 									~SvtMatchContext_Impl();
+ 	void          					Stop();
+ };
+ 
+-::vos::OMutex* SvtMatchContext_Impl::pDirMutex = 0;
++::osl::Mutex* SvtMatchContext_Impl::pDirMutex = 0;
+ 
+-::vos::OMutex* SvtMatchContext_Impl::GetMutex()
++::osl::Mutex* SvtMatchContext_Impl::GetMutex()
+ {
+-    ::vos::OGuard aGuard( ::vos::OMutex::getGlobalMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( !pDirMutex )
+-        pDirMutex = new ::vos::OMutex;
++        pDirMutex = new ::osl::Mutex;
+ 	return pDirMutex;
+ }
+ 
+@@ -667,7 +667,7 @@ String SvtURLBox::ParseSmart( String aText, String aBaseURL, String aWorkDir )
+ //-------------------------------------------------------------------------
+ void SvtMatchContext_Impl::run()
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
++    osl::MutexGuard aGuard( GetMutex() );
+ 	if( bStop )
+         // have we been stopped while we were waiting for the mutex?
+ 		return;
+@@ -1043,7 +1043,7 @@ BOOL SvtURLBox::ProcessKey( const KeyCode& rKey )
+ 	if ( aCode == KEY_RETURN && GetText().Len() )
+ 	{
+         // wait for completion of matching thread
+-        ::vos::OGuard aGuard( SvtMatchContext_Impl::GetMutex() );
++        osl::MutexGuard aGuard( SvtMatchContext_Impl::GetMutex() );
+ 
+ 		if ( bAutoCompleteMode )
+ 		{
+@@ -1202,7 +1202,7 @@ void SvtURLBox::SetNoURLSelection( BOOL bSet )
+ String SvtURLBox::GetURL()
+ {
+     // wait for end of autocompletion
+-    ::vos::OGuard aGuard( SvtMatchContext_Impl::GetMutex() );
++    osl::MutexGuard aGuard( SvtMatchContext_Impl::GetMutex() );
+ 
+     String aText( GetText() );
+     // try to get the right case preserving URL from the list of URLs
+@@ -1296,7 +1296,7 @@ void SvtURLBox::DisableHistory()
+ //-------------------------------------------------------------------------
+ void SvtURLBox::SetBaseURL( const String& rURL )
+ {
+-    ::vos::OGuard aGuard( SvtMatchContext_Impl::GetMutex() );
++    osl::MutexGuard aGuard( SvtMatchContext_Impl::GetMutex() );
+ 
+     // Reset match lists
+     if ( pImp->pCompletions )
+diff --git a/svtools/source/control/valueacc.cxx b/svtools/source/control/valueacc.cxx
+index f6aec9c..c0d3aee 100644
+--- svtools/source/control/valueacc.cxx
++++ svtools/source/control/valueacc.cxx
+@@ -190,7 +190,7 @@ uno::Reference< accessibility::XAccessibleContext > SAL_CALL ValueSetAcc::getAcc
+ sal_Int32 SAL_CALL ValueSetAcc::getAccessibleChildCount()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ThrowIfDisposed();
+ 
+     sal_Int32 nCount = mpParent->ImplGetVisibleItemCount();
+@@ -205,7 +205,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueSetAcc::getAccessible
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+     ValueSetItem* pItem = getItem (sal::static_int_cast< USHORT >(i));
+ 
+@@ -223,7 +223,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueSetAcc::getAccessible
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     Window*                                         pParent = mpParent->GetParent();
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+@@ -239,7 +239,7 @@ sal_Int32 SAL_CALL ValueSetAcc::getAccessibleIndexInParent()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard       aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard       aSolarGuard( Application::GetSolarMutex() );
+     Window*                 pParent = mpParent->GetParent();
+     sal_Int32               nRet = 0;
+ 
+@@ -279,7 +279,7 @@ sal_Int16 SAL_CALL ValueSetAcc::getAccessibleRole()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     String              aRet( RTL_CONSTASCII_USTRINGPARAM( "ValueSet" ) );
+ 
+     return aRet;
+@@ -291,7 +291,7 @@ sal_Int16 SAL_CALL ValueSetAcc::getAccessibleRole()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     String              aRet;
+ 
+     if ( mpParent )
+@@ -341,7 +341,7 @@ lang::Locale SAL_CALL ValueSetAcc::getLocale()
+     throw (accessibility::IllegalAccessibleComponentStateException, uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     const ::rtl::OUString                           aEmptyStr;
+     uno::Reference< accessibility::XAccessible >    xParent( getAccessibleParent() );
+     lang::Locale                                    aRet( aEmptyStr, aEmptyStr, aEmptyStr );
+@@ -428,7 +428,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueSetAcc::getAccessible
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     const USHORT                                    nItemId = mpParent->GetItemId( Point( aPoint.X, aPoint.Y ) );
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+@@ -454,7 +454,7 @@ awt::Rectangle SAL_CALL ValueSetAcc::getBounds()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     const Point         aOutPos( mpParent->GetPosPixel() );
+     const Size          aOutSize( mpParent->GetOutputSizePixel() );
+     awt::Rectangle      aRet;
+@@ -488,7 +488,7 @@ awt::Point SAL_CALL ValueSetAcc::getLocationOnScreen()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     const Point         aScreenPos( mpParent->OutputToAbsoluteScreenPixel( Point() ) );
+     awt::Point          aRet;
+ 
+@@ -519,7 +519,7 @@ void SAL_CALL ValueSetAcc::grabFocus()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     mpParent->GrabFocus();
+ }
+ 
+@@ -558,7 +558,7 @@ void SAL_CALL ValueSetAcc::selectAccessibleChild( sal_Int32 nChildIndex )
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     ValueSetItem* pItem = getItem (sal::static_int_cast< USHORT >(nChildIndex));
+ 
+     if(pItem != NULL)
+@@ -576,7 +576,7 @@ sal_Bool SAL_CALL ValueSetAcc::isAccessibleChildSelected( sal_Int32 nChildIndex
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     ValueSetItem* pItem = getItem (sal::static_int_cast< USHORT >(nChildIndex));
+     sal_Bool            bRet = sal_False;
+ 
+@@ -594,7 +594,7 @@ void SAL_CALL ValueSetAcc::clearAccessibleSelection()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     mpParent->SetNoSelection();
+ }
+ 
+@@ -613,7 +613,7 @@ sal_Int32 SAL_CALL ValueSetAcc::getSelectedAccessibleChildCount()
+     throw (uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     sal_Int32           nRet = 0;
+ 
+     for( USHORT i = 0, nCount = getItemCount(); i < nCount; i++ )
+@@ -633,7 +633,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueSetAcc::getSelectedAc
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+     for( USHORT i = 0, nCount = getItemCount(), nSel = 0; ( i < nCount ) && !xRet.is(); i++ )
+@@ -653,7 +653,7 @@ void SAL_CALL ValueSetAcc::deselectAccessibleChild( sal_Int32 nChildIndex )
+     throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+     ThrowIfDisposed();
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     // Because of the single selection we can reset the whole selection when
+     // the specified child is currently selected.
+     if (isAccessibleChildSelected(nChildIndex))
+@@ -683,7 +683,7 @@ void SAL_CALL ValueSetAcc::disposing (void)
+ 
+     {
+         // Make a copy of the list and clear the original.
+-        const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++        const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+         ::osl::MutexGuard aGuard (m_aMutex);
+         aListenerListCopy = mxEventListeners;
+         mxEventListeners.clear();
+@@ -820,7 +820,7 @@ void ValueItemAcc::FireAccessibleEvent( short nEventId, const uno::Any& rOldValu
+ 
+ void ValueItemAcc::ParentDestroyed()
+ {
+-    const ::vos::OGuard aGuard( maMutex );
++    const osl::MutexGuard aGuard( maMutex );
+     mpParent = NULL;
+ }
+ 
+@@ -887,7 +887,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueItemAcc::getAccessibl
+ uno::Reference< accessibility::XAccessible > SAL_CALL ValueItemAcc::getAccessibleParent()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     uno::Reference< accessibility::XAccessible >    xRet;
+ 
+     if( mpParent )
+@@ -901,7 +901,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueItemAcc::getAccessibl
+ sal_Int32 SAL_CALL ValueItemAcc::getAccessibleIndexInParent()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     // The index defaults to -1 to indicate the child does not belong to its
+     // parent.
+     sal_Int32 nIndexInParent = -1;
+@@ -951,7 +951,7 @@ sal_Int16 SAL_CALL ValueItemAcc::getAccessibleRole()
+ ::rtl::OUString SAL_CALL ValueItemAcc::getAccessibleDescription()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     String              aRet( RTL_CONSTASCII_USTRINGPARAM( "ValueSet item" ) );
+ 
+     return aRet;
+@@ -962,7 +962,7 @@ sal_Int16 SAL_CALL ValueItemAcc::getAccessibleRole()
+ ::rtl::OUString SAL_CALL ValueItemAcc::getAccessibleName()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     String              aRet;
+ 
+     if( mpParent )
+@@ -992,7 +992,7 @@ uno::Reference< accessibility::XAccessibleRelationSet > SAL_CALL ValueItemAcc::g
+ uno::Reference< accessibility::XAccessibleStateSet > SAL_CALL ValueItemAcc::getAccessibleStateSet()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard                   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                   aSolarGuard( Application::GetSolarMutex() );
+     ::utl::AccessibleStateSetHelper*    pStateSet = new ::utl::AccessibleStateSetHelper;
+ 
+     if( mpParent )
+@@ -1024,7 +1024,7 @@ uno::Reference< accessibility::XAccessibleStateSet > SAL_CALL ValueItemAcc::getA
+ lang::Locale SAL_CALL ValueItemAcc::getLocale()
+     throw (accessibility::IllegalAccessibleComponentStateException, uno::RuntimeException)
+ {
+-    const vos::OGuard                               aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard                               aSolarGuard( Application::GetSolarMutex() );
+     const ::rtl::OUString                           aEmptyStr;
+     uno::Reference< accessibility::XAccessible >    xParent( getAccessibleParent() );
+     lang::Locale                                    aRet( aEmptyStr, aEmptyStr, aEmptyStr );
+@@ -1045,7 +1045,7 @@ lang::Locale SAL_CALL ValueItemAcc::getLocale()
+ void SAL_CALL ValueItemAcc::addEventListener( const uno::Reference< accessibility::XAccessibleEventListener >& rxListener )
+     throw (uno::RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( maMutex );
++    const osl::MutexGuard aGuard( maMutex );
+ 
+ 	if( rxListener.is() )
+     {
+@@ -1070,7 +1070,7 @@ void SAL_CALL ValueItemAcc::addEventListener( const uno::Reference< accessibilit
+ void SAL_CALL ValueItemAcc::removeEventListener( const uno::Reference< accessibility::XAccessibleEventListener >& rxListener )
+     throw (uno::RuntimeException)
+ {
+-    const ::vos::OGuard aGuard( maMutex );
++    const osl::MutexGuard aGuard( maMutex );
+ 
+ 	if( rxListener.is() )
+     {
+@@ -1116,7 +1116,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ValueItemAcc::getAccessibl
+ awt::Rectangle SAL_CALL ValueItemAcc::getBounds()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     awt::Rectangle      aRet;
+ 
+     if( mpParent )
+@@ -1155,7 +1155,7 @@ awt::Point SAL_CALL ValueItemAcc::getLocation()
+ awt::Point SAL_CALL ValueItemAcc::getLocationOnScreen()
+     throw (uno::RuntimeException)
+ {
+-    const vos::OGuard   aSolarGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard   aSolarGuard( Application::GetSolarMutex() );
+     awt::Point          aRet;
+ 
+     if( mpParent )
+diff --git a/svtools/source/control/valueimp.hxx b/svtools/source/control/valueimp.hxx
+index bf82f3d..0a97c47 100644
+--- svtools/source/control/valueimp.hxx
++++ svtools/source/control/valueimp.hxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _LIST_HXX
+ #include <tools/list.hxx>
+@@ -299,7 +299,7 @@ private:
+ 
+     ::std::vector< ::com::sun::star::uno::Reference<
+         ::com::sun::star::accessibility::XAccessibleEventListener > >   mxEventListeners;
+-    ::vos::OMutex                                                       maMutex;
++    ::osl::Mutex                                                        maMutex;
+     ValueSetItem*                                                       mpParent;
+     bool                                                                mbIsTransientChildrenDisabled;
+ 
+diff --git a/svtools/source/edit/textview.cxx b/svtools/source/edit/textview.cxx
+index 6005b24..09fc8d3 100644
+--- svtools/source/edit/textview.cxx
++++ svtools/source/edit/textview.cxx
+@@ -121,7 +121,7 @@
+ #include <sot/exchange.hxx>
+ #include <sot/formats.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ 
+ using namespace ::com::sun::star;
+@@ -1966,7 +1966,7 @@ void TextView::dragGestureRecognized( const ::com::sun::star::datatransfer::dnd:
+ {
+     if ( mpImpl->mbClickedInSelection )
+     {
+-	    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT( mpImpl->maSelection.HasRange(), "TextView::dragGestureRecognized: mpImpl->mbClickedInSelection, but no selection?" );
+ 
+@@ -2019,7 +2019,7 @@ void TextView::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourc
+ 
+ void TextView::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+ 	BOOL bChanges = FALSE;
+     if ( !mpImpl->mbReadOnly && mpImpl->mpDDInfo )
+@@ -2135,13 +2135,13 @@ void TextView::dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetD
+ 
+ void TextView::dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+     ImpHideDDCursor();
+ }
+ 
+ void TextView::dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     if ( !mpImpl->mpDDInfo )
+         mpImpl->mpDDInfo = new TextDDInfo;
+diff --git a/svtools/source/filter.vcl/filter/filter.cxx b/svtools/source/filter.vcl/filter/filter.cxx
+index fb57097..807beb2 100644
+--- svtools/source/filter.vcl/filter/filter.cxx
++++ svtools/source/filter.vcl/filter/filter.cxx
+@@ -39,7 +39,7 @@
+ #if defined UNX && defined ALPHA
+ #include <fstream.hxx>
+ #endif
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <comphelper/processfactory.hxx>
+ #include <ucbhelper/content.hxx>
+ #include <cppuhelper/implbase1.hxx>
+diff --git a/svtools/source/hatchwindow/documentcloser.cxx b/svtools/source/hatchwindow/documentcloser.cxx
+index e1f307a..9be2940 100644
+--- svtools/source/hatchwindow/documentcloser.cxx
++++ svtools/source/hatchwindow/documentcloser.cxx
+@@ -62,7 +62,7 @@
+ #include <com/sun/star/awt/XVclWindowPeer.hpp>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/dialog.hxx>
+ #include <tools/link.hxx>
+@@ -115,7 +115,7 @@ IMPL_STATIC_LINK( MainThreadFrameCloserRequest, worker, MainThreadFrameCloserReq
+ 		if ( pMTRequest->m_xFrame.is() )
+ 		{
+ 			// this is the main thread, the solar mutex must be locked
+-			::vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 			try
+ 			{
+diff --git a/svtools/source/java/javainteractionhandler.cxx b/svtools/source/java/javainteractionhandler.cxx
+index 15692ae..400ede7 100644
+--- svtools/source/java/javainteractionhandler.cxx
++++ svtools/source/java/javainteractionhandler.cxx
+@@ -58,8 +58,8 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+@@ -163,7 +163,7 @@ void SAL_CALL JavaInteractionHandler::handle( const Reference< XInteractionReque
+         if( ! (m_bShowErrorsOnce && m_bJavaNotFound_Handled))
+         {
+            // No suitable JRE found
+-            vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             m_bJavaNotFound_Handled = true;
+             //We first try to get the patch resource svp680xxx.res
+             //If the resource is not found then svt680xxx.res is used
+@@ -198,7 +198,7 @@ void SAL_CALL JavaInteractionHandler::handle( const Reference< XInteractionReque
+         if( !(m_bShowErrorsOnce && m_bInvalidSettings_Handled))
+         {
+            // javavendors.xml was updated and Java has not been configured yet
+-            vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             m_bInvalidSettings_Handled = true;
+             //We first try to get the patch resource svp680xxx.res
+             //If the resource is not found then svt680xxx.res is used
+@@ -231,7 +231,7 @@ void SAL_CALL JavaInteractionHandler::handle( const Reference< XInteractionReque
+ 	{
+         if( !(m_bShowErrorsOnce && m_bJavaDisabled_Handled))
+         {
+-            vos::OGuard aSolarGuard( Application::GetSolarMutex() );            
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );            
+             m_bJavaDisabled_Handled = true;
+             // Java disabled. Give user a chance to enable Java inside Office.
+             //We first try to get the patch resource svp680xxx.res
+@@ -276,7 +276,7 @@ void SAL_CALL JavaInteractionHandler::handle( const Reference< XInteractionReque
+         if( !(m_bShowErrorsOnce && m_bVMCreationFailure_Handled))
+         {
+             // Java not correctly installed, or damaged
+-            vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             m_bVMCreationFailure_Handled = true;
+             //We first try to get the patch resource svp680xxx.res
+             //If the resource is not found then svt680xxx.res is used
+@@ -311,7 +311,7 @@ void SAL_CALL JavaInteractionHandler::handle( const Reference< XInteractionReque
+         {
+             // a new JRE was selected, but office needs to be restarted
+             //before it can be used.
+-            vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             m_bRestartRequired_Handled = true;
+             //We first try to get the patch resource svp680xxx.res
+             //If the resource is not found then svt680xxx.res is used
+diff --git a/svtools/source/misc/acceleratorexecute.cxx b/svtools/source/misc/acceleratorexecute.cxx
+index 63da24e..aecb9a9 100644
+--- svtools/source/misc/acceleratorexecute.cxx
++++ svtools/source/misc/acceleratorexecute.cxx
+@@ -89,7 +89,7 @@
+ 
+ #include <vcl/window.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ //===============================================
+ // namespace
+diff --git a/svtools/source/misc/cliplistener.cxx b/svtools/source/misc/cliplistener.cxx
+index e38a18b..5da2e70 100644
+--- svtools/source/misc/cliplistener.cxx
++++ svtools/source/misc/cliplistener.cxx
+@@ -40,7 +40,7 @@
+ 
+ #include <vcl/svapp.hxx>
+ #include <vcl/window.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include "cliplistener.hxx"
+ #include <svtools/transfer.hxx>
+@@ -69,7 +69,7 @@ void SAL_CALL TransferableClipboardListener::changedContents(
+ {
+ 	if ( aLink.IsSet() )
+ 	{
+-		const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++		const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		TransferableDataHelper aDataHelper( rEventObject.Contents );
+ 		aLink.Call( &aDataHelper );
+diff --git a/svtools/source/misc/ehdl.cxx b/svtools/source/misc/ehdl.cxx
+index 18277c8..5bb7a1d 100644
+--- svtools/source/misc/ehdl.cxx
++++ svtools/source/misc/ehdl.cxx
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_svtools.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _TOOLS_DEBUG_HXX //autogen
+ #include <tools/debug.hxx>
+@@ -87,7 +87,7 @@ static USHORT aWndFunc(
+ 
+ 
+ {
+-	NAMESPACE_VOS( OGuard ) aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// aus den Flags die benoetigten WinBits ermitteln
+ 	WinBits eBits=0;
+@@ -395,7 +395,7 @@ BOOL SfxErrorHandler::GetErrorString(
+ 	*/
+ 
+ {
+-	NAMESPACE_VOS( OGuard ) aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	BOOL bRet = FALSE;
+ 	rStr=String(SvtResId(RID_ERRHDL_CLASS));
+@@ -473,7 +473,7 @@ BOOL SfxErrorContext::GetString(ULONG nErrId, String &rStr)
+     }
+     if( pMgr )
+     {
+-        NAMESPACE_VOS( OGuard ) aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         ResId aResId( nResId, *pMgr );
+ 
+diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
+index fcb1ce5..a47508a 100644
+--- svtools/source/misc/embedhlp.cxx
++++ svtools/source/misc/embedhlp.cxx
+@@ -81,6 +81,8 @@
+ #include "vcl/svapp.hxx"
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ #ifndef _RTL_LOGFILE_HXX_
+ #include <rtl/logfile.hxx>
+ #endif
+@@ -162,7 +164,7 @@ void SAL_CALL EmbedEventListener_Impl::stateChanged( const lang::EventObject&,
+ 													::sal_Int32 nNewState )
+ 	throw ( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     nState = nNewState;
+     if ( !pObject )
+         return;
+@@ -190,7 +192,7 @@ void SAL_CALL EmbedEventListener_Impl::stateChanged( const lang::EventObject&,
+ 
+ void SAL_CALL EmbedEventListener_Impl::modified( const lang::EventObject& ) throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( pObject && pObject->GetViewAspect() != embed::Aspects::MSOLE_ICON )
+     {
+         if ( nState == embed::EmbedStates::RUNNING )
+@@ -209,7 +211,7 @@ void SAL_CALL EmbedEventListener_Impl::modified( const lang::EventObject& ) thro
+ 
+ void SAL_CALL EmbedEventListener_Impl::notifyEvent( const document::EventObject& aEvent ) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #if 0
+     if ( pObject && aEvent.EventName.equalsAscii("OnSaveDone") || aEvent.EventName.equalsAscii("OnSaveAsDone") )
+diff --git a/svtools/source/misc/imagemgr.cxx b/svtools/source/misc/imagemgr.cxx
+index 94e4af5..6690f42 100644
+--- svtools/source/misc/imagemgr.cxx
++++ svtools/source/misc/imagemgr.cxx
+@@ -99,6 +99,8 @@
+ #include "imagemgr.hrc"
+ #include <svtools/svtdata.hxx>
+ 
++#include <osl/mutex.hxx>
++
+ // globals *******************************************************************
+ 
+ #define NO_INDEX    	((USHORT)0xFFFF)
+@@ -533,7 +535,7 @@ static String GetDescriptionByFactory_Impl( const String& rFactory )
+     String aRet;
+     if ( nResId )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         aRet = String( SvtResId( nResId ) );
+     }
+     return aRet;
+@@ -791,7 +793,7 @@ String SvFileInformationManager::GetDescription_Impl( const INetURLObject& rObje
+ 			sDescription = sExtension;
+ 			sDescription += '-';
+ 		}
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         sDescription += String( SvtResId( nResId ) );
+     }
+ 
+diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx
+index b1e7eb5..4158d94 100644
+--- svtools/source/misc/transfer.cxx
++++ svtools/source/misc/transfer.cxx
+@@ -48,8 +48,8 @@
+ #include <tools/postwin.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _RTL_MEMORY_H_
+ #include <rtl/memory.h>
+@@ -256,7 +256,7 @@ Any SAL_CALL TransferableHelper::getTransferData( const DataFlavor& rFlavor ) th
+ {
+ 	if( !maAny.hasValue() || !mpFormats->size() || ( maLastFormat != rFlavor.MimeType ) )
+ 	{
+-		const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++		const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		maLastFormat = rFlavor.MimeType;
+ 		maAny = Any();
+@@ -368,7 +368,7 @@ Any SAL_CALL TransferableHelper::getTransferData( const DataFlavor& rFlavor ) th
+ 
+ Sequence< DataFlavor > SAL_CALL TransferableHelper::getTransferDataFlavors() throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 
+ 
+@@ -396,7 +396,7 @@ Sequence< DataFlavor > SAL_CALL TransferableHelper::getTransferDataFlavors() thr
+ 
+ sal_Bool SAL_CALL TransferableHelper::isDataFlavorSupported( const DataFlavor& rFlavor ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Bool			bRet = sal_False;
+ 
+ 	try
+@@ -428,7 +428,7 @@ sal_Bool SAL_CALL TransferableHelper::isDataFlavorSupported( const DataFlavor& r
+ 
+ void SAL_CALL TransferableHelper::lostOwnership( const Reference< XClipboard >&, const Reference< XTransferable >& ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	try
+ 	{
+@@ -464,7 +464,7 @@ void SAL_CALL TransferableHelper::disposing( const EventObject& ) throw( Runtime
+ 
+ void SAL_CALL TransferableHelper::dragDropEnd( const DragSourceDropEvent& rDSDE ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	try
+ 	{
+@@ -1144,7 +1144,7 @@ TransferableClipboardNotifier::TransferableClipboardNotifier( const Reference< X
+ 
+ void SAL_CALL TransferableClipboardNotifier::changedContents( const clipboard::ClipboardEvent& event ) throw (RuntimeException)
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         // the SolarMutex here is necessary, since
+         // - we cannot call mpListener without our own mutex locked
+         // - Rebind respectively InitFormats (called by Rebind) will
+@@ -1359,7 +1359,7 @@ void TransferableDataHelper::FillDataFlavorExVector( const Sequence< DataFlavor
+ 
+ void TransferableDataHelper::InitFormats()
+ {
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( mpImpl->maMutex );
+ 
+     mpFormats->clear();
+diff --git a/svtools/source/misc/transfer2.cxx b/svtools/source/misc/transfer2.cxx
+index b9db3b0..bc97369 100644
+--- svtools/source/misc/transfer2.cxx
++++ svtools/source/misc/transfer2.cxx
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_svtools.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef DEBUG_HXX
+ #include <tools/debug.hxx>
+@@ -117,7 +117,7 @@ void SAL_CALL DragSourceHelper::DragGestureListener::disposing( const EventObjec
+ 
+ void SAL_CALL DragSourceHelper::DragGestureListener::dragGestureRecognized( const DragGestureEvent& rDGE ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const Point aPtPixel( rDGE.DragOriginX, rDGE.DragOriginY );
+ 	mrParent.StartDrag( rDGE.DragAction, aPtPixel );
+@@ -178,7 +178,7 @@ void SAL_CALL DropTargetHelper::DropTargetListener::disposing( const EventObject
+ 
+ void SAL_CALL DropTargetHelper::DropTargetListener::drop( const DropTargetDropEvent& rDTDE ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	try
+ 	{
+@@ -229,7 +229,7 @@ void SAL_CALL DropTargetHelper::DropTargetListener::drop( const DropTargetDropEv
+ 
+ void SAL_CALL DropTargetHelper::DropTargetListener::dragEnter( const DropTargetDragEnterEvent& rDTDEE ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	try
+ 	{
+@@ -246,7 +246,7 @@ void SAL_CALL DropTargetHelper::DropTargetListener::dragEnter( const DropTargetD
+ 
+ void SAL_CALL DropTargetHelper::DropTargetListener::dragOver( const DropTargetDragEvent& rDTDE ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	try
+ 	{
+@@ -272,7 +272,7 @@ void SAL_CALL DropTargetHelper::DropTargetListener::dragOver( const DropTargetDr
+ 
+ void SAL_CALL DropTargetHelper::DropTargetListener::dragExit( const DropTargetEvent& ) throw( RuntimeException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	try
+ 	{
+diff --git a/svtools/source/notify/cancel.cxx b/svtools/source/notify/cancel.cxx
+index 97c3d31..97bb3f2 100644
+--- svtools/source/notify/cancel.cxx
++++ svtools/source/notify/cancel.cxx
+@@ -38,7 +38,7 @@
+ #define _SFX_CANCEL_CXX
+ #include <svtools/cancel.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <tools/debug.hxx>
+ 
+ #include <svtools/smplhint.hxx>
+@@ -48,7 +48,7 @@
+ #include <rtl/instance.hxx>
+ #endif
+ 
+-namespace { struct lclMutex : public rtl::Static< ::vos::OMutex, lclMutex >{}; }
++namespace { struct lclMutex : public rtl::Static< ::osl::Mutex, lclMutex >{}; }
+ 
+ //=========================================================================
+ 
+@@ -77,7 +77,7 @@ BOOL SfxCancelManager::CanCancel() const
+ */
+ 
+ {
+-    ::vos::OGuard aGuard( lclMutex::get() );
++    osl::MutexGuard aGuard( lclMutex::get() );
+ 	return _aJobs.Count() > 0 || ( _pParent && _pParent->CanCancel() );
+ }
+ 
+@@ -92,7 +92,7 @@ void SfxCancelManager::Cancel( BOOL bDeep )
+ */
+ 
+ {
+-    ::vos::OGuard aGuard( lclMutex::get() );
++    osl::MutexGuard aGuard( lclMutex::get() );
+ 	SfxCancelManagerWeak xWeak( this );
+ 	for ( USHORT n = _aJobs.Count(); n-- && xWeak.Is(); )
+ 		if ( n < _aJobs.Count() )
+@@ -121,7 +121,7 @@ void SfxCancelManager::InsertCancellable( SfxCancellable *pJob )
+ 	}
+ #endif
+ 
+-    ::vos::OClearableGuard aGuard( lclMutex::get() );
++    osl::ClearableMutexGuard aGuard( lclMutex::get() );
+ 	_aJobs.C40_INSERT( SfxCancellable, pJob, _aJobs.Count() );
+ 
+     aGuard.clear();
+@@ -142,7 +142,7 @@ void SfxCancelManager::RemoveCancellable( SfxCancellable *pJob )
+ */
+ 
+ {
+-    ::vos::OClearableGuard aGuard( lclMutex::get() );
++    osl::ClearableMutexGuard aGuard( lclMutex::get() );
+ 	const SfxCancellable *pTmp = pJob;
+     USHORT nPos = _aJobs.GetPos( pTmp );
+     if ( nPos != 0xFFFF )
+diff --git a/svtools/source/numbers/numfmuno.cxx b/svtools/source/numbers/numfmuno.cxx
+index 0cbb8e7..a7a83d6 100644
+--- svtools/source/numbers/numfmuno.cxx
++++ svtools/source/numbers/numfmuno.cxx
+@@ -42,7 +42,7 @@
+ #include <tools/color.hxx>
+ #include <tools/debug.hxx>
+ #include <i18npool/mslangid.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <rtl/ustring.hxx>
+ 
+ #include <com/sun/star/util/Date.hpp>
+@@ -162,7 +162,7 @@ void SAL_CALL SvNumberFormatterServiceObj::attachNumberFormatsSupplier(
+ 							const uno::Reference<util::XNumberFormatsSupplier>& xSupplier )
+ 									throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SvNumberFormatsSupplierObj*	pNew = SvNumberFormatsSupplierObj::getImplementation( xSupplier );
+ 	if (!pNew)
+@@ -179,7 +179,7 @@ uno::Reference<util::XNumberFormatsSupplier> SAL_CALL
+ 							SvNumberFormatterServiceObj::getNumberFormatsSupplier()
+ 									throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return pSupplier;
+ }
+ 
+@@ -187,7 +187,7 @@ sal_Int32 SAL_CALL SvNumberFormatterServiceObj::detectNumberFormat(
+ 									sal_Int32 nKey, const rtl::OUString& aString )
+ 							throw(util::NotNumericException, uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -211,7 +211,7 @@ double SAL_CALL SvNumberFormatterServiceObj::convertStringToNumber(
+ 									sal_Int32 nKey, const rtl::OUString& aString )
+ 							throw(util::NotNumericException, uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	double fRet = 0.0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -234,7 +234,7 @@ double SAL_CALL SvNumberFormatterServiceObj::convertStringToNumber(
+ rtl::OUString SAL_CALL SvNumberFormatterServiceObj::convertNumberToString(
+ 									sal_Int32 nKey, double fValue ) throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	String aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -253,7 +253,7 @@ util::Color SAL_CALL SvNumberFormatterServiceObj::queryColorForNumber( sal_Int32
+ 									double fValue, util::Color aDefaultColor )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	util::Color nRet = aDefaultColor;		// color = INT32
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -275,7 +275,7 @@ util::Color SAL_CALL SvNumberFormatterServiceObj::queryColorForNumber( sal_Int32
+ rtl::OUString SAL_CALL SvNumberFormatterServiceObj::formatString( sal_Int32 nKey,
+ 									const rtl::OUString& aString ) throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	String aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -295,7 +295,7 @@ util::Color SAL_CALL SvNumberFormatterServiceObj::queryColorForString( sal_Int32
+ 									const rtl::OUString& aString,util::Color aDefaultColor )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	util::Color nRet = aDefaultColor;		// color = INT32
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -318,7 +318,7 @@ util::Color SAL_CALL SvNumberFormatterServiceObj::queryColorForString( sal_Int32
+ rtl::OUString SAL_CALL SvNumberFormatterServiceObj::getInputString( sal_Int32 nKey, double fValue )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	String aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -337,7 +337,7 @@ rtl::OUString SAL_CALL SvNumberFormatterServiceObj::convertNumberToPreviewString
+ 									const lang::Locale& nLocale, sal_Bool bAllowEnglish )
+ 							throw(util::MalformedNumberFormatException, uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	String aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -373,7 +373,7 @@ util::Color SAL_CALL SvNumberFormatterServiceObj::queryPreviewColorForNumber(
+ 									util::Color aDefaultColor )
+ 							throw(util::MalformedNumberFormatException, uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	util::Color nRet = aDefaultColor;		// color = INT32
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -450,7 +450,7 @@ SvNumberFormatsObj::~SvNumberFormatsObj()
+ uno::Reference<beans::XPropertySet> SAL_CALL SvNumberFormatsObj::getByKey( sal_Int32 nKey )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+ 	const SvNumberformat* pFormat = pFormatter ? pFormatter->GetEntry(nKey) : NULL;
+@@ -464,7 +464,7 @@ uno::Sequence<sal_Int32> SAL_CALL SvNumberFormatsObj::queryKeys( sal_Int16 nType
+ 									const lang::Locale& nLocale, sal_Bool bCreate )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+ 	if ( pFormatter )
+@@ -490,7 +490,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::queryKey( const rtl::OUString& aFormat,
+ 									const lang::Locale& nLocale, sal_Bool bScan )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -514,7 +514,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::addNew( const rtl::OUString& aFormat,
+ 									const lang::Locale& nLocale )
+ 							throw(util::MalformedNumberFormatException, uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -545,7 +545,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::addNewConverted( const rtl::OUString& aFo
+ 									const lang::Locale& nLocale, const lang::Locale& nNewLocale )
+ 							throw(util::MalformedNumberFormatException, uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -575,7 +575,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::addNewConverted( const rtl::OUString& aFo
+ 
+ void SAL_CALL SvNumberFormatsObj::removeByKey( sal_Int32 nKey ) throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+ 
+ 	if (pFormatter)
+@@ -590,7 +590,7 @@ rtl::OUString SAL_CALL SvNumberFormatsObj::generateFormat( sal_Int32 nBaseKey,
+ 									sal_Bool bRed, sal_Int16 nDecimals, sal_Int16 nLeading )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	String aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -610,7 +610,7 @@ rtl::OUString SAL_CALL SvNumberFormatsObj::generateFormat( sal_Int32 nBaseKey,
+ sal_Int32 SAL_CALL SvNumberFormatsObj::getStandardIndex( const lang::Locale& nLocale )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -628,7 +628,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::getStandardIndex( const lang::Locale& nLo
+ sal_Int32 SAL_CALL SvNumberFormatsObj::getStandardFormat( sal_Int16 nType, const lang::Locale& nLocale )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -649,7 +649,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::getStandardFormat( sal_Int16 nType, const
+ sal_Int32 SAL_CALL SvNumberFormatsObj::getFormatIndex( sal_Int16 nIndex, const lang::Locale& nLocale )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -667,7 +667,7 @@ sal_Int32 SAL_CALL SvNumberFormatsObj::getFormatIndex( sal_Int16 nIndex, const l
+ sal_Bool SAL_CALL SvNumberFormatsObj::isTypeCompatible( sal_Int16 nOldType, sal_Int16 nNewType )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	BOOL bRet = FALSE;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -682,7 +682,7 @@ sal_Bool SAL_CALL SvNumberFormatsObj::isTypeCompatible( sal_Int16 nOldType, sal_
+ sal_Int32 SAL_CALL SvNumberFormatsObj::getFormatForLocale( sal_Int32 nKey, const lang::Locale& nLocale )
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	INT32 nRet = 0;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -741,7 +741,7 @@ SvNumberFormatObj::~SvNumberFormatObj()
+ uno::Reference<beans::XPropertySetInfo> SAL_CALL SvNumberFormatObj::getPropertySetInfo()
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	static uno::Reference<beans::XPropertySetInfo> aRef =
+ 		new SfxItemPropertySetInfo( lcl_GetNumberFormatPropertyMap() );
+ 	return aRef;
+@@ -760,7 +760,7 @@ uno::Any SAL_CALL SvNumberFormatObj::getPropertyValue( const rtl::OUString& aPro
+ 				throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+ 						uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Any aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+@@ -890,7 +890,7 @@ void SAL_CALL SvNumberFormatObj::removeVetoableChangeListener( const rtl::OUStri
+ uno::Sequence<beans::PropertyValue> SAL_CALL SvNumberFormatObj::getPropertyValues()
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+ 	const SvNumberformat* pFormat = pFormatter ? pFormatter->GetEntry(nKey) : NULL;
+@@ -1002,7 +1002,7 @@ SvNumberFormatSettingsObj::~SvNumberFormatSettingsObj()
+ uno::Reference<beans::XPropertySetInfo> SAL_CALL SvNumberFormatSettingsObj::getPropertySetInfo()
+ 							throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	static uno::Reference<beans::XPropertySetInfo> aRef =
+ 		new SfxItemPropertySetInfo( lcl_GetNumberSettingsPropertyMap() );
+ 	return aRef;
+@@ -1014,7 +1014,7 @@ void SAL_CALL SvNumberFormatSettingsObj::setPropertyValue( const rtl::OUString&
+ 						lang::IllegalArgumentException, lang::WrappedTargetException,
+ 						uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+ 	if (pFormatter)
+@@ -1057,7 +1057,7 @@ uno::Any SAL_CALL SvNumberFormatSettingsObj::getPropertyValue( const rtl::OUStri
+ 				throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+ 						uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Any aRet;
+ 	SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
+diff --git a/svtools/source/numbers/numuno.cxx b/svtools/source/numbers/numuno.cxx
+index 178ee7e..e2af8d2 100644
+--- svtools/source/numbers/numuno.cxx
++++ svtools/source/numbers/numuno.cxx
+@@ -43,7 +43,7 @@
+ #include <vcl/svapp.hxx>
+ #include <tools/color.hxx>
+ #include <tools/debug.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/mutex.hxx>
+ #include <rtl/uuid.h>
+ 
+@@ -108,7 +108,7 @@ void SvNumberFormatsSupplierObj::SettingsChanged()
+ uno::Reference<beans::XPropertySet> SAL_CALL SvNumberFormatsSupplierObj::getNumberFormatSettings()
+ 										throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	return new SvNumberFormatSettingsObj( this );
+ }
+@@ -116,7 +116,7 @@ uno::Reference<beans::XPropertySet> SAL_CALL SvNumberFormatsSupplierObj::getNumb
+ uno::Reference<util::XNumberFormats> SAL_CALL SvNumberFormatsSupplierObj::getNumberFormats()
+ 										throw(uno::RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	return new SvNumberFormatsObj( this );
+ }
+diff --git a/svtools/source/numbers/supservs.cxx b/svtools/source/numbers/supservs.cxx
+index 36f0699..c46b8bd 100644
+--- svtools/source/numbers/supservs.cxx
++++ svtools/source/numbers/supservs.cxx
+@@ -50,8 +50,8 @@
+ #ifndef _TOOLS_DEBUG_HXX
+ #include <tools/debug.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -71,7 +71,6 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::io;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::util;
+-using namespace ::vos;
+ using namespace ::utl;
+ 
+ #define PERSISTENT_SERVICE_NAME		::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatsSupplier");
+@@ -117,7 +116,7 @@ Any SAL_CALL SvNumberFormatsSupplierServiceObject::queryAggregation( const Type&
+ //-------------------------------------------------------------------------
+ void SAL_CALL SvNumberFormatsSupplierServiceObject::initialize( const Sequence< Any >& _rArguments ) throw(Exception, RuntimeException)
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		// the mutex of the base class .... hope we have a real (i.e. own) mutex sometimes
+ 
+ 	DBG_ASSERT(m_pOwnFormatter == NULL,
+@@ -192,7 +191,7 @@ Sequence< ::rtl::OUString > SAL_CALL SvNumberFormatsSupplierServiceObject::getSu
+ //-------------------------------------------------------------------------
+ void SAL_CALL SvNumberFormatsSupplierServiceObject::write( const Reference< XObjectOutputStream >& _rxOutStream ) throw(IOException, RuntimeException)
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	implEnsureFormatter();
+ 
+ 	Reference< XOutputStream > xStream(_rxOutStream.get());
+@@ -205,7 +204,7 @@ void SAL_CALL SvNumberFormatsSupplierServiceObject::write( const Reference< XObj
+ //-------------------------------------------------------------------------
+ void SAL_CALL SvNumberFormatsSupplierServiceObject::read( const Reference< XObjectInputStream >& _rxInStream ) throw(IOException, RuntimeException)
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	implEnsureFormatter();
+ 
+ 	Reference< XInputStream > xStream(_rxInStream.get());
+@@ -217,7 +216,7 @@ void SAL_CALL SvNumberFormatsSupplierServiceObject::read( const Reference< XObje
+ //-------------------------------------------------------------------------
+ Reference< XPropertySet > SAL_CALL SvNumberFormatsSupplierServiceObject::getNumberFormatSettings() throw(RuntimeException)
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	implEnsureFormatter();
+ 	return SvNumberFormatsSupplierObj::getNumberFormatSettings();
+ }
+@@ -225,7 +224,7 @@ Reference< XPropertySet > SAL_CALL SvNumberFormatsSupplierServiceObject::getNumb
+ //-------------------------------------------------------------------------
+ Reference< XNumberFormats > SAL_CALL SvNumberFormatsSupplierServiceObject::getNumberFormats() throw(RuntimeException)
+ {
+-	OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	implEnsureFormatter();
+ 	return SvNumberFormatsSupplierObj::getNumberFormats();
+ }
+diff --git a/svtools/source/svdde/ddecli.cxx b/svtools/source/svdde/ddecli.cxx
+index e8706b7..e498603 100644
+--- svtools/source/svdde/ddecli.cxx
++++ svtools/source/svdde/ddecli.cxx
+@@ -49,8 +49,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ // static DWORD        hDdeInst  = NULL;
+diff --git a/svtools/source/uno/contextmenuhelper.cxx b/svtools/source/uno/contextmenuhelper.cxx
+index 3db8922..69b7654 100644
+--- svtools/source/uno/contextmenuhelper.cxx
++++ svtools/source/uno/contextmenuhelper.cxx
+@@ -54,7 +54,7 @@
+ #include <osl/conditn.hxx> 
+ #include <cppuhelper/weak.hxx>
+ #include <comphelper/processfactory.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/image.hxx>
+ #include <toolkit/unohlp.hxx>
+@@ -146,7 +146,7 @@ void SAL_CALL StateEventHelper::disposing(
+     const lang::EventObject& )
+ throw ( uno::RuntimeException )
+ {
+-    vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+     m_xDispatchProvider.clear();
+     m_xURLTransformer.clear();
+     m_aCondition.set();
+@@ -156,7 +156,7 @@ void SAL_CALL StateEventHelper::statusChanged(
+     const frame::FeatureStateEvent& Event )
+ throw ( uno::RuntimeException )
+ {
+-    vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+     m_bCurrentCommandEnabled = Event.IsEnabled;
+     m_aCondition.set();
+ }
+@@ -170,7 +170,7 @@ bool StateEventHelper::isCommandEnabled()
+     uno::Reference< frame::XDispatch > xDispatch;
+     util::URL                          aTargetURL;
+     {
+-        vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+         if ( m_xDispatchProvider.is() && m_xURLTransformer.is() )
+         {
+             ::rtl::OUString aSelf( RTL_CONSTASCII_USTRINGPARAM( "_self" ));
+@@ -212,7 +212,7 @@ bool StateEventHelper::isCommandEnabled()
+         {
+         }
+ 
+-        vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+         bResult = m_bCurrentCommandEnabled;
+     }
+     
+@@ -284,7 +284,7 @@ ContextMenuHelper::completeAndExecute(
+     const Point& aPos, 
+     PopupMenu& rPopupMenu )
+ {
+-    vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+     
+     associateUIConfigurationManagers();
+     completeMenuProperties( &rPopupMenu );
+@@ -297,7 +297,7 @@ ContextMenuHelper::completeAndExecute(
+     const Point& aPos, 
+     const uno::Reference< awt::XPopupMenu >& xPopupMenu )
+ {
+-    vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 
+     VCLXMenu* pXMenu = VCLXMenu::GetImplementation( xPopupMenu );
+     if ( pXMenu )
+diff --git a/svtools/source/uno/framestatuslistener.cxx b/svtools/source/uno/framestatuslistener.cxx
+index a6064f2..27eb8cc 100644
+--- svtools/source/uno/framestatuslistener.cxx
++++ svtools/source/uno/framestatuslistener.cxx
+@@ -48,8 +48,8 @@
+ #include <com/sun/star/lang/DisposedException.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -85,13 +85,13 @@ FrameStatusListener::~FrameStatusListener()
+ 
+ Reference< XFrame > FrameStatusListener::getFrameInterface() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     return m_xFrame;
+ }
+ 
+ Reference< XMultiServiceFactory > FrameStatusListener::getServiceManager() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     return m_xServiceManager;
+ }
+ 
+@@ -129,7 +129,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ {
+     Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     if ( m_bDisposed )
+         throw DisposedException();
+     
+@@ -179,7 +179,7 @@ throw ( RuntimeException )
+ {
+     Reference< XInterface > xSource( Source.Source );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+     while ( pIter != m_aListenerMap.end() )
+@@ -216,7 +216,7 @@ void FrameStatusListener::addStatusListener( const rtl::OUString& aCommandURL )
+     com::sun::star::util::URL    aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+         
+         // Already in the list of status listener. Do nothing.
+@@ -279,7 +279,7 @@ void FrameStatusListener::addStatusListener( const rtl::OUString& aCommandURL )
+ 
+ void FrameStatusListener::removeStatusListener( const rtl::OUString& aCommandURL )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+     if ( pIter != m_aListenerMap.end() )
+@@ -312,7 +312,7 @@ void FrameStatusListener::bindListener()
+     Reference< XStatusListener > xStatusListener;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( !m_bInitialized )
+             return;
+@@ -383,7 +383,7 @@ void FrameStatusListener::bindListener()
+ 
+ void FrameStatusListener::unbindListener()
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     if ( !m_bInitialized )
+         return;
+@@ -429,7 +429,7 @@ void FrameStatusListener::updateStatus( const rtl::OUString aCommandURL )
+     com::sun::star::util::URL aTargetURL;
+     
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( !m_bInitialized )
+             return;
+diff --git a/svtools/source/uno/generictoolboxcontroller.cxx b/svtools/source/uno/generictoolboxcontroller.cxx
+index 6d077a2..3349498 100644
+--- svtools/source/uno/generictoolboxcontroller.cxx
++++ svtools/source/uno/generictoolboxcontroller.cxx
+@@ -71,8 +71,8 @@
+ //	other includes
+ //_________________________________________________________________________________________________________________
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -121,7 +121,7 @@ GenericToolboxController::~GenericToolboxController()
+ void SAL_CALL GenericToolboxController::dispose()
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     svt::ToolboxController::dispose();
+ 
+@@ -137,7 +137,7 @@ throw ( RuntimeException )
+     OUString                     aCommandURL;
+     
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -178,7 +178,7 @@ throw ( RuntimeException )
+ void GenericToolboxController::statusChanged( const FeatureStateEvent& Event ) 
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+diff --git a/svtools/source/uno/genericunodialog.cxx b/svtools/source/uno/genericunodialog.cxx
+index ea18643..c41a135 100644
+--- svtools/source/uno/genericunodialog.cxx
++++ svtools/source/uno/genericunodialog.cxx
+@@ -66,8 +66,8 @@
+ #endif
+ 
+ // --- needed because of the solar mutex
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -272,7 +272,7 @@ bool OGenericUnoDialog::impl_ensureDialog_lck()
+ sal_Int16 SAL_CALL OGenericUnoDialog::execute(  ) throw(RuntimeException)
+ {
+     // both creation and execution of the dialog must be guarded with the SolarMutex, so be generous here
+-	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Dialog* pDialogToExecute = NULL;
+ 	// create the dialog, if neccessary
+@@ -377,7 +377,7 @@ void SAL_CALL OGenericUnoDialog::initialize( const Sequence< Any >& aArguments )
+ //-------------------------------------------------------------------------
+ void OGenericUnoDialog::destroyDialog()
+ {
+-	::vos::OGuard aSolarGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	delete m_pDialog;
+ 	m_pDialog = NULL;
+ }
+diff --git a/svtools/source/uno/statusbarcontroller.cxx b/svtools/source/uno/statusbarcontroller.cxx
+index b88a4a3..dad24a3 100644
+--- svtools/source/uno/statusbarcontroller.cxx
++++ svtools/source/uno/statusbarcontroller.cxx
+@@ -56,8 +56,8 @@
+ #include <com/sun/star/frame/XLayoutManager.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -122,19 +122,19 @@ StatusbarController::~StatusbarController()
+ 
+ Reference< XFrame > StatusbarController::getFrameInterface() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     return m_xFrame;
+ }
+ 
+ Reference< XMultiServiceFactory > StatusbarController::getServiceManager() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     return m_xServiceManager;
+ }
+ 
+ Reference< XLayoutManager > StatusbarController::getLayoutManager() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     Reference< XLayoutManager > xLayoutManager;
+     Reference< XPropertySet > xPropSet( m_xFrame, UNO_QUERY );
+     if ( xPropSet.is() )
+@@ -155,7 +155,7 @@ Reference< XLayoutManager > StatusbarController::getLayoutManager() const
+ 
+ Reference< XURLTransformer > StatusbarController::getURLTransformer() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     if ( !m_xURLTransformer.is() && m_xServiceManager.is() )
+     {
+         m_xURLTransformer = Reference< XURLTransformer >(
+@@ -208,7 +208,7 @@ throw ( Exception, RuntimeException )
+     bool bInitialized( true );
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -218,7 +218,7 @@ throw ( Exception, RuntimeException )
+ 
+     if ( !bInitialized )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         m_bInitialized = sal_True;
+ 
+         PropertyValue aPropValue;
+@@ -248,7 +248,7 @@ void SAL_CALL StatusbarController::update()
+ throw ( RuntimeException )
+ {
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         if ( m_bDisposed )
+             throw DisposedException();
+     }
+@@ -264,7 +264,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         if ( m_bDisposed )
+             throw DisposedException();
+     }
+@@ -272,7 +272,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     com::sun::star::lang::EventObject aEvent( xThis );
+     m_aListenerContainer.disposeAndClear( aEvent );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+     Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+     URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+@@ -325,7 +325,7 @@ throw ( RuntimeException )
+ {
+     Reference< XInterface > xSource( Source.Source );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+@@ -349,7 +349,7 @@ throw ( RuntimeException )
+ void SAL_CALL StatusbarController::statusChanged( const FeatureStateEvent& Event )
+ throw ( RuntimeException )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+@@ -414,7 +414,7 @@ throw (::com::sun::star::uno::RuntimeException)
+ 
+ void SAL_CALL StatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+@@ -430,7 +430,7 @@ void StatusbarController::addStatusListener( const rtl::OUString& aCommandURL )
+     com::sun::star::util::URL    aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+ 
+         // Already in the list of status listener. Do nothing.
+@@ -491,7 +491,7 @@ void StatusbarController::addStatusListener( const rtl::OUString& aCommandURL )
+ 
+ void StatusbarController::removeStatusListener( const rtl::OUString& aCommandURL )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+     if ( pIter != m_aListenerMap.end() )
+@@ -522,7 +522,7 @@ void StatusbarController::bindListener()
+     Reference< XStatusListener > xStatusListener;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( !m_bInitialized )
+             return;
+@@ -611,7 +611,7 @@ void StatusbarController::bindListener()
+ 
+ void StatusbarController::unbindListener()
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( !m_bInitialized )
+         return;
+@@ -650,7 +650,7 @@ void StatusbarController::unbindListener()
+ 
+ sal_Bool StatusbarController::isBound() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( !m_bInitialized )
+         return sal_False;
+@@ -674,7 +674,7 @@ void StatusbarController::updateStatus( const rtl::OUString aCommandURL )
+     com::sun::star::util::URL aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+         if ( !m_bInitialized )
+             return;
+@@ -715,7 +715,7 @@ void StatusbarController::execute( const ::com::sun::star::uno::Sequence< ::com:
+     rtl::OUString                aCommandURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -757,7 +757,7 @@ void StatusbarController::execute(
+     com::sun::star::util::URL   aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+diff --git a/svtools/source/uno/toolboxcontroller.cxx b/svtools/source/uno/toolboxcontroller.cxx
+index 3b590fb..fbcc94d 100644
+--- svtools/source/uno/toolboxcontroller.cxx
++++ svtools/source/uno/toolboxcontroller.cxx
+@@ -60,8 +60,8 @@
+ #include <com/sun/star/frame/XLayoutManager.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -142,13 +142,13 @@ ToolboxController::~ToolboxController()
+ 
+ Reference< XFrame > ToolboxController::getFrameInterface() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     return m_xFrame;
+ }
+ 
+ Reference< XMultiServiceFactory > ToolboxController::getServiceManager() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     return m_xServiceManager;
+ }
+ 
+@@ -157,7 +157,7 @@ Reference< XLayoutManager > ToolboxController::getLayoutManager() const
+     Reference< XLayoutManager > xLayoutManager;
+     Reference< XPropertySet > xPropSet; 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         xPropSet = Reference< XPropertySet >( m_xFrame, UNO_QUERY );
+     }
+ 
+@@ -215,7 +215,7 @@ throw ( Exception, RuntimeException )
+     bool bInitialized( true );
+ 
+     { 
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -225,7 +225,7 @@ throw ( Exception, RuntimeException )
+ 
+     if ( !bInitialized )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         m_bInitialized = sal_True;
+         
+         PropertyValue aPropValue;
+@@ -264,7 +264,7 @@ void SAL_CALL ToolboxController::update()
+ throw ( RuntimeException )
+ {
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         if ( m_bDisposed )
+             throw DisposedException();
+     }
+@@ -280,7 +280,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         if ( m_bDisposed )
+             throw DisposedException();
+     }
+@@ -288,7 +288,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     com::sun::star::lang::EventObject aEvent( xThis );
+     m_aListenerContainer.disposeAndClear( aEvent );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+     URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+     while ( pIter != m_aListenerMap.end() )
+@@ -333,7 +333,7 @@ throw ( RuntimeException )
+ {
+     Reference< XInterface > xSource( Source.Source );
+ 
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( m_bDisposed )
+         return;
+@@ -368,7 +368,7 @@ throw (::com::sun::star::uno::RuntimeException)
+     OUString                     aCommandURL;
+     
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( m_bDisposed )
+             throw DisposedException();
+@@ -437,7 +437,7 @@ void ToolboxController::addStatusListener( const rtl::OUString& aCommandURL )
+     com::sun::star::util::URL    aTargetURL;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+         
+         // Already in the list of status listener. Do nothing.
+@@ -498,7 +498,7 @@ void ToolboxController::addStatusListener( const rtl::OUString& aCommandURL )
+ 
+ void ToolboxController::removeStatusListener( const rtl::OUString& aCommandURL )
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     URLToDispatchMap::iterator pIter = m_aListenerMap.find( aCommandURL );
+     if ( pIter != m_aListenerMap.end() )
+@@ -529,7 +529,7 @@ void ToolboxController::bindListener()
+     Reference< XStatusListener > xStatusListener;
+ 
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( !m_bInitialized )
+             return;
+@@ -618,7 +618,7 @@ void ToolboxController::bindListener()
+ 
+ void ToolboxController::unbindListener()
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     
+     if ( !m_bInitialized )
+         return;
+@@ -657,7 +657,7 @@ void ToolboxController::unbindListener()
+ 
+ sal_Bool ToolboxController::isBound() const
+ {
+-    vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+ 
+     if ( !m_bInitialized )
+         return sal_False;
+@@ -681,7 +681,7 @@ sal_Bool ToolboxController::isHighContrast() const
+     Reference< XWindow > xWindow = m_pImpl->m_xParentWindow;
+     if ( xWindow.is() )
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow )
+ 	        bHighContrast = ( ((ToolBox *)pWindow)->GetBackground().GetColor().IsDark() );
+@@ -702,7 +702,7 @@ void ToolboxController::updateStatus( const rtl::OUString aCommandURL )
+     com::sun::star::util::URL aTargetURL;
+     
+     {
+-        vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aSolarMutexGuard( Application::GetSolarMutex() );
+         
+         if ( !m_bInitialized )
+             return;
+diff --git a/svtools/source/uno/treecontrolpeer.cxx b/svtools/source/uno/treecontrolpeer.cxx
+index 050bb5e..83face7 100644
+--- svtools/source/uno/treecontrolpeer.cxx
++++ svtools/source/uno/treecontrolpeer.cxx
+@@ -511,7 +511,7 @@ UnoTreeListBoxImpl& TreeControlPeer::getTreeListBoxOrThrow() const throw (Runtim
+ 
+ void TreeControlPeer::ChangeNodesSelection( const Any& rSelection, bool bSelect, bool bSetSelection ) throw( RuntimeException, IllegalArgumentException )
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 
+@@ -573,7 +573,7 @@ void TreeControlPeer::ChangeNodesSelection( const Any& rSelection, bool bSelect,
+ 
+ sal_Bool SAL_CALL TreeControlPeer::select( const Any& rSelection ) throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	ChangeNodesSelection( rSelection, true, true );
+ 	return sal_True;
+ }
+@@ -582,7 +582,7 @@ sal_Bool SAL_CALL TreeControlPeer::select( const Any& rSelection ) throw (Illega
+ 
+ Any SAL_CALL TreeControlPeer::getSelection() throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 
+@@ -649,7 +649,7 @@ void SAL_CALL TreeControlPeer::removeSelection( const Any& rSelection ) throw (I
+ 
+ void SAL_CALL TreeControlPeer::clearSelection() throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	getTreeListBoxOrThrow().SelectAll( FALSE );
+ }
+ 
+@@ -657,7 +657,7 @@ void SAL_CALL TreeControlPeer::clearSelection() throw (RuntimeException)
+ 
+ sal_Int32 SAL_CALL TreeControlPeer::getSelectionCount() throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	return getTreeListBoxOrThrow().GetSelectionCount();
+ }
+ 
+@@ -703,7 +703,7 @@ Any SAL_CALL TreeSelectionEnumeration::nextElement() throw (NoSuchElementExcepti
+ 
+ Reference< XEnumeration > SAL_CALL TreeControlPeer::createSelectionEnumeration() throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	
+@@ -727,7 +727,7 @@ Reference< XEnumeration > SAL_CALL TreeControlPeer::createSelectionEnumeration()
+ 
+ Reference< XEnumeration > SAL_CALL TreeControlPeer::createReverseSelectionEnumeration() throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	
+@@ -753,7 +753,7 @@ Reference< XEnumeration > SAL_CALL TreeControlPeer::createReverseSelectionEnumer
+ 
+ OUString SAL_CALL TreeControlPeer::getDefaultExpandedGraphicURL() throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	return msDefaultExpandedGraphicURL;
+ }
+ 
+@@ -761,7 +761,7 @@ OUString SAL_CALL TreeControlPeer::getDefaultExpandedGraphicURL() throw (::com::
+ 
+ void SAL_CALL TreeControlPeer::setDefaultExpandedGraphicURL( const ::rtl::OUString& sDefaultExpandedGraphicURL ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	if( msDefaultExpandedGraphicURL != sDefaultExpandedGraphicURL )
+ 	{
+ 		if( sDefaultExpandedGraphicURL.getLength() )
+@@ -791,7 +791,7 @@ void SAL_CALL TreeControlPeer::setDefaultExpandedGraphicURL( const ::rtl::OUStri
+ 
+ OUString SAL_CALL TreeControlPeer::getDefaultCollapsedGraphicURL() throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	return msDefaultCollapsedGraphicURL;
+ }
+ 
+@@ -799,7 +799,7 @@ OUString SAL_CALL TreeControlPeer::getDefaultCollapsedGraphicURL() throw (::com:
+ 
+ void SAL_CALL TreeControlPeer::setDefaultCollapsedGraphicURL( const ::rtl::OUString& sDefaultCollapsedGraphicURL ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	if( msDefaultCollapsedGraphicURL != sDefaultCollapsedGraphicURL )
+ 	{
+ 		if( sDefaultCollapsedGraphicURL.getLength() )
+@@ -829,7 +829,7 @@ void SAL_CALL TreeControlPeer::setDefaultCollapsedGraphicURL( const ::rtl::OUStr
+ 
+ sal_Bool SAL_CALL TreeControlPeer::isNodeExpanded( const Reference< XTreeNode >& xNode ) throw (RuntimeException, IllegalArgumentException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	UnoTreeListEntry* pEntry = getEntry( xNode );
+@@ -840,7 +840,7 @@ sal_Bool SAL_CALL TreeControlPeer::isNodeExpanded( const Reference< XTreeNode >&
+ 
+ sal_Bool SAL_CALL TreeControlPeer::isNodeCollapsed( const Reference< XTreeNode >& xNode ) throw (RuntimeException, IllegalArgumentException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	return !isNodeExpanded( xNode );
+ }
+ 
+@@ -848,7 +848,7 @@ sal_Bool SAL_CALL TreeControlPeer::isNodeCollapsed( const Reference< XTreeNode >
+ 
+ void SAL_CALL TreeControlPeer::makeNodeVisible( const Reference< XTreeNode >& xNode ) throw (RuntimeException, ExpandVetoException, IllegalArgumentException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	UnoTreeListEntry* pEntry = getEntry( xNode );
+@@ -860,7 +860,7 @@ void SAL_CALL TreeControlPeer::makeNodeVisible( const Reference< XTreeNode >& xN
+ 
+ sal_Bool SAL_CALL TreeControlPeer::isNodeVisible( const Reference< XTreeNode >& xNode ) throw (RuntimeException, IllegalArgumentException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	UnoTreeListEntry* pEntry = getEntry( xNode );
+@@ -871,7 +871,7 @@ sal_Bool SAL_CALL TreeControlPeer::isNodeVisible( const Reference< XTreeNode >&
+ 
+ void SAL_CALL TreeControlPeer::expandNode( const Reference< XTreeNode >& xNode ) throw (RuntimeException, ExpandVetoException, IllegalArgumentException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	UnoTreeListEntry* pEntry = getEntry( xNode );
+@@ -883,7 +883,7 @@ void SAL_CALL TreeControlPeer::expandNode( const Reference< XTreeNode >& xNode )
+ 
+ void SAL_CALL TreeControlPeer::collapseNode( const Reference< XTreeNode >& xNode ) throw (RuntimeException, ExpandVetoException, IllegalArgumentException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	UnoTreeListEntry* pEntry = getEntry( xNode );
+@@ -909,7 +909,7 @@ void SAL_CALL TreeControlPeer::removeTreeExpansionListener( const Reference< XTr
+ 
+ Reference< XTreeNode > SAL_CALL TreeControlPeer::getNodeForLocation( sal_Int32 x, sal_Int32 y ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 
+@@ -927,7 +927,7 @@ Reference< XTreeNode > SAL_CALL TreeControlPeer::getNodeForLocation( sal_Int32 x
+ 
+ Reference< XTreeNode > SAL_CALL TreeControlPeer::getClosestNodeForLocation( sal_Int32 x, sal_Int32 y ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 
+@@ -945,7 +945,7 @@ Reference< XTreeNode > SAL_CALL TreeControlPeer::getClosestNodeForLocation( sal_
+ 
+ sal_Bool SAL_CALL TreeControlPeer::isEditing(  ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	return rTree.IsEditingActive() ? sal_True : sal_False;
+@@ -955,7 +955,7 @@ sal_Bool SAL_CALL TreeControlPeer::isEditing(  ) throw (RuntimeException)
+ 
+ sal_Bool SAL_CALL TreeControlPeer::stopEditing() throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	if( rTree.IsEditingActive() )
+@@ -973,7 +973,7 @@ sal_Bool SAL_CALL TreeControlPeer::stopEditing() throw (RuntimeException)
+ 
+ void SAL_CALL TreeControlPeer::cancelEditing(  ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	rTree.EndEditing(FALSE);
+@@ -983,7 +983,7 @@ void SAL_CALL TreeControlPeer::cancelEditing(  ) throw (RuntimeException)
+ 
+ void SAL_CALL TreeControlPeer::startEditingAtNode( const Reference< XTreeNode >& xNode ) throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	UnoTreeListEntry* pEntry = getEntry( xNode );
+@@ -1053,7 +1053,7 @@ bool TreeControlPeer::onEditedEntry( UnoTreeListEntry* pEntry, const XubString&
+ 
+ void SAL_CALL TreeControlPeer::treeNodesChanged( const ::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mnEditLock != 0 )
+ 		return;
+@@ -1063,7 +1063,7 @@ void SAL_CALL TreeControlPeer::treeNodesChanged( const ::com::sun::star::awt::tr
+ 
+ void SAL_CALL TreeControlPeer::treeNodesInserted( const ::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mnEditLock != 0 )
+ 		return;
+@@ -1073,7 +1073,7 @@ void SAL_CALL TreeControlPeer::treeNodesInserted( const ::com::sun::star::awt::t
+ 
+ void SAL_CALL TreeControlPeer::treeNodesRemoved( const ::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mnEditLock != 0 )
+ 		return;
+@@ -1083,7 +1083,7 @@ void SAL_CALL TreeControlPeer::treeNodesRemoved( const ::com::sun::star::awt::tr
+ 
+ void SAL_CALL TreeControlPeer::treeStructureChanged( const ::com::sun::star::awt::tree::TreeDataModelEvent& rEvent ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mnEditLock != 0 )
+ 		return;
+@@ -1253,7 +1253,7 @@ OUString TreeControlPeer::getEntryString( const Any& rValue )
+ void SAL_CALL TreeControlPeer::disposing( const ::com::sun::star::lang::EventObject& ) throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	// model is disposed, so we clear our tree
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 	rTree.Clear();
+ 	mxDataModel.clear();
+@@ -1293,7 +1293,7 @@ void TreeControlPeer::onChangeDataModel( UnoTreeListBoxImpl& rTree, const Refere
+ 
+ ::com::sun::star::awt::Size TreeControlPeer::getMinimumSize() throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz;
+ /* todo
+@@ -1311,7 +1311,7 @@ void TreeControlPeer::onChangeDataModel( UnoTreeListBoxImpl& rTree, const Refere
+ 
+ ::com::sun::star::awt::Size TreeControlPeer::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz = rNewSize;
+ /* todo
+@@ -1328,7 +1328,7 @@ void TreeControlPeer::onChangeDataModel( UnoTreeListBoxImpl& rTree, const Refere
+ 
+ void TreeControlPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& aValue) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	UnoTreeListBoxImpl& rTree = getTreeListBoxOrThrow();
+ 
+@@ -1416,7 +1416,7 @@ void TreeControlPeer::setProperty( const ::rtl::OUString& PropertyName, const An
+ 
+ Any TreeControlPeer::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	const sal_uInt16 nPropId = GetPropertyId( PropertyName );
+ 	if( (nPropId >= BASEPROPERTY_TREE_START) && (nPropId <= BASEPROPERTY_TREE_END) )
+diff --git a/svtools/source/uno/unoiface.cxx b/svtools/source/uno/unoiface.cxx
+index 2154903..de916b7 100644
+--- svtools/source/uno/unoiface.cxx
++++ svtools/source/uno/unoiface.cxx
+@@ -240,7 +240,7 @@ void VCLXMultiLineEdit::removeTextListener( const ::com::sun::star::uno::Referen
+ 
+ void VCLXMultiLineEdit::setText( const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
+ 	if ( pEdit )
+@@ -263,7 +263,7 @@ void VCLXMultiLineEdit::setText( const ::rtl::OUString& aText ) throw(::com::sun
+ 
+ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
+ 	if ( pEdit )
+@@ -275,7 +275,7 @@ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel
+ 
+ ::rtl::OUString VCLXMultiLineEdit::getText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
+@@ -286,7 +286,7 @@ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel
+ 
+ ::rtl::OUString VCLXMultiLineEdit::getSelectedText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+@@ -298,7 +298,7 @@ void VCLXMultiLineEdit::insertText( const ::com::sun::star::awt::Selection& rSel
+ 
+ void VCLXMultiLineEdit::setSelection( const ::com::sun::star::awt::Selection& aSelection ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+ 	if ( pMultiLineEdit )
+@@ -309,7 +309,7 @@ void VCLXMultiLineEdit::setSelection( const ::com::sun::star::awt::Selection& aS
+ 
+ ::com::sun::star::awt::Selection VCLXMultiLineEdit::getSelection() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Selection aSel;
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+@@ -323,7 +323,7 @@ void VCLXMultiLineEdit::setSelection( const ::com::sun::star::awt::Selection& aS
+ 
+ sal_Bool VCLXMultiLineEdit::isEditable() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+ 	return ( pMultiLineEdit && !pMultiLineEdit->IsReadOnly() && pMultiLineEdit->IsEnabled() ) ? sal_True : sal_False;
+@@ -331,7 +331,7 @@ sal_Bool VCLXMultiLineEdit::isEditable() throw(::com::sun::star::uno::RuntimeExc
+ 
+ void VCLXMultiLineEdit::setEditable( sal_Bool bEditable ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+ 	if ( pMultiLineEdit )
+@@ -340,7 +340,7 @@ void VCLXMultiLineEdit::setEditable( sal_Bool bEditable ) throw(::com::sun::star
+ 
+ void VCLXMultiLineEdit::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+ 	if ( pMultiLineEdit )
+@@ -349,7 +349,7 @@ void VCLXMultiLineEdit::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::
+ 
+ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*) GetWindow();
+ 	return pMultiLineEdit ? (sal_Int16)pMultiLineEdit->GetMaxTextLen() : (sal_Int16)0;
+@@ -357,7 +357,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
+ 
+ ::rtl::OUString VCLXMultiLineEdit::getTextLines() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	MultiLineEdit* pEdit = (MultiLineEdit*)GetWindow();
+@@ -368,7 +368,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
+ 
+ ::com::sun::star::awt::Size VCLXMultiLineEdit::getMinimumSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz;
+ 	MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
+@@ -384,7 +384,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
+ 
+ ::com::sun::star::awt::Size VCLXMultiLineEdit::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz = rNewSize;
+ 	MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
+@@ -395,7 +395,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
+ 
+ ::com::sun::star::awt::Size VCLXMultiLineEdit::getMinimumSize( sal_Int16 nCols, sal_Int16 nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz;
+ 	MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
+@@ -406,7 +406,7 @@ sal_Int16 VCLXMultiLineEdit::getMaxTextLen() throw(::com::sun::star::uno::Runtim
+ 
+ void VCLXMultiLineEdit::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	nCols = nLines = 0;
+ 	MultiLineEdit* pEdit = (MultiLineEdit*) GetWindow();
+@@ -443,7 +443,7 @@ void VCLXMultiLineEdit::ProcessWindowEvent( const VclWindowEvent& rVclWindowEven
+ 
+ void VCLXMultiLineEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*)GetWindow();
+ 	if ( pMultiLineEdit )
+@@ -505,7 +505,7 @@ void VCLXMultiLineEdit::setProperty( const ::rtl::OUString& PropertyName, const
+ 
+ ::com::sun::star::uno::Any VCLXMultiLineEdit::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	MultiLineEdit* pMultiLineEdit = (MultiLineEdit*)GetWindow();
+@@ -549,7 +549,7 @@ void VCLXMultiLineEdit::setProperty( const ::rtl::OUString& PropertyName, const
+ 
+ void SAL_CALL VCLXMultiLineEdit::setFocus(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     // don't grab the focus if we already have it. Reason is that the only thing which the edit
+     // does is forwarding the focus to it's text window. This text window then does a "select all".
+@@ -598,7 +598,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXFileDialog::setPath( const ::rtl::OUString& rPath )
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileDialog* pDlg = (FileDialog*)GetWindow();
+ 	if ( pDlg )
+@@ -607,7 +607,7 @@ void VCLXFileDialog::setPath( const ::rtl::OUString& rPath )
+ 
+ ::rtl::OUString VCLXFileDialog::getPath()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aPath;
+ 	FileDialog* pDlg = (FileDialog*)GetWindow();
+@@ -618,7 +618,7 @@ void VCLXFileDialog::setPath( const ::rtl::OUString& rPath )
+ 
+ void VCLXFileDialog::setFilters( const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rFilterNames, const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rMasks )
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileDialog* pDlg = (FileDialog*)GetWindow();
+ 	if ( pDlg )
+@@ -633,7 +633,7 @@ void VCLXFileDialog::setFilters( const ::com::sun::star::uno::Sequence< ::rtl::O
+ 
+ void VCLXFileDialog::setCurrentFilter( const ::rtl::OUString& rFilterName )
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileDialog* pDlg = (FileDialog*)GetWindow();
+ 	if ( pDlg )
+@@ -642,7 +642,7 @@ void VCLXFileDialog::setCurrentFilter( const ::rtl::OUString& rFilterName )
+ 
+ ::rtl::OUString VCLXFileDialog::getCurrentFilter()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aFilter;
+ 	FileDialog* pDlg = (FileDialog*)GetWindow();
+@@ -684,7 +684,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void SAL_CALL VCLXFileControl::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pControl = (FileControl*)GetWindow();
+ 	if ( pControl )
+@@ -734,7 +734,7 @@ void VCLXFileControl::removeTextListener( const ::com::sun::star::uno::Reference
+ 
+ void VCLXFileControl::setText( const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -749,7 +749,7 @@ void VCLXFileControl::setText( const ::rtl::OUString& aText ) throw(::com::sun::
+ 
+ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel, const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+ 	if ( pFileControl )
+@@ -761,7 +761,7 @@ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel,
+ 
+ ::rtl::OUString VCLXFileControl::getText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	Window* pWindow = GetWindow();
+@@ -772,7 +772,7 @@ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel,
+ 
+ ::rtl::OUString VCLXFileControl::getSelectedText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+@@ -784,7 +784,7 @@ void VCLXFileControl::insertText( const ::com::sun::star::awt::Selection& rSel,
+ 
+ void VCLXFileControl::setSelection( const ::com::sun::star::awt::Selection& aSelection ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+ 	if ( pFileControl )
+@@ -793,7 +793,7 @@ void VCLXFileControl::setSelection( const ::com::sun::star::awt::Selection& aSel
+ 
+ ::com::sun::star::awt::Selection VCLXFileControl::getSelection() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Selection aSel;
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+@@ -807,7 +807,7 @@ void VCLXFileControl::setSelection( const ::com::sun::star::awt::Selection& aSel
+ 
+ sal_Bool VCLXFileControl::isEditable() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+ 	return ( pFileControl && !pFileControl->GetEdit().IsReadOnly() && pFileControl->GetEdit().IsEnabled() ) ? sal_True : sal_False;
+@@ -815,7 +815,7 @@ sal_Bool VCLXFileControl::isEditable() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ void VCLXFileControl::setEditable( sal_Bool bEditable ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+ 	if ( pFileControl )
+@@ -824,7 +824,7 @@ void VCLXFileControl::setEditable( sal_Bool bEditable ) throw(::com::sun::star::
+ 
+ void VCLXFileControl::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+ 	if ( pFileControl )
+@@ -833,7 +833,7 @@ void VCLXFileControl::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::un
+ 
+ sal_Int16 VCLXFileControl::getMaxTextLen() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FileControl* pFileControl = (FileControl*) GetWindow();
+ 	return pFileControl ? pFileControl->GetEdit().GetMaxTextLen() : 0;
+@@ -851,7 +851,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
+ 
+ ::com::sun::star::awt::Size VCLXFileControl::getMinimumSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz;
+ 	FileControl* pControl = (FileControl*) GetWindow();
+@@ -873,7 +873,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
+ 
+ ::com::sun::star::awt::Size VCLXFileControl::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz =rNewSize;
+ 	FileControl* pControl = (FileControl*) GetWindow();
+@@ -888,7 +888,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
+ 
+ ::com::sun::star::awt::Size VCLXFileControl::getMinimumSize( sal_Int16 nCols, sal_Int16 ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz;
+ 	FileControl* pControl = (FileControl*) GetWindow();
+@@ -902,7 +902,7 @@ IMPL_LINK( VCLXFileControl, ModifyHdl, Edit*, EMPTYARG )
+ 
+ void VCLXFileControl::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	nCols = 0;
+ 	nLines = 1;
+@@ -953,7 +953,7 @@ void SVTXFormattedField::SetWindow( Window* _pWindow )
+ // --------------------------------------------------------------------------------------
+ void SVTXFormattedField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1078,7 +1078,7 @@ void SVTXFormattedField::setProperty( const ::rtl::OUString& PropertyName, const
+ // --------------------------------------------------------------------------------------
+ ::com::sun::star::uno::Any SVTXFormattedField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aReturn;
+ 
+@@ -1539,7 +1539,7 @@ void SVTXRoadmap::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 	{
+ 		case VCLEVENT_ROADMAP_ITEMSELECTED:
+         {
+-        	::vos::OGuard aGuard( GetMutex() );
++        	osl::SolarMutexGuard aGuard( GetMutex() );
+             ::svt::ORoadmap* pField = GetRoadmap();
+ 	        if ( pField )
+ 	        {
+@@ -1561,7 +1561,7 @@ void SVTXRoadmap::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ void SVTXRoadmap::propertyChange( const ::com::sun::star::beans::PropertyChangeEvent& evt ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     ::svt::ORoadmap* pField = GetRoadmap();
+ 	if ( pField )
+ 	{
+@@ -1630,7 +1630,7 @@ RMItemData SVTXRoadmap::GetRMItemData( const ::com::sun::star::container::Contai
+ 
+ void SVTXRoadmap::elementInserted( const ::com::sun::star::container::ContainerEvent& _rEvent )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     ::svt::ORoadmap* pField = GetRoadmap();
+ 	if ( pField )
+ 	{
+@@ -1643,7 +1643,7 @@ void SVTXRoadmap::elementInserted( const ::com::sun::star::container::ContainerE
+ 
+ void SVTXRoadmap::elementRemoved( const ::com::sun::star::container::ContainerEvent& _rEvent )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     ::svt::ORoadmap* pField = GetRoadmap();
+ 	if ( pField )
+ 	{
+@@ -1657,7 +1657,7 @@ void SVTXRoadmap::elementRemoved( const ::com::sun::star::container::ContainerEv
+ 
+ void SVTXRoadmap::elementReplaced( const ::com::sun::star::container::ContainerEvent& _rEvent )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     ::svt::ORoadmap* pField = GetRoadmap();
+ 	if ( pField )
+ 	{
+@@ -1673,7 +1673,7 @@ void SVTXRoadmap::elementReplaced( const ::com::sun::star::container::ContainerE
+ // --------------------------------------------------------------------------------------
+ void SVTXRoadmap::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     ::svt::ORoadmap* pField = GetRoadmap();
+ 	if ( pField )
+@@ -1728,7 +1728,7 @@ void SVTXRoadmap::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ // --------------------------------------------------------------------------------------
+ ::com::sun::star::uno::Any SVTXRoadmap::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aReturn;
+ 
+@@ -1802,7 +1802,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void SVTXNumericField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1811,7 +1811,7 @@ void SVTXNumericField::setValue( double Value ) throw(::com::sun::star::uno::Run
+ 
+ double SVTXNumericField::getValue() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetValue() : 0;
+@@ -1819,7 +1819,7 @@ double SVTXNumericField::getValue() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void SVTXNumericField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1828,7 +1828,7 @@ void SVTXNumericField::setMin( double Value ) throw(::com::sun::star::uno::Runti
+ 
+ double SVTXNumericField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetMinValue() : 0;
+@@ -1836,7 +1836,7 @@ double SVTXNumericField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void SVTXNumericField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1845,7 +1845,7 @@ void SVTXNumericField::setMax( double Value ) throw(::com::sun::star::uno::Runti
+ 
+ double SVTXNumericField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetMaxValue() : 0;
+@@ -1853,7 +1853,7 @@ double SVTXNumericField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void SVTXNumericField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1862,7 +1862,7 @@ void SVTXNumericField::setFirst( double Value ) throw(::com::sun::star::uno::Run
+ 
+ double SVTXNumericField::getFirst() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetSpinFirst() : 0;
+@@ -1870,7 +1870,7 @@ double SVTXNumericField::getFirst() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void SVTXNumericField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1879,7 +1879,7 @@ void SVTXNumericField::setLast( double Value ) throw(::com::sun::star::uno::Runt
+ 
+ double SVTXNumericField::getLast() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetSpinLast() : 0;
+@@ -1887,7 +1887,7 @@ double SVTXNumericField::getLast() throw(::com::sun::star::uno::RuntimeException
+ 
+ void SVTXNumericField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1896,7 +1896,7 @@ void SVTXNumericField::setSpinSize( double Value ) throw(::com::sun::star::uno::
+ 
+ double SVTXNumericField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetSpinSize() : 0;
+@@ -1904,7 +1904,7 @@ double SVTXNumericField::getSpinSize() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ void SVTXNumericField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1913,7 +1913,7 @@ void SVTXNumericField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::sta
+ 
+ sal_Int16 SVTXNumericField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetDecimalDigits() : 0;
+@@ -1921,7 +1921,7 @@ sal_Int16 SVTXNumericField::getDecimalDigits() throw(::com::sun::star::uno::Runt
+ 
+ void SVTXNumericField::setStrictFormat( sal_Bool bStrict ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1930,7 +1930,7 @@ void SVTXNumericField::setStrictFormat( sal_Bool bStrict ) throw(::com::sun::sta
+ 
+ sal_Bool SVTXNumericField::isStrictFormat() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->IsStrictFormat() : sal_False;
+@@ -1968,7 +1968,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void SVTXCurrencyField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1977,7 +1977,7 @@ void SVTXCurrencyField::setValue( double Value ) throw(::com::sun::star::uno::Ru
+ 
+ double SVTXCurrencyField::getValue() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetValue() : 0;
+@@ -1985,7 +1985,7 @@ double SVTXCurrencyField::getValue() throw(::com::sun::star::uno::RuntimeExcepti
+ 
+ void SVTXCurrencyField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -1994,7 +1994,7 @@ void SVTXCurrencyField::setMin( double Value ) throw(::com::sun::star::uno::Runt
+ 
+ double SVTXCurrencyField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetMinValue() : 0;
+@@ -2002,7 +2002,7 @@ double SVTXCurrencyField::getMin() throw(::com::sun::star::uno::RuntimeException
+ 
+ void SVTXCurrencyField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -2011,7 +2011,7 @@ void SVTXCurrencyField::setMax( double Value ) throw(::com::sun::star::uno::Runt
+ 
+ double SVTXCurrencyField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetMaxValue() : 0;
+@@ -2019,7 +2019,7 @@ double SVTXCurrencyField::getMax() throw(::com::sun::star::uno::RuntimeException
+ 
+ void SVTXCurrencyField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -2028,7 +2028,7 @@ void SVTXCurrencyField::setFirst( double Value ) throw(::com::sun::star::uno::Ru
+ 
+ double SVTXCurrencyField::getFirst() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetSpinFirst() : 0;
+@@ -2036,7 +2036,7 @@ double SVTXCurrencyField::getFirst() throw(::com::sun::star::uno::RuntimeExcepti
+ 
+ void SVTXCurrencyField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -2045,7 +2045,7 @@ void SVTXCurrencyField::setLast( double Value ) throw(::com::sun::star::uno::Run
+ 
+ double SVTXCurrencyField::getLast() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetSpinLast() : 0;
+@@ -2053,7 +2053,7 @@ double SVTXCurrencyField::getLast() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void SVTXCurrencyField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -2062,7 +2062,7 @@ void SVTXCurrencyField::setSpinSize( double Value ) throw(::com::sun::star::uno:
+ 
+ double SVTXCurrencyField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetSpinSize() : 0;
+@@ -2070,7 +2070,7 @@ double SVTXCurrencyField::getSpinSize() throw(::com::sun::star::uno::RuntimeExce
+ 
+ void SVTXCurrencyField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -2079,7 +2079,7 @@ void SVTXCurrencyField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::st
+ 
+ sal_Int16 SVTXCurrencyField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->GetDecimalDigits() : 0;
+@@ -2087,7 +2087,7 @@ sal_Int16 SVTXCurrencyField::getDecimalDigits() throw(::com::sun::star::uno::Run
+ 
+ void SVTXCurrencyField::setStrictFormat( sal_Bool bStrict ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	if ( pField )
+@@ -2096,7 +2096,7 @@ void SVTXCurrencyField::setStrictFormat( sal_Bool bStrict ) throw(::com::sun::st
+ 
+ sal_Bool SVTXCurrencyField::isStrictFormat() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormattedField* pField = GetFormattedField();
+ 	return pField ? pField->IsStrictFormat() : sal_False;
+@@ -2104,7 +2104,7 @@ sal_Bool SVTXCurrencyField::isStrictFormat() throw(::com::sun::star::uno::Runtim
+ 
+ void SVTXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aReturn;
+ 
+@@ -2144,7 +2144,7 @@ void SVTXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const
+ 
+ ::com::sun::star::uno::Any SVTXCurrencyField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aReturn;
+ 
+@@ -2265,7 +2265,7 @@ IMPL_XTYPEPROVIDER_END
+ // ::com::sun::star::awt::XProgressBar
+ void VCLXProgressBar::setForegroundColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2277,7 +2277,7 @@ void VCLXProgressBar::setForegroundColor( sal_Int32 nColor ) throw(::com::sun::s
+ 
+ void VCLXProgressBar::setBackgroundColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2291,7 +2291,7 @@ void VCLXProgressBar::setBackgroundColor( sal_Int32 nColor ) throw(::com::sun::s
+ 
+ void VCLXProgressBar::setValue( sal_Int32 nValue ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	m_nValue = nValue;
+ 	ImplUpdateValue();
+@@ -2299,7 +2299,7 @@ void VCLXProgressBar::setValue( sal_Int32 nValue ) throw(::com::sun::star::uno::
+ 
+ void VCLXProgressBar::setRange( sal_Int32 nMin, sal_Int32 nMax ) throw(::com::sun::star::uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( nMin < nMax )
+ 	{
+@@ -2319,7 +2319,7 @@ void VCLXProgressBar::setRange( sal_Int32 nMin, sal_Int32 nMax ) throw(::com::su
+ 
+ sal_Int32 VCLXProgressBar::getValue() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	return m_nValue;
+ }
+@@ -2327,7 +2327,7 @@ sal_Int32 VCLXProgressBar::getValue() throw(::com::sun::star::uno::RuntimeExcept
+ // ::com::sun::star::awt::VclWindowPeer
+ void VCLXProgressBar::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     ProgressBar* pProgressBar = (ProgressBar*)GetWindow();
+     if ( pProgressBar )
+@@ -2385,7 +2385,7 @@ void VCLXProgressBar::setProperty( const ::rtl::OUString& PropertyName, const ::
+ 
+ ::com::sun::star::uno::Any VCLXProgressBar::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+     ProgressBar* pProgressBar = (ProgressBar*)GetWindow();
+diff --git a/svtools/source/uno/unoimap.cxx b/svtools/source/uno/unoimap.cxx
+index 43c2b20..74d2510 100644
+--- svtools/source/uno/unoimap.cxx
++++ svtools/source/uno/unoimap.cxx
+@@ -87,8 +87,8 @@
+ #include <rtl/uuid.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX 
+@@ -432,7 +432,7 @@ uno::Sequence< uno::Type > SAL_CALL SvUnoImageMapObject::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL SvUnoImageMapObject::getImplementationId()
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	static uno::Sequence< sal_Int8 > aId;
+ 	if( aId.getLength() == 0 )
+diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
+index 050f7f2..d681cd2 100644
+--- svx/inc/pch/precompiled_svx.hxx
++++ svx/inc/pch/precompiled_svx.hxx
+@@ -952,7 +952,7 @@
+ #include "vcl/unohelp2.hxx"
+ #include "vcl/wall.hxx"
+ #include "vcl/wintypes.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/thread.hxx"
+diff --git a/svx/inc/svx/gridctrl.hxx b/svx/inc/svx/gridctrl.hxx
+index 6d9bf97..d298a24 100644
+--- svx/inc/svx/gridctrl.hxx
++++ svx/inc/svx/gridctrl.hxx
+@@ -79,7 +79,7 @@
+ #endif
+ 
+ #ifndef _OSL_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COMPHELPER_PROPERTY_MULTIPLEX_HXX_
+diff --git a/svx/source/accessibility/AccessibleContextBase.cxx b/svx/source/accessibility/AccessibleContextBase.cxx
+index 8aa538b..ac0c644 100644
+--- svx/source/accessibility/AccessibleContextBase.cxx
++++ svx/source/accessibility/AccessibleContextBase.cxx
+@@ -71,7 +71,7 @@
+ #include <rtl/uuid.h>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #include <utility>
+diff --git a/svx/source/accessibility/AccessibleEditableTextPara.cxx b/svx/source/accessibility/AccessibleEditableTextPara.cxx
+index ce2bdde..0d48b02 100644
+--- svx/source/accessibility/AccessibleEditableTextPara.cxx
++++ svx/source/accessibility/AccessibleEditableTextPara.cxx
+@@ -46,8 +46,8 @@
+ #include <vector>
+ #include <algorithm>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_WINDOW_HXX
+@@ -909,7 +909,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return HaveChildren() ? 1 : 0;
+     }
+@@ -918,7 +918,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         if( !HaveChildren() )
+             throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No childs available")),
+@@ -985,7 +985,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // append first 40 characters from text, or first line, if shorter
+         // (writer takes first sentence here, but that's not supported
+@@ -1032,7 +1032,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // throws if defunc
+         sal_Int32 nPara( GetParagraphIndex() );
+@@ -1095,7 +1095,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // Create a copy of the state set and return it.
+         ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
+@@ -1110,7 +1110,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return implGetLocale();
+     }
+@@ -1136,7 +1136,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::contains: index value overflow");
+@@ -1152,7 +1152,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         if( HaveChildren() )
+         {
+@@ -1187,7 +1187,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getBounds: index value overflow");
+@@ -1213,7 +1213,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         awt::Rectangle aRect = getBounds();
+ 
+@@ -1224,7 +1224,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // relate us to parent
+         uno::Reference< XAccessible > xParent = getAccessibleParent();
+@@ -1251,7 +1251,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         awt::Rectangle aRect = getBounds();
+ 
+@@ -1294,7 +1294,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         if( !HaveEditView() )
+             return -1;
+@@ -1322,7 +1322,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getCharacter: index value overflow");
+@@ -1333,7 +1333,7 @@ namespace accessibility
+     uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleEditableTextPara::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rRequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+         CheckIndex(nIndex);	// may throw IndexOutOfBoundsException
+ 
+@@ -1397,7 +1397,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getCharacterBounds: index value overflow");
+@@ -1432,7 +1432,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getCharacterCount: index value overflow");
+@@ -1444,7 +1444,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         USHORT nPara, nIndex;
+ 
+@@ -1491,7 +1491,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getSelectedText: index value overflow");
+@@ -1506,7 +1506,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getSelectionStart: index value overflow");
+@@ -1521,7 +1521,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getSelectionEnd: index value overflow");
+@@ -1536,7 +1536,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::setSelection: paragraph index value overflow");
+@@ -1558,7 +1558,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getText: paragraph index value overflow");
+@@ -1570,7 +1570,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getTextRange: paragraph index value overflow");
+@@ -1582,7 +1582,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getTextAtIndex: paragraph index value overflow");
+@@ -1630,7 +1630,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getTextBeforeIndex: paragraph index value overflow");
+@@ -1689,7 +1689,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getTextBehindIndex: paragraph index value overflow");
+@@ -1732,7 +1732,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1772,7 +1772,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1802,7 +1802,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1832,7 +1832,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1865,7 +1865,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1900,7 +1900,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1935,7 +1935,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1995,7 +1995,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         return replaceText(0, getCharacterCount(), sText);
+     }
+@@ -2006,7 +2006,7 @@ namespace accessibility
+         throw (uno::RuntimeException)
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         #if OSL_DEBUG_LEVEL > 0
+         SvxAccessibleTextAdapter& rCacheTF =
+@@ -2105,7 +2105,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         #if OSL_DEBUG_LEVEL > 0
+         SvxAccessibleTextAdapter& rCacheTF =
+diff --git a/svx/source/accessibility/AccessibleFrameSelector.cxx b/svx/source/accessibility/AccessibleFrameSelector.cxx
+index d964f7e..53d5959 100644
+--- svx/source/accessibility/AccessibleFrameSelector.cxx
++++ svx/source/accessibility/AccessibleFrameSelector.cxx
+@@ -68,8 +68,8 @@
+ #include <unotools/accessiblerelationsethelper.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -154,7 +154,7 @@ Reference< XAccessibleContext > AccFrameSelector::getAccessibleContext(  )
+ 
+ sal_Int32 AccFrameSelector::getAccessibleChildCount(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return (meBorder == FRAMEBORDER_NONE) ? mpFrameSel->GetEnabledBorderCount() : 0;
+ }
+@@ -164,7 +164,7 @@ sal_Int32 AccFrameSelector::getAccessibleChildCount(  ) throw (RuntimeException)
+ Reference< XAccessible > AccFrameSelector::getAccessibleChild( sal_Int32 i )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     Reference< XAccessible > xRet;
+     if( meBorder == FRAMEBORDER_NONE )
+@@ -179,7 +179,7 @@ Reference< XAccessible > AccFrameSelector::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > AccFrameSelector::getAccessibleParent(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     Reference< XAccessible > xRet;
+     if(meBorder == FRAMEBORDER_NONE)
+@@ -194,7 +194,7 @@ Reference< XAccessible > AccFrameSelector::getAccessibleParent(  )
+ sal_Int32 AccFrameSelector::getAccessibleIndexInParent(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+ 
+     sal_Int32 nIdx = 0;
+@@ -226,7 +226,7 @@ sal_Int16 AccFrameSelector::getAccessibleRole(  ) throw (RuntimeException)
+ OUString AccFrameSelector::getAccessibleDescription(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return maDescriptions.GetString(meBorder);
+ }
+@@ -236,7 +236,7 @@ OUString AccFrameSelector::getAccessibleDescription(  )
+ OUString AccFrameSelector::getAccessibleName(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return maNames.GetString(meBorder);
+ }
+@@ -246,7 +246,7 @@ OUString AccFrameSelector::getAccessibleName(  )
+ Reference< XAccessibleRelationSet > AccFrameSelector::getAccessibleRelationSet(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     utl::AccessibleRelationSetHelper* pHelper;
+     Reference< XAccessibleRelationSet > xRet = pHelper = new utl::AccessibleRelationSetHelper;
+@@ -271,7 +271,7 @@ Reference< XAccessibleRelationSet > AccFrameSelector::getAccessibleRelationSet(
+ Reference< XAccessibleStateSet > AccFrameSelector::getAccessibleStateSet(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+     Reference< XAccessibleStateSet > xRet = pStateSetHelper;
+ 
+@@ -344,7 +344,7 @@ void AccFrameSelector::removePropertyChangeListener( const Reference< XPropertyC
+ sal_Bool AccFrameSelector::containsPoint( const AwtPoint& aPt )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     //aPt is relative to the frame selector
+     return mpFrameSel->ContainsClickPoint( Point( aPt.X, aPt.Y ) );
+@@ -356,7 +356,7 @@ Reference< XAccessible > AccFrameSelector::getAccessibleAtPoint(
+     const AwtPoint& aPt )
+         throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     //aPt is relative to the frame selector
+     return mpFrameSel->GetChildAccessible( Point( aPt.X, aPt.Y ) );
+@@ -364,7 +364,7 @@ Reference< XAccessible > AccFrameSelector::getAccessibleAtPoint(
+ 
+ AwtRectangle AccFrameSelector::getBounds(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     Size aSz;
+     Point aPos;
+@@ -391,7 +391,7 @@ AwtRectangle AccFrameSelector::getBounds(  ) throw (RuntimeException)
+ 
+ AwtPoint AccFrameSelector::getLocation(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     Point aPos;
+     switch(meBorder)
+@@ -411,7 +411,7 @@ AwtPoint AccFrameSelector::getLocation(  ) throw (RuntimeException)
+ 
+ AwtPoint AccFrameSelector::getLocationOnScreen(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     Point aPos;
+     switch(meBorder)
+@@ -432,7 +432,7 @@ AwtPoint AccFrameSelector::getLocationOnScreen(  ) throw (RuntimeException)
+ 
+ AwtSize AccFrameSelector::getSize(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     Size aSz;
+     switch(meBorder)
+@@ -452,7 +452,7 @@ AwtSize AccFrameSelector::getSize(  ) throw (RuntimeException)
+ 
+ sal_Bool AccFrameSelector::isShowing(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return sal_True;
+ }
+@@ -461,7 +461,7 @@ sal_Bool AccFrameSelector::isShowing(  ) throw (RuntimeException)
+ 
+ sal_Bool AccFrameSelector::isVisible(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return sal_True;
+ }
+@@ -470,7 +470,7 @@ sal_Bool AccFrameSelector::isVisible(  ) throw (RuntimeException)
+ 
+ sal_Bool AccFrameSelector::isFocusTraversable(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return sal_True;
+ }
+@@ -493,7 +493,7 @@ void AccFrameSelector::removeFocusListener( const Reference< XFocusListener >& x
+ 
+ void AccFrameSelector::grabFocus(  ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     mpFrameSel->GrabFocus();
+ }
+@@ -503,7 +503,7 @@ void AccFrameSelector::grabFocus(  ) throw (RuntimeException)
+ Any AccFrameSelector::getAccessibleKeyBinding(  ) throw (RuntimeException)
+ {
+     Any aRet;
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     utl::AccessibleRelationSetHelper* pHelper;
+     Reference< XAccessibleRelationSet > xRet = pHelper = new utl::AccessibleRelationSetHelper;
+@@ -541,7 +541,7 @@ sal_Int32 AccFrameSelector::getForeground(  )
+         throw (RuntimeException)
+ {
+     Any aRet;
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return mpFrameSel->GetControlForeground().GetColor();
+ }
+@@ -552,7 +552,7 @@ sal_Int32 AccFrameSelector::getBackground(  )
+         throw (RuntimeException)
+ {
+     Any aRet;
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     IsValid();
+     return mpFrameSel->GetControlBackground().GetColor();
+ }
+@@ -603,7 +603,7 @@ void AccFrameSelector::IsValid() throw (RuntimeException)
+ 
+ void    AccFrameSelector::NotifyFocusListeners(sal_Bool bGetFocus)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     AwtFocusEvent aEvent;
+     aEvent.FocusFlags = 0;
+     if(bGetFocus)
+diff --git a/svx/source/accessibility/AccessibleImageBullet.cxx b/svx/source/accessibility/AccessibleImageBullet.cxx
+index 03bd64a..559f61c 100644
+--- svx/source/accessibility/AccessibleImageBullet.cxx
++++ svx/source/accessibility/AccessibleImageBullet.cxx
+@@ -40,8 +40,8 @@
+ #include <tools/gen.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -228,7 +228,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // throws if defunc
+         sal_Int32 nPara( GetParagraphIndex() );
+@@ -246,7 +246,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // throws if defunc
+         sal_Int32 nPara( GetParagraphIndex() );
+@@ -272,7 +272,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // Create a copy of the state set and return it.
+         ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
+@@ -287,7 +287,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         lang::Locale		aLocale;
+ 
+@@ -318,7 +318,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::contains: index value overflow");
+@@ -342,7 +342,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
+                    "AccessibleEditableTextPara::getBounds: index value overflow");
+@@ -381,7 +381,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         awt::Rectangle aRect = getBounds();
+ 
+@@ -392,7 +392,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // relate us to parent
+         uno::Reference< XAccessible > xParent = getAccessibleParent();
+@@ -419,7 +419,7 @@ namespace accessibility
+     {
+         DBG_CHKTHIS( AccessibleImageBullet, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         awt::Rectangle aRect = getBounds();
+ 
+diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
+index c424e25..98081f2 100644
+--- svx/source/accessibility/AccessibleShape.cxx
++++ svx/source/accessibility/AccessibleShape.cxx
+@@ -105,6 +105,9 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
++
++#include <osl/mutex.hxx>
++
+ #ifndef _UTL_ACCESSIBLESTATESETHELPER_HXX_
+ #include <unotools/accessiblestatesethelper.hxx>
+ #endif
+@@ -516,7 +519,7 @@ uno::Reference<XAccessible > SAL_CALL
+ awt::Rectangle SAL_CALL AccessibleShape::getBounds (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard (::Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard (::Application::GetSolarMutex());
+     ::osl::MutexGuard aGuard (maMutex);
+ 
+     ThrowIfDisposed ();
+@@ -913,7 +916,7 @@ void SAL_CALL
+     AccessibleShape::disposing (const lang::EventObject& aEvent)
+     throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard (::Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard (::Application::GetSolarMutex());
+     ::osl::MutexGuard aGuard (maMutex);
+ 
+     try
+@@ -1174,7 +1177,7 @@ uno::Reference< drawing::XShape > AccessibleShape::GetXShape()
+ // protected
+ void AccessibleShape::disposing (void)
+ {
+-    ::vos::OGuard aSolarGuard (::Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard (::Application::GetSolarMutex());
+     ::osl::MutexGuard aGuard (maMutex);
+ 
+     // Make sure to send an event that this object looses the focus in the
+diff --git a/svx/source/accessibility/AccessibleStaticTextBase.cxx b/svx/source/accessibility/AccessibleStaticTextBase.cxx
+index 7ea17d0..7460451 100644
+--- svx/source/accessibility/AccessibleStaticTextBase.cxx
++++ svx/source/accessibility/AccessibleStaticTextBase.cxx
+@@ -46,8 +46,8 @@
+ #include <vector>
+ #include <algorithm>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_WINDOW_HXX
+@@ -484,7 +484,7 @@ namespace accessibility
+     AccessibleStaticTextBase::AccessibleStaticTextBase( ::std::auto_ptr< SvxEditSource > 		pEditSource ) :
+         mpImpl( new AccessibleStaticTextBase_Impl() )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         SetEditSource( pEditSource );
+     }
+@@ -634,7 +634,7 @@ namespace accessibility
+ 	// XAccessibleText
+     sal_Int32 SAL_CALL AccessibleStaticTextBase::getCaretPosition() throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 i, nPos, nParas;
+         for( i=0, nPos=-1, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
+@@ -653,7 +653,7 @@ namespace accessibility
+ 
+     sal_Unicode SAL_CALL AccessibleStaticTextBase::getCharacter( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         EPosition aPos( mpImpl->Index2Internal(nIndex) );
+ 
+@@ -662,7 +662,7 @@ namespace accessibility
+ 
+     uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleStaticTextBase::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         EPosition aPos( mpImpl->Index2Internal(nIndex) );
+ 
+@@ -671,7 +671,7 @@ namespace accessibility
+ 
+     awt::Rectangle SAL_CALL AccessibleStaticTextBase::getCharacterBounds( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         // #108900# Allow ranges for nIndex, as one-past-the-end
+         // values are now legal, too.
+@@ -682,7 +682,7 @@ namespace accessibility
+ 
+     sal_Int32 SAL_CALL AccessibleStaticTextBase::getCharacterCount() throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 i, nCount, nParas;
+         for( i=0, nCount=0, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
+@@ -693,7 +693,7 @@ namespace accessibility
+ 
+     sal_Int32 SAL_CALL AccessibleStaticTextBase::getIndexAtPoint( const awt::Point& rPoint ) throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         const sal_Int32 nParas( mpImpl->GetParagraphCount() );
+         sal_Int32 nIndex;
+@@ -714,7 +714,7 @@ namespace accessibility
+ 
+     ::rtl::OUString SAL_CALL AccessibleStaticTextBase::getSelectedText() throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 nStart( getSelectionStart() );
+         sal_Int32 nEnd( getSelectionEnd() );
+@@ -728,7 +728,7 @@ namespace accessibility
+ 
+     sal_Int32 SAL_CALL AccessibleStaticTextBase::getSelectionStart() throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 i, nPos, nParas;
+         for( i=0, nPos=-1, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
+@@ -742,7 +742,7 @@ namespace accessibility
+ 
+     sal_Int32 SAL_CALL AccessibleStaticTextBase::getSelectionEnd() throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 i, nPos, nParas;
+         for( i=0, nPos=-1, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
+@@ -756,7 +756,7 @@ namespace accessibility
+ 
+     sal_Bool SAL_CALL AccessibleStaticTextBase::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         EPosition aStartIndex( mpImpl->Range2Internal(nStartIndex) );
+         EPosition aEndIndex( mpImpl->Range2Internal(nEndIndex) );
+@@ -767,7 +767,7 @@ namespace accessibility
+ 
+     ::rtl::OUString SAL_CALL AccessibleStaticTextBase::getText() throw (uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 i, nParas;
+         ::rtl::OUString aRes;
+@@ -779,7 +779,7 @@ namespace accessibility
+ 
+     ::rtl::OUString SAL_CALL AccessibleStaticTextBase::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         if( nStartIndex > nEndIndex )
+             ::std::swap(nStartIndex, nEndIndex);
+@@ -812,7 +812,7 @@ namespace accessibility
+ 
+     ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleStaticTextBase::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         EPosition aPos( mpImpl->Range2Internal(nIndex) );
+ 
+@@ -847,7 +847,7 @@ namespace accessibility
+ 
+     ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleStaticTextBase::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         EPosition aPos( mpImpl->Range2Internal(nIndex) );
+ 
+@@ -887,7 +887,7 @@ namespace accessibility
+ 
+     ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleStaticTextBase::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         EPosition aPos( mpImpl->Range2Internal(nIndex) );
+ 
+@@ -921,7 +921,7 @@ namespace accessibility
+ 
+     sal_Bool SAL_CALL AccessibleStaticTextBase::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         if( nStartIndex > nEndIndex )
+             ::std::swap(nStartIndex, nEndIndex);
+diff --git a/svx/source/accessibility/AccessibleTextHelper.cxx b/svx/source/accessibility/AccessibleTextHelper.cxx
+index 089e84d..31c085c 100644
+--- svx/source/accessibility/AccessibleTextHelper.cxx
++++ svx/source/accessibility/AccessibleTextHelper.cxx
+@@ -47,8 +47,8 @@
+ #include <algorithm>
+ #include <deque>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_UNO_ANY_HXX_
+@@ -380,7 +380,7 @@ namespace accessibility
+     {
+         DBG_DTOR( AccessibleTextHelper_Impl, NULL );
+ 
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         try
+         {
+@@ -1829,7 +1829,7 @@ namespace accessibility
+     AccessibleTextHelper::AccessibleTextHelper( ::std::auto_ptr< SvxEditSource > pEditSource ) :
+         mpImpl( new AccessibleTextHelper_Impl() )
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         SetEditSource( pEditSource );
+     }
+@@ -2050,7 +2050,7 @@ namespace accessibility
+         // As Dispose calls ShutdownEditSource, which in turn
+         // deregisters as listener on the edit source, have to lock
+         // here
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #ifdef DBG_UTIL
+         mpImpl->CheckInvariants();
+@@ -2065,7 +2065,7 @@ namespace accessibility
+ 
+     sal_Bool AccessibleTextHelper::IsSelected() const
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #ifdef DBG_UTIL
+         mpImpl->CheckInvariants();
+@@ -2083,7 +2083,7 @@ namespace accessibility
+ 	// XAccessibleContext
+     sal_Int32 AccessibleTextHelper::GetChildCount() SAL_THROW((uno::RuntimeException))
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #ifdef DBG_UTIL
+         mpImpl->CheckInvariants();
+@@ -2100,7 +2100,7 @@ namespace accessibility
+ 
+     uno::Reference< XAccessible > AccessibleTextHelper::GetChild( sal_Int32 i ) SAL_THROW((lang::IndexOutOfBoundsException, uno::RuntimeException))
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #ifdef DBG_UTIL
+         mpImpl->CheckInvariants();
+@@ -2144,7 +2144,7 @@ namespace accessibility
+ 	// XAccessibleComponent
+     uno::Reference< XAccessible > AccessibleTextHelper::GetAt( const awt::Point& aPoint ) SAL_THROW((uno::RuntimeException))
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #ifdef DBG_UTIL
+         mpImpl->CheckInvariants();
+diff --git a/svx/source/accessibility/ChildrenManagerImpl.hxx b/svx/source/accessibility/ChildrenManagerImpl.hxx
+index a76be07..4eadaa2 100644
+--- svx/source/accessibility/ChildrenManagerImpl.hxx
++++ svx/source/accessibility/ChildrenManagerImpl.hxx
+@@ -51,7 +51,7 @@
+ #ifndef _CPPUHELPER_COMPBASE2_HXX_
+ #include <cppuhelper/compbase2.hxx>
+ #endif
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vector>
+ #ifndef _COM_SUN_STAR_DRAWING_XSHAPE_HPP_
+ #include <com/sun/star/drawing/XShape.hpp>
+diff --git a/svx/source/accessibility/DGColorNameLookUp.cxx b/svx/source/accessibility/DGColorNameLookUp.cxx
+index d37a550..36efbfd 100644
+--- svx/source/accessibility/DGColorNameLookUp.cxx
++++ svx/source/accessibility/DGColorNameLookUp.cxx
+@@ -52,8 +52,8 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -75,7 +75,7 @@ DGColorNameLookUp& DGColorNameLookUp::Instance (void)
+     // the shape type handler is instantiated.
+     if (mpInstance == NULL)
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         if (mpInstance == NULL)
+         {
+             // Create the single instance of the color name look up.
+@@ -131,7 +131,7 @@ DGColorNameLookUp::DGColorNameLookUp (void)
+         {
+             // Look the solar mutex here as workarround for missing lock in
+             // called function.
+-            ::vos::OGuard aGuard (::Application::GetSolarMutex());
++            osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+             aNames = xNA->getElementNames();
+         }
+     }
+diff --git a/svx/source/accessibility/DescriptionGenerator.cxx b/svx/source/accessibility/DescriptionGenerator.cxx
+index b77af8c..2ef2994 100644
+--- svx/source/accessibility/DescriptionGenerator.cxx
++++ svx/source/accessibility/DescriptionGenerator.cxx
+@@ -81,8 +81,8 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -139,7 +139,7 @@ void DescriptionGenerator::Initialize (sal_Int32 nResourceId)
+     // Get the string from the resource for the specified id.
+     OUString sPrefix;
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         sPrefix = OUString (SVX_RESSTR (nResourceId));
+     }
+ 
+@@ -156,7 +156,7 @@ void DescriptionGenerator::Initialize (::rtl::OUString sPrefix)
+     if (mxSet.is())
+     {
+         {
+-            ::vos::OGuard aGuard (::Application::GetSolarMutex());
++            osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+ 
+             msDescription.append (sal_Unicode (' '));
+             msDescription.append (OUString (SVX_RESSTR(RID_SVXSTR_A11Y_WITH)));
+@@ -207,7 +207,7 @@ void DescriptionGenerator::AddProperty (
+ {
+     OUString sLocalizedName;
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         sLocalizedName = SVX_RESSTR (nLocalizedNameId);
+     }
+     AddProperty (sPropertyName, aType, sLocalizedName, nWhichId);
+@@ -229,7 +229,7 @@ void DescriptionGenerator::AddProperty (const OUString& sPropertyName,
+                 msDescription.append (sal_Unicode (','));
+             else
+             {
+-                ::vos::OGuard aGuard (::Application::GetSolarMutex());
++                osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+ 
+                 msDescription.append (sal_Unicode (' '));
+                 msDescription.append (OUString (SVX_RESSTR(RID_SVXSTR_A11Y_AND)));
+@@ -402,7 +402,7 @@ void DescriptionGenerator::AddString (const OUString& sPropertyName,
+ 
+             if (nWhichId >= 0)
+             {
+-                ::vos::OGuard aGuard (::Application::GetSolarMutex());
++                osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+                 String sLocalizedValue;
+                 SvxUnogetInternalNameForItem (sal::static_int_cast<sal_Int16>(nWhichId), 
+                                               sValue, sLocalizedValue);
+@@ -439,7 +439,7 @@ void DescriptionGenerator::AddFillStyle (const OUString& sPropertyName,
+             // Get the fill style name from the resource.
+             OUString sFillStyleName;
+             {
+-                ::vos::OGuard aGuard (::Application::GetSolarMutex());
++                osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+                 switch (aFillStyle)
+                 {
+                     case drawing::FillStyle_NONE:
+diff --git a/svx/source/accessibility/GraphCtlAccessibleContext.cxx b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
+index 0b774cf..bf093a8 100644
+--- svx/source/accessibility/GraphCtlAccessibleContext.cxx
++++ svx/source/accessibility/GraphCtlAccessibleContext.cxx
+@@ -127,7 +127,6 @@
+ 
+ //=====  namespaces ===========================================================
+ 
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::osl;
+ using namespace ::accessibility;
+@@ -181,7 +180,7 @@ SvxGraphCtrlAccessibleContext::SvxGraphCtrlAccessibleContext(
+ 	}
+ 	else
+ 	{
+-		::vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 		msName = SVX_RESSTR( RID_SVXSTR_GRAPHCTRL_ACC_NAME );
+ 	}
+ 
+@@ -191,7 +190,7 @@ SvxGraphCtrlAccessibleContext::SvxGraphCtrlAccessibleContext(
+ 	}
+ 	else
+ 	{
+-		::vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 		msDescription = SVX_RESSTR( RID_SVXSTR_GRAPHCTRL_ACC_DESCRIPTION );
+ 	}
+ 
+@@ -344,7 +343,7 @@ awt::Size SAL_CALL SvxGraphCtrlAccessibleContext::getSize() throw( RuntimeExcept
+ 
+ sal_Int32 SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleChildCount( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpPage )
+ 		throw DisposedException();
+@@ -358,7 +357,7 @@ sal_Int32 SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleChildCount( void
+ SdrObject* SvxGraphCtrlAccessibleContext::getSdrObject( sal_Int32 nIndex )
+ 	throw( RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpPage )
+ 		throw DisposedException();
+@@ -398,7 +397,7 @@ void SvxGraphCtrlAccessibleContext::FireEvent (const AccessibleEventObject& aEve
+ Reference< XAccessible > SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
+ 	throw( RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return getAccessible( getSdrObject( nIndex ) );
+ }
+@@ -414,7 +413,7 @@ Reference< XAccessible > SAL_CALL SvxGraphCtrlAccessibleContext::getAccessiblePa
+ 
+ sal_Int32 SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleIndexInParent( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	//	Use a simple but slow solution for now.  Optimize later.
+ 
+     //	Iterate over all the parent's children and search for this object.
+@@ -453,7 +452,7 @@ sal_Int16 SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleRole( void ) thro
+ 
+ OUString SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleDescription( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return msDescription;
+ }
+ 
+@@ -461,7 +460,7 @@ OUString SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleDescription( void
+ 
+ OUString SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleName( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return msName;
+ }
+ 
+@@ -479,7 +478,7 @@ Reference< XAccessibleRelationSet > SAL_CALL SvxGraphCtrlAccessibleContext::getA
+ 
+ Reference< XAccessibleStateSet > SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleStateSet( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ 
+@@ -506,7 +505,7 @@ Reference< XAccessibleStateSet > SAL_CALL SvxGraphCtrlAccessibleContext::getAcce
+ 
+ lang::Locale SAL_CALL SvxGraphCtrlAccessibleContext::getLocale( void ) throw( IllegalAccessibleComponentStateException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mxParent.is() )
+     {
+@@ -526,7 +525,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::addEventListener( const Reference<
+ {
+ 	if (xListener.is())
+     {
+-        OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if (!mnClientId)
+             mnClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ 		comphelper::AccessibleEventNotifier::addEventListener( mnClientId, xListener );
+@@ -540,7 +539,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::removeEventListener( const Referenc
+ {
+ 	if (xListener.is())
+ 	{
+-    	OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( mnClientId, xListener );
+ 		if ( !nListenerCount )
+@@ -560,7 +559,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::removeEventListener( const Referenc
+ void SAL_CALL SvxGraphCtrlAccessibleContext::addFocusListener( const Reference< awt::XFocusListener >& xListener )
+ 	throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( xListener.is() )
+     {
+@@ -575,7 +574,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::addFocusListener( const Reference<
+ void SAL_CALL SvxGraphCtrlAccessibleContext::removeFocusListener( const Reference< awt::XFocusListener >& xListener )
+ 	throw (RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( xListener.is() )
+     {
+@@ -589,7 +588,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::removeFocusListener( const Referenc
+ 
+ void SAL_CALL SvxGraphCtrlAccessibleContext::grabFocus() throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpControl )
+ 		throw DisposedException();
+@@ -639,7 +638,7 @@ OUString SAL_CALL SvxGraphCtrlAccessibleContext::getImplementationName( void ) t
+ 
+ sal_Bool SAL_CALL SvxGraphCtrlAccessibleContext::supportsService( const OUString& sServiceName ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     //  Iterate over all supported service names and return true if on of them
+     //  matches the given name.
+     Sequence< OUString >	aSupportedServices( getSupportedServiceNames() );
+@@ -671,7 +670,7 @@ Sequence< OUString > SAL_CALL SvxGraphCtrlAccessibleContext::getSupportedService
+ 
+ Sequence<sal_Int8> SAL_CALL SvxGraphCtrlAccessibleContext::getImplementationId( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return getUniqueId();
+ }
+ 
+@@ -686,7 +685,7 @@ OUString SvxGraphCtrlAccessibleContext::getServiceName( void ) throw( RuntimeExc
+ 
+ void SAL_CALL SvxGraphCtrlAccessibleContext::selectAccessibleChild( sal_Int32 nIndex ) throw( lang::IndexOutOfBoundsException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpView )
+ 		throw DisposedException();
+@@ -701,7 +700,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::selectAccessibleChild( sal_Int32 nI
+ 
+ sal_Bool SAL_CALL SvxGraphCtrlAccessibleContext::isAccessibleChildSelected( sal_Int32 nIndex ) throw( lang::IndexOutOfBoundsException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpView )
+ 		throw DisposedException();
+@@ -713,7 +712,7 @@ sal_Bool SAL_CALL SvxGraphCtrlAccessibleContext::isAccessibleChildSelected( sal_
+ 
+ void SAL_CALL SvxGraphCtrlAccessibleContext::clearAccessibleSelection() throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpView )
+ 		throw DisposedException();
+@@ -725,7 +724,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::clearAccessibleSelection() throw( R
+ 
+ void SAL_CALL SvxGraphCtrlAccessibleContext::selectAllAccessibleChildren() throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpView )
+ 		throw DisposedException();
+@@ -737,7 +736,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::selectAllAccessibleChildren() throw
+ 
+ sal_Int32 SAL_CALL SvxGraphCtrlAccessibleContext::getSelectedAccessibleChildCount() throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpView )
+ 		throw DisposedException();
+@@ -751,7 +750,7 @@ sal_Int32 SAL_CALL SvxGraphCtrlAccessibleContext::getSelectedAccessibleChildCoun
+ Reference< XAccessible > SAL_CALL SvxGraphCtrlAccessibleContext::getSelectedAccessibleChild( sal_Int32 nIndex )
+ 	throw( lang::IndexOutOfBoundsException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	checkChildIndexOnSelection( nIndex );
+ 
+@@ -769,7 +768,7 @@ Reference< XAccessible > SAL_CALL SvxGraphCtrlAccessibleContext::getSelectedAcce
+ 
+ void SAL_CALL SvxGraphCtrlAccessibleContext::deselectAccessibleChild( sal_Int32 nIndex ) throw( lang::IndexOutOfBoundsException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	checkChildIndexOnSelection( nIndex );
+ 
+@@ -816,7 +815,7 @@ void SvxGraphCtrlAccessibleContext::checkChildIndexOnSelection( long nIndex ) th
+ 
+ void SvxGraphCtrlAccessibleContext::setName( const OUString& rName )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	msName = rName;
+ }
+@@ -825,7 +824,7 @@ void SvxGraphCtrlAccessibleContext::setName( const OUString& rName )
+ 
+ void SvxGraphCtrlAccessibleContext::setDescription( const OUString& rDescr )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	msDescription = rDescr;
+ }
+@@ -840,7 +839,7 @@ void SvxGraphCtrlAccessibleContext::setModelAndView (
+     SdrModel* pModel,
+     SdrView* pView)
+ {
+-	OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+     mpModel = pModel;
+     if (mpModel != NULL)
+@@ -867,7 +866,7 @@ void SvxGraphCtrlAccessibleContext::setModelAndView (
+ 
+ void SAL_CALL SvxGraphCtrlAccessibleContext::disposing()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mbDisposed )
+ 		return;
+@@ -906,7 +905,7 @@ void SAL_CALL SvxGraphCtrlAccessibleContext::disposing()
+ 
+ Rectangle SvxGraphCtrlAccessibleContext::GetBoundingBoxOnScreen( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpControl )
+ 		throw DisposedException();
+@@ -925,7 +924,7 @@ Rectangle SvxGraphCtrlAccessibleContext::GetBoundingBoxOnScreen( void ) throw( R
+ */
+ Rectangle SvxGraphCtrlAccessibleContext::GetBoundingBox( void ) throw( RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Rectangle aBounds ( 0, 0, 0, 0 );
+ 
+@@ -954,7 +953,7 @@ Sequence< sal_Int8 > SvxGraphCtrlAccessibleContext::getUniqueId( void )
+ 	static OImplementationId*	pId = 0;
+ 	if( !pId )
+ 	{
+-		OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		if( !pId)
+ 		{
+ 			static OImplementationId	aId;
+diff --git a/svx/source/accessibility/ShapeTypeHandler.cxx b/svx/source/accessibility/ShapeTypeHandler.cxx
+index 311905e..489d368 100755
+--- svx/source/accessibility/ShapeTypeHandler.cxx
++++ svx/source/accessibility/ShapeTypeHandler.cxx
+@@ -46,8 +46,8 @@
+ #include <com/sun/star/drawing/XShapeDescriptor.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -88,7 +88,7 @@ ShapeTypeHandler& ShapeTypeHandler::Instance (void)
+     // the shape type handler is instantiated.
+     if (instance == NULL)
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         if (instance == NULL)
+         {
+             // Create the single instance of the shape type handler.
+@@ -201,7 +201,7 @@ ShapeTypeHandler::~ShapeTypeHandler	(void)
+ bool ShapeTypeHandler::AddShapeTypeList (int nDescriptorCount,
+     ShapeTypeDescriptor aDescriptorList[])
+ {
+-    ::vos::OGuard aGuard (::Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+ 
+     // Determine first id of new type descriptor(s).
+     int nFirstId = maShapeTypeDescriptorList.size();
+@@ -351,7 +351,7 @@ long ShapeTypeHandler::GetSlotId (const uno::Reference<drawing::XShape>& rxShape
+ 
+     if (nResourceId != -1)
+     {
+-        ::vos::OGuard aGuard (::Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard (::Application::GetSolarMutex());
+         sName = OUString (SVX_RESSTR((unsigned short)nResourceId));
+     }
+ 
+diff --git a/svx/source/accessibility/svxrectctaccessiblecontext.cxx b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
+index 3b32749..1a6c3ec 100644
+--- svx/source/accessibility/svxrectctaccessiblecontext.cxx
++++ svx/source/accessibility/svxrectctaccessiblecontext.cxx
+@@ -215,7 +215,7 @@ SvxRectCtlAccessibleContext::SvxRectCtlAccessibleContext(
+ 		msName = *pName;
+ 	else
+ 	{
+-		::vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 		msName = SVX_RESSTR( mbAngleMode? RID_SVXSTR_RECTCTL_ACC_ANGL_NAME : RID_SVXSTR_RECTCTL_ACC_CORN_NAME );
+ 	}
+ 
+@@ -223,7 +223,7 @@ SvxRectCtlAccessibleContext::SvxRectCtlAccessibleContext(
+ 		msDescription = *pDesc;
+ 	else
+ 	{
+-		::vos::OGuard	aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard	aSolarGuard( Application::GetSolarMutex() );
+ 		msDescription = SVX_RESSTR( mbAngleMode? RID_SVXSTR_RECTCTL_ACC_ANGL_DESCR : RID_SVXSTR_RECTCTL_ACC_CORN_DESCR );
+ 	}
+ 
+@@ -340,7 +340,7 @@ Reference< XAccessible > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleChil
+ 	Reference< XAccessible >	xChild = mpChilds[ nIndex ];
+ 	if( !xChild.is() )
+ 	{
+-		::vos::OGuard		aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard		aSolarGuard( Application::GetSolarMutex() );
+ 
+ 		::osl::MutexGuard	aGuard( m_aMutex );
+ 
+@@ -534,7 +534,7 @@ void SAL_CALL SvxRectCtlAccessibleContext::removeFocusListener( const Reference<
+ 
+ void SAL_CALL SvxRectCtlAccessibleContext::grabFocus() throw( RuntimeException )
+ {
+-	::vos::OGuard		aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard		aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard	aGuard( m_aMutex );
+ 
+ 	ThrowExceptionIfNotAlive();
+@@ -551,7 +551,7 @@ Any SAL_CALL SvxRectCtlAccessibleContext::getAccessibleKeyBinding() throw( Runti
+ sal_Int32 SvxRectCtlAccessibleContext::getForeground(  )
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard       aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard       aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard   aGuard( m_aMutex );
+     ThrowExceptionIfNotAlive();
+ 
+@@ -560,7 +560,7 @@ sal_Int32 SvxRectCtlAccessibleContext::getForeground(  )
+ sal_Int32 SvxRectCtlAccessibleContext::getBackground(  )
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard       aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard       aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard   aGuard( m_aMutex );
+     ThrowExceptionIfNotAlive();
+ 
+@@ -609,7 +609,7 @@ Sequence< sal_Int8 > SAL_CALL SvxRectCtlAccessibleContext::getImplementationId(
+ 
+ void SAL_CALL SvxRectCtlAccessibleContext::selectAccessibleChild( sal_Int32 nIndex ) throw( lang::IndexOutOfBoundsException, RuntimeException )
+ {
+-	::vos::OGuard		aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard		aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	::osl::MutexGuard	aGuard( m_aMutex );
+ 
+@@ -804,7 +804,7 @@ void SAL_CALL SvxRectCtlAccessibleContext::disposing()
+ 
+ Rectangle SvxRectCtlAccessibleContext::GetBoundingBoxOnScreen( void ) throw( RuntimeException )
+ {
+-	::vos::OGuard		aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard		aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard	aGuard( m_aMutex );
+ 
+ 	ThrowExceptionIfNotAlive();
+@@ -814,7 +814,7 @@ Rectangle SvxRectCtlAccessibleContext::GetBoundingBoxOnScreen( void ) throw( Run
+ 
+ Rectangle SvxRectCtlAccessibleContext::GetBoundingBox( void ) throw( RuntimeException )
+ {
+-	::vos::OGuard		aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard		aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard	aGuard( m_aMutex );
+ 
+ 	ThrowExceptionIfNotAlive();
+@@ -970,7 +970,7 @@ Any SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleKeyBinding() throw(
+ sal_Int32 SvxRectCtlChildAccessibleContext::getForeground(  )
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard       aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard       aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard   aGuard( maMutex );
+     ThrowExceptionIfNotAlive();
+     return mrParentWindow.GetControlForeground().GetColor();
+@@ -978,7 +978,7 @@ sal_Int32 SvxRectCtlChildAccessibleContext::getForeground(  )
+ sal_Int32 SvxRectCtlChildAccessibleContext::getBackground(  )
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard       aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard       aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard   aGuard( maMutex );
+ 
+     ThrowExceptionIfNotAlive();
+diff --git a/svx/source/customshapes/tbxcustomshapes.cxx b/svx/source/customshapes/tbxcustomshapes.cxx
+index ffc69be..89788c9 100644
+--- svx/source/customshapes/tbxcustomshapes.cxx
++++ svx/source/customshapes/tbxcustomshapes.cxx
+@@ -59,8 +59,8 @@
+ #ifndef _SV_TOOLBOX_HXX
+ #include <vcl/toolbox.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <sfx2/imagemgr.hxx>
+@@ -200,7 +200,7 @@ void SAL_CALL SvxTbxCtlCustomShapes::functionSelected( const ::rtl::OUString& rC
+     m_aCommand = rCommand;
+     // Our sub-toolbar wants to execute a function.
+     // We have to change the image of our toolbar button to reflect the new function.
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( !m_bDisposed )
+     {
+         if ( m_aCommand.getLength() > 0 )
+@@ -217,7 +217,7 @@ void SAL_CALL SvxTbxCtlCustomShapes::updateImage(  ) throw (::com::sun::star::un
+ {
+     // We should update the button image of our parent (toolbar).
+     // Use the stored command to set the correct current image.
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_aCommand.getLength() > 0 )
+     {
+         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame( getFrameInterface());
+diff --git a/svx/source/dialog/cuifmsearch.cxx b/svx/source/dialog/cuifmsearch.cxx
+index a042e4f..0c922be 100644
+--- svx/source/dialog/cuifmsearch.cxx
++++ svx/source/dialog/cuifmsearch.cxx
+@@ -826,7 +826,7 @@ void FmSearchDialog::OnFound(const ::com::sun::star::uno::Any& aCursorPos, sal_I
+ //------------------------------------------------------------------------
+ IMPL_LINK(FmSearchDialog, OnSearchProgress, FmSearchProgress*, pProgress)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		// diese eine Methode Thread-sicher machen (das ist ein Overkill, die ganze restliche Applikation dafuer zu blockieren,
+ 		// aber im Augenblick haben wir kein anderes Sicherheitskonpzept)
+ 
+diff --git a/svx/source/dialog/cuigaldlg.cxx b/svx/source/dialog/cuigaldlg.cxx
+index b8f0949..0d5ab4b 100644
+--- svx/source/dialog/cuigaldlg.cxx
++++ svx/source/dialog/cuigaldlg.cxx
+@@ -42,7 +42,7 @@
+ 
+ #include <algorithm>
+ #include <ucbhelper/content.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/msgbox.hxx>
+ #include <avmedia/mediawindow.hxx>
+@@ -176,7 +176,7 @@ void SearchThread::ImplSearch( const INetURLObject& rStartURL,
+                                BOOL bRecursive )
+ {
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         mpProgress->SetDirectory( rStartURL );
+         mpProgress->Sync();
+@@ -231,7 +231,7 @@ void SearchThread::ImplSearch( const INetURLObject& rStartURL,
+                                          String(aFoundURL.GetExtension().toAsciiLowerCase()) )
+                             != rFormats.end() )
+                         {
+-                            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++                            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+                             mpBrowser->aFoundList.Insert(
+                                 new String( aFoundURL.GetMainURL( INetURLObject::NO_DECODE ) ),
+@@ -344,7 +344,7 @@ void SAL_CALL TakeThread::run()
+ 	GalleryProgress*	pStatusProgress;
+ 
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+         pStatusProgress = new GalleryProgress;
+         nEntries = mpBrowser->bTakeAll ? mpBrowser->aLbxFound.GetEntryCount() : mpBrowser->aLbxFound.GetSelectEntryCount();
+         pThm->LockBroadcaster();
+@@ -362,7 +362,7 @@ void SAL_CALL TakeThread::run()
+         mrTakenList.Insert( (void*) (ULONG)nPos, LIST_APPEND );
+ 
+         {
+-            ::vos::OGuard aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+             mpProgress->SetFile( aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) );
+             pStatusProgress->Update( i, nEntries - 1 );
+@@ -372,7 +372,7 @@ void SAL_CALL TakeThread::run()
+ 	}
+ 
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         pThm->UnlockBroadcaster();
+         delete pStatusProgress;
+diff --git a/svx/source/dialog/docrecovery.cxx b/svx/source/dialog/docrecovery.cxx
+index 99725f2..d53b201 100644
+--- svx/source/dialog/docrecovery.cxx
++++ svx/source/dialog/docrecovery.cxx
+@@ -56,6 +56,7 @@
+ #include <tools/urlobj.hxx>
+ #include <vcl/msgbox.hxx>
+ #include <vcl/svapp.hxx>
++#include <osl/mutex.hxx>
+ #include <rtl/ustrbuf.hxx>
+ #ifndef _SV_SCRBAR_HXX
+ #include <vcl/scrbar.hxx>
+@@ -132,7 +133,7 @@ void TabDialog4Recovery::addTabPage(IExtendedTabPage* pPage)
+ //===============================================
+ short TabDialog4Recovery::Execute()
+ {
+-    ::vos::OGuard aLock(Application::GetSolarMutex());
++    osl::SolarMutexGuard aLock(Application::GetSolarMutex());
+ 
+     Show();
+     m_pActualPage = m_lTabPages.begin();
+@@ -840,7 +841,7 @@ IMPL_LINK( SaveDialog, OKButtonHdl, void*, EMPTYARG )
+ //===============================================
+ short SaveDialog::execute()
+ {
+-    ::vos::OGuard aLock(Application::GetSolarMutex());
++    osl::SolarMutexGuard aLock(Application::GetSolarMutex());
+ 
+     // wait for user input "OK"
+     m_nResult = DLG_RET_UNKNOWN;
+@@ -891,7 +892,7 @@ SaveProgressDialog::~SaveProgressDialog()
+ //===============================================
+ short SaveProgressDialog::Execute()
+ {
+-    ::vos::OGuard aLock(Application::GetSolarMutex());
++    osl::SolarMutexGuard aLock(Application::GetSolarMutex());
+ 
+     m_pCore->setProgressHandler(m_xProgress);
+     m_pCore->setUpdateListener(this);
+@@ -1153,7 +1154,7 @@ RecoveryDialog::~RecoveryDialog()
+ //===============================================
+ short RecoveryDialog::execute()
+ {
+-    ::vos::OGuard aSolarLock(Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarLock(Application::GetSolarMutex());
+ 
+     switch(m_eRecoveryState)
+     {
+@@ -1646,7 +1647,7 @@ void BrokenRecoveryDialog::impl_askForSavePath()
+ 
+         short ErrorRepWelcomeDialog::execute()
+         {
+-            ::vos::OGuard aLock(Application::GetSolarMutex());
++            osl::SolarMutexGuard aLock(Application::GetSolarMutex());
+             Show();
+             m_nResult = DLG_RET_UNKNOWN;
+             while(m_nResult == DLG_RET_UNKNOWN)
+@@ -1756,7 +1757,7 @@ void BrokenRecoveryDialog::impl_askForSavePath()
+ 
+         short ErrorRepSendDialog::execute()
+         {
+-            ::vos::OGuard aLock(Application::GetSolarMutex());
++            osl::SolarMutexGuard aLock(Application::GetSolarMutex());
+             Show();
+             m_nResult = DLG_RET_UNKNOWN;
+             while(m_nResult == DLG_RET_UNKNOWN)
+diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx
+index 92b3124..618ec44 100644
+--- svx/source/dialog/graphctl.cxx
++++ svx/source/dialog/graphctl.cxx
+@@ -210,7 +210,7 @@ void GraphCtrl::SetWinStyle( WinBits nWinBits )
+ 
+ void GraphCtrl::InitSdrModel()
+ {
+-	::vos::OGuard aGuard (Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard (Application::GetSolarMutex());
+ 
+ 	SdrPage* pPage;
+ 
+diff --git a/svx/source/dialog/scriptdlg.cxx b/svx/source/dialog/scriptdlg.cxx
+index b62999a..fc432e8 100644
+--- svx/source/dialog/scriptdlg.cxx
++++ svx/source/dialog/scriptdlg.cxx
+@@ -42,8 +42,8 @@
+ #include <vcl/svapp.hxx>
+ #include <vcl/msgbox.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <svx/dialogs.hrc>
+@@ -1581,7 +1581,7 @@ SvxScriptErrorDialog::SvxScriptErrorDialog(
+     Window* , ::com::sun::star::uno::Any aException )
+     : m_sMessage()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     m_sMessage = GetErrorMessage( aException );
+ }
+ 
+diff --git a/svx/source/editeng/eeobj.cxx b/svx/source/editeng/eeobj.cxx
+index f3e1484..cc71ea6 100644
+--- svx/source/editeng/eeobj.cxx
++++ svx/source/editeng/eeobj.cxx
+@@ -44,7 +44,7 @@
+ #include <sot/formats.hxx>
+ #include <svx/editeng.hxx>
+ #include <svtools/itempool.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ using namespace ::com::sun::star;
+ 
+diff --git a/svx/source/editeng/impedit.cxx b/svx/source/editeng/impedit.cxx
+index e658b00..7994887 100644
+--- svx/source/editeng/impedit.cxx
++++ svx/source/editeng/impedit.cxx
+@@ -94,7 +94,7 @@
+ #include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <svx/flditem.hxx>
+ #include <svtools/intitem.hxx>
+@@ -1590,7 +1590,7 @@ void ImpEditView::dragGestureRecognized( const ::com::sun::star::datatransfer::d
+ {
+     DBG_ASSERT( !pDragAndDropInfo, "dragGestureRecognized - DragAndDropInfo exist!" );
+ 
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     Point aMousePosPixel( rDGE.DragOriginX, rDGE.DragOriginY );
+ 
+@@ -1668,7 +1668,7 @@ void ImpEditView::dragGestureRecognized( const ::com::sun::star::datatransfer::d
+ 
+ void ImpEditView::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& rDSDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( pDragAndDropInfo, "ImpEditView::dragDropEnd: pDragAndDropInfo is NULL!" );
+ 
+@@ -1761,7 +1761,7 @@ void ImpEditView::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSo
+ 
+ void ImpEditView::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     DBG_ASSERT( pDragAndDropInfo, "Drop - No Drag&Drop info?!" );
+ 
+@@ -1834,7 +1834,7 @@ void ImpEditView::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDro
+ 
+ void ImpEditView::dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& rDTDEE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     if ( !pDragAndDropInfo )
+         pDragAndDropInfo = new DragAndDropInfo( );
+@@ -1861,7 +1861,7 @@ void ImpEditView::dragEnter( const ::com::sun::star::datatransfer::dnd::DropTarg
+ 
+ void ImpEditView::dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     HideDDCursor();
+ 
+@@ -1874,7 +1874,7 @@ void ImpEditView::dragExit( const ::com::sun::star::datatransfer::dnd::DropTarge
+ 
+ void ImpEditView::dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aVclGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     Point aMousePos( rDTDE.LocationX, rDTDE.LocationY );
+ 	aMousePos = GetWindow()->PixelToLogic( aMousePos );
+diff --git a/svx/source/fmcomp/fmgridcl.cxx b/svx/source/fmcomp/fmgridcl.cxx
+index f7ec468..3478b79 100644
+--- svx/source/fmcomp/fmgridcl.cxx
++++ svx/source/fmcomp/fmgridcl.cxx
+@@ -1239,7 +1239,7 @@ void FmGridControl::propertyChange(const ::com::sun::star::beans::PropertyChange
+ 			if (eStatus != xRow->GetStatus())
+ 			{
+ 				xRow->SetStatus(eStatus);
+-				vos::OGuard aGuard( Application::GetSolarMutex() );
++				osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 				RowModified(GetCurrentPos());
+ 			}
+ 		}
+@@ -1965,7 +1965,7 @@ void FmGridControl::ShowColumn(sal_uInt16 nId)
+ //------------------------------------------------------------------------------
+ sal_Bool FmGridControl::selectBookmarks(const Sequence< Any >& _rBookmarks)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		// need to lock the SolarMutex so that no paint call disturbs us ...
+ 
+ 	if ( !m_pSeekCursor )
+diff --git a/svx/source/fmcomp/fmgridif.cxx b/svx/source/fmcomp/fmgridif.cxx
+index 5fb4110..77a03d6 100644
+--- svx/source/fmcomp/fmgridif.cxx
++++ svx/source/fmcomp/fmgridif.cxx
+@@ -475,7 +475,7 @@ sal_Bool SAL_CALL FmXGridControl::supportsService(const ::rtl::OUString& Service
+ //------------------------------------------------------------------------------
+ void SAL_CALL FmXGridControl::dispose() throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	EventObject aEvt;
+ 	aEvt.Source = static_cast< ::cppu::OWeakObject* >(this);
+@@ -496,7 +496,7 @@ void SAL_CALL FmXGridControl::dispose() throw( RuntimeException )
+ //------------------------------------------------------------------------------
+ sal_Bool SAL_CALL FmXGridControl::setModel(const Reference< ::com::sun::star::awt::XControlModel >& rModel) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if (!UnoControl::setModel(rModel))
+ 		return sal_False;
+@@ -708,7 +708,7 @@ void FmXGridControl::addModifyListener(const Reference< ::com::sun::star::util::
+ //------------------------------------------------------------------------------
+ sal_Bool SAL_CALL FmXGridControl::select( const Any& _rSelection ) throw (IllegalArgumentException, RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	Reference< XSelectionSupplier > xPeer(getPeer(), UNO_QUERY);
+ 	return xPeer->select(_rSelection);
+ }
+@@ -716,7 +716,7 @@ sal_Bool SAL_CALL FmXGridControl::select( const Any& _rSelection ) throw (Illega
+ //------------------------------------------------------------------------------
+ Any SAL_CALL FmXGridControl::getSelection(  ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	Reference< XSelectionSupplier > xPeer(getPeer(), UNO_QUERY);
+ 	return xPeer->getSelection();
+ }
+@@ -783,7 +783,7 @@ void SAL_CALL FmXGridControl::removeModifyListener(const Reference< ::com::sun::
+ //------------------------------------------------------------------------------
+ void SAL_CALL FmXGridControl::draw( sal_Int32 x, sal_Int32 y ) throw( RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_bInDraw = sal_True;
+ 	UnoControl::draw(x, y);
+ 	m_bInDraw = sal_False;
+@@ -796,7 +796,7 @@ void SAL_CALL FmXGridControl::setDesignMode(sal_Bool bOn) throw( RuntimeExceptio
+ 
+     // --- <mutex_lock> ---
+     {
+-    	::vos::OGuard aGuard( Application::GetSolarMutex() );
++    	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	    Reference< XRowSetSupplier >  xGrid(getPeer(), UNO_QUERY);
+ 
+@@ -943,7 +943,7 @@ void SAL_CALL FmXGridControl::setCurrentColumnPosition(sal_Int16 nPos) throw( Ru
+ 	Reference< XGrid >  xGrid( getPeer(), UNO_QUERY );
+ 	if ( xGrid.is() )
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		xGrid->setCurrentColumnPosition( nPos );
+ 	}
+ }
+@@ -1456,7 +1456,7 @@ void FmXGridPeer::CellModified()
+ //------------------------------------------------------------------------------
+ void FmXGridPeer::propertyChange(const PropertyChangeEvent& evt) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		// want to do a lot of VCL stuff here ...
+ 		// this should not be (deadlock) critical, as by definition, every component should release
+ 		// any own mutexes before notifying
+@@ -1796,7 +1796,7 @@ sal_Bool FmXGridPeer::isDesignMode() throw( RuntimeException )
+ //------------------------------------------------------------------------------
+ void FmXGridPeer::elementInserted(const ContainerEvent& evt) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	FmGridControl* pGrid = (FmGridControl*) GetWindow();
+ 	// Handle Column beruecksichtigen
+@@ -1830,7 +1830,7 @@ void FmXGridPeer::elementInserted(const ContainerEvent& evt) throw( RuntimeExcep
+ //------------------------------------------------------------------------------
+ void FmXGridPeer::elementReplaced(const ContainerEvent& evt) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	FmGridControl* pGrid = (FmGridControl*) GetWindow();
+ 
+@@ -1886,7 +1886,7 @@ void FmXGridPeer::elementReplaced(const ContainerEvent& evt) throw( RuntimeExcep
+ //------------------------------------------------------------------------------
+ void FmXGridPeer::elementRemoved(const ContainerEvent& evt) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	FmGridControl* pGrid    = (FmGridControl*) GetWindow();
+ 
+@@ -1904,7 +1904,7 @@ void FmXGridPeer::elementRemoved(const ContainerEvent& evt) throw( RuntimeExcept
+ //------------------------------------------------------------------------------
+ void FmXGridPeer::setProperty( const ::rtl::OUString& PropertyName, const Any& Value) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	FmGridControl* pGrid = (FmGridControl*) GetWindow();
+ 
+@@ -2323,7 +2323,7 @@ void FmXGridPeer::setCurrentColumnPosition(sal_Int16 nPos) throw( RuntimeExcepti
+ //------------------------------------------------------------------------------
+ void FmXGridPeer::selectionChanged(const EventObject& evt) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	FmGridControl* pGrid = (FmGridControl*) GetWindow();
+ 	if (pGrid)
+@@ -2710,13 +2710,13 @@ void FmXGridPeer::resetted(const EventObject& rEvent) throw( RuntimeException )
+ 		FmGridControl* pGrid = (FmGridControl*)GetWindow();
+ 		if (!pGrid)
+ 			return;
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		pGrid->resetCurrentRow();
+ 	}
+ 	// if the cursor fired a reset event we seem to be on the insert row
+ 	else if (m_xCursor == rEvent.Source)
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		FmGridControl* pGrid = (FmGridControl*) GetWindow();
+ 		if (pGrid && pGrid->IsOpen())
+ 			pGrid->positioned(rEvent);
+diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
+index a006170..776e335 100644
+--- svx/source/fmcomp/gridcell.cxx
++++ svx/source/fmcomp/gridcell.cxx
+@@ -715,7 +715,7 @@ void DbCellControl::implAdjustGenericFieldSetting( const Reference< XPropertySet
+ //------------------------------------------------------------------------------
+ void DbCellControl::_propertyChanged(const PropertyChangeEvent& _rEvent) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     Reference< XPropertySet > xSourceProps( _rEvent.Source, UNO_QUERY );
+ 
+diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
+index fd13132..f80b500 100644
+--- svx/source/fmcomp/gridctrl.cxx
++++ svx/source/fmcomp/gridctrl.cxx
+@@ -777,7 +777,7 @@ void DbGridControl::NavigationBar::SetState(sal_uInt16 nWhich)
+ 				pWnd->SetText(aText);
+ 
+ 			{
+-				vos::OGuard aPaintSafety(Application::GetSolarMutex());
++				osl::SolarMutexGuard aPaintSafety(Application::GetSolarMutex());
+ 				// we want to update only the window, not our parent, so lock the latter
+ 				// (In fact, if we are in DbGridControl::RecalcRows, perhaps as a result of an setDataSource or
+ 				// a VisibleRowsChanged, the grid will be frozen and a SeekRow triggered implicitly by the update
+@@ -2259,7 +2259,7 @@ void DbGridControl::forceROController(sal_Bool bForce)
+ void DbGridControl::AdjustDataSource(sal_Bool bFull)
+ {
+ 	TRACE_RANGE("DbGridControl::AdjustDataSource");
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// wird die aktuelle Zeile gerade neu bestimmt,
+ 	// wird kein abgleich vorgenommen
+ 
+@@ -2791,7 +2791,7 @@ void DbGridControl::PostExecuteRowContextMenu(sal_uInt16 /*nRow*/, const PopupMe
+ void DbGridControl::DataSourcePropertyChanged(const PropertyChangeEvent& evt) throw( RuntimeException )
+ {
+ 	TRACE_RANGE("DbGridControl::DataSourcePropertyChanged");
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	// prop "IsModified" changed ?
+ 	// during update don't care about the modified state
+ 	if (!IsUpdating() && evt.PropertyName.compareTo(FM_PROP_ISMODIFIED) == COMPARE_EQUAL)
+@@ -3777,7 +3777,7 @@ void DbGridControl::FieldValueChanged(sal_uInt16 _nId, const PropertyChangeEvent
+ 			return;
+ 		}
+ 		// here we got the solar mutex, transfer it to a guard for safety reasons
+-		::vos::OGuard aPaintSafety(Application::GetSolarMutex());
++		osl::SolarMutexGuard aPaintSafety(Application::GetSolarMutex());
+ 		Application::GetSolarMutex().release();
+ 
+ 		// and finally do the update ...
+diff --git a/svx/source/form/ParseContext.cxx b/svx/source/form/ParseContext.cxx
+index 2ec9874..681e5a7 100644
+--- svx/source/form/ParseContext.cxx
++++ svx/source/form/ParseContext.cxx
+@@ -51,8 +51,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ 
+@@ -66,7 +66,7 @@ DBG_NAME(OSystemParseContext)
+ OSystemParseContext::OSystemParseContext() : IParseContext()
+ {
+ 	DBG_CTOR(OSystemParseContext,NULL);
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	m_aSQLInternationals = ByteString(SVX_RES(RID_STR_SVT_SQL_INTERNATIONAL),RTL_TEXTENCODING_UTF8);
+ }
+ 
+@@ -86,7 +86,7 @@ OSystemParseContext::~OSystemParseContext()
+ ::rtl::OUString OSystemParseContext::getErrorMessage(ErrorCode _eCode) const
+ {
+ 	String aMsg;
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	switch (_eCode)
+ 	{
+ 		case ERROR_GENERAL:					aMsg = SVX_RES(RID_STR_SVT_SQL_SYNTAX_ERROR); break;
+diff --git a/svx/source/form/fmctrler.cxx b/svx/source/form/fmctrler.cxx
+index 9741218..2118834 100644
+--- svx/source/form/fmctrler.cxx
++++ svx/source/form/fmctrler.cxx
+@@ -3410,7 +3410,7 @@ sal_Bool SAL_CALL FmXFormController::approveParameter(const DatabaseParameterEve
+ 
+             // handle the request
+             {
+-                ::vos::OGuard aGuard(Application::GetSolarMutex());
++                osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+                 m_xInteractionHandler->handle(xParamRequest);
+             }
+ 
+diff --git a/svx/source/form/fmscriptingenv.cxx b/svx/source/form/fmscriptingenv.cxx
+index ac723ec..cf59b94 100644
+--- svx/source/form/fmscriptingenv.cxx
++++ svx/source/form/fmscriptingenv.cxx
+@@ -79,8 +79,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFX_OBJSH_HXX //autogen
+ #include <sfx2/objsh.hxx>
+@@ -515,7 +515,7 @@ namespace svxform
+     //--------------------------------------------------------------------
+     void FormScriptingEnvironment::doFireScriptEvent( const ScriptEvent& _rEvent, Any* _pSyncronousResult )
+     {
+-	    ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	    osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ::osl::ClearableMutexGuard aGuard( m_aMutex );
+ 
+         if ( m_bDisposed )
+@@ -577,7 +577,7 @@ namespace svxform
+ 
+ 	    {
+ 	        // object shells are not thread safe, so guard the destruction
+-		    ::vos::OGuard aSolarGuarsReset( Application::GetSolarMutex() );
++		    osl::SolarMutexGuard aSolarGuarsReset( Application::GetSolarMutex() );
+ 		    xObjectShell = NULL;
+ 	    }
+     }
+diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
+index 8fa2145..b94754d 100644
+--- svx/source/form/fmshimp.cxx
++++ svx/source/form/fmshimp.cxx
+@@ -820,7 +820,7 @@ void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw
+ 		// (Solche Paints passieren zum Beispiel, wenn man einfach nur eine andere Applikation ueber das Office legt und wieder
+ 		// zurueckschaltet).
+ 		// Deshalb die Benutzung des SolarMutex, der sichert das ab.
+-		::vos::IMutex& rSolarSafety = Application::GetSolarMutex();
++        osl::SolarMutex& rSolarSafety = Application::GetSolarMutex();
+ 		if (rSolarSafety.tryToAcquire())
+ 		{
+ 			m_pShell->GetViewShell()->GetViewFrame()->GetBindings().Invalidate(SID_FM_RECORD_TOTAL , sal_True, sal_False);
+@@ -4282,7 +4282,7 @@ void FmCursorActionThread::run()
+ 	// To prevent that we get the solar mutex and _block_ 'til we got it.
+ 	// As we are in the 'top level execution' of this thread (with a rather small stack and no other mutexes locked)
+ 	// we shouldn't experience problems with deadlocks ...
+-	::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex());
++	osl::ClearableSolarMutexGuard aSolarGuard(Application::GetSolarMutex());
+ 	ThreadStopper* pStopper = new ThreadStopper(this, m_sStopperCaption);
+ 	aSolarGuard.clear();
+ 
+diff --git a/svx/source/form/fmtextcontrolshell.cxx b/svx/source/form/fmtextcontrolshell.cxx
+index ee7d142..4dcccde 100644
+--- svx/source/form/fmtextcontrolshell.cxx
++++ svx/source/form/fmtextcontrolshell.cxx
+@@ -172,8 +172,8 @@
+ #include <svx/udlnitem.hxx>
+ #include <svx/crsditem.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <memory>
+@@ -442,7 +442,7 @@ namespace svx
+     //--------------------------------------------------------------------
+     void SAL_CALL FmMouseListenerAdapter::mousePressed( const awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException)
+     {
+-        ::vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	    // is this a request for a context menu?
+ 	    if ( _rEvent.PopupTrigger )
+         {
+diff --git a/svx/source/form/fmundo.cxx b/svx/source/form/fmundo.cxx
+index bb74088..b1a304c 100644
+--- svx/source/form/fmundo.cxx
++++ svx/source/form/fmundo.cxx
+@@ -747,7 +747,7 @@ void SAL_CALL FmXUndoEnvironment::propertyChange(const PropertyChangeEvent& evt)
+             // TODO: this is a potential race condition: two threads here could in theory
+             // add their undo actions out-of-order
+ 
+-            ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++            osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             rModel.AddUndo(new FmUndoPropertyAction(rModel, evt));
+         }
+ 	}
+@@ -768,7 +768,7 @@ void SAL_CALL FmXUndoEnvironment::propertyChange(const PropertyChangeEvent& evt)
+ //------------------------------------------------------------------------------
+ void SAL_CALL FmXUndoEnvironment::elementInserted(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_aMutex );
+ 
+ 	// neues Object zum lauschen
+@@ -792,7 +792,7 @@ void FmXUndoEnvironment::implSetModified()
+ //------------------------------------------------------------------------------
+ void SAL_CALL FmXUndoEnvironment::elementReplaced(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_aMutex );
+ 
+     Reference< XInterface >  xIface;
+@@ -809,7 +809,7 @@ void SAL_CALL FmXUndoEnvironment::elementReplaced(const ContainerEvent& evt) thr
+ //------------------------------------------------------------------------------
+ void SAL_CALL FmXUndoEnvironment::elementRemoved(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+     ::osl::MutexGuard aGuard( m_aMutex );
+ 
+     Reference< XInterface >  xIface( evt.Element, UNO_QUERY );
+diff --git a/svx/source/gengal/gengal.cxx b/svx/source/gengal/gengal.cxx
+index 2d6deba..e53b4f7 100644
+--- svx/source/gengal/gengal.cxx
++++ svx/source/gengal/gengal.cxx
+@@ -77,7 +77,6 @@
+ #include <galtheme.hxx>
+ #include <gallery1.hxx>
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::registry;
+diff --git a/svx/source/inc/GraphCtlAccessibleContext.hxx b/svx/source/inc/GraphCtlAccessibleContext.hxx
+index 69098a9..b302278 100644
+--- svx/source/inc/GraphCtlAccessibleContext.hxx
++++ svx/source/inc/GraphCtlAccessibleContext.hxx
+@@ -80,8 +80,8 @@
+ #ifndef _COM_SUN_STAR_LANG_INDEXOUTOFBOUNDSEXCEPTION_HPP_
+ #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COMPHELPER_BROADCASTHELPER_HXX_
+ #include <comphelper/broadcasthelper.hxx>
+diff --git a/svx/source/inc/charmapacc.hxx b/svx/source/inc/charmapacc.hxx
+index c131192..6da6689 100644
+--- svx/source/inc/charmapacc.hxx
++++ svx/source/inc/charmapacc.hxx
+@@ -33,8 +33,8 @@
+  *
+  ************************************************************************/
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _LIST_HXX
+ #include <tools/list.hxx>
+diff --git a/svx/source/inc/fmtools.hxx b/svx/source/inc/fmtools.hxx
+index 3d64c9b..75f29e5 100644
+--- svx/source/inc/fmtools.hxx
++++ svx/source/inc/fmtools.hxx
+@@ -147,8 +147,8 @@
+ #include <vcl/wintypes.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SVSTDARR_ULONGS
+diff --git a/svx/source/inc/svxrectctaccessiblecontext.hxx b/svx/source/inc/svxrectctaccessiblecontext.hxx
+index 09044be..751a3e3 100644
+--- svx/source/inc/svxrectctaccessiblecontext.hxx
++++ svx/source/inc/svxrectctaccessiblecontext.hxx
+@@ -83,8 +83,8 @@
+ #ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
+ #include <com/sun/star/lang/DisposedException.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _CPPUHELPER_INTERFACECONTAINER_H_
+ #include <cppuhelper/interfacecontainer.h>
+diff --git a/svx/source/inc/trace.hxx b/svx/source/inc/trace.hxx
+index e1c9169..b13c483 100644
+--- svx/source/inc/trace.hxx
++++ svx/source/inc/trace.hxx
+@@ -43,8 +43,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COMPHELPER_STLTYPES_HXX_
+ #include <comphelper/stl_types.hxx>
+diff --git a/svx/source/init/init.cxx b/svx/source/init/init.cxx
+index 0cb0e40..470b76f 100644
+--- svx/source/init/init.cxx
++++ svx/source/init/init.cxx
+@@ -39,7 +39,7 @@
+ #include <svx/svxdlg.hxx>
+ #include <svx/dialogs.hrc>
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include <vcl/edit.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/dialog.hxx>
+diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+index 673f9d8..882ac93 100644
+--- svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
++++ svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+@@ -125,8 +125,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+@@ -1414,7 +1414,7 @@ namespace sdr { namespace contact {
+     //--------------------------------------------------------------------
+     void SAL_CALL ViewObjectContactOfUnoControl_Impl::propertyChange( const PropertyChangeEvent& /*_rEvent*/ ) throw(RuntimeException)
+     {
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+             // (re)painting might require VCL operations, which need the SolarMutex
+ 
+         VOCGuard aGuard( *this );
+diff --git a/svx/source/smarttags/SmartTagMgr.cxx b/svx/source/smarttags/SmartTagMgr.cxx
+index 03b2f3f..5eda910 100644
+--- svx/source/smarttags/SmartTagMgr.cxx
++++ svx/source/smarttags/SmartTagMgr.cxx
+@@ -44,7 +44,7 @@
+ #include <svx/SmartTagMgr.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <com/sun/star/smarttags/XSmartTagRecognizer.hpp>
+ #include <com/sun/star/smarttags/XSmartTagAction.hpp>
+@@ -271,7 +271,7 @@ void SmartTagMgr::WriteConfiguration( const bool* pIsLabelTextWithSmartTags,
+ // ::com::sun::star::util::XModifyListener
+ void SmartTagMgr::modified( const lang::EventObject& )	throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     maRecognizerList.clear();
+     maActionList.clear();
+@@ -283,7 +283,7 @@ void SmartTagMgr::modified( const lang::EventObject& )	throw( RuntimeException )
+ // ::com::sun::star::lang::XEventListener
+ void SmartTagMgr::disposing( const lang::EventObject& rEvent ) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Reference< frame::XModel >  xModel( rEvent.Source, uno::UNO_QUERY );
+     uno::Reference< util::XModifyBroadcaster >  xMB(xModel, uno::UNO_QUERY);
+@@ -310,7 +310,7 @@ void SmartTagMgr::disposing( const lang::EventObject& rEvent ) throw( RuntimeExc
+ // ::com::sun::star::util::XChangesListener
+ void SmartTagMgr::changesOccurred( const util::ChangesEvent& rEvent ) throw( RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     const util::ElementChange* pElementChanges = rEvent.Changes.getConstArray();
+     const sal_Int32 nNumberOfChanges = rEvent.Changes.getLength();
+diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx
+index 0d69a61..1eed78b 100644
+--- svx/source/svdraw/sdrpagewindow.cxx
++++ svx/source/svdraw/sdrpagewindow.cxx
+@@ -96,8 +96,8 @@
+ #include <svx/sdr/contact/displayinfo.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif 
+ 
+ #ifndef _SVX_FMVIEW_HXX
+diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx
+index fcd6765..97e3d69 100644
+--- svx/source/svdraw/svdoole2.cxx
++++ svx/source/svdraw/svdoole2.cxx
+@@ -112,8 +112,8 @@
+ #include <svtools/urihelper.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -186,7 +186,7 @@ void SAL_CALL SdrLightEmbeddedClient_Impl::changingState( const ::com::sun::star
+ void SdrLightEmbeddedClient_Impl::Release()
+ {
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     	mpObj = NULL;
+ 	}
+ 
+@@ -196,7 +196,7 @@ void SdrLightEmbeddedClient_Impl::Release()
+ //--------------------------------------------------------------------
+ void SAL_CALL SdrLightEmbeddedClient_Impl::stateChanged( const ::com::sun::star::lang::EventObject& /*aEvent*/, ::sal_Int32 nOldState, ::sal_Int32 nNewState ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if ( mpObj && nOldState == embed::EmbedStates::LOADED && nNewState == embed::EmbedStates::RUNNING )
+     {
+@@ -212,7 +212,7 @@ void SAL_CALL SdrLightEmbeddedClient_Impl::stateChanged( const ::com::sun::star:
+ //--------------------------------------------------------------------
+ void SAL_CALL SdrLightEmbeddedClient_Impl::disposing( const ::com::sun::star::lang::EventObject& /*aEvent*/ ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     GetSdrGlobalData().GetOLEObjCache().RemoveObj(mpObj);
+ }
+@@ -222,7 +222,7 @@ void SAL_CALL SdrLightEmbeddedClient_Impl::notifyEvent( const document::EventObj
+ {
+ 	// TODO/LATER: when writer uses this implementation the code could be shared with SfxInPlaceClient_Impl
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// the code currently makes sence only in case there is no other client
+ 	if ( mpObj && mpObj->GetAspect() != embed::Aspects::MSOLE_ICON && aEvent.EventName.equalsAscii("OnVisAreaChanged")
+@@ -294,7 +294,7 @@ void SAL_CALL SdrLightEmbeddedClient_Impl::saveObject()
+ 	uno::Reference< util::XModifiable > xModifiable;
+ 
+ 	{
+-		::vos::OGuard aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		if ( !mpObj )
+ 			throw embed::ObjectSaveVetoException();
+@@ -325,7 +325,7 @@ uno::Reference< util::XCloseable > SAL_CALL SdrLightEmbeddedClient_Impl::getComp
+ {
+ 	uno::Reference< util::XCloseable > xResult;
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( mpObj )
+ 		xResult = uno::Reference< util::XCloseable >( mpObj->GetParentXModel(), uno::UNO_QUERY );
+ 
+diff --git a/svx/source/tbxctrls/tbxalign.cxx b/svx/source/tbxctrls/tbxalign.cxx
+index 6aa4dbc..ae8ee90 100644
+--- svx/source/tbxctrls/tbxalign.cxx
++++ svx/source/tbxctrls/tbxalign.cxx
+@@ -54,8 +54,8 @@
+ #include <sfx2/imagemgr.hxx>
+ #endif
+ #include <vcl/svapp.hxx>
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <sfx2/app.hxx>
+@@ -101,7 +101,7 @@ SfxPopupWindowType SvxTbxCtlAlign::GetPopupWindowType() const
+ 
+ SfxPopupWindow*	SvxTbxCtlAlign::CreatePopupWindow()
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( GetSlotId() == SID_OBJECT_ALIGN )
+         createAndPositionSubToolBar( m_aSubTbResName );
+ 	return NULL;
+@@ -121,7 +121,7 @@ SfxPopupWindow*	SvxTbxCtlAlign::CreatePopupWindow()
+ {
+     // Provide the controlled sub-toolbar name, so we are notified whenever 
+     // this toolbar executes a function.
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return m_aSubTbName;
+ }
+ 
+@@ -129,7 +129,7 @@ void SAL_CALL SvxTbxCtlAlign::functionSelected( const ::rtl::OUString& aCommand
+ {
+     // Our sub-toolbar wants to executes a function. We have to change
+     // the image of our toolbar button to reflect the new function.
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( !m_bDisposed )
+     {
+         if ( aCommand.getLength() > 0 )
+@@ -146,7 +146,7 @@ void SAL_CALL SvxTbxCtlAlign::updateImage() throw (::com::sun::star::uno::Runtim
+ {
+     // We should update the button image of our parent (toolbar). Use the stored
+     // command to set the correct current image.
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if ( m_aCommand.getLength() > 0 )
+     {
+         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame( getFrameInterface());
+diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx b/svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx
+index db2a82b..382543f 100644
+--- svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx
++++ svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -99,7 +99,7 @@ ChineseTranslation_UnoDialog::ChineseTranslation_UnoDialog( const uno::Reference
+ 
+ ChineseTranslation_UnoDialog::~ChineseTranslation_UnoDialog()
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+ 	impl_DeleteDialog();
+ }
+ 
+@@ -161,7 +161,7 @@ void SAL_CALL ChineseTranslation_UnoDialog::setTitle( const ::rtl::OUString& ) t
+ //-------------------------------------------------------------------------
+ void SAL_CALL ChineseTranslation_UnoDialog::initialize( const uno::Sequence< uno::Any >& aArguments ) throw(uno::Exception, uno::RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     if( m_bDisposed || m_bInDispose )
+         return;
+ 
+@@ -184,7 +184,7 @@ sal_Int16 SAL_CALL ChineseTranslation_UnoDialog::execute() throw(uno::RuntimeExc
+ {
+     sal_Int16 nRet = ui::dialogs::ExecutableDialogResults::CANCEL;
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         if( m_bDisposed || m_bInDispose )
+             return nRet;
+ 
+@@ -216,7 +216,7 @@ void SAL_CALL ChineseTranslation_UnoDialog::dispose() throw (uno::RuntimeExcepti
+ {
+     lang::EventObject aEvt;
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         if( m_bDisposed || m_bInDispose )
+             return;
+         m_bInDispose = true;
+@@ -233,7 +233,7 @@ void SAL_CALL ChineseTranslation_UnoDialog::dispose() throw (uno::RuntimeExcepti
+ 
+ void SAL_CALL ChineseTranslation_UnoDialog::addEventListener( const uno::Reference< lang::XEventListener > & xListener ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     if( m_bDisposed || m_bInDispose )
+         return;
+     m_aDisposeEventListeners.addInterface( xListener );
+@@ -241,7 +241,7 @@ void SAL_CALL ChineseTranslation_UnoDialog::addEventListener( const uno::Referen
+ 
+ void SAL_CALL ChineseTranslation_UnoDialog::removeEventListener( const uno::Reference< lang::XEventListener > & xListener ) throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+     if( m_bDisposed || m_bInDispose )
+         return;
+     m_aDisposeEventListeners.removeInterface( xListener );
+@@ -268,7 +268,7 @@ uno::Any SAL_CALL ChineseTranslation_UnoDialog::getPropertyValue( const ::rtl::O
+     sal_Bool bTranslateCommonTerms = sal_False;
+ 
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex());
++        osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex());
+         if( m_bDisposed || m_bInDispose || !m_pDialog )
+             return aRet;
+         m_pDialog->getSettings( bDirectionToSimplified, bUseCharacterVariants, bTranslateCommonTerms );
+diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx b/svx/source/unodraw/UnoGraphicExporter.cxx
+index 0fbefad..40b1552 100644
+--- svx/source/unodraw/UnoGraphicExporter.cxx
++++ svx/source/unodraw/UnoGraphicExporter.cxx
+@@ -38,8 +38,8 @@
+ 
+ #include <vector>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_IO_XOUTPUTSTREAM_HPP_
+@@ -233,7 +233,6 @@
+ 
+ using namespace ::comphelper;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -621,7 +620,7 @@ VirtualDevice* GraphicExporter::CreatePageVDev( SdrPage* pPage, ULONG nWidthPixe
+ sal_Bool SAL_CALL GraphicExporter::filter( const Sequence< PropertyValue >& aDescriptor )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpUnoPage )
+ 		return sal_False;
+@@ -1256,7 +1255,7 @@ void SAL_CALL GraphicExporter::cancel()
+ void SAL_CALL GraphicExporter::setSourceDocument( const Reference< lang::XComponent >& xComponent )
+ 	throw(IllegalArgumentException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	mxShapes = NULL;
+ 	mpUnoPage = NULL;
+diff --git a/svx/source/unodraw/UnoNameItemTable.cxx b/svx/source/unodraw/UnoNameItemTable.cxx
+index d7cb35c..5783448 100644
+--- svx/source/unodraw/UnoNameItemTable.cxx
++++ svx/source/unodraw/UnoNameItemTable.cxx
+@@ -60,8 +60,8 @@
+ #include "UnoNameItemTable.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -72,7 +72,6 @@
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ 
+ SvxUnoNameItemTable::SvxUnoNameItemTable( SdrModel* pModel, USHORT nWhich, BYTE nMemberId ) throw()
+ : mpModel( pModel ),
+@@ -144,7 +143,7 @@ void SAL_CALL SvxUnoNameItemTable::ImplInsertByName( const OUString& aName, cons
+ void SAL_CALL SvxUnoNameItemTable::insertByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( hasByName( aApiName ) )
+ 		throw container::ElementExistException();
+@@ -160,7 +159,7 @@ void SAL_CALL SvxUnoNameItemTable::insertByName( const OUString& aApiName, const
+ void SAL_CALL SvxUnoNameItemTable::removeByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// a little quickfix for 2.0 to let applications clear api
+ 	// created items that are not used
+@@ -199,7 +198,7 @@ void SAL_CALL SvxUnoNameItemTable::removeByName( const OUString& aApiName )
+ void SAL_CALL SvxUnoNameItemTable::replaceByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, aName );
+@@ -255,7 +254,7 @@ void SAL_CALL SvxUnoNameItemTable::replaceByName( const OUString& aApiName, cons
+ uno::Any SAL_CALL SvxUnoNameItemTable::getByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException,  lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, aName );
+@@ -287,7 +286,7 @@ uno::Any SAL_CALL SvxUnoNameItemTable::getByName( const OUString& aApiName )
+ uno::Sequence< OUString > SAL_CALL SvxUnoNameItemTable::getElementNames(  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	std::set< OUString, comphelper::UStringLess > aNameSet;
+ 
+@@ -324,7 +323,7 @@ uno::Sequence< OUString > SAL_CALL SvxUnoNameItemTable::getElementNames(  )
+ sal_Bool SAL_CALL SvxUnoNameItemTable::hasByName( const OUString& aApiName )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aApiName, aName );
+@@ -351,7 +350,7 @@ sal_Bool SAL_CALL SvxUnoNameItemTable::hasByName( const OUString& aApiName )
+ sal_Bool SAL_CALL SvxUnoNameItemTable::hasElements(  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const NameOrIndex *pItem;
+ 
+diff --git a/svx/source/unodraw/XPropertyTable.cxx b/svx/source/unodraw/XPropertyTable.cxx
+index 107b4be..e969a6c 100644
+--- svx/source/unodraw/XPropertyTable.cxx
++++ svx/source/unodraw/XPropertyTable.cxx
+@@ -57,8 +57,8 @@
+ #include <com/sun/star/container/XNameContainer.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -84,7 +84,6 @@
+ using namespace com::sun::star;
+ using namespace ::cppu;
+ using namespace ::rtl;
+-using namespace ::vos;
+ 
+ class SvxUnoXPropertyTable : public WeakImplHelper2< container::XNameContainer, lang::XServiceInfo >
+ {
+@@ -168,7 +167,7 @@ sal_Bool SAL_CALL SvxUnoXPropertyTable::supportsService( const  OUString& Servic
+ void SAL_CALL SvxUnoXPropertyTable::insertByName( const  OUString& aName, const  uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( NULL == mpList && NULL == mpTable )
+ 		throw lang::IllegalArgumentException();
+@@ -192,7 +191,7 @@ void SAL_CALL SvxUnoXPropertyTable::insertByName( const  OUString& aName, const
+ void SAL_CALL SvxUnoXPropertyTable::removeByName( const  OUString& Name )
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, Name, aInternalName );
+@@ -220,7 +219,7 @@ void SAL_CALL SvxUnoXPropertyTable::removeByName( const  OUString& Name )
+ void SAL_CALL SvxUnoXPropertyTable::replaceByName( const  OUString& aName, const  uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aName, aInternalName );
+@@ -252,7 +251,7 @@ void SAL_CALL SvxUnoXPropertyTable::replaceByName( const  OUString& aName, const
+ uno::Any SAL_CALL SvxUnoXPropertyTable::getByName( const  OUString& aName )
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aName, aInternalName );
+@@ -274,7 +273,7 @@ uno::Any SAL_CALL SvxUnoXPropertyTable::getByName( const  OUString& aName )
+ uno::Sequence<  OUString > SAL_CALL SvxUnoXPropertyTable::getElementNames()
+ 	throw( uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const long nCount = getCount();
+ 	uno::Sequence< OUString > aNames( nCount );
+@@ -298,7 +297,7 @@ uno::Sequence<  OUString > SAL_CALL SvxUnoXPropertyTable::getElementNames()
+ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasByName( const  OUString& aName )
+ 	throw( uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aInternalName;
+ 	SvxUnogetInternalNameForItem( mnWhich, aName, aInternalName );
+@@ -320,7 +319,7 @@ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasByName( const  OUString& aName )
+ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasElements(  )
+ 	throw( uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return getCount() != 0;
+ }
+diff --git a/svx/source/unodraw/recoveryui.cxx b/svx/source/unodraw/recoveryui.cxx
+index 8e1b9d5..bb269ea 100644
+--- svx/source/unodraw/recoveryui.cxx
++++ svx/source/unodraw/recoveryui.cxx
+@@ -72,6 +72,7 @@
+ #endif
+ 
+ #include <vcl/svapp.hxx>
++#include <osl/mutex.hxx>
+ 
+ //===============================================
+ // const
+@@ -141,7 +142,7 @@ css::uno::Any SAL_CALL RecoveryUI::dispatchWithReturnValue(const css::util::URL&
+ {
+     // Internaly we use VCL ... every call into vcl based code must
+     // be guarded by locking the global solar mutex.
+-    ::vos::OGuard aSolarLock(&Application::GetSolarMutex());
++    osl::SolarMutexGuard aSolarLock(&Application::GetSolarMutex());
+ 
+     css::uno::Any aRet;
+     RecoveryUI::EJob eJob = impl_classifyJob(aURL);
+diff --git a/svx/source/unodraw/unomlstr.cxx b/svx/source/unodraw/unomlstr.cxx
+index 5eea3bd..3949da7 100644
+--- svx/source/unodraw/unomlstr.cxx
++++ svx/source/unodraw/unomlstr.cxx
+@@ -40,8 +40,8 @@
+ #include <svx/svdobj.hxx>
+ #endif
+ // header for class OGuard
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ // header for class Application
+ #ifndef _SV_SVAPP_HXX
+@@ -64,7 +64,7 @@ SvxUnoShapeModifyListener::~SvxUnoShapeModifyListener() throw()
+ // ::com::sun::star::util::XModifyListener
+ void SAL_CALL SvxUnoShapeModifyListener::modified(const lang::EventObject& ) throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpObj )
+ 	{
+ 		mpObj->SetChanged();
+diff --git a/svx/source/unodraw/unomod.cxx b/svx/source/unodraw/unomod.cxx
+index ee797b7..e43ddb5 100644
+--- svx/source/unodraw/unomod.cxx
++++ svx/source/unodraw/unomod.cxx
+@@ -48,8 +48,8 @@
+ #include <com/sun/star/drawing/XShape.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -123,7 +123,6 @@ extern UHashMapEntry pSdrShapeIdentifierMap[];
+ 
+ using namespace ::rtl;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ 
+ //-////////////////////////////////////////////////////////////////////
+@@ -476,7 +475,7 @@ sal_Bool SAL_CALL SvxUnoDrawingModel::hasControllersLocked(  )
+ uno::Reference< drawing::XDrawPages > SAL_CALL SvxUnoDrawingModel::getDrawPages()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XDrawPages >  xDrawPages( mxDrawPagesAccess );
+ 
+@@ -490,7 +489,7 @@ uno::Reference< drawing::XDrawPages > SAL_CALL SvxUnoDrawingModel::getDrawPages(
+ uno::Reference< uno::XInterface > SAL_CALL SvxUnoDrawingModel::createInstance( const OUString& aServiceSpecifier )
+ 	throw(uno::Exception, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.DashTable") ) )
+ 	{
+@@ -709,7 +708,7 @@ SvxUnoDrawPagesAccess::~SvxUnoDrawPagesAccess() throw()
+ sal_Int32 SAL_CALL SvxUnoDrawPagesAccess::getCount()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = 0;
+ 
+@@ -722,7 +721,7 @@ sal_Int32 SAL_CALL SvxUnoDrawPagesAccess::getCount()
+ uno::Any SAL_CALL SvxUnoDrawPagesAccess::getByIndex( sal_Int32 Index )
+ 	throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -774,7 +773,7 @@ sal_Bool SAL_CALL SvxUnoDrawPagesAccess::hasElements()
+ uno::Reference< drawing::XDrawPage > SAL_CALL SvxUnoDrawPagesAccess::insertNewByIndex( sal_Int32 nIndex )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< drawing::XDrawPage > xDrawPage;
+ 
+@@ -797,7 +796,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SvxUnoDrawPagesAccess::insertNewBy
+ void SAL_CALL SvxUnoDrawPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ 		throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_uInt16 nPageCount = mrModel.mpDoc->GetPageCount();
+ 	if( nPageCount > 1 )
+diff --git a/svx/source/unodraw/unomtabl.cxx b/svx/source/unodraw/unomtabl.cxx
+index d913d28..9e0f892 100644
+--- svx/source/unodraw/unomtabl.cxx
++++ svx/source/unodraw/unomtabl.cxx
+@@ -82,8 +82,8 @@
+ 	
+ #include <vector>
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -97,7 +97,6 @@
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+ using namespace ::cppu;
+-using namespace ::vos;
+ 
+ typedef std::vector< SfxItemSet* > ItemPoolVector;
+ 
+@@ -227,7 +226,7 @@ void SAL_CALL SvxUnoMarkerTable::ImplInsertByName( const OUString& aName, const
+ void SAL_CALL SvxUnoMarkerTable::insertByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( hasByName( aApiName ) )
+ 		throw container::ElementExistException();
+@@ -241,7 +240,7 @@ void SAL_CALL SvxUnoMarkerTable::insertByName( const OUString& aApiName, const u
+ void SAL_CALL SvxUnoMarkerTable::removeByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	// a little quickfix for 2.0 to let applications clear api
+ 	// created items that are not used
+@@ -280,7 +279,7 @@ void SAL_CALL SvxUnoMarkerTable::removeByName( const OUString& aApiName )
+ void SAL_CALL SvxUnoMarkerTable::replaceByName( const OUString& aApiName, const uno::Any& aElement )
+ 	throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName );
+@@ -369,7 +368,7 @@ static sal_Bool getByNameFromPool( const String& rSearchName, SfxItemPool* pPool
+ uno::Any SAL_CALL SvxUnoMarkerTable::getByName( const OUString& aApiName )
+ 	throw( container::NoSuchElementException,  lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	String aName;
+ 	SvxUnogetInternalNameForItem( XATTR_LINEEND, aApiName, aName );
+@@ -418,7 +417,7 @@ static void createNamesForPool( SfxItemPool* pPool, USHORT nWhich, std::set< OUS
+ uno::Sequence< OUString > SAL_CALL SvxUnoMarkerTable::getElementNames()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	std::set< OUString, comphelper::UStringLess > aNameSet;
+ 
+@@ -445,7 +444,7 @@ uno::Sequence< OUString > SAL_CALL SvxUnoMarkerTable::getElementNames()
+ sal_Bool SAL_CALL SvxUnoMarkerTable::hasByName( const OUString& aName )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aName.getLength() == 0 )
+ 		return sal_False;
+@@ -486,7 +485,7 @@ uno::Type SAL_CALL SvxUnoMarkerTable::getElementType(  )
+ sal_Bool SAL_CALL SvxUnoMarkerTable::hasElements(  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	NameOrIndex *pItem;
+ 
+diff --git a/svx/source/unodraw/unonrule.cxx b/svx/source/unodraw/unonrule.cxx
+index e1c089a..3cd15de 100644
+--- svx/source/unodraw/unonrule.cxx
++++ svx/source/unodraw/unonrule.cxx
+@@ -69,8 +69,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_GRAPH_HXX
+ #include <vcl/graph.hxx>
+@@ -93,7 +93,6 @@
+ 
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::std;
+ 
+ const SvxAdjust aUnoToSvxAdjust[] =
+@@ -186,7 +185,7 @@ SvxUnoNumberingRules::~SvxUnoNumberingRules() throw()
+ void SAL_CALL SvxUnoNumberingRules::replaceByIndex( sal_Int32 Index, const uno::Any& Element )
+ 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(maRule.GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ 		Index++;
+@@ -204,7 +203,7 @@ void SAL_CALL SvxUnoNumberingRules::replaceByIndex( sal_Int32 Index, const uno::
+ //XIndexAccess
+ sal_Int32 SAL_CALL SvxUnoNumberingRules::getCount() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = maRule.GetLevelCount();
+ 	if(maRule.GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+@@ -216,7 +215,7 @@ sal_Int32 SAL_CALL SvxUnoNumberingRules::getCount() throw( uno::RuntimeException
+ uno::Any SAL_CALL SvxUnoNumberingRules::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(maRule.GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ 		Index++;
+diff --git a/svx/source/unodraw/unopage.cxx b/svx/source/unodraw/unopage.cxx
+index a852c72..c047bdd 100644
+--- svx/source/unodraw/unopage.cxx
++++ svx/source/unodraw/unopage.cxx
+@@ -46,8 +46,8 @@
+ #include <com/sun/star/lang/DisposedException.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+@@ -91,7 +91,6 @@
+ #endif
+ 
+ using ::rtl::OUString;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -274,7 +273,7 @@ void SvxDrawPage::dispose()
+ // XComponent
+ void SAL_CALL SvxDrawPage::addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -285,7 +284,7 @@ void SAL_CALL SvxDrawPage::addEventListener( const ::com::sun::star::uno::Refere
+ // XComponent
+ void SAL_CALL SvxDrawPage::removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpModel == 0 )
+ 		throw lang::DisposedException();
+@@ -339,7 +338,7 @@ void SvxDrawPage::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ void SAL_CALL SvxDrawPage::add( const uno::Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+@@ -375,7 +374,7 @@ void SAL_CALL SvxDrawPage::add( const uno::Reference< drawing::XShape >& xShape
+ void SAL_CALL SvxDrawPage::remove( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+@@ -411,7 +410,7 @@ void SAL_CALL SvxDrawPage::remove( const Reference< drawing::XShape >& xShape )
+ sal_Int32 SAL_CALL SvxDrawPage::getCount()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+@@ -423,7 +422,7 @@ sal_Int32 SAL_CALL SvxDrawPage::getCount()
+ uno::Any SAL_CALL SvxDrawPage::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+@@ -453,7 +452,7 @@ uno::Type SAL_CALL SvxDrawPage::getElementType()
+ sal_Bool SAL_CALL SvxDrawPage::hasElements()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+@@ -521,7 +520,7 @@ void SvxDrawPage::_SelectObjectInView( const Reference< drawing::XShape > & xSha
+ Reference< drawing::XShapeGroup > SAL_CALL SvxDrawPage::group( const Reference< drawing::XShapes >& xShapes )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+@@ -560,7 +559,7 @@ Reference< drawing::XShapeGroup > SAL_CALL SvxDrawPage::group( const Reference<
+ void SAL_CALL SvxDrawPage::ungroup( const Reference< drawing::XShapeGroup >& aGroup )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mpModel == 0) || (mpPage == 0) )
+ 		throw lang::DisposedException();
+diff --git a/svx/source/unodraw/unopool.cxx b/svx/source/unodraw/unopool.cxx
+index 6cfc168..8402f73 100644
+--- svx/source/unodraw/unopool.cxx
++++ svx/source/unodraw/unopool.cxx
+@@ -49,8 +49,8 @@
+ #include <rtl/uuid.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -250,7 +250,7 @@ void SvxUnoDrawPool::putAny( SfxItemPool* pPool, const comphelper::PropertyMapEn
+ void SvxUnoDrawPool::_setPropertyValues( const comphelper::PropertyMapEntry** ppEntries, const uno::Any* pValues )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_False );
+ 
+@@ -265,7 +265,7 @@ void SvxUnoDrawPool::_setPropertyValues( const comphelper::PropertyMapEntry** pp
+ void SvxUnoDrawPool::_getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, uno::Any* pValue )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_True );
+ 
+@@ -280,7 +280,7 @@ void SvxUnoDrawPool::_getPropertyValues( const comphelper::PropertyMapEntry** pp
+ void SvxUnoDrawPool::_getPropertyStates( const comphelper::PropertyMapEntry** ppEntries, beans::PropertyState* pStates )
+ 	throw(beans::UnknownPropertyException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_True );
+ 
+@@ -343,7 +343,7 @@ void SvxUnoDrawPool::_getPropertyStates( const comphelper::PropertyMapEntry** pp
+ void SvxUnoDrawPool::_setPropertyToDefault( const comphelper::PropertyMapEntry* pEntry )
+ 	throw(beans::UnknownPropertyException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SfxItemPool* pPool = getModelPool( sal_True );
+ 
+@@ -362,7 +362,7 @@ void SvxUnoDrawPool::_setPropertyToDefault( const comphelper::PropertyMapEntry*
+ uno::Any SvxUnoDrawPool::_getPropertyDefault( const comphelper::PropertyMapEntry* pEntry )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     // OD 13.10.2003 #i18732# - use method <GetPoolDefaultItem(..)> instead of
+     // using probably incompatible item pool <mpDefaultsPool>
+@@ -433,7 +433,7 @@ uno::Sequence< uno::Type > SAL_CALL SvxUnoDrawPool::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL SvxUnoDrawPool::getImplementationId()
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	static uno::Sequence< sal_Int8 > aId;
+ 	if( aId.getLength() == 0 )
+diff --git a/svx/source/unodraw/unoprov.cxx b/svx/source/unodraw/unoprov.cxx
+index 2ab3689..2a3c927 100644
+--- svx/source/unodraw/unoprov.cxx
++++ svx/source/unodraw/unoprov.cxx
+@@ -63,8 +63,8 @@
+ #include <tools/shl.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -1430,7 +1430,7 @@ void SvxUnogetInternalNameForItem( const sal_Int16 nWhich, const rtl::OUString&
+ 
+ comphelper::PropertySetInfo* SvxPropertySetInfoPool::getOrCreate( sal_Int32 nServiceId ) throw()
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( nServiceId > SVXUNO_SERVICEID_LASTID )
+ 	{
+diff --git a/svx/source/unodraw/unoshap2.cxx b/svx/source/unodraw/unoshap2.cxx
+index e9d5264..b01e54d 100644
+--- svx/source/unodraw/unoshap2.cxx
++++ svx/source/unodraw/unoshap2.cxx
+@@ -74,8 +74,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _FLTCALL_HXX
+ #include <svtools/fltcall.hxx>
+@@ -126,7 +126,6 @@
+ 
+ using ::rtl::OUString;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -273,7 +272,7 @@ void SAL_CALL SvxShapeGroup::leaveGroup(  ) throw(uno::RuntimeException)
+ void SAL_CALL SvxShapeGroup::add( const uno::Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -316,7 +315,7 @@ void SAL_CALL SvxShapeGroup::add( const uno::Reference< drawing::XShape >& xShap
+ void SAL_CALL SvxShapeGroup::remove( const uno::Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrObject* pSdrShape = NULL;
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+@@ -370,7 +369,7 @@ void SAL_CALL SvxShapeGroup::remove( const uno::Reference< drawing::XShape >& xS
+ //----------------------------------------------------------------------
+ sal_Int32 SAL_CALL SvxShapeGroup::getCount() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nRetval = 0;
+ 
+@@ -386,7 +385,7 @@ sal_Int32 SAL_CALL SvxShapeGroup::getCount() throw( uno::RuntimeException )
+ uno::Any SAL_CALL SvxShapeGroup::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !mpObj.is() || mpObj->GetSubList() == NULL )
+ 		throw uno::RuntimeException();
+@@ -414,7 +413,7 @@ uno::Type SAL_CALL SvxShapeGroup::getElementType() throw( uno::RuntimeException
+ //----------------------------------------------------------------------
+ sal_Bool SAL_CALL SvxShapeGroup::hasElements() throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return mpObj.is() && mpObj->GetSubList() && (mpObj->GetSubList()->GetObjCount() > 0);
+ }
+@@ -532,7 +531,7 @@ void SAL_CALL SvxShapeConnector::setSize( const awt::Size& rSize )
+ 
+ void SAL_CALL SvxShapeConnector::connectStart( const uno::Reference< drawing::XConnectableShape >& xShape, drawing::ConnectionType ) throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
+ 	SvxShape* pShape = SvxShape::getImplementation( xRef );
+@@ -548,7 +547,7 @@ void SAL_CALL SvxShapeConnector::connectStart( const uno::Reference< drawing::XC
+ void SAL_CALL SvxShapeConnector::connectEnd( const uno::Reference< drawing::XConnectableShape >& xShape, drawing::ConnectionType  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
+ 	SvxShape* pShape = SvxShape::getImplementation( xRef );
+@@ -564,7 +563,7 @@ void SAL_CALL SvxShapeConnector::connectEnd( const uno::Reference< drawing::XCon
+ void SAL_CALL SvxShapeConnector::disconnectBegin( const uno::Reference< drawing::XConnectableShape >&  )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is())
+ 		mpObj->DisconnectFromNode( sal_True );
+@@ -577,7 +576,7 @@ void SAL_CALL SvxShapeConnector::disconnectBegin( const uno::Reference< drawing:
+ void SAL_CALL SvxShapeConnector::disconnectEnd( const uno::Reference< drawing::XConnectableShape >& )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is())
+ 		mpObj->DisconnectFromNode( sal_False );
+@@ -700,7 +699,7 @@ void SAL_CALL SvxShapeControl::setSize( const awt::Size& rSize )
+ Reference< awt::XControlModel > SAL_CALL SvxShapeControl::getControl()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< awt::XControlModel > xModel;
+ 
+@@ -715,7 +714,7 @@ Reference< awt::XControlModel > SAL_CALL SvxShapeControl::getControl()
+ void SAL_CALL SvxShapeControl::setControl( const Reference< awt::XControlModel >& xControl )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SdrUnoObj* pUnoObj = dynamic_cast< SdrUnoObj * >(mpObj.get());
+ 	if( pUnoObj )
+@@ -1146,7 +1145,7 @@ basegfx::B2DPolyPolygon SAL_CALL ImplSvxPointSequenceSequenceToB2DPolyPolygon( c
+ void SAL_CALL SvxShapePolyPolygon::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, com::sun::star::beans::PropertyVetoException, com::sun::star::lang::IllegalArgumentException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGON)))
+ 	{
+@@ -1253,7 +1252,7 @@ void SAL_CALL B2DPolyPolygonToSvxPointSequenceSequence( const basegfx::B2DPolyPo
+ uno::Any SAL_CALL SvxShapePolyPolygon::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGON)))
+ 	{
+@@ -1330,7 +1329,7 @@ drawing::PolygonKind SvxShapePolyPolygon::GetPolygonKind() const throw()
+ //----------------------------------------------------------------------
+ void SvxShapePolyPolygon::SetPolygon(const basegfx::B2DPolyPolygon& rNew) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is())
+ 		((SdrPathObj*)mpObj.get())->SetPathPoly(rNew);
+@@ -1339,7 +1338,7 @@ void SvxShapePolyPolygon::SetPolygon(const basegfx::B2DPolyPolygon& rNew) throw(
+ //----------------------------------------------------------------------
+ basegfx::B2DPolyPolygon SvxShapePolyPolygon::GetPolygon() const throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is())
+ 	{
+@@ -1509,7 +1508,7 @@ basegfx::B2DPolyPolygon SvxConvertPolyPolygonBezierToB2DPolyPolygon(const drawin
+ void SAL_CALL SvxShapePolyPolygonBezier::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, com::sun::star::beans::PropertyVetoException, com::sun::star::lang::IllegalArgumentException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGONBEZIER)))
+ 	{
+@@ -1585,7 +1584,7 @@ void SvxConvertB2DPolyPolygonToPolyPolygonBezier( const basegfx::B2DPolyPolygon&
+ uno::Any SAL_CALL SvxShapePolyPolygonBezier::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_POLYPOLYGONBEZIER)))
+ 	{
+@@ -1629,7 +1628,7 @@ drawing::PolygonKind SvxShapePolyPolygonBezier::GetPolygonKind() const throw()
+ //----------------------------------------------------------------------
+ void SvxShapePolyPolygonBezier::SetPolygon(const basegfx::B2DPolyPolygon& rNew) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is())
+ 		((SdrPathObj*)mpObj.get())->SetPathPoly(rNew);
+@@ -1638,7 +1637,7 @@ void SvxShapePolyPolygonBezier::SetPolygon(const basegfx::B2DPolyPolygon& rNew)
+ //----------------------------------------------------------------------
+ basegfx::B2DPolyPolygon SvxShapePolyPolygonBezier::GetPolygon() const throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is())
+ 	{
+@@ -1699,7 +1698,7 @@ SvxGraphicObject::~SvxGraphicObject() throw()
+ void SAL_CALL SvxGraphicObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, com::sun::star::beans::PropertyVetoException, com::sun::star::lang::IllegalArgumentException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_GRAPHOBJ_FILLBITMAP)))
+ 	{
+@@ -1846,7 +1845,7 @@ void SAL_CALL SvxGraphicObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL SvxGraphicObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_GRAPHOBJ_FILLBITMAP)))
+ 	{
+@@ -2036,7 +2035,7 @@ OUString SAL_CALL SvxCustomShape::getShapeType()
+ //------------------------------------------------------------------1----
+ awt::Point SAL_CALL SvxCustomShape::getPosition() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( mpModel && mpObj.is() )
+ 	{
+ 		SdrAShapeObjGeoData aCustomShapeGeoData;
+@@ -2148,7 +2147,7 @@ uno::Sequence< OUString > SAL_CALL SvxCustomShape::getSupportedServiceNames()
+ void SAL_CALL SvxCustomShape::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, com::sun::star::beans::PropertyVetoException, com::sun::star::lang::IllegalArgumentException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SdrObject* pObject = mpObj.get();
+ 
+     sal_Bool bCustomShapeGeometry = pObject && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CustomShapeGeometry" ) );
+@@ -2212,7 +2211,7 @@ void SAL_CALL SvxCustomShape::setPropertyValue( const OUString& aPropertyName, c
+ uno::Any SAL_CALL SvxCustomShape::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "RotateAngle" ) ) )
+ 	{
+diff --git a/svx/source/unodraw/unoshap3.cxx b/svx/source/unodraw/unoshap3.cxx
+index 9218ae2..9d6e0c0 100644
+--- svx/source/unodraw/unoshap3.cxx
++++ svx/source/unodraw/unoshap3.cxx
+@@ -57,8 +57,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <rtl/uuid.h>
+@@ -94,7 +94,6 @@
+ #endif
+ 
+ using ::rtl::OUString;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -185,7 +184,7 @@ uno::Sequence< sal_Int8 > SAL_CALL Svx3DSceneObject::getImplementationId()
+ void SAL_CALL Svx3DSceneObject::add( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -214,7 +213,7 @@ void SAL_CALL Svx3DSceneObject::add( const Reference< drawing::XShape >& xShape
+ void SAL_CALL Svx3DSceneObject::remove( const Reference< drawing::XShape >& xShape )
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxShape* pShape = SvxShape::getImplementation( xShape );
+ 
+@@ -255,7 +254,7 @@ void SAL_CALL Svx3DSceneObject::remove( const Reference< drawing::XShape >& xSha
+ sal_Int32 SAL_CALL Svx3DSceneObject::getCount()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nRetval = 0;
+ 
+@@ -269,7 +268,7 @@ sal_Int32 SAL_CALL Svx3DSceneObject::getCount()
+ uno::Any SAL_CALL Svx3DSceneObject::getByIndex( sal_Int32 Index )
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !mpObj.is() || mpObj->GetSubList() == NULL )
+ 		throw uno::RuntimeException();
+@@ -300,7 +299,7 @@ uno::Type SAL_CALL Svx3DSceneObject::getElementType()
+ sal_Bool SAL_CALL Svx3DSceneObject::hasElements()
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return mpObj.is() && mpObj->GetSubList() && (mpObj->GetSubList()->GetObjCount() > 0);
+ }
+@@ -364,7 +363,7 @@ struct ImpRememberTransAndRect
+ void SAL_CALL Svx3DSceneObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -475,7 +474,7 @@ void SAL_CALL Svx3DSceneObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL Svx3DSceneObject::getPropertyValue( const OUString& PropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -541,7 +540,7 @@ Svx3DCubeObject::~Svx3DCubeObject() throw()
+ void SAL_CALL Svx3DCubeObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -587,7 +586,7 @@ void SAL_CALL Svx3DCubeObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL Svx3DCubeObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -659,7 +658,7 @@ Svx3DSphereObject::~Svx3DSphereObject() throw()
+ void SAL_CALL Svx3DSphereObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)))
+ 	{
+@@ -696,7 +695,7 @@ void SAL_CALL Svx3DSphereObject::setPropertyValue( const OUString& aPropertyName
+ uno::Any SAL_CALL Svx3DSphereObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)))
+ 	{
+@@ -838,7 +837,7 @@ Svx3DLatheObject::~Svx3DLatheObject() throw()
+ void SAL_CALL Svx3DLatheObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -877,7 +876,7 @@ void SAL_CALL Svx3DLatheObject::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL Svx3DLatheObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -946,7 +945,7 @@ Svx3DExtrudeObject::~Svx3DExtrudeObject() throw()
+ void SAL_CALL Svx3DExtrudeObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -973,7 +972,7 @@ void SAL_CALL Svx3DExtrudeObject::setPropertyValue( const OUString& aPropertyNam
+ uno::Any SAL_CALL Svx3DExtrudeObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -1044,7 +1043,7 @@ Svx3DPolygonObject::~Svx3DPolygonObject() throw()
+ void SAL_CALL Svx3DPolygonObject::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+@@ -1096,7 +1095,7 @@ void SAL_CALL Svx3DPolygonObject::setPropertyValue( const OUString& aPropertyNam
+ uno::Any SAL_CALL Svx3DPolygonObject::getPropertyValue( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(mpObj.is() && aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_NAME_3D_TRANSFORM_MATRIX)) )
+ 	{
+diff --git a/svx/source/unodraw/unoshap4.cxx b/svx/source/unodraw/unoshap4.cxx
+index eab4799..31f7fc7 100644
+--- svx/source/unodraw/unoshap4.cxx
++++ svx/source/unodraw/unoshap4.cxx
+@@ -71,8 +71,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <sfx2/objsh.hxx>
+@@ -97,7 +97,6 @@
+ ///////////////////////////////////////////////////////////////////////
+ 
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -129,7 +128,7 @@ SvxOle2Shape::~SvxOle2Shape() throw()
+ //XPropertySet
+ void SAL_CALL SvxOle2Shape::setPropertyValue( const OUString& aPropertyName, const Any& aValue ) 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CLSID" ) ) )
+ 	{
+@@ -201,7 +200,7 @@ void SAL_CALL SvxOle2Shape::setPropertyValue( const OUString& aPropertyName, con
+ 
+ Any SAL_CALL SvxOle2Shape::getPropertyValue( const OUString& PropertyName ) throw( UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ThumbnailGraphicURL" ) ) )
+ 	{
+@@ -407,7 +406,7 @@ void SvxAppletShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage ) throw (
+ //XPropertySet
+ void SAL_CALL SvxAppletShape::setPropertyValue( const OUString& aPropertyName, const Any& aValue ) 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Bool bOwn = sal_False;
+ 
+@@ -464,7 +463,7 @@ void SAL_CALL SvxAppletShape::setPropertyValue( const OUString& aPropertyName, c
+ 
+ Any SAL_CALL SvxAppletShape::getPropertyValue( const OUString& PropertyName ) throw( UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -520,7 +519,7 @@ void SvxPluginShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage ) throw (
+ void SAL_CALL SvxPluginShape::setPropertyValue( const OUString& aPropertyName, const Any& aValue )
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Bool bOwn = sal_False;
+ 
+@@ -574,7 +573,7 @@ void SAL_CALL SvxPluginShape::setPropertyValue( const OUString& aPropertyName, c
+ 
+ Any SAL_CALL SvxPluginShape::getPropertyValue( const OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -628,7 +627,7 @@ void SvxFrameShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage ) throw ()
+ void SAL_CALL SvxFrameShape::setPropertyValue( const OUString& aPropertyName, const Any& aValue )
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+ 	sal_Bool bOwn = sal_False;
+ 
+@@ -687,7 +686,7 @@ void SAL_CALL SvxFrameShape::setPropertyValue( const OUString& aPropertyName, co
+ 
+ Any SAL_CALL SvxFrameShape::getPropertyValue( const OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -742,7 +741,7 @@ SvxMediaShape::~SvxMediaShape() throw()
+ void SAL_CALL SvxMediaShape::setPropertyValue( const OUString& rPropertyName, const Any& rValue )
+ 	throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard 						aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 						aGuard( Application::GetSolarMutex() );
+ 	const SfxItemPropertyMap*	pMap = maPropSet.getPropertyMapEntry( rPropertyName );
+ 	bool						bOwn = false;
+ 
+@@ -819,7 +818,7 @@ void SAL_CALL SvxMediaShape::setPropertyValue( const OUString& rPropertyName, co
+ Any SAL_CALL SvxMediaShape::getPropertyValue( const OUString& rPropertyName )
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	OGuard 						aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	const SfxItemPropertyMap*	pMap = maPropSet.getPropertyMapEntry( rPropertyName );
+ 
+ 	if( pMap && mpObj.is() && mpModel )
+diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
+index c4f418d..f0d2c0a 100644
+--- svx/source/unodraw/unoshape.cxx
++++ svx/source/unodraw/unoshape.cxx
+@@ -68,8 +68,8 @@
+ #ifndef _FLTCALL_HXX
+ #include <svtools/fltcall.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SVX_UNOTEXT_HXX
+ #include <svx/unotext.hxx>
+@@ -207,7 +207,6 @@
+ 
+ using ::rtl::OUString;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -333,7 +332,7 @@ SvxShape::SvxShape() throw()
+ //----------------------------------------------------------------------
+ SvxShape::~SvxShape() throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( mnLockCount == 0, "Locked shape was disposed!" );
+ 
+@@ -1178,7 +1177,7 @@ static void svx_setLogicRectHack( SdrObject* pObj, const Rectangle& rRect )
+ 
+ awt::Point SAL_CALL SvxShape::getPosition() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpObj.is() && mpModel)
+ 	{
+@@ -1201,7 +1200,7 @@ awt::Point SAL_CALL SvxShape::getPosition() throw(uno::RuntimeException)
+ //----------------------------------------------------------------------
+ void SAL_CALL SvxShape::setPosition( const awt::Point& Position ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+ 	if( mpObj.is() && mpModel )
+ 	{
+@@ -1231,7 +1230,7 @@ void SAL_CALL SvxShape::setPosition( const awt::Point& Position ) throw(uno::Run
+ //----------------------------------------------------------------------
+ awt::Size SAL_CALL SvxShape::getSize() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpObj.is() && mpModel)
+ 	{
+@@ -1248,7 +1247,7 @@ awt::Size SAL_CALL SvxShape::getSize() throw(uno::RuntimeException)
+ void SAL_CALL SvxShape::setSize( const awt::Size& rSize )
+ 	throw(beans::PropertyVetoException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpObj.is() && mpModel)
+ 	{
+@@ -1279,7 +1278,7 @@ void SAL_CALL SvxShape::setSize( const awt::Size& rSize )
+ // XNamed
+ OUString SAL_CALL SvxShape::getName(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpObj.is() )
+ 	{
+ 		return mpObj->GetName();
+@@ -1294,7 +1293,7 @@ OUString SAL_CALL SvxShape::getName(  ) throw(::com::sun::star::uno::RuntimeExce
+ 
+ void SAL_CALL SvxShape::setName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpObj.is() )
+ 	{
+ 		mpObj->SetName( aName );
+@@ -1334,7 +1333,7 @@ OUString SAL_CALL SvxShape::getShapeType() throw(uno::RuntimeException)
+ //----------------------------------------------------------------------
+ void SAL_CALL SvxShape::dispose() throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mbDisposing )
+ 		return;	// caught a recursion
+@@ -1838,7 +1837,7 @@ void SAL_CALL SvxShape::setPropertyValue( const OUString& rPropertyName, const u
+ void SAL_CALL SvxShape::_setPropertyValue( const OUString& rPropertyName, const uno::Any& rVal )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(rPropertyName);
+ 
+@@ -2490,7 +2489,7 @@ uno::Any SAL_CALL SvxShape::getPropertyValue( const OUString& PropertyName )
+ uno::Any SvxShape::_getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -2992,7 +2991,7 @@ uno::Any SvxShape::_getPropertyValue( const OUString& PropertyName )
+ // XMultiPropertySet
+ void SAL_CALL SvxShape::setPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     const sal_Int32 nCount = aPropertyNames.getLength();
+ 	const OUString* pNames = aPropertyNames.getConstArray();
+@@ -3222,7 +3221,7 @@ beans::PropertyState SAL_CALL SvxShape::getPropertyState( const OUString& Proper
+ beans::PropertyState SAL_CALL SvxShape::_getPropertyState( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -3354,7 +3353,7 @@ void SAL_CALL SvxShape::setPropertyToDefault( const OUString& PropertyName )
+ void SAL_CALL SvxShape::_setPropertyToDefault( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+ 
+@@ -3397,7 +3396,7 @@ uno::Any SAL_CALL SvxShape::getPropertyDefault( const OUString& aPropertyName )
+ uno::Any SAL_CALL SvxShape::_getPropertyDefault( const OUString& aPropertyName )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(aPropertyName);
+ 
+@@ -3425,7 +3424,7 @@ uno::Any SAL_CALL SvxShape::_getPropertyDefault( const OUString& aPropertyName )
+ // XMultiPropertyStates
+ void SvxShape::setAllPropertiesToDefault() throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	if( !mpObj.is() )
+ 		throw lang::DisposedException();
+@@ -3545,7 +3544,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::getSupportedServiceNames()
+ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpObj.is() && mpObj->GetObjInventor() == SdrInventor)
+ 	{
+@@ -3558,7 +3557,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_GroupServices;
+@@ -3578,7 +3577,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_CustomShapeServices;
+@@ -3609,7 +3608,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_LineServices;
+@@ -3644,7 +3643,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_RectServices;
+@@ -3681,7 +3680,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_CircServices;
+@@ -3718,7 +3717,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_PathServices;
+@@ -3753,7 +3752,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_PolyServices;
+@@ -3790,7 +3789,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_FreeLineServices;
+@@ -3829,7 +3828,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_FreeFillServices;
+@@ -3867,7 +3866,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_TextServices;
+@@ -3901,7 +3900,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_GrafServices;
+@@ -3933,7 +3932,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_Ole2Services;
+@@ -3953,7 +3952,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_CaptionServices;
+@@ -3989,7 +3988,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_PageServices;
+@@ -4010,7 +4009,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_MeasureServices;
+@@ -4047,7 +4046,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_FrameServices;
+@@ -4068,7 +4067,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard _aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard _aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_UnoServices;
+@@ -4087,7 +4086,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_EdgeServices;
+@@ -4122,7 +4121,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 				static uno::Sequence< OUString > *pSeq = 0;
+ 				if( 0 == pSeq )
+ 				{
+-//					OGuard aGuard( Application::GetSolarMutex() );
++//					osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //					if( 0 == pSeq )
+ 					{
+ 						static uno::Sequence< OUString > SvxShape_MediaServices;
+@@ -4147,7 +4146,7 @@ uno::Sequence< OUString > SAL_CALL SvxShape::_getSupportedServiceNames()
+ 		static uno::Sequence< OUString > *pSeq = 0;
+ 		if( 0 == pSeq )
+ 		{
+-//			OGuard aGuard( Application::GetSolarMutex() );
++//			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ //			if( 0 == pSeq )
+ 			{
+ 				static uno::Sequence< OUString > SvxShape_UnoServices;
+@@ -4184,7 +4183,7 @@ sal_Bool SAL_CALL SvxShape::supportsService( const OUString& ServiceName ) throw
+ uno::Reference< container::XIndexContainer > SAL_CALL SvxShape::getGluePoints()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Reference< container::XIndexContainer > xGluePoints( mxGluePoints );
+ 
+ 	if( mpObj.is() && !xGluePoints.is() )
+@@ -4202,7 +4201,7 @@ uno::Reference< container::XIndexContainer > SAL_CALL SvxShape::getGluePoints()
+ uno::Reference< uno::XInterface > SAL_CALL SvxShape::getParent(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpObj.is() && mpObj->GetObjList() )
+ 	{
+@@ -4256,7 +4255,7 @@ void SvxShape::unlock()
+ // XActionLockable
+ sal_Bool SAL_CALL SvxShape::isActionLocked(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return mnLockCount != 0;
+ }
+@@ -4265,7 +4264,7 @@ sal_Bool SAL_CALL SvxShape::isActionLocked(  ) throw (::com::sun::star::uno::Run
+ 
+ void SAL_CALL SvxShape::addActionLock(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( mnLockCount < 0xffff, "lock overflow in SvxShape!" );
+ 	mnLockCount++;
+@@ -4278,7 +4277,7 @@ void SAL_CALL SvxShape::addActionLock(  ) throw (::com::sun::star::uno::RuntimeE
+ 
+ void SAL_CALL SvxShape::removeActionLock(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( mnLockCount > 0, "lock underflow in SvxShape!" );
+ 	mnLockCount--;
+@@ -4291,7 +4290,7 @@ void SAL_CALL SvxShape::removeActionLock(  ) throw (::com::sun::star::uno::Runti
+ 
+ void SAL_CALL SvxShape::setActionLocks( sal_Int16 nLock ) throw (::com::sun::star::uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( (mnLockCount == 0) && (nLock != 0) )
+ 		unlock();
+@@ -4306,7 +4305,7 @@ void SAL_CALL SvxShape::setActionLocks( sal_Int16 nLock ) throw (::com::sun::sta
+ 
+ sal_Int16 SAL_CALL SvxShape::resetActionLocks(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mnLockCount != 0 )
+ 		unlock();
+@@ -4521,7 +4520,7 @@ void SvxShapeText::unlock()
+ // ::com::sun::star::text::XTextRange
+ uno::Reference< text::XTextRange > SAL_CALL SvxShapeText::getStart() throw(uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+ 		::GetSelection( maSelection, pForwarder );
+@@ -4531,7 +4530,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxShapeText::getStart() throw(uno::
+ 
+ uno::Reference< text::XTextRange > SAL_CALL SvxShapeText::getEnd() throw(uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+ 		::GetSelection( maSelection, pForwarder );
+@@ -4540,7 +4539,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxShapeText::getEnd() throw(uno::Ru
+ 
+ OUString SAL_CALL SvxShapeText::getString() throw(uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+ 		::GetSelection( maSelection, pForwarder );
+@@ -4550,7 +4549,7 @@ OUString SAL_CALL SvxShapeText::getString() throw(uno::RuntimeException)
+ 
+ void SAL_CALL SvxShapeText::setString( const OUString& aString ) throw(uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+ 		::GetSelection( maSelection, pForwarder );
+diff --git a/svx/source/unodraw/unoshtxt.cxx b/svx/source/unodraw/unoshtxt.cxx
+index ec08d71..81d6a77 100644
+--- svx/source/unodraw/unoshtxt.cxx
++++ svx/source/unodraw/unoshtxt.cxx
+@@ -107,8 +107,8 @@
+ #include <comphelper/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SDRPAINTWINDOW_HXX
+@@ -116,7 +116,6 @@
+ #endif
+ 
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::rtl;
+ 
+ using ::com::sun::star::uno::XInterface;
+@@ -1085,7 +1084,7 @@ SvxTextEditSource::SvxTextEditSource( SvxTextEditSourceImpl* pImpl )
+ //------------------------------------------------------------------------
+ SvxTextEditSource::~SvxTextEditSource()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	mpImpl->release();
+ }
+diff --git a/svx/source/unoedit/UnoForbiddenCharsTable.cxx b/svx/source/unoedit/UnoForbiddenCharsTable.cxx
+index 2f7d9a8..283ba02 100644
+--- svx/source/unoedit/UnoForbiddenCharsTable.cxx
++++ svx/source/unoedit/UnoForbiddenCharsTable.cxx
+@@ -44,8 +44,8 @@
+ #include "forbiddencharacterstable.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+@@ -61,7 +61,6 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::i18n;
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ 
+ SvxUnoForbiddenCharsTable::SvxUnoForbiddenCharsTable(rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars) :
+@@ -80,7 +79,7 @@ void SvxUnoForbiddenCharsTable::onChange()
+ ForbiddenCharacters SvxUnoForbiddenCharsTable::getForbiddenCharacters( const Locale& rLocale )
+ 	throw(NoSuchElementException, RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+@@ -96,7 +95,7 @@ ForbiddenCharacters SvxUnoForbiddenCharsTable::getForbiddenCharacters( const Loc
+ sal_Bool SvxUnoForbiddenCharsTable::hasForbiddenCharacters( const Locale& rLocale )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		return sal_False;
+@@ -110,7 +109,7 @@ sal_Bool SvxUnoForbiddenCharsTable::hasForbiddenCharacters( const Locale& rLocal
+ void SvxUnoForbiddenCharsTable::setForbiddenCharacters(const Locale& rLocale, const ForbiddenCharacters& rForbiddenCharacters )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+@@ -124,7 +123,7 @@ void SvxUnoForbiddenCharsTable::setForbiddenCharacters(const Locale& rLocale, co
+ void SvxUnoForbiddenCharsTable::removeForbiddenCharacters( const Locale& rLocale )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+@@ -139,7 +138,7 @@ void SvxUnoForbiddenCharsTable::removeForbiddenCharacters( const Locale& rLocale
+ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales()
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Count() : 0;
+ 
+@@ -161,7 +160,7 @@ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales()
+ sal_Bool SAL_CALL SvxUnoForbiddenCharsTable::hasLocale( const Locale& aLocale )
+ 	throw(RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return hasForbiddenCharacters( aLocale );
+ }
+diff --git a/svx/source/unoedit/unoedprx.cxx b/svx/source/unoedit/unoedprx.cxx
+index 0bf2956..2e4ba1e 100644
+--- svx/source/unoedit/unoedprx.cxx
++++ svx/source/unoedit/unoedprx.cxx
+@@ -46,8 +46,8 @@
+ #include <vector>
+ #include <algorithm>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_WINDOW_HXX
+diff --git a/svx/source/unoedit/unofield.cxx b/svx/source/unoedit/unofield.cxx
+index 9b1a948..7950a5b 100644
+--- svx/source/unoedit/unofield.cxx
++++ svx/source/unoedit/unofield.cxx
+@@ -53,8 +53,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <rtl/uuid.h>
+@@ -68,7 +68,6 @@
+ #include <svx/unotext.hxx>
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -621,7 +620,7 @@ void SAL_CALL SvxUnoTextField::release() throw( )
+ OUString SAL_CALL SvxUnoTextField::getPresentation( sal_Bool bShowCommand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(bShowCommand)
+ 	{
+@@ -679,14 +678,14 @@ void SAL_CALL SvxUnoTextField::removeEventListener( const uno::Reference< lang::
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SvxUnoTextField::getPropertySetInfo(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return mpPropSet->getPropertySetInfo();
+ }
+ 
+ void SAL_CALL SvxUnoTextField::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpImpl == NULL )
+ 		throw uno::RuntimeException();
+@@ -856,7 +855,7 @@ void SAL_CALL SvxUnoTextField::setPropertyValue( const OUString& aPropertyName,
+ uno::Any SAL_CALL SvxUnoTextField::getPropertyValue( const OUString& PropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aValue;
+ 
+diff --git a/svx/source/unoedit/unopracc.cxx b/svx/source/unoedit/unopracc.cxx
+index 24dd093..cd1ce3b 100644
+--- svx/source/unoedit/unopracc.cxx
++++ svx/source/unoedit/unopracc.cxx
+@@ -42,8 +42,8 @@
+ //
+ //------------------------------------------------------------------------
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif 
+ 
+ #ifndef _COM_SUN_STAR_UNO_ANY_HXX_ 
+diff --git a/svx/source/unoedit/unotext.cxx b/svx/source/unoedit/unotext.cxx
+index 6e395ea..f9fc2c3 100644
+--- svx/source/unoedit/unotext.cxx
++++ svx/source/unoedit/unotext.cxx
+@@ -56,8 +56,8 @@
+ //#include <com/sun/star/beans/TolerantPropertySetResultType.hpp>
+ //#endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SFXITEMSET_HXX //autogen
+@@ -104,7 +104,6 @@
+ #include <svx/editeng.hxx>
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -249,7 +248,7 @@ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SfxItemPropertyMap* _pMap ) thro
+ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxEditSource* pSource, const SfxItemPropertyMap* _pMap ) throw()
+ : maPropSet(_pMap)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT(pSource,"SvxUnoTextRangeBase: I need a valid SvxEditSource!");
+ 
+@@ -275,7 +274,7 @@ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxUnoTextRangeBase& rRange ) th
+ ,	lang::XUnoTunnel()
+ ,	maPropSet(rRange.getPropertyMap())
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	mpEditSource = rRange.mpEditSource ? rRange.mpEditSource->Clone() : NULL;
+ 
+@@ -323,7 +322,7 @@ void SvxUnoTextRangeBase::SetEditSource( SvxEditSource* pSource ) throw()
+     corresponding with this range */
+ void SvxUnoTextRangeBase::attachField( const SvxFieldData* pData ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( pData )
+ 	{
+@@ -338,7 +337,7 @@ void SvxUnoTextRangeBase::attachField( const SvxFieldData* pData ) throw()
+ 
+ void SvxUnoTextRangeBase::SetSelection( const ESelection& rSelection ) throw()
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	maSelection = rSelection;
+ 	CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
+@@ -349,7 +348,7 @@ void SvxUnoTextRangeBase::SetSelection( const ESelection& rSelection ) throw()
+ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getStart(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< text::XTextRange > xRange;
+ 
+@@ -379,7 +378,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getStart(void)
+ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getEnd(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< text::XTextRange > xRet;
+ 
+@@ -407,7 +406,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getEnd(void)
+ OUString SAL_CALL SvxUnoTextRangeBase::getString(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -426,7 +425,7 @@ OUString SAL_CALL SvxUnoTextRangeBase::getString(void)
+ void SAL_CALL SvxUnoTextRangeBase::setString(const OUString& aString)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -466,7 +465,7 @@ void SAL_CALL SvxUnoTextRangeBase::setPropertyValue(const OUString& PropertyName
+ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValue( const OUString& PropertyName, const uno::Any& aValue, sal_Int32 nPara )
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -604,7 +603,7 @@ uno::Any SAL_CALL SvxUnoTextRangeBase::getPropertyValue(const OUString& Property
+ uno::Any SAL_CALL SvxUnoTextRangeBase::_getPropertyValue(const OUString& PropertyName, sal_Int32 nPara )
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Any aAny;
+ 
+@@ -750,7 +749,7 @@ void SAL_CALL SvxUnoTextRangeBase::setPropertyValues( const uno::Sequence< ::rtl
+ 
+ void SAL_CALL SvxUnoTextRangeBase::_setPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, const uno::Sequence< uno::Any >& aValues, sal_Int32 nPara ) throw (beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -899,7 +898,7 @@ uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::getPropertyValues( const
+ 
+ uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::_getPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, sal_Int32 nPara ) throw (uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 
+@@ -1076,7 +1075,7 @@ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const SfxIt
+ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const OUString& PropertyName, sal_Int32 nPara /* = -1 */)
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return _getPropertyState(SfxItemPropertyMap::GetByName(maPropSet.getPropertyMap(), PropertyName ), nPara);
+ }
+@@ -1232,7 +1231,7 @@ void SAL_CALL SvxUnoTextRangeBase::setPropertyToDefault( const OUString& Propert
+ void SvxUnoTextRangeBase::_setPropertyToDefault(const OUString& PropertyName, sal_Int32 nPara /* = -1 */)
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	do
+ 	{
+@@ -1281,7 +1280,7 @@ void SvxUnoTextRangeBase::_setPropertyToDefault(const OUString& PropertyName, sa
+ uno::Any SAL_CALL SvxUnoTextRangeBase::getPropertyDefault( const OUString& aPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -1790,14 +1789,14 @@ uno::Reference< text::XTextCursor > SvxUnoTextBase::createTextCursorBySelection(
+ uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursor()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return new SvxUnoTextCursor( *this );
+ }
+ 
+ uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursorByRange( const uno::Reference< text::XTextRange >& aTextPosition )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< text::XTextCursor >  xCursor;
+ 
+@@ -1814,7 +1813,7 @@ uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursorByR
+ void SAL_CALL SvxUnoTextBase::insertString( const uno::Reference< text::XTextRange >& xRange, const OUString& aString, sal_Bool bAbsorb )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( !xRange.is() )
+ 		return;
+@@ -1842,7 +1841,7 @@ void SAL_CALL SvxUnoTextBase::insertString( const uno::Reference< text::XTextRan
+ void SAL_CALL SvxUnoTextBase::insertControlCharacter( const uno::Reference< text::XTextRange >& xRange, sal_Int16 nControlCharacter, sal_Bool bAbsorb )
+ 	throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
+ 
+@@ -1930,7 +1929,7 @@ void SAL_CALL SvxUnoTextBase::insertControlCharacter( const uno::Reference< text
+ void SAL_CALL SvxUnoTextBase::insertTextContent( const uno::Reference< text::XTextRange >& xRange, const uno::Reference< text::XTextContent >& xContent, sal_Bool bAbsorb )
+ 	throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -1977,7 +1976,7 @@ void SAL_CALL SvxUnoTextBase::removeTextContent( const uno::Reference< text::XTe
+ uno::Reference< text::XText > SAL_CALL SvxUnoTextBase::getText()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if (GetEditSource())
+ 	{
+@@ -2016,7 +2015,7 @@ void SAL_CALL SvxUnoTextBase::setString( const OUString& aString ) throw(uno::Ru
+ uno::Reference< container::XEnumeration > SAL_CALL SvxUnoTextBase::createEnumeration()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	ESelection aSelection;
+ 	::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
+@@ -2034,7 +2033,7 @@ uno::Type SAL_CALL SvxUnoTextBase::getElementType(  ) throw(uno::RuntimeExceptio
+ 
+ sal_Bool SAL_CALL SvxUnoTextBase::hasElements(  ) throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(GetEditSource())
+ 	{
+@@ -2110,7 +2109,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendParagraph(
+         const uno::Sequence< beans::PropertyValue >& rCharAndParaProps ) 
+     throw (lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	uno::Reference< text::XTextRange > xRet;
+     SvxEditSource *pEditSource = GetEditSource();
+     SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
+@@ -2137,7 +2136,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::finishParagraph(
+         const uno::Sequence< beans::PropertyValue >& rCharAndParaProps ) 
+     throw (lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	uno::Reference< text::XTextRange > xRet;
+     SvxEditSource *pEditSource = GetEditSource();
+@@ -2168,7 +2167,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendTextPortion(
+         const uno::Sequence< beans::PropertyValue >& rCharAndParaProps ) 
+     throw (lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-    OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     SvxEditSource *pEditSource = GetEditSource();
+     SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
+diff --git a/svx/source/unoedit/unotext2.cxx b/svx/source/unoedit/unotext2.cxx
+index 3d34497..546dc34 100644
+--- svx/source/unoedit/unotext2.cxx
++++ svx/source/unoedit/unotext2.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #define _SVSTDARR_USHORTS
+@@ -56,7 +56,6 @@
+ #include <svx/unotext.hxx>
+ 
+ using namespace ::rtl;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ 
+@@ -88,7 +87,7 @@ SvxUnoTextContentEnumeration::~SvxUnoTextContentEnumeration() throw()
+ sal_Bool SAL_CALL SvxUnoTextContentEnumeration::hasMoreElements(void)
+ 	throw( uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if( mpEditSource && mpEditSource->GetTextForwarder() )
+         return mnNextParagraph < mpEditSource->GetTextForwarder()->GetParagraphCount();
+ 	else
+@@ -97,7 +96,7 @@ sal_Bool SAL_CALL SvxUnoTextContentEnumeration::hasMoreElements(void)
+ 
+ uno::Any SvxUnoTextContentEnumeration::nextElement(void) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if(!hasMoreElements())
+ 		throw container::NoSuchElementException();
+@@ -272,7 +271,7 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextContent::getAnchor() throw
+ void SAL_CALL SvxUnoTextContent::dispose()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mbDisposing )
+ 		return;	// catched a recursion
+@@ -304,7 +303,7 @@ void SAL_CALL SvxUnoTextContent::removeEventListener( const uno::Reference< lang
+ uno::Reference< container::XEnumeration > SAL_CALL SvxUnoTextContent::createEnumeration(  )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return new SvxUnoTextRangeEnumeration( mrParentText, mnParagraph );
+ }
+@@ -320,7 +319,7 @@ uno::Type SAL_CALL SvxUnoTextContent::getElementType()
+ sal_Bool SAL_CALL SvxUnoTextContent::hasElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
+ 	if( pForwarder )
+@@ -450,7 +449,7 @@ SvxUnoTextRangeEnumeration::~SvxUnoTextRangeEnumeration() throw()
+ sal_Bool SAL_CALL SvxUnoTextRangeEnumeration::hasMoreElements()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	return mpPortions && mnNextPortion < mpPortions->Count();
+ }
+@@ -458,7 +457,7 @@ sal_Bool SAL_CALL SvxUnoTextRangeEnumeration::hasMoreElements()
+ uno::Any SAL_CALL SvxUnoTextRangeEnumeration::nextElement()
+ 	throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if( mpPortions == NULL || mnNextPortion >= mpPortions->Count() )
+ 		throw container::NoSuchElementException();
+@@ -604,49 +603,49 @@ uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextCursor::getImplementationId()
+ void SAL_CALL SvxUnoTextCursor::collapseToStart()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	CollapseToStart();
+ }
+ 
+ void SAL_CALL SvxUnoTextCursor::collapseToEnd()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	CollapseToEnd();
+ }
+ 
+ sal_Bool SAL_CALL SvxUnoTextCursor::isCollapsed()
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return IsCollapsed();
+ }
+ 
+ sal_Bool SAL_CALL SvxUnoTextCursor::goLeft( sal_Int16 nCount, sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return GoLeft( nCount, bExpand );
+ }
+ 
+ sal_Bool SAL_CALL SvxUnoTextCursor::goRight( sal_Int16 nCount, sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	return GoRight( nCount, bExpand );
+ }
+ 
+ void SAL_CALL SvxUnoTextCursor::gotoStart( sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	GotoStart( bExpand );
+ }
+ 
+ void SAL_CALL SvxUnoTextCursor::gotoEnd( sal_Bool bExpand )
+ 	throw(uno::RuntimeException)
+ {
+-	OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	GotoEnd( bExpand );
+ }
+ 
+diff --git a/svx/source/unogallery/unogalitem.cxx b/svx/source/unogallery/unogalitem.cxx
+index a0ec16e..bc415a1 100644
+--- svx/source/unogallery/unogalitem.cxx
++++ svx/source/unogallery/unogalitem.cxx
+@@ -45,8 +45,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+@@ -230,7 +230,7 @@ uno::Sequence< uno::Type > SAL_CALL GalleryItem::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL GalleryItem::getImplementationId() 
+ 	throw(uno::RuntimeException)
+ {
+-	const vos::OGuard 					aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard 					aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+@@ -247,7 +247,7 @@ uno::Sequence< sal_Int8 > SAL_CALL GalleryItem::getImplementationId()
+ sal_Int8 SAL_CALL GalleryItem::getType()
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Int8 			nRet = gallery::GalleryItemType::EMPTY;
+ 	
+ 	if( isValid() )
+@@ -276,7 +276,7 @@ sal_Int8 SAL_CALL GalleryItem::getType()
+ 
+ ::comphelper::PropertySetInfo* GalleryItem::createPropertySetInfo()
+ {
+-	vos::OGuard 					aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard 					aGuard( Application::GetSolarMutex() );
+ 	::comphelper::PropertySetInfo*	pRet = new ::comphelper::PropertySetInfo();
+ 
+ 	static ::comphelper::PropertyMapEntry aEntries[] =
+@@ -316,7 +316,7 @@ void GalleryItem::_setPropertyValues( const comphelper::PropertyMapEntry** ppEnt
+ 		   lang::IllegalArgumentException, 
+ 		   lang::WrappedTargetException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	while( *ppEntries )
+ 	{
+@@ -361,7 +361,7 @@ void GalleryItem::_getPropertyValues( const comphelper::PropertyMapEntry** ppEnt
+ 	throw( beans::UnknownPropertyException, 
+ 		   lang::WrappedTargetException )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	while( *ppEntries )
+ 	{
+diff --git a/svx/source/unogallery/unogaltheme.cxx b/svx/source/unogallery/unogaltheme.cxx
+index 85f6fb7..700ed5e 100644
+--- svx/source/unogallery/unogaltheme.cxx
++++ svx/source/unogallery/unogaltheme.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+@@ -77,7 +77,7 @@ GalleryTheme::GalleryTheme( const ::rtl::OUString& rThemeName )
+ 
+ GalleryTheme::~GalleryTheme()
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	DBG_ASSERT( !mpTheme || mpGallery, "Theme is living without Gallery" );
+ 
+@@ -165,7 +165,7 @@ uno::Sequence< uno::Type > SAL_CALL GalleryTheme::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL GalleryTheme::getImplementationId() 
+ 	throw(uno::RuntimeException)
+ {
+-	const vos::OGuard 					aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard 					aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+@@ -190,7 +190,7 @@ uno::Type SAL_CALL GalleryTheme::getElementType()
+ sal_Bool SAL_CALL GalleryTheme::hasElements() 
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	return( ( mpTheme != NULL ) && ( mpTheme->GetObjectCount() > 0 ) );
+ }
+@@ -200,7 +200,7 @@ sal_Bool SAL_CALL GalleryTheme::hasElements()
+ sal_Int32 SAL_CALL GalleryTheme::getCount() 
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	return( mpTheme ? mpTheme->GetObjectCount() : 0 );
+ }
+@@ -210,7 +210,7 @@ sal_Int32 SAL_CALL GalleryTheme::getCount()
+ uno::Any SAL_CALL GalleryTheme::getByIndex( ::sal_Int32 nIndex )
+ 	throw (lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	uno::Any 			aRet;
+ 	
+ 	if( mpTheme )
+@@ -236,7 +236,7 @@ uno::Any SAL_CALL GalleryTheme::getByIndex( ::sal_Int32 nIndex )
+ ::rtl::OUString SAL_CALL GalleryTheme::getName(  )
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	::rtl::OUString 	aRet;
+ 	
+ 	if( mpTheme )
+@@ -250,7 +250,7 @@ uno::Any SAL_CALL GalleryTheme::getByIndex( ::sal_Int32 nIndex )
+ void SAL_CALL GalleryTheme::update(  )
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	if( mpTheme )
+ 	{
+@@ -265,7 +265,7 @@ void SAL_CALL GalleryTheme::update(  )
+ 	const ::rtl::OUString& rURL, ::sal_Int32 nIndex )
+ 	throw (lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Int32			nRet = -1;
+ 		
+ 	if( mpTheme )
+@@ -298,7 +298,7 @@ void SAL_CALL GalleryTheme::update(  )
+ 	const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nIndex ) 
+ 	throw (lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Int32 			nRet = -1;
+ 
+ 	if( mpTheme )
+@@ -326,7 +326,7 @@ void SAL_CALL GalleryTheme::update(  )
+ 	const uno::Reference< lang::XComponent >& Drawing, sal_Int32 nIndex )
+ 	throw (lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	sal_Int32 			nRet = -1;
+ 
+ 	if( mpTheme )
+@@ -350,7 +350,7 @@ void SAL_CALL GalleryTheme::update(  )
+ void SAL_CALL GalleryTheme::removeByIndex( sal_Int32 nIndex )
+ 	throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	if( mpTheme )
+ 	{
+@@ -365,7 +365,7 @@ void SAL_CALL GalleryTheme::removeByIndex( sal_Int32 nIndex )
+ 
+ void GalleryTheme::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	const GalleryHint& 	rGalleryHint = static_cast< const GalleryHint& >( rHint );
+ 
+ 	switch( rGalleryHint.GetType() )
+@@ -402,7 +402,7 @@ void GalleryTheme::Notify( SfxBroadcaster&, const SfxHint& rHint )
+ 
+ void GalleryTheme::implReleaseItems( GalleryObject* pObj )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	for( GalleryItemList::iterator aIter = maItemList.begin(); aIter != maItemList.end();  )
+ 	{
+@@ -427,7 +427,7 @@ void GalleryTheme::implReleaseItems( GalleryObject* pObj )
+ 
+ void GalleryTheme::implRegisterGalleryItem( ::unogallery::GalleryItem& rItem )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ //	DBG_ASSERT( maItemList.find( &rItem ) == maItemList.end(), "Item already registered" );
+ 	maItemList.push_back( &rItem );
+@@ -437,7 +437,7 @@ void GalleryTheme::implRegisterGalleryItem( ::unogallery::GalleryItem& rItem )
+ 	
+ void GalleryTheme::implDeregisterGalleryItem( ::unogallery::GalleryItem& rItem )
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ //	DBG_ASSERT( maItemList.find( &rItem ) != maItemList.end(), "Item is not registered" );
+ 	maItemList.remove( &rItem );
+diff --git a/svx/source/unogallery/unogalthemeprovider.cxx b/svx/source/unogallery/unogalthemeprovider.cxx
+index 88ce544..5d85252 100644
+--- svx/source/unogallery/unogalthemeprovider.cxx
++++ svx/source/unogallery/unogalthemeprovider.cxx
+@@ -43,8 +43,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+@@ -179,7 +179,7 @@ uno::Sequence< uno::Type > SAL_CALL GalleryThemeProvider::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL GalleryThemeProvider::getImplementationId() 
+ 	throw(uno::RuntimeException)
+ {
+-	const vos::OGuard 					aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard 					aGuard( Application::GetSolarMutex() );
+ 	static uno::Sequence< sal_Int8 >	aId;
+ 	
+ 	if( aId.getLength() == 0 )
+@@ -227,7 +227,7 @@ uno::Type SAL_CALL GalleryThemeProvider::getElementType()
+ sal_Bool SAL_CALL GalleryThemeProvider::hasElements() 
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	return( ( mpGallery != NULL ) && ( mpGallery->GetThemeCount() > 0 ) );
+ }
+@@ -237,7 +237,7 @@ sal_Bool SAL_CALL GalleryThemeProvider::hasElements()
+ uno::Any SAL_CALL GalleryThemeProvider::getByName( const ::rtl::OUString& rName )
+ 	throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	uno::Any 			aRet;
+ 	
+ 	if( !mpGallery || !mpGallery->HasTheme( rName ) )
+@@ -257,7 +257,7 @@ uno::Any SAL_CALL GalleryThemeProvider::getByName( const ::rtl::OUString& rName
+ uno::Sequence< ::rtl::OUString > SAL_CALL GalleryThemeProvider::getElementNames()
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard 				aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard 				aGuard( Application::GetSolarMutex() );
+ 	sal_uInt32 							i = 0, nCount = ( mpGallery ? mpGallery->GetThemeCount() : 0 ), nRealCount = 0;
+ 	uno::Sequence< ::rtl::OUString >	aSeq( nCount );
+ 	
+@@ -279,7 +279,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL GalleryThemeProvider::getElementNames(
+ sal_Bool SAL_CALL GalleryThemeProvider::hasByName( const ::rtl::OUString& rName )
+ 	throw (uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	sal_Bool bRet = sal_False;
+ 	
+@@ -294,7 +294,7 @@ sal_Bool SAL_CALL GalleryThemeProvider::hasByName( const ::rtl::OUString& rName
+ uno::Reference< gallery::XGalleryTheme > SAL_CALL GalleryThemeProvider::insertNewByName( const ::rtl::OUString& rThemeName ) 
+ 	throw (container::ElementExistException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard 						aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard 						aGuard( Application::GetSolarMutex() );
+ 	uno::Reference< gallery::XGalleryTheme > 	xRet;
+ 	
+ 	if( mpGallery )
+@@ -317,7 +317,7 @@ uno::Reference< gallery::XGalleryTheme > SAL_CALL GalleryThemeProvider::insertNe
+ void SAL_CALL GalleryThemeProvider::removeByName( const ::rtl::OUString& rName ) 
+ 	throw (container::NoSuchElementException, uno::RuntimeException)
+ {
+-	const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++	const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	
+ 	if( !mpGallery || 
+ 		!mpGallery->HasTheme( rName ) || 
+diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx
+index 68fa6ca..2e17e4d 100644
+--- sw/inc/accmap.hxx
++++ sw/inc/accmap.hxx
+@@ -43,8 +43,8 @@
+ #include <rtl/ref.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SVX_ACCESSIBILITY_IACCESSIBLE_VIEW_FORWARDER_HXX
+@@ -180,8 +180,8 @@ typedef sal_uInt16 tAccessibleStates;
+ class SwAccessibleMap : public accessibility::IAccessibleViewForwarder,
+ 						public accessibility::IAccessibleParent
+ {
+-	::vos::OMutex maMutex;
+-	::vos::OMutex maEventMutex;
++	osl::Mutex maMutex;
++	osl::Mutex maEventMutex;
+ 	SwAccessibleContextMap_Impl *mpFrmMap;
+ 	SwAccessibleShapeMap_Impl *mpShapeMap;
+ 	SwShapeList_Impl *mpShapes;
+diff --git a/sw/inc/pch/precompiled_sw.hxx b/sw/inc/pch/precompiled_sw.hxx
+index 749be09..7dd076a 100644
+--- sw/inc/pch/precompiled_sw.hxx
++++ sw/inc/pch/precompiled_sw.hxx
+@@ -968,7 +968,7 @@
+ #include "vcl/wintypes.hxx"
+ #include "vcl/wrkwin.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ 
+ #include "xmloff/DocumentSettingsContext.hxx"
+diff --git a/sw/source/core/access/acccell.cxx b/sw/source/core/access/acccell.cxx
+index 54eef39..bc87804 100644
+--- sw/source/core/access/acccell.cxx
++++ sw/source/core/access/acccell.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_
+@@ -156,7 +156,7 @@ SwAccessibleCell::SwAccessibleCell(
+ 	SwAccessibleContext( pMap, AccessibleRole::TABLE_CELL, pCellFrm ),
+ 	bIsSelected( sal_False )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sBoxName( pCellFrm->GetTabBox()->GetName() );
+ 	SetName( sBoxName );
+ 
+@@ -168,7 +168,7 @@ sal_Bool SwAccessibleCell::_InvalidateMyCursorPos()
+ 	sal_Bool bNew = IsSelected();
+ 	sal_Bool bOld;
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		bOld = bIsSelected;
+ 		bIsSelected = bNew;
+ 	}
+@@ -257,7 +257,7 @@ void SwAccessibleCell::_InvalidateCursorPos()
+ 
+ sal_Bool SwAccessibleCell::HasCursor()
+ {
+-	vos::OGuard aGuard( aMutex );
++	osl::MutexGuard aGuard( aMutex );
+ 	return bIsSelected;
+ }
+ 
+@@ -354,7 +354,7 @@ uno::Sequence< uno::Type > SAL_CALL SwAccessibleCell::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleCell::getImplementationId() 
+ 		throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -380,7 +380,7 @@ SwFrmFmt* SwAccessibleCell::GetTblBoxFormat() const
+ uno::Any SwAccessibleCell::getCurrentValue( )
+     throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleValue );
+ 
+     uno::Any aAny;
+@@ -391,7 +391,7 @@ uno::Any SwAccessibleCell::getCurrentValue( )
+ sal_Bool SwAccessibleCell::setCurrentValue( const uno::Any& aNumber ) 
+     throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleValue );
+ 
+     double fValue;
+diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
+index ccd3646..918389e 100644
+--- sw/source/core/access/acccontext.cxx
++++ sw/source/core/access/acccontext.cxx
+@@ -68,8 +68,8 @@
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEEVENTID_HPP_
+ #include <com/sun/star/accessibility/AccessibleEventId.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -154,7 +154,7 @@ void SwAccessibleContext::InitStates()
+ 
+ void SwAccessibleContext::SetParent( SwAccessibleContext *pParent )
+ {
+-	vos::OGuard aGuard( aMutex );
++	osl::MutexGuard aGuard( aMutex );
+ 
+ 	uno::Reference < XAccessible > xParent( pParent );
+ 	xWeakParent = xParent;
+@@ -162,7 +162,7 @@ void SwAccessibleContext::SetParent( SwAccessibleContext *pParent )
+ 
+ uno::Reference< XAccessible > SwAccessibleContext::GetWeakParent() const
+ {
+-	vos::OGuard aGuard( aMutex );
++	osl::MutexGuard aGuard( aMutex );
+ 
+ 	uno::Reference< XAccessible > xParent( xWeakParent );
+ 	return xParent;
+@@ -352,7 +352,7 @@ void SwAccessibleContext::Scrolled( const SwRect& rOldVisArea )
+ 	sal_Bool bIsOldShowingState;
+ 	sal_Bool bIsNewShowingState = IsShowing();
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		bIsOldShowingState = bIsShowingState;
+ 		bIsShowingState = bIsNewShowingState;
+ 	}
+@@ -544,7 +544,7 @@ void SwAccessibleContext::FireStateChangedEvent( sal_Int16 nState,
+ void SwAccessibleContext::GetStates(
+ 		::utl::AccessibleStateSetHelper& rStateSet )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// SHOWING
+ 	if( bIsShowingState )
+@@ -572,7 +572,7 @@ sal_Bool SwAccessibleContext::IsEditableState()
+ {
+ 	sal_Bool bRet;
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		bRet = bIsEditableState;
+ 	}
+ 
+@@ -595,7 +595,7 @@ SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *pM,
+ 
+ SwAccessibleContext::~SwAccessibleContext()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	DBG_MSG_CD( "destructed" )
+ 	if( GetFrm() && GetMap() )
+@@ -613,7 +613,7 @@ uno::Reference< XAccessibleContext > SAL_CALL
+ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleChildCount( void )
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -624,7 +624,7 @@ uno::Reference< XAccessible> SAL_CALL
+ 	SwAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
+         throw (uno::RuntimeException, lang::IndexOutOfBoundsException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -664,7 +664,7 @@ uno::Reference< XAccessible> SAL_CALL
+ uno::Reference< XAccessible> SAL_CALL SwAccessibleContext::getAccessibleParent (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -679,7 +679,7 @@ uno::Reference< XAccessible> SAL_CALL SwAccessibleContext::getAccessibleParent (
+ 
+ 	// Remember the parent as weak ref.
+ 	{
+-		vos::OGuard aWeakParentGuard( aMutex );
++		osl::MutexGuard aWeakParentGuard( aMutex );
+ 		xWeakParent = xAcc;
+ 	}
+ 
+@@ -689,7 +689,7 @@ uno::Reference< XAccessible> SAL_CALL SwAccessibleContext::getAccessibleParent (
+ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleIndexInParent (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -741,7 +741,7 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
+ 	SwAccessibleContext::getAccessibleStateSet (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -757,7 +757,7 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
+ lang::Locale SAL_CALL SwAccessibleContext::getLocale (void)
+ 		throw (IllegalAccessibleComponentStateException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	lang::Locale aLoc( Application::GetSettings().GetLocale() );
+ 	return aLoc;
+@@ -771,7 +771,7 @@ void SAL_CALL SwAccessibleContext::addEventListener(
+ 
+ 	if (xListener.is())
+     {
+-    	vos::OGuard aGuard(Application::GetSolarMutex());
++    	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		if (!nClientId)
+             nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ 		comphelper::AccessibleEventNotifier::addEventListener( nClientId, xListener );
+@@ -786,7 +786,7 @@ void SAL_CALL SwAccessibleContext::removeEventListener(
+ 
+ 	if (xListener.is())
+ 	{
+-    	vos::OGuard aGuard(Application::GetSolarMutex());
++    	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 		sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( nClientId, xListener );
+ 		if ( !nListenerCount )
+ 		{
+@@ -827,7 +827,7 @@ uno::Reference< XAccessible > SAL_CALL SwAccessibleContext::getAccessibleAtPoint
+ 				const awt::Point& aPoint )
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleComponent )
+ 
+@@ -880,7 +880,7 @@ uno::Reference< XAccessible > SAL_CALL SwAccessibleContext::getAccessibleAtPoint
+ awt::Rectangle SAL_CALL SwAccessibleContext::getBoundsImpl(sal_Bool bRelative)
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleComponent )
+ 
+@@ -966,7 +966,7 @@ awt::Size SAL_CALL SwAccessibleContext::getSize()
+ void SAL_CALL SwAccessibleContext::grabFocus()
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext );
+ 
+@@ -1091,7 +1091,7 @@ void SwAccessibleContext::ScrolledInShape( const SdrObject *pObj,
+ 
+ void SwAccessibleContext::Dispose( sal_Bool bRecursive )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	ASSERT( GetFrm() && GetMap(), "already disposed" );
+ 	ASSERT( GetMap()->GetVisArea() == GetVisArea(),
+@@ -1122,7 +1122,7 @@ void SwAccessibleContext::Dispose( sal_Bool bRecursive )
+ 	// set defunc state (its not required to broadcast a state changed
+ 	// event if the object is diposed afterwards)
+ 	{
+-		vos::OGuard aDefuncStateGuard( aMutex );
++		osl::MutexGuard aDefuncStateGuard( aMutex );
+ 		bIsDefuncState = sal_True;
+ 	}
+ 
+@@ -1145,7 +1145,7 @@ void SwAccessibleContext::Dispose( sal_Bool bRecursive )
+ void SwAccessibleContext::DisposeChild( const SwFrmOrObj& rChildFrmOrObj,
+ 										sal_Bool bRecursive )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwFrmOrObj aFrmOrObj( GetFrm() );
+ 	if( IsShowing( rChildFrmOrObj ) || !aFrmOrObj.IsVisibleChildrenOnly() )
+@@ -1175,14 +1175,14 @@ void SwAccessibleContext::DisposeChild( const SwFrmOrObj& rChildFrmOrObj,
+ 
+ void SwAccessibleContext::InvalidatePosOrSize( const SwRect& rOldPos )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	ASSERT( GetFrm() && !GetFrm()->Frm().IsEmpty(), "context should have a size" );
+ 
+ 	sal_Bool bIsOldShowingState;
+ 	sal_Bool bIsNewShowingState = IsShowing();
+ 	{
+-		vos::OGuard aShowingStateGuard( aMutex );
++		osl::MutexGuard aShowingStateGuard( aMutex );
+ 		bIsOldShowingState = bIsShowingState;
+ 		bIsShowingState = bIsNewShowingState;
+ 	}
+@@ -1214,7 +1214,7 @@ void SwAccessibleContext::InvalidateChildPosOrSize(
+ 					const SwFrmOrObj& rChildFrmOrObj,
+ 					const SwRect& rOldFrm )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	ASSERT( !rChildFrmOrObj.GetSwFrm() ||
+ 			!rChildFrmOrObj.GetSwFrm()->Frm().IsEmpty(),
+@@ -1289,21 +1289,21 @@ void SwAccessibleContext::InvalidateChildPosOrSize(
+ 
+ void SwAccessibleContext::InvalidateContent()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	_InvalidateContent( sal_False );
+ }
+ 
+ void SwAccessibleContext::InvalidateCursorPos()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	_InvalidateCursorPos();
+ }
+ 
+ void SwAccessibleContext::InvalidateFocus()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	_InvalidateFocus();
+ }
+@@ -1321,7 +1321,7 @@ void SwAccessibleContext::InvalidateStates( tAccessibleStates _nStates )
+ 				sal_Bool bIsOldEditableState;
+ 				sal_Bool bIsNewEditableState = IsEditable( pVSh );
+ 				{
+-					vos::OGuard aGuard( aMutex );
++					osl::MutexGuard aGuard( aMutex );
+ 					bIsOldEditableState = bIsEditableState;
+ 					bIsEditableState = bIsNewEditableState;
+ 				}
+@@ -1335,7 +1335,7 @@ void SwAccessibleContext::InvalidateStates( tAccessibleStates _nStates )
+ 				sal_Bool bIsOldOpaqueState;
+ 				sal_Bool bIsNewOpaqueState = IsOpaque( pVSh );
+ 				{
+-					vos::OGuard aGuard( aMutex );
++					osl::MutexGuard aGuard( aMutex );
+ 					bIsOldOpaqueState = bIsOpaqueState;
+ 					bIsOpaqueState = bIsNewOpaqueState;
+ 				}
+@@ -1431,7 +1431,7 @@ OUString SwAccessibleContext::GetResource( sal_uInt16 nResId,
+ {
+ 	String sStr;
+ 	{
+-		vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 		sStr = SW_RES( nResId );
+ 	}
+diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx
+index c0de986..32acb0a 100644
+--- sw/source/core/access/acccontext.hxx
++++ sw/source/core/access/acccontext.hxx
+@@ -89,7 +89,7 @@ class SwAccessibleContext :
+ protected:
+ 
+ 	mutable ::osl::Mutex aListenerMutex;
+-	mutable ::vos::OMutex aMutex;
++	mutable ::osl::Mutex aMutex;
+ 
+ private:
+ 
+diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
+index b4389cb..31ec343 100644
+--- sw/source/core/access/accdoc.cxx
++++ sw/source/core/access/accdoc.cxx
+@@ -65,8 +65,8 @@
+ #ifndef _SFXVIEWSH_HXX //autogen
+ #include <sfx2/viewsh.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -122,7 +122,7 @@ SwAccessibleDocumentBase::~SwAccessibleDocumentBase()
+ 
+ void SwAccessibleDocumentBase::SetVisArea()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwRect aOldVisArea( GetVisArea() );
+ 	const SwRect& rNewVisArea = GetMap()->GetVisArea();
+@@ -135,7 +135,7 @@ void SwAccessibleDocumentBase::SetVisArea()
+ 
+ void SwAccessibleDocumentBase::AddChild( Window *pWin, sal_Bool bFireEvent )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	ASSERT( !pChildWin, "only one child window is supported" );
+ 	if( !pChildWin )
+@@ -154,7 +154,7 @@ void SwAccessibleDocumentBase::AddChild( Window *pWin, sal_Bool bFireEvent )
+ 
+ void SwAccessibleDocumentBase::RemoveChild( Window *pWin )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	ASSERT( !pChildWin || pWin == pChildWin, "invalid child window to remove" );
+ 	if( pChildWin && pWin == pChildWin )
+@@ -171,7 +171,7 @@ void SwAccessibleDocumentBase::RemoveChild( Window *pWin )
+ sal_Int32 SAL_CALL SwAccessibleDocumentBase::getAccessibleChildCount( void )
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// CHECK_FOR_DEFUNC is called by parent
+ 
+@@ -186,7 +186,7 @@ uno::Reference< XAccessible> SAL_CALL
+ 	SwAccessibleDocumentBase::getAccessibleChild( sal_Int32 nIndex )
+         throw (uno::RuntimeException, lang::IndexOutOfBoundsException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( pChildWin  )
+ 	{
+@@ -208,7 +208,7 @@ uno::Reference< XAccessible> SAL_CALL SwAccessibleDocumentBase::getAccessiblePar
+ sal_Int32 SAL_CALL SwAccessibleDocumentBase::getAccessibleIndexInParent (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference < XAccessibleContext > xAcc( xParent->getAccessibleContext() );
+ 	uno::Reference < XAccessible > xThis( this );
+@@ -231,7 +231,7 @@ OUString SAL_CALL SwAccessibleDocumentBase::getAccessibleDescription (void)
+ awt::Rectangle SAL_CALL SwAccessibleDocumentBase::getBounds()
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Window *pWin = GetWindow();
+ 
+@@ -248,7 +248,7 @@ awt::Rectangle SAL_CALL SwAccessibleDocumentBase::getBounds()
+ awt::Point SAL_CALL SwAccessibleDocumentBase::getLocation()
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Window *pWin = GetWindow();
+ 
+@@ -264,7 +264,7 @@ awt::Point SAL_CALL SwAccessibleDocumentBase::getLocation()
+ ::com::sun::star::awt::Point SAL_CALL SwAccessibleDocumentBase::getLocationOnScreen()
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Window *pWin = GetWindow();
+ 
+@@ -280,7 +280,7 @@ awt::Point SAL_CALL SwAccessibleDocumentBase::getLocation()
+ ::com::sun::star::awt::Size SAL_CALL SwAccessibleDocumentBase::getSize()
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Window *pWin = GetWindow();
+ 
+@@ -296,7 +296,7 @@ sal_Bool SAL_CALL SwAccessibleDocumentBase::containsPoint(
+ 			const awt::Point& aPoint )
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Window *pWin = GetWindow();
+ 
+@@ -313,7 +313,7 @@ uno::Reference< XAccessible > SAL_CALL SwAccessibleDocumentBase::getAccessibleAt
+ 				const awt::Point& aPoint )
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( pChildWin  )
+ 	{
+@@ -484,7 +484,7 @@ uno::Sequence< uno::Type > SAL_CALL SwAccessibleDocument::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleDocument::getImplementationId()
+ 		throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/accembedded.cxx b/sw/source/core/access/accembedded.cxx
+index c4d462c..ba569ca 100644
+--- sw/source/core/access/accembedded.cxx
++++ sw/source/core/access/accembedded.cxx
+@@ -109,7 +109,7 @@ Sequence< OUString > SAL_CALL SwAccessibleEmbeddedObject::getSupportedServiceNam
+ Sequence< sal_Int8 > SAL_CALL SwAccessibleEmbeddedObject::getImplementationId() 
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/accfootnote.cxx b/sw/source/core/access/accfootnote.cxx
+index cbbd8bc..36893c6 100644
+--- sw/source/core/access/accfootnote.cxx
++++ sw/source/core/access/accfootnote.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_
+@@ -108,7 +108,7 @@ SwAccessibleFootnote::SwAccessibleFootnote(
+ 		bIsEndnote ? AccessibleRole::END_NOTE : AccessibleRole::FOOTNOTE,
+ 		pFtnFrm )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_uInt16 nResId = bIsEndnote ? STR_ACCESS_ENDNOTE_NAME
+ 								   : STR_ACCESS_FOOTNOTE_NAME;
+@@ -123,7 +123,7 @@ SwAccessibleFootnote::~SwAccessibleFootnote()
+ OUString SAL_CALL SwAccessibleFootnote::getAccessibleDescription (void)
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -182,7 +182,7 @@ Sequence< OUString > SAL_CALL SwAccessibleFootnote::getSupportedServiceNames()
+ Sequence< sal_Int8 > SAL_CALL SwAccessibleFootnote::getImplementationId() 
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/accframebase.cxx b/sw/source/core/access/accframebase.cxx
+index eee61f5..973dd6c 100644
+--- sw/source/core/access/accframebase.cxx
++++ sw/source/core/access/accframebase.cxx
+@@ -49,8 +49,8 @@
+ #include <unotools/accessiblestatesethelper.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -180,7 +180,7 @@ SwAccessibleFrameBase::SwAccessibleFrameBase(
+ 	SwAccessibleContext( pMap, nRole, pFlyFrm ),
+ 	bIsSelected( sal_False )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	const SwFrmFmt *pFrmFmt = pFlyFrm->GetFmt();
+ 	const_cast< SwFrmFmt * >( pFrmFmt )->Add( this );
+@@ -196,7 +196,7 @@ void SwAccessibleFrameBase::_InvalidateCursorPos()
+ 	sal_Bool bOldSelected;
+ 
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		bOldSelected = bIsSelected;
+ 		bIsSelected = bNewSelected;
+ 	}
+@@ -239,7 +239,7 @@ void SwAccessibleFrameBase::_InvalidateFocus()
+ 		sal_Bool bSelected;
+ 
+ 		{
+-			vos::OGuard aGuard( aMutex );
++			osl::MutexGuard aGuard( aMutex );
+ 			bSelected = bIsSelected;
+ 		}
+ 		ASSERT( bSelected, "focus object should be selected" );
+@@ -251,7 +251,7 @@ void SwAccessibleFrameBase::_InvalidateFocus()
+ 
+ sal_Bool SwAccessibleFrameBase::HasCursor()
+ {
+-	vos::OGuard aGuard( aMutex );
++	osl::MutexGuard aGuard( aMutex );
+ 	return bIsSelected;
+ }
+ 
+@@ -312,7 +312,7 @@ void SwAccessibleFrameBase::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ 
+ void SwAccessibleFrameBase::Dispose( sal_Bool bRecursive )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( GetRegisteredIn() )
+ 		pRegisteredIn->Remove( this );
+diff --git a/sw/source/core/access/accgraphic.cxx b/sw/source/core/access/accgraphic.cxx
+index ecff35d..fb00ac7 100644
+--- sw/source/core/access/accgraphic.cxx
++++ sw/source/core/access/accgraphic.cxx
+@@ -108,7 +108,7 @@ Sequence< OUString > SAL_CALL SwAccessibleGraphic::getSupportedServiceNames()
+ Sequence< sal_Int8 > SAL_CALL SwAccessibleGraphic::getImplementationId() 
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/accheaderfooter.cxx b/sw/source/core/access/accheaderfooter.cxx
+index 900361d..5d6057d 100644
+--- sw/source/core/access/accheaderfooter.cxx
++++ sw/source/core/access/accheaderfooter.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_
+@@ -83,7 +83,7 @@ SwAccessibleHeaderFooter::SwAccessibleHeaderFooter(
+ 		const SwHeaderFrm *pHdFrm	) :
+ 	SwAccessibleContext( pMap, AccessibleRole::HEADER, pHdFrm )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	OUString sArg( OUString::valueOf( (sal_Int32)pHdFrm->GetPhyPageNum() ) );
+ 	SetName( GetResource( STR_ACCESS_HEADER_NAME, &sArg ) );
+@@ -94,7 +94,7 @@ SwAccessibleHeaderFooter::SwAccessibleHeaderFooter(
+ 		const SwFooterFrm *pFtFrm	) :
+ 	SwAccessibleContext( pMap, AccessibleRole::FOOTER, pFtFrm )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	OUString sArg( OUString::valueOf( (sal_Int32)pFtFrm->GetPhyPageNum() ) );
+ 	SetName( GetResource( STR_ACCESS_FOOTER_NAME, &sArg ) );
+@@ -107,7 +107,7 @@ SwAccessibleHeaderFooter::~SwAccessibleHeaderFooter()
+ OUString SAL_CALL SwAccessibleHeaderFooter::getAccessibleDescription (void)
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -159,7 +159,7 @@ Sequence< OUString > SAL_CALL SwAccessibleHeaderFooter::getSupportedServiceNames
+ Sequence< sal_Int8 > SAL_CALL SwAccessibleHeaderFooter::getImplementationId()
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/acchyperlink.cxx b/sw/source/core/access/acchyperlink.cxx
+index 9ecaeca..0ac5e23 100644
+--- sw/source/core/access/acchyperlink.cxx
++++ sw/source/core/access/acchyperlink.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _SWURL_HXX //autogen
+ #include <swurl.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -104,7 +104,7 @@ sal_Int32 SAL_CALL SwAccessibleHyperlink::getAccessibleActionCount()
+ sal_Bool SAL_CALL SwAccessibleHyperlink::doAccessibleAction( sal_Int32 nIndex ) 
+ 		throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_Bool bRet = sal_False;
+ 
+@@ -204,13 +204,13 @@ sal_Int32 SAL_CALL SwAccessibleHyperlink::getEndIndex()
+ sal_Bool SAL_CALL SwAccessibleHyperlink::isValid(  ) 
+ 		throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return xPara.is();
+ }
+ 
+ void SwAccessibleHyperlink::Invalidate() 
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	xPara = 0;
+ }
+ 
+diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
+index ebb38b1..365dc1d 100644
+--- sw/source/core/access/accmap.cxx
++++ sw/source/core/access/accmap.cxx
+@@ -743,7 +743,7 @@ void SwAccessibleMap::FireEvent( const SwAccessibleEvent_Impl& rEvent )
+ 
+ void SwAccessibleMap::AppendEvent( const SwAccessibleEvent_Impl& rEvent )
+ {
+-	vos::OGuard aGuard( maEventMutex );
++	osl::MutexGuard aGuard( maEventMutex );
+ 
+ 	if( !mpEvents )
+ 		mpEvents = new SwAccessibleEventList_Impl;
+@@ -894,7 +894,7 @@ void SwAccessibleMap::DoInvalidateShapeSelection()
+ 	sal_uInt16 nSelShapes = pFESh ? pFESh->IsObjSelected() : 0;
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 		if( mpShapeMap )
+ 			pShapes = mpShapeMap->Copy( nShapes, pFESh, &pSelShape );
+ 	}
+@@ -946,7 +946,7 @@ void SwAccessibleMap::DoInvalidateShapeSelection()
+ 			{
+ 				::rtl::Reference< SwAccessibleContext > xParentAccImpl;
+ 				{
+-					vos::OGuard aGuard( maMutex );
++					osl::MutexGuard aGuard( maMutex );
+ 					if(  mpFrmMap )
+ 					{
+ 						SwAccessibleContextMap_Impl::const_iterator aMapIter =
+@@ -990,7 +990,7 @@ void SwAccessibleMap::DoInvalidateShapeFocus()
+ 
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 		if( mpShapeMap )
+ 			pShapes = mpShapeMap->Copy( nShapes, pFESh, &pSelShape );
+ 	}
+@@ -1042,7 +1042,7 @@ SwAccessibleMap::~SwAccessibleMap()
+ {
+ 	uno::Reference < XAccessible > xAcc;
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 		if( mpFrmMap )
+ 		{
+ 			const SwRootFrm *pRootFrm = GetShell()->GetLayout();
+@@ -1059,7 +1059,7 @@ SwAccessibleMap::~SwAccessibleMap()
+ 	pAcc->Dispose( sal_True );
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ #ifndef PRODUCT
+ 		ASSERT( !mpFrmMap || mpFrmMap->empty(),
+ 				"Frame map should be empty after disposing the root frame" );
+@@ -1110,7 +1110,7 @@ SwAccessibleMap::~SwAccessibleMap()
+ 	mpPreview = NULL;
+ 
+     {
+-		vos::OGuard aGuard( maEventMutex );
++		osl::MutexGuard aGuard( maEventMutex );
+ #ifndef PRODUCT
+ 		ASSERT( !(mpEvents || mpEventMap), "pending events" );
+ 		if( mpEvents )
+@@ -1148,7 +1148,7 @@ uno::Reference< XAccessible > SwAccessibleMap::_GetDocumentView(
+ 	sal_Bool bSetVisArea = sal_False;
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		if( !mpFrmMap )
+ 		{
+@@ -1235,7 +1235,7 @@ uno::Reference< XAccessible> SwAccessibleMap::GetContext( const SwFrm *pFrm,
+ 	sal_Bool bOldShapeSelected = sal_False;
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		if( !mpFrmMap && bCreate )
+ 			mpFrmMap = new SwAccessibleContextMap_Impl;
+@@ -1378,7 +1378,7 @@ uno::Reference< XAccessible> SwAccessibleMap::GetContext(
+ 	uno::Reference < XAccessible > xOldCursorAcc;
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		if( !mpShapeMap && bCreate )
+ 			mpShapeMap = new SwAccessibleShapeMap_Impl( this );
+@@ -1451,7 +1451,7 @@ uno::Reference< XAccessible> SwAccessibleMap::GetContext(
+ 
+ void SwAccessibleMap::RemoveContext( const SwFrm *pFrm )
+ {
+-	vos::OGuard aGuard( maMutex );
++	osl::MutexGuard aGuard( maMutex );
+ 
+ 	if( mpFrmMap )
+ 	{
+@@ -1488,7 +1488,7 @@ void SwAccessibleMap::RemoveContext( const SwFrm *pFrm )
+ 
+ void SwAccessibleMap::RemoveContext( const SdrObject *pObj )
+ {
+-	vos::OGuard aGuard( maMutex );
++	osl::MutexGuard aGuard( maMutex );
+ 
+ 	if( mpShapeMap )
+ 	{
+@@ -1531,7 +1531,7 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 	{
+ 		// get accessible context for frame
+ 		{
+-			vos::OGuard aGuard( maMutex );
++			osl::MutexGuard aGuard( maMutex );
+ 
+ 			// First of all look for an accessible context for a frame
+ 			if( aFrmOrObj.GetSwFrm() && mpFrmMap )
+@@ -1595,7 +1595,7 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 
+ 		// remove events stored for the frame
+ 		{
+-			vos::OGuard aGuard( maEventMutex );
++			osl::MutexGuard aGuard( maEventMutex );
+ 			if( mpEvents )
+ 			{
+ 				SwAccessibleEventMap_Impl::iterator aIter =
+@@ -1647,7 +1647,7 @@ void SwAccessibleMap::InvalidatePosOrSize( const SwFrm *pFrm,
+ 		::rtl::Reference< SwAccessibleContext > xAccImpl;
+ 		::rtl::Reference< SwAccessibleContext > xParentAccImpl;
+ 		{
+-			vos::OGuard aGuard( maMutex );
++			osl::MutexGuard aGuard( maMutex );
+ 
+ 			if( mpFrmMap )
+ 			{
+@@ -1728,7 +1728,7 @@ void SwAccessibleMap::InvalidateContent( const SwFrm *pFrm )
+ 	{
+ 		uno::Reference < XAccessible > xAcc;
+ 		{
+-			vos::OGuard aGuard( maMutex );
++			osl::MutexGuard aGuard( maMutex );
+ 
+ 			if( mpFrmMap )
+ 			{
+@@ -1799,7 +1799,7 @@ void SwAccessibleMap::InvalidateCursorPosition( const SwFrm *pFrm )
+ 	sal_Bool bOldShapeSelected = sal_False;
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		xOldAcc = mxCursorContext;
+ 		mxCursorContext = xAcc;	// clear reference
+@@ -1856,7 +1856,7 @@ void SwAccessibleMap::InvalidateFocus()
+ 	uno::Reference < XAccessible > xAcc;
+ 	sal_Bool bShapeSelected;
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		xAcc = mxCursorContext;
+ 		bShapeSelected = mbShapeSelected;
+@@ -1877,7 +1877,7 @@ void SwAccessibleMap::InvalidateFocus()
+ void SwAccessibleMap::SetCursorContext(
+ 		const ::rtl::Reference < SwAccessibleContext >& rCursorContext )
+ {
+-	vos::OGuard aGuard( maMutex );
++	osl::MutexGuard aGuard( maMutex );
+ 	uno::Reference < XAccessible > xAcc( rCursorContext.get() );
+ 	mxCursorContext = xAcc;
+ }
+@@ -1921,7 +1921,7 @@ void SwAccessibleMap::_InvalidateRelationSet( const SwFrm* pFrm,
+ 	{
+ 		uno::Reference < XAccessible > xAcc;
+ 		{
+-			vos::OGuard aGuard( maMutex );
++			osl::MutexGuard aGuard( maMutex );
+ 
+ 			if( mpFrmMap )
+ 			{
+@@ -1990,7 +1990,7 @@ void SwAccessibleMap::InvalidateParaTextSelection( const SwTxtFrm& _rTxtFrm )
+     {
+         uno::Reference < XAccessible > xAcc;
+         {
+-            vos::OGuard aGuard( maMutex );
++            osl::MutexGuard aGuard( maMutex );
+ 
+             if( mpFrmMap )
+             {
+@@ -2048,7 +2048,7 @@ void SwAccessibleMap::UpdatePreview( const std::vector<PrevwPage*>& _rPrevwPages
+ 	uno::Reference < XAccessible > xOldAcc;
+ 	uno::Reference < XAccessible > xAcc;
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		xOldAcc = mxCursorContext;
+ 
+@@ -2079,7 +2079,7 @@ void SwAccessibleMap::InvalidatePreViewSelection( sal_uInt16 nSelPage )
+ 	uno::Reference < XAccessible > xOldAcc;
+ 	uno::Reference < XAccessible > xAcc;
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		xOldAcc = mxCursorContext;
+ 
+@@ -2109,7 +2109,7 @@ sal_Bool SwAccessibleMap::IsPageSelected( const SwPageFrm *pPageFrm ) const
+ void SwAccessibleMap::FireEvents()
+ {
+ 	{
+-		vos::OGuard aGuard( maEventMutex );
++		osl::MutexGuard aGuard( maEventMutex );
+ 		if( mpEvents )
+ 		{
+ 			mpEvents->SetFiring();
+@@ -2128,7 +2128,7 @@ void SwAccessibleMap::FireEvents()
+ 		}
+ 	}
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 		if( mpShapes )
+ 		{
+ 			delete mpShapes;
+@@ -2234,7 +2234,7 @@ sal_Bool SwAccessibleMap::ReplaceChild (
+ {
+ 	const SdrObject *pObj = 0;
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 		if( mpShapeMap )
+ 		{
+ 			SwAccessibleShapeMap_Impl::const_iterator aIter = mpShapeMap->begin();
+@@ -2264,7 +2264,7 @@ sal_Bool SwAccessibleMap::ReplaceChild (
+ 	Dispose( 0, pObj );
+ 
+ 	{
+-		vos::OGuard aGuard( maMutex );
++		osl::MutexGuard aGuard( maMutex );
+ 
+ 		if( !mpShapeMap )
+ 			mpShapeMap = new SwAccessibleShapeMap_Impl( this );
+@@ -2525,7 +2525,7 @@ SwAccessibleSelectedParas_Impl* SwAccessibleMap::_BuildSelectedParas()
+ */
+ void SwAccessibleMap::InvalidateTextSelectionOfAllParas()
+ {
+-    vos::OGuard aGuard( maMutex );
++    osl::MutexGuard aGuard( maMutex );
+ 
+     // keep previously known selected paragraphs
+     SwAccessibleSelectedParas_Impl* pPrevSelectedParas( mpSelectedParas );
+diff --git a/sw/source/core/access/accnotextframe.cxx b/sw/source/core/access/accnotextframe.cxx
+index d9a517e..fce27fd 100644
+--- sw/source/core/access/accnotextframe.cxx
++++ sw/source/core/access/accnotextframe.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -159,7 +159,7 @@ void SwAccessibleNoTextFrame::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ 
+ void SwAccessibleNoTextFrame::Dispose( sal_Bool bRecursive )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( aDepend.GetRegisteredIn() )
+ 		const_cast < SwModify *>( aDepend.GetRegisteredIn() )->Remove( &aDepend );
+@@ -170,7 +170,7 @@ void SwAccessibleNoTextFrame::Dispose( sal_Bool bRecursive )
+ OUString SAL_CALL SwAccessibleNoTextFrame::getAccessibleDescription (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+diff --git a/sw/source/core/access/accpage.cxx b/sw/source/core/access/accpage.cxx
+index 638a7bd..675d1c4 100644
+--- sw/source/core/access/accpage.cxx
++++ sw/source/core/access/accpage.cxx
+@@ -109,7 +109,7 @@ void SwAccessiblePage::_InvalidateCursorPos()
+ 	sal_Bool bOldSelected;
+ 
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		bOldSelected = bIsSelected;
+ 		bIsSelected = bNewSelected;
+ 	}
+@@ -138,7 +138,7 @@ void SwAccessiblePage::_InvalidateFocus()
+ 		sal_Bool bSelected;
+ 
+ 		{
+-			vos::OGuard aGuard( aMutex );
++			osl::MutexGuard aGuard( aMutex );
+ 			bSelected = bIsSelected;
+ 		}
+ 		ASSERT( bSelected, "focus object should be selected" );
+@@ -156,7 +156,7 @@ SwAccessiblePage::SwAccessiblePage( SwAccessibleMap* pMap,
+     DBG_ASSERT( pMap != NULL, "need map" );
+     DBG_ASSERT( pFrame->IsPageFrm(), "need page frame" );
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     OUString sPage = OUString::valueOf(
+         static_cast<sal_Int32>(
+@@ -170,7 +170,7 @@ SwAccessiblePage::~SwAccessiblePage()
+ 
+ sal_Bool SwAccessiblePage::HasCursor()
+ {
+-	vos::OGuard aGuard( aMutex );
++	osl::MutexGuard aGuard( aMutex );
+ 	return bIsSelected;
+ }
+ 
+@@ -201,7 +201,7 @@ Sequence<OUString> SwAccessiblePage::getSupportedServiceNames( )
+ Sequence< sal_Int8 > SAL_CALL SwAccessiblePage::getImplementationId() 
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
+index 7dbe78d..26c5881 100644
+--- sw/source/core/access/accpara.cxx
++++ sw/source/core/access/accpara.cxx
+@@ -60,8 +60,8 @@
+ #ifndef _VIEWOPT_HXX
+ #include <viewopt.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -508,7 +508,7 @@ void SwAccessibleParagraph::_InvalidateContent( sal_Bool bVisibleDataFired )
+ 	sal_Bool bNewIsHeading = IsHeading();
+ 	sal_Bool bOldIsHeading;
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		bOldIsHeading = bIsHeading;
+ 		if( bIsHeading != bNewIsHeading )
+ 			bIsHeading = bNewIsHeading;
+@@ -520,7 +520,7 @@ void SwAccessibleParagraph::_InvalidateContent( sal_Bool bVisibleDataFired )
+ 		OUString sNewDesc( GetDescription() );
+ 		OUString sOldDesc;
+ 		{
+-			vos::OGuard aGuard( aMutex );
++			osl::MutexGuard aGuard( aMutex );
+ 			sOldDesc = sDesc;
+ 			if( sDesc != sNewDesc )
+ 				sDesc = sNewDesc;
+@@ -545,7 +545,7 @@ void SwAccessibleParagraph::_InvalidateCursorPos()
+ 	sal_Int32 nNew = GetCaretPos();
+ 	sal_Int32 nOld;
+ 	{
+-		vos::OGuard aGuard( aMutex );
++		osl::MutexGuard aGuard( aMutex );
+ 		nOld = nOldCaretPos;
+ 		nOldCaretPos = nNew;
+ 	}
+@@ -584,7 +584,7 @@ void SwAccessibleParagraph::_InvalidateFocus()
+ 	{
+ 		sal_Int32 nPos;
+ 		{
+-			vos::OGuard aGuard( aMutex );
++			osl::MutexGuard aGuard( aMutex );
+ 			nPos = nOldCaretPos;
+ 		}
+ 		ASSERT( nPos != -1, "focus object should be selected" );
+@@ -604,7 +604,7 @@ SwAccessibleParagraph::SwAccessibleParagraph(
+ 	nOldCaretPos( -1 ),
+     aSelectionHelper( *this )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	bIsHeading = IsHeading();
+     // --> OD 2004-09-27 #117970# - set an empty accessibility name for paragraphs
+@@ -617,7 +617,7 @@ SwAccessibleParagraph::SwAccessibleParagraph(
+ 
+ SwAccessibleParagraph::~SwAccessibleParagraph()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     delete pPortionData;
+     delete pHyperTextData;
+@@ -625,7 +625,7 @@ SwAccessibleParagraph::~SwAccessibleParagraph()
+ 
+ sal_Bool SwAccessibleParagraph::HasCursor()
+ {
+-	vos::OGuard aGuard( aMutex );
++	osl::MutexGuard aGuard( aMutex );
+ 	return nOldCaretPos != -1;
+ }
+ 
+@@ -928,11 +928,11 @@ sal_Bool SwAccessibleParagraph::GetTextBoundary(
+ OUString SAL_CALL SwAccessibleParagraph::getAccessibleDescription (void)
+         throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext );
+ 
+-	vos::OGuard aGuard2( aMutex );
++	osl::MutexGuard aGuard2( aMutex );
+ 	if( !sDesc.getLength() )
+ 		sDesc = GetDescription();
+ 
+@@ -942,7 +942,7 @@ OUString SAL_CALL SwAccessibleParagraph::getAccessibleDescription (void)
+ Locale SAL_CALL SwAccessibleParagraph::getLocale (void)
+ 		throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwTxtFrm *pTxtFrm = PTR_CAST( SwTxtFrm, GetFrm() );
+ 	if( !pTxtFrm )
+@@ -965,7 +965,7 @@ Locale SAL_CALL SwAccessibleParagraph::getLocale (void)
+ Reference<XAccessibleRelationSet> SAL_CALL SwAccessibleParagraph::getAccessibleRelationSet()
+     throw ( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     CHECK_FOR_DEFUNC( XAccessibleContext );
+ 
+     utl::AccessibleRelationSetHelper* pHelper = new utl::AccessibleRelationSetHelper();
+@@ -1002,7 +1002,7 @@ Reference<XAccessibleRelationSet> SAL_CALL SwAccessibleParagraph::getAccessibleR
+ void SAL_CALL SwAccessibleParagraph::grabFocus()
+ 		throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext );
+ 
+@@ -1241,7 +1241,7 @@ Sequence< Type > SAL_CALL SwAccessibleParagraph::getTypes() throw(RuntimeExcepti
+ Sequence< sal_Int8 > SAL_CALL SwAccessibleParagraph::getImplementationId()
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -1260,13 +1260,13 @@ Sequence< sal_Int8 > SAL_CALL SwAccessibleParagraph::getImplementationId()
+ sal_Int32 SwAccessibleParagraph::getCaretPosition()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+     sal_Int32 nRet = GetCaretPos();
+ 	{
+-		vos::OGuard aOldCaretPosGuard( aMutex );
++		osl::MutexGuard aOldCaretPosGuard( aMutex );
+ 		ASSERT( nRet == nOldCaretPos, "caret pos out of sync" );
+ 		nOldCaretPos = nRet;
+ 	}
+@@ -1282,7 +1282,7 @@ sal_Int32 SwAccessibleParagraph::getCaretPosition()
+ sal_Bool SAL_CALL SwAccessibleParagraph::setCaretPosition( sal_Int32 nIndex )
+ 	throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1315,7 +1315,7 @@ sal_Bool SAL_CALL SwAccessibleParagraph::setCaretPosition( sal_Int32 nIndex )
+ sal_Unicode SwAccessibleParagraph::getCharacter( sal_Int32 nIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1338,7 +1338,7 @@ Sequence<PropertyValue> SwAccessibleParagraph::getCharacterAttributes(
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+     const OUString& rText = GetString();
+@@ -1561,7 +1561,7 @@ Sequence< PropertyValue > SwAccessibleParagraph::getDefaultAttributes(
+         const Sequence< ::rtl::OUString >& aRequestedAttributes )
+         throw ( RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+     tAccParaPropValMap aDefAttrSeq;
+@@ -1663,7 +1663,7 @@ Sequence< PropertyValue > SwAccessibleParagraph::getRunAttributes(
+         throw ( IndexOutOfBoundsException,
+                 RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+     {
+@@ -1696,7 +1696,7 @@ com::sun::star::awt::Rectangle SwAccessibleParagraph::getCharacterBounds(
+     sal_Int32 nIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1759,7 +1759,7 @@ com::sun::star::awt::Rectangle SwAccessibleParagraph::getCharacterBounds(
+ sal_Int32 SwAccessibleParagraph::getCharacterCount()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1769,7 +1769,7 @@ sal_Int32 SwAccessibleParagraph::getCharacterCount()
+ sal_Int32 SwAccessibleParagraph::getIndexAtPoint( const com::sun::star::awt::Point& rPoint )
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+@@ -1822,7 +1822,7 @@ sal_Int32 SwAccessibleParagraph::getIndexAtPoint( const com::sun::star::awt::Poi
+ OUString SwAccessibleParagraph::getSelectedText()
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1834,7 +1834,7 @@ OUString SwAccessibleParagraph::getSelectedText()
+ sal_Int32 SwAccessibleParagraph::getSelectionStart()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1846,7 +1846,7 @@ sal_Int32 SwAccessibleParagraph::getSelectionStart()
+ sal_Int32 SwAccessibleParagraph::getSelectionEnd()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1858,7 +1858,7 @@ sal_Int32 SwAccessibleParagraph::getSelectionEnd()
+ sal_Bool SwAccessibleParagraph::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1894,7 +1894,7 @@ sal_Bool SwAccessibleParagraph::setSelection( sal_Int32 nStartIndex, sal_Int32 n
+ OUString SwAccessibleParagraph::getText()
+     throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1905,7 +1905,7 @@ OUString SwAccessibleParagraph::getTextRange(
+     sal_Int32 nStartIndex, sal_Int32 nEndIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1922,7 +1922,7 @@ OUString SwAccessibleParagraph::getTextRange(
+ 
+ ::com::sun::star::accessibility::TextSegment SwAccessibleParagraph::getTextAtIndex( sal_Int32 nIndex, sal_Int16 nTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -1958,7 +1958,7 @@ OUString SwAccessibleParagraph::getTextRange(
+ 
+ ::com::sun::star::accessibility::TextSegment SwAccessibleParagraph::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 nTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -2002,7 +2002,7 @@ OUString SwAccessibleParagraph::getTextRange(
+ 
+ ::com::sun::star::accessibility::TextSegment SwAccessibleParagraph::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 nTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+ 
+@@ -2044,7 +2044,7 @@ sal_Bool SwAccessibleParagraph::copyText( sal_Int32 nStartIndex, sal_Int32 nEndI
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ 	CHECK_FOR_DEFUNC_THIS( XAccessibleText, *this );
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // select and copy (through dispatch mechanism)
+     setSelection( nStartIndex, nEndIndex );
+@@ -2061,7 +2061,7 @@ sal_Bool SwAccessibleParagraph::cutText( sal_Int32 nStartIndex, sal_Int32 nEndIn
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ 	CHECK_FOR_DEFUNC( XAccessibleEditableText );
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( !IsEditableState() )
+ 		return sal_False;
+@@ -2076,7 +2076,7 @@ sal_Bool SwAccessibleParagraph::pasteText( sal_Int32 nIndex )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ 	CHECK_FOR_DEFUNC( XAccessibleEditableText );
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( !IsEditableState() )
+ 		return sal_False;
+@@ -2104,7 +2104,7 @@ sal_Bool SwAccessibleParagraph::replaceText(
+     const OUString& sReplacement )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleEditableText );
+ 
+@@ -2164,7 +2164,7 @@ sal_Bool SwAccessibleParagraph::setAttributes(
+     const Sequence<PropertyValue>& rAttributeSet )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleEditableText );
+ 
+     const OUString& rText = GetString();
+@@ -2347,7 +2347,7 @@ const SwTxtAttr *SwHyperlinkIter_Impl::next()
+ sal_Int32 SAL_CALL SwAccessibleParagraph::getHyperLinkCount()
+ 	throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleHypertext );
+ 
+@@ -2369,7 +2369,7 @@ Reference< XAccessibleHyperlink > SAL_CALL
+ 	SwAccessibleParagraph::getHyperLink( sal_Int32 nLinkIndex )
+ 	throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleHypertext );
+ 
+ 	Reference< XAccessibleHyperlink > xRet;
+@@ -2424,7 +2424,7 @@ Reference< XAccessibleHyperlink > SAL_CALL
+ sal_Int32 SAL_CALL SwAccessibleParagraph::getHyperLinkIndex( sal_Int32 nCharIndex )
+ 	throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleHypertext );
+ 
+     // parameter checking
+diff --git a/sw/source/core/access/accpreview.cxx b/sw/source/core/access/accpreview.cxx
+index 05b2398..969d5d3 100644
+--- sw/source/core/access/accpreview.cxx
++++ sw/source/core/access/accpreview.cxx
+@@ -108,7 +108,7 @@ Sequence<OUString> SwAccessiblePreview::getSupportedServiceNames( )
+ Sequence< sal_Int8 > SAL_CALL SwAccessiblePreview::getImplementationId() 
+ 		throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/access/accselectionhelper.cxx b/sw/source/core/access/accselectionhelper.cxx
+index cf54721..b18910f 100644
+--- sw/source/core/access/accselectionhelper.cxx
++++ sw/source/core/access/accselectionhelper.cxx
+@@ -124,7 +124,7 @@ void SwAccessibleSelectionHelper::selectAccessibleChild(
+     throw ( IndexOutOfBoundsException,
+             RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // Get the respective child as SwFrm (also do index checking), ...
+     const SwFrmOrObj aChild = rContext.GetChild( nChildIndex );
+@@ -153,7 +153,7 @@ sal_Bool SwAccessibleSelectionHelper::isAccessibleChildSelected(
+     throw ( IndexOutOfBoundsException,
+             RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // Get the respective child as SwFrm (also do index checking), ...
+     const SwFrmOrObj aChild = rContext.GetChild( nChildIndex );
+@@ -187,7 +187,7 @@ void SwAccessibleSelectionHelper::clearAccessibleSelection(  )
+ void SwAccessibleSelectionHelper::selectAllAccessibleChildren(  )
+     throw ( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // We can select only one. So iterate over the children to find
+     // the first we can select, and select it.
+@@ -219,7 +219,7 @@ void SwAccessibleSelectionHelper::selectAllAccessibleChildren(  )
+ sal_Int32 SwAccessibleSelectionHelper::getSelectedAccessibleChildCount(  )
+     throw ( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_Int32 nCount = 0;
+     // Only one frame can be selected at a time, and we only frames
+@@ -271,7 +271,7 @@ Reference<XAccessible> SwAccessibleSelectionHelper::getSelectedAccessibleChild(
+     throw ( IndexOutOfBoundsException,
+             RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // Since the index is relative to the selected children, and since
+     // there can be at most one selected frame child, the index must
+diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx
+index bcd9c11..7de1843 100644
+--- sw/source/core/access/acctable.cxx
++++ sw/source/core/access/acctable.cxx
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sw.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _RTL_UUID_H_
+ #include <rtl/uuid.h>
+@@ -763,7 +763,7 @@ SwAccessibleTable::SwAccessibleTable(
+ 	SwAccessibleContext( pMap, AccessibleRole::TABLE, pTabFrm ),
+ 	mpTableData( 0 )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	const SwFrmFmt *pFrmFmt = pTabFrm->GetFmt();
+ 	const_cast< SwFrmFmt * >( pFrmFmt )->Add( this );
+@@ -785,7 +785,7 @@ SwAccessibleTable::SwAccessibleTable(
+ 
+ SwAccessibleTable::~SwAccessibleTable()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	delete mpTableData;
+ }
+@@ -889,7 +889,7 @@ uno::Sequence< uno::Type > SAL_CALL SwAccessibleTable::getTypes()
+ uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleTable::getImplementationId()
+ 		throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -925,7 +925,7 @@ void SwAccessibleTable::ClearTableData()
+ OUString SAL_CALL SwAccessibleTable::getAccessibleDescription (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -935,7 +935,7 @@ OUString SAL_CALL SwAccessibleTable::getAccessibleDescription (void)
+ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleRowCount()
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -945,7 +945,7 @@ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleRowCount()
+ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleColumnCount(  )
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -982,7 +982,7 @@ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleRowExtentAt(
+ {
+ 	sal_Int32 nExtend = -1;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1013,7 +1013,7 @@ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleColumnExtentAt(
+ {
+ 	sal_Int32 nExtend = -1;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1058,7 +1058,7 @@ uno::Reference< XAccessibleTable > SAL_CALL
+ uno::Sequence< sal_Int32 > SAL_CALL SwAccessibleTable::getSelectedAccessibleRows()
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1082,7 +1082,7 @@ uno::Sequence< sal_Int32 > SAL_CALL SwAccessibleTable::getSelectedAccessibleRows
+ uno::Sequence< sal_Int32 > SAL_CALL SwAccessibleTable::getSelectedAccessibleColumns()
+ 	throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1105,7 +1105,7 @@ uno::Sequence< sal_Int32 > SAL_CALL SwAccessibleTable::getSelectedAccessibleColu
+ sal_Bool SAL_CALL SwAccessibleTable::isAccessibleRowSelected( sal_Int32 nRow )
+ 	throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1132,7 +1132,7 @@ sal_Bool SAL_CALL SwAccessibleTable::isAccessibleColumnSelected(
+ 		sal_Int32 nColumn )
+ 	throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1162,7 +1162,7 @@ uno::Reference< XAccessible > SAL_CALL SwAccessibleTable::getAccessibleCellAt(
+ {
+ 	uno::Reference< XAccessible > xRet;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1194,7 +1194,7 @@ sal_Bool SAL_CALL SwAccessibleTable::isAccessibleSelected(
+ {
+ 	sal_Bool bRet = sal_False;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1221,7 +1221,7 @@ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleIndex(
+ {
+ 	sal_Int32 nRet = -1;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1237,7 +1237,7 @@ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleRow( sal_Int32 nChildIndex )
+ {
+ 	sal_Int32 nRet = -1;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1276,7 +1276,7 @@ sal_Int32 SAL_CALL SwAccessibleTable::getAccessibleColumn(
+ {
+ 	sal_Int32 nRet = -1;
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable )
+ 
+@@ -1338,7 +1338,7 @@ uno::Sequence< OUString > SAL_CALL SwAccessibleTable::getSupportedServiceNames()
+ 
+ void SwAccessibleTable::InvalidatePosOrSize( const SwRect& rOldBox )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( HasTableData() )
+ 		GetTableData().SetTablePos( GetFrm()->Frm().Pos() );
+@@ -1348,7 +1348,7 @@ void SwAccessibleTable::InvalidatePosOrSize( const SwRect& rOldBox )
+ 
+ void SwAccessibleTable::Dispose( sal_Bool bRecursive )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( GetRegisteredIn() )
+ 		pRegisteredIn->Remove( this );
+@@ -1359,7 +1359,7 @@ void SwAccessibleTable::Dispose( sal_Bool bRecursive )
+ void SwAccessibleTable::DisposeChild( const SwFrmOrObj& rChildFrmOrObj,
+ 									sal_Bool bRecursive )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	const SwFrm *pFrm = rChildFrmOrObj.GetSwFrm();
+ 	ASSERT( pFrm, "frame expected" );
+@@ -1382,7 +1382,7 @@ void SwAccessibleTable::DisposeChild( const SwFrmOrObj& rChildFrmOrObj,
+ void SwAccessibleTable::InvalidateChildPosOrSize( const SwFrmOrObj& rChildFrmOrObj,
+ 												  const SwRect& rOldBox )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( HasTableData() )
+ 	{
+@@ -1427,7 +1427,7 @@ void SAL_CALL SwAccessibleTable::selectAccessibleChild(
+     sal_Int32 nChildIndex )
+     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleTable );
+ 
+     // --> OD 2007-06-27 #i77106#
+@@ -1534,7 +1534,7 @@ sal_Bool SAL_CALL SwAccessibleTable::isAccessibleChildSelected(
+     throw ( lang::IndexOutOfBoundsException,
+             uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleTable );
+ 
+     // --> OD 2007-06-27 #i77106#
+@@ -1548,7 +1548,7 @@ sal_Bool SAL_CALL SwAccessibleTable::isAccessibleChildSelected(
+ void SAL_CALL SwAccessibleTable::clearAccessibleSelection(  )
+     throw ( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleTable );
+ 
+@@ -1575,7 +1575,7 @@ void SAL_CALL SwAccessibleTable::selectAllAccessibleChildren(  )
+ sal_Int32 SAL_CALL SwAccessibleTable::getSelectedAccessibleChildCount(  )
+     throw ( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleTable );
+ 
+     // iterate over all children and count isAccessibleChildSelected()
+@@ -1596,7 +1596,7 @@ uno::Reference<XAccessible> SAL_CALL SwAccessibleTable::getSelectedAccessibleChi
+     throw ( lang::IndexOutOfBoundsException,
+             uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleTable );
+ 
+     // paremter checking (part 1): index lower 0
+@@ -1625,7 +1625,7 @@ void SAL_CALL SwAccessibleTable::deselectAccessibleChild(
+     throw ( lang::IndexOutOfBoundsException,
+             uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleTable );
+ 
+     SwCrsrShell* pCrsrShell = GetCrsrShell();
+@@ -1680,7 +1680,7 @@ SwAccessibleTableColHeaders::SwAccessibleTableColHeaders( SwAccessibleMap *pMap,
+                                                           const SwTabFrm *pTabFrm )
+     : SwAccessibleTable( pMap, pTabFrm )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     const SwFrmFmt *pFrmFmt = pTabFrm->GetFmt();
+     const_cast< SwFrmFmt * >( pFrmFmt )->Add( this );
+@@ -1725,7 +1725,7 @@ uno::Any SAL_CALL SwAccessibleTableColHeaders::queryInterface( const uno::Type&
+ sal_Int32 SAL_CALL SwAccessibleTableColHeaders::getAccessibleChildCount(void)
+         throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+diff --git a/sw/source/core/access/acctextframe.cxx b/sw/source/core/access/acctextframe.cxx
+index 60f062c..76505a5 100644
+--- sw/source/core/access/acctextframe.cxx
++++ sw/source/core/access/acctextframe.cxx
+@@ -40,8 +40,8 @@
+ #ifndef _RTL_UUID_H_
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -137,7 +137,7 @@ void SwAccessibleTextFrame::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ OUString SAL_CALL SwAccessibleTextFrame::getAccessibleDescription (void)
+         throw (uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	CHECK_FOR_DEFUNC( XAccessibleContext )
+ 
+@@ -174,7 +174,7 @@ uno::Sequence< OUString > SAL_CALL SwAccessibleTextFrame::getSupportedServiceNam
+ uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleTextFrame::getImplementationId() 
+ 		throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -216,7 +216,7 @@ AccessibleRelation SwAccessibleTextFrame::makeRelation( sal_Int16 nType, const S
+ uno::Reference<XAccessibleRelationSet> SAL_CALL SwAccessibleTextFrame::getAccessibleRelationSet( )
+     throw ( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	CHECK_FOR_DEFUNC( XAccessibleContext );
+ 
+     // get the frame, and insert prev/next relations into helper
+diff --git a/sw/source/core/bastyp/SwSmartTagMgr.cxx b/sw/source/core/bastyp/SwSmartTagMgr.cxx
+index f515fe5..aee8f09 100644
+--- sw/source/core/bastyp/SwSmartTagMgr.cxx
++++ sw/source/core/bastyp/SwSmartTagMgr.cxx
+@@ -40,7 +40,7 @@
+ #include "SwSmartTagMgr.hxx"
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ 
+ #ifndef _SWMODULE_HXX
+@@ -78,7 +78,7 @@ SwSmartTagMgr::~SwSmartTagMgr()
+ // ::com::sun::star::util::XModifyListener
+ void SwSmartTagMgr::modified( const lang::EventObject& rEO ) throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     
+     // Installed recognizers have changed. We remove all existing smart tags:
+     SW_MOD()->CheckSpellChanges( sal_False, sal_True, sal_True, sal_True );
+@@ -89,7 +89,7 @@ void SwSmartTagMgr::modified( const lang::EventObject& rEO ) throw( RuntimeExcep
+ // ::com::sun::star::util::XChangesListener
+ void SwSmartTagMgr::changesOccurred( const util::ChangesEvent& rEvent ) throw( RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // Configuration has changed. We remove all existing smart tags:
+     SW_MOD()->CheckSpellChanges( sal_False, sal_True, sal_True, sal_True );
+diff --git a/sw/source/core/doc/docchart.cxx b/sw/source/core/doc/docchart.cxx
+index 787a77f..1f3acd4 100644
+--- sw/source/core/doc/docchart.cxx
++++ sw/source/core/doc/docchart.cxx
+@@ -101,8 +101,8 @@
+ #ifndef _CELLATR_HXX
+ #include <cellatr.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -277,7 +277,7 @@ SwChartDataProvider * SwDoc::GetChartDataProvider( bool bCreate ) const
+ {
+     // since there must be only one instance of this object per document
+     // we need a mutex here
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if (bCreate && !aChartDataProviderImplRef.get())
+     {
+diff --git a/sw/source/core/unocore/SwXTextDefaults.cxx b/sw/source/core/unocore/SwXTextDefaults.cxx
+index 0b05352..efdd2fa 100644
+--- sw/source/core/unocore/SwXTextDefaults.cxx
++++ sw/source/core/unocore/SwXTextDefaults.cxx
+@@ -35,8 +35,8 @@
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sw.hxx"
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -120,7 +120,7 @@ Reference< XPropertySetInfo > SAL_CALL SwXTextDefaults::getPropertySetInfo(  )
+ void SAL_CALL SwXTextDefaults::setPropertyValue( const OUString& rPropertyName, const Any& aValue )
+ 		throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     if (!pDoc)
+         throw RuntimeException();
+     const SfxItemPropertyMap *pMap = SfxItemPropertyMap::GetByName( aPropSet.getPropertyMap(), rPropertyName);
+@@ -186,7 +186,7 @@ void SAL_CALL SwXTextDefaults::setPropertyValue( const OUString& rPropertyName,
+ Any SAL_CALL SwXTextDefaults::getPropertyValue( const OUString& rPropertyName )
+ 		throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     if (!pDoc)
+         throw RuntimeException();
+     const SfxItemPropertyMap *pMap = SfxItemPropertyMap::GetByName( aPropSet.getPropertyMap(), rPropertyName);
+@@ -231,7 +231,7 @@ void SAL_CALL SwXTextDefaults::removeVetoableChangeListener( const OUString& rPr
+ PropertyState SAL_CALL SwXTextDefaults::getPropertyState( const OUString& rPropertyName )
+         throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex());
+     PropertyState eRet = PropertyState_DIRECT_VALUE;
+     if (!pDoc)
+         throw RuntimeException();
+diff --git a/sw/source/core/unocore/unobkm.cxx b/sw/source/core/unocore/unobkm.cxx
+index d029275..e8e1012 100644
+--- sw/source/core/unocore/unobkm.cxx
++++ sw/source/core/unocore/unobkm.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -174,7 +174,7 @@ void SwXBookmark::attachToRange(const uno::Reference< text::XTextRange > & xText
+ void SwXBookmark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 							throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 10.12.98 10:14:39---------------------------------------------------
+@@ -182,7 +182,7 @@ void SwXBookmark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXBookmark::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRet;
+ 	SwBookmark* pBkm = GetBookmark();
+ 
+@@ -204,7 +204,7 @@ uno::Reference< text::XTextRange >  SwXBookmark::getAnchor(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ void SwXBookmark::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	if(pBkm)
+         GetDoc()->deleteBookmark(getName());
+@@ -235,7 +235,7 @@ void SwXBookmark::removeEventListener(const uno::Reference< lang::XEventListener
+   -----------------------------------------------------------------------*/
+ OUString SwXBookmark::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	OUString sRet;
+ 	if(pBkm)
+@@ -251,7 +251,7 @@ OUString SwXBookmark::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXBookmark::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	String sBkName(rName);
+ 	String sOldName = getName();
+diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx
+index 4bf1635..72c393d 100644
+--- sw/source/core/unocore/unochart.cxx
++++ sw/source/core/unocore/unochart.cxx
+@@ -51,8 +51,8 @@
+ #include <cppuhelper/interfacecontainer.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+@@ -625,7 +625,7 @@ uno::Reference< chart2::data::XDataSource > SwChartDataProvider::Impl_createData
+         const uno::Sequence< beans::PropertyValue >& rArguments, sal_Bool bTestOnly )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -1042,7 +1042,7 @@ sal_Bool SAL_CALL SwChartDataProvider::createDataSourcePossible(
+         const uno::Sequence< beans::PropertyValue >& rArguments )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Bool bPossible = sal_True;
+     try
+@@ -1061,7 +1061,7 @@ uno::Reference< chart2::data::XDataSource > SAL_CALL SwChartDataProvider::create
+         const uno::Sequence< beans::PropertyValue >& rArguments )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return Impl_createDataSource( rArguments );
+ }
+ 
+@@ -1108,7 +1108,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwChartDataProvider::detectArgume
+         const uno::Reference< chart2::data::XDataSource >& xDataSource )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -1499,7 +1499,7 @@ sal_Bool SAL_CALL SwChartDataProvider::createDataSequenceByRangeRepresentationPo
+         const OUString& rRangeRepresentation )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Bool bPossible = sal_True;
+     try
+@@ -1518,7 +1518,7 @@ uno::Reference< chart2::data::XDataSequence > SAL_CALL SwChartDataProvider::crea
+         const OUString& rRangeRepresentation )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return Impl_createDataSequenceByRangeRepresentation( rRangeRepresentation );
+ }
+ 
+@@ -1592,7 +1592,7 @@ sal_Bool SAL_CALL SwChartDataProvider::supportsService(
+         const OUString& rServiceName )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return rServiceName.equalsAscii( SN_DATA_PROVIDER );
+ }
+ 
+@@ -1600,7 +1600,7 @@ sal_Bool SAL_CALL SwChartDataProvider::supportsService(
+ uno::Sequence< OUString > SAL_CALL SwChartDataProvider::getSupportedServiceNames(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Sequence< OUString > aRes(1);
+     aRes.getArray()[0] = C2U( SN_DATA_PROVIDER );
+     return aRes;
+@@ -1841,7 +1841,7 @@ void SwChartDataProvider::AddRowCols(
+ rtl::OUString SAL_CALL SwChartDataProvider::convertRangeToXML( const rtl::OUString& rRangeRepresentation )
+     throw ( uno::RuntimeException, lang::IllegalArgumentException )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -1914,7 +1914,7 @@ rtl::OUString SAL_CALL SwChartDataProvider::convertRangeToXML( const rtl::OUStri
+ rtl::OUString SAL_CALL SwChartDataProvider::convertRangeFromXML( const rtl::OUString& rXMLRange )
+     throw ( uno::RuntimeException, lang::IllegalArgumentException )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -1978,7 +1978,7 @@ SwChartDataSource::~SwChartDataSource()
+ uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > SAL_CALL SwChartDataSource::getDataSequences(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return aLDS;
+ }
+ 
+@@ -1986,7 +1986,7 @@ uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > SAL_CALL S
+ OUString SAL_CALL SwChartDataSource::getImplementationName(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return C2U("SwChartDataSource");
+ }
+ 
+@@ -1995,7 +1995,7 @@ sal_Bool SAL_CALL SwChartDataSource::supportsService(
+         const OUString& rServiceName )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return rServiceName.equalsAscii( SN_DATA_SOURCE );
+ }
+ 
+@@ -2003,7 +2003,7 @@ sal_Bool SAL_CALL SwChartDataSource::supportsService(
+ uno::Sequence< OUString > SAL_CALL SwChartDataSource::getSupportedServiceNames(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Sequence< OUString > aRes(1);
+     aRes.getArray()[0] = C2U( SN_DATA_SOURCE );
+     return aRes;
+@@ -2143,7 +2143,7 @@ sal_Int64 SAL_CALL SwChartDataSequence::getSomething( const uno::Sequence< sal_I
+ uno::Sequence< uno::Any > SAL_CALL SwChartDataSequence::getData(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2173,7 +2173,7 @@ uno::Sequence< uno::Any > SAL_CALL SwChartDataSequence::getData(  )
+ OUString SAL_CALL SwChartDataSequence::getSourceRangeRepresentation(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2194,7 +2194,7 @@ uno::Sequence< OUString > SAL_CALL SwChartDataSequence::generateLabel(
+         chart2::data::LabelOrigin eLabelOrigin )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2309,7 +2309,7 @@ uno::Sequence< OUString > SAL_CALL SwChartDataSequence::generateLabel(
+ uno::Sequence< OUString > SAL_CALL SwChartDataSequence::getTextualData(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2339,7 +2339,7 @@ uno::Sequence< OUString > SAL_CALL SwChartDataSequence::getTextualData(  )
+ uno::Sequence< double > SAL_CALL SwChartDataSequence::getNumericalData(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2372,7 +2372,7 @@ uno::Sequence< double > SAL_CALL SwChartDataSequence::getNumericalData(  )
+ uno::Reference< util::XCloneable > SAL_CALL SwChartDataSequence::createClone(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+     return new SwChartDataSequence( *this );
+@@ -2382,7 +2382,7 @@ uno::Reference< util::XCloneable > SAL_CALL SwChartDataSequence::createClone(  )
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SwChartDataSequence::getPropertySetInfo(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2396,7 +2396,7 @@ void SAL_CALL SwChartDataSequence::setPropertyValue(
+         const uno::Any& rValue )
+     throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2414,7 +2414,7 @@ uno::Any SAL_CALL SwChartDataSequence::getPropertyValue(
+         const OUString& rPropertyName )
+     throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2433,7 +2433,7 @@ void SAL_CALL SwChartDataSequence::addPropertyChangeListener(
+         const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ )
+     throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    //vos::OGuard aGuard( Application::GetSolarMutex() );
++    //osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     DBG_ERROR( "not implemented" );
+ }
+ 
+@@ -2443,7 +2443,7 @@ void SAL_CALL SwChartDataSequence::removePropertyChangeListener(
+         const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ )
+     throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    //vos::OGuard aGuard( Application::GetSolarMutex() );
++    //osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     DBG_ERROR( "not implemented" );
+ }
+ 
+@@ -2453,7 +2453,7 @@ void SAL_CALL SwChartDataSequence::addVetoableChangeListener(
+         const uno::Reference< beans::XVetoableChangeListener >& /*xListener*/ )
+     throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    //vos::OGuard aGuard( Application::GetSolarMutex() );
++    //osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     DBG_ERROR( "not implemented" );
+ }
+ 
+@@ -2463,7 +2463,7 @@ void SAL_CALL SwChartDataSequence::removeVetoableChangeListener(
+         const uno::Reference< beans::XVetoableChangeListener >& /*xListener*/ )
+     throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    //vos::OGuard aGuard( Application::GetSolarMutex() );
++    //osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     DBG_ERROR( "not implemented" );
+ }
+ 
+@@ -2486,7 +2486,7 @@ sal_Bool SAL_CALL SwChartDataSequence::supportsService(
+ uno::Sequence< OUString > SAL_CALL SwChartDataSequence::getSupportedServiceNames(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Sequence< OUString > aRes(1);
+     aRes.getArray()[0] = C2U( SN_DATA_SEQUENCE );
+     return aRes;
+@@ -2513,7 +2513,7 @@ void SwChartDataSequence::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ sal_Bool SAL_CALL SwChartDataSequence::isModified(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2525,7 +2525,7 @@ void SAL_CALL SwChartDataSequence::setModified(
+         ::sal_Bool bModified )
+     throw (beans::PropertyVetoException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2887,7 +2887,7 @@ SwChartLabeledDataSequence::~SwChartLabeledDataSequence()
+ uno::Reference< chart2::data::XDataSequence > SAL_CALL SwChartLabeledDataSequence::getValues(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+     return xData;
+@@ -2925,7 +2925,7 @@ void SAL_CALL SwChartLabeledDataSequence::setValues(
+         const uno::Reference< chart2::data::XDataSequence >& rxSequence )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2941,7 +2941,7 @@ void SAL_CALL SwChartLabeledDataSequence::setValues(
+ uno::Reference< chart2::data::XDataSequence > SAL_CALL SwChartLabeledDataSequence::getLabel(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+     return xLabels;
+@@ -2952,7 +2952,7 @@ void SAL_CALL SwChartLabeledDataSequence::setLabel(
+         const uno::Reference< chart2::data::XDataSequence >& rxSequence )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -2968,7 +2968,7 @@ void SAL_CALL SwChartLabeledDataSequence::setLabel(
+ uno::Reference< util::XCloneable > SAL_CALL SwChartLabeledDataSequence::createClone(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (bDisposed)
+         throw lang::DisposedException();
+ 
+@@ -3011,7 +3011,7 @@ sal_Bool SAL_CALL SwChartLabeledDataSequence::supportsService(
+ uno::Sequence< OUString > SAL_CALL SwChartLabeledDataSequence::getSupportedServiceNames(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     uno::Sequence< OUString > aRes(1);
+     aRes.getArray()[0] = C2U( SN_LABELED_DATA_SEQUENCE );
+     return aRes;
+diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx
+index cb425e9..270f8b3 100644
+--- sw/source/core/unocore/unocoll.cxx
++++ sw/source/core/unocore/unocoll.cxx
+@@ -91,8 +91,8 @@
+ #ifndef _PAGEDESC_HXX //autogen
+ #include <pagedesc.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_TEXT_XTEXTTABLECURSOR_HPP_
+ #include <com/sun/star/text/XTextTableCursor.hpp>
+@@ -358,7 +358,7 @@ const SvEventDescription* lcl_GetSupportedMacroItems()
+   -----------------------------------------------------------------------*/
+ OUString	SwXServiceProvider::GetProviderName(sal_uInt16 nObjectType)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sRet;
+ 	sal_uInt16 nEntries = sizeof(aProvNamesId) / sizeof(aProvNamesId[0]);
+ 	if(nObjectType < nEntries)
+@@ -406,7 +406,7 @@ sal_uInt16	SwXServiceProvider::GetProviderType(const OUString& rServiceName)
+  * --------------------------------------------------*/
+ uno::Reference< uno::XInterface >  	SwXServiceProvider::MakeInstance(sal_uInt16 nObjectType, SwDoc* pDoc)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< uno::XInterface >  xRet;
+ 	switch(nObjectType)
+ 	{
+@@ -690,7 +690,7 @@ SwXTextTables::~SwXTextTables()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextTables::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	if(IsValid())
+ 		nRet = GetDoc()->GetTblFrmFmtCount(sal_True);
+@@ -702,7 +702,7 @@ sal_Int32 SwXTextTables::getCount(void) throw( uno::RuntimeException )
+ uno::Any SAL_CALL SwXTextTables::getByIndex(sal_Int32 nIndex)
+ 		throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -726,7 +726,7 @@ uno::Any SAL_CALL SwXTextTables::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXTextTables::getByName(const OUString& rItemName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -757,7 +757,7 @@ uno::Any SwXTextTables::getByName(const OUString& rItemName)
+ uno::Sequence< OUString > SwXTextTables::getElementNames(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = GetDoc()->GetTblFrmFmtCount(sal_True);
+@@ -780,7 +780,7 @@ uno::Sequence< OUString > SwXTextTables::getElementNames(void)
+ sal_Bool SwXTextTables::hasByName(const OUString& rName)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet= sal_False;
+ 	if(IsValid())
+ 	{
+@@ -814,7 +814,7 @@ uno::Type SAL_CALL
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTables::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 != GetDoc()->GetTblFrmFmtCount(sal_True);
+@@ -848,7 +848,7 @@ uno::Sequence< OUString > SwXTextTables::getSupportedServiceNames(void) throw( u
+   -----------------------------------------------------------------------*/
+ XTextTable* SwXTextTables::GetObject( SwFrmFmt& rFmt )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXTextTable* pTbl = (SwXTextTable*)SwClientIter( rFmt ).
+ 									First( TYPE( SwXTextTable ));
+ 	if( !pTbl )
+@@ -904,7 +904,7 @@ SwXFrames::~SwXFrames()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXFrames::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	if(IsValid())
+ 		nRet = GetDoc()->GetFlyCount(eType);
+@@ -918,7 +918,7 @@ sal_Int32 SwXFrames::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXFrames::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -962,7 +962,7 @@ uno::Any SwXFrames::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXFrames::getByName(const OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame* pFrm = 0;
+ 	if(IsValid())
+ 	{
+@@ -1011,7 +1011,7 @@ uno::Any SwXFrames::getByName(const OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXFrames::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = IsValid() ? GetDoc()->GetFlyCount(eType) : 0;
+@@ -1032,7 +1032,7 @@ uno::Sequence< OUString > SwXFrames::getElementNames(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXFrames::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -1051,7 +1051,7 @@ sal_Bool SwXFrames::hasByName(const OUString& rName) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ uno::Type SAL_CALL SwXFrames::getElementType() throw(uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Type aRet;
+ 	switch(eType)
+ 	{
+@@ -1074,7 +1074,7 @@ uno::Type SAL_CALL SwXFrames::getElementType() throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXFrames::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nRet = 0;
+ 	if(IsValid())
+ 		nRet = GetDoc()->GetFlyCount(eType);
+@@ -1278,7 +1278,7 @@ SwXTextSections::~SwXTextSections()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextSections::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwSectionFmts& rSectFmts = GetDoc()->GetSections();
+@@ -1296,7 +1296,7 @@ sal_Int32 SwXTextSections::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTextSections::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< XTextSection >  xRet;
+     if(IsValid())
+ 	{
+@@ -1331,7 +1331,7 @@ uno::Any SwXTextSections::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXTextSections::getByName(const OUString& Name)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+     if(IsValid())
+ 	{
+@@ -1361,7 +1361,7 @@ uno::Any SwXTextSections::getByName(const OUString& Name)
+ uno::Sequence< OUString > SwXTextSections::getElementNames(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_uInt16 nCount = GetDoc()->GetSections().Count();
+@@ -1396,7 +1396,7 @@ uno::Sequence< OUString > SwXTextSections::getElementNames(void)
+ sal_Bool SwXTextSections::hasByName(const OUString& Name)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	String aName(Name);
+     if(IsValid())
+@@ -1432,7 +1432,7 @@ uno::Type SAL_CALL SwXTextSections::getElementType() throw(uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextSections::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nCount = 0;
+     if(IsValid())
+ 	{
+@@ -1503,7 +1503,7 @@ SwXBookmarks::~SwXBookmarks()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXBookmarks::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+     return GetDoc()->getBookmarkCount(sal_True);
+@@ -1514,7 +1514,7 @@ sal_Int32 SwXBookmarks::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXBookmarks::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1537,7 +1537,7 @@ uno::Any SwXBookmarks::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXBookmarks::getByName(const rtl::OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1566,7 +1566,7 @@ uno::Any SwXBookmarks::getByName(const rtl::OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXBookmarks::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+     sal_uInt16 nCount = GetDoc()->getBookmarkCount(true);
+@@ -1587,7 +1587,7 @@ uno::Sequence< OUString > SwXBookmarks::getElementNames(void) throw( uno::Runtim
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXBookmarks::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(IsValid())
+ 	{
+@@ -1619,7 +1619,7 @@ uno::Type SAL_CALL SwXBookmarks::getElementType() throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXBookmarks::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+     return GetDoc()->getBookmarkCount(true) != 0;
+@@ -1650,7 +1650,7 @@ SwXNumberingRulesCollection::~SwXNumberingRulesCollection()
+ 
+ sal_Int32 SwXNumberingRulesCollection::getCount(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw uno::RuntimeException();
+     return GetDoc()->GetNumRuleTbl().Count();
+@@ -1659,7 +1659,7 @@ sal_Int32 SwXNumberingRulesCollection::getCount(void) throw( uno::RuntimeExcepti
+ uno::Any SwXNumberingRulesCollection::getByIndex(sal_Int32 nIndex)
+     throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     sal_uInt32 nCount = 0;
+     if(IsValid())
+@@ -1686,7 +1686,7 @@ uno::Type SAL_CALL SwXNumberingRulesCollection::getElementType() throw(uno::Runt
+ 
+ sal_Bool SwXNumberingRulesCollection::hasElements(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw uno::RuntimeException();
+     return GetDoc()->GetNumRuleTbl().Count() > 0;
+@@ -1735,7 +1735,7 @@ SwXFootnotes::~SwXFootnotes()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXFootnotes::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	sal_Int32 nCount = 0;
+@@ -1757,7 +1757,7 @@ sal_Int32 SwXFootnotes::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXFootnotes::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	sal_uInt32 nCount = 0;
+ 	if(IsValid())
+@@ -1799,7 +1799,7 @@ uno::Type SAL_CALL SwXFootnotes::getElementType() throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXFootnotes::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return GetDoc()->GetFtnIdxs().Count() > 0;
+@@ -1862,7 +1862,7 @@ SwXReferenceMarks::~SwXReferenceMarks()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXReferenceMarks::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return GetDoc()->GetRefMarks();
+@@ -1873,7 +1873,7 @@ sal_Int32 SwXReferenceMarks::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXReferenceMarks::getByIndex(sal_Int32 nIndex)
+ 	throw( IndexOutOfBoundsException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+@@ -1897,7 +1897,7 @@ uno::Any SwXReferenceMarks::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXReferenceMarks::getByName(const OUString& rName)
+ 	throw( NoSuchElementException, WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1919,7 +1919,7 @@ uno::Any SwXReferenceMarks::getByName(const OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXReferenceMarks::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Sequence<OUString> aRet;
+ 	if(IsValid())
+ 	{
+@@ -1939,7 +1939,7 @@ uno::Sequence< OUString > SwXReferenceMarks::getElementNames(void) throw( uno::R
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXReferenceMarks::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 != GetDoc()->GetRefMark( rName);
+@@ -1956,7 +1956,7 @@ uno::Type SAL_CALL SwXReferenceMarks::getElementType() throw(uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXReferenceMarks::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 !=	GetDoc()->GetRefMarks();
+@@ -1966,7 +1966,7 @@ sal_Bool SwXReferenceMarks::hasElements(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ SwXReferenceMark* SwXReferenceMarks::GetObject( SwDoc* pDoc, const SwFmtRefMark* pMark )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwClientIter aIter( *pDoc->GetUnoCallBack() );
+ 	SwXReferenceMark* pxMark = (SwXReferenceMark*)aIter.First( TYPE( SwXReferenceMark ));
+ 	while(pxMark)
+diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
+index 6ad4ef3..d58769f 100644
+--- sw/source/core/unocore/unodraw.cxx
++++ sw/source/core/unocore/unodraw.cxx
+@@ -117,8 +117,8 @@
+ #ifndef _CRSTATE_HXX //autogen
+ #include <crstate.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _COMPHELPER_EXTRACT_HXX_
+ #include <comphelper/extract.hxx>
+@@ -586,7 +586,7 @@ uno::Sequence< uno::Type > SwXDrawPage::getTypes() throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXDrawPage::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(!pDoc->GetDrawModel())
+@@ -604,7 +604,7 @@ uno::Any SwXDrawPage::getByIndex(sal_Int32 nIndex)
+         throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+                uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(!pDoc->GetDrawModel())
+@@ -630,7 +630,7 @@ uno::Type  SwXDrawPage::getElementType(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ sal_Bool SwXDrawPage::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(!pDoc->GetDrawModel())
+@@ -645,7 +645,7 @@ sal_Bool SwXDrawPage::hasElements(void) throw( uno::RuntimeException )
+ void SwXDrawPage::add(const uno::Reference< drawing::XShape > & xShape)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+     uno::Reference< lang::XUnoTunnel > xShapeTunnel(xShape, uno::UNO_QUERY);
+@@ -803,7 +803,7 @@ void SwXDrawPage::add(const uno::Reference< drawing::XShape > & xShape)
+  * --------------------------------------------------*/
+ void SwXDrawPage::remove(const uno::Reference< drawing::XShape > & xShape) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+     uno::Reference<lang::XComponent> xComp(xShape, uno::UNO_QUERY);
+@@ -814,7 +814,7 @@ void SwXDrawPage::remove(const uno::Reference< drawing::XShape > & xShape) throw
+  * --------------------------------------------------*/
+ uno::Reference< drawing::XShapeGroup >  SwXDrawPage::group(const uno::Reference< drawing::XShapes > & xShapes) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc || !xShapes.is())
+ 		throw uno::RuntimeException();
+ 	uno::Reference< drawing::XShapeGroup >  xRet;
+@@ -865,7 +865,7 @@ uno::Reference< drawing::XShapeGroup >  SwXDrawPage::group(const uno::Reference<
+  * --------------------------------------------------*/
+ void SwXDrawPage::ungroup(const uno::Reference< drawing::XShapeGroup > & xShapeGroup) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(xPageAgg.is())
+@@ -892,7 +892,7 @@ SwFmDrawPage* 	SwXDrawPage::GetSvxPage()
+ {
+ 	if(!xPageAgg.is() && pDoc)
+ 	{
+-		vos::OGuard  aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+         // --> OD 2005-08-08 #i52858# - method name changed
+         SdrModel* pModel = pDoc->GetOrCreateDrawModel();
+         // <--
+@@ -1061,7 +1061,7 @@ uno::Sequence< uno::Type > SwXShape::getTypes(  ) throw(uno::RuntimeException)
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SwXShape::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	// do we need to compute the implementation id for this instance?
+     if( !pImplementationId && xShapeAgg.is())
+ 	{
+@@ -1105,7 +1105,7 @@ uno::Sequence< sal_Int8 > SwXShape::getImplementationId(  ) throw(uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ uno::Reference< beans::XPropertySetInfo >  SwXShape::getPropertySetInfo(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference< beans::XPropertySetInfo >  aRet;
+ 	if(xShapeAgg.is())
+ 	{
+@@ -1133,7 +1133,7 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
+             lang::IllegalArgumentException, lang::WrappedTargetException,
+             uno::RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 												_pMap, rPropertyName);
+@@ -1387,7 +1387,7 @@ uno::Any SwXShape::getPropertyValue(const rtl::OUString& rPropertyName)
+     throw( beans::UnknownPropertyException, lang::WrappedTargetException,
+            uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	if(xShapeAgg.is())
+@@ -1634,7 +1634,7 @@ uno::Any SwXShape::_getPropAtAggrObj( const ::rtl::OUString& _rPropertyName )
+ beans::PropertyState SwXShape::getPropertyState( const rtl::OUString& rPropertyName )
+     throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Sequence< rtl::OUString > aNames(1);
+     rtl::OUString* pStrings = aNames.getArray();
+ 	pStrings[0] = rPropertyName;
+@@ -1648,7 +1648,7 @@ uno::Sequence< beans::PropertyState > SwXShape::getPropertyStates(
+     const uno::Sequence< rtl::OUString >& aPropertyNames )
+         throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+     uno::Sequence< beans::PropertyState > aRet(aPropertyNames.getLength());
+ 	if(xShapeAgg.is())
+@@ -1752,7 +1752,7 @@ uno::Sequence< beans::PropertyState > SwXShape::getPropertyStates(
+ void SwXShape::setPropertyToDefault( const rtl::OUString& rPropertyName )
+     throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+ 	if(xShapeAgg.is())
+ 	{
+@@ -1818,7 +1818,7 @@ uno::Any SwXShape::getPropertyDefault( const rtl::OUString& rPropertyName )
+     throw( beans::UnknownPropertyException, lang::WrappedTargetException,
+            uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* 	pFmt = GetFrmFmt();
+     uno::Any aRet;
+ 	if(xShapeAgg.is())
+@@ -1907,7 +1907,7 @@ void SwXShape::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ void SwXShape::attach(const uno::Reference< text::XTextRange > & xTextRange)
+     throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 
+     // get access to SwDoc
+     // (see also SwXTextRange::XTextRangeToSwPaM)
+@@ -1967,7 +1967,7 @@ void SwXShape::attach(const uno::Reference< text::XTextRange > & xTextRange)
+  * --------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXShape::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference< text::XTextRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1991,7 +1991,7 @@ uno::Reference< text::XTextRange >  SwXShape::getAnchor(void) throw( uno::Runtim
+  * --------------------------------------------------*/
+ void SwXShape::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2721,7 +2721,7 @@ void SwXGroupShape::release(  ) throw()
+   -----------------------------------------------------------------------*/
+ void SwXGroupShape::add( const uno::Reference< XShape >& xShape ) throw (uno::RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SvxShape* pSvxShape = GetSvxShape();
+     SwFrmFmt* pFmt = GetFrmFmt();
+     if(pSvxShape && pFmt)
+@@ -2781,7 +2781,7 @@ void SwXGroupShape::add( const uno::Reference< XShape >& xShape ) throw (uno::Ru
+   -----------------------------------------------------------------------*/
+ void SwXGroupShape::remove( const uno::Reference< XShape >& xShape ) throw (uno::RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference<XShapes> xShapes;
+     if( xShapeAgg.is() )
+ 	{
+@@ -2799,7 +2799,7 @@ void SwXGroupShape::remove( const uno::Reference< XShape >& xShape ) throw (uno:
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXGroupShape::getCount(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+@@ -2819,7 +2819,7 @@ uno::Any SwXGroupShape::getByIndex(sal_Int32 nIndex)
+         throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+                uno::RuntimeException )
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+@@ -2836,7 +2836,7 @@ uno::Any SwXGroupShape::getByIndex(sal_Int32 nIndex)
+   -----------------------------------------------------------------------*/
+ uno::Type SwXGroupShape::getElementType(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+@@ -2853,7 +2853,7 @@ uno::Type SwXGroupShape::getElementType(  ) throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXGroupShape::hasElements(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     uno::Reference<XIndexAccess> xAcc;
+     if( xShapeAgg.is() )
+ 	{
+diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
+index a57c819..545050c 100644
+--- sw/source/core/unocore/unofield.cxx
++++ sw/source/core/unocore/unofield.cxx
+@@ -195,8 +195,8 @@
+ #endif
+ #define _SVSTDARR_STRINGS
+ #include <svtools/svstdarr.hxx>
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -641,7 +641,7 @@ SwXFieldMaster::~SwXFieldMaster()
+ uno::Reference< beans::XPropertySetInfo >  SwXFieldMaster::getPropertySetInfo(void)
+ 											throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Reference< beans::XPropertySetInfo >  aRef = new SfxItemPropertySetInfo(
+ 						aSwMapProvider.GetPropertyMap(
+ 								lcl_GetPropMapIdForFieldType( nResTypeId ) ));
+@@ -655,7 +655,7 @@ void SwXFieldMaster::setPropertyValue( const OUString& rPropertyName,
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+ 			lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SwFieldType* pType = GetFldType(sal_True);
+ 	if(pType)
+ 	{
+@@ -872,7 +872,7 @@ SV_IMPL_PTRARR(SwDependentFields, SwFmtFldPtr)
+ uno::Any SwXFieldMaster::getPropertyValue(const OUString& rPropertyName)
+ 		throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+     SwFieldType* pType = GetFldType(sal_True);
+     if( rPropertyName.equalsAsciiL( SW_PROP_NAME(UNO_NAME_INSTANCE_NAME)) )
+@@ -1065,7 +1065,7 @@ void SwXFieldMaster::removeVetoableChangeListener(const OUString& PropertyName,
+   -----------------------------------------------------------------------*/
+ void SwXFieldMaster::dispose(void) 			throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SwFieldType* pFldType = GetFldType(sal_True);
+ 	if(pFldType)
+ 	{
+@@ -1321,7 +1321,7 @@ SwXTextField::~SwXTextField()
+ void SwXTextField::attachTextFieldMaster(const uno::Reference< beans::XPropertySet > & xFieldMaster)
+ 					throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!m_bIsDescriptor)
+ 		throw uno::RuntimeException();
+ 	uno::Reference< lang::XUnoTunnel > xMasterTunnel(xFieldMaster, uno::UNO_QUERY);
+@@ -1345,7 +1345,7 @@ void SwXTextField::attachTextFieldMaster(const uno::Reference< beans::XPropertyS
+   -----------------------------------------------------------------------*/
+ uno::Reference< beans::XPropertySet >  SwXTextField::getTextFieldMaster(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     SwFieldType* pType = 0;
+     if( m_bIsDescriptor && m_aFieldTypeClient.GetRegisteredIn() )
+     {
+@@ -1369,7 +1369,7 @@ uno::Reference< beans::XPropertySet >  SwXTextField::getTextFieldMaster(void) th
+   -----------------------------------------------------------------------*/
+ OUString SwXTextField::getPresentation(sal_Bool bShowCommand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	OUString sRet;
+ 	const SwField* pField = GetField();
+ 	if(pField)
+@@ -1385,7 +1385,7 @@ void SwXTextField::attachToRange(
+ 		const uno::Reference< text::XTextRange > & xTextRange)
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!m_bIsDescriptor)
+ 		throw uno::RuntimeException();
+ 	uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+@@ -1931,7 +1931,7 @@ void SwXTextField::attachToRange(
+ void SwXTextField::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 14.12.98 11:37:18---------------------------------------------------
+@@ -1939,7 +1939,7 @@ void SwXTextField::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextField::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >   aRef;
+ 	SwField* pField = (SwField*)GetField();
+ 	if(pField)
+@@ -1962,7 +1962,7 @@ uno::Reference< text::XTextRange >  SwXTextField::getAnchor(void) throw( uno::Ru
+   -----------------------------------------------------------------------*/
+ void SwXTextField::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwField* pField = (SwField*)GetField();
+ 	if(pField)
+ 	{
+@@ -1998,7 +1998,7 @@ void SwXTextField::removeEventListener(const uno::Reference< lang::XEventListene
+ uno::Reference< beans::XPropertySetInfo >  SwXTextField::getPropertySetInfo(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	//kein static
+ 	uno::Reference< beans::XPropertySetInfo >  aRef;
+ 	if(m_nServiceId != USHRT_MAX)
+@@ -2023,7 +2023,7 @@ void SwXTextField::setPropertyValue(const OUString& rPropertyName, const uno::An
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
+ 		lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	SwField* pField = (SwField*)GetField();
+ 	const SfxItemPropertyMap* _pMap = aSwMapProvider.GetPropertyMap(
+ 								lcl_GetPropertyMapOfService( m_nServiceId));
+@@ -2172,7 +2172,7 @@ void SwXTextField::setPropertyValue(const OUString& rPropertyName, const uno::An
+ uno::Any SwXTextField::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	const SwField* pField = GetField();
+ 	const SfxItemPropertyMap* _pMap = aSwMapProvider.GetPropertyMap(
+@@ -2375,7 +2375,7 @@ void SwXTextField::removeVetoableChangeListener(const OUString& PropertyName, co
+  ---------------------------------------------------------------------------*/
+ void SwXTextField::update(  ) throw (uno::RuntimeException)
+ {
+-    vos::OGuard  aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     const SwField* pFld = GetField();
+     if(pFld)
+     {
+@@ -2655,7 +2655,7 @@ sal_uInt16 lcl_GetIdByName( String& rName, String& rTypeName )
+ uno::Any SwXTextFieldMasters::getByName(const OUString& rName)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 
+@@ -2731,7 +2731,7 @@ sal_Bool SwXTextFieldMasters::getInstanceName(
+ uno::Sequence< OUString > SwXTextFieldMasters::getElementNames(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 
+@@ -2770,7 +2770,7 @@ uno::Sequence< OUString > SwXTextFieldMasters::getElementNames(void)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextFieldMasters::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 
+@@ -2797,7 +2797,7 @@ uno::Type  SwXTextFieldMasters::getElementType(void) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextFieldMasters::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return sal_True;
+@@ -2859,7 +2859,7 @@ void SwXTextFieldTypes::Invalidate()
+ uno::Reference< container::XEnumeration >  SwXTextFieldTypes::createEnumeration(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return new SwXFieldEnumeration(GetDoc());
+@@ -2877,7 +2877,7 @@ uno::Type  SwXTextFieldTypes::getElementType(void) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextFieldTypes::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	//es gibt sie immer
+@@ -2888,7 +2888,7 @@ sal_Bool SwXTextFieldTypes::hasElements(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ void SwXTextFieldTypes::refresh(void)  throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	UnoActionContext aContext(GetDoc());
+@@ -2905,7 +2905,7 @@ void SwXTextFieldTypes::refresh(void)  throw( uno::RuntimeException )
+ void SwXTextFieldTypes::addRefreshListener(const uno::Reference< util::XRefreshListener > & l)
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() )
+ 		throw uno::RuntimeException();
+ 	aRefreshCont.AddListener ( reinterpret_cast < const uno::Reference < lang::XEventListener > &> ( l ));
+@@ -2916,7 +2916,7 @@ void SwXTextFieldTypes::addRefreshListener(const uno::Reference< util::XRefreshL
+ void SwXTextFieldTypes::removeRefreshListener(const uno::Reference< util::XRefreshListener > & l)
+ 	 throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() || !aRefreshCont.RemoveListener ( reinterpret_cast < const uno::Reference < lang::XEventListener > &> ( l ) ) )
+ 		throw uno::RuntimeException();
+ }
+@@ -3006,7 +3006,7 @@ SwXFieldEnumeration::~SwXFieldEnumeration()
+ sal_Bool SwXFieldEnumeration::hasMoreElements(void)
+     throw( uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+     return nNextIndex < aItems.getLength();
+ }
+ /*-- 21.12.98 14:57:42---------------------------------------------------
+@@ -3015,7 +3015,7 @@ sal_Bool SwXFieldEnumeration::hasMoreElements(void)
+ uno::Any SwXFieldEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard  aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard  aGuard(Application::GetSolarMutex());
+ 
+     if (!(nNextIndex < aItems.getLength()))
+         throw container::NoSuchElementException();
+diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
+index b255b12..1c1ce96 100644
+--- sw/source/core/unocore/unoframe.cxx
++++ sw/source/core/unocore/unoframe.cxx
+@@ -234,8 +234,8 @@
+ #ifndef _NDGRF_HXX
+ #include <ndgrf.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -1056,7 +1056,7 @@ SwXFrame::~SwXFrame()
+   -----------------------------------------------------------------------*/
+ OUString SwXFrame::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1072,7 +1072,7 @@ OUString SwXFrame::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXFrame::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	String sTmpName(rName);
+ 	if(pFmt)
+@@ -1180,7 +1180,7 @@ SwFrmFmt *lcl_GetFrmFmt( const uno::Any& rValue, SwDoc *pDoc )
+ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+     const SfxItemPropertyMap* pCur = SfxItemPropertyMap::GetByName(_pMap, rPropertyName);
+ 
+@@ -1597,7 +1597,7 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const uno::Any& a
+ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aAny;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+     const SfxItemPropertyMap* pCur = SfxItemPropertyMap::GetByName(_pMap, rPropertyName);
+@@ -1865,7 +1865,7 @@ void SwXFrame::removeVetoableChangeListener(
+ beans::PropertyState SwXFrame::getPropertyState( const OUString& rPropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Sequence< OUString > aPropertyNames(1);
+ 	OUString* pNames = aPropertyNames.getArray();
+ 	pNames[0] = rPropertyName;
+@@ -1879,7 +1879,7 @@ uno::Sequence< beans::PropertyState > SwXFrame::getPropertyStates(
+ 	const uno::Sequence< OUString >& aPropertyNames )
+ 		throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Sequence< beans::PropertyState > aStates(aPropertyNames.getLength());
+ 	beans::PropertyState* pStates = aStates.getArray();
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+@@ -1944,7 +1944,7 @@ uno::Sequence< beans::PropertyState > SwXFrame::getPropertyStates(
+ void SwXFrame::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw(beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2016,7 +2016,7 @@ void SwXFrame::setPropertyToDefault( const OUString& rPropertyName )
+ uno::Any SwXFrame::getPropertyDefault( const OUString& rPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2075,7 +2075,7 @@ void 	SwXFrame::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+   -----------------------------------------------------------------------*/
+ void SwXFrame::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+     if ( pFmt )
+ 	{
+@@ -2106,7 +2106,7 @@ void SwXFrame::dispose(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXFrame::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2141,7 +2141,7 @@ void SwXFrame::ResetDescriptor()
+ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
+ 			throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsDescriptor())
+ 		throw uno::RuntimeException();
+ 	uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+@@ -2476,7 +2476,7 @@ void SwXFrame::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ awt::Point SwXFrame::getPosition(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::RuntimeException aRuntime;
+ 	aRuntime.Message = C2U("position cannot be determined with this method");
+ 	throw aRuntime;
+@@ -2487,7 +2487,7 @@ awt::Point SwXFrame::getPosition(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXFrame::setPosition(const awt::Point& aPosition) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::RuntimeException aRuntime;
+ 	aRuntime.Message = C2U("position cannot be changed with this method");
+ 	throw aRuntime;
+@@ -2604,7 +2604,7 @@ uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL SwXTextFrame::getTypes(  )
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXTextFrame::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2648,7 +2648,7 @@ uno::Reference< text::XTextCursor >   SwXTextFrame::createCursor() throw ( uno::
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXTextFrame::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2698,7 +2698,7 @@ uno::Reference< text::XTextCursor >  SwXTextFrame::createTextCursor(void) throw(
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXTextFrame::createTextCursorByRange(const uno::Reference< text::XTextRange > & aTextPosition) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	SwUnoInternalPaM aPam(*GetDoc());
+@@ -2722,7 +2722,7 @@ uno::Reference< text::XTextCursor >  SwXTextFrame::createTextCursorByRange(const
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXTextFrame::createEnumeration(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+  uno::XInterface* pRet = 0;
+@@ -2767,7 +2767,7 @@ void SwXTextFrame::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextFrame::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXFrame::getAnchor();
+ }
+ /*-- 11.12.98 15:23:05---------------------------------------------------
+@@ -2775,7 +2775,7 @@ uno::Reference< text::XTextRange >  SwXTextFrame::getAnchor(void) throw( uno::Ru
+   -----------------------------------------------------------------------*/
+ void SwXTextFrame::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame::dispose();
+ }
+ /*-- 11.12.98 15:23:05---------------------------------------------------
+@@ -2858,7 +2858,7 @@ sal_Int64 SAL_CALL SwXTextFrame::getSomething( const uno::Sequence< sal_Int8 >&
+ uno::Any SwXTextFrame::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     if(rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_START_REDLINE))||
+             rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_END_REDLINE)))
+@@ -2948,7 +2948,7 @@ uno::Sequence< uno::Type > SAL_CALL
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXTextGraphicObject::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2970,7 +2970,7 @@ void SwXTextGraphicObject::attach(const uno::Reference< text::XTextRange > & xTe
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextGraphicObject::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXFrame::getAnchor();
+ }
+ /*-- 11.12.98 16:02:28---------------------------------------------------
+@@ -2978,7 +2978,7 @@ uno::Reference< text::XTextRange >  SwXTextGraphicObject::getAnchor(void) throw(
+   -----------------------------------------------------------------------*/
+ void SwXTextGraphicObject::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame::dispose();
+ }
+ /*-- 11.12.98 16:02:29---------------------------------------------------
+@@ -3128,7 +3128,7 @@ uno::Sequence< uno::Type > SAL_CALL SwXTextEmbeddedObject::getTypes(  ) throw(un
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXTextEmbeddedObject::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -3150,7 +3150,7 @@ void SwXTextEmbeddedObject::attach(const uno::Reference< text::XTextRange > & xT
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextEmbeddedObject::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXFrame::getAnchor();
+ }
+ /*-- 11.12.98 16:16:54---------------------------------------------------
+@@ -3158,7 +3158,7 @@ uno::Reference< text::XTextRange >  SwXTextEmbeddedObject::getAnchor(void) throw
+   -----------------------------------------------------------------------*/
+ void SwXTextEmbeddedObject::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwXFrame::dispose();
+ }
+ /*-- 11.12.98 16:16:55---------------------------------------------------
+@@ -3384,7 +3384,7 @@ SwXOLEListener::~SwXOLEListener()
+ void SwXOLEListener::modified( const lang::EventObject& rEvent )
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     SwOLENode* pNd = 0;
+     SwFmt* pFmt = GetFmt();
+@@ -3419,7 +3419,7 @@ void SwXOLEListener::modified( const lang::EventObject& rEvent )
+ void SwXOLEListener::disposing( const lang::EventObject& rEvent )
+ 						throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference< util::XModifyListener >  xListener( this );
+ 
+diff --git a/sw/source/core/unocore/unoftn.cxx b/sw/source/core/unocore/unoftn.cxx
+index d3f85fd..2dee9de 100644
+--- sw/source/core/unocore/unoftn.cxx
++++ sw/source/core/unocore/unoftn.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -191,7 +191,7 @@ uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL SwXFootnote::getTypes(  )
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXFootnote::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -217,7 +217,7 @@ uno::Any SAL_CALL SwXFootnote::queryInterface( const uno::Type& aType ) throw(un
+   -----------------------------------------------------------------------*/
+ OUString SwXFootnote::getLabel(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRet;
+ 	const SwFmtFtn*  pFmt = SwXFootnote::FindFmt();
+ 	if(pFmt)
+@@ -233,7 +233,7 @@ OUString SwXFootnote::getLabel(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXFootnote::setLabel(const OUString& aLabel) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+ 	{
+@@ -312,7 +312,7 @@ void SwXFootnote::attachToRange(const uno::Reference< text::XTextRange > & xText
+ void SwXFootnote::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 			throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 10.12.98 15:31:48---------------------------------------------------
+@@ -320,7 +320,7 @@ void SwXFootnote::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXFootnote::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRef;
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+@@ -341,7 +341,7 @@ uno::Reference< text::XTextRange >  SwXFootnote::getAnchor(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ void SwXFootnote::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+ 	{
+@@ -398,7 +398,7 @@ uno::Reference< text::XTextCursor >   SwXFootnote::createCursor() throw (uno::Ru
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXFootnote::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	if(pFmt)
+@@ -421,7 +421,7 @@ uno::Reference< text::XTextCursor >  SwXFootnote::createTextCursorByRange(
+ 	const uno::Reference< text::XTextRange > & aTextPosition)
+ 			throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SwFmtFtn*  pFmt = FindFmt();
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	SwUnoInternalPaM aPam(*GetDoc());
+@@ -446,7 +446,7 @@ uno::Reference< text::XTextCursor >  SwXFootnote::createTextCursorByRange(
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXFootnote::createEnumeration() throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+  	uno::XInterface* pRet = 0;
+ 	const SwFmtFtn*  pFmt = FindFmt();
+@@ -539,7 +539,7 @@ void SwXFootnote::setPropertyValue( const ::rtl::OUString&,
+ uno::Any SwXFootnote::getPropertyValue( const OUString& rPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(!SwXParagraph::getDefaultTextContentValue(aRet, rPropertyName))
+ 	{
+diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx
+index dcbcb4c..80d143f 100644
+--- sw/source/core/unocore/unoidx.cxx
++++ sw/source/core/unocore/unoidx.cxx
+@@ -41,8 +41,8 @@
+ #ifndef _TOOLS_DEBUG_HXX //autogen
+ #include <tools/debug.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -418,7 +418,7 @@ OUString SwXDocumentIndex::getServiceName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXDocumentIndex::update(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSectionFmt *pFmt = GetFmt();
+ 	SwTOXBase* pTOXBase = pFmt ? (SwTOXBaseSection*)pFmt->GetSection() : 0;
+ 	if(!pTOXBase)
+@@ -443,7 +443,7 @@ void SwXDocumentIndex::setPropertyValue(const OUString& rPropertyName,
+ 		throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+  				lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 														_pMap, rPropertyName);
+     if (!pMap)
+@@ -732,7 +732,7 @@ void SwXDocumentIndex::setPropertyValue(const OUString& rPropertyName,
+ uno::Any SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 													_pMap, rPropertyName);
+@@ -1152,7 +1152,7 @@ void SwXDocumentIndex::attachToRange(const uno::Reference< text::XTextRange > &
+ void SwXDocumentIndex::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 	throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 15.01.99 14:23:56---------------------------------------------------
+@@ -1160,7 +1160,7 @@ void SwXDocumentIndex::attach(const uno::Reference< text::XTextRange > & xTextRa
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXDocumentIndex::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >   xRet;
+ 	if(GetRegisteredIn())
+ 	{
+@@ -1203,7 +1203,7 @@ void lcl_RemoveChildSections(SwSectionFmt& rParentFmt)
+ }
+ void SwXDocumentIndex::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetRegisteredIn())
+ 	{
+ 		SwSectionFmt*  pSectFmt = GetFmt();
+@@ -1411,7 +1411,7 @@ void SwXDocumentIndexMark::InitMap(TOXTypes eToxType)
+   -----------------------------------------------------------------------*/
+ OUString SwXDocumentIndexMark::getMarkEntry(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	OUString sRet;
+ 	if(pType)
+@@ -1431,7 +1431,7 @@ OUString SwXDocumentIndexMark::getMarkEntry(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXDocumentIndexMark::setMarkEntry(const OUString& rIndexEntry) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	if(pType)
+ 	{
+@@ -1486,7 +1486,7 @@ void SwXDocumentIndexMark::setMarkEntry(const OUString& rIndexEntry) throw( uno:
+ void SwXDocumentIndexMark::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!bIsDescriptor)
+ 		throw uno::RuntimeException();
+ 
+@@ -1603,7 +1603,7 @@ void SwXDocumentIndexMark::attachToRange(const uno::Reference< text::XTextRange
+ void SwXDocumentIndexMark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 14.12.98 10:25:45---------------------------------------------------
+@@ -1611,7 +1611,7 @@ void SwXDocumentIndexMark::attach(const uno::Reference< text::XTextRange > & xTe
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXDocumentIndexMark::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRet;
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	if(pType)
+@@ -1642,7 +1642,7 @@ uno::Reference< text::XTextRange >  SwXDocumentIndexMark::getAnchor(void) throw(
+   -----------------------------------------------------------------------*/
+ void SwXDocumentIndexMark::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	if(pType)
+ 	{
+@@ -1704,7 +1704,7 @@ void SwXDocumentIndexMark::setPropertyValue(const OUString& rPropertyName,
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+ 		lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 														_pMap, rPropertyName);
+@@ -1843,7 +1843,7 @@ void SwXDocumentIndexMark::setPropertyValue(const OUString& rPropertyName,
+ uno::Any SwXDocumentIndexMark::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwTOXType* pType = ((SwXDocumentIndexMark*)this)->GetTOXType();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2063,7 +2063,7 @@ SwXDocumentIndexes::~SwXDocumentIndexes()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXDocumentIndexes::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -2084,7 +2084,7 @@ sal_Int32 SwXDocumentIndexes::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXDocumentIndexes::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -2116,7 +2116,7 @@ uno::Any SwXDocumentIndexes::getByIndex(sal_Int32 nIndex)
+ uno::Any SwXDocumentIndexes::getByName(const OUString& rName)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -2147,7 +2147,7 @@ uno::Any SwXDocumentIndexes::getByName(const OUString& rName)
+ uno::Sequence< OUString > SwXDocumentIndexes::getElementNames(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -2182,7 +2182,7 @@ uno::Sequence< OUString > SwXDocumentIndexes::getElementNames(void)
+ sal_Bool SwXDocumentIndexes::hasByName(const OUString& rName)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 
+@@ -2212,7 +2212,7 @@ uno::Type SwXDocumentIndexes::getElementType(void) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXDocumentIndexes::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	return 0 != getCount();
+@@ -2260,7 +2260,7 @@ SwXIndexStyleAccess_Impl::SwXIndexStyleAccess_Impl(SwXDocumentIndex& rParentIdx)
+ 	rParent(rParentIdx),
+ 	xParent(&rParentIdx)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetStyleAccess(this);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2268,7 +2268,7 @@ SwXIndexStyleAccess_Impl::SwXIndexStyleAccess_Impl(SwXDocumentIndex& rParentIdx)
+   -----------------------------------------------------------------------*/
+ SwXIndexStyleAccess_Impl::~SwXIndexStyleAccess_Impl()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetStyleAccess(0);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2278,7 +2278,7 @@ void SwXIndexStyleAccess_Impl::replaceByIndex(sal_Int32 nIndex, const uno::Any&
+ 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException,
+ 		  lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2319,7 +2319,7 @@ uno::Any SwXIndexStyleAccess_Impl::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+ 	 			uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2397,7 +2397,7 @@ SwXIndexTokenAccess_Impl::SwXIndexTokenAccess_Impl(SwXDocumentIndex& rParentIdx)
+ 	xParent(&rParentIdx),
+ 	nCount(SwForm::GetFormMaxLevel(rParent.GetTOXType()))
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetTokenAccess(this);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2405,7 +2405,7 @@ SwXIndexTokenAccess_Impl::SwXIndexTokenAccess_Impl(SwXDocumentIndex& rParentIdx)
+   -----------------------------------------------------------------------*/
+ SwXIndexTokenAccess_Impl::~SwXIndexTokenAccess_Impl()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	rParent.SetTokenAccess(0);
+ }
+ /*-- 13.09.99 16:52:29---------------------------------------------------
+@@ -2415,7 +2415,7 @@ void SwXIndexTokenAccess_Impl::replaceByIndex(sal_Int32 nIndex, const uno::Any&
+ 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException,
+ 			lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2567,7 +2567,7 @@ void SwXIndexTokenAccess_Impl::replaceByIndex(sal_Int32 nIndex, const uno::Any&
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXIndexTokenAccess_Impl::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+@@ -2585,7 +2585,7 @@ uno::Any SwXIndexTokenAccess_Impl::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+  		uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const sal_Bool bDescriptor = rParent.IsDescriptor();
+ 	SwSectionFmt* pSectFmt = rParent.GetFmt();
+ 	if(!pSectFmt && !bDescriptor)
+diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx
+index b127ada..55011aa 100644
+--- sw/source/core/unocore/unoobj.cxx
++++ sw/source/core/unocore/unoobj.cxx
+@@ -243,8 +243,8 @@
+ #ifndef _FMTHDFT_HXX //autogen
+ #include <fmthdft.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -1013,7 +1013,7 @@ SwXTextCursor::SwXTextCursor(uno::Reference< XText >  xParent,
+   -----------------------------------------------------------------------*/
+ SwXTextCursor::~SwXTextCursor()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // --> FME 2006-03-07 #126177# A user event has been posted in order
+     // to delete the SwUnoCursor. Remove the user event if the SwXTextCursor
+@@ -1090,7 +1090,7 @@ sal_Int64 SAL_CALL SwXTextCursor::getSomething( const uno::Sequence< sal_Int8 >&
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::collapseToStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1111,7 +1111,7 @@ void SwXTextCursor::collapseToStart(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::collapseToEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1132,7 +1132,7 @@ void SwXTextCursor::collapseToEnd(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isCollapsed(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_True;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr && pUnoCrsr->GetMark())
+@@ -1146,7 +1146,7 @@ sal_Bool SwXTextCursor::isCollapsed(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::goLeft(sal_Int16 nCount, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1165,7 +1165,7 @@ sal_Bool SwXTextCursor::goLeft(sal_Int16 nCount, sal_Bool Expand) throw( uno::Ru
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::goRight(sal_Int16 nCount, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1184,7 +1184,7 @@ sal_Bool SwXTextCursor::goRight(sal_Int16 nCount, sal_Bool Expand) throw( uno::R
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1236,7 +1236,7 @@ void SwXTextCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1264,7 +1264,7 @@ void SwXTextCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+ void SwXTextCursor::gotoRange(const uno::Reference< XTextRange > & xRange, sal_Bool bExpand )
+ 								throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pOwnCursor = GetCrsr();
+ 	if(!pOwnCursor || !xRange.is())
+ 	{
+@@ -1403,7 +1403,7 @@ void SwXTextCursor::gotoRange(const uno::Reference< XTextRange > & xRange, sal_B
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isStartOfWord(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1421,7 +1421,7 @@ sal_Bool SwXTextCursor::isStartOfWord(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isEndOfWord(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1439,7 +1439,7 @@ sal_Bool SwXTextCursor::isEndOfWord(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoNextWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	//Probleme gibt's noch mit einem Absatzanfang, an dem kein Wort beginnt.
+ 
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+@@ -1483,7 +1483,7 @@ sal_Bool SwXTextCursor::gotoNextWord(sal_Bool Expand) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoPreviousWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// hier machen Leerzeichen am Absatzanfang Probleme
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+@@ -1521,7 +1521,7 @@ sal_Bool SwXTextCursor::gotoPreviousWord(sal_Bool Expand) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoEndOfWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+ 	sal_Bool bRet = sal_False;
+@@ -1557,7 +1557,7 @@ sal_Bool SwXTextCursor::gotoEndOfWord(sal_Bool Expand) throw( uno::RuntimeExcept
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoStartOfWord(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+ 	sal_Bool bRet = sal_False;
+@@ -1593,7 +1593,7 @@ sal_Bool SwXTextCursor::gotoStartOfWord(sal_Bool Expand) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isStartOfSentence(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1621,7 +1621,7 @@ sal_Bool SwXTextCursor::isStartOfSentence(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isEndOfSentence(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1650,7 +1650,7 @@ sal_Bool SwXTextCursor::isEndOfSentence(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoNextSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1680,7 +1680,7 @@ sal_Bool SwXTextCursor::gotoNextSentence(sal_Bool Expand) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoPreviousSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1707,7 +1707,7 @@ sal_Bool SwXTextCursor::gotoPreviousSentence(sal_Bool Expand) throw( uno::Runtim
+  --------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoStartOfSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1729,7 +1729,7 @@ sal_Bool SwXTextCursor::gotoStartOfSentence(sal_Bool Expand) throw( uno::Runtime
+  --------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoEndOfSentence(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1754,7 +1754,7 @@ sal_Bool SwXTextCursor::gotoEndOfSentence(sal_Bool Expand) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isStartOfParagraph(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1768,7 +1768,7 @@ sal_Bool SwXTextCursor::isStartOfParagraph(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::isEndOfParagraph(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1782,7 +1782,7 @@ sal_Bool SwXTextCursor::isEndOfParagraph(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoStartOfParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr )
+@@ -1806,7 +1806,7 @@ sal_Bool SwXTextCursor::gotoStartOfParagraph(sal_Bool Expand) throw( uno::Runtim
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoEndOfParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1830,7 +1830,7 @@ sal_Bool SwXTextCursor::gotoEndOfParagraph(sal_Bool Expand) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoNextParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1847,7 +1847,7 @@ sal_Bool SwXTextCursor::gotoNextParagraph(sal_Bool Expand) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextCursor::gotoPreviousParagraph(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1871,7 +1871,7 @@ uno::Reference< XText >  SwXTextCursor::getText(void) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextCursor::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextCursor*)this)->GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1889,7 +1889,7 @@ uno::Reference< XTextRange >  SwXTextCursor::getStart(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextCursor::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextCursor*)this)->GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1907,7 +1907,7 @@ uno::Reference< XTextRange >  SwXTextCursor::getEnd(void) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ OUString SwXTextCursor::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString aTxt;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextCursor*)this)->GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1938,7 +1938,7 @@ OUString SwXTextCursor::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextCursor::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -2138,7 +2138,7 @@ void SwXTextCursor::SetPropertyToDefault(
+ 	const OUString& rPropertyName)
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwDoc* pDoc = rPaM.GetDoc();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 							rPropSet.getPropertyMap(), rPropertyName);
+@@ -2215,7 +2215,7 @@ void SwXTextCursor::setPropertyValue(const OUString& rPropertyName, const uno::A
+ 		throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+  			lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -2242,7 +2242,7 @@ void SwXTextCursor::setPropertyValue(const OUString& rPropertyName, const uno::A
+ Any SwXTextCursor::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aAny;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2299,7 +2299,7 @@ void SwXTextCursor::removeVetoableChangeListener(const OUString& PropertyName, c
+ beans::PropertyState SwXTextCursor::getPropertyState(const OUString& rPropertyName)
+ 						throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	beans::PropertyState eRet = beans::PropertyState_DEFAULT_VALUE;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2317,7 +2317,7 @@ uno::Sequence< beans::PropertyState > SwXTextCursor::getPropertyStates(
+ 			const uno::Sequence< OUString >& PropertyNames)
+ 			throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw RuntimeException();
+@@ -2345,7 +2345,7 @@ uno::Any SwXTextCursor::getPropertyDefault(const OUString& rPropertyName)
+ void SAL_CALL SwXTextCursor::setAllPropertiesToDefault()
+ 	throw (RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if (pUnoCrsr)
+@@ -2391,7 +2391,7 @@ void SAL_CALL SwXTextCursor::setAllPropertiesToDefault()
+ void SAL_CALL SwXTextCursor::setPropertiesToDefault( const Sequence< OUString >& aPropertyNames )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 	if ( nCount )
+ 	{
+@@ -2443,7 +2443,7 @@ void SAL_CALL SwXTextCursor::setPropertiesToDefault( const Sequence< OUString >&
+ Sequence< Any > SAL_CALL SwXTextCursor::getPropertyDefaults( const Sequence< OUString >& aPropertyNames )
+ 	throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 	Sequence < Any > aRet ( nCount );
+ 	if ( nCount )
+diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx
+index 00446c8..8cfeaf2 100644
+--- sw/source/core/unocore/unoobj2.cxx
++++ sw/source/core/unocore/unoobj2.cxx
+@@ -250,8 +250,8 @@
+ #ifndef _FMTHDFT_HXX //autogen
+ #include <fmthdft.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -395,7 +395,7 @@ void SwXTextCursor::insertDocumentFromURL(const OUString& rURL,
+ 	const uno::Sequence< beans::PropertyValue >& aOptions)
+ 	throw( lang::IllegalArgumentException, io::IOException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -532,7 +532,7 @@ uno::Sequence< beans::PropertyValue > SwXTextCursor::createSortDescriptor(sal_Bo
+   -----------------------------------------------------------------------*/
+ uno::Sequence< beans::PropertyValue > SwXTextCursor::createSortDescriptor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXTextCursor::createSortDescriptor(sal_False);
+ }
+ /* -----------------------------15.12.00 14:06--------------------------------
+@@ -741,7 +741,7 @@ sal_Bool SwXTextCursor::convertSortProperties(
+ void SwXTextCursor::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSortOptions aSortOpt;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+@@ -1148,7 +1148,7 @@ SwXParagraphEnumeration::SwXParagraphEnumeration(SwXText* pParent,
+   -----------------------------------------------------------------------*/
+ SwXParagraphEnumeration::~SwXParagraphEnumeration()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 		delete pUnoCrsr;
+@@ -1159,7 +1159,7 @@ SwXParagraphEnumeration::~SwXParagraphEnumeration()
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXParagraphEnumeration::hasMoreElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return bFirstParagraph ? sal_True : xNextPara.is();
+ }
+ /*-- 14.08.03 13:10:14---------------------------------------------------
+@@ -1300,7 +1300,7 @@ uno::Reference< XTextContent > SAL_CALL SwXParagraphEnumeration::NextElement_Imp
+ uno::Any SwXParagraphEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextContent >  aRef;
+ 
+     if (bFirstParagraph)
+@@ -1470,7 +1470,7 @@ SwXTextRange::SwXTextRange(SwFrmFmt& rTblFmt) :
+   -----------------------------------------------------------------------*/
+ SwXTextRange::~SwXTextRange()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetBookmark())
+         pDoc->deleteBookmark( GetBookmark()->GetName() );
+ }
+@@ -1560,7 +1560,7 @@ void 	SwXTextRange::DeleteAndInsert(const String& rText) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ uno::Reference< XText >  SwXTextRange::getText(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xParentText.is())
+ 	{
+ 		if(eRangePosition == RANGE_IN_FRAME &&
+@@ -1615,7 +1615,7 @@ uno::Reference< XText >  SwXTextRange::getText(void) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextRange::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwBookmark* pBkm = GetBookmark();
+ 	if(!xParentText.is())
+@@ -1639,7 +1639,7 @@ uno::Reference< XTextRange >  SwXTextRange::getStart(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ uno::Reference< XTextRange >  SwXTextRange::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  xRet;
+ 	SwBookmark* pBkm = GetBookmark();
+ 	if(!xParentText.is())
+@@ -1664,7 +1664,7 @@ uno::Reference< XTextRange >  SwXTextRange::getEnd(void) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ OUString SwXTextRange::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwBookmark* pBkm = GetBookmark();
+ 	OUString sRet;
+ 	//fuer Tabellen gibt es keine Bookmark, also auch keinen Text
+@@ -1698,7 +1698,7 @@ OUString SwXTextRange::getString(void) throw( uno::RuntimeException )
+ void SwXTextRange::setString(const OUString& aString)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(RANGE_IS_TABLE == eRangePosition)
+ 	{
+ 		//setString in Tabellen kann nicht erlaubt werden
+@@ -2172,7 +2172,7 @@ Sequence< OUString > SAL_CALL SwXTextRange::getAvailableServiceNames(void) throw
+   -----------------------------------------------------------------------*/
+ uno::Reference< XPropertySetInfo > SAL_CALL SwXTextRange::getPropertySetInfo(  ) throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	static uno::Reference< XPropertySetInfo > xRef =
+ 		aPropSet.getPropertySetInfo();
+ 	return xRef;
+@@ -2185,7 +2185,7 @@ void SAL_CALL SwXTextRange::setPropertyValue(
+ 	throw(UnknownPropertyException, PropertyVetoException,
+ 		IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(GetDoc()->GetNodes());
+@@ -2198,7 +2198,7 @@ void SAL_CALL SwXTextRange::setPropertyValue(
+ Any SAL_CALL SwXTextRange::getPropertyValue( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2247,7 +2247,7 @@ void SAL_CALL SwXTextRange::removeVetoableChangeListener(
+ PropertyState SAL_CALL SwXTextRange::getPropertyState( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2260,7 +2260,7 @@ PropertyState SAL_CALL SwXTextRange::getPropertyState( const OUString& rProperty
+ Sequence< PropertyState > SAL_CALL SwXTextRange::getPropertyStates(
+ 	const Sequence< OUString >& rPropertyName ) throw(UnknownPropertyException, RuntimeException)
+ {
+-	NAMESPACE_VOS(OGuard) aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2273,7 +2273,7 @@ Sequence< PropertyState > SAL_CALL SwXTextRange::getPropertyStates(
+ void SAL_CALL SwXTextRange::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2286,7 +2286,7 @@ void SAL_CALL SwXTextRange::setPropertyToDefault( const OUString& rPropertyName
+ Any SAL_CALL SwXTextRange::getPropertyDefault( const OUString& rPropertyName )
+ 	throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc() || !GetBookmark())
+ 		throw RuntimeException();
+ 	SwPaM aPaM(((SwDoc*)GetDoc())->GetNodes());
+@@ -2393,7 +2393,7 @@ SwXTextRanges::SwXTextRanges(SwPaM* pCrsr) :
+   -----------------------------------------------------------------------*/
+ SwXTextRanges::~SwXTextRanges()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwUnoCrsr* pCrsr = GetCrsr();
+ 	delete pCrsr;
+ 	if(pRangeArr)
+@@ -2407,7 +2407,7 @@ SwXTextRanges::~SwXTextRanges()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextRanges::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	SwUnoCrsr* pCrsr = GetCrsr();
+ 	if(pCrsr)
+@@ -2426,7 +2426,7 @@ sal_Int32 SwXTextRanges::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTextRanges::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< XTextRange >  aRef;
+ 	XTextRangeArr* pArr = ((SwXTextRanges*)this)->GetRangesArray();
+     if(pArr && 0 <= nIndex && nIndex < pArr->Count())
+@@ -2451,7 +2451,7 @@ uno::Type  SwXTextRanges::getElementType(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextRanges::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return getCount() > 0;
+ }
+ /* -----------------10.12.98 14:25-------------------
+@@ -2598,7 +2598,7 @@ SwXParaFrameEnumeration::SwXParaFrameEnumeration(const SwUnoCrsr& rUnoCrsr,
+   -----------------------------------------------------------------------*/
+ SwXParaFrameEnumeration::~SwXParaFrameEnumeration()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     aFrameArr.DeleteAndDestroy(0, aFrameArr.Count());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	delete pUnoCrsr;
+@@ -2626,7 +2626,7 @@ void SwXParaFrameEnumeration::FillFrame(SwUnoCrsr& rUnoCrsr)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXParaFrameEnumeration::hasMoreElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetCrsr())
+ 		throw uno::RuntimeException();
+ 	return xNextObject.is() ? sal_True : CreateNextObject();
+@@ -2637,7 +2637,7 @@ sal_Bool SwXParaFrameEnumeration::hasMoreElements(void) throw( uno::RuntimeExcep
+ uno::Any SwXParaFrameEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetCrsr())
+ 		throw uno::RuntimeException();
+ 	if(!xNextObject.is() && aFrameArr.Count())
+diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx
+index 6f78a91..1b97514 100644
+--- sw/source/core/unocore/unoparagraph.cxx
++++ sw/source/core/unocore/unoparagraph.cxx
+@@ -63,8 +63,8 @@
+ #ifndef _NDTXT_HXX //autogen
+ #include <ndtxt.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -212,7 +212,7 @@ SwXParagraph::SwXParagraph(SwXText* pParent, SwUnoCrsr* pCrsr, sal_Int32 nSelSta
+   -----------------------------------------------------------------------*/
+ SwXParagraph::~SwXParagraph()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 		delete pUnoCrsr;
+@@ -252,7 +252,7 @@ void SwXParagraph::setPropertyValue(const OUString& rPropertyName, const uno::An
+     throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
+         lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence<OUString> aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     uno::Sequence<uno::Any> aValues(1);
+@@ -265,7 +265,7 @@ void SwXParagraph::setPropertyValue(const OUString& rPropertyName, const uno::An
+ uno::Any SwXParagraph::getPropertyValue(const OUString& rPropertyName)
+     throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence<OUString> aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     uno::Sequence< uno::Any > aRet = GetPropertyValues_Impl(aPropertyNames );
+@@ -314,7 +314,7 @@ void SwXParagraph::setPropertyValues(
+         throw(beans::PropertyVetoException, lang::IllegalArgumentException,
+                         lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // workaround for bad designed API
+     try
+@@ -378,7 +378,7 @@ uno::Sequence< uno::Any > SwXParagraph::getPropertyValues(
+     const uno::Sequence< OUString >& rPropertyNames )
+         throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Any > aValues;
+ 
+     // workaround for bad designed API
+@@ -431,7 +431,7 @@ uno::Sequence< SetPropertyTolerantFailed > SAL_CALL SwXParagraph::setPropertyVal
+         const uno::Sequence< uno::Any >& rValues )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if (rPropertyNames.getLength() != rValues.getLength())
+         throw lang::IllegalArgumentException();
+@@ -514,7 +514,7 @@ uno::Sequence< GetPropertyTolerantResult > SAL_CALL SwXParagraph::getPropertyVal
+         const uno::Sequence< OUString >& rPropertyNames )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     uno::Sequence< GetDirectPropertyTolerantResult > aTmpRes(
+             GetPropertyValuesTolerant_Impl( rPropertyNames, sal_False ) );
+@@ -534,7 +534,7 @@ uno::Sequence< GetDirectPropertyTolerantResult > SAL_CALL SwXParagraph::getDirec
+         const uno::Sequence< OUString >& rPropertyNames )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return GetPropertyValuesTolerant_Impl( rPropertyNames, sal_True );
+ }
+ 
+@@ -544,7 +544,7 @@ uno::Sequence< GetDirectPropertyTolerantResult > SAL_CALL SwXParagraph::GetPrope
+         sal_Bool bDirectValuesOnly )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+     if (!pUnoCrsr)
+@@ -786,7 +786,7 @@ beans::PropertyState lcl_SwXParagraph_getPropertyState(
+ beans::PropertyState SwXParagraph::getPropertyState(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	beans::PropertyState eRet = beans::PropertyState_DEFAULT_VALUE;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if( pUnoCrsr )
+@@ -812,7 +812,7 @@ uno::Sequence< beans::PropertyState > SwXParagraph::getPropertyStates(
+ 		const uno::Sequence< OUString >& PropertyNames)
+ 		throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const OUString* pNames = PropertyNames.getConstArray();
+ 	uno::Sequence< beans::PropertyState > aRet(PropertyNames.getLength());
+ 	beans::PropertyState* pStates = aRet.getArray();
+@@ -847,7 +847,7 @@ uno::Sequence< beans::PropertyState > SwXParagraph::getPropertyStates(
+ void SwXParagraph::setPropertyToDefault(const OUString& rPropertyName)
+ 		throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -943,7 +943,7 @@ uno::Any SwXParagraph::getPropertyDefault(const OUString& rPropertyName)
+ void SwXParagraph::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 					throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // SwXParagraph will only created in order to be inserteb by
+     // 'insertTextContentBefore' or 'insertTextContentAfter' therefore
+     // they cannot be attached
+@@ -954,7 +954,7 @@ void SwXParagraph::attach(const uno::Reference< text::XTextRange > & xTextRange)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXParagraph::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -972,7 +972,7 @@ uno::Reference< text::XTextRange >  SwXParagraph::getAnchor(void) throw( uno::Ru
+   -----------------------------------------------------------------------*/
+ void SwXParagraph::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXParagraph*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1009,7 +1009,7 @@ void SwXParagraph::removeEventListener(const uno::Reference< lang::XEventListene
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXParagraph::createEnumeration(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1031,7 +1031,7 @@ uno::Type SwXParagraph::getElementType(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXParagraph::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(((SwXParagraph*)this)->GetCrsr())
+ 		return sal_True;
+ 	else
+@@ -1049,7 +1049,7 @@ uno::Reference< text::XText >  SwXParagraph::getText(void) throw( uno::RuntimeEx
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXParagraph::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1068,7 +1068,7 @@ uno::Reference< text::XTextRange >  SwXParagraph::getStart(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXParagraph::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1087,7 +1087,7 @@ uno::Reference< text::XTextRange >  SwXParagraph::getEnd(void) throw( uno::Runti
+   -----------------------------------------------------------------------*/
+ OUString SwXParagraph::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString aRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if( pUnoCrsr)
+@@ -1106,7 +1106,7 @@ OUString SwXParagraph::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXParagraph::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+ 	if(pUnoCrsr)
+diff --git a/sw/source/core/unocore/unoport.cxx b/sw/source/core/unocore/unoport.cxx
+index 5cac6d6..6200adf 100644
+--- sw/source/core/unocore/unoport.cxx
++++ sw/source/core/unocore/unoport.cxx
+@@ -38,8 +38,8 @@
+ 
+ 
+ #include <cmdid.h>
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -193,7 +193,7 @@ SwXTextPortion::SwXTextPortion(const SwUnoCrsr* pPortionCrsr, uno::Reference< te
+   -----------------------------------------------------------------------*/
+ SwXTextPortion::~SwXTextPortion()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	delete pUnoCrsr;
+     delete pRubyText;
+@@ -213,7 +213,7 @@ uno::Reference< text::XText >  SwXTextPortion::getText(void) throw( uno::Runtime
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextPortion::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -231,7 +231,7 @@ uno::Reference< text::XTextRange >  SwXTextPortion::getStart(void) throw( uno::R
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextPortion::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -249,7 +249,7 @@ uno::Reference< text::XTextRange >  SwXTextPortion::getEnd(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ OUString SwXTextPortion::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String aTxt;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -272,7 +272,7 @@ OUString SwXTextPortion::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 		SwXTextCursor::SetString(*pUnoCrsr, aString);
+@@ -304,7 +304,7 @@ void SwXTextPortion::setPropertyValue(const OUString& rPropertyName,
+ 	throw( beans::UnknownPropertyException,
+ 		beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -501,7 +501,7 @@ uno::Any SwXTextPortion::getPropertyValue(
+     const OUString& rPropertyName)
+         throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< ::rtl::OUString > aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     return GetPropertyValues_Impl(aPropertyNames).getConstArray()[0];
+@@ -543,7 +543,7 @@ void SwXTextPortion::setPropertyValues(
+         throw(beans::PropertyVetoException, lang::IllegalArgumentException,
+             lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // workaround for bad designed API
+     try
+@@ -566,7 +566,7 @@ uno::Sequence< uno::Any > SwXTextPortion::getPropertyValues(
+     const uno::Sequence< OUString >& rPropertyNames )
+         throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Any > aValues;
+ 
+     // workaround for bad designed API
+@@ -596,7 +596,7 @@ uno::Sequence< SetPropertyTolerantFailed > SAL_CALL SwXTextPortion::setPropertyV
+         const uno::Sequence< uno::Any >& rValues )
+     throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     if (rPropertyNames.getLength() != rValues.getLength())
+         throw lang::IllegalArgumentException();
+@@ -674,7 +674,7 @@ uno::Sequence< GetPropertyTolerantResult > SAL_CALL SwXTextPortion::getPropertyV
+         const uno::Sequence< OUString >& rPropertyNames )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     uno::Sequence< GetDirectPropertyTolerantResult > aTmpRes(
+             GetPropertyValuesTolerant_Impl( rPropertyNames, sal_False ) );
+@@ -694,7 +694,7 @@ uno::Sequence< GetDirectPropertyTolerantResult > SAL_CALL SwXTextPortion::getDir
+         const uno::Sequence< OUString >& rPropertyNames )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return GetPropertyValuesTolerant_Impl( rPropertyNames, sal_True );
+ }
+ 
+@@ -704,7 +704,7 @@ uno::Sequence< GetDirectPropertyTolerantResult > SAL_CALL SwXTextPortion::GetPro
+         sal_Bool bDirectValuesOnly )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+     if(!pUnoCrsr)
+@@ -860,7 +860,7 @@ void SwXTextPortion::removeVetoableChangeListener(const OUString& PropertyName,
+ beans::PropertyState SwXTextPortion::getPropertyState(const OUString& rPropertyName)
+ 			throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	beans::PropertyState eRet = beans::PropertyState_DEFAULT_VALUE;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -882,7 +882,7 @@ uno::Sequence< beans::PropertyState > SwXTextPortion::getPropertyStates(
+         const uno::Sequence< OUString >& rPropertyNames)
+ 		throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -906,7 +906,7 @@ uno::Sequence< beans::PropertyState > SwXTextPortion::getPropertyStates(
+ void SwXTextPortion::setPropertyToDefault(const OUString& rPropertyName)
+ 				throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -936,7 +936,7 @@ uno::Any SwXTextPortion::getPropertyDefault(const OUString& rPropertyName)
+   -----------------------------------------------------------------------*/
+ OUString SwXTextPortion::getPresentation(sal_Bool bShowCommand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	String sRet;
+ 	SwFmtFld* pFmt = 0;
+@@ -954,7 +954,7 @@ OUString SwXTextPortion::getPresentation(sal_Bool bShowCommand) throw( uno::Runt
+ void SwXTextPortion::attach(const uno::Reference< text::XTextRange > & xTextRange)
+     throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     // SwXTextPortion cannot be created at the factory therefore
+     // they cannot be attached
+     throw uno::RuntimeException();
+@@ -964,7 +964,7 @@ void SwXTextPortion::attach(const uno::Reference< text::XTextRange > & xTextRang
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextPortion::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  aRet;
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+@@ -978,7 +978,7 @@ uno::Reference< text::XTextRange >  SwXTextPortion::getAnchor(void) throw( uno::
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = ((SwXTextPortion*)this)->GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -993,7 +993,7 @@ void SwXTextPortion::dispose(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::addEventListener(const uno::Reference< lang::XEventListener > & aListener) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetRegisteredIn())
+ 		throw uno::RuntimeException();
+ 	aLstnrCntnr.AddListener(aListener);
+@@ -1003,7 +1003,7 @@ void SwXTextPortion::addEventListener(const uno::Reference< lang::XEventListener
+   -----------------------------------------------------------------------*/
+ void SwXTextPortion::removeEventListener(const uno::Reference< lang::XEventListener > & aListener) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetRegisteredIn() || !aLstnrCntnr.RemoveListener(aListener))
+ 		throw uno::RuntimeException();
+ }
+@@ -1013,7 +1013,7 @@ void SwXTextPortion::removeEventListener(const uno::Reference< lang::XEventListe
+ uno::Reference< container::XEnumeration >  SwXTextPortion::createContentEnumeration(const OUString& aServiceName)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -1048,7 +1048,7 @@ sal_Int64 SwXTextPortion::getSomething( const uno::Sequence< sal_Int8 >& rId )
+  * --------------------------------------------------*/
+ uno::Sequence< OUString > SwXTextPortion::getAvailableServiceNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Sequence< OUString > aRet(1);
+ 	OUString* pArray = aRet.getArray();
+ 	pArray[0] = C2U("com.sun.star.text.TextContent");
+@@ -1066,7 +1066,7 @@ OUString SwXTextPortion::getImplementationName(void) throw( uno::RuntimeExceptio
+  * --------------------------------------------------*/
+ sal_Bool SwXTextPortion::supportsService(const OUString& rServiceName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+@@ -1091,7 +1091,7 @@ sal_Bool SwXTextPortion::supportsService(const OUString& rServiceName) throw( un
+ uno::Sequence< OUString > SwXTextPortion::getSupportedServiceNames(void)
+ 												throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(!pUnoCrsr)
+ 		throw uno::RuntimeException();
+diff --git a/sw/source/core/unocore/unoportenum.cxx b/sw/source/core/unocore/unoportenum.cxx
+index e4aefcf..cb7e6b8 100644
+--- sw/source/core/unocore/unoportenum.cxx
++++ sw/source/core/unocore/unoportenum.cxx
+@@ -85,8 +85,8 @@
+ #ifndef _CRSSKIP_HXX
+ #include <crsskip.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -183,7 +183,7 @@ SwXTextPortionEnumeration::SwXTextPortionEnumeration(
+   -----------------------------------------------------------------------*/
+ SwXTextPortionEnumeration::~SwXTextPortionEnumeration()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     for(sal_uInt16 nFrame = aFrameArr.Count(); nFrame; )
+ 		delete aFrameArr.GetObject( --nFrame );
+ 	aFrameArr.Remove(0, aFrameArr.Count());
+@@ -199,7 +199,7 @@ SwXTextPortionEnumeration::~SwXTextPortionEnumeration()
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextPortionEnumeration::hasMoreElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aPortionArr.Count() > 0;
+ }
+ /*-- 27.01.99 10:44:45---------------------------------------------------
+@@ -208,7 +208,7 @@ sal_Bool SwXTextPortionEnumeration::hasMoreElements(void) throw( uno::RuntimeExc
+ uno::Any SwXTextPortionEnumeration::nextElement(void)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!aPortionArr.Count())
+ 		throw container::NoSuchElementException();
+ 	XTextRangeRefPtr pPortion = aPortionArr.GetObject(0);
+diff --git a/sw/source/core/unocore/unoredline.cxx b/sw/source/core/unocore/unoredline.cxx
+index eab1d88..4b80411 100644
+--- sw/source/core/unocore/unoredline.cxx
++++ sw/source/core/unocore/unoredline.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -153,7 +153,7 @@ uno::Sequence<uno::Type> SwXRedlineText::getTypes()
+ uno::Sequence<sal_Int8> SwXRedlineText::getImplementationId()
+ 	throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -169,7 +169,7 @@ uno::Sequence<sal_Int8> SwXRedlineText::getImplementationId()
+ uno::Reference<text::XTextCursor> SwXRedlineText::createTextCursor(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwPosition aPos(aNodeIndex);
+ 	SwXTextCursor* pCrsr = new SwXTextCursor(this, aPos, CURSOR_REDLINE,
+@@ -226,7 +226,7 @@ uno::Reference<text::XTextCursor> SwXRedlineText::createTextCursorByRange(
+ uno::Reference<container::XEnumeration> SwXRedlineText::createEnumeration(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwPaM aPam(aNodeIndex);
+ 	aPam.Move(fnMoveForward, fnGoNode);
+ 	return new SwXParagraphEnumeration(this, *aPam.Start(), CURSOR_REDLINE);
+@@ -321,7 +321,7 @@ static uno::Sequence<beans::PropertyValue> lcl_GetSuccessorProperties(const SwRe
+ uno::Any SwXRedlinePortion::getPropertyValue( const OUString& rPropertyName )
+ 		throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Validate();
+ 	uno::Any aRet;
+ 	if(rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_REDLINE_TEXT)))
+@@ -370,7 +370,7 @@ void SwXRedlinePortion::Validate() throw( uno::RuntimeException )
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXRedlinePortion::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -510,7 +510,7 @@ void SwXRedline::setPropertyValue( const OUString& rPropertyName, const uno::Any
+ 	throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
+ 		lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	if(rPropertyName.equalsAsciiL(SW_PROP_NAME(UNO_NAME_REDLINE_AUTHOR)))
+@@ -581,7 +581,7 @@ void SwXRedline::setPropertyValue( const OUString& rPropertyName, const uno::Any
+ uno::Any SwXRedline::getPropertyValue( const OUString& rPropertyName )
+ 	throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 	uno::Any aRet;
+@@ -699,7 +699,7 @@ void SwXRedline::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXRedline::createEnumeration(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration > xRet;
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+@@ -734,7 +734,7 @@ sal_Bool SwXRedline::hasElements(  ) throw(uno::RuntimeException)
+  ---------------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXRedline::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pDoc)
+ 		throw uno::RuntimeException();
+ 
+@@ -811,7 +811,7 @@ uno::Sequence<uno::Type> SwXRedline::getTypes()
+ uno::Sequence<sal_Int8> SwXRedline::getImplementationId()
+ 	throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/core/unocore/unoredlines.cxx b/sw/source/core/unocore/unoredlines.cxx
+index f457def..0602378 100644
+--- sw/source/core/unocore/unoredlines.cxx
++++ sw/source/core/unocore/unoredlines.cxx
+@@ -38,8 +38,8 @@
+ 
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -91,7 +91,7 @@ SwXRedlines::~SwXRedlines()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXRedlines::getCount(  ) throw(uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+@@ -103,7 +103,7 @@ sal_Int32 SwXRedlines::getCount(  ) throw(uno::RuntimeException)
+ uno::Any SwXRedlines::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+@@ -123,7 +123,7 @@ uno::Any SwXRedlines::getByIndex(sal_Int32 nIndex)
+ uno::Reference< container::XEnumeration >  SwXRedlines::createEnumeration(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+@@ -141,7 +141,7 @@ uno::Type SwXRedlines::getElementType(  ) throw(uno::RuntimeException)
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXRedlines::hasElements(  ) throw(uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw uno::RuntimeException();
+ 	const SwRedlineTbl& rRedTbl = GetDoc()->GetRedlineTbl();
+diff --git a/sw/source/core/unocore/unorefmk.cxx b/sw/source/core/unocore/unorefmk.cxx
+index d92fcf8..7597afa 100644
+--- sw/source/core/unocore/unorefmk.cxx
++++ sw/source/core/unocore/unorefmk.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -210,7 +210,7 @@ void SwXReferenceMark::attachToRange(const uno::Reference< text::XTextRange > &
+ void SwXReferenceMark::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 11.12.98 10:28:34---------------------------------------------------
+@@ -218,7 +218,7 @@ void SwXReferenceMark::attach(const uno::Reference< text::XTextRange > & xTextRa
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXReferenceMark::getAnchor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	if(IsValid())
+ 	{
+@@ -249,7 +249,7 @@ uno::Reference< text::XTextRange >  SwXReferenceMark::getAnchor(void) throw( uno
+   -----------------------------------------------------------------------*/
+ void SwXReferenceMark::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		const SwFmtRefMark*	pNewMark = pDoc->GetRefMark(sMarkName);
+@@ -294,7 +294,7 @@ void SwXReferenceMark::removeEventListener(const uno::Reference< lang::XEventLis
+   -----------------------------------------------------------------------*/
+ OUString SwXReferenceMark::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid() || !pDoc->GetRefMark(sMarkName))
+ 	{
+ 		throw uno::RuntimeException();
+@@ -306,7 +306,7 @@ OUString SwXReferenceMark::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXReferenceMark::setName(const OUString& Name_) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(m_bIsDescriptor)
+ 		sMarkName = String(Name_);
+ 	else
+diff --git a/sw/source/core/unocore/unosect.cxx b/sw/source/core/unocore/unosect.cxx
+index a4af793..3f857de 100644
+--- sw/source/core/unocore/unosect.cxx
++++ sw/source/core/unocore/unosect.cxx
+@@ -61,8 +61,8 @@
+ #ifndef _LNKBASE_HXX
+ #include <sfx2/lnkbase.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -350,7 +350,7 @@ SwXTextSection::SwXTextSection(sal_Bool bWithFormat, sal_Bool bIndexHeader) :
+   -----------------------------------------------------------------------*/
+ SwXTextSection::~SwXTextSection()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     delete m_pClient;
+     delete pProps;
+ }
+@@ -359,7 +359,7 @@ SwXTextSection::~SwXTextSection()
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextSection >  SwXTextSection::getParentSection(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< text::XTextSection >  aRef;
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+@@ -385,7 +385,7 @@ uno::Reference< text::XTextSection >  SwXTextSection::getParentSection(void) thr
+ uno::Sequence< uno::Reference< text::XTextSection >  > SwXTextSection::getChildSections(void)
+     throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence<uno::Reference< text::XTextSection > > aSeq;
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+@@ -562,7 +562,7 @@ void SwXTextSection::attachToRange(const uno::Reference< text::XTextRange > & xT
+ void SwXTextSection::attach(const uno::Reference< text::XTextRange > & xTextRange)
+                     throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ 
+@@ -571,7 +571,7 @@ void SwXTextSection::attach(const uno::Reference< text::XTextRange > & xTextRang
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextSection::getAnchor(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< text::XTextRange >  xRet;
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+@@ -599,7 +599,7 @@ uno::Reference< text::XTextRange >  SwXTextSection::getAnchor(void) throw( uno::
+   -----------------------------------------------------------------------*/
+ void SwXTextSection::dispose(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*  pSectFmt = GetFmt();
+     if(pSectFmt)
+         pSectFmt->GetDoc()->DelSectionFmt( pSectFmt );
+@@ -959,7 +959,7 @@ void SwXTextSection::setPropertyValues(
+         throw(PropertyVetoException, lang::IllegalArgumentException,
+                         lang::WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // workaround for bad designed API
+     try
+@@ -984,7 +984,7 @@ void SwXTextSection::setPropertyValue(
+         lang::IllegalArgumentException,     lang::WrappedTargetException,
+         uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< ::rtl::OUString > aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     Sequence< Any > aValues(1);
+@@ -1251,7 +1251,7 @@ Sequence< Any > SwXTextSection::getPropertyValues(
+     const Sequence< ::rtl::OUString >& rPropertyNames )
+         throw(RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< Any > aValues;
+ 
+     // workaround for bad designed API
+@@ -1276,7 +1276,7 @@ Sequence< Any > SwXTextSection::getPropertyValues(
+ uno::Any SwXTextSection::getPropertyValue(const OUString& rPropertyName)
+     throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< ::rtl::OUString > aPropertyNames(1);
+     aPropertyNames.getArray()[0] = rPropertyName;
+     return GetPropertyValues_Impl(aPropertyNames).getConstArray()[0];
+@@ -1344,7 +1344,7 @@ void SwXTextSection::removeVetoableChangeListener(const OUString& PropertyName,
+ PropertyState SwXTextSection::getPropertyState( const OUString& rPropertyName )
+     throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< OUString > aNames(1);
+     aNames.getArray()[0] = rPropertyName;
+     return getPropertyStates(aNames).getConstArray()[0];
+@@ -1356,7 +1356,7 @@ Sequence< PropertyState > SwXTextSection::getPropertyStates(
+     const Sequence< OUString >& rPropertyNames )
+         throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     Sequence< PropertyState > aStates(rPropertyNames.getLength());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(pFmt||m_bIsDescriptor)
+@@ -1424,7 +1424,7 @@ Sequence< PropertyState > SwXTextSection::getPropertyStates(
+ void SwXTextSection::setPropertyToDefault( const OUString& rPropertyName )
+     throw(UnknownPropertyException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(pFmt||m_bIsDescriptor)
+     {
+@@ -1540,7 +1540,7 @@ void SwXTextSection::setPropertyToDefault( const OUString& rPropertyName )
+ Any SwXTextSection::getPropertyDefault( const OUString& rPropertyName )
+     throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     SwSectionFmt*   pFmt = GetFmt();
+     const SfxItemPropertyMap*   pMap = SfxItemPropertyMap::GetByName(
+@@ -1598,7 +1598,7 @@ Any SwXTextSection::getPropertyDefault( const OUString& rPropertyName )
+   -----------------------------------------------------------------------*/
+ OUString SwXTextSection::getName(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String sRet;
+     const SwSectionFmt* pFmt = GetFmt();
+     if(pFmt)
+@@ -1614,7 +1614,7 @@ OUString SwXTextSection::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextSection::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwSectionFmt*   pFmt = GetFmt();
+     if(pFmt)
+     {
+diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx
+index 7945282..e3591c9 100644
+--- sw/source/core/unocore/unosett.cxx
++++ sw/source/core/unocore/unosett.cxx
+@@ -136,8 +136,8 @@
+ #ifndef _CTRLTOOL_HXX //autogen
+ #include <svtools/ctrltool.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -428,7 +428,7 @@ uno::Reference< beans::XPropertySetInfo >  SwXFootnoteProperties::getPropertySet
+ void SwXFootnoteProperties::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue)
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pDoc)
+ 	{
+ 		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -554,7 +554,7 @@ void SwXFootnoteProperties::setPropertyValue(const OUString& rPropertyName, cons
+ uno::Any SwXFootnoteProperties::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(pDoc)
+ 	{
+@@ -767,7 +767,7 @@ void SwXEndnoteProperties::setPropertyValue(const OUString& rPropertyName, const
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException,
+ 		lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pDoc)
+ 	{
+ 		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -847,7 +847,7 @@ void SwXEndnoteProperties::setPropertyValue(const OUString& rPropertyName, const
+ uno::Any SwXEndnoteProperties::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(pDoc)
+ 	{
+@@ -1025,7 +1025,7 @@ void SwXLineNumberingProperties::setPropertyValue(
+ 		throw( UnknownPropertyException, PropertyVetoException,
+ 				IllegalArgumentException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pDoc)
+ 	{
+ 		const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -1142,7 +1142,7 @@ void SwXLineNumberingProperties::setPropertyValue(
+ Any SwXLineNumberingProperties::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aRet;
+ 	if(pDoc)
+ 	{
+@@ -1392,7 +1392,7 @@ SwXNumberingRules::SwXNumberingRules(SwDoc& rDoc) :
+   -----------------------------------------------------------------------*/
+ SwXNumberingRules::~SwXNumberingRules()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pDoc && sCreatedNumRuleName.Len())
+ 		pDoc->DelNumRule( sCreatedNumRuleName );
+ 	if( pNumRule && bOwnNumRuleCreated )
+@@ -1405,7 +1405,7 @@ void SwXNumberingRules::replaceByIndex(sal_Int32 nIndex, const uno::Any& rElemen
+ 	throw( lang::IllegalArgumentException, lang::IndexOutOfBoundsException,
+  				 lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(nIndex < 0 || MAXLEVEL <= nIndex)
+ 		throw lang::IndexOutOfBoundsException();
+ 
+@@ -1486,7 +1486,7 @@ uno::Any SwXNumberingRules::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+ 			uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(nIndex < 0 || MAXLEVEL <= nIndex)
+ 		throw lang::IndexOutOfBoundsException();
+ 
+@@ -1532,7 +1532,7 @@ sal_Bool SwXNumberingRules::hasElements(void) throw( uno::RuntimeException )
+ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetNumberingRuleByIndex(
+ 				const SwNumRule& rNumRule, sal_Int32 nIndex) const
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	DBG_ASSERT( 0 <= nIndex && nIndex < MAXLEVEL, "index out of range" );
+ 
+ 	const SwNumFmt& rFmt = rNumRule.Get( (sal_uInt16)nIndex );
+@@ -1746,7 +1746,7 @@ void SwXNumberingRules::SetNumberingRuleByIndex(
+ 			const uno::Sequence<beans::PropertyValue>& rProperties, sal_Int32 nIndex)
+ 	throw( uno::RuntimeException, lang::IllegalArgumentException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	DBG_ASSERT( 0 <= nIndex && nIndex < MAXLEVEL, "index out of range" );
+ 
+ 	// the order of the names is important!
+@@ -2466,7 +2466,7 @@ SwXTextColumns::~SwXTextColumns()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTextColumns::getReferenceValue(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return nReference;
+ }
+ /*-- 16.12.98 14:06:55---------------------------------------------------
+@@ -2474,7 +2474,7 @@ sal_Int32 SwXTextColumns::getReferenceValue(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Int16 SwXTextColumns::getColumnCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return static_cast< sal_Int16>( aTextColumns.getLength() );
+ }
+ /*-- 16.12.98 14:06:55---------------------------------------------------
+@@ -2482,7 +2482,7 @@ sal_Int16 SwXTextColumns::getColumnCount(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextColumns::setColumnCount(sal_Int16 nColumns) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(nColumns <= 0)
+ 		throw uno::RuntimeException();
+     bIsAutomaticWidth = sal_True;
+@@ -2505,7 +2505,7 @@ void SwXTextColumns::setColumnCount(sal_Int16 nColumns) throw( uno::RuntimeExcep
+   -----------------------------------------------------------------------*/
+ uno::Sequence< TextColumn > SwXTextColumns::getColumns(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aTextColumns;
+ }
+ /*-- 16.12.98 14:06:56---------------------------------------------------
+@@ -2514,7 +2514,7 @@ uno::Sequence< TextColumn > SwXTextColumns::getColumns(void) throw( uno::Runtime
+ void SwXTextColumns::setColumns(const uno::Sequence< TextColumn >& rColumns)
+ 			throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nReferenceTemp = 0;
+ 	const TextColumn* prCols = rColumns.getConstArray();
+ 	for(long i = 0; i < rColumns.getLength(); i++)
+diff --git a/sw/source/core/unocore/unosrch.cxx b/sw/source/core/unocore/unosrch.cxx
+index c66f521..032ec85 100644
+--- sw/source/core/unocore/unosrch.cxx
++++ sw/source/core/unocore/unosrch.cxx
+@@ -51,8 +51,8 @@
+ #include <unoobj.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -518,7 +518,7 @@ sal_Int64 SAL_CALL SwXTextSearch::getSomething( const uno::Sequence< sal_Int8 >&
+   -----------------------------------------------------------------------*/
+ OUString SwXTextSearch::getSearchString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sSearchText;
+ }
+ /*-- 14.12.98 13:07:12---------------------------------------------------
+@@ -527,7 +527,7 @@ OUString SwXTextSearch::getSearchString(void) throw( uno::RuntimeException )
+ void SwXTextSearch::setSearchString(const OUString& rString)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sSearchText = String(rString);
+ }
+ /*-- 14.12.98 13:07:12---------------------------------------------------
+@@ -535,7 +535,7 @@ void SwXTextSearch::setSearchString(const OUString& rString)
+   -----------------------------------------------------------------------*/
+ OUString SwXTextSearch::getReplaceString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sReplaceText;
+ }
+ /*-- 14.12.98 13:07:12---------------------------------------------------
+@@ -543,7 +543,7 @@ OUString SwXTextSearch::getReplaceString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextSearch::setReplaceString(const OUString& rReplaceString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sReplaceText = String(rReplaceString);
+ }
+ /*-- 14.12.98 13:07:13---------------------------------------------------
+@@ -561,7 +561,7 @@ void SwXTextSearch::setPropertyValue(const OUString& rPropertyName, const uno::A
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+ 		lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 												_pMap, rPropertyName);
+ 	if(pMap)
+@@ -596,7 +596,7 @@ void SwXTextSearch::setPropertyValue(const OUString& rPropertyName, const uno::A
+   -----------------------------------------------------------------------*/
+ uno::Any SwXTextSearch::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -664,7 +664,7 @@ void SwXTextSearch::removeVetoableChangeListener(const OUString& PropertyName, c
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextSearch::getValueSearch(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return bIsValueSearch;
+ }
+ /*-- 14.12.98 13:07:15---------------------------------------------------
+@@ -672,7 +672,7 @@ sal_Bool SwXTextSearch::getValueSearch(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextSearch::setValueSearch(sal_Bool ValueSearch_) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	bIsValueSearch = ValueSearch_;
+ }
+ /*-- 14.12.98 13:07:15---------------------------------------------------
+diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
+index bb04acf..33cf063 100644
+--- sw/source/core/unocore/unostyle.cxx
++++ sw/source/core/unocore/unostyle.cxx
+@@ -41,8 +41,8 @@
+ #include <hintids.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -356,7 +356,7 @@ uno::Any SAL_CALL SwXStyleFamilies::getByName(const OUString& Name)
+         lang::WrappedTargetException,
+         uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ // der Index kommt aus const unsigned short aStyleByIndex[] =
+     uno::Any aRet;
+     if(!IsValid())
+@@ -416,7 +416,7 @@ sal_Int32 SwXStyleFamilies::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXStyleFamilies::getByIndex(sal_Int32 nIndex)
+     throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     if(nIndex < 0 || nIndex >= STYLE_FAMILY_COUNT)
+         throw lang::IndexOutOfBoundsException();
+@@ -506,7 +506,7 @@ void SwXStyleFamilies::loadStylesFromURL(const OUString& rURL,
+     const uno::Sequence< beans::PropertyValue >& aOptions)
+     throw( io::IOException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool    bLoadStyleText = sal_True;
+     sal_Bool    LoadStyleFrame = sal_True;
+     sal_Bool    bLoadStylePage = sal_True;
+@@ -556,7 +556,7 @@ void SwXStyleFamilies::loadStylesFromURL(const OUString& rURL,
+ uno::Sequence< beans::PropertyValue > SwXStyleFamilies::getStyleLoaderOptions(void)
+         throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< beans::PropertyValue > aSeq(5);
+     beans::PropertyValue* pArray = aSeq.getArray();
+     uno::Any aVal;
+@@ -776,7 +776,7 @@ sal_Int32 lcl_GetCountOrName ( const SwDoc &rDoc, SfxStyleFamily eFamily, String
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXStyleFamily::getCount(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return lcl_GetCountOrName ( *pDocShell->GetDoc(), eFamily, NULL );
+ }
+ /*-- 16.12.98 16:03:57---------------------------------------------------
+@@ -785,7 +785,7 @@ sal_Int32 SwXStyleFamily::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXStyleFamily::getByIndex(sal_Int32 nTempIndex)
+     throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+ 	if ( nTempIndex >= 0 && nTempIndex < USHRT_MAX )
+ 	{
+@@ -921,7 +921,7 @@ uno::Any SwXStyleFamily::getByIndex(sal_Int32 nTempIndex)
+ uno::Any SwXStyleFamily::getByName(const OUString& rName)
+     throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     String sStyleName;
+ 	SwStyleNameMapper::FillUIName(rName, sStyleName, lcl_GetSwEnumFromSfxEnum ( eFamily ), sal_True );
+@@ -955,7 +955,7 @@ uno::Any SwXStyleFamily::getByName(const OUString& rName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXStyleFamily::getElementNames(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< OUString > aRet;
+     if(pBasePool)
+     {
+@@ -980,7 +980,7 @@ uno::Sequence< OUString > SwXStyleFamily::getElementNames(void) throw( uno::Runt
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXStyleFamily::hasByName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool bRet = sal_False;
+     if(pBasePool)
+     {
+@@ -1018,7 +1018,7 @@ sal_Bool SwXStyleFamily::hasElements(void) throw( uno::RuntimeException )
+ void SwXStyleFamily::insertByName(const OUString& rName, const uno::Any& rElement)
+         throw( lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         String sStyleName;
+@@ -1084,7 +1084,7 @@ void SwXStyleFamily::insertByName(const OUString& rName, const uno::Any& rElemen
+ void SwXStyleFamily::replaceByName(const OUString& rName, const uno::Any& rElement)
+     throw( lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily);
+@@ -1118,7 +1118,7 @@ void SwXStyleFamily::replaceByName(const OUString& rName, const uno::Any& rEleme
+   -----------------------------------------------------------------------*/
+ void SwXStyleFamily::removeByName(const OUString& rName) throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily, SFXSTYLEBIT_ALL );
+@@ -1495,7 +1495,7 @@ void SwXStyle::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ }
+ OUString SwXStyle::getName(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String aString;
+     if(pBasePool)
+     {
+@@ -1515,7 +1515,7 @@ OUString SwXStyle::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXStyle::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily, SFXSTYLEBIT_ALL );
+@@ -1540,7 +1540,7 @@ void SwXStyle::setName(const OUString& rName) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXStyle::isUserDefined(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool bRet = sal_False;
+     if(pBasePool)
+     {
+@@ -1559,7 +1559,7 @@ sal_Bool SwXStyle::isUserDefined(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXStyle::isInUse(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Bool bRet = sal_False;
+     if(pBasePool)
+     {
+@@ -1577,7 +1577,7 @@ sal_Bool SwXStyle::isInUse(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ OUString SwXStyle::getParentStyle(void) throw( uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String aString;
+     if(pBasePool)
+     {
+@@ -1599,7 +1599,7 @@ OUString SwXStyle::getParentStyle(void) throw( uno::RuntimeException )
+ void SwXStyle::setParentStyle(const OUString& rParentStyle)
+             throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     String sParentStyle;
+ 	SwStyleNameMapper::FillUIName(rParentStyle, sParentStyle, lcl_GetSwEnumFromSfxEnum ( eFamily ), sal_True );
+     if(pBasePool)
+@@ -2303,7 +2303,7 @@ void SwXStyle::setPropertyValues(
+         throw(beans::PropertyVetoException, lang::IllegalArgumentException,
+                 lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // workaround for bad designed API
+     try
+@@ -2606,7 +2606,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::GetPropertyValues_Impl(
+ uno::Sequence< uno::Any > SwXStyle::getPropertyValues(
+     const uno::Sequence< OUString >& rPropertyNames ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Any > aValues;
+ 
+     // workaround for bad designed API
+@@ -2660,7 +2660,7 @@ void SwXStyle::setPropertyValue(const OUString& rPropertyName, const uno::Any& r
+         lang::WrappedTargetException,
+         uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const uno::Sequence<OUString> aProperties(&rPropertyName, 1);
+     const uno::Sequence<uno::Any> aValues(&rValue, 1);
+     SetPropertyValues_Impl( aProperties, aValues );
+@@ -2671,7 +2671,7 @@ void SwXStyle::setPropertyValue(const OUString& rPropertyName, const uno::Any& r
+ uno::Any SwXStyle::getPropertyValue(const OUString& rPropertyName)
+     throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const uno::Sequence<OUString> aProperties(&rPropertyName, 1);
+     return GetPropertyValues_Impl(aProperties).getConstArray()[0];
+ 
+@@ -2719,7 +2719,7 @@ void SwXStyle::removeVetoableChangeListener(const OUString& PropertyName,
+ beans::PropertyState SwXStyle::getPropertyState(const OUString& rPropertyName)
+         throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Sequence< OUString > aNames(1);
+     OUString* pNames = aNames.getArray();
+@@ -2734,7 +2734,7 @@ uno::Sequence< beans::PropertyState > SwXStyle::getPropertyStates(
+     const uno::Sequence< OUString >& rPropertyNames)
+         throw( beans::UnknownPropertyException, uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< beans::PropertyState > aRet(rPropertyNames.getLength());
+     beans::PropertyState* pStates = aRet.getArray();
+     if(pBasePool)
+@@ -2842,7 +2842,7 @@ void SwXStyle::setPropertyToDefault(const OUString& rPropertyName)
+ void SAL_CALL SwXStyle::setPropertiesToDefault( const uno::Sequence< OUString >& aPropertyNames )
+ 	throw (beans::UnknownPropertyException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFmt *pTargetFmt = 0;
+ 
+     if(pBasePool)
+@@ -2913,7 +2913,7 @@ void SAL_CALL SwXStyle::setPropertiesToDefault( const uno::Sequence< OUString >&
+ void SAL_CALL SwXStyle::setAllPropertiesToDefault(  )
+ 	throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pBasePool)
+     {
+         pBasePool->SetSearchMask(eFamily);
+@@ -3031,7 +3031,7 @@ void SAL_CALL SwXStyle::setAllPropertiesToDefault(  )
+ uno::Sequence< uno::Any > SAL_CALL SwXStyle::getPropertyDefaults( const uno::Sequence< OUString >& aPropertyNames )
+ 	throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nCount = aPropertyNames.getLength();
+ 	uno::Sequence < uno::Any > aRet ( nCount );
+ 	if ( nCount )
+@@ -3387,7 +3387,7 @@ void SwXPageStyle::setPropertyValues(
+     const uno::Sequence< uno::Any >& rValues )
+         throw(beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // workaround for bad designed API
+     try
+@@ -3624,7 +3624,7 @@ uno::Sequence< uno::Any > SwXPageStyle::getPropertyValues(
+     const uno::Sequence< OUString >& rPropertyNames )
+         throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Any > aValues;
+ 
+     // workaround for bad designed API
+@@ -3649,7 +3649,7 @@ uno::Sequence< uno::Any > SwXPageStyle::getPropertyValues(
+ uno::Any SwXPageStyle::getPropertyValue(const OUString& rPropertyName) throw(
+     beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const uno::Sequence<OUString> aProperties(&rPropertyName, 1);
+     return GetPropertyValues_Impl(aProperties).getConstArray()[0];
+ }
+@@ -3663,7 +3663,7 @@ void SwXPageStyle::setPropertyValue(const OUString& rPropertyName, const uno::An
+         lang::WrappedTargetException,
+         uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const uno::Sequence<OUString> aProperties(&rPropertyName, 1);
+     const uno::Sequence<uno::Any> aValues(&rValue, 1);
+     SetPropertyValues_Impl( aProperties, aValues );
+@@ -3736,7 +3736,7 @@ uno::Any SwXAutoStyles::getByIndex(sal_Int32 nIndex)
+         throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException,
+                 uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Any aRet;
+     if(nIndex < 0 || nIndex >= AUTOSTYLE_FAMILY_COUNT)
+         throw lang::IndexOutOfBoundsException();
+@@ -4122,7 +4122,7 @@ uno::Any SwXAutoStyle::getPropertyValue( const OUString& rPropertyName )
+            lang::WrappedTargetException,
+            uno::RuntimeException )
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const uno::Sequence<OUString> aProperties(&rPropertyName, 1);
+     return GetPropertyValues_Impl(aProperties).getConstArray()[0];
+ }
+@@ -4235,7 +4235,7 @@ uno::Sequence< uno::Any > SwXAutoStyle::getPropertyValues (
+         const uno::Sequence< ::rtl::OUString >& rPropertyNames )
+             throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< uno::Any > aValues;
+ 
+     // workaround for bad designed API
+@@ -4291,7 +4291,7 @@ beans::PropertyState SwXAutoStyle::getPropertyState( const OUString& rPropertyNa
+     throw( beans::UnknownPropertyException,
+            uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Sequence< OUString > aNames(1);
+     OUString* pNames = aNames.getArray();
+@@ -4330,7 +4330,7 @@ uno::Sequence< beans::PropertyState > SwXAutoStyle::getPropertyStates(
+ {
+     if( !pSet.get() )
+         throw uno::RuntimeException();
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Sequence< beans::PropertyState > aRet(rPropertyNames.getLength());
+     beans::PropertyState* pStates = aRet.getArray();
+     const OUString* pNames = rPropertyNames.getConstArray();
+@@ -4393,7 +4393,7 @@ uno::Sequence< beans::PropertyValue > SwXAutoStyle::getProperties() throw (uno::
+ {
+     if( !pSet.get() )
+         throw uno::RuntimeException();
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     std::vector< beans::PropertyValue > aPropertyVector;
+ 
+     sal_Int8 nPropSetId;
+diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
+index c730bdc..32bf09c 100644
+--- sw/source/core/unocore/unotbl.cxx
++++ sw/source/core/unocore/unotbl.cxx
+@@ -201,8 +201,8 @@
+ #ifndef _SWUNDO_HXX
+ #include <swundo.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SWSTYLENAMEMAPPER_HXX
+ #include <SwStyleNameMapper.hxx>
+@@ -988,7 +988,7 @@ uno::Sequence< uno::Type > SAL_CALL SwXCell::getTypes(  ) throw(uno::RuntimeExce
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SAL_CALL SwXCell::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -1063,7 +1063,7 @@ sal_Bool	SwXCell::IsValid()
+   -----------------------------------------------------------------------*/
+ OUString SwXCell::getFormula(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sRet;
+ 	if(IsValid())
+ 	{
+@@ -1079,7 +1079,7 @@ OUString SwXCell::getFormula(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXCell::setFormula(const OUString& rFormula) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		// Der Text mu? zunaechst (vielleicht) geloescht werden
+@@ -1112,7 +1112,7 @@ void SwXCell::setFormula(const OUString& rFormula) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ double SwXCell::getValue(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     return lcl_getValue( *this );
+ }
+ /*-- 11.12.98 10:56:26---------------------------------------------------
+@@ -1120,7 +1120,7 @@ double SwXCell::getValue(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXCell::setValue(double rValue) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     lcl_setValue( *this, rValue );
+ }
+ /*-- 11.12.98 10:56:26---------------------------------------------------
+@@ -1128,7 +1128,7 @@ void SwXCell::setValue(double rValue) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ table::CellContentType SwXCell::getType(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	table::CellContentType nRes = table::CellContentType_EMPTY;
+ 	sal_uInt32 nNdPos = pBox->IsFormulaOrValueBox();
+@@ -1148,7 +1148,7 @@ table::CellContentType SwXCell::getType(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ void SwXCell::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     lcl_setString( *this, aString );
+ }
+ 
+@@ -1157,7 +1157,7 @@ void SwXCell::setString(const OUString& aString) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXCell::getError(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString sContent = getString();
+ 	return sContent.equals(ViewShell::GetShellRes()->aCalc_Error);
+ }
+@@ -1166,7 +1166,7 @@ sal_Int32 SwXCell::getError(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXCell::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  	aRef;
+ 	if(pStartNode || IsValid())
+ 	{
+@@ -1192,7 +1192,7 @@ uno::Reference< text::XTextCursor >  SwXCell::createTextCursor(void) throw( uno:
+ uno::Reference< text::XTextCursor >  SwXCell::createTextCursorByRange(const uno::Reference< text::XTextRange > & xTextPosition)
+ 														throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	SwUnoInternalPaM aPam(*GetDoc());
+ 	if((pStartNode || IsValid()) && SwXTextRange::XTextRangeToSwPaM(aPam, xTextPosition))
+@@ -1223,7 +1223,7 @@ uno::Reference< beans::XPropertySetInfo >  SwXCell::getPropertySetInfo(void) thr
+   -----------------------------------------------------------------------*/
+ void SwXCell::setPropertyValue(const OUString& rPropertyName, const uno::Any& aValue) throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		SwFrmFmt* pBoxFmt = pBox->ClaimFrmFmt();
+@@ -1238,7 +1238,7 @@ void SwXCell::setPropertyValue(const OUString& rPropertyName, const uno::Any& aV
+ uno::Any SwXCell::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	if(IsValid())
+ 	{
+@@ -1309,7 +1309,7 @@ void SwXCell::removeVetoableChangeListener(const OUString& PropertyName, const u
+   -----------------------------------------------------------------------*/
+ uno::Reference< container::XEnumeration >  SwXCell::createEnumeration(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	if(IsValid())
+ 	{
+@@ -1495,7 +1495,7 @@ void SwXTextTableRow::setPropertyValue(const OUString& rPropertyName,
+ 	const uno::Any& aValue)
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -1556,7 +1556,7 @@ void SwXTextTableRow::setPropertyValue(const OUString& rPropertyName,
+   -----------------------------------------------------------------------*/
+ uno::Any SwXTextTableRow::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -1732,7 +1732,7 @@ SwXTextTableCursor::SwXTextTableCursor(SwFrmFmt& rTableFmt,	const SwTableCursor*
+   -----------------------------------------------------------------------*/
+ SwXTextTableCursor::~SwXTextTableCursor()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 		delete pUnoCrsr;
+@@ -1742,7 +1742,7 @@ SwXTextTableCursor::~SwXTextTableCursor()
+   -----------------------------------------------------------------------*/
+ OUString SwXTextTableCursor::getRangeName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString aRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 
+@@ -1785,7 +1785,7 @@ OUString SwXTextTableCursor::getRangeName(void) throw( uno::RuntimeException )
+ sal_Bool SwXTextTableCursor::gotoCellByName(const OUString& CellName, sal_Bool Expand)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1802,7 +1802,7 @@ sal_Bool SwXTextTableCursor::gotoCellByName(const OUString& CellName, sal_Bool E
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goLeft(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1818,7 +1818,7 @@ sal_Bool SwXTextTableCursor::goLeft(sal_Int16 Count, sal_Bool Expand) throw( uno
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goRight(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1834,7 +1834,7 @@ sal_Bool SwXTextTableCursor::goRight(sal_Int16 Count, sal_Bool Expand) throw( un
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goUp(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1850,7 +1850,7 @@ sal_Bool SwXTextTableCursor::goUp(sal_Int16 Count, sal_Bool Expand) throw( uno::
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::goDown(sal_Int16 Count, sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1866,7 +1866,7 @@ sal_Bool SwXTextTableCursor::goDown(sal_Int16 Count, sal_Bool Expand) throw( uno
+   -----------------------------------------------------------------------*/
+ void SwXTextTableCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1880,7 +1880,7 @@ void SwXTextTableCursor::gotoStart(sal_Bool Expand) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ void SwXTextTableCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -1894,7 +1894,7 @@ void SwXTextTableCursor::gotoEnd(sal_Bool Expand) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::mergeRange(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -1925,7 +1925,7 @@ sal_Bool SwXTextTableCursor::mergeRange(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextTableCursor::splitRange(sal_Int16 Count, sal_Bool Horizontal) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (Count <= 0)
+         throw uno::RuntimeException( OUString( RTL_CONSTASCII_USTRINGPARAM( "Illegal first argument: needs to be > 0" ) ), static_cast < cppu::OWeakObject * > ( this ) );
+ 	sal_Bool bRet = sal_False;
+@@ -1971,7 +1971,7 @@ void SwXTextTableCursor::setPropertyValue(const OUString& rPropertyName,
+  					lang::WrappedTargetException,
+  					uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+ 	{
+@@ -2029,7 +2029,7 @@ void SwXTextTableCursor::setPropertyValue(const OUString& rPropertyName,
+ uno::Any SwXTextTableCursor::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwUnoCrsr* pUnoCrsr = GetCrsr();
+ 	if(pUnoCrsr)
+@@ -2488,7 +2488,7 @@ void SwXTextTable::initialize(sal_Int32 nR, sal_Int32 nC) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ uno::Reference< table::XTableRows >  SwXTextTable::getRows(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XTableRows >  xRet;
+ 	if (SwFrmFmt* pFmt = GetFrmFmt())
+     {
+@@ -2507,7 +2507,7 @@ uno::Reference< table::XTableRows >  SwXTextTable::getRows(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ uno::Reference< table::XTableColumns >  SwXTextTable::getColumns(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XTableColumns >  xRet;
+ 	if (SwFrmFmt* pFmt = GetFrmFmt())
+     {
+@@ -2526,7 +2526,7 @@ uno::Reference< table::XTableColumns >  SwXTextTable::getColumns(void) throw( un
+   -----------------------------------------------------------------------*/
+ uno::Reference< table::XCell >  SwXTextTable::getCellByName(const OUString& CellName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCell >  xRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2548,7 +2548,7 @@ uno::Reference< table::XCell >  SwXTextTable::getCellByName(const OUString& Cell
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXTextTable::getCellNames(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2576,7 +2576,7 @@ uno::Sequence< OUString > SwXTextTable::getCellNames(void) throw( uno::RuntimeEx
+ uno::Reference< text::XTextTableCursor >  SwXTextTable::createCursorByCellName(const OUString& CellName)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextTableCursor >  xRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2695,7 +2695,7 @@ void SwXTextTable::attachToRange(const uno::Reference< text::XTextRange > & xTex
+ void SwXTextTable::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ 		throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     attachToRange( xTextRange );
+ }
+ /*-- 11.12.98 12:42:46---------------------------------------------------
+@@ -2704,7 +2704,7 @@ void SwXTextTable::attach(const uno::Reference< text::XTextRange > & xTextRange)
+ uno::Reference< text::XTextRange >  SwXTextTable::getAnchor(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(!pFmt)
+ 		throw uno::RuntimeException();
+@@ -2716,7 +2716,7 @@ uno::Reference< text::XTextRange >  SwXTextTable::getAnchor(void)
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::dispose(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -2752,7 +2752,7 @@ void SwXTextTable::removeEventListener(const uno::Reference< lang::XEventListene
+ uno::Reference< table::XCell >  SwXTextTable::getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCell >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	// Sheet interessiert nicht
+@@ -2775,7 +2775,7 @@ uno::Reference< table::XCellRange >  SwXTextTable::GetRangeByName(SwFrmFmt* pFmt
+ 					const String& rTLName, const String& rBRName,
+ 					SwRangeDescriptor& rDesc)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRef;
+ 	String sTLName(rTLName);
+ 	String sBRName(rBRName);
+@@ -2814,7 +2814,7 @@ uno::Reference< table::XCellRange >  SwXTextTable::getCellRangeByPosition(sal_In
+ 				sal_Int32 nRight, sal_Int32 nBottom)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt && nRight < USHRT_MAX && nBottom < USHRT_MAX &&
+@@ -2848,7 +2848,7 @@ uno::Reference< table::XCellRange >  SwXTextTable::getCellRangeByPosition(sal_In
+ uno::Reference< table::XCellRange >  SwXTextTable::getCellRangeByName(const OUString& aRange)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRef;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -2888,7 +2888,7 @@ uno::Sequence< uno::Sequence< uno::Any > > SAL_CALL SwXTextTable::getDataArray()
+ {
+     // see SwXTextTable::getData(...) also
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -2951,7 +2951,7 @@ void SAL_CALL SwXTextTable::setDataArray(
+ {
+     // see SwXTextTable::setData(...) also
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     sal_Int16 nRowCount = getRowCount();
+     sal_Int16 nColCount = getColumnCount();
+ 
+@@ -3018,7 +3018,7 @@ void SAL_CALL SwXTextTable::setDataArray(
+ uno::Sequence< uno::Sequence< double > > SwXTextTable::getData(void)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -3062,7 +3062,7 @@ uno::Sequence< uno::Sequence< double > > SwXTextTable::getData(void)
+ void SwXTextTable::setData(const uno::Sequence< uno::Sequence< double > >& rData)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	sal_Bool bChanged = sal_False;
+@@ -3111,7 +3111,7 @@ void SwXTextTable::setData(const uno::Sequence< uno::Sequence< double > >& rData
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXTextTable::getRowDescriptions(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	if(!nRowCount)
+ 	{
+@@ -3153,7 +3153,7 @@ uno::Sequence< OUString > SwXTextTable::getRowDescriptions(void) throw( uno::Run
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -3193,7 +3193,7 @@ void SwXTextTable::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc)
+ uno::Sequence< OUString > SwXTextTable::getColumnDescriptions(void)
+ 												throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nColCount)
+ 	{
+@@ -3235,7 +3235,7 @@ uno::Sequence< OUString > SwXTextTable::getColumnDescriptions(void)
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::setColumnDescriptions(const uno::Sequence< OUString >& rColumnDesc) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nColCount)
+ 	{
+@@ -3315,7 +3315,7 @@ double SwXTextTable::getNotANumber(void) throw( uno::RuntimeException )
+ uno::Sequence< beans::PropertyValue > SwXTextTable::createSortDescriptor(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXTextCursor::createSortDescriptor(sal_True);
+ }
+ /*-- 11.12.98 12:42:49---------------------------------------------------
+@@ -3324,7 +3324,7 @@ uno::Sequence< beans::PropertyValue > SwXTextTable::createSortDescriptor(void)
+ void SwXTextTable::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSortOptions aSortOpt;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt &&
+@@ -3347,7 +3347,7 @@ void SwXTextTable::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::autoFormat(const OUString& aName) throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -3393,7 +3393,7 @@ void SwXTextTable::setPropertyValue(const OUString& rPropertyName,
+ 		throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+ 				lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(!aValue.hasValue())
+ 		throw lang::IllegalArgumentException();
+@@ -3548,7 +3548,7 @@ void SwXTextTable::setPropertyValue(const OUString& rPropertyName,
+   -----------------------------------------------------------------------*/
+ uno::Any SwXTextTable::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -3724,7 +3724,7 @@ void SwXTextTable::removeVetoableChangeListener(const OUString& PropertyName, co
+   -----------------------------------------------------------------------*/
+ OUString SwXTextTable::getName(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(!pFmt && !bIsDescriptor)
+@@ -3742,7 +3742,7 @@ OUString SwXTextTable::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextTable::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	String sNewTblName(rName);
+ 	if(!pFmt && !bIsDescriptor ||
+@@ -3802,7 +3802,7 @@ void SwXTextTable::setName(const OUString& rName) throw( uno::RuntimeException )
+ --------------------------------------------------*/
+ sal_uInt16 SwXTextTable::getRowCount(void)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRet = 0;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -3820,7 +3820,7 @@ sal_uInt16 SwXTextTable::getRowCount(void)
+ --------------------------------------------------*/
+ sal_uInt16 SwXTextTable::getColumnCount(void)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	sal_Int16 nRet = 0;
+ 	if(pFmt)
+@@ -3992,7 +3992,7 @@ SwXCellRange::SwXCellRange(SwUnoCrsr* pCrsr, SwFrmFmt& rFrmFmt,
+   -----------------------------------------------------------------------*/
+ SwXCellRange::~SwXCellRange()
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     delete pTblCrsr;
+ }
+ /*-- 11.12.98 14:27:34---------------------------------------------------
+@@ -4001,7 +4001,7 @@ SwXCellRange::~SwXCellRange()
+ uno::Reference< table::XCell >  SwXCellRange::getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCell >  aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -4026,7 +4026,7 @@ uno::Reference< table::XCellRange >  SwXCellRange::getCellRangeByPosition(
+ 		sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom)
+ 	throw( uno::RuntimeException, lang::IndexOutOfBoundsException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< table::XCellRange >  aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt && getColumnCount() > nRight && getRowCount() > nBottom &&
+@@ -4083,7 +4083,7 @@ uno::Reference< table::XCellRange >  SwXCellRange::getCellRangeByPosition(
+ uno::Reference< table::XCellRange >  SwXCellRange::getCellRangeByName(const OUString& rRange)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sRange(rRange);
+ 	String sTLName(sRange.GetToken(0, ':'));
+ 	String sBRName(sRange.GetToken(1, ':'));
+@@ -4113,7 +4113,7 @@ void SwXCellRange::setPropertyValue(const OUString& rPropertyName,
+ 		beans::PropertyVetoException, lang::IllegalArgumentException,
+ 			lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -4227,7 +4227,7 @@ void SwXCellRange::setPropertyValue(const OUString& rPropertyName,
+   -----------------------------------------------------------------------*/
+ uno::Any SwXCellRange::getPropertyValue(const OUString& rPropertyName) throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -4347,7 +4347,7 @@ void SwXCellRange::GetDataSequence(
+                                                 // from 0 even if the cell is formatted to text
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // compare to SwXCellRange::getDataArray (note different return types though)
+ 
+@@ -4629,7 +4629,7 @@ uno::Sequence< uno::Sequence< uno::Any > > SAL_CALL SwXCellRange::getDataArray()
+     // see SwXCellRange::getData also
+     // also see SwXCellRange::GetDataSequence
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	//
+@@ -4693,7 +4693,7 @@ void SAL_CALL SwXCellRange::setDataArray(
+ {
+     // see SwXCellRange::setData also
+ 
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -4758,7 +4758,7 @@ void SAL_CALL SwXCellRange::setDataArray(
+   -----------------------------------------------------------------------*/
+ uno::Sequence< uno::Sequence< double > > SwXCellRange::getData(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	//
+@@ -4800,7 +4800,7 @@ uno::Sequence< uno::Sequence< double > > SwXCellRange::getData(void) throw( uno:
+ void SwXCellRange::setData(const uno::Sequence< uno::Sequence< double > >& rData)
+ 												throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nRowCount || !nColCount)
+@@ -4846,7 +4846,7 @@ void SwXCellRange::setData(const uno::Sequence< uno::Sequence< double > >& rData
+ uno::Sequence< OUString > SwXCellRange::getRowDescriptions(void)
+ 											throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nRowCount = getRowCount();
+ 	if(!nRowCount)
+ 	{
+@@ -4889,7 +4889,7 @@ uno::Sequence< OUString > SwXCellRange::getRowDescriptions(void)
+ void SwXCellRange::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc)
+ 													throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+ 	{
+@@ -4927,7 +4927,7 @@ void SwXCellRange::setRowDescriptions(const uno::Sequence< OUString >& rRowDesc)
+ uno::Sequence< OUString > SwXCellRange::getColumnDescriptions(void)
+ 										throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	if(!nColCount)
+ 	{
+@@ -4970,7 +4970,7 @@ uno::Sequence< OUString > SwXCellRange::getColumnDescriptions(void)
+ void SwXCellRange::setColumnDescriptions(const uno::Sequence< OUString >& ColumnDesc)
+ 														throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int16 nColCount = getColumnCount();
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt)
+@@ -5037,7 +5037,7 @@ double SwXCellRange::getNotANumber(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Sequence< beans::PropertyValue > SwXCellRange::createSortDescriptor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return SwXTextCursor::createSortDescriptor(sal_True);
+ }
+ /*-- 11.12.98 14:27:39---------------------------------------------------
+@@ -5046,7 +5046,7 @@ uno::Sequence< beans::PropertyValue > SwXCellRange::createSortDescriptor(void) t
+ void SAL_CALL SwXCellRange::sort(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwSortOptions aSortOpt;
+ 	SwFrmFmt* pFmt = GetFrmFmt();
+ 	if(pFmt &&
+@@ -5149,7 +5149,7 @@ SwXTableRows::~SwXTableRows()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTableRows::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+@@ -5167,7 +5167,7 @@ sal_Int32 SwXTableRows::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTableRows::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt || nIndex < 0 )
+@@ -5212,7 +5212,7 @@ uno::Type SAL_CALL SwXTableRows::getElementType(void) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTableRows::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+ 		throw uno::RuntimeException();
+@@ -5224,7 +5224,7 @@ sal_Bool SwXTableRows::hasElements(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTableRows::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (nCount == 0)
+         return;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+@@ -5280,7 +5280,7 @@ void SwXTableRows::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno:
+   -----------------------------------------------------------------------*/
+ void SwXTableRows::removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if (nCount == 0)
+         return;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+@@ -5389,7 +5389,7 @@ SwXTableColumns::~SwXTableColumns()
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXTableColumns::getCount(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Int32 nRet = 0;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+@@ -5412,7 +5412,7 @@ sal_Int32 SwXTableColumns::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXTableColumns::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< uno::XInterface >  xRet;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+@@ -5446,7 +5446,7 @@ uno::Type SAL_CALL SwXTableColumns::getElementType(void) throw( uno::RuntimeExce
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTableColumns::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+ 	if(!pFrmFmt)
+ 		throw uno::RuntimeException();
+@@ -5457,7 +5457,7 @@ sal_Bool SwXTableColumns::hasElements(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTableColumns::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if (nCount == 0)
+ 		return;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+@@ -5514,7 +5514,7 @@ void SwXTableColumns::insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( u
+   -----------------------------------------------------------------------*/
+ void SwXTableColumns::removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if (nCount == 0)
+ 		return;
+ 	SwFrmFmt* pFrmFmt = GetFrmFmt();
+diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
+index 64c299c..f5eb1f9 100644
+--- sw/source/core/unocore/unotext.cxx
++++ sw/source/core/unocore/unotext.cxx
+@@ -47,8 +47,8 @@
+ #ifndef _CMDID_H
+ #include <cmdid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -298,7 +298,7 @@ void SwXText::insertString(const uno::Reference< text::XTextRange > & xTextRange
+ 								const OUString& aString, sal_Bool bAbsorb)
+ 								throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetDoc() && xTextRange.is())
+ 	{
+ 		uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
+@@ -380,7 +380,7 @@ void SwXText::insertControlCharacter(const uno::Reference< text::XTextRange > &
+ 				sal_Int16 nControlCharacter, sal_Bool bAbsorb)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(GetDoc() && xTextRange.is())
+ 	{
+ 		SwUnoInternalPaM aPam(*GetDoc());
+@@ -479,7 +479,7 @@ void SwXText::insertTextContent(const uno::Reference< text::XTextRange > & xRang
+ 				const uno::Reference< text::XTextContent > & xContent, sal_Bool bAbsorb)
+ 				throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// erstmal testen, ob der Range an der richtigen Stelle ist und dann
+ 	// am Sw-Content attachToRange aufrufen
+ 	if(!GetDoc())
+@@ -734,7 +734,7 @@ void SwXText::insertTextContentBefore(
+ 	const uno::Reference< text::XTextContent>& xSuccessor)
+ 		throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 	{
+ 		uno::RuntimeException aRuntime;
+@@ -789,7 +789,7 @@ void SwXText::insertTextContentAfter(
+ 	const uno::Reference< text::XTextContent>& xPredecessor)
+ 		throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 		throw uno::RuntimeException();
+ 	SwXParagraph* pPara = SwXParagraph::GetImplementation(xNewContent);
+@@ -836,7 +836,7 @@ void SwXText::removeTextContentBefore(
+ 	const uno::Reference< text::XTextContent>& xSuccessor)
+ 		throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 	{
+ 		uno::RuntimeException aRuntime;
+@@ -883,7 +883,7 @@ void SwXText::removeTextContentBefore(
+ void SwXText::removeTextContentAfter(const uno::Reference< text::XTextContent>& xPredecessor)
+ 		throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!GetDoc())
+ 	{
+ 		uno::RuntimeException aRuntime;
+@@ -931,7 +931,7 @@ void SwXText::removeTextContentAfter(const uno::Reference< text::XTextContent>&
+ void SwXText::removeTextContent(const uno::Reference< text::XTextContent > & xContent)
+ 	throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xContent.is())
+ 	{
+ 		uno::RuntimeException aRuntime;
+@@ -947,7 +947,7 @@ void SwXText::removeTextContent(const uno::Reference< text::XTextContent > & xCo
+ uno::Reference< text::XText >  SwXText::getText(void)
+ 		throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XText >  xRet = (SwXText*)this;
+ 	return xRet;
+ 
+@@ -957,7 +957,7 @@ uno::Reference< text::XText >  SwXText::getText(void)
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXText::getStart(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  xRef = createCursor();
+ 	if(!xRef.is())
+ 	{
+@@ -974,7 +974,7 @@ uno::Reference< text::XTextRange >  SwXText::getStart(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXText::getEnd(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  xRef = createCursor();
+ 	if(!xRef.is())
+ 	{
+@@ -993,7 +993,7 @@ uno::Reference< text::XTextRange >  SwXText::getEnd(void) throw( uno::RuntimeExc
+   -----------------------------------------------------------------------*/
+ OUString SwXText::getString(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  xRet = createCursor();
+ 	if(!xRet.is())
+ 	{
+@@ -1012,7 +1012,7 @@ OUString SwXText::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXText::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     const SwStartNode* pStartNode = GetStartNode();
+     if(!pStartNode)
+         throw uno::RuntimeException();
+@@ -1216,7 +1216,7 @@ sal_Int16 SwXText::compareRegionStarts(
+ 	const uno::Reference<text::XTextRange>& xR2)
+ 			throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xR1.is() || !xR2.is())
+ 		throw lang::IllegalArgumentException();
+ 	uno::Reference<text::XTextRange> xStart1 = xR1->getStart();
+@@ -1232,7 +1232,7 @@ sal_Int16 SwXText::compareRegionEnds(
+ 	const uno::Reference<text::XTextRange>& xR2)
+ 					throw(lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!xR1.is() || !xR2.is())
+ 		throw lang::IllegalArgumentException();
+ 	uno::Reference<text::XTextRange> xEnd1 = xR1->getEnd();
+@@ -1269,7 +1269,7 @@ uno::Any SwXText::getPropertyValue(
+         throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+                 uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+     const SfxItemPropertyMap*   pMap = SfxItemPropertyMap::GetByName(
+@@ -1411,7 +1411,7 @@ uno::Reference< text::XTextRange > SwXText::finishOrAppendParagraph(
+             throw (lang::IllegalArgumentException, uno::RuntimeException)
+ 
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+     uno::Reference< text::XTextRange > xRet;
+@@ -1510,7 +1510,7 @@ uno::Reference< text::XTextRange > SwXText::appendTextPortion(
+         const uno::Sequence< beans::PropertyValue > & rCharacterAndParagraphProperties ) 
+             throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+    uno::Reference< text::XTextRange > xRet;
+@@ -1613,7 +1613,7 @@ uno::Reference< text::XTextRange > SwXText::appendTextContent(
+     const uno::Sequence< beans::PropertyValue >& rCharacterAndParagraphProperties ) 
+         throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+     const SwStartNode* pStartNode = GetStartNode();
+@@ -1667,7 +1667,7 @@ uno::Reference< text::XTextContent > SwXText::convertToTextFrame(
+     const uno::Sequence< beans::PropertyValue >& rFrameProperties ) 
+         throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+     uno::Reference< text::XTextContent > xRet;
+@@ -1759,7 +1759,7 @@ uno::Reference< text::XTextTable > SwXText::convertToTable(
+    const uno::Sequence< beans::PropertyValue >& rTableProperties ) 
+         throw (lang::IllegalArgumentException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw  uno::RuntimeException();
+ 
+@@ -2109,7 +2109,7 @@ uno::Sequence< uno::Type > SwXBodyText::getTypes(  ) throw(uno::RuntimeException
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SwXBodyText::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2165,7 +2165,7 @@ uno::Reference< text::XTextCursor >  SwXBodyText::CreateTextCursor(sal_Bool bIgn
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXBodyText::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef = CreateTextCursor(sal_False);
+ 	if(!aRef.is())
+ 	{
+@@ -2181,7 +2181,7 @@ uno::Reference< text::XTextCursor >  SwXBodyText::createTextCursor(void) throw(
+ uno::Reference< text::XTextCursor >  SwXBodyText::createTextCursorByRange(
+ 			const uno::Reference< text::XTextRange > & aTextPosition) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  aRef;
+ 	if(!IsValid())
+ 	{
+@@ -2215,7 +2215,7 @@ uno::Reference< text::XTextCursor >  SwXBodyText::createTextCursorByRange(
+ uno::Reference< container::XEnumeration >  SwXBodyText::createEnumeration(void)
+ 							throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	if(IsValid())
+ 	{
+@@ -2246,7 +2246,7 @@ uno::Type SwXBodyText::getElementType(void) throw( uno::RuntimeException )
+  * --------------------------------------------------*/
+ sal_Bool SwXBodyText::hasElements(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 		return sal_True;
+ 	else
+@@ -2348,7 +2348,7 @@ uno::Sequence< uno::Type > SwXHeadFootText::getTypes(  ) throw(uno::RuntimeExcep
+  ---------------------------------------------------------------------------*/
+ uno::Sequence< sal_Int8 > SwXHeadFootText::getImplementationId(  ) throw(uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static uno::Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -2374,7 +2374,7 @@ uno::Any SwXHeadFootText::queryInterface( const uno::Type& aType ) throw(uno::Ru
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextCursor >  SwXHeadFootText::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  	xRet;
+ 	SwFrmFmt* pHeadFootFmt = GetFmt();
+ 	if(pHeadFootFmt)
+@@ -2427,7 +2427,7 @@ uno::Reference< text::XTextCursor >  SwXHeadFootText::createTextCursor(void) thr
+ uno::Reference< text::XTextCursor >  SwXHeadFootText::createTextCursorByRange(
+ 				const uno::Reference< text::XTextRange > & aTextPosition) throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextCursor >  xRet;
+ 	SwFrmFmt* pHeadFootFmt = GetFmt();
+ 	SwUnoInternalPaM aPam(*GetDoc());
+@@ -2453,7 +2453,7 @@ uno::Reference< text::XTextCursor >  SwXHeadFootText::createTextCursorByRange(
+ uno::Reference< container::XEnumeration >  SwXHeadFootText::createEnumeration(void)
+ 	throw( uno::RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< container::XEnumeration >  aRef;
+ 	//wenn this ungueltig ist, dann kommt die uno::Exception aus createTextCursor()
+ 	SwFrmFmt* pHeadFootFmt = GetFmt();
+diff --git a/sw/source/core/unocore/unotextmarkup.cxx b/sw/source/core/unocore/unotextmarkup.cxx
+index 52c1826..1f66bcc 100644
+--- sw/source/core/unocore/unotextmarkup.cxx
++++ sw/source/core/unocore/unotextmarkup.cxx
+@@ -40,7 +40,7 @@
+ #include <unotextmarkup.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #include <SwSmartTagMgr.hxx>
+ #include <com/sun/star/text/TextMarkupType.hpp>
+@@ -66,7 +66,7 @@ SwXTextMarkup::~SwXTextMarkup()
+ 
+ uno::Reference< container::XStringKeyMap > SAL_CALL SwXTextMarkup::getMarkupInfoContainer() throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Reference< container::XStringKeyMap > xProp = new SwXStringKeyMap;
+     return xProp;
+@@ -74,7 +74,7 @@ uno::Reference< container::XStringKeyMap > SAL_CALL SwXTextMarkup::getMarkupInfo
+ 
+ void SAL_CALL SwXTextMarkup::commitTextMarkup( ::sal_Int32 nType, const ::rtl::OUString & aIdentifier, ::sal_Int32 nStart, ::sal_Int32 nLength, const uno::Reference< container::XStringKeyMap > & xMarkupInfoContainer) throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // paragraph already dead or modified?
+     if ( !mpTxtNode )
+diff --git a/sw/source/filter/xml/XMLRedlineImportHelper.cxx b/sw/source/filter/xml/XMLRedlineImportHelper.cxx
+index e5829da..c316d2a 100644
+--- sw/source/filter/xml/XMLRedlineImportHelper.cxx
++++ sw/source/filter/xml/XMLRedlineImportHelper.cxx
+@@ -77,8 +77,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ 
+@@ -501,7 +501,7 @@ Reference<XTextCursor> XMLRedlineImportHelper::CreateRedlineTextSection(
+ 	Reference<XTextCursor> xReturn;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// get RedlineInfo
+ 	RedlineMapType::iterator aFind = aRedlineMap.find(rId);
+@@ -593,7 +593,7 @@ void XMLRedlineImportHelper::AdjustStartNodeCursor(
+ 	Reference<XTextRange> & rRange)
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     // start + end nodes are treated the same. For either it's
+     // necessary that the target node already exists.
+@@ -633,7 +633,7 @@ void XMLRedlineImportHelper::InsertIntoDocument(RedlineInfo* pRedlineInfo)
+ 	DBG_ASSERT(IsReady(pRedlineInfo), "redline info not complete yet!");
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// Insert the Redline as described by pRedlineInfo into the
+ 	// document.  If we are in insert mode, don't insert any redlines
+diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
+index 5d8fc3e..8594b32 100644
+--- sw/source/filter/xml/xmlexp.cxx
++++ sw/source/filter/xml/xmlexp.cxx
+@@ -150,8 +150,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ // --> OD 2007-03-30 #i73788#
+@@ -286,7 +286,7 @@ sal_uInt32 SwXMLExport::exportDoc( enum XMLTokenEnum eClass )
+ 		return ERR_SWG_WRITE_ERROR;
+ 
+     // from here, we use core interfaces -> lock Solar-Mutex (#91949#)
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	{
+         Reference<XPropertySet> rInfoSet = getExportInfo();
+diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
+index 479841e..fe3c284 100644
+--- sw/source/filter/xml/xmlimp.cxx
++++ sw/source/filter/xml/xmlimp.cxx
+@@ -146,8 +146,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _XMLOFF_XFORMSIMPORT_HXX
+@@ -627,7 +627,7 @@ void SwXMLImport::startDocument( void )
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 
+ 	Reference< XPropertySet > xImportInfo( getImportInfo() );
+@@ -840,7 +840,7 @@ void SwXMLImport::endDocument( void )
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if( pGraphicResolver )
+ 		SvXMLGraphicHelper::Destroy( pGraphicResolver );
+@@ -1098,7 +1098,7 @@ void SwXMLImport::SetViewSettings(const Sequence < PropertyValue > & aViewProps)
+ 		return;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference < XTextDocument > xTextDoc( GetModel(), UNO_QUERY );
+ 	Reference < XText > xText = xTextDoc->getText();
+@@ -1185,7 +1185,7 @@ void SwXMLImport::SetViewSettings(const Sequence < PropertyValue > & aViewProps)
+ void SwXMLImport::SetConfigurationSettings(const Sequence < PropertyValue > & aConfigProps)
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	Reference< lang::XMultiServiceFactory > xFac( GetModel(), UNO_QUERY );
+ 	if( !xFac.is() )
+diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
+index 937cc28..60cfd59 100644
+--- sw/source/filter/xml/xmltbli.cxx
++++ sw/source/filter/xml/xmltbli.cxx
+@@ -140,8 +140,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _NDTXT_HXX
+@@ -1343,7 +1343,7 @@ SwXMLTableContext::SwXMLTableContext( SwXMLImport& rImport,
+ 	OUString aName;
+ 
+     // this method will modify the document directly -> lock SolarMutex
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+ 	for( sal_Int16 i=0; i < nAttrCount; i++ )
+@@ -2669,7 +2669,7 @@ void SwXMLTableContext::MakeTable()
+     // this method will modify the document directly -> lock SolarMutex
+     // This will call all other MakeTable*(..) methods, so
+     // those don't need to be locked separately.
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwXMLImport& rSwImport = GetSwImport();
+ 
+diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx
+index 9451e7d..0835823 100644
+--- sw/source/filter/xml/xmltexti.cxx
++++ sw/source/filter/xml/xmltexti.cxx
+@@ -141,8 +141,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <toolkit/helper/vclunohelper.hxx>
+@@ -308,7 +308,7 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOLEObject(
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference < XPropertySet > xPropSet;
+ 
+@@ -625,7 +625,7 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOOoLink(
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference < XPropertySet > xPropSet;
+ 
+@@ -715,7 +715,7 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertApplet(
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference < XPropertySet > xPropSet;
+ 	uno::Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
+@@ -844,7 +844,7 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertFloatingFra
+ 		sal_Int32 nWidth, sal_Int32 nHeight )
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference < XPropertySet > xPropSet;
+ 	uno::Reference<XUnoTunnel> xCrsrTunnel( GetCursor(), UNO_QUERY );
+@@ -996,7 +996,7 @@ void SwXMLTextImportHelper::endAppletOrPlugin(
+         ::std::map < const ::rtl::OUString, ::rtl::OUString, ::comphelper::UStringLess > &rParamMap)
+ {
+     // this method will modify the document directly -> lock SolarMutex
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Reference<XUnoTunnel> xCrsrTunnel( rPropSet, UNO_QUERY );
+ 	ASSERT( xCrsrTunnel.is(), "missing XUnoTunnel for embedded" );
+diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx
+index aad99d4..4494c8d 100644
+--- sw/source/ui/dbui/dbmgr.cxx
++++ sw/source/ui/dbui/dbmgr.cxx
+@@ -277,8 +277,8 @@
+ #ifndef _SVX_DATACCESSDESCRIPTOR_HXX_
+ #include <svx/dataaccessdescriptor.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _RTL_TEXTENC_H
+ #include <rtl/textenc.h>
+@@ -3480,7 +3480,7 @@ SwConnectionDisposedListener_Impl::~SwConnectionDisposedListener_Impl()
+ void SwConnectionDisposedListener_Impl::disposing( const EventObject& rSource )
+         throw (RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference<XConnection> xSource(rSource.Source, UNO_QUERY);
+     for(USHORT nPos = rDBMgr.aDataSourceParams.Count(); nPos; nPos--)
+     {
+diff --git a/sw/source/ui/dbui/dbtree.cxx b/sw/source/ui/dbui/dbtree.cxx
+index 89f5dec..49c76e8 100644
+--- sw/source/ui/dbui/dbtree.cxx
++++ sw/source/ui/dbui/dbtree.cxx
+@@ -105,8 +105,8 @@
+ #ifndef _DBTREE_HXX
+ #include <dbtree.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -196,7 +196,7 @@ void SwDBTreeList_Impl::elementInserted( const ContainerEvent&  ) throw (Runtime
+  ---------------------------------------------------------------------------*/
+ void SwDBTreeList_Impl::elementRemoved( const ContainerEvent& rEvent ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     OUString sSource;
+     rEvent.Accessor >>= sSource;
+     for(USHORT i = 0; i < aConnections.Count(); i++)
+diff --git a/sw/source/ui/dbui/mailmergechildwindow.cxx b/sw/source/ui/dbui/mailmergechildwindow.cxx
+index d15f492..a023f40 100644
+--- sw/source/ui/dbui/mailmergechildwindow.cxx
++++ sw/source/ui/dbui/mailmergechildwindow.cxx
+@@ -87,6 +87,7 @@
+ #include <vcl/msgbox.hxx>
+ #endif
+ #include <vcl/image.hxx>
++#include <osl/mutex.hxx>
+ #include <mailmergechildwindow.hrc>
+ #include <dbui.hrc>
+ #include <helpid.h>
+@@ -280,7 +281,7 @@ void SwMailDispatcherListener_Impl::stopped(
+   -----------------------------------------------------------------------*/
+ void SwMailDispatcherListener_Impl::idle(::rtl::Reference<MailDispatcher> xMailDispatcher)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     m_pSendMailDialog->AllMailsSent();
+ }
+ /*-- 23.06.2004 10:04:50---------------------------------------------------
+@@ -290,7 +291,7 @@ void SwMailDispatcherListener_Impl::mailDelivered(
+                         ::rtl::Reference<MailDispatcher> xMailDispatcher,
+                         uno::Reference< mail::XMailMessage> xMailMessage)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     m_pSendMailDialog->DocumentSent( xMailMessage, true, 0 );
+     DeleteAttachments( xMailMessage );
+ }
+@@ -302,7 +303,7 @@ void SwMailDispatcherListener_Impl::mailDeliveryError(
+                 uno::Reference< mail::XMailMessage> xMailMessage,
+                 const rtl::OUString& sErrorMessage)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     m_pSendMailDialog->DocumentSent( xMailMessage, false, &sErrorMessage );
+     DeleteAttachments( xMailMessage );
+ }
+diff --git a/sw/source/ui/dbui/mmoutputpage.cxx b/sw/source/ui/dbui/mmoutputpage.cxx
+index a04d06f..f71b49c 100644
+--- sw/source/ui/dbui/mmoutputpage.cxx
++++ sw/source/ui/dbui/mmoutputpage.cxx
+@@ -146,8 +146,8 @@
+ #ifndef _SWUNOHELPER_HXX
+ #include <swunohelper.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SHELLIO_HXX
+ #include <shellio.hxx>
+diff --git a/sw/source/ui/dochdl/swdtflvr.cxx b/sw/source/ui/dochdl/swdtflvr.cxx
+index 8c0af88..2cdb2d1 100644
+--- sw/source/ui/dochdl/swdtflvr.cxx
++++ sw/source/ui/dochdl/swdtflvr.cxx
+@@ -302,8 +302,8 @@
+ #include <globals.hrc>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX //autogen
+diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
+index 00fe282..d48a66e 100644
+--- sw/source/ui/docvw/edtwin.cxx
++++ sw/source/ui/docvw/edtwin.cxx
+@@ -314,8 +314,8 @@
+ #include "formatclipboard.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX //autogen
+@@ -5339,7 +5339,7 @@ void SwEditWin::SetChainMode( BOOL bOn )
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SwEditWin::CreateAccessible()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());	// this should have
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());	// this should have
+ 														// happend already!!!
+ 	SwWrtShell *pSh = rView.GetWrtShellPtr();
+ 	ASSERT( pSh, "no writer shell, no accessible object" );
+diff --git a/sw/source/ui/inc/unodispatch.hxx b/sw/source/ui/inc/unodispatch.hxx
+index 893a701..5a92b9f 100644
+--- sw/source/ui/inc/unodispatch.hxx
++++ sw/source/ui/inc/unodispatch.hxx
+@@ -60,8 +60,8 @@
+ //#ifndef _OSL_MUTEX_HXX_
+ //#include <osl/mutex.hxx>
+ //#endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ class SwView;
+@@ -76,7 +76,7 @@ class SwXDispatchProviderInterceptor : public cppu::WeakImplHelper3
+     class DispatchMutexLock_Impl
+     {
+         //::osl::MutexGuard   aGuard; #102295# solar mutex has to be used currently
+-        vos::OGuard         aGuard;
++        osl::SolarMutexGuard aGuard;
+         DispatchMutexLock_Impl();
+     public:
+         DispatchMutexLock_Impl(SwXDispatchProviderInterceptor&);
+diff --git a/sw/source/ui/uiview/pview.cxx b/sw/source/ui/uiview/pview.cxx
+index 2fd4801..9d4694c 100644
+--- sw/source/ui/uiview/pview.cxx
++++ sw/source/ui/uiview/pview.cxx
+@@ -201,8 +201,8 @@
+ #include <svx/svxdlg.hxx> //CHINA001
+ #include <svx/dialogs.hrc> //CHINA001
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ SFX_IMPL_VIEWFACTORY(SwPagePreView, SW_RES(STR_NONAME))
+@@ -2785,7 +2785,7 @@ BOOL SwPagePreView::HandleWheelCommands( const CommandEvent& rCEvt )
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>
+     SwPagePreViewWin::CreateAccessible()
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());	// this should have
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());	// this should have
+ 														// happend already!!!
+ 
+     DBG_ASSERT( GetViewShell() != NULL, "We need a view shell" );
+diff --git a/sw/source/ui/uiview/uivwimp.cxx b/sw/source/ui/uiview/uivwimp.cxx
+index c286ce2..6bbaddf 100644
+--- sw/source/ui/uiview/uivwimp.cxx
++++ sw/source/ui/uiview/uivwimp.cxx
+@@ -57,8 +57,8 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -339,7 +339,7 @@ SwScannerEventListener::~SwScannerEventListener()
+ 
+ void SAL_CALL SwScannerEventListener::disposing( const EventObject& rEventObject) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ #if defined WIN || defined WNT || defined UNX
+     if( pView )
+ 		pView->ScannerEventHdl( rEventObject );
+@@ -359,7 +359,7 @@ void SAL_CALL SwClipboardChangeListener::changedContents( const CLIP_NMSPC::Clip
+ 	throw ( RuntimeException )
+ 
+ {
+-    const ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if( pView )
+ 	{
+ 		{
+diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
+index f02f59d..4f22824 100644
+--- sw/source/ui/uno/SwXDocumentSettings.cxx
++++ sw/source/ui/uno/SwXDocumentSettings.cxx
+@@ -35,8 +35,8 @@
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sw.hxx"
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SFX_SFXBASECONTROLLER_HXX_
+ #include <sfx2/sfxbasecontroller.hxx>
+@@ -289,7 +289,7 @@ void SwXDocumentSettings::release ()
+ uno::Sequence< uno::Type > SAL_CALL SwXDocumentSettings::getTypes(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     uno::Sequence< uno::Type > aBaseTypes( 5 );
+     uno::Type* pBaseTypes = aBaseTypes.getArray();
+@@ -308,7 +308,7 @@ uno::Sequence< uno::Type > SAL_CALL SwXDocumentSettings::getTypes(  )
+ uno::Sequence< sal_Int8 > SAL_CALL SwXDocumentSettings::getImplementationId(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+diff --git a/sw/source/ui/uno/SwXFilterOptions.cxx b/sw/source/ui/uno/SwXFilterOptions.cxx
+index 3eb9140..e7e41ac 100644
+--- sw/source/ui/uno/SwXFilterOptions.cxx
++++ sw/source/ui/uno/SwXFilterOptions.cxx
+@@ -53,8 +53,8 @@
+ //CHINA001 #include <ascfldlg.hxx>
+ //CHINA001 #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -246,7 +246,7 @@ uno::Sequence< ::rtl::OUString > SwXFilterOptions::getSupportedServiceNames()
+ uno::Reference<uno::XInterface> SAL_CALL SwXFilterOptions_createInstance(
+ 						const uno::Reference<lang::XMultiServiceFactory>& )
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwDLL::Init();
+     return (::cppu::OWeakObject*) new SwXFilterOptions;
+ }
+diff --git a/sw/source/ui/uno/dlelstnr.cxx b/sw/source/ui/uno/dlelstnr.cxx
+index 5344bc3..2973794 100644
+--- sw/source/ui/uno/dlelstnr.cxx
++++ sw/source/ui/uno/dlelstnr.cxx
+@@ -58,8 +58,8 @@
+ #include <comphelper/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -129,7 +129,7 @@ void SwLinguServiceEventListener::processDictionaryListEvent(
+ 			const DictionaryListEvent& rDicListEvent)
+ 		throw( RuntimeException )
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	sal_Int16 nEvt = rDicListEvent.nCondensedEvent;
+ 
+@@ -155,7 +155,7 @@ void SAL_CALL SwLinguServiceEventListener::processLinguServiceEvent(
+ 			const LinguServiceEvent& rLngSvcEvent ) 
+ 		throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	
+ 	if (rLngSvcEvent.Source == xLngSvcMgr)
+ 	{
+@@ -189,7 +189,7 @@ void SAL_CALL SwLinguServiceEventListener::disposing(
+ 			const EventObject& rEventObj )
+ 		throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if (xLngSvcMgr.is()  &&  rEventObj.Source == xLngSvcMgr)
+ 	{
+@@ -202,7 +202,7 @@ void SAL_CALL SwLinguServiceEventListener::queryTermination(
+ 			const EventObject& rEventObj )
+ 		throw(TerminationVetoException, RuntimeException)
+ {
+-	//vos::OGuard aGuard(Application::GetSolarMutex());
++	//osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ }
+ 
+ 
+@@ -210,7 +210,7 @@ void SAL_CALL SwLinguServiceEventListener::notifyTermination(
+ 			const EventObject& rEventObj )
+ 		throw(RuntimeException)
+ {
+-	vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	if (xDesktop.is()  &&  rEventObj.Source == xDesktop)
+ 	{
+diff --git a/sw/source/ui/uno/swdetect.cxx b/sw/source/ui/uno/swdetect.cxx
+index e342539..47533d2 100644
+--- sw/source/ui/uno/swdetect.cxx
++++ sw/source/ui/uno/swdetect.cxx
+@@ -87,7 +87,7 @@
+ #include <svtools/eitem.hxx>
+ #include <svtools/stritem.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <svtools/sfxecode.hxx>
+ #include <svtools/ehdl.hxx>
+ #include <sot/storinfo.hxx>
+@@ -207,7 +207,7 @@ SwFilterDetect::~SwFilterDetect()
+ 	}
+ 
+     // can't check the type for external filters, so set the "dont" flag accordingly
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     //SfxFilterFlags nMust = SFX_FILTER_IMPORT, nDont = SFX_FILTER_NOTINSTALLED;
+ 
+     SfxApplication* pApp = SFX_APP();
+diff --git a/sw/source/ui/uno/unoatxt.cxx b/sw/source/ui/uno/unoatxt.cxx
+index b98e9cd..ab1088b 100644
+--- sw/source/ui/uno/unoatxt.cxx
++++ sw/source/ui/uno/unoatxt.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_
+ #include <com/sun/star/beans/PropertyAttribute.hpp>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _TOOLS_DEBUG_HXX
+ #include <tools/debug.hxx>
+@@ -155,7 +155,7 @@ uno::Reference< uno::XInterface > SAL_CALL SwXAutoTextContainer_createInstance(
+     const uno::Reference< lang::XMultiServiceFactory > & rSMgr) throw( uno::Exception )
+ {
+ 	//the module may not be loaded
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwDLL::Init();
+ 	static uno::Reference< uno::XInterface > xAText = (cppu::OWeakObject*)new SwXAutoTextContainer();;
+ 	return xAText;
+@@ -205,7 +205,7 @@ sal_Int32 SwXAutoTextContainer::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXAutoTextContainer::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	sal_uInt16 nCount = pGlossaries->GetGroupCnt();
+ 	if ( 0 <= nIndex && nIndex < nCount )
+@@ -236,7 +236,7 @@ sal_Bool SwXAutoTextContainer::hasElements(void) throw( uno::RuntimeException )
+ uno::Any SwXAutoTextContainer::getByName(const OUString& GroupName)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	uno::Reference< text::XAutoTextGroup > xGroup;
+ 	if ( pGlossaries && hasByName( GroupName ) )	// group name already known?
+@@ -253,7 +253,7 @@ uno::Any SwXAutoTextContainer::getByName(const OUString& GroupName)
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXAutoTextContainer::getElementNames(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nCount = pGlossaries->GetGroupCnt();
+ 
+ 	uno::Sequence< OUString > aGroupNames(nCount);
+@@ -273,7 +273,7 @@ uno::Sequence< OUString > SwXAutoTextContainer::getElementNames(void) throw( uno
+ sal_Bool SwXAutoTextContainer::hasByName(const OUString& Name)
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	String sGroupName( pGlossaries->GetCompleteGroupName( Name ) );
+ 	if(sGroupName.Len())
+ 		return sal_True;
+@@ -286,7 +286,7 @@ uno::Reference< text::XAutoTextGroup >  SwXAutoTextContainer::insertNewByName(
+ 	const OUString& aGroupName)
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(hasByName(aGroupName))
+ 		throw container::ElementExistException();
+ 	//check for non-ASCII characters
+@@ -332,7 +332,7 @@ uno::Reference< text::XAutoTextGroup >  SwXAutoTextContainer::insertNewByName(
+ void SwXAutoTextContainer::removeByName(const OUString& aGroupName)
+ 	throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	//zunaechst den Namen mit Pfad-Extension finden
+ 	String sGroupName = lcl_GetCompleteGroupName(pGlossaries, aGroupName);
+ 	if(!sGroupName.Len())
+@@ -420,7 +420,7 @@ SwXAutoTextGroup::~SwXAutoTextGroup()
+   -----------------------------------------------------------------------*/
+ uno::Sequence< OUString > SwXAutoTextGroup::getTitles(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nCount = 0;
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+     if(pGlosGroup && !pGlosGroup->GetError())
+@@ -444,7 +444,7 @@ void SwXAutoTextGroup::renameByName(const OUString& aElementName,
+ 	throw( lang::IllegalArgumentException, container::ElementExistException, io::IOException,
+ 													 uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	// throw exception only if the programmatic name is to be changed into an existing name
+ 	if(aNewElementName != aElementName && hasByName(aNewElementName))
+ 		throw container::ElementExistException();
+@@ -517,7 +517,7 @@ uno::Reference< text::XAutoTextEntry >  SwXAutoTextGroup::insertNewByName(const
+ 		const OUString& aTitle, const uno::Reference< text::XTextRange > & xTextRange)
+ 		throw( container::ElementExistException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(hasByName(aName))
+ 		throw container::ElementExistException();
+ 	if(!xTextRange.is())
+@@ -600,7 +600,7 @@ uno::Reference< text::XAutoTextEntry >  SwXAutoTextGroup::insertNewByName(const
+   -----------------------------------------------------------------------*/
+ void SwXAutoTextGroup::removeByName(const OUString& aEntryName) throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+     if(pGlosGroup && !pGlosGroup->GetError())
+ 	{
+@@ -617,7 +617,7 @@ void SwXAutoTextGroup::removeByName(const OUString& aEntryName) throw( container
+   -----------------------------------------------------------------------*/
+ OUString SwXAutoTextGroup::getName(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return sName;
+ }
+ /*-- 21.12.98 12:42:25---------------------------------------------------
+@@ -625,7 +625,7 @@ OUString SwXAutoTextGroup::getName(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXAutoTextGroup::setName(const OUString& rName) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if( !pGlossaries )
+ 		throw uno::RuntimeException();
+ 
+@@ -673,7 +673,7 @@ void SwXAutoTextGroup::setName(const OUString& rName) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ sal_Int32 SwXAutoTextGroup::getCount(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	int nCount = 0;
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+     if(pGlosGroup && !pGlosGroup->GetError())
+@@ -689,7 +689,7 @@ sal_Int32 SwXAutoTextGroup::getCount(void) throw( uno::RuntimeException )
+ uno::Any SwXAutoTextGroup::getByIndex(sal_Int32 nIndex)
+ 	throw( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Any aRet;
+ 	sal_uInt16 nCount = 0;
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+@@ -717,7 +717,7 @@ uno::Type SwXAutoTextGroup::getElementType(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXAutoTextGroup::hasElements(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+ 	sal_uInt16 nCount = 0;
+     if(pGlosGroup && !pGlosGroup->GetError())
+@@ -734,7 +734,7 @@ sal_Bool SwXAutoTextGroup::hasElements(void) throw( uno::RuntimeException )
+ uno::Any SwXAutoTextGroup::getByName(const OUString& _rName)
+ 	throw( container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XAutoTextEntry > xEntry = pGlossaries->GetAutoTextEntry( m_sGroupName, sName, _rName, true );
+ 	DBG_ASSERT( xEntry.is(), "SwXAutoTextGroup::getByName: GetAutoTextEntry is fractious!" );
+ 		// we told it to create the object, so why didn't it?
+@@ -746,7 +746,7 @@ uno::Any SwXAutoTextGroup::getByName(const OUString& _rName)
+ uno::Sequence< OUString > SwXAutoTextGroup::getElementNames(void)
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_uInt16 nCount = 0;
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+     if(pGlosGroup && !pGlosGroup->GetError())
+@@ -768,7 +768,7 @@ uno::Sequence< OUString > SwXAutoTextGroup::getElementNames(void)
+ sal_Bool SwXAutoTextGroup::hasByName(const OUString& rName)
+ 	throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	sal_uInt16 nCount = 0;
+ 	SwTextBlocks* pGlosGroup = pGlossaries ? pGlossaries->GetGroupDoc(m_sGroupName, sal_False) : 0;
+@@ -807,7 +807,7 @@ void SwXAutoTextGroup::setPropertyValue(
+ 	throw( beans::UnknownPropertyException, beans::PropertyVetoException,
+  		lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 									aPropSet.getPropertyMap(), rPropertyName);
+ 
+@@ -840,7 +840,7 @@ void SwXAutoTextGroup::setPropertyValue(
+ uno::Any SwXAutoTextGroup::getPropertyValue(const OUString& rPropertyName)
+ 	throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+ 									aPropSet.getPropertyMap(), rPropertyName);
+ 
+@@ -970,7 +970,7 @@ SwXAutoTextEntry::SwXAutoTextEntry(SwGlossaries* pGlss, const String& rGroupName
+ SwXAutoTextEntry::~SwXAutoTextEntry()
+ {
+ 	{
+-	    ::vos::OGuard aGuard(Application::GetSolarMutex());
++	    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 		// ensure that any pending modifications are written
+ 		implFlushDocument( true );
+@@ -1036,7 +1036,7 @@ void SwXAutoTextEntry::Notify( SfxBroadcaster& _rBC, const SfxHint& _rHint )
+ 
+ void SwXAutoTextEntry::GetBodyText ()
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	xDocSh = pGlossaries->EditGroupDoc ( sGroupName, sEntryName, FALSE );
+ 	DBG_ASSERT( xDocSh.Is(), "SwXAutoTextEntry::GetBodyText: unexpected: no doc returned by EditGroupDoc!" );
+@@ -1050,7 +1050,7 @@ void SwXAutoTextEntry::GetBodyText ()
+ 
+ uno::Reference< text::XTextCursor >  SwXAutoTextEntry::createTextCursor(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	return pBodyText->createTextCursor();
+ }
+@@ -1060,7 +1060,7 @@ uno::Reference< text::XTextCursor >  SwXAutoTextEntry::createTextCursor(void) th
+ uno::Reference< text::XTextCursor >  SwXAutoTextEntry::createTextCursorByRange(
+ 	const uno::Reference< text::XTextRange > & aTextPosition) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	return pBodyText->createTextCursorByRange ( aTextPosition );
+ }
+@@ -1069,7 +1069,7 @@ uno::Reference< text::XTextCursor >  SwXAutoTextEntry::createTextCursorByRange(
+   -----------------------------------------------------------------------*/
+ void SwXAutoTextEntry::insertString(const uno::Reference< text::XTextRange > & xRange, const OUString& aString, sal_Bool bAbsorb) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	pBodyText->insertString ( xRange, aString, bAbsorb );
+ }
+@@ -1080,7 +1080,7 @@ void SwXAutoTextEntry::insertControlCharacter(const uno::Reference< text::XTextR
+ 	sal_Int16 nControlCharacter, sal_Bool bAbsorb)
+ 		throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	pBodyText->insertControlCharacter ( xRange, nControlCharacter, bAbsorb );
+ }
+@@ -1092,7 +1092,7 @@ void SwXAutoTextEntry::insertTextContent(
+ 	const uno::Reference< text::XTextContent > & xContent, sal_Bool bAbsorb)
+ 		throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	pBodyText->insertTextContent ( xRange, xContent, bAbsorb );
+ }
+@@ -1103,7 +1103,7 @@ void SwXAutoTextEntry::removeTextContent(
+ 	const uno::Reference< text::XTextContent > & xContent)
+ 		throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	pBodyText->removeTextContent ( xContent );
+ }
+@@ -1112,7 +1112,7 @@ void SwXAutoTextEntry::removeTextContent(
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XText >  SwXAutoTextEntry::getText(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XText >  xRet =  (text::XText*)this;
+ 	return xRet;
+ }
+@@ -1121,7 +1121,7 @@ uno::Reference< text::XText >  SwXAutoTextEntry::getText(void) throw( uno::Runti
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXAutoTextEntry::getStart(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	return pBodyText->getStart();
+ }
+@@ -1130,7 +1130,7 @@ uno::Reference< text::XTextRange >  SwXAutoTextEntry::getStart(void) throw( uno:
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXAutoTextEntry::getEnd(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	return pBodyText->getEnd();
+ }
+@@ -1139,7 +1139,7 @@ uno::Reference< text::XTextRange >  SwXAutoTextEntry::getEnd(void) throw( uno::R
+   -----------------------------------------------------------------------*/
+ OUString SwXAutoTextEntry::getString(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	return pBodyText->getString();
+ }
+@@ -1148,7 +1148,7 @@ OUString SwXAutoTextEntry::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXAutoTextEntry::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	EnsureBodyText();
+ 	pBodyText->setString( aString );
+ }
+@@ -1157,7 +1157,7 @@ void SwXAutoTextEntry::setString(const OUString& aString) throw( uno::RuntimeExc
+  --------------------------------------------------*/
+ void SwXAutoTextEntry::applyTo(const uno::Reference< text::XTextRange > & xTextRange)throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	// ensure that any pending modifications are written
+ 	// reason is that we're holding the _copy_ of the auto text, while the real auto text
+diff --git a/sw/source/ui/uno/unodispatch.cxx b/sw/source/ui/uno/unodispatch.cxx
+index e76b428..0058474 100644
+--- sw/source/ui/uno/unodispatch.cxx
++++ sw/source/ui/uno/unodispatch.cxx
+@@ -65,7 +65,6 @@
+ 
+ using namespace ::com::sun::star;
+ using namespace rtl;
+-using namespace vos;
+ 
+ const char* cURLStart 			= ".uno:DataSourceBrowser/";
+ const char* cURLFormLetter 		= ".uno:DataSourceBrowser/FormLetter";
+diff --git a/sw/source/ui/uno/unodoc.cxx b/sw/source/ui/uno/unodoc.cxx
+index 5c4aa1d..ee39fbc 100644
+--- sw/source/ui/uno/unodoc.cxx
++++ sw/source/ui/uno/unodoc.cxx
+@@ -44,8 +44,8 @@
+ #include "globdoc.hxx"
+ #include "wdocsh.hxx"
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -75,7 +75,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SwTextDocument_getSupportedServiceName
+ uno::Reference< uno::XInterface > SAL_CALL SwTextDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > &rSMgr )
+ 	throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SwDLL::Init();
+ 	SfxObjectShell* pShell = new SwDocShell( SFX_CREATE_MODE_STANDARD );
+ 	return uno::Reference< uno::XInterface >( pShell->GetModel() );
+@@ -103,7 +103,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SwWebDocument_getSupportedServiceNames
+ uno::Reference< uno::XInterface > SAL_CALL SwWebDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > &rSMgr )
+ 	throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SwDLL::Init();
+ 	SfxObjectShell* pShell = new SwWebDocShell( SFX_CREATE_MODE_STANDARD );
+ 	return uno::Reference< uno::XInterface >( pShell->GetModel() );
+@@ -129,7 +129,7 @@ uno::Sequence< ::rtl::OUString > SAL_CALL SwGlobalDocument_getSupportedServiceNa
+ uno::Reference< uno::XInterface > SAL_CALL SwGlobalDocument_createInstance( const uno::Reference< lang::XMultiServiceFactory > &rSMgr )
+ 	throw( uno::Exception )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SwDLL::Init();
+ 	SfxObjectShell* pShell = new SwGlobalDocShell( SFX_CREATE_MODE_STANDARD );
+ 	return uno::Reference< uno::XInterface >( pShell->GetModel() );
+diff --git a/sw/source/ui/uno/unomailmerge.cxx b/sw/source/ui/uno/unomailmerge.cxx
+index d67f363..2c3a96d 100644
+--- sw/source/ui/uno/unomailmerge.cxx
++++ sw/source/ui/uno/unomailmerge.cxx
+@@ -40,8 +40,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+@@ -556,7 +556,7 @@ uno::Any SAL_CALL SwXMailMerge::execute(
+         const uno::Sequence< beans::NamedValue >& rArguments )
+     throw (IllegalArgumentException, Exception, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     //
+     // get property values to be used
+@@ -977,7 +977,7 @@ void SwXMailMerge::launchEvent( const PropertyChangeEvent &rEvt ) const
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SwXMailMerge::getPropertySetInfo(  )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     static Reference< XPropertySetInfo > aRef = new SfxItemPropertySetInfo( pMap );
+     return aRef;
+ }
+@@ -986,7 +986,7 @@ void SAL_CALL SwXMailMerge::setPropertyValue(
+         const OUString& rPropertyName, const uno::Any& rValue )
+     throw (UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     const SfxItemPropertyMap* pCur =
+             SfxItemPropertyMap::GetByName( pMap, rPropertyName );
+@@ -1141,7 +1141,7 @@ uno::Any SAL_CALL SwXMailMerge::getPropertyValue(
+         const OUString& rPropertyName )
+     throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     Any aRet;
+ 
+@@ -1196,7 +1196,7 @@ void SAL_CALL SwXMailMerge::addPropertyChangeListener(
+         const uno::Reference< beans::XPropertyChangeListener >& rListener )
+     throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (!bDisposing && rListener.is())
+     {
+         const SfxItemPropertyMap* pCur =
+@@ -1213,7 +1213,7 @@ void SAL_CALL SwXMailMerge::removePropertyChangeListener(
+         const uno::Reference< beans::XPropertyChangeListener >& rListener )
+     throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (!bDisposing && rListener.is())
+     {
+         const SfxItemPropertyMap* pCur =
+@@ -1247,7 +1247,7 @@ void SAL_CALL SwXMailMerge::removeVetoableChangeListener(
+ void SAL_CALL SwXMailMerge::dispose()
+     throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     if (!bDisposing)
+     {
+@@ -1264,7 +1264,7 @@ void SAL_CALL SwXMailMerge::addEventListener(
+         const Reference< XEventListener >& rxListener )
+     throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (!bDisposing && rxListener.is())
+         aEvtListeners.addInterface( rxListener );
+ }
+@@ -1273,7 +1273,7 @@ void SAL_CALL SwXMailMerge::removeEventListener(
+         const Reference< XEventListener >& rxListener )
+     throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (!bDisposing && rxListener.is())
+         aEvtListeners.removeInterface( rxListener );
+ }
+@@ -1282,7 +1282,7 @@ void SAL_CALL SwXMailMerge::addMailMergeEventListener(
+         const uno::Reference< XMailMergeListener >& rxListener )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (!bDisposing && rxListener.is())
+         aMergeListeners.addInterface( rxListener );
+ }
+@@ -1291,7 +1291,7 @@ void SAL_CALL SwXMailMerge::removeMailMergeEventListener(
+         const uno::Reference< XMailMergeListener >& rxListener )
+     throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     if (!bDisposing && rxListener.is())
+         aMergeListeners.removeInterface( rxListener );
+ }
+@@ -1299,14 +1299,14 @@ void SAL_CALL SwXMailMerge::removeMailMergeEventListener(
+ OUString SAL_CALL SwXMailMerge::getImplementationName()
+     throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return SwXMailMerge_getImplementationName();
+ }
+ 
+ sal_Bool SAL_CALL SwXMailMerge::supportsService( const OUString& rServiceName )
+     throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return C2U( SN_MAIL_MERGE ) == rServiceName ||
+            C2U( SN_DATA_ACCESS_DESCRIPTOR ) == rServiceName;
+ }
+@@ -1314,7 +1314,7 @@ sal_Bool SAL_CALL SwXMailMerge::supportsService( const OUString& rServiceName )
+ uno::Sequence< OUString > SAL_CALL SwXMailMerge::getSupportedServiceNames()
+     throw(RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return SwXMailMerge_getSupportedServiceNames();
+ }
+ 
+@@ -1340,7 +1340,7 @@ uno::Reference< uno::XInterface > SAL_CALL SwXMailMerge_createInstance(
+         const uno::Reference< XMultiServiceFactory > & rSMgr)
+     throw( uno::Exception )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     //the module may not be loaded
+ 	SwDLL::Init();
+diff --git a/sw/source/ui/uno/unomod.cxx b/sw/source/ui/uno/unomod.cxx
+index ca74562..ce8def3 100644
+--- sw/source/ui/uno/unomod.cxx
++++ sw/source/ui/uno/unomod.cxx
+@@ -74,8 +74,8 @@
+ #ifndef _VIEWOPT_HXX //autogen
+ #include <viewopt.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -287,7 +287,7 @@ SwXModule::~SwXModule()
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySet >  SwXModule::getViewSettings(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pxViewSettings)
+ 	{
+ 		((SwXModule*)this)->pxViewSettings = new Reference< XPropertySet > ;
+@@ -301,7 +301,7 @@ Reference< XPropertySet >  SwXModule::getViewSettings(void) throw( uno::RuntimeE
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySet >  SwXModule::getPrintSettings(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!pxPrintSettings)
+ 	{
+ 		((SwXModule*)this)->pxPrintSettings = new Reference< XPropertySet > ;
+diff --git a/sw/source/ui/uno/unomodule.cxx b/sw/source/ui/uno/unomodule.cxx
+index d3baa4e..2895184 100644
+--- sw/source/ui/uno/unomodule.cxx
++++ sw/source/ui/uno/unomodule.cxx
+@@ -52,8 +52,8 @@
+ #include <sfx2/bindings.hxx>
+ #include <sfx2/request.hxx>
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -76,7 +76,7 @@ uno::Sequence< rtl::OUString > SAL_CALL SwUnoModule_getSupportedServiceNames() t
+ uno::Reference< uno::XInterface > SAL_CALL SwUnoModule_createInstance(
+ 				const uno::Reference< lang::XMultiServiceFactory > & rSMgr )
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     return uno::Reference< uno::XInterface >( dynamic_cast< frame::XDispatch * >(new SwUnoModule( rSMgr )), uno::UNO_QUERY );
+ }
+ 
+@@ -88,7 +88,7 @@ void SAL_CALL SwUnoModule::dispatchWithNotification( const ::com::sun::star::uti
+     // asynchronous ...
+     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xThis(static_cast< ::com::sun::star::frame::XNotifyingDispatch* >(this));
+ 
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SwDLL::Init();
+     const SfxSlot* pSlot = SW_MOD()->GetInterface()->GetSlot( aURL.Complete );
+ 
+@@ -147,7 +147,7 @@ REFERENCE< XDISPATCH > SAL_CALL SwUnoModule::queryDispatch( const UNOURL& aURL,
+ {
+     REFERENCE< XDISPATCH > xReturn;
+ 
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	SwDLL::Init();
+ 	const SfxSlot* pSlot = SW_MOD()->GetInterface()->GetSlot( aURL.Complete );
+ 	if ( pSlot )
+diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx
+index 9657a1b..b558e0d 100644
+--- sw/source/ui/uno/unotxdoc.cxx
++++ sw/source/ui/uno/unotxdoc.cxx
+@@ -524,7 +524,7 @@ void SwXTextDocument::GetNumberFormatter()
+   -----------------------------------------------------------------------*/
+ Reference< XText >  SwXTextDocument::getText(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!xBodyText.is())
+@@ -539,7 +539,7 @@ Reference< XText >  SwXTextDocument::getText(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::reformat(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ }
+@@ -548,7 +548,7 @@ void SwXTextDocument::reformat(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::lockControllers(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		UnoActionContext* pContext = new UnoActionContext(pDocShell->GetDoc());
+@@ -562,7 +562,7 @@ void SwXTextDocument::lockControllers(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::unlockControllers(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(aActionArr.Count())
+ 	{
+ 		UnoActionContext* pContext = aActionArr.GetObject(0);
+@@ -577,7 +577,7 @@ void SwXTextDocument::unlockControllers(void) throw( RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextDocument::hasControllersLocked(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	return aActionArr.Count() > 0;
+ }
+ /*-- 18.12.98 13:12:23---------------------------------------------------
+@@ -600,7 +600,7 @@ void SwXTextDocument::setCurrentController(const Reference< frame::XController >
+  * --------------------------------------------------*/
+ Reference< XInterface >  SwXTextDocument::getCurrentSelection() throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xRef;
+ 	if(IsValid())
+ 	{
+@@ -693,7 +693,7 @@ void SwXTextDocument::removeEventListener(const Reference< lang::XEventListener
+ Reference< XPropertySet > SwXTextDocument::getLineNumberingProperties(void)
+ 			throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		if(!pxXLineNumberingProperties)
+@@ -712,7 +712,7 @@ Reference< XPropertySet > SwXTextDocument::getLineNumberingProperties(void)
+ Reference< XIndexReplace >  SwXTextDocument::getChapterNumberingRules(void)
+ 									throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXChapterNumbering)
+@@ -725,7 +725,7 @@ Reference< XIndexReplace >  SwXTextDocument::getChapterNumberingRules(void)
+ 
+ Reference< XIndexAccess >  SwXTextDocument::getNumberingRules(void) throw( RuntimeException )
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+     if(!pxXNumberingRules )
+@@ -741,7 +741,7 @@ Reference< XIndexAccess >  SwXTextDocument::getNumberingRules(void) throw( Runti
+   -----------------------------------------------------------------------*/
+ Reference< XIndexAccess >  SwXTextDocument::getFootnotes(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXFootnotes)
+@@ -757,7 +757,7 @@ Reference< XIndexAccess >  SwXTextDocument::getFootnotes(void) throw( RuntimeExc
+ Reference< XPropertySet >  SAL_CALL
+ 		SwXTextDocument::getFootnoteSettings(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXFootnoteSettings)
+@@ -772,7 +772,7 @@ Reference< XPropertySet >  SAL_CALL
+   -----------------------------------------------------------------------*/
+ Reference< XIndexAccess >  SwXTextDocument::getEndnotes(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXEndnotes)
+@@ -787,7 +787,7 @@ Reference< XIndexAccess >  SwXTextDocument::getEndnotes(void) throw( RuntimeExce
+   -----------------------------------------------------------------------*/
+ Reference< XPropertySet >  SwXTextDocument::getEndnoteSettings(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXEndnoteSettings)
+@@ -803,7 +803,7 @@ Reference< XPropertySet >  SwXTextDocument::getEndnoteSettings(void) throw( Runt
+ Reference< util::XReplaceDescriptor >  SwXTextDocument::createReplaceDescriptor(void)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< util::XReplaceDescriptor >  xRet = new SwXTextSearch;
+ 	return xRet;
+ }
+@@ -837,7 +837,7 @@ SwUnoCrsr* 	SwXTextDocument::CreateCursorForSearch(Reference< XTextCursor > & xC
+ sal_Int32 SwXTextDocument::replaceAll(const Reference< util::XSearchDescriptor > & xDesc)
+ 										throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XUnoTunnel > xDescTunnel(xDesc, UNO_QUERY);
+ 	if(!IsValid() || !xDescTunnel.is() || !xDescTunnel->getSomething(SwXTextSearch::getUnoTunnelId()))
+ 		throw RuntimeException();
+@@ -911,7 +911,7 @@ sal_Int32 SwXTextDocument::replaceAll(const Reference< util::XSearchDescriptor >
+ Reference< util::XSearchDescriptor >  SwXTextDocument::createSearchDescriptor(void)
+ 													throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< util::XSearchDescriptor >  xRet = new SwXTextSearch;
+ 	return xRet;
+ 
+@@ -1047,7 +1047,7 @@ Reference< XIndexAccess >
+ 	SwXTextDocument::findAll(const Reference< util::XSearchDescriptor > & xDesc)
+ 												throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xTmp;
+ 	sal_Int32 nResult = 0;
+ 	Reference< XTextCursor >  xCrsr;
+@@ -1068,7 +1068,7 @@ Reference< XIndexAccess >
+ Reference< XInterface >  SwXTextDocument::findFirst(const Reference< util::XSearchDescriptor > & xDesc)
+ 											throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xTmp;
+ 	sal_Int32 nResult = 0;
+ 	Reference< XTextCursor >  xCrsr;
+@@ -1094,7 +1094,7 @@ Reference< XInterface >  SwXTextDocument::findNext(const Reference< XInterface >
+ 			const Reference< util::XSearchDescriptor > & xDesc)
+ 			throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Reference< XInterface >  xTmp;
+ 	sal_Int32 nResult = 0;
+ 	Reference< XTextCursor >  xCrsr;
+@@ -1122,7 +1122,7 @@ Reference< XInterface >  SwXTextDocument::findNext(const Reference< XInterface >
+ Sequence< beans::PropertyValue > SwXTextDocument::getPagePrintSettings(void)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Sequence< beans::PropertyValue > aSeq(9);
+ 	if(IsValid())
+ 	{
+@@ -1207,7 +1207,7 @@ String lcl_CreateOutlineString( USHORT nIndex,
+ void SwXTextDocument::setPagePrintSettings(const Sequence< beans::PropertyValue >& aSettings)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+ 		SwPagePreViewPrtData aData;
+@@ -1280,7 +1280,7 @@ void SwXTextDocument::setPagePrintSettings(const Sequence< beans::PropertyValue
+ void SwXTextDocument::printPages(const Sequence< beans::PropertyValue >& xOptions)
+ 	throw( IllegalArgumentException, RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(IsValid())
+ 	{
+         SfxViewFrame* pFrame = SfxViewFrame::CreateViewFrame( *pDocShell, 7, sal_True );
+@@ -1368,7 +1368,7 @@ void SwXTextDocument::printPages(const Sequence< beans::PropertyValue >& xOption
+ Reference< XNameAccess >  SwXTextDocument::getReferenceMarks(void)
+ 										throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXReferenceMarks)
+@@ -1383,7 +1383,7 @@ Reference< XNameAccess >  SwXTextDocument::getReferenceMarks(void)
+  * --------------------------------------------------*/
+ Reference< XEnumerationAccess >  SwXTextDocument::getTextFields(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextFieldTypes)
+@@ -1399,7 +1399,7 @@ Reference< XEnumerationAccess >  SwXTextDocument::getTextFields(void) throw( Run
+ Reference< XNameAccess >  SwXTextDocument::getTextFieldMasters(void)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextFieldMasters)
+@@ -1414,7 +1414,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextFieldMasters(void)
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getEmbeddedObjects(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXEmbeddedObjects)
+@@ -1429,7 +1429,7 @@ Reference< XNameAccess >  SwXTextDocument::getEmbeddedObjects(void) throw( Runti
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getBookmarks(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXBookmarks)
+@@ -1444,7 +1444,7 @@ Reference< XNameAccess >  SwXTextDocument::getBookmarks(void) throw( RuntimeExce
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getTextSections(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextSections)
+@@ -1459,7 +1459,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextSections(void) throw( RuntimeE
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getTextTables(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextTables)
+@@ -1474,7 +1474,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextTables(void) throw( RuntimeExc
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getGraphicObjects(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXGraphicObjects)
+@@ -1489,7 +1489,7 @@ Reference< XNameAccess >  SwXTextDocument::getGraphicObjects(void) throw( Runtim
+   -----------------------------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getTextFrames(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXTextFrames)
+@@ -1504,7 +1504,7 @@ Reference< XNameAccess >  SwXTextDocument::getTextFrames(void) throw( RuntimeExc
+  * --------------------------------------------------*/
+ Reference< XNameAccess >  SwXTextDocument::getStyleFamilies(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXStyleFamilies)
+@@ -1520,7 +1520,7 @@ Reference< XNameAccess >  SwXTextDocument::getStyleFamilies(void) throw( Runtime
+ uno::Reference< style::XAutoStyles > SwXTextDocument::getAutoStyles(  )
+     throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXAutoStyles)
+@@ -1536,7 +1536,7 @@ uno::Reference< style::XAutoStyles > SwXTextDocument::getAutoStyles(  )
+   -----------------------------------------------------------------------*/
+ Reference< drawing::XDrawPage >  SwXTextDocument::getDrawPage(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXDrawPage)
+@@ -1807,7 +1807,7 @@ void	SwXTextDocument::InitNewDoc()
+ Reference< XInterface >  SwXTextDocument::createInstance(const OUString& rServiceName)
+ 										throw( Exception, RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	Reference< XInterface >  xRet;
+@@ -2003,7 +2003,7 @@ Sequence< OUString > SwXTextDocument::getSupportedServiceNames(void) throw( Runt
+  * --------------------------------------------------*/
+ Reference< XIndexAccess >  SwXTextDocument::getDocumentIndexes(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	if(!pxXDocumentIndexes)
+@@ -2030,7 +2030,7 @@ void SwXTextDocument::setPropertyValue(const OUString& rPropertyName,
+ 	throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException,
+ 										 WrappedTargetException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2210,7 +2210,7 @@ void SwXTextDocument::setPropertyValue(const OUString& rPropertyName,
+ Any SwXTextDocument::getPropertyValue(const OUString& rPropertyName)
+ 	throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2422,7 +2422,7 @@ Reference< XEnumerationAccess > SwXTextDocument::getRedlines(  ) throw(RuntimeEx
+   -----------------------------------------------------------------------*/
+ void SwXTextDocument::refresh(void) throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	SwWrtShell *pWrtShell = pDocShell->GetWrtShell();
+@@ -2436,7 +2436,7 @@ void SwXTextDocument::refresh(void) throw( RuntimeException )
+ void SwXTextDocument::addRefreshListener(const Reference< util::XRefreshListener > & l)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() )
+ 		throw RuntimeException();
+ 	aRefreshCont.AddListener ( reinterpret_cast < const Reference < lang::XEventListener > &> ( l ));
+@@ -2447,7 +2447,7 @@ void SwXTextDocument::addRefreshListener(const Reference< util::XRefreshListener
+ void SwXTextDocument::removeRefreshListener(const Reference< util::XRefreshListener > & l)
+ 	throw( RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if ( !IsValid() || !aRefreshCont.RemoveListener ( reinterpret_cast < const Reference < lang::XEventListener > &> ( l ) ) )
+ 		throw RuntimeException();
+ }
+@@ -2456,7 +2456,7 @@ void SwXTextDocument::removeRefreshListener(const Reference< util::XRefreshListe
+  ---------------------------------------------------------------------------*/
+ void SwXTextDocument::updateLinks(  ) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	SwDoc* pDoc = pDocShell->GetDoc();
+@@ -2471,7 +2471,7 @@ void SwXTextDocument::updateLinks(  ) throw(RuntimeException)
+ PropertyState SAL_CALL SwXTextDocument::getPropertyState( const OUString& rPropertyName )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	PropertyState eRet = PropertyState_DIRECT_VALUE;
+ 	if(!IsValid())
+ 		throw RuntimeException();
+@@ -2503,7 +2503,7 @@ Sequence< PropertyState > SAL_CALL SwXTextDocument::getPropertyStates( const Seq
+ void SAL_CALL SwXTextDocument::setPropertyToDefault( const OUString& rPropertyName )
+ 	throw (UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2518,7 +2518,7 @@ void SAL_CALL SwXTextDocument::setPropertyToDefault( const OUString& rPropertyNa
+ Any SAL_CALL SwXTextDocument::getPropertyDefault( const OUString& rPropertyName )
+ 	throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(!IsValid())
+ 		throw RuntimeException();
+ 	const SfxItemPropertyMap*	pMap = SfxItemPropertyMap::GetByName(
+@@ -2657,7 +2657,7 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount(
+         const uno::Sequence< beans::PropertyValue >& /*rxOptions*/ )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+     SfxViewShell *pView = 0;
+@@ -2703,7 +2703,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+     SfxViewShell *pView = 0;
+@@ -2772,7 +2772,7 @@ void SAL_CALL SwXTextDocument::render(
+         const uno::Sequence< beans::PropertyValue >& rxOptions )
+     throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(!IsValid())
+         throw RuntimeException();
+     SfxViewShell *pView = GuessViewShell();
+diff --git a/sw/source/ui/uno/unotxvw.cxx b/sw/source/ui/uno/unotxvw.cxx
+index bc455f7..5da8612 100644
+--- sw/source/ui/uno/unotxvw.cxx
++++ sw/source/ui/uno/unotxvw.cxx
+@@ -124,8 +124,8 @@
+ #ifndef _FRMATR_HXX
+ #include <frmatr.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ //autogen
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _BOOKMRK_HXX //autogen
+ #include <bookmrk.hxx>
+@@ -296,7 +296,7 @@ Sequence< uno::Type > SAL_CALL SwXTextView::getTypes(  ) throw(::com::sun::star:
+  ---------------------------------------------------------------------------*/
+ Sequence< sal_Int8 > SAL_CALL SwXTextView::getImplementationId(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     static Sequence< sal_Int8 > aId( 16 );
+     static sal_Bool bInit = sal_False;
+     if(!bInit)
+@@ -381,7 +381,7 @@ uno::Any SAL_CALL SwXTextView::queryInterface( const uno::Type& aType )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextView::select(const uno::Any& aInterface) throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< uno::XInterface >  xInterface;
+     if(GetView() && (aInterface >>= xInterface))
+ 	{
+@@ -633,7 +633,7 @@ sal_Bool SwXTextView::select(const uno::Any& aInterface) throw( lang::IllegalArg
+   -----------------------------------------------------------------------*/
+ uno::Any SwXTextView::getSelection(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< uno::XInterface >  aRef;
+ 	SwView* pView = ((SwXTextView*)this)->GetView();
+ 	if(pView)
+@@ -741,7 +741,7 @@ void SwXTextView::addSelectionChangeListener(
+ 									const uno::Reference< view::XSelectionChangeListener > & rxListener)
+ 									throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< view::XSelectionChangeListener > * pInsert = new uno::Reference< view::XSelectionChangeListener > ;
+ 	*pInsert = rxListener;
+ 	aSelChangedListeners.Insert(pInsert, aSelChangedListeners.Count());
+@@ -753,7 +753,7 @@ void SwXTextView::removeSelectionChangeListener(
+ 										const uno::Reference< view::XSelectionChangeListener > & rxListener)
+ 										throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	view::XSelectionChangeListener* pLeft = rxListener.get();
+ 	for(sal_uInt16 i = 0; i < aSelChangedListeners.Count(); i++)
+ 	{
+@@ -792,7 +792,7 @@ SdrObject* SwXTextView::GetControl(
+ uno::Reference< awt::XControl >  SwXTextView::getControl(const uno::Reference< awt::XControlModel > & xModel)
+ 		throw( container::NoSuchElementException, uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     uno::Reference< awt::XControl >  xRet;
+     GetControl(xModel, xRet);
+     return xRet;
+@@ -803,7 +803,7 @@ uno::Reference< awt::XControl >  SwXTextView::getControl(const uno::Reference< a
+   -----------------------------------------------------------------------*/
+ uno::Reference< form::XFormController > SAL_CALL SwXTextView::getFormController( const uno::Reference< form::XForm >& _Form ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     SwView* pView2 = GetView();
+     FmFormShell* pFormShell = pView2 ? pView2->GetFormShell() : NULL;
+@@ -822,7 +822,7 @@ uno::Reference< form::XFormController > SAL_CALL SwXTextView::getFormController(
+   -----------------------------------------------------------------------*/
+ ::sal_Bool SAL_CALL SwXTextView::isFormDesignMode(  ) throw (uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SwView* pView2 = GetView();
+     FmFormShell* pFormShell = pView2 ? pView2->GetFormShell() : NULL;
+     return pFormShell ? pFormShell->IsDesignMode() : sal_True;
+@@ -833,7 +833,7 @@ uno::Reference< form::XFormController > SAL_CALL SwXTextView::getFormController(
+   -----------------------------------------------------------------------*/
+ void SAL_CALL SwXTextView::setFormDesignMode( ::sal_Bool _DesignMode ) throw (RuntimeException)
+ {
+-	::vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     SwView* pView2 = GetView();
+     FmFormShell* pFormShell = pView2 ? pView2->GetFormShell() : NULL;
+     if ( pFormShell )
+@@ -845,7 +845,7 @@ void SAL_CALL SwXTextView::setFormDesignMode( ::sal_Bool _DesignMode ) throw (Ru
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextViewCursor >  SwXTextView::getViewCursor(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(GetView())
+ 	{
+ 		if(!pxTextViewCursor)
+@@ -865,7 +865,7 @@ uno::Reference< text::XTextViewCursor >  SwXTextView::getViewCursor(void) throw(
+   -----------------------------------------------------------------------*/
+ uno::Reference< beans::XPropertySet >  SwXTextView::getViewSettings(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+ 	{
+ 		if(!pxViewSettings)
+@@ -883,7 +883,7 @@ uno::Reference< beans::XPropertySet >  SwXTextView::getViewSettings(void) throw(
+  ---------------------------------------------------------------------------*/
+ Sequence< Sequence< PropertyValue > > SwXTextView::getRubyList( sal_Bool bAutomatic ) throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwView* pView = GetView();
+ 	if(!pView)
+@@ -934,7 +934,7 @@ void SAL_CALL SwXTextView::setRubyList(
+ 	const Sequence< Sequence< PropertyValue > >& rRubyList, sal_Bool bAutomatic )
+ 		throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+ 	SwView* pView = GetView();
+ 	if(!pView || !rRubyList.getLength())
+@@ -1092,7 +1092,7 @@ void SwXTextView::NotifyDBChanged()
+ uno::Reference< beans::XPropertySetInfo > SAL_CALL SwXTextView::getPropertySetInfo(  )
+     throw (uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     static uno::Reference< XPropertySetInfo > aRef = new SfxItemPropertySetInfo( pMap );
+     return aRef;
+ }
+@@ -1102,7 +1102,7 @@ void SAL_CALL SwXTextView::setPropertyValue(
+         const OUString& rPropertyName, const uno::Any& rValue )
+     throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     const SfxItemPropertyMap* pCur = SfxItemPropertyMap::GetByName( pMap, rPropertyName );
+     if (!pCur)
+@@ -1139,7 +1139,7 @@ uno::Any SAL_CALL SwXTextView::getPropertyValue(
+         const OUString& rPropertyName )
+     throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     Any aRet;
+ 
+@@ -1302,7 +1302,7 @@ sal_Bool SwXTextViewCursor::IsTextSelection( sal_Bool bAllowTables ) const
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::isVisible(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	DBG_WARNING("not implemented")
+ 	return sal_True;
+ }
+@@ -1311,7 +1311,7 @@ sal_Bool SwXTextViewCursor::isVisible(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::setVisible(sal_Bool bVisible) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	DBG_WARNING("not implemented")
+ }
+ /*-- 17.12.98 09:36:26---------------------------------------------------
+@@ -1319,7 +1319,7 @@ void SwXTextViewCursor::setVisible(sal_Bool bVisible) throw( uno::RuntimeExcepti
+   -----------------------------------------------------------------------*/
+ awt::Point SwXTextViewCursor::getPosition(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	awt::Point aRet;
+ 	if(pView)
+ 	{
+@@ -1345,7 +1345,7 @@ awt::Point SwXTextViewCursor::getPosition(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::collapseToStart(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+ 	{
+         if (!IsTextSelection())
+@@ -1370,7 +1370,7 @@ void SwXTextViewCursor::collapseToStart(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::collapseToEnd(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+ 	{
+         if (!IsTextSelection())
+@@ -1395,7 +1395,7 @@ void SwXTextViewCursor::collapseToEnd(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::isCollapsed(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -1415,7 +1415,7 @@ sal_Bool SwXTextViewCursor::isCollapsed(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::goLeft(sal_Int16 nCount, sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -1434,7 +1434,7 @@ sal_Bool SwXTextViewCursor::goLeft(sal_Int16 nCount, sal_Bool bExpand) throw( un
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::goRight(sal_Int16 nCount, sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -1457,7 +1457,7 @@ void SwXTextViewCursor::gotoRange(
+ 	sal_Bool bExpand)
+ 		throw(RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView && xRange.is())
+ 	{
+         if (!IsTextSelection())
+@@ -1593,7 +1593,7 @@ void SwXTextViewCursor::gotoRange(
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::gotoStart(sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+     {
+         if (!IsTextSelection())
+@@ -1609,7 +1609,7 @@ void SwXTextViewCursor::gotoStart(sal_Bool bExpand) throw( uno::RuntimeException
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::gotoEnd(sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+     {
+         if (!IsTextSelection())
+@@ -1625,7 +1625,7 @@ void SwXTextViewCursor::gotoEnd(sal_Bool bExpand) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToFirstPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+     {
+@@ -1647,7 +1647,7 @@ sal_Bool SwXTextViewCursor::jumpToFirstPage(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToLastPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -1670,7 +1670,7 @@ sal_Bool SwXTextViewCursor::jumpToLastPage(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToPage(sal_Int16 nPage) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 		bRet = pView->GetWrtShell().GotoPage(nPage);
+@@ -1683,7 +1683,7 @@ sal_Bool SwXTextViewCursor::jumpToPage(sal_Int16 nPage) throw( uno::RuntimeExcep
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToNextPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 		bRet = pView->GetWrtShell().SttNxtPg();
+@@ -1696,7 +1696,7 @@ sal_Bool SwXTextViewCursor::jumpToNextPage(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToPreviousPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 		bRet = pView->GetWrtShell().EndPrvPg();
+@@ -1709,7 +1709,7 @@ sal_Bool SwXTextViewCursor::jumpToPreviousPage(void) throw( uno::RuntimeExceptio
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToEndOfPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 		bRet = pView->GetWrtShell().EndPg();
+@@ -1722,7 +1722,7 @@ sal_Bool SwXTextViewCursor::jumpToEndOfPage(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::jumpToStartOfPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 		bRet = pView->GetWrtShell().SttPg();
+@@ -1735,7 +1735,7 @@ sal_Bool SwXTextViewCursor::jumpToStartOfPage(void) throw( uno::RuntimeException
+  --------------------------------------------------*/
+ sal_Int16 SwXTextViewCursor::getPage(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	short nRet = 0;
+ 	if(pView)
+ 	{
+@@ -1752,7 +1752,7 @@ sal_Int16 SwXTextViewCursor::getPage(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::screenDown(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -1770,7 +1770,7 @@ sal_Bool SwXTextViewCursor::screenDown(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::screenUp(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -1788,7 +1788,7 @@ sal_Bool SwXTextViewCursor::screenUp(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XText >  SwXTextViewCursor::getText(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XText >  xRet;
+ 	if(pView)
+ 	{
+@@ -1811,7 +1811,7 @@ uno::Reference< text::XText >  SwXTextViewCursor::getText(void) throw( uno::Runt
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextViewCursor::getStart(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	if(pView)
+ 	{
+@@ -1833,7 +1833,7 @@ uno::Reference< text::XTextRange >  SwXTextViewCursor::getStart(void) throw( uno
+   -----------------------------------------------------------------------*/
+ uno::Reference< text::XTextRange >  SwXTextViewCursor::getEnd(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	uno::Reference< text::XTextRange >  xRet;
+ 	if(pView)
+ 	{
+@@ -1855,7 +1855,7 @@ uno::Reference< text::XTextRange >  SwXTextViewCursor::getEnd(void) throw( uno::
+  --------------------------------------------------*/
+ OUString SwXTextViewCursor::getString(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	OUString uRet;
+ 	if(pView)
+ 	{
+@@ -1887,7 +1887,7 @@ OUString SwXTextViewCursor::getString(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::setString(const OUString& aString) throw( uno::RuntimeException )
+ {
+-    ::vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     if(pView)
+     {
+         if (!IsTextSelection( sal_False ))
+@@ -1928,7 +1928,7 @@ void  SwXTextViewCursor::setPropertyValue( const OUString& rPropertyName, const
+ 							throw(UnknownPropertyException, PropertyVetoException,
+ 								IllegalArgumentException, WrappedTargetException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+ 	{
+ 		SwWrtShell& rSh = pView->GetWrtShell();
+@@ -1948,7 +1948,7 @@ void  SwXTextViewCursor::setPropertyValue( const OUString& rPropertyName, const
+ Any  SwXTextViewCursor::getPropertyValue( const OUString& rPropertyName )
+ 				throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Any aRet;
+ 	if(pView)
+ 	{
+@@ -1995,7 +1995,7 @@ void  SwXTextViewCursor::removeVetoableChangeListener( const OUString& PropertyN
+   -----------------------------------------------------------------------*/
+ PropertyState  SwXTextViewCursor::getPropertyState( const OUString& rPropertyName ) throw(UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	PropertyState eState;
+ 	if(pView)
+ 	{
+@@ -2013,7 +2013,7 @@ PropertyState  SwXTextViewCursor::getPropertyState( const OUString& rPropertyNam
+ Sequence< PropertyState >  SwXTextViewCursor::getPropertyStates(
+ 	const Sequence< OUString >& rPropertyNames ) throw(UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	Sequence< PropertyState >  aRet;
+ 	if(pView)
+ 	{
+@@ -2029,7 +2029,7 @@ Sequence< PropertyState >  SwXTextViewCursor::getPropertyStates(
+ void  SwXTextViewCursor::setPropertyToDefault( const OUString& rPropertyName )
+ 										throw(UnknownPropertyException, RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+ 	{
+ 		SwWrtShell& rSh = pView->GetWrtShell();
+@@ -2044,7 +2044,7 @@ Any  SwXTextViewCursor::getPropertyDefault( const OUString& rPropertyName )
+ 						throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
+ {
+ 	Any aRet;
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+ 	{
+ 		SwWrtShell& rSh = pView->GetWrtShell();
+@@ -2058,7 +2058,7 @@ Any  SwXTextViewCursor::getPropertyDefault( const OUString& rPropertyName )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::goDown(sal_Int16 nCount, sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -2077,7 +2077,7 @@ sal_Bool SwXTextViewCursor::goDown(sal_Int16 nCount, sal_Bool bExpand) throw( un
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::goUp(sal_Int16 nCount, sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -2096,7 +2096,7 @@ sal_Bool SwXTextViewCursor::goUp(sal_Int16 nCount, sal_Bool bExpand) throw( uno:
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::isAtStartOfLine(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -2114,7 +2114,7 @@ sal_Bool SwXTextViewCursor::isAtStartOfLine(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ sal_Bool SwXTextViewCursor::isAtEndOfLine(void) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	sal_Bool bRet = sal_False;
+ 	if(pView)
+ 	{
+@@ -2132,7 +2132,7 @@ sal_Bool SwXTextViewCursor::isAtEndOfLine(void) throw( uno::RuntimeException )
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::gotoEndOfLine(sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+     {
+         if (!IsTextSelection( sal_False ))
+@@ -2148,7 +2148,7 @@ void SwXTextViewCursor::gotoEndOfLine(sal_Bool bExpand) throw( uno::RuntimeExcep
+   -----------------------------------------------------------------------*/
+ void SwXTextViewCursor::gotoStartOfLine(sal_Bool bExpand) throw( uno::RuntimeException )
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	if(pView)
+     {
+         if (!IsTextSelection( sal_False ))
+@@ -2252,7 +2252,7 @@ SwPaM* 	SwXTextViewCursor::GetPaM()
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable > SAL_CALL SwXTextView::getTransferable(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard(Application::GetSolarMutex());
++	osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     //force immediat shell update
+     GetView()->StopShellTimer();
+diff --git a/toolkit/inc/pch/precompiled_toolkit.hxx b/toolkit/inc/pch/precompiled_toolkit.hxx
+index 1b333ad..0f88f60 100644
+--- toolkit/inc/pch/precompiled_toolkit.hxx
++++ toolkit/inc/pch/precompiled_toolkit.hxx
+@@ -351,7 +351,7 @@
+ #include "vcl/vclenum.hxx"
+ #include "vcl/virdev.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ //---MARKER---
+ #endif
+ 
+diff --git a/toolkit/inc/toolkit/awt/vclxdevice.hxx b/toolkit/inc/toolkit/awt/vclxdevice.hxx
+index 2a3991f..f942288 100644
+--- toolkit/inc/toolkit/awt/vclxdevice.hxx
++++ toolkit/inc/toolkit/awt/vclxdevice.hxx
+@@ -54,8 +54,8 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ class OutputDevice;
+@@ -76,7 +76,7 @@ class TOOLKIT_DLLPUBLIC VCLXDevice :	public ::com::sun::star::awt::XDevice,
+ 	friend class VCLXGraphics;
+ 
+ private:
+-	NAMESPACE_VOS(IMutex)&	mrMutex;	// Reference to SolarMutex
++	osl::SolarMutex&	mrMutex;	// Reference to SolarMutex
+ 	OutputDevice*			mpOutputDevice;
+ 	
+ public:
+@@ -84,7 +84,7 @@ public:
+ 	sal_uInt32				nFlags;
+ 
+ protected:
+-	NAMESPACE_VOS(IMutex)&	GetMutex() { return mrMutex; }
++	osl::SolarMutex&	GetMutex() { return mrMutex; }
+ 	void					DestroyOutputDevice();
+ 
+ public:
+diff --git a/toolkit/inc/toolkit/awt/vclxgraphics.hxx b/toolkit/inc/toolkit/awt/vclxgraphics.hxx
+index a6d555c..d348c41 100644
+--- toolkit/inc/toolkit/awt/vclxgraphics.hxx
++++ toolkit/inc/toolkit/awt/vclxgraphics.hxx
+@@ -51,8 +51,8 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <vcl/font.hxx>
+@@ -80,7 +80,7 @@ class VCLXGraphics :	public ::com::sun::star::awt::XGraphics,
+ 						public ::cppu::OWeakObject
+ {
+ private:
+-	NAMESPACE_VOS(IMutex)&	mrMutex;	// Reference to SolarMutex
++	osl::SolarMutex&	mrMutex;	// Reference to SolarMutex
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice> mxDevice;	// nur um bei getDevice() immer das gleiche zurueckzugeben
+ 
+ 	OutputDevice*	mpOutputDevice;
+@@ -93,7 +93,7 @@ private:
+ 	Region*			mpClipRegion;
+ 
+ protected:
+-	NAMESPACE_VOS(IMutex)&	GetMutex() { return mrMutex; }
++	osl::SolarMutex&	GetMutex() { return mrMutex; }
+ 
+ public:	
+ 					VCLXGraphics();
+diff --git a/toolkit/inc/toolkit/helper/throbberimpl.hxx b/toolkit/inc/toolkit/helper/throbberimpl.hxx
+index 0d8bc8f..7d354a1 100644
+--- toolkit/inc/toolkit/helper/throbberimpl.hxx
++++ toolkit/inc/toolkit/helper/throbberimpl.hxx
+@@ -50,8 +50,8 @@
+ #include <vcl/timer.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ //........................................................................
+@@ -68,7 +68,7 @@ namespace toolkit
+     class Throbber_Impl
+ 	{
+     private:
+-    	NAMESPACE_VOS(IMutex)&	mrMutex;	// Reference to SolarMutex
++    	osl::SolarMutex&	mrMutex;	// Reference to SolarMutex
+         Sequence< Reference< XGraphic > > maImageList;
+         Reference< VCLXWindow > mxParent;
+ 
+@@ -80,7 +80,7 @@ namespace toolkit
+ 
+         DECL_LINK( TimeOutHdl, Throbber_Impl* );
+ 
+-        NAMESPACE_VOS(IMutex)&	GetMutex() { return mrMutex; }
++        osl::SolarMutex&	GetMutex() { return mrMutex; }
+ 
+     public:
+              Throbber_Impl( Reference< VCLXWindow > xParent,
+diff --git a/toolkit/source/awt/vclxcontainer.cxx b/toolkit/source/awt/vclxcontainer.cxx
+index b5de5b8..5f42bd7 100644
+--- toolkit/source/awt/vclxcontainer.cxx
++++ toolkit/source/awt/vclxcontainer.cxx
+@@ -84,21 +84,21 @@ IMPL_XTYPEPROVIDER_END
+ // ::com::sun::star::awt::XVclContainer
+ void VCLXContainer::addVclContainerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XVclContainerListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetContainerListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXContainer::removeVclContainerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XVclContainerListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetContainerListeners().removeInterface( rxListener );
+ }
+ 
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > > VCLXContainer::getWindows(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	// Bei allen Childs das Container-Interface abfragen...
+ 	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > > aSeq;
+@@ -126,7 +126,7 @@ void VCLXContainer::removeVclContainerListener( const ::com::sun::star::uno::Ref
+ // ::com::sun::star::awt::XVclContainerPeer
+ void VCLXContainer::enableDialogControl( sal_Bool bEnable ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -142,7 +142,7 @@ void VCLXContainer::enableDialogControl( sal_Bool bEnable ) throw(::com::sun::st
+ 
+ void VCLXContainer::setTabOrder( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > >& Components, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Tabs, sal_Bool bGroupControl ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_uInt32 nCount = Components.getLength();
+ 	DBG_ASSERT( nCount == (sal_uInt32)Tabs.getLength(), "setTabOrder: TabCount != ComponentCount" );
+@@ -187,7 +187,7 @@ void VCLXContainer::setTabOrder( const ::com::sun::star::uno::Sequence< ::com::s
+ 
+ void VCLXContainer::setGroup( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > >& Components ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_uInt32 nCount = Components.getLength();
+ 	const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > * pComps = Components.getConstArray();
+diff --git a/toolkit/source/awt/vclxdevice.cxx b/toolkit/source/awt/vclxdevice.cxx
+index d5d5ab2..9018bef 100644
+--- toolkit/source/awt/vclxdevice.cxx
++++ toolkit/source/awt/vclxdevice.cxx
+@@ -118,7 +118,7 @@ IMPL_XTYPEPROVIDER_END
+ // ::com::sun::star::awt::XDevice, 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > VCLXDevice::createGraphics(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > xRef;
+ 	
+@@ -130,7 +130,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice > VCLXDevice::createDevice( sal_Int32 nWidth, sal_Int32 nHeight ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >  xRef;
+ 	if ( GetOutputDevice() )
+@@ -146,7 +146,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::awt::DeviceInfo VCLXDevice::getInfo() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::DeviceInfo aInfo;
+ 
+@@ -197,7 +197,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Sequence< ::com::sun::star::awt::FontDescriptor > VCLXDevice::getFontDescriptors(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Sequence< ::com::sun::star::awt::FontDescriptor> aFonts;
+ 	if( mpOutputDevice )
+@@ -216,7 +216,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > VCLXDevice::getFont( const ::com::sun::star::awt::FontDescriptor& rDescriptor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont >  xRef;
+ 	if( mpOutputDevice )
+@@ -230,7 +230,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap > VCLXDevice::createBitmap( sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >  xBmp;
+ 	if( mpOutputDevice )
+@@ -246,7 +246,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDisplayBitmap > VCLXDevice::createDisplayBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >& rxBitmap ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	BitmapEx aBmp = VCLUnoHelper::GetBitmap( rxBitmap );
+ 	VCLXBitmap* pBmp = new VCLXBitmap;
+@@ -258,7 +258,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ VCLXVirtualDevice::~VCLXVirtualDevice()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     
+     DestroyOutputDevice(); 
+ }
+diff --git a/toolkit/source/awt/vclxgraphics.cxx b/toolkit/source/awt/vclxgraphics.cxx
+index 1b1164d..b6b1669 100644
+--- toolkit/source/awt/vclxgraphics.cxx
++++ toolkit/source/awt/vclxgraphics.cxx
+@@ -117,7 +117,7 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
+ {
+ 	if(mpOutputDevice) 
+ 	{
+-		NAMESPACE_VOS(OGuard) aVclGuard( Application::GetSolarMutex()  );
++		osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex()  );
+ 
+ 		if ( nFlags & INITOUTDEV_FONT )
+ 		{
+@@ -149,7 +149,7 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice > VCLXGraphics::getDevice() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( !mxDevice.is() && mpOutputDevice )
+ 	{
+@@ -162,7 +162,7 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
+ 
+ ::com::sun::star::awt::SimpleFontMetric VCLXGraphics::getFontMetric() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::SimpleFontMetric aM;
+ 	if( mpOutputDevice ) 
+@@ -175,56 +175,56 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
+ 
+ void VCLXGraphics::setFont( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont >& rxFont ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maFont = VCLUnoHelper::CreateFont( rxFont );
+ }
+ 
+ void VCLXGraphics::selectFont( const ::com::sun::star::awt::FontDescriptor& rDescription ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maFont = VCLUnoHelper::CreateFont( rDescription, Font() );
+ }
+ 
+ void VCLXGraphics::setTextColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maTextColor = Color( (sal_uInt32)nColor );
+ }
+ 
+ void VCLXGraphics::setTextFillColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maTextFillColor = Color( (sal_uInt32)nColor );
+ }
+ 
+ void VCLXGraphics::setLineColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maLineColor = Color( (sal_uInt32)nColor );
+ }
+ 
+ void VCLXGraphics::setFillColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maFillColor = Color( (sal_uInt32)nColor );
+ }
+ 
+ void VCLXGraphics::setRasterOp( ::com::sun::star::awt::RasterOperation eROP ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	meRasterOp = (RasterOp)eROP;
+ }
+ 
+ void VCLXGraphics::setClipRegion( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XRegion >& rxRegion ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	delete mpClipRegion;
+ 	if ( rxRegion.is() )
+@@ -235,7 +235,7 @@ void VCLXGraphics::setClipRegion( const ::com::sun::star::uno::Reference< ::com:
+ 
+ void VCLXGraphics::intersectClipRegion( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XRegion >& rxRegion ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( rxRegion.is() )
+ 	{
+@@ -249,7 +249,7 @@ void VCLXGraphics::intersectClipRegion( const ::com::sun::star::uno::Reference<
+ 
+ void VCLXGraphics::push(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 
+ 	if( mpOutputDevice )
+@@ -258,7 +258,7 @@ void VCLXGraphics::push(  ) throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXGraphics::pop(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 
+ 	if( mpOutputDevice )
+@@ -267,7 +267,7 @@ void VCLXGraphics::pop(  ) throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXGraphics::copy( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >& rxSource, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( mpOutputDevice ) 
+ 	{
+@@ -284,7 +284,7 @@ void VCLXGraphics::copy( const ::com::sun::star::uno::Reference< ::com::sun::sta
+ 
+ void VCLXGraphics::draw( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDisplayBitmap >& rxBitmapHandle, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -316,7 +316,7 @@ void VCLXGraphics::draw( const ::com::sun::star::uno::Reference< ::com::sun::sta
+ 
+ void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -327,7 +327,7 @@ void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) throw(::com::sun::star:
+ 
+ void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -338,7 +338,7 @@ void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32
+ 
+ void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -349,7 +349,7 @@ void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int3
+ 
+ void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 nHorzRound, sal_Int32 nVertRound ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -360,7 +360,7 @@ void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, s
+ 
+ void VCLXGraphics::drawPolyLine( const ::com::sun::star::uno::Sequence< sal_Int32 >& DataX, const ::com::sun::star::uno::Sequence< sal_Int32 >& DataY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -371,7 +371,7 @@ void VCLXGraphics::drawPolyLine( const ::com::sun::star::uno::Sequence< sal_Int3
+ 
+ void VCLXGraphics::drawPolygon( const ::com::sun::star::uno::Sequence< sal_Int32 >& DataX, const ::com::sun::star::uno::Sequence< sal_Int32 >& DataY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -382,7 +382,7 @@ void VCLXGraphics::drawPolygon( const ::com::sun::star::uno::Sequence< sal_Int32
+ 
+ void VCLXGraphics::drawPolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > >& DataX, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > >& DataY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -398,7 +398,7 @@ void VCLXGraphics::drawPolyPolygon( const ::com::sun::star::uno::Sequence< ::com
+ 
+ void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -409,7 +409,7 @@ void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_I
+ 
+ void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -420,7 +420,7 @@ void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32
+ 
+ void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -431,7 +431,7 @@ void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32
+ 
+ void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -442,7 +442,7 @@ void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int
+ 
+ void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, const ::com::sun::star::awt::Gradient& rGradient ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -461,7 +461,7 @@ void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_
+ 
+ void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const ::rtl::OUString& rText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+@@ -472,7 +472,7 @@ void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const ::rtl::OUString& rT
+ 
+ void VCLXGraphics::drawTextArray( sal_Int32 x, sal_Int32 y, const ::rtl::OUString& rText, const ::com::sun::star::uno::Sequence< sal_Int32 >& rLongs ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if( mpOutputDevice )
+ 	{
+diff --git a/toolkit/source/awt/vclxprinter.cxx b/toolkit/source/awt/vclxprinter.cxx
+index 6966e39..23bcec8 100644
+--- toolkit/source/awt/vclxprinter.cxx
++++ toolkit/source/awt/vclxprinter.cxx
+@@ -108,7 +108,7 @@ IMPL_XTYPEPROVIDER_END
+ VCLXPrinterPropertySet::VCLXPrinterPropertySet( const String& rPrinterName )
+ 	: OPropertySetHelper( BrdcstHelper )
+ {
+-	osl::Guard< vos::IMutex > aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     mpPrinter = new Printer( rPrinterName );
+ 	mnOrientation = 0;
+@@ -117,7 +117,7 @@ VCLXPrinterPropertySet::VCLXPrinterPropertySet( const String& rPrinterName )
+ 
+ VCLXPrinterPropertySet::~VCLXPrinterPropertySet()
+ {
+-	osl::Guard< vos::IMutex > aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+  	delete mpPrinter;
+ }
+diff --git a/toolkit/source/awt/vclxspinbutton.cxx b/toolkit/source/awt/vclxspinbutton.cxx
+index d9ecc28..4da8ee9 100644
+--- toolkit/source/awt/vclxspinbutton.cxx
++++ toolkit/source/awt/vclxspinbutton.cxx
+@@ -111,7 +111,7 @@ namespace toolkit
+     void SAL_CALL VCLXSpinButton::dispose( ) throw(RuntimeException)
+     {
+         {
+-	        ::vos::OGuard aGuard( GetMutex() );
++	        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	        EventObject aDisposeEvent;
+ 	        aDisposeEvent.Source = *this;
+@@ -141,9 +141,9 @@ namespace toolkit
+         typedef long (SpinButton::*GetSpinButtonValue) (void) const;
+ 
+         //................................................................
+-        void lcl_setSpinButtonValue( ::vos::IMutex& _rMutex, Window* _pWindow, SetSpinButtonValue _pSetter, sal_Int32 _nValue )
++        void lcl_setSpinButtonValue( osl::SolarMutex& _rMutex, Window* _pWindow, SetSpinButtonValue _pSetter, sal_Int32 _nValue )
+         {
+-	        ::vos::OGuard aGuard( _rMutex );
++	        osl::SolarMutexGuard aGuard( _rMutex );
+ 
+ 	        SpinButton* pSpinButton = static_cast< SpinButton* >( _pWindow );
+ 	        if ( pSpinButton )
+@@ -151,9 +151,9 @@ namespace toolkit
+         }
+ 
+         //................................................................
+-        sal_Int32 lcl_getSpinButtonValue( ::vos::IMutex& _rMutex, const Window* _pWindow, GetSpinButtonValue _pGetter )
++        sal_Int32 lcl_getSpinButtonValue( osl::SolarMutex& _rMutex, const Window* _pWindow, GetSpinButtonValue _pGetter )
+         {
+-	        ::vos::OGuard aGuard( _rMutex );
++	        osl::SolarMutexGuard aGuard( _rMutex );
+ 
+             sal_Int32 nValue = 0;
+ 
+@@ -173,7 +173,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void SAL_CALL VCLXSpinButton::setValues( sal_Int32 minValue, sal_Int32 maxValue, sal_Int32 currentValue ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         setMinimum( minValue );
+         setMaximum( maxValue );
+@@ -225,7 +225,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void SAL_CALL VCLXSpinButton::setOrientation( sal_Int32 orientation ) throw (NoSupportException, RuntimeException)
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         lcl_modifyStyle( GetWindow(), WB_HSCROLL, orientation == ScrollBarOrientation::HORIZONTAL );
+     }
+@@ -241,7 +241,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void VCLXSpinButton::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+     {
+-        ::vos::OClearableGuard aGuard( GetMutex() );
++        osl::ClearableSolarMutexGuard aGuard( GetMutex() );
+         Reference< XSpinValue > xKeepAlive( this );
+         SpinButton* pSpinButton = static_cast< SpinButton* >( GetWindow() );
+         if ( !pSpinButton )
+@@ -273,7 +273,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void SAL_CALL VCLXSpinButton::setProperty( const ::rtl::OUString& PropertyName, const Any& Value ) throw(RuntimeException)
+     {
+-	    ::vos::OGuard aGuard( GetMutex() );
++	    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         sal_Int32 nValue = 0;
+         sal_Bool  bIsLongValue = ( Value >>= nValue );
+@@ -323,7 +323,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     Any SAL_CALL VCLXSpinButton::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+     {
+-	    ::vos::OGuard aGuard( GetMutex() );
++	    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         Any aReturn;
+ 
+diff --git a/toolkit/source/awt/vclxsystemdependentwindow.cxx b/toolkit/source/awt/vclxsystemdependentwindow.cxx
+index eb89865..cf3ccc8 100644
+--- toolkit/source/awt/vclxsystemdependentwindow.cxx
++++ toolkit/source/awt/vclxsystemdependentwindow.cxx
+@@ -85,7 +85,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Any VCLXSystemDependentWindow::getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	// TODO, check the process id
+ 	::com::sun::star::uno::Any aRet;
+diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
+index 407d7c3..134601c 100644
+--- toolkit/source/awt/vclxtoolkit.cxx
++++ toolkit/source/awt/vclxtoolkit.cxx
+@@ -547,7 +547,7 @@ static void SAL_CALL ToolkitWorkerFunction( void* pArgs )
+ 	if( bInitedByVCLToolkit )
+ 	{
+ 		{
+-		osl::Guard< vos::IMutex > aGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		Application::Execute();
+ 		}
+ 		try
+@@ -702,7 +702,7 @@ void SAL_CALL VCLXToolkit::disposing()
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice > xRef;
+ 	VCLXVirtualDevice* pVDev = new VCLXVirtualDevice;
+ 
+-	osl::Guard< vos::IMutex > aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	VirtualDevice* pV = new VirtualDevice;
+ 	pV->SetOutputSizePixel( Size( Width, Height ) );
+@@ -754,7 +754,7 @@ Window*	VCLXToolkit::ImplCreateWindow( VCLXWindow** ppNewComp,
+ 
+ 	if ( nType )
+ 	{
+-		NAMESPACE_VOS(OGuard) aVclGuard( Application::GetSolarMutex()  );
++		osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex()  );
+ 		switch ( (WindowType)nType )
+ 		{
+ 			case WINDOW_CANCELBUTTON:
+@@ -1100,7 +1100,7 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::ImplCreateWindow(
+ {
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+-	osl::Guard< vos::IMutex > aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xRef;
+ 
+@@ -1222,7 +1222,7 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::ImplCreateWindow(
+             #elif defined OS2
+             aParentData.hWnd = (HWND)nWindowHandle;
+             #endif
+-            osl::Guard< vos::IMutex > aGuard( Application::GetSolarMutex() );
++            osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+             try
+             {
+                 pChildWindow = new WorkWindow( &aParentData );
+@@ -1287,7 +1287,7 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::ImplCreateWindow(
+ 	}
+     else if (nSystemType == com::sun::star::lang::SystemDependent::SYSTEM_JAVA)
+     {
+-        osl::Guard< vos::IMutex > aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         pChildWindow = new WorkWindow(0, Parent);
+     }
+ 
+@@ -1295,7 +1295,7 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::ImplCreateWindow(
+ 	if ( pChildWindow )
+ 	{
+         VCLXTopWindow* pPeer = new VCLXTopWindow(true);
+-        osl::Guard< vos::IMutex > aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		pPeer->SetWindow( pChildWindow );
+ 		xPeer = pPeer;
+ 	}
+@@ -1360,7 +1360,7 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::ImplCreateWindow(
+ 	    Window * pWindow = VCLUnoHelper::GetWindow( xWindow );
+         if ( pWindow )
+         {
+-            osl::Guard< vos::IMutex > aGuard(Application::GetSolarMutex());
++            osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+             xMsgBox->setCaptionText( aTitle );
+             xMsgBox->setMessageText( aMessage );
+         }
+diff --git a/toolkit/source/awt/vclxtopwindow.cxx b/toolkit/source/awt/vclxtopwindow.cxx
+index 1dc4379..b4daa09 100644
+--- toolkit/source/awt/vclxtopwindow.cxx
++++ toolkit/source/awt/vclxtopwindow.cxx
+@@ -174,7 +174,7 @@ VCLXTopWindow::~VCLXTopWindow()
+ 
+ ::com::sun::star::uno::Any VCLXTopWindow::getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	// TODO, check the process id
+ 	::com::sun::star::uno::Any aRet;
+@@ -216,21 +216,21 @@ VCLXTopWindow::~VCLXTopWindow()
+ 
+ void VCLXTopWindow::addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetTopWindowListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXTopWindow::removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetTopWindowListeners().removeInterface( rxListener );
+ }
+ 
+ void VCLXTopWindow::toFront(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -241,7 +241,7 @@ void VCLXTopWindow::toBack(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+ /* Not possible in VCL...
+ 
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -253,7 +253,7 @@ void VCLXTopWindow::toBack(  ) throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXTopWindow::setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& rxMenu ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	
+ 	SystemWindow* pWindow = (SystemWindow*) GetWindow();
+ 	if ( pWindow )
+diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
+index 490bc13..4890f96 100644
+--- toolkit/source/awt/vclxwindow.cxx
++++ toolkit/source/awt/vclxwindow.cxx
+@@ -277,7 +277,7 @@ private:
+ private:
+     oslInterlockedCount                 m_refCount;
+     VCLXWindow&                         mrAntiImpl;
+-    ::vos::IMutex&                      mrMutex;
++    osl::SolarMutex&                      mrMutex;
+     ::toolkit::AccessibilityClient      maAccFactory;
+     bool                                mbDisposed;
+     ::osl::Mutex                        maListenerContainerMutex;
+@@ -299,7 +299,7 @@ public:
+         the <type>VCLXWindow</type> instance which the object belongs to. Must
+         live longer then the object just being constructed.
+     */
+-    VCLXWindowImpl( VCLXWindow& _rAntiImpl, ::vos::IMutex& _rMutex );
++    VCLXWindowImpl( VCLXWindow& _rAntiImpl, osl::SolarMutex& _rMutex );
+ 
+     /** asynchronously notifies a mouse event to the VCLXWindow's XMouseListeners
+     */
+@@ -346,7 +346,7 @@ private:
+     */
+     void impl_notifyAnyEvent(
+         const ::rtl::Reference< ::comphelper::AnyEvent >& _rEvent,
+-        ::vos::OClearableGuard& _rGuard
++        osl::ClearableSolarMutexGuard& _rGuard
+     );
+ 
+ private:
+@@ -366,7 +366,7 @@ private:
+ };
+ 
+ //--------------------------------------------------------------------
+-VCLXWindowImpl::VCLXWindowImpl( VCLXWindow& _rAntiImpl, ::vos::IMutex& _rMutex )
++VCLXWindowImpl::VCLXWindowImpl( VCLXWindow& _rAntiImpl, osl::SolarMutex& _rMutex )
+     :m_refCount( 0 )
+     ,mrAntiImpl( _rAntiImpl )
+     ,mrMutex( _rMutex )
+@@ -390,7 +390,7 @@ VCLXWindowImpl::~VCLXWindowImpl()
+ //--------------------------------------------------------------------
+ void VCLXWindowImpl::disposing()
+ {
+-	::vos::OGuard aGuard( mrMutex );
++	osl::SolarMutexGuard aGuard( mrMutex );
+ #ifdef THREADED_NOTIFICATION
+     if ( mpAsyncNotifier.is() )
+     {
+@@ -409,7 +409,7 @@ void VCLXWindowImpl::disposing()
+ }
+ 
+ //--------------------------------------------------------------------
+-void VCLXWindowImpl::impl_notifyAnyEvent( const ::rtl::Reference< ::comphelper::AnyEvent >& _rEvent, ::vos::OClearableGuard& _rGuard )
++void VCLXWindowImpl::impl_notifyAnyEvent( const ::rtl::Reference< ::comphelper::AnyEvent >& _rEvent, osl::ClearableSolarMutexGuard& _rGuard )
+ {
+ #ifdef THREADED_NOTIFICATION
+     (void)_rGuard;
+@@ -438,7 +438,7 @@ void VCLXWindowImpl::impl_notifyAnyEvent( const ::rtl::Reference< ::comphelper::
+ //--------------------------------------------------------------------
+ void VCLXWindowImpl::notifyMouseEvent( const awt::MouseEvent& _rMouseEvent, MouseEventType _nType )
+ {
+-	::vos::OClearableGuard aGuard( mrMutex );
++	osl::ClearableSolarMutexGuard aGuard( mrMutex );
+     if ( mrAntiImpl.GetMouseListeners().getLength() )
+         impl_notifyAnyEvent( new AnyWindowEvent( _rMouseEvent, _nType ), aGuard );
+ }
+@@ -446,7 +446,7 @@ void VCLXWindowImpl::notifyMouseEvent( const awt::MouseEvent& _rMouseEvent, Mous
+ //--------------------------------------------------------------------
+ void VCLXWindowImpl::notifyPlainEvent( const lang::EventObject& _rPlainEvent, PlainEventType _nType )
+ {
+-	::vos::OClearableGuard aGuard( mrMutex );
++	osl::ClearableSolarMutexGuard aGuard( mrMutex );
+     if ( maWindow2Listeners.getLength() )
+         impl_notifyAnyEvent( new AnyWindowEvent( _rPlainEvent, _nType ), aGuard );
+ }
+@@ -458,7 +458,7 @@ IMPL_LINK( VCLXWindowImpl, OnProcessEvent, void*, EMPTYARG )
+     // work on a copy of the events array
+     EventArray aEventsCopy;
+     {
+-	    ::vos::OGuard aGuard( mrMutex );
++	    osl::SolarMutexGuard aGuard( mrMutex );
+         aEventsCopy = maEvents;
+         maEvents.clear();
+ 
+@@ -487,7 +487,7 @@ IMPL_LINK( VCLXWindowImpl, OnProcessEvent, void*, EMPTYARG )
+ //--------------------------------------------------------------------
+ void VCLXWindowImpl::processEvent( const ::comphelper::AnyEvent& _rEvent )
+ {
+-	::vos::OGuard aGuard( mrMutex );
++	osl::SolarMutexGuard aGuard( mrMutex );
+     if ( impl_isDisposed() )
+         // while we were waiting for our mutex, another thread disposed us
+         return;
+@@ -1108,7 +1108,7 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ uno::Reference< accessibility::XAccessibleContext > VCLXWindow::CreateAccessibleContext()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     return getAccessibleFactory().createAccessibleContext( this );
+ }
+ 
+@@ -1175,7 +1175,7 @@ IMPL_XTYPEPROVIDER_END
+ // ::com::sun::star::lang::Component
+ void VCLXWindow::dispose(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	mxViewGraphics = NULL;
+ 
+@@ -1232,14 +1232,14 @@ void VCLXWindow::dispose(  ) throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXWindow::addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetEventListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXWindow::removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetEventListeners().removeInterface( rxListener );
+ }
+@@ -1248,7 +1248,7 @@ void VCLXWindow::removeEventListener( const ::com::sun::star::uno::Reference< ::
+ // ::com::sun::star::awt::XWindow
+ void VCLXWindow::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+     {
+@@ -1261,7 +1261,7 @@ void VCLXWindow::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int3
+ 
+ ::com::sun::star::awt::Rectangle VCLXWindow::getPosSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Rectangle aBounds;
+ 	if ( GetWindow() )
+@@ -1277,7 +1277,7 @@ void VCLXWindow::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int3
+ 
+ void VCLXWindow::setVisible( sal_Bool bVisible ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -1301,7 +1301,7 @@ void VCLXWindow::setVisible( sal_Bool bVisible ) throw(::com::sun::star::uno::Ru
+ 
+ void VCLXWindow::setEnable( sal_Bool bEnable ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -1313,7 +1313,7 @@ void VCLXWindow::setEnable( sal_Bool bEnable ) throw(::com::sun::star::uno::Runt
+ 
+ void VCLXWindow::setFocus(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 		GetWindow()->GrabFocus();
+@@ -1321,7 +1321,7 @@ void VCLXWindow::setFocus(  ) throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXWindow::addWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetWindowListeners().addInterface( rxListener );
+ 
+@@ -1336,7 +1336,7 @@ void VCLXWindow::addWindowListener( const ::com::sun::star::uno::Reference< ::co
+ 
+ void VCLXWindow::removeWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     Reference< XWindowListener2 > xListener2( rxListener, UNO_QUERY );
+     if ( xListener2.is() )
+@@ -1347,70 +1347,70 @@ void VCLXWindow::removeWindowListener( const ::com::sun::star::uno::Reference< :
+ 
+ void VCLXWindow::addFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetFocusListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXWindow::removeFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetFocusListeners().removeInterface( rxListener );
+ }
+ 
+ void VCLXWindow::addKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetKeyListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXWindow::removeKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetKeyListeners().removeInterface( rxListener );
+ }
+ 
+ void VCLXWindow::addMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetMouseListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXWindow::removeMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetMouseListeners().removeInterface( rxListener );
+ }
+ 
+ void VCLXWindow::addMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetMouseMotionListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXWindow::removeMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetMouseMotionListeners().removeInterface( rxListener );
+ }
+ 
+ void VCLXWindow::addPaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetPaintListeners().addInterface( rxListener );
+ }
+ 
+ void VCLXWindow::removePaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	GetPaintListeners().removeInterface( rxListener );
+ }
+@@ -1425,7 +1425,7 @@ void VCLXWindow::removePaintListener( const ::com::sun::star::uno::Reference< ::
+ 
+ void VCLXWindow::setPointer( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPointer >& rxPointer ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	VCLXPointer* pPointer = VCLXPointer::GetImplementation( rxPointer );
+ 	if ( pPointer )
+@@ -1438,7 +1438,7 @@ void VCLXWindow::setPointer( const ::com::sun::star::uno::Reference< ::com::sun:
+ 
+ void VCLXWindow::setBackground( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -1458,7 +1458,7 @@ void VCLXWindow::setBackground( sal_Int32 nColor ) throw(::com::sun::star::uno::
+ 
+ void VCLXWindow::invalidate( sal_Int16 nInvalidateFlags ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 		GetWindow()->Invalidate( (sal_uInt16) nInvalidateFlags );
+@@ -1466,7 +1466,7 @@ void VCLXWindow::invalidate( sal_Int16 nInvalidateFlags ) throw(::com::sun::star
+ 
+ void VCLXWindow::invalidateRect( const ::com::sun::star::awt::Rectangle& rRect, sal_Int16 nInvalidateFlags ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 		GetWindow()->Invalidate( VCLRectangle(rRect), (sal_uInt16) nInvalidateFlags );
+@@ -1476,7 +1476,7 @@ void VCLXWindow::invalidateRect( const ::com::sun::star::awt::Rectangle& rRect,
+ // ::com::sun::star::awt::XVclWindowPeer
+ sal_Bool VCLXWindow::isChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >& rxPeer ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Bool bIsChild = sal_False;
+ 	Window* pWindow = GetWindow();
+@@ -1491,21 +1491,21 @@ sal_Bool VCLXWindow::isChild( const ::com::sun::star::uno::Reference< ::com::sun
+ 
+ void VCLXWindow::setDesignMode( sal_Bool bOn ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	mbDesignMode = bOn;
+ }
+ 
+ sal_Bool VCLXWindow::isDesignMode(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	return mbDesignMode;
+ }
+ 
+ void VCLXWindow::enableClipSiblings( sal_Bool bClip ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 		GetWindow()->EnableClipSiblings( bClip );
+@@ -1513,7 +1513,7 @@ void VCLXWindow::enableClipSiblings( sal_Bool bClip ) throw(::com::sun::star::un
+ 
+ void VCLXWindow::setForeground( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -1524,7 +1524,7 @@ void VCLXWindow::setForeground( sal_Int32 nColor ) throw(::com::sun::star::uno::
+ 
+ void VCLXWindow::setControlFont( const ::com::sun::star::awt::FontDescriptor& rFont ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 		GetWindow()->SetControlFont( VCLUnoHelper::CreateFont( rFont, GetWindow()->GetControlFont() ) );
+@@ -1532,7 +1532,7 @@ void VCLXWindow::setControlFont( const ::com::sun::star::awt::FontDescriptor& rF
+ 
+ void VCLXWindow::getStyles( sal_Int16 nType, ::com::sun::star::awt::FontDescriptor& Font, sal_Int32& ForegroundColor, sal_Int32& BackgroundColor ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -1633,7 +1633,7 @@ void VCLXWindow::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds, bool bWithDe
+ 
+ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2070,7 +2070,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
+ 
+ ::com::sun::star::uno::Any VCLXWindow::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	if ( GetWindow() )
+@@ -2263,7 +2263,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
+ // ::com::sun::star::awt::XLayoutConstrains
+ ::com::sun::star::awt::Size VCLXWindow::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	// Diese Methode sollte nur fuer Componenten gerufen werden, die zwar
+ 	// ueber das ::com::sun::star::awt::Toolkit erzeugt werden koennen, aber fuer die es
+@@ -2319,7 +2319,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
+ 
+ ::com::sun::star::awt::Size VCLXWindow::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aNewSize( rNewSize );
+ 	::com::sun::star::awt::Size aMinSize = getMinimumSize();
+@@ -2336,7 +2336,7 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
+ // ::com::sun::star::awt::XView
+ sal_Bool VCLXWindow::setGraphics( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& rxDevice ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( VCLUnoHelper::GetOutputDevice( rxDevice ) )
+ 		mxViewGraphics = rxDevice;
+@@ -2348,14 +2348,14 @@ sal_Bool VCLXWindow::setGraphics( const ::com::sun::star::uno::Reference< ::com:
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > VCLXWindow::getGraphics(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	return mxViewGraphics;
+ }
+ 
+ ::com::sun::star::awt::Size VCLXWindow::getSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	if ( GetWindow() )
+@@ -2385,7 +2385,7 @@ namespace
+ 
+ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+     if ( !pWindow )
+@@ -2481,7 +2481,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno:
+ 
+ void VCLXWindow::setZoom( float fZoomX, float /*fZoomY*/ ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 		GetWindow()->SetZoom( Fraction( fZoomX ) );
+@@ -2490,7 +2490,7 @@ void VCLXWindow::setZoom( float fZoomX, float /*fZoomY*/ ) throw(::com::sun::sta
+ // ::com::sun::star::lang::XEventListener
+ void SAL_CALL VCLXWindow::disposing( const ::com::sun::star::lang::EventObject& _rSource ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	// check if it comes from our AccessibleContext
+     uno::Reference< uno::XInterface > aAC( mxAccessibleContext, uno::UNO_QUERY );
+@@ -2507,7 +2507,7 @@ void SAL_CALL VCLXWindow::disposing( const ::com::sun::star::lang::EventObject&
+ {
+ 	using namespace ::com::sun::star;
+ 
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     if ( !mxAccessibleContext.is() && GetWindow() )
+     {
+@@ -2527,7 +2527,7 @@ void SAL_CALL VCLXWindow::disposing( const ::com::sun::star::lang::EventObject&
+ // ::com::sun::star::awt::XDockable
+ void SAL_CALL VCLXWindow::addDockableWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDockableWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     if( !mxDockableWindowListener.is() )
+         mxDockableWindowListener = xListener;
+@@ -2538,7 +2538,7 @@ void SAL_CALL VCLXWindow::addDockableWindowListener( const ::com::sun::star::uno
+ 
+ void SAL_CALL VCLXWindow::removeDockableWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDockableWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     if( mxDockableWindowListener == xListener )
+         mxDockableWindowListener.clear();
+@@ -2546,7 +2546,7 @@ void SAL_CALL VCLXWindow::removeDockableWindowListener( const ::com::sun::star::
+ 
+ void SAL_CALL VCLXWindow::enableDocking( sal_Bool bEnable ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2555,7 +2555,7 @@ void SAL_CALL VCLXWindow::enableDocking( sal_Bool bEnable ) throw (::com::sun::s
+ 
+ sal_Bool SAL_CALL VCLXWindow::isFloating(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+     if( pWindow )
+@@ -2566,7 +2566,7 @@ sal_Bool SAL_CALL VCLXWindow::isFloating(  ) throw (::com::sun::star::uno::Runti
+ 
+ void SAL_CALL VCLXWindow::setFloatingMode( sal_Bool bFloating ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+     if( pWindow )
+@@ -2575,7 +2575,7 @@ void SAL_CALL VCLXWindow::setFloatingMode( sal_Bool bFloating ) throw (::com::su
+ 
+ sal_Bool SAL_CALL VCLXWindow::isLocked(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+     if( pWindow )
+@@ -2586,7 +2586,7 @@ sal_Bool SAL_CALL VCLXWindow::isLocked(  ) throw (::com::sun::star::uno::Runtime
+ 
+ void SAL_CALL VCLXWindow::lock(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+     if( pWindow && !Window::GetDockingManager()->IsFloating( pWindow ) )
+@@ -2595,7 +2595,7 @@ void SAL_CALL VCLXWindow::lock(  ) throw (::com::sun::star::uno::RuntimeExceptio
+ 
+ void SAL_CALL VCLXWindow::unlock(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+     if( pWindow && !Window::GetDockingManager()->IsFloating( pWindow ) )
+@@ -2604,14 +2604,14 @@ void SAL_CALL VCLXWindow::unlock(  ) throw (::com::sun::star::uno::RuntimeExcept
+ void SAL_CALL VCLXWindow::startPopupMode( const ::com::sun::star::awt::Rectangle& ) throw (::com::sun::star::uno::RuntimeException)
+ {
+     // TODO: remove interface in the next incompatible build
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ }
+ 
+ sal_Bool SAL_CALL VCLXWindow::isInPopupMode(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+     // TODO: remove interface in the next incompatible build
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     return FALSE;
+ }
+ 
+@@ -2620,7 +2620,7 @@ sal_Bool SAL_CALL VCLXWindow::isInPopupMode(  ) throw (::com::sun::star::uno::Ru
+ 
+ void SAL_CALL VCLXWindow::setOutputSize( const ::com::sun::star::awt::Size& aSize ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     Window *pWindow;
+     if( (pWindow = GetWindow()) != NULL )
+     {
+@@ -2634,7 +2634,7 @@ void SAL_CALL VCLXWindow::setOutputSize( const ::com::sun::star::awt::Size& aSiz
+ 
+ ::com::sun::star::awt::Size SAL_CALL VCLXWindow::getOutputSize(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     Window *pWindow;
+     if( (pWindow = GetWindow()) != NULL )
+     {
+@@ -2650,7 +2650,7 @@ void SAL_CALL VCLXWindow::setOutputSize( const ::com::sun::star::awt::Size& aSiz
+ 
+ sal_Bool SAL_CALL VCLXWindow::isVisible(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     if( GetWindow() )
+         return GetWindow()->IsVisible();
+     else
+@@ -2659,7 +2659,7 @@ sal_Bool SAL_CALL VCLXWindow::isVisible(  ) throw (::com::sun::star::uno::Runtim
+ 
+ sal_Bool SAL_CALL VCLXWindow::isActive(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     if( GetWindow() )
+         return GetWindow()->IsActive();
+     else
+@@ -2669,7 +2669,7 @@ sal_Bool SAL_CALL VCLXWindow::isActive(  ) throw (::com::sun::star::uno::Runtime
+ 
+ sal_Bool SAL_CALL VCLXWindow::isEnabled(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     if( GetWindow() )
+         return GetWindow()->IsEnabled();
+     else
+@@ -2678,7 +2678,7 @@ sal_Bool SAL_CALL VCLXWindow::isEnabled(  ) throw (::com::sun::star::uno::Runtim
+ 
+ sal_Bool SAL_CALL VCLXWindow::hasFocus(  ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     if( GetWindow() )
+         return GetWindow()->HasFocus();
+     else
+@@ -2690,7 +2690,7 @@ sal_Bool SAL_CALL VCLXWindow::hasFocus(  ) throw (::com::sun::star::uno::Runtime
+ UnoPropertyArrayHelper *
+ VCLXWindow::GetPropHelper()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     if (mpPropHelper == NULL)
+ 	{
+ 	    std::list< sal_uInt16 > aIDs;
+diff --git a/toolkit/source/awt/vclxwindows.cxx b/toolkit/source/awt/vclxwindows.cxx
+index b8df71d..d5837d0 100644
+--- toolkit/source/awt/vclxwindows.cxx
++++ toolkit/source/awt/vclxwindows.cxx
+@@ -270,7 +270,7 @@ void VCLXImageConsumer::ImplUpdateImage( sal_Bool bGetNewImage )
+ 
+ void VCLXImageConsumer::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, short Flags ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -283,21 +283,21 @@ void VCLXImageConsumer::setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, s
+ 
+ void VCLXImageConsumer::init( sal_Int32 Width, sal_Int32 Height ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maImageConsumer.Init( Width, Height );
+ }
+ 
+ void VCLXImageConsumer::setColorModel( sal_Int16 BitCount, const ::com::sun::star::uno::Sequence< sal_Int32 >& RGBAPal, sal_Int32 RedMask, sal_Int32 GreenMask, sal_Int32 BlueMask, sal_Int32 AlphaMask ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     maImageConsumer.SetColorModel( BitCount, RGBAPal.getLength(), (const sal_uInt32*) RGBAPal.getConstArray(), RedMask, GreenMask, BlueMask, AlphaMask );
+ }
+ 
+ void VCLXImageConsumer::setPixelsByBytes( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, const ::com::sun::star::uno::Sequence< sal_Int8 >& ProducerData, sal_Int32 Offset, sal_Int32 Scansize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maImageConsumer.SetPixelsByBytes( X, Y, Width, Height, (sal_uInt8*)ProducerData.getConstArray(), Offset, Scansize );
+ 	ImplUpdateImage( sal_True );
+@@ -305,7 +305,7 @@ void VCLXImageConsumer::setPixelsByBytes( sal_Int32 X, sal_Int32 Y, sal_Int32 Wi
+ 
+ void VCLXImageConsumer::setPixelsByLongs( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, const ::com::sun::star::uno::Sequence< sal_Int32 >& ProducerData, sal_Int32 Offset, sal_Int32 Scansize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     maImageConsumer.SetPixelsByLongs( X, Y, Width, Height, (const sal_uInt32*) ProducerData.getConstArray(), Offset, Scansize );
+ 	ImplUpdateImage( sal_True );
+@@ -313,7 +313,7 @@ void VCLXImageConsumer::setPixelsByLongs( sal_Int32 X, sal_Int32 Y, sal_Int32 Wi
+ 
+ void VCLXImageConsumer::complete( sal_Int32 Status, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageProducer > & ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maImageConsumer.Completed( Status );
+ 	ImplUpdateImage( sal_True );
+@@ -321,7 +321,7 @@ void VCLXImageConsumer::complete( sal_Int32 Status, const ::com::sun::star::uno:
+ 
+ void VCLXImageConsumer::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Button* pButton = static_cast< Button* >( GetWindow() );
+     if ( !pButton )
+@@ -374,7 +374,7 @@ void VCLXImageConsumer::setProperty( const ::rtl::OUString& PropertyName, const
+ 
+ ::com::sun::star::uno::Any VCLXImageConsumer::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+     if ( !GetWindow() )
+@@ -466,7 +466,7 @@ VCLXButton::VCLXButton()
+ 
+ void VCLXButton::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -477,31 +477,31 @@ void VCLXButton::dispose() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXButton::addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.addInterface( l );
+ }
+ 
+ void VCLXButton::removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.removeInterface( l );
+ }
+ 
+ void VCLXButton::addItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l  )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.addInterface( l );
+ }
+ 
+ void VCLXButton::removeItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.removeInterface( l );
+ }
+ 
+ void VCLXButton::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -510,14 +510,14 @@ void VCLXButton::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun::sta
+ 
+ void VCLXButton::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	maActionCommand = rCommand;
+ }
+ 
+ ::com::sun::star::awt::Size VCLXButton::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	PushButton* pButton = (PushButton*) GetWindow();
+@@ -536,7 +536,7 @@ void VCLXButton::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com
+ 
+ ::com::sun::star::awt::Size VCLXButton::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz = VCLSize(rNewSize);
+ 	PushButton* pButton = (PushButton*) GetWindow();
+@@ -564,7 +564,7 @@ void VCLXButton::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com
+ 
+ void VCLXButton::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Button* pButton = (Button*)GetWindow();
+ 	if ( pButton )
+@@ -609,7 +609,7 @@ void VCLXButton::setProperty( const ::rtl::OUString& PropertyName, const ::com::
+ 
+ ::com::sun::star::uno::Any VCLXButton::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	Button* pButton = (Button*)GetWindow();
+@@ -731,7 +731,7 @@ void VCLXImageControl::ImplSetNewImage()
+ 
+ ::com::sun::star::awt::Size VCLXImageControl::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz = GetBitmap().GetSizePixel();
+ 	aSz = ImplCalcWindowSize( aSz );
+@@ -746,7 +746,7 @@ void VCLXImageControl::ImplSetNewImage()
+ 
+ ::com::sun::star::awt::Size VCLXImageControl::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz = rNewSize;
+ 	::com::sun::star::awt::Size aMinSz = getMinimumSize();
+@@ -759,7 +759,7 @@ void VCLXImageControl::ImplSetNewImage()
+ 
+ void VCLXImageControl::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ImageControl* pImageControl = (ImageControl*)GetWindow();
+ 	if ( pImageControl )
+@@ -783,7 +783,7 @@ void VCLXImageControl::setProperty( const ::rtl::OUString& PropertyName, const :
+ 
+ ::com::sun::star::uno::Any VCLXImageControl::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	ImageControl* pImageControl = (ImageControl*)GetWindow();
+@@ -860,7 +860,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXCheckBox::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -870,37 +870,37 @@ void VCLXCheckBox::dispose() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXCheckBox::addItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.addInterface( l );
+ }
+ 
+ void VCLXCheckBox::removeItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.removeInterface( l );
+ }
+ 
+ void VCLXCheckBox::addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.addInterface( l );
+ }
+ 
+ void VCLXCheckBox::removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.removeInterface( l );
+ }
+ 
+ void VCLXCheckBox::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionCommand = rCommand;
+ }
+ 
+ void VCLXCheckBox::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -909,7 +909,7 @@ void VCLXCheckBox::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun::s
+ 
+ void VCLXCheckBox::setState( short n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	CheckBox* pCheckBox = (CheckBox*)GetWindow();
+ 	if ( pCheckBox)
+@@ -937,7 +937,7 @@ void VCLXCheckBox::setState( short n ) throw(::com::sun::star::uno::RuntimeExcep
+ 
+ short VCLXCheckBox::getState() throw(::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
++    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     short nState = -1;
+     CheckBox* pCheckBox = (CheckBox*)GetWindow();
+@@ -957,7 +957,7 @@ short VCLXCheckBox::getState() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	CheckBox* pCheckBox = (CheckBox*)GetWindow();
+ 	if ( pCheckBox)
+@@ -966,7 +966,7 @@ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::Run
+ 
+ ::com::sun::star::awt::Size VCLXCheckBox::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	CheckBox* pCheckBox = (CheckBox*) GetWindow();
+@@ -982,7 +982,7 @@ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::Run
+ 
+ ::com::sun::star::awt::Size VCLXCheckBox::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz = VCLSize(rNewSize);
+ 	CheckBox* pCheckBox = (CheckBox*) GetWindow();
+@@ -999,7 +999,7 @@ void VCLXCheckBox::enableTriState( sal_Bool b ) throw(::com::sun::star::uno::Run
+ 
+ void VCLXCheckBox::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	CheckBox* pCheckBox = (CheckBox*)GetWindow();
+ 	if ( pCheckBox )
+@@ -1035,7 +1035,7 @@ void VCLXCheckBox::setProperty( const ::rtl::OUString& PropertyName, const ::com
+ 
+ ::com::sun::star::uno::Any VCLXCheckBox::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	CheckBox* pCheckBox = (CheckBox*)GetWindow();
+@@ -1157,7 +1157,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXRadioButton::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -1167,7 +1167,7 @@ void VCLXRadioButton::dispose() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	RadioButton* pButton = (RadioButton*)GetWindow();
+ 	if ( pButton )
+@@ -1209,7 +1209,7 @@ void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, const ::
+ 
+ ::com::sun::star::uno::Any VCLXRadioButton::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	RadioButton* pButton = (RadioButton*)GetWindow();
+@@ -1238,31 +1238,31 @@ void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, const ::
+ 
+ void VCLXRadioButton::addItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.addInterface( l );
+ }
+ 
+ void VCLXRadioButton::removeItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.removeInterface( l );
+ }
+ 
+ void VCLXRadioButton::addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l  )throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.addInterface( l );
+ }
+ 
+ void VCLXRadioButton::removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.removeInterface( l );
+ }
+ 
+ void VCLXRadioButton::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -1271,13 +1271,13 @@ void VCLXRadioButton::setLabel( const ::rtl::OUString& rLabel ) throw(::com::sun
+ 
+ void VCLXRadioButton::setActionCommand( const ::rtl::OUString& rCommand ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionCommand = rCommand;
+ }
+ 
+ void VCLXRadioButton::setState( sal_Bool b ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	RadioButton* pRadioButton = (RadioButton*)GetWindow();
+ 	if ( pRadioButton)
+@@ -1296,7 +1296,7 @@ void VCLXRadioButton::setState( sal_Bool b ) throw(::com::sun::star::uno::Runtim
+ 
+ sal_Bool VCLXRadioButton::getState() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	RadioButton* pRadioButton = (RadioButton*)GetWindow();
+ 	return pRadioButton ? pRadioButton->IsChecked() : sal_False;
+@@ -1304,7 +1304,7 @@ sal_Bool VCLXRadioButton::getState() throw(::com::sun::star::uno::RuntimeExcepti
+ 
+ ::com::sun::star::awt::Size VCLXRadioButton::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	RadioButton* pRadioButton = (RadioButton*) GetWindow();
+@@ -1320,7 +1320,7 @@ sal_Bool VCLXRadioButton::getState() throw(::com::sun::star::uno::RuntimeExcepti
+ 
+ ::com::sun::star::awt::Size VCLXRadioButton::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz = VCLSize(rNewSize);
+ 	RadioButton* pRadioButton = (RadioButton*) GetWindow();
+@@ -1409,19 +1409,19 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXSpinField::addSpinListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XSpinListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maSpinListeners.addInterface( l );
+ }
+ 
+ void VCLXSpinField::removeSpinListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XSpinListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maSpinListeners.removeInterface( l );
+ }
+ 
+ void VCLXSpinField::up() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	SpinField* pSpinField = (SpinField*) GetWindow();
+ 	if ( pSpinField )
+@@ -1430,7 +1430,7 @@ void VCLXSpinField::up() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXSpinField::down() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	SpinField* pSpinField = (SpinField*) GetWindow();
+ 	if ( pSpinField )
+@@ -1439,7 +1439,7 @@ void VCLXSpinField::down() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXSpinField::first() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	SpinField* pSpinField = (SpinField*) GetWindow();
+ 	if ( pSpinField )
+@@ -1448,7 +1448,7 @@ void VCLXSpinField::first() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXSpinField::last() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	SpinField* pSpinField = (SpinField*) GetWindow();
+ 	if ( pSpinField )
+@@ -1457,7 +1457,7 @@ void VCLXSpinField::last() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXSpinField::enableRepeat( sal_Bool bRepeat ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -1565,7 +1565,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXListBox::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -1576,31 +1576,31 @@ void VCLXListBox::dispose() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXListBox::addItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.addInterface( l );
+ }
+ 
+ void VCLXListBox::removeItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.removeInterface( l );
+ }
+ 
+ void VCLXListBox::addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.addInterface( l );
+ }
+ 
+ void VCLXListBox::removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.removeInterface( l );
+ }
+ 
+ void VCLXListBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1609,7 +1609,7 @@ void VCLXListBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) throw(
+ 
+ void VCLXListBox::addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUString>& aItems, sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1633,7 +1633,7 @@ void VCLXListBox::addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUStri
+ 
+ void VCLXListBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1645,7 +1645,7 @@ void VCLXListBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) throw(::com::s
+ 
+ sal_Int16 VCLXListBox::getItemCount() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	return pBox ? pBox->GetEntryCount() : 0;
+@@ -1653,7 +1653,7 @@ sal_Int16 VCLXListBox::getItemCount() throw(::com::sun::star::uno::RuntimeExcept
+ 
+ ::rtl::OUString VCLXListBox::getItem( sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	String aItem;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1664,7 +1664,7 @@ sal_Int16 VCLXListBox::getItemCount() throw(::com::sun::star::uno::RuntimeExcept
+ 
+ ::com::sun::star::uno::Sequence< ::rtl::OUString> VCLXListBox::getItems() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Sequence< ::rtl::OUString> aSeq;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1683,7 +1683,7 @@ sal_Int16 VCLXListBox::getItemCount() throw(::com::sun::star::uno::RuntimeExcept
+ 
+ sal_Int16 VCLXListBox::getSelectedItemPos() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	return pBox ? pBox->GetSelectEntryPos() : 0;
+@@ -1691,7 +1691,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() throw(::com::sun::star::uno::Runtime
+ 
+ ::com::sun::star::uno::Sequence<sal_Int16> VCLXListBox::getSelectedItemsPos() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Sequence<sal_Int16> aSeq;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1707,7 +1707,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() throw(::com::sun::star::uno::Runtime
+ 
+ ::rtl::OUString VCLXListBox::getSelectedItem() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	String aItem;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1718,7 +1718,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() throw(::com::sun::star::uno::Runtime
+ 
+ ::com::sun::star::uno::Sequence< ::rtl::OUString> VCLXListBox::getSelectedItems() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Sequence< ::rtl::OUString> aSeq;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1734,7 +1734,7 @@ sal_Int16 VCLXListBox::getSelectedItemPos() throw(::com::sun::star::uno::Runtime
+ 
+ void VCLXListBox::selectItemPos( sal_Int16 nPos, sal_Bool bSelect ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox && ( pBox->IsEntryPosSelected( nPos ) != bSelect ) )
+@@ -1753,7 +1753,7 @@ void VCLXListBox::selectItemPos( sal_Int16 nPos, sal_Bool bSelect ) throw(::com:
+ 
+ void VCLXListBox::selectItemsPos( const ::com::sun::star::uno::Sequence<sal_Int16>& aPositions, sal_Bool bSelect ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1784,7 +1784,7 @@ void VCLXListBox::selectItemsPos( const ::com::sun::star::uno::Sequence<sal_Int1
+ 
+ void VCLXListBox::selectItem( const ::rtl::OUString& rItemText, sal_Bool bSelect ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1797,7 +1797,7 @@ void VCLXListBox::selectItem( const ::rtl::OUString& rItemText, sal_Bool bSelect
+ 
+ void VCLXListBox::setDropDownLineCount( sal_Int16 nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1806,7 +1806,7 @@ void VCLXListBox::setDropDownLineCount( sal_Int16 nLines ) throw(::com::sun::sta
+ 
+ sal_Int16 VCLXListBox::getDropDownLineCount() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int16 nLines = 0;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1817,7 +1817,7 @@ sal_Int16 VCLXListBox::getDropDownLineCount() throw(::com::sun::star::uno::Runti
+ 
+ sal_Bool VCLXListBox::isMutipleMode() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Bool bMulti = sal_False;
+ 	ListBox* pBox = (ListBox*) GetWindow();
+@@ -1828,7 +1828,7 @@ sal_Bool VCLXListBox::isMutipleMode() throw(::com::sun::star::uno::RuntimeExcept
+ 
+ void VCLXListBox::setMultipleMode( sal_Bool bMulti ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1837,7 +1837,7 @@ void VCLXListBox::setMultipleMode( sal_Bool bMulti ) throw(::com::sun::star::uno
+ 
+ void VCLXListBox::makeVisible( sal_Int16 nEntry ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pBox = (ListBox*) GetWindow();
+ 	if ( pBox )
+@@ -1896,14 +1896,14 @@ void VCLXListBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > VCLXListBox::CreateAccessibleContext()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     return getAccessibleFactory().createAccessibleContext( this );
+ }
+ 
+ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ListBox* pListBox = (ListBox*)GetWindow();
+ 	if ( pListBox )
+@@ -1970,7 +1970,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ 
+ ::com::sun::star::uno::Any VCLXListBox::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	ListBox* pListBox = (ListBox*)GetWindow();
+@@ -2016,7 +2016,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ 
+ ::com::sun::star::awt::Size VCLXListBox::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	ListBox* pListBox = (ListBox*) GetWindow();
+@@ -2027,7 +2027,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ 
+ ::com::sun::star::awt::Size VCLXListBox::getPreferredSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	ListBox* pListBox = (ListBox*) GetWindow();
+@@ -2042,7 +2042,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ 
+ ::com::sun::star::awt::Size VCLXListBox::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz = VCLSize(rNewSize);
+ 	ListBox* pListBox = (ListBox*) GetWindow();
+@@ -2053,7 +2053,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ 
+ ::com::sun::star::awt::Size VCLXListBox::getMinimumSize( sal_Int16 nCols, sal_Int16 nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	ListBox* pListBox = (ListBox*) GetWindow();
+@@ -2064,7 +2064,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+ 
+ void VCLXListBox::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	nCols = nLines = 0;
+ 	ListBox* pListBox = (ListBox*) GetWindow();
+@@ -2127,7 +2127,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXMessageBox::setCaptionText( const ::rtl::OUString& rText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2136,7 +2136,7 @@ void VCLXMessageBox::setCaptionText( const ::rtl::OUString& rText ) throw(::com:
+ 
+ ::rtl::OUString VCLXMessageBox::getCaptionText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	String aText;
+ 	Window* pWindow = GetWindow();
+@@ -2147,7 +2147,7 @@ void VCLXMessageBox::setCaptionText( const ::rtl::OUString& rText ) throw(::com:
+ 
+ void VCLXMessageBox::setMessageText( const ::rtl::OUString& rText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MessBox* pBox = (MessBox*)GetWindow();
+ 	if ( pBox )
+@@ -2156,7 +2156,7 @@ void VCLXMessageBox::setMessageText( const ::rtl::OUString& rText ) throw(::com:
+ 
+ ::rtl::OUString VCLXMessageBox::getMessageText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	MessBox* pBox = (MessBox*)GetWindow();
+@@ -2167,7 +2167,7 @@ void VCLXMessageBox::setMessageText( const ::rtl::OUString& rText ) throw(::com:
+ 
+ sal_Int16 VCLXMessageBox::execute() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	MessBox* pBox = (MessBox*)GetWindow();
+ 	return pBox ? pBox->Execute() : 0;
+@@ -2207,7 +2207,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2216,7 +2216,7 @@ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star
+ 
+ ::rtl::OUString VCLXDialog::getTitle() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aTitle;
+ 	Window* pWindow = GetWindow();
+@@ -2227,7 +2227,7 @@ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star
+ 
+ sal_Int16 VCLXDialog::execute() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int16 nRet = 0;
+ 	if ( GetWindow() )
+@@ -2251,7 +2251,7 @@ sal_Int16 VCLXDialog::execute() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXDialog::endExecute() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Dialog* pDlg = (Dialog*) GetWindow();
+ 	if ( pDlg )
+@@ -2260,7 +2260,7 @@ void VCLXDialog::endExecute() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void SAL_CALL VCLXDialog::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	Window* pWindow = GetWindow();
+ 
+ 	if ( pWindow )
+@@ -2281,7 +2281,7 @@ void SAL_CALL VCLXDialog::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::s
+ 	::com::sun::star::awt::DeviceInfo aInfo = VCLXDevice::getInfo();
+ 
+ #if SUPD >= 634
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	Dialog* pDlg = (Dialog*) GetWindow();
+ 	if ( pDlg )
+ 	    pDlg->GetDrawWindowBorder( aInfo.LeftInset, aInfo.TopInset, aInfo.RightInset, aInfo.BottomInset );
+@@ -2343,7 +2343,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXFixedText::setText( const ::rtl::OUString& Text ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2352,7 +2352,7 @@ void VCLXFixedText::setText( const ::rtl::OUString& Text ) throw(::com::sun::sta
+ 
+ ::rtl::OUString VCLXFixedText::getText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	Window* pWindow = GetWindow();
+@@ -2363,7 +2363,7 @@ void VCLXFixedText::setText( const ::rtl::OUString& Text ) throw(::com::sun::sta
+ 
+ void VCLXFixedText::setAlignment( short nAlign ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2384,7 +2384,7 @@ void VCLXFixedText::setAlignment( short nAlign ) throw(::com::sun::star::uno::Ru
+ 
+ short VCLXFixedText::getAlignment() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	short nAlign = 0;
+ 	Window* pWindow = GetWindow();
+@@ -2403,7 +2403,7 @@ short VCLXFixedText::getAlignment() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ ::com::sun::star::awt::Size VCLXFixedText::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	FixedText* pFixedText = (FixedText*)GetWindow();
+@@ -2419,7 +2419,7 @@ short VCLXFixedText::getAlignment() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ ::com::sun::star::awt::Size VCLXFixedText::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz = rNewSize;
+ 	::com::sun::star::awt::Size aMinSz = getMinimumSize();
+@@ -2484,7 +2484,7 @@ IMPL_XTYPEPROVIDER_END
+ // ::com::sun::star::lang::XComponent
+ void VCLXScrollBar::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -2495,19 +2495,19 @@ void VCLXScrollBar::dispose() throw(::com::sun::star::uno::RuntimeException)
+ // ::com::sun::star::awt::XScrollbar
+ void VCLXScrollBar::addAdjustmentListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XAdjustmentListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maAdjustmentListeners.addInterface( l );
+ }
+ 
+ void VCLXScrollBar::removeAdjustmentListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XAdjustmentListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maAdjustmentListeners.removeInterface( l );
+ }
+ 
+ void VCLXScrollBar::setValue( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	if ( pScrollBar )
+@@ -2516,7 +2516,7 @@ void VCLXScrollBar::setValue( sal_Int32 n ) throw(::com::sun::star::uno::Runtime
+ 
+ void VCLXScrollBar::setValues( sal_Int32 nValue, sal_Int32 nVisible, sal_Int32 nMax ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	if ( pScrollBar )
+@@ -2529,7 +2529,7 @@ void VCLXScrollBar::setValues( sal_Int32 nValue, sal_Int32 nVisible, sal_Int32 n
+ 
+ sal_Int32 VCLXScrollBar::getValue() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	return pScrollBar ? pScrollBar->GetThumbPos() : 0;
+@@ -2537,7 +2537,7 @@ sal_Int32 VCLXScrollBar::getValue() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXScrollBar::setMaximum( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	if ( pScrollBar )
+@@ -2546,7 +2546,7 @@ void VCLXScrollBar::setMaximum( sal_Int32 n ) throw(::com::sun::star::uno::Runti
+ 
+ sal_Int32 VCLXScrollBar::getMaximum() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	return pScrollBar ? pScrollBar->GetRangeMax() : 0;
+@@ -2554,7 +2554,7 @@ sal_Int32 VCLXScrollBar::getMaximum() throw(::com::sun::star::uno::RuntimeExcept
+ 
+ void VCLXScrollBar::setMinimum( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = static_cast< ScrollBar* >( GetWindow() );
+ 	if ( pScrollBar )
+@@ -2563,7 +2563,7 @@ void VCLXScrollBar::setMinimum( sal_Int32 n ) throw(::com::sun::star::uno::Runti
+ 
+ sal_Int32 VCLXScrollBar::getMinimum() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = static_cast< ScrollBar* >( GetWindow() );
+ 	return pScrollBar ? pScrollBar->GetRangeMin() : 0;
+@@ -2571,7 +2571,7 @@ sal_Int32 VCLXScrollBar::getMinimum() throw(::com::sun::star::uno::RuntimeExcept
+ 
+ void VCLXScrollBar::setLineIncrement( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	if ( pScrollBar )
+@@ -2580,7 +2580,7 @@ void VCLXScrollBar::setLineIncrement( sal_Int32 n ) throw(::com::sun::star::uno:
+ 
+ sal_Int32 VCLXScrollBar::getLineIncrement() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	return pScrollBar ? pScrollBar->GetLineSize() : 0;
+@@ -2588,7 +2588,7 @@ sal_Int32 VCLXScrollBar::getLineIncrement() throw(::com::sun::star::uno::Runtime
+ 
+ void VCLXScrollBar::setBlockIncrement( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	if ( pScrollBar )
+@@ -2597,7 +2597,7 @@ void VCLXScrollBar::setBlockIncrement( sal_Int32 n ) throw(::com::sun::star::uno
+ 
+ sal_Int32 VCLXScrollBar::getBlockIncrement() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	return pScrollBar ? pScrollBar->GetPageSize() : 0;
+@@ -2605,7 +2605,7 @@ sal_Int32 VCLXScrollBar::getBlockIncrement() throw(::com::sun::star::uno::Runtim
+ 
+ void VCLXScrollBar::setVisibleSize( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	if ( pScrollBar )
+@@ -2614,7 +2614,7 @@ void VCLXScrollBar::setVisibleSize( sal_Int32 n ) throw(::com::sun::star::uno::R
+ 
+ sal_Int32 VCLXScrollBar::getVisibleSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*) GetWindow();
+ 	return pScrollBar ? pScrollBar->GetVisibleSize() : 0;
+@@ -2622,7 +2622,7 @@ sal_Int32 VCLXScrollBar::getVisibleSize() throw(::com::sun::star::uno::RuntimeEx
+ 
+ void VCLXScrollBar::setOrientation( sal_Int32 n ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Window* pWindow = GetWindow();
+ 	if ( pWindow )
+@@ -2641,7 +2641,7 @@ void VCLXScrollBar::setOrientation( sal_Int32 n ) throw(::com::sun::star::uno::R
+ 
+ sal_Int32 VCLXScrollBar::getOrientation() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 n = 0;
+ 	Window* pWindow = GetWindow();
+@@ -2660,7 +2660,7 @@ sal_Int32 VCLXScrollBar::getOrientation() throw(::com::sun::star::uno::RuntimeEx
+ // ::com::sun::star::awt::VclWindowPeer
+ void VCLXScrollBar::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ScrollBar* pScrollBar = (ScrollBar*)GetWindow();
+ 	if ( pScrollBar )
+@@ -2775,7 +2775,7 @@ void VCLXScrollBar::setProperty( const ::rtl::OUString& PropertyName, const ::co
+ 
+ ::com::sun::star::uno::Any VCLXScrollBar::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	ScrollBar* pScrollBar = (ScrollBar*)GetWindow();
+@@ -2952,7 +2952,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXEdit::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -2962,19 +2962,19 @@ void VCLXEdit::dispose() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXEdit::addTextListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	GetTextListeners().addInterface( l );
+ }
+ 
+ void VCLXEdit::removeTextListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	GetTextListeners().removeInterface( l );
+ }
+ 
+ void VCLXEdit::setText( const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*)GetWindow();
+ 	if ( pEdit )
+@@ -2991,7 +2991,7 @@ void VCLXEdit::setText( const ::rtl::OUString& aText ) throw(::com::sun::star::u
+ 
+ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*)GetWindow();
+ 	if ( pEdit )
+@@ -3009,7 +3009,7 @@ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const :
+ 
+ ::rtl::OUString VCLXEdit::getText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	Window* pWindow = GetWindow();
+@@ -3020,7 +3020,7 @@ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const :
+ 
+ ::rtl::OUString VCLXEdit::getSelectedText() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aText;
+ 	Edit* pEdit = (Edit*) GetWindow();
+@@ -3032,7 +3032,7 @@ void VCLXEdit::insertText( const ::com::sun::star::awt::Selection& rSel, const :
+ 
+ void VCLXEdit::setSelection( const ::com::sun::star::awt::Selection& aSelection ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*) GetWindow();
+ 	if ( pEdit )
+@@ -3041,7 +3041,7 @@ void VCLXEdit::setSelection( const ::com::sun::star::awt::Selection& aSelection
+ 
+ ::com::sun::star::awt::Selection VCLXEdit::getSelection() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Selection aSel;
+ 	Edit* pEdit = (Edit*) GetWindow();
+@@ -3052,7 +3052,7 @@ void VCLXEdit::setSelection( const ::com::sun::star::awt::Selection& aSelection
+ 
+ sal_Bool VCLXEdit::isEditable() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*) GetWindow();
+ 	return ( pEdit && !pEdit->IsReadOnly() && pEdit->IsEnabled() ) ? sal_True : sal_False;
+@@ -3060,7 +3060,7 @@ sal_Bool VCLXEdit::isEditable() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXEdit::setEditable( sal_Bool bEditable ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*) GetWindow();
+ 	if ( pEdit )
+@@ -3070,7 +3070,7 @@ void VCLXEdit::setEditable( sal_Bool bEditable ) throw(::com::sun::star::uno::Ru
+ 
+ void VCLXEdit::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*) GetWindow();
+ 	if ( pEdit )
+@@ -3079,7 +3079,7 @@ void VCLXEdit::setMaxTextLen( sal_Int16 nLen ) throw(::com::sun::star::uno::Runt
+ 
+ sal_Int16 VCLXEdit::getMaxTextLen() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*) GetWindow();
+ 	return pEdit ? pEdit->GetMaxTextLen() : 0;
+@@ -3087,7 +3087,7 @@ sal_Int16 VCLXEdit::getMaxTextLen() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXEdit::setEchoChar( sal_Unicode cEcho ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*) GetWindow();
+ 	if ( pEdit )
+@@ -3096,7 +3096,7 @@ void VCLXEdit::setEchoChar( sal_Unicode cEcho ) throw(::com::sun::star::uno::Run
+ 
+ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Edit* pEdit = (Edit*)GetWindow();
+ 	if ( pEdit )
+@@ -3141,7 +3141,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::su
+ 
+ ::com::sun::star::uno::Any VCLXEdit::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	Edit* pEdit = (Edit*)GetWindow();
+@@ -3173,7 +3173,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::su
+ 
+ ::com::sun::star::awt::Size VCLXEdit::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	Edit* pEdit = (Edit*) GetWindow();
+@@ -3184,7 +3184,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::su
+ 
+ ::com::sun::star::awt::Size VCLXEdit::getPreferredSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	Edit* pEdit = (Edit*) GetWindow();
+@@ -3198,7 +3198,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::su
+ 
+ ::com::sun::star::awt::Size VCLXEdit::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::awt::Size aSz = rNewSize;
+ 	::com::sun::star::awt::Size aMinSz = getMinimumSize();
+@@ -3210,7 +3210,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::su
+ 
+ ::com::sun::star::awt::Size VCLXEdit::getMinimumSize( sal_Int16 nCols, sal_Int16 ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	Edit* pEdit = (Edit*) GetWindow();
+@@ -3226,7 +3226,7 @@ void VCLXEdit::setProperty( const ::rtl::OUString& PropertyName, const ::com::su
+ 
+ void VCLXEdit::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	nLines = 1;
+ 	nCols = 0;
+@@ -3313,14 +3313,14 @@ IMPL_XTYPEPROVIDER_END
+ 
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > VCLXComboBox::CreateAccessibleContext()
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+     return getAccessibleFactory().createAccessibleContext( this );
+ }
+ 
+ void VCLXComboBox::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::lang::EventObject aObj;
+ 	aObj.Source = (::cppu::OWeakObject*)this;
+@@ -3332,31 +3332,31 @@ void VCLXComboBox::dispose() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXComboBox::addItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.addInterface( l );
+ }
+ 
+ void VCLXComboBox::removeItemListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maItemListeners.removeInterface( l );
+ }
+ 
+ void VCLXComboBox::addActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.addInterface( l );
+ }
+ 
+ void VCLXComboBox::removeActionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener > & l ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 	maActionListeners.removeInterface( l );
+ }
+ 
+ void VCLXComboBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+ 	if ( pBox )
+@@ -3365,7 +3365,7 @@ void VCLXComboBox::addItem( const ::rtl::OUString& aItem, sal_Int16 nPos ) throw
+ 
+ void VCLXComboBox::addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUString>& aItems, sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+ 	if ( pBox )
+@@ -3382,7 +3382,7 @@ void VCLXComboBox::addItems( const ::com::sun::star::uno::Sequence< ::rtl::OUStr
+ 
+ void VCLXComboBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+ 	if ( pBox )
+@@ -3394,7 +3394,7 @@ void VCLXComboBox::removeItems( sal_Int16 nPos, sal_Int16 nCount ) throw(::com::
+ 
+ sal_Int16 VCLXComboBox::getItemCount() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+ 	return pBox ? pBox->GetEntryCount() : 0;
+@@ -3402,7 +3402,7 @@ sal_Int16 VCLXComboBox::getItemCount() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ ::rtl::OUString VCLXComboBox::getItem( sal_Int16 nPos ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aItem;
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+@@ -3413,7 +3413,7 @@ sal_Int16 VCLXComboBox::getItemCount() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ ::com::sun::star::uno::Sequence< ::rtl::OUString> VCLXComboBox::getItems() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Sequence< ::rtl::OUString> aSeq;
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+@@ -3432,7 +3432,7 @@ sal_Int16 VCLXComboBox::getItemCount() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ void VCLXComboBox::setDropDownLineCount( sal_Int16 nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+ 	if ( pBox )
+@@ -3441,7 +3441,7 @@ void VCLXComboBox::setDropDownLineCount( sal_Int16 nLines ) throw(::com::sun::st
+ 
+ sal_Int16 VCLXComboBox::getDropDownLineCount() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int16 nLines = 0;
+ 	ComboBox* pBox = (ComboBox*) GetWindow();
+@@ -3452,7 +3452,7 @@ sal_Int16 VCLXComboBox::getDropDownLineCount() throw(::com::sun::star::uno::Runt
+ 
+ void VCLXComboBox::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	ComboBox* pComboBox = (ComboBox*)GetWindow();
+ 	if ( pComboBox )
+@@ -3508,7 +3508,7 @@ void VCLXComboBox::setProperty( const ::rtl::OUString& PropertyName, const ::com
+ 
+ ::com::sun::star::uno::Any VCLXComboBox::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	ComboBox* pComboBox = (ComboBox*)GetWindow();
+@@ -3596,7 +3596,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ ::com::sun::star::awt::Size VCLXComboBox::getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	ComboBox* pComboBox = (ComboBox*) GetWindow();
+@@ -3607,7 +3607,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ ::com::sun::star::awt::Size VCLXComboBox::getPreferredSize(  ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	ComboBox* pComboBox = (ComboBox*) GetWindow();
+@@ -3622,7 +3622,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ ::com::sun::star::awt::Size VCLXComboBox::calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz = VCLSize(rNewSize);
+ 	ComboBox* pComboBox = (ComboBox*) GetWindow();
+@@ -3633,7 +3633,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ ::com::sun::star::awt::Size VCLXComboBox::getMinimumSize( sal_Int16 nCols, sal_Int16 nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	Size aSz;
+ 	ComboBox* pComboBox = (ComboBox*) GetWindow();
+@@ -3644,7 +3644,7 @@ void VCLXComboBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ 
+ void VCLXComboBox::getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	nCols = nLines = 0;
+ 	ComboBox* pComboBox = (ComboBox*) GetWindow();
+@@ -3678,7 +3678,7 @@ VCLXFormattedSpinField::~VCLXFormattedSpinField()
+ 
+ void VCLXFormattedSpinField::setStrictFormat( sal_Bool bStrict )
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormatterBase* pFormatter = GetFormatter();
+ 	if ( pFormatter )
+@@ -3694,7 +3694,7 @@ sal_Bool VCLXFormattedSpinField::isStrictFormat()
+ 
+ void VCLXFormattedSpinField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	FormatterBase* pFormatter = GetFormatter();
+ 	if ( pFormatter )
+@@ -3733,7 +3733,7 @@ void VCLXFormattedSpinField::setProperty( const ::rtl::OUString& PropertyName, c
+ 
+ ::com::sun::star::uno::Any VCLXFormattedSpinField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	FormatterBase* pFormatter = GetFormatter();
+@@ -3821,7 +3821,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXDateField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -3890,7 +3890,7 @@ void VCLXDateField::setProperty( const ::rtl::OUString& PropertyName, const ::co
+ 
+ ::com::sun::star::uno::Any VCLXDateField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	FormatterBase* pFormatter = GetFormatter();
+@@ -3936,7 +3936,7 @@ void VCLXDateField::setProperty( const ::rtl::OUString& PropertyName, const ::co
+ 
+ void VCLXDateField::setDate( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -3953,7 +3953,7 @@ void VCLXDateField::setDate( sal_Int32 nDate ) throw(::com::sun::star::uno::Runt
+ 
+ sal_Int32 VCLXDateField::getDate() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nDate = 0;
+ 	DateField* pDateField = (DateField*) GetWindow();
+@@ -3965,7 +3965,7 @@ sal_Int32 VCLXDateField::getDate() throw(::com::sun::star::uno::RuntimeException
+ 
+ void VCLXDateField::setMin( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -3974,7 +3974,7 @@ void VCLXDateField::setMin( sal_Int32 nDate ) throw(::com::sun::star::uno::Runti
+ 
+ sal_Int32 VCLXDateField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nDate = 0;
+ 	DateField* pDateField = (DateField*) GetWindow();
+@@ -3986,7 +3986,7 @@ sal_Int32 VCLXDateField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXDateField::setMax( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -3995,7 +3995,7 @@ void VCLXDateField::setMax( sal_Int32 nDate ) throw(::com::sun::star::uno::Runti
+ 
+ sal_Int32 VCLXDateField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nDate = 0;
+ 	DateField* pDateField = (DateField*) GetWindow();
+@@ -4007,7 +4007,7 @@ sal_Int32 VCLXDateField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXDateField::setFirst( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -4016,7 +4016,7 @@ void VCLXDateField::setFirst( sal_Int32 nDate ) throw(::com::sun::star::uno::Run
+ 
+ sal_Int32 VCLXDateField::getFirst() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nDate = 0;
+ 	DateField* pDateField = (DateField*) GetWindow();
+@@ -4028,7 +4028,7 @@ sal_Int32 VCLXDateField::getFirst() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXDateField::setLast( sal_Int32 nDate ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -4037,7 +4037,7 @@ void VCLXDateField::setLast( sal_Int32 nDate ) throw(::com::sun::star::uno::Runt
+ 
+ sal_Int32 VCLXDateField::getLast() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nDate = 0;
+ 	DateField* pDateField = (DateField*) GetWindow();
+@@ -4049,7 +4049,7 @@ sal_Int32 VCLXDateField::getLast() throw(::com::sun::star::uno::RuntimeException
+ 
+ void VCLXDateField::setLongFormat( sal_Bool bLong ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -4058,7 +4058,7 @@ void VCLXDateField::setLongFormat( sal_Bool bLong ) throw(::com::sun::star::uno:
+ 
+ sal_Bool VCLXDateField::isLongFormat() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	return pDateField ? pDateField->IsLongFormat() : sal_False;
+@@ -4066,7 +4066,7 @@ sal_Bool VCLXDateField::isLongFormat() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ void VCLXDateField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	if ( pDateField )
+@@ -4083,7 +4083,7 @@ void VCLXDateField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
+ 
+ sal_Bool VCLXDateField::isEmpty() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	DateField* pDateField = (DateField*) GetWindow();
+ 	return pDateField ? pDateField->IsEmptyDate() : sal_False;
+@@ -4157,7 +4157,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXTimeField::setTime( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	if ( pTimeField )
+@@ -4174,7 +4174,7 @@ void VCLXTimeField::setTime( sal_Int32 nTime ) throw(::com::sun::star::uno::Runt
+ 
+ sal_Int32 VCLXTimeField::getTime() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nTime = 0;
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+@@ -4186,7 +4186,7 @@ sal_Int32 VCLXTimeField::getTime() throw(::com::sun::star::uno::RuntimeException
+ 
+ void VCLXTimeField::setMin( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	if ( pTimeField )
+@@ -4195,7 +4195,7 @@ void VCLXTimeField::setMin( sal_Int32 nTime ) throw(::com::sun::star::uno::Runti
+ 
+ sal_Int32 VCLXTimeField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nTime = 0;
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+@@ -4207,7 +4207,7 @@ sal_Int32 VCLXTimeField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXTimeField::setMax( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	if ( pTimeField )
+@@ -4216,7 +4216,7 @@ void VCLXTimeField::setMax( sal_Int32 nTime ) throw(::com::sun::star::uno::Runti
+ 
+ sal_Int32 VCLXTimeField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nTime = 0;
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+@@ -4228,7 +4228,7 @@ sal_Int32 VCLXTimeField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXTimeField::setFirst( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	if ( pTimeField )
+@@ -4237,7 +4237,7 @@ void VCLXTimeField::setFirst( sal_Int32 nTime ) throw(::com::sun::star::uno::Run
+ 
+ sal_Int32 VCLXTimeField::getFirst() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nTime = 0;
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+@@ -4249,7 +4249,7 @@ sal_Int32 VCLXTimeField::getFirst() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXTimeField::setLast( sal_Int32 nTime ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	if ( pTimeField )
+@@ -4258,7 +4258,7 @@ void VCLXTimeField::setLast( sal_Int32 nTime ) throw(::com::sun::star::uno::Runt
+ 
+ sal_Int32 VCLXTimeField::getLast() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	sal_Int32 nTime = 0;
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+@@ -4270,7 +4270,7 @@ sal_Int32 VCLXTimeField::getLast() throw(::com::sun::star::uno::RuntimeException
+ 
+ void VCLXTimeField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	if ( pTimeField )
+@@ -4279,7 +4279,7 @@ void VCLXTimeField::setEmpty() throw(::com::sun::star::uno::RuntimeException)
+ 
+ sal_Bool VCLXTimeField::isEmpty() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	TimeField* pTimeField = (TimeField*) GetWindow();
+ 	return pTimeField ? pTimeField->IsEmptyTime() : sal_False;
+@@ -4298,7 +4298,7 @@ sal_Bool VCLXTimeField::isStrictFormat() throw(::com::sun::star::uno::RuntimeExc
+ 
+ void VCLXTimeField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -4360,7 +4360,7 @@ void VCLXTimeField::setProperty( const ::rtl::OUString& PropertyName, const ::co
+ 
+ ::com::sun::star::uno::Any VCLXTimeField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	if ( GetWindow() )
+@@ -4455,7 +4455,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXNumericField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	if ( pNumericFormatter )
+@@ -4479,7 +4479,7 @@ void VCLXNumericField::setValue( double Value ) throw(::com::sun::star::uno::Run
+ 
+ double VCLXNumericField::getValue() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	return pNumericFormatter
+@@ -4489,7 +4489,7 @@ double VCLXNumericField::getValue() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXNumericField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	if ( pNumericFormatter )
+@@ -4499,7 +4499,7 @@ void VCLXNumericField::setMin( double Value ) throw(::com::sun::star::uno::Runti
+ 
+ double VCLXNumericField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	return pNumericFormatter
+@@ -4509,7 +4509,7 @@ double VCLXNumericField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXNumericField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	if ( pNumericFormatter )
+@@ -4519,7 +4519,7 @@ void VCLXNumericField::setMax( double Value ) throw(::com::sun::star::uno::Runti
+ 
+ double VCLXNumericField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	return pNumericFormatter
+@@ -4529,7 +4529,7 @@ double VCLXNumericField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ 
+ void VCLXNumericField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericField* pNumericField = (NumericField*) GetWindow();
+ 	if ( pNumericField )
+@@ -4539,7 +4539,7 @@ void VCLXNumericField::setFirst( double Value ) throw(::com::sun::star::uno::Run
+ 
+ double VCLXNumericField::getFirst() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericField* pNumericField = (NumericField*) GetWindow();
+ 	return pNumericField
+@@ -4549,7 +4549,7 @@ double VCLXNumericField::getFirst() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXNumericField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericField* pNumericField = (NumericField*) GetWindow();
+ 	if ( pNumericField )
+@@ -4559,7 +4559,7 @@ void VCLXNumericField::setLast( double Value ) throw(::com::sun::star::uno::Runt
+ 
+ double VCLXNumericField::getLast() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericField* pNumericField = (NumericField*) GetWindow();
+ 	return pNumericField
+@@ -4580,7 +4580,7 @@ sal_Bool VCLXNumericField::isStrictFormat() throw(::com::sun::star::uno::Runtime
+ 
+ void VCLXNumericField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericField* pNumericField = (NumericField*) GetWindow();
+ 	if ( pNumericField )
+@@ -4590,7 +4590,7 @@ void VCLXNumericField::setSpinSize( double Value ) throw(::com::sun::star::uno::
+ 
+ double VCLXNumericField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericField* pNumericField = (NumericField*) GetWindow();
+ 	return pNumericField
+@@ -4600,7 +4600,7 @@ double VCLXNumericField::getSpinSize() throw(::com::sun::star::uno::RuntimeExcep
+ 
+ void VCLXNumericField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	if ( pNumericFormatter )
+@@ -4613,7 +4613,7 @@ void VCLXNumericField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::sta
+ 
+ sal_Int16 VCLXNumericField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	return pNumericFormatter ? pNumericFormatter->GetDecimalDigits() : 0;
+@@ -4621,7 +4621,7 @@ sal_Int16 VCLXNumericField::getDecimalDigits() throw(::com::sun::star::uno::Runt
+ 
+ void VCLXNumericField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -4690,7 +4690,7 @@ void VCLXNumericField::setProperty( const ::rtl::OUString& PropertyName, const :
+ 
+ ::com::sun::star::uno::Any VCLXNumericField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	FormatterBase* pFormatter = GetFormatter();
+@@ -4810,12 +4810,12 @@ IMPL_XTYPEPROVIDER_END
+ #define METRIC_MAP_PAIR(method,parent) \
+     sal_Int64 VCLXMetricField::get##method( sal_Int16 nUnit ) throw (::com::sun::star::uno::RuntimeException) \
+     { \
+-    	::vos::OGuard aGuard( GetMutex() ); \
++    	osl::SolarMutexGuard aGuard( GetMutex() ); \
+         return GetMetric##parent()->Get##method( MetricUnitUnoToVcl( nUnit ) ); \
+     } \
+     void VCLXMetricField::set##method( sal_Int64 nValue, sal_Int16 nUnit ) throw (::com::sun::star::uno::RuntimeException) \
+     { \
+-    	::vos::OGuard aGuard( GetMutex() ); \
++    	osl::SolarMutexGuard aGuard( GetMutex() ); \
+         GetMetric##parent()->Set##method( nValue, MetricUnitUnoToVcl( nUnit ) ); \
+     }
+ 
+@@ -4829,13 +4829,13 @@ METRIC_MAP_PAIR(Last,  Field)
+ 
+ ::sal_Int64 VCLXMetricField::getValue( ::sal_Int16 nUnit ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
++    osl::SolarMutexGuard aGuard( GetMutex() );
+     return GetMetricFormatter()->GetValue( MetricUnitUnoToVcl( nUnit ) );
+ }
+ 
+ ::sal_Int64 VCLXMetricField::getCorrectedValue( ::sal_Int16 nUnit ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
++    osl::SolarMutexGuard aGuard( GetMutex() );
+     return GetMetricFormatter()->GetCorrectedValue( MetricUnitUnoToVcl( nUnit ) );
+ }
+ 
+@@ -4855,14 +4855,14 @@ void VCLXMetricField::CallListeners()
+ 
+ void VCLXMetricField::setValue( ::sal_Int64 Value, ::sal_Int16 Unit ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     GetMetricFormatter()->SetValue( Value, MetricUnitUnoToVcl( Unit ) );
+     CallListeners();
+ }
+ 
+ void VCLXMetricField::setUserValue( ::sal_Int64 Value, ::sal_Int16 Unit ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     GetMetricFormatter()->SetUserValue( Value, MetricUnitUnoToVcl( Unit ) );
+     CallListeners();
+ }
+@@ -4879,25 +4879,25 @@ sal_Bool VCLXMetricField::isStrictFormat() throw(::com::sun::star::uno::RuntimeE
+ 
+ void VCLXMetricField::setSpinSize( sal_Int64 Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     GetMetricField()->SetSpinSize( Value );
+ }
+ 
+ sal_Int64 VCLXMetricField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     return GetMetricField()->GetSpinSize();
+ }
+ 
+ void VCLXMetricField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+     GetMetricFormatter()->SetDecimalDigits( Value );
+ }
+ 
+ sal_Int16 VCLXMetricField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	NumericFormatter* pNumericFormatter = (NumericFormatter*) GetFormatter();
+ 	return pNumericFormatter ? pNumericFormatter->GetDecimalDigits() : 0;
+@@ -4905,7 +4905,7 @@ sal_Int16 VCLXMetricField::getDecimalDigits() throw(::com::sun::star::uno::Runti
+ 
+ void VCLXMetricField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -4951,7 +4951,7 @@ void VCLXMetricField::setProperty( const ::rtl::OUString& PropertyName, const ::
+ 
+ ::com::sun::star::uno::Any VCLXMetricField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	FormatterBase* pFormatter = GetFormatter();
+@@ -5040,7 +5040,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXCurrencyField::setValue( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	if ( pCurrencyFormatter )
+@@ -5064,7 +5064,7 @@ void VCLXCurrencyField::setValue( double Value ) throw(::com::sun::star::uno::Ru
+ 
+ double VCLXCurrencyField::getValue() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	return pCurrencyFormatter
+@@ -5074,7 +5074,7 @@ double VCLXCurrencyField::getValue() throw(::com::sun::star::uno::RuntimeExcepti
+ 
+ void VCLXCurrencyField::setMin( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	if ( pCurrencyFormatter )
+@@ -5084,7 +5084,7 @@ void VCLXCurrencyField::setMin( double Value ) throw(::com::sun::star::uno::Runt
+ 
+ double VCLXCurrencyField::getMin() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	return pCurrencyFormatter
+@@ -5094,7 +5094,7 @@ double VCLXCurrencyField::getMin() throw(::com::sun::star::uno::RuntimeException
+ 
+ void VCLXCurrencyField::setMax( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	if ( pCurrencyFormatter )
+@@ -5104,7 +5104,7 @@ void VCLXCurrencyField::setMax( double Value ) throw(::com::sun::star::uno::Runt
+ 
+ double VCLXCurrencyField::getMax() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	return pCurrencyFormatter
+@@ -5114,7 +5114,7 @@ double VCLXCurrencyField::getMax() throw(::com::sun::star::uno::RuntimeException
+ 
+ void VCLXCurrencyField::setFirst( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
+ 	if ( pCurrencyField )
+@@ -5124,7 +5124,7 @@ void VCLXCurrencyField::setFirst( double Value ) throw(::com::sun::star::uno::Ru
+ 
+ double VCLXCurrencyField::getFirst() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
+ 	return pCurrencyField
+@@ -5134,7 +5134,7 @@ double VCLXCurrencyField::getFirst() throw(::com::sun::star::uno::RuntimeExcepti
+ 
+ void VCLXCurrencyField::setLast( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
+ 	if ( pCurrencyField )
+@@ -5144,7 +5144,7 @@ void VCLXCurrencyField::setLast( double Value ) throw(::com::sun::star::uno::Run
+ 
+ double VCLXCurrencyField::getLast() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
+ 	return pCurrencyField
+@@ -5154,7 +5154,7 @@ double VCLXCurrencyField::getLast() throw(::com::sun::star::uno::RuntimeExceptio
+ 
+ void VCLXCurrencyField::setSpinSize( double Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
+ 	if ( pCurrencyField )
+@@ -5164,7 +5164,7 @@ void VCLXCurrencyField::setSpinSize( double Value ) throw(::com::sun::star::uno:
+ 
+ double VCLXCurrencyField::getSpinSize() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyField* pCurrencyField = (LongCurrencyField*) GetWindow();
+ 	return pCurrencyField
+@@ -5185,7 +5185,7 @@ sal_Bool VCLXCurrencyField::isStrictFormat() throw(::com::sun::star::uno::Runtim
+ 
+ void VCLXCurrencyField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	if ( pCurrencyFormatter )
+@@ -5198,7 +5198,7 @@ void VCLXCurrencyField::setDecimalDigits( sal_Int16 Value ) throw(::com::sun::st
+ 
+ sal_Int16 VCLXCurrencyField::getDecimalDigits() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	LongCurrencyFormatter* pCurrencyFormatter = (LongCurrencyFormatter*) GetFormatter();
+ 	return pCurrencyFormatter ? pCurrencyFormatter->GetDecimalDigits() : 0;
+@@ -5206,7 +5206,7 @@ sal_Int16 VCLXCurrencyField::getDecimalDigits() throw(::com::sun::star::uno::Run
+ 
+ void VCLXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -5282,7 +5282,7 @@ void VCLXCurrencyField::setProperty( const ::rtl::OUString& PropertyName, const
+ 
+ ::com::sun::star::uno::Any VCLXCurrencyField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	FormatterBase* pFormatter = GetFormatter();
+@@ -5382,7 +5382,7 @@ IMPL_XTYPEPROVIDER_END
+ 
+ void VCLXPatternField::setMasks( const ::rtl::OUString& EditMask, const ::rtl::OUString& LiteralMask ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	PatternField* pPatternField = (PatternField*) GetWindow();
+ 	if ( pPatternField )
+@@ -5393,7 +5393,7 @@ void VCLXPatternField::setMasks( const ::rtl::OUString& EditMask, const ::rtl::O
+ 
+ void VCLXPatternField::getMasks( ::rtl::OUString& EditMask, ::rtl::OUString& LiteralMask ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	PatternField* pPatternField = (PatternField*) GetWindow();
+ 	if ( pPatternField )
+@@ -5405,7 +5405,7 @@ void VCLXPatternField::getMasks( ::rtl::OUString& EditMask, ::rtl::OUString& Lit
+ 
+ void VCLXPatternField::setString( const ::rtl::OUString& Str ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	PatternField* pPatternField = (PatternField*) GetWindow();
+ 	if ( pPatternField )
+@@ -5416,7 +5416,7 @@ void VCLXPatternField::setString( const ::rtl::OUString& Str ) throw(::com::sun:
+ 
+ ::rtl::OUString VCLXPatternField::getString() throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::rtl::OUString aString;
+ 	PatternField* pPatternField = (PatternField*) GetWindow();
+@@ -5437,7 +5437,7 @@ sal_Bool VCLXPatternField::isStrictFormat() throw(::com::sun::star::uno::Runtime
+ 
+ void VCLXPatternField::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	if ( GetWindow() )
+ 	{
+@@ -5470,7 +5470,7 @@ void VCLXPatternField::setProperty( const ::rtl::OUString& PropertyName, const :
+ 
+ ::com::sun::star::uno::Any VCLXPatternField::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+-	::vos::OGuard aGuard( GetMutex() );
++	osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	::com::sun::star::uno::Any aProp;
+ 	if ( GetWindow() )
+diff --git a/toolkit/source/awt/xsimpleanimation.cxx b/toolkit/source/awt/xsimpleanimation.cxx
+index e6f593b..fd33a6a 100644
+--- toolkit/source/awt/xsimpleanimation.cxx
++++ toolkit/source/awt/xsimpleanimation.cxx
+@@ -111,7 +111,7 @@ namespace toolkit
+     void XSimpleAnimation::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+     {
+         // TODO: XSimpleAnimation::ProcessWindowEvent
+-        //::vos::OClearableGuard aGuard( GetMutex() );
++        //osl::ClearableSolarMutexGuard aGuard( GetMutex() );
+         //Reference< XSimpleAnimation > xKeepAlive( this );
+         //SpinButton* pSpinButton = static_cast< SpinButton* >( GetWindow() );
+         //if ( !pSpinButton )
+@@ -123,7 +123,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void SAL_CALL XSimpleAnimation::setProperty( const ::rtl::OUString& PropertyName, const Any& Value ) throw(RuntimeException)
+     {
+-	    ::vos::OGuard aGuard( GetMutex() );
++	    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	    if ( GetWindow() )
+ 	    {
+@@ -158,7 +158,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     Any SAL_CALL XSimpleAnimation::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+     {
+-	    ::vos::OGuard aGuard( GetMutex() );
++	    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         Any aReturn;
+ 
+diff --git a/toolkit/source/awt/xthrobber.cxx b/toolkit/source/awt/xthrobber.cxx
+index 2241782..4d4eab3 100644
+--- toolkit/source/awt/xthrobber.cxx
++++ toolkit/source/awt/xthrobber.cxx
+@@ -125,7 +125,7 @@ namespace toolkit
+             bInit = true;
+         }
+         // TODO: XSimpleAnimation::ProcessWindowEvent
+-        //::vos::OClearableGuard aGuard( GetMutex() );
++        //osl::ClearableSolarMutexGuard aGuard( GetMutex() );
+         //Reference< XSimpleAnimation > xKeepAlive( this );
+         //SpinButton* pSpinButton = static_cast< SpinButton* >( GetWindow() );
+         //if ( !pSpinButton )
+@@ -137,7 +137,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void SAL_CALL XThrobber::setProperty( const ::rtl::OUString& PropertyName, const Any& Value ) throw(RuntimeException)
+     {
+-	    ::vos::OGuard aGuard( GetMutex() );
++	    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+ 	    if ( GetWindow() )
+ 	    {
+@@ -148,7 +148,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     Any SAL_CALL XThrobber::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+     {
+-	    ::vos::OGuard aGuard( GetMutex() );
++	    osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         Any aReturn;
+ 
+@@ -162,7 +162,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void SAL_CALL XThrobber::InitImageList() throw( RuntimeException)
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+         Sequence< Reference< XGraphic > > aImageList(12);
+         sal_uInt16 nIconIdStart = RID_TK_ICON_THROBBER_START;
+ 
+diff --git a/toolkit/source/controls/accessiblecontrolcontext.cxx b/toolkit/source/controls/accessiblecontrolcontext.cxx
+index 3cb2970..e5d380e 100644
+--- toolkit/source/controls/accessiblecontrolcontext.cxx
++++ toolkit/source/controls/accessiblecontrolcontext.cxx
+@@ -64,6 +64,8 @@
+ #include <vcl/window.hxx>
+ #endif
+ 
++#include <osl/mutex.hxx>
++
+ //........................................................................
+ namespace toolkit
+ {
+@@ -278,7 +280,7 @@ namespace toolkit
+ 	//--------------------------------------------------------------------
+ 	awt::Rectangle SAL_CALL OAccessibleControlContext::implGetBounds(  ) throw (RuntimeException)
+ 	{
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 			// want to do some VCL stuff here ...
+ 		OContextEntryGuard aGuard( this );
+ 
+@@ -358,7 +360,7 @@ namespace toolkit
+ 	//--------------------------------------------------------------------
+ 	sal_Int32 SAL_CALL OAccessibleControlContext::getForeground(  ) throw (::com::sun::star::uno::RuntimeException)
+ 	{
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 			// want to do some VCL stuff here ...
+ 		OContextEntryGuard aGuard( this );
+ 
+@@ -384,7 +386,7 @@ namespace toolkit
+ 	//--------------------------------------------------------------------
+ 	sal_Int32 SAL_CALL OAccessibleControlContext::getBackground(  ) throw (::com::sun::star::uno::RuntimeException)
+ 	{
+-		::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++		osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 			// want to do some VCL stuff here ...
+ 		OContextEntryGuard aGuard( this );
+ 
+diff --git a/toolkit/source/controls/dialogcontrol.cxx b/toolkit/source/controls/dialogcontrol.cxx
+index 8102470..66ddd75 100644
+--- toolkit/source/controls/dialogcontrol.cxx
++++ toolkit/source/controls/dialogcontrol.cxx
+@@ -37,7 +37,7 @@
+ #include "precompiled_toolkit.hxx"
+ 
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #ifndef TOOLKIT_DIALOG_CONTROL_HXX
+ #include <toolkit/controls/dialogcontrol.hxx>
+ #endif
+@@ -401,7 +401,7 @@ UnoControlDialogModel::UnoControlModelHolderList::iterator UnoControlDialogModel
+ // ::XMultiServiceFactory
+ Reference< XInterface > UnoControlDialogModel::createInstance( const ::rtl::OUString& aServiceSpecifier ) throw(Exception, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	OGeometryControlModel_Base* pNewModel = NULL;
+ 
+@@ -540,7 +540,7 @@ sal_Bool UnoControlDialogModel::hasElements() throw(RuntimeException)
+ // XNameContainer, XNameReplace, XNameAccess
+ void UnoControlDialogModel::replaceByName( const ::rtl::OUString& aName, const Any& aElement ) throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XControlModel > xNewModel;
+ 	aElement >>= xNewModel;
+@@ -600,7 +600,7 @@ sal_Bool UnoControlDialogModel::hasByName( const ::rtl::OUString& aName ) throw(
+ 
+ void UnoControlDialogModel::insertByName( const ::rtl::OUString& aName, const Any& aElement ) throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XControlModel > xM;
+ 	aElement >>= xM;
+@@ -628,7 +628,7 @@ void UnoControlDialogModel::insertByName( const ::rtl::OUString& aName, const An
+ 
+ void UnoControlDialogModel::removeByName( const ::rtl::OUString& aName ) throw(NoSuchElementException, WrappedTargetException, RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	UnoControlModelHolderList::iterator aElementPos = ImplFindElement( aName );
+ 	if ( maModels.end() == aElementPos )
+@@ -671,7 +671,7 @@ void SAL_CALL UnoControlDialogModel::setGroupControl( sal_Bool ) throw (RuntimeE
+ // ----------------------------------------------------------------------------
+ void SAL_CALL UnoControlDialogModel::setControlModels( const Sequence< Reference< XControlModel > >& _rControls ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	// set the tab indexes according to the order of models in the sequence
+ 	const Reference< XControlModel >* pControls = _rControls.getConstArray( );
+@@ -708,7 +708,7 @@ typedef ::std::multimap< sal_Int32, Reference< XControlModel >, ::std::less< sal
+ // ----------------------------------------------------------------------------
+ Sequence< Reference< XControlModel > > SAL_CALL UnoControlDialogModel::getControlModels(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	MapIndexToModel aSortedModels;
+ 		// will be the sorted container of all models which have a tab index property
+@@ -792,7 +792,7 @@ namespace
+ // ----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL UnoControlDialogModel::getGroupCount(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	implUpdateGroupStructure();
+ 
+@@ -802,7 +802,7 @@ sal_Int32 SAL_CALL UnoControlDialogModel::getGroupCount(  ) throw (RuntimeExcept
+ // ----------------------------------------------------------------------------
+ void SAL_CALL UnoControlDialogModel::getGroup( sal_Int32 _nGroup, Sequence< Reference< XControlModel > >& _rGroup, ::rtl::OUString& _rName ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	implUpdateGroupStructure();
+ 
+@@ -826,7 +826,7 @@ void SAL_CALL UnoControlDialogModel::getGroup( sal_Int32 _nGroup, Sequence< Refe
+ // ----------------------------------------------------------------------------
+ void SAL_CALL UnoControlDialogModel::getGroupByName( const ::rtl::OUString& _rName, Sequence< Reference< XControlModel > >& _rGroup ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	::rtl::OUString sDummyName;
+ 	getGroup( _rName.toInt32( ), _rGroup, sDummyName );
+@@ -1006,7 +1006,7 @@ void UnoControlDialogModel::implUpdateGroupStructure()
+ // ----------------------------------------------------------------------------
+ void SAL_CALL UnoControlDialogModel::propertyChange( const PropertyChangeEvent& _rEvent ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	DBG_ASSERT( 0 == _rEvent.PropertyName.compareToAscii( "TabIndex" ),
+ 		"UnoControlDialogModel::propertyChange: not listening for this property!" );
+@@ -1037,7 +1037,7 @@ void SAL_CALL UnoControlDialogModel::disposing( const EventObject& /*rEvent*/ )
+ // ----------------------------------------------------------------------------
+ void UnoControlDialogModel::startControlListening( const Reference< XControlModel >& _rxChildModel )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XPropertySet > xModelProps( _rxChildModel, UNO_QUERY );
+ 	Reference< XPropertySetInfo > xPSI;
+@@ -1051,7 +1051,7 @@ void UnoControlDialogModel::startControlListening( const Reference< XControlMode
+ // ----------------------------------------------------------------------------
+ void UnoControlDialogModel::stopControlListening( const Reference< XControlModel >& _rxChildModel )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XPropertySet > xModelProps( _rxChildModel, UNO_QUERY );
+ 	Reference< XPropertySetInfo > xPSI;
+@@ -1432,7 +1432,7 @@ void UnoDialogControl::ImplSetPosSize( Reference< XControl >& rxCtrl )
+ 
+ void UnoDialogControl::dispose() throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	EventObject aEvt;
+ 	aEvt.Source = static_cast< ::cppu::OWeakObject* >( this );
+@@ -1478,7 +1478,7 @@ throw(RuntimeException)
+ 
+ sal_Bool UnoDialogControl::setModel( const Reference< XControlModel >& rxModel ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	// destroy the old tab controller, if existent
+ 	if ( mxTabController.is() )
+@@ -1552,7 +1552,7 @@ sal_Bool UnoDialogControl::setModel( const Reference< XControlModel >& rxModel )
+ 
+ void UnoDialogControl::setDesignMode( sal_Bool bOn ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ 
+ 	UnoControl::setDesignMode( bOn );
+@@ -1572,7 +1572,7 @@ void UnoDialogControl::setDesignMode( sal_Bool bOn ) throw(RuntimeException)
+ 
+ void UnoDialogControl::createPeer( const Reference< XToolkit > & rxToolkit, const Reference< XWindowPeer >  & rParentPeer ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	UnoControlContainer::createPeer( rxToolkit, rParentPeer );
+ 
+@@ -1606,7 +1606,7 @@ void UnoDialogControl::PrepareWindowDescriptor( ::com::sun::star::awt::WindowDes
+ 
+ void UnoDialogControl::elementInserted( const ContainerEvent& Event ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XControlModel > xModel;
+ 	::rtl::OUString aName;
+@@ -1618,7 +1618,7 @@ void UnoDialogControl::elementInserted( const ContainerEvent& Event ) throw(Runt
+ 
+ void UnoDialogControl::elementRemoved( const ContainerEvent& Event ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XControlModel > xModel;
+ 	Event.Element >>= xModel;
+@@ -1628,7 +1628,7 @@ void UnoDialogControl::elementRemoved( const ContainerEvent& Event ) throw(Runti
+ 
+ void UnoDialogControl::elementReplaced( const ContainerEvent& Event ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+ 	Reference< XControlModel > xModel;
+ 	Event.ReplacedElement >>= xModel;
+@@ -1663,7 +1663,7 @@ void UnoDialogControl::removeTopWindowListener( const Reference< XTopWindowListe
+ 
+ void UnoDialogControl::toFront(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	if ( getPeer().is() )
+ 	{
+ 		Reference< XTopWindow > xTW( getPeer(), UNO_QUERY );
+@@ -1674,7 +1674,7 @@ void UnoDialogControl::toFront(  ) throw (RuntimeException)
+ 
+ void UnoDialogControl::toBack(  ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	if ( getPeer().is() )
+ 	{
+ 		Reference< XTopWindow > xTW( getPeer(), UNO_QUERY );
+@@ -1685,7 +1685,7 @@ void UnoDialogControl::toBack(  ) throw (RuntimeException)
+ 
+ void UnoDialogControl::setMenuBar( const Reference< XMenuBar >& rxMenuBar ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	mxMenuBar = rxMenuBar;
+ 	if ( getPeer().is() )
+ 	{
+@@ -1891,7 +1891,7 @@ void UnoDialogControl::ImplUpdateResourceResolver()
+ 
+ void UnoDialogControl::setTitle( const ::rtl::OUString& Title ) throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	Any aAny;
+ 	aAny <<= Title;
+ 	ImplSetPropertyValue( GetPropertyName( BASEPROPERTY_TITLE ), aAny, sal_True );
+@@ -1899,13 +1899,13 @@ void UnoDialogControl::setTitle( const ::rtl::OUString& Title ) throw(RuntimeExc
+ 
+ ::rtl::OUString UnoDialogControl::getTitle() throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	return ImplGetPropertyValue_UString( BASEPROPERTY_TITLE );
+ }
+ 
+ sal_Int16 UnoDialogControl::execute() throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	sal_Int16 nDone = -1;
+ 	if ( getPeer().is() )
+ 	{
+@@ -1922,7 +1922,7 @@ sal_Int16 UnoDialogControl::execute() throw(RuntimeException)
+ 
+ void UnoDialogControl::endExecute() throw(RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	if ( getPeer().is() )
+ 	{
+ 		Reference< XDialog > xDlg( getPeer(), UNO_QUERY );
+@@ -1936,7 +1936,7 @@ void UnoDialogControl::endExecute() throw(RuntimeException)
+ 
+ void UnoDialogControl::addingControl( const Reference< XControl >& _rxControl )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	UnoControlContainer::addingControl( _rxControl );
+ 
+ 	if ( _rxControl.is() )
+@@ -1958,7 +1958,7 @@ void UnoDialogControl::addingControl( const Reference< XControl >& _rxControl )
+ 
+ void UnoDialogControl::removingControl( const Reference< XControl >& _rxControl )
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	UnoControlContainer::removingControl( _rxControl );
+ 
+ 	if ( _rxControl.is() )
+@@ -1972,7 +1972,7 @@ void UnoDialogControl::removingControl( const Reference< XControl >& _rxControl
+ 
+ void SAL_CALL UnoDialogControl::changesOccurred( const ChangesEvent& ) throw (RuntimeException)
+ {
+-	vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	// a tab controller model may have changed
+ 
+     // #109067# in design mode don't notify the tab controller
+diff --git a/toolkit/source/controls/unocontrol.cxx b/toolkit/source/controls/unocontrol.cxx
+index 1302c12..9d31878 100644
+--- toolkit/source/controls/unocontrol.cxx
++++ toolkit/source/controls/unocontrol.cxx
+@@ -74,8 +74,8 @@
+ #include <rtl/uuid.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+@@ -122,8 +122,8 @@
+ #ifndef _SV_SVAPP_HXX 
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef TOOLKIT_ACCESSIBLE_CONTROL_CONTEXT_HXX
+@@ -284,7 +284,7 @@ Reference< XWindowPeer >	UnoControl::ImplGetCompatiblePeer( sal_Bool bAcceptExis
+ 
+ 		WorkWindow* pWW;
+ 		{
+-		    osl::Guard< vos::IMutex > aGuard( Application::GetSolarMutex() );
++		    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 		    pWW = lcl_GetDefaultWindow();
+ 		}
+         try
+@@ -725,7 +725,7 @@ void UnoControl::ImplModelPropertiesChanged( const Sequence< PropertyChangeEvent
+ 		// #82300# - 2000-12-21 - fs@openoffice.org
+ 		if (bNeedNewPeer && xParent.is())
+ 		{
+-			NAMESPACE_VOS(OGuard) aVclGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 				// and now this is the final withdrawal:
+ 				// With 83561, I have no other idea than locking the SolarMutex here ....
+ 				// I really hate the fact that VCL is not theadsafe ....
+@@ -1515,7 +1515,7 @@ Sequence< ::rtl::OUString > UnoControl::getSupportedServiceNames(  ) throw(Runti
+ Reference< XAccessibleContext > SAL_CALL UnoControl::getAccessibleContext(  ) throw (RuntimeException)
+ {
+     // creation of the context will certainly require the SolarMutex ...
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard( GetMutex() );
+ 
+ 	Reference< XAccessibleContext > xCurrentContext( maAccessibleContext.get(), UNO_QUERY );
+diff --git a/toolkit/source/helper/externallock.cxx b/toolkit/source/helper/externallock.cxx
+index 90f3970..9d1ad49 100644
+--- toolkit/source/helper/externallock.cxx
++++ toolkit/source/helper/externallock.cxx
+@@ -40,8 +40,8 @@
+ #include <toolkit/helper/externallock.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+diff --git a/toolkit/source/helper/throbberimpl.cxx b/toolkit/source/helper/throbberimpl.cxx
+index 6dc7548..e9f53cf 100644
+--- toolkit/source/helper/throbberimpl.cxx
++++ toolkit/source/helper/throbberimpl.cxx
+@@ -71,7 +71,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void Throbber_Impl::start() throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         mnCurStep = 0;
+         maWaitTimer.Start();
+@@ -80,7 +80,7 @@ namespace toolkit
+     //--------------------------------------------------------------------
+     void Throbber_Impl::stop() throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         maWaitTimer.Stop();
+     }
+@@ -89,7 +89,7 @@ namespace toolkit
+     void Throbber_Impl::setImageList( const Sequence< Reference< XGraphic > >& rImageList )
+         throw (RuntimeException)
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         maImageList = rImageList;
+ 
+@@ -125,7 +125,7 @@ namespace toolkit
+     // -----------------------------------------------------------------------
+     IMPL_LINK( Throbber_Impl, TimeOutHdl, Throbber_Impl*, EMPTYARG )
+     {
+-        ::vos::OGuard aGuard( GetMutex() );
++        osl::SolarMutexGuard aGuard( GetMutex() );
+ 
+         FixedImage* pImage = static_cast< FixedImage* >( mxParent->GetWindow() );
+ 
+diff --git a/toolkit/workben/unodialog.cxx b/toolkit/workben/unodialog.cxx
+index 851e92d..12bf866 100644
+--- toolkit/workben/unodialog.cxx
++++ toolkit/workben/unodialog.cxx
+@@ -246,7 +246,7 @@ void Main( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMult
+ 	xPSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "PositionX" ) ), aValue );
+ 
+ 	MyWin * pWindow;
+-	::osl::Guard< vos::IMutex > aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 	pWindow = new MyWin();
+ 	pWindow->Show();	
+ 
+diff --git a/tools/bootstrp/prj.cxx b/tools/bootstrp/prj.cxx
+index 6bb43c7..d7e47d3 100644
+--- tools/bootstrp/prj.cxx
++++ tools/bootstrp/prj.cxx
+@@ -38,7 +38,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include "bootstrp/sstring.hxx"
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <tools/stream.hxx>
+ #include <tools/geninfo.hxx>
+diff --git a/tools/inc/bootstrp/prj.hxx b/tools/inc/bootstrp/prj.hxx
+index ac92739..a69967a 100644
+--- tools/inc/bootstrp/prj.hxx
++++ tools/inc/bootstrp/prj.hxx
+@@ -41,7 +41,7 @@
+ #ifndef _LISTMACR_HXX
+ #include "bootstrp/listmacr.hxx"
+ #endif
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #define OS_NONE				0x0000
+ #define OS_WIN16			0x0001
+@@ -275,7 +275,7 @@ private:
+ 
+ 	static Link aDBNotFoundHdl;
+ protected:
+-	NAMESPACE_VOS( OMutex ) aMutex;
++	osl::Mutex aMutex;
+ 
+ 	USHORT 			nStarMode;
+ 	SolarFileList 	aFileList;
+diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx
+index 7b5beee..b9a1b08 100644
+--- tools/inc/pch/precompiled_tools.hxx
++++ tools/inc/pch/precompiled_tools.hxx
+@@ -92,7 +92,7 @@
+ #include "sys/types.h"
+ 
+ #include "vos/macros.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "vos/signal.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+diff --git a/tools/inc/tools/simplerm.hxx b/tools/inc/tools/simplerm.hxx
+index 956d84e..1bcf95e 100644
+--- tools/inc/tools/simplerm.hxx
++++ tools/inc/tools/simplerm.hxx
+@@ -43,8 +43,8 @@
+ #ifndef _TOOLS_SIMPLERESMGR_HXX_
+ #define _TOOLS_SIMPLERESMGR_HXX_
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _TOOLS_RESID_HXX
+@@ -69,7 +69,7 @@ class InternalResMgr;
+ class TOOLS_DLLPUBLIC SimpleResMgr
+ {
+ protected:
+-	NAMESPACE_VOS(OMutex)	m_aAccessSafety;
++	osl::Mutex				m_aAccessSafety;
+ 	InternalResMgr* 		m_pResImpl;
+ 
+ public:
+diff --git a/tools/source/fsys/dirent.cxx b/tools/source/fsys/dirent.cxx
+index 84d494e..1e915c8 100644
+--- tools/source/fsys/dirent.cxx
++++ tools/source/fsys/dirent.cxx
+@@ -80,8 +80,8 @@
+ #include <tools/stream.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <osl/file.hxx>
+@@ -161,13 +161,13 @@ BOOL bInRedirection = TRUE;
+ #else
+ BOOL bInRedirection = FALSE;
+ #endif
+-static NAMESPACE_VOS( OMutex )* pRedirectMutex = 0;
++static osl::Mutex* pRedirectMutex = 0;
+ 
+ //------------------------------------------------------------------------
+ void FSysRedirector::Register( FSysRedirector *pRedirector )
+ {
+         if ( pRedirector )
+-                pRedirectMutex = new NAMESPACE_VOS( OMutex );
++                pRedirectMutex = new osl::Mutex;
+         else
+                 DELETEZ( pRedirectMutex );
+         _pRedirector = pRedirector;
+@@ -190,7 +190,7 @@ void FSysRedirector::DoRedirect( String &rPath )
+         // Redirection is acessible only by one thread per time
+         // dont move the guard behind the bInRedirection check!!!
+         // think of nested calls (when called from callback)
+-        NAMESPACE_VOS( OGuard ) aGuard( pRedirectMutex );
++        osl::MutexGuard aGuard( pRedirectMutex );
+ 
+         // if already in redirection, dont redirect
+         if ( bInRedirection )
+@@ -1065,8 +1065,8 @@ DirEntry* DirEntry::ImpChangeParent( DirEntry* pNewParent, BOOL bNormalize )
+ BOOL DirEntry::Exists( FSysAccess nAccess ) const
+ {
+ #ifndef BOOTSTRAP
+-	static NAMESPACE_VOS(OMutex) aLocalMutex;
+-	NAMESPACE_VOS(OGuard) aGuard( aLocalMutex );
++	static osl::Mutex aLocalMutex;
++	osl::MutexGuard aGuard( aLocalMutex );
+ #endif
+         if ( !IsValid() )
+                 return FALSE;
+diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx
+index ee71972..de4655d 100644
+--- tools/source/rc/resmgr.cxx
++++ tools/source/rc/resmgr.cxx
+@@ -1976,7 +1976,7 @@ SimpleResMgr* SimpleResMgr::Create( const sal_Char* pPrefixName, com::sun::star:
+ // -----------------------------------------------------------------------
+ bool SimpleResMgr::IsAvailable( RESOURCE_TYPE _resourceType, sal_uInt32 _resourceId )
+ {
+-    NAMESPACE_VOS(OGuard) aGuard(m_aAccessSafety);
++    osl::MutexGuard aGuard(m_aAccessSafety);
+ 
+     if ( ( RSC_STRING != _resourceType ) && ( RSC_RESOURCE != _resourceType ) )
+         return false;
+@@ -1988,7 +1988,7 @@ bool SimpleResMgr::IsAvailable( RESOURCE_TYPE _resourceType, sal_uInt32 _resourc
+ // -----------------------------------------------------------------------
+ UniString SimpleResMgr::ReadString( sal_uInt32 nId )
+ {
+-    NAMESPACE_VOS(OGuard) aGuard(m_aAccessSafety);
++    osl::MutexGuard aGuard(m_aAccessSafety);
+ 
+     DBG_ASSERT( m_pResImpl, "SimpleResMgr::ReadString : have no impl class !" );
+     // perhaps constructed with an invalid filename ?
+@@ -2059,7 +2059,7 @@ const ::com::sun::star::lang::Locale& SimpleResMgr::GetLocale() const
+ 
+ sal_uInt32 SimpleResMgr::ReadBlob( sal_uInt32 nId, void** pBuffer )
+ {
+-    NAMESPACE_VOS(OGuard) aGuard(m_aAccessSafety);
++    osl::MutexGuard aGuard(m_aAccessSafety);
+ 
+     DBG_ASSERT( m_pResImpl, "SimpleResMgr::ReadBlob : have no impl class !" );
+ 
+diff --git a/tools/source/stream/strmunx.cxx b/tools/source/stream/strmunx.cxx
+index cb69ec6..55d0b70 100644
+--- tools/source/stream/strmunx.cxx
++++ tools/source/stream/strmunx.cxx
+@@ -48,7 +48,7 @@
+ #include <tools/fsys.hxx>
+ #include <tools/stream.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <osl/thread.h> // osl_getThreadTextEncoding
+ 
+ // class FileBase
+@@ -72,7 +72,7 @@ DECLARE_LIST( InternalStreamLockList, InternalStreamLock* )
+ namespace { struct LockList : public rtl::Static< InternalStreamLockList, LockList > {}; }
+ 
+ #ifndef BOOTSTRAP
+-namespace { struct LockMutex : public rtl::Static< NAMESPACE_VOS(OMutex), LockMutex > {}; }
++namespace { struct LockMutex : public rtl::Static< osl::Mutex, LockMutex > {}; }
+ #endif
+ 
+ class InternalStreamLock
+@@ -123,7 +123,7 @@ InternalStreamLock::~InternalStreamLock()
+ sal_Bool InternalStreamLock::LockFile( sal_Size nStart, sal_Size nEnd, SvFileStream* pStream )
+ {
+ #ifndef BOOTSTRAP
+-	NAMESPACE_VOS( OGuard ) aGuard( LockMutex::get() );
++	osl::MutexGuard aGuard( LockMutex::get() );
+ #endif
+ 	ByteString aFileName(pStream->GetFileName(), osl_getThreadTextEncoding());
+ 	struct stat aStat;
+@@ -173,7 +173,7 @@ sal_Bool InternalStreamLock::LockFile( sal_Size nStart, sal_Size nEnd, SvFileStr
+ void InternalStreamLock::UnlockFile( sal_Size nStart, sal_Size nEnd, SvFileStream* pStream )
+ {
+ #ifndef BOOTSTRAP
+-	NAMESPACE_VOS( OGuard ) aGuard( LockMutex::get() );
++	osl::MutexGuard aGuard( LockMutex::get() );
+ #endif
+ 	InternalStreamLock* pLock = NULL;
+ 	InternalStreamLockList &rLockList = LockList::get();
+diff --git a/ucb/inc/pch/precompiled_ucb.hxx b/ucb/inc/pch/precompiled_ucb.hxx
+index ad25188..8965f3b 100644
+--- ucb/inc/pch/precompiled_ucb.hxx
++++ ucb/inc/pch/precompiled_ucb.hxx
+@@ -183,7 +183,7 @@
+ #include "ucbhelper/proxydecider.hxx"
+ 
+ #include "osl/diagnose.h"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ //---MARKER---
+diff --git a/ucb/workben/ucb/ucbdemo.cxx b/ucb/workben/ucb/ucbdemo.cxx
+index 40ef4ee..50397e6 100644
+--- ucb/workben/ucb/ucbdemo.cxx
++++ ucb/workben/ucb/ucbdemo.cxx
+@@ -42,8 +42,8 @@
+ #include <rtl/ustrbuf.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _CPPUHELPER_WEAK_HXX_
+@@ -268,7 +268,7 @@ void MessagePrinter::print( const sal_Char* pText )
+ //-------------------------------------------------------------------------
+ void MessagePrinter::print( const UniString& rText )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if ( m_pOutEdit )
+ 	{
+@@ -2249,7 +2249,7 @@ void MyWin::print( const sal_Char* pText )
+ //-------------------------------------------------------------------------
+ void MyWin::print( const UniString& rText )
+ {
+-	vos::OGuard aGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 	if ( m_pOutEdit )
+ 	{
+@@ -2270,7 +2270,7 @@ IMPL_LINK( MyWin, ToolBarHandler, ToolBox*, pToolBox )
+ 	{
+ 		case MYWIN_ITEMID_CLEAR:
+ 		{
+-			vos::OGuard aGuard( Application::GetSolarMutex() );
++			osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 			m_pOutEdit->Clear();
+ 			m_pOutEdit->Show();
+diff --git a/unotools/inc/unotools/accessiblerelationsethelper.hxx b/unotools/inc/unotools/accessiblerelationsethelper.hxx
+index c852e5a..986eb24 100644
+--- unotools/inc/unotools/accessiblerelationsethelper.hxx
++++ unotools/inc/unotools/accessiblerelationsethelper.hxx
+@@ -60,8 +60,8 @@
+ #include <com/sun/star/lang/XServiceName.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #include <cppuhelper/implbase1.hxx>
+ #include <unotools/servicehelper.hxx>
+@@ -172,7 +172,7 @@ public:
+ 
+ protected:
+ 	///	Mutex guarding this object.
+-    ::vos::OMutex maMutex;
++    osl::Mutex maMutex;
+ 
+ private:
+ 	///	The implementation of this helper interface.
+diff --git a/unotools/inc/unotools/accessiblestatesethelper.hxx b/unotools/inc/unotools/accessiblestatesethelper.hxx
+index 279ea60..b4ed7cd 100644
+--- unotools/inc/unotools/accessiblestatesethelper.hxx
++++ unotools/inc/unotools/accessiblestatesethelper.hxx
+@@ -59,8 +59,8 @@
+ #include <com/sun/star/lang/XServiceName.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #include <cppuhelper/implbase1.hxx>
+ #include <unotools/servicehelper.hxx>
+@@ -194,7 +194,7 @@ public:
+ 
+ protected:
+ 	///	Mutex guarding this object.
+-    ::vos::OMutex maMutex;
++    osl::Mutex maMutex;
+ 
+ private:
+ 	///	The implementation of this helper interface.
+diff --git a/unotools/inc/unotools/ucblockbytes.hxx b/unotools/inc/unotools/ucblockbytes.hxx
+index 88cfb98..a87730f 100644
+--- unotools/inc/unotools/ucblockbytes.hxx
++++ unotools/inc/unotools/ucblockbytes.hxx
+@@ -19,7 +19,7 @@
+ 
+ #include <osl/thread.hxx>
+ #include <vos/conditn.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <tools/stream.hxx>
+ #include <tools/link.hxx>
+ #include <tools/errcode.hxx>
+@@ -90,7 +90,7 @@ class UNOTOOLS_DLLPUBLIC UcbLockBytes : public virtual SvLockBytes
+ {
+ 	vos::OCondition			m_aInitialized;
+ 	vos::OCondition			m_aTerminated;
+-	vos::OMutex				m_aMutex;
++	osl::Mutex				m_aMutex;
+ 
+     String                  m_aContentType;
+     String                  m_aRealURL;
+@@ -167,25 +167,25 @@ public:
+ 
+     NS_UNO::Reference < NS_IO::XInputStream > getInputStream_Impl() const
+                             {
+-                                vos::OGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
++                                osl::MutexGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
+                                 return m_xInputStream;
+                             }
+ 
+     NS_UNO::Reference < NS_IO::XOutputStream > getOutputStream_Impl() const
+                             {
+-                                vos::OGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
++                                osl::MutexGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
+                                 return m_xOutputStream;
+                             }
+ 
+     NS_UNO::Reference < NS_IO::XSeekable > getSeekable_Impl() const
+                             {
+-                                vos::OGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
++                                osl::MutexGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
+                                 return m_xSeekable;
+                             }
+ 
+     sal_Bool                hasInputStream_Impl() const
+                             {
+-                                vos::OGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
++                                osl::MutexGuard aGuard( SAL_CONST_CAST(UcbLockBytes*, this)->m_aMutex );
+                                 return m_xInputStream.is();
+                             }
+ 
+diff --git a/unotools/source/accessibility/accessiblerelationsethelper.cxx b/unotools/source/accessibility/accessiblerelationsethelper.cxx
+index 9f98b0e..692bd56 100644
+--- unotools/source/accessibility/accessiblerelationsethelper.cxx
++++ unotools/source/accessibility/accessiblerelationsethelper.cxx
+@@ -188,7 +188,7 @@ sal_Int32 SAL_CALL
+ 	AccessibleRelationSetHelper::getRelationCount(  )
+ 		throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->getRelationCount();
+ }
+ 
+@@ -210,7 +210,7 @@ sal_Int32 SAL_CALL
+ 			throw (lang::IndexOutOfBoundsException,
+ 					uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->getRelation(nIndex);
+ }
+ 
+@@ -230,7 +230,7 @@ sal_Bool SAL_CALL
+ 	AccessibleRelationSetHelper::containsRelation( sal_Int16 aRelationType )
+ 		throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->containsRelation(aRelationType);
+ }
+ 
+@@ -249,14 +249,14 @@ AccessibleRelation SAL_CALL
+ 		AccessibleRelationSetHelper::getRelationByType( sal_Int16 aRelationType )
+ 			throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->getRelationByType(aRelationType);
+ }
+ 
+ void AccessibleRelationSetHelper::AddRelation(const AccessibleRelation& rRelation)
+ 			throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	mpHelperImpl->AddRelation(rRelation);
+ }
+ 
+@@ -266,7 +266,7 @@ uno::Sequence< ::com::sun::star::uno::Type>
+ 	AccessibleRelationSetHelper::getTypes (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	const ::com::sun::star::uno::Type aTypeList[] = {
+     	::getCppuType((const uno::Reference<
+         	XAccessibleRelationSet>*)0),
+@@ -282,7 +282,7 @@ uno::Sequence<sal_Int8> SAL_CALL
+ 	AccessibleRelationSetHelper::getImplementationId (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	static uno::Sequence<sal_Int8> aId;
+ 	if (aId.getLength() == 0)
+ 	{
+diff --git a/unotools/source/accessibility/accessiblestatesethelper.cxx b/unotools/source/accessibility/accessiblestatesethelper.cxx
+index 9ca95b5..9d03b86 100644
+--- unotools/source/accessibility/accessiblestatesethelper.cxx
++++ unotools/source/accessibility/accessiblestatesethelper.cxx
+@@ -240,7 +240,7 @@ AccessibleStateSetHelper::~AccessibleStateSetHelper(void)
+ sal_Bool SAL_CALL AccessibleStateSetHelper::isEmpty ()
+ 	throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->IsEmpty();
+ }
+ 
+@@ -258,7 +258,7 @@ sal_Bool SAL_CALL AccessibleStateSetHelper::isEmpty ()
+ sal_Bool SAL_CALL AccessibleStateSetHelper::contains (sal_Int16 aState)
+ 	throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->Contains(aState);
+ }
+ 
+@@ -281,7 +281,7 @@ sal_Bool SAL_CALL AccessibleStateSetHelper::containsAll
+ 	(const uno::Sequence<sal_Int16>& rStateSet)
+ 	throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	sal_Int32 nCount(rStateSet.getLength());
+ 	const sal_Int16* pStates = rStateSet.getConstArray();
+ 	sal_Int32 i = 0;
+@@ -297,21 +297,21 @@ sal_Bool SAL_CALL AccessibleStateSetHelper::containsAll
+ uno::Sequence<sal_Int16> SAL_CALL AccessibleStateSetHelper::getStates()
+     throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard(maMutex);
++    osl::MutexGuard aGuard(maMutex);
+     return mpHelperImpl->GetStates();
+ }
+ 
+ void AccessibleStateSetHelper::AddState(sal_Int16 aState)
+ 	throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	mpHelperImpl->AddState(aState);
+ }
+ 
+ void AccessibleStateSetHelper::RemoveState(sal_Int16 aState)
+ 	throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	mpHelperImpl->RemoveState(aState);
+ }
+ 
+@@ -321,7 +321,7 @@ sal_Bool AccessibleStateSetHelper::Compare(
+ 		AccessibleStateSetHelper& rNewStates)
+ 	throw (uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	return mpHelperImpl->Compare(rComparativeValue.mpHelperImpl,
+ 		rOldStates.mpHelperImpl, rNewStates.mpHelperImpl);
+ }
+@@ -347,7 +347,7 @@ uno::Sequence<sal_Int8> SAL_CALL
+ 	AccessibleStateSetHelper::getImplementationId (void)
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    ::vos::OGuard aGuard (maMutex);
++    osl::MutexGuard aGuard (maMutex);
+ 	static uno::Sequence<sal_Int8> aId;
+ 	if (aId.getLength() == 0)
+ 	{
+diff --git a/unotools/source/ucbhelper/ucblockbytes.cxx b/unotools/source/ucbhelper/ucblockbytes.cxx
+index cdf9960..07d0541 100644
+--- unotools/source/ucbhelper/ucblockbytes.cxx
++++ unotools/source/ucbhelper/ucblockbytes.cxx
+@@ -1384,14 +1384,14 @@ UcbLockBytes::~UcbLockBytes()
+ 
+ Reference < XInputStream > UcbLockBytes::getInputStream()
+ {
+-	vos::OClearableGuard aGuard( m_aMutex );
++	osl::ClearableMutexGuard aGuard( m_aMutex );
+     m_bDontClose = sal_True;
+     return m_xInputStream;
+ }
+ 
+ Reference < XStream > UcbLockBytes::getStream()
+ {
+-	vos::OClearableGuard aGuard( m_aMutex );
++	osl::ClearableMutexGuard aGuard( m_aMutex );
+ 	Reference < XStream > xStream( m_xSeekable, UNO_QUERY );
+ 	if ( xStream.is() )
+     	m_bDontClose = sal_True;
+@@ -1402,7 +1402,7 @@ Reference < XStream > UcbLockBytes::getStream()
+ 
+ sal_Bool UcbLockBytes::setStream_Impl( const Reference<XStream>& aStream )
+ {
+-	vos::OClearableGuard aGuard( m_aMutex );
++	osl::ClearableMutexGuard aGuard( m_aMutex );
+     if ( aStream.is() )
+     {
+         m_xOutputStream = aStream->getOutputStream();
+@@ -1424,7 +1424,7 @@ sal_Bool UcbLockBytes::setInputStream_Impl( const Reference<XInputStream> &rxInp
+ 
+ 	try
+ 	{
+-		vos::OClearableGuard aGuard( m_aMutex );
++		osl::ClearableMutexGuard aGuard( m_aMutex );
+ 
+ 		if ( !m_bDontClose && m_xInputStream.is() )
+ 			m_xInputStream->closeInput();
+diff --git a/uui/source/fltdlg.cxx b/uui/source/fltdlg.cxx
+index 765b0cb..50b2a36 100644
+--- uui/source/fltdlg.cxx
++++ uui/source/fltdlg.cxx
+@@ -77,8 +77,8 @@
+ #include <vcl/button.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
+index 9a09ddd..d0d38bd 100644
+--- uui/source/iahndl.cxx
++++ uui/source/iahndl.cxx
+@@ -96,7 +96,7 @@
+ #include "com/sun/star/uno/RuntimeException.hpp"
+ #include "com/sun/star/xforms/InvalidDataOnSubmitException.hpp"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "tools/rcid.h"
+ #include "vcl/svapp.hxx"
+ #include "svtools/svtools.hrc"
+@@ -1224,7 +1224,7 @@ void UUIInteractionHelper::executeLoginDialog(LoginErrorInfo & rInfo,
+ {
+     try
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+         bool bAccount = (rInfo.GetFlags() & LOGINERROR_FLAG_MODIFY_ACCOUNT)
+                             != 0;
+@@ -1296,7 +1296,7 @@ UUIInteractionHelper::executeMasterPasswordDialog(
+     rtl::OString aMaster;
+     try
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+         std::auto_ptr< ResMgr >
+             xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
+@@ -1359,7 +1359,7 @@ UUIInteractionHelper::executePasswordDialog(
+ {
+     try
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+         std::auto_ptr< ResMgr >
+             xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
+@@ -1416,7 +1416,7 @@ UUIInteractionHelper::executeCookieDialog(CntHTTPCookieRequest & rRequest)
+ {
+     try
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+         std::auto_ptr< ResMgr >
+             xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
+@@ -1441,7 +1441,7 @@ void UUIInteractionHelper::executeFilterDialog(
+ {
+     try
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 	
+         std::auto_ptr< ResMgr >
+             xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
+@@ -1476,7 +1476,7 @@ UUIInteractionHelper::executeErrorDialog(
+     SAL_THROW((star::uno::RuntimeException))
+ {
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+     rtl::OUStringBuffer aText(rContext);
+     if (rContext.getLength() != 0 && rMessage.getLength() != 0)
+@@ -1562,7 +1562,7 @@ UUIInteractionHelper::executeMessageBox(
+     SAL_THROW((star::uno::RuntimeException))
+ {
+ 
+-    vos::OGuard aGuard(Application::GetSolarMutex());
++    osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     
+     MessBox xBox( getParentProperty(), nButtonMask, rTitle, rMessage );
+     
+@@ -2636,7 +2636,7 @@ UUIInteractionHelper::handleErrorRequest(
+             SOURCE_SVX :
+             SOURCE_UUI;
+ 
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+         std::auto_ptr< ResMgr > xManager;
+         xManager.reset(ResMgr::CreateResMgr(aManager[eSource]));
+         if (!xManager.get())
+@@ -2723,7 +2723,7 @@ UUIInteractionHelper::handleErrorRequest(
+         rtl::OUString aContext(getContextProperty());
+         if (aContext.getLength() == 0 && nErrorCode != 0)
+         {
+-            vos::OGuard aGuard(Application::GetSolarMutex());
++            osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+             ErrorContext * pContext = ErrorContext::GetContext();
+             if (pContext)
+             {
+@@ -2804,7 +2804,7 @@ UUIInteractionHelper::handleBrokenPackageRequest(
+ 
+     ::rtl::OUString aMessage;
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+     	std::auto_ptr< ResMgr > xManager(
+ 	    ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
+     	if (!xManager.get())
+diff --git a/vcl/aqua/inc/salinst.h b/vcl/aqua/inc/salinst.h
+index 698166e..9231151 100644
+--- vcl/aqua/inc/salinst.h
++++ vcl/aqua/inc/salinst.h
+@@ -37,7 +37,7 @@
+ #define _SV_SALINST_H
+ 
+ #include "vcl/sv.h"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "osl/thread.hxx"
+ #include "vcl/salinst.hxx"
+ 
+@@ -67,7 +67,7 @@ class SalYieldMutex;
+ // - SalYieldMutex -
+ // -----------------
+ 
+-class SalYieldMutex : public vos::OMutex
++class SalYieldMutex : public vcl::SolarMutexObject
+ {
+ 	ULONG										mnCount;
+ 	oslThreadIdentifier	mnThreadId;
+@@ -81,7 +81,7 @@ public:
+ 	oslThreadIdentifier	GetThreadId() const { return mnThreadId; }
+ };
+ 
+-#define YIELD_GUARD vos::OGuard aGuard( GetSalData()->mpFirstInstance->GetYieldMutex() )
++#define YIELD_GUARD osl::SolarMutexGuard aGuard( GetSalData()->mpFirstInstance->GetYieldMutex() )
+ 
+ // -------------------
+ // - SalInstanceData -
+@@ -134,7 +134,7 @@ public:
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+     virtual SalSystem*			CreateSalSystem();
+     virtual SalBitmap*			CreateSalBitmap();
+-    virtual vos::IMutex*		GetYieldMutex();
++    virtual osl::SolarMutex*		GetYieldMutex();
+     virtual ULONG				ReleaseYieldMutex();
+     virtual void				AcquireYieldMutex( ULONG nCount );
+     virtual void				Yield( bool bWait, bool bHandleAllCurrentEvents );
+diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx
+index 292f4e8..f7e26e4 100644
+--- vcl/aqua/source/app/salinst.cxx
++++ vcl/aqua/source/app/salinst.cxx
+@@ -247,7 +247,7 @@ SalYieldMutex::SalYieldMutex()
+ 
+ void SalYieldMutex::acquire()
+ {
+-	OMutex::acquire();
++	vcl::SolarMutexObject::acquire();
+ 	mnThreadId = osl::Thread::getCurrentIdentifier();
+ 	mnCount++;
+ }
+@@ -260,12 +260,12 @@ void SalYieldMutex::release()
+ 			mnThreadId = 0;
+ 		mnCount--;
+ 	}
+-	OMutex::release();
++	vcl::SolarMutexObject::release();
+ }
+ 
+ sal_Bool SalYieldMutex::tryToAcquire()
+ {
+-	if ( OMutex::tryToAcquire() )
++	if ( vcl::SolarMutexObject::tryToAcquire() )
+ 	{
+ 		mnThreadId = osl::Thread::getCurrentIdentifier();
+ 		mnCount++;
+@@ -402,7 +402,7 @@ void AquaSalInstance::TimerEventHandler(EventLoopTimerRef inTimer, void* pData)
+ 
+ // -----------------------------------------------------------------------
+ 
+-vos::IMutex* AquaSalInstance::GetYieldMutex()
++osl::SolarMutex* AquaSalInstance::GetYieldMutex()
+ {
+ 	return mpSalYieldMutex;
+ }
+diff --git a/vcl/aqua/source/gdi/salgdi.cxx b/vcl/aqua/source/gdi/salgdi.cxx
+index c14be87..575d800 100644
+--- vcl/aqua/source/gdi/salgdi.cxx
++++ vcl/aqua/source/gdi/salgdi.cxx
+@@ -44,7 +44,7 @@
+ #include "psprint/list.h"
+ #include "psprint/sft.h"
+ #include "osl/file.hxx"
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "osl/process.h"
+ 
+ #include "vcl/sallayout.hxx"
+@@ -1410,7 +1410,7 @@ void AquaSalGraphics::GetDevFontList( ImplDevFontList* pFontList )
+ 	// carefully make the access to the font list thread-safe. If we register 
+ 	// a font-change event handler to update the font list in case fonts have 
+ 	// changed on the system we have to lock access to the list.
+-	::vos::OMutex aMutex;
++	::vcl::SolarMutexObject aMutex;
+ 	aMutex.acquire();
+ 	SalData* pSalData = GetSalData();
+ 	if (pSalData->mpFontList == NULL)
+diff --git a/vcl/inc/vcl/salinst.hxx b/vcl/inc/vcl/salinst.hxx
+index 2f07df3..f14136a 100644
+--- vcl/inc/vcl/salinst.hxx
++++ vcl/inc/vcl/salinst.hxx
+@@ -77,7 +77,7 @@ class SalSession;
+ struct SystemGraphicsData;
+ struct SystemWindowData;
+ 
+-namespace vos { class IMutex; }
++namespace osl { class SolarMutex; }
+ 
+ // ---------------
+ // - SalInstance -
+@@ -150,7 +150,7 @@ public:
+     virtual SalBitmap*			CreateSalBitmap() = 0;
+ 
+     // YieldMutex
+-    virtual vos::IMutex*		GetYieldMutex() = 0;
++    virtual osl::SolarMutex*	GetYieldMutex() = 0;
+     virtual ULONG				ReleaseYieldMutex() = 0;
+     virtual void				AcquireYieldMutex( ULONG nCount ) = 0;
+ 
+diff --git a/vcl/inc/vcl/solarmutex.hxx b/vcl/inc/vcl/solarmutex.hxx
+new file mode 100644
+index 0000000..32eee3e
+--- /dev/null
++++ vcl/inc/vcl/solarmutex.hxx
+@@ -0,0 +1,85 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef _VCL_SOLARMUTEX_HXX_
++#define _VCL_SOLARMUTEX_HXX_
++
++#include <osl/mutex.hxx>
++#include <vcl/dllapi.h>
++
++namespace vcl
++{
++
++/** Implementation of the SolarMutex interface.
++ */
++class VCL_DLLPUBLIC SolarMutexObject : public osl::SolarMutex
++{
++public:
++    //static SolarMutex& SAL_CALL getGlobalMutex();
++
++    /** Creates mutex
++     */
++    SolarMutexObject();
++
++    /** Implicitly destroys mutex
++     */
++    virtual ~SolarMutexObject();
++
++    /** Blocks if Mutex is already in use
++     */
++    virtual void SAL_CALL acquire();
++
++    /** Tries to get the mutex without blocking.
++        @return True if mutex could be obtained, otherwise False
++     */
++    virtual sal_Bool SAL_CALL tryToAcquire();
++
++    /** Releases the mutex.
++     */
++    virtual void SAL_CALL release();
++
++protected:
++    oslMutex    m_aImpl;
++
++private:
++    /* Disable copy/assignment
++     */
++    SolarMutexObject( const SolarMutexObject& );
++    SolarMutexObject& SAL_CALL operator=( const SolarMutexObject& );
++};
++
++}
++
++#endif // _VCL_SOLARMUTEX_HXX_
+diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
+index cd88a3d..9a57a0a 100644
+--- vcl/inc/vcl/svapp.hxx
++++ vcl/inc/vcl/svapp.hxx
+@@ -80,7 +80,7 @@ class NotifyEvent;
+ class KeyEvent;
+ class MouseEvent;
+ 
+-namespace vos { class IMutex; }
++namespace vcl { class SolarMutex; }
+ 
+ #ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+ #include <com/sun/star/uno/Reference.h>
+@@ -309,7 +309,7 @@ public:
+     static void                 Reschedule( bool bAllEvents = false );
+     static void                 Yield( bool bAllEvents = false );
+     static void                 EndYield();
+-    static vos::IMutex&                     GetSolarMutex();
++    static osl::SolarMutex&                     GetSolarMutex();
+     static oslThreadIdentifier  GetMainThreadIdentifier();
+     static ULONG                ReleaseSolarMutex();
+     static void                 AcquireSolarMutex( ULONG nCount );
+diff --git a/vcl/inc/vcl/svdata.hxx b/vcl/inc/vcl/svdata.hxx
+index c9ba081..28e240d 100644
+--- vcl/inc/vcl/svdata.hxx
++++ vcl/inc/vcl/svdata.hxx
+@@ -138,7 +138,7 @@ class SalTimer;
+ class SalI18NImeStatus;
+ class DockingManager;
+ 
+-namespace vos { class OMutex; }
++namespace vcl { class SolarMutexObject; }
+ namespace vos { class OCondition; }
+ namespace vcl { class DisplayConnection; class FontSubstConfiguration; class SettingsConfigItem; class DefaultFontConfiguration; }
+ 
+diff --git a/vcl/prj/d.lst b/vcl/prj/d.lst
+index c1228db..4fdc85b 100644
+--- vcl/prj/d.lst
++++ vcl/prj/d.lst
+@@ -102,6 +102,7 @@ mkdir: %_DEST%\inc%_EXT%\vcl\plug\vcl
+ ..\inc\vcl\settings.hxx %_DEST%\inc%_EXT%\vcl\settings.hxx
+ ..\inc\vcl\slider.hxx %_DEST%\inc%_EXT%\vcl\slider.hxx
+ ..\inc\vcl\sndstyle.hxx %_DEST%\inc%_EXT%\vcl\sndstyle.hxx
++..\inc\vcl\solarmutex.hxx %_DEST%\inc%_EXT%\vcl\solarmutex.hxx
+ ..\inc\vcl\sound.hxx %_DEST%\inc%_EXT%\vcl\sound.hxx
+ ..\inc\vcl\spin.h %_DEST%\inc%_EXT%\vcl\spin.h
+ ..\inc\vcl\spin.hxx %_DEST%\inc%_EXT%\vcl\spin.hxx
+diff --git a/vcl/source/app/dbggui.cxx b/vcl/source/app/dbggui.cxx
+index 712faa8..a6740c5 100644
+--- vcl/source/app/dbggui.cxx
++++ vcl/source/app/dbggui.cxx
+@@ -106,7 +106,7 @@
+ #ifndef _VCL_UNOHELP2_HXX
+ #include <vcl/unohelp2.hxx>
+ #endif
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <map>
+ #include <algorithm>
+diff --git a/vcl/source/app/makefile.mk b/vcl/source/app/makefile.mk
+index 2bc2f8e..4648e22 100644
+--- vcl/source/app/makefile.mk
++++ vcl/source/app/makefile.mk
+@@ -58,6 +58,7 @@ SLOFILES=	$(SLO)$/dbggui.obj		\
+ 			$(SLO)$/help.obj		\
+ 			$(SLO)$/idlemgr.obj 	\
+ 			$(SLO)$/settings.obj	\
++			$(SLO)$/solarmutex.obj	\
+ 			$(SLO)$/sound.obj		\
+ 			$(SLO)$/stdtext.obj 	\
+ 			$(SLO)$/svapp.obj		\
+diff --git a/vcl/source/app/solarmutex.cxx b/vcl/source/app/solarmutex.cxx
+new file mode 100644
+index 0000000..bfd671e
+--- /dev/null
++++ vcl/source/app/solarmutex.cxx
+@@ -0,0 +1,62 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <vcl/solarmutex.hxx>
++
++using namespace vcl;
++
++SolarMutexObject::SolarMutexObject() : m_aImpl( osl_createMutex() )
++{
++}
++
++SolarMutexObject::~SolarMutexObject() 
++{
++    osl_destroyMutex( m_aImpl );
++}
++
++void SolarMutexObject::acquire()
++{
++    osl_acquireMutex( m_aImpl );
++}
++
++sal_Bool SolarMutexObject::tryToAcquire() 
++{
++    return osl_tryToAcquireMutex( m_aImpl );
++}
++
++void SolarMutexObject::release()
++{
++    osl_releaseMutex( m_aImpl );
++}
+diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
+index 134ca55..74d0919 100644
+--- vcl/source/app/svapp.cxx
++++ vcl/source/app/svapp.cxx
+@@ -51,8 +51,8 @@
+ #ifndef _OSL_PROCESS_H_
+ #include <osl/process.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _TOOLS_H
+@@ -581,7 +581,7 @@ void Application::Quit()
+ 
+ // -----------------------------------------------------------------------
+ 
+-vos::IMutex& Application::GetSolarMutex()
++osl::SolarMutex& Application::GetSolarMutex()
+ {
+     ImplSVData* pSVData = ImplGetSVData();
+     return *(pSVData->mpDefInst->GetYieldMutex());
+@@ -967,7 +967,7 @@ BOOL Application::HandleKey( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent )
+ 
+ ULONG Application::PostKeyEvent( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent )
+ {
+-	const ::vos::OGuard	aGuard( GetSolarMutex() );
++	const osl::SolarMutexGuard	aGuard( GetSolarMutex() );
+ 	ULONG 				nEventId = 0;
+ 	
+     if( pWin && pKeyEvent )
+@@ -994,7 +994,7 @@ ULONG Application::PostKeyEvent( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent
+ 
+ ULONG Application::PostMouseEvent( ULONG nEvent, Window *pWin, MouseEvent* pMouseEvent )
+ {
+-	const ::vos::OGuard	aGuard( GetSolarMutex() );
++	const osl::SolarMutexGuard	aGuard( GetSolarMutex() );
+ 	ULONG 				nEventId = 0;
+ 	
+     if( pWin && pMouseEvent )
+@@ -1029,7 +1029,7 @@ ULONG Application::PostMouseEvent( ULONG nEvent, Window *pWin, MouseEvent* pMous
+ 
+ IMPL_STATIC_LINK_NOINSTANCE( Application, PostEventHandler, void*, pCallData )
+ {
+-	const ::vos::OGuard	aGuard( GetSolarMutex() );
++	const osl::SolarMutexGuard	aGuard( GetSolarMutex() );
+     ImplPostEventData*	pData = static_cast< ImplPostEventData * >( pCallData );
+ 	const void*			pEventData;
+     ULONG               nEvent;
+@@ -1092,7 +1092,7 @@ IMPL_STATIC_LINK_NOINSTANCE( Application, PostEventHandler, void*, pCallData )
+ 
+ void Application::RemoveMouseAndKeyEvents( Window* pWin )
+ {
+-	const ::vos::OGuard	aGuard( GetSolarMutex() );
++	const osl::SolarMutexGuard	aGuard( GetSolarMutex() );
+ 	
+ 	// remove all events for specific window, watch for destruction of internal data
+ 	::std::list< ImplPostEventPair >::iterator aIter( aPostedEventList.begin() );
+@@ -1116,7 +1116,7 @@ void Application::RemoveMouseAndKeyEvents( Window* pWin )
+ 
+ BOOL Application::IsProcessedMouseOrKeyEvent( ULONG nEventId )
+ {
+-    const ::vos::OGuard aGuard( GetSolarMutex() );
++    const osl::SolarMutexGuard aGuard( GetSolarMutex() );
+     
+     // find event
+     ::std::list< ImplPostEventPair >::iterator aIter( aPostedEventList.begin() );
+diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
+index 7f40a75..5ec744b 100644
+--- vcl/source/app/svdata.cxx
++++ vcl/source/app/svdata.cxx
+@@ -47,8 +47,8 @@
+ #include <vcl/salframe.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <osl/process.h>
+diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
+index 31572b1..ead4370 100644
+--- vcl/source/app/svmain.cxx
++++ vcl/source/app/svmain.cxx
+@@ -139,7 +139,7 @@
+ #include <vcl/xconnection.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <osl/process.h>
+ #include <osl/file.hxx>
+@@ -221,7 +221,7 @@ public:
+         {
+             bIn = TRUE;
+         
+-            ::vos::OGuard aLock(&Application::GetSolarMutex());
++            osl::SolarMutexGuard aLock(&Application::GetSolarMutex());
+         
+             // Timer nicht mehr anhalten, da ansonsten die UAE-Box
+             // auch nicht mehr gepaintet wird
+diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
+index fa3b414..bf20a94 100644
+--- vcl/source/control/edit.cxx
++++ vcl/source/control/edit.cxx
+@@ -76,7 +76,7 @@
+ #include <vcl/controllayout.hxx>
+ #endif
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ 
+ #ifndef _COM_SUN_STAR_I18N_XBREAKITERATOR_HPP_
+@@ -2796,7 +2796,7 @@ void Edit::DeletePopupMenu( PopupMenu* pMenu )
+ // ::com::sun::star::datatransfer::dnd::XDragGestureListener
+ void Edit::dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& rDGE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     if ( !IsTracking() && maSelection.Len() &&
+ 		 !(GetStyle() & WB_PASSWORD) && (!mpDDInfo || mpDDInfo->bStarterOfDD == FALSE) ) // Kein Mehrfach D&D
+@@ -2834,7 +2834,7 @@ void Edit::dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::Dra
+ // ::com::sun::star::datatransfer::dnd::XDragSourceListener
+ void Edit::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& rDSDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+ 	if ( rDSDE.DropSuccess && ( rDSDE.DropAction & datatransfer::dnd::DNDConstants::ACTION_MOVE ) )
+ 	{
+@@ -2860,7 +2860,7 @@ void Edit::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDro
+ // ::com::sun::star::datatransfer::dnd::XDropTargetListener
+ void Edit::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+ 	BOOL bChanges = FALSE;
+ 	if ( !mbReadOnly && mpDDInfo )
+@@ -2920,14 +2920,14 @@ void Edit::dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragE
+ 
+ void Edit::dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+     ImplHideDDCursor();
+ }
+ 
+ void Edit::dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-	vos::OGuard aVclGuard( Application::GetSolarMutex() );
++	osl::SolarMutexGuard aVclGuard( Application::GetSolarMutex() );
+ 
+ 	Point aMousePos( rDTDE.LocationX, rDTDE.LocationY );
+ 
+diff --git a/vcl/source/gdi/bmpconv.cxx b/vcl/source/gdi/bmpconv.cxx
+index f3bdf68..e07eff2 100644
+--- vcl/source/gdi/bmpconv.cxx
++++ vcl/source/gdi/bmpconv.cxx
+@@ -39,7 +39,7 @@
+ #include <vcl/bitmap.hxx>
+ #include <vcl/impbmpconv.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #ifndef _STREAM_HXX
+ #include <tools/stream.hxx>
+@@ -167,7 +167,7 @@ Any SAL_CALL BmpConverter::invoke(
+         Sequence< sal_Int8 > aDIB = xBM->getDIB();
+ 
+         // call into vcl not thread safe
+-        vos::OGuard aGuard( Application::GetSolarMutex() );
++        osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+         SvMemoryStream aStream( aDIB.getArray(), aDIB.getLength(), STREAM_READ | STREAM_WRITE );
+         Bitmap aBM;
+diff --git a/vcl/source/gdi/opengl.cxx b/vcl/source/gdi/opengl.cxx
+index 2be1467..8efcbc5 100644
+--- vcl/source/gdi/opengl.cxx
++++ vcl/source/gdi/opengl.cxx
+@@ -63,7 +63,7 @@
+ 
+ 
+ #include <vcl/svapp.hxx>
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ // -----------
+ // - Defines -
+diff --git a/vcl/source/helper/canvasbitmap.cxx b/vcl/source/helper/canvasbitmap.cxx
+index e7cbfab..52fc2d4 100644
+--- vcl/source/helper/canvasbitmap.cxx
++++ vcl/source/helper/canvasbitmap.cxx
+@@ -42,8 +42,8 @@
+ #include <com/sun/star/rendering/IntegerBitmapFormat.hpp>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include <vcl/canvasbitmap.hxx>
+@@ -62,7 +62,7 @@ VclCanvasBitmap::VclCanvasBitmap( const BitmapEx& rBitmap ) :
+     m_aLayout(),
+     m_bHavePalette( false )
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Size aSz = m_pBitmap->GetSizePixel();
+     m_aLayout.Palette.clear();
+     m_bHavePalette = false;
+@@ -286,21 +286,21 @@ VclCanvasBitmap::VclCanvasBitmap( const BitmapEx& rBitmap ) :
+ 
+ VclCanvasBitmap::~VclCanvasBitmap()
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     delete m_pBitmap;
+ }
+ 
+ // XBitmap
+ IntegerSize2D SAL_CALL VclCanvasBitmap::getSize() throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return integerSize2DFromSize( m_pBitmap->GetSizePixel() );
+ }
+ 
+ ::sal_Bool SAL_CALL VclCanvasBitmap::hasAlpha() throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     return m_pBitmap->IsTransparent();
+ }
+@@ -312,7 +312,7 @@ Reference< XBitmapCanvas > SAL_CALL VclCanvasBitmap::queryBitmapCanvas() throw (
+ 
+ Reference< XBitmap > SAL_CALL VclCanvasBitmap::getScaledBitmap( const RealSize2D& newSize, sal_Bool beFast ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     
+     BitmapEx aNewBmp( *m_pBitmap );
+     aNewBmp.Scale( sizeFromRealSize2D( newSize ), beFast ? BMP_SCALE_FAST : BMP_SCALE_INTERPOLATE );
+@@ -325,7 +325,7 @@ Sequence< sal_Int8 > SAL_CALL VclCanvasBitmap::getData( IntegerBitmapLayout&
+                                                                                                 VolatileContentDestroyedException, 
+                                                                                                 RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     bitmapLayout = getMemoryLayout();
+ 
+@@ -448,7 +448,7 @@ Sequence< sal_Int8 > SAL_CALL VclCanvasBitmap::getPixel( IntegerBitmapLayout&	bi
+                                                                                              VolatileContentDestroyedException, 
+                                                                                              RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     bitmapLayout = getMemoryLayout();
+ 
+@@ -563,7 +563,7 @@ IntegerBitmapLayout SAL_CALL VclCanvasBitmap::getMemoryLayout() throw (RuntimeEx
+ 
+ sal_Int32 SAL_CALL VclCanvasBitmap::getNumberOfEntries() throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+     Bitmap aBmp = m_pBitmap->GetBitmap();
+     BitmapReadAccess* pAcc = aBmp.AcquireReadAccess();
+ 
+@@ -578,7 +578,7 @@ sal_Int32 SAL_CALL VclCanvasBitmap::getNumberOfEntries() throw (RuntimeException
+ 
+ Sequence< double > SAL_CALL VclCanvasBitmap::getPaletteIndex( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     Sequence< double > aRet( 3 );
+     double* pContents = aRet.getArray();
+@@ -620,7 +620,7 @@ Reference< XColorSpace > SAL_CALL VclCanvasBitmap::getColorSpace(  ) throw (Runt
+ 
+ sal_Int64 SAL_CALL VclCanvasBitmap::getSomething( const Sequence< sal_Int8 >& aIdentifier ) throw (RuntimeException)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+     sal_Int64 nRet = 0;
+     const Sequence< sal_Int8 >& rTest = getTunnelIdentifier( Id_BitmapEx );
+diff --git a/vcl/source/window/dndevdis.cxx b/vcl/source/window/dndevdis.cxx
+index 266e3b5..e93e6aa 100644
+--- vcl/source/window/dndevdis.cxx
++++ vcl/source/window/dndevdis.cxx
+@@ -40,7 +40,7 @@
+ #include <dndlcon.hxx>
+ #include <vcl/window.h>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ #include <vcl/svapp.hxx>
+ #ifndef _SV_SVDATA_HXX
+ #include <vcl/svdata.hxx>
+@@ -83,7 +83,7 @@ void SAL_CALL DNDEventDispatcher::drop( const DropTargetDropEvent& dtde )
+ 	Point location( dtde.LocationX, dtde.LocationY );
+ 
+ 	// find the window that is toplevel for this coordinates
+-	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     // because those coordinates come from outside, they must be mirrored if RTL layout is active
+     if( Application::GetSettings().GetLayoutRTL() )
+@@ -139,7 +139,7 @@ void SAL_CALL DNDEventDispatcher::dragEnter( const DropTargetDragEnterEvent& dtd
+ 	Point location( dtdee.LocationX, dtdee.LocationY );
+ 
+ 	// find the window that is toplevel for this coordinates
+-	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     // because those coordinates come from outside, they must be mirrored if RTL layout is active
+     if( Application::GetSettings().GetLayoutRTL() )
+@@ -202,7 +202,7 @@ void SAL_CALL DNDEventDispatcher::dragOver( const DropTargetDragEvent& dtde )
+ 	sal_Int32 nListeners;
+ 
+ 	// find the window that is toplevel for this coordinates
+-	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     // because those coordinates come from outside, they must be mirrored if RTL layout is active
+     if( Application::GetSettings().GetLayoutRTL() )
+@@ -260,7 +260,7 @@ void SAL_CALL DNDEventDispatcher::dropActionChanged( const DropTargetDragEvent&
+ 	sal_Int32 nListeners;
+ 
+ 	// find the window that is toplevel for this coordinates
+-	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     // because those coordinates come from outside, they must be mirrored if RTL layout is active
+     if( Application::GetSettings().GetLayoutRTL() )
+@@ -317,7 +317,7 @@ void SAL_CALL DNDEventDispatcher::dragGestureRecognized( const DragGestureEvent&
+ 	Point origin( dge.DragOriginX, dge.DragOriginY );
+ 
+ 	// find the window that is toplevel for this coordinates
+-	OClearableGuard aSolarGuard( Application::GetSolarMutex() );
++	osl::ClearableSolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+     // because those coordinates come from outside, they must be mirrored if RTL layout is active
+     if( Application::GetSettings().GetLayoutRTL() )
+@@ -377,7 +377,7 @@ sal_Int32 DNDEventDispatcher::fireDragEnterEvent( Window *pWindow,
+ 
+ 	if( pWindow && pWindow->IsInputEnabled() )
+ 	{
+-		OClearableGuard aGuard( Application::GetSolarMutex() );
++		osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+         
+         // set an UI lock
+         pWindow->IncrementLockCount();
+@@ -413,7 +413,7 @@ sal_Int32 DNDEventDispatcher::fireDragOverEvent( Window *pWindow,
+ 
+ 	if( pWindow && pWindow->IsInputEnabled() )
+ 	{
+-		OClearableGuard aGuard( Application::GetSolarMutex() );
++		osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		// query DropTarget from window
+ 		Reference< XDropTarget > xDropTarget = pWindow->GetDropTarget();
+@@ -442,7 +442,7 @@ sal_Int32 DNDEventDispatcher::fireDragExitEvent( Window *pWindow ) throw(Runtime
+ 
+ 	if( pWindow && pWindow->IsInputEnabled() )
+ 	{
+-		OClearableGuard aGuard( Application::GetSolarMutex() );
++		osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		// query DropTarget from window
+ 		Reference< XDropTarget > xDropTarget = pWindow->GetDropTarget();
+@@ -473,7 +473,7 @@ sal_Int32 DNDEventDispatcher::fireDropActionChangedEvent( Window *pWindow,
+ 
+ 	if( pWindow && pWindow->IsInputEnabled() )
+ 	{
+-		OClearableGuard aGuard( Application::GetSolarMutex() );
++		osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		// query DropTarget from window
+ 		Reference< XDropTarget > xDropTarget = pWindow->GetDropTarget();
+@@ -506,7 +506,7 @@ sal_Int32 DNDEventDispatcher::fireDropEvent( Window *pWindow,
+ 
+ 	if( pWindow && pWindow->IsInputEnabled() )
+ 	{
+-		OClearableGuard aGuard( Application::GetSolarMutex() );
++		osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		// query DropTarget from window
+ 		Reference< XDropTarget > xDropTarget = pWindow->GetDropTarget();
+@@ -551,7 +551,7 @@ sal_Int32 DNDEventDispatcher::fireDragGestureEvent( Window *pWindow,
+ 
+ 	if( pWindow && pWindow->IsInputEnabled() )
+ 	{
+-		OClearableGuard aGuard( Application::GetSolarMutex() );
++		osl::ClearableSolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ 		// query DropTarget from window
+ 		Reference< XDragGestureRecognizer > xDragGestureRecognizer = pWindow->GetDragGestureRecognizer();
+diff --git a/vcl/unx/gtk/a11y/atkutil.cxx b/vcl/unx/gtk/a11y/atkutil.cxx
+index bbabd76..c5c68c9 100644
+--- vcl/unx/gtk/a11y/atkutil.cxx
++++ vcl/unx/gtk/a11y/atkutil.cxx
+@@ -60,8 +60,8 @@
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _RTL_REF_HXX_
+@@ -98,7 +98,7 @@ extern "C" {
+ static gint
+ atk_wrapper_focus_idle_handler (gpointer data)
+ {
+-    vos::OGuard aGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 
+ #ifdef ENABLE_TRACING    
+     fprintf(stderr, "%s focus event for %p\n", 
+diff --git a/vcl/unx/gtk/app/gtkinst.cxx b/vcl/unx/gtk/app/gtkinst.cxx
+index 4bdd988..f8602ae 100644
+--- vcl/unx/gtk/app/gtkinst.cxx
++++ vcl/unx/gtk/app/gtkinst.cxx
+@@ -227,30 +227,30 @@ void GtkYieldMutex::acquire()
+ {
+     oslThreadIdentifier aCurrentThread = osl::Thread::getCurrentIdentifier();
+     // protect member manipulation
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     if( mnCount > 0 && mnThreadId == aCurrentThread )
+     {
+         mnCount++;
+-        OMutex::release();
++        vcl::SolarMutexObject::release();
+         return;
+     }
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+     
+     // obtain gdk mutex
+     gdk_threads_enter();
+ 
+     // obtained gdk mutex, now lock count is one by definition
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     mnCount = 1;
+     mnThreadId = aCurrentThread;
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+ }
+ 
+ void GtkYieldMutex::release()
+ {
+     oslThreadIdentifier aCurrentThread = osl::Thread::getCurrentIdentifier();
+     // protect member manipulation
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     // strange things happen, do nothing if we don't own the mutex
+     if( mnThreadId == aCurrentThread )
+     {
+@@ -261,29 +261,29 @@ void GtkYieldMutex::release()
+             mnThreadId = 0;
+         }
+     }
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+ }
+ 
+ sal_Bool GtkYieldMutex::tryToAcquire()
+ {
+     oslThreadIdentifier aCurrentThread = osl::Thread::getCurrentIdentifier();
+     // protect member manipulation
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     if( mnCount > 0 )
+     {
+         if( mnThreadId == aCurrentThread )
+         {
+             mnCount++;
+-            OMutex::release();
++            vcl::SolarMutexObject::release();
+             return sal_True;
+         }
+         else
+         {
+-            OMutex::release();
++            vcl::SolarMutexObject::release();
+             return sal_False;
+         }
+     }
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+ 
+     // HACK: gdk_threads_mutex is private, we shouldn't use it.
+     // how to we do a try_lock without having a gdk_threads_try_enter ?
+@@ -291,10 +291,10 @@ sal_Bool GtkYieldMutex::tryToAcquire()
+         return sal_False;
+     
+     // obtained gdk mutex, now lock count is one by definition
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     mnCount = 1;
+     mnThreadId = aCurrentThread;
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+     
+     return sal_True;
+ }
+@@ -307,7 +307,7 @@ int GtkYieldMutex::Grab()
+     // is now locked again by gtk implicitly
+ 
+     // obtained gdk mutex, now lock count is one by definition
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     int nRet = mnCount;
+     if( mnCount == 0 ) // recursive else
+         mnThreadId = osl::Thread::getCurrentIdentifier();
+@@ -319,7 +319,7 @@ int GtkYieldMutex::Grab()
+     }
+ #endif
+     mnCount = 1;
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+     return nRet;
+ }
+ 
+@@ -327,9 +327,9 @@ void GtkYieldMutex::Ungrab( int nGrabs )
+ {
+     // this MUST only be called when leaving the callback
+     // that locked the mutex with Grab()
+-    OMutex::acquire();
++    vcl::SolarMutexObject::acquire();
+     mnCount = nGrabs;
+     if( mnCount == 0 )
+         mnThreadId = 0;
+-    OMutex::release();
++    vcl::SolarMutexObject::release();
+ }
+diff --git a/vcl/unx/headless/svpinst.cxx b/vcl/unx/headless/svpinst.cxx
+index 6785f15..9a88130 100644
+--- vcl/unx/headless/svpinst.cxx
++++ vcl/unx/headless/svpinst.cxx
+@@ -299,7 +299,7 @@ SalBitmap* SvpSalInstance::CreateSalBitmap()
+     return new SvpSalBitmap();
+ }
+ 
+-vos::IMutex* SvpSalInstance::GetYieldMutex()
++osl::SolarMutex* SvpSalInstance::GetYieldMutex()
+ {
+     return &m_aYieldMutex;
+ }
+@@ -465,7 +465,7 @@ SvpSalYieldMutex::SvpSalYieldMutex()
+ 
+ void SvpSalYieldMutex::acquire()
+ {
+-	OMutex::acquire();
++	vcl::SolarMutexObject::acquire();
+ 	mnThreadId = osl::Thread::getCurrentIdentifier();
+ 	mnCount++;
+ }
+@@ -478,12 +478,12 @@ void SvpSalYieldMutex::release()
+ 			mnThreadId = 0;
+ 		mnCount--;
+ 	}
+-	OMutex::release();
++	vcl::SolarMutexObject::release();
+ }
+ 
+ sal_Bool SvpSalYieldMutex::tryToAcquire()
+ {
+-	if ( OMutex::tryToAcquire() )
++	if ( vcl::SolarMutexObject::tryToAcquire() )
+ 	{
+ 		mnThreadId = osl::Thread::getCurrentIdentifier();
+ 		mnCount++;
+diff --git a/vcl/unx/headless/svpinst.hxx b/vcl/unx/headless/svpinst.hxx
+index 202698f..3fef99e 100644
+--- vcl/unx/headless/svpinst.hxx
++++ vcl/unx/headless/svpinst.hxx
+@@ -39,7 +39,7 @@
+ #include <vcl/salinst.hxx>
+ #include <vcl/salwtype.hxx>
+ #include <vcl/saltimer.hxx>
+-#include <vos/mutex.hxx>
++#include <vcl/solarmutex.hxx>
+ #include <osl/thread.hxx>
+ 
+ #include <list>
+@@ -52,7 +52,7 @@
+ // SalYieldMutex
+ // -------------------------------------------------------------------------
+ 
+-class SvpSalYieldMutex : public NAMESPACE_VOS(OMutex)
++class SvpSalYieldMutex : public vcl::SolarMutexObject
+ {
+ protected:
+ 	ULONG										mnCount;
+@@ -180,7 +180,7 @@ public:
+     virtual SalBitmap*		CreateSalBitmap();
+ 
+     // YieldMutex
+-    virtual vos::IMutex*	GetYieldMutex();
++    virtual osl::SolarMutex*	GetYieldMutex();
+     virtual ULONG			ReleaseYieldMutex();
+     virtual void			AcquireYieldMutex( ULONG nCount );
+ 
+diff --git a/vcl/unx/inc/salinst.h b/vcl/unx/inc/salinst.h
+index 323e28e..cf333ab 100644
+--- vcl/unx/inc/salinst.h
++++ vcl/unx/inc/salinst.h
+@@ -40,8 +40,8 @@
+ #ifndef _SV_SV_H
+ #include <vcl/sv.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _VCL_SOLARMUTEX_HXX_
++#include <vcl/solarmutex.hxx>
+ #endif
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+@@ -54,7 +54,7 @@
+ #include <vcl/salinst.hxx>
+ #endif
+ 
+-class VCL_DLLPUBLIC SalYieldMutex : public NAMESPACE_VOS(OMutex)
++class VCL_DLLPUBLIC SalYieldMutex : public vcl::SolarMutexObject
+ {
+ protected:
+ 	ULONG										mnCount;
+@@ -116,7 +116,7 @@ public:
+     virtual SalBitmap*			CreateSalBitmap();
+     virtual SalSession*			CreateSalSession();
+ 
+-    virtual vos::IMutex*		GetYieldMutex();
++    virtual osl::SolarMutex*		GetYieldMutex();
+     virtual ULONG				ReleaseYieldMutex();
+     virtual void				AcquireYieldMutex( ULONG nCount );
+ 
+diff --git a/vcl/unx/inc/salsys.h b/vcl/unx/inc/salsys.h
+index be454dc..708d740 100644
+--- vcl/unx/inc/salsys.h
++++ vcl/unx/inc/salsys.h
+@@ -40,8 +40,8 @@
+ #ifndef _SV_SV_H
+ #include <vcl/sv.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+diff --git a/vcl/unx/kde/kdedata.cxx b/vcl/unx/kde/kdedata.cxx
+index 7c642e6..fbfd258 100644
+--- vcl/unx/kde/kdedata.cxx
++++ vcl/unx/kde/kdedata.cxx
+@@ -77,8 +77,8 @@
+ #include "i18n_xkb.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ /* #i59042# override KApplications method for session management
+diff --git a/vcl/unx/source/app/saldata.cxx b/vcl/unx/source/app/saldata.cxx
+index aaaaa97..293c8eb 100644
+--- vcl/unx/source/app/saldata.cxx
++++ vcl/unx/source/app/saldata.cxx
+@@ -64,8 +64,8 @@
+ #include <unistd.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #include "Xproto.h"
+diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx
+index 2a43618..f2b22f9 100644
+--- vcl/unx/source/app/saldisp.cxx
++++ vcl/unx/source/app/saldisp.cxx
+@@ -699,9 +699,9 @@ fd
+   if( ! pDisplay->IsDisplay() )
+       return 0;
+ 
+-  vos::IMutex* pSalInstYieldMutex	=
++  osl::SolarMutex* pSalInstYieldMutex	=
+       GetSalData()->m_pInstance->GetYieldMutex();
+-  ::vos::OGuard aGuard( *pSalInstYieldMutex );
++  osl::SolarMutexGuard aGuard( *pSalInstYieldMutex );
+   return pDisplay->IsEvent();
+ }
+ static int DisplayQueue( int
+@@ -712,9 +712,9 @@ fd
+ {
+   DBG_ASSERT( ConnectionNumber( pDisplay->GetDisplay() ) == fd,
+               "wrong fd in DisplayHasEvent" )
+-  vos::IMutex* pSalInstYieldMutex	=
++  osl::SolarMutex* pSalInstYieldMutex	=
+       GetSalData()->m_pInstance->GetYieldMutex();
+-  ::vos::OGuard aGuard( *pSalInstYieldMutex );
++  osl::SolarMutexGuard aGuard( *pSalInstYieldMutex );
+   return XEventsQueued( pDisplay->GetDisplay(),
+                         QueuedAfterReading );
+ }
+@@ -726,9 +726,9 @@ fd
+ {
+   DBG_ASSERT( ConnectionNumber( pDisplay->GetDisplay() ) == fd,
+               "wrong fd in DisplayHasEvent" );
+-  vos::IMutex* pSalInstYieldMutex	=
++  osl::SolarMutex* pSalInstYieldMutex	=
+       GetSalData()->m_pInstance->GetYieldMutex();
+-  ::vos::OGuard aGuard( *pSalInstYieldMutex );
++  osl::SolarMutexGuard aGuard( *pSalInstYieldMutex );
+   pDisplay->Yield();
+   return TRUE;
+ }
+diff --git a/vcl/unx/source/app/salinst.cxx b/vcl/unx/source/app/salinst.cxx
+index f26797a..a480d8d 100644
+--- vcl/unx/source/app/salinst.cxx
++++ vcl/unx/source/app/salinst.cxx
+@@ -42,8 +42,8 @@
+ 
+ #include <salunx.h>
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SALDATA_HXX
+ #include <saldata.hxx>
+@@ -93,7 +93,7 @@ SalYieldMutex::SalYieldMutex()
+ 
+ void SalYieldMutex::acquire()
+ {
+-	OMutex::acquire();
++	vcl::SolarMutexObject::acquire();
+ 	mnThreadId = osl::Thread::getCurrentIdentifier();
+ 	mnCount++;
+ }
+@@ -106,12 +106,12 @@ void SalYieldMutex::release()
+ 			mnThreadId = 0;
+ 		mnCount--;
+ 	}
+-	OMutex::release();
++	vcl::SolarMutexObject::release();
+ }
+ 
+ sal_Bool SalYieldMutex::tryToAcquire()
+ {
+-	if ( OMutex::tryToAcquire() )
++	if ( vcl::SolarMutexObject::tryToAcquire() )
+ 	{
+ 		mnThreadId = osl::Thread::getCurrentIdentifier();
+ 		mnCount++;
+@@ -250,7 +250,7 @@ bool X11SalInstance::AnyInput(USHORT nType)
+ 	return bRet;
+ }
+ 
+-vos::IMutex* X11SalInstance::GetYieldMutex()
++osl::SolarMutex* X11SalInstance::GetYieldMutex()
+ {
+ 	return mpSalYieldMutex;
+ }
+diff --git a/vcl/win/inc/salinst.h b/vcl/win/inc/salinst.h
+index 37c169f..2c47872 100644
+--- vcl/win/inc/salinst.h
++++ vcl/win/inc/salinst.h
+@@ -44,7 +44,7 @@
+ #include <vcl/salinst.hxx>
+ #endif
+ 
+-namespace vos { class OMutex; }
++namespace vcl { class SolarMutexObject; }
+ 
+ // -------------------
+ // - SalInstanceData -
+@@ -58,7 +58,7 @@ public:
+ 	HINSTANCE			mhInst; 				// Instance Handle
+ 	HWND				mhComWnd;				// window, for communication (between threads and the main thread)
+ 	SalYieldMutex*		mpSalYieldMutex;		// Sal-Yield-Mutex
+-	vos::OMutex*		mpSalWaitMutex; 		// Sal-Wait-Mutex
++	vcl::SolarMutexObject*		mpSalWaitMutex; 		// Sal-Wait-Mutex
+ 	USHORT				mnYieldWaitCount;		// Wait-Count
+ public:
+     WinSalInstance();
+@@ -89,7 +89,7 @@ public:
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+     virtual SalSystem*			CreateSalSystem();
+     virtual SalBitmap*			CreateSalBitmap();
+-    virtual vos::IMutex*		GetYieldMutex();
++    virtual osl::SolarMutex*		GetYieldMutex();
+     virtual ULONG				ReleaseYieldMutex();
+     virtual void				AcquireYieldMutex( ULONG nCount );
+     virtual void				Yield( bool bWait, bool bHandleAllCurrentEvents );
+diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx
+index 41db773..cfc739b 100644
+--- vcl/win/source/app/salinst.cxx
++++ vcl/win/source/app/salinst.cxx
+@@ -45,8 +45,8 @@
+ #include <excpt.h>
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _TOOLS_DEBUG_HXX
+@@ -132,7 +132,7 @@ LRESULT CALLBACK SalComWndProcW( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lPa
+ 
+ // =======================================================================
+ 
+-class SalYieldMutex : public vos::OMutex
++class SalYieldMutex : public vcl::SolarMutexObject
+ {
+ public: // for ImplSalYield()
+ 	WinSalInstance*             mpInstData;
+@@ -162,7 +162,7 @@ SalYieldMutex::SalYieldMutex( WinSalInstance* pInstData )
+ 
+ void SAL_CALL SalYieldMutex::acquire()
+ {
+-	OMutex::acquire();
++	vcl::SolarMutexObject::acquire();
+ 	mnCount++;
+ 	mnThreadId = GetCurrentThreadId();
+ }
+@@ -173,7 +173,7 @@ void SAL_CALL SalYieldMutex::release()
+ {
+ 	DWORD nThreadId = GetCurrentThreadId();
+ 	if ( mnThreadId != nThreadId )
+-		OMutex::release();
++		vcl::SolarMutexObject::release();
+ 	else
+ 	{
+ 		SalData* pSalData = GetSalData();
+@@ -190,13 +190,13 @@ void SAL_CALL SalYieldMutex::release()
+ 					ImplPostMessage( mpInstData->mhComWnd, SAL_MSG_RELEASEWAITYIELD, 0, 0 );
+ 				mnThreadId = 0;
+ 				mnCount--;
+-				OMutex::release();
++				vcl::SolarMutexObject::release();
+ 				mpInstData->mpSalWaitMutex->release();
+ 			}
+ 			else
+ 			{
+ 				mnCount--;
+-				OMutex::release();
++				vcl::SolarMutexObject::release();
+ 			}
+ 		}
+ 		else
+@@ -204,7 +204,7 @@ void SAL_CALL SalYieldMutex::release()
+ 			if ( mnCount == 1 )
+ 				mnThreadId = 0;
+ 			mnCount--;
+-			OMutex::release();
++			vcl::SolarMutexObject::release();
+ 		}
+ 	}
+ }
+@@ -213,7 +213,7 @@ void SAL_CALL SalYieldMutex::release()
+ 
+ sal_Bool SAL_CALL SalYieldMutex::tryToAcquire()
+ {
+-	if( OMutex::tryToAcquire() )
++	if( vcl::SolarMutexObject::tryToAcquire() )
+ 	{
+ 		mnCount++;
+ 		mnThreadId = GetCurrentThreadId();
+@@ -672,7 +672,7 @@ WinSalInstance::WinSalInstance()
+ {
+ 	mhComWnd                 = 0;
+ 	mpSalYieldMutex          = new SalYieldMutex( this );
+-	mpSalWaitMutex           = new vos::OMutex;
++	mpSalWaitMutex           = new vcl::SolarMutexObject;
+ 	mnYieldWaitCount         = 0;
+ 	mpSalYieldMutex->acquire();
+ }
+@@ -690,7 +690,7 @@ WinSalInstance::~WinSalInstance()
+ 
+ // -----------------------------------------------------------------------
+ 
+-vos::IMutex* WinSalInstance::GetYieldMutex()
++osl::SolarMutex* WinSalInstance::GetYieldMutex()
+ {
+ 	return mpSalYieldMutex;
+ }
+diff --git a/vos/inc/vos/mutex.hxx b/vos/inc/vos/mutex.hxx
+deleted file mode 100644
+index 3d059f8..0000000
+--- vos/inc/vos/mutex.hxx
++++ /dev/null
+@@ -1,197 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: mutex.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:37:23 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_MUTEX_HXX_
+-#define _VOS_MUTEX_HXX_
+-
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#	include <vos/object.hxx>
+-#endif
+-#ifndef _OSL_MUTEX_H_
+-#	include <osl/mutex.h>
+-#endif
+-
+-namespace vos
+-{     
+-
+-
+-/** IMutex interface
+-
+-	@author  Bernd Hofner
+-	@version 1.0
+-*/
+-
+-class IMutex
+-{
+-public:
+-
+-	/// Blocks if Mutex is already in use
+-	virtual void SAL_CALL acquire()= 0;			
+-
+-	// Tries to get the mutex without blocking.
+-	virtual sal_Bool SAL_CALL tryToAcquire()= 0;
+-
+-	/// releases the mutex.
+-	virtual void SAL_CALL release()= 0;
+-
+-protected:
+-	IMutex() { }
+-	virtual ~IMutex() { }
+-    
+-};
+-
+-// ----------------------------------------------------------
+-
+-/** OMutex
+-
+-	@author  Bernd Hofner
+-	@version 1.0
+-*/
+-
+-class OMutex : public OObject, public IMutex
+-{
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OMutex, vos));
+-
+-public:
+-	static IMutex& SAL_CALL getGlobalMutex();
+-
+-	/// Creates mutex
+-	OMutex();	
+-	/// Implicitly destroys mutex	
+-    virtual ~OMutex();	
+-	
+-	/// Blocks if Mutex is already in use
+-	virtual void SAL_CALL acquire();	
+-
+-	/** Tries to get the mutex without blocking.
+-		@return True if mutex could be obtained, otherwise False
+-	*/
+-	virtual sal_Bool SAL_CALL tryToAcquire();
+-
+-	/// releases the mutex.
+-	virtual void SAL_CALL release();
+-
+-protected:
+-	oslMutex	m_Impl;
+-
+-private:
+-	// disable copy/assignment
+-	OMutex(const OMutex&);	
+-	OMutex& SAL_CALL operator= (const OMutex&);	
+-};
+-
+-// *********************************************************************************
+-
+-/** OGuard
+-
+-	@author  Bernd Hofner
+-	@version 1.0
+-*/
+-
+-class OGuard
+-{
+-	OGuard( const OGuard& );
+-	const OGuard& operator = ( const OGuard& );
+-public:
+-	/** Acquires mutex
+-	    @param pMutex pointer to mutex which is to be acquired	*/
+-	OGuard(IMutex* pMutex)
+-		: m_rMutex( *pMutex )
+-	{	// only for compatible reasons
+-		m_rMutex.acquire();
+-	}
+-	OGuard(IMutex & rMutex)
+-		: m_rMutex( rMutex )
+-	{
+-		m_rMutex.acquire();
+-	}
+-
+-	/** Releases mutex. */
+-	virtual ~OGuard()
+-	{
+-		m_rMutex.release();
+-	}
+-
+-protected:
+-	IMutex& m_rMutex;
+-};
+-
+-/** A guard that can release the mutex with the clear method.
+-
+-	@author  Bernd Hofner
+-	@version 1.0
+-*/
+-class OClearableGuard
+-{
+-	OClearableGuard( const OClearableGuard& );
+-	const OClearableGuard& operator = ( const OClearableGuard& );
+-public:
+-	/** Acquires mutex
+-	    @param pMutex pointer to mutex which is to be acquired	*/
+-	OClearableGuard(IMutex & rMutex)
+-		: m_pMutex( &rMutex )
+-	{
+-		m_pMutex->acquire();
+-	}
+-
+-	/** Releases mutex. */
+-	virtual ~OClearableGuard()
+-	{
+-		if( m_pMutex )
+-			m_pMutex->release();
+-	}
+-
+-	/** Releases mutex. */
+-	void SAL_CALL clear()
+-	{
+-		if( m_pMutex )
+-		{
+-			m_pMutex->release();
+-			m_pMutex = NULL;
+-		}
+-	}
+-protected:
+-	IMutex* m_pMutex;
+-};
+-
+-}     
+-
+-
+-#endif  //_VOS_MUTEX_HXX_
+-
+-
+diff --git a/vos/inc/vos/process.hxx b/vos/inc/vos/process.hxx
+index 0eafe75..bb77f96 100644
+--- vos/inc/vos/process.hxx
++++ vos/inc/vos/process.hxx
+@@ -39,9 +39,6 @@
+ #ifndef _RTL_USTRING_HXX_
+ #   include <rtl/ustring.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#   include <vos/mutex.hxx>
+-#endif
+ #ifndef _VOS_SECURITY_HXX_
+ #   include <vos/security.hxx>
+ #endif
+diff --git a/vos/inc/vos/timer.hxx b/vos/inc/vos/timer.hxx
+index eb02fe1..fb4f30f 100644
+--- vos/inc/vos/timer.hxx
++++ vos/inc/vos/timer.hxx
+@@ -40,8 +40,8 @@
+ #ifndef _VOS_REFERNCE_HXX_
+ #	include <vos/refernce.hxx>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_
+-#	include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#	include <osl/mutex.hxx>
+ #endif
+ #ifndef _OSL_TIME_H_
+ #	include <osl/time.h>
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index fd754ea..2cf9daf 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -46,7 +46,6 @@ ENABLE_EXCEPTIONS=TRUE
+ # --- Files --------------------------------------------------------
+ 
+ SLOFILES=       $(SLO)$/conditn.obj     \
+-				$(SLO)$/mutex.obj       \
+ 				$(SLO)$/object.obj      \
+ 				$(SLO)$/refernce.obj    \
+ 				$(SLO)$/socket.obj      \
+@@ -63,7 +62,6 @@ SLOFILES=       $(SLO)$/conditn.obj     \
+ 
+ .IF "$(UPDATER)"=="YES"
+ OBJFILES=       $(OBJ)$/conditn.obj     \
+-				$(OBJ)$/mutex.obj       \
+ 				$(OBJ)$/object.obj      \
+ 				$(OBJ)$/refernce.obj    \
+ 				$(OBJ)$/socket.obj      \
+diff --git a/vos/source/mutex.cxx b/vos/source/mutex.cxx
+deleted file mode 100644
+index b426fec..0000000
+--- vos/source/mutex.cxx
++++ /dev/null
+@@ -1,80 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: mutex.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:42:22 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#include <osl/diagnose.h>
+-#include <vos/object.hxx>
+-#include <vos/mutex.hxx>
+-
+-using namespace vos;
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-//  class Mutex
+-//
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OMutex, vos), VOS_NAMESPACE(OMutex, vos), VOS_NAMESPACE(OObject, vos), 0);
+-
+-IMutex& OMutex::getGlobalMutex()
+-{
+-	static OMutex theGlobalMutex;
+-		
+-	return theGlobalMutex;
+-}
+-
+-OMutex::OMutex() 
+-{
+-	m_Impl= osl_createMutex();
+-}
+-
+-OMutex::~OMutex() 
+-{
+-	osl_destroyMutex(m_Impl);
+-}
+-	
+-void OMutex::acquire()
+-{
+-	osl_acquireMutex(m_Impl);
+-}
+-
+-sal_Bool OMutex::tryToAcquire() 
+-{
+-	return osl_tryToAcquireMutex(m_Impl);
+-}
+-	
+-void OMutex::release()
+-{
+-	osl_releaseMutex(m_Impl);
+-}
+-
+diff --git a/vos/source/process.cxx b/vos/source/process.cxx
+index 227ce63..ac6a509 100644
+--- vos/source/process.cxx
++++ vos/source/process.cxx
+@@ -44,6 +44,7 @@
+ #include "vos/process.hxx"
+ #include "osl/diagnose.h"
+ #include <osl/file.hxx>
++#include <osl/mutex.hxx>
+ 
+ #define MAX_RESOURCES	100
+ #define MAX_ARGS		100
+@@ -495,7 +496,7 @@ void OExtCommandLineImpl::init()
+ 
+ namespace 
+ { 
+-    struct lclMutex : public rtl::Static< NAMESPACE_VOS(OMutex), lclMutex > {}; 
++    struct lclMutex : public rtl::Static< osl::Mutex, lclMutex > {}; 
+ }
+ 
+ OExtCommandLineImpl* OExtCommandLine::pExtImpl=0;
+@@ -508,7 +509,7 @@ VOS_IMPLEMENT_CLASSINFO(
+ 
+ OExtCommandLine::OExtCommandLine()
+ {
+-    OGuard Guard(lclMutex::get());
++    osl::MutexGuard Guard(lclMutex::get());
+ 
+     if ( pExtImpl == NULL )
+     {    
+diff --git a/vos/source/timer.cxx b/vos/source/timer.cxx
+index 38239ff..3ba8830 100644
+--- vos/source/timer.cxx
++++ vos/source/timer.cxx
+@@ -89,12 +89,12 @@ protected:
+   	// sorted-queue data
+   	NAMESPACE_VOS(OTimer)*		m_pHead;
+     // List Protection
+-    NAMESPACE_VOS(OMutex)		m_Lock;
++    osl::Mutex					m_Lock;
+     // Signal the insertion of a timer
+     NAMESPACE_VOS(OCondition)	m_notEmpty;
+ 
+     // Synchronize access to OTimerManager
+-	static NAMESPACE_VOS(OMutex) m_Access;
++	static osl::Mutex 			m_Access;
+ 
+     // "Singleton Pattern"
+     static NAMESPACE_VOS(OTimerManager)* m_pManager;
+@@ -277,12 +277,12 @@ TTimeValue OTimer::getRemainingTime() const
+ // Timer manager
+ //
+ 
+-OMutex NAMESPACE_VOS(OTimerManager)::m_Access;
++osl::Mutex NAMESPACE_VOS(OTimerManager)::m_Access;
+ OTimerManager* NAMESPACE_VOS(OTimerManager)::m_pManager=0;
+ 
+ OTimerManager::OTimerManager()
+ {
+-	OGuard Guard(&m_Access);
++	osl::MutexGuard Guard(&m_Access);
+ 
+ 	OSL_ASSERT(m_pManager == 0);
+ 
+@@ -298,7 +298,7 @@ OTimerManager::OTimerManager()
+ 
+ OTimerManager::~OTimerManager()
+ {
+-	OGuard Guard(&m_Access);
++	osl::MutexGuard Guard(&m_Access);
+ 
+ 	if ( m_pManager == this )
+ 		m_pManager = 0;
+@@ -311,7 +311,7 @@ void OTimerManager::onTerminated()
+     
+ OTimerManager* OTimerManager::getTimerManager()
+ {    
+-	OGuard Guard(&m_Access); 
++	osl::MutexGuard Guard(&m_Access); 
+ 	
+ 	if (! m_pManager)
+ 		new OTimerManager;
+@@ -328,7 +328,7 @@ sal_Bool OTimerManager::registerTimer(OTimer* pTimer)
+ 		return sal_False;
+ 	}
+ 	
+-	OGuard Guard(&m_Lock);
++	osl::MutexGuard Guard(&m_Lock);
+ 
+ 	// try to find one with equal or lower remaining time.
+ 	OTimer** ppIter = &m_pHead;
+@@ -370,7 +370,7 @@ sal_Bool OTimerManager::unregisterTimer(OTimer* pTimer)
+ 	}
+ 	
+ 	// lock access
+-	OGuard Guard(&m_Lock);
++	osl::MutexGuard Guard(&m_Lock);
+ 
+ 	OTimer** ppIter = &m_pHead;
+ 
+@@ -398,7 +398,7 @@ sal_Bool OTimerManager::lookupTimer(const OTimer* pTimer)
+ 	}
+ 	
+ 	// lock access
+-	OGuard Guard(&m_Lock);
++	osl::MutexGuard Guard(&m_Lock);
+ 
+ 	// check the list
+ 	for (OTimer* pIter = m_pHead; pIter != 0; pIter= pIter->m_pNext)
+diff --git a/xmloff/inc/pch/precompiled_xmloff.hxx b/xmloff/inc/pch/precompiled_xmloff.hxx
+index cb96924..5928285 100644
+--- xmloff/inc/pch/precompiled_xmloff.hxx
++++ xmloff/inc/pch/precompiled_xmloff.hxx
+@@ -477,7 +477,7 @@
+ #include "vcl/fontcvt.hxx"
+ #include "vcl/mapunit.hxx"
+ 
+-#include "vos/mutex.hxx"
++#include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ 
+diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
+index 0a675d0..e1107ac 100644
+--- xmloff/source/core/xmlexp.cxx
++++ xmloff/source/core/xmlexp.cxx
+@@ -192,8 +192,8 @@
+ #include "XMLBasicExportFilter.hxx"
+ #endif
+ 
+-#ifndef _VOS_MUTEX_HXX_
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
+ #endif
+ 
+ #ifndef _RTL_LOGFILE_HXX_
+@@ -2277,8 +2277,8 @@ void SvXMLExport::SetError(
+     const Reference<XLocator>& rLocator )
+ {
+     // allow multi-threaded access to the cancel() method
+-    static ::vos::OMutex aMutex;
+-    ::vos::OGuard aGuard(aMutex);
++    static osl::Mutex aMutex;
++    osl::MutexGuard aGuard(aMutex);
+ 
+     // maintain error flags
+     if ( ( nId & XMLERROR_FLAG_ERROR ) != 0 )
+diff --git a/basctl/source/basicide/doceventnotifier.cxx b/basctl/source/basicide/doceventnotifier.cxx
+index 63e1817..a091ab1 100644
+--- basctl/source/basicide/doceventnotifier.cxx
++++ basctl/source/basicide/doceventnotifier.cxx
+@@ -50,7 +50,7 @@
+ #include <comphelper/componentcontext.hxx>
+ #include <comphelper/processfactory.hxx>
+ 
+-#include <vos/mutex.hxx>
++#include <osl/mutex.hxx>
+ 
+ #include <cppuhelper/compbase1.hxx>
+ #include <cppuhelper/basemutex.hxx>
+@@ -145,7 +145,7 @@ namespace basctl
+     //--------------------------------------------------------------------
+     void SAL_CALL DocumentEventNotifier_Impl::notifyEvent( const EventObject& _rEvent ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        ::osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ::osl::MutexGuard aGuard( m_aMutex );
+ 
+         OSL_PRECOND( !impl_isDisposed_nothrow(), "DocumentEventNotifier_Impl::notifyEvent: disposed, but still getting events?" );
+@@ -185,7 +185,7 @@ namespace basctl
+     //--------------------------------------------------------------------
+     void SAL_CALL DocumentEventNotifier_Impl::disposing( const csslang::EventObject& /*Event*/ ) throw (RuntimeException)
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        ::osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         ::osl::MutexGuard aGuard( m_aMutex );
+ 
+         if ( !impl_isDisposed_nothrow() )
+@@ -255,7 +255,7 @@ namespace basctl
+ 	//--------------------------------------------------------------------
+     void DocumentEventNotifier::dispose()
+     {
+-        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++        ::osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+         m_pImpl->dispose();
+     }
+ 
+diff --git a/basctl/source/basicide/scriptdocument.cxx b/basctl/source/basicide/scriptdocument.cxx
+index fdf4e58..089b466 100644
+--- basctl/source/basicide/scriptdocument.cxx
++++ basctl/source/basicide/scriptdocument.cxx
+@@ -86,8 +86,6 @@
+ #include <comphelper/processfactory.hxx>
+ #include <comphelper/componentcontext.hxx>
+ 
+-#include <vos/mutex.hxx>
+-
+ #include <cppuhelper/implbase1.hxx>
+ 
+ #include <rtl/uri.hxx>
+diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx
+index 4e82b67..1efc093 100644
+--- dbaccess/source/ui/app/AppController.cxx
++++ dbaccess/source/ui/app/AppController.cxx
+@@ -2479,7 +2479,7 @@ void OApplicationController::containerFound( const Reference< XContainer >& _xCo
+ // -----------------------------------------------------------------------------
+ ::sal_Bool SAL_CALL OApplicationController::select( const Any& _aSelection ) throw (IllegalArgumentException, RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    ::osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+     Sequence< ::rtl::OUString> aSelection;
+     if ( !_aSelection.hasValue() || !getView() )
+@@ -2516,7 +2516,7 @@ void OApplicationController::containerFound( const Reference< XContainer >& _xCo
+ // -----------------------------------------------------------------------------
+ Any SAL_CALL OApplicationController::getSelection(  ) throw (RuntimeException)
+ {
+-    ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    ::osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);
+     Sequence< NamedValue > aCurrentSelection;
+     if ( getContainer() )
+diff --git a/dbaccess/source/ui/browser/genericcontroller.cxx b/dbaccess/source/ui/browser/genericcontroller.cxx
+index b34d947..3867cde 100644
+--- dbaccess/source/ui/browser/genericcontroller.cxx
++++ dbaccess/source/ui/browser/genericcontroller.cxx
+@@ -398,7 +398,7 @@ void OGenericUnoController::modified(const EventObject& aEvent) throw( RuntimeEx
+ // -----------------------------------------------------------------------
+ void OGenericUnoController::attachFrame(const Reference< XFrame > & xFrame) throw( RuntimeException )
+ {
+-    vos::OGuard aSolarGuard( Application::GetSolarMutex() );
++    osl::SolarMutexGuard aSolarGuard( Application::GetSolarMutex() );
+ 	::osl::MutexGuard aGuard(m_aMutex);	
+ 	stopFrameListening( );
+ 
+diff --git a/goodies/source/unographic/transformer.cxx b/goodies/source/unographic/transformer.cxx
+index beebca4..5aaca0e 100644
+--- goodies/source/unographic/transformer.cxx
++++ goodies/source/unographic/transformer.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _RTL_UUID_H_ 
+ #include <rtl/uuid.h>
+ #endif
+-#ifndef _VOS_MUTEX_HXX_ 
+-#include <vos/mutex.hxx>
++#ifndef _OSL_MUTEX_HXX_ 
++#include <osl/mutex.hxx>
+ #endif
+ #ifndef _SV_SVAPP_HXX_ 
+ #include <vcl/svapp.hxx>
+diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
+index 21ec2e6..c320934 100644
+--- sfx2/source/doc/sfxbasemodel.cxx
++++ sfx2/source/doc/sfxbasemodel.cxx
+@@ -2294,7 +2294,7 @@ uno::Reference< container::XNameReplace > SAL_CALL SfxBaseModel::getEvents() thr
+ 
+ uno::Reference< script::XStorageBasedLibraryContainer > SAL_CALL SfxBaseModel::getBasicLibraries() throw (RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    ::osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2306,7 +2306,7 @@ uno::Reference< script::XStorageBasedLibraryContainer > SAL_CALL SfxBaseModel::g
+ 
+ uno::Reference< script::XStorageBasedLibraryContainer > SAL_CALL SfxBaseModel::getDialogLibraries() throw (RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    ::osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+@@ -2318,7 +2318,7 @@ uno::Reference< script::XStorageBasedLibraryContainer > SAL_CALL SfxBaseModel::g
+ 
+ ::sal_Bool SAL_CALL SfxBaseModel::getAllowMacroExecution() throw (RuntimeException)
+ {
+-    ::vos::OGuard aGuard( Application::GetSolarMutex() );
++    ::osl::SolarMutexGuard aGuard( Application::GetSolarMutex() );
+ 	if ( impl_isDisposed() )
+         throw lang::DisposedException();
+ 
+diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
+index 8c2c839..3a61a03 100644
+--- uui/source/iahndl.cxx
++++ uui/source/iahndl.cxx
+@@ -1311,7 +1311,7 @@ sal_Bool UUIInteractionHelper::executeUnknownAuthDialog( const cssu::Reference<
+ {
+ 	try
+     {
+-        vos::OGuard aGuard(Application::GetSolarMutex());
++        osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+         std::auto_ptr< ResMgr >
+             xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
+@@ -1384,7 +1384,7 @@ sal_Bool UUIInteractionHelper::executeSSLWarnDialog( const cssu::Reference< dcss
+ {
+ 	try
+     {
+-		vos::OGuard aGuard(Application::GetSolarMutex());
++		osl::SolarMutexGuard aGuard(Application::GetSolarMutex());
+ 
+         std::auto_ptr< ResMgr >
+             xManager(ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-dont-overwrite.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-dont-overwrite.diff
@@ -0,0 +1,20 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx	2007-07-03 17:16:36.000000000 +0200
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2007-07-03 19:32:57.000000000 +0200
+@@ -352,13 +328,14 @@ void FileDialog::customEvent( QCustomEve
+ 
+                         if ( isSave() && result() == QDialog::Accepted )
+                         {
+-                            if ( qSelectedURL.startsWith( "file:" ) )
++                            if ( qProtocol == "file" )
+                             {
++                                QString qFileName( qLocalSelectedURL.path() );
+                                 bCanExit =
+-                                    !QFile::exists( qSelectedURL.mid( 5 ) ) ||
++                                    !QFile::exists( qFileName ) ||
+                                     ( KMessageBox::warningYesNo( 0,
+                                                                  i18n( "A file named \"%1\" already exists. "
+-                                                                     "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
++                                                                     "Are you sure you want to overwrite it?" ).arg( qFileName ),
+                                                                  i18n( "Overwrite File?" ),
+                                                                  i18n( "Overwrite" ), KStdGuiItem::cancel() ) == KMessageBox::Yes );
+                             }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/warning-string-comparsion-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/warning-string-comparsion-sw.diff
@@ -0,0 +1,80 @@
+--- sw/source/filter/html/htmlforw.cxx.old	2008-04-22 17:16:17.000000000 +0200
++++ sw/source/filter/html/htmlforw.cxx	2008-04-22 17:27:00.000000000 +0200
+@@ -1088,7 +1088,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Wri
+ 
+     sOut += sOptions;
+ 
+-    if( sHTML_IT_image == pType )
++    if( (const sal_Char *)sHTML_IT_image == (const sal_Char *)pType )
+     {
+         aTmp = xPropSet->getPropertyValue(
+                     OUString::createFromAscii( "ImageURL" ) );
+@@ -1153,7 +1153,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Wri
+     {
+         // Wenn Zeichen-Objekte nicht absolut positioniert werden duerfen,
+         // das entsprechende Flag loeschen.
+-        nFrmOpts |= (sHTML_IT_image == pType
++        nFrmOpts |= ((const sal_Char *)sHTML_IT_image == (const sal_Char *)pType
+                             ? HTML_FRMOPTS_IMG_CONTROL_CSS1
+                             : HTML_FRMOPTS_CONTROL_CSS1);
+     }
+@@ -1163,8 +1163,9 @@ Writer& OutHTML_DrawFrmFmtAsControl( Wri
+ 
+     if( rHTMLWrt.bCfgOutStyles )
+     {
+-        sal_Bool bEdit = sHTML_textarea == pTag || sHTML_IT_file == pType ||
+-                     sHTML_IT_text == pType;
++        sal_Bool bEdit = (const sal_Char *)sHTML_textarea == (const sal_Char *)pTag ||
++                     (const sal_Char *)sHTML_IT_file == (const sal_Char *)pType ||
++                     (const sal_Char *)sHTML_IT_text == (const sal_Char *)pType;
+ 
+         SfxItemSet aItemSet( rHTMLWrt.pDoc->GetAttrPool(), RES_CHRATR_BEGIN,
+                              RES_CHRATR_END );
+@@ -1286,7 +1287,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Wri
+ 
+     rWrt.Strm() << '>';
+ 
+-    if( sHTML_select == pTag )
++    if( (const sal_Char *)sHTML_select == (const sal_Char *)pTag )
+     {
+         aTmp = xPropSet->getPropertyValue(
+                     OUString::createFromAscii( "StringItemList" ) );
+@@ -1366,7 +1367,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Wri
+         }
+         HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), sHTML_select, sal_False );
+     }
+-    else if( sHTML_textarea == pTag )
++    else if( (const sal_Char *)sHTML_textarea == (const sal_Char *)pTag )
+     {
+         // In TextAreas duerfen keine zusaetzlichen Spaces oder LF exportiert
+         // werden!
+@@ -1393,7 +1394,8 @@ Writer& OutHTML_DrawFrmFmtAsControl( Wri
+         }
+         HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), sHTML_textarea, sal_False );
+     }
+-    else if( sHTML_IT_checkbox == pType || sHTML_IT_radio == pType )
++    else if( (const sal_Char *)sHTML_IT_checkbox == (const sal_Char *)pType ||
++	    (const sal_Char *)sHTML_IT_radio == (const sal_Char *)pType )
+     {
+         aTmp = xPropSet->getPropertyValue( OUString::createFromAscii("Label") );
+         if( aTmp.getValueType() == ::getCppuType((const OUString*)0) &&
+--- sw/source/filter/rtf/rtfatr.cxx.old	2008-04-22 17:16:30.000000000 +0200
++++ sw/source/filter/rtf/rtfatr.cxx	2008-04-22 17:32:08.000000000 +0200
+@@ -1615,7 +1615,7 @@ void ExportPICT(const Size &rOrig, const
+     const SwCropGrf &rCr, const char *pBLIPType, const sal_uInt8 *pGraphicAry,
+     unsigned long nSize, SwRTFWriter &rWrt)
+ {
+-    bool bIsWMF = pBLIPType == sRTF_WMETAFILE ? true : false;
++    bool bIsWMF = (const sal_Char *)pBLIPType == (const sal_Char *)sRTF_WMETAFILE ? true : false;
+     if (pBLIPType && nSize && pGraphicAry)
+     {
+         rWrt.Strm() << '{' << sRTF_PICT;
+@@ -1760,7 +1760,7 @@ static Writer& OutRTF_SwGrfNode(Writer& 
+      the wmf format wrapped in nonshppict, so as to keep wordpad happy. If its
+      a wmf already then we don't need any such wrapping
+     */
+-    bool bIsWMF = pBLIPType == sRTF_WMETAFILE ? true : false;
++    bool bIsWMF = (const sal_Char *)pBLIPType == (const sal_Char *)sRTF_WMETAFILE ? true : false;
+     if (!bIsWMF)
+ 	    OutComment(rRTFWrt, sRTF_SHPPICT);
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-dbaccess.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-dbaccess.diff
@@ -0,0 +1,5 @@
+--- dbaccess/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ dbaccess/prj/tests.lst	2007-09-07 14:32:14.000000000 +0200
+@@ -0,0 +1,2 @@
++ba   dbaccess\qa\complex\dbaccess                       nmake - all ba_qa_complex_dbaccess NULL
++#does not build: ba   dbaccess\qa\unoapi                                 nmake - all ba_qa_unoapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/pardus-clipart.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/pardus-clipart.diff
@@ -0,0 +1,16 @@
+--- scp2/source/ooo/file_extra_ooo.scp.orig	2005-10-09 01:39:27.123969504 +0400
++++ scp2/source/ooo/file_extra_ooo.scp	2005-10-09 01:49:33.404404593 +0400
+@@ -181,6 +181,13 @@
+     Name = "gallroot.zip";
+ End
+ 
++File gid_File_Extra_Gallopenclipart_Lang
++    Dir = gid_Dir_Gallery;
++    ARCHIVE_TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(openclipart);
++End
++
+ File gid_File_Extra_Gallrulers
+     Dir = gid_Dir_Gallery_Rulers;
+     ARCHIVE_TXT_FILE_BODY;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-object-row-position.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-object-row-position.diff
@@ -0,0 +1,58 @@
+Index: sc/source/core/data/document.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/document.cxx,v
+retrieving revision 1.79
+diff -u -p -r1.79 document.cxx
+--- sc/source/core/data/document.cxx	17 Jul 2007 13:32:52 -0000	1.79
++++ sc/source/core/data/document.cxx	29 Oct 2007 20:26:42 -0000
+@@ -763,6 +810,10 @@ void ScDocument::DeleteRow( SCCOL nStart
+ 			ScAddress( nStartCol, nStartRow, nStartTab ),
+ 			ScAddress( nEndCol, MAXROW, nEndTab ) ) );
+ 
++	for ( i = nStartTab; i <= nEndTab; i++)
++		if (pDrawLayer)
++			pDrawLayer->DeleteObjectsInArea( i, nStartCol, nStartRow, nEndCol, nStartRow+nSize);
++
+ 	if ( ValidRow(nStartRow+nSize) )
+ 	{
+ 		UpdateReference( URM_INSDEL, nStartCol, nStartRow+nSize, nStartTab,
+@@ -914,6 +965,10 @@ void ScDocument::DeleteCol(SCROW nStartR
+ 			ScAddress( nStartCol, nStartRow, nStartTab ),
+ 			ScAddress( MAXCOL, nEndRow, nEndTab ) ) );
+ 
++	for ( i = nStartTab; i <= nEndTab; i++)
++		if (pDrawLayer)
++			pDrawLayer->DeleteObjectsInArea( i, nStartCol, nStartRow, nStartCol+nSize, nEndRow );
++
+     if ( ValidCol(sal::static_int_cast<SCCOL>(nStartCol+nSize)) )
+ 	{
+         UpdateReference( URM_INSDEL, sal::static_int_cast<SCCOL>(nStartCol+nSize), nStartRow, nStartTab,
+Index: sc/source/core/data/table2.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table2.cxx,v
+retrieving revision 1.37
+diff -u -p -r1.37 table2.cxx
+--- sc/source/core/data/table2.cxx	27 Feb 2007 12:09:28 -0000	1.37
++++ sc/source/core/data/table2.cxx	18 Oct 2007 20:46:19 -0000
+@@ -1967,15 +1967,13 @@ BOOL ScTable::SetRowHeightRange( SCROW n
+ 		{
+ 			if (nEndRow-nStartRow < 20)
+             {
+-                // Whether new pixel size will differ from old pixel size in any row.
+-                ScCompressedArrayIterator< SCROW, USHORT> aIter( *pRowHeight,
+-                        nStartRow, nEndRow);
+-                do
++                for (SCROW nRow = nStartRow; nRow <= nEndRow; ++nRow)
+                 {
+-                    if (*aIter != nNewHeight)
+-                        bChanged = (nNewPix != (long) (*aIter * nPPTY));
+-                } while (!bChanged && aIter.NextRange());
+-                pRowHeight->SetValue( nStartRow, nEndRow, nNewHeight);
++                    if (!bChanged)
++                        if (pRowHeight->GetValue( nRow ))
++                            bChanged = (nNewPix != (long) (pRowHeight->GetValue( nRow ) * nPPTY));
++                    SetRowHeight( nRow, nNewHeight );
++                }
+             }
+ 			else
+ 			{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-transparent-printing.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-transparent-printing.diff
@@ -0,0 +1,742 @@
+? unxlngx6
+--- vcl/source/gdi/impprn.cxx	14 Jan 2008 16:22:11 -0000	1.16
++++ vcl/source/gdi/impprn.cxx	27 Mar 2008 21:32:18 -0000
+@@ -172,6 +172,16 @@ void ImplQPrinter::ImplPrintMtf( GDIMeta
+                     // execute action here to avoid DPI processing of bitmap;
+                     pAct->Execute( this );
+ 
++#ifdef VERBOSE_DEBUG
++                    Push();
++                    SetLineColor(COL_RED);
++                    SetFillColor();
++                    DrawRect( Rectangle(
++                                  static_cast<MetaBmpScaleAction*>(pAct)->GetPoint(),
++                                  static_cast<MetaBmpScaleAction*>(pAct)->GetSize()) );
++                    Pop();
++#endif
++
+ 					// seek to end of this comment
+ 					do
+ 					{
+--- vcl/source/gdi/print2.cxx	27 Jun 2007 20:22:34 -0000	1.23
++++ vcl/source/gdi/print2.cxx	27 Mar 2008 21:32:18 -0000
+@@ -43,6 +43,8 @@
+ #include <utility>
+ #include <list>
+ #include <vector>
++#include <basegfx/polygon/b2dpolygon.hxx>
++#include <basegfx/polygon/b2dpolygontools.hxx>
+ 
+ #ifndef _DEBUG_HXX
+ #include <tools/debug.hxx>
+@@ -82,11 +84,43 @@
+ #define MAX_TILE_WIDTH  1024
+ #define MAX_TILE_HEIGHT 1024
+ 
++// ---------
++// - Types -
++// ---------
++
++typedef ::std::pair< MetaAction*, int > Component; // MetaAction plus index in metafile
++
++typedef ::std::list< Component > ComponentList;
++
++// List of (intersecting) actions, plus overall bounds
++struct ConnectedComponents
++{
++    ConnectedComponents() : 
++        aComponentList(),
++        aBounds(),
++        aBgColor(COL_WHITE),
++        bIsSpecial(false),
++        bIsFullyTransparent(false)
++    {}
++
++    ComponentList	aComponentList;
++    Rectangle		aBounds;
++    Color           aBgColor;
++    bool			bIsSpecial;
++    bool			bIsFullyTransparent;
++};
++
++typedef ::std::list< ConnectedComponents > ConnectedComponentsList;	
++
++
+ // -----------
+ // - Printer -
+ // -----------
+ 
+-// #i10613# Extracted from Printer::GetPreparedMetaFile
++/** #i10613# Extracted from Printer::GetPreparedMetaFile. Returns true
++    if given action requires special handling (usually because of
++    transparency)
++*/
+ static bool ImplIsActionSpecial( const MetaAction& rAct )
+ {
+     switch( rAct.GetType() )
+@@ -98,99 +132,181 @@ static bool ImplIsActionSpecial( const M
+             return true;
+ 
+         case META_BMPEX_ACTION:
+-            return static_cast<const MetaBmpExAction&>(rAct).GetBitmapEx().IsAlpha() != 0;
++            return static_cast<const MetaBmpExAction&>(rAct).GetBitmapEx().IsTransparent();
+ 
+         case META_BMPEXSCALE_ACTION:
+-            return static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx().IsAlpha() != 0;
++            return static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx().IsTransparent();
+ 
+         case META_BMPEXSCALEPART_ACTION:
+-            return static_cast<const MetaBmpExScalePartAction&>(rAct).GetBitmapEx().IsAlpha() != 0;
++            return static_cast<const MetaBmpExScalePartAction&>(rAct).GetBitmapEx().IsTransparent();
+ 
+         default:
+             return false;
+     }
+ }
+ 
+-// #107169# Check whether given metaaction is a masked bitmap
+-static bool ImplIsActionMaskedBitmap( const MetaAction& rAct )
++/** Check whether rCurrRect rectangle fully covers io_rPrevRect - if
++    yes, return true and update o_rBgColor
++ */
++static bool checkRect( Rectangle&       io_rPrevRect,
++                       Color&           o_rBgColor,
++                       const Rectangle& rCurrRect,
++                       OutputDevice&    rMapModeVDev )
+ {
+-    switch( rAct.GetType() )
+-    {
+-        case META_BMPEX_ACTION:
+-            return static_cast<const MetaBmpExAction&>(rAct).GetBitmapEx().IsAlpha() == 0;
+-            
+-        case META_BMPEXSCALE_ACTION:
+-            return static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx().IsAlpha() == 0;
++    // shape needs to fully cover previous content, and have uniform
++    // color
++    const bool bRet( 
++        rMapModeVDev.LogicToPixel(rCurrRect).IsInside(io_rPrevRect) &&
++        rMapModeVDev.IsFillColor() );
+ 
+-        case META_BMPEXSCALEPART_ACTION:
+-            return static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx().IsAlpha() == 0;
+-
+-        default:
+-            return false;
++    if( bRet )
++    {
++        io_rPrevRect = rCurrRect;
++        o_rBgColor = rMapModeVDev.GetFillColor();
+     }
++    
++    return bRet;
+ }
+ 
+-// #107169# Convert BitmapEx with mask to Bitmap with white background at masked-out places
+-static Bitmap ImplConvertBmpEx2Bmp( const MetaAction& rAct )
++/** #107169# Convert BitmapEx to Bitmap with appropriately blended
++    color. Convert MetaTransparentAction to plain polygon,
++    appropriately colored
++
++    @param o_rMtf
++    Add converted actions to this metafile
++*/
++static void ImplConvertTransparentAction( GDIMetaFile&        o_rMtf,
++                                          const MetaAction&   rAct,
++                                          const OutputDevice& rStateOutDev,
++                                          Color               aBgColor )
+ {
+-    BitmapEx aBmpEx;
+-
+-    switch( rAct.GetType() )
++    if( rAct.GetType() == META_TRANSPARENT_ACTION )
+     {
+-        case META_BMPEX_ACTION:
+-            aBmpEx = static_cast<const MetaBmpExAction&>(rAct).GetBitmapEx();
+-            break;
+-            
+-        case META_BMPEXSCALE_ACTION:
+-            aBmpEx = static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx();
+-            break;
++        const MetaTransparentAction* pTransAct = static_cast<const MetaTransparentAction*>(&rAct);
++        USHORT				         nTransparency( pTransAct->GetTransparence() );
+ 
+-        case META_BMPEXSCALEPART_ACTION:
+-            aBmpEx = static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx();
+-            break;
++        // #i10613# Respect transparency for draw color
++        if( nTransparency )
++        {
++            o_rMtf.AddAction( new MetaPushAction( PUSH_LINECOLOR|PUSH_FILLCOLOR ) );
+ 
+-        default:
+-            DBG_ERROR("Printer::GetPreparedMetafile impossible state reached");
+-            break;
++            // assume white background for alpha blending
++            Color aLineColor( rStateOutDev.GetLineColor() );
++            aLineColor.SetRed( static_cast<UINT8>( (255L*nTransparency + (100L - nTransparency)*aLineColor.GetRed()) / 100L ) );
++            aLineColor.SetGreen( static_cast<UINT8>( (255L*nTransparency + (100L - nTransparency)*aLineColor.GetGreen()) / 100L ) );
++            aLineColor.SetBlue( static_cast<UINT8>( (255L*nTransparency + (100L - nTransparency)*aLineColor.GetBlue()) / 100L ) );
++            o_rMtf.AddAction( new MetaLineColorAction(aLineColor, TRUE) );
++
++            Color aFillColor( rStateOutDev.GetFillColor() );
++            aFillColor.SetRed( static_cast<UINT8>( (255L*nTransparency + (100L - nTransparency)*aFillColor.GetRed()) / 100L ) );
++            aFillColor.SetGreen( static_cast<UINT8>( (255L*nTransparency + (100L - nTransparency)*aFillColor.GetGreen()) / 100L ) );
++            aFillColor.SetBlue( static_cast<UINT8>( (255L*nTransparency + (100L - nTransparency)*aFillColor.GetBlue()) / 100L ) );
++            o_rMtf.AddAction( new MetaFillColorAction(aFillColor, TRUE) );
++        }
++
++        o_rMtf.AddAction( new MetaPolyPolygonAction(pTransAct->GetPolyPolygon()) );
++
++        if( nTransparency )
++            o_rMtf.AddAction( new MetaPopAction() );
+     }
++    else
++    {
++        BitmapEx aBmpEx;
++
++        switch( rAct.GetType() )
++        {
++            case META_BMPEX_ACTION:
++                aBmpEx = static_cast<const MetaBmpExAction&>(rAct).GetBitmapEx();
++                break;
++            
++            case META_BMPEXSCALE_ACTION:
++                aBmpEx = static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx();
++                break;
++
++            case META_BMPEXSCALEPART_ACTION:
++                aBmpEx = static_cast<const MetaBmpExScaleAction&>(rAct).GetBitmapEx();
++                break;
++
++            case META_TRANSPARENT_ACTION:
++
++            default:
++                DBG_ERROR("Printer::GetPreparedMetafile impossible state reached");
++                break;
++        }
+ 
+-    Bitmap			  aBmp( aBmpEx.GetBitmap() );
+-    BitmapReadAccess* pRA = aBmp.AcquireReadAccess();
++        Bitmap aBmp( aBmpEx.GetBitmap() );
++        if( !aBmpEx.IsAlpha() )
++        {
++            // blend with mask
++            BitmapReadAccess* pRA = aBmp.AcquireReadAccess();
+ 
+-    if( !pRA )
+-        return aBmp; // what else should I do?
++            if( !pRA )
++                return; // what else should I do?
+ 
+-    Color aWhite( COL_WHITE );
++            Color aActualColor( aBgColor );
+ 
+-    if( pRA->HasPalette() )
+-        aWhite = pRA->GetBestPaletteColor( Color( COL_WHITE ) ).operator Color();
++            if( pRA->HasPalette() )
++                aActualColor = pRA->GetBestPaletteColor( aBgColor ).operator Color();
+     
+-    aBmp.ReleaseAccess(pRA);
++            aBmp.ReleaseAccess(pRA);
+ 
+-    // did we get true white?
+-    if( aWhite.GetColorError( Color( COL_WHITE ) ) )
+-    {
+-        // no, create truecolor bitmap, then
+-        aBmp.Convert( BMP_CONVERSION_24BIT );
++            // did we get true white?
++            if( aActualColor.GetColorError( aBgColor ) )
++            {
++                // no, create truecolor bitmap, then
++                aBmp.Convert( BMP_CONVERSION_24BIT );
+ 
+-        // fill masked out areas white
+-        aBmp.Replace( aBmpEx.GetMask(), COL_WHITE );
+-    }
+-    else
+-    {
+-        // fill masked out areas white
+-        aBmp.Replace( aBmpEx.GetMask(), aWhite );
+-    }
++                // fill masked out areas white
++                aBmp.Replace( aBmpEx.GetMask(), aBgColor );
++            }
++            else
++            {
++                // fill masked out areas white
++                aBmp.Replace( aBmpEx.GetMask(), aActualColor );
++            }
++        }
++        else
++        {
++            // blend with alpha channel
++            aBmp.Convert( BMP_CONVERSION_24BIT );
++            aBmp.Blend(aBmpEx.GetAlpha(),aBgColor);
++        }
+ 
+-    return aBmp;
++        // add corresponding action
++        switch( rAct.GetType() )
++        {
++            case META_BMPEX_ACTION:
++                o_rMtf.AddAction( new MetaBmpAction( 
++                                       static_cast<const MetaBmpExAction&>(rAct).GetPoint(), 
++                                       aBmp ));
++                break;
++            case META_BMPEXSCALE_ACTION:
++                o_rMtf.AddAction( new MetaBmpScaleAction( 
++                                       static_cast<const MetaBmpExScaleAction&>(rAct).GetPoint(), 
++                                       static_cast<const MetaBmpExScaleAction&>(rAct).GetSize(), 
++                                       aBmp ));
++                break;
++            case META_BMPEXSCALEPART_ACTION:
++                o_rMtf.AddAction( new MetaBmpScalePartAction( 
++                                       static_cast<const MetaBmpExScalePartAction&>(rAct).GetDestPoint(), 
++                                       static_cast<const MetaBmpExScalePartAction&>(rAct).GetDestSize(), 
++                                       static_cast<const MetaBmpExScalePartAction&>(rAct).GetSrcPoint(), 
++                                       static_cast<const MetaBmpExScalePartAction&>(rAct).GetSrcSize(), 
++                                       aBmp ));
++                break;
++            default:
++                DBG_ERROR("Unexpected case");
++                break;
++        }
++    }
+ }
+ 
+ // #i10613# Extracted from ImplCheckRect::ImplCreate
+ // Returns true, if given action creates visible (i.e. non-transparent) output
+ static bool ImplIsNotTransparent( const MetaAction& rAct, const OutputDevice& rOut )
+ {
+-    const bool	bLineTransparency( rOut.GetLineColor().GetTransparency() == 255 );
+-    const bool 	bFillTransparency( rOut.GetFillColor().GetTransparency() == 255 );
++    const bool	bLineTransparency( rOut.IsLineColor() ? rOut.GetLineColor().GetTransparency() == 255 : true );
++    const bool 	bFillTransparency( rOut.IsFillColor() ? rOut.GetFillColor().GetTransparency() == 255 : true );
+     bool		bRet( false );
+ 
+ 	switch( rAct.GetType() )
+@@ -552,35 +668,7 @@ static bool ImplIsActionHandlingTranspar
+     }
+ }
+ 
+-// predicate functor for checking whether given element is fully transparent
+-class Impl_IsTransparent : public ::std::unary_function< ::std::pair< const MetaAction*, int >, bool >
+-{
+-public:
+-    Impl_IsTransparent( const OutputDevice& rOut ) : mrOut(rOut) {}
+-    bool operator()( ::std::pair< const MetaAction*, int > rElem ) 
+-    {
+-        return !ImplIsNotTransparent( *rElem.first, mrOut );
+-    }
+-
+-private:
+-    const OutputDevice& mrOut;
+-};
+-
+-typedef ::std::pair< const MetaAction*, int > Component; // MetaAction plus index in metafile
+-
+-// List of (intersecting) actions, plus overall bounds
+-struct ConnectedComponents
+-{
+-    ::std::list< Component >	aComponentList;
+-    Rectangle					aBounds;
+-    bool						bIsSpecial;
+-    bool						bIsFullyTransparent;
+-};
+-
+-typedef ::std::list< ConnectedComponents > ConnectedComponentsList;	
+-
+ // remove comment to enable highlighting of generated output
+-
+ void Printer::GetPreparedMetaFile( const GDIMetaFile& rInMtf, GDIMetaFile& rOutMtf, 
+                                    long nMaxBmpDPIX, long nMaxBmpDPIY )
+ {
+@@ -607,8 +695,7 @@ void Printer::GetPreparedMetaFile( const
+             // of uniform opacity): if a masked bitmap is printed over
+             // empty background, we convert to a plain bitmap with
+             // white background.
+-            if( ImplIsActionMaskedBitmap( *pCurrAct ) ||
+-                ImplIsActionSpecial( *pCurrAct ) )
++            if( ImplIsActionSpecial( *pCurrAct ) )
+             {
+                 bTransparent = true;
+             }
+@@ -650,8 +737,14 @@ void Printer::GetPreparedMetaFile( const
+         // algorithm was designed by AF.
+         //
+ 
+-        ConnectedComponentsList	aCCList; 	  	// list containing distinct sets of connected components as elements. 
+-        int						nActionNum;		
++        //
++        //  STAGE 1: Detect background
++        //  ==========================
++        //
++
++        // Receives uniform background content, and is _not_ merged
++        // nor checked for intersection against other aCCList elements
++        ConnectedComponents aBackgroundComponent;
+ 
+         // create an OutputDevice to record mapmode changes and the like
+ 		VirtualDevice aMapModeVDev;
+@@ -659,21 +752,140 @@ void Printer::GetPreparedMetaFile( const
+ 		aMapModeVDev.mnDPIY = mnDPIY;
+ 		aMapModeVDev.EnableOutput(FALSE);
+ 
++        int nLastBgAction, nActionNum;
++
++        // weed out page-filling background objects (if they are
++        // uniformly coloured). Keeping them outside the other
++        // connected components often prevents whole-page bitmap
++        // generation.
++        bool bStillBackground=true; // true until first non-bg action
++        nActionNum=0; nLastBgAction=-1;
++		pCurrAct=const_cast<GDIMetaFile&>(rInMtf).FirstAction();
++		while( pCurrAct && bStillBackground )
++		{
++            switch( pCurrAct->GetType() )
++            {
++                case META_RECT_ACTION:
++                {
++                    if( !checkRect(
++                            aBackgroundComponent.aBounds,
++                            aBackgroundComponent.aBgColor,
++                            static_cast<const MetaRectAction*>(pCurrAct)->GetRect(),
++                            aMapModeVDev) )
++                        bStillBackground=false; // incomplete occlusion of background
++                    else
++                        nLastBgAction=nActionNum; // this _is_ background
++                    break;
++                }
++                case META_POLYGON_ACTION:
++                {
++                    const Polygon aPoly(
++                        static_cast<const MetaPolygonAction*>(pCurrAct)->GetPolygon());
++                    if( !basegfx::tools::isRectangle(
++                            aPoly.getB2DPolygon()) ||
++                        !checkRect(
++                            aBackgroundComponent.aBounds,
++                            aBackgroundComponent.aBgColor,
++                            aPoly.GetBoundRect(),
++                            aMapModeVDev) )
++                        bStillBackground=false; // incomplete occlusion of background
++                    else
++                        nLastBgAction=nActionNum; // this _is_ background
++                    break;
++                }
++                case META_POLYPOLYGON_ACTION:
++                {
++                    const PolyPolygon aPoly(
++                        static_cast<const MetaPolyPolygonAction*>(pCurrAct)->GetPolyPolygon());
++                    if( aPoly.Count() != 1 ||
++                        !basegfx::tools::isRectangle(
++                            aPoly[0].getB2DPolygon()) ||
++                        !checkRect(
++                            aBackgroundComponent.aBounds,
++                            aBackgroundComponent.aBgColor,
++                            aPoly.GetBoundRect(),
++                            aMapModeVDev) )
++                        bStillBackground=false; // incomplete occlusion of background
++                    else
++                        nLastBgAction=nActionNum; // this _is_ background
++                    break;
++                }
++                case META_WALLPAPER_ACTION:
++                {
++                    if( !checkRect(
++                            aBackgroundComponent.aBounds,
++                            aBackgroundComponent.aBgColor,
++                            static_cast<const MetaWallpaperAction*>(pCurrAct)->GetRect(),
++                            aMapModeVDev) )
++                        bStillBackground=false; // incomplete occlusion of background
++                    else
++                        nLastBgAction=nActionNum; // this _is_ background
++                    break;
++                }
++                default:
++                {
++                    if( ImplIsNotTransparent( *pCurrAct,
++                                              aMapModeVDev ) )
++                        bStillBackground=false; // non-transparent action, possibly
++                                                // not uniform
++                    else
++                        // extend current bounds (next uniform action
++                        // needs to fully cover this area)
++                        aBackgroundComponent.aBounds.Union(
++                            ImplCalcActionBounds(*pCurrAct, aMapModeVDev) );
++                    break;
++                }
++            }
++
++            // execute action to get correct MapModes etc.
++            pCurrAct->Execute( &aMapModeVDev );
++            
++            pCurrAct=const_cast<GDIMetaFile&>(rInMtf).NextAction();
++            ++nActionNum;
++        }
++
++        ConnectedComponentsList	aCCList; // list containing distinct sets of connected components as elements. 
++
++        // create an OutputDevice to record mapmode changes and the like
++		VirtualDevice aMapModeVDev2;
++		aMapModeVDev2.mnDPIX = mnDPIX;
++		aMapModeVDev2.mnDPIY = mnDPIY;
++		aMapModeVDev2.EnableOutput(FALSE);
++
++        // fast-forward until one after the last background action
++        // (need to reconstruct map mode vdev state)
++        nActionNum=0;
++		pCurrAct=const_cast<GDIMetaFile&>(rInMtf).FirstAction();
++		while( pCurrAct && nActionNum<=nLastBgAction )
++		{
++            // up to and including last ink-generating background
++            // action go to background component
++            aBackgroundComponent.aComponentList.push_back( 
++                ::std::make_pair(
++                    pCurrAct, nActionNum) );
++
++			// execute action to get correct MapModes etc.
++			pCurrAct->Execute( &aMapModeVDev2 );
++            pCurrAct=const_cast<GDIMetaFile&>(rInMtf).NextAction();
++            ++nActionNum;
++        }
++
+         //
+-        //  STAGE 1: Generate connected components list
++        //  STAGE 2: Generate connected components list
+         //  ===========================================
+         //
+ 
+-        // iterate over all actions
+-		for( pCurrAct=const_cast<GDIMetaFile&>(rInMtf).FirstAction(), nActionNum=0; 
++        // iterate over all actions (start where background action
++        // search left off)
++		for( ; 
+              pCurrAct; 
+              pCurrAct=const_cast<GDIMetaFile&>(rInMtf).NextAction(), ++nActionNum )
+ 		{
+ 			// execute action to get correct MapModes etc.
+-			pCurrAct->Execute( &aMapModeVDev );
++			pCurrAct->Execute( &aMapModeVDev2 );
+ 
+             // cache bounds of current action 
+-            const Rectangle aBBCurrAct( ImplCalcActionBounds(*pCurrAct, aMapModeVDev) );
++            const Rectangle aBBCurrAct( ImplCalcActionBounds(*pCurrAct, aMapModeVDev2) );
+ 
+             // accumulate collected bounds here, initialize with current action
+             Rectangle								aTotalBounds( aBBCurrAct ); // thus,
+@@ -687,7 +899,7 @@ void Printer::GetPreparedMetaFile( const
+             ConnectedComponents						aTotalComponents;
+ 
+             //
+-            //  STAGE 1.1: Search for intersecting cc entries
++            //  STAGE 2.1: Search for intersecting cc entries
+             //  =============================================
+             //
+ 
+@@ -695,18 +907,33 @@ void Printer::GetPreparedMetaFile( const
+             // aCCList member. Thus, we can safe us the check.
+             // Furthermore, this ensures that non-output-generating
+             // actions get their own aCCList entry, which is necessary
+-            // when copying them to the output metafile (see stage 3
++            // when copying them to the output metafile (see stage 4
+             // below).
+ 
+             // #107169# Wholly transparent objects need
+             // not be considered for connected components,
+             // too. Just put each of them into a separate
+             // component.
+-            aTotalComponents.bIsFullyTransparent = !ImplIsNotTransparent(*pCurrAct, aMapModeVDev);
++            aTotalComponents.bIsFullyTransparent = !ImplIsNotTransparent(*pCurrAct, aMapModeVDev2);
+ 
+             if( !aBBCurrAct.IsEmpty() &&        
+                 !aTotalComponents.bIsFullyTransparent )
+             {
++                if( !aBackgroundComponent.aComponentList.empty() &&
++                    !aBackgroundComponent.aBounds.IsInside(aTotalBounds) )
++                {
++                    // it seems the background is not large enough. to
++                    // be on the safe side, combine with this component.
++                    aTotalBounds.Union( aBackgroundComponent.aBounds );
++                        
++                    // extract all aCurr actions to aTotalComponents
++                    aTotalComponents.aComponentList.splice( aTotalComponents.aComponentList.end(), 
++                                                            aBackgroundComponent.aComponentList );
++                        
++                    if( aBackgroundComponent.bIsSpecial )
++                        bTreatSpecial = true;
++                }
++
+                 ConnectedComponentsList::iterator 		aCurrCC;
+                 const ConnectedComponentsList::iterator aLastCC( aCCList.end() );
+                 bool									bSomeComponentsChanged;
+@@ -767,7 +994,7 @@ void Printer::GetPreparedMetaFile( const
+             }
+ 
+             //
+-            //  STAGE 1.2: Determine special state for cc element
++            //  STAGE 2.2: Determine special state for cc element
+             //  =================================================
+             //
+ 
+@@ -816,7 +1043,7 @@ void Printer::GetPreparedMetaFile( const
+                     // check whether we're on white background
+                     if( aTotalComponents.aComponentList.empty() )
+                     {
+-                        // nothing between pCurrAct and empty page
++                        // nothing between pCurrAct and page
+                         // background -> don't be special
+                         aTotalComponents.bIsSpecial = false;
+                     }
+@@ -838,14 +1065,15 @@ void Printer::GetPreparedMetaFile( const
+ 
+ 
+             //
+-            //  STAGE 1.3: Add newly generated CC list element
++            //  STAGE 2.3: Add newly generated CC list element
+             //  ==============================================
+             //
+ 
+             // set new bounds and add action to list
+             aTotalComponents.aBounds = aTotalBounds;
+-            aTotalComponents.aComponentList.push_back( ::std::make_pair(
+-                        const_cast<const MetaAction*>(pCurrAct), nActionNum) );
++            aTotalComponents.aComponentList.push_back( 
++                ::std::make_pair(
++                    pCurrAct, nActionNum) );
+ 
+             // add aTotalComponents as a new entry to aCCList
+             aCCList.push_back( aTotalComponents );
+@@ -871,23 +1099,38 @@ void Printer::GetPreparedMetaFile( const
+ 
+         // maps mtf actions to CC list entries
+         ::std::vector< const ConnectedComponents* > aCCList_MemberMap( rInMtf.GetActionCount() );
+-        
++
+         // iterate over all aCCList members and their contained metaactions
+         ConnectedComponentsList::iterator 		aCurr( aCCList.begin() );
+         const ConnectedComponentsList::iterator aLast( aCCList.end() );
+         for( ; aCurr != aLast; ++aCurr )
+         {
+-            ::std::list< Component >::iterator			aCurrAct( aCurr->aComponentList.begin() );
+-            const ::std::list< Component >::iterator	aLastAct( aCurr->aComponentList.end() );
+-            for( ; aCurrAct != aLastAct; ++aCurrAct )
++            ComponentList::iterator		  aCurrentAction( aCurr->aComponentList.begin() );
++            const ComponentList::iterator aLastAction( aCurr->aComponentList.end() );
++            for( ; aCurrentAction != aLastAction; ++aCurrentAction )
+             {
+                 // set pointer to aCCList element for corresponding index
+-                aCCList_MemberMap[ aCurrAct->second ] = &(*aCurr);
++                aCCList_MemberMap[ aCurrentAction->second ] = &(*aCurr);
+             }
+         }
+ 
+         //
+-        //  STAGE 2: Generate banded bitmaps for special regions
++        //  STAGE 3.1: Output background mtf actions (if there are any)
++        //  ===========================================================
++        //
++
++        ComponentList::iterator		  aCurrAct( aBackgroundComponent.aComponentList.begin() );
++        const ComponentList::iterator aLastAct( aBackgroundComponent.aComponentList.end() );
++        for( ; aCurrAct != aLastAct; ++aCurrAct )
++        {
++            // simply add this action (above, we inserted the actions
++            // starting at index 0 up to and including nLastBgAction)
++            rOutMtf.AddAction( ( aCurrAct->first->Duplicate(), aCurrAct->first ) );
++        }
++
++
++        //
++        //  STAGE 3.2: Generate banded bitmaps for special regions
+         //  ====================================================
+         //
+ 
+@@ -1039,10 +1282,17 @@ void Printer::GetPreparedMetaFile( const
+         }
+ 
+         //
+-        //  STAGE 3: Copy actions to output metafile
++        //  STAGE 4: Copy actions to output metafile
+         //  ========================================
+         //
+ 
++        // create an OutputDevice to record color settings, mapmode
++        // changes and the like
++		VirtualDevice aMapModeVDev3;
++		aMapModeVDev3.mnDPIX = mnDPIX;
++		aMapModeVDev3.mnDPIY = mnDPIY;
++		aMapModeVDev3.EnableOutput(FALSE);
++
+         // iterate over all actions and duplicate the ones not in a
+         // special aCCList member into rOutMtf
+         for( pCurrAct=const_cast<GDIMetaFile&>(rInMtf).FirstAction(), nActionNum=0; 
+@@ -1053,57 +1303,33 @@ void Printer::GetPreparedMetaFile( const
+ 
+             // NOTE: This relies on the fact that map-mode or draw
+             // mode changing actions are solitary aCCList elements and
+-            // have empty bounding boxes, see comment on stage 1.1
++            // have empty bounding boxes, see comment on stage 2.1
+             // above
+             if( pCurrAssociatedComponent &&
+                 (pCurrAssociatedComponent->aBounds.IsEmpty() ||
+                  !pCurrAssociatedComponent->bIsSpecial) )
+             {
+-                // #107169# Treat masked bitmaps special, if they are
+-                // the first (or sole) action in their bounds
++                // #107169# Treat transparent bitmaps special, if they
++                // are the first (or sole) action in their bounds
+                 // list. Note that we previously ensured that no
+                 // fully-transparent objects are before us here.
+-                if( ImplIsActionMaskedBitmap( *pCurrAct ) &&
++                if( ImplIsActionHandlingTransparency( *pCurrAct ) &&
+                     pCurrAssociatedComponent->aComponentList.begin()->first == pCurrAct )
+                 {
+-                    // convert to plain Bitmap, where masked-out parts are white
+-                    Bitmap aBmp( ImplConvertBmpEx2Bmp(*pCurrAct) );
+-
+-                    // add corresponding action
+-                    switch( pCurrAct->GetType() )
+-                    {
+-                        case META_BMPEX_ACTION:
+-                            rOutMtf.AddAction( new MetaBmpExAction( 
+-                                                   static_cast<const MetaBmpExAction*>(pCurrAct)->GetPoint(), 
+-                                                   aBmp ) );
+-                            break;
+-            
+-                        case META_BMPEXSCALE_ACTION:
+-                            rOutMtf.AddAction( new MetaBmpExScaleAction( 
+-                                                   static_cast<const MetaBmpExScaleAction*>(pCurrAct)->GetPoint(), 
+-                                                   static_cast<const MetaBmpExScaleAction*>(pCurrAct)->GetSize(), 
+-                                                   aBmp ) );
+-                            break;
+-
+-                        case META_BMPEXSCALEPART_ACTION:
+-                            rOutMtf.AddAction( new MetaBmpExScalePartAction( 
+-                                                   static_cast<const MetaBmpExScalePartAction*>(pCurrAct)->GetDestPoint(), 
+-                                                   static_cast<const MetaBmpExScalePartAction*>(pCurrAct)->GetDestSize(), 
+-                                                   static_cast<const MetaBmpExScalePartAction*>(pCurrAct)->GetSrcPoint(), 
+-                                                   static_cast<const MetaBmpExScalePartAction*>(pCurrAct)->GetSrcSize(), 
+-                                                   aBmp ) );
+-                            break;
+-
+-                        default:
+-                            DBG_ERROR("Printer::GetPreparedMetafile impossible state reached");
+-                            break;
+-                    }
++                    // convert actions, where masked-out parts are of
++                    // given background color
++                    ImplConvertTransparentAction(rOutMtf,
++                                                 *pCurrAct,
++                                                 aMapModeVDev3,
++                                                 aBackgroundComponent.aBgColor);
+                 }
+                 else
+                 {
+                     // simply add this action
+                     rOutMtf.AddAction( ( pCurrAct->Duplicate(), pCurrAct ) );
+                 }
++
++                pCurrAct->Execute(&aMapModeVDev3);
+             }
+         }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/win32-quickstarter-exit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/win32-quickstarter-exit.diff
@@ -0,0 +1,38 @@
+--- sfx2/source/appl/shutdowniconw32.cxx
++++ sfx2/source/appl/shutdowniconw32.cxx
+@@ -472,10 +472,15 @@ LRESULT CALLBACK listenerWndProc( HWND h
+                             nid.hWnd = hWnd;
+                             nid.uID = ID_QUICKSTART;
+                             Shell_NotifyIconA(NIM_DELETE, &nid);
++							if( aExecuterWindow == NULL &&
++								aListenerWindow == NULL )
++								if ( !ShutdownIcon::bModalMode )
++									ShutdownIcon::terminateDesktop();
++								
+                             break;
+                     }
+-
+-					PostMessage( aExecuterWindow, WM_COMMAND, m, (LPARAM)hWnd );
++					if( aExecuterWindow != NULL )
++						PostMessage( aExecuterWindow, WM_COMMAND, m, (LPARAM)hWnd );
+                 }
+                 break;
+             }
+@@ -679,12 +684,13 @@ void win32_shutdown_sys_tray()
+ 	if ( ShutdownIcon::IsQuickstarterInstalled() )
+ 	{
+ 		if( IsWindow( aListenerWindow ) )
+-		{
+ 			DestroyWindow( aListenerWindow );
+-			aListenerWindow = NULL;
++		aListenerWindow = NULL;
++
++		if( IsWindow( aExecuterWindow ) )
+ 			DestroyWindow( aExecuterWindow );
+-			aExecuterWindow = NULL;
+-		}
++		aExecuterWindow = NULL;
++
+ 		UnregisterClassA( QUICKSTART_CLASSNAME, GetModuleHandle( NULL ) );
+ 		UnregisterClassA( EXECUTER_WINDOWCLASS, GetModuleHandle( NULL ) );
+ 	}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkwarn-svtools-miscopts-bits.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkwarn-svtools-miscopts-bits.diff
@@ -0,0 +1,139 @@
+--- svtools/inc/svtools/miscopt.hxx.orig	2008-05-08 08:58:57.000000000 +0200
++++ svtools/inc/svtools/miscopt.hxx	2008-05-08 09:12:01.000000000 +0200
+@@ -160,6 +160,11 @@
+         sal_Bool    IsModifyByPrinting() const;
+         void        SetModifyByPrinting(sal_Bool bSet );
+ 
++        sal_Bool    ShowLinkWarningDialog() const;
++        void        SetShowLinkWarningDialog( sal_Bool bSet );
++        sal_Bool    IsShowLinkWarningDialogReadOnly() const;
++ 
++
+     //-------------------------------------------------------------------------------------------------------------
+ 	//	private methods
+ 	//-------------------------------------------------------------------------------------------------------------
+--- svtools/source/config/miscopt.cxx.orig	2008-05-08 08:58:57.000000000 +0200
++++ svtools/source/config/miscopt.cxx	2008-05-08 09:27:56.000000000 +0200
+@@ -114,8 +114,10 @@
+ #define PROPERTYHANDLE_SYMBOLSTYLE			4
+ #define PROPERTYNAME_DISABLEUICUSTOMIZATION	ASCII_STR("DisableUICustomization")
+ #define PROPERTYHANDLE_DISABLEUICUSTOMIZATION			5
++#define PROPERTYNAME_SHOWLINKWARNINGDIALOG	ASCII_STR("ShowLinkWarningDialog")
++#define PROPERTYHANDLE_SHOWLINKWARNINGDIALOG 6
+ 
+-#define PROPERTYCOUNT						6
++#define PROPERTYCOUNT						7
+ 
+ #define VCL_TOOLBOX_STYLE_FLAT				((USHORT)0x0004) // from <vcl/toolbox.hxx>
+ 
+@@ -143,6 +145,8 @@
+     sal_Int16   m_nToolboxStyle;
+     sal_Bool    m_bIsToolboxStyleRO;
+     sal_Bool    m_bDisableUICustomization;
++    sal_Bool    m_bShowLinkWarningDialog;
++    sal_Bool    m_bIsShowLinkWarningDialogRO;
+ 
+     //-------------------------------------------------------------------------------------------------------------
+ 	//	public methods
+@@ -253,6 +257,15 @@
+         inline sal_Bool IsGetToolboxStyleReadOnly()
+         { return m_bIsToolboxStyleRO; }
+ 
++        inline sal_Bool ShowLinkWarningDialog() const
++        { return m_bShowLinkWarningDialog; }
++
++        void SetShowLinkWarningDialog( sal_Bool bSet )
++        {  m_bShowLinkWarningDialog = bSet; SetModified(); }
++
++        sal_Bool IsShowLinkWarningDialogReadOnly() const
++        { return m_bIsShowLinkWarningDialogRO; }
++
+         void AddListener( const Link& rLink );
+         void RemoveListener( const Link& rLink );
+         void CallListeners();
+@@ -332,6 +345,8 @@
+     , m_bIsSymbolsStyleRO( sal_False )
+     , m_nToolboxStyle( 1 )
+     , m_bIsToolboxStyleRO( sal_False )
++    , m_bShowLinkWarningDialog( sal_True )
++    , m_bIsShowLinkWarningDialogRO( sal_False )
+ 
+ {
+ 	// Use our static list of configuration keys to get his values.
+@@ -405,6 +420,16 @@
+                 break;
+             }
+ 	    
++            case PROPERTYHANDLE_SHOWLINKWARNINGDIALOG :
++            {
++                if( !(seqValues[nProperty] >>= m_bShowLinkWarningDialog) )
++                {
++                    DBG_ERROR("Wrong type of \"Misc\\ShowLinkWarningDialog\"!" );
++                }
++                m_bIsShowLinkWarningDialogRO = seqRO[nProperty];
++                break;
++            }
++
+             case PROPERTYHANDLE_DISABLEUICUSTOMIZATION : 
+             {
+                 if( !(seqValues[nProperty] >>= m_bDisableUICustomization) )
+@@ -495,6 +520,13 @@
+                                                             }
+                                                         }
+                                                     break;
++            case PROPERTYHANDLE_SHOWLINKWARNINGDIALOG     :   {
++                                                            if( !(seqValues[nProperty] >>= m_bShowLinkWarningDialog) )
++                                                            {
++                                                                DBG_ERROR("Wrong type of \"Misc\\ShowLinkWarningDialog\"!" );
++                                                            }
++                                                        }
++                                                    break;
+             case PROPERTYHANDLE_SYMBOLSTYLE         :   {
+                                                             ::rtl::OUString aSymbolsStyle;
+                                                             if( seqValues[nProperty] >>= aSymbolsStyle )
+@@ -656,6 +688,13 @@
+                 seqValues[nProperty] <<= m_bDisableUICustomization;
+                 break;
+             }
++
++            case PROPERTYHANDLE_SHOWLINKWARNINGDIALOG :
++            {
++                if ( !m_bIsShowLinkWarningDialogRO )
++                    seqValues[nProperty] <<= m_bShowLinkWarningDialog;
++                break;
++            }
+         }
+ 	}
+ 	// Set properties in configuration.
+@@ -675,7 +714,8 @@
+         PROPERTYNAME_TOOLBOXSTYLE,
+         PROPERTYNAME_USESYSTEMFILEDIALOG,
+         PROPERTYNAME_SYMBOLSTYLE,
+-        PROPERTYNAME_DISABLEUICUSTOMIZATION
++        PROPERTYNAME_DISABLEUICUSTOMIZATION,
++        PROPERTYNAME_SHOWLINKWARNINGDIALOG
+ 	};
+ 
+ 	// Initialize return sequence with these list ...
+@@ -841,6 +881,21 @@
+     return m_pDataContainer->IsGetToolboxStyleReadOnly();
+ }
+ 
++sal_Bool SvtMiscOptions::ShowLinkWarningDialog() const
++{
++    return m_pDataContainer->ShowLinkWarningDialog();
++}
++
++void SvtMiscOptions::SetShowLinkWarningDialog( sal_Bool bSet )
++{
++    m_pDataContainer->SetShowLinkWarningDialog( bSet );
++}
++
++sal_Bool SvtMiscOptions::IsShowLinkWarningDialogReadOnly() const
++{
++    return m_pDataContainer->IsShowLinkWarningDialogReadOnly();
++}
++
+ //*****************************************************************************************************************
+ //	private method
+ //*****************************************************************************************************************
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/palette-enhanced-gradient.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/palette-enhanced-gradient.diff
@@ -0,0 +1,54 @@
+--- extras/source/palettes/standard.sog.old	2001-03-16 14:44:46.000000000 +0100
++++ extras/source/palettes/standard.sog	2007-11-04 09:54:31.000000000 +0100
+@@ -1,6 +1,16 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ 
+-<office:gradient-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
++<office:gradient-table xmlns:office="http://openoffice.org/2000/office"
++xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text"
++xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing"
++xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink"
++xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta"
++xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg"
++xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d"
++xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form"
++xmlns:script="http://openoffice.org/2000/script">
++
++<!-- Gradients of original OpenOffice.org located in standard.sog file -->
+  <draw:gradient draw:name="Gradient 1" draw:style="linear" draw:start-color="#000000" draw:end-color="#ffffff" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
+  <draw:gradient draw:name="Gradient 2" draw:style="axial" draw:start-color="#000080" draw:end-color="#800000" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="10%"/>
+  <draw:gradient draw:name="Gradient 3" draw:style="radial" draw:cx="30%" draw:cy="30%" draw:start-color="#800000" draw:end-color="#ffff00" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="20%"/>
+@@ -16,4 +26,31 @@
+  <draw:gradient draw:name="Radial red/yellow" draw:style="radial" draw:cx="50%" draw:cy="50%" draw:start-color="#ff3333" draw:end-color="#e6ff00" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="0%"/>
+  <draw:gradient draw:name="Ellipsoid blue grey/light blue" draw:style="ellipsoid" draw:cx="50%" draw:cy="50%" draw:start-color="#e6e6ff" draw:end-color="#0000ff" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
+  <draw:gradient draw:name="Axial light red/white" draw:style="axial" draw:start-color="#ff0000" draw:end-color="#ffffff" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="50%"/>
+-</office:gradient-table>
+\ Nincs újsor a fájl végén
++ 
++<!-- General Gradient Container -->
++ <draw:gradient draw:name="Sunshine" draw:style="radial" draw:cx="35%" draw:cy="25%" draw:start-color="#0066cc" draw:end-color="#e6e64c" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="0%"/>
++ <draw:gradient draw:name="Red_20_Alert" draw:display-name="Red Alert" draw:style="axial" draw:start-color="#800000" draw:end-color="#e00000" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="150" draw:border="0%"/>
++ <draw:gradient draw:name="Green_20_and_20_Red" draw:display-name="Green and Red" draw:style="ellipsoid" draw:cx="45%" draw:cy="75%" draw:start-color="#228b22" draw:end-color="#dc2300" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="600" draw:border="0%"/>
++ <draw:gradient draw:name="Steel" draw:style="axial" draw:start-color="#808080" draw:end-color="#c0c0c0" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
++ <draw:gradient draw:name="Warm_20_Brown" draw:display-name="Warm Brown" draw:style="radial" draw:cx="50%" draw:cy="50%" draw:start-color="#4c1900" draw:end-color="#e6e64c" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="0%"/>
++ <draw:gradient draw:name="Copper" draw:style="axial" draw:start-color="#ffff99" draw:end-color="#ff8080" draw:start-intensity="85%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
++ <draw:gradient draw:name="Zinc_20_2" draw:display-name="Zinc 2" draw:style="axial" draw:start-color="#fdd017" draw:end-color="#b8860b" draw:start-intensity="85%" draw:end-intensity="100%" draw:angle="250" draw:border="0%"/>
++ <draw:gradient draw:name="Grass" draw:style="ellipsoid" draw:cx="66%" draw:cy="33%" draw:start-color="#008000" draw:end-color="#00ae00" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="150" draw:border="0%"/>
++ <draw:gradient draw:name="Zinc_20_1" draw:display-name="Zinc 1" draw:style="axial" draw:start-color="#808080" draw:end-color="#cccccc" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="150" draw:border="10%"/>
++ <draw:gradient draw:name="Gold" draw:style="square" draw:cx="60%" draw:cy="60%" draw:start-color="#806517" draw:end-color="#ffd700" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
++ <draw:gradient draw:name="Green_20_and_20_Red_20_2" draw:display-name="Green and Red 2" draw:style="linear" draw:start-color="#800000" draw:end-color="#008000" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="150" draw:border="45%"/>
++ <draw:gradient draw:name="Turquoise_20_dream" draw:display-name="Turquoise dream" draw:style="ellipsoid" draw:cx="60%" draw:cy="60%" draw:start-color="#008080" draw:end-color="#47b8b8" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="50" draw:border="0%"/>
++ <draw:gradient draw:name="Real_20_Sun_20_lover" draw:display-name="Real Sun lover" draw:style="square" draw:cx="30%" draw:cy="45%" draw:start-color="#333366" draw:end-color="#9999cc" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="200" draw:border="0%"/>
++ <draw:gradient draw:name="Flame_20_out" draw:display-name="Flame out" draw:style="ellipsoid" draw:cx="40%" draw:cy="90%" draw:start-color="#ff0000" draw:end-color="#e6e64c" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="750" draw:border="35%"/>
++ <draw:gradient draw:name="Neon_20_green" draw:display-name="Neon green" draw:style="axial" draw:start-color="#00ff00" draw:end-color="#e6e6ff" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="150" draw:border="35%"/>
++ <draw:gradient draw:name="Deep_20_sea" draw:display-name="Deep sea" draw:style="linear" draw:start-color="#0000ff" draw:end-color="#00008b" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
++ <draw:gradient draw:name="Red_20_and_20_Orange" draw:display-name="Red and Orange" draw:style="radial" draw:cx="50%" draw:cy="50%" draw:start-color="#ff9966" draw:end-color="#800000" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="0%"/>
++ <draw:gradient draw:name="Pale_20_Green_20_and_20_Blue" draw:display-name="Pale Green and Blue" draw:style="axial" draw:start-color="#99ccff" draw:end-color="#94bd5e" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="50" draw:border="15%"/>
++ <draw:gradient draw:name="Wood" draw:style="radial" draw:cx="50%" draw:cy="50%" draw:start-color="#996633" draw:end-color="#4c1900" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="0%"/>
++ <draw:gradient draw:name="Cloudy_20_night" draw:display-name="Cloudy night" draw:style="radial" draw:cx="50%" draw:cy="50%" draw:start-color="#000000" draw:end-color="#ffffff" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="0%"/>
++ <draw:gradient draw:name="Military" draw:style="axial" draw:start-color="#548b54" draw:end-color="#8b4500" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="1350" draw:border="5%"/>
++ <draw:gradient draw:name="Skin" draw:style="ellipsoid" draw:cx="50%" draw:cy="50%" draw:start-color="#ff8080" draw:end-color="#ffaeb9" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="2100" draw:border="0%"/>
++ <draw:gradient draw:name="Mistiq" draw:style="linear" draw:start-color="#5e7d7e" draw:end-color="#ffaeb9" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="2250" draw:border="0%"/>
++ <draw:gradient draw:name="You_20_are_20_star" draw:display-name="You are star" draw:style="square" draw:cx="50%" draw:cy="50%" draw:start-color="#800080" draw:end-color="#e2412a" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
++ <draw:gradient draw:name="Sweetie" draw:style="radial" draw:cx="20%" draw:cy="30%" draw:start-color="#ffc0cb" draw:end-color="#c48793" draw:start-intensity="100%" draw:end-intensity="100%" draw:border="20%"/>
++</office:gradient-table>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/build-optimized-link.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/build-optimized-link.diff
@@ -0,0 +1,16 @@
+Index: solenv/inc/unxlngi4.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxlngi4.mk,v
+retrieving revision 1.17
+diff -u -p -u -r1.17 unxlngi4.mk
+--- solenv/inc/unxlngi4.mk	28 Apr 2003 16:46:57 -0000	1.17
++++ solenv/inc/unxlngi4.mk	13 May 2003 09:46:12 -0000
+@@ -145,7 +145,7 @@ LINK*=$(CC)
+ LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\'
+     #TODO: drop $ORIGIN once no URE executable is also shipped in OOo
+ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
+-LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++LINKFLAGS=-O2 -Bsymbolic -Wl,-z,combreloc $(LINKFLAGSDEFS)
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-shader-transitions-1.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-shader-transitions-1.diff
@@ -0,0 +1,353 @@
+diff -Nrup slideshow/source/engine/OGLTrans-rig/makefile.mk slideshow/source/engine/OGLTrans/makefile.mk
+--- slideshow/source/engine/OGLTrans-rig/makefile.mk	2008-03-17 10:39:38.000000000 +0100
++++ slideshow/source/engine/OGLTrans/makefile.mk	2008-03-17 10:39:51.000000000 +0100
+@@ -55,6 +55,7 @@ ENABLE_EXCEPTIONS=TRUE
+ 
+ SLOFILES = \
+         $(SLO)$/OGLTrans_TransitionImpl.obj \
++        $(SLO)$/OGLTrans_Shaders.obj \
+         $(SLO)$/OGLTrans_TransitionerImpl.obj
+ 
+ DLLPRE=
+diff -Nrup slideshow/source/engine/OGLTrans-rig/OGLTrans_Shaders.cxx slideshow/source/engine/OGLTrans/OGLTrans_Shaders.cxx
+--- slideshow/source/engine/OGLTrans-rig/OGLTrans_Shaders.cxx	1970-01-01 01:00:00.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_Shaders.cxx	2008-03-17 12:09:05.000000000 +0100
+@@ -0,0 +1,113 @@
++#include <osl/diagnose.hxx>
++
++#include "OGLTrans_Shaders.hxx"
++
++namespace unx
++{
++#include <GL/glx.h>
++#include <GL/glxext.h>
++}
++
++bool OGLShaders::cbInitialized = false;
++
++#ifdef GL_VERSION_2_0
++
++PFNGLCREATESHADERPROC OGLShaders::glCreateShader = NULL;
++PFNGLSHADERSOURCEPROC OGLShaders::glShaderSource = NULL;
++PFNGLCOMPILESHADERPROC OGLShaders::glCompileShader = NULL;
++PFNGLGETSHADERIVPROC OGLShaders::glGetShaderiv = NULL;
++PFNGLGETSHADERINFOLOGPROC OGLShaders::glGetShaderInfoLog = NULL;
++PFNGLDELETESHADERPROC OGLShaders::glDeleteShader = NULL;
++PFNGLCREATEPROGRAMPROC OGLShaders::glCreateProgram = NULL;
++PFNGLATTACHSHADERPROC OGLShaders::glAttachShader = NULL;
++PFNGLLINKPROGRAMPROC OGLShaders::glLinkProgram = NULL;
++PFNGLGETPROGRAMIVPROC OGLShaders::glGetProgramiv = NULL;
++PFNGLGETPROGRAMINFOLOGPROC OGLShaders::glGetProgramInfoLog = NULL;
++PFNGLUSEPROGRAMPROC OGLShaders::glUseProgram = NULL;
++PFNGLDELETEPROGRAMPROC OGLShaders::glDeleteProgram = NULL;
++PFNGLGETUNIFORMLOCATIONPROC OGLShaders::glGetUniformLocation = NULL;
++PFNGLUNIFORM1IPROC OGLShaders::glUniform1i = NULL;
++PFNGLUNIFORM1FPROC OGLShaders::glUniform1f = NULL;
++#endif
++
++bool OGLShaders::Initialize()
++{
++#ifdef GL_VERSION_2_0
++    if( !cbInitialized ) {
++        glCreateShader = (PFNGLCREATESHADERPROC) unx::glXGetProcAddress( (unsigned char *) "glCreateShader" );
++        glShaderSource = (PFNGLSHADERSOURCEPROC) unx::glXGetProcAddress( (unsigned char *) "glShaderSource" );
++        glCompileShader = (PFNGLCOMPILESHADERPROC) unx::glXGetProcAddress( (unsigned char *) "glCompileShader" );
++        glGetShaderiv = (PFNGLGETSHADERIVPROC) unx::glXGetProcAddress( (unsigned char *) "glGetShaderiv" );
++        glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) unx::glXGetProcAddress( (unsigned char *) "glGetShaderInfoLog" );
++        glDeleteShader = (PFNGLDELETESHADERPROC) unx::glXGetProcAddress( (unsigned char *) "glDeleteShader" );
++        glCreateProgram = (PFNGLCREATEPROGRAMPROC) unx::glXGetProcAddress( (unsigned char *) "glCreateProgram" );
++        glAttachShader = (PFNGLATTACHSHADERPROC) unx::glXGetProcAddress( (unsigned char *) "glAttachShader" );
++        glLinkProgram = (PFNGLLINKPROGRAMPROC) unx::glXGetProcAddress( (unsigned char *) "glLinkProgram" );
++        glGetProgramiv = (PFNGLGETPROGRAMIVPROC) unx::glXGetProcAddress( (unsigned char *) "glGetProgramiv" );
++        glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) unx::glXGetProcAddress( (unsigned char *) "glGetProgramInfoLog" );
++        glUseProgram = (PFNGLUSEPROGRAMPROC) unx::glXGetProcAddress( (unsigned char *) "glUseProgram" );
++        glDeleteProgram = (PFNGLDELETEPROGRAMPROC) unx::glXGetProcAddress( (unsigned char *) "glDeleteProgram" );
++        glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) unx::glXGetProcAddress( (unsigned char *) "glGetUniformLocation" );
++        glUniform1i = (PFNGLUNIFORM1IPROC) unx::glXGetProcAddress( (unsigned char *) "glUniform1i" );
++        glUniform1f = (PFNGLUNIFORM1FPROC) unx::glXGetProcAddress( (unsigned char *) "glUniform1f" );
++        cbInitialized = true;
++    }
++
++    return glCreateShader != NULL;
++#else
++    return false;
++#endif
++}
++
++GLuint OGLShaders::LinkProgram( const char *vertexShader, const char *fragmentShader )
++{
++#ifdef GL_VERSION_2_0
++    if( !Initialize() )
++        return 0;
++
++    GLhandleARB vertexObject, fragmentObject, programObject;
++    GLint vertexCompiled, fragmentCompiled, programLinked;
++    char log[1024];
++
++    vertexObject = glCreateShader( GL_VERTEX_SHADER );
++    fragmentObject = glCreateShader( GL_FRAGMENT_SHADER );
++    OSL_TRACE("checkpoint 1: shaders created (%d) vertex: %d fragment: %d", glGetError() == GL_NO_ERROR, vertexObject, fragmentObject );
++
++
++    glShaderSource( vertexObject, 1, &vertexShader, NULL );
++    glShaderSource( fragmentObject, 1, &fragmentShader, NULL );
++
++    glCompileShader( vertexObject );
++    glGetShaderInfoLog( vertexObject, sizeof( log ), NULL, log );
++    OSL_TRACE("vertex compile log: %s", log);
++    glGetShaderiv( vertexObject, GL_COMPILE_STATUS, &vertexCompiled );
++    glCompileShader( fragmentObject );
++    glGetShaderInfoLog( fragmentObject, sizeof( log ), NULL, log );
++    OSL_TRACE("fragment compile log: %s", log);
++    glGetShaderiv( fragmentObject, GL_COMPILE_STATUS, &fragmentCompiled );
++
++    if( !vertexCompiled || !fragmentCompiled )
++        return 0;
++
++    OSL_TRACE("checkpoint 2: shaders compiled (%d)", glGetError() == GL_NO_ERROR);
++
++    programObject = glCreateProgram();
++    glAttachShader( programObject, vertexObject );
++    glAttachShader( programObject, fragmentObject );
++
++    glLinkProgram( programObject );
++    glGetProgramInfoLog( programObject, sizeof( log ), NULL, log );
++    OSL_TRACE("program link log: %s", log);
++    glGetProgramiv( programObject, GL_LINK_STATUS, &programLinked );
++
++    if( !programLinked )
++        return 0;
++
++    OSL_TRACE("checkpoint 3: program linked (%d)", glGetError() == GL_NO_ERROR);
++
++    return programObject;
++#else
++    return 0;
++#endif
++}
++
+diff -Nrup slideshow/source/engine/OGLTrans-rig/OGLTrans_Shaders.hxx slideshow/source/engine/OGLTrans/OGLTrans_Shaders.hxx
+--- slideshow/source/engine/OGLTrans-rig/OGLTrans_Shaders.hxx	1970-01-01 01:00:00.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_Shaders.hxx	2008-03-17 12:08:41.000000000 +0100
+@@ -0,0 +1,41 @@
++#ifndef INCLUDED_OGLTRANS_SHADERS_HXX_
++#define INCLUDED_OGLTRANS_SHADERS_HXX_
++
++#define GL_GLEXT_PROTOTYPES 1
++#include <GL/gl.h>
++#include <GL/glext.h>
++
++class OGLShaders {
++    static bool Initialize();
++    static bool cbInitialized;
++
++public:    
++
++    static GLuint LinkProgram( const char *vertexShader, const char *fragmentShader );
++
++    /** GL shader functions
++     */
++#ifdef GL_VERSION_2_0
++
++    static PFNGLCREATESHADERPROC glCreateShader;
++    static PFNGLSHADERSOURCEPROC glShaderSource;
++    static PFNGLCOMPILESHADERPROC glCompileShader;
++    static PFNGLGETSHADERIVPROC glGetShaderiv;
++    static PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
++    static PFNGLDELETESHADERPROC glDeleteShader;
++
++    static PFNGLCREATEPROGRAMPROC glCreateProgram;
++    static PFNGLATTACHSHADERPROC glAttachShader;
++    static PFNGLLINKPROGRAMPROC glLinkProgram;
++    static PFNGLGETPROGRAMIVPROC glGetProgramiv;
++    static PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
++    static PFNGLUSEPROGRAMPROC glUseProgram;
++    static PFNGLDELETEPROGRAMPROC glDeleteProgram;
++
++    static PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
++    static PFNGLUNIFORM1IPROC glUniform1i;
++    static PFNGLUNIFORM1FPROC glUniform1f;
++#endif
++};
++
++#endif
+diff -Nrup slideshow/source/engine/OGLTrans-rig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans-rig/OGLTrans_TransitionerImpl.cxx	2008-03-17 10:39:38.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-03-17 10:39:51.000000000 +0100
+@@ -167,6 +167,11 @@ public:
+     static bool cbMesa;
+ };
+ 
++// declare the static variables as some gcc versions have problems declaring them automaticaly
++bool OGLTransitionerImpl::cbBrokenTexturesATI;
++float OGLTransitionerImpl::cnGLVersion;
++bool OGLTransitionerImpl::cbMesa;
++
+ void OGLTransitionerImpl::initialize( const uno::Reference< presentation::XSlideShowView >& xView )
+ {
+     // not thread safe
+diff -Nrup slideshow/source/engine/OGLTrans-rig/OGLTrans_TransitionImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx
+--- slideshow/source/engine/OGLTrans-rig/OGLTrans_TransitionImpl.cxx	2008-03-17 10:39:38.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	2008-03-17 10:41:32.000000000 +0100
+@@ -32,10 +32,10 @@
+  *    MA  02111-1307  USA
+  *
+  ************************************************************************/
+-#define GL_GLEXT_PROTOTYPES 1
++
+ #include "OGLTrans_TransitionImpl.hxx"
++#include "OGLTrans_Shaders.hxx"
+ #include <GL/gl.h>
+-#include <GL/glext.h>
+ #include <math.h>
+ 
+ void OGLTransitionImpl::clear()
+@@ -53,17 +53,17 @@ void OGLTransitionImpl::clear()
+ 
+ #ifdef GL_VERSION_2_0
+     if( mProgramObject ) {
+-        glDeleteProgram( mProgramObject );
++        OGLShaders::glDeleteProgram( mProgramObject );
+         mProgramObject = 0;
+     }
+ 
+     if( mVertexObject ) {
+-        glDeleteShader( mVertexObject );
++        OGLShaders::glDeleteShader( mVertexObject );
+         mVertexObject = 0;
+     }
+ 
+     if( mFragmentObject ) {
+-        glDeleteShader( mFragmentObject );
++        OGLShaders::glDeleteShader( mFragmentObject );
+         mFragmentObject = 0;
+     }
+ #endif
+@@ -1017,55 +1017,6 @@ void OGLTransitionImpl::makeFadeSmoothly
+     mbUseMipMapLeaving = mbUseMipMapEntering = false;
+ }
+ 
+-static GLuint linkProgram( const char *vertexShader, const char *fragmentShader )
+-{
+-#ifdef GL_VERSION_2_0
+-    GLhandleARB vertexObject, fragmentObject, programObject;
+-    GLint vertexCompiled, fragmentCompiled, programLinked;
+-    char log[1024];
+-
+-    vertexObject = glCreateShaderObjectARB( GL_VERTEX_SHADER_ARB );
+-    fragmentObject = glCreateShader( GL_FRAGMENT_SHADER );
+-    OSL_TRACE("checkpoint 1: shaders created (%d) vertex: %d fragment: %d", glGetError() == GL_NO_ERROR, vertexObject, fragmentObject );
+-
+-
+-    glShaderSourceARB( vertexObject, 1, &vertexShader, NULL );
+-    glShaderSourceARB( fragmentObject, 1, &fragmentShader, NULL );
+-
+-    glCompileShader( vertexObject );
+-    glGetInfoLogARB( vertexObject, sizeof( log ), NULL, log );
+-    OSL_TRACE("vertex compile log: %s", log);
+-    glGetShaderiv( vertexObject, GL_COMPILE_STATUS, &vertexCompiled );
+-    glCompileShader( fragmentObject );
+-    glGetInfoLogARB( fragmentObject, sizeof( log ), NULL, log );
+-    OSL_TRACE("fragment compile log: %s", log);
+-    glGetShaderiv( fragmentObject, GL_COMPILE_STATUS, &fragmentCompiled );
+-
+-    if( !vertexCompiled || !fragmentCompiled )
+-        return 0;
+-
+-    OSL_TRACE("checkpoint 2: shaders compiled (%d)", glGetError() == GL_NO_ERROR);
+-
+-    programObject = glCreateProgram();
+-    glAttachShader( programObject, vertexObject );
+-    glAttachShader( programObject, fragmentObject );
+-
+-    glLinkProgram( programObject );
+-    glGetInfoLogARB( programObject, sizeof( log ), NULL, log );
+-    OSL_TRACE("program link log: %s", log);
+-    glGetProgramiv( programObject, GL_LINK_STATUS, &programLinked );
+-
+-    if( !programLinked )
+-        return 0;
+-
+-    OSL_TRACE("checkpoint 3: program linked (%d)", glGetError() == GL_NO_ERROR);
+-
+-    return programObject;
+-#else
+-    return 0;
+-#endif
+-}
+-
+ static const char* basicVertexShader = "\n\
+ varying vec2 v_texturePosition;\n\
+ \n\
+@@ -1195,11 +1146,11 @@ void OGLTransitionImpl::preparePermShade
+ {
+ #ifdef GL_VERSION_2_0
+     if( mProgramObject ) {
+-        glUseProgram( mProgramObject );
++        OGLShaders::glUseProgram( mProgramObject );
+ 
+-        GLint location = glGetUniformLocation( mProgramObject, "leavingSlideTexture" );
++        GLint location = OGLShaders::glGetUniformLocation( mProgramObject, "leavingSlideTexture" );
+         if( location != -1 ) {
+-            glUniform1i( location, 0 );  // texture unit 0
++            OGLShaders::glUniform1i( location, 0 );  // texture unit 0
+         }
+ 
+         glActiveTexture(GL_TEXTURE1);
+@@ -1207,14 +1158,14 @@ void OGLTransitionImpl::preparePermShade
+             initPermTexture( &maHelperTexture );
+         glActiveTexture(GL_TEXTURE0);
+ 
+-        location = glGetUniformLocation( mProgramObject, "permTexture" );
++        location = OGLShaders::glGetUniformLocation( mProgramObject, "permTexture" );
+         if( location != -1 ) {
+-            glUniform1i( location, 1 );  // texture unit 1
++            OGLShaders::glUniform1i( location, 1 );  // texture unit 1
+         }
+ 
+-        location = glGetUniformLocation( mProgramObject, "enteringSlideTexture" );
++        location = OGLShaders::glGetUniformLocation( mProgramObject, "enteringSlideTexture" );
+         if( location != -1 ) {
+-            glUniform1i( location, 2 );  // texture unit 2
++            OGLShaders::glUniform1i( location, 2 );  // texture unit 2
+         }
+     }
+ #endif
+@@ -1222,7 +1173,7 @@ void OGLTransitionImpl::preparePermShade
+ 
+ void OGLTransitionImpl::prepareStatic( ::sal_Int32 /* glLeavingSlideTex */, ::sal_Int32 /* glEnteringSlideTex */ )
+ {
+-    mProgramObject = linkProgram( basicVertexShader, staticFragmentShader );
++    mProgramObject = OGLShaders::LinkProgram( basicVertexShader, staticFragmentShader );
+ 
+     preparePermShader();
+ }
+@@ -1234,16 +1185,16 @@ void OGLTransitionImpl::displaySlidesSha
+ 
+ #ifdef GL_VERSION_2_0
+     if( mProgramObject ) {
+-        GLint location = glGetUniformLocation( mProgramObject, "time" );
++        GLint location = OGLShaders::glGetUniformLocation( mProgramObject, "time" );
+         if( location != -1 ) {
+-            glUniform1f( location, nTime );
++            OGLShaders::glUniform1f( location, nTime );
+         }
+     }
+-#endif
+ 
+     glActiveTexture( GL_TEXTURE2 );
+     glBindTexture( GL_TEXTURE_2D, glEnteringSlideTex );
+     glActiveTexture( GL_TEXTURE0 );
++#endif
+ 
+     displaySlide( nTime, glLeavingSlideTex, maLeavingSlidePrimitives, SlideWidthScale, SlideHeightScale );
+ }
+@@ -1266,7 +1217,7 @@ void OGLTransitionImpl::makeStatic()
+ 
+ void OGLTransitionImpl::prepareDissolve( ::sal_Int32 /* glLeavingSlideTex */, ::sal_Int32 /* glEnteringSlideTex */ )
+ {
+-    mProgramObject = linkProgram( basicVertexShader, dissolveFragmentShader );
++    mProgramObject = OGLShaders::LinkProgram( basicVertexShader, dissolveFragmentShader );
+ 
+     preparePermShader();
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vfs-kde-too.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vfs-kde-too.diff
@@ -0,0 +1,17 @@
+Index: desktop/source/app/appinit.cxx
+===================================================================
+RCS file: /cvs/framework/desktop/source/app/appinit.cxx,v
+retrieving revision 1.21
+diff -u -p -u -r1.21 appinit.cxx
+--- desktop/source/app/appinit.cxx	10 Dec 2004 18:39:15 -0000	1.21
++++ desktop/source/app/appinit.cxx	24 Feb 2005 15:29:10 -0000
+@@ -228,7 +228,8 @@ static bool configureUcb(bool bServer, r
+                 );
+                 rtl::OUString aDesktopEnvironment;
+                 if ((aValue >>= aDesktopEnvironment)
+-                    && aDesktopEnvironment.equalsAscii("GNOME"))
++                    && (aDesktopEnvironment.equalsAscii("GNOME") ||
++						aDesktopEnvironment.equalsAscii("KDE")))
+                 {
+                     Reference<XContentProviderManager> xCPM =
+                         cb->getContentProviderManagerInterface();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/store-registry.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/store-registry.diff
@@ -0,0 +1,180 @@
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/inc/registry/registry.h registry/inc/registry/registry.h
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/inc/registry/registry.h	2005-09-09 07:12:56.000000000 +0200
++++ registry/inc/registry/registry.h	2007-03-14 11:24:57.000000000 +0100
+@@ -420,7 +420,8 @@ RegError REGISTRY_CALLTYPE reg_mergeKey(
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+ RegError REGISTRY_CALLTYPE reg_createRegistry(rtl_uString* registryName, 
+-							 				  RegHandle* phRegistry);
++							 				  RegHandle* phRegistry,
++                                              bool bInternal = false);
+ 
+ 
+ /**	This function opens the root key of a registry.
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/source/regimpl.cxx registry/source/regimpl.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/source/regimpl.cxx	2007-03-01 17:56:47.000000000 +0100
++++ registry/source/regimpl.cxx	2007-03-14 09:58:40.000000000 +0100
+@@ -508,7 +508,7 @@ ORegistry::~ORegistry()
+ //*********************************************************************
+ //  initRegistry
+ //
+-RegError ORegistry::initRegistry(const OUString& regName, RegAccessMode accessMode)
++RegError ORegistry::initRegistry(const OUString& regName, RegAccessMode accessMode, bool bInternal)
+ {
+     OStoreFile      rRegFile;
+     storeAccessMode sAccessMode = REG_MODE_OPEN;
+@@ -531,7 +531,10 @@ RegError ORegistry::initRegistry(const O
+     }
+     else
+     {
+-        errCode = rRegFile.create(regName, sAccessMode, REG_PAGESIZE);
++        if (bInternal)
++            errCode = rRegFile.create(regName, sAccessMode, REG_PAGESIZE_INTERNAL, REG_RDB_FORMAT_2);
++        else
++            errCode = rRegFile.create(regName, sAccessMode, REG_PAGESIZE_PUBLIC, REG_RDB_FORMAT_1);
+     }
+ 
+     if (errCode)
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/source/regimpl.hxx registry/source/regimpl.hxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/source/regimpl.hxx	2006-06-19 16:28:05.000000000 +0200
++++ registry/source/regimpl.hxx	2007-03-14 09:59:26.000000000 +0100
+@@ -50,7 +50,11 @@
+ #include	<store/store.hxx>
+ #endif
+ 
+-#define REG_PAGESIZE 512
++#define REG_PAGESIZE_PUBLIC   512
++#define REG_PAGESIZE_INTERNAL 128
++
++#define REG_RDB_FORMAT_1 STORE_FORMAT_V1
++#define REG_RDB_FORMAT_2 STORE_FORMAT_V2
+ 
+ #define	REG_MODE_CREATE		store_AccessCreate
+ #define	REG_MODE_OPEN		store_AccessReadWrite 
+@@ -107,7 +111,8 @@ public:
+ 		{ return --m_refCount; }
+ 
+ 	RegError	initRegistry(const OUString& name, 
+-							 RegAccessMode accessMode);
++							 RegAccessMode accessMode,
++                             bool bInternal = false);
+ 
+ 	RegError	closeRegistry();
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/source/registry.cxx registry/source/registry.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/source/registry.cxx	2006-09-17 03:53:45.000000000 +0200
++++ registry/source/registry.cxx	2007-03-14 11:20:28.000000000 +0100
+@@ -654,12 +654,13 @@ RegError REGISTRY_CALLTYPE reg_mergeKey(
+ //	reg_createRegistry
+ //
+ RegError REGISTRY_CALLTYPE reg_createRegistry(rtl_uString* registryName, 
+-											  RegHandle* phRegistry)
++											  RegHandle* phRegistry,
++                                              bool bInternal)
+ {
+ 	RegError ret;
+ 
+ 	ORegistry* pReg = new ORegistry();
+-	if ((ret = pReg->initRegistry(registryName, REG_CREATE)))
++	if ((ret = pReg->initRegistry(registryName, REG_CREATE, bInternal)))
+ 	{
+ 		*phRegistry = NULL;
+ 		return ret;
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/tools/regmerge.cxx registry/tools/regmerge.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/registry/tools/regmerge.cxx	2006-09-17 03:55:09.000000000 +0200
++++ registry/tools/regmerge.cxx	2007-03-14 11:25:05.000000000 +0100
+@@ -118,15 +118,16 @@ static void dumpHelp()
+ {
+     fprintf(stderr, "using: regmerge [-v|--verbose] mergefile mergeKeyName regfile_1 ... regfile_n\n");
+     fprintf(stderr, "       regmerge @regcmds\nOptions:\n");    
+-    fprintf(stderr, "  -v, --verbose : verbose output on stdout.\n");
+-    fprintf(stderr, "  mergefile     : specifies the merged registry file. If this file doesn't exists,\n");
+-    fprintf(stderr, "                  it is created.\n");
+-    fprintf(stderr, "  mergeKeyName  : specifies the merge key, everything is merged under this key.\n");
+-    fprintf(stderr, "                  If this key doesn't exists, it is created.\n");
+-    fprintf(stderr, "  regfile_1..n  : specifies one or more registry files which are merged.\n");
++    fprintf(stderr, "  -i, --internal : use internal private format.\n");
++    fprintf(stderr, "  -v, --verbose  : verbose output on stdout.\n");
++    fprintf(stderr, "  mergefile      : specifies the merged registry file. If this file doesn't exists,\n");
++    fprintf(stderr, "                   it is created.\n");
++    fprintf(stderr, "  mergeKeyName   : specifies the merge key, everything is merged under this key.\n");
++    fprintf(stderr, "                   If this key doesn't exists, it is created.\n");
++    fprintf(stderr, "  regfile_1..n   : specifies one or more registry files which are merged.\n");
+ }
+ 
+-static bool checkCommandFile(char* cmdfile)
++static bool checkCommandFile(char* cmdfile, bool& bInternal)
+ {
+ 	FILE	*commandfile;
+ 	char 	option[256];
+@@ -142,13 +143,17 @@ static bool checkCommandFile(char* cmdfi
+ 		{
+ 			if (option[0]== '@')
+ 			{
+-				bool bRet = checkCommandFile(option);
++				bool bRet = checkCommandFile(option, bInternal);
+                 // ensure that the option will not be overwritten
+                 if ( !bRet )
+                     bVerbose = bRet;
+ 			} else {
+                 if (option[0]== '-') {
+-                    if (strncmp(option, "-v", 2)  == 0 ||
++                    if (strncmp(option, "-i", 2)  == 0 ||
++                        strncmp(option, "--internal", 10) == 0)
++                    {
++                        bInternal = true;
++                    } else if (strncmp(option, "-v", 2)  == 0 ||
+                         strncmp(option, "--verbose", 9) == 0)
+                     {
+                         bVerbose = true;
+@@ -175,23 +180,28 @@ static bool checkCommandFile(char* cmdfi
+     return bVerbose;
+ }	
+ 
+-static bool checkCommandArgs(int argc, char **argv)
++static bool checkCommandArgs(int argc, char **argv, bool &bInternal)
+ {
+     bool bVerbose = false;
+     
++    bInternal = false;
+     realargc = 0;
+ 
+ 	for (int i=0; i<argc; i++)        
+ 	{
+ 		if (argv[i][0]== '@')
+ 		{
+-            bool bRet = checkCommandFile(argv[i]);
++            bool bRet = checkCommandFile(argv[i], bInternal);
+             // ensure that the option will not be overwritten
+             if ( !bRet )
+                 bVerbose = bRet;
+ 		} else {
+             if (argv[i][0]== '-') {
+-                if (strncmp(argv[i], "-v", 2)  == 0 ||
++                if (strncmp(argv[i], "-i", 2)  == 0 ||
++                    strncmp(argv[i], "--internal", 10) == 0)
++                {
++                    bInternal = true;
++                } else if (strncmp(argv[i], "-v", 2)  == 0 ||
+                     strncmp(argv[i], "--verbose", 9) == 0)
+                 {
+                     bVerbose = true;
+@@ -229,7 +239,8 @@ int _cdecl main( int argc, char * argv[]
+ {
+ 	RegHandle 		hReg;
+ 	RegKeyHandle	hRootKey;
+-    bool            bVerbose = checkCommandArgs(argc, argv);
++    bool            bInternal;
++    bool            bVerbose = checkCommandArgs(argc, argv, bInternal);
+ 
+ 	if (realargc < 4)
+ 	{
+@@ -241,7 +252,7 @@ int _cdecl main( int argc, char * argv[]
+ 	::rtl::OUString regName( convertToFileUrl(realargv[1]) );
+ 	if (reg_openRegistry(regName.pData, &hReg, REG_READWRITE))
+ 	{
+-		if (reg_createRegistry(regName.pData, &hReg))
++		if (reg_createRegistry(regName.pData, &hReg, bInternal))
+ 		{
+             if (bVerbose)
+                 fprintf(stderr, "open registry \"%s\" failed\n", realargv[1]);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-transitions-sd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-transitions-sd.diff
@@ -0,0 +1,35 @@
+diff -ru sd-orig/prj/build.lst sd/prj/build.lst
+--- sd/prj/build.lst	2008-01-07 17:09:15.000000000 +0100
++++ sd/prj/build.lst	2008-01-07 21:03:56.000000000 +0100
+@@ -31,7 +31,7 @@
+ sd	sd\source\filter\cgm					nmake	-	all	sd_cgm sd_inc NULL
+ sd	sd\source\filter\eppt					nmake	-	all	sd_eppt sd_unotypes sd_inc NULL
+ sd	sd\source\filter\grf					nmake	-	all	sd_grf sd_inc NULL
+-sd	sd\source\filter\xml					nmake	-	all	sd_xml sd_inc NULL
++sd	sd\source\filter\xml					nmake	-	all	sd_filter_xml sd_inc NULL
+ sd	sd\source\filter\html					nmake	-	all	sd_html sd_inc NULL
+ sd	sd\source\ui\animations					nmake	-	all sd_animations sd_unotypes sd_inc NULL
+ sd	sd\source\ui\slideshow					nmake	-	all sd_slideshow sd_unotypes sd_sdi sd_inc NULL
+@@ -42,4 +42,5 @@
+ sd	sd\source\ui\framework\toolbar         	nmake	-	all sd_framework_toolbar sd_inc NULL
+ sd	sd\source\ui\framework\tools           	nmake	-	all sd_framework_tools sd_inc NULL
+ sd	sd\source\ui\framework\command         	nmake	-	all sd_framework_command sd_inc NULL
+-sd	sd\util									nmake	-	all	sd_util sd_app sd_cgm sd_core sd_dlg sd_docsh sd_eppt sd_filt sd_func sd_grf sd_unid sd_view sd_xml sd_html sd_ppt sd_accessibility sd_animations sd_toolpanel sd_toolpanel_controls sd_tools sd_slsshell sd_slsmodel sd_slsview sd_slscontroller sd_slscache sd_notes sd_slideshow sd_undo sd_helper sd_framework_pane sd_framework_view sd_framework_configuration sd_framework_module sd_framework_toolbar sd_framework_tools sd_framework_command NULL
++sd	sd\util									nmake	-	all	sd_util sd_app sd_cgm sd_core sd_dlg sd_docsh sd_eppt sd_filt sd_func sd_grf sd_unid sd_view sd_filter_xml sd_html sd_ppt sd_accessibility sd_animations sd_toolpanel sd_toolpanel_controls sd_tools sd_slsshell sd_slsmodel sd_slsview sd_slscontroller sd_slscache sd_notes sd_slideshow sd_undo sd_helper sd_framework_pane sd_framework_view sd_framework_configuration sd_framework_module sd_framework_toolbar sd_framework_tools sd_framework_command NULL
++sd	sd\xml									nmake	-	all	sd_xml NULL
+--- /dev/null	2007-09-21 21:12:45.000000000 +0200
++++ sd/xml/makefile.mk	2008-01-07 17:19:14.000000000 +0100
+@@ -0,0 +1,13 @@
++PRJ=..
++PRJNAME=sd
++
++.INCLUDE :  settings.mk
++
++.IF "$(ENABLE_OPENGL)" != "TRUE"
++@all:
++	@echo "Building without OpenGL Transitions..."
++	$(RM) transitions-ogl.xml
++.ELSE
++@all:
++	$(GNUCOPY) transitions-ogl transitions-ogl.xml
++.ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/oooXXXXX.vcl.x86_64.impressatk.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/oooXXXXX.vcl.x86_64.impressatk.diff
@@ -0,0 +1,21 @@
+--- vcl/unx/gtk/a11y/atkutil.cxx.old	2006-09-27 15:55:09.018388000 +0200
++++ vcl/unx/gtk/a11y/atkutil.cxx	2006-09-27 15:55:28.858388000 +0200
+@@ -552,6 +552,7 @@
+ 
+ long WindowEventHandler(void *, ::VclSimpleEvent const * pEvent)
+ {
++    try {
+     switch (pEvent->GetId())
+     {
+     case VCLEVENT_WINDOW_SHOW:
+@@ -612,6 +613,10 @@
+         //fprintf(stderr, "got event %d \n", pEvent->GetId());
+         break;
+     }
++    } catch(lang::IndexOutOfBoundsException e)
++    {
++	g_warning("Focused object has invalid index in parent");
++    }
+     return 0;
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libwps-testing.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libwps-testing.diff
@@ -0,0 +1,23 @@
+--- libwps/makefile.mk	2008-04-07 14:04:25.000000000 +0200
++++ libwps/makefile.mk	2008-04-07 14:18:31.000000000 +0200
+@@ -54,9 +54,10 @@
+ INCPRE+=$(LIBWPD_CFLAGS)
+ .ELSE
+ INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd-stream
+ .ENDIF
+ 
+-TARFILE_NAME=libwps-0.1.2
++TARFILE_NAME=libwps-0.2.0
+ #PATCH_FILE_NAME=$(TARFILE_NAME).diff
+ BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ BUILD_DIR=src/lib
+--- libwps/prj/d.lst	2008-04-07 14:04:25.000000000 +0200
++++ libwps/prj/d.lst	2008-04-07 14:23:26.000000000 +0200
+@@ -1,6 +1,5 @@
+ mkdir: %_DEST%\inc%_EXT%\libwps
+ ..\%__SRC%\misc\build\libwps*\src\lib\libwps.h %_DEST%\inc%_EXT%\libwps\
+-..\%__SRC%\misc\build\libwps*\src\lib\WPSStream.h %_DEST%\inc%_EXT%\libwps\
+ ..\%__SRC%\misc\build\libwps*\src\lib\WPSDocument.h %_DEST%\inc%_EXT%\libwps\
+ ..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
+ ..\%__SRC%\slb\*.lib %_DEST%\lib%_EXT%\*.lib
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-shell.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-shell.diff
@@ -0,0 +1,7 @@
+--- shell/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ shell/prj/tests.lst	2007-09-07 18:09:05.000000000 +0200
+@@ -0,0 +1,4 @@
++#does not build: sl   shell\qa                                           nmake - all sl_qa NULL
++
++# older tests:
++sl   shell\source\win32\workbench                       nmake - w   sl_source_win32_workbench NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/nas-use-arch-flags.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/nas-use-arch-flags.diff
@@ -0,0 +1,23 @@
+--- nas/nas-1.6.patch.orig	2004-07-13 10:39:37.000000000 -0400
++++ nas/nas-1.6.patch	2004-07-13 10:37:21.000000000 -0400
+@@ -1,3 +1,20 @@
++*** misc/nas-1.6/Imakefile	1999-10-24 13:45:16.000000000 -0400
++--- misc/build/nas-1.6/Imakefile	2004-07-13 10:26:33.000000000 -0400
++***************
++*** 31,36 ****
++--- 31,42 ----
++  
++     WORLDOPTS = -k
++  
+++ CFLAGS=$(ARCH_FLAGS) -Wno-return-type
+++ CXXFLAGS=$(ARCH_FLAGS) -Wno-return-type
+++ BOOTSTRAPCFLAGS=$(ARCH_FLAGS) -Wno-return-type
+++ CXXDEBUGFLAGS=$(ARCH_FLAGS) -Wno-return-type
+++ CDEBUGFLAGS=$(ARCH_FLAGS) -Wno-return-type
+++ 
++  SUBDIRS = include server lib clients doc config
++  
++  MakeSubdirs($(SUBDIRS))
+ *** misc/nas-1.6/clients/audio/auctl/auctl.c	1999-05-08 20:47:16.000000000 +0200
+ --- misc/build/nas-1.6/clients/audio/auctl/auctl.c	2004-09-03 12:50:52.868259792 +0200
+ ***************
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/no-splash-takeover.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/no-splash-takeover.diff
@@ -0,0 +1,16 @@
+Index: vcl/source/window/window.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/window/window.cxx,v
+retrieving revision 1.208
+diff -u -p -r1.208 window.cxx
+--- vcl/source/window/window.cxx	31 Jan 2005 13:26:15 -0000	1.208
++++ vcl/source/window/window.cxx	11 Feb 2005 16:42:22 -0000
+@@ -821,8 +821,6 @@ void Window::ImplInit( Window* pParent, 
+         else if( mpWindowImpl->mbFloatWin )
+             nFrameStyle |= SAL_FRAME_STYLE_TOOLWINDOW;
+ 
+-        if( nStyle & WB_INTROWIN )
+-            nFrameStyle |= SAL_FRAME_STYLE_INTRO;
+         if( nStyle & WB_TOOLTIPWIN )
+             nFrameStyle |= SAL_FRAME_STYLE_TOOLTIP;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-pre-and-postprocess-crash-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-pre-and-postprocess-crash-fix.diff
@@ -0,0 +1,23 @@
+--- sfx2/source/doc/objstor.cxx.before	2007-05-03 13:46:37.000000000 +0200
++++ sfx2/source/doc/objstor.cxx	2007-05-03 13:51:58.000000000 +0200
+@@ -957,11 +957,15 @@
+         	{
+             	pImp->nLoadedFlags = 0;
+ 				pImp->bModelInitialized = sal_False;
+-				String aUserData=pFilter->GetUserData();
+-				// check whether a prepocessing step is requested in the configuration
+-				static const char PREPROCESS_CONST[]="Preprocess=<";
+-				int pos=aUserData.Search(::rtl::OUString::createFromAscii(PREPROCESS_CONST).getStr(), 0);
+-				int end=aUserData.Search( '>', pos+strlen(PREPROCESS_CONST));
++                int end, pos = STRING_NOTFOUND;
++                String aUserData;
++                static const char PREPROCESS_CONST[]="Preprocess=<";
++                if (pFilter) {
++                    aUserData=pFilter->GetUserData();
++                    // check whether a prepocessing step is requested in the configuration
++                    pos=aUserData.Search(::rtl::OUString::createFromAscii(PREPROCESS_CONST).getStr(), 0);
++                    end=aUserData.Search( '>', pos+strlen(PREPROCESS_CONST));
++                }
+ 				if (pos!=STRING_NOTFOUND && end!=STRING_NOTFOUND) {
+ 					String aAppName(aUserData, pos+strlen(PREPROCESS_CONST), end-(pos+strlen(PREPROCESS_CONST)));
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/win32-multi-lang-installer.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/win32-multi-lang-installer.diff
@@ -0,0 +1,548 @@
+--- ../../../2.0.2-pristine/build/OOO_2_0_2/scp2/source/ooo/file_library_ooo.scp	2006-06-02 13:06:38.003914500 +0000
++++ scp2/source/ooo/file_library_ooo.scp	2006-05-31 16:15:01.893875000 +0000
+@@ -2687,3 +2687,14 @@
+ 	#endif
+ End
+ #endif
++
++#ifdef WNT
++
++File gid_File_Lib_sellangmsi
++    TXT_FILE_BODY;
++    Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY);
++    Dir = gid_Dir_Program;
++    Name = "sellangmsi.dll";
++End
++
++#endif
+dummy line to avoid confusing diff-mode
+--- scp2/source/ooo/windowscustomaction_ooo.scp
++++ scp2/source/ooo/windowscustomaction_ooo.scp
+@@ -443,3 +443,11 @@
+ 	Assignment1 = ("InstallExecuteSequence", "(Not Installed or ISPATCH) and Not REMOVE=\"ALL\"", "end");
+ End
+ 
++WindowsCustomAction gid_Customaction_SelectLanguage
++	Name = "SelectLanguage";
++	Typ = "321";
++	Source = "sellangmsi.dll";
++	Target = "SelectLanguage";
++	Inbinarytable = 1;
++	Assignment1 = ("ControlEvent", "SetupType", "Next", "DoAction", "SelectLanguage", "1", "1");
++End
+--- setup_native/prj/build.lst
++++ setup_native/prj/build.lst
+@@ -5,6 +5,7 @@
+ pk  setup_native\source\win32\customactions\regpatchactivex nmake -  w   sn_regpatchactivex NULL
+ pk  setup_native\source\win32\customactions\reg4msdoc     nmake   -  w   sn_reg4msdoc NULL
+ pk  setup_native\source\win32\customactions\regpython     nmake   -  w   sn_regpython NULL
++pk  setup_native\source\win32\customactions\sellang       nmake   -  w   sn_sellang NULL
+ pk  setup_native\source\win32\customactions\javafilter    nmake   -  w   sn_javafilter NULL
+ pk  setup_native\source\win32\customactions\quickstarter  nmake   -  w   sn_quickstarter NULL
+ pk  setup_native\source\win32\customactions\shellextensions nmake   -  w   sn_shellextensions sn_tools.w NULL
+--- /dev/null
++++ setup_native/source/win32/customactions/sellang/exports.dxp	2006-05-31 12:15:54.268875000 +0000
+@@ -0,0 +1 @@
++SelectLanguage
+--- /dev/null
++++ setup_native/source/win32/customactions/sellang/makefile.mk	2006-05-31 12:13:28.331375000 +0000
+@@ -0,0 +1,80 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..$/..$/..
++PRJNAME=setup_native
++TARGET=sellangmsi
++
++.IF "$(GUI)"=="WNT"
++
++# --- Settings -----------------------------------------------------
++
++ENABLE_EXCEPTIONS=TRUE
++NO_DEFAULT_STL=TRUE
++DYNAMIC_CRT=
++USE_DEFFILE=TRUE
++
++.INCLUDE : settings.mk
++
++CFLAGS+=-D_STLP_USE_STATIC_LIB
++
++# --- Files --------------------------------------------------------
++
++UWINAPILIB=
++
++SLOFILES = \
++	$(SLO)$/sellang.obj
++
++SHL1STDLIBS=	kernel32.lib\
++				user32.lib\
++				advapi32.lib\
++				shell32.lib\
++				msi.lib\
++				$(LIBSTLPORTST)								
++
++SHL1LIBS = $(SLB)$/$(TARGET).lib 
++
++SHL1TARGET = $(TARGET)
++SHL1IMPLIB = i$(TARGET)
++
++SHL1DEF = $(MISC)$/$(SHL1TARGET).def
++SHL1DEPN = $(SLB)$/$(TARGET).lib
++SHL1BASE = 0x1c000000
++DEF1NAME=$(SHL1TARGET)
++DEF1EXPORTFILE=exports.dxp
++
++# --- Targets --------------------------------------------------------------
++
++.INCLUDE : target.mk
++
++# -------------------------------------------------------------------------
++
++
++.ENDIF
++
+--- /dev/null
++++ setup_native/source/win32/customactions/sellang/sellang.cxx	2006-06-02 09:13:53.893875000 +0000
+@@ -0,0 +1,347 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#define WIN32_LEAN_AND_MEAN
++#define _WIN32_WINNT 0x0500
++#undef WINVER
++#define WINVER 0x0500
++
++#pragma warning(push, 1) /* disable warnings within system headers as
++                          * warnings are now treated as errors...
++                          */
++#include <windows.h>
++#include <msiquery.h>
++#include <malloc.h>
++
++#ifdef UNICODE
++#define _UNICODE
++#define _tstring	wstring
++#else
++#define _tstring	string
++#endif
++#include <tchar.h>
++#include <string>
++#include <stdio.h>
++#pragma warning(pop)
++
++#include <systools/win32/uwinapi.h>
++
++/* #define VERBOSE_DEBUG_OUTPUT 1 */
++
++static const char *
++langid_to_string( LANGID langid, int *have_default_lang )
++{
++	/* Map from LANGID to string. The languages below are in the same
++	 * seemingly random order as in
++	 * setup_native/source/win32/msi-encodinglist.txt.
++	 * Only the language part is returned in the string.
++	 */
++	switch (PRIMARYLANGID (langid)) {
++	case LANG_ENGLISH:
++		if (have_default_lang != NULL &&
++		    langid == MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT))
++			*have_default_lang = 1;
++		return "en";
++#define CASE(primary, name) \
++		case LANG_##primary: return #name
++	CASE(PORTUGUESE, pt);
++	CASE(RUSSIAN, ru);
++	CASE(GREEK, el);
++	CASE(DUTCH, nl);
++	CASE(FRENCH, fr);
++	CASE(SPANISH, es);
++	CASE(FINNISH, fi);
++	CASE(HUNGARIAN, hu);
++	CASE(CATALAN, ca);
++	CASE(ITALIAN, it);
++	CASE(CZECH, cs);
++	CASE(SLOVAK, sk);
++	CASE(DANISH, da);
++	CASE(SWEDISH, sv);
++	CASE(POLISH, pl);
++	CASE(GERMAN, de);
++	CASE(THAI, th);
++	CASE(ESTONIAN, et);
++	CASE(JAPANESE, ja);
++	CASE(KOREAN, ko);
++	// CASE(KHMER, km);
++	// CASE(WELSH, cy);
++	CASE(CHINESE, zh);
++	CASE(TURKISH, tr);
++	CASE(HINDI, hi);
++	CASE(PUNJABI, pa);
++	CASE(TAMIL, ta);
++	CASE(ARABIC, ar);
++	CASE(HEBREW, he);
++	CASE(AFRIKAANS, af);
++	CASE(ALBANIAN, sq);
++	CASE(ARMENIAN, hy);
++	CASE(BASQUE, eu);
++	CASE(BELARUSIAN, be);
++	CASE(BENGALI, bn);
++	CASE(BULGARIAN, bg);
++	CASE(ICELANDIC, is);
++	CASE(INDONESIAN, id);
++	// CASE(LAO, lo);
++	CASE(LATVIAN, lv);
++	CASE(LITHUANIAN, lt);
++	// CASE(MALTESE, mt);
++	// CASE(ROMANSH, rm);
++	CASE(ROMANIAN, ro);
++	// CASE(KINYARWANDA, rw);
++	CASE(SANSKRIT, sa);
++	// CASE(SETSWANA, tn);
++	CASE(FARSI, fa);
++	CASE(FAEROESE, fo);
++	CASE(SLOVENIAN, sl);
++	// CASE(SORBIAN, sb);
++	// CASE(SUTU, st);
++	CASE(SWAHILI, sw);
++	CASE(TATAR, tt);
++	// CASE(TSONGA, ts);
++	CASE(UKRAINIAN, uk);
++	CASE(URDU, ur);
++	CASE(VIETNAMESE, vi);
++	// CASE(XHOSA, xh);
++	// CASE(YIDDISH, yi);
++	// CASE(ZULU, zu);
++	CASE(GUJARATI, gu);
++	// CASE(BRETON, br);
++	CASE(NEPALI, ne);
++	// CASE(NDEBELE, nr);
++	// CASE(SWAZI, ss);
++	// CASE(VENDA, ve);
++	// CASE(IRISH, ga);
++	CASE(MACEDONIAN, mk);
++	CASE(TELUGU, te);
++	CASE(MALAYALAM, ml);
++	CASE(MARATHI, mr);
++	CASE(ORIYA, or);
++	// CASE(KURDISH, ku);
++	// CASE(TAGALOG, tg);
++	// CASE(TIGRINYA, ti);
++	CASE(GALICIAN, gl);
++	CASE(KANNADA, kn);
++	CASE(MALAY, ms);
++	// CASE(TAJIK, tg);
++	CASE(GEORGIAN, ka);
++	// CASE(ESPERANTO, eo);
++#undef CASE
++	/* Special cases */
++	default:
++		switch (langid) {
++		case MAKELANGID(LANG_SERBIAN, 0x05): return "bs";
++#define CASE(primary, sub, name) \
++		case MAKELANGID(LANG_##primary, SUBLANG_##sub): return #name
++		
++		CASE(NORWEGIAN, NORWEGIAN_BOKMAL, nb);
++		CASE(NORWEGIAN, NORWEGIAN_NYNORSK, nn);
++		CASE(SERBIAN, DEFAULT, hr);
++		CASE(SERBIAN, SERBIAN_LATIN, sh);
++		CASE(SERBIAN, SERBIAN_CYRILLIC, sr);
++		// CASE(SOTHO, DEFAULT, ns);
++		// CASE(SOTHO, SOTHO_SOUTHERN, st);
++#undef CASE
++		default: return "";
++		}
++	}
++}
++
++static const char *ui_langs[100];
++static int num_ui_langs = 0;
++
++BOOL CALLBACK
++enum_ui_lang_proc (LPTSTR language, LONG_PTR /* unused_lParam */)
++{
++	long langid = strtol(language, NULL, 16);
++	if (langid > 0xFFFF)
++		return TRUE;
++	ui_langs[num_ui_langs] = langid_to_string((LANGID) langid, NULL);
++	num_ui_langs++;
++	if (num_ui_langs == sizeof(ui_langs) / sizeof(ui_langs[0]))
++		return FALSE;
++	return TRUE;
++}
++
++static BOOL
++present_in_ui_langs(const char *lang)
++{
++	for (int i = 0; i < num_ui_langs; i++)
++		if (memcmp (ui_langs[i], lang, 2) == 0)
++			return TRUE;
++	return FALSE;
++}
++
++extern "C" UINT __stdcall SelectLanguage( MSIHANDLE handle )
++{
++#ifdef VERBOSE_DEBUG_OUTPUT
++	char tem[2000];
++#endif
++	char feature[100];
++	MSIHANDLE database, view, record;
++	DWORD length;
++	int nlangs = 0;
++	/* Keeping this code simple and stupid... won't bother with any
++	 * dynamic arrays or whatnot. 100 is more than enough for this purpose.
++	 */
++	char langs[100][6];
++
++	database = MsiGetActiveDatabase(handle);
++
++	if (MsiDatabaseOpenViewA(database, "SELECT Feature from Feature WHERE Feature_Parent = 'gm_Langpack_Base'", &view) != ERROR_SUCCESS) {
++		MsiCloseHandle(database);
++		return ERROR_SUCCESS;
++	}
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++	MessageBoxA(NULL, "MsiDatabaseOpenViewA success!", "SelectLanguage", MB_OK);
++#endif
++
++	if (MsiViewExecute(view, NULL) != ERROR_SUCCESS) {
++		MsiCloseHandle(view);
++		MsiCloseHandle(database);
++		return ERROR_SUCCESS;
++	}
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++	MessageBoxA(NULL, "MsiViewExecute success!", "SelectLanguage", MB_OK);
++#endif
++
++	while (MsiViewFetch(view, &record) == ERROR_SUCCESS) {
++		length = sizeof(feature);
++		if (MsiRecordGetStringA(record, 1, feature, &length) != ERROR_SUCCESS) {
++			MsiCloseHandle(record);
++			MsiCloseHandle(view);
++			MsiCloseHandle(database);
++			return ERROR_SUCCESS;
++		}
++
++		/* Keep track of what languages are included in this installer, if
++		 * it is a multilangiage one.
++		 */
++		if (strcmp(feature, "gm_r_en_US") != 0)
++			strcpy(langs[nlangs++], feature + strlen("gm_r_"));
++
++		MsiCloseHandle(record);
++	}
++
++	MsiCloseHandle(view);
++
++	if (nlangs > 0) {
++		/* Deselect those languages that don't match any of the UI languages
++		 * available on the system.
++		 */
++
++		int i;
++		int have_system_default_lang = 0;
++		const char *system_default_lang = langid_to_string(GetSystemDefaultUILanguage(), &have_system_default_lang);
++		const char *user_locale_lang = langid_to_string(LANGIDFROMLCID(GetThreadLocale()), NULL);
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++		sprintf(tem, "GetSystemDefaultUILanguage(): %#x = %s", GetSystemDefaultUILanguage(), system_default_lang);
++		MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++
++		EnumUILanguagesA(enum_ui_lang_proc, 0, 0);
++
++#ifdef VERBOSE_DEBUG_OUTPUT
++		sprintf(tem, "Have %d UI languages: ", num_ui_langs);
++		for (i = 0; i < num_ui_langs; i++) {
++			char *p = tem + strlen(tem);
++			sprintf(p, "%s%s", 
++			        ui_langs[i],
++			        (i + 1 < num_ui_langs) ? ", " : "");
++		}
++		MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++
++		/* If one of the alternative languages in a multi-language installer
++		 * is the system default UI language, deselect those languages that
++		 * aren't among the UI languages available on the system.
++		 * (On most Windows installations, just one UI language is present,
++		 * which obviously is the same as the default UI language. But
++		 * we want to be generic.)
++		 * If none of the languages in a multi-language installer is the
++		 * system default UI language (this happens now in 2.4.0 where we
++		 * cannot put as many UI languages into the installer as we would
++		 * like, but only half a dozen: en-US,de,es,fr,it,pt-BR), pretend 
++		 * that English is the system default UI language,
++		 * so that we will by default deselect everything except
++		 * English. We don't want to by default install all half dozen
++		 * languages for an unsuspecting user of a Finnish Windows, for
++		 * instance. Sigh.
++		 */
++		if (system_default_lang[0]) {
++			for (i = 0; i < nlangs; i++) {
++				if (memcmp (system_default_lang, langs[i], 2) == 0) {
++#ifdef VERBOSE_DEBUG_OUTPUT
++					sprintf(tem, "We have the system default language %s in the installer", system_default_lang);
++					MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++					have_system_default_lang = 1;
++				}
++			}
++		}
++
++		if (!have_system_default_lang) {
++#ifdef VERBOSE_DEBUG_OUTPUT
++			sprintf(tem, "We don't have the system default language %s in the installer, so pretend that English is the system default, sigh.", system_default_lang);
++			MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++			system_default_lang = "en";
++			have_system_default_lang = 1;
++		}
++		if (have_system_default_lang) {
++			for (i = 0; i < nlangs; i++) {
++				if (memcmp(system_default_lang, langs[i], 2) != 0 &&
++					memcmp(user_locale_lang, langs[i], 2) != 0 &&
++					!present_in_ui_langs(langs[i])) {
++					UINT rc;
++					sprintf(feature, "gm_r_%s", langs[i]);
++					rc = MsiSetFeatureStateA(handle, feature, INSTALLSTATE_ABSENT); 
++					if (rc != ERROR_SUCCESS) {
++#ifdef VERBOSE_DEBUG_OUTPUT
++						sprintf(tem, "MsiSetFeatureStateA %s failed: %d", feature, rc);
++						MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++					} else {
++#ifdef VERBOSE_DEBUG_OUTPUT
++						sprintf(tem, "MsiSetFeatureStateA %s OK!", feature);
++						MessageBoxA(NULL, tem, "SelectLanguage", MB_OK);
++#endif
++					}
++				}
++			}
++		}
++	}
++
++	MsiCloseHandle(database);
++
++	return ERROR_SUCCESS;
++}
+--- solenv/bin/modules/installer/download.pm
++++ solenv/bin/modules/installer/download.pm
+@@ -807,9 +807,7 @@
+ 	
+ 	my $productpath = $variableshashref->{'PROPERTYTABLEPRODUCTNAME'};
+ 	
+-	my $locallangs = $$languagestringref;
+-	$locallangs =~ s/_/ /g;
+-	if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . $locallangs . ")"; }
++	if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . sprintf('%x', time()) . ")"; }
+ 	
+ 	replace_one_variable($templatefile, "PRODUCTPATHPLACEHOLDER", $productpath);
+ }
+@@ -1140,11 +1140,12 @@
+ 
+ sub translate_nsh_nlf_file
+ {
+-	my ($nshfile, $nlffile, $mlffile, $onelanguage, $nshfilename, $nlffilename) = @_;
++	my ($nshfile, $nlffile, $mlffile, $onelanguage, $nshfilename, $nlffilename, $nsislanguage) = @_;
+ 
+ 	# Analyzing the mlf file, collecting all Identifier
+ 	my $allidentifier = get_identifier($mlffile);
+ 	
++	$onelanguage = 'en-US' if ($nsislanguage eq 'English' && $onelanguage ne 'en-US');
+ 	for ( my $i = 0; $i <= $#{$allidentifier}; $i++ )
+ 	{
+ 		my $identifier = ${$allidentifier}[$i];
+@@ -1195,7 +1196,7 @@
+ 		
+ 		# Translate the files
+ 		my $nlffile = installer::files::read_file($nlffilename);
+-		translate_nsh_nlf_file($nshfile, $nlffile, $mlffile, $onelanguage, $nshfilename, $nlffilename);
++		translate_nsh_nlf_file($nshfile, $nlffile, $mlffile, $onelanguage, $nshfilename, $nlffilename, $nsislanguage);
+ 		
+ 		installer::files::save_file($nshfilename, $nshfile);
+ 		installer::files::save_file($nlffilename, $nlffile);
+--- solenv/bin/modules/installer/windows/file.pm
++++ solenv/bin/modules/installer/windows/file.pm
+@@ -242,6 +242,10 @@
+ 	$componentname =~ s/_basicidecommands_/_baic_/g;
+ 	$componentname =~ s/_genericcommands_/_genc_/g;
+ 	$componentname =~ s/_bibliographycommands_/_bibc_/g;
++	$componentname =~ s/_share_/_s_/g;
++	$componentname =~ s/_modules_/_ms_/g;
++	$componentname =~ s/_uiconfig_zip_/_ucz_/g;
++	$componentname =~ s/_soffice_cfg_/_sc_/g;
+ 
+ 	# All this is not necessary for files, which have the flag ASSIGNCOMPOMENT
+ 	
+--- instsetoo_native/util/makefile.mk
++++ instsetoo_native/util/makefile.mk
+@@ -222,7 +222,7 @@
+ openoffice_% :
+ .ENDIF			# "$(PKGFORMAT)"!=""
+ 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH))
+-	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
++	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
+ 
+ .IF "$(PKGFORMAT)"!=""
+ $(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")}
+@@ -250,7 +250,7 @@
+ openofficedev_% :
+ .ENDIF			# "$(PKGFORMAT)"!=""
+ 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH))
+-	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
++	$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
+ 
+ openofficedevarchive_% :
+ 	$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format archive
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/warning-return-values-stlport.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/warning-return-values-stlport.diff
@@ -0,0 +1,18 @@
+--- stlport/STLport-4.5.patch	2007-03-26 16:20:10.000000000 +0200
++++ stlport/STLport-4.5.patch	2007-06-01 10:58:51.000000000 +0200
+@@ -1068,3 +1068,15 @@
+   #ifndef _STLP_CMATH
+   #include <cmath>
+   #endif
++*** misc/STLport-4.5/stlport/stl/_fstream.c	2001-07-06 06:16:17.000000000 +0200
++--- misc/build/STLport-4.5/stlport/stl/_fstream.c	2007-06-01 10:57:07.000000000 +0200
++***************
++*** 379,384 ****
++--- 379,385 ----
++    }
++    else
++      return pos_type(-1);
+++   return pos_type(-1);
++  }
++  
++  
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-toggle-merge-center.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-toggle-merge-center.diff
@@ -0,0 +1,241 @@
+diff --git sc/source/ui/docshell/docfunc.cxx sc/source/ui/docshell/docfunc.cxx
+index 5a8f68c..34720ec 100644
+--- sc/source/ui/docshell/docfunc.cxx
++++ sc/source/ui/docshell/docfunc.cxx
+@@ -3436,7 +3436,7 @@ BOOL ScDocFunc::FillAuto( ScRange& rRange, const ScMarkData* pTabMark, FillDir e
+ 
+ //------------------------------------------------------------------------
+ 
+-BOOL ScDocFunc::MergeCells( const ScRange& rRange, BOOL bContents, BOOL bRecord, BOOL bApi )
++BOOL ScDocFunc::MergeCells( const ScRange& rRange, BOOL bContents, BOOL bRecord, BOOL bApi, BOOL bCenter )
+ {
+ 	ScDocShellModificator aModificator( rDocShell );
+ 
+@@ -3480,7 +3480,7 @@ BOOL ScDocFunc::MergeCells( const ScRange& rRange, BOOL bContents, BOOL bRecord,
+ 	if (bRecord)
+ 	{
+ 		ScDocument* pUndoDoc = NULL;
+-		if (bNeedContents && bContents)
++		if ( (bNeedContents && bContents) || bCenter )
+ 		{
+ 			pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ 			pUndoDoc->InitUndo( pDoc, nTab, nTab );
+@@ -3490,17 +3490,23 @@ BOOL ScDocFunc::MergeCells( const ScRange& rRange, BOOL bContents, BOOL bRecord,
+ 		rDocShell.GetUndoManager()->AddUndoAction(
+ 			new ScUndoMerge( &rDocShell,
+ 							nStartCol, nStartRow, nTab,
+-							nEndCol, nEndRow, nTab, TRUE, pUndoDoc ) );
++							nEndCol, nEndRow, nTab, TRUE, pUndoDoc, bCenter) );
+ 	}
+ 
+ 	if (bNeedContents && bContents)
+ 		pDoc->DoMergeContents( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
+ 	pDoc->DoMerge( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
++	
++	if (bCenter)
++	{
++		pDoc->ApplyAttr( nStartCol, nStartRow, nTab, SvxHorJustifyItem( SVX_HOR_JUSTIFY_CENTER, ATTR_HOR_JUSTIFY ) );
++		pDoc->ApplyAttr( nStartCol, nStartRow, nTab, SvxVerJustifyItem( SVX_VER_JUSTIFY_CENTER, ATTR_VER_JUSTIFY ) );
++	}
+ 
+ 	if ( !AdjustRowHeight( ScRange( 0,nStartRow,nTab, MAXCOL,nEndRow,nTab ) ) )
+ 		rDocShell.PostPaint( nStartCol, nStartRow, nTab,
+ 											nEndCol, nEndRow, nTab, PAINT_GRID );
+-	if (bNeedContents && bContents)
++	if ( (bNeedContents && bContents) || bCenter )
+ 		pDoc->SetDirty( rRange );
+ 	aModificator.SetDocumentModified();
+ 
+diff --git sc/source/ui/inc/docfunc.hxx sc/source/ui/inc/docfunc.hxx
+index b2b7a57..be2a7e5 100644
+--- sc/source/ui/inc/docfunc.hxx
++++ sc/source/ui/inc/docfunc.hxx
+@@ -169,7 +169,7 @@ public:
+ 	BOOL			ResizeMatrix( const ScRange& rOldRange, const ScAddress& rNewEnd, BOOL bApi );
+ 
+ 	BOOL			MergeCells( const ScRange& rRange, BOOL bContents,
+-								BOOL bRecord, BOOL bApi );
++								BOOL bRecord, BOOL bApi, BOOL bCenter );
+ 	BOOL			UnmergeCells( const ScRange& rRange, BOOL bRecord, BOOL bApi );
+ 
+ 	BOOL			SetNote( const ScAddress& rPos, const ScPostIt& rNote, BOOL bApi );
+diff --git sc/source/ui/inc/undoblk.hxx sc/source/ui/inc/undoblk.hxx
+index 42b4097..06c1feb 100644
+--- sc/source/ui/inc/undoblk.hxx
++++ sc/source/ui/inc/undoblk.hxx
+@@ -464,7 +464,8 @@ public:
+ 					ScUndoMerge( ScDocShell* pNewDocShell,
+ 								 SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
+ 								 SCCOL nEndX,   SCROW nEndY,   SCTAB nEndZ,
+-								 BOOL bNewDoMerge, ScDocument* pNewUndoDoc = NULL );
++								 BOOL bNewDoMerge, ScDocument* pNewUndoDoc = NULL,
++								 BOOL bNewCenter = FALSE );
+ 	virtual 		~ScUndoMerge();
+ 
+ 	virtual void	Undo();
+@@ -478,6 +479,7 @@ private:
+ 	ScRange			aRange;
+ 	BOOL			bDoMerge;				// Merge oder aufheben
+ 	ScDocument*		pUndoDoc;				// wenn Daten zusammengefasst
++	BOOL			bCenter;
+ 
+ 	void			DoChange( const BOOL bUndo ) const;
+ };
+diff --git sc/source/ui/inc/viewfunc.hxx sc/source/ui/inc/viewfunc.hxx
+index 43288de..71ed0d0 100644
+--- sc/source/ui/inc/viewfunc.hxx
++++ sc/source/ui/inc/viewfunc.hxx
+@@ -249,7 +249,7 @@ public:
+ 	BOOL			TestMergeCells();
+ 	BOOL			TestRemoveMerge();
+ 
+-	BOOL			MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord = TRUE );
++	BOOL			MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord = TRUE, BOOL bCenter = FALSE );
+ 	BOOL			RemoveMerge( BOOL bRecord = TRUE );
+ 
+ 	void			FillSimple( FillDir eDir, BOOL bRecord = TRUE );
+diff --git sc/source/ui/undo/undoblk3.cxx sc/source/ui/undo/undoblk3.cxx
+index d0a5c5e..8e35362 100644
+--- sc/source/ui/undo/undoblk3.cxx
++++ sc/source/ui/undo/undoblk3.cxx
+@@ -39,6 +39,7 @@
+ // INCLUDE -------------------------------------------------------------------
+ 
+ #include "scitems.hxx"
++#include <svx/algitem.hxx>
+ #include <svx/boxitem.hxx>
+ #include <svx/srchitem.hxx>
+ #include <svx/linkmgr.hxx>
+@@ -812,13 +813,15 @@ BOOL __EXPORT ScUndoAutoFill::CanRepeat(SfxRepeatTarget& rTarget) const
+ ScUndoMerge::ScUndoMerge( ScDocShell* pNewDocShell,
+ 							SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
+ 							SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
+-							BOOL bNewDoMerge, ScDocument* pNewUndoDoc )
++							BOOL bNewDoMerge, ScDocument* pNewUndoDoc,
++							BOOL bNewCenter )
+ 		//
+ 	:	ScSimpleUndo( pNewDocShell ),
+ 		//
+ 		aRange	( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ),
+ 		bDoMerge( bNewDoMerge ),
+-		pUndoDoc( pNewUndoDoc )
++		pUndoDoc( pNewUndoDoc ),
++		bCenter ( bNewCenter )
+ {
+ }
+ 
+@@ -865,9 +868,20 @@ void ScUndoMerge::DoChange( const BOOL bUndo ) const
+ 			pUndoDoc->CopyToDocument( aRange, IDF_ALL, FALSE, pDoc );
+ 		}
+ 		else
++		{
+ /*!*/		pDoc->DoMergeContents( aRange.aStart.Tab(),
+ 								   aRange.aStart.Col(), aRange.aStart.Row(),
+ 								   aRange.aEnd.Col(),   aRange.aEnd.Row()   );
++			if (bCenter)
++			{
++				pDoc->ApplyAttr( aRange.aStart.Col(), aRange.aStart.Row(),
++								 aRange.aStart.Tab(),
++								 SvxHorJustifyItem( SVX_HOR_JUSTIFY_CENTER, ATTR_HOR_JUSTIFY ) );
++				pDoc->ApplyAttr( aRange.aStart.Col(), aRange.aStart.Row(),
++								 aRange.aStart.Tab(),
++								 SvxVerJustifyItem( SVX_VER_JUSTIFY_CENTER, ATTR_VER_JUSTIFY ) );
++			}
++		}
+ 
+ 	BOOL bDidPaint = FALSE;
+ 	ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+diff --git sc/source/ui/unoobj/cellsuno.cxx sc/source/ui/unoobj/cellsuno.cxx
+index 930cf19..e825ea9 100644
+--- sc/source/ui/unoobj/cellsuno.cxx
++++ sc/source/ui/unoobj/cellsuno.cxx
+@@ -5360,7 +5360,7 @@ void SAL_CALL ScCellRangeObj::merge( sal_Bool bMerge ) throw(uno::RuntimeExcepti
+ 	{
+ 		ScDocFunc aFunc(*pDocSh);
+ 		if ( bMerge )
+-			aFunc.MergeCells( aRange, FALSE, TRUE, TRUE );
++			aFunc.MergeCells( aRange, FALSE, TRUE, TRUE, FALSE );
+ 		else
+ 			aFunc.UnmergeCells( aRange, TRUE, TRUE );
+ 
+diff --git sc/source/ui/view/cellsh3.cxx sc/source/ui/view/cellsh3.cxx
+index d0431c6..7cc1eb4 100644
+--- sc/source/ui/view/cellsh3.cxx
++++ sc/source/ui/view/cellsh3.cxx
+@@ -758,6 +758,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
+             {
+                 // test whether to merge or to split
+                 bool bMerge = false;
++                BOOL bCenter = FALSE;
+                 switch( nSlot )
+                 {
+                     case FID_MERGE_ON:
+@@ -768,6 +769,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
+                     break;
+                     case FID_MERGE_TOGGLE:
+                     {
++                        bCenter = TRUE;
+                         SfxPoolItem* pItem = 0;
+                         if( rBindings.QueryState( nSlot, pItem ) >= SFX_ITEM_DEFAULT )
+                             bMerge = !static_cast< SfxBoolItem* >( pItem )->GetValue();
+@@ -788,7 +790,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
+                         bMoveContents = ((const SfxBoolItem*)pItem)->GetValue();
+                     }
+ 
+-                    if (pTabViewShell->MergeCells( bApi, bMoveContents ))
++                    if (pTabViewShell->MergeCells( bApi, bMoveContents, TRUE, bCenter ))
+                     {
+                         if (!bApi && bMoveContents)             // "ja" im Dialog geklickt
+                             rReq.AppendItem( SfxBoolItem( nSlot, bMoveContents ) );
+diff --git sc/source/ui/view/viewfun2.cxx sc/source/ui/view/viewfun2.cxx
+index 3e123c4..b1c289b 100644
+--- sc/source/ui/view/viewfun2.cxx
++++ sc/source/ui/view/viewfun2.cxx
+@@ -1086,7 +1086,7 @@ BOOL ScViewFunc::TestMergeCells()			// Vorab-Test (fuer Menue)
+ 
+ //----------------------------------------------------------------------------
+ 
+-BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord )
++BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord, BOOL bCenter )
+ {
+ 	//	Editable- und Verschachtelungs-Abfrage muss vorneweg sein (auch in DocFunc),
+ 	//	damit dann nicht die Inhalte-QueryBox kommt
+@@ -1154,7 +1154,7 @@ BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord )
+ 	if (bOk)
+ 	{
+ 		HideCursor();
+-		bOk = pDocSh->GetDocFunc().MergeCells( aMarkRange, rDoContents, bRecord, bApi );
++		bOk = pDocSh->GetDocFunc().MergeCells( aMarkRange, rDoContents, bRecord, bApi, bCenter );
+ 		ShowCursor();
+ 
+ 		if (bOk)
+diff --git sc/uiconfig/scalc/menubar/menubar.xml sc/uiconfig/scalc/menubar/menubar.xml
+index 5bced00..db8ace6 100644
+--- sc/uiconfig/scalc/menubar/menubar.xml
++++ sc/uiconfig/scalc/menubar/menubar.xml
+@@ -217,7 +217,13 @@
+                     <menu:menuitem menu:id=".uno:SheetRightToLeft"/>
+                 </menu:menupopup>
+             </menu:menu>
+-            <menu:menuitem menu:id=".uno:ToggleMergeCells"/>
++            <menu:menu menu:id=".uno:MergeCellsMenu">
++                <menu:menupopup>
++                    <menu:menuitem menu:id=".uno:ToggleMergeCells"/>
++                    <menu:menuitem menu:id=".uno:MergeCells"/>
++                    <menu:menuitem menu:id=".uno:SplitCell"/>
++                </menu:menupopup>
++            </menu:menu>
+             <menu:menuseparator/>
+             <menu:menuitem menu:id=".uno:PageFormatDialog"/>
+             <menu:menu menu:id=".uno:PrintRangesMenu">
+--- officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2006-07-03 14:43:29.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2006-07-03 16:44:14.000000000 +0200
+@@ -1009,7 +1009,7 @@
+ 			</node>
+ 			<node oor:name=".uno:ToggleMergeCells" oor:op="replace">
+ 				<prop oor:name="Label" oor:type="xs:string">
+-					<value xml:lang="en-US">M~erge Cells</value>
++					<value xml:lang="en-US">M~erge and Center Cells</value>
+ 				</prop>
+ 				<prop oor:name="Properties" oor:type="xs:int">
+ 					<value>1</value>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-lpsolve-use-_pic.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-lpsolve-use-_pic.diff
@@ -0,0 +1,14 @@
+--- solenv/inc/libs.mk-old 2006-07-28 01:06:26.000000000 +0000
++++ solenv/inc/libs.mk     2006-07-28 01:07:12.000000000 +0000
+@@ -254,7 +254,11 @@
+ .ELSE
+ JVMFWKLIB = -ljvmfwk
+ .ENDIF                  # "$(GUI)$(COM)"=="WNTGCC"
++.IF "$(SYSTEM_LPSOLVE)" == "YES"
++LPSOLVELIB = -llpsolve55_pic
++.ELSE
+ LPSOLVELIB = -llpsolve55
++.ENDIF
+
+ # #110743#
+ # For BinFilters, some libs were added.
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/save-doc-withembedded-doc-with-vba-crash.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/save-doc-withembedded-doc-with-vba-crash.diff
@@ -0,0 +1,45 @@
+Index: sw/source/ui/app/docsh.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/app/docsh.cxx,v
+retrieving revision 1.71.24.1
+diff -u -p -r1.71.24.1 docsh.cxx
+--- sw/source/ui/app/docsh.cxx	17 Aug 2007 07:10:07 -0000	1.71.24.1
++++ sw/source/ui/app/docsh.cxx	14 Nov 2007 12:12:36 -0000
+@@ -642,16 +642,6 @@ sal_Bool SwDocShell::SaveAs( SfxMedium& 
+             xDocSh->DoClose();
+ 		}
+ 
+-        if( pDoc->ContainsMSVBasic() )
+-        {
+-            //TODO/MBA: it looks as that this code can be removed!
+-            //SvxImportMSVBasic aTmp( *this, pIo->GetStorage() );
+-            //aTmp.SaveOrDelMSVBAStorage( FALSE, aEmptyStr );
+-            if( SvtFilterOptions::Get()->IsLoadWordBasicStorage() )
+-                nVBWarning = SvxImportMSVBasic::
+-                                GetSaveWarningOfMSVBAStorage( *this );
+-            pDoc->SetContainsMSVBasic( FALSE );
+-        }
+ 
+ 		// TabellenBox Edit beenden!
+ 		if( pWrtShell )
+Index: svx/source/msfilter/msoleexp.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/msoleexp.cxx,v
+retrieving revision 1.20
+diff -u -p -r1.20 msoleexp.cxx
+--- svx/source/msfilter/msoleexp.cxx	27 Jun 2007 18:35:44 -0000	1.20
++++ svx/source/msfilter/msoleexp.cxx	14 Nov 2007 12:19:05 -0000
+@@ -272,7 +272,12 @@ void SvxMSExportOLEObjects::ExportOLEObj
+         aSeq[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterName" ) );
+         aSeq[1].Value <<= ::rtl::OUString( pExpFilter->GetName() );
+         uno::Reference < frame::XStorable > xStor( rObj->getComponent(), uno::UNO_QUERY );
+-        xStor->storeToURL( ::rtl::OUString::createFromAscii( "private:stream" ), aSeq );
++        try
++        {
++            xStor->storeToURL( ::rtl::OUString::createFromAscii( "private:stream" ), aSeq );
++        }
++        catch( uno::Exception& ) {} // #TODO really handle exceptions - interactionalhandler etc. ? 
++        
+         SotStorageRef xOLEStor = new SotStorage( pStream, TRUE );
+         xOLEStor->CopyTo( &rDestStg );
+         rDestStg.Commit();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/help-msg-add-package-info.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/help-msg-add-package-info.diff
@@ -0,0 +1,11 @@
+--- sfx2/source/appl/sfxhelp.cxx~	2006-02-15 02:53:15.839949000 +0100
++++ sfx2/source/appl/sfxhelp.cxx	2006-02-15 02:55:01.389949000 +0100
+@@ -151,7 +151,7 @@
+ 
+ NoHelpErrorBox::NoHelpErrorBox( Window* _pParent ) :
+ 
+-    ErrorBox( _pParent, WB_OK, String( SfxResId( RID_STR_HLPFILENOTEXIST ) ) )
++    ErrorBox( _pParent, WB_OK, String( SfxResId( RID_STR_HLPFILENOTEXIST ) ).Append(String(DEFINE_CONST_UNICODE(".\nPlease install the openoffice.org-help-en-us package or the locale specific help package openoffice.org-help-<language-code>."))) )
+ {
+     // Error message: "No help available"
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcj-HelpLinker-no-NullPointerException.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcj-HelpLinker-no-NullPointerException.diff
@@ -0,0 +1,15 @@
+--- xmlhelp/source/com/sun/star/help/makefile.mk.ark	2006-03-02 17:29:27.000000000 +0000
++++ xmlhelp/source/com/sun/star/help/makefile.mk	2006-03-02 17:31:26.000000000 +0000
+@@ -115,6 +115,12 @@
+ 	$(JAVABINCOMPILER) --main=com.sun.star.help.HelpLinker -o $(BIN)$/HelpLinker \
+ 		-O2 -Wl,-Bsymbolic -findirect-dispatch -fjni -fno-assert -Wno-deprecated \
+ 		$(JAVACPS) $(CLASSPATH) $(JAVAFILES) $(SOLARLIB) -L$(LB) \
++		-Djavax.xml.datatype.DatatypeFactory=org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl \
++		-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
++		-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
++		-Djavax.xml.validation.SchemaFactory=org.apache.xerces.jaxp.validation.XMLSchemaFactory \
++		-Dorg.w3c.dom.DOMImplementationSourceList=org.apache.xerces.dom.DOMXSImplementationSourceImpl \
++		-Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser \
+ 		-ldb.jar -lxmlsearch.jar -lxt.jar -lunoil.jar -ljurt.jar -lridl.jar -lxt-xmlsearch.jar
+ 
+ .IF "$(SYSTEM_DB)"=="YES"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-no-registration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-no-registration.diff
@@ -0,0 +1,22 @@
+Index: officecfg/registry/data/org/openoffice/Office/Jobs.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Jobs.xcu,v
+retrieving revision 1.7
+diff -u -p -u -r1.7 Jobs.xcu
+--- officecfg/registry/data/org/openoffice/Office/Jobs.xcu	15 Nov 2004 15:05:43 -0000	1.7
++++ officecfg/registry/data/org/openoffice/Office/Jobs.xcu	10 Dec 2004 09:37:59 -0000
+@@ -69,14 +69,5 @@
+     </node>
+   </node>
+   <node oor:name="Events">
+-    <node oor:name="onFirstVisibleTask" oor:op="fuse">
+-      <node oor:name="JobList">
+-        <node oor:name="RegistrationRequest" oor:op="replace">
+-            <prop oor:name="UserTime">
+-                <value>2003-01-01T00:00:00+00:01</value>
+-            </prop>
+-        </node>
+-      </node>
+-    </node>
+   </node>
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sot.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sot.diff
@@ -0,0 +1,15 @@
+--- sot/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sot/prj/tests.lst	2007-09-07 11:57:30.000000000 +0200
+@@ -0,0 +1 @@
++to   sot\workben                                        nmake - all to_workben sot_ut NULL
+--- sot/workben/testsot.cxx	2007-06-28 00:50:39.000000000 +0200
++++ sot/workben/testsot.cxx	2007-09-07 11:56:57.000000000 +0200
+@@ -43,7 +43,7 @@
+  */
+ int main (int argc, sal_Char **argv)
+ {
+- 	SotStorageRef xStor = new SotStorage( "c:\\temp\\65254.ppt" );
++ 	SotStorageRef xStor = new SotStorage( String::CreateFromAscii( "c:\\temp\\65254.ppt" ) );
+ /*
+ 	SotStorageRef xStor = new SotStorage( "c:\\temp\\video.sdb" );
+ 	SotStorageRef xStor = new SotStorage( "c:\\temp\\video.sdb" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-vsync.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-vsync.diff
@@ -0,0 +1,66 @@
+diff -rup slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx	2008-02-22 16:17:57.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-02-22 17:33:19.000000000 +0100
+@@ -33,6 +33,7 @@
+  *
+  ************************************************************************/
+ 
++#define GLX_GLXEXT_PROTOTYPES 1
+ #include "OGLTrans_TransitionImpl.hxx"
+ 
+ #include <com/sun/star/rendering/IntegerBitmapLayout.hpp>
+@@ -67,6 +68,7 @@ namespace unx
+ {
+ #include <X11/keysym.h>
+ #include <GL/glx.h>
++#include <GL/glxext.h>
+ }
+ 
+ using namespace ::com::sun::star;
+@@ -114,6 +116,9 @@ private:    
+     	unsigned int			bpp;
+     	unsigned int            Width;
+     	unsigned int            Height;
++        const char*             GLXExtensions;
++
++        bool HasGLXExtension( const char* name ) { return gluCheckExtension( (const GLubyte*) name, (const GLubyte*) GLXExtensions ); };
+     } GLWin;
+     
+     /** OpenGL handle to the leaving slide's texture
+@@ -256,8 +261,7 @@ void OGLTransitionerImpl::initWindowFrom
+ 
+     if( pWindow )
+     {
+-        OSL_TRACE("OGLTrans: using VisualID %08X\n",
+-                  vi->visualid);
++        OSL_TRACE("OGLTrans: using VisualID %08X\n", vi->visualid);
+ 
+         pWindow->SetMouseTransparent( TRUE );
+         pWindow->SetParentClipMode( PARENTCLIPMODE_NOCLIP );
+@@ -269,6 +273,8 @@ void OGLTransitionerImpl::initWindowFrom
+ 
+         GLWin.dpy = reinterpret_cast<unx::Display*>(pChildSysData->pDisplay);
+         GLWin.win = pChildSysData->aWindow;
++        GLWin.GLXExtensions = unx::glXQueryExtensionsString( GLWin.dpy, GLWin.screen );
++        OSL_TRACE("available GLX extensions: %s", GLWin.GLXExtensions);
+     }
+ 
+     GLWin.ctx = glXCreateContext(GLWin.dpy,
+@@ -277,6 +283,16 @@ void OGLTransitionerImpl::initWindowFrom
+                                  GL_TRUE);
+     glXMakeCurrent( GLWin.dpy, GLWin.win, GLWin.ctx );
+ 
++    if(GLWin.HasGLXExtension("GLX_SGI_swap_control")) {
++        // enable vsync
++        typedef GLint (*glXSwapIntervalProc)(GLint);
++        glXSwapIntervalProc glXSwapInterval = (glXSwapIntervalProc) unx::glXGetProcAddress( (const GLubyte*) "glXSwapIntervalSGI" );
++        if( glXSwapInterval ) {
++            glXSwapInterval( 1 );
++            OSL_TRACE("set swap interval to 1 (enable vsync)");
++        }
++    }
++
+     /* TODO: check for version once the bug in fglrx driver is fixed */
+     bBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
+ 
+Only in slideshow/source/engine/OGLTrans: OGLTrans_TransitionerImpl.o
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-solenv.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-solenv.diff
@@ -0,0 +1,54 @@
+cvs diff: Diffing solenv
+cvs diff: Diffing solenv/bin
+cvs diff: Diffing solenv/bin/modules
+cvs diff: Diffing solenv/bin/modules/PCVSLib
+cvs diff: Diffing solenv/bin/modules/PCVSLib/lib
+cvs diff: Diffing solenv/bin/modules/PCVSLib/lib/PCVSLib
+cvs diff: Diffing solenv/bin/modules/PCVSLib/samples
+cvs diff: Diffing solenv/bin/modules/PCVSLib/t
+cvs diff: Diffing solenv/bin/modules/installer
+cvs diff: Diffing solenv/bin/modules/installer/windows
+cvs diff: Diffing solenv/bin/modules/packager
+cvs diff: Diffing solenv/bin/modules/par2script
+cvs diff: Diffing solenv/bin/modules/pre2par
+cvs diff: Diffing solenv/config
+cvs diff: Diffing solenv/inc
+Index: solenv/inc/libs.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/libs.mk,v
+retrieving revision 1.124
+retrieving revision 1.124.34.1
+diff -p -u -u -p -b -w -B -r1.124 -r1.124.34.1
+--- solenv/inc/libs.mk	10 Jan 2008 13:02:36 -0000	1.124
++++ solenv/inc/libs.mk	13 Feb 2008 12:20:37 -0000	1.124.34.1
+@@ -155,6 +155,7 @@ FREETYPELIBST=$(STATIC) -lfreetype $(DYN
+ .ENDIF
+ PSPLIB=-lpsp$(OFFICEUPD)$(DLLPOSTFIX)
+ TKLIB=-ltk$(OFFICEUPD)$(DLLPOSTFIX)
++LAYOUTLIB=-ltklayout$(OFFICEUPD)$(DLLPOSTFIX)
+ SVTOOLLIB=-lsvt$(OFFICEUPD)$(DLLPOSTFIX)
+ .IF "$(GUI)$(COM)"=="WNTGCC"
+ XMLSECLIB=-lxmlsec1-1
+@@ -450,6 +451,7 @@ CPPCANVASLIB=icppcanvas.lib
+ AGGLIB=iagg.lib
+ PSPLIB=apsp.lib
+ TKLIB=itk.lib
++LAYOUTLIB=itklayout.lib
+ SVXLLIB=svxl.lib
+ FREETYPELIB=freetype.lib
+ FREETYPELIBST=freetype.lib
+cvs diff: Diffing solenv/inc/startup
+cvs diff: Diffing solenv/inc/startup/AIX
+cvs diff: Diffing solenv/inc/startup/FREEBSD
+cvs diff: Diffing solenv/inc/startup/HPUX
+cvs diff: Diffing solenv/inc/startup/IRIX
+cvs diff: Diffing solenv/inc/startup/LINUX
+cvs diff: Diffing solenv/inc/startup/MACOSX
+cvs diff: Diffing solenv/inc/startup/NETBSD
+cvs diff: Diffing solenv/inc/startup/SOLARIS
+cvs diff: Diffing solenv/inc/startup/UNIX
+cvs diff: Diffing solenv/inc/startup/wnt
+cvs diff: Diffing solenv/prj
+cvs diff: Diffing solenv/src
+cvs diff: Diffing solenv/unxmacxp
+cvs diff: Diffing solenv/unxmacxp/inc
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-dtrans.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-dtrans.diff
@@ -0,0 +1,6 @@
+--- dtrans/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ dtrans/prj/tests.lst	2007-09-07 11:58:17.000000000 +0200
+@@ -0,0 +1,3 @@
++dr   dtrans\source\test                                 nmake - all dr_source_test NULL
++dr   dtrans\source\win32\workbench                      nmake - w   dr_source_win32_workbench NULL
++dr   dtrans\test\win32\dnd                              nmake - w   dr_test_win32_dnd NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-offapi.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-offapi.diff
@@ -0,0 +1,4 @@
+--- offapi/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ offapi/prj/tests.lst	2007-09-07 08:12:53.000000000 +0200
+@@ -0,0 +1 @@
++oa   offapi\com\sun\star\deployment\test                nmake - all oa_com_sun_star_deployment_test NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-system-fpicker.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-system-fpicker.diff
@@ -0,0 +1,18 @@
+Index: officecfg/registry/data/org/openoffice/Office/Common.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
+retrieving revision 1.31
+diff -u -p -u -r1.31 Common.xcu
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu	23 Mar 2005 10:53:46 -0000	1.31
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu	6 Apr 2005 09:58:37 -0000
+@@ -593,8 +593,8 @@
+     </node>
+   </node>
+   <node oor:name="Misc">
+-    <prop oor:name="UseSystemFileDialog"  install:module="UseOOoFileDialogs">
+-      <value>false</value>
++    <prop oor:name="UseSystemFileDialog"  install:module="UseOOoFileDialogs"> <!-- safe -->
++      <value>true</value>
+     </prop>
+   </node>
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/desktop-cmdhelp-stdout.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/desktop-cmdhelp-stdout.diff
@@ -0,0 +1,28 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=desktop.vpj desktop.clean/source/app/cmdlinehelp.cxx desktop/source/app/cmdlinehelp.cxx
+--- desktop.clean/source/app/cmdlinehelp.cxx	2008-02-07 22:11:46.000000000 -0500
++++ desktop/source/app/cmdlinehelp.cxx	2008-02-07 22:23:07.000000000 -0500
+@@ -143,18 +143,19 @@ namespace desktop
+ 		aHelpMessage_head.SearchAndReplaceAscii( "%CMDNAME", String( "soffice", RTL_TEXTENCODING_ASCII_US) );
+ #ifdef UNX
+ 		// on unix use console for output
+-		fprintf(stderr, "%s\n", ByteString(aHelpMessage_head,
+-					RTL_TEXTENCODING_ASCII_US).GetBuffer());
++        FILE* fs = stdout;
++        fprintf(fs, "%s\n", ByteString(aHelpMessage_head,
++                    RTL_TEXTENCODING_ASCII_US).GetBuffer());
+ 		// merge left and right column
+ 		int n = aHelpMessage_left.GetTokenCount ('\n');
+ 		ByteString bsLeft(aHelpMessage_left, RTL_TEXTENCODING_ASCII_US);
+ 		ByteString bsRight(aHelpMessage_right, RTL_TEXTENCODING_ASCII_US);
+ 		for ( int i = 0; i < n; i++ )
+ 		{
+-			fprintf(stderr, "%s", bsLeft.GetToken(i, '\n').GetBuffer());
+-			fprintf(stderr, "%s\n", bsRight.GetToken(i, '\n').GetBuffer());
++            fprintf(fs, "%s", bsLeft.GetToken(i, '\n').GetBuffer());
++            fprintf(fs, "%s\n", bsRight.GetToken(i, '\n').GetBuffer());
+ 		}
+-		fprintf(stderr, "%s", ByteString(aHelpMessage_bottom,
++        fprintf(fs, "%s", ByteString(aHelpMessage_bottom,
+                     RTL_TEXTENCODING_ASCII_US).GetBuffer());
+ #else
+ 		// rest gets a dialog box
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-t602import01-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-t602import01-scp2.diff
@@ -0,0 +1,29 @@
+--- scp2/source/ooo/file_library_ooo.scp	26 Mar 2007 14:30:18 -0000	1.227
++++ scp2/source/ooo/file_library_ooo.scp	13 Apr 2007 08:44:50 -0000	1.227.4.2
+@@ -1371,6 +1371,8 @@ End
+ 
+ STD_UNO_LIB_FILE_PATCH(gid_File_Lib_Msworks,msworks)
+
++STD_UNO_LIB_FILE_PATCH(gid_File_Lib_T602Filter,t602filter)
++
+ #if !defined(MACOSX) && ( !defined(SYSTEM_MOZILLA) && !defined(WITHOUT_MOZILLA) )
+ 
+ File gid_File_Lib_Mozabdrv
+--- scp2/source/ooo/file_resource_ooo.scp	23 Jan 2007 08:09:31 -0000	1.50
++++ scp2/source/ooo/file_resource_ooo.scp	13 Apr 2007 08:44:51 -0000	1.50.76.1
+@@ -156,3 +156,5 @@ STD_RES_FILE_PATCH( gid_File_Res_XMLSecu
+ 
+ STD_RES_FILE_PATCH( gid_File_Res_UpdChk, updchk )
+ 
++STD_RES_FILE_PATCH( gid_File_Res_T602Filter, t602filter )
++
+--- scp2/source/writer/module_writer.scp	2 Jan 2007 15:31:51 -0000	1.17
++++ scp2/source/writer/module_writer.scp	13 Apr 2007 08:44:51 -0000	1.17.110.2
+@@ -54,6 +54,7 @@ Module gid_Module_Prg_Wrt_Bin
+     gid_File_Lib_Swui,
+     gid_File_Lib_Wpft,
+     gid_File_Lib_Msworks,
++    gid_File_Lib_T602Filter,
+     gid_File_Share_Config_Sofficecfg_Writer_Menubar_Xml,
+     gid_File_Share_Config_Sofficecfg_Writerweb_Menubar_Xml,
+     gid_File_Share_Config_Sofficecfg_Writerglobal_Menubar_Xml,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/silent_deliver.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/silent_deliver.diff
@@ -0,0 +1,11 @@
+--- solenv/bin/build.pl.orig	2007-11-30 18:30:42.000000000 +0100
++++ solenv/bin/build.pl	2007-11-30 18:31:47.000000000 +0100
+@@ -222,7 +222,7 @@
+     $StandDir = get_stand_dir();   # This also sets $CurrentPrj
+     provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS}));
+ 
+-    $deliver_command = $ENV{DELIVER};
++    $deliver_command = $ENV{DELIVER} ." -quiet";
+     if ($dlv_switch) {
+         $deliver_command .= ' '. $dlv_switch;
+     } else {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-win32-msi-patchability.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-win32-msi-patchability.diff
@@ -0,0 +1,7229 @@
+--- soltools/prj/build.lst
++++ soltools/prj/build.lst
+@@ -12,3 +12,4 @@
+ so	soltools\adjustvisibility				nmake	-	u	so_adjvis NULL
+ so	soltools\HIDCompiler					nmake	-	all	so_hidc so_mkdep so_adjvis.u so_wunistd.n NULL
+ so  soltools\testhxx                        nmake   -   all so_testhxx so_mkdep NULL
++so	soltools\fileversion			nmake	-	w	so_fileversion NULL
+--- soltools/prj/d.lst
++++ soltools/prj/d.lst
+@@ -11,3 +11,4 @@
+ ..\%__SRC%\bin\hidc.exe %_DEST%\bin%_EXT%\hidc.exe
+ ..\%__SRC%\bin\hidc %_DEST%\bin%_EXT%\hidc
+ ..\%__SRC%\bin\testhxx* %_DEST%\bin%_EXT%\testhxx*
++..\%__SRC%\bin\fileversion.exe %_DEST%\bin%_EXT%\fileversion.exe
+--- /dev/null
++++ soltools/fileversion/makefile.mk
+@@ -0,0 +1,21 @@
++PRJ=..
++
++PRJNAME=soltools
++TARGET=fileversion
++NO_DEFAULT_STL=TRUE
++TARGETTYPE=CUI
++LIBTARGET=NO
++nodep=true
++
++DELAYLOADOBJ=
++
++.INCLUDE : settings.mk
++
++LIBSALCPPRT=$(0)
++UWINAPILIB=$(0)
++
++APP1TARGET= $(TARGET)
++APP1OBJS= $(OBJ)$/fileversion.obj
++APP1STDLIBS= version.lib
++
++.INCLUDE : target.mk
+--- /dev/null
++++ soltools/fileversion/fileversion.c
+@@ -0,0 +1,120 @@
++#include <windows.h>
++
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++int
++main (int argc, char **argv)
++{
++  unsigned int new_v[4];
++  int update_version = 0;
++  DWORD version_info_size;
++  DWORD dummy;
++  unsigned char *buffer;
++  VS_FIXEDFILEINFO *fixed_file_info;
++  UINT fixed_file_info_len;
++  char fullname[1024];
++  char *basename;
++
++  if (argc == 4 &&
++      strcmp (argv[1], "-s") == 0)
++    {
++      int i;
++
++      if (sscanf (argv[2], "%u.%u.%u.%u",
++		  &new_v[0],
++		  &new_v[1],
++		  &new_v[2],
++		  &new_v[3]) != 4)
++	{
++	  fprintf (stderr, "Wrong new version format.\n");
++	  exit (1);
++	}
++
++      for (i = 0; i < 4; i++)
++	if (new_v[i] > 0xFFFF)
++	  {
++	    fprintf (stderr, "Wrong new version format.\n");
++	    exit (1);
++	  }
++
++      update_version = 1;
++      argc -= 2;
++      argv += 2;
++    }
++
++  if (argc != 2)
++    {
++      fprintf (stderr, "Usage: fileversion [ -s a.b.c.d ] file\n");
++      exit (1);
++    }
++
++  if (!GetFullPathName (argv[1], sizeof (fullname), fullname, &basename))
++    {
++      fprintf (stderr, "GetFullPathName() failed\n");
++      exit (1);
++    }
++  
++  version_info_size = GetFileVersionInfoSize (fullname, &dummy);
++
++  buffer = malloc (version_info_size);
++
++  if (!GetFileVersionInfo (fullname, 0, version_info_size, buffer))
++    {
++      if (update_version)
++	fprintf (stderr, "GetFileVersionInfo() failed, file probably lacks a version resource block.\n");
++      exit (1);
++    }
++
++  if (!VerQueryValue (buffer, "\\", (LPVOID*) &fixed_file_info, &fixed_file_info_len))
++    {
++      if (update_version)
++	fprintf (stderr, "VerQueryValue() failed.\n");
++      exit (1);
++    }
++
++  if (fixed_file_info_len < sizeof (*fixed_file_info))
++    {
++      if (update_version)
++	fprintf (stderr, "Too small size VS_FIXEDFILEINFO.\n");
++      exit (1);
++    }
++
++  if (update_version)
++    {
++      HANDLE resource;
++
++      fixed_file_info->dwFileVersionMS = 0x10000 * new_v[0] + new_v[1];
++      fixed_file_info->dwFileVersionLS = 0x10000 * new_v[2] + new_v[3];
++      
++      if (!(resource = BeginUpdateResource (fullname, FALSE)))
++	{
++	  fprintf (stderr, "BeginUpdateResource() failed.\n");
++	  exit (1);
++	}
++      if (!UpdateResource (resource,
++			   RT_VERSION,
++			   MAKEINTRESOURCE (VS_VERSION_INFO),
++			   MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL),
++			   buffer,
++			   version_info_size))
++	{
++	  fprintf (stderr, "UpdateResource() failed.\n");
++	  exit (1);
++	}
++      if (!EndUpdateResource (resource, FALSE))
++	{
++	  fprintf (stderr, "EndUpdateResource() failed.\n");
++	  exit (1);
++	}
++    }
++  else
++    printf ("%d.%d.%d.%d\n",
++	    HIWORD (fixed_file_info->dwFileVersionMS),
++	    LOWORD (fixed_file_info->dwFileVersionMS),
++	    HIWORD (fixed_file_info->dwFileVersionLS),
++	    LOWORD (fixed_file_info->dwFileVersionLS));
++
++  exit (0);
++}
+--- instsetoo_native/inc_ooolangpack/windows/msi_templates/codes.txt
++++ instsetoo_native/inc_ooolangpack/windows/msi_templates/codes.txt
+@@ -1,10 +1,13 @@
+ [PRODUCTCODE]
+ en-US = "{302DAE3A-2CD6-46DF-A25B-ED0B59FBA771}"
++bs = "{9DF5D8E3-239F-4672-8CBB-64F35914D8FC}"
+ pt = "{FC10CE94-41C6-43AE-AC97-4F4AE45B1BCC}"
++pt-PT = "{B4191495-6B61-4C9E-8E64-BD6B10E7F784}"
+ ru = "{C0C43007-C203-4722-916E-7A4E915E4F8D}"
+ el = "{FC4188CE-C087-4109-A904-0687A76ACEDA}"
+ nl = "{1C7DD608-C8AC-4B5B-81BE-E4ED3753541D}"
+ fr = "{D334E645-4240-467E-9049-8EDA0DF62DD8}"
++fr-CA = "{1779C34A-84B1-4D43-B745-067E82A62052}"
+ es = "{28F03675-F28C-460D-8C2E-800EA7A551A0}"
+ fi = "{5FE3A584-4297-4199-BF98-2BD36628B6C7}"
+ hu = "{91F443E7-DE34-46FC-B02E-F5628399603C}"
+@@ -13,55 +13,210 @@
+ cs = "{7C4C496A-2087-4AE3-8620-84FFD736F2BF}"
+ sk = "{73D7DA04-45CD-494E-9B78-1EFDFDBF5600}"
+ en-GB = "{80F13A63-A0C3-4C6D-A0B3-28F106730674}"
++en-ZA = "{36488CF6-0AA7-4106-8ED5-573C15307DDD}"
+ da = "{387DC3B5-4CF9-48A2-8292-3BB725BF654A}"
+ sv = "{72B0A3D4-B9E4-454C-9A45-52D2DC433A58}"
++nb = "{8372057C-007A-4C31-9E63-F62553829587}"
++nn = "{A144BF58-9C8B-44B7-82D4-33A8EA2B5EF1}"
+ no = "{8FDD7F7B-104C-4CB6-B7BD-F67FCF42F3CD}"
+ pl = "{7CA9656A-7DB4-48EB-8E18-456256C05E92}"
+ de = "{300FFDA6-0C64-406D-B09B-CB5C91ABEBBA}"
+ pt-BR = "{E49BD84D-625C-4BEB-AE0E-349D0DD6FFB7}"
+ th = "{B0E54B09-14B1-4440-BCB8-E036CCD332DF}"
+ et = "{0A773C83-9633-4EAD-BE4F-C015568870BD}"
+ ja = "{DAF0244B-3B71-4EC8-8246-C58401AE5E01}"
+ ko = "{AAFFA871-4921-4D14-9767-E302020DD8BE}"
++km = "{6E84D360-B0B6-405E-8134-5737FCAE19C2}"
++cy = "{1B4EE7DB-FA7F-42AC-8695-58A5D358452E}"
+ zh-CN = "{5B52E76A-647C-4F18-BC52-6293FDE98C5D}"
+ zh-TW = "{03293AD0-38E2-4399-BE6E-EC696138E39A}"
+ tr = "{5F926003-A07A-4812-A6AD-6C466C053F53}"
+ hi = "{264BD610-28F9-42C0-AFBF-60870763B038}"
++hi-IN = "{2ECD0724-FA4C-4C23-93C2-5801E04B9A00}"
++pa-IN = "{490D7BE1-66E2-4FF0-ADBF-560F90066CA9}"
++ta-IN = "{4C52426D-EF4A-449F-B05A-C2B0EFE5C359}"
++ta = "{68B6D35D-2C65-4995-B899-287F8EEBD0FF}"
++as-IN = "{1C234926-2FE1-4223-BB9C-86FB9ACFDC67}"
+ ar = "{76854B27-9B89-4C7D-AB32-69E1F60CDA6F}"
++ar-SA = "{6171B484-B0C4-403C-A1CA-50B4879DF076}"
+ he = "{10C228EF-576B-466C-B863-955EC6A9340C}"
++af = "{538C837C-7A6B-4CC4-9FD8-FB99B459B5FD}"
++sq = "{848F9F66-A02C-4E12-85F2-D13DC02F0942}"
++hy = "{43705B68-3DBD-4013-BE81-EB1D454E851A}"
++eu = "{CD145A56-9FA5-4FD6-8BF3-80551AC7076B}"
++be-BY = "{96527E6D-7840-4175-8BE8-93DA3706E6F1}"
++bn = "{90B27463-E51E-48BB-B21F-D81E0F738FBE}"
++bn-BD = "{6F47AED5-49DE-4D3D-8804-88C33FD41918}"
++bn-IN = "{52649A81-A02C-4E44-A1E1-846FD635D60D}"
++bg = "{E72472AF-C781-4F90-BC90-3621D3051416}"
++is = "{ED539F5E-63F4-4366-B88C-4B78A1D85102}"
++id = "{F1837E2E-6E6D-41E0-AFB4-519D666E05B1}"
++lo = "{9572F7D7-FD00-443F-B77F-F49ABE718488}"
++lv = "{D6D3626E-DAA7-4735-9B06-BCD3EB39542B}"
++lt = "{4BB4B6E7-DD02-4A82-9F10-5D0D305CBE22}"
++mt = "{A4686668-EC2F-49C8-ADED-B6BDA2FCFD78}"
++mr = "{9ABBA360-AACA-4F22-AC20-42F1803B163E}"
++rm = "{B41046A6-CEF6-45FF-A8D7-5CDCE4C2E500}"
++ro = "{09ABF8A7-2A8B-4067-813E-A59F39BF199D}"
++rw = "{E9B6A2E1-DF76-48BA-9A97-398F3CE2EA34}"
++sa = "{E6D25E8C-3594-4EC2-8F26-5E07AEEAD305}"
++sr-SP = "{9359B34C-4153-4D06-B3E3-B66215383E92}"
++tn = "{0B48531D-0704-49F8-81AA-49088E27663B}"
++hr = "{7509D7E9-6302-427E-88C0-42E4D81EC389}"
++fa = "{4667356A-537B-4A30-BF99-C1A11EC6093A}"
++fo = "{372E1C06-9EDE-470E-A154-2C94B1214FF5}"
++sl = "{B1B6F2FF-5074-4D8B-B6E7-758C097E89F3}"
++sb = "{23635FCA-F0EF-47F8-97D8-E7D65B834235}"
++st = "{9E74E8F6-615E-4B02-8808-041A43D3B6A8}"
++sw = "{EDD3461D-E7FE-4752-BEC8-8161FCA04619}"
++sw-TZ = "{F139048C-2DE1-4889-BF47-B91B5D41E938}"
++ta = "{9B6976A0-B9F1-462C-9B34-482D685EF006}"
++tt = "{A5A0A068-3B2F-49B4-8EED-415FF06C4AB0}"
++ts = "{9DC49678-1C01-487A-A2CA-2A2B8716610B}"
++uk = "{22DCDF5F-8D27-42D7-945C-EB1F190E38B1}"
++ur = "{1DA1B844-1807-43B5-A122-453FF57EE820}"
++vi = "{084244C8-1887-4BC3-8E85-7DAD99D698D4}"
++xh = "{6528B6C0-DD9F-4CB4-AE2D-A14DF74DDE7C}"
++ns = "{80D26526-29C5-4795-8DBE-DFB8F7CCB1E5}"
++yi = "{D340AAF8-8572-4874-A064-9D45DDB871C4}"
++zu = "{ED5667CD-9B2A-401E-8ECA-9560CC475C41}"
++gu-IN = "{EB5113B8-2AA8-4CE4-B02A-72E33D2E5143}"
++gu = "{280B3D0B-36AD-462A-9C04-3686F183554D}"
++br = "{84D7B232-2196-4CD0-A36F-949B7DB83AF2}"
++or = "{12E38217-141E-484E-A6C9-47C5850B4903}"
++ne = "{740B3E9E-7590-4E96-8497-3E231BAFFB7E}"
++sh-YU = "{1EECD5C1-31E2-4C18-A57E-4FE79FDBE826}"
++sr-CS = "{A7EA8FF4-A2CC-409F-8260-403442365FA8}"
++nr = "{171E9D9F-58F0-49E0-84E4-E76352C2FF0F}"
++ss = "{5E084FCA-3032-4833-B414-2E6777ECCFE9}"
++st = "{895F4477-4E71-4158-93DC-14CB4114CC9A}"
++ve = "{44411748-2FC8-4D70-BF25-AB6ABDE69D3A}"
++ga = "{499D9641-2B98-4D59-974C-09199761F62C}"
++mk = "{DBA9A11D-F600-42AD-8D99-06061102A517}"
++te-IN = "{A340DAB6-ACD6-48BB-9F35-B7D087EA7625}"
++ml-IN = "{741168B7-19D4-41D7-9A96-DF725DA44904}"
++mr-IN = "{C60698D5-76E9-4AA4-92DE-89E38129E06E}"
++ur-IN = "{1DEDD828-FA9B-4B86-8F00-3E90157B76D7}"
++or-IN = "{0238EEF6-23ED-4065-989D-C95F1C8DCBEE}"
++ku = "{490A29B0-D3F8-4C3F-B6D7-7BF5A791A746}"
++tg = "{996FB6B4-5532-415F-9622-73E7C867F42D}"
++ti-ER = "{E4FE8DE0-D5DB-4CA8-8BBD-2771822EFC6A}"
++gl = "{B4E79B50-ADE3-49EE-AB75-D0B4AD676B3F}"
++kn = "{08708716-FFC8-4717-AD92-9B60F4761119}"
++ms = "{459A2CDA-7915-41FB-8965-7CF19A02F186}"
++tg = "{707373D8-F32A-4A02-AA04-9D726F90AB41}"
+ multiwestern = "{D53F8583-419E-440E-AC00-40E9AB31EEBF}"
+ multiasia = "{C0D08A10-A266-46DC-8EF4-BE0E5928129D}"
+ 
+ [UPGRADECODE]
+ en-US = "{8B909084-2220-49AC-A421-142180519088}"
++bs = "{997C6313-8DFC-42F5-BA83-7433C46FD10C}"
+ pt = "{CBFA6A61-D310-4A90-8F49-C7BE2735D58D}"
++pt-PT = "{C66D6B75-5808-44E2-AF7A-4023E3847300}"
+ ru = "{DF67ADAA-4755-4184-9E32-1020F40DDA81}"
+ el = "{39772F91-1D37-4866-BBA4-900AB53590B0}"
+ nl = "{7D14314D-DAF7-4A97-A6EE-97C475080A73}"
+ fr = "{B0FDE9B8-D066-4FB2-885D-615A6D58E02F}"
++fr-CA = "{5D4EA72D-E97F-4135-8BEC-ECA8E5A4DA30}"
+ es = "{01588DD5-C6C5-4C9D-A1BD-1A63E779DA1A}"
+ fi = "{481B0FE0-8313-442E-8A53-7C5139ADA3DC}"
+ hu = "{5981EE94-6763-40AD-A8A0-EEB01CCA153C}"
+ ca = "{8EEC9A45-3BD3-431F-81D0-394F41185BD9}"
+ it = "{50087605-A504-441B-B514-67F13A284C10}"
+ cs = "{DBA607B3-0805-4A18-A45D-769C70D90AB7}"
+ sk = "{19B49960-B58C-48A7-9761-F0B325E00C31}"
+ en-GB = "{E60BC5AC-2513-40AF-A41B-64118A287662}"
++en-ZA = "{7BE3ACA1-3791-47A8-96D6-E284D82B07BC}"
+ da = "{4E7025EF-909F-4609-97BA-304684C4833D}"
+ sv = "{5E751B0D-FE96-4D0E-BAC1-5E7501294940}"
++nb = "{A9DAD90A-13F9-40DB-BAF7-039D0192CCBE}"
++nn = "{BF0595DA-9F14-4DEA-A56A-1E5E20641AF3}"
+ no = "{00C1656C-6386-42ED-BE8C-5D6C553EF125}"
+ pl = "{9C92258E-9A41-4A03-AA5C-FD8EF15189BA}"
+ de = "{481E648E-D8AD-478A-A3F6-68FC563FFD8F}"
+ pt-BR = "{7364F154-089D-400B-B275-751AAB9A6122}"
+ th = "{1F9BC074-55AA-496A-9EC5-05E65CF64AE6}"
+ et = "{34FBD5D3-3F88-4C91-8B9B-A10AE833250F}"
+ ja = "{74F683CC-8356-4BF7-9098-B85AAB7C1A0C}"
+ ko = "{1D068BF9-FBCF-4A3B-B9A4-4B2DD3DE8CFB}"
++km = "{D395C065-A13B-4AD1-A283-978E03D56422}"
++cy = "{7417DE83-77C8-41D0-A6DB-D8440BA14BC5}"
+ zh-CN = "{5B45DC72-0755-4EC2-BB12-65A1FEADDDE7}"
+ zh-TW = "{08B2CED3-CFB5-491F-ADC4-FD0CD2366C60}"
+ tr = "{46AB3EE6-FD98-460D-AE0B-6AE68ED6204D}"
+ hi = "{2C70F320-6771-42D6-B3F5-97678C822B20}"
++hi-IN = "{4F098A99-D6A2-4286-9442-9871404D4A46}"
++pa-IN = "{0FDD36BA-D1EE-4F8E-AD8B-BD55459EC790}"
++ta-IN = "{F9817B26-6ED7-452A-8AB8-91341BF1D103}"
++ta = "{130152CC-41E4-4780-8559-21C40587EAFB}"
++as-IN = "{F93D27C8-4A21-4569-AF35-7EC77B70B402}"
+ ar = "{DF297699-3040-48E0-B0E6-B54385D76018}"
++ar-SA = "{6C5D341D-96E3-44FF-961F-9FD50D66AB57}"
+ he = "{13484272-CE60-4867-B494-D56F9049B95A}"
++af = "{FF27D70C-0C5B-4E4E-8883-8F375CA9C468}"
++sq = "{E9B56A18-156C-4936-9CFB-146CA7174B41}"
++hy = "{681C6683-8D75-4284-AE77-DCF3C6E870DE}"
++eu = "{F7141DC1-1538-4FF9-919A-FE1FF0E89503}"
++be-BY = "{CDC2F130-3E02-430F-A5B5-05067BC9336F}"
++bn = "{0B5D5885-3192-48D9-8C8D-706E0DB403DF}"
++bn-BD = "{0535AF67-E56A-4ED8-8A1E-578E549D30AD}"
++bn-IN = "{6F0D3ACA-DCE7-4E0A-87E2-CBD0F8A5B33B}"
++bg = "{50E0988D-23C4-44CA-B66A-A4E427A7F038}"
++is = "{6DD324DE-DFA9-41B8-BADF-D037AD3B7A88}"
++id = "{70886F70-BFB7-4E45-A05D-3294A91FEB3E}"
++lo = "{588DACBD-89FA-45EC-B3B5-ACE2759664CC}"
++lv = "{09F6F2FC-F7A3-4C56-B4B6-A1D1483BAF55}"
++lt = "{001E86DD-C817-4076-981B-D35253B6910B}"
++mt = "{B07B5F49-C4B6-4A9E-A46F-5565E64C4CC0}"
++mr = "{F2EFAC72-0CFD-4121-A995-1062E6CE4CA0}"
++rm = "{A608FC91-CFD9-44E7-9813-22777911489A}"
++ro = "{6CD33E91-55A4-4A9F-8A27-0069DF389BDC}"
++rw = "{0C88E37B-36CB-4DE0-8332-6A294E342B28}"
++sa = "{6BA9DC90-6F8E-407A-982D-E01A4FF72443}"
++sr-SP = "{4FBE4F81-E634-4A58-9B23-598706996376}"
++tn = "{38219093-AB4D-4060-9456-EFB10DADC897}"
++hr = "{E96AE6FB-521A-44A8-AA91-8A7EE15D704B}"
++fa = "{F09DEEB5-1185-4DF2-B9C0-0C295858F966}"
++fo = "{92F1FA59-3A7D-482D-823A-1A2734FEFB59}"
++sl = "{6B1F1226-EBC6-4FED-AD37-E01DA6C5089A}"
++sb = "{5B574AAD-B8B2-4683-A806-BF92D80F914D}"
++st = "{10D5A692-629B-41AB-A74C-2D8E93A8B99A}"
++sw = "{50A48005-42C8-44D8-A12E-936D539E4AB0}"
++sw-TZ = "{53C0207E-0AE7-489F-8B56-DC09E873D3CD}"
++ta = "{538254E7-DCA7-4CD9-8CCE-3E09CD29C508}"
++tt = "{88D194B3-C099-4D80-AD3D-7A26E082D3C8}"
++ts = "{C2A6002F-C719-4E82-BDAD-74313D50442F}"
++uk = "{71F2B27E-DAD2-4B21-9488-8571B7E8C81F}"
++ur = "{A97E507B-875E-465C-933F-A33755EE8898}"
++vi = "{EE359E05-9385-4E70-B63A-39045A7C1285}"
++xh = "{BDBDB347-A3BC-42AB-A315-3AAEF9A533BA}"
++ns = "{875DF331-64DC-4CF1-B835-4D0A7D3D9BB4}"
++yi = "{382C63FC-2CC9-4C7D-877B-AA779CEA0479}"
++zu = "{AAD0E34A-99D5-4C5F-AC7A-5180377E9A60}"
++gu-IN = "{6AD46A4D-CE47-4C88-83CE-C1F475A2E4A3}"
++gu = "{27983EB1-C0D6-43A4-BD3E-E6B6CECAE8D6}"
++br = "{6FE542FD-D054-4F33-BC9C-76E9426240C8}"
++or = "{76B5E11A-3741-46FC-BD84-4673C770755A}"
++ne = "{2AC2E0AD-44DB-482B-B57C-D33B312C556D}"
++sh-YU = "{2C15F81E-ABDC-4036-9C1A-4B1D5F9D2A1B}"
++sr-CS = "{CF7835AD-75B4-4EB2-B0DE-F9E38AB720ED}"
++nr = "{01FC6CDA-80A7-421A-96A7-126DC9416B4C}"
++ss = "{C826B91A-C667-4960-89F1-FDFBC0470FA7}"
++st = "{430448C7-5E21-43A9-87FF-8123C5D31DF7}"
++ve = "{09D0356B-C800-474A-ACFD-A4F3B8C1A20D}"
++ga = "{7605EA0F-8D6C-41DB-8D78-6919C7B07809}"
++mk = "{FF8AC100-490B-4F21-AEEC-51A830D0FF00}"
++te-IN = "{06A44CB4-8BC0-4526-BB93-DB0BE5BF3D57}"
++ml-IN = "{6306670C-8496-43BD-80D8-6840A1B93594}"
++mr-IN = "{89A9DFB9-17C7-4C59-AF7F-620165DE19DD}"
++ur-IN = "{AF887C48-DB5D-4146-9D60-C20BA348D057}"
++or-IN = "{DE221F90-27CB-497C-AE61-F158527C5265}"
++ku = "{325DC0A7-E6CD-40E7-BC9C-EE7D90F0D3DE}"
++tg = "{8E7D7847-D4E3-4709-80EB-345B9F314E98}"
++ti-ER = "{B09DCB13-DBB8-4F6C-8CE5-AE153B8A6699}"
++gl = "{2856F4CC-18CC-492C-AA5B-52C90F2431F1}"
++kn = "{0EF96046-D3E4-4ECA-A691-951A90838ACF}"
++ms = "{0590E9C9-8F5D-446B-883F-7C52963D788B}"
++tg = "{C5C00559-A17F-4ED2-B475-82D94A5BB1B4}"
+ multiwestern = "{385A1970-0257-4C57-9383-DD2D668B23CE}"
+ multiasia = "{74543111-6ABF-4A12-AC11-D315E2939D2A}"
+dummy line to avoid confusing diff-mode
+--- instsetoo_native/inc_openoffice/windows/msi_templates/components.txt
++++ instsetoo_native/inc_openoffice/windows/msi_templates/components.txt
+@@ -0,0 +1,6773 @@
++g_f_basic_depot__share_basic_depot	349DE05A-A67F-473C-BEC0-F2C9F10A9F71
++g_f_basic_euro__share_basic_euro	E2AE970C-A2D6-47D5-9453-2DA8279EC601
++g_f_basic_formwiz__share_basic_formwizard	52D7EA47-9D90-46CD-B68B-23B896A723FF
++g_f_basic_gimmicks__share_basic_gimmicks	43D931DD-7218-496C-8E57-1CB06EAD722B
++g_f_basic_importwiz__share_basic_importwizard	F61AF4C1-5F0F-4FBE-8304-DC095A2E77C0
++g_f_basic_launcher__share_basic_launcher	4D944712-A8CE-4DD6-8913-4214E6EE32F1
++g_f_basic_schedule__share_basic_schedule	E6F53A26-82E3-4CB9-B86C-EC5635D9D241
++g_f_basic_scriptbindinglib__share_basic_scriptbindinglibrary	C688224C-8FF3-47A5-8B9B-51281605ED33
++g_f_basic_template__share_basic_template	92A0B423-6FA5-48D0-AA7D-39F09C96E54C
++g_f_basic_tools__share_basic_tools	0707638F-1092-47EA-914F-089AD210B328
++g_f_basic_tutorials__share_basic_tutorials	A756E6A4-D0C9-43E5-B423-9A7287438268
++g_f_basic_user__presets_basic	FA78648F-F6D8-41E3-BDA1-342DABBA2BEC
++g_f_basic_user_standard__presets_basic_standard	33ABF971-1BF8-42AB-8901-CEDBE4FBEACF
++g_f_bin_configimport__program	F8270B8B-60FE-4D5B-A963-7B3FBCFAEE25
++g_f_bin_gengal__program	9DDB0FE5-1BA7-4D04-9421-09A2F3284EBA
++g_f_bin_msipkgchk__program	7EE60556-3F54-4971-BA1A-499F527D8FD1
++g_f_bin_pkgchk__program	D9459AEE-6EAB-4C3D-98FE-882ABF195857
++g_f_bin_senddoc__program	52520660-339C-42C8-8B14-E0CF7D182B91
++g_f_bin_setofficelang__program	78183ED9-EAFD-416B-A49F-ADAACDC92A7E
++g_f_bin_soffice__program	7BA9E62F-86F9-444F-9E73-1E44684E58C2
++g_f_bin_soffice_bin__program	7F3A62A3-084B-4AD4-AF1F-8B08EF11B301
++g_f_bin_testtool__program	FA9CF2C7-B3D4-45E9-BECE-8E4F7AE4358B
++g_f_bin_uno__program	B84FFF18-FCF6-4BC5-8EF3-22F9940D7202
++g_f_bin_unopkg__program	8D85641C-53CF-42C7-9C1C-43E2EFF42289
++g_f_bin_unopkgcom__program	93A9BBFE-74D5-422F-A8AE-F0C355E1D100
++g_f_bin_unopkgexe__program	C10A91D1-A6BF-48D0-990E-81E62C7EFE98
++g_f_bmp_abouts__program	539D8249-C2D3-4B9E-AAF5-9FF0B7DF66D5
++g_f_bmp_installation__program	3F334157-4AD1-47D7-BF4E-69EC54DF1F9D
++g_f_bmp_intro__program	0E2451D1-D0D0-48FC-B3EA-71E76D497C43
++g_f_bmp_introabout__program	D6017554-EEA4-41E7-838E-E1D5E49622C3
++g_f_bmp_intros__program	A3C5CD02-116D-4103-BFBB-495408614F39
++g_f_c_javasettingsunopkginstall__share_config	AC424759-566B-490E-BD3E-E18407A7CBAE
++g_f_c_testtool__program	25E785B2-85CD-421E-A3DE-7B8FCCEEFA39
++g_f_canvasfactory__program	3FED1D6D-1286-47C4-91CE-4558B1451204
++g_f_conf_fpdb__share_fingerprint	8C08A3AA-97BA-4672-AEA1-0E08A2007835
++g_f_dtd_accelerator__share_dtd_officedocument_1_0	5E4C957E-2FFF-47E0-A450-83ED3E993FB7
++g_f_dtd_dialog__share_dtd_officedocument_1_0	C4D62682-F513-457C-84BD-A58ECB4F400E
++g_f_dtd_event__share_dtd_officedocument_1_0	D08B2D22-1919-4116-B723-E1414D02B946
++g_f_dtd_groupuinames__share_dtd_officedocument_1_0	7F118BD0-2003-417E-8CCE-B45C92395CE4
++g_f_dtd_image__share_dtd_officedocument_1_0	C8FC3E54-1501-444D-BA4A-E6374A29AF9E
++g_f_dtd_libraries__share_dtd_officedocument_1_0	FA378AF7-EFBC-4A74-968D-F1836DDBBF64
++g_f_dtd_library__share_dtd_officedocument_1_0	1D14FC34-77A6-41D4-A6FB-ACE88A735AE8
++g_f_dtd_m__share_dtd_officedocument_1_0	E2F8C670-61F0-4822-942D-522741E05981
++g_f_dtd_manifest__share_dtd_officedocument_1_0	8ED8EC17-04B5-4A2D-A807-1974E2926AB8
++g_f_dtd_math__share_dtd_math_1_01	D32B4876-34DF-4740-9A66-6EFF62237909
++g_f_dtd_mb__share_dtd_officedocument_1_0	200DF298-D9B0-445F-9A7F-9C9D577B21FC
++g_f_dtd_office__share_dtd_officedocument_1_0	244B4D74-D7FB-4718-A219-BA249320D520
++g_f_dtd_statusbar__share_dtd_officedocument_1_0	BB883ADC-0E43-42CC-9D58-4D6E27CBC9E9
++g_f_dtd_toolbar__share_dtd_officedocument_1_0	83A9DB9D-A1EA-4512-B174-58B7D9376921
++g_f_e_autocorr__share_autocorr	976A03B8-12CF-4F2C-B6A5-015A1DED5DDF
++g_f_e_autotextshare_lang__share_autotext_af_af	4E152FE4-A3C0-40EF-926C-61300BFD1B9C
++g_f_e_autotextshare_lang__share_autotext_ar_ar	570F9408-C952-42A3-9CDE-8546D45B147F
++g_f_e_autotextshare_lang__share_autotext_be_by_be_by	9F73F4D0-D764-48F9-8E62-EBD8556299F3
++g_f_e_autotextshare_lang__share_autotext_bg_bg	5522AD69-FF53-4B71-9AD5-F9DCDE83504C
++g_f_e_autotextshare_lang__share_autotext_bn_in_bn_in	3BD9A955-9F6D-4B56-AA8F-A333F6557381
++g_f_e_autotextshare_lang__share_autotext_br_br	83046E83-2B79-4BF9-AECF-823369BE0CC9
++g_f_e_autotextshare_lang__share_autotext_ca_ca	0F2995F3-EA3E-484F-A549-724BB4FE3C30
++g_f_e_autotextshare_lang__share_autotext_cs_cs	FD19D188-F103-4737-988B-C366ADDD025C
++g_f_e_autotextshare_lang__share_autotext_cy_cy	F4FEAC66-711F-4CDC-BAB5-6CF43308F70F
++g_f_e_autotextshare_lang__share_autotext_da_da	767F3B3D-67DD-4F02-9B10-86106F8E0F95
++g_f_e_autotextshare_lang__share_autotext_de_de	8DEFC950-39A5-4654-826B-91FF1FDC66DF
++g_f_e_autotextshare_lang__share_autotext_el_el	B078991F-080C-4E9F-9894-55D674639C1A
++g_f_e_autotextshare_lang__share_autotext_en_gb_en_gb	A140ACA6-DEDD-47E2-841A-AE50EF63A82B
++g_f_e_autotextshare_lang__share_autotext_en_us_en_us	B9230929-3817-4B16-B059-05031D59833E
++g_f_e_autotextshare_lang__share_autotext_es_es	9C45CF91-2BC7-4B25-8992-A1E7ECA2B1E1
++g_f_e_autotextshare_lang__share_autotext_et_et	979D97FD-8341-4934-86C7-3FFD272B11CA
++g_f_e_autotextshare_lang__share_autotext_fi_fi	9F496A99-555E-4EC0-AE55-8A2F47C8182F
++g_f_e_autotextshare_lang__share_autotext_fr_fr	31F37CE6-ECA6-414F-8EAD-04F68BE4248F
++g_f_e_autotextshare_lang__share_autotext_gu_in_gu_in	154A102F-E311-4E93-9083-0EE797312972
++g_f_e_autotextshare_lang__share_autotext_he_he	CEF28BD6-4E95-4C7C-8220-A0E810A5B0F3
++g_f_e_autotextshare_lang__share_autotext_hi_in_hi_in	2B1F9FAC-8C3C-4DC5-8F55-86C8D81F72AB
++g_f_e_autotextshare_lang__share_autotext_hr_hr	53218F5B-60F6-43A5-AE55-DB2722437D86
++g_f_e_autotextshare_lang__share_autotext_hu_hu	2E1254C3-C461-4008-B098-315347DE7100
++g_f_e_autotextshare_lang__share_autotext_it_it	4CB98F85-FABA-4C25-958E-0E62FBF0465D
++g_f_e_autotextshare_lang__share_autotext_ja_ja	117BF9F6-C275-42D1-9323-F6F9F20083A0
++g_f_e_autotextshare_lang__share_autotext_km_km	CFF83FA1-1B52-4423-98BE-50D9BF4819DF
++g_f_e_autotextshare_lang__share_autotext_ko_ko	4341FF43-9D91-4E6D-ADA9-67CA549C5E0A
++g_f_e_autotextshare_lang__share_autotext_lt_lt	D6772C6F-DCFC-4D76-9EE1-C1F8F30AD58A
++g_f_e_autotextshare_lang__share_autotext_lv_lv	01AA84F3-DE1B-41B3-88E9-4EB18D422000
++g_f_e_autotextshare_lang__share_autotext_mk_mk	A436568D-C9F0-466B-832D-58CFFB6A46DB
++g_f_e_autotextshare_lang__share_autotext_mr_in_mr_in	2AA56C9E-1229-400F-A752-FB577BF6F9AD
++g_f_e_autotextshare_lang__share_autotext_nb_nb	3846A462-F78C-4456-AB26-CD1E8EAB10AB
++g_f_e_autotextshare_lang__share_autotext_nl_nl	709DA10B-6954-4F26-88F8-F4943961EE02
++g_f_e_autotextshare_lang__share_autotext_nn_nn	50B22F30-2A89-48C4-B0D9-BFAC45E2864A
++g_f_e_autotextshare_lang__share_autotext_pa_in_pa_in	AA038172-0BD8-4A86-8177-CF9D1FD039C1
++g_f_e_autotextshare_lang__share_autotext_pl_pl	EB2252A8-272B-4A6C-9732-987B6340DF34
++g_f_e_autotextshare_lang__share_autotext_pt_br_pt_br	E2B0C15B-F788-42F0-86C0-9659F21C16D0
++g_f_e_autotextshare_lang__share_autotext_pt_pt	3B80BF0F-649A-4AA3-8685-36AFF8B7E683
++g_f_e_autotextshare_lang__share_autotext_ru_ru	306B7A76-3AC8-44CD-912E-8847FA82A7E8
++g_f_e_autotextshare_lang__share_autotext_rw_rw	C1A2BB0E-8C65-4727-8660-24F47BDE92CB
++g_f_e_autotextshare_lang__share_autotext_sk_sk	CE094AF6-2164-4E08-8A99-6165F7B3EFAA
++g_f_e_autotextshare_lang__share_autotext_sl_sl	B45662B3-C884-4492-AF73-2BE0A6777DC9
++g_f_e_autotextshare_lang__share_autotext_sv_sv	2B5D55B6-5275-4E4D-8A5B-774808F8F2AA
++g_f_e_autotextshare_lang__share_autotext_ta_in_ta_in	096EA3AD-6718-4234-9646-E800EB67CA9A
++g_f_e_autotextshare_lang__share_autotext_tr_tr	8D0E7A58-2575-40A2-BDDF-6E7EA232FB7F
++g_f_e_autotextshare_lang__share_autotext_vi_vi	C52D5C13-7C64-4B29-966D-3B83E02B383C
++g_f_e_autotextshare_lang__share_autotext_xh_xh	21C8AA42-AADA-43A7-A0C3-C28EFA8D981F
++g_f_e_autotextshare_lang__share_autotext_zh_cn_zh_cn	9A462301-5D72-4FED-BAC8-7C74D40BC0DA
++g_f_e_autotextshare_lang__share_autotext_zh_tw_zh_tw	A5AC3E19-E3FB-4C19-91FD-7E569225447B
++g_f_e_autotextshare_lang__share_autotext_zu_zu	6FB9217E-8075-4B29-9BEB-C0CEDFA9413F
++g_f_e_autotextuser__presets_autotext	2C7533AF-4D46-4435-8839-BBB4FCBCDC01
++g_f_e_cfgsrv__share_c_wizard_form_styles	F88DA7E6-8C92-43D0-A459-A7037C6B38FE
++g_f_e_cfgsrv__share_c_wizard_web	6B0AD689-8834-4BEB-8562-4E1E8FC8C098
++g_f_e_cfgsrv__share_c_wizard_web_images	F7CBEB2E-04FB-4668-8224-FE43F5540DBC
++g_f_e_cfgsrv__share_c_wizard_web_layouts	85DC2541-2408-40F4-AA62-C7042657F876
++g_f_e_cfgsrv__share_c_wizard_web_layouts_diagonal	1BA6CCFB-A51C-4626-A46D-8B1E43A72CBD
++g_f_e_cfgsrv__share_c_wizard_web_layouts_frame_bottom	B278CE92-3E59-4168-8443-385C6A7A2492
++g_f_e_cfgsrv__share_c_wizard_web_layouts_frame_left	46DC855A-84F0-45B9-8315-2578138DD948
++g_f_e_cfgsrv__share_c_wizard_web_layouts_frame_right	897E4CE0-C87D-4B63-A6F1-1F42F70A5876
++g_f_e_cfgsrv__share_c_wizard_web_layouts_frame_top	9B31AAC8-7D88-4E17-9737-F4154A941A3A
++g_f_e_cfgsrv__share_c_wizard_web_layouts_simple	687BA585-6A91-4C7C-9589-6968D3B12FDA
++g_f_e_cfgsrv__share_c_wizard_web_layouts_tb_2	7287C533-3436-44B8-89AA-AE00766D493B
++g_f_e_cfgsrv__share_c_wizard_web_layouts_tb_3	357225B9-BBF2-4946-97F0-6C5E5F15BC0B
++g_f_e_cfgsrv__share_c_wizard_web_layouts_zigzag	0AD65C75-6C2D-44FE-83B2-E454F681F5F5
++g_f_e_cfgsrv__share_c_wizard_web_styles	D78EF682-59F0-42ED-B4C1-E2EF06C19619
++g_f_e_cfgusr__presets_config	38C7A29B-7DE7-4E01-A172-BBEA9B7B7ED0
++g_f_e_cm_inc__share_c_webcast	D7468482-3B66-4BAE-BC62-AFE0F6F3CEE6
++g_f_e_cm_pl__share_c_webcast	DD4E1423-1A76-48EF-AE19-72403EA281FF
++g_f_e_database__presets_database	76B098C7-7073-434D-B800-115CFE34FAFC
++g_f_e_databasebiblio__presets_database_biblio	577412D7-FDFF-4E93-A1EF-4FBA5B55FB01
++g_f_e_edit_asp__share_c_webcast	43290717-9E94-4379-A08E-48629DA46649
++g_f_e_edit_pl__share_c_webcast	5D50EF0F-86BC-4980-87D8-681F04BA0BE0
++g_f_e_editpic_asp__share_c_webcast	B700B3AA-ABF3-4C35-BB14-17BA5219EE5E
++g_f_e_editpic_pl__share_c_webcast	5C29E8E9-662C-4C14-92DF-ED08F104832C
++g_f_e_gallbullets__share_gallery_bullets	8AE84E53-5B76-41AE-8E3D-6DDACC0AA104
++g_f_e_gallhtmlexpo__share_gallery_htmlexpo	B71A6E38-495F-43D0-8059-C02E467F0601
++g_f_e_gallroot__share_gallery	0EB07F1D-B36B-4EC6-B4FB-33B363D7D051
++g_f_e_gallrulers__share_gallery_rulers	65A4DF44-64FB-42CB-9F24-0751F02CDC55
++g_f_e_gallsound__presets_gallery	CC2969E1-5F73-4013-8C97-6BA93135BF17
++g_f_e_gallsounds__share_gallery_sounds	069C7640-6DEE-434E-B362-6DAB85EBC091
++g_f_e_gallsystem__share_gallery	76B1A437-BC03-4BBF-985D-B4EE1EE3417A
++g_f_e_gallwwwback__share_gallery_www_back	86F0C3D9-CAED-400F-A1A7-FC40251BEAB1
++g_f_e_gallwwwgraf__share_gallery_www_graf	56C187B7-3D31-40AE-AE9D-0A595355B377
++g_f_e_glas_blue_zip__share_c_wizard_web_buttons	AAC52313-9C0F-4EFB-9726-A1C23D44DA80
++g_f_e_glas_green_zip__share_c_wizard_web_buttons	C7467A78-D8CC-4EE1-8643-86F410C35BF8
++g_f_e_glas_red_zip__share_c_wizard_web_buttons	64A9D52D-5C01-44B1-A6D8-A954A0FD2383
++g_f_e_index_pl__share_c_webcast	2ACFD702-B50F-400D-8D26-7920DB9DA82D
++g_f_e_palettes__presets_config	EE569589-D2C0-40C2-96C2-7E670E1F7B4B
++g_f_e_palettes_lang__presets_c_af	25D08571-FAB6-49DB-96AC-94CC24825957
++g_f_e_palettes_lang__presets_c_ar	502EF3A6-2FD1-4338-A44A-885E80B70F1C
++g_f_e_palettes_lang__presets_c_be_by	2974CE19-FDB9-4C6E-96E3-366108DC69EC
++g_f_e_palettes_lang__presets_c_bg	7CB1CC93-B96B-4F31-993D-E1963FE6F810
++g_f_e_palettes_lang__presets_c_bn_in	7734057D-3FF4-41D6-9BD1-8CBD3402EBAD
++g_f_e_palettes_lang__presets_c_br	B58AC42C-2BF6-4D6A-A83A-3DE2C762E9F3
++g_f_e_palettes_lang__presets_c_ca	533B2042-FA64-4460-9E38-5A7CB31877A3
++g_f_e_palettes_lang__presets_c_cs	AF12856A-3DA4-442F-8D55-D80A3864DBCB
++g_f_e_palettes_lang__presets_c_cy	3BC4DF38-1B93-4BD8-BE26-476FED656191
++g_f_e_palettes_lang__presets_c_da	807F81BC-8CC1-4731-A6F8-79036052EF05
++g_f_e_palettes_lang__presets_c_de	A1C188E4-6CDB-4AFD-8F64-397392387449
++g_f_e_palettes_lang__presets_c_el	A2DC45BF-2C20-457D-9CD4-356C41CEAA1A
++g_f_e_palettes_lang__presets_c_en_gb	3254563A-DF99-461F-B0CE-A832F5ECAE8B
++g_f_e_palettes_lang__presets_c_en_us	F6085C78-4080-499F-A3AF-13CABF967FF7
++g_f_e_palettes_lang__presets_c_es	1D743036-1141-45F8-92AA-D40741F567C5
++g_f_e_palettes_lang__presets_c_et	14427981-A169-4247-9D8A-E923429A5F4F
++g_f_e_palettes_lang__presets_c_fi	63A1625C-9AC9-4796-AF48-67EFBDF97D2F
++g_f_e_palettes_lang__presets_c_fr	76BAE006-6507-4161-B066-53D90DA304E7
++g_f_e_palettes_lang__presets_c_gu_in	80C753DA-5446-49DC-948F-59199AD02D7C
++g_f_e_palettes_lang__presets_c_he	1FA01A7C-EF68-48AB-AE27-804A4C7B76BF
++g_f_e_palettes_lang__presets_c_hi_in	E2F3056F-A295-4B68-92E4-D70D39E1B99F
++g_f_e_palettes_lang__presets_c_hr	35661F50-E668-4AC7-9F11-5FBB82ABA33E
++g_f_e_palettes_lang__presets_c_hu	E9AC643A-C19F-4193-AD80-7A02C1A9559D
++g_f_e_palettes_lang__presets_c_it	0DB656C0-76F2-444D-B2D7-E0EE550D4CB8
++g_f_e_palettes_lang__presets_c_ja	C5AF9019-59BB-47CA-B94F-1AC21F488A37
++g_f_e_palettes_lang__presets_c_km	BD919EBF-CEE5-4A9E-A495-FE88BFBFD13D
++g_f_e_palettes_lang__presets_c_ko	A81103EA-E315-461A-8C94-F4202674C2B9
++g_f_e_palettes_lang__presets_c_lt	C0E97ADB-F828-4F07-9B47-1956519DB466
++g_f_e_palettes_lang__presets_c_lv	D84F60E9-F3F4-4A6C-B8F8-A4FD492E1E9C
++g_f_e_palettes_lang__presets_c_mk	A1C1406C-97DE-422B-AC06-4C588F198770
++g_f_e_palettes_lang__presets_c_mr_in	5EC85A94-BDC7-46F8-886C-C03743DAD51A
++g_f_e_palettes_lang__presets_c_nb	2B849404-ABFE-4C59-9F01-B3250583CA43
++g_f_e_palettes_lang__presets_c_nl	D3C71D4C-BBFE-4ACB-B563-D9A30BE2B190
++g_f_e_palettes_lang__presets_c_nn	EF6B0E46-DF24-40B5-A71D-4A613376893D
++g_f_e_palettes_lang__presets_c_pa_in	8341101E-9A53-4D82-8DE7-4637B4F779CF
++g_f_e_palettes_lang__presets_c_pl	E615D3FD-5EE4-4D87-B336-49601F69C560
++g_f_e_palettes_lang__presets_c_pt	3C05533D-0510-48B9-8A94-CD878C5625D4
++g_f_e_palettes_lang__presets_c_pt_br	41FD7492-BDA8-413A-918D-1781411A0383
++g_f_e_palettes_lang__presets_c_ru	579BA832-E8BE-4047-9DB7-BDDCA62EF555
++g_f_e_palettes_lang__presets_c_rw	EC5FAF1D-A793-4382-BC05-FFA9F1AE8B88
++g_f_e_palettes_lang__presets_c_sk	4B119DE3-E8B9-40D3-9A43-971C2242999A
++g_f_e_palettes_lang__presets_c_sl	F6F25981-0672-42F8-8259-9B50B77AF434
++g_f_e_palettes_lang__presets_c_sv	93F3F7EC-9DA4-4CDC-A858-03A19735EEBC
++g_f_e_palettes_lang__presets_c_ta_in	F15C3F6D-F971-41F2-AAF9-1A16966FA793
++g_f_e_palettes_lang__presets_c_tr	099AADC2-4831-4F17-AEF7-101357A3C114
++g_f_e_palettes_lang__presets_c_vi	3B54E392-9480-4E3B-9C0C-C62F13EBFAC3
++g_f_e_palettes_lang__presets_c_xh	BE3D87ED-0638-44BF-BEA1-87663DF7F684
++g_f_e_palettes_lang__presets_c_zh_cn	8AA2CA49-1424-4C44-8F4F-B71A6136E7DF
++g_f_e_palettes_lang__presets_c_zh_tw	9309293C-46F4-4BAC-A61B-5465057ED60B
++g_f_e_palettes_lang__presets_c_zu	EBE5C270-6F6E-4577-9981-759494A989AC
++g_f_e_poll_asp__share_c_webcast	18189046-92EB-46AC-9264-E25E6728208A
++g_f_e_poll_pl__share_c_webcast	2FD59ADF-46A7-43E2-938B-DCAD8930E808
++g_f_e_round_gorilla_zip__share_c_wizard_web_buttons	2AB54D11-B5D7-4915-BF42-8177B0A39FD7
++g_f_e_round_white_zip__share_c_wizard_web_buttons	FA964172-BED2-4F47-AA70-0B8A4140F673
++g_f_e_savepic_asp__share_c_webcast	3FA59DA2-1DDF-4D7F-82B8-EBE4A7EB8676
++g_f_e_savepic_pl__share_c_webcast	DE54B434-6711-4B6F-822D-FB7495C25501
++g_f_e_show_asp__share_c_webcast	B29CB73C-883F-471D-BEF9-8634E4A49A75
++g_f_e_show_pl__share_c_webcast	0F5A98B0-AF57-424A-8420-81B7A39F5650
++g_f_e_simple_zip__share_c_wizard_web_buttons	87EFCDAB-E2B8-446C-A084-D548BFF72048
++g_f_e_square_blue_zip__share_c_wizard_web_buttons	D08F1873-B0B2-4E09-BD87-7D47DE120B87
++g_f_e_square_gray_zip__share_c_wizard_web_buttons	B9342721-E695-4543-AAAB-01B487E1B5C0
++g_f_e_square_green_zip__share_c_wizard_web_buttons	02F16AE0-02D9-46E5-93A0-984B7B064A39
++g_f_e_square_red_zip__share_c_wizard_web_buttons	EBE388A1-E0B6-4F62-A307-1D49938A6EC8
++g_f_e_square_yellow_zip__share_c_wizard_web_buttons	B23B4C73-1D01-4039-B47D-231B4581057E
++g_f_e_symbols__share_c_symbol	7498BDDA-0D92-467C-8616-CD368343FAF2
++g_f_e_tpllayoutimpr_lang__share_template_af_layout_af	5B14C4AC-ED08-4CBD-9F39-0739505C2572
++g_f_e_tpllayoutimpr_lang__share_template_ar_layout_ar	B57774DD-A984-42C3-AD45-BB80A02AFE45
++g_f_e_tpllayoutimpr_lang__share_template_be_by_layout_be_by	A71D9FE2-8935-4BD4-B73B-9AAD3B54A12B
++g_f_e_tpllayoutimpr_lang__share_template_bg_layout_bg	C0EB2C53-8DA5-485F-B3AB-76784FD987F7
++g_f_e_tpllayoutimpr_lang__share_template_bn_in_layout_bn_in	B28D0195-223D-4918-8FF9-843E4F5AF49D
++g_f_e_tpllayoutimpr_lang__share_template_br_layout_br	02845A9B-7FAF-4C6D-A651-983F22DDE8D1
++g_f_e_tpllayoutimpr_lang__share_template_ca_layout_ca	66FB53C0-6029-484E-B25E-794628007E42
++g_f_e_tpllayoutimpr_lang__share_template_cs_layout_cs	BF141974-9640-40EF-855B-9C60FF784692
++g_f_e_tpllayoutimpr_lang__share_template_cy_layout_cy	D23C3C83-27B6-426E-A6DB-4F054D43F1D7
++g_f_e_tpllayoutimpr_lang__share_template_da_layout_da	ECC93FC4-0BDC-4BAB-B463-A6A759C9EB2E
++g_f_e_tpllayoutimpr_lang__share_template_de_layout_de	F9E6DEBE-88EE-4E74-ACCC-D62490AA3089
++g_f_e_tpllayoutimpr_lang__share_template_el_layout_el	21866A7C-D063-4974-B6E7-794D8D2581F4
++g_f_e_tpllayoutimpr_lang__share_template_en_gb_layout_en_gb	0104BC1A-07A0-4047-8710-82B99CF1CAEA
++g_f_e_tpllayoutimpr_lang__share_template_en_us_layout_en_us	36DE2F60-2787-49C9-A9E5-1C14AD985641
++g_f_e_tpllayoutimpr_lang__share_template_es_layout_es	94854D72-C340-440C-9F3A-1DD0382077D1
++g_f_e_tpllayoutimpr_lang__share_template_et_layout_et	D848B1B7-E6CB-408C-913A-5A1E328B4C14
++g_f_e_tpllayoutimpr_lang__share_template_fi_layout_fi	73631AE3-B0D3-444F-BBA0-4FEB6BED28FB
++g_f_e_tpllayoutimpr_lang__share_template_fr_layout_fr	207C7277-E4E6-4A18-8BB4-F122D8497DA1
++g_f_e_tpllayoutimpr_lang__share_template_gu_in_layout_gu_in	7B9D12A5-016B-4718-BFCB-E91B523BEE8F
++g_f_e_tpllayoutimpr_lang__share_template_he_layout_he	5EE5B9D7-45B1-43DF-AD37-EAF3CB279873
++g_f_e_tpllayoutimpr_lang__share_template_hi_in_layout_hi_in	5664ADFA-A1FE-484F-8FD5-572E595C9600
++g_f_e_tpllayoutimpr_lang__share_template_hr_layout_hr	6C2AEC07-19DE-4CD6-9784-B3FA47B349C0
++g_f_e_tpllayoutimpr_lang__share_template_hu_layout_hu	CE9D72C1-37F9-4D5A-AA79-D6806FFBC472
++g_f_e_tpllayoutimpr_lang__share_template_it_layout_it	753553B3-CC61-4401-9E71-DE0D102F0BC9
++g_f_e_tpllayoutimpr_lang__share_template_ja_layout_ja	D6CBCE27-5883-4221-A073-E5D411DB9EEA
++g_f_e_tpllayoutimpr_lang__share_template_km_layout_km	F4E5DA83-C5B8-41C6-83F2-3236D1139BA2
++g_f_e_tpllayoutimpr_lang__share_template_ko_layout_ko	3C1D5491-3C2B-49F7-80E3-DED36F69E5EB
++g_f_e_tpllayoutimpr_lang__share_template_lt_layout_lt	B6CB75D4-BB81-4361-8BF1-19A4C3284C77
++g_f_e_tpllayoutimpr_lang__share_template_lv_layout_lv	B1F382BC-C7CE-4371-B4E1-07CB36AF4FC0
++g_f_e_tpllayoutimpr_lang__share_template_mk_layout_mk	8A9F7245-2F87-4AB0-929C-73544533AB7E
++g_f_e_tpllayoutimpr_lang__share_template_mr_in_layout_mr_in	8F8D3DF6-F99D-4D19-945C-BCCF180BF83B
++g_f_e_tpllayoutimpr_lang__share_template_nb_layout_nb	A69CDB9D-1FCC-470C-B8C8-7AD6BFAA86E1
++g_f_e_tpllayoutimpr_lang__share_template_nl_layout_nl	AE75C76E-C998-4868-BB5F-EB91FCEE7E33
++g_f_e_tpllayoutimpr_lang__share_template_nn_layout_nn	B02FD7D1-B5E8-4B7A-A4D4-AEECFA22C849
++g_f_e_tpllayoutimpr_lang__share_template_pa_in_layout_pa_in	EBD7896D-2C78-4D75-AA54-E6306FE5BAF4
++g_f_e_tpllayoutimpr_lang__share_template_pl_layout_pl	827221F0-3111-423D-B9AE-3359E0BD3760
++g_f_e_tpllayoutimpr_lang__share_template_pt_br_layout_pt_br	13B31EFD-D855-4D2B-A73D-B33AA69AB7C8
++g_f_e_tpllayoutimpr_lang__share_template_pt_layout_pt	33BFC48B-BEA8-4E57-A24E-503F9446CAAF
++g_f_e_tpllayoutimpr_lang__share_template_ru_layout_ru	74CAAA2F-3B37-49CA-B321-4FB3692CE668
++g_f_e_tpllayoutimpr_lang__share_template_rw_layout_rw	D937A74F-7370-4781-A6B7-F7F6138CBA0F
++g_f_e_tpllayoutimpr_lang__share_template_sk_layout_sk	5920D7CF-9718-435E-B366-E3A83BFC5A85
++g_f_e_tpllayoutimpr_lang__share_template_sl_layout_sl	F86BBB9A-3733-435E-9199-2B3441B588F3
++g_f_e_tpllayoutimpr_lang__share_template_sv_layout_sv	E7F96523-E61E-4377-BAF8-704741D0769A
++g_f_e_tpllayoutimpr_lang__share_template_ta_in_layout_ta_in	1E30C69D-66C0-44C5-A98D-CC28BF18DF3C
++g_f_e_tpllayoutimpr_lang__share_template_tr_layout_tr	D7E3CC2C-4841-437C-8595-01BBFBF38E12
++g_f_e_tpllayoutimpr_lang__share_template_vi_layout_vi	F69FCA07-DAFF-4CF0-85B5-CC5C0A8CC0F2
++g_f_e_tpllayoutimpr_lang__share_template_xh_layout_xh	44806EAB-0D84-45A0-8B44-7537DA59B2AC
++g_f_e_tpllayoutimpr_lang__share_template_zh_cn_layout_zh_cn	BD9B3681-481B-4BB7-B196-E36D9D33C1F8
++g_f_e_tpllayoutimpr_lang__share_template_zh_tw_layout_zh_tw	E04D08B1-2BD7-4E3F-94D5-8ADDB3D3A7E1
++g_f_e_tpllayoutimpr_lang__share_template_zu_layout_zu	2FB5A131-E9AF-44AF-88F1-BC7AFDC61025
++g_f_e_tplpresntimpr_lang__share_template_af_presnt_af	0FFB83B0-9E1E-4DFF-9276-B64DC0D0E8F4
++g_f_e_tplpresntimpr_lang__share_template_ar_presnt_ar	10D556E6-FD0A-4109-A718-37D939B59179
++g_f_e_tplpresntimpr_lang__share_template_be_by_presnt_be_by	3E211225-163C-4C9E-A33E-13BC9908DC07
++g_f_e_tplpresntimpr_lang__share_template_bg_presnt_bg	066B12D6-0A64-44D8-8233-676CACE69487
++g_f_e_tplpresntimpr_lang__share_template_bn_in_presnt_bn_in	6E121AE9-8685-46C1-B25C-EC7F55694368
++g_f_e_tplpresntimpr_lang__share_template_br_presnt_br	F6AB4C41-29B3-4F9C-BA10-38204524C56D
++g_f_e_tplpresntimpr_lang__share_template_ca_presnt_ca	B3CD27F5-D531-4A7C-BF22-315C1A94A461
++g_f_e_tplpresntimpr_lang__share_template_cs_presnt_cs	26A67492-8082-4397-8F49-441623FDD840
++g_f_e_tplpresntimpr_lang__share_template_cy_presnt_cy	85E703F3-2AD2-4F39-8B4C-20BA266A7CEB
++g_f_e_tplpresntimpr_lang__share_template_da_presnt_da	9DE6725F-4515-4423-8438-A5C11B1C22CD
++g_f_e_tplpresntimpr_lang__share_template_de_presnt_de	5E6829B9-5DC5-4905-A4C0-7B1E9F8F684C
++g_f_e_tplpresntimpr_lang__share_template_el_presnt_el	8901A613-5E71-47A9-BF4D-82765E259C68
++g_f_e_tplpresntimpr_lang__share_template_en_gb_presnt_en_gb	34618152-F132-4CE6-88A1-5E0A8F755AEC
++g_f_e_tplpresntimpr_lang__share_template_en_us_presnt_en_us	349E6D6E-AF9F-4E0A-BF71-F2F03601BD6D
++g_f_e_tplpresntimpr_lang__share_template_es_presnt_es	398446E1-F129-439F-A53C-0570EB5EDAD2
++g_f_e_tplpresntimpr_lang__share_template_et_presnt_et	233D6774-F047-46B7-94D1-0E2D1F6B4458
++g_f_e_tplpresntimpr_lang__share_template_fi_presnt_fi	15D30651-83EA-4393-AAA0-5C872495DC38
++g_f_e_tplpresntimpr_lang__share_template_fr_presnt_fr	DB068A81-9929-4468-A0D8-6C4F7CBDBD70
++g_f_e_tplpresntimpr_lang__share_template_gu_in_presnt_gu_in	D4F88C62-DEBA-4D80-83B6-AABD33E5893B
++g_f_e_tplpresntimpr_lang__share_template_he_presnt_he	AEBFBE5E-7C93-4530-B109-5170090CE634
++g_f_e_tplpresntimpr_lang__share_template_hi_in_presnt_hi_in	CB221DB2-2172-4A32-AC40-10C6F2F29B5A
++g_f_e_tplpresntimpr_lang__share_template_hr_presnt_hr	B3B705AF-1C8C-42CE-941B-618441E6EC62
++g_f_e_tplpresntimpr_lang__share_template_hu_presnt_hu	C47819E4-7735-4148-9BE4-120B2D28CEE7
++g_f_e_tplpresntimpr_lang__share_template_it_presnt_it	BF67988F-F2C2-4A95-8F30-F70DC564A98B
++g_f_e_tplpresntimpr_lang__share_template_ja_presnt_ja	B516E98D-BDA5-4682-8B71-0A91A301BCF0
++g_f_e_tplpresntimpr_lang__share_template_km_presnt_km	3F0887CC-1816-437D-BE9F-4017E157CF08
++g_f_e_tplpresntimpr_lang__share_template_ko_presnt_ko	15C969C3-510A-4452-9EF2-FA91A0062173
++g_f_e_tplpresntimpr_lang__share_template_lt_presnt_lt	CBC28093-FB46-4BFA-92C7-F9BD4D50C1A1
++g_f_e_tplpresntimpr_lang__share_template_lv_presnt_lv	081CEF2D-53A7-4822-9A03-58E21BBC8EC5
++g_f_e_tplpresntimpr_lang__share_template_mk_presnt_mk	875170DA-95D2-4BD5-84E4-83B17FABAB17
++g_f_e_tplpresntimpr_lang__share_template_mr_in_presnt_mr_in	03F6FBD5-BA20-4D65-8CC1-A3F68894E900
++g_f_e_tplpresntimpr_lang__share_template_nb_presnt_nb	2AE36167-DED9-49D8-9BB0-C200BECA562E
++g_f_e_tplpresntimpr_lang__share_template_nl_presnt_nl	4E25441B-81E8-4419-8F2F-DEE4C826F25C
++g_f_e_tplpresntimpr_lang__share_template_nn_presnt_nn	20D2354A-86FF-483B-95AB-DD0A3179F3FA
++g_f_e_tplpresntimpr_lang__share_template_pa_in_presnt_pa_in	7ED1D5CB-8CC6-45F5-B7FB-37A959373F31
++g_f_e_tplpresntimpr_lang__share_template_pl_presnt_pl	57D33F62-B21E-417E-BD0E-4EE2BCE40B18
++g_f_e_tplpresntimpr_lang__share_template_pt_br_presnt_pt_br	AF74C4C3-8ADC-402C-B14F-5ACAC22A260A
++g_f_e_tplpresntimpr_lang__share_template_pt_presnt_pt	6704DF2F-A629-4D7C-AA2C-00F173DB874E
++g_f_e_tplpresntimpr_lang__share_template_ru_presnt_ru	65A122E2-96F8-4266-8F43-F05480D1C660
++g_f_e_tplpresntimpr_lang__share_template_rw_presnt_rw	A182E5D5-037B-4C98-A926-0F1AB91D84F3
++g_f_e_tplpresntimpr_lang__share_template_sk_presnt_sk	F3054D5C-A118-460B-BDBE-FE042BB4ED22
++g_f_e_tplpresntimpr_lang__share_template_sl_presnt_sl	026B2CD0-3C9B-45B5-B173-FD32E969AA83
++g_f_e_tplpresntimpr_lang__share_template_sv_presnt_sv	BCD47B58-BD39-43C8-8209-F224EB640EED
++g_f_e_tplpresntimpr_lang__share_template_ta_in_presnt_ta_in	89BB1244-2FD0-447B-803F-D88DBC18576D
++g_f_e_tplpresntimpr_lang__share_template_tr_presnt_tr	FD233B5F-BADE-479A-9CB6-6A7C72E6BD27
++g_f_e_tplpresntimpr_lang__share_template_vi_presnt_vi	1D11445F-44ED-4CDE-889D-9481FD902BE2
++g_f_e_tplpresntimpr_lang__share_template_xh_presnt_xh	1BD89F16-49C2-476F-AAB1-C64BDE05A243
++g_f_e_tplpresntimpr_lang__share_template_zh_cn_presnt_zh_cn	D2619902-5ED3-45CB-A6B8-5DDA0A3A0637
++g_f_e_tplpresntimpr_lang__share_template_zh_tw_presnt_zh_tw	DE1225FA-EDFC-464D-BDB5-83DCF7F51D54
++g_f_e_tplpresntimpr_lang__share_template_zu_presnt_zu	4CAC6B6E-581A-4AE7-8952-D497248DF819
++g_f_e_tplwizagenda_lang__share_template_af_wizard_agenda_af	E7227D39-75DE-4466-B96B-ABF4453E2B39
++g_f_e_tplwizagenda_lang__share_template_ar_wizard_agenda_ar	C15A68FA-C90E-4466-ADF7-3AFEA5568EB8
++g_f_e_tplwizagenda_lang__share_template_be_by_wizard_agenda_be_by	7B4B115A-1456-4CBE-BEF3-2514218BFD30
++g_f_e_tplwizagenda_lang__share_template_bg_wizard_agenda_bg	7C706DAE-C127-4A08-A1D7-01DF2A94A8A5
++g_f_e_tplwizagenda_lang__share_template_bn_in_wizard_agenda_bn_in	7F415F52-A8E3-4748-8260-195FA6B5F0D0
++g_f_e_tplwizagenda_lang__share_template_br_wizard_agenda_br	74198EC0-BC39-4935-9061-5387C30A1BD1
++g_f_e_tplwizagenda_lang__share_template_ca_wizard_agenda_ca	D968E8DD-0989-407C-B9E4-8E8EAEA9FC7F
++g_f_e_tplwizagenda_lang__share_template_cs_wizard_agenda_cs	25D45E8D-07EC-428C-A204-2D231E4F6C6C
++g_f_e_tplwizagenda_lang__share_template_cy_wizard_agenda_cy	CA48D853-C0F3-4DCC-B9ED-75A13A90F356
++g_f_e_tplwizagenda_lang__share_template_da_wizard_agenda_da	C78FA3C2-5742-491B-A89C-ED940D22B4E3
++g_f_e_tplwizagenda_lang__share_template_de_wizard_agenda_de	A14570CC-21AA-4415-809D-F4D800CEBE89
++g_f_e_tplwizagenda_lang__share_template_el_wizard_agenda_el	96C22412-DB79-420C-9C10-C90885A1088A
++g_f_e_tplwizagenda_lang__share_template_en_gb_wizard_agenda_en_gb	1B7EC3E7-B763-4750-BB03-68C661BE1D18
++g_f_e_tplwizagenda_lang__share_template_en_us_wizard_agenda_en_us	F5F6AB7E-7185-459E-AB1A-08C0C1179722
++g_f_e_tplwizagenda_lang__share_template_es_wizard_agenda_es	D7DFBA66-9D56-47BD-A646-AF41F312AC56
++g_f_e_tplwizagenda_lang__share_template_et_wizard_agenda_et	83FA2265-CD32-45AA-9DC9-944BF8DBB687
++g_f_e_tplwizagenda_lang__share_template_fi_wizard_agenda_fi	2D481F18-E460-4F50-A8F5-1E366D6CECF3
++g_f_e_tplwizagenda_lang__share_template_fr_wizard_agenda_fr	92D3F814-9056-415F-A08E-DF4D72DB7A07
++g_f_e_tplwizagenda_lang__share_template_gu_in_wizard_agenda_gu_in	63449752-4608-4B88-B6AD-0EE9F76B129B
++g_f_e_tplwizagenda_lang__share_template_he_wizard_agenda_he	3F1E2C48-C927-47C3-9AE3-E964F6E8DE7B
++g_f_e_tplwizagenda_lang__share_template_hi_in_wizard_agenda_hi_in	EA25C5A9-0CC8-441F-A681-215877DEA643
++g_f_e_tplwizagenda_lang__share_template_hr_wizard_agenda_hr	9C9C0232-AC71-4F89-AD6B-3BE77DE1841C
++g_f_e_tplwizagenda_lang__share_template_hu_wizard_agenda_hu	95EF5A5A-776A-46FF-ABE7-85F71A303D13
++g_f_e_tplwizagenda_lang__share_template_it_wizard_agenda_it	62019AE1-D774-4165-A812-29A122B610BD
++g_f_e_tplwizagenda_lang__share_template_ja_wizard_agenda_ja	9F104CAD-D30F-46E2-9C5D-51A2A0EB3851
++g_f_e_tplwizagenda_lang__share_template_km_wizard_agenda_km	FD938C92-1871-4D37-8311-4BF4D6AC9FD9
++g_f_e_tplwizagenda_lang__share_template_ko_wizard_agenda_ko	7609AD14-1984-4503-B6D2-64E9CF7F9839
++g_f_e_tplwizagenda_lang__share_template_lt_wizard_agenda_lt	07455CD9-C8A3-4F30-AFFE-AA69DA2A05DA
++g_f_e_tplwizagenda_lang__share_template_lv_wizard_agenda_lv	123B1EE8-13A2-4757-AC5E-67AF6D59595D
++g_f_e_tplwizagenda_lang__share_template_mk_wizard_agenda_mk	AF3EC6D2-F94F-46C6-9C40-D44A65A29833
++g_f_e_tplwizagenda_lang__share_template_mr_in_wizard_agenda_mr_in	EA7BA118-5CE1-4D07-BCCE-AB0AC4217375
++g_f_e_tplwizagenda_lang__share_template_nb_wizard_agenda_nb	70197736-3695-442F-B438-A2C237D60CD2
++g_f_e_tplwizagenda_lang__share_template_nl_wizard_agenda_nl	FC074053-DD48-4B38-88B8-47E7423E21D5
++g_f_e_tplwizagenda_lang__share_template_nn_wizard_agenda_nn	E4CCF361-B20F-448F-8265-D63CA290ACD3
++g_f_e_tplwizagenda_lang__share_template_pa_in_wizard_agenda_pa_in	07634F2C-069B-4130-86B7-CDDCD8776843
++g_f_e_tplwizagenda_lang__share_template_pl_wizard_agenda_pl	7A3A7F76-92F9-4845-9F2D-1CF1BBDCD4D3
++g_f_e_tplwizagenda_lang__share_template_pt_br_wizard_agenda_pt_br	D836F3C9-F6CA-4639-AC28-79F723D0D910
++g_f_e_tplwizagenda_lang__share_template_pt_wizard_agenda_pt	20D13F84-0484-411D-BE57-D38B79DDCC09
++g_f_e_tplwizagenda_lang__share_template_ru_wizard_agenda_ru	4660B2E5-768D-400B-A0C8-9451E6791596
++g_f_e_tplwizagenda_lang__share_template_rw_wizard_agenda_rw	9A98D6B9-050F-46AF-9709-EBAE8E7647AC
++g_f_e_tplwizagenda_lang__share_template_sk_wizard_agenda_sk	B3FDE9A5-87D7-4906-97C8-E26201CB67D2
++g_f_e_tplwizagenda_lang__share_template_sl_wizard_agenda_sl	094CE3C1-F5C4-4CB5-B425-88120811AE24
++g_f_e_tplwizagenda_lang__share_template_sv_wizard_agenda_sv	72B2E3AA-3582-485C-B52B-475FD7C40C27
++g_f_e_tplwizagenda_lang__share_template_ta_in_wizard_agenda_ta_in	64305292-D952-4306-9847-8F2ACA9359C6
++g_f_e_tplwizagenda_lang__share_template_tr_wizard_agenda_tr	15BAE49B-6DDC-41E5-B855-BDEF3AD5C728
++g_f_e_tplwizagenda_lang__share_template_vi_wizard_agenda_vi	8A2AA200-1D77-4F33-8187-8B6E9569D766
++g_f_e_tplwizagenda_lang__share_template_xh_wizard_agenda_xh	56F3B5E7-AD54-4ABB-9B88-D3331D1FF6BC
++g_f_e_tplwizagenda_lang__share_template_zh_cn_wizard_agenda_zh_cn	8A111555-A1EF-4C43-A77A-D33CFE8E9580
++g_f_e_tplwizagenda_lang__share_template_zh_tw_wizard_agenda_zh_tw	0CB2C433-E58A-40A2-8874-FE3B31783A55
++g_f_e_tplwizagenda_lang__share_template_zu_wizard_agenda_zu	696FEF1F-FD91-4113-A41E-F0A884291D5E
++g_f_e_tplwizbitmap__share_template_af_wizard_bitmap_af	2F5E9AF9-E64C-4A85-85E6-0A3BD5CFBF83
++g_f_e_tplwizbitmap__share_template_ar_wizard_bitmap_ar	1E3921AD-FBE6-48B0-90A2-868540A10E89
++g_f_e_tplwizbitmap__share_template_be_by_wizard_bitmap_be_by	9F31F004-D1C5-461A-94D5-908C3A99F697
++g_f_e_tplwizbitmap__share_template_bg_wizard_bitmap_bg	C0C74547-99E7-466E-81CA-6C8053C1E56B
++g_f_e_tplwizbitmap__share_template_bn_in_wizard_bitmap_bn_in	93179C19-C127-4A22-AC96-6F2F51265C18
++g_f_e_tplwizbitmap__share_template_br_wizard_bitmap_br	D5083009-C620-40F3-AD90-4BBE998FC008
++g_f_e_tplwizbitmap__share_template_ca_wizard_bitmap_ca	FDC3A5C9-F95B-4924-8E10-18627A140DDE
++g_f_e_tplwizbitmap__share_template_cs_wizard_bitmap_cs	6E7703CC-34BB-4B6C-B36B-9FF56E8F853F
++g_f_e_tplwizbitmap__share_template_cy_wizard_bitmap_cy	A6A4AAC5-1F98-4C4B-8BA1-2293FD5618AA
++g_f_e_tplwizbitmap__share_template_da_wizard_bitmap_da	44C02364-2310-45A8-AE39-0CE8F73F8B52
++g_f_e_tplwizbitmap__share_template_de_wizard_bitmap_de	67EDDF28-D92D-4308-9F05-52281F9E4F1F
++g_f_e_tplwizbitmap__share_template_el_wizard_bitmap_el	A859E87B-FEAF-4385-B3CD-97EC58979F11
++g_f_e_tplwizbitmap__share_template_en_gb_wizard_bitmap_en_gb	C0658DED-A24E-4127-AA7C-B84F6A97ACDB
++g_f_e_tplwizbitmap__share_template_en_us_wizard_bitmap_en_us	9CD6BEEF-1357-4094-8B98-0AA7ED09A9B9
++g_f_e_tplwizbitmap__share_template_es_wizard_bitmap_es	A6D815AC-DB4F-40C4-A490-AC5F72FB0714
++g_f_e_tplwizbitmap__share_template_et_wizard_bitmap_et	1CB605F0-A9D2-4A1E-A5F3-869AB00D7B94
++g_f_e_tplwizbitmap__share_template_fi_wizard_bitmap_fi	0358FC0A-2F98-4715-B0B1-4D9AAE366809
++g_f_e_tplwizbitmap__share_template_fr_wizard_bitmap_fr	F2C2A7CB-EDA9-42E1-8A1D-02C618228B51
++g_f_e_tplwizbitmap__share_template_gu_in_wizard_bitmap_gu_in	A9AE3535-C32F-4AF0-835D-CC08AB0D29B4
++g_f_e_tplwizbitmap__share_template_he_wizard_bitmap_he	71A035D6-112E-4E6C-860B-37C241C092D6
++g_f_e_tplwizbitmap__share_template_hi_in_wizard_bitmap_hi_in	912E4E58-3112-4572-958A-92BA6E870A0E
++g_f_e_tplwizbitmap__share_template_hr_wizard_bitmap_hr	14520A9C-99A1-4F44-A63E-128DD080BA1F
++g_f_e_tplwizbitmap__share_template_hu_wizard_bitmap_hu	07758C9B-C0BA-49A7-993E-ADA3FB0B6400
++g_f_e_tplwizbitmap__share_template_it_wizard_bitmap_it	C5356845-2AE4-445E-9356-ED5831CAC785
++g_f_e_tplwizbitmap__share_template_ja_wizard_bitmap_ja	6FA20FFD-B743-49F2-A261-27704480AC65
++g_f_e_tplwizbitmap__share_template_km_wizard_bitmap_km	8DCF55C3-C54D-4E70-9F2D-0D13B5C9AFF8
++g_f_e_tplwizbitmap__share_template_ko_wizard_bitmap_ko	54FA93E2-C539-4B30-BA2C-09B4B8906C26
++g_f_e_tplwizbitmap__share_template_lt_wizard_bitmap_lt	911EFADA-DAE6-4508-86F4-D9CC4B2BC75E
++g_f_e_tplwizbitmap__share_template_lv_wizard_bitmap_lv	F8C28FF4-8057-4870-B4B7-58D8957D8C41
++g_f_e_tplwizbitmap__share_template_mk_wizard_bitmap_mk	38B41FB2-31C2-4E60-BDB8-5061B6DEEA86
++g_f_e_tplwizbitmap__share_template_mr_in_wizard_bitmap_mr_in	116764CA-C191-433E-917E-3CB33C49AF45
++g_f_e_tplwizbitmap__share_template_nb_wizard_bitmap_nb	091C72D0-672B-41EF-BDE9-7348C77D3B74
++g_f_e_tplwizbitmap__share_template_nl_wizard_bitmap_nl	1E6F38A3-CA99-4AD8-B354-AA33BC5535DA
++g_f_e_tplwizbitmap__share_template_nn_wizard_bitmap_nn	95500357-9242-4706-8EC5-4776A5DC5415
++g_f_e_tplwizbitmap__share_template_pa_in_wizard_bitmap_pa_in	CD8CA167-D702-4291-9AB1-1457BE6D76C4
++g_f_e_tplwizbitmap__share_template_pl_wizard_bitmap_pl	21471B9A-C3BB-47AB-A2F0-7E415163D2BC
++g_f_e_tplwizbitmap__share_template_pt_br_wizard_bitmap_pt_br	14C874FB-AB8B-4D08-B944-3DA8D250E7F6
++g_f_e_tplwizbitmap__share_template_pt_wizard_bitmap_pt	DE6D7F1A-E0D7-43EF-B54B-0E7CB55B4E2B
++g_f_e_tplwizbitmap__share_template_ru_wizard_bitmap_ru	27B4FAB9-1120-471F-990B-1EC45DDCB29E
++g_f_e_tplwizbitmap__share_template_rw_wizard_bitmap_rw	8758A25A-04F0-4839-8A1A-5B456B670795
++g_f_e_tplwizbitmap__share_template_sk_wizard_bitmap_sk	B53B1B07-1397-448B-8151-C3E17DADC3F3
++g_f_e_tplwizbitmap__share_template_sl_wizard_bitmap_sl	E8411935-B691-473C-A892-CD17ABD4E896
++g_f_e_tplwizbitmap__share_template_sv_wizard_bitmap_sv	B0CBFA40-EBEE-4CA0-BF49-A631B36BD8EB
++g_f_e_tplwizbitmap__share_template_ta_in_wizard_bitmap_ta_in	ED0D144F-CDB7-4916-BED9-B6D9EB96677E
++g_f_e_tplwizbitmap__share_template_tr_wizard_bitmap_tr	53856EF9-CDD0-47A8-AC3C-E1F985CAC464
++g_f_e_tplwizbitmap__share_template_vi_wizard_bitmap_vi	E542ED7F-5D2A-46FC-9AC3-98A7636C7B92
++g_f_e_tplwizbitmap__share_template_xh_wizard_bitmap_xh	76CA1DEE-2E01-4218-9B59-AAAA2ADB59AA
++g_f_e_tplwizbitmap__share_template_zh_cn_wizard_bitmap_zh_cn	E1B3F8ED-5969-4134-A7D7-770EED7FE419
++g_f_e_tplwizbitmap__share_template_zh_tw_wizard_bitmap_zh_tw	62F716C8-9BCF-467C-BE47-CA748BC49C20
++g_f_e_tplwizbitmap__share_template_zu_wizard_bitmap_zu	043A09F2-8007-49ED-AA54-EF5507316DFA
++g_f_e_tplwizdesktop_lang__share_template_af_internal_af	DB835A04-0334-4D92-B6B0-746684929E4B
++g_f_e_tplwizdesktop_lang__share_template_ar_internal_ar	5F22D9E6-5C91-4663-B39E-D0921541C656
++g_f_e_tplwizdesktop_lang__share_template_be_by_internal_be_by	C589B63E-66CB-46FC-A167-28364199C921
++g_f_e_tplwizdesktop_lang__share_template_bg_internal_bg	B39706DE-D835-4841-A36A-B899DD95A201
++g_f_e_tplwizdesktop_lang__share_template_bn_in_internal_bn_in	3A2FD234-A025-46E1-82B0-CF773BD159E1
++g_f_e_tplwizdesktop_lang__share_template_br_internal_br	664DCFCC-DE65-495D-AE9A-24C79FE4E8DB
++g_f_e_tplwizdesktop_lang__share_template_ca_internal_ca	47868B8F-FFB3-4481-B074-EB4D8ACF405B
++g_f_e_tplwizdesktop_lang__share_template_cs_internal_cs	997D1CC6-7FBE-4667-9281-964A140098D5
++g_f_e_tplwizdesktop_lang__share_template_cy_internal_cy	2EC0A0FD-52BC-41A1-A24F-D538494842BB
++g_f_e_tplwizdesktop_lang__share_template_da_internal_da	2A4E9B63-78F0-44ED-9D99-41FB7D5370CC
++g_f_e_tplwizdesktop_lang__share_template_de_internal_de	0FC6664C-E37D-4934-A366-BE2DE7A54CCB
++g_f_e_tplwizdesktop_lang__share_template_el_internal_el	45ADF0BE-3A8E-447D-84BE-AB30E0FF07D5
++g_f_e_tplwizdesktop_lang__share_template_en_gb_internal_en_gb	C37914E3-7507-4713-965A-FB5F65770115
++g_f_e_tplwizdesktop_lang__share_template_en_us_internal_en_us	D663FB8F-77FF-4277-A625-18A0109090D1
++g_f_e_tplwizdesktop_lang__share_template_es_internal_es	C1A751A6-6A23-4D9F-A2B4-49A028246AA9
++g_f_e_tplwizdesktop_lang__share_template_et_internal_et	96B9807C-5C4C-45E4-AB24-BB33152B48F7
++g_f_e_tplwizdesktop_lang__share_template_fi_internal_fi	AA11DC88-CED3-49C3-BA99-D24075DA778C
++g_f_e_tplwizdesktop_lang__share_template_fr_internal_fr	7B591520-E937-4316-AC4E-15954BB005BD
++g_f_e_tplwizdesktop_lang__share_template_gu_in_internal_gu_in	5AACDFE5-CF91-4DE7-B806-F2935C7B0C23
++g_f_e_tplwizdesktop_lang__share_template_he_internal_he	AA9E4E57-7061-43E8-99AA-E50F9C0EAD7F
++g_f_e_tplwizdesktop_lang__share_template_hi_in_internal_hi_in	F0671D9B-1230-41A8-B73B-89A8CEB69C69
++g_f_e_tplwizdesktop_lang__share_template_hr_internal_hr	CA07E799-15B5-439C-BD6A-971D8BE0C458
++g_f_e_tplwizdesktop_lang__share_template_hu_internal_hu	40070F71-09FF-4BE2-98FF-125991788C62
++g_f_e_tplwizdesktop_lang__share_template_it_internal_it	BD9D5211-62B6-438D-AA0C-9A2A351145DD
++g_f_e_tplwizdesktop_lang__share_template_ja_internal_ja	D01DC565-061C-4BF0-A609-3E65A908FC8D
++g_f_e_tplwizdesktop_lang__share_template_km_internal_km	18A5054E-A622-41B6-B558-BA52C8D6A441
++g_f_e_tplwizdesktop_lang__share_template_ko_internal_ko	803A1F61-BFB7-4B1C-BA8E-D2EB770C03D2
++g_f_e_tplwizdesktop_lang__share_template_lt_internal_lt	DBE132CF-CC54-443F-91B0-06E9E32B04E8
++g_f_e_tplwizdesktop_lang__share_template_lv_internal_lv	EE02DCC7-8191-40D2-A58B-3DCBF477DDD0
++g_f_e_tplwizdesktop_lang__share_template_mk_internal_mk	D3340290-A6F4-4559-93E4-BEB8361E31F1
++g_f_e_tplwizdesktop_lang__share_template_mr_in_internal_mr_in	7AA67167-5BE4-40B2-9A1F-CEC5E77C5256
++g_f_e_tplwizdesktop_lang__share_template_nb_internal_nb	B038FF1D-BA6E-4DDA-BF51-709C611730A7
++g_f_e_tplwizdesktop_lang__share_template_nl_internal_nl	A3EB7D93-FC7A-436F-8091-ED57F54271B6
++g_f_e_tplwizdesktop_lang__share_template_nn_internal_nn	F035F50A-BF37-4EC3-A527-96A2E8FE4F97
++g_f_e_tplwizdesktop_lang__share_template_pa_in_internal_pa_in	28736860-16D2-42EC-8DD9-ACCFD076C47D
++g_f_e_tplwizdesktop_lang__share_template_pl_internal_pl	1624EF47-9C8A-4AEA-BE62-063E33BBCC0B
++g_f_e_tplwizdesktop_lang__share_template_pt_br_internal_pt_br	BEE33DA8-9B7A-4776-B259-CEAA3C374DD2
++g_f_e_tplwizdesktop_lang__share_template_pt_internal_pt	7C83C755-6ADE-4009-B834-72DA65F2900A
++g_f_e_tplwizdesktop_lang__share_template_ru_internal_ru	FFB3DEEB-5FA0-41E2-8F6C-BEAF9A58724F
++g_f_e_tplwizdesktop_lang__share_template_rw_internal_rw	14EB89C8-D96B-4F87-95B4-423B4FC99AB9
++g_f_e_tplwizdesktop_lang__share_template_sk_internal_sk	DD227543-B680-4AE3-B95C-BFC1E9EA10AD
++g_f_e_tplwizdesktop_lang__share_template_sl_internal_sl	01E76279-D872-4C92-B65F-AFEDA829E135
++g_f_e_tplwizdesktop_lang__share_template_sv_internal_sv	9C728FA3-45DE-4350-8A42-0AD89B81B4AD
++g_f_e_tplwizdesktop_lang__share_template_ta_in_internal_ta_in	81FEFE12-9D13-465D-81BD-C11B1AE0217D
++g_f_e_tplwizdesktop_lang__share_template_tr_internal_tr	BE258EA8-8E23-4F7A-88AB-8756DB9FD3E3
++g_f_e_tplwizdesktop_lang__share_template_vi_internal_vi	D64C3F57-9A62-4CFA-9A7E-D3F5CEED050D
++g_f_e_tplwizdesktop_lang__share_template_xh_internal_xh	85659CC8-768A-445F-8199-B10CFC9337E3
++g_f_e_tplwizdesktop_lang__share_template_zh_cn_internal_zh_cn	9D8101E5-2D68-47F2-B61A-DCDA9BC96395
++g_f_e_tplwizdesktop_lang__share_template_zh_tw_internal_zh_tw	F47BCE09-5208-4208-9108-D3921BD48210
++g_f_e_tplwizdesktop_lang__share_template_zu_internal_zu	BBDFF8D0-F6ED-40CD-84C6-F5C713B9AD24
++g_f_e_tplwizfax_lang__share_template_af_wizard_fax_af	E50460E5-0404-4F3A-9349-94018513BF28
++g_f_e_tplwizfax_lang__share_template_ar_wizard_fax_ar	71E37E54-CBC0-4EBD-8321-5EB3883944C3
++g_f_e_tplwizfax_lang__share_template_be_by_wizard_fax_be_by	0DFA6C9E-3D8E-45BD-839A-363AC1287EFC
++g_f_e_tplwizfax_lang__share_template_bg_wizard_fax_bg	4D6083ED-25F2-4FD4-ABCD-B3F943E21A7F
++g_f_e_tplwizfax_lang__share_template_bn_in_wizard_fax_bn_in	BFEA66BB-88CF-4590-ACCC-9592FEA9AD15
++g_f_e_tplwizfax_lang__share_template_br_wizard_fax_br	F244AF51-DE0D-4226-B802-C085F4E3BA01
++g_f_e_tplwizfax_lang__share_template_ca_wizard_fax_ca	D3A9602A-4570-4BD9-AB5E-F41365937022
++g_f_e_tplwizfax_lang__share_template_cs_wizard_fax_cs	669D80A1-CD48-4EAE-ADBA-F905887E8B14
++g_f_e_tplwizfax_lang__share_template_cy_wizard_fax_cy	3E978FCA-607A-48DC-B7DB-41E9E8E8C2DE
++g_f_e_tplwizfax_lang__share_template_da_wizard_fax_da	3DDC8C5D-8D53-4455-A7D4-C6E8D471B1B1
++g_f_e_tplwizfax_lang__share_template_de_wizard_fax_de	AA94CD91-0372-4759-8FD0-58C852505B6A
++g_f_e_tplwizfax_lang__share_template_el_wizard_fax_el	644BD82D-1939-48DF-AA66-4F7FC31FD489
++g_f_e_tplwizfax_lang__share_template_en_gb_wizard_fax_en_gb	413F702D-4E93-4CEA-89EA-476DE3B0B4F1
++g_f_e_tplwizfax_lang__share_template_en_us_wizard_fax_en_us	87676E40-DD96-483F-A15B-9C4BDA4ED734
++g_f_e_tplwizfax_lang__share_template_es_wizard_fax_es	78AB6911-58A8-42FF-AE27-B99869253972
++g_f_e_tplwizfax_lang__share_template_et_wizard_fax_et	7F48EF61-F4A8-4ADB-9CC1-582811E117BD
++g_f_e_tplwizfax_lang__share_template_fi_wizard_fax_fi	4304296B-B18E-4535-B707-2E3C1E34D104
++g_f_e_tplwizfax_lang__share_template_fr_wizard_fax_fr	AFE94F60-B06D-4A63-96BF-BB239A4C8BFA
++g_f_e_tplwizfax_lang__share_template_gu_in_wizard_fax_gu_in	6532612B-E31D-4196-88D7-585FD658BEA4
++g_f_e_tplwizfax_lang__share_template_he_wizard_fax_he	559094E4-3AEE-421A-8F19-5622B91BC220
++g_f_e_tplwizfax_lang__share_template_hi_in_wizard_fax_hi_in	DFD75B5D-A2E2-451C-8B75-864BCC3D5889
++g_f_e_tplwizfax_lang__share_template_hr_wizard_fax_hr	29752449-C05D-4420-A130-7F9BC986FA57
++g_f_e_tplwizfax_lang__share_template_hu_wizard_fax_hu	7CDF31E9-BC24-4553-AE7A-C24A71CCDE65
++g_f_e_tplwizfax_lang__share_template_it_wizard_fax_it	BE7393DB-E55E-4F1D-9A7B-2725E559DE71
++g_f_e_tplwizfax_lang__share_template_ja_wizard_fax_ja	FEE031F6-C613-4D33-B0B3-9A2503344C2F
++g_f_e_tplwizfax_lang__share_template_km_wizard_fax_km	BB6C8314-1670-445D-A137-25A3D022E905
++g_f_e_tplwizfax_lang__share_template_ko_wizard_fax_ko	B09A8304-12A5-4258-BD18-A77FF6D7C0CF
++g_f_e_tplwizfax_lang__share_template_lt_wizard_fax_lt	619A2106-7AC6-49FB-B704-66A3B5575163
++g_f_e_tplwizfax_lang__share_template_lv_wizard_fax_lv	5434EE2A-035C-45D4-A024-F93E1AC76668
++g_f_e_tplwizfax_lang__share_template_mk_wizard_fax_mk	6BF27075-B8B1-4BCB-AB0F-98EF23D397D1
++g_f_e_tplwizfax_lang__share_template_mr_in_wizard_fax_mr_in	D4412AA6-F700-480C-9ED2-639567194C2B
++g_f_e_tplwizfax_lang__share_template_nb_wizard_fax_nb	7AB44EE6-DA52-46E2-9D18-8C26F2580A72
++g_f_e_tplwizfax_lang__share_template_nl_wizard_fax_nl	111DC0CE-8F1A-42F3-A8CB-AA594B1C5868
++g_f_e_tplwizfax_lang__share_template_nn_wizard_fax_nn	C1C38317-1FE0-44B2-9D52-F5A2CFF056EC
++g_f_e_tplwizfax_lang__share_template_pa_in_wizard_fax_pa_in	48201737-F693-4CC4-BC16-546897A43715
++g_f_e_tplwizfax_lang__share_template_pl_wizard_fax_pl	8C9A1C92-2F10-4402-89D0-7D98EABB3975
++g_f_e_tplwizfax_lang__share_template_pt_br_wizard_fax_pt_br	BE9C2BBD-DEFA-4D58-9C5E-6D1A6E6EB380
++g_f_e_tplwizfax_lang__share_template_pt_wizard_fax_pt	2902860D-B821-4D17-8E39-F859174381C4
++g_f_e_tplwizfax_lang__share_template_ru_wizard_fax_ru	3090572A-7FB0-4097-A67F-446D2967DD33
++g_f_e_tplwizfax_lang__share_template_rw_wizard_fax_rw	D9BD6A65-1C43-4895-BE41-20D2B4BD3B57
++g_f_e_tplwizfax_lang__share_template_sk_wizard_fax_sk	E93388E9-3A6C-412D-857E-1E485E537527
++g_f_e_tplwizfax_lang__share_template_sl_wizard_fax_sl	BB030F31-C902-4584-960D-F129AA7309DD
++g_f_e_tplwizfax_lang__share_template_sv_wizard_fax_sv	10B4F8F5-968A-404D-858C-7BFB05DC2326
++g_f_e_tplwizfax_lang__share_template_ta_in_wizard_fax_ta_in	E8EB3F9C-E4C9-4FD2-890D-D38AA3267DC4
++g_f_e_tplwizfax_lang__share_template_tr_wizard_fax_tr	4EABBFA9-A942-4E5B-8558-7D2619A12AFB
++g_f_e_tplwizfax_lang__share_template_vi_wizard_fax_vi	1DE6BDAD-0CA2-4C05-A756-1063E580A6E7
++g_f_e_tplwizfax_lang__share_template_xh_wizard_fax_xh	C130D5BF-08BC-4BFE-AA87-0892BA6B4314
++g_f_e_tplwizfax_lang__share_template_zh_cn_wizard_fax_zh_cn	2742F1A1-2346-4EA9-86E9-8908C13296B3
++g_f_e_tplwizfax_lang__share_template_zh_tw_wizard_fax_zh_tw	277E3AAC-DE4B-4806-AD32-96323C6CC49E
++g_f_e_tplwizfax_lang__share_template_zu_wizard_fax_zu	50FBDFC2-EE50-40CF-8696-361C87270918
++g_f_e_tplwizletter__share_template_wizard_letter_bg	875537AA-6A6C-4F85-B75D-20A7CF073F0D
++g_f_e_tplwizletter__share_template_wizard_letter_cs	6C3AE6A3-0730-4153-A048-6A4E35D7852C
++g_f_e_tplwizletter__share_template_wizard_letter_da	962F28EA-7D45-4B30-B186-1FAF3F61D091
++g_f_e_tplwizletter__share_template_wizard_letter_de	34BE80E4-FA89-4ACE-8517-36AD90EF9B34
++g_f_e_tplwizletter__share_template_wizard_letter_en_gb	4221B5D7-41AD-460D-B012-839FE7C0EC4E
++g_f_e_tplwizletter__share_template_wizard_letter_en_us	B83ADE85-E7A8-4166-9219-7AD450C531A5
++g_f_e_tplwizletter__share_template_wizard_letter_es	B687E911-C93B-4C53-8716-AD4D2CD9DE97
++g_f_e_tplwizletter__share_template_wizard_letter_fr	515668E0-4653-4FDF-B51E-6C3FE1064F4F
++g_f_e_tplwizletter__share_template_wizard_letter_hu	BAF4080C-1C71-4C8B-98ED-F5150A7655DE
++g_f_e_tplwizletter__share_template_wizard_letter_it	5315D530-1404-4790-915B-3158FC2FFAB0
++g_f_e_tplwizletter__share_template_wizard_letter_ja	07DD8EFC-1080-4910-A371-D55C36305CE9
++g_f_e_tplwizletter__share_template_wizard_letter_km	CD8E5F99-1B33-4275-B89C-97EF973281AB
++g_f_e_tplwizletter__share_template_wizard_letter_ko	C2B7D118-D505-4741-A7E6-47879F1F1D3C
++g_f_e_tplwizletter__share_template_wizard_letter_nl	091E2528-BE6C-47F3-87CE-DAA6281ECFED
++g_f_e_tplwizletter__share_template_wizard_letter_pl	14B45B42-E256-4A44-9B78-00C5FADF1B77
++g_f_e_tplwizletter__share_template_wizard_letter_pt	E1DF67DD-25F7-4C00-9938-88197E3FAD4A
++g_f_e_tplwizletter__share_template_wizard_letter_pt_br	515E5A64-8EDC-4507-8D07-7826BD1363B8
++g_f_e_tplwizletter__share_template_wizard_letter_ru	083D37D2-BDA6-48BD-B307-63A91AA62AAA
++g_f_e_tplwizletter__share_template_wizard_letter_sk	B5A1A31B-882F-4D4F-AF6A-81CC43E5FD2A
++g_f_e_tplwizletter__share_template_wizard_letter_sl	3FC6C307-48CD-440D-B54D-E3A02C26D2CA
++g_f_e_tplwizletter__share_template_wizard_letter_sv	2B7402FD-8AA7-4E85-8A9C-0F50B80A330F
++g_f_e_tplwizletter__share_template_wizard_letter_tr	EC01AF86-79B9-494B-9171-C3606E212E44
++g_f_e_tplwizletter__share_template_wizard_letter_zh_cn	DAE7488E-63AE-4DB0-9F29-DC92B2963366
++g_f_e_tplwizletter__share_template_wizard_letter_zh_tw	F81CB370-7A9B-4079-A6B1-563843E022A4
++g_f_e_tplwizletter_lang__share_template_af_wizard_letter_en_us_af	67B0B5C6-D962-444D-8F24-358F2E32CA14
++g_f_e_tplwizletter_lang__share_template_ar_wizard_letter_en_us_ar	74ADCE8B-AF27-48C7-8718-0C582856191A
++g_f_e_tplwizletter_lang__share_template_be_by_wizard_letter_en_us_be_by	7A6B5550-05D1-4E18-8C2B-1A45F19BB0DB
++g_f_e_tplwizletter_lang__share_template_bg_wizard_letter_bg_bg	F567680F-16E7-4D49-9386-7E2187753D87
++g_f_e_tplwizletter_lang__share_template_bn_in_wizard_letter_en_us_bn_in	34DCBA20-E7D2-4270-801F-46BC7BC5591C
++g_f_e_tplwizletter_lang__share_template_br_wizard_letter_en_us_br	64BC32B6-5FF4-469C-88C4-9DC2E44F211A
++g_f_e_tplwizletter_lang__share_template_ca_wizard_letter_en_us_ca	DB49393F-23A2-4715-9995-2E887F0462D9
++g_f_e_tplwizletter_lang__share_template_cs_wizard_letter_cs_cs	C515A478-C31C-4EBB-A236-46F926FD9134
++g_f_e_tplwizletter_lang__share_template_cy_wizard_letter_en_us_cy	7D8080D7-7C2C-4F63-91AD-3E556AF55EBA
++g_f_e_tplwizletter_lang__share_template_da_wizard_letter_da_da	1E6A019B-4290-4D03-BC01-F8A8C92F70CA
++g_f_e_tplwizletter_lang__share_template_de_wizard_letter_de_de	22A1D17D-526B-4DFB-8E64-FFA47CF3AD28
++g_f_e_tplwizletter_lang__share_template_el_wizard_letter_en_us_el	3B763137-6B4E-44D9-A06A-A2862AE29565
++g_f_e_tplwizletter_lang__share_template_en_gb_wizard_letter_en_gb_en_gb	89E04358-92BD-4766-8CF3-EDFAE81CA993
++g_f_e_tplwizletter_lang__share_template_en_us_wizard_letter_en_us_en_us	131E1DEB-75A9-4B63-9C56-9ECD6A757877
++g_f_e_tplwizletter_lang__share_template_es_wizard_letter_es_es	12957BD2-2E8E-4FBC-9956-B5CCC11109D1
++g_f_e_tplwizletter_lang__share_template_et_wizard_letter_en_us_et	4C277512-C1AD-4A51-865C-BC1FDB68CEEA
++g_f_e_tplwizletter_lang__share_template_fi_wizard_letter_en_us_fi	96313D29-00CA-4D67-AE47-5B222FBF6DC4
++g_f_e_tplwizletter_lang__share_template_fr_wizard_letter_fr_fr	249A1A66-7B4A-497E-AC00-2A6E4F9FE91C
++g_f_e_tplwizletter_lang__share_template_gu_in_wizard_letter_en_us_gu_in	67CD3C2B-D4DE-4CEE-A7B0-5CEA154F316B
++g_f_e_tplwizletter_lang__share_template_he_wizard_letter_en_us_he	D422D2D9-2AEB-483F-AD44-69D8E3F26AA7
++g_f_e_tplwizletter_lang__share_template_hi_in_wizard_letter_en_us_hi_in	D3E2E40B-FB66-423B-B6DB-42760A9EE4AE
++g_f_e_tplwizletter_lang__share_template_hr_wizard_letter_en_us_hr	417E6925-8092-4CD5-9E82-3232E4621843
++g_f_e_tplwizletter_lang__share_template_hu_wizard_letter_hu_hu	157D4ECF-54AB-469C-BF04-31E130D33A0E
++g_f_e_tplwizletter_lang__share_template_it_wizard_letter_it_it	61082A20-3DC4-4B83-BA9E-DB47655B5534
++g_f_e_tplwizletter_lang__share_template_ja_wizard_letter_ja_ja	3AED3B36-4E55-4768-8222-D3341FC643C7
++g_f_e_tplwizletter_lang__share_template_km_wizard_letter_km_km	796238C0-4383-4D0E-9E39-F1E460CFBD2C
++g_f_e_tplwizletter_lang__share_template_ko_wizard_letter_ko_ko	3E9ECF81-F32E-4440-B525-096476807B11
++g_f_e_tplwizletter_lang__share_template_lt_wizard_letter_en_us_lt	BDCA3325-B201-41BC-98A6-3387C65626CF
++g_f_e_tplwizletter_lang__share_template_lv_wizard_letter_en_us_lv	E823A393-6B08-40C8-9C3E-CEB14CDD6D52
++g_f_e_tplwizletter_lang__share_template_mk_wizard_letter_en_us_mk	F55462D1-F688-4E8E-BF4F-F794936DB9F6
++g_f_e_tplwizletter_lang__share_template_mr_in_wizard_letter_en_us_mr_in	C23629F0-2510-4B9F-89C6-E38FE664FBA5
++g_f_e_tplwizletter_lang__share_template_nb_wizard_letter_en_us_nb	B07BE81A-4AB0-4F55-B571-BA635FA0E7F0
++g_f_e_tplwizletter_lang__share_template_nl_wizard_letter_nl_nl	18AC5F2D-4309-4E71-AEF0-D630542AC715
++g_f_e_tplwizletter_lang__share_template_nn_wizard_letter_en_us_nn	D28DA5CF-5FBC-485A-AA28-6B5189C64622
++g_f_e_tplwizletter_lang__share_template_pa_in_wizard_letter_en_us_pa_in	CD7140E4-0087-46EE-819B-50BDC9B77F5C
++g_f_e_tplwizletter_lang__share_template_pl_wizard_letter_pl_pl	3AF53649-F434-42E3-B9C0-DD182863D637
++g_f_e_tplwizletter_lang__share_template_pt_br_wizard_letter_pt_br_pt_br	7FEE5C85-0248-441C-B3EA-452E5C9D1580
++g_f_e_tplwizletter_lang__share_template_pt_wizard_letter_en_us_pt	ED1A95A6-DBB1-4A9A-956F-3ACF06D3B4DF
++g_f_e_tplwizletter_lang__share_template_pt_wizard_letter_pt_pt	C345F224-49F2-4F05-B20A-6A848418225C
++g_f_e_tplwizletter_lang__share_template_ru_wizard_letter_ru_ru	EB0B3831-F8D3-4611-93D5-B36B533F3DCB
++g_f_e_tplwizletter_lang__share_template_rw_wizard_letter_en_us_rw	0C227A43-F82B-4EDD-8CCE-58732EB07583
++g_f_e_tplwizletter_lang__share_template_sk_wizard_letter_sk_sk	DDFDFE43-2BA4-41FC-9846-9530DAA8C2CB
++g_f_e_tplwizletter_lang__share_template_sl_wizard_letter_sl_sl	9E6D6CAC-B1EE-44B1-AC74-17675A2AA6F8
++g_f_e_tplwizletter_lang__share_template_sv_wizard_letter_sv_sv	84D8DDD9-80E5-4104-94A9-4CF9BE617C22
++g_f_e_tplwizletter_lang__share_template_ta_in_wizard_letter_en_us_ta_in	0AC25010-03CC-49D6-B3D6-206E727E98DB
++g_f_e_tplwizletter_lang__share_template_tr_wizard_letter_tr_tr	72BF671E-EAEA-44A0-8BD4-2D4ED8F20A7D
++g_f_e_tplwizletter_lang__share_template_vi_wizard_letter_en_us_vi	32556481-C5C9-4BA9-85E8-2C1A02CB7A6F
++g_f_e_tplwizletter_lang__share_template_xh_wizard_letter_en_us_xh	3053FDA4-84DC-4835-A184-065BFBD20B2C
++g_f_e_tplwizletter_lang__share_template_zh_cn_wizard_letter_zh_cn_zh_cn	9449129F-AD45-4B74-8F05-296ACAA6A471
++g_f_e_tplwizletter_lang__share_template_zh_tw_wizard_letter_zh_tw_zh_tw	C57AFB4C-292A-4C0C-96D2-B768AE537C87
++g_f_e_tplwizletter_lang__share_template_zu_wizard_letter_en_us_zu	C0DD2F58-9C33-46B0-A8C2-547568443B83
++g_f_e_tplwizreport_lang__share_template_af_wizard_report_af	B08A376A-6849-4CCF-A842-2ED48B1AFA86
++g_f_e_tplwizreport_lang__share_template_ar_wizard_report_ar	9CB67C09-315A-4080-90A3-FE0600BCB3F2
++g_f_e_tplwizreport_lang__share_template_be_by_wizard_report_be_by	2ACCC668-5524-4B6D-B584-4D6916C9D55E
++g_f_e_tplwizreport_lang__share_template_bg_wizard_report_bg	A1E3C3CE-B66A-4A5E-A721-A89699C45362
++g_f_e_tplwizreport_lang__share_template_bn_in_wizard_report_bn_in	B180EC59-296B-44E4-856E-1EB79D14787D
++g_f_e_tplwizreport_lang__share_template_br_wizard_report_br	EA794946-AC6D-43E4-97D1-1D32732808ED
++g_f_e_tplwizreport_lang__share_template_ca_wizard_report_ca	A12B2206-E4BD-4CB3-8035-0B265499C114
++g_f_e_tplwizreport_lang__share_template_cs_wizard_report_cs	5AB7CE81-B9F2-4F35-B320-1258F0BE5EEB
++g_f_e_tplwizreport_lang__share_template_cy_wizard_report_cy	1D85E162-43CB-4CFF-B7FF-AFAA73E894D7
++g_f_e_tplwizreport_lang__share_template_da_wizard_report_da	628E4367-49F5-4011-90C3-9B87689976F2
++g_f_e_tplwizreport_lang__share_template_de_wizard_report_de	EDBF96B2-771B-4B30-A58F-28061D12E4B7
++g_f_e_tplwizreport_lang__share_template_el_wizard_report_el	BE6CD505-2C8E-4E2F-9A1C-24C85A449096
++g_f_e_tplwizreport_lang__share_template_en_gb_wizard_report_en_gb	CD40C847-98C5-4283-9325-4F7FDAC2C95F
++g_f_e_tplwizreport_lang__share_template_en_us_wizard_report_en_us	35CA0069-7AFF-4544-A7BC-402B3A9C6C7A
++g_f_e_tplwizreport_lang__share_template_es_wizard_report_es	26F66532-F5CD-418F-BAC1-F77DB25E9852
++g_f_e_tplwizreport_lang__share_template_et_wizard_report_et	CA6F8E14-F60A-4D46-B5AA-146FDA6ED77A
++g_f_e_tplwizreport_lang__share_template_fi_wizard_report_fi	55671114-2F6C-4EF0-A826-10FFB22E3978
++g_f_e_tplwizreport_lang__share_template_fr_wizard_report_fr	0D428006-BFDE-41F4-8C50-882B9A9BEA8C
++g_f_e_tplwizreport_lang__share_template_gu_in_wizard_report_gu_in	669874CD-8E07-4FA5-958D-5DE97D518482
++g_f_e_tplwizreport_lang__share_template_he_wizard_report_he	EDD7EEDC-7F29-4FD0-8B09-FD5593215DD7
++g_f_e_tplwizreport_lang__share_template_hi_in_wizard_report_hi_in	383DA269-8A23-41DE-9CA2-FC597BCFD37A
++g_f_e_tplwizreport_lang__share_template_hr_wizard_report_hr	F49C6712-E067-4304-8BE5-61122C60C740
++g_f_e_tplwizreport_lang__share_template_hu_wizard_report_hu	189DDA20-7A58-41E4-8183-DB0DE666EAA4
++g_f_e_tplwizreport_lang__share_template_it_wizard_report_it	216FAEB9-A7F9-4E85-9CFD-BDC147EBD081
++g_f_e_tplwizreport_lang__share_template_ja_wizard_report_ja	69BC63B7-CA6A-4A2F-84A1-2D383F5D4F4C
++g_f_e_tplwizreport_lang__share_template_km_wizard_report_km	CF6B80A9-3264-4A4F-9DA2-262B2F40EA1F
++g_f_e_tplwizreport_lang__share_template_ko_wizard_report_ko	7938BC61-B921-4FD2-B52B-CD27227897FC
++g_f_e_tplwizreport_lang__share_template_lt_wizard_report_lt	AF2BB543-F3E7-4B7E-9CFC-157B52F90CFF
++g_f_e_tplwizreport_lang__share_template_lv_wizard_report_lv	A258B88F-3CCF-4557-8881-68F7C6E2101E
++g_f_e_tplwizreport_lang__share_template_mk_wizard_report_mk	D503421B-FC42-46C2-A569-BAD23EF891EF
++g_f_e_tplwizreport_lang__share_template_mr_in_wizard_report_mr_in	AE2E1032-8C64-45DF-87BD-5F38FF15795E
++g_f_e_tplwizreport_lang__share_template_nb_wizard_report_nb	FE882290-3DDA-4220-B2EC-6968AD4F5C90
++g_f_e_tplwizreport_lang__share_template_nl_wizard_report_nl	DD5FE367-B0BE-4F96-9374-8F10C02FC300
++g_f_e_tplwizreport_lang__share_template_nn_wizard_report_nn	949864F3-25B4-42C8-ABF8-BBBD602841BE
++g_f_e_tplwizreport_lang__share_template_pa_in_wizard_report_pa_in	43A551E6-A499-4845-A969-31AC1222E153
++g_f_e_tplwizreport_lang__share_template_pl_wizard_report_pl	08A62E61-7C33-4252-A3A2-0867FA45140B
++g_f_e_tplwizreport_lang__share_template_pt_br_wizard_report_pt_br	48513B1C-EF4D-430C-8DDD-9914BB34BEBC
++g_f_e_tplwizreport_lang__share_template_pt_wizard_report_pt	4E1B2E7B-156E-46E2-9D03-9A19AA1AE844
++g_f_e_tplwizreport_lang__share_template_ru_wizard_report_ru	7ACB5EE8-638F-4837-8255-FDF8ABA56C6D
++g_f_e_tplwizreport_lang__share_template_rw_wizard_report_rw	5033089E-CA8E-49E9-A145-FB80E289BD09
++g_f_e_tplwizreport_lang__share_template_sk_wizard_report_sk	EB9813E3-B6C8-4192-9394-A390942E3C30
++g_f_e_tplwizreport_lang__share_template_sl_wizard_report_sl	8F667AF5-5B40-4F3F-BD6D-56CE06E557A6
++g_f_e_tplwizreport_lang__share_template_sv_wizard_report_sv	8B55BBD0-F1DB-4353-AE0F-13FEF9E6D6AE
++g_f_e_tplwizreport_lang__share_template_ta_in_wizard_report_ta_in	A9636395-389E-4B8B-B0B4-40F6A861E634
++g_f_e_tplwizreport_lang__share_template_tr_wizard_report_tr	47FDD68E-2DAD-44FC-B6F7-2992CB8B0800
++g_f_e_tplwizreport_lang__share_template_vi_wizard_report_vi	E46F9805-7D2A-453C-8410-1B4338EF219C
++g_f_e_tplwizreport_lang__share_template_xh_wizard_report_xh	7BB42432-5D80-4AF0-80B9-F6BD98292ADC
++g_f_e_tplwizreport_lang__share_template_zh_cn_wizard_report_zh_cn	6AB1593C-1ED1-47ED-8F90-F1A4B4F1F80A
++g_f_e_tplwizreport_lang__share_template_zh_tw_wizard_report_zh_tw	C2B71163-89F5-4513-A898-E7AC249744A8
++g_f_e_tplwizreport_lang__share_template_zu_wizard_report_zu	D4B41C28-01C1-4754-9F29-E1D86FA9878C
++g_f_e_tplwizstyles_lang__share_template_af_wizard_styles_af	58ECA6A8-9FBE-4EF9-BCDC-0978B1FE7F8D
++g_f_e_tplwizstyles_lang__share_template_ar_wizard_styles_ar	5C56FC9F-8F2E-415F-A337-D4B09A12AFB7
++g_f_e_tplwizstyles_lang__share_template_be_by_wizard_styles_be_by	9A9608AE-46B5-4945-82BB-689B296AB99A
++g_f_e_tplwizstyles_lang__share_template_bg_wizard_styles_bg	91AB3AA7-FAEA-4926-A216-B9291757FF21
++g_f_e_tplwizstyles_lang__share_template_bn_in_wizard_styles_bn_in	004CB2A8-2D29-4569-9EEF-2E9259AFEB75
++g_f_e_tplwizstyles_lang__share_template_br_wizard_styles_br	71C85AA9-378A-486B-93F9-701D1F70331F
++g_f_e_tplwizstyles_lang__share_template_ca_wizard_styles_ca	2937DF79-B27E-478A-8336-748E84715E7F
++g_f_e_tplwizstyles_lang__share_template_cs_wizard_styles_cs	4533582A-3972-44AF-921C-D80CAEA9782D
++g_f_e_tplwizstyles_lang__share_template_cy_wizard_styles_cy	9C8E699F-75CD-4CE6-8592-67ED074F4D41
++g_f_e_tplwizstyles_lang__share_template_da_wizard_styles_da	AB552A33-972D-4E2E-BCE6-AE91C6067214
++g_f_e_tplwizstyles_lang__share_template_de_wizard_styles_de	1AB1869C-F979-4996-B6EF-6F6DA2384D97
++g_f_e_tplwizstyles_lang__share_template_el_wizard_styles_el	7705486D-A140-43E3-BE91-BB59CDFEDB7C
++g_f_e_tplwizstyles_lang__share_template_en_gb_wizard_styles_en_gb	1E55FCDB-6971-49FB-9200-EC4A36615FE2
++g_f_e_tplwizstyles_lang__share_template_en_us_wizard_styles_en_us	11AFF055-4B54-4DC7-8B10-52630DB7C68D
++g_f_e_tplwizstyles_lang__share_template_es_wizard_styles_es	4F24DAD7-A1ED-4528-8189-A99FDC7EDB14
++g_f_e_tplwizstyles_lang__share_template_et_wizard_styles_et	03DBCDE7-7377-4BDD-946D-8F9D10012C6B
++g_f_e_tplwizstyles_lang__share_template_fi_wizard_styles_fi	67607619-48A5-4B5A-B8BC-2EFD604F42DA
++g_f_e_tplwizstyles_lang__share_template_fr_wizard_styles_fr	4803F5A4-31B1-404C-ABB6-BF385E7D4B56
++g_f_e_tplwizstyles_lang__share_template_gu_in_wizard_styles_gu_in	C4EA71F7-42A8-4BD9-A651-634F4AE3CD99
++g_f_e_tplwizstyles_lang__share_template_he_wizard_styles_he	8A4F764F-969E-46F4-8255-1DD8D048F226
++g_f_e_tplwizstyles_lang__share_template_hi_in_wizard_styles_hi_in	F381935F-383A-4775-BC5B-9BDFA9D5E604
++g_f_e_tplwizstyles_lang__share_template_hr_wizard_styles_hr	DF14DB6B-E3FB-424B-8C1F-9C44D7AB0462
++g_f_e_tplwizstyles_lang__share_template_hu_wizard_styles_hu	8F0B7A25-5AF9-4EFB-BF5E-CE392BB48112
++g_f_e_tplwizstyles_lang__share_template_it_wizard_styles_it	2DCE3988-1929-40C0-A652-CFDAF0C409C5
++g_f_e_tplwizstyles_lang__share_template_ja_wizard_styles_ja	636BBB14-C67B-47BF-A6E0-B5E212010B1A
++g_f_e_tplwizstyles_lang__share_template_km_wizard_styles_km	48AC165C-5E48-4B7F-ABFC-75796011C9EA
++g_f_e_tplwizstyles_lang__share_template_ko_wizard_styles_ko	3972AF32-5813-418F-8A4E-81327C9D3309
++g_f_e_tplwizstyles_lang__share_template_lt_wizard_styles_lt	370EBEC9-204E-4F6F-90E7-DCFEF6F07AC7
++g_f_e_tplwizstyles_lang__share_template_lv_wizard_styles_lv	3527D9B2-E357-4FC8-AC13-ABA98117CC74
++g_f_e_tplwizstyles_lang__share_template_mk_wizard_styles_mk	2CD074E0-01DE-4D93-9917-0B13DCCFC879
++g_f_e_tplwizstyles_lang__share_template_mr_in_wizard_styles_mr_in	66AAD429-36AA-4836-A4FA-4B29B1130693
++g_f_e_tplwizstyles_lang__share_template_nb_wizard_styles_nb	F4F3B4FC-99BA-4E8B-BB55-89103FE39FD3
++g_f_e_tplwizstyles_lang__share_template_nl_wizard_styles_nl	5AAB7FD4-493C-40C0-B8D0-6FB9C7314C9F
++g_f_e_tplwizstyles_lang__share_template_nn_wizard_styles_nn	8D530EA6-5633-40E7-B2AF-068A3C744EB2
++g_f_e_tplwizstyles_lang__share_template_pa_in_wizard_styles_pa_in	8A68A9AA-4D0B-4D20-9A78-93EABA4B5BF8
++g_f_e_tplwizstyles_lang__share_template_pl_wizard_styles_pl	082B08C9-1F44-4181-9040-E4563DA74274
++g_f_e_tplwizstyles_lang__share_template_pt_br_wizard_styles_pt_br	E72788DD-C464-4659-AD92-7BE336E91253
++g_f_e_tplwizstyles_lang__share_template_pt_wizard_styles_pt	438BB108-4120-443A-9605-812CD22775DF
++g_f_e_tplwizstyles_lang__share_template_ru_wizard_styles_ru	617BD030-1D88-4DF1-8C49-C43BC860E3AB
++g_f_e_tplwizstyles_lang__share_template_rw_wizard_styles_rw	C7658E05-FD8F-4D2E-9E2F-A0C237E7166C
++g_f_e_tplwizstyles_lang__share_template_sk_wizard_styles_sk	E4652303-6E35-44FC-BBD2-FF1E514ED13F
++g_f_e_tplwizstyles_lang__share_template_sl_wizard_styles_sl	858CB22A-D13E-40A1-B498-7CFA742FE24B
++g_f_e_tplwizstyles_lang__share_template_sv_wizard_styles_sv	D88D77C0-D0EF-40B8-9B5C-CC425776EC9E
++g_f_e_tplwizstyles_lang__share_template_ta_in_wizard_styles_ta_in	FD615215-43A9-4D8F-A7C2-18E3D8E60910
++g_f_e_tplwizstyles_lang__share_template_tr_wizard_styles_tr	727A495B-9F79-40B2-8191-BD6B91F529EC
++g_f_e_tplwizstyles_lang__share_template_vi_wizard_styles_vi	A1C6C402-3B12-4766-B393-C15B1DB341B4
++g_f_e_tplwizstyles_lang__share_template_xh_wizard_styles_xh	31812D35-9BFC-4F44-8188-4860A3839BDC
++g_f_e_tplwizstyles_lang__share_template_zh_cn_wizard_styles_zh_cn	5FD205BF-E361-47D7-A70F-9B82177BDB02
++g_f_e_tplwizstyles_lang__share_template_zh_tw_wizard_styles_zh_tw	1540C5A3-3590-403A-9D73-3BB7AC08C2CB
++g_f_e_tplwizstyles_lang__share_template_zu_wizard_styles_zu	B3F61D9D-C1B8-4D26-A2CC-B6EC55939F23
++g_f_e_webcast_asp__share_c_webcast	AE0D7A0B-C63A-4B0A-83DE-2BF854E61825
++g_f_e_webcast_pl__share_c_webcast	EDBCBA79-FE36-48ED-8E53-26D8D50EF2AC
++g_f_e_wordbook__share_wordbook_af_af	F245C807-27C2-4F1F-B290-5ADEF6244697
++g_f_e_wordbook__share_wordbook_ar_ar	9A9E69FF-6423-47E0-A7C9-CDE669198A57
++g_f_e_wordbook__share_wordbook_be_by_be_by	581BED20-FAC8-4099-8F85-63EBA0223A1D
++g_f_e_wordbook__share_wordbook_bg_bg	0DC09484-A57B-4ED7-97E0-0B91494B49C1
++g_f_e_wordbook__share_wordbook_bn_in_bn_in	B2500370-4F89-4668-B106-14CF6D644AA5
++g_f_e_wordbook__share_wordbook_br_br	F8635C0B-6425-40AB-9D0D-47781F6952C5
++g_f_e_wordbook__share_wordbook_ca_ca	1B0836FB-0D34-4432-956B-976E6C794B49
++g_f_e_wordbook__share_wordbook_cs_cs	A6BE5F66-A980-4BB2-A807-503979B5407E
++g_f_e_wordbook__share_wordbook_cy_cy	2435744B-9F7C-4555-9390-879DE3CA7FBE
++g_f_e_wordbook__share_wordbook_da_da	E8691BF2-BBC8-4AA4-AA45-359C64535C84
++g_f_e_wordbook__share_wordbook_de_de	39A9CC9E-F9B5-4172-8F87-B04939CC60A7
++g_f_e_wordbook__share_wordbook_el_el	357F1066-7518-4D4A-A058-2D9949AF3C77
++g_f_e_wordbook__share_wordbook_en_gb_en_gb	D0ACF7BA-56F7-4878-ADD5-73C05EC30CBC
++g_f_e_wordbook__share_wordbook_en_us_en_us	344B58EC-361A-490A-B510-60548288F6F9
++g_f_e_wordbook__share_wordbook_es_es	D32DED3F-F4F3-4A5F-BBA0-EF833D437C62
++g_f_e_wordbook__share_wordbook_et_et	81BA4421-A201-463F-B6FB-24980C9D01C9
++g_f_e_wordbook__share_wordbook_fi_fi	538ACB61-3CC5-46B9-A21D-EADEEA0368F7
++g_f_e_wordbook__share_wordbook_fr_fr	3803AFB3-0605-47E6-AA59-F3BF4B881A89
++g_f_e_wordbook__share_wordbook_gu_in_gu_in	F378E5F9-A09C-4EA5-9A7C-0E2249538AEA
++g_f_e_wordbook__share_wordbook_he_he	ABFC4961-BE31-4F69-B7B5-267B71E34D13
++g_f_e_wordbook__share_wordbook_hi_in_hi_in	CBC3A1F8-4414-442E-AC07-F6095F1D6E4C
++g_f_e_wordbook__share_wordbook_hr_hr	C8559E31-92BE-43C5-9383-A769E2BADF91
++g_f_e_wordbook__share_wordbook_hu_hu	EBC6BDAD-935D-4203-B8B3-D23EC2C74123
++g_f_e_wordbook__share_wordbook_it_it	D29BC6B8-50F8-4D2F-8E1C-EC017116FB92
++g_f_e_wordbook__share_wordbook_ja_ja	C978C8B0-88A7-4F6E-8E2B-AD4147F393DB
++g_f_e_wordbook__share_wordbook_km_km	8DED3EE8-0BB0-472E-B112-55A896ED6C24
++g_f_e_wordbook__share_wordbook_ko_ko	B0FE07E0-CC80-44A3-8F6D-0FAB88D48D8B
++g_f_e_wordbook__share_wordbook_lt_lt	9D88FD77-237B-49CC-AD6F-C310C11A4CA9
++g_f_e_wordbook__share_wordbook_lv_lv	AA3BD07B-4CD2-490D-B579-C50C22B0D524
++g_f_e_wordbook__share_wordbook_mk_mk	F9001885-CD2F-45BA-B2BC-FCF946E1A410
++g_f_e_wordbook__share_wordbook_mr_in_mr_in	B1334021-377E-481E-94E0-B54EDD8F5116
++g_f_e_wordbook__share_wordbook_nb_nb	436D4875-8460-4D9A-B739-C6E84C7B2322
++g_f_e_wordbook__share_wordbook_nl_nl	E1ED07F8-1862-48A5-97CC-1F7FEC512C61
++g_f_e_wordbook__share_wordbook_nn_nn	27C3875A-77CB-4E84-9760-EBF8988A9650
++g_f_e_wordbook__share_wordbook_pa_in_pa_in	F43E29B0-A5A2-4421-93A6-45AEC21E03FE
++g_f_e_wordbook__share_wordbook_pl_pl	55DE5FA7-557B-4E68-A4F9-3D3ED84385C6
++g_f_e_wordbook__share_wordbook_pt_br_pt_br	C20F6FBC-E06F-4FCB-A041-2C02E378F536
++g_f_e_wordbook__share_wordbook_pt_pt	1FAC9963-D7AC-47E9-BDCC-BD74CBA6DC33
++g_f_e_wordbook__share_wordbook_ru_ru	EA373679-7147-4B8B-9F21-26075894A18D
++g_f_e_wordbook__share_wordbook_rw_rw	F98E6B67-A279-4895-BBDA-72E036DA5AD1
++g_f_e_wordbook__share_wordbook_sk_sk	444DF046-0D3E-44A7-839B-93720004D9CB
++g_f_e_wordbook__share_wordbook_sl_sl	D03ED232-744B-4D83-9548-D3D64DC3C96C
++g_f_e_wordbook__share_wordbook_sv_sv	7EE5C913-6E9D-4D47-A253-5632954AB49D
++g_f_e_wordbook__share_wordbook_ta_in_ta_in	453F4614-87A0-495B-B958-80C10986642C
++g_f_e_wordbook__share_wordbook_tr_tr	1E9E7A60-B700-47DE-97C0-24AF20599394
++g_f_e_wordbook__share_wordbook_vi_vi	6F81EB49-CFBF-4296-B3A8-BDB1E1E85B1F
++g_f_e_wordbook__share_wordbook_xh_xh	7780E953-05C0-43B7-BB27-0EA1FB21615E
++g_f_e_wordbook__share_wordbook_zh_cn_zh_cn	07140350-F708-49A1-B9C8-FBA41A3D3176
++g_f_e_wordbook__share_wordbook_zh_tw_zh_tw	DB4759DD-B69B-4E5F-8501-8C9D690A5816
++g_f_e_wordbook__share_wordbook_zu_zu	8B107E55-E351-460B-8A06-285E798C1987
++g_f_e_wordbook_lang__share_wordbook_af_af	1CEE7B18-C5B9-40EE-8CF6-4DB9833710A9
++g_f_e_wordbook_lang__share_wordbook_ar_ar	FB6148D2-A53B-4155-A091-C05B76532FA2
++g_f_e_wordbook_lang__share_wordbook_be_by_be_by	77763EC6-32C8-4738-8211-043C665BC66E
++g_f_e_wordbook_lang__share_wordbook_bg_bg	70952AD9-B3AE-49D3-B853-DEBEE693358D
++g_f_e_wordbook_lang__share_wordbook_bn_in_bn_in	EBCBFD68-F204-4E5E-B348-393BDDD660C9
++g_f_e_wordbook_lang__share_wordbook_br_br	6CA2215F-FA3B-4146-B5CC-5787053E110A
++g_f_e_wordbook_lang__share_wordbook_ca_ca	1BDAD35C-78C7-4F89-A78E-310DFA69F369
++g_f_e_wordbook_lang__share_wordbook_cs_cs	1D51B7D0-82A9-455B-BC44-002F989F275B
++g_f_e_wordbook_lang__share_wordbook_cy_cy	FD002704-D87D-4416-B85F-986F1AE52483
++g_f_e_wordbook_lang__share_wordbook_da_da	415FCB20-1E69-430F-B6E6-72FD0ADC6B6F
++g_f_e_wordbook_lang__share_wordbook_de_de	737D7793-F39D-48A6-977D-0AF6A4B43C87
++g_f_e_wordbook_lang__share_wordbook_el_el	93A2900B-FDA1-458F-8F8F-6C4FCAFD6CA0
++g_f_e_wordbook_lang__share_wordbook_en_gb_en_gb	2B98276C-DA03-43C9-8F44-03693C01937C
++g_f_e_wordbook_lang__share_wordbook_en_us_en_us	9D8649F4-E4CF-4FDE-914B-F5721796E270
++g_f_e_wordbook_lang__share_wordbook_es_es	D3EADD57-4A4D-445E-9013-98AFC67D7AFE
++g_f_e_wordbook_lang__share_wordbook_et_et	F5C53528-B600-457A-85E2-6C4AC6F4CE9A
++g_f_e_wordbook_lang__share_wordbook_fi_fi	3960231D-394E-41BF-BF1D-341D015DE44E
++g_f_e_wordbook_lang__share_wordbook_fr_fr	9EDC0CD7-4B15-40C2-971F-0E4B1D3FBA64
++g_f_e_wordbook_lang__share_wordbook_gu_in_gu_in	FD6CD076-4460-4870-B706-D1A0AD4A7145
++g_f_e_wordbook_lang__share_wordbook_he_he	9B7AB666-097F-4C3B-A483-DA2EB286C7F7
++g_f_e_wordbook_lang__share_wordbook_hi_in_hi_in	F729C061-CD1E-4A72-A80A-41C8585A6407
++g_f_e_wordbook_lang__share_wordbook_hr_hr	BC4D5E8C-6C10-4ED9-9002-C6F24E034CF4
++g_f_e_wordbook_lang__share_wordbook_hu_hu	835BC8DA-DB22-4800-BAA0-2C5173A2F04D
++g_f_e_wordbook_lang__share_wordbook_it_it	0EED5743-2ACE-43CD-9A21-8C7E7354E3B4
++g_f_e_wordbook_lang__share_wordbook_ja_ja	DF62005F-784A-4C9A-AD7E-0925B00CEDD3
++g_f_e_wordbook_lang__share_wordbook_km_km	2E1DF064-FECB-47D7-B4F1-7A42E6B362A5
++g_f_e_wordbook_lang__share_wordbook_ko_ko	E7A66447-79E8-42F8-AC24-E4A30D59F022
++g_f_e_wordbook_lang__share_wordbook_lt_lt	FF17AD75-CF2D-4576-8002-EF8984BD194A
++g_f_e_wordbook_lang__share_wordbook_lv_lv	D2B1DE42-2048-4F2A-BCB7-B6B93134F11A
++g_f_e_wordbook_lang__share_wordbook_mk_mk	85093E15-B5CA-47C1-84A2-3C6D033642EC
++g_f_e_wordbook_lang__share_wordbook_mr_in_mr_in	C4D9AB1E-F4DB-44E3-B44A-1269F0F9F112
++g_f_e_wordbook_lang__share_wordbook_nb_nb	191A6A7C-DD24-4573-AF8A-E157CC8134E8
++g_f_e_wordbook_lang__share_wordbook_nl_nl	6405FC3E-3606-4C1A-B8DB-212CB271A9F2
++g_f_e_wordbook_lang__share_wordbook_nn_nn	8A54F475-FE73-43E4-BA68-EBF2B3E8E326
++g_f_e_wordbook_lang__share_wordbook_pa_in_pa_in	CAE583FC-EA2E-41D8-9008-9CEDE855DBD6
++g_f_e_wordbook_lang__share_wordbook_pl_pl	1BD587E7-7EDB-4E54-ACA1-CB69CBB59C9C
++g_f_e_wordbook_lang__share_wordbook_pt_br_pt_br	BD8B5488-0C4B-46F1-BA4D-33BA1FC17127
++g_f_e_wordbook_lang__share_wordbook_pt_pt	2C98FDC3-02A8-4544-9919-193F47F198B5
++g_f_e_wordbook_lang__share_wordbook_ru_ru	1E1CAA46-79C2-4817-A0BF-5E482A99AE2E
++g_f_e_wordbook_lang__share_wordbook_rw_rw	F9311433-F5D0-40F1-9F56-66E14EC37650
++g_f_e_wordbook_lang__share_wordbook_sk_sk	06CA3D7B-5BB7-4454-9DBC-E554DA30DB92
++g_f_e_wordbook_lang__share_wordbook_sl_sl	F3A45D8C-8B7B-438C-AA96-F010C469758A
++g_f_e_wordbook_lang__share_wordbook_sv_sv	FE26FC6E-9EA6-4562-B8CF-D7D664C3988B
++g_f_e_wordbook_lang__share_wordbook_ta_in_ta_in	F83386B7-5900-457B-B5D5-C1249A1E66AC
++g_f_e_wordbook_lang__share_wordbook_tr_tr	53CBBDD4-E365-4AE2-9E31-5952CED1AE26
++g_f_e_wordbook_lang__share_wordbook_vi_vi	94F9C994-E749-41C2-AADE-13CC35BB0550
++g_f_e_wordbook_lang__share_wordbook_xh_xh	C5DE6396-A24B-4933-857C-6D4F1977DBEC
++g_f_e_wordbook_lang__share_wordbook_zh_cn_zh_cn	4D0A0C35-054D-476E-9D54-08C044199452
++g_f_e_wordbook_lang__share_wordbook_zh_tw_zh_tw	7DD56F7F-5C41-4B4A-B7CB-47BBBF993D26
++g_f_e_wordbook_lang__share_wordbook_zu_zu	6B3AFE9A-F7D9-47B3-93A2-0FFB233EF42D
++g_f_exe_msfontextract__program	45655A48-AA36-4FB4-BE71-3C669930CC75
++g_f_exe_nsplugin__program	8C618C38-D7AB-4FAD-A80F-D612D82B472C
++g_f_exe_odbcconfig__program	D5CB404B-3039-4C5B-BEC5-907FD112EC1E
++g_f_exe_quickstart__program	95DEA31E-4A5B-40C5-BEF6-204672E5F8CF
++g_f_exe_sbase__program	17233BC6-0A3E-4168-B219-C143721B3E39
++g_f_exe_scalc__program	7C365D7B-0D87-435B-9E6C-E1D59AF645FB
++g_f_exe_sdraw__program	8BBF9522-310E-47E9-99DC-B23D14964974
++g_f_exe_simpress__program	E7248F81-0916-4196-ACFC-4E7385BE1191
++g_f_exe_smath__program	1CC15046-C273-4FDE-AAFC-79A8DE69EB65
++g_f_exe_swriter__program	1DBB91E6-3DB5-448E-A1B5-0A80D62BE936
++g_f_exe_testtool__program	F107935F-1474-441B-A726-9E8EB9801853
++g_f_filter_egi__program	EAE63BAD-163F-417C-BCFE-D003E4CA0090
++g_f_filter_eme__program	9734D2F9-8952-4EC8-8A43-F4D048DBB7FC
++g_f_filter_emp__program	C243667D-C398-4372-905A-2C65C106FD43
++g_f_filter_epb__program	69661E8F-050E-4FBC-BAC3-DC4B657002F1
++g_f_filter_epg__program	7348E39A-A392-4E58-9614-E4705F765B55
++g_f_filter_epp__program	1FC5A728-4679-48CB-9CEF-2C8AD36286A0
++g_f_filter_eps__program	B2B3CF89-E081-48B4-B3B7-EAAA98EE3371
++g_f_filter_ept__program	5AEAAAA9-CD72-4383-8D12-E36B5CA7966F
++g_f_filter_era__program	61324509-4067-42F5-AF00-E8889694DB35
++g_f_filter_eti__program	A1F0F36A-1070-4C69-84FD-34DC5D433CA9
++g_f_filter_exp__program	05CC800E-B12B-447E-9E7F-52598B8FA44D
++g_f_filter_icd__program	6D6E4FA6-74D6-4B18-BEB1-1129444D3C13
++g_f_filter_icg__program	05C447D5-2989-4A27-952B-B11D7C5DB523
++g_f_filter_idx__program	5E19BC3A-4B97-4264-B0C8-F8AB1F9C7561
++g_f_filter_ime__program	B8702BCA-F0AD-40EA-87A3-8B5FFC98195D
++g_f_filter_ipb__program	22D271E7-53B5-48FF-82C7-4DC06B88433D
++g_f_filter_ipd__program	8A136939-0EAA-4CA6-B051-64BD2D2748E7
++g_f_filter_ips__program	A229F1F5-F78A-4F8C-9938-69E34BC53491
++g_f_filter_ipt__program	F5715903-9FC2-4EBB-9E87-1CC14B457ADB
++g_f_filter_ipx__program	6BED1BA1-95F2-4C0A-B2ED-437313AD7ECD
++g_f_filter_ira__program	D2E19FB0-11E8-494C-A988-19C2BA8542A3
++g_f_filter_itg__program	483B2932-7685-4D9C-9896-07E3449116DE
++g_f_filter_iti__program	44AC6FF7-2B07-4E05-8A31-034BEE31BC6A
++g_f_fnt_albw__share_fonts_truetype	6E7A9910-FD24-4907-BCC9-E2F0BBAB7E52
++g_f_fnt_albwb__share_fonts_truetype	E1A0E5FB-C01A-4251-A10A-12B2AAF42D4C
++g_f_fnt_albwbi__share_fonts_truetype	1727F892-558B-4ED5-ADF7-6CDF37A48676
++g_f_fnt_albwi__share_fonts_truetype	1588FB62-8EF3-4B56-8B7A-AAF6B589510B
++g_f_fnt_andybol__share_fonts_truetype	87DFCC85-9128-44C8-B9E5-19B61EBD75AC
++g_f_fnt_andyreg__share_fonts_truetype	91D13797-B5F1-41F9-9C16-FFF3047160B8
++g_f_fnt_ans__share_fonts_truetype	770F6BE3-12EF-405E-894B-073707303FF9
++g_f_fnt_ansb__share_fonts_truetype	34806470-458B-4E66-9D8D-72CE580E5BE4
++g_f_fnt_ansbi__share_fonts_truetype	1E06B662-A275-47E4-A9F2-42F1D39C7B88
++g_f_fnt_ansi__share_fonts_truetype	1EB1EC73-65BB-483E-82E1-AA18E53DEA2A
++g_f_fnt_bl__share_fonts_truetype	7ED0E68A-C2DF-4799-8A9A-641035014015
++g_f_fnt_blb__share_fonts_truetype	F648471C-8548-4E52-A860-6E201FBFF778
++g_f_fnt_blbi__share_fonts_truetype	A3EA78A4-242B-45FE-ADDC-C4203DFD5BC5
++g_f_fnt_bli__share_fonts_truetype	497D1CDF-8E23-4822-8966-E36C189A76C2
++g_f_fnt_cumbwb__share_fonts_truetype	81D23E1F-7FC9-401F-964D-96F6653CB1C9
++g_f_fnt_cumbwbi__share_fonts_truetype	C2198161-A241-40EB-ADD6-75A3E8DE0DF0
++g_f_fnt_cumbwi__share_fonts_truetype	27E914F2-50DC-478E-AEF8-388702E41C70
++g_f_fnt_cumbwr__share_fonts_truetype	9508BB3C-B9A6-41F4-9DE8-DD42FDAC57C9
++g_f_fnt_dejavusans__share_fonts_truetype	BA5DCFF6-1C9D-415A-8A11-53C473BB6024
++g_f_fnt_dejavusans_bold__share_fonts_truetype	2AF206C0-E4EB-4533-919B-D3ABA3F38F2A
++g_f_fnt_dejavusans_boldoblique__share_fonts_truetype	FC7DBACD-3121-4D7E-A17D-6CAD81E6A95D
++g_f_fnt_dejavusans_oblique__share_fonts_truetype	05E35192-A2C7-412D-9BAA-91FA76ECFCE3
++g_f_fnt_dejavusanscondensed__share_fonts_truetype	560A41A2-71BC-489F-8F8A-FD4C680B420F
++g_f_fnt_dejavusanscondensed_bold__share_fonts_truetype	BB711A58-A267-40D8-8CAE-31AADB440C20
++g_f_fnt_dejavusanscondensed_boldoblique__share_fonts_truetype	642ABF99-9FED-47E2-8BD4-3BE614D0B757
++g_f_fnt_dejavusanscondensed_oblique__share_fonts_truetype	82DB066D-1964-4FAD-BFC8-34EAA9A2DD40
++g_f_fnt_dejavusansextralight__share_fonts_truetype	9BC3956A-3C2B-45AE-8A7B-A97101529AB9
++g_f_fnt_dejavusansmono__share_fonts_truetype	A5D38125-0FD6-4053-944A-AF440E9137E3
++g_f_fnt_dejavusansmono_bold__share_fonts_truetype	B7B63A58-C93D-4753-8DB9-D2E8FC11DDD3
++g_f_fnt_dejavusansmono_boldoblique__share_fonts_truetype	DBAAC56A-1DD1-439D-801E-9C213716D6F6
++g_f_fnt_dejavusansmono_oblique__share_fonts_truetype	5BCBF857-E7B6-4ECB-AFA0-304B838F32DC
++g_f_fnt_dejavuserif__share_fonts_truetype	10098253-5092-45F8-8C03-FD849C2C6E64
++g_f_fnt_dejavuserif_bold__share_fonts_truetype	4F73AEF2-C0C7-466F-BE81-0F678DD88884
++g_f_fnt_dejavuserif_bolditalic__share_fonts_truetype	1FAE157F-E02C-439E-BCD2-F42588D38436
++g_f_fnt_dejavuserif_italic__share_fonts_truetype	F6F003C9-FA3F-4996-98DF-121AF9909760
++g_f_fnt_dejavuserifcondensed__share_fonts_truetype	5BDCD5E9-AE07-4C54-8DD2-99753E41C23C
++g_f_fnt_dejavuserifcondensed_bold__share_fonts_truetype	1E8EA2C8-B249-4F24-B5A3-4B92EB16A5B1
++g_f_fnt_dejavuserifcondensed_bolditalic__share_fonts_truetype	BC3B109D-9754-4305-8868-739C8D73AF2C
++g_f_fnt_dejavuserifcondensed_italic__share_fonts_truetype	8DE3DCC7-EA06-413F-A3C0-BE687AD66601
++g_f_fnt_mtsorts__share_fonts_truetype	DF9E7E5A-268B-4BAF-9D41-4B9F754B2EBE
++g_f_fnt_opensymb__share_fonts_truetype	C239D62A-5FE6-413A-BF2B-00FF7FBCAB14
++g_f_fnt_thowb__share_fonts_truetype	9536B7BF-B108-46F3-936B-FE0244B2252E
++g_f_fnt_thowbi__share_fonts_truetype	2375C12D-6F85-418A-ABCD-D10A3D88E5AE
++g_f_fnt_thowi__share_fonts_truetype	F7F240B7-7E44-4C3C-9F4C-4D7216595E2E
++g_f_fnt_thowr__share_fonts_truetype	EF6229ED-F8DC-42B8-B1F1-937083334F91
++g_f_fnt_vera__share_fonts_truetype	C845B96C-2791-4D45-B2A4-F141AF43C993
++g_f_fnt_verabd__share_fonts_truetype	CEDE9828-50B8-4D74-B001-7A8CAA41FE12
++g_f_fnt_verabi__share_fonts_truetype	906E1FDD-6D6D-4296-A306-44F4403A9DE8
++g_f_fnt_verait__share_fonts_truetype	E55815CB-D0E6-4990-A5B2-E9780861E8FF
++g_f_fnt_veramobd__share_fonts_truetype	8D35AD18-82A9-4B9C-8242-77561DF2744A
++g_f_fnt_veramobi__share_fonts_truetype	83DFBBEF-8E13-42FA-B368-3992C0A4CA7D
++g_f_fnt_veramoit__share_fonts_truetype	0BE7E9CC-A224-4ED3-A79D-5C57FA4D1850
++g_f_fnt_veramono__share_fonts_truetype	147E6840-1220-4BAD-8135-0B308E35C386
++g_f_fnt_verase__share_fonts_truetype	E9BFF839-079B-490E-BFA1-15D520DEF99F
++g_f_fnt_verasebd__share_fonts_truetype	DE058E16-ED7C-4D96-AFD6-E0B73F22F714
++g_f_glibdll__program	87D9BEAD-44F8-4476-8B74-34AD016CC3C3
++g_f_gmoduledll__program	BA8F5510-58D0-4031-8F2D-6BED4B48A0CA
++g_f_gthreaddll__program	78D65548-587D-4BBB-8F7A-67A6C999546A
++g_f_help_cm_zip__help_br_br	109A099C-09C1-4E22-991C-632066A96CFD
++g_f_help_cm_zip__help_cs_cs	D8FE9AAD-1ED1-4E7D-989C-C7865E7F7FF9
++g_f_help_cm_zip__help_cy_cy	FB62AB7B-C55E-45DF-9E8B-A736AEAD8048
++g_f_help_cm_zip__help_da_da	0C56CE43-709C-4058-9B85-303EEC0D5BDC
++g_f_help_cm_zip__help_de_de	DAC27FED-35F8-4E28-B199-A75F66842004
++g_f_help_cm_zip__help_el_el	08BBADEF-05E1-4FE5-844E-ADFC95B91BBE
++g_f_help_cm_zip__help_en_en_us	DA98797D-7C77-4B61-A33A-E370A56C495B
++g_f_help_cm_zip__help_es_es	3FAD8E5E-04FB-488F-AEF3-0915CB8EC8AB
++g_f_help_cm_zip__help_et_et	4D538AD0-3E79-4A25-8D94-415E00D6D49B
++g_f_help_cm_zip__help_fr_fr	A1225362-CF27-41E8-B87F-FB64DB6F6A3E
++g_f_help_cm_zip__help_he_he	EDAFB0C6-6BC6-418D-AFB8-E67DFC11622E
++g_f_help_cm_zip__help_hu_hu	1A4C2D34-F548-4757-9168-6208DE1ABD02
++g_f_help_cm_zip__help_it_it	5E01F2A3-7A2B-4C2E-9442-6D49FA0A6789
++g_f_help_cm_zip__help_ja_ja	C4ED6E05-A0A4-4D0D-802B-742D12BCE9EA
++g_f_help_cm_zip__help_km_km	F27A6DE1-9701-4872-ADB8-08EA9B13C15D
++g_f_help_cm_zip__help_ko_ko	26806764-1F2C-433E-A4AF-42EDC94ACC67
++g_f_help_cm_zip__help_nb_nb	095DC2A4-61A2-4EA7-9DD8-3FB314C24AEC
++g_f_help_cm_zip__help_nl_nl	B3021639-54F0-496C-897E-ACDE09A9BD7C
++g_f_help_cm_zip__help_pa_in_pa_in	B27F0282-D50B-458F-8A29-9F08B2077037
++g_f_help_cm_zip__help_pl_pl	F6982EE8-6878-4483-B3CB-E365A21F14B0
++g_f_help_cm_zip__help_pt_br_pt_br	DA8607ED-857B-472C-8408-E0075401F0A1
++g_f_help_cm_zip__help_pt_pt	99C3BDF9-E8B2-4872-B99B-A33A00D9F53B
++g_f_help_cm_zip__help_ru_ru	A1CDBF80-34A4-4099-B851-ED86B3E1EE77
++g_f_help_cm_zip__help_rw_rw	06403429-EC7A-4339-B861-FA2819D9C151
++g_f_help_cm_zip__help_sv_sv	01DB74A1-5E4A-4FAB-907D-69452D3272DB
++g_f_help_cm_zip__help_tr_tr	7A7037B6-7392-44CD-B5FA-A8D5AAB9932E
++g_f_help_cm_zip__help_vi_vi	6EC5A584-64F9-4EB7-9E4A-AA5E06DA18D9
++g_f_help_cm_zip__help_zh_cn_zh_cn	541079C9-87A2-4EDA-BBF7-CAA6019E3A41
++g_f_help_cm_zip__help_zh_tw_zh_tw	07E4D7B8-365E-4F6A-8B38-695E80A7842C
++g_f_help_help_zip__help	5D87620D-27B8-4EE2-88D3-5ADF959E1027
++g_f_help_sbasic_zip__help_br_br	E1A548D1-1DD0-41F1-8508-9AC7C3404BC3
++g_f_help_sbasic_zip__help_br_sbasic_idx_br	DE085612-04E9-441C-9342-A69D94054D7F
++g_f_help_sbasic_zip__help_cs_cs	A92682F1-90C3-4A19-935F-E0579D6272C5
++g_f_help_sbasic_zip__help_cs_sbasic_idx_cs	3ED5F9CE-032C-4445-80F7-19025BD53E49
++g_f_help_sbasic_zip__help_cy_cy	46D30B56-2F71-49B4-AA63-925FB7308A5E
++g_f_help_sbasic_zip__help_cy_sbasic_idx_cy	50ACD3DA-49E4-4F31-A44D-537D6DEF3FC6
++g_f_help_sbasic_zip__help_da_da	CC9BCC65-C72A-4E15-8CA5-40D8DE3D47F1
++g_f_help_sbasic_zip__help_da_sbasic_idx_da	1F8591AB-1F20-41B1-9276-29D7364B86D1
++g_f_help_sbasic_zip__help_de_de	1103E800-4A97-47E9-A828-966AFF5B5D59
++g_f_help_sbasic_zip__help_de_sbasic_idx_de	C871A68C-7F6C-437A-957C-C66EB62E9D21
++g_f_help_sbasic_zip__help_el_el	C4EA8C51-F29F-4772-BFB1-A1FA48DDD577
++g_f_help_sbasic_zip__help_el_sbasic_idx_el	68CFF6C3-F67A-49E5-893D-E05994981E80
++g_f_help_sbasic_zip__help_en_en_us	440263D4-943A-447E-AE31-007A0E4ACAEC
++g_f_help_sbasic_zip__help_en_sbasic_idx_en_us	9E1BC78E-2B98-43EC-8F65-F7F98C09A01A
++g_f_help_sbasic_zip__help_es_es	B9F50057-8ABA-467A-8ED0-DCCE0D55B39A
++g_f_help_sbasic_zip__help_es_sbasic_idx_es	148A1967-EFF1-4E02-9E42-09852A23F5FF
++g_f_help_sbasic_zip__help_et_et	9AEA2AE9-81C1-4673-9268-2B5BF4042479
++g_f_help_sbasic_zip__help_et_sbasic_idx_et	AF66AFB2-A877-425D-9075-DF10A978CBE3
++g_f_help_sbasic_zip__help_fr_fr	5943DC3F-E483-47F7-970F-960C4E62EAF5
++g_f_help_sbasic_zip__help_fr_sbasic_idx_fr	F93B83A5-6C46-46A2-B67F-3028A88ED40C
++g_f_help_sbasic_zip__help_he_he	308FE204-6FC8-425C-A06C-146D57DB6405
++g_f_help_sbasic_zip__help_he_sbasic_idx_he	7F132F16-D596-4B80-AF72-8B950F239FA8
++g_f_help_sbasic_zip__help_hu_hu	60A686E0-C19F-4E02-BA04-CC9136371BE0
++g_f_help_sbasic_zip__help_hu_sbasic_idx_hu	BC1EB679-0D73-4102-85C3-8A09CB698F65
++g_f_help_sbasic_zip__help_it_it	78B6C51E-BBAD-4A82-BFC5-A3A488DF1852
++g_f_help_sbasic_zip__help_it_sbasic_idx_it	C64B3C0F-9642-4EE8-8784-CC201823B37B
++g_f_help_sbasic_zip__help_ja_ja	3A341D29-77B8-4B1C-AE4F-635190CEE131
++g_f_help_sbasic_zip__help_ja_sbasic_idx_ja	5463F71E-5C0C-4EFD-8FAF-74D69597570F
++g_f_help_sbasic_zip__help_km_km	C7214750-4E14-4F55-97FD-3981FCA7F785
++g_f_help_sbasic_zip__help_km_sbasic_idx_km	4FA439ED-50D0-4B9A-A1AC-0F52D82DD606
++g_f_help_sbasic_zip__help_ko_ko	A0D6F934-7449-4010-9B9E-705E8D13C1DB
++g_f_help_sbasic_zip__help_ko_sbasic_idx_ko	2D37DC59-257D-4969-A39C-C0F3A160BD16
++g_f_help_sbasic_zip__help_nb_nb	956A5104-E4A8-42F0-ABD5-267E8C61DBD0
++g_f_help_sbasic_zip__help_nb_sbasic_idx_nb	9D2629D0-274A-4287-8477-05B6B6D1C731
++g_f_help_sbasic_zip__help_nl_nl	F1F066D1-7FCB-4087-B3F8-C47826C580C5
++g_f_help_sbasic_zip__help_nl_sbasic_idx_nl	05841B7A-D310-43CF-AF33-ED5923609B27
++g_f_help_sbasic_zip__help_pa_in_pa_in	3631D787-5EDC-444A-B95A-392F9B914AB9
++g_f_help_sbasic_zip__help_pa_in_sbasic_idx_pa_in	1169E179-BE1F-4E2C-B498-722638ED5830
++g_f_help_sbasic_zip__help_pl_pl	4069316B-4860-4E11-8B3C-DCD09C0DF707
++g_f_help_sbasic_zip__help_pl_sbasic_idx_pl	E5C7E375-1A14-4932-8BDF-01F5B5DBD114
++g_f_help_sbasic_zip__help_pt_br_pt_br	F0D7F863-1CC4-42A0-B704-D6525461F783
++g_f_help_sbasic_zip__help_pt_br_sbasic_idx_pt_br	3F47C638-79D7-41A0-B6C0-F266768E6327
++g_f_help_sbasic_zip__help_pt_pt	54EE3A63-C675-4D0C-AE46-5756A4D91567
++g_f_help_sbasic_zip__help_pt_sbasic_idx_pt	F25BCD65-8746-47ED-B6C1-4AB4988AD533
++g_f_help_sbasic_zip__help_ru_ru	8E9E3AF2-DF77-4680-9D92-3A606DD9914E
++g_f_help_sbasic_zip__help_ru_sbasic_idx_ru	5595ACA4-E190-492E-A886-11693ECA80CD
++g_f_help_sbasic_zip__help_rw_rw	2449B181-A8D3-48ED-8D22-8E14C9C35FFE
++g_f_help_sbasic_zip__help_rw_sbasic_idx_rw	78AC5601-3936-4EE5-9CB1-68A8DEEF7F41
++g_f_help_sbasic_zip__help_sv_sbasic_idx_sv	4FBF383E-046F-40FB-A7BB-813A520FBE0D
++g_f_help_sbasic_zip__help_sv_sv	90447C87-87FA-450A-BBD4-2DA836CC6329
++g_f_help_sbasic_zip__help_tr_sbasic_idx_tr	2A2E3398-2260-4C18-908C-3FF8EEC485A5
++g_f_help_sbasic_zip__help_tr_tr	3254F148-5611-4798-A0FC-20057EF49367
++g_f_help_sbasic_zip__help_vi_sbasic_idx_vi	4F843E0E-6110-4098-8245-3AB9678F83B6
++g_f_help_sbasic_zip__help_vi_vi	9D345D3D-A243-434E-9EE7-4FD7193C8EE6
++g_f_help_sbasic_zip__help_zh_cn_sbasic_idx_zh_cn	77A1B9A2-F8B6-4FE6-91EA-3562EC234816
++g_f_help_sbasic_zip__help_zh_cn_zh_cn	0D732F2B-225F-41A2-9814-D18C0F696044
++g_f_help_sbasic_zip__help_zh_tw_sbasic_idx_zh_tw	E5148A7D-8141-4EBE-B387-7F18ECBA01F8
++g_f_help_sbasic_zip__help_zh_tw_zh_tw	DA00A9D2-4433-43CD-9802-12DEBA4CFC8C
++g_f_help_scalc_zip__help_br_br	D01C3AD6-DD57-4D82-9780-8715AC0438D1
++g_f_help_scalc_zip__help_br_scalc_idx_br	1DFB197C-10E1-419B-9470-F9ECFB185E58
++g_f_help_scalc_zip__help_cs_cs	F0A9DB1F-3969-41CB-B7E8-562B5FA6E8B5
++g_f_help_scalc_zip__help_cs_scalc_idx_cs	7DDC5F07-9660-4CEC-9A40-65B60482F03A
++g_f_help_scalc_zip__help_cy_cy	54D146AA-74C2-473C-87E3-DF035815C78F
++g_f_help_scalc_zip__help_cy_scalc_idx_cy	BCDC03A8-29EE-4CBD-81FA-1B8B0AFC99E0
++g_f_help_scalc_zip__help_da_da	562795E4-1B6A-473F-9A80-9C4E7A1EE49C
++g_f_help_scalc_zip__help_da_scalc_idx_da	AF1BAFBA-15A0-41A0-9E32-E77C18174991
++g_f_help_scalc_zip__help_de_de	1798EB8D-5933-4439-855F-1EE0C5C48E4F
++g_f_help_scalc_zip__help_de_scalc_idx_de	0709581D-2B46-4BA9-A53E-8D1C1F1426EB
++g_f_help_scalc_zip__help_el_el	DA290C5C-09C6-425B-9529-06FB8569655E
++g_f_help_scalc_zip__help_el_scalc_idx_el	28A9AEE6-6189-4AF3-9475-686486B85E66
++g_f_help_scalc_zip__help_en_en_us	FE0A6924-D68F-469A-A621-E2BC2CDA3C14
++g_f_help_scalc_zip__help_en_scalc_idx_en_us	8846FD6C-4060-493A-A853-35A9B9865B2F
++g_f_help_scalc_zip__help_es_es	88832C02-249C-4E34-9E5A-43DFB11F2ED2
++g_f_help_scalc_zip__help_es_scalc_idx_es	65C57CC0-DABF-4166-A638-B9E8DE7C2A55
++g_f_help_scalc_zip__help_et_et	4B001924-B984-40CB-A0C0-ACBC13B0C668
++g_f_help_scalc_zip__help_et_scalc_idx_et	1EB6E79F-B59C-47ED-97A3-3B27CC30B0AB
++g_f_help_scalc_zip__help_fr_fr	EA9DF795-A929-4E0F-9CCE-C6449411ECD9
++g_f_help_scalc_zip__help_fr_scalc_idx_fr	9A9865AD-2668-4FC5-9C27-6C6F4DB62AAD
++g_f_help_scalc_zip__help_he_he	FD448F48-7C7A-4BF3-820A-191C8471C008
++g_f_help_scalc_zip__help_he_scalc_idx_he	B149574E-4E60-4830-9EE5-1D04E9F21DED
++g_f_help_scalc_zip__help_hu_hu	BD8AAD2A-BDF5-4446-BF4A-ADB4779170DE
++g_f_help_scalc_zip__help_hu_scalc_idx_hu	2344F9F7-F88A-4BD1-8C9B-205C18E9ECC3
++g_f_help_scalc_zip__help_it_it	1338074C-22CC-4064-B0F0-BE08D3E46F7F
++g_f_help_scalc_zip__help_it_scalc_idx_it	AEEC65E9-3FFE-4C9F-BA05-5123E8DC3242
++g_f_help_scalc_zip__help_ja_ja	8A5A66CD-9203-4A2B-B7D8-AEACE2D473FB
++g_f_help_scalc_zip__help_ja_scalc_idx_ja	5D9EC464-3015-4D4A-A840-EE1AA5ECF442
++g_f_help_scalc_zip__help_km_km	494C492F-3F04-4B85-9344-E652E5800224
++g_f_help_scalc_zip__help_km_scalc_idx_km	DBA822EF-13C4-4483-B4DD-3A57E1C30087
++g_f_help_scalc_zip__help_ko_ko	243A96BC-4029-4370-879B-FE6AFBB1EC50
++g_f_help_scalc_zip__help_ko_scalc_idx_ko	DD0B6958-20A6-4BF9-B6A8-CE7E4E5F117B
++g_f_help_scalc_zip__help_nb_nb	1CB7685F-A48A-49E5-BBCF-5D25CA4321A4
++g_f_help_scalc_zip__help_nb_scalc_idx_nb	C93B459C-E1CF-4218-AA85-FE283659B77C
++g_f_help_scalc_zip__help_nl_nl	617A2FB5-1DB6-4CE0-9C11-2C5F24AD454C
++g_f_help_scalc_zip__help_nl_scalc_idx_nl	A7DB3962-4A73-49F9-BCDC-825B41B77A2A
++g_f_help_scalc_zip__help_pa_in_pa_in	7B4F4C41-0923-4E01-8CF8-BCBA18FFC311
++g_f_help_scalc_zip__help_pa_in_scalc_idx_pa_in	752BE3CE-4302-4053-9045-97A7D5373E13
++g_f_help_scalc_zip__help_pl_pl	F7107BB9-A65A-4DB8-8BC8-F3D85D534445
++g_f_help_scalc_zip__help_pl_scalc_idx_pl	3C795BBE-68C9-4D3E-B2EF-17F350F5BD32
++g_f_help_scalc_zip__help_pt_br_pt_br	543AA854-071B-430B-93A8-F74842D0E35C
++g_f_help_scalc_zip__help_pt_br_scalc_idx_pt_br	AE3F41FE-4D7E-4C65-81C1-445FDFFF2444
++g_f_help_scalc_zip__help_pt_pt	1DB5D54D-3731-49AD-B060-E7AD17C3F604
++g_f_help_scalc_zip__help_pt_scalc_idx_pt	EABD55ED-9257-40F1-8EC7-80E05540C4CC
++g_f_help_scalc_zip__help_ru_ru	67767080-C8DD-4FFF-B548-408A30067AD4
++g_f_help_scalc_zip__help_ru_scalc_idx_ru	3109CD53-0AF4-41F9-BADA-97A3F9678165
++g_f_help_scalc_zip__help_rw_rw	D62F49DE-65ED-49EA-B63E-F867F811FC67
++g_f_help_scalc_zip__help_rw_scalc_idx_rw	1C5634BC-28ED-4F8E-8183-225CF78F81AB
++g_f_help_scalc_zip__help_sv_scalc_idx_sv	4F238BCC-E205-477A-9D74-6F2929EDAD2C
++g_f_help_scalc_zip__help_sv_sv	9DB82D40-C0B7-4CA7-A151-04B5748D15DF
++g_f_help_scalc_zip__help_tr_scalc_idx_tr	A26530B9-3DC3-43ED-92EA-1BC64D166EF6
++g_f_help_scalc_zip__help_tr_tr	D00D9561-7441-444D-9E3C-A942F9085D6C
++g_f_help_scalc_zip__help_vi_scalc_idx_vi	F889FD4A-F472-4271-92D9-D44C2CA2AA7C
++g_f_help_scalc_zip__help_vi_vi	39E33F03-6C02-4B3F-B959-F6FF151EE6BF
++g_f_help_scalc_zip__help_zh_cn_scalc_idx_zh_cn	FE16AEE1-BF04-4646-8CF1-8FCAB644B935
++g_f_help_scalc_zip__help_zh_cn_zh_cn	12B8E266-ACB3-4B65-8DA4-AB4F55AE0708
++g_f_help_scalc_zip__help_zh_tw_scalc_idx_zh_tw	B8E8A187-279E-457D-98B6-171A8EC1D5E3
++g_f_help_scalc_zip__help_zh_tw_zh_tw	D284575A-9EE8-45D1-AD68-3F648688728E
++g_f_help_schart_zip__help_br_br	B02547FF-1CA4-4D0B-86B1-8AFFB1B8FCB2
++g_f_help_schart_zip__help_br_schart_idx_br	91C86B75-9D18-47DC-8D39-810DC92D9D70
++g_f_help_schart_zip__help_cs_cs	8BC396CB-60AF-4506-BBC0-1F16D81061D7
++g_f_help_schart_zip__help_cs_schart_idx_cs	7AEBD474-3F5D-484C-AC48-6D07872E4700
++g_f_help_schart_zip__help_cy_cy	AABA4EEA-EEF5-4110-BCFD-BA55B02262A5
++g_f_help_schart_zip__help_cy_schart_idx_cy	8AFA1387-A273-41B5-A304-15BBE709276B
++g_f_help_schart_zip__help_da_da	53102A3F-BDF5-4437-960C-66E349920867
++g_f_help_schart_zip__help_da_schart_idx_da	F2B59EA0-FAC2-49E0-82BB-E373D2F3B75E
++g_f_help_schart_zip__help_de_de	A3A60E29-A295-4FCA-8A17-83E94656F59C
++g_f_help_schart_zip__help_de_schart_idx_de	637B42B8-74B0-4F5C-ABEE-31C3B5904F4F
++g_f_help_schart_zip__help_el_el	53927C1B-19BF-4E73-A9E1-91B22AFE3F11
++g_f_help_schart_zip__help_en_en_us	B7421EAA-337A-44DB-95D9-E9D7BED848FF
++g_f_help_schart_zip__help_en_schart_idx_en_us	0355CD32-50F9-46FA-AADC-CDC85F7E550D
++g_f_help_schart_zip__help_es_es	42E772E6-814A-46E6-BD89-127DCADDC755
++g_f_help_schart_zip__help_es_schart_idx_es	3A36F873-A183-4C1B-B0CF-E26EAD1F9857
++g_f_help_schart_zip__help_et_et	B8E98AE2-9ED0-4956-AFB1-5B29DA60B579
++g_f_help_schart_zip__help_et_schart_idx_et	9B64E90F-DCCE-44FF-929A-1F9724E8B0CF
++g_f_help_schart_zip__help_fr_fr	5B8EF2D0-9441-49F6-BE69-63FB195B2D26
++g_f_help_schart_zip__help_fr_schart_idx_fr	0F88E9C5-479D-4CDF-9174-AFB79F81114E
++g_f_help_schart_zip__help_he_he	A2248EDE-B165-481C-BE1D-3DDFDAC776A6
++g_f_help_schart_zip__help_he_schart_idx_he	6EAC60E3-4555-4D4B-A1C7-663849002418
++g_f_help_schart_zip__help_hu_hu	1FE7027D-6D2C-4DDD-9481-0D3158351DBA
++g_f_help_schart_zip__help_hu_schart_idx_hu	6A8CA012-5D47-466A-A2C3-CD97609CE06D
++g_f_help_schart_zip__help_it_it	C6DC9552-4F77-4A81-8167-92CE19932628
++g_f_help_schart_zip__help_it_schart_idx_it	A3538883-5B27-48A0-A55B-4E02149C2D4E
++g_f_help_schart_zip__help_ja_ja	D625C10F-B4C9-42C6-8383-49897600AD57
++g_f_help_schart_zip__help_ja_schart_idx_ja	F96BD25B-8DB4-40E8-B0C8-FC77BD89E404
++g_f_help_schart_zip__help_km_km	02668359-A249-4EC2-9E03-CF94F07EB402
++g_f_help_schart_zip__help_km_schart_idx_km	9F4DC1F7-6BBD-4661-81D3-CEEF3990EFD3
++g_f_help_schart_zip__help_ko_ko	A6F2417F-2628-41AF-9B15-D7ADBEC873AE
++g_f_help_schart_zip__help_ko_schart_idx_ko	0A76654D-2269-4D84-939D-D72C78BE1422
++g_f_help_schart_zip__help_nb_nb	E4A41063-5057-483B-8BF4-6791E8C54AB3
++g_f_help_schart_zip__help_nl_nl	41F46D4F-E8A0-4378-8338-5082BA880AAC
++g_f_help_schart_zip__help_nl_schart_idx_nl	6962C072-D566-4996-84ED-A27619520E96
++g_f_help_schart_zip__help_pa_in_pa_in	E9DD6DC2-77B8-45F1-91ED-E9E7A82BADB8
++g_f_help_schart_zip__help_pa_in_schart_idx_pa_in	BB72A2E8-CC96-4005-AF2C-A557B4E6F966
++g_f_help_schart_zip__help_pl_pl	9973DE61-2956-4B00-9EE0-7F1DE25910CF
++g_f_help_schart_zip__help_pl_schart_idx_pl	795B1AF6-27F9-48F4-AEF5-67E32AEEB7EC
++g_f_help_schart_zip__help_pt_br_pt_br	1C4EF94B-E8FC-4E96-A123-41A26D4D8762
++g_f_help_schart_zip__help_pt_br_schart_idx_pt_br	27A4D85E-A1AE-4B2D-AE8C-814B1D2C16FD
++g_f_help_schart_zip__help_pt_pt	A1C2F3F0-1CB0-4BB0-BE43-88E822A5799C
++g_f_help_schart_zip__help_ru_ru	1F06315A-B4AB-417D-9B22-0C618F1DFC38
++g_f_help_schart_zip__help_ru_schart_idx_ru	819391BA-0A5B-4ECF-929D-9F0550ABE286
++g_f_help_schart_zip__help_rw_rw	616F5DD4-C675-4447-B41D-8BBFF16E924F
++g_f_help_schart_zip__help_rw_schart_idx_rw	5FFBAC9C-8F97-4FD6-A683-28F1998A26DC
++g_f_help_schart_zip__help_sv_schart_idx_sv	2975F7D3-58C5-441D-9AE4-E6129C7BBBD6
++g_f_help_schart_zip__help_sv_sv	408C7928-BEC9-46DF-BAAD-326EBFC0EDD6
++g_f_help_schart_zip__help_tr_tr	2807F9D9-9A34-40CF-A50E-74EDCA5838E4
++g_f_help_schart_zip__help_vi_schart_idx_vi	61576C60-A437-464C-BBB1-9C4919F6658D
++g_f_help_schart_zip__help_vi_vi	B290BE04-EB4F-4C42-A230-61D1B01C9961
++g_f_help_schart_zip__help_zh_cn_schart_idx_zh_cn	FF0288D0-9943-46D8-8B80-729CC5043A3E
++g_f_help_schart_zip__help_zh_cn_zh_cn	377F8B2C-B830-46F9-8149-2C7A4BF08279
++g_f_help_schart_zip__help_zh_tw_schart_idx_zh_tw	6C7FAE8E-586F-4904-92AA-11AA15389573
++g_f_help_schart_zip__help_zh_tw_zh_tw	6BF21437-3062-4B13-9088-60C65CAB815D
++g_f_help_sdatabase_zip__help_br_br	63367277-EB1F-4916-9EA1-514B6AEE0F26
++g_f_help_sdatabase_zip__help_br_sdatabase_idx_br	61EBF542-CB77-461F-A145-FAA1B2578628
++g_f_help_sdatabase_zip__help_cs_cs	DD9B44FD-BE68-47ED-94C8-E6B8CB16749D
++g_f_help_sdatabase_zip__help_cs_sdatabase_idx_cs	67B34E80-D5AD-4E71-B9EA-2E519539A655
++g_f_help_sdatabase_zip__help_cy_cy	3E5C5596-20E5-40A3-9D11-DEA6500C245A
++g_f_help_sdatabase_zip__help_cy_sdatabase_idx_cy	E90FEB60-EE18-497C-B7C8-E59C51BB348E
++g_f_help_sdatabase_zip__help_da_da	03B67B0D-E9BD-4999-ABC5-61C31EBDDD5D
++g_f_help_sdatabase_zip__help_da_sdatabase_idx_da	D2F35CBE-FF20-46A7-B66A-AE2F5DAB756C
++g_f_help_sdatabase_zip__help_de_de	6040B23B-6024-4B52-99D1-FF3A639A1A05
++g_f_help_sdatabase_zip__help_de_sdatabase_idx_de	317B13A8-A664-48C5-8144-AE9013FE81E9
++g_f_help_sdatabase_zip__help_el_el	889D22CC-6A0B-4EB0-9652-D6BAF852301B
++g_f_help_sdatabase_zip__help_el_sdatabase_idx_el	F9B59D8D-7F9E-4A9D-8ADE-906D658C9D00
++g_f_help_sdatabase_zip__help_en_en_us	CD6BAB34-58F8-467C-92FA-158EBA93C615
++g_f_help_sdatabase_zip__help_en_sdatabase_idx_en_us	6A43B9B4-05A3-4F84-B33E-E86E5CDEEE82
++g_f_help_sdatabase_zip__help_es_es	B652580B-6A99-4769-B876-E770F444A584
++g_f_help_sdatabase_zip__help_es_sdatabase_idx_es	8C6DFEC9-C26C-4213-A8C9-134E53574F05
++g_f_help_sdatabase_zip__help_et_et	AD8257B2-50E8-4D56-A0CA-4427C5F9F2E1
++g_f_help_sdatabase_zip__help_et_sdatabase_idx_et	79913CD5-260D-4B7B-B399-93B423461CB6
++g_f_help_sdatabase_zip__help_fr_fr	CF1AAFEC-0437-481D-B132-CB097624D97E
++g_f_help_sdatabase_zip__help_fr_sdatabase_idx_fr	8BFB1333-3C1C-4B8D-883A-FD25784BDFB5
++g_f_help_sdatabase_zip__help_he_he	A43CC0D8-8BA9-44CE-AC1C-44036FD9FBCA
++g_f_help_sdatabase_zip__help_he_sdatabase_idx_he	27B4DF58-C154-4ABA-AC10-D95CDB9FC1DA
++g_f_help_sdatabase_zip__help_hu_hu	366A79E6-6DCB-4A14-BAA6-437BC9EC1410
++g_f_help_sdatabase_zip__help_hu_sdatabase_idx_hu	43A2A247-74F6-4710-9496-4524E9546B0E
++g_f_help_sdatabase_zip__help_it_it	DC92013B-A0E1-47B0-A4EA-3D971559BB79
++g_f_help_sdatabase_zip__help_it_sdatabase_idx_it	3F8F7C8E-4C1F-417F-9028-6E495C3D9787
++g_f_help_sdatabase_zip__help_ja_ja	5C51FF61-22EB-4D40-97C6-824D888C3455
++g_f_help_sdatabase_zip__help_ja_sdatabase_idx_ja	265574A1-ED5E-4C5F-83AD-5A49886EDC96
++g_f_help_sdatabase_zip__help_km_km	FCAACCEA-A3C1-4439-A192-FCDFB3B5B9F0
++g_f_help_sdatabase_zip__help_km_sdatabase_idx_km	FFC8E8CE-3597-46BC-9DA1-282C64F0956D
++g_f_help_sdatabase_zip__help_ko_ko	832799BD-24AB-41A5-B255-FB45CA903E01
++g_f_help_sdatabase_zip__help_ko_sdatabase_idx_ko	0EFBAA41-7384-42B5-9E7B-0E072D1CAC13
++g_f_help_sdatabase_zip__help_nb_nb	A0574BF3-F271-4C6A-9174-955B2873BF65
++g_f_help_sdatabase_zip__help_nb_sdatabase_idx_nb	7B40D6DA-721C-4FB8-8C7B-936C6BC91013
++g_f_help_sdatabase_zip__help_nl_nl	06B3D2F4-2A83-42A1-8122-F2C83A3870CA
++g_f_help_sdatabase_zip__help_nl_sdatabase_idx_nl	40DE4922-0BC2-4A46-8578-8A23C3C93198
++g_f_help_sdatabase_zip__help_pa_in_pa_in	367ACA84-E208-4F04-981D-160C48BD722D
++g_f_help_sdatabase_zip__help_pa_in_sdatabase_idx_pa_in	76E157B2-BCA5-4A68-AF99-3EEEFD3742F8
++g_f_help_sdatabase_zip__help_pl_pl	2E8E5F2C-CB1C-4802-AC22-9B40B2A63114
++g_f_help_sdatabase_zip__help_pl_sdatabase_idx_pl	4AF56201-7D24-4CFE-8B20-1C15D2E3FE00
++g_f_help_sdatabase_zip__help_pt_br_pt_br	5CF12A1D-8F9A-4B09-B024-AC849789C6A0
++g_f_help_sdatabase_zip__help_pt_br_sdatabase_idx_pt_br	6DD9EEDC-E2C3-4FB0-94F7-211D976B2CA4
++g_f_help_sdatabase_zip__help_pt_pt	905FDF1C-65E5-4837-88E6-E5CF1372FC20
++g_f_help_sdatabase_zip__help_pt_sdatabase_idx_pt	8E3D7EE1-FD45-4720-92BA-B7321C3E048B
++g_f_help_sdatabase_zip__help_ru_ru	F59AEDB0-69A7-42A4-8B5D-349B6F731B45
++g_f_help_sdatabase_zip__help_ru_sdatabase_idx_ru	D59DDF91-CFCD-4393-9E14-9838B5A36A9A
++g_f_help_sdatabase_zip__help_rw_rw	01C3BDC5-B88B-410D-963E-2730222BB293
++g_f_help_sdatabase_zip__help_rw_sdatabase_idx_rw	18DAC947-313A-4143-95D3-69EBA930DDF1
++g_f_help_sdatabase_zip__help_sv_sdatabase_idx_sv	88BF4E7E-AE23-40D1-BD02-6D23C46EAF1F
++g_f_help_sdatabase_zip__help_sv_sv	62EFFA5D-1E66-4526-9783-B3780490CA60
++g_f_help_sdatabase_zip__help_tr_sdatabase_idx_tr	2B48D705-4CD3-4132-B78C-E5BC65BC452F
++g_f_help_sdatabase_zip__help_tr_tr	490289C3-0DB9-4C86-9D39-23D659453825
++g_f_help_sdatabase_zip__help_vi_sdatabase_idx_vi	078103F8-E0AE-43E6-A8FD-05F08396D8D3
++g_f_help_sdatabase_zip__help_vi_vi	F0A45EA2-3E38-4B02-8933-067C8D14E449
++g_f_help_sdatabase_zip__help_zh_cn_sdatabase_idx_zh_cn	018B3DAA-C863-4162-874C-6942051AC6EB
++g_f_help_sdatabase_zip__help_zh_cn_zh_cn	207A14F6-7972-4075-BA50-62C3251D988F
++g_f_help_sdatabase_zip__help_zh_tw_sdatabase_idx_zh_tw	A603D00F-FCB2-4C1B-8416-BE64C437C4AA
++g_f_help_sdatabase_zip__help_zh_tw_zh_tw	A3B1E29B-4046-493C-87EA-0D8819BA93F9
++g_f_help_sdraw_zip__help_br_br	FEBCFC0D-FE54-406A-B1B9-8F690C01AAE5
++g_f_help_sdraw_zip__help_br_sdraw_idx_br	53F699C7-881E-4521-956E-2DFBF40EA4BB
++g_f_help_sdraw_zip__help_cs_cs	BC785810-C4A1-4994-BED8-B237F5B62619
++g_f_help_sdraw_zip__help_cs_sdraw_idx_cs	85312C6A-9450-42C0-A66B-66C3F43AABFA
++g_f_help_sdraw_zip__help_cy_cy	49F91788-ABCC-4D12-BA76-85BB1A29FCD1
++g_f_help_sdraw_zip__help_cy_sdraw_idx_cy	66B04432-247F-4DB0-8303-A5A608361C6B
++g_f_help_sdraw_zip__help_da_da	BBB4C834-F9C4-4E3A-BD77-A19DEEE5C48C
++g_f_help_sdraw_zip__help_da_sdraw_idx_da	9C545BC8-B6B5-4373-BA32-E320A5CB4158
++g_f_help_sdraw_zip__help_de_de	42C9E59D-DD9D-4EFD-92F6-8A119FE93125
++g_f_help_sdraw_zip__help_de_sdraw_idx_de	73B767F4-E00A-4D7D-8224-C69279E7E244
++g_f_help_sdraw_zip__help_el_el	C601B266-837E-48D4-814F-2EFB7CBED4E6
++g_f_help_sdraw_zip__help_el_sdraw_idx_el	63FE3884-D123-4CDB-9A9B-9ED0CD0B7334
++g_f_help_sdraw_zip__help_en_en_us	3638B46D-C1C8-4A19-9B76-E7968C3347AD
++g_f_help_sdraw_zip__help_en_sdraw_idx_en_us	43B90969-E98D-47B0-9EC4-773E990FC7B5
++g_f_help_sdraw_zip__help_es_es	A0AC40DD-38A5-40C2-B15C-B33E67B098D3
++g_f_help_sdraw_zip__help_es_sdraw_idx_es	E6962479-D852-48E4-99B7-EE745D1779FC
++g_f_help_sdraw_zip__help_et_et	092E8C01-7B69-474B-AFD8-AA0B5D64690F
++g_f_help_sdraw_zip__help_et_sdraw_idx_et	F57C5FDA-7732-46D4-BD0B-2867B96DFC67
++g_f_help_sdraw_zip__help_fr_fr	FCF1DAE9-A9DC-4EF4-BE35-EEB04B757A4D
++g_f_help_sdraw_zip__help_fr_sdraw_idx_fr	97FD6656-8977-497B-A737-68B798923ACC
++g_f_help_sdraw_zip__help_he_he	EC791D22-C2BF-4511-885F-717616FBD947
++g_f_help_sdraw_zip__help_he_sdraw_idx_he	CD2AA931-2308-4246-AC7F-08470FE88E22
++g_f_help_sdraw_zip__help_hu_hu	13D1BDEF-02E5-4B45-84AC-780048C9CE59
++g_f_help_sdraw_zip__help_hu_sdraw_idx_hu	CBD17CD4-6800-49DA-9BB4-FA4277CB10B8
++g_f_help_sdraw_zip__help_it_it	1059E6F4-72C2-41F8-94AE-E14BF40DCB0B
++g_f_help_sdraw_zip__help_it_sdraw_idx_it	DAF53F15-D655-4FAB-ADFA-2DA8C58E446D
++g_f_help_sdraw_zip__help_ja_ja	A62488A7-20F5-4097-8B6B-4A5A88E27EAB
++g_f_help_sdraw_zip__help_ja_sdraw_idx_ja	27E4F628-41CD-4D84-B368-EBE970DC3128
++g_f_help_sdraw_zip__help_km_km	1ACCED6C-89AE-4AFE-B91A-2111310753E9
++g_f_help_sdraw_zip__help_km_sdraw_idx_km	A6B35F41-7DF7-4898-BAF7-1381BFED412D
++g_f_help_sdraw_zip__help_ko_ko	FF037461-1ACD-4F34-9A97-6A7106C1635A
++g_f_help_sdraw_zip__help_ko_sdraw_idx_ko	7FF8C3BE-8360-4C05-BDB1-28B62DA3CF45
++g_f_help_sdraw_zip__help_nb_nb	3624828F-2B9B-48C2-B906-303474027E35
++g_f_help_sdraw_zip__help_nb_sdraw_idx_nb	EC19D410-F933-4884-A3E8-48FB60BD2B11
++g_f_help_sdraw_zip__help_nl_nl	F8E59A8D-4C13-4842-9D51-4A6E728B9AE8
++g_f_help_sdraw_zip__help_nl_sdraw_idx_nl	D7AE9812-4C13-45DF-8523-5C394D747781
++g_f_help_sdraw_zip__help_pa_in_pa_in	425DBFD2-6F25-4A51-BB67-5A74CAB969F1
++g_f_help_sdraw_zip__help_pa_in_sdraw_idx_pa_in	D30E3D64-140F-4A2B-BAFD-17D9F889CCD5
++g_f_help_sdraw_zip__help_pl_pl	114A43F8-7362-45AC-A414-9DBB2B66904C
++g_f_help_sdraw_zip__help_pl_sdraw_idx_pl	DE067F19-F4AE-48DF-A2B9-7F90B21EB510
++g_f_help_sdraw_zip__help_pt_br_pt_br	232B0151-E65E-4BDD-9C91-4AE37EB312ED
++g_f_help_sdraw_zip__help_pt_br_sdraw_idx_pt_br	E81603B3-E9AF-4C13-99A4-1C62E44C9E4C
++g_f_help_sdraw_zip__help_pt_pt	457E6018-1C3B-4142-AC8C-955ABE7FC974
++g_f_help_sdraw_zip__help_pt_sdraw_idx_pt	0723742C-2B70-481C-B9B3-CD096E2F1AFF
++g_f_help_sdraw_zip__help_ru_ru	65895403-E3E0-418A-8226-F48133B99187
++g_f_help_sdraw_zip__help_ru_sdraw_idx_ru	2BE4F082-1CA4-48DB-BC1E-0D4BF72FAF0D
++g_f_help_sdraw_zip__help_rw_rw	ABB38912-63B4-4B3B-BEC0-9A56C445AF7C
++g_f_help_sdraw_zip__help_rw_sdraw_idx_rw	3E0B6617-DEFF-4DBD-A9B4-8C82AF53DEA4
++g_f_help_sdraw_zip__help_sv_sdraw_idx_sv	1FDFD791-EBA5-4D31-A381-D97CCB3273AF
++g_f_help_sdraw_zip__help_sv_sv	15E6F2A3-0A0D-4072-B86E-8812B198EA9E
++g_f_help_sdraw_zip__help_tr_sdraw_idx_tr	DE22A070-57AD-4079-A22C-DCCD90F5BA05
++g_f_help_sdraw_zip__help_tr_tr	2035ACB4-ABE8-45A6-B203-0A0DD4D1029E
++g_f_help_sdraw_zip__help_vi_sdraw_idx_vi	C862A207-B846-49D8-80FE-FF621BD3504E
++g_f_help_sdraw_zip__help_vi_vi	99B98A9F-4645-4259-84C9-F309C1A2F905
++g_f_help_sdraw_zip__help_zh_cn_sdraw_idx_zh_cn	D5F46002-3DCF-45F4-90FE-539DBA6F69FE
++g_f_help_sdraw_zip__help_zh_cn_zh_cn	CEAD2352-C0C2-4F90-A9BE-60DB54E66ED9
++g_f_help_sdraw_zip__help_zh_tw_sdraw_idx_zh_tw	D6CEAC54-EB56-4819-9F24-86137A6C351B
++g_f_help_sdraw_zip__help_zh_tw_zh_tw	58DDA038-5393-45E8-BDF1-93EE103B4D04
++g_f_help_simpress_zip__help_br_br	0E90EE62-0980-4D4A-8077-CDDCD5E3C179
++g_f_help_simpress_zip__help_br_simpress_idx_br	B0E135E5-879A-4833-86F8-6293EDE548B0
++g_f_help_simpress_zip__help_cs_cs	B9251527-378C-465D-B2F7-299B5637EBFA
++g_f_help_simpress_zip__help_cs_simpress_idx_cs	77CC2379-F219-4835-BC65-50525C0A7A52
++g_f_help_simpress_zip__help_cy_cy	B3EFBF1D-8D2D-4FBB-9F5C-9243B26D9C6F
++g_f_help_simpress_zip__help_cy_simpress_idx_cy	E3F962B4-6AE0-4607-B251-42D5942A2166
++g_f_help_simpress_zip__help_da_da	AC771134-E042-4566-9EFC-21B424B10FE7
++g_f_help_simpress_zip__help_da_simpress_idx_da	D9ABD845-024B-43A3-AF3B-92EA52A24ADA
++g_f_help_simpress_zip__help_de_de	AD5CF064-74AE-4BC9-838C-3560E5F2AD07
++g_f_help_simpress_zip__help_de_simpress_idx_de	047C9265-08E0-467E-9B20-9C265258B012
++g_f_help_simpress_zip__help_el_el	59747FF2-06F9-4A83-8961-88EF33BD543D
++g_f_help_simpress_zip__help_el_simpress_idx_el	F0B18CC9-F476-4A98-BF64-F3FB7FF6A7C0
++g_f_help_simpress_zip__help_en_en_us	4542D314-4899-48B0-B6D5-B6139302202E
++g_f_help_simpress_zip__help_en_simpress_idx_en_us	E93640EF-725C-4B86-A048-88B8FCD47AB8
++g_f_help_simpress_zip__help_es_es	53D26A82-D4F9-49AE-9F23-5B3D54B2741B
++g_f_help_simpress_zip__help_es_simpress_idx_es	ADD37BB8-57FC-447C-9EA8-8CB3B794F0D4
++g_f_help_simpress_zip__help_et_et	D8D7A121-09E3-4FD6-9C25-8DF55D4AA9BB
++g_f_help_simpress_zip__help_et_simpress_idx_et	EC273712-03F3-4724-B478-DB1463A6FB23
++g_f_help_simpress_zip__help_fr_fr	78913ED2-D588-4C3E-9BE5-B19E03CA02DD
++g_f_help_simpress_zip__help_fr_simpress_idx_fr	530A35E8-C341-4A30-A3E2-038733C9FBE4
++g_f_help_simpress_zip__help_he_he	DF696E7B-3268-4160-BD0E-C420789869DD
++g_f_help_simpress_zip__help_he_simpress_idx_he	2C724E34-524D-4372-9686-7FA98E0AAC01
++g_f_help_simpress_zip__help_hu_hu	9BCA1A37-0A7B-430D-B380-F6B0BD7BFFA8
++g_f_help_simpress_zip__help_hu_simpress_idx_hu	F3ACCFC0-0B9C-4718-A669-EE7E3AB8E476
++g_f_help_simpress_zip__help_it_it	6FF1C910-0732-430E-BA51-282AEF5C3AB8
++g_f_help_simpress_zip__help_it_simpress_idx_it	7F4A49FA-7474-48C8-8BE2-397A037B406E
++g_f_help_simpress_zip__help_ja_ja	76E3B0A3-80A6-4F1F-8C40-A76522D44849
++g_f_help_simpress_zip__help_ja_simpress_idx_ja	E8F31140-968C-407A-8B1B-C23E16C06FB5
++g_f_help_simpress_zip__help_km_km	DD8BC6A6-922B-4FEE-B288-0583AECF61AA
++g_f_help_simpress_zip__help_km_simpress_idx_km	A24DB525-729D-4EFE-B83B-5EED610CE6AF
++g_f_help_simpress_zip__help_ko_ko	565E6BF9-E96E-4B97-8886-826E4D987E8D
++g_f_help_simpress_zip__help_ko_simpress_idx_ko	EB736785-2052-4D5E-90D2-2D243BE2DB3D
++g_f_help_simpress_zip__help_nb_nb	0B4F5DFE-429A-4013-966C-B0E7B9C74186
++g_f_help_simpress_zip__help_nb_simpress_idx_nb	63F0E6B2-521C-42B0-9A51-955CD8B69FE5
++g_f_help_simpress_zip__help_nl_nl	775FD31C-0661-4916-98DC-36045A3B44BE
++g_f_help_simpress_zip__help_nl_simpress_idx_nl	47E0C5E0-525B-440E-AA7F-082153355D9D
++g_f_help_simpress_zip__help_pa_in_pa_in	594094D2-48A6-42BC-AB89-C8AAC43C77B9
++g_f_help_simpress_zip__help_pa_in_simpress_idx_pa_in	999FE253-D7F9-4A40-90F7-9DF5356958E0
++g_f_help_simpress_zip__help_pl_pl	46662976-9922-42E6-958B-12C154C75FB5
++g_f_help_simpress_zip__help_pl_simpress_idx_pl	2EE64B4D-8A12-4A87-8E8F-E611111CA29B
++g_f_help_simpress_zip__help_pt_br_pt_br	EB20C0CB-AB95-4026-A77C-DE2503068A73
++g_f_help_simpress_zip__help_pt_br_simpress_idx_pt_br	8EECF2AB-571C-4A6F-8456-2929467BDCE6
++g_f_help_simpress_zip__help_pt_pt	A7BB4BEE-C82D-4CB7-8DB8-1AC91E1A448D
++g_f_help_simpress_zip__help_pt_simpress_idx_pt	0F25A37E-C247-4D8B-9120-F98749E3F6F1
++g_f_help_simpress_zip__help_ru_ru	976CB115-B600-49A5-B19F-EB7BFB6509E9
++g_f_help_simpress_zip__help_ru_simpress_idx_ru	C2F5CA04-129F-4EBA-886C-5E9962C441F0
++g_f_help_simpress_zip__help_rw_rw	AD357F1C-B469-4937-8760-4B7A0D2F8740
++g_f_help_simpress_zip__help_rw_simpress_idx_rw	1DD70608-DA60-4791-BDD0-EF7920EE8694
++g_f_help_simpress_zip__help_sv_simpress_idx_sv	5D50924D-FEA5-46D1-B989-58BE4CD26C9E
++g_f_help_simpress_zip__help_sv_sv	A6CDE711-6058-4343-9015-63B468486CEC
++g_f_help_simpress_zip__help_tr_simpress_idx_tr	2D4FF83E-CC5A-405C-8510-19DEFFF9C23C
++g_f_help_simpress_zip__help_tr_tr	C31C583F-ECBD-4CBA-911F-3A3A2315FBE4
++g_f_help_simpress_zip__help_vi_simpress_idx_vi	05EC02EB-8C05-44E0-AEA1-A7EAD80C42C2
++g_f_help_simpress_zip__help_vi_vi	048F53F0-BDC0-4912-8390-DE32AA31B476
++g_f_help_simpress_zip__help_zh_cn_simpress_idx_zh_cn	A38B5100-AC04-46F6-8F00-84F598DF43F0
++g_f_help_simpress_zip__help_zh_cn_zh_cn	99D93804-5EA3-4A67-9BA2-66296F968EFE
++g_f_help_simpress_zip__help_zh_tw_simpress_idx_zh_tw	86748841-6914-4F4E-9EB5-7B2172623CD2
++g_f_help_simpress_zip__help_zh_tw_zh_tw	DF00EC6F-0B39-4BFD-A679-B5598363B8CE
++g_f_help_smath_zip__help_br_br	F2295DD0-6D54-4410-A8E8-B334E6633E80
++g_f_help_smath_zip__help_br_smath_idx_br	140ABE54-1E7E-4B30-9B0A-EE72FEF7CDDB
++g_f_help_smath_zip__help_cs_cs	26FEE384-2669-414D-82BC-6EBFEF256CB6
++g_f_help_smath_zip__help_cs_smath_idx_cs	85B9E4CE-2F66-4705-9209-8E4DD46BAF73
++g_f_help_smath_zip__help_cy_cy	61CA3DE9-5233-479D-BCFD-446E26E4EDEE
++g_f_help_smath_zip__help_cy_smath_idx_cy	336E1EC9-DDF2-44C7-9E44-03B1E63079A1
++g_f_help_smath_zip__help_da_da	0D4CF836-E8E6-4146-B849-846B955DCB4F
++g_f_help_smath_zip__help_da_smath_idx_da	30098DC7-F39E-4702-98BA-33B0B228204A
++g_f_help_smath_zip__help_de_de	5E1A62EE-20ED-4E9C-AA73-D3F2306C6E77
++g_f_help_smath_zip__help_de_smath_idx_de	0CCEEEDD-9AE0-4FC5-B00D-427A6940BAD3
++g_f_help_smath_zip__help_el_el	F9F3CB7E-05CA-4E2E-92C5-EF99881A991A
++g_f_help_smath_zip__help_el_smath_idx_el	5BAE5036-3ADA-453D-BA5D-6743D5723264
++g_f_help_smath_zip__help_en_en_us	4606D22A-9AD7-48FE-A996-7AD940EACFBF
++g_f_help_smath_zip__help_en_smath_idx_en_us	29D9DF29-6712-4374-8ED5-6A6E51D5FEE3
++g_f_help_smath_zip__help_es_es	1782D9DA-08FA-4611-9276-13DF38605795
++g_f_help_smath_zip__help_es_smath_idx_es	D240A919-3B9C-4570-A2B5-8EEC55A3596E
++g_f_help_smath_zip__help_et_et	AE0BA8E2-2DD0-401E-87E9-D16CE89B27FF
++g_f_help_smath_zip__help_et_smath_idx_et	9726A2DD-1F4F-46A3-B695-9EB1002A3B1D
++g_f_help_smath_zip__help_fr_fr	EE36068A-94AD-497F-957D-0DDB2C0B8B4B
++g_f_help_smath_zip__help_fr_smath_idx_fr	737CC770-1511-440A-9E40-E351B3804D47
++g_f_help_smath_zip__help_he_he	4D9DEF92-5334-4E8A-8151-57A69E66DBAD
++g_f_help_smath_zip__help_he_smath_idx_he	2B8B3540-B426-48F3-BD72-11FC210D0EA4
++g_f_help_smath_zip__help_hu_hu	8844CFFA-25D9-438A-8425-682268CC37F5
++g_f_help_smath_zip__help_hu_smath_idx_hu	670AE061-B5FE-4D78-ABFC-266512A97952
++g_f_help_smath_zip__help_it_it	F04EBAE7-C888-44AA-BB58-C3840E08F26F
++g_f_help_smath_zip__help_it_smath_idx_it	232B8C2F-F618-4400-8798-7B3C597B1BF2
++g_f_help_smath_zip__help_ja_ja	37CDC3B2-5E28-4B28-AFB0-69F8E422EDA6
++g_f_help_smath_zip__help_ja_smath_idx_ja	29B68DEB-5983-4C8B-B25D-16EC0F0F69E7
++g_f_help_smath_zip__help_km_km	99E134A9-0583-4703-8269-B197BA6EC0C4
++g_f_help_smath_zip__help_km_smath_idx_km	FDA329C4-5CAC-4C52-9F16-F2FB8ABFC155
++g_f_help_smath_zip__help_ko_ko	90281708-B682-4AB8-9124-BED5A743789D
++g_f_help_smath_zip__help_ko_smath_idx_ko	ED990208-B6B3-4B74-8D00-606BC944ECF4
++g_f_help_smath_zip__help_nb_nb	C26845B9-5234-4CB5-A5D6-4004B92EA82F
++g_f_help_smath_zip__help_nb_smath_idx_nb	F178D47F-934A-44EF-A316-9939E0CE2E99
++g_f_help_smath_zip__help_nl_nl	88862A2D-A395-43F8-ADF8-1F88BBDC2E95
++g_f_help_smath_zip__help_nl_smath_idx_nl	4524F20F-72FF-4201-AC4D-9A696ABAABD9
++g_f_help_smath_zip__help_pa_in_pa_in	80DF5098-4AD2-4596-8B8F-FB76C6F5D65D
++g_f_help_smath_zip__help_pa_in_smath_idx_pa_in	E7AD1B5C-6CD9-4E64-8AD6-17D45F46B53C
++g_f_help_smath_zip__help_pl_pl	7269B0E9-8D37-4A37-BC7E-E90C0B504DD5
++g_f_help_smath_zip__help_pl_smath_idx_pl	269605CC-BCF1-4B64-86C0-EA250B2A35F1
++g_f_help_smath_zip__help_pt_br_pt_br	538B9F7A-1D05-42B4-9A29-4E0A146E9CE2
++g_f_help_smath_zip__help_pt_br_smath_idx_pt_br	51E87015-9E3A-4C31-A388-719A952FEA46
++g_f_help_smath_zip__help_pt_pt	ABA69215-748B-4C99-A57C-255E30EEBE3E
++g_f_help_smath_zip__help_pt_smath_idx_pt	9D7ACAF5-C78C-4591-9179-D416F8DB7AB8
++g_f_help_smath_zip__help_ru_ru	28B129BD-0C92-4295-B529-519B9B69628E
++g_f_help_smath_zip__help_ru_smath_idx_ru	137D10C8-A3F8-4543-B8B9-1CAF9323CEA0
++g_f_help_smath_zip__help_rw_rw	84028E57-1985-4D9C-B1F1-EA0F9BB7C0CF
++g_f_help_smath_zip__help_rw_smath_idx_rw	C9430A18-6B3C-4F63-AC83-8645D7D72A85
++g_f_help_smath_zip__help_sv_smath_idx_sv	0D68756B-196F-4225-8EAF-8EC63B6B81E8
++g_f_help_smath_zip__help_sv_sv	D13D6143-938F-4A17-803A-A90AA0BAEF29
++g_f_help_smath_zip__help_tr_smath_idx_tr	E2F6E05F-2170-467F-B7EF-D5A5B46CF4EF
++g_f_help_smath_zip__help_tr_tr	D0A06A78-6FAE-403E-BA1A-517DE99679C5
++g_f_help_smath_zip__help_vi_smath_idx_vi	6795C130-3190-4BD0-A818-87E5125DE504
++g_f_help_smath_zip__help_vi_vi	5DEC00DE-38A5-424F-9E80-46A45D2416A5
++g_f_help_smath_zip__help_zh_cn_smath_idx_zh_cn	58DB4ED8-0518-4E4C-A13E-7CC6E7A769C5
++g_f_help_smath_zip__help_zh_cn_zh_cn	24786A7A-28CB-4E1A-B480-D1764BFD8A78
++g_f_help_smath_zip__help_zh_tw_smath_idx_zh_tw	9698855C-E475-4EF4-876E-64EDB9A5F28C
++g_f_help_smath_zip__help_zh_tw_zh_tw	DFF843C9-FF23-4FDF-9E3F-1D3F6789F783
++g_f_help_swriter_zip__help_br_br	8C5803D4-9E92-477E-A5FD-B7899DE4E636
++g_f_help_swriter_zip__help_br_swriter_idx_br	F3E4DA86-EC16-47CD-94A9-EE086A9397D1
++g_f_help_swriter_zip__help_cs_cs	5258E63E-3F1C-43B5-A90F-B02574358D3F
++g_f_help_swriter_zip__help_cs_swriter_idx_cs	3E27DA23-40D8-426A-8781-4E59AC065141
++g_f_help_swriter_zip__help_cy_cy	783A2004-9C99-42D9-9FB7-2866AD4D8B1C
++g_f_help_swriter_zip__help_cy_swriter_idx_cy	E8E8A8C9-F42A-4610-A100-63CE5C41A2D3
++g_f_help_swriter_zip__help_da_da	8D46ED76-D269-45CD-B19B-6BC3F848CAC8
++g_f_help_swriter_zip__help_da_swriter_idx_da	5416D09F-4A43-4DF2-BBA6-F41F3EA42AC8
++g_f_help_swriter_zip__help_de_de	65DFE4C8-4F95-4544-88A6-02D5594264DF
++g_f_help_swriter_zip__help_de_swriter_idx_de	CB85C30D-2690-4FB1-93B2-D2D5B788D86E
++g_f_help_swriter_zip__help_el_el	99013A5D-07DC-4DEC-9E57-4FDD060F4696
++g_f_help_swriter_zip__help_el_swriter_idx_el	14D9535E-87F6-48DC-AEFE-7B8B5D6FFDA4
++g_f_help_swriter_zip__help_en_en_us	2B11B8CD-840C-4EC7-9CB4-9E13A358CAA2
++g_f_help_swriter_zip__help_en_swriter_idx_en_us	3920B6AA-5B22-4E4D-8A0B-EF8AAC8419DF
++g_f_help_swriter_zip__help_es_es	D6E12394-A039-4AB9-AC83-E900BB2509B3
++g_f_help_swriter_zip__help_es_swriter_idx_es	2740DCD8-E8AA-4C1C-8A51-5378EED55F89
++g_f_help_swriter_zip__help_et_et	042550AE-64F9-4697-97A4-6A7E11461D53
++g_f_help_swriter_zip__help_et_swriter_idx_et	B3FA3D3F-52E6-427C-A762-4A911C342879
++g_f_help_swriter_zip__help_fr_fr	0E84386F-937D-431A-90B1-CC46A462D982
++g_f_help_swriter_zip__help_fr_swriter_idx_fr	BA6AE484-8222-4F43-8B5D-F3B1B842288B
++g_f_help_swriter_zip__help_he_he	AD7943B4-591F-42D5-9F42-6750F51AA63E
++g_f_help_swriter_zip__help_he_swriter_idx_he	95F7B6F7-1C2F-4BBA-8A1E-43D0E1CF52A7
++g_f_help_swriter_zip__help_hu_hu	0C566A82-4FEF-4C32-A799-00C29FC7F78B
++g_f_help_swriter_zip__help_hu_swriter_idx_hu	53D6A61D-365B-44B3-9363-34CB36BF6BD8
++g_f_help_swriter_zip__help_it_it	9E6B65CE-BAC3-4924-9189-A44EBAA962F8
++g_f_help_swriter_zip__help_it_swriter_idx_it	6C1EE718-8AEE-403D-9F50-D5003A8C9361
++g_f_help_swriter_zip__help_ja_ja	502DF361-770D-45EF-9F76-562A7B672C3F
++g_f_help_swriter_zip__help_ja_swriter_idx_ja	82AC46C5-80CD-4624-B199-840188A96FBA
++g_f_help_swriter_zip__help_km_km	E9C15B75-2695-45B2-B0A8-30A01C3D24C5
++g_f_help_swriter_zip__help_km_swriter_idx_km	D493A0C1-4707-47CC-AA6A-F471894241BE
++g_f_help_swriter_zip__help_ko_ko	3A52E675-ED3A-4B76-9E6C-8C813E935420
++g_f_help_swriter_zip__help_ko_swriter_idx_ko	143E9E71-7845-4BBA-8A02-7DD2EF17C7C3
++g_f_help_swriter_zip__help_nb_nb	925D875B-2643-4911-9AE4-AD4BE67688C0
++g_f_help_swriter_zip__help_nb_swriter_idx_nb	E87FFDAB-23B1-4440-B311-2CB9DFCF5CBE
++g_f_help_swriter_zip__help_nl_nl	3087ABE2-9B73-4CCD-BC8A-CE6B1B981385
++g_f_help_swriter_zip__help_nl_swriter_idx_nl	9C2F7AC1-AB43-443F-8DF2-6083DB988A56
++g_f_help_swriter_zip__help_pa_in_pa_in	B0720B06-515F-40BF-A49D-07CB9FBA6E9D
++g_f_help_swriter_zip__help_pa_in_swriter_idx_pa_in	58D3505D-C5B4-4933-B4D1-FA87EB6CE7F7
++g_f_help_swriter_zip__help_pl_pl	A1A101C2-A804-4F2E-94BF-6634BF9B89DD
++g_f_help_swriter_zip__help_pl_swriter_idx_pl	4B82891D-D536-425A-B003-BAE82AB755F3
++g_f_help_swriter_zip__help_pt_br_pt_br	6854D62D-71CA-46B7-B9AF-82DD9E10EB64
++g_f_help_swriter_zip__help_pt_br_swriter_idx_pt_br	F60B1C0B-27CF-49A9-9470-0164B519597D
++g_f_help_swriter_zip__help_pt_pt	EC4C1C99-1B72-448C-9790-1879051C4160
++g_f_help_swriter_zip__help_pt_swriter_idx_pt	CAFEAA01-E2ED-4F6F-BA2C-E2B1740BA5EA
++g_f_help_swriter_zip__help_ru_ru	08C31028-CD09-4E09-992D-8FDCD3E04244
++g_f_help_swriter_zip__help_ru_swriter_idx_ru	67805D63-BF93-4483-BA3F-ACB4CBD733B2
++g_f_help_swriter_zip__help_rw_rw	D780BB4D-5DD6-449F-843D-CBB9DADFA6BC
++g_f_help_swriter_zip__help_rw_swriter_idx_rw	F404CB87-B016-4E09-B6D7-3AD44092456E
++g_f_help_swriter_zip__help_sv_sv	9B79F7AB-F564-431D-90E7-9D66732FE3C3
++g_f_help_swriter_zip__help_sv_swriter_idx_sv	4E6414A6-2471-4F49-AEEE-76504728927D
++g_f_help_swriter_zip__help_tr_swriter_idx_tr	78F6528F-CD1E-4FE0-A2EC-55AD29542C40
++g_f_help_swriter_zip__help_tr_tr	3DBED846-9CC9-4C2E-A5A3-A79BA6C69F77
++g_f_help_swriter_zip__help_vi_swriter_idx_vi	29501150-5EE6-4841-B927-A8350F4BEF70
++g_f_help_swriter_zip__help_vi_vi	297ACE00-50A7-483B-ADCC-4DEAFB6BAE1E
++g_f_help_swriter_zip__help_zh_cn_swriter_idx_zh_cn	AF993AC2-9939-4835-842C-87E0A3C59342
++g_f_help_swriter_zip__help_zh_cn_zh_cn	0DB98FA3-7D1B-458A-AD70-F480AB4C4A1F
++g_f_help_swriter_zip__help_zh_tw_swriter_idx_zh_tw	E88F12A4-B3A4-4E90-B4DA-3CA111BD6ECF
++g_f_help_swriter_zip__help_zh_tw_zh_tw	2E882F72-6728-4378-9B79-B3D6F41B8113
++g_f_hid_testtool__program	4EC904FD-9EE8-49BC-8F0F-458EC6E1BE41
++g_f_html_thirdpartylicensereadme__	9FD0AE39-7C48-4638-B822-E1A4416A3283
++g_f_html_w3c_ipr__share_dtd_math_1_01	8CC98081-B751-42AD-B047-5E13185392F9
++g_f_iconvdll__program	39AD3D80-B0AF-4F66-9B4C-9F508F7C3B89
++g_f_images_crystal_zip__share_config	8571FFF1-B3B9-478A-AECB-3CBA46F2F3D6
++g_f_images_hicontrast_zip__share_config	B930107D-A0D6-4A9B-A795-E411BBDA9F46
++g_f_images_industrial_zip__share_config	46E27859-B56D-4D9E-B8AB-927286F0BA2C
++g_f_images_tango_zip__share_config	1C9A4A9F-1103-4996-8D77-3683251941F0
++g_f_images_zip__share_config	A68CCF15-C39B-4AD5-8E43-3FF49FF0B111
++g_f_intldll__program	06CE1BCE-00C6-47AD-A6EB-48D491F17A1F
++g_f_jar_accessbridge__p_classes	374CDB80-F043-46B9-8B83-A61493CC7017
++g_f_jar_agenda__p_classes	9B12EA06-60FF-438B-8FAA-A93AF388BE37
++g_f_jar_aportisdoc__p_classes	128D694C-6E5E-440C-B890-72BEDF56FC03
++g_f_jar_bsh__p_classes	304855E2-6F3B-4C7A-B382-DE10CE8BEE52
++g_f_jar_classes__p_classes	0FEAC46D-CBB5-4E4F-9945-928B3FED30E1
++g_f_jar_commonwizards__p_classes	7534FC9C-4762-44B1-870E-55D5020EFF68
++g_f_jar_fax__p_classes	B175FF41-676E-4711-B101-7FD2EFC73D15
++g_f_jar_form__p_classes	65923590-3672-4FA6-B8A8-3466D355615B
++g_f_jar_hsqldb__p_classes	E100AF7A-0C82-495B-BFA6-AD10869B00E5
++g_f_jar_hsqldb_sdbc__p_classes	7BA76DB9-D991-4C13-A1CC-DB76CC48D8EE
++g_f_jar_java_uno__p_classes	E787B1F9-DF98-4A31-A287-A81879E0536B
++g_f_jar_js__p_classes	B176CF59-4817-435E-9386-C9441DA9B2FE
++g_f_jar_juh__p_classes	606EB2C5-1156-4B49-88D1-3C7F2C5CA7F2
++g_f_jar_jurt__p_classes	008E9B54-5F5B-4012-A8C1-E33036C8DB59
++g_f_jar_jut__p_classes	D9D78D77-84ED-4965-8AC8-10EE58CDB2BC
++g_f_jar_letter__p_classes	EF371D83-27A7-4BF5-996D-17F15A39EFF8
++g_f_jar_officebean__p_classes	A16EBFCE-8757-4EEC-BB3E-AEDE614C6FD0
++g_f_jar_pexcel__p_classes	0B5153A8-ADD6-4723-997A-418BD98EFFEE
++g_f_jar_pocketword__p_classes	4CE25F5F-AADF-4B72-9978-5902BB3AAE28
++g_f_jar_query__p_classes	BF4894F8-8136-4489-ACE8-01981FDDCBC3
++g_f_jar_report__p_classes	7CFFAA18-A59A-43D4-A5D0-ADEA839BA0A0
++g_f_jar_ridl__p_classes	D838DC9B-F04E-4578-9B75-A74EF1480D78
++g_f_jar_sandbox__p_classes	FCA87CE6-1D97-4936-BBAB-A0F3D2C736AF
++g_f_jar_scriptframework__p_classes	467E57B0-02B7-4FA6-ADDD-FD2C14D258E2
++g_f_jar_scriptproviderforbeanshell__p_classes	8267455C-BDDD-4678-B878-7B72069DE536
++g_f_jar_scriptproviderforjava__p_classes	4A74999F-5667-401C-884B-7B53823CB494
++g_f_jar_scriptproviderforjavascript__p_classes	FD1FE545-8898-456F-B92D-F232A4971CD8
++g_f_jar_serializer__p_classes	213F1D05-2D6A-47BD-BE04-923DDF71ADFA
++g_f_jar_tb__p_classes	E0C4139D-0196-4050-922F-3D9BE8767211
++g_f_jar_unoil__p_classes	D31BB69B-5A4F-461D-A569-3AE596AE1FC3
++g_f_jar_unoloader__p_classes	E9B46285-E4EB-43F4-8673-C3BB76C9607E
++g_f_jar_web__p_classes	9854EDDC-CB75-4A13-9F63-439732385CE4
++g_f_jar_writer2latex__p_classes	A22F0734-C91C-4580-B620-18EEEB173E5B
++g_f_jar_xalan__p_classes	F96A4218-8AAE-4288-B808-182178E4774C
++g_f_jar_xercesimpl__p_classes	0E2EFB01-01C8-483A-8ADD-3A8E99EFFB63
++g_f_jar_xmerge__p_classes	4D41831B-B227-48C2-8030-AD8254EA9642
++g_f_jar_xmergebridge__p_classes	6B91F7FC-FDE3-4721-8498-2DB3E57E71C2
++g_f_jar_xml_apis__p_classes	1A96F8A2-DE18-46E0-B1A8-80C6CE14BC52
++g_f_jar_xsltfilter__p_classes	6779F5C7-740E-41E7-B593-6F885A4C4CC0
++g_f_jar_xsltvalidate__p_classes	CFA8096C-8A73-426B-9662-74D60B5F3F85
++g_f_jar_xt__p_classes	0CD06378-CD58-41F1-A37B-8FC31E3221FB
++g_f_jreproperties__program	73CCADE2-0C65-47AF-8AF9-A4B6A1F05E9B
++g_f_lib_abp__program	29BCC764-115E-469C-9E66-696DC2BBCFFA
++g_f_lib_acc__program	BA3BBF86-83B6-4CEE-AE92-356663BA9F78
++g_f_lib_acceptor__program	1FA41C0B-96DE-4C13-B861-BD10C4318E0B
++g_f_lib_accessbridge__program	5BAFA5B4-AE82-4985-B6B8-82E470B618F4
++g_f_lib_adabas_2__program	9A30F9B3-1E47-44E5-8C75-93B3BCF3D22C
++g_f_lib_ado_2__program	EA25660A-436B-48C5-BC09-1DB592AE3AC5
++g_f_lib_affine_unouno__program	AAE8D62E-7FB6-4EAE-923F-578CCD9660CF
++g_f_lib_analysis__program	A86D42D3-E364-4E6D-A659-7D12E8C6ED86
++g_f_lib_animcore__program	D0719117-685C-4444-8093-A4F27C04C764
++g_f_lib_avmedia__program	D72ED184-680A-4653-92D1-994EB93A32BE
++g_f_lib_avmediawin__program	7B74738B-68ED-4133-B9B0-595E1E1063C0
++g_f_lib_basctl__program	F0501364-4CA0-459E-9025-C5C86B9E091E
++g_f_lib_basegfx__program	C218F53C-555F-4D48-9941-8F7D807C40CA
++g_f_lib_basprov__program	EED221DD-C35D-4FB4-A925-9D449CE4A14E
++g_f_lib_behelper__program	C14F6FAF-06D0-4991-AA64-76BA0E59961F
++g_f_lib_bf_frm__program	003A606D-E84C-4476-805E-1E414B16EB20
++g_f_lib_bf_go__program	40FD7C51-EF90-49B3-9119-868F0E66A8E5
++g_f_lib_bf_lng__program	FA6A38F0-B88F-4796-A2CF-B7B08A82E698
++g_f_lib_bf_migratefilter__program	3A0F3E93-8022-4C2F-9153-97EFD0200B5C
++g_f_lib_bf_ofa__program	61FDA510-A3D1-4B22-BE55-56F710668AFD
++g_f_lib_bf_sb__program	E7CB5D37-528D-406B-BB1C-A592DA016637
++g_f_lib_bf_sc__program	4F6BF7A5-E032-4B89-8A51-D8DD4DFC2983
++g_f_lib_bf_sch__program	24A8377F-68C2-41F1-B8AA-E964BA892214
++g_f_lib_bf_sd__program	C4BDA11F-B79F-4C1D-A485-13E41984E635
++g_f_lib_bf_sm__program	6C1D928B-DC08-4378-AF3B-F6D27BE975E1
++g_f_lib_bf_so__program	872AEF3D-D03B-48E8-994B-F9EF001CAF7F
++g_f_lib_bf_svx__program	61AF00C6-A15E-4EAB-99EE-771864EC9916
++g_f_lib_bf_sw__program	BA7D4E83-53A7-4726-A4F4-87CC160A87DE
++g_f_lib_bf_wrapper__program	C21BEB35-B3B2-468D-97C9-5BBEBD85F172
++g_f_lib_bf_xo__program	A1E95FF1-9292-4305-BA98-70956B95B6FE
++g_f_lib_bib__program	269BA679-6268-4EFE-861F-1510C6503326
++g_f_lib_bindet__program	4D809E73-57FA-4394-BD29-5FBE49D023CB
++g_f_lib_bootstrap__program	F98365E9-09B2-4C18-B372-6CB73D89ECAA
++g_f_lib_brdgfctr__program	DC7D6493-076F-494B-AF30-7EBDDBFD8F8E
++g_f_lib_cached1__program	052D63CC-C9B8-4292-AA58-12E00DCBDC03
++g_f_lib_cairocanvas__program	4089AB7F-41AC-4536-9225-9896E1F175B2
++g_f_lib_calc__program	84DD4380-6DFB-4BE9-B84C-4DDFA21E763C
++g_f_lib_canvastools__program	1C00D774-5D08-4B02-9107-3D21A64BCD61
++g_f_lib_chartcontroller__program	61D3079B-63A3-4D90-81BE-2CCFC37E2C3C
++g_f_lib_chartmodel__program	05B2D0CB-F34C-4555-9216-A1A1E34B328F
++g_f_lib_charttools__program	665D3003-CCC6-4136-B18F-C945E6EA146D
++g_f_lib_chartview__program	A26E6AA4-BB55-443A-A9C5-9E4F307A8694
++g_f_lib_cli_basetypes__p_assembly	E775D509-AE2E-4B65-887C-4168189A1048
++g_f_lib_cli_basetypes_assembly__program	B00C0162-4C24-434A-9CFD-C22A255EB5F8
++g_f_lib_cli_cppuhelper__p_assembly	45FB12FA-A174-4103-82FB-E2604F4866E8
++g_f_lib_cli_cppuhelper_assembly__program	BC283A82-702A-4DB6-8BCD-82652C867C80
++g_f_lib_cli_types__p_assembly	0FAFD5E7-F93E-420D-B7A4-CE62D51EC45F
++g_f_lib_cli_types_assembly__program	B8E13B76-D494-4ABF-A659-951CA6D2FABF
++g_f_lib_cli_uno__program	97F66C8C-EDB0-46F0-B2F5-533949BC175A
++g_f_lib_cli_ure__p_assembly	AB9A5C35-F1D5-477D-9BFB-FB0F9BEF8C38
++g_f_lib_cli_ure_assembly__program	185BEA12-0912-44B8-8B85-2A05E279B2C4
++g_f_lib_collator_data__program	59171EA4-DFE8-437F-9D88-48F2AE649873
++g_f_lib_communi__program	C10D9155-36EA-42E0-961A-2C9CC4839834
++g_f_lib_comphelper2__program	BEC02A16-1F27-49E0-915B-9593202CAF50
++g_f_lib_configmgr2__program	E540F25E-0FBC-4060-8D39-71217FA1E4BC
++g_f_lib_connectr__program	3340A8DB-695C-4A91-B931-3BF2AA455F96
++g_f_lib_corefl__program	C7500003-286B-4092-8457-EA25B68D6E6C
++g_f_lib_cpld__program	C962D575-0B29-46B4-AB12-BD9935A8A6EF
++g_f_lib_cppcanvas__program	B6C289C8-9B36-49F0-8B50-126F41A17595
++g_f_lib_cppu__program	B22D9232-339B-4D77-B2F8-CF0E85012F44
++g_f_lib_cppuhelper__program	B807C50A-7597-4077-B8E5-2C3A4E82CC51
++g_f_lib_crypto__program	38CAC1E4-91E5-4D6D-ADD4-8CED326D526F
++g_f_lib_ctl__program	654661B2-9FBA-4840-B39C-84A3ED2B5F8B
++g_f_lib_cui__program	3208EECB-6BA1-464C-B19F-66365881D7A7
++g_f_lib_curl__program	C8CB2035-BC6E-4DDB-875D-A26D92EF7289
++g_f_lib_date__program	D4F91491-C336-4A25-8D49-473113C72CE0
++g_f_lib_db__program	1FEA0272-AD35-4BBD-B6A2-607F931270C2
++g_f_lib_dba__program	C2EFEA6E-C6F7-4A68-8ED0-1E5AB7634A52
++g_f_lib_dbacfg__program	3DF49CDD-E59F-4F66-BEB7-7E839681FCDA
++g_f_lib_dbase2__program	22FBF82F-23B2-436E-B1CD-73266DA5D9AF
++g_f_lib_dbaxml__program	3F352E0A-587A-4582-B17C-4D8EE9C3AC9E
++g_f_lib_dbfile__program	5A4139B0-57BF-44E5-8528-1F27D96CFF68
++g_f_lib_dbjava__program	A8D77ED7-4596-4E5A-B030-F9281AC0D734
++g_f_lib_dbodbcbase__program	23AB592F-40FD-40BA-A999-76A17093E031
++g_f_lib_dbp__program	4EE29B5F-0775-4BFB-8A59-7E11408A48E4
++g_f_lib_dbpool__program	59D33E1C-46B4-409E-B5B0-4D8EAE3862A9
++g_f_lib_dbt__program	7D368CC7-4E9C-4C15-BC9A-68289F9647EE
++g_f_lib_dbu__program	45922E59-593C-421C-847F-7C89864F5087
++g_f_lib_defreg__program	41C2CE61-3575-4BA2-81E6-A6A9013C383A
++g_f_lib_deployment__program	46FC6467-8871-4268-91B7-03D2E8E50FD9
++g_f_lib_deploymentgui__program	5F661A36-00E0-4F78-A8EF-F7F1BC0DDD90
++g_f_lib_deploymentmisc__program	8E137FE3-B7BE-4B20-904F-DACEFDEE013A
++g_f_lib_dict_ja__program	C3D672FA-E68B-460E-9745-543E45F89F8C
++g_f_lib_dict_zh__program	3087A840-92C0-4C84-9201-79C80C938621
++g_f_lib_directx9canvas__program	4369C634-234B-4A56-B26D-F78B608C5C27
++g_f_lib_directxcanvas__program	2858D605-D444-47D7-98D7-D91B6A62B91E
++g_f_lib_dlgprov__program	011CF21C-31DC-485A-8402-E7E810CECF76
++g_f_lib_dnd__program	07AF8D07-A8D5-447A-BF49-51AFD4FD9EC7
++g_f_lib_dtrans__program	C9196A59-4E2D-499D-955D-02D208E229CF
++g_f_lib_embobj__program	10A5B764-EC23-4D7F-ACDF-4DB04A5BCB15
++g_f_lib_emboleobj__program	8ED51526-5F3F-4FD1-855E-44648B189352
++g_f_lib_emser__program	ECBA2126-11C5-4DBA-A46C-854343EA349A
++g_f_lib_evtatt__program	5F558863-261C-45F5-A79A-70463D63896B
++g_f_lib_fastsax_uno__program	A77F23C5-C38C-4064-B6DD-BDB6218E5240
++g_f_lib_fileacc__program	A805679A-12A7-41A8-9CBE-C98B14C45243
++g_f_lib_filterconfig1__program	DE782A3F-495E-4816-97CF-13EDCEEECE46
++g_f_lib_flash__program	647CABA9-70EA-4572-A242-E494B71D4391
++g_f_lib_flat__program	EF7B087C-6962-4F78-9750-3A47A335BA62
++g_f_lib_fop__program	446AF05F-58F8-45A2-B078-B469751EC84F
++g_f_lib_fpicker__program	2485C0E0-D288-4669-8DDD-E68CF62CF96F
++g_f_lib_fps__program	F863E8F1-C49B-40DE-BB20-BF83B27A4443
++g_f_lib_fps_odma__program	73623C80-A9A0-44EB-8766-BF107F605B4D
++g_f_lib_fps_office__program	5AB343FC-4F59-4DA3-B657-67B4531F0149
++g_f_lib_frm__program	388C0D98-F79D-4A70-8B8E-9AC9B3FD6687
++g_f_lib_fsstorage__program	1C512270-7F81-4F38-8AE0-314800EF097D
++g_f_lib_ftransl__program	9A463EFC-492E-4936-A4ED-8596639EF782
++g_f_lib_fwe__program	5E016D85-F1AD-47CC-B5E4-B0132ADA7798
++g_f_lib_fwi__program	9BC26993-A608-4080-BD20-A5A38A4FCEE6
++g_f_lib_fwk__program	0C3243B2-1E35-4260-8AFE-B093A84D9D6E
++g_f_lib_fwl__program	2204826E-96F9-4911-B1BD-40EF5632722C
++g_f_lib_fwm__program	8C9D3D37-822A-4F28-AA91-4F09CB59BAB2
++g_f_lib_gdiplus__program	8CFB056D-46C5-4375-8F94-1DF432689938
++g_f_lib_go__program	7917BF9B-AAEA-4E0A-B65C-13210CB2AB0A
++g_f_lib_guesslang__program	7D3A22E0-F513-4C36-9CF3-FC6E293BBCC2
++g_f_lib_hatchwindowfactory__program	B09923B2-4FB1-4898-ABD6-4711FE8468E5
++g_f_lib_helplinker__program	B00FB30C-C02E-4C75-B131-9712BC550743
++g_f_lib_hsqldb_2__program	7F166AC5-31F1-459F-A931-50A2D169F85B
++g_f_lib_hunspell__program	3EA10728-F451-4B0A-87B3-19223811B9DF
++g_f_lib_hwpreader__program	8BFB75D0-4EFB-4950-B4AD-E7783B29DF97
++g_f_lib_hyph__program	358227FF-EA37-428D-97FC-A0720FA30D88
++g_f_lib_i18nisolang__program	F9F1D23E-F903-45D8-B461-2911339F07AF
++g_f_lib_i18npool__program	CDD6E4FE-EC82-410C-A7F2-C2405513EEAE
++g_f_lib_i18nregexp__program	7A99B342-DDDE-43E6-8985-E4E44D7F3E3D
++g_f_lib_i18nsearch__program	F56B0856-F2C1-452F-9836-49F6F1416342
++g_f_lib_i18nutil__program	478F4444-D15D-4857-985C-D14B2072F802
++g_f_lib_icudata__program	2AD3F112-7A06-4A4B-9482-9E1E284FA238
++g_f_lib_icui18n__program	A795A205-0B86-40B3-AEFA-3AEEB5AF7C4D
++g_f_lib_icule__program	AA653567-A9D1-490C-AB2C-CCB5FE771548
++g_f_lib_icuuc__program	234DC3C5-98C4-4818-AD81-536C30AF3EF2
++g_f_lib_iiopbrdg__program	351BEB0E-6625-45D4-8989-4A3BD00D352D
++g_f_lib_impreg__program	D12B46E7-DD03-41B9-A502-6CB4F3CCBE52
++g_f_lib_index_data__program	CEDDC844-E236-4A3A-A942-BFD810FE86CD
++g_f_lib_insp__program	676EC962-887E-4E9F-AD7D-5CD89DA3A7A7
++g_f_lib_inv__program	3ADEE983-720C-40D5-87F8-05FCF39F4B19
++g_f_lib_invadp__program	18B712FA-2AB6-4AA6-89E9-31FE632F4A67
++g_f_lib_j__program	91FBBCD6-18D1-414F-A108-165DC3D9CB92
++g_f_lib_java_uno__program	C63BD18E-1CB3-4D85-87E2-9851C8E11B2C
++g_f_lib_javaloader__program	AAB6AF59-E367-4EB4-86EC-7349E8AE6E68
++g_f_lib_jdbc_2__program	5CE276A5-90A4-4947-B8DA-4F3E106FA752
++g_f_lib_jen__program	CD9809AF-8DA4-4F6D-9881-5D7A04554F31
++g_f_lib_jpipe__program	9F847997-71D9-4C5E-AED7-44BE5C0531A8
++g_f_lib_juh__program	10A4C823-0849-4020-A213-58DA86517135
++g_f_lib_juhx__program	87F10D10-DB9B-4744-8650-681A764767BD
++g_f_lib_jvmaccess__program	D5C3125F-B4D7-4C17-951B-4B8E4530D7C5
++g_f_lib_jvmfwk__program	B2D07CF2-EC17-4C03-9A72-8BB984FCA7FD
++g_f_lib_ldapbe2__program	2FD634CE-E4DC-4774-B3D1-6DA29F8B35D6
++g_f_lib_legacy_binfilters__program	22516942-E265-4DBE-B3EB-61E762CF1F16
++g_f_lib_libtextcat__program	9EAB4B72-9398-45A7-B61D-BBC9339FA265
++g_f_lib_libxmlsec_xmlseccore__program	D1CBD7E0-DA46-4F28-A01F-72C359F972A2
++g_f_lib_libxmlsec_xmlsecmscrypto__program	CA9CA52B-3B99-46E6-86EE-7131C9C8EAD6
++g_f_lib_lng__program	EDCB3198-C61E-4C0F-BDD1-DE02CB7FE293
++g_f_lib_lnth__program	9C995D59-0A43-4494-938C-6FAC345EFB2F
++g_f_lib_localebe__program	48D4A07E-5C2A-4C4E-94C0-3D77FF333EAF
++g_f_lib_localedata_en__program	8B0AA748-CA77-4CED-9924-003612423D1A
++g_f_lib_localedata_es__program	21D25935-22DC-45D1-AF9F-56DDEE162CA5
++g_f_lib_localedata_euro__program	DA087E84-0167-4E29-AE1D-1AA63B3C2479
++g_f_lib_localedata_others__program	990F6AA9-7E35-428B-9604-62F8830C3703
++g_f_lib_log__program	9D2B1FC5-F69D-483F-BA92-22863313284C
++g_f_lib_mcnttype__program	F426CAC6-AF32-48ED-81AA-C0242D5CA391
++g_f_lib_migrationoo2__program	1DC03E92-96D1-480C-B4F6-4ED2FFF9913C
++g_f_lib_mozab_2__program	8766DE43-92AC-4145-B27E-563B956499D8
++g_f_lib_mozabdrv__program	FD06F3EB-970F-4A25-BE54-1F8E7D0ADA02
++g_f_lib_msci_uno__program	8B032D61-A07A-41BF-AD69-031D5EB918D0
++g_f_lib_msvcp71__program	9523F0D1-ADEA-4D2F-BDD4-2BD4FB31D618
++g_f_lib_msvcr71__program	D8AABCBC-27F3-4127-844E-F9DAEC74280C
++g_f_lib_msworks__program	31113920-BE50-46F0-B121-C164C4404261
++g_f_lib_mysql_2__program	ACFE261E-8CDD-4CBE-9969-583C97E96400
++g_f_lib_namingservice__program	802C76A7-15E8-4E2C-AD8D-E5DB5B20C717
++g_f_lib_npsoplugin__program	148AE8E1-8483-445D-B549-7D9848090B5E
++g_f_lib_odbc_2__program	DD2A4D67-E2F3-4119-A3C3-D0785AFB7CE0
++g_f_lib_offacc__program	2D06D5F2-B043-48BB-84E8-B2ACAB94DB02
++g_f_lib_officebean__program	E9AB865E-F045-4A1E-8374-77C007A43AB8
++g_f_lib_ole__program	BB414D63-8D21-4BC5-8274-549A63A37B7B
++g_f_lib_onlinecheck__program	2C3EA5A7-B324-40FA-8512-A6CB1A7E764A
++g_f_lib_ooofilt__program	6D51C319-73AE-4EC7-BEF1-A60745EA70F2
++g_f_lib_ooofiltproxy__program	6EEE5F18-951C-4283-A42E-B4B1C193FBD8
++g_f_lib_oox__program	7ACC36C4-60A4-46C3-B7A9-3898BCB6AC68
++g_f_lib_opc__program	4618C558-4D25-49CC-BA1A-B5B8C36C7BC1
++g_f_lib_openssl__program	2AAE06D6-FB48-4B96-A435-C5DDC566F0A1
++g_f_lib_package2__program	E5882E56-6D6A-4B74-AE31-F9FE6BD19EB4
++g_f_lib_passwordcontainer__program	4BA3A846-9A26-47E7-8F4D-B7CAD0895FF4
++g_f_lib_pcr__program	C55FC40F-2489-4476-B826-8679DFC85C40
++g_f_lib_pdffilter__program	1C2170C2-C8DA-42C7-9C4E-F944DAC3C781
++g_f_lib_pk__program	CD5C3457-CD7A-4436-BFBA-D2518807EB39
++g_f_lib_pl__program	2B27738F-C908-403F-938D-F3899D77EC8A
++g_f_lib_placeware__program	F1F117F2-A42A-43D1-806F-C8AE62EF1ED8
++g_f_lib_policy_cli_basetypes_assembly__program	8944736F-3FEC-46F8-9A28-0E37BB3D775D
++g_f_lib_policy_cli_cppuhelper_assembly__program	BF0F5D9B-7968-4AB6-BF9F-EAC28F86C8CD
++g_f_lib_policy_cli_types_assembly__program	C311A8D0-8B47-468A-8BFE-FD86918FCF0E
++g_f_lib_policy_cli_ure_assembly__program	2BC01642-7DA7-482F-83A7-A5F7935BF876
++g_f_lib_preload__program	83CA5929-8599-4DB0-B0B7-0CB92B5D3209
++g_f_lib_productregistration__program	B6AF1F8D-BD9B-4DC4-93EC-B8C6EDE918FD
++g_f_lib_proxyfac__program	2748A0C1-959E-4A5E-AD48-CDE96072E3EB
++g_f_lib_purpenvhelper__program	6D256458-F77A-49C5-B749-2667D5A9E2CD
++g_f_lib_python_so__program	70FF24D7-3860-4180-810C-088EBECE0307
++g_f_lib_pythonloader__program	98013FB8-45DC-4C5D-91E5-7C3BDD520A89
++g_f_lib_pyuno__program	C9CCDD6F-445A-47CA-A11E-A482DFBEF77D
++g_f_lib_rdbtdp__program	57A214EF-6504-467E-89E3-AD56AA138A27
++g_f_lib_reg__program	6986F0E8-3050-47D4-998A-481B7A19AEAD
++g_f_lib_res__program	FC838730-6CE6-4926-A30F-D4080E507BB0
++g_f_lib_rmcxt__program	50D03F48-9DCA-4B1F-8A1E-2F09A85A8F73
++g_f_lib_rpt__program	83F53069-9030-48D6-A368-CB90FF91C480
++g_f_lib_rptui__program	4ED62E57-9166-495B-8741-322F3462BC2D
++g_f_lib_rptxml__program	C53738E3-77B3-40DC-B27D-8C702F93A068
++g_f_lib_sal__program	8B368792-0FF0-4621-A237-004D36CAFB45
++g_f_lib_sal_textenc__program	F1A07432-1D3E-419C-B0C8-A585079D51DB
++g_f_lib_salhelper__program	00CED5F4-B380-44B0-9211-61C9BF99B184
++g_f_lib_sax__program	383CEEC5-8F4D-41C6-AE99-B803CDE23892
++g_f_lib_sax_uno__program	390F7F04-57CB-4E36-A7E8-98A387137A56
++g_f_lib_sb__program	7DF4EFAF-4912-4A06-8C3C-7C4A469B6BFA
++g_f_lib_sc__program	2595A7D5-842A-4B64-93B8-90F534676FD8
++g_f_lib_scd__program	60668D2E-4E0B-4C40-8170-91E239690735
++g_f_lib_sch__program	AAEE326D-B062-477B-9936-C8DB52E7F2DA
++g_f_lib_schd__program	2E3D6142-04A4-44C5-862B-78DF82A056D7
++g_f_lib_scn__program	AB51C50C-9345-4733-AAB1-3984A639F1E1
++g_f_lib_scriptframe__program	09032163-FF32-4F95-970E-F36362FA253C
++g_f_lib_scsolver__program	12A72C01-EBA3-4095-86FB-E481696631B9
++g_f_lib_scui__program	E5AE7723-7292-45F3-9AEB-D7AE13D6DEA0
++g_f_lib_sd__program	053B60E5-679B-40F1-9752-15E3E1F4F69D
++g_f_lib_sdbc_2__program	DD5DA2F1-525E-48F5-AC0F-905199637699
++g_f_lib_sdbt__program	10C9F4FA-3A3B-412E-B2B8-C06B40232361
++g_f_lib_sdd__program	D2DA893E-6B34-42F1-B1B9-572F0DC6096F
++g_f_lib_sdui__program	DB766B0A-3EC8-4447-A58A-C03552D2D09F
++g_f_lib_sec__program	FC7FFD59-6E36-4806-B710-4EB08CBA0228
++g_f_lib_sf_prothdlr__program	203E90EA-A3F2-4A06-A6F7-549280A9F188
++g_f_lib_sfx__program	B94790E1-9E5C-48E6-A70A-17AE4124533F
++g_f_lib_shlxthdl__program	C1BD76A1-CAE5-4C30-86F9-4131D97AB7B9
++g_f_lib_simplecm__program	FC60C63F-9FC0-41E5-8ABC-60FD744D9FC5
++g_f_lib_simreg__program	60F73FDA-BF9A-4E6C-8325-B38BB357DF59
++g_f_lib_slideshow__program	E55C43D4-1D95-44E9-8B06-402FBA8E0B0D
++g_f_lib_sm__program	789FFA6A-1A19-44F5-8F12-463061BB62A0
++g_f_lib_smd__program	B9F99F90-C689-4BD0-ADE1-DC6B0AB8288D
++g_f_lib_smgr__program	279B00BA-0991-4D19-AB8D-019CC59623F0
++g_f_lib_smplmail__program	E647A286-3435-4756-AA96-71B910D6A686
++g_f_lib_so__program	AFCE662A-7B19-4A31-9F7E-425CAB001EC4
++g_f_lib_sot__program	D19065B2-6FE9-4AAD-8FD5-369C683DA9C0
++g_f_lib_spell__program	68CD59B0-5473-45F8-AABF-327E6EAB6462
++g_f_lib_spl__program	ACD67C01-76B8-4885-8F21-BEDE05376665
++g_f_lib_srtrs1__program	EE2CC6E0-CBB3-408B-8F71-414A4491AAE3
++g_f_lib_stlport__program	A1D9DB5F-79BE-4BAB-B516-BB9282CE9C1C
++g_f_lib_stm__program	D01D223A-1A2A-4981-9565-164B1D150517
++g_f_lib_stocserv__program	825D5B97-7086-4C70-B8BC-0F1ADDCC1189
++g_f_lib_store__program	9759141F-1C46-403D-89D6-3B2BBA3EA1AE
++g_f_lib_stringresource__program	6E63500B-C875-4576-9961-229943E28CC8
++g_f_lib_sts__program	6E1D2ED4-A25E-42F3-A41D-1F909CD82E05
++g_f_lib_sunjavaplugin__program	93A164C3-B618-4AAD-871F-848C08AD4F12
++g_f_lib_svg__program	8F677156-6680-4C26-933A-27D8DA228E43
++g_f_lib_svl__program	6CE1264E-BAC4-44D0-8E4A-EBAEEF567AC1
++g_f_lib_svtmisc__program	4E9D0FDD-0583-414E-ADA8-E0F0C9CD37D6
++g_f_lib_svtools__program	08F8266C-D8DA-41AD-BCD2-8CB7854C7C6D
++g_f_lib_svx__program	954A1F8D-82DC-4D43-AD90-402899837015
++g_f_lib_sw__program	058984F5-6A66-49EA-83F8-39C12D7C461F
++g_f_lib_swd__program	5E852F1C-DD19-4079-BDF1-DF3D6916E49A
++g_f_lib_swui__program	E17292FF-E6FD-4E47-8F61-D39FC2A862A2
++g_f_lib_sysdtrans__program	DB45ADC2-8BD8-450A-8416-453350177069
++g_f_lib_sysmgr1__program	2242F608-2B3F-451C-8DA9-11294A774FA1
++g_f_lib_syssh__program	8CB429E1-90BC-4740-92F7-9ADD45C30D62
++g_f_lib_t602filter__program	0463930D-D438-41D4-8789-15D83A48DABC
++g_f_lib_tcv__program	05B80C1A-8FCD-406D-A1E1-107E9C24FEA2
++g_f_lib_tdmgr__program	FE049A4F-D21F-47F2-9F2B-3BB021A3A177
++g_f_lib_textconv_dict__program	0A2C7EFA-2D71-4FBA-9C5F-358C6EFFE257
++g_f_lib_textconversiondlgs__program	88E4E36E-6CCB-49BC-B46F-49757578EB34
++g_f_lib_tfu__program	345D9ACD-042B-40BD-87EF-4B29E3B40E1C
++g_f_lib_tinstrm__program	0EDE5F6A-34B9-4519-9BBC-D2B89DF8FE83
++g_f_lib_tk__program	5BE0A07B-88D7-4F60-992B-B04A970CD839
++g_f_lib_tools__program	1C65C8DE-F58E-4509-8002-520EC8E7A144
++g_f_lib_toutstrm__program	22C4060D-D33C-4E03-B16C-B39586486592
++g_f_lib_tvhlp1__program	12DAEDCF-AD0E-4F3C-8D8B-66B592204706
++g_f_lib_ucb1__program	7E22C0BB-059C-483A-8E72-FC02D8A63F9E
++g_f_lib_ucbhelper__program	5A0A6C15-2412-496B-8C41-7B32FD41370C
++g_f_lib_ucpchelp1__program	57C5CD2D-3392-47B8-B7A8-5D1F5635745A
++g_f_lib_ucpdav1__program	6F16B3B6-40AA-42ED-ADA7-8CE7FECA2645
++g_f_lib_ucpfile1__program	14147859-676F-4476-9763-22FFE3DA7400
++g_f_lib_ucpftp1__program	62999BE7-4EA8-4C2C-A745-3DCFDF308B55
++g_f_lib_ucphier1__program	DD831DB7-5F6F-4192-AF33-04A234380373
++g_f_lib_ucppkg1__program	7F6CAA85-C05C-4D3F-85ED-5B58236A1658
++g_f_lib_unicows__program	967859D8-6DE3-4836-ADDA-75FCA5CE3AA8
++g_f_lib_unoxml__program	C8F6FC56-DA37-4F1F-9673-7F7D09BF1237
++g_f_lib_unsafe_unouno__program	1648623C-BB67-4F48-8112-123B7B406725
++g_f_lib_updatefeed__program	8517F35C-3315-4129-A83C-D9E88A680F1B
++g_f_lib_updchkui__program	BA5DC668-CD1D-47B3-96C7-08F54FCEBE26
++g_f_lib_uriproc__program	BB0E290B-46C8-40D6-9178-6F2F6E4050E0
++g_f_lib_urp_uno__program	BE7A1FA4-5F38-4205-935A-98B28C4DC409
++g_f_lib_utl__program	3B349C5F-7C54-4165-A159-30196E39B15C
++g_f_lib_uui__program	95B819F1-BE82-4DDB-93A7-A41AD18C4FF1
++g_f_lib_uuresolver__program	A68A406A-4CDE-4602-A7BA-65E1D3190A32
++g_f_lib_uwinapi__program	6D01FC76-B75F-4E7D-AFF5-95FDE2B68D76
++g_f_lib_vbaevent__program	56727249-CC42-469B-BF9E-FAA3651453A3
++g_f_lib_vbaobj__program	62771996-6E45-45F2-96F3-9CE91030678F
++g_f_lib_vcl__program	DFAB9F93-373A-49A0-BFDA-B1C6E2C667FA
++g_f_lib_vclcanvas__program	E74F4125-D28E-4AF7-9960-07F325C372D8
++g_f_lib_vos__program	9F0D82BE-EAE7-4555-9B3E-0850857D958E
++g_f_lib_wininetbe__program	EFC56982-6F26-4F1D-A95E-5D4964FD720A
++g_f_lib_wlwp__program	652C239F-2248-4A7E-B40C-3311FA784E39
++g_f_lib_wpft__program	35B7C4BB-D579-4156-A53A-79889FE47407
++g_f_lib_wpgimport__program	BFBE49DF-F621-4011-A2B0-5DFDCF93664C
++g_f_lib_writerfilter__program	792155C8-2F7F-4D62-B081-EF0576EE3C6A
++g_f_lib_xcr__program	086584EF-D057-492D-B197-F37CDEE76CD5
++g_f_lib_xmergesync__program	DEBE1A25-24F1-498D-A17B-FFBE2E79D754
++g_f_lib_xml2__program	59A9AD04-9102-4F79-B776-A5CBCA1996FB
++g_f_lib_xmlfa__program	D89402B5-8AED-4829-BB6A-D7A3196B8ACD
++g_f_lib_xmlfd__program	8E3AF6F1-B8C5-4453-AE64-7812F5467167
++g_f_lib_xmx__program	16EB6CB3-D8F5-4957-BBE0-9FE0EA92393E
++g_f_lib_xo__program	1B62750D-5F0D-4A31-8112-0F57C32B1C03
++g_f_lib_xof__program	230AD2DB-2EDF-489F-96B8-21681C163B5F
++g_f_lib_xsec_framework__program	0EFBC92E-9307-4F66-9E0B-7005A5AB1C16
++g_f_lib_xsec_xmlsec__program	DE22EA18-7D4B-4639-855A-B1543A420B11
++g_f_lib_xsec_xmlsecurity__program	EAFDC6BB-B316-4C0A-AA55-7A4761BBB853
++g_f_lib_xslt__program	EC69F219-BEEB-47EE-AE30-79D4BA39B96A
++g_f_lib_xsltdlg__program	77B4148B-2F92-47F3-B3D3-23CE1879AEFD
++g_f_lib_xsltfilter__program	2092695F-17CD-471F-8077-4B8FFB91684C
++g_f_lib_xstor__program	66EC67AB-EF96-4E95-8ACE-CC6EF1779F22
++g_f_license_license__licenses_af	1B32027A-72FF-436A-A0F1-40E681954D33
++g_f_license_license__licenses_ar	45AB9A0C-4FA1-49BD-B32C-7CF29F8C6BCA
++g_f_license_license__licenses_be_by	D81AA86F-2642-42A3-B373-09C07F3FA442
++g_f_license_license__licenses_bg	3383DBFC-4CCE-4AB9-9EC1-F2E499F6B442
++g_f_license_license__licenses_bn_in	1B0AF8E2-A886-4988-8DC1-9E6747BAB156
++g_f_license_license__licenses_br	1FC4BE3F-83E8-48A5-AEB2-41376E4E3520
++g_f_license_license__licenses_ca	81BFDB6B-91C1-49C4-8AB1-6E33769A5A9F
++g_f_license_license__licenses_cs	19E45BD1-E3FC-4C1A-84B5-F7967412B852
++g_f_license_license__licenses_cy	DA2F68FC-3C76-43FB-8C48-E42BBF98068E
++g_f_license_license__licenses_da	912F5D39-34DF-4C60-B1F1-D7978E10C1FE
++g_f_license_license__licenses_de	B3AA1C62-802A-4851-BB13-D96C926A3909
++g_f_license_license__licenses_el	8F3CF655-221C-418A-9C7B-F79C4B282066
++g_f_license_license__licenses_en_gb	ADA049B7-6DE4-4C36-A7B9-E38245E287F8
++g_f_license_license__licenses_en_us	38995D45-2B7E-440E-B5A4-C74BC7E5BB1C
++g_f_license_license__licenses_es	818179AB-9192-45CE-94A8-12BB77E61E5F
++g_f_license_license__licenses_et	CBD70DBF-C50B-4140-9EBC-5C01473992D5
++g_f_license_license__licenses_fi	9BB95C82-9298-475D-A04E-C77BF5727BE7
++g_f_license_license__licenses_fr	37C6A669-0917-4E96-8391-E3A55FF68563
++g_f_license_license__licenses_gu_in	03BDCD7C-E1F7-4353-8C75-19840DD6F39C
++g_f_license_license__licenses_he	BD8D70F4-ECB5-4D40-9F09-00B138C71DA9
++g_f_license_license__licenses_hi_in	F9C5776A-820B-4141-9CA8-06EDDBC88E4F
++g_f_license_license__licenses_hr	1D8E106A-5F31-4C55-9D8D-5E3AF3F8D517
++g_f_license_license__licenses_hu	F7BF0767-CBB0-4435-A1DF-76A6014D1E0D
++g_f_license_license__licenses_it	9C0F6140-A545-4859-8434-ED3543C81497
++g_f_license_license__licenses_ja	D37D8423-887C-48EF-88A2-C1FC0CCBD0BA
++g_f_license_license__licenses_km	EB09BFD4-6D59-4BE8-B4AE-4BCEE38BB30F
++g_f_license_license__licenses_ko	77E6B1CF-65C1-4AC4-840A-3196A9809493
++g_f_license_license__licenses_lt	E1837E3D-3FAC-4590-9D7A-26B652126148
++g_f_license_license__licenses_lv	8814E40B-EB31-4413-98E7-E132CFFC5B26
++g_f_license_license__licenses_mk	E13714D9-7A13-4E94-8836-E8B3A98F9F4E
++g_f_license_license__licenses_mr_in	2983F443-0A62-466E-B860-B55086ABB3F2
++g_f_license_license__licenses_nb	C5481576-C6E2-4C37-850D-F6DA71B7F2F4
++g_f_license_license__licenses_nl	01E3C820-D0C1-4344-9E8C-46395F34A49F
++g_f_license_license__licenses_nn	1675E525-AF86-4EA8-B939-DA6ECB71B41B
++g_f_license_license__licenses_pa_in	2170D8D4-2F0A-4D2E-8840-C4F015B4DB4F
++g_f_license_license__licenses_pl	D87919F1-0A3D-4A2B-B094-0A5105E81BE3
++g_f_license_license__licenses_pt	896BB819-E539-4572-9148-26567E8C746E
++g_f_license_license__licenses_pt_br	5AA03335-70F5-4EFE-9399-D2D71BA511CE
++g_f_license_license__licenses_ru	990E5450-4CF7-4EBB-B7F2-3ADC6A387698
++g_f_license_license__licenses_rw	CF9BED38-68F3-4345-9377-DB633E98CE57
++g_f_license_license__licenses_sk	63726B74-FD8E-4443-9AB1-85F2E21CF9D8
++g_f_license_license__licenses_sl	7C424712-1A11-4497-B629-36F4A4959727
++g_f_license_license__licenses_sv	E908D43E-C642-4785-B92E-CEFB634AF724
++g_f_license_license__licenses_ta_in	DF82DEA3-793B-415B-BE3F-456317222333
++g_f_license_license__licenses_tr	088696A3-743E-45BE-8409-B94BDE230BD8
++g_f_license_license__licenses_vi	A06FFABD-9B90-43A2-A593-AD943A0B0979
++g_f_license_license__licenses_xh	C91276B1-5D28-4F8F-B2E2-DBDBAB6BEBCB
++g_f_license_license__licenses_zh_cn	FDB32BA1-4A1A-48DF-98F8-82B38E826868
++g_f_license_license__licenses_zh_tw	337C573F-D9FA-472B-A83B-C58D0D91791B
++g_f_license_license__licenses_zu	211AF956-4A4D-44C0-832B-13FBE32D33C8
++g_f_license_license_html__licenses_af	3DCC4674-20CC-4C48-BB0D-E1E3457454BE
++g_f_license_license_html__licenses_ar	C8CEAD04-4A7B-48EC-878C-F83C29E44490
++g_f_license_license_html__licenses_be_by	CF95A198-4DD1-40C4-A4F8-6836844FFA88
++g_f_license_license_html__licenses_bg	97C661D6-0423-4FF2-8502-E6C1B23B91AC
++g_f_license_license_html__licenses_bn_in	9B4B69F2-4322-42C2-B2F7-6D5A536DD97F
++g_f_license_license_html__licenses_br	97F6486B-D643-458D-A723-CB8C1026C912
++g_f_license_license_html__licenses_ca	3335D1FE-F1D6-46CA-A68C-6861E800C405
++g_f_license_license_html__licenses_cs	DC6A31B5-CE51-4A7D-8A11-569E42F0621A
++g_f_license_license_html__licenses_cy	0FCB30A3-5BBA-448A-B45C-05DB0F0F6313
++g_f_license_license_html__licenses_da	BD8126DD-B216-45E6-9182-3B0B5F92C0D9
++g_f_license_license_html__licenses_de	9C1A7733-3E0E-4DA9-B5F5-9FBF362CDF67
++g_f_license_license_html__licenses_el	A3868B24-4797-449B-B931-8D991EAA1480
++g_f_license_license_html__licenses_en_gb	22738C36-FF45-4B40-A6C3-848867AAAAF9
++g_f_license_license_html__licenses_en_us	8646F7C8-8A54-4DE9-ADD3-16DCD5A6D9FD
++g_f_license_license_html__licenses_es	16548FA7-CDAD-4C12-914F-11F7EA2B0EE3
++g_f_license_license_html__licenses_et	2672C5BB-6E12-4BD5-BABF-004BA9EF490A
++g_f_license_license_html__licenses_fi	1531F9A9-CD2B-41CF-859B-A104680A809C
++g_f_license_license_html__licenses_fr	09EF129D-405B-4ED1-A7CB-056EAFF3EE7F
++g_f_license_license_html__licenses_gu_in	1557BEE5-12D8-4E9C-81D0-D688A2887789
++g_f_license_license_html__licenses_he	77CFFE57-A095-4828-BCC3-7BC1C7886293
++g_f_license_license_html__licenses_hi_in	DF4C40B5-2880-4343-A4AF-9A85236F47FE
++g_f_license_license_html__licenses_hr	71E2CFC6-EE53-4031-9BAC-3DA0007687CC
++g_f_license_license_html__licenses_hu	4570E1D7-ED3D-4448-B952-97481A98D0ED
++g_f_license_license_html__licenses_it	B9AA7EEE-549D-4E97-8CDA-EE8EDF701C9B
++g_f_license_license_html__licenses_ja	15242128-B8B0-457D-9C11-08AF5D953305
++g_f_license_license_html__licenses_km	F2CFADA8-4454-43E0-BC78-0983C2F7350C
++g_f_license_license_html__licenses_ko	9AEE23A9-9563-4E34-A523-F77B8A474A25
++g_f_license_license_html__licenses_lt	EEE6DEF7-9944-4B61-8C82-AF70AB1C4695
++g_f_license_license_html__licenses_lv	85FD3096-E3EA-4D6B-A94F-DFBAB1AEC701
++g_f_license_license_html__licenses_mk	F0B183AB-5AFD-4FC0-9DE1-D330CF61F7F5
++g_f_license_license_html__licenses_mr_in	DBEB4C7C-0494-473E-B8B6-8F9CE6E22328
++g_f_license_license_html__licenses_nb	3E0B99DF-2F23-4113-B93E-FFB88A276476
++g_f_license_license_html__licenses_nl	7C0968B1-E1FA-483B-99FA-4082F21E13A5
++g_f_license_license_html__licenses_nn	4454E471-B0F3-4DBD-8B77-D208DAD4E382
++g_f_license_license_html__licenses_pa_in	1E19A5E3-20F6-42ED-BB4F-CA3C3FD0633E
++g_f_license_license_html__licenses_pl	AC20CB45-B2AA-44F8-B781-4D8489FC40C6
++g_f_license_license_html__licenses_pt	E1EE2B1F-0E96-4010-9071-B28A0CC1D0B9
++g_f_license_license_html__licenses_pt_br	0E46FCA0-FE9D-471A-83C0-C66227F03A99
++g_f_license_license_html__licenses_ru	C3AE342A-CF9E-4E6A-B293-CCD86568B235
++g_f_license_license_html__licenses_rw	484E2703-F036-4A10-BB06-2C64079521BF
++g_f_license_license_html__licenses_sk	8D457F64-3621-4D13-B141-AC6C2F139E65
++g_f_license_license_html__licenses_sl	C3514720-EBF5-4114-9041-1203ADD2616B
++g_f_license_license_html__licenses_sv	B1175691-6B0F-49C2-8C40-6CF170724884
++g_f_license_license_html__licenses_ta_in	1F381972-B9B0-4567-875D-D747A563FDEA
++g_f_license_license_html__licenses_tr	026398F9-D4B4-4ADF-8B3F-FD6082B72ECB
++g_f_license_license_html__licenses_vi	CD3D67F1-0E0A-49F2-8EB8-7D75C1559377
++g_f_license_license_html__licenses_xh	324DAA4B-38AA-466B-9380-E1F484132A6F
++g_f_license_license_html__licenses_zh_cn	6F9A3779-BB6D-42FC-AF9D-39781406B07E
++g_f_license_license_html__licenses_zh_tw	5F91BE2F-7192-478F-A8E0-0118553E71EE
++g_f_license_license_html__licenses_zu	3A95B21D-0DA7-4BEF-9B98-311E10AC6227
++g_f_lm_afrikaans__share_fingerprint	3E698FAA-780F-4337-BA19-B32539C5FCB8
++g_f_lm_albanian__share_fingerprint	0A1D8960-6A92-4188-9D24-BB73037959D9
++g_f_lm_amharic_utf__share_fingerprint	3424E742-E9BE-43A3-9119-F07779300277
++g_f_lm_arabic__share_fingerprint	1DEDBFCB-0A94-4284-B409-9EE0B42C2B86
++g_f_lm_armenian__share_fingerprint	0D79E0E1-75CD-4F46-B640-FFC8129A862A
++g_f_lm_basque__share_fingerprint	E73456DA-95CD-44C4-B9AA-68FE702AED61
++g_f_lm_belarus__share_fingerprint	BE3A349B-F044-49DE-8627-40429494D4BA
++g_f_lm_bosnian__share_fingerprint	E0E7C0C6-2CBB-4BE2-BD8C-5EE60D770466
++g_f_lm_breton__share_fingerprint	3629CEF5-E6BF-4EAB-87B6-3FD54685E2FC
++g_f_lm_catalan__share_fingerprint	B015A3EC-4C7B-4794-9803-1056EC683442
++g_f_lm_chinese_simplified__share_fingerprint	0E6A6F89-792F-4457-BA2E-549B448C2885
++g_f_lm_chinese_traditional__share_fingerprint	BE08FBA5-27C2-4E13-B36D-05A4F565A758
++g_f_lm_croatian__share_fingerprint	59C1A1B3-CEC7-497E-AB36-0E5283261497
++g_f_lm_czech__share_fingerprint	AFEF6F70-F282-481E-BC5C-10E49102158B
++g_f_lm_danish__share_fingerprint	391DEB1D-19EC-43FE-BF29-B0F779CEC478
++g_f_lm_drents__share_fingerprint	9BB9261D-7B0D-4E94-8574-604B0F358B2D
++g_f_lm_dutch__share_fingerprint	4091B3C7-3F68-4209-A936-D27C9C7983E2
++g_f_lm_english__share_fingerprint	1AB790B4-73E8-48B3-A481-5E0E81A8CE86
++g_f_lm_esperanto__share_fingerprint	43D7DFDC-251D-4D84-BBEC-CD6434335963
++g_f_lm_estonian__share_fingerprint	03382054-C017-4B11-BDE3-6C95D7B22966
++g_f_lm_finnish__share_fingerprint	36715BB1-4423-4450-B3B4-6839C66DAD31
++g_f_lm_french__share_fingerprint	658DC51B-09E1-4B05-99E2-3B3BB24832EE
++g_f_lm_frisian__share_fingerprint	86BB1780-3D8E-4185-BBC3-9F19082783FE
++g_f_lm_georgian__share_fingerprint	F343FDC7-5387-4248-93A6-CB9E72CA173A
++g_f_lm_german__share_fingerprint	C89EDACB-1E13-4C5B-81A0-942AE2FFAB54
++g_f_lm_greek__share_fingerprint	8BF74017-82D2-4524-9358-1A163D135D46
++g_f_lm_hebrew__share_fingerprint	EF3BE4B2-8844-4F51-BF7C-F77E558C7C16
++g_f_lm_hindi__share_fingerprint	7B7B2424-63D1-4F7A-9087-DEFB8F1C035B
++g_f_lm_hungarian__share_fingerprint	0CD7464B-40B3-4E35-A6BA-690354C166F6
++g_f_lm_icelandic__share_fingerprint	18EEEA23-FEB9-4AD9-A3FB-3F4D13AD64E1
++g_f_lm_indonesian__share_fingerprint	BAAFE7D5-D62F-48B3-8CE7-3CE612BA3026
++g_f_lm_irish_gaelic__share_fingerprint	EA35E9E3-F489-440C-A278-1087CFC57BA0
++g_f_lm_italian__share_fingerprint	06A40C78-B20B-4822-8C96-7F0B137420CD
++g_f_lm_japanese__share_fingerprint	25E6D482-167F-4338-8CC2-4F98AED57628
++g_f_lm_korean__share_fingerprint	3D0A0141-13F1-4638-BAF0-99DFA7BF4C68
++g_f_lm_latin__share_fingerprint	135D63C1-A0B8-4E82-9AE7-59F0BF946E8F
++g_f_lm_latvian__share_fingerprint	9BF17B78-AE5C-4BF3-8681-606744BCB57A
++g_f_lm_lithuanian__share_fingerprint	489E379F-72F6-4D39-82CD-0B91EC82C83F
++g_f_lm_malay__share_fingerprint	B1907D11-8292-45CA-A6FF-429DD69FA370
++g_f_lm_manx_gaelic__share_fingerprint	E85FDF1A-DC13-4919-81D5-326E8FDFC7E4
++g_f_lm_marathi__share_fingerprint	75F529C9-69EA-46A4-B53E-AF71B6DDC93A
++g_f_lm_middle_frisian__share_fingerprint	D2B55F92-E58F-4562-8CAA-181F8CC19CEA
++g_f_lm_mingo__share_fingerprint	CEF3EBEA-2F1B-42F6-A4B6-F49CE9CBAEA9
++g_f_lm_nepali__share_fingerprint	E10563CB-B504-44DD-988C-59FE030CB24F
++g_f_lm_norwegian__share_fingerprint	F0E17340-FDF5-4116-A62C-507E95BE8D01
++g_f_lm_persian__share_fingerprint	A2955993-52F8-4CF0-BB6D-AC4E2BD388E7
++g_f_lm_polish__share_fingerprint	4E89FE6C-D729-42CD-AAAC-1DA72FF0F923
++g_f_lm_portuguese__share_fingerprint	412227B3-490D-4809-9247-1ADBE14FB221
++g_f_lm_quechua__share_fingerprint	36CD6B5F-C634-462C-9FF4-D497103799B2
++g_f_lm_romanian__share_fingerprint	A7E69C23-6267-4870-B117-552A0E55B364
++g_f_lm_romansh__share_fingerprint	68B11546-C575-4752-8736-9EA99B93F260
++g_f_lm_russian__share_fingerprint	D3507672-FAD1-4193-8071-9392F7DB0A44
++g_f_lm_sanskrit__share_fingerprint	D433A0DF-44B6-40EA-9EA6-FC1D96ACA18D
++g_f_lm_scots__share_fingerprint	919CA39E-C8D4-4F4A-977E-B6D9452D9763
++g_f_lm_scots_gaelic__share_fingerprint	C27A5346-74DA-4C2B-8DB1-C4C2899D582E
++g_f_lm_serbian_ascii__share_fingerprint	433DE1C5-CB1F-4449-B0C1-968B2E1BCF32
++g_f_lm_slovak_ascii__share_fingerprint	0BAF1435-2513-45B6-9E6F-20D141FCD1C5
++g_f_lm_slovenian__share_fingerprint	C603E9A6-8F1C-4EF4-8A99-1EE1F36C64DE
++g_f_lm_spanish__share_fingerprint	92D09839-3520-4B7A-A911-60D6FECBCFE4
++g_f_lm_swahili__share_fingerprint	9A5BE4CC-4BD8-45CF-9636-07A08D86C596
++g_f_lm_swedish__share_fingerprint	E43DE342-B5F0-4F2C-A13E-516B737749C7
++g_f_lm_tagalog__share_fingerprint	D0CC3833-A19F-4B2A-B4DF-4FE3F86D791B
++g_f_lm_tamil__share_fingerprint	5756210E-4DAF-4099-AEE2-D0C62241F94D
++g_f_lm_thai__share_fingerprint	FD55A874-045E-4E4D-BF25-C23062E94E21
++g_f_lm_turkish__share_fingerprint	B6ACB1B3-B89A-4CEA-8782-C8C2A78C095C
++g_f_lm_ukrainian__share_fingerprint	38DFF98B-570A-49F3-9FB9-E20EEEA04286
++g_f_lm_vietnamese__share_fingerprint	332B15A6-634B-4F76-BE98-1A319C27C54C
++g_f_lm_welsh__share_fingerprint	EAC437E7-EFB2-4519-897B-994596FB89FF
++g_f_lm_yiddish_utf__share_fingerprint	89A9D3B3-DC7C-4E03-A3B3-7F7693B6ED8F
++g_f_mod_chart__share_dtd_officedocument_1_0	6D4DE4AF-11D0-44EF-91C6-33F639F40251
++g_f_mod_datastyl__share_dtd_officedocument_1_0	06853BB2-51E4-4522-9AE4-3D7AC63B59D6
++g_f_mod_defs__share_dtd_officedocument_1_0	85E47B9F-F29A-4C63-9472-DEEB9776F51C
++g_f_mod_drawing__share_dtd_officedocument_1_0	19ACD62D-6147-4EAB-A68C-E582B84767EF
++g_f_mod_dtypes__share_dtd_officedocument_1_0	B43C66B7-C50C-4822-AD60-A087C6950928
++g_f_mod_form__share_dtd_officedocument_1_0	2AECDB04-CF34-4029-83B2-0F3B577E20EA
++g_f_mod_meta__share_dtd_officedocument_1_0	1D6BC9DF-5157-46A7-AB76-13CA2D28D9BA
++g_f_mod_nmspace__share_dtd_officedocument_1_0	29436EF8-3FD8-4C13-A837-BE90A8D62B68
++g_f_mod_office__share_dtd_officedocument_1_0	55C72817-2D3A-45BF-A3FB-2C308133D89E
++g_f_mod_script__share_dtd_officedocument_1_0	5BD77967-3473-44E9-88E0-CAA5E5999D81
++g_f_mod_settings__share_dtd_officedocument_1_0	017C96E6-453E-4A38-97F4-C69F227CA784
++g_f_mod_style__share_dtd_officedocument_1_0	EF84F856-A521-4453-8BF7-5D4216C7C2FE
++g_f_mod_tb__share_dtd_officedocument_1_0	C688CCE8-5D8F-403E-9201-9222EFBD1DDA
++g_f_mod_text__share_dtd_officedocument_1_0	226B517B-E407-4790-BA1C-A5B75F579BF7
++g_f_mono_machineconfig__p_mono_2_0	1887DBAC-6F98-4685-9B5E-3F65531F38F5
++g_f_mozilla_runtime__p_components	6B891120-203E-4870-A005-3C1840EA8839
++g_f_mozilla_runtime__p_defaults_autoconfig	C2FC898E-A2E2-421C-A467-EA4A1D66C320
++g_f_mozilla_runtime__p_defaults_pref	A0800B71-C008-45F6-8613-D0CDEBB53FAD
++g_f_mozilla_runtime__p_greprefs	19B1BF4F-F134-48D8-AF94-EF30BA3A8025
++g_f_mozilla_runtime__program	9332B0FF-2788-47E4-AC89-5056570F5F48
++g_f_odfconverter__program	EC6AD383-5728-4EF0-AE52-B5711EB65C92
++g_f_oo_ad_ldap_attr_map__share_registry_ldap	7CEB51F8-2C73-449E-B7CC-BA61E50A80CB
++g_f_oo_firststartwizard_xcs__share_registry_schema_org_openoffice	EDD5A683-44FA-47B2-A7DE-788C8C3792A9
++g_f_oo_firststartwizard_xcu__share_registry_data_org_openoffice	2D92BBED-E4ED-4CE2-A0FD-9025A18599DA
++g_f_oo_inet_xcs__share_registry_schema_org_openoffice	D519095B-90DE-4DF7-8D9A-CA5B137B7136
++g_f_oo_inet_xcu__share_registry_data_org_openoffice	C78CDC4B-1F6D-4403-B7BE-C9B1729BBB99
++g_f_oo_ldap_attr_map__share_registry_ldap	A217078E-8D12-4E3F-AC00-F7610EF1DABE
++g_f_oo_ldap_xcs__share_registry_schema_org_openoffice	D8C564DC-4B14-46A2-8EE3-86533FC3698C
++g_f_oo_ldap_xcu__share_registry_data_org_openoffice	68F6B2E2-E360-4241-8AE4-29F0032F34C8
++g_f_oo_office_addons_xcs__share_registry_schema_o_o_office	9993A3EB-967C-4F39-91BF-0322D9AFBD0A
++g_f_oo_office_calc_xcs__share_registry_schema_o_o_office	BD2B17F3-CDD1-4472-B586-FAE03CA5D7E7
++g_f_oo_office_calc_xcu__share_registry_data_o_o_office	562E4C19-93F2-49AD-ABE5-71751CEE74FF
++g_f_oo_office_calcaddins_xcs__share_registry_schema_o_o_office	DB130CF9-C6ED-4FA9-8A71-F185FCEE1720
++g_f_oo_office_canvas_xcs__share_registry_schema_o_o_office	3614B129-555B-4F2E-9B49-308B625B409B
++g_f_oo_office_canvas_xcu__share_registry_data_o_o_office	0763E584-6274-4960-B854-55BC3CB77352
++g_f_oo_office_chart_xcs__share_registry_schema_o_o_office	D1D9857E-41F3-419A-82D3-3C08A33744C5
++g_f_oo_office_cm_xcs__share_registry_schema_o_o_office	5B359D72-442D-4185-90E3-91A4AC4F252A
++g_f_oo_office_cm_xcu__share_registry_data_o_o_office	E90EE7C3-F88B-4BEE-AE95-4B045AD15685
++g_f_oo_office_commands_xcs__share_registry_schema_o_o_office	0EFB5E87-2AA8-4581-9833-0B180F1D0BBE
++g_f_oo_office_compatibility_xcs__share_registry_schema_o_o_office	7AE3D3D1-5D95-40A4-A101-D386C9B9BCE8
++g_f_oo_office_compatibility_xcu__share_registry_data_o_o_office	1F720F2F-A960-43F8-8D03-B1DCE0703E82
++g_f_oo_office_dataaccess_xcs__share_registry_schema_o_o_office	628670A4-8640-49D0-8B48-B4FDD5DB6479
++g_f_oo_office_dataaccess_xcu__share_registry_data_o_o_office	D91A41C4-784B-4A4A-94C4-744227DD9800
++g_f_oo_office_draw_xcs__share_registry_schema_o_o_office	C83A115B-607D-421D-9CDF-2C92DBB7DF29
++g_f_oo_office_embedding_xcs__share_registry_schema_o_o_office	CB9BFC6E-A4A8-4CA0-9CCA-78031A014473
++g_f_oo_office_embedding_xcu__share_registry_data_o_o_office	65B4E47F-BC25-49E7-A88A-FF85069C7B24
++g_f_oo_office_events_xcs__share_registry_schema_o_o_office	C59BAB16-9DA0-4E99-9AA9-F19E46B67C48
++g_f_oo_office_extendedcolorscheme_xcs__share_registry_schema_o_o_office	17011340-1D9C-4ECB-A3FD-F0FC86562F62
++g_f_oo_office_extendedcolorscheme_xcu__share_registry_data_o_o_office	9C655626-14D7-479B-846F-92A790CD30E9
++g_f_oo_office_extensionmanager_xcs__share_registry_schema_o_o_office	EE08CBB7-B851-4556-B6D4-2B772A8F6BDC
++g_f_oo_office_extensionmanager_xcu__share_registry_data_o_o_office	8AE6696A-016D-4F49-B76D-57E1F8182D72
++g_f_oo_office_formwizard_xcs__share_registry_schema_o_o_office	F7029302-A580-4D19-8358-306152CD4EC8
++g_f_oo_office_formwizard_xcu__share_registry_data_o_o_office	8C639E01-59DB-4E5A-BB07-5B8069BE7739
++g_f_oo_office_impress_xcs__share_registry_schema_o_o_office	E3648C77-1842-47F3-9514-4A2AAE167F8F
++g_f_oo_office_impress_xcu__share_registry_data_o_o_office	D07A82CF-1E69-400B-ABBC-4985DE76B164
++g_f_oo_office_java_xcs__share_registry_schema_o_o_office	36561DD2-1274-4E9A-BFBB-7367525F3A15
++g_f_oo_office_jobs_xcs__share_registry_schema_o_o_office	CDA60778-0BF2-4C0E-BE8F-70C51D7634B3
++g_f_oo_office_jobs_xcu__share_registry_data_o_o_office	6BCC4251-6313-462C-AB40-EA2BA3FFFC27
++g_f_oo_office_l_xcs__share_registry_schema_o_o_office	A273E90A-CDE3-43FF-97C3-F195A1E9CAC7
++g_f_oo_office_labels_xcs__share_registry_schema_o_o_office	ABB5B47D-517D-4ABD-A9C5-4742B3A887FB
++g_f_oo_office_labels_xcu__share_registry_data_o_o_office	19EFBD81-0575-4C9D-B572-3CB0200635D3
++g_f_oo_office_logging_xcs__share_registry_schema_o_o_office	81F99843-1041-4461-9DBC-DA0D13906854
++g_f_oo_office_logging_xcu__share_registry_data_o_o_office	5E2A1125-E314-4093-80D8-510C45AB3904
++g_f_oo_office_math_xcs__share_registry_schema_o_o_office	FC169B1F-8959-48B8-B0F2-B51A8A404A60
++g_f_oo_office_math_xcu__share_registry_data_o_o_office	DDDD65F0-198D-4C9A-99C9-F761112E6369
++g_f_oo_office_optionsdialog_xcs__share_registry_schema_o_o_office	4169D5CA-EFDE-4E2F-8579-F057E6C1521C
++g_f_oo_office_paths_xcs__share_registry_schema_o_o_office	61941F73-CEC6-45E7-92EB-B6859B431DDB
++g_f_oo_office_paths_xcu__share_registry_data_o_o_office	B988447B-F1BE-46F3-904F-1005D748EE46
++g_f_oo_office_protocolhandler_xcs__share_registry_schema_o_o_office	9B1C0796-77D4-4E95-83AA-114BA2687F9C
++g_f_oo_office_protocolhandler_xcu__share_registry_data_o_o_office	31C86968-2D95-4648-9C60-59EA9FE205F3
++g_f_oo_office_recovery_xcs__share_registry_schema_o_o_office	03E0CF68-C42F-4D61-81BC-2E31DCDE5F2F
++g_f_oo_office_reportdesign_xcs__share_registry_schema_o_o_office	82C53B34-D431-4D37-8830-14FC57873688
++g_f_oo_office_scripting_xcs__share_registry_schema_o_o_office	2CCBEA6C-6375-4889-A703-82A5FD5AE75D
++g_f_oo_office_scripting_xcu__share_registry_data_o_o_office	5CE4D84A-64AC-4B09-B9A2-C643D48F0D4B
++g_f_oo_office_security_xcs__share_registry_schema_o_o_office	E02B4A7A-F1A8-4E0F-940A-E981A8BFD851
++g_f_oo_office_security_xcu__share_registry_data_o_o_office	B4F414AA-4CE5-4BBB-959D-58D6C2BA5552
++g_f_oo_office_sfx_xcs__share_registry_schema_o_o_office	6A3AA828-8346-431C-BF2C-2D259E06466C
++g_f_oo_office_sfx_xcu__share_registry_data_o_o_office	D85C205E-7A3F-4614-8726-A79EF83A0B5B
++g_f_oo_office_substitution_xcs__share_registry_schema_o_o_office	CE04D3E8-9968-4F32-92E8-5F57E7E1206D
++g_f_oo_office_tabbrowse_xcs__share_registry_schema_o_o_office	7D03B001-4301-4268-9263-10524CFE1B26
++g_f_oo_office_tablewizard_xcs__share_registry_schema_o_o_office	D259F2A8-BCBD-471C-88B0-FF73658ADE1B
++g_f_oo_office_tablewizard_xcu__share_registry_data_o_o_office	866EBCE0-EE32-4028-AFB1-443A93A92BBE
++g_f_oo_office_td_xcs__share_registry_schema_o_o_office	E14DF2DF-23E0-4D4C-B170-BD8AC67C5717
++g_f_oo_office_ui_baic_xcs__share_registry_schema_o_o_office_ui	9AE14CD5-81CE-41CE-A182-B39D377C5378
++g_f_oo_office_ui_baic_xcu__share_registry_data_o_o_office_ui	D66C2E12-A389-43C4-9649-1B2ABDDED781
++g_f_oo_office_ui_basewindowstate_xcs__share_registry_schema_o_o_office_ui	665896EA-FCC8-4AC5-A678-44667BD0E5D0
++g_f_oo_office_ui_basewindowstate_xcu__share_registry_data_o_o_office_ui	B4DC9333-9858-4E3A-8BD7-CE921AC8C56E
++g_f_oo_office_ui_basicidewindowstate_xcs__share_registry_schema_o_o_office_ui	DBBA960A-123B-4E8D-9F76-4DDCE0548962
++g_f_oo_office_ui_basicidewindowstate_xcu__share_registry_data_o_o_office_ui	00510EFC-DF39-4EF3-8BE5-48612343206F
++g_f_oo_office_ui_bibc_xcs__share_registry_schema_o_o_office_ui	512B3631-A279-47D5-9330-EB5775E44353
++g_f_oo_office_ui_bibc_xcu__share_registry_data_o_o_office_ui	C001F870-C678-4E40-9D72-F870086C57BD
++g_f_oo_office_ui_bibliographywindowstate_xcs__share_registry_schema_o_o_office_ui	B8D2B854-AFC6-4C66-8745-7117F85E7280
++g_f_oo_office_ui_calccommands_xcs__share_registry_schema_o_o_office_ui	B4EEF7B6-A45B-4751-BFF2-200D4554B401
++g_f_oo_office_ui_calccommands_xcu__share_registry_data_o_o_office_ui	64329BE3-5E57-4035-8BFE-DC493DD132E9
++g_f_oo_office_ui_calcwindowstate_xcs__share_registry_schema_o_o_office_ui	9608C78D-2062-45E0-A38C-AB3D5DBC53CD
++g_f_oo_office_ui_calcwindowstate_xcu__share_registry_data_o_o_office_ui	4880381F-0714-473E-BEBC-62E9528F3940
++g_f_oo_office_ui_category_xcs__share_registry_schema_o_o_office_ui	7BD73245-1FE9-4411-850E-AB13CA090542
++g_f_oo_office_ui_chartcommands_xcs__share_registry_schema_o_o_office_ui	73D7AA91-AEFB-4113-A4B0-EBFCFA4BCD95
++g_f_oo_office_ui_chartcommands_xcu__share_registry_data_o_o_office_ui	EAA34E91-C1AB-4C1F-AAA6-9094DBF542FB
++g_f_oo_office_ui_chartwindowstate_xcs__share_registry_schema_o_o_office_ui	EF3CB6BA-7A2A-422A-B028-7AC3EBD1A67B
++g_f_oo_office_ui_chartwindowstate_xcu__share_registry_data_o_o_office_ui	5D31E869-B71C-46A8-8344-2A3BADCE7524
++g_f_oo_office_ui_commands_xcs__share_registry_schema_o_o_office_ui	07357435-FAFC-4448-A265-B0B1016A58D2
++g_f_oo_office_ui_controller_xcs__share_registry_schema_o_o_office_ui	16C74523-3BC3-4803-9060-87A282DE0D15
++g_f_oo_office_ui_controller_xcu__share_registry_data_o_o_office_ui	61283BB3-6307-4084-AC10-43F35A92476C
++g_f_oo_office_ui_dbbrowserwindowstate_xcs__share_registry_schema_o_o_office_ui	821B92D9-1CE1-4A48-875B-479BB3F280EE
++g_f_oo_office_ui_dbbrowserwindowstate_xcu__share_registry_data_o_o_office_ui	C2C560E0-F7D0-4BE9-8992-4E9DA0768F2B
++g_f_oo_office_ui_dbquerywindowstate_xcs__share_registry_schema_o_o_office_ui	9EBC703F-FE42-4EFA-BDD3-98AEA86C8EA0
++g_f_oo_office_ui_dbquerywindowstate_xcu__share_registry_data_o_o_office_ui	4ECD67F7-B14E-431A-AD3D-9AE4FD463AFA
++g_f_oo_office_ui_dbrelationwindowstate_xcs__share_registry_schema_o_o_office_ui	69AAF49D-1EEF-4C49-9626-EF7CC1B6707E
++g_f_oo_office_ui_dbrelationwindowstate_xcu__share_registry_data_o_o_office_ui	F8790495-CD10-4D35-951B-6741DA9EB1A8
++g_f_oo_office_ui_dbreportwindowstate_xcs__share_registry_schema_o_o_office_ui	F2EEB885-0C24-4BBF-ACD6-C86D3A9452C1
++g_f_oo_office_ui_dbreportwindowstate_xcu__share_registry_data_o_o_office_ui	C582AF71-AF19-4153-BCF0-752E1A022271
++g_f_oo_office_ui_dbtablewindowstate_xcs__share_registry_schema_o_o_office_ui	FFB1CF76-3D6F-4CB3-9912-6102A9318D61
++g_f_oo_office_ui_dbtablewindowstate_xcu__share_registry_data_o_o_office_ui	0BE34476-3D90-49C5-9618-9AE518626F5D
++g_f_oo_office_ui_dbucommands_xcs__share_registry_schema_o_o_office_ui	D0DB6996-CA64-4647-A7CA-27A3EF722473
++g_f_oo_office_ui_dbucommands_xcu__share_registry_data_o_o_office_ui	64AE053D-4894-439E-9B9E-7A78F3EEE626
++g_f_oo_office_ui_dic_xcs__share_registry_schema_o_o_office_ui	46896EB0-CB34-4DCD-B4A8-793F44D682C7
++g_f_oo_office_ui_dic_xcu__share_registry_data_o_o_office_ui	165F482F-4C0F-4A33-B8C6-A81293D76713
++g_f_oo_office_ui_drawwindowstate_xcs__share_registry_schema_o_o_office_ui	C8CA8C81-B3D9-41D8-857F-D469D92A8A3D
++g_f_oo_office_ui_drawwindowstate_xcu__share_registry_data_o_o_office_ui	BCBD9EA9-B1B0-4A1C-937A-0D6C19635689
++g_f_oo_office_ui_effects_xcs__share_registry_schema_o_o_office_ui	9C531B8E-5E9C-444A-AB27-37F5DF7756FE
++g_f_oo_office_ui_effects_xcu__share_registry_data_o_o_office_ui	926A8FF9-26DA-4633-91C3-31460A860A72
++g_f_oo_office_ui_factories_xcs__share_registry_schema_o_o_office_ui	6ADEE4C6-F5D1-4ACB-B236-DC121EC5D026
++g_f_oo_office_ui_factories_xcu__share_registry_data_o_o_office_ui	0EE831D8-D080-4A07-A98F-661AE8C9214F
++g_f_oo_office_ui_genc_xcs__share_registry_schema_o_o_office_ui	DFC658B2-DABA-4100-B660-156CCF394B9D
++g_f_oo_office_ui_genc_xcu__share_registry_data_o_o_office_ui	C89D67B2-EBFF-4D0A-97A1-E6020374A0F0
++g_f_oo_office_ui_genericcategories_xcs__share_registry_schema_o_o_office_ui	4416A431-10A9-42D3-AB72-DC43A3EA3DB6
++g_f_oo_office_ui_genericcategories_xcu__share_registry_data_o_o_office_ui	3BE5E966-84DF-4E0A-89B0-542426094E84
++g_f_oo_office_ui_globalsettings_xcs__share_registry_schema_o_o_office_ui	1DD247FC-4166-4A40-8465-BA791A372CD3
++g_f_oo_office_ui_impresswindowstate_xcs__share_registry_schema_o_o_office_ui	B5DF009D-A9FF-4AF2-A29D-4567EAFDB655
++g_f_oo_office_ui_impresswindowstate_xcu__share_registry_data_o_o_office_ui	EAFB5D08-E443-4B9D-B2D9-346A2431592D
++g_f_oo_office_ui_mathcommands_xcs__share_registry_schema_o_o_office_ui	8B676E0E-93E3-4DFD-94CC-9DDA6A303290
++g_f_oo_office_ui_mathcommands_xcu__share_registry_data_o_o_office_ui	1A037A12-5481-414C-93AA-A2D630D3FA87
++g_f_oo_office_ui_mathwindowstate_xcs__share_registry_schema_o_o_office_ui	D297C286-5C5E-4591-B7F9-E511DB402887
++g_f_oo_office_ui_mathwindowstate_xcu__share_registry_data_o_o_office_ui	172D7CB8-C8E3-40D2-8D68-A7F9D37C2A53
++g_f_oo_office_ui_reportcommands_xcs__share_registry_schema_o_o_office_ui	BBCF7BD2-DDAB-4A29-B536-210487FBAADE
++g_f_oo_office_ui_reportcommands_xcu__share_registry_data_o_o_office_ui	D0072764-0756-4A7A-9754-7974B9837DD0
++g_f_oo_office_ui_smc_xcs__share_registry_schema_o_o_office_ui	04D4BB18-E054-402B-89C3-01C84637FFBE
++g_f_oo_office_ui_smc_xcu__share_registry_data_o_o_office_ui	44F72C3B-3E1A-4E95-9E57-52B15059A573
++g_f_oo_office_ui_startmodulewindowstate_xcs__share_registry_schema_o_o_office_ui	3B2FC155-27BE-4BF2-B339-41E9B1CE7333
++g_f_oo_office_ui_startmodulewindowstate_xcu__share_registry_data_o_o_office_ui	7F31522B-670F-40DA-A00B-96E6EF5482F1
++g_f_oo_office_ui_windowstate_xcs__share_registry_schema_o_o_office_ui	39706E96-F6FF-4D54-9563-EF4E837CD52E
++g_f_oo_office_ui_writercommands_xcs__share_registry_schema_o_o_office_ui	27FB17CB-9481-4F88-9428-FD93EC65B31F
++g_f_oo_office_ui_writercommands_xcu__share_registry_data_o_o_office_ui	51B05C96-0C74-46F6-964E-23A2EA45F1C1
++g_f_oo_office_ui_writerformwindowstate_xcs__share_registry_schema_o_o_office_ui	6985DD6E-D8F8-4A5E-AB63-006663ACE654
++g_f_oo_office_ui_writerformwindowstate_xcu__share_registry_data_o_o_office_ui	DCB33882-BB4A-4A24-B35A-A90464A5C19B
++g_f_oo_office_ui_writerglobalwindowstate_xcs__share_registry_schema_o_o_office_ui	F7535EA7-5986-426C-ADF3-1B217C38B404
++g_f_oo_office_ui_writerglobalwindowstate_xcu__share_registry_data_o_o_office_ui	24E81123-36B3-4AA7-864B-589B892A294E
++g_f_oo_office_ui_writerreportwindowstate_xcs__share_registry_schema_o_o_office_ui	C699B261-E5DE-4425-A822-409E2C88081E
++g_f_oo_office_ui_writerreportwindowstate_xcu__share_registry_data_o_o_office_ui	9740609D-2DAB-4FE9-8E49-244913CEC9FC
++g_f_oo_office_ui_writerwebwindowstate_xcs__share_registry_schema_o_o_office_ui	542728CF-09FF-43FD-B822-6E042A08DB51
++g_f_oo_office_ui_writerwebwindowstate_xcu__share_registry_data_o_o_office_ui	A871C0EE-888E-423A-83CD-8AB99BEFDC1F
++g_f_oo_office_ui_writerwindowstate_xcs__share_registry_schema_o_o_office_ui	83E62245-6B99-4E0B-A79D-0619C0507D6F
++g_f_oo_office_ui_writerwindowstate_xcu__share_registry_data_o_o_office_ui	8187D045-F0F5-431D-AF49-8CF9C9371968
++g_f_oo_office_ui_xcs__share_registry_schema_o_o_office	CD36BD74-DAF0-4071-AD97-AFE197AD4549
++g_f_oo_office_ui_xcu__share_registry_data_o_o_office	379385AF-2C17-41B8-9D87-F6545DD772A4
++g_f_oo_office_ui_xformswindowstate_xcs__share_registry_schema_o_o_office_ui	89AEF43E-C253-4631-82CF-5A6C4DD957E2
++g_f_oo_office_ui_xformswindowstate_xcu__share_registry_data_o_o_office_ui	F8F82630-2CC9-4A65-803E-453CB098E728
++g_f_oo_office_views_xcs__share_registry_schema_o_o_office	C98D6E34-AC18-4792-9EA8-BDD6C1F25259
++g_f_oo_office_views_xcu__share_registry_data_o_o_office	51C68968-63BC-4224-8ED6-2D8037913C85
++g_f_oo_office_webwizard_xcs__share_registry_schema_o_o_office	C173A057-66BB-459B-BEC3-13B7BD0D81A2
++g_f_oo_office_webwizard_xcu__share_registry_data_o_o_office	4C938872-339D-4D7E-AE88-01C725FAE9B6
++g_f_oo_office_writer_xcs__share_registry_schema_o_o_office	F0DAF967-A97C-449B-A06E-783D04181512
++g_f_oo_office_writer_xcu__share_registry_data_o_o_office	B88102B7-C93A-4210-84DF-9673A9454E87
++g_f_oo_office_writerweb_xcs__share_registry_schema_o_o_office	E506EFB1-112D-421C-AFD6-FEC9BC8B96DA
++g_f_oo_setup_xcs__share_registry_schema_org_openoffice	24452964-033C-4531-AAB7-CB6C47D586A0
++g_f_oo_setup_xcu__share_registry_data_org_openoffice	CF128DAC-B922-4D3C-A801-DB658E29474E
++g_f_oo_system_xcs__share_registry_schema_org_openoffice	7235EF9C-2D03-46A1-B790-6829C2004B84
++g_f_oo_td_filter_xcs__share_registry_schema_o_o_typedetection	7FBB4A65-68EA-48FB-8813-B09782C1D8B3
++g_f_oo_td_graphicfilter_xcs__share_registry_schema_o_o_typedetection	9E5F3AB9-A875-47A6-9601-0B460F44E472
++g_f_oo_td_misc_xcs__share_registry_schema_o_o_typedetection	CA595105-2968-423B-A687-70F147F958E5
++g_f_oo_td_types_xcs__share_registry_schema_o_o_typedetection	538FFBFD-D803-427A-8506-4AB8C11B3A68
++g_f_oo_td_uisort_xcs__share_registry_schema_o_o_typedetection	A3C4AC75-D038-4D16-BFBD-0F29B3DBFCD9
++g_f_oo_td_uisort_xcu__share_registry_data_o_o_typedetection	7C675680-1A1C-4088-B5E4-26B47281C693
++g_f_oo_ucb_configuration_xcs__share_registry_schema_o_o_ucb	AC0091BE-8062-4826-B23C-DFACEE8705D7
++g_f_oo_ucb_configuration_xcu__share_registry_data_o_o_ucb	3C2B1108-0721-415F-A351-B41C65254D6C
++g_f_oo_ucb_hierarchy_xcs__share_registry_schema_o_o_ucb	1FC63078-0E34-4E5A-8837-EEFBD9E45A3B
++g_f_oo_ucb_store_xcs__share_registry_schema_o_o_ucb	2B763E8F-8E46-4A63-B73C-9521C7D241E8
++g_f_oo_userprofile_xcs__share_registry_schema_org_openoffice	D2615F1A-2928-4B54-944B-C9E5B7218743
++g_f_oo_userprofile_xcu__share_registry_data_org_openoffice	571C2249-F05D-4AAC-8BF1-874C7A841AE0
++g_f_oo_vcl_xcs__share_registry_schema_org_openoffice	2E0A039D-34FF-4966-828A-92059524B27D
++g_f_oo_vcl_xcu__share_registry_data_org_openoffice	A1CFB820-F7F4-4138-9320-BEFC8BDED2E8
++g_f_py_officehelper__program	07AF8766-CB1C-47F4-A361-774D25781EDD
++g_f_py_python_core__p_python_core_2_3_4_bin	D5D55D65-EF9C-44B8-BB42-06E0506F8E34
++g_f_py_python_core__p_python_core_2_3_4_lib	39BA81F5-2C50-4D33-AE71-3BF473C03677
++g_f_py_python_core__p_python_core_2_3_4_lib_bsddb	02FA1DBE-AD21-4901-8FEE-3DBD0ECE4611
++g_f_py_python_core__p_python_core_2_3_4_lib_compiler	C28097E7-7EE7-4C67-8103-F42346AA39DD
++g_f_py_python_core__p_python_core_2_3_4_lib_curses	A999E539-F0A7-48A8-B23E-3F25E10E6A89
++g_f_py_python_core__p_python_core_2_3_4_lib_distutils	99A53158-FFA3-444A-9551-1AA6B14E5463
++g_f_py_python_core__p_python_core_2_3_4_lib_distutils_command	3513E793-2028-4F63-9822-DE7E543B6529
++g_f_py_python_core__p_python_core_2_3_4_lib_email	460495C8-6276-4B40-AA8D-D028C8BC083A
++g_f_py_python_core__p_python_core_2_3_4_lib_encodings	C7F4CAFB-A1B7-44B8-897D-4A26798A7EDB
++g_f_py_python_core__p_python_core_2_3_4_lib_hotshot	40A64FC1-957E-4B66-9F12-475B02006683
++g_f_py_python_core__p_python_core_2_3_4_lib_idlelib	95A4F90A-BDDB-4417-9C7D-F8026C24F3A0
++g_f_py_python_core__p_python_core_2_3_4_lib_idlelib_icons	C64104D6-86BA-4FB5-B5FE-BB9B538E6E6F
++g_f_py_python_core__p_python_core_2_3_4_lib_lib_old	31D5B16C-9E8A-454B-820D-DF1F0BEDDEA7
++g_f_py_python_core__p_python_core_2_3_4_lib_lib_tk	9108D584-274D-4866-88B4-5B2EC33EBC96
++g_f_py_python_core__p_python_core_2_3_4_lib_logging	EB9AC654-5D86-47EF-9994-C522A10B5E57
++g_f_py_python_core__p_python_core_2_3_4_lib_plat_linux2	9F770B02-5681-4796-B91C-29BF8ACCB9E2
++g_f_py_python_core__p_python_core_2_3_4_lib_site_pack	F4E80175-DCFE-48D0-B81E-BCD08EB2339D
++g_f_py_python_core__p_python_core_2_3_4_lib_test	9247DEC9-68B0-45C3-A6A9-20C93E68FA68
++g_f_py_python_core__p_python_core_2_3_4_lib_test_output	0E66BDD5-203D-4ADB-99DB-21127D7C7761
++g_f_py_python_core__p_python_core_2_3_4_lib_xml	A6DBA1E0-DC82-421D-8B07-F55FEF27425D
++g_f_py_python_core__p_python_core_2_3_4_lib_xml_dom	51BC9908-3122-45FC-AE0B-66905DFFF125
++g_f_py_python_core__p_python_core_2_3_4_lib_xml_parsers	CFFAE6D5-BED3-485B-863B-D8AF3A09BD72
++g_f_py_python_core__p_python_core_2_3_4_lib_xml_sax	3FEE08D3-5098-4C21-89D7-846BA3C86F9B
++g_f_py_pythonloader__program	B84FB791-1C9E-4732-8B9C-3204E1D27E59
++g_f_py_pythonscript__program	A32C112B-EA4E-4922-8615-BE998CD29F7F
++g_f_py_uno__program	E88DF6FA-E51E-4CDF-8520-11FB2D7B4C39
++g_f_py_unohelper__program	D3A2CFEB-0829-402E-80D3-D55B8202AD77
++g_f_pymailmerge__program	5CA7DFF0-2CB0-497C-96F1-28E3B0A8779D
++g_f_rdb_types__program	3D8F7959-D4BF-4ADE-8B0F-41D3DA7C2322
++g_f_rdb_typesvba__program	6E8DE6C9-9BB8-4613-B22B-DF6BE5B3A548
++g_f_readme_readme__readmes_af	6A1BFA1C-5F37-4C41-93AC-18B788D289DC
++g_f_readme_readme__readmes_ar	DA37E371-95E2-4B56-884B-E8B698CF56F0
++g_f_readme_readme__readmes_be_by	E9B44E9F-BE76-48B9-A100-8CE7C638BA13
++g_f_readme_readme__readmes_bg	E784BFA8-7BE3-4103-BDB7-485832E59E7E
++g_f_readme_readme__readmes_bn_in	385A9BAD-3629-4996-87C8-A2D4A74C880E
++g_f_readme_readme__readmes_br	2BD24D8F-8F16-4A0F-ABC5-8E5CB0BFD003
++g_f_readme_readme__readmes_ca	19A5010B-D425-4983-8DA1-AD0575380B1B
++g_f_readme_readme__readmes_cs	BE74BE11-B24E-4E80-9CC9-2BE2917FEC86
++g_f_readme_readme__readmes_cy	D4FB4A77-B28D-44C4-8AD2-F27A1C855F21
++g_f_readme_readme__readmes_da	1A4A1D2D-D202-4400-B5E7-47515677349D
++g_f_readme_readme__readmes_de	8FD6B067-EC98-4053-88AC-A5C336A2DC89
++g_f_readme_readme__readmes_el	4FFFE782-240C-4DEE-A5F1-7481C79F5D1E
++g_f_readme_readme__readmes_en_gb	AF7B09AF-7B2E-4437-95C2-DB4482CF5A2E
++g_f_readme_readme__readmes_en_us	A7C369D4-19A6-4C6B-A878-78EB9FC58A5B
++g_f_readme_readme__readmes_es	78100B5A-211D-4239-B615-6E5A9C8CF084
++g_f_readme_readme__readmes_et	C0D694A0-F9BA-4ABD-97FA-780C8344F63C
++g_f_readme_readme__readmes_fi	03E285C2-0882-4AE8-A250-36A39BDC4042
++g_f_readme_readme__readmes_fr	8623F845-2EB9-490D-B9B9-6ABB1F58A289
++g_f_readme_readme__readmes_gu_in	A610A604-DDFE-4664-B1B0-1ECB689021E6
++g_f_readme_readme__readmes_he	F796B09B-9DE5-442E-BD1D-AB51103EFD72
++g_f_readme_readme__readmes_hi_in	FECABDD6-8547-4826-B770-5183850BE074
++g_f_readme_readme__readmes_hr	5509EBF9-775D-4C3A-B420-AB566C734560
++g_f_readme_readme__readmes_hu	D9A4FB84-8A51-488F-B69D-DE056CE6DD96
++g_f_readme_readme__readmes_it	8C16B27D-2B9B-450E-9CFE-643909356D96
++g_f_readme_readme__readmes_ja	4C260B14-B595-4926-BE9A-CD119B48FBFB
++g_f_readme_readme__readmes_km	C837EB02-8D0F-486E-883F-C4566D1F35D0
++g_f_readme_readme__readmes_ko	6DFEF3B1-7BB5-41C6-94AC-1EFE953CCBC8
++g_f_readme_readme__readmes_lt	97C0955E-734A-4C21-8B2D-EBEFF5BE9B90
++g_f_readme_readme__readmes_lv	53471281-A1EA-42E9-BF22-6F88550B1DD1
++g_f_readme_readme__readmes_mk	7A279528-38CD-477A-BA33-73F3315734F8
++g_f_readme_readme__readmes_mr_in	18C49C11-6691-453C-A1D7-B9052141FC0E
++g_f_readme_readme__readmes_nb	6878AE49-C4BA-4379-A711-488D2596D284
++g_f_readme_readme__readmes_nl	F0628459-95C3-4BEF-BE32-27F33BE1FE92
++g_f_readme_readme__readmes_nn	53B9B061-2483-4EC5-AF85-C143D1B43142
++g_f_readme_readme__readmes_pa_in	8C23B380-465E-47E1-A0C4-5DDA0DE0C302
++g_f_readme_readme__readmes_pl	BB38ACFF-0E08-4280-88CD-83DDDB11F98A
++g_f_readme_readme__readmes_pt	6401B0F5-82E9-41BF-9A1C-14738FB825C9
++g_f_readme_readme__readmes_pt_br	D869ECB7-B45D-4B15-A128-E9D5A6101B7D
++g_f_readme_readme__readmes_ru	E36AD918-596C-4215-B74E-AF6FA1652DBB
++g_f_readme_readme__readmes_rw	CD25DC8B-885A-433F-B9C7-6F8FC0003E6C
++g_f_readme_readme__readmes_sk	D5A41E06-1B4F-4847-ABF5-37C53207BF7B
++g_f_readme_readme__readmes_sl	8464B564-9523-4A63-9FFF-7AD11C3713D1
++g_f_readme_readme__readmes_sv	1004CF75-BDB2-4FA6-B571-1A841B2D8D0C
++g_f_readme_readme__readmes_ta_in	5EDFE91F-BF7F-4363-90C5-045BFBBBB467
++g_f_readme_readme__readmes_tr	D04D72A9-30AE-44BB-9CA7-BB2A2947BE3D
++g_f_readme_readme__readmes_vi	FA103D0D-C1F0-4BA3-BBD2-28CBAEBBF135
++g_f_readme_readme__readmes_xh	FBD6D18E-59E4-44E6-BDE3-E86985674973
++g_f_readme_readme__readmes_zh_cn	B7417095-BE47-41EF-AF39-CFAF878A2E5A
++g_f_readme_readme__readmes_zh_tw	B84A0BE8-71FA-4798-856D-39E9DA7C0593
++g_f_readme_readme__readmes_zu	10177225-42E0-4482-82A7-2CBD9A4673E7
++g_f_readme_readme_html__readmes_af	29B58237-4F8B-45F9-911E-F3E2530AA9BD
++g_f_readme_readme_html__readmes_ar	59C9BB6A-1D3E-4B32-B2C2-C99EC58D895E
++g_f_readme_readme_html__readmes_be_by	0125DE38-24E9-40D6-B93C-B4050F4F88A2
++g_f_readme_readme_html__readmes_bg	C03EC6D2-4FBA-4553-B0DF-E55115BF98D2
++g_f_readme_readme_html__readmes_bn_in	1D812D6E-1831-486F-9DC8-934C7EC84B58
++g_f_readme_readme_html__readmes_br	EEF14CEA-AD7A-4C78-A8E8-B2EF47CA0360
++g_f_readme_readme_html__readmes_ca	1DF0720B-1924-4A8C-B6B3-F4AE8C6B1B76
++g_f_readme_readme_html__readmes_cs	E345E7C8-7CA8-423D-A7FC-318E424D71F3
++g_f_readme_readme_html__readmes_cy	1A4415D0-8B48-45FA-8610-49E021919A11
++g_f_readme_readme_html__readmes_da	B7147B66-441F-4463-A819-407487ABAEE0
++g_f_readme_readme_html__readmes_de	20BB0A52-8CF7-46BA-A676-551DF5DBBAFF
++g_f_readme_readme_html__readmes_el	88D3D67C-E772-4A00-AD82-0ADB59AD00F1
++g_f_readme_readme_html__readmes_en_gb	D6F212C9-7153-45CD-88CF-715F66CCAB26
++g_f_readme_readme_html__readmes_en_us	5FF57900-B52D-424F-B148-44DD6DBD042F
++g_f_readme_readme_html__readmes_es	FDBC5794-0156-42E7-8321-09EED401B1D2
++g_f_readme_readme_html__readmes_et	713EF6EF-7B09-44B1-8105-EB21B9541349
++g_f_readme_readme_html__readmes_fi	53DE8D16-97BA-495E-ACEA-2D6BCE7ECA95
++g_f_readme_readme_html__readmes_fr	F0BCB332-F58B-4F26-8C33-262AEEB82C50
++g_f_readme_readme_html__readmes_gu_in	61128139-858D-4E0C-97CA-21BD571CBFFB
++g_f_readme_readme_html__readmes_he	827089EF-974B-4F1D-8F50-E57EF6283B5B
++g_f_readme_readme_html__readmes_hi_in	1593FF0B-3BEE-4DDF-B3DA-48D752A20F9C
++g_f_readme_readme_html__readmes_hr	32147E39-C2D4-4788-BA9C-42FAEB0D4455
++g_f_readme_readme_html__readmes_hu	6B266EE6-59B6-42EC-983C-6F1B742B8C15
++g_f_readme_readme_html__readmes_it	A6334107-872E-4F61-BE03-9694D5B96A49
++g_f_readme_readme_html__readmes_ja	AD78B7CD-BDF2-4E9E-8C72-84D3F2FCC828
++g_f_readme_readme_html__readmes_km	7AA5C153-3FA5-46FB-97B2-FBDEFBE6AFE4
++g_f_readme_readme_html__readmes_ko	C75DF0F6-0FF9-4D30-BAD1-73AAB83F13AC
++g_f_readme_readme_html__readmes_lt	C62458CC-F470-4FD0-A308-2C6568CF925C
++g_f_readme_readme_html__readmes_lv	8757DB9A-C198-4425-83B9-9EAC2847259D
++g_f_readme_readme_html__readmes_mk	9627F8C5-9CA5-4C22-A63C-0C1F36A9B9AE
++g_f_readme_readme_html__readmes_mr_in	F1A76F4A-F83C-41BB-99D4-48B646C63C99
++g_f_readme_readme_html__readmes_nb	40121247-01A3-43A4-9D77-BB25E8B8603C
++g_f_readme_readme_html__readmes_nl	6DAB81DA-E9EB-422E-B7DF-82B5A9DA84C0
++g_f_readme_readme_html__readmes_nn	1C2DB3F5-CDAF-48DB-BFB7-58B2CCB780B5
++g_f_readme_readme_html__readmes_pa_in	0EF3C6EF-D0CD-4A4F-86A4-DB9C07BD1150
++g_f_readme_readme_html__readmes_pl	71C57802-CB81-4366-9F88-62A53D48363D
++g_f_readme_readme_html__readmes_pt	CB8736DA-7E99-426A-A4ED-E24F4ADF6BE6
++g_f_readme_readme_html__readmes_pt_br	CF24FE0F-0F79-49BC-9756-A61B278E10E0
++g_f_readme_readme_html__readmes_ru	6A2B7AC3-F647-44E3-947D-9EDF92D94005
++g_f_readme_readme_html__readmes_rw	9B7FCE8D-2E11-4652-B082-815D6B298444
++g_f_readme_readme_html__readmes_sk	3788D51D-7192-42B7-9BBB-50FBE72A4563
++g_f_readme_readme_html__readmes_sl	B3888E14-A240-44E8-B0BB-0F1FB8E38B29
++g_f_readme_readme_html__readmes_sv	7805305E-16A6-4D6A-A468-4E139CEBEE24
++g_f_readme_readme_html__readmes_ta_in	E22941DB-2AE0-46BC-A2B3-3F14D283F6EA
++g_f_readme_readme_html__readmes_tr	D33C640B-E8D9-4147-B70A-90900E00D85D
++g_f_readme_readme_html__readmes_vi	5A85E451-8DCB-45C5-93D9-D1CE4E9E62B0
++g_f_readme_readme_html__readmes_xh	EDE3EB0A-0E84-48BE-8653-930C533A9944
++g_f_readme_readme_html__readmes_zh_cn	8F61470D-92F3-4CE4-BD3D-3E08D952710C
++g_f_readme_readme_html__readmes_zh_tw	8C5389C7-3E58-44CC-A2E0-2FAF06DB5DAA
++g_f_readme_readme_html__readmes_zu	1B957AC7-37B9-4016-A865-B33D9B5BDC62
++g_f_registry_filter_zip__share_registry_res_af_o_o_td_af	57D35A05-34C0-42FD-AD56-B12E9710F23D
++g_f_registry_filter_zip__share_registry_res_ar_o_o_td_ar	21345983-B455-4D46-8B4D-C55C6A23D8CB
++g_f_registry_filter_zip__share_registry_res_be_by_o_o_td_be_by	01727764-E8F3-4645-BDB2-7325AFD5AA5E
++g_f_registry_filter_zip__share_registry_res_bg_o_o_td_bg	0A35BC8C-CCDD-4933-92D1-6E24BDF47E3C
++g_f_registry_filter_zip__share_registry_res_bn_in_o_o_td_bn_in	1FC2375E-A460-44FD-82BA-01500EC36F43
++g_f_registry_filter_zip__share_registry_res_br_o_o_td_br	0D30E6CA-3FBE-4521-8181-7B1D7DB5D70F
++g_f_registry_filter_zip__share_registry_res_ca_o_o_td_ca	23B33851-8D63-4C3B-81FB-CAD463EF074C
++g_f_registry_filter_zip__share_registry_res_cs_o_o_td_cs	59CF0B34-C9C3-4A4C-81BE-44F941437C92
++g_f_registry_filter_zip__share_registry_res_cy_o_o_td_cy	03C6CF8E-560F-4731-8700-342441B39377
++g_f_registry_filter_zip__share_registry_res_da_o_o_td_da	F218C541-750E-4B65-98C4-1F944D8A8051
++g_f_registry_filter_zip__share_registry_res_de_o_o_td_de	B3B42B25-1FB8-4C12-9407-77FF9017805D
++g_f_registry_filter_zip__share_registry_res_el_o_o_td_el	5BD3CE74-3197-440C-A711-78B3F598D8A7
++g_f_registry_filter_zip__share_registry_res_en_gb_o_o_td_en_gb	2C861848-1356-435D-B27E-43D0316BB747
++g_f_registry_filter_zip__share_registry_res_en_us_o_o_td_en_us	843583CE-9398-4275-9974-CB3F4D84296E
++g_f_registry_filter_zip__share_registry_res_es_o_o_td_es	CCD205A7-276D-4579-ADAA-7A9BE64A0E54
++g_f_registry_filter_zip__share_registry_res_et_o_o_td_et	5AFF3DC2-EEA8-490F-807F-B9250FA95740
++g_f_registry_filter_zip__share_registry_res_fi_o_o_td_fi	5A05E9CD-06BC-409C-A3E8-D775D61C35B1
++g_f_registry_filter_zip__share_registry_res_fr_o_o_td_fr	056B8FF6-3E77-4AF3-8C39-E88D4F938CEB
++g_f_registry_filter_zip__share_registry_res_gu_in_o_o_td_gu_in	9297E0BB-9800-48DC-AFEA-EA8A39D5224B
++g_f_registry_filter_zip__share_registry_res_he_o_o_td_he	23CA99FD-96CB-47AB-978C-A7A9CDE7493C
++g_f_registry_filter_zip__share_registry_res_hi_in_o_o_td_hi_in	273ACEC7-12F3-4450-88BD-3365132E8C1C
++g_f_registry_filter_zip__share_registry_res_hr_o_o_td_hr	D5B97A5F-24AF-47EE-88D1-37CD7B11F09C
++g_f_registry_filter_zip__share_registry_res_hu_o_o_td_hu	20EFE794-A67D-4440-ACE8-6BD5E73F0F21
++g_f_registry_filter_zip__share_registry_res_it_o_o_td_it	80063E79-F881-4ABF-B425-38B67FD113E5
++g_f_registry_filter_zip__share_registry_res_ja_o_o_td_ja	47E0E725-71AD-4B95-9A95-9105D4C930CA
++g_f_registry_filter_zip__share_registry_res_km_o_o_td_km	F05AAEB0-9BF7-48E3-B06E-78EF92AB30FB
++g_f_registry_filter_zip__share_registry_res_ko_o_o_td_ko	DE082E78-E915-4496-A407-63AFB7B4D554
++g_f_registry_filter_zip__share_registry_res_lt_o_o_td_lt	E9834CFA-AB82-4435-AD31-A1F676DAB91A
++g_f_registry_filter_zip__share_registry_res_lv_o_o_td_lv	95E91310-B5F0-4E93-9E01-F38D41CBEE17
++g_f_registry_filter_zip__share_registry_res_mk_o_o_td_mk	E73AE1FC-3FAD-4A91-8168-DD40CBC717DE
++g_f_registry_filter_zip__share_registry_res_mr_in_o_o_td_mr_in	6DE18B37-7448-4B5C-8E83-597296BE4ED5
++g_f_registry_filter_zip__share_registry_res_nb_o_o_td_nb	1F9B4773-9D1D-4FAE-86FD-6CE5EF88DB00
++g_f_registry_filter_zip__share_registry_res_nl_o_o_td_nl	B23AE3B8-CDF5-46F3-9782-0CC01CB0DD57
++g_f_registry_filter_zip__share_registry_res_nn_o_o_td_nn	F6DF6053-B7E8-4F08-B011-C783125ACCF8
++g_f_registry_filter_zip__share_registry_res_pa_in_o_o_td_pa_in	877FB752-1F6E-415E-90F5-C5028B52469D
++g_f_registry_filter_zip__share_registry_res_pl_o_o_td_pl	D905F61A-AAC2-411C-9DE8-F8299DD79CEA
++g_f_registry_filter_zip__share_registry_res_pt_br_o_o_td_pt_br	C7E42514-D7F3-4B0D-AE08-B117A96F893E
++g_f_registry_filter_zip__share_registry_res_pt_o_o_td_pt	BF7DE41C-2357-4CCC-987F-4227BD2B61D0
++g_f_registry_filter_zip__share_registry_res_ru_o_o_td_ru	41017703-1C05-4B0C-AF98-5D9BD9BED1AF
++g_f_registry_filter_zip__share_registry_res_rw_o_o_td_rw	3BF44E0D-0225-4668-B48F-AD6B0F77F39C
++g_f_registry_filter_zip__share_registry_res_sk_o_o_td_sk	9B5F02CC-1E51-435A-845A-1EFC220E06C1
++g_f_registry_filter_zip__share_registry_res_sl_o_o_td_sl	BD05FD23-1968-491F-893A-74BD4A0600D7
++g_f_registry_filter_zip__share_registry_res_sv_o_o_td_sv	2646BAA0-B4F7-4B11-AE04-74B37C7324BF
++g_f_registry_filter_zip__share_registry_res_ta_in_o_o_td_ta_in	6E80D730-2A78-4019-BAD4-AA2D470F8E74
++g_f_registry_filter_zip__share_registry_res_tr_o_o_td_tr	73CFC348-4367-411C-A09B-74F1375A226B
++g_f_registry_filter_zip__share_registry_res_vi_o_o_td_vi	35B642A2-5503-430B-8A23-F768D5A3FCA0
++g_f_registry_filter_zip__share_registry_res_xh_o_o_td_xh	991096AC-F9DB-4DB8-9475-290D8819F479
++g_f_registry_filter_zip__share_registry_res_zh_cn_o_o_td_zh_cn	4C97D136-9A60-49C4-AE87-2735EBBA0E24
++g_f_registry_filter_zip__share_registry_res_zh_tw_o_o_td_zh_tw	72D91C59-041C-4C32-AED9-190D887ED16E
++g_f_registry_filter_zip__share_registry_res_zu_o_o_td_zu	C4D0EA30-8545-4EF8-8F47-07E6F13CEF63
++g_f_registry_lang__share_registry_res_af_o_o_af	1CBC5E4A-D936-4D5C-9A79-EA122C359E06
++g_f_registry_lang__share_registry_res_af_o_o_office_af	2C26FCAE-C2DD-4CC2-859C-60F6D5E229EE
++g_f_registry_lang__share_registry_res_af_o_o_office_ui_af	914D8E97-1301-4E06-92DB-3AF1E7684138
++g_f_registry_lang__share_registry_res_ar_o_o_ar	64F4C15E-3F28-4E8B-AB19-1D0F75344DD6
++g_f_registry_lang__share_registry_res_ar_o_o_office_ar	76E4E02B-8C2A-4F24-8233-3C6982810DDB
++g_f_registry_lang__share_registry_res_ar_o_o_office_ui_ar	8811BC7B-199B-452E-BC79-1318A25BEDC1
++g_f_registry_lang__share_registry_res_be_by_o_o_be_by	8BD3A28D-E867-48B4-840E-4D19D24BBA4F
++g_f_registry_lang__share_registry_res_be_by_o_o_office_be_by	09613E34-214D-40F9-B5A0-66AC3DE0EBDF
++g_f_registry_lang__share_registry_res_be_by_o_o_office_ui_be_by	D95AABD4-E0DF-48D8-8CC5-BB2CD70E998E
++g_f_registry_lang__share_registry_res_bg_o_o_bg	4A8830B0-4B95-4080-991E-5E7162A996FC
++g_f_registry_lang__share_registry_res_bg_o_o_office_bg	CADFCBC6-FDE3-4DA7-A98D-FBCA32A57B5A
++g_f_registry_lang__share_registry_res_bg_o_o_office_ui_bg	35DEDF54-6A8E-4017-B35D-08C8838174F9
++g_f_registry_lang__share_registry_res_bn_in_o_o_bn_in	6B0AEE2B-83BC-454B-A28B-C3D75F0CBC0E
++g_f_registry_lang__share_registry_res_bn_in_o_o_office_bn_in	F43E5651-FE8D-4190-811D-899DE6F3FC29
++g_f_registry_lang__share_registry_res_bn_in_o_o_office_ui_bn_in	0EAFEA97-7515-47E5-8C84-B5A3C3ED5132
++g_f_registry_lang__share_registry_res_br_o_o_br	963D1C45-D505-4118-8AE5-FBC39CA9F98C
++g_f_registry_lang__share_registry_res_br_o_o_office_br	308E9F8F-FFF3-45F7-9990-51610CD94E52
++g_f_registry_lang__share_registry_res_br_o_o_office_ui_br	0AA1DD7A-34B5-4504-B727-9580CB679CBD
++g_f_registry_lang__share_registry_res_ca_o_o_ca	AFE8ECD9-5662-43EB-9EA0-3A2D367F4F7C
++g_f_registry_lang__share_registry_res_ca_o_o_office_ca	86B825C5-0320-4587-B96F-3F947B4C83CA
++g_f_registry_lang__share_registry_res_ca_o_o_office_ui_ca	0020D546-D20F-4968-8C35-073DCF026149
++g_f_registry_lang__share_registry_res_cs_o_o_cs	99A79BF7-8177-4F9B-9FCA-76266A770ACD
++g_f_registry_lang__share_registry_res_cs_o_o_office_cs	9A6B99E8-7EA0-4D30-B420-2393E8DDF7C6
++g_f_registry_lang__share_registry_res_cs_o_o_office_ui_cs	5E981B21-363F-4A5B-ACFE-949D8081EE3F
++g_f_registry_lang__share_registry_res_cy_o_o_cy	A97E743C-51ED-4F80-BB1F-2C17A4205A70
++g_f_registry_lang__share_registry_res_cy_o_o_office_cy	30E996F0-C3B8-4A02-AA96-D59E281B34AE
++g_f_registry_lang__share_registry_res_cy_o_o_office_ui_cy	C43262EF-2E01-4956-BE2C-B38E80959384
++g_f_registry_lang__share_registry_res_da_o_o_da	D68D3D80-CFBA-4ADE-93E1-4B232C0712AA
++g_f_registry_lang__share_registry_res_da_o_o_office_da	FC6E40A4-6534-438E-8398-F9D22D897C7D
++g_f_registry_lang__share_registry_res_da_o_o_office_ui_da	E537BC53-AB0C-40C9-A80C-FEFB963E6F02
++g_f_registry_lang__share_registry_res_de_o_o_de	0F35F825-8915-4E00-997B-C5D475B2DA91
++g_f_registry_lang__share_registry_res_de_o_o_office_de	E4B24851-F19C-45DC-8AF2-C010A5DA9FA3
++g_f_registry_lang__share_registry_res_de_o_o_office_ui_de	A45C111C-7208-44B1-BE57-60248E515B1F
++g_f_registry_lang__share_registry_res_el_o_o_el	1C1E7AD9-32E4-467F-B011-97EA2E314633
++g_f_registry_lang__share_registry_res_el_o_o_office_el	5E86D397-36B6-42D9-8C9A-1E4014DF0BFE
++g_f_registry_lang__share_registry_res_el_o_o_office_ui_el	29126360-46D4-4BA3-A188-BDD37D2B3E65
++g_f_registry_lang__share_registry_res_en_gb_o_o_en_gb	B7D8C656-A746-4028-B7FB-0A32E437F239
++g_f_registry_lang__share_registry_res_en_gb_o_o_office_en_gb	D48AEB25-D823-48CF-9E37-35C2CA3A8FF0
++g_f_registry_lang__share_registry_res_en_gb_o_o_office_ui_en_gb	4293B94D-FE43-4D0B-9DAC-6247C135B892
++g_f_registry_lang__share_registry_res_en_us_o_o_en_us	627BA46A-540A-42EF-B01F-AF660E5892AF
++g_f_registry_lang__share_registry_res_en_us_o_o_office_en_us	F798F8D1-95AA-40DA-B5EB-3E37BFE16AFE
++g_f_registry_lang__share_registry_res_en_us_o_o_office_ui_en_us	0B07F813-8920-48EC-AFE2-61B14537A5A6
++g_f_registry_lang__share_registry_res_es_o_o_es	EED4EC38-3A45-4D49-A236-157372695B85
++g_f_registry_lang__share_registry_res_es_o_o_office_es	0206D2CD-DC6A-4AFC-8853-F5D0410368AA
++g_f_registry_lang__share_registry_res_es_o_o_office_ui_es	4253C896-4E4D-4909-97B2-82B131A184A0
++g_f_registry_lang__share_registry_res_et_o_o_et	A959E7EE-2B9E-47AF-BB72-AA026105DF31
++g_f_registry_lang__share_registry_res_et_o_o_office_et	F5481350-935B-4A7D-A469-16CDD4686C0E
++g_f_registry_lang__share_registry_res_et_o_o_office_ui_et	56FCF54E-5958-4E6C-8003-933C24AC867C
++g_f_registry_lang__share_registry_res_fi_o_o_fi	E410E5CF-A131-4FC8-BF4D-AE4D87A9B2C1
++g_f_registry_lang__share_registry_res_fi_o_o_office_fi	65B088B0-D5E1-4BD7-BA2F-6C5D4741453A
++g_f_registry_lang__share_registry_res_fi_o_o_office_ui_fi	3FBD5DB2-1848-467B-AB82-94D9E8DBC346
++g_f_registry_lang__share_registry_res_fr_o_o_fr	0A4E9753-97E3-4B84-8626-A0FED2F1FFC6
++g_f_registry_lang__share_registry_res_fr_o_o_office_fr	58CF1E56-0EC0-483E-BBEA-C71139D0F27A
++g_f_registry_lang__share_registry_res_fr_o_o_office_ui_fr	44D633C0-CB3B-421F-9CDB-83F67BF11D6F
++g_f_registry_lang__share_registry_res_gu_in_o_o_gu_in	115F1221-199C-4D2D-AE54-43DB0ADA1984
++g_f_registry_lang__share_registry_res_gu_in_o_o_office_gu_in	365FCDE3-4C1E-4CD9-93AC-C966064C69C5
++g_f_registry_lang__share_registry_res_gu_in_o_o_office_ui_gu_in	54A30671-D3FE-47B8-8010-9C0AF71154B4
++g_f_registry_lang__share_registry_res_he_o_o_he	10356695-37DA-4C0A-B12A-CC7B4D408E59
++g_f_registry_lang__share_registry_res_he_o_o_office_he	51811DB8-FCA4-4BB1-8491-23FF95529EC8
++g_f_registry_lang__share_registry_res_he_o_o_office_ui_he	7FF3EF0C-434C-4260-BA4B-195695484303
++g_f_registry_lang__share_registry_res_hi_in_o_o_hi_in	5C9B523D-DB94-47EE-9067-3FD751A4E331
++g_f_registry_lang__share_registry_res_hi_in_o_o_office_hi_in	E7DC117D-4F10-45E3-B492-F88E2F7C582E
++g_f_registry_lang__share_registry_res_hi_in_o_o_office_ui_hi_in	ACD3BD49-5DCD-4559-9243-423F043DBADA
++g_f_registry_lang__share_registry_res_hr_o_o_hr	92502C5D-141E-4A5C-824F-97A6B9FB33EB
++g_f_registry_lang__share_registry_res_hr_o_o_office_hr	2730F361-89AF-48D9-AD5E-AE8112F6A60B
++g_f_registry_lang__share_registry_res_hr_o_o_office_ui_hr	5D06F26B-1368-4F10-B9E9-D390B142A6C8
++g_f_registry_lang__share_registry_res_hu_o_o_hu	6BEF5340-88EF-4048-904A-F3A654A32C21
++g_f_registry_lang__share_registry_res_hu_o_o_office_hu	B16D923A-5CF9-4865-A788-DFCEC3FA544E
++g_f_registry_lang__share_registry_res_hu_o_o_office_ui_hu	042249F4-0581-44E6-935C-B5B11BE9B121
++g_f_registry_lang__share_registry_res_it_o_o_it	E0C38AF9-FC1B-462F-B7A7-82F4A21DC354
++g_f_registry_lang__share_registry_res_it_o_o_office_it	6F530B39-26D9-4221-BEFE-45CF1EF9F922
++g_f_registry_lang__share_registry_res_it_o_o_office_ui_it	2E4FBD8F-E1A1-430D-84DB-3565193C1591
++g_f_registry_lang__share_registry_res_ja_o_o_ja	E2F83511-26BD-496F-B20F-D0444571BFAB
++g_f_registry_lang__share_registry_res_ja_o_o_office_ja	DBB82BC4-3502-42A2-9BA9-ADC4AC5CD3D9
++g_f_registry_lang__share_registry_res_ja_o_o_office_ui_ja	0AF7E753-E867-49F2-BDB4-F7CB7BBB4911
++g_f_registry_lang__share_registry_res_km_o_o_km	69BB2F05-F29D-4677-A347-5EE890669442
++g_f_registry_lang__share_registry_res_km_o_o_office_km	B06614C7-ED96-4DAB-A718-CAD495455719
++g_f_registry_lang__share_registry_res_km_o_o_office_ui_km	22C060EC-355D-4968-8C38-6EC644255009
++g_f_registry_lang__share_registry_res_ko_o_o_ko	3F7E2E75-9591-463D-971B-BB458E6202A0
++g_f_registry_lang__share_registry_res_ko_o_o_office_ko	E20DC3B0-8A13-4561-BD62-08F7289E78CE
++g_f_registry_lang__share_registry_res_ko_o_o_office_ui_ko	9198C010-C488-4672-9851-F2800919A498
++g_f_registry_lang__share_registry_res_lt_o_o_lt	47CC4E33-F257-425F-8F3D-822324743183
++g_f_registry_lang__share_registry_res_lt_o_o_office_lt	629B9486-735E-433D-8E78-8E4C712877A1
++g_f_registry_lang__share_registry_res_lt_o_o_office_ui_lt	5FD1369F-84FB-4BF9-9C62-FFEBC721500A
++g_f_registry_lang__share_registry_res_lv_o_o_lv	E8DB5182-99D4-4A64-9CCA-2FDCB28F5572
++g_f_registry_lang__share_registry_res_lv_o_o_office_lv	23D17548-F12C-4846-9216-4C26CF108EEF
++g_f_registry_lang__share_registry_res_lv_o_o_office_ui_lv	EA488321-668B-41B6-B37A-FC976AA1E4BB
++g_f_registry_lang__share_registry_res_mk_o_o_mk	F131CFFD-0907-424B-9588-043AE2026BF7
++g_f_registry_lang__share_registry_res_mk_o_o_office_mk	054CD98A-EA8C-470C-8E84-3771F569F77D
++g_f_registry_lang__share_registry_res_mk_o_o_office_ui_mk	C1B934F0-99D7-4C0D-93D1-3051BFEBCD38
++g_f_registry_lang__share_registry_res_mr_in_o_o_mr_in	A8140A65-F8D9-4B8B-9A13-13F06BEFDDD3
++g_f_registry_lang__share_registry_res_mr_in_o_o_office_mr_in	C26E2456-ABAB-4476-8368-FC81DE57FCDA
++g_f_registry_lang__share_registry_res_mr_in_o_o_office_ui_mr_in	7F06C63C-1532-4CF5-8492-5CFF72D343C2
++g_f_registry_lang__share_registry_res_nb_o_o_nb	D8A9E09E-EA8A-46D0-A84E-B1B2D322CE3E
++g_f_registry_lang__share_registry_res_nb_o_o_office_nb	5CF1FFAC-AF87-4A27-96F8-FB764A993947
++g_f_registry_lang__share_registry_res_nb_o_o_office_ui_nb	E0780DC9-418C-47BE-BC60-D9D4FF95CA87
++g_f_registry_lang__share_registry_res_nl_o_o_nl	7DE15929-F1FF-42AE-9FA6-149BD89F370F
++g_f_registry_lang__share_registry_res_nl_o_o_office_nl	1FCBA6E2-4757-41AC-A4F1-1DA752F2BD8A
++g_f_registry_lang__share_registry_res_nl_o_o_office_ui_nl	6C06737B-3B0C-4599-977D-54959C38C7F9
++g_f_registry_lang__share_registry_res_nn_o_o_nn	103AABFE-827E-4BA6-997F-4AEF191B0C74
++g_f_registry_lang__share_registry_res_nn_o_o_office_nn	D6655D2B-ECFB-4E21-92A3-BD63DD2607E5
++g_f_registry_lang__share_registry_res_nn_o_o_office_ui_nn	42D858DF-4AA5-4D8B-8947-18E25327479B
++g_f_registry_lang__share_registry_res_pa_in_o_o_office_pa_in	68EBE6A6-0612-46E0-99D0-D14A04056CF3
++g_f_registry_lang__share_registry_res_pa_in_o_o_office_ui_pa_in	D5318204-AB7F-47F6-ACF4-489C730BC867
++g_f_registry_lang__share_registry_res_pa_in_o_o_pa_in	D28FF841-B25F-49E5-BD0B-AB60A64272B5
++g_f_registry_lang__share_registry_res_pl_o_o_office_pl	CE2C049A-2901-4462-A70B-63ED0C625AFE
++g_f_registry_lang__share_registry_res_pl_o_o_office_ui_pl	31DA2FCD-BF9C-4AA8-8E3C-7C5DE6BC1769
++g_f_registry_lang__share_registry_res_pl_o_o_pl	0CFA9917-100E-4D7F-B917-8C4525FE396A
++g_f_registry_lang__share_registry_res_pt_br_o_o_office_pt_br	62993FBB-C4A5-44E7-B6BB-8D6DD129176D
++g_f_registry_lang__share_registry_res_pt_br_o_o_office_ui_pt_br	9C29CACA-75FC-493D-BF9C-A7AE8B1CD8F6
++g_f_registry_lang__share_registry_res_pt_br_o_o_pt_br	AB9B02B8-F416-4B5B-A4DC-7B8B0A2FD296
++g_f_registry_lang__share_registry_res_pt_o_o_office_pt	87B2A1D4-F6F9-414E-8F5B-745250AD43CE
++g_f_registry_lang__share_registry_res_pt_o_o_office_ui_pt	561C2915-7815-4479-903C-4BFC23F21D48
++g_f_registry_lang__share_registry_res_pt_o_o_pt	A0A739CE-8016-4489-A8EF-BBD3BDF74A37
++g_f_registry_lang__share_registry_res_ru_o_o_office_ru	A4F080A9-020D-4EAA-B484-D0E7A26EC1B1
++g_f_registry_lang__share_registry_res_ru_o_o_office_ui_ru	11C2EB46-B8C1-4E19-9068-D122FCD24EA3
++g_f_registry_lang__share_registry_res_ru_o_o_ru	B6819A25-D9BB-45AE-BB8C-DF7CF3A489D9
++g_f_registry_lang__share_registry_res_rw_o_o_office_rw	6AE06E41-8EA4-4B48-9E51-8506371A4CEF
++g_f_registry_lang__share_registry_res_rw_o_o_office_ui_rw	4C68084E-F265-4399-B6D9-2E9B22198615
++g_f_registry_lang__share_registry_res_rw_o_o_rw	D6E19C92-2FC8-4C61-B227-5F611F8DB5EB
++g_f_registry_lang__share_registry_res_sk_o_o_office_sk	2C86381B-F6AE-4095-9E6D-8C60A11B604C
++g_f_registry_lang__share_registry_res_sk_o_o_office_ui_sk	450DDB8F-B6FD-4184-A8AA-0368B8242B36
++g_f_registry_lang__share_registry_res_sk_o_o_sk	8EAE0290-32E7-4E6A-9F48-06EFC2DB8BE7
++g_f_registry_lang__share_registry_res_sl_o_o_office_sl	7C7887FB-43FE-4836-89C8-6F05B5E5C2D2
++g_f_registry_lang__share_registry_res_sl_o_o_office_ui_sl	7A66219A-4772-4043-92C8-8AD7D34E23CF
++g_f_registry_lang__share_registry_res_sl_o_o_sl	A2E7675B-E20A-4A37-BD52-6953C6928053
++g_f_registry_lang__share_registry_res_sv_o_o_office_sv	ABE9AB11-5155-4661-8ED0-CAF4589DAE97
++g_f_registry_lang__share_registry_res_sv_o_o_office_ui_sv	4C4758C0-3A74-4FB6-93E9-D88E7CC37544
++g_f_registry_lang__share_registry_res_sv_o_o_sv	D5736EFF-4940-4EB8-B092-C0F515F9E2B5
++g_f_registry_lang__share_registry_res_ta_in_o_o_office_ta_in	E0412112-7A07-403E-B663-024CB1C14585
++g_f_registry_lang__share_registry_res_ta_in_o_o_office_ui_ta_in	43DBCC58-485B-4F1C-BAEA-D16E9C34A55A
++g_f_registry_lang__share_registry_res_ta_in_o_o_ta_in	FBE76E08-ACBB-4D36-8155-6DD431ECE989
++g_f_registry_lang__share_registry_res_tr_o_o_office_tr	984B72DD-B091-44A5-9989-4ED96E3F42FB
++g_f_registry_lang__share_registry_res_tr_o_o_office_ui_tr	87D03C3E-5020-49FA-992F-DCA8CBEFFF02
++g_f_registry_lang__share_registry_res_tr_o_o_tr	3E512B94-FCCE-4D85-92D5-8979AB3995D4
++g_f_registry_lang__share_registry_res_vi_o_o_office_ui_vi	E6C99AD8-7A19-4B15-9448-9DC8EF0C9020
++g_f_registry_lang__share_registry_res_vi_o_o_office_vi	CAAB3E2D-E53E-4E1B-8FEA-99C3190AE195
++g_f_registry_lang__share_registry_res_vi_o_o_vi	A350B64C-E746-46B5-BC10-6638A186F303
++g_f_registry_lang__share_registry_res_xh_o_o_office_ui_xh	0B62DC74-8B5A-497C-9F75-9F2E1867EC59
++g_f_registry_lang__share_registry_res_xh_o_o_office_xh	02B933F8-4478-4A5C-8AC7-3DA3EE11A3CE
++g_f_registry_lang__share_registry_res_xh_o_o_xh	600664F4-9659-4CE4-A40D-1953C12E7796
++g_f_registry_lang__share_registry_res_zh_cn_o_o_office_ui_zh_cn	837512DA-4C0B-415D-B7D7-500436C8D355
++g_f_registry_lang__share_registry_res_zh_cn_o_o_office_zh_cn	710195C7-57EA-4768-804C-2EB99D1314C4
++g_f_registry_lang__share_registry_res_zh_cn_o_o_zh_cn	48509A74-541F-47A6-AF4D-FC7E6FEDBC6B
++g_f_registry_lang__share_registry_res_zh_tw_o_o_office_ui_zh_tw	6E5B6797-694B-4C36-BC44-92B2CEBAEBB0
++g_f_registry_lang__share_registry_res_zh_tw_o_o_office_zh_tw	1A556B6B-4F3E-42DA-A739-6F824B047D3C
++g_f_registry_lang__share_registry_res_zh_tw_o_o_zh_tw	67A414BE-E75A-465D-9079-5F625A600050
++g_f_registry_lang__share_registry_res_zu_o_o_office_ui_zu	BBE52EA3-3016-4B22-9075-5BA17BC6D027
++g_f_registry_lang__share_registry_res_zu_o_o_office_zu	75E5235D-7218-46CF-8A32-92560316DD1B
++g_f_registry_lang__share_registry_res_zu_o_o_zu	A0AD8986-CFEE-4DD3-8C37-80C4907A6D91
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_af	F96CAF1C-8FEC-4B02-90AC-7D7C1DB23884
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_ar	10B44675-A5D1-4B9F-A733-D64ABD63974D
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_be_by	6226593D-EB25-4A12-AC10-2BD3D7AA296D
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_bg	80A24430-EC80-4B8E-A3FE-F3A7D5BD164C
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_bn_in	C7A91775-4368-4C88-852B-87A4CF7C0E64
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_br	3EC33CD3-61B0-484D-857C-3F08E6584626
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_ca	8465FE1D-AC33-48C6-B631-031B21AF8F11
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_cs	C4873B2B-4EFD-4A92-90A9-EE50EC8BEE0A
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_cy	7BA6B32E-87CE-41FD-A1A8-F00F5739A76B
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_da	D26A17CF-A762-4DCD-BA68-80A1B90D6F2F
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_de	107B790F-616B-4F0D-AEA7-9348C04F0273
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_el	02C68302-1FE6-4A6C-8FCF-921C0B880100
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_en_gb	740FF991-F734-4798-AC51-9F58C48A0D9E
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_en_us	FC003B6B-8DD5-472D-9F50-DA4393919861
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_es	D2E4C983-9C00-4C63-9D49-2F951B3DA4AE
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_et	62C6083B-D0E2-431E-A734-95E9536C4C64
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_fi	5F5560F8-51C1-47A8-80BD-B0EDD98DCEF4
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_fr	E1CE6874-1F6C-474D-812D-E71FE7142F54
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_gu_in	6BC7DD06-0346-424E-8D81-A9DB17F19746
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_he	2E69C6D2-90C6-4F4F-BEEA-255F986019E0
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_hi_in	082044A3-D974-4B93-9C4A-192A448447F4
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_hr	0DAB3768-14A5-4F60-A943-B73D6E8CA8F1
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_hu	1B796951-D81E-4D37-824C-F364D248FBC5
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_it	1CB497BA-1D50-4D55-B916-54953FDE8AE9
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_ja	164BA0F4-A411-4A1D-ACC2-71D2C2550422
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_km	D29D2F93-00D4-402A-8316-E26970D77B6C
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_ko	EE3057B9-26E1-438A-B8E7-61732DED4E9A
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_lt	9BF5F02D-8875-4091-8096-93ABBF65D958
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_lv	8C1C9B4E-2555-421B-A1FC-9F4E111DBBC0
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_mk	6A2C0815-F43F-45AC-9EE7-53BC9B5D7933
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_mr_in	03D86A52-49E4-46E2-9EC4-DFEFC562CCAA
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_nb	B8F01867-1709-4CC1-A62A-19B6DD30D942
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_nl	DEFB5AA0-4318-4874-8669-4261F935D2E7
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_nn	11A48373-D807-41BC-B99C-6050A2425F59
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_pa_in	E17F558E-CAFD-41AC-866D-84D1254F303C
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_pl	31A95553-39FD-41A3-B2CD-C07D3A387194
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_pt	9531C69D-B7AD-492B-A3EE-18F8D5114B99
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_pt_br	38E5EFC4-0703-4554-AB45-EEF272855ED0
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_ru	85CC30AD-E70F-4979-BF1C-E9E57E972D74
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_rw	25B2A5BF-22C2-4F0C-98B4-CFAF69C3E946
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_sk	D3C8473D-96EC-4D7A-864D-F1771F62C76D
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_sl	DE352E52-609D-46E9-A6B5-EEC38A41D0DB
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_sv	074F61EF-0B3E-43C6-AE5B-CBA7C29757C7
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_ta_in	2C17D319-8BC8-451F-8534-EAA1E51E9C84
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_tr	CC4F7E7D-B13B-4632-A943-AF4B050DCA31
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_vi	9042E644-07CA-48FB-93AA-C5B640222A93
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_xh	786058FE-C778-483F-B628-E9766F870657
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_zh_cn	5076118F-7FB2-4C37-9264-3B776CFA24F0
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_zh_tw	53DCCDCE-0C9C-4586-946B-6864A2D64DC2
++g_f_registry_spool_langpack_lang__share_registry_modules_o_o_setup_zu	766A8002-1DB7-42A6-9B67-644C0493144C
++g_f_registry_spool_oo_cm_base_xcu__share_registry_modules_o_o_office_common	099AF001-7C5C-46F4-A96F-647DA04A1B32
++g_f_registry_spool_oo_cm_calc_xcu__share_registry_modules_o_o_office_common	CC1A3EF0-4DE0-4FB2-B0EE-CC90956E9558
++g_f_registry_spool_oo_cm_cjk_xcu__share_registry_modules_o_o_office_cm_ja	A37A080D-F0D0-4890-A08C-1E6CF4C96C26
++g_f_registry_spool_oo_cm_cjk_xcu__share_registry_modules_o_o_office_cm_ko	F626A5F8-19B4-4039-9B18-19CE3BBFAAFF
++g_f_registry_spool_oo_cm_cjk_xcu__share_registry_modules_o_o_office_cm_zh_cn	5AD45F9A-1358-4364-909E-4C87ADB5B951
++g_f_registry_spool_oo_cm_cjk_xcu__share_registry_modules_o_o_office_cm_zh_tw	A577D8B7-6729-496C-916F-6468D08DB687
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_ar	201A7263-6BC2-4405-868B-92F2D7737B21
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_gu_in	63479902-3A08-4D01-84EA-D947EB0B3C12
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_he	30F3DB9C-FDC6-4D1C-9F24-E733F804383C
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_hi_in	78B7D509-58D0-42A6-BB2D-D3110A07D46B
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_km	2996EDB9-7F39-4D8C-8A05-BA16DEC8A93B
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_pa_in	AD84245C-26FB-40C8-9DDB-C802BE62AD59
++g_f_registry_spool_oo_cm_ctl_xcu__share_registry_modules_o_o_office_cm_ta_in	3DA79EAB-7E94-44BB-9E88-C95BA7C848BB
++g_f_registry_spool_oo_cm_dicooo_xcu__share_registry_modules_o_o_office_common	0497107B-00C5-4E5D-BCD4-71337407CD5C
++g_f_registry_spool_oo_cm_draw_xcu__share_registry_modules_o_o_office_common	D9D1B86B-3816-48B6-8629-589E3AFADD8E
++g_f_registry_spool_oo_cm_impress_xcu__share_registry_modules_o_o_office_common	17CF2871-5057-4092-836C-5158DE3A4846
++g_f_registry_spool_oo_cm_korean_xcu__share_registry_modules_o_o_office_cm_ko	CAD0312C-639D-41C4-AA58-D08EE1CCE81E
++g_f_registry_spool_oo_cm_math_xcu__share_registry_modules_o_o_office_common	85236973-CF9C-46C5-9D04-4E5E38B1D4B8
++g_f_registry_spool_oo_cm_system_xcu__share_registry_modules_o_o_office_common	F95F3BA8-6787-46CB-8D6A-188EC0A255A9
++g_f_registry_spool_oo_cm_writer_xcu__share_registry_modules_o_o_office_common	9BD9FF71-796C-4FB8-9568-EC5C0128C7D2
++g_f_registry_spool_oo_embedding_report_xcu__share_registry_modules_o_o_office_embedding	99AAA4A3-1B6D-4003-B499-C8B6DCF75FE7
++g_f_registry_spool_oo_office_embedding_calc_xcu__share_registry_modules_o_o_office_embedding	1D2E51F3-EA0F-4885-BD60-4A182791898B
++g_f_registry_spool_oo_office_embedding_chart_xcu__share_registry_modules_o_o_office_embedding	BB1A9273-64C0-4D7C-AE96-3C429505077B
++g_f_registry_spool_oo_office_embedding_draw_xcu__share_registry_modules_o_o_office_embedding	6F0A3DA8-E6DF-4EFE-AACD-51D6079FBE1F
++g_f_registry_spool_oo_office_embedding_impress_xcu__share_registry_modules_o_o_office_embedding	BFC2AC40-0303-4658-9DF4-64D5DAA272BB
++g_f_registry_spool_oo_office_embedding_math_xcu__share_registry_modules_o_o_office_embedding	8BE3C7B3-AC16-4656-A1C8-220346AAB430
++g_f_registry_spool_oo_office_embedding_writer_xcu__share_registry_modules_o_o_office_embedding	0F52CED7-CF2F-4255-8BD9-C87EDC528864
++g_f_registry_spool_oo_office_writer_pymailmerge_xcu__share_registry_modules_o_o_office_writer	76F4F15E-A3FA-466B-AC18-1679EF0CBE79
++g_f_registry_spool_oo_scripting_python_xcu__share_registry_modules_o_o_office_scripting	D65210C2-1E3C-40A1-A7F9-C53469C94763
++g_f_registry_spool_oo_setup_base_xcu__share_registry_modules_o_o_setup	5D2EED9C-A075-4380-8E72-8F3E5838FF9C
++g_f_registry_spool_oo_setup_calc_xcu__share_registry_modules_o_o_setup	C7688589-4A61-42C5-B7D0-827EC79F4439
++g_f_registry_spool_oo_setup_draw_xcu__share_registry_modules_o_o_setup	CAF13824-FD81-44F4-BC84-9A97921B92F1
++g_f_registry_spool_oo_setup_impress_xcu__share_registry_modules_o_o_setup	F9203047-0A17-4D6F-B14C-4583017D969E
++g_f_registry_spool_oo_setup_math_xcu__share_registry_modules_o_o_setup	3B0757E0-6AB5-4364-8D30-760600366A10
++g_f_registry_spool_oo_setup_report_xcu__share_registry_modules_o_o_setup	E585DC4A-BA57-4C1B-935D-70461ECEC952
++g_f_registry_spool_oo_setup_writer_xcu__share_registry_modules_o_o_setup	0C9A1C35-47FC-4470-B24C-D7B6E0023FF9
++g_f_registry_spool_oo_td_base_filters_xcu__share_registry_modules_o_o_td_filter	0DC02133-D58F-4BA5-8816-4DDD6481D846
++g_f_registry_spool_oo_td_base_others_xcu__share_registry_modules_o_o_td_misc	5A0B7D81-637E-43CB-8D0F-F44367836BC2
++g_f_registry_spool_oo_td_base_types_xcu__share_registry_modules_o_o_td_types	7927526E-86F1-49A7-9341-82E6935E4815
++g_f_registry_spool_oo_td_calc_filters_xcu__share_registry_modules_o_o_td_filter	3610B4B6-A6D7-48D1-81E2-8E74A24B2CB5
++g_f_registry_spool_oo_td_calc_types_xcu__share_registry_modules_o_o_td_types	9FF13ECA-1C81-4E79-8831-023B10D3FF4B
++g_f_registry_spool_oo_td_calc_uisort_xcu__share_registry_modules_o_o_td_uisort	F820C8B8-80C7-4040-9D3B-16C17FAB3749
++g_f_registry_spool_oo_td_chart_filters_xcu__share_registry_modules_o_o_td_filter	3B7374CF-75CC-474B-A610-3060B1064FC2
++g_f_registry_spool_oo_td_chart_others_xcu__share_registry_modules_o_o_td_misc	544090D6-F429-439A-B513-41C69C413109
++g_f_registry_spool_oo_td_chart_types_xcu__share_registry_modules_o_o_td_types	534D083A-5EBC-4FB1-8AD7-C07331612CD8
++g_f_registry_spool_oo_td_database_filters_xcu__share_registry_modules_o_o_td_filter	EB82111E-D123-4FC0-AFC0-A6843FD45C83
++g_f_registry_spool_oo_td_database_others_xcu__share_registry_modules_o_o_td_misc	4465C1CE-8FF6-49C4-87C5-C2CB4C041A68
++g_f_registry_spool_oo_td_database_types_xcu__share_registry_modules_o_o_td_types	4FB405C7-FCA0-48B5-AF9D-6AFFACA44C0B
++g_f_registry_spool_oo_td_draw_filters_xcu__share_registry_modules_o_o_td_filter	C3358C71-88FC-4D73-B623-5A548FD84472
++g_f_registry_spool_oo_td_draw_types_xcu__share_registry_modules_o_o_td_types	8509661D-FA0D-4693-9068-A2EEC1CEDFE7
++g_f_registry_spool_oo_td_draw_uisort_xcu__share_registry_modules_o_o_td_uisort	142F3CD7-E08F-41CE-B62E-06539A7F732D
++g_f_registry_spool_oo_td_drawgraphics_filters_xcu__share_registry_modules_o_o_td_filter	AFC3C8B4-DDFE-486C-9462-A13095B59C4E
++g_f_registry_spool_oo_td_drawgraphics_types_xcu__share_registry_modules_o_o_td_types	1471C8E3-29A6-4822-80E5-261116668585
++g_f_registry_spool_oo_td_global_filters_xcu__share_registry_modules_o_o_td_filter	E803086E-4115-4447-9693-B9388AA38385
++g_f_registry_spool_oo_td_global_types_xcu__share_registry_modules_o_o_td_types	0E2CAEC8-861C-4F16-855A-F5FEC2E8B3EA
++g_f_registry_spool_oo_td_impress_filters_xcu__share_registry_modules_o_o_td_filter	2C9B0FE6-1AC4-4CEE-98F1-D2C4AC930068
++g_f_registry_spool_oo_td_impress_types_xcu__share_registry_modules_o_o_td_types	388BE4EC-768C-42F7-B196-90737AE40A55
++g_f_registry_spool_oo_td_impress_uisort_xcu__share_registry_modules_o_o_td_uisort	A5739D78-F5CB-4446-B055-746C064ACE9B
++g_f_registry_spool_oo_td_impressgraphics_filters_xcu__share_registry_modules_o_o_td_filter	A1940CC6-F8F7-484F-9FCC-7496FC3B6B4A
++g_f_registry_spool_oo_td_impressgraphics_types_xcu__share_registry_modules_o_o_td_types	81A3E5DA-BCA1-4983-9385-5BB082852FE3
++g_f_registry_spool_oo_td_internalgraphics_filters_xcu__share_registry_modules_o_o_td_graphicfilter	69BA73EC-4C45-4825-8339-A72361DDBF68
++g_f_registry_spool_oo_td_internalgraphics_types_xcu__share_registry_modules_o_o_td_types	C04291FE-A955-4ACA-A42C-F87631233693
++g_f_registry_spool_oo_td_math_filters_xcu__share_registry_modules_o_o_td_filter	59AF482B-8CEA-4440-A59E-19D72178EE34
++g_f_registry_spool_oo_td_math_types_xcu__share_registry_modules_o_o_td_types	FB8170B7-3B14-434E-B6DF-B7E71303937E
++g_f_registry_spool_oo_td_math_uisort_xcu__share_registry_modules_o_o_td_uisort	E7D087F7-85D7-441C-8CCF-455D01746B27
++g_f_registry_spool_oo_td_palm_filters_xcu__share_registry_modules_o_o_td_filter	81B5E1A0-B2E1-4D94-A487-F8F88361E887
++g_f_registry_spool_oo_td_palm_types_xcu__share_registry_modules_o_o_td_types	308B5E18-2DFD-4F5B-80CE-FAB72FBD8010
++g_f_registry_spool_oo_td_pocketexcel_filters_xcu__share_registry_modules_o_o_td_filter	91B768F1-28B0-4BE8-B695-E1EE7693C87E
++g_f_registry_spool_oo_td_pocketexcel_types_xcu__share_registry_modules_o_o_td_types	05E38170-1DCF-4A9D-984C-7B00F4B2A878
++g_f_registry_spool_oo_td_pocketword_filters_xcu__share_registry_modules_o_o_td_filter	26CBAB37-B4D9-4362-BCC0-4942C8E35049
++g_f_registry_spool_oo_td_pocketword_types_xcu__share_registry_modules_o_o_td_types	93145135-5678-44B2-90A6-DA00F52281C0
++g_f_registry_spool_oo_td_uisort_writer_xcu__share_registry_modules_o_o_td_uisort	F334EBF4-4DD8-4662-B0A9-385B99221DE6
++g_f_registry_spool_oo_td_web_filters_xcu__share_registry_modules_o_o_td_filter	92E3612E-6E8D-4E5D-94B9-7C2D12DC3D13
++g_f_registry_spool_oo_td_web_types_xcu__share_registry_modules_o_o_td_types	578F68F4-D287-4EEA-8663-1CBCDD2EC362
++g_f_registry_spool_oo_td_writer_filters_xcu__share_registry_modules_o_o_td_filter	80277760-A6BF-4B41-80F2-F493DF6B9B03
++g_f_registry_spool_oo_td_writer_types_xcu__share_registry_modules_o_o_td_types	E57DE5A1-B4BF-4F2B-A55C-B9620B394BD8
++g_f_registry_spool_oo_td_xslt_filters_xcu__share_registry_modules_o_o_td_filter	2DC2E243-0D48-4C49-B21E-AD27DA040370
++g_f_registry_spool_oo_td_xslt_types_xcu__share_registry_modules_o_o_td_types	DF89BF68-9D6E-4EAC-A939-03E899E1DFE9
++g_f_registry_spool_oo_writer_cjk_xcu__share_registry_modules_o_o_office_writer_ja	3A4ACE0A-A91C-424D-AFDD-CCC7B1895343
++g_f_registry_spool_oo_writer_cjk_xcu__share_registry_modules_o_o_office_writer_ko	FC99C273-DEF5-41E1-B9DE-F23127310598
++g_f_registry_spool_oo_writer_cjk_xcu__share_registry_modules_o_o_office_writer_zh_cn	D3F4806E-D374-446D-9014-ADD6174D51CA
++g_f_registry_spool_oo_writer_cjk_xcu__share_registry_modules_o_o_office_writer_zh_tw	2FDE436F-D7EB-4101-B4FA-978DF92A04B2
++g_f_res_abp__p_resource_af	8C61A329-0E8F-48D7-86CE-B67595F790C2
++g_f_res_abp__p_resource_ar	62696F4A-AB7A-4362-9BDA-6A42E98DE0F7
++g_f_res_abp__p_resource_be_by	557DD7B1-53BD-489D-89FA-E22FB46F8108
++g_f_res_abp__p_resource_bg	92C25FD0-135D-4A15-84DE-1724928BFB01
++g_f_res_abp__p_resource_bn_in	8983125F-76D4-4DAB-8888-AC3E5AF3FC27
++g_f_res_abp__p_resource_br	2B480990-A434-4741-A34A-13FFBBCFEC4A
++g_f_res_abp__p_resource_ca	E4F300A9-7978-45F9-9D5D-41BA07AA6FFB
++g_f_res_abp__p_resource_cs	8417016C-51CF-4704-BC90-73BA575E55F0
++g_f_res_abp__p_resource_cy	14D521C1-54C3-47A5-8D16-4313BB653DD7
++g_f_res_abp__p_resource_da	AE685DA7-40B1-4AD3-A1E3-71D69C93C085
++g_f_res_abp__p_resource_de	1AE83B38-A280-4B8B-915C-5EC7BEB2724B
++g_f_res_abp__p_resource_el	2076720A-F0D3-448C-8749-7F1DACD2D5BA
++g_f_res_abp__p_resource_en_gb	69385C0D-A6A0-4DF5-814B-47790A42A92F
++g_f_res_abp__p_resource_en_us	8DA34DD2-2540-4394-BF73-77138CD10DC3
++g_f_res_abp__p_resource_es	D39931EF-0708-4512-AF7B-07AF8069CF21
++g_f_res_abp__p_resource_et	54745C3C-B3B5-4394-BB6F-3C80E271575B
++g_f_res_abp__p_resource_fi	7BFEE6C7-4BC0-4AEF-8B5D-97A060C83A1C
++g_f_res_abp__p_resource_fr	033F1362-601D-4F5D-AB66-8B78B6A15B53
++g_f_res_abp__p_resource_gu_in	06529DE8-9715-45C2-BE6A-AF05F56778A5
++g_f_res_abp__p_resource_he	9BB963B1-C848-45F2-A095-CE8425F9CE9E
++g_f_res_abp__p_resource_hi_in	03011614-B336-4B1E-A581-5CBBB409E0AD
++g_f_res_abp__p_resource_hr	69F2537A-239F-4AE9-85B6-DEF6429DCFE4
++g_f_res_abp__p_resource_hu	9EAB0E5A-8D2B-4B7A-A497-911922DEEE9B
++g_f_res_abp__p_resource_it	BAA56E02-8DDC-4E7B-840B-DB00351D511D
++g_f_res_abp__p_resource_ja	FAD638BB-402D-4596-85AB-F4AD1A758508
++g_f_res_abp__p_resource_km	1020E8A7-DB0A-4A54-8A22-D1A5B3F07AE1
++g_f_res_abp__p_resource_ko	92E4E6EF-9105-45F6-B9B1-C382F1C70D13
++g_f_res_abp__p_resource_lt	756B7172-F33A-4D9C-A66E-11BC17A3E450
++g_f_res_abp__p_resource_lv	512F70E9-311E-48F4-AD39-A100FC5C6D51
++g_f_res_abp__p_resource_mk	B91DF860-78F6-425F-966D-A3067E771812
++g_f_res_abp__p_resource_mr_in	A73F3628-6E64-444E-8B51-C1129D8A6D26
++g_f_res_abp__p_resource_nb	5050EA48-8EBB-4723-8872-B2D4916DA201
++g_f_res_abp__p_resource_nl	27770D29-6FA2-43F6-BB6A-69BE676B5235
++g_f_res_abp__p_resource_nn	A558F2B1-E69B-453E-BB98-9D69C5BD19CC
++g_f_res_abp__p_resource_pa_in	2AE43845-7D11-4B80-AD67-8481B3AB3F59
++g_f_res_abp__p_resource_pl	D6B9FFC3-B99F-40AE-8C69-7AB7F50D5ED2
++g_f_res_abp__p_resource_pt	66339BB1-0770-46D5-B238-3B3147755993
++g_f_res_abp__p_resource_pt_br	424080C8-6C9A-45FA-B6F9-DB7080A5D70A
++g_f_res_abp__p_resource_ru	94BA20CD-CAB4-442B-A152-85607D885516
++g_f_res_abp__p_resource_rw	882E7EC3-8BD4-4A71-93CB-6D76B6F766BC
++g_f_res_abp__p_resource_sk	505D1506-A40A-4194-B8A6-070277A1E69A
++g_f_res_abp__p_resource_sl	695BAF43-123D-42B6-9C66-7AEB7C435786
++g_f_res_abp__p_resource_sv	20B58649-72D3-4D37-B53D-5E7EB641309D
++g_f_res_abp__p_resource_ta_in	C0B17510-CBE1-486C-B2DC-45CD4CE6F719
++g_f_res_abp__p_resource_tr	69D92AC8-8537-46E8-A286-4BF9C3507698
++g_f_res_abp__p_resource_vi	24BDD94B-1D23-42AE-8817-DECAB90310DF
++g_f_res_abp__p_resource_xh	F4D4C9DA-2F22-4BAC-BC28-171E2E85DB32
++g_f_res_abp__p_resource_zh_cn	2801F037-238B-4C3F-963E-DACCB820210E
++g_f_res_abp__p_resource_zh_tw	ACC0D448-256A-4B56-9838-AFD816C37C30
++g_f_res_abp__p_resource_zu	7D0B604B-6B2B-419A-9497-1864A1D46655
++g_f_res_acc__p_resource_af	C7A08E21-C769-4D12-9A59-90523C37073E
++g_f_res_acc__p_resource_ar	1D67DF13-CEE1-4BD6-8A45-5B5101BB7C0A
++g_f_res_acc__p_resource_be_by	8693AE16-78C4-4E34-A18F-FDE9F484CE24
++g_f_res_acc__p_resource_bg	3B22AF81-DD0D-4BDF-8A56-96F6AF5E97C1
++g_f_res_acc__p_resource_bn_in	C042008C-A6A6-40E6-9021-CBB547366F68
++g_f_res_acc__p_resource_br	7CA01BBB-F3A5-4515-A8BF-5CEA392F5454
++g_f_res_acc__p_resource_ca	B75489C5-5956-490C-84EC-D250F750FF85
++g_f_res_acc__p_resource_cs	0128FE66-605E-46A9-9B9F-8A41AFF79CF1
++g_f_res_acc__p_resource_cy	2931C4D7-B979-475F-A65D-36A6D985BB67
++g_f_res_acc__p_resource_da	D3D0B9A0-8C77-49D3-84BC-E6D7E1E4DC8A
++g_f_res_acc__p_resource_de	693A0C30-2A4D-47D6-B434-D2A33874CA12
++g_f_res_acc__p_resource_el	12D99C5A-4978-41D6-8645-8B9B8234A5A8
++g_f_res_acc__p_resource_en_gb	FFADB505-420D-46EF-8702-CF9A08004EA4
++g_f_res_acc__p_resource_en_us	1E80FCAB-FAC5-4D9A-832B-5799B5B0FCD5
++g_f_res_acc__p_resource_es	4B2D6DAC-9E30-46C6-83B3-E7B354A9E34D
++g_f_res_acc__p_resource_et	6D96FD1F-C2D4-4A06-8B9D-B6F1CC835DE2
++g_f_res_acc__p_resource_fi	1F074F29-2895-43B6-BC29-E442AD03B14D
++g_f_res_acc__p_resource_fr	FB01511C-237B-422F-B532-4383276DC79F
++g_f_res_acc__p_resource_gu_in	FB45425A-1202-4931-8AFE-47D6B0BC1F26
++g_f_res_acc__p_resource_he	E4B61ABE-38D5-426A-87B3-2A469C74742D
++g_f_res_acc__p_resource_hi_in	06DC2039-2461-4053-9336-B88A3560DC98
++g_f_res_acc__p_resource_hr	C80412FF-6EB7-40BC-B58E-0484E283ACA3
++g_f_res_acc__p_resource_hu	54AE7895-DEA3-42DC-8DDE-86B565C4B30A
++g_f_res_acc__p_resource_it	8F74B710-7311-4204-BE59-2E7B2BD5623C
++g_f_res_acc__p_resource_ja	61F78FD8-A65C-4A97-BD57-FEE513036200
++g_f_res_acc__p_resource_km	A1C292CD-1AFA-47CC-A9D4-C666EA147495
++g_f_res_acc__p_resource_ko	24A5FF2E-8B3B-48FC-A083-BBDED2FF5B69
++g_f_res_acc__p_resource_lt	C3C28F3B-69A2-46CD-B03D-3C840D98E1CB
++g_f_res_acc__p_resource_lv	CDE6BC39-9A80-4B15-BFDF-778A06352891
++g_f_res_acc__p_resource_mk	47D8D6F3-DACF-4AD2-AB81-8A83C47F8856
++g_f_res_acc__p_resource_mr_in	0B1BD14A-8D85-4E99-82CB-45479F141D16
++g_f_res_acc__p_resource_nb	2914DEB7-6180-418F-BC75-E051E690BFCF
++g_f_res_acc__p_resource_nl	14BBC716-E271-4B92-84D5-8DCEA217EEEF
++g_f_res_acc__p_resource_nn	D3FD4114-7DB8-44DA-9BBF-F8EFE15E6454
++g_f_res_acc__p_resource_pa_in	166E05D6-9C0F-44BC-A655-0596BDC81953
++g_f_res_acc__p_resource_pl	1CB07403-04DC-4191-BBBB-4DCFF0356BAB
++g_f_res_acc__p_resource_pt	1B38D81C-574C-48D3-8FBC-B95155B36836
++g_f_res_acc__p_resource_pt_br	9506FFA1-32BB-4965-9724-1CF90254654A
++g_f_res_acc__p_resource_ru	66907DC9-7127-4226-8273-C7984C9F41B5
++g_f_res_acc__p_resource_rw	58AF051E-9ECB-496A-8FBD-E12C8A07733B
++g_f_res_acc__p_resource_sk	93529B49-FC39-42F6-9161-D4F75424F6B9
++g_f_res_acc__p_resource_sl	7BA232A8-7CB4-4214-A317-DE5D51336621
++g_f_res_acc__p_resource_sv	011DEE7A-B7C2-4CF2-A648-E404E280F76A
++g_f_res_acc__p_resource_ta_in	A22FFB97-6CC2-49E4-BD23-FB5C57B649EE
++g_f_res_acc__p_resource_tr	98735602-C417-4900-BB15-FBDD660EDBF0
++g_f_res_acc__p_resource_vi	B1FCA930-807E-4878-B31F-764576FF0049
++g_f_res_acc__p_resource_xh	63480A07-1731-4265-9019-AB35A121864F
++g_f_res_acc__p_resource_zh_cn	C932669C-9490-4E2D-85FE-8491C557F694
++g_f_res_acc__p_resource_zh_tw	22794584-AF32-4D48-ACAB-EFF8ACCE5947
++g_f_res_acc__p_resource_zu	3F41D9BE-2282-4109-8677-C458DC7D8D04
++g_f_res_analysis__p_resource_af	F78DB6F7-75F9-4FE9-9D19-3AC132A9BCAF
++g_f_res_analysis__p_resource_ar	A0453651-DE7F-4D52-BBC5-747A93E6E1B6
++g_f_res_analysis__p_resource_be_by	82D446BE-9B1F-4358-8BB5-F1471AF56846
++g_f_res_analysis__p_resource_bg	E950EC07-6E8C-4642-8FE0-0BB6713C13CB
++g_f_res_analysis__p_resource_bn_in	E4A9C0E8-851E-4657-85A9-45BA11B33581
++g_f_res_analysis__p_resource_br	87C27C0A-7D4E-4FF1-9D11-5BF29DBFAF21
++g_f_res_analysis__p_resource_ca	EB085F06-2437-4611-8AF4-26058FB0C3BF
++g_f_res_analysis__p_resource_cs	BFFE72DB-9EDF-4369-9AFB-8FC0EC654A2C
++g_f_res_analysis__p_resource_cy	80991C2E-3F51-49B0-A9FE-0C0A2A7C793B
++g_f_res_analysis__p_resource_da	9DA87EF4-67A9-420A-99F6-434EB495169F
++g_f_res_analysis__p_resource_de	DBEE9A7C-FF39-4D32-97E6-AE76449E429D
++g_f_res_analysis__p_resource_el	6CE53505-CFBD-49E1-9561-8CF0BA1652F6
++g_f_res_analysis__p_resource_en_gb	DD1FC7D3-FD14-4682-B89E-47741B936CFC
++g_f_res_analysis__p_resource_en_us	322511E9-B1A5-4006-B5E5-2948A51F2B89
++g_f_res_analysis__p_resource_es	32142883-E492-42B3-9980-39EE8C497A2D
++g_f_res_analysis__p_resource_et	01593595-7519-4C10-AE12-33677B044D04
++g_f_res_analysis__p_resource_fi	59815874-3F74-46BF-9D56-1D711D3487C7
++g_f_res_analysis__p_resource_fr	A4FB9F16-CA92-4D44-B98E-B7449FEA0B50
++g_f_res_analysis__p_resource_gu_in	2532D1FD-E67E-44FA-811A-C70F5DCA65E3
++g_f_res_analysis__p_resource_he	8A30203C-224B-4473-AFD0-36E0C0A811DE
++g_f_res_analysis__p_resource_hi_in	1CB5FA7D-E835-4C05-A818-B2FF61E8BF3B
++g_f_res_analysis__p_resource_hr	2EA14A37-55E4-47CB-8029-09DB998A98CC
++g_f_res_analysis__p_resource_hu	F698908C-600A-4407-9497-97237F3A97C2
++g_f_res_analysis__p_resource_it	4FCF2D95-8F08-4652-8AD7-EB3851ACACF9
++g_f_res_analysis__p_resource_ja	B3E330E0-DB87-449C-9128-D4037B393D38
++g_f_res_analysis__p_resource_km	D4166A0C-9095-43BD-8185-861A3994A2F2
++g_f_res_analysis__p_resource_ko	03D96362-3726-4E21-A9AA-A3CBE9DD86D5
++g_f_res_analysis__p_resource_lt	F8A83190-C4F7-4C83-B9C9-F60153241A53
++g_f_res_analysis__p_resource_lv	41D2B612-EA4E-411E-8901-875CA3F06FE2
++g_f_res_analysis__p_resource_mk	DDC4C1F0-C254-4CCC-B6F7-CD64C47025F9
++g_f_res_analysis__p_resource_mr_in	42489180-F4B7-490C-885D-CDD5A24F3468
++g_f_res_analysis__p_resource_nb	6EDC76C8-971C-49D4-9C05-112CA4792F2F
++g_f_res_analysis__p_resource_nl	73ADBCF2-B924-4AF4-A04F-1914CB23D344
++g_f_res_analysis__p_resource_nn	BF2B3B97-DC12-4129-8EAD-524F4D7146D6
++g_f_res_analysis__p_resource_pa_in	0BECBAAE-3150-4089-8DFD-79AA4E88FB45
++g_f_res_analysis__p_resource_pl	77C8DE3C-312C-4681-8DCB-408938D92087
++g_f_res_analysis__p_resource_pt	39C603E9-C7AD-4FE0-B838-28265DFF8FC7
++g_f_res_analysis__p_resource_pt_br	12A1CA29-AC27-4DA3-8D02-4F1201209D43
++g_f_res_analysis__p_resource_ru	4DC5EDBE-D71F-456B-AF85-B786AEDA2013
++g_f_res_analysis__p_resource_rw	60898085-2521-48BF-91D8-FDDF76F60B6D
++g_f_res_analysis__p_resource_sk	D1CD5B47-5A63-4932-A8EF-4F9BE3A7D4C6
++g_f_res_analysis__p_resource_sl	175AD40D-5B0D-450C-9D30-05CBC93B6E40
++g_f_res_analysis__p_resource_sv	273CF04C-EF19-4B37-BF7E-9B0B87DE16CF
++g_f_res_analysis__p_resource_ta_in	1F3C0628-0493-41B5-8477-783C2277C188
++g_f_res_analysis__p_resource_tr	BE85939D-C8C3-4FFA-A2BA-B6A3B0CBBBFC
++g_f_res_analysis__p_resource_vi	27CCB733-3AA0-4757-B027-46499C00AEFA
++g_f_res_analysis__p_resource_xh	25307936-CD30-447E-8361-FDC57DC7DF8E
++g_f_res_analysis__p_resource_zh_cn	273A12F4-BBC4-4B9A-ACC6-1340DAD9024C
++g_f_res_analysis__p_resource_zh_tw	1A5C3A6E-1122-4895-89DF-BC9E414FF236
++g_f_res_analysis__p_resource_zu	8602BD75-463D-4441-9F70-0C97191A6DBE
++g_f_res_avmedia__p_resource_af	DC425AAE-BADA-4D76-8879-6A0B04DB3EAF
++g_f_res_avmedia__p_resource_ar	0DF3D4C2-9A8C-440C-BFBC-BEB79726D40F
++g_f_res_avmedia__p_resource_be_by	7EE8A65F-E1DB-4FC9-95AE-A51D7F428F84
++g_f_res_avmedia__p_resource_bg	35CA44AF-0CD4-475B-9272-8EC7F699E916
++g_f_res_avmedia__p_resource_bn_in	0EC97F81-5F16-4F5D-A74B-24188232DAB8
++g_f_res_avmedia__p_resource_br	AE613F3D-0999-44F5-8C1B-514F663F75F0
++g_f_res_avmedia__p_resource_ca	E3C8F0BA-A12D-4A99-8728-219501C39A2D
++g_f_res_avmedia__p_resource_cs	2CD8AA11-A8D1-46E3-A75A-3C7E9A58826F
++g_f_res_avmedia__p_resource_cy	9B365624-F626-47A4-B174-F14ECF47444D
++g_f_res_avmedia__p_resource_da	ECED7DBD-8881-4C8F-B2BE-20038022EFA8
++g_f_res_avmedia__p_resource_de	4E3F8313-9899-4727-AE12-D95330384E3D
++g_f_res_avmedia__p_resource_el	A2C21CC1-6285-4F5F-838F-7D03FF7D79F5
++g_f_res_avmedia__p_resource_en_gb	F73F4FFE-1EFA-4DC6-B80E-B053CA2808F4
++g_f_res_avmedia__p_resource_en_us	F6441DB1-E743-451C-B8DA-CF6154EABF33
++g_f_res_avmedia__p_resource_es	D0C6EF4A-1CBF-4644-9B3F-36D2059678EB
++g_f_res_avmedia__p_resource_et	DB6A8D84-9CB6-4FA0-8873-EE104B8D4F45
++g_f_res_avmedia__p_resource_fi	F1A73213-F5C9-408E-8976-1C0E4D0F15AD
++g_f_res_avmedia__p_resource_fr	3FF8851B-A46E-4852-83E9-A37B8CD80EBA
++g_f_res_avmedia__p_resource_gu_in	45BC0BFD-5EE6-426A-B7B3-89DD29C7426D
++g_f_res_avmedia__p_resource_he	6C1CABAA-1B7B-4730-B414-714CCFD855E6
++g_f_res_avmedia__p_resource_hi_in	6A9DB83C-9874-421B-BE50-5D734C762B80
++g_f_res_avmedia__p_resource_hr	73A87326-5514-4A64-8698-74669FB60146
++g_f_res_avmedia__p_resource_hu	98183288-DD61-49DB-91A0-B223E8FD2D84
++g_f_res_avmedia__p_resource_it	F56B268E-0107-4026-9EC5-CA7F2DF4BFF1
++g_f_res_avmedia__p_resource_ja	FBB6A7C0-A46C-4EF5-B9D1-F05F4F199568
++g_f_res_avmedia__p_resource_km	98E0B984-B05C-4845-8744-BA0F9003537B
++g_f_res_avmedia__p_resource_ko	4AC5FDC1-E6B7-4F0A-B966-069F9C1BBF81
++g_f_res_avmedia__p_resource_lt	E702B452-F94D-4B8E-8A91-B46B9EFDCC3C
++g_f_res_avmedia__p_resource_lv	6063BB4D-825D-44C2-80EA-C8EB1E1C9CF4
++g_f_res_avmedia__p_resource_mk	5C7D850D-BE88-4CAF-9EEC-5D972B216EFC
++g_f_res_avmedia__p_resource_mr_in	50CC5BE7-7A5D-4EC0-8622-F68C24DF9339
++g_f_res_avmedia__p_resource_nb	304C11E7-B0FD-4710-B2E2-F5C171F93AC9
++g_f_res_avmedia__p_resource_nl	9CEB4223-A509-401D-A4F9-AC7FE12CFC0F
++g_f_res_avmedia__p_resource_nn	F45763AE-DE54-413E-805F-E2F7C234999A
++g_f_res_avmedia__p_resource_pa_in	EB3A62BF-3E58-4DF0-A120-925C85A5F435
++g_f_res_avmedia__p_resource_pl	642BE18D-A720-445F-8610-FFE917C8721A
++g_f_res_avmedia__p_resource_pt	44505476-8816-4559-B41D-9D2D2B590515
++g_f_res_avmedia__p_resource_pt_br	41764B60-3C45-4CDA-94DE-05A1C9534E55
++g_f_res_avmedia__p_resource_ru	4DD03342-81E9-4FCC-BA10-E42B3C3DD048
++g_f_res_avmedia__p_resource_rw	D7B7E1A4-719B-46DA-95DD-426185F0C69B
++g_f_res_avmedia__p_resource_sk	4D5FA020-60C1-4091-A76D-B54266CC6B1B
++g_f_res_avmedia__p_resource_sl	AC88524C-D4AD-48D6-A44F-F82547F3C064
++g_f_res_avmedia__p_resource_sv	5C90356A-DCAC-45CD-A0F3-ADE896D06757
++g_f_res_avmedia__p_resource_ta_in	E0A7E5F6-0956-481E-9992-8C3E5BB78CA1
++g_f_res_avmedia__p_resource_tr	CCEC74D0-A96B-41D1-8B5B-3F288BB38DC5
++g_f_res_avmedia__p_resource_vi	B16770CB-9358-49E6-9951-5A5E7E1BAB11
++g_f_res_avmedia__p_resource_xh	B75DFCC1-1B08-411A-B9BF-9BB3D1EDAD7C
++g_f_res_avmedia__p_resource_zh_cn	35174E26-A253-4EEA-96CE-27904D0C3A5A
++g_f_res_avmedia__p_resource_zh_tw	1077909D-E6A7-42FD-AEBB-C685543B57AD
++g_f_res_avmedia__p_resource_zu	E1146708-5936-4FBC-BA37-245C0A53A488
++g_f_res_basctl__p_resource_af	8E756DA4-F662-426F-BB79-DD66E3AE587D
++g_f_res_basctl__p_resource_ar	06177A71-4388-40AD-BD59-E71ACC378F93
++g_f_res_basctl__p_resource_be_by	A9860D66-CAB0-48C1-AF7B-B21D5BA118B7
++g_f_res_basctl__p_resource_bg	13E4A54B-0FDA-4E6F-B299-5DBB48FC18F7
++g_f_res_basctl__p_resource_bn_in	EF460907-83AF-4AED-B95C-9C1D778FC213
++g_f_res_basctl__p_resource_br	971655A7-70DF-4D62-B3FA-6413D5C85CCA
++g_f_res_basctl__p_resource_ca	FD920626-52F9-40CC-BF77-38719ECAB926
++g_f_res_basctl__p_resource_cs	323377CF-0C0A-46FC-96DA-04CAFF9B240C
++g_f_res_basctl__p_resource_cy	C60D78B1-DBF4-457A-ABC0-4CFCEE42DC11
++g_f_res_basctl__p_resource_da	CD1CE514-2BE9-4540-95C5-FE4FB3EE4DCC
++g_f_res_basctl__p_resource_de	03279698-4560-49DF-9C76-EC411264E64B
++g_f_res_basctl__p_resource_el	5FEA7B0D-B838-4CA3-B30D-513DD58BCCF0
++g_f_res_basctl__p_resource_en_gb	EAD8280B-A04A-45E5-914F-68A23BE3331B
++g_f_res_basctl__p_resource_en_us	F4E4D38B-49A7-4898-A049-188245FB0139
++g_f_res_basctl__p_resource_es	0A2B9829-E5B2-4512-9760-17CC6DB9CFF0
++g_f_res_basctl__p_resource_et	25EB8AFA-E46A-4EBF-9D09-62C7B5B78829
++g_f_res_basctl__p_resource_fi	571B367C-60AE-471A-A010-DEBE7B974A2A
++g_f_res_basctl__p_resource_fr	19C98744-7CDA-4089-B466-F51BE4D9FCC9
++g_f_res_basctl__p_resource_gu_in	1A233DB4-C397-4952-A1FD-DBCDA1F7FF9D
++g_f_res_basctl__p_resource_he	3CEBF8B2-6CD3-47D2-8580-9DB8BB1292B1
++g_f_res_basctl__p_resource_hi_in	B48E8AD7-B631-426D-93A8-843E72E58D4C
++g_f_res_basctl__p_resource_hr	6C66A977-E154-453C-9E2D-0FABB848710C
++g_f_res_basctl__p_resource_hu	3579411F-EE7C-417F-BE44-2706A4B75C46
++g_f_res_basctl__p_resource_it	728CEFEF-7D96-4D6A-9E71-D197AA2DD9F7
++g_f_res_basctl__p_resource_ja	BE183CDA-FE51-4133-AFB2-15ACA82CD45E
++g_f_res_basctl__p_resource_km	84527E67-D6AC-4AFF-B1A8-268408EF73A2
++g_f_res_basctl__p_resource_ko	51D4E98C-A726-4CB4-A690-D99CC075CBFD
++g_f_res_basctl__p_resource_lt	4B43B34B-12ED-47A1-90BF-D449889F93BD
++g_f_res_basctl__p_resource_lv	11CAA93F-2900-449F-93B1-039BB7D386F7
++g_f_res_basctl__p_resource_mk	B6057261-BB9D-4B9B-9672-064B4CB90073
++g_f_res_basctl__p_resource_mr_in	969F5429-6FA4-43C9-93E7-D365AEE1C9F9
++g_f_res_basctl__p_resource_nb	2DE609F4-9AB5-4CCF-8152-0545CEA70CB3
++g_f_res_basctl__p_resource_nl	A234F4A5-CF53-48A7-BA80-768671FEF16C
++g_f_res_basctl__p_resource_nn	47481EB3-0384-4EEC-8A56-B6663F516963
++g_f_res_basctl__p_resource_pa_in	236291CC-B52E-4A2E-9867-139044DF1EF9
++g_f_res_basctl__p_resource_pl	D3E7B873-788E-44A2-89C9-4B7632FB3678
++g_f_res_basctl__p_resource_pt	4BC4D2B0-9A0E-48EF-9AC5-FD09AF3F6506
++g_f_res_basctl__p_resource_pt_br	7BD71F44-2865-44E1-A099-EA33DFCEF349
++g_f_res_basctl__p_resource_ru	9C4F93BE-608C-412F-93C7-A4541F535246
++g_f_res_basctl__p_resource_rw	9B83CDD3-7555-44F8-BF48-76F5FC11D752
++g_f_res_basctl__p_resource_sk	8718A0EA-F868-4F63-9BE0-E563E36D926D
++g_f_res_basctl__p_resource_sl	FF777236-1D46-433D-9FF4-6CE1005D782A
++g_f_res_basctl__p_resource_sv	5F0B4E60-7975-4129-AE5A-CD4B4ACE8955
++g_f_res_basctl__p_resource_ta_in	F7DB5B10-56C9-4805-8A38-0654B16F9C48
++g_f_res_basctl__p_resource_tr	9100BE24-3607-4C08-AD84-656CB319F3BE
++g_f_res_basctl__p_resource_vi	2F7E39E8-0BB7-42F8-AE61-628857252B2F
++g_f_res_basctl__p_resource_xh	5F44A47A-EFC1-4C0E-B85C-6E9F79248B6D
++g_f_res_basctl__p_resource_zh_cn	9EBF2DA9-A526-4DD4-88E7-2FC560A2BAD1
++g_f_res_basctl__p_resource_zh_tw	1032E071-7041-4EA3-A51D-1DC43D21A1D6
++g_f_res_basctl__p_resource_zu	800B63DD-9207-4A2B-9516-8923D7B92C9C
++g_f_res_bf_frm__p_resource_af	3978CCD6-17A7-4790-B97F-F59110188673
++g_f_res_bf_frm__p_resource_ar	AAC84DD6-418E-4568-B819-5488D2437338
++g_f_res_bf_frm__p_resource_be_by	19B8CC05-8900-4E2B-8BBD-F6A33F3DAE11
++g_f_res_bf_frm__p_resource_bg	1688CDD2-9120-45E5-A03E-38FBA951D3B0
++g_f_res_bf_frm__p_resource_bn_in	29D78F8D-0B0F-4FD6-AD7D-5B9C435A50FC
++g_f_res_bf_frm__p_resource_br	3CB034DB-D38E-4F22-A10B-06394C344076
++g_f_res_bf_frm__p_resource_ca	6D491497-69EC-4ED7-BCB2-AAEB33BCFA55
++g_f_res_bf_frm__p_resource_cs	14AE6118-23B4-4C20-BE6E-4D7AA8FCD747
++g_f_res_bf_frm__p_resource_cy	983A0763-FF91-4CD8-BD37-61B9DA33A367
++g_f_res_bf_frm__p_resource_da	65D487D4-672C-4CF7-A23E-7F6164ABC68B
++g_f_res_bf_frm__p_resource_de	F34D02F7-1998-41F7-9B69-62967C726376
++g_f_res_bf_frm__p_resource_el	403DC843-2A85-4303-BAC9-48D33D6F9F5B
++g_f_res_bf_frm__p_resource_en_gb	1292E9B2-EA07-4E84-9841-9420E4088E59
++g_f_res_bf_frm__p_resource_en_us	6A6C6894-88B3-44AA-87EB-87AA46D790AA
++g_f_res_bf_frm__p_resource_es	7ABF706B-002B-45E7-B4F1-BD7A383ED64C
++g_f_res_bf_frm__p_resource_et	151653B3-9230-4EC0-93C1-4507975E6FEA
++g_f_res_bf_frm__p_resource_fi	14DDB4DD-DAC0-4807-8294-C2F447424181
++g_f_res_bf_frm__p_resource_fr	B5AF74AE-92C1-48D5-92C8-845FF57DC4E1
++g_f_res_bf_frm__p_resource_gu_in	E2335B1A-09CE-418C-8DD9-1A38685B52A4
++g_f_res_bf_frm__p_resource_he	C589171D-CFAB-47C3-846C-7C238CADBB8E
++g_f_res_bf_frm__p_resource_hi_in	28097C2D-C46D-4AAA-AFEE-F9CBF02E5D14
++g_f_res_bf_frm__p_resource_hr	B85D750F-CBF4-46CF-83DC-4A01601B20AB
++g_f_res_bf_frm__p_resource_hu	BAEE4D58-50CC-4D50-B129-230C0DC0F25A
++g_f_res_bf_frm__p_resource_it	78601DD7-C425-4922-9C34-8832E9193E77
++g_f_res_bf_frm__p_resource_ja	BDDF45BF-F438-49A6-B3F7-082FF4F10347
++g_f_res_bf_frm__p_resource_km	D7F22238-B290-4D73-9C59-E91578D29FE6
++g_f_res_bf_frm__p_resource_ko	4623F553-03DB-4790-B1DD-2065448360B6
++g_f_res_bf_frm__p_resource_lt	222F82C5-EC9B-4E19-B088-1386BE93563D
++g_f_res_bf_frm__p_resource_lv	4EC7901E-80B0-46EE-92FD-C746ACEDE891
++g_f_res_bf_frm__p_resource_mk	DB103420-F461-4840-82BD-3E204BCE7E8E
++g_f_res_bf_frm__p_resource_mr_in	103409F3-8A34-492B-82EE-824348D6B73F
++g_f_res_bf_frm__p_resource_nb	C512A8F7-5065-47FA-BE17-6D9850427F0F
++g_f_res_bf_frm__p_resource_nl	468E05E8-4686-41C0-B152-F5D600A1094E
++g_f_res_bf_frm__p_resource_nn	71245654-3C52-43D0-9FCF-4BF01640B920
++g_f_res_bf_frm__p_resource_pa_in	9FA180E9-3478-4EF1-A353-DFE2CC360C9D
++g_f_res_bf_frm__p_resource_pl	41057D6C-9685-43EE-A585-C50AC47C0C65
++g_f_res_bf_frm__p_resource_pt	4C9DCBB5-B5B4-49EA-863E-450C606F80F8
++g_f_res_bf_frm__p_resource_pt_br	DF4E0187-39A5-4374-B29B-D352187BDA55
++g_f_res_bf_frm__p_resource_ru	CF8D6173-7762-4CB6-830A-2C9C70B30DA4
++g_f_res_bf_frm__p_resource_rw	F07F90CA-1C97-4754-AEE6-76F1FDECC2D3
++g_f_res_bf_frm__p_resource_sk	88D12C36-CEF5-4496-93A4-8772D49F8411
++g_f_res_bf_frm__p_resource_sl	AF03B4CE-95FA-47AB-91CF-CC9911CF212D
++g_f_res_bf_frm__p_resource_sv	B981F72A-6D50-4BAC-AB65-2ADC500BB3E1
++g_f_res_bf_frm__p_resource_ta_in	4EEC90EA-B8FE-455C-8C4D-D6850032E545
++g_f_res_bf_frm__p_resource_tr	9D933401-1EAC-41D8-8329-C5966620DA71
++g_f_res_bf_frm__p_resource_vi	D4EBDA8C-877C-4E80-B113-7B32FFF29012
++g_f_res_bf_frm__p_resource_xh	3C863589-9B7B-44C1-AE71-BFD1A2AB8F73
++g_f_res_bf_frm__p_resource_zh_cn	2B7F750B-E300-4702-A29D-670B6ADF3C1F
++g_f_res_bf_frm__p_resource_zh_tw	33EA859F-33BC-463A-8B6B-6AA04B6B311A
++g_f_res_bf_frm__p_resource_zu	5690264C-22DC-480E-A92C-EE9E562F7200
++g_f_res_bf_ofa__p_resource_af	4DF76C2B-C683-4C7A-B9A7-254D1F188FCE
++g_f_res_bf_ofa__p_resource_ar	3A0C49C3-5D62-42BA-93C6-D6E78573DDC2
++g_f_res_bf_ofa__p_resource_be_by	80DCB2E0-F5B9-4821-8063-FE7FBC6972B0
++g_f_res_bf_ofa__p_resource_bg	3C7CA45A-BD4E-4F9D-8949-C81CE2362641
++g_f_res_bf_ofa__p_resource_bn_in	6FB248B6-7B32-4D5D-9E18-BD6FD69F1313
++g_f_res_bf_ofa__p_resource_br	B7BADF04-7292-4C98-967D-7F1970CE29E9
++g_f_res_bf_ofa__p_resource_ca	C5B33DC8-FE33-4B5D-8A4F-35473F4BF68F
++g_f_res_bf_ofa__p_resource_cs	74090BE9-F97F-49F2-9775-56DE0B483D9A
++g_f_res_bf_ofa__p_resource_cy	53843FCA-E7B8-4367-8872-C5DFA910885F
++g_f_res_bf_ofa__p_resource_da	B20F1978-4C1D-4857-B4C8-8580677041EF
++g_f_res_bf_ofa__p_resource_de	E10C8B42-9867-49B9-ABF8-7E8E7068587A
++g_f_res_bf_ofa__p_resource_el	BDEB410E-8D60-41EE-871A-2E53A2B90886
++g_f_res_bf_ofa__p_resource_en_gb	B6A5E5A0-540C-4E57-B09E-5C806ACBAFE1
++g_f_res_bf_ofa__p_resource_en_us	8DB3A94E-7063-4FE5-AB98-7EE52BB63A16
++g_f_res_bf_ofa__p_resource_es	36753C8B-CBCC-4BEA-8972-E305B3010D2D
++g_f_res_bf_ofa__p_resource_et	3437224A-E433-447A-8CE2-97CB21EE54A3
++g_f_res_bf_ofa__p_resource_fi	F881A97D-FC8E-4DCE-BFAD-F141A8191802
++g_f_res_bf_ofa__p_resource_fr	360A53C7-B4A9-4F2B-A5B3-FCAAC2A04374
++g_f_res_bf_ofa__p_resource_gu_in	1291F34C-B00E-4A94-800B-E3442032967C
++g_f_res_bf_ofa__p_resource_he	8069DF93-62EC-4FA8-8AFF-DBD75F481FFA
++g_f_res_bf_ofa__p_resource_hi_in	A99FA281-2BC3-4C17-9D56-44342F3AD764
++g_f_res_bf_ofa__p_resource_hr	B2677E7D-EABE-4162-80FF-7EE2B39D3AE2
++g_f_res_bf_ofa__p_resource_hu	ED8D2CC3-FDC7-422B-80F7-4B9FF50E88EA
++g_f_res_bf_ofa__p_resource_it	E1569A0C-4707-4F4B-B16F-BA1C18B29F73
++g_f_res_bf_ofa__p_resource_ja	E97C7E36-12BD-4EEF-A971-E8DE72EECF90
++g_f_res_bf_ofa__p_resource_km	6D87DF92-DC51-4914-8758-7293D7A79B97
++g_f_res_bf_ofa__p_resource_ko	F633F0CB-F4E0-4F79-A7EE-C4C854D3BB9C
++g_f_res_bf_ofa__p_resource_lt	B7AADEA5-6313-4478-91BF-6B1909EF6B46
++g_f_res_bf_ofa__p_resource_lv	6296E547-1B4B-4BE2-ABF9-D287DFA218D5
++g_f_res_bf_ofa__p_resource_mk	B3A77E76-1F7A-459C-A15F-D3CBC5E99395
++g_f_res_bf_ofa__p_resource_mr_in	547E9090-F397-4A2D-AE5C-39BBB97F092D
++g_f_res_bf_ofa__p_resource_nb	B6AE9665-2569-454E-9C95-02476C1D56AB
++g_f_res_bf_ofa__p_resource_nl	E749D868-EEE6-4C21-AD25-0C5DE3D7571A
++g_f_res_bf_ofa__p_resource_nn	A7B6B896-FB40-469C-B458-D9D04E6B60C6
++g_f_res_bf_ofa__p_resource_pa_in	C8326725-9DBD-48A5-AAEB-CCC3D4DB2C6B
++g_f_res_bf_ofa__p_resource_pl	55C151EA-0D90-4D6F-875C-C560124B78D2
++g_f_res_bf_ofa__p_resource_pt	1C5BDFFC-92F6-4146-BAE5-167575ACF1FD
++g_f_res_bf_ofa__p_resource_pt_br	CAF03C1A-7745-4007-B2F1-A6C4EAC7BAA8
++g_f_res_bf_ofa__p_resource_ru	3FAE7F67-B05F-4228-A079-A7044ED95574
++g_f_res_bf_ofa__p_resource_rw	373F1F6D-9DAF-4B68-9273-C453EC058AF4
++g_f_res_bf_ofa__p_resource_sk	D6CF05A3-2988-4AE3-BC6F-5E2A8BDFBC95
++g_f_res_bf_ofa__p_resource_sl	0E4984EA-C029-4E92-BB17-77A429F07E56
++g_f_res_bf_ofa__p_resource_sv	1E960FF1-9F93-48E4-83F7-A8DDAC088F56
++g_f_res_bf_ofa__p_resource_ta_in	F4E37653-F5D7-4808-B15B-834DDE9B72B2
++g_f_res_bf_ofa__p_resource_tr	DB517FFC-2427-410A-AFA7-6C3D9D1608ED
++g_f_res_bf_ofa__p_resource_vi	64C19660-CF6E-41D0-9972-BCD251E41EB4
++g_f_res_bf_ofa__p_resource_xh	36690C28-E12D-4CD7-95DB-2EFFA6D46925
++g_f_res_bf_ofa__p_resource_zh_cn	ABEBBB5A-1FC5-4364-904A-F6E2927C3715
++g_f_res_bf_ofa__p_resource_zh_tw	E04844A7-E1E6-4CB8-9BA7-5AB411C7113C
++g_f_res_bf_ofa__p_resource_zu	102C2AA1-57B9-4947-9663-DE3D7743F834
++g_f_res_bf_sc__p_resource_af	9BB789F0-3AC5-41E4-B32D-0E108B432A18
++g_f_res_bf_sc__p_resource_ar	1C8CF852-9B15-43BC-BED3-306E1CAC0DE9
++g_f_res_bf_sc__p_resource_be_by	38A4171F-C049-4F34-BA95-04E72EDC50C1
++g_f_res_bf_sc__p_resource_bg	ED46F4D6-CA61-4D20-B895-37B74AAE4151
++g_f_res_bf_sc__p_resource_bn_in	58D2DB04-57DC-40DE-B8CD-522CE16E1543
++g_f_res_bf_sc__p_resource_br	94501D6A-6903-42A6-86A1-A38F28CF9A48
++g_f_res_bf_sc__p_resource_ca	3CF0EA58-3C33-40A3-8692-0A25BCBDF183
++g_f_res_bf_sc__p_resource_cs	6C533011-0712-474F-A23C-4752291E87EF
++g_f_res_bf_sc__p_resource_cy	D9A1F9B7-CE64-484B-8A09-E5960E429897
++g_f_res_bf_sc__p_resource_da	A56BBA0D-0E7B-4685-8A4B-34CE8B06479D
++g_f_res_bf_sc__p_resource_de	91FAE552-B1F2-41AA-960D-3B47303CB9CF
++g_f_res_bf_sc__p_resource_el	005E24E8-0E7E-499D-B1EE-F1E4332FD3A2
++g_f_res_bf_sc__p_resource_en_gb	E84AAFC0-389D-4EE5-9EDA-1058BD2D5B01
++g_f_res_bf_sc__p_resource_en_us	0945A616-A5B7-401D-ACF5-4E47AC03597D
++g_f_res_bf_sc__p_resource_es	B917CB16-A9A7-4FD3-8711-A57F6850A537
++g_f_res_bf_sc__p_resource_et	858FC1AF-1D40-4426-8D33-5A0C90B87EEA
++g_f_res_bf_sc__p_resource_fi	C7478D5E-9C08-47FA-A1AF-51305E78B024
++g_f_res_bf_sc__p_resource_fr	AE9FAFA6-9ED8-483A-8B1D-460962B400F9
++g_f_res_bf_sc__p_resource_gu_in	1238615D-D195-4A69-B831-10973F49F82C
++g_f_res_bf_sc__p_resource_he	4458FE9D-5E2D-45BC-8412-FC89A4A2E0B3
++g_f_res_bf_sc__p_resource_hi_in	C03EA065-F32C-4376-8997-309F30224AFB
++g_f_res_bf_sc__p_resource_hr	9EE12D02-7CFB-460C-8B9C-8FECD6214511
++g_f_res_bf_sc__p_resource_hu	5081B1AA-53C3-43F2-AFDD-6CFEF97E1FD2
++g_f_res_bf_sc__p_resource_it	B05D4D68-EB3F-43A2-A7A3-C121A5D80C79
++g_f_res_bf_sc__p_resource_ja	037437EF-AE6D-416F-B0BB-121987972516
++g_f_res_bf_sc__p_resource_km	BE70AD09-729E-4736-BDCD-D961634DB7AF
++g_f_res_bf_sc__p_resource_ko	31FB6E2C-2DB7-4A5E-ABB6-C4FC41DA4898
++g_f_res_bf_sc__p_resource_lt	D61581EC-4099-455B-B93B-BF378175B591
++g_f_res_bf_sc__p_resource_lv	17054CD5-5468-46CC-B235-0DAB6CC97A34
++g_f_res_bf_sc__p_resource_mk	3A041D00-A77A-4D4F-9290-A733932AE8E4
++g_f_res_bf_sc__p_resource_mr_in	F93D03FD-D955-4E85-A35B-1F447E1B47C5
++g_f_res_bf_sc__p_resource_nb	9F2DB1EF-B7CA-4628-9926-49FD05414529
++g_f_res_bf_sc__p_resource_nl	06BEE9C0-0F36-45C5-956A-0685C8853EA9
++g_f_res_bf_sc__p_resource_nn	7288A47A-F163-4429-8EDD-2896770B43B6
++g_f_res_bf_sc__p_resource_pa_in	55E02F66-E1D7-4527-9D0B-379B25B836AF
++g_f_res_bf_sc__p_resource_pl	3CF24157-5858-4588-AB70-2CA7E1C5278E
++g_f_res_bf_sc__p_resource_pt	F58A07B9-2D5E-42EF-A418-5EC168D0C1A8
++g_f_res_bf_sc__p_resource_pt_br	7488B7CD-B853-4E57-B6DE-B310CF056510
++g_f_res_bf_sc__p_resource_ru	EA0D75D3-22BB-4C20-940F-511697DDEAA2
++g_f_res_bf_sc__p_resource_rw	2E999AE5-9EF7-4F0A-8ACC-DBCDAD14BDA9
++g_f_res_bf_sc__p_resource_sk	6D31A34E-0915-4179-8B33-AA1703BA179A
++g_f_res_bf_sc__p_resource_sl	F6FADECD-8BB6-453C-B1FE-6EB7AAD38977
++g_f_res_bf_sc__p_resource_sv	0E84B1DB-38A7-4E0F-9ECB-161E5ECBEC05
++g_f_res_bf_sc__p_resource_ta_in	1409ABB1-0BA9-442B-9734-E6E80041BFFA
++g_f_res_bf_sc__p_resource_tr	288E2192-B245-4EF5-83D0-7E8BEB8DA8EF
++g_f_res_bf_sc__p_resource_vi	839F61AC-8639-4944-96B8-EB2BD76FF5A4
++g_f_res_bf_sc__p_resource_xh	55215C63-B554-4838-B604-A962BE149062
++g_f_res_bf_sc__p_resource_zh_cn	54130C95-2953-4F25-8CF1-E338417CC7E0
++g_f_res_bf_sc__p_resource_zh_tw	95246260-238D-4ADF-9187-0473908A8C62
++g_f_res_bf_sc__p_resource_zu	C6FCE87E-0A1D-49C5-843C-43D455426883
++g_f_res_bf_sch__p_resource_af	981F62D7-0F0F-4CAF-8D46-EBBDFD2A3C83
++g_f_res_bf_sch__p_resource_ar	F1C67F28-B56C-4053-BD61-2CB6B4CDCDA0
++g_f_res_bf_sch__p_resource_be_by	622F4565-209D-4348-98E2-B2E94E88C7D5
++g_f_res_bf_sch__p_resource_bg	980F1BAF-4FE6-4436-8C74-1010B73A5822
++g_f_res_bf_sch__p_resource_bn_in	4D134E97-450D-4C2A-AEC8-D155621D006E
++g_f_res_bf_sch__p_resource_br	664516EC-488E-4C53-9F08-5A9227D15CE3
++g_f_res_bf_sch__p_resource_ca	60214F9D-423F-4BDE-AE34-F1DA56C43FF5
++g_f_res_bf_sch__p_resource_cs	338169D4-564F-4E90-BCB2-58A4395B8D7F
++g_f_res_bf_sch__p_resource_cy	2A8AE562-2A3A-4A91-8DF0-D66D74055C55
++g_f_res_bf_sch__p_resource_da	1EBD2105-1C67-4F62-A071-65A25BDC1E88
++g_f_res_bf_sch__p_resource_de	06B48029-2FDD-4A5F-8F5D-B4F8C34BE3E9
++g_f_res_bf_sch__p_resource_el	D56EF0C7-3AF5-4D71-A143-828AFAFFBC75
++g_f_res_bf_sch__p_resource_en_gb	64A6A429-CCB8-4398-BCEC-83E0ACACF9DE
++g_f_res_bf_sch__p_resource_en_us	DD9B7038-E197-4AF0-B9D8-19CE863BAE4D
++g_f_res_bf_sch__p_resource_es	A9DC1B44-C732-4D6D-AB41-5FE2257283F1
++g_f_res_bf_sch__p_resource_et	14650FDB-7555-4A02-8772-3B411324BB40
++g_f_res_bf_sch__p_resource_fi	27706837-14F9-4577-A964-4DD0415544F9
++g_f_res_bf_sch__p_resource_fr	CEAF60EB-5868-4597-A0D7-17FCDA0C2FCA
++g_f_res_bf_sch__p_resource_gu_in	7ED6C2EB-4E06-4153-B043-18B095490F6E
++g_f_res_bf_sch__p_resource_he	D2E3C646-AB91-4D80-8648-948B3CAF247C
++g_f_res_bf_sch__p_resource_hi_in	45EBE6EF-EF84-4C6E-B533-AA52B5CC374F
++g_f_res_bf_sch__p_resource_hr	CEB91353-41CD-4E95-AD80-373DD9BFFBC2
++g_f_res_bf_sch__p_resource_hu	331FC4B1-524D-40BF-8D86-092E0A3AF0F1
++g_f_res_bf_sch__p_resource_it	AF543319-A640-4C37-A17A-9007758ABE08
++g_f_res_bf_sch__p_resource_ja	8DAACC40-A8DC-46BB-A456-275F500886D7
++g_f_res_bf_sch__p_resource_km	1594E991-A2F0-47B4-8C4B-795F3BA636B1
++g_f_res_bf_sch__p_resource_ko	47AA3FCA-F328-4B73-8B0E-F9C665F9FBA0
++g_f_res_bf_sch__p_resource_lt	49B24763-E08B-47A3-974A-EABF127C8697
++g_f_res_bf_sch__p_resource_lv	4326F733-3ABD-481E-9E9D-F5A11D9F60A3
++g_f_res_bf_sch__p_resource_mk	07FC8597-D0E6-4942-AB0E-4B170CF9BC4B
++g_f_res_bf_sch__p_resource_mr_in	7A15FAAF-0522-4596-A154-1E47560F0DC4
++g_f_res_bf_sch__p_resource_nb	402B6026-C69E-4CDA-B414-5AAF5F106455
++g_f_res_bf_sch__p_resource_nl	C814EB69-F029-408F-8622-D994AC7A0B79
++g_f_res_bf_sch__p_resource_nn	256AD0FB-3A0C-410C-93B7-35848F46B785
++g_f_res_bf_sch__p_resource_pa_in	B2EA7ED4-430F-441C-900D-39B4F2A71005
++g_f_res_bf_sch__p_resource_pl	476575EB-6AF4-41DB-86AE-F0C010C0C2B4
++g_f_res_bf_sch__p_resource_pt	CC2C593F-0265-46FB-9495-568424AFBBDE
++g_f_res_bf_sch__p_resource_pt_br	2C92A7F7-3FE9-48CB-BC9A-F7C7003539A5
++g_f_res_bf_sch__p_resource_ru	B54F0AB4-6438-40D4-92C3-655E59F796C8
++g_f_res_bf_sch__p_resource_rw	99FB8C46-A6B4-468F-8125-2768886B129F
++g_f_res_bf_sch__p_resource_sk	8EED54D4-BEED-4124-B5A9-C275321ABBDF
++g_f_res_bf_sch__p_resource_sl	EE87AC87-7436-452E-87CE-5F61EB9E196E
++g_f_res_bf_sch__p_resource_sv	44E7455B-2D7A-46FD-8C55-5EC269BFCBF1
++g_f_res_bf_sch__p_resource_ta_in	CBA3A249-EA7F-4C89-999B-9604F3B466A6
++g_f_res_bf_sch__p_resource_tr	CDA38FB5-7782-4163-9FA7-CB871051CDC1
++g_f_res_bf_sch__p_resource_vi	6DA2FCBA-8431-45EC-8970-D5D875C81347
++g_f_res_bf_sch__p_resource_xh	BF8AEBD0-9F07-44DD-B158-343C1972204B
++g_f_res_bf_sch__p_resource_zh_cn	10B37A54-AB13-4484-948E-E7627D98BF98
++g_f_res_bf_sch__p_resource_zh_tw	D4C6FD2B-2364-48C3-93CF-70CEB54A806F
++g_f_res_bf_sch__p_resource_zu	3DC8B399-DB70-425E-8A02-6F2724D0A633
++g_f_res_bf_sd__p_resource_af	76251BE7-04E3-4EAA-B7CD-8A3A802BEC56
++g_f_res_bf_sd__p_resource_ar	88D37FC2-DEDA-491E-8A28-555E091C6D62
++g_f_res_bf_sd__p_resource_be_by	D63ED64B-5D31-4148-AAD3-8AC8E600C194
++g_f_res_bf_sd__p_resource_bg	55E04E40-68AE-492F-BD7D-2D43253042A0
++g_f_res_bf_sd__p_resource_bn_in	9B279220-C98D-42FE-A34A-B5499C314CF3
++g_f_res_bf_sd__p_resource_br	2057618D-2998-43A7-B3E7-77E8AA123974
++g_f_res_bf_sd__p_resource_ca	191E4F1D-77EB-4822-965F-F7518F0077CD
++g_f_res_bf_sd__p_resource_cs	2074767C-DE27-409C-B1D0-C8F7523DD3A2
++g_f_res_bf_sd__p_resource_cy	128F6C8F-54F3-420F-84A8-92379031A05D
++g_f_res_bf_sd__p_resource_da	4FA1E1CF-3C3F-4724-9DC6-217EAFCE0D5E
++g_f_res_bf_sd__p_resource_de	FFB96BF8-7FDC-4785-8962-D8986CBAF371
++g_f_res_bf_sd__p_resource_el	0DA86156-C99B-4D85-9562-E5BDF1B08E80
++g_f_res_bf_sd__p_resource_en_gb	CC5F8CA4-ED79-483E-A8F9-AFE09FA4A845
++g_f_res_bf_sd__p_resource_en_us	B9A7C0B0-D09F-472B-8A06-208D025CFC87
++g_f_res_bf_sd__p_resource_es	8E02C59E-12B5-4FB1-B2F6-6BA5DC184E1F
++g_f_res_bf_sd__p_resource_et	9AB11BFC-8DF9-489B-BAC3-53296B38830A
++g_f_res_bf_sd__p_resource_fi	DF5A3787-E23C-4EAD-A0BA-B84BBF74CF34
++g_f_res_bf_sd__p_resource_fr	DD477876-8DED-4852-AB98-20190134413C
++g_f_res_bf_sd__p_resource_gu_in	4DA0FEC6-D851-427A-B763-D582B3833E12
++g_f_res_bf_sd__p_resource_he	06369E1A-7B77-49E7-A9A9-52228FF95C88
++g_f_res_bf_sd__p_resource_hi_in	52F95063-FDCC-4811-8692-67C1A90D428F
++g_f_res_bf_sd__p_resource_hr	03226E27-88E5-4FAC-8F8C-87BA458C7CBF
++g_f_res_bf_sd__p_resource_hu	F80A2067-6FD3-46F3-B223-9A1744C43F38
++g_f_res_bf_sd__p_resource_it	685F0DDB-756B-4966-AC7B-98E837801597
++g_f_res_bf_sd__p_resource_ja	E39D0653-7680-45F8-A9F2-128ACDB65829
++g_f_res_bf_sd__p_resource_km	2946A07C-EFBC-4049-8751-873D63F08FFB
++g_f_res_bf_sd__p_resource_ko	71661CED-66A2-457F-A6F0-FB28BC16DE8A
++g_f_res_bf_sd__p_resource_lt	4B9375F8-8402-440C-8FC5-9AA0F846B57A
++g_f_res_bf_sd__p_resource_lv	0BE17408-320F-4C31-B70D-7F1A51CFACF3
++g_f_res_bf_sd__p_resource_mk	1E2E74BA-AF23-4F54-88EA-766023F1B7DC
++g_f_res_bf_sd__p_resource_mr_in	C1C287BB-0F81-462A-9C77-AFC2AC0808A4
++g_f_res_bf_sd__p_resource_nb	00FD217C-702D-4B59-9025-985BE71567FA
++g_f_res_bf_sd__p_resource_nl	1BAF70AD-F63E-4FAB-BD4B-CD246131C9FA
++g_f_res_bf_sd__p_resource_nn	690C82C8-A406-498E-96C7-2605581C53B0
++g_f_res_bf_sd__p_resource_pa_in	CD357B70-CD1A-4AE2-A603-0A63A8003296
++g_f_res_bf_sd__p_resource_pl	156935E3-E587-446A-B64A-2294204F0BAC
++g_f_res_bf_sd__p_resource_pt	B31C0712-95DF-4B28-8085-A61AC287B6CE
++g_f_res_bf_sd__p_resource_pt_br	AED4B02A-9C03-4B5E-BC4B-2E1B4872DD7A
++g_f_res_bf_sd__p_resource_ru	C6E99320-6A4C-4456-9A26-8399068419DF
++g_f_res_bf_sd__p_resource_rw	177B3695-C0EC-44A5-96F0-91EF13000F98
++g_f_res_bf_sd__p_resource_sk	1268C632-6E4A-48EC-A92D-00E846A71436
++g_f_res_bf_sd__p_resource_sl	91886B0A-A380-4314-B513-C0C8AE57A053
++g_f_res_bf_sd__p_resource_sv	57B91808-768A-464E-BB7B-AC73E1EA6764
++g_f_res_bf_sd__p_resource_ta_in	FE4FC470-6D9D-4D19-B032-1A7D6027BCA4
++g_f_res_bf_sd__p_resource_tr	BB909222-5E37-4E45-9CB4-28661E87F2DE
++g_f_res_bf_sd__p_resource_vi	AEDCF4CE-C7E4-4DC2-8E30-DF40EF114F4C
++g_f_res_bf_sd__p_resource_xh	93D59C81-C669-414A-AA05-0AC128EFBE0E
++g_f_res_bf_sd__p_resource_zh_cn	97243753-D9C6-4181-A725-5168BDB208A8
++g_f_res_bf_sd__p_resource_zh_tw	B8932C2B-6AB1-4834-8ADA-DAEAB691FF34
++g_f_res_bf_sd__p_resource_zu	C90AD80C-9A9D-4D65-A5AC-B32A41A5E29D
++g_f_res_bf_sfx__p_resource_af	9C43290B-F634-4C61-977D-D693F162A5FD
++g_f_res_bf_sfx__p_resource_ar	3B350C1E-C2B2-46CB-BA9E-EAF8BF5AE0F5
++g_f_res_bf_sfx__p_resource_be_by	6A0FB847-7890-4F2D-945E-A8C16F66CC89
++g_f_res_bf_sfx__p_resource_bg	B723EAE4-0E1A-4126-B9A9-94AA95902F5E
++g_f_res_bf_sfx__p_resource_bn_in	5FF00C82-647E-4E96-99A4-5482C7E5AEDD
++g_f_res_bf_sfx__p_resource_br	7F3EA84C-E535-4B72-9EE0-7287CB135099
++g_f_res_bf_sfx__p_resource_ca	C197E3A6-3797-4065-B814-BA4993919096
++g_f_res_bf_sfx__p_resource_cs	554A0C4E-366F-4EAF-A7BA-5E9274200254
++g_f_res_bf_sfx__p_resource_da	9B492F49-60E0-4317-8EA1-CE21E96B7A69
++g_f_res_bf_sfx__p_resource_de	9C59A99E-48EB-456D-8D7C-A9927D5BDC84
++g_f_res_bf_sfx__p_resource_el	DDD12312-0A9E-4E58-A745-3707F101CE2E
++g_f_res_bf_sfx__p_resource_en_gb	1AB23C7F-438A-4D54-9DF1-5034F9A9CDB0
++g_f_res_bf_sfx__p_resource_en_us	2E8F1C22-1FEB-4E49-8255-C22DBF42D9E8
++g_f_res_bf_sfx__p_resource_es	88E4FB3E-109D-44FE-ACB7-FDAA00465D7D
++g_f_res_bf_sfx__p_resource_et	856FC67D-5A87-4F79-A8B5-ADAE7FADCCDA
++g_f_res_bf_sfx__p_resource_fi	5233E9DB-3DAE-404F-9286-FBC8BEF0CEB7
++g_f_res_bf_sfx__p_resource_fr	1A9B8B39-C2D2-4184-AEBE-195A68FDCF73
++g_f_res_bf_sfx__p_resource_gu_in	7ABBE1F3-71A0-4297-8CFC-89DDAD16993E
++g_f_res_bf_sfx__p_resource_he	76DA9868-342C-489D-8E2A-7A42D9988325
++g_f_res_bf_sfx__p_resource_hi_in	40BB2F23-AA9D-47D6-8812-1C18A7171310
++g_f_res_bf_sfx__p_resource_hr	F930499A-2711-4388-A36D-C33BD70C6F16
++g_f_res_bf_sfx__p_resource_hu	BFB167A3-0422-469F-8170-76D8E2786E86
++g_f_res_bf_sfx__p_resource_it	D4BDBF29-B6AE-4BF2-A15E-04E8E5AC8AA7
++g_f_res_bf_sfx__p_resource_ja	F739E999-32E6-42AF-AC52-B528764F45DD
++g_f_res_bf_sfx__p_resource_ko	C8E727A3-8D25-4C79-B844-0C8CBA103DCE
++g_f_res_bf_sfx__p_resource_lt	2F6C013C-B57D-4185-82CA-C297CFF9DE3B
++g_f_res_bf_sfx__p_resource_lv	D97E9779-01BD-47D8-A84A-046AA6D02913
++g_f_res_bf_sfx__p_resource_mk	35DC2E98-1D20-4203-B924-5320A5AD66C1
++g_f_res_bf_sfx__p_resource_nb	E10C9C79-69A7-4ED9-8B30-3021AE504C6B
++g_f_res_bf_sfx__p_resource_nl	6AD4CD80-181D-415F-9337-59A884FC46EE
++g_f_res_bf_sfx__p_resource_nn	9AF1C861-85C1-4B23-814A-AE62B7F2343C
++g_f_res_bf_sfx__p_resource_pl	6410A49A-C6B8-4AF9-A47E-E795D9C081EC
++g_f_res_bf_sfx__p_resource_pt	CF9BA565-CF90-4912-84F1-109DA69B08AE
++g_f_res_bf_sfx__p_resource_pt_br	B30B49A6-B6DC-400E-9D75-C8FDF9D53716
++g_f_res_bf_sfx__p_resource_ru	8996801C-4299-415F-91A2-6FE68D1481CC
++g_f_res_bf_sfx__p_resource_sk	994D6EA7-1749-4AAD-B505-1B4678B1BD7C
++g_f_res_bf_sfx__p_resource_sl	B85B6132-09F9-422D-9717-16BBAEEB37C9
++g_f_res_bf_sfx__p_resource_sv	A699B51E-6386-4CE3-8538-1A48BE0E9B71
++g_f_res_bf_sfx__p_resource_tr	A6B0A267-12D0-4A3D-80B3-F7B72A851B0B
++g_f_res_bf_sfx__p_resource_xh	73E0872B-4A01-4B4A-90EA-6B4E8DA73C34
++g_f_res_bf_sfx__p_resource_zh_cn	1C30D30A-1178-4B41-BD5F-C4878A2FA4C0
++g_f_res_bf_sfx__p_resource_zh_tw	C36A2A0D-D42F-402D-A00E-752B641C1223
++g_f_res_bf_sfx__p_resource_zu	0D2988B9-B24B-40BD-A205-11342AAF941E
++g_f_res_bf_sm__p_resource_af	45B464ED-AAD0-4842-A6ED-A7091150A42C
++g_f_res_bf_sm__p_resource_ar	1F467595-FD6C-4D81-A924-8FBA9C4C29A5
++g_f_res_bf_sm__p_resource_be_by	886E3AFE-0EAF-4ED8-AF62-45065582A995
++g_f_res_bf_sm__p_resource_bg	5827B5C8-8F1A-44C9-8CF9-0D7386314B50
++g_f_res_bf_sm__p_resource_bn_in	50E07995-7D11-4464-AA3D-464AE811039A
++g_f_res_bf_sm__p_resource_br	53C44537-BFA0-4238-B5C0-DE18AD563383
++g_f_res_bf_sm__p_resource_ca	D75B241C-B5DD-482C-87DB-6B086C67A260
++g_f_res_bf_sm__p_resource_cs	4A507DE2-EC3C-4071-AB75-07EE27F9C1E7
++g_f_res_bf_sm__p_resource_cy	DFFB55FC-1A49-42E3-A2AA-7C9FB41D893C
++g_f_res_bf_sm__p_resource_da	7CB9A4B6-7964-418B-9987-795E923F2D60
++g_f_res_bf_sm__p_resource_de	E3B4550D-E99F-476D-9DAE-7D82FBC7473D
++g_f_res_bf_sm__p_resource_el	B7FF4EDB-B52E-424D-89CC-8112B9228AD9
++g_f_res_bf_sm__p_resource_en_gb	2CBB3FAA-9F9B-4A53-ACB0-0488F2423AEF
++g_f_res_bf_sm__p_resource_en_us	A7D5060D-B5A8-45EB-8AD3-A11A658A7699
++g_f_res_bf_sm__p_resource_es	233F6F70-8456-4C95-8675-7AC18A68819D
++g_f_res_bf_sm__p_resource_et	4922BAF2-8F3C-4026-ACAD-7046786AE7C7
++g_f_res_bf_sm__p_resource_fi	564610A5-6DC2-4520-AB6C-8CDDC708EC8A
++g_f_res_bf_sm__p_resource_fr	3CAC62CB-C622-42C7-AEA2-9FADC9B6F238
++g_f_res_bf_sm__p_resource_gu_in	92788FF2-29BB-4B18-812E-9030C2FAC340
++g_f_res_bf_sm__p_resource_he	A9F68F4A-C390-4BB9-895B-4421D5D09E15
++g_f_res_bf_sm__p_resource_hi_in	5F4E4C6B-A83F-4D5E-A37F-76752B093AC6
++g_f_res_bf_sm__p_resource_hr	46CB851F-B46C-4E35-A771-2C9422A81E6A
++g_f_res_bf_sm__p_resource_hu	11E9FAA1-9B4D-4186-8F55-B691820E7B05
++g_f_res_bf_sm__p_resource_it	7A35B347-7F58-4E8E-8CAF-704E7A5F8638
++g_f_res_bf_sm__p_resource_ja	3F00D34A-8742-4587-9B84-757073AE4100
++g_f_res_bf_sm__p_resource_km	4DB2A6DE-297B-4738-99FE-9B4D19838FE4
++g_f_res_bf_sm__p_resource_ko	9D91D688-246E-4AD5-B69A-A832FA457D7D
++g_f_res_bf_sm__p_resource_lt	979495BB-A267-47E3-9F07-A1112A0B2613
++g_f_res_bf_sm__p_resource_lv	EEA163CB-32AC-41A5-8471-FB9CA8A63871
++g_f_res_bf_sm__p_resource_mk	C4C34917-BAC6-4030-84DF-DC6E1A3BB6D1
++g_f_res_bf_sm__p_resource_mr_in	5E049FEF-4086-4B61-BB5B-0B687E47BAD2
++g_f_res_bf_sm__p_resource_nb	6C20B33F-9DB2-4B0F-959A-D2A3968B0DC6
++g_f_res_bf_sm__p_resource_nl	86DC86E5-C69D-40BF-BF6B-5A0F045645A4
++g_f_res_bf_sm__p_resource_nn	588B811D-4C14-4109-A49C-D7EC5EA8C8FD
++g_f_res_bf_sm__p_resource_pa_in	0CA09138-7DEF-41B5-9209-918E9DA9D97F
++g_f_res_bf_sm__p_resource_pl	C24DE72D-7200-4201-AF54-0F3073A5462C
++g_f_res_bf_sm__p_resource_pt	C3E1BEDE-8593-4873-B601-3F56E30205F5
++g_f_res_bf_sm__p_resource_pt_br	ACE209EA-1702-4B11-925A-48D5B773EE8C
++g_f_res_bf_sm__p_resource_ru	EEC0A6B5-B490-4EBF-8C60-4EA6C399259C
++g_f_res_bf_sm__p_resource_rw	18D22599-2716-4428-A83D-97857D5BF0EA
++g_f_res_bf_sm__p_resource_sk	0E365D6B-D01D-48F0-A121-BCFF1616ACD2
++g_f_res_bf_sm__p_resource_sl	42AB23BD-D021-4699-A2D4-2F950FBC5A4D
++g_f_res_bf_sm__p_resource_sv	31DBAAEF-2302-4A20-BE57-9CC2E2748B07
++g_f_res_bf_sm__p_resource_ta_in	8251526B-8E0D-4A82-9977-AB9ABC64AAC6
++g_f_res_bf_sm__p_resource_tr	DC960D4B-EC73-457B-BA17-6E9347419C56
++g_f_res_bf_sm__p_resource_vi	D9E710A7-EF37-4305-ACA8-A77A2A57A003
++g_f_res_bf_sm__p_resource_xh	40821766-86B7-4F92-811F-57B00AE76D9E
++g_f_res_bf_sm__p_resource_zh_cn	ED87C40D-8D18-45A7-8E8B-2F0F5ABCC70A
++g_f_res_bf_sm__p_resource_zh_tw	5ABB4067-25B7-4C2E-B8D6-32C858CE7430
++g_f_res_bf_sm__p_resource_zu	C0098BBD-1745-4F6E-812F-8CAB917DE271
++g_f_res_bf_svx__p_resource_af	285F6D29-69C2-4864-A071-3D8598238DD5
++g_f_res_bf_svx__p_resource_ar	18EFA533-687B-4E16-8F44-D524707BAD4B
++g_f_res_bf_svx__p_resource_be_by	D7AED7B0-EF20-4A80-9381-330C5EFEF7C6
++g_f_res_bf_svx__p_resource_bg	9EEF13D3-8B95-4DC2-A3A0-4324D394BEAE
++g_f_res_bf_svx__p_resource_bn_in	97B3A802-BBED-4546-B735-F69DBC008E8B
++g_f_res_bf_svx__p_resource_br	09583969-195F-4EC5-A6B6-8D1039B740B1
++g_f_res_bf_svx__p_resource_ca	81744F67-2AB4-4FBD-A931-38BCCC18684C
++g_f_res_bf_svx__p_resource_cs	D0D28F82-D291-4831-BE3B-084F5EDBB17F
++g_f_res_bf_svx__p_resource_cy	835254A4-85D6-4373-9140-ECCA2A97ADE0
++g_f_res_bf_svx__p_resource_da	AD408960-D125-4D7D-B7E4-65367AB6F3E8
++g_f_res_bf_svx__p_resource_de	54AFDBC2-D755-4BB6-8FA9-6C74DB83EE5A
++g_f_res_bf_svx__p_resource_el	7386CA25-5FED-4C89-8904-E1482299D79B
++g_f_res_bf_svx__p_resource_en_gb	BE3DEB0A-5EAD-4411-A46B-6F93A08A3319
++g_f_res_bf_svx__p_resource_en_us	F33D2756-DD15-402C-A37D-A3738C748932
++g_f_res_bf_svx__p_resource_es	4D20324C-0F3A-42E8-B3CD-131DB6CD30B7
++g_f_res_bf_svx__p_resource_et	9C2CC3B3-2FA0-456B-A59B-7BA495BEC421
++g_f_res_bf_svx__p_resource_fi	69B54D67-5FAE-4AA7-A871-E6E1FBFC4C5E
++g_f_res_bf_svx__p_resource_fr	48EB74DF-23EB-407B-BDAD-E1B9E17765BF
++g_f_res_bf_svx__p_resource_gu_in	DB0093D4-3E7B-41C1-BFD1-2071CAF5B3E8
++g_f_res_bf_svx__p_resource_he	A69A82AD-A2CC-4A53-94E6-731E8EA00E23
++g_f_res_bf_svx__p_resource_hi_in	9E99415F-B04E-43F5-9216-54556F7171B0
++g_f_res_bf_svx__p_resource_hr	2ED2511B-0F34-4B2C-B08E-722206A56A45
++g_f_res_bf_svx__p_resource_hu	3AAFB260-2B9F-4D4A-BC74-E2CC73C35770
++g_f_res_bf_svx__p_resource_it	C756527A-5048-4E4D-96FA-15C4D46AE7F3
++g_f_res_bf_svx__p_resource_ja	9E83E557-408E-4A80-8BE3-789E269DC48A
++g_f_res_bf_svx__p_resource_km	EB06C590-7240-4FFF-B468-8839CCB64789
++g_f_res_bf_svx__p_resource_ko	DBBE227C-DE69-4876-9A31-42F1E3C6F64E
++g_f_res_bf_svx__p_resource_lt	E57FB3E6-FD3A-4F73-844F-53BF7DD67238
++g_f_res_bf_svx__p_resource_lv	30315FCA-7C76-4280-9922-27F56D6D1A42
++g_f_res_bf_svx__p_resource_mk	69ABD6FD-A073-45E0-B588-256FC4DDFBC2
++g_f_res_bf_svx__p_resource_mr_in	C5AEEF49-E116-4DEC-BA8A-CD7C52E0E6FF
++g_f_res_bf_svx__p_resource_nb	53568EB2-E86D-41E4-B0E7-45E6E0273FAE
++g_f_res_bf_svx__p_resource_nl	949FDE20-9EA2-4196-9241-AE82CCAD72B1
++g_f_res_bf_svx__p_resource_nn	E0168915-6CF9-43F3-9708-1C9DB0C2ADAD
++g_f_res_bf_svx__p_resource_pa_in	D4326C62-208B-4980-8A63-09EEBE6205BD
++g_f_res_bf_svx__p_resource_pl	53CDAB76-1EF8-49CE-9E73-9F6AFF7A6905
++g_f_res_bf_svx__p_resource_pt	67575690-6A10-4B9E-88C3-C36DEAB55CF6
++g_f_res_bf_svx__p_resource_pt_br	4B965898-4642-4BC5-A522-28F69724862E
++g_f_res_bf_svx__p_resource_ru	33C2479A-4425-47F2-8C75-33FA925C8B98
++g_f_res_bf_svx__p_resource_rw	BEB82020-32D1-4F9E-BECC-2AC63BB6B0ED
++g_f_res_bf_svx__p_resource_sk	D4826C97-C466-4811-B7A7-005D2B5B6FD1
++g_f_res_bf_svx__p_resource_sl	2701C93C-9EF2-4B36-9180-BCFBE95582AE
++g_f_res_bf_svx__p_resource_sv	13A0633A-5946-4CCE-8F4B-4E25EEECE1AC
++g_f_res_bf_svx__p_resource_ta_in	094E894F-1504-45CC-AB93-B51983FAE55B
++g_f_res_bf_svx__p_resource_tr	8A74D40A-8121-423C-B35E-DB107B949E5E
++g_f_res_bf_svx__p_resource_vi	E4336E86-ECD9-4EF2-A653-2B3970290228
++g_f_res_bf_svx__p_resource_xh	59190121-F1AB-4AB7-A2F1-197580CE8057
++g_f_res_bf_svx__p_resource_zh_cn	60650689-628C-4497-8C1D-90D1B0CAD6CF
++g_f_res_bf_svx__p_resource_zh_tw	528C840C-9B32-4E69-9B55-6DDE497499D6
++g_f_res_bf_svx__p_resource_zu	637A49C8-3905-4723-872D-8B6243805E64
++g_f_res_bf_sw__p_resource_af	2AEB40EF-5E47-456C-ACFD-127B5FE8BA15
++g_f_res_bf_sw__p_resource_ar	FCF6AA48-2987-4AC3-AAF5-AC1551E03D40
++g_f_res_bf_sw__p_resource_be_by	79B73CF5-0422-4270-8EC9-E2126DCCDB5E
++g_f_res_bf_sw__p_resource_bg	85C3EAA9-9F30-4E95-B85C-B093938A12DF
++g_f_res_bf_sw__p_resource_bn_in	08351AC3-5DBF-44DF-96FB-507C6BAA82BA
++g_f_res_bf_sw__p_resource_br	4F04E5A4-EAB5-4592-8C62-00BB1818E446
++g_f_res_bf_sw__p_resource_ca	2451A8E2-987F-447C-A73A-B24ADDD8AE8D
++g_f_res_bf_sw__p_resource_cs	02FEF428-C6CC-46F1-A535-1884461D3FF9
++g_f_res_bf_sw__p_resource_cy	71BE3BC1-A34D-483B-B9EC-8434420B7275
++g_f_res_bf_sw__p_resource_da	A17F1CA9-E73F-48E8-BC44-ABCBCC8D9CDE
++g_f_res_bf_sw__p_resource_de	DECF308C-5977-4FA9-8658-A696A3101080
++g_f_res_bf_sw__p_resource_el	A105BD01-718E-443F-8A1B-03EDAC0655DB
++g_f_res_bf_sw__p_resource_en_gb	A45D5961-26AE-4831-AD49-24CB77C184E4
++g_f_res_bf_sw__p_resource_en_us	BF16B0EB-258E-4A0C-BFEC-44D3D219E284
++g_f_res_bf_sw__p_resource_es	EEC49DF4-7CEB-4AB3-BA5A-1816DE7184E6
++g_f_res_bf_sw__p_resource_et	9DB0C69E-8D06-47E2-B01B-11B251079139
++g_f_res_bf_sw__p_resource_fi	DE250274-68C3-44CB-9204-8B73B252088A
++g_f_res_bf_sw__p_resource_fr	C1997215-0857-45A7-A1D4-0AE71EDA754C
++g_f_res_bf_sw__p_resource_gu_in	571FF42C-455F-4121-9237-16886E5BE51B
++g_f_res_bf_sw__p_resource_he	8D7005AD-0A42-43F0-A997-1EA861A92B9E
++g_f_res_bf_sw__p_resource_hi_in	E43CEF25-014D-4FBC-987F-F0432576A42B
++g_f_res_bf_sw__p_resource_hr	0B0C2C18-52B7-40BD-BD4B-13BD6646EBD4
++g_f_res_bf_sw__p_resource_hu	9AB7D475-37F5-460B-85EF-E03CF5F25170
++g_f_res_bf_sw__p_resource_it	3B9FF378-957A-403E-9361-6550DD5552CF
++g_f_res_bf_sw__p_resource_ja	A6023433-CDD9-466D-AA62-7A3F6452C5A8
++g_f_res_bf_sw__p_resource_km	719B4388-9EF8-4C24-AB95-F96B8FE55DEE
++g_f_res_bf_sw__p_resource_ko	4596A27E-A501-4B25-BD67-434E844B99C2
++g_f_res_bf_sw__p_resource_lt	57584731-B3E2-43DE-BFEF-4D7098030E18
++g_f_res_bf_sw__p_resource_lv	DA7DAFFA-9EDC-4748-A847-100D26AEF4D0
++g_f_res_bf_sw__p_resource_mk	5263F609-7714-4D29-8906-01E3F69815F2
++g_f_res_bf_sw__p_resource_mr_in	4572CF1D-9F42-4EF8-8104-5308F9092023
++g_f_res_bf_sw__p_resource_nb	17E11113-4871-410D-9AFC-DA36416FF673
++g_f_res_bf_sw__p_resource_nl	3529D6AA-67AC-4AB0-82A9-508A66B0F594
++g_f_res_bf_sw__p_resource_nn	CA0DF61C-CFDF-4356-9B36-F80EE51275A2
++g_f_res_bf_sw__p_resource_pa_in	F679C62F-54FE-4EC7-905D-48C6A2B6C3BB
++g_f_res_bf_sw__p_resource_pl	2A2922E9-DB5E-4499-9CB1-BD4C0BC82CFF
++g_f_res_bf_sw__p_resource_pt	E370F4B4-F698-4C3B-B6FE-3222C4BA7041
++g_f_res_bf_sw__p_resource_pt_br	05F21ABA-D529-4DB9-ACD1-4273CFFEAFAF
++g_f_res_bf_sw__p_resource_ru	AAB45AAF-85E5-46A5-9CA1-5112B5708C14
++g_f_res_bf_sw__p_resource_rw	164BEC21-F9B7-4D3E-8F28-2CCB6DCA86F1
++g_f_res_bf_sw__p_resource_sk	8BFD8DC8-FB54-46BD-B203-5D6F2790628E
++g_f_res_bf_sw__p_resource_sl	25E75E2C-355B-4565-AE66-22F489CB16C8
++g_f_res_bf_sw__p_resource_sv	37E55E4A-481A-4A4E-82CA-1FB2E15CC4E2
++g_f_res_bf_sw__p_resource_ta_in	5FF113FF-38D9-46B9-BCF3-1B4DC507FB6C
++g_f_res_bf_sw__p_resource_tr	5A98F895-3BBD-4C4E-9128-353D5678BD70
++g_f_res_bf_sw__p_resource_vi	39DB2AB0-5B21-4C16-BA94-F111C3CA20DF
++g_f_res_bf_sw__p_resource_xh	1FF0A180-699C-4175-BDF2-37C73807A2EB
++g_f_res_bf_sw__p_resource_zh_cn	F0C78CE1-4512-4E1D-9DA0-DEB807DB6813
++g_f_res_bf_sw__p_resource_zh_tw	9E27F74A-7848-4D6E-A14B-09F0865D54B0
++g_f_res_bf_sw__p_resource_zu	B4647846-0F0A-4E59-9027-D0A61EF938DB
++g_f_res_bib__p_resource_af	66687AD2-DCFE-467D-BE2F-2D8CF2F6D04A
++g_f_res_bib__p_resource_ar	43DA6F90-6B6A-4410-AE1D-69C3E20AA142
++g_f_res_bib__p_resource_be_by	B33C61EB-A441-41EC-B5DB-4D2B0B2C17FA
++g_f_res_bib__p_resource_bg	013BCBCC-B9A0-4438-ABBB-1ED9483D89FB
++g_f_res_bib__p_resource_bn_in	FE1FDC0B-4307-42D2-BAD7-ED3DF43DB653
++g_f_res_bib__p_resource_br	B902E6D7-44D8-476E-B247-7983BE5C8952
++g_f_res_bib__p_resource_ca	2D420671-BACE-444C-9A7F-53D12A58F4D4
++g_f_res_bib__p_resource_cs	86CE0B43-8902-4F48-A5B3-DCF08AEE1BD0
++g_f_res_bib__p_resource_cy	407FE5EB-B20D-4C8F-8589-37696A22AF7C
++g_f_res_bib__p_resource_da	FEEA298B-2A9E-4E41-96AE-FE9FE057B056
++g_f_res_bib__p_resource_de	E5B1816E-D6DE-4FC9-B40B-EB6CF2BE84B7
++g_f_res_bib__p_resource_el	D5A66F1C-430D-4B43-BDBC-89560CDC84B2
++g_f_res_bib__p_resource_en_gb	1B8D7A31-1EEB-49C3-A81D-021ED0E28C93
++g_f_res_bib__p_resource_en_us	0E86A7C0-04B0-4CBB-897C-6B6374CF7FA0
++g_f_res_bib__p_resource_es	92E018CA-1113-4E58-8CE0-25784EEA3B10
++g_f_res_bib__p_resource_et	BF4BDB8D-FF3E-4CB1-B7CE-60B5CBF3431A
++g_f_res_bib__p_resource_fi	4216E1FB-2E50-4023-9D86-A741EBE5E705
++g_f_res_bib__p_resource_fr	635433D6-5F97-4C40-8C3E-D0F1A7749A43
++g_f_res_bib__p_resource_gu_in	435942B4-54FB-42D4-92E4-A8D434FE333A
++g_f_res_bib__p_resource_he	27B93520-8263-40AD-97EE-3D09E5E0D7F4
++g_f_res_bib__p_resource_hi_in	27B76CB9-A365-424E-91C5-9C714D61C5DF
++g_f_res_bib__p_resource_hr	D204E5D1-1BCD-4E56-A702-0C4BE8919ECA
++g_f_res_bib__p_resource_hu	272F35E9-40CA-491C-A799-29813EA7992D
++g_f_res_bib__p_resource_it	A1113259-6197-4F87-80C5-628FDB6EF714
++g_f_res_bib__p_resource_ja	93674B13-20D6-4779-9E10-E4EE74B33BD0
++g_f_res_bib__p_resource_km	3B6BAF45-70EF-4160-87A2-C3C9E00602E9
++g_f_res_bib__p_resource_ko	54A0AE52-1872-45DC-AAAC-277F80BD7418
++g_f_res_bib__p_resource_lt	A6527754-055F-4559-8B37-65CDD730D16C
++g_f_res_bib__p_resource_lv	913E6C38-5EEB-4491-8E19-1CE0BC3193F4
++g_f_res_bib__p_resource_mk	F3B0DE52-4B1B-4D60-B89D-55947C223207
++g_f_res_bib__p_resource_mr_in	A0422850-7672-41F2-9231-B241D967F446
++g_f_res_bib__p_resource_nb	1630F1C3-E759-426C-9BED-AA312D8BFE2F
++g_f_res_bib__p_resource_nl	10CE1956-C44F-4D40-81DB-026737AD4410
++g_f_res_bib__p_resource_nn	C619002B-D862-4865-979F-BA324EE68145
++g_f_res_bib__p_resource_pa_in	7B765C16-F3F9-4874-A936-74867DD71CD3
++g_f_res_bib__p_resource_pl	D3FBD01F-B80A-4438-804D-16C3ADDABD5E
++g_f_res_bib__p_resource_pt	86522674-10CA-4C45-9DD1-FB97D13C3E26
++g_f_res_bib__p_resource_pt_br	DA086CCF-725A-41B0-A64B-5873DCE0344F
++g_f_res_bib__p_resource_ru	E93F8F4F-B50D-43BB-8454-00613251B1B3
++g_f_res_bib__p_resource_rw	EB448357-B781-4518-BA1A-6DD6C91B5966
++g_f_res_bib__p_resource_sk	C7EC916B-DAE0-47DB-B084-5C4DD118C723
++g_f_res_bib__p_resource_sl	5511D29B-67B2-40C8-AE38-48692A21A46A
++g_f_res_bib__p_resource_sv	FA988540-FDA7-4725-9823-3635135C8DC8
++g_f_res_bib__p_resource_ta_in	5A4DF4F2-3091-4B91-80AE-21A3202986C3
++g_f_res_bib__p_resource_tr	07F7BF0B-F587-4632-A3B6-12DD819A6458
++g_f_res_bib__p_resource_vi	7DC52BE6-86E6-44B4-A5A9-65173E165326
++g_f_res_bib__p_resource_xh	2C618360-1E2A-463B-9B90-E5423E72AAE2
++g_f_res_bib__p_resource_zh_cn	6EF98B19-F3CB-4497-B7FA-99D238A3CABB
++g_f_res_bib__p_resource_zh_tw	6AAE4347-09D6-456B-BF3B-0050D6557FAE
++g_f_res_bib__p_resource_zu	A42147A9-4486-44E2-A43E-D248B252361C
++g_f_res_cal__p_resource_af	E23FE17E-D60A-4BCC-BA0F-0D38F50157E3
++g_f_res_cal__p_resource_ar	0DF7291B-5D70-4E20-89A8-70A26FEC70BF
++g_f_res_cal__p_resource_be_by	8CA2DF1A-CAC5-4DBD-A671-8DEAF2E6C1A2
++g_f_res_cal__p_resource_bg	473F88A1-F9F0-4B5E-8858-0E6538D838AC
++g_f_res_cal__p_resource_bn_in	FC446DE7-AAB9-4CA9-9943-5043310F4D52
++g_f_res_cal__p_resource_br	FA183032-6FB2-4B3A-A910-045E67BA068B
++g_f_res_cal__p_resource_ca	5F01BABA-D3C3-4113-A0F6-876A5A067ECE
++g_f_res_cal__p_resource_cs	1AFD6C24-B4D2-417B-BAB2-6FE768D9E095
++g_f_res_cal__p_resource_cy	270C6235-98E2-4337-AF81-B9A2F300DF20
++g_f_res_cal__p_resource_da	473F8FCC-12E0-44E6-B5E8-88DA23FBCFDF
++g_f_res_cal__p_resource_de	1798924F-9C75-4D6A-B29B-E06DFDE10B51
++g_f_res_cal__p_resource_el	48A579BF-2F57-4278-9E22-51BCA45DE28F
++g_f_res_cal__p_resource_en_gb	B8ED579A-44E9-439E-9145-272CB296457F
++g_f_res_cal__p_resource_en_us	B1215843-B642-4B1C-BCA9-79BE22BE5401
++g_f_res_cal__p_resource_es	FF428799-6138-47CB-A056-17BA833C1320
++g_f_res_cal__p_resource_et	172BBC87-CE8E-456D-8BB1-9B2AEB05D733
++g_f_res_cal__p_resource_fi	7CB31C2A-AA67-401E-926F-7E7CBF7098E2
++g_f_res_cal__p_resource_fr	F431E4AA-CBA5-4DD2-BA43-C46496858838
++g_f_res_cal__p_resource_gu_in	E3D2E545-89A1-4652-8D8C-9FF817056F01
++g_f_res_cal__p_resource_he	B25A8BA2-4F6F-4D39-850B-0D8F2F53F467
++g_f_res_cal__p_resource_hi_in	B8D38AF7-78FC-483A-A830-E8600A5F0D63
++g_f_res_cal__p_resource_hr	BFB0FBF9-37D0-420F-8654-E20C447BB77E
++g_f_res_cal__p_resource_hu	822A5717-65D7-44B4-AFD5-BCE1194EFC5F
++g_f_res_cal__p_resource_it	41BCD3F7-CCDC-454A-8578-87B1870A9320
++g_f_res_cal__p_resource_ja	CBAFCBC3-63F0-4FDC-8580-05B2F2FD9D43
++g_f_res_cal__p_resource_km	79722DA9-6C13-451E-8927-853313B0D9A8
++g_f_res_cal__p_resource_ko	AC4322A1-C92A-489A-BA01-70D949FDA61C
++g_f_res_cal__p_resource_lt	22EA11FE-5F2F-4423-890B-33B4AC13E0E6
++g_f_res_cal__p_resource_lv	5838D243-DABF-409F-B72E-263D97B9BE03
++g_f_res_cal__p_resource_mk	AFF8EAB9-2EFA-4245-A8BD-67FD835BBE2E
++g_f_res_cal__p_resource_mr_in	BD95949D-5494-4E29-BA71-83D30CB9D9EC
++g_f_res_cal__p_resource_nb	8B09B323-E87F-40F1-9E15-DBBC405ECBDE
++g_f_res_cal__p_resource_nl	4D4C18CF-33AA-434E-9C49-BBBA22F98035
++g_f_res_cal__p_resource_nn	7E91426F-79E1-4B25-9C1B-DD84022A95D4
++g_f_res_cal__p_resource_pa_in	6018373E-DE41-4FBC-A69D-31245EE8F251
++g_f_res_cal__p_resource_pl	B7274284-7669-4B62-B07A-3EFC31F96695
++g_f_res_cal__p_resource_pt	A9BD557C-B9EE-46DC-9581-3789D26F63CE
++g_f_res_cal__p_resource_pt_br	B311CA16-4058-4D38-B4C0-09C9BD121298
++g_f_res_cal__p_resource_ru	6A7F26BA-0736-4308-BB6B-274E458D6735
++g_f_res_cal__p_resource_rw	C8065569-D8A8-41C9-848F-AD4EFC770F8D
++g_f_res_cal__p_resource_sk	32DC083C-7475-4BCD-880D-F2246C35C5F6
++g_f_res_cal__p_resource_sl	45168F0A-4C9A-4C28-8856-2955267BAF3B
++g_f_res_cal__p_resource_sv	56E48687-EE4D-4936-AFA8-62A23EDD7A04
++g_f_res_cal__p_resource_ta_in	73E5B5F6-6807-4293-9F96-6E6ED1ACF761
++g_f_res_cal__p_resource_tr	18013258-6B77-4BB1-8956-7F1255A0FF12
++g_f_res_cal__p_resource_vi	EAC7CE70-5961-4D7E-9367-4DF345C48D4C
++g_f_res_cal__p_resource_xh	9C34DDC0-2679-4208-A7DE-A4CD2DDC38ED
++g_f_res_cal__p_resource_zh_cn	DFA13D7F-5332-4680-81BE-F4D30BA76010
++g_f_res_cal__p_resource_zh_tw	D1DD567E-12FE-402C-A8D1-330C9078F3B7
++g_f_res_cal__p_resource_zu	27AB42B0-6D3F-4B8A-BE34-973EB48C2955
++g_f_res_chartcontroller__p_resource_af	A9C3E73F-B513-4960-A947-C80EB6D3A585
++g_f_res_chartcontroller__p_resource_ar	76856933-B0D8-4094-A3FB-58A4F1043A04
++g_f_res_chartcontroller__p_resource_be_by	7011727F-51E2-4253-A761-607A0412B100
++g_f_res_chartcontroller__p_resource_bg	77DD11C3-02C1-4DEB-9EAF-BB4CE5DC41FD
++g_f_res_chartcontroller__p_resource_bn_in	E60EF55A-EE28-47F6-A7C2-BB654737C655
++g_f_res_chartcontroller__p_resource_br	26C8C07A-24A0-45AC-A928-D05C54B3B646
++g_f_res_chartcontroller__p_resource_ca	F70F1333-AFA7-4630-85C1-EE0C6D1AA2DF
++g_f_res_chartcontroller__p_resource_cs	C28A71EC-B8CD-48C6-9777-2AD0D26EBF21
++g_f_res_chartcontroller__p_resource_cy	0B08CD06-A614-4DE5-8595-9A1EBDCBA358
++g_f_res_chartcontroller__p_resource_da	2DE6D62A-35DB-4A16-AFE8-ED71C7562D8A
++g_f_res_chartcontroller__p_resource_de	CC9832E9-C67F-480D-9595-D19AA96511B2
++g_f_res_chartcontroller__p_resource_el	9B87C820-A339-46FF-8162-D8063FC841B7
++g_f_res_chartcontroller__p_resource_en_gb	B2ADEDB1-C305-4A42-9751-F137D6248EDA
++g_f_res_chartcontroller__p_resource_en_us	0AE531D3-EDC7-49EA-86CF-0E445CCA1180
++g_f_res_chartcontroller__p_resource_es	32DC6455-C748-43B6-9A43-2EF9D1373D68
++g_f_res_chartcontroller__p_resource_et	0AEA1992-4322-44CA-A5BC-33063C0F3169
++g_f_res_chartcontroller__p_resource_fi	7846460D-C16E-4802-9088-C8A1618FFF17
++g_f_res_chartcontroller__p_resource_fr	C1419598-20ED-4419-8F92-6EAE809EEB3F
++g_f_res_chartcontroller__p_resource_gu_in	C3E153E8-5432-4EEF-8064-5574E8C01F4F
++g_f_res_chartcontroller__p_resource_he	325B07C9-4523-4EA8-87DB-A8CA46A59FF1
++g_f_res_chartcontroller__p_resource_hi_in	6944C981-8D3F-4F12-B453-4894C718301B
++g_f_res_chartcontroller__p_resource_hr	B7F4AFF5-425A-4225-9272-3AE1EC7723D1
++g_f_res_chartcontroller__p_resource_hu	76CB340B-3CDE-4506-8CEE-B6D6629E66DA
++g_f_res_chartcontroller__p_resource_it	1077C346-CE94-4773-9DE0-BF16153C638E
++g_f_res_chartcontroller__p_resource_ja	6C3978FB-7991-4F47-BE82-FD7B2E7ECCBA
++g_f_res_chartcontroller__p_resource_km	DBD1A7F2-0F5A-4679-B5F0-22E7C6A70EA7
++g_f_res_chartcontroller__p_resource_ko	6E9A38B3-2386-422D-AE14-9BD4E8F9A646
++g_f_res_chartcontroller__p_resource_lt	BECB414F-4D3B-4844-BC1B-1F9F5BF2B055
++g_f_res_chartcontroller__p_resource_lv	62B72D77-DAE1-4B74-A892-A7DFFD8E137B
++g_f_res_chartcontroller__p_resource_mk	7F432DF0-0173-4394-A013-651DA05B79DD
++g_f_res_chartcontroller__p_resource_mr_in	0CA1C932-BDDC-4F21-8782-9F9EFF6856A8
++g_f_res_chartcontroller__p_resource_nb	AB9D8CF3-B920-4DEA-87F0-4EA117248008
++g_f_res_chartcontroller__p_resource_nl	83D9BDFF-C518-4E77-8488-0D93D7B28701
++g_f_res_chartcontroller__p_resource_nn	7787B3B1-F4E2-424B-B428-6CF317D3097A
++g_f_res_chartcontroller__p_resource_pa_in	D0E6A9C3-A5A5-4916-ACD0-43CDD0653168
++g_f_res_chartcontroller__p_resource_pl	1030B09B-0230-4233-9791-D325738BBD1A
++g_f_res_chartcontroller__p_resource_pt	068AAEC6-DA67-4430-BDDA-7B2C0FCD51C9
++g_f_res_chartcontroller__p_resource_pt_br	8E9678F6-633B-439C-8037-50E2772261B3
++g_f_res_chartcontroller__p_resource_ru	DB9D3155-51EB-466A-BBCC-9B755AC7B8EB
++g_f_res_chartcontroller__p_resource_rw	B4CAC3A4-4A50-4D07-A78B-416D15AF9D16
++g_f_res_chartcontroller__p_resource_sk	8846D296-287D-4FEB-961E-E5036B34A923
++g_f_res_chartcontroller__p_resource_sl	21CC5C1D-BFD8-493C-96BD-F47CF69D2203
++g_f_res_chartcontroller__p_resource_sv	3478BE05-4A27-4EDB-AF0E-3BF20955EDA7
++g_f_res_chartcontroller__p_resource_ta_in	8C08FCB1-3A30-401A-B729-5C466CF715F7
++g_f_res_chartcontroller__p_resource_tr	2BE3EFF4-3AC6-4495-9A10-4CB4846C7F20
++g_f_res_chartcontroller__p_resource_vi	78F47C7C-3D25-43FF-82AB-E80069441563
++g_f_res_chartcontroller__p_resource_xh	1EE10152-25C7-43F0-80AB-B112B03FA5CB
++g_f_res_chartcontroller__p_resource_zh_cn	2D7FF7DC-D34C-4FFD-B017-8ED31083F3D8
++g_f_res_chartcontroller__p_resource_zh_tw	3E6C717D-07A7-496E-9B6B-5077E0E64DBB
++g_f_res_chartcontroller__p_resource_zu	BDFFC138-BB96-4E9E-8D04-DF9C7381613F
++g_f_res_cnr__p_resource_af	5C2362DD-DDA8-490B-B62C-022A19FA0A7C
++g_f_res_cnr__p_resource_ar	A62CBDCF-B6C0-452E-B755-AA8049D0B03B
++g_f_res_cnr__p_resource_be_by	ACA4AC04-72E3-4CE1-A3F7-609143CD924C
++g_f_res_cnr__p_resource_bg	E39F2B0F-6190-44ED-8EFA-C646C1AEA04B
++g_f_res_cnr__p_resource_bn_in	9618D36C-6654-49BC-8C46-BDCB1E4B546F
++g_f_res_cnr__p_resource_br	F2EDFB7A-8AC2-4531-86B8-66FEBB14D8F7
++g_f_res_cnr__p_resource_ca	41EB91B7-C528-4AC3-8FCC-612D1ED5E264
++g_f_res_cnr__p_resource_cs	4B4609E2-7963-4178-B7C6-A1FFFAC982A7
++g_f_res_cnr__p_resource_cy	C7038CB1-482C-4F88-87DC-F4DB2E5DD5E4
++g_f_res_cnr__p_resource_da	86FBDDA6-F0FC-4D39-852C-9F011BAE89ED
++g_f_res_cnr__p_resource_de	5B8A7C4C-40A4-4283-8ECC-9E5A2376AAAA
++g_f_res_cnr__p_resource_el	B085AC9D-BEB1-4644-B86D-E462A9B85F4E
++g_f_res_cnr__p_resource_en_gb	8514D852-6F77-4DC8-8CCD-6F11084E36F7
++g_f_res_cnr__p_resource_en_us	CDE0647D-A528-447B-AB63-61C9E367BE0F
++g_f_res_cnr__p_resource_es	31EC695C-BBDA-43E2-AA47-6773ABD6EE3B
++g_f_res_cnr__p_resource_et	DE9DCA2E-03E3-4BFE-92AC-D5966F662AEC
++g_f_res_cnr__p_resource_fi	0D263ACB-C701-4EA6-8557-1F1A7C3B15F5
++g_f_res_cnr__p_resource_fr	7B6AF2EC-DC9B-41EA-874D-C97BD6403930
++g_f_res_cnr__p_resource_gu_in	9C606580-42A1-470A-A699-0FBFC11987FF
++g_f_res_cnr__p_resource_he	93B27121-24A2-4676-BD9C-090DBF1B25DA
++g_f_res_cnr__p_resource_hi_in	959D1476-C1DC-4B3B-941A-FFEF9B58165D
++g_f_res_cnr__p_resource_hr	A445EB27-B11D-413E-A5C7-C9353765FD75
++g_f_res_cnr__p_resource_hu	65BD4F0D-B172-4C57-A6F7-DEC95A637F1C
++g_f_res_cnr__p_resource_it	894B4FB8-23BA-4B2A-8327-CAC1DA96DE5A
++g_f_res_cnr__p_resource_ja	4C07C199-0897-408A-8CB1-4100F565BC7D
++g_f_res_cnr__p_resource_km	8B28575F-CDCF-4BC5-8DE1-44930B155084
++g_f_res_cnr__p_resource_ko	5D5D790D-5F51-4417-B186-871A38746E60
++g_f_res_cnr__p_resource_lt	49AF0F65-D4C0-4FF9-8B32-326C29B546E8
++g_f_res_cnr__p_resource_lv	591CEDD9-AFCC-4FDF-8448-3A594A66CFAC
++g_f_res_cnr__p_resource_mk	AF0DB787-A02A-473E-82D2-8114C921D294
++g_f_res_cnr__p_resource_mr_in	8919A3DA-C7B9-4944-9D2A-58C4653236F5
++g_f_res_cnr__p_resource_nb	F9F202B1-AFF5-472A-B300-2D883434BEC5
++g_f_res_cnr__p_resource_nl	AE21A320-93D8-4226-8795-DB9D5319A470
++g_f_res_cnr__p_resource_nn	E14A84D9-97BB-4EEC-9076-02C1D3B26933
++g_f_res_cnr__p_resource_pa_in	DDBE1023-6A46-4808-AA29-03CD4A764762
++g_f_res_cnr__p_resource_pl	4B692C31-C848-4740-94C6-C753261EF89D
++g_f_res_cnr__p_resource_pt	F8A49A63-FA8A-44C5-8D10-76363CAD1B95
++g_f_res_cnr__p_resource_pt_br	E8706927-AAA5-4CD7-91D8-05626B9C2A09
++g_f_res_cnr__p_resource_ru	0EBE0FAD-FD0A-45C8-9777-E380D90E0A2F
++g_f_res_cnr__p_resource_rw	E7EC97AF-DCF6-4CE6-9F4E-1DE4277DFAC8
++g_f_res_cnr__p_resource_sk	13E9E13D-E1E6-4AA9-B674-1BAFEAF44F9E
++g_f_res_cnr__p_resource_sl	829BA541-CE86-4B6B-B586-8DC9CF04DECC
++g_f_res_cnr__p_resource_sv	455B1640-20B1-454E-9D9C-253967DEFC04
++g_f_res_cnr__p_resource_ta_in	D8E63168-629F-4869-8942-9711D135FE2F
++g_f_res_cnr__p_resource_tr	25D3B7C9-3CD0-4E7D-BE4D-6F1B63947528
++g_f_res_cnr__p_resource_vi	74ECB039-AED6-432A-B1FC-B80F3A1F4A3F
++g_f_res_cnr__p_resource_xh	07A68FAE-761E-406E-9AD8-9126366939E0
++g_f_res_cnr__p_resource_zh_cn	03D8C7A9-D254-423E-9F52-795E7B617141
++g_f_res_cnr__p_resource_zh_tw	DB6B44E1-B7A2-4512-A39F-5F8370424586
++g_f_res_cnr__p_resource_zu	4A373EE9-12B2-4358-8D26-65F5F926A3FC
++g_f_res_date__p_resource_af	E71872F5-B74A-462E-8085-6D1229CCCB68
++g_f_res_date__p_resource_ar	5BA55B55-3B61-477E-A480-F072830A7D1B
++g_f_res_date__p_resource_be_by	AFC26A0B-47F3-4E94-A71D-C14E3660400E
++g_f_res_date__p_resource_bg	AEFDF3B9-FE87-4A88-939D-2537CC65B051
++g_f_res_date__p_resource_bn_in	65E026D1-0D1E-48CF-BA7B-B251EA4E8913
++g_f_res_date__p_resource_br	5D35BB34-00FA-4527-A46D-D19E5FFF933D
++g_f_res_date__p_resource_ca	9CECECC3-938E-4C30-8C61-4A79F9990208
++g_f_res_date__p_resource_cs	2F219496-0620-4F46-A105-90828928F7D9
++g_f_res_date__p_resource_cy	6778CFC2-1ACB-4780-90B4-1E0BEDAB0268
++g_f_res_date__p_resource_da	AAE1C016-2EF1-4D33-A732-15D0ADDD0BFA
++g_f_res_date__p_resource_de	74287C38-BEA5-4853-8228-5ECD411B622D
++g_f_res_date__p_resource_el	521FA2A3-9BEA-4058-A28A-C5588EDD4297
++g_f_res_date__p_resource_en_gb	8F2AA1F5-D135-44C6-8B66-E6764CD06B92
++g_f_res_date__p_resource_en_us	A235B488-D5ED-4A0D-8EFA-821EE3906943
++g_f_res_date__p_resource_es	19FDF309-954F-4E1D-937E-8FBBDC41F044
++g_f_res_date__p_resource_et	D8DCB268-E8A6-469A-8E22-3093B0E8B0DF
++g_f_res_date__p_resource_fi	7F2C6FE3-2CCF-4A19-9DB9-FB86F4A73399
++g_f_res_date__p_resource_fr	E7CB4E85-B915-4909-95D5-BFADD7D5EB4B
++g_f_res_date__p_resource_gu_in	58E08663-B567-48BF-9F4B-9594CFB44A5A
++g_f_res_date__p_resource_he	57D820D3-764D-4CD7-9905-07A2DB148451
++g_f_res_date__p_resource_hi_in	E2B2D5D1-B279-47EB-A57D-3A30BD7F0510
++g_f_res_date__p_resource_hr	C70420E2-0A5D-476A-BD70-1A764D2DADDB
++g_f_res_date__p_resource_hu	FD9034D2-D1FD-41FB-9373-48FDDE10E89E
++g_f_res_date__p_resource_it	027D569A-DE88-4D67-A57B-1AABA9C4CB53
++g_f_res_date__p_resource_ja	6CD1619F-F89A-488F-B309-F06877EFF3B7
++g_f_res_date__p_resource_km	39C89BED-A3F9-4004-BA15-E4188FE86B6F
++g_f_res_date__p_resource_ko	8E14F7DB-9842-4E13-A295-396A11EA6E36
++g_f_res_date__p_resource_lt	368B7021-F670-4F24-A910-D005C64D3FFA
++g_f_res_date__p_resource_lv	B793ABED-CDFE-4973-B5DE-5453831358D8
++g_f_res_date__p_resource_mk	9CD0262E-58CA-4100-B7FA-34FEBBEBF813
++g_f_res_date__p_resource_mr_in	A5C9F7A2-A79F-4215-B045-E6D98527071D
++g_f_res_date__p_resource_nb	90713149-9F19-4DB8-95CE-DEF94FB6AC32
++g_f_res_date__p_resource_nl	2812FD99-027E-421B-BFD8-382A06E78454
++g_f_res_date__p_resource_nn	0BDE15F2-CC39-46C8-B68F-3B9B0C865507
++g_f_res_date__p_resource_pa_in	7819BC90-0783-400E-9202-38DA8611BBB1
++g_f_res_date__p_resource_pl	1F6050EB-8A3F-48A7-96DC-36EEDB2F58C3
++g_f_res_date__p_resource_pt	BE69BE10-D59F-40B8-A1CA-66BCA05D01ED
++g_f_res_date__p_resource_pt_br	9B280E1D-B86A-44A9-880E-D15223BD0259
++g_f_res_date__p_resource_ru	57E709CD-17A5-4A69-AFD0-A080BA2EB63A
++g_f_res_date__p_resource_rw	681F5AA1-7B70-4AE0-B595-BDDAA0013EDD
++g_f_res_date__p_resource_sk	4981DE99-7931-4439-9ED9-B1E8149F6AE7
++g_f_res_date__p_resource_sl	8752D998-57AF-47D6-BD80-429B3D8E66D1
++g_f_res_date__p_resource_sv	1782EC48-E738-4F6C-BBAD-DBF2F6E96E41
++g_f_res_date__p_resource_ta_in	4CFEA8C3-A426-4E10-99FE-D795E3706F5D
++g_f_res_date__p_resource_tr	E01B402F-C864-42F0-9BA5-7AD274D3EE88
++g_f_res_date__p_resource_vi	D4C9DBE6-0FC7-4FF4-9D9D-D94DDB6A017D
++g_f_res_date__p_resource_xh	D69A2CDC-164A-4B2D-A38C-11453F7B9C49
++g_f_res_date__p_resource_zh_cn	49A702E2-8025-4E18-8343-4A28DCA0383E
++g_f_res_date__p_resource_zh_tw	AE04DC52-41EA-4AC3-AB3F-60C9A072A3E2
++g_f_res_date__p_resource_zu	01E484D7-46AF-4E30-AA6D-FA6E13E4D4C2
++g_f_res_dba__p_resource_af	6ACD1BB9-6CEF-486E-87CA-37D80546DFE4
++g_f_res_dba__p_resource_ar	3AA27C39-DD39-4D01-A348-48596A185599
++g_f_res_dba__p_resource_be_by	22480743-1D00-4FCA-BF75-3FC414F86520
++g_f_res_dba__p_resource_bg	2E66D314-097A-46AD-B5E9-997D5B5D7D9C
++g_f_res_dba__p_resource_bn_in	A292A75D-DAE3-4C76-813E-1CDCB4F58753
++g_f_res_dba__p_resource_br	DACDEF67-7B12-4DBE-842F-B97B5501545C
++g_f_res_dba__p_resource_ca	1B79F034-859F-46D4-8F8B-10C6B444E892
++g_f_res_dba__p_resource_cs	FD7CCC52-32E2-4DFF-B5D0-6672F4C55D13
++g_f_res_dba__p_resource_cy	C66A5CB4-93BA-4A07-85E1-74309BAFC2F5
++g_f_res_dba__p_resource_da	CC6F8C51-918B-4ACF-9175-52474EABE9AD
++g_f_res_dba__p_resource_de	D2C9E721-DD0C-499C-8A83-980E0F8FCA4F
++g_f_res_dba__p_resource_el	4F7FBAA4-400E-4C7B-86C7-AD2E147DA8F4
++g_f_res_dba__p_resource_en_gb	3FE30207-5093-47FE-ACCD-7B40E3DB68A0
++g_f_res_dba__p_resource_en_us	EA3E7538-607D-46A2-9418-53151A00F0E1
++g_f_res_dba__p_resource_es	EDD8CA92-66B5-431F-BC47-A5FA55F9CAD8
++g_f_res_dba__p_resource_et	A76444B8-234C-4DF9-B18F-225DAE01F042
++g_f_res_dba__p_resource_fi	C08E0D5D-86C0-45D9-8F67-F0E04AB31CE1
++g_f_res_dba__p_resource_fr	77643B73-C4BA-440D-AB79-88FF71EEE7B3
++g_f_res_dba__p_resource_gu_in	9EDBD56E-374E-4DC6-9048-C335F458ADAC
++g_f_res_dba__p_resource_he	C4327B97-744F-45B2-8831-D2E8707CA7B2
++g_f_res_dba__p_resource_hi_in	80BA9775-9BC6-42D1-9503-1ECF5CF1C14A
++g_f_res_dba__p_resource_hr	AC93C9C2-9EAB-4FD7-9016-835E5F438120
++g_f_res_dba__p_resource_hu	7557202B-53A7-4DFA-8A91-36A4568A4801
++g_f_res_dba__p_resource_it	1746B9DB-F353-4679-B1A3-E0293F4A80EE
++g_f_res_dba__p_resource_ja	1C1DA8AE-53C4-496F-9F0E-F41CFA194CB5
++g_f_res_dba__p_resource_km	11CD9B89-473B-4F30-8603-1A6ABF643CFF
++g_f_res_dba__p_resource_ko	8E34C316-9455-4DEF-9DD9-E443B2ED914A
++g_f_res_dba__p_resource_lt	697CB342-3EB4-494F-9A56-55AEF66D34AF
++g_f_res_dba__p_resource_lv	6E849644-F3C5-4ECE-A581-01921BF1434A
++g_f_res_dba__p_resource_mk	421AB2DC-95AA-46C3-B034-346373C5529F
++g_f_res_dba__p_resource_mr_in	D792DFFF-F9D3-4232-A45C-841A3FC9672D
++g_f_res_dba__p_resource_nb	AE8762FE-5F5C-43B8-94D0-87EE5804B5DD
++g_f_res_dba__p_resource_nl	EAD8E11A-2476-442E-B998-7B2F50B01947
++g_f_res_dba__p_resource_nn	92045943-E41D-47E6-8C83-14556291762A
++g_f_res_dba__p_resource_pa_in	8E162818-6AC3-4700-963A-1F433A212A55
++g_f_res_dba__p_resource_pl	841BE420-B586-4990-8869-42B91187AF9E
++g_f_res_dba__p_resource_pt	72A87C65-55AF-44B7-A040-AF45CDCAA4DC
++g_f_res_dba__p_resource_pt_br	5261B0C2-E6EB-4CFC-B827-7CCA5D69C882
++g_f_res_dba__p_resource_ru	B10A117D-53A1-4C7B-BCDD-2F394329A867
++g_f_res_dba__p_resource_rw	65515AF3-50DB-40A0-81CC-7EC2AC1484D3
++g_f_res_dba__p_resource_sk	718D4CF9-B6AC-462E-BDCF-246C367EFE01
++g_f_res_dba__p_resource_sl	F74C11A9-90D9-40D3-B686-2B25BF72C3EF
++g_f_res_dba__p_resource_sv	8AEFEEF2-389E-4B89-A86F-D807C1653DB1
++g_f_res_dba__p_resource_ta_in	75D43CB0-49F6-42DD-B133-BD8A206F0D6E
++g_f_res_dba__p_resource_tr	6B7AD191-F24D-442F-BE48-AA6490B3A4DA
++g_f_res_dba__p_resource_vi	AD40A12B-08CA-4B84-B6D3-9B580664FE85
++g_f_res_dba__p_resource_xh	4D1D36AC-2FDC-48AA-992C-68031F44837C
++g_f_res_dba__p_resource_zh_cn	257029D1-36D6-4092-A9A4-29B852730215
++g_f_res_dba__p_resource_zh_tw	C1ADE250-FEAD-4212-A58F-69F3537D188E
++g_f_res_dba__p_resource_zu	5611532E-CB94-422C-A2F1-046DFC54CC6E
++g_f_res_dbp__p_resource_af	E81B4296-D216-4D88-B818-5FBA096C9062
++g_f_res_dbp__p_resource_ar	5C651144-878B-4EA4-94EA-9007D7D0BF09
++g_f_res_dbp__p_resource_be_by	49C20FE8-B4C2-42AE-9FB0-C777C26583F2
++g_f_res_dbp__p_resource_bg	A80D0671-E9D7-4A2F-8D7A-70DB5414C977
++g_f_res_dbp__p_resource_bn_in	B41D666E-7856-47FA-860B-7B5A4803A80F
++g_f_res_dbp__p_resource_br	6B3A81AE-E7F3-48F6-8017-A89E4F788538
++g_f_res_dbp__p_resource_ca	7001AE8A-EA91-432B-9E79-1F80A99FA548
++g_f_res_dbp__p_resource_cs	0877417D-36FE-4833-AF37-3010905EB102
++g_f_res_dbp__p_resource_cy	AC47C170-605C-4C0B-93D6-0AD4FDF5A12B
++g_f_res_dbp__p_resource_da	619E4C19-E04B-44C4-98C2-C475AE34FD8F
++g_f_res_dbp__p_resource_de	3A19A65E-411B-4791-B2AC-FF0C73BB9255
++g_f_res_dbp__p_resource_el	B75E737A-00DD-4EC9-88CB-928DDA4DF460
++g_f_res_dbp__p_resource_en_gb	93BE39D3-37A9-4BB7-A34E-2CC715BE7572
++g_f_res_dbp__p_resource_en_us	C3897E2E-7F7E-4639-95EF-07473B8360EC
++g_f_res_dbp__p_resource_es	362E2BF2-C3C0-42B3-9438-691085232F4F
++g_f_res_dbp__p_resource_et	C7C2E285-5CFE-4AD2-974D-64201A89D8C6
++g_f_res_dbp__p_resource_fi	C48E8461-594A-48E1-BA2B-F6FB7052DFAF
++g_f_res_dbp__p_resource_fr	3F8963B3-4796-4220-A8DE-F189338C8ADC
++g_f_res_dbp__p_resource_gu_in	93EC0516-FFEE-485C-A5C8-90C4B0BF1F17
++g_f_res_dbp__p_resource_he	D55015B2-75A4-4E3B-A230-3F65F0418D50
++g_f_res_dbp__p_resource_hi_in	5FE2115C-8590-453F-849A-E4B63A83FE3E
++g_f_res_dbp__p_resource_hr	7C3C15C2-7FD5-4AFD-8740-971F34E41032
++g_f_res_dbp__p_resource_hu	B0402717-86FA-420D-BA6B-0DDF872F6A50
++g_f_res_dbp__p_resource_it	9C18027B-B931-488B-AC8E-BCC343DA3D83
++g_f_res_dbp__p_resource_ja	20A3934B-A300-4A1F-A49E-A184603DBF6E
++g_f_res_dbp__p_resource_km	84349E74-3F08-427A-AA52-2A75C906342B
++g_f_res_dbp__p_resource_ko	FCB39648-F873-4172-AC51-8FD9DED27C42
++g_f_res_dbp__p_resource_lt	A25C19F7-06EA-49CB-A6F4-E999F683CAFC
++g_f_res_dbp__p_resource_lv	CA435793-5801-4E0F-BA23-434D6388FF68
++g_f_res_dbp__p_resource_mk	C257C1C8-07A1-4AD1-B03E-FBDB596B5134
++g_f_res_dbp__p_resource_mr_in	248CADB5-888C-4270-8416-C07BE384B582
++g_f_res_dbp__p_resource_nb	52C536D4-F1CE-4836-A00C-3B738A06E768
++g_f_res_dbp__p_resource_nl	7E56289F-6E8E-4B49-88D2-E96658C4AC86
++g_f_res_dbp__p_resource_nn	8112AF56-5EE0-4939-98F2-D0753A71EAAE
++g_f_res_dbp__p_resource_pa_in	3E83F188-2ECD-4067-942C-E1DAE111B8C7
++g_f_res_dbp__p_resource_pl	0F9AE656-C583-45BF-ABAD-F59F6E30A083
++g_f_res_dbp__p_resource_pt	01B2E98B-7E0E-48CC-8806-4135627991EA
++g_f_res_dbp__p_resource_pt_br	A177AA3E-5EF7-4161-B32C-D467266B66A4
++g_f_res_dbp__p_resource_ru	C31DCA54-5BC3-4190-8452-90F4850E79C3
++g_f_res_dbp__p_resource_rw	6B2550CA-1DB5-4257-81D8-D19B34A4C797
++g_f_res_dbp__p_resource_sk	1BFAFA2C-26D8-4EA0-8577-757B21D847F6
++g_f_res_dbp__p_resource_sl	C9224CC5-36D4-4A90-BCB3-4ADB608ABC9E
++g_f_res_dbp__p_resource_sv	5D83B275-AF84-4759-9C14-BA030D2DE1EF
++g_f_res_dbp__p_resource_ta_in	9C500621-F34E-4FEF-A889-3794234847DF
++g_f_res_dbp__p_resource_tr	A06D1329-B8B0-456F-A362-1AB68F4C097F
++g_f_res_dbp__p_resource_vi	DB69C1BC-C1D2-42F6-B24B-35CEEDB388CD
++g_f_res_dbp__p_resource_xh	228C4935-95D9-4B22-9815-7D9558FB4AF7
++g_f_res_dbp__p_resource_zh_cn	C99E1456-4095-40E8-BD7D-FD8A4F1BC010
++g_f_res_dbp__p_resource_zh_tw	2A8A6B2F-ED70-4ED7-9D2C-51C044B6A070
++g_f_res_dbp__p_resource_zu	3FE24412-28C0-4984-98C0-AC48B486DD28
++g_f_res_dbu__p_resource_af	0D5EA90D-C927-4BAC-BC3F-7EBEFC1122D2
++g_f_res_dbu__p_resource_ar	86882AA5-29AB-4219-910D-CC244B6CE247
++g_f_res_dbu__p_resource_be_by	3C9AD22F-B155-4273-813E-D39C8531466B
++g_f_res_dbu__p_resource_bg	32C7EF5B-F334-4355-AAEA-F146DD379101
++g_f_res_dbu__p_resource_bn_in	C92CC53E-895F-4C07-BC59-83C4F70484BB
++g_f_res_dbu__p_resource_br	AFA2F0CD-40ED-4E9F-A53A-81951B26855D
++g_f_res_dbu__p_resource_ca	2C5EE96C-BA50-4448-8CAA-DD4848BBE8F8
++g_f_res_dbu__p_resource_cs	4FD373B1-2F95-43CF-8F55-4F9554D1B621
++g_f_res_dbu__p_resource_cy	E4E5AB59-A02F-4D12-AA39-6F66EFCD18F6
++g_f_res_dbu__p_resource_da	1BB8EAF7-F321-4335-9293-4B069AB0522A
++g_f_res_dbu__p_resource_de	8636ED11-C1B1-4284-9441-378A9A4B47B8
++g_f_res_dbu__p_resource_el	F7D564F6-AEA7-488C-8D3F-4C93B19125B3
++g_f_res_dbu__p_resource_en_gb	DF445D3D-3DC0-460F-A67E-AA4CC0C83321
++g_f_res_dbu__p_resource_en_us	DD54454E-4AA0-4C8D-8A85-D0ED5E1B8261
++g_f_res_dbu__p_resource_es	F3FE321A-72BB-4F98-B826-25B599D7A895
++g_f_res_dbu__p_resource_et	23F316DE-EF13-46F6-97AD-0715629C1BDC
++g_f_res_dbu__p_resource_fi	CC760AD7-7F0B-4CD6-B403-3875EBF99C5F
++g_f_res_dbu__p_resource_fr	E5545260-1F89-4BE6-BECD-0AA89B65DC0E
++g_f_res_dbu__p_resource_gu_in	2694E0DF-F134-4576-9D29-F7BE7EA46CA7
++g_f_res_dbu__p_resource_he	92EBB044-56DF-48BD-B2F2-27AC0AB3B828
++g_f_res_dbu__p_resource_hi_in	2FE6B2AE-65F3-4740-A74F-9725878AB9B7
++g_f_res_dbu__p_resource_hr	DA25103D-3445-49C6-AD93-F100FF71777F
++g_f_res_dbu__p_resource_hu	46829DB5-3FB3-412F-9B88-5BAEA512B42F
++g_f_res_dbu__p_resource_it	FA05F4AE-0DFF-4795-A22F-3DDA5607353D
++g_f_res_dbu__p_resource_ja	D448E7BD-F0A7-4504-8C0A-661837674C4C
++g_f_res_dbu__p_resource_km	60B6B3E8-079D-462B-BE92-064551B8AB7D
++g_f_res_dbu__p_resource_ko	43C52107-541B-4C53-8C6C-5F604AD1F07F
++g_f_res_dbu__p_resource_lt	7A5060B0-9CB9-43E3-BD17-75B022F36E15
++g_f_res_dbu__p_resource_lv	E9EBD32A-35BC-4434-B79B-42B9B6CE00B4
++g_f_res_dbu__p_resource_mk	45FCABC9-D45A-490F-B7C0-74147F59E303
++g_f_res_dbu__p_resource_mr_in	F16C78E5-DCBA-4A2F-9963-A41C2C02D2B9
++g_f_res_dbu__p_resource_nb	13E386D9-0856-49E5-BFD1-489DBE5A19A2
++g_f_res_dbu__p_resource_nl	7C641214-74ED-4BB7-BFC3-622CAD93B307
++g_f_res_dbu__p_resource_nn	C3B7B30E-E36A-4D37-8D65-5C4CDA60B8F9
++g_f_res_dbu__p_resource_pa_in	3FE47EAB-9AF0-4657-943B-F146DFE0EF99
++g_f_res_dbu__p_resource_pl	28653CEF-167C-4238-91E0-4E07DBA6D735
++g_f_res_dbu__p_resource_pt	EDF42E47-85C3-4130-9DD4-D9A9E497E523
++g_f_res_dbu__p_resource_pt_br	A1DCC25B-9A57-48A9-B1AF-579110F0F276
++g_f_res_dbu__p_resource_ru	9E0A40E1-AA43-402A-BA36-713A8FD17102
++g_f_res_dbu__p_resource_rw	8807097F-2087-4C4F-BEF2-4AEA559F40F3
++g_f_res_dbu__p_resource_sk	FA1172F6-440F-4ECF-BECE-252A4B02176C
++g_f_res_dbu__p_resource_sl	14E53EC1-BDDC-48BF-B0D6-5DC0721EA279
++g_f_res_dbu__p_resource_sv	21C83134-20B0-47E9-B4F8-C0AF223B0D6C
++g_f_res_dbu__p_resource_ta_in	A5F90B4C-A518-45A0-9C0C-90628865B8E5
++g_f_res_dbu__p_resource_tr	1612F8E3-18B1-4AD5-A67E-FFA8083946E5
++g_f_res_dbu__p_resource_vi	FE669F76-8769-40B8-9EB5-08B308348548
++g_f_res_dbu__p_resource_xh	2E0D1A00-4EC8-487E-AC7A-C3DA02F58D73
++g_f_res_dbu__p_resource_zh_cn	7C4DF441-A66B-4ADE-A51D-40159E4CBB7B
++g_f_res_dbu__p_resource_zh_tw	77DC5A40-93DF-4572-AEC0-5DE7A9CA8261
++g_f_res_dbu__p_resource_zu	A5280218-7121-444D-B2C7-FF5808BBC55A
++g_f_res_dbw__p_resource_af	2C653E9B-3A1C-4602-94C3-1691129B0EB3
++g_f_res_dbw__p_resource_ar	DDBD4D33-2485-421B-95E4-EE169E39E383
++g_f_res_dbw__p_resource_be_by	D77A873C-BFE6-45F9-B9ED-3864381BB3E5
++g_f_res_dbw__p_resource_bg	F3062DE3-A793-4FB1-B8EB-5984628BE582
++g_f_res_dbw__p_resource_bn_in	9A2804AE-AE6E-446B-97F3-D7EB68198F2A
++g_f_res_dbw__p_resource_br	365C8B64-AB4F-4915-8E4B-98E79F0B95CA
++g_f_res_dbw__p_resource_ca	38555A14-B548-45FB-B5AD-BE9A1F5E892F
++g_f_res_dbw__p_resource_cs	73475B63-34E5-4DED-9E15-DDB9CFFB0430
++g_f_res_dbw__p_resource_cy	F5B25114-2390-4761-B567-10CFB69D60D7
++g_f_res_dbw__p_resource_da	47FB0EAD-F069-452C-9665-130346345E00
++g_f_res_dbw__p_resource_de	5429EE77-18F3-4BCD-9EDC-C59BE2D3FC4A
++g_f_res_dbw__p_resource_el	7268BB47-AEF0-4BB0-8D3C-E544FFD3A48D
++g_f_res_dbw__p_resource_en_gb	051C8CC2-2BF1-4C55-B37D-CA641D7E3BE7
++g_f_res_dbw__p_resource_en_us	DFA4405D-A778-4D85-8F64-8DD85241A421
++g_f_res_dbw__p_resource_es	EC0CC6CF-F92B-4DF6-8609-F9FB1C2730A5
++g_f_res_dbw__p_resource_et	9CB31139-23FB-4C44-9FA3-80975D2EE590
++g_f_res_dbw__p_resource_fi	AA964627-88C7-413C-8890-66C31714C6E4
++g_f_res_dbw__p_resource_fr	C5349657-572A-42AC-9CB9-AACF38757124
++g_f_res_dbw__p_resource_gu_in	F9FA8B8F-E466-402F-8290-56140BC9468E
++g_f_res_dbw__p_resource_he	E15C163A-E6CE-4B89-AD11-0D98B4E67EDF
++g_f_res_dbw__p_resource_hi_in	880F480D-DCE9-46B9-8EBA-42F0949AB73B
++g_f_res_dbw__p_resource_hr	684A962F-63CF-46EC-B90B-C5854A3AC268
++g_f_res_dbw__p_resource_hu	1B5A50B2-7239-41F7-8C5E-D092D9AD02D2
++g_f_res_dbw__p_resource_it	ABF23CA9-694A-4E1C-A4EB-023896B6B784
++g_f_res_dbw__p_resource_ja	FC16C2BC-F41B-4AD7-817A-A2FF42091083
++g_f_res_dbw__p_resource_km	CCD27C90-C7B5-4C86-A2F3-7FECD94C2701
++g_f_res_dbw__p_resource_ko	8153BC26-2388-4785-950D-4B5CC88EB167
++g_f_res_dbw__p_resource_lt	781B8D0C-86A3-4D25-8315-428F99B1BEB6
++g_f_res_dbw__p_resource_lv	2C795E92-0457-407A-9801-614ADC07AC31
++g_f_res_dbw__p_resource_mk	0D4A6DE4-7BA2-4E7B-896C-27F8C5F445C4
++g_f_res_dbw__p_resource_mr_in	0A5A8EA9-7B45-42B6-9E2F-9C4AEF8BE40F
++g_f_res_dbw__p_resource_nb	DA96616F-AA98-417E-B242-56E373AB9149
++g_f_res_dbw__p_resource_nl	80C903B2-8F93-4BF5-90B8-01207FB62334
++g_f_res_dbw__p_resource_nn	0ABB3303-E7FE-4094-A18F-7DAE368F58F3
++g_f_res_dbw__p_resource_pa_in	546AB338-F944-426C-8603-C7A19CFBFA06
++g_f_res_dbw__p_resource_pl	B377360E-26D0-429B-B002-028DB31962E7
++g_f_res_dbw__p_resource_pt	C77E77BE-D26D-4FE2-936F-96E9C6707DC5
++g_f_res_dbw__p_resource_pt_br	F5A662A4-6A13-4358-97D4-F7B0C90F6C4B
++g_f_res_dbw__p_resource_ru	E9BCA8D8-9A92-4152-BA39-720BCD33565E
++g_f_res_dbw__p_resource_rw	759AD603-1063-4881-A870-B9BE355E6253
++g_f_res_dbw__p_resource_sk	A922CFFF-531D-4A6C-B939-D9AC664FB576
++g_f_res_dbw__p_resource_sl	F8AD4AD0-20AD-4168-838C-B730E30D5CB2
++g_f_res_dbw__p_resource_sv	F0E4B472-4EBF-4384-99FE-D417BB037FCB
++g_f_res_dbw__p_resource_ta_in	D08980BA-47B7-42C8-B3AD-CF05DB5B3922
++g_f_res_dbw__p_resource_tr	73A00CC9-B0DB-433E-8A7C-58029EF47C6B
++g_f_res_dbw__p_resource_vi	78A78EC3-A5B9-44A9-ACDE-550922ED526F
++g_f_res_dbw__p_resource_xh	37D324B1-0FCB-4F39-8CC4-FF0BD3D3E8FB
++g_f_res_dbw__p_resource_zh_cn	64DE823F-427E-4F8B-936A-619FDE4CAF1F
++g_f_res_dbw__p_resource_zh_tw	A9E48F34-58EE-4E7F-9DA6-6EEB03550149
++g_f_res_dbw__p_resource_zu	53269A68-2304-47AC-A19C-D2660E25A445
++g_f_res_deployment__p_resource_af	2A3C2626-5B23-4FCB-9781-43FFCC0D1C00
++g_f_res_deployment__p_resource_ar	CA6CAC78-1EA7-4DCB-8F25-94C134ABA0FB
++g_f_res_deployment__p_resource_be_by	627859B1-FA2C-40E2-B448-39374E654786
++g_f_res_deployment__p_resource_bg	8EF05514-C1DB-4E90-B552-62A65A48E2E4
++g_f_res_deployment__p_resource_bn_in	1AE50F91-840F-4AB5-BE77-A12BE1CF8DC5
++g_f_res_deployment__p_resource_br	8BB8C91F-CFC8-4CC9-9427-C3943AEB0C9D
++g_f_res_deployment__p_resource_ca	7543334F-85AF-4B81-B31C-58315F184DE9
++g_f_res_deployment__p_resource_cs	44C9040E-5EE0-48C7-981A-AF5119273841
++g_f_res_deployment__p_resource_cy	B6D8BF3B-BF3E-4E12-B46E-6592B0756F39
++g_f_res_deployment__p_resource_da	BA980C77-99BF-412C-AD67-DFA0DD8E8C42
++g_f_res_deployment__p_resource_de	4008D06A-B7C6-4E4E-BD11-70CBBF78B984
++g_f_res_deployment__p_resource_el	C3AB69AA-3E2A-4CD9-A9DC-852A67274330
++g_f_res_deployment__p_resource_en_gb	3D22EC32-98EC-4171-AB2B-07C527680970
++g_f_res_deployment__p_resource_en_us	85235099-0E5E-4101-817D-C57A2F9F7B2E
++g_f_res_deployment__p_resource_es	D78E1F82-A995-42A2-8930-763BE1B7363D
++g_f_res_deployment__p_resource_et	C03B8DD1-B65C-4710-89B2-49B44A2F031F
++g_f_res_deployment__p_resource_fi	EE3E33C2-8666-48B3-A864-392D0D5FC910
++g_f_res_deployment__p_resource_fr	8108E419-AB91-4628-BA55-68CC27D93263
++g_f_res_deployment__p_resource_gu_in	568CE837-E7CC-41EB-9C20-79E1D5A54F6F
++g_f_res_deployment__p_resource_he	9B2A0B1F-1862-46BE-BDEE-E385B02996F4
++g_f_res_deployment__p_resource_hi_in	2597D98B-C5D9-4DC8-BF85-09204A823528
++g_f_res_deployment__p_resource_hr	FA520B0B-CF98-4C1E-A230-72FCF04E95D6
++g_f_res_deployment__p_resource_hu	BD6BEA58-432B-4094-BFB4-8693CDD1A314
++g_f_res_deployment__p_resource_it	A9CA0755-A5E2-46F8-8165-BC027A4811B9
++g_f_res_deployment__p_resource_ja	6680D41E-8F06-4F2C-978F-AEFBE772156B
++g_f_res_deployment__p_resource_km	C7913E64-647D-4000-8D1E-F33B483CA430
++g_f_res_deployment__p_resource_ko	09772FF0-595E-423A-A41E-A4B7BE760ECE
++g_f_res_deployment__p_resource_lt	A72694CB-F3F5-427E-BE62-6D74CDDA9344
++g_f_res_deployment__p_resource_lv	ED4A7659-E760-4540-9B12-AD3AD6012208
++g_f_res_deployment__p_resource_mk	1C85CF82-D626-461B-AB9F-B47260902CD1
++g_f_res_deployment__p_resource_mr_in	03A4E85E-A305-4383-AD22-B7B77A908309
++g_f_res_deployment__p_resource_nb	21FD85F8-C14A-488F-8BFA-445A66650223
++g_f_res_deployment__p_resource_nl	70F78377-CD76-4880-AFA7-98D833A90A5C
++g_f_res_deployment__p_resource_nn	72F4ED24-C98A-4FC2-A97F-A33959AD8AE4
++g_f_res_deployment__p_resource_pa_in	EFE21729-45AB-48EF-B788-CB0A300DF3A3
++g_f_res_deployment__p_resource_pl	47D80F53-034B-432C-8B4A-D4A1F4FD3266
++g_f_res_deployment__p_resource_pt	1409B798-378B-4CF2-AC94-09E4A21482F7
++g_f_res_deployment__p_resource_pt_br	8CFEA17B-050E-4F0A-B913-B74F320601C0
++g_f_res_deployment__p_resource_ru	9780ECA2-6DB7-4F49-9D72-A132E31E2380
++g_f_res_deployment__p_resource_rw	8169CD21-AEE1-4D8B-BB43-E96B10E171F7
++g_f_res_deployment__p_resource_sk	4EDBB3A7-9304-42DE-AF38-191CDA71FB5A
++g_f_res_deployment__p_resource_sl	31FEEDB2-43A7-4BA7-8CDB-C8871BBD28D1
++g_f_res_deployment__p_resource_sv	34BD816E-5962-4E41-BF47-ED7344F06C06
++g_f_res_deployment__p_resource_ta_in	FB18C7EA-CE57-4F2E-B29B-2F6449441D6B
++g_f_res_deployment__p_resource_tr	D63FCEB3-D7E0-4453-BC34-2DF2A16E4D52
++g_f_res_deployment__p_resource_vi	0FEF0100-BB1F-4D88-AF1F-6F192911E9D3
++g_f_res_deployment__p_resource_xh	D8373BB9-7DD1-4402-BCEA-E260C679250F
++g_f_res_deployment__p_resource_zh_cn	0965B9BA-1463-4741-9C61-F3FDA8F28784
++g_f_res_deployment__p_resource_zh_tw	853F6779-A9A7-42C1-A346-39CF4DFAA766
++g_f_res_deployment__p_resource_zu	7EAA3E65-54E0-49FD-886F-0956CC59B833
++g_f_res_deploymentgui__p_resource_af	5CBE9706-4308-4F0D-987B-C4BEB0B47E12
++g_f_res_deploymentgui__p_resource_ar	84EB6AE8-585D-4643-859B-3FD215AD6E82
++g_f_res_deploymentgui__p_resource_be_by	1A7A40D3-C5A4-49BA-A9E3-DD0127EA4F14
++g_f_res_deploymentgui__p_resource_bg	1CF55170-F92A-4951-91E9-F3B9B83914B4
++g_f_res_deploymentgui__p_resource_bn_in	6C591F3F-1095-4D06-8890-04266960B2DB
++g_f_res_deploymentgui__p_resource_br	F7FD11BD-0BBE-47B7-B819-5A39AC40DC39
++g_f_res_deploymentgui__p_resource_ca	AB6F9218-A46C-4F2E-A3A6-B6FC0EA1D13F
++g_f_res_deploymentgui__p_resource_cs	C64E196A-DEC6-4AF9-A9E9-995E9D24C16D
++g_f_res_deploymentgui__p_resource_cy	2D9C5674-F0F0-4D70-8324-993201E2B50E
++g_f_res_deploymentgui__p_resource_da	A75A36AB-DDD0-4CC8-8116-4B96639809A0
++g_f_res_deploymentgui__p_resource_de	AE543FEB-FC6D-407F-8A84-ACB6C9A354DB
++g_f_res_deploymentgui__p_resource_el	2E75BF6C-52BB-4D55-97D7-13E27111B913
++g_f_res_deploymentgui__p_resource_en_gb	963E90D4-F920-4CB0-8754-4E9FB98DA7D0
++g_f_res_deploymentgui__p_resource_en_us	18A49ED2-13D6-4407-80AB-AE47F6EA6A72
++g_f_res_deploymentgui__p_resource_es	AA6D0FBA-B2D2-44E8-AEA5-D2973C4152DD
++g_f_res_deploymentgui__p_resource_et	8AAF0307-5140-41E4-8CC0-3425521C4C24
++g_f_res_deploymentgui__p_resource_fi	868E5529-36E9-4318-8F61-35EF2C05EEBE
++g_f_res_deploymentgui__p_resource_fr	383A5B12-5E35-4624-8C7B-CAE094A1C005
++g_f_res_deploymentgui__p_resource_gu_in	15ECF1B4-2D4C-44A6-8BCA-CF7D3CFA9C7D
++g_f_res_deploymentgui__p_resource_he	4FE699A3-C57A-475A-A146-125822E6DC38
++g_f_res_deploymentgui__p_resource_hi_in	21875148-9A90-4B4B-831C-859021C82968
++g_f_res_deploymentgui__p_resource_hr	8809F489-E4F9-4E3A-AB45-CFA70C7EBCD7
++g_f_res_deploymentgui__p_resource_hu	B2EFE4E8-4A13-4057-9C41-D519E28A4953
++g_f_res_deploymentgui__p_resource_it	95F39A4B-46F7-4119-A39D-A0A99B529DE0
++g_f_res_deploymentgui__p_resource_ja	AACDCC04-3D1A-4D2A-9B00-575E60D9F834
++g_f_res_deploymentgui__p_resource_km	92354EA6-B9A2-4A7A-B5FA-90D4AFA63DAF
++g_f_res_deploymentgui__p_resource_ko	0DB677E7-2F03-4D61-A755-166BC8D75E7A
++g_f_res_deploymentgui__p_resource_lt	BB764003-9809-4F93-8D25-D0B1EB639AF9
++g_f_res_deploymentgui__p_resource_lv	A3517F2F-8362-4A94-8631-855F55CBB60F
++g_f_res_deploymentgui__p_resource_mk	6CC2E218-EF10-4C3F-9D87-F98FB90A9F77
++g_f_res_deploymentgui__p_resource_mr_in	48E5BEBB-7D11-4257-A362-8DD738273A6D
++g_f_res_deploymentgui__p_resource_nb	A0A61A9F-E1F8-4788-84BC-F22F9CAE18FE
++g_f_res_deploymentgui__p_resource_nl	F24A80BD-BF39-4C5E-BE06-9E8A19EB8C69
++g_f_res_deploymentgui__p_resource_nn	A5CD033C-C172-465E-ADF2-19FE46B36F92
++g_f_res_deploymentgui__p_resource_pa_in	AFC0D280-6AD9-4D94-9ADD-732DB5D7A246
++g_f_res_deploymentgui__p_resource_pl	3800EBCB-B4D3-404D-89F5-607292914F83
++g_f_res_deploymentgui__p_resource_pt	D452A34C-2C27-445F-AFB5-C90CB20A14EF
++g_f_res_deploymentgui__p_resource_pt_br	6A453CA7-BAB9-4F16-A130-C762A493AABC
++g_f_res_deploymentgui__p_resource_ru	425971E8-9174-45DC-8E8F-A026D5910784
++g_f_res_deploymentgui__p_resource_rw	2370F11C-1274-4F9A-B78B-52875661777F
++g_f_res_deploymentgui__p_resource_sk	3F05A6F2-9228-41DD-8D1F-35A8A39FEF92
++g_f_res_deploymentgui__p_resource_sl	014294FE-291C-40DF-9F5B-FF17E9472E2B
++g_f_res_deploymentgui__p_resource_sv	80C19BB3-3066-44EC-A2A8-FE00D09C9B16
++g_f_res_deploymentgui__p_resource_ta_in	D024BD06-78A0-4151-BC79-3A8E253E8770
++g_f_res_deploymentgui__p_resource_tr	25099293-30ED-4C02-8CA1-F3856A5146F5
++g_f_res_deploymentgui__p_resource_vi	BC41D12F-F10C-4148-9330-3E22F201604F
++g_f_res_deploymentgui__p_resource_xh	4DAC66C2-ECC8-4E90-8E30-3D2CB2DD87E5
++g_f_res_deploymentgui__p_resource_zh_cn	DD1DCB0B-C2CC-4EE9-944B-C54F28A5587B
++g_f_res_deploymentgui__p_resource_zh_tw	A30C5FA9-07DC-4455-B38D-984B7C94B0D5
++g_f_res_deploymentgui__p_resource_zu	D81B3C98-EC12-4EC7-AF1E-E98B5BFDD05C
++g_f_res_dkt__p_resource_af	96A0AEA0-912C-43EF-A7FE-42BFF21862E9
++g_f_res_dkt__p_resource_ar	A99BDDA3-BD03-4261-9EED-17BFD84ABB00
++g_f_res_dkt__p_resource_be_by	8074B8DC-CB7C-4A67-8D6E-00E2F0EDA150
++g_f_res_dkt__p_resource_bg	4F79715E-9A76-40B0-994D-8652EC06AFA0
++g_f_res_dkt__p_resource_bn_in	7C5220CA-1CF5-44AA-89EB-CE382D99217F
++g_f_res_dkt__p_resource_br	391D42F8-A3B7-4CEA-B7F0-D27778994065
++g_f_res_dkt__p_resource_ca	08B5B4AC-9BD5-48F4-A7E5-E9524062B07D
++g_f_res_dkt__p_resource_cs	D5CA75D6-5950-4648-9236-A45D1CD7FD7F
++g_f_res_dkt__p_resource_cy	919C3D56-32F5-421E-9AB5-56843F091116
++g_f_res_dkt__p_resource_da	CBB96CB3-953F-482C-B694-7170AE4D8067
++g_f_res_dkt__p_resource_de	C8C7B1B4-E4B1-480E-8689-52A60A9C975C
++g_f_res_dkt__p_resource_el	6667951F-37C5-44E3-837F-901BFFB35E94
++g_f_res_dkt__p_resource_en_gb	EDD9BC1C-9082-4E4E-9E7F-DDF267FBF1F0
++g_f_res_dkt__p_resource_en_us	4374E998-EAF0-4BCC-9247-5EC7DB83A12A
++g_f_res_dkt__p_resource_es	6C4D5D63-87DA-4111-B2CE-73A3540DEDA2
++g_f_res_dkt__p_resource_et	738F7106-BE13-4634-B4AC-95C1481FE5FE
++g_f_res_dkt__p_resource_fi	94737399-AA23-49DE-A08F-381A66A7846C
++g_f_res_dkt__p_resource_fr	3EA835D3-FA74-45A9-BA2E-5E74B374EA9F
++g_f_res_dkt__p_resource_gu_in	72311FE7-0580-4D6A-9979-631F0520B3ED
++g_f_res_dkt__p_resource_he	52F794E5-B6F9-4305-97CE-30FA4DA53D3D
++g_f_res_dkt__p_resource_hi_in	A2AA1CDA-CED7-44B1-8FAF-35CC735752DB
++g_f_res_dkt__p_resource_hr	C7D972A4-E4DB-46F5-801A-D6FB9D4BC359
++g_f_res_dkt__p_resource_hu	7A21DC76-935C-4A38-A1D9-5B31B9410471
++g_f_res_dkt__p_resource_it	7D93F032-8C9B-4E8E-92FA-5D0E5E927086
++g_f_res_dkt__p_resource_ja	3C73942B-088F-43F1-9163-B8C5A793525E
++g_f_res_dkt__p_resource_km	EF9796C3-F0C1-4FC3-B6F6-C2E712F3F4AB
++g_f_res_dkt__p_resource_ko	28CAD1B2-9A17-4C77-AC33-5D0E9ABB7723
++g_f_res_dkt__p_resource_lt	495D1C4E-12BE-4885-8016-309599936D75
++g_f_res_dkt__p_resource_lv	54DF50D0-B755-429F-BF40-C92E408BF6C6
++g_f_res_dkt__p_resource_mk	7AC9E5C4-DB1A-4F1C-B5BD-5F312B448D72
++g_f_res_dkt__p_resource_mr_in	4B8C5F79-A990-47FF-A0CD-0A6D00D50F48
++g_f_res_dkt__p_resource_nb	0F49584C-5456-4358-A539-8D0BB43B1456
++g_f_res_dkt__p_resource_nl	A498A241-B577-49D1-BC62-95AD57DD658B
++g_f_res_dkt__p_resource_nn	B3A9F229-BB25-4051-B3A2-FB3CD1D941F7
++g_f_res_dkt__p_resource_pa_in	C7278F32-485E-4D7E-83DF-F55DAFD760D5
++g_f_res_dkt__p_resource_pl	6D254E15-C58F-4F82-B101-FB81DD59176B
++g_f_res_dkt__p_resource_pt	EB8FD31F-9845-4175-9CC0-DD83D58DE681
++g_f_res_dkt__p_resource_pt_br	6F24D023-8B5B-4639-AB82-6055820ED746
++g_f_res_dkt__p_resource_ru	9097C8C7-02EF-4736-814F-14174A726F90
++g_f_res_dkt__p_resource_rw	D53B7455-636C-4F6C-8B53-6584119C0584
++g_f_res_dkt__p_resource_sk	408DD761-B636-4519-BF61-1AF88977CF7F
++g_f_res_dkt__p_resource_sl	78DC4A7C-2A78-441F-9EA1-869DF3269AE9
++g_f_res_dkt__p_resource_sv	7DB364C3-14A4-4447-8830-C8DA71FA96D0
++g_f_res_dkt__p_resource_ta_in	6BC280AC-0158-4EBA-8079-17B45D89B895
++g_f_res_dkt__p_resource_tr	16446F89-E4C8-4525-B8BE-95FBC5BA0DE3
++g_f_res_dkt__p_resource_vi	B181B635-BD59-453E-86A9-BB9CB491531F
++g_f_res_dkt__p_resource_xh	6DDB3C08-0E21-45AE-851E-46FAA92E771E
++g_f_res_dkt__p_resource_zh_cn	451BEF38-E14B-49BC-9C29-A22D5014F5B6
++g_f_res_dkt__p_resource_zh_tw	2D6063E7-80B1-455B-B054-34378706D1D1
++g_f_res_dkt__p_resource_zu	1731081C-0DAA-4D09-AEF3-F53CA897EC15
++g_f_res_egi__p_resource_af	B94D60F1-FD69-4C24-9DE9-6A2DF55564ED
++g_f_res_egi__p_resource_ar	EA598E50-A6F5-40F5-90BE-44159EFDE302
++g_f_res_egi__p_resource_be_by	9E4C867F-7E2D-44E4-A42A-B7C2BFCB8022
++g_f_res_egi__p_resource_bg	FDBCB8A5-3A4A-4ED7-9D88-F5E6217AD2EA
++g_f_res_egi__p_resource_bn_in	0C5E852D-97D6-48C1-9D3E-DBC594AB27DA
++g_f_res_egi__p_resource_br	7E915077-B760-402D-9E56-E37635358DDA
++g_f_res_egi__p_resource_ca	7047AD6E-F090-42F7-BA5C-11278288C12D
++g_f_res_egi__p_resource_cs	1614DDD4-F222-4017-993B-8BF86EE406BE
++g_f_res_egi__p_resource_cy	8EBB5268-08E3-4125-B2EB-A41270934B0C
++g_f_res_egi__p_resource_da	10CB281A-16AC-4A36-9D6C-D52C432B8771
++g_f_res_egi__p_resource_de	B8513B03-D77D-410A-BF4D-99B0ED8720D1
++g_f_res_egi__p_resource_el	C94A53F9-AED4-4C90-A8CD-AA5E1E873F9F
++g_f_res_egi__p_resource_en_gb	1633BB1D-AE19-4A09-81D8-12599E5C628E
++g_f_res_egi__p_resource_en_us	5F6F6E76-637F-4238-A3D8-483480844A7B
++g_f_res_egi__p_resource_es	B6762435-0278-49DE-9A78-3FFBC6CFFB07
++g_f_res_egi__p_resource_et	3A4D03F7-E7C3-4EE7-8380-FDE1D08CA64E
++g_f_res_egi__p_resource_fi	68EA33D1-3555-4D05-80DA-0335F6C5AE67
++g_f_res_egi__p_resource_fr	D56FBCA1-CEA3-4B3C-93A2-9A2E3E82669F
++g_f_res_egi__p_resource_gu_in	199C773A-D652-4F25-8FAD-6A323FA43F55
++g_f_res_egi__p_resource_he	0F035F2C-9ED3-473A-B065-962639DEF8A3
++g_f_res_egi__p_resource_hi_in	625373D8-0BA3-402F-ABCA-A0917CD3D31B
++g_f_res_egi__p_resource_hr	AF0E206D-98EC-445C-872A-89761894EC08
++g_f_res_egi__p_resource_hu	F880BE2B-F9C2-495C-906F-5F1070B279FE
++g_f_res_egi__p_resource_it	0BCF5B0C-240A-4D09-A81A-088C747AD438
++g_f_res_egi__p_resource_ja	835DEB7C-CA9F-42C1-8967-020E5EFC94F6
++g_f_res_egi__p_resource_km	8F2E8D61-C619-42CB-8F33-09FE63E07331
++g_f_res_egi__p_resource_ko	AD78F7CE-1DCC-4CEB-B2B9-4DC4B25862C0
++g_f_res_egi__p_resource_lt	2B496F82-2BFF-40DA-A8FF-8369B4880172
++g_f_res_egi__p_resource_lv	6BBEDAA5-D7EC-4046-ACB2-5161B7A10D06
++g_f_res_egi__p_resource_mk	7BF5572D-8C75-4274-9752-6340B3661E91
++g_f_res_egi__p_resource_mr_in	4CA3939E-3F43-463C-BA73-EE251600223D
++g_f_res_egi__p_resource_nb	70E1F451-ED07-4990-A015-4CF01D4BAF4C
++g_f_res_egi__p_resource_nl	83CE9470-8757-43F0-9683-C4E66815F093
++g_f_res_egi__p_resource_nn	A3700A74-468B-49C7-8D9A-03A0D7FE12C0
++g_f_res_egi__p_resource_pa_in	86EB280A-A4B9-4B99-BE82-E81D3F14A4E8
++g_f_res_egi__p_resource_pl	83F63B6B-2D6B-47F0-B01C-B3957F792844
++g_f_res_egi__p_resource_pt	94C3BB13-5414-400D-862F-5362A9F26F79
++g_f_res_egi__p_resource_pt_br	DB49F3B1-439A-4010-97DA-68D74CE2539F
++g_f_res_egi__p_resource_ru	6011C75C-42E9-4EF0-AFF1-0701B1296054
++g_f_res_egi__p_resource_rw	EC44B02D-FF53-45A3-8D02-B546E6FE8DEF
++g_f_res_egi__p_resource_sk	3E40E543-6783-4C47-84F7-C06FAAF28F6D
++g_f_res_egi__p_resource_sl	2014DECA-5AF7-4737-8E94-283A9C7559D4
++g_f_res_egi__p_resource_sv	15773092-21FA-48F1-9C3A-680A31305327
++g_f_res_egi__p_resource_ta_in	100C8476-C9C9-4820-9D46-D5422E0EF2F8
++g_f_res_egi__p_resource_tr	B3FCD48C-8889-41A9-805F-6BF0C7FCE73E
++g_f_res_egi__p_resource_vi	E74379FE-5C97-4B2E-92A0-4D724E77231D
++g_f_res_egi__p_resource_xh	F4244BDA-67E7-45CF-9540-8DA3F0B378A0
++g_f_res_egi__p_resource_zh_cn	F730A576-9BE7-4D13-8FC8-2B775EEAF2CB
++g_f_res_egi__p_resource_zh_tw	CC2E0881-D291-45EE-AFDD-F7C8BC0D4040
++g_f_res_egi__p_resource_zu	1D87137E-0D25-4CF1-AA5F-EF84A7A80F17
++g_f_res_eme__p_resource_af	4E9849A8-70EB-4F0B-8FE8-3B1F2AE316AD
++g_f_res_eme__p_resource_ar	93086AD7-0F41-41FD-BFD7-91658F75847F
++g_f_res_eme__p_resource_be_by	FAF6C129-9181-4E65-92CE-546003E83900
++g_f_res_eme__p_resource_bg	7410FDB1-B137-4564-9E3A-9DA6906D289F
++g_f_res_eme__p_resource_bn_in	4B3BC501-4252-46B7-A8CE-72F382C2E840
++g_f_res_eme__p_resource_br	566C60A1-00B8-48C6-A6A6-3703C5031CF0
++g_f_res_eme__p_resource_ca	8C06B2B6-DD97-4447-982F-388990BFAAC7
++g_f_res_eme__p_resource_cs	B831F935-DA57-4F74-8978-04C8A0B869FD
++g_f_res_eme__p_resource_cy	23033CDB-C772-426C-A675-E04300057FF3
++g_f_res_eme__p_resource_da	DA940E76-7EB8-4E30-9E27-8ABAB8D25AFA
++g_f_res_eme__p_resource_de	CEF7ABDB-0583-4A81-9AEC-9BB0F187089F
++g_f_res_eme__p_resource_el	A45A92EE-3BE4-4524-9E45-F2F5FD60CB5C
++g_f_res_eme__p_resource_en_gb	07714020-E4EB-4048-A106-7DC154EA9315
++g_f_res_eme__p_resource_en_us	238A59A1-3125-46DC-BC23-0268656BB436
++g_f_res_eme__p_resource_es	52400208-BCDF-4C12-BF31-6EEF38532563
++g_f_res_eme__p_resource_et	F647BD60-AF34-4802-8ACB-65812C31FAF2
++g_f_res_eme__p_resource_fi	956F1A01-6F7D-4EAA-AE35-308061E35EEE
++g_f_res_eme__p_resource_fr	06E2E40F-2E4C-4076-AF78-A5260DB8FFCE
++g_f_res_eme__p_resource_gu_in	D7387EE7-7AE8-48ED-B8A3-2FB9A7A38749
++g_f_res_eme__p_resource_he	2B1B67B7-7C65-4470-AC97-F914C9744F93
++g_f_res_eme__p_resource_hi_in	078FBDD0-AD88-4809-8BD4-0B190A34C8C8
++g_f_res_eme__p_resource_hr	58080772-7DAF-4003-8892-896D37C98E49
++g_f_res_eme__p_resource_hu	E6E7F1A3-E9B7-49C4-8347-EDA1D3EFEE81
++g_f_res_eme__p_resource_it	C3A4F9DF-887C-47B9-A5FD-CA7DF75D1C91
++g_f_res_eme__p_resource_ja	2BF7F528-9E36-488B-9C82-77411528A4A9
++g_f_res_eme__p_resource_km	68F3E032-9103-45F9-B181-2D239AC4D422
++g_f_res_eme__p_resource_ko	671D035B-0577-4875-B868-0368EC7E7249
++g_f_res_eme__p_resource_lt	32B0C300-4BFA-475C-BA7F-4552F0202B12
++g_f_res_eme__p_resource_lv	188147B4-68F7-4E89-BA33-C8B33C618753
++g_f_res_eme__p_resource_mk	F671FF4B-5C73-4ADE-9F1A-D5460EF52895
++g_f_res_eme__p_resource_mr_in	CE7BF8A0-2740-446C-9141-BDE626147967
++g_f_res_eme__p_resource_nb	E52EC8F3-33EE-4CAF-9F58-798DFFC52FF6
++g_f_res_eme__p_resource_nl	61634D2F-CC44-4513-BEE7-F5BDE534CF9D
++g_f_res_eme__p_resource_nn	943A9A79-2153-46D7-92A0-6A59F74A3426
++g_f_res_eme__p_resource_pa_in	FAA00D27-D5DE-4581-9CAA-65383BF92081
++g_f_res_eme__p_resource_pl	6E46EFF4-9143-4141-B874-4F64469A5839
++g_f_res_eme__p_resource_pt	77C60615-8101-42E7-82FA-256C3BE3D1DC
++g_f_res_eme__p_resource_pt_br	3F701BA6-EE35-46E2-A781-81F05B88731B
++g_f_res_eme__p_resource_ru	0DB96946-4FA2-4D9A-A8AA-1368D02F5E07
++g_f_res_eme__p_resource_rw	B7247D73-C863-4DEB-A07A-BFDAA3511A79
++g_f_res_eme__p_resource_sk	C549C80A-1E8F-449C-9BA4-25A4200042EE
++g_f_res_eme__p_resource_sl	8B65ECCC-3AEA-4B7D-9275-A9D027B7BBAF
++g_f_res_eme__p_resource_sv	41BFA4C7-12E9-48A8-8801-0BC855699D5D
++g_f_res_eme__p_resource_ta_in	3AC4C8A1-36ED-45DE-AF01-C42AAF0ADF2E
++g_f_res_eme__p_resource_tr	70F57222-B11C-469D-ACC1-84BF4160B4F7
++g_f_res_eme__p_resource_vi	2D1D44F4-1C2B-44D7-95BF-E0B55C1901E2
++g_f_res_eme__p_resource_xh	E1632057-F3C4-4BC9-8C90-1325992100D6
++g_f_res_eme__p_resource_zh_cn	3AAA7CB3-93A0-48F6-A6BD-F87841503D3A
++g_f_res_eme__p_resource_zh_tw	170503AA-7277-48A7-BF47-310A2A41836E
++g_f_res_eme__p_resource_zu	38FCCFEE-96D5-4CCA-BE2C-4259D8592FF6
++g_f_res_epb__p_resource_af	21622869-6CBA-4C81-8A37-8DC6AE8DA948
++g_f_res_epb__p_resource_ar	5E2B4DB1-61C7-494D-B2DA-DBFBFD84D103
++g_f_res_epb__p_resource_be_by	E6BBDCD0-6D34-452F-A576-EBD4F3ADBAEF
++g_f_res_epb__p_resource_bg	50E13E37-CD8C-4584-A060-1608672782E9
++g_f_res_epb__p_resource_bn_in	E4638363-7AE7-4E51-8B5D-4987DB05F78D
++g_f_res_epb__p_resource_br	0DA9242E-B113-4D63-B284-FEA0389CFE70
++g_f_res_epb__p_resource_ca	87EC0C01-E4D0-42D2-9C62-9FB341DF618D
++g_f_res_epb__p_resource_cs	79DD314E-123C-40D3-8B03-77DF8D19250A
++g_f_res_epb__p_resource_cy	D9D6D9DD-E200-457F-8918-40BFC843F8CD
++g_f_res_epb__p_resource_da	A5F0FAAC-27FA-4432-9C7D-9D8675004F03
++g_f_res_epb__p_resource_de	ED05055D-65ED-46D6-B986-47D730723400
++g_f_res_epb__p_resource_el	0B4CD7A3-6519-45B6-AC95-468E1EFAE8C8
++g_f_res_epb__p_resource_en_gb	A17DB666-0258-4C36-9FC1-9A33A649C28D
++g_f_res_epb__p_resource_en_us	CF7E2C67-5F8C-4E82-8643-BA6DC9A3D3AC
++g_f_res_epb__p_resource_es	DDCF1003-09B4-4AFC-98ED-962E152DA4C7
++g_f_res_epb__p_resource_et	906E03E8-E077-4D25-BED1-BBB9A6A31DF8
++g_f_res_epb__p_resource_fi	6C397067-1B38-4A0E-8385-D400F35A6638
++g_f_res_epb__p_resource_fr	4D7FC88C-ED91-40D1-A831-84D1F00E6A51
++g_f_res_epb__p_resource_gu_in	B33E1FDA-36C3-4AC8-A334-9C917D968CD8
++g_f_res_epb__p_resource_he	8AEC0D96-9908-4737-B21C-0649DE52A233
++g_f_res_epb__p_resource_hi_in	CC4FE42F-2EA7-4F0B-B1BB-16E48849A4E5
++g_f_res_epb__p_resource_hr	5251824D-1FC1-48D7-AF92-1EE18A645C6C
++g_f_res_epb__p_resource_hu	F013C8FC-43AC-4B2F-B5E9-D5C5438C6873
++g_f_res_epb__p_resource_it	F57025F1-9C7D-45B2-A30B-EC34CD69C7F5
++g_f_res_epb__p_resource_ja	BF4C4F35-CE56-4CF5-BF34-95E19F4901EC
++g_f_res_epb__p_resource_km	240803E2-1C73-4BAD-AB06-734DE45351B3
++g_f_res_epb__p_resource_ko	AFDBF65B-E896-4B2E-88A9-C1CAED1C0158
++g_f_res_epb__p_resource_lt	5D7DA246-B28A-4D37-901C-FB18A0B0A0EC
++g_f_res_epb__p_resource_lv	3A90D588-F0D1-449F-B10E-A3DBB9BA68BF
++g_f_res_epb__p_resource_mk	1BD68763-433A-4912-AEC9-F71E4A37E15C
++g_f_res_epb__p_resource_mr_in	4FB93523-005F-4674-8518-5064BA490E46
++g_f_res_epb__p_resource_nb	E3F14D59-626B-43F0-8A50-67BBD9BD4580
++g_f_res_epb__p_resource_nl	27113417-F6ED-4CF7-A800-D4E823D9CE17
++g_f_res_epb__p_resource_nn	B16F7C2A-6233-463F-9554-76D3878961EC
++g_f_res_epb__p_resource_pa_in	2F4A0A00-912B-4356-B1AE-57947DA1B3F8
++g_f_res_epb__p_resource_pl	81BE435A-F2C0-4BFC-9C7B-9279EC496EE0
++g_f_res_epb__p_resource_pt	E35E38ED-0D23-4396-BBB1-4D6436130EAB
++g_f_res_epb__p_resource_pt_br	6A42FCF4-9758-4EE3-BB18-4943B5B3E63B
++g_f_res_epb__p_resource_ru	ED6582D3-0583-4EA5-B828-210CD801D64E
++g_f_res_epb__p_resource_rw	099EF3E4-7EC8-439F-B067-13BB34786008
++g_f_res_epb__p_resource_sk	2E876EDF-D507-43EA-A4D0-3F61981EFBDE
++g_f_res_epb__p_resource_sl	E6534D3B-7629-4FE8-BA09-B0B300C54043
++g_f_res_epb__p_resource_sv	9FD24DEE-5574-4987-9714-3038721C317F
++g_f_res_epb__p_resource_ta_in	B7AB798E-B898-43BD-B08E-F728C7791F12
++g_f_res_epb__p_resource_tr	6ED7AD8B-45ED-45A6-9925-ABB0EF7F4883
++g_f_res_epb__p_resource_vi	3BC8AA56-991E-4EBD-9798-A8DC021B8E39
++g_f_res_epb__p_resource_xh	48D501F9-FC38-4C9E-8B62-5D21AF536F56
++g_f_res_epb__p_resource_zh_cn	A0B4DE4E-6C10-4CBB-ABA9-5F4CE433F430
++g_f_res_epb__p_resource_zh_tw	17380576-D3B0-4E9F-BAF0-6495C73DB80E
++g_f_res_epb__p_resource_zu	D25CC953-04D2-41E8-9F2F-D33B978DB5F4
++g_f_res_epg__p_resource_af	1C06052C-C055-4085-B2D1-2BD7D5033D8D
++g_f_res_epg__p_resource_ar	17FE6680-75F5-4D6A-9D0C-204A23199E8F
++g_f_res_epg__p_resource_be_by	021F3C43-2DEC-4BBD-9F30-541F922910C0
++g_f_res_epg__p_resource_bg	4D879B9C-5A85-42D7-A111-19DF23F80ECD
++g_f_res_epg__p_resource_bn_in	C5E9C2A8-E1D9-48C8-B31B-A90710E25A8D
++g_f_res_epg__p_resource_br	640647AE-448B-4D17-9B81-A9AF36CE564C
++g_f_res_epg__p_resource_ca	A4BD5790-AB01-4828-91D0-43E56D020502
++g_f_res_epg__p_resource_cs	27D9A616-CBAF-4142-9E6D-1575E63B020C
++g_f_res_epg__p_resource_cy	E8B36063-6850-4CED-B507-74455A4051A9
++g_f_res_epg__p_resource_da	86CF2F8A-2A45-4BA8-9824-F3215F6904C2
++g_f_res_epg__p_resource_de	8FE0F5AB-4DA1-47F7-9BD1-6D934B906395
++g_f_res_epg__p_resource_el	D07F7080-8EAA-4F5D-AF05-2D2E43B6F8DE
++g_f_res_epg__p_resource_en_gb	C840C87C-CF05-4AE4-9FF4-F89D6751E0A1
++g_f_res_epg__p_resource_en_us	A3F035AE-7BD6-4D31-9077-AF6DDE9743C7
++g_f_res_epg__p_resource_es	1F689BE2-8FD5-4543-9B0A-1B34A04B0330
++g_f_res_epg__p_resource_et	CB93C15D-075F-4944-A065-52D70A186B0C
++g_f_res_epg__p_resource_fi	9E88D4DA-F3AB-4BCC-A53A-6E4F1A40F9AA
++g_f_res_epg__p_resource_fr	9BC9CC3D-5BE8-47EB-BC38-1C655F95DAEB
++g_f_res_epg__p_resource_gu_in	0A95406C-9F71-47FF-B221-274CA9DB70C0
++g_f_res_epg__p_resource_he	003B43CB-314A-4598-BE63-F5727047C4C6
++g_f_res_epg__p_resource_hi_in	7636A827-A221-48D0-B28E-2D64E8EA801A
++g_f_res_epg__p_resource_hr	8667B2CD-BFCD-462F-B7D4-3B960756969D
++g_f_res_epg__p_resource_hu	37082C52-4EE0-4526-9CC1-ED6C4B679FB4
++g_f_res_epg__p_resource_it	066ABCCD-7308-42F8-93D8-A6DDCCD49FDA
++g_f_res_epg__p_resource_ja	1AA55D0E-4D83-4ADF-9C56-096B3103EC4B
++g_f_res_epg__p_resource_km	3DF0DC9C-D648-4A06-947A-4F8D705F92D8
++g_f_res_epg__p_resource_ko	E2DB2CAB-B4E6-47D9-90FA-05CB18B26195
++g_f_res_epg__p_resource_lt	04485BA5-4D1E-4E6E-9CCA-B47ADD1DA45C
++g_f_res_epg__p_resource_lv	20D036AF-C684-4925-98B7-035B45C05539
++g_f_res_epg__p_resource_mk	6285B1CA-0C5A-48A8-B021-5D52FA32CFC6
++g_f_res_epg__p_resource_mr_in	DDD2BC3F-58AC-4C76-BE07-17F8A3E48C0B
++g_f_res_epg__p_resource_nb	DDE5CD07-98CC-4F16-8D40-180A7E19996A
++g_f_res_epg__p_resource_nl	200C16F4-EFB2-47DC-AAF3-363F42046353
++g_f_res_epg__p_resource_nn	550A5158-9648-485F-AFE4-BD2BBEA00BB8
++g_f_res_epg__p_resource_pa_in	FA857559-C778-450E-AF3F-B20667AF4F50
++g_f_res_epg__p_resource_pl	119D02DD-2A5E-40FB-BBEA-A61594811F06
++g_f_res_epg__p_resource_pt	1D6FEF87-8265-43C2-95F2-BD9C4D85CB6D
++g_f_res_epg__p_resource_pt_br	FD1C2A64-1980-44CF-B980-92E579CF717E
++g_f_res_epg__p_resource_ru	C05907C2-53FC-4D0E-8EFC-AA437B3B4823
++g_f_res_epg__p_resource_rw	34C31753-ED92-4A99-BAA5-019B78E2A4A7
++g_f_res_epg__p_resource_sk	1DD46EC9-D797-490F-97A0-CE5417B9F1AA
++g_f_res_epg__p_resource_sl	B4BD6CA0-BD57-4CE5-9C8A-C0BDC900F66E
++g_f_res_epg__p_resource_sv	C90FD6E9-C686-4A15-8DC1-AAEEBFA950D6
++g_f_res_epg__p_resource_ta_in	8EC2BDD5-6408-42F5-B3F3-059CE882EF6B
++g_f_res_epg__p_resource_tr	BB38ED4F-2B43-4CD6-A11D-8A5DD6CC2EFB
++g_f_res_epg__p_resource_vi	3C428B80-D31E-4178-90A2-46CA36902345
++g_f_res_epg__p_resource_xh	51BAF44F-9EFE-45E6-A091-8A628B65101B
++g_f_res_epg__p_resource_zh_cn	0A77F388-23E6-4910-87C7-34AC77D4C7FB
++g_f_res_epg__p_resource_zh_tw	6EF38D92-44BD-43A5-91BB-69E62E514D7B
++g_f_res_epg__p_resource_zu	C884EE35-5BF9-415D-BE90-17E1823847EC
++g_f_res_epp__p_resource_af	A265A1EE-3132-4C49-8A53-0EEC0DE2E7F9
++g_f_res_epp__p_resource_ar	4D4D2E11-7FA5-4BCA-A2FE-7EBE117A30DF
++g_f_res_epp__p_resource_be_by	3A02305D-8FC0-4AE8-9BF4-E18DED06D4A2
++g_f_res_epp__p_resource_bg	56E08C09-AC92-4A2D-868E-B2B3D4545788
++g_f_res_epp__p_resource_bn_in	A93841D9-3484-4F8D-A294-5DF216F6E461
++g_f_res_epp__p_resource_br	5B7CB7CD-527E-4AC3-AA11-06EDF9685403
++g_f_res_epp__p_resource_ca	F60E1125-8837-412F-B139-ABD63DB8A9A2
++g_f_res_epp__p_resource_cs	311BBBCC-6B20-43D3-902A-1909E12938F4
++g_f_res_epp__p_resource_cy	71E4A664-C3E9-486F-BFBC-BB2D5535FABC
++g_f_res_epp__p_resource_da	E54AB25D-ED82-40BD-AB7E-367AC101162E
++g_f_res_epp__p_resource_de	10F017F2-E29D-437E-92F2-7DF378736F15
++g_f_res_epp__p_resource_el	4287F340-894C-4440-949A-1ED5C56CCDB4
++g_f_res_epp__p_resource_en_gb	0616EF1E-8937-4739-9D63-18D3BDCA08F5
++g_f_res_epp__p_resource_en_us	AE21578E-A10B-4A6E-A851-6FCBA564171E
++g_f_res_epp__p_resource_es	5F4D9F58-BCFA-4C93-8037-A36946AEAE57
++g_f_res_epp__p_resource_et	982023D5-6A25-4570-9C59-5EF51FED67F5
++g_f_res_epp__p_resource_fi	2F0A39AC-C8D0-4F3F-A510-A4829A856865
++g_f_res_epp__p_resource_fr	3E1313B5-67AA-4DDF-BEFE-673D6E621389
++g_f_res_epp__p_resource_gu_in	8568144C-EF93-4D62-BC8E-49C2C71A569B
++g_f_res_epp__p_resource_he	1C201DD8-4507-451A-8584-78C622611EF5
++g_f_res_epp__p_resource_hi_in	4026A3D2-F62F-430F-BDE1-872F8822E7AE
++g_f_res_epp__p_resource_hr	D9823F62-C13A-49C0-80C4-331A804075AF
++g_f_res_epp__p_resource_hu	F29823E2-2895-4119-A061-BBE2538FB70F
++g_f_res_epp__p_resource_it	E90206B6-349D-4537-877A-7BF807996D86
++g_f_res_epp__p_resource_ja	7E3D6A6C-33C7-4198-BE50-5DE6CE01BAE2
++g_f_res_epp__p_resource_km	BDAD7B04-CA29-466E-B869-78C8F60C3809
++g_f_res_epp__p_resource_ko	09DFE85F-C67E-47F1-825C-F59EB43387C1
++g_f_res_epp__p_resource_lt	A879C080-0B08-47B2-9D40-07E2CC58F772
++g_f_res_epp__p_resource_lv	C94E2583-1DE9-4E7D-9830-E39CFC73D309
++g_f_res_epp__p_resource_mk	1C18EC6D-01E1-4700-89A9-AFDB80C36D48
++g_f_res_epp__p_resource_mr_in	DBFB88AA-F1FA-40A6-B91E-E0B3EF9FF201
++g_f_res_epp__p_resource_nb	4EBE0CE2-1A36-4555-90DE-5321FE8A8424
++g_f_res_epp__p_resource_nl	67D7CC90-A646-4029-8039-80E01B0FD2AF
++g_f_res_epp__p_resource_nn	30B2CC36-60AB-4AF2-A016-CC133434C325
++g_f_res_epp__p_resource_pa_in	1F9C33C1-D0DB-47AF-824D-0670FF824892
++g_f_res_epp__p_resource_pl	BA5613C2-0C53-4A7E-9D48-B7AC5156AD8E
++g_f_res_epp__p_resource_pt	969BE978-6F3B-4FA6-BDE6-05320D329B42
++g_f_res_epp__p_resource_pt_br	13405A69-9671-44F9-924A-59493A20A9A2
++g_f_res_epp__p_resource_ru	C133FFBA-1C04-44EA-80E6-F1389E141AFA
++g_f_res_epp__p_resource_rw	4D2C26CD-5DAC-44B7-B625-3CADE6E60716
++g_f_res_epp__p_resource_sk	075BCBE8-DF86-4C38-B4A6-4EB6F6784D0C
++g_f_res_epp__p_resource_sl	0A4B608F-AB2A-4891-A8DA-893B0D728DEA
++g_f_res_epp__p_resource_sv	485AE801-6FAA-4043-ABC2-719D116E12B9
++g_f_res_epp__p_resource_ta_in	13B724F5-DED6-4411-A145-F29C32E2DF58
++g_f_res_epp__p_resource_tr	F96EE6D8-6F3D-4FC2-B10D-B805A7E30A6B
++g_f_res_epp__p_resource_vi	9F00828F-EE6F-40D7-BAD1-89DD7E8B126D
++g_f_res_epp__p_resource_xh	E0538841-024F-49F8-96C4-2C7E09014658
++g_f_res_epp__p_resource_zh_cn	0D3F9A9F-2FE6-4545-8A9F-DA0EF0D0EB1C
++g_f_res_epp__p_resource_zh_tw	637913FD-59F1-4B66-89E4-AB8806D160D2
++g_f_res_epp__p_resource_zu	D898BC01-3BAA-4CD2-B9F0-FCE7A90503AB
++g_f_res_eps__p_resource_af	10CDB94B-412D-4933-B702-FE8DDD25817E
++g_f_res_eps__p_resource_ar	45953E1F-F0FC-4AAB-AAAA-816AFFB372C1
++g_f_res_eps__p_resource_be_by	147FED25-CD5D-4DD3-9F5A-A864181C9DB0
++g_f_res_eps__p_resource_bg	E832309B-A850-41CC-940A-B97C6D6D4048
++g_f_res_eps__p_resource_bn_in	C12A3FE3-BEC2-45F9-A565-E59B7EC7CADA
++g_f_res_eps__p_resource_br	8BA51CB9-23CD-420A-AEC3-2A3E33E03317
++g_f_res_eps__p_resource_ca	70C7A016-FC74-4489-980E-0B4F85A942DD
++g_f_res_eps__p_resource_cs	E073E62F-5472-40F9-9970-556AC30E903A
++g_f_res_eps__p_resource_cy	005D452E-2289-4067-9D27-5AB8A86D7F71
++g_f_res_eps__p_resource_da	1E5283CF-5297-4B2C-A908-A34357665DB3
++g_f_res_eps__p_resource_de	63B12366-8C63-4E9D-BEC1-D28CD343799C
++g_f_res_eps__p_resource_el	E4B855C1-C3C1-45BE-A9E3-E093C50D2CEC
++g_f_res_eps__p_resource_en_gb	AC6E5ADE-4135-4120-BE07-4B97349AB0E0
++g_f_res_eps__p_resource_en_us	39A85216-4ABD-4D3E-8911-D31173F81A83
++g_f_res_eps__p_resource_es	5905F9CC-D91F-45EA-919B-49AED8DA889D
++g_f_res_eps__p_resource_et	12B3745B-0506-4CAF-8D43-CEB262E3C512
++g_f_res_eps__p_resource_fi	E90EC456-3F8C-42E0-98AC-259D7D6EC42B
++g_f_res_eps__p_resource_fr	0296D019-9D47-4E0E-B100-CF4C3B0E56C5
++g_f_res_eps__p_resource_gu_in	58376C4A-F541-4041-B3A9-3378CF3ED96D
++g_f_res_eps__p_resource_he	A0F02244-684D-4B8C-8ED5-456DC65B6C25
++g_f_res_eps__p_resource_hi_in	D46C2738-5475-4C89-B59D-1C66EDE3B869
++g_f_res_eps__p_resource_hr	A9E2B730-F2F5-4F7B-A3FB-DC1DA3147FCD
++g_f_res_eps__p_resource_hu	803BBD5C-4F42-4CEC-92B3-0F4997E3629D
++g_f_res_eps__p_resource_it	56AA7192-2C11-48F7-8B70-99D6A92E368F
++g_f_res_eps__p_resource_ja	6F9A4044-5AF1-4B1D-8444-7C09B343E720
++g_f_res_eps__p_resource_km	E9A77D62-8295-448F-A804-237E0000FE88
++g_f_res_eps__p_resource_ko	3300A5B3-08F0-443E-B44A-42FC087AC79A
++g_f_res_eps__p_resource_lt	2015CEE4-D8FC-47C9-84BE-F35C2A793C1E
++g_f_res_eps__p_resource_lv	1DF593A1-DF43-456A-9883-1F22C2C7A8ED
++g_f_res_eps__p_resource_mk	92AEB2F0-49DD-4F42-B010-4FA410B3768B
++g_f_res_eps__p_resource_mr_in	B7B78467-479E-4A15-A445-C248A75FD620
++g_f_res_eps__p_resource_nb	6F2AE8CC-1535-4564-966C-6423272D40B2
++g_f_res_eps__p_resource_nl	A979CE14-4C64-4BBC-A255-748AE7EF90B4
++g_f_res_eps__p_resource_nn	63F41446-AE2A-46BA-9D73-29737D638DF3
++g_f_res_eps__p_resource_pa_in	D123D48B-94BC-43B3-80EA-8FDC73512021
++g_f_res_eps__p_resource_pl	A9BF80DF-D64A-44E6-8FB8-FA3BA162F9FF
++g_f_res_eps__p_resource_pt	078A3E49-0C8F-4DC0-B79A-197D1F4694BA
++g_f_res_eps__p_resource_pt_br	D3B94BAF-B5E5-4D94-997D-ED1201546876
++g_f_res_eps__p_resource_ru	942B895D-394B-4047-9E92-62B7AD171467
++g_f_res_eps__p_resource_rw	879BC7C0-947E-4DBC-B264-377EC078BCFE
++g_f_res_eps__p_resource_sk	76E7A0EA-35CF-429A-9392-E8FC9A941555
++g_f_res_eps__p_resource_sl	C6663C9C-E3DF-4188-9AFC-C81A1F961799
++g_f_res_eps__p_resource_sv	48560A6E-E7F3-4FD1-B9B0-98A785C94739
++g_f_res_eps__p_resource_ta_in	D8AD6DBE-1F93-4130-8629-06B4F510FEDB
++g_f_res_eps__p_resource_tr	A5B4C025-E837-40ED-8C16-7CB9D0876FA8
++g_f_res_eps__p_resource_vi	E3C5E19A-37EB-4EC5-BEC0-C22EC2C0F250
++g_f_res_eps__p_resource_xh	A8E7AE51-79DB-4771-8814-1B6524640EB6
++g_f_res_eps__p_resource_zh_cn	3469AFCC-6FF9-4194-8499-CECB84FF91A7
++g_f_res_eps__p_resource_zh_tw	4E352C3F-B026-4D36-B13B-DB30E1CDA5A7
++g_f_res_eps__p_resource_zu	D7500A46-E946-469C-B229-EFD1C5455B10
++g_f_res_ept__p_resource_af	F2322114-05F1-4EE8-89E9-F927B60B54AC
++g_f_res_ept__p_resource_ar	B0E3BAFA-7C9B-4487-892C-861AD0222868
++g_f_res_ept__p_resource_be_by	2E541E91-199F-4593-9FDE-6B3D292412CD
++g_f_res_ept__p_resource_bg	C9E7C2B9-119B-4BFC-8542-07A5C63B24E0
++g_f_res_ept__p_resource_bn_in	A92B4DE5-0520-4A69-B24C-FC6F46495369
++g_f_res_ept__p_resource_br	042E5531-5BF4-4CDA-A1E4-44C685252FF1
++g_f_res_ept__p_resource_ca	DC74561A-C925-44F3-9BE6-40DC194CF6CD
++g_f_res_ept__p_resource_cs	16D0027E-B0E1-4533-AE7A-A05071978D83
++g_f_res_ept__p_resource_cy	9033DF2B-54E3-4C91-A6B0-628C38AB9C68
++g_f_res_ept__p_resource_da	76C2CD2A-AD71-444B-8788-68343E233FD0
++g_f_res_ept__p_resource_de	247C162F-F8BA-4A1B-8CA2-851545EE055B
++g_f_res_ept__p_resource_el	2777101D-C897-4A73-AEAA-CA6F144CC8C7
++g_f_res_ept__p_resource_en_gb	604CC1BD-06CD-41B6-B4B6-65E09CB50706
++g_f_res_ept__p_resource_en_us	612BE6AF-44E6-472F-AE92-54D7FA1786B1
++g_f_res_ept__p_resource_es	4344CB26-9B6F-4D82-A312-1A63E6424281
++g_f_res_ept__p_resource_et	5C26B881-D127-460E-96DE-02B00023FEDE
++g_f_res_ept__p_resource_fi	45555D9F-1D33-4CBF-BB96-E66D93AE76CA
++g_f_res_ept__p_resource_fr	5CE0CFE2-FF12-40F8-A50B-0B8D47F7EFBF
++g_f_res_ept__p_resource_gu_in	B7B7E5B8-24A1-4D09-91FD-6C31CCBA9373
++g_f_res_ept__p_resource_he	FC918685-C550-4F3D-8413-16DE078B69B4
++g_f_res_ept__p_resource_hi_in	73988447-EC23-4166-AC35-0A01EB60B8C7
++g_f_res_ept__p_resource_hr	145985EB-6751-4892-A548-977B278C535F
++g_f_res_ept__p_resource_hu	F75F12BF-1A26-4D99-BFE6-6D42CC5F0DC9
++g_f_res_ept__p_resource_it	2783FAE7-12F9-4310-A420-7FB52771FDA4
++g_f_res_ept__p_resource_ja	0E100FCF-64A4-4C69-9385-3AC1B37E4938
++g_f_res_ept__p_resource_km	208E6ACE-0DB1-412B-BD9C-872B1C2145E6
++g_f_res_ept__p_resource_ko	0A9100F4-7E99-4B3B-BB39-4755D5F4E372
++g_f_res_ept__p_resource_lt	82B586BB-E6D3-43DF-BE7B-DAB7754103A6
++g_f_res_ept__p_resource_lv	A1A7D473-5271-4664-863F-4A5B81609BCA
++g_f_res_ept__p_resource_mk	E72B76C1-F9E9-4ED5-931F-107B6520919D
++g_f_res_ept__p_resource_mr_in	51A19687-DDB6-4CB6-ADA0-C9157861E5B1
++g_f_res_ept__p_resource_nb	2F6B7DD4-1477-4040-9270-56B90C334C8F
++g_f_res_ept__p_resource_nl	65CD96A3-A199-49DE-ADEC-B65F87EFEE1C
++g_f_res_ept__p_resource_nn	6BB7BED3-4070-4701-B848-2091984D0132
++g_f_res_ept__p_resource_pa_in	AE1AB7AA-0750-4A1E-95AD-E1964B66BA54
++g_f_res_ept__p_resource_pl	92F4C52D-8F33-45CB-86E1-5400FBA33BD1
++g_f_res_ept__p_resource_pt	ED3DD0F9-3A13-4C99-B251-C13EA554FCA5
++g_f_res_ept__p_resource_pt_br	70587C98-4679-4193-89A9-D1A465759E31
++g_f_res_ept__p_resource_ru	5F2508FB-7A21-4B1D-9B51-F0C672093B22
++g_f_res_ept__p_resource_rw	E911B561-CC72-4A6B-9D40-B61B50620A85
++g_f_res_ept__p_resource_sk	2C443E95-1DF0-4C17-85D5-DEE600EB569E
++g_f_res_ept__p_resource_sl	E1409EF8-F814-4BD0-BDD1-E3E8F798CF34
++g_f_res_ept__p_resource_sv	527EEED6-BDF6-40A4-A3A0-809428C90DC1
++g_f_res_ept__p_resource_ta_in	F96229A0-E9B2-4568-B073-7C21716B44F4
++g_f_res_ept__p_resource_tr	BAACCBF1-261D-4095-8363-BB902720FB62
++g_f_res_ept__p_resource_vi	059549CD-C578-41C4-BED3-CDAE92BA7844
++g_f_res_ept__p_resource_xh	0033C932-1253-4083-BA23-B58EED21DECE
++g_f_res_ept__p_resource_zh_cn	052F1700-5049-4675-A082-B4FAF81E5BBE
++g_f_res_ept__p_resource_zh_tw	F6455265-1901-425C-BD29-09BC4EE41F49
++g_f_res_ept__p_resource_zu	71230929-067E-42C8-9907-BB6C848E5348
++g_f_res_eur__p_resource_af	7FB5115A-53E6-4040-9241-E918E81BA1FD
++g_f_res_eur__p_resource_ar	55BBAC5F-8527-4B35-8767-9E2B46D5D86C
++g_f_res_eur__p_resource_be_by	7DB6700C-C5F9-4754-B30E-47E09DA3A96D
++g_f_res_eur__p_resource_bg	0EFAAAC3-8BA3-4CD4-9756-6C9B21F956FB
++g_f_res_eur__p_resource_bn_in	8A7DA601-6A08-437D-BCAE-5323CE01F154
++g_f_res_eur__p_resource_br	E83C142C-2825-4FDE-9D71-909CB523133B
++g_f_res_eur__p_resource_ca	249694AD-365C-4CAE-92D0-A37B09B15309
++g_f_res_eur__p_resource_cs	828D4033-C5E3-42FA-BBAA-FD5881F1E41C
++g_f_res_eur__p_resource_cy	743A3814-FB50-4893-821A-29975C0C0142
++g_f_res_eur__p_resource_da	6C2C625F-F08B-4CA9-BB3E-75BB939320D8
++g_f_res_eur__p_resource_de	B84EC946-4B09-4713-A289-B8939A279FE8
++g_f_res_eur__p_resource_el	CC47B4E0-25AE-4156-BB8D-F1637548A38D
++g_f_res_eur__p_resource_en_gb	82D0876F-2C77-4C66-AF14-3342D538A756
++g_f_res_eur__p_resource_en_us	847B83F9-1458-48FB-A69E-5CFE233F0E01
++g_f_res_eur__p_resource_es	25C6DE31-4978-47D8-84D2-B19710525A65
++g_f_res_eur__p_resource_et	3375A8D1-4B07-4CF7-A5F9-C711F175825D
++g_f_res_eur__p_resource_fi	71D534D5-F8A8-4E0E-A94F-37C6C300BE04
++g_f_res_eur__p_resource_fr	A6780912-12A7-4B8B-B0FD-CE6FF8C390C7
++g_f_res_eur__p_resource_gu_in	22D879DA-8AA8-4086-BD2E-7E69507D1DA9
++g_f_res_eur__p_resource_he	12178B2E-CABE-46C0-9C38-15C58486CDBF
++g_f_res_eur__p_resource_hi_in	FAA63305-68E9-40CD-99D9-8AE87EC75836
++g_f_res_eur__p_resource_hr	555917D8-E4E3-4A55-8C77-9DE19A97ECBD
++g_f_res_eur__p_resource_hu	2D724746-3F9C-4A2D-A431-0CAECF62C3ED
++g_f_res_eur__p_resource_it	25AAB534-7C3B-420A-B40E-505555D755DA
++g_f_res_eur__p_resource_ja	1413EA91-B500-410A-8F6F-11979C0C9792
++g_f_res_eur__p_resource_km	CBC97137-2B16-4D74-B987-4343DF361189
++g_f_res_eur__p_resource_ko	FDD746BB-8DB0-4016-832E-E1FC5DCFA40B
++g_f_res_eur__p_resource_lt	6D8C044E-8458-4004-AC9C-2E6F7FD6DBDA
++g_f_res_eur__p_resource_lv	D3A3E069-45A5-45F0-B18C-AFFD7D17D39C
++g_f_res_eur__p_resource_mk	E0DBDD3A-6A10-41ED-973C-EC2F7361ACAC
++g_f_res_eur__p_resource_mr_in	4DD33682-3D2A-4C77-A948-5C1FEA6D049C
++g_f_res_eur__p_resource_nb	7FA6E1F1-4D60-4FF6-AE6E-7259905F5050
++g_f_res_eur__p_resource_nl	76360626-4A0C-4525-914B-313FFF79CD31
++g_f_res_eur__p_resource_nn	52911B40-49DF-490C-BB68-6817C4C12EF6
++g_f_res_eur__p_resource_pa_in	2A1D1117-F0D2-49A3-AC11-6AF5DEB300DC
++g_f_res_eur__p_resource_pl	53B803D6-C925-4CB7-B8C7-858C3BD604FA
++g_f_res_eur__p_resource_pt	B63D8AC0-5A93-44C5-AD51-D7B738DDAA37
++g_f_res_eur__p_resource_pt_br	2696C4C9-201E-4099-8562-EEAFC4CC24E9
++g_f_res_eur__p_resource_ru	8329638A-66C1-4824-A722-4677DCB4407B
++g_f_res_eur__p_resource_rw	96DBE1A2-A4CE-4383-A3C0-AB5316E435C0
++g_f_res_eur__p_resource_sk	D17FB63D-550E-4393-9924-05DB43378847
++g_f_res_eur__p_resource_sl	2B3D1CD2-11AF-4DE1-BDBB-2FB6671042C3
++g_f_res_eur__p_resource_sv	844F84C2-ABA5-4759-A1D0-CAF8E1C9BFB6
++g_f_res_eur__p_resource_ta_in	44E36DBA-E889-405B-B71E-A66B9E2008C7
++g_f_res_eur__p_resource_tr	229DE490-10FA-4464-B338-00770A46FB12
++g_f_res_eur__p_resource_vi	8C92067C-E963-41BD-A39C-49E50CD74B24
++g_f_res_eur__p_resource_xh	EE6C85AE-ED33-4AB7-AAF8-F99B8146BC4A
++g_f_res_eur__p_resource_zh_cn	5A01F787-174A-46F5-8C4D-3F7EFF8E81FF
++g_f_res_eur__p_resource_zh_tw	E6A95110-F785-4820-9D0A-4041018E124F
++g_f_res_eur__p_resource_zu	262E8C19-F742-4891-B304-5B73B5BD1253
++g_f_res_fps_office__p_resource_af	747BD996-9D04-4595-8B05-966C845F6A88
++g_f_res_fps_office__p_resource_ar	B6A26C67-BE53-42BD-9B1F-C1C1D11E4CFD
++g_f_res_fps_office__p_resource_be_by	966F8F24-852F-4F55-8017-AE3F80CBC2CD
++g_f_res_fps_office__p_resource_bg	1FBF42BF-D1ED-438D-A5F7-313A647B4A21
++g_f_res_fps_office__p_resource_bn_in	B23CAA95-F425-4772-82B9-E7498F1A6A0D
++g_f_res_fps_office__p_resource_br	B54DA0A0-B07C-4565-B0A1-494D2097D76B
++g_f_res_fps_office__p_resource_ca	8DEA1A23-0887-4BE1-B257-41CAA5DE9774
++g_f_res_fps_office__p_resource_cs	B3599E49-521E-4CD8-B920-03BD488D9680
++g_f_res_fps_office__p_resource_cy	717735D8-C97E-4D23-9009-13B5989E8BD8
++g_f_res_fps_office__p_resource_da	2CA8470C-03A9-4BD5-B842-FDF097B5AE29
++g_f_res_fps_office__p_resource_de	21CB8C83-1BA2-45F3-9C2D-DC95D75E02E3
++g_f_res_fps_office__p_resource_el	FC2F09D4-4583-4265-8A28-6B895FE84824
++g_f_res_fps_office__p_resource_en_gb	9F975CA6-8B9E-4715-A9A9-89ADE21AB4D6
++g_f_res_fps_office__p_resource_en_us	244F0B2F-AA23-4A50-A762-EA542AE616A8
++g_f_res_fps_office__p_resource_es	3743ABB1-BF13-4223-83C6-6C8B0DEFD405
++g_f_res_fps_office__p_resource_et	8797A8EB-B8C1-4DFB-8AD4-DB0BAB6C2356
++g_f_res_fps_office__p_resource_fi	ED96CDF9-543E-44E9-BF8C-A033723F546D
++g_f_res_fps_office__p_resource_fr	DCBBA48A-9C12-482A-BA57-42CA04895757
++g_f_res_fps_office__p_resource_gu_in	205F6688-A002-4F2F-8E91-FAA21CE72092
++g_f_res_fps_office__p_resource_he	EE41CB86-EAD5-496C-BB2E-32E493F6EFED
++g_f_res_fps_office__p_resource_hi_in	9F7F361E-8664-418A-94B5-CBE4CFA18DE7
++g_f_res_fps_office__p_resource_hr	CDD0C886-803A-4893-AC9B-041777DA201B
++g_f_res_fps_office__p_resource_hu	E0C40F54-3017-4F02-8708-644FC2668B29
++g_f_res_fps_office__p_resource_it	97803589-1BA4-4708-A24B-E8ED6B68AD37
++g_f_res_fps_office__p_resource_ja	50166694-FE90-4B8C-B015-3B561012E591
++g_f_res_fps_office__p_resource_km	BF4D3A42-BDBA-4837-9063-26C59F96F87E
++g_f_res_fps_office__p_resource_ko	73D0A3AC-46C9-4A4F-8EBF-24529C24EC0A
++g_f_res_fps_office__p_resource_lt	28BA9717-E082-4E0F-A43B-D12AE7608EC0
++g_f_res_fps_office__p_resource_lv	CC0D33F5-915F-4235-86B2-4F161C16CDD6
++g_f_res_fps_office__p_resource_mk	A087BEC2-DC99-4889-AEF6-83317C54C02A
++g_f_res_fps_office__p_resource_mr_in	E28902DA-9672-45BB-A941-54149510F520
++g_f_res_fps_office__p_resource_nb	0E52801A-5E76-4E61-A361-A2AF24FF8843
++g_f_res_fps_office__p_resource_nl	184ADFC7-3E38-4798-AEB7-49407A05044D
++g_f_res_fps_office__p_resource_nn	D7449F8D-972D-45DB-82C7-12F2C4E3EEC5
++g_f_res_fps_office__p_resource_pa_in	851136BF-DAD7-4041-838D-FE01CCCD9C6C
++g_f_res_fps_office__p_resource_pl	0CEE954C-2439-4FE2-9A78-48B6BAF9D0DC
++g_f_res_fps_office__p_resource_pt	FD7BD995-7BA5-4685-AF4B-D5592FBC4F5B
++g_f_res_fps_office__p_resource_pt_br	CEC70FD9-4927-44FB-A4B8-509EC18D8CB1
++g_f_res_fps_office__p_resource_ru	9A4CEB23-88DA-45BD-BEDC-C7FAECA9C989
++g_f_res_fps_office__p_resource_rw	5FD7F9AA-7679-4041-BF68-58D87A09C106
++g_f_res_fps_office__p_resource_sk	F6FEE70C-F9A8-43D1-BD34-4328ECD26D79
++g_f_res_fps_office__p_resource_sl	A6EF926A-C294-4314-BB87-85D5A1C10AAE
++g_f_res_fps_office__p_resource_sv	050BD9A9-3500-452F-AF90-7250188156F8
++g_f_res_fps_office__p_resource_ta_in	5CE2A588-96F4-4191-B0A3-5C5F38BA75C4
++g_f_res_fps_office__p_resource_tr	ECD72EA1-5443-4F17-BE22-6C26A227B9FB
++g_f_res_fps_office__p_resource_vi	E821FDAB-3C5C-4A96-8A6E-5DEBB29468E0
++g_f_res_fps_office__p_resource_xh	CE4884C5-117E-4AD5-9B22-C0B21C7722BA
++g_f_res_fps_office__p_resource_zh_cn	F2D859C7-B31E-435D-A46C-81EC4E5D01FC
++g_f_res_fps_office__p_resource_zh_tw	A6044FAF-D93B-45B6-BD32-A420C8FC82EC
++g_f_res_fps_office__p_resource_zu	EEC157B8-E6CE-452A-8458-F65CC92D2C45
++g_f_res_frm__p_resource_af	A24F87CD-1877-4A13-A85E-92B45D44046D
++g_f_res_frm__p_resource_ar	98F8E9F8-8F56-4638-9A84-62FC8CA3F50B
++g_f_res_frm__p_resource_be_by	0A271EB0-17D6-4E68-B89C-9B9170CDE93E
++g_f_res_frm__p_resource_bg	B11C6816-5C88-4992-B32E-513C90BB2C0E
++g_f_res_frm__p_resource_bn_in	2DDC6662-9EAF-4198-AB6F-A37BE7F85B49
++g_f_res_frm__p_resource_br	FDA0C2D3-9666-46E0-B452-CB5813EF0326
++g_f_res_frm__p_resource_ca	BD4FA5BE-184E-41FE-A868-9C2DE3A0A8BB
++g_f_res_frm__p_resource_cs	28311B68-C2CB-4D3B-8392-42F8374FEE34
++g_f_res_frm__p_resource_cy	164A8E89-BD96-4636-BD11-1BED1D4A5B0F
++g_f_res_frm__p_resource_da	3612E193-8BC7-4C2B-AF32-5CF8CD4836C2
++g_f_res_frm__p_resource_de	29C9ABFA-A761-4B3D-9FF8-3F5E7B477F5E
++g_f_res_frm__p_resource_el	70005F03-6E2F-41D5-BE47-89ECEB6CEE8F
++g_f_res_frm__p_resource_en_gb	BA9A654A-1976-4443-8264-4258E63AD004
++g_f_res_frm__p_resource_en_us	C9F34721-6850-40C3-AC71-709E2BA19205
++g_f_res_frm__p_resource_es	9A7BB3C4-F405-45EE-BC85-6A94EA2D0984
++g_f_res_frm__p_resource_et	0743E5F0-938D-473C-AB3D-27FA6978A4F8
++g_f_res_frm__p_resource_fi	60138B25-189A-444C-B12B-B3BAF42A061A
++g_f_res_frm__p_resource_fr	5FE55C95-7C05-4856-B67D-D734A3B6FCFC
++g_f_res_frm__p_resource_gu_in	BF0C96FF-1885-44FA-95A4-56928AFA32B2
++g_f_res_frm__p_resource_he	F030217B-9004-403A-9651-055770A12C02
++g_f_res_frm__p_resource_hi_in	8F0E1428-4CFD-4A2D-BB4A-8D2F48179A51
++g_f_res_frm__p_resource_hr	19F16493-45B0-4014-B113-5E1023CF89C6
++g_f_res_frm__p_resource_hu	0BB57E5E-51DF-4DB9-B5B8-CD67AE17381B
++g_f_res_frm__p_resource_it	A66D8987-8FA3-48A0-B411-63EFE3FC90BC
++g_f_res_frm__p_resource_ja	08376E17-0C1F-4A32-8DB1-4D1FF183573E
++g_f_res_frm__p_resource_km	64E733BE-40DC-4423-8719-4D8F5F6068C0
++g_f_res_frm__p_resource_ko	B0B3232C-C580-4D8B-9D20-BC388239E6A9
++g_f_res_frm__p_resource_lt	10DF3CEC-6F3C-45C2-BB52-7CD0BD03F3B6
++g_f_res_frm__p_resource_lv	4B4C90EB-AA85-4CCD-AB1A-B5DA7B014DE0
++g_f_res_frm__p_resource_mk	08940F83-0AB5-4692-9C9A-FD6B225D4D4D
++g_f_res_frm__p_resource_mr_in	CED3D07D-F174-440D-BDE1-B1EBD309802E
++g_f_res_frm__p_resource_nb	35FEC819-7F2C-4539-8130-5CED2B195AA6
++g_f_res_frm__p_resource_nl	DBC66057-F76C-4BA0-AC0C-556E5E7872F1
++g_f_res_frm__p_resource_nn	BEDD46F9-FD0D-4E1E-8A0E-7CFF96D1703E
++g_f_res_frm__p_resource_pa_in	5D78D720-414A-4E20-AADF-DCD0C3ECF7E6
++g_f_res_frm__p_resource_pl	92B94555-37C1-4DBF-BF12-97EEA52FDB6F
++g_f_res_frm__p_resource_pt	5F893396-6FEF-42D7-8AAF-AFBAB2BDEDDF
++g_f_res_frm__p_resource_pt_br	A33FC8D7-DB7B-4378-9926-0E0452C52500
++g_f_res_frm__p_resource_ru	9B6E5B8E-4B05-4CAF-8DB0-8FA66DA5D59D
++g_f_res_frm__p_resource_rw	1DDAA57C-469C-44CD-94D7-D913A8B57038
++g_f_res_frm__p_resource_sk	ECC1FA3C-8785-4753-B4BF-464823081113
++g_f_res_frm__p_resource_sl	F0D14717-A59D-4330-B39C-50A3923B6D6F
++g_f_res_frm__p_resource_sv	AAF2FB30-80BC-42CE-B1A8-076990F71231
++g_f_res_frm__p_resource_ta_in	B920AE8A-1D87-4910-A44E-1E35C0D7608F
++g_f_res_frm__p_resource_tr	80AFEBD6-A7CD-4562-8DE1-36E137A3DC80
++g_f_res_frm__p_resource_vi	83C07169-D48C-4941-98E1-B3217F9C8AFD
++g_f_res_frm__p_resource_xh	F7FE9331-83AB-4F93-B81C-2FE45E64F1F9
++g_f_res_frm__p_resource_zh_cn	E6902654-9800-4610-884C-262672B685E5
++g_f_res_frm__p_resource_zh_tw	09936189-FE51-43EC-8243-8C91A3817D1E
++g_f_res_frm__p_resource_zu	EE433849-9E47-4B95-9109-90AD308CA923
++g_f_res_fwe__p_resource_af	D6D5BC73-2C2B-4B02-B897-59345C733F14
++g_f_res_fwe__p_resource_ar	62E822AE-8C02-46EC-85E5-463778BC169D
++g_f_res_fwe__p_resource_be_by	16A9724F-D9DD-40CC-8DA9-72FDFC913B8F
++g_f_res_fwe__p_resource_bg	9785D629-1ED4-4968-AE96-3B96153067F9
++g_f_res_fwe__p_resource_bn_in	A1AF526C-671F-425E-844F-FE638BD6D881
++g_f_res_fwe__p_resource_br	88515338-460E-4668-8DD4-6A150542D169
++g_f_res_fwe__p_resource_ca	598A33A3-815D-43CA-A1BB-F7F04D9F3FC9
++g_f_res_fwe__p_resource_cs	D43C61B5-3DA0-45B2-84F1-5C79F21BC687
++g_f_res_fwe__p_resource_cy	9698665D-6833-43A5-B088-52562FFFB3CF
++g_f_res_fwe__p_resource_da	00DE55C8-CC71-41F0-BDE9-E0F258E6A48B
++g_f_res_fwe__p_resource_de	390D0684-661E-4B24-9312-D9F5300ED231
++g_f_res_fwe__p_resource_el	B2CFFFC5-59BB-4755-B41C-29E86612D97E
++g_f_res_fwe__p_resource_en_gb	D9A28813-907C-474C-A9D3-B084EFDA105D
++g_f_res_fwe__p_resource_en_us	199F9301-08F4-4688-BE40-6CB5E3E068C7
++g_f_res_fwe__p_resource_es	B1942610-EE39-452C-954A-507138ECC93C
++g_f_res_fwe__p_resource_et	E90CBD4D-EDC5-4CF9-9751-52074FC295E8
++g_f_res_fwe__p_resource_fi	87AE7026-4B2E-49D2-AB6E-C17127E320AD
++g_f_res_fwe__p_resource_fr	1288F9FD-3A60-4EFF-9AD4-C974FF46084E
++g_f_res_fwe__p_resource_gu_in	094D105D-C737-4346-9231-F4454324652A
++g_f_res_fwe__p_resource_he	3E675329-C826-4BBB-B353-5037F73AEDB3
++g_f_res_fwe__p_resource_hi_in	EA1A97D8-2A67-4219-814B-4908ADA8EF3C
++g_f_res_fwe__p_resource_hr	2BCD1800-6152-41C6-9C25-D1165466EF78
++g_f_res_fwe__p_resource_hu	715B6428-B784-45BD-9A6E-0110221CEB1A
++g_f_res_fwe__p_resource_it	6D122CAE-A2E7-425E-8AA5-3EA511D48209
++g_f_res_fwe__p_resource_ja	3B672923-192F-4EB1-BAA9-96F371247EF8
++g_f_res_fwe__p_resource_km	F79483FB-DAE9-430D-9131-5898335DE275
++g_f_res_fwe__p_resource_ko	8F07AD51-E292-48AB-A71C-6B7AA744184E
++g_f_res_fwe__p_resource_lt	DAC322D2-725B-419B-B5EF-A0D15C222C52
++g_f_res_fwe__p_resource_lv	1B931ECA-5B24-4A53-AFB7-21AD26F44963
++g_f_res_fwe__p_resource_mk	4F589F6B-3E2E-4876-BA52-DD376A739939
++g_f_res_fwe__p_resource_mr_in	8856DFE2-D8AA-4C80-80AE-9807C84ECC0D
++g_f_res_fwe__p_resource_nb	8761FB03-4A38-427D-BC0D-BEA848827243
++g_f_res_fwe__p_resource_nl	BFC9DF9D-5C68-41CD-BA6C-3CB1527AEAE3
++g_f_res_fwe__p_resource_nn	3085D240-C99D-422C-8375-5299DCEDEFA6
++g_f_res_fwe__p_resource_pa_in	8CC642C8-2901-438D-93E2-0AEB8E51994F
++g_f_res_fwe__p_resource_pl	F499EB39-0476-4B2E-8526-828ADE9CBF7C
++g_f_res_fwe__p_resource_pt	392C0564-CC3B-4DAC-9EE8-5E5316BD85F6
++g_f_res_fwe__p_resource_pt_br	A1A0ACBE-FF70-465B-8EEE-A0356CAC8258
++g_f_res_fwe__p_resource_ru	1EACC648-2AB4-42BA-B3CA-3A455D1C1FBD
++g_f_res_fwe__p_resource_rw	AFF638CD-EF0F-4B7B-B745-7A4E8B36CD2D
++g_f_res_fwe__p_resource_sk	A43B7836-027B-4E42-9BB2-B40B36FDC099
++g_f_res_fwe__p_resource_sl	2DF6BA3D-C207-496C-B904-D53846735DC6
++g_f_res_fwe__p_resource_sv	53FF59EC-391B-4E75-9A22-5F1EAFF716C1
++g_f_res_fwe__p_resource_ta_in	962C7A7E-F9E3-46BE-9F8C-C872ED05D51F
++g_f_res_fwe__p_resource_tr	9391E5AA-C8CF-4D13-AFE9-C6142CCD87A5
++g_f_res_fwe__p_resource_vi	233636DE-9B6F-49FC-B5E1-1BC1338DF895
++g_f_res_fwe__p_resource_xh	CF9F410E-215A-4959-BFF2-8C1EA690D480
++g_f_res_fwe__p_resource_zh_cn	2670DFE1-6C6E-44DE-888A-B1325BD87D9A
++g_f_res_fwe__p_resource_zh_tw	08D568BB-9621-4301-83E8-CFF2E7FACBF3
++g_f_res_fwe__p_resource_zu	F2066E52-AD0A-42E1-9066-FA1BA34F4ACE
++g_f_res_gal__p_resource_af	1E518839-CEE8-4C67-AB41-D9C313EEF732
++g_f_res_gal__p_resource_ar	3CCB2AA3-98C1-477D-9AAE-DBD85927141F
++g_f_res_gal__p_resource_be_by	F9543D68-7F2B-4CC8-AF6A-C6D4D96F65C2
++g_f_res_gal__p_resource_bg	2E565189-15DE-4E3D-AFB1-417F26B516B1
++g_f_res_gal__p_resource_bn_in	7B6283A0-B305-428A-9446-53155089BDE2
++g_f_res_gal__p_resource_br	10EE89BF-3628-453A-9E1D-13DF03A9A73D
++g_f_res_gal__p_resource_ca	1691E896-5D27-4C11-AFF9-8A34BD3B7B55
++g_f_res_gal__p_resource_cs	393AFC36-CAA2-426F-BDC1-DA7A679ADB18
++g_f_res_gal__p_resource_cy	3E91CE64-C7C0-4B17-898D-561B4658B17B
++g_f_res_gal__p_resource_da	53ED50A0-889E-40ED-9D22-3FFEDE247578
++g_f_res_gal__p_resource_de	95F9D781-8BFE-495B-AF43-CCF2BEA6EDC0
++g_f_res_gal__p_resource_el	CA708335-27B5-4E00-B874-AAD7E78C4129
++g_f_res_gal__p_resource_en_gb	EDAB986D-9F12-4366-9741-DE4E6724B459
++g_f_res_gal__p_resource_en_us	B9449BD3-EA42-40AA-8B43-90E7E85C88CD
++g_f_res_gal__p_resource_es	F9D2522E-A5A8-4E02-8F6A-6C3499331427
++g_f_res_gal__p_resource_et	E8BDF508-3C6A-47BF-ABFC-DA8A9BD9AB1B
++g_f_res_gal__p_resource_fi	47D7A3CB-C704-435D-ACBB-2439798A2F6A
++g_f_res_gal__p_resource_fr	8BAD6BBA-19A4-4B4B-9261-B316E703B143
++g_f_res_gal__p_resource_gu_in	C78440B5-F876-4726-BB70-34F17E809766
++g_f_res_gal__p_resource_he	12A9CA35-B40B-4DE2-9956-EF0CF9758CC7
++g_f_res_gal__p_resource_hi_in	825344EE-0B53-4516-B33C-714CF35802B2
++g_f_res_gal__p_resource_hr	50F6D0BC-9E95-4D24-82AC-9C6BB90C622F
++g_f_res_gal__p_resource_hu	1D1A261E-4F34-451B-A2F8-FA8892259897
++g_f_res_gal__p_resource_it	61AA3524-4617-4566-B082-7E8790FB4644
++g_f_res_gal__p_resource_ja	029C96E0-4439-48B0-9C4A-EDF629579D3E
++g_f_res_gal__p_resource_km	BBB1C8AA-0E86-4D71-AE7A-C2E1488AB67B
++g_f_res_gal__p_resource_ko	8508CA93-F8E1-407E-B129-2DB8F9BFF6C3
++g_f_res_gal__p_resource_lt	74DE887F-C8F6-4DF0-B1CC-8FE06D0DB15E
++g_f_res_gal__p_resource_lv	99856919-654A-4AED-A398-F0EA90785B94
++g_f_res_gal__p_resource_mk	2C74123D-718B-445B-AC89-7E535307E0F7
++g_f_res_gal__p_resource_mr_in	F31DBDA8-EB2A-4300-9602-525E6A9B5B60
++g_f_res_gal__p_resource_nb	D1EB0735-71F6-4FD9-8413-923F1249A7F2
++g_f_res_gal__p_resource_nl	F0ACB06C-E98D-400B-A196-C6E58B469456
++g_f_res_gal__p_resource_nn	FEC70C46-D7BB-42DC-AB0F-65BF02F074A4
++g_f_res_gal__p_resource_pa_in	8B8F9920-799E-4B28-ABD4-F941514A3247
++g_f_res_gal__p_resource_pl	CF2FC1CF-BCB8-4EE0-A039-D173D8FF09AD
++g_f_res_gal__p_resource_pt	1EAF3129-A14A-4ABE-895F-516C6266A5E7
++g_f_res_gal__p_resource_pt_br	5792888A-4CE1-43FF-A413-53B0ED4B0AC7
++g_f_res_gal__p_resource_ru	FE6145CC-4404-4FB8-9C86-032E1772DEBC
++g_f_res_gal__p_resource_rw	1F241059-6802-4453-9974-D1D62ABAD557
++g_f_res_gal__p_resource_sk	DABA6B9E-02A5-47A5-AF35-6DF2FB8DB0F9
++g_f_res_gal__p_resource_sl	AB6328B4-6234-4D55-8ADA-862C9A593FB2
++g_f_res_gal__p_resource_sv	07DC40E7-56BE-4EA8-BC29-958035A2241E
++g_f_res_gal__p_resource_ta_in	E3E5B21C-DA7C-4692-94FA-837600328FA9
++g_f_res_gal__p_resource_tr	B50247DF-106F-456C-B083-60673E775561
++g_f_res_gal__p_resource_vi	61BBF83E-23B9-4181-95E1-2C3527822684
++g_f_res_gal__p_resource_xh	34FEACE0-1881-4F52-BC8A-3C00B49C02F6
++g_f_res_gal__p_resource_zh_cn	8E76737A-01D4-4440-B186-D0CE8CC4625C
++g_f_res_gal__p_resource_zh_tw	468FC51A-836F-4465-AA8C-F49D798779CE
++g_f_res_gal__p_resource_zu	351D12E3-48FD-4492-897E-AEB7E8A15C0B
++g_f_res_imp__p_resource_af	F3754F35-65F0-4F4D-961B-2C273E041C58
++g_f_res_imp__p_resource_ar	46F64EBE-9C92-44BC-959A-10274B88FA0C
++g_f_res_imp__p_resource_be_by	DBD75E18-3DA0-4D54-9168-38C780731960
++g_f_res_imp__p_resource_bg	6CAADF7C-BAD0-41B5-8E20-153EA321F415
++g_f_res_imp__p_resource_bn_in	D12442EB-D61C-46CB-A460-B37DF9C6B119
++g_f_res_imp__p_resource_br	5811888B-26AB-4757-AB62-A5BB09B932E6
++g_f_res_imp__p_resource_ca	42F4F5A0-235C-4033-B040-5193B175A19D
++g_f_res_imp__p_resource_cs	FE1A3C68-A4A7-4957-9B18-DCB2874DDC90
++g_f_res_imp__p_resource_cy	7F2A1C10-4BAF-49A6-8F84-731A37922E9F
++g_f_res_imp__p_resource_da	E44657D5-BF9F-4CFC-B811-D10AD0D98EAA
++g_f_res_imp__p_resource_de	4E4C5FD5-7A8F-4F0F-9DD5-07DB228411C2
++g_f_res_imp__p_resource_el	D502E4A0-9C87-484E-A6C7-ABDD24646051
++g_f_res_imp__p_resource_en_gb	E2E6F6D3-09DE-47E2-A1A0-8A4FA98E60A4
++g_f_res_imp__p_resource_en_us	1615BBB3-9F09-4C8A-91B3-54044BA6998D
++g_f_res_imp__p_resource_es	7D246C2F-E5B3-45C8-838A-1094B5E242FF
++g_f_res_imp__p_resource_et	FBBFB054-EB4B-4A6B-8DC3-4965132C37CE
++g_f_res_imp__p_resource_fi	400A0927-5310-4F80-84BB-D60D438950F9
++g_f_res_imp__p_resource_fr	656A7D91-84CF-4B51-A14E-1127537B57B2
++g_f_res_imp__p_resource_gu_in	437E22F4-9B73-4D87-A2C7-B56F21C6B74C
++g_f_res_imp__p_resource_he	6BD898D1-F357-47FC-9F83-AF6AF3A0E4BB
++g_f_res_imp__p_resource_hi_in	95E91AAC-63A7-4235-AAD4-8D87D2A1428A
++g_f_res_imp__p_resource_hr	A0203B44-3444-49DA-B585-2E5C4A7FFE4E
++g_f_res_imp__p_resource_hu	9AA19961-883D-4253-9F4A-E9512A264D3E
++g_f_res_imp__p_resource_it	B35EDF98-CF86-4486-81DA-86C0E1BDCA7B
++g_f_res_imp__p_resource_ja	0B193228-EBE1-44B3-98AA-D59706068AD4
++g_f_res_imp__p_resource_km	1FCFD218-9C61-47A8-BA20-59702C2B30E2
++g_f_res_imp__p_resource_ko	4BB87A7F-6E2A-4484-9AD7-F7739FE9349C
++g_f_res_imp__p_resource_lt	F6951A55-6F2C-415A-9F14-4394CAABBD12
++g_f_res_imp__p_resource_lv	ED3B270F-8AFA-4587-83B5-9A3775328C9D
++g_f_res_imp__p_resource_mk	85E3DAB8-86A3-497F-BE6F-7CB882E36C20
++g_f_res_imp__p_resource_mr_in	C785ADBB-FA1C-487E-AD4B-B0138EEAD869
++g_f_res_imp__p_resource_nb	14F93169-B564-443C-A82B-7E44AAD67F93
++g_f_res_imp__p_resource_nl	C54DAB13-2527-45B6-A204-5CC859DAEA66
++g_f_res_imp__p_resource_nn	B8BF66BB-16D6-4284-9D0A-525E2CA47797
++g_f_res_imp__p_resource_pa_in	B694039E-6D32-4CF9-920C-DDB7A8CC0641
++g_f_res_imp__p_resource_pl	24C1A257-9BF4-4B01-9134-EC8F593836EB
++g_f_res_imp__p_resource_pt	CF8B5A19-DB9D-4424-B64C-BD0BE5A4A297
++g_f_res_imp__p_resource_pt_br	6C4BCC58-CF06-43A0-9D39-20DD60355C81
++g_f_res_imp__p_resource_ru	8CD44326-0A0C-4402-8167-6D142EA46CC5
++g_f_res_imp__p_resource_rw	EE981498-A4E1-453D-A9FA-4AF4DF54BA05
++g_f_res_imp__p_resource_sk	459D2DC3-537C-44F2-985F-79B27AEC47BD
++g_f_res_imp__p_resource_sl	13159085-EEFB-4467-B548-705EE315079D
++g_f_res_imp__p_resource_sv	FEF2A301-3315-4BB1-AAE1-7F30A6BF9C9C
++g_f_res_imp__p_resource_ta_in	2511630F-EB94-4F41-95CE-65DEC9F3E428
++g_f_res_imp__p_resource_tr	EB5919E4-0166-45DE-810F-636014D62F9E
++g_f_res_imp__p_resource_vi	0C5DAF34-D150-4709-AE8F-33F5B0B08C2E
++g_f_res_imp__p_resource_xh	FFB20BA3-246E-4729-B127-BD8590B3D7B6
++g_f_res_imp__p_resource_zh_cn	0E2FA8EF-F9EC-40D0-B4DC-4072DE4B61EC
++g_f_res_imp__p_resource_zh_tw	4554E87D-F59B-4DD2-A739-C76FBEA1373F
++g_f_res_imp__p_resource_zu	DB8D6933-5320-4BE3-BE7C-F5411047FFD8
++g_f_res_ofa__p_resource_af	B4D65BB0-48C8-4054-AA27-C327763C2B43
++g_f_res_ofa__p_resource_ar	DA806915-B12D-4B88-9BD2-9A913B23FE2C
++g_f_res_ofa__p_resource_be_by	5200D0B3-4948-4358-BB12-5568AA9A7474
++g_f_res_ofa__p_resource_bg	EC618056-F789-47F3-853C-CCEAFB24CE04
++g_f_res_ofa__p_resource_bn_in	C740FFA9-0AF7-4B67-AFA4-0CF902FEC8F3
++g_f_res_ofa__p_resource_br	590D74D3-2225-4D6D-9D17-840D5351971A
++g_f_res_ofa__p_resource_ca	3F578992-A6AA-4AB1-8B33-283725FF6F61
++g_f_res_ofa__p_resource_cs	2086C0FF-AAF3-41EA-8797-F9E5BCD6BF7A
++g_f_res_ofa__p_resource_cy	1336CD83-C88B-439D-97E5-5597E7E31794
++g_f_res_ofa__p_resource_da	6CD8249C-8BD4-491B-A6D7-EA1C3CF49603
++g_f_res_ofa__p_resource_de	C16B1BF8-4962-4E81-9262-A68D776AFC68
++g_f_res_ofa__p_resource_el	A7110A51-6DE5-4E88-A42C-9D0A466F4BBF
++g_f_res_ofa__p_resource_en_gb	ADBBF72F-7AD5-44AA-9CCC-5CD6C2B58A9D
++g_f_res_ofa__p_resource_en_us	9EF6138F-8ED4-463B-AC6A-553AC92719CD
++g_f_res_ofa__p_resource_es	B4659E37-880A-4036-8F65-08D9D2BDD48A
++g_f_res_ofa__p_resource_et	670E2429-0B3B-4C2E-BCC3-332FBEF35880
++g_f_res_ofa__p_resource_fi	756309BA-DF60-4F8E-849E-A5D779C9DD7A
++g_f_res_ofa__p_resource_fr	382F8767-C5DB-4250-811B-C0B3F5FD7D41
++g_f_res_ofa__p_resource_gu_in	B5BE6A62-95BA-4558-87D8-00E4948769EB
++g_f_res_ofa__p_resource_he	7E8F1A15-71C5-428C-8A27-7C5168D78A58
++g_f_res_ofa__p_resource_hi_in	51A79D59-11F2-42BA-A672-F4FE9FF37AA4
++g_f_res_ofa__p_resource_hr	F66FD469-8C61-434D-AE86-0BB456ECBC56
++g_f_res_ofa__p_resource_hu	F48C4DAA-2AF1-4AA9-855B-12CCE4E7BF59
++g_f_res_ofa__p_resource_it	931A3275-1A1F-46EA-9A9B-BDA0FCF0C00E
++g_f_res_ofa__p_resource_ja	857E2F80-5A95-4084-974F-5B14CC84EE84
++g_f_res_ofa__p_resource_km	59ED7655-4EEB-4899-92B5-AB3CDA13EA8C
++g_f_res_ofa__p_resource_ko	F38582B5-C900-46BD-A84D-78529CEAF153
++g_f_res_ofa__p_resource_lt	252D5004-375A-4CC6-9F6C-651235BDCC2E
++g_f_res_ofa__p_resource_lv	6FD24830-C063-4FB2-8635-A47014DE5964
++g_f_res_ofa__p_resource_mk	56357086-D0AE-4518-BCD9-92D6D8C44994
++g_f_res_ofa__p_resource_mr_in	E368959F-0E87-4C4A-9579-23197E02E191
++g_f_res_ofa__p_resource_nb	AF6AD554-9B0F-4D70-9A6C-1A2D705414ED
++g_f_res_ofa__p_resource_nl	4753CB2A-9BF7-4886-B428-CB89AD197BD9
++g_f_res_ofa__p_resource_nn	F2701414-7D66-4797-B1FB-C442B46E4BDD
++g_f_res_ofa__p_resource_pa_in	35A66375-3FC6-4D36-A716-772EFB3F869B
++g_f_res_ofa__p_resource_pl	98F5BA61-E7EB-4FCF-A138-2F29F5993243
++g_f_res_ofa__p_resource_pt	FC52BAAF-42AF-4FF6-93CC-C02FFB162FC3
++g_f_res_ofa__p_resource_pt_br	33711615-4CA2-4B92-9BFD-30E5A38E1E15
++g_f_res_ofa__p_resource_ru	07AB6091-B7F4-4833-9D79-C7168E017D85
++g_f_res_ofa__p_resource_rw	DECF439A-8976-4DBD-8B6F-7B524AC953C2
++g_f_res_ofa__p_resource_sk	94C7DDAA-5390-4976-A8E1-86069A5A17DC
++g_f_res_ofa__p_resource_sl	49BF35DE-48F9-4003-B136-4A6641E2D817
++g_f_res_ofa__p_resource_sv	15358542-E902-4978-AC2E-A620FC1D710C
++g_f_res_ofa__p_resource_ta_in	10A69F4D-6CEF-4304-90B5-C78754F861FB
++g_f_res_ofa__p_resource_tr	64200C57-70AD-491B-984D-C774530A45E2
++g_f_res_ofa__p_resource_vi	6D55A5AB-F19D-432F-B908-2859486C8688
++g_f_res_ofa__p_resource_xh	BE5CF723-79B6-4DBA-8BF4-92E66805E3AF
++g_f_res_ofa__p_resource_zh_cn	AFFD24E3-AC54-496B-9922-582DADF3F917
++g_f_res_ofa__p_resource_zh_tw	2D39D230-DB7D-47CE-B841-9BE432F5E949
++g_f_res_ofa__p_resource_zu	1AD52878-E3D2-42EF-8C70-DD49F2733A00
++g_f_res_ooo__p_resource_af	3FFC0477-6259-4581-850B-3FA369E6EF1F
++g_f_res_ooo__p_resource_ar	1A6FD07D-AD61-4696-AF64-4C573DE1E67B
++g_f_res_ooo__p_resource_be_by	CCCA20E6-5F58-48FE-82F7-93A5F9F1853A
++g_f_res_ooo__p_resource_bg	2728B1E8-F9FD-42D3-AA64-162FACD36613
++g_f_res_ooo__p_resource_bn_in	87FDD4DF-C145-4A59-B149-A387BDDF3374
++g_f_res_ooo__p_resource_br	60BC3C04-F274-428E-9813-7C3E296D9B58
++g_f_res_ooo__p_resource_ca	08343C0B-298D-43FA-BF8B-12A3A2854D37
++g_f_res_ooo__p_resource_cs	A7081EFB-9916-4D16-9DDA-71F35E7E03B9
++g_f_res_ooo__p_resource_cy	249F85D6-AB12-4629-8C81-26582506E6E0
++g_f_res_ooo__p_resource_da	B7AF6072-85B7-4939-ABE9-A3076039C6FF
++g_f_res_ooo__p_resource_de	DDBF8805-2AB8-4AF2-AF2D-B8F7DE755C77
++g_f_res_ooo__p_resource_el	20974284-11E8-44A1-8EFA-6607F97FE37F
++g_f_res_ooo__p_resource_en_gb	321234EE-504C-470D-9C51-F1C9456026D7
++g_f_res_ooo__p_resource_en_us	0E2CD2F8-5E6D-4988-A8D0-C2D3D6FFA703
++g_f_res_ooo__p_resource_es	12F33732-DEF2-4B42-BC62-88607BEB22F9
++g_f_res_ooo__p_resource_et	163236AD-458A-46C9-831A-081357010998
++g_f_res_ooo__p_resource_fi	9A88BC7C-151C-48E1-B69D-A82C2FD52939
++g_f_res_ooo__p_resource_fr	457A689F-ADA6-4FAA-8E8C-63B89D590B51
++g_f_res_ooo__p_resource_gu_in	19A564FA-9462-43D4-B6C0-11F361FB13EB
++g_f_res_ooo__p_resource_he	A0DD8A78-6C21-4CBB-B83A-966CED852632
++g_f_res_ooo__p_resource_hi_in	3320D84D-F067-4125-85C8-2044A4B9DA76
++g_f_res_ooo__p_resource_hr	D8827B03-3FE4-48D5-9251-0E7862D5B58C
++g_f_res_ooo__p_resource_hu	4FE88FCC-26A8-4E62-8EDE-4C5BE71816F9
++g_f_res_ooo__p_resource_it	BAE84B33-61AC-4E4D-933B-6A2E04B8F56E
++g_f_res_ooo__p_resource_ja	2EDD1218-86EF-4737-9ECE-EA46E702D53A
++g_f_res_ooo__p_resource_km	2991CE38-C3FD-4D6B-AC3B-7DB6CF394FEF
++g_f_res_ooo__p_resource_ko	FB84033A-4294-42B1-8E5A-8B68B3C693AE
++g_f_res_ooo__p_resource_lt	929435CC-0382-4981-80FB-0976D749E076
++g_f_res_ooo__p_resource_lv	9709F216-9B2C-4A5B-B7C5-44EE7FAB7E30
++g_f_res_ooo__p_resource_mk	E4CC24CF-8149-4090-B4D5-9BECCBAF79E8
++g_f_res_ooo__p_resource_mr_in	3381906F-5997-42EA-8EAB-4D51F28E67CB
++g_f_res_ooo__p_resource_nb	0E4C0662-B655-43F2-A8D4-E25FE33A53D6
++g_f_res_ooo__p_resource_nl	4F942655-BD74-40CB-8540-331EBCA22059
++g_f_res_ooo__p_resource_nn	9A48F08B-E4F3-4824-81F8-CF5BB672BC9C
++g_f_res_ooo__p_resource_pa_in	6DF46D29-A5E9-4A72-B86A-0CFD0E0571AD
++g_f_res_ooo__p_resource_pl	4444D6F3-623C-4266-BAB0-D9460E2CCA1C
++g_f_res_ooo__p_resource_pt	584F3BFB-9DC4-46E7-B7FC-3D03668DB3FC
++g_f_res_ooo__p_resource_pt_br	855F7A59-7870-4819-8C80-BDC2A0A45693
++g_f_res_ooo__p_resource_ru	0B4372A8-5D4F-4CEA-B77B-496179C70B4E
++g_f_res_ooo__p_resource_rw	46AEDE63-60EF-4F4A-ABF2-C8FBA315AE0F
++g_f_res_ooo__p_resource_sk	6503474E-365D-4839-9FFA-4531466D77EB
++g_f_res_ooo__p_resource_sl	5DC56794-9C14-48BB-9809-7455BA45393C
++g_f_res_ooo__p_resource_sv	38269CE7-E86A-49F1-B241-26D3BDEA8927
++g_f_res_ooo__p_resource_ta_in	EF68FF83-F6DF-4680-8BEA-998EE54FC01F
++g_f_res_ooo__p_resource_tr	9CB203BF-CF0C-4356-94C5-733253282E4A
++g_f_res_ooo__p_resource_vi	51BF0A64-26C5-40A1-A9AC-5E71101AA87F
++g_f_res_ooo__p_resource_xh	1F7E959A-A295-4A0E-B428-317A4A754289
++g_f_res_ooo__p_resource_zh_cn	EB349751-2EF5-42FE-A7D3-4D28EBF6FD50
++g_f_res_ooo__p_resource_zh_tw	432E584F-9AAC-4E6A-A608-52601A5ECC97
++g_f_res_ooo__p_resource_zu	CF6C32E6-C31D-4F02-8A1F-9817C699A712
++g_f_res_opc__p_resource_af	99AE6000-CB7B-4484-8172-3EBAAB2AE9CD
++g_f_res_opc__p_resource_ar	91E4247C-7A5F-42C9-92FC-F4BF1F4B1F48
++g_f_res_opc__p_resource_be_by	0D76F8BB-ED73-40E2-B571-500093A61B03
++g_f_res_opc__p_resource_bg	AC980D3E-0D21-446F-B887-9E04329F4732
++g_f_res_opc__p_resource_bn_in	C25FA8AB-D91C-4463-B8D4-AC5F563D84AB
++g_f_res_opc__p_resource_br	9B4295FB-897D-49E3-9385-642EB8A01E78
++g_f_res_opc__p_resource_ca	24C668BA-A0EF-49FA-8217-FBBCAF6D4C4E
++g_f_res_opc__p_resource_cs	9D70AC0E-7702-4A7C-911C-B4790615A3D4
++g_f_res_opc__p_resource_da	35E26093-3A96-4217-B932-F905A4F2212D
++g_f_res_opc__p_resource_de	04BB1AFE-E54F-4123-941B-C150DB15AD0D
++g_f_res_opc__p_resource_el	6BC96854-2CC8-4CAA-B31A-232E3716EDF4
++g_f_res_opc__p_resource_en_gb	18B59997-9522-49E3-B677-CE2B9A4BCAEE
++g_f_res_opc__p_resource_en_us	45826E6E-2B2B-474E-8C0A-F69987B7FA85
++g_f_res_opc__p_resource_es	42498A59-2CAF-44B9-A318-5C4CA8B723A8
++g_f_res_opc__p_resource_et	08CEB9FD-CB0D-422B-94B7-43180F580802
++g_f_res_opc__p_resource_fi	5790803F-BB85-423F-BFA1-60151C7431F8
++g_f_res_opc__p_resource_fr	84FB119F-7076-4F9F-B8E2-F9735DF26385
++g_f_res_opc__p_resource_gu_in	2C9A0585-D8DC-49D2-853C-0E70C7A1E6C4
++g_f_res_opc__p_resource_he	C5AEBCF8-8794-4D1F-B05C-7029C11B6FA4
++g_f_res_opc__p_resource_hi_in	22EFE378-29CA-4DC0-8C58-9281A3CACF6E
++g_f_res_opc__p_resource_hr	A82659B6-29CB-4BD2-B197-46526E8B7492
++g_f_res_opc__p_resource_hu	CD48F6D2-D5C9-4214-A71E-3DCEB215928E
++g_f_res_opc__p_resource_it	4AB6338E-6B2B-4750-BB11-7202C9C1798A
++g_f_res_opc__p_resource_ja	B935A74A-A8B0-4E94-87E8-95479C6E646A
++g_f_res_opc__p_resource_ko	4F156EAD-3631-4688-B87D-FBAABD69022B
++g_f_res_opc__p_resource_lt	1E6BCC59-E787-44FF-86E2-DC352DB7492A
++g_f_res_opc__p_resource_lv	FD51C0FA-9580-4626-864A-7F1E7CC7A64C
++g_f_res_opc__p_resource_mk	9D7FFDEE-8F6B-422D-BB5E-9771477AC528
++g_f_res_opc__p_resource_nb	8FD13905-5484-41DA-85F6-3E5B601163E0
++g_f_res_opc__p_resource_nl	7B00F71C-1875-4A35-9E58-A8A89F9D11C5
++g_f_res_opc__p_resource_nn	4ED501D1-5C0A-4C24-862F-1457FA00BD7F
++g_f_res_opc__p_resource_pl	5CE6D660-D1A5-4CAC-A5AC-109518A2F53A
++g_f_res_opc__p_resource_pt	1D3F24B4-98A3-4709-8BF2-23624A3C3F19
++g_f_res_opc__p_resource_pt_br	1EAB333F-131B-45C5-AD52-3D7360EF490B
++g_f_res_opc__p_resource_ru	3E8D9226-E0E3-461F-BF30-04F480E6DCCE
++g_f_res_opc__p_resource_sk	D977A261-487E-4290-929A-75C8AD16167F
++g_f_res_opc__p_resource_sl	CA8B1716-5007-405E-AC23-3C1E58E774F2
++g_f_res_opc__p_resource_sv	0A98F97B-2E0B-403A-8939-52152956FC1F
++g_f_res_opc__p_resource_tr	74A734DC-B820-4983-9659-739F8597B01D
++g_f_res_opc__p_resource_xh	7771A9B1-0C51-4583-AF78-FE28B8A3F6A8
++g_f_res_opc__p_resource_zh_cn	CECE2327-AC29-4B95-83B8-86E539497665
++g_f_res_opc__p_resource_zh_tw	717E10D5-40C0-47CB-BB55-D25612815C17
++g_f_res_opc__p_resource_zu	F6CE9009-7E73-4AC1-B703-B2714CD5CF3A
++g_f_res_pcr__p_resource_af	37FFA00D-9D93-4D53-B8BA-CD7A4E29A6D9
++g_f_res_pcr__p_resource_ar	5243E504-DC1C-4B21-BFED-BC9776D3ABBD
++g_f_res_pcr__p_resource_be_by	3F3875F7-FFF5-446C-A490-837EF973AD61
++g_f_res_pcr__p_resource_bg	05C4D806-B75B-4629-AAD4-5C7435B4C114
++g_f_res_pcr__p_resource_bn_in	67873F26-B933-44D2-BAF3-33EFD3BE8728
++g_f_res_pcr__p_resource_br	EA0DFA1B-2161-4D0D-9CB0-FB84FF578385
++g_f_res_pcr__p_resource_ca	5692068B-0629-4408-AECB-365DCD1256BB
++g_f_res_pcr__p_resource_cs	20BD61E7-A9A2-4891-9C9A-F47225AB805B
++g_f_res_pcr__p_resource_cy	9DFC8CD1-4DDF-4BFD-9229-311AF0FFD1B8
++g_f_res_pcr__p_resource_da	E1C392EA-E683-4B92-AF09-45F621C42F0F
++g_f_res_pcr__p_resource_de	E7FB3DCA-2A17-4B61-ADB5-863B559023CE
++g_f_res_pcr__p_resource_el	03C95AB2-ADA2-4A29-88BF-F80715435FE1
++g_f_res_pcr__p_resource_en_gb	9A6B049A-A41A-4041-9232-D2E2CA28852D
++g_f_res_pcr__p_resource_en_us	FDF58F04-6E31-4309-9ED0-3E9529AB05C4
++g_f_res_pcr__p_resource_es	6A6E1AAE-499A-47EF-967B-A53A5C62CFE3
++g_f_res_pcr__p_resource_et	F4A2E967-D33B-4566-A9F9-A48F0E3599AA
++g_f_res_pcr__p_resource_fi	8915ACB3-E7EB-42FE-844F-122BD3D771CF
++g_f_res_pcr__p_resource_fr	51FA8E14-6FDE-4AD4-AB4F-2FB59B76A447
++g_f_res_pcr__p_resource_gu_in	DA9CACF0-9609-4366-9C72-DADAF2669F82
++g_f_res_pcr__p_resource_he	1DC3B600-1BC2-4CC0-A8B0-541886A1DC8A
++g_f_res_pcr__p_resource_hi_in	49950931-964A-4DC8-9937-91F0C4177397
++g_f_res_pcr__p_resource_hr	91FD4D55-2B1D-4991-920B-C77598B60B18
++g_f_res_pcr__p_resource_hu	7647D466-DD08-4248-9187-8103106B324F
++g_f_res_pcr__p_resource_it	DCBDE788-5CEE-406F-AD99-89DAAC2AD232
++g_f_res_pcr__p_resource_ja	717188E8-46E9-4EFE-8005-E60D88C4B394
++g_f_res_pcr__p_resource_km	BE2DCE82-5445-495C-ACF5-5DDEFD6B8D0F
++g_f_res_pcr__p_resource_ko	B2955490-7371-43C4-9271-34F483D75A06
++g_f_res_pcr__p_resource_lt	2A08F316-EC99-49A5-B5B6-246DA0EEE401
++g_f_res_pcr__p_resource_lv	0FDDA40C-F627-4F99-A50A-9947573CE553
++g_f_res_pcr__p_resource_mk	0B774262-188F-4B82-A896-A043C0455258
++g_f_res_pcr__p_resource_mr_in	D8830623-CFC6-4F8C-838B-49473A7BDF85
++g_f_res_pcr__p_resource_nb	FD4942E7-882D-424D-9DBF-25629C50006C
++g_f_res_pcr__p_resource_nl	739B010D-9790-4F5F-B72E-3BD2EEE1E1D1
++g_f_res_pcr__p_resource_nn	8CA83A66-9263-4478-9043-9C4438825DB5
++g_f_res_pcr__p_resource_pa_in	1E0A200D-21E1-4A3C-88CC-D73E9B61043A
++g_f_res_pcr__p_resource_pl	9BE43852-86E8-4187-A9D6-1AFF716EB666
++g_f_res_pcr__p_resource_pt	FF68A7CA-A4D1-417F-B1F1-488F08F81424
++g_f_res_pcr__p_resource_pt_br	D3637ACC-1C73-43FE-8F32-A1858A60D519
++g_f_res_pcr__p_resource_ru	0A95F52E-1A9A-41CA-B45C-3F1A4F10C079
++g_f_res_pcr__p_resource_rw	9B0707DB-9115-4D32-B2A9-FA798483730E
++g_f_res_pcr__p_resource_sk	8F78D9E6-7F98-4A0E-9216-F83A62F97245
++g_f_res_pcr__p_resource_sl	96ECFBF8-C693-4482-8EB8-B8336410689F
++g_f_res_pcr__p_resource_sv	3975CF09-7090-4050-8A53-E86AE960E8B5
++g_f_res_pcr__p_resource_ta_in	62AD5F29-AB48-44CA-9AB8-CE720C4DFDBC
++g_f_res_pcr__p_resource_tr	322560D5-874A-48B7-9198-52DE15F9B09B
++g_f_res_pcr__p_resource_vi	6C1E8CBE-5D6B-474B-8F62-A16B2EC34D86
++g_f_res_pcr__p_resource_xh	B06B0907-7AAE-4896-917E-7B2941523EC1
++g_f_res_pcr__p_resource_zh_cn	54A1F857-25C6-4985-9C3A-2F11D5AF73FD
++g_f_res_pcr__p_resource_zh_tw	6B928D43-B1FA-4B06-8F5F-0D43AFAD7D30
++g_f_res_pcr__p_resource_zu	89D4882C-DDA7-437E-BC4F-FE0B8A447163
++g_f_res_pdffilter__p_resource_af	CA6B2992-423E-4FCD-AF15-950E1A6FFF6E
++g_f_res_pdffilter__p_resource_ar	95D5C7E9-969F-4409-A505-8B4ABEBD2A62
++g_f_res_pdffilter__p_resource_be_by	078570EB-8C45-4D23-9E0F-6465CEAC7BE7
++g_f_res_pdffilter__p_resource_bg	720D736B-F562-48F7-83FD-7B176D19AC7D
++g_f_res_pdffilter__p_resource_bn_in	8C623D14-41A7-4BBD-9A16-5A4EFA8635A4
++g_f_res_pdffilter__p_resource_br	A6E8131D-BF8A-4D6E-9290-B184BCE0BFD7
++g_f_res_pdffilter__p_resource_ca	FD7796FD-E567-4ED3-A1AD-E737F9ABB960
++g_f_res_pdffilter__p_resource_cs	6384621C-6526-4066-908B-9E694B3311CC
++g_f_res_pdffilter__p_resource_cy	8041DD0F-EA62-4BE7-BD6E-07788048AB3A
++g_f_res_pdffilter__p_resource_da	BA48EE27-2E2A-4464-B999-02C4E26E87D7
++g_f_res_pdffilter__p_resource_de	E9168179-BD10-4FC5-B768-B8B8FCC323B4
++g_f_res_pdffilter__p_resource_el	BA6902B6-D56E-44C0-843C-38018552ECB6
++g_f_res_pdffilter__p_resource_en_gb	E14828DC-8901-410B-8691-C1B756DB4D50
++g_f_res_pdffilter__p_resource_en_us	D3FDF3BB-FF71-44B7-BAB8-10720B844B66
++g_f_res_pdffilter__p_resource_es	07CD8552-C3A4-4123-887E-B80C5838EB82
++g_f_res_pdffilter__p_resource_et	A445E9B1-6927-433F-9D8A-A23DFCE4A94E
++g_f_res_pdffilter__p_resource_fi	BA1FD209-E02E-4437-BADA-632BAECBEDC0
++g_f_res_pdffilter__p_resource_fr	2B34850C-D2A0-42A2-B3CA-A7F62B5E06E5
++g_f_res_pdffilter__p_resource_gu_in	8E2C973C-D312-4BA8-B8BA-956C9A211A28
++g_f_res_pdffilter__p_resource_he	EE623633-0D74-46C5-9720-13E553695C52
++g_f_res_pdffilter__p_resource_hi_in	E8C8F554-572A-4FB5-9C26-C127BCA38D0D
++g_f_res_pdffilter__p_resource_hr	0C5363F3-3560-4908-A3BA-034A36685BB7
++g_f_res_pdffilter__p_resource_hu	E37DC102-5B69-4132-9502-69A8FD60068C
++g_f_res_pdffilter__p_resource_it	6F57FCD0-2262-48E2-9977-7AD5D2713645
++g_f_res_pdffilter__p_resource_ja	0AAC108C-D8C2-48DE-90AF-4574A957DAE3
++g_f_res_pdffilter__p_resource_km	749C1F1C-BFDE-4CFF-9281-083A65CCC84E
++g_f_res_pdffilter__p_resource_ko	AA2F9210-662A-4E2A-9D30-4C8D2BCAD0CB
++g_f_res_pdffilter__p_resource_lt	19334F84-E799-4951-BB05-549E4F52F8C7
++g_f_res_pdffilter__p_resource_lv	BA169D7E-6D94-4C1E-B877-5345C5FEF581
++g_f_res_pdffilter__p_resource_mk	FFCEE88D-BCC0-4FC0-AEC1-87B636DB5B5C
++g_f_res_pdffilter__p_resource_mr_in	AFC67168-9756-4D60-B78C-35E9CEF4AF70
++g_f_res_pdffilter__p_resource_nb	78F8E0A7-B329-4BC5-A5A1-D6E4F4981A9F
++g_f_res_pdffilter__p_resource_nl	BB716755-60FA-4E93-AD8E-A9AB1245B323
++g_f_res_pdffilter__p_resource_nn	9859AD36-7FEC-423D-B19A-6CEF47D4FD66
++g_f_res_pdffilter__p_resource_pa_in	158AF940-D3AF-4A13-9312-3306BC3B9719
++g_f_res_pdffilter__p_resource_pl	52633420-6068-4D39-B3A2-D881C1409D6A
++g_f_res_pdffilter__p_resource_pt	BC9C71FD-3477-436A-A300-5F468436BDDB
++g_f_res_pdffilter__p_resource_pt_br	9403F03B-6945-4786-8427-3D106E14D10F
++g_f_res_pdffilter__p_resource_ru	A1FE5848-14FD-48D8-9763-9E2424949BBA
++g_f_res_pdffilter__p_resource_rw	454B768E-C29C-4D1D-8834-4F5BC8F08EF9
++g_f_res_pdffilter__p_resource_sk	E623C3B3-5E36-4CE1-AB44-11A13E363BAC
++g_f_res_pdffilter__p_resource_sl	E62798FD-797E-49FF-8626-3F196E13800B
++g_f_res_pdffilter__p_resource_sv	E987F651-3488-44A4-9305-865D2F022EB7
++g_f_res_pdffilter__p_resource_ta_in	188359C7-740D-42A6-9786-B5A598A2EA21
++g_f_res_pdffilter__p_resource_tr	1BFE12DF-5136-4974-A058-BB6A64DBCC03
++g_f_res_pdffilter__p_resource_vi	8A702579-CDB9-4340-8AF3-55CDE1BF4455
++g_f_res_pdffilter__p_resource_xh	27B89E06-1193-40EA-8CF9-2422A55A5DCB
++g_f_res_pdffilter__p_resource_zh_cn	BFC0CCB8-6BA7-4EA8-9CEA-1168FCA6387B
++g_f_res_pdffilter__p_resource_zh_tw	89506483-59EB-4A42-AE2F-2EA8E99F2DA0
++g_f_res_pdffilter__p_resource_zu	8E1AFF5E-A8E2-4B7D-B12A-DF5CA1212E1A
++g_f_res_preload__p_resource_af	9D6B4649-7EB7-4C38-BBAF-9BA513D547C0
++g_f_res_preload__p_resource_ar	00B23FDF-C03A-4D86-BAAD-9749A918E452
++g_f_res_preload__p_resource_be_by	0D97B73D-57D4-4C42-87C4-05075FE5C4C0
++g_f_res_preload__p_resource_bg	4753B731-D69A-4A32-9C8D-BE679E162EEF
++g_f_res_preload__p_resource_bn_in	24D09421-E8C0-4530-9722-E0A0C14812BE
++g_f_res_preload__p_resource_br	472379DE-AD0A-45B6-98BC-9B95054DB653
++g_f_res_preload__p_resource_ca	5DF6A251-BA70-49C2-BF26-FCBE8F78ABC5
++g_f_res_preload__p_resource_cs	DA838CF1-1D9D-40AD-97F7-4B7E3133CF21
++g_f_res_preload__p_resource_cy	9948C598-11EE-445B-977E-1AD1380FAC9E
++g_f_res_preload__p_resource_da	F9F7826D-9BC3-4E26-905D-40DC3536CC93
++g_f_res_preload__p_resource_de	B6605624-E064-4745-AF68-AFEB50D5EE4F
++g_f_res_preload__p_resource_el	AF49D5A5-7D03-4AD6-90EB-BD258203A268
++g_f_res_preload__p_resource_en_gb	9CCC916F-C9FF-4AFF-BB79-1E18B1ADF1D9
++g_f_res_preload__p_resource_en_us	496869E0-442C-4BF9-A62C-941011C44B43
++g_f_res_preload__p_resource_es	15BEC1E4-7C8B-457A-8DBE-A5BA040F5D7A
++g_f_res_preload__p_resource_et	A261C001-E90D-48C3-BBA2-31C095C0F5B5
++g_f_res_preload__p_resource_fi	EF886B31-0437-494E-B42E-B0754E0AEC38
++g_f_res_preload__p_resource_fr	07457DCC-824C-4EE3-BB8C-E25512C631F0
++g_f_res_preload__p_resource_gu_in	EED5CC0E-CC8F-492D-A59D-0C87DA2DE251
++g_f_res_preload__p_resource_he	AAC2383B-0539-488C-9485-B4E054D5177F
++g_f_res_preload__p_resource_hi_in	65FCAADA-A3B4-4607-9BE1-F73CE5BACB6B
++g_f_res_preload__p_resource_hr	3CE8FE77-B6C9-457A-8603-F715F6595341
++g_f_res_preload__p_resource_hu	FDCD8674-0F6C-4FFE-B470-3FEEB6B88B24
++g_f_res_preload__p_resource_it	A07D45A1-5B00-4415-9081-596B3C1532BD
++g_f_res_preload__p_resource_ja	4264B7EA-3456-4148-9B85-12B2000F098F
++g_f_res_preload__p_resource_km	8F24111A-A7A1-421A-9E79-C739B645C7BA
++g_f_res_preload__p_resource_ko	B9A23472-E48C-4A7D-8ABE-892462596A9D
++g_f_res_preload__p_resource_lt	E720EE97-E6A0-4A26-8812-3C0D24C3F475
++g_f_res_preload__p_resource_lv	2D675E5D-0D02-4D95-89FD-908E544465DE
++g_f_res_preload__p_resource_mk	033914B4-C308-40EC-A824-46BD30A88A37
++g_f_res_preload__p_resource_mr_in	CA385F00-3738-49D6-B201-0996CBBC969F
++g_f_res_preload__p_resource_nb	AE51C430-6491-40BA-A5F7-370722A7DDE4
++g_f_res_preload__p_resource_nl	F5A152D2-E699-4126-8B54-5B7EE38D46E1
++g_f_res_preload__p_resource_nn	D993B111-F2A4-47D3-A1F3-0E3DD22882A3
++g_f_res_preload__p_resource_pa_in	A0B951D2-5103-494A-8FDD-1DFCFF91DBE0
++g_f_res_preload__p_resource_pl	CEF95DD9-153A-4A43-915A-D3EACBB2131A
++g_f_res_preload__p_resource_pt	EEF84849-DA0B-4C83-B8BF-CE7B18369C31
++g_f_res_preload__p_resource_pt_br	3D0E8F23-56C7-4EA7-BD6C-8028B88E5F57
++g_f_res_preload__p_resource_ru	CA132CD9-6A7C-446F-8BBF-80BBF43B98C2
++g_f_res_preload__p_resource_rw	A9FD17DE-F730-43C8-BEA8-9850C01204DC
++g_f_res_preload__p_resource_sk	F80B71EE-075C-4CE2-A09D-292C6EBC0638
++g_f_res_preload__p_resource_sl	6CC22B8E-5AF5-45CF-B271-7AC59CBDEDBE
++g_f_res_preload__p_resource_sv	B77597AE-F53A-45AB-9EF3-6D31B1662AC9
++g_f_res_preload__p_resource_ta_in	93A79C9A-905D-4668-A7AE-724DD6B96922
++g_f_res_preload__p_resource_tr	5118FFA7-3C7B-4BF4-AC12-42AF516E6CDC
++g_f_res_preload__p_resource_vi	F7BD7504-0F94-4A44-AA8E-9A5757D7E2FD
++g_f_res_preload__p_resource_xh	6B1F92B8-CFC6-442F-98AD-DF2E115CB79F
++g_f_res_preload__p_resource_zh_cn	68940953-17ED-432B-8E03-4FA812C3E21B
++g_f_res_preload__p_resource_zh_tw	3D8BC079-2090-4ACF-8C05-FD0FAB110C39
++g_f_res_preload__p_resource_zu	1D751CCD-79F2-4165-8498-45860E5C2D1B
++g_f_res_productregistration__p_resource_af	7E9C413B-6A25-40EF-AEB5-51AF68A1D490
++g_f_res_productregistration__p_resource_ar	863CF0C3-5A0D-43C7-90AB-4B4BD4746CD2
++g_f_res_productregistration__p_resource_be_by	260A419B-2524-4F6D-8CE1-8BEADC314949
++g_f_res_productregistration__p_resource_bg	9431FD16-85B0-4209-9AE2-E0318D83FC4B
++g_f_res_productregistration__p_resource_bn_in	6D16DB55-D94E-4321-91DD-3BB70738ACC0
++g_f_res_productregistration__p_resource_br	B2E1313B-5EB7-4692-B31A-A0C5AEFC14E5
++g_f_res_productregistration__p_resource_ca	8E1EF68A-C374-4A28-AD0E-962D9AED584C
++g_f_res_productregistration__p_resource_cs	DEE87254-3541-4E8A-B8A9-C06288084038
++g_f_res_productregistration__p_resource_cy	8E9F3CD9-2621-444D-924E-8A19DCB6B19A
++g_f_res_productregistration__p_resource_da	09872F17-4450-4C1B-8C62-7F8503BC37C7
++g_f_res_productregistration__p_resource_de	6DF78F6C-E9C6-4362-AA65-1DB100B0E06B
++g_f_res_productregistration__p_resource_el	D152F04F-3414-40FB-A11D-3797DA51E6DB
++g_f_res_productregistration__p_resource_en_gb	316FE6B2-0DC2-4928-8023-7D02221383F9
++g_f_res_productregistration__p_resource_en_us	04E616BD-E4A0-4B4B-A967-000F4D87B9F1
++g_f_res_productregistration__p_resource_es	2245E974-3E2C-435A-B864-E7AC81395C2E
++g_f_res_productregistration__p_resource_et	FB35FD89-7064-45F2-989C-BB454C23645B
++g_f_res_productregistration__p_resource_fi	B304AF1F-C133-479E-BF86-A5B62A895A2B
++g_f_res_productregistration__p_resource_fr	E4C9B608-F916-4214-96E6-5AA94812C831
++g_f_res_productregistration__p_resource_gu_in	B4BC785B-851B-4E14-BCBE-2670FD6A1498
++g_f_res_productregistration__p_resource_he	6AD2302D-C477-4AED-8FC0-067353E69C4E
++g_f_res_productregistration__p_resource_hi_in	AAD3B6DB-1815-487E-942D-772872C701C4
++g_f_res_productregistration__p_resource_hr	2A1C3076-CD21-416E-9EEF-87C18BC3A06A
++g_f_res_productregistration__p_resource_hu	5399874C-9B2D-480B-A83F-846D62416FF9
++g_f_res_productregistration__p_resource_it	B6013769-16AC-4C67-A893-F15E43049246
++g_f_res_productregistration__p_resource_ja	70D8D710-35B9-4446-A10F-098EA07B6098
++g_f_res_productregistration__p_resource_km	3794B4F4-3FDB-4750-95BA-7E2E95021FC3
++g_f_res_productregistration__p_resource_ko	4D564810-4FBE-4436-89D6-CCF25C0C9801
++g_f_res_productregistration__p_resource_lt	CB1A8170-7C4F-48BA-88A3-C887862D17A4
++g_f_res_productregistration__p_resource_lv	7B955B88-DE88-441B-98EF-BEAF70C0957A
++g_f_res_productregistration__p_resource_mk	F8231E48-A0FF-43D6-9A03-822599FC621E
++g_f_res_productregistration__p_resource_mr_in	BC787955-B43C-47F9-B408-6502058C5E7B
++g_f_res_productregistration__p_resource_nb	8E54E1EF-32D1-4396-A070-CDE5FA694A57
++g_f_res_productregistration__p_resource_nl	57D10B49-A12D-4056-9C93-1385B67FDE2E
++g_f_res_productregistration__p_resource_nn	483F3CB0-1FA3-4BA8-981D-C7BC18D1678F
++g_f_res_productregistration__p_resource_pa_in	982BCD87-F962-44F8-AD4E-DC9C013FEB05
++g_f_res_productregistration__p_resource_pl	84221A9B-9023-4DB3-AF67-28935B7AE616
++g_f_res_productregistration__p_resource_pt	CA208983-AC06-4AF9-94CD-AE997DE5A4B2
++g_f_res_productregistration__p_resource_pt_br	FB7170E5-FC49-486C-A6C2-B2FBFD3602F7
++g_f_res_productregistration__p_resource_ru	B64ABCC0-9DAF-4E72-9367-E36B062338EF
++g_f_res_productregistration__p_resource_rw	81DFFCFC-3EDF-4CA0-B170-4A14D38E6818
++g_f_res_productregistration__p_resource_sk	780BF75C-FE29-47F0-A2EF-3DE6480E2D49
++g_f_res_productregistration__p_resource_sl	09CFBA8E-5792-4E0B-9B4F-1A616779790A
++g_f_res_productregistration__p_resource_sv	096DEEFA-241F-4944-B788-29AA108D9F51
++g_f_res_productregistration__p_resource_ta_in	413F510D-2DAD-4D04-ABEA-BA3FB1B8BB71
++g_f_res_productregistration__p_resource_tr	E384E447-1CA5-4F29-BB6C-377DD4A0E68D
++g_f_res_productregistration__p_resource_vi	D7BBB831-1EC9-44E9-B5E4-33506E0FB423
++g_f_res_productregistration__p_resource_xh	DFDCD2C5-DCE5-4B0C-AF08-C12406480355
++g_f_res_productregistration__p_resource_zh_cn	61CD5710-5229-4B4F-933E-B7AAB5B6C1D9
++g_f_res_productregistration__p_resource_zh_tw	CC4C6635-7C2B-4ABC-835B-AD6EBA7DC525
++g_f_res_productregistration__p_resource_zu	9F3870E9-05C7-497D-AA8A-12DEC1ACAFA6
++g_f_res_rpt__p_resource_af	9A8F86FA-BDA4-4F32-975A-8B13DE6AA57B
++g_f_res_rpt__p_resource_ar	86FCC328-4BF8-4E2B-BEBD-DCE0B13483A5
++g_f_res_rpt__p_resource_be_by	0DEF5875-3599-4F40-A556-62A0A1013D9E
++g_f_res_rpt__p_resource_bg	0061BCEA-48EA-4142-B10E-6CDF98F217D5
++g_f_res_rpt__p_resource_bn_in	43B68326-7338-4A61-AB7D-6CBFADD15F7B
++g_f_res_rpt__p_resource_br	EDE0BCD0-604B-4A65-ACEB-6000B352749A
++g_f_res_rpt__p_resource_ca	201E2C18-3D0C-4126-A41D-8940CB2EDF93
++g_f_res_rpt__p_resource_cs	7A18C1C0-C2BC-48E1-89F3-BF11E6788028
++g_f_res_rpt__p_resource_cy	3B631747-C820-413B-8943-1F89FA2CB99C
++g_f_res_rpt__p_resource_da	CD772ABF-98CE-459D-A4DD-E3233984680E
++g_f_res_rpt__p_resource_de	D02FDCEA-2FC3-4494-AC79-22FF4FD1C123
++g_f_res_rpt__p_resource_el	A7F1714D-DB87-464A-A3FC-893721AB5783
++g_f_res_rpt__p_resource_en_gb	FA208EAB-2061-4467-AED7-D477A9C70CDF
++g_f_res_rpt__p_resource_en_us	E29E7C4D-A9BF-4E73-8CF4-1F7731D004F4
++g_f_res_rpt__p_resource_es	E725D292-FC3D-4BCC-BB3C-63C9AD02BC16
++g_f_res_rpt__p_resource_et	CCD58453-F130-4AC6-97ED-EB1A0B7097CA
++g_f_res_rpt__p_resource_fi	2B627056-484B-4B04-88A1-DABD4D691E33
++g_f_res_rpt__p_resource_fr	B67027F4-644D-4C99-9874-F869BF985622
++g_f_res_rpt__p_resource_gu_in	257DAC44-EE01-44BE-BC3D-22327B2E32CB
++g_f_res_rpt__p_resource_he	F67568BD-D03F-40D7-92B7-5EC7622CE520
++g_f_res_rpt__p_resource_hi_in	716B7A94-2D94-4040-AE4E-903A4CD4B246
++g_f_res_rpt__p_resource_hr	D45BA5C4-5BD9-4495-8133-B4D6A6662ABE
++g_f_res_rpt__p_resource_hu	1A3009CD-360D-40CF-98B5-5E26D0751049
++g_f_res_rpt__p_resource_it	4136E35A-C8C0-4B65-9A41-44DA60C937D1
++g_f_res_rpt__p_resource_ja	F9DF49C1-043C-43C6-8843-645E6F0F16F7
++g_f_res_rpt__p_resource_km	ED59DA58-C20A-46F9-BA9C-961FB4AE5913
++g_f_res_rpt__p_resource_ko	50D453FD-F500-4202-9868-92A96B653ADC
++g_f_res_rpt__p_resource_lt	136754A2-9F31-4486-B3B9-C195963A886C
++g_f_res_rpt__p_resource_lv	679D8617-F3B7-4E03-95CF-F2A29AC0784E
++g_f_res_rpt__p_resource_mk	C97F8449-7184-46DD-AFE0-E0A720C851C4
++g_f_res_rpt__p_resource_mr_in	64B8CEC0-32A4-488E-9656-22AA26CCAF8C
++g_f_res_rpt__p_resource_nb	305E7130-5D60-4172-9B8A-836198BACF8D
++g_f_res_rpt__p_resource_nl	F5786CEE-1871-42EB-933E-E39E1BF65435
++g_f_res_rpt__p_resource_nn	8BDCD1E9-7921-44D1-AB32-AF34F95B8CA9
++g_f_res_rpt__p_resource_pa_in	D9C90904-47DB-4D7C-8558-008D6A9D8BA8
++g_f_res_rpt__p_resource_pl	7ADD9C24-266E-490D-BD2C-2A204D28C5A1
++g_f_res_rpt__p_resource_pt	E7DD04F0-0E75-4415-A526-E26AECF3FA8C
++g_f_res_rpt__p_resource_pt_br	9BDAC49C-BFB8-4A3A-A02F-C8156D30CF68
++g_f_res_rpt__p_resource_ru	92F85EB9-B841-4C25-9C4E-1888707B080C
++g_f_res_rpt__p_resource_rw	34FAB70F-4DD7-42AD-A116-EA035841E2AF
++g_f_res_rpt__p_resource_sk	DF448A92-F193-4857-ACC4-698D01D381BA
++g_f_res_rpt__p_resource_sl	AE4F5698-F23C-40AB-AFDB-B216494893FF
++g_f_res_rpt__p_resource_sv	EE1252F0-09C7-4ECF-9CB9-642940AA276F
++g_f_res_rpt__p_resource_ta_in	2BEE2977-273C-49A1-9B08-83A8AF54C952
++g_f_res_rpt__p_resource_tr	5B5B3797-3885-4282-BAA5-2752944F5E2B
++g_f_res_rpt__p_resource_vi	561D86B5-36B8-4D19-8533-B42B0068AB20
++g_f_res_rpt__p_resource_xh	E274D212-4292-420E-A73B-0C59D35726EA
++g_f_res_rpt__p_resource_zh_cn	41BE84C5-739A-451A-9F68-D745B085729B
++g_f_res_rpt__p_resource_zh_tw	1F518111-1786-4C42-8861-67DAF3E59BFD
++g_f_res_rpt__p_resource_zu	1855FC0C-F1E9-4823-8C10-A06DE77492E6
++g_f_res_rptui__p_resource_af	7807CB61-2837-4294-8630-51B99102F022
++g_f_res_rptui__p_resource_ar	DF22AC0D-AABB-4FBC-8026-786B46F26641
++g_f_res_rptui__p_resource_be_by	4340585F-2CF2-470C-BFEE-9D95F22F1A27
++g_f_res_rptui__p_resource_bg	9CC3BBF7-D53A-4900-9112-77147FB647D6
++g_f_res_rptui__p_resource_bn_in	8C24F748-C187-4249-814F-2987A8DE642D
++g_f_res_rptui__p_resource_br	23494E68-44D5-4145-AD52-0853AEC64DCD
++g_f_res_rptui__p_resource_ca	FE35684C-C49E-47FC-8802-616B36F2FD27
++g_f_res_rptui__p_resource_cs	E837B7D0-7DAE-4550-8770-CB47E60F92AF
++g_f_res_rptui__p_resource_cy	391081B3-762F-4834-844B-FAA6ABEF2925
++g_f_res_rptui__p_resource_da	2BF1CFEE-9606-4A4B-AF25-107DC3736347
++g_f_res_rptui__p_resource_de	DB2126C7-91C3-40E0-B0AE-DF8FE1BFD147
++g_f_res_rptui__p_resource_el	8359A23B-6B3E-423E-9B09-DC41750EBB66
++g_f_res_rptui__p_resource_en_gb	E238E60F-A55D-4329-BE3A-73B740221BE4
++g_f_res_rptui__p_resource_en_us	7D1748FB-9EC8-4948-84AE-8626576D1518
++g_f_res_rptui__p_resource_es	9596AE1E-BA9D-4CED-8E8A-E51B81C991B2
++g_f_res_rptui__p_resource_et	AA869321-AC89-48BF-A8B4-E540022D37B5
++g_f_res_rptui__p_resource_fi	55D38E62-5AC8-4557-834C-5E520F9D1C5B
++g_f_res_rptui__p_resource_fr	66EC0D37-8BA7-489A-BBFE-36E184BCC0E5
++g_f_res_rptui__p_resource_gu_in	6E568BF3-7BB1-47A7-BA65-552D49CE68D4
++g_f_res_rptui__p_resource_he	55F68F65-BDDA-45FA-A5D2-5D4734C7C2BE
++g_f_res_rptui__p_resource_hi_in	81ED5EFA-BAE4-43C5-BD74-84B61FF9A498
++g_f_res_rptui__p_resource_hr	24DF5F28-5F60-47FE-A2C8-3F9EE603B4E5
++g_f_res_rptui__p_resource_hu	71F42671-3782-489B-B2A8-CCEE62957D84
++g_f_res_rptui__p_resource_it	8F94B12C-8B5D-40C6-9A61-847A9A2978FB
++g_f_res_rptui__p_resource_ja	41ED0614-05A5-4368-92AC-B14D44E32193
++g_f_res_rptui__p_resource_km	6C097989-5CD2-4144-AA83-A3678746A599
++g_f_res_rptui__p_resource_ko	54573CEB-8C06-4EF3-BCAA-D8E66A1188E9
++g_f_res_rptui__p_resource_lt	A139716B-A086-4B66-AA0C-F8FAF5462D1A
++g_f_res_rptui__p_resource_lv	888A4DF0-94B5-4722-90F4-6C4EA9D889FC
++g_f_res_rptui__p_resource_mk	193CFEF1-D429-4492-8D5E-8FD9C1DAF2E7
++g_f_res_rptui__p_resource_mr_in	183FA1CF-48B8-4AE7-B57B-7D4A9A139420
++g_f_res_rptui__p_resource_nb	9B61FD59-BEC8-42D9-B80E-69D3392EE303
++g_f_res_rptui__p_resource_nl	719134A6-4B6E-4448-931E-E90FED109550
++g_f_res_rptui__p_resource_nn	56CC61EA-DA71-4712-A144-28FCFB84746E
++g_f_res_rptui__p_resource_pa_in	ED98463D-3C8B-429A-9AE8-C7A84E62DD17
++g_f_res_rptui__p_resource_pl	507CFD2C-D09A-43A6-B678-517AFE9F5F6A
++g_f_res_rptui__p_resource_pt	91726223-1787-49DB-B599-0CEF5292F2A1
++g_f_res_rptui__p_resource_pt_br	467830D2-DAC9-4BE6-8517-2E47A57AE841
++g_f_res_rptui__p_resource_ru	3A70E20C-9263-45C7-8B38-760B1F6859B5
++g_f_res_rptui__p_resource_rw	C1E46307-D9B6-4600-BC4A-49F3B688FBA7
++g_f_res_rptui__p_resource_sk	A48D5324-B997-4965-ABEA-2F93B6EE59C6
++g_f_res_rptui__p_resource_sl	A7A04691-8B73-49FD-AE8A-7772389C12F5
++g_f_res_rptui__p_resource_sv	503B425D-7BB0-4879-9331-F4988F2C974D
++g_f_res_rptui__p_resource_ta_in	D11B6C3E-4613-4C3D-B59E-8492C17DF1C7
++g_f_res_rptui__p_resource_tr	D30D9D82-9A61-42DA-B8F1-672FCED0F07D
++g_f_res_rptui__p_resource_vi	CFC0C13E-9BED-4D3A-85DA-767D16064E96
++g_f_res_rptui__p_resource_xh	ED294258-4F5B-4209-92F3-DCF641262190
++g_f_res_rptui__p_resource_zh_cn	1B42C524-EF09-4E59-978A-E35E83DA9B2D
++g_f_res_rptui__p_resource_zh_tw	4F7E34AC-DC39-4DE8-9974-1AD31FB036BD
++g_f_res_rptui__p_resource_zu	4A42B7BA-7FD7-44B8-83E2-4D5C38709553
++g_f_res_sb__p_resource_af	DC3888AA-CAE9-424B-8525-098B94496CAB
++g_f_res_sb__p_resource_ar	C8636335-7528-4401-964A-BDAC94D593C4
++g_f_res_sb__p_resource_be_by	103C8991-8A9C-41F4-A666-1243B0135936
++g_f_res_sb__p_resource_bg	6149DEB7-9E83-4215-8540-6D402B923C08
++g_f_res_sb__p_resource_bn_in	E04723F3-3FAD-4281-901C-3B1F7A23B33B
++g_f_res_sb__p_resource_br	E1AE479F-CB44-4217-8E68-1ECA7E584E0E
++g_f_res_sb__p_resource_ca	0A8F0965-C098-4223-A322-D1D7B5492637
++g_f_res_sb__p_resource_cs	A2556204-F74B-4F86-A060-5168A8AF8B52
++g_f_res_sb__p_resource_cy	3162B3F4-48AC-49C6-81FD-2A9BF50E2501
++g_f_res_sb__p_resource_da	D1A09C8C-820E-49A6-99FC-DC4E5C5C8C89
++g_f_res_sb__p_resource_de	2E8A4551-3460-48A3-97EF-A659687C28F4
++g_f_res_sb__p_resource_el	932B9720-6712-4E35-95FE-50A9825E26B8
++g_f_res_sb__p_resource_en_gb	D22864D2-C680-4A1E-91C4-D875E6F3A5B8
++g_f_res_sb__p_resource_en_us	890BCA2A-CFC1-4BA0-BBE5-0D8369F69E7B
++g_f_res_sb__p_resource_es	34F764C6-18B0-4F9B-BD87-F7F857A4C6EE
++g_f_res_sb__p_resource_et	74FC4E4E-C2A7-4115-B02A-D58F3812DB21
++g_f_res_sb__p_resource_fi	641543B1-C93F-4637-9199-1EFD3D067E6B
++g_f_res_sb__p_resource_fr	66D88285-9324-4EB1-BE70-ACD06B37AC7C
++g_f_res_sb__p_resource_gu_in	C480C1A4-535C-40ED-BB14-BADBD142C14B
++g_f_res_sb__p_resource_he	FE0D5AFF-C4C7-4696-9924-EF3D8383B258
++g_f_res_sb__p_resource_hi_in	7919D159-DFC8-4FB7-91B9-2CD55EBED74B
++g_f_res_sb__p_resource_hr	434E2547-91B0-44C5-B368-B8B21A70828A
++g_f_res_sb__p_resource_hu	8B3038E8-914D-4254-8847-3E912EA6296C
++g_f_res_sb__p_resource_it	79E303C3-85E5-4508-8752-F67D4BC28B23
++g_f_res_sb__p_resource_ja	2A4F4591-97FE-4A41-9162-98FD100EC4E4
++g_f_res_sb__p_resource_km	E2512CAF-F19C-46C5-9F16-3DF91B44F598
++g_f_res_sb__p_resource_ko	D568C9C2-3280-45FD-8208-52D6CDCD021E
++g_f_res_sb__p_resource_lt	AF4CA335-F738-4914-BBB5-840F86F5DADF
++g_f_res_sb__p_resource_lv	A51F2184-7995-46E4-BECA-4478A665D02D
++g_f_res_sb__p_resource_mk	47540A05-47FE-4495-91E8-3CB26D6F5B3F
++g_f_res_sb__p_resource_mr_in	35EB6030-6911-4898-BABA-9B170F1E3F7B
++g_f_res_sb__p_resource_nb	8DF897D1-5326-46AD-BD74-56E266BD4AE8
++g_f_res_sb__p_resource_nl	9BB90B55-27D1-491D-AB0D-0875880ABD28
++g_f_res_sb__p_resource_nn	DD6AE6CE-AA0C-4E64-85D2-B1D1A4B8555D
++g_f_res_sb__p_resource_pa_in	3D99E7D1-9066-4293-9788-B466DF44C190
++g_f_res_sb__p_resource_pl	D631DF9D-95F0-445B-A272-950E1D8AD2E0
++g_f_res_sb__p_resource_pt	7AAB5BCE-672B-45B3-9A48-AB2D2C93707F
++g_f_res_sb__p_resource_pt_br	3562594A-282C-40E0-BEF5-F06366740BE4
++g_f_res_sb__p_resource_ru	7535B2CD-9B36-46C7-89E9-7A6D968C46FE
++g_f_res_sb__p_resource_rw	64EC9E60-7171-440B-B69B-1B529A977A02
++g_f_res_sb__p_resource_sk	4A1E9D16-0665-4342-AA83-EC1684B89DA5
++g_f_res_sb__p_resource_sl	80247AC2-9AA1-40E5-874C-C5C5438D4316
++g_f_res_sb__p_resource_sv	7707EB79-8B72-4C42-9082-17B4BF205B64
++g_f_res_sb__p_resource_ta_in	D7E7C1B4-6147-428F-B35C-B472E9A511F0
++g_f_res_sb__p_resource_tr	12EDB180-FD92-4C1E-9B54-434CAE956F56
++g_f_res_sb__p_resource_vi	FFDF0B8A-AFA6-4403-AB5E-E72E282FE8E1
++g_f_res_sb__p_resource_xh	2AF23A49-EB10-4D5B-91EE-88B5905E8D0D
++g_f_res_sb__p_resource_zh_cn	5939CE81-688B-420D-A337-4FC1ADB38B06
++g_f_res_sb__p_resource_zh_tw	208401A1-233C-4D21-88A9-C64227C84029
++g_f_res_sb__p_resource_zu	EF1B40BD-F1D6-4DBA-B4EF-3776606BED3B
++g_f_res_sc__p_resource_af	C84A3A0E-4D3A-41B6-AA46-6EA7E72EADE1
++g_f_res_sc__p_resource_ar	75BB0747-D154-4FFE-B94C-D3602CB10DA6
++g_f_res_sc__p_resource_be_by	C78F0600-D96F-4ABC-8271-8160E57588F9
++g_f_res_sc__p_resource_bg	A49002BC-3706-4484-B15D-254908626978
++g_f_res_sc__p_resource_bn_in	BF543779-15E0-4535-A682-D60D630A9FD4
++g_f_res_sc__p_resource_br	4F9701EB-A687-46F6-8D19-7FAC7965A78E
++g_f_res_sc__p_resource_ca	7F111D06-DF72-4DAE-B1C9-9473262ED050
++g_f_res_sc__p_resource_cs	7BCFE30C-4B88-4D35-BB83-AAB763638348
++g_f_res_sc__p_resource_cy	DFD200B1-11C5-4761-82D8-91F21A1E3257
++g_f_res_sc__p_resource_da	D1D1A3E4-6E72-411A-BDEE-C4C7AEB6214B
++g_f_res_sc__p_resource_de	E1A3ADE9-58D4-4D01-A351-FBEAB9430570
++g_f_res_sc__p_resource_el	75724EF9-75A7-47A4-8DF9-B305BC522F0F
++g_f_res_sc__p_resource_en_gb	08101DA7-5324-48D2-AA8A-D89150211EC1
++g_f_res_sc__p_resource_en_us	E228C8F3-1483-49BE-9532-218889378A7F
++g_f_res_sc__p_resource_es	757EA255-0680-46DC-BA10-930683698EAF
++g_f_res_sc__p_resource_et	572B908F-CDAF-47D4-9818-6A46C02055B9
++g_f_res_sc__p_resource_fi	9F59548D-2BA3-4197-BC70-458E22A96E76
++g_f_res_sc__p_resource_fr	60993E3B-519F-43C2-AEAB-13F59CD9FF79
++g_f_res_sc__p_resource_gu_in	5C1626EE-8048-4AD2-8000-DDC1E53AD2EA
++g_f_res_sc__p_resource_he	1B412851-987E-4882-B70C-8F2FF4C0F78B
++g_f_res_sc__p_resource_hi_in	C80D0A1F-C78B-466F-8A66-8FAD8122085B
++g_f_res_sc__p_resource_hr	E385A2F1-037A-4036-8F20-7CC79893B115
++g_f_res_sc__p_resource_hu	47B2542F-2DD3-44E5-8E21-7E4692DAD0D1
++g_f_res_sc__p_resource_it	AEF95F3A-D505-434A-92BF-6C15E2E1C64E
++g_f_res_sc__p_resource_ja	66660021-EB60-4577-83B9-F52511BC435C
++g_f_res_sc__p_resource_km	2C60E3FB-C4EA-4C1E-8F5E-EC4F2E4BD11C
++g_f_res_sc__p_resource_ko	F3E548A0-4444-46EB-9BFD-ABB9F5DD288E
++g_f_res_sc__p_resource_lt	DA1907EC-6C3F-4316-9EB8-8F10F891C6CD
++g_f_res_sc__p_resource_lv	33FEDDC4-F7FB-4A53-95B3-E652E171D4CD
++g_f_res_sc__p_resource_mk	DEE36E6C-6AB1-43D3-B5CC-9BEA1E50974A
++g_f_res_sc__p_resource_mr_in	EADB1416-13C6-4E09-ADBB-F9A7513CD56F
++g_f_res_sc__p_resource_nb	4CE599D9-11F3-4A4D-84DD-7C7B9D0C3090
++g_f_res_sc__p_resource_nl	41968688-79C0-415C-BC71-58D0DA0A6887
++g_f_res_sc__p_resource_nn	6DF40C1E-9E3F-4850-B2D4-26D37ECB55A6
++g_f_res_sc__p_resource_pa_in	8D2B5747-0EC0-498A-BFAC-C6491367FF63
++g_f_res_sc__p_resource_pl	344A87A4-9B21-48A1-8E30-DFF83234B00F
++g_f_res_sc__p_resource_pt	A55BC42A-4530-4740-A69E-98A77C72DBDF
++g_f_res_sc__p_resource_pt_br	7E974200-05C1-4D22-9E3D-9AA65255A3FE
++g_f_res_sc__p_resource_ru	592ABF25-A09C-43D9-ABEF-978A28351939
++g_f_res_sc__p_resource_rw	555C7749-B7A3-41B1-B837-65DCAC322EB2
++g_f_res_sc__p_resource_sk	3805818B-3556-45A9-A71E-8DC0D52A5A71
++g_f_res_sc__p_resource_sl	A45BCCF2-A468-4105-B3B5-5DCDCE108AB1
++g_f_res_sc__p_resource_sv	EFE8B363-1F60-43B6-AD09-6413C0BB9AB3
++g_f_res_sc__p_resource_ta_in	44450F8D-C6A6-463A-A830-63A174E6758B
++g_f_res_sc__p_resource_tr	A07790CC-C601-46F9-A42F-BEA6235F6AA0
++g_f_res_sc__p_resource_vi	4F0A95D9-4A7C-4D95-BC0A-B7895846454D
++g_f_res_sc__p_resource_xh	9F1FFF02-B008-4517-B87D-72B34444018C
++g_f_res_sc__p_resource_zh_cn	F3CDEBF2-C091-4884-B76C-D05B621508C0
++g_f_res_sc__p_resource_zh_tw	26A3A7D9-5FC8-4097-94D0-9804AF43D615
++g_f_res_sc__p_resource_zu	40C237D4-0402-44D0-B5BB-C27AA47EB235
++g_f_res_sch__p_resource_af	A09CA140-2EB2-4BAE-9E1A-26379D36EEC5
++g_f_res_sch__p_resource_ar	D8CC3B1F-8122-4701-BC86-15651B87677A
++g_f_res_sch__p_resource_be_by	569F6CEF-EBC1-41A0-B9BE-A20B216386BA
++g_f_res_sch__p_resource_bg	C27A74E3-EFD9-4A56-BA23-94F9E6182CC3
++g_f_res_sch__p_resource_bn_in	9605097C-3213-4000-97F7-7F379DF02FA4
++g_f_res_sch__p_resource_br	DF38CE4F-51A7-48FF-A706-4B811AD4FAF2
++g_f_res_sch__p_resource_ca	AAE6F3D5-806B-43D6-A1FF-936F1B9269FB
++g_f_res_sch__p_resource_cs	B9B71BC5-41D0-4CEE-8260-544CC2B901EC
++g_f_res_sch__p_resource_da	98F0F7A1-9F7F-4EEE-BF86-AD5FFFDE8509
++g_f_res_sch__p_resource_de	39CE1D5D-50A6-474E-8CD7-2F772B3B77B9
++g_f_res_sch__p_resource_el	DD10336F-1255-484A-A4D0-AE102D0A944E
++g_f_res_sch__p_resource_en_gb	86726461-B691-4F35-9AD5-55F672C03F14
++g_f_res_sch__p_resource_en_us	72A9D155-5B8E-4415-87EE-EA8BE1C09CD6
++g_f_res_sch__p_resource_es	36B59E84-EE77-4087-9B32-4421EBE66D49
++g_f_res_sch__p_resource_et	3C21A86B-C3BD-4E34-A087-4153F71EDCC0
++g_f_res_sch__p_resource_fi	9DD48ADC-7720-4412-9C74-65926F84035E
++g_f_res_sch__p_resource_fr	15D05CC0-164A-478F-9F3B-13792437965E
++g_f_res_sch__p_resource_gu_in	1E79F276-A431-4C38-BF95-194FF92F45D3
++g_f_res_sch__p_resource_he	046BF3FA-033F-4582-8330-79ED2E6ECBED
++g_f_res_sch__p_resource_hi_in	C5FD40F1-37B2-4E8F-A297-0BDFCA20BE76
++g_f_res_sch__p_resource_hr	12AD7DB1-E833-4C90-B870-570057426131
++g_f_res_sch__p_resource_hu	7805CE87-42BC-4DB9-BFEB-7E1E494AC285
++g_f_res_sch__p_resource_it	CCF03543-473E-49E1-97CF-14824ECA1014
++g_f_res_sch__p_resource_ja	740A8687-F400-46BB-BACC-E6A29CF8ED23
++g_f_res_sch__p_resource_ko	2D91CE30-744D-4EF0-8E75-FC7E328FE135
++g_f_res_sch__p_resource_lt	067214D1-C684-4CA6-A80D-F2B40E5CFB30
++g_f_res_sch__p_resource_lv	C23F6ABD-96A7-43E5-9CEA-43CD7A3FF243
++g_f_res_sch__p_resource_mk	A4E7A2C4-E57F-4772-908D-AB6DA3CEE3A8
++g_f_res_sch__p_resource_nb	0B083067-8FAD-49E1-8EC2-19A88ECBD06B
++g_f_res_sch__p_resource_nl	B133ED95-6EA2-4897-95A6-B1DA1CDB0A4F
++g_f_res_sch__p_resource_nn	4039183F-9895-49CC-B1FF-2017330EB956
++g_f_res_sch__p_resource_pl	8AEC6EEA-8C2A-42AD-AB00-F9B1A1B94D2B
++g_f_res_sch__p_resource_pt	6EC362DE-4262-4A0C-9301-578B70A08C73
++g_f_res_sch__p_resource_pt_br	739DAD34-67BD-490E-82F4-72B53A2FD1AA
++g_f_res_sch__p_resource_ru	65E988F8-9030-4F88-A342-F960D9874AFE
++g_f_res_sch__p_resource_sk	255E6E3F-200E-4BF2-BF08-71D7067385C0
++g_f_res_sch__p_resource_sl	6555C997-4C1B-45F2-A8F2-07CA2BF38299
++g_f_res_sch__p_resource_sv	E32BB288-4170-4EC1-AE9B-322E935F2AC2
++g_f_res_sch__p_resource_tr	C682C986-9E1C-4C65-9971-4010F28F1176
++g_f_res_sch__p_resource_xh	CDBF2691-8BE9-419B-B03C-452B57A46CD9
++g_f_res_sch__p_resource_zh_cn	F62ADA39-8206-4AE5-AF79-365E228E35EB
++g_f_res_sch__p_resource_zh_tw	4456F7A4-F6E3-4AB4-A93C-5B4CCCC2E620
++g_f_res_sch__p_resource_zu	B50C7D3F-BB2E-47A5-9C01-B2BF89874A76
++g_f_res_scsolver__p_resource_af	9A7B08E2-19BC-4984-91BF-D9DBB92CCC5B
++g_f_res_scsolver__p_resource_ar	217A698B-7DF6-4719-89E2-A0A050234490
++g_f_res_scsolver__p_resource_be_by	F8F878FC-7D6C-4C20-95F5-16C76F7BA986
++g_f_res_scsolver__p_resource_bg	D8003592-6C28-4243-8963-6AF74EE0E35B
++g_f_res_scsolver__p_resource_bn_in	37C14178-615A-480C-895B-4736E7A4A1BD
++g_f_res_scsolver__p_resource_br	5DA3C764-DE4B-4ADD-8595-A8C52CEFB995
++g_f_res_scsolver__p_resource_ca	DF068605-C326-4779-A005-A9A4034DAB30
++g_f_res_scsolver__p_resource_cs	72780756-A5CD-4836-881F-12C4076D1240
++g_f_res_scsolver__p_resource_cy	3CD6B4CE-DAD8-4AAE-AEC3-71A2BDE74ACE
++g_f_res_scsolver__p_resource_da	6794AC56-520E-40E8-A57C-BB86DE98EE35
++g_f_res_scsolver__p_resource_de	8848907A-6F58-4111-9AC6-ECF026C9B7F5
++g_f_res_scsolver__p_resource_el	78AFA7CC-D4E3-4D30-9C96-48ED3139FB4E
++g_f_res_scsolver__p_resource_en_gb	9FE56E39-1833-45A2-A17C-7BA76F4DA704
++g_f_res_scsolver__p_resource_en_us	E864B5D9-A43E-432B-9044-D35681DE6FD7
++g_f_res_scsolver__p_resource_es	63604D69-39C2-4B44-AF6B-9466DE6D9CD1
++g_f_res_scsolver__p_resource_et	BDD94FEB-FB05-47C9-B112-A0FF567232FC
++g_f_res_scsolver__p_resource_fi	1E102035-FCC1-4226-A8BB-C6C1AD79F2C4
++g_f_res_scsolver__p_resource_fr	4CDC5FF2-6A1C-4D0E-8275-3D267CC2E6D2
++g_f_res_scsolver__p_resource_gu_in	4CBC526A-F192-4610-AF71-27F4D42747A1
++g_f_res_scsolver__p_resource_he	F7241069-F69E-4D3C-9208-D32E8E91C347
++g_f_res_scsolver__p_resource_hi_in	B37C0951-0DCC-421C-B8D9-672B9194D053
++g_f_res_scsolver__p_resource_hr	42908ABE-12F9-4918-AAB8-4D12280B4B1A
++g_f_res_scsolver__p_resource_hu	0982A8D6-FF4B-49B2-8427-BC3522E964B4
++g_f_res_scsolver__p_resource_it	703D47F7-F8BB-4312-9B7D-5D38284BF9D2
++g_f_res_scsolver__p_resource_ja	AE52606E-C3E2-47A5-BD71-4BC7E9FE6935
++g_f_res_scsolver__p_resource_km	E7BF3BBC-8AEA-48D0-95AF-3D48FBBED846
++g_f_res_scsolver__p_resource_ko	64E5B038-CD36-42AF-B941-8626F52E3E93
++g_f_res_scsolver__p_resource_lt	108CAD52-9286-43CF-9E70-C12CD2D7B69B
++g_f_res_scsolver__p_resource_lv	15D5DD6D-11E0-406E-81BA-180E3D7D4C8F
++g_f_res_scsolver__p_resource_mk	AC877CB3-CDCA-4C51-9ADD-77C9957B671D
++g_f_res_scsolver__p_resource_mr_in	1C55DFAF-E56F-4E94-BA94-04DA2B6DAACE
++g_f_res_scsolver__p_resource_nb	C6AF5D33-5BCD-43EC-ACD5-C8923EE20883
++g_f_res_scsolver__p_resource_nl	2043A0B7-8612-4F12-B4C3-90A36D5ED041
++g_f_res_scsolver__p_resource_nn	D735EC33-28D5-45E1-8304-0E36580D19AA
++g_f_res_scsolver__p_resource_pa_in	0D23DF18-5A76-4332-B20D-2707BC16BE36
++g_f_res_scsolver__p_resource_pl	ED8FCE60-5632-441B-8063-D26E3B0E2C5A
++g_f_res_scsolver__p_resource_pt	07C1D9C7-8FE7-43F3-87CA-523B170E9C85
++g_f_res_scsolver__p_resource_pt_br	23719676-83AB-4A27-9738-06E3BC5F6A39
++g_f_res_scsolver__p_resource_ru	EE7EDCF8-8AB7-4D23-8A89-586F58FEBBB2
++g_f_res_scsolver__p_resource_rw	E1FD6B73-E633-4F68-8EE1-828A5C549F69
++g_f_res_scsolver__p_resource_sk	1E49302A-EC66-48D4-A905-09BEFFDC8B7E
++g_f_res_scsolver__p_resource_sl	4A9BC06B-197C-4247-B9FA-2F87F20555AA
++g_f_res_scsolver__p_resource_sv	7514E47F-50DD-47BF-B15F-52ED01AE99ED
++g_f_res_scsolver__p_resource_ta_in	4A0E7666-4C25-452A-8A47-0E185C8352C4
++g_f_res_scsolver__p_resource_tr	4BF7F76D-C8F4-4E62-8C6E-1DBA2F74DFA0
++g_f_res_scsolver__p_resource_vi	C4B1DCF3-8CD8-487F-9B5B-5FF316990C51
++g_f_res_scsolver__p_resource_xh	D4A8C5DD-BB04-4F96-935C-CF89489B7D07
++g_f_res_scsolver__p_resource_zh_cn	31EA49E3-7D58-4155-997F-A8617B767A37
++g_f_res_scsolver__p_resource_zh_tw	A39FEC8F-1E50-485D-97F6-031F9399E948
++g_f_res_scsolver__p_resource_zu	235CE332-47F8-400C-994B-510706A460FA
++g_f_res_sd__p_resource_af	140E0650-C049-4075-9DB6-D024B22F956A
++g_f_res_sd__p_resource_ar	7F00BE11-1253-4C9E-B344-537AF3ED1BBD
++g_f_res_sd__p_resource_be_by	2D144053-8819-4126-9F62-B12847E670BC
++g_f_res_sd__p_resource_bg	9CD358FF-F202-4882-B096-65C055B9E348
++g_f_res_sd__p_resource_bn_in	30093E6A-26A6-40F9-BD95-35ECEB7AFC6D
++g_f_res_sd__p_resource_br	DF9099D7-7918-43A2-9873-5AA97A281B87
++g_f_res_sd__p_resource_ca	2733BFBB-DCFE-4B34-AF4C-8AFB2350706C
++g_f_res_sd__p_resource_cs	61486A60-A2B3-4560-9FE2-1771FEAAE7EC
++g_f_res_sd__p_resource_cy	119EBDBC-A883-46CF-96DF-22D1F7BDE8C0
++g_f_res_sd__p_resource_da	41463A94-7AC6-437B-8C6D-76D30944BA4A
++g_f_res_sd__p_resource_de	D41AB0D1-2770-4CA7-9A98-CCFF2D2653C1
++g_f_res_sd__p_resource_el	17AEBBCA-0D89-48EB-BEEB-36DF16E9F183
++g_f_res_sd__p_resource_en_gb	5B388348-E774-4533-9F84-FA41B3E75A15
++g_f_res_sd__p_resource_en_us	EFEB5452-3772-45E5-A289-09F9DF5DB298
++g_f_res_sd__p_resource_es	678BCC77-69BE-4692-AA56-E04A1895C6FD
++g_f_res_sd__p_resource_et	97B0C044-85CD-44D3-B15E-C6C69F860228
++g_f_res_sd__p_resource_fi	814E7C0F-E896-4F3C-AE03-C32F87AABE6E
++g_f_res_sd__p_resource_fr	ECEEC0A0-62F9-49B6-924F-C4445E9220A7
++g_f_res_sd__p_resource_gu_in	FA2EEA66-29C4-4E2D-8459-FAE8BA4DC891
++g_f_res_sd__p_resource_he	00ACEA20-3A77-4EDC-8A0B-65FD656EA1CD
++g_f_res_sd__p_resource_hi_in	A3BEF6F1-9E89-443D-9D38-AA548CDEC342
++g_f_res_sd__p_resource_hr	61C27F0F-9DE5-4674-85E4-02F2DD7E53B5
++g_f_res_sd__p_resource_hu	97F4474F-15D5-46BB-93CA-211D89D7B651
++g_f_res_sd__p_resource_it	79631860-96ED-4131-B5F6-E9804EAE8C20
++g_f_res_sd__p_resource_ja	9A9D71E0-5A5D-4D29-BA62-06969F06BCEE
++g_f_res_sd__p_resource_km	C0F1A219-3464-406F-98F5-EB62B8CF3637
++g_f_res_sd__p_resource_ko	0519D86B-19AA-4293-8BF2-B580CE082C8A
++g_f_res_sd__p_resource_lt	BB18951B-B770-49B2-B888-533136C5EAC1
++g_f_res_sd__p_resource_lv	3555E729-B26F-4B82-82CA-0CE92A24C8BB
++g_f_res_sd__p_resource_mk	1F77092C-E30E-4DBD-B8F7-6BAB98233902
++g_f_res_sd__p_resource_mr_in	63369315-3DFA-47B8-9787-FA48DE12F609
++g_f_res_sd__p_resource_nb	CCCCACBE-C6B3-4A9B-AF83-D6A7F44DCD63
++g_f_res_sd__p_resource_nl	67212B4F-2F92-4BBD-8EBB-F4405C25E6B6
++g_f_res_sd__p_resource_nn	C5CE2306-A9A3-478C-8015-4A3FA89BCA16
++g_f_res_sd__p_resource_pa_in	1223ABB4-0841-4933-A655-F0DF9ECAA8B6
++g_f_res_sd__p_resource_pl	FB54B4C3-3451-4C90-A84C-F3774B6F7CD5
++g_f_res_sd__p_resource_pt	EDFBAC65-59AD-4375-8A74-550044F9C1EB
++g_f_res_sd__p_resource_pt_br	74ADA3F6-61B8-4B69-9FE6-4884648E6E80
++g_f_res_sd__p_resource_ru	9DD25D16-E767-4796-A59B-14359D24DAC0
++g_f_res_sd__p_resource_rw	7A48A303-CFEF-428C-BBA9-4AB026C38366
++g_f_res_sd__p_resource_sk	56458A15-55F1-462B-992F-1591C3A5D085
++g_f_res_sd__p_resource_sl	99C1186D-3468-44E5-A6F7-FDA38B531A0B
++g_f_res_sd__p_resource_sv	FD0074B1-56A9-471A-BD53-5A16A6E2BB83
++g_f_res_sd__p_resource_ta_in	1633553E-C65B-4CD3-AD0D-DB9549734056
++g_f_res_sd__p_resource_tr	C858C8F9-C56F-4E81-A9B4-063C5A07AF8A
++g_f_res_sd__p_resource_vi	CB2A3C6A-E787-4E45-B590-AF8308E347A6
++g_f_res_sd__p_resource_xh	8E4F8B14-C1A0-47AA-A29D-321AF2730D2C
++g_f_res_sd__p_resource_zh_cn	3B32C0A6-B425-4367-8F2E-CB8EC6398967
++g_f_res_sd__p_resource_zh_tw	286C0E07-14D2-407F-8B51-1293A368DD3F
++g_f_res_sd__p_resource_zu	6F96CE35-2F1C-4FB5-B4C4-12E0B0889EC4
++g_f_res_sdbcl__p_resource_af	09EEE1DE-B9A0-414F-8949-A7D5193B36B3
++g_f_res_sdbcl__p_resource_ar	55133ECE-6B98-42C8-A34F-55C84D7ACC06
++g_f_res_sdbcl__p_resource_be_by	FC37E629-2B66-4679-A21D-3C98D754CDB0
++g_f_res_sdbcl__p_resource_bg	D7C0B454-F1EE-4052-A389-C8BA6EDA33AF
++g_f_res_sdbcl__p_resource_bn_in	8841D06B-C7C7-4B63-B8B1-4F79548E76EC
++g_f_res_sdbcl__p_resource_br	B4E35604-61E3-4C80-8359-A2A490EAA169
++g_f_res_sdbcl__p_resource_ca	D457552B-4364-4E0E-B4CA-DA8F4883D413
++g_f_res_sdbcl__p_resource_cs	6FBC7761-0FF3-47B1-AF83-6E91E9E895A4
++g_f_res_sdbcl__p_resource_cy	68EC100E-DE8A-4725-B88D-534CB9FB85AE
++g_f_res_sdbcl__p_resource_da	B51F7FA8-EDF9-4848-A77B-23EF02FE6D13
++g_f_res_sdbcl__p_resource_de	DFBD0B90-F921-4D0F-A610-3E3C6C077C85
++g_f_res_sdbcl__p_resource_el	57315EF1-AA3C-4BBF-9D15-4B26A4F5C5CC
++g_f_res_sdbcl__p_resource_en_gb	09E22F23-214F-4A96-B880-DAAF0E275D7F
++g_f_res_sdbcl__p_resource_en_us	4CA8E047-A678-4FDD-9E2B-5E0AC7CB93CE
++g_f_res_sdbcl__p_resource_es	56739DE7-2310-47A1-8B1E-3AEF35B7F540
++g_f_res_sdbcl__p_resource_et	5009122F-284A-41BE-9775-BF11E824ED8C
++g_f_res_sdbcl__p_resource_fi	19341D4C-41F6-4838-B7B1-6C961A865213
++g_f_res_sdbcl__p_resource_fr	F26B06C0-E8B8-4795-A9B8-A4650D97151D
++g_f_res_sdbcl__p_resource_gu_in	A2A432E2-D269-47F5-80E9-ED6895E3282E
++g_f_res_sdbcl__p_resource_he	215BECB3-3C2D-4C59-B7B9-C4A17095CF8D
++g_f_res_sdbcl__p_resource_hi_in	E0B1EC38-BD72-466B-ABCE-7E08F5F2823C
++g_f_res_sdbcl__p_resource_hr	F3F97701-F0F9-470F-90E6-C2E0AC967A78
++g_f_res_sdbcl__p_resource_hu	CE3F8CD0-C89D-4141-A79A-40A9C728652D
++g_f_res_sdbcl__p_resource_it	01C0064B-86B7-4FAA-A551-4DB6B927D205
++g_f_res_sdbcl__p_resource_ja	727B00BC-A0E8-47FE-BFC4-CB39BC64BE8F
++g_f_res_sdbcl__p_resource_km	6A37FC5F-316E-4EE4-B1D3-1CBFDE099A0B
++g_f_res_sdbcl__p_resource_ko	159A93C7-7232-48FF-B9F1-3D6C32408F73
++g_f_res_sdbcl__p_resource_lt	DCAFCAD6-6948-4280-B9F4-9CE239148AB6
++g_f_res_sdbcl__p_resource_lv	424589FE-823F-4725-990D-EB657564CF47
++g_f_res_sdbcl__p_resource_mk	6F8004FE-6EE9-458C-9509-769E3D286BB2
++g_f_res_sdbcl__p_resource_mr_in	7CA421CB-B71D-45E9-9845-E5B0E0E49CBE
++g_f_res_sdbcl__p_resource_nb	D4D0A866-CD3A-4A4F-B378-40824E69596D
++g_f_res_sdbcl__p_resource_nl	572B56D8-3030-4A76-8CE8-2FCA6D996CB7
++g_f_res_sdbcl__p_resource_nn	BC4BB1F5-0C6A-4E00-A0F8-08ACCD87C3DC
++g_f_res_sdbcl__p_resource_pa_in	C3764103-05AF-46F3-A17A-53BDF49C2F8F
++g_f_res_sdbcl__p_resource_pl	360C774D-5C79-46FA-B95F-EDE5B9FADF6A
++g_f_res_sdbcl__p_resource_pt	C00EB71E-3805-42F0-9B96-755C19A3D0D1
++g_f_res_sdbcl__p_resource_pt_br	ECAFE829-4658-417A-A0C2-CA680271D054
++g_f_res_sdbcl__p_resource_ru	1246E645-BB08-4F57-B09D-3F26F70DCA08
++g_f_res_sdbcl__p_resource_rw	41A5F78E-D159-4307-9167-0594605B94C0
++g_f_res_sdbcl__p_resource_sk	8BEF2BDA-C146-4B97-AA5D-00A3D2769B96
++g_f_res_sdbcl__p_resource_sl	7157AAEE-3551-42EB-9449-A48E52C6ACE5
++g_f_res_sdbcl__p_resource_sv	26BFC87C-5CD9-477B-BD63-E06C2941AD77
++g_f_res_sdbcl__p_resource_ta_in	3617EFDE-B064-4B97-B3B2-B889EA711B56
++g_f_res_sdbcl__p_resource_tr	7391F78E-1BD0-482D-84F5-759236D107B6
++g_f_res_sdbcl__p_resource_vi	EBBD3947-186F-406F-A98F-91408ACA417E
++g_f_res_sdbcl__p_resource_xh	9AEA61E3-9BEB-4A33-8F9D-94D46D5FDB04
++g_f_res_sdbcl__p_resource_zh_cn	8ADCEA1D-07AB-46F7-89A1-5030E695A90C
++g_f_res_sdbcl__p_resource_zh_tw	10DE715B-297D-47E3-A48A-DA7044517059
++g_f_res_sdbcl__p_resource_zu	C07613C8-0239-4D0C-864C-CD122CD34FA3
++g_f_res_sdberr__p_resource_af	234DC879-1A21-4748-966B-452888BF185D
++g_f_res_sdberr__p_resource_ar	517995F8-1645-4297-B974-64DC5A8EC4CE
++g_f_res_sdberr__p_resource_be_by	396C7FB5-22F6-4054-A2AE-E5F57251E3CB
++g_f_res_sdberr__p_resource_bg	61E4B829-34F7-41B1-B311-0ECC01CF61FE
++g_f_res_sdberr__p_resource_bn_in	57FA40C1-ECF1-4E03-8771-E1348B520DD3
++g_f_res_sdberr__p_resource_br	53B00874-E210-464F-BD80-10D663431667
++g_f_res_sdberr__p_resource_ca	56C1EB58-2CB1-421D-902A-C68189846B9F
++g_f_res_sdberr__p_resource_cs	89822974-0AEA-4044-AC46-7A6099304C80
++g_f_res_sdberr__p_resource_cy	47ABD417-08B3-401C-B252-E84D48D0C4D2
++g_f_res_sdberr__p_resource_da	672538A0-6031-4496-8AE5-6C6D84BAB6EB
++g_f_res_sdberr__p_resource_de	48DA1DAF-79DE-43F8-A51F-D1893EB50C2B
++g_f_res_sdberr__p_resource_el	5AE09BCD-6102-4640-A1B4-2E588F9B33CE
++g_f_res_sdberr__p_resource_en_gb	A08C83EC-B2F6-4E92-AAB7-0012566DBCBD
++g_f_res_sdberr__p_resource_en_us	8ACDA4C7-62A0-440E-B592-F5A992A61EF8
++g_f_res_sdberr__p_resource_es	7E34E70A-91C0-4CB7-AF06-F0EE5E50941B
++g_f_res_sdberr__p_resource_et	DB23762C-844D-4077-B4C2-F7732E7AC246
++g_f_res_sdberr__p_resource_fi	C938BFC8-4DEF-4ED1-9670-499BF5E8FBA9
++g_f_res_sdberr__p_resource_fr	726BD27A-F7EF-4BD6-830A-9F9BDD10DA64
++g_f_res_sdberr__p_resource_gu_in	EB871D22-B7B3-497C-9258-17324C99E52F
++g_f_res_sdberr__p_resource_he	2CD71888-E930-4E8B-B86A-C249AD178B86
++g_f_res_sdberr__p_resource_hi_in	A051D5E7-F2A2-4FD6-AA3C-3B892E4803BF
++g_f_res_sdberr__p_resource_hr	96D6A95E-577B-4CF8-A571-9A736F1680D9
++g_f_res_sdberr__p_resource_hu	641F50D0-23FB-4E2E-A5F6-9E5E40016DF8
++g_f_res_sdberr__p_resource_it	DD82086C-40C3-424F-949C-54E14D5222DE
++g_f_res_sdberr__p_resource_ja	A4278E1C-BA9C-49C0-82F0-F4DAC84B694B
++g_f_res_sdberr__p_resource_km	7F197B76-D8FD-462C-BFB7-FC5D2E77C5AB
++g_f_res_sdberr__p_resource_ko	5C6DE538-F3C1-45B4-9FAE-FB830675F82A
++g_f_res_sdberr__p_resource_lt	9EFE973B-A615-4A52-B83A-58A01136CB8D
++g_f_res_sdberr__p_resource_lv	CA076466-0402-4324-B9DE-A9FCA946F911
++g_f_res_sdberr__p_resource_mk	141FBE37-55E1-4006-BC82-034D46D105B5
++g_f_res_sdberr__p_resource_mr_in	CBC4C7C0-B23A-4DA8-91D5-6DF1B0946AF3
++g_f_res_sdberr__p_resource_nb	1C98E275-3A86-43CF-B0A5-E30D37485DD1
++g_f_res_sdberr__p_resource_nl	CE30AE4E-2E07-4BDA-BF05-B2BD650729C2
++g_f_res_sdberr__p_resource_nn	FA6E2F19-83B4-4396-92E4-18FCCDCB1E57
++g_f_res_sdberr__p_resource_pa_in	6B64BB64-730A-49DF-BF07-B650FA28EA37
++g_f_res_sdberr__p_resource_pl	B5B36917-DDA7-4DBA-8037-54B6DE103080
++g_f_res_sdberr__p_resource_pt	B1C9F933-D512-4754-9D7A-D6ECECDC607F
++g_f_res_sdberr__p_resource_pt_br	D8138A72-7FB3-4C77-879B-27B7582AA26D
++g_f_res_sdberr__p_resource_ru	691EBC85-3927-4EB3-A1B2-6359DFB63636
++g_f_res_sdberr__p_resource_rw	831D592C-079F-414F-B6A0-C33A756DFC97
++g_f_res_sdberr__p_resource_sk	C18130DF-2CAC-487F-84FA-2E94C8D50962
++g_f_res_sdberr__p_resource_sl	235102A3-8630-470D-9880-77861839AD95
++g_f_res_sdberr__p_resource_sv	FD929836-62A8-46E6-9855-8E4086FE5239
++g_f_res_sdberr__p_resource_ta_in	07383931-1C34-49BE-B3FD-A008986410F5
++g_f_res_sdberr__p_resource_tr	95A2DB8C-0681-4FB4-8554-E6E6428393D2
++g_f_res_sdberr__p_resource_vi	D80FDA82-BC40-44B4-8D42-237F54CD4B72
++g_f_res_sdberr__p_resource_xh	8C0A1808-7440-4211-87B8-EC9809C1E036
++g_f_res_sdberr__p_resource_zh_cn	5419E0DD-E5EB-4C2B-8BBB-D50701D624B1
++g_f_res_sdberr__p_resource_zh_tw	2A5653F6-DD7B-435A-9939-655B97C35AED
++g_f_res_sdberr__p_resource_zu	D1926D13-62AE-4FA2-B9E8-90E1546C9336
++g_f_res_sdbt__p_resource_af	1056E190-4499-4D46-87B9-C270647FD5FE
++g_f_res_sdbt__p_resource_ar	0F426C3E-C971-4F3C-B2DE-6587ED6F71FC
++g_f_res_sdbt__p_resource_be_by	E5F10D00-9DCA-4C2D-B062-D65DE453151F
++g_f_res_sdbt__p_resource_bg	CEF0A1EC-4A92-40B5-85AC-717E97D6FCB1
++g_f_res_sdbt__p_resource_bn_in	766178F1-111A-472E-9937-B7639F6EBBFE
++g_f_res_sdbt__p_resource_br	D15D7446-2F8E-45CB-A898-1302EC6C0033
++g_f_res_sdbt__p_resource_ca	9F1000F4-BECD-439B-9673-327C4AD4982E
++g_f_res_sdbt__p_resource_cs	EA574FD0-167E-4447-8CE9-F377F8ABBB19
++g_f_res_sdbt__p_resource_cy	FE8CAD7D-867F-4AA6-BB5B-EBF6DBC887BF
++g_f_res_sdbt__p_resource_da	F6338362-6669-4C3D-AD69-2DF747348FCF
++g_f_res_sdbt__p_resource_de	13DB81CE-4E74-4A92-B6D9-B1F1ECC4A3B6
++g_f_res_sdbt__p_resource_el	B942F60C-0810-419A-AE65-456CBF884B71
++g_f_res_sdbt__p_resource_en_gb	EEB99EFF-6841-4C5A-BD8C-8D2D8DCA5797
++g_f_res_sdbt__p_resource_en_us	B8D245D6-F971-4D6C-A181-A54C4F6D154A
++g_f_res_sdbt__p_resource_es	4AF6B940-F42E-4AB8-AF3C-AF747A89D9AF
++g_f_res_sdbt__p_resource_et	8A92FDCD-68FD-4F96-95C1-A5A262807674
++g_f_res_sdbt__p_resource_fi	489F40E2-23B6-4574-8864-0E9720DF2081
++g_f_res_sdbt__p_resource_fr	FEC649AA-A28C-46E6-AC09-781630BF66A0
++g_f_res_sdbt__p_resource_gu_in	5C000145-08A7-45AD-AEBB-0BBE2D04BD58
++g_f_res_sdbt__p_resource_he	2E101667-A0C9-4DFF-BBCD-89D33D94B50C
++g_f_res_sdbt__p_resource_hi_in	C8A47EAC-50F7-4367-AE80-D5969180E0BA
++g_f_res_sdbt__p_resource_hr	2CE65346-769A-4E89-B2AE-DBC7DA2E28D7
++g_f_res_sdbt__p_resource_hu	A7303869-D463-469F-AD74-E75043BF3747
++g_f_res_sdbt__p_resource_it	2258F4D6-CEC8-4C50-B6EE-C75A1879D127
++g_f_res_sdbt__p_resource_ja	A7C6A4F9-5925-4257-B6A1-C4927DAEEA96
++g_f_res_sdbt__p_resource_km	DFCD0E2B-CCB2-49E3-9F2A-3CFF970721C5
++g_f_res_sdbt__p_resource_ko	6203DE65-B4E1-4CD4-88C1-560520776D3E
++g_f_res_sdbt__p_resource_lt	67CCD4F5-9BA7-46F7-B2C7-5C4A326F523F
++g_f_res_sdbt__p_resource_lv	8A32071E-10CE-4236-B7DB-D8F0355DDBE5
++g_f_res_sdbt__p_resource_mk	84E87A33-30D7-49CD-8C0F-DCAE9A904A05
++g_f_res_sdbt__p_resource_mr_in	C7C32BFA-3141-4521-B71D-3BA16EC87604
++g_f_res_sdbt__p_resource_nb	96DDB681-1F73-4B6D-8964-31597BC6CC03
++g_f_res_sdbt__p_resource_nl	A74B8A7F-D3FD-4823-9DBC-C902FED325E8
++g_f_res_sdbt__p_resource_nn	6A8CF27F-6DCD-4362-98CD-1969E489A68F
++g_f_res_sdbt__p_resource_pa_in	AF0B364D-0947-40A8-878E-CF1CB5BE657F
++g_f_res_sdbt__p_resource_pl	5079EEFA-31A2-4C6B-844C-585D61ACAC67
++g_f_res_sdbt__p_resource_pt	27C73448-87FB-4508-8FF5-0BFEBCDBC9B6
++g_f_res_sdbt__p_resource_pt_br	36D6AAB0-9619-4F9E-8385-638F285A0498
++g_f_res_sdbt__p_resource_ru	A0EFA0C7-70CC-464E-A442-F211B7EB296F
++g_f_res_sdbt__p_resource_rw	AF49A653-AE20-4E97-B75B-48B600F0AE78
++g_f_res_sdbt__p_resource_sk	BAA3EFA2-7462-4586-A072-74EF2272BA2B
++g_f_res_sdbt__p_resource_sl	9CF3F0D5-904E-44CB-A076-B9D6C9B45EAA
++g_f_res_sdbt__p_resource_sv	56443BE8-BA31-4C58-8522-00968884E1FB
++g_f_res_sdbt__p_resource_ta_in	9E667FFF-E789-4E18-9D8D-9E7D1C2B6F05
++g_f_res_sdbt__p_resource_tr	51877C3A-7030-4E5D-B99A-BBD0795F8082
++g_f_res_sdbt__p_resource_vi	21F095BB-FD4B-4A9F-9A0F-C6A0F015D66F
++g_f_res_sdbt__p_resource_xh	B705F3EF-C6EF-4C9E-A7B2-DC70A7EB19BE
++g_f_res_sdbt__p_resource_zh_cn	5683CE28-52E4-460C-8B3D-5401E2453E9E
++g_f_res_sdbt__p_resource_zh_tw	F6D6AC41-0022-4D63-96D5-985048AA8AEA
++g_f_res_sdbt__p_resource_zu	F40346F1-F556-4628-9DBA-BC697F44C5AE
++g_f_res_sfx__p_resource_af	C233D60D-AF5D-4717-A506-52FEE1CFCAA7
++g_f_res_sfx__p_resource_ar	CAD6734F-6465-4715-B071-365E1DEE59F4
++g_f_res_sfx__p_resource_be_by	BB607ED5-4DA9-45E6-A908-2AADDEE5CFE8
++g_f_res_sfx__p_resource_bg	D39273F6-7126-488D-B0C1-448F065D18FC
++g_f_res_sfx__p_resource_bn_in	201C7F12-3ABD-4675-B952-EBD502F9E666
++g_f_res_sfx__p_resource_br	DBF4BB30-ACD5-48E3-9A50-1E475A9213B1
++g_f_res_sfx__p_resource_ca	14FFB385-B8AE-47E2-9F0E-E31A9006F3D7
++g_f_res_sfx__p_resource_cs	C07BA87D-40DC-495C-85C8-2B1FC38DC4B4
++g_f_res_sfx__p_resource_cy	2FD0B99E-561C-4EBF-A32A-B9727585376F
++g_f_res_sfx__p_resource_da	7A018C42-DFD4-4312-8C71-23F12A6FB571
++g_f_res_sfx__p_resource_de	2ECFEA27-94FC-4D04-80BA-62E0CA839FD3
++g_f_res_sfx__p_resource_el	2B5BFB90-1324-497F-B482-0987637C7D04
++g_f_res_sfx__p_resource_en_gb	91C3905C-722D-4259-AFAF-D3C727002E70
++g_f_res_sfx__p_resource_en_us	4B01070D-5443-430D-A4CE-6C17D0A7BA60
++g_f_res_sfx__p_resource_es	0D2706B8-0CC9-4C02-A10A-9E8D6BD502C3
++g_f_res_sfx__p_resource_et	5BAA26E9-1E59-451B-9CC3-F028B425B8AB
++g_f_res_sfx__p_resource_fi	6DE47622-F63F-4646-8B27-6E0C120F0BB4
++g_f_res_sfx__p_resource_fr	C79753B9-8F52-452F-8DEE-A68F909D0605
++g_f_res_sfx__p_resource_gu_in	6FA62F8C-6AA2-4511-9A01-E45926AEFAF9
++g_f_res_sfx__p_resource_he	D2D08B9A-55C9-43FB-87C7-93EF050C1CEB
++g_f_res_sfx__p_resource_hi_in	5B2FE481-140C-419F-91E6-0EB4DBB753AE
++g_f_res_sfx__p_resource_hr	6F714F4F-899A-4555-97B3-B28CBBEF4F6D
++g_f_res_sfx__p_resource_hu	36CA9848-C418-473D-A62E-C0E2873C50E0
++g_f_res_sfx__p_resource_it	985ED33D-4B04-4278-8975-6D0C361AFA76
++g_f_res_sfx__p_resource_ja	2D5F08C5-82AB-452E-82AF-82D41FD637E5
++g_f_res_sfx__p_resource_km	DF4AF392-C37E-4649-8EE3-6EED3ED457D5
++g_f_res_sfx__p_resource_ko	FC8F0065-3C44-4BFD-ABFC-E2358F5F3434
++g_f_res_sfx__p_resource_lt	0ACDD43B-4171-433F-8333-EBF8D90DDA1A
++g_f_res_sfx__p_resource_lv	3AC05AAB-B4E1-4D16-98D5-DD67A0EA02E0
++g_f_res_sfx__p_resource_mk	7BFDB0BC-E65C-456D-8889-97C269799D5D
++g_f_res_sfx__p_resource_mr_in	8B06F348-D073-429C-8E82-CDD694258069
++g_f_res_sfx__p_resource_nb	BA35BFD9-F292-4511-8266-E021CE6FE093
++g_f_res_sfx__p_resource_nl	B6F0475E-4455-4FAA-9271-4CEEDE1E9480
++g_f_res_sfx__p_resource_nn	F77E87FA-7F21-4603-A232-954B5CFE91CF
++g_f_res_sfx__p_resource_pa_in	A781365A-46DD-4963-8B9B-74511F956425
++g_f_res_sfx__p_resource_pl	5B077A19-0607-4116-9F93-488B39B5A026
++g_f_res_sfx__p_resource_pt	A6F6D02F-A7FE-413E-BADB-ED0E5FA7FD14
++g_f_res_sfx__p_resource_pt_br	3B46E093-8768-4103-B587-7BF1D4D58FFD
++g_f_res_sfx__p_resource_ru	E28D10AC-3E60-44CB-B97C-A73D45B56A5D
++g_f_res_sfx__p_resource_rw	74F8F64E-27DE-4168-AE42-9E2C60FD8FFA
++g_f_res_sfx__p_resource_sk	4E249B29-9642-479F-867D-03A576A27344
++g_f_res_sfx__p_resource_sl	15E64A19-B8E9-4352-9F0F-508CD47B49F4
++g_f_res_sfx__p_resource_sv	DF92957D-D1B6-4BC5-96BE-2C1E13D3736D
++g_f_res_sfx__p_resource_ta_in	2BC24F55-87F7-46BD-A7B8-172587573D23
++g_f_res_sfx__p_resource_tr	1A6981D8-4CED-4AD7-BBD2-BA48A0D9F6E5
++g_f_res_sfx__p_resource_vi	BFBBCBD1-1C8C-4A29-A297-F7F05DAC2231
++g_f_res_sfx__p_resource_xh	4306338F-D3D4-45C3-8DCC-756B31F36671
++g_f_res_sfx__p_resource_zh_cn	944DE162-8FA6-44AB-8708-8645444828B0
++g_f_res_sfx__p_resource_zh_tw	2CA6AE88-41EB-49AA-A585-88155A254EA8
++g_f_res_sfx__p_resource_zu	4D0127FA-EFEE-46C7-9CCF-1A77E8890C69
++g_f_res_sm__p_resource_af	94C000FB-19DB-4A77-B53E-3BE8F56D0E25
++g_f_res_sm__p_resource_ar	65760402-020C-42AD-97F8-324A89A6CDFC
++g_f_res_sm__p_resource_be_by	273F6C74-29D7-49EA-B610-05BF5A3C43B3
++g_f_res_sm__p_resource_bg	D46D33AB-BA57-4B78-A194-D7A9807F5FB2
++g_f_res_sm__p_resource_bn_in	F7F5E1F6-ED5F-446C-87C3-B0279045B0F4
++g_f_res_sm__p_resource_br	8F997D18-FAB7-47A2-A2A0-672CA2D2104A
++g_f_res_sm__p_resource_ca	B9143A1B-8A72-4041-A199-B5EDA22F3331
++g_f_res_sm__p_resource_cs	B6308B2D-A80C-4ED0-A76B-B6477488CAF7
++g_f_res_sm__p_resource_cy	F571A279-31A0-4282-88CC-A12C3FC6B40A
++g_f_res_sm__p_resource_da	07158EF2-D6B3-4069-BFCD-A0296EC7AEC2
++g_f_res_sm__p_resource_de	C77CDAEA-1FDE-4DC1-857F-7608BC905003
++g_f_res_sm__p_resource_el	58256F53-C30B-489B-8F38-9768ED58D3CC
++g_f_res_sm__p_resource_en_gb	63A6A019-22C0-4074-9A9C-232C7DA5A618
++g_f_res_sm__p_resource_en_us	87EB1A39-3CFA-4100-8119-227E3A2728FD
++g_f_res_sm__p_resource_es	950A1838-1C0A-4C85-B8FB-0DA9FD9DE2C8
++g_f_res_sm__p_resource_et	00ED7A12-0DA0-48F3-9177-B7DF36EF2CFA
++g_f_res_sm__p_resource_fi	3D380B37-0432-498B-9C15-8C1902243570
++g_f_res_sm__p_resource_fr	E792DE5A-C0CB-4F59-87BF-001E714F73B2
++g_f_res_sm__p_resource_gu_in	BF0EAD86-FEB9-475F-87E8-4130BBFCA156
++g_f_res_sm__p_resource_he	189A63F1-20AF-4C2C-99E1-B1BFC170C4DF
++g_f_res_sm__p_resource_hi_in	6C1244A0-7662-441D-92A6-DF122FCDF4BB
++g_f_res_sm__p_resource_hr	CBF959A2-1497-482B-A4D9-87AF8BCBB780
++g_f_res_sm__p_resource_hu	0E6E78C6-B618-48A4-BD90-54EB266E1662
++g_f_res_sm__p_resource_it	B916CBA8-E2B8-4AE1-B4DE-51268B90F488
++g_f_res_sm__p_resource_ja	A30A41EA-B88D-437A-B59B-9A3966139AF5
++g_f_res_sm__p_resource_km	9740E368-6AC0-462A-A063-8ED69B75A41C
++g_f_res_sm__p_resource_ko	0DD900D4-3421-4B80-8248-3CBA7BC3425D
++g_f_res_sm__p_resource_lt	E8E75BFC-8397-4466-8A78-221637197D45
++g_f_res_sm__p_resource_lv	8D76FFFC-E1C5-42C5-A4EC-BA65A517F923
++g_f_res_sm__p_resource_mk	488D6857-6091-458C-8DC3-06ABCAAB994E
++g_f_res_sm__p_resource_mr_in	0B64198A-AAAD-4BEF-9EC7-C6672592B971
++g_f_res_sm__p_resource_nb	7E051850-0864-4A5A-B8EF-99E620E29AC7
++g_f_res_sm__p_resource_nl	FE5884CC-C9E1-4412-92C3-6743FEBED52F
++g_f_res_sm__p_resource_nn	7FB590FA-A323-4CA1-9110-FE239F122A8A
++g_f_res_sm__p_resource_pa_in	220D7D0D-173C-4256-AA7A-6FA2E860B58B
++g_f_res_sm__p_resource_pl	90D77E07-74F6-41BC-9422-CAF27FC6AFBA
++g_f_res_sm__p_resource_pt	4D762104-4432-4BDD-B120-64763FB41A05
++g_f_res_sm__p_resource_pt_br	3171D686-92A8-497B-AAB8-D48B0C2BAE47
++g_f_res_sm__p_resource_ru	6F4FD626-CFC4-49B1-81E0-10C3366C3A50
++g_f_res_sm__p_resource_rw	FFB849DD-F474-4F5A-B65E-C02DA764569D
++g_f_res_sm__p_resource_sk	ABB31B4E-7243-4A1E-A2D2-1902367937FE
++g_f_res_sm__p_resource_sl	5A6D45E2-9571-45A6-8FA6-BE25694D84EE
++g_f_res_sm__p_resource_sv	BDCA6EA5-8D70-4B77-8AE0-63B29D910020
++g_f_res_sm__p_resource_ta_in	0546F8C9-575A-44AB-A093-D00B0CFD56CF
++g_f_res_sm__p_resource_tr	5A16896E-71CF-4495-91FB-DB568363D47B
++g_f_res_sm__p_resource_vi	7B6C6D36-559A-45A6-81DF-CA454D75C274
++g_f_res_sm__p_resource_xh	6804F5E4-1559-4513-AC5E-FD7FF356D9D6
++g_f_res_sm__p_resource_zh_cn	1DA21F4E-BC2A-4867-9AFB-A66001B3FBC4
++g_f_res_sm__p_resource_zh_tw	D11EBEEC-ED9D-4F57-91EF-502B4412A82E
++g_f_res_sm__p_resource_zu	1F3F9111-C9FE-491C-B018-B92E11A1C5B4
++g_f_res_stt__p_resource_af	4B68CAB2-9F95-457A-AD17-460824547EE6
++g_f_res_stt__p_resource_ar	935E5A7C-A62E-442D-B146-42119F7D6DDB
++g_f_res_stt__p_resource_be_by	2441F3E8-42EE-41DB-A195-07EA813A7663
++g_f_res_stt__p_resource_bg	0BBF2230-9935-4D62-A3BE-97EFAD95E9B4
++g_f_res_stt__p_resource_bn_in	120921ED-6FF3-4F72-986D-70BB78769329
++g_f_res_stt__p_resource_br	3E48D1F3-A031-4BBB-A6A3-C29C6C1F50B0
++g_f_res_stt__p_resource_ca	F064681B-E51F-4E61-8E16-AC7FCBD22FB0
++g_f_res_stt__p_resource_cs	F4BD73EB-5D33-40DD-BBC9-1B9FB63C06FB
++g_f_res_stt__p_resource_cy	D14E727F-B8F0-4097-A0BE-AE8F73498E8B
++g_f_res_stt__p_resource_da	4090AFF9-01E5-419B-841F-1AD5BD8BF9D3
++g_f_res_stt__p_resource_de	3B7FD602-2C23-451A-B6C4-D954FF5E7ACF
++g_f_res_stt__p_resource_el	40BDB69E-384A-4506-9C69-0508AC50FA9C
++g_f_res_stt__p_resource_en_gb	C991E15A-AEFA-4467-B9B6-2A97433024F9
++g_f_res_stt__p_resource_en_us	099BD9EF-C3DB-4A51-B27E-5A1D7BC1780F
++g_f_res_stt__p_resource_es	4DFB63F4-EB3F-4198-9376-F1E73DF50ECD
++g_f_res_stt__p_resource_et	7DF97A95-E0ED-4E10-93E1-863D0663A218
++g_f_res_stt__p_resource_fi	87694B07-0B59-465C-AE5C-C7A1223B9031
++g_f_res_stt__p_resource_fr	41262549-DEE2-47C1-8C11-B52EB0E4AD90
++g_f_res_stt__p_resource_gu_in	1B24E41D-5C0C-4189-8148-F15BE7726031
++g_f_res_stt__p_resource_he	DC945966-7AAF-4AFD-974E-45406919B014
++g_f_res_stt__p_resource_hi_in	C4E046F7-4F1D-4C45-A72B-4BAC34297515
++g_f_res_stt__p_resource_hr	45F08F7E-C2BF-4343-82E8-A345165E59DB
++g_f_res_stt__p_resource_hu	46E992CA-C782-4645-922D-7433E8E4EE8C
++g_f_res_stt__p_resource_it	3A15B7FA-40C5-443C-BC6D-9C1636EAB35E
++g_f_res_stt__p_resource_ja	B2AAF096-784B-42C7-9168-A4A3CF81C020
++g_f_res_stt__p_resource_km	F86C8CD7-0E78-478F-AF70-4238F1C7E5E7
++g_f_res_stt__p_resource_ko	780287D7-606F-4DB5-8E04-2A9B98C8BD87
++g_f_res_stt__p_resource_lt	AF63EAD8-C3DC-4196-AF7F-499BD6E91D4C
++g_f_res_stt__p_resource_lv	255A093F-8B9B-4A2E-9F2E-1E196DEE3747
++g_f_res_stt__p_resource_mk	0BB8EBB5-9626-4F09-854B-CB18573FD0C8
++g_f_res_stt__p_resource_mr_in	44BAA8D9-AD3D-4775-9967-58834A2F80B4
++g_f_res_stt__p_resource_nb	D16BB93B-F3A3-4FFB-9925-DE37FE879EC4
++g_f_res_stt__p_resource_nl	F50C6D26-F746-41D0-AFD7-4993C00B3654
++g_f_res_stt__p_resource_nn	3EEB311C-16F1-4290-98F2-46D5BC0EB96A
++g_f_res_stt__p_resource_pa_in	8F6377D9-6E29-4FEE-B271-5E402456C6B9
++g_f_res_stt__p_resource_pl	A3946E4E-CC44-4A59-BAA2-59BDBC857928
++g_f_res_stt__p_resource_pt	57993D5F-1450-403C-866C-B1659D5866F8
++g_f_res_stt__p_resource_pt_br	8A3FF33D-D85D-4078-9A16-3D09D76337EB
++g_f_res_stt__p_resource_ru	176FBA07-54CE-49A3-87D1-2002B8F4131E
++g_f_res_stt__p_resource_rw	0B8C89DD-6C7A-4D04-A371-5C3CA7646B70
++g_f_res_stt__p_resource_sk	7A5C5DF7-2864-4F35-BDB6-70A08805357E
++g_f_res_stt__p_resource_sl	F9F011CF-E4F9-43C5-B9F8-F98E79429EC9
++g_f_res_stt__p_resource_sv	1D6AE723-7299-43D0-A4CF-3531DA8FAB0F
++g_f_res_stt__p_resource_ta_in	3C141296-E3BF-4F79-8369-AC6544D0AF96
++g_f_res_stt__p_resource_tr	4D946CB1-2E50-41F6-A054-B99FC9420841
++g_f_res_stt__p_resource_vi	5F10E4AF-D77B-4C4B-BE8B-4CB06C874447
++g_f_res_stt__p_resource_xh	0EF6473F-F6A5-474C-A192-E9DE7A7DBF8E
++g_f_res_stt__p_resource_zh_cn	E0530749-85AD-48A7-9CD8-959DDC23E75E
++g_f_res_stt__p_resource_zh_tw	CE10C31B-6CD6-4877-BB72-3BFCB18C70D4
++g_f_res_stt__p_resource_zu	B28446FB-C507-4DA0-96CB-864F83EAE966
++g_f_res_svs__p_resource_af	815E307C-1A2C-4569-83BE-31D4B70789A4
++g_f_res_svs__p_resource_ar	9DFE4622-69D8-4415-97CE-961B0423789C
++g_f_res_svs__p_resource_be_by	AF63E7B7-DEBC-4071-ACE2-271A2E84B716
++g_f_res_svs__p_resource_bg	E9247939-4B1C-4E9F-B13B-6DC600BCE159
++g_f_res_svs__p_resource_bn_in	EFC80FCC-4743-4AFA-95E9-877DB46B9A4E
++g_f_res_svs__p_resource_br	38AB1403-DE86-4A67-B075-C2F8D30C84BB
++g_f_res_svs__p_resource_ca	20F316C9-CA94-4FAB-A2C4-B6E64C40E91D
++g_f_res_svs__p_resource_cs	9F147FF7-AE47-4B78-A7DA-41EE5137ACF6
++g_f_res_svs__p_resource_cy	DD67E857-DC81-42C4-A7CB-EEE3730909EA
++g_f_res_svs__p_resource_da	5A256AFA-48F3-43D1-B75B-767FC1CCC454
++g_f_res_svs__p_resource_de	EF5A4BA9-DC8F-4061-9EE6-6C7302E89833
++g_f_res_svs__p_resource_el	DB3B9B86-5E1A-4B53-BA86-8A3788B24918
++g_f_res_svs__p_resource_en_gb	DC3A475F-AE1A-4359-88FF-4F20645E5ADD
++g_f_res_svs__p_resource_en_us	D741DB4F-69A0-41EE-B6C6-1FD91729517E
++g_f_res_svs__p_resource_es	4D3C051F-AD23-4831-BE7E-B6C279618A29
++g_f_res_svs__p_resource_et	1BF1B402-9A0B-4B86-97B3-09F8F5711C1E
++g_f_res_svs__p_resource_fi	FBF66EC5-9E5E-4ED5-943D-E1804C106356
++g_f_res_svs__p_resource_fr	43205068-7433-44AB-93FE-CD5687186B58
++g_f_res_svs__p_resource_gu_in	30BBFD74-1F0E-4131-9742-E2CB3821525A
++g_f_res_svs__p_resource_he	85E54F5D-6C03-4C49-8C86-20C9C11DDF72
++g_f_res_svs__p_resource_hi_in	6CD874AA-2F0C-44C8-B01B-DBFB5EB9DEF1
++g_f_res_svs__p_resource_hr	401A0087-F83A-43B1-85AC-0D3AB7F1B2A5
++g_f_res_svs__p_resource_hu	092747A3-1ECA-41E0-9AB6-822D69A388A2
++g_f_res_svs__p_resource_it	4356E4D3-03B0-4ECC-A223-8E6643384601
++g_f_res_svs__p_resource_ja	41C1DA1F-B130-4D2E-9967-0D10A372778E
++g_f_res_svs__p_resource_km	401A578E-8197-4B55-833F-1A6A577B2B5C
++g_f_res_svs__p_resource_ko	7C9207E7-3E53-47BF-87C1-76F5E29543D1
++g_f_res_svs__p_resource_lt	AA0701D9-551D-40EA-A5FD-23DD18D89503
++g_f_res_svs__p_resource_lv	2E2BAADC-78F1-42D8-B8FC-6DCE05CB2765
++g_f_res_svs__p_resource_mk	D450D31B-1B10-46BB-BD98-B9C9026A1FF9
++g_f_res_svs__p_resource_mr_in	611412C7-1EA7-4A5D-B75F-2F0D8BF743EA
++g_f_res_svs__p_resource_nb	B800425C-18E7-4E7D-8BA1-E66C4D541751
++g_f_res_svs__p_resource_nl	C059A5BC-2634-47B6-AD3C-BB1DD9EF9A03
++g_f_res_svs__p_resource_nn	E8B0528F-5DF3-4ED7-9995-2F95867710D2
++g_f_res_svs__p_resource_pa_in	F10AC132-D835-4048-96AF-B217A45EC3CA
++g_f_res_svs__p_resource_pl	FEC961EA-AD32-466B-824A-EFC3BEEA6C6A
++g_f_res_svs__p_resource_pt	47DF974B-440F-448A-B25E-FC2CFEF28DA1
++g_f_res_svs__p_resource_pt_br	08A39835-D61D-447B-9F24-ED79FFD02DE2
++g_f_res_svs__p_resource_ru	670254A0-2E99-4A2B-BB9C-A7140ED46C09
++g_f_res_svs__p_resource_rw	A255921A-9F52-4CF4-97D0-64E76D6F094B
++g_f_res_svs__p_resource_sk	5CBDCE9D-B77C-4072-89B3-0FC0836DD906
++g_f_res_svs__p_resource_sl	C1D897CD-92E6-4EF2-9FFA-006A74739587
++g_f_res_svs__p_resource_sv	F9777626-BFAA-4918-9167-48C492BC1E63
++g_f_res_svs__p_resource_ta_in	C96BF5D2-0620-4F7C-9671-38477C610B7A
++g_f_res_svs__p_resource_tr	599CC233-FF98-4C76-8B71-85C8790594D7
++g_f_res_svs__p_resource_vi	72B7F461-3D9C-45A7-A3F3-2CFC1FF48AB1
++g_f_res_svs__p_resource_xh	943FFF03-1E09-41F3-822D-D6CA7BDB8CD0
++g_f_res_svs__p_resource_zh_cn	4E3B4310-B936-41F8-BD3E-C67F3499CACF
++g_f_res_svs__p_resource_zh_tw	51F63187-0E2B-419B-865C-F29F1028B0B3
++g_f_res_svs__p_resource_zu	6C0BD73A-054B-4C1E-8BD4-7B5D928A151E
++g_f_res_svt__p_resource_af	835587F7-71F2-407D-876B-8584820AF2B0
++g_f_res_svt__p_resource_ar	4E36D347-5332-416D-87E8-59C577215819
++g_f_res_svt__p_resource_be_by	519EF934-3276-42B5-B6B2-85A3F8684C29
++g_f_res_svt__p_resource_bg	4F64AEE5-FAD3-4FA7-93A9-14C9DEA37F1C
++g_f_res_svt__p_resource_bn_in	641B9006-B20D-4B49-8B96-63B97ADEF58F
++g_f_res_svt__p_resource_br	1780BFCE-7108-4CA8-93AD-20590EDB9DDC
++g_f_res_svt__p_resource_ca	217C7C9D-0048-4116-9DE0-3F2348113447
++g_f_res_svt__p_resource_cs	AFFFBCC7-05B1-4C58-A356-A9EAE5D7BD7A
++g_f_res_svt__p_resource_cy	DE85D1D6-F1BC-4D0C-B4A3-0931055FCE46
++g_f_res_svt__p_resource_da	F46407B5-C400-423C-B858-C15FDF0E510F
++g_f_res_svt__p_resource_de	FB658610-04DA-4CFC-BA45-AAACDE1D1B45
++g_f_res_svt__p_resource_el	DC92AF66-7C0D-48B9-9F1C-9B892CF95F7C
++g_f_res_svt__p_resource_en_gb	117D506C-100D-40FF-84DB-2D79BDC8D98F
++g_f_res_svt__p_resource_en_us	2820DEFA-AF35-4593-AFA4-E7A59EBE5DA7
++g_f_res_svt__p_resource_es	6D197252-6D3C-4E5D-8E22-2AD05342CB37
++g_f_res_svt__p_resource_et	8D9EFDBF-6CD8-4149-BABE-8438C3CB9023
++g_f_res_svt__p_resource_fi	25025DC5-1FE7-412B-8655-2DA67DE3E375
++g_f_res_svt__p_resource_fr	56F7A2FC-8B74-4616-9A27-DA302A01056A
++g_f_res_svt__p_resource_gu_in	ED894E4A-E162-4B29-9E26-DA0D95DC847D
++g_f_res_svt__p_resource_he	CB03A893-B6AD-4537-B28C-59270D2CD546
++g_f_res_svt__p_resource_hi_in	8A1B49B3-10CB-47A1-9E34-C4D9993C526F
++g_f_res_svt__p_resource_hr	B75BA00D-6CF8-4BE8-927B-608F989C380C
++g_f_res_svt__p_resource_hu	EC7FC179-2B9A-4890-A528-C3C089A9874E
++g_f_res_svt__p_resource_it	7BA8255B-BA8B-4FD7-80FA-F587D2CE443C
++g_f_res_svt__p_resource_ja	B55FE8BD-77B3-4324-BA5C-D0C000FAFD12
++g_f_res_svt__p_resource_km	57C6A414-576C-4B7B-B096-C15254F9AD13
++g_f_res_svt__p_resource_ko	6739C235-0602-4AC4-8EB4-582CE4EB2FA2
++g_f_res_svt__p_resource_lt	EF8FDE09-0525-4656-8364-190901B90C5D
++g_f_res_svt__p_resource_lv	C26AF8F1-0282-4AE0-A938-E1E2C02393B7
++g_f_res_svt__p_resource_mk	4A0F1366-9389-4177-8FA9-FD5200432850
++g_f_res_svt__p_resource_mr_in	2D898354-17B8-438D-A52E-29B49B8FDA33
++g_f_res_svt__p_resource_nb	0E3A2A77-30FC-4297-9D10-9BE07B8A2B51
++g_f_res_svt__p_resource_nl	FF72EAB1-64D2-4F53-9CB7-97EC7ABE50CB
++g_f_res_svt__p_resource_nn	75DF14D3-FC34-43EF-867A-F1D6EC5C07FA
++g_f_res_svt__p_resource_pa_in	A8867918-EA52-405D-BFB0-84792BB3F31C
++g_f_res_svt__p_resource_pl	FE0307C2-2915-4735-A234-BF4E6BA99C32
++g_f_res_svt__p_resource_pt	6CC7352D-C7BE-4C01-AEF1-B1EE6E51E61A
++g_f_res_svt__p_resource_pt_br	B6599E5E-22C9-41E4-B168-49966A3E3E3A
++g_f_res_svt__p_resource_ru	E6E38509-614D-440F-AB6B-0802998C8487
++g_f_res_svt__p_resource_rw	93BC02E4-FF6F-4DBF-AA55-410E8EEFA272
++g_f_res_svt__p_resource_sk	A60BAA2E-6C22-40CC-8871-ED393717D335
++g_f_res_svt__p_resource_sl	0DF5E03F-1E92-478F-BC90-62B996144EEF
++g_f_res_svt__p_resource_sv	3E72AE6C-B31E-4E53-8B70-B81B69158F01
++g_f_res_svt__p_resource_ta_in	55B992FC-4E7E-471D-9232-D5E5241EA301
++g_f_res_svt__p_resource_tr	F7AFE84B-24A1-4EFB-A119-7AC66B9D5B9C
++g_f_res_svt__p_resource_vi	C07A9984-9D35-46F0-83B1-2E7E155F9A11
++g_f_res_svt__p_resource_xh	5AAF24D4-EC69-49B2-BBC8-9EB0965F616F
++g_f_res_svt__p_resource_zh_cn	7C2717C4-0129-4828-A5D2-68516EC4F948
++g_f_res_svt__p_resource_zh_tw	525C07DA-1704-44B4-B981-388C9445BA38
++g_f_res_svt__p_resource_zu	B5B58386-BCE3-401C-B0FC-51EF1C9C69A5
++g_f_res_svx__p_resource_af	B6884CB8-A6E1-459A-A9D9-CCCFA93F4D82
++g_f_res_svx__p_resource_ar	AAC42505-6AB2-4AD3-AF36-93DDFB7B351D
++g_f_res_svx__p_resource_be_by	A83A7026-E18D-4BD3-A806-92F942D35930
++g_f_res_svx__p_resource_bg	C1F024E5-22A7-48DD-8095-72FF51B45363
++g_f_res_svx__p_resource_bn_in	58307B76-3266-440E-A095-D1870CAC32D3
++g_f_res_svx__p_resource_br	F94CF285-6BDE-4B8A-A4FD-D61D5A953B17
++g_f_res_svx__p_resource_ca	29526528-87CD-4A68-BFC2-C5F167A6DA84
++g_f_res_svx__p_resource_cs	D308D60C-4354-4BE2-A479-90CE90EE2A5C
++g_f_res_svx__p_resource_cy	57113C1E-3673-402F-9181-EB76C5C4459E
++g_f_res_svx__p_resource_da	151FDB40-0714-4CDD-A7DB-A643B90209F9
++g_f_res_svx__p_resource_de	E9D5D5A9-7220-412E-8393-ED9411406A16
++g_f_res_svx__p_resource_el	8EBC704F-2FAE-486E-A6AB-7EE41DCC6BEA
++g_f_res_svx__p_resource_en_gb	2110814D-2DB5-4187-9635-344D14F9993F
++g_f_res_svx__p_resource_en_us	7C1575FA-5FEC-4997-9CB6-994F3C6673CF
++g_f_res_svx__p_resource_es	ED6816FB-FF17-4963-8381-7D13B0BAE1E1
++g_f_res_svx__p_resource_et	7D9FAED6-835D-4CA0-B1FE-F2BEA59CC81F
++g_f_res_svx__p_resource_fi	C1E06BE1-C049-4643-A746-2E349B895835
++g_f_res_svx__p_resource_fr	014693B4-E03F-4959-BAE8-47929DB3330D
++g_f_res_svx__p_resource_gu_in	2F9D9F1F-37AD-4664-84EF-C3C591487701
++g_f_res_svx__p_resource_he	1D719B18-FBAB-40CB-9331-3D8AA4099C9F
++g_f_res_svx__p_resource_hi_in	155B0DE1-E129-4A2C-A537-D913449F37FA
++g_f_res_svx__p_resource_hr	49CED4C1-DBC5-449C-9261-517E8687C8E3
++g_f_res_svx__p_resource_hu	311CBB52-3764-4B52-93DF-55BBA1E2BAAC
++g_f_res_svx__p_resource_it	3E571A4A-E6CF-4B94-ABB1-19A453C961B5
++g_f_res_svx__p_resource_ja	3B4937EA-1C75-421E-BB06-5724C9AD0522
++g_f_res_svx__p_resource_km	357C323B-775A-410A-B65E-56B16BD4F56C
++g_f_res_svx__p_resource_ko	DD8F4B55-B13D-41C3-811E-B927D7723676
++g_f_res_svx__p_resource_lt	E0C340E5-F245-44E4-BC92-220FD96F613B
++g_f_res_svx__p_resource_lv	1E5673B5-98BA-4276-BF2E-20732DE22850
++g_f_res_svx__p_resource_mk	74D2CA09-805C-4815-837C-1465995CACAB
++g_f_res_svx__p_resource_mr_in	7172DE1A-7827-478B-8C17-4E11E172C144
++g_f_res_svx__p_resource_nb	0AA0DDD5-7F68-429D-9308-4F7B7AF7F7EF
++g_f_res_svx__p_resource_nl	BD12EE1C-4C33-494F-A7C5-A11905D2FF75
++g_f_res_svx__p_resource_nn	A632FFD1-DF66-46F5-9969-1BBD08368840
++g_f_res_svx__p_resource_pa_in	A3A5EF98-861E-4293-AFFC-825E4507F285
++g_f_res_svx__p_resource_pl	121DDAD5-D559-4720-AB0E-47501D6E6E6A
++g_f_res_svx__p_resource_pt	0A43220B-007D-4816-9EE8-113C63E51BF8
++g_f_res_svx__p_resource_pt_br	0DE52C6A-399D-490B-93D3-2AE5585A1D05
++g_f_res_svx__p_resource_ru	7DC7EAA5-CE08-459A-BA7B-762C3338D00A
++g_f_res_svx__p_resource_rw	B4EDA7FE-9575-417E-8F73-46DD25A27679
++g_f_res_svx__p_resource_sk	377CD12A-B2ED-424A-AFF8-332A442045D0
++g_f_res_svx__p_resource_sl	7C6E9BF7-E89C-4096-BB78-74E68047C06F
++g_f_res_svx__p_resource_sv	2FD9F98B-E82D-4F15-A807-05281937895E
++g_f_res_svx__p_resource_ta_in	38E42E81-3375-4A03-8F19-0DEA9FA929E8
++g_f_res_svx__p_resource_tr	F8A851EF-A596-4936-8757-F67E455D4EFB
++g_f_res_svx__p_resource_vi	10091AA8-4F6B-4A89-AE6E-6E6B82735FB4
++g_f_res_svx__p_resource_xh	83CADAA7-21B1-4592-96BB-D42F86C44048
++g_f_res_svx__p_resource_zh_cn	9424076A-EEF8-407F-B198-CE7A1CA608AB
++g_f_res_svx__p_resource_zh_tw	FD48AD34-9402-4CAA-8437-26378D78204D
++g_f_res_svx__p_resource_zu	573B8984-82F5-4B79-8DE1-EF922F68BA51
++g_f_res_sw__p_resource_af	83954B0A-7615-49ED-935A-A982DAA98662
++g_f_res_sw__p_resource_ar	2DE3AE09-85A3-450B-90BE-2312441946B5
++g_f_res_sw__p_resource_be_by	662B863F-BA3B-47CF-B76E-2A586113707A
++g_f_res_sw__p_resource_bg	941A7751-1119-4C6F-8763-9E59FFBD0996
++g_f_res_sw__p_resource_bn_in	DB9CA9DE-7CC5-4A9F-B2A9-D5A94C694531
++g_f_res_sw__p_resource_br	B219AFDA-AB0B-49D0-AF32-3102F03EA208
++g_f_res_sw__p_resource_ca	44DD24C0-49CE-4D2B-A7F4-2D882F5DF016
++g_f_res_sw__p_resource_cs	97B5D746-01A9-4D28-8C17-B2DF806160C8
++g_f_res_sw__p_resource_cy	5CE5F430-3D0A-4F5A-9087-9EFE3EC8A651
++g_f_res_sw__p_resource_da	EA4BA32A-FB55-49D9-BBFC-05AE1DE36E3E
++g_f_res_sw__p_resource_de	C60A21EE-C202-4968-8204-414265B6D918
++g_f_res_sw__p_resource_el	78D9AA1E-6AD7-4091-A0AC-808CB6186496
++g_f_res_sw__p_resource_en_gb	3C1F266D-4503-4579-A71B-9A3B14A92C6B
++g_f_res_sw__p_resource_en_us	03967893-E2A5-4760-9E0F-7F3DCBF2180D
++g_f_res_sw__p_resource_es	CA006FD4-873D-4D56-A540-94F904E2C38F
++g_f_res_sw__p_resource_et	5EF37085-A631-41C0-8962-84664C76C844
++g_f_res_sw__p_resource_fi	16208114-2705-42F0-A051-DF8EBEE84A34
++g_f_res_sw__p_resource_fr	082AC4B0-248D-4FE3-B09B-089A29B8E348
++g_f_res_sw__p_resource_gu_in	7D12BD1D-9AFF-41B5-A4EB-D3149C304EFD
++g_f_res_sw__p_resource_he	58C1092D-44C6-4E16-878B-92B4D67D4D09
++g_f_res_sw__p_resource_hi_in	B9F7F403-E1E3-49EB-B8C0-1A53A0E8C239
++g_f_res_sw__p_resource_hr	36C46199-6611-4718-A364-AC2B3D4FD439
++g_f_res_sw__p_resource_hu	11075F92-B284-403F-932D-8549F533B2E3
++g_f_res_sw__p_resource_it	3359698C-E907-486E-A62F-F4C10B1455F1
++g_f_res_sw__p_resource_ja	982C95CC-1B5A-408D-B564-D11C0A06B5C9
++g_f_res_sw__p_resource_km	B184342A-63C2-4C84-B5D8-7A136FA4EE2D
++g_f_res_sw__p_resource_ko	34349D1B-3DCB-42A0-B0BC-B054E510801B
++g_f_res_sw__p_resource_lt	D71583CA-BFD8-4CE2-9A6D-F5C20965AD5B
++g_f_res_sw__p_resource_lv	FE7DA534-F070-4B3F-A1B5-A165B9C23239
++g_f_res_sw__p_resource_mk	FCCB1029-EC89-49B1-BE83-D396949F28D2
++g_f_res_sw__p_resource_mr_in	102095AC-D575-4500-87AC-209054B8BBE8
++g_f_res_sw__p_resource_nb	851752E4-BF74-4545-B86E-F3D063385B4C
++g_f_res_sw__p_resource_nl	41138621-BFB2-4AC8-96B0-5B9CE76DFCB8
++g_f_res_sw__p_resource_nn	DC430C03-859C-42B7-B1C7-6C122E9881CD
++g_f_res_sw__p_resource_pa_in	B287A1F1-D2A8-45F1-A786-EDBF0321A9DC
++g_f_res_sw__p_resource_pl	6E516E02-9A41-4A58-8E18-11B6FB0943E9
++g_f_res_sw__p_resource_pt	1A7AE7EC-ECAD-40D3-A79F-C246F4FD4324
++g_f_res_sw__p_resource_pt_br	3F2DEA2D-8B79-408A-8050-CDB655AC7DF3
++g_f_res_sw__p_resource_ru	07A29B08-F8B8-473A-9F03-C90B5F2BB12B
++g_f_res_sw__p_resource_rw	4D9B6FE6-05D3-4C50-ADFB-6D2A04574F45
++g_f_res_sw__p_resource_sk	304ADB5A-AAA9-4D94-AD64-23325480B362
++g_f_res_sw__p_resource_sl	7E367539-4F74-4CFD-80A2-812100676BC5
++g_f_res_sw__p_resource_sv	6F22BAAC-BADF-4141-9465-F0E7979D53BC
++g_f_res_sw__p_resource_ta_in	11D3209F-43D5-4477-B5E8-0B850A480C4E
++g_f_res_sw__p_resource_tr	B11F609A-9CDF-4660-893A-1A0B133FE39D
++g_f_res_sw__p_resource_vi	79BA33E8-42C3-4DAE-A143-AE163C7D7511
++g_f_res_sw__p_resource_xh	7467FC71-3A45-4060-BBD9-678A3D62A61D
++g_f_res_sw__p_resource_zh_cn	54C68CA3-BA03-4242-9E6F-209A8BED9E3C
++g_f_res_sw__p_resource_zh_tw	511F6DFB-926D-4A67-A7DC-CA0636AC445C
++g_f_res_sw__p_resource_zu	2B7CD8EF-532A-4D70-995D-3BFB85EDBA45
++g_f_res_t602filter__p_resource_af	94FDBF12-5B85-49F7-BB20-D257678DC5AE
++g_f_res_t602filter__p_resource_ar	0A7A0D14-2350-49A1-8B72-423C4FA2B818
++g_f_res_t602filter__p_resource_be_by	302E8615-1272-4C0F-A8A0-D217232930B5
++g_f_res_t602filter__p_resource_bg	8E34C55E-3386-4053-83F9-6ACDCDB77E2D
++g_f_res_t602filter__p_resource_bn_in	F7E62D9D-06B3-413F-9F1C-69A770EC8C10
++g_f_res_t602filter__p_resource_br	DB46F556-3EA8-4432-8A8B-C3D440BA7765
++g_f_res_t602filter__p_resource_ca	4E1E0F35-D435-4B66-AAFE-A7595809A2A7
++g_f_res_t602filter__p_resource_cs	E0CE5D8E-2090-491F-8839-B77039750ACC
++g_f_res_t602filter__p_resource_cy	217915BC-BFBC-4882-9810-84DD62478C1B
++g_f_res_t602filter__p_resource_da	96465380-43C3-4FAE-AE43-39EFE1379760
++g_f_res_t602filter__p_resource_de	A3F2991E-A6AB-4810-AE1F-1E8C1A253449
++g_f_res_t602filter__p_resource_el	7D6878F6-A7D9-42B0-A193-C9DA700B2643
++g_f_res_t602filter__p_resource_en_gb	B04E5A68-DE2B-4330-B748-F1AD0A85636E
++g_f_res_t602filter__p_resource_en_us	5857AB50-9DFA-4B4A-9F2E-1BE5D1A5281E
++g_f_res_t602filter__p_resource_es	69346BD0-6F10-4BE8-92A6-9B0529FC0B18
++g_f_res_t602filter__p_resource_et	555BBA9B-AA9B-4868-95A2-9275F8DCB63B
++g_f_res_t602filter__p_resource_fi	48EBC9C5-A395-4492-9C68-95C10BD2F266
++g_f_res_t602filter__p_resource_fr	927F4BA8-2468-43C9-BDB2-2682BB65DB1E
++g_f_res_t602filter__p_resource_gu_in	7291F807-160C-41C1-8F37-0DF4D4267C9F
++g_f_res_t602filter__p_resource_he	72583203-A6E4-4F73-A6DE-A1C1C195A132
++g_f_res_t602filter__p_resource_hi_in	20710276-B1EC-4573-A735-75CD78A62164
++g_f_res_t602filter__p_resource_hr	041D7B99-253A-4D7B-8113-065C364CC42E
++g_f_res_t602filter__p_resource_hu	6834C541-794D-4DCB-BF05-0D2AEF41CDF5
++g_f_res_t602filter__p_resource_it	486D471F-4100-43D3-B559-5F2494994640
++g_f_res_t602filter__p_resource_ja	69193B8F-B00B-4305-8135-859F306324B2
++g_f_res_t602filter__p_resource_km	EF343E36-097D-4D55-93D3-F631B728DD6C
++g_f_res_t602filter__p_resource_ko	34A74D16-A694-4A31-815F-1D62D60384EA
++g_f_res_t602filter__p_resource_lt	E387EB1E-CC29-4D87-AAD4-0366C9FBB19C
++g_f_res_t602filter__p_resource_lv	3153446B-8E6D-444D-8D8F-F2B26CD58C78
++g_f_res_t602filter__p_resource_mk	1DF83B7B-693A-488E-B574-443C1A587370
++g_f_res_t602filter__p_resource_mr_in	D1A02000-F1DC-498F-B699-54818F78EF97
++g_f_res_t602filter__p_resource_nb	4B3D995F-D07A-4096-9F83-368008E79285
++g_f_res_t602filter__p_resource_nl	0047DEAC-E162-4960-BE83-C8279140F138
++g_f_res_t602filter__p_resource_nn	2ECED0F0-87B3-4905-B704-CE80D7E80039
++g_f_res_t602filter__p_resource_pa_in	87DD88ED-2258-4C53-AE80-0C9FD8ECA56E
++g_f_res_t602filter__p_resource_pl	13231524-6C11-4709-A6F4-BAA402330B69
++g_f_res_t602filter__p_resource_pt	12A687EF-23A6-4B6A-B7BC-46C35B556D56
++g_f_res_t602filter__p_resource_pt_br	BC715375-3849-4ED8-B727-93DB4CAA9DDE
++g_f_res_t602filter__p_resource_ru	55390C43-6732-4C28-9AAF-8FE874AF466D
++g_f_res_t602filter__p_resource_rw	2A53CDE2-EBD1-4661-8E76-DB4D3C77E07A
++g_f_res_t602filter__p_resource_sk	14E712D1-17CF-4549-9107-0E4F4993F309
++g_f_res_t602filter__p_resource_sl	85155073-9710-42B3-B399-7C8B63AE0D5D
++g_f_res_t602filter__p_resource_sv	87C62591-0E31-468D-AF17-A352756F194F
++g_f_res_t602filter__p_resource_ta_in	9BB4EED8-44A7-4BF2-BDD7-555BE3B2B614
++g_f_res_t602filter__p_resource_tr	D397C505-6960-47FF-B533-549391BC61C1
++g_f_res_t602filter__p_resource_vi	67FAC6AA-011E-4FA8-BFD2-F907EBFBA49C
++g_f_res_t602filter__p_resource_xh	8665BFCC-96C5-4FCA-9738-D50B781938EC
++g_f_res_t602filter__p_resource_zh_cn	09230C6F-1DF3-4E45-89AE-33384B47C28E
++g_f_res_t602filter__p_resource_zh_tw	F779C86D-F2DD-491B-BB1F-4DB2B5EE22B9
++g_f_res_t602filter__p_resource_zu	200ECAE9-4822-471B-AFBD-24AF6BEB25AE
++g_f_res_textconversiondlgs__p_resource_af	8ED026B4-0F90-4CEE-A5E8-58209B1449F0
++g_f_res_textconversiondlgs__p_resource_ar	9A426BED-57AE-47F5-871B-C093C15BAD1B
++g_f_res_textconversiondlgs__p_resource_be_by	2ED30983-9DC6-43AE-AA78-958A135AF786
++g_f_res_textconversiondlgs__p_resource_bg	02A0E482-E1C1-4642-8ADD-B0098CCC1BF3
++g_f_res_textconversiondlgs__p_resource_bn_in	6AF542C9-6995-4F38-91AD-6E6570964620
++g_f_res_textconversiondlgs__p_resource_br	DA5E2942-209C-4215-97DF-93AAC7991BC5
++g_f_res_textconversiondlgs__p_resource_ca	B6C9852B-22D0-425E-BDD0-8522AE66C1E3
++g_f_res_textconversiondlgs__p_resource_cs	64C20566-76C1-4880-AD87-83B3483906E9
++g_f_res_textconversiondlgs__p_resource_cy	27FE96B6-31AB-4890-919A-AE6A52B224D6
++g_f_res_textconversiondlgs__p_resource_da	58B4B8B5-5D5C-4576-A617-AE79E2B03130
++g_f_res_textconversiondlgs__p_resource_de	FFF7BC44-5FBA-4805-8827-A3F0B368F241
++g_f_res_textconversiondlgs__p_resource_el	1BD277F4-D665-4F8F-801A-0D81B5AC674E
++g_f_res_textconversiondlgs__p_resource_en_gb	B8615CF7-CBB7-4114-BB6C-72B7617BF8A2
++g_f_res_textconversiondlgs__p_resource_en_us	DD22E66D-7B6F-458C-B9D0-542B4FED159F
++g_f_res_textconversiondlgs__p_resource_es	F1CE7E48-9FC8-4232-BD80-0F1105B3C808
++g_f_res_textconversiondlgs__p_resource_et	C50EFA8D-1C48-40F1-AF5F-479FA8F036DA
++g_f_res_textconversiondlgs__p_resource_fi	43CA5EF8-1BDF-45CE-B23C-68A6A39F2C6A
++g_f_res_textconversiondlgs__p_resource_fr	604D81CC-CBE9-4E98-BD6D-7E8E42EF60D6
++g_f_res_textconversiondlgs__p_resource_gu_in	50A22C8D-4F51-4EF1-837F-4FBE842CD334
++g_f_res_textconversiondlgs__p_resource_he	7CFF6FFB-1116-4223-B150-27EE9F187B14
++g_f_res_textconversiondlgs__p_resource_hi_in	80686FB9-8830-4F9A-A149-FFCEC0DBBA7F
++g_f_res_textconversiondlgs__p_resource_hr	0CAB30B7-A712-4C0C-A316-F6FF5539B6B0
++g_f_res_textconversiondlgs__p_resource_hu	0721C80C-DC41-4963-914F-172B2946A76D
++g_f_res_textconversiondlgs__p_resource_it	210A0AAC-7857-471E-9C14-610E03A15CD1
++g_f_res_textconversiondlgs__p_resource_ja	EB073D2B-F8B8-4726-92BA-473F701B5712
++g_f_res_textconversiondlgs__p_resource_km	DA506F2A-5D27-43AC-923A-44CCD340594E
++g_f_res_textconversiondlgs__p_resource_ko	A22813B2-06D0-4362-8457-C3DBDD9C85C8
++g_f_res_textconversiondlgs__p_resource_lt	5FDE530D-BF57-43CA-A292-0BA687810AC1
++g_f_res_textconversiondlgs__p_resource_lv	C5475177-DE68-44CC-994F-5EDECDF878F0
++g_f_res_textconversiondlgs__p_resource_mk	DADB0823-7722-4FB0-9850-54DBF8D313A3
++g_f_res_textconversiondlgs__p_resource_mr_in	CC979A11-D86B-45B1-9856-49D093850CD9
++g_f_res_textconversiondlgs__p_resource_nb	3D31A654-6553-4C90-A531-5E145AB5EA01
++g_f_res_textconversiondlgs__p_resource_nl	08BD0858-24C4-459D-9536-9B2F443ED288
++g_f_res_textconversiondlgs__p_resource_nn	EEDCE5EB-4BA3-49C9-94B5-428DE5F5A2DD
++g_f_res_textconversiondlgs__p_resource_pa_in	2B5566E9-B44E-408F-A215-7D0B7F6CE1F8
++g_f_res_textconversiondlgs__p_resource_pl	2C83F5B3-F9C2-41BE-8E1F-276C8429FF53
++g_f_res_textconversiondlgs__p_resource_pt	C481F343-DA3A-412B-976D-F90D810FC3B0
++g_f_res_textconversiondlgs__p_resource_pt_br	FA799C20-D294-4433-9208-1675C3B4CC88
++g_f_res_textconversiondlgs__p_resource_ru	09CACF31-31E0-440C-AC06-3AE5258E0426
++g_f_res_textconversiondlgs__p_resource_rw	8A1764D7-4D75-4FC7-BE59-F4E63E797D31
++g_f_res_textconversiondlgs__p_resource_sk	31650848-F86E-45B9-81AB-8B44D92B6686
++g_f_res_textconversiondlgs__p_resource_sl	EA36EEC1-DF90-4974-8BDF-FD51CE2BBD02
++g_f_res_textconversiondlgs__p_resource_sv	768950F3-6DA5-416D-8905-9715E237CEC4
++g_f_res_textconversiondlgs__p_resource_ta_in	93EDD372-2FCD-4F2B-B124-449F22745652
++g_f_res_textconversiondlgs__p_resource_tr	D417E362-F8E3-4544-AA6F-DF0CCDE7A3F8
++g_f_res_textconversiondlgs__p_resource_vi	E955B811-ABB0-405D-AD0C-AAA32EC3A7A4
++g_f_res_textconversiondlgs__p_resource_xh	CB17CFED-F7A6-4DF8-AE5B-EB192757D76A
++g_f_res_textconversiondlgs__p_resource_zh_cn	0F057603-8F5E-4DB9-91BC-D2CD612E71A8
++g_f_res_textconversiondlgs__p_resource_zh_tw	88DE2188-6384-4280-9845-FDE9DB2C8A35
++g_f_res_textconversiondlgs__p_resource_zu	0F22ED46-25C3-4E10-918C-67C3C85E4EFD
++g_f_res_tfu__p_resource_af	2D297E8A-6C78-4B67-8C5B-7F99808001BE
++g_f_res_tfu__p_resource_ar	D9E3DB87-3F59-460E-93F2-4F6DA296704A
++g_f_res_tfu__p_resource_be_by	961EF41E-9306-4545-A680-AA72F0CC6096
++g_f_res_tfu__p_resource_bg	9C5EEA80-6C72-44AA-8A15-6B4F20FC670C
++g_f_res_tfu__p_resource_bn_in	D5E52F38-0122-488E-9A5C-DB480E4FBDF0
++g_f_res_tfu__p_resource_br	80ED5BD5-8D8B-412B-A516-D6D57309C257
++g_f_res_tfu__p_resource_ca	61AA23CC-3B7F-449A-A25F-5459928BCD9F
++g_f_res_tfu__p_resource_cs	23DB8F23-FBA8-4449-BBC9-290E1A91A694
++g_f_res_tfu__p_resource_cy	8267BE39-7842-4147-9912-E3E58D5D28BE
++g_f_res_tfu__p_resource_da	551293B4-0727-4F4E-9BDD-DB7B9D76D67F
++g_f_res_tfu__p_resource_de	F22070F5-942B-43D7-A232-C599F00A4E17
++g_f_res_tfu__p_resource_el	F17CCEFC-FC23-4EA2-ADD3-2927B113A39D
++g_f_res_tfu__p_resource_en_gb	CB9E363E-9EA3-469D-AF4F-A98487B72E30
++g_f_res_tfu__p_resource_en_us	ED108886-D862-4043-A23D-0B83D36E6184
++g_f_res_tfu__p_resource_es	2DEE7CC8-04C3-466A-B90A-6D3910B96A4A
++g_f_res_tfu__p_resource_et	640BFBE1-1B69-489D-BB77-29579DDE7467
++g_f_res_tfu__p_resource_fi	EAEE9D66-00BD-43D3-BB32-565D95B60F72
++g_f_res_tfu__p_resource_fr	7064D247-CB07-44F8-8763-E35D51992DE7
++g_f_res_tfu__p_resource_gu_in	578B4784-EA43-4A75-9B21-24D0BD6230BE
++g_f_res_tfu__p_resource_he	22588B7F-8F33-4AF1-9D59-A2AC64DF54C4
++g_f_res_tfu__p_resource_hi_in	04024C17-7013-409E-AEB4-462B7E5CA7A2
++g_f_res_tfu__p_resource_hr	B59E69EF-E152-4789-9D25-6697BE21C314
++g_f_res_tfu__p_resource_hu	D09AE231-54AE-42A8-9D9F-89054777D979
++g_f_res_tfu__p_resource_it	B305F0E6-6828-4195-86B9-DC0B256302D4
++g_f_res_tfu__p_resource_ja	1432B2E2-CCAD-40EC-85DB-C56EBD8FE8B6
++g_f_res_tfu__p_resource_km	29AB3268-6E23-4B15-BF69-677A93727A05
++g_f_res_tfu__p_resource_ko	6DF7DCEE-401D-4169-BF41-98B176E3ADBA
++g_f_res_tfu__p_resource_lt	BC38285F-D10F-4F40-B2EB-CC405D4CCF88
++g_f_res_tfu__p_resource_lv	37682041-82BA-426E-84E2-774481B726D0
++g_f_res_tfu__p_resource_mk	0F1EBFB3-8FEA-428C-80D6-1C4C3FC6467E
++g_f_res_tfu__p_resource_mr_in	F286B59E-C1A5-48A8-AC32-4D29D94287DC
++g_f_res_tfu__p_resource_nb	9EABAB88-4692-47BD-BA13-D341F4BCC41D
++g_f_res_tfu__p_resource_nl	D372EC8E-7667-4A05-ADD8-14EC7448406C
++g_f_res_tfu__p_resource_nn	3B62825C-E018-46A4-BCF4-8EB32987D80F
++g_f_res_tfu__p_resource_pa_in	B7FE479D-BEBF-4147-97ED-4312B833D58A
++g_f_res_tfu__p_resource_pl	F7DD8FEB-9869-4F61-A4E3-483C2CE18BD6
++g_f_res_tfu__p_resource_pt	7B3C9EAA-EE5C-401D-A43C-2584F0C846E9
++g_f_res_tfu__p_resource_pt_br	0C28AE05-B3CC-40D6-9CA6-94C33C7D0772
++g_f_res_tfu__p_resource_ru	5A886F66-3DF1-474B-A465-8BAFC6DA707F
++g_f_res_tfu__p_resource_rw	DFEB2B1B-28EB-46E3-B855-318D74945CD2
++g_f_res_tfu__p_resource_sk	A7CD1F7A-1B5A-484D-9CF4-DDEB3FCB5CBE
++g_f_res_tfu__p_resource_sl	69EBFADB-6469-466F-A79B-D2FF812EE427
++g_f_res_tfu__p_resource_sv	3FE235CC-FB96-46F1-BD7B-C51EBB8B26F4
++g_f_res_tfu__p_resource_ta_in	09962659-013A-4C74-9067-ABBB86665168
++g_f_res_tfu__p_resource_tr	8087D1B1-4A05-4DC0-97A9-AE4CB6BE3CB7
++g_f_res_tfu__p_resource_vi	CB29000F-6192-43B9-8EDD-60ACEE0F72E5
++g_f_res_tfu__p_resource_xh	97B7CC21-C49C-44C9-ADD2-3B14CA248D2F
++g_f_res_tfu__p_resource_zh_cn	02A89DF2-974F-426D-924D-AD42A92B8080
++g_f_res_tfu__p_resource_zh_tw	5D8B358C-D55C-4EA1-9C32-F396B7042710
++g_f_res_tfu__p_resource_zu	37A55541-F35C-433F-A708-ABE599E87634
++g_f_res_tk__p_resource_af	23149BE6-AEB8-4AE0-A43A-7B90E6C755F4
++g_f_res_tk__p_resource_ar	D1FFFF80-20C7-449A-9CBE-80225A654FA0
++g_f_res_tk__p_resource_be_by	1F72C486-C8B0-4094-8615-613675051615
++g_f_res_tk__p_resource_bg	A8F5DF5C-BAEE-4EB8-9245-04A222CDC4F7
++g_f_res_tk__p_resource_bn_in	5C59F7BB-F88A-46EA-B2F3-FC54D0885A7E
++g_f_res_tk__p_resource_br	685693AD-DD76-4332-985E-CDAE1BB64FC2
++g_f_res_tk__p_resource_ca	6FEE2EA2-B6C5-4DA6-B81F-EC7AB0D607DE
++g_f_res_tk__p_resource_cs	22FE9B3D-B312-4658-A891-E3D042DD9E6D
++g_f_res_tk__p_resource_cy	C6398C65-BB94-41F5-815F-BB118EDC8B00
++g_f_res_tk__p_resource_da	423D7486-90E4-4982-88FB-643D347C49D5
++g_f_res_tk__p_resource_de	DF65147F-F00D-43ED-AABB-425671FEEB3A
++g_f_res_tk__p_resource_el	444BA10F-FF3D-4DBA-9D27-B6C206D5FC28
++g_f_res_tk__p_resource_en_gb	60C949EA-6D8A-4D7F-951B-076DB3284B22
++g_f_res_tk__p_resource_en_us	A4EF5183-5F54-4D3A-8028-D51EFE6E6C57
++g_f_res_tk__p_resource_es	0F7EF6CD-9A4D-4B36-9742-AE0DFD853057
++g_f_res_tk__p_resource_et	9349D26B-5E9F-46F3-BEB7-8F78473804E4
++g_f_res_tk__p_resource_fi	AE276D1A-D64D-4724-9016-4E4505BAF88A
++g_f_res_tk__p_resource_fr	82F1F521-BE41-42EE-8A9C-6A0253C2CBFC
++g_f_res_tk__p_resource_gu_in	2F240D92-B365-48FE-85B0-2EDF4F646ECD
++g_f_res_tk__p_resource_he	A2CC81FF-AFBF-4E80-9C98-0B650C16C0B6
++g_f_res_tk__p_resource_hi_in	DCD5055D-E200-4E43-AA6E-CE86B4B8D1CF
++g_f_res_tk__p_resource_hr	D1DCD025-5813-449E-B4B4-823BEF620FE5
++g_f_res_tk__p_resource_hu	9EB36960-A7F7-4918-BF37-F311B10220C7
++g_f_res_tk__p_resource_it	1B2E214C-89C5-41DF-A4AC-062174A4A6E2
++g_f_res_tk__p_resource_ja	95AF6C2A-98B2-4E7D-A36D-AD08ACFD442B
++g_f_res_tk__p_resource_km	4403CD9B-4481-47DA-BB72-08A31017E541
++g_f_res_tk__p_resource_ko	9EBE8141-3AB8-48E2-92E0-2EEB5178B418
++g_f_res_tk__p_resource_lt	3963936A-6BAF-40CA-80ED-63803AC825D1
++g_f_res_tk__p_resource_lv	4AD00B18-F181-45F4-9B10-781B48A75275
++g_f_res_tk__p_resource_mk	99B1E784-C7C4-462B-BB0E-2841E76DEA27
++g_f_res_tk__p_resource_mr_in	D837A8BE-8690-4CBE-9D16-D68A60D41913
++g_f_res_tk__p_resource_nb	3AB13977-D378-4D0B-BC3F-D6A3DB430C24
++g_f_res_tk__p_resource_nl	6107C3A4-E441-408A-9ED0-B0B8985C4375
++g_f_res_tk__p_resource_nn	D846222F-46C9-4279-AFD6-37D61068CBC3
++g_f_res_tk__p_resource_pa_in	59070946-5B9D-4F46-8CC8-C0C594034473
++g_f_res_tk__p_resource_pl	859B8B3B-B41E-4AD0-8BB3-BE093634EFF3
++g_f_res_tk__p_resource_pt	68E759E1-EB3E-416F-AA0E-527EFFBFF0F5
++g_f_res_tk__p_resource_pt_br	CFED6508-AEA6-4ACC-B9B8-E13F366E81A2
++g_f_res_tk__p_resource_ru	DCC02657-7DDA-49CD-86A5-70190FD7BCE4
++g_f_res_tk__p_resource_rw	6A110485-132C-4DFF-9CDC-27A002AE156D
++g_f_res_tk__p_resource_sk	4CF41BF3-026D-4D24-8508-7112163FB64D
++g_f_res_tk__p_resource_sl	CB0AD84D-BF3F-4F09-8D5B-3A8E381CB7D6
++g_f_res_tk__p_resource_sv	5E739DEA-CE03-4629-8CAE-A3954BC1DAA5
++g_f_res_tk__p_resource_ta_in	8375A7E8-9D33-495A-92AB-EEB3C0A5F5E1
++g_f_res_tk__p_resource_tr	EF93478F-91F7-4F2C-943F-4D83C2A0190B
++g_f_res_tk__p_resource_vi	138C0CA3-46AC-44A0-BB84-77283F5AECE9
++g_f_res_tk__p_resource_xh	B42FF642-5AEC-4A98-AB56-23A60247DD29
++g_f_res_tk__p_resource_zh_cn	0EC2CEA0-ED61-41BB-B721-533CF2035A6D
++g_f_res_tk__p_resource_zh_tw	9A39AE3F-FA10-43EC-8E8E-A00B6EE970B4
++g_f_res_tk__p_resource_zu	D46CAE01-1AC8-4A2F-94E4-5A5DF976CC89
++g_f_res_tpl__p_resource_af	0FD37614-E96A-422E-9AD2-B3F00A946171
++g_f_res_tpl__p_resource_ar	9620620D-8B7E-4628-8695-DC3E73EE7C29
++g_f_res_tpl__p_resource_be_by	672A379D-0DBA-4638-93C1-0C45A1A15D61
++g_f_res_tpl__p_resource_bg	3A53DBBE-C6DC-4167-B378-072AD7C83F75
++g_f_res_tpl__p_resource_bn_in	44C3F902-1BB9-4FA1-BAA5-7A143A41AC51
++g_f_res_tpl__p_resource_br	8C238178-129D-4C1C-9203-A590C5AFCEAC
++g_f_res_tpl__p_resource_ca	698E7F0A-BBB0-4A2A-873B-B36FC3E6CEBF
++g_f_res_tpl__p_resource_cs	E1378123-6DBF-4F41-BD11-EB335FE2B7BF
++g_f_res_tpl__p_resource_cy	F7609F63-F274-4CE3-BDB7-2A461024D3D7
++g_f_res_tpl__p_resource_da	ABBD95BC-A20D-41A7-BF4E-E547FE12B07E
++g_f_res_tpl__p_resource_de	BC1DE4AD-C519-4697-A6AD-45D9370075CE
++g_f_res_tpl__p_resource_el	E1421229-D1C5-4F9B-8DEC-27D0B25B35BD
++g_f_res_tpl__p_resource_en_gb	6165CCB3-1B09-4561-9007-D02E3AAA0550
++g_f_res_tpl__p_resource_en_us	EA8C13A0-C115-47F5-9ECE-88F9B596AE0F
++g_f_res_tpl__p_resource_es	B2BF64D9-4B7D-4408-A0EF-5DABEE5ADFEF
++g_f_res_tpl__p_resource_et	58DEB84B-8FCE-4025-B553-0197BDBF41E1
++g_f_res_tpl__p_resource_fi	82A63815-BCC6-4ADD-9AE9-EB35E19DE8D8
++g_f_res_tpl__p_resource_fr	E8E1FE67-F9D5-4A31-BA47-9911198A6B89
++g_f_res_tpl__p_resource_gu_in	861B574E-952C-4BBD-B55E-8CCE0C647D10
++g_f_res_tpl__p_resource_he	4D038B6B-99E4-4094-BE25-2A588C21FD37
++g_f_res_tpl__p_resource_hi_in	73FA4379-D1C5-4477-9BF8-7FE05FD6EE51
++g_f_res_tpl__p_resource_hr	EF751D66-0500-4965-A78F-78D8B741237A
++g_f_res_tpl__p_resource_hu	0A4D6B8C-BACE-4934-9666-7236E6A6F858
++g_f_res_tpl__p_resource_it	19CCF86C-6D7E-467D-B837-04D2C7B2B07E
++g_f_res_tpl__p_resource_ja	6EA887AF-88A2-42BA-A1F8-D13B479E3A48
++g_f_res_tpl__p_resource_km	BD0138CB-B284-4575-B8EA-7398FD100B4C
++g_f_res_tpl__p_resource_ko	5647A5C1-1BB6-42DE-97A6-CA21F81FCB33
++g_f_res_tpl__p_resource_lt	385E3081-A920-4D53-A813-4AD2D70BE862
++g_f_res_tpl__p_resource_lv	142A17D6-654B-4CE4-996C-4A9D567176E4
++g_f_res_tpl__p_resource_mk	C57850C9-2357-44E4-8865-B544336BE331
++g_f_res_tpl__p_resource_mr_in	01656DDD-4DAD-408D-AD3F-FA4FFC5248A7
++g_f_res_tpl__p_resource_nb	32E53C98-5603-4898-9094-547F3CEDD977
++g_f_res_tpl__p_resource_nl	C2326E86-C02D-4682-96A5-F7AF07662136
++g_f_res_tpl__p_resource_nn	9193E7D3-AEDE-4681-B82B-43A65BAB23C8
++g_f_res_tpl__p_resource_pa_in	199BEEAF-DC3B-4E94-A8A9-B03A2FBBB37C
++g_f_res_tpl__p_resource_pl	FAE96EA8-9FF3-4C83-B304-2A180FE12810
++g_f_res_tpl__p_resource_pt	A70FE169-2BA7-4576-AD0E-88AE918DCD2C
++g_f_res_tpl__p_resource_pt_br	BE54556F-02CC-4DA9-A53A-B4806D279A77
++g_f_res_tpl__p_resource_ru	5373BCE1-737B-48EF-B264-C0DB1F70E329
++g_f_res_tpl__p_resource_rw	94BDB972-155F-40C1-8973-C20B67451E29
++g_f_res_tpl__p_resource_sk	1D680038-18A3-4991-B1AB-89D61289BE3A
++g_f_res_tpl__p_resource_sl	D9945358-DBCC-418C-8F01-6C010337DDCA
++g_f_res_tpl__p_resource_sv	1C856766-6530-497B-989C-D80004F1B957
++g_f_res_tpl__p_resource_ta_in	55688D78-5050-4423-9DFB-27EAB4D3FBA6
++g_f_res_tpl__p_resource_tr	9C2BB0E5-EEE1-475B-9B7D-4B2BD744F3E0
++g_f_res_tpl__p_resource_vi	C61E24CD-E416-42A2-BC44-5B71A0924182
++g_f_res_tpl__p_resource_xh	BDA3D8B9-729C-4486-89BA-9019296AA4C1
++g_f_res_tpl__p_resource_zh_cn	A0D13A0F-EE43-4111-96F8-A9462ECE3E09
++g_f_res_tpl__p_resource_zh_tw	F891F756-A475-4C61-A502-8C4EDE9C8E2C
++g_f_res_tpl__p_resource_zu	6F0545D3-B65A-4FF7-88C2-15F087A95C9E
++g_f_res_updchk__p_resource_af	AC9B4D94-5163-4929-9C3B-A8C19585E301
++g_f_res_updchk__p_resource_ar	A95C4FE3-E4C1-4915-9A36-F433A15E5BD6
++g_f_res_updchk__p_resource_be_by	30C5B5F4-36BD-4818-AD3E-6162C6C86120
++g_f_res_updchk__p_resource_bg	14674AE8-389E-469E-AF8E-1FAA947FF4F2
++g_f_res_updchk__p_resource_bn_in	3CE32EC3-E525-49D9-A6E6-E30CF217C6EE
++g_f_res_updchk__p_resource_br	9FBE0BF6-6813-4DE4-876B-848E9245E15B
++g_f_res_updchk__p_resource_ca	DF9348B7-17EB-4C06-8144-3F947DC3CCC9
++g_f_res_updchk__p_resource_cs	EB07F24B-3BCF-4540-95E0-BF542DD862C9
++g_f_res_updchk__p_resource_cy	A87D3362-D7D0-469F-86E3-C8C06E949950
++g_f_res_updchk__p_resource_da	1A5E30C5-415E-4DBA-AA3E-A9389034FB4A
++g_f_res_updchk__p_resource_de	EC6DFD5B-68B0-401C-881B-E877E3B303AB
++g_f_res_updchk__p_resource_el	D4A7E6BC-1947-4BFE-9D21-A34B57E8C879
++g_f_res_updchk__p_resource_en_gb	6009D7F9-7ADC-4837-B365-4E6B69C39AD4
++g_f_res_updchk__p_resource_en_us	C24BC3B5-B72B-4743-82FA-1E704320188E
++g_f_res_updchk__p_resource_es	698EE17E-280F-4410-B6AD-CF1420B89FAD
++g_f_res_updchk__p_resource_et	A0B000D8-2B63-45BC-ADE7-0D5DBA312341
++g_f_res_updchk__p_resource_fi	FC176F9A-B805-4BC3-9519-BAA1AE3211E9
++g_f_res_updchk__p_resource_fr	DC420656-38D0-476D-A91D-6A6121585101
++g_f_res_updchk__p_resource_gu_in	AA8D5473-466B-4423-901D-35EA011D326F
++g_f_res_updchk__p_resource_he	DA7AA068-64E2-4ABE-9EB4-01F04CF78BF0
++g_f_res_updchk__p_resource_hi_in	9D7A6932-23FF-47E7-B3B3-13DDA396D0C6
++g_f_res_updchk__p_resource_hr	CA6B1AD4-B1C9-4FFB-86E3-095B21A84E83
++g_f_res_updchk__p_resource_hu	5B3F3554-0FEB-420B-87C6-FAA00F81F056
++g_f_res_updchk__p_resource_it	6A14DCB2-65C4-4125-BDB6-5EF529175626
++g_f_res_updchk__p_resource_ja	9C3F0648-482F-4327-A0F8-2C4E0521FCFD
++g_f_res_updchk__p_resource_km	8656B579-6013-497D-9E51-AAAE5B1B1E5D
++g_f_res_updchk__p_resource_ko	12CF9291-011F-4BC5-9389-5DE4BDEC3EF7
++g_f_res_updchk__p_resource_lt	61695667-0D13-41D7-8C19-49B63F9E64FD
++g_f_res_updchk__p_resource_lv	D997D270-9B96-446C-930E-956355D41ED9
++g_f_res_updchk__p_resource_mk	764B125D-EA64-4CF6-9BEF-E01901DDF562
++g_f_res_updchk__p_resource_mr_in	4652757C-5209-4CA0-9984-DD1BBD55FE85
++g_f_res_updchk__p_resource_nb	D47DE5B3-25F8-425E-B420-06AEBB0166F9
++g_f_res_updchk__p_resource_nl	F2CB82E2-954D-47EC-A793-B7C2B48EB19F
++g_f_res_updchk__p_resource_nn	AB5CE621-8647-4CC8-9358-E5F550376CED
++g_f_res_updchk__p_resource_pa_in	83471000-10D5-4A76-B7B2-A5777162E696
++g_f_res_updchk__p_resource_pl	C1BD4566-BCBE-4848-93FE-92DA85E4E78B
++g_f_res_updchk__p_resource_pt	D37A7D6D-F60F-496E-9AAE-C1B2B852CC33
++g_f_res_updchk__p_resource_pt_br	6A2F84E0-43DE-49E4-B640-FD64AF027DFD
++g_f_res_updchk__p_resource_ru	C404AF17-5204-48CF-A0AE-6DFD1D57F1B1
++g_f_res_updchk__p_resource_rw	B32192F4-0C91-4429-9D31-FC06A4DB05E9
++g_f_res_updchk__p_resource_sk	286021D6-FB00-44A9-819C-A78945C63401
++g_f_res_updchk__p_resource_sl	E0E8E300-ADAF-4075-A373-BC6CB766FFF1
++g_f_res_updchk__p_resource_sv	0C72997F-0BD5-43B3-B850-8FCE836BBE37
++g_f_res_updchk__p_resource_ta_in	F3C51431-B79B-4545-959B-E23C7F127AA8
++g_f_res_updchk__p_resource_tr	485F9110-741D-4666-A2BA-B67DF6F1831D
++g_f_res_updchk__p_resource_vi	39F9151C-B325-403B-AE39-8B23475E1095
++g_f_res_updchk__p_resource_xh	89825202-C950-4649-83D1-CB163235A1E0
++g_f_res_updchk__p_resource_zh_cn	89A42028-F080-47A6-A95D-95490E88FB40
++g_f_res_updchk__p_resource_zh_tw	0ABAE1CF-C79C-489C-8DC0-439759148C67
++g_f_res_updchk__p_resource_zu	7576E6FC-9249-4A97-A808-708AD3B0C3AC
++g_f_res_uui__p_resource_af	F7ECF329-A587-48AC-A521-98FED0002A41
++g_f_res_uui__p_resource_ar	F014B893-0AC3-44DD-96C8-C87ACC04D393
++g_f_res_uui__p_resource_be_by	5D827E4B-1F91-4976-A355-C4B7E381F059
++g_f_res_uui__p_resource_bg	5ED65788-A762-4B3F-B0BC-CA3B50EC0E78
++g_f_res_uui__p_resource_bn_in	26935EDE-C980-44DF-B831-B9DABA82695D
++g_f_res_uui__p_resource_br	BB7009BB-C351-4F91-BDBC-27879A9DCB7F
++g_f_res_uui__p_resource_ca	888452F9-90B4-48CE-A3B0-F197B6874A89
++g_f_res_uui__p_resource_cs	7E1FC91B-39D1-4474-9F75-02A337EEE413
++g_f_res_uui__p_resource_cy	563E0CB1-CEC2-41A5-AE49-6CDFA908D740
++g_f_res_uui__p_resource_da	2AEA897F-87CA-4C7B-BAFF-59D936E21FD8
++g_f_res_uui__p_resource_de	5BCD54B0-D162-4241-A66B-8187335AD133
++g_f_res_uui__p_resource_el	CE903F0C-DCB4-4E9D-A561-2E0FC2D58F26
++g_f_res_uui__p_resource_en_gb	1CC6D7A0-25D8-4CF8-9FB8-1F6BE1F550FA
++g_f_res_uui__p_resource_en_us	EB7A1B7C-514F-4862-BB6C-928EE0B15D34
++g_f_res_uui__p_resource_es	7DB7B13C-9619-4BA0-B2E4-C80D5D6DD238
++g_f_res_uui__p_resource_et	F01F1775-D0D9-4740-879B-25A214F62465
++g_f_res_uui__p_resource_fi	FD0DD13B-BD05-4EDA-AD12-FE7A6BEA6DB3
++g_f_res_uui__p_resource_fr	394B189D-6BC9-4659-96DF-879994494B6D
++g_f_res_uui__p_resource_gu_in	7908542D-AB9A-49C5-A909-E5EA141158EE
++g_f_res_uui__p_resource_he	0B1532DD-3B4A-4594-B16A-C1BC425A4A23
++g_f_res_uui__p_resource_hi_in	D3C8BFD6-8A8F-4C7A-8CE6-01EEB9DAB5CA
++g_f_res_uui__p_resource_hr	FD6DB8CE-D61E-4171-B30E-53871DAC8E66
++g_f_res_uui__p_resource_hu	DE67D97E-E984-4A8B-A520-42BAA7A4C1BB
++g_f_res_uui__p_resource_it	D40CBB13-5D37-4309-952C-052A325A8D19
++g_f_res_uui__p_resource_ja	0D833EF8-C2E3-4B3E-86C5-A5C7C81D8DD5
++g_f_res_uui__p_resource_km	9B361179-F6B2-40A5-8D96-3351568E0C49
++g_f_res_uui__p_resource_ko	09EB6992-5775-41B2-A447-6FA96319A0BB
++g_f_res_uui__p_resource_lt	7E009747-C7E3-476B-BF44-EAF293FFA258
++g_f_res_uui__p_resource_lv	B68DD92E-5351-4061-A384-E857FEEDAFFD
++g_f_res_uui__p_resource_mk	B2587CED-6BE6-4A83-9A36-45B0AC9EAA53
++g_f_res_uui__p_resource_mr_in	9E86345F-EE68-41B4-8BD3-6F845664463D
++g_f_res_uui__p_resource_nb	92E9305E-C5CA-4849-B6FE-5D7B04AFD8F8
++g_f_res_uui__p_resource_nl	1A0DCEC3-B619-454A-93C0-4C36B6BAF040
++g_f_res_uui__p_resource_nn	AE7930FD-111B-4B44-AEA4-3C9F92263BE4
++g_f_res_uui__p_resource_pa_in	7303B71C-62F4-4A61-BE56-525ADE77D04E
++g_f_res_uui__p_resource_pl	32FD1B27-A9E3-4500-8DF5-88DA1F7CED09
++g_f_res_uui__p_resource_pt	99F06B5B-4A5C-4CEE-9335-3BE45A686B53
++g_f_res_uui__p_resource_pt_br	9D5C5B11-5DCD-47C1-B4A2-1B71B10E8E03
++g_f_res_uui__p_resource_ru	02E72747-F96F-4240-8ED5-96BE747C99E9
++g_f_res_uui__p_resource_rw	18CBD829-8BA5-4D4E-AA33-BDC00ECB4410
++g_f_res_uui__p_resource_sk	8449191C-39A1-4D5A-813C-298AD42A36D3
++g_f_res_uui__p_resource_sl	98563EB3-3010-4608-A2D3-41947ABD3384
++g_f_res_uui__p_resource_sv	F66FDBEC-B73A-4500-BBF9-6EF49F31B1CA
++g_f_res_uui__p_resource_ta_in	E05DF6CD-B85F-463F-B821-EC0F3692C841
++g_f_res_uui__p_resource_tr	ADCA92A0-88BA-498B-8CF9-32F2CCC56AB3
++g_f_res_uui__p_resource_vi	FBCD4105-B72A-4286-B5A1-C577DD358F47
++g_f_res_uui__p_resource_xh	3AEA3E1B-DC2E-4599-A666-7AD3363107C7
++g_f_res_uui__p_resource_zh_cn	6B3BF711-D5D6-4D7A-AD9E-6DF3F577D007
++g_f_res_uui__p_resource_zh_tw	2C1CCD46-DD71-42AC-99CB-F8EB6C2BBE5D
++g_f_res_uui__p_resource_zu	816B5321-14D7-4568-9C3E-5ACEAFF14A95
++g_f_res_vcl__p_resource_af	57701AA7-E0B2-412C-8A2E-6630DF9BC440
++g_f_res_vcl__p_resource_ar	1B6C652C-0809-40D1-9A2A-1F231C2CE435
++g_f_res_vcl__p_resource_be_by	38C45F42-973C-448F-9571-6CC25AEB4E76
++g_f_res_vcl__p_resource_bg	E8C5C206-D511-494E-993C-67B45E05DC72
++g_f_res_vcl__p_resource_bn_in	8B59FE52-E85F-4764-A648-61EA2C07D359
++g_f_res_vcl__p_resource_br	BEB7F089-6671-4B68-837A-1034D415D462
++g_f_res_vcl__p_resource_ca	A839B5B6-AEF0-4A68-A10B-1DF6520CF645
++g_f_res_vcl__p_resource_cs	E8A43AF1-0550-4774-BE58-B135632F4C38
++g_f_res_vcl__p_resource_cy	B3858600-6784-4447-A206-C11AC4EF5822
++g_f_res_vcl__p_resource_da	3DA8CF73-8F41-40BD-AE36-287F2CF20072
++g_f_res_vcl__p_resource_de	328CE9EE-F790-46A4-AC44-F5B13C1C58FE
++g_f_res_vcl__p_resource_el	E0B65B09-F3CF-4B12-8423-612CE22F95E6
++g_f_res_vcl__p_resource_en_gb	99E75903-C501-4A55-8DF2-6226E27E9DF1
++g_f_res_vcl__p_resource_en_us	422C8C90-5AC6-45CE-AA52-474449E9D6DD
++g_f_res_vcl__p_resource_es	14778DF1-D35B-4E58-8B91-E3DCDCE8A465
++g_f_res_vcl__p_resource_et	450BB067-1EA8-48E5-9166-1F6ADAC8A8B2
++g_f_res_vcl__p_resource_fi	20089CBD-12B5-4714-BE3C-54A8A334AF21
++g_f_res_vcl__p_resource_fr	F259D984-466C-4B6A-BBAE-813DAB3FDEF2
++g_f_res_vcl__p_resource_gu_in	0AA26DC6-58E7-4E70-AF2E-29978AD1F726
++g_f_res_vcl__p_resource_he	040512A3-6146-4FF7-BCFD-A03F4EF3FF50
++g_f_res_vcl__p_resource_hi_in	5071AA74-D9CE-4365-8F18-1F815C35FFF4
++g_f_res_vcl__p_resource_hr	B1248DEF-8032-463F-9A9D-41BF84F52D01
++g_f_res_vcl__p_resource_hu	D7B7D024-E245-477C-BDB1-6363262705A6
++g_f_res_vcl__p_resource_it	F8E5243D-9A2E-4A87-909F-FA2F928A8965
++g_f_res_vcl__p_resource_ja	C25C4A6E-416A-400B-99F5-67329C02509C
++g_f_res_vcl__p_resource_km	B39ADAD4-04CF-4E10-8F0D-1F9E26AB574A
++g_f_res_vcl__p_resource_ko	8289B3BC-4760-4CE4-A989-61958E8EE281
++g_f_res_vcl__p_resource_lt	27F3E5A8-B37A-41FC-8D1A-24A8CDEC577B
++g_f_res_vcl__p_resource_lv	794459BD-731C-418A-B730-EF48783C6BC8
++g_f_res_vcl__p_resource_mk	244A9020-F565-46D4-97AB-753C2C15014D
++g_f_res_vcl__p_resource_mr_in	6B6D1D5F-4C5B-453D-9B16-0D11F65062F1
++g_f_res_vcl__p_resource_nb	D84548EA-1DED-4659-A017-E2C7B0933CFF
++g_f_res_vcl__p_resource_nl	15E1479F-3B4B-4CD1-AD93-C0C2063BCEA9
++g_f_res_vcl__p_resource_nn	98631E5D-9C46-4E66-A194-38973234065B
++g_f_res_vcl__p_resource_pa_in	88645DBB-9627-4A03-BA1E-385B5C2B7369
++g_f_res_vcl__p_resource_pl	67CF1B7A-4F9B-4AE7-B27D-326D52F1BE7B
++g_f_res_vcl__p_resource_pt	A8A34AD8-280A-412E-9D95-D11B4145B111
++g_f_res_vcl__p_resource_pt_br	C4BE1F7A-CD23-4F4D-89F1-B477D7A7827D
++g_f_res_vcl__p_resource_ru	3E1C5248-4525-4E55-B601-6508E3D5FD6C
++g_f_res_vcl__p_resource_rw	69EBF9E4-ACF2-4EA3-BF6D-46D5899FC477
++g_f_res_vcl__p_resource_sk	F6B335C0-BFCB-4A10-BAA7-D080F4423507
++g_f_res_vcl__p_resource_sl	7C1709AD-9D55-4A60-B7B3-A1B96CD0F935
++g_f_res_vcl__p_resource_sv	59F4D486-2C0C-44AF-BBE9-6F3790A32E5F
++g_f_res_vcl__p_resource_ta_in	04E25042-E7F7-4D0F-A97D-A728E92417E1
++g_f_res_vcl__p_resource_tr	D66394DF-5B67-4889-9776-49CBED123383
++g_f_res_vcl__p_resource_vi	B8AA1D32-1308-45D3-9DA8-E8ADC4EAED4C
++g_f_res_vcl__p_resource_xh	77E8014E-6C18-4828-93B7-F44D7B8C4F8D
++g_f_res_vcl__p_resource_zh_cn	E5F43379-BC31-4B20-804C-8F60B3FCBE83
++g_f_res_vcl__p_resource_zh_tw	82887C1C-C094-4074-AE8D-78B2B662B7E3
++g_f_res_vcl__p_resource_zu	5ABAD9DD-D574-4C4C-8415-1D1FD651383C
++g_f_res_wzi__p_resource_af	E3B46ACC-CBB4-4034-A491-C9AF8B7086EB
++g_f_res_wzi__p_resource_ar	711B231C-17C4-44F1-A33F-581E15191AD7
++g_f_res_wzi__p_resource_be_by	4E3DAE01-41F4-47F3-AEA5-CDC430AFD324
++g_f_res_wzi__p_resource_bg	67C0559A-FE88-42D0-BEF4-B4EAE9FA2BB5
++g_f_res_wzi__p_resource_bn_in	B8E61838-2484-4D22-9193-DAFF95388127
++g_f_res_wzi__p_resource_br	4814752D-9926-436A-B5FB-4B68C608FEC1
++g_f_res_wzi__p_resource_ca	5B8B6852-0990-41C3-A623-F6A401246BC6
++g_f_res_wzi__p_resource_cs	4655EB7B-ACFC-4B33-A350-E19911570845
++g_f_res_wzi__p_resource_cy	A686E80E-F3E2-4946-8451-294D929C22D3
++g_f_res_wzi__p_resource_da	2607579E-2B06-4A83-B516-B86C0EE3FA5A
++g_f_res_wzi__p_resource_de	15FCAC08-731A-4948-8649-628CA4F8230B
++g_f_res_wzi__p_resource_el	EE5CC04E-5D87-4295-8527-AE07E3F0103B
++g_f_res_wzi__p_resource_en_gb	5F650E0E-42DC-4A32-B014-C40D814247D7
++g_f_res_wzi__p_resource_en_us	19761BFB-91D0-400A-BB47-06039F40ACC4
++g_f_res_wzi__p_resource_es	B518FAAB-9058-4E62-9058-6C3FCE9AEED2
++g_f_res_wzi__p_resource_et	9CA824A4-930B-43DA-9A2A-29C1F4A90295
++g_f_res_wzi__p_resource_fi	24F07C5E-8CB4-4F16-BD16-E568DEEB35BB
++g_f_res_wzi__p_resource_fr	D547288B-1BD8-4577-9C7D-F95A9126ED99
++g_f_res_wzi__p_resource_gu_in	8079D7FF-114F-4F2B-B638-36D25F8FAF24
++g_f_res_wzi__p_resource_he	1695CAE7-1E2E-461C-991D-95F3DA811103
++g_f_res_wzi__p_resource_hi_in	54893AB3-6E4D-419D-AF9B-836FC04111A2
++g_f_res_wzi__p_resource_hr	848A90FC-13B6-45FA-B444-1F0139CB1DE4
++g_f_res_wzi__p_resource_hu	5737747C-4043-4BE3-A875-6B3AAA73F4D2
++g_f_res_wzi__p_resource_it	19C5ED7F-A73F-4B25-A701-4D18D658FCFA
++g_f_res_wzi__p_resource_ja	7AE654D1-C912-48FE-90D2-24FFEA0E0A1D
++g_f_res_wzi__p_resource_km	FEA3A97D-7372-4B11-8C5B-5E8B1258F509
++g_f_res_wzi__p_resource_ko	3F5F9565-B668-4D89-978C-37099969FD74
++g_f_res_wzi__p_resource_lt	4A8DC40D-2031-4A6A-B4DD-E13A697DB798
++g_f_res_wzi__p_resource_lv	1C610E68-2121-42FF-9DF8-A73A26E7BD39
++g_f_res_wzi__p_resource_mk	3AC48A1B-9B7F-4F1B-84D4-E20619BAFBE9
++g_f_res_wzi__p_resource_mr_in	BFB30371-201B-46CB-91CC-582D027125DD
++g_f_res_wzi__p_resource_nb	50A205E9-6BD7-40BF-90EB-4FDB5AB2B53C
++g_f_res_wzi__p_resource_nl	B5D25B42-4DB8-4A60-AA15-95A7241A76DA
++g_f_res_wzi__p_resource_nn	0AC7EA97-E830-4215-BE48-2060450E054F
++g_f_res_wzi__p_resource_pa_in	A4465692-0F82-4F8F-96F2-2EBADC77E438
++g_f_res_wzi__p_resource_pl	8907D9E2-94D5-42A1-8505-BC38751B7AA9
++g_f_res_wzi__p_resource_pt	30776DA0-9C30-4252-B2C1-F9CA6DFEFD8A
++g_f_res_wzi__p_resource_pt_br	EF117809-2A14-40F6-80B2-9F75AD5B1197
++g_f_res_wzi__p_resource_ru	6BBDB56A-2B1C-4A82-AB3B-F47630F4DB7F
++g_f_res_wzi__p_resource_rw	73F0EDF7-0DA0-402E-9320-0E60FD892B09
++g_f_res_wzi__p_resource_sk	7CB20570-0C03-4B04-A57D-8F77C3DC6776
++g_f_res_wzi__p_resource_sl	6EFB7A82-BA1C-4952-9767-90AD567D1047
++g_f_res_wzi__p_resource_sv	A6FAB470-BC72-4C40-B839-A97B373204E3
++g_f_res_wzi__p_resource_ta_in	26F15CB9-7B01-4568-B814-799E0D6AA4DF
++g_f_res_wzi__p_resource_tr	98619CAA-D82F-4ACD-BE9A-233A82B29D1A
++g_f_res_wzi__p_resource_vi	BA2ADC6D-8BEC-4E90-BECB-4D6E77C7B942
++g_f_res_wzi__p_resource_xh	C0F289A9-5147-4609-8948-8A8FAC64CB50
++g_f_res_wzi__p_resource_zh_cn	B4948468-4154-4226-AF4C-574EE9CDA342
++g_f_res_wzi__p_resource_zh_tw	AE3C68EB-B187-4AC0-AF9F-CA10401D4D17
++g_f_res_wzi__p_resource_zu	368F1758-1DC7-4278-88CB-1FEA56100CB7
++g_f_res_xmlsecurity__p_resource_af	526F5D26-EE48-4A09-B858-68E13091B534
++g_f_res_xmlsecurity__p_resource_ar	1A5DEAB5-67BE-4509-8576-99590CAC9948
++g_f_res_xmlsecurity__p_resource_be_by	89F47666-AC92-4B85-B525-E5F17D84E9AD
++g_f_res_xmlsecurity__p_resource_bg	95B45FF0-7A21-41E0-9F1E-D44189F4B873
++g_f_res_xmlsecurity__p_resource_bn_in	FF012E3A-036D-4E37-9236-ED373C7687F5
++g_f_res_xmlsecurity__p_resource_br	BCDBB3A7-7E4F-4E42-B283-8F9724645F7E
++g_f_res_xmlsecurity__p_resource_ca	97975B37-097B-49D2-A344-A4BB3576335A
++g_f_res_xmlsecurity__p_resource_cs	2BC9729E-9A04-4941-8BF5-4604EBFCA167
++g_f_res_xmlsecurity__p_resource_cy	DC181A25-A978-4794-AA9F-667B531EB34D
++g_f_res_xmlsecurity__p_resource_da	4C2CABAD-9540-4B97-8B86-8DA9B7AE79C3
++g_f_res_xmlsecurity__p_resource_de	CEA279BB-CE04-4AC2-81E4-A58C06D5CD35
++g_f_res_xmlsecurity__p_resource_el	11E737F6-8B88-46F6-BE10-D3BFD3AFBA5D
++g_f_res_xmlsecurity__p_resource_en_gb	1D3B9D3A-036A-4834-82FD-A4DEC84BBF28
++g_f_res_xmlsecurity__p_resource_en_us	E52D5CAC-4648-41BF-8FF4-9E3E0EB74389
++g_f_res_xmlsecurity__p_resource_es	9E911BE2-EFEF-4148-8B7B-3DE4FDF93F4E
++g_f_res_xmlsecurity__p_resource_et	0F554B66-8DC5-4834-99BB-3C8C31685ACC
++g_f_res_xmlsecurity__p_resource_fi	6861E2A5-665C-4763-8D90-AB78918B79A5
++g_f_res_xmlsecurity__p_resource_fr	49CEA747-CF0A-4984-8E32-D6F6275381F1
++g_f_res_xmlsecurity__p_resource_gu_in	C4971F7A-49DF-4E4E-822E-32932F4CD6E5
++g_f_res_xmlsecurity__p_resource_he	5595BD3D-53F5-4F4B-99D5-94A269B90D2C
++g_f_res_xmlsecurity__p_resource_hi_in	90139E80-CFBE-4A4B-BC61-514A026D5095
++g_f_res_xmlsecurity__p_resource_hr	65FD4025-D24A-47CE-892A-5859C86E07A0
++g_f_res_xmlsecurity__p_resource_hu	AE907FB6-725B-4C0B-B74D-DB41B619605A
++g_f_res_xmlsecurity__p_resource_it	DC2DAF25-3D9D-465A-A420-708C346BB5F1
++g_f_res_xmlsecurity__p_resource_ja	D7BC2EAC-02B6-449E-9A70-E0EA7CAE2B3E
++g_f_res_xmlsecurity__p_resource_km	C807B48F-C188-4CDA-80F5-6FB252ED9C99
++g_f_res_xmlsecurity__p_resource_ko	EFCD001B-04F4-414C-BF2C-1B46C9FB45A1
++g_f_res_xmlsecurity__p_resource_lt	5BEC6F7B-E627-4274-AF33-94389DAF2C76
++g_f_res_xmlsecurity__p_resource_lv	7ED568C8-8BF9-4405-B1EC-201045CE3A30
++g_f_res_xmlsecurity__p_resource_mk	D0541CA3-9479-4E5A-9657-E02B5DA4E944
++g_f_res_xmlsecurity__p_resource_mr_in	3030C5DD-30ED-449A-98E3-FD79CDBB7942
++g_f_res_xmlsecurity__p_resource_nb	8EF087D4-1F38-4236-B61B-0FFBDD7E04AE
++g_f_res_xmlsecurity__p_resource_nl	A89F918E-95EE-4CED-9895-5775B34B435B
++g_f_res_xmlsecurity__p_resource_nn	E82FC94E-1ECB-4707-8D20-592623D428A8
++g_f_res_xmlsecurity__p_resource_pa_in	C68C81EE-9B9E-44CD-A055-3BDDF245B314
++g_f_res_xmlsecurity__p_resource_pl	B8A38E97-9344-4013-B370-66A733FAA6EC
++g_f_res_xmlsecurity__p_resource_pt	43BFF406-EB64-440A-9D3B-F98490176D06
++g_f_res_xmlsecurity__p_resource_pt_br	9C5785CA-E4E0-4F98-8D30-F87EBF54D459
++g_f_res_xmlsecurity__p_resource_ru	38612791-C4EB-41F9-9F18-C474F5FC4B4F
++g_f_res_xmlsecurity__p_resource_rw	A1D6EB61-EAC0-44AB-AFC9-2B3A3B35A983
++g_f_res_xmlsecurity__p_resource_sk	1FDE3FDC-83A5-45A7-8596-FB89B2A654BD
++g_f_res_xmlsecurity__p_resource_sl	D5140B85-1665-4A4E-B6F0-B5333E4E294D
++g_f_res_xmlsecurity__p_resource_sv	B9A2244C-2B0B-47B5-A688-015B60A4E516
++g_f_res_xmlsecurity__p_resource_ta_in	0754F611-A782-4C22-8925-04D343357C75
++g_f_res_xmlsecurity__p_resource_tr	91976D46-DF93-4C9B-BF59-43E7326CB7B6
++g_f_res_xmlsecurity__p_resource_vi	4A7C6220-9EC9-471A-8FC6-64A4D1CAA8DF
++g_f_res_xmlsecurity__p_resource_xh	278D85C9-A6CF-4437-AAC6-2DAE7662BB37
++g_f_res_xmlsecurity__p_resource_zh_cn	EFC0E66C-6D32-42C4-B127-FFA10B84FDE3
++g_f_res_xmlsecurity__p_resource_zh_tw	4B1A6E4F-345B-435A-9728-14359DA1ED68
++g_f_res_xmlsecurity__p_resource_zu	728CEDB0-924D-48A2-8DFB-5EEF7D16495D
++g_f_res_xsltdlg__p_resource_af	8F0C71BC-D8E7-434F-B042-4E506F0AF0BC
++g_f_res_xsltdlg__p_resource_ar	F446BF86-4C0F-46DD-9672-A6F7F600B75B
++g_f_res_xsltdlg__p_resource_be_by	48848971-89CE-4169-A257-ACEFC83ACB14
++g_f_res_xsltdlg__p_resource_bg	E9F8D227-4853-43D8-B076-BF3F400804E0
++g_f_res_xsltdlg__p_resource_bn_in	41F4192A-5173-4C39-8911-5DCFAFF69A58
++g_f_res_xsltdlg__p_resource_br	1B5CAD2F-2644-4003-93CE-28B303FFAAA0
++g_f_res_xsltdlg__p_resource_ca	2F90753B-9F9D-4027-94FA-ACCE9DCB1BE1
++g_f_res_xsltdlg__p_resource_cs	36B31418-BF65-4411-A559-93FF925BF10C
++g_f_res_xsltdlg__p_resource_cy	600501E2-D687-4D4C-AFFB-F815B57AAAF0
++g_f_res_xsltdlg__p_resource_da	211F640B-01A7-43C5-8690-BE69206B34D8
++g_f_res_xsltdlg__p_resource_de	7D6EA6F1-4783-4A71-A64F-8A051D4AC8E3
++g_f_res_xsltdlg__p_resource_el	42FD19BC-9A86-437C-9EE6-4D312E6917B7
++g_f_res_xsltdlg__p_resource_en_gb	F46971C5-1BA3-4147-8EC6-430E0F493DB2
++g_f_res_xsltdlg__p_resource_en_us	FF17163E-8A48-4B82-9117-DF74A6B145AF
++g_f_res_xsltdlg__p_resource_es	1DC5EAEE-30DF-4DEF-ABCD-0E54089AB3FD
++g_f_res_xsltdlg__p_resource_et	3C0FB33A-A1FB-496D-A3D5-306E3B7E7E69
++g_f_res_xsltdlg__p_resource_fi	2407678B-1D38-4894-80E2-0FC03FFD30B8
++g_f_res_xsltdlg__p_resource_fr	4CCA4F55-E77E-4013-9DB1-F99ABC11270C
++g_f_res_xsltdlg__p_resource_gu_in	198DC850-E468-4D79-86C8-3C5FD4665444
++g_f_res_xsltdlg__p_resource_he	CE22C3CB-5235-4829-8630-B02D9B583310
++g_f_res_xsltdlg__p_resource_hi_in	E78DCEB2-708E-47E7-BE4B-DD2BDA78BB04
++g_f_res_xsltdlg__p_resource_hr	2E708668-44F7-4B7F-8CBD-56DDEC6FBD99
++g_f_res_xsltdlg__p_resource_hu	84CCF50E-079E-444B-AC6B-61E9A8BCF3F7
++g_f_res_xsltdlg__p_resource_it	E31E64C7-45AF-47D5-AD32-AF493C81C2B9
++g_f_res_xsltdlg__p_resource_ja	AF44ECA4-B887-4F8E-8A7E-47DC170C33E1
++g_f_res_xsltdlg__p_resource_km	BCF7534A-8663-4285-A5A1-DA9588D2A4CD
++g_f_res_xsltdlg__p_resource_ko	B1914F6F-EB68-46CE-8AFC-212EA96B0717
++g_f_res_xsltdlg__p_resource_lt	A8850E49-90DA-4931-8B65-1597B3A8AED3
++g_f_res_xsltdlg__p_resource_lv	776F9F2D-FFB6-446F-B6CC-E1DD4E69CB19
++g_f_res_xsltdlg__p_resource_mk	F2690743-8871-4AF7-B07A-7CBEC8C3A4EF
++g_f_res_xsltdlg__p_resource_mr_in	FBBC74D5-AF8B-4A71-A3C7-BA2420445F8A
++g_f_res_xsltdlg__p_resource_nb	4B2CC5C4-0E7C-47EF-96E9-562C295A80F2
++g_f_res_xsltdlg__p_resource_nl	429D6BC5-6806-4F29-BC50-0FB0E9A573D8
++g_f_res_xsltdlg__p_resource_nn	CC19B442-C4A7-4AAC-A56F-134B6E3FF36D
++g_f_res_xsltdlg__p_resource_pa_in	566AD5C6-A26B-4D18-ADFE-B50981995C8D
++g_f_res_xsltdlg__p_resource_pl	56677338-24E1-4507-9E6A-1FD199CE491A
++g_f_res_xsltdlg__p_resource_pt	2FF33D4C-43EF-47E8-96DA-0FC8375BDFEC
++g_f_res_xsltdlg__p_resource_pt_br	5885AE58-AFA2-4A54-B900-42720B6265B6
++g_f_res_xsltdlg__p_resource_ru	2FA277F4-AAC0-4409-A4B2-75E98A96D401
++g_f_res_xsltdlg__p_resource_rw	5DC69DB3-4C1D-4C15-92CE-327BC19A1557
++g_f_res_xsltdlg__p_resource_sk	148BA3C4-8C3A-4211-B2DA-7125F235CFF2
++g_f_res_xsltdlg__p_resource_sl	FCE18251-23A0-48BC-A993-A62DBB4C50DB
++g_f_res_xsltdlg__p_resource_sv	E544AC91-315C-42D2-8E05-5B890739297A
++g_f_res_xsltdlg__p_resource_ta_in	EF350229-6482-4055-98A6-D7B8A1F5EFDB
++g_f_res_xsltdlg__p_resource_tr	1DB06861-91FB-44FD-B84C-8B73FDDFC9D9
++g_f_res_xsltdlg__p_resource_vi	47E549E6-B762-4157-8FA8-76C7C2F07875
++g_f_res_xsltdlg__p_resource_xh	370C9ED7-11B6-4AA3-90A0-30C4C169B498
++g_f_res_xsltdlg__p_resource_zh_cn	E07DF44B-EB78-4EE1-A2C4-6606E708713C
++g_f_res_xsltdlg__p_resource_zh_tw	69239468-4B42-4CAC-89C8-819866BB510E
++g_f_res_xsltdlg__p_resource_zu	1BDA091D-9C4A-49E9-A697-D9549F12B469
++g_f_scripts_beanshell__share_scripts_beanshell_capitalise	BC403A64-AF34-4A8C-97D1-E0C3D99EBA03
++g_f_scripts_beanshell__share_scripts_beanshell_helloworld	DD0B3C4B-A47C-45DA-8B3B-39368346FE52
++g_f_scripts_beanshell__share_scripts_beanshell_highlight	E694FCD2-CE19-421A-AE09-648BD9618220
++g_f_scripts_beanshell__share_scripts_beanshell_memoryusage	92C7FBF4-6E27-418D-853C-6ADCFD1E8350
++g_f_scripts_beanshell__share_scripts_beanshell_wordcount	FA7F05BB-2F54-4915-BC09-F93740F6D525
++g_f_scripts_java__share_scripts_java_helloworld	ECEB4DA6-60E5-4224-8F1A-7194487CE954
++g_f_scripts_java__share_scripts_java_highlight	90B1E8AE-83D7-4F53-B6F9-9F601C10A46F
++g_f_scripts_java__share_scripts_java_memoryusage	EEA30FDD-0D36-4109-A51B-843F48EBE20F
++g_f_scripts_javascript__share_scripts_javascript_exportsheetstohtml	59E38549-867D-4EF0-905E-0255E5238CB2
++g_f_scripts_javascript__share_scripts_javascript_helloworld	FA2F9C8A-1BDE-4834-B4D0-6F3289784D0B
++g_f_scripts_javascript__share_scripts_javascript_highlight	1F885671-BAD7-4125-9B82-9CA5BCD75EBC
++g_f_scripts_python__share_scripts_python	26C89048-7473-4083-858C-43C31F2841BA
++g_f_scripts_python__share_scripts_python_pythonsamples	FDBE7CC0-894C-4C8E-A07A-354DACFFBC4A
++g_f_share_c_sc_impress_effects_xml__share_c_soffice_cfg_simpress	F1BACA31-2ECD-4AC9-B326-80FEDBA9DFFF
++g_f_share_c_sc_impress_transitions_xml__share_c_soffice_cfg_simpress	FEF667DA-559E-4E40-85D1-19550C86883F
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_global_accelerator	B47C0658-F43E-43DF-B190-39D18ED950F3
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_global_accelerator_en_us	EE5A23CE-939D-4618-9340-F78D70271CB0
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_global_accelerator_es	DA6120F5-2262-4BBF-812D-CCDA08B229A5
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_basicide_accelerator_en_us	92F73512-AC53-4434-972E-74AE2E1228CC
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_basicide_mb	D4ED8714-98FC-457D-931B-826CF8C58D7E
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_basicide_statusbar	78D6CC31-8E42-49BC-A36E-BE0A4FC34957
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_basicide_toolbar	A5785C3A-FC19-4ECC-AFA0-884344D1AA9E
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_accelerator_de	F6192818-B107-4F4E-971B-8B886693C3A4
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_accelerator_en_gb	DF43728B-4F96-4DA1-A2D0-BE355A6D63E7
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_accelerator_en_us	9E438A6D-A47A-4D0C-8A90-8632CBB86155
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_accelerator_es	82F4FD79-5DB9-4839-A4D4-00DFD9BFA863
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_accelerator_fr	45AFABB7-4A73-47DB-B0ED-E3BF51969970
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_mb	607CBF00-88E3-407C-BAFB-F3F545DC9823
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_statusbar	CCF0EFAE-9E1D-4650-A83E-704401EC94BE
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbapp_toolbar	222B2E89-7EC3-4596-93FC-A743C83C80BC
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_accelerator_de	CD18ADE8-24AE-4673-A2CF-0E4726593D74
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_accelerator_en_gb	DE134FCC-844C-4AA6-BAB3-777928C807EC
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_accelerator_en_us	41AC133E-F023-4FDB-B71C-718CB1BE0C69
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_accelerator_es	5FC661F5-3564-46C2-A911-D54A07456D9A
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_accelerator_fr	9D7D2483-9E83-4259-AA71-D624B93BF033
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_mb	6D466C75-0AC6-4EB2-A05F-3655CB7D835F
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbbrowser_toolbar	5B0AEB61-16A5-43CA-A4E1-5E2B265735DD
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbquery_accelerator_de	0D445913-1770-42B1-97CE-C33B942D68A4
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbquery_accelerator_en_us	D4087D91-D2C9-4C9D-8433-26E79ABE1387
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbquery_mb	C233F22A-AA14-45F2-8555-37A0C702A906
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbquery_toolbar	F4132F35-398C-47C3-9975-48B16F599D8A
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbrelation_mb	57985B89-C1D6-4F75-AAE5-6A65B789AD93
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbrelation_toolbar	5987DD37-4235-442E-8E59-1E23D140AD75
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbreport_accelerator_de_de	8E67F3FD-9761-4FA6-BFD0-6899A2DE5C03
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbreport_accelerator_en_gb	B3325EF4-B572-4406-8DBC-6FCB3E3D6499
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbreport_accelerator_en_us	8F115D64-2AF1-4B9A-9002-02D2D951832D
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbreport_mb	0455164C-07BD-4133-90AD-4DD9AA5C2E75
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbreport_statusbar	2B6A60E4-C983-4F63-AAD1-5B7CBC43435F
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbreport_toolbar	FAE6FAA8-C865-4442-B2B0-9D4F46568C9A
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbtable_mb	3ED14658-C1F0-4459-89EB-0264EDFE08EF
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_dbtable_toolbar	D59BACAC-4449-4DDD-ACA4-99ECA927BA84
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sbibliography_mb	3BC20376-9283-4BCB-AD40-EC387C7AAD8B
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_accelerator_de	FDE81A95-E3EE-45A0-9231-46C8106FDB8B
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_accelerator_en_us	D08CAE22-AEDE-49A2-9BE0-F6991672E27D
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_accelerator_es	AA039D48-82B6-4194-864C-B39440996D22
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_accelerator_fr	3ECC287D-2308-4490-B62F-1185D10E06A1
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_mb	BD672820-71C2-4CE9-8B1A-7A6243359EA8
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_statusbar	DB9F598B-D1A2-4D11-BB7B-FF75EA4E7232
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_scalc_toolbar	BDF583A6-4845-413B-AF5D-8D29E1B71127
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_schart_accelerator_en_us	DBD38B16-064E-446C-9584-2266ADA9E496
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_schart_mb	FF4182EB-E15A-497D-B0D5-6107B1A1B654
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_schart_statusbar	A3B670BD-66D9-4B40-9E03-2A58139A18DF
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_schart_toolbar	29214D0A-0CDE-4962-BED6-9E4F72EC9B11
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_accelerator_de	1EC55D2B-DE2C-45E0-B5E7-27622CE13C61
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_accelerator_en_us	7940E80D-EDCA-4ABF-AA34-B9C717B9B720
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_accelerator_es	151960B6-C5E4-4A68-B0DA-D15007932BC3
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_accelerator_fr	BC63B1F3-76F2-4532-9C7F-8E1CC8A0F6B9
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_mb	4B29C733-8AA5-444A-99EF-A5882015119C
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_statusbar	EF3AB2A8-5788-406E-9BEC-A05FFF89B0D4
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sdraw_toolbar	769C22C9-DC5D-43AC-8654-7F696F250BA3
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_accelerator_de	F5B7CE90-B64C-4C3F-AAEC-4875F7A0CBD1
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_accelerator_en_us	EFACBA67-C735-4A97-B36F-1F4E42989454
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_accelerator_es	F8F5B429-8679-4EAC-AFE8-BA750D34BEA7
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_accelerator_fr	EB0CE94C-3729-4FFD-A46B-9E013D61F6EA
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_mb	09321CC1-27A5-48C4-AD79-A20AEB5ADD8E
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_statusbar	C6E309C8-D401-41D4-BFA5-3EE6B9EE9189
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sglobal_toolbar	325FBBA0-FEEC-4FE5-ACC2-2C28AB44ADA1
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_accelerator	F212CAF8-14D4-49E1-A253-8B8467A68336
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_accelerator_de	C0DB77C7-34D8-4FE9-86E6-816D95D9C8F8
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_accelerator_en_us	6B665D92-FB64-4887-9702-F15BA9119B7C
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_accelerator_es	771EE8C3-0007-49FC-B175-76302159ABDA
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_accelerator_fr	05FECE76-B132-47C3-A2F2-29FE657527EE
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_mb	1CC3C393-B254-4C1B-B4B1-E164A91E1C85
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_statusbar	45C4B2F5-3EFB-422D-8F45-DCB8A37D359B
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_simpress_toolbar	7AEE0E07-F841-4C19-8EA2-29708A734ED1
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_smath_accelerator_en_us	137A492C-283D-423D-9AEA-C98F9E738E80
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_smath_mb	E020B0DD-5854-4BEC-9C9F-C159F91BF104
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_smath_statusbar	01784FC6-DF87-4185-A42A-E4E66FEF72C0
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_smath_toolbar	3C8530CC-B056-4C8A-BE86-E37F95E55438
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_startmodule_accelerator_en_us	D6825B75-4259-4377-99AE-1FB23EB7FA80
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_startmodule_mb	98DBC658-B158-4AF3-B752-99E299FED3D2
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_startmodule_statusbar	1B93B123-8059-4FCD-BB64-C9DB9B220D97
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_startmodule_toolbar	DDBA4517-3B9E-4667-A379-27883BA6D1BB
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_accelerator_de	F5205885-00B4-4072-A0D1-9767348D93A0
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_accelerator_en_us	166203DA-B003-44E8-AB5F-6EB05985D82D
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_accelerator_es	BD10DD6F-F977-4ABC-9055-7C3E08A682C2
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_accelerator_fr	CE0DAC0B-31D5-4F67-9F45-CCFEA36AB5A9
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_mb	FEA97E56-BCDA-42BA-845E-E888E3B00A04
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_statusbar	6B3EEAF7-2944-46EA-9C78-6338109A7D6E
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_sweb_toolbar	C654522C-5B40-4D79-9D6C-C7F1F51EABEF
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_accelerator_de	2556F054-A179-4A5C-B849-D091950C9461
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_accelerator_en_us	BF4C1371-757F-4D3C-B55D-BFC72ED83B9A
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_accelerator_es	7CAFC19D-8039-499D-94B9-B400E4961E2A
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_accelerator_fr	5A7D78CE-D75E-4832-AAC1-8E5344F5326B
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_mb	346C9CCA-E83B-4589-9F62-CD7A0C6991CC
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_statusbar	166649D9-F109-4BC7-957B-AD1022A6DFFB
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swform_toolbar	9C49DF04-594A-4C13-A6A4-F686F40B5E04
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_accelerator_de	EF2FE80A-5CF1-43A3-ADFE-613B0FEA36F3
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_accelerator_en_us	4943929C-5D3F-4908-80F3-129141064460
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_accelerator_es	46F64A51-09A3-40CE-9A0C-707505A8C86A
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_accelerator_fr	F3EF1C0C-3965-4FDA-A518-F7510862946F
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_mb	67190EFA-E56A-484D-BB6B-6A5ABE6C474D
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_statusbar	69E6D4D7-C60A-4CF0-BF18-8D4A6FB51BE2
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swreport_toolbar	33362898-FFB2-4FB4-8EF2-4EAD941B066C
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_accelerator_de	CE784D3D-AC54-4189-BE3E-8DA15E1853E9
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_accelerator_en_us	9B6B8E68-6EE6-4D8A-B52D-358EF2FABB41
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_accelerator_es	899CB168-5631-420F-AFB9-1E6FD9265647
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_accelerator_fr	2C49F6FE-D912-47D5-9001-00BF7D46ECF5
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_mb	EFF5D3E0-7CCB-4245-B764-139ABE5AD559
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_statusbar	4FD70F9E-FB8E-4BC2-A353-1BA340F8B6DE
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swriter_toolbar	6DFA5C08-B1E8-4A06-BAB1-E718525962D5
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_accelerator_de	2506A2DB-6D11-4740-8B31-CBD197890A6C
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_accelerator_en_us	176CE911-C44B-4CE2-A20E-F5575087BA39
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_accelerator_es	980C4506-098D-491A-9C5C-8DF506F45A64
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_accelerator_fr	F78C72E1-ECC6-40A1-AF5F-8386A650F062
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_mb	2663DB78-AD86-44AF-8AA7-C241C2240A8E
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_statusbar	90F2A737-9A1B-4BAD-A09D-7EE4F3B80535
++g_f_share_c_sc_uiconfig_zip__share_c_soffice_cfg_modules_swxform_toolbar	AD8BD61D-97EF-4508-BA95-7C2A8AD0AB9C
++g_f_shellnew2_odg_soffice__p_shellnew	F3D0F7CA-F0C4-42F9-B586-CA37CC8701E0
++g_f_shellnew2_odg_soffice__p_shellnew2	F39E5FA4-2429-47F8-AC68-6B36895BF927
++g_f_shellnew2_odp_soffice__p_shellnew	FD473DAB-CFF1-4735-B508-D2DFC2C29DE6
++g_f_shellnew2_odp_soffice__p_shellnew2	7018AEE3-EA24-455C-8CC1-0C668219B82B
++g_f_shellnew2_ods_soffice__p_shellnew	E6C5062F-E160-4D35-B25B-E4B599A93ED5
++g_f_shellnew2_ods_soffice__p_shellnew2	D21714D0-B53A-48A1-A7CC-EF379343C6D0
++g_f_shellnew2_odt_soffice__p_shellnew	0DDD99A8-4988-4A6A-B797-22D3889912F2
++g_f_shellnew2_odt_soffice__p_shellnew2	3D25F9F3-56A6-4986-BFBE-F938320BEDF8
++g_f_shellnew_odg_soffice__p_shellnew	8AD12FA3-94AC-4F99-AF75-3ED8CD21463C
++g_f_shellnew_odp_soffice__p_shellnew	1B39BBF2-CFED-4FB0-8FE5-45D06F33599E
++g_f_shellnew_ods_soffice__p_shellnew	CF646F5C-CC2F-4DB0-8D0C-88FA8DC561BD
++g_f_shellnew_odt_soffice__p_shellnew	48A39D5F-0FDD-410B-9350-E32C98A850C3
++g_f_simplecanvas__program	B0006CE9-5D8B-4FBB-9F91-978ABFACF507
++g_f_stw_docbooktemplate__share_xslt_docbook	B19C7057-59EF-42D8-9F42-3B67BFDFC836
++g_f_stw_mediawikitemplate__share_xslt_wiki	638A59A3-1FA4-40A7-A80E-12CCA4E0A95F
++g_f_txt_license__share_readme_af	DB24314E-B61E-4368-B199-D26D6A65B2D5
++g_f_txt_license__share_readme_ar	CC1961B8-D0B0-429D-8E44-5D9AD61535AD
++g_f_txt_license__share_readme_be_by	5B7C1081-70FA-4552-8778-808D79D1C1A5
++g_f_txt_license__share_readme_bg	7CE09001-70A3-4586-ACCC-BA5C56CC23FB
++g_f_txt_license__share_readme_bn_in	AA9D4114-65E3-4BFC-9741-143D156F255A
++g_f_txt_license__share_readme_br	97006E25-AB75-49AE-BB90-8D87CE685EE8
++g_f_txt_license__share_readme_ca	A8013093-5B82-4CEF-9082-B9D9D379B24D
++g_f_txt_license__share_readme_cs	3B7828EE-65A2-47A1-83E9-2D24B08F00DD
++g_f_txt_license__share_readme_cy	87A9F2A5-2970-45E7-A99F-A75EE6D0D512
++g_f_txt_license__share_readme_da	5CD3E7DA-461A-4014-AB0B-6609F5435AF8
++g_f_txt_license__share_readme_de	4619C264-2DB4-4F0C-A0C4-B26B7C57BF15
++g_f_txt_license__share_readme_el	EB7E0203-A465-4BCC-97B9-6B84872C9ABC
++g_f_txt_license__share_readme_en_gb	310F03C1-C851-42E7-B180-DC0B41B48070
++g_f_txt_license__share_readme_en_us	7BA6F819-809F-4D69-955D-7C223CA905EC
++g_f_txt_license__share_readme_es	61B669FD-D421-4B2C-B78B-84FBB1F80FE6
++g_f_txt_license__share_readme_et	458EAFAB-A8E2-454D-BE14-C2D0CE987DEB
++g_f_txt_license__share_readme_fi	D0CBE7D2-2001-449E-BE55-314B181E0EE8
++g_f_txt_license__share_readme_fr	172CBAAE-7266-41B0-91F5-A568DA49AB37
++g_f_txt_license__share_readme_gu_in	5B0539A6-291E-425B-8A33-518E60572C35
++g_f_txt_license__share_readme_he	3F9978FE-8F80-4415-A9CC-B27F3E9EA3C6
++g_f_txt_license__share_readme_hi_in	F95F3851-1443-48B2-B3A4-C673F7F7904C
++g_f_txt_license__share_readme_hr	CB85CCDA-8FF9-4DC1-B7C4-00B1B3177CC3
++g_f_txt_license__share_readme_hu	E75C8ECC-14E1-4D37-AE79-BFAE217AD853
++g_f_txt_license__share_readme_it	B138E463-05FE-40F5-965A-3295CA66BC83
++g_f_txt_license__share_readme_ja	C2B65EBA-9B58-4389-83A1-F80388F016DF
++g_f_txt_license__share_readme_km	BA534596-22DB-4B62-A222-8F9620D4B02F
++g_f_txt_license__share_readme_ko	789BE02F-640C-44FD-AA37-34F0D0FEFEFD
++g_f_txt_license__share_readme_lt	C52F6134-910F-4A44-B110-F0972EC6B000
++g_f_txt_license__share_readme_lv	40358111-0720-4B3D-B4F6-0A77C6F7FFEC
++g_f_txt_license__share_readme_mk	CD9836E8-66DE-4058-91EC-1F257DA0AA84
++g_f_txt_license__share_readme_mr_in	5664FF88-AC01-49B6-8922-CB9E5E47CF62
++g_f_txt_license__share_readme_nb	D2CC6592-8926-4DA6-A3F7-5F9A32DE3528
++g_f_txt_license__share_readme_nl	DB3BDFD2-65F4-42C4-822B-6D0D03F33245
++g_f_txt_license__share_readme_nn	EF9EFF04-FB88-4315-ACCF-B5CF2B5BB9DA
++g_f_txt_license__share_readme_pa_in	BB75C77A-8909-4265-8CF8-4BB6D3D301C0
++g_f_txt_license__share_readme_pl	3A357759-46B3-4A3D-B0AD-1CDF5CC5C8DA
++g_f_txt_license__share_readme_pt	0457F11A-CB0C-4413-9BEB-E53272358C0E
++g_f_txt_license__share_readme_pt_br	112C5874-A55F-49FA-8A21-0420F67BF374
++g_f_txt_license__share_readme_ru	80132EB0-6712-450D-BA42-D5D592557700
++g_f_txt_license__share_readme_rw	7481F84E-0DE6-4B3B-B893-0591F47BB039
++g_f_txt_license__share_readme_sk	C79F0EFD-6821-4258-BFAB-28C61B75BE6E
++g_f_txt_license__share_readme_sl	DAD29C20-2AB5-48B6-8EEA-3D0A7B7DC74E
++g_f_txt_license__share_readme_sv	EA0848E0-CFD5-4D0A-B674-271233075140
++g_f_txt_license__share_readme_ta_in	CDFC15CB-1C79-474A-9107-7B356586E8EE
++g_f_txt_license__share_readme_tr	B2C1AEF0-E067-405E-9726-3736F5774D69
++g_f_txt_license__share_readme_vi	D7E4FCA6-8603-47E0-B3E6-9D30FE54E5BE
++g_f_txt_license__share_readme_xh	378FF825-ABCF-48C7-8949-3F3EC5797BDC
++g_f_txt_license__share_readme_zh_cn	9F334677-4447-486D-8DC2-7706428D2074
++g_f_txt_license__share_readme_zh_tw	496F4457-B3CC-41ED-A1D0-E0E9720363DB
++g_f_txt_license__share_readme_zu	73148052-6A71-4222-90F0-6E3D0D2C7772
++g_f_txt_license_copy__	29349493-3362-493D-BFEC-23CB540EFED0
++g_f_txt_license_html__share_readme_af	0CC87C5F-C0A8-4E38-A3BC-69987776303F
++g_f_txt_license_html__share_readme_ar	1145044C-883B-4950-9158-53B8C95F874C
++g_f_txt_license_html__share_readme_be_by	82CCE668-9C14-4DFE-9C92-E96F08965F48
++g_f_txt_license_html__share_readme_bg	BE7B1FE5-B0F1-4107-9F4F-CB17E2F1DB82
++g_f_txt_license_html__share_readme_bn_in	C62BE5FE-DB22-4D1A-B295-A85C6BA497D6
++g_f_txt_license_html__share_readme_br	3111B0B6-CA83-4D2C-9C93-B10E0A16CE67
++g_f_txt_license_html__share_readme_ca	6D6F224E-3022-42AB-9B4D-24EB9489DC23
++g_f_txt_license_html__share_readme_cs	58EFD412-7335-4F15-9AD6-3A4CE0748F13
++g_f_txt_license_html__share_readme_cy	A0048A48-9DE4-4318-9680-2FFDB7DB28F5
++g_f_txt_license_html__share_readme_da	393A5C0C-B5B4-4A1E-B359-91BF37591C14
++g_f_txt_license_html__share_readme_de	1B1D26E3-218A-4F74-817D-5910B0ADA730
++g_f_txt_license_html__share_readme_el	BCCAF019-62AE-4854-A9FB-7477FBF9EADA
++g_f_txt_license_html__share_readme_en_gb	9FB559C8-D330-4047-A7D5-91EF190D7ED6
++g_f_txt_license_html__share_readme_en_us	CBFF23BA-0B34-40B0-B0C0-38F359A1A2A8
++g_f_txt_license_html__share_readme_es	CE221C1D-C079-4968-A227-B6B5E825F786
++g_f_txt_license_html__share_readme_et	4149A698-0CD1-4925-8DDA-25AAEDDA16D5
++g_f_txt_license_html__share_readme_fi	C3F961A7-3003-46EF-974B-81F7E3F63B97
++g_f_txt_license_html__share_readme_fr	07ABF229-889D-4BA6-B212-1DFA48DC45AC
++g_f_txt_license_html__share_readme_gu_in	020894C6-53CB-4CCF-B90D-05506391B98F
++g_f_txt_license_html__share_readme_he	0A85790D-584C-43B4-8A67-BDAF2C30524B
++g_f_txt_license_html__share_readme_hi_in	DAEDB6CA-106B-42BB-917F-D8FC4270D6BB
++g_f_txt_license_html__share_readme_hr	E8B10CF9-650B-4530-B040-BEE4BA2E4D58
++g_f_txt_license_html__share_readme_hu	992CDB0B-B7EA-4F05-9C4B-7B90AA3A97DE
++g_f_txt_license_html__share_readme_it	5F786F45-E2B3-494B-85E2-AB9878E002D0
++g_f_txt_license_html__share_readme_ja	F70E9993-1F4B-461C-BF73-3CA4D198403D
++g_f_txt_license_html__share_readme_km	5B101DC1-2B46-4D0D-B798-A88171EC024F
++g_f_txt_license_html__share_readme_ko	14AEC9F9-9E6C-431D-A40C-9031B0A6625E
++g_f_txt_license_html__share_readme_lt	406466E1-F4BC-4857-BF2D-954727FCF9C6
++g_f_txt_license_html__share_readme_lv	6B5460E2-2F6B-4E3F-9CA8-1631C86B7A90
++g_f_txt_license_html__share_readme_mk	05B0DDFE-E20B-4255-B76C-D60C4E739586
++g_f_txt_license_html__share_readme_mr_in	DCA9A755-D944-456B-B39E-DA937DCC9E83
++g_f_txt_license_html__share_readme_nb	07599951-9F4A-456C-84B9-C858F272C995
++g_f_txt_license_html__share_readme_nl	E0D149A0-E25D-43DC-9303-6D74C2C53908
++g_f_txt_license_html__share_readme_nn	330863ED-07DB-4856-9DA4-5DD047C41859
++g_f_txt_license_html__share_readme_pa_in	BE8771AA-9685-4007-B66F-16CD3294A848
++g_f_txt_license_html__share_readme_pl	69B2E613-3688-410F-9D61-E415DA2551AB
++g_f_txt_license_html__share_readme_pt	88A2C8D9-994C-4F30-AF09-4DA813A90F68
++g_f_txt_license_html__share_readme_pt_br	7ECDC17C-5C9A-4698-84DB-65FF59707FF5
++g_f_txt_license_html__share_readme_ru	98AF3E42-B45D-4CCA-B214-A471E467FAAB
++g_f_txt_license_html__share_readme_rw	6301C6EB-B832-42D5-9304-818DAA513779
++g_f_txt_license_html__share_readme_sk	8EF3D141-BA75-47A0-AB26-25FD15FA6F61
++g_f_txt_license_html__share_readme_sl	A9290BD4-6372-4D55-A681-9AE44C0FE7F9
++g_f_txt_license_html__share_readme_sv	9742B551-97CC-45E9-8A1A-C7D9987175C0
++g_f_txt_license_html__share_readme_ta_in	9E607382-CB06-46C9-8E7E-98C6C493D70B
++g_f_txt_license_html__share_readme_tr	349BA7B4-A1C3-4A3B-A0A0-371BC457F3AC
++g_f_txt_license_html__share_readme_vi	41DB9AA5-E261-4AF1-908C-9C9A59CF5DB3
++g_f_txt_license_html__share_readme_xh	75699FD2-0128-4B10-9F9D-F197288E11DC
++g_f_txt_license_html__share_readme_zh_cn	6CCE9C25-A896-4D26-B808-99C2C4C57245
++g_f_txt_license_html__share_readme_zh_tw	CF861646-5F52-4DD0-866C-F4EBCB185245
++g_f_txt_license_html__share_readme_zu	46069432-3DEE-4ECF-836B-12CCA76A52F9
++g_f_txt_license_html_copy__	63C6AB7A-367F-4A5A-83C5-4492F9C2D46A
++g_f_txt_readme__share_readme_af	3C3CF296-3B44-4E64-B3E9-910CE1DF9F51
++g_f_txt_readme__share_readme_ar	C1DA42C2-0EB8-4B81-8272-8A9AC5DE427C
++g_f_txt_readme__share_readme_be_by	092AE175-9B26-4804-9A12-E164945C369B
++g_f_txt_readme__share_readme_bg	EB84D61F-C651-4492-94D8-A51F7EEFE46E
++g_f_txt_readme__share_readme_bn_in	E528C556-A0ED-4D1A-9DF5-33F8023638E8
++g_f_txt_readme__share_readme_br	EEB01D4B-C8C7-4EA8-AD15-44FF7AA36CF0
++g_f_txt_readme__share_readme_ca	EFF7AA53-7832-4F5C-B7CA-6F4D92C4FB1F
++g_f_txt_readme__share_readme_cs	8DCDD39A-78C2-4FD2-8744-06F385973237
++g_f_txt_readme__share_readme_cy	6D55A7A9-B2CE-4FF1-86DC-1AE9C02BAC4A
++g_f_txt_readme__share_readme_da	2057A427-B2C0-48DE-B1ED-08D6AAA17BBE
++g_f_txt_readme__share_readme_de	9FF99ACF-AD5E-45C3-824D-51AAF2536CE0
++g_f_txt_readme__share_readme_el	EA688193-9F11-4D4A-AD97-8A811D98136D
++g_f_txt_readme__share_readme_en_gb	2DD51611-7B5E-49C7-BEB0-E5872535783F
++g_f_txt_readme__share_readme_en_us	D1F18438-95BC-4A24-A21C-9662410AAFFB
++g_f_txt_readme__share_readme_es	9FFDF9BA-D7BF-4CBC-B18C-E30E41D5532A
++g_f_txt_readme__share_readme_et	FF78D430-6364-4707-A3C5-95CC4BD0367F
++g_f_txt_readme__share_readme_fi	DEA34C8E-939A-44D6-8253-170F981AAC8E
++g_f_txt_readme__share_readme_fr	3C5D2311-FD07-4834-BB6F-A2C40FB7C3FF
++g_f_txt_readme__share_readme_gu_in	97D10606-7F5A-44F9-8B01-4FE0EA7DE371
++g_f_txt_readme__share_readme_he	AD32DEFC-6796-4FBE-B54E-FE29C6DF186E
++g_f_txt_readme__share_readme_hi_in	993BD1EB-FC7B-4C15-B3D9-22EB3A923739
++g_f_txt_readme__share_readme_hr	89C089D8-BE91-48D5-A94A-CAC38AA0E505
++g_f_txt_readme__share_readme_hu	94D4C89F-79C8-4231-BAA4-AA8134595E81
++g_f_txt_readme__share_readme_it	2533A329-5DA2-4585-8EA0-D7DAF03FC547
++g_f_txt_readme__share_readme_ja	2056F23E-ADB8-4D31-8B5A-533854F34EE7
++g_f_txt_readme__share_readme_km	0FA648F3-BBDB-4CA8-AF24-C7364E9F0BE1
++g_f_txt_readme__share_readme_ko	EA568A9F-D48D-420A-8EF0-AB65C05BAF9B
++g_f_txt_readme__share_readme_lt	871948ED-EBEA-4015-9344-94E00045B795
++g_f_txt_readme__share_readme_lv	6FBA4F1C-96E3-430E-8A57-5701C624D83C
++g_f_txt_readme__share_readme_mk	9A1AD8FE-F7DA-42F6-A51C-C8C2FFD6D901
++g_f_txt_readme__share_readme_mr_in	54A1BEA9-6619-4CDA-9A42-375082509DA0
++g_f_txt_readme__share_readme_nb	EAB02480-C372-4EB6-B5DA-D2BF0FEAA591
++g_f_txt_readme__share_readme_nl	06B09FBB-F7E7-49D1-8346-7FAA59D36B00
++g_f_txt_readme__share_readme_nn	D8F99679-8B07-42BC-BD7C-9997C2C765FE
++g_f_txt_readme__share_readme_pa_in	31DD01E9-F3B2-40DF-8774-6151CC962A5D
++g_f_txt_readme__share_readme_pl	451050B3-DAD2-4EEE-8071-E5A653397197
++g_f_txt_readme__share_readme_pt	92D690CC-6413-4A69-982D-E18A6758A789
++g_f_txt_readme__share_readme_pt_br	0C38E687-7EE4-4863-9833-36C825E04DCC
++g_f_txt_readme__share_readme_ru	3B0EFA30-6DDD-4F1D-B284-EC73BF188D5D
++g_f_txt_readme__share_readme_rw	A9723F90-359B-43B9-BA4F-BE77D9C2CE82
++g_f_txt_readme__share_readme_sk	BCB414F9-36A3-4EC1-872E-FF98F71E200F
++g_f_txt_readme__share_readme_sl	55F14DF2-4440-48B5-B602-61608823420A
++g_f_txt_readme__share_readme_sv	AB0F8722-038E-46A4-B9A3-8DAD082BF380
++g_f_txt_readme__share_readme_ta_in	059BB4AC-72B5-47FB-96C1-0D71D58F3341
++g_f_txt_readme__share_readme_tr	4701DAA1-2F86-446E-B5F7-FB9D15A936F0
++g_f_txt_readme__share_readme_vi	2818E8FC-82B7-4776-93D0-7E009D7283B0
++g_f_txt_readme__share_readme_xh	A035B0DE-4A1E-4508-9E1D-2CB8CB76411C
++g_f_txt_readme__share_readme_zh_cn	310A2C0E-5662-4C44-9E54-244F2AE2D112
++g_f_txt_readme__share_readme_zh_tw	8BC0D051-8CB0-4912-9620-6147599ECE2D
++g_f_txt_readme__share_readme_zu	D18CE01B-6BE2-4469-A899-F45A6C2AA7B1
++g_f_txt_readme_copy__	6ED6CEBF-28F9-44FB-B5C1-2D9E01C60483
++g_f_txt_readme_html__share_readme_af	9B1C16A6-4D3A-42A2-AF7C-7A64312A98F5
++g_f_txt_readme_html__share_readme_ar	141B19E9-4AF6-40E9-B6BB-BD08F3FB58A3
++g_f_txt_readme_html__share_readme_be_by	77A1393A-59E1-4BF9-A8BF-F1DFDEF07488
++g_f_txt_readme_html__share_readme_bg	CF5FD97E-9E6B-4273-87E5-4B85B2EDD7BA
++g_f_txt_readme_html__share_readme_bn_in	62CCB603-C2C2-4B1F-9C72-9893A9A97FF4
++g_f_txt_readme_html__share_readme_br	9D5557A0-FB02-4187-B915-EC9E27C456AE
++g_f_txt_readme_html__share_readme_ca	CCBF709E-3DB4-451A-94F8-2199FD15F930
++g_f_txt_readme_html__share_readme_cs	98D1BC10-0C30-4BAA-8088-0C38135368EF
++g_f_txt_readme_html__share_readme_cy	A5DB67F6-F8C9-4B07-8668-6117EBC43F19
++g_f_txt_readme_html__share_readme_da	404F0EAE-BE42-4E81-BC21-65F951CFB159
++g_f_txt_readme_html__share_readme_de	9E6C9272-EC7B-4491-8E9F-D25FEC41C143
++g_f_txt_readme_html__share_readme_el	79D6373D-84C5-46CA-B368-34F5BB68A4A4
++g_f_txt_readme_html__share_readme_en_gb	8BCE7B4C-AE83-46D3-998F-E7A9CD12124E
++g_f_txt_readme_html__share_readme_en_us	4E4483A6-28CA-449B-AA46-7F48C33D877A
++g_f_txt_readme_html__share_readme_es	0E97230A-D0B8-4A17-A023-26CBA62E507F
++g_f_txt_readme_html__share_readme_et	E30CE93C-732A-4028-97EA-A8B4FD6F1117
++g_f_txt_readme_html__share_readme_fi	4CAE35D3-39BE-42E6-BD97-6BB85879720F
++g_f_txt_readme_html__share_readme_fr	4B797445-A9D6-41E7-A2F8-86D4D1C37429
++g_f_txt_readme_html__share_readme_gu_in	593FF9A1-D859-49F2-8C49-31E61861F945
++g_f_txt_readme_html__share_readme_he	4ADB5AF3-A483-4565-B0AA-D1E8D5DEF7AF
++g_f_txt_readme_html__share_readme_hi_in	E41F00AC-02A3-4BD1-8A25-6205010FB1CE
++g_f_txt_readme_html__share_readme_hr	B921A8CB-4509-4083-A1E4-FA1C4E6352FB
++g_f_txt_readme_html__share_readme_hu	CB1ED422-EF94-4C57-BF70-315373B09070
++g_f_txt_readme_html__share_readme_it	18E9BEAE-9C8E-426D-B2F4-745C20F024E8
++g_f_txt_readme_html__share_readme_ja	6BF19157-34BC-4388-8CD7-1C88D3D162B5
++g_f_txt_readme_html__share_readme_km	F0F0A57C-B512-4365-B8C1-D448CD8500B8
++g_f_txt_readme_html__share_readme_ko	DAA025EB-CC21-4548-8D91-A1C3B2610BA4
++g_f_txt_readme_html__share_readme_lt	46781BC6-0BC0-40EE-97E1-8B70E1CC5032
++g_f_txt_readme_html__share_readme_lv	83520A03-E9B1-443D-9762-CF5BE78F364C
++g_f_txt_readme_html__share_readme_mk	C1705BE8-6929-4E89-99F8-0E9A14D6D05C
++g_f_txt_readme_html__share_readme_mr_in	F8A3BE82-54D2-4E96-A13C-50595FC1D17B
++g_f_txt_readme_html__share_readme_nb	7FD446A9-1C66-4031-9DA9-78EA849DB8C7
++g_f_txt_readme_html__share_readme_nl	A69B1904-2C47-4A03-B370-7CF6944BCE59
++g_f_txt_readme_html__share_readme_nn	D6CE692A-B18B-4D41-84CD-9C8560675AE2
++g_f_txt_readme_html__share_readme_pa_in	B5E90FD6-449D-4E14-B07E-E768046DDEEC
++g_f_txt_readme_html__share_readme_pl	1A5D31AC-E5A2-4E9E-9B50-BF2C8978CAAA
++g_f_txt_readme_html__share_readme_pt	23EBE594-5FBF-40A3-A095-BA8EFE9F3DA4
++g_f_txt_readme_html__share_readme_pt_br	A986278E-DAEA-46AF-B820-4B8C7D12010B
++g_f_txt_readme_html__share_readme_ru	335C53AE-9458-40E8-A921-330D8A7FDE61
++g_f_txt_readme_html__share_readme_rw	BD0111AF-E4E8-43E0-B4CE-EBC6C5F8B465
++g_f_txt_readme_html__share_readme_sk	F0198B32-CBB8-452E-8BD1-0AF72A9AA068
++g_f_txt_readme_html__share_readme_sl	54EB34B4-F56A-4855-93D2-C1BD9B371224
++g_f_txt_readme_html__share_readme_sv	B10C2EE5-DB50-4DD0-8320-20172E2CD1EB
++g_f_txt_readme_html__share_readme_ta_in	4B4E374A-FF65-4CA0-89CB-92E180E12D2F
++g_f_txt_readme_html__share_readme_tr	C3063FE1-140B-479D-81AC-73F800566C1D
++g_f_txt_readme_html__share_readme_vi	2931D448-0CEF-4C23-A195-3C28202AA994
++g_f_txt_readme_html__share_readme_xh	7C558C1F-0EF5-45CE-A906-DA80216B1E35
++g_f_txt_readme_html__share_readme_zh_cn	FD842DD7-BFCB-4582-88A4-608222CA6C78
++g_f_txt_readme_html__share_readme_zh_tw	A0CE453F-DAA0-47E9-B02B-98271CB93347
++g_f_txt_readme_html__share_readme_zu	752C47CD-B745-480A-9AA0-955B0843272D
++g_f_txt_readme_html_copy__	9C4DE9B1-DF21-455E-A2CF-5A426EEBF26B
++g_f_ucpexpand1__program	5288E5BA-BFA8-44AC-8452-8A305CB1ADB1
++g_f_ucpodma1__program	C987CB21-594A-4D72-AFD1-815C36195D24
++g_f_ucptdoc1__program	D5C7FA22-4D35-41A8-8223-1DDEAC39264C
++g_f_xml_javavendors__share_config	7344705B-3D1D-427B-90F5-115D672BC28B
++g_f_xsl_cm_math_functions__share_xslt_common	EA6FB6CD-0EDA-45E1-98C3-3B075A2CF696
++g_f_xsl_cm_measure_conversion__share_xslt_common	121C6C2F-5F2D-4D34-9CA8-40CC5006CDE6
++g_f_xsl_docbooktosoffheadings__share_xslt_docbook	CEC3D3E5-2EDF-4449-A00F-C58714E3DA1A
++g_f_xsl_exp_cm_body__share_xslt_exp_common	6D503DD8-B621-42A5-8355-FD8D6A6747BF
++g_f_xsl_exp_cm_ooo2ms_docpr__share_xslt_exp_common	505F0899-7C96-4301-B6E6-7D6B77720173
++g_f_xsl_exp_cm_styles_style_mapping_css__share_xslt_exp_cm_styles	599215EA-31E2-4857-A0A7-3F03D4DCBA4A
++g_f_xsl_exp_cm_styles_style_mapping_html32__share_xslt_exp_cm_styles	BE4DBEC9-E42E-4726-9A18-97B746D0763C
++g_f_xsl_exp_cm_styles_styles_collector__share_xslt_exp_cm_styles	5BB4C583-32E7-417B-9E71-7358716CF858
++g_f_xsl_exp_cm_tb_of_content__share_xslt_exp_common	818E9146-4FDC-4CAF-B429-91C261E36B44
++g_f_xsl_exp_cm_tb_table__share_xslt_exp_cm_table	77DA201C-D8EA-421B-AA38-59D57E0CA5C7
++g_f_xsl_exp_cm_tb_table_cells__share_xslt_exp_cm_table	342FA267-3FCB-4DA6-9142-C0F7A284F795
++g_f_xsl_exp_cm_tb_table_columns__share_xslt_exp_cm_table	83D3993F-E3AD-4CE1-B6A1-3373D0762D80
++g_f_xsl_exp_cm_tb_table_rows__share_xslt_exp_cm_table	3C03EE1F-9B71-4198-9E07-DA6C3AA523AC
++g_f_xsl_exp_odfflatxml__share_xslt_odfflatxml	3F93206E-A101-47B8-8919-36214A0F08A4
++g_f_xsl_exp_spreadsheetml_formular__share_xslt_exp_spreadsheetml	FDAEF663-9128-4C41-B4B1-2C44143D361D
++g_f_xsl_exp_spreadsheetml_ooo2spreadsheetml__share_xslt_exp_spreadsheetml	3FA71C84-EF7E-42BB-9F1C-5BEB7D13FBB6
++g_f_xsl_exp_spreadsheetml_style_mapping__share_xslt_exp_spreadsheetml	258802F8-04DC-400F-BA9A-B16601AD8ACE
++g_f_xsl_exp_spreadsheetml_styles__share_xslt_exp_spreadsheetml	86FF66D4-D9D6-41E3-9B8D-5A55A88C4DDC
++g_f_xsl_exp_spreadsheetml_tb__share_xslt_exp_spreadsheetml	E1E72593-59B5-417D-A463-271137567B48
++g_f_xsl_exp_wordml_ooo2wordml__share_xslt_exp_wordml	87AA3634-DDB1-455D-911C-0CC98146EDDF
++g_f_xsl_exp_wordml_ooo2wordml_border__share_xslt_exp_wordml	4BFCA762-FC32-4B11-BB0D-7C2EF7A48E90
++g_f_xsl_exp_wordml_ooo2wordml_custom_draw__share_xslt_exp_wordml	4D64CF45-D8D0-4674-A0FB-38DF0E1F81E6
++g_f_xsl_exp_wordml_ooo2wordml_draw__share_xslt_exp_wordml	79580EE8-7965-44A4-BAB9-1B16FE53A66C
++g_f_xsl_exp_wordml_ooo2wordml_field__share_xslt_exp_wordml	9BBB19BC-A510-45DA-990E-812DFD55AE16
++g_f_xsl_exp_wordml_ooo2wordml_list__share_xslt_exp_wordml	20FA2F22-78D8-4E56-8F2C-4EA46C7D5A1C
++g_f_xsl_exp_wordml_ooo2wordml_page__share_xslt_exp_wordml	D2E4874E-FE41-44B3-A66F-FD779B159CD1
++g_f_xsl_exp_wordml_ooo2wordml_path__share_xslt_exp_wordml	204AE616-9975-43DA-BB5D-C5875BB88144
++g_f_xsl_exp_wordml_ooo2wordml_settings__share_xslt_exp_wordml	DD166B2F-5612-4008-90D1-EBB9AB83DEA7
++g_f_xsl_exp_wordml_ooo2wordml_tb__share_xslt_exp_wordml	7BD43CFA-23A5-4B9F-8E00-9B93AEB45BEC
++g_f_xsl_exp_wordml_ooo2wordml_text__share_xslt_exp_wordml	F019C826-02EE-4356-8301-84BC4E799DDE
++g_f_xsl_exp_xhtml_body__share_xslt_exp_xhtml	A379AA80-2EF6-46CD-9D5C-395C62399F07
++g_f_xsl_exp_xhtml_header__share_xslt_exp_xhtml	D87A4FD1-069A-4E45-870C-4D333E890F6F
++g_f_xsl_exp_xhtml_master_chapter_numbering__share_xslt_exp_xhtml	892BA81F-2D65-4993-9BF1-61617B30445F
++g_f_xsl_exp_xhtml_master_document__share_xslt_exp_xhtml	49EDD9A4-1392-410B-AB74-2172C34F0F3C
++g_f_xsl_exp_xhtml_master_refs_workaround__share_xslt_exp_xhtml	47B30247-E414-4324-8204-2F872CF84C6A
++g_f_xsl_exp_xhtml_master_usability_links__share_xslt_exp_xhtml	AC234821-A7AE-48C2-8C33-E9E0D2DC61FC
++g_f_xsl_exp_xhtml_ooo2xhtml__share_xslt_exp_xhtml	74D42BB1-64C6-4F4F-91DB-0FCFD9C9E011
++g_f_xsl_exp_xhtml_tb__share_xslt_exp_xhtml	B1429C24-3B55-416B-9DF4-5EB65B2C612B
++g_f_xsl_import_cm_ms2ooo_docpr__share_xslt_import_common	CD749030-F920-4B97-B626-3324F5F2856F
++g_f_xsl_import_odfflatxml__share_xslt_odfflatxml	9510D750-62A5-4955-A66C-20619C6628D3
++g_f_xsl_import_spreadsheetml_spreadsheetml2ooo__share_xslt_import_spreadsheetml	DC1E6ABD-1F0A-41C6-ADC6-DAC8C81E2C3A
++g_f_xsl_import_wordml_wordml2ooo__share_xslt_import_wordml	4FBE4755-F7AC-4B1F-9D74-B9E3F208E935
++g_f_xsl_import_wordml_wordml2ooo_custom_draw__share_xslt_import_wordml	E1AB952C-9192-4CB5-943E-7CF3AAF38B77
++g_f_xsl_import_wordml_wordml2ooo_draw__share_xslt_import_wordml	1A1E9277-2CF9-4FB4-9822-102BFBD64995
++g_f_xsl_import_wordml_wordml2ooo_field__share_xslt_import_wordml	4D4D3AF4-4300-4B4D-8F47-DE854408C33F
++g_f_xsl_import_wordml_wordml2ooo_list__share_xslt_import_wordml	F0930FAD-1542-4D43-BC3A-074514582CCD
++g_f_xsl_import_wordml_wordml2ooo_page__share_xslt_import_wordml	D6CE93C5-959A-40AF-BF8D-763AA76343A6
++g_f_xsl_import_wordml_wordml2ooo_path__share_xslt_import_wordml	2375A95E-BFB0-49C4-8A59-517E7DA023D4
++g_f_xsl_import_wordml_wordml2ooo_props__share_xslt_import_wordml	115CDF6C-93CE-420F-A1F7-88A1756E87E8
++g_f_xsl_import_wordml_wordml2ooo_settings__share_xslt_import_wordml	8848470A-A356-4452-8EAA-F04E627FB8E5
++g_f_xsl_import_wordml_wordml2ooo_tb__share_xslt_import_wordml	BF3D7700-6682-48EE-97A2-6DA9433685D3
++g_f_xsl_import_wordml_wordml2ooo_text__share_xslt_import_wordml	BADA61F8-9655-47EE-AF33-77D1AAD6053C
++g_f_xsl_mediawiki__share_xslt_wiki	DD61720F-BD62-4F70-AD7E-8384056D4AC2
++g_f_xsl_sofftodocbookheadings__share_xslt_docbook	3C758C37-EE31-4E74-AB85-5D4DEE6FCDC5
++g_f_zip_writingaids__share_dict_ooo	19D7078F-DAA7-4358-AC3C-DF541F812A0C
++g_f_zip_writingaids__share_dict_ooo_af_za	72FC4DCF-E14F-4029-A5AD-857A485F0EC7
++g_f_zip_writingaids__share_dict_ooo_bg_bg	D8953731-8E9D-4D3E-9359-370D52DBBFD5
++g_f_zip_writingaids__share_dict_ooo_ca_es	12DB477B-5D66-4B6C-A4B0-5DE81C5E0E6A
++g_f_zip_writingaids__share_dict_ooo_cs_cz	911FC6F9-1275-4349-8E65-5C142C9C8A83
++g_f_zip_writingaids__share_dict_ooo_cy_gb	814578F1-4DF7-42A0-9567-3C79025102F0
++g_f_zip_writingaids__share_dict_ooo_da_dk	6E99A4EA-7B7A-46DF-BE0A-DC5C2CBAD97A
++g_f_zip_writingaids__share_dict_ooo_de_at	C8DF5692-53EF-4FF0-930D-BEF79F6D48BF
++g_f_zip_writingaids__share_dict_ooo_de_ch	83A05ABF-62A6-4174-8B8C-9BABD9D1D81F
++g_f_zip_writingaids__share_dict_ooo_de_de	DE0B4A53-5C81-4750-9E17-47BC7682BEC1
++g_f_zip_writingaids__share_dict_ooo_el_gr	E5B162AF-D227-4B9B-AAF9-3CC88F7C8A27
++g_f_zip_writingaids__share_dict_ooo_en_au	A8A2B89D-5C54-4B86-9DC2-905C1D880D22
++g_f_zip_writingaids__share_dict_ooo_en_gb	9C10C6ED-67E6-43B8-86E1-1E1A446722CC
++g_f_zip_writingaids__share_dict_ooo_en_nz	8F7E04A8-D5E0-4B75-A82A-121A895CC46A
++g_f_zip_writingaids__share_dict_ooo_en_us	6AE6CCFB-7F56-4EAD-BC42-FE5B72C06D84
++g_f_zip_writingaids__share_dict_ooo_en_za	6AA80567-F267-4271-9F0A-FCACAB1DE816
++g_f_zip_writingaids__share_dict_ooo_es_ar	ED1F373C-35F5-4ECE-8A99-493150237054
++g_f_zip_writingaids__share_dict_ooo_es_bo	C6A4FFF9-4E21-41E3-A7F7-274D95E961D8
++g_f_zip_writingaids__share_dict_ooo_es_cl	403DA26E-F15A-4CE9-BD1B-F650D64BF1EF
++g_f_zip_writingaids__share_dict_ooo_es_co	14546F15-3E39-4721-B5D0-E69A586544F2
++g_f_zip_writingaids__share_dict_ooo_es_cr	C0FC9127-662A-43D2-A398-BBFEDED42A4D
++g_f_zip_writingaids__share_dict_ooo_es_do	4D646F0B-C66C-418D-BEAB-89BEC1BB6F5B
++g_f_zip_writingaids__share_dict_ooo_es_ec	6BD35B1B-EA89-4EE7-944D-15CB10996930
++g_f_zip_writingaids__share_dict_ooo_es_es	0D046CE1-D90C-4CD9-AE3F-C180D3D2C7B1
++g_f_zip_writingaids__share_dict_ooo_es_gt	B2DFBF8D-48CC-4F27-96F9-A085A72DF70D
++g_f_zip_writingaids__share_dict_ooo_es_hn	53A1E6A8-83D7-4A66-B0FB-34694E0A3865
++g_f_zip_writingaids__share_dict_ooo_es_mx	7ED685BC-8240-4BDA-87B2-7B0B45241644
++g_f_zip_writingaids__share_dict_ooo_es_ni	9B764B4D-2738-4E42-B303-BB9DAFBC7CC1
++g_f_zip_writingaids__share_dict_ooo_es_pa	2DF00FF2-9A9A-4E7D-84F8-15AE1F60064F
++g_f_zip_writingaids__share_dict_ooo_es_pe	E728B713-B5D1-4B3F-A76C-1B99B92647CA
++g_f_zip_writingaids__share_dict_ooo_es_pr	0403D772-5096-4B91-AFED-D14D838DBC4A
++g_f_zip_writingaids__share_dict_ooo_es_py	44C43D36-E3DE-44DF-804F-BECDC9B44B5E
++g_f_zip_writingaids__share_dict_ooo_es_sv	D826E58C-74D5-4D21-8695-2EC75F98B0FE
++g_f_zip_writingaids__share_dict_ooo_es_uy	65B2C28C-6F9D-4446-8E38-D7E80108E0F8
++g_f_zip_writingaids__share_dict_ooo_es_ve	729FB9A2-0DB9-4D9E-AACB-53CD2E663D8C
++g_f_zip_writingaids__share_dict_ooo_et_ee	1F196C83-EBD8-42DA-9DDD-EF2683CD2686
++g_f_zip_writingaids__share_dict_ooo_fo_fo	1B88EBB2-FBBF-4806-963F-9AAE03988BDB
++g_f_zip_writingaids__share_dict_ooo_fr_fr	A8EFE894-3592-48D4-93C0-0E69338B302A
++g_f_zip_writingaids__share_dict_ooo_ga_ie	2E096FE3-8D5A-4BB7-B311-3BA05F97C02D
++g_f_zip_writingaids__share_dict_ooo_gd_gb	5FF89429-E808-4A8B-A43B-24B4BAA810F4
++g_f_zip_writingaids__share_dict_ooo_gl_es	8B5F1FE6-9C81-4734-9486-04A56453A72F
++g_f_zip_writingaids__share_dict_ooo_gu_in	58D6AA0F-248E-4B79-B723-8FF85F24EB5A
++g_f_zip_writingaids__share_dict_ooo_he_il	B1E32CFA-D573-4CEB-95EF-6F25B083700F
++g_f_zip_writingaids__share_dict_ooo_hi_in	AEAA3773-D9FB-4680-B924-8D8C152156F6
++g_f_zip_writingaids__share_dict_ooo_hr_hr	EF1CAECD-2250-44BA-925E-363C75352F41
++g_f_zip_writingaids__share_dict_ooo_hu_hu	1147601F-9753-44F4-A1F7-E36816C52777
++g_f_zip_writingaids__share_dict_ooo_hyph_bg_bg	9F27A9A2-E66E-4410-B04C-66F5158D3332
++g_f_zip_writingaids__share_dict_ooo_hyph_cs_cz	94DCD435-04C6-42DE-AF02-CB077A5CC658
++g_f_zip_writingaids__share_dict_ooo_hyph_da_dk	2FC7E767-FEAE-4A9B-A641-4BD7410E9318
++g_f_zip_writingaids__share_dict_ooo_hyph_de_ch	1D2E88F8-9727-4934-A82C-CB07985BB100
++g_f_zip_writingaids__share_dict_ooo_hyph_de_de	C99FAD02-40A4-49D3-A7DE-CDA828924ECF
++g_f_zip_writingaids__share_dict_ooo_hyph_el_gr	ADF87D9C-2A88-4C60-A4FB-037F88F0AFBE
++g_f_zip_writingaids__share_dict_ooo_hyph_en_ca	63966A70-7F74-49F4-98A9-3C83950AA72A
++g_f_zip_writingaids__share_dict_ooo_hyph_en_gb	850DB618-4131-4109-B1AA-D762526601FC
++g_f_zip_writingaids__share_dict_ooo_hyph_en_us	1ECBDA95-E1DE-4299-A538-BF8B0E9CEB36
++g_f_zip_writingaids__share_dict_ooo_hyph_es_es	51ACF46F-0920-47C0-AF10-9EEC27DF95E0
++g_f_zip_writingaids__share_dict_ooo_hyph_et_ee	7088ADCC-5063-4C76-BFF4-A1F14CEBBB94
++g_f_zip_writingaids__share_dict_ooo_hyph_fi_fi	6488CF88-0275-440E-8325-070E4CA50053
++g_f_zip_writingaids__share_dict_ooo_hyph_fr_be	1012A516-E0EC-4E69-9371-B3143EB23BBA
++g_f_zip_writingaids__share_dict_ooo_hyph_fr_fr	EA033068-92B0-42B7-9BDD-AE8D0D78940A
++g_f_zip_writingaids__share_dict_ooo_hyph_ga_ie	F57AE9E6-8A1D-4BBD-A04A-0A609290885D
++g_f_zip_writingaids__share_dict_ooo_hyph_hr_hr	BA4DF577-F3F8-4354-A362-C2053C338023
++g_f_zip_writingaids__share_dict_ooo_hyph_hu_hu	6290587C-D736-43B0-80AF-78C03BC97808
++g_f_zip_writingaids__share_dict_ooo_hyph_id_id	4C12F1D0-50EB-422B-98A6-45676EB6CE6A
++g_f_zip_writingaids__share_dict_ooo_hyph_is_is	C0DF096A-A058-4C56-B68A-DD22B60407F8
++g_f_zip_writingaids__share_dict_ooo_hyph_it_it	17680C14-34AD-448E-9042-324363C80489
++g_f_zip_writingaids__share_dict_ooo_hyph_lt_lt	B94C562B-576D-4051-B7E1-1E55B0CEBA7E
++g_f_zip_writingaids__share_dict_ooo_hyph_lv_lv	D5CF90C7-DF3D-4830-9CF3-F19BE5EC178D
++g_f_zip_writingaids__share_dict_ooo_hyph_nb_no	8C07005B-AE78-4733-A259-0B208A3086F6
++g_f_zip_writingaids__share_dict_ooo_hyph_nl_nl	F8E8F339-50F2-42FB-B831-D7AAF62B350A
++g_f_zip_writingaids__share_dict_ooo_hyph_nn_no	16C499F2-0B99-489F-A4F6-B92A77B91F83
++g_f_zip_writingaids__share_dict_ooo_hyph_pl_pl	20894DCB-D8EA-4921-988A-C21364C957E2
++g_f_zip_writingaids__share_dict_ooo_hyph_pt_br	5EE49241-315E-45D3-A022-089E320F7895
++g_f_zip_writingaids__share_dict_ooo_hyph_pt_pt	93C336FC-8B3F-4C10-96F9-E4E3F3664AB2
++g_f_zip_writingaids__share_dict_ooo_hyph_ro_ro	0381FED2-0261-459F-B7D4-CFEAB919C20C
++g_f_zip_writingaids__share_dict_ooo_hyph_ru_ru	7F070114-6A39-43FF-9D29-4CF668EDB704
++g_f_zip_writingaids__share_dict_ooo_hyph_sk_sk	592C6DE7-D6B4-4011-9EC6-EE8833D68AD3
++g_f_zip_writingaids__share_dict_ooo_hyph_sl_si	71BB6EFA-E5EF-4CF1-8380-DE385FFB0C2E
++g_f_zip_writingaids__share_dict_ooo_hyph_sv_se	C66027E6-5E35-4465-BA61-E465A640B631
++g_f_zip_writingaids__share_dict_ooo_hyph_uk_ua	E6EF050E-CA67-4BDD-BD30-377A89F2960C
++g_f_zip_writingaids__share_dict_ooo_id_id	A4D49EE5-1355-4826-A8AE-1C8126D6E1CF
++g_f_zip_writingaids__share_dict_ooo_it_it	3DBC7E3B-924F-4B7A-A212-CC6BCF697EAA
++g_f_zip_writingaids__share_dict_ooo_ku_tr	9FCA01BD-D911-490A-B7D7-B4CC01F30A20
++g_f_zip_writingaids__share_dict_ooo_lt_lt	301A7C18-1479-4B2E-922E-40629893F3C1
++g_f_zip_writingaids__share_dict_ooo_lv_lv	7E27F574-5729-4FAD-888C-FABAB5FFC8F8
++g_f_zip_writingaids__share_dict_ooo_mg_mg	28BC5396-06C5-4FE5-B751-6E7E0151F251
++g_f_zip_writingaids__share_dict_ooo_mi_nz	EF9EBBE1-8A3C-496D-9C84-630443892880
++g_f_zip_writingaids__share_dict_ooo_mk_mk	D8446E4D-DD9D-4934-A0AF-8B44136C0BEE
++g_f_zip_writingaids__share_dict_ooo_mr_in	CCAB9E2C-AC25-450D-825A-F04B745DEC21
++g_f_zip_writingaids__share_dict_ooo_ms_my	AD35DDE3-AB50-4D37-B22E-F15CD72F68D5
++g_f_zip_writingaids__share_dict_ooo_nb_no	998A95F7-8874-496A-A84E-883830FB7EF1
++g_f_zip_writingaids__share_dict_ooo_nl_nl	57801687-2E6F-40D2-BBFF-3E7B2453A323
++g_f_zip_writingaids__share_dict_ooo_nn_no	D499D40E-69D7-4C5D-9EE4-1EF548C73168
++g_f_zip_writingaids__share_dict_ooo_nr_za	B1CD3EB4-381B-4303-A47A-AF95E038CB72
++g_f_zip_writingaids__share_dict_ooo_ny_mw	A8A93567-B529-43E4-9BFF-4AB4DF856863
++g_f_zip_writingaids__share_dict_ooo_oc_fr	EF657BC3-24C1-46A7-930F-5D6E07A91B5D
++g_f_zip_writingaids__share_dict_ooo_pl_pl	1F1A2213-BF8F-4E01-8556-B236E3198710
++g_f_zip_writingaids__share_dict_ooo_pt_br	3E226D1B-C5C1-4959-83D6-D0E9E196F9B8
++g_f_zip_writingaids__share_dict_ooo_pt_pt	2181BE9C-68D9-4C11-8E3F-78C7680C32A4
++g_f_zip_writingaids__share_dict_ooo_ro_ro	A0D05933-24C9-4927-B335-AFA492AE8C95
++g_f_zip_writingaids__share_dict_ooo_ru_ru	506BD604-A699-4364-8D61-D1ABB58CE5AD
++g_f_zip_writingaids__share_dict_ooo_rw_rw	2681DC2E-C495-4C2F-B24C-E4DB0DEFE444
++g_f_zip_writingaids__share_dict_ooo_sk_sk	0C3E1BCB-59FD-4CE9-959C-3842CB484AA7
++g_f_zip_writingaids__share_dict_ooo_sl_si	E13CCBC2-3BC5-42BB-8F6A-D0213800DE27
++g_f_zip_writingaids__share_dict_ooo_ss_za	FE76D61A-AD4F-464B-801F-62E11148E9F8
++g_f_zip_writingaids__share_dict_ooo_st_za	AB06E70D-12CD-4B64-ADF5-2C2DBE4A1C96
++g_f_zip_writingaids__share_dict_ooo_sv_se	A0F6595A-A8EF-4F1E-941C-FE4E2D52C9DD
++g_f_zip_writingaids__share_dict_ooo_sw_ke	A7815E2A-06AC-45B6-93F4-390160A3A6F6
++g_f_zip_writingaids__share_dict_ooo_th_bg_bg	0EEDB3A3-7861-4A78-8BDD-2F2E17B64EC0
++g_f_zip_writingaids__share_dict_ooo_th_cs_cz	EB06C00B-D244-451E-9D67-64EE4E632578
++g_f_zip_writingaids__share_dict_ooo_th_de_de	8D85E740-DC89-4BEA-BEB3-FAF4D93CF767
++g_f_zip_writingaids__share_dict_ooo_th_en_us	9B9DCE5A-77EA-419E-A652-783621F14355
++g_f_zip_writingaids__share_dict_ooo_th_es_es	75974F37-742C-40EF-A5C4-A7921B9CE6A7
++g_f_zip_writingaids__share_dict_ooo_th_fr_fr	B1A7F985-D5B4-462B-A49F-9B3DF9C46709
++g_f_zip_writingaids__share_dict_ooo_th_nb_no	57C8D2BF-F103-4174-8BF1-DA3CAD468EB4
++g_f_zip_writingaids__share_dict_ooo_th_ne_np	112A1C26-4A4D-4116-9BC7-039B7686ED9E
++g_f_zip_writingaids__share_dict_ooo_th_pl_pl	414D74A0-D886-4405-B182-DE5797D9F32C
++g_f_zip_writingaids__share_dict_ooo_th_pt_pt	32D1DAD4-C719-4860-A4BE-320C35FAB63C
++g_f_zip_writingaids__share_dict_ooo_th_sk_sk	658CE683-011A-486F-8717-05B62F0316FA
++g_f_zip_writingaids__share_dict_ooo_th_th	601B30FF-94B0-4736-A240-928242DE7C1A
++g_f_zip_writingaids__share_dict_ooo_tl_ph	6A24B435-F709-4DAB-9F1D-F53374938ACE
++g_f_zip_writingaids__share_dict_ooo_tn_za	DDBB941C-9FEB-4257-A3BC-F5791A95E039
++g_f_zip_writingaids__share_dict_ooo_ts_za	934C351C-9E1C-4291-AADA-22238FAD2549
++g_f_zip_writingaids__share_dict_ooo_uk_ua	610AE700-6207-4FDA-982D-413D89872C7A
++g_f_zip_writingaids__share_dict_ooo_ve_za	AED42ADD-B0D2-48BD-BCD4-9B7C477742A6
++g_f_zip_writingaids__share_dict_ooo_xh_za	29C3A381-0A0C-4AD2-9BD8-B3C50FC22873
++g_f_zip_writingaids__share_dict_ooo_zu_za	23328B84-30C5-455B-976F-1F3944A77ACC
++g_f_zlibdll__program	D09D0335-85FE-4183-8CFB-72C371624E43
++g_m_o_jf_pocketpc_pocket_excel_registry	37E4D155-DFDB-4151-BED8-C8CC04C6238D
++g_m_o_jf_pocketpc_pocket_word_registry	C46778B3-A1E3-4785-AF44-EDC3A0F139EA
++g_m_o_quickstart_registry	0EAA3B0A-315F-4EF9-9408-2105A4D5BF15
++g_m_o_winexplorerext_registry	DBE0EA3F-FC11-45B8-86D9-0A00872AD71C
++g_m_prg_base_bin_registry	9A7BB302-1A28-4C16-9A60-F2708B937ABD
++g_m_prg_calc_bin_registry	3F0D2026-CE7B-41E2-BFDA-190830678593
++g_m_prg_draw_bin_registry	55A0C4A3-620E-4204-A8A5-CE14FC8AE2E0
++g_m_prg_impress_bin_registry	81B28526-4B10-4C47-9DA3-B89D8996CEB4
++g_m_prg_math_bin_registry	CCB6FCDD-4980-4703-94B3-92C64C67D5FD
++g_m_prg_wrt_bin_registry	A94FE540-172C-42FF-AFCB-C525BC3E1804
++g_m_root_registry	5CA9D344-5DA5-45E2-8BB9-7BC3AC05C5CA
++gid_profile_bootstrap_ini__program	6F165624-46B5-4D47-9CB1-81413DE02EA3
++gid_profile_configmgr_ini__program	DC0A2B4D-C699-4F36-9CE1-CE5657633BB0
++gid_profile_jvmfwk_ini__program	1C59759D-AC7F-47FE-90F2-064ADD64971F
++gid_profile_pythonloader_uno_ini__program	7978AC45-8F75-4D0E-8B70-A91B0128EFCF
++gid_profile_setup_ini__program	10EAC4DF-FA8C-42AB-84A5-0FC4A1AE8022
++gid_profile_soffice_ini__program	5F1A864C-E7E1-40B6-BF41-67EF181366FF
++gid_profile_uno_ini__program	380DB614-88C9-4650-9DA5-92725C208B61
++gid_profile_version_ini__program	02B2202A-D215-4302-B694-DA5266683AB6
++gid_starregistry_legacy_binfilters_rdb__program	5DAA5CD3-B28C-4144-932B-70CCB491C8B4
++gid_starregistry_services_rdb__program	A76193D6-10D7-4437-B437-0E704446DD96
+dummy line to avoid confusing diff-mode
+--- solenv/bin/modules/installer/globals.pm
++++ solenv/bin/modules/installer/globals.pm
+@@ -243,14 +243,14 @@
+ 	$javamaxservices = 15;
+ 	
+ 	$one_cab_file = 0;
+-	$fix_number_of_cab_files = 0;
++	$fix_number_of_cab_files = 1;
+ 	$cab_file_per_component = 0;
+ 	$cabfilecompressionlevel = 2;
+-	$number_of_cabfiles = 4;	# only for $fix_number_of_cab_files = 1 
++	$number_of_cabfiles = 1;	# only for $fix_number_of_cab_files = 1 
+ 	$include_cab_in_msi = 0;
+-	$use_packages_for_cabs = 1;
++	$use_packages_for_cabs = 0;
+ 	$msidatabasename = "";
+-	$prepare_winpatch = 0;
++	$prepare_winpatch = 1;
+ 	$previous_idt_dir = "";	
+ 	$updatepack = 0;
+ 	$msitranpath = "";
+--- solenv/bin/modules/installer/windows/file.pm
++++ solenv/bin/modules/installer/windows/file.pm
+@@ -302,11 +302,23 @@
+ 
+ 	if ( $allvariables->{'USE_FILEVERSION'} )
+ 	{
+-		if ( ! $allvariables->{'LIBRARYVERSION'} ) { installer::exiter::exit_program("ERROR: USE_FILEVERSION is set, but not LIBRARYVERSION", "get_fileversion"); } 
+-		$fileversion = $allvariables->{'LIBRARYVERSION'} . "\." . $installer::globals::buildid;
++		# We want the versions in the File table to be the same
++		# as those actually inside the VRB for EXEs and DLLs.
++		if ( $fileref->{'sourcepath'} =~ /\.(exe|dll)$/i )
++		{
++			$fileversion = `fileversion $fileref->{'sourcepath'}`;
++			chomp ($fileversion);
++			$fileversion =~ s/\r$//;
++		}
++		if ( $fileversion eq '' )
++		{
++			my @packageversion = ($allvariables->{'PACKAGEVERSION'} =~ /^(\d+)\.(\d+)\.(\d+)$/);
++			my $patchlevel = '0';
++			my $patchlevel = $ENV{'OOO_PATCHLEVEL'} if defined $ENV{'OOO_PATCHLEVEL'};
++			$fileversion = $installer::globals::buildid . '.' . $packageversion[0] . '.' . ($packageversion[1]*100 + $packageversion[2]) . '.' . $patchlevel;
++		}
+ 	}
+ 	
+-	if ( $installer::globals::prepare_winpatch ) { $fileversion = ""; } # Windows patches do not allow this version
+ 		
+ 	return $fileversion;
+ }
+dummy line to avoid confusing diff-mode
+--- solenv/bin/modules/installer/windows/property.pm
++++ solenv/bin/modules/installer/windows/property.pm
+@@ -293,6 +293,8 @@
+ 	my $productversion = get_productversion_for_property_table();
+ 	my $quickstarterlinkname = get_quickstarterlinkname_for_property_table($allvariables);
+ 
++	$productversion .= '.' . $ENV{'OOO_PATCHLEVEL'} if defined ($ENV{'OOO_PATCHLEVEL'}) && ($productversion =~ /^\d+\.\d+\.\d+$/);
++
+ 	# Updating the values
+ 
+ 	for ( my $i = 0; $i <= $#{$propertyfile}; $i++ )
+dummy line to avoid confusing diff-mode
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium_macro_script.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium_macro_script.diff
@@ -0,0 +1,9 @@
+--- wizards/source/config/script.xlc.orig	2006-05-17 09:41:42.000000000 +0200
++++ wizards/source/config/script.xlc	2006-07-02 13:52:33.687500000 +0200
+@@ -12,4 +12,6 @@
+  <library:library library:name="Euro" library:link="true"/>
+  <library:library library:name="Depot" library:link="true"/>
+  <library:library library:name="ScriptBindingLibrary" library:link="true"/>
++ <library:library library:name="Premium" library:link="true"/>
++ <library:library library:name="OOoWikipedia" library:link="true"/>
+ </library:libraries>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-testtools.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-testtools.diff
@@ -0,0 +1,12 @@
+--- testtools/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ testtools/prj/tests.lst	2007-09-07 14:32:15.000000000 +0200
+@@ -0,0 +1 @@
++tt   testtools\qa\cli                                   nmake - all tt_qa_cli NULL
+--- testtools/prj/build.lst	2007-09-07 21:19:43.000000000 +0200
++++ testtools/prj/build.lst	2007-09-07 22:01:23.000000000 +0200
+@@ -1,4 +1,4 @@
+-tt testtools : cpputools io remotebridges stoc javaunohelper pyuno cli_ure NULL
++tt testtools : cpputools io remotebridges stoc javaunohelper pyuno cli_ure QADEVOOO:qadevOOo NULL
+ tt testtools\inc nmake - all tt_inc NULL
+ tt testtools\source\bridgetest nmake - all tt_bridgetest tt_bridgetest_idl tt_javaTestObjs tt_inc NULL
+ tt testtools\source\bridgetest\cli nmake - w,vc7 tt_cli tt_bridgetest tt_bridgetest_idl tt_inc NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fix-linkoo.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fix-linkoo.diff
@@ -0,0 +1,56 @@
+--- sal/osl/unx/file_url.cxx	2007-11-27 21:34:37.000000000 +0100
++++ sal/osl/unx/file_url.cxx	2007-11-27 22:15:11.000000000 +0100
+@@ -781,6 +781,7 @@ oslFileError osl_getAbsoluteFileURL(rtl_
+ {
+ 	FileBase::RC  rc;
+     rtl::OUString unresolved_path;    
++    static char *allow_symlinks = getenv( "SAL_ALLOW_LINKOO_SYMLINKS" );
+     
+     rc = FileBase::getSystemPathFromFileURL(rtl::OUString(ustrRelativeURL), unresolved_path);
+     
+@@ -801,8 +802,33 @@ oslFileError osl_getAbsoluteFileURL(rtl_
+         unresolved_path = abs_path;        
+     }
+ 
+-	rtl::OUString resolved_path;	  
+-    rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
++    rtl::OUString resolved_path;
++
++    if (!allow_symlinks)
++    {
++        rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
++    }
++    else
++    {
++        // SAL_ALLOW_LINKOO_SYMLINKS environment variable:
++        // for linkoo to work, we need to let the symlinks to the libraries untouched
++        rtl::OUString base;
++        sal_Int32 last_slash = unresolved_path.lastIndexOf( UNICHAR_SLASH );
++
++        if (last_slash >= 0 && last_slash + 1 < unresolved_path.getLength())
++        {
++            base = unresolved_path.copy(last_slash+1);
++            unresolved_path = unresolved_path.copy(0, last_slash);
++        }
++
++        rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
++        
++        if (base.getLength() > 0)
++        {
++            resolved_path += rtl::OUString( UNICHAR_SLASH );
++            resolved_path += base;
++        }
++    }
+         
+ 	if (FileBase::E_None == rc)
+     {
+--- solenv/bin/linkoo	2007-11-27 22:18:49.000000000 +0100
++++ solenv/bin/linkoo	2007-11-27 22:19:44.000000000 +0100
+@@ -56,6 +56,7 @@ export STAR_RESOURCEPATH=`pwd`/resource
+ export OOO_FORCE_SYSALLOC=1
+ export MALLOC_CHECK_=2
+ export OOO_DISABLE_RECOVERY=1
++export SAL_ALLOW_LINKOO_SYMLINKS=1
+ ';
+ 
+ $program_dir = 'program';
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-default-delete-backspace-key.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-default-delete-backspace-key.diff
@@ -0,0 +1,80 @@
+--- sc/uiconfig/scalc/accelerator/en-US/default.xml.orig	2007-10-29 17:19:39.000000000 -0400
++++ sc/uiconfig/scalc/accelerator/en-US/default.xml	2007-10-29 17:22:02.000000000 -0400
+@@ -82,11 +82,12 @@
+ 	<accel:item accel:code="KEY_TAB" accel:shift="true" xlink:href=".uno:JumpToPreviousUnprotected"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:SelectColumn"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:shift="true" xlink:href=".uno:SelectRow"/>
++	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:Delete"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:shift="true" xlink:href=".uno:Deselect"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:mod1="true" xlink:href=".uno:GoToCurrentCell"/>
+ 	<accel:item accel:code="KEY_MULTIPLY" accel:mod1="true" xlink:href=".uno:SelectData"/>
+ 	<accel:item accel:code="KEY_F2" xlink:href=".uno:SetInputMode"/>
+-	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:ClearContents"/>
++	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:ClearContents"/>
+ 	<accel:item accel:code="KEY_ESCAPE" xlink:href=".uno:Cancel"/>
+ 	<accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:SelectArrayFormula"/>
+ 	<accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
+--- sc/uiconfig/scalc/accelerator/en-GB/default.xml.orig	2007-10-29 17:19:39.000000000 -0400
++++ sc/uiconfig/scalc/accelerator/en-GB/default.xml	2007-10-29 17:22:02.000000000 -0400
+@@ -82,11 +82,12 @@
+ 	<accel:item accel:code="KEY_TAB" accel:shift="true" xlink:href=".uno:JumpToPreviousUnprotected"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:SelectColumn"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:shift="true" xlink:href=".uno:SelectRow"/>
++	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:Delete"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:shift="true" xlink:href=".uno:Deselect"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:mod1="true" xlink:href=".uno:GoToCurrentCell"/>
+ 	<accel:item accel:code="KEY_MULTIPLY" accel:mod1="true" xlink:href=".uno:SelectData"/>
+ 	<accel:item accel:code="KEY_F2" xlink:href=".uno:SetInputMode"/>
+-	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:ClearContents"/>
++	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:ClearContents"/>
+ 	<accel:item accel:code="KEY_ESCAPE" xlink:href=".uno:Cancel"/>
+ 	<accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:SelectArrayFormula"/>
+ 	<accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
+--- sc/uiconfig/scalc/accelerator/fr/default.xml.orig	2007-10-29 17:19:39.000000000 -0400
++++ sc/uiconfig/scalc/accelerator/fr/default.xml	2007-10-29 17:22:02.000000000 -0400
+@@ -82,11 +82,12 @@
+ 	<accel:item accel:code="KEY_TAB" accel:shift="true" xlink:href=".uno:JumpToPreviousUnprotected"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:SelectColumn"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:shift="true" xlink:href=".uno:SelectRow"/>
++	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:Delete"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:shift="true" xlink:href=".uno:Deselect"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:mod1="true" xlink:href=".uno:GoToCurrentCell"/>
+ 	<accel:item accel:code="KEY_MULTIPLY" accel:mod1="true" xlink:href=".uno:SelectData"/>
+ 	<accel:item accel:code="KEY_F2" xlink:href=".uno:SetInputMode"/>
+-	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:ClearContents"/>
++	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:ClearContents"/>
+ 	<accel:item accel:code="KEY_ESCAPE" xlink:href=".uno:Cancel"/>
+ 	<accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:SelectArrayFormula"/>
+ 	<accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
+--- sc/uiconfig/scalc/accelerator/es/default.xml.orig	2007-10-29 17:19:39.000000000 -0400
++++ sc/uiconfig/scalc/accelerator/es/default.xml	2007-10-29 17:22:02.000000000 -0400
+@@ -82,11 +82,12 @@
+ 	<accel:item accel:code="KEY_TAB" accel:shift="true" xlink:href=".uno:JumpToPreviousUnprotected"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:SelectColumn"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:shift="true" xlink:href=".uno:SelectRow"/>
++	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:Delete"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:shift="true" xlink:href=".uno:Deselect"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:mod1="true" xlink:href=".uno:GoToCurrentCell"/>
+ 	<accel:item accel:code="KEY_MULTIPLY" accel:mod1="true" xlink:href=".uno:SelectData"/>
+ 	<accel:item accel:code="KEY_F2" xlink:href=".uno:SetInputMode"/>
+-	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:ClearContents"/>
++	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:ClearContents"/>
+ 	<accel:item accel:code="KEY_ESCAPE" xlink:href=".uno:Cancel"/>
+ 	<accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:SelectArrayFormula"/>
+ 	<accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
+--- sc/uiconfig/scalc/accelerator/de/default.xml.orig	2007-10-29 17:19:39.000000000 -0400
++++ sc/uiconfig/scalc/accelerator/de/default.xml	2007-10-29 17:22:02.000000000 -0400
+@@ -82,11 +82,12 @@
+ 	<accel:item accel:code="KEY_TAB" accel:shift="true" xlink:href=".uno:JumpToPreviousUnprotected"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:SelectColumn"/>
+ 	<accel:item accel:code="KEY_SPACE" accel:shift="true" xlink:href=".uno:SelectRow"/>
++	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:Delete"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:shift="true" xlink:href=".uno:Deselect"/>
+ 	<accel:item accel:code="KEY_BACKSPACE" accel:mod1="true" xlink:href=".uno:GoToCurrentCell"/>
+ 	<accel:item accel:code="KEY_MULTIPLY" accel:mod1="true" xlink:href=".uno:SelectData"/>
+ 	<accel:item accel:code="KEY_F2" xlink:href=".uno:SetInputMode"/>
+-	<accel:item accel:code="KEY_BACKSPACE" xlink:href=".uno:ClearContents"/>
++	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:ClearContents"/>
+ 	<accel:item accel:code="KEY_ESCAPE" xlink:href=".uno:Cancel"/>
+ 	<accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:SelectArrayFormula"/>
+ 	<accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cairocanvas-fix-image-cache.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cairocanvas-fix-image-cache.diff
@@ -0,0 +1,12 @@
+diff -rup canvas-orig/source/cairo/cairo_canvashelper.cxx canvas/source/cairo/cairo_canvashelper.cxx
+--- canvas-orig/source/cairo/cairo_canvashelper.cxx	2008-03-03 11:01:58.000000000 +0100
++++ canvas/source/cairo/cairo_canvashelper.cxx	2008-03-03 11:04:49.000000000 +0100
+@@ -1271,7 +1271,7 @@ namespace cairocanvas
+                                                                                         bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
+ 					Cairo* pCairo = pScaledSurface->getCairo();
+ 
+-					// cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
++					cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
+                     // add 0.5px to size to avoid rounding errors in cairo, leading sometimes to random data on the image right/bottom borders
+ 					cairo_scale( pCairo, (dWidth+0.5)/rSize.Width, (dHeight+0.5)/rSize.Height );
+ 					cairo_set_source_surface( pCairo, pSurface->mpSurface, 0, 0 );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/Makefile.am
+++ openoffice.org-2.4.1/ooo-build/patches/src680/Makefile.am
@@ -0,0 +1,4 @@
+EXTRA_DIST = apply ${wildcard *.diff}
+
+patch.apply:
+	cd ../.. ; make patch.apply
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-sparc-hack.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-sparc-hack.diff
@@ -0,0 +1,32 @@
+--- idlc/source/idlcmain.cxx~	2006-09-17 10:14:44.000000000 +0200
++++ idlc/source/idlcmain.cxx	2007-03-06 16:36:09.488019869 +0100
+@@ -42,12 +42,29 @@
+ #include "sal/main.h"
+ #endif
+ 
++extern "C" {
++#include <stdio.h>
++#include "sched.h"
++}
++
++void set_affinity(void)
++{
++    cpu_set_t mask;
++
++    CPU_ZERO(&mask);
++    CPU_SET(0, &mask);
++    if (sched_setaffinity(0, sizeof(cpu_set_t), &mask))
++        perror("sched_setaffinity");
++}
++
+ using namespace ::rtl;
+ 
+ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
+ {
+     Options options;
+ 
++    set_affinity();
++
+     try 
+     {
+         if (!options.initOptions(argc, argv))
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-cellbackground-over-gridlines.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-cellbackground-over-gridlines.diff
@@ -0,0 +1,93 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/output.hxx sc/source/ui/inc/output.hxx
+--- sc.clean/source/ui/inc/output.hxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/inc/output.hxx	2008-03-14 19:18:50.000000000 -0400
+@@ -237,6 +237,7 @@ public:
+ 
+ 	void	DrawGrid( BOOL bGrid, BOOL bPage );
+ 	void	DrawStrings( BOOL bPixelToLogic = FALSE );
++    void    DrawDocumentBackground();
+ 	void	DrawBackground();
+ 	void	DrawShadow();
+ 	void	DrawExtraShadow(BOOL bLeft, BOOL bTop, BOOL bRight, BOOL bBottom);
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/gridwin4.cxx sc/source/ui/view/gridwin4.cxx
+--- sc.clean/source/ui/view/gridwin4.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/gridwin4.cxx	2008-03-14 19:18:50.000000000 -0400
+@@ -721,9 +721,10 @@ void ScGridWindow::Draw( SCCOL nX1, SCRO
+ 		aOutputData.SetSolidBackground(TRUE);
+ 
+ 	pContentDev->SetMapMode(MAP_PIXEL);
+-	aOutputData.DrawBackground();
++    aOutputData.DrawDocumentBackground();
+ 	if ( bGridFirst && ( bGrid || bPage ) )
+ 		aOutputData.DrawGrid( bGrid, bPage );
++	aOutputData.DrawBackground();
+ 	if ( bPageMode )
+ 	{
+ 		// #87655# DrawPagePreview draws complete lines/page numbers, must always be clipped
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/output.cxx sc/source/ui/view/output.cxx
+--- sc.clean/source/ui/view/output.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/output.cxx	2008-03-14 19:21:04.000000000 -0400
+@@ -796,14 +796,23 @@ BOOL lcl_EqualBack( const RowInfo& rFirs
+ 	return TRUE;
+ }
+ 
+-void ScOutputData::DrawBackground()
++void ScOutputData::DrawDocumentBackground()
+ {
+-	FindRotated();				//! von aussen ?
++    if ( !bSolidBackground )
++        return;
+ 
+-	ScModule* pScMod = SC_MOD();
++    Size aOnePixel = pDev->PixelToLogic(Size(1,1));
++    long nOneX = aOnePixel.Width();
++    long nOneY = aOnePixel.Height();
++    Rectangle aRect(nScrX - nOneX, nScrY - nOneY, nScrX + nScrW, nScrY + nScrH);
++    Color aBgColor( SC_MOD()->GetColorConfig().GetColorValue(svtools::DOCCOLOR).nColor );
++    pDev->SetFillColor(aBgColor);
++    pDev->DrawRect(aRect);
++}
+ 
+-	// used only if bSolidBackground is set (only for ScGridWindow):
+-    Color aBgColor( pScMod->GetColorConfig().GetColorValue(svtools::DOCCOLOR).nColor );
++void ScOutputData::DrawBackground()
++{
++	FindRotated();				//! von aussen ?
+ 
+ 	Rectangle aRect;
+ 	Size aOnePixel = pDev->PixelToLogic(Size(1,1));
+@@ -852,7 +861,7 @@ void ScOutputData::DrawBackground()
+ 				long nPosX = nScrX;
+ 				if ( bLayoutRTL )
+ 					nPosX += nMirrorW - nOneX;
+-				aRect = Rectangle( nPosX,nPosY, nPosX,nPosY+nRowHeight-nOneY );
++				aRect = Rectangle( nPosX, nPosY-nOneY, nPosX, nPosY+nRowHeight-nOneY );
+ 
+ 				const SvxBrushItem* pOldBackground = NULL;
+ 				const SvxBrushItem* pBackground;
+@@ -900,15 +909,13 @@ void ScOutputData::DrawBackground()
+ 						if (pOldBackground)				// ==0 if hidden
+ 						{
+ 							Color aBackCol = pOldBackground->GetColor();
+-							if ( bSolidBackground && aBackCol.GetTransparency() )
+-								aBackCol = aBgColor;
+ 							if ( !aBackCol.GetTransparency() )		//! partial transparency?
+ 							{
+ 								pDev->SetFillColor( aBackCol );
+ 								pDev->DrawRect( aRect );
+ 							}
+ 						}
+-						aRect.Left() = nPosX;
++						aRect.Left() = nPosX - nSignedOneX;
+ 						pOldBackground = pBackground;
+ 					}
+ 					nPosX += pRowInfo[0].pCellInfo[nX+1].nWidth * nLayoutSign;
+@@ -917,8 +924,6 @@ void ScOutputData::DrawBackground()
+ 				if (pOldBackground)
+ 				{
+ 					Color aBackCol = pOldBackground->GetColor();
+-					if ( bSolidBackground && aBackCol.GetTransparency() )
+-						aBackCol = aBgColor;
+ 					if ( !aBackCol.GetTransparency() )		//! partial transparency?
+ 					{
+ 						pDev->SetFillColor( aBackCol );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium-splitted-language-packages.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium-splitted-language-packages.diff
@@ -0,0 +1,78 @@
+--- setup_native/source/packinfo/packinfo_office_lang.txt.orig	2008-03-25 00:11:06.000000000 +0100
++++ setup_native/source/packinfo/packinfo_office_lang.txt	2008-03-23 15:36:45.000000000 +0100
+@@ -75,3 +75,75 @@
+ description = "Language help module for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING"
+ destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
+ End
++
++# Language depended package definitions for OxygenOffice Professional
++
++# 1/4 Templates
++
++Start
++module = "gid_Module_Optional_Accessories_Templates"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-templates"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING"
++packagename = "%UNIXPRODUCTNAME-%LANGUAGESTRING-extra-templates"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-templates"
++provides = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-templates"
++requires = "%UNIXPRODUCTNAME-%LANGUAGESTRING"
++copyright = "1999-2008 by %PRODUCTNAME"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Extra templates for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++# 2/4 Samples
++
++Start
++module = "gid_Module_Optional_Accessories_Samples"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-samples"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING"
++packagename = "%UNIXPRODUCTNAME-%LANGUAGESTRING-extra-samples"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-samples"
++provides = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-samples"
++requires = "%UNIXPRODUCTNAME-%LANGUAGESTRING"
++copyright = "1999-2008 by %PRODUCTNAME"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Extra samples for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++# 3/4 Documentations
++
++Start
++module = "gid_Module_Optional_Accessories_Documentations"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-documentations"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING"
++packagename = "%UNIXPRODUCTNAME-%LANGUAGESTRING-extra-documentations"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-documentations"
++provides = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-documentations"
++requires = "%UNIXPRODUCTNAME-%LANGUAGESTRING"
++copyright = "1999-2008 by %PRODUCTNAME"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Extra documentations for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++# 4/4 Advertisement
++
++Start
++module = "gid_Module_Optional_Accessories_Advertisement"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-advertisement"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING"
++packagename = "%UNIXPRODUCTNAME-%LANGUAGESTRING-extra-advertisement"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-advertisement"
++provides = "%WITHOUTDOTUNIXPRODUCTNAME-%LANGUAGESTRING-extra-advertisement"
++requires = "%UNIXPRODUCTNAME-%LANGUAGESTRING"
++copyright = "1999-2008 by %PRODUCTNAME"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Extra advertisement for %PRODUCTNAME %PRODUCTVERSION, language %LANGUAGESTRING"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++# END OF Language depended package definitions for OxygenOffice Professional
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-timer.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-timer.diff
@@ -0,0 +1,1368 @@
+diff --git a/configmgr/inc/pch/precompiled_configmgr.hxx b/configmgr/inc/pch/precompiled_configmgr.hxx
+index d67a23b..9ebd156 100644
+--- configmgr/inc/pch/precompiled_configmgr.hxx
++++ configmgr/inc/pch/precompiled_configmgr.hxx
+@@ -247,7 +247,7 @@
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/socket.hxx"
+ #include "osl/thread.hxx"
+-#include "vos/timer.hxx"
++#include "salhelper/timer.hxx"
+ //---MARKER---
+ 
+ #endif
+diff --git a/configmgr/source/treecache/cachewritescheduler.hxx b/configmgr/source/treecache/cachewritescheduler.hxx
+index 26e5e03..faa4cf9 100644
+--- configmgr/source/treecache/cachewritescheduler.hxx
++++ configmgr/source/treecache/cachewritescheduler.hxx
+@@ -51,8 +51,8 @@
+ #define INCLUDED_SET
+ #endif
+ 
+-#ifndef _VOS_TIMER_HXX_
+-#include <vos/timer.hxx>
++#ifndef _SALHELPER_TIMER_HXX_
++#include <salhelper/timer.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+@@ -74,14 +74,14 @@ namespace configmgr
+ 	{
+ 		typedef std::set< RequestOptions, lessRequestOptions > CacheWriteList; // fire and forget!
+ 
+-		class Timer : public vos::OTimer
++		class Timer : public salhelper::Timer
+ 		{
+ 		public:
+ 			OCacheWriteScheduler* pParent;
+ 
+ 			Timer(OCacheWriteScheduler& _rParent) : pParent(&_rParent) {};
+ 
+-			// vos::OTimer
++			// salhelper::Timer
+ 			virtual void SAL_CALL onShot();
+ 
+ 			// stop the scheduling
+@@ -130,7 +130,7 @@ namespace configmgr
+ 		/// stop and discard pending activities
+ 		void stopAndWriteCache();
+ 	private:
+-		// vos::OTimer
++		// salhelper::Timer
+ 		void onTimerShot();
+ 
+ 		void runWriter();
+diff --git a/configmgr/source/treecache/disposetimer.cxx b/configmgr/source/treecache/disposetimer.cxx
+index df23693..e81f959 100644
+--- configmgr/source/treecache/disposetimer.cxx
++++ configmgr/source/treecache/disposetimer.cxx
+@@ -283,7 +283,7 @@ TimeStamp OTreeDisposeScheduler::runDisposer(TimeStamp const& _aActualTime)
+ // -------------------------------------------------------------------------
+ 
+ static inline
+-TimeStamp getExpirationTime( vos::OTimer const& aTimer )
++TimeStamp getExpirationTime( salhelper::Timer const& aTimer )
+ {
+     OSL_ENSURE(aTimer.isTicking(), "Timer is already expired !");
+ 
+@@ -299,9 +299,9 @@ TimeStamp getExpirationTime( vos::OTimer const& aTimer )
+ 
+ #if OSL_DEBUG_LEVEL > 0
+ static
+-void checkTimerStarted( vos::OTimer const& aTimer, TimeStamp const& _aLimit)
++void checkTimerStarted( salhelper::Timer const& aTimer, TimeStamp const& _aLimit)
+ {
+-    const TimeInterval tolerance( vos::TTimeValue(1) ); // milliseconds
++    const TimeInterval tolerance( salhelper::TTimeValue(1) ); // milliseconds
+     if (aTimer.isTicking())
+     {
+         TimeStamp   const    expires = getExpirationTime(aTimer);
+diff --git a/configmgr/source/treecache/disposetimer.hxx b/configmgr/source/treecache/disposetimer.hxx
+index a61eaa0..8d188bb 100644
+--- configmgr/source/treecache/disposetimer.hxx
++++ configmgr/source/treecache/disposetimer.hxx
+@@ -47,8 +47,8 @@
+ #include <osl/mutex.hxx>
+ #endif
+ 
+-#ifndef _VOS_TIMER_HXX_
+-#include <vos/timer.hxx>
++#ifndef _SALHELPER_TIMER_HXX_
++#include <salhelper/timer.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+@@ -86,14 +86,14 @@ namespace configmgr
+ 		typedef std::multimap< TimeStamp, RequestOptions, ltTimeStamp > Agenda;
+         typedef backend::CacheController CacheManager;
+ 
+-		class Timer : public vos::OTimer
++		class Timer : public salhelper::Timer
+ 		{
+ 		public:
+ 			OTreeDisposeScheduler* pParent;
+ 
+ 			Timer(OTreeDisposeScheduler& _rParent) : pParent(&_rParent) {};
+ 
+-			// vos::OTimer
++			// salhelper::Timer
+ 			virtual void SAL_CALL onShot();
+ 
+ 			// stop the scheduling
+@@ -173,7 +173,7 @@ namespace configmgr
+ 		void stopAndClearTasks();
+ 
+ 	private:
+-		// vos::OTimer
++		// salhelper::Timer
+ 		void onTimerShot();
+ 
+         typedef std::pair<bool,RequestOptions> Task;
+diff --git a/configmgr/source/treecache/timestamp.hxx b/configmgr/source/treecache/timestamp.hxx
+index 293ecad..0cbcf0d 100644
+--- configmgr/source/treecache/timestamp.hxx
++++ configmgr/source/treecache/timestamp.hxx
+@@ -36,7 +36,7 @@
+ #ifndef CONFIGMGR_TIMESTAMP_HXX
+ #define CONFIGMGR_TIMESTAMP_HXX
+ 
+-#include <vos/timer.hxx>
++#include <salhelper/timer.hxx>
+ 
+ namespace configmgr
+ {
+@@ -44,7 +44,7 @@ namespace configmgr
+ 
+ 	class TimeInterval
+ 	{
+-		vos::TTimeValue m_aTime;
++		salhelper::TTimeValue m_aTime;
+ 	public:
+ 		TimeInterval() : m_aTime()
+ 		{}
+@@ -59,13 +59,13 @@ namespace configmgr
+ 
+ 		sal_Bool isEmpty() const { return m_aTime.isEmpty(); }
+ 
+-		vos::TTimeValue const& getTimeValue() const { return m_aTime; }
++		salhelper::TTimeValue const& getTimeValue() const { return m_aTime; }
+ 	};	
+ ////////////////////////////////////////////////////////////////////////////////
+ 
+ 	class TimeStamp
+ 	{
+-		vos::TTimeValue m_aTime;
++		salhelper::TTimeValue m_aTime;
+ 	public:
+ 		TimeStamp() : m_aTime()
+ 		{}
+@@ -77,7 +77,7 @@ namespace configmgr
+ 		TimeStamp& operator += (TimeInterval const& aInterval)
+ 		{ m_aTime.addTime(aInterval.getTimeValue()); return *this; }
+ 
+-		vos::TTimeValue const& getTimeValue() const { return m_aTime; }
++		salhelper::TTimeValue const& getTimeValue() const { return m_aTime; }
+ 
+ 		sal_Bool isNever() const;
+ 
+diff --git a/connectivity/inc/pch/precompiled_connectivity.hxx b/connectivity/inc/pch/precompiled_connectivity.hxx
+index 67dd6dc..9dd4961 100644
+--- connectivity/inc/pch/precompiled_connectivity.hxx
++++ connectivity/inc/pch/precompiled_connectivity.hxx
+@@ -335,7 +335,7 @@
+ #include "rtl/ref.hxx"
+ #include "rtl/ref.hxx"		
+ #include "salhelper/simplereferenceobject.hxx"
+-#include "vos/timer.hxx"
++#include "salhelper/timer.hxx"
+ //---MARKER---
+ 
+ #endif
+diff --git a/connectivity/source/cpool/ZConnectionPool.cxx b/connectivity/source/cpool/ZConnectionPool.cxx
+index da0e3e7..20ec0d6 100644
+--- connectivity/source/cpool/ZConnectionPool.cxx
++++ connectivity/source/cpool/ZConnectionPool.cxx
+@@ -125,7 +125,7 @@ OConnectionPool::OConnectionPool(const Reference< XDriver >& _xDriver,
+ 	OPoolCollection::getNodeValue(getTimeoutNodeName(),m_xDriverNode) >>= m_nALiveCount;
+ 	calculateTimeOuts();
+ 	
+-	m_xInvalidator = new OPoolTimer(this,::vos::TTimeValue(m_nTimeOut,0));
++	m_xInvalidator = new OPoolTimer(this,::salhelper::TTimeValue(m_nTimeOut,0));
+ 	m_xInvalidator->start();
+ }
+ // -----------------------------------------------------------------------------
+diff --git a/connectivity/source/cpool/ZConnectionPool.hxx b/connectivity/source/cpool/ZConnectionPool.hxx
+index ddc240d..444def7 100644
+--- connectivity/source/cpool/ZConnectionPool.hxx
++++ connectivity/source/cpool/ZConnectionPool.hxx
+@@ -65,8 +65,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_TIMER_HXX_ 
+-#include <vos/timer.hxx>
++#ifndef _SALHELPER_TIMER_HXX_
++#include <salhelper/timer.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+@@ -81,12 +81,12 @@ namespace connectivity
+ 	//==========================================================================
+ 	/// OPoolTimer - Invalidates the connection pool
+ 	//==========================================================================
+-	class OPoolTimer : public ::vos::OTimer
++	class OPoolTimer : public ::salhelper::Timer
+ 	{
+ 		OConnectionPool* m_pPool;
+ 	public:
+-		OPoolTimer(OConnectionPool* _pPool,const ::vos::TTimeValue& _Time) 
+-			: ::vos::OTimer(_Time)
++		OPoolTimer(OConnectionPool* _pPool,const ::salhelper::TTimeValue& _Time) 
++			: ::salhelper::Timer(_Time)
+ 			,m_pPool(_pPool)
+ 		{}
+ 	protected:
+diff --git a/connectivity/source/cpool/makefile.mk b/connectivity/source/cpool/makefile.mk
+index 3a2b263..c7f7ee2 100644
+--- connectivity/source/cpool/makefile.mk
++++ connectivity/source/cpool/makefile.mk
+@@ -72,7 +72,8 @@ SHL1STDLIBS=\
+ 	$(VOSLIB)					\
+ 	$(COMPHELPERLIB)			\
+ 	$(DBTOOLSLIB)				\
+-	$(SALLIB)
++	$(SALLIB)				\
++	$(SALHELPERLIB)
+ 
+ SHL1DEPN=
+ SHL1IMPLIB=	i$(SHL1TARGET)
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 49b59cb..603afc5 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -552,7 +552,7 @@
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/thread.hxx"
+-#include "vos/timer.hxx"
++#include "salhelper/timer.hxx"
+ 
+ #include "xmloff/nmspmap.hxx"
+ //---MARKER---
+diff --git a/extensions/source/plugin/base/xplugin.cxx b/extensions/source/plugin/base/xplugin.cxx
+index ea1e8d9..9707561 100644
+--- extensions/source/plugin/base/xplugin.cxx
++++ extensions/source/plugin/base/xplugin.cxx
+@@ -55,7 +55,7 @@
+ #include <tools/urlobj.hxx>
+ #include <tools/string.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/timer.hxx>
++#include <salhelper/timer.hxx>
+ #include <osl/file.hxx>
+ 
+ #ifdef UNX
+@@ -74,7 +74,7 @@ using namespace com::sun::star::plugin;
+ using namespace rtl;
+ using namespace osl;
+ 
+-class PluginDisposer : public vos::OTimer
++class PluginDisposer : public salhelper::Timer
+ {
+ private:
+     XPlugin_Impl*       m_pPlugin;
+@@ -82,8 +82,7 @@ private:
+     virtual void SAL_CALL onShot();
+ public:
+     PluginDisposer( XPlugin_Impl* pPlugin ) :
+-        OTimer( vos::TTimeValue( 2, 0 ),
+-                vos::TTimeValue( 2, 0 ) ),
++        salhelper::Timer( salhelper::TTimeValue( 2, 0 ), salhelper::TTimeValue( 2, 0 ) ),
+         m_pPlugin( pPlugin )
+         { start(); }
+     ~PluginDisposer() {}
+diff --git a/extensions/source/plugin/util/makefile.mk b/extensions/source/plugin/util/makefile.mk
+index 2465658..6f3512f 100644
+--- extensions/source/plugin/util/makefile.mk
++++ extensions/source/plugin/util/makefile.mk
+@@ -98,7 +98,8 @@ SHL1STDLIBS+= \
+ 	$(UCBHELPERLIB)		\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+-	$(SALLIB)
++	$(SALLIB)			\
++	$(SALHELPERLIB)
+ 
+ .IF "$(OS)"=="MACOSX" && "$(GUIBASE)"=="unx"
+ SHL1STDLIBS+= -lX11
+diff --git a/framework/inc/helper/timerhelper.hxx b/framework/inc/helper/timerhelper.hxx
+index 13fcd64..2814800 100644
+--- framework/inc/helper/timerhelper.hxx
++++ framework/inc/helper/timerhelper.hxx
+@@ -40,8 +40,8 @@
+ #include <threadhelp/threadhelpbase.hxx>
+ #endif
+ 
+-#ifndef _VOS_TIMER_HXX_
+-#include <vos/timer.hxx>
++#ifndef _SALHELPER_TIMER_HXX_
++#include <salhelper/timer.hxx>
+ #endif
+ 
+ #ifndef _OSL_MUTEX_HXX_
+@@ -68,13 +68,13 @@ namespace framework
+ 	/** implements a timer
+ 	*/
+     class OTimerHelper : private ThreadHelpBase
+-                       , public ::vos::OTimer
++                       , public ::salhelper::Timer
+ 	{
+ 	protected:
+ 		ITimerListener*	m_pListener;
+ 
+ 	public:
+-        OTimerHelper( const ::vos::TTimeValue& _rExpireTime );
++        OTimerHelper( const ::salhelper::TTimeValue& _rExpireTime );
+ 
+ 		// the link set here will be called with m_rMutex acquired
+         void            setListener( ITimerListener* _pListener )       { m_pListener = _pListener; }
+diff --git a/framework/inc/pch/precompiled_framework.hxx b/framework/inc/pch/precompiled_framework.hxx
+index dfb58b7..6e25f90 100644
+--- framework/inc/pch/precompiled_framework.hxx
++++ framework/inc/pch/precompiled_framework.hxx
+@@ -496,7 +496,7 @@
+ #include "osl/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "osl/thread.hxx"
+-#include "vos/timer.hxx"
++#include "salhelper/timer.hxx"
+ 
+ //---MARKER---
+ #endif
+diff --git a/framework/source/helper/timerhelper.cxx b/framework/source/helper/timerhelper.cxx
+index a955d23..bcec53a 100644
+--- framework/source/helper/timerhelper.cxx
++++ framework/source/helper/timerhelper.cxx
+@@ -57,9 +57,9 @@ namespace framework
+ 	//= OTimerHelper
+ 	//====================================================================
+ 	//--------------------------------------------------------------------
+-    OTimerHelper::OTimerHelper( const ::vos::TTimeValue& _rExpireTime  )
+-        : ThreadHelpBase ( &Application::GetSolarMutex()    )
+-        , OTimer         ( _rExpireTime                     )
++    OTimerHelper::OTimerHelper( const ::salhelper::TTimeValue& _rExpireTime  )
++        : ThreadHelpBase  ( &Application::GetSolarMutex()    )
++        , salhelper::Timer( _rExpireTime                     )
+ 	{
+ 	}
+ 
+diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk
+index bf5bb39..70230ea 100644
+--- framework/util/makefile.mk
++++ framework/util/makefile.mk
+@@ -348,6 +348,7 @@ SHL4STDLIBS=	\
+ 				$(CPPULIB)							\
+ 				$(VOSLIB)							\
+ 				$(SALLIB)					        \
++				$(SALHELPERLIB)					        \
+ 				$(UCBHELPERLIB)
+ 
+ SHL4DEF=		$(MISC)$/$(SHL4TARGET).def
+diff --git a/goodies/inc/pch/precompiled_goodies.hxx b/goodies/inc/pch/precompiled_goodies.hxx
+index 92e927b..4558988 100644
+--- goodies/inc/pch/precompiled_goodies.hxx
++++ goodies/inc/pch/precompiled_goodies.hxx
+@@ -176,7 +176,7 @@
+ 
+ #include "sal/macros.h"
+ #include "osl/mutex.hxx"
+-#include "vos/timer.hxx"
++#include "salhelper/timer.hxx"
+ //---MARKER---
+ 
+ #endif
+diff --git a/goodies/source/graphic/grfcache.cxx b/goodies/source/graphic/grfcache.cxx
+index d67a403..2e3f069 100644
+--- goodies/source/graphic/grfcache.cxx
++++ goodies/source/graphic/grfcache.cxx
+@@ -36,7 +36,7 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_goodies.hxx"
+ 
+-#include <vos/timer.hxx>
++#include <salhelper/timer.hxx>
+ #include <tools/debug.hxx>
+ #include <vcl/outdev.hxx>
+ #include <tools/poly.hxx>
+@@ -415,7 +415,7 @@ class GraphicDisplayCacheEntry
+ {
+ private:
+ 
+-	::vos::TTimeValue           maReleaseTime;
++	::salhelper::TTimeValue           maReleaseTime;
+     const GraphicCacheEntry*	mpRefCacheEntry;
+ 	GDIMetaFile*				mpMtf;
+ 	BitmapEx*					mpBmpEx;
+@@ -468,8 +468,8 @@ public:
+     const ULONG					GetOutDevDrawMode() const { return mnOutDevDrawMode; }
+     const USHORT				GetOutDevBitCount()	const { return mnOutDevBitCount; }
+     
+-    void                        SetReleaseTime( const ::vos::TTimeValue& rReleaseTime ) { maReleaseTime = rReleaseTime; }
+-    const ::vos::TTimeValue&    GetReleaseTime() const { return maReleaseTime; }
++    void                        SetReleaseTime( const ::salhelper::TTimeValue& rReleaseTime ) { maReleaseTime = rReleaseTime; }
++    const ::salhelper::TTimeValue&    GetReleaseTime() const { return maReleaseTime; }
+ 								
+ 	BOOL						Matches( OutputDevice* pOut, const Point& /*rPtPixel*/, const Size& rSzPixel,
+ 										 const GraphicCacheEntry* pCacheEntry, const GraphicAttr& rAttr ) const
+@@ -774,12 +774,12 @@ void GraphicCache::SetCacheTimeout( ULONG nTimeoutSeconds )
+     if( mnReleaseTimeoutSeconds != nTimeoutSeconds )
+     {
+         GraphicDisplayCacheEntry*   pDisplayEntry = (GraphicDisplayCacheEntry*) maDisplayCache.First();
+-        ::vos::TTimeValue           aReleaseTime;
++        ::salhelper::TTimeValue           aReleaseTime;
+ 
+         if( ( mnReleaseTimeoutSeconds = nTimeoutSeconds ) != 0 )
+         {
+             osl_getSystemTime( &aReleaseTime );
+-            aReleaseTime.addTime( ::vos::TTimeValue( nTimeoutSeconds, 0 ) );
++            aReleaseTime.addTime( ::salhelper::TTimeValue( nTimeoutSeconds, 0 ) );
+         }
+ 
+ 	    while( pDisplayEntry )
+@@ -870,10 +870,10 @@ BOOL GraphicCache::CreateDisplayCacheObj( OutputDevice* pOut, const Point& rPt,
+ 
+         if( GetCacheTimeout() )
+         {
+-            ::vos::TTimeValue aReleaseTime;
++            ::salhelper::TTimeValue aReleaseTime;
+ 
+             osl_getSystemTime( &aReleaseTime );
+-            aReleaseTime.addTime( ::vos::TTimeValue( GetCacheTimeout(), 0 ) );
++            aReleaseTime.addTime( ::salhelper::TTimeValue( GetCacheTimeout(), 0 ) );
+             pNewEntry->SetReleaseTime( aReleaseTime );
+         }
+ 																			
+@@ -904,10 +904,10 @@ BOOL GraphicCache::CreateDisplayCacheObj( OutputDevice* pOut, const Point& rPt,
+ 
+         if( GetCacheTimeout() )
+         {
+-            ::vos::TTimeValue aReleaseTime;
++            ::salhelper::TTimeValue aReleaseTime;
+ 
+             osl_getSystemTime( &aReleaseTime );
+-            aReleaseTime.addTime( ::vos::TTimeValue( GetCacheTimeout(), 0 ) );
++            aReleaseTime.addTime( ::salhelper::TTimeValue( GetCacheTimeout(), 0 ) );
+             pNewEntry->SetReleaseTime( aReleaseTime );
+         }
+ 																			
+@@ -934,7 +934,7 @@ BOOL GraphicCache::DrawDisplayCacheObj( OutputDevice* pOut, const Point& rPt, co
+ 	{
+ 		if( pDisplayCacheEntry->Matches( pOut, aPtPixel, aSzPixel, pCacheEntry, rAttr ) )
+ 		{
+-            ::vos::TTimeValue aReleaseTime;
++            ::salhelper::TTimeValue aReleaseTime;
+ 
+ 			// put found object at last used position
+ 			maDisplayCache.Insert( maDisplayCache.Remove( pDisplayCacheEntry ), LIST_APPEND );
+@@ -942,7 +942,7 @@ BOOL GraphicCache::DrawDisplayCacheObj( OutputDevice* pOut, const Point& rPt, co
+             if( GetCacheTimeout() )
+             {
+                 osl_getSystemTime( &aReleaseTime );
+-                aReleaseTime.addTime( ::vos::TTimeValue( GetCacheTimeout(), 0 ) );
++                aReleaseTime.addTime( ::salhelper::TTimeValue( GetCacheTimeout(), 0 ) );
+             }
+ 
+             pDisplayCacheEntry->SetReleaseTime( aReleaseTime );
+@@ -1009,14 +1009,14 @@ IMPL_LINK( GraphicCache, ReleaseTimeoutHdl, Timer*, pTimer )
+ {
+     pTimer->Stop();
+ 
+-    ::vos::TTimeValue           aCurTime;
++    ::salhelper::TTimeValue           aCurTime;
+ 	GraphicDisplayCacheEntry*   pDisplayEntry = (GraphicDisplayCacheEntry*) maDisplayCache.First();
+ 
+     osl_getSystemTime( &aCurTime );
+ 
+ 	while( pDisplayEntry )
+ 	{
+-        const ::vos::TTimeValue& rReleaseTime = pDisplayEntry->GetReleaseTime();
++        const ::salhelper::TTimeValue& rReleaseTime = pDisplayEntry->GetReleaseTime();
+ 
+ 		if( !rReleaseTime.isEmpty() && ( rReleaseTime < aCurTime ) )
+ 		{
+diff --git a/salhelper/inc/salhelper/timer.hxx b/salhelper/inc/salhelper/timer.hxx
+new file mode 100644
+index 0000000..56631d7
+--- /dev/null
++++ salhelper/inc/salhelper/timer.hxx
+@@ -0,0 +1,247 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: timer.hxx,v $
++ *
++ *  $Revision: 1.3 $
++ *
++ *  last change: $Author: vg $ $Date: 2006/06/02 12:40:52 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++
++#ifndef _SALHELPER_TIMER_HXX_
++#define _SALHELPER_TIMER_HXX_
++
++#ifndef _SALHELPER_SIMPMLEREFERENCEOBJECT_HXX_
++#	include <salhelper/simplereferenceobject.hxx>
++#endif
++#ifndef _OSL_TIME_H_
++#	include <osl/time.h>
++#endif
++
++namespace salhelper
++{
++
++/** Helper class for easier manipulation with TimeValue.
++ *
++ *  Times are seconds in UTC since 01.01.1970
++ */
++struct TTimeValue : public TimeValue
++{
++    TTimeValue()
++    {
++        Seconds = 0;
++        Nanosec = 0;
++    }
++
++    TTimeValue( sal_uInt32 Secs, sal_uInt32 Nano )
++    {
++        Seconds = Secs;
++        Nanosec = Nano;
++
++        normalize();
++    }
++
++    TTimeValue(sal_uInt32 MilliSecs)
++    {
++        Seconds = MilliSecs / 1000L;
++        Nanosec = (MilliSecs % 1000) * 1000000L;
++
++        normalize();
++    }
++
++    TTimeValue( const TTimeValue& rTimeValue )
++    {
++        Seconds = rTimeValue.Seconds;
++        Nanosec = rTimeValue.Nanosec;
++
++        normalize();
++    }
++
++    TTimeValue( const TimeValue& rTimeValue )
++    {
++        Seconds = rTimeValue.Seconds;
++        Nanosec = rTimeValue.Nanosec;
++
++        normalize();
++    }
++
++    void SAL_CALL normalize()
++    {
++        if ( Nanosec > 1000000000 )
++        {
++            Seconds += Nanosec / 1000000000;
++            Nanosec %= 1000000000;
++        }
++    }
++
++    void SAL_CALL addTime( const TTimeValue& Delta )
++    {
++        Seconds += Delta.Seconds;
++        Nanosec += Delta.Nanosec;
++
++        normalize();
++    }
++
++    sal_Bool SAL_CALL isEmpty() const
++    {
++        return ( ( Seconds == 0 ) && ( Nanosec == 0 ) );
++    }
++};
++
++inline sal_Bool operator<( const TTimeValue& rTimeA, const TTimeValue& rTimeB )
++{
++    if ( rTimeA.Seconds < rTimeB.Seconds )
++        return sal_True;
++    else if ( rTimeA.Seconds > rTimeB.Seconds )
++        return sal_False;
++    else
++        return ( rTimeA.Nanosec < rTimeB.Nanosec );
++}
++
++inline sal_Bool operator>( const TTimeValue& rTimeA, const TTimeValue& rTimeB )
++{
++    if ( rTimeA.Seconds > rTimeB.Seconds )
++        return sal_True;
++    else if ( rTimeA.Seconds < rTimeB.Seconds )
++        return sal_False;
++    else
++        return ( rTimeA.Nanosec > rTimeB.Nanosec );
++}
++
++inline sal_Bool operator==( const TTimeValue& rTimeA, const TTimeValue& rTimeB )
++{
++    return ( ( rTimeA.Seconds == rTimeB.Seconds ) &&
++             ( rTimeA.Nanosec == rTimeB.Nanosec ) );
++}
++
++class TimerManager;
++
++/** Interface for the Timer and handling the event
++*/
++class Timer : public salhelper::SimpleReferenceObject
++{
++public:
++
++    /** Constructor.
++     */
++  	Timer();
++
++	/** Constructor.
++     */
++  	Timer( const TTimeValue& Time );
++
++	/** Constructor.
++     */
++  	Timer( const TTimeValue& Time, const TTimeValue& RepeatTime );
++
++  	/** Start timer.
++     */
++  	void        SAL_CALL start();
++
++  	/** Abort timer prematurely.
++     */
++  	void        SAL_CALL stop();
++
++  	/** Returns sal_True if timer is running.
++     */
++  	sal_Bool    SAL_CALL isTicking() const;
++
++	/** Is the timer expired?
++     */
++  	sal_Bool    SAL_CALL isExpired() const;
++
++	/** Does pTimer expires before us?
++     */
++  	sal_Bool    SAL_CALL expiresBefore( const Timer* pTimer ) const;
++
++	/** Set the absolute time when the timer should fire.
++     */
++  	void        SAL_CALL setAbsoluteTime( const TTimeValue& Time );
++
++	/** Set the time to fire to 'now' + Remaining.
++     */
++  	void        SAL_CALL setRemainingTime( const TTimeValue& Remaining );
++
++	/** Set the time to fire to 'now' + Remaining with repeat interveal
++     * Repeat.
++     */
++  	void		SAL_CALL setRemainingTime( const TTimeValue& Remaining, const TTimeValue& Repeat );
++
++	/** Adds Time to the 'fire time'.
++     */
++  	void		SAL_CALL addTime( const TTimeValue& Time );
++
++	/** Returns the remaining time before timer expiration relative to now.
++     */
++  	TTimeValue  SAL_CALL getRemainingTime() const;
++
++protected:
++
++    /** Destructor.
++     */
++    virtual ~Timer();
++
++    /** What should be done when the 'timer fires'.
++     */
++    virtual void SAL_CALL onShot() = 0;
++
++protected:
++
++    /** holds (initial) exparation time of this timer.
++     */
++	TTimeValue  m_aTimeOut;
++
++    /** holds the time of exparation of this timer.
++     */
++	TTimeValue  m_aExpired;
++
++    /** holds the time interveal of successive expirations.
++     */
++	TTimeValue  m_aRepeatDelta;
++
++    /** Pointer to the next timer (to fire).
++     */
++  	Timer*      m_pNext;
++
++private:
++
++    /** Copy constructor disabled.
++     */
++    Timer( const Timer& rTimer );
++
++    /** Assignment operator disabled.
++     */
++    void SAL_CALL operator=( const Timer& rTimer );
++
++	friend class TimerManager;
++};
++
++}
++
++#endif  //_SALHELPER_TIMER_HXX_
+diff --git a/salhelper/prj/d.lst b/salhelper/prj/d.lst
+index 14f233d..192cb39 100644
+--- salhelper/prj/d.lst
++++ salhelper/prj/d.lst
+@@ -10,6 +10,7 @@ mkdir: %_DEST%\inc%_EXT%\salhelper
+ ..\inc\salhelper\refobj.hxx %_DEST%\inc%_EXT%\salhelper\refobj.hxx
+ ..\inc\salhelper\simplereferenceobject.hxx %_DEST%\inc%_EXT%\salhelper\simplereferenceobject.hxx
+ ..\inc\salhelper\singletonref.hxx %_DEST%\inc%_EXT%\salhelper\singletonref.hxx
++..\inc\salhelper\timer.hxx %_DEST%\inc%_EXT%\salhelper\timer.hxx
+ 
+ ..\%__SRC%\bin\salhelper*.dll %_DEST%\bin%_EXT%\salhelper*.dll
+ ..\%__SRC%\lib\*salhelper*.lib %_DEST%\lib%_EXT%\*
+diff --git a/salhelper/source/gcc3.map b/salhelper/source/gcc3.map
+index 3968981..56a7316 100644
+--- salhelper/source/gcc3.map
++++ salhelper/source/gcc3.map
+@@ -77,4 +77,25 @@ UDK_3.1 {
+ 	_ZN9salhelper14ExtCommandLineD2Ev;
+ 	_ZNK9salhelper14ExtCommandLine13getCommandArgEjRN3rtl8OUStringE;
+ 	_ZNK9salhelper14ExtCommandLine18getCommandArgCountEv;
++
++	_ZN9salhelper5TimerC1ERKNS_10TTimeValueE;
++	_ZN9salhelper5TimerC1ERKNS_10TTimeValueES3_;
++	_ZN9salhelper5TimerC1Ev;
++	_ZN9salhelper5TimerC2ERKNS_10TTimeValueE;
++	_ZN9salhelper5TimerC2ERKNS_10TTimeValueES3_;
++	_ZN9salhelper5TimerC2Ev;
++	_ZN9salhelper5TimerD0Ev;
++	_ZN9salhelper5TimerD1Ev;
++	_ZN9salhelper5TimerD2Ev;
++	_ZN9salhelper5Timer5startEv;
++	_ZN9salhelper5Timer4stopEv;
++	_ZNK9salhelper5Timer9isTickingEv;
++	_ZNK9salhelper5Timer9isExpiredEv;
++	_ZNK9salhelper5Timer13expiresBeforeEPKS0_;
++	_ZN9salhelper5Timer15setAbsoluteTimeERKNS_10TTimeValueE;
++	_ZN9salhelper5Timer16setRemainingTimeERKNS_10TTimeValueE;
++	_ZN9salhelper5Timer16setRemainingTimeERKNS_10TTimeValueES3_;
++	_ZN9salhelper5Timer7addTimeERKNS_10TTimeValueE;
++	_ZNK9salhelper5Timer16getRemainingTimeEv;
++
+ } UDK_3_0_0;
+diff --git a/salhelper/source/makefile.mk b/salhelper/source/makefile.mk
+index 0cbb6b7..860f645 100644
+--- salhelper/source/makefile.mk
++++ salhelper/source/makefile.mk
+@@ -55,7 +55,8 @@ SLOFILES=	\
+ 	$(SLO)$/condition.obj \
+ 	$(SLO)$/dynload.obj \
+ 	$(SLO)$/extcommandline.obj \
+-	$(SLO)$/simplereferenceobject.obj
++	$(SLO)$/simplereferenceobject.obj \
++	$(SLO)$/timer.obj
+ 
+ # SCO: the linker does know about weak symbols, but we can't ignore multiple defined symbols
+ .IF "$(OS)"=="SCO" || "$(OS)$(COM)"=="OS2GCC"
+diff --git a/salhelper/source/timer.cxx b/salhelper/source/timer.cxx
+new file mode 100644
+index 0000000..0770be2
+--- /dev/null
++++ salhelper/source/timer.cxx
+@@ -0,0 +1,494 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: timer.cxx,v $
++ *
++ *  $Revision: 1.6 $
++ *
++ *  last change: $Author: vg $ $Date: 2006/06/02 12:45:24 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <salhelper/timer.hxx>
++
++#include <osl/diagnose.h>
++#include <salhelper/simplereferenceobject.hxx>
++#include <osl/thread.hxx>
++#include <osl/conditn.hxx>
++#include <osl/mutex.hxx>
++
++using namespace salhelper;
++
++class salhelper::TimerManager : public osl::Thread
++{
++    
++public:
++
++    ///
++  	TimerManager();
++    
++	///
++  	~TimerManager();
++    
++  	/// register timer
++    sal_Bool SAL_CALL registerTimer(salhelper::Timer* pTimer);
++
++  	/// unregister timer
++    sal_Bool SAL_CALL unregisterTimer(salhelper::Timer* pTimer);
++
++  	/// lookup timer
++    sal_Bool SAL_CALL lookupTimer(const salhelper::Timer* pTimer);
++
++	/// retrieves the "Singleton" TimerManager Instance
++	static TimerManager* SAL_CALL getTimerManager();
++
++    
++protected:
++    
++ 	/// worker-function of thread
++  	virtual void SAL_CALL run();
++
++    // Checking and triggering of a timer event
++    void SAL_CALL checkForTimeout();
++
++    // cleanup Method
++    virtual void SAL_CALL onTerminated();
++    
++  	// sorted-queue data
++  	salhelper::Timer*		m_pHead;
++    // List Protection
++    osl::Mutex					m_Lock;
++    // Signal the insertion of a timer
++    osl::Condition				m_notEmpty;
++
++    // Synchronize access to TimerManager
++	static osl::Mutex 			m_Access;
++
++    // "Singleton Pattern"
++    static salhelper::TimerManager* m_pManager;
++
++    friend class TimerManagerCleanup;
++    
++};
++
++using namespace salhelper;
++
++/////////////////////////////////////////////////////////////////////////////
++//
++// Timer class
++//
++
++Timer::Timer()
++    : m_aTimeOut( 0 ),
++      m_aExpired( 0 ),
++      m_aRepeatDelta( 0 ),
++      m_pNext( NULL )
++{
++}
++
++Timer::Timer( const TTimeValue& Time )
++    : m_aTimeOut( Time ),
++      m_aRepeatDelta( 0 ),
++      m_aExpired( 0 ),
++      m_pNext( NULL )
++{
++}
++
++Timer::Timer( const TTimeValue& Time, const TTimeValue& Repeat )
++    : m_aTimeOut( Time ),
++      m_aRepeatDelta( Repeat ),
++      m_aExpired( 0 ),
++      m_pNext( NULL )
++{
++}
++
++Timer::~Timer()
++{
++    stop();
++}
++
++void Timer::start()
++{
++    if (! isTicking())
++    {
++        if (! m_aTimeOut.isEmpty())
++            setRemainingTime(m_aTimeOut);
++
++        TimerManager *pManager = TimerManager::getTimerManager();
++
++        OSL_ASSERT(pManager);
++
++        if ( pManager != 0 )
++        {
++            pManager->registerTimer(this);
++        }
++    }
++}
++
++void Timer::stop()
++{
++    TimerManager *pManager = TimerManager::getTimerManager();
++
++    OSL_ASSERT(pManager);
++
++    if ( pManager != 0 )
++    {
++        pManager->unregisterTimer(this);
++    }
++}
++
++sal_Bool Timer::isTicking() const
++{
++    TimerManager *pManager = TimerManager::getTimerManager();
++
++    OSL_ASSERT(pManager);
++
++    if (pManager)
++        return pManager->lookupTimer(this);
++    else
++        return sal_False;
++
++}
++
++sal_Bool Timer::isExpired() const
++{
++    TTimeValue Now;
++
++    osl_getSystemTime(&Now);
++
++    return !(Now < m_aExpired);
++}
++
++sal_Bool Timer::expiresBefore(const Timer* pTimer) const
++{
++    OSL_ASSERT(pTimer);
++
++    if ( pTimer != 0 )
++    {
++        return m_aExpired < pTimer->m_aExpired;
++    }
++    else
++    {
++        return sal_False;
++    }
++}
++
++void Timer::setAbsoluteTime(const TTimeValue& Time)
++{
++    m_aTimeOut     = 0;
++    m_aExpired     = Time;
++    m_aRepeatDelta = 0;
++
++    m_aExpired.normalize();
++}
++
++void Timer::setRemainingTime(const TTimeValue& Remaining)
++{
++    osl_getSystemTime(&m_aExpired);
++
++    m_aExpired.addTime(Remaining);
++}
++
++void Timer::setRemainingTime(const TTimeValue& Remaining, const TTimeValue& Repeat)
++{
++    osl_getSystemTime(&m_aExpired);
++
++    m_aExpired.addTime(Remaining);
++
++    m_aRepeatDelta = Repeat;
++}
++
++void Timer::addTime(const TTimeValue& Delta)
++{
++    m_aExpired.addTime(Delta);
++}
++
++TTimeValue Timer::getRemainingTime() const
++{
++    TTimeValue Now;
++
++    osl_getSystemTime(&Now);
++
++    sal_Int32 secs = m_aExpired.Seconds - Now.Seconds;
++
++    if (secs < 0)
++        return TTimeValue(0, 0);
++
++    sal_Int32 nsecs = m_aExpired.Nanosec - Now.Nanosec;
++
++    if (nsecs < 0)
++    {
++        if (secs > 0)
++        {
++            secs  -= 1;
++            nsecs += 1000000000L;
++        }
++        else
++            return TTimeValue(0, 0);
++    }
++
++    return TTimeValue(secs, nsecs);
++}
++
++
++/////////////////////////////////////////////////////////////////////////////
++//
++// Timer manager
++//
++
++osl::Mutex salhelper::TimerManager::m_Access;
++TimerManager* salhelper::TimerManager::m_pManager = NULL;
++
++TimerManager::TimerManager()
++{
++    osl::MutexGuard Guard(&m_Access);
++
++    OSL_ASSERT(m_pManager == 0);
++
++    m_pManager = this;
++
++    m_pHead= 0;
++
++    m_notEmpty.reset();
++
++    // start thread
++    create();
++}
++
++TimerManager::~TimerManager()
++{
++    osl::MutexGuard Guard(&m_Access);
++
++    if ( m_pManager == this )
++        m_pManager = 0;
++}
++
++void TimerManager::onTerminated()
++{
++    delete this; // mfe: AAARRRGGGHHH!!!
++}
++    
++TimerManager* TimerManager::getTimerManager()
++{    
++    osl::MutexGuard Guard(&m_Access); 
++
++    if (! m_pManager)
++        new TimerManager;
++
++    return (m_pManager);
++}	
++
++sal_Bool TimerManager::registerTimer(Timer* pTimer)
++{
++    OSL_ASSERT(pTimer);
++
++    if ( pTimer == 0 )
++    {
++        return sal_False;
++    }
++
++    osl::MutexGuard Guard(&m_Lock);
++
++    // try to find one with equal or lower remaining time.
++    Timer** ppIter = &m_pHead;
++
++    while (*ppIter) 
++    {
++        if (pTimer->expiresBefore(*ppIter))
++        {	
++            // next element has higher remaining time, 
++            // => insert new timer before
++            break;
++        }
++        ppIter= &((*ppIter)->m_pNext);
++    } 
++
++    // next element has higher remaining time, 
++    // => insert new timer before
++    pTimer->m_pNext= *ppIter;
++    *ppIter = pTimer;
++
++
++    if (pTimer == m_pHead)
++    {
++        // it was inserted as new head
++        // signal it to TimerManager Thread
++        m_notEmpty.set();
++    }
++
++    return sal_True;
++}
++
++sal_Bool TimerManager::unregisterTimer(Timer* pTimer)
++{
++    OSL_ASSERT(pTimer);
++
++    if ( pTimer == 0 )
++    {
++        return sal_False;
++    }
++
++    // lock access
++    osl::MutexGuard Guard(&m_Lock);
++
++    Timer** ppIter = &m_pHead;
++
++    while (*ppIter) 
++    {
++        if (pTimer == (*ppIter))
++        {	
++            // remove timer from list
++            *ppIter = (*ppIter)->m_pNext;
++            return sal_True;
++        }
++        ppIter= &((*ppIter)->m_pNext);
++    } 
++
++    return sal_False;
++}
++
++sal_Bool TimerManager::lookupTimer(const Timer* pTimer) 
++{
++    OSL_ASSERT(pTimer);
++
++    if ( pTimer == 0 )
++    {
++        return sal_False;
++    }
++
++    // lock access
++    osl::MutexGuard Guard(&m_Lock);
++
++    // check the list
++    for (Timer* pIter = m_pHead; pIter != 0; pIter= pIter->m_pNext)
++    {
++        if (pIter == pTimer)
++        {    
++            return sal_True;
++        }
++    }
++
++    return sal_False;
++}
++
++void TimerManager::checkForTimeout()
++{
++
++    m_Lock.acquire();
++
++    if ( m_pHead == 0 )
++    {
++        m_Lock.release();        
++        return;
++    }
++
++    Timer* pTimer = m_pHead;
++
++    if (pTimer->isExpired())
++    {
++        // remove expired timer
++        m_pHead = pTimer->m_pNext;
++
++        pTimer->acquire();
++
++        m_Lock.release();
++
++        pTimer->onShot();
++
++        // restart timer if specified
++        if ( ! pTimer->m_aRepeatDelta.isEmpty() )
++        {
++            TTimeValue Now;
++
++            osl_getSystemTime(&Now);
++
++            Now.Seconds += pTimer->m_aRepeatDelta.Seconds;				
++            Now.Nanosec += pTimer->m_aRepeatDelta.Nanosec;				
++
++            pTimer->m_aExpired = Now;
++
++            registerTimer(pTimer);
++        }
++        pTimer->release();
++    }
++    else
++    {
++        m_Lock.release();
++    }
++
++
++    return;
++}
++
++void TimerManager::run() 
++{
++    setPriority( osl_Thread_PriorityBelowNormal );
++
++    while (schedule())
++    {
++        TTimeValue		delay;
++        TTimeValue*		pDelay=0;
++
++
++        m_Lock.acquire();
++
++        if (m_pHead != 0)
++        {
++            delay = m_pHead->getRemainingTime();
++            pDelay=&delay;
++        }
++        else
++        {
++            pDelay=0;
++        }
++
++
++        m_notEmpty.reset();
++
++        m_Lock.release();
++
++
++        m_notEmpty.wait(pDelay);
++
++        checkForTimeout();
++    }
++
++}
++
++
++/////////////////////////////////////////////////////////////////////////////
++//
++// Timer manager cleanup
++//
++
++// jbu:
++// The timer manager cleanup has been removed (no thread is killed anymore).
++// So the thread leaks.
++// This will result in a GPF in case the salhelper-library gets unloaded before
++// process termination.
++// -> TODO : rewrite this file, so that the timerManager thread gets destroyed,
++//           when there are no timers anymore !
+diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
+index f8e7c08..e9cc7c5 100644
+--- svtools/inc/pch/precompiled_svtools.hxx
++++ svtools/inc/pch/precompiled_svtools.hxx
+@@ -435,7 +435,7 @@
+ #include <salhelper/simplereferenceobject.hxx>
+ #include <osl/security.hxx>
+ #include <osl/thread.hxx>
+-#include <vos/timer.hxx>
++#include <salhelper/timer.hxx>
+ 
+ //---MARKER---
+ 
+diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
+index bb1c3ec..a655b0d 100644
+--- svtools/source/contnr/fileview.cxx
++++ svtools/source/contnr/fileview.cxx
+@@ -141,8 +141,8 @@
+ #ifndef _OSL_CONDITN_HXX_
+ #include <osl/conditn.hxx>
+ #endif
+-#ifndef _VOS_TIMER_HXX_
+-#include <vos/timer.hxx>
++#ifndef _SALHELPER_TIMER_HXX_
++#include <salhelper/timer.hxx>
+ #endif
+ 
+ #ifndef _SV_SVAPP_HXX
+@@ -178,7 +178,7 @@ using namespace ::comphelper;
+ using namespace ::ucbhelper;
+ using ::svt::SortingData_Impl;
+ using ::svt::FolderDescriptor;
+-using ::vos::TTimeValue;
++using ::salhelper::TTimeValue;
+ using ::rtl::OUString;
+ 
+ #define ALL_FILES_FILTER    "*.*"
+@@ -229,7 +229,7 @@ namespace
+     //====================================================================
+     //= CallbackTimer
+     //====================================================================
+-    class CallbackTimer : public ::vos::OTimer
++    class CallbackTimer : public ::salhelper::Timer
+     {
+     protected:
+         ITimeoutHandler* m_pTimeoutHandler;
+@@ -641,7 +641,7 @@ protected:
+                                         m_pContentEnumerator;
+     Link                                m_aCurrentAsyncActionHandler;
+     ::osl::Condition                    m_aAsyncActionFinished;
+-    ::rtl::Reference< ::vos::OTimer >   m_pCancelAsyncTimer;
++    ::rtl::Reference< ::salhelper::Timer >   m_pCancelAsyncTimer;
+     ::svt::EnumerationResult            m_eAsyncActionResult;
+     bool                                m_bRunningAsyncAction;
+     bool                                m_bAsyncActionCancelled;
+diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx
+index 4d115f3..c45f76c 100644
+--- tools/inc/pch/precompiled_tools.hxx
++++ tools/inc/pch/precompiled_tools.hxx
+@@ -94,6 +94,6 @@
+ #include "sal/macros.h"
+ #include "osl/mutex.hxx"
+ #include "osl/signal.h"
+-#include "vos/timer.hxx"
++#include "salhelper/timer.hxx"
+ //---MARKER---
+ #endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/tango-prefer-over-industrial.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/tango-prefer-over-industrial.diff
@@ -0,0 +1,19 @@
+--- vcl/source/app/settings.cxx.old	2007-08-31 18:54:34.000000000 +0200
++++ vcl/source/app/settings.cxx	2007-09-03 10:29:36.000000000 +0200
+@@ -767,7 +767,15 @@ void StyleSettings::SetPreferredSymbolsS
+ 
+ 		for( sal_uInt32 n = 0; n <= STYLE_SYMBOLS_THEMES_MAX; n++ )
+ 			if ( rNameLowCase.indexOf( ImplSymbolsStyleToName( n ) ) != -1 )
+-				SetPreferredSymbolsStyle( n );
++			{
++				if (n == STYLE_SYMBOLS_INDUSTRIAL)
++					// The Industrial OOo icon theme is too old.
++					// The OOo Tango icon theme is closer to the current GNOME Industrial theme rules.
++					SetPreferredSymbolsStyle( STYLE_SYMBOLS_TANGO );
++				else
++					SetPreferredSymbolsStyle( n );
++				return;
++			}
+ 	}
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-filter-hide-filteredrows.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-filter-hide-filteredrows.diff
@@ -0,0 +1,18 @@
+diff -u -r ../../../sc.bak/source/core/data/table2.cxx sc/source/core/data/table2.cxx
+--- ../../../sc.bak/source/core/data/table2.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/core/data/table2.cxx	2005-01-06 16:31:44.128926640 +0530
+@@ -2388,7 +2388,13 @@
+ 		}
+ 
+ 		if (bShow)
+-            pRowFlags->AndValue( nStartRow, nEndRow, sal::static_int_cast<BYTE>(~(CR_HIDDEN | CR_FILTERED)) );
++		{
++			for (int i=nRow1; i<=nRow2; i++)
++			{
++				if (! this->IsFiltered(i))
++					pRowFlags->AndValue( i, sal::static_int_cast<BYTE>(~(CR_HIDDEN )) );
++			}
++		}
+ 		else
+             pRowFlags->OrValue( nStartRow, nEndRow, CR_HIDDEN);
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-gcc4-visibility.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-gcc4-visibility.diff
@@ -0,0 +1,35 @@
+--- svtools/inc/svtools/svtdata.hxx.old	2004-06-25 18:31:52.000000000 +0200
++++ svtools/inc/svtools/svtdata.hxx	2005-04-29 15:19:20.000000000 +0200
+@@ -62,6 +62,12 @@
+ #ifndef _SVTOOLS_SVTDATA_HXX
+ #define _SVTOOLS_SVTDATA_HXX
+ 
++#ifndef INCLUDED_SVLDLLAPI_H
++#include "svtools/svldllapi.h"
++#endif
++#ifndef INCLUDED_SVTDLLAPI_H
++#include "svtools/svtdllapi.h"
++#endif
+ #ifndef _TOOLS_RESID_HXX
+ #include <tools/resid.hxx>
+ #endif
+@@ -102,15 +108,15 @@
+ 
+ public:
+ 	ResMgr * GetResMgr(const ::com::sun::star::lang::Locale aLocale);
+-	ResMgr * GetResMgr(); // VCL dependant, only available in SVT, not in SVL!
++	SVT_DLLPUBLIC ResMgr * GetResMgr(); // VCL dependant, only available in SVT, not in SVL!
+ 
+-    ResMgr * GetPatchResMgr();
+-    ResMgr * GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocale);
++	ResMgr * GetPatchResMgr();
++	ResMgr * GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocale);
+ 
+     
+ 	SimpleResMgr * GetSimpleRM(const ::com::sun::star::lang::Locale& rLocale);
+ 
+-	static ImpSvtData & GetSvtData();
++	SVL_DLLPUBLIC static ImpSvtData & GetSvtData();
+ };
+ 
+ //============================================================================
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/boost-patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/boost-patch.diff
@@ -0,0 +1,380 @@
+--- boost/boost-1.30.2.patch.OLD	2005-10-11 11:58:51.000000000 +0300
++++ boost/boost-1.30.2.patch	2006-02-16 17:23:14.000000000 +0200
+@@ -710,3 +710,350 @@
+                   return tok_;
+               }   
+               template <class Iterator>
++*** misc/boost-1.30.2/boost/numeric/ublas/matrix.hpp	Sat Mar  1 15:23:52 2003
++--- misc/build/boost-1.30.2/boost/numeric/ublas/matrix.hpp	Tue Feb 14 15:01:57 2006
++***************
++*** 402,412 ****
++--- 402,414 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0); 
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ()); 
++***************
++*** 528,538 ****
++--- 530,542 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 begin () const {
++                  self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 end () const {
++                  self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ());
++***************
++*** 1291,1301 ****
++--- 1295,1307 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0); 
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ()); 
++***************
++*** 1434,1444 ****
++--- 1440,1452 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 begin () const {
++                  self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 end () const {
++                  self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ());
++***************
++*** 2057,2067 ****
++--- 2065,2077 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0); 
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ()); 
++***************
++*** 2500,2510 ****
++--- 2510,2522 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ());
++***************
++*** 2928,2938 ****
++--- 2940,2952 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const scalar_matrix &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0); 
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const scalar_matrix &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ()); 
++***************
++*** 3542,3552 ****
++--- 3556,3568 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0); 
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ()); 
++***************
++*** 3668,3678 ****
++--- 3684,3696 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 begin () const {
++                  self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 end () const {
++                  self_type &m = (*this) ();
++                  return m.find_first2 (1, index1 (), m.size2 ());
++*** misc/boost-1.30.2/boost/numeric/ublas/matrix_expression.hpp	Tue Feb 18 09:32:46 2003
++--- misc/build/boost-1.30.2/boost/numeric/ublas/matrix_expression.hpp	Tue Feb 14 14:55:04 2006
++***************
++*** 778,787 ****
++--- 778,789 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++***************
++*** 1232,1241 ****
++--- 1234,1245 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++***************
++*** 1666,1675 ****
++--- 1670,1681 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++***************
++*** 2234,2243 ****
++--- 2240,2251 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++***************
++*** 2808,2817 ****
++--- 2816,2827 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++***************
++*** 3240,3249 ****
++--- 3250,3261 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++***************
++*** 4530,4539 ****
++--- 4542,4553 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return (*this) ().find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return (*this) ().find_first2 (1, index1 (), (*this) ().size2 ());
++              }
++*** misc/boost-1.30.2/boost/numeric/ublas/matrix_proxy.hpp	Sat Mar  1 15:23:52 2003
++--- misc/build/boost-1.30.2/boost/numeric/ublas/matrix_proxy.hpp	Tue Feb 14 14:57:56 2006
++***************
++*** 2998,3008 ****
++--- 2998,3010 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  const self_type &mr = (*this) ();
++                  return mr.find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  const self_type &mr = (*this) ();
++                  return mr.find_first2 (1, index1 (), mr.size2 ());
++***************
++*** 3126,3136 ****
++--- 3128,3140 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 begin () const {
++                  self_type &mr = (*this) ();
++                  return mr.find_first2 (1, index1 (), 0);
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 end () const {
++                  self_type &mr = (*this) ();
++                  return mr.find_first2 (1, index1 (), mr.size2 ());
++***************
++*** 3906,3915 ****
++--- 3910,3921 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return const_iterator2 ((*this) (), it1_, it2_ ().begin ());
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return const_iterator2 ((*this) (), it1_, it2_ ().end ());
++              }
++***************
++*** 4032,4041 ****
++--- 4038,4049 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 begin () const {
++                  return iterator2 ((*this) (), it1_, it2_ ().begin ());
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 end () const {
++                  return iterator2 ((*this) (), it1_, it2_ ().end ());
++              }
++***************
++*** 4816,4825 ****
++--- 4824,4835 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 begin () const {
++                  return const_iterator2 ((*this) (), it1_, it2_ ().begin ());
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              const_iterator2 end () const {
++                  return const_iterator2 ((*this) (), it1_, it2_ ().end ());
++              }
++***************
++*** 4942,4951 ****
++--- 4952,4963 ----
++              }
++  
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 begin () const {
++                  return iterator2 ((*this) (), it1_, it2_ ().begin ());
++              }
++              BOOST_UBLAS_INLINE
+++ 	    typename self_type::
++              iterator2 end () const {
++                  return iterator2 ((*this) (), it1_, it2_ ().end ());
++              }
+--- boost/spirit-1.6.1.patch
++++ boost/spirit-1.6.1.patch
+@@ -1716,3 +1716,24 @@
+   class type_with_alignment
+   {
+       typedef detail::lower_alignment<Align> t1;
++--- misc/build/spirit-1.6.1/boost/spirit/iterator/position_iterator.hpp
+++++ misc/build/spirit-1.6.1/boost/spirit/iterator/position_iterator.hpp
++@@ -25,10 +25,18 @@
++ #endif
++ 
++ #if defined(BOOST_NO_STD_ITERATOR_TRAITS)
+++#ifdef BOOST_MSVC
+++#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
++ #define BOOST_SPIRIT_IT_NS impl
++ #else
++ #define BOOST_SPIRIT_IT_NS std
++ #endif
+++#else
+++#define BOOST_SPIRIT_IT_NS impl
+++#endif
+++#else
+++#define BOOST_SPIRIT_IT_NS std
+++#endif
++ 
++ ///////////////////////////////////////////////////////////////////////////////
++ namespace boost { namespace spirit {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scroll-accel-sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scroll-accel-sc.diff
@@ -0,0 +1,133 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/select.hxx sc/source/ui/inc/select.hxx
+--- sc.clean/source/ui/inc/select.hxx	2008-04-01 12:26:31.000000000 -0400
++++ sc/source/ui/inc/select.hxx	2008-04-03 18:13:14.000000000 -0400
+@@ -73,6 +73,9 @@ private:
+ 
+ 	ScSplitPos		GetWhich();
+ 
++    ULONG           CalcUpdateInterval( const Size& rWinSize, const Point& rEffPos, 
++                                        bool bLeftScroll, bool bTopScroll, bool bRightScroll, bool bBottomScroll );
++
+ public:
+ 					ScViewFunctionSet( ScViewData* pNewViewData );
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/select.cxx sc/source/ui/view/select.cxx
+--- sc.clean/source/ui/view/select.cxx	2008-04-01 12:26:33.000000000 -0400
++++ sc/source/ui/view/select.cxx	2008-04-03 18:13:03.000000000 -0400
+@@ -42,6 +42,7 @@
+ 
+ #include <tools/urlobj.hxx>
+ #include <vcl/sound.hxx>
++#include <vcl/svapp.hxx>
+ #include <sfx2/docfile.hxx>
+ 
+ #include "select.hxx"
+@@ -85,6 +86,72 @@ ScSplitPos ScViewFunctionSet::GetWhich()
+ 		return pViewData->GetActivePart();
+ }
+ 
++ULONG ScViewFunctionSet::CalcUpdateInterval( const Size& rWinSize, const Point& rEffPos, 
++                                             bool bLeftScroll, bool bTopScroll, bool bRightScroll, bool bBottomScroll )
++{
++    ULONG nUpdateInterval = SELENG_AUTOREPEAT_INTERVAL_MAX;
++    Window* pWin = pEngine->GetWindow();
++    Rectangle aScrRect = pWin->GetDesktopRectPixel();
++    Point aRootPos = pWin->OutputToAbsoluteScreenPixel(Point(0,0));
++    if (bRightScroll)
++    {
++        double nWinRight = rWinSize.getWidth() + aRootPos.getX();
++        double nMarginRight = aScrRect.GetWidth() - nWinRight;
++        double nHOffset = rEffPos.X() - rWinSize.Width();
++        double nHAccelRate = nHOffset / nMarginRight;
++
++        if (nHAccelRate > 1.0)
++            nHAccelRate = 1.0;
++
++        nUpdateInterval = static_cast<ULONG>(SELENG_AUTOREPEAT_INTERVAL_MAX*(1.0 - nHAccelRate));
++    }
++
++    if (bLeftScroll)
++    {
++        double nMarginLeft = aRootPos.getX();
++        double nHOffset = -rEffPos.X();
++        double nHAccelRate = nHOffset / nMarginLeft;
++
++        if (nHAccelRate > 1.0)
++            nHAccelRate = 1.0;
++
++        ULONG nTmp = static_cast<ULONG>(SELENG_AUTOREPEAT_INTERVAL_MAX*(1.0 - nHAccelRate));
++        if (nUpdateInterval > nTmp)
++            nUpdateInterval = nTmp;
++    }
++
++    if (bBottomScroll)
++    {
++        double nWinBottom = rWinSize.getHeight() + aRootPos.getY();
++        double nMarginBottom = aScrRect.GetHeight() - nWinBottom;
++        double nVOffset = rEffPos.Y() - rWinSize.Height();
++        double nVAccelRate = nVOffset / nMarginBottom;
++
++        if (nVAccelRate > 1.0)
++            nVAccelRate = 1.0;
++
++        ULONG nTmp = static_cast<ULONG>(SELENG_AUTOREPEAT_INTERVAL_MAX*(1.0 - nVAccelRate));
++        if (nUpdateInterval > nTmp)
++            nUpdateInterval = nTmp;
++    }
++
++    if (bTopScroll)
++    {
++        double nMarginTop = aRootPos.getY();
++        double nVOffset = -rEffPos.Y();
++        double nVAccelRate = nVOffset / nMarginTop;
++
++        if (nVAccelRate > 1.0)
++            nVAccelRate = 1.0;
++
++        ULONG nTmp = static_cast<ULONG>(SELENG_AUTOREPEAT_INTERVAL_MAX*(1.0 - nVAccelRate));
++        if (nUpdateInterval > nTmp)
++            nUpdateInterval = nTmp;
++    }
++
++    return nUpdateInterval;
++}
++
+ void ScViewFunctionSet::SetSelectionEngine( ScViewSelectionEngine* pSelEngine )
+ {
+ 	pEngine = pSelEngine;
+@@ -263,10 +330,11 @@ BOOL __EXPORT ScViewFunctionSet::SetCurs
+ 	//	Scrolling
+ 
+ 	Size aWinSize = pEngine->GetWindow()->GetOutputSizePixel();
+-	BOOL bRightScroll  = ( aEffPos.X() >= aWinSize.Width() );
+-	BOOL bBottomScroll = ( aEffPos.Y() >= aWinSize.Height() );
+-	BOOL bNegScroll    = ( aEffPos.X() < 0 || aEffPos.Y() < 0 );
+-	BOOL bScroll = bRightScroll || bBottomScroll || bNegScroll;
++	bool bRightScroll  = ( aEffPos.X() >= aWinSize.Width() );
++	bool bLeftScroll  = ( aEffPos.X() < 0 );
++	bool bBottomScroll = ( aEffPos.Y() >= aWinSize.Height() );
++	bool bTopScroll = ( aEffPos.Y() < 0 );
++	bool bScroll = bRightScroll || bBottomScroll || bLeftScroll || bTopScroll;
+ 
+ 	SCsCOL	nPosX;
+ 	SCsROW	nPosY;
+@@ -319,6 +387,19 @@ BOOL __EXPORT ScViewFunctionSet::SetCurs
+ 			}
+ 	}
+ 
++    if (bScroll)
++    {
++        // Adjust update interval based on how far the mouse pointer is from the edge.
++        ULONG nUpdateInterval = CalcUpdateInterval(
++            aWinSize, aEffPos, bLeftScroll, bTopScroll, bRightScroll, bBottomScroll);
++        pEngine->SetUpdateInterval(nUpdateInterval);
++    }
++    else
++    {
++        // Don't forget to reset the interval when not scrolling!
++        pEngine->SetUpdateInterval(SELENG_AUTOREPEAT_INTERVAL);
++    }
++
+ 	pViewData->ResetOldCursor();
+ 	return SetCursorAtCell( nPosX, nPosY, bScroll );
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mandriva-archflags.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mandriva-archflags.diff
@@ -0,0 +1,87 @@
+--- solenv/inc/unxlngi4.mk.mdvarch	2006-08-08 13:38:27.000000000 +0200
++++ solenv/inc/unxlngi4.mk	2006-12-03 15:11:43.000000000 +0100
+@@ -63,7 +63,10 @@
+ 
+ # architecture dependent flags for the C and C++ compiler that can be changed by
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+-ARCH_FLAGS*=-mcpu=pentiumpro
++ARCH_FLAGS*=-mtune=pentiumpro
++ARCH_FLAGS_CC*=$(ARCH_FLAGS)
++ARCH_FLAGS_CXX*=$(ARCH_FLAGS)
++ARCH_FLAGS_OPT*=-O1
+ 
+ # name of C++ Compiler
+ CXX*=g++
+@@ -80,13 +83,13 @@
+ .ENDIF
+ 
+ # flags for the C++ Compiler
+-CFLAGSCC= -pipe $(ARCH_FLAGS)
++CFLAGSCC= $(ARCH_FLAGS_CC)
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+-CFLAGSCXX= -pipe $(ARCH_FLAGS)
++CFLAGSCXX= $(ARCH_FLAGS_CXX)
+ 
+ # HACK: enable Hamburg developers to build on glibc-2.2 machines but compile vs. glibc-2.1 headers
+ .IF "$(BUILD_SPECIAL)"==""
+@@ -114,7 +117,7 @@
+ # Compiler flags for enabling optimizations
+ # CFLAGSOPT=-O2
+ # reduce to -O1 to avoid optimization problems
+-CFLAGSOPT=-O1
++CFLAGSOPT=$(ARCH_FLAGS_OPT)
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+ # Compiler flags for describing the output path
+-- solenv/inc/unxlngi6.mk.mdvarch	2006-12-03 14:12:26.000000000 +0100
++++ solenv/inc/unxlngi6.mk	2006-12-03 15:07:19.000000000 +0100
+@@ -65,6 +65,14 @@
+ # architecture dependent flags for the C and C++ compiler that can be changed by
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+ ARCH_FLAGS*=-mtune=pentiumpro
++ARCH_FLAGS_CC*=$(ARCH_FLAGS)
++ARCH_FLAGS_CXX*=$(ARCH_FLAGS)
++# Compiler flags for enabling optimizations
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
++.ELSE 	# "$(PRODUCT)"!=""
++CFLAGSOPT=   							# no optimizing for non products
++.ENDIF	# "$(PRODUCT)"!=""
+ 
+ # name of C++ Compiler
+ CXX*=g++
+@@ -86,14 +94,14 @@
+ .ENDIF
+ 
+ # flags for the C++ Compiler
+-CFLAGSCC= -pipe $(ARCH_FLAGS)
++CFLAGSCC=$(ARCH_FLAGS_CC)
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+ # -fpermissive should be removed as soon as possible
+-CFLAGSCXX= -pipe $(ARCH_FLAGS)
++CFLAGSCXX=$(ARCH_FLAGS_CXX)
+ PICSWITCH:=-fpic
+ .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+ CFLAGSCXX += -fvisibility-inlines-hidden
+@@ -116,12 +124,7 @@
+ # Compiler flags for debugging
+ CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-# Compiler flags for enabling optimizations
+-.IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
+-.ELSE 	# "$(PRODUCT)"!=""
+-CFLAGSOPT=   							# no optimizing for non products
+-.ENDIF	# "$(PRODUCT)"!=""
++CFLAGSOPT=$(ARCH_OPT_FLAGS)
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+ # Compiler flags for describing the output path
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2-package-glib2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2-package-glib2.diff
@@ -0,0 +1,274 @@
+--- scp2/prj/build.lst	2007-11-07 10:33:28.000000000 +0100
++++ scp2/prj/build.lst	2007-11-07 11:13:56.000000000 +0100
+@@ -25,4 +25,5 @@
+ cp    scp2\source\ure             nmake    -    all    cp_ure cp_langmacros NULL
+ cp    scp2\source\onlineupdate    nmake    -    all    cp_update cp_langmacros NULL
+ cp    scp2\source\ooo_wo_ure      nmake    -    all    cp_ooo_wo_ure cp_langmacros NULL
+-cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_binfilter cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
++cp    scp2\source\glib2           nmake    -    all    cp_glib2 cp_langmacros NULL
++cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_binfilter cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure cp_glib2 NULL
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ scp2/source/glib2/file_glib2.scp	2007-11-07 11:21:40.000000000 +0100
+@@ -0,0 +1,70 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_glib2.scp,v $
++ *
++ *  $Revision: 1.5 $
++ *
++ *  last change: $Author: hr $ $Date: 2006/06/20 04:52:09 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#include "macros.inc"
++
++#if ! (defined (FREEBSD) || defined (NETBSD) || defined(MACOSX) || defined(SYSTEM_GLIB2) || defined(WNT))
++#if defined( _gcc3 )
++
++File gid_File_Lib_Glib20
++    TXT_FILE_BODY;
++    Name = STRING(libglib-2.0.so.0);
++    Dir = gid_Dir_Program;
++    Styles = (PACKED);
++End
++
++File gid_File_Lib_Gmodule20
++    TXT_FILE_BODY;
++    Name = STRING(libgmodule-2.0.so.0);
++    Dir = gid_Dir_Program;
++    Styles = (PACKED);
++End
++
++File gid_File_Lib_Gobject20
++    TXT_FILE_BODY;
++    Name = STRING(libgobject-2.0.so.0);
++    Dir = gid_Dir_Program;
++    Styles = (PACKED);
++End
++
++File gid_File_Lib_Gthread20
++    TXT_FILE_BODY;
++    Name = STRING(libgthread-2.0.so.0);
++    Dir = gid_Dir_Program;
++    Styles = (PACKED);
++End
++
++#endif
++
++#endif
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ scp2/source/glib2/makefile.mk	2007-11-07 11:14:17.000000000 +0100
+@@ -0,0 +1,62 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.5 $
++#
++#   last change: $Author: hr $ $Date: 2007/01/02 15:28:27 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJPCH=
++
++PRJNAME=scp2
++TARGET=glib2
++TARGETTYPE=CUI
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++
++SCP_PRODUCT_TYPE=osl
++
++.IF "$(SYSTEM_GLIB2)" != "YES"
++PARFILES =                   \
++        module_glib2.par     \
++        file_glib2.par
++
++ULFFILES= \
++        module_glib2.ulf
++
++.ENDIF
++
++# --- File ---------------------------------------------------------
++
++.INCLUDE :  target.mk
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ scp2/source/glib2/module_glib2.ulf	2007-11-07 11:16:06.000000000 +0100
+@@ -0,0 +1,41 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_gnome.ulf,v $
++ *
++ *  $Revision: 1.6 $
++ *
++ *  last change: $Author: ihi $ $Date: 2007/04/19 15:24:53 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_GLIB2]
++en-US = "Glib2 libraries"
++
++[STR_DESC_MODULE_OPTIONAL_GLIB2]
++en-US = "Glib2 libraries for %PRODUCTNAME %PRODUCTVERSION."
++
+--- scp2/util/makefile.mk	2007-11-07 12:32:58.000000000 +0100
++++ scp2/util/makefile.mk	2007-11-07 12:33:05.000000000 +0100
+@@ -183,6 +183,12 @@
+ SCP1FILES += aqua_ooo.par
+ .ENDIF
+ 
++.IF "$(SYSTEM_GLIB2)"!="YES"
++SCP1FILES += \
++             module_glib2.par   \
++             file_glib2.par
++.ENDIF
++
+ # ------------------------------------------------------------------------
+ # OpenOffice.org with JRE
+ 
+@@ -323,6 +324,12 @@
+ SCP2FILES += aqua_ooo.par
+ .ENDIF
+
++.IF "$(SYSTEM_GLIB2)"!="YES"
++SCP2FILES += \
++             module_glib2.par   \
++             file_glib2.par
++.ENDIF
++
+ # ------------------------------------------------------------------------
+ # URE
+ 
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ scp2/source/glib2/module_glib2.scp	2007-11-07 12:39:27.000000000 +0100
+@@ -0,0 +1,52 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_glib2.scp,v $
++ *
++ *  $Revision: 1.6 $
++ *
++ *  last change: $Author: rt $ $Date: 2007/07/03 12:06:27 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++#if ! (defined (FREEBSD) || defined (NETBSD) || defined(MACOSX) || defined(SYSTEM_GLIB2) || defined(WNT))
++#if defined( _gcc3 )
++
++Module gid_Module_Optional_Glib2
++    ParentID = gid_Module_Optional;
++    Default = YES;
++    PackageInfo = "packinfo_office.txt";
++    MOD_NAME_DESC(MODULE_OPTIONAL_GLIB2);
++    Styles = (DONTSHOWINUSERINSTALL);
++    Files = (gid_File_Lib_Glib20, gid_File_Lib_Gmodule20, gid_File_Lib_Gobject20, gid_File_Lib_Gthread20);
++End
++
++#endif
++
++#endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-npower10.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-npower10.diff
@@ -0,0 +1,1359 @@
+cvs diff: Diffing basic
+cvs diff: Diffing basic/inc
+cvs diff: Diffing basic/inc/basic
+Index: basic/inc/basic/sbmeth.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbmeth.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.80.1
+diff -u -p -b -w -B -r1.2 -r1.2.80.1
+--- basic/inc/basic/sbmeth.hxx	11 Apr 2007 12:52:00 -0000	1.2
++++ basic/inc/basic/sbmeth.hxx	20 Dec 2007 21:23:01 -0000	1.2.80.1
+@@ -58,7 +58,7 @@ class SbMethod : public SbxMethod
+ 	friend class SbIfaceMapperMethod;
+ 
+ 	SbMethodImpl* mpSbMethodImpl;			// Impl data
+-
++	SbxArrayRef refStatics;
+ 	SbModule* pMod;
+ 	USHORT    nDebugFlags;
+ 	USHORT	  nLine1, nLine2;
+@@ -76,6 +76,7 @@ public:
+ 	virtual SbxInfo* GetInfo();
+ 	SbxArray* GetLocals();
+ 	SbxArray* GetStatics();
++	void      ClearStatics();
+ 	SbModule* GetModule() 				 { return pMod; 	   }
+ 	UINT32	  GetId() const				 { return nStart;	   }
+ 	USHORT    GetDebugFlags()			 { return nDebugFlags; }
+cvs diff: Diffing basic/inc/pch
+cvs diff: Diffing basic/prj
+cvs diff: Diffing basic/source
+cvs diff: Diffing basic/source/app
+cvs diff: Diffing basic/source/basmgr
+cvs diff: Diffing basic/source/classes
+Index: basic/source/classes/sbxmod.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbxmod.cxx,v
+retrieving revision 1.41
+retrieving revision 1.41.34.1
+diff -u -p -b -w -B -r1.41 -r1.41.34.1
+--- basic/source/classes/sbxmod.cxx	20 Sep 2007 15:54:35 -0000	1.41
++++ basic/source/classes/sbxmod.cxx	20 Dec 2007 21:23:01 -0000	1.41.34.1
+@@ -1969,10 +1969,17 @@ SbxArray* SbMethod::GetLocals()
+ 		return NULL;
+ }
+ 
++void SbMethod::ClearStatics()
++{
++	refStatics = NULL;
++	
++}
+ SbxArray* SbMethod::GetStatics()
+ {
+-	DBG_ERROR( "SbMethod::GetStatics() invalid, AB fragen" )
+-	return NULL;
++	
++	if ( !refStatics.Is() )
++		refStatics = new SbxArray;
++	return refStatics;
+ }
+ 
+ BOOL SbMethod::LoadData( SvStream& rStrm, USHORT nVer )
+cvs diff: Diffing basic/source/comp
+Index: basic/source/comp/dim.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/dim.cxx,v
+retrieving revision 1.28
+retrieving revision 1.28.40.1
+diff -u -p -b -w -B -r1.28 -r1.28.40.1
+--- basic/source/comp/dim.cxx	30 Aug 2007 09:59:44 -0000	1.28
++++ basic/source/comp/dim.cxx	20 Dec 2007 21:23:01 -0000	1.28.40.1
+@@ -53,7 +53,7 @@ SbiSymDef* SbiParser::VarDecl( SbiDimLis
+ 	if( Peek() == LPAREN )
+ 		pDim = new SbiDimList( this );
+ 	pDef->SetType( t );
+-	if( bStatic )
++	if( bVBASupportOn && bStatic )
+ 		pDef->SetStatic();
+ 	TypeDecl( *pDef );
+ 	if( !ppDim && pDim )
+@@ -186,6 +186,9 @@ void SbiParser::TypeDecl( SbiSymDef& rDe
+ 
+ void SbiParser::Dim()
+ {
++	if ( pProc )
++		DefVar( _DIM, pProc->IsStatic() );
++	else
+ 	DefVar( _DIM, FALSE );
+ }
+ 
+@@ -272,7 +275,7 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ 
+ 	// AB 9.7.97, #40689, Statics -> Modul-Initialisierung, in Sub ueberspringen
+ 	UINT32 nEndOfStaticLbl = 0;
+-	if( bStatic )
++	if( !bVBASupportOn && bStatic )
+ 	{
+ 		nEndOfStaticLbl = aGen.Gen( _JUMP, 0 );
+ 		aGen.Statement();	// bei static hier nachholen
+@@ -340,13 +343,11 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+                                 goto global;
+ 				case SbPUBLIC:	eOp2 = bPersistantGlobal ? _PUBLIC_P : _PUBLIC;
+ 								// AB 9.7.97, #40689, kein eigener Opcode mehr
+-								/*
+-								if( bStatic )
++								if( bVBASupportOn && bStatic )
+ 								{
+ 									eOp2 = _STATIC;
+ 									break;
+ 								}
+-								*/
+ 				global:			aGen.BackChain( nGblChain );
+ 								nGblChain = 0;
+ 								bGblDefs = bNewGblDefs = TRUE;
+@@ -477,14 +478,14 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ 		// d.h. pPool muss immer am Schleifen-Ende zurueckgesetzt werden.
+ 		// auch bei break
+ 		pPool = pOldPool;
+-		continue;		// MyBreak �berspingen
++		continue;		// MyBreak uberspingen
+ 	MyBreak:
+ 		pPool = pOldPool;
+ 		break;
+ 	}
+ 
+ 	// AB 9.7.97, #40689, Sprung ueber Statics-Deklaration abschliessen
+-	if( bStatic )
++	if( !bVBASupportOn && bStatic )
+ 	{
+ 		// globalen Chain pflegen
+ 		nGblChain = aGen.Gen( _JUMP, 0 );
+@@ -501,6 +502,9 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ 
+ void SbiParser::ReDim()
+ {
++	if ( pProc )
++		DefVar( _REDIM, pProc->IsStatic() );
++	else
+ 	DefVar( _REDIM, FALSE );
+ }
+ 
+@@ -1005,11 +1009,13 @@ void SbiParser::DefProc( BOOL bStatic, B
+ 		// Normalfall: Lokale Variable->Parameter->Globale Variable
+ 		pProc->GetLocals().SetParent( &pProc->GetParams() );
+ 		pPool = &pProc->GetLocals();
++		pProc->SetStatic( FALSE );
+ 	}
++	else if ( bVBASupportOn )
++		pProc->SetStatic( TRUE );
+ 	else
+-	{
+ 		Error( SbERR_NOT_IMPLEMENTED ); // STATIC SUB ...
+-	}
++
+ 
+ 	pProc->Define();
+ 	OpenBlock( eExit );
+Index: basic/source/comp/exprgen.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/exprgen.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.132.1
+diff -u -p -b -w -B -r1.16 -r1.16.132.1
+--- basic/source/comp/exprgen.cxx	12 Oct 2006 14:26:47 -0000	1.16
++++ basic/source/comp/exprgen.cxx	20 Dec 2007 21:23:01 -0000	1.16.132.1
+@@ -132,9 +132,17 @@ void SbiExprNode::Gen( RecursiveMode eRe
+                     (aVar.pDef->IsGlobal() ? _FIND_G : _FIND);
+ 		}
+ 
+-		if( eOp == _FIND && pGen->GetParser()->bClassModule )
+-			eOp = _FIND_CM;
++		if( eOp == _FIND )
++		{
+ 
++			SbiProcDef* pProc = aVar.pDef->GetProcDef();
++			if ( pGen->GetParser()->bClassModule )
++				eOp = _FIND_CM;
++			else if ( aVar.pDef->IsStatic() || pProc && pProc->IsStatic() )
++			{
++				eOp = _FIND_STATIC;
++			}
++		}
+ 		for( SbiExprNode* p = this; p; p = p->aVar.pNext )
+ 		{
+ 			if( p == this && pWithParent_ != NULL )
+Index: basic/source/comp/exprtree.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/exprtree.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.64.1
+diff -u -p -b -w -B -r1.19 -r1.19.64.1
+--- basic/source/comp/exprtree.cxx	27 Jun 2007 14:20:26 -0000	1.19
++++ basic/source/comp/exprtree.cxx	20 Dec 2007 21:23:01 -0000	1.19.64.1
+@@ -278,6 +278,11 @@ SbiExprNode* SbiExpression::Term()
+ 		if( bObj )
+ 			eType = SbxOBJECT;
+ 		pDef = AddSym( eTok, *pParser->pPool, eCurExpr, aSym, eType, pPar );
++		// Looks like this is a local ( but undefined variable )
++		// if it is in a static procedure then make this Symbol
++		// static
++		if ( !bObj && pParser->pProc && pParser->pProc->IsStatic() )
++		    pDef->SetStatic();
+ 	}
+ 	else
+ 	{
+Index: basic/source/comp/sbcomp.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/sbcomp.cxx,v
+retrieving revision 1.14
+retrieving revision 1.14.64.1
+diff -u -p -b -w -B -r1.14 -r1.14.64.1
+--- basic/source/comp/sbcomp.cxx	27 Jun 2007 14:20:58 -0000	1.14
++++ basic/source/comp/sbcomp.cxx	20 Dec 2007 21:23:01 -0000	1.14.64.1
+@@ -142,6 +142,13 @@ BOOL SbModule::Compile()
+ 	if( bRet )
+ 	{
+ 		pBasic->ClearAllModuleVars();
++		// clear all method statics
++		for( USHORT i = 0; i < pMethods->Count(); i++ )
++		{
++			SbMethod* p = PTR_CAST(SbMethod,pMethods->Get( i ) );
++			if( p )
++				p->ClearStatics();
++		}
+ 
+ 		// #i31510 Init other libs only if Basic isn't running
+ 		if( pINST == NULL )
+Index: basic/source/comp/symtbl.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/symtbl.cxx,v
+retrieving revision 1.18
+retrieving revision 1.18.126.1
+diff -u -p -b -w -B -r1.18 -r1.18.126.1
+--- basic/source/comp/symtbl.cxx	3 Nov 2006 15:10:55 -0000	1.18
++++ basic/source/comp/symtbl.cxx	20 Dec 2007 21:23:01 -0000	1.18.126.1
+@@ -428,6 +428,7 @@ SbiProcDef::SbiProcDef( SbiParser* pPars
+ 	mePropMode = PROPERTY_MODE_NONE;
+ 	bPublic = TRUE;
+ 	bCdecl	= FALSE;
++	bStatic = FALSE;
+ 	// Fuer Returnwerte ist das erste Element der Parameterliste
+ 	// immer mit dem Namen und dem Typ der Proc definiert
+ 	aParams.AddSym( aName );
+cvs diff: Diffing basic/source/inc
+Index: basic/source/inc/opcodes.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/opcodes.hxx,v
+retrieving revision 1.12
+retrieving revision 1.12.40.1
+diff -u -p -b -w -B -r1.12 -r1.12.40.1
+--- basic/source/inc/opcodes.hxx	30 Aug 2007 10:00:44 -0000	1.12
++++ basic/source/inc/opcodes.hxx	20 Dec 2007 21:23:01 -0000	1.12.40.1
+@@ -167,6 +167,8 @@ enum SbiOpcode {
+     _DCREATE_REDIMP,	// Objekt-Array redimensionieren (+StringId+StringID)
+ 	_FIND_CM,        	// Search inside a class module (CM) to enable global search in time
+ 	_PUBLIC_P, 			//  Module global Variable (persisted between calls)(+StringID+Typ)
++	_FIND_STATIC,        	//  local static var lookup (+StringID+Typ) 
++
+ 	SbOP2_END
+ 
+ };
+Index: basic/source/inc/runtime.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
+retrieving revision 1.35
+retrieving revision 1.35.40.1
+diff -u -p -b -w -B -r1.35 -r1.35.40.1
+--- basic/source/inc/runtime.hxx	30 Aug 2007 10:01:05 -0000	1.35
++++ basic/source/inc/runtime.hxx	20 Dec 2007 21:23:01 -0000	1.35.40.1
+@@ -331,6 +331,7 @@ class SbiRuntime
+ 	SbiInstance*   pInst;			// aktiver Thread
+ 	SbModule*	  pMod;				// aktuelles Modul
+ 	SbMethod* 	  pMeth;			// Methoden-Instanz
++	SbMethod* 	  pRealMeth;
+ 	SbiIoSystem*   pIosys;			// I/O-System
+ 	const SbiImage* pImg;           // Code-Image
+ 	SbxArrayRef   refExprStk;       // expression stack
+@@ -392,7 +393,7 @@ class SbiRuntime
+ 	}
+ 
+ 	SbxVariable* FindElement
+-	( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError, BOOL );
++	( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError, BOOL bLocal, BOOL bStatic = FALSE );
+ 	void SetupArgs( SbxVariable*, UINT32 );
+ 	SbxVariable* CheckArray( SbxVariable* );
+ 
+@@ -464,16 +465,19 @@ class SbiRuntime
+ 	// Alle Opcodes mit zwei Operanden
+ 	void StepRTL( UINT32, UINT32 ),		StepPUBLIC( UINT32, UINT32 ),	StepPUBLIC_P( UINT32, UINT32 );		
+ 	void StepPUBLIC_Impl( UINT32, UINT32, bool bUsedForClassModule );
++	void StepFIND_Impl( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError, BOOL bLocal, BOOL bStatic = FALSE );
+ 	void StepFIND( UINT32, UINT32 ),    StepELEM( UINT32, UINT32 );
+ 	void StepGLOBAL( UINT32, UINT32 ),  StepLOCAL( UINT32, UINT32 );
+ 	void StepPARAM( UINT32, UINT32), 	StepCREATE( UINT32, UINT32 );
+ 	void StepCALL( UINT32, UINT32 ),    StepCALLC( UINT32, UINT32 );
+ 	void StepCASEIS( UINT32, UINT32 ),  StepSTMNT( UINT32, UINT32 );
++	SbxVariable* StepSTATIC_Impl( String& aName, SbxDataType& t );
+ 	void StepOPEN( UINT32, UINT32 ),	StepSTATIC( UINT32, UINT32 );
+ 	void StepTCREATE(UINT32,UINT32),	StepDCREATE(UINT32,UINT32);
+ 	void StepGLOBAL_P( UINT32, UINT32 ),StepFIND_G( UINT32, UINT32 );
+ 	void StepDCREATE_REDIMP(UINT32,UINT32), StepDCREATE_IMPL(UINT32,UINT32);
+ 	void StepFIND_CM( UINT32, UINT32 );
++	void StepFIND_STATIC( UINT32, UINT32 );
+ public:
+ 	void          SetVBAEnabled( bool bEnabled ) { bVBAEnabled = bEnabled; };            
+ 	USHORT		GetImageFlag( USHORT n ) const;
+Index: basic/source/inc/symtbl.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/symtbl.hxx,v
+retrieving revision 1.11
+retrieving revision 1.11.64.1
+diff -u -p -b -w -B -r1.11 -r1.11.64.1
+--- basic/source/inc/symtbl.hxx	27 Jun 2007 14:24:09 -0000	1.11
++++ basic/source/inc/symtbl.hxx	20 Dec 2007 21:23:02 -0000	1.11.64.1
+@@ -207,6 +207,7 @@ class SbiProcDef : public SbiSymDef {	//
+ 	BOOL   bCdecl  : 1;				// TRUE: CDECL angegeben
+ 	BOOL   bPublic : 1;				// TRUE: proc ist PUBLIC
+ 	BOOL   mbProcDecl : 1;			// TRUE: instanciated by SbiParser::ProcDecl
++	BOOL   bStatic : 1;				// TRUE:
+ public:
+ 	SbiProcDef( SbiParser*, const String&, BOOL bProcDecl=false );
+ 	virtual ~SbiProcDef();
+@@ -219,6 +220,8 @@ public:
+ 	String& GetAlias() 		  		{ return aAlias;   }
+ 	void SetPublic( BOOL b )		{ bPublic = b;	   }
+ 	BOOL IsPublic() const			{ return bPublic;  }
++	void SetStatic( BOOL b )		{ bStatic = b;	   }
++	BOOL IsStatic() const			{ return bStatic;  }
+ 	void SetCdecl( BOOL b = TRUE) 	{ bCdecl = b;      }
+ 	BOOL IsCdecl() const			{ return bCdecl;   }
+ 	BOOL IsUsedForProcDecl() const	{ return mbProcDecl; }
+cvs diff: Diffing basic/source/runtime
+Index: basic/source/runtime/methods.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/methods.cxx,v
+retrieving revision 1.77
+retrieving revision 1.77.34.6
+diff -u -p -b -w -B -r1.77 -r1.77.34.6
+--- basic/source/runtime/methods.cxx	20 Sep 2007 15:55:04 -0000	1.77
++++ basic/source/runtime/methods.cxx	29 Jan 2008 03:21:14 -0000	1.77.34.6
+@@ -1352,6 +1352,87 @@ RTLFUNC(Oct)
+ 	}
+ }
+ 
++// Replace(expression, find, replace[, start[, count[, compare]]]) 
++
++RTLFUNC(Replace)
++{
++    (void)pBasic;
++    (void)bWrite;
++    
++	ULONG nArgCount = rPar.Count()-1;
++	if ( nArgCount < 3 || nArgCount > 6 )
++		StarBASIC::Error( SbERR_BAD_ARGUMENT );
++	else
++	{
++		String aExpStr = rPar.Get(1)->GetString();
++		String aFindStr = rPar.Get(2)->GetString();
++		String aReplaceStr = rPar.Get(3)->GetString();
++
++		INT32 lStartPos = 1;
++		if ( nArgCount >= 4 )
++		{
++			if( rPar.Get(4)->GetType() != SbxEMPTY )
++				lStartPos = rPar.Get(4)->GetLong();
++			if( lStartPos < 1  || lStartPos > 0xffff )
++			{
++				StarBASIC::Error( SbERR_BAD_ARGUMENT );
++				lStartPos = 1;
++			}
++		}
++
++		INT32 lCount = -1;
++		if( nArgCount >=5 )
++		{
++			if( rPar.Get(5)->GetType() != SbxEMPTY )
++				lCount = rPar.Get(5)->GetLong();
++			if( lCount < -1 || lCount > 0xffff )
++			{
++				StarBASIC::Error( SbERR_BAD_ARGUMENT );
++				lCount = -1;	
++			}
++		}
++
++		SbiInstance* pInst = pINST;
++		int bTextMode;
++		bool bCompatibility = ( pInst && pInst->IsCompatibility() );
++		if( bCompatibility )
++		{
++			SbiRuntime* pRT = pInst ? pInst->pRun : NULL;
++			bTextMode = pRT ? pRT->GetImageFlag( SBIMG_COMPARETEXT ) : FALSE;
++		}
++		else
++		{
++			bTextMode = 1;
++		}
++		if ( nArgCount == 6 )
++			bTextMode = rPar.Get(6)->GetInteger();
++
++		USHORT nStrLen = aExpStr.Len();
++
++		if( lStartPos <= nStrLen )
++		{
++			String aSrcStr( aExpStr );
++			if( bTextMode )
++			{
++					aSrcStr.ToUpperAscii();
++					aFindStr.ToUpperAscii();
++			}
++			
++			USHORT nPos = aSrcStr.Search( aFindStr, lStartPos - 1 );
++			USHORT nCounts = 0;
++			USHORT nReplaceLength = aReplaceStr.Len() ? aReplaceStr.Len():1;
++			while( nPos != STRING_NOTFOUND && (lCount == -1 || lCount > nCounts) )
++			{
++				aExpStr.Replace( nPos, aFindStr.Len(), aReplaceStr );
++				nPos += nReplaceLength;
++				nPos = aSrcStr.Search( aFindStr, nPos );
++				nCounts++;
++			}
++		}
++		rPar.Get(0)->PutString( aExpStr.Copy(lStartPos - 1)  );
++	}
++}
++
+ RTLFUNC(Right)
+ {
+     (void)pBasic;
+@@ -2835,8 +2916,18 @@ RTLFUNC(GetAttr)
+ 	{
+ 		INT16 nFlags = 0;
+ 
++		// In Windows, We want to use Windows API to get the file attributes
++		// for VBA interoperability.
++		BOOL bUCB = TRUE;
++		#ifdef _OLD_FILE_IMPL
++			#if defined( WNT )
++				if( SbiRuntime::isVBAEnabled() )
++					bUCB = FALSE;
++			#endif	
++		#endif
++		
+ 		// <-- UCB
+-		if( hasUno() )
++		if( hasUno() && bUCB )
+ 		{
+ 			Reference< XSimpleFileAccess3 > xSFI = getFileAccess();
+ 			if( xSFI.is() )
+@@ -3208,6 +3299,196 @@ RTLFUNC(Seek)
+ 	}
+ }
+ 
++enum VbaFormatType
++{
++    VBA_FORMAT_TYPE_OFFSET, // standard number format
++    VBA_FORMAT_TYPE_USERDEFINED, // user defined number format
++    VBA_FORMAT_TYPE_NULL
++};
++
++struct VbaFormatInfo
++{
++    VbaFormatType meType; 
++    const char* mpVbaFormat; // Format string in vba
++    NfIndexTableOffset meOffset; // SvNumberFormatter format index, if meType = VBA_FORMAT_TYPE_OFFSET
++    const char* mpOOoFormat; // if meType = VBA_FORMAT_TYPE_USERDEFINED
++};
++
++#define VBA_FORMAT_OFFSET( pcUtf8, eOffset ) \
++    { VBA_FORMAT_TYPE_OFFSET, pcUtf8, eOffset, 0 }
++
++#define VBA_FORMAT_USERDEFINED( pcUtf8, pcDefinedUtf8 ) \
++    { VBA_FORMAT_TYPE_USERDEFINED, pcUtf8, NF_NUMBER_STANDARD, pcDefinedUtf8 }
++
++static VbaFormatInfo pFormatInfoTable[] = 
++{
++    VBA_FORMAT_OFFSET( "Long Date", NF_DATE_SYSTEM_LONG ),
++    VBA_FORMAT_USERDEFINED( "Medium Date", "DD-MMM-YYYY" ),
++    VBA_FORMAT_OFFSET( "Short Date", NF_DATE_SYSTEM_SHORT ),
++    VBA_FORMAT_OFFSET( "Long Time", NF_TIME_HHMMSSAMPM ),
++    VBA_FORMAT_OFFSET( "Medium Time", NF_TIME_HHMMAMPM ),
++    VBA_FORMAT_OFFSET( "Short Time", NF_TIME_HHMM ),
++    VBA_FORMAT_OFFSET( "ddddd", NF_DATE_SYSTEM_SHORT ),
++    VBA_FORMAT_OFFSET( "dddddd", NF_DATE_SYSTEM_LONG ),
++    VBA_FORMAT_OFFSET( "ttttt", NF_TIME_HHMMSSAMPM ),
++    VBA_FORMAT_OFFSET( "ww", NF_DATE_WW ),
++    VBA_FORMAT_USERDEFINED( "General Number", "0.############" ),
++    VBA_FORMAT_OFFSET( "Currency", NF_CURRENCY_1000DEC2 ),
++    VBA_FORMAT_OFFSET( "Fixed", NF_NUMBER_DEC2 ),
++    VBA_FORMAT_OFFSET( "Standard", NF_NUMBER_SYSTEM ),
++    VBA_FORMAT_OFFSET( "Percent", NF_PERCENT_DEC2 ),
++    VBA_FORMAT_OFFSET( "Scientific", NF_SCIENTIFIC_000E00 ),
++    { VBA_FORMAT_TYPE_NULL, 0, NF_INDEX_TABLE_ENTRIES, 0 }
++};
++
++VbaFormatInfo* getFormatInfo( const String& rFmt )
++{
++    VbaFormatInfo* pInfo = NULL;
++    INT16 i = 0;
++    while( (pInfo = pFormatInfoTable + i )->mpVbaFormat != NULL )
++    {
++        if( rFmt.EqualsIgnoreCaseAscii( pInfo->mpVbaFormat ) )
++            break;
++        i++;    
++    }
++    return pInfo;
++}
++
++#define VBAFORMAT_GENERALDATE       "General Date"
++#define VBAFORMAT_C                 "c"
++#define VBAFORMAT_N                 "n"
++#define VBAFORMAT_NN                "nn"
++#define VBAFORMAT_W                 "w"
++#define VBAFORMAT_Y                 "y"
++#define VBAFORMAT_YESNO     	    "Yes/No"
++#define VBAFORMAT_TRUEFALSE  		"True/False"
++#define VBAFORMAT_ONOFF	    		"On/Off"
++#define VBAFORMAT_LOWERCASE     	"<"
++#define VBAFORMAT_UPPERCASE         ">"
++
++// From methods1.cxx
++INT16 implGetWeekDay( double aDate, bool bFirstDayParam = false, INT16 nFirstDay = 0 );
++
++String VbaFormat( String& rStr, String& rFmt )
++{
++    String aRetStr;
++
++    // For simple text format
++	if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_LOWERCASE ) )
++		return rStr.ToLowerAscii();
++	if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_UPPERCASE ) )
++		return rStr.ToUpperAscii(); 
++	if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_YESNO ) )
++		return ( rStr.ToDouble() == 0.0 ) ? aRetStr.AssignAscii( "No" ) : aRetStr.AssignAscii( "Yes" ) ;
++	if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_TRUEFALSE ) )
++		return ( rStr.ToDouble() == 0.0 ) ? aRetStr.AssignAscii( "False" ) : aRetStr.AssignAscii( "True" ) ;
++	if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_ONOFF ) )
++		return ( rStr.ToDouble() == 0.0 ) ? aRetStr.AssignAscii( "Off" ) : aRetStr.AssignAscii( "On" ) ;
++
++	SvNumberFormatter* pFormatter;
++	com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > 
++		xFactory = comphelper::getProcessServiceFactory();
++	pFormatter = new SvNumberFormatter( xFactory, LANGUAGE_ENGLISH );
++
++	sal_uInt32 nIndex;
++	xub_StrLen nCheckPos = 0;
++	short nType;
++    double nNumber;
++    Color* pCol;
++    
++    LanguageType eLangType = GetpApp()->GetSettings().GetLanguage();
++    BOOL bSuccess = pFormatter->IsNumberFormat( rStr, nIndex, nNumber );
++
++    // Number format
++    if( bSuccess )
++    {
++        VbaFormatInfo* pInfo = getFormatInfo( rFmt );
++        if( pInfo && pInfo->meType != VBA_FORMAT_TYPE_NULL )
++        {
++            if( pInfo->meType == VBA_FORMAT_TYPE_OFFSET )
++            {
++                nIndex = pFormatter->GetFormatIndex( pInfo->meOffset, eLangType );
++            }
++            else
++            {
++                rFmt.AssignAscii( pInfo->mpOOoFormat );
++                pFormatter->PutandConvertEntry( rFmt, nCheckPos, nType, nIndex, LANGUAGE_ENGLISH, eLangType );
++            }
++	        pFormatter->GetOutputString( nNumber, nIndex, aRetStr, &pCol );
++        }
++        else if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_GENERALDATE )
++                || rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_C )) 
++        {
++            if( nNumber <=-1.0 || nNumber >= 1.0 )
++            {
++                // short date 
++                nIndex = pFormatter->GetFormatIndex( NF_DATE_SYSTEM_SHORT, eLangType );
++	            pFormatter->GetOutputString( nNumber, nIndex, aRetStr, &pCol );
++                
++                // long time
++                if( floor( nNumber ) != nNumber )
++                {
++                    nIndex = pFormatter->GetFormatIndex( NF_TIME_HHMMSSAMPM, eLangType );
++                    String aTime;
++	                pFormatter->GetOutputString( nNumber, nIndex, aTime, &pCol );
++                    aRetStr.AppendAscii(" ");
++                    aRetStr += aTime;
++                }
++            }
++            else
++            {
++                // long time only
++                nIndex = pFormatter->GetFormatIndex( NF_TIME_HHMMSSAMPM, eLangType );
++	            pFormatter->GetOutputString( nNumber, nIndex, aRetStr, &pCol );
++            }
++        }
++        else if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_N )
++                || rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_NN )) 
++        {
++            INT32 nMin = implGetMinute( nNumber );
++            if( nMin < 10 && rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_NN ) )
++            {
++                // Minute in two digits
++                 sal_Unicode* p = aRetStr.AllocBuffer( 2 );
++                 *p++ = '0';
++                 *p = sal_Unicode( '0' + nMin );
++            }
++            else
++            {
++                aRetStr = String::CreateFromInt32( nMin );
++            }
++        }
++        else if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_W ))
++        {
++            INT32 nWeekDay = implGetWeekDay( nNumber );
++            aRetStr = String::CreateFromInt32( nWeekDay );
++        }
++        else if( rFmt.EqualsIgnoreCaseAscii( VBAFORMAT_Y ))
++        {
++			INT16 nYear = implGetDateYear( nNumber );
++			double dBaseDate;
++			implDateSerial( nYear, 1, 1, dBaseDate );
++			INT32 nYear32 = 1 + INT32( nNumber - dBaseDate );
++            aRetStr = String::CreateFromInt32( nYear32 );
++        }
++        else
++        {
++            pFormatter->PutandConvertEntry( rFmt, nCheckPos, nType, nIndex, LANGUAGE_ENGLISH, eLangType );
++	        pFormatter->GetOutputString( nNumber, nIndex, aRetStr, &pCol );
++        }
++    }
++    else
++    {
++        // text format
++        pFormatter->PutandConvertEntry( rFmt, nCheckPos, nType, nIndex, LANGUAGE_ENGLISH, eLangType );
++	    pFormatter->GetOutputString( rStr, nIndex, aRetStr, &pCol );
++    }
++
++	delete pFormatter;
++    
++    return aRetStr;
++}
++
+ RTLFUNC(Format)
+ {
+     (void)pBasic;
+@@ -3224,8 +3505,17 @@ RTLFUNC(Format)
+ 		else
+ 		{
+ 			String aFmt( rPar.Get(2)->GetString() );
++
++            if( SbiRuntime::isVBAEnabled() )
++            {
++                String aStr = rPar.Get(1)->GetString();
++                aResult = VbaFormat( aStr, aFmt );
++            }
++            else
++            {
+ 			rPar.Get(1)->Format( aResult, &aFmt );
+ 		}
++		}
+ 		rPar.Get(0)->PutString( aResult );
+ 	}
+ }
+@@ -3865,21 +4155,135 @@ RTLFUNC(QBColor)
+ 	rPar.Get(0)->PutLong( nRGB );
+ }
+ 
+-
++// StrConv(string, conversion, LCID)
+ RTLFUNC(StrConv)
+ {
+     (void)pBasic;
+     (void)bWrite;
+-    (void)rPar;
+     
+-	DBG_ASSERT(0,"StrConv:Not implemented");
+-//	if ( rPar.Count() != 3 )
+-//	{
++	ULONG nArgCount = rPar.Count()-1;
++	if( nArgCount < 2 || nArgCount > 3 )
++	{
+ 		StarBASIC::Error( SbERR_BAD_ARGUMENT );
+-//		return;
+-//	}
++		return;	
++	}
++
++	String aOldStr = rPar.Get(1)->GetString(); 
++	INT32 nConversion = rPar.Get(2)->GetLong();
++	
++	USHORT nLanguage = LANGUAGE_SYSTEM;
++	if( nArgCount == 3 )
++	{
++		// LCID not supported now	
++		//nLanguage = rPar.Get(3)->GetInteger();
++	}
++
++	USHORT nOldLen = aOldStr.Len();
++	if( nOldLen == 0 )
++	{
++		// null string,return 
++		rPar.Get(0)->PutString(aOldStr);
++		return;
++	}
++
++	INT32 nType = 0;
++	if ( (nConversion & 0x03) == 3 ) //  vbProperCase
++	{
++		CharClass& rCharClass = GetCharClass();
++		aOldStr = rCharClass.toTitle( aOldStr.ToLowerAscii(), 0, nOldLen );
++	}
++	else if ( (nConversion & 0x01) == 1 ) // vbUpperCase
++		nType |= ::com::sun::star::i18n::TransliterationModules_LOWERCASE_UPPERCASE;
++	else if ( (nConversion & 0x02) == 2 ) // vbLowerCase
++		nType |= ::com::sun::star::i18n::TransliterationModules_UPPERCASE_LOWERCASE;
++	
++	if ( (nConversion & 0x04) == 4 ) // vbWide
++		nType |= ::com::sun::star::i18n::TransliterationModules_HALFWIDTH_FULLWIDTH;
++	else if ( (nConversion & 0x08) == 8 ) // vbNarrow
++		nType |= ::com::sun::star::i18n::TransliterationModules_FULLWIDTH_HALFWIDTH;
++
++	if ( (nConversion & 0x10) == 16) // vbKatakana
++		nType |= ::com::sun::star::i18n::TransliterationModules_HIRAGANA_KATAKANA;
++	else if ( (nConversion & 0x20) == 32 ) // vbHiragana
++		nType |= ::com::sun::star::i18n::TransliterationModules_KATAKANA_HIRAGANA;
++
++	String aNewStr( aOldStr );
++	if( nType != 0 )
++	{
++		Reference< XMultiServiceFactory > xSMgr = getProcessServiceFactory();
++    	::utl::TransliterationWrapper aTransliterationWrapper( xSMgr,nType );
++		com::sun::star::uno::Sequence<sal_Int32> aOffsets;
++		aTransliterationWrapper.loadModuleIfNeeded( nLanguage );
++		aNewStr = aTransliterationWrapper.transliterate( aOldStr, nLanguage, 0, nOldLen, &aOffsets );
++	}
++
++	if ( (nConversion & 0x40) == 64 ) // vbUnicode
++	{
++		// convert the string to byte string, preserving unicode (2 bytes per character)
++		USHORT nSize = aNewStr.Len()*2;
++		const sal_Unicode* pSrc = aNewStr.GetBuffer();
++		sal_Char* pChar = new sal_Char[nSize+1];
++		for( USHORT i=0; i < nSize; i++ )
++		{
++			pChar[i] = i%2 ? ((*pSrc) >> 8) & 0xff : (*pSrc) & 0xff;
++			if( i%2 )
++				pSrc++;	
++		}
++		pChar[nSize] = '\0';
++		OString aOStr(pChar);	
++		
++		// there is no concept about default codepage in unix. so it is incorrectly in unix 
++		OUString aOUStr = OStringToOUString(aOStr, osl_getThreadTextEncoding());
++		aNewStr = String(aOUStr);
++		rPar.Get(0)->PutString( aNewStr );
++		return;
++	}
++	else if ( (nConversion & 0x80) == 128 ) // vbFromUnicode
++	{
++		OUString aOUStr(aNewStr);
++		// there is no concept about default codepage in unix. so it is incorrectly in unix 
++		OString aOStr = OUStringToOString(aNewStr,osl_getThreadTextEncoding());
++		const sal_Char* pChar = aOStr.getStr();
++		USHORT nArraySize = aOStr.getLength();
++		SbxDimArray* pArray = new SbxDimArray(SbxBYTE);
++		bool bIncIndex = (IsBaseIndexOne() && SbiRuntime::isVBAEnabled() );
++		if(nArraySize)
++		{
++			if( bIncIndex )
++				pArray->AddDim( 1, nArraySize );
++			else
++				pArray->AddDim( 0, nArraySize-1 );	
++		}
++		else
++		{
++			pArray->unoAddDim( 0, -1 );	
+ }
+ 
++		for( USHORT	i=0; i< nArraySize; i++)
++		{
++			SbxVariable* pNew = new SbxVariable( SbxBYTE );
++			pNew->PutByte(*pChar);
++			pChar++;
++			pNew->SetFlag( SBX_WRITE );
++			short index = i;
++			if( bIncIndex )
++				++index;
++			pArray->Put( pNew, &index );	
++		}
++
++		SbxVariableRef refVar = rPar.Get(0);
++		USHORT nFlags = refVar->GetFlags();
++		refVar->ResetFlag( SBX_FIXED );
++		refVar->PutObject( pArray );
++		refVar->SetFlags( nFlags );
++	    refVar->SetParameters( NULL );
++   		return;	   
++	}
++
++	rPar.Get(0)->PutString(aNewStr);
++}
++
++
+ RTLFUNC(Beep)
+ {
+     (void)pBasic;
+@@ -4263,3 +4667,115 @@ RTLFUNC(FileExists)
+ 		StarBASIC::Error( SbERR_BAD_ARGUMENT );
+ }
+ 
++RTLFUNC(Partition)
++{
++    (void)pBasic;
++    (void)bWrite;
++    
++	if ( rPar.Count() != 5 )
++	{
++		StarBASIC::Error( SbERR_BAD_ARGUMENT );
++		return;
++	}
++
++	INT32 nNumber = rPar.Get(1)->GetLong();
++	INT32 nStart = rPar.Get(2)->GetLong();
++	INT32 nStop = rPar.Get(3)->GetLong();
++	INT32 nInterval = rPar.Get(4)->GetLong();
++	
++	if( nStart < 0 || nStop <= nStart || nInterval < 1 )
++	{
++		StarBASIC::Error( SbERR_BAD_ARGUMENT );
++		return;
++	}
++
++	// define a space (' ') character and colon(:) character
++	OUString aSpace = OUString::createFromAscii(" ");
++	OUString aColon = OUString::createFromAscii(":");
++
++	OUString aBeforStart = OUString::valueOf(nStart-1);
++	OUString aAfterStop = OUString::valueOf(nStop+1);
++	
++	// the Partition function inserts leading spaces before lowervalue and uppervalue
++    // so that they both have the same number of characters as the string
++    // representation of the value (Stop + 1). This ensures that if you use the output
++    // of the Partition function with several values of Number, the resulting text 
++	// will be handled properly during any subsequent sort operation.
++
++	// The maximun number of characters before lowervalue and uppervalue
++	INT32 nLen1 = aBeforStart.getLength();
++	INT32 nLen2 = aAfterStop.getLength();
++	INT32 nLen = nLen1 >= nLen2 ? nLen1:nLen2;
++
++	OUString aRetStr;
++	OUString aLowerValue;
++	OUString aUpperValue;	
++	OUString aSpaceStr1;
++	OUString aSpaceStr2;
++	if( nNumber < nStart || nNumber > nStop )
++	{
++		// appending the leading spaces for the lowervalue and uppervalue
++		for( INT32 i=0; i< nLen; i++ )
++		{
++			aSpaceStr1 += aSpace;
++		}
++		
++		INT32 start = nNumber < nStart ? nLen1 : nLen2;
++		
++		for( INT32 i=start; i<nLen; i++ )
++		{
++			aSpaceStr2 += aSpace;	
++		}
++
++		if( nNumber < nStart )
++		{
++			aLowerValue = aSpaceStr1;
++			aUpperValue = aSpaceStr2 + aBeforStart;
++		}
++		else
++		{
++			aLowerValue = aSpaceStr2 + aAfterStop;
++			aUpperValue = aSpaceStr1;
++		}
++
++		aRetStr = aLowerValue + aColon + aUpperValue;
++		rPar.Get(0)->PutString(String(aRetStr));
++		return;
++	}
++
++	INT32 nLowerValue;
++	INT32 nUpperValue;
++	for( INT32 i=nStart; i<nStop; i=i+nInterval )
++	{
++		if( nNumber < i+nInterval )
++		{
++			nLowerValue = i;
++			nUpperValue = ( i+nInterval-1 > nStop ) ? nStop : (i+nInterval-1);
++			break;
++		}
++	}
++
++	aLowerValue = OUString::valueOf( nLowerValue );
++	aUpperValue = OUString::valueOf( nUpperValue );
++
++	nLen1 = aLowerValue.getLength();
++	nLen2 = aUpperValue.getLength();
++
++	// appending the leading spaces for the lowervalue and uppervalue
++	for( INT32 i=nLen1; i<nLen; i++ )
++	{
++		aSpaceStr1 += aSpace;
++	}
++	aLowerValue = aSpaceStr1 + aLowerValue;	
++
++	for( INT32 i=nLen2; i<nLen; i++ )
++	{
++		aSpaceStr2 += aSpace;
++	}
++
++	aUpperValue = aSpaceStr2 + aUpperValue;
++
++	aRetStr = aLowerValue + aColon + aUpperValue;
++
++	rPar.Get(0)->PutString(String(aRetStr));
++}
+Index: basic/source/runtime/rtlproto.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/rtlproto.hxx,v
+retrieving revision 1.17
+retrieving revision 1.17.64.3
+diff -u -p -b -w -B -r1.17 -r1.17.64.3
+--- basic/source/runtime/rtlproto.hxx	27 Jun 2007 14:26:27 -0000	1.17
++++ basic/source/runtime/rtlproto.hxx	7 Jan 2008 06:47:16 -0000	1.17.64.3
+@@ -189,6 +189,7 @@ extern RTLFUNC(Log);
+ extern RTLFUNC(LTrim);
+ extern RTLFUNC(Mid);
+ extern RTLFUNC(Oct);
++extern RTLFUNC(Replace);
+ extern RTLFUNC(Right);
+ extern RTLFUNC(RTrim);
+ extern RTLFUNC(RTL);
+@@ -347,6 +348,8 @@ extern RTLFUNC(CDateFromIso);
+ extern RTLFUNC(CompatibilityMode);
+ extern RTLFUNC(CDec);
+ 
++extern RTLFUNC(Partition); // Fong
+ 
+ extern double Now_Impl();
+ extern void Wait_Impl( bool bDurationBased, SbxArray& rPar );
++bool IsBaseIndexOne();
+Index: basic/source/runtime/runtime.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
+retrieving revision 1.36
+retrieving revision 1.36.40.1
+diff -u -p -b -w -B -r1.36 -r1.36.40.1
+--- basic/source/runtime/runtime.cxx	30 Aug 2007 10:01:29 -0000	1.36
++++ basic/source/runtime/runtime.cxx	20 Dec 2007 21:23:02 -0000	1.36.40.1
+@@ -212,6 +212,7 @@ SbiRuntime::pStep2 SbiRuntime::aStep2[] 
+ 	&SbiRuntime::StepDCREATE_REDIMP, // Objekt-Array redimensionieren (+StringID+StringID)
+ 	&SbiRuntime::StepFIND_CM,    // Search inside a class module (CM) to enable global search in time
+ 	&SbiRuntime::StepPUBLIC_P,    // Search inside a class module (CM) to enable global search in time
++	&SbiRuntime::StepFIND_STATIC,    // Search inside a class module (CM) to enable global search in time
+ };
+ 
+ 
+@@ -506,7 +507,7 @@ SbxArray* SbiInstance::GetLocals( SbMeth
+ 
+ SbiRuntime::SbiRuntime( SbModule* pm, SbMethod* pe, UINT32 nStart )
+ 		 : rBasic( *(StarBASIC*)pm->pParent ), pInst( pINST ), 
+-		   pMod( pm ), pMeth( pe ), pImg( pMod->pImage ), m_nLastTime(0)
++		   pMod( pm ), pMeth( pe ), pRealMeth(0), pImg( pMod->pImage ), m_nLastTime(0)
+ {
+ 	nFlags	  = pe ? pe->GetDebugFlags() : 0;
+ 	pIosys	  = pInst->pIosys;
+@@ -542,6 +543,13 @@ SbiRuntime::SbiRuntime( SbModule* pm, Sb
+ 	pRefSaveList = NULL;
+ 	pItemStoreList = NULL;
+ 	bVBAEnabled = isVBAEnabled();
++	if ( pMeth )
++	{
++		SbxVariable* p = pMod->Find( pMeth->GetName(), SbxCLASS_METHOD  );
++		SbMethod* pMethod= p ? PTR_CAST(SbMethod,p) : NULL;
++		if ( pMethod )
++			pRealMeth = pMethod;
++	}
+ }
+ 
+ SbiRuntime::~SbiRuntime()
+Index: basic/source/runtime/stdobj.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/stdobj.cxx,v
+retrieving revision 1.25
+retrieving revision 1.25.54.3
+diff -u -p -b -w -B -r1.25 -r1.25.54.3
+--- basic/source/runtime/stdobj.cxx	3 Aug 2007 09:56:10 -0000	1.25
++++ basic/source/runtime/stdobj.cxx	7 Jan 2008 06:47:16 -0000	1.25.54.3
+@@ -423,6 +423,12 @@ static Methods aMethods[] = {
+ { "Oct",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Oct),0             },
+   { "number",       SbxLONG, 0,NULL,0 },
+ 
++{ "Partition",      SbxSTRING,    4 | _FUNCTION, RTLNAME(Partition),0       },
++  { "number",   	SbxLONG, 	0,NULL,0 },
++  { "start",     	SbxLONG, 	0,NULL,0 },
++  { "stop",  	    SbxLONG, 	0,NULL,0 },
++  { "interval",     SbxLONG, 	0,NULL,0 },
++  
+ { "Pi",				SbxDOUBLE,		  _CPROP,    RTLNAME(PI),0		      	},
+ { "Put",            SbxNULL,   3 | _FUNCTION, RTLNAME(Put),0                },
+   { "filenumber",   SbxINTEGER, 0,NULL,0 },
+@@ -443,6 +449,13 @@ static Methods aMethods[] = {
+   { "Red",       	SbxINTEGER, 0,NULL,0 },
+   { "Green",       	SbxINTEGER, 0,NULL,0 },
+   { "Blue",       	SbxINTEGER, 0,NULL,0 },
++{ "Replace",        SbxSTRING,    6 | _FUNCTION, RTLNAME(Replace),0         },
++  { "Expression",   SbxSTRING, 0,NULL,0 },
++  { "Find",     	SbxSTRING, 0,NULL,0 },
++  { "Replace",      SbxSTRING, 0,NULL,0 },
++  { "Start",        SbxINTEGER, 	_OPT, NULL,0 },
++  { "Count",        SbxINTEGER,		_OPT, NULL,0 },
++  { "Compare",      SbxINTEGER,		_OPT, NULL,0 },
+ { "Right",          SbxSTRING,    2 | _FUNCTION, RTLNAME(Right),0           },
+   { "String",       SbxSTRING, 0,NULL,0 },
+   { "Count",        SbxLONG, 0,NULL,0 },
+@@ -496,9 +509,10 @@ static Methods aMethods[] = {
+   { "String1",      SbxSTRING, 0,NULL,0 },
+   { "String2",      SbxSTRING, 0,NULL,0 },
+   { "Compare",      SbxINTEGER,       _OPT, NULL,0 },
+-{ "StrConv",        SbxSTRING,   2 | _FUNCTION, RTLNAME(StrConv),0          },
++{ "StrConv",        SbxOBJECT,   3 | _FUNCTION, RTLNAME(StrConv),0          },
+   { "String",       SbxSTRING, 0,NULL,0 },
+   { "Conversion",   SbxSTRING, 0,NULL,0 },
++  { "LCID",			SbxINTEGER, _OPT,NULL,0 },
+ { "String",         SbxSTRING,    2 | _FUNCTION, RTLNAME(String),0          },
+   { "Count",        SbxLONG, 0,NULL,0 },
+   { "Filler",       SbxVARIANT, 0,NULL,0 },
+Index: basic/source/runtime/step0.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step0.cxx,v
+retrieving revision 1.29
+retrieving revision 1.29.40.1
+diff -u -p -b -w -B -r1.29 -r1.29.40.1
+--- basic/source/runtime/step0.cxx	30 Aug 2007 10:01:41 -0000	1.29
++++ basic/source/runtime/step0.cxx	20 Dec 2007 21:21:52 -0000	1.29.40.1
+@@ -323,8 +323,10 @@ void SbiRuntime::StepIS()
+ 	SbxVariableRef refVar2 = PopVar();
+ 	BOOL bRes = BOOL(
+ 		refVar1->GetType() == SbxOBJECT
+-	 && refVar2->GetType() == SbxOBJECT
+-	 && refVar1->GetObject() == refVar2->GetObject() );
++	 && refVar2->GetType() == SbxOBJECT );
++	if ( bVBAEnabled  && !bRes )
++		Error( SbERR_INVALID_USAGE_OBJECT );
++	bRes = ( bRes && refVar1->GetObject() == refVar2->GetObject() );
+ 	SbxVariable* pRes = new SbxVariable;
+ 	pRes->PutBool( bRes );
+ 	PushVar( pRes );
+Index: basic/source/runtime/step2.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step2.cxx,v
+retrieving revision 1.32
+retrieving revision 1.32.40.1
+diff -u -p -b -w -B -r1.32 -r1.32.40.1
+--- basic/source/runtime/step2.cxx	30 Aug 2007 10:09:56 -0000	1.32
++++ basic/source/runtime/step2.cxx	20 Dec 2007 21:23:02 -0000	1.32.40.1
+@@ -117,7 +117,7 @@ SbxVariable* VBAFind( const String& rNam
+ // 0x8000 - Argv ist belegt
+ 
+ SbxVariable* SbiRuntime::FindElement
+-	( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal )
++	( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal, BOOL bStatic )
+ {
+ 	bool bIsVBAInterOp = SbiRuntime::isVBAEnabled(); 
+ 	if( bIsVBAInterOp )
+@@ -154,9 +154,17 @@ SbxVariable* SbiRuntime::FindElement
+ 			nOp1 = nOp1 | 0x8000; // indicate params are present
+ 			aName = String::CreateFromAscii("Evaluate");
+ 		}
+-
+ 		if( bLocal )
++		{
++			if ( bStatic )
++			{	
++				if ( pRealMeth )
++					pElem = pRealMeth->GetStatics()->Find( aName, SbxCLASS_DONTCARE );
++			}
++
++			if ( !pElem )
+ 			pElem = refLocals->Find( aName, SbxCLASS_DONTCARE );
++		}
+ 		if( !pElem )
+ 		{
+ 			// Die RTL brauchen wir nicht mehr zu durchsuchen!
+@@ -256,6 +264,10 @@ SbxVariable* SbiRuntime::FindElement
+ 				}
+ 				else
+ 				{
++					if ( bStatic )
++						pElem = StepSTATIC_Impl( aName, t );
++					if ( !pElem )
++					{
+ 					// Sonst Variable neu anlegen
+ 					pElem = new SbxVariable( t );
+ 					if( t != SbxVARIANT )
+@@ -265,6 +277,7 @@ SbxVariable* SbiRuntime::FindElement
+ 				}
+ 			}
+ 		}
++		}
+ 		// #39108 Args koennen schon geloescht sein!
+ 		if( !bFatalError )
+ 			SetupArgs( pElem, nOp1 );
+@@ -646,29 +659,39 @@ void SbiRuntime::StepRTL( UINT32 nOp1, U
+ 	PushVar( FindElement( rBasic.pRtl, nOp1, nOp2, SbERR_PROC_UNDEFINED, FALSE ) );
+ }
+ 
++void
++SbiRuntime::StepFIND_Impl( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal, BOOL bStatic )
++{
++	if( !refLocals )
++		refLocals = new SbxArray;
++	PushVar( FindElement( pObj, nOp1, nOp2, nNotFound, bLocal, bStatic ) );
++}
+ // Laden einer lokalen/globalen Variablen (+StringID+Typ)
+ 
+ void SbiRuntime::StepFIND( UINT32 nOp1, UINT32 nOp2 )
+ {
+-	if( !refLocals )
+-		refLocals = new SbxArray;
+-	PushVar( FindElement( pMod, nOp1, nOp2, SbERR_PROC_UNDEFINED, TRUE ) );
++	StepFIND_Impl( pMod, nOp1, nOp2, SbERR_PROC_UNDEFINED, TRUE );
+ }
+ 
+ // Search inside a class module (CM) to enable global search in time
+ void SbiRuntime::StepFIND_CM( UINT32 nOp1, UINT32 nOp2 )
+ {
+-	if( !refLocals )
+-		refLocals = new SbxArray;
+ 
+ 	SbClassModuleObject* pClassModuleObject = PTR_CAST(SbClassModuleObject,pMod);
+ 	if( pClassModuleObject )
+ 		pMod->SetFlag( SBX_GBLSEARCH );
+-	PushVar( FindElement( pMod, nOp1, nOp2, SbERR_PROC_UNDEFINED, TRUE ) );
++
++	StepFIND_Impl( pMod, nOp1, nOp2, SbERR_PROC_UNDEFINED, TRUE );
++
+ 	if( pClassModuleObject )
+ 		pMod->ResetFlag( SBX_GBLSEARCH );
+ }
+ 
++void SbiRuntime::StepFIND_STATIC( UINT32 nOp1, UINT32 nOp2 )
++{
++	StepFIND_Impl( pMod, nOp1, nOp2, SbERR_PROC_UNDEFINED, TRUE, TRUE );
++}
++
+ // Laden eines Objekt-Elements (+StringID+Typ)
+ // Das Objekt liegt auf TOS
+ 
+@@ -1218,19 +1241,27 @@ void SbiRuntime::StepFIND_G( UINT32 nOp1
+ }
+ 
+ 
++SbxVariable* SbiRuntime::StepSTATIC_Impl( String& aName, SbxDataType& t )
++{
++    SbxVariable* p = NULL;
++    if ( pRealMeth )
++    {
++        SbxArray* pStatics = pRealMeth->GetStatics();
++        if( pStatics && ( pStatics->Find( aName, SbxCLASS_DONTCARE ) == NULL ) )
++        {
++            p = new SbxVariable( t );
++            if( t != SbxVARIANT )
++                p->SetFlag( SBX_FIXED );
++            p->SetName( aName );
++            pStatics->Put( p, pStatics->Count() );
++        }
++    }
++    return p;
++}
+ // Einrichten einer statischen Variablen (+StringID+Typ)
+-
+ void SbiRuntime::StepSTATIC( UINT32 nOp1, UINT32 nOp2 )
+ {
+-    (void)nOp1;
+-    (void)nOp2;
+-	/* AB #40689, wird nicht mehr verwendet
+ 	String aName( pImg->GetString( nOp1 ) );
+ 	SbxDataType t = (SbxDataType) nOp2;
+-	SbxVariable* p = new SbxVariable( t );
+-	p->SetName( aName );
+-	pInst -> GetStatics()->Put( p, pInst->GetStatics()->Count() );
+-	*/
++    StepSTATIC_Impl( aName, t );
+ }
+-
+-
+cvs diff: Diffing basic/source/sample
+cvs diff: Diffing basic/source/sbx
+Index: basic/source/sbx/sbxconv.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxconv.hxx,v
+retrieving revision 1.4
+retrieving revision 1.4.132.1
+diff -u -p -b -w -B -r1.4 -r1.4.132.1
+--- basic/source/sbx/sbxconv.hxx	12 Oct 2006 14:32:25 -0000	1.4
++++ basic/source/sbx/sbxconv.hxx	7 Jan 2008 06:45:49 -0000	1.4.132.1
+@@ -38,6 +38,8 @@
+ 
+ #include "sbxdec.hxx"
+ 
++class SbxArray;
++
+ // SBXSCAN.CXX
+ extern void ImpCvtNum( double nNum, short nPrec, String& rRes, BOOL bCoreString=FALSE );
+ extern SbxError ImpScan
+@@ -150,4 +152,8 @@ void    ImpPutULong( SbxValues*, UINT32 
+ enum SbxBOOL ImpGetBool( const SbxValues* );
+ void    ImpPutBool( SbxValues*, INT16 );
+ 
++// ByteArry <--> String
++SbxArray* StringToByteArray(const String& rStr);
++String ByteArrayToString(SbxArray* pArr);
++
+ #endif
+Index: basic/source/sbx/sbxstr.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxstr.cxx,v
+retrieving revision 1.7
+retrieving revision 1.7.20.2
+diff -u -p -b -w -B -r1.7 -r1.7.20.2
+--- basic/source/sbx/sbxstr.cxx	13 Nov 2007 15:24:10 -0000	1.7
++++ basic/source/sbx/sbxstr.cxx	28 Jan 2008 09:42:55 -0000	1.7.20.2
+@@ -43,6 +43,9 @@
+ #include "sbxconv.hxx"
+ #include "sbxres.hxx"
+ 
++#ifndef _RTL_USTRBUF_HXX_
++#include <rtl/ustrbuf.hxx>
++#endif
+ // AB 29.10.99 Unicode
+ #ifndef _USE_NO_NAMESPACE
+ using namespace rtl;
+@@ -102,6 +105,14 @@ XubString ImpGetString( const SbxValues*
+ 			SbxValue* pVal = PTR_CAST(SbxValue,p->pObj);
+ 			if( pVal )
+ 				aRes = pVal->GetString();
++			else if( p->pObj && p->pObj->IsFixed()
++					&& (p->pObj->GetType() & (SbxARRAY | SbxBYTE )) )
++			{
++				// convert byte array to string
++				SbxArray* pArr = PTR_CAST(SbxArray, p->pObj);
++				if( pArr )
++					aRes = ByteArrayToString( pArr );
++			}
+ 			else
+ 				SbxBase::SetError( SbxERR_NO_OBJECT );
+ 			break;
+@@ -257,3 +268,59 @@ void ImpPutString( SbxValues* p, const X
+ 	delete pTmp;
+ }
+ 
++// Convert string to an array of bytes, preserving unicode (2bytes per character)
++SbxArray* StringToByteArray(const String& rStr)
++{
++	USHORT nArraySize = rStr.Len() * 2;
++	const sal_Unicode* pSrc = rStr.GetBuffer();
++	SbxDimArray* pArray = new SbxDimArray(SbxBYTE);
++	if( nArraySize )
++		pArray->AddDim( 0, nArraySize-1 );	
++	else
++	{
++		pArray->unoAddDim( 0, -1 );
++	}
++
++	for( USHORT	i=0; i< nArraySize; i++)
++	{
++		SbxVariable* pNew = new SbxVariable( SbxBYTE );
++		BYTE aByte = i%2 ? ((*pSrc) >> 8) & 0xff : (*pSrc) & 0xff;
++		pNew->PutByte( aByte );
++		pNew->SetFlag( SBX_WRITE );
++		pArray->Put( pNew, i );	
++		if( i%2 )
++			pSrc++;
++	}
++	return pArray;
++}	
++
++// Convert an array of bytes to string (2bytes per character)
++String ByteArrayToString(SbxArray* pArr)
++{
++	USHORT nCount = pArr->Count();
++	OUStringBuffer aStrBuf;
++	sal_Unicode aChar = 0;
++	for(int i=0; i< nCount; i++)
++	{
++		sal_Unicode aTempChar = pArr->Get(i)->GetByte();
++		if( i%2 )
++		{
++			aChar = (aTempChar << 8 ) | aChar;
++			aStrBuf.append(aChar);
++			aChar = 0;
++		}
++		else
++		{
++			aChar = aTempChar;	
++		}
++	}
++	
++	if( nCount%2 )
++	{
++		aStrBuf.append(aChar);
++	}
++
++	String aStr(aStrBuf.makeStringAndClear());
++	
++	return aStr;
++}
+Index: basic/source/sbx/sbxvalue.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxvalue.cxx,v
+retrieving revision 1.10
+retrieving revision 1.10.40.2
+diff -u -p -b -w -B -r1.10 -r1.10.40.2
+--- basic/source/sbx/sbxvalue.cxx	30 Aug 2007 10:02:21 -0000	1.10
++++ basic/source/sbx/sbxvalue.cxx	28 Jan 2008 09:42:55 -0000	1.10.40.2
+@@ -333,6 +333,30 @@ SbxValue& SbxValue::operator=( const Sbx
+ 			SetError( SbxERR_PROP_READONLY );
+ 		else
+ 		{
++			// string -> byte array
++			if( IsFixed() && (aData.eType == SbxOBJECT)
++				&& aData.pObj && ( aData.pObj->GetType() & (SbxARRAY | SbxBYTE) )		   	
++				&& (r.aData.eType == SbxSTRING) )
++			{
++				String aStr = r.GetString();
++				SbxArray* pArr = StringToByteArray(aStr);
++				PutObject(pArr);
++				return *this;
++			}
++			// byte array -> string
++			if( r.IsFixed() && (r.aData.eType == SbxOBJECT)
++				&& r.aData.pObj && ( r.aData.pObj->GetType() & (SbxARRAY | SbxBYTE) )
++				&& (aData.eType == SbxSTRING) )
++			{
++				SbxBase* pObj = r.GetObject();
++				SbxArray* pArr = PTR_CAST(SbxArray, pObj);
++				if( pArr )
++				{
++					String aStr = ByteArrayToString( pArr );
++					PutString(aStr);
++					return *this;
++				}
++			}
+ 			// Den Inhalt der Variablen auslesen
+ 			SbxValues aNew;
+ 			if( IsFixed() )
+cvs diff: Diffing basic/source/uno
+cvs diff: Diffing basic/util
+cvs diff: Diffing basic/util/defs
+cvs diff: Diffing basic/win
+cvs diff: Diffing basic/win/res
+cvs diff: Diffing basic/workben
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unxsplash-new-osl-pipe.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unxsplash-new-osl-pipe.diff
@@ -0,0 +1,175 @@
+diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c
+index 05ef574..c7d5d4c 100644
+--- desktop/unx/source/start.c
++++ desktop/unx/source/start.c
+@@ -49,8 +49,10 @@
+ 
+ #include <osl/nlsupport.h>
+ #include <osl/process.h>
++#include <osl/thread.h>
+ #include <rtl/bootstrap.h>
+ #include <rtl/digest.h>
++#include <rtl/ustrbuf.h>
+ #include <sal/main.h>
+ 
+ #include "splashx.h"
+@@ -131,7 +133,7 @@ get_md5hash( rtl_uString *pText )
+         return NULL;
+ 
+     rtlDigest digest = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
+-    if ( digest <= 0 )
++    if ( digest == 0 )
+         return NULL;
+ 
+     sal_uInt32 md5_key_len = rtl_digest_queryLength( digest );
+@@ -254,33 +256,108 @@ connect_pipe( rtl_uString *pPipePath )
+     return fd;
+ }
+ 
++/* Escape: "," -> "\\,", "\0" -> "\\0", "\\" -> "\\\\" */
++static rtl_uString *
++escape_path( rtl_uString *pToEscape )
++{
++    rtl_uString *pBuffer = NULL;
++    sal_Int32 nCapacity = 1000;
++
++    rtl_uString_new_WithLength( &pBuffer, nCapacity );
++
++    sal_Int32 i = 0;
++    sal_Int32 nEscapeLength = rtl_uString_getLength( pToEscape );
++    for ( ; i < nEscapeLength; ++i )
++    {
++        sal_Unicode c = pToEscape->buffer[i];
++        switch ( c )
++        {
++            case (sal_Unicode)'\0':
++                rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
++                        rtl_uString_getLength( pBuffer ),
++                        RTL_CONSTASCII_STRINGPARAM( "\\0" ) );
++                break;
++            case (sal_Unicode)',':
++                rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
++                        rtl_uString_getLength( pBuffer ),
++                        RTL_CONSTASCII_STRINGPARAM( "\\," ) );
++                break;
++            case (sal_Unicode)'\\':
++                rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
++                        rtl_uString_getLength( pBuffer ),
++                        RTL_CONSTASCII_STRINGPARAM( "\\\\" ) );
++                break;
++            default:
++                rtl_uStringbuffer_insert( &pBuffer, &nCapacity,
++                        rtl_uString_getLength( pBuffer ),
++                        &c, 1 );
++        }
++    }
++
++    return pBuffer;
++}
++
+ /* Send args to the OOo instance (using the 'fd' file descriptor) */
+ static sal_Bool
+-send_args( int fd )
++send_args( int fd, rtl_uString *pCwdPath )
+ {
+     rtl_uString *pBuffer = NULL, *pTmp = NULL;
+-    sal_Int32 nCapacity = 100;
++    sal_Int32 nCapacity = 1000;
+     rtl_String *pOut = NULL;
+     sal_Bool bResult;
+     size_t nLen;
++    rtl_uString *pEscapedCwdPath = escape_path( pCwdPath );
+ 
+     rtl_uString_new_WithLength( &pBuffer, nCapacity );
+     rtl_uString_new( &pTmp );
+ 
++    rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
++            rtl_uString_getLength( pBuffer ),
++            RTL_CONSTASCII_STRINGPARAM( "InternalIPC::Arguments" ) );
++
++    sal_Bool bDontConvertNext = sal_False;
+     sal_uInt32 nArg;
+     sal_uInt32 nArgCount = osl_getCommandArgCount();
+     for ( nArg = 0; nArg < nArgCount; ++nArg )
+     {
++        rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
++                rtl_uString_getLength( pBuffer ),
++                ",", 1 );
++
+         osl_getCommandArg( nArg, &pTmp );
+ 
++        if ( rtl_uString_getLength( pTmp ) == 0 )
++            continue;
++
++        // this is not a param, we have to prepend filenames with file://
++        // FIXME: improve the check
++        if ( pTmp->buffer[0] != (sal_Unicode)'-' )
++        {
++            sal_Int32 nFirstColon = rtl_ustr_indexOfChar_WithLength( pTmp->buffer, pTmp->length, ':' );
++            sal_Int32 nFirstSlash = rtl_ustr_indexOfChar_WithLength( pTmp->buffer, pTmp->length, '/' );
++
++            // check that pTmp is not an URI yet
++            if ( nFirstColon < 1 || ( nFirstSlash != nFirstColon + 1 ) )
++            {
++                // some of the switches (currently just -pt) don't want to
++                // have the filenames as URIs
++                if ( !bDontConvertNext )
++                    osl_getAbsoluteFileURL( pCwdPath, pTmp, &pTmp );
++            }
++        }
++
++        // don't convert filenames with some of the switches
++        // (currently just -pt)
++        bDontConvertNext = !rtl_ustr_ascii_compareIgnoreAsciiCase( pTmp->buffer, "-pt" );
++
++        rtl_uString *pEscapedTmp = escape_path( pTmp );
++
+         rtl_uStringbuffer_insert( &pBuffer, &nCapacity,
+                 rtl_uString_getLength( pBuffer ),
+-                rtl_uString_getStr( pTmp ),
+-                rtl_uString_getLength( pTmp ) );
++                rtl_uString_getStr( pEscapedTmp ),
++                rtl_uString_getLength( pEscapedTmp ) );
+ 
+-        rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
+-                rtl_uString_getLength( pBuffer ),
+-                "|", 1 );
++        rtl_uString_release( pEscapedTmp );
+     }
+ 
+     ustr_debug( "Pass args", pBuffer );
+@@ -288,9 +365,10 @@ send_args( int fd )
+     pOut = ustr_to_str( pBuffer );
+ 
+     nLen = rtl_string_getLength( pOut ) + 1;
+-    bResult = ( write( fd, rtl_string_getStr( pOut ), nLen ) == nLen );
++    bResult = ( write( fd, rtl_string_getStr( pOut ), nLen ) == (ssize_t) nLen );
+ 
+     /* cleanup */
++    rtl_uString_release( pEscapedCwdPath );
+     rtl_uString_release( pBuffer );
+     rtl_uString_release( pTmp );
+     rtl_string_release( pOut );
+@@ -422,7 +500,7 @@ read_percent( int status_fd, int *pPercent )
+ {
+     static char pBuffer[BUFFER_LEN + 1];
+     static char *pNext = pBuffer;
+-    static size_t nRead = 0;
++    static ssize_t nRead = 0;
+ 
+     char *pBegin;
+     char *pIter;
+@@ -681,7 +759,12 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
+     pPipePath = get_pipe_path( pAppPath );
+ 
+     if ( ( fd = connect_pipe( pPipePath ) ) >= 0 )
+-        bSentArgs = send_args( fd );
++    {
++        rtl_uString *pCwdPath = NULL;
++        osl_getProcessWorkingDir( &pCwdPath );
++
++        bSentArgs = send_args( fd, pCwdPath );
++    }
+ #if OSL_DEBUG_LEVEL > 0
+     else
+         ustr_debug( "Failed to connect to pipe", pPipePath );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/valgrind-alloc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/valgrind-alloc.diff
@@ -0,0 +1,250 @@
+Index: sal/rtl/source/alloc.c
+===================================================================
+RCS file: /cvs/porting/sal/rtl/source/alloc.c,v
+retrieving revision 1.14
+diff -u -3 -p -r1.14 alloc.c
+--- sal/rtl/source/alloc.c	17 Dec 2003 17:10:01 -0000	1.14
++++ sal/rtl/source/alloc.c	29 Feb 2004 17:50:41 -0000
+@@ -227,6 +227,39 @@ static sal_uInt32 __rtl_memory_vmpagesiz
+ 
+ /*===========================================================================
+  *
++ * Determine allocation mode (debug/release) by examining environment
++ * variable "OOO_FORCE_SYSALLOC".
++ *
++ *=========================================================================*/
++
++#include <stdlib.h>   /* getenv */
++#include <stdio.h>    /* stderr */
++
++typedef 
++   enum { AMode_CUSTOM, AMode_SYSTEM, AMode_UNSET } 
++   AllocMode;
++
++static AllocMode alloc_mode = AMode_UNSET;
++
++static void determine_alloc_mode ( void )
++{
++   /* This shouldn't happen, but still ... */
++   if (alloc_mode != AMode_UNSET)
++      return;
++
++   if (getenv("OOO_FORCE_SYSALLOC") != NULL) {
++      alloc_mode = AMode_SYSTEM;
++      fprintf(stderr, "OOo: Using system memory allocator.\n");
++      fprintf(stderr, "OOo: This is for debugging only.  To disable,\n");
++      fprintf(stderr, "OOo: unset the environment variable"
++                      " OOO_FORCE_SYSALLOC.\n");
++   } else {
++      alloc_mode = AMode_CUSTOM;
++   }
++}
++
++/*===========================================================================
++ *
+  * rtl_memory (global) internals.
+  *
+  *=========================================================================*/
+@@ -1165,8 +1165,8 @@ static void __rtl_memory_enqueue (memory
+ /*
+  * rtl_reallocateMemory.
+  */
+-#ifndef FORCE_SYSALLOC
+-void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
++static
++void* SAL_CALL rtl_reallocateMemory_CUSTOM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	memory_type * memory;
+ 	if (!(!p || !n))
+@@ -1322,18 +1322,33 @@ void* SAL_CALL rtl_reallocateMemory (voi
+ 	}
+ 	return (p);
+ }
+-#else  /* FORCE_SYSALLOC */
+-void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
++
++static
++void* SAL_CALL rtl_reallocateMemory_SYSTEM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	return realloc(p, (sal_Size)(n));
+ }
+-#endif /* FORCE_SYSALLOC */
++
++void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
++{
++   while (1) {
++      if (alloc_mode == AMode_CUSTOM) {
++         return rtl_reallocateMemory_CUSTOM(p,n);
++      }
++      if (alloc_mode == AMode_SYSTEM) {
++         return rtl_reallocateMemory_SYSTEM(p,n);
++      }
++      determine_alloc_mode();
++   }
++}
++
++
+ 
+ /*
+  * rtl_allocateMemory.
+  */
+-#ifndef FORCE_SYSALLOC
+-void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
++static
++void* SAL_CALL rtl_allocateMemory_CUSTOM (sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	void * p = 0;
+ 	if (n > 0)
+@@ -1355,18 +1355,33 @@ void* SAL_CALL rtl_allocateMemory (sal_u
+ 	}
+ 	return (p);
+ }
+-#else  /* FORCE_SYSALLOC */
+-void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
++
++static
++void* SAL_CALL rtl_allocateMemory_SYSTEM (sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	return malloc((sal_Size)(n));
+ }
+-#endif /* FORCE_SYSALLOC */
++
++void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
++{
++   while (1) {
++      if (alloc_mode == AMode_CUSTOM) {
++         return rtl_allocateMemory_CUSTOM(n);
++      }
++      if (alloc_mode == AMode_SYSTEM) {
++         return rtl_allocateMemory_SYSTEM(n);
++      }
++      determine_alloc_mode();
++   }
++}
++
++
+ 
+ /*
+  * rtl_freeMemory.
+  */
+-#ifndef FORCE_SYSALLOC
+-void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
++static
++void SAL_CALL rtl_freeMemory_CUSTOM (void * p) SAL_THROW_EXTERN_C()
+ {
+ 	if (p)
+ 	{
+@@ -1387,18 +1387,34 @@ void SAL_CALL rtl_freeMemory (void * p) 
+ 		RTL_MEMORY_LEAVE();
+ 	}
+ }
+-#else  /* FORCE_SYSALLOC */
+-void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
++
++static
++void SAL_CALL rtl_freeMemory_SYSTEM (void * p) SAL_THROW_EXTERN_C()
+ {
+ 	free(p);
+ }
+-#endif /* FORCE_SYSALLOC */
++
++void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
++{
++   while (1) {
++      if (alloc_mode == AMode_CUSTOM) {
++         rtl_freeMemory_CUSTOM(p);
++	 return;
++      }
++      if (alloc_mode == AMode_SYSTEM) {
++         rtl_freeMemory_SYSTEM(p);
++	 return;
++      }
++      determine_alloc_mode();
++   }
++}
++
+ 
+ /*
+  * rtl_allocateZeroMemory.
+  */
+-#ifndef FORCE_SYSALLOC
+-void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
++static
++void* SAL_CALL rtl_allocateZeroMemory_CUSTOM (sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	void * p = 0;
+ 	if (n > 0)
+@@ -1421,18 +1421,32 @@ void* SAL_CALL rtl_allocateZeroMemory (s
+ 	}
+ 	return (p);
+ }
+-#else  /* FORCE_SYSALLOC */
+-void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
++
++static
++void* SAL_CALL rtl_allocateZeroMemory_SYSTEM (sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	return calloc((sal_Size)(n), 1);
+ }
+-#endif /* FORCE_SYSALLOC */
++
++void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
++{
++   while (1) {
++      if (alloc_mode == AMode_CUSTOM) {
++         return rtl_allocateZeroMemory_CUSTOM(n);
++      }
++      if (alloc_mode == AMode_SYSTEM) {
++         return rtl_allocateZeroMemory_SYSTEM(n);
++      }
++      determine_alloc_mode();
++   }
++}
++
+ 
+ /*
+  * rtl_freeZeroMemory.
+  */
+-#ifndef FORCE_SYSALLOC
+-void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
++static
++void SAL_CALL rtl_freeZeroMemory_CUSTOM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
+ {
+     (void) n; /* unused */
+ 	if (p)
+@@ -1454,8 +1454,9 @@ void SAL_CALL rtl_freeZeroMemory (void *
+ 		RTL_MEMORY_LEAVE();
+ 	}
+ }
+-#else  /* FORCE_SYSALLOC */
+-void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
++
++static
++void SAL_CALL rtl_freeZeroMemory_SYSTEM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
+ {
+ 	if (p)
+ 	{
+@@ -1463,7 +1463,21 @@ void SAL_CALL rtl_freeZeroMemory (void *
+ 		free(p);
+ 	}
+ }
+-#endif /* FORCE_SYSALLOC */
++
++void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
++{
++   while (1) {
++      if (alloc_mode == AMode_CUSTOM) {
++         rtl_freeZeroMemory_CUSTOM(p,n);
++	 return;
++      }
++      if (alloc_mode == AMode_SYSTEM) {
++         rtl_freeZeroMemory_SYSTEM(p,n);
++	 return;
++      }
++      determine_alloc_mode();
++   }
++}
+ 
+ /*===========================================================================
+  *
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/disable-helpcontent2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/disable-helpcontent2.diff
@@ -0,0 +1,277 @@
+--- scp2/source/base/file_base.scp.old	2006-04-26 22:46:44.000000000 +0200
++++ scp2/source/base/file_base.scp	2006-05-28 04:44:31.423420000 +0200
+@@ -64,29 +64,6 @@
+ 
+ #endif
+ 
+-#ifdef SOLAR_JAVA
+-
+-File gid_File_Help_Sdatabase_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_LANG(sdatabase);
+-    Patchfiles = ("sdatabase.db",
+-                  "sdatabase.ht",
+-                  "sdatabase.jar",
+-                  "sdatabase.key",
+-                  "sdatabase.idx/CONTEXTS",
+-                  "sdatabase.idx/DICTIONARY",
+-                  "sdatabase.idx/DOCS",
+-                  "sdatabase.idx/DOCS.TAB",
+-                  "sdatabase.idx/EDGE",
+-                  "sdatabase.idx/LINKNAMES",
+-                  "sdatabase.idx/OFFSETS",
+-                  "sdatabase.idx/POSITIONS",
+-                  "sdatabase.idx/SCHEMA"); 
+-End
+-
+-#endif
+-
+ File gid_File_Registry_Spool_Oo_Setup_Base_Xcu
+     TXT_FILE_BODY;
+     Styles = (PACKED,PATCH);
+--- scp2/source/calc/file_calc.scp.old	2006-04-26 22:46:56.000000000 +0200
++++ scp2/source/calc/file_calc.scp	2006-05-28 04:44:31.423420000 +0200
+@@ -77,30 +77,6 @@
+     Name = "/registry/spool/org/openoffice/Office/Embedding-calc.xcu";
+ End
+ 
+-#ifdef SOLAR_JAVA
+-
+-File gid_File_Help_Scalc_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_LANG(scalc);
+-    Patchfiles = ("scalc.db",
+-                  "scalc.ht",
+-                  "scalc.jar",
+-                  "scalc.key",
+-                  "scalc.tree",
+-                  "scalc.idx/CONTEXTS",
+-                  "scalc.idx/DICTIONARY",
+-                  "scalc.idx/DOCS",
+-                  "scalc.idx/DOCS.TAB",
+-                  "scalc.idx/EDGE",
+-                  "scalc.idx/LINKNAMES",
+-                  "scalc.idx/OFFSETS",
+-                  "scalc.idx/POSITIONS",
+-                  "scalc.idx/SCHEMA"); 
+-End
+-
+-#endif
+-
+ // new user interface configuration files
+ /*
+ File gid_File_Share_Config_Sofficecfg_Calc_Menubar_Xml
+--- scp2/source/calc/module_calc.scp.old	2005-09-09 03:21:49.000000000 +0200
++++ scp2/source/calc/module_calc.scp	2006-05-28 04:44:31.423420000 +0200
+@@ -52,13 +52,6 @@
+     gid_File_Lib_Bf_Sc,gid_File_Res_Bf_Sc,gid_File_Oo_Office_Ui_Calcwindowstate_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Filters_Xcu, gid_File_Tmp_Userinstall_Calc_Inf);
+ End
+ 
+-Module gid_Module_Prg_Calc_Help
+-    MOD_NAME_DESC ( MODULE_PRG_CALC_HELP );
+-    ParentID = gid_Module_Prg_Calc;
+-    Default = YES;
+-    Files = (gid_File_Help_Scalc_Zip);
+-End
+-
+ Module gid_Module_Prg_Calc_Addins
+     MOD_NAME_DESC ( MODULE_OPTIONAL_ADDINS );
+     ParentID = gid_Module_Prg_Calc;
+--- scp2/source/draw/file_draw.scp.old	2006-04-26 22:47:09.000000000 +0200
++++ scp2/source/draw/file_draw.scp	2006-05-28 04:44:31.433420000 +0200
+@@ -42,29 +42,6 @@
+     Name = "/registry/spool/org/openoffice/Office/Embedding-draw.xcu";
+ End
+ 
+-#ifdef SOLAR_JAVA
+-
+-File gid_File_Help_Sdraw_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_LANG(sdraw);
+-    Patchfiles = ("sdraw.db",
+-                  "sdraw.ht",
+-                  "sdraw.jar",
+-                  "sdraw.key",
+-                  "sdraw.idx/CONTEXTS",
+-                  "sdraw.idx/DICTIONARY",
+-                  "sdraw.idx/DOCS",
+-                  "sdraw.idx/DOCS.TAB",
+-                  "sdraw.idx/EDGE",
+-                  "sdraw.idx/LINKNAMES",
+-                  "sdraw.idx/OFFSETS",
+-                  "sdraw.idx/POSITIONS",
+-                  "sdraw.idx/SCHEMA"); 
+-End
+-
+-#endif
+-
+ File gid_File_Exe_Sdraw
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/draw/module_draw.scp.old	2005-09-09 03:25:47.000000000 +0200
++++ scp2/source/draw/module_draw.scp	2006-05-28 04:44:31.433420000 +0200
+@@ -51,9 +51,3 @@
+     gid_File_Registry_Spool_Oo_TypeDetection_Draw_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Draw_Filters_Xcu, gid_File_Tmp_Userinstall_Draw_Inf);
+ End
+ 
+-Module gid_Module_Prg_Draw_Help
+-    MOD_NAME_DESC ( MODULE_PRG_DRAW_HELP );
+-    ParentID = gid_Module_Prg_Draw;
+-    Default = YES;
+-    Files = (gid_File_Help_Sdraw_Zip);
+-End
+--- scp2/source/impress/file_impress.scp.old	2006-04-26 22:47:22.000000000 +0200
++++ scp2/source/impress/file_impress.scp	2006-05-28 04:44:31.433420000 +0200
+@@ -52,31 +52,6 @@
+     Name = "/registry/spool/org/openoffice/Office/Embedding-impress.xcu";
+ End
+ 
+-#ifdef SOLAR_JAVA
+-
+-File gid_File_Help_Simpress_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    TXT_FILE_BODY;
+-    Styles = (ARCHIVE,DONT_OVERWRITE,PATCH);
+-    EXTRA_ALL_LANG(simpress);
+-    Patchfiles = ("simpress.db",
+-                  "simpress.ht",
+-                  "simpress.jar",
+-                  "simpress.key",
+-                  "simpress.tree",
+-                  "simpress.idx/CONTEXTS",
+-                  "simpress.idx/DICTIONARY",
+-                  "simpress.idx/DOCS",
+-                  "simpress.idx/DOCS.TAB",
+-                  "simpress.idx/EDGE",
+-                  "simpress.idx/LINKNAMES",
+-                  "simpress.idx/OFFSETS",
+-                  "simpress.idx/POSITIONS",
+-                  "simpress.idx/SCHEMA"); 
+-End
+-
+-#endif
+-
+ File gid_File_Exe_Simpress
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/impress/module_impress.scp.old	2005-09-09 03:30:13.000000000 +0200
++++ scp2/source/impress/module_impress.scp	2006-05-28 04:44:31.433420000 +0200
+@@ -53,9 +53,3 @@
+     gid_File_Registry_Spool_Oo_TypeDetection_Impress_Filters_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Impress_Types_Xcu, gid_File_Tmp_Userinstall_Impress_Inf);
+ End
+ 
+-Module gid_Module_Prg_Impress_Help
+-    MOD_NAME_DESC ( MODULE_PRG_IMPRESS_HELP );
+-    ParentID = gid_Module_Prg_Impress;
+-    Default = YES;
+-    Files = (gid_File_Help_Simpress_Zip);
+-End
+--- scp2/source/math/module_math.scp.old	2005-09-09 03:35:19.000000000 +0200
++++ scp2/source/math/module_math.scp	2006-05-28 04:44:31.433420000 +0200
+@@ -53,9 +53,3 @@
+     gid_File_Registry_Spool_Oo_TypeDetection_Math_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Math_Filters_Xcu, gid_File_Tmp_Userinstall_Math_Inf);
+ End
+ 
+-Module gid_Module_Prg_Math_Help
+-    MOD_NAME_DESC ( MODULE_PRG_MATH_HELP );
+-    ParentID = gid_Module_Prg_Math;
+-    Default = YES;
+-    Files = (gid_File_Help_Smath_Zip);
+-End
+--- scp2/source/ooo/file_ooo.scp.old	2006-05-28 04:42:47.713420000 +0200
++++ scp2/source/ooo/file_ooo.scp	2006-05-28 04:44:40.863420000 +0200
+@@ -587,54 +587,6 @@
+ 
+ STD_RES_FILE( gid_File_Res_Eme, eme )
+ 
+-#ifdef SOLAR_JAVA
+-
+-File gid_File_Help_Common_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_LANG(shared);
+-    Patchfiles = ("shared.db",
+-                  "shared.ht",
+-                  "shared.jar",
+-                  "shared.key",
+-                  "shared.tree",
+-                  "err.html");
+-End
+-
+-File gid_File_Help_Help_Zip
+-    Dir = gid_Dir_Help;
+-    ARCHIVE_TXT_FILE_BODY;
+-    Name = "helpxsl.zip";
+-End
+-
+-File gid_File_Help_Sbasic_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_LANG(sbasic);
+-    Patchfiles = ("sbasic.db",
+-                  "sbasic.ht",
+-                  "sbasic.jar",
+-                  "sbasic.key",
+-                  "sbasic.tree",
+-                  "sbasic.idx/CONTEXTS",
+-                  "sbasic.idx/DICTIONARY",
+-                  "sbasic.idx/DOCS",
+-                  "sbasic.idx/DOCS.TAB",
+-                  "sbasic.idx/EDGE",
+-                  "sbasic.idx/LINKNAMES",
+-                  "sbasic.idx/OFFSETS",
+-                  "sbasic.idx/POSITIONS",
+-                  "sbasic.idx/SCHEMA");
+-End
+-
+-File gid_File_Help_Schart_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_LANG(schart);
+-End
+-
+-#endif
+-
+ File gid_File_Html_Thirdpartylicensereadme
+     Name = "THIRDPARTYLICENSEREADME.html";
+ #ifndef MACOSX
+--- scp2/source/testtool/file_testtool.scp.old	2006-05-05 10:12:23.000000000 +0200
++++ scp2/source/testtool/file_testtool.scp	2006-05-28 04:47:58.093420000 +0200
+@@ -49,13 +49,6 @@
+   #endif
+ End
+ 
+-File gid_File_Hid_Testtool
+-    BIN_FILE_BODY;
+-    Dir = gid_Dir_Program;
+-    Styles = (PACKED);
+-    Name = "hid.lst";
+-End
+-
+ File gid_File_Config_Testtool
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/writer/module_writer.scp.old	2006-05-28 04:42:49.863420000 +0200
++++ scp2/source/writer/module_writer.scp	2006-05-28 04:44:44.463420000 +0200
+@@ -76,10 +76,3 @@
+     gid_File_Tmp_Userinstall_Wrt_Inf);
+ End
+ 
+-Module gid_Module_Prg_Wrt_Help
+-    MOD_NAME_DESC ( MODULE_PRG_WRT_HELP );
+-    ParentID = gid_Module_Prg_Wrt;
+-    Default = YES;
+-    Minimal = YES;
+-    Files = (gid_File_Help_Swriter_Zip);
+-End
+--- postprocess/prj/build.lst.old	2006-05-18 10:23:30.000000000 +0200
++++ postprocess/prj/build.lst	2006-05-28 04:50:25.523420000 +0200
+@@ -1,4 +1,4 @@
+-po	postprocess	::	accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd ODK:sdk_oo setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
++po	postprocess	::	accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker xmlhelp hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd ODK:sdk_oo setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
+ po	postprocess			    	usr1	-	all	po_mkout NULL
+ po	postprocess\checkxml		nmake	-	all	po_checkxml NULL
+ po	postprocess\checkdeliver	nmake	-	all	po_checkdlv NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-dont-extern-sRTF-sHTML.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-dont-extern-sRTF-sHTML.diff
@@ -0,0 +1,345 @@
+diff --git sw/inc/SwAppletImpl.hxx sw/inc/SwAppletImpl.hxx
+index bb321b4..4b9417e 100644
+--- sw/inc/SwAppletImpl.hxx
++++ sw/inc/SwAppletImpl.hxx
+@@ -71,12 +71,12 @@
+ 
+ class SfxItemSet;
+ 
+-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_archive, "ARCHIVE" );
++#define sHTML_O_archive "ARCHIVE"
+ 
+-extern sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_Hidden, "HIDDEN" );
+-extern sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_Hidden_False, "FALSE" );
+-extern sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_Archives, "ARCHIVES" );
+-extern sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_Object, "OBJECT" );
++#define sHTML_O_Hidden "HIDDEN"
++#define sHTML_O_Hidden_False "FALSE"
++#define sHTML_O_Archives "ARCHIVES"
++#define sHTML_O_Object "OBJECT"
+ 
+ class SwApplet_Impl
+ {
+diff --git sw/source/filter/html/SwAppletImpl.cxx sw/source/filter/html/SwAppletImpl.cxx
+index dbc0161..7126e6d 100644
+--- sw/source/filter/html/SwAppletImpl.cxx
++++ sw/source/filter/html/SwAppletImpl.cxx
+@@ -55,15 +55,6 @@
+ 
+ using namespace com::sun::star;
+ 
+-/* Some MIB magic...*/
+-
+-//sal_Char SVT_DLLPUBLIC const SVTOOLS_CONSTASCII_DEF( sHTML_O_archive, "ARCHIVE" );
+-
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_Hidden, "HIDDEN" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_Hidden_False, "FALSE" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_Archives, "ARCHIVES" );
+-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_Object, "OBJECT" );
+-
+ USHORT SwApplet_Impl::GetOptionType( const String& rName, BOOL bApplet )
+ {
+ 	USHORT nType = bApplet ? SWHTML_OPTTYPE_PARAM : SWHTML_OPTTYPE_TAG;
+diff --git sw/source/filter/html/htmlfld.hxx sw/source/filter/html/htmlfld.hxx
+index 324a645..d56365f 100644
+--- sw/source/filter/html/htmlfld.hxx
++++ sw/source/filter/html/htmlfld.hxx
+@@ -40,99 +40,99 @@
+ #include <svtools/htmlkywd.hxx>
+ #endif
+ 
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_author, "AUTHOR" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_sender, "SENDER" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_date, "DATE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_time, "TIME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_datetime, "DATETIME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_page, "PAGE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_docinfo, "DOCINFO" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_docstat, "DOCSTAT" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FT_filename, "FILENAME" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_company, "COMPANY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_firstname, "FIRSTNAME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_name, "NAME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_shortcut, "SHORTCUT" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_street, "STREET" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_country, "COUNTRY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_zip, "ZIP" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_city, "CITY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_title, "TITLE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_position, "POSITION" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_pphone, "PPHONE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_cphone, "CPHONE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_fax, "FAX" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_email, "EMAIL" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_state, "STATE" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_random, "RANDOM" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_next, "NEXT" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_prev, "PREV" );
+-
+-//sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_title, "TITLE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_theme, "THEME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_keys, "KEYS" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_comment, "COMMENT" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_info1, "INFO1" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_info2, "INFO2" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_info3, "INFO3" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_info4, "INFO4" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_create, "CREATE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_change, "CHANGE" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_page, "PAGE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_para, "PARAGRAPH" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_word, "WORD" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_char, "CHAR" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_tbl, "TABLE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_grf, "GRAPHIC" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FS_ole, "OLE" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_name, "NAME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_shortcut, "SHORTCUT" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ssys, "SSYS" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_lsys, "LSYS" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dmy, "DMY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dmyy, "DMYY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dmmy, "DMMY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dmmyy, "DMMYY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dmmmy, "DMMMY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dmmmyy, "DMMMYY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ddmmy, "DDMMY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ddmmmy, "DDMMMY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ddmmmyy, "DDMMMYY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dddmmmy, "DDDMMMY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_dddmmmyy, "DDDMMMYY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_my, "MY" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_md, "MD" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ymd, "YMD" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_yymd, "YYMD" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_sys, "SYS" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ssmm24, "SSMM24" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ssmm12, "SSMM12" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_uletter, "ULETTER" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_lletter, "LLETTER" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_uroman, "UROMAN" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_lroman, "LROMAN" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_arabic, "ARABIC" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_none, "NONE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_char, "CHAR" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_page, "PAGE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_ulettern, "ULETTERN" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_llettern, "LLETTERN" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_author, "AUTHOR" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_time, "TIME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_date, "DATE" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_all, "ALL" );
+-
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_pathname, "PATHNAME" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_path, "PATH" );
+-extern sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DECL( sHTML_FF_name_noext, "NAME-NOEXT" );
++#define sHTML_FT_author "AUTHOR"
++#define sHTML_FT_sender "SENDER"
++#define sHTML_FT_date "DATE"
++#define sHTML_FT_time "TIME"
++#define sHTML_FT_datetime "DATETIME"
++#define sHTML_FT_page "PAGE"
++#define sHTML_FT_docinfo "DOCINFO"
++#define sHTML_FT_docstat "DOCSTAT"
++#define sHTML_FT_filename "FILENAME"
++
++#define sHTML_FS_company "COMPANY"
++#define sHTML_FS_firstname "FIRSTNAME"
++#define sHTML_FS_name "NAME"
++#define sHTML_FS_shortcut "SHORTCUT"
++#define sHTML_FS_street "STREET"
++#define sHTML_FS_country "COUNTRY"
++#define sHTML_FS_zip "ZIP"
++#define sHTML_FS_city "CITY"
++#define sHTML_FS_title "TITLE"
++#define sHTML_FS_position "POSITION"
++#define sHTML_FS_pphone "PPHONE"
++#define sHTML_FS_cphone "CPHONE"
++#define sHTML_FS_fax "FAX"
++#define sHTML_FS_email "EMAIL"
++#define sHTML_FS_state "STATE"
++
++#define sHTML_FS_random "RANDOM"
++#define sHTML_FS_next "NEXT"
++#define sHTML_FS_prev "PREV"
++
++//#define sHTML_FS_title "TITLE"
++#define sHTML_FS_theme "THEME"
++#define sHTML_FS_keys "KEYS"
++#define sHTML_FS_comment "COMMENT"
++#define sHTML_FS_info1 "INFO1"
++#define sHTML_FS_info2 "INFO2"
++#define sHTML_FS_info3 "INFO3"
++#define sHTML_FS_info4 "INFO4"
++#define sHTML_FS_create "CREATE"
++#define sHTML_FS_change "CHANGE"
++
++#define sHTML_FS_page "PAGE"
++#define sHTML_FS_para "PARAGRAPH"
++#define sHTML_FS_word "WORD"
++#define sHTML_FS_char "CHAR"
++#define sHTML_FS_tbl "TABLE"
++#define sHTML_FS_grf "GRAPHIC"
++#define sHTML_FS_ole "OLE"
++
++#define sHTML_FF_name "NAME"
++#define sHTML_FF_shortcut "SHORTCUT"
++
++#define sHTML_FF_ssys "SSYS"
++#define sHTML_FF_lsys "LSYS"
++#define sHTML_FF_dmy "DMY"
++#define sHTML_FF_dmyy "DMYY"
++#define sHTML_FF_dmmy "DMMY"
++#define sHTML_FF_dmmyy "DMMYY"
++#define sHTML_FF_dmmmy "DMMMY"
++#define sHTML_FF_dmmmyy "DMMMYY"
++#define sHTML_FF_ddmmy "DDMMY"
++#define sHTML_FF_ddmmmy "DDMMMY"
++#define sHTML_FF_ddmmmyy "DDMMMYY"
++#define sHTML_FF_dddmmmy "DDDMMMY"
++#define sHTML_FF_dddmmmyy "DDDMMMYY"
++#define sHTML_FF_my "MY"
++#define sHTML_FF_md "MD"
++#define sHTML_FF_ymd "YMD"
++#define sHTML_FF_yymd "YYMD"
++
++#define sHTML_FF_sys "SYS"
++#define sHTML_FF_ssmm24 "SSMM24"
++#define sHTML_FF_ssmm12 "SSMM12"
++
++#define sHTML_FF_uletter "ULETTER"
++#define sHTML_FF_lletter "LLETTER"
++#define sHTML_FF_uroman "UROMAN"
++#define sHTML_FF_lroman "LROMAN"
++#define sHTML_FF_arabic "ARABIC"
++#define sHTML_FF_none "NONE"
++#define sHTML_FF_char "CHAR"
++#define sHTML_FF_page "PAGE"
++#define sHTML_FF_ulettern "ULETTERN"
++#define sHTML_FF_llettern "LLETTERN"
++
++#define sHTML_FF_author "AUTHOR"
++#define sHTML_FF_time "TIME"
++#define sHTML_FF_date "DATE"
++#define sHTML_FF_all "ALL"
++
++#define sHTML_FF_pathname "PATHNAME"
++#define sHTML_FF_path "PATH"
++#define sHTML_FF_name_noext "NAME-NOEXT"
+ 
+ 
+ #endif
+diff --git sw/source/filter/html/htmlfldw.cxx sw/source/filter/html/htmlfldw.cxx
+index db43b83..2df1790 100644
+--- sw/source/filter/html/htmlfldw.cxx
++++ sw/source/filter/html/htmlfldw.cxx
+@@ -76,101 +76,6 @@ using namespace nsSwDocInfoSubType;
+ 
+ //-----------------------------------------------------------------------
+ 
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_author, "AUTHOR" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_sender, "SENDER" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_date, "DATE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_time, "TIME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_datetime, "DATETIME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_page, "PAGE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_docinfo, "DOCINFO" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_docstat, "DOCSTAT" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FT_filename, "FILENAME" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_company, "COMPANY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_firstname, "FIRSTNAME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_name, "NAME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_shortcut, "SHORTCUT" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_street, "STREET" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_country, "COUNTRY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_zip, "ZIP" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_city, "CITY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_title, "TITLE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_position, "POSITION" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_pphone, "PPHONE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_cphone, "CPHONE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_fax, "FAX" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_email, "EMAIL" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_state, "STATE" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_random, "RANDOM" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_next, "NEXT" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_prev, "PREV" );
+-
+-//sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_title, "TITLE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_theme, "THEME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_keys, "KEYS" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_comment, "COMMENT" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_info1, "INFO1" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_info2, "INFO2" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_info3, "INFO3" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_info4, "INFO4" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_create, "CREATE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_change, "CHANGE" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_page, "PAGE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_para, "PARAGRAPH" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_word, "WORD" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_char, "CHAR" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_tbl, "TABLE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_grf, "GRAPHIC" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FS_ole, "OLE" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_name, "NAME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_shortcut, "SHORTCUT" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ssys, "SSYS" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_lsys, "LSYS" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dmy, "DMY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dmyy, "DMYY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dmmy, "DMMY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dmmyy, "DMMYY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dmmmy, "DMMMY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dmmmyy, "DMMMYY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ddmmy, "DDMMY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ddmmmy, "DDMMMY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ddmmmyy, "DDMMMYY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dddmmmy, "DDDMMMY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_dddmmmyy, "DDDMMMYY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_my, "MY" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_md, "MD" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ymd, "YMD" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_yymd, "YYMD" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_sys, "SYS" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ssmm24, "SSMM24" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ssmm12, "SSMM12" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_uletter, "ULETTER" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_lletter, "LLETTER" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_uroman, "UROMAN" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_lroman, "LROMAN" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_arabic, "ARABIC" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_none, "NONE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_char, "CHAR" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_page, "PAGE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_ulettern, "ULETTERN" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_llettern, "LLETTERN" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_author, "AUTHOR" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_time, "TIME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_date, "DATE" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_all, "ALL" );
+-
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_pathname, "PATHNAME" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_path, "PATH" );
+-sal_Char __FAR_DATA SVTOOLS_CONSTASCII_DEF( sHTML_FF_name_noext, "NAME-NOEXT" );
+-
+-
+ const sal_Char *SwHTMLWriter::GetNumFormat( USHORT nFmt )
+ {
+ 	const sal_Char *pFmtStr = 0;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sc.diff
@@ -0,0 +1,14 @@
+--- sc/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sc/prj/tests.lst	2007-09-07 19:05:50.000000000 +0200
+@@ -0,0 +1,11 @@
++sc   sc\qa\complex\calcPreview                          nmake - all sc_qa_complex_calcPreview NULL
++sc   sc\qa\complex\cellRanges                           nmake - all sc_qa_complex_cellRanges NULL
++sc   sc\qa\complex\dataPilot\interfaceTests\beans       nmake - all sc_qa_complex_dataPilot_interfaceTests_beans NULL
++sc   sc\qa\complex\dataPilot\interfaceTests\container   nmake - all sc_qa_complex_dataPilot_interfaceTests_container NULL
++sc   sc\qa\complex\dataPilot\interfaceTests\sheet       nmake - all sc_qa_complex_dataPilot_interfaceTests_sheet NULL
++sc   sc\qa\complex\dataPilot                            nmake - all sc_qa_complex_dataPilot sc_qa_complex_dataPilot_interfaceTests_beans sc_qa_complex_dataPilot_interfaceTests_container sc_qa_complex_dataPilot_interfaceTests_sheet NULL
++sc   sc\qa\complex\sc                                   nmake - all sc_qa_complex_sc NULL
++#does not build: sc   sc\qa\unoapi                                       nmake - all sc_qa_unoapi NULL
++
++# older tests:
++#does not build: sc   sc\workben                                         nmake - all sc_workben sc_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-transitions-officecfg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-transitions-officecfg.diff
@@ -0,0 +1,91 @@
+officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu
+--- officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu	2007-12-05 15:02:57.000000000 +0100
++++ officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu	2007-12-05 16:29:43.000000000 +0100
+@@ -1912,6 +1912,76 @@
+					
+				</prop>
+			</node>
++      <node oor:name="tile-flip" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Flipping tiles</value>
++        </prop>
++      </node>
++      <node oor:name="outside-cube" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Outside turning cube</value>
++        </prop>
++      </node>
++      <node oor:name="revolving-circles" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Revolving circles</value>
++        </prop>
++      </node>
++      <node oor:name="turning-helix" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Turning helix</value>
++        </prop>
++      </node>
++      <node oor:name="inside-cube" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Inside turning cube</value>
++        </prop>
++      </node>
++      <node oor:name="fall" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Fall</value>
++        </prop>
++      </node>
++      <node oor:name="turn-around" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Turn around</value>
++        </prop>
++      </node>
++      <node oor:name="iris" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Iris</value>
++        </prop>
++      </node>
++      <node oor:name="turn-down" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Turn down</value>
++        </prop>
++      </node>
++      <node oor:name="rochade" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Rochade</value>
++        </prop>
++      </node>
++      <node oor:name="venetian3dv" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Venetian Blinds 3D Vertical</value>
++        </prop>
++      </node>
++      <node oor:name="venetian3dh" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Venetian Blinds 3D Horizontal</value>
++        </prop>
++      </node>
++      <node oor:name="static" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Static</value>
++        </prop>
++      </node>
++      <node oor:name="finedissolve" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Fine Dissolve</value>
++        </prop>
++      </node>
+ 		</node>
+ 	</node>	
+ 	<node oor:name="Presets">
+--- officecfg/registry/schema/org/openoffice/Office/Impress.xcs	18 Jan 2008 12:59:24 -0000	1.29.126.1
++++ officecfg/registry/schema/org/openoffice/Office/Impress.xcs	5 Feb 2008 01:00:49 -0000
+@@ -456,7 +456,7 @@
+ 					is allowed. </desc>
+ 					<label>List of files containing transition effects</label>
+ 				</info>
+-                <value oor:separator=";">vnd.sun.star.expand:$ORIGIN/../share/config/soffice.cfg/simpress/transitions.xml</value>
++                <value oor:separator=";">vnd.sun.star.expand:$ORIGIN/../share/config/soffice.cfg/simpress/transitions.xml;vnd.sun.star.expand:$ORIGIN/../share/config/soffice.cfg/simpress/transitions-ogl.xml</value>
+ 			</prop>
+ 			<prop oor:name="EffectFiles" oor:type="oor:string-list">
+ 				<!-- OldPath: -->
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/odf-converter-ignore-writerfilter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/odf-converter-ignore-writerfilter.diff
@@ -0,0 +1,203 @@
+diff --git oox/source/core/filterdetect.cxx oox/source/core/filterdetect.cxx
+index e090c61..b5c97ce 100644
+--- oox/source/core/filterdetect.cxx
++++ oox/source/core/filterdetect.cxx
+@@ -41,7 +41,10 @@
+ #include <com/sun/star/xml/sax/XFastDocumentHandler.hpp>
+ #include <com/sun/star/xml/sax/XFastContextHandler.hpp>
+ #include <com/sun/star/xml/sax/XFastParser.hpp>
++#include <com/sun/star/deployment/thePackageManagerFactory.hpp>
+ 
++#include <ucbhelper/commandenvironment.hxx>
++
+ #include <comphelper/processfactory.hxx>
+ #include <comphelper/mediadescriptor.hxx>
+ #include <comphelper/storagehelper.hxx>
+@@ -48,6 +48,11 @@
+ #include <cppuhelper/implbase1.hxx>
+ #include <cppuhelper/implbase2.hxx>
+ 
++#include <unotools/bootstrap.hxx>
++#include <osl/file.hxx>
++
++#include <rtl/ustring.hxx>
++
+ #include "oox/helper/attributelist.hxx"
+ #include "oox/helper/helper.hxx"
+ #include "oox/core/fasttokenhandler.hxx"
+@@ -291,6 +295,7 @@
+ 
+ private:
+     Reference< XMultiServiceFactory > mxFactory;
++	sal_Bool checkAgainstOdfConverterPackage( void );
+ };
+ 
+ // ----------------------------------------------------------------------------
+@@ -325,6 +328,22 @@ FilterDetect::~FilterDetect()
+ 
+ OUString SAL_CALL FilterDetect::detect( Sequence< PropertyValue >& lDescriptor ) throw( RuntimeException )
+ {
++    // hack for odf-converter - we ignore the built-in oox import filter if
++    // OdfConverter is present
++    rtl::OUString aPath;
++    ::utl::Bootstrap::PathStatus aBaseLocateResult = ::utl::Bootstrap::locateBaseInstallation( aPath );
++    if ( aBaseLocateResult == ::utl::Bootstrap::PATH_EXISTS )
++    {
++        aPath += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/program/OdfConverter" ) );
++
++        osl::DirectoryItem aDirItem;
++        if ( osl::DirectoryItem::get( aPath, aDirItem ) == osl::FileBase::E_None )
++            return rtl::OUString();
++    }
++
++	if ( checkAgainstOdfConverterPackage() )
++		return rtl::OUString();
++
+     OUString aFilter;
+ 
+     Reference< XFastDocumentHandler > xHandler( new FilterDetectDocHandler(aFilter) );
+@@ -414,6 +426,47 @@
+     return FilterDetect_getSupportedServiceNames();
+ }
+ 
++sal_Bool FilterDetect::checkAgainstOdfConverterPackage( void)
++{
++	Reference< XPropertySet > xProps(mxFactory, UNO_QUERY);
++	Reference< XComponentContext > xContext(xProps->getPropertyValue(rtl::OUString::createFromAscii("DefaultContext")), UNO_QUERY);
++
++	Reference< ::com::sun::star::deployment::XPackageManager > xUserContext(
++		::com::sun::star::deployment::thePackageManagerFactory::get (xContext)->getPackageManager( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("user") ) ) );
++	Reference< ::com::sun::star::deployment::XPackageManager > xSharedContext(
++		::com::sun::star::deployment::thePackageManagerFactory::get (xContext)->getPackageManager( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("shared") ) ) );
++
++    Reference< ::com::sun::star::task::XInteractionHandler > xInteractionHandler = Reference< ::com::sun::star::task::XInteractionHandler > (
++            mxFactory->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uui.InteractionHandler") ) ), UNO_QUERY );
++    ::ucbhelper::CommandEnvironment* pCommandEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, Reference< ::com::sun::star::ucb::XProgressHandler >() );
++
++    Reference< ::com::sun::star::ucb::XCommandEnvironment > xCmdEnv( static_cast< ::com::sun::star::ucb::XCommandEnvironment* >( pCommandEnv ), UNO_QUERY );
++
++	const Sequence< Reference< ::com::sun::star::deployment::XPackage > > userPackages(
++        xUserContext->getDeployedPackages( NULL, xCmdEnv ) );
++	const Sequence< Reference< ::com::sun::star::deployment::XPackage > > sharedPackages(
++        xSharedContext->getDeployedPackages( NULL, xCmdEnv ) );
++
++	const Sequence< Reference< ::com::sun::star::deployment::XPackage > > pkgsArray[2] = {
++		userPackages,
++		sharedPackages
++	};
++
++	for ( int i = 0; i < 2; i++ ) {
++		const Sequence< Reference< ::com::sun::star::deployment::XPackage > > pkgs = pkgsArray[i];
++
++		for ( int j = 0; j < pkgs.getLength(); j++ ) {
++			OUString fname = pkgs[j]->getName();
++			if ( fname.matchIgnoreAsciiCase( rtl::OUString::createFromAscii( "odf-converter-" ) ) ) {
++				printf( "Found match for odf-converter!\n");
++				fflush( stdout );
++				return sal_True;
++			}
++		}
++	}
++	return sal_False;
++}
++
+ // ============================================================================
+ 
+ } // namespace core
+diff --git oox/util/makefile.mk oox/util/makefile.mk
+index 69713a6..3c69e95 100644
+--- oox/util/makefile.mk
++++ oox/util/makefile.mk
+@@ -74,6 +74,8 @@ SHL1STDLIBS= \
+ 		$(RTLLIB)		\
+ 		$(SALLIB)		\
+ 		$(BASEGFXLIB)	\
++		$(UNOTOOLSLIB)	\
++		$(UCBHELPERLIB) \
+ 		$(SAXLIB)
+ 
+ SHL1DEF=    $(MISC)$/$(SHL1TARGET).def
+diff --git writerfilter/source/filter/WriterFilterDetection.cxx writerfilter/source/filter/WriterFilterDetection.cxx
+index e9030ac..9f910ae 100644
+--- writerfilter/source/filter/WriterFilterDetection.cxx
++++ writerfilter/source/filter/WriterFilterDetection.cxx
+@@ -58,6 +58,21 @@
+ #ifndef _UNOTOOLS_STREAMHELPER_HXX_
+ #include <unotools/ucbstreamhelper.hxx>
+ #endif
++
++#include <com/sun/star/beans/XPropertySet.hpp>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#include <com/sun/star/deployment/thePackageManagerFactory.hpp>
++
++#include <com/sun/star/uno/Sequence.hxx>
++
++#include <ucbhelper/commandenvironment.hxx>
++
++#include <comphelper/processfactory.hxx>
++	
++#include <unotools/bootstrap.hxx>
++
++#include <osl/file.hxx>
++
+ using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -91,6 +95,57 @@ OUString WriterFilterDetection_getImplementationName () throw (uno::RuntimeExcep
+ OUString WriterFilterDetection::detect( uno::Sequence< beans::PropertyValue >& rDescriptor )
+    throw( uno::RuntimeException )
+ {
++    // hack for odf-converter - we ignore the built-in oox import filter if
++    // OdfConverter is present
++    rtl::OUString aPath;
++    ::utl::Bootstrap::PathStatus aBaseLocateResult = ::utl::Bootstrap::locateBaseInstallation( aPath );
++    if ( aBaseLocateResult == ::utl::Bootstrap::PATH_EXISTS )
++    {
++        aPath += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/program/OdfConverter" ) );
++
++        osl::DirectoryItem aDirItem;
++        if ( osl::DirectoryItem::get( aPath, aDirItem ) == osl::FileBase::E_None )
++            return rtl::OUString();
++    }
++
++	uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> xMS(::comphelper::getProcessServiceFactory(), uno::UNO_QUERY);
++	uno::Reference< beans::XPropertySet > xProps(xMS, uno::UNO_QUERY);
++	uno::Reference< uno::XComponentContext > xContext(xProps->getPropertyValue(rtl::OUString::createFromAscii("DefaultContext")), uno::UNO_QUERY);
++
++	uno::Reference< deployment::XPackageManager > xUserContext(
++		deployment::thePackageManagerFactory::get (xContext)->getPackageManager( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("user") ) ) );
++	uno::Reference< ::com::sun::star::deployment::XPackageManager > xSharedContext(
++		deployment::thePackageManagerFactory::get (xContext)->getPackageManager( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("shared") ) ) );
++
++    uno::Reference< ::com::sun::star::task::XInteractionHandler > xInteractionHandler = uno::Reference< task::XInteractionHandler > (
++            xMS->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uui.InteractionHandler") ) ), uno::UNO_QUERY );
++    ::ucbhelper::CommandEnvironment* pCommandEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, uno::Reference< ucb::XProgressHandler >() );
++
++    uno::Reference< ucb::XCommandEnvironment > xCmdEnv( static_cast< ::com::sun::star::ucb::XCommandEnvironment* >( pCommandEnv ), uno::UNO_QUERY );
++
++	const uno::Sequence< uno::Reference< deployment::XPackage > > userPackages(
++        xUserContext->getDeployedPackages( NULL, xCmdEnv ) );
++	const uno::Sequence< uno::Reference< deployment::XPackage > > sharedPackages(
++        xSharedContext->getDeployedPackages( NULL, xCmdEnv ) );
++
++	const uno::Sequence< uno::Reference< deployment::XPackage > > pkgsArray[2] = {
++		userPackages,
++		sharedPackages
++	};
++
++	for ( int i = 0; i < 2; i++ ) {
++		const uno::Sequence< uno::Reference< deployment::XPackage > > pkgs = pkgsArray[i];
++
++		for ( int j = 0; j < pkgs.getLength(); j++ ) {
++			OUString fname = pkgs[j]->getName();
++			if ( fname.matchIgnoreAsciiCase( rtl::OUString::createFromAscii( "odf-converter-" ) ) ) {
++				printf( "Found match for odf-converter!\n");
++				fflush( stdout );
++				return rtl::OUString();
++			}
++		}
++	}
++
+     OUString sTypeName;
+     bool bWord = false;
+     sal_Int32 nPropertyCount = rDescriptor.getLength();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cjk-character-units-ui.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cjk-character-units-ui.diff
@@ -0,0 +1,481 @@
+diff -uNr officecfg/registry/schema/org/openoffice/Office/Writer.xcs officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+--- officecfg/registry/schema/org/openoffice/Office/Writer.xcs	2007-12-16 23:19:55.000000000 +0800
++++ officecfg/registry/schema/org/openoffice/Office/Writer.xcs	2007-12-17 01:39:09.000000000 +0800
+@@ -1595,7 +1595,19 @@
+ 						<label>Use squared paper mode</label>
+ 					</info>
+ 					<value>false</value>
+-				</prop>	
++				</prop>
++				<!-- added for apply char unit 2006-12-1 -->
++				<prop oor:name="ApplyCharUnit" oor:type="xs:boolean">
++					<!-- OldPath: Writer/Layout -->
++					<!-- OldLocation: Soffice.cfg -->
++					<!-- UIHints: Tools - Options - Text document - Layout - [Section] Apply char unit -->
++					<info>
++						<author>OS</author>
++						<desc>apply char unit to calculate the paragraph's indent</desc>
++						<label>apply char unit</label>
++					</info>
++					<value>true</value>
++				</prop>
+ 			</group>
+ 			<group oor:name="Zoom">
+ 				<info>
+diff -uNr rsc/inc/vclrsc.hxx rsc/inc/vclrsc.hxx
+--- rsc/inc/vclrsc.hxx	2007-12-16 23:21:17.000000000 +0800
++++ rsc/inc/vclrsc.hxx	2007-12-17 01:39:36.000000000 +0800
+@@ -185,7 +185,7 @@
+ // from vcl/inc/fldunit.hxx
+ enum FieldUnit { FUNIT_NONE, FUNIT_MM, FUNIT_CM, FUNIT_M, FUNIT_KM,
+ 				 FUNIT_TWIP, FUNIT_POINT, FUNIT_PICA,
+-				 FUNIT_INCH, FUNIT_FOOT, FUNIT_MILE, FUNIT_CUSTOM,
++				 FUNIT_INCH, FUNIT_FOOT, FUNIT_MILE, FUNIT_CHAR, FUNIT_LINE, FUNIT_CUSTOM,
+ 				 FUNIT_PERCENT, FUNIT_100TH_MM };
+ 
+ 
+diff -uNr rsc/source/parser/rscibas.cxx rsc/source/parser/rscibas.cxx
+--- rsc/source/parser/rscibas.cxx	2007-12-16 23:21:17.000000000 +0800
++++ rsc/source/parser/rscibas.cxx	2007-12-17 01:39:38.000000000 +0800
+@@ -236,6 +236,9 @@
+ 	SETCONST( pFieldUnits, "FUNIT_FOOT", FUNIT_FOOT );
+ 	SETCONST( pFieldUnits, "FUNIT_MILE", FUNIT_MILE );
+ 	SETCONST( pFieldUnits, "FUNIT_CUSTOM", FUNIT_CUSTOM );
++	// Amelia : adds two units ,"char" and "line"
++	SETCONST( pFieldUnits, "FUNIT_CHAR", FUNIT_CHAR );
++	SETCONST( pFieldUnits, "FUNIT_LINE", FUNIT_LINE );
+ 	SETCONST( pFieldUnits, "FUNIT_PERCENT", FUNIT_PERCENT );
+ 
+ 	return pFieldUnits;
+diff -uNr sfx2/inc/sfx2/sfxsids.hrc sfx2/inc/sfx2/sfxsids.hrc
+--- sfx2/inc/sfx2/sfxsids.hrc	2007-12-16 23:21:19.000000000 +0800
++++ sfx2/inc/sfx2/sfxsids.hrc	2007-12-17 01:39:41.000000000 +0800
+@@ -987,6 +987,7 @@
+ #define SID_ATTR_QUICKLAUNCHER			(SID_OPTIONS_START + 74)
+ #define SID_ATTR_YEAR2000				(SID_OPTIONS_START + 87)
+ #define SID_ATTR_ALLOWFOLDERWEBVIEW   	(SID_OPTIONS_START + 92)
++#define SID_ATTR_APPLYCHARUNIT          (SID_OPTIONS_START + 88) 
+ 
+ 
+ // PathTabPage
+diff -uNr sfx2/sdi/sfx.sdi sfx2/sdi/sfx.sdi
+--- sfx2/sdi/sfx.sdi	2007-12-16 23:21:19.000000000 +0800
++++ sfx2/sdi/sfx.sdi	2007-12-17 01:39:41.000000000 +0800
+@@ -4224,6 +4224,33 @@
+ ]
+ 
+ //--------------------------------------------------------------------------
++SfxBoolItem ApplyCharUnit SID_ATTR_APPLYCHARUNIT
++
++[
++	/* flags: */
++	AutoUpdate = TRUE,
++	Cachable = Volatile,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = FALSE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	Readonly = FALSE,
++
++	/* config: */
++	AccelConfig = FALSE,
++	MenuConfig = FALSE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = FALSE,
++	GroupId = GID_VIEW;
++]
++
++//--------------------------------------------------------------------------
+ SfxBoolItem Modified SID_MODIFIED
+ 
+ [
+diff -uNr svtools/inc/svtools/poolitem.hxx svtools/inc/svtools/poolitem.hxx
+--- svtools/inc/svtools/poolitem.hxx	2007-12-16 23:21:31.000000000 +0800
++++ svtools/inc/svtools/poolitem.hxx	2007-12-17 01:39:55.000000000 +0800
+@@ -124,7 +124,7 @@
+ {
+ 	SFX_FUNIT_NONE, SFX_FUNIT_MM, SFX_FUNIT_CM, SFX_FUNIT_M, SFX_FUNIT_KM,
+ 	SFX_FUNIT_TWIP, SFX_FUNIT_POINT, SFX_FUNIT_PICA,
+-	SFX_FUNIT_INCH, SFX_FUNIT_FOOT, SFX_FUNIT_MILE, SFX_FUNIT_CUSTOM
++	SFX_FUNIT_INCH, SFX_FUNIT_FOOT, SFX_FUNIT_MILE, SFX_FUNIT_CHAR, SFX_FUNIT_LINE, SFX_FUNIT_CUSTOM
+ };
+ 
+ enum SfxMapUnit
+diff -uNr svtools/source/control/ruler.cxx svtools/source/control/ruler.cxx
+--- svtools/source/control/ruler.cxx	2007-12-16 23:21:33.000000000 +0800
++++ svtools/source/control/ruler.cxx	2007-12-17 01:39:58.000000000 +0800
+@@ -97,7 +97,9 @@
+ #define RULER_UNIT_MILE     6
+ #define RULER_UNIT_POINT    7
+ #define RULER_UNIT_PICA     8
+-#define RULER_UNIT_COUNT    9
++#define RULER_UNIT_CHAR	    9
++#define RULER_UNIT_LINE    10
++#define RULER_UNIT_COUNT    11
+ 
+ // -----------------
+ // - ImplRulerData -
+@@ -161,7 +163,9 @@
+ { MAP_100TH_INCH,     1200,   120,    600,   1200,   30480, 3, "'"      }, // FOOT
+ { MAP_10TH_INCH,    633600, 63360, 316800, 633600, 1609344, 4, " miles" }, // MILE
+ { MAP_POINT,             1,    12,     12,     36,     353, 2, " pt"    }, // POINT
+-{ MAP_100TH_MM,        423,   423,    423,    846,     423, 3, " pi"    }  // PICA
++{ MAP_100TH_MM,        423,   423,    423,    846,     423, 3, " pi"    }, // PICA
++{ MAP_100TH_MM,	       371,   371,    371,    743,     371, 3, " ch"    }, // CHAR
++{ MAP_100TH_MM,        551,   551,    551,   1102,     551, 3, " li"    }  // LINE
+ };
+ 
+ // =======================================================================
+diff -uNr svx/source/dialog/ruler.hrc svx/source/dialog/ruler.hrc
+--- svx/source/dialog/ruler.hrc	2007-12-16 23:22:12.000000000 +0800
++++ svx/source/dialog/ruler.hrc	2007-12-17 01:40:33.000000000 +0800
+@@ -42,4 +42,5 @@
+ #define ID_MILE 10
+ #define ID_POINT 6
+ #define ID_PICA 7
+-
++#define ID_CHAR 11
++#define ID_LINE 12
+diff -uNr svx/source/dialog/ruler.src svx/source/dialog/ruler.src
+--- svx/source/dialog/ruler.src	2007-12-16 23:22:12.000000000 +0800
++++ svx/source/dialog/ruler.src	2007-12-17 01:40:33.000000000 +0800
+@@ -95,6 +95,18 @@
+ 			Checkable = TRUE ;
+             Text [ en-US ] = "Pica" ;
+         };
++		MenuItem
++		{
++			Identifier = ID_CHAR ;
++			Checkable = TRUE ;
++			Text[ en-US ] = "Char" ;
++		};
++		MenuItem
++		{
++			Identifier = ID_LINE ;
++			Checkable = TRUE ;
++			Text[ en-US ] = "Line" ;
++		};
+ 	};
+ };
+ String RID_SVXSTR_RULER_TAB_LEFT
+diff -uNr svx/source/dialog/svxruler.cxx svx/source/dialog/svxruler.cxx
+--- svx/source/dialog/svxruler.cxx	2007-12-16 23:22:13.000000000 +0800
++++ svx/source/dialog/svxruler.cxx	2007-12-17 01:40:34.000000000 +0800
+@@ -3760,8 +3760,15 @@
+                         (nId == FUNIT_M ||
+                          nId == FUNIT_KM ||
+                          nId == FUNIT_FOOT ||
+-                         nId == FUNIT_MILE ))
+-                    aMenu.RemoveItem(i - 1);
++                         nId == FUNIT_MILE ||
++                         nId == FUNIT_CHAR ||
++                         nId == FUNIT_LINE ))
++                    if (( nId == FUNIT_CHAR ) && bHorz )
++                           ;
++                    else if (( nId == FUNIT_LINE ) && !bHorz )
++                           ;
++                    else
++                           aMenu.RemoveItem(i - 1);
+ 			}
+ 			aMenu.Execute( this, rCEvt.GetMousePosPixel() );
+ 		}
+diff -uNr svx/source/options/optgenrl.src svx/source/options/optgenrl.src
+--- svx/source/options/optgenrl.src	2007-12-16 23:22:15.000000000 +0800
++++ svx/source/options/optgenrl.src	2007-12-17 01:40:39.000000000 +0800
+@@ -288,6 +288,8 @@
+ 		< "Miles" ; FUNIT_MILE ; > ;
+ 		< "Pica" ; FUNIT_PICA ; > ;
+ 		< "Point" ; FUNIT_POINT ; > ;
++                < "Char" ; FUNIT_CHAR ; >;
++                < "Line" ; FUNIT_LINE ; >;
+ 	};
+ 	};
+ 
+diff -uNr sw/source/ui/config/optload.cxx sw/source/ui/config/optload.cxx
+--- sw/source/ui/config/optload.cxx	2007-12-16 23:23:01.000000000 +0800
++++ sw/source/ui/config/optload.cxx	2007-12-17 01:41:54.000000000 +0800
+@@ -112,6 +112,10 @@
+ #include <svtools/cjkoptions.hxx>
+ #endif
+ 
++#ifndef _SFXENUMITEM_HXX //autogen
++#include <svtools/eitem.hxx>
++#endif
++
+ /* -----------------22.10.98 15:12-------------------
+  *
+  * --------------------------------------------------*/
+@@ -135,6 +139,7 @@
+     aTabFT              ( this, SW_RES( FT_TAB ) ),
+     aTabMF              ( this, SW_RES( MF_TAB ) ),
+     aUseSquaredPageMode        ( this, SW_RES( CB_USE_SQUARE_PAGE_MODE ) ),
++    aUseCharUnit             ( this , SW_RES( CB_USE_CHAR_UNIT ) ),
+ 
+ 	pWrtShell	( NULL ),
+     bHTMLMode   ( FALSE ),
+@@ -157,6 +162,7 @@
+ 			case FUNIT_POINT:
+ 			case FUNIT_PICA:
+ 			case FUNIT_INCH:
++			case FUNIT_CHAR:
+ 			{
+ 				// nur diese Metriken benutzen
+ 				USHORT nPos = aMetricLB.InsertEntry( sMetric );
+diff -uNr sw/source/ui/config/optload.hrc sw/source/ui/config/optload.hrc
+--- sw/source/ui/config/optload.hrc	2007-12-16 23:23:01.000000000 +0800
++++ sw/source/ui/config/optload.hrc	2007-12-17 01:41:54.000000000 +0800
+@@ -49,6 +49,7 @@
+ #define FT_TAB					21
+ #define MF_TAB					22
+ #define CB_USE_SQUARE_PAGE_MODE 23
++#define CB_USE_CHAR_UNIT    			24
+ 
+ // SwCaptionOptPage -----------------------------
+ 
+diff -uNr sw/source/ui/config/optload.src sw/source/ui/config/optload.src
+--- sw/source/ui/config/optload.src	2007-12-16 23:23:01.000000000 +0800
++++ sw/source/ui/config/optload.src	2007-12-17 01:41:54.000000000 +0800
+@@ -147,6 +147,16 @@
+         Text [ en-US ] = "Use square page mode for text grid";
+         Text [ zh-CN ] = "使用稿纸模式";
+     };
++
++    CheckBox CB_USE_CHAR_UNIT
++    {
++        Pos = MAP_APPFONT ( 12 , 130) ;
++        Size = MAP_APPFONT ( 109 , 10 ) ;
++        Text [ de ] = "appy char unit" ;
++        Text [ en-US ] = "apply char unit";
++        Text [ x-comment ] = " ";
++    };
++
+ };
+ /**************************************************************************/
+ /*                                                                        */
+@@ -367,6 +377,8 @@
+ 		< "Miles" ; FUNIT_MILE ; > ;
+ 		< "Pica" ; FUNIT_PICA ; > ;
+ 		< "Point" ; FUNIT_POINT ; > ;
++		< "Char" ; FUNIT_CHAR ; >;
++		< "Line" ; FUNIT_LINE ; >;
+ 	};
+ };
+ 
+diff -uNr sw/source/ui/config/optpage.cxx sw/source/ui/config/optpage.cxx
+--- sw/source/ui/config/optpage.cxx	2007-12-16 23:23:01.000000000 +0800
++++ sw/source/ui/config/optpage.cxx	2007-12-17 01:41:53.000000000 +0800
+@@ -244,14 +244,25 @@
+ 			case FUNIT_POINT:
+ 			case FUNIT_PICA:
+ 			case FUNIT_INCH:
++			case FUNIT_CHAR:    // add two units , 'character' and 'line' , their ticks are not fixed 
++			case FUNIT_LINE:
+ 			{
+ 				// nur diese Metriken benutzen
+-				USHORT nPos = aMetricLB.InsertEntry( sMetric );
+-				aMetricLB.SetEntryData( nPos, (void*)(long)eFUnit );
+-                aVMetric.InsertEntry( sMetric );
+-                aVMetric.SetEntryData( nPos, (void*)(long)eFUnit );
+-                aHMetric.InsertEntry( sMetric );
+-                aHMetric.SetEntryData( nPos, (void*)(long)eFUnit );
++                                // a horizontal ruler has not the 'line' unit
++                                // there isn't 'line' unit in HTML format
++                                if ( eFUnit != FUNIT_LINE )
++                                {
++				        USHORT nPos = aMetricLB.InsertEntry( sMetric );
++				        aMetricLB.SetEntryData( nPos, (void*)(long)eFUnit );
++			                aHMetric.InsertEntry( sMetric );
++                	                aHMetric.SetEntryData( nPos, (void*)(long)eFUnit );
++                                }
++                                // a vetical ruler has not the 'character' unit
++				if ( eFUnit != FUNIT_CHAR )
++				{
++                			USHORT nPos = aVMetric.InsertEntry( sMetric );
++                			aVMetric.SetEntryData( nPos, (void*)(long)eFUnit );
++				}
+ 			}
+             default:;//prevent warning
+ 		}
+diff -uNr sw/source/ui/inc/optload.hxx sw/source/ui/inc/optload.hxx
+--- sw/source/ui/inc/optload.hxx	2007-12-16 23:22:58.000000000 +0800
++++ sw/source/ui/inc/optload.hxx	2007-12-17 01:41:47.000000000 +0800
+@@ -94,6 +94,7 @@
+     FixedText   aTabFT;
+ 	MetricField aTabMF;
+     CheckBox    aUseSquaredPageMode;
++    CheckBox    aUseCharUnit;
+ 
+ 	SwWrtShell*	pWrtShell;
+     sal_Bool    bHTMLMode;
+diff -uNr sw/source/ui/inc/pggrid.hxx sw/source/ui/inc/pggrid.hxx
+--- sw/source/ui/inc/pggrid.hxx	2007-12-16 23:22:58.000000000 +0800
++++ sw/source/ui/inc/pggrid.hxx	2007-12-17 10:57:44.000000000 +0800
+@@ -68,12 +68,14 @@
+ 
+     FixedText       aLinesPerPageFT;
+     NumericField    aLinesPerPageNF;
++    FixedText       aLinesRangeFT;
+ 
+     FixedText       aTextSizeFT;
+     MetricField     aTextSizeMF;
+ 
+     FixedText       aCharsPerLineFT;
+     NumericField    aCharsPerLineNF;
++    FixedText       aCharsRangeFT;
+ 
+     FixedText       aCharWidthFT;
+     MetricField     aCharWidthMF;    
+diff -uNr sw/source/ui/misc/pggrid.cxx sw/source/ui/misc/pggrid.cxx
+--- sw/source/ui/misc/pggrid.cxx	2007-12-16 23:22:58.000000000 +0800
++++ sw/source/ui/misc/pggrid.cxx	2007-12-17 01:41:49.000000000 +0800
+@@ -78,6 +78,9 @@
+ #ifndef _SVX_FRMDIRITEM_HXX
+ #include <svx/frmdiritem.hxx>
+ #endif
++#ifndef _SVX_RULER_HXX
++#include <svx/ruler.hxx>
++#endif
+ #ifndef _PGGRID_HXX
+ #include <pggrid.hxx>
+ #endif
+@@ -105,10 +108,12 @@
+     aLayoutFL               (this, SW_RES(FL_LAYOUT          )),
+     aLinesPerPageFT         (this, SW_RES(FT_LINESPERPAGE    )),
+     aLinesPerPageNF         (this, SW_RES(NF_LINESPERPAGE    )),
++    aLinesRangeFT           (this, SW_RES(FT_LINERANGE    )),
+     aTextSizeFT             (this, SW_RES(FT_TEXTSIZE        )),
+     aTextSizeMF             (this, SW_RES(MF_TEXTSIZE        )),
+     aCharsPerLineFT         (this, SW_RES(FT_CHARSPERLINE    )),
+     aCharsPerLineNF         (this, SW_RES(NF_CHARSPERLINE    )),
++    aCharsRangeFT           (this, SW_RES(FT_CHARRANGE       )),
+     aCharWidthFT            (this, SW_RES(FT_CHARWIDTH       )),
+     aCharWidthMF            (this, SW_RES(MF_CHARWIDTH       )),
+     aRubySizeFT             (this, SW_RES(FT_RUBYSIZE        )),
+diff -uNr sw/source/ui/misc/pggrid.hrc sw/source/ui/misc/pggrid.hrc
+--- sw/source/ui/misc/pggrid.hrc	2007-12-16 23:22:58.000000000 +0800
++++ sw/source/ui/misc/pggrid.hrc	2007-12-17 01:41:49.000000000 +0800
+@@ -58,3 +58,5 @@
+ #define CB_SNAPTOCHARS      23
+ #define FT_CHARWIDTH        24
+ #define MF_CHARWIDTH        25
++#define FT_LINERANGE       26
++#define FT_CHARRANGE       27
+diff -uNr sw/source/ui/misc/pggrid.src sw/source/ui/misc/pggrid.src
+--- sw/source/ui/misc/pggrid.src	2007-12-16 23:22:58.000000000 +0800
++++ sw/source/ui/misc/pggrid.src	2007-12-17 01:41:49.000000000 +0800
+@@ -105,6 +105,12 @@
+         Last = 154 ;
+ 		SpinSize = 1 ;
+     };
++    FixedText       FT_LINERANGE
++    {
++        Pos = MAP_APPFONT ( 103 , 82 ) ;
++        Size = MAP_APPFONT ( 25 , 8 );
++        Text [ en-US ] = "( 1 - 48 )" ;
++    };
+     FixedText       FT_TEXTSIZE
+     {
+         Pos = MAP_APPFONT ( 133 , 82 ) ;
+@@ -174,6 +180,12 @@
+ 		Last = 5600 ;
+         SpinSize = 5 ;
+     };
++    FixedText       FT_CHARRANGE
++    {
++        Pos = MAP_APPFONT ( 103 , 96 ) ;
++        Size = MAP_APPFONT ( 25 , 8 ) ;
++        Text [ en-US ] = "( 1 - 45 )" ;
++    };
+     FixedText       FT_RUBYSIZE
+     {
+         Pos = MAP_APPFONT ( 133 , 98 ) ;
+diff -uNr vcl/inc/vcl/fldunit.hxx vcl/inc/vcl/fldunit.hxx
+--- vcl/inc/vcl/fldunit.hxx	2007-12-16 23:23:50.000000000 +0800
++++ vcl/inc/vcl/fldunit.hxx	2007-12-17 01:42:55.000000000 +0800
+@@ -43,7 +43,7 @@
+ // By changes you must also change: rsc/vclrsc.hxx
+ enum FieldUnit { FUNIT_NONE, FUNIT_MM, FUNIT_CM, FUNIT_M, FUNIT_KM,
+ 				 FUNIT_TWIP, FUNIT_POINT, FUNIT_PICA,
+-				 FUNIT_INCH, FUNIT_FOOT, FUNIT_MILE, FUNIT_CUSTOM,
++				 FUNIT_INCH, FUNIT_FOOT, FUNIT_MILE, FUNIT_CHAR, FUNIT_LINE, FUNIT_CUSTOM,
+ 				 FUNIT_PERCENT, FUNIT_100TH_MM };
+ 
+ #endif // _VCL_FLDUNIT_HXX
+diff -uNr vcl/source/control/field.cxx vcl/source/control/field.cxx
+--- vcl/source/control/field.cxx	2007-12-16 23:23:58.000000000 +0800
++++ vcl/source/control/field.cxx	2007-12-17 10:58:04.000000000 +0800
+@@ -1147,6 +1147,10 @@
+         if ( strAllUnits->GetString( i ).Equals( aStr ) )
+             return (FieldUnit) strAllUnits->GetValue( i );
+ 
++    // Amelia : about character unit
++    if (aStr.EqualsIgnoreCaseAscii("cm"))
++        return FUNIT_CM;
++
+     return FUNIT_NONE;
+ }
+ 
+@@ -1162,20 +1166,24 @@
+ #define M *1000000L
+ #define X *5280L
+ 
+-static const sal_Int64 aImplFactor[FUNIT_MILE+1][FUNIT_MILE+1] =
++// Amelia : about measurement unit, 'char' and 'line'
++//static const sal_Int64 aImplFactor[FUNIT_MILE+1][FUNIT_MILE+1] =
++static const sal_Int64 aImplFactor[FUNIT_LINE+1][FUNIT_LINE+1] =
+ { /*
+-mm/100    mm    cm       m     km  twip point  pica  inch    foot     mile */
+-{    1,  100,  1 K,  100 K, 100 M, 2540, 2540, 2540, 2540,2540*12,2540*12 X },
+-{    1,    1,   10,    1 K,   1 M, 2540, 2540, 2540, 2540,2540*12,2540*12 X },
+-{    1,    1,    1,    100, 100 K,  254,  254,  254,  254, 254*12, 254*12 X },
+-{    1,    1,    1,      1,   1 K,  254,  254,  254,  254, 254*12, 254*12 X },
+-{    1,    1,    1,      1,     1,    0,  254,  254,  254, 254*12, 254*12 X },
+-{ 1440,144 K,144 K,14400 K,     0,    1,   20,  240, 1440,1440*12,1440*12 X },
+-{   72, 7200, 7200,  720 K, 720 M,    1,    1,   12,   72,  72*12,  72*12 X },
+-{    6,  600,  600,   60 K,  60 M,    1,    1,    1,    6,   6*12,   6*12 X },
+-{    1,  100,  100,   10 K,  10 M,    1,    1,    1,    1,     12,     12 X },
+-{    1,  100,  100,   10 K,  10 M,    1,    1,    1,    1,      1,      1 X },
+-{    1,  100,  100,   10 K,  10 M,    1,    1,    1,    1,      1,        1 }
++mm/100    mm    cm       m     km  twip point  pica  inch    foot     mile    char    line*/
++{    1,  100,  1 K,  100 K, 100 M, 2540, 2540, 2540, 2540,2540*12,2540*12 X ,   53340, 396240},
++{    1,    1,   10,    1 K,   1 M, 2540, 2540, 2540, 2540,2540*12,2540*12 X ,    5334, 396240},
++{    1,    1,    1,    100, 100 K,  254,  254,  254,  254, 254*12, 254*12 X ,    5334,  39624},
++{    1,    1,    1,      1,   1 K,  254,  254,  254,  254, 254*12, 254*12 X ,  533400,  39624},
++{    1,    1,    1,      1,     1,    0,  254,  254,  254, 254*12, 254*12 X ,533400 K,  39624},
++{ 1440,144 K,144 K,14400 K,     0,    1,   20,  240, 1440,1440*12,1440*12 X ,     210,   3120},
++{   72, 7200, 7200,  720 K, 720 M,    1,    1,   12,   72,  72*12,  72*12 X ,     210,    156},
++{    6,  600,  600,   60 K,  60 M,    1,    1,    1,    6,   6*12,   6*12 X ,     210,     10},
++{    1,  100,  100,   10 K,  10 M,    1,    1,    1,    1,     12,     12 X ,     210,     45},
++{    1,  100,  100,   10 K,  10 M,    1,    1,    1,    1,      1,      1 X ,     210,     45},
++{    1,  100,  100,   10 K,  10 M,    1,    1,    1,    1,      1,        1 ,     210,     45},
++{  144, 1440,14400,  14400, 14400,    1,   20,  240, 1440,1440*12, 1440*12 X,       1,   156 },
++{  720,72000,72000, 7200 K,7200 M,   20,   10,   13,   11,  11*12,   11*12 X,     105,     1 }
+ };
+ 
+ #undef X
+diff -uNr vcl/source/src/units.src vcl/source/src/units.src
+--- vcl/source/src/units.src	2007-12-16 23:23:57.000000000 +0800
++++ vcl/source/src/units.src	2007-12-17 01:43:07.000000000 +0800
+@@ -38,6 +38,7 @@
+ #include <vcl/svids.hrc>
+ #endif
+ 
++// Amelia : adds two units , 'ch' and 'line'
+ StringArray SV_FUNIT_STRINGS
+ {
+ 	ItemList [ en-US ] =
+@@ -59,6 +60,8 @@
+ 		< "feet" ; FUNIT_FOOT ; > ;
+ 		< "miles" ; FUNIT_MILE ; > ;
+ 		< "mile" ; FUNIT_MILE ; > ;
++		< "ch" ; FUNIT_CHAR ; > ;
++		< "line" ; FUNIT_LINE ; > ;
+ 		< "%" ; FUNIT_PERCENT ; > ;
+ 	};
+ };
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libwpd-testing.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libwpd-testing.diff
@@ -0,0 +1,33 @@
+--- libwpd/makefile.mk	2008-04-07 14:04:18.000000000 +0200
++++ libwpd/makefile.mk	2008-04-07 14:05:05.000000000 +0200
+@@ -49,7 +49,7 @@
+ 	@echo "Using system libwpd..."
+ .ENDIF
+ 
+-TARFILE_NAME=libwpd-0.8.14
++TARFILE_NAME=libwpd-0.9.0
+ #PATCH_FILE_NAME=$(TARFILE_NAME).diff
+ BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ BUILD_DIR=src$/lib
+--- libwpd/prj/d.lst	2008-04-07 14:04:18.000000000 +0200
++++ libwpd/prj/d.lst	2008-04-07 14:19:27.000000000 +0200
+@@ -1,12 +1,15 @@
+ mkdir: %_DEST%\inc%_EXT%\libwpd
++mkdir: %_DEST%\inc%_EXT%\libwpd-stream
+ ..\%__SRC%\misc\build\libwpd*\src\lib\libwpd.h %_DEST%\inc%_EXT%\libwpd\
+-..\%__SRC%\misc\build\libwpd*\src\lib\libwpd_types.h %_DEST%\inc%_EXT%\libwpd\
+-..\%__SRC%\misc\build\libwpd*\src\lib\WPXStream.h %_DEST%\inc%_EXT%\libwpd\
++..\%__SRC%\misc\build\libwpd*\src\lib\WPDocument.h %_DEST%\inc%_EXT%\libwpd\
++..\%__SRC%\misc\build\libwpd*\src\lib\WPXBinaryData.h %_DEST%\inc%_EXT%\libwpd\
++..\%__SRC%\misc\build\libwpd*\src\lib\WPXDocumentInterface.h %_DEST%\inc%_EXT%\libwpd\
+ ..\%__SRC%\misc\build\libwpd*\src\lib\WPXProperty.h %_DEST%\inc%_EXT%\libwpd\
+ ..\%__SRC%\misc\build\libwpd*\src\lib\WPXPropertyList.h %_DEST%\inc%_EXT%\libwpd\
+ ..\%__SRC%\misc\build\libwpd*\src\lib\WPXString.h %_DEST%\inc%_EXT%\libwpd\
+ ..\%__SRC%\misc\build\libwpd*\src\lib\WPXPropertyListVector.h %_DEST%\inc%_EXT%\libwpd\
+-..\%__SRC%\misc\build\libwpd*\src\lib\WPDocument.h %_DEST%\inc%_EXT%\libwpd\
+-..\%__SRC%\misc\build\libwpd*\src\lib\WPXHLListenerImpl.h %_DEST%\inc%_EXT%\libwpd\
++..\%__SRC%\misc\build\libwpd*\src\lib\libwpd-stream.h %_DEST%\inc%_EXT%\libwpd-stream\
++..\%__SRC%\misc\build\libwpd*\src\lib\WPXStream.h %_DEST%\inc%_EXT%\libwpd-stream\
++..\%__SRC%\misc\build\libwpd*\src\lib\WPXStreamImplementation.h %_DEST%\inc%_EXT%\libwpd-stream\
+ ..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
+ ..\%__SRC%\slb\*.lib %_DEST%\lib%_EXT%\*.lib
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-catch-flush-exceptions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-catch-flush-exceptions.diff
@@ -0,0 +1,19 @@
+diff --git unotools/source/ucbhelper/ucblockbytes.cxx unotools/source/ucbhelper/ucblockbytes.cxx
+index 032888b..0586ec7 100644
+--- unotools/source/ucbhelper/ucblockbytes.cxx
++++ unotools/source/ucbhelper/ucblockbytes.cxx
+@@ -1605,7 +1605,13 @@ ErrCode UcbLockBytes::Flush() const
+     Reference <XOutputStream > xOutputStream = getOutputStream_Impl();
+     if ( !xOutputStream.is() )
+         return ERRCODE_IO_CANTWRITE;
+-    xOutputStream->flush();
++    try {
++        xOutputStream->flush();
++    }
++    catch (...)
++    {
++        return ERRCODE_IO_CANTWRITE;
++    }
+     return ERRCODE_NONE;
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-xception.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-xception.diff
@@ -0,0 +1,362 @@
+diff --git a/binfilter/bf_sc/source/core/tool/sc_addincol.cxx b/binfilter/bf_sc/source/core/tool/sc_addincol.cxx
+index 7a80170..5008ba2 100644
+--- binfilter/bf_sc/source/core/tool/sc_addincol.cxx
++++ binfilter/bf_sc/source/core/tool/sc_addincol.cxx
+@@ -37,7 +37,6 @@
+ #include <tools/debug.hxx>
+ #include <i18npool/mslangid.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/xception.hxx>
+ #include <bf_sfx2/objsh.hxx>
+ #include <unotools/charclass.hxx>
+ 
+diff --git a/binfilter/bf_sch/source/core/sch_chtmodel.cxx b/binfilter/bf_sch/source/core/sch_chtmodel.cxx
+index 023963b..2b92ef1 100644
+--- binfilter/bf_sch/source/core/sch_chtmodel.cxx
++++ binfilter/bf_sch/source/core/sch_chtmodel.cxx
+@@ -170,9 +170,6 @@ class SbxArray;
+ #ifndef _SVX_LANGITEM_HXX
+ #include <bf_svx/langitem.hxx>
+ #endif
+-#ifndef _XCEPTION_HXX_
+-#include <vos/xception.hxx>
+-#endif
+ #ifndef _UNDO_HXX
+ #include <svtools/undo.hxx>
+ #endif
+diff --git a/binfilter/bf_sd/source/core/sd_drawdoc.cxx b/binfilter/bf_sd/source/core/sd_drawdoc.cxx
+index 51e3a3e..3bc7449 100644
+--- binfilter/bf_sd/source/core/sd_drawdoc.cxx
++++ binfilter/bf_sd/source/core/sd_drawdoc.cxx
+@@ -107,9 +107,6 @@
+ #include <svtools/saveopt.hxx>
+ #endif
+ #include <comphelper/extract.hxx>
+-#ifndef _XCEPTION_HXX_
+-#include <vos/xception.hxx>
+-#endif
+ #ifndef INCLUDED_I18NPOOL_MSLANGID_HXX
+ #include <i18npool/mslangid.hxx>
+ #endif
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+index 57de9b0..761e05d 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+@@ -39,9 +39,6 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
+-#ifndef _XCEPTION_HXX_
+-#include <vos/xception.hxx>
+-#endif
+ #ifndef _SFX_WHITER_HXX //autogen
+ #include <svtools/whiter.hxx>
+ #endif
+diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx
+index 5e12c6c..87c4744 100644
+--- sc/source/core/tool/addincol.cxx
++++ sc/source/core/tool/addincol.cxx
+@@ -42,7 +42,6 @@
+ #include <tools/debug.hxx>
+ #include <i18npool/mslangid.hxx>
+ #include <vcl/svapp.hxx>
+-#include <vos/xception.hxx>
+ #include <sfx2/objsh.hxx>
+ #include <unotools/charclass.hxx>
+ 
+diff --git a/sc/source/filter/xml/xmlwrap.cxx b/sc/source/filter/xml/xmlwrap.cxx
+index 3e41ecf..64d98f6 100644
+--- sc/source/filter/xml/xmlwrap.cxx
++++ sc/source/filter/xml/xmlwrap.cxx
+@@ -46,7 +46,6 @@
+ #ifndef _TOOLS_DEBUG_HXX
+ #include <tools/debug.hxx>
+ #endif
+-#include <vos/xception.hxx>
+ #include <comphelper/processfactory.hxx>
+ #include <unotools/streamwrap.hxx>
+ #include <svx/xmlgrhlp.hxx>
+diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx
+index dde8ed7..aca4622 100644
+--- sd/inc/pch/precompiled_sd.hxx
++++ sd/inc/pch/precompiled_sd.hxx
+@@ -922,7 +922,6 @@
+ #include "vos/module.hxx"
+ #include "osl/mutex.hxx"
+ #include "osl/thread.hxx"
+-#include "vos/xception.hxx"
+ //---MARKER---
+ 
+ #endif
+diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
+index bbaf8d5..9f1fbd5 100644
+--- sd/source/filter/eppt/epptso.cxx
++++ sd/source/filter/eppt/epptso.cxx
+@@ -193,12 +193,6 @@
+ 
+ //#include <svx/xbtmpit.hxx>
+ 
+-
+-#include <vos/xception.hxx>
+-#ifndef _VOS_NO_NAMESPACE
+-using namespace vos;
+-#endif
+-
+ using namespace ::com::sun::star;
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 506e02a..54afe37 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -676,7 +676,6 @@
+ #include "vos/security.hxx"
+ #include "vos/socket.hxx"
+ #include "osl/thread.hxx"
+-#include "vos/xception.hxx"
+ //---MARKER---
+ #endif
+ 
+diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
+index 9118635..4ea4a18 100644
+--- sfx2/source/appl/appmisc.cxx
++++ sfx2/source/appl/appmisc.cxx
+@@ -42,9 +42,6 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
+-#ifndef _XCEPTION_HXX_
+-#include <vos/xception.hxx>
+-#endif
+ #ifndef _SFX_WHITER_HXX //autogen
+ #include <svtools/whiter.hxx>
+ #endif
+diff --git a/starmath/source/math_pch.cxx b/starmath/source/math_pch.cxx
+index 0d93acd..dd32c2e 100644
+--- starmath/source/math_pch.cxx
++++ starmath/source/math_pch.cxx
+@@ -118,7 +118,6 @@
+ #include <usr/sequ.hxx>
+ #include <uno/types.h>
+ #include <uno/macros.h>
+-#include <vos/xception.hxx>
+ #include <osl/mutex.h>
+ #include <tools/shl.hxx>
+ #include <sfx2/module.hxx>
+diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
+index d681cd2..d98ef8b 100644
+--- svx/inc/pch/precompiled_svx.hxx
++++ svx/inc/pch/precompiled_svx.hxx
+@@ -956,7 +956,6 @@
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/thread.hxx"
+-#include "vos/xception.hxx"
+ #include "xmloff/DashStyle.hxx"
+ #include "xmloff/GradientStyle.hxx"
+ #include "xmloff/HatchStyle.hxx"
+diff --git a/svx/source/msfilter/escherex.cxx b/svx/source/msfilter/escherex.cxx
+index c0c9ec4..f1ab09c 100644
+--- svx/source/msfilter/escherex.cxx
++++ svx/source/msfilter/escherex.cxx
+@@ -237,10 +237,6 @@
+ #ifndef _RTL_CRC_H_
+ #include <rtl/crc.h>
+ #endif
+-#include <vos/xception.hxx>
+-#ifndef _VOS_NO_NAMESPACE
+-using namespace vos;
+-#endif
+ 
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+diff --git a/svx/source/msfilter/msdffimp.cxx b/svx/source/msfilter/msdffimp.cxx
+index 2883216..e149827 100644
+--- svx/source/msfilter/msdffimp.cxx
++++ svx/source/msfilter/msdffimp.cxx
+@@ -344,7 +344,6 @@
+ #ifndef _UCBHELPER_CONTENTBROKER_HXX_
+ #include <ucbhelper/contentbroker.hxx>
+ #endif
+-#include <vos/xception.hxx>
+ #ifndef _VOS_NO_NAMESPACE
+ using namespace vos;
+ #endif
+diff --git a/vos/inc/vos/xception.hxx b/vos/inc/vos/xception.hxx
+deleted file mode 100644
+index 22931c8..0000000
+--- vos/inc/vos/xception.hxx
++++ /dev/null
+@@ -1,89 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: xception.hxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: kz $ $Date: 2007/09/06 13:45:20 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _XCEPTION_HXX_
+-#define _XCEPTION_HXX_
+-
+-#ifndef _VOS_OBJECT_HXX_
+-#include <vos/object.hxx>
+-#endif
+-
+-#ifdef _MSC_VER
+-#pragma warning( disable : 4290 )
+-#endif
+-
+-namespace vos
+-{
+-
+-/* avoid clashes with <vos/exception.hxx> */
+-#define OException OBaseException
+-
+-/*
+- * Macros for true try/catch based Exception Handling (public)
+- * based on true rtti type checking
+- */
+-
+-#define THROW_AGAIN                     throw;
+-#define THROW( Constructor )            throw Constructor;
+-
+-/* 
+- * declaration of the exceptions that may be thrown by a function 
+- * (e.g.) void myfunction(sal_Int32 a) throw ( std::bad_alloc ); 
+- * is not fully supported by all compilers
+- */
+-
+-#define THROWS( ARG ) throw ARG 
+-
+-/*
+- * just a base class for further exceptions
+- */
+-
+-class OException : public OObject
+-{
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OException, vos));
+-
+-public:
+-	virtual ~OException();
+-	OException() {}
+-	OException( const OException & ) : OObject() {}
+-
+-	OException& SAL_CALL operator=(const OException&) 
+-		{ return *this; }
+-};
+-
+-}
+-
+-#endif /* _XCEPTION_HXX_ */
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 5efea26..3093410 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -56,8 +56,7 @@ SLOFILES= \
+ 				$(SLO)$/process.obj     \
+ 				$(SLO)$/security.obj    \
+ 				$(SLO)$/signal.obj      \
+-				$(SLO)$/pipe.obj        \
+-				$(SLO)$/xception.obj
++				$(SLO)$/pipe.obj
+ 
+ 
+ .IF "$(UPDATER)"=="YES"
+@@ -72,8 +71,7 @@ OBJFILES= \
+ 				$(OBJ)$/process.obj     \
+ 				$(OBJ)$/security.obj    \
+ 				$(OBJ)$/signal.obj      \
+-				$(OBJ)$/pipe.obj        \
+-				$(OBJ)$/xception.obj
++				$(OBJ)$/pipe.obj
+ 
+ .ENDIF
+ 
+diff --git a/vos/source/xception.cxx b/vos/source/xception.cxx
+deleted file mode 100644
+index 5b125ff..0000000
+--- vos/source/xception.cxx
++++ /dev/null
+@@ -1,53 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: xception.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:45:37 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _XCEPTION_HXX_
+-#include <vos/xception.hxx>
+-#endif
+-
+-using namespace vos;
+-
+-/*
+- * OException, baseclass of all exceptions 
+- */
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OException, vos), 	\
+-						VOS_NAMESPACE(OException, vos), 	\
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-OException::~OException()
+-{
+-}
+-
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-xclimpchangetrack-discard-bogus-formula-size.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-xclimpchangetrack-discard-bogus-formula-size.diff
@@ -0,0 +1,11 @@
+--- sc/source/filter/xcl97/XclImpChangeTrack.cxx
++++ sc/source/filter/xcl97/XclImpChangeTrack.cxx
+@@ -225,6 +225,8 @@
+ 	SvMemoryStream aMemStrm;
+ 	aMemStrm << (sal_uInt16) 0x0001 << nFmlSize;
+     pStrm->CopyToStream( aMemStrm, nFmlSize );
++	if (nFmlSize == 0xFCFF)
++		return;
+     XclImpStream aFmlaStrm( aMemStrm, GetRoot() );
+ 	aFmlaStrm.StartNextRecord();
+     XclImpChTrFmlConverter aFmlConv( GetRoot(), *this );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-hsqldb16.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-hsqldb16.diff
@@ -0,0 +1,1326 @@
+? hsqldb/unxlngx6.pro
+Index: hsqldb/patches/accumulated_patches.patch
+===================================================================
+RCS file: /cvs/external/hsqldb/patches/accumulated_patches.patch,v
+retrieving revision 1.1.6.2
+diff -u -p -r1.1.6.2 accumulated_patches.patch
+--- hsqldb/patches/accumulated_patches.patch	18 Jan 2008 12:52:49 -0000	1.1.6.2
++++ hsqldb/patches/accumulated_patches.patch	6 Mar 2008 15:30:01 -0000
+@@ -1,5 +1,1271 @@
++*** misc/hsqldb/build/build.xml	Mon Oct 22 16:17:31 2007
++--- misc/build/hsqldb/build/build.xml	Thu Mar  6 13:46:24 2008
++***************
++*** 97,104 ****
++        <available classname="javax.net.ssl.SSLSession" property="ant.java.hasjsse"/>
++        <echo message="ant.java.hasjsse=${ant.java.hasjsse}" />
++     </target>
++  
++!    <target name="-javaversion4">
++        <available classname="java.nio.Buffer" property="ant.java.iscjava14"/>
++        <available classname="java.nio.Buffer" property="ant.java.iscjavamodern"/>
++        <available classname="com.jamonapi.MonitorFactory" property="jamon"/>
++--- 97,108 ----
++        <available classname="javax.net.ssl.SSLSession" property="ant.java.hasjsse"/>
++        <echo message="ant.java.hasjsse=${ant.java.hasjsse}" />
++     </target>
+++    
+++    <target name="-javaversion6">
+++       <available classname="java.sql.NClob" property="ant.java.iscjava16"/>
+++    </target>
++  
++!    <target name="-javaversion4" depends="-javaversion6" unless="ant.java.iscjava16">
++        <available classname="java.nio.Buffer" property="ant.java.iscjava14"/>
++        <available classname="java.nio.Buffer" property="ant.java.iscjavamodern"/>
++        <available classname="com.jamonapi.MonitorFactory" property="jamon"/>
++***************
++*** 131,137 ****
++     </target>
++  
++      <target name="codeswitcher" depends="-prepare"
++!             description="uses +-JDBC2 +-JDBC2 +-JAVA2">
++        <javac destdir="classes">
++           <src path="${src}"/>
++           <include name="org/hsqldb/util/CodeSwitcher.java"/>
++--- 135,141 ----
++     </target>
++  
++      <target name="codeswitcher" depends="-prepare"
++!             description="uses +-JDBC2 +-JDBC2 +-JAVA2 +-JDBC4">
++        <javac destdir="classes">
++           <src path="${src}"/>
++           <include name="org/hsqldb/util/CodeSwitcher.java"/>
++***************
++*** 217,223 ****
++                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
++                      ${src}/org/hsqldb/lib/SimpleLog.java
++                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
++!                     ${src}/org/hsqldb/HsqlDateTime.java -JAVA2 -JDBC3"/>
++         </java>
++         <available classname="java.util.Vector" property="noswing"/>
++      </target>
++--- 221,227 ----
++                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
++                      ${src}/org/hsqldb/lib/SimpleLog.java
++                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
++!                     ${src}/org/hsqldb/HsqlDateTime.java -JAVA2 -JDBC3 -JDBC4"/>
++         </java>
++         <available classname="java.util.Vector" property="noswing"/>
++      </target>
++***************
++*** 234,240 ****
++                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
++                      ${src}/org/hsqldb/lib/SimpleLog.java
++                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
++!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 -JDBC3"/>
++         </java>
++      </target>
++  
++--- 238,244 ----
++                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
++                      ${src}/org/hsqldb/lib/SimpleLog.java
++                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
++!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 -JDBC3 -JDBC4"/>
++         </java>
++      </target>
++  
++***************
++*** 248,260 ****
++                      ${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java
++                      ${src}/org/hsqldb/jdbc/jdbcResultSet.java
++                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
++                      ${src}/org/hsqldb/lib/SimpleLog.java
++                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
++!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 +JDBC3"/>
++         </java>
++      </target>
++  
++!     <target name="store" depends="switchtojdk11,switchtojdk12,switchtojdk14"
++              description="compiles the /store folder">
++        <javac srcdir="${src}"
++               destdir="classes"
++--- 252,284 ----
++                      ${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java
++                      ${src}/org/hsqldb/jdbc/jdbcResultSet.java
++                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
+++                     ${src}/org/hsqldb/jdbc/jdbcBlob.java
+++                     ${src}/org/hsqldb/jdbc/jdbcDataSource.java
+++                     ${src}/org/hsqldb/jdbc/jdbcParameterMetaData.java
+++                     ${src}/org/hsqldb/jdbc/jdbcResultSetMetaData.java
++                      ${src}/org/hsqldb/lib/SimpleLog.java
++                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
++!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 +JDBC3 -JDBC4"/>
++!        </java>
++!     </target>
++!     
++!     <target name="switchtojdk16" depends="switches"
++!             description="self explanatory" if="ant.java.iscjava16">
++!       <java classname="org.hsqldb.util.CodeSwitcher" classpath="classes" >
++!          <arg line="${src}/org/hsqldb/jdbc/jdbcBlob.java
++! 					${src}/org/hsqldb/jdbc/jdbcCallableStatement.java
++!                     ${src}/org/hsqldb/jdbc/jdbcConnection.java
++!                     ${src}/org/hsqldb/jdbc/jdbcDatabaseMetaData.java
++!                     ${src}/org/hsqldb/jdbc/jdbcDataSource.java
++!                     ${src}/org/hsqldb/jdbc/jdbcParameterMetaData.java
++!                     ${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java
++!                     ${src}/org/hsqldb/jdbc/jdbcResultSet.java
++!                     ${src}/org/hsqldb/jdbc/jdbcResultSetMetaData.java
++!                     ${src}/org/hsqldb/jdbc/jdbcStatement.java +JAVA2 +JDBC3 +JDBC4"/>
++         </java>
++      </target>
++  
++!     <target name="store" depends="switchtojdk11,switchtojdk12,switchtojdk14,switchtojdk16"
++              description="compiles the /store folder">
++        <javac srcdir="${src}"
++               destdir="classes"
++Files misc/hsqldb/lib/hsqldb.jar and misc/build/hsqldb/lib/hsqldb.jar differ
++*** misc/hsqldb/src/org/hsqldb/View.java	Sun Jul 22 16:34:18 2007
++--- misc/build/hsqldb/src/org/hsqldb/View.java	Thu Mar  6 13:37:53 2008
++***************
++*** 218,226 ****
++                  continue;
++              }
++  
++!             expandedStatement.replace(pos,
++!                                       expandedStatement.indexOf("*", pos) + 1,
++!                                       colList);
++          }
++  
++          statement = expandedStatement.toString();
++--- 218,228 ----
++                  continue;
++              }
++  
++!             int foundPos = expandedStatement.indexOf("*", pos);
++!             if ( foundPos != -1 )
++!                 expandedStatement.replace(pos,
++!                                           foundPos + 1,
++!                                           colList);
++          }
++  
++          statement = expandedStatement.toString();
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcBlob.java	Thu Feb 16 03:25:51 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcBlob.java	Thu Mar  6 13:37:53 2008
++***************
++*** 460,465 ****
++--- 460,478 ----
++  
++          data = newData;
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public void free() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public InputStream getBinaryStream(long pos, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  
++  //    public static void main(String[] args) throws Exception {
++  //
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java	Sun Jan 29 13:58:58 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java	Thu Mar  6 13:37:53 2008
++***************
++*** 31,39 ****
++--- 31,48 ----
++  
++  package org.hsqldb.jdbc;
++  
+++ import java.io.InputStream;
+++ import java.io.Reader;
++  import java.math.BigDecimal;
++  import java.sql.CallableStatement;
++  import java.sql.Date;
+++ //#ifdef JDBC4
+++ /*
+++ import java.sql.NClob;
+++ import java.sql.RowId;
+++ import java.sql.SQLXML;
+++ */
+++ //#endif JDBC4
++  import java.sql.Time;
++  import java.sql.Timestamp;
++  import java.sql.SQLException;
++***************
++*** 3085,3090 ****
++      public java.net.URL getURL(String parameterName) throws SQLException {
++          return getURL(findParameterIndex(parameterName));
++      }
++- 
++  //#endif JDBC3
++  }
++--- 3094,3371 ----
++      public java.net.URL getURL(String parameterName) throws SQLException {
++          return getURL(findParameterIndex(parameterName));
++      }
++  //#endif JDBC3
+++ //#ifdef JDBC4
+++ /*
+++     public void setPoolable(boolean poolable) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isPoolable() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setRowId(int parameterIndex, RowId x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNString(int parameterIndex, String value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(int parameterIndex, NClob value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(int parameterIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(int parameterIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public RowId getRowId(int parameterIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public RowId getRowId(String parameterName) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setRowId(String parameterName, RowId x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNString(String parameterName, String value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNCharacterStream(String parameterName, Reader value, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(String parameterName, NClob value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(String parameterName, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(String parameterName, InputStream inputStream, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(String parameterName, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public NClob getNClob(int parameterIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public NClob getNClob(String parameterName) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public SQLXML getSQLXML(int parameterIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public SQLXML getSQLXML(String parameterName) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public String getNString(int parameterIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public String getNString(String parameterName) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getNCharacterStream(int parameterIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getNCharacterStream(String parameterName) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getCharacterStream(int parameterIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getCharacterStream(String parameterName) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(String parameterName, Blob x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(String parameterName, Clob x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setAsciiStream(String parameterName, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBinaryStream(String parameterName, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setCharacterStream(String parameterName, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setAsciiStream(String parameterName, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBinaryStream(String parameterName, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setCharacterStream(String parameterName, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNCharacterStream(String parameterName, Reader value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(String parameterName, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(String parameterName, InputStream inputStream) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(String parameterName, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcClob.java	Thu Feb 16 03:27:44 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcClob.java	Thu Mar  6 13:37:53 2008
++***************
++*** 31,36 ****
++--- 31,37 ----
++  
++  package org.hsqldb.jdbc;
++  
+++ import java.io.Reader;
++  import java.io.StringReader;
++  import java.sql.Clob;
++  import java.sql.SQLException;
++***************
++*** 461,464 ****
++--- 462,476 ----
++              data = new String(ldata.substring(0, (int) chars));
++          }
++      }
+++ //#ifdef JDBC4
+++     public void free() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getCharacterStream(long pos, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java	Tue Aug 28 14:26:44 2007
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java	Thu Mar  6 13:37:53 2008
++***************
++*** 31,39 ****
++--- 31,49 ----
++  
++  package org.hsqldb.jdbc;
++  
+++ import java.sql.Array;
+++ import java.sql.Blob;
++  import java.sql.CallableStatement;
+++ import java.sql.Clob;
++  import java.sql.Connection;
++  import java.sql.DatabaseMetaData;
+++ //#ifdef JDBC4
+++ /*
+++ import java.sql.NClob;
+++ import java.sql.SQLClientInfoException;
+++ import java.sql.SQLXML;
+++ */
+++ //#endif JDBC4
++  import java.sql.PreparedStatement;
++  import java.sql.SQLException;
++  import java.sql.SQLWarning;
++***************
++*** 44,54 ****
++--- 54,66 ----
++  
++  //#endif JDBC3
++  //#ifdef JAVA2
+++ import java.sql.Struct;
++  import java.util.Map;
++  
++  //#endif JAVA2
++  import java.util.Locale;
++  
+++ import java.util.Properties;
++  import org.hsqldb.DatabaseManager;
++  import org.hsqldb.DatabaseURL;
++  import org.hsqldb.HSQLClientConnection;
++***************
++*** 2704,2707 ****
++--- 2716,2787 ----
++  
++          return i;
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public Clob createClob() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Blob createBlob() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public NClob createNClob() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public SQLXML createSQLXML() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isValid(int timeout) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClientInfo(String name, String value) throws SQLClientInfoException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClientInfo(Properties properties) throws SQLClientInfoException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public String getClientInfo(String name) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Properties getClientInfo() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Array createArrayOf(String typeName, Object[] elements) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Struct createStruct(String typeName, Object[] attributes) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java	Sun Oct 23 20:26:22 2005
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java	Thu Mar  6 13:37:53 2008
++***************
++*** 297,300 ****
++--- 297,313 ----
++      public void setUser(String user) {
++          this.user = user;
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	Fri Oct 13 17:36:27 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	Thu Mar  6 13:37:53 2008
++***************
++*** 35,41 ****
++  import java.sql.DatabaseMetaData;
++  import java.sql.ResultSet;
++  import java.sql.SQLException;
++! 
++  import org.hsqldb.Column;
++  import org.hsqldb.Library;
++  import org.hsqldb.Trace;
++--- 35,45 ----
++  import java.sql.DatabaseMetaData;
++  import java.sql.ResultSet;
++  import java.sql.SQLException;
++! //#ifdef JDBC4
++! /*
++! import java.sql.RowIdLifetime;
++! */
++! //#endif JDBC4
++  import org.hsqldb.Column;
++  import org.hsqldb.Library;
++  import org.hsqldb.Trace;
++***************
++*** 5643,5646 ****
++--- 5647,5700 ----
++  
++          return schemaName;
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public RowIdLifetime getRowIdLifetime() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public ResultSet getSchemas(String catalog, String schemaPattern) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 	public boolean autoCommitFailureClosesAllResultSets() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public ResultSet getClientInfoProperties() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
+++ //#ifdef JDBC4
+++ /*
+++     public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public ResultSet getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcParameterMetaData.java	Sun Oct 23 20:26:22 2005
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcParameterMetaData.java	Thu Mar  6 13:37:53 2008
++***************
++*** 381,384 ****
++--- 381,397 ----
++  
++          return sb.toString();
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcPreparedStatement.java	Sat Sep 23 01:37:27 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcPreparedStatement.java	Thu Mar  6 13:37:53 2008
++***************
++*** 32,40 ****
++--- 32,49 ----
++  package org.hsqldb.jdbc;
++  
++  import java.io.IOException;
+++ import java.io.InputStream;
+++ import java.io.Reader;
++  import java.io.Serializable;
++  import java.math.BigDecimal;
++  import java.sql.Date;
+++ //#ifdef JDBC4
+++ /*
+++ import java.sql.NClob;
+++ import java.sql.RowId;
+++ import java.sql.SQLXML;
+++ */
+++ //#endif JDBC4
++  import java.sql.PreparedStatement;
++  import java.sql.ResultSet;
++  import java.sql.ResultSetMetaData;
++***************
++*** 2279,2282 ****
++--- 2288,2404 ----
++  
++          return sb.toString();
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public void setPoolable(boolean poolable) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isPoolable() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setRowId(int parameterIndex, RowId x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNString(int parameterIndex, String value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(int parameterIndex, NClob value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setClob(int parameterIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void setNClob(int parameterIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java	Sat Sep 23 01:29:39 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java	Thu Mar  6 13:37:53 2008
++***************
++*** 67,77 ****
++--- 67,86 ----
++  package org.hsqldb.jdbc;
++  
++  import java.io.ByteArrayInputStream;
+++ import java.io.InputStream;
+++ import java.io.Reader;
++  import java.io.StringReader;
++  import java.math.BigDecimal;
++  import java.sql.Date;
++  import java.sql.ResultSet;
++  import java.sql.ResultSetMetaData;
+++ //#ifdef JDBC4
+++ /*
+++ import java.sql.RowId;
+++ import java.sql.NClob;
+++ import java.sql.SQLXML;
+++ */
+++ //#endif JDBC4
++  import java.sql.SQLException;
++  import java.sql.SQLWarning;
++  import java.sql.Statement;
++***************
++*** 5049,5052 ****
++--- 5058,5314 ----
++          return rResult == null ? false
++                                 : true;
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public RowId getRowId(int columnIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public RowId getRowId(String columnLabel) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateRowId(int columnIndex, RowId x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateRowId(String columnLabel, RowId x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public int getHoldability() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isClosed() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNString(int columnIndex, String nString) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNString(String columnLabel, String nString) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNClob(int columnIndex, NClob nClob) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNClob(String columnLabel, NClob nClob) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public NClob getNClob(int columnIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public NClob getNClob(String columnLabel) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public SQLXML getSQLXML(int columnIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public SQLXML getSQLXML(String columnLabel) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public String getNString(int columnIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public String getNString(String columnLabel) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getNCharacterStream(int columnIndex) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public Reader getNCharacterStream(String columnLabel) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateClob(int columnIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateClob(String columnLabel, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateCharacterStream(int columnIndex, Reader x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateClob(int columnIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateClob(String columnLabel, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNClob(int columnIndex, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public void updateNClob(String columnLabel, Reader reader) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java	Sat Sep 23 01:38:15 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java	Thu Mar  6 13:37:53 2008
++***************
++*** 1144,1147 ****
++--- 1144,1160 ----
++                                      String.valueOf(column));
++          }
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
++*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java	Sat Sep 23 01:40:01 2006
++--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java	Thu Mar  6 13:37:53 2008
++***************
++*** 1532,1538 ****
++      /**
++       * Retrieves whether this statement is closed.
++       */
++!     synchronized boolean isClosed() {
++          return isClosed;
++      }
++  
++--- 1532,1551 ----
++      /**
++       * Retrieves whether this statement is closed.
++       */
++! //#ifdef JDBC4
++! /*
++!     public
++! */
++! //#else
++!     synchronized 
++! //#endif JDBC4
++!             boolean isClosed() 
++! //#ifdef JDBC4
++! /*
++!             throws SQLException
++! */
++! //#endif JDBC4
++!     {
++          return isClosed;
++      }
++  
++***************
++*** 1579,1582 ****
++--- 1592,1618 ----
++              throw Util.sqlException(e);
++          }
++      }
+++ //#ifdef JDBC4
+++ /*
+++     public void setPoolable(boolean poolable) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isPoolable() throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public <T> T unwrap(Class<T> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ 
+++     public boolean isWrapperFor(Class<?> iface) throws SQLException
+++     {
+++         throw new UnsupportedOperationException("Not supported yet.");
+++     }
+++ */
+++ //#endif JDBC4
++  }
+ *** misc/hsqldb/src/org/hsqldb/persist/DataFileCache.java	Sat Oct  6 13:09:49 2007
+---- misc/build/hsqldb/src/org/hsqldb/persist/DataFileCache.java	Tue Dec  4 10:16:41 2007
++--- misc/build/hsqldb/src/org/hsqldb/persist/DataFileCache.java	Thu Mar  6 13:37:53 2008
+ ***************
+ *** 244,255 ****
+               } else {
+@@ -30,28 +1296,22 @@
+               }
+   
+               initBuffers();
+-*** misc/hsqldb/src/org/hsqldb/View.java	2007-07-22 16:34:18.000000000 +0200
+---- misc/build/hsqldb/src/org/hsqldb/View.java	2008-01-08 07:57:29.375000000 +0100
++*** misc/hsqldb/src/org/hsqldb/util/CodeSwitcher.java	Mon Jul 17 00:29:35 2006
++--- misc/build/hsqldb/src/org/hsqldb/util/CodeSwitcher.java	Thu Mar  6 13:37:53 2008
+ ***************
+-*** 218,226 ****
+-                  continue;
+-              }
+-  
+-!             expandedStatement.replace(pos,
+-!                                       expandedStatement.indexOf("*", pos) + 1,
+-!                                       colList);
+-          }
+-  
+-          statement = expandedStatement.toString();
+---- 218,228 ----
+-                  continue;
+-              }
++*** 341,347 ****
++                          }
++                      } else if (line.startsWith("//#endif")) {
++                          if (state == 0) {
++!                             printError("'#endif' without '#ifdef'");
+   
+-!             int foundPos = expandedStatement.indexOf("*", pos);
+-!             if ( foundPos != -1 )
+-!                 expandedStatement.replace(pos,
+-!                                           foundPos + 1,
+-!                                           colList);
+-          }
++                              return false;
++                          }
++--- 341,347 ----
++                          }
++                      } else if (line.startsWith("//#endif")) {
++                          if (state == 0) {
++!                             printError("'#endif' without '#ifdef' LineNo: " + i);
+   
+-          statement = expandedStatement.toString();
++                              return false;
++                          }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx-check-real-help-path.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx-check-real-help-path.diff
@@ -0,0 +1,59 @@
+--- sfx2/source/appl/sfxhelp.cxx.old	2007-07-06 12:16:30.000000000 +0200
++++ sfx2/source/appl/sfxhelp.cxx	2007-08-28 21:57:04.000000000 +0200
+@@ -105,6 +105,9 @@
+ #ifndef _UTL_CONFIGMGR_HXX_
+ #include <unotools/configmgr.hxx>
+ #endif
++#ifndef _UNOTOOLS_LOCALFILEHELPER_HXX
++#include <unotools/localfilehelper.hxx>
++#endif
+ #ifndef _UCBHELPER_CONTENT_HXX
+ #include <ucbhelper/content.hxx>
+ #endif
+@@ -185,13 +188,13 @@ rtl::OUString HelpLocaleString()
+ 		bool bOk = (aLocale >>= aLocaleStr);
+ 		if ( bOk )
+ 		{
+-			rtl::OUString aBaseInstallPath;
+-			// utl::Bootstrap::PathStatus aBaseLocateResult =
+-			utl::Bootstrap::locateBaseInstallation(aBaseInstallPath);
+-			static const char *szHelpPath = "/help/";
++			String sBaseHelpPathString;
++			::utl::LocalFileHelper::ConvertPhysicalNameToURL( SvtPathOptions().GetHelpPath(), sBaseHelpPathString );
++
++			rtl::OUString sBaseHelpPath( sBaseHelpPathString );
++			sBaseHelpPath += rtl::OUString::createFromAscii("/");
+ 
+-			rtl::OUString sHelpPath = aBaseInstallPath +
+-				rtl::OUString::createFromAscii(szHelpPath) + aLocaleStr;
++			rtl::OUString sHelpPath = sBaseHelpPath + aLocaleStr;
+ 			osl::DirectoryItem aDirItem;
+ 
+ 			if (!osl::DirectoryItem::get(sHelpPath, aDirItem) == osl::FileBase::E_None)
+@@ -202,9 +205,8 @@ rtl::OUString HelpLocaleString()
+ 				if (nSepPos != STRING_NOTFOUND)
+ 				{
+ 					bOk = true;
+-        			sLang = sLang.Copy( 0, nSepPos );
+-					sHelpPath = aBaseInstallPath +
+-						rtl::OUString::createFromAscii(szHelpPath) + sLang;
++        				sLang = sLang.Copy( 0, nSepPos );
++					sHelpPath = sBaseHelpPath + sLang;
+ 					if (!osl::DirectoryItem::get(sHelpPath, aDirItem) == osl::FileBase::E_None)
+ 						bOk = false;
+ 				}
+--- svtools/source/config/pathoptions.cxx.old	2007-06-27 23:15:56.000000000 +0200
++++ svtools/source/config/pathoptions.cxx	2007-08-29 18:11:12.000000000 +0200
+@@ -348,7 +348,11 @@ const String& SvtPathOptions_Impl::GetPa
+ 		{
+             // These office paths have to be converted to system pathes
+             utl::LocalFileHelper::ConvertURLToPhysicalName( aPathValue, aResult );
+-            aPathValue = aResult;
++            // FIXME: The initial value (not modified by SetPath) is just a path, so the URL-conversion fails.
++            //        The best solution is to fix the module xmlhelp to accept the URL. Then we could remove
++            //        all these ugly conversions.
++            if ( aResult.Len() != 0 )
++        	    aPathValue = aResult;
+ 		}
+ 
+ 		m_aPathArray[ ePath ] = aPathValue;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/toolbars_sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/toolbars_sw.diff
@@ -0,0 +1,810 @@
+diff -Naur sw.old/uiconfig/sglobal/toolbar/drawbar.xml sw/uiconfig/sglobal/toolbar/drawbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/drawbar.xml	2005-03-21 12:20:19.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/drawbar.xml	2008-04-10 07:04:12.000000000 +0200
+@@ -6,15 +6,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+  <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+  <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+- <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
++ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="10395"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="10397"/>
+  <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+- <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+- <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+- <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
++ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="10114"/>
++ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="10112"/>
++ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="10115"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+- <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
++ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:helpid="10465"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+  <toolbar:toolbarseparator/>
+diff -Naur sw.old/uiconfig/sglobal/toolbar/drawingobjectbar.xml sw/uiconfig/sglobal/toolbar/drawingobjectbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/drawingobjectbar.xml	2005-03-21 12:20:33.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/drawingobjectbar.xml	2008-04-10 07:14:16.000000000 +0200
+@@ -15,9 +15,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+diff -Naur sw.old/uiconfig/sglobal/toolbar/drawtextobjectbar.xml sw/uiconfig/sglobal/toolbar/drawtextobjectbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/drawtextobjectbar.xml	2005-03-21 12:20:51.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/drawtextobjectbar.xml	2008-04-10 07:20:41.000000000 +0200
+@@ -20,7 +20,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/sglobal/toolbar/frameobjectbar.xml sw/uiconfig/sglobal/toolbar/frameobjectbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/frameobjectbar.xml	2005-03-21 12:22:02.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/frameobjectbar.xml	2008-04-10 07:27:42.000000000 +0200
+@@ -5,9 +5,9 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/sglobal/toolbar/insertbar.xml sw/uiconfig/sglobal/toolbar/insertbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/insertbar.xml	2007-11-21 14:58:01.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/insertbar.xml	2008-04-10 07:52:39.000000000 +0200
+@@ -4,13 +4,13 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:visible="false" toolbar:helpid="helpid:5563"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertReferenceField" toolbar:visible="false" toolbar:helpid="20313"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertReferenceField" toolbar:helpid="20313"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+  <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:visible="false" toolbar:helpid="helpid:5561"  />
+- <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:visible="false" toolbar:helpid="helpid:5672"  />
+- <toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:visible="false" toolbar:helpid="helpid:5673"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+diff -Naur sw.old/uiconfig/sglobal/toolbar/tableobjectbar.xml sw/uiconfig/sglobal/toolbar/tableobjectbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/tableobjectbar.xml	2005-10-19 10:34:56.000000000 +0200
++++ sw/uiconfig/sglobal/toolbar/tableobjectbar.xml	2008-04-10 09:19:42.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+  <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+diff -Naur sw.old/uiconfig/sglobal/toolbar/textobjectbar.xml sw/uiconfig/sglobal/toolbar/textobjectbar.xml
+--- sw.old/uiconfig/sglobal/toolbar/textobjectbar.xml	2005-03-21 12:24:55.000000000 +0100
++++ sw/uiconfig/sglobal/toolbar/textobjectbar.xml	2008-04-10 09:09:17.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+  <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+  <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+- <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
++ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+@@ -23,16 +23,16 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+  <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+  <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+- <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" />
++ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489" toolbar:style="dropdown" />
+diff -Naur sw.old/uiconfig/sweb/toolbar/drawingobjectbar.xml sw/uiconfig/sweb/toolbar/drawingobjectbar.xml
+--- sw.old/uiconfig/sweb/toolbar/drawingobjectbar.xml	2004-11-26 21:03:52.000000000 +0100
++++ sw/uiconfig/sweb/toolbar/drawingobjectbar.xml	2008-04-10 07:14:52.000000000 +0200
+@@ -31,9 +31,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+  <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sw.old/uiconfig/sweb/toolbar/drawtextobjectbar.xml sw/uiconfig/sweb/toolbar/drawtextobjectbar.xml
+--- sw.old/uiconfig/sweb/toolbar/drawtextobjectbar.xml	2005-03-21 12:26:33.000000000 +0100
++++ sw/uiconfig/sweb/toolbar/drawtextobjectbar.xml	2008-04-10 07:20:51.000000000 +0200
+@@ -20,7 +20,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/sweb/toolbar/frameobjectbar.xml sw/uiconfig/sweb/toolbar/frameobjectbar.xml
+--- sw.old/uiconfig/sweb/toolbar/frameobjectbar.xml	2005-03-21 12:27:57.000000000 +0100
++++ sw/uiconfig/sweb/toolbar/frameobjectbar.xml	2008-04-10 07:27:40.000000000 +0200
+@@ -5,9 +5,9 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473"  toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/sweb/toolbar/insertbar.xml sw/uiconfig/sweb/toolbar/insertbar.xml
+--- sw.old/uiconfig/sweb/toolbar/insertbar.xml	2007-11-21 14:59:47.000000000 +0100
++++ sw/uiconfig/sweb/toolbar/insertbar.xml	2008-04-10 07:52:57.000000000 +0200
+@@ -9,7 +9,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:visible="false" toolbar:helpid="5532"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+  <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+@@ -18,7 +18,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+diff -Naur sw.old/uiconfig/sweb/toolbar/tableobjectbar.xml sw/uiconfig/sweb/toolbar/tableobjectbar.xml
+--- sw.old/uiconfig/sweb/toolbar/tableobjectbar.xml	2005-10-19 10:35:11.000000000 +0200
++++ sw/uiconfig/sweb/toolbar/tableobjectbar.xml	2008-04-10 09:19:28.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+  <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+diff -Naur sw.old/uiconfig/sweb/toolbar/textobjectbar.xml sw/uiconfig/sweb/toolbar/textobjectbar.xml
+--- sw.old/uiconfig/sweb/toolbar/textobjectbar.xml	2007-01-23 09:34:25.000000000 +0100
++++ sw/uiconfig/sweb/toolbar/textobjectbar.xml	2008-04-10 09:09:32.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="10009"/>
+  <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="10008"/>
+  <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="10014"/>
+- <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:visible="false" toolbar:helpid="20411"/>
+- <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:visible="false" toolbar:helpid="20412"/>
++ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="20411"/>
++ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="20412"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="10028"/>
+  <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="10030"/>
+diff -Naur sw.old/uiconfig/swform/toolbar/drawbar.xml sw/uiconfig/swform/toolbar/drawbar.xml
+--- sw.old/uiconfig/swform/toolbar/drawbar.xml	2007-04-16 17:43:47.000000000 +0200
++++ sw/uiconfig/swform/toolbar/drawbar.xml	2008-04-10 07:04:12.000000000 +0200
+@@ -6,15 +6,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+  <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+  <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+- <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
++ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="10395"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="10397"/>
+  <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+- <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+- <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+- <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
++ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="10114"/>
++ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="10112"/>
++ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="10115"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+- <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
++ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:helpid="10465"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+  <toolbar:toolbarseparator/>
+diff -Naur sw.old/uiconfig/swform/toolbar/drawingobjectbar.xml sw/uiconfig/swform/toolbar/drawingobjectbar.xml
+--- sw.old/uiconfig/swform/toolbar/drawingobjectbar.xml	2007-04-16 17:43:58.000000000 +0200
++++ sw/uiconfig/swform/toolbar/drawingobjectbar.xml	2008-04-10 07:15:16.000000000 +0200
+@@ -15,9 +15,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+diff -Naur sw.old/uiconfig/swform/toolbar/drawtextobjectbar.xml sw/uiconfig/swform/toolbar/drawtextobjectbar.xml
+--- sw.old/uiconfig/swform/toolbar/drawtextobjectbar.xml	2007-04-16 17:44:09.000000000 +0200
++++ sw/uiconfig/swform/toolbar/drawtextobjectbar.xml	2008-04-10 07:21:00.000000000 +0200
+@@ -20,7 +20,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swform/toolbar/frameobjectbar.xml sw/uiconfig/swform/toolbar/frameobjectbar.xml
+--- sw.old/uiconfig/swform/toolbar/frameobjectbar.xml	2007-04-16 17:46:41.000000000 +0200
++++ sw/uiconfig/swform/toolbar/frameobjectbar.xml	2008-04-10 07:27:50.000000000 +0200
+@@ -5,9 +5,9 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473"  toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swform/toolbar/insertbar.xml sw/uiconfig/swform/toolbar/insertbar.xml
+--- sw.old/uiconfig/swform/toolbar/insertbar.xml	2007-04-16 17:47:28.000000000 +0200
++++ sw/uiconfig/swform/toolbar/insertbar.xml	2008-04-10 07:53:44.000000000 +0200
+@@ -18,8 +18,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:visible="false" toolbar:helpid="52823"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:helpid="52823"/>
+  <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+diff -Naur sw.old/uiconfig/swform/toolbar/tableobjectbar.xml sw/uiconfig/swform/toolbar/tableobjectbar.xml
+--- sw.old/uiconfig/swform/toolbar/tableobjectbar.xml	2007-04-16 17:50:05.000000000 +0200
++++ sw/uiconfig/swform/toolbar/tableobjectbar.xml	2008-04-10 09:12:57.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503"  />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504"  />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595"  />
+  <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459"  />
+diff -Naur sw.old/uiconfig/swform/toolbar/textobjectbar.xml sw/uiconfig/swform/toolbar/textobjectbar.xml
+--- sw.old/uiconfig/swform/toolbar/textobjectbar.xml	2007-04-16 17:50:17.000000000 +0200
++++ sw/uiconfig/swform/toolbar/textobjectbar.xml	2008-04-10 09:10:13.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+  <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+  <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+- <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
++ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030"  toolbar:style="radio" />
+@@ -23,16 +23,16 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+  <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+  <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+- <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" />
++ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489"  toolbar:style="dropdown" />
+diff -Naur sw.old/uiconfig/swreport/toolbar/drawbar.xml sw/uiconfig/swreport/toolbar/drawbar.xml
+--- sw.old/uiconfig/swreport/toolbar/drawbar.xml	2007-04-16 17:54:11.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/drawbar.xml	2008-04-10 07:04:12.000000000 +0200
+@@ -6,15 +6,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+  <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+  <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+- <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
++ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="10395"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="10397"/>
+  <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+- <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+- <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+- <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
++ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="10114"/>
++ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="10112"/>
++ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="10115"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+- <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
++ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:helpid="10465"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+  <toolbar:toolbarseparator/>
+diff -Naur sw.old/uiconfig/swreport/toolbar/drawingobjectbar.xml sw/uiconfig/swreport/toolbar/drawingobjectbar.xml
+--- sw.old/uiconfig/swreport/toolbar/drawingobjectbar.xml	2007-04-16 17:54:23.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/drawingobjectbar.xml	2008-04-10 07:15:33.000000000 +0200
+@@ -15,9 +15,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+diff -Naur sw.old/uiconfig/swreport/toolbar/drawtextobjectbar.xml sw/uiconfig/swreport/toolbar/drawtextobjectbar.xml
+--- sw.old/uiconfig/swreport/toolbar/drawtextobjectbar.xml	2007-04-16 17:54:48.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/drawtextobjectbar.xml	2008-04-10 07:21:07.000000000 +0200
+@@ -20,7 +20,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swreport/toolbar/frameobjectbar.xml sw/uiconfig/swreport/toolbar/frameobjectbar.xml
+--- sw.old/uiconfig/swreport/toolbar/frameobjectbar.xml	2007-04-16 17:57:33.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/frameobjectbar.xml	2008-04-10 07:28:14.000000000 +0200
+@@ -5,9 +5,9 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473"  toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swreport/toolbar/insertbar.xml sw/uiconfig/swreport/toolbar/insertbar.xml
+--- sw.old/uiconfig/swreport/toolbar/insertbar.xml	2007-04-16 17:58:38.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/insertbar.xml	2008-04-10 07:54:04.000000000 +0200
+@@ -18,8 +18,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:visible="false" toolbar:helpid="52823"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:helpid="52823"/>
+  <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+diff -Naur sw.old/uiconfig/swreport/toolbar/tableobjectbar.xml sw/uiconfig/swreport/toolbar/tableobjectbar.xml
+--- sw.old/uiconfig/swreport/toolbar/tableobjectbar.xml	2007-04-16 18:01:43.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/tableobjectbar.xml	2008-04-10 09:12:32.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503"  />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504"  />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595"  />
+  <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459"  />
+diff -Naur sw.old/uiconfig/swreport/toolbar/textobjectbar.xml sw/uiconfig/swreport/toolbar/textobjectbar.xml
+--- sw.old/uiconfig/swreport/toolbar/textobjectbar.xml	2007-04-16 18:01:54.000000000 +0200
++++ sw/uiconfig/swreport/toolbar/textobjectbar.xml	2008-04-10 09:10:43.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+  <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+  <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+- <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
++ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030"  toolbar:style="radio" />
+@@ -23,16 +23,16 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+  <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+  <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+- <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" />
++ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489"  toolbar:style="dropdown" />
+diff -Naur sw.old/uiconfig/swriter/toolbar/drawbar.xml sw/uiconfig/swriter/toolbar/drawbar.xml
+--- sw.old/uiconfig/swriter/toolbar/drawbar.xml	2005-03-21 12:32:56.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/drawbar.xml	2008-04-10 07:04:12.000000000 +0200
+@@ -6,15 +6,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+  <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+  <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+- <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
++ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="10395"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="10397"/>
+  <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+- <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+- <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+- <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
++ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="10114"/>
++ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="10112"/>
++ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="10115"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+- <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
++ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:helpid="10465"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+  <toolbar:toolbarseparator/>
+diff -Naur sw.old/uiconfig/swriter/toolbar/drawingobjectbar.xml sw/uiconfig/swriter/toolbar/drawingobjectbar.xml
+--- sw.old/uiconfig/swriter/toolbar/drawingobjectbar.xml	2005-03-21 12:33:14.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/drawingobjectbar.xml	2008-04-10 07:15:49.000000000 +0200
+@@ -15,9 +15,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+diff -Naur sw.old/uiconfig/swriter/toolbar/drawtextobjectbar.xml sw/uiconfig/swriter/toolbar/drawtextobjectbar.xml
+--- sw.old/uiconfig/swriter/toolbar/drawtextobjectbar.xml	2005-03-21 12:33:31.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/drawtextobjectbar.xml	2008-04-10 07:21:15.000000000 +0200
+@@ -20,7 +20,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swriter/toolbar/frameobjectbar.xml sw/uiconfig/swriter/toolbar/frameobjectbar.xml
+--- sw.old/uiconfig/swriter/toolbar/frameobjectbar.xml	2005-03-21 12:34:51.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/frameobjectbar.xml	2008-04-10 07:28:22.000000000 +0200
+@@ -5,9 +5,9 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473"  toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swriter/toolbar/insertbar.xml sw/uiconfig/swriter/toolbar/insertbar.xml
+--- sw.old/uiconfig/swriter/toolbar/insertbar.xml	2007-11-21 15:04:43.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/insertbar.xml	2008-04-10 07:54:27.000000000 +0200
+@@ -4,15 +4,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:visible="false" toolbar:helpid="helpid:5563"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertReferenceField" toolbar:visible="false" toolbar:helpid="20313"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertReferenceField" toolbar:helpid="20313"/>
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:visible="false" toolbar:helpid="5532"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+  <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:visible="false" toolbar:helpid="helpid:5561"  />
+- <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:visible="false" toolbar:helpid="helpid:5672"  />
+- <toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:visible="false" toolbar:helpid="helpid:5673"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672"  />
++ <toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+diff -Naur sw.old/uiconfig/swriter/toolbar/tableobjectbar.xml sw/uiconfig/swriter/toolbar/tableobjectbar.xml
+--- sw.old/uiconfig/swriter/toolbar/tableobjectbar.xml	2005-10-19 10:35:24.000000000 +0200
++++ sw/uiconfig/swriter/toolbar/tableobjectbar.xml	2008-04-10 09:12:13.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503"  />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504"  />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595"  />
+  <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459"  />
+diff -Naur sw.old/uiconfig/swriter/toolbar/textobjectbar.xml sw/uiconfig/swriter/toolbar/textobjectbar.xml
+--- sw.old/uiconfig/swriter/toolbar/textobjectbar.xml	2005-03-21 12:37:56.000000000 +0100
++++ sw/uiconfig/swriter/toolbar/textobjectbar.xml	2008-04-10 09:06:20.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+  <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+  <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+- <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
++ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030"  toolbar:style="radio" />
+@@ -23,16 +23,16 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+  <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+  <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+- <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" />
++ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489"  toolbar:style="dropdown" />
+diff -Naur sw.old/uiconfig/swxform/toolbar/drawbar.xml sw/uiconfig/swxform/toolbar/drawbar.xml
+--- sw.old/uiconfig/swxform/toolbar/drawbar.xml	2007-04-16 18:06:56.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/drawbar.xml	2008-04-10 07:04:12.000000000 +0200
+@@ -6,15 +6,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+  <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+  <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+- <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
++ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="10395"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="10397"/>
+  <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+- <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+- <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+- <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
++ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="10114"/>
++ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="10112"/>
++ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="10115"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+- <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
++ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:helpid="10465"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+  <toolbar:toolbarseparator/>
+diff -Naur sw.old/uiconfig/swxform/toolbar/drawingobjectbar.xml sw/uiconfig/swxform/toolbar/drawingobjectbar.xml
+--- sw.old/uiconfig/swxform/toolbar/drawingobjectbar.xml	2007-04-16 18:07:13.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/drawingobjectbar.xml	2008-04-10 07:16:07.000000000 +0200
+@@ -15,9 +15,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164"  />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+diff -Naur sw.old/uiconfig/swxform/toolbar/drawtextobjectbar.xml sw/uiconfig/swxform/toolbar/drawtextobjectbar.xml
+--- sw.old/uiconfig/swxform/toolbar/drawtextobjectbar.xml	2007-04-16 18:07:44.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/drawtextobjectbar.xml	2008-04-10 07:20:09.000000000 +0200
+@@ -20,7 +20,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swxform/toolbar/frameobjectbar.xml sw/uiconfig/swxform/toolbar/frameobjectbar.xml
+--- sw.old/uiconfig/swxform/toolbar/frameobjectbar.xml	2007-04-16 18:10:18.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/frameobjectbar.xml	2008-04-10 07:26:32.000000000 +0200
+@@ -5,9 +5,9 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473"  toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475"  toolbar:style="radio" />
+diff -Naur sw.old/uiconfig/swxform/toolbar/insertbar.xml sw/uiconfig/swxform/toolbar/insertbar.xml
+--- sw.old/uiconfig/swxform/toolbar/insertbar.xml	2007-04-16 18:11:21.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/insertbar.xml	2008-04-10 07:54:41.000000000 +0200
+@@ -18,8 +18,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:visible="false" toolbar:helpid="52823"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
++ <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:helpid="52823"/>
+  <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+diff -Naur sw.old/uiconfig/swxform/toolbar/tableobjectbar.xml sw/uiconfig/swxform/toolbar/tableobjectbar.xml
+--- sw.old/uiconfig/swxform/toolbar/tableobjectbar.xml	2007-04-16 18:14:12.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/tableobjectbar.xml	2008-04-10 09:11:51.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503"  />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504"  />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" />
++ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595"  />
+  <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459"  />
+diff -Naur sw.old/uiconfig/swxform/toolbar/textobjectbar.xml sw/uiconfig/swxform/toolbar/textobjectbar.xml
+--- sw.old/uiconfig/swxform/toolbar/textobjectbar.xml	2007-04-16 18:14:25.000000000 +0200
++++ sw/uiconfig/swxform/toolbar/textobjectbar.xml	2008-04-10 09:06:11.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+  <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+  <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+- <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
++ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030"  toolbar:style="radio" />
+@@ -23,16 +23,16 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950"  toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035"  toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036"  toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+  <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+  <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+- <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" />
++ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489"  toolbar:style="dropdown" />
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-huge-tables-enable.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-huge-tables-enable.diff
@@ -0,0 +1,13 @@
+--- sc/inc/address.hxx.original	2008-05-29 20:39:04.000000000 +0200
++++ sc/inc/address.hxx	2008-06-03 20:44:01.000000000 +0200
+@@ -98,8 +98,8 @@
+ 
+ // The maximum values. Defines are needed for preprocessor checks in
+ // bcaslot.cxx, otherwise type safe constants are preferred.
+-#define MAXROWCOUNT_DEFINE 65536
+-#define MAXCOLCOUNT_DEFINE 256
++#define MAXROWCOUNT_DEFINE 1048576
++#define MAXCOLCOUNT_DEFINE 16384
+ 
+ // Count values
+ const SCROW       MAXROWCOUNT    = MAXROWCOUNT_DEFINE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/hunspell-hashify.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/hunspell-hashify.diff
@@ -0,0 +1,963 @@
+--- lingucomponent/source/spellcheck/hunspell/affentry.cxx	2006-09-16 18:07:56.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/affentry.cxx	2007-08-31 17:28:49.000000000 +0200
+@@ -196,7 +196,7 @@ struct hentry * PfxEntry::check(const ch
+                         ((!needflag) || TESTAFF(he->astr, needflag, he->alen) ||
+                          (contclass && TESTAFF(contclass, needflag, contclasslen))))
+                             return he;
+-                   } while ((he = he->next_homonym)); // check homonyms
++                   } while (he = pmyMgr->lookup(tmpword, he->hash_id)); // next homonym
+ 		}
+                 
+ 		// prefix matched but no root word was found 
+@@ -359,7 +359,7 @@ char * PfxEntry::check_morph(const char 
+                             }
+                             strcat(result, "\n");
+                       }
+-                    } while ((he = he->next_homonym));
++                    } while (he = pmyMgr->lookup(tmpword, he->hash_id)); // next homonym
+ 		}
+ 
+ 		// prefix matched but no root word was found 
+@@ -561,7 +561,7 @@ struct hentry * SfxEntry::check(const ch
+                               ((contclass) && TESTAFF(contclass, needflag, contclasslen)))
+                             )
+                         ) return he;
+-                    } while ((he = he->next_homonym)); // check homonyms
++                    } while (he = pmyMgr->lookup(tmpword, he->hash_id)); // next homonym
+ 
+                 // obsolote stemming code (used only by the 
+                 // experimental SuffixMgr:suggest_pos_stems)
+@@ -736,8 +736,7 @@ struct hentry * SfxEntry::get_next_homon
+ {
+     PfxEntry* ep = (PfxEntry *) ppfx;
+ 
+-    while (he->next_homonym) {
+-        he = he->next_homonym;
++    while (he = pmyMgr->lookup(he->word, he->hash_id)) { // next homonym
+         if ((TESTAFF(he->astr, aflag, he->alen) || (ep && ep->getCont() && TESTAFF(ep->getCont(), aflag, ep->getContLen()))) && 
+                             ((optflags & aeXPRODUCT) == 0 || 
+                             TESTAFF(he->astr, ep->getFlag(), he->alen) ||
+--- lingucomponent/source/spellcheck/hunspell/affixmgr.cxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/affixmgr.cxx	2007-08-31 17:38:04.000000000 +0200
+@@ -1514,7 +1514,7 @@ struct hentry * AffixMgr::compound_check
+                     ((!words && !wordnum && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0)) ||
+                     (words && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0))))
+                   ))) {
+-            rv = rv->next_homonym;
++            rv = lookup(st, rv->hash_id); // next homonym
+         }
+ 
+         if (!rv) {
+@@ -1657,7 +1657,7 @@ struct hentry * AffixMgr::compound_check
+ 			!((compoundflag && !words && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
+ 			  (compoundend && !words && TESTAFF(rv->astr, compoundend, rv->alen)) ||
+                            (numdefcpd && words && defcpd_check(&words, wnum + 1, rv, NULL,1))))) {
+-            rv = rv->next_homonym;
++            rv = lookup(word+i, rv->hash_id); // next homonym
+         }
+ 
+             if (rv && words && words[wnum + 1]) return rv;
+@@ -1896,7 +1896,7 @@ int AffixMgr::compound_check_morph(const
+                     ((!words && !wordnum && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0)) ||
+                     (words && defcpd_check(&words, wnum, rv, (hentry **) &rwords, 0))))
+                   ))) {
+-            rv = rv->next_homonym;
++            rv = lookup(st, rv->hash_id); // next homonym
+         }
+ 
+         if (rv)	 {
+@@ -2064,7 +2064,7 @@ int AffixMgr::compound_check_morph(const
+ 			!((compoundflag && !words && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
+ 			  (compoundend && !words && TESTAFF(rv->astr, compoundend, rv->alen)) ||
+                            (numdefcpd && defcpd_check(&words, wnum + 1, rv, NULL,1))))) {
+-            rv = rv->next_homonym;
++            rv = lookup(word+i, rv->hash_id); // next homonym
+         }
+ 
+             if (rv && words && words[wnum + 1]) {
+@@ -2475,7 +2475,7 @@ char * AffixMgr::suffix_check_twosfx_mor
+                     free(st);
+ 
+                 result3[0] = '\0';
+-#ifdef DEBUG
++#if 0
+                 unsigned short flag = sptr->getFlag();
+                 char flagch[2] = &flag;
+                 if (flag_mode == FLAG_NUM) {
+@@ -2592,7 +2592,7 @@ char * AffixMgr::suffix_check_morph(cons
+                     if (rv->description && ((!rv->astr) || 
+                         !TESTAFF(rv->astr, lemma_present, rv->alen))) strcat(result, rv->word);
+                     if (!complexprefixes && rv->description) strcat(result, rv->description);
+-#ifdef DEBUG
++#if 0
+                 unsigned short flag = sptr->getKey();
+                 char flagch[2] = &flag;
+                 if (flag_mode == FLAG_NUM) {
+@@ -2976,10 +2976,10 @@ FLAG AffixMgr::get_lemma_present()
+ }
+ 
+ // utility method to look up root words in hash table
+-struct hentry * AffixMgr::lookup(const char * word)
++struct hentry * AffixMgr::lookup(const char * word, int from_id)
+ {
+   if (! pHMgr) return NULL;
+-  return pHMgr->lookup(word);
++  return pHMgr->lookup(word, from_id);
+ }
+ 
+ // return the value of suffix
+--- lingucomponent/source/spellcheck/hunspell/affixmgr.hxx	2006-06-20 01:56:13.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/affixmgr.hxx	2007-08-31 17:30:47.000000000 +0200
+@@ -130,7 +130,7 @@ public:
+                               short wordnum, short numsyllable, short maxwordnum, short wnum, hentry ** words,
+                               char hu_mov_rule, char ** result, char * partresult);
+ 
+-  struct hentry *     lookup(const char * word);
++  struct hentry *     lookup(const char * word, int from_id = -1);
+   int                 get_numrep();
+   struct replentry *  get_reptable();
+   int                 get_nummap();
+--- lingucomponent/source/spellcheck/hunspell/hashmgr.cxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/hashmgr.cxx	2007-08-31 17:32:37.000000000 +0200
+@@ -50,6 +50,28 @@
+ #include "hashmgr.hxx"
+ #include "csutil.hxx"
+ 
++#ifdef UNX
++#include <sys/mman.h>
++#include <unistd.h>
++#endif
++#ifdef WNT
++#include <io.h>
++typedef int ssize_t;
++#endif
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <errno.h>
++#include <fcntl.h>
++#ifndef _O_BINARY
++#define _O_BINARY 0
++#endif
++
++#define IS_END(c) ((c) == '\r' || (c) == '\n')
++#define WORD_END_CONDITN(c) ((c) == 0 || (c) == '/')
++
++//Uncomment this to print debug msgs
++//#define HASH_DEBUG
++
+ #ifndef W32
+ #include <unistd.h>
+ using namespace std;
+@@ -68,6 +90,15 @@ HashMgr::HashMgr(const char * tpath, con
+   aliasf = NULL;
+   numaliasm = 0;
+   aliasm = NULL;
++  compat.wlen = 0;
++  compat.alen = 0;
++  compat.word = NULL;
++  compat_word_length = 0;
++  compat.astr = NULL;
++  fd = -1;
++  length = 0;
++  buffer = NULL;
++
+   load_config(apath);  
+   int ec = load_tables(tpath);
+   if (ec) {
+@@ -84,30 +115,23 @@ HashMgr::HashMgr(const char * tpath, con
+ 
+ HashMgr::~HashMgr()
+ {
+-  if (tableptr) {
+-    // now pass through hash table freeing up everything
+-    // go through column by column of the table
+-    for (int i=0; i < tablesize; i++) {
+-      struct hentry * pt = &tableptr[i];
+-      struct hentry * nt = NULL;
+-      if (pt) {
+-        if (pt->astr && !aliasf) free(pt->astr);
+-	if (pt->word) free(pt->word);
+-        if (pt->description && !aliasm) free(pt->description);
+-
+-        pt = pt->next;
+-      }
+-      while(pt) {
+-        nt = pt->next;
+-        if (pt->astr && !aliasf) free(pt->astr);
+-	if (pt->word) free(pt->word);
+-        if (pt->description && !aliasm) free(pt->description);
+-        free(pt);
+-	pt = nt;
+-      }
+-    }
+-    free(tableptr);
++#ifdef UNX
++  if (fd != -1)
++  {
++    if (buffer)
++      munmap (buffer, length);
++    close (fd);
++  }
++  else
++#endif
++  {
++    if (buffer)
++      free (buffer);
+   }
++  free (compat.word);
++
++  buffer = NULL;
++  fd = -1;
+   tablesize = 0;
+ 
+   if (aliasf) {
+@@ -127,231 +151,219 @@ HashMgr::~HashMgr()
+ }
+ 
+ // lookup a root word in the hashtable
++// from_id - for searching of homonyms
+ 
+-struct hentry * HashMgr::lookup(const char *word) const
++struct hentry * HashMgr::lookup(const char *word, int from_id) const
+ {
+-    struct hentry * dp;
+-    if (tableptr) {
+-       dp = &tableptr[hash(word)];
+-       if (dp->word == NULL) return NULL;
+-       for (  ;  dp != NULL;  dp = dp->next) {
+-          if (strcmp(word,dp->word) == 0) return dp;
+-       }
++    const char *hash_str;
++    int hash_id = (from_id < 0)? hash(word): from_id + 1;
++    while ((hash_str = tableptr[hash_id%tablesize]) != NULL)
++    {
++        int i;
++        for (i = 0; (word[i] != '\0' && !IS_END(hash_str[i]) &&
++                    hash_str[i] != '/' && word[i] == hash_str[i]); i++)
++            ;
++        if (word[i] == '\0' && (IS_END(hash_str[i]) || hash_str[i] == '/'))
++            return ((HashMgr*)this)->setup_hentry (hash_str, hash_id);
++        hash_id++;
+     }
++#ifdef HASH_DEBUG
++    fprintf( stderr, "No instance of '%s' hashid 0x%x\n", word, hash(word) );
++#endif
+     return NULL;
+ }
+ 
+ // add a word to the hash table (private)
+ 
+-int HashMgr::add_word(const char * word, int wl, unsigned short * aff, int al, const char * desc)
++struct hentry *HashMgr::setup_hentry(const char *ptr, int hash_id)
+ {
+-    char * st = mystrdup(word);
+-    if (wl && !st) return 1;
+-    if (complexprefixes) {
+-        if (utf8) reverseword_utf(st); else reverseword(st);
+-    }
+-    int i = hash(st);
+-    struct hentry * dp = &tableptr[i];
+-    if (dp->word == NULL) {
+-       dp->wlen = wl;
+-       dp->alen = al;
+-       dp->word = st;
+-       dp->astr = aff;
+-       dp->next = NULL;
+-       dp->next_homonym = NULL;
+-       if (aliasm) {
+-            dp->description = (desc) ? get_aliasm(atoi(desc)) : mystrdup(desc);
+-       } else {
+-            dp->description = mystrdup(desc);
+-            if (desc && !dp->description) return 1;
+-            if (dp->description && complexprefixes) {
+-                if (utf8) reverseword_utf(dp->description); else reverseword(dp->description);
+-            }
+-       }
+-    } else {
+-       struct hentry* hp = (struct hentry *) malloc (sizeof(struct hentry));
+-       if (!hp) return 1;
+-       hp->wlen = wl;
+-       hp->alen = al;
+-       hp->word = st;
+-       hp->astr = aff;
+-       hp->next = NULL;      
+-       hp->next_homonym = NULL;
+-       if (aliasm) {
+-            hp->description = (desc) ? get_aliasm(atoi(desc)) : mystrdup(desc);
+-       } else {
+-            hp->description = mystrdup(desc);
+-            if (desc && !hp->description) return 1;
+-            if (dp->description && complexprefixes) {
+-                if (utf8) reverseword_utf(hp->description); else reverseword(hp->description);
+-            }
+-       }
+-       while (dp->next != NULL) {
+-         if ((!dp->next_homonym) && (strcmp(hp->word, dp->word) == 0)) dp->next_homonym = hp;
+-         dp=dp->next;
+-       }
+-       if ((!dp->next_homonym) && (strcmp(hp->word, dp->word) == 0)) dp->next_homonym = hp;
+-       dp->next = hp;
+-    }
+-    return 0;
+-}     
+-
+-// add a custom dic. word to the hash table (public)
++    int len;
++    int slash = -1;
+ 
+-int HashMgr::put_word(const char * word, int wl, char * aff)
+-{
+-    unsigned short * flags;
+-    int al = 0;
+-    if (aff) {
+-	al = decode_flags(&flags, aff);
+-	flag_qsort(flags, 0, al);
+-    } else {
+-	flags = NULL;
++    for ( len = 0; !IS_END(ptr[len]); len++ )
++    {
++        if ( ptr[len] == '/' )
++            slash = len;
++    }
++
++    if ( len > compat_word_length )
++        compat.word = (char *)realloc (compat.word,
++                (compat_word_length = len + 1) + 1);
++    if ( compat.astr )
++        free( compat.astr );
++    compat.astr = NULL;
++    compat.wlen = len;
++    compat.alen = 0;
++    compat.hash_id = hash_id;
++
++    memcpy(compat.word, ptr, len);
++    compat.word[len] = '\0';
++
++    if ( slash >= 0 )
++    {
++        compat.word[slash] = '\0';
++        compat.wlen = slash;
++
++        if ( slash < len )
++        {
++            compat.alen = decode_flags(&compat.astr, compat.word + slash + 1);
++            flag_qsort(compat.astr, 0, compat.alen);
++        }
+     }
+-    add_word(word, wl, flags, al, NULL);
+-    return 0;
+-}
+ 
+-int HashMgr::put_word_pattern(const char * word, int wl, const char * pattern)
+-{
+-    unsigned short * flags;
+-    struct hentry * dp = lookup(pattern);
+-    if (!dp || !dp->astr) return 1;
+-    flags = (unsigned short *) malloc (dp->alen * sizeof(short));
+-    memcpy((void *) flags, (void *) dp->astr, dp->alen * sizeof(short));
+-    add_word(word, wl, flags, dp->alen, NULL);
+-    return 0;
++#ifdef HASH_DEBUG
++    fprintf( stderr, "Hit '%s' ('%s', %d)\n", compat.word, compat.astr, compat.alen );
++#endif 
++
++    return &compat;
+ }
+ 
+ // walk the hash table entry by entry - null at end
+ struct hentry * HashMgr::walk_hashtable(int &col, struct hentry * hp) const
+ {
+-  //reset to start
+-  if ((col < 0) || (hp == NULL)) {
+-    col = -1;
+-    hp = NULL;
+-  }
+-
+-  if (hp && hp->next != NULL) {
+-    hp = hp->next;
+-  } else {
+-    col++;
+-    hp = (col < tablesize) ? &tableptr[col] : NULL;
+-    // search for next non-blank column entry
+-    while (hp && (hp->word == NULL)) {
+-        col ++;
+-        hp = (col < tablesize) ? &tableptr[col] : NULL;
+-    }
+-    if (col < tablesize) return hp;
+-    hp = NULL;
+-    col = -1;
+-  }
+-  return hp;
++    if (col < 0)
++        col = seek_newline (0);
++    size_t next_line = (size_t)seek_newline(col);
++    if (next_line >= length)
++        return NULL;
++    struct hentry *value = ((HashMgr *)this)->setup_hentry(buffer + col, col);
++    col = (int)next_line;
++    return value;
+ }
+ 
+ // load a munched word list and build a hash table on the fly
+-int HashMgr::load_tables(const char * tpath)
++int HashMgr::slurp( int fd, size_t bytes )
+ {
+-  int wl, al;
+-  char * ap;
+-  char * dp;
+-  unsigned short * flags;
+-
+-  // raw dictionary - munched file
+-  FILE * rawdict = fopen(tpath, "r");
+-  if (rawdict == NULL) return 1;
+-
+-  // first read the first line of file to get hash table size */
+-  char ts[MAXDELEN];
+-  if (! fgets(ts, MAXDELEN-1,rawdict)) return 2;
+-  mychomp(ts);
+-  if ((*ts < '1') || (*ts > '9')) fprintf(stderr, "error - missing word count in dictionary file\n");
+-  tablesize = atoi(ts);
+-  if (!tablesize) return 4; 
+-  tablesize = tablesize + 5 + USERWORD;
+-  if ((tablesize %2) == 0) tablesize++;
+-
+-  // allocate the hash table
+-  tableptr = (struct hentry *) calloc(tablesize, sizeof(struct hentry));
+-  if (! tableptr) return 3;
+-  for (int i=0; i<tablesize; i++) tableptr[i].word = NULL;
+-
+-  // loop through all words on much list and add to hash
+-  // table and create word and affix strings
+-
+-  while (fgets(ts,MAXDELEN-1,rawdict)) {
+-    mychomp(ts);
+-    // split each line into word and morphological description
+-    dp = strchr(ts,'\t');
+-
+-    if (dp) {
+-      *dp = '\0';
+-      dp++;
+-    } else {
+-      dp = NULL;
++    size_t offset = 0;
++    ssize_t count;
++    do
++    {
++        count = read (fd, buffer + offset, bytes);
++        if (count < 0)
++        {
++            if (errno == EINTR)
++                continue;
++            else
++                return 1;
++        }
++        bytes -= count;
++        offset += count;
+     }
++    while (bytes > 0);
++    return 0;
++}
+ 
+-    // split each line into word and affix char strings
+-    // "\/" signs slash in words (not affix separator)
+-    // "/" at beginning of the line is word character (not affix separator)
+-    ap = ts;
+-    while ((ap = strchr(ap,'/'))) {
+-        if (ap == ts) {
+-            ap++;
+-            continue;
+-        } else if (*(ap - 1) != '\\') break;
+-        // replace "\/" with "/"
+-        for (char * sp = ap - 1; *sp; *sp = *(sp + 1), sp++);
+-        
+-    }
+-
+-    if (ap) {
+-      *ap = '\0';
+-      if (aliasf) {
+-        int index = atoi(ap + 1);
+-        al = get_aliasf(index, &flags);
+-        if (!al) {
+-            fprintf(stderr, "error - bad flag vector alias: %s\n", ts);
+-            *ap = '\0';
+-        }
+-      } else {
+-        al = decode_flags(&flags, ap + 1);
+-        flag_qsort(flags, 0, al);
+-      }
+-    } else {
+-      al = 0;
+-      ap = NULL;
+-      flags = NULL;
++size_t HashMgr::seek_newline( size_t i ) const
++{
++    while (i < length && !IS_END(buffer[i])) i++;
++    while (i < length && IS_END(buffer[i])) i++;
++    return i;
++}
++    
++int HashMgr::load_tables(const char * tpath)
++{
++#ifdef HASH_DEBUG
++    fprintf( stderr, "Load tables from '%s'\n", tpath );
++#endif
++    fd = open (tpath, O_RDONLY|_O_BINARY);
++    if (fd < 0)
++        return 1;
++    struct stat info;
++    if (fstat(fd, &info) < 0)
++        return 1;
++    length = info.st_size;
++#ifdef UNX
++    if (MAP_FAILED == (buffer = (char *)mmap (NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0)))
++        ;
++    else
++#endif 
++    {
++        buffer = new char[ length ];
++        int failed = slurp (fd, length);
++        close (fd);
++        fd = -1;
++        if (failed)
++        {
++            delete buffer;
++            return 1;
++        }
+     }
++    if (!buffer)
++        return 1;
++    size_t second_line = seek_newline (0);
++    char *str = new char [ second_line + 1 ];
++    memcpy (str, buffer, second_line);
++    str[second_line] = '\0';
++    tablesize = strtol(str, NULL, 0);
++    delete[] str;
++    if (tablesize <= 0)
++        return 4;
++    long sparse = tablesize * 2;
++
++    // Bin any small prime factors
++    while (!(sparse % 2) || !(sparse % 3) || !(sparse % 5 ) ||
++            !(sparse % 7) || !(sparse % 11) || !(sparse % 13 ))
++        sparse++;
++
++    /* fprintf( stderr, "Switch table size to %d from %d\n", 
++       tablesize, sparse); */
++    tablesize = sparse;
++
++    // Hash - normal fixed size sparse hash, compare until we hit a NULL
++    tableptr = (char **)calloc (sizeof(char *), tablesize );
++
++#ifdef HASH_DEBUG
++    static int total_cols = 0;
++    static int total_lookups = 0;
++#endif
++    size_t i = 0;
++    // CHECKME: '\n' on Win32 ? - cf. Win32 binary downloads I guess.
++    for (i = second_line; i < length;)
++    {
++        int hash_id;
++        size_t next_line = seek_newline (i);
++        if (next_line >= length)
++            break;
++
++        hash_id = hash(buffer + i);
++        int collisions = 0;
++        while (tableptr[hash_id%tablesize]) {
++            collisions++;
++            hash_id++;
++        }
++#ifdef HASH_DEBUG
++        total_lookups++;
++        total_cols += collisions;
++#endif
++        tableptr[hash_id%tablesize] = buffer + i;
++        i = next_line;
++    }  
++#ifdef HASH_DEBUG
++    fprintf (stderr, "%d collisions on %d lookups\n", total_cols, total_lookups);
++#endif
+ 
+-    wl = strlen(ts);
+-
+-    // add the word and its index
+-    if (add_word(ts,wl,flags,al,dp)) return 5;
+-
+-  }
+- 
+-  fclose(rawdict);
+-  return 0;
++    return 0;
+ }
+ 
+-
+-// the hash function is a simple load and rotate
+-// algorithm borrowed
+-
+ int HashMgr::hash(const char * word) const
+ {
+-    long  hv = 0;
+-    for (int i=0; i < 4  &&  *word != 0; i++)
+-	hv = (hv << 8) | (*word++);
+-    while (*word != 0) {
+-      ROTATE(hv,ROTATE_LEN);
+-      hv ^= (*word++);
+-    }
+-    return (unsigned long) hv % tablesize;
++    unsigned long hv = word[0];
++    for (int i = 1; !WORD_END_CONDITN(word[i]) && !IS_END(word[i]); i++)
++        hv = (hv << 5) - hv + word[i];
++#ifdef HASH_DEBUG
++    fprintf(stderr, "string '");
++    for (int i = 0; !WORD_END_CONDITN(word[ i ] && !IS_END(word[i])); i++)
++        fprintf( stderr, "%c", word[i] );
++    fprintf(stderr, "' 0x%x \n", (int)hv % tablesize);
++#endif
++
++    return hv % tablesize;
+ }
+ 
+-int HashMgr::decode_flags(unsigned short ** result, char * flags) {
++int HashMgr::decode_flags(unsigned short ** result, const char * flags) {
++#ifdef HASH_DEBUG
++    fprintf(stderr, "Decoding flags '%s'\n", flags);
++#endif
+     int len;
+     switch (flag_mode) {
+       case FLAG_LONG: { // two-character flags (1x2yZz -> 1x 2y Zz)
+@@ -366,9 +378,9 @@ int HashMgr::decode_flags(unsigned short
+       }
+       case FLAG_NUM: { // decimal numbers separated by comma (4521,23,233 -> 4521 23 233)
+         len = 1;
+-        char * src = flags; 
++        const char * src = flags; 
+         unsigned short * dest;
+-        char * p;
++        const char * p;
+         for (p = flags; *p; p++) {
+           if (*p == ',') len++;
+         }
+--- lingucomponent/source/spellcheck/hunspell/hashmgr.hxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/hashmgr.hxx	2007-08-31 17:15:51.000000000 +0200
+@@ -9,7 +9,7 @@ enum flag { FLAG_CHAR, FLAG_LONG, FLAG_N
+ class HashMgr
+ {
+   int             tablesize;
+-  struct hentry * tableptr;
++  char         ** tableptr;
+   int	          userword;
+   flag            flag_mode;
+   int             complexprefixes;
+@@ -20,18 +20,25 @@ class HashMgr
+   int                 numaliasm; // morphological desciption `compression' with aliases
+   char **             aliasm;
+ 
++  mutable struct hentry compat;
++  int             compat_word_length;
++  int             fd;
++  char          * buffer;
++  size_t          length;
++
++  size_t seek_newline(size_t from_offset) const;
++  int slurp( int fd, size_t bytes );
+ 
+ public:
+   HashMgr(const char * tpath, const char * apath);
+   ~HashMgr();
+ 
+-  struct hentry * lookup(const char *) const;
+-  int hash(const char *) const;
+-  struct hentry * walk_hashtable(int & col, struct hentry * hp) const;
++  struct hentry * setup_hentry(const char *ptr, int hash_id);
+ 
+-  int put_word(const char * word, int wl, char * ap);
+-  int put_word_pattern(const char * word, int wl, const char * pattern);
+-  int decode_flags(unsigned short ** result, char * flags);
++  struct hentry * lookup(const char *, int from_id = -1) const;
++  struct hentry * walk_hashtable(int & col, struct hentry * p) const;
++
++  int decode_flags(unsigned short ** result, const char * flags);
+   unsigned short        decode_flag(const char * flag);
+   char *                encode_flag(unsigned short flag);
+   int is_aliasf();
+@@ -40,8 +47,8 @@ public:
+   char * get_aliasm(int index);
+   
+ private:
++  int hash(const char *) const;
+   int load_tables(const char * tpath);
+-  int add_word(const char * word, int wl, unsigned short * ap, int al, const char * desc);
+   int load_config(const char * affpath);
+   int parse_aliasf(char * line, FILE * af);
+   int parse_aliasm(char * line, FILE * af);
+--- lingucomponent/source/spellcheck/hunspell/htypes.hxx	2006-01-06 14:10:55.000000000 +0100
++++ lingucomponent/source/spellcheck/hunspell/htypes.hxx	2007-08-31 17:14:39.000000000 +0200
+@@ -17,9 +17,8 @@ struct hentry
+   short    alen;
+   char *   word;
+   unsigned short * astr;
+-  struct   hentry * next;
+-  struct   hentry * next_homonym;
+   char *   description;
++  int      hash_id;
+ };
+ 
+ #endif
+--- lingucomponent/source/spellcheck/hunspell/hunspell.cxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/hunspell.cxx	2007-08-31 17:35:25.000000000 +0200
+@@ -599,7 +599,7 @@ struct hentry * Hunspell::check(const ch
+   while (he && (he->astr) &&
+     ((pAMgr->get_pseudoroot() && TESTAFF(he->astr, pAMgr->get_pseudoroot(), he->alen)) ||
+        (pAMgr->get_onlyincompound() && TESTAFF(he->astr, pAMgr->get_onlyincompound(), he->alen))
+-    )) he = he->next_homonym;
++    )) he = pHMgr->lookup(word, he->hash_id); // next homonym
+ 
+   // check with affixes
+   if (!he && pAMgr) {
+@@ -1190,30 +1190,6 @@ struct unicode_info2 * Hunspell::get_utf
+   return utfconv;
+ }
+ 
+-int Hunspell::put_word(const char * word)
+-{
+-    if (pHMgr) {
+-	return pHMgr->put_word(word, strlen(word), NULL);
+-    }
+-    return 0;
+-}
+-
+-int Hunspell::put_word_suffix(const char * word, const char * suffix)
+-{
+-    if (pHMgr) {
+-	return pHMgr->put_word(word, strlen(word), (char *) suffix);
+-    }
+-    return 0;
+-}
+-
+-int Hunspell::put_word_pattern(const char * word, const char * pattern)
+-{
+-    if (pHMgr) {
+-	return pHMgr->put_word_pattern(word, strlen(word), pattern);
+-    }
+-    return 0;
+-}
+-
+ const char * Hunspell::get_version()
+ {
+   return pAMgr->get_version();
+--- lingucomponent/source/spellcheck/hunspell/hunspell.hxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/hunspell.hxx	2007-08-31 14:14:26.000000000 +0200
+@@ -75,20 +75,6 @@ public:
+ 
+   int suggest(char*** slst, const char * word);
+ 
+-  /* handling custom dictionary */
+-
+-  int put_word(const char * word);
+-
+-  /* suffix is an affix flag string, similarly in dictionary files */
+-  
+-  int put_word_suffix(const char * word, const char * suffix);
+-  
+-  /* pattern is a sample dictionary word 
+-   * put word into custom dictionary with affix flags of pattern word
+-   */
+-  
+-  int put_word_pattern(const char * word, const char * pattern);
+-
+   /* other */
+ 
+   char * get_dic_encoding();
+--- lingucomponent/source/spellcheck/hunspell/suggestmgr.cxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/suggestmgr.cxx	2007-08-31 17:39:14.000000000 +0200
+@@ -803,19 +803,10 @@ int SuggestMgr::ngsuggest(char** wlst, c
+   int _lval;
+   int sc;
+   int lp;
++  int lpMG;
+ 
+   if (! pHMgr) return 0;
+ 
+-  // exhaustively search through all root words
+-  // keeping track of the MAX_ROOTS most similar root words
+-  struct hentry * roots[MAX_ROOTS];
+-  int scores[MAX_ROOTS];
+-  for (i = 0; i < MAX_ROOTS; i++) {
+-    roots[i] = NULL;
+-    scores[i] = -100 * i;
+-  }
+-  lp = MAX_ROOTS - 1;
+-
+   char w2[MAXWORDUTF8LEN];
+   char * word = w;
+ 
+@@ -831,27 +822,6 @@ int SuggestMgr::ngsuggest(char** wlst, c
+   int nc = strlen(word);
+   int n = (utf8) ? u8_u16(u8, MAXSWL, word) : nc;
+ 
+-  struct hentry* hp = NULL;
+-  int col = -1;
+-  while ((hp = pHMgr->walk_hashtable(col, hp))) {
+-    // check forbidden words
+-    if ((hp->astr) && (pAMgr) && 
+-       (TESTAFF(hp->astr, pAMgr->get_forbiddenword(), hp->alen) ||
+-          TESTAFF(hp->astr, pAMgr->get_nosuggest(), hp->alen) ||
+-          TESTAFF(hp->astr, pAMgr->get_onlyincompound(), hp->alen))) continue;
+-    sc = ngram(3, word, hp->word, NGRAM_LONGER_WORSE);
+-    if (sc > scores[lp]) {
+-      scores[lp] = sc;  
+-      roots[lp] = hp;
+-      int lval = sc;
+-      for (j=0; j < MAX_ROOTS; j++)
+-	if (scores[j] < lval) {
+-	  lp = j;
+-          lval = scores[j];
+-	}
+-    }  
+-  }
+-
+   // find minimum threshhold for a passable suggestion
+   // mangle original word three differnt ways
+   // and score them to generate a minimum acceptable score
+@@ -870,9 +840,13 @@ int SuggestMgr::ngsuggest(char** wlst, c
+   thresh = thresh / 3;
+   thresh--;
+ 
+-  // now expand affixes on each of these root words and
+-  // and use length adjusted ngram scores to select
+-  // possible suggestions
++  struct hentry * roots[MAX_ROOTS];
++  int scores[MAX_ROOTS];
++  for (i = 0; i < MAX_ROOTS; i++) {
++    roots[i] = NULL;
++    scores[i] = -100 * i;
++  }
++
+   char * guess[MAX_GUESS];
+   int gscore[MAX_GUESS];
+   for(i=0;i<MAX_GUESS;i++) {
+@@ -882,36 +856,28 @@ int SuggestMgr::ngsuggest(char** wlst, c
+ 
+   lp = MAX_GUESS - 1;
+ 
+-  struct guessword * glst;
+-  glst = (struct guessword *) calloc(MAX_WORDS,sizeof(struct guessword));
+-  if (! glst) return 0;
++  // exhaustively search through all root words
++  // keeping track of the MAX_ROOTS most similar root words
++  lp = MAX_ROOTS - 1;
+ 
+-  for (i = 0; i < MAX_ROOTS; i++) {
++  lpMG = MAX_GUESS - 1;
+ 
+-      if (roots[i]) {
+-        struct hentry * rp = roots[i];
+-	int nw = pAMgr->expand_rootword(glst, MAX_WORDS, rp->word, rp->wlen,
+-                                        rp->astr, rp->alen, word, nc);
+-
+-        for (int k = 0; k < nw ; k++) {
+-           sc = ngram(n, word, glst[k].word, NGRAM_ANY_MISMATCH);
+-           if ((sc > thresh)) {
+-              if (sc > gscore[lp]) {
+-	         if (guess[lp]) free (guess[lp]);
+-                 gscore[lp] = sc;
+-                 guess[lp] = glst[k].word;
+-                 _lval = sc;
+-                 for (j=0; j < MAX_GUESS; j++)
+-                if (gscore[j] < _lval) {
+-	               lp = j;
+-                       _lval = gscore[j];
+-	            }
+-	      } else free (glst[k].word);  
+-	   } else free(glst[k].word);
+-	}
+-      }
++  struct hentry* hp = NULL;
++  int col = -1;
++  while ((hp = pHMgr->walk_hashtable(col, hp))) {
++    sc = ngram(3, word, hp->word, NGRAM_LONGER_WORSE);
++    if (sc > scores[lp]) {
++      scores[lp] = sc;
++      // Get the list of guesswords for this rootword
++      if (-1 == expand_rootword_affix(hp, word, n, thresh, gscore, guess, &lpMG)) return 0;
++      int lval = sc;
++      for (j=0; j < MAX_ROOTS; j++)
++	    if (scores[j] < lval) {
++	        lp = j;
++            lval = scores[j];
++	    }
++    }  
+   }
+-  free(glst);
+ 
+   // now we are done generating guesses
+   // sort in order of decreasing score
+@@ -984,6 +950,49 @@ int SuggestMgr::ngsuggest(char** wlst, c
+   return ns;
+ }
+ 
++int SuggestMgr::expand_rootword_affix(struct hentry *hp, char *word, int wrdlen, int thresh, int glistscore[], char *guesslist[], int *lp)
++{
++    int sc;
++    int lval;
++
++    struct guessword * glst;
++    glst = (struct guessword *) calloc(MAX_WORDS,sizeof(struct guessword));
++    if (! glst) return -1;
++
++    // now expand affixes on each of these root words and
++    // and use length adjusted ngram scores to select
++    // possible suggestions
++    if (hp) {
++        int nw = pAMgr->expand_rootword(glst, MAX_WORDS, hp->word, hp->wlen,
++                hp->astr, hp->alen, word, wrdlen);
++        for (int k = 0; k < nw; k++) 
++        {
++            sc = ngram(wrdlen, word, glst[k].word, NGRAM_ANY_MISMATCH);
++            if (sc > thresh && sc > glistscore[*lp])
++            {
++                if (guesslist[*lp]) free(guesslist[*lp]);
++                glistscore[*lp] = sc;
++                guesslist[*lp] = glst[k].word;
++                glst[k].word = NULL;
++                lval = sc;
++                for (int j=0; j < MAX_GUESS; j++)
++                {
++                    if (glistscore[j] < lval)
++                    {
++                        *lp = j;
++                        lval = glistscore[j];
++                    }
++                }
++            }
++            free (glst[k].word);
++            glst[k].word = NULL;
++            glst[k].allow = 0;
++        }
++    }
++    if (glst) free(glst);
++
++    return 0;
++}
+ 
+ // see if a candidate suggestion is spelled correctly
+ // needs to check both root words and words with affixes
+@@ -1438,7 +1447,7 @@ char * SuggestMgr::suggest_morph(const c
+             if (rv->description) strcat(result, rv->description);
+             strcat(result, "\n");
+         }
+-        rv = rv->next_homonym;
++        rv = pAMgr->lookup(word, rv->hash_id); // next homonym
+     }
+     
+     st = pAMgr->affix_check_morph(word,strlen(word));
+--- lingucomponent/source/spellcheck/hunspell/suggestmgr.hxx	2007-08-31 11:42:06.000000000 +0200
++++ lingucomponent/source/spellcheck/hunspell/suggestmgr.hxx	2007-08-31 14:14:26.000000000 +0200
+@@ -78,6 +78,7 @@ private:
+    int equalfirstletter(char * s1, const char * s2);
+    int commoncharacterpositions(char * s1, const char * s2, int * is_swap);
+    void bubblesort( char ** rwd, int * rsc, int n);
++   int expand_rootword_affix(struct hentry *hp, char *word, int wrdlen, int thresh, int glistscore[], char *guesslist[], int *lp);
+    void lcs(const char * s, const char * s2, int * l1, int * l2, char ** result);
+    int lcslen(const char * s, const char* s2);
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-transitions-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-transitions-scp2.diff
@@ -0,0 +1,63 @@
+--- scp2/source/impress/file_impress.scp	2008-01-07 18:09:23.000000000 +0100
++++ scp2/source/impress/file_impress.scp	2008-01-07 18:12:45.000000000 +0100
+@@ -59,6 +59,20 @@ File gid_File_Exe_Simpress
+     Styles = (PACKED, PATCH);
+ End
+ 
++#if defined ENABLE_OPENGL
++File gid_File_Lib_OpenGLTransitions
++    TXT_FILE_BODY;
++    Styles = (PACKED,UNO_COMPONENT);
++    RegistryID = gid_Starregistry_Services_Rdb;
++    Dir = gid_Dir_Program;
++  #ifdef UNX
++    Name = STRING(CONCAT2(OGLTrans.uno,UNXSUFFIX));
++  #else
++    Name = "OGLTrans.uno.dll";
++  #endif
++End
++#endif
++
+ #if defined UNX && ! defined MACOSX
+ 
+ File gid_File_Xdg_Impress
+@@ -180,6 +180,15 @@ File gid_File_Share_Config_Sofficecfg_Im
+     Name = "transitions.xml";
+ End
+ 
++#if defined ENABLE_OPENGL
++File gid_File_Share_Config_Sofficecfg_Impress_Transitions_OGL_Xml
++    TXT_FILE_BODY;
++    Styles = (PACKED);
++    Dir = gid_Dir_Share_Config_Sofficecfg_Simpress;
++    Name = "transitions-ogl.xml";
++End
++#endif
++
+ File gid_File_Oo_Office_Ui_Effects_Xcs
+     TXT_FILE_BODY;
+     Styles = (PACKED);
+--- scp2/source/impress/makefile.mk
++++ scp2/source/impress/makefile.mk
+@@ -47,6 +47,10 @@ TARGETTYPE=CUI
+ 
+ SCP_PRODUCT_TYPE=osl
+ 
++.IF "$(ENABLE_OPENGL)" == "TRUE"
++SCPDEFS+=-DENABLE_OPENGL
++.ENDIF
++
+ PARFILES= \
+         module_impress.par              \
+         help_impress.par                \
+--- scp2/source/impress/module_impress.scp	2008-01-08 11:25:39.000000000 +0100
++++ scp2/source/impress/module_impress.scp	2008-01-08 11:26:49.000000000 +0100
+@@ -51,7 +51,7 @@
+     Files = (gid_File_Exe_Simpress,gid_File_Extra_Urldesktop_Impress,gid_File_Extra_Urlnew_Impress,gid_File_Extra_Urlstart_Impress,gid_File_Extra_Urltasks_Impress,gid_File_Lib_Placeware,
+     gid_File_Registry_Spool_Oo_Common_Impress_Xcu,gid_File_Registry_Spool_Oo_Setup_Impress_Xcu,
+     gid_File_Oo_Office_Ui_Impresswindowstate_Xcs,gid_File_Oo_Office_Ui_Impresswindowstate_Xcu,
+-	gid_File_Lib_Animcore,gid_File_Share_Config_Sofficecfg_Impress_Effects_Xml, gid_File_Share_Config_Sofficecfg_Impress_Transitions_Xml,
++	gid_File_Lib_Animcore,gid_File_Share_Config_Sofficecfg_Impress_Effects_Xml, gid_File_Share_Config_Sofficecfg_Impress_Transitions_Xml, gid_File_Share_Config_Sofficecfg_Impress_Transitions_OGL_Xml,
+ 	gid_File_Oo_Office_Ui_Effects_Xcs, gid_File_Oo_Office_Ui_Effects_Xcu, gid_File_Xdg_Impress, gid_File_Registry_Spool_Oo_Office_Embedding_Impress_Xcu,
+     gid_File_Registry_Spool_Oo_TypeDetection_Impress_Filters_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Impress_Types_Xcu, gid_File_Tmp_Userinstall_Impress_Inf);
+ End
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-svx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-svx.diff
@@ -0,0 +1,168 @@
+cvs diff: Diffing svx
+cvs diff: Diffing svx/doc
+cvs diff: Diffing svx/doc/UML
+cvs diff: Diffing svx/inc
+cvs diff: Diffing svx/inc/pch
+cvs diff: Diffing svx/inc/svx
+cvs diff: Diffing svx/inc/svx/sdr
+cvs diff: Diffing svx/inc/svx/sdr/animation
+cvs diff: Diffing svx/inc/svx/sdr/contact
+cvs diff: Diffing svx/inc/svx/sdr/event
+cvs diff: Diffing svx/inc/svx/sdr/mixer
+cvs diff: Diffing svx/inc/svx/sdr/overlay
+cvs diff: Diffing svx/inc/svx/sdr/properties
+cvs diff: Diffing svx/prj
+cvs diff: Diffing svx/qa
+cvs diff: Diffing svx/qa/unoapi
+cvs diff: Diffing svx/qa/unoapi/testdocuments
+cvs diff: Diffing svx/sdi
+cvs diff: Diffing svx/source
+cvs diff: Diffing svx/source/accessibility
+cvs diff: Diffing svx/source/customshapes
+cvs diff: Diffing svx/source/dialog
+Index: svx/source/dialog/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/svx/source/dialog/makefile.mk,v
+retrieving revision 1.59
+retrieving revision 1.59.122.1
+diff -p -u -u -p -b -w -B -r1.59 -r1.59.122.1
+--- svx/source/dialog/makefile.mk	27 Nov 2007 15:28:28 -0000	1.59
++++ svx/source/dialog/makefile.mk	12 Feb 2008 12:43:51 -0000	1.59.122.1
+@@ -44,6 +44,10 @@ ENABLE_EXCEPTIONS=TRUE
+ .INCLUDE :  settings.mk
+ .INCLUDE :  $(PRJ)$/util$/makefile.pmk
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++CFLAGS+= -DENABLE_LAYOUT=1 -I../$(PRJ)/layout/inc -I../$(PRJ)/layout/$(INPATH)/inc
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ # --- Files --------------------------------------------------------
+ 
+ SRS1NAME=dialogs
+Index: svx/source/dialog/zoom.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/dialog/zoom.cxx,v
+retrieving revision 1.9
+retrieving revision 1.9.302.1
+diff -p -u -u -p -b -w -B -r1.9 -r1.9.302.1
+--- svx/source/dialog/zoom.cxx	27 Jun 2007 17:52:39 -0000	1.9
++++ svx/source/dialog/zoom.cxx	12 Feb 2008 12:43:51 -0000	1.9.302.1
+@@ -61,7 +61,9 @@
+ #define _SVX_ZOOM_CXX
+ 
+ #include <svx/dialogs.hrc>
++#if !ENABLE_LAYOUT
+ #include "zoom.hrc"
++#endif /* !ENABLE_LAYOUT */
+ 
+ #include "zoom.hxx"
+ #include <svx/zoomitem.hxx>
+@@ -70,6 +72,9 @@
+ #ifndef _SVX_ZOOM_DEF_HXX
+ #include "zoom_def.hxx"
+ #endif
++
++#include <layout/layout-pre.hxx>
++
+ // static ----------------------------------------------------------------
+ 
+ static USHORT pRanges[] =
+Index: svx/source/dialog/zoom.hxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/dialog/zoom.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.1188.1
+diff -p -u -u -p -b -w -B -r1.3 -r1.3.1188.1
+--- svx/source/dialog/zoom.hxx	8 Sep 2005 22:23:41 -0000	1.3
++++ svx/source/dialog/zoom.hxx	12 Feb 2008 12:43:51 -0000	1.3.1188.1
+@@ -37,6 +37,7 @@
+ 
+ // include ---------------------------------------------------------------
+ 
++#include <layout/layout.hxx>
+ #ifndef _BASEDLGS_HXX //autogen wg. SfxModalDialog
+ #include <sfx2/basedlgs.hxx>
+ #endif
+@@ -70,6 +71,8 @@
+ 	SvxZoomItem	<SID_ATTR_ZOOM>
+ */
+ 
++#include <layout/layout-pre.hxx>
++
+ class SvxZoomDialog : public SfxModalDialog
+ {
+ private:
+@@ -114,6 +117,7 @@ public:
+ 	void				SetSpinSize( USHORT nNewSpin );
+ };
+ 
++#include <layout/layout-post.hxx>
+ 
+ #endif
+ 
+cvs diff: Diffing svx/source/editeng
+cvs diff: Diffing svx/source/engine3d
+cvs diff: Diffing svx/source/fmcomp
+cvs diff: Diffing svx/source/form
+cvs diff: Diffing svx/source/gallery2
+cvs diff: Diffing svx/source/gengal
+cvs diff: Diffing svx/source/inc
+cvs diff: Diffing svx/source/init
+cvs diff: Diffing svx/source/intro
+cvs diff: Diffing svx/source/items
+cvs diff: Diffing svx/source/mnuctrls
+cvs diff: Diffing svx/source/msfilter
+cvs diff: Diffing svx/source/options
+cvs diff: Diffing svx/source/outliner
+cvs diff: Diffing svx/source/sdr
+cvs diff: Diffing svx/source/sdr/animation
+cvs diff: Diffing svx/source/sdr/contact
+cvs diff: Diffing svx/source/sdr/event
+cvs diff: Diffing svx/source/sdr/mixer
+cvs diff: Diffing svx/source/sdr/overlay
+cvs diff: Diffing svx/source/sdr/properties
+cvs diff: Diffing svx/source/smarttags
+cvs diff: Diffing svx/source/src
+cvs diff: Diffing svx/source/stbctrls
+cvs diff: Diffing svx/source/svdraw
+cvs diff: Diffing svx/source/svrtf
+cvs diff: Diffing svx/source/svxlink
+cvs diff: Diffing svx/source/tbxctrls
+cvs diff: Diffing svx/source/toolbars
+cvs diff: Diffing svx/source/unodialogs
+cvs diff: Diffing svx/source/unodialogs/inc
+cvs diff: Diffing svx/source/unodialogs/textconversiondlgs
+cvs diff: Diffing svx/source/unodraw
+cvs diff: Diffing svx/source/unoedit
+cvs diff: Diffing svx/source/unogallery
+cvs diff: Diffing svx/source/xml
+cvs diff: Diffing svx/source/xoutdev
+cvs diff: Diffing svx/uiconfig
+cvs diff: Diffing svx/uiconfig/accelerator
+cvs diff: Diffing svx/uiconfig/accelerator/en-US
+cvs diff: Diffing svx/uiconfig/accelerator/es
+cvs diff: Diffing svx/util
+Index: svx/util/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/svx/util/makefile.mk,v
+retrieving revision 1.53
+retrieving revision 1.53.136.1
+diff -p -u -u -p -b -w -B -r1.53 -r1.53.136.1
+--- svx/util/makefile.mk	2 Nov 2007 12:20:40 -0000	1.53
++++ svx/util/makefile.mk	12 Feb 2008 12:43:52 -0000	1.53.136.1
+@@ -187,6 +187,11 @@ SHL2STDLIBS+= \
+              $(ADVAPI32LIB)
+ .ENDIF # WNT
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++LINKFLAGS+= -L../$(PRJ)/layout/$(INPATH)/lib
++SHL2STDLIBS += -ltklayout$(UPD)$(DLLPOSTFIX)
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ # ------------------------------------------------------------------------------
+ 
+ # Resource files
+cvs diff: Diffing svx/util/defs
+cvs diff: Diffing svx/workben
+cvs diff: Diffing svx/workben/msview
+cvs diff: Diffing svx/xml
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-export-shape-macro-bindings.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-export-shape-macro-bindings.diff
@@ -0,0 +1,254 @@
+diff -up sc/source/filter/inc/xeescher.hxx sc/source/filter/inc/xeescher.hxx
+--- sc/source/filter/inc/xeescher.hxx	2007-05-22 20:55:36.000000000 +0100
++++ sc/source/filter/inc/xeescher.hxx	2007-08-29 13:11:20.000000000 +0100
+@@ -79,6 +79,34 @@ private:
+     sal_uInt16          mnEntryCount;   /// Number of entries in source range.
+ };
+ 
++class XclMacroHelper : public XclExpControlObjHelper
++{
++protected:
++    XclTokenArrayRef    mxMacroLink;    /// Token array containing a link to an attached macro.
++
++public:
++    explicit            XclMacroHelper( const XclExpRoot& rRoot );
++    virtual             ~XclMacroHelper();
++    /** Writes an ftMacro subrecord containing a macro link, or nothing, if no macro present. */
++    void                WriteMacroSubRec( XclExpStream& rStrm  );
++    /** Sets the name of a macro for object of passed type
++        @return  true = The passed event descriptor was valid, macro name has been found. */
++    bool                SetMacroLink( const ::com::sun::star::script::ScriptEventDescriptor& rEvent, sal_uInt16 nObjType );
++
++    /** Sets the name of a macro 
++        @return  true = The passed macro name has been found. */
++    bool                SetMacroLink( const String& rMacro );
++};
++
++class XclExpShapeObj : public XclObjAny, public XclMacroHelper
++{
++public:
++    explicit            XclExpShapeObj( const XclExpRoot& rRoot, ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
++    virtual             ~XclExpShapeObj();
++private:
++    virtual void        WriteSubRecs( XclExpStream& rStrm );
++};
++
+ // ----------------------------------------------------------------------------
+ 
+ #if EXC_EXP_OCX_CTRL
+@@ -105,22 +133,19 @@ private:
+ #else
+ 
+ /** Represents an OBJ record for an TBX form control. */
+-class XclExpTbxControlObj : public XclObj, public XclExpControlObjHelper
++class XclExpTbxControlObj : public XclObj, public XclMacroHelper
+ {
+ public:
+     explicit            XclExpTbxControlObj(
+                             const XclExpRoot& rRoot,
+                             ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
+ 
+-    /** Sets the name of a macro attached to this control.
++    /** Sets the name of a macro 
+         @return  true = The passed event descriptor was valid, macro name has been found. */
+     bool                SetMacroLink( const ::com::sun::star::script::ScriptEventDescriptor& rEvent );
+-
+ private:
+     virtual void        WriteSubRecs( XclExpStream& rStrm );
+ 
+-    /** Writes an ftMacro subrecord containing a macro link, or nothing, if no macro present. */
+-    void                WriteMacroSubRec( XclExpStream& rStrm );
+     /** Writes a subrecord containing a cell link, or nothing, if no link present. */
+     void                WriteCellLinkSubRec( XclExpStream& rStrm, sal_uInt16 nSubRecId );
+     /** Writes the ftSbs sub structure containing scrollbar data. */
+@@ -128,7 +153,6 @@ private:
+ 
+ private:
+     ScfInt16Vec         maMultiSel;     /// Indexes of all selected entries in a multi selection.
+-    XclTokenArrayRef    mxMacroLink;    /// Token array containing a link to an attached macro.
+     sal_Int32           mnHeight;       /// Height of the control.
+     sal_uInt16          mnState;        /// Checked/unchecked state.
+     sal_Int16           mnLineCount;    /// Combobox dropdown line count.
+diff -up sc/source/filter/inc/xlocx.hxx sc/source/filter/inc/xlocx.hxx
+--- sc/source/filter/inc/xlocx.hxx	2007-08-27 15:31:36.000000000 +0100
++++ sc/source/filter/inc/xlocx.hxx	2007-08-29 13:09:56.000000000 +0100
+@@ -169,6 +169,14 @@ private:
+ #endif
+ };
+ 
++class XclExpShapeObj;
++
++class ShapeInteractionHelper
++{
++public:
++   static XclExpShapeObj* CreateShapeObj(const XclExpRoot& rRoot, const ::com::sun::star::uno::Reference<
++                            ::com::sun::star::drawing::XShape >& xShape );
++};
+ // ============================================================================
+ 
+ #endif
+diff -up sc/source/filter/xcl97/xcl97esc.cxx sc/source/filter/xcl97/xcl97esc.cxx
+--- sc/source/filter/xcl97/xcl97esc.cxx	2007-05-22 21:01:06.000000000 +0100
++++ sc/source/filter/xcl97/xcl97esc.cxx	2007-08-29 13:03:54.000000000 +0100
+@@ -258,7 +258,8 @@ EscherExHostAppData* XclEscherEx::StartS
+         {
+             // #107540# ignore permanent note shapes
+             // #i12190# do not ignore callouts (do not filter by object type ID)
+-            pCurrXclObj = new XclObjAny( rRoot );   // just a metafile
++            //pCurrXclObj = new XclObjAny( rRoot );   // just a metafile
++            pCurrXclObj = ShapeInteractionHelper::CreateShapeObj( rRoot, rShape );
+         }
+ 	}
+ 	if ( pCurrXclObj )
+diff -up sc/source/filter/excel/xeescher.cxx sc/source/filter/excel/xeescher.cxx
+--- sc/source/filter/excel/xeescher.cxx	2007-08-02 14:30:41.000000000 +0100
++++ sc/source/filter/excel/xeescher.cxx	2007-08-29 14:24:09.000000000 +0100
+@@ -106,7 +106,8 @@
+ #include "xelink.hxx"
+ #include "xename.hxx"
+ #include "xestyle.hxx"
+-
++#include "userdat.hxx"
++#include "drwlayer.hxx"
+ using ::rtl::OUString;
+ using ::com::sun::star::uno::UNO_QUERY;
+ using ::com::sun::star::uno::Reference;
+@@ -319,7 +321,7 @@ void XclExpOcxControlObj::WriteSubRecs( 
+ 
+ XclExpTbxControlObj::XclExpTbxControlObj( const XclExpRoot& rRoot, Reference< XShape > xShape ) :
+     XclObj( rRoot, EXC_OBJ_CMO_UNKNOWN, true ),
+-    XclExpControlObjHelper( rRoot ),
++    XclMacroHelper( rRoot ),
+     mnHeight( 0 ),
+     mnState( 0 ),
+     mnLineCount( 0 ),
+@@ -566,21 +568,7 @@ XclExpTbxControlObj::XclExpTbxControlObj
+ 
+ bool XclExpTbxControlObj::SetMacroLink( const ScriptEventDescriptor& rEvent )
+ {
+-    if( rEvent.ListenerType.getLength() && (rEvent.ListenerType == XclControlObjHelper::GetTbxListenerType( mnObjType )) &&
+-        rEvent.EventMethod.getLength() && (rEvent.EventMethod == XclControlObjHelper::GetTbxEventMethod( mnObjType )) &&
+-        (rEvent.ScriptType == XclControlObjHelper::GetTbxScriptType()) )
+-    {
+-        // macro name is stored in a NAME record, and referred to by a formula containing a tNameXR token
+-        String aMacroName( XclControlObjHelper::GetXclMacroName( rEvent.ScriptCode ) );
+-        if( aMacroName.Len() )
+-        {
+-            sal_uInt16 nExtSheet = GetLocalLinkManager().FindExtSheet( EXC_EXTSH_OWNDOC );
+-            sal_uInt16 nNameIdx = GetNameManager().InsertMacroCall( aMacroName, true, false );
+-            mxMacroLink = GetFormulaCompiler().CreateNameXFormula( nExtSheet, nNameIdx );
+-            return true;
+-        }
+-    }
+-    return false;
++    return XclMacroHelper::SetMacroLink( rEvent, mnObjType );
+ }
+ 
+ void XclExpTbxControlObj::WriteSubRecs( XclExpStream& rStrm )
+@@ -711,11 +699,6 @@ void XclExpTbxControlObj::WriteSubRecs( 
+     }
+ }
+ 
+-void XclExpTbxControlObj::WriteMacroSubRec( XclExpStream& rStrm )
+-{
+-    if( mxMacroLink.is() )
+-        WriteFormulaSubRec( rStrm, EXC_ID_OBJ_FTMACRO, *mxMacroLink );
+-}
+ 
+ void XclExpTbxControlObj::WriteCellLinkSubRec( XclExpStream& rStrm, sal_uInt16 nSubRecId )
+ {
+@@ -941,3 +924,70 @@ void XclExpNote::WriteBody( XclExpStream
+ 
+ // ============================================================================
+ 
++XclMacroHelper::XclMacroHelper( const XclExpRoot& rRoot ) :
++    XclExpControlObjHelper( rRoot )
++{
++}
++
++XclMacroHelper::~XclMacroHelper()
++{
++}
++
++void XclMacroHelper::WriteMacroSubRec( XclExpStream& rStrm )
++{
++    if( mxMacroLink.is() )
++        WriteFormulaSubRec( rStrm, EXC_ID_OBJ_FTMACRO, *mxMacroLink );
++}
++
++bool 
++XclMacroHelper::SetMacroLink( const ScriptEventDescriptor& rEvent, sal_uInt16 nObjType )
++{
++    if( rEvent.ListenerType.getLength() && (rEvent.ListenerType == XclControlObjHelper::GetTbxListenerType( nObjType )) &&
++        rEvent.EventMethod.getLength() && (rEvent.EventMethod == XclControlObjHelper::GetTbxEventMethod( nObjType )) &&
++        (rEvent.ScriptType == XclControlObjHelper::GetTbxScriptType()) )
++    {
++        // macro name is stored in a NAME record, and referred to by a formula containing a tNameXR token
++        String aMacroName( XclControlObjHelper::GetXclMacroName( rEvent.ScriptCode ) );
++        return SetMacroLink( aMacroName );
++    }
++    return false;
++}
++
++bool
++XclMacroHelper::SetMacroLink( const String& rMacroName )
++{
++    OSL_TRACE("SetMacroLink( macroname:=%s )", rtl::OUStringToOString( rMacroName, RTL_TEXTENCODING_UTF8 ).getStr() );
++    if( rMacroName.Len() )
++    {
++        sal_uInt16 nExtSheet = GetLocalLinkManager().FindExtSheet( EXC_EXTSH_OWNDOC );
++        sal_uInt16 nNameIdx = GetNameManager().InsertMacroCall( rMacroName, true, false );
++        mxMacroLink = GetFormulaCompiler().CreateNameXFormula( nExtSheet, nNameIdx );
++        return true;
++    }
++    return false;
++}
++
++XclExpShapeObj::XclExpShapeObj( const XclExpRoot& rRoot, ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape ) : 
++    XclObjAny( rRoot ),
++    XclMacroHelper( rRoot )
++{
++    if( SdrObject* pSdrObj = ::GetSdrObjectFromXShape( xShape ) )
++    {
++        ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( pSdrObj );
++        if ( pInfo && pInfo->GetMacro().getLength() )
++            SetMacroLink( XclControlObjHelper::GetXclMacroName( pInfo->GetMacro() ) ); 
++    }
++}
++
++XclExpShapeObj::~XclExpShapeObj()
++{
++}
++
++void XclExpShapeObj::WriteSubRecs( XclExpStream& rStrm )
++{
++    XclObjAny::WriteSubRecs( rStrm );
++    WriteMacroSubRec( rStrm );
++}
++
++// ============================================================================
++
+diff -up sc/source/filter/excel/xlocx.cxx sc/source/filter/excel/xlocx.cxx
+--- sc/source/filter/excel/xlocx.cxx	2007-08-27 15:31:36.000000000 +0100
++++ sc/source/filter/excel/xlocx.cxx	2007-08-29 13:06:50.000000000 +0100
+@@ -549,4 +549,8 @@ void XclExpOcxConverter::ConvertTbxMacro
+ #endif
+ 
+ // ============================================================================
+-
++XclExpShapeObj* 
++ShapeInteractionHelper::CreateShapeObj(const XclExpRoot& rRoot, const Reference< XShape >& xShape )
++{
++    return new XclExpShapeObj( rRoot, xShape );
++}
+--- sc/source/filter/inc/xcl97rec.hxx	2007-01-22 13:20:49.000000000 +0000
++++ sc/source/filter/inc/xcl97rec.hxx	2007-09-04 14:15:19.000000000 +0100
+@@ -297,7 +297,7 @@ public:
+ 
+ class XclObjAny : public XclObj
+ {
+-private:
++protected:
+     virtual void                WriteSubRecs( XclExpStream& rStrm );
+ 
+ public:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcc-4.3-icc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcc-4.3-icc.diff
@@ -0,0 +1,112 @@
+--- icc/SampleICC-1.3.2-bendian.patch.old	2008-01-30 20:31:42.000000000 +0100
++++ icc/SampleICC-1.3.2-bendian.patch	2008-01-31 14:12:40.000000000 +0100
+@@ -5081,3 +5081,53 @@
+   	IccProfLibTest \
+   	IccStripUnknownTags \
+   	IccV4ToMPE
++*** misc/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp	2007-08-20 22:04:53.000000000 +0200
++--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp	2008-01-31 13:53:16.000000000 +0100
++***************
++*** 77,82 ****
++--- 77,84 ----
++  //
++  //////////////////////////////////////////////////////////////////////
++  
+++ #include <stdlib.h>
+++ #include <string.h>
++  #include <iostream>
++  #include <fstream>
++  #include <sstream>
++*** misc/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h	2007-08-20 22:04:54.000000000 +0200
++--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h	2008-01-31 13:54:51.000000000 +0100
++***************
++*** 83,88 ****
++--- 83,89 ----
++  #ifndef __DEFINED_ICC_TOOL_EXCEPTION_H__
++  #define __DEFINED_ICC_TOOL_EXCEPTION_H__
++  
+++ #include <string.h>
++  #include <exception>
++  #include <string>
++  
++*** misc/SampleICC-1.3.2/IccProfLib/IccCmm.cpp	2007-08-20 22:05:00.000000000 +0200
++--- misc/build/SampleICC-1.3.2/IccProfLib/IccCmm.cpp	2008-01-31 13:49:54.000000000 +0100
++***************
++*** 79,84 ****
++--- 79,86 ----
++  #pragma warning( disable: 4786) //disable warning in <list.h>
++  #endif
++  
+++ #include <stdlib.h>
+++ #include <string.h>
++  #include "IccCmm.h"
++  #include "IccTag.h"
++  #include "IccIO.h"
++*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h	2007-08-20 22:04:53.000000000 +0200
++--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h	2008-01-31 14:05:58.000000000 +0100
++***************
++*** 83,88 ****
++--- 83,89 ----
++  #include <string>
++  #include <sys/types.h>
++  #include <sys/stat.h>
+++ #include <stdlib.h>
++  
++  #ifdef WIN32
++  typedef unsigned short mode_t;
+--- icc/SampleICC-1.3.2.patch.old	2008-01-30 20:31:42.000000000 +0100
++++ icc/SampleICC-1.3.2.patch	2008-01-31 14:12:48.000000000 +0100
+@@ -5034,3 +5034,53 @@
+   	IccProfLibTest \
+   	IccStripUnknownTags \
+   	IccV4ToMPE
++*** misc/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp	2007-08-20 22:04:53.000000000 +0200
++--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/CLUT.cpp	2008-01-31 13:53:16.000000000 +0100
++***************
++*** 77,82 ****
++--- 77,84 ----
++  //
++  //////////////////////////////////////////////////////////////////////
++  
+++ #include <stdlib.h>
+++ #include <string.h>
++  #include <iostream>
++  #include <fstream>
++  #include <sstream>
++*** misc/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h	2007-08-20 22:04:54.000000000 +0200
++--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/ICC_tool_exception.h	2008-01-31 13:54:51.000000000 +0100
++***************
++*** 83,88 ****
++--- 83,89 ----
++  #ifndef __DEFINED_ICC_TOOL_EXCEPTION_H__
++  #define __DEFINED_ICC_TOOL_EXCEPTION_H__
++  
+++ #include <string.h>
++  #include <exception>
++  #include <string>
++  
++*** misc/SampleICC-1.3.2/IccProfLib/IccCmm.cpp	2007-08-20 22:05:00.000000000 +0200
++--- misc/build/SampleICC-1.3.2/IccProfLib/IccCmm.cpp	2008-01-31 13:49:54.000000000 +0100
++***************
++*** 79,84 ****
++--- 79,86 ----
++  #pragma warning( disable: 4786) //disable warning in <list.h>
++  #endif
++  
+++ #include <stdlib.h>
+++ #include <string.h>
++  #include "IccCmm.h"
++  #include "IccTag.h"
++  #include "IccIO.h"
++*** misc/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h	2007-08-20 22:04:53.000000000 +0200
++--- misc/build/SampleICC-1.3.2/Contrib/ICC_utils/Vetters.h	2008-01-31 14:05:58.000000000 +0100
++***************
++*** 83,88 ****
++--- 83,89 ----
++  #include <string>
++  #include <sys/types.h>
++  #include <sys/stat.h>
+++ #include <stdlib.h>
++  
++  #ifdef WIN32
++  typedef unsigned short mode_t;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-xls-builtin-name-scope.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-xls-builtin-name-scope.diff
@@ -0,0 +1,296 @@
+Index: sc/source/filter/excel/excform.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/excform.cxx,v
+retrieving revision 1.38
+diff -u -w -p -r1.38 excform.cxx
+--- sc/source/filter/excel/excform.cxx	13 Jan 2006 16:56:42 -0000	1.38
++++ sc/source/filter/excel/excform.cxx	1 Aug 2006 03:32:03 -0000
+@@ -890,7 +890,8 @@ ConvErr ExcelToSc::Convert( const ScToke
+ 
+ 
+ // stream seeks to first byte after <nFormulaLen>
+-ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal_Size nFormulaLen, const FORMULA_TYPE eFT )
++ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal_Size nFormulaLen,
++							SCsTAB nTab, const FORMULA_TYPE eFT )
+ {
+     RootData&       rR = GetOldRoot();
+ 	BYTE			nOp, nLen;
+@@ -1058,7 +1059,7 @@ ConvErr ExcelToSc::Convert( _ScRangeList
+ 
+ 				ExcRelToScRel( nUINT16, nByte, aSRD, bRangeName );
+ 
+-				rRangeList.Append( aSRD );
++				rRangeList.Append( aSRD, nTab );
+ 				break;
+ 			case 0x45:
+ 			case 0x65:
+@@ -1085,7 +1086,7 @@ ConvErr ExcelToSc::Convert( _ScRangeList
+ 				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+ 					SetComplRow( aCRD );
+ 
+-				rRangeList.Append( aCRD );
++				rRangeList.Append( aCRD, nTab );
+ 			}
+ 				break;
+ 			case 0x46:
+@@ -1122,7 +1123,7 @@ ConvErr ExcelToSc::Convert( _ScRangeList
+ 
+ 				ExcRelToScRel( nUINT16, nByte, aSRD, bRNorSF );
+ 
+-				rRangeList.Append( aSRD );
++				rRangeList.Append( aSRD, nTab );
+ 			}
+ 				break;
+ 			case 0x4D:
+@@ -1148,7 +1149,7 @@ ConvErr ExcelToSc::Convert( _ScRangeList
+ 				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+ 					SetComplRow( aCRD );
+ 
+-				rRangeList.Append( aCRD );
++				rRangeList.Append( aCRD, nTab );
+ 			}
+ 				break;
+             case 0x49:
+@@ -1218,10 +1219,10 @@ ConvErr ExcelToSc::Convert( _ScRangeList
+ 						b3D = ( static_cast<SCTAB>(nTabLast) != aEingPos.Tab() );
+ 						aCRD.Ref2.SetFlag3D( b3D );
+ 						aCRD.Ref2.SetTabRel( FALSE );
+-						rRangeList.Append( aCRD );
++						rRangeList.Append( aCRD, nTab );
+ 					}
+ 					else
+-						rRangeList.Append( aSRD );
++						rRangeList.Append( aSRD, nTab );
+ 				}
+ 			}
+ 
+@@ -1276,7 +1277,7 @@ ConvErr ExcelToSc::Convert( _ScRangeList
+ 					else if( IsComplRowRange( nRowFirst, nRowLast ) )
+ 						SetComplRow( aCRD );
+ 
+-					rRangeList.Append( aCRD );
++					rRangeList.Append( aCRD, nTab );
+ 				}//ENDE in aktuellem Workbook
+ 			}
+ 				break;
+Index: sc/source/filter/excel/excform8.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/excform8.cxx,v
+retrieving revision 1.38
+diff -u -w -p -r1.38 excform8.cxx
+--- sc/source/filter/excel/excform8.cxx	21 Oct 2005 11:55:53 -0000	1.38
++++ sc/source/filter/excel/excform8.cxx	1 Aug 2006 03:32:03 -0000
+@@ -796,7 +796,8 @@ ConvErr ExcelToSc8::Convert( const ScTok
+ 
+ 
+ // stream seeks to first byte after <nFormulaLen>
+-ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal_Size nFormulaLen, const FORMULA_TYPE eFT )
++ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal_Size nFormulaLen,
++							  SCsTAB nTab, const FORMULA_TYPE eFT )
+ {
+ 	BYTE					nOp, nLen;//, nByte;
+ 	BOOL					bError = FALSE;
+@@ -927,7 +928,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeLis
+ 
+                 ExcRelToScRel8( nRow, nCol, aSRD, bRangeName );
+ 
+-				rRangeList.Append( aSRD );
++				rRangeList.Append( aSRD, nTab );
+ 			}
+ 				break;
+ 			case 0x45:
+@@ -955,7 +956,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeLis
+ 				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+ 					SetComplRow( aCRD );
+ 
+-				rRangeList.Append( aCRD );
++				rRangeList.Append( aCRD, nTab );
+ 			}
+ 				break;
+ 			case 0x46:
+@@ -999,7 +1000,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeLis
+ 
+                 ExcRelToScRel8( nRow, nCol, aSRD, bRNorSF );
+ 
+-				rRangeList.Append( aSRD );
++				rRangeList.Append( aSRD, nTab );
+ 			}
+ 				break;
+ 			case 0x4D:
+@@ -1025,7 +1026,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeLis
+ 				else if( IsComplRowRange( nRowFirst, nRowLast ) )
+ 					SetComplRow( aCRD );
+ 
+-				rRangeList.Append( aCRD );
++				rRangeList.Append( aCRD, nTab );
+ 			}
+ 				break;
+ 			case 0x4E:
+@@ -1067,10 +1068,10 @@ ConvErr ExcelToSc8::Convert( _ScRangeLis
+ 						aCRD.Ref2.nCol = aSRD.nCol;
+ 						aCRD.Ref2.nRow = aSRD.nRow;
+                         aCRD.Ref2.nTab = nLastScTab;
+-						rRangeList.Append( aCRD );
++						rRangeList.Append( aCRD, nTab );
+ 					}
+ 					else
+-						rRangeList.Append( aSRD );
++						rRangeList.Append( aSRD, nTab );
+ 				}
+ 			}
+ 				break;
+@@ -1103,7 +1104,7 @@ ConvErr ExcelToSc8::Convert( _ScRangeLis
+ 					else if( IsComplRowRange( nRw1, nRw2 ) )
+ 						SetComplRow( aCRD );
+ 
+-					rRangeList.Append( aCRD );
++					rRangeList.Append( aCRD, nTab );
+ 				}
+ 			}
+ 				break;
+Index: sc/source/filter/excel/frmbase.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/frmbase.cxx,v
+retrieving revision 1.6
+diff -u -w -p -r1.6 frmbase.cxx
+--- sc/source/filter/excel/frmbase.cxx	8 Sep 2005 18:57:54 -0000	1.6
++++ sc/source/filter/excel/frmbase.cxx	1 Aug 2006 03:32:03 -0000
+@@ -87,7 +87,7 @@ _ScRangeListTabs::~_ScRangeListTabs()
+ }
+ 
+ 
+-void _ScRangeListTabs::Append( SingleRefData a, const BOOL b )
++void _ScRangeListTabs::Append( SingleRefData a, SCsTAB nTab, const BOOL b )
+ {
+ 	if( b )
+ 	{
+@@ -107,19 +107,24 @@ void _ScRangeListTabs::Append( SingleRef
+ 
+ 	bHasRanges = TRUE;
+ 
+-    if( a.nTab >= 0 )
++	if( nTab == SCTAB_MAX)
++		return;
++	if( nTab < 0)
++		nTab = a.nTab;
++
++    if( nTab >= 0 )
+     {
+-        _ScRangeList*   p = ppTabLists[ a.nTab ];
++        _ScRangeList*   p = ppTabLists[ nTab ];
+ 
+         if( !p )
+-            p = ppTabLists[ a.nTab ] = new _ScRangeList;
++            p = ppTabLists[ nTab ] = new _ScRangeList;
+ 
+         p->Append( a );
+     }
+ }
+ 
+ 
+-void _ScRangeListTabs::Append( ComplRefData a, const BOOL b )
++void _ScRangeListTabs::Append( ComplRefData a, SCsTAB nTab, const BOOL b )
+ {
+ 	if( b )
+ 	{
+@@ -167,12 +172,17 @@ void _ScRangeListTabs::Append( ComplRefD
+ 
+ 	bHasRanges = TRUE;
+ 
+-    if( a.Ref1.nTab >= 0 )
++	if( nTab == SCTAB_MAX)
++		return;
++	if( nTab < -1)
++		nTab = a.Ref1.nTab;
++
++    if( nTab >= 0 )
+     {
+-        _ScRangeList*   p = ppTabLists[ a.Ref1.nTab ];
++        _ScRangeList*   p = ppTabLists[ nTab ];
+ 
+         if( !p )
+-            p = ppTabLists[ a.Ref1.nTab ] = new _ScRangeList;
++            p = ppTabLists[ nTab ] = new _ScRangeList;
+ 
+         p->Append( a );
+     }
+Index: sc/source/filter/excel/xiname.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/xiname.cxx,v
+retrieving revision 1.9
+diff -u -p -r1.9 xiname.cxx
+--- sc/source/filter/excel/xiname.cxx	13 Jun 2007 09:11:04 -0000	1.9
++++ sc/source/filter/excel/xiname.cxx	25 Oct 2007 13:56:00 -0000
+@@ -174,16 +174,18 @@ XclImpName::XclImpName( XclImpStream& rS
+     }
+     else if( bBuiltIn )
+     {
++        SCsTAB const nLocalTab = (nXclTab == EXC_NAME_GLOBAL) ? SCTAB_MAX : (nXclTab - 1);
++
+         // --- print ranges or title ranges ---
+         rStrm.PushPosition();
+         switch( mcBuiltIn )
+         {
+             case EXC_BUILTIN_PRINTAREA:
+-                if( rFmlaConv.Convert( GetPrintAreaBuffer(), rStrm, nFmlaSize, FT_RangeName ) == ConvOK )
++                if( rFmlaConv.Convert( GetPrintAreaBuffer(), rStrm, nFmlaSize, nLocalTab, FT_RangeName ) == ConvOK )
+                     nNameType |= RT_PRINTAREA;
+             break;
+             case EXC_BUILTIN_PRINTTITLES:
+-                if( rFmlaConv.Convert( GetTitleAreaBuffer(), rStrm, nFmlaSize, FT_RangeName ) == ConvOK )
++                if( rFmlaConv.Convert( GetTitleAreaBuffer(), rStrm, nFmlaSize, nLocalTab, FT_RangeName ) == ConvOK )
+                     nNameType |= RT_COLHEADER | RT_ROWHEADER;
+             break;
+         }
+Index: sc/source/filter/inc/excform.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/excform.hxx,v
+retrieving revision 1.15
+diff -u -w -p -r1.15 excform.hxx
+--- sc/source/filter/inc/excform.hxx	28 Sep 2005 11:56:09 -0000	1.15
++++ sc/source/filter/inc/excform.hxx	1 Aug 2006 03:32:06 -0000
+@@ -72,7 +72,7 @@ protected:
+     virtual ConvErr     Convert( const ScTokenArray*&, XclImpStream& rStrm, sal_Size nFormulaLen,
+                                  bool bAllowArrays, const FORMULA_TYPE eFT = FT_CellFormula );
+ 
+-    virtual ConvErr     Convert( _ScRangeListTabs&, XclImpStream& rStrm, sal_Size nFormulaLen, const FORMULA_TYPE eFT = FT_CellFormula );
++    virtual ConvErr     Convert( _ScRangeListTabs&, XclImpStream& rStrm, sal_Size nFormulaLen, SCsTAB nTab, const FORMULA_TYPE eFT = FT_CellFormula );
+     virtual BOOL        GetAbsRefs( ScRangeList& rRangeList, XclImpStream& rStrm, sal_Size nLen );
+ 
+ 	void				GetDummy( const ScTokenArray*& );
+@@ -124,6 +125,6 @@ public:
+ 
+     virtual ConvErr     Convert( const ScTokenArray*& rpTokArray, XclImpStream& rStrm, sal_Size nFormulaLen, bool bAllowArrays, const FORMULA_TYPE eFT = FT_CellFormula );
+ 
+-    virtual ConvErr     Convert( _ScRangeListTabs&, XclImpStream& rStrm, sal_Size nFormulaLen, const FORMULA_TYPE eFT = FT_CellFormula );
++    virtual ConvErr     Convert( _ScRangeListTabs&, XclImpStream& rStrm, sal_Size nFormulaLen, SCsTAB nTab, const FORMULA_TYPE eFT = FT_CellFormula );
+ 
+ 	static inline BOOL	IsComplRowRange( const UINT16 nRow1, const UINT16 nRow2 );
+
+Index: sc/source/filter/inc/formel.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/formel.hxx,v
+retrieving revision 1.7
+diff -u -w -p -r1.7 formel.hxx
+--- sc/source/filter/inc/formel.hxx	8 Sep 2005 19:19:20 -0000	1.7
++++ sc/source/filter/inc/formel.hxx	1 Aug 2006 03:32:06 -0000
+@@ -176,8 +176,8 @@ public:
+ 								_ScRangeListTabs( void );
+ 	virtual						~_ScRangeListTabs();
+ 
+-	void						Append( SingleRefData aSRD, const BOOL bLimit = TRUE );
+-	void						Append( ComplRefData aCRD, const BOOL bLimit = TRUE );
++	void						Append( SingleRefData aSRD, SCsTAB nTab, const BOOL bLimit = TRUE );
++	void						Append( ComplRefData aCRD, SCsTAB nTab, const BOOL bLimit = TRUE );
+ 
+ 	inline BOOL					HasRanges( void ) const;
+ 
+@@ -240,7 +240,7 @@ public:
+ 
+     virtual ConvErr     Convert( const ScTokenArray*& rpErg, XclImpStream& rStrm, sal_Size nFormulaLen,
+                                  bool bAllowArrays, const FORMULA_TYPE eFT = FT_CellFormula ) = 0;
+-    virtual ConvErr     Convert( _ScRangeListTabs&, XclImpStream& rStrm, sal_Size nFormulaLen,
++    virtual ConvErr     Convert( _ScRangeListTabs&, XclImpStream& rStrm, sal_Size nFormulaLen, SCsTAB nTab,
+ 									const FORMULA_TYPE eFT = FT_CellFormula ) = 0;
+ };
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/msaccess-db-create-dialog-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/msaccess-db-create-dialog-fix.diff
@@ -0,0 +1,34 @@
+--- DataAccess.xcu	2005-08-19 13:18:24.000000000 +0530
++++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu	2005-08-19 11:24:38.000000000 +0530
+@@ -785,19 +785,6 @@
+       </node>
+     </node>
+   </node>
+-	<node oor:name="UserDefinedDriverSettings">
+-		<node oor:name="MDB Driver" oor:op="replace">
+-			<prop oor:name="DriverPageDisplayName">
+-				<value>MDB-SDBC Driver V 0.1</value>
+-			</prop>
+-			<prop oor:name="DriverTypeDisplayName">
+-				<value>mdb</value>
+-			</prop>
+-			<prop oor:name="DriverDsnPrefix">
+-				<value>sdbc:mdb:</value>
+-			</prop>
+-		</node>
+-	</node>
+ </oor:component-data>
+ 
+ 
+--- dbaccess/source/ui/misc/dbumiscres.src	2005-08-19 13:17:54.000000000 +0530
++++ dbaccess/source/ui/misc/dbumiscres.src	2005-08-18 11:03:31.000000000 +0530
+@@ -103,7 +103,8 @@
+ 	};
+ 	String STR_MSACCESS
+ 	{
+-		Text  ="sdbc:ado:access:PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=";
++		//Text  ="sdbc:ado:access:PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=";
++		Text  ="sdbc:mdb:";
+ 	};
+ 	String STR_FLAT
+ 	{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/check-buttons-rendering-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/check-buttons-rendering-fix.diff
@@ -0,0 +1,19 @@
+--- vcl/source/control/button.cxx	2005-07-06 14:49:53.000000000 +0530
++++ vcl/source/control/button.cxx	2005-09-02 19:03:25.000000000 +0530
+@@ -446,13 +446,15 @@ void Button::ImplDrawAlignedImage( Outpu
+     }
+     else if ( bDrawText && !bDrawImage && !bHasSymbol )
+     {
++        Rectangle aDrawRect = aOutRect;
++
+         aOutRect = pDev->GetTextRect( aOutRect, aText, nTextStyle );
+         rSize = aOutRect.GetSize();
+         rPos = aOutRect.TopLeft();
+ 
+         ImplSetFocusRect( aOutRect );
+         
+-        pDev->DrawText( aOutRect, aText, nTextStyle, pVector, pDisplayText );
++        pDev->DrawText( aDrawRect, aText, nTextStyle, pVector, pDisplayText );
+         return;
+     }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-stlport5.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-stlport5.diff
@@ -0,0 +1,338 @@
+--- sal/inc/rtl/allocator.hxx.orig	2006-07-28 13:39:12.000000000 +0200
++++ sal/inc/rtl/allocator.hxx	2006-07-28 13:40:05.000000000 +0200
+@@ -179,6 +179,7 @@
+ 
+ } /* namespace rtl */
+ 
++#if STLPORT_VERSION < 500
+ //######################################################
+ /** REQUIRED BY STLPort (see stlport '_alloc.h'): 
+     Hack for compilers that do not support member 
+@@ -195,6 +196,6 @@
+         return (::rtl::Allocator<U>&)(a);
+     }
+ }
+-
++#endif /* STLPORT_VERSION < 500 */
+ #endif /* INCLUDED_RTL_ALLOCATOR_HXX */
+ 
+--- store/source/storbase.cxx.orig	2006-03-27 21:09:31.000000000 +0200
++++ store/source/storbase.cxx	2006-03-27 21:10:51.000000000 +0200
+@@ -907,6 +907,7 @@
+ 	return false;
+ }
+ 
++#if STLPORT_VERSION < 500
+ //----------------------------------------------------------------------------
+ // see stlport '_alloc.h' comments why old compilers require the hack below.
+ //----------------------------------------------------------------------------
+@@ -921,6 +922,7 @@
+ 	}
+ }
+ #endif /* __STL_MEMBER_TEMPLATE_CLASSES */
++#endif /* STLPORT_VERSION < 500 */
+ 
+ /*========================================================================
+  *
+--- configmgr/source/api/confeventhelpers.cxx.orig	2006-03-25 19:17:41.000000000 +0100
++++ configmgr/source/api/confeventhelpers.cxx	2006-03-25 20:57:50.000000000 +0100
+@@ -105,7 +105,7 @@
+ 		Pathes const& pathes = iter->pathList();
+ 
+ 		// first clear the Path Map
+-		for(Pathes::iterator itPath = pathes.begin(); itPath != pathes.end(); ++itPath)
++		for(Pathes::const_iterator itPath = pathes.begin(); itPath != pathes.end(); ++itPath)
+ 		{
+ 			typedef PathMap::iterator PMIter;
+ 			typedef std::pair<PMIter, PMIter> PMRange;
+--- tools/source/generic/line.cxx.orig	2006-03-25 21:28:09.000000000 +0100
++++ tools/source/generic/line.cxx	2006-03-25 21:29:28.000000000 +0100
+@@ -61,7 +61,12 @@
+ 
+ double Line::GetLength() const
+ {
++#if STLPORT_VERSION < 500
+     return hypot( maStart.X() - maEnd.X(), maStart.Y() - maEnd.Y() );
++#else
++// STLport5 hypot does not accept long int's
++    return hypot( double(maStart.X() - maEnd.X()), double(maStart.Y() - maEnd.Y()) );
++#endif
+ }
+ 
+ // ------------------------------------------------------------------------
+--- vcl/source/gdi/jobset.cxx.orig	2006-03-25 21:50:33.000000000 +0100
++++ vcl/source/gdi/jobset.cxx	2006-03-26 16:04:55.000000000 +0200
+@@ -294,8 +294,13 @@
+ 		 (pData1->mnPaperWidth		== pData2->mnPaperWidth)			&&
+ 		 (pData1->mnPaperHeight 	== pData2->mnPaperHeight)			&&
+ 		 (pData1->mnDriverDataLen	== pData2->mnDriverDataLen) 		&&
+-		 (memcmp( pData1->mpDriverData, pData2->mpDriverData, pData1->mnDriverDataLen ) == 0)															&&
+-		 (pData1->maValueMap		== pData2->maValueMap)
++		 (memcmp( pData1->mpDriverData, pData2->mpDriverData, pData1->mnDriverDataLen ) == 0)
++#if STLPORT_VERSION < 500
++		 && (pData1->maValueMap		== pData2->maValueMap)
++#else
++//FIXME: STLport5 alternative map compare?
++		 && (pData1->maValueMap.size()	== pData2->maValueMap.size())
++#endif
+ 		 )
+ 		return TRUE;
+ 
+--- xmloff/source/core/nmspmap.cxx.orig	2006-03-26 12:37:20.000000000 +0200
++++ xmloff/source/core/nmspmap.cxx	2006-03-26 15:38:07.000000000 +0200
+@@ -103,7 +103,12 @@
+ 
+ int SvXMLNamespaceMap::operator ==( const SvXMLNamespaceMap& rCmp ) const
+ {
++#if STLPORT_VERSION < 500
+ 	return static_cast < int > (aNameHash == rCmp.aNameHash);
++#else
++//FIXME: STLport5 alternative map compare?
++	return static_cast < int > (aNameHash.size() == rCmp.aNameHash.size());
++#endif
+ }
+ 
+ sal_uInt16 SvXMLNamespaceMap::_Add( const OUString& rPrefix, const OUString &rName, sal_uInt16 nKey )
+--- xmloff/source/style/xmlnumfe.cxx.orig	2006-03-26 15:54:06.000000000 +0200
++++ xmloff/source/style/xmlnumfe.cxx	2006-03-26 15:54:33.000000000 +0200
+@@ -172,13 +172,13 @@
+ 
+ sal_Bool SvXMLNumUsedList_Impl::IsUsed( sal_uInt32 nKey ) const
+ {
+-	SvXMLuInt32Set::iterator aItr = aUsed.find(nKey);
++	SvXMLuInt32Set::const_iterator aItr = aUsed.find(nKey);
+ 	return (aItr != aUsed.end());
+ }
+ 
+ sal_Bool SvXMLNumUsedList_Impl::IsWasUsed( sal_uInt32 nKey ) const
+ {
+-	SvXMLuInt32Set::iterator aItr = aWasUsed.find(nKey);
++	SvXMLuInt32Set::const_iterator aItr = aWasUsed.find(nKey);
+ 	return (aItr != aWasUsed.end());
+ }
+ 
+--- svx/source/svdraw/svdouno.cxx.orig	2006-03-26 17:21:56.000000000 +0200
++++ svx/source/svdraw/svdouno.cxx	2006-03-26 17:22:47.000000000 +0200
+@@ -875,7 +875,7 @@
+         SdrViewIter aIter( this );
+ 	    for ( SdrView* pView = aIter.FirstView(); pView; pView = aIter.NextView() )
+         {
+-            ::std::set< SdrView* >::const_iterator aPrevPos = aPreviouslyVisible.find( pView );
++            ::std::set< SdrView* >::iterator aPrevPos = aPreviouslyVisible.find( pView );
+             if ( aPreviouslyVisible.end() != aPrevPos )
+             {   // in pView, we were visible _before_ the layer change, and are
+                 // visible _after_ the layer change, too
+--- sc/source/core/inc/bcaslot.hxx.orig	2006-03-26 18:50:41.000000000 +0200
++++ sc/source/core/inc/bcaslot.hxx	2006-03-26 19:05:42.000000000 +0200
+@@ -109,7 +109,7 @@
+ 	ScDocument*			pDoc;
+ 	ScBroadcastAreaSlotMachine* pBASM;
+ 
+-    ScBroadcastAreas::iterator  FindBroadcastArea( const ScRange& rRange ) const;
++    ScBroadcastAreas::iterator  FindBroadcastArea( const ScRange& rRange );
+ 
+ public:
+ 						ScBroadcastAreaSlot( ScDocument* pDoc,
+--- sc/source/core/data/bcaslot.cxx.orig	2006-03-26 18:23:16.000000000 +0200
++++ sc/source/core/data/bcaslot.cxx	2006-03-26 19:04:58.000000000 +0200
+@@ -204,7 +204,7 @@
+ 
+ 
+ ScBroadcastAreas::iterator ScBroadcastAreaSlot::FindBroadcastArea(
+-        const ScRange& rRange ) const
++        const ScRange& rRange )
+ {
+ 	aTmpSeekBroadcastArea.UpdateRange( rRange);
+     return aBroadcastAreaTbl.find( &aTmpSeekBroadcastArea);
+--- sw/source/core/SwNumberTree/SwNumberTree.cxx.orig	2006-03-28 18:54:36.000000000 +0200
++++ sw/source/core/SwNumberTree/SwNumberTree.cxx	2006-03-28 19:13:32.000000000 +0200
+@@ -160,7 +160,7 @@
+     }
+ }
+ 
+-void SwNumberTreeNode::ValidateHierarchical(const SwNumberTreeNode * pNode) const
++void SwNumberTreeNode::ValidateHierarchical(const SwNumberTreeNode * pNode)
+ {
+     tSwNumberTreeChildren::iterator aValidateIt =
+         GetIterator(pNode);
+@@ -282,7 +282,7 @@
+     }
+ }
+ 
+-void SwNumberTreeNode::ValidateContinuous(const SwNumberTreeNode * pNode) const
++void SwNumberTreeNode::ValidateContinuous(const SwNumberTreeNode * pNode)
+ {
+     tSwNumberTreeChildren::iterator aIt = mItLastValid;
+ 
+@@ -340,7 +340,7 @@
+     SetLastValid(aIt);
+ }
+ 
+-void SwNumberTreeNode::Validate(const SwNumberTreeNode * pNode) const
++void SwNumberTreeNode::Validate(const SwNumberTreeNode * pNode)
+ {
+     if (! IsValid(pNode))
+     {
+@@ -869,7 +869,7 @@
+ 
+ bool SwNumberTreeNode::IsFirst(const SwNumberTreeNode * pNode) const
+ {
+-    tSwNumberTreeChildren::iterator aIt = mChildren.begin();
++    tSwNumberTreeChildren::const_iterator aIt = mChildren.begin();
+ 
+     if ((*aIt)->IsPhantom())
+         aIt++;
+@@ -1020,7 +1020,7 @@
+ #endif // __SW_NUMBER_TREE_SANITY_CHECK
+ 
+ SwNumberTreeNode::tSwNumberTreeChildren::iterator
+-SwNumberTreeNode::GetIterator(const SwNumberTreeNode * pChild) const
++SwNumberTreeNode::GetIterator(const SwNumberTreeNode * pChild)
+ {
+     SwNumberTreeNode * pRoot = GetRoot();
+ 
+@@ -1136,7 +1136,7 @@
+     return ! SwNumberTreeNodeLessThan(pA, pB);
+ }
+ 
+-SwNumberTreeNode * SwNumberTreeNode::GetLastDescendant() const
++SwNumberTreeNode * SwNumberTreeNode::GetLastDescendant()
+ {
+     SwNumberTreeNode * pResult = NULL;
+     tSwNumberTreeChildren::reverse_iterator aIt = mChildren.rbegin();
+@@ -1184,7 +1184,7 @@
+ 
+ void SwNumberTreeNode::SetLastValid
+                     ( SwNumberTreeNode::tSwNumberTreeChildren::iterator aItValid,
+-                      bool bValidating ) const
++                      bool bValidating )
+ {
+     if (! (aItValid == mChildren.end() ||
+            GetIterator(*aItValid) != mChildren.end()))
+@@ -1249,7 +1249,7 @@
+     }
+ }
+ 
+-void SwNumberTreeNode::InvalidateTree() const
++void SwNumberTreeNode::InvalidateTree()
+ {
+     // do not call SetInvalid, would cause loop !!!
+     mItLastValid = mChildren.end();
+--- sw/inc/SwNumberTree.hxx.orig	2006-03-28 18:54:48.000000000 +0200
++++ sw/inc/SwNumberTree.hxx	2006-03-28 19:13:44.000000000 +0200
+@@ -196,7 +196,7 @@
+ 
+        @attention All invalid children preceding pNode are validated, too.
+      */
+-    void Validate(const SwNumberTreeNode * pNode) const;
++    void Validate(const SwNumberTreeNode * pNode);
+ 
+     /**
+        Validates a child using hierarchical numbering.
+@@ -205,7 +205,7 @@
+ 
+        @attention All invalid children preceding pNode are validated, too.
+      */
+-    void ValidateHierarchical(const SwNumberTreeNode * pNode) const;
++    void ValidateHierarchical(const SwNumberTreeNode * pNode);
+ 
+     /**
+        Validates a child using continuous numbering.
+@@ -214,7 +214,7 @@
+ 
+        @attention All invalid children preceding pNode are validated, too.
+      */
+-    void ValidateContinuous(const SwNumberTreeNode * pNode) const;
++    void ValidateContinuous(const SwNumberTreeNode * pNode);
+ 
+     /**
+         HB, OD : return node, if it isn't a phantom, otherwise return first
+@@ -230,7 +230,7 @@
+ 
+        @return last descendant of the node
+     */
+-    SwNumberTreeNode * GetLastDescendant() const;
++    SwNumberTreeNode * GetLastDescendant();
+ 
+     /**
+        Returns the greatest descendant of the root that is smaller than
+@@ -250,7 +250,7 @@
+                                         the current last valid node
+      */
+     void SetLastValid(tSwNumberTreeChildren::iterator aItLastValid,
+-                      bool bValidating = false) const;
++                      bool bValidating = false);
+ 
+     /**
+        Set this node as last valid child of its parent.
+@@ -266,7 +266,7 @@
+        of childs are set to the end of this list, thereby stating all
+        children in the list are invalid.
+      */
+-    void InvalidateTree() const;
++    void InvalidateTree();
+ 
+     /**
+        Notifies the node.
+@@ -368,7 +368,7 @@
+ #endif // __SW_NUMBER_TREE_SANITY_CHECK
+ 
+     tSwNumberTreeChildren::iterator
+-    GetIterator(const SwNumberTreeNode * pChild) const;
++    GetIterator(const SwNumberTreeNode * pChild);
+ 
+     // --> OD 2006-04-26 #i64010# - made pure virtual
+     virtual bool HasCountedChildren() const = 0;
+--- sw/source/core/SwNumberTree/SwNodeNum.cxx.orig	2006-05-13 20:32:14.000000000 +0200
++++ sw/source/core/SwNumberTree/SwNodeNum.cxx	2006-05-13 20:30:38.000000000 +0200
+@@ -167,7 +167,7 @@
+ {
+     bool bResult = false;
+ 
+-    tSwNumberTreeChildren::iterator aIt;
++    tSwNumberTreeChildren::const_iterator aIt;
+ 
+     for (aIt = mChildren.begin(); aIt != mChildren.end(); aIt++)
+     {
+--- sw/source/core/layout/paintfrm.cxx.orig	2007-05-04 20:25:34.000000000 +0200
++++ sw/source/core/layout/paintfrm.cxx	2007-05-04 20:28:38.000000000 +0200
+@@ -2372,7 +2372,7 @@
+             break;
+ 
+         const SwLineEntrySet& rEntrySet = (*aIter).second;
+-        SwLineEntrySetIter aSetIter = rEntrySet.begin();
++        SwLineEntrySetConstIter aSetIter = rEntrySet.begin();
+         while ( aSetIter != rEntrySet.end() )
+         {
+             const SwLineEntry& rEntry = *aSetIter;
+--- sw/source/core/unocore/unochart.cxx.orig	2007-06-26 22:55:22.000000000 +0200
++++ sw/source/core/unocore/unochart.cxx	2007-06-26 22:57:42.000000000 +0200
+@@ -1515,7 +1515,7 @@
+ 	       pTable->GetFrmFmt()->GetDoc()->GetChartControllerHelper().StartOrContinueLocking();
+ 
+ 		const Set_DataSequenceRef_t &rSet = aDataSequences[ pTable ];
+-        Set_DataSequenceRef_t::iterator aIt( rSet.begin() );
++        Set_DataSequenceRef_t::const_iterator aIt( rSet.begin() );
+         while (aIt != rSet.end())
+         {
+             uno::Reference< util::XModifiable > xRef( uno::Reference< chart2::data::XDataSequence >(*aIt), uno::UNO_QUERY );
+@@ -1589,8 +1589,8 @@
+ 			pTable->GetFrmFmt()->GetDoc()->GetChartControllerHelper().StartOrContinueLocking();
+ 
+         const Set_DataSequenceRef_t &rSet = aDataSequences[ pTable ];
+-        Set_DataSequenceRef_t::iterator aIt( rSet.begin() );
+-        Set_DataSequenceRef_t::iterator aEndIt( rSet.end() );
++        Set_DataSequenceRef_t::const_iterator aIt( rSet.begin() );
++        Set_DataSequenceRef_t::const_iterator aEndIt( rSet.end() );
+         while (aIt != aEndIt)
+         {
+             uno::Reference< lang::XComponent > xRef( uno::Reference< chart2::data::XDataSequence >(*aIt), uno::UNO_QUERY );
+@@ -1657,7 +1657,7 @@
+ 
+ 			// iterate over all data-sequences for the table
+ 			const Set_DataSequenceRef_t &rSet = aDataSequences[ &rTable ];
+-			Set_DataSequenceRef_t::iterator aIt( rSet.begin() );
++			Set_DataSequenceRef_t::const_iterator aIt( rSet.begin() );
+ 			while (aIt != rSet.end())
+ 			{
+ 				uno::Reference< chart2::data::XTextualDataSequence > xRef( uno::Reference< chart2::data::XDataSequence >(*aIt), uno::UNO_QUERY );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-graphic-save-problem.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-graphic-save-problem.diff
@@ -0,0 +1,18 @@
+Index: sw/source/core/graphic/ndgrf.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/core/graphic/ndgrf.cxx,v
+retrieving revision 1.33
+diff -u -r1.33 ndgrf.cxx
+--- sw/source/core/graphic/ndgrf.cxx
++++ sw/source/core/graphic/ndgrf.cxx
+@@ -1138,6 +1149,10 @@
+ 	if( !aUserData.Len() )
+         return;
+ 
++	if (aNewStrmName.Len()>0) {
++	    aUserData=aNewStrmName;
++	}
++
+ 	String aProt( RTL_CONSTASCII_STRINGPARAM( "vnd.sun.star.Package:" ) );
+ 	if( 0 == aUserData.CompareTo( aProt, aProt.Len() ) )
+ 	{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-openformula-match.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-openformula-match.diff
@@ -0,0 +1,174 @@
+Index: sc/source/core/tool/interpr1.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/tool/interpr1.cxx,v
+retrieving revision 1.53
+diff -u -r1.53 interpr1.cxx
+--- sc/source/core/tool/interpr1.cxx	1 Nov 2007 16:23:17 -0000	1.53
++++ sc/source/core/tool/interpr1.cxx	13 Feb 2008 17:00:48 -0000
+@@ -3815,9 +3815,49 @@
+ 	}
+ }
+ 
++/** returns -1 when the matrix value is smaller than the query value, 0 when
++    they are equal, and 1 when the matrix value is larger than the query
++    value. */
++static sal_Int8 lcl_CompareMatrix2Query(SCSIZE i, const ScMatrix& rMat, const ScQueryEntry& rEntry)
++{
++    if (rMat.IsValue(i))
++    {
++        const double nVal1 = rMat.GetDouble(i);
++        const double nVal2 = rEntry.nVal;
++        if (nVal1 == nVal2)
++            return 0;
++
++        return nVal1 < nVal2 ? -1 : 1;
++    }
++
++    if (!rEntry.pStr)
++        // this should not happen!
++        return 1;
++
++    const String& rStr1 = rMat.GetString(i);
++    const String& rStr2 = *rEntry.pStr;
++
++    return rStr1.CompareIgnoreCaseToAscii(rStr2); // case-insensitive
++}
++
++/** returns the last item with the identical value as the original item
++    value. */
++static void lcl_GetLastMatch(SCSIZE& rIndex, const ScMatrix& rMat, SCSIZE nMatCount,
++                             bool bReverse)
++{
++    double nVal = rMat.GetDouble(rIndex);
++    if (bReverse)
++        while (rIndex > 0 && nVal == rMat.GetDouble(rIndex-1))
++            --rIndex;
++    else
++        while (rIndex < nMatCount-1 && nVal == rMat.GetDouble(rIndex+1))
++            ++rIndex;
++}
+ 
+ void ScInterpreter::ScMatch()
+ {
++    ScMatrixRef pMatSrc = NULL;
++
+ 	BYTE nParamCount = GetByte();
+ 	if ( MustHaveParamCount( nParamCount, 2, 3 ) )
+ 	{
+@@ -3841,6 +3881,15 @@
+ 				return;
+ 			}
+ 		}
++        else if (GetStackType() == svMatrix)
++        {
++            pMatSrc = PopMatrix();
++            if (!pMatSrc)
++            {
++                SetIllegalParameter();
++                return;
++            }
++        }
+ 		else
+ 		{
+ 			SetIllegalParameter();
+@@ -3918,6 +3967,100 @@
+ 			}
+ 			if ( rEntry.bQueryByString )
+                 rParam.bRegExp = MayBeRegExp( *rEntry.pStr, pDok );
++
++            if (pMatSrc) // The source data is matrix array.
++            {
++                SCSIZE nC, nR;
++                pMatSrc->GetDimensions(nC, nR);
++                if (nC > 1 && nR > 1)
++                {
++                    // The source matrix must be a vector.
++                    SetIllegalParameter();
++                    return;
++                }
++                SCSIZE nMatCount = (nC == 1) ? nR : nC;
++
++                // simple serial search for equality mode (source data doesn't 
++                // need to be sorted).
++
++                if (rEntry.eOp == SC_EQUAL)
++                {
++                    for (SCSIZE i = 0; i < nMatCount; ++i)
++                    {
++                        if (lcl_CompareMatrix2Query(i, *pMatSrc, rEntry) == 0)
++                        {
++                            PushDouble(i+1); // found !
++                            return;
++                        }
++                    }
++                    SetNA(); // not found
++                    return;
++                }
++
++                // binary search for non-equality mode (the source data is
++                // assumed to be sorted).
++
++                bool bAscOrder = (rEntry.eOp == SC_LESS_EQUAL);
++                SCSIZE nFirst = 0, nLast = nMatCount-1, nHitIndex = 0;
++                for (SCSIZE nLen = nLast-nFirst; nLen > 0; nLen = nLast-nFirst)
++                {
++                    SCSIZE nMid = nFirst + nLen/2;
++                    sal_Int8 nCmp = lcl_CompareMatrix2Query(nMid, *pMatSrc, rEntry);
++                    if (nCmp == 0)
++                    {
++                        // exact match.  find the last item with the same value.
++                        lcl_GetLastMatch(nMid, *pMatSrc, nMatCount, !bAscOrder);
++                        PushDouble(nMid+1);
++                        return;
++                    }
++
++                    if (nLen == 1) // first and last items are next to each other.
++                    {
++                        if (nCmp < 0)
++                            nHitIndex = bAscOrder ? nLast : nFirst;
++                        else
++                            nHitIndex = bAscOrder ? nFirst : nLast;
++                        break;
++                    }
++
++                    if (nCmp < 0)
++                    {
++                        if (bAscOrder)
++                            nFirst = nMid;
++                        else
++                            nLast = nMid;
++                    }
++                    else
++                    {
++                        if (bAscOrder)
++                            nLast = nMid;
++                        else
++                            nFirst = nMid;
++                    }
++                }
++
++                if (nHitIndex == nMatCount-1) // last item
++                {
++                    sal_Int8 nCmp = lcl_CompareMatrix2Query(nHitIndex, *pMatSrc, rEntry);
++                    if ((bAscOrder && nCmp <= 0) || (!bAscOrder && nCmp >= 0))
++                    {
++                        // either the last item is an exact match or the real
++                        // hit is beyond the last item.
++                        PushDouble(nHitIndex+1); 
++                        return;
++                    }
++                }
++
++                if (nHitIndex > 0) // valid hit must be 2nd item or higher
++                {
++                    PushDouble(nHitIndex); // non-exact match
++                    return;
++                }
++
++                SetNA();
++                return;
++            }
++
+ 			SCCOLROW nDelta = 0;
+             if (nCol1 == nCol2)
+             {                                           // search row in column
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sal-strintern-speed.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sal-strintern-speed.diff
@@ -0,0 +1,223 @@
+Index: sal/rtl/source/hash.cxx
+===================================================================
+RCS file: /cvs/porting/sal/rtl/source/hash.cxx,v
+retrieving revision 1.3
+diff -u -r1.3 hash.cxx
+--- sal/rtl/source/hash.cxx	19 Apr 2007 11:56:36 -0000	1.3
++++ sal/rtl/source/hash.cxx	15 Jun 2007 09:06:33 -0000
+@@ -34,15 +34,17 @@
+  ************************************************************************/
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_sal.hxx"
+-
+-#ifndef INCLUDED_RTL_ALLOCATOR_HXX
+-#include "rtl/allocator.hxx"
+-#endif
++// #include "precompiled_sal.hxx"
+ 
+ #include "hash.h"
+ #include "strimp.h"
++#include <osl/diagnose.h>
++
++#if 0
+ 
++#ifndef INCLUDED_RTL_ALLOCATOR_HXX
++#include "rtl/allocator.hxx"
++#endif
+ 
+ #include <hash_set>
+ 
+@@ -121,3 +123,192 @@
+ {
+     pHash->erase(pString);
+ }
++
++#else
++
++// --------------------------- start here ---------------------------
++
++struct StringHashTableImpl {
++    sal_uInt32    nEntries;
++    sal_uInt32    nSize;
++    rtl_uString **pData;
++};
++
++// Better / smaller / faster hash set ....
++
++// TODO: add bottom bit-set list terminator to string list
++
++static sal_uInt32
++getNextSize (sal_uInt32 nSize)
++{
++    // Sedgewick - Algorithms in C P577.
++    static const sal_uInt32 nPrimes[] = { 1021, 2039, 4093, 8191, 16381, 32749,
++                                          65521, 131071,262139, 524287, 1048573,
++                                          2097143, 4194301, 8388593, 16777213,
++                                          33554393, 67108859, 134217689 };
++    #define NUM_PRIMES (sizeof (nPrimes)/ sizeof (nPrimes[0]))
++    for (int i = 0; i < NUM_PRIMES; i++)
++    {
++        if (nPrimes[i] > nSize)
++            return nPrimes[i];
++    }
++    return nSize * 2;
++}
++
++static sal_uInt32
++hashString (rtl_uString *pString)
++{
++    return (sal_uInt32) rtl_ustr_hashCode_WithLength (pString->buffer,
++                                                      pString->length);
++}
++
++StringHashTable *
++rtl_str_hash_new (sal_uInt32 nSize)
++{
++    StringHashTable *pHash = (StringHashTable *)malloc (sizeof (StringHashTable));
++
++    pHash->nEntries = 0;
++    pHash->nSize = getNextSize (nSize);
++    pHash->pData = (rtl_uString **) calloc (sizeof (rtl_uString *), pHash->nSize);
++
++    return pHash;
++}
++
++static void
++rtl_str_hash_insert_nonequal (StringHashTable   *pHash,
++                              rtl_uString       *pString)
++{
++    sal_uInt32  nHash = hashString (pString);
++    sal_uInt32  n;
++    rtl_uString *pHashStr;
++
++    n = nHash % pHash->nSize;
++    while ((pHashStr = pHash->pData[n]) != NULL) {
++        n++;
++        if (n >= pHash->nSize)
++            n = 0;
++    }
++    pHash->pData[n] = pString;
++}
++
++static void
++rtl_str_hash_resize (StringHashTable  *pHash,
++                     sal_uInt32        nNewSize)
++{
++    sal_uInt32 i;
++    StringHashTable *pNewHash;
++
++    OSL_ASSERT (nNewSize > pHash->nEntries);
++    
++    pNewHash = rtl_str_hash_new (nNewSize);
++
++    for (i = 0; i < pHash->nSize; i++)
++    {
++        if (pHash->pData[i] != NULL)
++            rtl_str_hash_insert_nonequal (pNewHash, pHash->pData[i]);
++    }
++    pNewHash->nEntries = pHash->nEntries;
++    free (pHash->pData);
++    *pHash = *pNewHash;
++    pNewHash->pData = NULL;
++    rtl_str_hash_free (pNewHash);
++}
++
++void
++rtl_str_hash_free (StringHashTable *pHash)
++{
++    if (!pHash)
++        return;
++    if (pHash->pData)
++        free (pHash->pData);
++    free (pHash);
++}
++
++static int
++compareEqual (rtl_uString *pStringA, rtl_uString *pStringB)
++{
++    if (pStringA == pStringB)
++        return 1;
++    if (pStringA->length != pStringB->length)
++        return 0;
++    return !rtl_ustr_compare_WithLength( pStringA->buffer, pStringA->length,
++                                         pStringB->buffer, pStringB->length);
++}
++
++rtl_uString *
++rtl_str_hash_intern (StringHashTable   *pHash,
++                     rtl_uString       *pString,
++                     int                can_return)
++{
++    sal_uInt32  nHash = hashString (pString);
++    sal_uInt32  n;
++    rtl_uString *pHashStr;
++
++    // Should we resize ?
++    if (pHash->nEntries >= pHash->nSize/2)
++        rtl_str_hash_resize (pHash, getNextSize(pHash->nSize));
++
++    n = nHash % pHash->nSize;
++    while ((pHashStr = pHash->pData[n]) != NULL) {
++        if (compareEqual (pHashStr, pString))
++        {
++            rtl_uString_acquire (pHashStr);
++            return pHashStr;
++        }
++        n++;
++        if (n >= pHash->nSize)
++            n = 0;
++    }
++
++    if (!can_return)
++    {
++        rtl_uString *pCopy = NULL;
++        rtl_uString_newFromString( &pCopy, pString );
++        pString = pCopy;
++        if (!pString)
++            return NULL;
++    }
++
++    if (!SAL_STRING_IS_STATIC (pString))
++        pString->refCount |= SAL_STRING_INTERN_FLAG;
++    pHash->pData[n] = pString;
++    pHash->nEntries++;
++
++    return pString;
++}
++
++void
++rtl_str_hash_remove (StringHashTable   *pHash,
++                     rtl_uString       *pString)
++{
++    sal_uInt32   n;
++    sal_uInt32   nHash = hashString (pString);
++    rtl_uString *pHashStr;
++
++    n = nHash % pHash->nSize;
++    while ((pHashStr = pHash->pData[n]) != NULL) {
++        if (compareEqual (pHashStr, pString))
++            break;
++        n++;
++        if (n >= pHash->nSize)
++            n = 0;
++    }
++    OSL_ASSERT (pHash->pData[n] != 0);
++    if (pHash->pData[n] == NULL)
++        return;
++
++    pHash->pData[n++] = NULL;
++    pHash->nEntries--;
++
++    while ((pHashStr = pHash->pData[n]) != NULL) {
++        pHash->pData[n] = NULL;
++        // FIXME: rather unsophisticated and N^2 in chain-length, but robust.
++        rtl_str_hash_insert_nonequal (pHash, pHashStr);
++        n++;
++        if (n >= pHash->nSize)
++            n = 0;
++    }
++    // FIXME: Should we down-size ?
++}
++
++#endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-sjfixes09.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-sjfixes09.diff
@@ -0,0 +1,448 @@
+Index: source/filter.vcl/wmf/enhwmf.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/filter.vcl/wmf/enhwmf.cxx,v
+retrieving revision 1.35.130.1
+retrieving revision 1.35.130.1.6.2
+diff -u -r1.35.130.1 -r1.35.130.1.6.2
+--- svtools/source/filter.vcl/wmf/enhwmf.cxx	18 Jan 2008 10:04:18 -0000	1.35.130.1
++++ svtools/source/filter.vcl/wmf/enhwmf.cxx	24 Sep 2008 18:51:05 -0000	1.35.130.1.6.2
+@@ -343,28 +343,34 @@
+ 				// Anzahl der Polygone:
+ 				*pWMF >> nPoly >> i;
+ 
+-				// Anzahl der Punkte eines jeden Polygons holen, Gesammtzahl der Punkte ermitteln:
+-				pnPoints = new UINT16[ nPoly ];
+-
+-				for ( i = 0; i < nPoly; i++ )
++				// taking the amount of points of each polygon, retrieving the total number of points
++				if ( static_cast< sal_uInt32 >(nPoly) < SAL_MAX_UINT32 / sizeof(UINT16) )
+ 				{
+-					*pWMF >> nPoints;
+-					pnPoints[ i ] = (UINT16)nPoints;
+-				}
++					if ( ( static_cast< sal_uInt32 >( nPoly ) * sizeof(UINT16) ) <= ( nEndPos - pWMF->Tell() ) )
++					{
++						pnPoints = new UINT16[ nPoly ];
+ 
+-				// Polygonpunkte holen:
++						for ( i = 0; i < nPoly; i++ )
++						{
++							*pWMF >> nPoints;
++							pnPoints[ i ] = (UINT16)nPoints;
++						}
+ 
+-				for ( i = 0; i < nPoly; i++ )
+-				{
+-					Polygon aPoly( pnPoints[ i ] );
+-					for( UINT16 k = 0; k < pnPoints[ i ]; k++ )
+-					{
+-						*pWMF >> nX32 >> nY32;
+-						aPoly[ k ] = Point( nX32, nY32 );
++						// Polygonpunkte holen:
++
++						for ( i = 0; ( i < nPoly ) && !pWMF->IsEof(); i++ )
++						{
++							Polygon aPoly( pnPoints[ i ] );
++							for( UINT16 k = 0; k < pnPoints[ i ]; k++ )
++							{
++								*pWMF >> nX32 >> nY32;
++								aPoly[ k ] = Point( nX32, nY32 );
++							}
++							pOut->DrawPolyLine( aPoly, sal_False, bRecordPath );
++						}
++						delete[] pnPoints;
+ 					}
+-					pOut->DrawPolyLine( aPoly, sal_False, bRecordPath );
+ 				}
+-				delete[] pnPoints;
+ 			}
+ 			break;
+ 
+@@ -379,30 +385,35 @@
+ 				// Anzahl der Polygone:
+ 				*pWMF >> nPoly >> nGesPoints;
+ 
+-				if (nGesPoints < SAL_MAX_UINT32 / sizeof(Point))
++				if ( ( nGesPoints < SAL_MAX_UINT32 / sizeof(Point) ) && ( nPoly < SAL_MAX_UINT32 / sizeof(UINT16) ) )
+ 				{
+-
+-					// Anzahl der Punkte eines jeden Polygons holen, Gesammtzahl der Punkte ermitteln:
+-					pnPoints = new UINT16[ nPoly ];
+-	
+-					for ( i = 0; i < nPoly; i++ )
+-					{
+-						*pWMF >> nPoints;
+-						pnPoints[ i ] = (UINT16)nPoints;
+-					}
+-					// Polygonpunkte holen:
+-					pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
+-	
+-					for ( i = 0; i < nGesPoints; i++ )
++					if ( ( nPoly * sizeof(UINT16) ) <= ( nEndPos - pWMF->Tell() ) )
+ 					{
+-						*pWMF >> nX32 >> nY32;
+-						pPtAry[ i ] = Point( nX32, nY32 );
++						pnPoints = new UINT16[ nPoly ];
++		
++						for ( i = 0; i < nPoly; i++ )
++						{
++							*pWMF >> nPoints;
++							pnPoints[ i ] = (UINT16)nPoints;
++						}
++
++						if ( ( nGesPoints * sizeof(Point) ) <= ( nEndPos - pWMF->Tell() ) )
++						{
++							// Polygonpunkte holen:
++							pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
++			
++							for ( i = 0; i < nGesPoints; i++ )
++							{
++								*pWMF >> nX32 >> nY32;
++								pPtAry[ i ] = Point( nX32, nY32 );
++							}
++							// PolyPolygon Actions erzeugen
++							PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
++							pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
++							delete[] (char*) pPtAry;
++						}
++						delete[] pnPoints;
+ 					}
+-					// PolyPolygon Actions erzeugen
+-					PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
+-					pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
+-					delete[] (char*) pPtAry;
+-					delete[] pnPoints;
+ 				}
+ 			}
+ 			break;
+@@ -839,32 +850,35 @@
+ 				else
+ 				{
+ 					UINT32 nSize = cbBmiSrc + cbBitsSrc + 14;
+-					char* pBuf = new char[ nSize ];
+-					SvMemoryStream aTmp( pBuf, nSize, STREAM_READ | STREAM_WRITE );
+-					aTmp.ObjectOwnsMemory( TRUE );
+-					aTmp << (BYTE)'B'
+-						 << (BYTE)'M'
+-						 << (UINT32)cbBitsSrc
+-						 << (UINT16)0
+-						 << (UINT16)0
+-						 << (UINT32)cbBmiSrc + 14;
+-					pWMF->Seek( nStart + offBmiSrc );
+-					pWMF->Read( pBuf + 14, cbBmiSrc );
+-					pWMF->Seek( nStart + offBitsSrc );
+-					pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
+-					aTmp.Seek( 0 );
+-					aBitmap.Read( aTmp, TRUE );
+-
+-					// test if it is sensible to crop
+-					if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
+-						( xSrc >= 0 ) && ( ySrc >= 0 ) &&
+-							( xSrc + cxSrc <= aBitmap.GetSizePixel().Width() ) &&
+-								( ySrc + cySrc <= aBitmap.GetSizePixel().Height() ) )
++					if ( nSize <= ( nEndPos - nStartPos ) )
+ 					{
+-						Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
+-						aBitmap.Crop( aCropRect );
++						char* pBuf = new char[ nSize ];
++						SvMemoryStream aTmp( pBuf, nSize, STREAM_READ | STREAM_WRITE );
++						aTmp.ObjectOwnsMemory( TRUE );
++						aTmp << (BYTE)'B'
++							 << (BYTE)'M'
++							 << (UINT32)cbBitsSrc
++							 << (UINT16)0
++							 << (UINT16)0
++							 << (UINT32)cbBmiSrc + 14;
++						pWMF->Seek( nStart + offBmiSrc );
++						pWMF->Read( pBuf + 14, cbBmiSrc );
++						pWMF->Seek( nStart + offBitsSrc );
++						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
++						aTmp.Seek( 0 );
++						aBitmap.Read( aTmp, TRUE );
++
++						// test if it is sensible to crop
++						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
++							( xSrc >= 0 ) && ( ySrc >= 0 ) &&
++								( xSrc + cxSrc <= aBitmap.GetSizePixel().Width() ) &&
++									( ySrc + cySrc <= aBitmap.GetSizePixel().Height() ) )
++						{
++							Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
++							aBitmap.Crop( aCropRect );
++						}
++ 						aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ), LIST_APPEND );
+ 					}
+- 					aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ), LIST_APPEND );
+ 				}
+ 			}
+ 			break;
+@@ -890,32 +904,35 @@
+ 				else
+ 				{
+ 					UINT32 nSize = cbBmiSrc + cbBitsSrc + 14;
+-					char* pBuf = new char[ nSize ];
+-					SvMemoryStream aTmp( pBuf, nSize, STREAM_READ | STREAM_WRITE );
+-					aTmp.ObjectOwnsMemory( TRUE );
+-					aTmp << (BYTE)'B'
+-						<< (BYTE)'M'
+-						<< (UINT32)cbBitsSrc
+-						<< (UINT16)0
+-						<< (UINT16)0
+-						<< (UINT32)cbBmiSrc + 14;
+-					pWMF->Seek( nStart + offBmiSrc );
+-					pWMF->Read( pBuf + 14, cbBmiSrc );
+-					pWMF->Seek( nStart + offBitsSrc );
+-					pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
+-					aTmp.Seek( 0 );
+-					aBitmap.Read( aTmp, TRUE );
+-
+-					// test if it is sensible to crop
+-					if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
+-						( xSrc >= 0 ) && ( ySrc >= 0 ) &&
+-							( xSrc + cxSrc <= aBitmap.GetSizePixel().Width() ) &&
+-								( ySrc + cySrc <= aBitmap.GetSizePixel().Height() ) )
++					if ( nSize <= ( nEndPos - nStartPos ) )
+ 					{
+-						Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
+-						aBitmap.Crop( aCropRect );
++						char* pBuf = new char[ nSize ];
++						SvMemoryStream aTmp( pBuf, nSize, STREAM_READ | STREAM_WRITE );
++						aTmp.ObjectOwnsMemory( TRUE );
++						aTmp << (BYTE)'B'
++							<< (BYTE)'M'
++							<< (UINT32)cbBitsSrc
++							<< (UINT16)0
++							<< (UINT16)0
++							<< (UINT32)cbBmiSrc + 14;
++						pWMF->Seek( nStart + offBmiSrc );
++						pWMF->Read( pBuf + 14, cbBmiSrc );
++						pWMF->Seek( nStart + offBitsSrc );
++						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
++						aTmp.Seek( 0 );
++						aBitmap.Read( aTmp, TRUE );
++
++						// test if it is sensible to crop
++						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
++							( xSrc >= 0 ) && ( ySrc >= 0 ) &&
++								( xSrc + cxSrc <= aBitmap.GetSizePixel().Width() ) &&
++									( ySrc + cySrc <= aBitmap.GetSizePixel().Height() ) )
++						{
++							Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
++							aBitmap.Crop( aCropRect );
++						}
++						aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ), LIST_APPEND );
+ 					}
+-					aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ), LIST_APPEND );
+ 				}
+ 			}
+ 			break;
+@@ -967,55 +984,64 @@
+ 				DBG_ASSERT( ( nOptions & ( ETO_PDY | ETO_GLYPH_INDEX ) ) == 0, "SJ: ETO_PDY || ETO_GLYPH_INDEX in EMF" );
+ 
+ 				Point aPos( ptlReferenceX, ptlReferenceY );
+-				if ( nLen )
++				if ( nLen && ( nLen < SAL_MAX_UINT32 / sizeof(sal_Int32) ) )
+ 				{
+ 					if ( offDx && (( nCurPos + offDx + nLen * 4 ) <= nNextPos ) )
+ 					{
+ 						pWMF->Seek( nCurPos + offDx );
+-						pDX = new sal_Int32[ nLen ];
+-						sal_uInt32 i;
+-						for ( i = 0; i < nLen; i++ )
+-							*pWMF >> pDX[ i ];
++						if ( ( nLen * sizeof(sal_uInt32) ) <= ( nEndPos - pWMF->Tell() ) )
++						{
++							pDX = new sal_Int32[ nLen ];
++							sal_uInt32 i;
++							for ( i = 0; i < nLen; i++ )
++								*pWMF >> pDX[ i ];
++						}
+ 					}
+ 					pWMF->Seek( nCurPos + nOffString );
+ 					String aText;
+ 					if ( bFlag )
+ 					{
+-						sal_Char* pBuf = new sal_Char[ nLen ];
+-						pWMF->Read( pBuf, nLen );
+-						aText = String( pBuf, (sal_uInt16)nLen, pOut->GetCharSet() );
+-						delete[] pBuf;
+-
+-						if ( aText.Len() != nLen )
++						if ( nLen <= ( nEndPos - pWMF->Tell() ) )
+ 						{
+-							sal_uInt16 i, j, k;
+-							sal_Int32* pOldDx = pDX;
+-							pDX = new sal_Int32[ aText.Len() ];
+-							for ( i = 0, j = 0; i < aText.Len(); i++ )
++							sal_Char* pBuf = new sal_Char[ nLen ];
++							pWMF->Read( pBuf, nLen );
++							aText = String( pBuf, (sal_uInt16)nLen, pOut->GetCharSet() );
++							delete[] pBuf;
++
++							if ( aText.Len() != nLen )
+ 							{
+-								ByteString aCharacter( aText.GetChar( i ), pOut->GetCharSet() );
+-								pDX[ i ] = 0;
+-								for ( k = 0; ( k < aCharacter.Len() ) && ( j < nLen ) && ( i < aText.Len() ); k++ )
+-									pDX[ i ] += pOldDx[ j++ ];
++								sal_uInt16 i, j, k;
++								sal_Int32* pOldDx = pDX;
++								pDX = new sal_Int32[ aText.Len() ];
++								for ( i = 0, j = 0; i < aText.Len(); i++ )
++								{
++									ByteString aCharacter( aText.GetChar( i ), pOut->GetCharSet() );
++									pDX[ i ] = 0;
++									for ( k = 0; ( k < aCharacter.Len() ) && ( j < nLen ) && ( i < aText.Len() ); k++ )
++										pDX[ i ] += pOldDx[ j++ ];
++								}
++								delete[] pOldDx;
+ 							}
+-							delete[] pOldDx;
+ 						}
+ 					}
+ 					else
+ 					{
+-						sal_Unicode* pBuf = new sal_Unicode[ nLen ];
+-						pWMF->Read( pBuf, nLen << 1 );
+-#ifdef OSL_BIGENDIAN
+-						sal_Char nTmp, *pTmp = (sal_Char*)( pBuf + nLen );
+-						while ( pTmp-- != (sal_Char*)pBuf )
++						if ( ( nLen * sizeof(sal_Unicode) ) <= ( nEndPos - pWMF->Tell() ) )
+ 						{
+-							nTmp = *pTmp--;
+-							pTmp[ 1 ] = *pTmp;
+-							*pTmp = nTmp;
+-						}
++							sal_Unicode* pBuf = new sal_Unicode[ nLen ];
++							pWMF->Read( pBuf, nLen << 1 );
++#ifdef OSL_BIGENDIAN
++							sal_Char nTmp, *pTmp = (sal_Char*)( pBuf + nLen );
++							while ( pTmp-- != (sal_Char*)pBuf )
++							{
++								nTmp = *pTmp--;
++								pTmp[ 1 ] = *pTmp;
++								*pTmp = nTmp;
++							}
+ #endif
+-						aText = String( pBuf, (xub_StrLen)nLen );
+-						delete[] pBuf;
++							aText = String( pBuf, (xub_StrLen)nLen );
++							delete[] pBuf;
++						}
+ 					}
+ 					pOut->DrawText( aPos, aText, pDX, bRecordPath, nGfxMode );
+ 				}
+@@ -1090,25 +1116,32 @@
+ 				pWMF->SeekRel( 0x10 );
+ 				// Anzahl der Polygone:
+ 				*pWMF >> nPoly >> nGesPoints;
+-				// Anzahl der Punkte eines jeden Polygons holen, Gesammtzahl der Punkte ermitteln:
+-				pnPoints = new UINT16[ nPoly ];
+-				for ( i = 0; i < nPoly; i++ )
+-				{
+-					*pWMF >> nPoints;
+-					pnPoints[ i ] = (UINT16)nPoints;
+-				}
+-				// Polygonpunkte holen:
+-				for ( i = 0; i < nPoly; i++ )
++
++				// taking the amount of points of each polygon, retrieving the total number of points
++				if ( static_cast< sal_uInt32 >(nPoly) < SAL_MAX_UINT32 / sizeof(UINT16) )
+ 				{
+-					Polygon aPolygon( pnPoints[ i ] );
+-					for ( UINT16 k = 0; k < pnPoints[ i ]; k++ )
++					if ( ( static_cast< sal_uInt32 >( nPoly ) * sizeof(UINT16) ) <= ( nEndPos - pWMF->Tell() ) )
+ 					{
+-						*pWMF >> nX16 >> nY16;
+-						aPolygon[ k ] = Point( nX16, nY16 );
++						pnPoints = new UINT16[ nPoly ];
++						for ( i = 0; i < nPoly; i++ )
++						{
++							*pWMF >> nPoints;
++							pnPoints[ i ] = (UINT16)nPoints;
++						}
++						// Polygonpunkte holen:
++						for ( i = 0; ( i < nPoly ) && !pWMF->IsEof(); i++ )
++						{
++							Polygon aPolygon( pnPoints[ i ] );
++							for ( UINT16 k = 0; k < pnPoints[ i ]; k++ )
++							{
++								*pWMF >> nX16 >> nY16;
++								aPolygon[ k ] = Point( nX16, nY16 );
++							}
++							pOut->DrawPolyLine( aPolygon, sal_False, bRecordPath );
++						}
++						delete[] pnPoints;
+ 					}
+-					pOut->DrawPolyLine( aPolygon, sal_False, bRecordPath );
+ 				}
+-				delete[] pnPoints;
+ 			}
+ 			break;
+ 
+@@ -1121,28 +1154,33 @@
+ 				pWMF->SeekRel( 0x10 );
+ 				// Anzahl der Polygone:
+ 				*pWMF >> nPoly >> nGesPoints;
+-				if (nGesPoints < SAL_MAX_UINT32 / sizeof(Point))
++				if ( ( nGesPoints < SAL_MAX_UINT32 / sizeof(Point) ) && ( nPoly < SAL_MAX_UINT32 / sizeof(UINT16) ) )
+ 				{
+-					// Anzahl der Punkte eines jeden Polygons holen, Gesammtzahl der Punkte ermitteln:
+-					pnPoints = new UINT16[ nPoly ];
+-					for ( i = 0; i < nPoly; i++ )
++					if ( ( static_cast< sal_uInt32 >( nPoly ) * sizeof( UINT16 ) ) <= ( nEndPos - pWMF->Tell() ) )
+ 					{
+-						*pWMF >> nPoints;
+-						pnPoints[ i ] = (UINT16)nPoints;
+-					}
+-					// Polygonpunkte holen:
+-					pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
+-					for ( i = 0; i < nGesPoints; i++ )
+-					{
+-						*pWMF >> nX16 >> nY16;
+-						pPtAry[ i ] = Point( nX16, nY16 );
++						pnPoints = new UINT16[ nPoly ];
++						for ( i = 0; i < nPoly; i++ )
++						{
++							*pWMF >> nPoints;
++							pnPoints[ i ] = (UINT16)nPoints;
++						}
++						if ( ( nGesPoints * sizeof(Point) ) <= ( nEndPos - pWMF->Tell() ) )
++						{
++							// Polygonpunkte holen:
++							pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
++							for ( i = 0; i < nGesPoints; i++ )
++							{
++								*pWMF >> nX16 >> nY16;
++								pPtAry[ i ] = Point( nX16, nY16 );
++							}
++			
++							// PolyPolygon Actions erzeugen
++							PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
++							pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
++							delete[] (char*) pPtAry;
++						}
++						delete[] pnPoints;
+ 					}
+-	
+-					// PolyPolygon Actions erzeugen
+-					PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
+-					pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
+-					delete[] (char*) pPtAry;
+-					delete[] pnPoints;
+ 				}
+ 			}
+ 			break;
+@@ -1273,6 +1311,13 @@
+ 	*pWMF >> nUINT32;									// nVersion
+ 	*pWMF >> nEndPos;									// size of metafile
+ 	nEndPos += nStartPos;
++
++	sal_uInt32 nStrmPos = pWMF->Tell();					// checking if nEndPos is valid
++	pWMF->Seek( STREAM_SEEK_TO_END );
++	if ( pWMF->Tell() < nEndPos )
++		nEndPos = pWMF->Tell();
++	pWMF->Seek( nStrmPos );
++
+ 	*pWMF >> nRecordCount;
+ 
+ 	if ( !nRecordCount )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-slidesorter-dead-ptr.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-slidesorter-dead-ptr.diff
@@ -0,0 +1,14 @@
+--- sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx	12 Dec 2006 18:17:53 -0000	1.8
++++ sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx	7 Apr 2008 10:16:55 -0000
+@@ -342,9 +342,10 @@
+             // Now, we can change the preview size of the existing one by
+             // removing the cache from the list and re-insert it with the
+             // updated size.
++            SdDrawDocument* pDocument = iCacheToChange->first.mpDocument;
+             mpPageCaches->erase(iCacheToChange);
+             mpPageCaches->insert(PageCacheContainer::value_type(
+-                CacheDescriptor(iCacheToChange->first.mpDocument,rNewPreviewSize),
++                CacheDescriptor(pDocument,rNewPreviewSize),
+                 rpCache));
+ 
+             pResult = rpCache;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-signal.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-signal.diff
@@ -0,0 +1,426 @@
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index cad4d22..c78329f 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -350,7 +350,7 @@ ResMgr*                 desktop::Desktop::pResMgr = 0;
+ namespace desktop
+ {
+ 
+-static SalMainPipeExchangeSignalHandler* pSignalHandler = 0;
++static oslSignalHandler pSignalHandler = 0;
+ static sal_Bool _bCrashReporterEnabled = sal_True;
+ 
+ // ----------------------------------------------------------------------------
+@@ -659,7 +659,7 @@ void Desktop::Init()
+             // disable IPC thread in an instance that is just showing a help message
+             OfficeIPCThread::DisableOfficeIPCThread();
+         }
+-        pSignalHandler = new SalMainPipeExchangeSignalHandler;
++        pSignalHandler = osl_addSignalHandler( SalMainPipeExchangeSignal_impl, NULL );
+     }
+ }
+ 
+@@ -693,7 +693,7 @@ void Desktop::DeInit()
+ 
+     	OfficeIPCThread::DisableOfficeIPCThread();
+ 	    if( pSignalHandler )
+-    	    DELETEZ( pSignalHandler );
++    	    osl_removeSignalHandler( pSignalHandler );
+ 	} catch (RuntimeException&) {
+ 		// someone threw an exception during shutdown
+ 		// this will leave some garbage behind..
+@@ -1281,7 +1281,7 @@ USHORT Desktop::Exception(USHORT nError)
+             {
+                 OfficeIPCThread::DisableOfficeIPCThread();
+                 if( pSignalHandler )
+-                    DELETEZ( pSignalHandler );
++                    osl_removeSignalHandler( pSignalHandler );
+ 
+                 if (m_pLockfile != NULL) {
+                     m_pLockfile->clean();
+diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
+index b67c3fd..95efc2c 100644
+--- desktop/source/app/officeipcthread.cxx
++++ desktop/source/app/officeipcthread.cxx
+@@ -183,11 +183,11 @@ void ImplPostProcessDocumentsEvent( ProcessDocumentsRequest* pEvent )
+ 	Application::PostUserEvent( STATIC_LINK( NULL, ProcessEventsClass_Impl, ProcessDocumentsEvent ), pEvent );
+ }
+ 
+-OSignalHandler::TSignalAction SAL_CALL SalMainPipeExchangeSignalHandler::signal(TSignalInfo *pInfo)
++oslSignalAction SAL_CALL SalMainPipeExchangeSignal_impl(void * /*pData*/, oslSignalInfo *pInfo)
+ {
+     if( pInfo->Signal == osl_Signal_Terminate )
+ 		OfficeIPCThread::DisableOfficeIPCThread();
+-	return (TAction_CallNextHandler);
++	return osl_Signal_ActCallNextHdl;
+ }
+ 
+ // ----------------------------------------------------------------------------
+diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
+index 1486974..ec6ed08 100644
+--- desktop/source/app/officeipcthread.hxx
++++ desktop/source/app/officeipcthread.hxx
+@@ -52,8 +52,8 @@
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+ #endif
+-#ifndef _VOS_SIGNAL_HXX_
+-#include <vos/signal.hxx>
++#ifndef _OSL_SIGNAL_H_
++#include <osl/signal.h>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+@@ -68,10 +68,7 @@
+ namespace desktop
+ {
+ 
+-class SalMainPipeExchangeSignalHandler : public vos::OSignalHandler
+-{
+-    virtual TSignalAction SAL_CALL signal(TSignalInfo *pInfo);
+-};
++oslSignalAction SAL_CALL SalMainPipeExchangeSignal_impl(void * /*pData*/, oslSignalInfo *pInfo);
+ 
+ // A request for the current office
+ // that was given by command line or by IPC pipe communication.
+diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx
+index 95aa23b..4d115f3 100644
+--- tools/inc/pch/precompiled_tools.hxx
++++ tools/inc/pch/precompiled_tools.hxx
+@@ -93,7 +93,7 @@
+ 
+ #include "sal/macros.h"
+ #include "osl/mutex.hxx"
+-#include "vos/signal.hxx"
++#include "osl/signal.h"
+ #include "vos/timer.hxx"
+ //---MARKER---
+ #endif
+diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx
+index e5dcdcf..5283f89 100644
+--- tools/source/rc/resmgr.cxx
++++ tools/source/rc/resmgr.cxx
+@@ -40,8 +40,8 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+-#ifndef _VOS_SIGNAL_HXX_
+-#include <vos/signal.hxx>
++#ifndef _OSL_SIGNAL_H_
++#include <osl/signal.h>
+ #endif
+ 
+ #ifndef _DEBUG_HXX
+@@ -882,18 +882,18 @@ void ResMgr::RscError_Impl( const sal_Char* pMessage, ResMgr* pResMgr,
+ 
+ static void RscException_Impl()
+ {
+-    switch ( vos::OSignalHandler::raise( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) )
++    switch ( osl_raiseSignal( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) )
+     {
+-        case vos::OSignalHandler::TAction_CallNextHandler:
++        case osl_Signal_ActCallNextHdl:
+             abort();
+ 
+-        case vos::OSignalHandler::TAction_Ignore:
++        case osl_Signal_ActIgnore:
+             return;
+ 
+-        case vos::OSignalHandler::TAction_AbortApplication:
++        case osl_Signal_ActAbortApp:
+             abort();
+ 
+-        case vos::OSignalHandler::TAction_KillApplication:
++        case osl_Signal_ActKillApp:
+             exit(-1);
+     }
+ }
+diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
+index ead4370..75c16fd 100644
+--- vcl/source/app/svmain.cxx
++++ vcl/source/app/svmain.cxx
+@@ -66,8 +66,8 @@
+ #ifndef _SV_SALWTYPE_HXX
+ #include <vcl/salwtype.hxx>
+ #endif
+-#ifndef _VOS_SIGNAL_HXX
+-#include <vos/signal.hxx>
++#ifndef _OSL_SIGNAL_H_
++#include <osl/signal.h>
+ #endif
+ #ifndef _VOS_SOCKET_HXX
+ #include <vos/socket.hxx>
+@@ -178,15 +178,7 @@ using namespace ::com::sun::star::lang;
+ 
+ // =======================================================================
+ 
+-class ImplVCLExceptionHandler : public ::vos::OSignalHandler
+-{
+-public:
+-    virtual ::vos::OSignalHandler::TSignalAction SAL_CALL signal( ::vos::OSignalHandler::TSignalInfo* pInfo );
+-};
+-
+-// -----------------------------------------------------------------------
+-
+-::vos::OSignalHandler::TSignalAction SAL_CALL ImplVCLExceptionHandler::signal( ::vos::OSignalHandler::TSignalInfo* pInfo )
++oslSignalAction SAL_CALL VCLExceptionSignal_impl( void * /*pData*/, oslSignalInfo* pInfo )
+ {
+     static BOOL bIn = FALSE;
+ 
+@@ -235,11 +227,11 @@ public:
+             }
+             bIn = FALSE;
+ 
+-            return vos::OSignalHandler::TAction_CallNextHandler;
++            return osl_Signal_ActCallNextHdl;
+         }
+     }
+ 
+-    return vos::OSignalHandler::TAction_CallNextHandler;
++    return osl_Signal_ActCallNextHdl;
+ }
+ 
+ // =======================================================================
+@@ -308,7 +300,7 @@ BOOL SVMain()
+ // before SVInit is called
+ static Application *        pOwnSvApp = NULL;
+ // Exception handler. pExceptionHandler != NULL => VCL already inited
+-ImplVCLExceptionHandler *   pExceptionHandler = NULL;
++oslSignalHandler            pExceptionHandler = NULL;
+ 
+ class Application_Impl : public Application
+ {
+@@ -411,7 +403,7 @@ BOOL InitVCL( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XM
+     pSVData->maGDIData.mpGrfConverter       = new GraphicConverter;
+ 
+     // Exception-Handler setzen
+-    pExceptionHandler = new ImplVCLExceptionHandler();
++    pExceptionHandler = osl_addSignalHandler( VCLExceptionSignal_impl, NULL );
+ 
+     // Debug-Daten initialisieren
+     DBGGUI_INIT();
+@@ -454,7 +446,7 @@ void DeInitVCL()
+ 
+     ImplImageTree::cleanup();
+ 
+-    delete pExceptionHandler;
++    osl_removeSignalHandler( pExceptionHandler );
+     pExceptionHandler = NULL;
+ 
+     // Debug Daten zuruecksetzen
+diff --git a/vos/inc/vos/signal.hxx b/vos/inc/vos/signal.hxx
+deleted file mode 100644
+index dd10c07..0000000
+--- vos/inc/vos/signal.hxx
++++ /dev/null
+@@ -1,112 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: signal.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 11:17:31 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_SIGNAL_HXX_
+-#define _VOS_SIGNAL_HXX_
+-
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#	include <vos/object.hxx>
+-#endif
+-#ifndef _OSL_SIGNAL_H_
+-#	include <osl/signal.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-extern "C"
+-typedef oslSignalAction SignalHandlerFunction_impl(void *, oslSignalInfo *);
+-SignalHandlerFunction_impl signalHandlerFunction_impl;
+-
+-/** OSignalHandler is an objectoriented interface for signal handlers.
+-
+-	@author  Ralf Hofmann
+-	@version 1.0
+-*/
+-
+-class OSignalHandler : public vos::OObject
+-{
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OSignalHandler, vos));
+-
+-public:
+-
+-	enum TSignal
+-	{
+-		TSignal_System              = osl_Signal_System,
+-		TSignal_Terminate           = osl_Signal_Terminate,
+-		TSignal_AccessViolation     = osl_Signal_AccessViolation,
+-		TSignal_IntegerDivideByZero = osl_Signal_IntegerDivideByZero,
+-		TSignal_FloatDivideByZero   = osl_Signal_FloatDivideByZero,
+-		TSignal_DebugBreak          = osl_Signal_DebugBreak,
+-		TSignal_SignalUser          = osl_Signal_User
+-	};
+-
+-	enum TSignalAction
+-	{
+-		TAction_CallNextHandler  = osl_Signal_ActCallNextHdl,
+-		TAction_Ignore           = osl_Signal_ActIgnore,
+-		TAction_AbortApplication = osl_Signal_ActAbortApp,
+-		TAction_KillApplication  = osl_Signal_ActKillApp
+-	};
+-
+-	typedef oslSignalInfo TSignalInfo;
+-
+-	/// Constructor 
+-	OSignalHandler();              
+-
+-	/// Destructor kills thread if neccessary
+-	virtual ~OSignalHandler();
+-
+-	static TSignalAction SAL_CALL raise(sal_Int32 Signal, void *pData = 0);
+-
+-protected:
+-
+-	/// Working method which should be overridden.
+-	virtual TSignalAction SAL_CALL signal(TSignalInfo *pInfo) = 0;
+-
+-protected:
+-	oslSignalHandler m_hHandler;
+-
+-    friend oslSignalAction signalHandlerFunction_impl(void *, oslSignalInfo *);
+-};
+-
+-}
+-
+-#endif // _VOS_SIGNAL_HXX_
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 3093410..1b010f5 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -55,7 +55,6 @@ SLOFILES= \
+ 				$(SLO)$/timer.obj       \
+ 				$(SLO)$/process.obj     \
+ 				$(SLO)$/security.obj    \
+-				$(SLO)$/signal.obj      \
+ 				$(SLO)$/pipe.obj
+ 
+ 
+@@ -70,7 +69,6 @@ OBJFILES= \
+ 				$(OBJ)$/timer.obj       \
+ 				$(OBJ)$/process.obj     \
+ 				$(OBJ)$/security.obj    \
+-				$(OBJ)$/signal.obj      \
+ 				$(OBJ)$/pipe.obj
+ 
+ .ENDIF
+diff --git a/vos/source/signal.cxx b/vos/source/signal.cxx
+deleted file mode 100644
+index 3a576b1..0000000
+--- vos/source/signal.cxx
++++ /dev/null
+@@ -1,72 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: signal.cxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 11:21:56 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <osl/diagnose.h>
+-#include <vos/object.hxx>
+-#include <vos/signal.hxx>
+-
+-using namespace vos;
+-
+-oslSignalAction vos::signalHandlerFunction_impl(
+-    void * pthis, oslSignalInfo * pInfo)
+-{
+-	vos::OSignalHandler* pThis= (vos::OSignalHandler*)pthis;
+-
+-	return ((oslSignalAction)pThis->signal(pInfo));
+-}
+-
+-/////////////////////////////////////////////////////////////////////////////
+-// Thread class
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OSignalHandler, vos), 
+-						VOS_NAMESPACE(OSignalHandler, vos), 
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-OSignalHandler::OSignalHandler() 
+-{
+-	m_hHandler = osl_addSignalHandler(signalHandlerFunction_impl, this);
+-}
+-
+-OSignalHandler::~OSignalHandler() 
+-{
+-	osl_removeSignalHandler(m_hHandler);
+-}
+-
+-OSignalHandler::TSignalAction OSignalHandler::raise(sal_Int32 Signal, void *pData)
+-{
+-	return (TSignalAction)osl_raiseSignal(Signal, pData);
+-}
+-
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-basegfx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-basegfx.diff
@@ -0,0 +1,23 @@
+--- basegfx/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ basegfx/prj/tests.lst	2007-09-07 10:56:26.000000000 +0200
+@@ -0,0 +1 @@
++fx   basegfx\test                                       nmake - all fx_test fx_util NULL
+--- basegfx/test/makefile.mk	2005-09-07 22:57:24.000000000 +0200
++++ basegfx/test/makefile.mk	2007-09-07 10:40:57.000000000 +0200
+@@ -55,14 +55,13 @@ SHL1OBJS=  \
+ 	$(SLO)$/tools.obj	
+ 
+ SHL1TARGET= tests
+-SHL1STDLIBS= 	$(TOOLSLIB)		 \
++SHL1STDLIBS= 	\
+ 				$(SALLIB)		 \
+ 				$(BASEGFXLIB)	 \
+ 				$(VOSLIB)		 \
+ 				$(CPPUHELPERLIB) \
+ 				$(CPPULIB)		 \
+-				$(CPPUNITLIB)	 \
+-				$(UNOTOOLSLIB)	
++				$(CPPUNITLIB)
+ 
+ SHL1IMPLIB= i$(SHL1TARGET)
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-configmgr-misc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-configmgr-misc.diff
@@ -0,0 +1,116 @@
+Index: configmgr/qa/unit/makefile.mk
+===================================================================
+RCS file: /cvs/util/configmgr/qa/unit/makefile.mk,v
+retrieving revision 1.2
+diff -u -p -u -r1.2 makefile.mk
+--- configmgr/qa/unit/makefile.mk	23 Nov 2007 13:58:12 -0000	1.2
++++ configmgr/qa/unit/makefile.mk	19 Dec 2007 11:41:53 -0000
+@@ -59,9 +59,8 @@ ALLTAR: test
+ $(MISC)$/$(TARGET).rdb .ERRREMOVE:
+     $(COPY) $(SOLARBINDIR)$/types.rdb $@
+     regcomp -register -r $@ -c $(subst,$/,/ $(DLLDEST)$/configmgr2.uno$(DLLPOST))
+-    regcomp -register -r $@ -c $(subst,$/,/ $(SOLARLIBDIR)/typeconverter.uno$(DLLPOST))
++    regcomp -register -r $@ -c $(subst,$/,/ $(SOLARLIBDIR)/stocservices.uno$(DLLPOST))
+     regcomp -register -r $@ -c $(subst,$/,/ $(SOLARLIBDIR)/sax.uno$(DLLPOST))
+-    regcomp -register -r $@ -c $(subst,$/,/ $(SOLARLIBDIR)/simplereg.uno$(DLLPOST))
+     regcomp -register -r $@ -c $(subst,$/,/ $(SOLARLIBDIR)/streams.uno$(DLLPOST))
+ 
+ test .PHONY: $(SHL1TARGETN) $(MISC)$/$(TARGET).rdb
+Index: configmgr/source/backend/binaryreader.cxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/backend/binaryreader.cxx,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 binaryreader.cxx
+--- configmgr/source/backend/binaryreader.cxx	3 Apr 2007 13:57:13 -0000	1.8
++++ configmgr/source/backend/binaryreader.cxx	19 Dec 2007 11:41:54 -0000
+@@ -592,13 +592,13 @@ namespace configmgr
+ 		}
+ 		// --------------------------------------------------------------------------
+ 
+-        inline uno::Reference<io::XDataInputStream> BinaryReader::getDataInputStream()
++        inline BinaryReader_Impl * BinaryReader::getDataInputStream()
+ 		{
+             OSL_ENSURE(m_xDataInputStream.is(),"Binary Cache: Reader was not opened - no input stream");
+ #if 0
+             if (!m_xDataInputStream.is()) throw io::NotConnectedException();
+ #endif
+-            return m_xDataInputStream;
++            return static_cast<BinaryReader_Impl *>(m_xDataInputStream.get());
+ 		}
+ 
+ 		// --------------------------------------------------------------------------
+Index: configmgr/source/backend/binaryreader.hxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/backend/binaryreader.hxx,v
+retrieving revision 1.6
+diff -u -p -u -r1.6 binaryreader.hxx
+--- configmgr/source/backend/binaryreader.hxx	8 Sep 2005 03:26:23 -0000	1.6
++++ configmgr/source/backend/binaryreader.hxx	19 Dec 2007 11:41:54 -0000
+@@ -70,6 +70,7 @@ namespace configmgr
+ 
+         typedef uno::Reference<lang::XMultiServiceFactory> MultiServiceFactory;
+ 		// -----------------------------------------------------------------------------
++        class BinaryReader_Impl;
+ 		class BinaryReader 
+ 		{
+ 			rtl::OUString m_sFileURL;
+@@ -102,7 +103,7 @@ namespace configmgr
+ 			void read(StringList &_aValue)  SAL_THROW( (io::IOException, uno::RuntimeException) );
+ 
+ 		private:
+-			inline uno::Reference<io::XDataInputStream> getDataInputStream();
++			inline BinaryReader_Impl * getDataInputStream();
+ 		};
+ 		// --------------------------------------------------------------------------
+ 
+Index: configmgr/source/tree/cmtree.cxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/tree/cmtree.cxx,v
+retrieving revision 1.39
+diff -u -p -u -r1.39 cmtree.cxx
+--- configmgr/source/tree/cmtree.cxx	23 Nov 2007 14:31:21 -0000	1.39
++++ configmgr/source/tree/cmtree.cxx	19 Dec 2007 11:41:54 -0000
+@@ -90,18 +90,17 @@ namespace configmgr
+ 
+ // ------------------------ ChildListSet implementations ------------------------
+     ChildListSet::ChildListSet(ChildListSet const& aSet, treeop::DeepChildCopy)
+-        : m_aChildList(0)
++        : m_aChildList(aSet.m_aChildList.size())
+ 	{
+-        for (size_t i = 0; i < aSet.m_aChildList.size(); i++)
+-        {
+-			m_aChildList.insert(m_aChildList.end(),
+-                                aSet.m_aChildList[i]->clone().release());
+-        }
++        int len = aSet.m_aChildList.size();
++        for (int i = 0; i < len; i++)
++            m_aChildList[i] = aSet.m_aChildList[i]->clone().release();
+ 	}
+ 	ChildListSet::~ChildListSet()
+ 	{
+-        for (size_t i = 0; i < m_aChildList.size(); i++)
+-            delete m_aChildList[i];
++        for (ChildList::const_iterator it = m_aChildList.begin();
++             it != m_aChildList.end(); it++)
++            delete *it;
+ 	}
+ 
+ 	struct ltNode
+Index: configmgr/source/tree/subtree.hxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/tree/subtree.hxx,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 subtree.hxx
+--- configmgr/source/tree/subtree.hxx	23 Nov 2007 14:33:13 -0000	1.8
++++ configmgr/source/tree/subtree.hxx	19 Dec 2007 11:41:54 -0000
+@@ -100,8 +100,8 @@ namespace configmgr
+ 
+ // Iteration support
+ 		virtual void forEachChild(NodeAction& anAction) const;
+-		virtual void forEachChild(NodeModification& anAction);		
+-
++		virtual void forEachChild(NodeModification& anAction);
++        
+ 		// "rtti"
+ 		RTTI(Subtree, ISubtree);
+ 	};
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-stream-can-save.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-stream-can-save.diff
@@ -0,0 +1,306 @@
+diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.cxx b/ucb/source/ucp/webdav/DAVResourceAccess.cxx
+index 40b7734..1686958 100644
+--- ucb/source/ucp/webdav/DAVResourceAccess.cxx
++++ ucb/source/ucp/webdav/DAVResourceAccess.cxx
+@@ -597,6 +597,43 @@ void DAVResourceAccess::PUT(
+ }
+ 
+ //=========================================================================
++void DAVResourceAccess::PUT(
++        const char * buffer, size_t size,
++        const uno::Reference< ucb::XCommandEnvironment > & xEnv )
++throw( DAVException )
++{
++    initialize();
++
++    bool bRetry = false;
++    do
++    {
++        bRetry = false;
++        try
++        {
++            DAVRequestHeaders aHeaders;
++            getUserRequestHeaders( xEnv, 
++                                   getRequestURI(), 
++                                   rtl::OUString::createFromAscii( "PUT" ), 
++                                   aHeaders );
++            
++            m_xSession->PUT( getRequestURI(),
++                             buffer, size,
++                             DAVRequestEnvironment(
++                                 getRequestURI(),
++                                 new DAVAuthListener_Impl( xEnv ),
++                                 aHeaders, xEnv ) );
++        }
++        catch ( DAVException & e )
++        {
++            bRetry = handleException( e );
++            if ( !bRetry )
++                throw;
++        }
++    }
++    while ( bRetry );
++}
++
++//=========================================================================
+ uno::Reference< io::XInputStream > DAVResourceAccess::POST(
+ 	const rtl::OUString & rContentType,
+ 	const rtl::OUString & rReferer,
+diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.hxx b/ucb/source/ucp/webdav/DAVResourceAccess.hxx
+index 5069ae7..aba8342 100644
+--- ucb/source/ucp/webdav/DAVResourceAccess.hxx
++++ ucb/source/ucp/webdav/DAVResourceAccess.hxx
+@@ -190,6 +190,11 @@ public:
+ 	     com::sun::star::ucb::XCommandEnvironment > & xEnv )
+ 	throw( DAVException );
+ 
++    void
++    PUT( const char * buffer, size_t size,
++         const com::sun::star::uno::Reference< com::sun::star::ucb::XCommandEnvironment > & xEnv )
++        throw( DAVException );
++
+     com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
+     POST( const rtl::OUString & rContentType,
+ 	  const rtl::OUString & rReferer,
+diff --git a/ucb/source/ucp/webdav/DAVSession.hxx b/ucb/source/ucp/webdav/DAVSession.hxx
+index df5ac71..a0d6d38 100644
+--- ucb/source/ucp/webdav/DAVSession.hxx
++++ ucb/source/ucp/webdav/DAVSession.hxx
+@@ -166,6 +166,12 @@ public:
+         const DAVRequestEnvironment & rEnv )
+ 		throw( DAVException ) = 0;
+ 
++    virtual void PUT( const ::rtl::OUString & inPath,
++             const char * buffer,
++             size_t size,
++             const DAVRequestEnvironment & rEnv )
++        throw ( DAVException ) = 0;
++
+     virtual com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
+                     POST( const rtl::OUString & inPath,
+                           const rtl::OUString & rContentType,
+diff --git a/ucb/source/ucp/webdav/NeonInputStream.cxx b/ucb/source/ucp/webdav/NeonInputStream.cxx
+index 720bd65..c969218 100644
+--- ucb/source/ucp/webdav/NeonInputStream.cxx
++++ ucb/source/ucp/webdav/NeonInputStream.cxx
+@@ -45,6 +45,9 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
++#ifndef _COM_SUN_STAR_UCB_COMMANDFAILEDEXCEPTION_HPP_
++#include <com/sun/star/ucb/CommandFailedException.hpp>
++#endif
+ 
+ #include <cstdio>
+ 
+@@ -294,10 +297,33 @@ void SAL_CALL NeonInputStream::flush( void )
+ 	throw( NotConnectedException, BufferSizeExceededException,
+ 	       IOException, uno::RuntimeException )
+ {
++    if ( m_bDirty )
++    {
+ #if OSL_DEBUG_LEVEL > 0
+-    fprintf( stderr, "WebDAV: flush()\n" );
++        fprintf( stderr, "WebDAV: flush(), saving the changed file.\n" );
+ #endif
+-    // Nothing to do, we transfer the data in closeOutput() (if dirty)
++        // FIXME It's really hacky to create the new session
++        // But so far it seems I have no other chance...
++        // see also NeonInputStream::Unlock()
++        uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
++        rtl::Reference< DAVSessionFactory > rDAVFactory( new DAVSessionFactory() );
++        
++        DAVResourceAccess aResourceAccess( xFactory, rDAVFactory, m_aURL );
++        
++        try {
++            aResourceAccess.PUT( reinterpret_cast<const char*>( m_aInputBuffer.getConstArray() ), m_nLen,
++                    DAVResourceAccess::createCommandEnvironment() );
++        }
++        catch ( DAVException & e )
++        {
++            throw ucb::CommandFailedException(
++                    e.getData(),
++                    uno::Reference< uno::XInterface >(),
++                    uno::makeAny( e.getData() ) );
++        }
++
++        m_bDirty = sal_False;
++    }
+ }
+         
+ // -------------------------------------------------------------------
+@@ -341,8 +367,8 @@ void NeonInputStream::Unlock( void )
+ {
+     if ( m_pLock )
+     {
+-        // FIXME I guess it is a bit hacky to create the new session just for
+-        // the unlock?  But so far it seems I have no other chance...
++        // FIXME It's really hacky to create the new session
++        // But so far it seems I have no other chance...
+         uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
+         rtl::Reference< DAVSessionFactory > rDAVFactory( new DAVSessionFactory() );
+         
+diff --git a/ucb/source/ucp/webdav/NeonSession.cxx b/ucb/source/ucp/webdav/NeonSession.cxx
+index eb85c85..a4e0042 100644
+--- ucb/source/ucp/webdav/NeonSession.cxx
++++ ucb/source/ucp/webdav/NeonSession.cxx
+@@ -629,6 +629,8 @@ extern "C" void NeonSession_PreSendRequest( ne_request * req,
+     }
+ }
+ 
++NeonLockStore * NeonSession::s_aNeonLockStore = NULL;
++
+ // -------------------------------------------------------------------
+ // Constructor
+ // -------------------------------------------------------------------
+@@ -657,12 +659,6 @@ NeonSession::~NeonSession( )
+ {
+     if ( m_pHttpSession )
+     {
+-        if ( m_NeonLockStore != NULL )
+-        {
+-            ne_lockstore_destroy( m_NeonLockStore );
+-            m_NeonLockStore = NULL;
+-        }
+-
+         ne_session_destroy( m_pHttpSession );
+         m_pHttpSession = 0;
+     }
+@@ -806,14 +802,15 @@ void NeonSession::Init()
+                               m_nProxyPort );
+         }
+ 
+-        m_NeonLockStore = ne_lockstore_create();
++        if ( !s_aNeonLockStore )
++            s_aNeonLockStore = ne_lockstore_create();
+ 
+-        if ( m_NeonLockStore == NULL )
++        if ( s_aNeonLockStore == NULL )
+             throw DAVException( DAVException::DAV_SESSION_CREATE,
+                                 NeonUri::makeConnectionEndPointString( m_aHostName, m_nPort ) );
+ 
+         // Register the lock store
+-        ne_lockstore_register( m_NeonLockStore, m_pHttpSession );
++        ne_lockstore_register( s_aNeonLockStore, m_pHttpSession );
+ 
+         // Register for redirects.
+         ne_redirect_register( m_pHttpSession );
+@@ -1210,22 +1207,38 @@ void NeonSession::PUT( const rtl::OUString &                      inPath,
+                        const DAVRequestEnvironment & rEnv )
+     throw ( DAVException )
+ {
++    // initialization etc. is performed in the other PUT
++
++    uno::Sequence< sal_Int8 > aDataToSend;
++    if ( !getDataFromInputStream( inInputStream, aDataToSend, false ) )
++        throw DAVException( DAVException::DAV_INVALID_ARG );
++
++    PUT( inPath,
++            reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
++            aDataToSend.getLength(),
++            rEnv );
++}
++
++// -------------------------------------------------------------------
++// PUT
++// -------------------------------------------------------------------
++void NeonSession::PUT( const rtl::OUString &inPath,
++                       const char * buffer,
++                       size_t size,
++                       const DAVRequestEnvironment & rEnv )
++    throw ( DAVException )
++{
+     osl::Guard< osl::Mutex > theGuard( m_aMutex );
+ 
+     Init();
+ 
+     m_aEnv = rEnv;
+ 
+-    uno::Sequence< sal_Int8 > aDataToSend;
+-    if ( !getDataFromInputStream( inInputStream, aDataToSend, false ) )
+-        throw DAVException( DAVException::DAV_INVALID_ARG );
+-
+     int theRetVal = PUT( m_pHttpSession,
+                          rtl::OUStringToOString(
+                             inPath, RTL_TEXTENCODING_UTF8 ),
+-                         reinterpret_cast< const char * >(
+-                            aDataToSend.getConstArray() ),
+-                         aDataToSend.getLength() );
++                         buffer,
++                         size );
+ 
+     HandleError( theRetVal );
+ }
+@@ -1468,6 +1481,9 @@ void NeonSession::HandleError( int nError )
+         {
+             rtl::OUString aText = rtl::OUString::createFromAscii(
+                     ne_get_error( m_pHttpSession ) );
++#if OSL_DEBUG_LEVEL > 0
++            fprintf( stderr, "WebDAV: got error '%s'\n", rtl::OUStringToOString( aText, RTL_TEXTENCODING_UTF8 ).getStr() );
++#endif
+             throw DAVException( DAVException::DAV_HTTP_ERROR,
+                                 aText,
+                                 makeStatusCode( aText ) );
+@@ -1529,7 +1545,7 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ {
+     osl::Guard< osl::Mutex > theGuard( m_aMutex );
+ 
+-    if ( !m_NeonLockStore )
++    if ( !s_aNeonLockStore )
+         throw DAVException( DAVException::DAV_INVALID_ARG );
+ 
+     ne_uri aUri;
+@@ -1537,7 +1553,7 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+             &aUri );
+ 
+     // Create the neon lock
+-    NeonLock * theLock = ne_lockstore_findbyuri( m_NeonLockStore, &aUri );
++    NeonLock * theLock = ne_lockstore_findbyuri( s_aNeonLockStore, &aUri );
+     if ( !theLock )
+     {
+         theLock = ne_lock_create();
+@@ -1576,7 +1592,7 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+         //theLock->timeout = rLock.timeout;
+         theLock->timeout = -1;
+ 
+-        ne_lockstore_add( m_NeonLockStore, theLock );
++        ne_lockstore_add( s_aNeonLockStore, theLock );
+     }
+ 
+     if ( bLockit )
+@@ -1606,7 +1617,7 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ #if OSL_DEBUG_LEVEL > 0
+             fprintf( stderr, "WebDAV: failed to lock the file, status code is: %d\n", getStatusCode( m_pHttpSession ) );
+ #endif
+-            ne_lockstore_remove( m_NeonLockStore, theLock );
++            ne_lockstore_remove( s_aNeonLockStore, theLock );
+         }
+     }
+     else
+diff --git a/ucb/source/ucp/webdav/NeonSession.hxx b/ucb/source/ucp/webdav/NeonSession.hxx
+index 4f1798f..7ac692d 100644
+--- ucb/source/ucp/webdav/NeonSession.hxx
++++ ucb/source/ucp/webdav/NeonSession.hxx
+@@ -84,7 +84,7 @@ class NeonSession : public DAVSession
+         // moment.
+         DAVRequestEnvironment m_aEnv;
+ 
+-        NeonLockStore    *m_NeonLockStore;
++        static NeonLockStore *s_aNeonLockStore;
+ 
+         static bool       m_bGlobalsInited;
+ 
+@@ -178,6 +178,13 @@ class NeonSession : public DAVSession
+                 const DAVRequestEnvironment & rEnv )
+ 			throw ( DAVException );
+ 
++        virtual void
++        PUT( const ::rtl::OUString & inPath,
++             const char * buffer,
++             size_t size,
++             const DAVRequestEnvironment & rEnv )
++            throw ( DAVException );
++
+         virtual com::sun::star::uno::Reference<
+             com::sun::star::io::XInputStream >
+         POST( const rtl::OUString & inPath,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gui-sw-insert-symbol.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gui-sw-insert-symbol.diff
@@ -0,0 +1,15 @@
+Index: sw/source/ui/config/viewopt.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/config/viewopt.cxx,v
+retrieving revision 1.4
+diff -u -p -u -r1.4 viewopt.cxx
+--- sw/source/ui/config/viewopt.cxx	5 Jul 2001 13:48:54 -0000	1.4
++++ sw/source/ui/config/viewopt.cxx	25 Feb 2003 16:15:51 -0000
+@@ -441,6 +441,7 @@ void SwViewOption::PaintPostIts( OutputD
+     // <--
+     bBookview(FALSE),
+ 
++	sSymbolFont( RTL_CONSTASCII_USTRINGPARAM( "symbol" ) ),
+ 	nZoom( 100 ),
+ 	nPagePrevRow( 1 ),
+ 	nPagePrevCol( 2 ),
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/store-install.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/store-install.diff
@@ -0,0 +1,107 @@
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/offapi/util/makefile.mk offapi/util/makefile.mk
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/offapi/util/makefile.mk	2007-01-02 17:57:17.000000000 +0100
++++ offapi/util/makefile.mk	2007-03-14 14:11:17.000000000 +0100
+@@ -149,6 +149,8 @@ UNOTYPE_STATISTICS=$(MISC)$/unotype_stat
+ 
+ # --- Targets ------------------------------------------------------
+ 
++REGMERGEFLAGS=-i
++
+ ALLTAR : $(UCR)$/types.db \
+        $(OUT)$/ucrdoc$/types_doc.db \
+        $(REGISTRYCHECKFLAG) \
+@@ -157,7 +159,7 @@ ALLTAR : $(UCR)$/types.db \
+ $(UCR)$/types.db : $(UCR)$/offapi.db $(SOLARBINDIR)$/udkapi.rdb
+ 	-$(RM) $(REGISTRYCHECKFLAG)
+ 	$(GNUCOPY) -f $(UCR)$/offapi.db $@
+-	$(REGMERGE) $@ / $(SOLARBINDIR)$/udkapi.rdb
++	$(REGMERGE) $(REGMERGEFLAGS) $@ / $(SOLARBINDIR)$/udkapi.rdb
+ 
+ $(OUT)$/ucrdoc$/types_doc.db : $(OUT)$/ucrdoc$/offapi_doc.db $(SOLARBINDIR)$/udkapi_doc.rdb
+ 	-$(RM) $(REGISTRYCHECKFLAG)
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/solenv/bin/modules/installer/servicesfile.pm solenv/bin/modules/installer/servicesfile.pm
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/solenv/bin/modules/installer/servicesfile.pm	2006-07-10 20:51:00.000000000 +0200
++++ solenv/bin/modules/installer/servicesfile.pm	2007-03-14 13:21:51.000000000 +0100
+@@ -784,6 +784,11 @@ sub create_services_rdb
+ 		$regcompfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$searchname, $includepatharrayref, 1);
+ 		if ( $$regcompfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for registering uno components!", "create_services_rdb"); }
+ 
++		if ($installer::globals::isunix) { $searchname = "regmerge"; }
++		else { $searchname = "regmerge.exe"; } 
++	
++		$regmergefileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$searchname, $includepatharrayref, 1);
++		if ( $$regmergefileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for registering uno components!", "create_services_rdb"); }
+ 		# For Windows the libraries included into the mozruntime.zip have to be added to the path
+ 		if ($installer::globals::iswin) { add_path_to_pathvariable_directory($filesarrayref, "mozruntime_zip"); }
+ 		if ($installer::globals::iswin) { add_path_to_pathvariable($filesarrayref, "msvcr70.dll"); }
+@@ -826,6 +831,8 @@ sub create_services_rdb
+ 		}
+ 		else
+ 		{
++			system ("$installer::globals::wrapcmd $$regmergefileref -i " . fix_cygwin_path ("${servicesfile}.internal") . " / " . fix_cygwin_path (${servicesfile}));
++			installer::systemactions::rename_one_file ("${servicesfile}.internal", ${servicesfile});
+ 			$servicesdir = installer::systemactions::rename_directory($servicesdir, $origservicesdir);
+ 		}
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/solenv/inc/target.mk solenv/inc/target.mk
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/solenv/inc/target.mk	2007-01-19 13:53:46.000000000 +0100
++++ solenv/inc/target.mk	2007-03-14 11:54:31.000000000 +0100
+@@ -1438,31 +1438,31 @@ makedoc:
+ $(LOCALDBTARGET) : $(URDFILES) $(DEPIDLFILES)
+ 	$(IDLC) @$(mktmp $(UNOIDLDEFS) $(UNOIDLINCEXTRA) $(UNOIDLINC) -O$(OUT)$/ucr$/$(IDLPACKAGE) $(all_outdated_idl))
+ 	-$(RM) $@
+-	$(REGMERGE) $@ UCR @$(mktmp $(URDFILES))
++	$(REGMERGE) $(REGMERGEFLAGS) $@ UCR @$(mktmp $(URDFILES))
+ .ENDIF
+ 
+ .IF "$(LOCALDOCDBTARGET)"!=""
+ $(LOCALDOCDBTARGET) : $(URDDOCFILES) $(DEPIDLFILES)
+ 	$(IDLC) @$(mktmp $(UNOIDLDEFS) $(UNOIDLINCEXTRA) $(UNOIDLINC) -C -O$(OUT)$/ucrdoc$/$(IDLPACKAGE) $(all_outdated_idl))
+ 	-$(RM) $@
+-	$(REGMERGE) $@ UCR @$(mktmp $(URDDOCFILES))
++	$(REGMERGE) $(REGMERGEFLAGS) $@ UCR @$(mktmp $(URDDOCFILES))
+ .ENDIF
+ 
+ .IF "$(UNOIDLDBTARGET)"!=""
+ $(UNOIDLDBTARGET) : $(UNOIDLDBFILES) $(UNOIDLDBREGS)
+ 	-$(RM) $@
+-	$(REGMERGE) $@ / @$(mktmp $(UNOIDLDBFILES) $(UNOIDLDBREGS))
++	$(REGMERGE) $(REGMERGEFLAGS) $@ / @$(mktmp $(UNOIDLDBFILES) $(UNOIDLDBREGS))
+ .IF "$(LOCALREGDB)"!=""
+-	$(REGMERGE) $(LOCALREGDB) / $@
++	$(REGMERGE) $(REGMERGEFLAGS) $(LOCALREGDB) / $@
+ .ENDIF
+ .ENDIF			# "$(UNOIDLDBTARGET)"!=""
+ 
+ .IF "$(UNOIDLDBDOCTARGET)"!=""
+ $(UNOIDLDBDOCTARGET) : $(UNOIDLDBDOCFILES) $(UNOIDLDBDOCREGS)
+ 	-$(RM) $@
+-	$(REGMERGE) $@ / @$(mktmp $(UNOIDLDBDOCFILES) $(UNOIDLDBDOCREGS))
++	$(REGMERGE) $(REGMERGEFLAGS) $@ / @$(mktmp $(UNOIDLDBDOCFILES) $(UNOIDLDBDOCREGS))
+ .IF "$(LOCALREGDB)"!=""
+-	$(REGMERGE) $(LOCALREGDB) / $@
++	$(REGMERGE) $(REGMERGEFLAGS) $(LOCALREGDB) / $@
+ .ENDIF
+ .ENDIF			# "$(UNOIDLDBDOCTARGET)"!=""
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/instsetoo_native/util/makefile.mk instsetoo_native/util/makefile.mk
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/instsetoo_native/util/makefile.mk	2007-01-16 09:12:02.000000000 +0100
++++ instsetoo_native/util/makefile.mk	2007-03-14 12:08:49.000000000 +0100
+#@@ -374,6 +374,8 @@ $(MISC)$/ure$/services.rdb .ERRREMOVE:
+#     + $(REGCOMP) -register -r $@ -c \
+#         $(MY_Q)vnd.sun.star.expand:$$URE_INTERNAL_LIB_DIR/uuresolver.uno$(DLLPOST)$(MY_Q) \
+#         -env:URE_INTERNAL_LIB_DIR=$(MY_URL)
+#+	+ $(REGMERGE) -i $@-internal / $@
+#+	+ $(MV) $@-internal $@
+# 
+# .IF "$(LOCALPYFILES)"!=""
+# .IF "$(PKGFORMAT)"==""
+--- oovbaapi/util/makefile.mk	2007-07-05 12:07:16.000000000 +0100
++++ oovbaapi-patched/util/makefile.mk	2007-07-05 12:43:12.000000000 +0100
+@@ -57,5 +57,5 @@ UNOIDLDBFILES= \
+ 	$(UCR)$/constants.db
+ 
+ # --- Targets ------------------------------------------------------
+-
++REGMERGEFLAGS=-i
+ .INCLUDE :  target.mk
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-nested-positionned-tables-ww8-import-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-nested-positionned-tables-ww8-import-fix.diff
@@ -0,0 +1,40 @@
+diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
+index 6c74798..339125c 100644
+--- sw/source/filter/ww8/ww8par.cxx
++++ sw/source/filter/ww8/ww8par.cxx
+@@ -2254,6 +2264,8 @@ bool SwWW8ImplReader::ProcessSpecial(bool &rbReSync, WW8_CP nStartCp)
+             nCellLevel = 0 != pPlcxMan->HasParaSprm(0x244B);
+     }
+ 
++ mark:
++
+     WW8_TablePos *pTabPos=0;
+     WW8_TablePos aTabPos;
+     if (nCellLevel && !bVer67)
+@@ -2267,7 +2279,7 @@ bool SwWW8ImplReader::ProcessSpecial(bool &rbReSync, WW8_CP nStartCp)
+         if (const BYTE *pLevel = pPlcxMan->HasParaSprm(0x6649))
+             nCellLevel = *pLevel;
+ 
+-        bool bHasRowEnd = SearchRowEnd(pPap, nMyStartCp, nCellLevel-1);
++        bool bHasRowEnd = SearchRowEnd(pPap, nMyStartCp, (nInTable<nCellLevel?nInTable:nCellLevel-1));
+ 
+         //Bad Table, remain unchanged in level, e.g. #i19667#
+         if (!bHasRowEnd)
+@@ -2345,12 +2357,16 @@ bool SwWW8ImplReader::ProcessSpecial(bool &rbReSync, WW8_CP nStartCp)
+                                             // in Tabellen
+         while (nInTable < nCellLevel)
+         {
+-            if (StartTable(nStartCp))
++            if (StartTable(nStartCp)) {
+                 ++nInTable;
++	    }
+             else
+                 break;
+ 
+             maApos.push_back(false);
++	    if (nInTable<nCellLevel)
++	       goto mark;
++
+         }
+         // nach StartTable ist ein ReSync noetig ( eigentlich nur, falls die
+         // Tabelle ueber eine FKP-Grenze geht
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-mstopdf.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-mstopdf.diff
@@ -0,0 +1,41 @@
+diff -urNp wizards/source/tools/MSToPDF.xba wizards/source/tools/MSToPDF.xba
+--- wizards/source/tools/MSToPDF.xba	1969-12-31 21:00:00.000000000 -0300
++++ wizards/source/tools/MSToPDF.xba	2008-02-28 16:34:16.000000000 -0300
+@@ -0,0 +1,28 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
++<script:module xmlns:script="http://openoffice.org/2000/script" script:name="MSToPDF" script:language="StarBasic">Sub ConvertMSToPDF(cFile)
++   cURL = ConvertToURL(cFile)
++   
++   &apos; Open the document.
++   &apos; This assumes the document is valid and OO can import it.
++   oDoc = StarDesktop.loadComponentFromURL(cURL, &quot;_blank&quot;, 0, Array(MakePropertyValue(&quot;Hidden&quot;, True),))
++   &apos; Remove the sufix
++   cFile = Left(cFile, Len(cFile)-4)+&quot;.pdf&quot;
++   cURL = ConvertToURL(cFile)
++   &apos; Save the document using a filter.
++   oDoc.storeToURL(cURL, Array(MakePropertyValue(&quot;FilterName&quot;, &quot;writer_pdf_Export&quot;),))
++   oDoc.close(True)
++End Sub
++
++&apos; This function was blindly ripped off from Graham Williams&apos; book (Graham.Williams@togaware.com)
++Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
++   Dim oPropertyValue As New com.sun.star.beans.PropertyValue
++   If Not IsMissing( cName ) Then
++      oPropertyValue.Name = cName
++   EndIf
++   If Not IsMissing( uValue ) Then
++      oPropertyValue.Value = uValue
++   EndIf
++   MakePropertyValue() = oPropertyValue
++End Function
++</script:module>
+diff -urNp wizards/source/tools/script.xlb wizards/source/tools/script.xlb
+--- wizards/source/tools/script.xlb	2008-02-28 16:23:29.000000000 -0300
++++ wizards/source/tools/script.xlb	2008-02-28 16:33:12.000000000 -0300
+@@ -7,4 +7,5 @@
+  <library:element library:name="UCB"/>
+  <library:element library:name="Listbox"/>
+  <library:element library:name="Debug"/>
++ <library:element library:name="MSToPDF"/>
+ </library:library>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ucb-gnome-vfs-lock-webdav.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ucb-gnome-vfs-lock-webdav.diff
@@ -0,0 +1,21 @@
+--- ucb/source/ucp/webdav/webdavcontent.cxx	2007-07-27 15:43:02.000000000 +0200
++++ ucb/source/ucp/webdav/webdavcontent.cxx	2007-07-27 15:56:21.000000000 +0200
+@@ -1414,6 +1414,18 @@ uno::Reference< sdbc::XRow > Content::ge
+     uno::Reference< ucb::XContentIdentifier >    xIdentifier;
+     rtl::Reference< ::ucbhelper::ContentProviderImplHelper > xProvider;
+ 
++    // webdav does not support active streaming, we can immediately return
++    if ( ( rProperties.getLength() == 1 ) &&
++            rProperties[ 0 ].Name.equalsAsciiL(
++                RTL_CONSTASCII_STRINGPARAM( "SupportsActiveStreaming" ) ) )
++    {
++        rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
++            = new ::ucbhelper::PropertyValueSet( m_xSMgr );
++        xRow->appendBoolean( rProperties[0], sal_False );
++
++        return uno::Reference< sdbc::XRow >( xRow.get() );
++    }
++
+     {
+         osl::Guard< osl::Mutex > aGuard( m_aMutex );
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-calc-datapilot-drilldown.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-calc-datapilot-drilldown.diff
@@ -0,0 +1,5675 @@
+? sc/Debug
+? sc/sc.vpj
+? sc/qa/unoapi/sc.sce.single
+Index: sc/inc/dapiuno.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dapiuno.hxx,v
+retrieving revision 1.9
+retrieving revision 1.9.508.5
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.9 -r1.9.508.5
+--- sc/inc/dapiuno.hxx	13 Jan 2006 16:51:24 -0000	1.9
++++ sc/inc/dapiuno.hxx	18 Apr 2008 15:07:06 -0000	1.9.508.5
+@@ -56,9 +56,7 @@
+ #include <svtools/itemprop.hxx>
+ #endif
+ 
+-#ifndef _COM_SUN_STAR_SHEET_XDATAPILOTTABLE_HPP_
+-#include <com/sun/star/sheet/XDataPilotTable.hpp>
+-#endif
++#include <com/sun/star/sheet/XDataPilotTable2.hpp>
+ #ifndef _COM_SUN_STAR_SHEET_XDATAPILOTTABLES_HPP_
+ #include <com/sun/star/sheet/XDataPilotTables.hpp>
+ #endif
+@@ -124,6 +122,11 @@
+ #include <memory> 
+ #include <vector>
+ 
++namespace com { namespace sun { namespace star { namespace sheet {
++    struct DataPilotFieldFilter;
++    struct DataPilotTablePositionData;
++}}}}
++
+ class ScDocShell;
+ class ScPivot;
+ class ScDPSaveDimension;
+@@ -360,7 +363,7 @@
+ 
+ 
+ class ScDataPilotTableObj : public ScDataPilotDescriptorBase,
+-							public com::sun::star::sheet::XDataPilotTable
++							public com::sun::star::sheet::XDataPilotTable2
+ {
+ private:
+ 	SCTAB					nTab;
+@@ -392,6 +395,22 @@
+ 								throw(::com::sun::star::uno::RuntimeException);
+ 	virtual void SAL_CALL	refresh() throw(::com::sun::star::uno::RuntimeException);
+ 
++                            // XDataPilotTable2
++    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > 
++        SAL_CALL getDrillDownData(const ::com::sun::star::table::CellAddress& aAddr)
++                                throw(::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::sheet::DataPilotTablePositionData
++        SAL_CALL getPositionData(const ::com::sun::star::table::CellAddress& aAddr)
++                                throw(::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL insertDrillDownSheet(const ::com::sun::star::table::CellAddress& aAddr)
++                                throw(::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getOutputRangeByType( sal_Int32 nType )
++                                throw(::com::sun::star::lang::IllegalArgumentException,
++                                      ::com::sun::star::uno::RuntimeException);
++
+ 							// XTypeProvider (overloaded)
+ 	virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
+ 								throw(::com::sun::star::uno::RuntimeException);
+Index: sc/inc/dpcachetable.hxx
+===================================================================
+RCS file: sc/inc/dpcachetable.hxx
+diff -N sc/inc/dpcachetable.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/inc/dpcachetable.hxx	25 Apr 2008 00:19:03 -0000	1.1.2.10
+@@ -0,0 +1,256 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: dpcachetable.hxx,v $
++ *
++ *  $Revision: 1.1.2.10 $
++ *
++ *  last change: $Author: kohei $ $Date: 2008/04/25 00:19:03 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef SC_DPCACHETABLE_HXX
++#define SC_DPCACHETABLE_HXX
++
++#include "sal/types.h"
++#include "osl/mutex.hxx"
++#include "global.hxx"
++#include "collect.hxx"
++
++#include <vector>
++#include <set>
++#include <hash_map>
++#include <boost/shared_ptr.hpp>
++#include <com/sun/star/uno/Reference.hxx>
++
++namespace com { namespace sun { namespace star {
++    namespace sdbc {
++        class XRowSet;
++    }
++    namespace sheet {
++        struct DataPilotFieldFilter;
++    }
++}}}
++
++class Date;
++
++class ScDocument;
++class ScRange;
++class ScDPDimension;
++struct ScDPItemData;
++class Date;
++
++// ----------------------------------------------------------------------------
++
++/** public interface for string-sharing */
++class ScSharedString
++{
++public:
++    static const sal_Int32 EMPTY = 0;
++
++    static const String*    getString(sal_Int32 nId);
++    static sal_Int32        getStringId(const String& aStr);
++    static sal_Int32        insertString(const String& aStr);
++
++private:
++
++    /** internal shared string table implementation */
++    class StringTable
++    {
++    public:
++        sal_Int32 insertString(const String& aStr);
++        sal_Int32 getStringId(const String& aStr);
++        const String* getString(sal_Int32 nId) const;
++    
++        StringTable();
++        ~StringTable();
++    
++    private:
++        typedef ::std::hash_map< String, sal_Int32, ScStringHashCode, ::std::equal_to< String > > SharedStrMap;
++    
++        ::std::vector<String> maSharedStrings;
++        SharedStrMap maSharedStringIds;
++        sal_Int32 mnStrCount;
++    };
++
++    static ::osl::Mutex maStrMutex;
++    static StringTable maStringTable;
++};
++
++// ----------------------------------------------------------------------------
++
++class ScDPCacheTable
++{
++public:
++
++    /** individual cell within table. */
++    struct Cell
++    {
++        SCROW       mnCategoryRef;
++        sal_Int32   mnStrId;
++        sal_uInt8   mnType;
++        double      mfValue;
++        bool        mbNumeric;
++
++        Cell();
++    };
++
++    /** individual filter item used in SingleFilter and GroupFilter. */
++    struct FilterItem
++    {
++        sal_Int32   mnMatchStrId;
++        double      mfValue;
++        bool        mbHasValue;
++
++        FilterItem();
++    };
++
++    /** interface class used for filtering of rows. */
++    class FilterBase
++    {
++    public:
++        /** returns true if the matching condition is met for a single cell
++            value, or false otherwise. */
++        virtual bool match(const Cell& rCell) const = 0;
++    };
++
++    /** ordinary single-item filter. */
++    class SingleFilter : public FilterBase
++    {
++    public:
++        explicit SingleFilter();
++        explicit SingleFilter(sal_Int32 nMatchStrId, double fValue, bool bHasValue);
++
++        virtual bool match(const Cell& rCell) const;
++
++        const String    getMatchString() const;
++        double          getMatchValue() const;
++        bool            hasValue() const;
++
++    private:
++        FilterItem  maItem;
++    };
++
++    /** multi-item (group) filter. */
++    class GroupFilter : public FilterBase
++    {
++    public:
++        GroupFilter();
++        virtual bool match(const Cell& rCell) const;
++
++        void addMatchItem(const String& rStr, double fVal, bool bHasValue);
++
++    private:
++        ::std::vector<FilterItem> maItems;
++    };
++
++    /** single filtering criterion. */
++    struct Criterion
++    {
++        sal_Int32 mnFieldIndex;
++        ::boost::shared_ptr<FilterBase> mpFilter;
++
++        Criterion();
++    };
++
++    ScDPCacheTable();
++    ~ScDPCacheTable();
++
++    sal_Int32 getHeaderSize() const;
++    sal_Int32 getRowSize() const;
++    sal_Int32 getColSize() const;
++
++    /** Fill the internal table from the cell range provided.  This function
++        assumes that the first row is the column header. */
++    void fillTable(ScDocument* pDoc, const ScRange& rRange, const ScQueryParam& rQuery, BOOL* pSpecial, 
++                   bool bIgnoreEmptyRows);
++
++    /** Fill the internal table from database connection object.  This function
++        assumes that the first row is the column header. */
++    void fillTable(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xRowSet,
++                   const Date& rNullDate);
++
++    /** Check whether a specified row is active or not.  When a row is active,
++        it is used in calculation of the results data.  A row becomes inactive
++        when it is filtered out by page field. */
++    bool isRowActive(sal_Int32 nRow) const;
++
++    /** Set filter on/off flag to each row to control visibility.  The caller
++        must ensure that the table is filled before calling this function. */
++    void filterByPageDimension(const ::std::vector<ScDPDimension*>& rPageDims);
++
++    /** Get the cell instance at specified location within the data grid. Note
++        that the data grid doesn't include the header row.  Don't delete the
++        returned object! */
++    const ::ScDPCacheTable::Cell* getCell(SCCOL nCol, SCROW nRow, bool bRepeatIfEmpty = false) const;
++
++    const String* getFieldName(sal_Int32 nIndex) const;
++
++    /** Get the field index (i.e. column ID in the original data source) based
++        on the string value that corresponds with the column title.  It returns
++        -1 if no field matching the string value exists. */
++    sal_Int32 getFieldIndex(const String& rStr) const;
++
++    /** Get the unique entries for a field specified by index.  The caller must
++        make sure that the table is filled before calling function, or it will
++        get an empty collection. */
++    const TypedStrCollection& getFieldEntries(sal_Int32 nIndex) const;
++
++    /** Filter the table based on the specified criteria, and copy the
++        result to rTabData.  This method is used, for example, to generate
++        a drill-down data table. */
++    void filterTable(const ::std::vector<Criterion>& rCriteria,
++                     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& rTabData,
++                     bool bRepeatIfEmpty = false);
++
++    void clear();
++    void swap(ScDPCacheTable& rOther);
++    bool empty() const;
++
++private:
++    void getValueData(ScDocument* pDoc, const ScAddress& rPos, Cell& rCell);
++    ScDPCacheTable::Cell getSelectedDimension(ScDPDimension* pDim) const;
++
++private:
++    typedef ::boost::shared_ptr<TypedStrCollection> TypedStrCollectionPtr;
++
++    /** main data table. */
++    ::std::vector< ::std::vector< ::ScDPCacheTable::Cell > > maTable;
++
++    /** header string IDs */
++    ::std::vector<sal_Int32> maHeader;
++
++    /** unique field entires for each field (column). */
++    ::std::vector<TypedStrCollectionPtr> maFieldEntries;
++
++    /** used to track visibility of rows.  The first row below the header row
++        has the index of 0. */
++    ::std::vector<bool> maRowsVisible;
++};
++
++
++#endif
+Index: sc/inc/dpgroup.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dpgroup.hxx,v
+retrieving revision 1.4
+retrieving revision 1.4.570.4
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.4 -r1.4.570.4
+--- sc/inc/dpgroup.hxx	8 Sep 2005 17:34:35 -0000	1.4
++++ sc/inc/dpgroup.hxx	24 Apr 2008 23:26:38 -0000	1.4.570.4
+@@ -37,6 +37,7 @@
+ #define SC_DPGROUP_HXX
+ 
+ #include <vector>
++#include <hash_set>
+ 
+ #ifndef SC_DPTABDAT_HXX
+ #include "dptabdat.hxx"
+@@ -102,6 +103,8 @@
+     const ScDPItemData& GetName() const     { return aGroupName; }
+     bool        HasElement( const ScDPItemData& rData ) const;
+     bool        HasCommonElement( const ScDPGroupItem& rOther ) const;
++
++    void        FillGroupFilter( ScDPCacheTable::GroupFilter& rFilter ) const;
+ };
+ 
+ typedef ::std::vector<ScDPGroupItem> ScDPGroupItemVec;
+@@ -132,12 +135,15 @@
+     const TypedStrCollection& GetColumnEntries( const TypedStrCollection& rOriginal, ScDocument* pDoc ) const;
+     const ScDPGroupItem* GetGroupForData( const ScDPItemData& rData ) const;  // rData = entry in original dim.
+     const ScDPGroupItem* GetGroupForName( const ScDPItemData& rName ) const;  // rName = entry in group dim.
++    const ScDPGroupItem* GetGroupByIndex( size_t nIndex ) const;
+ 
+     const ScDPDateGroupHelper* GetDateHelper() const    { return pDateHelper; }
+ 
+     void        MakeDateHelper( const ScDPNumGroupInfo& rInfo, sal_Int32 nPart );
+ 
+     void        DisposeData();
++
++    size_t      GetItemCount() const { return aItems.size(); }
+ };
+ 
+ typedef ::std::vector<ScDPGroupDimension> ScDPGroupDimensionVec;
+@@ -180,13 +186,17 @@
+ 
+ class ScDPGroupTableData : public ScDPTableData
+ {
++    typedef ::std::hash_set< ::rtl::OUString, ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > > StringHashSet;
++
+     ScDPTableData*          pSourceData;
+     long                    nSourceCount;
+     ScDPGroupDimensionVec   aGroups;
+     ScDPNumGroupDimension*  pNumGroups;     // array[nSourceCount]
+     ScDocument*             pDoc;
++    StringHashSet           aGroupNames;
+ 
+     void        FillGroupValues( ScDPItemData* pItemData, long nCount, const long* pDims );
++    void        CopyFields(const ::std::vector<long>& rFieldDims, ::std::vector<long>& rNewFieldDims);
+     long*       CopyFields( const long* pSourceDims, long nCount );
+ 
+     bool        IsNumGroupDimension( long nDimension ) const;
+@@ -213,8 +223,12 @@
+     virtual void                    DisposeData();
+     virtual void                    SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty );
+ 
+-    virtual void                    ResetIterator();
+-    virtual BOOL                    GetNextRow( const ScDPTableIteratorParam& rParam );
++    virtual void                    CreateCacheTable();
++    virtual void                    FilterCacheTable(const ::std::vector<ScDPDimension*>& rPageDims);
++    virtual void                    GetDrillDownData(const ::std::vector<ScDPCacheTable::Criterion>& rCriteria,
++                                                     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& rData);
++    virtual void                    CalcResults(CalcInfo& rInfo, bool bAutoShow);
++    virtual const ScDPCacheTable&   GetCacheTable() const;
+ 
+     virtual BOOL                    IsBaseForGroup(long nDim) const;
+     virtual long                    GetGroupBase(long nGroupDim) const;
+Index: sc/inc/dpobject.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dpobject.hxx,v
+retrieving revision 1.13
+retrieving revision 1.12.112.6
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.13 -r1.12.112.6
+--- sc/inc/dpobject.hxx	26 Nov 2007 15:18:35 -0000	1.13
++++ sc/inc/dpobject.hxx	4 Dec 2007 16:51:09 -0000	1.12.112.6
+@@ -62,6 +62,12 @@
+ 
+ //------------------------------------------------------------------
+ 
++namespace com { namespace sun { namespace star { namespace sheet {
++
++    struct DataPilotTablePositionData;
++    struct DataPilotTableHeaderData;
++
++}}}}
+ 
+ namespace com { namespace sun { namespace star { namespace sheet {
+     struct DataPilotFieldFilter;
+@@ -71,7 +77,6 @@
+ class SvStream;
+ class ScDPSaveData;
+ class ScDPOutput;
+-struct ScDPPositionData;
+ class ScMultipleReadHeader;
+ class ScMultipleWriteHeader;
+ class ScPivot;
+@@ -82,7 +87,7 @@
+ class StrCollection;
+ class TypedStrCollection;
+ struct PivotField;
+-
++class ScDPCacheTable;
+ 
+ struct ScDPServiceDesc
+ {
+@@ -146,6 +151,7 @@
+ 
+ 	void				Output();
+ 	ScRange				GetNewOutputRange( BOOL& rOverflow );
++    const ScRange       GetOutputRangeByType( sal_Int32 nType );
+ 
+ 	void				SetSaveData(const ScDPSaveData& rData);
+ 	ScDPSaveData*		GetSaveData() const		{ return pSaveData; }
+@@ -179,7 +185,7 @@
+ 	String				GetDimName( long nDim, BOOL& rIsDataLayout );
+     BOOL                IsDuplicated( long nDim );
+     long                GetDimCount();
+-	void				GetPositionData( ScDPPositionData& rData, const ScAddress& rPos );
++    void                GetHeaderPositionData(const ScAddress& rPos, ::com::sun::star::sheet::DataPilotTableHeaderData& rData);
+ 	long				GetHeaderDim( const ScAddress& rPos, USHORT& rOrient );
+ 	BOOL				GetHeaderDrag( const ScAddress& rPos, BOOL bMouseLeft, BOOL bMouseTop,
+ 										long nDragDim,
+@@ -196,7 +202,7 @@
+ 
+ 	void				FillPageList( TypedStrCollection& rStrings, long nField );
+ 
+-	void				ToggleDetails( ScDPPositionData& rElemDesc, ScDPObject* pDestObj );
++    void                ToggleDetails(const ::com::sun::star::sheet::DataPilotTableHeaderData& rElemDesc, ScDPObject* pDestObj);
+ 
+ 	BOOL				StoreOld(SvStream& rStream, ScMultipleWriteHeader& rHdr ) const;
+ 	BOOL				StoreNew(SvStream& rStream, ScMultipleWriteHeader& rHdr ) const;
+@@ -227,9 +233,16 @@
+ 	BOOL				RefsEqual( const ScDPObject& r ) const;
+ 	void				WriteRefsTo( ScDPObject& r ) const;
+ 
+-    bool                GetDataFieldPositionData(
+-                            ::std::vector< ::com::sun::star::sheet::DataPilotFieldFilter >& rFilters,
+-                            const ScAddress& rPos);
++    void                GetPositionData(const ScAddress& rPos, ::com::sun::star::sheet::DataPilotTablePositionData& rPosData);
++
++    bool                GetDataFieldPositionData(const ScAddress& rPos, 
++                                                 ::com::sun::star::uno::Sequence< 
++                                                    ::com::sun::star::sheet::DataPilotFieldFilter >& rFilters);
++
++    void                GetDrillDownData(const ScAddress& rPos, 
++                                         ::com::sun::star::uno::Sequence< 
++                                            ::com::sun::star::uno::Sequence< 
++                                                ::com::sun::star::uno::Any > >& rTableData);
+ 
+ 	// apply drop-down attribute, initialize nHeaderRows, without accessing the source
+ 	// (button attribute must be present)
+Index: sc/inc/dpoutput.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dpoutput.hxx,v
+retrieving revision 1.9
+retrieving revision 1.8.112.6
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.9 -r1.8.112.6
+--- sc/inc/dpoutput.hxx	26 Nov 2007 15:18:57 -0000	1.9
++++ sc/inc/dpoutput.hxx	4 Dec 2007 06:06:26 -0000	1.8.112.6
+@@ -52,6 +52,8 @@
+ #include <com/sun/star/sheet/GeneralFunction.hpp>
+ #endif
+ 
++#include <com/sun/star/sheet/DataPilotOutputRangeType.hpp>
++
+ #ifndef SC_SCGLOB_HXX
+ #include "global.hxx"
+ #endif
+@@ -60,10 +62,12 @@
+ #include "address.hxx"
+ #endif
+ 
++#include "dpcachetable.hxx"
+ #include <vector>
+ 
+ namespace com { namespace sun { namespace star { namespace sheet {
+     struct DataPilotFieldFilter;
++    struct DataPilotTablePositionData;
+ }}}}
+ 
+ class Rectangle;
+@@ -74,19 +78,6 @@
+ struct ScDPOutLevelData;
+ 
+ 
+-
+-
+-struct ScDPPositionData
+-{
+-	long	nDimension;
+-	long	nHierarchy;
+-	long	nLevel;
+-	long	nFlags;
+-	String	aMemberName;
+-
+-	ScDPPositionData() { nDimension = nHierarchy = nLevel = -1; nFlags = 0; }	// invalid
+-};
+-
+ struct ScDPGetPivotDataField
+ {
+     String maFieldName;
+@@ -126,12 +117,15 @@
+ 			com::sun::star::sheet::DataResult> > aData;
+ 	BOOL					bResultsError;
+ 	String					aDataDescription;
++
++    // Number format related parameters
+ 	UINT32*					pColNumFmt;
+ 	UINT32*					pRowNumFmt;
+ 	long					nColFmtCount;
+ 	long					nRowFmtCount;
+     UINT32                  nSingleNumFmt;
+ 
++    // Output geometry related parameters
+ 	BOOL					bSizesValid;
+ 	BOOL					bSizeOverflow;
+ 	long					nColCount;
+@@ -155,6 +149,11 @@
+ 								BOOL bFrame = TRUE );
+ 	void			CalcSizes();
+ 
++    /** Query which sub-area of the table the cell is in. See
++        css.sheet.DataPilotTablePositionType for the interpretation of the
++        return value. */
++    sal_Int32       GetPositionType(const ScAddress& rPos);
++
+ public:
+ 					ScDPOutput( ScDocument* pD,
+ 								const com::sun::star::uno::Reference<
+@@ -165,15 +164,15 @@
+ 	void			SetPosition( const ScAddress& rPos );
+ 
+ 	void			Output();			//! Refresh?
+-	ScRange			GetOutputRange();
++    ScRange			GetOutputRange( sal_Int32 nRegionType = ::com::sun::star::sheet::DataPilotOutputRangeType::WHOLE );
+ 	long			GetHeaderRows();
+ 	BOOL			HasError();			// range overflow or exception from source
+ 
+-	void			GetPositionData( ScDPPositionData& rData, const ScAddress& rPos );
++    void            GetPositionData(const ScAddress& rPos, ::com::sun::star::sheet::DataPilotTablePositionData& rPosData);
+ 
+     /** Get filtering criteria based on the position of the cell within data
+         field region. */
+-    bool            GetDataFieldPositionData(::std::vector< ::com::sun::star::sheet::DataPilotFieldFilter >& rFilters, const ScAddress& rPos);
++    bool            GetDataResultPositionData(::std::vector< ::com::sun::star::sheet::DataPilotFieldFilter >& rFilters, const ScAddress& rPos);
+ 
+     BOOL            GetPivotData( ScDPGetPivotDataField& rTarget, /* returns result */
+                                   const std::vector< ScDPGetPivotDataField >& rFilters );
+Index: sc/inc/dpsdbtab.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dpsdbtab.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.570.4
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.3 -r1.3.570.4
+--- sc/inc/dpsdbtab.hxx	8 Sep 2005 17:35:48 -0000	1.3
++++ sc/inc/dpsdbtab.hxx	24 Apr 2008 23:26:38 -0000	1.3.570.4
+@@ -50,6 +50,11 @@
+ #include "dptabdat.hxx"
+ #endif
+ 
++#include <vector>
++#include <set>
++
++class ScDPCacheTable;
++
+ // --------------------------------------------------------------------
+ //
+ //	implementation of ScDPTableData with database data
+@@ -77,7 +82,6 @@
+ 	ScDatabaseDPData_Impl* pImpl;
+ 
+ 	BOOL			OpenDatabase();
+-	void			InitAllColumnEntries();
+ 
+ public:
+ 					ScDatabaseDPData(
+@@ -94,8 +98,12 @@
+ 	virtual void					DisposeData();
+ 	virtual void					SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty );
+ 
+-	virtual void					ResetIterator();
+-	virtual BOOL					GetNextRow( const ScDPTableIteratorParam& rParam );
++    virtual void                    CreateCacheTable();
++    virtual void                    FilterCacheTable(const ::std::vector<ScDPDimension*>& rPageDims);
++    virtual void                    GetDrillDownData(const ::std::vector<ScDPCacheTable::Criterion>& rCriteria,
++                                                     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& rData);
++    virtual void                    CalcResults(CalcInfo& rInfo, bool bAutoShow);
++    virtual const ScDPCacheTable&   GetCacheTable() const;
+ };
+ 
+ 
+Index: sc/inc/dpshttab.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dpshttab.hxx,v
+retrieving revision 1.4
+retrieving revision 1.4.570.5
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.4 -r1.4.570.5
+--- sc/inc/dpshttab.hxx	8 Sep 2005 17:36:03 -0000	1.4
++++ sc/inc/dpshttab.hxx	24 Apr 2008 23:26:38 -0000	1.4.570.5
+@@ -48,6 +48,14 @@
+ #include "address.hxx"
+ #endif
+ 
++#include <vector>
++
++namespace com { namespace sun { namespace star { namespace sheet {
++    struct DataPilotFieldFilter;
++}}}}
++
++class ScDPDimension;
++class ScDPItemData;
+ 
+ // --------------------------------------------------------------------
+ //
+@@ -70,7 +78,6 @@
+ {
+ private:
+ 	ScSheetDPData_Impl* pImpl;
+-    BOOL* pSpecial;
+ 
+ public:
+ 					ScSheetDPData( ScDocument* pD, const ScSheetSourceDesc& rDesc );
+@@ -85,8 +92,14 @@
+ 	virtual void					DisposeData();
+ 	virtual void					SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty );
+ 
+-	virtual void					ResetIterator();
+-	virtual BOOL					GetNextRow( const ScDPTableIteratorParam& rParam );
++    virtual bool                    IsRepeatIfEmpty();
++
++    virtual void                    CreateCacheTable();
++    virtual void                    FilterCacheTable(const ::std::vector<ScDPDimension*>& rPageDims);
++    virtual void                    GetDrillDownData(const ::std::vector<ScDPCacheTable::Criterion>& rCriteria,
++                                                     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& rData);
++    virtual void                    CalcResults(CalcInfo& rInfo, bool bAutoShow);
++    virtual const ScDPCacheTable&   GetCacheTable() const;
+ };
+ 
+ 
+Index: sc/inc/dptabdat.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dptabdat.hxx,v
+retrieving revision 1.6
+retrieving revision 1.6.216.6
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.6 -r1.6.216.6
+--- sc/inc/dptabdat.hxx	25 Jan 2007 11:03:15 -0000	1.6
++++ sc/inc/dptabdat.hxx	25 Apr 2008 00:02:15 -0000	1.6.216.6
+@@ -40,10 +40,21 @@
+ #include "address.hxx"
+ #endif
+ 
++#include "dpoutput.hxx"
++#include "dpcachetable.hxx"
++
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+ #endif
+ 
++#include <vector>
++#include <set>
++#include <hash_map>
++
++namespace com { namespace sun { namespace star { namespace sheet {
++    struct DataPilotFieldFilter;
++}}}}
++
+ class TypedStrCollection;
+ 
+ // -----------------------------------------------------------------------
+@@ -65,6 +76,7 @@
+ #define SC_DAPI_LEVEL_WEEK		1
+ #define SC_DAPI_LEVEL_WEEKDAY	2
+ 
++
+ // --------------------------------------------------------------------
+ //
+ //	base class ScDPTableData to allow implementation with tabular data
+@@ -105,29 +117,11 @@
+ 	void	Set( double fV, BYTE nT ) { fValue = fV; nType = nT; }
+ };
+ 
+-
+-struct ScDPTableIteratorParam
+-{
+-	//	all pointers are just copied
+-
+-	SCSIZE			nColCount;
+-	const long*		pCols;
+-	ScDPItemData*	pColData;
+-	SCSIZE			nRowCount;
+-	const long*		pRows;
+-	ScDPItemData*	pRowData;
+-	SCSIZE			nPageCount;
+-	const long*		pPages;
+-	ScDPItemData*	pPageData;
+-	SCSIZE			nDatCount;
+-	const long*		pDats;
+-	ScDPValueData*	pValues;
+-
+-	ScDPTableIteratorParam( long nCCount, const long* pC, ScDPItemData* pCDat,
+-							long nRCount, const long* pR, ScDPItemData* pRDat,
+-							long nPCount, const long* pP, ScDPItemData* pPDat,
+-							long nDCount, const long* pD, ScDPValueData* pV );
+-};
++class ScDPResultMember;
++class ScDPDimension;
++class ScDPLevel;
++class ScDPInitState;
++class ScDPResultMember;
+ 
+ class ScDPTableData
+ {
+@@ -138,6 +132,30 @@
+ 	long 	nLastRet;
+ 
+ public:
++
++    /** This structure stores dimension information used when calculating
++        results.  These data are read only during result calculation, so it
++        should be passed as a const instance. */
++    struct CalcInfo
++    {
++        ::std::vector<long>             aColLevelDims;
++        ::std::vector<ScDPDimension*>   aColDims;
++        ::std::vector<ScDPLevel*>       aColLevels;
++        ::std::vector<long>             aRowLevelDims;
++        ::std::vector<ScDPDimension*>   aRowDims;
++        ::std::vector<ScDPLevel*>       aRowLevels;
++        ::std::vector<long>             aPageDims;
++        ::std::vector<long>             aDataSrcCols;
++
++        ScDPInitState*                  pInitState;
++        ScDPResultMember*               pColRoot;
++        ScDPResultMember*               pRowRoot;
++
++        bool                            bRepeatIfEmpty;
++
++        CalcInfo();
++    };
++
+ 				ScDPTableData();
+ 	virtual		~ScDPTableData();
+ 
+@@ -155,8 +173,14 @@
+ 	virtual void					DisposeData() = 0;
+ 	virtual void					SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty ) = 0;
+ 
+-	virtual void					ResetIterator() = 0;
+-	virtual BOOL					GetNextRow( const ScDPTableIteratorParam& rParam ) = 0;
++    virtual bool                    IsRepeatIfEmpty();
++
++    virtual void                    CreateCacheTable();
++    virtual void                    FilterCacheTable(const ::std::vector<ScDPDimension*>& rPageDims);
++    virtual void                    GetDrillDownData(const ::std::vector<ScDPCacheTable::Criterion>& rCriteria,
++                                                     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& rData);
++    virtual void                    CalcResults(CalcInfo& rInfo, bool bAutoShow);
++    virtual const ScDPCacheTable&   GetCacheTable() const = 0;
+ 
+                                     // overloaded in ScDPGroupTableData:
+     virtual BOOL                    IsBaseForGroup(long nDim) const;
+@@ -166,6 +190,25 @@
+                                                const ScDPItemData& rBaseData, long nBaseIndex ) const;
+     virtual BOOL                    HasCommonElement( const ScDPItemData& rFirstData, long nFirstIndex,
+                                                       const ScDPItemData& rSecondData, long nSecondIndex ) const;
++
++protected:
++    /** This structure stores vector arrays that hold intermediate data for
++        each row during cache table iteration. */
++    struct CalcRowData
++    {
++        ::std::vector<ScDPItemData>  aColData;
++        ::std::vector<ScDPItemData>  aRowData;
++        ::std::vector<ScDPItemData>  aPageData;
++        ::std::vector<ScDPValueData> aValues;
++    };
++
++    void            FillRowDataFromCacheTable(sal_Int32 nRow, const ScDPCacheTable& rCacheTable, const CalcInfo& rInfo, CalcRowData& rData);
++    void            ProcessRowData(CalcInfo& rInfo, CalcRowData& rData, bool bAutoShow);
++    void            CalcResultsFromCacheTable(const ScDPCacheTable& rCacheTable, CalcInfo& rInfo, bool bAutoShow);
++
++private:
++    void            GetItemData(const ScDPCacheTable& rCacheTable, sal_Int32 nRow, 
++                                const ::std::vector<long>& rDims, ::std::vector<ScDPItemData>& rItemData);
+ };
+ 
+ 
+Index: sc/inc/dptabres.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dptabres.hxx,v
+retrieving revision 1.7
+retrieving revision 1.7.202.7
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.7 -r1.7.202.7
+--- sc/inc/dptabres.hxx	27 Feb 2007 11:55:52 -0000	1.7
++++ sc/inc/dptabres.hxx	21 Apr 2008 03:07:57 -0000	1.7.202.7
+@@ -308,9 +308,9 @@
+ class ScDPResultMember
+ {
+ private:
+-	ScDPResultData*			pResultData;
+-	ScDPDimension*			pParentDim;				//! Ref
+-	ScDPLevel*				pParentLevel;			//! Ref
++    const ScDPResultData*   pResultData;
++    const ScDPDimension*    pParentDim;             //! Ref
++    const ScDPLevel*        pParentLevel;           //! Ref
+ 	const ScDPMember*		pMemberDesc;			//! Ref
+ 	ScDPResultDimension*	pChildDimension;
+ 	ScDPDataMember*			pDataRoot;
+@@ -322,15 +322,20 @@
+ 	ScDPAggData				aColTotal;				// to store column totals
+ 
+ public:
+-						ScDPResultMember( ScDPResultData* pData, ScDPDimension* pDim,
+-											ScDPLevel* pLev, ScDPMember* pDesc,
++                        ScDPResultMember( const ScDPResultData* pData, const ScDPDimension* pDim,
++                                          const ScDPLevel* pLev, const ScDPMember* pDesc,
+ 											BOOL bForceSub );	//! Ref
+ 						~ScDPResultMember();
+ 
+-	void				InitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPInitState& rInitState );
+-	void				LateInitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPItemData* pItemData,
++    void                InitFrom( const ::std::vector<ScDPDimension*>& ppDim, 
++                                  const ::std::vector<ScDPLevel*>& ppLev,
++                                  size_t nPos,
++                                  ScDPInitState& rInitState );
++    void                LateInitFrom( const ::std::vector<ScDPDimension*>& ppDim, 
++                                      const ::std::vector<ScDPLevel*>& ppLev, 
++                                      const ::std::vector<ScDPItemData>& pItemData,
++                                      size_t nPos,
+                                         ScDPInitState& rInitState );
+-
+ 	String				GetName() const;
+     void                FillItemData( ScDPItemData& rData ) const;
+ 	BOOL				IsValid() const;
+@@ -343,15 +348,15 @@
+ 	long				GetSubTotalCount( long* pUserSubStart = NULL ) const;
+ 
+ 	BOOL				IsNamedItem( const ScDPItemData& r ) const;
+-	BOOL				IsValidEntry( const ScDPItemData* pMembers ) const;
++    bool                IsValidEntry( const ::std::vector<ScDPItemData>& aMembers ) const;
+ 
+ 	void				SetHasElements()	{ bHasElements = TRUE; }
+ 	void                SetAutoHidden()     { bAutoHidden = TRUE; }
+ 
+-	void				ProcessData( const ScDPItemData* pChildMembers,
+-										ScDPResultDimension* pDataDim,
+-										const ScDPItemData* pDataMembers,
+-										const ScDPValueData* pValues );
++    void                ProcessData( const ::std::vector<ScDPItemData>& aChildMembers,
++                                     const ScDPResultDimension* pDataDim,
++                                     const ::std::vector<ScDPItemData>& aDataMembers,
++                                     const ::std::vector<ScDPValueData>& aValues );
+ 
+ 	void				FillMemberResults( com::sun::star::uno::Sequence<
+ 												com::sun::star::sheet::MemberResult>* pSequences,
+@@ -391,15 +396,15 @@
+ class ScDPDataMember
+ {
+ private:
+-	ScDPResultData*			pResultData;
++    const ScDPResultData*       pResultData;
+ 	const ScDPResultMember*		pResultMember;			//! Ref?
+ 	ScDPDataDimension*		pChildDimension;
+ 	ScDPAggData				aAggregate;
+ 
+-	void				UpdateValues( const ScDPValueData* pValues, const ScDPSubTotalState& rSubState );
++    void                UpdateValues( const ::std::vector<ScDPValueData>& aValues, const ScDPSubTotalState& rSubState );
+ 
+ public:
+-						ScDPDataMember( ScDPResultData* pData, const ScDPResultMember* pRes );
++                        ScDPDataMember( const ScDPResultData* pData, const ScDPResultMember* pRes );
+ 						~ScDPDataMember();
+ 
+ 	void				InitFrom( const ScDPResultDimension* pDim );
+@@ -412,7 +417,7 @@
+ 
+ 	BOOL				HasHiddenDetails() const;
+ 
+-	void				ProcessData( const ScDPItemData* pChildMembers, const ScDPValueData* pValues,
++    void                ProcessData( const ::std::vector<ScDPItemData>& aChildMembers, const ::std::vector<ScDPValueData>& aValues,
+ 									const ScDPSubTotalState& rSubState );
+ 
+ 	BOOL				HasError( long nMeasure, const ScDPSubTotalState& rSubState ) const;
+@@ -462,7 +467,7 @@
+ 	typedef	std::hash_map <ScDPItemData, ScDPResultMember *, MemberHashFunc>	MemberHash;
+ 
+ private:
+-	ScDPResultData*			pResultData;
++    const ScDPResultData*   pResultData;
+ 	MemberArray				maMemberArray;
+ 	MemberHash				maMemberHash;
+ 	BOOL                    bInitialized;
+@@ -479,23 +484,28 @@
+ 
+ 	ScDPResultMember* 		FindMember( const ScDPItemData& rData ) const;
+ public:
+-						ScDPResultDimension( ScDPResultData* pData );
++                        ScDPResultDimension( const ScDPResultData* pData );
+ 						~ScDPResultDimension();
+ 
+ 						//	allocates new members
+-	void				InitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPInitState& rInitState );
+-	void				LateInitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPItemData* pItemData,
++    void                InitFrom( const ::std::vector<ScDPDimension*>& ppDim, 
++                                  const ::std::vector<ScDPLevel*>& ppLev,
++                                  size_t nPos,
++                                  ScDPInitState& rInitState );
++    void                LateInitFrom( const ::std::vector<ScDPDimension*>& ppDim, 
++                                      const ::std::vector<ScDPLevel*>& ppLev, 
++                                      const ::std::vector<ScDPItemData>& pItemData,
++                                      size_t nPos,
+                                         ScDPInitState& rInitState );
+ 
+ 	long				GetSize(long nMeasure) const;
+ 
+-	BOOL				IsValidEntry( const ScDPItemData* pMembers ) const;
+-
++    bool                IsValidEntry( const ::std::vector<ScDPItemData>& aMembers ) const;
+ 						//	modifies existing members, allocates data dimensions
+-	void				ProcessData( const ScDPItemData* pMembers,
+-										ScDPResultDimension* pDataDim,
+-										const ScDPItemData* pDataMembers,
+-										const ScDPValueData* pValues );	//! Test
++	void				ProcessData( const ::std::vector<ScDPItemData>& aMembers,
++                                     const ScDPResultDimension* pDataDim,
++                                     const ::std::vector<ScDPItemData>& aDataMembers,
++                                     const ::std::vector<ScDPValueData>& aValues ) const;	//! Test
+ 
+ 	void				FillMemberResults( com::sun::star::uno::Sequence<
+ 												com::sun::star::sheet::MemberResult>* pSequences,
+@@ -554,17 +564,17 @@
+ class ScDPDataDimension
+ {
+ private:
+-	ScDPResultData*		pResultData;
++    const ScDPResultData*		pResultData;
+ 	const ScDPResultDimension* pResultDimension;  // column
+ 	ScDPDataMembers		aMembers;
+ 	BOOL				bIsDataLayout;		//! or ptr to IntDimension?
+ 
+ public:
+-						ScDPDataDimension( ScDPResultData* pData );
++                        ScDPDataDimension( const ScDPResultData* pData );
+ 						~ScDPDataDimension();
+ 
+ 	void				InitFrom( const ScDPResultDimension* pDim );		// recursive
+-	void				ProcessData( const ScDPItemData* pDataMembers, const ScDPValueData* pValues,
++    void                ProcessData( const ::std::vector<ScDPItemData>& aDataMembers, const ::std::vector<ScDPValueData>& aValues,
+ 									const ScDPSubTotalState& rSubState );
+ 
+ 	void				FillDataRow( const ScDPResultDimension* pRefDim,
+Index: sc/inc/dptabsrc.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dptabsrc.hxx,v
+retrieving revision 1.10
+retrieving revision 1.8.216.4
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.10 -r1.8.216.4
+--- sc/inc/dptabsrc.hxx	26 Nov 2007 15:19:15 -0000	1.10
++++ sc/inc/dptabsrc.hxx	6 Dec 2007 06:41:12 -0000	1.8.216.4
+@@ -93,6 +93,7 @@
+ #ifndef _COM_SUN_STAR_UTIL_XREFRESHABLE_HPP_
+ #include <com/sun/star/util/XRefreshable.hpp>
+ #endif
++#include <com/sun/star/sheet/XDrillDownDataSupplier.hpp>
+ #ifndef _COM_SUN_STAR_UTIL_XCLONEABLE_HPP_
+ #include <com/sun/star/util/XCloneable.hpp>
+ #endif
+@@ -115,14 +116,20 @@
+ #ifndef _CPPUHELPER_IMPLBASE5_HXX_
+ #include <cppuhelper/implbase5.hxx>
+ #endif
++#include <cppuhelper/implbase6.hxx>
+ 
+ #ifndef SC_DPTABDAT_HXX
+ #include "dptabdat.hxx"
+ #endif
+ 
+-namespace com { namespace sun { namespace star { namespace sheet {
++namespace com { namespace sun { namespace star { 
++    namespace sheet {
+     struct DataPilotFieldFilter;
+-}}}}
++    }
++    namespace table {
++        struct CellAddress;
++    }
++}}}
+ 
+ class ScDPResultMember;
+ class ScDPResultData;
+@@ -152,14 +159,18 @@
+ class ScDPMember;
+ 
+ 
+-class ScDPSource : public cppu::WeakImplHelper5<
++class ScDPSource : public cppu::WeakImplHelper6<
+ 							com::sun::star::sheet::XDimensionsSupplier,
+ 							com::sun::star::sheet::XDataPilotResults,
+ 							com::sun::star::util::XRefreshable,
++                            com::sun::star::sheet::XDrillDownDataSupplier,
+ 							com::sun::star::beans::XPropertySet,
+ 							com::sun::star::lang::XServiceInfo >
+ {
+ private:
++    void FillCalcInfo(bool bIsRow, ScDPTableData::CalcInfo& rInfo, bool &bHasAutoShow);
++
++private:
+ 	ScDPTableData*			pData;				// data source
+ 	ScDPDimensions*			pDimensions;		// api objects
+ 												// settings:
+@@ -186,7 +197,6 @@
+ 	com::sun::star::uno::Sequence<com::sun::star::sheet::MemberResult>* pRowResults;
+ 	List					aColLevelList;
+ 	List					aRowLevelList;
+-	ScSubTotalFunc			eDataFunctions[SC_DAPI_MAXFIELDS];
+ 	BOOL					bResultOverflow;
+ 
+ 	void					CreateRes_Impl();
+@@ -227,9 +237,6 @@
+ 
+ 	void					DumpState( ScDocument* pDoc, const ScAddress& rPos );
+ 
+-    void                    WriteDrillDownData( ScDocument* pDoc, const ScAddress& rPos,
+-                                    const ::std::vector< ::com::sun::star::sheet::DataPilotFieldFilter > rFilters );
+-
+ 							// XDimensionsSupplier
+ 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
+ 							SAL_CALL getDimensions(  )
+@@ -249,6 +256,12 @@
+ 									::com::sun::star::util::XRefreshListener >& l )
+ 								throw(::com::sun::star::uno::RuntimeException);
+ 
++                            // XDrillDownDataSupplier
++    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > 
++        SAL_CALL getDrillDownData(const ::com::sun::star::uno::Sequence< 
++                                      ::com::sun::star::sheet::DataPilotFieldFilter >& aFilters )
++                                throw(::com::sun::star::uno::RuntimeException);
++
+ 							// XPropertySet
+ 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+ 							SAL_CALL getPropertySetInfo(  )
+@@ -365,7 +378,7 @@
+ {
+ private:
+ 	ScDPSource*			pSource;
+-	long				nDim;
++	long				nDim;               // dimension index (== column ID)
+ 	ScDPHierarchies*	pHierarchies;
+ 	long				nUsedHier;
+ 	USHORT				nFunction;			// enum GeneralFunction
+Index: sc/inc/unonames.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/unonames.hxx,v
+retrieving revision 1.79
+retrieving revision 1.74.106.3
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.79 -r1.74.106.3
+--- sc/inc/unonames.hxx	7 Mar 2008 14:04:16 -0000	1.79
++++ sc/inc/unonames.hxx	12 Mar 2008 18:01:48 -0000	1.74.106.3
+@@ -555,6 +555,10 @@
+ #define SC_UNO_REPEATIF				"RepeatIfEmpty"
+ #define SC_UNO_DATADESC				"DataDescription"
+ #define SC_UNO_NUMBERFO				"NumberFormat"
++#define SC_UNO_ROWFIELDCOUNT        "RowFieldCount"
++#define SC_UNO_COLUMNFIELDCOUNT     "ColumnFieldCount"
++#define SC_UNO_DATAFIELDCOUNT       "DataFieldCount"
++
+ //  (preliminary:)
+ #define SC_UNO_REFVALUE				"ReferenceValue"
+ #define SC_UNO_SORTING				"Sorting"
+Index: sc/source/core/data/dpcachetable.cxx
+===================================================================
+RCS file: sc/source/core/data/dpcachetable.cxx
+diff -N sc/source/core/data/dpcachetable.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/core/data/dpcachetable.cxx	25 Apr 2008 00:02:15 -0000	1.1.2.12
+@@ -0,0 +1,781 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: dpcachetable.cxx,v $
++ *
++ *  $Revision: 1.1.2.12 $
++ *
++ *  last change: $Author: kohei $ $Date: 2008/04/25 00:02:15 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "dpcachetable.hxx"
++#include "document.hxx"
++#include "address.hxx"
++#include "cell.hxx"
++#include "dptabdat.hxx"
++#include "dptabsrc.hxx"
++
++#include <stdio.h>
++
++#include <com/sun/star/i18n/LocaleDataItem.hpp>
++#include <com/sun/star/sdbc/DataType.hpp>
++#include <com/sun/star/sdbc/XRow.hpp>
++#include <com/sun/star/sdbc/XRowSet.hpp>
++#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
++#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
++#include <com/sun/star/util/Date.hpp>
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
++#include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp>
++
++#include <memory>
++
++using namespace ::com::sun::star;
++
++using ::rtl::OUString;
++using ::std::vector;
++using ::std::set;
++using ::std::hash_map;
++using ::std::auto_ptr;
++using ::com::sun::star::i18n::LocaleDataItem;
++using ::com::sun::star::uno::Exception;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Any;
++using ::com::sun::star::uno::UNO_QUERY;
++using ::com::sun::star::uno::UNO_QUERY_THROW;
++using ::com::sun::star::sheet::DataPilotFieldFilter;
++
++static BOOL lcl_HasQueryEntry( const ScQueryParam& rParam )
++{
++    return rParam.GetEntryCount() > 0 &&
++            rParam.GetEntry(0).bDoQuery;
++}
++
++ScSharedString::StringTable::StringTable() :
++    mnStrCount(0)
++{
++    // empty string (ID = 0)
++    maSharedStrings.push_back(String());
++    maSharedStringIds.insert( SharedStrMap::value_type(String(), mnStrCount++) );
++}
++
++ScSharedString::StringTable::~StringTable()
++{
++}
++
++sal_Int32 ScSharedString::StringTable::insertString(const String& aStr)
++{
++    SharedStrMap::const_iterator itr = maSharedStringIds.find(aStr), 
++        itrEnd = maSharedStringIds.end();
++
++    if (itr == itrEnd)
++    {
++        // new string.
++        maSharedStrings.push_back(aStr);
++        maSharedStringIds.insert( SharedStrMap::value_type(aStr, mnStrCount) );
++        return mnStrCount++;
++    }
++
++    // existing string.
++    return itr->second;
++}
++
++sal_Int32 ScSharedString::StringTable::getStringId(const String& aStr)
++{
++    SharedStrMap::const_iterator itr = maSharedStringIds.find(aStr), 
++        itrEnd = maSharedStringIds.end();
++    if (itr == itrEnd)
++    {
++        // string not found.
++        return insertString(aStr);
++    }
++    return itr->second;
++}
++
++const String* ScSharedString::StringTable::getString(sal_Int32 nId) const
++{
++    if (nId >= mnStrCount)
++        return NULL;
++
++    return &maSharedStrings[nId];
++}
++
++// ----------------------------------------------------------------------------
++
++// static 
++::osl::Mutex ScSharedString::maStrMutex;
++ScSharedString::StringTable ScSharedString::maStringTable;
++
++sal_Int32 ScSharedString::insertString(const String& aStr)
++{
++    ::osl::MutexGuard aGuard(maStrMutex);
++    return maStringTable.insertString(aStr);
++}
++
++const String* ScSharedString::getString(sal_Int32 nId)
++{
++    ::osl::MutexGuard aGuard(maStrMutex);
++    return maStringTable.getString(nId);
++}
++
++sal_Int32 ScSharedString::getStringId(const String& aStr)
++{
++    ::osl::MutexGuard aGuard(maStrMutex);
++    return maStringTable.getStringId(aStr);
++}
++
++// ----------------------------------------------------------------------------
++
++ScDPCacheTable::Cell::Cell() :
++    mnCategoryRef(0),
++    mnStrId(ScSharedString::EMPTY),
++    mnType(SC_VALTYPE_EMPTY),
++    mfValue(0.0),
++    mbNumeric(false)
++{
++}
++
++// ----------------------------------------------------------------------------
++
++ScDPCacheTable::FilterItem::FilterItem() :
++    mnMatchStrId(ScSharedString::EMPTY),
++    mfValue(0.0),
++    mbHasValue(false)
++{
++}
++
++// ----------------------------------------------------------------------------
++
++ScDPCacheTable::SingleFilter::SingleFilter()
++{
++}
++
++ScDPCacheTable::SingleFilter::SingleFilter(sal_Int32 nMatchStrId, double fValue, bool bHasValue)
++{
++    maItem.mnMatchStrId = nMatchStrId;
++    maItem.mfValue      = fValue;
++    maItem.mbHasValue   = bHasValue;
++}
++
++bool ScDPCacheTable::SingleFilter::match(const Cell& rCell) const
++{
++    if (rCell.mnStrId != maItem.mnMatchStrId &&
++        (!rCell.mbNumeric || rCell.mfValue != maItem.mfValue))
++        return false;
++
++    return true;
++}
++
++const String ScDPCacheTable::SingleFilter::getMatchString() const
++{
++    const String* pStr = ScSharedString::getString(maItem.mnMatchStrId);
++    if (pStr)
++        return *pStr;
++
++    return String();
++}
++
++double ScDPCacheTable::SingleFilter::getMatchValue() const
++{
++    return maItem.mfValue;
++}
++
++bool ScDPCacheTable::SingleFilter::hasValue() const
++{
++    return maItem.mbHasValue;
++}
++
++// ----------------------------------------------------------------------------
++
++ScDPCacheTable::GroupFilter::GroupFilter()
++{
++}
++
++bool ScDPCacheTable::GroupFilter::match(const Cell& rCell) const
++{
++    vector<FilterItem>::const_iterator itrEnd = maItems.end();
++    for (vector<FilterItem>::const_iterator itr = maItems.begin(); itr != itrEnd; ++itr)
++    {
++        bool bMatch = false;
++        if (rCell.mbNumeric)
++            bMatch = (itr->mfValue == rCell.mfValue);
++        else
++            bMatch = (itr->mnMatchStrId == rCell.mnStrId);
++
++        if (bMatch)
++            return true;
++    }
++    return false;
++}
++
++void ScDPCacheTable::GroupFilter::addMatchItem(const String& rStr, double fVal, bool bHasValue)
++{
++    sal_Int32 nStrId = ScSharedString::getStringId(rStr);
++    FilterItem aItem;
++    aItem.mnMatchStrId = nStrId;
++    aItem.mfValue = fVal;
++    aItem.mbHasValue = bHasValue;
++    maItems.push_back(aItem);
++}
++
++// ----------------------------------------------------------------------------
++
++ScDPCacheTable::Criterion::Criterion() :
++    mnFieldIndex(-1),
++    mpFilter(static_cast<FilterBase*>(NULL))
++{
++}
++
++// ----------------------------------------------------------------------------
++
++ScDPCacheTable::ScDPCacheTable()
++{
++}
++
++ScDPCacheTable::~ScDPCacheTable()
++{
++}
++
++sal_Int32 ScDPCacheTable::getHeaderSize() const
++{
++    return maHeader.size();
++}
++
++sal_Int32 ScDPCacheTable::getRowSize() const
++{
++    return maTable.size();
++}
++
++sal_Int32 ScDPCacheTable::getColSize() const
++{
++    return maTable.empty() ? 0 : maTable[0].size();
++}
++
++void ScDPCacheTable::fillTable(ScDocument* pDoc, const ScRange& rRange, const ScQueryParam& rQuery, BOOL* pSpecial,
++                               bool bIgnoreEmptyRows)
++{
++    SCTAB nTab = rRange.aStart.Tab();
++    SCCOL nStartCol = rRange.aStart.Col();
++    SCROW nStartRow = rRange.aStart.Row();
++    SCCOL nColCount = rRange.aEnd.Col() - rRange.aStart.Col() + 1;
++    SCROW nRowCount = rRange.aEnd.Row() - rRange.aStart.Row() + 1;
++
++    if (nRowCount <= 1 || nColCount <= 0)
++        return;
++
++    maTable.clear();
++    maTable.reserve(nRowCount);
++    maHeader.clear();
++    maHeader.reserve(nColCount);
++    maRowsVisible.clear();
++    maRowsVisible.reserve(nRowCount);
++
++    // Header row
++    for (SCCOL nCol = 0; nCol < nColCount; ++nCol)
++    {
++        String aStr;
++        pDoc->GetString(nCol + nStartCol, nStartRow, nTab, aStr);
++        sal_Int32 nStrId = ScSharedString::insertString(aStr);
++        maHeader.push_back(nStrId);
++    }
++
++    // Initialize field entries container.
++    maFieldEntries.clear();
++    maFieldEntries.reserve(nColCount);
++    for (SCCOL nCol = 0; nCol < nColCount; ++nCol)
++    {
++        TypedStrCollectionPtr p(new TypedStrCollection);
++        maFieldEntries.push_back(p);
++    }
++
++    vector<SCROW> aLastNonEmptyRows(nColCount, 0);
++    
++    // Data rows
++    for (SCROW nRow = 1; nRow < nRowCount; ++nRow)
++    {
++        if ( lcl_HasQueryEntry(rQuery) && !pDoc->ValidQuery(nRow + nStartRow, nTab, rQuery, pSpecial) )
++            // filtered out by standard filter.
++            continue;
++
++        if ( bIgnoreEmptyRows && 
++             pDoc->IsBlockEmpty(nTab, nStartCol, nRow + nStartRow, 
++                                nStartCol + nColCount - 1, nRow + nStartRow) )
++            // skip an empty row.
++            continue;
++
++        // Insert a new row into cache table.
++        maRowsVisible.push_back(true);
++        maTable.push_back( vector<Cell>() );
++        maTable.back().reserve(nColCount);
++
++        for (SCCOL nCol = 0; nCol < nColCount; ++nCol)
++        {
++            maTable.back().push_back( ScDPCacheTable::Cell() );
++            Cell& rCell = maTable.back().back();
++            rCell.mnCategoryRef = maTable.size()-1;
++
++            if (nRow == 0 || pDoc->HasData(nStartCol + nCol, nStartRow + nRow, nTab))
++                aLastNonEmptyRows[nCol] = maTable.size()-1;
++            else
++                rCell.mnCategoryRef = aLastNonEmptyRows[nCol];
++
++            String aStr;
++            pDoc->GetString(nStartCol + nCol, nStartRow + nRow, nTab, aStr);
++            rCell.mnStrId = ScSharedString::insertString(aStr);
++            rCell.mnType = SC_VALTYPE_STRING;
++            rCell.mbNumeric = false;
++            ScAddress aPos(nStartCol + nCol, nStartRow + nRow, nTab);
++            getValueData(pDoc, aPos, rCell);
++
++            TypedStrData* pNew;
++            if (rCell.mbNumeric)
++                pNew = new TypedStrData(aStr, rCell.mfValue, SC_STRTYPE_VALUE);
++            else
++                pNew = new TypedStrData(aStr);
++
++            if (!maFieldEntries[nCol]->Insert(pNew))
++                delete pNew;
++        }
++    }
++}
++
++void lcl_GetCellValue(const Reference<sdbc::XRow>& xRow, sal_Int32 nType, long nCol,
++             const Date& rNullDate, ScDPCacheTable::Cell& rCell, String& rStr)
++{
++    short nNumType = NUMBERFORMAT_NUMBER;
++    BOOL bEmptyFlag = FALSE;
++    try
++    {
++        rStr = xRow->getString(nCol);
++        rCell.mnStrId = ScSharedString::getStringId(rStr);
++        rCell.mnType = SC_VALTYPE_STRING;
++
++        switch (nType)
++        {
++            case sdbc::DataType::BIT:
++            case sdbc::DataType::BOOLEAN:
++            {
++                nNumType = NUMBERFORMAT_LOGICAL;
++                rCell.mfValue = xRow->getBoolean(nCol) ? 1 : 0;    
++                bEmptyFlag = (rCell.mfValue == 0.0 && xRow->wasNull());
++                rCell.mbNumeric = true;
++                rCell.mnType = SC_VALTYPE_VALUE;
++            }
++            break;
++
++            case sdbc::DataType::TINYINT:
++            case sdbc::DataType::SMALLINT:
++            case sdbc::DataType::INTEGER:
++            case sdbc::DataType::BIGINT:
++            case sdbc::DataType::FLOAT:
++            case sdbc::DataType::REAL:
++            case sdbc::DataType::DOUBLE:
++            case sdbc::DataType::NUMERIC:
++            case sdbc::DataType::DECIMAL:
++            {
++                //! do the conversion here?
++                rCell.mfValue = xRow->getDouble(nCol);
++                bEmptyFlag = (rCell.mfValue == 0.0 && xRow->wasNull());
++                rCell.mbNumeric = true;
++                rCell.mnType = SC_VALTYPE_VALUE;
++            }
++            break;
++
++            case sdbc::DataType::CHAR:
++            case sdbc::DataType::VARCHAR:
++            case sdbc::DataType::LONGVARCHAR:
++                bEmptyFlag = (rStr.Len() == 0 && xRow->wasNull());
++            break;
++
++            case sdbc::DataType::DATE:
++            {
++                nNumType = NUMBERFORMAT_DATE;
++
++                util::Date aDate = xRow->getDate(nCol);
++                rCell.mfValue = Date(aDate.Day, aDate.Month, aDate.Year) - rNullDate;
++                bEmptyFlag = xRow->wasNull();
++                rCell.mbNumeric = true;
++                rCell.mnType = SC_VALTYPE_VALUE;
++            }
++            break;
++
++                //! case sdbc::DataType::TIME:
++                //! case sdbc::DataType::TIMESTAMP:
++
++            case sdbc::DataType::SQLNULL:
++            case sdbc::DataType::BINARY:
++            case sdbc::DataType::VARBINARY:
++            case sdbc::DataType::LONGVARBINARY:
++            default:
++            break;
++        }
++    }
++    catch (uno::Exception&)
++    {
++    }
++}
++
++void ScDPCacheTable::fillTable(const Reference<sdbc::XRowSet>& xRowSet, const Date& rNullDate)
++{
++    if (!xRowSet.is())
++        // Dont' even waste time to go any further.
++        return;
++
++    try
++    {
++        Reference<sdbc::XResultSetMetaDataSupplier> xMetaSupp(xRowSet, UNO_QUERY_THROW);
++        Reference<sdbc::XResultSetMetaData> xMeta = xMetaSupp->getMetaData();
++        if (!xMeta.is())
++            return;
++
++        sal_Int32 nColCount = xMeta->getColumnCount();
++
++        // Get column titles and types.
++        vector<sal_Int32> aColTypes(nColCount);
++        maHeader.clear();
++        maHeader.reserve(nColCount);
++        for (sal_Int32 nCol = 0; nCol < nColCount; ++nCol)
++        {
++            String aColTitle = xMeta->getColumnLabel(nCol+1);
++            aColTypes[nCol]  = xMeta->getColumnType(nCol+1);
++            maHeader.push_back( ScSharedString::getStringId(aColTitle) );
++        }
++
++        // Initialize field entries container.
++        maFieldEntries.clear();
++        maFieldEntries.reserve(nColCount);
++        for (SCCOL nCol = 0; nCol < nColCount; ++nCol)
++        {
++            TypedStrCollectionPtr p(new TypedStrCollection);
++            maFieldEntries.push_back(p);
++        }
++
++        // Now get the data rows.
++        Reference<sdbc::XRow> xRow(xRowSet, UNO_QUERY_THROW);
++        xRowSet->first();
++        maTable.clear();
++        maRowsVisible.clear();
++        do
++        {
++            maRowsVisible.push_back(true);
++            maTable.push_back( vector<Cell>() );
++            maTable.back().reserve(nColCount);
++            for (sal_Int32 nCol = 0; nCol < nColCount; ++nCol)
++            {
++                maTable.back().push_back( Cell() );
++                Cell& rCell = maTable.back().back();
++                String aStr;
++                lcl_GetCellValue(xRow, aColTypes[nCol], nCol+1, rNullDate, rCell, aStr);
++
++                TypedStrData* pNew;
++                if (rCell.mbNumeric)
++                    pNew = new TypedStrData(aStr, rCell.mfValue, SC_STRTYPE_VALUE);
++                else
++                    pNew = new TypedStrData(aStr);
++
++                if (!maFieldEntries[nCol]->Insert(pNew))
++                    delete pNew;
++            }
++        }
++        while (xRowSet->next());
++
++        xRowSet->beforeFirst();
++    }
++    catch (const Exception&)
++    {
++    }
++}
++
++bool ScDPCacheTable::isRowActive(sal_Int32 nRow) const
++{
++    if (nRow < 0 || static_cast<size_t>(nRow) >= maRowsVisible.size())
++        // row index out of bound
++        return false;
++
++    return maRowsVisible[nRow];
++}
++
++void ScDPCacheTable::filterByPageDimension(const vector<ScDPDimension*>& rPageDims)
++{
++    sal_Int32 nRowSize = getRowSize();
++
++    if (nRowSize != static_cast<sal_Int32>(maRowsVisible.size()))
++    {
++        fprintf(stdout, "ScDPCacheTable::filterByPageDimension: the sizes of the two tables differ.\n");fflush(stdout);
++        return;
++    }
++
++    for (sal_Int32 nRow = 0; nRow < nRowSize; ++nRow)
++    {
++        maRowsVisible[nRow] = true;
++        const vector<Cell>& rRow = maTable[nRow];
++        vector<ScDPDimension*>::const_iterator itr = rPageDims.begin(), itrEnd = rPageDims.end();
++        for (; itr != itrEnd; ++itr)
++        {
++            ScDPDimension* pDim = *itr;
++            if (!pDim->HasSelectedPage())
++                // 'show all' is selected.
++                continue;
++
++            ScDPCacheTable::Cell aDimCell = getSelectedDimension(pDim);
++            
++            sal_Int32 nCol = pDim->GetDimension();
++            const Cell& rCell = rRow[nCol];
++            if (aDimCell.mnStrId != rCell.mnStrId)
++            {
++                // Selected page dimension value does not match the current value.  Skip it.
++                maRowsVisible[nRow] = false;
++                break;
++            }
++        }
++    }
++}
++
++const ::ScDPCacheTable::Cell* ScDPCacheTable::getCell(SCCOL nCol, SCROW nRow, bool bRepeatIfEmpty) const
++{
++    if ( nRow >= static_cast<SCROW>(maTable.size()) )
++        return NULL;
++
++    const vector<Cell>& rRow = maTable.at(nRow);
++    if ( nCol < 0 || static_cast<size_t>(nCol) >= rRow.size() )
++        return NULL;
++
++    const Cell* pCell = &rRow.at(nCol);
++    if (bRepeatIfEmpty && pCell && pCell->mnType == SC_VALTYPE_EMPTY)
++        pCell = getCell(nCol, pCell->mnCategoryRef, false);
++
++    return pCell;
++}
++
++const String* ScDPCacheTable::getFieldName(sal_Int32 nIndex) const
++{
++    if (nIndex >= static_cast<sal_Int32>(maHeader.size()))
++        return NULL;
++
++    return ScSharedString::getString(maHeader[nIndex]);
++}
++
++sal_Int32 ScDPCacheTable::getFieldIndex(const String& rStr) const
++{
++    sal_Int32 nStrId = ScSharedString::getStringId(rStr);
++    if (nStrId < 0)
++        // string not found.
++        return nStrId;
++
++    sal_Int32 n = maHeader.size();
++    for (sal_Int32 i = 0; i < n; ++i)
++    {
++        if (maHeader[i] == nStrId)
++            return i;
++    }
++
++    return -1;
++}
++
++const TypedStrCollection& ScDPCacheTable::getFieldEntries(sal_Int32 nIndex) const
++{
++    if (nIndex < 0 || static_cast<size_t>(nIndex) >= maFieldEntries.size())
++    {
++        // index out of bound.  Hopefully this code will never be reached.
++        static const TypedStrCollection emptyCollection;
++        return emptyCollection;
++    }
++
++    return *maFieldEntries[nIndex].get();
++}
++
++void ScDPCacheTable::filterTable(const vector<Criterion>& rCriteria, Sequence< Sequence<Any> >& rTabData, bool bRepeatIfEmpty)
++{
++    sal_Int32 nRowSize = getRowSize();
++    sal_Int32 nColSize = getColSize();
++
++    if (!nRowSize)
++        // no data to filter.
++        return;
++
++    // Row first, then column.
++    vector< Sequence<Any> > tableData;
++    tableData.reserve(nRowSize+1);
++
++    // Header first.
++    Sequence<Any> headerRow(nColSize);
++    for (sal_Int32 nCol = 0; nCol < nColSize; ++nCol)
++    {
++        OUString str;
++        const String* pStr = ScSharedString::getString(maHeader[nCol]);
++        if (pStr)
++            str = *pStr;
++
++        Any any;
++        any <<= str;
++        headerRow[nCol] = any;
++    }
++    tableData.push_back(headerRow);
++
++
++    for (sal_Int32 nRow = 0; nRow < nRowSize; ++nRow)
++    {
++        if (!maRowsVisible[nRow])
++            // This row is filtered out.
++            continue;
++
++        bool bRetainRow = true;
++
++        vector<Criterion>::const_iterator itrEnd = rCriteria.end();
++        for (vector<Criterion>::const_iterator itr = rCriteria.begin(); itr != itrEnd; ++itr)
++        {
++            if (itr->mnFieldIndex >= nColSize)
++                // specified field is outside the source data columns.  Don't
++                // use this criterion.
++                continue;
++
++            const Cell* pCell = getCell(itr->mnFieldIndex, nRow, bRepeatIfEmpty);
++            if (!pCell)
++            {
++                // This should never happen, but just in case...
++                bRetainRow = false;
++                break;
++            }
++
++            if (!itr->mpFilter->match(*pCell))
++            {
++                bRetainRow = false;
++                break;
++            }
++        }
++
++        if (!bRetainRow)
++            continue;
++
++        // Insert this row into table.
++
++        Sequence<Any> row(nColSize);
++        for (sal_Int32 nCol = 0; nCol < nColSize; ++nCol)
++        {
++            Any any;
++            const Cell* pCell = getCell(nCol, nRow, bRepeatIfEmpty);
++            if (!pCell)
++            {
++                // This should never happen, but in case this happens, just
++                // stick in an empty string.
++                OUString str;
++                any <<= str;
++                row[nCol] = any;
++                continue;
++            }
++
++            if (pCell->mbNumeric)
++                any <<= pCell->mfValue;
++            else
++            {
++                OUString str;
++                const String* pStr = ScSharedString::getString(pCell->mnStrId);
++                if (pStr)
++                    str = *pStr;
++                any <<= str;
++            }
++            row[nCol] = any;
++        }
++        tableData.push_back(row);
++    }
++
++    // convert vector to Seqeunce
++    sal_Int32 nTabSize = static_cast<sal_Int32>(tableData.size());
++    rTabData.realloc(nTabSize);
++    for (sal_Int32 i = 0; i < nTabSize; ++i)
++        rTabData[i] = tableData[i];
++}
++
++void ScDPCacheTable::clear()
++{
++    maTable.clear();
++    maHeader.clear();
++    maFieldEntries.clear();
++    maRowsVisible.clear();
++}
++
++void ScDPCacheTable::swap(ScDPCacheTable& rOther)
++{
++    maTable.swap(rOther.maTable);
++    maHeader.swap(rOther.maHeader);
++    maFieldEntries.swap(rOther.maFieldEntries);
++    maRowsVisible.swap(rOther.maRowsVisible);
++}
++
++bool ScDPCacheTable::empty() const
++{
++    return maTable.empty();
++}
++
++void ScDPCacheTable::getValueData(ScDocument* pDoc, const ScAddress& rPos, Cell& rCell)
++{
++    ScBaseCell* pCell = pDoc->GetCell(rPos);
++    if (!pCell)
++    {
++        rCell.mnType = SC_VALTYPE_EMPTY;
++        return;
++    }
++
++    CellType eType = pCell->GetCellType();
++    if (eType == CELLTYPE_NOTE)
++    {
++        // note cell
++        rCell.mnType = SC_VALTYPE_EMPTY;
++        return;
++    }
++
++    if (eType == CELLTYPE_FORMULA && static_cast<ScFormulaCell*>(pCell)->GetErrCode())
++    {
++        // formula cell with error
++        rCell.mnType = SC_VALTYPE_ERROR;
++        return;
++    }
++
++    if ( pCell->HasValueData() )
++    {
++        if (eType == CELLTYPE_VALUE)
++            // value cell
++            rCell.mfValue = static_cast<ScValueCell*>(pCell)->GetValue();
++        else if (eType == CELLTYPE_FORMULA)
++            // formula cell
++            rCell.mfValue = static_cast<ScFormulaCell*>(pCell)->GetValue();
++
++        rCell.mbNumeric = true;
++        rCell.mnType = SC_VALTYPE_VALUE;
++    }
++}
++
++ScDPCacheTable::Cell ScDPCacheTable::getSelectedDimension(ScDPDimension* pDim) const
++{
++    const ScDPItemData& rData = pDim->GetSelectedData();
++    Cell aCell;
++    aCell.mfValue = rData.fValue;
++    aCell.mbNumeric = rData.bHasValue;
++    aCell.mnStrId = ScSharedString::getStringId(rData.aString);
++    return aCell;
++}
+Index: sc/source/core/data/dpgroup.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dpgroup.cxx,v
+retrieving revision 1.7
+retrieving revision 1.7.202.5
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.7 -r1.7.202.5
+--- sc/source/core/data/dpgroup.cxx	27 Feb 2007 12:03:31 -0000	1.7
++++ sc/source/core/data/dpgroup.cxx	24 Apr 2008 23:26:45 -0000	1.7.202.5
+@@ -51,10 +51,29 @@
+ #include "collect.hxx"
+ #include "global.hxx"
+ #include "document.hxx"
++#include "dpcachetable.hxx"
++#include "dptabsrc.hxx"
++#include "dptabres.hxx"
+ 
+-#ifndef _COM_SUN_STAR_SHEET_DATAPILOTFIELDGROUPBY_HPP_
+ #include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp>
+-#endif
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
++
++#include <vector>
++#include <hash_set>
++#include <hash_map>
++
++using namespace ::com::sun::star;
++using ::com::sun::star::uno::Any;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::UNO_QUERY;
++using ::com::sun::star::uno::UNO_QUERY_THROW;
++using ::rtl::OUString;
++using ::rtl::OUStringHash;
++
++using ::std::vector;
++using ::std::hash_set;
++using ::std::hash_map;
+ 
+ #define D_TIMEFACTOR              86400.0
+ 
+@@ -64,7 +83,135 @@
+ const sal_Int32 SC_DP_DATE_FIRST = -1;
+ const sal_Int32 SC_DP_DATE_LAST = 10000;
+ 
+-// -----------------------------------------------------------------------
++// ============================================================================
++
++class ScDPGroupDateFilter : public ScDPCacheTable::FilterBase
++{
++public:
++    ScDPGroupDateFilter(double fMatchValue, sal_Int32 nDatePart, 
++                        const Date* pNullDate, const ScDPNumGroupInfo* pNumInfo);
++
++    virtual bool match(const ScDPCacheTable::Cell &rCell) const;
++
++private:
++    ScDPGroupDateFilter(); // disabled
++
++    const Date*             mpNullDate;
++    const ScDPNumGroupInfo* mpNumInfo;
++    double                  mfMatchValue;
++    sal_Int32               mnDatePart;
++};
++
++// ----------------------------------------------------------------------------
++
++ScDPGroupDateFilter::ScDPGroupDateFilter(double fMatchValue, sal_Int32 nDatePart, 
++                                 const Date* pNullDate, const ScDPNumGroupInfo* pNumInfo) :
++    mpNullDate(pNullDate),
++    mpNumInfo(pNumInfo),
++    mfMatchValue(fMatchValue),
++    mnDatePart(nDatePart)
++{
++//  fprintf(stdout, "ScDPCacheTable:DateGroupFilter::DateGroupFilter: match value = %g; date part = %ld\n",
++//          mfMatchValue, mnDatePart);
++}
++
++bool ScDPGroupDateFilter::match(const ScDPCacheTable::Cell& rCell) const
++{
++    using namespace ::com::sun::star::sheet;
++    using ::rtl::math::approxFloor;
++    using ::rtl::math::approxEqual;
++
++    if (!rCell.mbNumeric)
++        return false;
++
++    if (!mpNumInfo)
++        return false;
++
++    // Start and end dates are inclusive.  (An end date without a time value
++    // is included, while an end date with a time value is not.)
++
++    if ( rCell.mfValue < mpNumInfo->Start && !approxEqual(rCell.mfValue, mpNumInfo->Start) )
++        return static_cast<sal_Int32>(mfMatchValue) == SC_DP_DATE_FIRST;
++
++    if ( rCell.mfValue > mpNumInfo->End && !approxEqual(rCell.mfValue, mpNumInfo->End) )
++        return static_cast<sal_Int32>(mfMatchValue) == SC_DP_DATE_LAST;
++
++    if (mnDatePart == DataPilotFieldGroupBy::HOURS || mnDatePart == DataPilotFieldGroupBy::MINUTES || 
++        mnDatePart == DataPilotFieldGroupBy::SECONDS)
++    {
++        // handle time
++        // (as in the cell functions, ScInterpreter::ScGetHour etc.: seconds are rounded)
++
++        double time = rCell.mfValue - approxFloor(rCell.mfValue);
++        long seconds = static_cast<long>(approxFloor(time*D_TIMEFACTOR + 0.5));
++
++        switch (mnDatePart)
++        {
++            case DataPilotFieldGroupBy::HOURS:
++            {
++                sal_Int32 hrs = seconds / 3600;
++                sal_Int32 matchHrs = static_cast<sal_Int32>(mfMatchValue);
++                return hrs == matchHrs;
++            }
++            case DataPilotFieldGroupBy::MINUTES:
++            {
++                sal_Int32 minutes = (seconds % 3600) / 60;
++                sal_Int32 matchMinutes = static_cast<sal_Int32>(mfMatchValue);
++                return minutes == matchMinutes;
++            }
++            case DataPilotFieldGroupBy::SECONDS:
++            {
++                sal_Int32 sec = seconds % 60;
++                sal_Int32 matchSec = static_cast<sal_Int32>(mfMatchValue);
++                return sec == matchSec;
++            }
++            default:
++                DBG_ERROR("invalid time part");
++        }
++        return false;
++    }
++
++    Date date = *mpNullDate + static_cast<long>(approxFloor(rCell.mfValue));
++    switch (mnDatePart)
++    {
++        case DataPilotFieldGroupBy::YEARS:
++        {
++            sal_Int32 year = static_cast<sal_Int32>(date.GetYear());
++            sal_Int32 matchYear = static_cast<sal_Int32>(mfMatchValue);
++            return year == matchYear;
++        }
++        case DataPilotFieldGroupBy::QUARTERS:
++        {
++            sal_Int32 qtr =  1 + (static_cast<sal_Int32>(date.GetMonth()) - 1) / 3;
++            sal_Int32 matchQtr = static_cast<sal_Int32>(mfMatchValue);
++            return qtr == matchQtr;
++        }
++        case DataPilotFieldGroupBy::MONTHS:
++        {
++            sal_Int32 month = static_cast<sal_Int32>(date.GetMonth());
++            sal_Int32 matchMonth = static_cast<sal_Int32>(mfMatchValue);
++            return month == matchMonth;
++        }
++        case DataPilotFieldGroupBy::DAYS:
++        {
++            Date yearStart(1, 1, date.GetYear());
++            sal_Int32 days = (date - yearStart) + 1;       // Jan 01 has value 1
++            if (days >= 60 && !date.IsLeapYear())
++            {
++                // This is not a leap year.  Adjust the value accordingly.
++                ++days;
++            }
++            sal_Int32 matchDays = static_cast<sal_Int32>(mfMatchValue);
++            return days == matchDays;
++        }
++        default:
++            DBG_ERROR("invalid date part");
++    }
++
++    return false;
++}
++
++// ============================================================================
+ 
+ void lcl_AppendDateStr( rtl::OUStringBuffer& rBuffer, double fValue, SvNumberFormatter* pFormatter )
+ {
+@@ -396,6 +543,13 @@
+     return false;
+ }
+ 
++void ScDPGroupItem::FillGroupFilter( ScDPCacheTable::GroupFilter& rFilter ) const
++{
++    ScDPItemDataVec::const_iterator itrEnd = aElements.end();
++    for (ScDPItemDataVec::const_iterator itr = aElements.begin(); itr != itrEnd; ++itr)
++        rFilter.addMatchItem(itr->aString, itr->fValue, itr->bHasValue);
++}
++
+ // -----------------------------------------------------------------------
+ 
+ ScDPGroupDimension::ScDPGroupDimension( long nSource, const String& rNewName ) :
+@@ -514,6 +668,14 @@
+     return NULL;
+ }
+ 
++const ScDPGroupItem* ScDPGroupDimension::GetGroupByIndex( size_t nIndex ) const
++{
++    if (nIndex >= aItems.size())
++        return NULL;
++
++    return &aItems[nIndex];
++}
++
+ void ScDPGroupDimension::DisposeData()
+ {
+     delete pCollection;
+@@ -825,6 +987,7 @@
+ {
+     DBG_ASSERT( pSource, "ScDPGroupTableData: pSource can't be NULL" );
+ 
++    CreateCacheTable();
+     nSourceCount = pSource->GetColumnCount();               // real columns, excluding data layout
+     pNumGroups = new ScDPNumGroupDimension[nSourceCount];
+ }
+@@ -840,6 +1003,7 @@
+     ScDPGroupDimension aNewGroup( rGroup );
+     aNewGroup.SetGroupDim( GetColumnCount() );      // new dimension will be at the end
+     aGroups.push_back( aNewGroup );
++    aGroupNames.insert( OUString(aNewGroup.GetName()) );
+ }
+ 
+ void ScDPGroupTableData::SetNumGroupDimension( long nIndex, const ScDPNumGroupDimension& rGroup )
+@@ -972,9 +1136,179 @@
+     pSourceData->SetEmptyFlags( bIgnoreEmptyRows, bRepeatIfEmpty );
+ }
+ 
+-void ScDPGroupTableData::ResetIterator()
++void ScDPGroupTableData::CreateCacheTable()
++{
++    pSourceData->CreateCacheTable();
++}
++
++void ScDPGroupTableData::FilterCacheTable(const vector<ScDPDimension*>& rPageDims)
+ {
+-    pSourceData->ResetIterator();
++    pSourceData->FilterCacheTable(rPageDims);
++}
++
++void ScDPGroupTableData::GetDrillDownData(const vector<ScDPCacheTable::Criterion>& rCriteria, Sequence< Sequence<Any> >& rData)
++{
++    typedef hash_map<long, const ScDPGroupDimension*> GroupFieldMapType;
++    GroupFieldMapType aGroupFieldIds;
++    {
++        ScDPGroupDimensionVec::const_iterator itrEnd = aGroups.end();
++        for (ScDPGroupDimensionVec::const_iterator itr = aGroups.begin(); itr != itrEnd; ++itr)
++            aGroupFieldIds.insert( hash_map<long, const ScDPGroupDimension*>::value_type(itr->GetGroupDim(), &(*itr)) );
++    }
++
++    vector<ScDPCacheTable::Criterion> aNewCriteria;
++    aNewCriteria.reserve(rCriteria.size() + aGroups.size());
++
++    // Go through all the filtered field names and process them appropriately.
++
++    vector<ScDPCacheTable::Criterion>::const_iterator itrEnd = rCriteria.end();
++    GroupFieldMapType::const_iterator itrGrpEnd = aGroupFieldIds.end();
++    for (vector<ScDPCacheTable::Criterion>::const_iterator itr = rCriteria.begin(); itr != itrEnd; ++itr)
++    {
++        ScDPCacheTable::SingleFilter* pFilter = dynamic_cast<ScDPCacheTable::SingleFilter*>(itr->mpFilter.get());
++        if (!pFilter)
++            // We expect this to be a single filter.
++            continue;
++
++        GroupFieldMapType::const_iterator itrGrp = aGroupFieldIds.find(itr->mnFieldIndex);
++        if (itrGrp == itrGrpEnd)
++        {
++            if (IsNumGroupDimension(itr->mnFieldIndex))
++            {
++                // internal number group field
++                const ScDPNumGroupDimension& rNumGrpDim = pNumGroups[itr->mnFieldIndex];
++                const ScDPDateGroupHelper* pDateHelper = rNumGrpDim.GetDateHelper();
++                if (!pDateHelper)
++                {
++                    // What do we do here !?
++                    continue;
++                }
++
++                ScDPCacheTable::Criterion aCri;
++                aCri.mnFieldIndex = itr->mnFieldIndex;
++                aCri.mpFilter.reset(new ScDPGroupDateFilter(
++                    pFilter->getMatchValue(), pDateHelper->GetDatePart(), 
++                    pDoc->GetFormatTable()->GetNullDate(), &pDateHelper->GetNumInfo()));
++
++                aNewCriteria.push_back(aCri);
++            }
++            else
++            {
++                // This is a regular source field.
++                aNewCriteria.push_back(*itr);
++            }
++        }
++        else
++        {
++            // This is an ordinary group field or external number group field.
++
++            const ScDPGroupDimension* pGrpDim = itrGrp->second;
++            long nSrcDim = pGrpDim->GetSourceDim();
++            const ScDPDateGroupHelper* pDateHelper = pGrpDim->GetDateHelper();
++
++            if (pDateHelper)
++            {
++                // external number group
++                ScDPCacheTable::Criterion aCri;
++                aCri.mnFieldIndex = nSrcDim;  // use the source dimension, not the group dimension.
++                aCri.mpFilter.reset(new ScDPGroupDateFilter(
++                    pFilter->getMatchValue(), pDateHelper->GetDatePart(), 
++                    pDoc->GetFormatTable()->GetNullDate(), &pDateHelper->GetNumInfo()));
++
++                aNewCriteria.push_back(aCri);
++            }
++            else
++            {
++                // normal group
++
++                // Note that each group dimension may have multiple group names!
++                size_t nGroupItemCount = pGrpDim->GetItemCount();
++                for (size_t i = 0; i < nGroupItemCount; ++i)
++                {
++                    const ScDPGroupItem* pGrpItem = pGrpDim->GetGroupByIndex(i);
++                    ScDPItemData aName;
++                    aName.aString   = pFilter->getMatchString();
++                    aName.fValue    = pFilter->getMatchValue();
++                    aName.bHasValue = pFilter->hasValue();
++                    if (!pGrpItem || !pGrpItem->GetName().IsCaseInsEqual(aName))
++                        continue;
++    
++                    ScDPCacheTable::Criterion aCri;
++                    aCri.mnFieldIndex = nSrcDim;
++                    aCri.mpFilter.reset(new ScDPCacheTable::GroupFilter);
++                    ScDPCacheTable::GroupFilter* pGrpFilter = 
++                        static_cast<ScDPCacheTable::GroupFilter*>(aCri.mpFilter.get());
++    
++                    pGrpItem->FillGroupFilter(*pGrpFilter);
++                    aNewCriteria.push_back(aCri);
++                }
++            }
++        }
++    }
++
++    pSourceData->GetDrillDownData(aNewCriteria, rData);
++}
++
++void ScDPGroupTableData::CalcResults(CalcInfo& rInfo, bool bAutoShow)
++{
++    // This CalcInfo instance is used only to retrive data from the original
++    // data source.
++    CalcInfo aInfoSrc = rInfo;
++    CopyFields(rInfo.aColLevelDims, aInfoSrc.aColLevelDims);
++    CopyFields(rInfo.aRowLevelDims, aInfoSrc.aRowLevelDims);
++    CopyFields(rInfo.aPageDims,     aInfoSrc.aPageDims);
++    CopyFields(rInfo.aDataSrcCols,  aInfoSrc.aDataSrcCols);
++
++    const ScDPCacheTable& rCacheTable = pSourceData->GetCacheTable();
++    sal_Int32 nRowSize = rCacheTable.getRowSize();
++    for (sal_Int32 nRow = 0; nRow < nRowSize; ++nRow)
++    {
++        if (!rCacheTable.isRowActive(nRow))
++            continue;
++
++        CalcRowData aData;
++        FillRowDataFromCacheTable(nRow, rCacheTable, aInfoSrc, aData);
++
++        FillGroupValues(&aData.aColData[0], rInfo.aColLevelDims.size(), &rInfo.aColLevelDims[0]);
++        FillGroupValues(&aData.aRowData[0], rInfo.aRowLevelDims.size(), &rInfo.aRowLevelDims[0]);
++        FillGroupValues(&aData.aPageData[0], rInfo.aPageDims.size(), &rInfo.aPageDims[0]);
++
++        ProcessRowData(rInfo, aData, bAutoShow);
++    }
++}
++
++const ScDPCacheTable& ScDPGroupTableData::GetCacheTable() const
++{
++    return pSourceData->GetCacheTable();
++}
++
++void ScDPGroupTableData::CopyFields(const vector<long>& rFieldDims, vector<long>& rNewFieldDims)
++{
++    size_t nCount = rFieldDims.size();
++    if (!nCount)
++        return;
++
++    long nGroupedColumns = aGroups.size();
++
++    rNewFieldDims.clear();
++    rNewFieldDims.reserve(nCount);
++    for (size_t i = 0; i < nCount; ++i)
++    {
++        if ( rFieldDims[i] >= nSourceCount )
++        {
++            if ( rFieldDims[i] == nSourceCount + nGroupedColumns )
++                // data layout in source
++                rNewFieldDims.push_back(nSourceCount);
++            else
++            {
++                // original dimension
++                long n = rFieldDims[i] - nSourceCount;
++                rNewFieldDims.push_back(aGroups[n].GetSourceDim());
++            }
++        }
++        else
++            rNewFieldDims.push_back(rFieldDims[i]);
++    }
+ }
+ 
+ long* ScDPGroupTableData::CopyFields( const long* pSourceDims, long nCount )
+@@ -1055,42 +1389,6 @@
+     }
+ }
+ 
+-BOOL ScDPGroupTableData::GetNextRow( const ScDPTableIteratorParam& rParam )
+-{
+-    //
+-    //  call source with a param containing only dimension numbers valid for source
+-    //
+-
+-    long* pSourceCols = CopyFields( rParam.pCols, rParam.nColCount );
+-    long* pSourceRows = CopyFields( rParam.pRows, rParam.nRowCount );
+-    long* pSourcePages = CopyFields( rParam.pPages, rParam.nPageCount );
+-    long* pSourceDats = CopyFields( rParam.pDats, rParam.nDatCount );
+-    //  data fields can't be groups
+-
+-    ScDPTableIteratorParam aSourceParam( rParam.nColCount, pSourceCols, rParam.pColData, 
+-                                         rParam.nRowCount, pSourceRows, rParam.pRowData,
+-                                         rParam.nPageCount, pSourcePages, rParam.pPageData,
+-                                         rParam.nDatCount, pSourceDats, rParam.pValues );
+-
+-    BOOL bRet = pSourceData->GetNextRow( aSourceParam );
+-
+-    delete pSourceCols;
+-    delete pSourceRows;
+-    delete pSourcePages;
+-    delete pSourceDats;
+-
+-    //
+-    //  fill values for groups
+-    //
+-
+-    FillGroupValues( rParam.pColData, rParam.nColCount, rParam.pCols );
+-    FillGroupValues( rParam.pRowData, rParam.nRowCount, rParam.pRows );
+-    FillGroupValues( rParam.pPageData, rParam.nPageCount, rParam.pPages );
+-    // data is left unchanged - useful only for count
+-
+-    return bRet;
+-}
+-
+ BOOL ScDPGroupTableData::IsBaseForGroup(long nDim) const
+ {
+     for ( ScDPGroupDimensionVec::const_iterator aIter(aGroups.begin()); aIter != aGroups.end(); aIter++ )
+Index: sc/source/core/data/dpobject.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dpobject.cxx,v
+retrieving revision 1.22
+retrieving revision 1.21.112.6
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.22 -r1.21.112.6
+--- sc/source/core/data/dpobject.cxx	26 Nov 2007 15:19:32 -0000	1.22
++++ sc/source/core/data/dpobject.cxx	4 Dec 2007 06:06:26 -0000	1.21.112.6
+@@ -62,18 +62,32 @@
+ #include "unonames.hxx"
+ 
+ #include <com/sun/star/sheet/GeneralFunction.hpp>
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldReferenceType.hpp>
++#include <com/sun/star/sheet/DataPilotTableHeaderData.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionData.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionType.hpp>
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ #include <com/sun/star/lang/XSingleServiceFactory.hpp>
+ #include <com/sun/star/lang/XInitialization.hpp>
+ #include <com/sun/star/container/XContentEnumerationAccess.hpp>
++#include <com/sun/star/sheet/XDrillDownDataSupplier.hpp>
+ 
+ #include <comphelper/processfactory.hxx>
+ #include <tools/debug.hxx>
+ #include <svtools/zforlist.hxx>		// IsNumberFormat
+ 
++#include <vector>
++
+ using namespace com::sun::star;
++using ::std::vector;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::uno::UNO_QUERY;
++using ::com::sun::star::uno::Any;
++using ::com::sun::star::sheet::DataPilotTableHeaderData;
++using ::com::sun::star::sheet::DataPilotTablePositionData;
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -478,6 +492,16 @@
+ 	aOutRange = pOutput->GetOutputRange();
+ }
+ 
++const ScRange ScDPObject::GetOutputRangeByType( sal_Int32 nType )
++{
++    CreateOutput();
++
++    if (pOutput->HasError())
++        return ScRange(aOutRange.aStart);
++
++    return pOutput->GetOutputRange(nType);
++}
++
+ BOOL lcl_HasButton( ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nTab )
+ {
+ 	return ((const ScMergeFlagAttr*)pDoc->GetAttr( nCol, nRow, nTab, ATTR_MERGE_FLAG ))->HasButton();
+@@ -601,11 +625,42 @@
+ 		r.SetSheetDesc( *pSheetDesc );
+ }
+ 
+-bool ScDPObject::GetDataFieldPositionData( std::vector< sheet::DataPilotFieldFilter >& rFilters, const ScAddress& rPos )
++void ScDPObject::GetPositionData(const ScAddress& rPos, DataPilotTablePositionData& rPosData)
+ {
+-    CreateOutput();             // create xSource and pOutput if not already done
++    CreateOutput();
++    pOutput->GetPositionData(rPos, rPosData);
++}
++
++bool ScDPObject::GetDataFieldPositionData(
++    const ScAddress& rPos, Sequence<sheet::DataPilotFieldFilter>& rFilters)
++{
++    CreateOutput();
++
++    vector<sheet::DataPilotFieldFilter> aFilters;
++    if (!pOutput->GetDataResultPositionData(aFilters, rPos))
++        return false;
+ 
+-	return pOutput->GetDataFieldPositionData( rFilters, rPos );
++    sal_Int32 n = static_cast<sal_Int32>(aFilters.size());
++    rFilters.realloc(n);
++    for (sal_Int32 i = 0; i < n; ++i)
++        rFilters[i] = aFilters[i];
++
++    return true;
++}
++
++void ScDPObject::GetDrillDownData(const ScAddress& rPos, Sequence< Sequence<Any> >& rTableData)
++{
++    CreateOutput();
++
++    Reference<sheet::XDrillDownDataSupplier> xDrillDownData(xSource, UNO_QUERY);
++    if (!xDrillDownData.is())
++        return;
++
++    Sequence<sheet::DataPilotFieldFilter> filters;
++    if (!GetDataFieldPositionData(rPos, filters))
++        return;
++
++    rTableData = xDrillDownData->getDrillDownData(filters);
+ }
+ 
+ BOOL ScDPObject::IsDimNameInUse( const String& rName ) const
+@@ -803,11 +858,21 @@
+ 		delete pAllData;
+ }
+ 
+-void ScDPObject::GetPositionData( ScDPPositionData& rData, const ScAddress& rPos )
++void ScDPObject::GetHeaderPositionData(const ScAddress& rPos, DataPilotTableHeaderData& rData)
+ {
++    using namespace ::com::sun::star::sheet::DataPilotTablePositionType;
++
+ 	CreateOutput();				// create xSource and pOutput if not already done
+ 
+-	pOutput->GetPositionData( rData, rPos );
++    // Reset member values to invalid state.
++    rData.Dimension = rData.Hierarchy = rData.Level = -1;
++    rData.Flags = 0;
++
++    DataPilotTablePositionData aPosData;
++    pOutput->GetPositionData(rPos, aPosData);
++    const sal_Int32 nPosType = aPosData.PositionType;
++    if (nPosType == COLUMN_HEADER || nPosType == ROW_HEADER)
++        aPosData.PositionData >>= rData;
+ }
+ 
+ // Returns TRUE on success and stores the result in rTarget
+@@ -1285,7 +1350,7 @@
+     return bHasData && !bError;
+ }
+ 
+-void ScDPObject::ToggleDetails( ScDPPositionData& rElemDesc, ScDPObject* pDestObj )
++void ScDPObject::ToggleDetails(const DataPilotTableHeaderData& rElemDesc, ScDPObject* pDestObj)
+ {
+ 	CreateObjects();			// create xSource if not already done
+ 
+@@ -1295,10 +1360,10 @@
+ 	uno::Reference<container::XNameAccess> xDimsName = xSource->getDimensions();
+ 	uno::Reference<container::XIndexAccess> xIntDims = new ScNameToIndexAccess( xDimsName );
+ 	long nIntCount = xIntDims->getCount();
+-	if ( rElemDesc.nDimension < nIntCount )
++	if ( rElemDesc.Dimension < nIntCount )
+ 	{
+ 		uno::Reference<uno::XInterface> xIntDim = ScUnoHelpFunctions::AnyToInterface(
+-									xIntDims->getByIndex(rElemDesc.nDimension) );
++									xIntDims->getByIndex(rElemDesc.Dimension) );
+ 		xDim = uno::Reference<container::XNamed>( xIntDim, uno::UNO_QUERY );
+ 	}
+ 	DBG_ASSERT( xDim.is(), "dimension not found" );
+@@ -1327,8 +1392,8 @@
+ 		nHierCount = xHiers->getCount();
+ 	}
+ 	uno::Reference<uno::XInterface> xHier;
+-	if ( rElemDesc.nHierarchy < nHierCount )
+-		xHier = ScUnoHelpFunctions::AnyToInterface( xHiers->getByIndex(rElemDesc.nHierarchy) );
++	if ( rElemDesc.Hierarchy < nHierCount )
++		xHier = ScUnoHelpFunctions::AnyToInterface( xHiers->getByIndex(rElemDesc.Hierarchy) );
+ 	DBG_ASSERT( xHier.is(), "hierarchy not found" );
+ 	if ( !xHier.is() ) return;
+ 
+@@ -1342,8 +1407,8 @@
+ 		nLevCount = xLevels->getCount();
+ 	}
+ 	uno::Reference<uno::XInterface> xLevel;
+-	if ( rElemDesc.nLevel < nLevCount )
+-		xLevel = ScUnoHelpFunctions::AnyToInterface( xLevels->getByIndex(rElemDesc.nLevel) );
++	if ( rElemDesc.Level < nLevCount )
++		xLevel = ScUnoHelpFunctions::AnyToInterface( xLevels->getByIndex(rElemDesc.Level) );
+ 	DBG_ASSERT( xLevel.is(), "level not found" );
+ 	if ( !xLevel.is() ) return;
+ 
+@@ -1357,11 +1422,10 @@
+ 
+ 	if ( xMembers.is() )
+ 	{
+-		rtl::OUString aName = rElemDesc.aMemberName;
+-		if ( xMembers->hasByName( aName ) )
++		if ( xMembers->hasByName(rElemDesc.MemberName) )
+ 		{
+ 			uno::Reference<uno::XInterface> xMemberInt = ScUnoHelpFunctions::AnyToInterface(
+-											xMembers->getByName( aName ) );
++											xMembers->getByName(rElemDesc.MemberName) );
+ 			uno::Reference<beans::XPropertySet> xMbrProp( xMemberInt, uno::UNO_QUERY );
+ 			if ( xMbrProp.is() )
+ 			{
+@@ -1382,8 +1446,9 @@
+ 	DBG_ASSERT( pModifyData, "no data?" );
+ 	if ( pModifyData )
+ 	{
++        const String aName = rElemDesc.MemberName;
+ 		pModifyData->GetDimensionByName(aDimName)->
+-			GetMemberByName(rElemDesc.aMemberName)->SetShowDetails( !bShowDetails );	// toggle
++			GetMemberByName(aName)->SetShowDetails( !bShowDetails );	// toggle
+ 
+ 		if ( pDestObj )
+ 			pDestObj->InvalidateData();		// re-init source from SaveData
+Index: sc/source/core/data/dpoutput.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dpoutput.cxx,v
+retrieving revision 1.16
+retrieving revision 1.15.112.13
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.16 -r1.15.112.13
+--- sc/source/core/data/dpoutput.cxx	26 Nov 2007 15:19:49 -0000	1.16
++++ sc/source/core/data/dpoutput.cxx	21 Apr 2008 01:21:22 -0000	1.15.112.13
+@@ -48,6 +48,8 @@
+ #include <unotools/transliterationwrapper.hxx>
+ 
+ #include "dpoutput.hxx"
++#include "dptabsrc.hxx"
++#include "dpcachetable.hxx"
+ #include "document.hxx"
+ #include "patattr.hxx"
+ #include "docpool.hxx"
+@@ -60,21 +62,38 @@
+ #include "stlsheet.hxx"
+ #include "collect.hxx"
+ #include "scresid.hxx"
++#include "unonames.hxx"
+ #include "sc.hrc"
+ 
+-#include <com/sun/star/sheet/XLevelsSupplier.hpp>
+-#include <com/sun/star/sheet/XHierarchiesSupplier.hpp>
+-#include <com/sun/star/sheet/XDataPilotResults.hpp>
+-#include <com/sun/star/sheet/XDataPilotMemberResults.hpp>
+-#include <com/sun/star/sheet/DataResultFlags.hpp>
+-#include <com/sun/star/sheet/MemberResultFlags.hpp>
++#include <com/sun/star/container/XNamed.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
+-#include <com/sun/star/sheet/TableFilterField.hpp>
++#include <com/sun/star/sheet/DataPilotTableHeaderData.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionData.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionType.hpp>
++#include <com/sun/star/sheet/DataPilotTableResultData.hpp>
++#include <com/sun/star/sheet/DataResultFlags.hpp>
+ #include <com/sun/star/sheet/GeneralFunction.hpp>
+-#include <com/sun/star/container/XNamed.hpp>
++#include <com/sun/star/sheet/MemberResultFlags.hpp>
++#include <com/sun/star/sheet/TableFilterField.hpp>
++#include <com/sun/star/sheet/XDataPilotMemberResults.hpp>
++#include <com/sun/star/sheet/XDataPilotResults.hpp>
++#include <com/sun/star/sheet/XHierarchiesSupplier.hpp>
++#include <com/sun/star/sheet/XLevelsSupplier.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include <vector>
+ 
+ using namespace com::sun::star;
++using ::std::vector;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::UNO_QUERY;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::sheet::DataPilotTablePositionData;
++using ::com::sun::star::sheet::DataPilotTableResultData;
++using ::com::sun::star::uno::makeAny;
++using ::com::sun::star::uno::Any;
++using ::rtl::OUString;
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -702,6 +721,49 @@
+ 	}
+ }
+ 
++sal_Int32 ScDPOutput::GetPositionType(const ScAddress& rPos)
++{
++    using namespace ::com::sun::star::sheet;
++
++    SCCOL nCol = rPos.Col();
++    SCROW nRow = rPos.Row();
++    SCTAB nTab = rPos.Tab();
++    if ( nTab != aStartPos.Tab() )
++        return DataPilotTablePositionType::NOT_IN_TABLE;
++
++    CalcSizes();
++
++    // Make sure the cursor is within the table.
++    if (nCol < nTabStartCol || nRow < nTabStartRow || nCol > nTabEndCol || nRow > nTabEndRow)
++        return DataPilotTablePositionType::NOT_IN_TABLE;
++
++    // test for result data area.
++    if (nCol >= nDataStartCol && nCol <= nTabEndCol && nRow >= nDataStartRow && nRow <= nTabEndRow)
++        return DataPilotTablePositionType::RESULT;
++
++    bool bInColHeader = (nRow >= nTabStartRow && nRow < nDataStartRow);
++    bool bInRowHeader = (nCol >= nTabStartCol && nCol < nDataStartCol);
++
++    if (bInColHeader && bInRowHeader)
++        // probably in that ugly little box at the upper-left corner of the table.
++        return DataPilotTablePositionType::OTHER;
++
++    if (bInColHeader)
++    {
++        if (nRow == nTabStartRow)
++            // first row in the column header area is always used for column 
++            // field buttons.
++            return DataPilotTablePositionType::OTHER;
++
++        return DataPilotTablePositionType::COLUMN_HEADER;
++    }
++
++    if (bInRowHeader)
++        return DataPilotTablePositionType::ROW_HEADER;
++
++    return DataPilotTablePositionType::OTHER;
++}
++
+ void ScDPOutput::Output()
+ {
+ 	long nField;
+@@ -862,12 +924,30 @@
+ 	lcl_SetFrame( pDoc,nTab, nTabStartCol,nTabStartRow, nTabEndCol,nTabEndRow, 40 );
+ }
+ 
+-ScRange ScDPOutput::GetOutputRange()
++ScRange ScDPOutput::GetOutputRange( sal_Int32 nRegionType )
+ {
++    using namespace ::com::sun::star::sheet;
++
+ 	CalcSizes();
+ 
++//  fprintf(stdout, "ScDPOutput::GetOutputRange: aStartPos = (%ld, %d)\n", aStartPos.Row(), aStartPos.Col());fflush(stdout);
++//  fprintf(stdout, "ScDPOutput::GetOutputRange: nTabStart (Row = %ld, Col = %ld)\n", nTabStartRow, nTabStartCol);fflush(stdout);
++//  fprintf(stdout, "ScDPOutput::GetOutputRange: nMemberStart (Row = %ld, Col = %ld)\n", nMemberStartRow, nMemberStartCol);fflush(stdout);
++//  fprintf(stdout, "ScDPOutput::GetOutputRange: nDataStart (Row = %ld, Col = %ld)\n", nDataStartRow, nDataStartCol);fflush(stdout);
++//  fprintf(stdout, "ScDPOutput::GetOutputRange: nTabEnd (Row = %ld, Col = %ld)\n", nTabEndRow, nTabStartCol);fflush(stdout);
++
+ 	SCTAB nTab = aStartPos.Tab();
+-	return ScRange( aStartPos.Col(), aStartPos.Row(), nTab, nTabEndCol, nTabEndRow, nTab);
++    switch (nRegionType)
++    {
++        case DataPilotOutputRangeType::RESULT:
++            return ScRange(nDataStartCol, nDataStartRow, nTab, nTabEndCol, nTabEndRow, nTab);
++        case DataPilotOutputRangeType::TABLE:
++            return ScRange(aStartPos.Col(), nTabStartRow, nTab, nTabEndCol, nTabEndRow, nTab);
++        default:
++            DBG_ASSERT(nRegionType == DataPilotOutputRangeType::WHOLE, "ScDPOutput::GetOutputRange: unknown region type");
++        break;
++    }
++    return ScRange(aStartPos.Col(), aStartPos.Row(), nTab, nTabEndCol, nTabEndRow, nTab);
+ }
+ 
+ BOOL ScDPOutput::HasError()
+@@ -929,13 +1009,10 @@
+     }
+ }
+ 
+-//
+-//		Methods to find specific parts of the table
+-//
+ 
+-void ScDPOutput::GetPositionData( ScDPPositionData& rData, const ScAddress& rPos )
++void ScDPOutput::GetPositionData(const ScAddress& rPos, DataPilotTablePositionData& rPosData)
+ {
+-	//!	preset rData to "invalid" ?
++    using namespace ::com::sun::star::sheet;
+ 
+ 	SCCOL nCol = rPos.Col();
+ 	SCROW nRow = rPos.Row();
+@@ -947,57 +1024,122 @@
+ 
+ 	CalcSizes();
+ 
+-	//	test for column field
++    rPosData.PositionType = GetPositionType(rPos);
++    switch (rPosData.PositionType)
++    {
++        case DataPilotTablePositionType::RESULT:
++        {
++            vector<DataPilotFieldFilter> aFilters;
++            GetDataResultPositionData(aFilters, rPos);
++            sal_Int32 nSize = aFilters.size();
++    
++            DataPilotTableResultData aResData;
++            aResData.FieldFilters.realloc(nSize);
++            for (sal_Int32 i = 0; i < nSize; ++i)
++                aResData.FieldFilters[i] = aFilters[i];
+ 
+-	if ( nRow >= nMemberStartRow && nRow < nMemberStartRow + nColFieldCount )
++            aResData.DataFieldIndex = 0;
++            Reference<beans::XPropertySet> xPropSet(xSource, UNO_QUERY);
++            if (xPropSet.is())
+ 	{
+-		long nField = nRow - nMemberStartRow;
++                sal_Int32 nDataFieldCount;
++                Any any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii("DataFieldCount"));
++                if ((any >>= nDataFieldCount) && nDataFieldCount > 0)
++                    aResData.DataFieldIndex = (nRow - nDataStartRow) % nDataFieldCount;
++            }
++
++            // Copy appropriate DataResult object from the cached sheet::DataResult table.
++            if (aData.getLength() > nRow - nDataStartRow && 
++                aData[nRow-nDataStartRow].getLength() > nCol-nDataStartCol)
++                aResData.Result = aData[nRow-nDataStartRow][nCol-nDataStartCol];
++    
++            rPosData.PositionData = makeAny(aResData);
++            return;
++        }
++        case DataPilotTablePositionType::COLUMN_HEADER:
++        {
++            long nField = nRow - nTabStartRow - 1; // 1st line is used for the buttons
++            if (nField < 0)
++                break;
++
+ 		const uno::Sequence<sheet::MemberResult> rSequence = pColFields[nField].aResult;
++            if (rSequence.getLength() == 0)
++                break;
+ 		const sheet::MemberResult* pArray = rSequence.getConstArray();
+-		long nThisColCount = rSequence.getLength();
+ 
+-		if ( nCol >= nDataStartCol && nCol < nDataStartCol + nThisColCount )
+-		{
+ 			long nItem = nCol - nDataStartCol;
+ 			//	get origin of "continue" fields
+-			while ( nItem > 0 && ( pArray[nItem].Flags & sheet::MemberResultFlags::CONTINUE ) )
++            while (nItem > 0 && ( pArray[nItem].Flags & sheet::MemberResultFlags::CONTINUE) )
+ 				--nItem;
+-			rData.aMemberName = String(pArray[nItem].Name);
+-			rData.nFlags	  = pArray[nItem].Flags;
+-			rData.nDimension  = pColFields[nField].nDim;
+-			rData.nHierarchy  = pColFields[nField].nHier;
+-			rData.nLevel      = pColFields[nField].nLevel;
+-			return;
+-		}
+-	}
+ 
+-	//	test for row field
++            if (nItem < 0)
++                break;
++
++            DataPilotTableHeaderData aHeaderData;
++            aHeaderData.MemberName = OUString(pArray[nItem].Name);
++            aHeaderData.Flags = pArray[nItem].Flags;
++            aHeaderData.Dimension = static_cast<sal_Int32>(pColFields[nField].nDim);
++            aHeaderData.Hierarchy = static_cast<sal_Int32>(pColFields[nField].nHier);
++            aHeaderData.Level     = static_cast<sal_Int32>(pColFields[nField].nLevel);
+ 
+-	if ( nCol >= nMemberStartCol && nCol < nMemberStartCol + nRowFieldCount )
++            rPosData.PositionData = makeAny(aHeaderData);
++            return;
++        }
++        case DataPilotTablePositionType::ROW_HEADER:
+ 	{
+-		long nField = nCol - nMemberStartCol;
++            long nField = nCol - nTabStartCol;
++            if (nField < 0)
++                break;
++
+ 		const uno::Sequence<sheet::MemberResult> rSequence = pRowFields[nField].aResult;
++            if (rSequence.getLength() == 0)
++                break;
+ 		const sheet::MemberResult* pArray = rSequence.getConstArray();
+-		long nThisRowCount = rSequence.getLength();
+ 
+-		if ( nRow >= nDataStartRow && nRow < nDataStartRow + nThisRowCount )
+-		{
+ 			long nItem = nRow - nDataStartRow;
+ 			//	get origin of "continue" fields
+-			while ( nItem > 0 && ( pArray[nItem].Flags & sheet::MemberResultFlags::CONTINUE ) )
++            while ( nItem > 0 && (pArray[nItem].Flags & sheet::MemberResultFlags::CONTINUE) )
+ 				--nItem;
+-			rData.aMemberName = String(pArray[nItem].Name);
+-			rData.nFlags	  = pArray[nItem].Flags;
+-			rData.nDimension  = pRowFields[nField].nDim;
+-			rData.nHierarchy  = pRowFields[nField].nHier;
+-			rData.nLevel      = pRowFields[nField].nLevel;
++
++            if (nItem < 0)
++                break;
++
++            DataPilotTableHeaderData aHeaderData;
++            aHeaderData.MemberName = OUString(pArray[nItem].Name);
++            aHeaderData.Flags = pArray[nItem].Flags;
++            aHeaderData.Dimension = static_cast<sal_Int32>(pRowFields[nField].nDim);
++            aHeaderData.Hierarchy = static_cast<sal_Int32>(pRowFields[nField].nHier);
++            aHeaderData.Level     = static_cast<sal_Int32>(pRowFields[nField].nLevel);
++
++            rPosData.PositionData = makeAny(aHeaderData);
+ 			return;
+ 		}
+ 	}
+ }
+ 
+-bool ScDPOutput::GetDataFieldPositionData(std::vector<sheet::DataPilotFieldFilter>& rFilters, const ScAddress& rPos)
++bool ScDPOutput::GetDataResultPositionData(vector<sheet::DataPilotFieldFilter>& rFilters, const ScAddress& rPos)
+ {
++    // Check to make sure there is at least one data field.
++    Reference<beans::XPropertySet> xPropSet(xSource, UNO_QUERY);
++    if (!xPropSet.is())
++        return false;
++
++    sal_Int32 nDataFieldCount;
++    Any any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii("DataFieldCount"));
++    if (!(any >>= nDataFieldCount) || nDataFieldCount == 0)
++        // No data field is present in this datapilot table.
++        return false;
++
++    bool bColGrand;
++    any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii(SC_UNO_COLGRAND));
++    if (!(any >>= bColGrand))
++        return false;
++
++    bool bRowGrand;
++    any = xPropSet->getPropertyValue(rtl::OUString::createFromAscii(SC_UNO_ROWGRAND));
++    if (!(any >>= bRowGrand))
++        return false;
++
+     SCCOL nCol = rPos.Col();
+     SCROW nRow = rPos.Row();
+     SCTAB nTab = rPos.Tab();
+@@ -1013,10 +1155,11 @@
+         return false;
+     }
+ 
+-    rtl::OUString sTotal( ScGlobal::GetRscString(STR_PIVOT_TOTAL) );
++    bool bFilterByCol = !(bColGrand && (nCol == nTabEndCol));
++    bool bFilterByRow = !(bRowGrand && (nRow == nTabEndRow));
+ 
+     // column fields
+-    for (SCCOL nColField = 0; nColField < nColFieldCount; ++nColField)
++    for (SCCOL nColField = 0; nColField < nColFieldCount && bFilterByCol; ++nColField)
+     {
+         sheet::DataPilotFieldFilter filter;
+         filter.FieldName = pColFields[nColField].aCaption;
+@@ -1024,8 +1167,7 @@
+         const uno::Sequence<sheet::MemberResult> rSequence = pColFields[nColField].aResult;
+         const sheet::MemberResult* pArray = rSequence.getConstArray();
+ 
+-        DBG_ASSERT(nDataStartCol + rSequence.getLength() - 1 == nTabEndCol,
+-                    "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
++        DBG_ASSERT(nDataStartCol + rSequence.getLength() - 1 == nTabEndCol, "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
+ 
+         long nItem = nCol - nDataStartCol;
+                 //	get origin of "continue" fields
+@@ -1033,12 +1175,11 @@
+             --nItem;
+ 
+         filter.MatchValue = pArray[nItem].Name;
+-        if (pArray[nItem].Name.getLength() > 0 && pArray[nItem].Name != sTotal)
+             rFilters.push_back(filter);
+     }
+ 
+     // row fields
+-    for (SCROW nRowField = 0; nRowField < nRowFieldCount; ++nRowField)
++    for (SCROW nRowField = 0; nRowField < nRowFieldCount && bFilterByRow; ++nRowField)
+     {
+         sheet::DataPilotFieldFilter filter;
+         filter.FieldName = pRowFields[nRowField].aCaption;
+@@ -1046,8 +1187,7 @@
+         const uno::Sequence<sheet::MemberResult> rSequence = pRowFields[nRowField].aResult;
+         const sheet::MemberResult* pArray = rSequence.getConstArray();
+ 
+-        DBG_ASSERT(nDataStartRow + rSequence.getLength() - 1 == nTabEndRow,
+-                    "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
++        DBG_ASSERT(nDataStartRow + rSequence.getLength() - 1 == nTabEndRow, "ScDPOutput::GetDataFieldCellData: error in geometric assumption");
+ 
+         long nItem = nRow - nDataStartRow;
+ 			//	get origin of "continue" fields
+@@ -1055,7 +1195,6 @@
+             --nItem;
+ 
+         filter.MatchValue = pArray[nItem].Name;
+-        if (pArray[nItem].Name.getLength() > 0 && pArray[nItem].Name != sTotal)
+             rFilters.push_back(filter);
+     }
+ 
+Index: sc/source/core/data/dpsdbtab.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dpsdbtab.cxx,v
+retrieving revision 1.12
+retrieving revision 1.12.202.6
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.12 -r1.12.202.6
+--- sc/source/core/data/dpsdbtab.cxx	27 Feb 2007 12:04:37 -0000	1.12
++++ sc/source/core/data/dpsdbtab.cxx	24 Apr 2008 23:26:45 -0000	1.12.202.6
+@@ -55,14 +55,25 @@
+ #include <com/sun/star/sdbc/XRowSet.hpp>
+ #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
+ 
+ #include "dpsdbtab.hxx"
+ #include "collect.hxx"
+ #include "global.hxx"
+ #include "globstr.hrc"
++#include "dpcachetable.hxx"
++#include "dptabres.hxx"
+ 
+ using namespace com::sun::star;
+ 
++using ::std::vector;
++using ::std::set;
++using ::std::hash_map;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::uno::Any;
++using ::com::sun::star::uno::UNO_QUERY;
++
+ #define SC_SERVICE_ROWSET			"com.sun.star.sdb.RowSet"
+ #define SC_SERVICE_INTHANDLER		"com.sun.star.sdb.InteractionHandler"
+ 
+@@ -79,14 +90,12 @@
+ 	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager;
+ 	ScImportSourceDesc	aDesc;
+ 	long				nColCount;
+-	BOOL				bValid;
+-	BOOL				bAtStart;
+-	String*				pTitles;
+-	TypedStrCollection** ppStrings;
+ 	uno::Reference<sdbc::XRowSet> xRowSet;
+ 	sal_Int32*			pTypes;
+ 	SvNumberFormatter*	pFormatter;
+ 
++    ScDPCacheTable      aCacheTable;
++
+ 	ScDatabaseDPData_Impl() {}
+ };
+ 
+@@ -100,14 +109,11 @@
+ 	pImpl->xServiceManager = xSMgr;
+ 	pImpl->aDesc = rImport;
+ 	pImpl->nColCount = 0;
+-	pImpl->bValid = FALSE;
+-	pImpl->bAtStart = FALSE;
+-	pImpl->pTitles = NULL;
+-	pImpl->ppStrings = NULL;
+ 	pImpl->pTypes = NULL;
+ 	pImpl->pFormatter = NULL;		// created on demand
+ 
+ 	OpenDatabase();
++    CreateCacheTable();
+ }
+ 
+ ScDatabaseDPData::~ScDatabaseDPData()
+@@ -115,13 +121,6 @@
+ 	::comphelper::disposeComponent( pImpl->xRowSet );
+ 
+ 	delete[] pImpl->pTypes;
+-	if ( pImpl->ppStrings )
+-	{
+-		for (long i=0; i<pImpl->nColCount; i++)
+-			delete pImpl->ppStrings[i];
+-		delete[] pImpl->ppStrings;
+-	}
+-	delete[] pImpl->pTitles;
+ 	delete pImpl->pFormatter;		// NumberFormatter is local for this object
+ 	delete pImpl;
+ }
+@@ -129,21 +128,7 @@
+ void ScDatabaseDPData::DisposeData()
+ {
+ 	//!	use OpenDatabase here?
+-
+-	//!	column titles ???
+-
+-	//	collections for column entries
+-	if ( pImpl->ppStrings )
+-	{
+-		for (long i=0; i<pImpl->nColCount; i++)
+-		{
+-			delete pImpl->ppStrings[i];
+-			pImpl->ppStrings[i] = NULL;
+-		}
+-	}
+-
+-	//!	init entries on demand!
+-	InitAllColumnEntries();				//! configurable ???
++    pImpl->aCacheTable.clear();
+ }
+ 
+ BOOL ScDatabaseDPData::OpenDatabase()
+@@ -199,8 +184,6 @@
+ 			else
+ 				pImpl->xRowSet->execute();
+ 
+-			pImpl->bAtStart = TRUE;
+-
+ 			//
+ 			//	get column descriptions
+ 			//
+@@ -216,22 +199,9 @@
+ 			uno::Reference<sdbc::XResultSet> xResSet( pImpl->xRowSet, uno::UNO_QUERY );
+ 			if ( pImpl->nColCount > 0 && xResSet.is() )
+ 			{
+-				//	get column titles
+-				pImpl->pTitles = new String[pImpl->nColCount];
+ 				pImpl->pTypes = new sal_Int32[pImpl->nColCount];
+ 				for (long nCol=0; nCol<pImpl->nColCount; nCol++)
+-				{
+-					pImpl->pTitles[nCol] = xMeta->getColumnLabel( nCol+1 );
+ 					pImpl->pTypes[nCol]  = xMeta->getColumnType( nCol+1 );
+-				}
+-
+-				//	collections for column entries
+-				pImpl->ppStrings = new TypedStrCollection*[pImpl->nColCount];
+-				for (long i=0; i<pImpl->nColCount; i++)
+-					pImpl->ppStrings[i] = NULL;
+-
+-				//!	init entries on demand!
+-				InitAllColumnEntries();				//! configurable ???
+ 
+ 				bSuccess = TRUE;
+ 			}
+@@ -252,7 +222,6 @@
+ 	if (!bSuccess)
+ 		::comphelper::disposeComponent( pImpl->xRowSet );
+ 
+-	pImpl->bValid = bSuccess;
+ 	return bSuccess;
+ }
+ 
+@@ -261,103 +230,6 @@
+ 	return pImpl->nColCount;
+ }
+ 
+-void lcl_FillItemData( ScDPItemData& rData,
+-						const uno::Reference<sdbc::XRow>& xRow, long nRowPos,
+-						long nType, BOOL bStringForVal, ScDatabaseDPData_Impl* pImpl )
+-{
+-	//!	merge with lcl_PutData in dbdocimp.cxx
+-
+-	rData.aString.Erase();
+-	rData.fValue = 0.0;
+-	rData.bHasValue = FALSE;
+-	short nNumType = NUMBERFORMAT_NUMBER;
+-	BOOL bEmptyFlag = FALSE;
+-
+-	if (!xRow.is())
+-		return;
+-
+-	try
+-	{
+-		switch ( nType )
+-		{
+-			case sdbc::DataType::BIT:
+-			case sdbc::DataType::BOOLEAN:
+-				nNumType = NUMBERFORMAT_LOGICAL;
+-				rData.fValue = (xRow->getBoolean(nRowPos) ? 1 : 0);
+-				bEmptyFlag = ( rData.fValue == 0.0 ) && xRow->wasNull();
+-				rData.bHasValue = TRUE;
+-				break;
+-
+-			case sdbc::DataType::TINYINT:
+-			case sdbc::DataType::SMALLINT:
+-			case sdbc::DataType::INTEGER:
+-			case sdbc::DataType::BIGINT:
+-			case sdbc::DataType::FLOAT:
+-			case sdbc::DataType::REAL:
+-			case sdbc::DataType::DOUBLE:
+-			case sdbc::DataType::NUMERIC:
+-			case sdbc::DataType::DECIMAL:
+-				//!	do the conversion here?
+-				rData.fValue = xRow->getDouble(nRowPos);
+-				bEmptyFlag = ( rData.fValue == 0.0 ) && xRow->wasNull();
+-				rData.bHasValue = TRUE;
+-				break;
+-
+-			case sdbc::DataType::CHAR:
+-			case sdbc::DataType::VARCHAR:
+-			case sdbc::DataType::LONGVARCHAR:
+-				rData.aString = xRow->getString(nRowPos);
+-				bEmptyFlag = ( rData.aString.Len() == 0 ) && xRow->wasNull();
+-				break;
+-
+-			case sdbc::DataType::DATE:
+-				{
+-					nNumType = NUMBERFORMAT_DATE;
+-
+-					if (!pImpl->pFormatter)
+-						pImpl->pFormatter = new SvNumberFormatter( pImpl->xServiceManager, ScGlobal::eLnge );
+-
+-					util::Date aDate = xRow->getDate(nRowPos);
+-					rData.fValue = Date( aDate.Day, aDate.Month, aDate.Year ) -
+-												*pImpl->pFormatter->GetNullDate();
+-					bEmptyFlag = xRow->wasNull();
+-					rData.bHasValue = TRUE;
+-				}
+-				break;
+-
+-			//! case sdbc::DataType::TIME:
+-			//! case sdbc::DataType::TIMESTAMP:
+-
+-			case sdbc::DataType::SQLNULL:
+-				//bEmptyFlag = TRUE;
+-				break;
+-
+-			case sdbc::DataType::BINARY:
+-			case sdbc::DataType::VARBINARY:
+-			case sdbc::DataType::LONGVARBINARY:
+-			default:
+-				//bError = TRUE;		// unknown type
+-				break;
+-		}
+-	}
+-	catch ( uno::Exception& )
+-	{
+-		//bError = TRUE;
+-	}
+-
+-	if ( bEmptyFlag )
+-		rData.bHasValue = FALSE;		// empty -> empty string
+-
+-	if ( rData.bHasValue && bStringForVal )
+-	{
+-		if (!pImpl->pFormatter)
+-			pImpl->pFormatter = new SvNumberFormatter( pImpl->xServiceManager, ScGlobal::eLnge );
+-
+-		ULONG nIndex = pImpl->pFormatter->GetStandardFormat( nNumType, ScGlobal::eLnge );
+-		pImpl->pFormatter->GetInputLineString( rData.fValue, nIndex, rData.aString );
+-	}
+-}
+-
+ void lcl_Reset( const uno::Reference<sdbc::XRowSet>& xRowSet )
+ 					throw(sdbc::SQLException, uno::RuntimeException)
+ {
+@@ -367,104 +239,10 @@
+ 	xRowSet->execute();		// restart
+ }
+ 
+-void ScDatabaseDPData::InitAllColumnEntries()
+-{
+-	DBG_ASSERT( pImpl->ppStrings, "GetColumnEntries: no entries" );
+-	long nCol;
+-	for ( nCol=0; nCol<pImpl->nColCount; nCol++ )
+-		if (!pImpl->ppStrings[nCol])
+-			pImpl->ppStrings[nCol] = new TypedStrCollection;
+-
+-//	Sound::Beep();		//! Test !!!
+-
+-	uno::Reference<sdbc::XRowSet> xRowSet = pImpl->xRowSet;
+-	uno::Reference<sdbc::XRow> xRow( xRowSet, uno::UNO_QUERY );
+-	if ( xRow.is() )
+-	{
+-		ScDPItemData aItemData;
+-
+-		try
+-		{
+-			if ( !pImpl->bAtStart )
+-				lcl_Reset( xRowSet );
+-
+-			pImpl->bAtStart = FALSE;
+-			while ( xRowSet->next() )
+-			{
+-				for ( nCol=0; nCol<pImpl->nColCount; nCol++ )
+-				{
+-					//!	get string for value data only if value hasn't been inserted yet
+-					lcl_FillItemData( aItemData, xRow, nCol+1, pImpl->pTypes[nCol], TRUE, pImpl );
+-					TypedStrData* pNew = new TypedStrData(
+-							aItemData.aString, aItemData.fValue,
+-							aItemData.bHasValue ? SC_STRTYPE_VALUE : SC_STRTYPE_STANDARD );
+-					if (!pImpl->ppStrings[nCol]->Insert(pNew))
+-						delete pNew;
+-				}
+-			}
+-		}
+-		catch ( sdbc::SQLException& rError )
+-		{
+-			//!	store error message
+-			InfoBox aInfoBox( 0, String(rError.Message) );
+-			aInfoBox.Execute();
+-		}
+-		catch ( uno::Exception& )
+-		{
+-			DBG_ERROR("Unexpected exception in database");
+-		}
+-	}
+-}
+-
+ const TypedStrCollection& ScDatabaseDPData::GetColumnEntries(long nColumn)
+ {
+-	DBG_ASSERT( pImpl->ppStrings && nColumn < pImpl->nColCount, "GetColumnEntries: no entries" );
+-	if (!pImpl->ppStrings[nColumn])
+-	{
+-		TypedStrCollection* pColl = new TypedStrCollection;
+-
+-		//!	select distinct values directly from database
+-
+-//		Sound::Beep();		//! Test !!!
+-
+-		uno::Reference<sdbc::XRowSet> xRowSet = pImpl->xRowSet;
+-		uno::Reference<sdbc::XRow> xRow( xRowSet, uno::UNO_QUERY );
+-		if ( xRow.is() )
+-		{
+-			ScDPItemData aItemData;
+-
+-			try
+-			{
+-				if ( !pImpl->bAtStart )
+-					lcl_Reset( xRowSet );
+-
+-				pImpl->bAtStart = FALSE;
+-				while ( xRowSet->next() )
+-				{
+-					//!	get string for value data only if value hasn't been inserted yet
+-					lcl_FillItemData( aItemData, xRow, nColumn+1, pImpl->pTypes[nColumn], TRUE, pImpl );
+-					TypedStrData* pNew = new TypedStrData(
+-							aItemData.aString, aItemData.fValue,
+-							aItemData.bHasValue ? SC_STRTYPE_VALUE : SC_STRTYPE_STANDARD );
+-					if (!pColl->Insert(pNew))
+-						delete pNew;
+-				}
+-			}
+-			catch ( sdbc::SQLException& rError )
+-			{
+-				//!	store error message
+-				InfoBox aInfoBox( 0, String(rError.Message) );
+-				aInfoBox.Execute();
+-			}
+-			catch ( uno::Exception& )
+-			{
+-				DBG_ERROR("Unexpected exception in database");
+-			}
+-		}
+-
+-		pImpl->ppStrings[nColumn] = pColl;
+-	}
+-	return *pImpl->ppStrings[nColumn];
++    CreateCacheTable();
++    return pImpl->aCacheTable.getFieldEntries(nColumn);
+ }
+ 
+ String ScDatabaseDPData::getDimensionName(long nColumn)
+@@ -475,10 +253,12 @@
+ 		//return "Data";
+ 		return ScGlobal::GetRscString(STR_PIVOT_DATA);
+ 	}
+-	else if ( pImpl->pTitles && nColumn < pImpl->nColCount )
+-	{
+-		return pImpl->pTitles[nColumn];
+-	}
++
++    CreateCacheTable();
++    const String* pStr = pImpl->aCacheTable.getFieldName(nColumn);
++    if (pStr)
++        return *pStr;
++
+ 	DBG_ERROR("getDimensionName: invalid dimension");
+ 	return String();
+ }
+@@ -500,106 +280,43 @@
+ 	//!	disable flags
+ }
+ 
+-void ScDatabaseDPData::ResetIterator()
++void ScDatabaseDPData::CreateCacheTable()
+ {
+-	try
+-	{
+-		uno::Reference<sdbc::XRowSet> xRowSet = pImpl->xRowSet;
+-		if ( xRowSet.is() && !pImpl->bAtStart )
+-		{
+-			lcl_Reset( xRowSet );
+-			pImpl->bAtStart = TRUE;
+-		}
+-	}
+-	catch ( sdbc::SQLException& rError )
+-	{
+-		//!	store error message
+-		InfoBox aInfoBox( 0, String(rError.Message) );
+-		aInfoBox.Execute();
+-	}
+-	catch ( uno::Exception& )
+-	{
+-		DBG_ERROR("Unexpected exception in database");
+-	}
++    if (!pImpl->aCacheTable.empty())
++        return;
++
++    // Get null date.
++    if (!pImpl->pFormatter)
++        pImpl->pFormatter = new SvNumberFormatter(pImpl->xServiceManager, ScGlobal::eLnge);
+ 
+-//	Sound::Beep();		//! Test !!!
++    pImpl->aCacheTable.fillTable(pImpl->xRowSet, *pImpl->pFormatter->GetNullDate());
+ }
+ 
+-BOOL ScDatabaseDPData::GetNextRow( const ScDPTableIteratorParam& rParam )
++void ScDatabaseDPData::FilterCacheTable(const vector<ScDPDimension*>& rPageDims)
+ {
+-	BOOL bSuccess = FALSE;
+-	uno::Reference<sdbc::XRowSet> xRowSet = pImpl->xRowSet;
+-	uno::Reference<sdbc::XRow> xRow( xRowSet, uno::UNO_QUERY );
+-
+-	try
+-	{
+-		pImpl->bAtStart = FALSE;
+-		if ( xRow.is() && xRowSet->next() )
+-		{
+-			SCSIZE i;
+-
+-			for (i=0; i<rParam.nColCount; i++)
+-			{
+-				long nDim = rParam.pCols[i];
+-				if ( getIsDataLayoutDimension(nDim) )
+-					rParam.pColData[i].SetString( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")) );
+-				else
+-					lcl_FillItemData( rParam.pColData[i], xRow, nDim+1, pImpl->pTypes[nDim], FALSE, pImpl );
+-			}
+-
+-			for (i=0; i<rParam.nRowCount; i++)
+-			{
+-				long nDim = rParam.pRows[i];
+-				if ( getIsDataLayoutDimension(nDim) )
+-					rParam.pRowData[i].SetString( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")) );
+-				else
+-					lcl_FillItemData( rParam.pRowData[i], xRow, nDim+1, pImpl->pTypes[nDim], FALSE, pImpl );
+-			}
+-
+-			for (i=0; i<rParam.nPageCount; i++)
+-			{
+-				long nDim = rParam.pPages[i];
+-				if ( getIsDataLayoutDimension(nDim) )
+-					rParam.pPageData[i].SetString( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")) );
+-				else
+-					lcl_FillItemData( rParam.pPageData[i], xRow, nDim+1, pImpl->pTypes[nDim], FALSE, pImpl );
+-			}
+-
+-			for (i=0; i<rParam.nDatCount; i++)
+-			{
+-				//!	merge this with lcl_FillItemData, distinguish all SC_VALTYPE_... types
++    CreateCacheTable();
++    pImpl->aCacheTable.filterByPageDimension(rPageDims);
++}
+ 
+-				long nDim = rParam.pDats[i];
++void ScDatabaseDPData::GetDrillDownData(const vector<ScDPCacheTable::Criterion>& rCriteria, Sequence< Sequence<Any> >& rData)
++{
++    CreateCacheTable();
++    sal_Int32 nRowSize = pImpl->aCacheTable.getRowSize();
++    if (!nRowSize)
++        return;
+ 
+-				double fVal = 0.0;
+-				BYTE nType = SC_VALTYPE_EMPTY;
+-				try
+-				{
+-					fVal = xRow->getDouble( nDim+1 );
+-				}
+-				catch ( uno::Exception& )
+-				{
+-					//	anything that can't be converted to a number is a string
+-					nType = SC_VALTYPE_STRING;
+-				}
+-				rParam.pValues[i].Set( fVal, SC_VALTYPE_VALUE );
+-			}
++    pImpl->aCacheTable.filterTable(rCriteria, rData, IsRepeatIfEmpty());
++}
+ 
+-			bSuccess = TRUE;
+-		}
+-	}
+-	catch ( sdbc::SQLException& rError )
+-	{
+-		//!	store error message
+-		InfoBox aInfoBox( 0, String(rError.Message) );
+-		aInfoBox.Execute();
+-	}
+-	catch ( uno::Exception& )
+-	{
+-		DBG_ERROR("Unexpected exception in database");
+-	}
++void ScDatabaseDPData::CalcResults(CalcInfo& rInfo, bool bAutoShow)
++{
++    CreateCacheTable();
++    CalcResultsFromCacheTable(pImpl->aCacheTable, rInfo, bAutoShow);
++}
+ 
+-	return bSuccess;
++const ScDPCacheTable& ScDatabaseDPData::GetCacheTable() const
++{
++    return pImpl->aCacheTable;
+ }
+ 
+ // -----------------------------------------------------------------------
+Index: sc/source/core/data/dpshttab.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dpshttab.cxx,v
+retrieving revision 1.9
+retrieving revision 1.9.202.9
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.9 -r1.9.202.9
+--- sc/source/core/data/dpshttab.cxx	27 Feb 2007 12:04:49 -0000	1.9
++++ sc/source/core/data/dpshttab.cxx	24 Apr 2008 23:26:45 -0000	1.9.202.9
+@@ -44,11 +44,25 @@
+ #include <svtools/zforlist.hxx>
+ 
+ #include "dpshttab.hxx"
++#include "dptabres.hxx"
+ #include "document.hxx"
+ #include "collect.hxx"
+ #include "cell.hxx"
++#include "dpcachetable.hxx"
+ #include "globstr.hrc"
+ 
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
++
++#include <vector>
++#include <set>
++
++using namespace ::com::sun::star;
++using ::com::sun::star::uno::Any;
++using ::com::sun::star::uno::Sequence;
++using ::std::vector;
++using ::std::set;
++using ::std::hash_map;
++
+ // -----------------------------------------------------------------------
+ 
+ class ScSheetDPData_Impl
+@@ -57,49 +71,47 @@
+ 	ScDocument*		pDoc;
+ 	ScRange			aRange;
+ 	ScQueryParam	aQuery;
+-	long			nColCount;
++    BOOL*           pSpecial;           // to flag special handling of query parameters in ValidQuery.
+ 	BOOL			bIgnoreEmptyRows;
+ 	BOOL			bRepeatIfEmpty;
+-	TypedStrCollection**	ppStrings;
+ 	BOOL*			pDateDim;
+ 	SCROW			nNextRow;		// for iterator, within range
+ 
+-	ScSheetDPData_Impl() {}
++    ScDPCacheTable  aCacheTable;
++
++	ScSheetDPData_Impl() :
++        pSpecial(NULL)
++    {
++    }
+ };
+ 
+ // -----------------------------------------------------------------------
+ 
+ ScSheetDPData::ScSheetDPData( ScDocument* pD, const ScSheetSourceDesc& rDesc )
+-    : pSpecial(NULL)
+ {
+-	long nCount = rDesc.aSourceRange.aEnd.Col() - rDesc.aSourceRange.aStart.Col() + 1;
+ 	pImpl = new ScSheetDPData_Impl;
+ 	pImpl->pDoc = pD;
+ 	pImpl->aRange = rDesc.aSourceRange;
+ 	pImpl->aQuery = rDesc.aQueryParam;
+ 	pImpl->bIgnoreEmptyRows = FALSE;
+ 	pImpl->bRepeatIfEmpty = FALSE;
+-	pImpl->nColCount = nCount;
+-	pImpl->ppStrings = new TypedStrCollection*[nCount];
+ 	pImpl->pDateDim = NULL;
+-	for (long i=0; i<nCount; i++)
+-		pImpl->ppStrings[i] = NULL;
+ 
+ 	pImpl->nNextRow = pImpl->aRange.aStart.Row() + 1;
+ 
+     SCSIZE nEntryCount(pImpl->aQuery.GetEntryCount());
+-    pSpecial = new BOOL[nEntryCount];
++    pImpl->pSpecial = new BOOL[nEntryCount];
+     for (SCSIZE j = 0; j < nEntryCount; ++j )
+     {
+         ScQueryEntry& rEntry = pImpl->aQuery.GetEntry(j);
+         if (rEntry.bDoQuery)
+         {
+-            pSpecial[j] = false;
++            pImpl->pSpecial[j] = false;
+             if (!rEntry.bQueryByString)
+             {
+                 if (*rEntry.pStr == EMPTY_STRING &&
+                    ((rEntry.nVal == SC_EMPTYFIELDS) || (rEntry.nVal == SC_NONEMPTYFIELDS)))
+-                    pSpecial[j] = true;
++                    pImpl->pSpecial[j] = true;
+             }
+             else
+             {
+@@ -114,26 +126,20 @@
+ 
+ ScSheetDPData::~ScSheetDPData()
+ {
+-	for (long i=0; i<pImpl->nColCount; i++)
+-		delete pImpl->ppStrings[i];
+-	delete[] pImpl->ppStrings;
+ 	delete[] pImpl->pDateDim;
++    delete[] pImpl->pSpecial;
+ 	delete pImpl;
+-    delete[] pSpecial;
+ }
+ 
+ void ScSheetDPData::DisposeData()
+ {
+-	for (long i=0; i<pImpl->nColCount; i++)
+-	{
+-		delete pImpl->ppStrings[i];
+-		pImpl->ppStrings[i] = NULL;
+-	}
++    pImpl->aCacheTable.clear();
+ }
+ 
+ long ScSheetDPData::GetColumnCount()
+ {
+-	return pImpl->nColCount;
++    CreateCacheTable();
++    return pImpl->aCacheTable.getColSize();
+ }
+ 
+ BOOL lcl_HasQuery( const ScQueryParam& rParam )
+@@ -144,81 +150,31 @@
+ 
+ const TypedStrCollection& ScSheetDPData::GetColumnEntries(long nColumn)
+ {
+-	DBG_ASSERT(nColumn>=0 && nColumn<pImpl->nColCount, "ScSheetDPData: wrong column");
+-
+-	if (!pImpl->ppStrings[nColumn])
+-	{
+-		TypedStrCollection* pColl = new TypedStrCollection;
+-
+-		//!	document must have function to fill collection!!!
+-		String aDocStr;
+-		SCCOL nDocCol = (SCCOL)(pImpl->aRange.aStart.Col() + nColumn);
+-		SCTAB nDocTab = pImpl->aRange.aStart.Tab();
+-		SCROW nStartRow = pImpl->aRange.aStart.Row()+1;	// start of data
+-		SCROW nEndRow = pImpl->aRange.aEnd.Row();
+-		SCCOL nStartCol = pImpl->aRange.aStart.Col();
+-		SCCOL nEndCol = pImpl->aRange.aEnd.Col();
+-		for (SCROW nRow = nStartRow; nRow <= nEndRow; nRow++)
+-		{
+-			if ( pImpl->bIgnoreEmptyRows &&
+-					pImpl->pDoc->IsBlockEmpty( nDocTab, nStartCol, nRow, nEndCol, nRow ) )
+-			{
+-				//	ignore this (empty) row
+-				//!	count and skip empty rows?
+-			}
+-			else if ( pImpl->bRepeatIfEmpty && nRow > nStartRow &&
+-						!pImpl->pDoc->HasData( nDocCol, nRow, nDocTab ) )
+-			{
+-				//	ignore empty member (if it's not the first row)
+-			}
+-			else if ( lcl_HasQuery(pImpl->aQuery) &&
+-						!pImpl->pDoc->ValidQuery( nRow, nDocTab, pImpl->aQuery, pSpecial ) )
+-			{
+-				//	this row is filtered out
+-			}
+-			else
+-			{
+-				TypedStrData* pNew;
+-				pImpl->pDoc->GetString( nDocCol, nRow, nDocTab, aDocStr );
+-				if ( pImpl->pDoc->HasValueData( nDocCol, nRow, nDocTab ) )
+-				{
+-					double fVal = pImpl->pDoc->GetValue(ScAddress(nDocCol, nRow, nDocTab));
+-					pNew = new TypedStrData( aDocStr, fVal, SC_STRTYPE_VALUE );
+-				}
+-				else
+-					pNew = new TypedStrData( aDocStr );
+-
+-				if (!pColl->Insert(pNew))
+-					delete pNew;
+-			}
+-		}
+-
+-		pImpl->ppStrings[nColumn] = pColl;
+-	}
+-	return *pImpl->ppStrings[nColumn];
++    DBG_ASSERT(nColumn>=0 && nColumn < pImpl->aCacheTable.getColSize(), "ScSheetDPData: wrong column");
++    CreateCacheTable();
++    return pImpl->aCacheTable.getFieldEntries(nColumn);
+ }
+ 
+ String ScSheetDPData::getDimensionName(long nColumn)
+ {
++    CreateCacheTable();
+ 	if (getIsDataLayoutDimension(nColumn))
+ 	{
+ 		//!	different internal and display names?
+ 		//return "Data";
+ 		return ScGlobal::GetRscString(STR_PIVOT_DATA);
+ 	}
+-	else if ( nColumn >= pImpl->nColCount )
++    else if (nColumn >= pImpl->aCacheTable.getColSize())
+ 	{
+ 		DBG_ERROR("getDimensionName: invalid dimension");
+ 		return String();
+ 	}
+ 	else
+ 	{
+-		SCCOL nDocCol = (SCCOL)(pImpl->aRange.aStart.Col() + nColumn);
+-		SCROW nDocRow = pImpl->aRange.aStart.Row();
+-		SCTAB nDocTab = pImpl->aRange.aStart.Tab();
+-		String aDocStr;
+-		pImpl->pDoc->GetString( nDocCol, nDocRow, nDocTab, aDocStr );
+-		return aDocStr;
++        const String* pStr = pImpl->aCacheTable.getFieldName(nColumn);
++        if (pStr)
++            return *pStr;
++        else return String();
+ 	}
+ }
+ 
+@@ -235,11 +191,13 @@
+ 
+ BOOL ScSheetDPData::IsDateDimension(long nDim)
+ {
++    CreateCacheTable();
++    long nColCount = pImpl->aCacheTable.getColSize();
+ 	if (getIsDataLayoutDimension(nDim))
+ 	{
+ 		return FALSE;
+ 	}
+-	else if ( nDim >= pImpl->nColCount )
++    else if (nDim >= nColCount)
+ 	{
+ 		DBG_ERROR("IsDateDimension: invalid dimension");
+ 		return FALSE;
+@@ -248,9 +206,9 @@
+ 	{
+ 		if (!pImpl->pDateDim)
+ 		{
+-			pImpl->pDateDim = new BOOL[pImpl->nColCount];
++            pImpl->pDateDim = new BOOL[nColCount];
+ 			ScRange aTestRange = pImpl->aRange;
+-			for (long i=0; i<pImpl->nColCount; i++)
++			for (long i = 0; i < nColCount; ++i)
+ 			{
+ 				SCCOL nCol = (SCCOL)( pImpl->aRange.aStart.Col() + i );
+ 				aTestRange.aStart.SetCol(nCol);
+@@ -264,11 +222,12 @@
+ 
+ UINT32 ScSheetDPData::GetNumberFormat(long nDim)
+ {
++    CreateCacheTable();
+ 	if (getIsDataLayoutDimension(nDim))
+ 	{
+ 		return 0;
+ 	}
+-	else if ( nDim >= pImpl->nColCount )
++    else if (nDim >= pImpl->aCacheTable.getColSize())
+ 	{
+ 		DBG_ERROR("GetNumberFormat: invalid dimension");
+ 		return 0;
+@@ -286,7 +245,8 @@
+ 
+ BOOL ScSheetDPData::getIsDataLayoutDimension(long nColumn)
+ {
+-	return ( nColumn == pImpl->nColCount );
++    CreateCacheTable();
++    return (nColumn == pImpl->aCacheTable.getColSize());
+ }
+ 
+ void ScSheetDPData::SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty )
+@@ -295,131 +255,47 @@
+ 	pImpl->bRepeatIfEmpty   = bRepeatIfEmpty;
+ }
+ 
+-void ScSheetDPData::ResetIterator()
++bool ScSheetDPData::IsRepeatIfEmpty()
+ {
+-	pImpl->nNextRow = pImpl->aRange.aStart.Row() + 1;
++    return pImpl->bRepeatIfEmpty;
+ }
+ 
+-void lcl_GetStringOrValue( ScDPItemData& rData, ScDocument* pDoc,
+-							SCCOL nCol, SCROW nRow, SCTAB nTab,
+-							BOOL bRepeatIfEmpty, SCROW nFirstDataRow )
++void ScSheetDPData::CreateCacheTable()
+ {
+-	if ( bRepeatIfEmpty )
+-	{
+-		//	use first non-empty entry
+-		//!	just keep old ItemData ????
+-		//!	otherwise count empty cells and subtract!
+-
+-		while ( !pDoc->HasData( nCol, nRow, nTab ) && nRow > nFirstDataRow )
+-			--nRow;
+-	}
++    // Scan and store the data from the source range.
++    if (!pImpl->aCacheTable.empty())
++        // already cached.
++        return;
+ 
+-	BOOL bVal = pDoc->HasValueData( nCol, nRow, nTab );
+-	rData.bHasValue = bVal;
+-	if (bVal)
+-		rData.fValue = pDoc->GetValue( ScAddress( nCol, nRow, nTab ) );
+-	else
+-		pDoc->GetString( nCol, nRow, nTab, rData.aString );
++    pImpl->aCacheTable.fillTable(pImpl->pDoc, pImpl->aRange, pImpl->aQuery, pImpl->pSpecial, 
++                                 pImpl->bIgnoreEmptyRows);
+ }
+ 
+-BOOL ScSheetDPData::GetNextRow( const ScDPTableIteratorParam& rParam )
++void ScSheetDPData::FilterCacheTable(const vector<ScDPDimension*>& rPageDims)
+ {
+-	if ( pImpl->nNextRow > pImpl->aRange.aEnd.Row() )
+-		return FALSE;
+-
+-	SCSIZE i;
+-	long nStartCol = pImpl->aRange.aStart.Col();
+-	SCTAB nDocTab = pImpl->aRange.aStart.Tab();
+-	SCROW nFirstDataRow = pImpl->aRange.aStart.Row() + 1;
+-
+-	BOOL bFilteredOut;
+-	do
+-	{
+-		if ( pImpl->bIgnoreEmptyRows )
+-		{
+-			SCCOL nEndCol = pImpl->aRange.aEnd.Col();
+-			while ( pImpl->pDoc->IsBlockEmpty( nDocTab, (SCCOL)nStartCol, pImpl->nNextRow,
+-												nEndCol, pImpl->nNextRow ) )
+-			{
+-				++pImpl->nNextRow;
+-				if ( pImpl->nNextRow > pImpl->aRange.aEnd.Row() )
+-					return FALSE;
+-			}
+-		}
+-
+-		bFilteredOut = ( lcl_HasQuery(pImpl->aQuery) && 
+-				!pImpl->pDoc->ValidQuery( pImpl->nNextRow, nDocTab, pImpl->aQuery, pSpecial ) );
+-		if ( bFilteredOut )
+-		{
+-			++pImpl->nNextRow;
+-			if ( pImpl->nNextRow > pImpl->aRange.aEnd.Row() )
+-				return FALSE;
+-		}
+-	}
+-	while (bFilteredOut);
+-
+-	//!	use more efficient iterators
++    CreateCacheTable();
++    pImpl->aCacheTable.filterByPageDimension(rPageDims);
++}
+ 
+-	for (i=0; i<rParam.nColCount; i++)
+-	{
+-		long nDim = rParam.pCols[i];
+-		if ( getIsDataLayoutDimension(nDim) )
+-			rParam.pColData[i].SetString( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")) );
+-		else
+-			lcl_GetStringOrValue( rParam.pColData[i], pImpl->pDoc,
+-									(SCCOL)(nStartCol+nDim), pImpl->nNextRow, nDocTab,
+-									pImpl->bRepeatIfEmpty, nFirstDataRow );
+-	}
++void ScSheetDPData::GetDrillDownData(const vector<ScDPCacheTable::Criterion>& rCriteria, Sequence< Sequence<Any> >& rData)
++{
++    CreateCacheTable();
++    sal_Int32 nRowSize = pImpl->aCacheTable.getRowSize();
++    if (!nRowSize)
++        return;
+ 
+-	for (i=0; i<rParam.nRowCount; i++)
+-	{
+-		long nDim = rParam.pRows[i];
+-		if ( getIsDataLayoutDimension(nDim) )
+-			rParam.pRowData[i].SetString( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")) );
+-		else
+-			lcl_GetStringOrValue( rParam.pRowData[i], pImpl->pDoc,
+-									(SCCOL)(nStartCol+nDim), pImpl->nNextRow, nDocTab,
+-									pImpl->bRepeatIfEmpty, nFirstDataRow );
+-	}
++    pImpl->aCacheTable.filterTable(rCriteria, rData, IsRepeatIfEmpty());
++}
+ 
+-	for (i=0; i<rParam.nPageCount; i++)
+-	{
+-		long nDim = rParam.pPages[i];
+-		if ( getIsDataLayoutDimension(nDim) )
+-			rParam.pPageData[i].SetString( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")) );
+-		else
+-			lcl_GetStringOrValue( rParam.pPageData[i], pImpl->pDoc,
+-									(USHORT)(nStartCol+nDim), pImpl->nNextRow, nDocTab,
+-									pImpl->bRepeatIfEmpty, nFirstDataRow );
+-	}
+-
+-	for (i=0; i<rParam.nDatCount; i++)
+-	{
+-		long nDim = rParam.pDats[i];
+-		ScAddress aPos( (SCCOL)(nStartCol+nDim), pImpl->nNextRow, nDocTab );
+-		ScBaseCell* pCell = pImpl->pDoc->GetCell( aPos );
+-		if ( !pCell || pCell->GetCellType() == CELLTYPE_NOTE )
+-			rParam.pValues[i].Set( 0.0, SC_VALTYPE_EMPTY );
+-		else if ( pCell->GetCellType() == CELLTYPE_FORMULA && ((ScFormulaCell*)pCell)->GetErrCode() )
+-			rParam.pValues[i].Set( 0.0, SC_VALTYPE_ERROR );
+-		else if ( pCell->HasValueData() )
+-		{
+-			//!	GetValue method at BaseCell?
+-			DBG_ASSERT( pCell->GetCellType() == CELLTYPE_VALUE ||
+-						pCell->GetCellType() == CELLTYPE_FORMULA, "wrong cell type" );
+-			double fVal;
+-			if ( pCell->GetCellType() == CELLTYPE_VALUE )
+-				fVal = ((ScValueCell*)pCell)->GetValue();
+-			else
+-				fVal = ((ScFormulaCell*)pCell)->GetValue();
+-			rParam.pValues[i].Set( fVal, SC_VALTYPE_VALUE );
+-		}
+-		else
+-			rParam.pValues[i].Set( 0.0, SC_VALTYPE_STRING );
+-	}
++void ScSheetDPData::CalcResults(CalcInfo& rInfo, bool bAutoShow)
++{
++    CreateCacheTable();
++    CalcResultsFromCacheTable(pImpl->aCacheTable, rInfo, bAutoShow);
++}
+ 
+-	pImpl->nNextRow++;
+-	return TRUE;
++const ScDPCacheTable& ScSheetDPData::GetCacheTable() const
++{
++    return pImpl->aCacheTable;
+ }
+ 
+ // -----------------------------------------------------------------------
+Index: sc/source/core/data/dptabdat.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dptabdat.cxx,v
+retrieving revision 1.12
+retrieving revision 1.12.202.9
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.12 -r1.12.202.9
+--- sc/source/core/data/dptabdat.cxx	27 Feb 2007 12:05:02 -0000	1.12
++++ sc/source/core/data/dptabdat.cxx	24 Apr 2008 23:26:45 -0000	1.12.202.9
+@@ -50,8 +50,19 @@
+ #include <unotools/collatorwrapper.hxx>
+ #endif
+ 
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
++
+ #include "dptabdat.hxx"
+ #include "global.hxx"
++#include "dpcachetable.hxx"
++#include "dptabres.hxx"
++
++using namespace ::com::sun::star;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Any;
++using ::std::vector;
++using ::std::set;
++using ::std::hash_map;
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -113,29 +124,14 @@
+         return ScGlobal::pCollator->compareString( rA.aString, rB.aString );
+ }
+ 
+-// -----------------------------------------------------------------------
++// ---------------------------------------------------------------------------
+ 
+-ScDPTableIteratorParam::ScDPTableIteratorParam(
+-							long nCCount, const long* pC, ScDPItemData* pCDat,
+-							long nRCount, const long* pR, ScDPItemData* pRDat,
+-							long nPCount, const long* pP, ScDPItemData* pPDat,
+-							long nDCount, const long* pD, ScDPValueData* pV ) :
+-	nColCount( (SCSIZE)nCCount ),
+-	pCols	 ( pC ),
+-	pColData ( pCDat ),
+-	nRowCount( (SCSIZE)nRCount ),
+-	pRows	 ( pR ),
+-	pRowData ( pRDat ),
+-	nPageCount( (SCSIZE)nPCount ),
+-	pPages	 ( pP ),
+-	pPageData( pPDat ),
+-	nDatCount( (SCSIZE)nDCount ),
+-	pDats	 ( pD ),
+-	pValues	 ( pV )
++ScDPTableData::CalcInfo::CalcInfo() :
++    bRepeatIfEmpty(false)
+ {
+ }
+ 
+-// -----------------------------------------------------------------------
++// ---------------------------------------------------------------------------
+ 
+ ScDPTableData::ScDPTableData()
+ {
+@@ -193,6 +189,31 @@
+ 	return nRet;
+ }
+ 
++bool ScDPTableData::IsRepeatIfEmpty()
++{
++    return false;
++}
++
++void ScDPTableData::CreateCacheTable()
++{
++    fprintf(stdout, "ScDPTableData::CreateCacheTable: un-implemented...\n");fflush(stdout);
++}
++
++void ScDPTableData::FilterCacheTable(const vector<ScDPDimension*>& rPageDims)
++{
++    fprintf(stdout, "ScDPTableData::FilterCacheTable: un-implemented...\n");fflush(stdout);
++}
++
++void ScDPTableData::GetDrillDownData(const vector<ScDPCacheTable::Criterion>&, Sequence< Sequence<Any> >&)
++{
++    fprintf(stdout, "ScDPTableData::GetDrillDownData: un-implemented...\n");fflush(stdout);
++}
++
++void ScDPTableData::CalcResults(CalcInfo& rInfo, bool bAutoShow)
++{
++    fprintf(stdout, "ScDPTableData::CalcResults: un-implemented...\n");fflush(stdout);
++}
++
+ UINT32 ScDPTableData::GetNumberFormat(long)
+ {
+ 	return 0;			// default format
+@@ -227,6 +248,105 @@
+     return FALSE;
+ }
+ 
++void ScDPTableData::FillRowDataFromCacheTable(sal_Int32 nRow, const ScDPCacheTable& rCacheTable, 
++                                        const CalcInfo& rInfo, CalcRowData& rData)
++{
++    // column dimensions
++    GetItemData(rCacheTable, nRow, rInfo.aColLevelDims, rData.aColData);
++
++    // row dimensions
++    GetItemData(rCacheTable, nRow, rInfo.aRowLevelDims, rData.aRowData);
++
++    // page dimensions
++    GetItemData(rCacheTable, nRow, rInfo.aPageDims, rData.aPageData);
++
++    sal_Int32 n = rInfo.aDataSrcCols.size();
++    for (sal_Int32 i = 0; i < n; ++i)
++    {
++        long nDim = rInfo.aDataSrcCols[i];
++        rData.aValues.push_back( ScDPValueData() );
++        ScDPValueData& rVal = rData.aValues.back();
++        const ScDPCacheTable::Cell* pCell = rCacheTable.getCell(nDim, nRow);
++        if (pCell)
++        {
++            rVal.fValue = pCell->mbNumeric ? pCell->mfValue : 0.0;
++            rVal.nType = pCell->mnType;
++        }
++        else
++            rVal.Set(0.0, SC_VALTYPE_EMPTY);
++    }
++}
++
++void ScDPTableData::ProcessRowData(CalcInfo& rInfo, CalcRowData& rData, bool bAutoShow)
++{
++    if (!bAutoShow)
++    {
++        rInfo.pColRoot->LateInitFrom(rInfo.aColDims, rInfo.aColLevels, rData.aColData, 0, *rInfo.pInitState);
++        rInfo.pRowRoot->LateInitFrom(rInfo.aRowDims, rInfo.aRowLevels, rData.aRowData, 0, *rInfo.pInitState);
++    }
++
++    if ( ( !rInfo.pColRoot->GetChildDimension() || rInfo.pColRoot->GetChildDimension()->IsValidEntry(rData.aColData) ) &&
++         ( !rInfo.pRowRoot->GetChildDimension() || rInfo.pRowRoot->GetChildDimension()->IsValidEntry(rData.aRowData) ) )
++    {
++        //! single process method with ColMembers, RowMembers and data !!!
++        if (rInfo.pColRoot->GetChildDimension())
++        {
++            vector<ScDPItemData> aEmptyData;
++            rInfo.pColRoot->GetChildDimension()->ProcessData(rData.aColData, NULL, aEmptyData, rData.aValues);
++        }
++
++        rInfo.pRowRoot->ProcessData(rData.aRowData, rInfo.pColRoot->GetChildDimension(), 
++                                    rData.aColData, rData.aValues);
++    }
++}
++
++void ScDPTableData::CalcResultsFromCacheTable(const ScDPCacheTable& rCacheTable, CalcInfo& rInfo, bool bAutoShow)
++{
++    sal_Int32 nRowSize = rCacheTable.getRowSize();
++    for (sal_Int32 nRow = 0; nRow < nRowSize; ++nRow)
++    {
++        if (!rCacheTable.isRowActive(nRow))
++            continue;
++
++        CalcRowData aData;
++        FillRowDataFromCacheTable(nRow, rCacheTable, rInfo, aData);
++        ProcessRowData(rInfo, aData, bAutoShow);
++    }
++}
++
++void ScDPTableData::GetItemData(const ScDPCacheTable& rCacheTable, sal_Int32 nRow, 
++                                const vector<long>& rDims, vector<ScDPItemData>& rItemData)
++{
++    sal_Int32 nDimSize = rDims.size();
++    for (sal_Int32 i = 0; i < nDimSize; ++i)
++    {
++        long nDim = rDims[i];
++        rItemData.push_back( ScDPItemData() );
++        ScDPItemData& rData = rItemData.back();
++        if (getIsDataLayoutDimension(nDim))
++        {
++            rData.SetString(String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("x")));
++            continue;
++        }
++
++        const ScDPCacheTable::Cell* pCell = rCacheTable.getCell(nDim, nRow, IsRepeatIfEmpty());
++        if (!pCell || pCell->mnType == SC_VALTYPE_EMPTY)
++            continue;
++
++        const String* pString = ScSharedString::getString(pCell->mnStrId);
++        if (!pString)
++            continue;
++
++        rData.aString = *pString;
++        rData.bHasValue = false;
++        if (pCell->mbNumeric)
++        {
++            rData.bHasValue = true;
++            rData.fValue = pCell->mfValue;
++        }
++    }
++}
++
+ // -----------------------------------------------------------------------
+ 
+ 
+Index: sc/source/core/data/dptabres.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dptabres.cxx,v
+retrieving revision 1.11
+retrieving revision 1.11.200.10
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.11 -r1.11.200.10
+--- sc/source/core/data/dptabres.cxx	27 Feb 2007 12:05:33 -0000	1.11
++++ sc/source/core/data/dptabres.cxx	21 Apr 2008 03:07:58 -0000	1.11.200.10
+@@ -66,6 +66,7 @@
+ #include <com/sun/star/sheet/DataPilotFieldSortMode.hpp>
+ 
+ using namespace com::sun::star;
++using ::std::vector;
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -563,6 +564,7 @@
+ 	if ( bEmpty || bError )
+ 		fResult = 0.0;		// default, in case the state is later modified
+ 
++//  fprintf(stdout, "ScDPAggData::Calculate: result = %g\n", fResult);fflush(stdout);
+ 	fVal = fResult;			// used directly from now on
+ 	fAux = 0.0;				// used for running total or original result of reference value
+ }
+@@ -897,8 +899,8 @@
+ // -----------------------------------------------------------------------
+ 
+ 
+-ScDPResultMember::ScDPResultMember( ScDPResultData* pData, ScDPDimension* pDim,
+-									ScDPLevel* pLev, ScDPMember* pDesc,
++ScDPResultMember::ScDPResultMember( const ScDPResultData* pData, const ScDPDimension* pDim,
++									const ScDPLevel* pLev, const ScDPMember* pDesc,
+ 									BOOL bForceSub ) :
+ 	pResultData( pData ),
+ 	pParentDim( pDim ),
+@@ -945,19 +947,28 @@
+ 		return ((ScDPMember*)pMemberDesc)->IsNamedItem( r );
+ 	return FALSE;
+ }
+-BOOL ScDPResultMember::IsValidEntry( const ScDPItemData* pMembers ) const
++
++bool ScDPResultMember::IsValidEntry( const vector<ScDPItemData>& aMembers ) const
+ {
+ 	if ( !IsValid() )
+-		return FALSE;
++        return false;
+ 
+ 	const ScDPResultDimension* pChildDim = GetChildDimension();
+ 	if (pChildDim)
+-		return pChildDim->IsValidEntry( pMembers + 1 );
++    {
++        if (aMembers.size() < 2)
++            return false;
++
++        vector<ScDPItemData>::const_iterator itr = aMembers.begin();
++        vector<ScDPItemData> aChildMembers(++itr, aMembers.end());
++        return pChildDim->IsValidEntry(aChildMembers);
++    }
+ 	else
+-		return TRUE;
++        return true;
+ }
+ 
+-void ScDPResultMember::InitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPInitState& rInitState )
++void ScDPResultMember::InitFrom( const vector<ScDPDimension*>& ppDim, const vector<ScDPLevel*>& ppLev, 
++                                 size_t nPos, ScDPInitState& rInitState )
+ {
+ 	//	with LateInit, initialize only those members that have data
+ 	if ( pResultData->IsLateInit() )
+@@ -965,22 +976,22 @@
+ 
+ 	bInitialized = TRUE;
+ 
++    if (nPos >= ppDim.size())
++        return;
++
+ 	//	skip child dimension if details are not shown
+ 	if ( pMemberDesc && !pMemberDesc->getShowDetails() )
+ 	{
+-		if ( *ppDim )
+ 			bHasHiddenDetails = TRUE;	// only if there is a next dimension
+ 		return;
+ 	}
+ 
+-	if ( *ppDim )
+-	{
+ 		pChildDimension = new ScDPResultDimension( pResultData );
+-		pChildDimension->InitFrom( ppDim, ppLev, rInitState );
+-	}
++    pChildDimension->InitFrom( ppDim, ppLev, nPos, rInitState );
+ }
+ 
+-void ScDPResultMember::LateInitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPItemData* pItemData,
++void ScDPResultMember::LateInitFrom( const vector<ScDPDimension*>& ppDim, const vector<ScDPLevel*>& ppLev, 
++                                     const vector<ScDPItemData>& pItemData, size_t nPos,
+                                     ScDPInitState& rInitState )
+ {
+ 	//	without LateInit, everything has already been initialized
+@@ -989,21 +1000,22 @@
+ 
+ 	bInitialized = TRUE;
+ 
++    if (nPos >= ppDim.size())
++        // No next dimension.  Bail out.
++        return;
++
+ 	//	skip child dimension if details are not shown
+ 	if ( pMemberDesc && !pMemberDesc->getShowDetails() )
+ 	{
+-		if ( *ppDim )
+ 			bHasHiddenDetails = TRUE;	// only if there is a next dimension
+ 		return;
+ 	}
+ 
+-	if ( *ppDim )
+-	{
+ 		//	LateInitFrom is called several times...
+ 		if ( !pChildDimension )
+ 			pChildDimension = new ScDPResultDimension( pResultData );
+-		pChildDimension->LateInitFrom( ppDim, ppLev, pItemData, rInitState );
+-	}
++
++    pChildDimension->LateInitFrom( ppDim, ppLev, pItemData, nPos, rInitState );
+ }
+ 
+ BOOL ScDPResultMember::IsSubTotalInTitle(long nMeasure) const
+@@ -1123,16 +1135,14 @@
+ 		return 0;
+ }
+ 
+-void ScDPResultMember::ProcessData( const ScDPItemData* pChildMembers, ScDPResultDimension* pDataDim,
+-										const ScDPItemData* pDataMembers, const ScDPValueData* pValues )
++void ScDPResultMember::ProcessData( const vector<ScDPItemData>& aChildMembers, const ScDPResultDimension* pDataDim,
++                                    const vector<ScDPItemData>& aDataMembers, const vector<ScDPValueData>& aValues )
+ {
+ 	SetHasElements();
+ 
+ 	if (pChildDimension)
+-		pChildDimension->ProcessData( pChildMembers, pDataDim, pDataMembers, pValues );
++        pChildDimension->ProcessData( aChildMembers, pDataDim, aDataMembers, aValues );
+ 
+-	if ( pDataMembers )
+-	{
+ 		if ( !pDataRoot )
+ 		{
+ 			pDataRoot = new ScDPDataMember( pResultData, NULL );
+@@ -1158,8 +1168,7 @@
+ 				aSubState.eRowForce = lcl_GetForceFunc( pParentLevel, nUserPos );
+ 			}
+ 
+-			pDataRoot->ProcessData( pDataMembers, pValues, aSubState );
+-		}
++        pDataRoot->ProcessData( aDataMembers, aValues, aSubState );
+ 	}
+ }
+ 
+@@ -1575,7 +1584,7 @@
+ 
+ // -----------------------------------------------------------------------
+ 
+-ScDPDataMember::ScDPDataMember( ScDPResultData* pData, const ScDPResultMember* pRes ) :
++ScDPDataMember::ScDPDataMember( const ScDPResultData* pData, const ScDPResultMember* pRes ) :
+ 	pResultData( pData ),
+ 	pResultMember( pRes ),
+ 	pChildDimension( NULL )
+@@ -1647,7 +1656,7 @@
+ 	return nRet;
+ }
+ 
+-void ScDPDataMember::UpdateValues( const ScDPValueData* pValues, const ScDPSubTotalState& rSubState )
++void ScDPDataMember::UpdateValues( const vector<ScDPValueData>& aValues, const ScDPSubTotalState& rSubState )
+ {
+ 	//!	find out how many and which subtotals are used
+ 
+@@ -1663,19 +1672,15 @@
+ 			pAgg = pAgg->GetChild();		// created if not there
+ 	}
+ 
+-	long nCount = pResultData->GetMeasureCount();
+-	for (long nPos=0; nPos<nCount; nPos++)
++    size_t nCount = aValues.size();
++    for (size_t nPos = 0; nPos < nCount; ++nPos)
+ 	{
+-		pAgg->Update( *pValues, pResultData->GetMeasureFunction(nPos), rSubState );
+-		if ( nPos+1 < nCount )
+-		{
+-			pAgg = pAgg->GetChild();		// created if not there
+-			++pValues;						// next value entry
+-		}
++        pAgg->Update(aValues[nPos], pResultData->GetMeasureFunction(nPos), rSubState);
++        pAgg = pAgg->GetChild();
+ 	}
+ }
+ 
+-void ScDPDataMember::ProcessData( const ScDPItemData* pChildMembers, const ScDPValueData* pValues,
++void ScDPDataMember::ProcessData( const vector<ScDPItemData>& aChildMembers, const vector<ScDPValueData>& aValues,
+ 									const ScDPSubTotalState& rSubState )
+ {
+ 	if ( pResultData->IsLateInit() && !pChildDimension && pResultMember && pResultMember->GetChildDimension() )
+@@ -1704,11 +1709,11 @@
+ 			aLocalSubState.eColForce = lcl_GetForceFunc( pForceLevel, nUserPos );
+ 		}
+ 
+-		UpdateValues( pValues, aLocalSubState );
++		UpdateValues( aValues, aLocalSubState );
+ 	}
+ 
+ 	if (pChildDimension)
+-		pChildDimension->ProcessData( pChildMembers, pValues, rSubState );		// with unmodified subtotal state
++		pChildDimension->ProcessData( aChildMembers, aValues, rSubState );		// with unmodified subtotal state
+ }
+ 
+ BOOL ScDPDataMember::HasData( long nMeasure, const ScDPSubTotalState& rSubState ) const
+@@ -2413,7 +2418,7 @@
+ class ScDPGroupCompare
+ {
+ private:
+-    ScDPResultData*      pResultData;
++    const ScDPResultData* pResultData;
+     const ScDPInitState& rInitState;
+     long                 nDimSource;
+     BOOL                 bIncludeAll;
+@@ -2422,14 +2427,14 @@
+     const ScDPItemData*  pBaseData;
+ 
+ public:
+-            ScDPGroupCompare( ScDPResultData* pData, const ScDPInitState& rState, long nDimension );
++            ScDPGroupCompare( const ScDPResultData* pData, const ScDPInitState& rState, long nDimension );
+             ~ScDPGroupCompare() {}
+ 
+     BOOL    IsIncluded( const ScDPMember& rMember )     { return bIncludeAll || TestIncluded( rMember ); }
+     BOOL    TestIncluded( const ScDPMember& rMember );
+ };
+ 
+-ScDPGroupCompare::ScDPGroupCompare( ScDPResultData* pData, const ScDPInitState& rState, long nDimension ) :
++ScDPGroupCompare::ScDPGroupCompare( const ScDPResultData* pData, const ScDPInitState& rState, long nDimension ) :
+     pResultData( pData ),
+     rInitState( rState ),
+     nDimSource( nDimension ),
+@@ -2494,7 +2499,7 @@
+ 
+ // -----------------------------------------------------------------------
+ 
+-ScDPResultDimension::ScDPResultDimension( ScDPResultData* pData ) :
++ScDPResultDimension::ScDPResultDimension( const ScDPResultData* pData ) :
+ 	pResultData( pData ),
+ 	bInitialized( FALSE ),
+ 	bIsDataLayout( FALSE ),
+@@ -2538,18 +2543,28 @@
+ 	return NULL;
+ }
+ 
+-void ScDPResultDimension::InitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPInitState& rInitState )
++void ScDPResultDimension::InitFrom( const vector<ScDPDimension*>& ppDim, const vector<ScDPLevel*>& ppLev, 
++                                    size_t nPos, ScDPInitState& rInitState )
+ {
+-	ScDPDimension* pThisDim = *ppDim;
+-	ScDPLevel* pThisLevel = *ppLev;
+-	if (pThisDim && pThisLevel)
++    if (nPos >= ppDim.size() || nPos >= ppLev.size())
++    {
++        bInitialized = true;
++        return;
++    }
++
++	ScDPDimension* pThisDim = ppDim[nPos];
++	ScDPLevel* pThisLevel = ppLev[nPos];
++
++    if (!pThisDim || !pThisLevel)
+ 	{
+-		ScDPDimension** ppChildDim = ppDim + 1;
+-		ScDPLevel** ppChildLev = ppLev + 1;
++        bInitialized = true;
++        return;
++    }
+ 
+-		bIsDataLayout = pThisDim->getIsDataLayoutDimension();
+-		aDimensionName = pThisDim->getName();
++    bIsDataLayout = pThisDim->getIsDataLayoutDimension();   // member
++    aDimensionName = pThisDim->getName();                   // member 
+ 
++    // Check the autoshow setting.  If it's enabled, store the settings.
+     	const sheet::DataPilotFieldAutoShowInfo& rAutoInfo = pThisLevel->GetAutoShow();
+     	if ( rAutoInfo.IsEnabled )
+     	{
+@@ -2559,6 +2574,7 @@
+     	    nAutoCount    = rAutoInfo.ItemCount;
+     	}
+ 
++    // Check the sort info, and store the settings if appropriate.
+         const sheet::DataPilotFieldSortInfo& rSortInfo = pThisLevel->GetSortInfo();
+         if ( rSortInfo.Mode == sheet::DataPilotFieldSortMode::DATA )
+         {
+@@ -2573,6 +2589,7 @@
+         long nDimSource = pThisDim->GetDimension();     //! check GetSourceDim?
+         ScDPGroupCompare aCompare( pResultData, rInitState, nDimSource );
+ 
++    // Now, go through all members and initialize them.
+ 		ScDPMembers* pMembers = pThisLevel->GetMembersObject();
+ 		long nMembCount = pMembers->getCount();
+ 		for ( long i=0; i<nMembCount; i++ )
+@@ -2595,25 +2612,26 @@
+                     maMemberHash.insert( std::pair< const ScDPItemData, ScDPResultMember *>( aMemberData, pNew ) );
+ 
+                 rInitState.AddMember( nDimSource, aMemberData );
+-    			pNew->InitFrom( ppChildDim, ppChildLev, rInitState );
++            pNew->InitFrom( ppDim, ppLev, nPos+1, rInitState );
+     			rInitState.RemoveMember();
+             }
+ 		}
+-	}
+ 	bInitialized = TRUE;
+ }
+ 
+-void ScDPResultDimension::LateInitFrom( ScDPDimension** ppDim, ScDPLevel** ppLev, ScDPItemData* pItemData,
++void ScDPResultDimension::LateInitFrom( const vector<ScDPDimension*>& ppDim, const vector<ScDPLevel*>& ppLev, 
++                                        const vector<ScDPItemData>& pItemData, size_t nPos,
+                                         ScDPInitState& rInitState )
+ {
+-	ScDPDimension* pThisDim = *ppDim;
+-	ScDPLevel* pThisLevel = *ppLev;
+-	ScDPItemData& rThisData = *pItemData;
+-	if (pThisDim && pThisLevel)
+-	{
+-		ScDPDimension** ppChildDim = ppDim + 1;
+-		ScDPLevel** ppChildLev = ppLev + 1;
+-		ScDPItemData* pChildData = pItemData + 1;
++    if (nPos >= ppDim.size() || nPos >= ppLev.size() || nPos >= pItemData.size())
++        return;
++
++	ScDPDimension* pThisDim = ppDim[nPos];
++	ScDPLevel* pThisLevel = ppLev[nPos];
++	const ScDPItemData& rThisData = pItemData[nPos];
++
++    if (!pThisDim || !pThisLevel)
++        return;
+ 
+         long nDimSource = pThisDim->GetDimension();     //! check GetSourceDim?
+ 
+@@ -2683,7 +2701,7 @@
+ 				ScDPItemData aMemberData;
+ 				pResultMember->FillItemData( aMemberData );
+ 				rInitState.AddMember( nDimSource, aMemberData );
+-				pResultMember->LateInitFrom( ppChildDim, ppChildLev, pChildData, rInitState );
++            pResultMember->LateInitFrom( ppDim, ppLev, pItemData, nPos+1, rInitState );
+ 				rInitState.RemoveMember();
+ 			}
+ 		}
+@@ -2695,11 +2713,10 @@
+                 ScDPItemData aMemberData;
+                 pResultMember->FillItemData( aMemberData );
+                 rInitState.AddMember( nDimSource, aMemberData );
+-				pResultMember->LateInitFrom( ppChildDim, ppChildLev, pChildData, rInitState );
++            pResultMember->LateInitFrom( ppDim, ppLev, pItemData, nPos+1, rInitState );
+     			rInitState.RemoveMember();
+ 			}
+ 		}
+-	}
+ }
+ 
+ long ScDPResultDimension::GetSize(long nMeasure) const
+@@ -2722,26 +2739,37 @@
+ 	return nTotal;
+ }
+ 
+-BOOL ScDPResultDimension::IsValidEntry( const ScDPItemData* pMembers ) const
++bool ScDPResultDimension::IsValidEntry( const vector<ScDPItemData>& aMembers ) const
+ {
+-    // the ScDPItemData array must contain enough entries for all dimensions - this isn't checked
+-	const ScDPResultMember* pMember = FindMember( *pMembers );
+-	if( NULL != pMember )
+-		return pMember->IsValidEntry( pMembers );
++    if (aMembers.empty())
++        return false;
++
++    const ScDPResultMember* pMember = FindMember( aMembers[0] );
++    if ( NULL != pMember )
++        return pMember->IsValidEntry( aMembers );
+ 
+ 	DBG_ERROR("IsValidEntry: Member not found");
+-	return FALSE;
++    return false;
+ }
+ 
+-void ScDPResultDimension::ProcessData( const ScDPItemData* pMembers,
+-							ScDPResultDimension* pDataDim, const ScDPItemData* pDataMembers,
+-							const ScDPValueData* pValues )
++void ScDPResultDimension::ProcessData( const vector<ScDPItemData>& aMembers,
++                                       const ScDPResultDimension* pDataDim, 
++                                       const vector<ScDPItemData>& aDataMembers,
++                                       const vector<ScDPValueData>& aValues ) const
+ {
+-    // the ScDPItemData array must contain enough entries for all dimensions - this isn't checked
+-	ScDPResultMember* pMember = FindMember( *pMembers );
+-	if( NULL != pMember )
++    if (aMembers.empty())
++        return;
++
++	ScDPResultMember* pMember = FindMember( aMembers[0] );
++	if ( NULL != pMember )
++	{
++        vector<ScDPItemData> aChildMembers;
++        if (aMembers.size() > 1)
+ 		{
+-			pMember->ProcessData( pMembers + 1, pDataDim, pDataMembers, pValues );
++            vector<ScDPItemData>::const_iterator itr = aMembers.begin();
++            aChildMembers.assign(++itr, aMembers.end());
++        }
++        pMember->ProcessData( aChildMembers, pDataDim, aDataMembers, aValues );
+ 			return;
+ 		}
+ 
+@@ -3210,7 +3238,7 @@
+ 
+ // -----------------------------------------------------------------------
+ 
+-ScDPDataDimension::ScDPDataDimension( ScDPResultData* pData ) :
++ScDPDataDimension::ScDPDataDimension( const ScDPResultData* pData ) :
+ 	pResultData( pData ),
+ 	pResultDimension( NULL ),
+ 	bIsDataLayout( FALSE )
+@@ -3229,6 +3257,8 @@
+     pResultDimension = pDim;
+ 	bIsDataLayout = pDim->IsDataLayout();
+ 
++    // Go through all result members under the given result dimension, and
++    // create a new data member instance for each result member.
+ 	long nCount = pDim->GetMemberCount();
+ 	for (long i=0; i<nCount; i++)
+ 	{
+@@ -3249,7 +3279,7 @@
+ 	}
+ }
+ 
+-void ScDPDataDimension::ProcessData( const ScDPItemData* pDataMembers, const ScDPValueData* pValues,
++void ScDPDataDimension::ProcessData( const vector<ScDPItemData>& aDataMembers, const vector<ScDPValueData>& aValues,
+ 									const ScDPSubTotalState& rSubState )
+ {
+     // the ScDPItemData array must contain enough entries for all dimensions - this isn't checked
+@@ -3260,9 +3290,15 @@
+ 		ScDPDataMember* pMember = aMembers[(USHORT)i];
+ 
+ 		// always first member for data layout dim
+-		if ( bIsDataLayout || pMember->IsNamedItem( *pDataMembers ) )
++        if ( bIsDataLayout || ( !aDataMembers.empty() && pMember->IsNamedItem(aDataMembers[0]) ) )
+ 		{
+-			pMember->ProcessData( pDataMembers + 1, pValues, rSubState );
++            vector<ScDPItemData> aChildDataMembers;
++            if (aDataMembers.size() > 1)
++            {
++                vector<ScDPItemData>::const_iterator itr = aDataMembers.begin();
++                aChildDataMembers.assign(++itr, aDataMembers.end());
++            }
++            pMember->ProcessData( aChildDataMembers, aValues, rSubState );
+ 			return;
+ 		}
+ 	}
+Index: sc/source/core/data/dptabsrc.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dptabsrc.cxx,v
+retrieving revision 1.23
+retrieving revision 1.20.42.14
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.23 -r1.20.42.14
+--- sc/source/core/data/dptabsrc.cxx	29 Jan 2008 15:18:53 -0000	1.23
++++ sc/source/core/data/dptabsrc.cxx	24 Apr 2008 23:26:45 -0000	1.20.42.14
+@@ -36,11 +36,15 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sc.hxx"
+ 
++#include <stdio.h>
+ 
+ 
+ // INCLUDE ---------------------------------------------------------------
+ 
+ #include <algorithm>
++#include <vector>
++#include <set>
++#include <hash_map>
+ 
+ #include <tools/debug.hxx>
+ #include <rtl/math.hxx>
+@@ -66,8 +70,10 @@
+ #include <com/sun/star/beans/PropertyAttribute.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldReferenceType.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldSortMode.hpp>
++#include <com/sun/star/table/CellAddress.hpp>
+ 
+ #ifndef _UNOTOOLS_COLLATORWRAPPER_HXX
+ #include <unotools/collatorwrapper.hxx>
+@@ -80,6 +86,12 @@
+ #endif
+ 
+ using namespace com::sun::star;
++using ::std::vector;
++using ::std::set;
++using ::std::hash_map;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Any;
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -417,6 +429,45 @@
+ 	DBG_ERROR("not implemented");	//! exception?
+ }
+ 
++Sequence< Sequence<Any> > SAL_CALL ScDPSource::getDrillDownData(const Sequence<sheet::DataPilotFieldFilter>& aFilters)
++    throw (uno::RuntimeException)
++{
++    long nColumnCount = GetData()->GetColumnCount();
++
++    // collect ScDPItemData for each filtered column
++    vector<ScDPCacheTable::Criterion> aFilterCriteria;
++    sal_Int32 nFilterCount = aFilters.getLength();
++    for (sal_Int32 i = 0; i < nFilterCount; ++i)
++    {
++        const sheet::DataPilotFieldFilter& rFilter = aFilters[i];
++        String aFieldName( rFilter.FieldName );
++        for (long nCol = 0; nCol < nColumnCount; ++nCol)
++        {
++            if ( aFieldName == pData->getDimensionName(nCol) )
++            {
++                ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nCol );
++                ScDPMembers* pMembers = pDim->GetHierarchiesObject()->getByIndex(0)->
++                                        GetLevelsObject()->getByIndex(0)->GetMembersObject();
++                sal_Int32 nIndex = pMembers->GetIndexFromName( rFilter.MatchValue );
++                if ( nIndex >= 0 )
++                {
++                    ScDPItemData aItem;
++                    pMembers->getByIndex(nIndex)->FillItemData( aItem );
++                    aFilterCriteria.push_back( ScDPCacheTable::Criterion() );
++                    sal_Int32 nMatchStrId = ScSharedString::getStringId(aItem.aString);
++                    aFilterCriteria.back().mnFieldIndex = nCol;
++                    aFilterCriteria.back().mpFilter.reset(
++                        new ScDPCacheTable::SingleFilter(nMatchStrId, aItem.fValue, aItem.bHasValue) );
++                }
++            }
++        }
++    }
++
++    Sequence< Sequence<Any> > aTabData;
++    pData->GetDrillDownData(aFilterCriteria, aTabData);
++    return aTabData;
++}
++
+ String ScDPSource::getDataDescription()
+ {
+ 	CreateRes_Impl();		// create pResData
+@@ -508,7 +559,7 @@
+ 	bResultOverflow = FALSE;
+ }
+ 
+-long lcl_CountMinMembers( ScDPDimension** ppDim, ScDPLevel** ppLevel, long nLevels )
++long lcl_CountMinMembers(const vector<ScDPDimension*>& ppDim, const vector<ScDPLevel*>& ppLevel, long nLevels )
+ {
+ 	//	Calculate the product of the member count for those consecutive levels that
+ 	//	have the "show all" flag, one following level, and the data layout dimension.
+@@ -580,6 +631,54 @@
+     return -1;  // not found
+ }
+ 
++void ScDPSource::FillCalcInfo(bool bIsRow, ScDPTableData::CalcInfo& rInfo, bool &rHasAutoShow)
++{
++    long* nDims = bIsRow ? nRowDims : nColDims;
++    long nDimCount = bIsRow ? nRowDimCount : nColDimCount;
++
++    for (long i = 0; i < nDimCount; ++i)
++    {
++        ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nDims[i] );
++        long nHierarchy = pDim->getUsedHierarchy();
++        if ( nHierarchy >= pDim->GetHierarchiesObject()->getCount() )
++            nHierarchy = 0;
++        ScDPLevels* pLevels = pDim->GetHierarchiesObject()->getByIndex(nHierarchy)->GetLevelsObject();
++        long nCount = pLevels->getCount();
++
++        //!	Test
++        if ( pDim->getIsDataLayoutDimension() && nDataDimCount < 2 )
++            nCount = 0;
++        //!	Test
++
++        for (long j = 0; j < nCount; ++j)
++        {
++            ScDPLevel* pLevel = pLevels->getByIndex(j);
++            pLevel->EvaluateSortOrder();
++
++            // no layout flags for column fields, only for row fields
++            pLevel->SetEnableLayout( bIsRow );           
++
++            if ( pLevel->GetAutoShow().IsEnabled )
++                rHasAutoShow = TRUE;
++
++            if (bIsRow)
++            {
++                rInfo.aRowLevelDims.push_back(nDims[i]);
++                rInfo.aRowDims.push_back(pDim);
++                rInfo.aRowLevels.push_back(pLevel);
++            }
++            else
++            {
++                rInfo.aColLevelDims.push_back(nDims[i]);
++                rInfo.aColDims.push_back(pDim);
++                rInfo.aColLevels.push_back(pLevel);
++            }
++
++            pLevel->GetMembersObject();                 // initialize for groups
++        }
++    }
++}
++
+ void ScDPSource::CreateRes_Impl()
+ {
+ 	if ( !pResData )
+@@ -593,24 +692,33 @@
+ 			nDataOrient = sheet::DataPilotFieldOrientation_ROW;
+ 		}
+ 
++        // TODO: Aggreate pDataNames, pDataRefValues, nDataRefOrient, and 
++        // eDataFunctions into a structure and use vector instead of static 
++        // or pointer arrays.
+ 		String* pDataNames = NULL;
+ 		sheet::DataPilotFieldReference* pDataRefValues = NULL;
++        ScSubTotalFunc eDataFunctions[SC_DAPI_MAXFIELDS];
++		USHORT nDataRefOrient[SC_DAPI_MAXFIELDS];
+ 		if (nDataDimCount)
+ 		{
+ 			pDataNames = new String[nDataDimCount];
+ 			pDataRefValues = new sheet::DataPilotFieldReference[nDataDimCount];
+ 		}
+ 
+-		long nDataSrcCols[SC_DAPI_MAXFIELDS];
+-		USHORT nDataRefOrient[SC_DAPI_MAXFIELDS];
++        ScDPTableData::CalcInfo aInfo;
++
+ 
+ 		//	LateInit (initialize only those rows/children that are used) can be used unless
+ 		//	any data dimension needs reference values from column/row dimensions
+ 		BOOL bLateInit = TRUE;
+ 
++        // Go through all data dimensions (i.e. fields) and build their meta data
++        // so that they can be passed on to ScDPResultData instance later.
++        // TODO: aggregate all of data dimension info into a structure.
+ 		long i;
+ 		for (i=0; i<nDataDimCount; i++)
+ 		{
++            // Get function for each data field.
+ 			long nDimIndex = nDataDims[i];
+ 			ScDPDimension* pDim = GetDimensionsObject()->getByIndex(nDimIndex);
+ 			sheet::GeneralFunction eUser = (sheet::GeneralFunction)pDim->getFunction();
+@@ -619,7 +727,11 @@
+ 				//!	test for numeric data
+ 				eUser = sheet::GeneralFunction_SUM;
+ 			}
++
++            // Map UNO's enum to internal enum ScSubTotalFunc.
+ 			eDataFunctions[i] = ScDataUnoConversion::GeneralToSubTotal( eUser );
++
++            // Get reference field/item information.
+ 			pDataRefValues[i] = pDim->GetReferenceValue();
+ 			nDataRefOrient[i] = sheet::DataPilotFieldOrientation_HIDDEN;	// default if not used
+ 			sal_Int32 eRefType = pDataRefValues[i].ReferenceType;
+@@ -653,10 +765,10 @@
+ 			//!	the complete name (function and field) must be stored at the dimension
+ 
+ 			long nSource = ((ScDPDimension*)pDim)->GetSourceDim();
+-			if ( nSource >= 0 )
+-				nDataSrcCols[i] = nSource;
++            if (nSource >= 0)
++                aInfo.aDataSrcCols.push_back(nSource);
+ 			else
+-				nDataSrcCols[i] = nDimIndex;
++                aInfo.aDataSrcCols.push_back(nDimIndex);
+ 		}
+ 
+ 		pResData = new ScDPResultData( this );
+@@ -667,7 +779,7 @@
+ 		delete[] pDataNames;
+ 		delete[] pDataRefValues;
+ 
+-        BOOL bHasAutoShow = FALSE;
++        bool bHasAutoShow = false;
+ 
+         ScDPInitState aInitState;
+ 
+@@ -685,86 +797,22 @@
+ 		pColResRoot = new ScDPResultMember( pResData, NULL, NULL, NULL, bColumnGrand );
+ 		pRowResRoot = new ScDPResultMember( pResData, NULL, NULL, NULL, bRowGrand );
+ 
+-		ScDPDimension* ppColDim[SC_DAPI_MAXFIELDS];		//! Ref?
+-		ScDPLevel* ppColLevel[SC_DAPI_MAXFIELDS];		//! Ref?
+-		long nColLevelDims[SC_DAPI_MAXFIELDS];
+-		long nColLevelCount = 0;
+-		for (i=0; i<nColDimCount; i++)
+-		{
+-			ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nColDims[i] );
+-			long nHierarchy = pDim->getUsedHierarchy();
+-			if ( nHierarchy >= pDim->GetHierarchiesObject()->getCount() )
+-				nHierarchy = 0;
+-			ScDPLevels* pLevels = pDim->GetHierarchiesObject()->getByIndex(nHierarchy)->GetLevelsObject();
+-			long nCount = pLevels->getCount();
+-
+-			//!	Test
+-			if ( pDim->getIsDataLayoutDimension() && nDataDimCount < 2 )
+-				nCount = 0;
+-			//!	Test
++        FillCalcInfo(false, aInfo, bHasAutoShow);
++        long nColLevelCount = aInfo.aColLevels.size();
+ 
+-			for (long j=0; j<nCount; j++)
+-			{
+-			    ScDPLevel* pLevel = pLevels->getByIndex(j);
+-			    pLevel->EvaluateSortOrder();
+-			    pLevel->SetEnableLayout( FALSE );           // no layout flags for column fields
+-			    if ( pLevel->GetAutoShow().IsEnabled )
+-    			    bHasAutoShow = TRUE;
+-				nColLevelDims[nColLevelCount] = nColDims[i];
+-				ppColDim[nColLevelCount] = pDim;
+-				ppColLevel[nColLevelCount] = pLevel;
+-                pLevel->GetMembersObject();                 // initialize for groups
+-				++nColLevelCount;
+-			}
+-		}
+-		ppColDim[nColLevelCount] = NULL;
+-		ppColLevel[nColLevelCount] = NULL;
+-
+-		pColResRoot->InitFrom( ppColDim, ppColLevel, aInitState );
++        pColResRoot->InitFrom( aInfo.aColDims, aInfo.aColLevels, 0, aInitState );
+ 		pColResRoot->SetHasElements();
+ 
+-		ScDPDimension* ppRowDim[SC_DAPI_MAXFIELDS];		//! Ref?
+-		ScDPLevel* ppRowLevel[SC_DAPI_MAXFIELDS];		//! Ref?
+-		long nRowLevelDims[SC_DAPI_MAXFIELDS];
+-		long nRowLevelCount = 0;
+-		for (i=0; i<nRowDimCount; i++)
+-		{
+-			ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nRowDims[i] );
+-			long nHierarchy = pDim->getUsedHierarchy();
+-			if ( nHierarchy >= pDim->GetHierarchiesObject()->getCount() )
+-				nHierarchy = 0;
+-			ScDPLevels* pLevels = pDim->GetHierarchiesObject()->getByIndex(nHierarchy)->GetLevelsObject();
+-			long nCount = pLevels->getCount();
+-
+-			//!	Test
+-			if ( pDim->getIsDataLayoutDimension() && nDataDimCount < 2 )
+-				nCount = 0;
+-			//!	Test
+-
+-			for (long j=0; j<nCount; j++)
+-			{
+-			    ScDPLevel* pLevel = pLevels->getByIndex(j);
+-			    pLevel->EvaluateSortOrder();
+-			    pLevel->SetEnableLayout( TRUE );            // enable layout flags for row fields
+-			    if ( pLevel->GetAutoShow().IsEnabled )
+-    			    bHasAutoShow = TRUE;
+-				nRowLevelDims[nRowLevelCount] = nRowDims[i];
+-				ppRowDim[nRowLevelCount] = pDim;
+-				ppRowLevel[nRowLevelCount] = pLevel;
+-                pLevel->GetMembersObject();                 // initialize for groups
+-				++nRowLevelCount;
+-			}
+-		}
+-		ppRowDim[nRowLevelCount] = NULL;
+-		ppRowLevel[nRowLevelCount] = NULL;
++        FillCalcInfo(true, aInfo, bHasAutoShow);
++        long nRowLevelCount = aInfo.aRowLevels.size();
+ 
+ 		if ( nRowLevelCount > 0 )
+ 		{
+ 		    // disable layout flags for the innermost row field (level)
+-		    ppRowLevel[nRowLevelCount-1]->SetEnableLayout( FALSE );
++            aInfo.aRowLevels[nRowLevelCount-1]->SetEnableLayout( FALSE );
+ 		}
+ 
+-		pRowResRoot->InitFrom( ppRowDim, ppRowLevel, aInitState );
++        pRowResRoot->InitFrom( aInfo.aRowDims, aInfo.aRowLevels, 0, aInitState );
+ 		pRowResRoot->SetHasElements();
+ 
+         // initialize members object also for all page dimensions (needed for numeric groups)
+@@ -774,6 +822,7 @@
+             long nHierarchy = pDim->getUsedHierarchy();
+             if ( nHierarchy >= pDim->GetHierarchiesObject()->getCount() )
+                 nHierarchy = 0;
++
+             ScDPLevels* pLevels = pDim->GetHierarchiesObject()->getByIndex(nHierarchy)->GetLevelsObject();
+             long nCount = pLevels->getCount();
+             for (long j=0; j<nCount; j++)
+@@ -783,8 +832,9 @@
+ 		//	pre-check: calculate minimum number of result columns / rows from
+ 		//	levels that have the "show all" flag set
+ 
+-		long nMinColMembers = lcl_CountMinMembers( ppColDim, ppColLevel, nColLevelCount );
+-		long nMinRowMembers = lcl_CountMinMembers( ppRowDim, ppRowLevel, nRowLevelCount );
++		long nMinColMembers = lcl_CountMinMembers( aInfo.aColDims, aInfo.aColLevels, nColLevelCount );
++		long nMinRowMembers = lcl_CountMinMembers( aInfo.aRowDims, aInfo.aRowLevels, nRowLevelCount );
++
+ 		if ( nMinColMembers > SC_MINCOUNT_LIMIT || nMinRowMembers > SC_MINCOUNT_LIMIT )
+ 		{
+ 			//	resulting table is too big -> abort before calculating
+@@ -794,49 +844,25 @@
+ 		}
+ 		else
+ 		{
+-			ScDPItemData aColData[SC_DAPI_MAXFIELDS];
+-			ScDPItemData aRowData[SC_DAPI_MAXFIELDS];
+-			ScDPItemData aPageData[SC_DAPI_MAXFIELDS];
+-			ScDPValueData aValues[SC_DAPI_MAXFIELDS];
+-
+-			ScDPTableIteratorParam aIterPar(
+-						nColLevelCount,  nColLevelDims,  aColData,
+-						nRowLevelCount,  nRowLevelDims,  aRowData,
+-						nPageDimCount,   nPageDims,      aPageData,
+-						nDataDimCount,   nDataSrcCols,   aValues );
+-
+-			pData->ResetIterator();
+-			while ( pData->GetNextRow( aIterPar ) )
+-			{
+-				// test page fields ----------------------------
+-				BOOL bValidPage = TRUE;
+-				for (i=0; i<nPageDimCount; i++)
+-				{
+-					ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nPageDims[i] );
+-					if ( !pDim->IsValidPage( aPageData[i] ) )
+-						bValidPage = FALSE;
+-				}
+-				// end of page fields --------------------------
+-
+-				if ( bValidPage )
+ 				{
+-				    //! move LateInit outside of bValidPage test?
+-					pColResRoot->LateInitFrom( ppColDim, ppColLevel, aColData, aInitState );
+-					pRowResRoot->LateInitFrom( ppRowDim, ppRowLevel, aRowData, aInitState );
+-
+-					//	test for filtered entries
+-					//!	test child dimensions for null !!!
+-					if ( ( !pColResRoot->GetChildDimension() || pColResRoot->GetChildDimension()->IsValidEntry( aColData ) ) &&
+-						 ( !pRowResRoot->GetChildDimension() || pRowResRoot->GetChildDimension()->IsValidEntry( aRowData ) ) )
++                vector<ScDPDimension*> aPageDims;
++                aPageDims.reserve(nPageDimCount);
++                for (i = 0; i < nPageDimCount; ++i)
+ 					{
+-						//!	single process method with ColMembers, RowMembers and data !!!
+-						if (pColResRoot->GetChildDimension())
+-							pColResRoot->GetChildDimension()->ProcessData( aColData, NULL, NULL, aValues );
+-
+-						pRowResRoot->ProcessData( aRowData, pColResRoot->GetChildDimension(), aColData, aValues );
+-					}
++                    ScDPDimension* pDim = GetDimensionsObject()->getByIndex(nPageDims[i]);
++                    if (pDim)
++                        aPageDims.push_back(pDim);
+ 				}
++                pData->FilterCacheTable(aPageDims);
+ 			}
++            aInfo.aPageDims.reserve(nPageDimCount);
++            for (i = 0; i < nPageDimCount; ++i)
++                aInfo.aPageDims.push_back(nPageDims[i]);
++
++            aInfo.pInitState = &aInitState;
++            aInfo.pColRoot   = pColResRoot;
++            aInfo.pRowRoot   = pRowResRoot;
++            pData->CalcResults(aInfo, false);
+ 
+ 			// ----------------------------------------------------------------
+ 			//  With all data processed, calculate the final results:
+@@ -854,21 +880,7 @@
+     			//  desired members only.
+     			pColResRoot->ResetResults( TRUE );
+     			pRowResRoot->ResetResults( TRUE );
+-
+-    			//  Again loop over the source data.
+-    			//  LateInitFrom is not needed again.
+-    			pData->ResetIterator();
+-    			while ( pData->GetNextRow( aIterPar ) )
+-    			{
+-    				//	test for filtered entries
+-    				if ( ( !pColResRoot->GetChildDimension() || pColResRoot->GetChildDimension()->IsValidEntry( aColData ) ) &&
+-    					 ( !pRowResRoot->GetChildDimension() || pRowResRoot->GetChildDimension()->IsValidEntry( aRowData ) ) )
+-    				{
+-    					if (pColResRoot->GetChildDimension())
+-    						pColResRoot->GetChildDimension()->ProcessData( aColData, NULL, NULL, aValues );
+-    					pRowResRoot->ProcessData( aRowData, pColResRoot->GetChildDimension(), aColData, aValues );
+-    				}
+-    			}
++                pData->CalcResults(aInfo, true);
+ 
+     			//  Call UpdateDataResults again, with the new (limited) values.
+     			pRowResRoot->UpdateDataResults( pColResRoot, pResData->GetRowStartMeasure() );
+@@ -894,105 +906,6 @@
+ 	}
+ }
+ 
+-void ScDPSource::WriteDrillDownData( ScDocument* pDoc, const ScAddress& rPos,
+-                    const std::vector< sheet::DataPilotFieldFilter > rFilters )
+-{
+-    ScAddress aOutPos( rPos );
+-    long nCol;
+-    long nColumnCount = GetData()->GetColumnCount();
+-
+-    // count non-group columns (for output - still included in filtering)
+-    long nSourceCount = 0;
+-    while ( nSourceCount < nColumnCount && pData->GetGroupBase(nSourceCount) < 0 )
+-        ++nSourceCount;
+-
+-    // collect ScDPItemData for each filtered column
+-    std::vector<bool> aFilterFlags( nColumnCount, false );
+-    std::vector<ScDPItemData> aFilterValues( nColumnCount );
+-    for ( std::vector<sheet::DataPilotFieldFilter>::const_iterator aFilterIter = rFilters.begin();
+-          aFilterIter != rFilters.end(); ++aFilterIter )
+-    {
+-        String aFieldName( aFilterIter->FieldName );
+-        for (nCol=0; nCol<nColumnCount; ++nCol)
+-            if ( aFieldName == pData->getDimensionName( nCol ) )
+-            {
+-                ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nCol );
+-                ScDPMembers* pMembers = pDim->GetHierarchiesObject()->getByIndex(0)->
+-                                        GetLevelsObject()->getByIndex(0)->GetMembersObject();
+-                sal_Int32 nIndex = pMembers->GetIndexFromName( aFilterIter->MatchValue );
+-                if ( nIndex >= 0 )
+-                {
+-                    aFilterFlags[nCol] = true;
+-                    pMembers->getByIndex(nIndex)->FillItemData( aFilterValues[nCol] );
+-                }
+-            }
+-    }
+-
+-    // add filter conditions for page fields
+-    for (long nPagePos=0; nPagePos<nPageDimCount; ++nPagePos)
+-    {
+-        nCol = nPageDims[nPagePos];
+-        ScDPDimension* pDim = GetDimensionsObject()->getByIndex( nCol );
+-        if ( pDim->HasSelectedPage() )
+-        {
+-            aFilterFlags[nCol] = true;
+-            aFilterValues[nCol] = pDim->GetSelectedData();
+-        }
+-    }
+-
+-    // output column headers
+-    for (nCol=0; nCol<nSourceCount; ++nCol)
+-    {
+-        pDoc->PutCell( aOutPos, new ScStringCell( pData->getDimensionName( nCol ) ) );
+-        aOutPos.SetCol( aOutPos.Col() + 1 );
+-    }
+-    aOutPos.SetRow( aOutPos.Row() + 1 );
+-
+-    // get all fields from source as column fields
+-    ScDPItemData aColData[SC_DAPI_MAXFIELDS];
+-    long nFields[SC_DAPI_MAXFIELDS];
+-    for (sal_Int32 i=0; i<nColumnCount; ++i)
+-        nFields[i] = i;
+-    ScDPTableIteratorParam aIterPar( nColumnCount, nFields, aColData,   // column fields
+-                                     0, NULL, NULL,                     // row fields
+-                                     0, NULL, NULL,                     // page fields
+-                                     0, NULL, NULL );                   // data fields
+-    pData->ResetIterator();
+-    while ( pData->GetNextRow( aIterPar ) )
+-    {
+-        bool bInclude = true;
+-        for (nCol=0; nCol<nColumnCount; ++nCol)
+-        {
+-            if ( aFilterFlags[nCol] && !aColData[nCol].IsCaseInsEqual( aFilterValues[nCol] ) )
+-                bInclude = false;
+-        }
+-
+-        if ( bInclude )         // output data row
+-        {
+-            aOutPos.SetCol( rPos.Col() );
+-            for (nCol=0; nCol<nSourceCount; ++nCol)
+-            {
+-                if ( aColData[nCol].bHasValue )
+-                    pDoc->SetValue( aOutPos.Col(), aOutPos.Row(), aOutPos.Tab(), aColData[nCol].fValue );
+-                else if ( aColData[nCol].aString.Len() )
+-                    pDoc->PutCell( aOutPos, new ScStringCell( aColData[nCol].aString ) );
+-                aOutPos.SetCol( aOutPos.Col() + 1 );
+-            }
+-            aOutPos.SetRow( aOutPos.Row() + 1 );
+-        }
+-    }
+-
+-    // set number format (important for dates)
+-    if ( aOutPos.Row() > rPos.Row() + 1 )
+-        for (nCol=0; nCol<nSourceCount; ++nCol)
+-        {
+-            ScPatternAttr aPattern( pDoc->GetPool() );
+-            aPattern.GetItemSet().Put( SfxUInt32Item( ATTR_VALUE_FORMAT, pData->GetNumberFormat(nCol) ) );
+-            SCCOL nFmtCol = static_cast<SCCOL>( rPos.Col() + nCol );
+-            pDoc->ApplyPatternAreaTab( nFmtCol, rPos.Row() + 1, nFmtCol, aOutPos.Row() - 1, rPos.Tab(), aPattern );
+-        }
+-}
+-
+ void ScDPSource::DumpState( ScDocument* pDoc, const ScAddress& rPos )
+ {
+     CreateRes_Impl();
+@@ -1186,6 +1099,12 @@
+ 		lcl_SetBoolInAny( aRet, getRepeatIfEmpty() );
+ 	else if ( aNameStr.EqualsAscii( SC_UNO_DATADESC ) )				// read-only
+ 		aRet <<= rtl::OUString( getDataDescription() );
++    else if ( aNameStr.EqualsAscii( SC_UNO_ROWFIELDCOUNT ) )        // read-only
++        aRet <<= static_cast<sal_Int32>(nRowDimCount);
++    else if ( aNameStr.EqualsAscii( SC_UNO_COLUMNFIELDCOUNT ) )     // read-only
++        aRet <<= static_cast<sal_Int32>(nColDimCount);
++    else if ( aNameStr.EqualsAscii( SC_UNO_DATAFIELDCOUNT ) )       // read-only
++        aRet <<= static_cast<sal_Int32>(nDataDimCount);
+ 	else
+ 	{
+ 		DBG_ERROR("unknown property");
+Index: sc/source/core/data/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/makefile.mk,v
+retrieving revision 1.23
+retrieving revision 1.21.202.3
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.23 -r1.21.202.3
+--- sc/source/core/data/makefile.mk	7 Mar 2008 11:13:34 -0000	1.23
++++ sc/source/core/data/makefile.mk	12 Mar 2008 18:02:06 -0000	1.21.202.3
+@@ -77,6 +77,7 @@
+ 	$(SLO)$/documen8.obj \
+ 	$(SLO)$/documen9.obj \
+ 	$(SLO)$/document.obj \
++        $(SLO)$/dpcachetable.obj \
+         $(SLO)$/dpdimsave.obj \
+         $(SLO)$/dpgroup.obj \
+ 	$(SLO)$/dpobject.obj \
+@@ -132,6 +133,7 @@
+ 	$(SLO)$/documen5.obj \
+ 	$(SLO)$/documen6.obj \
+ 	$(SLO)$/documen9.obj \
++        $(SLO)$/dpcachetable.obj \
+ 	$(SLO)$/dpsdbtab.obj \
+ 	$(SLO)$/dpobject.obj \
+ 	$(SLO)$/dpoutput.obj \
+Index: sc/source/ui/inc/dbfunc.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/inc/dbfunc.hxx,v
+retrieving revision 1.10
+retrieving revision 1.9.20.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.10 -r1.9.20.2
+--- sc/source/ui/inc/dbfunc.hxx	7 Dec 2007 10:42:00 -0000	1.10
++++ sc/source/ui/inc/dbfunc.hxx	4 Jan 2008 03:45:52 -0000	1.9.20.2
+@@ -110,7 +110,7 @@
+     void            SetDataPilotDetails( BOOL bShow, const String* pNewDimensionName = NULL );
+ 
+     void            ShowDataPilotSourceData( ScDPObject& rDPObj,
+-                        const ::std::vector< ::com::sun::star::sheet::DataPilotFieldFilter >& rFilters );
++                        const ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::DataPilotFieldFilter >& rFilters );
+ 
+ 	void			MakeOutline( BOOL bColumns, BOOL bRecord = TRUE );
+ 	void			RemoveOutline( BOOL bColumns, BOOL bRecord = TRUE );
+Index: sc/source/ui/unoobj/dapiuno.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/unoobj/dapiuno.cxx,v
+retrieving revision 1.20
+retrieving revision 1.19.202.10
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.20 -r1.19.202.10
+--- sc/source/ui/unoobj/dapiuno.cxx	20 Nov 2007 17:42:20 -0000	1.20
++++ sc/source/ui/unoobj/dapiuno.cxx	19 Apr 2008 18:40:53 -0000	1.19.202.10
+@@ -45,6 +45,7 @@
+ #include "datauno.hxx"
+ #include "miscuno.hxx"
+ #include "docsh.hxx"
++#include "tabvwsh.hxx"
+ #include "pivot.hxx"
+ #include "rangeutl.hxx"
+ #include "unoguard.hxx"
+@@ -76,12 +77,24 @@
+ #include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp>
+ #endif
+ 
++#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
++#include <com/sun/star/sheet/DataPilotOutputRangeType.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionData.hpp>
++
+ #ifndef _COMPHELPER_EXTRACT_HXX_
+ #include <comphelper/extract.hxx>
+ #endif
+ 
+ using namespace com::sun::star;
+ 
++using ::com::sun::star::lang::IllegalArgumentException;
++using ::com::sun::star::sheet::DataPilotFieldFilter;
++using ::com::sun::star::sheet::DataPilotTablePositionData;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::table::CellAddress;
++using ::com::sun::star::table::CellRangeAddress;
++using ::com::sun::star::uno::RuntimeException;
++using ::com::sun::star::uno::Any;
+ 
+ //------------------------------------------------------------------------
+ 
+@@ -532,7 +545,7 @@
+ 									lang::WrappedTargetException, uno::RuntimeException)
+ {
+ 	ScUnoGuard aGuard;
+-	uno::Reference<sheet::XDataPilotTable> xTable(GetObjectByIndex_Impl(static_cast<SCSIZE>(nIndex)));
++    uno::Reference<sheet::XDataPilotTable2> xTable(GetObjectByIndex_Impl(static_cast<SCSIZE>(nIndex)));
+ 	if (xTable.is())
+         return uno::makeAny(xTable);
+ 	else
+@@ -543,7 +556,7 @@
+ uno::Type SAL_CALL ScDataPilotTablesObj::getElementType() throw(uno::RuntimeException)
+ {
+ 	ScUnoGuard aGuard;
+-	return getCppuType((uno::Reference<sheet::XDataPilotTable>*)0);
++    return getCppuType((uno::Reference<sheet::XDataPilotTable2>*)0);
+ }
+ 
+ sal_Bool SAL_CALL ScDataPilotTablesObj::hasElements() throw(uno::RuntimeException)
+@@ -559,7 +572,7 @@
+ 					lang::WrappedTargetException, uno::RuntimeException)
+ {
+ 	ScUnoGuard aGuard;
+-	uno::Reference<sheet::XDataPilotTable> xTable(GetObjectByName_Impl(aName));
++    uno::Reference<sheet::XDataPilotTable2> xTable(GetObjectByName_Impl(aName));
+ 	if (xTable.is())
+         return uno::makeAny(xTable);
+ 	else
+@@ -1014,7 +1027,7 @@
+ uno::Any SAL_CALL ScDataPilotTableObj::queryInterface( const uno::Type& rType )
+ 												throw(uno::RuntimeException)
+ {
+-	SC_QUERYINTERFACE( sheet::XDataPilotTable )
++    SC_QUERYINTERFACE( sheet::XDataPilotTable2 )
+ 
+ 	return ScDataPilotDescriptorBase::queryInterface( rType );
+ }
+@@ -1041,7 +1054,7 @@
+ 
+ 		aTypes.realloc( nParentLen + 1 );
+ 		uno::Type* pPtr = aTypes.getArray();
+-		pPtr[nParentLen + 0] = getCppuType((const uno::Reference<sheet::XDataPilotTable>*)0);
++        pPtr[nParentLen + 0] = getCppuType((const uno::Reference<sheet::XDataPilotTable2>*)0);
+ 
+ 		for (long i=0; i<nParentLen; i++)
+ 			pPtr[i] = pParentPtr[i];				// parent types first
+@@ -1164,6 +1177,70 @@
+ 	}
+ }
+ 
++Sequence< Sequence<Any> > SAL_CALL ScDataPilotTableObj::getDrillDownData(const CellAddress& aAddr)
++    throw (RuntimeException)
++{
++    ScUnoGuard aGuard;
++    Sequence< Sequence<Any> > aTabData;
++    ScAddress aAddr2(aAddr.Column, aAddr.Row, aAddr.Sheet);
++    ScDPObject* pObj = GetDPObject();
++    if (!pObj)
++        throw RuntimeException();
++
++    pObj->GetDrillDownData(aAddr2, aTabData);
++    return aTabData;
++}
++
++DataPilotTablePositionData SAL_CALL ScDataPilotTableObj::getPositionData(const CellAddress& aAddr)
++    throw (RuntimeException)
++{
++    ScUnoGuard aGuard;
++    DataPilotTablePositionData aPosData;
++    ScAddress aAddr2(aAddr.Column, aAddr.Row, aAddr.Sheet);
++    ScDPObject* pObj = GetDPObject();
++    if (!pObj)
++        throw RuntimeException();
++
++    pObj->GetPositionData(aAddr2, aPosData);
++    return aPosData;
++}
++
++void SAL_CALL ScDataPilotTableObj::insertDrillDownSheet(const CellAddress& aAddr)
++    throw (RuntimeException)
++{
++    ScUnoGuard aGuard;
++    ScDPObject* pDPObj = GetDPObject();
++    if (!pDPObj)
++        throw RuntimeException();
++
++    Sequence<DataPilotFieldFilter> aFilters;
++    pDPObj->GetDataFieldPositionData(
++        ScAddress(aAddr.Column, aAddr.Row, aAddr.Sheet), aFilters);
++    GetDocShell()->GetBestViewShell()->ShowDataPilotSourceData(*pDPObj, aFilters);
++}
++
++CellRangeAddress SAL_CALL ScDataPilotTableObj::getOutputRangeByType( sal_Int32 nType )
++    throw (IllegalArgumentException, RuntimeException)
++{
++    ScUnoGuard aGuard;
++    if (nType < 0 || nType > ::com::sun::star::sheet::DataPilotOutputRangeType::RESULT)
++        throw IllegalArgumentException();
++
++    table::CellRangeAddress aRet;
++    ScDPObject* pDPObj = lcl_GetDPObject(GetDocShell(), nTab, aName);
++    if (!pDPObj)
++        return aRet;
++
++    const ScRange aRange = pDPObj->GetOutputRangeByType(nType);
++    aRet.Sheet       = aRange.aStart.Tab();
++    aRet.StartColumn = aRange.aStart.Col();
++    aRet.StartRow    = aRange.aStart.Row();
++    aRet.EndColumn   = aRange.aEnd.Col();
++    aRet.EndRow      = aRange.aEnd.Row();
++
++    return aRet;
++}
++
+ //------------------------------------------------------------------------
+ 
+ ScDataPilotDescriptor::ScDataPilotDescriptor(ScDocShell* pDocSh) :
+Index: sc/source/ui/view/cellsh1.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/cellsh1.cxx,v
+retrieving revision 1.49
+retrieving revision 1.46.172.5
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.49 -r1.46.172.5
+--- sc/source/ui/view/cellsh1.cxx	29 Jan 2008 15:48:29 -0000	1.49
++++ sc/source/ui/view/cellsh1.cxx	21 Apr 2008 03:07:58 -0000	1.46.172.5
+@@ -975,7 +975,7 @@
+                                     GetViewData()->GetCurY(), GetViewData()->GetTabNo() );
+                 if ( pDPObj )
+                 {
+-                    std::vector<sheet::DataPilotFieldFilter> aFilters;
++                    Sequence<sheet::DataPilotFieldFilter> aFilters;
+                     USHORT nOrientation;
+                     if ( pTabViewShell->HasSelectionForDrillDown( nOrientation ) )
+                     {
+@@ -992,9 +992,9 @@
+                         }
+                     }
+                     else if ( !pDPObj->IsServiceData() &&
+-                               pDPObj->GetDataFieldPositionData( aFilters,
+-                                        ScAddress( GetViewData()->GetCurX(), GetViewData()->GetCurY(),
+-                                                   GetViewData()->GetTabNo() ) ) )
++                               pDPObj->GetDataFieldPositionData( 
++                                   ScAddress( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() ),
++                                   aFilters ) )
+                         pTabViewShell->ShowDataPilotSourceData( *pDPObj, aFilters );
+                     else
+                         pTabViewShell->SetDataPilotDetails( TRUE );
+Index: sc/source/ui/view/dbfunc3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/dbfunc3.cxx,v
+retrieving revision 1.16
+retrieving revision 1.13.202.7
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.16 -r1.13.202.7
+--- sc/source/ui/view/dbfunc3.cxx	19 Feb 2008 15:34:47 -0000	1.16
++++ sc/source/ui/view/dbfunc3.cxx	25 Feb 2008 14:47:44 -0000	1.13.202.7
+@@ -40,6 +40,7 @@
+ 
+ // INCLUDE ---------------------------------------------------------------
+ 
++#include "dbfunc.hxx"
+ #include "scitems.hxx"
+ #include <sfx2/bindings.hxx>
+ #include <vcl/svapp.hxx>
+@@ -53,15 +54,15 @@
+ #include <com/sun/star/sheet/MemberResultFlags.hpp>
+ 
+ #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
++#include <com/sun/star/sheet/DataPilotTableHeaderData.hpp>
+ #include <com/sun/star/sheet/MemberResultFlags.hpp>
+-#ifndef _COM_SUN_STAR_SHEET_DATAPILOTFIELDGROUPBY_HPP_
+ #include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp>
+-#endif
+ #include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
++#include <com/sun/star/sheet/XDrillDownDataSupplier.hpp>
++#include <com/sun/star/sheet/XDimensionsSupplier.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++#include <com/sun/star/container/XNameAccess.hpp>
+ 
+-#include <hash_set>
+-
+-#include "dbfunc.hxx"
+ #include "global.hxx"
+ #include "globstr.hrc"
+ #include "sc.hrc"
+@@ -81,8 +82,21 @@
+ #include "dpoutput.hxx"
+ #include "dptabsrc.hxx"
+ #include "editable.hxx"
++#include "docpool.hxx"
++#include "patattr.hxx"
++#include "unonames.hxx"
++#include "cell.hxx"
++
++#include <hash_set>
++#include <memory>
+ 
+ using namespace com::sun::star;
++using ::com::sun::star::uno::Any;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Reference;
++using ::com::sun::star::uno::UNO_QUERY;
++using ::com::sun::star::beans::XPropertySet;
++using ::std::auto_ptr;
+ 
+ // STATIC DATA -----------------------------------------------------------
+ 
+@@ -719,22 +733,21 @@
+         for (SCROW nRow=nStartRow; nRow<=nEndRow && bContinue; nRow++)
+             for (SCCOL nCol=nStartCol; nCol<=nEndCol && bContinue; nCol++)
+             {
+-                ScDPPositionData aData;
+-                pDPObj->GetPositionData( aData, ScAddress( nCol, nRow, nTab ) );
+-
+-                if ( aData.nDimension < 0 )
++                sheet::DataPilotTableHeaderData aData;
++                pDPObj->GetHeaderPositionData(ScAddress(nCol, nRow, nTab), aData);
++                if ( aData.Dimension < 0 )
+                     bContinue = FALSE;              // not part of any dimension
+                 else
+                 {
+                     if ( nStartDimension < 0 )      // first member?
+                     {
+-                        nStartDimension = aData.nDimension;
+-                        nStartHierarchy = aData.nHierarchy;
+-                        nStartLevel     = aData.nLevel;
+-                    }
+-                    if ( aData.nDimension != nStartDimension ||
+-                         aData.nHierarchy != nStartHierarchy ||
+-                         aData.nLevel     != nStartLevel )
++                        nStartDimension = aData.Dimension;
++                        nStartHierarchy = aData.Hierarchy;
++                        nStartLevel     = aData.Level;
++                    }
++                    if ( aData.Dimension != nStartDimension ||
++                         aData.Hierarchy != nStartHierarchy ||
++                         aData.Level     != nStartLevel )
+                     {
+                         bContinue = FALSE;          // cannot mix dimensions
+                     }
+@@ -743,9 +756,9 @@
+                 {
+                     // accept any part of a member description, also subtotals,
+                     // but don't stop if empty parts are contained
+-                    if ( aData.nFlags & sheet::MemberResultFlags::HASMEMBER )
++                    if ( aData.Flags & sheet::MemberResultFlags::HASMEMBER )
+                     {
+-                        StrData* pNew = new StrData( aData.aMemberName );
++                        StrData* pNew = new StrData( aData.MemberName );
+                         if ( !rEntries.Insert( pNew ) )
+                             delete pNew;
+                     }
+@@ -1422,16 +1435,16 @@
+             // renaming a group (item)?
+             // allow only on the item name itself - not on empty cells, not on subtotals
+ 
+-            ScDPPositionData aPosData;
+-            pDPObj->GetPositionData( aPosData, rPos );
+-            if ( ( aPosData.nFlags & sheet::MemberResultFlags::HASMEMBER ) &&
+-                 ! ( aPosData.nFlags & sheet::MemberResultFlags::SUBTOTAL ) &&
++            sheet::DataPilotTableHeaderData aPosData;
++            pDPObj->GetHeaderPositionData(rPos, aPosData);
++            if ( ( aPosData.Flags & sheet::MemberResultFlags::HASMEMBER ) &&
++                 ! ( aPosData.Flags & sheet::MemberResultFlags::SUBTOTAL ) &&
+                  aOldText.Len() )
+             {
+                 if ( aData.GetExistingDimensionData() )
+                 {
+                     BOOL bIsDataLayout;
+-                    String aDimName = pDPObj->GetDimName( aPosData.nDimension, bIsDataLayout );
++                    String aDimName = pDPObj->GetDimName( aPosData.Dimension, bIsDataLayout );
+ 
+                     ScDPDimensionSaveData* pDimData = aData.GetDimensionData();
+                     ScDPSaveGroupDimension* pGroupDim = pDimData->GetNamedGroupDimAcc( aDimName );
+@@ -1505,26 +1518,26 @@
+     ScDPObject* pDPObj = pDoc->GetDPAtCursor( rSource.aStart.Col(), rSource.aStart.Row(), rSource.aStart.Tab() );
+     if ( pDPObj && pDPObj == pDoc->GetDPAtCursor( rDest.Col(), rDest.Row(), rDest.Tab() ) )
+     {
+-        ScDPPositionData aDestData;
+-        pDPObj->GetPositionData( aDestData, rDest );
+-        bool bValid = ( aDestData.nDimension >= 0 );        // dropping onto a field
++        sheet::DataPilotTableHeaderData aDestData;
++        pDPObj->GetHeaderPositionData( rDest, aDestData );
++        bool bValid = ( aDestData.Dimension >= 0 );        // dropping onto a field
+ 
+         // look through the source range
+-        std::hash_set< String, ScStringHashCode, std::equal_to<String> > aMembersSet;   // for lookup
+-        std::vector<String> aMembersVector;         // members in original order, for inserting
++        std::hash_set< rtl::OUString, rtl::OUStringHash, std::equal_to<rtl::OUString> > aMembersSet;   // for lookup
++        std::vector< rtl::OUString > aMembersVector;  // members in original order, for inserting
+         aMembersVector.reserve( std::max( static_cast<SCSIZE>( rSource.aEnd.Col() - rSource.aStart.Col() + 1 ),
+                                           static_cast<SCSIZE>( rSource.aEnd.Row() - rSource.aStart.Row() + 1 ) ) );
+         for (SCROW nRow = rSource.aStart.Row(); bValid && nRow <= rSource.aEnd.Row(); ++nRow )
+             for (SCCOL nCol = rSource.aStart.Col(); bValid && nCol <= rSource.aEnd.Col(); ++nCol )
+             {
+-                ScDPPositionData aSourceData;
+-                pDPObj->GetPositionData( aSourceData, ScAddress( nCol, nRow, rSource.aStart.Tab() ) );
+-                if ( aSourceData.nDimension == aDestData.nDimension && aSourceData.aMemberName.Len() )
++                sheet::DataPilotTableHeaderData aSourceData;
++                pDPObj->GetHeaderPositionData( ScAddress( nCol, nRow, rSource.aStart.Tab() ), aSourceData );
++                if ( aSourceData.Dimension == aDestData.Dimension && aSourceData.MemberName.getLength() )
+                 {
+-                    if ( aMembersSet.find( aSourceData.aMemberName ) == aMembersSet.end() )
++                    if ( aMembersSet.find( aSourceData.MemberName ) == aMembersSet.end() )
+                     {
+-                        aMembersSet.insert( aSourceData.aMemberName );
+-                        aMembersVector.push_back( aSourceData.aMemberName );
++                        aMembersSet.insert( aSourceData.MemberName );
++                        aMembersVector.push_back( aSourceData.MemberName );
+                     }
+                     // duplicates are ignored
+                 }
+@@ -1535,7 +1548,7 @@
+         if ( bValid )
+         {
+             BOOL bIsDataLayout;
+-            String aDimName = pDPObj->GetDimName( aDestData.nDimension, bIsDataLayout );
++            String aDimName = pDPObj->GetDimName( aDestData.Dimension, bIsDataLayout );
+             if ( !bIsDataLayout )
+             {
+                 ScDPSaveData aData( *pDPObj->GetSaveData() );
+@@ -1543,7 +1556,7 @@
+ 
+                 // get all member names in source order
+                 uno::Sequence<rtl::OUString> aMemberNames;
+-                pDPObj->GetMembers( aDestData.nDimension, aMemberNames );
++                pDPObj->GetMembers( aDestData.Dimension, aMemberNames );
+ 
+                 bool bInserted = false;
+ 
+@@ -1552,10 +1565,10 @@
+                 {
+                     String aMemberStr( aMemberNames[nMemberPos] );
+ 
+-                    if ( !bInserted && aMemberStr == aDestData.aMemberName )
++                    if ( !bInserted && aMemberNames[nMemberPos] == aDestData.MemberName )
+                     {
+                         // insert dragged items before this item
+-                        for ( std::vector<String>::const_iterator aIter = aMembersVector.begin();
++                        for ( std::vector<rtl::OUString>::const_iterator aIter = aMembersVector.begin();
+                               aIter != aMembersVector.end(); ++aIter )
+                             lcl_MoveToEnd( *pDim, *aIter );
+                         bInserted = true;
+@@ -1566,7 +1579,7 @@
+                 }
+                 // insert dragged item at end if dest wasn't found (for example, empty)
+                 if ( !bInserted )
+-                    for ( std::vector<String>::const_iterator aIter = aMembersVector.begin();
++                    for ( std::vector<rtl::OUString>::const_iterator aIter = aMembersVector.begin();
+                           aIter != aMembersVector.end(); ++aIter )
+                         lcl_MoveToEnd( *pDim, *aIter );
+ 
+@@ -1721,19 +1734,62 @@
+     }
+ }
+ 
+-void ScDBFunc::ShowDataPilotSourceData( ScDPObject& rDPObj, const std::vector<sheet::DataPilotFieldFilter>& rFilters )
++void ScDBFunc::ShowDataPilotSourceData( ScDPObject& rDPObj, const Sequence<sheet::DataPilotFieldFilter>& rFilters )
+ {
+-    uno::Reference<sheet::XDimensionsSupplier> xSource = rDPObj.GetSource();
+-    ScDPSource* pTabSource = dynamic_cast<ScDPSource*>(xSource.get());
+-    DBG_ASSERT( pTabSource, "can't get ScDPSource" );
+-    if ( pTabSource )
+-    {
+-        // output into clipboard document (for easy undo)
++    Reference<sheet::XDimensionsSupplier> xDimSupplier = rDPObj.GetSource();
++    Reference<container::XNameAccess> xDims = xDimSupplier->getDimensions();
++    Reference<sheet::XDrillDownDataSupplier> xDDSupplier(xDimSupplier, UNO_QUERY);
++    if (!xDDSupplier.is())
++        return;
++
++    Sequence< Sequence<Any> > aTabData = xDDSupplier->getDrillDownData(rFilters);
++    sal_Int32 nRowSize = aTabData.getLength();
++    if (nRowSize <= 1)
++        // There is no data to show.  Bail out.
++        return;
++
++    sal_Int32 nColSize = aTabData[0].getLength();
++
+         ScDocument* pDoc = GetViewData()->GetDocument();
+         SCTAB nNewTab = GetViewData()->GetTabNo();
+-        ScDocument* pInsDoc = new ScDocument( SCDOCMODE_CLIP );
++
++    auto_ptr<ScDocument> pInsDoc(new ScDocument(SCDOCMODE_CLIP));
+         pInsDoc->ResetClip( pDoc, nNewTab );
+-        pTabSource->WriteDrillDownData( pInsDoc, ScAddress( 0, 0, nNewTab ), rFilters );
++    for (sal_Int32 nRow = 0; nRow < nRowSize; ++nRow)
++    {
++        for (sal_Int32 nCol = 0; nCol < nColSize; ++nCol)
++        {
++            const Any& rAny = aTabData[nRow][nCol];
++            rtl::OUString aStr;
++            double fVal;
++            if (rAny >>= aStr)
++                pInsDoc->PutCell( ScAddress(nCol, nRow, nNewTab), new ScStringCell(String(aStr)) );
++            else if (rAny >>= fVal)
++                pInsDoc->SetValue(nCol, nRow, nNewTab, fVal);
++        }
++    }
++
++    // set number format (important for dates)
++    for (sal_Int32 nCol = 0; nCol < nColSize; ++nCol)
++    {
++        rtl::OUString aStr;
++        if (!(aTabData[0][nCol] >>= aStr))
++            continue;
++
++        Reference<XPropertySet> xPropSet(xDims->getByName(aStr), UNO_QUERY);
++        if (!xPropSet.is())
++            continue;
++
++        Any any = xPropSet->getPropertyValue( rtl::OUString::createFromAscii(SC_UNO_NUMBERFO) );
++        sal_Int32 nNumFmt = 0;
++        if (!(any >>= nNumFmt))
++            continue;
++
++        ScPatternAttr aPattern( pInsDoc->GetPool() );
++        aPattern.GetItemSet().Put( SfxUInt32Item(ATTR_VALUE_FORMAT, static_cast<UINT32>(nNumFmt)) );
++        pInsDoc->ApplyPatternAreaTab(nCol, 1, nCol, nRowSize-1, nNewTab, aPattern);
++    }
++
+         SCCOL nEndCol = 0;
+         SCROW nEndRow = 0;
+         pInsDoc->GetCellArea( nNewTab, nEndCol, nEndRow );
+@@ -1743,15 +1799,12 @@
+         String aUndo = ScGlobal::GetRscString( STR_UNDO_DOOUTLINE );
+         pMgr->EnterListAction( aUndo, aUndo );
+ 
+-        // insert new sheet and paste result
+         String aNewTabName;
+         pDoc->CreateValidTabName(aNewTabName);
+-        if ( InsertTable( aNewTabName, nNewTab ) )
+-            PasteFromClip( IDF_ALL, pInsDoc );
++    if ( InsertTable(aNewTabName, nNewTab) )
++        PasteFromClip( IDF_ALL, pInsDoc.get() );
+ 
+         pMgr->LeaveListAction();
+-        delete pInsDoc;
+-    }
+ }
+ 
+ //
+Index: sc/source/ui/view/gridwin.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/gridwin.cxx,v
+retrieving revision 1.92
+retrieving revision 1.85.36.11
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.92 -r1.85.36.11
+--- sc/source/ui/view/gridwin.cxx	6 Mar 2008 16:20:33 -0000	1.92
++++ sc/source/ui/view/gridwin.cxx	21 Apr 2008 03:07:59 -0000	1.85.36.11
+@@ -93,6 +93,10 @@
+ 
+ #include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
+ #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
++#include <com/sun/star/sheet/DataPilotTableHeaderData.hpp>
++#include <com/sun/star/sheet/DataPilotTableResultData.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionData.hpp>
++#include <com/sun/star/sheet/DataPilotTablePositionType.hpp>
+ #include <com/sun/star/sheet/MemberResultFlags.hpp>
+ #include <com/sun/star/awt/KeyModifier.hpp>
+ #include <com/sun/star/awt/MouseButton.hpp>
+@@ -164,6 +168,8 @@
+ #endif
+ 
+ using namespace com::sun::star;
++using ::com::sun::star::uno::Sequence;
++using ::com::sun::star::uno::Any;
+ 
+ const BYTE SC_NESTEDBUTTON_NONE = 0;
+ const BYTE SC_NESTEDBUTTON_DOWN = 1;
+@@ -2030,11 +2036,13 @@
+ 		if ( pDPObj && pDPObj->GetSaveData()->GetDrillDown() )
+ 		{
+ 			ScAddress aCellPos( nPosX, nPosY, nTab );
+-			ScDPPositionData aData;
+-			pDPObj->GetPositionData( aData, aCellPos );
+ 
+-			if ( ( aData.nFlags & sheet::MemberResultFlags::HASMEMBER ) &&
+-				 ! ( aData.nFlags & sheet::MemberResultFlags::SUBTOTAL ) )
++            // Check for header drill-down first.
++            sheet::DataPilotTableHeaderData aData;
++            pDPObj->GetHeaderPositionData(aCellPos, aData);
++
++            if ( ( aData.Flags & sheet::MemberResultFlags::HASMEMBER ) &&
++                 ! ( aData.Flags & sheet::MemberResultFlags::SUBTOTAL ) )
+ 			{
+                 USHORT nDummy;
+                 if ( pView->HasSelectionForDrillDown( nDummy ) )
+@@ -2056,8 +2064,8 @@
+             {
+                 // Check if the data area is double-clicked.
+ 
+-                std::vector<sheet::DataPilotFieldFilter> aFilters;
+-                if ( !pDPObj->IsServiceData() && pDPObj->GetDataFieldPositionData( aFilters, aCellPos ) )
++                Sequence<sheet::DataPilotFieldFilter> aFilters;
++                if ( pDPObj->GetDataFieldPositionData(aCellPos, aFilters) )
+                     pViewData->GetView()->ShowDataPilotSourceData( *pDPObj, aFilters );
+                 else
+                     Sound::Beep();  // nothing to expand/collapse/show
+@@ -3240,24 +3248,24 @@
+             bool bDPSort = false;
+             if ( pThisDoc->GetDPAtCursor( nSourceStartX, nSourceStartY, aSourceRange.aStart.Tab() ) == pDPObj )
+             {
+-                ScDPPositionData aDestData;
+-                pDPObj->GetPositionData( aDestData, ScAddress(nNewDragX, nNewDragY, nTab) );
+-                bool bValid = ( aDestData.nDimension >= 0 );        // dropping onto a field
++                sheet::DataPilotTableHeaderData aDestData;
++                pDPObj->GetHeaderPositionData( ScAddress(nNewDragX, nNewDragY, nTab), aDestData );
++                bool bValid = ( aDestData.Dimension >= 0 );        // dropping onto a field
+ 
+                 // look through the source range
+                 for (SCROW nRow = aSourceRange.aStart.Row(); bValid && nRow <= aSourceRange.aEnd.Row(); ++nRow )
+                     for (SCCOL nCol = aSourceRange.aStart.Col(); bValid && nCol <= aSourceRange.aEnd.Col(); ++nCol )
+                     {
+-                        ScDPPositionData aSourceData;
+-                        pDPObj->GetPositionData( aSourceData, ScAddress( nCol, nRow, aSourceRange.aStart.Tab() ) );
+-                        if ( aSourceData.nDimension != aDestData.nDimension || !aSourceData.aMemberName.Len() )
++                        sheet::DataPilotTableHeaderData aSourceData;
++                        pDPObj->GetHeaderPositionData( ScAddress( nCol, nRow, aSourceRange.aStart.Tab() ), aSourceData );
++                        if ( aSourceData.Dimension != aDestData.Dimension || !aSourceData.MemberName.getLength() )
+                             bValid = false;     // empty (subtotal) or different field
+                     }
+ 
+                 if ( bValid )
+                 {
+                     BOOL bIsDataLayout;
+-                    String aDimName = pDPObj->GetDimName( aDestData.nDimension, bIsDataLayout );
++                    String aDimName = pDPObj->GetDimName( aDestData.Dimension, bIsDataLayout );
+                     const ScDPSaveDimension* pDim = pDPObj->GetSaveData()->GetExistingDimensionByName( aDimName );
+                     if ( pDim )
+                     {
+Index: sc/xml/ScDataPilotTableObj.xml
+===================================================================
+RCS file: /cvs/sc/sc/xml/ScDataPilotTableObj.xml,v
+retrieving revision 1.5
+retrieving revision 1.5.50.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.5 -r1.5.50.1
+--- sc/xml/ScDataPilotTableObj.xml	23 Oct 2007 14:56:07 -0000	1.5
++++ sc/xml/ScDataPilotTableObj.xml	17 Apr 2008 20:34:29 -0000	1.5.50.1
+@@ -78,6 +78,7 @@
+         <type>com.sun.star.sheet.XConsolidationDescriptor</type>
+         <type>com.sun.star.sheet.XDataPilotDescriptor</type>
+         <type>com.sun.star.sheet.XDataPilotTable</type>
++        <type>com.sun.star.sheet.XDataPilotTable2</type>
+         <type>com.sun.star.sheet.XDataPilotTables</type>
+         <type>com.sun.star.sheet.XDatabaseRange</type>
+         <type>com.sun.star.sheet.XDatabaseRanges</type>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-pipe.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-pipe.diff
@@ -0,0 +1,904 @@
+diff --git a/configmgr/inc/pch/precompiled_configmgr.hxx b/configmgr/inc/pch/precompiled_configmgr.hxx
+index 03e1410..d67a23b 100644
+--- configmgr/inc/pch/precompiled_configmgr.hxx
++++ configmgr/inc/pch/precompiled_configmgr.hxx
+@@ -242,7 +242,7 @@
+ 
+ 
+ #include "osl/conditn.hxx"
+-#include "vos/pipe.hxx"
++#include "osl/pipe.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/socket.hxx"
+diff --git a/configmgr/workben/local_io/simpletest.cxx b/configmgr/workben/local_io/simpletest.cxx
+index 182630e..d26d687 100644
+--- configmgr/workben/local_io/simpletest.cxx
++++ configmgr/workben/local_io/simpletest.cxx
+@@ -110,7 +110,7 @@
+ #include <osl/thread.hxx>
+ #endif
+ 
+-#include <vos/pipe.hxx>
++#include <osl/pipe.hxx>
+ 
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+diff --git a/configmgr/workben/local_io/xmlimport.cxx b/configmgr/workben/local_io/xmlimport.cxx
+index b379082..0cc1501 100644
+--- configmgr/workben/local_io/xmlimport.cxx
++++ configmgr/workben/local_io/xmlimport.cxx
+@@ -109,7 +109,7 @@
+ #include <osl/thread.hxx>
+ #endif
+ 
+-#include <vos/pipe.hxx>
++#include <osl/pipe.hxx>
+ 
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index b08b8de..fd52a42 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -323,7 +323,6 @@
+ #define DEFINE_CONST_UNICODE(CONSTASCII)        UniString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
+ #define U2S(STRING)                                ::rtl::OUStringToOString(STRING, RTL_TEXTENCODING_UTF8)
+ 
+-using namespace vos;
+ using rtl::OUString;
+ using rtl::OUStringBuffer;
+ 
+diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
+index e621e73..7460800 100644
+--- desktop/source/app/officeipcthread.cxx
++++ desktop/source/app/officeipcthread.cxx
+@@ -81,8 +81,6 @@
+ #include <comphelper/processfactory.hxx>
+ #include <com/sun/star/uri/XExternalUriReferenceTranslator.hpp>
+ 
+-
+-using namespace vos;
+ using namespace rtl;
+ using namespace desktop;
+ using namespace ::com::sun::star::uno;
+@@ -377,20 +375,20 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
+ 	{
+         osl::Security &rSecurity = Security::get();
+ 		// Try to create pipe
+-		if ( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Create, rSecurity ))
++		if ( pThread->maPipe.create( pThread->maPipeIdent.getStr(), osl_Pipe_CREATE, rSecurity ))
+ 		{
+ 			// Pipe created
+ 			nPipeMode = PIPEMODE_CREATED;
+ 		}
+-		else if( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Open, rSecurity )) // Creation not successfull, now we try to connect
++		else if( pThread->maPipe.create( pThread->maPipeIdent.getStr(), osl_Pipe_OPEN, rSecurity )) // Creation not successfull, now we try to connect
+ 		{
+ 			// Pipe connected to first office
+ 			nPipeMode = PIPEMODE_CONNECTED;
+ 		}
+ 		else
+ 		{
+-			OPipe::TPipeError eReason = pThread->maPipe.getError();
+-			if ((eReason == OPipe::E_ConnectionRefused) || (eReason == OPipe::E_invalidError))
++			oslPipeError eReason = pThread->maPipe.getError();
++			if ((eReason == osl_Pipe_E_ConnectionRefused) || (eReason == osl_Pipe_E_invalidError))
+ 				return IPC_STATUS_BOOTSTRAP_ERROR;
+ 
+ 			// Wait for second office to be ready
+@@ -508,7 +506,7 @@ void OfficeIPCThread::DisableOfficeIPCThread()
+ 		// send thread a termination message
+ 		// this is done so the subsequent join will not hang
+ 		// because the thread hangs in accept of pipe
+-        OPipe Pipe( pOfficeIPCThread->maPipeIdent, OPipe::TOption_Open, Security::get() );
++		osl::StreamPipe Pipe( pOfficeIPCThread->maPipeIdent, osl_Pipe_OPEN, Security::get() );
+ 		//Pipe.send( TERMINATION_SEQUENCE, TERMINATION_LENGTH );
+         if (Pipe.isValid())
+         {
+@@ -570,11 +568,9 @@ void SAL_CALL OfficeIPCThread::run()
+ {
+     do
+ 	{
+-        OPipe::TPipeError
+-			nError = maPipe.accept( maStreamPipe );
+-
++        oslPipeError nError = maPipe.accept( maStreamPipe );
+ 
+-		if( nError == OStreamPipe::E_None )
++		if( nError == osl_Pipe_E_None )
+ 		{
+ 
+             // #111143# and others:
+diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
+index 65cc8b5..73a12e5 100644
+--- desktop/source/app/officeipcthread.hxx
++++ desktop/source/app/officeipcthread.hxx
+@@ -43,8 +43,8 @@
+ #include <com/sun/star/frame/XTerminateListener.hpp>
+ #endif
+ 
+-#ifndef _VOS_PIPE_HXX_
+-#include <vos/pipe.hxx>
++#ifndef _OSL_PIPE_HXX_
++#include <osl/pipe.hxx>
+ #endif
+ #ifndef _OSL_SECURITY_HXX_
+ #include <osl/security.hxx>
+@@ -93,8 +93,8 @@ class OfficeIPCThread : public osl::Thread
+ 	static OfficeIPCThread*		pGlobalOfficeIPCThread;
+ 	static ::osl::Mutex*		pOfficeIPCThreadMutex;
+ 
+-    vos::OPipe					maPipe;
+-    vos::OStreamPipe			maStreamPipe;
++    osl::Pipe					maPipe;
++    osl::StreamPipe				maStreamPipe;
+ 	rtl::OUString				maPipeIdent;
+ 	sal_Bool					mbBlockRequests;
+ 	int							mnPendingRequests;
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 8be503a..49b59cb 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -548,7 +548,7 @@
+ #include "sal/macros.h"
+ #include "osl/module.hxx"
+ #include "osl/mutex.hxx"
+-#include "vos/pipe.hxx"
++#include "osl/pipe.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "osl/thread.hxx"
+diff --git a/extensions/source/plugin/inc/plugin/unx/mediator.hxx b/extensions/source/plugin/inc/plugin/unx/mediator.hxx
+index 4a847e3..96b3304 100644
+--- extensions/source/plugin/inc/plugin/unx/mediator.hxx
++++ extensions/source/plugin/inc/plugin/unx/mediator.hxx
+@@ -47,8 +47,8 @@
+ #ifndef _LINK_HXX
+ #include <tools/link.hxx>
+ #endif
+-#ifndef _VOS_PIPE_HXX_
+-#include <vos/pipe.hxx>
++#ifndef _OSL_PIPE_HXX_
++#include <osl/pipe.hxx>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+diff --git a/vos/inc/vos/pipe.hxx b/vos/inc/vos/pipe.hxx
+deleted file mode 100644
+index 2982ae2..0000000
+--- vos/inc/vos/pipe.hxx
++++ /dev/null
+@@ -1,278 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: pipe.hxx,v $
+- *
+- *  $Revision: 1.8 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:37:52 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_PIPE_HXX_
+-#define _VOS_PIPE_HXX_
+-
+-#ifndef _OSL_PIPE_H_
+-#   include <osl/pipe.h>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#   include <vos/object.hxx>
+-#endif
+-#ifndef _VOS_ISTREAM_HXX_
+-#   include <vos/istream.hxx>
+-#endif
+-#ifndef _VOS_REFERMCE_HXX_
+-#   include <vos/refernce.hxx>
+-#endif
+-#ifndef _VOS_REFOBJ_HXX_
+-#   include <vos/refobj.hxx>
+-#endif
+-#ifndef _OSL_SECURITY_HXX_
+-#   include <osl/security.hxx>
+-#endif
+-#ifndef _RTL_USTRING_HXX_
+-#   include <rtl/ustring.hxx>
+-#endif
+-
+-
+-namespace vos
+-{
+-
+-class OStreamPipe;
+-
+-/** Represents a pipe.
+-*/
+-class OPipe : public vos::OReference,
+-              public vos::OObject
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OPipe);
+-
+-public:
+-    /*
+-        Represents pipe-options
+-    */
+-    enum TPipeOption {
+-        TOption_Open   = osl_Pipe_OPEN,         /* open existing pipe */
+-        TOption_Create = osl_Pipe_CREATE        /* create pipe and open it, */
+-                                                /*  fails if already existst */
+-    };
+-
+-    enum TPipeError {
+-        E_None              = osl_Pipe_E_None,              /* no error */
+-        E_NotFound          = osl_Pipe_E_NotFound,          /* Pipe could not be found */
+-        E_AlreadyExists     = osl_Pipe_E_AlreadyExists,     /* Pipe already exists */
+-        E_NoProtocol        = osl_Pipe_E_NoProtocol,        /* Protocol not available */
+-        E_NetworkReset      = osl_Pipe_E_NetworkReset,      /* Network dropped connection because of reset */
+-        E_ConnectionAbort   = osl_Pipe_E_ConnectionAbort,   /* Software caused connection abort */
+-        E_ConnectionReset   = osl_Pipe_E_ConnectionReset,   /* Connection reset by peer */
+-        E_NoBufferSpace     = osl_Pipe_E_NoBufferSpace,     /* No buffer space available */
+-        E_TimedOut          = osl_Pipe_E_TimedOut,          /* Connection timed out */
+-        E_ConnectionRefused = osl_Pipe_E_ConnectionRefused, /* Connection refused */
+-        E_invalidError      = osl_Pipe_E_invalidError       /* unmapped error */
+-    };
+-
+-protected:
+-    typedef ORefObj<oslPipe> PipeRef;
+-
+-    PipeRef* m_pPipeRef;
+-
+-public:
+-
+-    /** Does not create a pipe. Use assignment operator to
+-        make this a useable pipe.
+-    */
+-    OPipe();
+-
+-    /** Creates a pipe.
+-        @param strName
+-        @param Options
+-    */
+-    OPipe(const ::rtl::OUString& strName, TPipeOption Options = TOption_Open);
+-
+-    /** Creates a pipe.
+-        @param strName
+-        @param Options
+-        @param Security
+-    */
+-    OPipe(const ::rtl::OUString& strName, TPipeOption Options,
+-          const osl::Security& rSecurity);
+-
+-    /** Copy constructor.
+-    */
+-    OPipe(const OPipe& pipe);
+-
+-    /** Creates pipe as wrapper around the underlying oslPipe.
+-        @param Pipe
+-    */
+-    OPipe(oslPipe Pipe);
+-
+-    /** Destructor. Destroys the underlying oslPipe.
+-    */
+-    virtual ~OPipe();
+-
+-    /** Create a pipe with the given attributes.
+-        If socket was already created, the old one will be discarded.
+-        @param strName
+-        @param Options
+-        @return True if socket was successfully created.
+-    */
+-    sal_Bool SAL_CALL create(const ::rtl::OUString& strName, TPipeOption Options = TOption_Open);
+-
+-    /** Create a pipe with the given attributes.
+-        If socket was already created, the old one will be discarded.
+-        @param strName
+-        @param Options
+-        @param Security
+-        @return True if socket was successfully created.
+-    */
+-    sal_Bool SAL_CALL create(const ::rtl::OUString& strName, TPipeOption Options,
+-                   const osl::Security& rSecurity);
+-
+-    /** Assignment operator. If pipe was already created, the old one will
+-        be discarded.
+-    */
+-    OPipe& SAL_CALL operator= (const OPipe& pipe);
+-
+-    /** Allow cast to underlying oslPipe.
+-    */
+-    SAL_CALL operator oslPipe() const;
+-
+-    /** Checks if the pipe is valid.
+-        @return True if the object represents a valid pipe.
+-    */
+-    sal_Bool SAL_CALL isValid() const;
+-
+-    sal_Bool SAL_CALL operator==( const OPipe& rPipe )
+-    {
+-        return m_pPipeRef == rPipe.m_pPipeRef;
+-    }
+-
+-    /** Closes the pipe.
+-    */
+-    virtual void SAL_CALL close();
+-
+-    /** Accept connection on an existing pipe
+-    */
+-    TPipeError SAL_CALL accept(OStreamPipe& Connection);
+-
+-    /** Tries to receives BytesToRead data from the connected pipe,
+-
+-        @param pBuffer [out] Points to a buffer that will be filled with the received
+-        data.
+-        @param BytesToRead [in] The number of bytes to read. pBuffer must have at least
+-        this size.
+-        @return the number of received bytes.
+-    */
+-    sal_Int32   SAL_CALL recv(void* pBuffer, sal_uInt32 BytesToRead);
+-
+-    /** Tries to sends BytesToSend data from the connected pipe.
+-
+-        @param pBuffer [in] Points to a buffer that contains the send-data.
+-        @param BytesToSend [in] The number of bytes to send. pBuffer must have at least
+-        this size.
+-        @return the number of transfered bytes.
+-    */
+-    sal_Int32 SAL_CALL send(const void* pBuffer, sal_uInt32 BytesToSend);
+-
+-    /** Delivers a constant decribing the last error for the pipe system.
+-        @return ENONE if no error occured, invalid_PipeError if
+-        an unknown (unmapped) error occured, otherwise an enum describing the
+-        error.
+-    */
+-    TPipeError SAL_CALL getError() const;
+-
+-};
+-
+-/** A pipe to send or receive a stream of data.
+-*/
+-class OStreamPipe : public vos::OPipe,
+-                    public vos::IStream
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OStreamPipe);
+-public:
+-
+-    /** Creates an unattached pipe. You must attach the pipe to an oslPipe
+-        e.g. by using the operator=(oslPipe), before you can use the stream-
+-        functionality of the object.
+-    */
+-    OStreamPipe();
+-
+-    /** Creates pipe as wrapper around the underlying oslPipe.
+-        @param Pipe
+-    */
+-    OStreamPipe(oslPipe Pipe);
+-
+-    /** Copy constructor.
+-        @param Pipe
+-    */
+-    OStreamPipe(const OStreamPipe& Pipe);
+-
+-    /** Destructor. Calls shutdown(readwrite) and close().
+-    */
+-    virtual ~OStreamPipe();
+-
+-    /** Attaches the oslPipe to this object. If the object
+-        already was attached to an oslPipe, the old one will
+-        be closed and destroyed.
+-        @param Pipe.
+-    */
+-    OStreamPipe& SAL_CALL operator=(oslPipe Pipe);
+-
+-    /** Assignment operator
+-    */
+-    OStreamPipe& SAL_CALL operator=(const OPipe& pipe);
+-
+-    /** Retrieves n bytes from the stream and copies them into pBuffer.
+-        The method avoids incomplete reads due to packet boundaries.
+-        @param pBuffer receives the read data.
+-        @param n the number of bytes to read. pBuffer must be large enough
+-        to hold the n bytes!
+-        @return the number of read bytes. The number will only be smaller than
+-        n if an exceptional condition (e.g. connection closed) occurs.
+-    */
+-    virtual sal_Int32 SAL_CALL read(void* pBuffer, sal_uInt32 n) const;
+-
+-    /** Writes n bytes from pBuffer to the stream. The method avoids
+-        incomplete writes due to packet boundaries.
+-        @param pBuffer contains the data to be written.
+-        @param n the number of bytes to write.
+-        @return the number of written bytes. The number will only be smaller than
+-        n if an exceptional condition (e.g. connection closed) occurs.
+-    */
+-    virtual sal_Int32 SAL_CALL write(const void* pBuffer, sal_uInt32 n);
+-
+-    /** Checks if pipe is closed.
+-        @return True if pipe is closed.
+-    */
+-    virtual sal_Bool SAL_CALL isEof() const;
+-};
+-
+-}
+-
+-#endif // _VOS_PIPE_HXX_
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 2c02290..3bf0de4 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -49,8 +49,7 @@ SLOFILES= \
+ 				$(SLO)$/object.obj      \
+ 				$(SLO)$/refernce.obj    \
+ 				$(SLO)$/stream.obj      \
+-				$(SLO)$/timer.obj       \
+-				$(SLO)$/pipe.obj
++				$(SLO)$/timer.obj
+ 
+ 
+ .IF "$(UPDATER)"=="YES"
+@@ -58,8 +57,7 @@ OBJFILES= \
+ 				$(OBJ)$/object.obj      \
+ 				$(OBJ)$/refernce.obj    \
+ 				$(OBJ)$/stream.obj      \
+-				$(OBJ)$/timer.obj       \
+-				$(OBJ)$/pipe.obj
++				$(OBJ)$/timer.obj
+ 
+ .ENDIF
+ 
+diff --git a/vos/source/pipe.cxx b/vos/source/pipe.cxx
+deleted file mode 100644
+index 1669b80..0000000
+--- vos/source/pipe.cxx
++++ /dev/null
+@@ -1,424 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: pipe.cxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:07:03 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <vos/pipe.hxx>
+-#include <osl/diagnose.h>
+-
+-using namespace vos;
+-
+-///////////////////////////////////////////////////////////////////////////////
+-// Pipe
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OPipe, vos), 
+-						VOS_NAMESPACE(OPipe, vos), 
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-/*****************************************************************************/
+-// OPipe()
+-/*****************************************************************************/
+-OPipe::OPipe()
+-{
+-	m_pPipeRef= 0;
+-}
+-
+-/*****************************************************************************/
+-// OPipe()
+-/*****************************************************************************/
+-
+-OPipe::OPipe( const rtl::OUString& strName, TPipeOption Options)
+-{
+-	m_pPipeRef = 
+-		new PipeRef( osl_createPipe(strName.pData, 
+-									(oslPipeOptions)Options, 
+-									NULL) );
+-	
+-	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-	OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
+-}
+-
+-/*****************************************************************************/
+-// OPipe()
+-/*****************************************************************************/
+-
+-OPipe::OPipe( const rtl::OUString& strName,
+-			  TPipeOption Options,
+-			  const osl::Security& rSecurity)
+-{
+-	m_pPipeRef= 
+-		new PipeRef(osl_createPipe(strName.pData, 
+-								   (oslPipeOptions)Options, 
+-								   rSecurity.getHandle()));
+-	
+-	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-	OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
+-}
+-
+-/*****************************************************************************/
+-// OPipe()
+-/*****************************************************************************/
+-OPipe::OPipe(const OPipe& pipe) :
+-OReference(), OObject()
+-{
+-	
+-	OSL_ASSERT(pipe.m_pPipeRef != 0);
+-
+-	m_pPipeRef= pipe.m_pPipeRef;
+-
+-	m_pPipeRef->acquire();
+-}
+-
+-/*****************************************************************************/
+-// OPipe()
+-/*****************************************************************************/
+-OPipe::OPipe(oslPipe Pipe)
+-{
+-	m_pPipeRef = new PipeRef(Pipe);
+-}
+-
+-
+-/*****************************************************************************/
+-// ~OPipe()
+-/*****************************************************************************/
+-OPipe::~OPipe()
+-{
+-	close();
+-}
+-
+-/*****************************************************************************/
+-// create
+-/*****************************************************************************/
+-sal_Bool OPipe::create( const rtl::OUString& strName, TPipeOption Options )
+-{
+-	// if this was a valid pipe, decrease reference
+-	if ((m_pPipeRef) && (m_pPipeRef->release() == 0))
+-	{
+-		osl_releasePipe((*m_pPipeRef)());
+-		delete m_pPipeRef;
+-		m_pPipeRef= 0;
+-	}
+-
+-	m_pPipeRef= 
+-		new PipeRef(osl_createPipe(strName.pData, 
+-								   (oslPipeOptions)Options, 
+-								   NULL));
+-
+-	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-
+-	return (*m_pPipeRef)() != 0;
+-}
+-
+-/*****************************************************************************/
+-// create
+-/*****************************************************************************/
+-sal_Bool OPipe::create( const rtl::OUString& strName,
+-						TPipeOption Options,
+-						const osl::Security& rSecurity ) 
+-{
+-	// if this was a valid pipe, decrease reference
+-	if ((m_pPipeRef) && (m_pPipeRef->release() == 0))
+-	{
+-		osl_releasePipe((*m_pPipeRef)());
+-		delete m_pPipeRef;
+-		m_pPipeRef= 0;
+-	}
+-
+-	m_pPipeRef= 
+-		new PipeRef(osl_createPipe(strName.pData, 
+-								   (oslPipeOptions)Options, 
+-								   rSecurity.getHandle()));
+-
+-	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-
+-	return (*m_pPipeRef)() != 0;
+-}
+-
+-/*****************************************************************************/
+-// operator=
+-/*****************************************************************************/
+-OPipe& OPipe::operator= (const OPipe& pipe)
+-{
+-	OSL_PRECOND(pipe.m_pPipeRef != 0, "OPipe::operator=: tried to assign an empty/invalid pipe\n");
+-
+-	if (m_pPipeRef == pipe.m_pPipeRef)
+-		return *this;
+-
+-	// if this was a valid pipe, decrease reference
+-	if ((m_pPipeRef) && (m_pPipeRef->release() == 0))
+-	{
+-		osl_releasePipe((*m_pPipeRef)());
+-		delete m_pPipeRef;
+-		m_pPipeRef= 0;
+-	}
+-
+-	m_pPipeRef= pipe.m_pPipeRef;
+-
+-	m_pPipeRef->acquire();
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator oslPipe()
+-/*****************************************************************************/
+-OPipe::operator oslPipe() const
+-{
+-	OSL_ASSERT(m_pPipeRef);
+-	return (*m_pPipeRef)();
+-}
+-
+-/*****************************************************************************/
+-// isValid()
+-/*****************************************************************************/
+-sal_Bool OPipe::isValid() const
+-{
+-	return m_pPipeRef != 0 && (*m_pPipeRef)() != 0;
+-}
+-
+-
+-/*****************************************************************************/
+-// close
+-/*****************************************************************************/
+-void OPipe::close()
+-{
+-	if (m_pPipeRef && (m_pPipeRef->release() == 0)) 
+-	{
+-		osl_releasePipe((*m_pPipeRef)());
+-		delete m_pPipeRef;
+-	}
+-	m_pPipeRef= 0;
+-}
+-
+-/*****************************************************************************/
+-// accept
+-/*****************************************************************************/
+-OPipe::TPipeError OPipe::accept(OStreamPipe& Connection)
+-{
+-	if ( isValid() )
+-	{
+-		Connection = osl_acceptPipe((*m_pPipeRef)());
+-		
+-		if(Connection.isValid())
+-			return E_None;
+-	}
+-
+-	return getError();
+-}
+-
+-/*****************************************************************************/
+-// recv
+-/*****************************************************************************/
+-sal_Int32 OPipe::recv(void* pBuffer, sal_uInt32 BytesToRead)
+-{
+-	if ( isValid() )
+-		return osl_receivePipe((*m_pPipeRef)(), 
+-					 		pBuffer, 
+-							BytesToRead);
+-	else
+-		return -1;
+-
+-}
+-
+-/*****************************************************************************/
+-// send
+-/*****************************************************************************/
+-sal_Int32 OPipe::send(const void* pBuffer, sal_uInt32 BytesToSend)
+-{
+-	if ( isValid() )
+-		return osl_sendPipe((*m_pPipeRef)(), 
+-							pBuffer, 
+-							BytesToSend);
+-	else
+-		return -1;
+-}
+-
+-/*****************************************************************************/
+-// getError
+-/*****************************************************************************/
+-OPipe::TPipeError OPipe::getError() const
+-{
+-	if (m_pPipeRef)
+-		return (TPipeError)osl_getLastPipeError((*m_pPipeRef)());
+-	else
+-		return (TPipeError)osl_getLastPipeError(NULL);
+-}
+-
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OStreamPipe, vos), 
+-						VOS_NAMESPACE(OStreamPipe, vos), 
+-						VOS_NAMESPACE(OPipe, vos), 0);
+-
+-
+-
+-/*****************************************************************************/
+-// OStreamPipe
+-/*****************************************************************************/
+-OStreamPipe::OStreamPipe()
+-{
+-}
+-
+-/*****************************************************************************/
+-// OStreamPipe
+-/*****************************************************************************/
+-OStreamPipe::OStreamPipe(oslPipe Pipe) :
+-	OPipe(Pipe)
+-{
+-}
+-
+-/*****************************************************************************/
+-// OStreamPipe
+-// copy constructor
+-/*****************************************************************************/
+-OStreamPipe::OStreamPipe(const OStreamPipe& pipe) :
+-OPipe(), IStream()
+-{
+-	OSL_ASSERT(pipe.m_pPipeRef != 0);
+-
+-	m_pPipeRef= pipe.m_pPipeRef;
+-
+-	m_pPipeRef->acquire();
+-}
+-
+-/*****************************************************************************/
+-// ~OStreamPipe
+-/*****************************************************************************/
+-OStreamPipe::~OStreamPipe()
+-{
+-}
+-
+-/*****************************************************************************/
+-// operator=(oslPipe)
+-/*****************************************************************************/
+-OStreamPipe& OStreamPipe::operator=(oslPipe Pipe)
+-{
+-
+-	// if this was a valid pipe, decrease reference
+-	if (m_pPipeRef && (m_pPipeRef->release() == 0))
+-	{
+-		osl_releasePipe((*m_pPipeRef)());
+-		delete m_pPipeRef;
+-		m_pPipeRef= 0;
+-	}
+-
+-	m_pPipeRef= new PipeRef(Pipe);
+-
+-	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator=OPipe
+-/*****************************************************************************/
+-
+-OStreamPipe& OStreamPipe::operator= (const OPipe& pipe)
+-{
+-	OPipe::operator= ( pipe );
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// read
+-/*****************************************************************************/
+-sal_Int32 OStreamPipe::read(void* pBuffer, sal_uInt32 n) const
+-{
+-	OSL_ASSERT(m_pPipeRef && (*m_pPipeRef)());
+-
+-	/* loop until all desired bytes were read or an error occured */
+-	sal_Int32 BytesRead= 0;
+-	sal_Int32 BytesToRead= n;
+-	while (BytesToRead > 0) 
+-	{
+-		sal_Int32 RetVal;
+-		RetVal= osl_receivePipe((*m_pPipeRef)(), 
+-						 	    pBuffer, 
+-								BytesToRead);
+-
+-		/* error occured? */
+-		if(RetVal <= 0)
+-		{
+-			break;
+-		}
+-
+-		BytesToRead -= RetVal;
+-		BytesRead += RetVal;
+-		pBuffer= (sal_Char*)pBuffer + RetVal;
+-	}
+-
+-	return BytesRead;   
+-}
+-
+-/*****************************************************************************/
+-// write
+-/*****************************************************************************/
+-sal_Int32 OStreamPipe::write(const void* pBuffer, sal_uInt32 n)
+-{
+-	OSL_ASSERT(m_pPipeRef && (*m_pPipeRef)());
+-
+-	/* loop until all desired bytes were send or an error occured */
+-	sal_Int32 BytesSend= 0;
+-	sal_Int32 BytesToSend= n;
+-	while (BytesToSend > 0) 
+-	{
+-		sal_Int32 RetVal;
+-
+-		RetVal= osl_sendPipe((*m_pPipeRef)(), 
+-								pBuffer, 
+-								BytesToSend);
+-
+-		/* error occured? */
+-		if(RetVal <= 0)
+-		{
+-			break;
+-		}
+-
+-		BytesToSend -= RetVal;
+-		BytesSend += RetVal;
+-		pBuffer= (sal_Char*)pBuffer + RetVal;
+-	}
+-
+-	return BytesSend;   
+-}
+-
+-sal_Bool OStreamPipe::isEof() const
+-{
+-	return isValid();
+-}
+-
+-
+-
+-
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ark-default-ExternalMailer.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ark-default-ExternalMailer.diff
@@ -0,0 +1,14 @@
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu.ark	2007-10-19 12:01:42.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu	2007-10-19 12:04:52.000000000 +0200
+@@ -536,6 +536,11 @@
+       </prop>
+     </node>
+   </node>
++  <node oor:name="ExternalMailer">
++    <prop oor:name="Program" oor:type="xs:string">
++      <value>/usr/bin/kmail</value>
++    </prop>
++  </node>
+   <!-- FIXME: This comment is needed to change a checksum or so.
+               Then the updated list of templates paths is read from Common.xcs-->
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-sheet-double-click-rename.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-sheet-double-click-rename.diff
@@ -0,0 +1,14 @@
+--- sc/source/ui/view/tabcont.cxx	2005-03-17 10:55:46.000000000 -0800
++++ sc/source/ui/view/tabcont.cxx	2005-03-17 10:55:10.000000000 -0800
+@@ -173,6 +173,11 @@
+     // mouse button down and up on same page?
+     if( nMouseClickPageId != GetPageId( aPos ) )
+         nMouseClickPageId = TAB_PAGE_NOTFOUND;
++    else if ( rMEvt.GetClicks() == 2 && rMEvt.IsLeft() )
++    {
++        SfxDispatcher* pDispatcher = pViewData->GetViewShell()->GetViewFrame()->GetDispatcher();
++        pDispatcher->Execute( FID_TAB_MENU_RENAME, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
++    }
+ 
+     if( nMouseClickPageId == 0 )
+     {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/split-binfilter-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/split-binfilter-scp2.diff
@@ -0,0 +1,733 @@
+--- scp2/prj/build.lst.old	2006-12-12 17:17:06.000000000 +0100
++++ scp2/prj/build.lst	2007-07-19 13:12:54.000000000 +0200
+@@ -2,6 +2,7 @@ cp    scp2    :    setup_native transex3
+ cp    scp2                        usr1     -    all    cp_mkout NULL
+ cp    scp2\macros                 nmake    -    all    cp_langmacros NULL
+ cp    scp2\source\activex         nmake    -    all    cp_activex cp_langmacros NULL
++cp    scp2\source\binfilter       nmake    -    all    cp_binfilter cp_langmacros NULL
+ cp    scp2\source\calc            nmake    -    all    cp_calc cp_langmacros NULL
+ cp    scp2\source\canvas          nmake    -    all    cp_canvas cp_langmacros NULL
+ cp    scp2\source\crashrep        nmake    -    all    cp_crashrep cp_langmacros NULL
+@@ -26,4 +26,4 @@ cp    scp2\source\winexplorerext  nmake 
+ cp    scp2\source\ure             nmake    -    all    cp_ure cp_langmacros NULL
+ cp    scp2\source\onlineupdate    nmake    -    all    cp_update cp_langmacros NULL
+ cp    scp2\source\ooo_wo_ure      nmake    -    all    cp_ooo_wo_ure cp_langmacros NULL
+-cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
++cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_binfilter cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
+--- scp2/source/binfilter/file_binfilter.scp.old	2007-07-19 13:12:54.000000000 +0200
++++ scp2/source/binfilter/file_binfilter.scp	2007-07-19 13:12:54.000000000 +0200
+@@ -0,0 +1,193 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Chart_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_chart_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Chart_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_chart_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Calc_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_calc_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Calc_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_calc_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Draw_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_draw_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Draw_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_draw_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Global_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_global_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Global_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_global_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Impress_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_impress_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Impress_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_impress_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Math_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_math_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Math_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_math_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Web_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_web_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Web_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_web_bf_filters.xcu";
++End
++
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Writer_Bf_Types_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Types;
++    Name = "/registry/spool/fcfg_writer_bf_types.xcu";
++End
++
++File gid_File_Registry_Spool_Oo_TypeDetection_Writer_Bf_Filters_Xcu
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Registry_Modules_Oo_TypeDetection_Filter;
++    Name = "/registry/spool/fcfg_writer_bf_filters.xcu";
++End
++
++
++File gid_Starregistry_Legacy_Binfilters_Rdb
++    TXT_FILE_BODY;
++    Name = "legacy_binfilters.rdb";
++    Dir = gid_Dir_Program;
++    Styles = (PACKED, STARREGISTRY, PATCH);
++End
++
++
++
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Go, bf_go)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sch, bf_sch)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Xo, bf_xo)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Svx, bf_svx)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Frm, bf_frm)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Ofa, bf_ofa)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sb, bf_sb)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sc, bf_sc)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sd, bf_sd)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sm, bf_sm)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sw, bf_sw)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Wrapper, bf_wrapper)
++STD_LIB_FILE_PATCH( gid_File_Lib_Legacy_Binfilters, legacy_binfilters)
++
++STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Bf_Migratefilter, bf_migratefilter)
++STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Bindet, bindet)
++
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Sch, bf_sch )
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Svx, bf_svx )
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Frm, bf_frm )
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Ofa, bf_ofa )
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Sc, bf_sc )
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Sd, bf_sd )
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Sm, bf_sm)
++STD_LIB_FILE_PATCH( gid_File_Lib_Bf_So, bf_so)
++STD_RES_FILE_PATCH( gid_File_Res_Bf_Sw, bf_sw )
+--- scp2/source/binfilter/localize.sdf.old	2007-07-19 13:12:54.000000000 +0200
++++ scp2/source/binfilter/localize.sdf	2007-07-19 13:12:54.000000000 +0200
+@@ -0,0 +1,43 @@
++#
++#    ####    ###     #   #   ###   #####    #####  ####   #####  #####  
++#    #   #  #   #    ##  #  #   #    #      #      #   #    #      #    
++#    #   #  #   #    # # #  #   #    #      ###    #   #    #      #    
++#    #   #  #   #    #  ##  #   #    #      #      #   #    #      #    
++#    ####    ###     #   #   ###     #      #####  ####   #####    #    
++#
++#    DO NOT EDIT! This file will be overwritten by localisation process
++#
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
+--- scp2/source/binfilter/makefile.mk.old	2007-07-19 13:12:54.000000000 +0200
++++ scp2/source/binfilter/makefile.mk	2007-07-19 13:12:54.000000000 +0200
+@@ -0,0 +1,58 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJPCH=
++
++PRJNAME=scp2
++TARGET=binfilter
++TARGETTYPE=CUI
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++
++SCP_PRODUCT_TYPE=osl
++
++PARFILES= \
++        module_binfilter.par            \
++        file_binfilter.par
++
++ULFFILES= \
++        module_binfilter.ulf
++
++# --- File ---------------------------------------------------------
++.INCLUDE :  target.mk
+--- /dev/null	2006-06-16 15:54:00.000000000 +0200
++++ scp2/source/binfilter/module_binfilter.scp	2008-01-16 21:04:35.000000000 +0100
+@@ -0,0 +1,87 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Optional_Binfilter
++    PackageInfo = "packinfo_office.txt";
++    MOD_NAME_DESC ( MODULE_OPTIONAL_BINFILTER );
++    Sortkey = "700";
++    ParentID = gid_Module_Optional;
++    Default = YES;
++    Files = (gid_File_Registry_Spool_Oo_TypeDetection_Chart_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Chart_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Calc_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Calc_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Draw_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Draw_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Global_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Global_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Impress_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Impress_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Math_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Math_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Web_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Web_Bf_Filters_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Writer_Bf_Types_Xcu,
++    gid_File_Registry_Spool_Oo_TypeDetection_Writer_Bf_Filters_Xcu,
++    gid_Starregistry_Legacy_Binfilters_Rdb,
++    gid_File_Lib_Bf_Go,
++    gid_File_Lib_Bf_Sch,
++    gid_File_Lib_Bf_Lng,
++    gid_File_Lib_Bf_Xo,
++    gid_File_Lib_Bf_Svx,
++    gid_File_Lib_Bf_Frm,
++    gid_File_Lib_Bf_Ofa,
++    gid_File_Lib_Bf_Sb,
++    gid_File_Lib_Bf_Sc,
++    gid_File_Lib_Bf_Sd,
++    gid_File_Lib_Bf_Sm,
++    gid_File_Lib_Bf_So,
++    gid_File_Lib_Bf_Sw,
++    gid_File_Lib_Bf_Wrapper,
++    gid_File_Lib_Legacy_Binfilters,
++    gid_File_Lib_Bf_Migratefilter,
++    gid_File_Lib_Bindet,
++    gid_File_Res_Bf_Sch,
++    gid_File_Res_Bf_Svx,
++    gid_File_Res_Bf_Frm,
++    gid_File_Res_Bf_Ofa,
++    gid_File_Res_Bf_Sc,
++    gid_File_Res_Bf_Sd,
++    gid_File_Res_Bf_Sm,
++    gid_File_Res_Bf_Sw,
++    gid_File_Res_Bf_Sfx);
++End
+--- scp2/source/binfilter/module_binfilter.ulf.old	2007-07-19 13:12:54.000000000 +0200
++++ scp2/source/binfilter/module_binfilter.ulf	2007-07-19 13:12:54.000000000 +0200
+@@ -0,0 +1,40 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_BINFILTER]
++en-US = "Legacy Filters"
++
++[STR_DESC_MODULE_OPTIONAL_BINFILTER]
++en-US = "Legacy filters, e.g. StarOffice 5.2 binary file formats."
+--- scp2/source/calc/file_calc.scp.old	2007-07-17 21:12:03.000000000 +0200
++++ scp2/source/calc/file_calc.scp	2007-07-19 13:12:54.000000000 +0200
+@@ -82,19 +82,6 @@ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Scd
+ 
+ STD_LIB_FILE_PATCH( gid_File_Lib_Tfu, tfu)
+ 
+-//
+-// start binfilter #110743#
+-//
+-
+-#ifndef WITHOUT_BINFILTER
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sc, bf_sc)
+-STD_RES_FILE( gid_File_Res_Bf_Sc, bf_sc)
+-#endif
+-
+-//
+-// end binfilter #110743#
+-//
+-
+ STD_RES_FILE( gid_File_Res_Analysis, analysis)
+ 
+ STD_RES_FILE_PATCH( gid_File_Res_Date, date)
+--- scp2/source/calc/makefile.mk.old	2007-07-17 21:12:03.000000000 +0200
++++ scp2/source/calc/makefile.mk	2007-07-19 13:12:54.000000000 +0200
+@@ -45,10 +45,6 @@ TARGETTYPE=CUI
+ 
+ .INCLUDE :	settings.mk
+ 
+-.IF "$(WITH_BINFILTER)" == "NO"
+-SCPDEFS+=-DWITHOUT_BINFILTER
+-.ENDIF
+-
+ .IF "$(SYSTEM_LPSOLVE)" == "YES"
+ SCPDEFS+=-DSYSTEM_LPSOLVE
+ .ENDIF
+--- scp2/source/calc/module_calc.scp.old	2008-01-15 20:44:19.000000000 +0100
++++ scp2/source/calc/module_calc.scp	2008-01-16 20:06:26.000000000 +0100
+@@ -54,7 +54,6 @@ Module gid_Module_Prg_Calc
+ 	Destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
+ End
+ 
+-// #110743# Added gid_File_Lib_Bf_Sc and gid_File_Res_Bf_Sc for binfilter
+ Module gid_Module_Prg_Calc_Bin
+     MOD_NAME_DESC ( MODULE_PRG_CALC_BIN );
+     ParentID = gid_Module_Prg_Calc;
+@@ -64,7 +63,7 @@ Module gid_Module_Prg_Calc_Bin
+     Files = (gid_File_Lib_Calc,gid_File_Exe_Scalc,gid_File_Lib_Sc,gid_File_Lib_Scui,gid_File_Lib_Scd,gid_File_Res_Sc,gid_File_Extra_Urldesktop_Calc,gid_File_Extra_Urlnew_Calc,gid_File_Extra_Urlstart_Calc,gid_File_Extra_Urltasks_Calc,gid_File_Oo_Office_Filter_Calc_Pkg,gid_File_Share_Config_Sofficecfg_Calc_Menubar_Xml,
+     gid_File_Oo_Office_Ui_Calccommands_Xcs,gid_File_Oo_Office_Ui_Calccommands_Xcu,gid_File_Oo_Office_Ui_Calcwindowstate_Xcs,
+     gid_File_Registry_Spool_Oo_Common_Calc_Xcu,gid_File_Registry_Spool_Oo_Setup_Calc_Xcu, gid_File_Xdg_Calc, gid_File_Registry_Spool_Oo_Office_Embedding_Calc_Xcu,
+-    gid_File_Lib_Bf_Sc,gid_File_Res_Bf_Sc,gid_File_Oo_Office_Ui_Calcwindowstate_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Filters_Xcu, gid_File_Tmp_Userinstall_Calc_Inf);
++    gid_File_Oo_Office_Ui_Calcwindowstate_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Filters_Xcu, gid_File_Tmp_Userinstall_Calc_Inf);
+ End
+ 
+ Module gid_Module_Prg_Calc_Help
+--- scp2/source/math/file_math.scp.old	2007-08-02 19:20:28.000000000 +0200
++++ scp2/source/math/file_math.scp	2008-01-16 20:03:03.000000000 +0100
+@@ -57,19 +57,6 @@ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Smd
+ 
+ STD_RES_FILE_PATCH( gid_File_Res_Sm, sm )
+ 
+-//
+-// start binfilter #110743#
+-//
+-
+-#ifndef WITHOUT_BINFILTER
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sm, bf_sm)
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Sm, bf_sm)
+-#endif
+-
+-//
+-// end binfilter #110743#
+-//
+-
+ File gid_File_Registry_Spool_Oo_Office_Embedding_Math_Xcu
+     TXT_FILE_BODY;
+     Styles = (PACKED, PATCH);
+--- scp2/source/math/makefile.mk.old	2007-07-17 21:12:01.000000000 +0200
++++ scp2/source/math/makefile.mk	2007-07-19 13:12:54.000000000 +0200
+@@ -45,10 +45,6 @@ TARGETTYPE=CUI
+ 
+ .INCLUDE :	settings.mk
+ 
+-.IF "$(WITH_BINFILTER)" == "NO"
+-SCPDEFS+=-DWITHOUT_BINFILTER
+-.ENDIF
+-
+ SCP_PRODUCT_TYPE=osl
+ PARFILES= \
+         module_math.par              \
+--- scp2/source/math/module_math.scp.old	2007-07-17 21:12:01.000000000 +0200
++++ scp2/source/math/module_math.scp	2007-07-19 13:12:54.000000000 +0200
+@@ -42,7 +42,6 @@ Module gid_Module_Prg_Math
+     Sortkey = "600";
+ End
+ 
+-// #110743# Added gid_File_Lib_Bf_Sm, gid_File_Res_Bf_Sm
+ Module gid_Module_Prg_Math_Bin
+     MOD_NAME_DESC ( MODULE_PRG_MATH_BIN );
+     ParentID = gid_Module_Prg_Math;
+@@ -49,7 +48,7 @@ Module gid_Module_Prg_Math_Bin
+     Default = YES;
+     Files = (gid_File_Html_W3c_Ipr,gid_File_Dtd_Math,gid_File_Exe_Smath,gid_File_Res_Sm,gid_File_Lib_Sm,gid_File_Lib_Smd,gid_File_Extra_Urlmore_Math,gid_File_Extra_Urlnew_Math,gid_File_Extra_Urltasks_Math,
+     gid_File_Oo_Office_Ui_Mathcommands_Xcs,gid_File_Oo_Office_Ui_Mathcommands_Xcu,gid_File_Oo_Office_Ui_Mathwindowstate_Xcs
+-    gid_File_Lib_Bf_Sm, gid_File_Res_Bf_Sm, gid_File_Registry_Spool_Oo_Common_Math_Xcu, gid_File_Registry_Spool_Oo_Setup_Math_Xcu,
++    gid_File_Registry_Spool_Oo_Common_Math_Xcu, gid_File_Registry_Spool_Oo_Setup_Math_Xcu,
+ 	gid_File_Oo_Office_Ui_Mathwindowstate_Xcu, gid_File_Share_Xdg_Math, gid_File_Registry_Spool_Oo_Office_Embedding_Math_Xcu,
+     gid_File_Registry_Spool_Oo_TypeDetection_Math_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Math_Filters_Xcu, gid_File_Tmp_Userinstall_Math_Inf);
+ End
+--- scp2/source/ooo/file_library_ooo.scp.old	2008-01-15 20:44:17.000000000 +0100
++++ scp2/source/ooo/file_library_ooo.scp	2008-01-16 19:42:08.000000000 +0100
+@@ -2013,31 +2013,6 @@ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Oox
+ 
+ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Sb , sb)
+ 
+-//
+-// start binfilter #110743#
+-//
+-
+-#ifndef WITHOUT_BINFILTER
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Go, bf_go)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sch, bf_sch)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Xo, bf_xo)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Svx, bf_svx)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Frm, bf_frm)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Ofa, bf_ofa)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sb, bf_sb)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_So, bf_so)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sd, bf_sd)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Sw, bf_sw)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Bf_Wrapper, bf_wrapper)
+-STD_LIB_FILE_PATCH( gid_File_Lib_Legacy_Binfilters, legacy_binfilters)
+-STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Bf_Migratefilter, bf_migratefilter)
+-STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Bindet, bindet)
+-#endif
+-
+-//
+-// end binfilter #110743#
+-//
+-
+ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Scn, scn)
+ 
+ File gid_File_Lib_Scriptframe
+--- scp2/source/ooo/file_ooo.scp.old	2007-07-17 21:12:01.000000000 +0200
++++ scp2/source/ooo/file_ooo.scp	2007-07-19 13:12:54.000000000 +0200
+@@ -3193,15 +3193,6 @@ File gid_File_Txt_Patchfiles
+ End
+ #endif
+ 
+-#ifndef WITHOUT_BINFILTER
+-File gid_Starregistry_Legacy_Binfilters_Rdb
+-    TXT_FILE_BODY;
+-    Name = "legacy_binfilters.rdb";
+-    Dir = gid_Dir_Program;
+-    Styles = (PACKED, STARREGISTRY, PATCH);
+-End
+-#endif
+-
+ File gid_Starregistry_Services_Rdb
+     TXT_FILE_BODY;
+     Name = "services.rdb";
+--- scp2/source/ooo/file_resource_ooo.scp.old	2007-07-17 21:11:57.000000000 +0200
++++ scp2/source/ooo/file_resource_ooo.scp	2007-07-19 13:12:54.000000000 +0200
+@@ -90,23 +90,6 @@ STD_RES_FILE( gid_File_Res_San, san )
+ 
+ #endif
+ 
+-//
+-// start binfilter #110743#
+-//
+-
+-#ifndef WITHOUT_BINFILTER
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Sch, bf_sch )
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Svx, bf_svx )
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Frm, bf_frm )
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Ofa, bf_ofa )
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Sd, bf_sd )
+-STD_RES_FILE_PATCH( gid_File_Res_Bf_Sw, bf_sw )
+-#endif
+-
+-//
+-// end binfilter #110743#
+-//
+-
+ STD_RES_FILE_PATCH( gid_File_Res_Sd, sd )
+ 
+ STD_RES_FILE_PATCH( gid_File_Res_Sfx, sfx )
+--- scp2/source/ooo/makefile.mk.old	2007-07-17 21:12:03.000000000 +0200
++++ scp2/source/ooo/makefile.mk	2007-07-19 13:12:54.000000000 +0200
+@@ -143,10 +143,6 @@ SCPDEFS+=-DSYSTEM_CURL
+ SCPDEFS+=-DSYSTEM_CURL
+ .ENDIF
+ 
+-.IF "$(WITH_BINFILTER)" == "NO"
+-SCPDEFS+=-DWITHOUT_BINFILTER
+-.ENDIF
+-
+ .IF "$(SYSTEM_STDLIBS)" == "YES"
+ SCPDEFS+=-DSYSTEM_STDLIBS
+ .ENDIF
+--- scp2/source/ooo/module_hidden_ooo.scp.old	2008-01-15 20:44:16.000000000 +0100
++++ scp2/source/ooo/module_hidden_ooo.scp	2008-01-16 19:46:03.000000000 +0100
+@@ -162,7 +162,6 @@ Module gid_Module_Root_Files_3
+ 	gid_File_Jar_Xmergebridge,
+ 	gid_File_Jar_Unoloader,
+ 	gid_File_Rdb_Types,
+-	gid_Starregistry_Legacy_Binfilters_Rdb,
+ 	gid_Starregistry_Services_Rdb);
+ End
+ 
+@@ -227,7 +226,6 @@ Module gid_Module_Root_Files_4
+ 	gid_File_Lib_Lnth,
+ 	gid_File_Lib_Offacc,
+ 	gid_File_Lib_Oox,
+-	gid_File_Lib_Bindet,
+ 	gid_File_Lib_Pcr,
+ 	gid_File_Lib_Pdffilter,
+ 	gid_File_Lib_Pk,
+@@ -377,21 +375,6 @@ Module gid_Module_Root_Files_5
+ 	gid_File_Lib_Officebean,
+ 	gid_File_Lib_Openssl,
+ 	gid_File_Lib_Package2,
+-	gid_File_Lib_Bf_Sch,
+-	gid_File_Lib_Bf_Lng,
+-	gid_File_Lib_Bf_Go,
+-	gid_File_Lib_Bf_Xo,
+-	gid_File_Lib_Bf_Svx,
+-	gid_File_Lib_Bf_Frm,
+-	gid_File_Lib_Bf_Ofa,
+-	gid_File_Lib_Bf_Sd,
+-	gid_File_Lib_Bf_Sb,
+-	gid_File_Lib_Bf_So,
+-	gid_File_Lib_Bf_Sm,
+-	gid_File_Lib_Bf_Sw,
+-	gid_File_Lib_Bf_Wrapper,
+-	gid_File_Lib_Legacy_Binfilters,
+-	gid_File_Lib_Bf_Migratefilter,
+ 	gid_File_Lib_Deployment,
+ 	gid_File_Lib_DeploymentGui,
+ 	gid_File_Lib_Sal,
+@@ -996,13 +979,6 @@ Module gid_Module_Root_Files_8
+ 	gid_File_Res_Pdffilter,
+ 	gid_File_Res_Preload,
+ 	gid_File_Res_San,
+-	gid_File_Res_Bf_Sch,
+-	gid_File_Res_Bf_Svx,
+-	gid_File_Res_Bf_Frm,
+-	gid_File_Res_Bf_Ofa,
+-	gid_File_Res_Bf_Sd,
+-	gid_File_Res_Bf_Sw,
+-	gid_File_Res_Bf_Sfx,
+ 	gid_File_Res_Productregistration,
+ 	gid_File_Res_Sd,
+ 	gid_File_Res_Sfx,
+--- scp2/util/makefile.mk.old	2007-07-17 21:12:01.000000000 +0200
++++ scp2/util/makefile.mk	2007-07-19 13:12:54.000000000 +0200
+@@ -92,6 +92,12 @@ SCP1FILES  = installation_ooo.par       
+              profileitem_python.par        \
+              shortcut_python.par
+ 
++.IF "$(WITH_BINFILTER)" != "NO"
++SCP1FILES +=                               \
++             module_binfilter.par         \
++             file_binfilter.par
++.ENDIF
++
+ .IF "$(SOLAR_JAVA)"!=""
+ SCP1FILES +=                               \
+              module_javafilter.par         \
+@@ -225,6 +231,12 @@ SCP2FILES  = installation_ooo.par       
+              file_python.par               \
+              profileitem_python.par
+ 
++.IF "$(WITH_BINFILTER)" != "NO"
++SCP2FILES +=                               \
++             module_binfilter.par         \
++             file_binfilter.par
++.ENDIF
++
+ .IF "$(SOLAR_JAVA)"!=""
+ SCP2FILES +=                               \
+              module_javafilter.par         \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/solenv-dmake-create_patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/solenv-dmake-create_patch.diff
@@ -0,0 +1,14 @@
+--- solenv/inc/tg_ext.mk	18 Jul 2007 08:01:29 -0000	1.77
++++ solenv/inc/tg_ext.mk	15 Nov 2007 10:47:15 -0000
+@@ -319,8 +319,10 @@
+ #ignore returncode of 1 (indicates differences...)	
+ # hard coded again to get the same directory level as before. quite ugly...
+ 	-cd $(PRJ)$/$(ROUT) && diff -rc misc$/$(TARFILE_ROOTDIR) misc$/build$/$(TARFILE_ROOTDIR) | $(PERL) $(SOLARENV)$/bin$/cleandiff.pl | tr -d "\015" > misc$/$(NEW_PATCH_FILE_NAME).tmp
++	@@-$(TOUCH) $(NEW_PATCH_FILE_NAME).bak
+ 	@@-mv $(NEW_PATCH_FILE_NAME) $(NEW_PATCH_FILE_NAME).bak
+-	@@-mv $(MISC)$/$(NEW_PATCH_FILE_NAME).tmp $(PRJ)$/$(NEW_PATCH_FILE_NAME)
++	$(PERL) $(SOLARENV)$/bin$/patch_sanitizer.pl $(NEW_PATCH_FILE_NAME).bak $(MISC)$/$(NEW_PATCH_FILE_NAME).tmp $(PRJ)$/$(NEW_PATCH_FILE_NAME)
++	@@-$(RM) $(MISC)$/$(NEW_PATCH_FILE_NAME).tmp
+ 	$(MAKECMD) $(MAKEMACROS) patch
+ 	@echo still some problems with win32 generated patches...
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-Primitive-not-explicit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-Primitive-not-explicit.diff
@@ -0,0 +1,16 @@
+Index: source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx
+===================================================================
+RCS file: /cvs/graphics/slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 OGLTrans_TransitionImpl.hxx
+--- slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	9 Nov 2007 10:17:11 -0000	1.2
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	27 Nov 2007 16:53:48 -0000
+@@ -88,7 +88,7 @@
+ {
+ public:
+     Primitive() {}
+-    explicit Primitive(const Primitive& rvalue);
++    Primitive(const Primitive& rvalue);
+ 	~Primitive();
+ 
+     void display(double nTime, double SlideWidthScale, double SlideHeightScale);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-formula-syntax.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-formula-syntax.diff
@@ -0,0 +1,2839 @@
+Only in sc: Debug
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/compiler.hxx sc/inc/compiler.hxx
+--- sc.clean/inc/compiler.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/compiler.hxx	2008-03-25 11:53:47.000000000 -0400
+@@ -236,26 +236,6 @@ typedef ::std::hash_map< String, String,
+ class SC_DLLPUBLIC ScCompiler
+ {
+ public:
+-	struct Convention
+-	{
+-		const ScAddress::Convention meConv;
+-		const ULONG*   				mpCharTable;
+-
+-
+-		Convention( ScAddress::Convention eConvP );
+-        virtual ~Convention();
+-
+-		virtual void MakeRefStr( rtl::OUStringBuffer&	rBuffer,
+-								 const ScCompiler&		rCompiler,
+-								 const ComplRefData&	rRef,
+-								 BOOL bSingleRef ) const = 0;
+-		virtual ::com::sun::star::i18n::ParseResult
+-					parseAnyToken( const String& rFormula,
+-								   xub_StrLen nSrcPos,
+-								   const CharClass* pCharClass) const = 0;
+-	};
+-    friend struct Convention;
+-
+     /** Mappings from strings to OpCodes and vice versa. */
+     class OpCodeMap
+     {
+@@ -362,6 +342,30 @@ private:
+     typedef ::boost::shared_ptr< const OpCodeMap > OpCodeMapPtr;
+     typedef ::boost::shared_ptr< OpCodeMap > NonConstOpCodeMapPtr;
+ 
++    struct Convention
++    {
++        const ScAddress::Convention meConv;
++        const ULONG*                mpCharTable;
++
++
++        Convention( ScAddress::Convention eConvP );
++        virtual ~Convention();
++
++        virtual void MakeRefStr( rtl::OUStringBuffer&   rBuffer,
++                                 const ScCompiler&      rCompiler,
++                                 const ComplRefData&    rRef,
++                                 BOOL bSingleRef ) const = 0;
++        virtual ::com::sun::star::i18n::ParseResult
++                    parseAnyToken( const String& rFormula,
++                                   xub_StrLen nSrcPos,
++                                   const CharClass* pCharClass) const = 0;
++
++        virtual const String& GetSymbol( const OpCodeMapPtr& rpMap, OpCode e ) const = 0;
++
++        virtual OpCode GetOpCode( const OpCodeMapPtr& rpMap, const String& rName, bool bInArray ) const = 0;
++    };
++    friend struct Convention;
++
+ private:
+ 
+     static NonConstOpCodeMapPtr  mxSymbolsODFF;                          // ODFF symbols
+@@ -415,7 +419,7 @@ private:
+     bool        mbCloseBrackets;            // whether to close open brackets automatically, default TRUE
+ 
+ 	BOOL   GetToken();
+-	BOOL   NextNewToken(bool bAllowBooleans = false);
++	BOOL   NextNewToken(bool bInArray = false);
+ 	OpCode NextToken();
+ 	void PutCode( ScTokenRef& );
+ 	void Factor();
+@@ -433,7 +437,7 @@ private:
+ 	void SetError(USHORT nError);
+ 	xub_StrLen NextSymbol();
+ 	BOOL IsValue( const String& );
+-	BOOL IsOpCode( const String& );
++	BOOL IsOpCode( const String& rName, bool bInArray );
+ 	BOOL IsOpCode2( const String& );
+ 	BOOL IsString();
+ 	BOOL IsReference( const String& );
+@@ -465,6 +469,7 @@ public:
+     {
+         return mxSymbolsNative.get() && mxSymbolsEnglish.get();
+     }
++    static void InitConventions();      /// hack only for 2.4 codebase!
+ 	static void InitSymbolsNative();    /// only SymbolsNative, on first document creation
+ 	static void InitSymbolsEnglish();   /// only SymbolsEnglish, maybe later
+ private:
+@@ -539,7 +544,8 @@ public:
+     const ScDocument* GetDoc() const { return pDoc; }
+     const ScAddress& GetPos() const { return aPos; }
+ 
+-    static const String& GetStringFromOpCode( OpCode eOpCode, bool bEnglish = false );
++    static const String& GetStringFromOpCode( OpCode eOpCode, bool bEnglish = false, 
++                                              ScAddress::Convention eConv = ScAddress::CONV_OOO );
+ 
+ 	ScToken* CreateStringFromToken( String& rFormula, ScToken* pToken,
+ 									BOOL bAllowArrAdvance = FALSE );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/docoptio.hxx sc/inc/docoptio.hxx
+--- sc.clean/inc/docoptio.hxx	2008-03-03 11:24:44.000000000 -0500
++++ sc/inc/docoptio.hxx	2008-03-19 18:27:17.000000000 -0400
+@@ -52,6 +52,8 @@
+ #include "optutil.hxx"
+ #endif
+ 
++#include "address.hxx"
++
+ class SC_DLLPUBLIC ScDocOptions
+ {
+ 	double fIterEps;				// Epsilon-Wert dazu
+@@ -69,6 +71,7 @@ class SC_DLLPUBLIC ScDocOptions
+ 	BOOL   bDoAutoSpell;			// Auto-Spelling
+ 	BOOL   bLookUpColRowNames;		// Spalten-/Zeilenbeschriftungen automagisch suchen
+     BOOL   bFormulaRegexEnabled;    // regular expressions in formulas enabled
++    ScAddress::Convention eFormulaConv; // formula address convention used to switch different formula syntax
+ 
+ public:
+ 				ScDocOptions();
+@@ -117,6 +120,9 @@ public:
+ 
+     void    SetFormulaRegexEnabled( BOOL bVal ) { bFormulaRegexEnabled = bVal; }
+     BOOL    IsFormulaRegexEnabled() const       { return bFormulaRegexEnabled; }
++
++    void SetFormulaSyntax( ScAddress::Convention eConv ) { eFormulaConv = eConv; }
++    ScAddress::Convention GetFormulaSyntax() const { return eFormulaConv; }
+ };
+ 
+ 
+@@ -137,6 +143,7 @@ inline void ScDocOptions::CopyTo(ScDocOp
+ 	rOpt.bDoAutoSpell			= bDoAutoSpell;
+ 	rOpt.bLookUpColRowNames		= bLookUpColRowNames;
+     rOpt.bFormulaRegexEnabled   = bFormulaRegexEnabled;
++    rOpt.eFormulaConv           = eFormulaConv;
+ }
+ 
+ inline const ScDocOptions& ScDocOptions::operator=( const ScDocOptions& rCpy )
+@@ -156,6 +163,7 @@ inline const ScDocOptions& ScDocOptions:
+ 	bDoAutoSpell		= rCpy.bDoAutoSpell;
+ 	bLookUpColRowNames	= rCpy.bLookUpColRowNames;
+     bFormulaRegexEnabled= rCpy.bFormulaRegexEnabled;
++    eFormulaConv        = rCpy.eFormulaConv;
+ 
+ 	return *this;
+ }
+@@ -178,6 +186,7 @@ inline int ScDocOptions::operator==( con
+ 			&&	rOpt.bDoAutoSpell			== bDoAutoSpell
+ 			&&	rOpt.bLookUpColRowNames		== bLookUpColRowNames
+             &&  rOpt.bFormulaRegexEnabled   == bFormulaRegexEnabled
++            &&  rOpt.eFormulaConv           == eFormulaConv
+ 			);
+ }
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/global.hxx sc/inc/global.hxx
+--- sc.clean/inc/global.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/global.hxx	2008-03-03 11:33:34.000000000 -0500
+@@ -712,11 +712,11 @@ public:
+     void        InitArgumentInfo() const;
+ 
+     /** Returns a semicolon separated list of all parameter names. */
+-    String  GetParamList        () const;
++    String  GetParamList        ( ScAddress::Convention eConv = ScAddress::CONV_OOO ) const;
+     /** Returns the full function siganture: "FUNCTIONNAME( parameter list )". */
+-	String	GetSignature		() const;
++	String	GetSignature		( ScAddress::Convention eConv = ScAddress::CONV_OOO) const;
+     /** Returns the function siganture with parameters from the passed string array. */
+-	String	GetFormulaString	( String** aArgArr ) const;
++	String	GetFormulaString	( String** aArgArr, ScAddress::Convention eConv = ScAddress::CONV_OOO ) const;
+ 
+ 	USHORT		nFIndex;		// eindeutiger Funktionsindex
+ 	USHORT		nCategory;		// Kategorie
+@@ -786,6 +786,7 @@ class ScFormulaUtil
+ public:
+ 	static BOOL					GetNextFunc( const String&	rFormula,
+ 											 BOOL			bBack,
++                                             ScAddress::Convention eConv,
+ 											 xub_StrLen&	rFStart, // Ein- und Ausgabe
+ 											 xub_StrLen*	pFEnd = NULL,
+ 											 const ScFuncDesc**	ppFDesc = NULL,
+@@ -794,21 +795,27 @@ public:
+ 	static const ScFuncDesc*	GetDefaultFuncDesc();
+ 
+ 	static xub_StrLen			GetFunctionStart( const String& rFormula, xub_StrLen nStart,
+-													BOOL bBack, String* pFuncName = NULL );
++												  BOOL bBack, 
++                                                  ScAddress::Convention eConv,
++                                                  String* pFuncName = NULL );
+ 
+-	static xub_StrLen			GetFunctionEnd	( const String& rFormula, xub_StrLen nStart );
++	static xub_StrLen			GetFunctionEnd	( const String& rFormula, xub_StrLen nStart,
++                                                  ScAddress::Convention eConv );
+ 
+ 	static xub_StrLen			GetArgStart		( const String& rFormula, xub_StrLen nStart,
+-												  USHORT nArg );
++												  USHORT nArg,
++                                                  ScAddress::Convention eConv );
+ 
+ 	static String**				GetArgStrings	( const String&	rFormula,
+ 												  xub_StrLen	nFuncPos,
+-												  USHORT		nArgs );
++												  USHORT		nArgs,
++                                                  ScAddress::Convention eConv );
+ 
+ 	static void					FillArgStrings	( const String&	rFormula,
+ 												  xub_StrLen	nFuncPos,
+ 												  USHORT		nArgs,
+-												  String**		pArgs );
++												  String**		pArgs,
++                                                  ScAddress::Convention eConv );
+ };
+ 
+ //==================================================================
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/rangenam.hxx sc/inc/rangenam.hxx
+--- sc.clean/inc/rangenam.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/rangenam.hxx	2008-03-20 21:29:02.000000000 -0400
+@@ -171,7 +171,8 @@ public:
+ 	BOOL			IsBeyond( SCROW nMaxRow ) const;
+ 
+ 	static void		MakeValidName( String& rName );
+-	SC_DLLPUBLIC static BOOL		IsNameValid( const String& rName, ScDocument* pDoc );
++	SC_DLLPUBLIC static BOOL		IsNameValid( const String& rName, ScDocument* pDoc, 
++                                                 const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 );
+ };
+ 
+ inline BOOL ScRangeData::HasType( RangeType nType ) const
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
+--- sc.clean/source/core/data/documen3.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/documen3.cxx	2008-03-20 22:19:01.000000000 -0400
+@@ -1757,6 +1757,7 @@ void ScDocument::SetDocOptions( const Sc
+ 	pFormatter->ChangeNullDate( d,m,y );
+ 	pFormatter->ChangeStandardPrec( (USHORT)rOpt.GetStdPrecision() );
+ 	pFormatter->SetYear2000( rOpt.GetYear2000() );
++    SetAddressConvention( rOpt.GetFormulaSyntax() );
+ }
+ 
+ const ScViewOptions& ScDocument::GetViewOptions() const
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/global.cxx sc/source/core/data/global.cxx
+--- sc.clean/source/core/data/global.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/global.cxx	2008-03-04 00:34:14.000000000 -0500
+@@ -1061,6 +1061,7 @@ const ScFuncDesc* ScFormulaUtil::GetDefa
+ 
+ BOOL ScFormulaUtil::GetNextFunc( const String&	rFormula,
+ 								 BOOL			bBack,
++                                 ScAddress::Convention eConv,
+ 								 xub_StrLen&	rFStart,   // Ein- und Ausgabe
+ 								 xub_StrLen*	pFEnd, 	   // = NULL
+ 								 const ScFuncDesc**	ppFDesc,   // = NULL
+@@ -1070,13 +1071,13 @@ BOOL ScFormulaUtil::GetNextFunc( const S
+ 	xub_StrLen	nOldStart = rFStart;
+ 	String		aFname;
+ 
+-	rFStart = GetFunctionStart( rFormula, rFStart, bBack, ppFDesc ? &aFname : NULL );
++	rFStart = GetFunctionStart( rFormula, rFStart, bBack, eConv, ppFDesc ? &aFname : NULL );
+ 	bFound  = ( rFStart != FUNC_NOTFOUND );
+ 
+ 	if ( bFound )
+ 	{
+ 		if ( pFEnd )
+-			*pFEnd = GetFunctionEnd( rFormula, rFStart );
++			*pFEnd = GetFunctionEnd( rFormula, rFStart, eConv );
+ 
+ 		if ( ppFDesc )
+ 		{
+@@ -1085,7 +1086,7 @@ BOOL ScFormulaUtil::GetNextFunc( const S
+ 			if ( *ppFDesc )
+ 			{
+ 				if (pppArgs)
+-					*pppArgs = GetArgStrings( rFormula, rFStart, (*ppFDesc)->nArgCount );
++					*pppArgs = GetArgStrings( rFormula, rFStart, (*ppFDesc)->nArgCount, eConv );
+ 			}
+ 			else
+ 			{
+@@ -1104,7 +1105,8 @@ BOOL ScFormulaUtil::GetNextFunc( const S
+ void ScFormulaUtil::FillArgStrings( const String&	rFormula,
+ 									xub_StrLen		nFuncPos,
+ 									USHORT			nArgs,
+-									String**		aArgArr )
++									String**		aArgArr,
++                                    ScAddress::Convention eConv )
+ {
+ 	if ( !aArgArr ) return;
+ 
+@@ -1115,11 +1117,11 @@ void ScFormulaUtil::FillArgStrings( cons
+ 
+ 	for ( i=0; i<nArgs && !bLast; i++ )
+ 	{
+-		nStart = GetArgStart( rFormula, nFuncPos, i );
++		nStart = GetArgStart( rFormula, nFuncPos, i, eConv );
+ 
+ 		if ( i+1<nArgs ) // letztes Argument?
+ 		{
+-			nEnd = GetArgStart( rFormula, nFuncPos, i+1 );
++			nEnd = GetArgStart( rFormula, nFuncPos, i+1, eConv );
+ 
+ 			if ( nEnd != nStart )
+ 				aArgArr[i] = new String( rFormula.Copy( nStart, nEnd-1-nStart ) );
+@@ -1128,7 +1130,7 @@ void ScFormulaUtil::FillArgStrings( cons
+ 		}
+ 		else
+ 		{
+-			nEnd = GetFunctionEnd( rFormula, nFuncPos )-1;
++			nEnd = GetFunctionEnd( rFormula, nFuncPos, eConv )-1;
+ 			if ( nStart < nEnd )
+ 				aArgArr[i] = new String( rFormula.Copy( nStart, nEnd-nStart ) );
+ 			else
+@@ -1145,13 +1147,14 @@ void ScFormulaUtil::FillArgStrings( cons
+ 
+ String** ScFormulaUtil::GetArgStrings( const String& rFormula,
+ 									   xub_StrLen nFuncPos,
+-									   USHORT nArgs )
++									   USHORT nArgs,
++                                       ScAddress::Convention eConv )
+ {
+ 	String** aArgArr = NULL;
+ 	if (nArgs)
+ 	{
+ 		aArgArr = new String*[nArgs];
+-		FillArgStrings( rFormula, nFuncPos, nArgs, aArgArr );
++		FillArgStrings( rFormula, nFuncPos, nArgs, aArgArr, eConv );
+ 	}
+ 	return aArgArr;
+ }
+@@ -1174,6 +1177,7 @@ inline BOOL IsFormulaText( const String&
+ xub_StrLen ScFormulaUtil::GetFunctionStart( const String&	rFormula,
+ 										xub_StrLen		nStart,
+ 										BOOL			bBack,
++                                        ScAddress::Convention /*eConv*/,
+ 										String*			pFuncName )
+ {
+ 	xub_StrLen nStrLen = rFormula.Len();
+@@ -1265,14 +1269,23 @@ xub_StrLen ScFormulaUtil::GetFunctionSta
+ 
+ //------------------------------------------------------------------------
+ 
+-xub_StrLen	ScFormulaUtil::GetFunctionEnd( const String& rStr, xub_StrLen nStart )
++xub_StrLen	ScFormulaUtil::GetFunctionEnd( const String& rStr, xub_StrLen nStart,
++                                           ScAddress::Convention eConv )
+ {
+ 	xub_StrLen nStrLen = rStr.Len();
+ 
+ 	if ( nStrLen < nStart )
+ 		return nStart;
+ 
++    // We assume the following tokens are single-character tokens.
++    const sal_Unicode open       = ScCompiler::GetStringFromOpCode(ocOpen,  false, eConv).GetChar(0);
++    const sal_Unicode close      = ScCompiler::GetStringFromOpCode(ocClose, false, eConv).GetChar(0);
++    const sal_Unicode sep        = ScCompiler::GetStringFromOpCode(ocSep, false, eConv).GetChar(0);
++    const sal_Unicode arrayOpen  = ScCompiler::GetStringFromOpCode(ocArrayOpen,  false, eConv).GetChar(0);
++    const sal_Unicode arrayClose = ScCompiler::GetStringFromOpCode(ocArrayClose, false, eConv).GetChar(0);
++
+ 	short	nParCount = 0;
++    bool    bInArray = false;
+ 	BOOL	bFound = FALSE;
+ 
+ 	while ( !bFound && (nStart < nStrLen) )
+@@ -1285,9 +1298,9 @@ xub_StrLen	ScFormulaUtil::GetFunctionEnd
+ 			while ( (nStart < nStrLen) && rStr.GetChar(nStart) != '"' )
+ 				nStart++;
+ 		}
+-		else if ( c == '(' )
++		else if ( c == open )
+ 			nParCount++;
+-		else if ( c == ')' )
++		else if ( c == close )
+ 		{
+ 			nParCount--;
+ 			if ( nParCount == 0 )
+@@ -1298,9 +1311,17 @@ xub_StrLen	ScFormulaUtil::GetFunctionEnd
+ 				nStart--;	// einen zu weit gelesen
+ 			}
+ 		}
+-		else if ( c == ';' )
++        else if ( c == arrayOpen )
++        {
++            bInArray = true;
++        }
++        else if ( c == arrayClose )
++        {
++            bInArray = false;
++        }
++		else if ( c == sep )
+ 		{
+-			if ( nParCount == 0 )
++			if ( !bInArray && nParCount == 0 )
+ 			{
+ 				bFound = TRUE;
+ 				nStart--;	// einen zu weit gelesen
+@@ -1314,14 +1335,23 @@ xub_StrLen	ScFormulaUtil::GetFunctionEnd
+ 
+ //------------------------------------------------------------------
+ 
+-xub_StrLen ScFormulaUtil::GetArgStart( const String& rStr, xub_StrLen nStart, USHORT nArg )
++xub_StrLen ScFormulaUtil::GetArgStart( const String& rStr, xub_StrLen nStart, USHORT nArg,
++                                       ScAddress::Convention eConv )
+ {
+ 	xub_StrLen nStrLen = rStr.Len();
+ 
+ 	if ( nStrLen < nStart )
+ 		return nStart;
+ 
++    // We assume the following tokens are single-character tokens.
++    const sal_Unicode open       = ScCompiler::GetStringFromOpCode(ocOpen,  false, eConv).GetChar(0);
++    const sal_Unicode close      = ScCompiler::GetStringFromOpCode(ocClose, false, eConv).GetChar(0);
++    const sal_Unicode sep        = ScCompiler::GetStringFromOpCode(ocSep, false, eConv).GetChar(0);
++    const sal_Unicode arrayOpen  = ScCompiler::GetStringFromOpCode(ocArrayOpen,  false, eConv).GetChar(0);
++    const sal_Unicode arrayClose = ScCompiler::GetStringFromOpCode(ocArrayClose, false, eConv).GetChar(0);
++
+ 	short	nParCount	= 0;
++    bool    bInArray    = false;
+ 	BOOL	bFound		= FALSE;
+ 
+ 	while ( !bFound && (nStart < nStrLen) )
+@@ -1334,19 +1364,27 @@ xub_StrLen ScFormulaUtil::GetArgStart( c
+ 			while ( (nStart < nStrLen) && rStr.GetChar(nStart) != '"' )
+ 				nStart++;
+ 		}
+-		else if ( c == '(' )
++		else if ( c == open )
+ 		{
+ 			bFound = ( nArg == 0 );
+ 			nParCount++;
+ 		}
+-		else if ( c == ')' )
++		else if ( c == close )
+ 		{
+ 			nParCount--;
+ 			bFound = ( nParCount == 0 );
+ 		}
+-		else if ( c == ';' )
++        else if ( c == arrayOpen )
++        {
++            bInArray = true;
++        }
++        else if ( c == arrayClose )
++        {
++            bInArray = false;
++        }
++		else if ( c == sep )
+ 		{
+-			if ( nParCount == 1 )
++			if ( !bInArray && nParCount == 1 )
+ 			{
+ 				nArg--;
+ 				bFound = ( nArg == 0  );
+@@ -1702,8 +1740,10 @@ void ScFuncDesc::InitArgumentInfo() cons
+ 
+ //------------------------------------------------------------------------
+ 
+-String ScFuncDesc::GetParamList() const
++String ScFuncDesc::GetParamList( ScAddress::Convention eConv ) const
+ {
++    const String& sep = ScCompiler::GetStringFromOpCode(ocSep, false, eConv);
++
+     String aSig;
+ 
+     if ( nArgCount > 0 )
+@@ -1714,7 +1754,10 @@ String ScFuncDesc::GetParamList() const
+             {
+                 aSig += *(aDefArgNames[i]);
+                 if ( i != nArgCount-1 )
+-                    aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "; " ));
++                {
++                    aSig.Append(sep);
++                    aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " " ));
++                }
+             }
+         }
+         else
+@@ -1723,14 +1766,17 @@ String ScFuncDesc::GetParamList() const
+             for ( USHORT nArg = 0; nArg < nFix; nArg++ )
+             {
+                 aSig += *(aDefArgNames[nArg]);
+-                aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "; " ));
++                aSig.Append(sep);
++                aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " " ));
+             }
+             aSig += *(aDefArgNames[nFix]);
+             aSig += '1';
+-            aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "; " ));
++            aSig.Append(sep);
++            aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " " ));
+             aSig += *(aDefArgNames[nFix]);
+             aSig += '2';
+-            aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "; ... " ));
++            aSig.Append(sep);
++            aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ... " ));
+         }
+     }
+ 
+@@ -1739,7 +1785,7 @@ String ScFuncDesc::GetParamList() const
+ 
+ //------------------------------------------------------------------------
+ 
+-String ScFuncDesc::GetSignature() const
++String ScFuncDesc::GetSignature( ScAddress::Convention eConv ) const
+ {
+ 	String aSig;
+ 
+@@ -1747,7 +1793,7 @@ String ScFuncDesc::GetSignature() const
+ 	{
+ 		aSig = *pFuncName;
+ 
+-        String aParamList( GetParamList() );
++        String aParamList( GetParamList(eConv) );
+         if( aParamList.Len() )
+         {
+ 			aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "( " ));
+@@ -1763,8 +1809,10 @@ String ScFuncDesc::GetSignature() const
+ 
+ //------------------------------------------------------------------------
+ 
+-String ScFuncDesc::GetFormulaString( String** aArgArr ) const
++String ScFuncDesc::GetFormulaString( String** aArgArr, ScAddress::Convention eConv ) const
+ {
++    const String& sep = ScCompiler::GetStringFromOpCode(ocSep, false, eConv);
++
+ 	String aFormula;
+ 
+ 	if(pFuncName)
+@@ -1787,7 +1835,7 @@ String ScFuncDesc::GetFormulaString( Str
+ 					{
+ 						bLastArg = !( aArgArr[i+1]->Len() > 0 );
+ 						if ( !bLastArg )
+-							aFormula += ';';
++							aFormula += sep;
+ 					}
+ 				}
+ 			}
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/address.cxx sc/source/core/tool/address.cxx
+--- sc.clean/source/core/tool/address.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/tool/address.cxx	2008-03-25 18:28:59.000000000 -0400
+@@ -428,7 +428,7 @@ lcl_ScRange_Parse_XL_R1C1( ScRange& r,
+                            const ScAddress::Details& rDetails,
+                            BOOL bOnlyAcceptSingle )
+ {
+-    const sal_Unicode* pTmp;
++    const sal_Unicode* pTmp = NULL;
+     String aExternDocName, aStartTabName, aEndTabName;
+     USHORT nFlags = SCA_VALID | SCA_VALID_TAB, nFlags2 = SCA_VALID_TAB2;
+ 
+@@ -453,11 +453,25 @@ lcl_ScRange_Parse_XL_R1C1( ScRange& r,
+         {
+             if( p[0] != ':' || (p[1] != 'R' && p[1] != 'r' ) ||
+                 NULL == (pTmp = lcl_r1c1_get_row( p+1, rDetails, &r.aEnd, &nFlags2 )))
+-            {   // Fallback to just the initial R
++            {
++                // Only the initial row number is given, or the second row
++                // number is invalid. Fallback to just the initial R
+                 nFlags |= (nFlags << 4);
+                 r.aEnd.SetRow( r.aStart.Row() );
+-            } else
++            }
++            else
++            {
++                // Full row range successfully parsed.
+                 nFlags |= (nFlags2 << 4);
++                p = pTmp;
++            }
++
++            if (p && p[0] != 0)
++            {
++                // any trailing invalid character must invalidate the whole address.
++                nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB);
++                return nFlags;
++            }
+ 
+             nFlags |= 
+                 SCA_VALID_COL | SCA_VALID_COL2 |
+@@ -477,9 +491,29 @@ lcl_ScRange_Parse_XL_R1C1( ScRange& r,
+             (*pTmp != 'C' && *pTmp != 'c') ||
+             NULL == (pTmp = lcl_r1c1_get_col( pTmp, rDetails, &r.aEnd, &nFlags2 )))
+         {
++            // single cell reference
++
++            if (p && p[0] != 0)
++            {
++                // any trailing invalid character must invalidate the whole address.
++                nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB);
++                return nFlags;
++            }
++
+             return bOnlyAcceptSingle ? lcl_XL_LinkSheetRef( r, pDoc,
+                 aExternDocName, aStartTabName, aEndTabName, nFlags ) : 0;
+         }
++        p = pTmp;
++
++        // double reference
++
++        if (p && p[0] != 0)
++        {
++            // any trailing invalid character must invalidate the whole range.
++            nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB | 
++                        SCA_VALID_COL2 | SCA_VALID_ROW2 | SCA_VALID_TAB2);
++            return nFlags;
++        }
+ 
+         nFlags |= (nFlags2 << 4);
+         return bOnlyAcceptSingle ? 0 : lcl_XL_LinkSheetRef( r, pDoc,
+@@ -497,7 +531,17 @@ lcl_ScRange_Parse_XL_R1C1( ScRange& r,
+             r.aEnd.SetCol( r.aStart.Col() );
+         }
+         else
++        {
+             nFlags |= (nFlags2 << 4);
++            p = pTmp;
++        }
++
++        if (p && p[0] != 0)
++        {
++            // any trailing invalid character must invalidate the whole address.
++            nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB);
++            return nFlags;
++        }
+ 
+         nFlags |= 
+             SCA_VALID_ROW | SCA_VALID_ROW2 |
+@@ -623,10 +667,24 @@ lcl_ScRange_Parse_XL_A1( ScRange& r,
+     // prepare as if it's a singleton, in case we want to fall back */
+     r.aEnd.SetCol( r.aStart.Col() );
+     r.aEnd.SetRow( r.aStart.Row() );    // don't overwrite sheet number as parsed in lcl_ScRange_Parse_XL_Header
++
++    if ( bOnlyAcceptSingle )
++    {
++        if ( *tmp2 == 0 )
++            return lcl_XL_LinkSheetRef( r, pDoc,
++                aExternDocName, aStartTabName, aEndTabName, nFlags );
++        else
++        {
++            // any trailing invalid character must invalidate the address.
++            nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB);
++            return nFlags;
++        }
++    }
++
+     if( *tmp2 != ':' )
+     {
+-        if ( !bOnlyAcceptSingle )
+-            nFlags &= ~SCA_VALID;   // when looking for a double ref, a single-cell ref must not be accepted
++        nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB |
++                    SCA_VALID_COL2 | SCA_VALID_ROW2 | SCA_VALID_TAB2);
+         return nFlags;
+     }
+ 
+@@ -640,6 +698,14 @@ lcl_ScRange_Parse_XL_A1( ScRange& r,
+         return lcl_XL_LinkSheetRef( r, pDoc,
+             aExternDocName, aStartTabName, aEndTabName, nFlags );
+ 
++    if ( *tmp2 != 0 )
++    {
++        // any trailing invalid character must invalidate the range.
++        nFlags &= ~(SCA_VALID | SCA_VALID_COL | SCA_VALID_ROW | SCA_VALID_TAB |
++                    SCA_VALID_COL2 | SCA_VALID_ROW2 | SCA_VALID_TAB2);
++        return nFlags;
++    }
++
+     nFlags |= (nFlags2 << 4);
+     return lcl_XL_LinkSheetRef( r, pDoc,
+         aExternDocName, aStartTabName, aEndTabName, nFlags );
+@@ -1334,9 +1400,12 @@ void ScAddress::Format( String& r, USHOR
+ 
+             case CONV_XL_A1:
+             case CONV_XL_R1C1:
+-                r += '[';
+-                r += aDocName;
+-                r += ']';
++                if (aDocName.Len() > 0)
++                {
++                    r += '[';
++                    r += aDocName;
++                    r += ']';
++                }
+                 r += aTabName;
+                 r += '!';
+                 break;
+@@ -1434,6 +1503,7 @@ lcl_ScRange_Format_XL_Header( String& r,
+ void ScRange::Format( String& r, USHORT nFlags, ScDocument* pDoc,
+                       const ScAddress::Details& rDetails ) const
+ {
++    r.Erase();
+     if( !( nFlags & SCA_VALID ) )
+     {
+         r = ScGlobal::GetRscString( STR_NOREF_STR );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/compiler.cxx sc/source/core/tool/compiler.cxx
+--- sc.clean/source/core/tool/compiler.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/tool/compiler.cxx	2008-03-25 13:20:18.000000000 -0400
+@@ -305,6 +305,8 @@ void ScCompiler::InitSymbolsNative()
+     if (mxSymbolsNative.get())
+         return;
+ 
++    InitConventions();
++
+     // Not English (even if localization is English), Core, no ODF
+     mxSymbolsNative.reset( new OpCodeMap( SC_OPCODE_LAST_OPCODE_ID + 1, false, true, false));
+     ScOpCodeList aOpCodeListNative( RID_SC_FUNCTION_NAMES, mxSymbolsNative);
+@@ -439,6 +441,7 @@ void ScCompiler::SetCompileEnglish( BOOL
+         if (!pCharClassEnglish)
+             InitCharClassEnglish();
+         pCharClass = pCharClassEnglish;
++        SetRefConvention(ScAddress::CONV_OOO); // hack!  when compiling English, it's most likely handling ODF formula syntax.
+     }
+     else
+     {
+@@ -928,7 +931,7 @@ for (i = 97; i < 123; i++)
+ /* ) */     t[41] |=   SC_COMPILER_C_WORD;
+ /* * */     t[42] |=   SC_COMPILER_C_WORD;
+ /* + */     t[43] |=   SC_COMPILER_C_WORD;
+-#if 0 /* this really needs to be locale specific. */
++#if 1 /* this really needs to be locale specific. */
+ /* , */     t[44]  =   SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
+ #else
+ /* , */     t[44] |=   SC_COMPILER_C_WORD;
+@@ -980,6 +983,20 @@ struct Convention_A1 : public ScCompiler
+         return pCharClass->parseAnyToken( rFormula,
+                 nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
+     }
++
++    virtual const String& GetSymbol( const ScCompiler::OpCodeMapPtr& rpMap, OpCode e ) const
++    {
++        return rpMap->getSymbol(e);
++    }
++
++    virtual OpCode GetOpCode( const ScCompiler::OpCodeMapPtr& rpMap, const String& rName, bool bInArray ) const
++    {
++        const ScOpCodeHashMap* pHashMap = rpMap->getHashMap();
++        ScOpCodeHashMap::const_iterator itr = pHashMap->find(rName);
++        if (itr == pHashMap->end())
++            return ocNone;
++        return itr->second;
++    }
+ };
+ 
+ String Convention_A1::MakeColStr( SCCOL nCol )
+@@ -1232,6 +1249,27 @@ static const ScCompiler::Convention *pCo
+ 
+ struct ConventionXL
+ {
++    static String maSep;
++    static String maArrayRowSep;
++    static String maArrayColSep;
++
++    static void Init()
++    {
++        const rtl::OUString& aDecSep = ScGlobal::pSysLocale->GetLocaleData().getLocaleItem().decimalSeparator;
++        if (aDecSep.equalsAscii(","))
++        {
++            maSep         = String::CreateFromAscii(";");
++            maArrayRowSep = String::CreateFromAscii("|");
++            maArrayColSep = String::CreateFromAscii(";");
++        }
++        else
++        {
++            maSep         = String::CreateFromAscii(",");
++            maArrayRowSep = String::CreateFromAscii(";");
++            maArrayColSep = String::CreateFromAscii(",");
++        }
++    }
++
+     static bool GetDocAndTab( const ScCompiler& rComp,
+                               const SingleRefData& rRef,
+                               String& rDocName,
+@@ -1314,8 +1352,50 @@ struct ConventionXL
+             rBuf.append( sal_Unicode( '!' ) );
+         }
+     }
++
++    static OpCode GetOpCode( const ScCompiler::OpCodeMapPtr& rpMap, const String& rName, bool bInArray )
++    {
++        // TODO: switch to using a hash table for better string lookup performance.
++        if (bInArray)
++        {
++            if (rName.Equals(ConventionXL::maArrayRowSep))
++            {
++                return ocArrayRowSep;
++            }
++            else if (rName.Equals(ConventionXL::maArrayColSep))
++            {
++                return ocArrayColSep;
++            }       
++        }
++
++        if (rName.Equals(ConventionXL::maSep))
++        {
++            return ocSep;
++        }
++
++        const ScOpCodeHashMap* pHashMap = rpMap->getHashMap();
++        ScOpCodeHashMap::const_iterator itr = pHashMap->find(rName);
++        if (itr == pHashMap->end())
++        {
++            return ocNone;
++        }
++
++        switch (itr->second)
++        {
++            // opcode found, but the following opcodes must not be valid for XL_A1.
++            case ocSep:
++            case ocArrayColSep:
++            case ocArrayRowSep:
++                return ocNone;
++        }
++        return itr->second;
++    }
+ };
+ 
++String ConventionXL::maSep = String::CreateFromAscii(",");
++String ConventionXL::maArrayRowSep = String::CreateFromAscii(";");
++String ConventionXL::maArrayColSep = String::CreateFromAscii(",");
++
+ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
+ {
+     ConventionXL_A1() : Convention_A1( ScAddress::CONV_XL_A1 ) { }
+@@ -1326,11 +1406,12 @@ struct ConventionXL_A1 : public Conventi
+     {
+         ComplRefData aRef( rRef );
+ 
+-        MakeDocStr( rBuf, rComp, aRef, bSingleRef );
+-
+         // Play fast and loose with invalid refs.  There is not much point in producing
+         // Foo!A1:#REF! versus #REF! at this point
+         aRef.Ref1.CalcAbsIfRel( rComp.GetPos() );
++
++        MakeDocStr( rBuf, rComp, aRef, bSingleRef );
++
+         if( aRef.Ref1.IsColDeleted() || aRef.Ref1.IsRowDeleted() )
+         {
+             rBuf.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
+@@ -1389,6 +1470,25 @@ struct ConventionXL_A1 : public Conventi
+             MakeRowStr( rBuf, aRef.Ref2.nRow );
+         }
+     }
++
++    virtual const String& GetSymbol( const ScCompiler::OpCodeMapPtr& rpMap, OpCode e ) const
++    {
++        switch (e)
++        {
++            case ocSep:
++                return ConventionXL::maSep;
++            case ocArrayRowSep:
++                return ConventionXL::maArrayRowSep;
++            case ocArrayColSep:
++                return ConventionXL::maArrayColSep;
++        }
++        return rpMap->getSymbol(e);
++    }
++
++    virtual OpCode GetOpCode( const ScCompiler::OpCodeMapPtr& rpMap, const String& rName, bool bInArray ) const
++    {
++        return ConventionXL::GetOpCode(rpMap, rName, bInArray);
++    }
+ };
+ 
+ static const ConventionXL_A1 ConvXL_A1;
+@@ -1508,11 +1608,36 @@ struct ConventionXL_R1C1 : public ScComp
+         return pCharClass->parseAnyToken( rFormula,
+                 nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
+     }
++
++    virtual const String& GetSymbol( const ScCompiler::OpCodeMapPtr& rpMap, OpCode e ) const
++    {
++        switch (e)
++        {
++            case ocSep:
++                return ConventionXL::maSep;
++            case ocArrayRowSep:
++                return ConventionXL::maArrayRowSep;
++            case ocArrayColSep:
++                return ConventionXL::maArrayColSep;
++        }
++        return rpMap->getSymbol(e);
++    }
++
++    virtual OpCode GetOpCode( const ScCompiler::OpCodeMapPtr& rpMap, const String& rName, bool bInArray ) const
++    {
++        return ConventionXL::GetOpCode(rpMap, rName, bInArray);
++    }
+ };
+ 
+ static const ConventionXL_R1C1 ConvXL_R1C1;
+ static const ScCompiler::Convention *pConvXL_R1C1 = &ConvXL_R1C1;
+ 
++// static
++void ScCompiler::InitConventions()
++{
++    ConventionXL::Init();
++}
++
+ //-----------------------------------------------------------------------------
+ ScCompiler::ScCompiler( ScDocument* pDocument, const ScAddress& rPos,
+                         const ScTokenArray& rArr )
+@@ -1626,7 +1751,8 @@ void ScCompiler::CheckTabQuotes( String&
+ 
+ void ScCompiler::SetCompileXML( BOOL bVal )
+ {
+-    SetRefConvention( bVal ? pConvOOO_A1_XML : pConvOOO_A1 );
++    if (bVal)
++        SetRefConvention( pConvOOO_A1_XML );
+ }
+ void ScCompiler::SetRefConvention( ScAddress::Convention eConv )
+ {
+@@ -1968,15 +2094,16 @@ xub_StrLen ScCompiler::NextSymbol()
+ // Convert symbol to token
+ //---------------------------------------------------------------------------
+ 
+-BOOL ScCompiler::IsOpCode( const String& rName )
++BOOL ScCompiler::IsOpCode( const String& rName, bool bInArray )
+ {
+-    ScOpCodeHashMap::const_iterator iLook( mxSymbols->getHashMap()->find( rName));
+-    BOOL bFound = (iLook != mxSymbols->getHashMap()->end());
+-    if (bFound)
++    bool bFound = false;
++    OpCode oc = pConv->GetOpCode(mxSymbols, rName, bInArray);
++    if (oc != ocNone)
+     {
+         ScRawToken aToken;
+-        aToken.SetOpCode( (*iLook).second );
++        aToken.SetOpCode(oc);
+         pRawToken = aToken.Clone();
++        bFound = true;
+     }
+     else
+     {
+@@ -2776,8 +2903,9 @@ void ScCompiler::AutoCorrectParsedSymbol
+     }
+ }
+ 
+-BOOL ScCompiler::NextNewToken( bool bAllowBooleans )
++BOOL ScCompiler::NextNewToken( bool bInArray )
+ {
++    bool bAllowBooleans = bInArray;
+     xub_StrLen nSpaces = NextSymbol();
+ 
+ #if 0
+@@ -2836,7 +2964,7 @@ BOOL ScCompiler::NextNewToken( bool bAll
+             // IsReference().
+             // IsBoolean before isValue to catch inline bools without the kludge
+             //    for inline arrays.
+-            if ( !(bMayBeFuncName && IsOpCode( aUpper ))
++            if ( !(bMayBeFuncName && IsOpCode( aUpper, bInArray ))
+               && !IsReference( aOrg )
+               && !(bAllowBooleans && IsBoolean( aUpper ))
+               && !IsValue( aUpper )
+@@ -2988,7 +3116,7 @@ ScTokenArray* ScCompiler::CompileString(
+                 SetError(errCodeOverflow);
+             }
+             else if ( bAutoCorrect )
+-                aCorrectedFormula += mxSymbols->getSymbol(ocArrayClose);
++                aCorrectedFormula += pConv->GetSymbol(mxSymbols, ocArrayClose);
+         }
+ 
+         ScByteToken aToken( ocClose );
+@@ -2999,7 +3127,7 @@ ScTokenArray* ScCompiler::CompileString(
+                 SetError(errCodeOverflow); break;
+             }
+             if ( bAutoCorrect )
+-                aCorrectedFormula += mxSymbols->getSymbol(ocClose);
++                aCorrectedFormula += pConv->GetSymbol(mxSymbols, ocClose);
+         }
+     }
+     if ( nForced >= 2 )
+@@ -5001,9 +5129,17 @@ ScRangeData* ScCompiler::UpdateMoveTab( 
+ }
+ 
+ 
+-const String& ScCompiler::GetStringFromOpCode( OpCode eOpCode, bool bEnglish )
++const String& ScCompiler::GetStringFromOpCode( OpCode eOpCode, bool bEnglish, ScAddress::Convention eConv )
+ {
+-    return bEnglish ? mxSymbolsEnglish->getSymbol( eOpCode ) : mxSymbolsNative->getSymbol( eOpCode );
++    const ScCompiler::Convention* pConv = pConvOOO_A1; // default
++    switch (eConv)
++    {
++        case ScAddress::CONV_XL_A1:     pConv = pConvXL_A1;     break;
++        case ScAddress::CONV_XL_R1C1:   pConv = pConvXL_R1C1;   break;
++        // more case likely to follow in the future....
++    }
++    OpCodeMapPtr mxSymbols = bEnglish ? mxSymbolsEnglish : mxSymbolsNative;
++    return pConv->GetSymbol( mxSymbols, eOpCode );
+ }
+ 
+ ScToken* ScCompiler::CreateStringFromToken( String& rFormula, ScToken* pTokenP,
+@@ -5046,7 +5182,7 @@ ScToken* ScCompiler::CreateStringFromTok
+     else if( eOp >= ocInternalBegin && eOp <= ocInternalEnd )
+         rBuffer.appendAscii( pInternal[ eOp - ocInternalBegin ] );
+     else if( (USHORT) eOp < mxSymbolsNative->getSymbolCount())        // Keyword:
+-        rBuffer.append(mxSymbols->getSymbol(eOp));
++        rBuffer.append( pConv->GetSymbol(mxSymbols, eOp) );
+     else
+     {
+         DBG_ERROR("Unbekannter OpCode");
+@@ -5175,20 +5311,19 @@ void ScCompiler::CreateStringFromScMatri
+     SCSIZE nC, nMaxC, nR, nMaxR;
+ 
+     pMatrix->GetDimensions( nMaxC, nMaxR);
+-
+-    rBuffer.append( mxSymbols->getSymbol(ocArrayOpen) );
++    rBuffer.append( pConv->GetSymbol(mxSymbols, ocArrayOpen) );
+     for( nR = 0 ; nR < nMaxR ; nR++)
+     {
+         if( nR > 0)
+         {
+-            rBuffer.append( mxSymbols->getSymbol(ocArrayRowSep) );
++            rBuffer.append( pConv->GetSymbol(mxSymbols, ocArrayRowSep) );
+         }
+ 
+         for( nC = 0 ; nC < nMaxC ; nC++)
+         {
+             if( nC > 0)
+             {
+-                rBuffer.append( mxSymbols->getSymbol(ocArrayColSep) );
++                rBuffer.append( pConv->GetSymbol(mxSymbols, ocArrayColSep) );
+             }
+ 
+             if( pMatrix->IsValue( nC, nR ) )
+@@ -5213,7 +5348,7 @@ void ScCompiler::CreateStringFromScMatri
+                 AppendString( rBuffer, pMatrix->GetString( nC, nR ) );
+         }
+     }
+-    rBuffer.append( mxSymbols->getSymbol(ocArrayClose) );
++    rBuffer.append( pConv->GetSymbol(mxSymbols, ocArrayClose) );
+ }
+ 
+ void ScCompiler::AppendBoolean( rtl::OUStringBuffer& rBuffer, bool bVal )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/docoptio.cxx sc/source/core/tool/docoptio.cxx
+--- sc.clean/source/core/tool/docoptio.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/tool/docoptio.cxx	2008-03-19 20:37:44.000000000 -0400
+@@ -50,6 +50,7 @@
+ #include "scresid.hxx"
+ #include "sc.hrc"
+ #include "miscuno.hxx"
++#include "global.hxx"
+ 
+ using namespace utl;
+ using namespace rtl;
+@@ -105,7 +106,8 @@ ScDocOptions::ScDocOptions( const ScDocO
+ 			bMatchWholeCell( rCpy.bMatchWholeCell ),
+ 			bDoAutoSpell( rCpy.bDoAutoSpell ),
+             bLookUpColRowNames( rCpy.bLookUpColRowNames ),
+-            bFormulaRegexEnabled( rCpy.bFormulaRegexEnabled )
++            bFormulaRegexEnabled( rCpy.bFormulaRegexEnabled ),
++            eFormulaConv( rCpy.eFormulaConv )
+ {
+ }
+ 
+@@ -212,6 +214,7 @@ void ScDocOptions::ResetDocOptions()
+ 	bDoAutoSpell		= FALSE;
+ 	bLookUpColRowNames	= TRUE;
+     bFormulaRegexEnabled= TRUE;
++    eFormulaConv        = ScAddress::CONV_OOO;
+ }
+ 
+ //========================================================================
+@@ -287,7 +290,8 @@ SfxPoolItem* __EXPORT ScTpCalcItem::Clon
+ #define SCCALCOPT_SEARCHCRIT		9
+ #define SCCALCOPT_FINDLABEL			10
+ #define SCCALCOPT_REGEX             11
+-#define SCCALCOPT_COUNT             12
++#define SCCALCOPT_FORMULA_SYNTAX    12
++#define SCCALCOPT_COUNT             13
+ 
+ #define CFGPATH_DOCLAYOUT	"Office.Calc/Layout/Other"
+ 
+@@ -310,7 +314,8 @@ Sequence<OUString> ScDocCfg::GetCalcProp
+ 		"Other/Precision",					// SCCALCOPT_PRECISION
+ 		"Other/SearchCriteria",				// SCCALCOPT_SEARCHCRIT
+         "Other/FindLabel",                  // SCCALCOPT_FINDLABEL
+-        "Other/RegularExpressions"          // SCCALCOPT_REGEX
++        "Other/RegularExpressions",         // SCCALCOPT_REGEX
++        "Other/FormulaSyntax"               // SCCALCOPT_FORMULA_SYNTAX
+ 	};
+ 	Sequence<OUString> aNames(SCCALCOPT_COUNT);
+ 	OUString* pNames = aNames.getArray();
+@@ -403,6 +408,14 @@ ScDocCfg::ScDocCfg() :
+                     case SCCALCOPT_REGEX :
+                         SetFormulaRegexEnabled( ScUnoHelpFunctions::GetBoolFromAny( pValues[nProp] ) );
+                         break;
++                    case SCCALCOPT_FORMULA_SYNTAX:
++                    {
++                        if ((pValues[nProp] >>= nIntVal) && nIntVal > ScAddress::CONV_UNSPECIFIED && nIntVal < ScAddress::CONV_LAST)
++                            SetFormulaSyntax( static_cast<ScAddress::Convention>(nIntVal) );
++                        else
++                            SetFormulaSyntax(ScAddress::CONV_OOO);
++                    }
++                    break;
+ 				}
+ 			}
+ 		}
+@@ -486,6 +499,10 @@ IMPL_LINK( ScDocCfg, CalcCommitHdl, void
+ 				break;
+             case SCCALCOPT_REGEX :
+                 ScUnoHelpFunctions::SetBoolInAny( pValues[nProp], IsFormulaRegexEnabled() );
++                break;
++            case SCCALCOPT_FORMULA_SYNTAX:
++                pValues[nProp] <<= static_cast<sal_Int32>(GetFormulaSyntax());
++                break;
+ 		}
+ 	}
+ 	aCalcItem.PutProperties(aNames, aValues);
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/rangenam.cxx sc/source/core/tool/rangenam.cxx
+--- sc.clean/source/core/tool/rangenam.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/tool/rangenam.cxx	2008-03-20 21:29:41.000000000 -0400
+@@ -596,7 +596,7 @@ void ScRangeData::MakeValidName( String&
+ 	}
+ }
+ 
+-BOOL ScRangeData::IsNameValid( const String& rName, ScDocument* pDoc )
++BOOL ScRangeData::IsNameValid( const String& rName, ScDocument* pDoc, const ScAddress::Details& rDetails )
+ {
+     /*  If changed, ScfTools::ConvertToScDefinedName (sc/source/filter/ftools/ftools.cxx)
+         needs to be changed too. */
+@@ -612,12 +612,12 @@ BOOL ScRangeData::IsNameValid( const Str
+ 	// Parse nicht auf VALID pruefen, es reicht, wenn irgendein Bestandteil
+ 	// erkannt wurde
+ 	ScRange aRange;
+-	if( aRange.Parse( rName, pDoc ) )	// THIS IS WRONG
++	if( aRange.Parse( rName, pDoc, rDetails ) )
+ 		return FALSE;
+ 	else
+ 	{
+ 		ScAddress aAddr;
+-		if ( aAddr.Parse( rName, pDoc ) )	// THIS IS WRONG
++		if ( aAddr.Parse( rName, pDoc, rDetails ) )
+ 			return FALSE;
+ 	}
+ 	return TRUE;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/app/inputwin.cxx sc/source/ui/app/inputwin.cxx
+--- sc.clean/source/ui/app/inputwin.cxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/app/inputwin.cxx	2008-03-20 22:13:16.000000000 -0400
+@@ -1561,6 +1561,7 @@ ScNameInputType lcl_GetInputType( const 
+         ScViewData* pViewData = pViewSh->GetViewData();
+         ScDocument* pDoc = pViewData->GetDocument();
+         SCTAB nTab = pViewData->GetTabNo();
++        ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+         // test in same order as in SID_CURRENTCELL execute
+ 
+@@ -1570,20 +1571,20 @@ ScNameInputType lcl_GetInputType( const 
+         SCTAB nNameTab;
+         sal_Int32 nNumeric;
+ 
+-        if ( aRange.Parse( rText, pDoc ) & SCA_VALID )
++        if ( aRange.Parse( rText, pDoc, eConv ) & SCA_VALID )
+             eRet = SC_NAME_INPUT_NAMEDRANGE;
+-        else if ( aAddress.Parse( rText, pDoc ) & SCA_VALID )
++        else if ( aAddress.Parse( rText, pDoc, eConv ) & SCA_VALID )
+             eRet = SC_NAME_INPUT_CELL;
+-        else if ( aRangeUtil.MakeRangeFromName( rText, pDoc, nTab, aRange, RUTL_NAMES ) )
++        else if ( aRangeUtil.MakeRangeFromName( rText, pDoc, nTab, aRange, RUTL_NAMES, eConv ) )
+             eRet = SC_NAME_INPUT_NAMEDRANGE;
+-        else if ( aRangeUtil.MakeRangeFromName( rText, pDoc, nTab, aRange, RUTL_DBASE ) )
++        else if ( aRangeUtil.MakeRangeFromName( rText, pDoc, nTab, aRange, RUTL_DBASE, eConv ) )
+             eRet = SC_NAME_INPUT_DATABASE;
+         else if ( ByteString( rText, RTL_TEXTENCODING_ASCII_US ).IsNumericAscii() &&
+                   ( nNumeric = rText.ToInt32() ) > 0 && nNumeric <= MAXROW+1 )
+             eRet = SC_NAME_INPUT_ROW;
+         else if ( pDoc->GetTable( rText, nNameTab ) )
+             eRet = SC_NAME_INPUT_SHEET;
+-        else if ( ScRangeData::IsNameValid( rText, pDoc ) )     // nothing found, create new range?
++        else if ( ScRangeData::IsNameValid( rText, pDoc, eConv ) )     // nothing found, create new range?
+         {
+             if ( pViewData->GetSimpleArea( aRange ) )
+                 eRet = SC_NAME_INPUT_DEFINE;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/app/scmod.cxx sc/source/ui/app/scmod.cxx
+--- sc.clean/source/ui/app/scmod.cxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/app/scmod.cxx	2008-03-19 17:38:48.000000000 -0400
+@@ -1253,6 +1253,7 @@ void ScModule::ModifyOptions( const SfxI
+ 						 || rOldOpt.IsMatchWholeCell() != rNewOpt.IsMatchWholeCell()
+ 						 || rOldOpt.GetYear2000()	!= rNewOpt.GetYear2000()
+                          || rOldOpt.IsFormulaRegexEnabled() != rNewOpt.IsFormulaRegexEnabled()
++                         || rOldOpt.GetFormulaSyntax() != rNewOpt.GetFormulaSyntax()
+ 						 );
+ 			pDoc->SetDocOptions( rNewOpt );
+ 			pDocSh->SetDocumentModified();
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/consdlg.cxx sc/source/ui/dbgui/consdlg.cxx
+--- sc.clean/source/ui/dbgui/consdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/consdlg.cxx	2008-03-21 01:18:40.000000000 -0400
+@@ -198,6 +198,8 @@ void ScConsolidateDlg::Init()
+ 
+ 	aLbFunc.SelectEntryPos( FuncToLbPos( theConsData.eFunction ) );
+ 
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++
+ 	// Einlesen der Konsolidierungsbereiche
+ 	aLbConsAreas.Clear();
+ 	for ( i=0; i<theConsData.nDataAreaCount; i++ )
+@@ -207,7 +209,7 @@ void ScConsolidateDlg::Init()
+ 		{
+             ScRange( rArea.nColStart, rArea.nRowStart, rArea.nTab,
+                     rArea.nColEnd, rArea.nRowEnd, rArea.nTab ).Format( aStr,
+-                        SCR_ABS_3D, pDoc );
++                        SCR_ABS_3D, pDoc, eConv );
+             aLbConsAreas.InsertEntry( aStr );
+         }
+     }
+@@ -215,7 +217,7 @@ void ScConsolidateDlg::Init()
+ 	if ( theConsData.nTab < pDoc->GetTableCount() )
+     {
+         ScAddress( theConsData.nCol, theConsData.nRow, theConsData.nTab
+-                ).Format( aStr, SCA_ABS_3D, pDoc );
++                ).Format( aStr, SCA_ABS_3D, pDoc, eConv );
+         aEdDestArea.SetText( aStr );
+     }
+ 	else
+@@ -248,7 +250,7 @@ void ScConsolidateDlg::Init()
+ 		ScAreaNameIterator aIter( pDoc );
+ 		while ( aIter.Next( aStrName, aRange ) )
+ 		{
+-			aRange.Format( aStrArea, SCA_ABS_3D, pDoc );
++			aRange.Format( aStrArea, SCA_ABS_3D, pDoc, eConv );
+ 			pAreaData[nAt++].Set( aStrName, aStrArea, aIter.WasDBName() );
+ 		}
+ 	}
+@@ -305,14 +307,15 @@ void ScConsolidateDlg::SetReference( con
+ 
+ 		String		aStr;
+ 		USHORT	 	nFmt = SCR_ABS_3D;		 //!!! nCurTab fehlt noch
++        const ScAddress::Convention eConv = pDocP->GetAddressConvention();
+ 
+ 		if ( rRef.aStart.Tab() != rRef.aEnd.Tab() )
+ 			nFmt |= SCA_TAB2_3D;
+ 
+ 		if ( pRefInputEdit == &aEdDataArea)
+-            rRef.Format( aStr, nFmt, pDocP );
++            rRef.Format( aStr, nFmt, pDocP, eConv );
+ 		else if ( pRefInputEdit == &aEdDestArea )
+-            rRef.aStart.Format( aStr, nFmt, pDocP );
++            rRef.aStart.Format( aStr, nFmt, pDocP, eConv );
+ 
+ 		pRefInputEdit->SetRefString( aStr );
+ 	}
+@@ -369,11 +372,12 @@ BOOL ScConsolidateDlg::VerifyEdit( ScRef
+ 	SCTAB	nTab	= pViewData->GetTabNo();
+ 	BOOL	bEditOk = FALSE;
+ 	String	theCompleteStr;
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+ 	if ( pEd == &aEdDataArea )
+ 	{
+ 		bEditOk = pRangeUtil->IsAbsArea( pEd->GetText(), pDoc,
+-										 nTab, &theCompleteStr );
++										 nTab, &theCompleteStr, NULL, NULL, eConv );
+ 	}
+ 	else if ( pEd == &aEdDestArea )
+ 	{
+@@ -381,7 +385,7 @@ BOOL ScConsolidateDlg::VerifyEdit( ScRef
+ 
+ 		pRangeUtil->CutPosString( pEd->GetText(), aPosStr );
+ 		bEditOk = pRangeUtil->IsAbsPos( aPosStr, pDoc,
+-										nTab, &theCompleteStr );
++										nTab, &theCompleteStr, NULL, eConv );
+ 	}
+ 
+ 	if ( bEditOk )
+@@ -425,8 +429,9 @@ IMPL_LINK( ScConsolidateDlg, OkHdl, void
+ 		ScRefAddress aDestAddress;
+ 		SCTAB		nTab = pViewData->GetTabNo();
+ 		String		aDestPosStr( aEdDestArea.GetText() );
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+-		if ( pRangeUtil->IsAbsPos( aDestPosStr, pDoc, nTab, NULL, &aDestAddress ) )
++		if ( pRangeUtil->IsAbsPos( aDestPosStr, pDoc, nTab, NULL, &aDestAddress, eConv ) )
+ 		{
+ 			ScConsolidateParam	theOutParam( theConsData );
+ 			ScArea**			ppDataAreas = new ScArea*[nDataAreaCount];
+@@ -437,7 +442,7 @@ IMPL_LINK( ScConsolidateDlg, OkHdl, void
+ 			{
+ 				pArea = new ScArea;
+ 				pRangeUtil->MakeArea( aLbConsAreas.GetEntry( i ),
+-									  *pArea, pDoc, nTab );
++									  *pArea, pDoc, nTab, eConv );
+ 				ppDataAreas[i] = pArea;
+ 			}
+ 
+@@ -488,8 +493,9 @@ IMPL_LINK( ScConsolidateDlg, ClickHdl, P
+ 			String		aNewEntry( aEdDataArea.GetText() );
+ 			ScArea**	ppAreas = NULL;
+ 			USHORT		nAreaCount = 0;
++            const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+-			if ( pRangeUtil->IsAbsTabArea( aNewEntry, pDoc, &ppAreas, &nAreaCount, TRUE ) )
++			if ( pRangeUtil->IsAbsTabArea( aNewEntry, pDoc, &ppAreas, &nAreaCount, TRUE, eConv ) )
+ 			{
+ 				// IsAbsTabArea() legt ein Array von ScArea-Zeigern an,
+ 				// welche ebenfalls dynamisch erzeugt wurden.
+@@ -504,7 +510,7 @@ IMPL_LINK( ScConsolidateDlg, ClickHdl, P
+                         const ScArea& rArea = *(ppAreas[i]);
+                         ScRange( rArea.nColStart, rArea.nRowStart, rArea.nTab,
+                                 rArea.nColEnd, rArea.nRowEnd, rArea.nTab
+-                                ).Format( aNewArea, SCR_ABS_3D, pDoc );
++                                ).Format( aNewArea, SCR_ABS_3D, pDoc, eConv );
+ 
+ 						if ( aLbConsAreas.GetEntryPos( aNewArea )
+ 							 == LISTBOX_ENTRY_NOTFOUND )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/dbnamdlg.cxx sc/source/ui/dbgui/dbnamdlg.cxx
+--- sc.clean/source/ui/dbgui/dbnamdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/dbnamdlg.cxx	2008-03-20 23:08:31.000000000 -0400
+@@ -263,7 +263,7 @@ void ScDbNameDlg::Init()
+ 		theCurArea = ScRange( ScAddress( nStartCol, nStartRow, nStartTab ),
+ 							  ScAddress( nEndCol,   nEndRow,   nEndTab ) );
+ 
+-		theCurArea.Format( theAreaStr, ABS_DREF3D, pDoc );
++		theCurArea.Format( theAreaStr, ABS_DREF3D, pDoc, pDoc->GetAddressConvention() );
+ 
+ 		if ( pDBColl )
+ 		{
+@@ -342,7 +342,7 @@ void ScDbNameDlg::SetReference( const Sc
+ 		theCurArea = rRef;
+ 
+ 		String aRefStr;
+-        theCurArea.Format( aRefStr, ABS_DREF3D, pDocP );
++        theCurArea.Format( aRefStr, ABS_DREF3D, pDocP, pDocP->GetAddressConvention() );
+ 		aEdAssign.SetRefString( aRefStr );
+ 		aBtnHeader.Enable();
+ 		aBtnDoSize.Enable();
+@@ -437,7 +437,7 @@ void ScDbNameDlg::UpdateDBData( const St
+ 		pData->GetArea( nTab, nColStart, nRowStart, nColEnd, nRowEnd );
+ 		theCurArea = ScRange( ScAddress( nColStart, nRowStart, nTab ),
+ 							  ScAddress( nColEnd,	nRowEnd,   nTab ) );
+-		theCurArea.Format( theArea, ABS_DREF3D, pDoc );
++		theCurArea.Format( theArea, ABS_DREF3D, pDoc, pDoc->GetAddressConvention() );
+ 		aEdAssign.SetText( theArea );
+ 		aBtnAdd.SetText( aStrModify );
+ 		aBtnHeader.Check( pData->HasHeader() );
+@@ -511,7 +511,7 @@ IMPL_LINK( ScDbNameDlg, AddBtnHdl, void 
+ 			//	weil jetzt editiert werden kann, muss erst geparst werden
+ 			ScRange aTmpRange;
+ 			String aText = aEdAssign.GetText();
+-			if ( aTmpRange.ParseAny( aText, pDoc ) & SCA_VALID )
++			if ( aTmpRange.ParseAny( aText, pDoc, pDoc->GetAddressConvention() ) & SCA_VALID )
+ 			{
+ 				theCurArea = aTmpRange;
+ 				ScAddress aStart = theCurArea.aStart;
+@@ -730,7 +730,7 @@ IMPL_LINK( ScDbNameDlg, AssModifyHdl, vo
+ 
+ 	ScRange aTmpRange;
+ 	String aText = aEdAssign.GetText();
+-	if ( aTmpRange.ParseAny( aText, pDoc ) & SCA_VALID )
++	if ( aTmpRange.ParseAny( aText, pDoc, pDoc->GetAddressConvention() ) & SCA_VALID )
+ 		theCurArea = aTmpRange;
+ 
+ 	return 0;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/filtdlg.cxx sc/source/ui/dbgui/filtdlg.cxx
+--- sc.clean/source/ui/dbgui/filtdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/filtdlg.cxx	2008-03-20 23:37:05.000000000 -0400
+@@ -316,7 +316,7 @@ void ScFilterDlg::SetReference( const Sc
+ 		if ( rRef.aStart != rRef.aEnd )
+ 			RefInputStart( &aEdCopyArea );
+ 		String aRefStr;
+-        rRef.aStart.Format( aRefStr, SCA_ABS_3D, pDocP );
++        rRef.aStart.Format( aRefStr, SCA_ABS_3D, pDocP, pDocP->GetAddressConvention() );
+ 		aEdCopyArea.SetRefString( aRefStr );
+ 	}
+ }
+@@ -545,7 +545,7 @@ ScQueryItem* ScFilterDlg::GetOutputItem(
+ 		if ( STRING_NOTFOUND != nColonPos )
+ 			theCopyStr.Erase( nColonPos );
+ 
+-		USHORT nResult = theCopyPos.Parse( theCopyStr, pDoc );
++		USHORT nResult = theCopyPos.Parse( theCopyStr, pDoc, pDoc->GetAddressConvention() );
+ 		bCopyPosOk = ( SCA_VALID == (nResult & SCA_VALID) );
+ 	}
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/foptmgr.cxx sc/source/ui/dbgui/foptmgr.cxx
+--- sc.clean/source/ui/dbgui/foptmgr.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/foptmgr.cxx	2008-03-20 23:42:36.000000000 -0400
+@@ -153,8 +153,9 @@ void ScFilterOptionsMgr::Init()
+ 		ScDBCollection*	pDBColl		= pDoc->GetDBCollection();
+ 		String			theDbArea;
+ 		String			theDbName	= rStrNoName;
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+-		theCurArea.Format( theAreaStr, SCR_ABS_3D, pDoc );
++		theCurArea.Format( theAreaStr, SCR_ABS_3D, pDoc, eConv );
+ 
+ 		// Zielbereichsliste fuellen
+ 
+@@ -169,7 +170,7 @@ void ScFilterOptionsMgr::Init()
+ 		{
+ 			USHORT nInsert = rLbCopyPos.InsertEntry( aName );
+ 
+-			aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc );
++			aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc, eConv );
+ 			rLbCopyPos.SetEntryData( nInsert, new String( aRefStr ) );
+ 		}
+ 
+@@ -218,7 +219,7 @@ void ScFilterOptionsMgr::Init()
+ 			ScAddress( rQueryData.nDestCol,
+ 					   rQueryData.nDestRow,
+ 					   rQueryData.nDestTab
+-					 ).Format( aString, SCA_ABS_3D, pDoc );
++					 ).Format( aString, SCA_ABS_3D, pDoc, eConv );
+ 
+ 			rBtnCopyResult.Check( TRUE );
+ 			rEdCopyPos.SetText( aString );
+@@ -253,7 +254,7 @@ BOOL ScFilterOptionsMgr::VerifyPosStr( c
+ 	if ( STRING_NOTFOUND != nColonPos )
+ 		aPosStr.Erase( nColonPos );
+ 
+-	USHORT nResult = ScAddress().Parse( aPosStr, pDoc );
++	USHORT nResult = ScAddress().Parse( aPosStr, pDoc, pDoc->GetAddressConvention() );
+ 
+ 	return ( SCA_VALID == (nResult & SCA_VALID) );
+ }
+@@ -288,7 +289,7 @@ IMPL_LINK( ScFilterOptionsMgr, EdPosModi
+ 	if ( pEd == &rEdCopyPos )
+ 	{
+ 		String	theCurPosStr = pEd->GetText();
+-		USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc );
++		USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+ 
+ 		if ( SCA_VALID == (nResult & SCA_VALID) )
+ 		{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/sfiltdlg.cxx sc/source/ui/dbgui/sfiltdlg.cxx
+--- sc.clean/source/ui/dbgui/sfiltdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/sfiltdlg.cxx	2008-03-20 23:51:04.000000000 -0400
+@@ -197,7 +197,7 @@ void __EXPORT ScSpecialFilterDlg::Init( 
+ 		if (rQueryItem.GetAdvancedQuerySource(aAdvSource))
+ 		{
+ 			String aRefStr;
+-			aAdvSource.Format( aRefStr, SCR_ABS_3D, pDoc );
++			aAdvSource.Format( aRefStr, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
+ 			aEdFilterArea.SetRefString( aRefStr );
+ 		}
+ 	}
+@@ -260,11 +260,12 @@ void ScSpecialFilterDlg::SetReference( c
+ 			RefInputStart( pRefInputEdit );
+ 
+ 		String aRefStr;
++        const ScAddress::Convention eConv = pDocP->GetAddressConvention();
+ 
+ 		if ( pRefInputEdit == &aEdCopyArea)
+-			rRef.aStart.Format( aRefStr, SCA_ABS_3D, pDocP );
++			rRef.aStart.Format( aRefStr, SCA_ABS_3D, pDocP, eConv );
+ 		else if ( pRefInputEdit == &aEdFilterArea)
+-			rRef.Format( aRefStr, SCR_ABS_3D, pDocP );
++			rRef.Format( aRefStr, SCR_ABS_3D, pDocP, eConv );
+ 
+ 		pRefInputEdit->SetRefString( aRefStr );
+ 	}
+@@ -334,6 +335,7 @@ IMPL_LINK( ScSpecialFilterDlg, EndDlgHdl
+ 		BOOL			bEditInputOk	= TRUE;
+ 		BOOL			bQueryOk		= FALSE;
+ 		ScRange			theFilterArea;
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+ 		if ( aBtnCopyResult.IsChecked() )
+ 		{
+@@ -342,7 +344,7 @@ IMPL_LINK( ScSpecialFilterDlg, EndDlgHdl
+ 			if ( STRING_NOTFOUND != nColonPos )
+ 				theCopyStr.Erase( nColonPos );
+ 
+-			USHORT nResult = theAdrCopy.Parse( theCopyStr, pDoc );
++			USHORT nResult = theAdrCopy.Parse( theCopyStr, pDoc, eConv );
+ 
+ 			if ( SCA_VALID != (nResult & SCA_VALID) )
+ 			{
+@@ -357,7 +359,7 @@ IMPL_LINK( ScSpecialFilterDlg, EndDlgHdl
+ 
+ 		if ( bEditInputOk )
+ 		{
+-			USHORT nResult = ScRange().Parse( theAreaStr, pDoc );
++			USHORT nResult = ScRange().Parse( theAreaStr, pDoc, eConv );
+ 
+ 			if ( SCA_VALID != (nResult & SCA_VALID) )
+ 			{
+@@ -375,7 +377,7 @@ IMPL_LINK( ScSpecialFilterDlg, EndDlgHdl
+ 			 * ein ScQueryParam zu erzeugen:
+ 			 */
+ 
+-			USHORT	nResult = theFilterArea.Parse( theAreaStr, pDoc );
++			USHORT	nResult = theFilterArea.Parse( theAreaStr, pDoc, eConv );
+ 
+ 			if ( SCA_VALID == (nResult & SCA_VALID) )
+ 			{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/tpsort.cxx sc/source/ui/dbgui/tpsort.cxx
+--- sc.clean/source/ui/dbgui/tpsort.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/tpsort.cxx	2008-03-20 23:33:16.000000000 -0400
+@@ -633,6 +633,7 @@ void ScTabPageSortOptions::Init()
+ 		String			theDbArea;
+ 		String			theDbName	= aStrNoName;
+ 		const SCTAB	nCurTab		= pViewData->GetTabNo();
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+ 		aLbOutPos.Clear();
+ 		aLbOutPos.InsertEntry( aStrUndefined, 0 );
+@@ -646,7 +647,7 @@ void ScTabPageSortOptions::Init()
+ 		{
+ 			USHORT nInsert = aLbOutPos.InsertEntry( aName );
+ 
+-			aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc );
++			aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc, eConv );
+ 			aLbOutPos.SetEntryData( nInsert, new String( aRefStr ) );
+ 		}
+ 
+@@ -661,7 +662,7 @@ void ScTabPageSortOptions::Init()
+ 		ScAddress aScAddress( rSortData.nCol1, rSortData.nRow1, nCurTab );
+ 		ScRange( aScAddress,
+ 				 ScAddress( rSortData.nCol2, rSortData.nRow2, nCurTab )
+-			   ).Format( theArea, SCR_ABS, pDoc );
++			   ).Format( theArea, SCR_ABS, pDoc, eConv );
+ 
+ 		if ( pDBColl )
+ 		{
+@@ -762,7 +763,7 @@ void __EXPORT ScTabPageSortOptions::Rese
+ 					   rSortData.nDestRow,
+ 					   rSortData.nDestTab );
+ 
+-		theOutPos.Format( aStr, nFormat, pDoc );
++		theOutPos.Format( aStr, nFormat, pDoc, pDoc->GetAddressConvention() );
+ 		aBtnCopyResult.Check();
+ 		aLbOutPos.Enable();
+ 		aEdOutPos.Enable();
+@@ -874,7 +875,7 @@ int __EXPORT ScTabPageSortOptions::Deact
+ 			thePos.SetTab( pViewData->GetTabNo() );
+ 		}
+ 
+-		USHORT nResult = thePos.Parse( thePosStr, pDoc );
++		USHORT nResult = thePos.Parse( thePosStr, pDoc, pDoc->GetAddressConvention() );
+ 
+ 		bPosInputOk = ( SCA_VALID == (nResult & SCA_VALID) );
+ 
+@@ -993,7 +994,7 @@ void __EXPORT ScTabPageSortOptions::EdOu
+ 	if ( pEd == &aEdOutPos )
+ 	{
+ 		String	theCurPosStr = aEdOutPos.GetText();
+-		USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc );
++		USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+ 
+ 		if ( SCA_VALID == (nResult & SCA_VALID) )
+ 		{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/formdlg/formula.cxx sc/source/ui/formdlg/formula.cxx
+--- sc.clean/source/ui/formdlg/formula.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/formdlg/formula.cxx	2008-03-20 16:17:02.000000000 -0400
+@@ -306,7 +306,7 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings*
+ 
+ 			xub_StrLen nFStart = 0;
+ 			xub_StrLen nFEnd   = 0;
+-			if ( ScFormulaUtil::GetNextFunc( aFormula, FALSE, nFStart, &nFEnd) )
++			if ( ScFormulaUtil::GetNextFunc( aFormula, FALSE, pDoc->GetAddressConvention(), nFStart, &nFEnd, NULL, NULL ) )
+ 			{
+ 				pScMod->InputReplaceSelection( aFormula );
+ 				pScMod->InputSetSelection( nFStart, nFEnd );
+@@ -523,7 +523,7 @@ void ScFormulaDlg::FillControls()
+ 	const ScFuncDesc*		pOldFuncDesc=pFuncDesc;
+ 	BOOL			bTestFlag=FALSE;
+ 
+-	if ( ScFormulaUtil::GetNextFunc( aFormula, FALSE,
++	if ( ScFormulaUtil::GetNextFunc( aFormula, FALSE, pDoc->GetAddressConvention(),
+ 									 nNextFStart, &nNextFEnd, &pFuncDesc, &pArgArr ) )
+ 	{
+ 		bTestFlag=(pOldFuncDesc!=pFuncDesc);
+@@ -564,7 +564,7 @@ void ScFormulaDlg::FillControls()
+ 
+ 		if(bTestFlag) aScParaWin.SetArgCount(nArgs,nOffset);
+ 		USHORT nActiv=0;
+-		xub_StrLen nArgPos=ScFormulaUtil::GetArgStart( aFormula, nFStart, 0 );
++		xub_StrLen nArgPos=ScFormulaUtil::GetArgStart( aFormula, nFStart, 0, pDoc->GetAddressConvention() );
+ 		xub_StrLen nEditPos=(xub_StrLen) pMEdit->GetSelection().Min();
+ 		BOOL	bFlag=FALSE;
+ 
+@@ -595,11 +595,11 @@ void ScFormulaDlg::FillControls()
+ 	}
+ 		//	Test, ob vorne/hinten noch mehr Funktionen sind
+ 
+-	xub_StrLen nTempStart = ScFormulaUtil::GetArgStart( aFormula, nFStart, 0 );
+-	BOOL bNext = ScFormulaUtil::GetNextFunc( aFormula, FALSE, nTempStart );
++	xub_StrLen nTempStart = ScFormulaUtil::GetArgStart( aFormula, nFStart, 0, pDoc->GetAddressConvention() );
++	BOOL bNext = ScFormulaUtil::GetNextFunc( aFormula, FALSE, pDoc->GetAddressConvention(), nTempStart );
+ 	nTempStart=(xub_StrLen)pMEdit->GetSelection().Min();
+ 	pData->SetFStart(nTempStart);
+-	BOOL bPrev = ScFormulaUtil::GetNextFunc( aFormula, TRUE, nTempStart );
++	BOOL bPrev = ScFormulaUtil::GetNextFunc( aFormula, TRUE, pDoc->GetAddressConvention(), nTempStart );
+ 	aBtnBackward.Enable(bPrev);
+ 	aBtnForward.Enable(bNext);
+ }
+@@ -809,7 +809,7 @@ void ScFormulaDlg::UpdateFunctionDesc()
+ 		{
+             pDesc->InitArgumentInfo();      // full argument info is needed
+ 
+-			String aSig = pDesc->GetSignature();
++			String aSig = pDesc->GetSignature(pDoc->GetAddressConvention());
+ 
+ 			aFtFuncName.SetText( aSig );
+ 			if(pDesc->pFuncDesc)
+@@ -819,7 +819,7 @@ void ScFormulaDlg::UpdateFunctionDesc()
+ 			ResizeArgArr( pDesc );
+ 
+ 			if ( pArgArr && pArgArr[0] && pArgArr[0]->Len() )		// noch Argumente da?
+-				aSig = pDesc->GetFormulaString( pArgArr );			// fuer Eingabezeile
++				aSig = pDesc->GetFormulaString( pArgArr, pDoc->GetAddressConvention() );			// fuer Eingabezeile
+ 			//@ pScMod->InputReplaceSelection( aSig );
+ 		}
+ 	}
+@@ -899,7 +899,7 @@ void ScFormulaDlg::EditThisFunc(xub_StrL
+ 
+ 	//@bFound = ScFormulaUtil::GetNextFunc( aFormula, FALSE, nNextFStart, &nNextFEnd, &pFuncDesc );
+ 
+-	bFound = ScFormulaUtil::GetNextFunc( aFormula, FALSE, nNextFStart, &nNextFEnd);
++	bFound = ScFormulaUtil::GetNextFunc( aFormula, FALSE, pDoc->GetAddressConvention(), nNextFStart, &nNextFEnd);
+ 	if ( bFound )
+ 	{
+ 		xub_StrLen nFEnd;
+@@ -959,15 +959,15 @@ void ScFormulaDlg::EditNextFunc( BOOL bF
+ 	BOOL bFound;
+ 	if ( bForward )
+ 	{
+-		nNextFStart	= ScFormulaUtil::GetArgStart( aFormula, nFStart, 0 );
++		nNextFStart	= ScFormulaUtil::GetArgStart( aFormula, nFStart, 0, pDoc->GetAddressConvention() );
+ 		//@bFound = ScFormulaUtil::GetNextFunc( aFormula, FALSE, nNextFStart, &nNextFEnd, &pFuncDesc );
+-		bFound = ScFormulaUtil::GetNextFunc( aFormula, FALSE, nNextFStart, &nNextFEnd);
++		bFound = ScFormulaUtil::GetNextFunc( aFormula, FALSE, pDoc->GetAddressConvention(), nNextFStart, &nNextFEnd);
+ 	}
+ 	else
+ 	{
+ 		nNextFStart	= nFStart;
+ 		//@bFound = ScFormulaUtil::GetNextFunc( aFormula, TRUE, nNextFStart, &nNextFEnd, &pFuncDesc );
+-		bFound = ScFormulaUtil::GetNextFunc( aFormula, TRUE, nNextFStart, &nNextFEnd);
++		bFound = ScFormulaUtil::GetNextFunc( aFormula, TRUE, pDoc->GetAddressConvention(), nNextFStart, &nNextFEnd);
+ 	}
+ 
+ 	if ( bFound )
+@@ -1012,8 +1012,8 @@ void ScFormulaDlg::EditFuncParas(xub_Str
+ 
+ 		nArgs = pFuncDesc->nArgCount;
+ 
+-		xub_StrLen nArgPos=ScFormulaUtil::GetArgStart( aFormula, nFStart, 0 );
+-		pArgArr = ScFormulaUtil::GetArgStrings( aFormula, nFStart, pFuncDesc->nArgCount );
++		xub_StrLen nArgPos=ScFormulaUtil::GetArgStart( aFormula, nFStart, 0, pDoc->GetAddressConvention() );
++		pArgArr = ScFormulaUtil::GetArgStrings( aFormula, nFStart, pFuncDesc->nArgCount, pDoc->GetAddressConvention() );
+ 
+ 		USHORT nActiv=aScParaWin.GetSliderPos();
+ 		BOOL	bFlag=FALSE;
+@@ -1068,8 +1068,6 @@ BOOL ScFormulaDlg::CalcValue( const Stri
+ 		{
+ 			ScFormulaCell* pFCell = new ScFormulaCell( pDoc, aCursorPos, rStrExp );
+ 
+-			ScCompiler*	pCompi=new ScCompiler( pDoc, aCursorPos, *(pFCell->GetCode()));
+-
+ 			// #35521# HACK! um bei ColRowNames kein #REF! zu bekommen,
+ 			// wenn ein Name eigentlich als Bereich in die Gesamt-Formel
+ 			// eingefuegt wird, bei der Einzeldarstellung aber als
+@@ -1129,7 +1127,6 @@ BOOL ScFormulaDlg::CalcValue( const Stri
+ 			}
+ 
+ 			delete pFCell;
+-			delete pCompi;
+ 		}
+ 		else
+ 			bResult = FALSE;
+@@ -1143,7 +1140,7 @@ void ScFormulaDlg::UpdateValues()
+ 	ScModule* pScMod = SC_MOD();
+ 	String aStrResult;
+ 
+-	if ( CalcValue( pFuncDesc->GetFormulaString( pArgArr ), aStrResult ) )
++	if ( CalcValue( pFuncDesc->GetFormulaString( pArgArr, pDoc->GetAddressConvention() ), aStrResult ) )
+ 		aWndResult.SetValue( aStrResult );
+ 
+ 	aStrResult.Erase();
+@@ -1206,7 +1203,7 @@ IMPL_LINK( ScFormulaDlg, FxHdl, ScParaWi
+ 		xub_StrLen nFormulaStrPos = pData->GetFStart();
+ 
+ 		String aFormula = pScMod->InputGetFormulaStr();
+-		xub_StrLen n1 = ScFormulaUtil::GetArgStart( aFormula, nFormulaStrPos, nEdFocus+pData->GetOffset() );
++		xub_StrLen n1 = ScFormulaUtil::GetArgStart( aFormula, nFormulaStrPos, nEdFocus+pData->GetOffset(), pDoc->GetAddressConvention() );
+ 
+ 		pData->SetEdFocus( nEdFocus );
+ 		pData->SaveValues();
+@@ -1335,7 +1332,7 @@ IMPL_LINK( ScFormulaDlg, FormulaCursorHd
+ 
+ 		if(nFStart<nPos)
+ 		{
+-			xub_StrLen nPos1=ScFormulaUtil::GetFunctionEnd(aString,nFStart);
++			xub_StrLen nPos1=ScFormulaUtil::GetFunctionEnd(aString, nFStart, pDoc->GetAddressConvention());
+ 
+ 			if(nPos1>nPos || nPos1==STRING_NOTFOUND)
+ 			{
+@@ -1356,7 +1353,7 @@ IMPL_LINK( ScFormulaDlg, FormulaCursorHd
+ 				}
+ 				if(nCount==0)
+ 				{
+-					nFStart=ScFormulaUtil::GetFunctionStart(aString,n,TRUE);
++					nFStart = ScFormulaUtil::GetFunctionStart( aString, n, TRUE, pDoc->GetAddressConvention() );
+ 					EditThisFunc(nFStart);
+ 				}
+ 				else
+@@ -1382,7 +1379,7 @@ void ScFormulaDlg::UpdateSelection()
+ 
+ 	pScMod->InputSetSelection((xub_StrLen)aFuncSel.Min(),(xub_StrLen)aFuncSel.Max());
+ 
+-	pScMod->InputReplaceSelection( pFuncDesc->GetFormulaString( pArgArr ) );
++	pScMod->InputReplaceSelection( pFuncDesc->GetFormulaString( pArgArr, pDoc->GetAddressConvention() ) );
+ 	pMEdit->SetText(pScMod->InputGetFormulaStr());
+ 	xub_StrLen PrivStart, PrivEnd;
+ 	pScMod->InputGetSelection( PrivStart, PrivEnd);
+@@ -1392,7 +1389,7 @@ void ScFormulaDlg::UpdateSelection()
+ 	nArgs = pFuncDesc->nArgCount;
+ 
+ 	String aFormula=pMEdit->GetText();
+-	xub_StrLen nArgPos=ScFormulaUtil::GetArgStart( aFormula,PrivStart,0);
++	xub_StrLen nArgPos=ScFormulaUtil::GetArgStart( aFormula, PrivStart, 0, pDoc->GetAddressConvention() );
+ 
+ 	USHORT nPos=aScParaWin.GetActiveLine();
+ 
+@@ -1500,6 +1497,8 @@ void ScFormulaDlg::SetReference( const S
+ 			RefInputStart(aScParaWin.GetActiveEdit());
+ 		}
+ 
++        ScAddress::Convention eConv = pRefDoc->GetAddressConvention();
++
+ 		BOOL bOtherDoc = ( pRefDoc != pDoc && pRefDoc->GetDocumentShell()->HasName() );
+ 		if ( bOtherDoc )
+ 		{
+@@ -1508,7 +1507,7 @@ void ScFormulaDlg::SetReference( const S
+ 			DBG_ASSERT(rRef.aStart.Tab()==rRef.aEnd.Tab(), "nStartTab!=nEndTab");
+ 
+ 			String aTmp;
+-			rRef.Format( aTmp, SCA_VALID|SCA_TAB_3D, pRefDoc );		// immer 3d
++			rRef.Format( aTmp, SCA_VALID|SCA_TAB_3D, pRefDoc, eConv );		// immer 3d
+ 
+ 			SfxObjectShell* pObjSh = pRefDoc->GetDocumentShell();
+ 
+@@ -1526,7 +1525,7 @@ void ScFormulaDlg::SetReference( const S
+ 			USHORT nFmt = ( rRef.aStart.Tab() == aCursorPos.Tab() )
+ 								? SCA_VALID
+ 								: SCA_VALID | SCA_TAB_3D;
+-			rRef.Format( aRefStr, nFmt, pRefDoc );
++			rRef.Format( aRefStr, nFmt, pRefDoc, eConv );
+ 		}
+ 
+ 		aEdRef.ReplaceSelected( aRefStr );
+@@ -1648,6 +1647,8 @@ void ScFormulaDlg::UpdateTokenArray( con
+ 
+ xub_StrLen ScFormulaDlg::GetFunctionPos(xub_StrLen nPos)
+ {
++    const sal_Unicode sep = ScCompiler::GetStringFromOpCode(ocSep, false, pDoc->GetAddressConvention()).GetChar(0);
++
+ 	xub_StrLen nTokPos=1;
+ 	xub_StrLen nOldTokPos=1;
+ 	xub_StrLen nFuncPos=STRING_NOTFOUND;    //@ Testweise
+@@ -1673,7 +1674,7 @@ xub_StrLen ScFormulaDlg::GetFunctionPos(
+ 
+ 			if(eOp==ocPush || eOp==ocSpaces)
+ 			{
+-				xub_StrLen n1=aFormString.Search(';',nTokPos);
++				xub_StrLen n1=aFormString.Search(sep, nTokPos);
+ 				xub_StrLen n2=aFormString.Search(')',nTokPos);
+ 				xub_StrLen nXXX=nTokPos;
+ 				if(n1<n2)
+@@ -1903,7 +1904,7 @@ IMPL_LINK( ScFormulaDlg, FuncSelHdl, ScF
+ 		{
+             pDesc->InitArgumentInfo();      // full argument info is needed
+ 
+-			String aSig = pDesc->GetSignature();
++			String aSig = pDesc->GetSignature(pDoc->GetAddressConvention());
+ 			if(pDesc->pFuncName)
+ 				aFtHeadLine.SetText( *(pDesc->pFuncName) );
+ 			else
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/crnrdlg.hxx sc/source/ui/inc/crnrdlg.hxx
+--- sc.clean/source/ui/inc/crnrdlg.hxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/inc/crnrdlg.hxx	2008-03-21 12:00:22.000000000 -0400
+@@ -52,6 +52,7 @@
+ #include <vcl/lstbox.hxx>
+ #endif
+ 
++#include <hash_map>
+ 
+ class ScViewData;
+ class ScDocument;
+@@ -96,6 +97,8 @@ private:
+ 	ScRangePairListRef	xColNameRanges;
+ 	ScRangePairListRef	xRowNameRanges;
+ 
++    typedef ::std::hash_map< String, ScRange, ScStringHashCode, ::std::equal_to<String> > NameRangeMap;
++    NameRangeMap    aRangeMap;
+ 	ScViewData*		pViewData;
+ 	ScDocument*		pDoc;
+ 	ScRefEdit*		pEdActive;
+@@ -105,7 +108,7 @@ private:
+ private:
+ 	void Init				();
+ 	void UpdateNames		();
+-	void UpdateRangeData	( const String& rStrName, BOOL bColName );
++	void UpdateRangeData	( const ScRange& rRange, BOOL bColName );
+ 	void SetColRowData( const ScRange& rLabelRange,BOOL bRef=FALSE);
+ 	void AdjustColRowData( const ScRange& rDataRange,BOOL bRef=FALSE);
+ 	DECL_LINK( CancelBtnHdl, void * );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/optdlg.hrc sc/source/ui/inc/optdlg.hrc
+--- sc.clean/source/ui/inc/optdlg.hrc	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/inc/optdlg.hrc	2008-03-19 16:21:34.000000000 -0400
+@@ -78,6 +78,8 @@
+ #define BTN_MATCH			18
+ #define BTN_LOOKUP			19
+ #define BTN_REGEX           20
++#define FT_FORMULA_SYNTAX   21
++#define LB_FORMULA_SYNTAX   22
+ 
+ // TP_VIEW:
+ #define BTN_VSCROLL			1
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/tpcalc.hxx sc/source/ui/inc/tpcalc.hxx
+--- sc.clean/source/ui/inc/tpcalc.hxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/inc/tpcalc.hxx	2008-03-19 18:34:51.000000000 -0400
+@@ -61,6 +61,8 @@
+ #include "editfield.hxx"
+ #endif
+ 
++#include "vcl/lstbox.hxx"
++
+ //===================================================================
+ 
+ class ScDocOptions;
+@@ -101,6 +103,8 @@ private:
+ 	CheckBox		aBtnMatch;
+     CheckBox        aBtnRegex;
+ 	CheckBox		aBtnLookUp;
++    FixedText       aFtFormulaSyntax;
++    ListBox         aLBFormulaSyntax;
+ 
+ 	FixedText		aFtPrec;
+ 	NumericField	aEdPrec;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/miscdlgs/crnrdlg.cxx sc/source/ui/miscdlgs/crnrdlg.cxx
+--- sc.clean/source/ui/miscdlgs/crnrdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/miscdlgs/crnrdlg.cxx	2008-03-21 12:17:41.000000000 -0400
+@@ -289,8 +289,9 @@ void ScColRowNameRangesDlg::SetColRowDat
+ 	}
+ 	if ( bValid )
+ 	{
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 		String aStr;
+-		theCurArea.Format( aStr, SCR_ABS_3D, pDoc );
++		theCurArea.Format( aStr, SCR_ABS_3D, pDoc, eConv );
+ 
+ 		if(bRef)
+ 			aEdAssign.SetRefString( aStr );
+@@ -298,7 +299,7 @@ void ScColRowNameRangesDlg::SetColRowDat
+ 			aEdAssign.SetText( aStr );
+ 
+ 		aEdAssign.SetSelection( Selection( SELECTION_MAX, SELECTION_MAX ) );
+-		theCurData.Format( aStr, SCR_ABS_3D, pDoc );
++		theCurData.Format( aStr, SCR_ABS_3D, pDoc, eConv );
+ 
+ 		if(bRef)
+ 			aEdAssign2.SetRefString( aStr );
+@@ -393,7 +394,7 @@ void ScColRowNameRangesDlg::AdjustColRow
+ 		}
+ 	}
+ 	String aStr;
+-	theCurData.Format( aStr, SCR_ABS_3D, pDoc );
++	theCurData.Format( aStr, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
+ 
+ 	if(bRef)
+ 		aEdAssign2.SetRefString( aStr );
+@@ -514,6 +515,7 @@ void ScColRowNameRangesDlg::UpdateNames(
+ 	aLbRange.SetUpdateMode( FALSE );
+ 	//-----------------------------------------------------------
+ 	aLbRange.Clear();
++    aRangeMap.clear();
+ 	aEdAssign.SetText( EMPTY_STRING );
+ 
+ 	ULONG nCount, j;
+@@ -527,6 +529,7 @@ void ScColRowNameRangesDlg::UpdateNames(
+ 	SCTAB nTab2;
+ 	String rString;
+ 	String strShow;
++    const ScAddress::Details aDetails(pDoc->GetAddressConvention());
+ 
+ 	String aString;
+ 	String strDelim = String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM( " --- " ));
+@@ -541,7 +544,8 @@ void ScColRowNameRangesDlg::UpdateNames(
+ 			nCount, pDoc );
+ 		for ( j=0; j < nCount; j++ )
+ 		{
+-			ppSortArray[j]->GetRange(0).Format( aString, SCR_ABS_3D, pDoc );
++            const ScRange aRange(ppSortArray[j]->GetRange(0));
++			aRange.Format( aString, SCR_ABS_3D, pDoc, aDetails );
+ 
+ 			//@008 Hole Bereichsparameter aus Dok
+ 			ppSortArray[j]->GetRange(0).GetVars( nCol1, nRow1, nTab1,
+@@ -571,6 +575,7 @@ void ScColRowNameRangesDlg::UpdateNames(
+ 			String aInsStr = aString;
+ 			aInsStr += strShow;
+ 			nPos = aLbRange.InsertEntry( aInsStr );
++            aRangeMap.insert( NameRangeMap::value_type(aInsStr, aRange) );
+ 			aLbRange.SetEntryData( nPos, (void*)nEntryDataCol );
+ 		}
+ 		delete [] ppSortArray;
+@@ -586,7 +591,8 @@ void ScColRowNameRangesDlg::UpdateNames(
+ 			nCount, pDoc );
+ 		for ( j=0; j < nCount; j++ )
+ 		{
+-			ppSortArray[j]->GetRange(0).Format( aString, SCR_ABS_3D, pDoc );
++            const ScRange aRange(ppSortArray[j]->GetRange(0));
++			aRange.Format( aString, SCR_ABS_3D, pDoc, aDetails );
+ 
+ 			//@008 Ab hier baue String fuer Zeilen
+ 			ppSortArray[j]->GetRange(0).GetVars( nCol1, nRow1, nTab1,
+@@ -614,6 +620,7 @@ void ScColRowNameRangesDlg::UpdateNames(
+ 			String aInsStr = aString;
+ 			aInsStr += strShow;
+ 			nPos = aLbRange.InsertEntry( aInsStr );
++            aRangeMap.insert( NameRangeMap::value_type(aInsStr, aRange) );
+ 			aLbRange.SetEntryData( nPos, (void*)nEntryDataRow );
+ 		}
+ 		delete [] ppSortArray;
+@@ -639,40 +646,28 @@ void ScColRowNameRangesDlg::UpdateNames(
+ #*
+ #************************************************************************/
+ 
+-void ScColRowNameRangesDlg::UpdateRangeData( const String& rRangeStr, BOOL bColName )
++void ScColRowNameRangesDlg::UpdateRangeData( const ScRange& rRange, BOOL bColName )
+ {
+-	ScRange aRange;
+-	String aRefString=rRangeStr;
+-
+-	//@008 Suchen nach Erweiterung u. rausschmeissen
+-	xub_StrLen nPosExt=rRangeStr.Search( '[',0 );
+-
+-	if(nPosExt!=STRING_NOTFOUND)
+-	{
+-		nPosExt--;
+-		aRefString.Erase(nPosExt);
+-	}
+-	aRange.ParseAny( aRefString, pDoc );
+-
+     ScRangePair* pPair = NULL;
+ 	BOOL bFound = FALSE;
+-    if ( bColName && (pPair = xColNameRanges->Find( aRange )) != NULL )
++    if ( bColName && (pPair = xColNameRanges->Find( rRange )) != NULL )
+ 		bFound = TRUE;
+-    else if ( !bColName && (pPair = xRowNameRanges->Find( aRange )) != NULL )
++    else if ( !bColName && (pPair = xRowNameRanges->Find( rRange )) != NULL )
+ 		bFound = TRUE;
+ 
+ 	if ( bFound )
+ 	{
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 		String aStr;
+-		theCurArea = aRange;
+-		theCurArea.Format( aStr, SCR_ABS_3D, pDoc );
++		theCurArea = rRange;
++		theCurArea.Format( aStr, SCR_ABS_3D, pDoc, eConv );
+ 		aEdAssign.SetText( aStr );
+ 		aBtnAdd.Disable();
+ 		aBtnRemove.Enable();
+ 		aBtnColHead.Check( bColName );
+ 		aBtnRowHead.Check( !bColName );
+ 		theCurData = pPair->GetRange(1);
+-		theCurData.Format( aStr, SCR_ABS_3D, pDoc );
++		theCurData.Format( aStr, SCR_ABS_3D, pDoc, eConv );
+ 		aEdAssign2.SetText( aStr );
+ 	}
+ 	else
+@@ -790,10 +785,11 @@ IMPL_LINK( ScColRowNameRangesDlg, AddBtn
+ 
+ 	if ( aNewArea.Len() > 0 && aNewData.Len() > 0 )
+ 	{
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 		ScRange aRange1, aRange2;
+ 		BOOL bOk1;
+-        if ( (bOk1 = ((aRange1.ParseAny( aNewArea, pDoc ) & SCA_VALID) == SCA_VALID)) != FALSE
+-		  && ((aRange2.ParseAny( aNewData, pDoc ) & SCA_VALID) == SCA_VALID) )
++        if ( (bOk1 = ((aRange1.ParseAny( aNewArea, pDoc, eConv ) & SCA_VALID) == SCA_VALID)) != FALSE
++		  && ((aRange2.ParseAny( aNewData, pDoc, eConv ) & SCA_VALID) == SCA_VALID) )
+ 		{
+ 			theCurArea = aRange1;
+ 			AdjustColRowData( aRange2 );
+@@ -860,26 +856,16 @@ IMPL_LINK( ScColRowNameRangesDlg, Remove
+ 	USHORT nSelectPos = aLbRange.GetSelectEntryPos();
+ 	BOOL bColName =
+ 		((ULONG)aLbRange.GetEntryData( nSelectPos ) == nEntryDataCol);
+-	ScRange aRange;
+-
+-	//@008 Suchen nach Erweiterung u. rausschmeissen
+-	String aRefString=aRangeStr;
+-
+-	xub_StrLen nPosExt=aRangeStr.Search( '[', 0 );
+-
+-	if(nPosExt!=STRING_NOTFOUND)
+-	{
+-		nPosExt--;
+-		aRefString.Erase(nPosExt);
+-	}
+-
+-	aRange.ParseAny( aRefString, pDoc );
++    NameRangeMap::const_iterator itr = aRangeMap.find(aRangeStr);
++    if (itr == aRangeMap.end())
++        return 0;
++    const ScRange& rRange = itr->second;
+ 
+     ScRangePair* pPair = NULL;
+ 	BOOL bFound = FALSE;
+-    if ( bColName && (pPair = xColNameRanges->Find( aRange )) != NULL )
++    if ( bColName && (pPair = xColNameRanges->Find( rRange )) != NULL )
+ 		bFound = TRUE;
+-    else if ( !bColName && (pPair = xRowNameRanges->Find( aRange )) != NULL )
++    else if ( !bColName && (pPair = xRowNameRanges->Find( rRange )) != NULL )
+ 		bFound = TRUE;
+ 	if ( bFound )
+ 	{
+@@ -971,11 +957,12 @@ IMPL_LINK( ScColRowNameRangesDlg, Range1
+ 			aRangeStr = aLbRange.GetSelectEntry();
+ 		}
+ 	}
+-	if ( aRangeStr.Len() && aRangeStr.GetChar(0) == '$' )
++    NameRangeMap::const_iterator itr = aRangeMap.find(aRangeStr);
++    if ( itr != aRangeMap.end() )
+ 	{
+ 		BOOL bColName =
+ 			((ULONG)aLbRange.GetEntryData( nSelectPos ) == nEntryDataCol);
+-		UpdateRangeData( aRangeStr, bColName );
++		UpdateRangeData( itr->second, bColName );
+ 		aBtnAdd.Disable();
+ 		aBtnRemove.Enable();
+ 	}
+@@ -1035,7 +1022,7 @@ IMPL_LINK( ScColRowNameRangesDlg, Range1
+ 	if ( aNewArea.Len() > 0 )
+ 	{
+ 		ScRange aRange;
+-		if ( (aRange.ParseAny( aNewArea, pDoc ) & SCA_VALID) == SCA_VALID )
++		if ( (aRange.ParseAny( aNewArea, pDoc, pDoc->GetAddressConvention() ) & SCA_VALID) == SCA_VALID )
+ 		{
+ 			SetColRowData( aRange );
+ 			bValid = TRUE;
+@@ -1083,7 +1070,7 @@ IMPL_LINK( ScColRowNameRangesDlg, Range2
+ 	if ( aNewData.Len() > 0 )
+ 	{
+ 		ScRange aRange;
+-		if ( (aRange.ParseAny( aNewData, pDoc ) & SCA_VALID) == SCA_VALID )
++		if ( (aRange.ParseAny( aNewData, pDoc, pDoc->GetAddressConvention() ) & SCA_VALID) == SCA_VALID )
+ 		{
+ 			AdjustColRowData( aRange );
+ 			aBtnAdd.Enable();
+@@ -1125,7 +1112,7 @@ IMPL_LINK( ScColRowNameRangesDlg, ColCli
+ 		{
+ 			theCurArea.aEnd.SetRow( MAXROW - 1 );
+ 			String aStr;
+-			theCurArea.Format( aStr, SCR_ABS_3D, pDoc );
++			theCurArea.Format( aStr, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
+ 			aEdAssign.SetText( aStr );
+ 		}
+ 		ScRange aRange( theCurData );
+@@ -1163,7 +1150,7 @@ IMPL_LINK( ScColRowNameRangesDlg, RowCli
+ 		{
+ 			theCurArea.aEnd.SetCol( MAXCOL - 1 );
+ 			String aStr;
+-			theCurArea.Format( aStr, SCR_ABS_3D, pDoc );
++			theCurArea.Format( aStr, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
+ 			aEdAssign.SetText( aStr );
+ 		}
+ 		ScRange aRange( theCurData );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/miscdlgs/solvrdlg.cxx sc/source/ui/miscdlgs/solvrdlg.cxx
+--- sc.clean/source/ui/miscdlgs/solvrdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/miscdlgs/solvrdlg.cxx	2008-03-21 01:29:10.000000000 -0400
+@@ -126,7 +126,7 @@ void __EXPORT ScSolverDlg::Init()
+     aEdVariableCell.SetLoseFocusHdl ( aLink );
+     aRBVariableCell.SetLoseFocusHdl ( aLink );
+ 
+-	theFormulaCell.Format( aStr, SCA_ABS );
++	theFormulaCell.Format( aStr, SCA_ABS, pDoc, pDoc->GetAddressConvention() );
+ 
+ 	aEdFormulaCell.SetText( aStr );
+ 	aEdFormulaCell.GrabFocus();
+@@ -172,7 +172,7 @@ void ScSolverDlg::SetReference( const Sc
+ 								? SCA_ABS
+ 								: SCA_ABS_3D;
+ 
+-        aAdr.Format( aStr, nFmt, pDocP );
++        aAdr.Format( aStr, nFmt, pDocP, pDocP->GetAddressConvention() );
+ 		pEdActive->SetRefString( aStr );
+ 
+ 		if ( pEdActive == &aEdFormulaCell )
+@@ -241,8 +241,9 @@ IMPL_LINK( ScSolverDlg, BtnHdl, PushButt
+ 		// 2. verweist die Formel-Koordinate wirklich auf eine Formelzelle?
+ 		// 3. wurde ein korrekter Zielwert eingegeben
+ 
+-		USHORT	nRes1 = theFormulaCell .Parse( aEdFormulaCell.GetText(), pDoc );
+-		USHORT	nRes2 = theVariableCell.Parse( aEdVariableCell.GetText(), pDoc );
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++		USHORT	nRes1 = theFormulaCell .Parse( aEdFormulaCell.GetText(), pDoc, eConv );
++		USHORT	nRes2 = theVariableCell.Parse( aEdVariableCell.GetText(), pDoc, eConv );
+ 
+ 		if ( SCA_VALID == ( nRes1 & SCA_VALID ) )
+ 		{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/miscdlgs/tabopdlg.cxx sc/source/ui/miscdlgs/tabopdlg.cxx
+--- sc.clean/source/ui/miscdlgs/tabopdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/miscdlgs/tabopdlg.cxx	2008-03-21 00:38:02.000000000 -0400
+@@ -170,21 +170,22 @@ void ScTabOpDlg::SetReference( const ScR
+ 								? SCR_ABS
+ 								: SCR_ABS_3D;
+ 
++        const ScAddress::Convention eConv = pDocP->GetAddressConvention();
+ 		if ( pEdActive == &aEdFormulaRange )
+ 		{
+ 			theFormulaCell.Set( rRef.aStart, false, false, false);
+ 			theFormulaEnd.Set( rRef.aEnd, false, false, false);
+-            rRef.Format( aStr, nFmt, pDocP );
++            rRef.Format( aStr, nFmt, pDocP, eConv );
+ 		}
+ 		else if ( pEdActive == &aEdRowCell )
+ 		{
+ 			theRowCell.Set( rRef.aStart, false, false, false);
+-            rRef.aStart.Format( aStr, nFmt, pDocP );
++            rRef.aStart.Format( aStr, nFmt, pDocP, eConv );
+ 		}
+ 		else if ( pEdActive == &aEdColCell )
+ 		{
+ 			theColCell.Set( rRef.aStart, false, false, false);
+-            rRef.aStart.Format( aStr, nFmt, pDocP );
++            rRef.aStart.Format( aStr, nFmt, pDocP, eConv );
+ 		}
+ 
+ 		pEdActive->SetRefString( aStr );
+@@ -246,11 +247,12 @@ BOOL lcl_Parse( const String& rString, S
+ 				ScRefAddress& rStart, ScRefAddress& rEnd )
+ {
+ 	BOOL bRet = FALSE;
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 	if ( rString.Search(':') != STRING_NOTFOUND )
+-		bRet = ConvertDoubleRef( pDoc, rString, nCurTab, rStart, rEnd );
++		bRet = ConvertDoubleRef( pDoc, rString, nCurTab, rStart, rEnd, eConv );
+ 	else
+ 	{
+-		bRet = ConvertSingleRef( pDoc, rString, nCurTab, rStart );
++		bRet = ConvertSingleRef( pDoc, rString, nCurTab, rStart, eConv );
+ 		rEnd = rStart;
+ 	}
+ 	return bRet;
+@@ -282,9 +284,10 @@ IMPL_LINK( ScTabOpDlg, BtnHdl, PushButto
+ 			nError = TABOPERR_WRONGFORMULA;
+ 		else
+ 		{
++            const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 			if (aEdRowCell.GetText().Len() > 0)
+ 			{
+-				if (!ConvertSingleRef( pDoc, aEdRowCell.GetText(), nCurTab, theRowCell ))
++				if (!ConvertSingleRef( pDoc, aEdRowCell.GetText(), nCurTab, theRowCell, eConv ))
+ 					nError = TABOPERR_WRONGROW;
+ 				else
+ 				{
+@@ -298,7 +301,7 @@ IMPL_LINK( ScTabOpDlg, BtnHdl, PushButto
+ 			if (aEdColCell.GetText().Len() > 0)
+ 			{
+ 				if (!ConvertSingleRef( pDoc, aEdColCell.GetText(), nCurTab,
+-									   theColCell ))
++									   theColCell, eConv ))
+ 					nError = TABOPERR_WRONGCOL;
+ 				else
+ 				{
+@@ -306,7 +309,7 @@ IMPL_LINK( ScTabOpDlg, BtnHdl, PushButto
+ 					{
+ 						nMode = 2;
+ 						ConvertSingleRef( pDoc, aEdFormulaRange.GetText(), nCurTab,
+-										  theFormulaCell );
++										  theFormulaCell, eConv );
+ 					}
+ 					else if (theFormulaCell.Row() != theFormulaEnd.Row())
+ 						nError = TABOPERR_NOROWFORMULA;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/namedlg/namedlg.cxx sc/source/ui/namedlg/namedlg.cxx
+--- sc.clean/source/ui/namedlg/namedlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/namedlg/namedlg.cxx	2008-03-20 19:59:06.000000000 -0400
+@@ -208,7 +208,7 @@ void __EXPORT ScNameDlg::Init()
+ 	UpdateNames();
+ 
+ 	pViewData->GetSimpleArea( aRange );
+-	aRange.Format( aAreaStr, ABS_DREF3D, pDoc );
++	aRange.Format( aAreaStr, ABS_DREF3D, pDoc, pDoc->GetAddressConvention() );
+ 
+ 	theCurSel = Selection( 0, SELECTION_MAX );
+ 	aEdAssign.GrabFocus();
+@@ -253,7 +253,7 @@ void ScNameDlg::SetReference( const ScRa
+ 		if ( rRef.aStart != rRef.aEnd )
+ 			RefInputStart(&aEdAssign);
+ 		String aRefStr;
+-        rRef.Format( aRefStr, ABS_DREF3D, pDocP );
++        rRef.Format( aRefStr, ABS_DREF3D, pDocP, pDocP->GetAddressConvention() );
+ 		aEdAssign.SetRefString( aRefStr );
+ 	}
+ }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/optdlg/tpcalc.cxx sc/source/ui/optdlg/tpcalc.cxx
+--- sc.clean/source/ui/optdlg/tpcalc.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/optdlg/tpcalc.cxx	2008-03-19 18:18:38.000000000 -0400
+@@ -96,6 +96,8 @@ ScTpCalcOptions::ScTpCalcOptions( Window
+ 		aBtnMatch	 	( this, ScResId( BTN_MATCH ) ),
+         aBtnRegex       ( this, ScResId( BTN_REGEX ) ),
+ 		aBtnLookUp   	( this, ScResId( BTN_LOOKUP ) ),
++        aFtFormulaSyntax( this, ScResId( FT_FORMULA_SYNTAX ) ),
++        aLBFormulaSyntax( this, ScResId( LB_FORMULA_SYNTAX ) ),
+ 		aFtPrec 		( this, ScResId( FT_PREC ) ),
+ 		aEdPrec 		( this, ScResId( ED_PREC ) ),
+ 		pOldOptions 	( new ScDocOptions(
+@@ -161,6 +163,18 @@ void __EXPORT ScTpCalcOptions::Reset( co
+ 	aEdPrec    .SetValue( pLocalOptions->GetStdPrecision() );
+     aEdEps     .SetValue( pLocalOptions->GetIterEps(), 6 );
+ 
++    ScAddress::Convention eConv = pLocalOptions->GetFormulaSyntax();
++    switch (eConv)
++    {
++        case ScAddress::CONV_OOO:
++        case ScAddress::CONV_XL_A1:
++        case ScAddress::CONV_XL_R1C1:
++            aLBFormulaSyntax.SelectEntryPos(static_cast<USHORT>(eConv));
++        break;
++        default:
++            aLBFormulaSyntax.SelectEntryPos(0);
++    }
++
+ 	pLocalOptions->GetDate( d, m, y );
+ 
+ 	switch ( y )
+@@ -192,6 +206,8 @@ BOOL __EXPORT ScTpCalcOptions::FillItemS
+ 	pLocalOptions->SetMatchWholeCell( aBtnMatch.IsChecked() );
+     pLocalOptions->SetFormulaRegexEnabled( aBtnRegex.IsChecked() );
+ 	pLocalOptions->SetLookUpColRowNames( aBtnLookUp.IsChecked() );
++    pLocalOptions->SetFormulaSyntax(
++        static_cast<ScAddress::Convention>(aLBFormulaSyntax.GetSelectEntryPos()) );
+ 
+ 	if ( *pLocalOptions != *pOldOptions )
+ 	{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/pagedlg/areasdlg.cxx sc/source/ui/pagedlg/areasdlg.cxx
+--- sc.clean/source/ui/pagedlg/areasdlg.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/ui/pagedlg/areasdlg.cxx	2008-03-25 18:31:27.000000000 -0400
+@@ -61,6 +61,7 @@
+ #include "docsh.hxx"
+ #include "globstr.hrc"
+ #include "pagedlg.hrc"
++#include "compiler.hxx"
+ 
+ // STATIC DATA ---------------------------------------------------------------
+ 
+@@ -85,10 +86,34 @@ const USHORT SC_AREASDLG_RR_OFFSET  = 2;
+ 
+ // globale Funktionen (->am Ende der Datei):
+ 
+-BOOL	lcl_CheckRepeatString( const String& rStr, BOOL bIsRow, ScRange* pRange );
+-void	lcl_GetRepeatRangeString( const ScRange* pRange, BOOL bIsRow, String& rStr );
+-void	lcl_CheckEqual( String& rStr );
++bool    lcl_CheckRepeatString( const String& rStr, ScDocument* pDoc, bool bIsRow, ScRange* pRange );
++void	lcl_GetRepeatRangeString( const ScRange* pRange, ScDocument* pDoc, bool bIsRow, String& rStr );
+ 
++#if 0
++static void printAddressFlags(USHORT nFlag)
++{
++    if ((nFlag & SCA_COL_ABSOLUTE  ) == SCA_COL_ABSOLUTE  )  printf("SCA_COL_ABSOLUTE \n");
++    if ((nFlag & SCA_ROW_ABSOLUTE  ) == SCA_ROW_ABSOLUTE  )  printf("SCA_ROW_ABSOLUTE \n");
++    if ((nFlag & SCA_TAB_ABSOLUTE  ) == SCA_TAB_ABSOLUTE  )  printf("SCA_TAB_ABSOLUTE \n");
++    if ((nFlag & SCA_TAB_3D        ) == SCA_TAB_3D        )  printf("SCA_TAB_3D       \n");
++    if ((nFlag & SCA_COL2_ABSOLUTE ) == SCA_COL2_ABSOLUTE )  printf("SCA_COL2_ABSOLUTE\n");
++    if ((nFlag & SCA_ROW2_ABSOLUTE ) == SCA_ROW2_ABSOLUTE )  printf("SCA_ROW2_ABSOLUTE\n");
++    if ((nFlag & SCA_TAB2_ABSOLUTE ) == SCA_TAB2_ABSOLUTE )  printf("SCA_TAB2_ABSOLUTE\n");
++    if ((nFlag & SCA_TAB2_3D       ) == SCA_TAB2_3D       )  printf("SCA_TAB2_3D      \n");
++    if ((nFlag & SCA_VALID_ROW     ) == SCA_VALID_ROW     )  printf("SCA_VALID_ROW    \n");
++    if ((nFlag & SCA_VALID_COL     ) == SCA_VALID_COL     )  printf("SCA_VALID_COL    \n");
++    if ((nFlag & SCA_VALID_TAB     ) == SCA_VALID_TAB     )  printf("SCA_VALID_TAB    \n");
++    if ((nFlag & SCA_FORCE_DOC     ) == SCA_FORCE_DOC     )  printf("SCA_FORCE_DOC    \n");
++    if ((nFlag & SCA_VALID_ROW2    ) == SCA_VALID_ROW2    )  printf("SCA_VALID_ROW2   \n");
++    if ((nFlag & SCA_VALID_COL2    ) == SCA_VALID_COL2    )  printf("SCA_VALID_COL2   \n");
++    if ((nFlag & SCA_VALID_TAB2    ) == SCA_VALID_TAB2    )  printf("SCA_VALID_TAB2   \n");
++    if ((nFlag & SCA_VALID         ) == SCA_VALID         )  printf("SCA_VALID        \n");
++    if ((nFlag & SCA_ABS           ) == SCA_ABS           )  printf("SCA_ABS          \n");
++    if ((nFlag & SCR_ABS           ) == SCR_ABS           )  printf("SCR_ABS          \n");
++    if ((nFlag & SCA_ABS_3D        ) == SCA_ABS_3D        )  printf("SCA_ABS_3D       \n");
++    if ((nFlag & SCR_ABS_3D        ) == SCR_ABS_3D        )  printf("SCR_ABS_3D       \n");
++}
++#endif
+ 
+ //============================================================================
+ //	class ScPrintAreasDlg
+@@ -190,11 +215,11 @@ void ScPrintAreasDlg::SetReference( cons
+ 			RefInputStart( pRefInputEdit );
+ 
+ 		String	aStr;
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+ 		if ( &aEdPrintArea == pRefInputEdit )
+ 		{
+-			rRef.Format( aStr, SCR_ABS );
+-			lcl_CheckEqual( aStr );
++			rRef.Format( aStr, SCR_ABS, pDoc, eConv );
+ 
+ //			aEdPrintArea.ReplaceSelected( aStr );
+ 
+@@ -210,7 +235,7 @@ void ScPrintAreasDlg::SetReference( cons
+ 		else
+ 		{
+ 			BOOL bRow = ( &aEdRepeatRow == pRefInputEdit );
+-			lcl_GetRepeatRangeString( &rRef, bRow, aStr );
++            lcl_GetRepeatRangeString(&rRef, pDoc, bRow, aStr);
+ 			pRefInputEdit->SetRefString( aStr );
+ 		}
+ 	}
+@@ -225,8 +250,9 @@ void ScPrintAreasDlg::AddRefEntry()
+ {
+ 	if ( pRefInputEdit == &aEdPrintArea )
+ 	{
++        const sal_Unicode sep = ScCompiler::GetStringFromOpCode(ocSep, false, pDoc->GetAddressConvention()).GetChar(0);
+ 		String aVal = aEdPrintArea.GetText();
+-		aVal += ';';
++		aVal += sep;
+ 		aEdPrintArea.SetText(aVal);
+ 
+ 		xub_StrLen nLen = aVal.Len();
+@@ -296,6 +322,8 @@ void ScPrintAreasDlg::Impl_Reset()
+ 	//-------------------------
+ 	aStrRange.Erase();
+     String aOne;
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++    const sal_Unicode sep = ScCompiler::GetStringFromOpCode(ocSep, false, eConv).GetChar(0);
+     USHORT nRangeCount = pDoc->GetPrintRangeCount( nCurTab );
+     for (USHORT i=0; i<nRangeCount; i++)
+     {
+@@ -303,9 +331,8 @@ void ScPrintAreasDlg::Impl_Reset()
+         if (pPrintRange)
+         {
+             if ( aStrRange.Len() )
+-                aStrRange += ';';
+-            pPrintRange->Format( aOne, SCR_ABS );
+-            lcl_CheckEqual( aOne );
++                aStrRange += sep;
++            pPrintRange->Format( aOne, SCR_ABS, pDoc, eConv );
+             aStrRange += aOne;
+         }
+     }
+@@ -314,13 +341,13 @@ void ScPrintAreasDlg::Impl_Reset()
+ 	//-------------------------------
+ 	// Wiederholungszeile
+ 	//-------------------------------
+-	lcl_GetRepeatRangeString( pRepeatRowRange, TRUE, aStrRange );
++    lcl_GetRepeatRangeString(pRepeatRowRange, pDoc, true, aStrRange);
+ 	aEdRepeatRow.SetText( aStrRange );
+ 
+ 	//--------------------------------
+ 	// Wiederholungsspalte
+ 	//--------------------------------
+-	lcl_GetRepeatRangeString( pRepeatColRange, FALSE, aStrRange );
++    lcl_GetRepeatRangeString(pRepeatColRange, pDoc, false, aStrRange);
+ 	aEdRepeatCol.SetText( aStrRange );
+ 
+ 	Impl_ModifyHdl( &aEdPrintArea );
+@@ -345,9 +372,9 @@ BOOL ScPrintAreasDlg::Impl_GetItem( Edit
+ 	if ( (aRangeStr.Len() > 0) && &aEdPrintArea != pEd )
+ 	{
+ 		ScRange aRange;
+-		lcl_CheckRepeatString( aRangeStr, &aEdRepeatRow == pEd, &aRange );
+-		aRange.Format( aRangeStr, SCR_ABS );
+-		lcl_CheckEqual( aRangeStr );
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++        lcl_CheckRepeatString(aRangeStr, pDoc, &aEdRepeatRow == pEd, &aRange);
++		aRange.Format(aRangeStr, SCR_ABS, pDoc, eConv);
+ 	}
+ 
+ 	rItem.SetValue( aRangeStr );
+@@ -368,25 +395,35 @@ BOOL ScPrintAreasDlg::Impl_CheckRefStrin
+ 	BOOL bPrintAreaOk = TRUE;
+ 	if ( aStrPrintArea.Len() )
+ 	{
++        const USHORT nValidAddr  = SCA_VALID | SCA_VALID_ROW | SCA_VALID_COL;
++        const USHORT nValidRange = nValidAddr | SCA_VALID_ROW2 | SCA_VALID_COL2;
++        const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++        const sal_Unicode sep  = ScCompiler::GetStringFromOpCode(ocSep, false, eConv).GetChar(0);
++        const sal_Unicode rsep = ScCompiler::GetStringFromOpCode(ocRange, false, eConv).GetChar(0);
++
++        ScAddress aAddr;
+ 		ScRange aRange;
+-		xub_StrLen nTCount = aStrPrintArea.GetTokenCount();
+-		for ( xub_StrLen i=0; i<nTCount && bPrintAreaOk; i++ )
++		xub_StrLen nSepCount = aStrPrintArea.GetTokenCount(sep);
++		for ( xub_StrLen i = 0; i < nSepCount && bPrintAreaOk; ++i )
+ 		{
+-			String aOne = aStrPrintArea.GetToken(i);
+-			lcl_CheckEqual( aOne );
+-			USHORT nResult = aRange.ParseAny( aOne, pDoc );
+-			if (!(nResult & SCA_VALID))
+-				bPrintAreaOk = FALSE;
++			String aOne = aStrPrintArea.GetToken(i, sep);
++            USHORT nResult = aRange.Parse( aOne, pDoc, eConv );
++            if ((nResult & nValidRange) != nValidRange)
++            {
++                USHORT nResult = aAddr.Parse( aOne, pDoc, eConv );
++                if ((nResult & nValidAddr) != nValidAddr)
++                    bPrintAreaOk = FALSE;
++            }
+ 		}
+ 	}
+ 
+ 	BOOL bRepeatRowOk = (aStrRepeatRow.Len() == 0);
+ 	if ( !bRepeatRowOk )
+-		bRepeatRowOk = lcl_CheckRepeatString( aStrRepeatRow, TRUE, NULL );
++        bRepeatRowOk = lcl_CheckRepeatString(aStrRepeatRow, pDoc, true, NULL);
+ 
+ 	BOOL bRepeatColOk = (aStrRepeatCol.Len() == 0);
+ 	if ( !bRepeatColOk )
+-		bRepeatColOk = lcl_CheckRepeatString( aStrRepeatCol, FALSE, NULL );
++        bRepeatColOk = lcl_CheckRepeatString(aStrRepeatCol, pDoc, false, NULL);
+ 
+ 	// Fehlermeldungen
+ 
+@@ -418,17 +455,18 @@ void ScPrintAreasDlg::Impl_FillLists()
+ 	ScRange	aRange;
+ 	String	aStrRange;
+ 	BOOL bSimple = TRUE;
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+ 	if ( pViewData )
+ 		bSimple = pViewData->GetSimpleArea( aRange );
+ 
+ 	if ( bSimple )
+-		aRange.Format( aStrRange, SCR_ABS, pDoc );
++		aRange.Format( aStrRange, SCR_ABS, pDoc, eConv );
+ 	else
+ 	{
+ 		ScRangeListRef aList( new ScRangeList );
+ 		pViewData->GetMarkData().FillRangeListWithMarks( aList, FALSE );
+-		aList->Format( aStrRange, SCR_ABS, pDoc );
++		aList->Format( aStrRange, SCR_ABS, pDoc, eConv );
+ 	}
+ 
+     aLbPrintArea.SetEntryData( SC_AREASDLG_PR_SELECT, new String( aStrRange ) );
+@@ -457,11 +495,11 @@ void ScPrintAreasDlg::Impl_FillLists()
+ 				{
+ 					pData->GetName( aName );
+ 					pData->GetSymbol( aSymbol );
+-					if ( aRange.ParseAny( aSymbol, pDoc ) & SCA_VALID )
++					if ( aRange.ParseAny( aSymbol, pDoc, eConv ) & SCA_VALID )
+ 					{
+ 						if ( pData->HasType( RT_PRINTAREA ) )
+ 						{
+-							aRange.Format( aSymbol, SCR_ABS, pDoc );
++							aRange.Format( aSymbol, SCR_ABS, pDoc, eConv );
+ 							aLbPrintArea.SetEntryData(
+ 								aLbPrintArea.InsertEntry( aName ),
+ 								new String( aSymbol ) );
+@@ -469,7 +507,7 @@ void ScPrintAreasDlg::Impl_FillLists()
+ 
+ 						if ( pData->HasType( RT_ROWHEADER ) )
+ 						{
+-							lcl_GetRepeatRangeString( &aRange, TRUE, aSymbol );
++                            lcl_GetRepeatRangeString(&aRange, pDoc, true, aSymbol);
+ 							aLbRepeatRow.SetEntryData(
+ 								aLbRepeatRow.InsertEntry( aName ),
+ 								new String( aSymbol ) );
+@@ -477,7 +515,7 @@ void ScPrintAreasDlg::Impl_FillLists()
+ 
+ 						if ( pData->HasType( RT_COLHEADER ) )
+ 						{
+-							lcl_GetRepeatRangeString( &aRange, FALSE, aSymbol );
++                            lcl_GetRepeatRangeString(&aRange, pDoc, false, aSymbol);
+ 							aLbRepeatCol.SetEntryData(
+ 								aLbRepeatCol.InsertEntry( aName ),
+ 								new String( aSymbol ) );
+@@ -669,9 +707,11 @@ IMPL_LINK( ScPrintAreasDlg, Impl_ModifyH
+ //============================================================================
+ // globale Funktionen:
+ 
+-//----------------------------------------------------------------------------
++// ----------------------------------------------------------------------------
++
++// TODO: It might make sense to move these functions to address.?xx. -kohei
+ 
+-BOOL lcl_CheckRepeatOne( const String& rStr, BOOL bIsRow, SCCOLROW& rVal )
++bool lcl_CheckOne_OOO( const String& rStr, bool bIsRow, SCCOLROW& rVal )
+ {
+ 	// Zulaessige Syntax fuer rStr:
+ 	// Row: [$]1-MAXTAB
+@@ -713,115 +753,160 @@ BOOL lcl_CheckRepeatOne( const String& r
+ 	return bStrOk;
+ }
+ 
++bool lcl_CheckOne_XL_A1( const String& rStr, bool bIsRow, SCCOLROW& rVal )
++{
++    // XL A1 style is identical to OOO one for print range formats.
++    return lcl_CheckOne_OOO(rStr, bIsRow, rVal);
++}
+ 
+-//----------------------------------------------------------------------------
+-//	doppelte Referenz testen
+-
+-
+-BOOL lcl_CheckRepeatString( const String& rStr, BOOL bIsRow, ScRange* pRange )
++bool lcl_CheckOne_XL_R1C1( const String& rStr, bool bIsRow, SCCOLROW& rVal )
+ {
+-	// Zulaessige Syntax fuer rStr:
+-	// Row: $1, $1:$2
+-	// Col: $A, $A:$B
+-	// und alles auch ohne $
++    xub_StrLen nLen = rStr.Len();
++    if (nLen <= 1)
++        // There must be at least two characters.
++        return false;
+ 
+-	BOOL bOk = FALSE;
+-	SCCOLROW nStart = 0;
+-	SCCOLROW nEnd = 0;
+-	xub_StrLen nCount = rStr.GetTokenCount(':');
+-	if (nCount == 1)
+-	{
+-		bOk = lcl_CheckRepeatOne( rStr, bIsRow, nStart );
+-		nEnd = nStart;
+-	}
+-	else if (nCount == 2)
+-	{
+-		String aFirst  = rStr.GetToken( 0, ':' );
+-		String aSecond = rStr.GetToken( 1, ':' );
+-		bOk = lcl_CheckRepeatOne( aFirst, bIsRow, nStart );
+-		if (bOk)
+-			bOk = lcl_CheckRepeatOne( aSecond, bIsRow, nEnd );
+-	}
++    const sal_Unicode preUpper = bIsRow ? 'R' : 'C';
++    const sal_Unicode preLower = bIsRow ? 'r' : 'c';
++    if (rStr.GetChar(0) != preUpper && rStr.GetChar(0) != preLower)
++        return false;
+ 
++    String aNumStr = rStr.Copy(1);
++    if (!CharClass::isAsciiNumeric(aNumStr))
++        return false;
+ 
+-	if ( bOk && pRange )
+-	{
+-		ScAddress& rStart = pRange->aStart;
+-		ScAddress& rEnd	  = pRange->aEnd;
++    sal_Int32 nNum = aNumStr.ToInt32();
+ 
+-		if ( bIsRow )
+-		{
+-			rStart.SetCol( 0 );
+-			rEnd  .SetCol( 0 );
+-			rStart.SetRow( nStart );
+-			rEnd  .SetRow( nEnd );
+-		}
+-		else
+-		{
+-			rStart.SetCol( static_cast<SCCOL>(nStart) );
+-			rEnd  .SetCol( static_cast<SCCOL>(nEnd) );
+-			rStart.SetRow( 0 );
+-			rEnd  .SetRow( 0 );
+-		}
+-	}
++    if (nNum <= 0)
++        return false;
+ 
+-	return bOk;
+-}
++    if ((bIsRow && nNum > MAXROWCOUNT) || (!bIsRow && nNum > MAXCOLCOUNT))
++        return false;
+ 
++    rVal = static_cast<SCCOLROW>(nNum-1);
++    return true;
++}
+ 
+-//----------------------------------------------------------------------------
++bool lcl_CheckRepeatOne( const String& rStr, ScAddress::Convention eConv, bool bIsRow, SCCOLROW& rVal )
++{
++    switch (eConv)
++    {
++        case ScAddress::CONV_OOO:
++            return lcl_CheckOne_OOO(rStr, bIsRow, rVal);
++        case ScAddress::CONV_XL_A1:
++            return lcl_CheckOne_XL_A1(rStr, bIsRow, rVal);
++        case ScAddress::CONV_XL_R1C1:
++            return lcl_CheckOne_XL_R1C1(rStr, bIsRow, rVal);
++    }
++    return false;
++}
+ 
+-void lcl_GetRepeatRangeString( const ScRange* pRange, BOOL bIsRow, String& rStr )
++bool lcl_CheckRepeatString( const String& rStr, ScDocument* pDoc, bool bIsRow, ScRange* pRange )
+ {
+-	if ( pRange )
+-	{
+-		// In rStr wird die pRange im folgenden Format ausgegeben
+-		// Row: $1, $1:$2
+-		// Col: $A, $A:$B
++    // Row: [valid row] rsep [valid row]
++    // Col: [valid col] rsep [valid col]
+ 
+-		const ScAddress& rStart = pRange->aStart;
+-		const ScAddress& rEnd = pRange->aEnd;
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++    const sal_Unicode rsep = ScCompiler::GetStringFromOpCode(ocRange, false, eConv).GetChar(0);
+ 
+-		rStr  = '$';
+-		if ( bIsRow )
+-		{
+-			rStr += String::CreateFromInt32( rStart.Row()+1 );
+-			if ( rStart.Row() != rEnd.Row() )
+-			{
+-				rStr.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ":$" ));
+-				rStr += String::CreateFromInt32( rEnd.Row()+1 );
+-			}
+-		}
+-		else
+-		{
+-            rStr += ::ColToAlpha( rStart.Col() );
+-			if ( rStart.Col() != rEnd.Col() )
+-			{
+-				rStr.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ":$" ));
+-                rStr += ::ColToAlpha( rEnd.Col() );
+-			}
+-		}
+-	}
+-	else
+-		rStr.Erase();
+-}
++    if (pRange)
++    {
++        // initialize the range value.
++        pRange->aStart.SetCol(0);
++        pRange->aStart.SetRow(0);
++        pRange->aEnd.SetCol(0);
++        pRange->aEnd.SetRow(0);
++    }
+ 
++    String aBuf;
++    SCCOLROW nVal = 0;
++    xub_StrLen nLen = rStr.Len();
++    bool bEndPos = false;
++    for (xub_StrLen i = 0; i < nLen; ++i)
++    {
++        const sal_Unicode c = rStr.GetChar(i);
++        if (c == rsep)
++        {
++            if (bEndPos)
++                // We aren't supposed to have more than one range separator.
++                return false;
++
++            // range separator
++            if (aBuf.Len() == 0)
++                return false;
++
++            bool bRes = lcl_CheckRepeatOne(aBuf, eConv, bIsRow, nVal);
++            if (!bRes)
++                return false;
+ 
+-//----------------------------------------------------------------------------
++            if (pRange)
++            {
++                if (bIsRow)
++                {
++                    pRange->aStart.SetRow(static_cast<SCROW>(nVal));
++                    pRange->aEnd.SetRow(static_cast<SCROW>(nVal));
++                }
++                else
++                {
++                    pRange->aStart.SetCol(static_cast<SCCOL>(nVal));
++                    pRange->aEnd.SetCol(static_cast<SCCOL>(nVal));
++                }
++            }
+ 
+-void lcl_CheckEqual( String& rStr )
+-{
+-	if ( STRING_NOTFOUND == rStr.Search( ':' ) )
+-	{
+-		String aStrTmp = rStr;
+-		rStr += ':';
+-		rStr += aStrTmp;
+-	}
+-}
++            aBuf.Erase();
++            bEndPos = true;
++        }
++        else
++            aBuf.Append(c);
++    }
+ 
++    if (aBuf.Len() > 0)
++    {
++        bool bRes = lcl_CheckRepeatOne(aBuf, eConv, bIsRow, nVal);
++        if (!bRes)
++            return false;
++
++        if (pRange)
++        {
++            if (bIsRow)
++            {
++                if (!bEndPos)
++                    pRange->aStart.SetRow(static_cast<SCROW>(nVal));
++                pRange->aEnd.SetRow(static_cast<SCROW>(nVal));
++            }
++            else
++            {
++                if (!bEndPos)
++                    pRange->aStart.SetCol(static_cast<SCCOL>(nVal));
++                pRange->aEnd.SetCol(static_cast<SCCOL>(nVal));
++            }
++        }
++    }
+ 
++    return true;
++}
+ 
++// ----------------------------------------------------------------------------
+ 
++void lcl_GetRepeatRangeString( const ScRange* pRange, ScDocument* pDoc, bool bIsRow, String& rStr )
++{
++    rStr.Erase();
++    if (!pRange)
++        return;
+ 
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
++    const ScAddress& rStart = pRange->aStart;
++    const ScAddress& rEnd   = pRange->aEnd;
+ 
++    const USHORT nFmt = bIsRow ? (SCA_VALID_ROW | SCA_ROW_ABSOLUTE) : (SCA_VALID_COL | SCA_COL_ABSOLUTE);
++    String aTmpStr;
++    rStart.Format(aTmpStr, nFmt, pDoc, eConv);
++    rStr += aTmpStr;
++    if ((bIsRow && rStart.Row() != rEnd.Row()) || (!bIsRow && rStart.Col() != rEnd.Col()))
++    {
++        rStr += ScCompiler::GetStringFromOpCode(ocRange, false, eConv);
++        rEnd.Format(aTmpStr, nFmt, pDoc, eConv);
++        rStr += aTmpStr;
++    }
++}
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/src/optdlg.src sc/source/ui/src/optdlg.src
+--- sc.clean/source/ui/src/optdlg.src	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/src/optdlg.src	2008-03-19 16:40:53.000000000 -0400
+@@ -173,6 +173,27 @@ TabPage RID_SCPAGE_CALC
+         Size = MAP_APPFONT ( 239 , 10 ) ;
+ 		Text [ en-US ] = "~Automatically find column and row labels " ;
+ 	};
++
++    FixedText FT_FORMULA_SYNTAX
++    {
++        Pos = MAP_APPFONT ( 21, 147 ) ;
++        Size = MAP_APPFONT ( 80, 8 ) ;
++        Text [ en-US ] = "~Formula syntax" ;
++    };
++
++    ListBox LB_FORMULA_SYNTAX
++    {
++        Border = TRUE ;
++        Pos = MAP_APPFONT ( 85, 145 ) ;
++        Size = MAP_APPFONT ( 60, 46 ) ;
++        DropDown = TRUE ;
++        StringList [ en-US ] =
++        {
++            < "Calc A1" ; Default ; > ;
++            < "Excel A1" ; Default ; > ;
++            < "Excel R1C1" ; Default ; > ;
++        };
++    };
+ };
+ 
+ /**************************************************************************/
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/tabvwsh3.cxx sc/source/ui/view/tabvwsh3.cxx
+--- sc.clean/source/ui/view/tabvwsh3.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/tabvwsh3.cxx	2008-03-20 22:11:39.000000000 -0400
+@@ -318,8 +318,9 @@ void ScTabViewShell::Execute( SfxRequest
+ 				else
+ 				{
+ 					ScRangeUtil		aRangeUtil;
+-					if(	aRangeUtil.MakeRangeFromName( aAddress, pDoc, nTab, aScRange, RUTL_NAMES ) ||
+-						aRangeUtil.MakeRangeFromName( aAddress, pDoc, nTab, aScRange, RUTL_DBASE ) )
++                    ScAddress::Convention eConv = pDoc->GetAddressConvention();
++					if(	aRangeUtil.MakeRangeFromName( aAddress, pDoc, nTab, aScRange, RUTL_NAMES, eConv ) ||
++						aRangeUtil.MakeRangeFromName( aAddress, pDoc, nTab, aScRange, RUTL_DBASE, eConv ) )
+ 					{
+ 						nResult |= SCA_VALID;
+ 						if( aScRange.aStart.Tab() != nTab )
+Only in sc/source/ui/view: tabvwshf.cxx.~1.13.~
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/viewfun2.cxx sc/source/ui/view/viewfun2.cxx
+--- sc.clean/source/ui/view/viewfun2.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/viewfun2.cxx	2008-03-22 02:33:28.000000000 -0400
+@@ -962,6 +962,7 @@ void ScViewFunc::SetPrintRanges( BOOL bE
+ 	ScMarkData& rMark	= GetViewData()->GetMarkData();
+ 	SCTAB nTab;
+ 	BOOL bUndo (pDoc->IsUndoEnabled());
++    const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+ 
+ 	ScPrintRangeSaver* pOldRanges = pDoc->CreatePrintRangeSaver();
+ 
+@@ -983,11 +984,14 @@ void ScViewFunc::SetPrintRanges( BOOL bE
+ 			{
+                 if ( pPrint->Len() )
+ 				{
+-					USHORT nTCount = pPrint->GetTokenCount();
++                    const sal_Unicode sep = ScCompiler::GetStringFromOpCode(
++                        ocSep, false, eConv).GetChar(0);
++
++					USHORT nTCount = pPrint->GetTokenCount(sep);
+ 					for (USHORT i=0; i<nTCount; i++)
+ 					{
+-						String aToken = pPrint->GetToken(i);
+-						if ( aRange.ParseAny( aToken, pDoc ) & SCA_VALID )
++						String aToken = pPrint->GetToken(i, sep);
++						if ( aRange.ParseAny( aToken, pDoc, eConv ) & SCA_VALID )
+                             pDoc->AddPrintRange( nTab, aRange );
+ 					}
+ 				}
+@@ -1024,7 +1028,7 @@ void ScViewFunc::SetPrintRanges( BOOL bE
+ 				if ( !pRepCol->Len() )
+ 					pDoc->SetRepeatColRange( nTab, NULL );
+ 				else
+-					if ( aRange.ParseAny( *pRepCol, pDoc ) & SCA_VALID )
++					if ( aRange.ParseAny( *pRepCol, pDoc, eConv ) & SCA_VALID )
+ 						pDoc->SetRepeatColRange( nTab, &aRange );
+ 			}
+ 
+@@ -1035,7 +1039,7 @@ void ScViewFunc::SetPrintRanges( BOOL bE
+ 				if ( !pRepRow->Len() )
+ 					pDoc->SetRepeatRowRange( nTab, NULL );
+ 				else
+-					if ( aRange.ParseAny( *pRepRow, pDoc ) & SCA_VALID )
++					if ( aRange.ParseAny( *pRepRow, pDoc, eConv ) & SCA_VALID )
+ 						pDoc->SetRepeatRowRange( nTab, &aRange );
+ 			}
+ 		}
+Only in sc/util: makefile.mk.~1.45.~
+Only in officecfg: officecfg.argsep
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=officecfg.vpj officecfg.clean/registry/schema/org/openoffice/Office/Calc.xcs officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+--- officecfg.clean/registry/schema/org/openoffice/Office/Calc.xcs	2008-03-03 11:28:58.000000000 -0500
++++ officecfg/registry/schema/org/openoffice/Office/Calc.xcs	2008-03-19 18:32:54.000000000 -0400
+@@ -1134,6 +1134,30 @@
+ 					</info>
+ 					<value>true</value>
+ 				</prop>
++				<prop oor:name="FormulaSyntax" oor:type="xs:int">
++					<!-- UIHints: Tools - Options  Spreadsheet  Calculate -->
++					<info>
++						<author>kyoshida</author>
++						<desc>Specifies what formula syntax type to use.</desc>
++					</info>
++					<constraints>
++						<enumeration oor:value="0">
++							<info>
++								<desc>Calc A1</desc>
++							</info>
++						</enumeration>
++						<enumeration oor:value="1">
++							<info>
++								<desc>Excel A1</desc>
++							</info>
++						</enumeration>
++						<enumeration oor:value="2">
++							<info>
++								<desc>Excel R1C1</desc>
++							</info>
++						</enumeration>
++					</constraints>
++				</prop>
+ 				<node-ref oor:name="Date" oor:node-type="Date">
+ 					<info>
+ 						<desc>Specifies the date that is represented by the number 0.</desc>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-read-only-smb.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-read-only-smb.diff
@@ -0,0 +1,16 @@
+--- ucb/source/ucp/gvfs/content.cxx	2007-10-26 16:20:12.000000000 +0200
++++ ucb/source/ucp/gvfs/content.cxx	2007-10-26 16:20:01.000000000 +0200
+@@ -1618,8 +1618,12 @@ Content::createStream( const uno::Refere
+ 	}
+ 
+ 	if (result == GNOME_VFS_ERROR_INVALID_OPEN_MODE ||
+-	    result == GNOME_VFS_ERROR_NOT_SUPPORTED)
++	    result == GNOME_VFS_ERROR_NOT_SUPPORTED ||
++	    result == GNOME_VFS_ERROR_ACCESS_DENIED)
++	{
++		m_bForceReadOnly = sal_True;
+ 		return xStream;
++	}
+ 	else if (result == GNOME_VFS_ERROR_LOCKED )
+ 		throwLocked( xEnv );
+ 	else if (result != GNOME_VFS_OK)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooop-update-URL.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooop-update-URL.diff
@@ -0,0 +1,37 @@
+--- scp2/source/ooo/profileitem_ooo.scp~	2006-04-13 19:07:19.000000000 +0200
++++ scp2/source/ooo/profileitem_ooo.scp	2006-04-13 19:07:19.000000000 +0200
+@@ -213,7 +213,7 @@
+   #if defined(BUILD_SPECIAL)
+     Value = "${UPDATEURL}";
+   #else
+-    Value = "";
++    Value = "http://ooop.sourceforge.net/update/ooop.php";
+   #endif
+ End
+
+--- scp2/util/makefile.mk	2006-09-08 12:05:19.000000000 +0200
++++ scp2/util/makefile.mk	2006-09-08 12:06:07.000000000 +0200
+@@ -161,11 +161,9 @@
+ SCP1FILES += cairocanvas.par
+ .ENDIF
+ 
+-.IF "$(BUILD_SPECIAL)"!=""
+ SCP1FILES += \
+              module_onlineupdate.par   \
+              file_onlineupdate.par
+-.ENDIF
+ 
+ # ------------------------------------------------------------------------
+ # OpenOffice.org with JRE
+@@ -280,11 +278,9 @@
+ SCP2FILES += \
+              vclcanvas.par
+ 
+-.IF "$(BUILD_SPECIAL)"!=""
+ SCP2FILES += \
+              module_onlineupdate.par   \
+              file_onlineupdate.par
+-.ENDIF
+ 
+ # ------------------------------------------------------------------------
+ # URE
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-fix-value-iterator.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-fix-value-iterator.diff
@@ -0,0 +1,26 @@
+Index: sc/source/core/data/dociter.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/dociter.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.158.1
+diff -u -r1.19 -r1.19.158.1
+--- sc/source/core/data/dociter.cxx	27 Feb 2007 12:01:01 -0000	1.19
++++ sc/source/core/data/dociter.cxx	8 Jan 2008 22:19:49 -0000	1.19.158.1
+@@ -323,7 +323,7 @@
+ 					nTab++;
+ 					if ( nTab > nEndTab )
+ 					{
+-						rValue = 0.0;
++						// rValue = 0.0;    //! do not change caller's value!
+ 						rErr = 0;
+ 						return FALSE;				// Ende und Aus
+ 					}
+@@ -524,7 +524,7 @@
+ 				nCol++;
+ 				if ( nCol > aParam.nCol2 )
+ 				{
+-					rValue = 0.0;
++					// rValue = 0.0;    // do not change caller's value!
+ 					rErr = 0;
+ 					return FALSE;				// Ende und Aus
+ 				}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/dbaccess-default-varchar-lenght.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/dbaccess-default-varchar-lenght.diff
@@ -0,0 +1,11 @@
+--- dbaccess/source/ui/tabledesign/FieldDescriptions.cxx	2006-08-22 17:24:07.000000000 +0800
++++ dbaccess/source/ui/tabledesign/FieldDescriptions.cxx	2006-08-22 17:27:55.000000000 +0800
+@@ -60,7 +60,7 @@
+ #include <com/sun/star/util/NumberFormat.hpp>
+ #endif
+ 
+-#define DEFAULT_VARCHAR_PRECSION	50
++#define DEFAULT_VARCHAR_PRECSION	100
+ #define DEFAULT_OTHER_PRECSION		16
+ #define DEFAULT_NUMERIC_PRECSION	5
+ #define DEFAULT_NUMERIC_SCALE		0
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wpsimport-writerperfect.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wpsimport-writerperfect.diff
@@ -0,0 +1,1001 @@
+--- writerperfect/prj/build.lst	23 Jan 2007 12:11:31 -0000	1.9
++++ writerperfect/prj/build.lst	18 Dec 2006 13:12:18 -0000	1.8.12.2
+@@ -1,6 +1,7 @@
+-wp      writerperfect : LIBWPD:libwpd sot comphelper xmloff NULL
++wp      writerperfect : LIBWPS:libwps LIBWPD:libwpd sot comphelper xmloff NULL
+ wp	writerperfect			usr1	-	all	wp_mkout NULL
+ wp	writerperfect\source\stream	nmake	-	all	wp_stream NULL
+ wp	writerperfect\source\filter	nmake	-	all	wp_filter NULL
+ wp	writerperfect\source\wpdimp	nmake	-	all	wp_wpdimp NULL
+-wp	writerperfect\util		nmake	-	all	wp_util wp_wpdimp wp_filter wp_stream NULL
++wp	writerperfect\source\wpsimp	nmake	-	all	wp_wpsimp NULL
++wp	writerperfect\util		nmake	-	all	wp_util wp_wpsimp wp_wpdimp wp_filter wp_stream NULL
+--- writerperfect/prj/d.lst	12 Dec 2006 16:20:26 -0000	1.4
++++ writerperfect/prj/d.lst	4 Jan 2007 08:31:00 -0000	1.4.2.1
+@@ -1,3 +1,3 @@
+-..\%__SRC%\lib\libwpft*.so %_DEST%\lib%_EXT%
+-..\%__SRC%\bin\wpft*.dll %_DEST%\lib%_EXT%
++..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
++..\%__SRC%\bin\*.dll %_DEST%\lib%_EXT%
+ ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+--- writerperfect/source/filter/DocumentCollector.cxx	23 Jan 2007 12:11:39 -0000	1.2
++++ writerperfect/source/filter/DocumentCollector.cxx	19 Dec 2006 10:21:54 -0000	1.1.4.3
+@@ -52,7 +52,7 @@ _WriterDocumentState::_WriterDocumentSta
+ {
+ }
+ 
+-DocumentCollector::DocumentCollector(WPXInputStream *pInput, DocumentHandler *pHandler) :
++DocumentCollector::DocumentCollector(WPSInputStream *pInput, DocumentHandler *pHandler) :
+         mpInput(pInput),
+         mpHandler(pHandler),
+ 	mbUsed(false),
+--- writerperfect/source/filter/DocumentCollector.hxx	23 Jan 2007 12:11:48 -0000	1.2
++++ writerperfect/source/filter/DocumentCollector.hxx	19 Dec 2006 10:21:54 -0000	1.1.4.3
+@@ -32,6 +32,7 @@
+ #if defined _MSC_VER
+ #pragma warning( push, 1 )
+ #endif
++#include <libwps/libwps.h>
+ #include <libwpd/libwpd.h>
+ #if defined _MSC_VER
+ #pragma warning( pop )
+@@ -75,7 +76,7 @@ struct ltstr
+ class DocumentCollector : public WPXHLListenerImpl
+ {
+ public:
+-	DocumentCollector(WPXInputStream *pInput, DocumentHandler *pHandler);
++	DocumentCollector(WPSInputStream *pInput, DocumentHandler *pHandler);
+ 	virtual ~DocumentCollector();
+ 	bool filter();
+ 
+@@ -126,7 +127,7 @@ public:
+ 	virtual void closeTableCell();
+ 	virtual void insertCoveredTableCell(const WPXPropertyList &propList);
+  	virtual void closeTable();
+-	virtual bool parseSourceDocument(WPXInputStream &input) = 0;
++	virtual bool parseSourceDocument(WPSInputStream &input) = 0;
+ 
+ protected:
+ 	void _resetDocumentState();
+@@ -141,7 +142,7 @@ private:
+ 	void _openListLevel(TagOpenElement *pListLevelOpenElement);
+ 	void _closeListLevel(const char *szListType);
+ 
+-        WPXInputStream *mpInput;
++        WPSInputStream *mpInput;
+         DocumentHandler *mpHandler;
+ 	bool mbUsed; // whether or not it has been before (you can only use me once!)
+ 
+--- writerperfect/source/filter/DocumentHandler.cxx	23 Jan 2007 12:12:19 -0000	1.2
++++ writerperfect/source/filter/DocumentHandler.cxx	3 Jan 2007 16:57:28 -0000	1.1.4.5
+@@ -48,19 +48,19 @@ DocumentHandler::DocumentHandler(Referen
+ 
+ void DocumentHandler::startDocument() 
+ {
+-	WRITER_DEBUG_MSG(("DocumentHandler::startDocument"));
++	WRITER_DEBUG_MSG(("DocumentHandler::startDocument\n"));
+ 	mxHandler->startDocument();
+ }
+ 
+ void DocumentHandler::endDocument()
+ {
+-	WRITER_DEBUG_MSG(("DocumentHandler::endDocument"));
++	WRITER_DEBUG_MSG(("DocumentHandler::endDocument\n"));
+ 	mxHandler->endDocument();
+ }
+ 
+ void DocumentHandler::startElement(const char *psName, const WPXPropertyList &xPropList)
+ {
+-	WRITER_DEBUG_MSG(("DocumentHandler::startElement"));
++	WRITER_DEBUG_MSG(("DocumentHandler::startElement\n"));
+         SvXMLAttributeList *pAttrList = new SvXMLAttributeList();
+ 	Reference < XAttributeList > xAttrList(pAttrList);
+ 	WPXPropertyList::Iter i(xPropList);
+@@ -77,13 +77,13 @@ void DocumentHandler::startElement(const
+ 
+ void DocumentHandler::endElement(const char *psName)
+ {
+-	WRITER_DEBUG_MSG(("DocumentHandler::endElement"));
++	WRITER_DEBUG_MSG(("DocumentHandler::endElement\n"));
+         mxHandler->endElement(OUString::createFromAscii(psName));
+ }
+ 
+ void DocumentHandler::characters(const WPXString &sCharacters)
+ {
+-	WRITER_DEBUG_MSG(("DocumentHandler::characters"));
++	WRITER_DEBUG_MSG(("DocumentHandler::characters\n"));
+         OUString sCharU16(sCharacters.cstr(), strlen(sCharacters.cstr()), RTL_TEXTENCODING_UTF8);
+         mxHandler->characters(sCharU16);
+ }
+--- writerperfect/source/filter/SectionStyle.cxx	23 Jan 2007 12:15:14 -0000	1.3
++++ writerperfect/source/filter/SectionStyle.cxx	4 Jan 2007 11:08:33 -0000	1.2.40.3
+@@ -33,7 +33,7 @@
+ 
+ #ifdef _MSC_VER
+ double rint(double x);
+-#endif /* _WIN32 */
++#endif /* _MSC_VER */
+ 
+ SectionStyle::SectionStyle(const WPXPropertyList &xPropList, 
+                            const WPXPropertyListVector &xColumns, 
+--- writerperfect/source/filter/makefile.mk	23 Jan 2007 12:18:02 -0000	1.4
++++ writerperfect/source/filter/makefile.mk	18 Dec 2006 13:12:18 -0000	1.3.6.2
+@@ -7,12 +7,20 @@ ENABLE_EXCEPTIONS=true
+ .INCLUDE :  settings.mk
+ 
+ .IF "$(SYSTEM_LIBWPD)" == "YES"
+-INCPRE+=$(LIBWPD_CFLAGS) -I..
++INCPRE+=$(LIBWPD_CFLAGS)
+ .ELSE
+-# broken but ... necessary, internal include shafted ...
+-INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd -I..
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++.ENDIF
++
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++INCPRE+=$(LIBWPS_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
+ .ENDIF
+ 
++# broken but ... necessary, internal include shafted ...
++INCPRE+= -I..
++
+ SLOFILES= \
+ 	$(SLO)$/DocumentElement.obj		\
+ 	$(SLO)$/FontStyle.obj			\
+--- writerperfect/source/stream/WPXSvStream.cxx	17 Apr 2007 14:50:35 -0000	1.7
++++ writerperfect/source/stream/WPXSvStream.cxx	6 Feb 2007 12:51:24 -0000	1.5.38.13
+@@ -9,7 +9,7 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::io;
+ 
+ WPXSvInputStream::WPXSvInputStream( Reference< XInputStream > xStream ) :
+-		WPXInputStream(true),
++		WPSInputStream(),
+ 		mxChildStorage(),
+ 		mxChildStream(),
+ 		mxStream(xStream),
+--- writerperfect/source/stream/WPXSvStream.h	23 Jan 2007 12:18:25 -0000	1.4
++++ writerperfect/source/stream/WPXSvStream.h	3 Jan 2007 16:30:17 -0000	1.3.40.4
+@@ -7,12 +7,13 @@
+ #if defined _MSC_VER
+ #pragma warning( push, 1 )
+ #endif
++#include <libwps/WPSStream.h>
+ #include <libwpd/WPXStream.h>
+ #if defined _MSC_VER
+ #pragma warning( pop )
+ #endif
+
+-class WPXSvInputStream : public WPXInputStream
++class WPXSvInputStream : public WPSInputStream
+ {
+ public:
+ 	WPXSvInputStream( ::com::sun::star::uno::Reference<
+--- writerperfect/source/stream/makefile.mk	23 Jan 2007 12:18:39 -0000	1.4
++++ writerperfect/source/stream/makefile.mk	22 Dec 2006 16:08:14 -0000	1.3.12.2
+@@ -12,6 +12,12 @@ INCPRE+=$(LIBWPD_CFLAGS)
+ INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
+ .ENDIF
+ 
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++INCPRE+=$(LIBWPS_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
++.ENDIF
++
+ # broken but ... necessary, internal include shafted ...
+ INCPRE+= -I..
+ 
+--- writerperfect/source/wpdimp/WordPerfectCollector.cxx	23 Jan 2007 12:18:49 -0000	1.2
++++ writerperfect/source/wpdimp/WordPerfectCollector.cxx	18 Dec 2006 13:12:19 -0000	1.1.4.1
+@@ -27,11 +27,12 @@
+ #pragma warning( push, 1 )
+ #endif
+ #include "WordPerfectCollector.hxx"
++#include <libwpd/WPDocument.h>
+ #if defined _MSC_VER
+ #pragma warning( pop )
+ #endif
+
+-WordPerfectCollector::WordPerfectCollector(WPXInputStream *pInput, DocumentHandler *pHandler) :
++WordPerfectCollector::WordPerfectCollector(WPSInputStream *pInput, DocumentHandler *pHandler) :
+ 	DocumentCollector(pInput, pHandler)
+ {
+ }
+@@ -37,7 +38,7 @@ WordPerfectCollector::~WordPerfectCollec
+ {
+ }
+ 
+-bool WordPerfectCollector::parseSourceDocument(WPXInputStream &input)
++bool WordPerfectCollector::parseSourceDocument(WPSInputStream &input)
+ {
+         WPDResult result = WPDocument::parse(&input, static_cast<WPXHLListenerImpl *>(this));
+         if (result != WPD_OK)
+--- writerperfect/source/wpdimp/WordPerfectCollector.hxx	23 Jan 2007 12:19:00 -0000	1.2
++++ writerperfect/source/wpdimp/WordPerfectCollector.hxx	18 Dec 2006 13:12:19 -0000	1.1.4.1
+@@ -34,8 +34,8 @@
+ class WordPerfectCollector : public DocumentCollector
+ {
+ public:
+-	WordPerfectCollector(WPXInputStream *pInput, DocumentHandler *pHandler);
++	WordPerfectCollector(WPSInputStream *pInput, DocumentHandler *pHandler);
+ 	virtual ~WordPerfectCollector();
+-	bool parseSourceDocument(WPXInputStream &pInput);
++	bool parseSourceDocument(WPSInputStream &pInput);
+ };
+ #endif
+--- writerperfect/source/wpdimp/makefile.mk	23 Jan 2007 12:19:31 -0000	1.2
++++ writerperfect/source/wpdimp/makefile.mk	18 Dec 2006 13:12:20 -0000	1.1.4.1
+@@ -7,12 +7,20 @@ ENABLE_EXCEPTIONS=true
+ .INCLUDE :  settings.mk
+ 
+ .IF "$(SYSTEM_LIBWPD)" == "YES"
+-INCPRE+=$(LIBWPD_CFLAGS) -I..
++INCPRE+=$(LIBWPD_CFLAGS)
+ .ELSE
+-# broken but ... necessary, internal include shafted ...
+-INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd -I..
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++.ENDIF
++
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++INCPRE+=$(LIBWPS_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
+ .ENDIF
+ 
++# broken but ... necessary, internal include shafted ...
++INCPRE+= -I..
++
+ SLOFILES= \
+ 	$(SLO)$/WordPerfectCollector.obj  \
+ 	$(SLO)$/WordPerfectImportFilter.obj  \
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/source/wpsimp/MSWorksCollector.cxx	18 Dec 2006 13:12:21 -0000	1.1.2.1
+@@ -0,0 +1,48 @@
++/* MSWorksCollector: Collects sections and runs of text from a
++ * wordperfect file (and styles to go along with them) and writes them
++ * to a Writer target document
++ *
++ * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
++ *
++ * For further information visit http://libwpd.sourceforge.net
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#include "MSWorksCollector.hxx"
++#include <libwps/WPSDocument.h>
++
++MSWorksCollector::MSWorksCollector(WPSInputStream *pInput, DocumentHandler *pHandler) :
++	DocumentCollector(pInput, pHandler)
++{
++}
++
++MSWorksCollector::~MSWorksCollector()
++{
++}
++
++bool MSWorksCollector::parseSourceDocument(WPSInputStream &input)
++{
++        WPSResult result = WPSDocument::parse(&input, static_cast<WPXHLListenerImpl *>(this));
++        if (result != WPS_OK)
++                return false;
++
++	return true;
++}
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/source/wpsimp/MSWorksCollector.hxx	18 Dec 2006 13:12:21 -0000	1.1.2.1
+@@ -0,0 +1,41 @@
++/* MSWorksCollector: Collects sections and runs of text from a
++ * wordperfect file (and styles to go along with them) and writes them
++ * to a Writer target document
++ *
++ * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
++ *
++ * For further information visit http://libwpd.sourceforge.net
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#ifndef _MSWORKSCOLLECTOR_HXX
++#define _MSWORKSCOLLECTOR_HXX
++
++#include "filter/DocumentCollector.hxx"
++
++class MSWorksCollector : public DocumentCollector
++{
++public:
++	MSWorksCollector(WPSInputStream *pInput, DocumentHandler *pHandler);
++	virtual ~MSWorksCollector();
++	bool parseSourceDocument(WPSInputStream &input);
++};
++#endif
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/source/wpsimp/MSWorksImportFilter.cxx	30 Dec 2006 14:23:13 -0000	1.1.2.4
+@@ -0,0 +1,303 @@
++/* MSWorksImportFilter: Sets up the filter, and calls DocumentCollector
++ * to do the actual filtering
++ *
++ * Copyright (C) 2000 by Sun Microsystems, Inc.
++ * Copyright (C) 2002-2004 William Lachance (wlach@interlog.com)
++ * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
++ * Copyright (C) 2004 Fridrich Strba <fridrich.strba@bluewin.ch>
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
++ * 02111-1307, USA.
++ *
++ *  Contributor(s): Martin Gallwey (gallwey@sun.com)
++ *
++ */
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++#ifndef _RTL_TENCINFO_H_
++#include <rtl/tencinfo.h>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
++#include <com/sun/star/io/XInputStream.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XATTRIBUTELIST_HPP_
++#include <com/sun/star/xml/sax/XAttributeList.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_INPUTSOURCE_HPP_
++#include <com/sun/star/xml/sax/InputSource.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XPARSER_HPP_
++#include <com/sun/star/xml/sax/XParser.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UCB_XCOMMANDENVIRONMENT_HPP
++#include <com/sun/star/ucb/XCommandEnvironment.hpp>
++#endif
++
++#ifndef _ATTRLIST_HPP_
++#include <xmloff/attrlist.hxx>
++#endif
++#ifndef _XMLKYWD_HPP
++#include <xmloff/xmlkywd.hxx>
++#endif
++
++#ifndef _UCBHELPER_CONTENT_HXX
++#include <ucbhelper/content.hxx>
++#endif
++
++#include "filter/FilterInternal.hxx"
++#include "filter/DocumentHandler.hxx"
++#include "filter/DocumentCollector.hxx"
++#include "stream/WPXSvStream.h"
++
++#include <libwps/WPSDocument.h>
++#include "MSWorksImportFilter.hxx"
++#include "MSWorksCollector.hxx"
++
++// using namespace ::rtl;
++using rtl::OString;
++using rtl::OUString;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::Any;
++using com::sun::star::uno::UNO_QUERY;
++using com::sun::star::uno::XInterface;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::lang::XMultiServiceFactory;
++using com::sun::star::beans::PropertyValue;
++using com::sun::star::document::XFilter;
++using com::sun::star::document::XExtendedFilterDetection;
++using com::sun::star::ucb::XCommandEnvironment;
++
++using com::sun::star::io::XInputStream;
++using com::sun::star::document::XImporter;
++using com::sun::star::xml::sax::InputSource;
++using com::sun::star::xml::sax::XAttributeList;
++using com::sun::star::xml::sax::XDocumentHandler;
++using com::sun::star::xml::sax::XParser;
++
++void callHandler(Reference < XDocumentHandler > xDocHandler);
++
++sal_Bool SAL_CALL MSWorksImportFilter::importImpl( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
++	throw (RuntimeException)
++{
++	WRITER_DEBUG_MSG(("MSWorksImportFilter::importImpl: Got here!\n"));
++	
++	sal_Int32 nLength = aDescriptor.getLength();
++	const PropertyValue * pValue = aDescriptor.getConstArray();
++	OUString sURL;
++	Reference < XInputStream > xInputStream;
++	for ( sal_Int32 i = 0 ; i < nLength; i++)
++	{
++	    if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++		pValue[i].Value >>= xInputStream;
++	    else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
++		pValue[i].Value >>= sURL;
++	}
++	if ( !xInputStream.is() )
++	{
++	    OSL_ASSERT( 0 );
++	    return sal_False;
++	}
++	OString sFileName;
++	sFileName = OUStringToOString(sURL, RTL_TEXTENCODING_INFO_ASCII);
++	
++	// An XML import service: what we push sax messages to..
++	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLImporter" ) );
++	Reference < XDocumentHandler > xInternalHandler( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
++
++	// The XImporter sets up an empty target document for XDocumentHandler to write to.. 
++	Reference < XImporter > xImporter(xInternalHandler, UNO_QUERY);
++	xImporter->setTargetDocument(mxDoc);
++
++        // OO Document Handler: abstract class to handle document SAX messages, concrete implementation here
++        // writes to in-memory target doc
++        DocumentHandler xHandler(xInternalHandler);
++
++	WPXSvInputStream input( xInputStream );
++
++	MSWorksCollector collector(&input, &xHandler);
++	collector.filter();
++
++	return true; 
++}
++
++sal_Bool SAL_CALL MSWorksImportFilter::filter( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++	throw (RuntimeException)
++{
++	WRITER_DEBUG_MSG(("MSWorksImportFilter::filter: Got here!\n"));
++	return importImpl ( aDescriptor );
++}
++void SAL_CALL MSWorksImportFilter::cancel(  ) 
++	throw (RuntimeException)
++{
++	WRITER_DEBUG_MSG(("MSWorksImportFilter::cancel: Got here!\n"));
++}
++
++// XImporter
++void SAL_CALL MSWorksImportFilter::setTargetDocument( const Reference< ::com::sun::star::lang::XComponent >& xDoc )
++	throw (::com::sun::star::lang::IllegalArgumentException, RuntimeException)
++{
++	WRITER_DEBUG_MSG(("MSWorksImportFilter::getTargetDocument: Got here!\n"));
++	meType = FILTER_IMPORT;
++	mxDoc = xDoc;
++}
++
++// XExtendedFilterDetection
++OUString SAL_CALL MSWorksImportFilter::detect( com::sun::star::uno::Sequence< PropertyValue >& Descriptor )
++	throw( com::sun::star::uno::RuntimeException )
++{
++	WRITER_DEBUG_MSG(("MSWorksImportFilter::detect: Got here!\n"));
++	
++	WPSConfidence confidence = WPS_CONFIDENCE_NONE;
++	OUString sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "" ) );
++	sal_Int32 nLength = Descriptor.getLength();
++	sal_Int32 location = nLength;
++	OUString sURL;
++	const PropertyValue * pValue = Descriptor.getConstArray();
++	Reference < XInputStream > xInputStream;
++	for ( sal_Int32 i = 0 ; i < nLength; i++)
++	{
++		if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "TypeName" ) ) )
++			location=i;
++		else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++			pValue[i].Value >>= xInputStream;
++		else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
++			pValue[i].Value >>= sURL;
++	}
++
++        Reference< com::sun::star::ucb::XCommandEnvironment > xEnv;
++        if (!xInputStream.is())
++        {
++		try
++		{
++			::ucbhelper::Content aContent(sURL, xEnv);
++	                xInputStream = aContent.openStream();
++		}
++		catch ( ... )
++		{
++			return ::rtl::OUString();
++		}
++		
++                if (!xInputStream.is())
++                    return ::rtl::OUString();
++        }
++		
++	WPXSvInputStream input( xInputStream );
++	
++	if (input.atEOS())
++        return ::rtl::OUString();
++
++	confidence = WPSDocument::isFileFormatSupported(&input, false);
++
++	if ((confidence == WPS_CONFIDENCE_EXCELLENT) || (confidence == WPS_CONFIDENCE_GOOD))
++		sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "writer_MS_Works_Document" ) );
++
++	if (sTypeName.getLength())
++	{
++		if ( location == Descriptor.getLength() )
++		{
++			Descriptor.realloc(nLength+1);
++			Descriptor[location].Name = ::rtl::OUString::createFromAscii( "TypeName" );
++		}
++
++		Descriptor[location].Value <<=sTypeName;
++	}
++
++	return sTypeName;	
++}
++
++
++// XInitialization
++void SAL_CALL MSWorksImportFilter::initialize( const Sequence< Any >& aArguments ) 
++	throw (Exception, RuntimeException)
++{
++	WRITER_DEBUG_MSG(("MSWorksImportFilter::initialize: Got here!\n"));
++	Sequence < PropertyValue > aAnySeq;
++	sal_Int32 nLength = aArguments.getLength();
++	if ( nLength && ( aArguments[0] >>= aAnySeq ) )
++	{
++		const PropertyValue * pValue = aAnySeq.getConstArray();
++		nLength = aAnySeq.getLength();
++		for ( sal_Int32 i = 0 ; i < nLength; i++)
++		{
++			if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) )
++			{
++				pValue[i].Value >>= msFilterName;
++				break;
++			}
++		}
++	}
++}
++OUString MSWorksImportFilter_getImplementationName ()
++	throw (RuntimeException)
++{
++	return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.MSWorksImportFilter" ) );
++}
++
++#define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
++#define SERVICE_NAME2 "com.sun.star.document.ExtendedTypeDetection"
++sal_Bool SAL_CALL MSWorksImportFilter_supportsService( const OUString& ServiceName ) 
++	throw (RuntimeException)
++{
++	return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
++		ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) );
++}
++Sequence< OUString > SAL_CALL MSWorksImportFilter_getSupportedServiceNames(  ) 
++	throw (RuntimeException)
++{
++	Sequence < OUString > aRet(2);
++        OUString* pArray = aRet.getArray();
++        pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
++	pArray[1] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) ); 
++        return aRet;
++}
++#undef SERVICE_NAME2
++#undef SERVICE_NAME1
++
++Reference< XInterface > SAL_CALL MSWorksImportFilter_createInstance( const Reference< XMultiServiceFactory > & rSMgr)
++	throw( Exception )
++{
++	return (cppu::OWeakObject*) new MSWorksImportFilter( rSMgr );
++}
++
++// XServiceInfo
++OUString SAL_CALL MSWorksImportFilter::getImplementationName(  ) 
++	throw (RuntimeException)
++{
++	return MSWorksImportFilter_getImplementationName();
++}
++sal_Bool SAL_CALL MSWorksImportFilter::supportsService( const OUString& rServiceName ) 
++	throw (RuntimeException)
++{
++    return MSWorksImportFilter_supportsService( rServiceName );
++}
++Sequence< OUString > SAL_CALL MSWorksImportFilter::getSupportedServiceNames(  ) 
++	throw (RuntimeException)
++{
++    return MSWorksImportFilter_getSupportedServiceNames();
++}
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/source/wpsimp/MSWorksImportFilter.hxx	18 Dec 2006 13:12:21 -0000	1.1.2.1
+@@ -0,0 +1,129 @@
++/* 
++ * Copyright (C) 2000 by Sun Microsystems, Inc.
++ * Copyright (C) 2002-2004 William Lachance (wlach@interlog.com)
++ * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
++ * Copyright (C) 2004 Fridrich Strba <fridrich.strba@bluewin.ch>
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
++ * 02111-1307, USA.
++ *
++ *  Contributor(s): Martin Gallwey (gallwey@sun.com)
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#ifndef _WORDPERFECTIMPORTFILTER_HXX
++#define _WORDPERFECTIMPORTFILTER_HXX
++
++#ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
++#include <com/sun/star/document/XFilter.hpp>
++#endif
++#ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_
++#include <com/sun/star/document/XImporter.hpp>
++#endif
++#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_
++#include <com/sun/star/document/XExtendedFilterDetection.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
++#include <com/sun/star/lang/XInitialization.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE5_HXX_
++#include <cppuhelper/implbase5.hxx>
++#endif
++
++enum FilterType 
++{
++	FILTER_IMPORT,
++	FILTER_EXPORT
++};
++/* This component will be instantiated for both import or export. Whether it calls
++ * setSourceDocument or setTargetDocument determines which Impl function the filter
++ * member calls */
++class MSWorksImportFilter : public cppu::WeakImplHelper5 
++< 
++	com::sun::star::document::XFilter,
++	com::sun::star::document::XImporter,
++	com::sun::star::document::XExtendedFilterDetection,
++	com::sun::star::lang::XInitialization,
++	com::sun::star::lang::XServiceInfo
++>
++{
++protected:
++	// oo.org declares
++	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
++	::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > mxDoc;
++	::rtl::OUString msFilterName;
++	::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > mxHandler;
++
++	FilterType meType;
++
++	sal_Bool SAL_CALL importImpl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++public:
++	MSWorksImportFilter( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > &rxMSF)
++        : mxMSF( rxMSF ) {}
++	virtual ~MSWorksImportFilter() {}
++
++	// XFilter
++        virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++		throw (::com::sun::star::uno::RuntimeException);
++        virtual void SAL_CALL cancel(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++	// XImporter
++        virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) 
++		throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
++
++ 	//XExtendedFilterDetection
++	virtual ::rtl::OUString SAL_CALL detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Descriptor ) 
++		throw( com::sun::star::uno::RuntimeException );
++
++	// XInitialization
++        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) 
++		throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++
++	// XServiceInfo
++        virtual ::rtl::OUString SAL_CALL getImplementationName(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++        virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 
++		throw (::com::sun::star::uno::RuntimeException);
++        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++};
++
++::rtl::OUString MSWorksImportFilter_getImplementationName()
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++sal_Bool SAL_CALL MSWorksImportFilter_supportsService( const ::rtl::OUString& ServiceName ) 
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL MSWorksImportFilter_getSupportedServiceNames(  ) 
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
++SAL_CALL MSWorksImportFilter_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
++	throw ( ::com::sun::star::uno::Exception );
++
++#endif
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/source/wpsimp/makefile.mk	18 Dec 2006 13:12:22 -0000	1.1.2.1
+@@ -0,0 +1,29 @@
++PRJ=..$/..
++
++PRJNAME=writerperfect
++TARGET=wpsimp
++ENABLE_EXCEPTIONS=true
++
++.INCLUDE :  settings.mk
++
++.IF "$(SYSTEM_LIBWPD)" == "YES"
++INCPRE+=$(LIBWPD_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++.ENDIF
++
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++INCPRE+=$(LIBWPS_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
++.ENDIF
++
++# broken but ... necessary, internal include shafted ...
++INCPRE+= -I..
++
++SLOFILES= \
++	$(SLO)$/MSWorksCollector.obj  \
++	$(SLO)$/MSWorksImportFilter.obj  \
++	$(SLO)$/msworks_genericfilter.obj		
++
++.INCLUDE :  target.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/source/wpsimp/msworks_genericfilter.cxx	19 Dec 2006 10:21:57 -0000	1.1.2.2
+@@ -0,0 +1,101 @@
++/* genericfilter: mostly generic code for registering the filter
++ *
++ * Portions of this code Copyright 2000 by Sun Microsystems, Inc.
++ * Rest is Copyright (C) 2002 William Lachance (wlach@interlog.com)
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
++ * 02111-1307, USA.
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#include <stdio.h>
++
++#include <osl/mutex.hxx>
++#include <osl/thread.h>
++#include <cppuhelper/factory.hxx>
++
++#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++#endif
++
++#include "MSWorksImportFilter.hxx"
++
++using namespace ::rtl;
++using namespace ::cppu;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::registry;
++
++extern "C"
++{
++//==================================================================================================
++void SAL_CALL component_getImplementationEnvironment(
++	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++//==================================================================================================
++sal_Bool SAL_CALL component_writeInfo(
++	void * /* pServiceManager */, void * pRegistryKey )
++{
++	if (pRegistryKey)
++	{
++		try
++		{
++            sal_Int32 nPos = 0;
++            Reference< XRegistryKey > xNewKey(
++				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( MSWorksImportFilter_getImplementationName() ) ); 
++            xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
++			
++			const Sequence< OUString > & rSNL = MSWorksImportFilter_getSupportedServiceNames();
++			const OUString * pArray = rSNL.getConstArray();
++			for ( nPos = rSNL.getLength(); nPos--; )
++				xNewKey->createKey( pArray[nPos] );
++
++			return sal_True;
++		}
++		catch (InvalidRegistryException &)
++		{
++			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
++		}
++	}
++	return sal_False;
++}
++//==================================================================================================
++void * SAL_CALL component_getFactory(
++	const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
++{
++	void * pRet = 0;
++
++    OUString implName = OUString::createFromAscii( pImplName );
++	if ( pServiceManager && implName.equals(MSWorksImportFilter_getImplementationName()) )
++	{
++		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
++			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
++			OUString::createFromAscii( pImplName ),
++			MSWorksImportFilter_createInstance, MSWorksImportFilter_getSupportedServiceNames() ) );
++		
++		if (xFactory.is())
++		{
++			xFactory->acquire();
++			pRet = xFactory.get();
++		}
++	}
++	
++	return pRet;
++}
++}
+--- writerperfect/util/makefile.mk	26 Mar 2007 13:26:59 -0000	1.8
++++ writerperfect/util/makefile.mk	7 May 2007 09:28:20 -0000	1.6.6.4
+@@ -5,18 +5,26 @@ VERSION=$(UPD)
+ 
+ .INCLUDE :  settings.mk
+ 
+-.IF "$(GUI)"=="UNX"
++
++.IF "$(GUI)"=="UNX" || "$(GUI)$(COM)"=="WNTGCC"
++
+ .IF "$(SYSTEM_LIBWPD)" == "YES"
+ LIBWPD=$(LIBWPD_LIBS)
+ .ELSE
+ LIBWPD=-lwpdlib
+ .ENDIF
++
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++LIBWPS=$(LIBWPS_LIBS)
+ .ELSE
+-.IF "$(GUI)$(COM)"=="WNTGCC"
+-LIBWPD=-lwpdlib
+-.ELSE
+- LIBWPD=$(LIBPRE) wpdlib.lib
++LIBWPS=-lwpslib
+ .ENDIF
++
++.ELSE
++
++LIBWPD=$(LIBPRE) wpdlib.lib
++LIBWPS=$(LIBPRE) wpslib.lib
++
+ .ENDIF
+ 
+ LIB1TARGET= $(SLB)$/wpft.lib
+@@ -46,4 +54,33 @@ SHL1LIBS = $(LIB1TARGET)
+ SHL1VERSIONMAP=wpft.map
+ DEF1NAME=$(SHL1TARGET)
+ 
++
++LIB2TARGET= $(SLB)$/msworks.lib
++LIB2FILES= \
++	$(SLB)$/stream.lib  \
++	$(SLB)$/filter.lib  \
++	$(SLB)$/wpsimp.lib
++SHL2LIBS=$(LIB2TARGET)
++SHL2STDLIBS+= \
++	$(SVLLIB)	\
++	$(SOTLIB) \
++	$(SO2LIB) \
++	$(SVTOOLLIB) \
++	$(UNOTOOLSLIB) \
++	$(TOOLSLIB) \
++	$(COMPHELPERLIB) \
++	$(UCBHELPERLIB) \
++	$(CPPUHELPERLIB) \
++	$(CPPULIB) \
++	$(SALLIB) \
++	$(XMLOFFLIB) \
++	$(LIBWPS) \
++	$(LIBWPD)
++
++SHL2TARGET = msworks$(UPD)$(DLLPOSTFIX)
++SHL2IMPLIB = i$(SHL2TARGET)
++SHL2LIBS = $(LIB2TARGET)
++SHL2VERSIONMAP=msworks.map
++DEF2NAME=$(SHL2TARGET)
++
+ .INCLUDE :  target.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ writerperfect/util/msworks.map	18 Dec 2006 13:12:22 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++WPFT_1_0 {
++	global:
++		component_getImplementationEnvironment;
++		component_writeInfo;
++		component_getFactory;
++	local:
++		*;
++};
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sensible-browser.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sensible-browser.diff
@@ -0,0 +1,56 @@
+Index: shell/source/unix/misc/gnome-open-url.sh
+===================================================================
+RCS file: /cvs/gsl/shell/shell/source/unix/misc/gnome-open-url.sh,v
+retrieving revision 1.3
+diff -u -u -r1.3 gnome-open-url.sh
+--- shell/source/unix/misc/gnome-open-url.sh	13 May 2005 07:31:07 -0000	1.3
++++ shell/source/unix/misc/gnome-open-url.sh	6 Jun 2005 09:43:06 -0000
+@@ -49,7 +49,11 @@
+     ;;
+ esac
+ 
+-# use gnome-open utility coming with libgnome if available
+-gnome-open "$1" 2>/dev/null || "$0.bin" $1
++if which gnome-open; then
++	# use gnome-open utility coming with libgnome if available
++	gnome-open "$1" 2>/dev/null
++else
++	sensible-browser "$1"
++fi
+ 
+ exit 0
+Index: shell/source/unix/misc/kde-open-url.sh
+===================================================================
+RCS file: /cvs/gsl/shell/shell/source/unix/misc/kde-open-url.sh,v
+retrieving revision 1.2
+diff -u -u -r1.2 kde-open-url.sh
+--- shell/source/unix/misc/kde-open-url.sh	10 May 2004 13:08:06 -0000	1.2
++++ shell/source/unix/misc/kde-open-url.sh	6 Jun 2005 09:43:06 -0000
+@@ -51,9 +51,9 @@
+ 
+ # special handling for mailto: uris
+ if echo $1 | grep '^mailto:' > /dev/null; then
+-  kmailservice "$1" &
++  sensible-ooomua "$1" &
+ else
+-  kfmclient openURL "$1" &
++  sensible-browser "$1" &
+ fi
+ 
+ exit 0
+Index: shell/source/unix/misc/open-url.sh
+===================================================================
+RCS file: /cvs/gsl/shell/shell/source/unix/misc/open-url.sh,v
+retrieving revision 1.2
+diff -u -u -r1.2 open-url.sh
+--- shell/source/unix/misc/open-url.sh	10 May 2004 13:08:30 -0000	1.2
++++ shell/source/unix/misc/open-url.sh	6 Jun 2005 09:43:06 -0000
+@@ -116,6 +116,8 @@
+   if [ $BROWSER ]; then
+     $BROWSER $1 &
+     exit 0
++  elif [ -x /usr/bin/sensible-browser ]; then
++    sensible-browser "$1"
+   else
+     # mozilla derivates may need -remote semantics
+     for i in mozilla netscape firefox; do
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/internal-mesa-headers-mesa.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/internal-mesa-headers-mesa.diff
@@ -0,0 +1,13362 @@
+--- /dev/null	
++++ Mesa/prj/d.lst	
+@@ -0,0 +1,4 @@
++mkdir: %_DEST%\inc%_EXT%\GL
++
++..\inc\*.h %_DEST%\inc%_EXT%\GL\*.h
++
+--- /dev/null	
++++ Mesa/prj/build.lst	
+@@ -0,0 +1,4 @@
++me  Mesa : solenv NULL
++me  Mesa                         usr1    -   u    me_mkout NULL
++me	Mesa\prj                     get     -   all  me_prj NULL
++
+--- /dev/null	
++++ Mesa/inc/vms_x_fix.h	
+@@ -0,0 +1,1224 @@
++/***************************************************************************
++ *                                                                         *
++ * Author : Jouk Jansen (joukj@hrem.nano.tudelft.nl)                       *
++ *                                                                         *
++ * Last revision : 31 August 2006                                          *
++ *                                                                         *
++ * Repair definitions of Runtime library functions when compiling with     *
++ * /name=(as_is) on OpenVMS                                                *
++ *                                                                         *
++ ***************************************************************************/
++
++#ifndef VMS_X_FIX
++#define VMS_X_FIX
++
++#define decw$_select DECW$_SELECT
++#define DtSaverGetWindows DTSAVERGETWINDOWS
++#define MrmFetchWidget MRMFETCHWIDGET
++#define MrmInitialize MRMINITIALIZE
++#define MrmOpenHierarchy MRMOPENHIERARCHY
++#define MrmRegisterNames MRMREGISTERNAMES
++#define XAddExtension XADDEXTENSION
++#define XAddHosts XADDHOSTS
++#define XAllocClassHint XALLOCCLASSHINT
++#define XAllocColor XALLOCCOLOR
++#define XAllocColorCells XALLOCCOLORCELLS
++#define XAllocIconSize XALLOCICONSIZE
++#define XAllocNamedColor XALLOCNAMEDCOLOR
++#define XAllocSizeHints XALLOCSIZEHINTS
++#define XAllocStandardColormap XALLOCSTANDARDCOLORMAP
++#define XAllocWMHints XALLOCWMHINTS
++#define XAllowEvents XALLOWEVENTS
++#define XAutoRepeatOff XAUTOREPEATOFF
++#define XAutoRepeatOn XAUTOREPEATON
++#define XBaseFontNameListOfFontSet XBASEFONTNAMELISTOFFONTSET
++#define XBell XBELL
++#define XBitmapPad XBITMAPPAD
++#define XBlackPixel XBLACKPIXEL
++#define XBlackPixelOfScreen XBLACKPIXELOFSCREEN
++#define XCellsOfScreen XCELLSOFSCREEN
++#define XChangeActivePointerGrab XCHANGEACTIVEPOINTERGRAB
++#define XChangeGC XCHANGEGC
++#define XChangeKeyboardControl XCHANGEKEYBOARDCONTROL
++#define XChangePointerControl XCHANGEPOINTERCONTROL
++#define XChangeProperty XCHANGEPROPERTY
++#define XChangeWindowAttributes XCHANGEWINDOWATTRIBUTES
++#define XCheckIfEvent XCHECKIFEVENT
++#define XCheckMaskEvent XCHECKMASKEVENT
++#define XCheckTypedEvent XCHECKTYPEDEVENT
++#define XCheckTypedWindowEvent XCHECKTYPEDWINDOWEVENT
++#define XCheckWindowEvent XCHECKWINDOWEVENT
++#define XClearArea XCLEARAREA
++#define XClearWindow XCLEARWINDOW
++#define XClipBox XCLIPBOX
++#define XCloseDisplay XCLOSEDISPLAY
++#define XCloseIM XCLOSEIM
++#define XConfigureWindow XCONFIGUREWINDOW
++#define XConvertSelection XCONVERTSELECTION
++#define XCopyArea XCOPYAREA
++#define XCopyColormapAndFree XCOPYCOLORMAPANDFREE
++#define XCopyGC XCOPYGC
++#define XCopyPlane XCOPYPLANE
++#define XCreateBitmapFromData XCREATEBITMAPFROMDATA
++#define XCreateColormap XCREATECOLORMAP
++#define XCreateFontCursor XCREATEFONTCURSOR
++#define XCreateFontSet XCREATEFONTSET
++#define XCreateGC XCREATEGC
++#define XCreateGlyphCursor XCREATEGLYPHCURSOR
++#define XCreateIC XCREATEIC
++#define XCreateImage XCREATEIMAGE
++#define XCreatePixmap XCREATEPIXMAP
++#define XCreatePixmapCursor XCREATEPIXMAPCURSOR
++#define XCreatePixmapFromBitmapData XCREATEPIXMAPFROMBITMAPDATA
++#define XCreateRegion XCREATEREGION
++#define XCreateSimpleWindow XCREATESIMPLEWINDOW
++#define XCreateWindow XCREATEWINDOW
++#define XDefaultColormap XDEFAULTCOLORMAP
++#define XDefaultColormapOfScreen XDEFAULTCOLORMAPOFSCREEN
++#define XDefaultDepth XDEFAULTDEPTH
++#define XDefaultDepthOfScreen XDEFAULTDEPTHOFSCREEN
++#define XDefaultGC XDEFAULTGC
++#define XDefaultRootWindow XDEFAULTROOTWINDOW
++#define XDefaultScreen XDEFAULTSCREEN
++#define XDefaultScreenOfDisplay XDEFAULTSCREENOFDISPLAY
++#define XDefaultVisual XDEFAULTVISUAL
++#define XDefaultVisualOfScreen XDEFAULTVISUALOFSCREEN
++#define XDefineCursor XDEFINECURSOR
++#define XDeleteContext XDELETECONTEXT
++#define XDeleteProperty XDELETEPROPERTY
++#define XDestroyIC XDESTROYIC
++#define XDestroyRegion XDESTROYREGION
++#define XDestroySubwindows XDESTROYSUBWINDOWS
++#define XDestroyWindow XDESTROYWINDOW
++#define XDisableAccessControl XDISABLEACCESSCONTROL
++#define XDisplayCells XDISPLAYCELLS
++#define XDisplayHeight XDISPLAYHEIGHT
++#define XDisplayKeycodes XDISPLAYKEYCODES
++#define XDisplayName XDISPLAYNAME
++#define XDisplayOfIM XDISPLAYOFIM
++#define XDisplayOfScreen XDISPLAYOFSCREEN
++#define XDisplayString XDISPLAYSTRING
++#define XDisplayWidth XDISPLAYWIDTH
++#define XDoesBackingStore XDOESBACKINGSTORE
++#define XDrawArc XDRAWARC
++#define XDrawArcs XDRAWARCS
++#define XDrawImageString XDRAWIMAGESTRING
++#define XDrawImageString16 XDRAWIMAGESTRING16
++#define XDrawLine XDRAWLINE
++#define XDrawLines XDRAWLINES
++#define XDrawPoint XDRAWPOINT
++#define XDrawPoints XDRAWPOINTS
++#define XDrawRectangle XDRAWRECTANGLE
++#define XDrawRectangles XDRAWRECTANGLES
++#define XDrawSegments XDRAWSEGMENTS
++#define XDrawString XDRAWSTRING
++#define XDrawString16 XDRAWSTRING16
++#define XDrawText XDRAWTEXT
++#define XDrawText16 XDRAWTEXT16
++#define XESetCloseDisplay XESETCLOSEDISPLAY
++#define XEmptyRegion XEMPTYREGION
++#define XEnableAccessControl XENABLEACCESSCONTROL
++#define XEqualRegion XEQUALREGION
++#define XEventsQueued XEVENTSQUEUED
++#define XExtendedMaxRequestSize XEXTENDEDMAXREQUESTSIZE
++#define XExtentsOfFontSet XEXTENTSOFFONTSET
++#define XFetchBuffer XFETCHBUFFER
++#define XFetchBytes XFETCHBYTES
++#define XFetchName XFETCHNAME
++#define XFillArc XFILLARC
++#define XFillArcs XFILLARCS
++#define XFillPolygon XFILLPOLYGON
++#define XFillRectangle XFILLRECTANGLE
++#define XFillRectangles XFILLRECTANGLES
++#define XFilterEvent XFILTEREVENT
++#define XFindContext XFINDCONTEXT
++#define XFlush XFLUSH
++#define XFontsOfFontSet XFONTSOFFONTSET
++#define XForceScreenSaver XFORCESCREENSAVER
++#define XFree XFREE
++#define XFreeColormap XFREECOLORMAP
++#define XFreeColors XFREECOLORS
++#define XFreeCursor XFREECURSOR
++#define XFreeDeviceList XFREEDEVICELIST
++#define XFreeDeviceState XFREEDEVICESTATE
++#define XFreeFont XFREEFONT
++#define XFreeFontInfo XFREEFONTINFO
++#define XFreeFontNames XFREEFONTNAMES
++#define XFreeFontSet XFREEFONTSET
++#define XFreeGC XFREEGC
++#define XFreeModifiermap XFREEMODIFIERMAP
++#define XFreePixmap XFREEPIXMAP
++#define XFreeStringList XFREESTRINGLIST
++#define XGContextFromGC XGCONTEXTFROMGC
++#define XGeometry XGEOMETRY
++#define XGetAtomName XGETATOMNAME
++#define XGetClassHint XGETCLASSHINT
++#define XGetCommand XGETCOMMAND
++#define XGetDefault XGETDEFAULT
++#define XGetErrorDatabaseText XGETERRORDATABASETEXT
++#define XGetErrorText XGETERRORTEXT
++#define XGetExtensionVersion XGETEXTENSIONVERSION
++#define XGetFontProperty XGETFONTPROPERTY
++#define XGetGCValues XGETGCVALUES
++#define XGetGeometry XGETGEOMETRY
++#define XGetICValues XGETICVALUES
++#define XGetIMValues XGETIMVALUES
++#define XGetIconName XGETICONNAME
++#define XGetIconSizes XGETICONSIZES
++#define XGetImage XGETIMAGE
++#define XGetInputFocus XGETINPUTFOCUS
++#define XGetKeyboardControl XGETKEYBOARDCONTROL
++#define XGetKeyboardMapping XGETKEYBOARDMAPPING
++#define XGetModifierMapping XGETMODIFIERMAPPING
++#define XGetMotionEvents XGETMOTIONEVENTS
++#define XGetNormalHints XGETNORMALHINTS
++#define XGetPointerControl XGETPOINTERCONTROL
++#define XGetPointerMapping XGETPOINTERMAPPING
++#define XGetRGBColormaps XGETRGBCOLORMAPS
++#define XGetScreenSaver XGETSCREENSAVER
++#define XGetSelectionOwner XGETSELECTIONOWNER
++#define XGetStandardColormap XGETSTANDARDCOLORMAP
++#define XGetSubImage XGETSUBIMAGE
++#define XGetTextProperty XGETTEXTPROPERTY
++#define XGetVisualInfo XGETVISUALINFO
++#define XGetWMColormapWindows XGETWMCOLORMAPWINDOWS
++#define XGetWMHints XGETWMHINTS
++#define XGetWMIconName XGETWMICONNAME
++#define XGetWMName XGETWMNAME
++#define XGetWMNormalHints XGETWMNORMALHINTS
++#define XGetWindowAttributes XGETWINDOWATTRIBUTES
++#define XGetWindowProperty XGETWINDOWPROPERTY
++#define XGrabButton XGRABBUTTON
++#define XGrabKeyboard XGRABKEYBOARD
++#define XGrabPointer XGRABPOINTER
++#define XGrabServer XGRABSERVER
++#define XHeightMMOfScreen XHEIGHTMMOFSCREEN
++#define XHeightOfScreen XHEIGHTOFSCREEN
++#define XIconifyWindow XICONIFYWINDOW
++#define XIfEvent XIFEVENT
++#define XInitExtension XINITEXTENSION
++#define XInitImage XINITIMAGE
++#define XInstallColormap XINSTALLCOLORMAP
++#define XInternAtom XINTERNATOM
++#define XInternAtoms XINTERNATOMS
++#define XIntersectRegion XINTERSECTREGION
++#define XKeycodeToKeysym XKEYCODETOKEYSYM
++#define XKeysymToKeycode XKEYSYMTOKEYCODE
++#define XKeysymToString XKEYSYMTOSTRING
++#define XKillClient XKILLCLIENT
++#define XListDepths XLISTDEPTHS
++#define XListFonts XLISTFONTS
++#define XListFontsWithInfo XLISTFONTSWITHINFO
++#define XListHosts XLISTHOSTS
++#define XListInputDevices XLISTINPUTDEVICES
++#define XListInstalledColormaps XLISTINSTALLEDCOLORMAPS
++#define XListPixmapFormats XLISTPIXMAPFORMATS
++#define XListProperties XLISTPROPERTIES
++#define XLoadFont XLOADFONT
++#define XLoadQueryFont XLOADQUERYFONT
++#define XLookupColor XLOOKUPCOLOR
++#define XLookupKeysym XLOOKUPKEYSYM
++#define XLookupString XLOOKUPSTRING
++#define XLowerWindow XLOWERWINDOW
++#define XMapRaised XMAPRAISED
++#define XMapSubwindows XMAPSUBWINDOWS
++#define XMapWindow XMAPWINDOW
++#define XMaskEvent XMASKEVENT
++#define XMatchVisualInfo XMATCHVISUALINFO
++#define XMaxRequestSize XMAXREQUESTSIZE
++#define XMissingExtension XMISSINGEXTENSION
++#define XMoveResizeWindow XMOVERESIZEWINDOW
++#define XMoveWindow XMOVEWINDOW
++#define XNextEvent XNEXTEVENT
++#define XNextRequest XNEXTREQUEST
++#define XNoOp XNOOP
++#define XOffsetRegion XOFFSETREGION
++#define XOpenDevice XOPENDEVICE
++#define XOpenDisplay XOPENDISPLAY
++#define XOpenIM XOPENIM
++#define XParseColor XPARSECOLOR
++#define XParseGeometry XPARSEGEOMETRY
++#define XPeekEvent XPEEKEVENT
++#define XPeekIfEvent XPEEKIFEVENT
++#define XPending XPENDING
++#define XPointInRegion XPOINTINREGION
++#define XPolygonRegion XPOLYGONREGION
++#define XPutBackEvent XPUTBACKEVENT
++#define XPutImage XPUTIMAGE
++#define XQLength XQLENGTH
++#define XQueryBestCursor XQUERYBESTCURSOR
++#define XQueryBestStipple XQUERYBESTSTIPPLE
++#define XQueryColor XQUERYCOLOR
++#define XQueryColors XQUERYCOLORS
++#define XQueryDeviceState XQUERYDEVICESTATE
++#define XQueryExtension XQUERYEXTENSION
++#define XQueryFont XQUERYFONT
++#define XQueryKeymap XQUERYKEYMAP
++#define XQueryPointer XQUERYPOINTER
++#define XQueryTree XQUERYTREE
++#define XRaiseWindow XRAISEWINDOW
++#define XReadBitmapFile XREADBITMAPFILE
++#define XRecolorCursor XRECOLORCURSOR
++#define XReconfigureWMWindow XRECONFIGUREWMWINDOW
++#define XRectInRegion XRECTINREGION
++#define XRefreshKeyboardMapping XREFRESHKEYBOARDMAPPING
++#define XRemoveHosts XREMOVEHOSTS
++#define XReparentWindow XREPARENTWINDOW
++#define XResetScreenSaver XRESETSCREENSAVER
++#define XResizeWindow XRESIZEWINDOW
++#define XResourceManagerString XRESOURCEMANAGERSTRING
++#define XRestackWindows XRESTACKWINDOWS
++#define XRotateBuffers XROTATEBUFFERS
++#define XRootWindow XROOTWINDOW
++#define XRootWindowOfScreen XROOTWINDOWOFSCREEN
++#define XSaveContext XSAVECONTEXT
++#define XScreenNumberOfScreen XSCREENNUMBEROFSCREEN
++#define XScreenOfDisplay XSCREENOFDISPLAY
++#define XSelectAsyncEvent XSELECTASYNCEVENT
++#define XSelectAsyncInput XSELECTASYNCINPUT
++#define XSelectExtensionEvent XSELECTEXTENSIONEVENT
++#define XSelectInput XSELECTINPUT
++#define XSendEvent XSENDEVENT
++#define XServerVendor XSERVERVENDOR
++#define XSetArcMode XSETARCMODE
++#define XSetBackground XSETBACKGROUND
++#define XSetClassHint XSETCLASSHINT
++#define XSetClipMask XSETCLIPMASK
++#define XSetClipOrigin XSETCLIPORIGIN
++#define XSetClipRectangles XSETCLIPRECTANGLES
++#define XSetCloseDownMode XSETCLOSEDOWNMODE
++#define XSetCommand XSETCOMMAND
++#define XSetDashes XSETDASHES
++#define XSetErrorHandler XSETERRORHANDLER
++#define XSetExtensionErrorHandler XSETEXTENSIONERRORHANDLER
++#define XSetFillRule XSETFILLRULE
++#define XSetFillStyle XSETFILLSTYLE
++#define XSetFont XSETFONT
++#define XSetForeground XSETFOREGROUND
++#define XSetFunction XSETFUNCTION
++#define XSetGraphicsExposures XSETGRAPHICSEXPOSURES
++#define XSetICFocus XSETICFOCUS
++#define XSetICValues XSETICVALUES
++#define XSetIOErrorHandler XSETIOERRORHANDLER
++#define XSetIconName XSETICONNAME
++#define XSetInputFocus XSETINPUTFOCUS
++#define XSetLineAttributes XSETLINEATTRIBUTES
++#define XSetLocaleModifiers XSETLOCALEMODIFIERS
++#define XSetNormalHints XSETNORMALHINTS
++#define XSetPlaneMask XSETPLANEMASK
++#define XSetRegion XSETREGION
++#define XSetRGBColormaps XSETRGBCOLORMAPS
++#define XSetScreenSaver XSETSCREENSAVER
++#define XSetSelectionOwner XSETSELECTIONOWNER
++#define XSetStandardProperties XSETSTANDARDPROPERTIES
++#define XSetState XSETSTATE
++#define XSetStipple XSETSTIPPLE
++#define XSetSubwindowMode XSETSUBWINDOWMODE
++#define XSetTSOrigin XSETTSORIGIN
++#define XSetTextProperty XSETTEXTPROPERTY
++#define XSetTile XSETTILE
++#define XSetTransientForHint XSETTRANSIENTFORHINT
++#define XSetWMClientMachine XSETWMCLIENTMACHINE
++#define XSetWMColormapWindows XSETWMCOLORMAPWINDOWS
++#define XSetWMHints XSETWMHINTS
++#define XSetWMIconName XSETWMICONNAME
++#define XSetWMName XSETWMNAME
++#define XSetWMNormalHints XSETWMNORMALHINTS
++#define XSetWMProperties XSETWMPROPERTIES
++#define XSetWMProtocols XSETWMPROTOCOLS
++#define XSetWMSizeHints XSETWMSIZEHINTS
++#define XSetWindowBackground XSETWINDOWBACKGROUND
++#define XSetWindowBackgroundPixmap XSETWINDOWBACKGROUNDPIXMAP
++#define XSetWindowBorder XSETWINDOWBORDER
++#define XSetWindowBorderPixmap XSETWINDOWBORDERPIXMAP
++#define XSetWindowBorderWidth XSETWINDOWBORDERWIDTH
++#define XSetWindowColormap XSETWINDOWCOLORMAP
++#define XShapeCombineMask XSHAPECOMBINEMASK
++#define XShapeCombineRectangles XSHAPECOMBINERECTANGLES
++#define XShapeGetRectangles XSHAPEGETRECTANGLES
++#define XShapeQueryExtension XSHAPEQUERYEXTENSION
++#define XShmAttach XSHMATTACH
++#define XShmCreateImage XSHMCREATEIMAGE
++#define XShmCreatePixmap XSHMCREATEPIXMAP
++#define XShmDetach XSHMDETACH
++#define XShmGetEventBase XSHMGETEVENTBASE
++#define XShmPutImage XSHMPUTIMAGE
++#define XShmQueryExtension XSHMQUERYEXTENSION
++#define XShmQueryVersion XSHMQUERYVERSION
++#define XShrinkRegion XSHRINKREGION
++#define XStoreBuffer XSTOREBUFFER
++#define XStoreBytes XSTOREBYTES
++#define XStoreColor XSTORECOLOR
++#define XStoreColors XSTORECOLORS
++#define XStoreName XSTORENAME
++#define XStringListToTextProperty XSTRINGLISTTOTEXTPROPERTY
++#define XStringToKeysym XSTRINGTOKEYSYM
++#define XSubtractRegion XSUBTRACTREGION
++#define XSupportsLocale XSUPPORTSLOCALE
++#define XSync XSYNC
++#define XSynchronize XSYNCHRONIZE
++#define XTextExtents XTEXTEXTENTS
++#define XTextExtents16 XTEXTEXTENTS16
++#define XTextPropertyToStringList XTEXTPROPERTYTOSTRINGLIST
++#define XTextWidth XTEXTWIDTH
++#define XTextWidth16 XTEXTWIDTH16
++#define XTranslateCoordinates XTRANSLATECOORDINATES
++#define XUndefineCursor XUNDEFINECURSOR
++#define XUngrabButton XUNGRABBUTTON
++#define XUngrabKeyboard XUNGRABKEYBOARD
++#define XUngrabPointer XUNGRABPOINTER
++#define XUngrabServer XUNGRABSERVER
++#define XUninstallColormap XUNINSTALLCOLORMAP
++#define XUnionRectWithRegion XUNIONRECTWITHREGION
++#define XUnionRegion XUNIONREGION
++#define XUniqueContext XUNIQUECONTEXT
++#define XUnloadFont XUNLOADFONT
++#define XUnmapWindow XUNMAPWINDOW
++#define XUnsetICFocus XUNSETICFOCUS
++#define XVaCreateNestedList XVACREATENESTEDLIST
++#define XVisualIDFromVisual XVISUALIDFROMVISUAL
++#define XWMGeometry XWMGEOMETRY
++#define XWarpPointer XWARPPOINTER
++#define XWhitePixel XWHITEPIXEL
++#define XWhitePixelOfScreen XWHITEPIXELOFSCREEN
++#define XWidthMMOfScreen XWIDTHMMOFSCREEN
++#define XWidthOfScreen XWIDTHOFSCREEN
++#define XWindowEvent XWINDOWEVENT
++#define XWithdrawWindow XWITHDRAWWINDOW
++#define XXorRegion XXORREGION
++#define XcmsQueryColor XCMSQUERYCOLOR
++#define XdbeAllocateBackBufferName XDBEALLOCATEBACKBUFFERNAME
++#define XdbeFreeVisualInfo XDBEFREEVISUALINFO
++#define XdbeGetVisualInfo XDBEGETVISUALINFO
++#define XdbeQueryExtension XDBEQUERYEXTENSION
++#define XdbeSwapBuffers XDBESWAPBUFFERS
++#define XextAddDisplay XEXTADDDISPLAY
++#define XextFindDisplay XEXTFINDDISPLAY
++#define XextRemoveDisplay XEXTREMOVEDISPLAY
++#define XkbSetDetectableAutoRepeat XKBSETDETECTABLEAUTOREPEAT
++#define XmActivateProtocol XMACTIVATEPROTOCOL
++#define XmAddProtocolCallback XMADDPROTOCOLCALLBACK
++#define XmAddProtocols XMADDPROTOCOLS
++#define XmChangeColor XMCHANGECOLOR
++#define XmClipboardCopy XMCLIPBOARDCOPY
++#define XmClipboardCopyByName XMCLIPBOARDCOPYBYNAME
++#define XmClipboardEndCopy XMCLIPBOARDENDCOPY
++#define XmClipboardEndRetrieve XMCLIPBOARDENDRETRIEVE
++#define XmClipboardInquireCount XMCLIPBOARDINQUIRECOUNT
++#define XmClipboardInquireFormat XMCLIPBOARDINQUIREFORMAT
++#define XmClipboardInquireLength XMCLIPBOARDINQUIRELENGTH
++#define XmClipboardLock XMCLIPBOARDLOCK
++#define XmClipboardRetrieve XMCLIPBOARDRETRIEVE
++#define XmClipboardStartCopy XMCLIPBOARDSTARTCOPY
++#define XmClipboardStartRetrieve XMCLIPBOARDSTARTRETRIEVE
++#define XmClipboardUnlock XMCLIPBOARDUNLOCK
++#define XmCommandError XMCOMMANDERROR
++#define XmCommandGetChild XMCOMMANDGETCHILD
++#define XmCommandSetValue XMCOMMANDSETVALUE
++#define XmCreateArrowButton XMCREATEARROWBUTTON
++#define XmCreateArrowButtonGadget XMCREATEARROWBUTTONGADGET
++#define XmCreateBulletinBoardDialog XMCREATEBULLETINBOARDDIALOG
++#define XmCreateCascadeButton XMCREATECASCADEBUTTON
++#define XmCreateCascadeButtonGadget XMCREATECASCADEBUTTONGADGET
++#define XmCreateDialogShell XMCREATEDIALOGSHELL
++#define XmCreateDragIcon XMCREATEDRAGICON
++#define XmCreateDrawingArea XMCREATEDRAWINGAREA
++#define XmCreateDrawnButton XMCREATEDRAWNBUTTON
++#define XmCreateErrorDialog XMCREATEERRORDIALOG
++#define XmCreateFileSelectionBox XMCREATEFILESELECTIONBOX
++#define XmCreateFileSelectionDialog XMCREATEFILESELECTIONDIALOG
++#define XmCreateForm XMCREATEFORM
++#define XmCreateFormDialog XMCREATEFORMDIALOG
++#define XmCreateFrame XMCREATEFRAME
++#define XmCreateInformationDialog XMCREATEINFORMATIONDIALOG
++#define XmCreateLabel XMCREATELABEL
++#define XmCreateLabelGadget XMCREATELABELGADGET
++#define XmCreateList XMCREATELIST
++#define XmCreateMainWindow XMCREATEMAINWINDOW
++#define XmCreateMenuBar XMCREATEMENUBAR
++#define XmCreateMessageBox XMCREATEMESSAGEBOX
++#define XmCreateMessageDialog XMCREATEMESSAGEDIALOG
++#define XmCreateOptionMenu XMCREATEOPTIONMENU
++#define XmCreatePanedWindow XMCREATEPANEDWINDOW
++#define XmCreatePopupMenu XMCREATEPOPUPMENU
++#define XmCreatePromptDialog XMCREATEPROMPTDIALOG
++#define XmCreatePulldownMenu XMCREATEPULLDOWNMENU
++#define XmCreatePushButton XMCREATEPUSHBUTTON
++#define XmCreatePushButtonGadget XMCREATEPUSHBUTTONGADGET
++#define XmCreateQuestionDialog XMCREATEQUESTIONDIALOG
++#define XmCreateRadioBox XMCREATERADIOBOX
++#define XmCreateRowColumn XMCREATEROWCOLUMN
++#define XmCreateScale XMCREATESCALE
++#define XmCreateScrollBar XMCREATESCROLLBAR
++#define XmCreateScrolledList XMCREATESCROLLEDLIST
++#define XmCreateScrolledText XMCREATESCROLLEDTEXT
++#define XmCreateScrolledWindow XMCREATESCROLLEDWINDOW
++#define XmCreateSelectionDialog XMCREATESELECTIONDIALOG
++#define XmCreateSeparator XMCREATESEPARATOR
++#define XmCreateSeparatorGadget XMCREATESEPARATORGADGET
++#define XmCreateSimpleMenuBar XMCREATESIMPLEMENUBAR
++#define XmCreateTemplateDialog XMCREATETEMPLATEDIALOG
++#define XmCreateText XMCREATETEXT
++#define XmCreateTextField XMCREATETEXTFIELD
++#define XmCreateToggleButton XMCREATETOGGLEBUTTON
++#define XmCreateToggleButtonGadget XMCREATETOGGLEBUTTONGADGET
++#define XmCreateWarningDialog XMCREATEWARNINGDIALOG
++#define XmCvtCTToXmString XMCVTCTTOXMSTRING
++#define XmDestroyPixmap XMDESTROYPIXMAP
++#define XmDragStart XMDRAGSTART
++#define XmDropSiteRegister XMDROPSITEREGISTER
++#define XmDropSiteUnregister XMDROPSITEUNREGISTER
++#define XmDropSiteUpdate XMDROPSITEUPDATE
++#define XmDropTransferStart XMDROPTRANSFERSTART
++#define XmFileSelectionBoxGetChild XMFILESELECTIONBOXGETCHILD
++#define XmFileSelectionDoSearch XMFILESELECTIONDOSEARCH
++#define XmFontListAppendEntry XMFONTLISTAPPENDENTRY
++#define XmFontListCopy XMFONTLISTCOPY
++#define XmFontListCreate XMFONTLISTCREATE
++#define XmFontListEntryCreate XMFONTLISTENTRYCREATE
++#define XmFontListEntryFree XMFONTLISTENTRYFREE
++#define XmFontListEntryGetFont XMFONTLISTENTRYGETFONT
++#define XmFontListEntryGetTag XMFONTLISTENTRYGETTAG
++#define XmFontListEntryLoad XMFONTLISTENTRYLOAD
++#define XmFontListFree XMFONTLISTFREE
++#define XmFontListFreeFontContext XMFONTLISTFREEFONTCONTEXT
++#define XmFontListGetNextFont XMFONTLISTGETNEXTFONT
++#define XmFontListInitFontContext XMFONTLISTINITFONTCONTEXT
++#define XmFontListNextEntry XMFONTLISTNEXTENTRY
++#define XmGetColors XMGETCOLORS
++#define XmGetColorCalculation XMGETCOLORCALCULATION
++#define XmGetFocusWidget XMGETFOCUSWIDGET
++#define XmGetMenuCursor XMGETMENUCURSOR
++#define XmGetPixmap XMGETPIXMAP
++#define XmGetPixmapByDepth XMGETPIXMAPBYDEPTH
++#define XmGetTearOffControl XMGETTEAROFFCONTROL
++#define XmGetXmDisplay XMGETXMDISPLAY
++#define XmImMbLookupString XMIMMBLOOKUPSTRING
++#define XmImRegister XMIMREGISTER
++#define XmImSetFocusValues XMIMSETFOCUSVALUES
++#define XmImSetValues XMIMSETVALUES
++#define XmImUnregister XMIMUNREGISTER
++#define XmImUnsetFocus XMIMUNSETFOCUS
++#define XmInstallImage XMINSTALLIMAGE
++#define XmInternAtom XMINTERNATOM
++#define XmIsMotifWMRunning XMISMOTIFWMRUNNING
++#define XmListAddItem XMLISTADDITEM
++#define XmListAddItemUnselected XMLISTADDITEMUNSELECTED
++#define XmListAddItems XMLISTADDITEMS
++#define XmListAddItemsUnselected XMLISTADDITEMSUNSELECTED
++#define XmListDeleteAllItems XMLISTDELETEALLITEMS
++#define XmListDeleteItem XMLISTDELETEITEM
++#define XmListDeleteItemsPos XMLISTDELETEITEMSPOS
++#define XmListDeletePos XMLISTDELETEPOS
++#define XmListDeselectAllItems XMLISTDESELECTALLITEMS
++#define XmListDeselectPos XMLISTDESELECTPOS
++#define XmListGetKbdItemPos XMLISTGETKBDITEMPOS
++#define XmListGetMatchPos XMLISTGETMATCHPOS
++#define XmListGetSelectedPos XMLISTGETSELECTEDPOS
++#define XmListItemExists XMLISTITEMEXISTS
++#define XmListItemPos XMLISTITEMPOS
++#define XmListPosSelected XMLISTPOSSELECTED
++#define XmListReplaceItems XMLISTREPLACEITEMS
++#define XmListReplaceItemsPos XMLISTREPLACEITEMSPOS
++#define XmListSelectItem XMLISTSELECTITEM
++#define XmListSelectPos XMLISTSELECTPOS
++#define XmListSetBottomPos XMLISTSETBOTTOMPOS
++#define XmListSetItem XMLISTSETITEM
++#define XmListSetKbdItemPos XMLISTSETKBDITEMPOS
++#define XmListSetPos XMLISTSETPOS
++#define XmMainWindowSetAreas XMMAINWINDOWSETAREAS
++#define XmMenuPosition XMMENUPOSITION
++#define XmMessageBoxGetChild XMMESSAGEBOXGETCHILD
++#define XmOptionButtonGadget XMOPTIONBUTTONGADGET
++#define XmOptionLabelGadget XMOPTIONLABELGADGET
++#define XmProcessTraversal XMPROCESSTRAVERSAL
++#define XmQmotif XMQMOTIF
++#define XmRemoveProtocolCallback XMREMOVEPROTOCOLCALLBACK
++#define XmRemoveProtocols XMREMOVEPROTOCOLS
++#define XmRemoveTabGroup XMREMOVETABGROUP
++#define XmRepTypeGetId XMREPTYPEGETID
++#define XmRepTypeGetRecord XMREPTYPEGETRECORD
++#define XmRepTypeInstallTearOffModelCon XMREPTYPEINSTALLTEAROFFMODELCON
++#define XmRepTypeRegister XMREPTYPEREGISTER
++#define XmRepTypeValidValue XMREPTYPEVALIDVALUE
++#define XmScrollBarGetValues XMSCROLLBARGETVALUES
++#define XmScrollBarSetValues XMSCROLLBARSETVALUES
++#define XmScrolledWindowSetAreas XMSCROLLEDWINDOWSETAREAS
++#define XmSelectionBoxGetChild XMSELECTIONBOXGETCHILD
++#define XmSetColorCalculation XMSETCOLORCALCULATION
++#define XmStringByteCompare XMSTRINGBYTECOMPARE
++#define XmStringCompare XMSTRINGCOMPARE
++#define XmStringConcat XMSTRINGCONCAT
++#define XmStringCopy XMSTRINGCOPY
++#define XmStringCreate XMSTRINGCREATE
++#define XmStringCreateLocalized XMSTRINGCREATELOCALIZED
++#define XmStringCreateLtoR XMSTRINGCREATELTOR
++#define XmStringCreateSimple XMSTRINGCREATESIMPLE
++#define XmStringDraw XMSTRINGDRAW
++#define XmStringDrawUnderline XMSTRINGDRAWUNDERLINE
++#define XmStringExtent XMSTRINGEXTENT
++#define XmStringFree XMSTRINGFREE
++#define XmStringFreeContext XMSTRINGFREECONTEXT
++#define XmStringGetLtoR XMSTRINGGETLTOR
++#define XmStringGetNextComponent XMSTRINGGETNEXTCOMPONENT
++#define XmStringGetNextSegment XMSTRINGGETNEXTSEGMENT
++#define XmStringInitContext XMSTRINGINITCONTEXT
++#define XmStringLength XMSTRINGLENGTH
++#define XmStringLtoRCreate XMSTRINGLTORCREATE
++#define XmStringNConcat XMSTRINGNCONCAT
++#define XmStringSegmentCreate XMSTRINGSEGMENTCREATE
++#define XmStringSeparatorCreate XMSTRINGSEPARATORCREATE
++#define XmStringWidth XMSTRINGWIDTH
++#define XmTextClearSelection XMTEXTCLEARSELECTION
++#define XmTextCopy XMTEXTCOPY
++#define XmTextCut XMTEXTCUT
++#define XmTextFieldClearSelection XMTEXTFIELDCLEARSELECTION
++#define XmTextFieldCopy XMTEXTFIELDCOPY
++#define XmTextFieldCut XMTEXTFIELDCUT
++#define XmTextFieldGetEditable XMTEXTFIELDGETEDITABLE
++#define XmTextFieldGetInsertionPosition XMTEXTFIELDGETINSERTIONPOSITION
++#define XmTextFieldGetLastPosition XMTEXTFIELDGETLASTPOSITION
++#define XmTextFieldGetMaxLength XMTEXTFIELDGETMAXLENGTH
++#define XmTextFieldGetSelection XMTEXTFIELDGETSELECTION
++#define XmTextFieldGetSelectionPosition XMTEXTFIELDGETSELECTIONPOSITION
++#define XmTextFieldGetString XMTEXTFIELDGETSTRING
++#define XmTextFieldInsert XMTEXTFIELDINSERT
++#define XmTextFieldPaste XMTEXTFIELDPASTE
++#define XmTextFieldRemove XMTEXTFIELDREMOVE
++#define XmTextFieldReplace XMTEXTFIELDREPLACE
++#define XmTextFieldSetAddMode XMTEXTFIELDSETADDMODE
++#define XmTextFieldSetHighlight XMTEXTFIELDSETHIGHLIGHT
++#define XmTextFieldSetInsertionPosition XMTEXTFIELDSETINSERTIONPOSITION
++#define XmTextFieldSetMaxLength XMTEXTFIELDSETMAXLENGTH
++#define XmTextFieldSetSelection XMTEXTFIELDSETSELECTION
++#define XmTextFieldSetString XMTEXTFIELDSETSTRING
++#define XmTextFieldShowPosition XMTEXTFIELDSHOWPOSITION
++#define XmTextGetCursorPosition XMTEXTGETCURSORPOSITION
++#define XmTextGetEditable XMTEXTGETEDITABLE
++#define XmTextGetInsertionPosition XMTEXTGETINSERTIONPOSITION
++#define XmTextGetLastPosition XMTEXTGETLASTPOSITION
++#define XmTextGetMaxLength XMTEXTGETMAXLENGTH
++#define XmTextGetSelection XMTEXTGETSELECTION
++#define XmTextGetSelectionPosition XMTEXTGETSELECTIONPOSITION
++#define XmTextGetString XMTEXTGETSTRING
++#define XmTextInsert XMTEXTINSERT
++#define XmTextPaste XMTEXTPASTE
++#define XmTextPosToXY XMTEXTPOSTOXY
++#define XmTextRemove XMTEXTREMOVE
++#define XmTextReplace XMTEXTREPLACE
++#define XmTextSetCursorPosition XMTEXTSETCURSORPOSITION
++#define XmTextSetEditable XMTEXTSETEDITABLE
++#define XmTextSetHighlight XMTEXTSETHIGHLIGHT
++#define XmTextSetInsertionPosition XMTEXTSETINSERTIONPOSITION
++#define XmTextSetSelection XMTEXTSETSELECTION
++#define XmTextSetString XMTEXTSETSTRING
++#define XmTextSetTopCharacter XMTEXTSETTOPCHARACTER
++#define XmTextShowPosition XMTEXTSHOWPOSITION
++#define XmToggleButtonGadgetGetState XMTOGGLEBUTTONGADGETGETSTATE
++#define XmToggleButtonGadgetSetState XMTOGGLEBUTTONGADGETSETSTATE
++#define XmToggleButtonGetState XMTOGGLEBUTTONGETSTATE
++#define XmToggleButtonSetState XMTOGGLEBUTTONSETSTATE
++#define XmUninstallImage XMUNINSTALLIMAGE
++#define XmUpdateDisplay XMUPDATEDISPLAY
++#define XmVaCreateSimpleRadioBox XMVACREATESIMPLERADIOBOX
++#define XmbDrawString XMBDRAWSTRING
++#define XmbLookupString XMBLOOKUPSTRING
++#define XmbResetIC XMBRESETIC
++#define XmbSetWMProperties XMBSETWMPROPERTIES
++#define XmbTextEscapement XMBTEXTESCAPEMENT
++#define XmbTextExtents XMBTEXTEXTENTS
++#define XmbTextListToTextProperty XMBTEXTLISTTOTEXTPROPERTY
++#define XmbTextPropertyToTextList XMBTEXTPROPERTYTOTEXTLIST
++#define XmbufCreateBuffers XMBUFCREATEBUFFERS
++#define XmbufDestroyBuffers XMBUFDESTROYBUFFERS
++#define XmbufDisplayBuffers XMBUFDISPLAYBUFFERS
++#define XmbufQueryExtension XMBUFQUERYEXTENSION
++#define Xmemory_free XMEMORY_FREE
++#define Xmemory_malloc XMEMORY_MALLOC
++#define XmuClientWindow XMUCLIENTWINDOW
++#define XmuConvertStandardSelection XMUCONVERTSTANDARDSELECTION
++#define XmuCvtStringToBitmap XMUCVTSTRINGTOBITMAP
++#define XmuInternAtom XMUINTERNATOM
++#define XmuInternStrings XMUINTERNSTRINGS
++#define XmuLookupStandardColormap XMULOOKUPSTANDARDCOLORMAP
++#define XmuPrintDefaultErrorMessage XMUPRINTDEFAULTERRORMESSAGE
++#define XrmCombineDatabase XRMCOMBINEDATABASE
++#define XrmCombineFileDatabase XRMCOMBINEFILEDATABASE
++#define XrmDestroyDatabase XRMDESTROYDATABASE
++#define XrmGetDatabase XRMGETDATABASE
++#define XrmGetFileDatabase XRMGETFILEDATABASE
++#define XrmGetResource XRMGETRESOURCE
++#define XrmGetStringDatabase XRMGETSTRINGDATABASE
++#define XrmInitialize XRMINITIALIZE
++#define XrmMergeDatabases XRMMERGEDATABASES
++#define XrmParseCommand XRMPARSECOMMAND
++#define XrmPermStringToQuark XRMPERMSTRINGTOQUARK
++#define XrmPutFileDatabase XRMPUTFILEDATABASE
++#define XrmPutLineResource XRMPUTLINERESOURCE
++#define XrmPutStringResource XRMPUTSTRINGRESOURCE
++#define XrmQGetResource XRMQGETRESOURCE
++#define XrmQPutStringResource XRMQPUTSTRINGRESOURCE
++#define XrmQuarkToString XRMQUARKTOSTRING
++#define XrmSetDatabase XRMSETDATABASE
++#define XrmStringToBindingQuarkList XRMSTRINGTOBINDINGQUARKLIST
++#define XrmStringToQuark XRMSTRINGTOQUARK
++#define XtAddCallback XTADDCALLBACK
++#define XtAddCallbacks XTADDCALLBACKS
++#define XtAddConverter XTADDCONVERTER
++#define XtAddEventHandler XTADDEVENTHANDLER
++#define XtAddExposureToRegion XTADDEXPOSURETOREGION
++#define XtAddGrab XTADDGRAB
++#define XtAddRawEventHandler XTADDRAWEVENTHANDLER
++#define XtAllocateGC XTALLOCATEGC
++#define XtAppAddActions XTAPPADDACTIONS
++#define XtAppAddInput XTAPPADDINPUT
++#define XtAppAddTimeOut XTAPPADDTIMEOUT
++#define XtAppAddWorkProc XTAPPADDWORKPROC
++#define XtAppCreateShell XTAPPCREATESHELL
++#define XtAppError XTAPPERROR
++#define XtAppErrorMsg XTAPPERRORMSG
++#define XtAppGetErrorDatabase XTAPPGETERRORDATABASE
++#define XtAppGetErrorDatabaseText XTAPPGETERRORDATABASETEXT
++#define XtAppSetErrorMsgHandler XTAPPSETERRORMSGHANDLER
++#define XtAppInitialize XTAPPINITIALIZE
++#define XtAppMainLoop XTAPPMAINLOOP
++#define XtAppNextEvent XTAPPNEXTEVENT
++#define XtAppPeekEvent XTAPPPEEKEVENT
++#define XtAppPending XTAPPPENDING
++#define XtAppProcessEvent XTAPPPROCESSEVENT
++#define XtAppSetErrorHandler XTAPPSETERRORHANDLER
++#define XtAppSetFallbackResources XTAPPSETFALLBACKRESOURCES
++#define XtAppSetTypeConverter XTAPPSETTYPECONVERTER
++#define XtAppSetWarningHandler XTAPPSETWARNINGHANDLER
++#define XtAppWarningMsg XTAPPWARNINGMSG
++#define XtAppSetWarningMsgHandler XTAPPSETWARNINGMSGHANDLER
++#define XtAppWarning XTAPPWARNING
++#define XtAugmentTranslations XTAUGMENTTRANSLATIONS
++#define XtCallActionProc XTCALLACTIONPROC
++#define XtCallCallbackList XTCALLCALLBACKLIST
++#define XtCallCallbacks XTCALLCALLBACKS
++#define XtCallConverter XTCALLCONVERTER
++#define XtCalloc XTCALLOC 
++#ifndef NOXTDISPLAY
++#define XtClass XTCLASS
++#endif
++#define XtCloseDisplay XTCLOSEDISPLAY
++#define XtConfigureWidget XTCONFIGUREWIDGET
++#define XtConvert XTCONVERT
++#define XtConvertAndStore XTCONVERTANDSTORE
++#define XtCreateApplicationContext XTCREATEAPPLICATIONCONTEXT
++#define XtCreateManagedWidget XTCREATEMANAGEDWIDGET
++#define XtCreatePopupShell XTCREATEPOPUPSHELL
++#define XtCreateWidget XTCREATEWIDGET
++#define XtCreateWindow XTCREATEWINDOW
++#define XtCvtStringToFont XTCVTSTRINGTOFONT
++#define XtDatabase XTDATABASE
++#define XtDestroyApplicationContext XTDESTROYAPPLICATIONCONTEXT
++#define XtDestroyWidget XTDESTROYWIDGET
++#define XtDisownSelection XTDISOWNSELECTION
++#define XtDispatchEvent XTDISPATCHEVENT
++#ifndef NOXTDISPLAY
++#define XtDisplay XTDISPLAY
++#endif
++#define XtDisplayInitialize XTDISPLAYINITIALIZE
++#define XtDisplayOfObject XTDISPLAYOFOBJECT
++#define XtDisplayStringConvWarning XTDISPLAYSTRINGCONVWARNING
++#define XtDisplayToApplicationContext XTDISPLAYTOAPPLICATIONCONTEXT
++#define XtError XTERROR
++#define XtErrorMsg XTERRORMSG
++#define XtFree XTFREE
++#define XtGetActionKeysym XTGETACTIONKEYSYM
++#define XtGetActionList XTGETACTIONLIST
++#define XtGetApplicationNameAndClass XTGETAPPLICATIONNAMEANDCLASS
++#define XtGetApplicationResources XTGETAPPLICATIONRESOURCES
++#define XtGetClassExtension XTGETCLASSEXTENSION
++#define XtGetConstraintResourceList XTGETCONSTRAINTRESOURCELIST
++#define XtGetGC XTGETGC
++#define XtGetMultiClickTime XTGETMULTICLICKTIME
++#define XtGetResourceList XTGETRESOURCELIST
++#define XtGetSelectionValue XTGETSELECTIONVALUE
++#define XtGetSelectionValues XTGETSELECTIONVALUES
++#define XtGetSubresources XTGETSUBRESOURCES
++#define XtGetValues XTGETVALUES
++#define XtGrabButton XTGRABBUTTON
++#define XtGrabKeyboard XTGRABKEYBOARD
++#define XtGrabPointer XTGRABPOINTER
++#define XtHasCallbacks XTHASCALLBACKS
++#define XtInitialize XTINITIALIZE
++#define XtInitializeWidgetClass XTINITIALIZEWIDGETCLASS
++#define XtInsertEventHandler XTINSERTEVENTHANDLER
++#define XtInsertRawEventHandler XTINSERTRAWEVENTHANDLER
++#define XtInstallAccelerators XTINSTALLACCELERATORS
++#define XtIsManaged XTISMANAGED
++#define XtIsObject XTISOBJECT
++#ifndef NOXTDISPLAY
++#define XtIsRealized XTISREALIZED
++#endif
++#define XtIsSensitive XTISSENSITIVE
++#define XtIsSubclass XTISSUBCLASS
++#define XtLastTimestampProcessed XTLASTTIMESTAMPPROCESSED
++#define XtMainLoop XTMAINLOOP
++#define XtMakeGeometryRequest XTMAKEGEOMETRYREQUEST
++#define XtMakeResizeRequest XTMAKERESIZEREQUEST
++#define XtMalloc XTMALLOC
++#define XtManageChild XTMANAGECHILD
++#define XtManageChildren XTMANAGECHILDREN
++#define XtMergeArgLists XTMERGEARGLISTS
++#define XtMoveWidget XTMOVEWIDGET
++#define XtName XTNAME
++#define XtNameToWidget XTNAMETOWIDGET
++#define XtOpenApplication XTOPENAPPLICATION
++#define XtOpenDisplay XTOPENDISPLAY
++#define XtOverrideTranslations XTOVERRIDETRANSLATIONS
++#define XtOwnSelection XTOWNSELECTION
++#ifndef NOXTDISPLAY
++#define XtParent XTPARENT
++#endif
++#define XtParseAcceleratorTable XTPARSEACCELERATORTABLE
++#define XtParseTranslationTable XTPARSETRANSLATIONTABLE
++#define XtPopdown XTPOPDOWN
++#define XtPopup XTPOPUP
++#define XtPopupSpringLoaded XTPOPUPSPRINGLOADED
++#define XtQueryGeometry XTQUERYGEOMETRY
++#define XtRealizeWidget XTREALIZEWIDGET
++#define XtRealloc XTREALLOC
++#define XtRegisterDrawable _XTREGISTERWINDOW
++#define XtRegisterGrabAction XTREGISTERGRABACTION
++#define XtReleaseGC XTRELEASEGC
++#define XtRemoveAllCallbacks XTREMOVEALLCALLBACKS
++#define XtRemoveCallback XTREMOVECALLBACK
++#define XtRemoveEventHandler XTREMOVEEVENTHANDLER
++#define XtRemoveGrab XTREMOVEGRAB
++#define XtRemoveInput XTREMOVEINPUT
++#define XtRemoveTimeOut XTREMOVETIMEOUT
++#define XtRemoveWorkProc XTREMOVEWORKPROC
++#define XtResizeWidget XTRESIZEWIDGET
++#define XtResolvePathname XTRESOLVEPATHNAME
++#ifndef NOXTDISPLAY
++#define XtScreen XTSCREEN
++#endif
++#define XtScreenDatabase XTSCREENDATABASE
++#define XtScreenOfObject XTSCREENOFOBJECT
++#define XtSessionReturnToken XTSESSIONRETURNTOKEN
++#define XtSetErrorHandler XTSETERRORHANDLER
++#define XtSetKeyboardFocus XTSETKEYBOARDFOCUS
++#define XtSetLanguageProc XTSETLANGUAGEPROC
++#define XtSetMappedWhenManaged XTSETMAPPEDWHENMANAGED
++#define XtSetSensitive XTSETSENSITIVE
++#define XtSetTypeConverter XTSETTYPECONVERTER
++#define XtSetValues XTSETVALUES
++#define XtShellStrings XTSHELLSTRINGS
++#define XtStringConversionWarning XTSTRINGCONVERSIONWARNING 
++#define XtStrings XTSTRINGS
++#define XtToolkitInitialize XTTOOLKITINITIALIZE
++#define XtTranslateCoords XTTRANSLATECOORDS
++#define XtTranslateKeycode XTTRANSLATEKEYCODE
++#define XtUngrabButton XTUNGRABBUTTON
++#define XtUngrabKeyboard XTUNGRABKEYBOARD
++#define XtUngrabPointer XTUNGRABPOINTER
++#define XtUnmanageChild XTUNMANAGECHILD
++#define XtUnmanageChildren XTUNMANAGECHILDREN
++#define XtUnrealizeWidget XTUNREALIZEWIDGET
++#define XtUnregisterDrawable _XTUNREGISTERWINDOW
++#define XtVaAppCreateShell XTVAAPPCREATESHELL
++#define XtVaCreateManagedWidget XTVACREATEMANAGEDWIDGET
++#define XtVaCreatePopupShell XTVACREATEPOPUPSHELL
++#define XtVaCreateWidget XTVACREATEWIDGET
++#define XtVaGetApplicationResources XTVAGETAPPLICATIONRESOURCES
++#define XtVaGetValues XTVAGETVALUES
++#define XtVaSetValues XTVASETVALUES
++#define XtWarning XTWARNING
++#define XtWarningMsg XTWARNINGMSG
++#define XtWidgetToApplicationContext XTWIDGETTOAPPLICATIONCONTEXT
++#ifndef NOXTDISPLAY
++#define XtWindow XTWINDOW
++#endif
++#define XtWindowOfObject XTWINDOWOFOBJECT
++#define XtWindowToWidget XTWINDOWTOWIDGET
++#define XwcDrawImageString XWCDRAWIMAGESTRING
++#define XwcDrawString XWCDRAWSTRING
++#define XwcFreeStringList XWCFREESTRINGLIST
++#define XwcTextEscapement XWCTEXTESCAPEMENT
++#define XwcTextExtents XWCTEXTEXTENTS
++#define XwcTextListToTextProperty XWCTEXTLISTTOTEXTPROPERTY
++#define XwcLookupString XWCLOOKUPSTRING
++#define XwcTextPropertyToTextList XWCTEXTPROPERTYTOTEXTLIST
++#define _XAllocTemp _XALLOCTEMP
++#define _XDeqAsyncHandler _XDEQASYNCHANDLER
++#define _XEatData _XEATDATA
++#define _XFlush _XFLUSH
++#define _XFreeTemp _XFREETEMP
++#define _XGetAsyncReply _XGETASYNCREPLY 
++#define _XInitImageFuncPtrs _XINITIMAGEFUNCPTRS
++#define _XRead _XREAD
++#define _XReadPad _XREADPAD
++#define _XRegisterFilterByType _XREGISTERFILTERBYTYPE 
++#define _XReply _XREPLY
++#define _XSend _XSEND
++#define _XUnregisterFilter _XUNREGISTERFILTER
++#define _XVIDtoVisual _XVIDTOVISUAL
++#define _XmBottomShadowColorDefault _XMBOTTOMSHADOWCOLORDEFAULT
++#define _XmClearBorder _XMCLEARBORDER
++#define _XmConfigureObject _XMCONFIGUREOBJECT
++#define _XmDestroyParentCallback _XMDESTROYPARENTCALLBACK
++#define _XmDrawArrow _XMDRAWARROW
++#define _XmDrawShadows _XMDRAWSHADOWS
++#define _XmFontListGetDefaultFont _XMFONTLISTGETDEFAULTFONT
++#define _XmFromHorizontalPixels _XMFROMHORIZONTALPIXELS
++#define _XmFromVerticalPixels _XMFROMVERTICALPIXELS
++#define _XmGetClassExtensionPtr _XMGETCLASSEXTENSIONPTR
++#define _XmGetDefaultFontList _XMGETDEFAULTFONTLIST
++#define _XmGetTextualDragIcon _XMGETTEXTUALDRAGICON
++#define _XmGetWidgetExtData _XMGETWIDGETEXTDATA
++#define _XmGrabKeyboard _XMGRABKEYBOARD
++#define _XmGrabPointer _XMGRABPOINTER
++#define _XmInheritClass _XMINHERITCLASS
++#define _XmInputForGadget _XMINPUTFORGADGET
++#define _XmInputInGadget _XMINPUTINGADGET
++#define _XmMakeGeometryRequest _XMMAKEGEOMETRYREQUEST
++#define _XmMenuPopDown _XMMENUPOPDOWN
++#define _XmMoveObject _XMMOVEOBJECT
++#define _XmNavigChangeManaged _XMNAVIGCHANGEMANAGED
++#define _XmOSBuildFileList _XMOSBUILDFILELIST
++#define _XmOSFileCompare _XMOSFILECOMPARE
++#define _XmOSFindPatternPart _XMOSFINDPATTERNPART
++#define _XmOSQualifyFileSpec _XMOSQUALIFYFILESPEC
++#define _XmPostPopupMenu _XMPOSTPOPUPMENU
++#define _XmPrimitiveEnter _XMPRIMITIVEENTER
++#define _XmPrimitiveLeave _XMPRIMITIVELEAVE
++#define _XmRedisplayGadgets _XMREDISPLAYGADGETS
++#define _XmShellIsExclusive _XMSHELLISEXCLUSIVE
++#define _XmStringDraw _XMSTRINGDRAW
++#define _XmStringGetTextConcat _XMSTRINGGETTEXTCONCAT
++#define _XmStrings _XMSTRINGS
++#define _XmToHorizontalPixels _XMTOHORIZONTALPIXELS
++#define _XmToVerticalPixels _XMTOVERTICALPIXELS
++#define _XmTopShadowColorDefault _XMTOPSHADOWCOLORDEFAULT
++#define _Xm_fastPtr _XM_FASTPTR
++#define _XtCheckSubclassFlag _XTCHECKSUBCLASSFLAG
++#define _XtCopyFromArg _XTCOPYFROMARG
++#define _XtCountVaList _XTCOUNTVALIST
++#define _XtInherit _XTINHERIT
++#define _XtInheritTranslations _XTINHERITTRANSLATIONS
++#define _XtIsSubclassOf _XTISSUBCLASSOF
++#define _XtVaToArgList _XTVATOARGLIST
++#define applicationShellWidgetClass APPLICATIONSHELLWIDGETCLASS
++#define cli$dcl_parse CLI$DCL_PARSE
++#define cli$get_value CLI$GET_VALUE
++#define cli$present  CLI$PRESENT
++#define compositeClassRec COMPOSITECLASSREC
++#define compositeWidgetClass COMPOSITEWIDGETCLASS
++#define constraintClassRec CONSTRAINTCLASSREC
++#define constraintWidgetClass CONSTRAINTWIDGETCLASS
++#define coreWidgetClass COREWIDGETCLASS
++#define exe$getspi EXE$GETSPI
++#define lbr$close LBR$CLOSE
++#define lbr$get_header LBR$GET_HEADER
++#define lbr$get_index LBR$GET_INDEX
++#define lbr$get_record LBR$GET_RECORD
++#define lbr$ini_control LBR$INI_CONTROL
++#define lbr$lookup_key LBR$LOOKUP_KEY
++#define lbr$open LBR$OPEN
++#define lbr$output_help LBR$OUTPUT_HELP
++#define lib$add_times LIB$ADD_TIMES
++#define lib$addx LIB$ADDX
++#define lib$create_dir LIB$CREATE_DIR
++#define lib$create_vm_zone LIB$CREATE_VM_ZONE
++#define lib$cvt_from_internal_time LIB$CVT_FROM_INTERNAL_TIME
++#define lib$cvt_htb LIB$CVT_HTB
++#define lib$cvt_vectim LIB$CVT_VECTIM
++#define lib$day LIB$DAY
++#define lib$day_of_week LIB$DAY_OF_WEEK
++#define lib$delete_symbol LIB$DELETE_SYMBOL
++#define lib$delete_vm_zone LIB$DELETE_VM_ZONE
++#define lib$disable_ctrl LIB$DISABLE_CTRL
++#define lib$ediv LIB$EDIV
++#define lib$emul LIB$EMUL
++#define lib$enable_ctrl LIB$ENABLE_CTRL
++#define lib$find_vm_zone LIB$FIND_VM_ZONE
++#define lib$format_date_time LIB$FORMAT_DATE_TIME
++#define lib$free_timer LIB$FREE_TIMER
++#define lib$free_vm LIB$FREE_VM
++#define lib$get_ef LIB$GET_EF
++#define lib$get_foreign LIB$GET_FOREIGN
++#define lib$get_input LIB$GET_INPUT
++#define lib$get_users_language LIB$GET_USERS_LANGUAGE
++#define lib$get_vm LIB$GET_VM
++#define lib$get_symbol LIB$GET_SYMBOL
++#define lib$getdvi LIB$GETDVI
++#define lib$init_date_time_context LIB$INIT_DATE_TIME_CONTEXT
++#define lib$init_timer LIB$INIT_TIMER
++#define lib$find_file LIB$FIND_FILE
++#define lib$find_file_end LIB$FIND_FILE_END
++#define lib$find_image_symbol LIB$FIND_IMAGE_SYMBOL
++#define lib$mult_delta_time LIB$MULT_DELTA_TIME
++#define lib$put_output LIB$PUT_OUTPUT
++#define lib$rename_file LIB$RENAME_FILE
++#define lib$reset_vm_zone LIB$RESET_VM_ZONE
++#define lib$set_symbol LIB$SET_SYMBOL
++#define lib$sfree1_dd LIB$SFREE1_DD
++#define lib$show_vm LIB$SHOW_VM
++#define lib$show_vm_zone LIB$SHOW_VM_ZONE
++#define lib$spawn LIB$SPAWN
++#define lib$stat_timer LIB$STAT_TIMER
++#define lib$subx LIB$SUBX
++#define lib$sub_times LIB$SUB_TIMES
++#define lib$wait LIB$WAIT
++#define mail$send_add_address MAIL$SEND_ADD_ADDRESS
++#define mail$send_add_attribute MAIL$SEND_ADD_ATTRIBUTE
++#define mail$send_add_bodypart MAIL$SEND_ADD_BODYPART
++#define mail$send_begin MAIL$SEND_BEGIN
++#define mail$send_end MAIL$SEND_END
++#define mail$send_message MAIL$SEND_MESSAGE
++#define ncs$convert NCS$CONVERT
++#define ncs$get_cf NCS$GET_CF
++#define objectClass OBJECTCLASS
++#define objectClassRec OBJECTCLASSREC
++#define overrideShellClassRec OVERRIDESHELLCLASSREC
++#define overrideShellWidgetClass OVERRIDESHELLWIDGETCLASS
++#define pthread_attr_create PTHREAD_ATTR_CREATE
++#define pthread_attr_delete PTHREAD_ATTR_DELETE
++#define pthread_attr_destroy PTHREAD_ATTR_DESTROY
++#define pthread_attr_getdetach_np PTHREAD_ATTR_GETDETACH_NP
++#define pthread_attr_getguardsize_np PTHREAD_ATTR_GETGUARDSIZE_NP
++#define pthread_attr_getinheritsched PTHREAD_ATTR_GETINHERITSCHED
++#define pthread_attr_getprio PTHREAD_ATTR_GETPRIO
++#define pthread_attr_getsched PTHREAD_ATTR_GETSCHED
++#define pthread_attr_getschedparam PTHREAD_ATTR_GETSCHEDPARAM
++#define pthread_attr_getschedpolicy PTHREAD_ATTR_GETSCHEDPOLICY
++#define pthread_attr_getstacksize PTHREAD_ATTR_GETSTACKSIZE
++#define pthread_attr_init PTHREAD_ATTR_INIT
++#define pthread_attr_setdetach_np PTHREAD_ATTR_SETDETACH_NP
++#define pthread_attr_setdetachstate PTHREAD_ATTR_SETDETACHSTATE
++#define pthread_attr_setguardsize_np PTHREAD_ATTR_SETGUARDSIZE_NP
++#define pthread_attr_setinheritsched PTHREAD_ATTR_SETINHERITSCHED
++#define pthread_attr_setprio PTHREAD_ATTR_SETPRIO
++#define pthread_attr_setsched PTHREAD_ATTR_SETSCHED
++#define pthread_attr_setschedparam PTHREAD_ATTR_SETSCHEDPARAM
++#define pthread_attr_setschedpolicy PTHREAD_ATTR_SETSCHEDPOLICY
++#ifndef pthread_attr_setscope
++# define pthread_attr_setscope PTHREAD_ATTR_SETSCOPE
++#endif
++#define pthread_attr_setstacksize PTHREAD_ATTR_SETSTACKSIZE
++#define pthread_cancel PTHREAD_CANCEL
++#define pthread_cancel_e PTHREAD_CANCEL_E
++#define pthread_cond_broadcast PTHREAD_COND_BROADCAST
++#define pthread_cond_destroy PTHREAD_COND_DESTROY
++#define pthread_cond_init PTHREAD_COND_INIT
++#define pthread_cond_sig_preempt_int_np PTHREAD_COND_SIG_PREEMPT_INT_NP
++#define pthread_cond_signal PTHREAD_COND_SIGNAL
++#define pthread_cond_signal_int_np PTHREAD_COND_SIGNAL_INT_NP
++#define pthread_cond_timedwait PTHREAD_COND_TIMEDWAIT
++#define pthread_cond_wait PTHREAD_COND_WAIT
++#define pthread_condattr_create PTHREAD_CONDATTR_CREATE
++#define pthread_condattr_delete PTHREAD_CONDATTR_DELETE
++#define pthread_condattr_init PTHREAD_CONDATTR_INIT
++#define pthread_create PTHREAD_CREATE
++#define pthread_delay_np PTHREAD_DELAY_NP
++#define pthread_detach PTHREAD_DETACH
++#define pthread_equal PTHREAD_EQUAL
++#define pthread_exc_fetch_fp_np PTHREAD_EXC_FETCH_FP_NP
++#define pthread_exc_handler_np PTHREAD_EXC_HANDLER_NP
++#define pthread_exc_matches_np PTHREAD_EXC_MATCHES_NP
++#define pthread_exc_pop_ctx_np PTHREAD_EXC_POP_CTX_NP
++#define pthread_exc_push_ctx_np PTHREAD_EXC_PUSH_CTX_NP
++#define pthread_exc_raise_np PTHREAD_EXC_RAISE_NP
++#define pthread_exc_savecontext_np PTHREAD_EXC_SAVECONTEXT_NP
++#define pthread_exit PTHREAD_EXIT
++#define pthread_get_expiration_np PTHREAD_GET_EXPIRATION_NP
++#define pthread_getprio PTHREAD_GETPRIO
++#define pthread_getschedparam PTHREAD_GETSCHEDPARAM
++#define pthread_getscheduler PTHREAD_GETSCHEDULER
++#define pthread_getspecific PTHREAD_GETSPECIFIC
++#define pthread_getunique_np PTHREAD_GETUNIQUE_NP
++#define pthread_join PTHREAD_JOIN
++#define pthread_join32 PTHREAD_JOIN32
++#define pthread_key_create PTHREAD_KEY_CREATE
++#define pthread_key_delete PTHREAD_KEY_DELETE
++#define pthread_keycreate PTHREAD_KEYCREATE
++#define pthread_kill PTHREAD_KILL
++#define pthread_lock_global_np PTHREAD_LOCK_GLOBAL_NP
++#define pthread_mutex_destroy PTHREAD_MUTEX_DESTROY
++#define pthread_mutex_init PTHREAD_MUTEX_INIT
++#define pthread_mutex_lock PTHREAD_MUTEX_LOCK
++#define pthread_mutex_trylock PTHREAD_MUTEX_TRYLOCK
++#define pthread_mutex_unlock PTHREAD_MUTEX_UNLOCK
++#define pthread_mutexattr_create PTHREAD_MUTEXATTR_CREATE
++#define pthread_mutexattr_delete PTHREAD_MUTEXATTR_DELETE
++#define pthread_mutexattr_destroy PTHREAD_MUTEXATTR_DESTROY
++#define pthread_mutexattr_getkind_np PTHREAD_MUTEXATTR_GETKIND_NP
++#define pthread_mutexattr_init PTHREAD_MUTEXATTR_INIT
++#define pthread_mutexattr_setkind_np PTHREAD_MUTEXATTR_SETKIND_NP
++#define pthread_mutexattr_settype_np PTHREAD_MUTEXATTR_SETTYPE_NP
++#define pthread_once PTHREAD_ONCE
++#define pthread_resume_np PTHREAD_RESUME_NP
++#define pthread_self PTHREAD_SELF
++#define pthread_setasynccancel PTHREAD_SETASYNCCANCEL
++#define pthread_setcancel PTHREAD_SETCANCEL
++#define pthread_setcancelstate PTHREAD_SETCANCELSTATE
++#define pthread_setcanceltype PTHREAD_SETCANCELTYPE
++#define pthread_setprio PTHREAD_SETPRIO
++#define pthread_setschedparam PTHREAD_SETSCHEDPARAM
++#define pthread_setscheduler PTHREAD_SETSCHEDULER
++#define pthread_setspecific PTHREAD_SETSPECIFIC
++#define pthread_suspend_np PTHREAD_SUSPEND_NP
++#define pthread_testcancel PTHREAD_TESTCANCEL
++#define pthread_unlock_global_np PTHREAD_UNLOCK_GLOBAL_NP
++#define pthread_yield PTHREAD_YIELD
++#define pthread_yield_np PTHREAD_YIELD_NP
++#define rectObjClass RECTOBJCLASS
++#define rectObjClassRec RECTOBJCLASSREC
++#define sessionShellWidgetClass SESSIONSHELLWIDGETCLASS
++#define shellWidgetClass SHELLWIDGETCLASS
++#define shmat SHMAT
++#define shmctl SHMCTL
++#define shmdt SHMDT
++#define shmget SHMGET
++#define smg$create_key_table SMG$CREATE_KEY_TABLE
++#define smg$create_virtual_keyboard SMG$CREATE_VIRTUAL_KEYBOARD
++#define smg$read_composed_line SMG$READ_COMPOSED_LINE
++#define sys$add_ident SYS$ADD_IDENT
++#define sys$asctoid SYS$ASCTOID
++#define sys$assign SYS$ASSIGN
++#define sys$bintim SYS$BINTIM
++#define sys$cancel SYS$CANCEL
++#define sys$cantim SYS$CANTIM
++#define sys$check_access SYS$CHECK_ACCESS
++#define sys$close SYS$CLOSE
++#define sys$connect SYS$CONNECT
++#define sys$create SYS$CREATE
++#define sys$create_user_profile SYS$CREATE_USER_PROFILE
++#define sys$crembx SYS$CREMBX
++#define sys$creprc SYS$CREPRC
++#define sys$crmpsc SYS$CRMPSC
++#define sys$dassgn SYS$DASSGN
++#define sys$dclast SYS$DCLAST
++#define sys$dclexh SYS$DCLEXH
++#define sys$delprc SYS$DELPRC
++#define sys$deq SYS$DEQ
++#define sys$dgblsc SYS$DGBLSC
++#define sys$display SYS$DISPLAY
++#define sys$enq SYS$ENQ
++#define sys$enqw SYS$ENQW
++#define sys$erase SYS$ERASE
++#define sys$fao SYS$FAO
++#define sys$faol SYS$FAOL
++#define sys$find_held SYS$FIND_HELD
++#define sys$finish_rdb SYS$FINISH_RDB
++#define sys$flush SYS$FLUSH
++#define sys$forcex SYS$FORCEX
++#define sys$get SYS$GET
++#define sys$get_security SYS$GET_SECURITY
++#define sys$getdviw SYS$GETDVIW
++#define sys$getjpi SYS$GETJPI
++#define sys$getjpiw SYS$GETJPIW
++#define sys$getlkiw SYS$GETLKIW
++#define sys$getmsg SYS$GETMSG
++#define sys$getsyi SYS$GETSYI
++#define sys$getsyiw SYS$GETSYIW
++#define sys$gettim SYS$GETTIM
++#define sys$getuai SYS$GETUAI
++#define sys$grantid SYS$GRANTID
++#define sys$hash_password SYS$HASH_PASSWORD
++#define sys$hiber SYS$HIBER
++#define sys$mgblsc SYS$MGBLSC
++#define sys$numtim SYS$NUMTIM
++#define sys$open SYS$OPEN
++#define sys$parse SYS$PARSE
++#define sys$parse_acl SYS$PARSE_ACL
++#define sys$parse_acl SYS$PARSE_ACL
++#define sys$persona_assume SYS$PERSONA_ASSUME
++#define sys$persona_create SYS$PERSONA_CREATE
++#define sys$persona_delete SYS$PERSONA_DELETE
++#define sys$process_scan SYS$PROCESS_SCAN
++#define sys$put SYS$PUT
++#define sys$qio SYS$QIO
++#define sys$qiow SYS$QIOW
++#define sys$read SYS$READ
++#define sys$resched SYS$RESCHED
++#define sys$rewind SYS$REWIND
++#define sys$search SYS$SEARCH
++#define sys$set_security SYS$SET_SECURITY
++#define sys$setast SYS$SETAST
++#define sys$setef SYS$SETEF
++#define sys$setimr SYS$SETIMR
++#define sys$setpri SYS$SETPRI
++#define sys$setprn SYS$SETPRN
++#define sys$setprv SYS$SETPRV
++#define sys$setswm SYS$SETSWM
++#define sys$setuai SYS$SETUAI
++#define sys$sndopr SYS$SNDOPR
++#define sys$synch SYS$SYNCH
++#define sys$trnlnm SYS$TRNLNM
++#define sys$update SYS$UPDATE
++#define sys$wake SYS$WAKE
++#define sys$write SYS$WRITE
++#define topLevelShellClassRec TOPLEVELSHELLCLASSREC
++#define topLevelShellWidgetClass TOPLEVELSHELLWIDGETCLASS
++#define transientShellWidgetClass TRANSIENTSHELLWIDGETCLASS
++#define vendorShellClassRec VENDORSHELLCLASSREC
++#define vendorShellWidgetClass VENDORSHELLWIDGETCLASS
++#define widgetClass WIDGETCLASS
++#define widgetClassRec WIDGETCLASSREC
++#define wmShellClassRec WMSHELLCLASSREC
++#define wmShellWidgetClass WMSHELLWIDGETCLASS
++#define x$soft_ast_lib_lock X$SOFT_AST_LIB_LOCK
++#define x$soft_ast_lock_depth X$SOFT_AST_LOCK_DEPTH
++#define x$soft_reenable_asts X$SOFT_REENABLE_ASTS
++#define xmArrowButtonWidgetClass XMARROWBUTTONWIDGETCLASS
++#define xmBulletinBoardWidgetClass XMBULLETINBOARDWIDGETCLASS
++#define xmCascadeButtonClassRec XMCASCADEBUTTONCLASSREC
++#define xmCascadeButtonGadgetClass XMCASCADEBUTTONGADGETCLASS
++#define xmCascadeButtonWidgetClass XMCASCADEBUTTONWIDGETCLASS
++#define xmCommandWidgetClass XMCOMMANDWIDGETCLASS
++#define xmDialogShellWidgetClass XMDIALOGSHELLWIDGETCLASS
++#define xmDrawingAreaWidgetClass XMDRAWINGAREAWIDGETCLASS
++#define xmDrawnButtonWidgetClass XMDRAWNBUTTONWIDGETCLASS
++#define xmFileSelectionBoxWidgetClass XMFILESELECTIONBOXWIDGETCLASS
++#define xmFormWidgetClass XMFORMWIDGETCLASS
++#define xmFrameWidgetClass XMFRAMEWIDGETCLASS
++#define xmGadgetClass XMGADGETCLASS
++#define xmLabelGadgetClass XMLABELGADGETCLASS
++#define xmLabelWidgetClass XMLABELWIDGETCLASS
++#define xmListWidgetClass XMLISTWIDGETCLASS
++#define xmMainWindowWidgetClass XMMAINWINDOWWIDGETCLASS
++#define xmManagerClassRec XMMANAGERCLASSREC
++#define xmManagerWidgetClass XMMANAGERWIDGETCLASS
++#define xmMenuShellWidgetClass XMMENUSHELLWIDGETCLASS
++#define xmMessageBoxWidgetClass XMMESSAGEBOXWIDGETCLASS
++#define xmPrimitiveClassRec XMPRIMITIVECLASSREC
++#define xmPrimitiveWidgetClass XMPRIMITIVEWIDGETCLASS
++#define xmPushButtonClassRec XMPUSHBUTTONCLASSREC
++#define xmPushButtonGadgetClass XMPUSHBUTTONGADGETCLASS
++#define xmPushButtonWidgetClass XMPUSHBUTTONWIDGETCLASS
++#define xmRowColumnWidgetClass XMROWCOLUMNWIDGETCLASS
++#define xmSashWidgetClass XMSASHWIDGETCLASS
++#define xmScaleWidgetClass XMSCALEWIDGETCLASS
++#define xmScrollBarWidgetClass XMSCROLLBARWIDGETCLASS
++#define xmScrolledWindowClassRec XMSCROLLEDWINDOWCLASSREC
++#define xmScrolledWindowWidgetClass XMSCROLLEDWINDOWWIDGETCLASS
++#define xmSeparatorGadgetClass XMSEPARATORGADGETCLASS
++#define xmSeparatorWidgetClass XMSEPARATORWIDGETCLASS
++#define xmTextFieldWidgetClass XMTEXTFIELDWIDGETCLASS
++#define xmTextWidgetClass XMTEXTWIDGETCLASS
++#define xmToggleButtonGadgetClass XMTOGGLEBUTTONGADGETCLASS
++#define xmToggleButtonWidgetClass XMTOGGLEBUTTONWIDGETCLASS
++
++#if (__VMS_VER < 80200000) 
++# define SetReqLen(req,n,badlen) \
++    if ((req->length + n) > (unsigned)65535) { \
++	    n = badlen; \
++	    req->length += n; \
++    } else \
++	req->length += n
++#endif
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++extern void XtFree(char*);
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+--- /dev/null	
++++ Mesa/inc/glx_mangle.h	
+@@ -0,0 +1,81 @@
++/*
++ * Mesa 3-D graphics library
++ * Version:  6.5
++ * 
++ * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
++ * 
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ * 
++ * The above copyright notice and this permission notice shall be included
++ * in all copies or substantial portions of the Software.
++ * 
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++
++#ifndef GLX_MANGLE_H
++#define GLX_MANGLE_H
++
++#define glXChooseVisual mglXChooseVisual
++#define glXCreateContext mglXCreateContext
++#define glXDestroyContext mglXDestroyContext
++#define glXMakeCurrent mglXMakeCurrent
++#define glXCopyContext mglXCopyContext
++#define glXSwapBuffers mglXSwapBuffers
++#define glXCreateGLXPixmap mglXCreateGLXPixmap
++#define glXDestroyGLXPixmap mglXDestroyGLXPixmap
++#define glXQueryExtension mglXQueryExtension
++#define glXQueryVersion mglXQueryVersion
++#define glXIsDirect mglXIsDirect
++#define glXGetConfig mglXGetConfig
++#define glXGetCurrentContext mglXGetCurrentContext
++#define glXGetCurrentDrawable mglXGetCurrentDrawable
++#define glXWaitGL mglXWaitGL
++#define glXWaitX mglXWaitX
++#define glXUseXFont mglXUseXFont
++#define glXQueryExtensionsString mglXQueryExtensionsString
++#define glXQueryServerString mglXQueryServerString
++#define glXGetClientString mglXGetClientString
++#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
++#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
++#define glXCopySubBufferMESA mglXCopySubBufferMESA
++#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
++#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
++
++/* GLX 1.2 */
++#define glXGetCurrentDisplay mglXGetCurrentDisplay 
++
++/* GLX 1.3 */
++#define glXChooseFBConfig mglXChooseFBConfig          
++#define glXGetFBConfigAttrib mglXGetFBConfigAttrib       
++#define glXGetFBConfigs mglXGetFBConfigs            
++#define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig   
++#define glXCreateWindow mglXCreateWindow            
++#define glXDestroyWindow mglXDestroyWindow           
++#define glXCreatePixmap mglXCreatePixmap            
++#define glXDestroyPixmap mglXDestroyPixmap           
++#define glXCreatePbuffer mglXCreatePbuffer           
++#define glXDestroyPbuffer mglXDestroyPbuffer          
++#define glXQueryDrawable mglXQueryDrawable           
++#define glXCreateNewContext mglXCreateNewContext        
++#define glXMakeContextCurrent mglXMakeContextCurrent      
++#define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable  
++#define glXQueryContext mglXQueryContext            
++#define glXSelectEvent mglXSelectEvent             
++#define glXGetSelectedEvent mglXGetSelectedEvent    
++
++/* GLX 1.4 */
++#define glXGetProcAddress mglXGetProcAddress
++
++
++#endif
+--- /dev/null	
++++ Mesa/inc/glx.h	
+@@ -0,0 +1,500 @@
++/*
++ * Mesa 3-D graphics library
++ * Version:  6.5
++ * 
++ * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
++ * 
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ * 
++ * The above copyright notice and this permission notice shall be included
++ * in all copies or substantial portions of the Software.
++ * 
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++
++#ifndef GLX_H
++#define GLX_H
++
++
++#ifdef __VMS
++#include <GL/vms_x_fix.h>
++# ifdef __cplusplus
++/* VMS Xlib.h gives problems with C++.
++ * this avoids a bunch of trivial warnings */
++#pragma message disable nosimpint
++#endif
++#endif
++#include <X11/Xlib.h>
++#include <X11/Xutil.h>
++#ifdef __VMS
++# ifdef __cplusplus
++#pragma message enable nosimpint
++#endif
++#endif
++#include <GL/gl.h>
++
++
++#if defined(USE_MGL_NAMESPACE)
++#include "glx_mangle.h"
++#endif
++
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++
++#define GLX_VERSION_1_1		1
++#define GLX_VERSION_1_2		1
++#define GLX_VERSION_1_3		1
++#define GLX_VERSION_1_4		1
++
++#define GLX_EXTENSION_NAME   "GLX"
++
++
++
++/*
++ * Tokens for glXChooseVisual and glXGetConfig:
++ */
++#define GLX_USE_GL		1
++#define GLX_BUFFER_SIZE		2
++#define GLX_LEVEL		3
++#define GLX_RGBA		4
++#define GLX_DOUBLEBUFFER	5
++#define GLX_STEREO		6
++#define GLX_AUX_BUFFERS		7
++#define GLX_RED_SIZE		8
++#define GLX_GREEN_SIZE		9
++#define GLX_BLUE_SIZE		10
++#define GLX_ALPHA_SIZE		11
++#define GLX_DEPTH_SIZE		12
++#define GLX_STENCIL_SIZE	13
++#define GLX_ACCUM_RED_SIZE	14
++#define GLX_ACCUM_GREEN_SIZE	15
++#define GLX_ACCUM_BLUE_SIZE	16
++#define GLX_ACCUM_ALPHA_SIZE	17
++
++
++/*
++ * Error codes returned by glXGetConfig:
++ */
++#define GLX_BAD_SCREEN		1
++#define GLX_BAD_ATTRIBUTE	2
++#define GLX_NO_EXTENSION	3
++#define GLX_BAD_VISUAL		4
++#define GLX_BAD_CONTEXT		5
++#define GLX_BAD_VALUE       	6
++#define GLX_BAD_ENUM		7
++
++
++/*
++ * GLX 1.1 and later:
++ */
++#define GLX_VENDOR		1
++#define GLX_VERSION		2
++#define GLX_EXTENSIONS 		3
++
++
++/*
++ * GLX 1.3 and later:
++ */
++#define GLX_CONFIG_CAVEAT		0x20
++#define GLX_DONT_CARE			0xFFFFFFFF
++#define GLX_X_VISUAL_TYPE		0x22
++#define GLX_TRANSPARENT_TYPE		0x23
++#define GLX_TRANSPARENT_INDEX_VALUE	0x24
++#define GLX_TRANSPARENT_RED_VALUE	0x25
++#define GLX_TRANSPARENT_GREEN_VALUE	0x26
++#define GLX_TRANSPARENT_BLUE_VALUE	0x27
++#define GLX_TRANSPARENT_ALPHA_VALUE	0x28
++#define GLX_WINDOW_BIT			0x00000001
++#define GLX_PIXMAP_BIT			0x00000002
++#define GLX_PBUFFER_BIT			0x00000004
++#define GLX_AUX_BUFFERS_BIT		0x00000010
++#define GLX_FRONT_LEFT_BUFFER_BIT	0x00000001
++#define GLX_FRONT_RIGHT_BUFFER_BIT	0x00000002
++#define GLX_BACK_LEFT_BUFFER_BIT	0x00000004
++#define GLX_BACK_RIGHT_BUFFER_BIT	0x00000008
++#define GLX_DEPTH_BUFFER_BIT		0x00000020
++#define GLX_STENCIL_BUFFER_BIT		0x00000040
++#define GLX_ACCUM_BUFFER_BIT		0x00000080
++#define GLX_NONE			0x8000
++#define GLX_SLOW_CONFIG			0x8001
++#define GLX_TRUE_COLOR			0x8002
++#define GLX_DIRECT_COLOR		0x8003
++#define GLX_PSEUDO_COLOR		0x8004
++#define GLX_STATIC_COLOR		0x8005
++#define GLX_GRAY_SCALE			0x8006
++#define GLX_STATIC_GRAY			0x8007
++#define GLX_TRANSPARENT_RGB		0x8008
++#define GLX_TRANSPARENT_INDEX		0x8009
++#define GLX_VISUAL_ID			0x800B
++#define GLX_SCREEN			0x800C
++#define GLX_NON_CONFORMANT_CONFIG	0x800D
++#define GLX_DRAWABLE_TYPE		0x8010
++#define GLX_RENDER_TYPE			0x8011
++#define GLX_X_RENDERABLE		0x8012
++#define GLX_FBCONFIG_ID			0x8013
++#define GLX_RGBA_TYPE			0x8014
++#define GLX_COLOR_INDEX_TYPE		0x8015
++#define GLX_MAX_PBUFFER_WIDTH		0x8016
++#define GLX_MAX_PBUFFER_HEIGHT		0x8017
++#define GLX_MAX_PBUFFER_PIXELS		0x8018
++#define GLX_PRESERVED_CONTENTS		0x801B
++#define GLX_LARGEST_PBUFFER		0x801C
++#define GLX_WIDTH			0x801D
++#define GLX_HEIGHT			0x801E
++#define GLX_EVENT_MASK			0x801F
++#define GLX_DAMAGED			0x8020
++#define GLX_SAVED			0x8021
++#define GLX_WINDOW			0x8022
++#define GLX_PBUFFER			0x8023
++#define GLX_PBUFFER_HEIGHT              0x8040
++#define GLX_PBUFFER_WIDTH               0x8041
++#define GLX_RGBA_BIT			0x00000001
++#define GLX_COLOR_INDEX_BIT		0x00000002
++#define GLX_PBUFFER_CLOBBER_MASK	0x08000000
++
++
++/*
++ * GLX 1.4 and later:
++ */
++#define GLX_SAMPLE_BUFFERS              0x186a0 /*100000*/
++#define GLX_SAMPLES                     0x186a1 /*100001*/
++
++
++
++typedef struct __GLXcontextRec *GLXContext;
++typedef XID GLXPixmap;
++typedef XID GLXDrawable;
++/* GLX 1.3 and later */
++typedef struct __GLXFBConfigRec *GLXFBConfig;
++typedef XID GLXFBConfigID;
++typedef XID GLXContextID;
++typedef XID GLXWindow;
++typedef XID GLXPbuffer;
++
++
++
++extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
++				     int *attribList );
++
++extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis,
++				    GLXContext shareList, Bool direct );
++
++extern void glXDestroyContext( Display *dpy, GLXContext ctx );
++
++extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable,
++			    GLXContext ctx);
++
++extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
++			    unsigned long mask );
++
++extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable );
++
++extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual,
++				     Pixmap pixmap );
++
++extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap );
++
++extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event );
++
++extern Bool glXQueryVersion( Display *dpy, int *maj, int *min );
++
++extern Bool glXIsDirect( Display *dpy, GLXContext ctx );
++
++extern int glXGetConfig( Display *dpy, XVisualInfo *visual,
++			 int attrib, int *value );
++
++extern GLXContext glXGetCurrentContext( void );
++
++extern GLXDrawable glXGetCurrentDrawable( void );
++
++extern void glXWaitGL( void );
++
++extern void glXWaitX( void );
++
++extern void glXUseXFont( Font font, int first, int count, int list );
++
++
++
++/* GLX 1.1 and later */
++extern const char *glXQueryExtensionsString( Display *dpy, int screen );
++
++extern const char *glXQueryServerString( Display *dpy, int screen, int name );
++
++extern const char *glXGetClientString( Display *dpy, int name );
++
++
++/* GLX 1.2 and later */
++extern Display *glXGetCurrentDisplay( void );
++
++
++/* GLX 1.3 and later */
++extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen,
++                                       const int *attribList, int *nitems );
++
++extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config,
++                                 int attribute, int *value );
++
++extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen,
++                                     int *nelements );
++
++extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy,
++                                              GLXFBConfig config );
++
++extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config,
++                                  Window win, const int *attribList );
++
++extern void glXDestroyWindow( Display *dpy, GLXWindow window );
++
++extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config,
++                                  Pixmap pixmap, const int *attribList );
++
++extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap );
++
++extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config,
++                                    const int *attribList );
++
++extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf );
++
++extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute,
++                              unsigned int *value );
++
++extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config,
++                                       int renderType, GLXContext shareList,
++                                       Bool direct );
++
++extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw,
++                                   GLXDrawable read, GLXContext ctx );
++
++extern GLXDrawable glXGetCurrentReadDrawable( void );
++
++extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute,
++                            int *value );
++
++extern void glXSelectEvent( Display *dpy, GLXDrawable drawable,
++                            unsigned long mask );
++
++extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
++                                 unsigned long *mask );
++
++
++/* GLX 1.4 and later */
++extern void (*glXGetProcAddress(const GLubyte *procname))( void );
++
++
++#ifndef GLX_GLXEXT_LEGACY
++
++#include <GL/glxext.h>
++
++#else
++
++
++
++/*
++ * ARB 2. GLX_ARB_get_proc_address
++ */
++#ifndef GLX_ARB_get_proc_address
++#define GLX_ARB_get_proc_address 1
++
++typedef void (*__GLXextFuncPtr)(void);
++extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
++
++#endif /* GLX_ARB_get_proc_address */
++
++
++
++#endif /* GLX_GLXEXT_LEGACY */
++
++
++/**
++ ** The following aren't in glxext.h yet.
++ **/
++
++
++/*
++ * ???. GLX_NV_vertex_array_range
++ */
++#ifndef GLX_NV_vertex_array_range
++#define GLX_NV_vertex_array_range
++
++extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
++extern void glXFreeMemoryNV(GLvoid *pointer);
++typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
++typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer);
++
++#endif /* GLX_NV_vertex_array_range */
++
++
++/*
++ * ???. GLX_MESA_allocate_memory
++ */ 
++#ifndef GLX_MESA_allocate_memory
++#define GLX_MESA_allocate_memory 1
++
++extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority);
++extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer);
++extern GLuint glXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer);
++typedef void * ( * PFNGLXALLOCATEMEMORYMESAPROC) (Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority);
++typedef void ( * PFNGLXFREEMEMORYMESAPROC) (Display *dpy, int scrn, void *pointer);
++typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const void *pointer);
++
++#endif /* GLX_MESA_allocate_memory */
++
++
++/*
++ * ARB ?. GLX_ARB_render_texture
++ * XXX This was never finalized!
++ */
++#ifndef GLX_ARB_render_texture
++#define GLX_ARB_render_texture 1
++
++extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
++extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
++extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList);
++
++#endif /* GLX_ARB_render_texture */
++
++
++/*
++ * Remove this when glxext.h is updated.
++ */
++#ifndef GLX_NV_float_buffer
++#define GLX_NV_float_buffer 1
++
++#define GLX_FLOAT_COMPONENTS_NV         0x20B0
++
++#endif /* GLX_NV_float_buffer */
++
++
++
++/*
++ * #?. GLX_MESA_swap_frame_usage
++ */
++#ifndef GLX_MESA_swap_frame_usage
++#define GLX_MESA_swap_frame_usage 1
++
++extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage);
++extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable);
++extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable);
++extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage);
++
++typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage);
++typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable);
++typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable);
++typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage);
++
++#endif /* GLX_MESA_swap_frame_usage */
++
++
++
++/*
++ * #?. GLX_MESA_swap_control
++ */
++#ifndef GLX_MESA_swap_control
++#define GLX_MESA_swap_control 1
++
++extern int glXSwapIntervalMESA(unsigned int interval);
++extern int glXGetSwapIntervalMESA(void);
++
++typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval);
++typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void);
++
++#endif /* GLX_MESA_swap_control */
++
++
++
++/*
++ * #?. GLX_EXT_texture_from_pixmap
++ * XXX not finished?
++ */
++#ifndef GLX_EXT_texture_from_pixmap
++#define GLX_EXT_texture_from_pixmap 1
++
++#define GLX_BIND_TO_TEXTURE_RGB_EXT        0x20D0
++#define GLX_BIND_TO_TEXTURE_RGBA_EXT       0x20D1
++#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT     0x20D2
++#define GLX_BIND_TO_TEXTURE_TARGETS_EXT    0x20D3
++#define GLX_Y_INVERTED_EXT                 0x20D4
++
++#define GLX_TEXTURE_FORMAT_EXT             0x20D5
++#define GLX_TEXTURE_TARGET_EXT             0x20D6
++#define GLX_MIPMAP_TEXTURE_EXT             0x20D7
++
++#define GLX_TEXTURE_FORMAT_NONE_EXT        0x20D8
++#define GLX_TEXTURE_FORMAT_RGB_EXT         0x20D9
++#define GLX_TEXTURE_FORMAT_RGBA_EXT        0x20DA
++
++#define GLX_TEXTURE_1D_BIT_EXT             0x00000001
++#define GLX_TEXTURE_2D_BIT_EXT             0x00000002
++#define GLX_TEXTURE_RECTANGLE_BIT_EXT      0x00000004
++
++#define GLX_TEXTURE_1D_EXT                 0x20DB
++#define GLX_TEXTURE_2D_EXT                 0x20DC
++#define GLX_TEXTURE_RECTANGLE_EXT          0x20DD
++
++#define GLX_FRONT_LEFT_EXT                 0x20DE
++#define GLX_FRONT_RIGHT_EXT                0x20DF
++#define GLX_BACK_LEFT_EXT                  0x20E0
++#define GLX_BACK_RIGHT_EXT                 0x20E1
++#define GLX_FRONT_EXT                      GLX_FRONT_LEFT_EXT
++#define GLX_BACK_EXT                       GLX_BACK_LEFT_EXT
++#define GLX_AUX0_EXT                       0x20E2
++#define GLX_AUX1_EXT                       0x20E3 
++#define GLX_AUX2_EXT                       0x20E4 
++#define GLX_AUX3_EXT                       0x20E5 
++#define GLX_AUX4_EXT                       0x20E6 
++#define GLX_AUX5_EXT                       0x20E7 
++#define GLX_AUX6_EXT                       0x20E8
++#define GLX_AUX7_EXT                       0x20E9 
++#define GLX_AUX8_EXT                       0x20EA 
++#define GLX_AUX9_EXT                       0x20EB
++
++extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
++extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer);
++
++#endif /* GLX_EXT_texture_from_pixmap */
++
++
++
++
++/*** Should these go here, or in another header? */
++/*
++** GLX Events
++*/
++typedef struct {
++    int event_type;		/* GLX_DAMAGED or GLX_SAVED */
++    int draw_type;		/* GLX_WINDOW or GLX_PBUFFER */
++    unsigned long serial;	/* # of last request processed by server */
++    Bool send_event;		/* true if this came for SendEvent request */
++    Display *display;		/* display the event was read from */
++    GLXDrawable drawable;	/* XID of Drawable */
++    unsigned int buffer_mask;	/* mask indicating which buffers are affected */
++    unsigned int aux_buffer;	/* which aux buffer was affected */
++    int x, y;
++    int width, height;
++    int count;			/* if nonzero, at least this many more */
++} GLXPbufferClobberEvent;
++
++typedef union __GLXEvent {
++    GLXPbufferClobberEvent glxpbufferclobber;
++    long pad[24];
++} GLXEvent;
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+--- /dev/null	
++++ Mesa/inc/glu_mangle.h	
+@@ -0,0 +1,86 @@
++/*
++ * Mesa 3-D graphics library
++ * Version:  3.0
++ * Copyright (C) 1995-1998  Brian Paul
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the Free
++ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++
++#ifndef GLU_MANGLE_H
++#define GLU_MANGLE_H
++
++
++#define gluLookAt mgluLookAt
++#define gluOrtho2D mgluOrtho2D
++#define gluPerspective mgluPerspective
++#define gluPickMatrix mgluPickMatrix
++#define gluProject mgluProject
++#define gluUnProject mgluUnProject
++#define gluErrorString mgluErrorString
++#define gluScaleImage mgluScaleImage
++#define gluBuild1DMipmaps mgluBuild1DMipmaps
++#define gluBuild2DMipmaps mgluBuild2DMipmaps
++#define gluNewQuadric mgluNewQuadric
++#define gluDeleteQuadric mgluDeleteQuadric
++#define gluQuadricDrawStyle mgluQuadricDrawStyle
++#define gluQuadricOrientation mgluQuadricOrientation
++#define gluQuadricNormals mgluQuadricNormals
++#define gluQuadricTexture mgluQuadricTexture
++#define gluQuadricCallback mgluQuadricCallback
++#define gluCylinder mgluCylinder
++#define gluSphere mgluSphere
++#define gluDisk mgluDisk
++#define gluPartialDisk mgluPartialDisk
++#define gluNewNurbsRenderer mgluNewNurbsRenderer
++#define gluDeleteNurbsRenderer mgluDeleteNurbsRenderer
++#define gluLoadSamplingMatrices mgluLoadSamplingMatrices
++#define gluNurbsProperty mgluNurbsProperty
++#define gluGetNurbsProperty mgluGetNurbsProperty
++#define gluBeginCurve mgluBeginCurve
++#define gluEndCurve mgluEndCurve
++#define gluNurbsCurve mgluNurbsCurve
++#define gluBeginSurface mgluBeginSurface
++#define gluEndSurface mgluEndSurface
++#define gluNurbsSurface mgluNurbsSurface
++#define gluBeginTrim mgluBeginTrim
++#define gluEndTrim mgluEndTrim
++#define gluPwlCurve mgluPwlCurve
++#define gluNurbsCallback mgluNurbsCallback
++#define gluNewTess mgluNewTess
++#define gluDeleteTess mgluDeleteTess
++#define gluTessBeginPolygon mgluTessBeginPolygon
++#define gluTessBeginContour mgluTessBeginContour
++#define gluTessVertex mgluTessVertex
++#define gluTessEndPolygon mgluTessEndPolygon
++#define gluTessEndContour mgluTessEndContour
++#define gluTessProperty mgluTessProperty
++#define gluTessNormal mgluTessNormal
++#define gluTessCallback mgluTessCallback
++#define gluGetTessProperty mgluGetTessProperty
++#define gluBeginPolygon mgluBeginPolygon
++#define gluNextContour mgluNextContour
++#define gluEndPolygon mgluEndPolygon
++#define gluGetString mgluGetString
++#define gluBuild1DMipmapLevels mgluBuild1DMipmapLevels
++#define gluBuild2DMipmapLevels mgluBuild2DMipmapLevels
++#define gluBuild3DMipmapLevels mgluBuild3DMipmapLevels
++#define gluBuild3DMipmaps mgluBuild3DMipmaps
++#define gluCheckExtension mgluCheckExtension
++#define gluUnProject4 mgluUnProject4
++#define gluNurbsCallbackData mgluNurbsCallbackData
++#define gluNurbsCallbackDataEXT mgluNurbsCallbackDataEXT
++
++#endif
+--- /dev/null	
++++ Mesa/inc/glu.h	
+@@ -0,0 +1,353 @@
++/*
++** License Applicability. Except to the extent portions of this file are
++** made subject to an alternative license as permitted in the SGI Free
++** Software License B, Version 1.1 (the "License"), the contents of this
++** file are subject only to the provisions of the License. You may not use
++** this file except in compliance with the License. You may obtain a copy
++** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
++** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
++** 
++** http://oss.sgi.com/projects/FreeB
++** 
++** Note that, as provided in the License, the Software is distributed on an
++** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
++** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
++** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
++** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
++** 
++** Original Code. The Original Code is: OpenGL Sample Implementation,
++** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
++** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
++** Copyright in any portions created by third parties is as indicated
++** elsewhere herein. All Rights Reserved.
++** 
++** Additional Notice Provisions: This software was created using the
++** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
++** not been independently verified as being compliant with the OpenGL(R)
++** version 1.2.1 Specification.
++*/
++
++#ifndef __glu_h__
++#define __glu_h__
++
++#if defined(USE_MGL_NAMESPACE)
++#include "glu_mangle.h"
++#endif
++
++#include <GL/gl.h>
++
++#ifndef GLAPIENTRY
++#define GLAPIENTRY
++#endif
++
++#ifndef GLAPIENTRYP
++#define GLAPIENTRYP GLAPIENTRY *
++#endif
++
++#ifdef GLAPI
++#undef GLAPI
++#endif
++
++#  if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32)
++#    define GLAPI __declspec(dllexport)
++#  elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
++#    define GLAPI __declspec(dllimport)
++#  else /* for use with static link lib build of Win32 edition only */
++#    define GLAPI extern
++#  endif /* _STATIC_MESA support */
++
++
++#ifndef GLAPI
++#define GLAPI
++#endif
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*************************************************************/
++
++/* Extensions */
++#define GLU_EXT_object_space_tess          1
++#define GLU_EXT_nurbs_tessellator          1
++
++/* Boolean */
++#define GLU_FALSE                          0
++#define GLU_TRUE                           1
++
++/* Version */
++#define GLU_VERSION_1_1                    1
++#define GLU_VERSION_1_2                    1
++#define GLU_VERSION_1_3                    1
++
++/* StringName */
++#define GLU_VERSION                        100800
++#define GLU_EXTENSIONS                     100801
++
++/* ErrorCode */
++#define GLU_INVALID_ENUM                   100900
++#define GLU_INVALID_VALUE                  100901
++#define GLU_OUT_OF_MEMORY                  100902
++#define GLU_INCOMPATIBLE_GL_VERSION        100903
++#define GLU_INVALID_OPERATION              100904
++
++/* NurbsDisplay */
++/*      GLU_FILL */
++#define GLU_OUTLINE_POLYGON                100240
++#define GLU_OUTLINE_PATCH                  100241
++
++/* NurbsCallback */
++#define GLU_NURBS_ERROR                    100103
++#define GLU_ERROR                          100103
++#define GLU_NURBS_BEGIN                    100164
++#define GLU_NURBS_BEGIN_EXT                100164
++#define GLU_NURBS_VERTEX                   100165
++#define GLU_NURBS_VERTEX_EXT               100165
++#define GLU_NURBS_NORMAL                   100166
++#define GLU_NURBS_NORMAL_EXT               100166
++#define GLU_NURBS_COLOR                    100167
++#define GLU_NURBS_COLOR_EXT                100167
++#define GLU_NURBS_TEXTURE_COORD            100168
++#define GLU_NURBS_TEX_COORD_EXT            100168
++#define GLU_NURBS_END                      100169
++#define GLU_NURBS_END_EXT                  100169
++#define GLU_NURBS_BEGIN_DATA               100170
++#define GLU_NURBS_BEGIN_DATA_EXT           100170
++#define GLU_NURBS_VERTEX_DATA              100171
++#define GLU_NURBS_VERTEX_DATA_EXT          100171
++#define GLU_NURBS_NORMAL_DATA              100172
++#define GLU_NURBS_NORMAL_DATA_EXT          100172
++#define GLU_NURBS_COLOR_DATA               100173
++#define GLU_NURBS_COLOR_DATA_EXT           100173
++#define GLU_NURBS_TEXTURE_COORD_DATA       100174
++#define GLU_NURBS_TEX_COORD_DATA_EXT       100174
++#define GLU_NURBS_END_DATA                 100175
++#define GLU_NURBS_END_DATA_EXT             100175
++
++/* NurbsError */
++#define GLU_NURBS_ERROR1                   100251
++#define GLU_NURBS_ERROR2                   100252
++#define GLU_NURBS_ERROR3                   100253
++#define GLU_NURBS_ERROR4                   100254
++#define GLU_NURBS_ERROR5                   100255
++#define GLU_NURBS_ERROR6                   100256
++#define GLU_NURBS_ERROR7                   100257
++#define GLU_NURBS_ERROR8                   100258
++#define GLU_NURBS_ERROR9                   100259
++#define GLU_NURBS_ERROR10                  100260
++#define GLU_NURBS_ERROR11                  100261
++#define GLU_NURBS_ERROR12                  100262
++#define GLU_NURBS_ERROR13                  100263
++#define GLU_NURBS_ERROR14                  100264
++#define GLU_NURBS_ERROR15                  100265
++#define GLU_NURBS_ERROR16                  100266
++#define GLU_NURBS_ERROR17                  100267
++#define GLU_NURBS_ERROR18                  100268
++#define GLU_NURBS_ERROR19                  100269
++#define GLU_NURBS_ERROR20                  100270
++#define GLU_NURBS_ERROR21                  100271
++#define GLU_NURBS_ERROR22                  100272
++#define GLU_NURBS_ERROR23                  100273
++#define GLU_NURBS_ERROR24                  100274
++#define GLU_NURBS_ERROR25                  100275
++#define GLU_NURBS_ERROR26                  100276
++#define GLU_NURBS_ERROR27                  100277
++#define GLU_NURBS_ERROR28                  100278
++#define GLU_NURBS_ERROR29                  100279
++#define GLU_NURBS_ERROR30                  100280
++#define GLU_NURBS_ERROR31                  100281
++#define GLU_NURBS_ERROR32                  100282
++#define GLU_NURBS_ERROR33                  100283
++#define GLU_NURBS_ERROR34                  100284
++#define GLU_NURBS_ERROR35                  100285
++#define GLU_NURBS_ERROR36                  100286
++#define GLU_NURBS_ERROR37                  100287
++
++/* NurbsProperty */
++#define GLU_AUTO_LOAD_MATRIX               100200
++#define GLU_CULLING                        100201
++#define GLU_SAMPLING_TOLERANCE             100203
++#define GLU_DISPLAY_MODE                   100204
++#define GLU_PARAMETRIC_TOLERANCE           100202
++#define GLU_SAMPLING_METHOD                100205
++#define GLU_U_STEP                         100206
++#define GLU_V_STEP                         100207
++#define GLU_NURBS_MODE                     100160
++#define GLU_NURBS_MODE_EXT                 100160
++#define GLU_NURBS_TESSELLATOR              100161
++#define GLU_NURBS_TESSELLATOR_EXT          100161
++#define GLU_NURBS_RENDERER                 100162
++#define GLU_NURBS_RENDERER_EXT             100162
++
++/* NurbsSampling */
++#define GLU_OBJECT_PARAMETRIC_ERROR        100208
++#define GLU_OBJECT_PARAMETRIC_ERROR_EXT    100208
++#define GLU_OBJECT_PATH_LENGTH             100209
++#define GLU_OBJECT_PATH_LENGTH_EXT         100209
++#define GLU_PATH_LENGTH                    100215
++#define GLU_PARAMETRIC_ERROR               100216
++#define GLU_DOMAIN_DISTANCE                100217
++
++/* NurbsTrim */
++#define GLU_MAP1_TRIM_2                    100210
++#define GLU_MAP1_TRIM_3                    100211
++
++/* QuadricDrawStyle */
++#define GLU_POINT                          100010
++#define GLU_LINE                           100011
++#define GLU_FILL                           100012
++#define GLU_SILHOUETTE                     100013
++
++/* QuadricCallback */
++/*      GLU_ERROR */
++
++/* QuadricNormal */
++#define GLU_SMOOTH                         100000
++#define GLU_FLAT                           100001
++#define GLU_NONE                           100002
++
++/* QuadricOrientation */
++#define GLU_OUTSIDE                        100020
++#define GLU_INSIDE                         100021
++
++/* TessCallback */
++#define GLU_TESS_BEGIN                     100100
++#define GLU_BEGIN                          100100
++#define GLU_TESS_VERTEX                    100101
++#define GLU_VERTEX                         100101
++#define GLU_TESS_END                       100102
++#define GLU_END                            100102
++#define GLU_TESS_ERROR                     100103
++#define GLU_TESS_EDGE_FLAG                 100104
++#define GLU_EDGE_FLAG                      100104
++#define GLU_TESS_COMBINE                   100105
++#define GLU_TESS_BEGIN_DATA                100106
++#define GLU_TESS_VERTEX_DATA               100107
++#define GLU_TESS_END_DATA                  100108
++#define GLU_TESS_ERROR_DATA                100109
++#define GLU_TESS_EDGE_FLAG_DATA            100110
++#define GLU_TESS_COMBINE_DATA              100111
++
++/* TessContour */
++#define GLU_CW                             100120
++#define GLU_CCW                            100121
++#define GLU_INTERIOR                       100122
++#define GLU_EXTERIOR                       100123
++#define GLU_UNKNOWN                        100124
++
++/* TessProperty */
++#define GLU_TESS_WINDING_RULE              100140
++#define GLU_TESS_BOUNDARY_ONLY             100141
++#define GLU_TESS_TOLERANCE                 100142
++
++/* TessError */
++#define GLU_TESS_ERROR1                    100151
++#define GLU_TESS_ERROR2                    100152
++#define GLU_TESS_ERROR3                    100153
++#define GLU_TESS_ERROR4                    100154
++#define GLU_TESS_ERROR5                    100155
++#define GLU_TESS_ERROR6                    100156
++#define GLU_TESS_ERROR7                    100157
++#define GLU_TESS_ERROR8                    100158
++#define GLU_TESS_MISSING_BEGIN_POLYGON     100151
++#define GLU_TESS_MISSING_BEGIN_CONTOUR     100152
++#define GLU_TESS_MISSING_END_POLYGON       100153
++#define GLU_TESS_MISSING_END_CONTOUR       100154
++#define GLU_TESS_COORD_TOO_LARGE           100155
++#define GLU_TESS_NEED_COMBINE_CALLBACK     100156
++
++/* TessWinding */
++#define GLU_TESS_WINDING_ODD               100130
++#define GLU_TESS_WINDING_NONZERO           100131
++#define GLU_TESS_WINDING_POSITIVE          100132
++#define GLU_TESS_WINDING_NEGATIVE          100133
++#define GLU_TESS_WINDING_ABS_GEQ_TWO       100134
++
++/*************************************************************/
++
++
++#ifdef __cplusplus
++class GLUnurbs;
++class GLUquadric;
++class GLUtesselator;
++#else
++typedef struct GLUnurbs GLUnurbs;
++typedef struct GLUquadric GLUquadric;
++typedef struct GLUtesselator GLUtesselator;
++#endif
++
++typedef GLUnurbs GLUnurbsObj;
++typedef GLUquadric GLUquadricObj;
++typedef GLUtesselator GLUtesselatorObj;
++typedef GLUtesselator GLUtriangulatorObj;
++
++#define GLU_TESS_MAX_COORD 1.0e150
++
++/* Internal convenience typedefs */
++typedef void (GLAPIENTRYP _GLUfuncptr)();
++
++GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb);
++GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
++GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb);
++GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs* nurb);
++GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
++GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
++GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
++GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data);
++GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
++GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
++GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString);
++GLAPI void GLAPIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
++GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb);
++GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric* quad);
++GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess);
++GLAPI void GLAPIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
++GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs* nurb);
++GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess);
++GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs* nurb);
++GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs* nurb);
++GLAPI const GLubyte * GLAPIENTRY gluErrorString (GLenum error);
++GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data);
++GLAPI const GLubyte * GLAPIENTRY gluGetString (GLenum name);
++GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
++GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view);
++GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
++GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer (void);
++GLAPI GLUquadric* GLAPIENTRY gluNewQuadric (void);
++GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void);
++GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type);
++GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc);
++GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData);
++GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData);
++GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
++GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value);
++GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type);
++GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
++GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
++GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
++GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
++GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ);
++GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type);
++GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc);
++GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw);
++GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal);
++GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation);
++GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture);
++GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut);
++GLAPI void GLAPIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks);
++GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess);
++GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
++GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
++GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess);
++GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess);
++GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
++GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
++GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
++GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
++GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* __glu_h__ */
+--- /dev/null	
++++ Mesa/inc/gl_mangle.h	
+@@ -0,0 +1,1568 @@
++#if 0
++#define GL_MANGLE_C1 "DO NOT EDIT!!! - TO REGENERATE from gl.h, EXECUTE THIS FILE IN SHELL (/bin/sh) and save the output"
++#define GL_MANGLE_C2 "This file is used to create GL function protypes and aliases for the function names"
++	files="gl.h glext.h"
++#define GL_MANGLE_C3 "get regeneration header - copy everything in this file above the 'REGENERATE_TO_END' line"
++	awk 	'!done; /^\/\*REGENERATE_TO_END/ {done=1}' $0
++	echo ""
++#define GL_MANGLE_C4 get aliases
++	grep '^GLAPI' $files | sed -e 's/.*ENTRY gl\([^( ]*\).*$/#define gl\1		MANGLE(\1)/' | sort | uniq
++	echo ""
++	echo "#endif /* GL_MANGLE_H */"
++	exit
++#endif /* REGENERATION */
++
++/*
++ * If you compile Mesa with USE_MGL_NAMESPACE defined then you can link
++ * your application both with OpenGL and Mesa.  The Mesa functions will
++ * be redefined so they are prefixed with "mgl" instead of "gl".
++ * Mgl contributed by Randy Frank (rfrank@rsinc.com)
++ * Regneration code contributed by Ray Tice (rayt@ma.ultra.net)
++ */
++
++#ifndef GL_MANGLE_H
++#define GL_MANGLE_H
++
++#ifndef   MANGLE
++#define   MANGLE(x) mgl##x
++#endif  /*MANGLE*/
++
++/*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */
++
++#define glAccum		MANGLE(Accum)
++#define glActiveStencilFaceEXT		MANGLE(ActiveStencilFaceEXT)
++#define glActiveTextureARB		MANGLE(ActiveTextureARB)
++#define glActiveTexture		MANGLE(ActiveTexture)
++#define glActiveVaryingNV		MANGLE(ActiveVaryingNV)
++#define glAlphaFragmentOp1ATI		MANGLE(AlphaFragmentOp1ATI)
++#define glAlphaFragmentOp2ATI		MANGLE(AlphaFragmentOp2ATI)
++#define glAlphaFragmentOp3ATI		MANGLE(AlphaFragmentOp3ATI)
++#define glAlphaFunc		MANGLE(AlphaFunc)
++#define glApplyTextureEXT		MANGLE(ApplyTextureEXT)
++#define glAreProgramsResidentNV		MANGLE(AreProgramsResidentNV)
++#define glAreTexturesResidentEXT		MANGLE(AreTexturesResidentEXT)
++#define glAreTexturesResident		MANGLE(AreTexturesResident)
++#define glArrayElementEXT		MANGLE(ArrayElementEXT)
++#define glArrayElement		MANGLE(ArrayElement)
++#define glArrayObjectATI		MANGLE(ArrayObjectATI)
++#define glAsyncMarkerSGIX		MANGLE(AsyncMarkerSGIX)
++#define glAttachObjectARB		MANGLE(AttachObjectARB)
++#define glAttachShader		MANGLE(AttachShader)
++#define glBeginFragmentShaderATI		MANGLE(BeginFragmentShaderATI)
++#define glBegin		MANGLE(Begin)
++#define glBeginOcclusionQueryNV		MANGLE(BeginOcclusionQueryNV)
++#define glBeginQueryARB		MANGLE(BeginQueryARB)
++#define glBeginQuery		MANGLE(BeginQuery)
++#define glBeginTransformFeedbackNV		MANGLE(BeginTransformFeedbackNV)
++#define glBeginVertexShaderEXT		MANGLE(BeginVertexShaderEXT)
++#define glBindAttribLocationARB		MANGLE(BindAttribLocationARB)
++#define glBindAttribLocation		MANGLE(BindAttribLocation)
++#define glBindBufferARB		MANGLE(BindBufferARB)
++#define glBindBufferBaseNV		MANGLE(BindBufferBaseNV)
++#define glBindBuffer		MANGLE(BindBuffer)
++#define glBindBufferOffsetNV		MANGLE(BindBufferOffsetNV)
++#define glBindBufferRangeNV		MANGLE(BindBufferRangeNV)
++#define glBindFragDataLocationEXT		MANGLE(BindFragDataLocationEXT)
++#define glBindFragmentShaderATI		MANGLE(BindFragmentShaderATI)
++#define glBindFramebufferEXT		MANGLE(BindFramebufferEXT)
++#define glBindLightParameterEXT		MANGLE(BindLightParameterEXT)
++#define glBindMaterialParameterEXT		MANGLE(BindMaterialParameterEXT)
++#define glBindParameterEXT		MANGLE(BindParameterEXT)
++#define glBindProgramARB		MANGLE(BindProgramARB)
++#define glBindProgramNV		MANGLE(BindProgramNV)
++#define glBindRenderbufferEXT		MANGLE(BindRenderbufferEXT)
++#define glBindTexGenParameterEXT		MANGLE(BindTexGenParameterEXT)
++#define glBindTextureEXT		MANGLE(BindTextureEXT)
++#define glBindTexture		MANGLE(BindTexture)
++#define glBindTextureUnitParameterEXT		MANGLE(BindTextureUnitParameterEXT)
++#define glBindVertexArrayAPPLE		MANGLE(BindVertexArrayAPPLE)
++#define glBindVertexShaderEXT		MANGLE(BindVertexShaderEXT)
++#define glBinormal3bEXT		MANGLE(Binormal3bEXT)
++#define glBinormal3bvEXT		MANGLE(Binormal3bvEXT)
++#define glBinormal3dEXT		MANGLE(Binormal3dEXT)
++#define glBinormal3dvEXT		MANGLE(Binormal3dvEXT)
++#define glBinormal3fEXT		MANGLE(Binormal3fEXT)
++#define glBinormal3fvEXT		MANGLE(Binormal3fvEXT)
++#define glBinormal3iEXT		MANGLE(Binormal3iEXT)
++#define glBinormal3ivEXT		MANGLE(Binormal3ivEXT)
++#define glBinormal3sEXT		MANGLE(Binormal3sEXT)
++#define glBinormal3svEXT		MANGLE(Binormal3svEXT)
++#define glBinormalPointerEXT		MANGLE(BinormalPointerEXT)
++#define glBitmap		MANGLE(Bitmap)
++#define glBlendColorEXT		MANGLE(BlendColorEXT)
++#define glBlendColor		MANGLE(BlendColor)
++#define glBlendEquationEXT		MANGLE(BlendEquationEXT)
++#define glBlendEquation		MANGLE(BlendEquation)
++#define glBlendEquationSeparateATI		MANGLE(BlendEquationSeparateATI)
++#define glBlendEquationSeparateEXT		MANGLE(BlendEquationSeparateEXT)
++#define glBlendEquationSeparate		MANGLE(BlendEquationSeparate)
++#define glBlendFunc		MANGLE(BlendFunc)
++#define glBlendFuncSeparateEXT		MANGLE(BlendFuncSeparateEXT)
++#define glBlendFuncSeparateINGR		MANGLE(BlendFuncSeparateINGR)
++#define glBlendFuncSeparate		MANGLE(BlendFuncSeparate)
++#define glBlitFramebufferEXT		MANGLE(BlitFramebufferEXT)
++#define glBufferDataARB		MANGLE(BufferDataARB)
++#define glBufferData		MANGLE(BufferData)
++#define glBufferParameteriAPPLE		MANGLE(BufferParameteriAPPLE)
++#define glBufferSubDataARB		MANGLE(BufferSubDataARB)
++#define glBufferSubData		MANGLE(BufferSubData)
++#define glCallList		MANGLE(CallList)
++#define glCallLists		MANGLE(CallLists)
++#define glCheckFramebufferStatusEXT		MANGLE(CheckFramebufferStatusEXT)
++#define glClampColorARB		MANGLE(ClampColorARB)
++#define glClearAccum		MANGLE(ClearAccum)
++#define glClearColorIiEXT		MANGLE(ClearColorIiEXT)
++#define glClearColorIuiEXT		MANGLE(ClearColorIuiEXT)
++#define glClearColor		MANGLE(ClearColor)
++#define glClearDebugLogMESA		MANGLE(ClearDebugLogMESA)
++#define glClearDepthdNV		MANGLE(ClearDepthdNV)
++#define glClearDepth		MANGLE(ClearDepth)
++#define glClearIndex		MANGLE(ClearIndex)
++#define glClear		MANGLE(Clear)
++#define glClearStencil		MANGLE(ClearStencil)
++#define glClientActiveTextureARB		MANGLE(ClientActiveTextureARB)
++#define glClientActiveTexture		MANGLE(ClientActiveTexture)
++#define glClientActiveVertexStreamATI		MANGLE(ClientActiveVertexStreamATI)
++#define glClipPlane		MANGLE(ClipPlane)
++#define glColor3b		MANGLE(Color3b)
++#define glColor3bv		MANGLE(Color3bv)
++#define glColor3d		MANGLE(Color3d)
++#define glColor3dv		MANGLE(Color3dv)
++#define glColor3f		MANGLE(Color3f)
++#define glColor3fVertex3fSUN		MANGLE(Color3fVertex3fSUN)
++#define glColor3fVertex3fvSUN		MANGLE(Color3fVertex3fvSUN)
++#define glColor3fv		MANGLE(Color3fv)
++#define glColor3hNV		MANGLE(Color3hNV)
++#define glColor3hvNV		MANGLE(Color3hvNV)
++#define glColor3i		MANGLE(Color3i)
++#define glColor3iv		MANGLE(Color3iv)
++#define glColor3s		MANGLE(Color3s)
++#define glColor3sv		MANGLE(Color3sv)
++#define glColor3ub		MANGLE(Color3ub)
++#define glColor3ubv		MANGLE(Color3ubv)
++#define glColor3ui		MANGLE(Color3ui)
++#define glColor3uiv		MANGLE(Color3uiv)
++#define glColor3us		MANGLE(Color3us)
++#define glColor3usv		MANGLE(Color3usv)
++#define glColor4b		MANGLE(Color4b)
++#define glColor4bv		MANGLE(Color4bv)
++#define glColor4d		MANGLE(Color4d)
++#define glColor4dv		MANGLE(Color4dv)
++#define glColor4f		MANGLE(Color4f)
++#define glColor4fNormal3fVertex3fSUN		MANGLE(Color4fNormal3fVertex3fSUN)
++#define glColor4fNormal3fVertex3fvSUN		MANGLE(Color4fNormal3fVertex3fvSUN)
++#define glColor4fv		MANGLE(Color4fv)
++#define glColor4hNV		MANGLE(Color4hNV)
++#define glColor4hvNV		MANGLE(Color4hvNV)
++#define glColor4i		MANGLE(Color4i)
++#define glColor4iv		MANGLE(Color4iv)
++#define glColor4s		MANGLE(Color4s)
++#define glColor4sv		MANGLE(Color4sv)
++#define glColor4ub		MANGLE(Color4ub)
++#define glColor4ubVertex2fSUN		MANGLE(Color4ubVertex2fSUN)
++#define glColor4ubVertex2fvSUN		MANGLE(Color4ubVertex2fvSUN)
++#define glColor4ubVertex3fSUN		MANGLE(Color4ubVertex3fSUN)
++#define glColor4ubVertex3fvSUN		MANGLE(Color4ubVertex3fvSUN)
++#define glColor4ubv		MANGLE(Color4ubv)
++#define glColor4ui		MANGLE(Color4ui)
++#define glColor4uiv		MANGLE(Color4uiv)
++#define glColor4us		MANGLE(Color4us)
++#define glColor4usv		MANGLE(Color4usv)
++#define glColorFragmentOp1ATI		MANGLE(ColorFragmentOp1ATI)
++#define glColorFragmentOp2ATI		MANGLE(ColorFragmentOp2ATI)
++#define glColorFragmentOp3ATI		MANGLE(ColorFragmentOp3ATI)
++#define glColorMaskIndexedEXT		MANGLE(ColorMaskIndexedEXT)
++#define glColorMask		MANGLE(ColorMask)
++#define glColorMaterial		MANGLE(ColorMaterial)
++#define glColorPointerEXT		MANGLE(ColorPointerEXT)
++#define glColorPointerListIBM		MANGLE(ColorPointerListIBM)
++#define glColorPointer		MANGLE(ColorPointer)
++#define glColorPointervINTEL		MANGLE(ColorPointervINTEL)
++#define glColorSubTableEXT		MANGLE(ColorSubTableEXT)
++#define glColorSubTable		MANGLE(ColorSubTable)
++#define glColorTableEXT		MANGLE(ColorTableEXT)
++#define glColorTable		MANGLE(ColorTable)
++#define glColorTableParameterfv		MANGLE(ColorTableParameterfv)
++#define glColorTableParameterfvSGI		MANGLE(ColorTableParameterfvSGI)
++#define glColorTableParameteriv		MANGLE(ColorTableParameteriv)
++#define glColorTableParameterivSGI		MANGLE(ColorTableParameterivSGI)
++#define glColorTableSGI		MANGLE(ColorTableSGI)
++#define glCombinerInputNV		MANGLE(CombinerInputNV)
++#define glCombinerOutputNV		MANGLE(CombinerOutputNV)
++#define glCombinerParameterfNV		MANGLE(CombinerParameterfNV)
++#define glCombinerParameterfvNV		MANGLE(CombinerParameterfvNV)
++#define glCombinerParameteriNV		MANGLE(CombinerParameteriNV)
++#define glCombinerParameterivNV		MANGLE(CombinerParameterivNV)
++#define glCombinerStageParameterfvNV		MANGLE(CombinerStageParameterfvNV)
++#define glCompileShaderARB		MANGLE(CompileShaderARB)
++#define glCompileShader		MANGLE(CompileShader)
++#define glCompressedTexImage1DARB		MANGLE(CompressedTexImage1DARB)
++#define glCompressedTexImage1D		MANGLE(CompressedTexImage1D)
++#define glCompressedTexImage2DARB		MANGLE(CompressedTexImage2DARB)
++#define glCompressedTexImage2D		MANGLE(CompressedTexImage2D)
++#define glCompressedTexImage3DARB		MANGLE(CompressedTexImage3DARB)
++#define glCompressedTexImage3D		MANGLE(CompressedTexImage3D)
++#define glCompressedTexSubImage1DARB		MANGLE(CompressedTexSubImage1DARB)
++#define glCompressedTexSubImage1D		MANGLE(CompressedTexSubImage1D)
++#define glCompressedTexSubImage2DARB		MANGLE(CompressedTexSubImage2DARB)
++#define glCompressedTexSubImage2D		MANGLE(CompressedTexSubImage2D)
++#define glCompressedTexSubImage3DARB		MANGLE(CompressedTexSubImage3DARB)
++#define glCompressedTexSubImage3D		MANGLE(CompressedTexSubImage3D)
++#define glConvolutionFilter1DEXT		MANGLE(ConvolutionFilter1DEXT)
++#define glConvolutionFilter1D		MANGLE(ConvolutionFilter1D)
++#define glConvolutionFilter2DEXT		MANGLE(ConvolutionFilter2DEXT)
++#define glConvolutionFilter2D		MANGLE(ConvolutionFilter2D)
++#define glConvolutionParameterfEXT		MANGLE(ConvolutionParameterfEXT)
++#define glConvolutionParameterf		MANGLE(ConvolutionParameterf)
++#define glConvolutionParameterfvEXT		MANGLE(ConvolutionParameterfvEXT)
++#define glConvolutionParameterfv		MANGLE(ConvolutionParameterfv)
++#define glConvolutionParameteriEXT		MANGLE(ConvolutionParameteriEXT)
++#define glConvolutionParameteri		MANGLE(ConvolutionParameteri)
++#define glConvolutionParameterivEXT		MANGLE(ConvolutionParameterivEXT)
++#define glConvolutionParameteriv		MANGLE(ConvolutionParameteriv)
++#define glCopyColorSubTableEXT		MANGLE(CopyColorSubTableEXT)
++#define glCopyColorSubTable		MANGLE(CopyColorSubTable)
++#define glCopyColorTable		MANGLE(CopyColorTable)
++#define glCopyColorTableSGI		MANGLE(CopyColorTableSGI)
++#define glCopyConvolutionFilter1DEXT		MANGLE(CopyConvolutionFilter1DEXT)
++#define glCopyConvolutionFilter1D		MANGLE(CopyConvolutionFilter1D)
++#define glCopyConvolutionFilter2DEXT		MANGLE(CopyConvolutionFilter2DEXT)
++#define glCopyConvolutionFilter2D		MANGLE(CopyConvolutionFilter2D)
++#define glCopyPixels		MANGLE(CopyPixels)
++#define glCopyTexImage1DEXT		MANGLE(CopyTexImage1DEXT)
++#define glCopyTexImage1D		MANGLE(CopyTexImage1D)
++#define glCopyTexImage2DEXT		MANGLE(CopyTexImage2DEXT)
++#define glCopyTexImage2D		MANGLE(CopyTexImage2D)
++#define glCopyTexSubImage1DEXT		MANGLE(CopyTexSubImage1DEXT)
++#define glCopyTexSubImage1D		MANGLE(CopyTexSubImage1D)
++#define glCopyTexSubImage2DEXT		MANGLE(CopyTexSubImage2DEXT)
++#define glCopyTexSubImage2D		MANGLE(CopyTexSubImage2D)
++#define glCopyTexSubImage3DEXT		MANGLE(CopyTexSubImage3DEXT)
++#define glCopyTexSubImage3D		MANGLE(CopyTexSubImage3D)
++#define glCreateDebugObjectMESA		MANGLE(CreateDebugObjectMESA)
++#define glCreateProgram		MANGLE(CreateProgram)
++#define glCreateProgramObjectARB		MANGLE(CreateProgramObjectARB)
++#define glCreateShader		MANGLE(CreateShader)
++#define glCreateShaderObjectARB		MANGLE(CreateShaderObjectARB)
++#define glCullFace		MANGLE(CullFace)
++#define glCullParameterdvEXT		MANGLE(CullParameterdvEXT)
++#define glCullParameterfvEXT		MANGLE(CullParameterfvEXT)
++#define glCurrentPaletteMatrixARB		MANGLE(CurrentPaletteMatrixARB)
++#define glDeformationMap3dSGIX		MANGLE(DeformationMap3dSGIX)
++#define glDeformationMap3fSGIX		MANGLE(DeformationMap3fSGIX)
++#define glDeformSGIX		MANGLE(DeformSGIX)
++#define glDeleteAsyncMarkersSGIX		MANGLE(DeleteAsyncMarkersSGIX)
++#define glDeleteBuffersARB		MANGLE(DeleteBuffersARB)
++#define glDeleteBuffers		MANGLE(DeleteBuffers)
++#define glDeleteFencesAPPLE		MANGLE(DeleteFencesAPPLE)
++#define glDeleteFencesNV		MANGLE(DeleteFencesNV)
++#define glDeleteFragmentShaderATI		MANGLE(DeleteFragmentShaderATI)
++#define glDeleteFramebuffersEXT		MANGLE(DeleteFramebuffersEXT)
++#define glDeleteLists		MANGLE(DeleteLists)
++#define glDeleteObjectARB		MANGLE(DeleteObjectARB)
++#define glDeleteOcclusionQueriesNV		MANGLE(DeleteOcclusionQueriesNV)
++#define glDeleteProgram		MANGLE(DeleteProgram)
++#define glDeleteProgramsARB		MANGLE(DeleteProgramsARB)
++#define glDeleteProgramsNV		MANGLE(DeleteProgramsNV)
++#define glDeleteQueriesARB		MANGLE(DeleteQueriesARB)
++#define glDeleteQueries		MANGLE(DeleteQueries)
++#define glDeleteRenderbuffersEXT		MANGLE(DeleteRenderbuffersEXT)
++#define glDeleteShader		MANGLE(DeleteShader)
++#define glDeleteTexturesEXT		MANGLE(DeleteTexturesEXT)
++#define glDeleteTextures		MANGLE(DeleteTextures)
++#define glDeleteVertexArraysAPPLE		MANGLE(DeleteVertexArraysAPPLE)
++#define glDeleteVertexShaderEXT		MANGLE(DeleteVertexShaderEXT)
++#define glDepthBoundsdNV		MANGLE(DepthBoundsdNV)
++#define glDepthBoundsEXT		MANGLE(DepthBoundsEXT)
++#define glDepthFunc		MANGLE(DepthFunc)
++#define glDepthMask		MANGLE(DepthMask)
++#define glDepthRangedNV		MANGLE(DepthRangedNV)
++#define glDepthRange		MANGLE(DepthRange)
++#define glDetachObjectARB		MANGLE(DetachObjectARB)
++#define glDetachShader		MANGLE(DetachShader)
++#define glDetailTexFuncSGIS		MANGLE(DetailTexFuncSGIS)
++#define glDisableClientState		MANGLE(DisableClientState)
++#define glDisableIndexedEXT		MANGLE(DisableIndexedEXT)
++#define glDisable		MANGLE(Disable)
++#define glDisableVariantClientStateEXT		MANGLE(DisableVariantClientStateEXT)
++#define glDisableVertexAttribArrayARB		MANGLE(DisableVertexAttribArrayARB)
++#define glDisableVertexAttribArray		MANGLE(DisableVertexAttribArray)
++#define glDrawArraysEXT		MANGLE(DrawArraysEXT)
++#define glDrawArraysInstancedEXT		MANGLE(DrawArraysInstancedEXT)
++#define glDrawArrays		MANGLE(DrawArrays)
++#define glDrawBuffer		MANGLE(DrawBuffer)
++#define glDrawBuffersARB		MANGLE(DrawBuffersARB)
++#define glDrawBuffersATI		MANGLE(DrawBuffersATI)
++#define glDrawBuffers		MANGLE(DrawBuffers)
++#define glDrawElementArrayAPPLE		MANGLE(DrawElementArrayAPPLE)
++#define glDrawElementArrayATI		MANGLE(DrawElementArrayATI)
++#define glDrawElementsInstancedEXT		MANGLE(DrawElementsInstancedEXT)
++#define glDrawElements		MANGLE(DrawElements)
++#define glDrawMeshArraysSUN		MANGLE(DrawMeshArraysSUN)
++#define glDrawPixels		MANGLE(DrawPixels)
++#define glDrawRangeElementArrayAPPLE		MANGLE(DrawRangeElementArrayAPPLE)
++#define glDrawRangeElementArrayATI		MANGLE(DrawRangeElementArrayATI)
++#define glDrawRangeElementsEXT		MANGLE(DrawRangeElementsEXT)
++#define glDrawRangeElements		MANGLE(DrawRangeElements)
++#define glEdgeFlag		MANGLE(EdgeFlag)
++#define glEdgeFlagPointerEXT		MANGLE(EdgeFlagPointerEXT)
++#define glEdgeFlagPointerListIBM		MANGLE(EdgeFlagPointerListIBM)
++#define glEdgeFlagPointer		MANGLE(EdgeFlagPointer)
++#define glEdgeFlagv		MANGLE(EdgeFlagv)
++#define glElementPointerAPPLE		MANGLE(ElementPointerAPPLE)
++#define glElementPointerATI		MANGLE(ElementPointerATI)
++#define glEnableClientState		MANGLE(EnableClientState)
++#define glEnableIndexedEXT		MANGLE(EnableIndexedEXT)
++#define glEnable		MANGLE(Enable)
++#define glEnableVariantClientStateEXT		MANGLE(EnableVariantClientStateEXT)
++#define glEnableVertexAttribArrayARB		MANGLE(EnableVertexAttribArrayARB)
++#define glEnableVertexAttribArray		MANGLE(EnableVertexAttribArray)
++#define glEndFragmentShaderATI		MANGLE(EndFragmentShaderATI)
++#define glEndList		MANGLE(EndList)
++#define glEnd		MANGLE(End)
++#define glEndOcclusionQueryNV		MANGLE(EndOcclusionQueryNV)
++#define glEndQueryARB		MANGLE(EndQueryARB)
++#define glEndQuery		MANGLE(EndQuery)
++#define glEndTransformFeedbackNV		MANGLE(EndTransformFeedbackNV)
++#define glEndVertexShaderEXT		MANGLE(EndVertexShaderEXT)
++#define glEvalCoord1d		MANGLE(EvalCoord1d)
++#define glEvalCoord1dv		MANGLE(EvalCoord1dv)
++#define glEvalCoord1f		MANGLE(EvalCoord1f)
++#define glEvalCoord1fv		MANGLE(EvalCoord1fv)
++#define glEvalCoord2d		MANGLE(EvalCoord2d)
++#define glEvalCoord2dv		MANGLE(EvalCoord2dv)
++#define glEvalCoord2f		MANGLE(EvalCoord2f)
++#define glEvalCoord2fv		MANGLE(EvalCoord2fv)
++#define glEvalMapsNV		MANGLE(EvalMapsNV)
++#define glEvalMesh1		MANGLE(EvalMesh1)
++#define glEvalMesh2		MANGLE(EvalMesh2)
++#define glEvalPoint1		MANGLE(EvalPoint1)
++#define glEvalPoint2		MANGLE(EvalPoint2)
++#define glExecuteProgramNV		MANGLE(ExecuteProgramNV)
++#define glExtractComponentEXT		MANGLE(ExtractComponentEXT)
++#define glFeedbackBuffer		MANGLE(FeedbackBuffer)
++#define glFinalCombinerInputNV		MANGLE(FinalCombinerInputNV)
++#define glFinishAsyncSGIX		MANGLE(FinishAsyncSGIX)
++#define glFinishFenceAPPLE		MANGLE(FinishFenceAPPLE)
++#define glFinishFenceNV		MANGLE(FinishFenceNV)
++#define glFinish		MANGLE(Finish)
++#define glFinishObjectAPPLE		MANGLE(FinishObjectAPPLE)
++#define glFinishTextureSUNX		MANGLE(FinishTextureSUNX)
++#define glFlush		MANGLE(Flush)
++#define glFlushMappedBufferRangeAPPLE		MANGLE(FlushMappedBufferRangeAPPLE)
++#define glFlushPixelDataRangeNV		MANGLE(FlushPixelDataRangeNV)
++#define glFlushRasterSGIX		MANGLE(FlushRasterSGIX)
++#define glFlushVertexArrayRangeAPPLE		MANGLE(FlushVertexArrayRangeAPPLE)
++#define glFlushVertexArrayRangeNV		MANGLE(FlushVertexArrayRangeNV)
++#define glFogCoorddEXT		MANGLE(FogCoorddEXT)
++#define glFogCoordd		MANGLE(FogCoordd)
++#define glFogCoorddvEXT		MANGLE(FogCoorddvEXT)
++#define glFogCoorddv		MANGLE(FogCoorddv)
++#define glFogCoordfEXT		MANGLE(FogCoordfEXT)
++#define glFogCoordf		MANGLE(FogCoordf)
++#define glFogCoordfvEXT		MANGLE(FogCoordfvEXT)
++#define glFogCoordfv		MANGLE(FogCoordfv)
++#define glFogCoordhNV		MANGLE(FogCoordhNV)
++#define glFogCoordhvNV		MANGLE(FogCoordhvNV)
++#define glFogCoordPointerEXT		MANGLE(FogCoordPointerEXT)
++#define glFogCoordPointerListIBM		MANGLE(FogCoordPointerListIBM)
++#define glFogCoordPointer		MANGLE(FogCoordPointer)
++#define glFogf		MANGLE(Fogf)
++#define glFogFuncSGIS		MANGLE(FogFuncSGIS)
++#define glFogfv		MANGLE(Fogfv)
++#define glFogi		MANGLE(Fogi)
++#define glFogiv		MANGLE(Fogiv)
++#define glFragmentColorMaterialSGIX		MANGLE(FragmentColorMaterialSGIX)
++#define glFragmentLightfSGIX		MANGLE(FragmentLightfSGIX)
++#define glFragmentLightfvSGIX		MANGLE(FragmentLightfvSGIX)
++#define glFragmentLightiSGIX		MANGLE(FragmentLightiSGIX)
++#define glFragmentLightivSGIX		MANGLE(FragmentLightivSGIX)
++#define glFragmentLightModelfSGIX		MANGLE(FragmentLightModelfSGIX)
++#define glFragmentLightModelfvSGIX		MANGLE(FragmentLightModelfvSGIX)
++#define glFragmentLightModeliSGIX		MANGLE(FragmentLightModeliSGIX)
++#define glFragmentLightModelivSGIX		MANGLE(FragmentLightModelivSGIX)
++#define glFragmentMaterialfSGIX		MANGLE(FragmentMaterialfSGIX)
++#define glFragmentMaterialfvSGIX		MANGLE(FragmentMaterialfvSGIX)
++#define glFragmentMaterialiSGIX		MANGLE(FragmentMaterialiSGIX)
++#define glFragmentMaterialivSGIX		MANGLE(FragmentMaterialivSGIX)
++#define glFramebufferRenderbufferEXT		MANGLE(FramebufferRenderbufferEXT)
++#define glFramebufferTexture1DEXT		MANGLE(FramebufferTexture1DEXT)
++#define glFramebufferTexture2DEXT		MANGLE(FramebufferTexture2DEXT)
++#define glFramebufferTexture3DEXT		MANGLE(FramebufferTexture3DEXT)
++#define glFramebufferTextureEXT		MANGLE(FramebufferTextureEXT)
++#define glFramebufferTextureFaceEXT		MANGLE(FramebufferTextureFaceEXT)
++#define glFramebufferTextureLayerEXT		MANGLE(FramebufferTextureLayerEXT)
++#define glFrameZoomSGIX		MANGLE(FrameZoomSGIX)
++#define glFreeObjectBufferATI		MANGLE(FreeObjectBufferATI)
++#define glFrontFace		MANGLE(FrontFace)
++#define glFrustum		MANGLE(Frustum)
++#define glGenAsyncMarkersSGIX		MANGLE(GenAsyncMarkersSGIX)
++#define glGenBuffersARB		MANGLE(GenBuffersARB)
++#define glGenBuffers		MANGLE(GenBuffers)
++#define glGenerateMipmapEXT		MANGLE(GenerateMipmapEXT)
++#define glGenFencesAPPLE		MANGLE(GenFencesAPPLE)
++#define glGenFencesNV		MANGLE(GenFencesNV)
++#define glGenFragmentShadersATI		MANGLE(GenFragmentShadersATI)
++#define glGenFramebuffersEXT		MANGLE(GenFramebuffersEXT)
++#define glGenLists		MANGLE(GenLists)
++#define glGenOcclusionQueriesNV		MANGLE(GenOcclusionQueriesNV)
++#define glGenProgramsARB		MANGLE(GenProgramsARB)
++#define glGenProgramsNV		MANGLE(GenProgramsNV)
++#define glGenQueriesARB		MANGLE(GenQueriesARB)
++#define glGenQueries		MANGLE(GenQueries)
++#define glGenRenderbuffersEXT		MANGLE(GenRenderbuffersEXT)
++#define glGenSymbolsEXT		MANGLE(GenSymbolsEXT)
++#define glGenTexturesEXT		MANGLE(GenTexturesEXT)
++#define glGenTextures		MANGLE(GenTextures)
++#define glGenVertexArraysAPPLE		MANGLE(GenVertexArraysAPPLE)
++#define glGenVertexShadersEXT		MANGLE(GenVertexShadersEXT)
++#define glGetActiveAttribARB		MANGLE(GetActiveAttribARB)
++#define glGetActiveAttrib		MANGLE(GetActiveAttrib)
++#define glGetActiveUniformARB		MANGLE(GetActiveUniformARB)
++#define glGetActiveUniform		MANGLE(GetActiveUniform)
++#define glGetActiveVaryingNV		MANGLE(GetActiveVaryingNV)
++#define glGetArrayObjectfvATI		MANGLE(GetArrayObjectfvATI)
++#define glGetArrayObjectivATI		MANGLE(GetArrayObjectivATI)
++#define glGetAttachedObjectsARB		MANGLE(GetAttachedObjectsARB)
++#define glGetAttachedShaders		MANGLE(GetAttachedShaders)
++#define glGetAttribLocationARB		MANGLE(GetAttribLocationARB)
++#define glGetAttribLocation		MANGLE(GetAttribLocation)
++#define glGetBooleanIndexedvEXT		MANGLE(GetBooleanIndexedvEXT)
++#define glGetBooleanv		MANGLE(GetBooleanv)
++#define glGetBufferParameterivARB		MANGLE(GetBufferParameterivARB)
++#define glGetBufferParameteriv		MANGLE(GetBufferParameteriv)
++#define glGetBufferPointervARB		MANGLE(GetBufferPointervARB)
++#define glGetBufferPointerv		MANGLE(GetBufferPointerv)
++#define glGetBufferSubDataARB		MANGLE(GetBufferSubDataARB)
++#define glGetBufferSubData		MANGLE(GetBufferSubData)
++#define glGetClipPlane		MANGLE(GetClipPlane)
++#define glGetColorTableEXT		MANGLE(GetColorTableEXT)
++#define glGetColorTable		MANGLE(GetColorTable)
++#define glGetColorTableParameterfvEXT		MANGLE(GetColorTableParameterfvEXT)
++#define glGetColorTableParameterfv		MANGLE(GetColorTableParameterfv)
++#define glGetColorTableParameterfvSGI		MANGLE(GetColorTableParameterfvSGI)
++#define glGetColorTableParameterivEXT		MANGLE(GetColorTableParameterivEXT)
++#define glGetColorTableParameteriv		MANGLE(GetColorTableParameteriv)
++#define glGetColorTableParameterivSGI		MANGLE(GetColorTableParameterivSGI)
++#define glGetColorTableSGI		MANGLE(GetColorTableSGI)
++#define glGetCombinerInputParameterfvNV		MANGLE(GetCombinerInputParameterfvNV)
++#define glGetCombinerInputParameterivNV		MANGLE(GetCombinerInputParameterivNV)
++#define glGetCombinerOutputParameterfvNV		MANGLE(GetCombinerOutputParameterfvNV)
++#define glGetCombinerOutputParameterivNV		MANGLE(GetCombinerOutputParameterivNV)
++#define glGetCombinerStageParameterfvNV		MANGLE(GetCombinerStageParameterfvNV)
++#define glGetCompressedTexImageARB		MANGLE(GetCompressedTexImageARB)
++#define glGetCompressedTexImage		MANGLE(GetCompressedTexImage)
++#define glGetConvolutionFilterEXT		MANGLE(GetConvolutionFilterEXT)
++#define glGetConvolutionFilter		MANGLE(GetConvolutionFilter)
++#define glGetConvolutionParameterfvEXT		MANGLE(GetConvolutionParameterfvEXT)
++#define glGetConvolutionParameterfv		MANGLE(GetConvolutionParameterfv)
++#define glGetConvolutionParameterivEXT		MANGLE(GetConvolutionParameterivEXT)
++#define glGetConvolutionParameteriv		MANGLE(GetConvolutionParameteriv)
++#define glGetDebugLogLengthMESA		MANGLE(GetDebugLogLengthMESA)
++#define glGetDebugLogMESA		MANGLE(GetDebugLogMESA)
++#define glGetDetailTexFuncSGIS		MANGLE(GetDetailTexFuncSGIS)
++#define glGetDoublev		MANGLE(GetDoublev)
++#define glGetError		MANGLE(GetError)
++#define glGetFenceivNV		MANGLE(GetFenceivNV)
++#define glGetFinalCombinerInputParameterfvNV		MANGLE(GetFinalCombinerInputParameterfvNV)
++#define glGetFinalCombinerInputParameterivNV		MANGLE(GetFinalCombinerInputParameterivNV)
++#define glGetFloatv		MANGLE(GetFloatv)
++#define glGetFogFuncSGIS		MANGLE(GetFogFuncSGIS)
++#define glGetFragDataLocationEXT		MANGLE(GetFragDataLocationEXT)
++#define glGetFragmentLightfvSGIX		MANGLE(GetFragmentLightfvSGIX)
++#define glGetFragmentLightivSGIX		MANGLE(GetFragmentLightivSGIX)
++#define glGetFragmentMaterialfvSGIX		MANGLE(GetFragmentMaterialfvSGIX)
++#define glGetFragmentMaterialivSGIX		MANGLE(GetFragmentMaterialivSGIX)
++#define glGetFramebufferAttachmentParameterivEXT		MANGLE(GetFramebufferAttachmentParameterivEXT)
++#define glGetHandleARB		MANGLE(GetHandleARB)
++#define glGetHistogramEXT		MANGLE(GetHistogramEXT)
++#define glGetHistogram		MANGLE(GetHistogram)
++#define glGetHistogramParameterfvEXT		MANGLE(GetHistogramParameterfvEXT)
++#define glGetHistogramParameterfv		MANGLE(GetHistogramParameterfv)
++#define glGetHistogramParameterivEXT		MANGLE(GetHistogramParameterivEXT)
++#define glGetHistogramParameteriv		MANGLE(GetHistogramParameteriv)
++#define glGetImageTransformParameterfvHP		MANGLE(GetImageTransformParameterfvHP)
++#define glGetImageTransformParameterivHP		MANGLE(GetImageTransformParameterivHP)
++#define glGetInfoLogARB		MANGLE(GetInfoLogARB)
++#define glGetInstrumentsSGIX		MANGLE(GetInstrumentsSGIX)
++#define glGetIntegerIndexedvEXT		MANGLE(GetIntegerIndexedvEXT)
++#define glGetIntegerv		MANGLE(GetIntegerv)
++#define glGetInvariantBooleanvEXT		MANGLE(GetInvariantBooleanvEXT)
++#define glGetInvariantFloatvEXT		MANGLE(GetInvariantFloatvEXT)
++#define glGetInvariantIntegervEXT		MANGLE(GetInvariantIntegervEXT)
++#define glGetLightfv		MANGLE(GetLightfv)
++#define glGetLightiv		MANGLE(GetLightiv)
++#define glGetListParameterfvSGIX		MANGLE(GetListParameterfvSGIX)
++#define glGetListParameterivSGIX		MANGLE(GetListParameterivSGIX)
++#define glGetLocalConstantBooleanvEXT		MANGLE(GetLocalConstantBooleanvEXT)
++#define glGetLocalConstantFloatvEXT		MANGLE(GetLocalConstantFloatvEXT)
++#define glGetLocalConstantIntegervEXT		MANGLE(GetLocalConstantIntegervEXT)
++#define glGetMapAttribParameterfvNV		MANGLE(GetMapAttribParameterfvNV)
++#define glGetMapAttribParameterivNV		MANGLE(GetMapAttribParameterivNV)
++#define glGetMapControlPointsNV		MANGLE(GetMapControlPointsNV)
++#define glGetMapdv		MANGLE(GetMapdv)
++#define glGetMapfv		MANGLE(GetMapfv)
++#define glGetMapiv		MANGLE(GetMapiv)
++#define glGetMapParameterfvNV		MANGLE(GetMapParameterfvNV)
++#define glGetMapParameterivNV		MANGLE(GetMapParameterivNV)
++#define glGetMaterialfv		MANGLE(GetMaterialfv)
++#define glGetMaterialiv		MANGLE(GetMaterialiv)
++#define glGetMinmaxEXT		MANGLE(GetMinmaxEXT)
++#define glGetMinmax		MANGLE(GetMinmax)
++#define glGetMinmaxParameterfvEXT		MANGLE(GetMinmaxParameterfvEXT)
++#define glGetMinmaxParameterfv		MANGLE(GetMinmaxParameterfv)
++#define glGetMinmaxParameterivEXT		MANGLE(GetMinmaxParameterivEXT)
++#define glGetMinmaxParameteriv		MANGLE(GetMinmaxParameteriv)
++#define glGetObjectBufferfvATI		MANGLE(GetObjectBufferfvATI)
++#define glGetObjectBufferivATI		MANGLE(GetObjectBufferivATI)
++#define glGetObjectParameterfvARB		MANGLE(GetObjectParameterfvARB)
++#define glGetObjectParameterivARB		MANGLE(GetObjectParameterivARB)
++#define glGetOcclusionQueryivNV		MANGLE(GetOcclusionQueryivNV)
++#define glGetOcclusionQueryuivNV		MANGLE(GetOcclusionQueryuivNV)
++#define glGetPixelMapfv		MANGLE(GetPixelMapfv)
++#define glGetPixelMapuiv		MANGLE(GetPixelMapuiv)
++#define glGetPixelMapusv		MANGLE(GetPixelMapusv)
++#define glGetPixelTexGenParameterfvSGIS		MANGLE(GetPixelTexGenParameterfvSGIS)
++#define glGetPixelTexGenParameterivSGIS		MANGLE(GetPixelTexGenParameterivSGIS)
++#define glGetPointervEXT		MANGLE(GetPointervEXT)
++#define glGetPointerv		MANGLE(GetPointerv)
++#define glGetPolygonStipple		MANGLE(GetPolygonStipple)
++#define glGetProgramEnvParameterdvARB		MANGLE(GetProgramEnvParameterdvARB)
++#define glGetProgramEnvParameterfvARB		MANGLE(GetProgramEnvParameterfvARB)
++#define glGetProgramEnvParameterIivNV		MANGLE(GetProgramEnvParameterIivNV)
++#define glGetProgramEnvParameterIuivNV		MANGLE(GetProgramEnvParameterIuivNV)
++#define glGetProgramInfoLog		MANGLE(GetProgramInfoLog)
++#define glGetProgramivARB		MANGLE(GetProgramivARB)
++#define glGetProgramiv		MANGLE(GetProgramiv)
++#define glGetProgramivNV		MANGLE(GetProgramivNV)
++#define glGetProgramLocalParameterdvARB		MANGLE(GetProgramLocalParameterdvARB)
++#define glGetProgramLocalParameterfvARB		MANGLE(GetProgramLocalParameterfvARB)
++#define glGetProgramLocalParameterIivNV		MANGLE(GetProgramLocalParameterIivNV)
++#define glGetProgramLocalParameterIuivNV		MANGLE(GetProgramLocalParameterIuivNV)
++#define glGetProgramNamedParameterdvNV		MANGLE(GetProgramNamedParameterdvNV)
++#define glGetProgramNamedParameterfvNV		MANGLE(GetProgramNamedParameterfvNV)
++#define glGetProgramParameterdvNV		MANGLE(GetProgramParameterdvNV)
++#define glGetProgramParameterfvNV		MANGLE(GetProgramParameterfvNV)
++#define glGetProgramRegisterfvMESA		MANGLE(GetProgramRegisterfvMESA)
++#define glGetProgramStringARB		MANGLE(GetProgramStringARB)
++#define glGetProgramStringNV		MANGLE(GetProgramStringNV)
++#define glGetQueryivARB		MANGLE(GetQueryivARB)
++#define glGetQueryiv		MANGLE(GetQueryiv)
++#define glGetQueryObjecti64vEXT		MANGLE(GetQueryObjecti64vEXT)
++#define glGetQueryObjectivARB		MANGLE(GetQueryObjectivARB)
++#define glGetQueryObjectiv		MANGLE(GetQueryObjectiv)
++#define glGetQueryObjectui64vEXT		MANGLE(GetQueryObjectui64vEXT)
++#define glGetQueryObjectuivARB		MANGLE(GetQueryObjectuivARB)
++#define glGetQueryObjectuiv		MANGLE(GetQueryObjectuiv)
++#define glGetRenderbufferParameterivEXT		MANGLE(GetRenderbufferParameterivEXT)
++#define glGetSeparableFilterEXT		MANGLE(GetSeparableFilterEXT)
++#define glGetSeparableFilter		MANGLE(GetSeparableFilter)
++#define glGetShaderInfoLog		MANGLE(GetShaderInfoLog)
++#define glGetShaderiv		MANGLE(GetShaderiv)
++#define glGetShaderSourceARB		MANGLE(GetShaderSourceARB)
++#define glGetShaderSource		MANGLE(GetShaderSource)
++#define glGetSharpenTexFuncSGIS		MANGLE(GetSharpenTexFuncSGIS)
++#define glGetString		MANGLE(GetString)
++#define glGetTexBumpParameterfvATI		MANGLE(GetTexBumpParameterfvATI)
++#define glGetTexBumpParameterivATI		MANGLE(GetTexBumpParameterivATI)
++#define glGetTexEnvfv		MANGLE(GetTexEnvfv)
++#define glGetTexEnviv		MANGLE(GetTexEnviv)
++#define glGetTexFilterFuncSGIS		MANGLE(GetTexFilterFuncSGIS)
++#define glGetTexGendv		MANGLE(GetTexGendv)
++#define glGetTexGenfv		MANGLE(GetTexGenfv)
++#define glGetTexGeniv		MANGLE(GetTexGeniv)
++#define glGetTexImage		MANGLE(GetTexImage)
++#define glGetTexLevelParameterfv		MANGLE(GetTexLevelParameterfv)
++#define glGetTexLevelParameteriv		MANGLE(GetTexLevelParameteriv)
++#define glGetTexParameterfv		MANGLE(GetTexParameterfv)
++#define glGetTexParameterIivEXT		MANGLE(GetTexParameterIivEXT)
++#define glGetTexParameterIuivEXT		MANGLE(GetTexParameterIuivEXT)
++#define glGetTexParameteriv		MANGLE(GetTexParameteriv)
++#define glGetTrackMatrixivNV		MANGLE(GetTrackMatrixivNV)
++#define glGetTransformFeedbackVaryingNV		MANGLE(GetTransformFeedbackVaryingNV)
++#define glGetUniformBufferSizeEXT		MANGLE(GetUniformBufferSizeEXT)
++#define glGetUniformfvARB		MANGLE(GetUniformfvARB)
++#define glGetUniformfv		MANGLE(GetUniformfv)
++#define glGetUniformivARB		MANGLE(GetUniformivARB)
++#define glGetUniformiv		MANGLE(GetUniformiv)
++#define glGetUniformLocationARB		MANGLE(GetUniformLocationARB)
++#define glGetUniformLocation		MANGLE(GetUniformLocation)
++#define glGetUniformOffsetEXT		MANGLE(GetUniformOffsetEXT)
++#define glGetUniformuivEXT		MANGLE(GetUniformuivEXT)
++#define glGetVariantArrayObjectfvATI		MANGLE(GetVariantArrayObjectfvATI)
++#define glGetVariantArrayObjectivATI		MANGLE(GetVariantArrayObjectivATI)
++#define glGetVariantBooleanvEXT		MANGLE(GetVariantBooleanvEXT)
++#define glGetVariantFloatvEXT		MANGLE(GetVariantFloatvEXT)
++#define glGetVariantIntegervEXT		MANGLE(GetVariantIntegervEXT)
++#define glGetVariantPointervEXT		MANGLE(GetVariantPointervEXT)
++#define glGetVaryingLocationNV		MANGLE(GetVaryingLocationNV)
++#define glGetVertexAttribArrayObjectfvATI		MANGLE(GetVertexAttribArrayObjectfvATI)
++#define glGetVertexAttribArrayObjectivATI		MANGLE(GetVertexAttribArrayObjectivATI)
++#define glGetVertexAttribdvARB		MANGLE(GetVertexAttribdvARB)
++#define glGetVertexAttribdv		MANGLE(GetVertexAttribdv)
++#define glGetVertexAttribdvNV		MANGLE(GetVertexAttribdvNV)
++#define glGetVertexAttribfvARB		MANGLE(GetVertexAttribfvARB)
++#define glGetVertexAttribfv		MANGLE(GetVertexAttribfv)
++#define glGetVertexAttribfvNV		MANGLE(GetVertexAttribfvNV)
++#define glGetVertexAttribIivEXT		MANGLE(GetVertexAttribIivEXT)
++#define glGetVertexAttribIuivEXT		MANGLE(GetVertexAttribIuivEXT)
++#define glGetVertexAttribivARB		MANGLE(GetVertexAttribivARB)
++#define glGetVertexAttribiv		MANGLE(GetVertexAttribiv)
++#define glGetVertexAttribivNV		MANGLE(GetVertexAttribivNV)
++#define glGetVertexAttribPointervARB		MANGLE(GetVertexAttribPointervARB)
++#define glGetVertexAttribPointerv		MANGLE(GetVertexAttribPointerv)
++#define glGetVertexAttribPointervNV		MANGLE(GetVertexAttribPointervNV)
++#define glGlobalAlphaFactorbSUN		MANGLE(GlobalAlphaFactorbSUN)
++#define glGlobalAlphaFactordSUN		MANGLE(GlobalAlphaFactordSUN)
++#define glGlobalAlphaFactorfSUN		MANGLE(GlobalAlphaFactorfSUN)
++#define glGlobalAlphaFactoriSUN		MANGLE(GlobalAlphaFactoriSUN)
++#define glGlobalAlphaFactorsSUN		MANGLE(GlobalAlphaFactorsSUN)
++#define glGlobalAlphaFactorubSUN		MANGLE(GlobalAlphaFactorubSUN)
++#define glGlobalAlphaFactoruiSUN		MANGLE(GlobalAlphaFactoruiSUN)
++#define glGlobalAlphaFactorusSUN		MANGLE(GlobalAlphaFactorusSUN)
++#define glHint		MANGLE(Hint)
++#define glHintPGI		MANGLE(HintPGI)
++#define glHistogramEXT		MANGLE(HistogramEXT)
++#define glHistogram		MANGLE(Histogram)
++#define glIglooInterfaceSGIX		MANGLE(IglooInterfaceSGIX)
++#define glImageTransformParameterfHP		MANGLE(ImageTransformParameterfHP)
++#define glImageTransformParameterfvHP		MANGLE(ImageTransformParameterfvHP)
++#define glImageTransformParameteriHP		MANGLE(ImageTransformParameteriHP)
++#define glImageTransformParameterivHP		MANGLE(ImageTransformParameterivHP)
++#define glIndexd		MANGLE(Indexd)
++#define glIndexdv		MANGLE(Indexdv)
++#define glIndexf		MANGLE(Indexf)
++#define glIndexFuncEXT		MANGLE(IndexFuncEXT)
++#define glIndexfv		MANGLE(Indexfv)
++#define glIndexi		MANGLE(Indexi)
++#define glIndexiv		MANGLE(Indexiv)
++#define glIndexMask		MANGLE(IndexMask)
++#define glIndexMaterialEXT		MANGLE(IndexMaterialEXT)
++#define glIndexPointerEXT		MANGLE(IndexPointerEXT)
++#define glIndexPointerListIBM		MANGLE(IndexPointerListIBM)
++#define glIndexPointer		MANGLE(IndexPointer)
++#define glIndexs		MANGLE(Indexs)
++#define glIndexsv		MANGLE(Indexsv)
++#define glIndexub		MANGLE(Indexub)
++#define glIndexubv		MANGLE(Indexubv)
++#define glInitNames		MANGLE(InitNames)
++#define glInsertComponentEXT		MANGLE(InsertComponentEXT)
++#define glInstrumentsBufferSGIX		MANGLE(InstrumentsBufferSGIX)
++#define glInterleavedArrays		MANGLE(InterleavedArrays)
++#define glIsAsyncMarkerSGIX		MANGLE(IsAsyncMarkerSGIX)
++#define glIsBufferARB		MANGLE(IsBufferARB)
++#define glIsBuffer		MANGLE(IsBuffer)
++#define glIsEnabledIndexedEXT		MANGLE(IsEnabledIndexedEXT)
++#define glIsEnabled		MANGLE(IsEnabled)
++#define glIsFenceAPPLE		MANGLE(IsFenceAPPLE)
++#define glIsFenceNV		MANGLE(IsFenceNV)
++#define glIsFramebufferEXT		MANGLE(IsFramebufferEXT)
++#define glIsList		MANGLE(IsList)
++#define glIsObjectBufferATI		MANGLE(IsObjectBufferATI)
++#define glIsOcclusionQueryNV		MANGLE(IsOcclusionQueryNV)
++#define glIsProgramARB		MANGLE(IsProgramARB)
++#define glIsProgram		MANGLE(IsProgram)
++#define glIsProgramNV		MANGLE(IsProgramNV)
++#define glIsQueryARB		MANGLE(IsQueryARB)
++#define glIsQuery		MANGLE(IsQuery)
++#define glIsRenderbufferEXT		MANGLE(IsRenderbufferEXT)
++#define glIsShader		MANGLE(IsShader)
++#define glIsTextureEXT		MANGLE(IsTextureEXT)
++#define glIsTexture		MANGLE(IsTexture)
++#define glIsVariantEnabledEXT		MANGLE(IsVariantEnabledEXT)
++#define glIsVertexArrayAPPLE		MANGLE(IsVertexArrayAPPLE)
++#define glLightEnviSGIX		MANGLE(LightEnviSGIX)
++#define glLightf		MANGLE(Lightf)
++#define glLightfv		MANGLE(Lightfv)
++#define glLighti		MANGLE(Lighti)
++#define glLightiv		MANGLE(Lightiv)
++#define glLightModelf		MANGLE(LightModelf)
++#define glLightModelfv		MANGLE(LightModelfv)
++#define glLightModeli		MANGLE(LightModeli)
++#define glLightModeliv		MANGLE(LightModeliv)
++#define glLineStipple		MANGLE(LineStipple)
++#define glLineWidth		MANGLE(LineWidth)
++#define glLinkProgramARB		MANGLE(LinkProgramARB)
++#define glLinkProgram		MANGLE(LinkProgram)
++#define glListBase		MANGLE(ListBase)
++#define glListParameterfSGIX		MANGLE(ListParameterfSGIX)
++#define glListParameterfvSGIX		MANGLE(ListParameterfvSGIX)
++#define glListParameteriSGIX		MANGLE(ListParameteriSGIX)
++#define glListParameterivSGIX		MANGLE(ListParameterivSGIX)
++#define glLoadIdentityDeformationMapSGIX		MANGLE(LoadIdentityDeformationMapSGIX)
++#define glLoadIdentity		MANGLE(LoadIdentity)
++#define glLoadMatrixd		MANGLE(LoadMatrixd)
++#define glLoadMatrixf		MANGLE(LoadMatrixf)
++#define glLoadName		MANGLE(LoadName)
++#define glLoadProgramNV		MANGLE(LoadProgramNV)
++#define glLoadTransposeMatrixdARB		MANGLE(LoadTransposeMatrixdARB)
++#define glLoadTransposeMatrixd		MANGLE(LoadTransposeMatrixd)
++#define glLoadTransposeMatrixfARB		MANGLE(LoadTransposeMatrixfARB)
++#define glLoadTransposeMatrixf		MANGLE(LoadTransposeMatrixf)
++#define glLockArraysEXT		MANGLE(LockArraysEXT)
++#define glLogicOp		MANGLE(LogicOp)
++#define glMap1d		MANGLE(Map1d)
++#define glMap1f		MANGLE(Map1f)
++#define glMap2d		MANGLE(Map2d)
++#define glMap2f		MANGLE(Map2f)
++#define glMapBufferARB		MANGLE(MapBufferARB)
++#define glMapBuffer		MANGLE(MapBuffer)
++#define glMapControlPointsNV		MANGLE(MapControlPointsNV)
++#define glMapGrid1d		MANGLE(MapGrid1d)
++#define glMapGrid1f		MANGLE(MapGrid1f)
++#define glMapGrid2d		MANGLE(MapGrid2d)
++#define glMapGrid2f		MANGLE(MapGrid2f)
++#define glMapObjectBufferATI		MANGLE(MapObjectBufferATI)
++#define glMapParameterfvNV		MANGLE(MapParameterfvNV)
++#define glMapParameterivNV		MANGLE(MapParameterivNV)
++#define glMaterialf		MANGLE(Materialf)
++#define glMaterialfv		MANGLE(Materialfv)
++#define glMateriali		MANGLE(Materiali)
++#define glMaterialiv		MANGLE(Materialiv)
++#define glMatrixIndexPointerARB		MANGLE(MatrixIndexPointerARB)
++#define glMatrixIndexubvARB		MANGLE(MatrixIndexubvARB)
++#define glMatrixIndexuivARB		MANGLE(MatrixIndexuivARB)
++#define glMatrixIndexusvARB		MANGLE(MatrixIndexusvARB)
++#define glMatrixMode		MANGLE(MatrixMode)
++#define glMinmaxEXT		MANGLE(MinmaxEXT)
++#define glMinmax		MANGLE(Minmax)
++#define glMultiDrawArraysEXT		MANGLE(MultiDrawArraysEXT)
++#define glMultiDrawArrays		MANGLE(MultiDrawArrays)
++#define glMultiDrawElementArrayAPPLE		MANGLE(MultiDrawElementArrayAPPLE)
++#define glMultiDrawElementsEXT		MANGLE(MultiDrawElementsEXT)
++#define glMultiDrawElements		MANGLE(MultiDrawElements)
++#define glMultiDrawRangeElementArrayAPPLE		MANGLE(MultiDrawRangeElementArrayAPPLE)
++#define glMultiModeDrawArraysIBM		MANGLE(MultiModeDrawArraysIBM)
++#define glMultiModeDrawElementsIBM		MANGLE(MultiModeDrawElementsIBM)
++#define glMultiTexCoord1dARB		MANGLE(MultiTexCoord1dARB)
++#define glMultiTexCoord1d		MANGLE(MultiTexCoord1d)
++#define glMultiTexCoord1dvARB		MANGLE(MultiTexCoord1dvARB)
++#define glMultiTexCoord1dv		MANGLE(MultiTexCoord1dv)
++#define glMultiTexCoord1fARB		MANGLE(MultiTexCoord1fARB)
++#define glMultiTexCoord1f		MANGLE(MultiTexCoord1f)
++#define glMultiTexCoord1fvARB		MANGLE(MultiTexCoord1fvARB)
++#define glMultiTexCoord1fv		MANGLE(MultiTexCoord1fv)
++#define glMultiTexCoord1hNV		MANGLE(MultiTexCoord1hNV)
++#define glMultiTexCoord1hvNV		MANGLE(MultiTexCoord1hvNV)
++#define glMultiTexCoord1iARB		MANGLE(MultiTexCoord1iARB)
++#define glMultiTexCoord1i		MANGLE(MultiTexCoord1i)
++#define glMultiTexCoord1ivARB		MANGLE(MultiTexCoord1ivARB)
++#define glMultiTexCoord1iv		MANGLE(MultiTexCoord1iv)
++#define glMultiTexCoord1sARB		MANGLE(MultiTexCoord1sARB)
++#define glMultiTexCoord1s		MANGLE(MultiTexCoord1s)
++#define glMultiTexCoord1svARB		MANGLE(MultiTexCoord1svARB)
++#define glMultiTexCoord1sv		MANGLE(MultiTexCoord1sv)
++#define glMultiTexCoord2dARB		MANGLE(MultiTexCoord2dARB)
++#define glMultiTexCoord2d		MANGLE(MultiTexCoord2d)
++#define glMultiTexCoord2dvARB		MANGLE(MultiTexCoord2dvARB)
++#define glMultiTexCoord2dv		MANGLE(MultiTexCoord2dv)
++#define glMultiTexCoord2fARB		MANGLE(MultiTexCoord2fARB)
++#define glMultiTexCoord2f		MANGLE(MultiTexCoord2f)
++#define glMultiTexCoord2fvARB		MANGLE(MultiTexCoord2fvARB)
++#define glMultiTexCoord2fv		MANGLE(MultiTexCoord2fv)
++#define glMultiTexCoord2hNV		MANGLE(MultiTexCoord2hNV)
++#define glMultiTexCoord2hvNV		MANGLE(MultiTexCoord2hvNV)
++#define glMultiTexCoord2iARB		MANGLE(MultiTexCoord2iARB)
++#define glMultiTexCoord2i		MANGLE(MultiTexCoord2i)
++#define glMultiTexCoord2ivARB		MANGLE(MultiTexCoord2ivARB)
++#define glMultiTexCoord2iv		MANGLE(MultiTexCoord2iv)
++#define glMultiTexCoord2sARB		MANGLE(MultiTexCoord2sARB)
++#define glMultiTexCoord2s		MANGLE(MultiTexCoord2s)
++#define glMultiTexCoord2svARB		MANGLE(MultiTexCoord2svARB)
++#define glMultiTexCoord2sv		MANGLE(MultiTexCoord2sv)
++#define glMultiTexCoord3dARB		MANGLE(MultiTexCoord3dARB)
++#define glMultiTexCoord3d		MANGLE(MultiTexCoord3d)
++#define glMultiTexCoord3dvARB		MANGLE(MultiTexCoord3dvARB)
++#define glMultiTexCoord3dv		MANGLE(MultiTexCoord3dv)
++#define glMultiTexCoord3fARB		MANGLE(MultiTexCoord3fARB)
++#define glMultiTexCoord3f		MANGLE(MultiTexCoord3f)
++#define glMultiTexCoord3fvARB		MANGLE(MultiTexCoord3fvARB)
++#define glMultiTexCoord3fv		MANGLE(MultiTexCoord3fv)
++#define glMultiTexCoord3hNV		MANGLE(MultiTexCoord3hNV)
++#define glMultiTexCoord3hvNV		MANGLE(MultiTexCoord3hvNV)
++#define glMultiTexCoord3iARB		MANGLE(MultiTexCoord3iARB)
++#define glMultiTexCoord3i		MANGLE(MultiTexCoord3i)
++#define glMultiTexCoord3ivARB		MANGLE(MultiTexCoord3ivARB)
++#define glMultiTexCoord3iv		MANGLE(MultiTexCoord3iv)
++#define glMultiTexCoord3sARB		MANGLE(MultiTexCoord3sARB)
++#define glMultiTexCoord3s		MANGLE(MultiTexCoord3s)
++#define glMultiTexCoord3svARB		MANGLE(MultiTexCoord3svARB)
++#define glMultiTexCoord3sv		MANGLE(MultiTexCoord3sv)
++#define glMultiTexCoord4dARB		MANGLE(MultiTexCoord4dARB)
++#define glMultiTexCoord4d		MANGLE(MultiTexCoord4d)
++#define glMultiTexCoord4dvARB		MANGLE(MultiTexCoord4dvARB)
++#define glMultiTexCoord4dv		MANGLE(MultiTexCoord4dv)
++#define glMultiTexCoord4fARB		MANGLE(MultiTexCoord4fARB)
++#define glMultiTexCoord4f		MANGLE(MultiTexCoord4f)
++#define glMultiTexCoord4fvARB		MANGLE(MultiTexCoord4fvARB)
++#define glMultiTexCoord4fv		MANGLE(MultiTexCoord4fv)
++#define glMultiTexCoord4hNV		MANGLE(MultiTexCoord4hNV)
++#define glMultiTexCoord4hvNV		MANGLE(MultiTexCoord4hvNV)
++#define glMultiTexCoord4iARB		MANGLE(MultiTexCoord4iARB)
++#define glMultiTexCoord4i		MANGLE(MultiTexCoord4i)
++#define glMultiTexCoord4ivARB		MANGLE(MultiTexCoord4ivARB)
++#define glMultiTexCoord4iv		MANGLE(MultiTexCoord4iv)
++#define glMultiTexCoord4sARB		MANGLE(MultiTexCoord4sARB)
++#define glMultiTexCoord4s		MANGLE(MultiTexCoord4s)
++#define glMultiTexCoord4svARB		MANGLE(MultiTexCoord4svARB)
++#define glMultiTexCoord4sv		MANGLE(MultiTexCoord4sv)
++#define glMultMatrixd		MANGLE(MultMatrixd)
++#define glMultMatrixf		MANGLE(MultMatrixf)
++#define glMultTransposeMatrixdARB		MANGLE(MultTransposeMatrixdARB)
++#define glMultTransposeMatrixd		MANGLE(MultTransposeMatrixd)
++#define glMultTransposeMatrixfARB		MANGLE(MultTransposeMatrixfARB)
++#define glMultTransposeMatrixf		MANGLE(MultTransposeMatrixf)
++#define glNewList		MANGLE(NewList)
++#define glNewObjectBufferATI		MANGLE(NewObjectBufferATI)
++#define glNormal3b		MANGLE(Normal3b)
++#define glNormal3bv		MANGLE(Normal3bv)
++#define glNormal3d		MANGLE(Normal3d)
++#define glNormal3dv		MANGLE(Normal3dv)
++#define glNormal3f		MANGLE(Normal3f)
++#define glNormal3fVertex3fSUN		MANGLE(Normal3fVertex3fSUN)
++#define glNormal3fVertex3fvSUN		MANGLE(Normal3fVertex3fvSUN)
++#define glNormal3fv		MANGLE(Normal3fv)
++#define glNormal3hNV		MANGLE(Normal3hNV)
++#define glNormal3hvNV		MANGLE(Normal3hvNV)
++#define glNormal3i		MANGLE(Normal3i)
++#define glNormal3iv		MANGLE(Normal3iv)
++#define glNormal3s		MANGLE(Normal3s)
++#define glNormal3sv		MANGLE(Normal3sv)
++#define glNormalPointerEXT		MANGLE(NormalPointerEXT)
++#define glNormalPointerListIBM		MANGLE(NormalPointerListIBM)
++#define glNormalPointer		MANGLE(NormalPointer)
++#define glNormalPointervINTEL		MANGLE(NormalPointervINTEL)
++#define glNormalStream3bATI		MANGLE(NormalStream3bATI)
++#define glNormalStream3bvATI		MANGLE(NormalStream3bvATI)
++#define glNormalStream3dATI		MANGLE(NormalStream3dATI)
++#define glNormalStream3dvATI		MANGLE(NormalStream3dvATI)
++#define glNormalStream3fATI		MANGLE(NormalStream3fATI)
++#define glNormalStream3fvATI		MANGLE(NormalStream3fvATI)
++#define glNormalStream3iATI		MANGLE(NormalStream3iATI)
++#define glNormalStream3ivATI		MANGLE(NormalStream3ivATI)
++#define glNormalStream3sATI		MANGLE(NormalStream3sATI)
++#define glNormalStream3svATI		MANGLE(NormalStream3svATI)
++#define glOrtho		MANGLE(Ortho)
++#define glPassTexCoordATI		MANGLE(PassTexCoordATI)
++#define glPassThrough		MANGLE(PassThrough)
++#define glPixelDataRangeNV		MANGLE(PixelDataRangeNV)
++#define glPixelMapfv		MANGLE(PixelMapfv)
++#define glPixelMapuiv		MANGLE(PixelMapuiv)
++#define glPixelMapusv		MANGLE(PixelMapusv)
++#define glPixelStoref		MANGLE(PixelStoref)
++#define glPixelStorei		MANGLE(PixelStorei)
++#define glPixelTexGenParameterfSGIS		MANGLE(PixelTexGenParameterfSGIS)
++#define glPixelTexGenParameterfvSGIS		MANGLE(PixelTexGenParameterfvSGIS)
++#define glPixelTexGenParameteriSGIS		MANGLE(PixelTexGenParameteriSGIS)
++#define glPixelTexGenParameterivSGIS		MANGLE(PixelTexGenParameterivSGIS)
++#define glPixelTexGenSGIX		MANGLE(PixelTexGenSGIX)
++#define glPixelTransferf		MANGLE(PixelTransferf)
++#define glPixelTransferi		MANGLE(PixelTransferi)
++#define glPixelTransformParameterfEXT		MANGLE(PixelTransformParameterfEXT)
++#define glPixelTransformParameterfvEXT		MANGLE(PixelTransformParameterfvEXT)
++#define glPixelTransformParameteriEXT		MANGLE(PixelTransformParameteriEXT)
++#define glPixelTransformParameterivEXT		MANGLE(PixelTransformParameterivEXT)
++#define glPixelZoom		MANGLE(PixelZoom)
++#define glPNTrianglesfATI		MANGLE(PNTrianglesfATI)
++#define glPNTrianglesiATI		MANGLE(PNTrianglesiATI)
++#define glPointParameterfARB		MANGLE(PointParameterfARB)
++#define glPointParameterfEXT		MANGLE(PointParameterfEXT)
++#define glPointParameterf		MANGLE(PointParameterf)
++#define glPointParameterfSGIS		MANGLE(PointParameterfSGIS)
++#define glPointParameterfvARB		MANGLE(PointParameterfvARB)
++#define glPointParameterfvEXT		MANGLE(PointParameterfvEXT)
++#define glPointParameterfv		MANGLE(PointParameterfv)
++#define glPointParameterfvSGIS		MANGLE(PointParameterfvSGIS)
++#define glPointParameteri		MANGLE(PointParameteri)
++#define glPointParameteriNV		MANGLE(PointParameteriNV)
++#define glPointParameteriv		MANGLE(PointParameteriv)
++#define glPointParameterivNV		MANGLE(PointParameterivNV)
++#define glPointSize		MANGLE(PointSize)
++#define glPollAsyncSGIX		MANGLE(PollAsyncSGIX)
++#define glPollInstrumentsSGIX		MANGLE(PollInstrumentsSGIX)
++#define glPolygonMode		MANGLE(PolygonMode)
++#define glPolygonOffsetEXT		MANGLE(PolygonOffsetEXT)
++#define glPolygonOffset		MANGLE(PolygonOffset)
++#define glPolygonStipple		MANGLE(PolygonStipple)
++#define glPopAttrib		MANGLE(PopAttrib)
++#define glPopClientAttrib		MANGLE(PopClientAttrib)
++#define glPopMatrix		MANGLE(PopMatrix)
++#define glPopName		MANGLE(PopName)
++#define glPrimitiveRestartIndexNV		MANGLE(PrimitiveRestartIndexNV)
++#define glPrimitiveRestartNV		MANGLE(PrimitiveRestartNV)
++#define glPrioritizeTexturesEXT		MANGLE(PrioritizeTexturesEXT)
++#define glPrioritizeTextures		MANGLE(PrioritizeTextures)
++#define glProgramBufferParametersfvNV		MANGLE(ProgramBufferParametersfvNV)
++#define glProgramBufferParametersIivNV		MANGLE(ProgramBufferParametersIivNV)
++#define glProgramBufferParametersIuivNV		MANGLE(ProgramBufferParametersIuivNV)
++#define glProgramCallbackMESA		MANGLE(ProgramCallbackMESA)
++#define glProgramEnvParameter4dARB		MANGLE(ProgramEnvParameter4dARB)
++#define glProgramEnvParameter4dvARB		MANGLE(ProgramEnvParameter4dvARB)
++#define glProgramEnvParameter4fARB		MANGLE(ProgramEnvParameter4fARB)
++#define glProgramEnvParameter4fvARB		MANGLE(ProgramEnvParameter4fvARB)
++#define glProgramEnvParameterI4iNV		MANGLE(ProgramEnvParameterI4iNV)
++#define glProgramEnvParameterI4ivNV		MANGLE(ProgramEnvParameterI4ivNV)
++#define glProgramEnvParameterI4uiNV		MANGLE(ProgramEnvParameterI4uiNV)
++#define glProgramEnvParameterI4uivNV		MANGLE(ProgramEnvParameterI4uivNV)
++#define glProgramEnvParameters4fvEXT		MANGLE(ProgramEnvParameters4fvEXT)
++#define glProgramEnvParametersI4ivNV		MANGLE(ProgramEnvParametersI4ivNV)
++#define glProgramEnvParametersI4uivNV		MANGLE(ProgramEnvParametersI4uivNV)
++#define glProgramLocalParameter4dARB		MANGLE(ProgramLocalParameter4dARB)
++#define glProgramLocalParameter4dvARB		MANGLE(ProgramLocalParameter4dvARB)
++#define glProgramLocalParameter4fARB		MANGLE(ProgramLocalParameter4fARB)
++#define glProgramLocalParameter4fvARB		MANGLE(ProgramLocalParameter4fvARB)
++#define glProgramLocalParameterI4iNV		MANGLE(ProgramLocalParameterI4iNV)
++#define glProgramLocalParameterI4ivNV		MANGLE(ProgramLocalParameterI4ivNV)
++#define glProgramLocalParameterI4uiNV		MANGLE(ProgramLocalParameterI4uiNV)
++#define glProgramLocalParameterI4uivNV		MANGLE(ProgramLocalParameterI4uivNV)
++#define glProgramLocalParameters4fvEXT		MANGLE(ProgramLocalParameters4fvEXT)
++#define glProgramLocalParametersI4ivNV		MANGLE(ProgramLocalParametersI4ivNV)
++#define glProgramLocalParametersI4uivNV		MANGLE(ProgramLocalParametersI4uivNV)
++#define glProgramNamedParameter4dNV		MANGLE(ProgramNamedParameter4dNV)
++#define glProgramNamedParameter4dvNV		MANGLE(ProgramNamedParameter4dvNV)
++#define glProgramNamedParameter4fNV		MANGLE(ProgramNamedParameter4fNV)
++#define glProgramNamedParameter4fvNV		MANGLE(ProgramNamedParameter4fvNV)
++#define glProgramParameter4dNV		MANGLE(ProgramParameter4dNV)
++#define glProgramParameter4dvNV		MANGLE(ProgramParameter4dvNV)
++#define glProgramParameter4fNV		MANGLE(ProgramParameter4fNV)
++#define glProgramParameter4fvNV		MANGLE(ProgramParameter4fvNV)
++#define glProgramParameteriEXT		MANGLE(ProgramParameteriEXT)
++#define glProgramParameters4dvNV		MANGLE(ProgramParameters4dvNV)
++#define glProgramParameters4fvNV		MANGLE(ProgramParameters4fvNV)
++#define glProgramStringARB		MANGLE(ProgramStringARB)
++#define glProgramVertexLimitNV		MANGLE(ProgramVertexLimitNV)
++#define glPushAttrib		MANGLE(PushAttrib)
++#define glPushClientAttrib		MANGLE(PushClientAttrib)
++#define glPushMatrix		MANGLE(PushMatrix)
++#define glPushName		MANGLE(PushName)
++#define glRasterPos2d		MANGLE(RasterPos2d)
++#define glRasterPos2dv		MANGLE(RasterPos2dv)
++#define glRasterPos2f		MANGLE(RasterPos2f)
++#define glRasterPos2fv		MANGLE(RasterPos2fv)
++#define glRasterPos2i		MANGLE(RasterPos2i)
++#define glRasterPos2iv		MANGLE(RasterPos2iv)
++#define glRasterPos2s		MANGLE(RasterPos2s)
++#define glRasterPos2sv		MANGLE(RasterPos2sv)
++#define glRasterPos3d		MANGLE(RasterPos3d)
++#define glRasterPos3dv		MANGLE(RasterPos3dv)
++#define glRasterPos3f		MANGLE(RasterPos3f)
++#define glRasterPos3fv		MANGLE(RasterPos3fv)
++#define glRasterPos3i		MANGLE(RasterPos3i)
++#define glRasterPos3iv		MANGLE(RasterPos3iv)
++#define glRasterPos3s		MANGLE(RasterPos3s)
++#define glRasterPos3sv		MANGLE(RasterPos3sv)
++#define glRasterPos4d		MANGLE(RasterPos4d)
++#define glRasterPos4dv		MANGLE(RasterPos4dv)
++#define glRasterPos4f		MANGLE(RasterPos4f)
++#define glRasterPos4fv		MANGLE(RasterPos4fv)
++#define glRasterPos4i		MANGLE(RasterPos4i)
++#define glRasterPos4iv		MANGLE(RasterPos4iv)
++#define glRasterPos4s		MANGLE(RasterPos4s)
++#define glRasterPos4sv		MANGLE(RasterPos4sv)
++#define glReadBuffer		MANGLE(ReadBuffer)
++#define glReadInstrumentsSGIX		MANGLE(ReadInstrumentsSGIX)
++#define glReadPixels		MANGLE(ReadPixels)
++#define glRectd		MANGLE(Rectd)
++#define glRectdv		MANGLE(Rectdv)
++#define glRectf		MANGLE(Rectf)
++#define glRectfv		MANGLE(Rectfv)
++#define glRecti		MANGLE(Recti)
++#define glRectiv		MANGLE(Rectiv)
++#define glRects		MANGLE(Rects)
++#define glRectsv		MANGLE(Rectsv)
++#define glReferencePlaneSGIX		MANGLE(ReferencePlaneSGIX)
++#define glRenderbufferStorageEXT		MANGLE(RenderbufferStorageEXT)
++#define glRenderbufferStorageMultisampleCoverageNV		MANGLE(RenderbufferStorageMultisampleCoverageNV)
++#define glRenderbufferStorageMultisampleEXT		MANGLE(RenderbufferStorageMultisampleEXT)
++#define glRenderMode		MANGLE(RenderMode)
++#define glReplacementCodePointerSUN		MANGLE(ReplacementCodePointerSUN)
++#define glReplacementCodeubSUN		MANGLE(ReplacementCodeubSUN)
++#define glReplacementCodeubvSUN		MANGLE(ReplacementCodeubvSUN)
++#define glReplacementCodeuiColor3fVertex3fSUN		MANGLE(ReplacementCodeuiColor3fVertex3fSUN)
++#define glReplacementCodeuiColor3fVertex3fvSUN		MANGLE(ReplacementCodeuiColor3fVertex3fvSUN)
++#define glReplacementCodeuiColor4fNormal3fVertex3fSUN		MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fSUN)
++#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN		MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fvSUN)
++#define glReplacementCodeuiColor4ubVertex3fSUN		MANGLE(ReplacementCodeuiColor4ubVertex3fSUN)
++#define glReplacementCodeuiColor4ubVertex3fvSUN		MANGLE(ReplacementCodeuiColor4ubVertex3fvSUN)
++#define glReplacementCodeuiNormal3fVertex3fSUN		MANGLE(ReplacementCodeuiNormal3fVertex3fSUN)
++#define glReplacementCodeuiNormal3fVertex3fvSUN		MANGLE(ReplacementCodeuiNormal3fVertex3fvSUN)
++#define glReplacementCodeuiSUN		MANGLE(ReplacementCodeuiSUN)
++#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN		MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)
++#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN		MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)
++#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN		MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)
++#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN		MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)
++#define glReplacementCodeuiTexCoord2fVertex3fSUN		MANGLE(ReplacementCodeuiTexCoord2fVertex3fSUN)
++#define glReplacementCodeuiTexCoord2fVertex3fvSUN		MANGLE(ReplacementCodeuiTexCoord2fVertex3fvSUN)
++#define glReplacementCodeuiVertex3fSUN		MANGLE(ReplacementCodeuiVertex3fSUN)
++#define glReplacementCodeuiVertex3fvSUN		MANGLE(ReplacementCodeuiVertex3fvSUN)
++#define glReplacementCodeuivSUN		MANGLE(ReplacementCodeuivSUN)
++#define glReplacementCodeusSUN		MANGLE(ReplacementCodeusSUN)
++#define glReplacementCodeusvSUN		MANGLE(ReplacementCodeusvSUN)
++#define glRequestResidentProgramsNV		MANGLE(RequestResidentProgramsNV)
++#define glResetHistogramEXT		MANGLE(ResetHistogramEXT)
++#define glResetHistogram		MANGLE(ResetHistogram)
++#define glResetMinmaxEXT		MANGLE(ResetMinmaxEXT)
++#define glResetMinmax		MANGLE(ResetMinmax)
++#define glResizeBuffersMESA		MANGLE(ResizeBuffersMESA)
++#define glRotated		MANGLE(Rotated)
++#define glRotatef		MANGLE(Rotatef)
++#define glSampleCoverageARB		MANGLE(SampleCoverageARB)
++#define glSampleCoverage		MANGLE(SampleCoverage)
++#define glSampleMapATI		MANGLE(SampleMapATI)
++#define glSampleMaskEXT		MANGLE(SampleMaskEXT)
++#define glSampleMaskSGIS		MANGLE(SampleMaskSGIS)
++#define glSamplePatternEXT		MANGLE(SamplePatternEXT)
++#define glSamplePatternSGIS		MANGLE(SamplePatternSGIS)
++#define glScaled		MANGLE(Scaled)
++#define glScalef		MANGLE(Scalef)
++#define glScissor		MANGLE(Scissor)
++#define glSecondaryColor3bEXT		MANGLE(SecondaryColor3bEXT)
++#define glSecondaryColor3b		MANGLE(SecondaryColor3b)
++#define glSecondaryColor3bvEXT		MANGLE(SecondaryColor3bvEXT)
++#define glSecondaryColor3bv		MANGLE(SecondaryColor3bv)
++#define glSecondaryColor3dEXT		MANGLE(SecondaryColor3dEXT)
++#define glSecondaryColor3d		MANGLE(SecondaryColor3d)
++#define glSecondaryColor3dvEXT		MANGLE(SecondaryColor3dvEXT)
++#define glSecondaryColor3dv		MANGLE(SecondaryColor3dv)
++#define glSecondaryColor3fEXT		MANGLE(SecondaryColor3fEXT)
++#define glSecondaryColor3f		MANGLE(SecondaryColor3f)
++#define glSecondaryColor3fvEXT		MANGLE(SecondaryColor3fvEXT)
++#define glSecondaryColor3fv		MANGLE(SecondaryColor3fv)
++#define glSecondaryColor3hNV		MANGLE(SecondaryColor3hNV)
++#define glSecondaryColor3hvNV		MANGLE(SecondaryColor3hvNV)
++#define glSecondaryColor3iEXT		MANGLE(SecondaryColor3iEXT)
++#define glSecondaryColor3i		MANGLE(SecondaryColor3i)
++#define glSecondaryColor3ivEXT		MANGLE(SecondaryColor3ivEXT)
++#define glSecondaryColor3iv		MANGLE(SecondaryColor3iv)
++#define glSecondaryColor3sEXT		MANGLE(SecondaryColor3sEXT)
++#define glSecondaryColor3s		MANGLE(SecondaryColor3s)
++#define glSecondaryColor3svEXT		MANGLE(SecondaryColor3svEXT)
++#define glSecondaryColor3sv		MANGLE(SecondaryColor3sv)
++#define glSecondaryColor3ubEXT		MANGLE(SecondaryColor3ubEXT)
++#define glSecondaryColor3ub		MANGLE(SecondaryColor3ub)
++#define glSecondaryColor3ubvEXT		MANGLE(SecondaryColor3ubvEXT)
++#define glSecondaryColor3ubv		MANGLE(SecondaryColor3ubv)
++#define glSecondaryColor3uiEXT		MANGLE(SecondaryColor3uiEXT)
++#define glSecondaryColor3ui		MANGLE(SecondaryColor3ui)
++#define glSecondaryColor3uivEXT		MANGLE(SecondaryColor3uivEXT)
++#define glSecondaryColor3uiv		MANGLE(SecondaryColor3uiv)
++#define glSecondaryColor3usEXT		MANGLE(SecondaryColor3usEXT)
++#define glSecondaryColor3us		MANGLE(SecondaryColor3us)
++#define glSecondaryColor3usvEXT		MANGLE(SecondaryColor3usvEXT)
++#define glSecondaryColor3usv		MANGLE(SecondaryColor3usv)
++#define glSecondaryColorPointerEXT		MANGLE(SecondaryColorPointerEXT)
++#define glSecondaryColorPointerListIBM		MANGLE(SecondaryColorPointerListIBM)
++#define glSecondaryColorPointer		MANGLE(SecondaryColorPointer)
++#define glSelectBuffer		MANGLE(SelectBuffer)
++#define glSeparableFilter2DEXT		MANGLE(SeparableFilter2DEXT)
++#define glSeparableFilter2D		MANGLE(SeparableFilter2D)
++#define glSetFenceAPPLE		MANGLE(SetFenceAPPLE)
++#define glSetFenceNV		MANGLE(SetFenceNV)
++#define glSetFragmentShaderConstantATI		MANGLE(SetFragmentShaderConstantATI)
++#define glSetInvariantEXT		MANGLE(SetInvariantEXT)
++#define glSetLocalConstantEXT		MANGLE(SetLocalConstantEXT)
++#define glShadeModel		MANGLE(ShadeModel)
++#define glShaderOp1EXT		MANGLE(ShaderOp1EXT)
++#define glShaderOp2EXT		MANGLE(ShaderOp2EXT)
++#define glShaderOp3EXT		MANGLE(ShaderOp3EXT)
++#define glShaderSourceARB		MANGLE(ShaderSourceARB)
++#define glShaderSource		MANGLE(ShaderSource)
++#define glSharpenTexFuncSGIS		MANGLE(SharpenTexFuncSGIS)
++#define glSpriteParameterfSGIX		MANGLE(SpriteParameterfSGIX)
++#define glSpriteParameterfvSGIX		MANGLE(SpriteParameterfvSGIX)
++#define glSpriteParameteriSGIX		MANGLE(SpriteParameteriSGIX)
++#define glSpriteParameterivSGIX		MANGLE(SpriteParameterivSGIX)
++#define glStartInstrumentsSGIX		MANGLE(StartInstrumentsSGIX)
++#define glStencilClearTagEXT		MANGLE(StencilClearTagEXT)
++#define glStencilFunc		MANGLE(StencilFunc)
++#define glStencilFuncSeparateATI		MANGLE(StencilFuncSeparateATI)
++#define glStencilFuncSeparate		MANGLE(StencilFuncSeparate)
++#define glStencilMask		MANGLE(StencilMask)
++#define glStencilMaskSeparate		MANGLE(StencilMaskSeparate)
++#define glStencilOp		MANGLE(StencilOp)
++#define glStencilOpSeparateATI		MANGLE(StencilOpSeparateATI)
++#define glStencilOpSeparate		MANGLE(StencilOpSeparate)
++#define glStopInstrumentsSGIX		MANGLE(StopInstrumentsSGIX)
++#define glStringMarkerGREMEDY		MANGLE(StringMarkerGREMEDY)
++#define glSwizzleEXT		MANGLE(SwizzleEXT)
++#define glTagSampleBufferSGIX		MANGLE(TagSampleBufferSGIX)
++#define glTangent3bEXT		MANGLE(Tangent3bEXT)
++#define glTangent3bvEXT		MANGLE(Tangent3bvEXT)
++#define glTangent3dEXT		MANGLE(Tangent3dEXT)
++#define glTangent3dvEXT		MANGLE(Tangent3dvEXT)
++#define glTangent3fEXT		MANGLE(Tangent3fEXT)
++#define glTangent3fvEXT		MANGLE(Tangent3fvEXT)
++#define glTangent3iEXT		MANGLE(Tangent3iEXT)
++#define glTangent3ivEXT		MANGLE(Tangent3ivEXT)
++#define glTangent3sEXT		MANGLE(Tangent3sEXT)
++#define glTangent3svEXT		MANGLE(Tangent3svEXT)
++#define glTangentPointerEXT		MANGLE(TangentPointerEXT)
++#define glTbufferMask3DFX		MANGLE(TbufferMask3DFX)
++#define glTestFenceAPPLE		MANGLE(TestFenceAPPLE)
++#define glTestFenceNV		MANGLE(TestFenceNV)
++#define glTestObjectAPPLE		MANGLE(TestObjectAPPLE)
++#define glTexBufferEXT		MANGLE(TexBufferEXT)
++#define glTexBumpParameterfvATI		MANGLE(TexBumpParameterfvATI)
++#define glTexBumpParameterivATI		MANGLE(TexBumpParameterivATI)
++#define glTexCoord1d		MANGLE(TexCoord1d)
++#define glTexCoord1dv		MANGLE(TexCoord1dv)
++#define glTexCoord1f		MANGLE(TexCoord1f)
++#define glTexCoord1fv		MANGLE(TexCoord1fv)
++#define glTexCoord1hNV		MANGLE(TexCoord1hNV)
++#define glTexCoord1hvNV		MANGLE(TexCoord1hvNV)
++#define glTexCoord1i		MANGLE(TexCoord1i)
++#define glTexCoord1iv		MANGLE(TexCoord1iv)
++#define glTexCoord1s		MANGLE(TexCoord1s)
++#define glTexCoord1sv		MANGLE(TexCoord1sv)
++#define glTexCoord2d		MANGLE(TexCoord2d)
++#define glTexCoord2dv		MANGLE(TexCoord2dv)
++#define glTexCoord2fColor3fVertex3fSUN		MANGLE(TexCoord2fColor3fVertex3fSUN)
++#define glTexCoord2fColor3fVertex3fvSUN		MANGLE(TexCoord2fColor3fVertex3fvSUN)
++#define glTexCoord2fColor4fNormal3fVertex3fSUN		MANGLE(TexCoord2fColor4fNormal3fVertex3fSUN)
++#define glTexCoord2fColor4fNormal3fVertex3fvSUN		MANGLE(TexCoord2fColor4fNormal3fVertex3fvSUN)
++#define glTexCoord2fColor4ubVertex3fSUN		MANGLE(TexCoord2fColor4ubVertex3fSUN)
++#define glTexCoord2fColor4ubVertex3fvSUN		MANGLE(TexCoord2fColor4ubVertex3fvSUN)
++#define glTexCoord2f		MANGLE(TexCoord2f)
++#define glTexCoord2fNormal3fVertex3fSUN		MANGLE(TexCoord2fNormal3fVertex3fSUN)
++#define glTexCoord2fNormal3fVertex3fvSUN		MANGLE(TexCoord2fNormal3fVertex3fvSUN)
++#define glTexCoord2fVertex3fSUN		MANGLE(TexCoord2fVertex3fSUN)
++#define glTexCoord2fVertex3fvSUN		MANGLE(TexCoord2fVertex3fvSUN)
++#define glTexCoord2fv		MANGLE(TexCoord2fv)
++#define glTexCoord2hNV		MANGLE(TexCoord2hNV)
++#define glTexCoord2hvNV		MANGLE(TexCoord2hvNV)
++#define glTexCoord2i		MANGLE(TexCoord2i)
++#define glTexCoord2iv		MANGLE(TexCoord2iv)
++#define glTexCoord2s		MANGLE(TexCoord2s)
++#define glTexCoord2sv		MANGLE(TexCoord2sv)
++#define glTexCoord3d		MANGLE(TexCoord3d)
++#define glTexCoord3dv		MANGLE(TexCoord3dv)
++#define glTexCoord3f		MANGLE(TexCoord3f)
++#define glTexCoord3fv		MANGLE(TexCoord3fv)
++#define glTexCoord3hNV		MANGLE(TexCoord3hNV)
++#define glTexCoord3hvNV		MANGLE(TexCoord3hvNV)
++#define glTexCoord3i		MANGLE(TexCoord3i)
++#define glTexCoord3iv		MANGLE(TexCoord3iv)
++#define glTexCoord3s		MANGLE(TexCoord3s)
++#define glTexCoord3sv		MANGLE(TexCoord3sv)
++#define glTexCoord4d		MANGLE(TexCoord4d)
++#define glTexCoord4dv		MANGLE(TexCoord4dv)
++#define glTexCoord4fColor4fNormal3fVertex4fSUN		MANGLE(TexCoord4fColor4fNormal3fVertex4fSUN)
++#define glTexCoord4fColor4fNormal3fVertex4fvSUN		MANGLE(TexCoord4fColor4fNormal3fVertex4fvSUN)
++#define glTexCoord4f		MANGLE(TexCoord4f)
++#define glTexCoord4fVertex4fSUN		MANGLE(TexCoord4fVertex4fSUN)
++#define glTexCoord4fVertex4fvSUN		MANGLE(TexCoord4fVertex4fvSUN)
++#define glTexCoord4fv		MANGLE(TexCoord4fv)
++#define glTexCoord4hNV		MANGLE(TexCoord4hNV)
++#define glTexCoord4hvNV		MANGLE(TexCoord4hvNV)
++#define glTexCoord4i		MANGLE(TexCoord4i)
++#define glTexCoord4iv		MANGLE(TexCoord4iv)
++#define glTexCoord4s		MANGLE(TexCoord4s)
++#define glTexCoord4sv		MANGLE(TexCoord4sv)
++#define glTexCoordPointerEXT		MANGLE(TexCoordPointerEXT)
++#define glTexCoordPointerListIBM		MANGLE(TexCoordPointerListIBM)
++#define glTexCoordPointer		MANGLE(TexCoordPointer)
++#define glTexCoordPointervINTEL		MANGLE(TexCoordPointervINTEL)
++#define glTexEnvf		MANGLE(TexEnvf)
++#define glTexEnvfv		MANGLE(TexEnvfv)
++#define glTexEnvi		MANGLE(TexEnvi)
++#define glTexEnviv		MANGLE(TexEnviv)
++#define glTexFilterFuncSGIS		MANGLE(TexFilterFuncSGIS)
++#define glTexGend		MANGLE(TexGend)
++#define glTexGendv		MANGLE(TexGendv)
++#define glTexGenf		MANGLE(TexGenf)
++#define glTexGenfv		MANGLE(TexGenfv)
++#define glTexGeni		MANGLE(TexGeni)
++#define glTexGeniv		MANGLE(TexGeniv)
++#define glTexImage1D		MANGLE(TexImage1D)
++#define glTexImage2D		MANGLE(TexImage2D)
++#define glTexImage3DEXT		MANGLE(TexImage3DEXT)
++#define glTexImage3D		MANGLE(TexImage3D)
++#define glTexImage4DSGIS		MANGLE(TexImage4DSGIS)
++#define glTexParameterf		MANGLE(TexParameterf)
++#define glTexParameterfv		MANGLE(TexParameterfv)
++#define glTexParameterIivEXT		MANGLE(TexParameterIivEXT)
++#define glTexParameteri		MANGLE(TexParameteri)
++#define glTexParameterIuivEXT		MANGLE(TexParameterIuivEXT)
++#define glTexParameteriv		MANGLE(TexParameteriv)
++#define glTexSubImage1DEXT		MANGLE(TexSubImage1DEXT)
++#define glTexSubImage1D		MANGLE(TexSubImage1D)
++#define glTexSubImage2DEXT		MANGLE(TexSubImage2DEXT)
++#define glTexSubImage2D		MANGLE(TexSubImage2D)
++#define glTexSubImage3DEXT		MANGLE(TexSubImage3DEXT)
++#define glTexSubImage3D		MANGLE(TexSubImage3D)
++#define glTexSubImage4DSGIS		MANGLE(TexSubImage4DSGIS)
++#define glTextureColorMaskSGIS		MANGLE(TextureColorMaskSGIS)
++#define glTextureLightEXT		MANGLE(TextureLightEXT)
++#define glTextureMaterialEXT		MANGLE(TextureMaterialEXT)
++#define glTextureNormalEXT		MANGLE(TextureNormalEXT)
++#define glTrackMatrixNV		MANGLE(TrackMatrixNV)
++#define glTransformFeedbackAttribsNV		MANGLE(TransformFeedbackAttribsNV)
++#define glTransformFeedbackVaryingsNV		MANGLE(TransformFeedbackVaryingsNV)
++#define glTranslated		MANGLE(Translated)
++#define glTranslatef		MANGLE(Translatef)
++#define glUniform1fARB		MANGLE(Uniform1fARB)
++#define glUniform1f		MANGLE(Uniform1f)
++#define glUniform1fvARB		MANGLE(Uniform1fvARB)
++#define glUniform1fv		MANGLE(Uniform1fv)
++#define glUniform1iARB		MANGLE(Uniform1iARB)
++#define glUniform1i		MANGLE(Uniform1i)
++#define glUniform1ivARB		MANGLE(Uniform1ivARB)
++#define glUniform1iv		MANGLE(Uniform1iv)
++#define glUniform1uiEXT		MANGLE(Uniform1uiEXT)
++#define glUniform1uivEXT		MANGLE(Uniform1uivEXT)
++#define glUniform2fARB		MANGLE(Uniform2fARB)
++#define glUniform2f		MANGLE(Uniform2f)
++#define glUniform2fvARB		MANGLE(Uniform2fvARB)
++#define glUniform2fv		MANGLE(Uniform2fv)
++#define glUniform2iARB		MANGLE(Uniform2iARB)
++#define glUniform2i		MANGLE(Uniform2i)
++#define glUniform2ivARB		MANGLE(Uniform2ivARB)
++#define glUniform2iv		MANGLE(Uniform2iv)
++#define glUniform2uiEXT		MANGLE(Uniform2uiEXT)
++#define glUniform2uivEXT		MANGLE(Uniform2uivEXT)
++#define glUniform3fARB		MANGLE(Uniform3fARB)
++#define glUniform3f		MANGLE(Uniform3f)
++#define glUniform3fvARB		MANGLE(Uniform3fvARB)
++#define glUniform3fv		MANGLE(Uniform3fv)
++#define glUniform3iARB		MANGLE(Uniform3iARB)
++#define glUniform3i		MANGLE(Uniform3i)
++#define glUniform3ivARB		MANGLE(Uniform3ivARB)
++#define glUniform3iv		MANGLE(Uniform3iv)
++#define glUniform3uiEXT		MANGLE(Uniform3uiEXT)
++#define glUniform3uivEXT		MANGLE(Uniform3uivEXT)
++#define glUniform4fARB		MANGLE(Uniform4fARB)
++#define glUniform4f		MANGLE(Uniform4f)
++#define glUniform4fvARB		MANGLE(Uniform4fvARB)
++#define glUniform4fv		MANGLE(Uniform4fv)
++#define glUniform4iARB		MANGLE(Uniform4iARB)
++#define glUniform4i		MANGLE(Uniform4i)
++#define glUniform4ivARB		MANGLE(Uniform4ivARB)
++#define glUniform4iv		MANGLE(Uniform4iv)
++#define glUniform4uiEXT		MANGLE(Uniform4uiEXT)
++#define glUniform4uivEXT		MANGLE(Uniform4uivEXT)
++#define glUniformBufferEXT		MANGLE(UniformBufferEXT)
++#define glUniformMatrix2fvARB		MANGLE(UniformMatrix2fvARB)
++#define glUniformMatrix2fv		MANGLE(UniformMatrix2fv)
++#define glUniformMatrix2x3fv		MANGLE(UniformMatrix2x3fv)
++#define glUniformMatrix2x4fv		MANGLE(UniformMatrix2x4fv)
++#define glUniformMatrix3fvARB		MANGLE(UniformMatrix3fvARB)
++#define glUniformMatrix3fv		MANGLE(UniformMatrix3fv)
++#define glUniformMatrix3x2fv		MANGLE(UniformMatrix3x2fv)
++#define glUniformMatrix3x4fv		MANGLE(UniformMatrix3x4fv)
++#define glUniformMatrix4fvARB		MANGLE(UniformMatrix4fvARB)
++#define glUniformMatrix4fv		MANGLE(UniformMatrix4fv)
++#define glUniformMatrix4x2fv		MANGLE(UniformMatrix4x2fv)
++#define glUniformMatrix4x3fv		MANGLE(UniformMatrix4x3fv)
++#define glUnlockArraysEXT		MANGLE(UnlockArraysEXT)
++#define glUnmapBufferARB		MANGLE(UnmapBufferARB)
++#define glUnmapBuffer		MANGLE(UnmapBuffer)
++#define glUnmapObjectBufferATI		MANGLE(UnmapObjectBufferATI)
++#define glUpdateObjectBufferATI		MANGLE(UpdateObjectBufferATI)
++#define glUseProgram		MANGLE(UseProgram)
++#define glUseProgramObjectARB		MANGLE(UseProgramObjectARB)
++#define glValidateProgramARB		MANGLE(ValidateProgramARB)
++#define glValidateProgram		MANGLE(ValidateProgram)
++#define glVariantArrayObjectATI		MANGLE(VariantArrayObjectATI)
++#define glVariantbvEXT		MANGLE(VariantbvEXT)
++#define glVariantdvEXT		MANGLE(VariantdvEXT)
++#define glVariantfvEXT		MANGLE(VariantfvEXT)
++#define glVariantivEXT		MANGLE(VariantivEXT)
++#define glVariantPointerEXT		MANGLE(VariantPointerEXT)
++#define glVariantsvEXT		MANGLE(VariantsvEXT)
++#define glVariantubvEXT		MANGLE(VariantubvEXT)
++#define glVariantuivEXT		MANGLE(VariantuivEXT)
++#define glVariantusvEXT		MANGLE(VariantusvEXT)
++#define glVertex2d		MANGLE(Vertex2d)
++#define glVertex2dv		MANGLE(Vertex2dv)
++#define glVertex2f		MANGLE(Vertex2f)
++#define glVertex2fv		MANGLE(Vertex2fv)
++#define glVertex2hNV		MANGLE(Vertex2hNV)
++#define glVertex2hvNV		MANGLE(Vertex2hvNV)
++#define glVertex2i		MANGLE(Vertex2i)
++#define glVertex2iv		MANGLE(Vertex2iv)
++#define glVertex2s		MANGLE(Vertex2s)
++#define glVertex2sv		MANGLE(Vertex2sv)
++#define glVertex3d		MANGLE(Vertex3d)
++#define glVertex3dv		MANGLE(Vertex3dv)
++#define glVertex3f		MANGLE(Vertex3f)
++#define glVertex3fv		MANGLE(Vertex3fv)
++#define glVertex3hNV		MANGLE(Vertex3hNV)
++#define glVertex3hvNV		MANGLE(Vertex3hvNV)
++#define glVertex3i		MANGLE(Vertex3i)
++#define glVertex3iv		MANGLE(Vertex3iv)
++#define glVertex3s		MANGLE(Vertex3s)
++#define glVertex3sv		MANGLE(Vertex3sv)
++#define glVertex4d		MANGLE(Vertex4d)
++#define glVertex4dv		MANGLE(Vertex4dv)
++#define glVertex4f		MANGLE(Vertex4f)
++#define glVertex4fv		MANGLE(Vertex4fv)
++#define glVertex4hNV		MANGLE(Vertex4hNV)
++#define glVertex4hvNV		MANGLE(Vertex4hvNV)
++#define glVertex4i		MANGLE(Vertex4i)
++#define glVertex4iv		MANGLE(Vertex4iv)
++#define glVertex4s		MANGLE(Vertex4s)
++#define glVertex4sv		MANGLE(Vertex4sv)
++#define glVertexArrayParameteriAPPLE		MANGLE(VertexArrayParameteriAPPLE)
++#define glVertexArrayRangeAPPLE		MANGLE(VertexArrayRangeAPPLE)
++#define glVertexArrayRangeNV		MANGLE(VertexArrayRangeNV)
++#define glVertexAttrib1dARB		MANGLE(VertexAttrib1dARB)
++#define glVertexAttrib1d		MANGLE(VertexAttrib1d)
++#define glVertexAttrib1dNV		MANGLE(VertexAttrib1dNV)
++#define glVertexAttrib1dvARB		MANGLE(VertexAttrib1dvARB)
++#define glVertexAttrib1dv		MANGLE(VertexAttrib1dv)
++#define glVertexAttrib1dvNV		MANGLE(VertexAttrib1dvNV)
++#define glVertexAttrib1fARB		MANGLE(VertexAttrib1fARB)
++#define glVertexAttrib1f		MANGLE(VertexAttrib1f)
++#define glVertexAttrib1fNV		MANGLE(VertexAttrib1fNV)
++#define glVertexAttrib1fvARB		MANGLE(VertexAttrib1fvARB)
++#define glVertexAttrib1fv		MANGLE(VertexAttrib1fv)
++#define glVertexAttrib1fvNV		MANGLE(VertexAttrib1fvNV)
++#define glVertexAttrib1hNV		MANGLE(VertexAttrib1hNV)
++#define glVertexAttrib1hvNV		MANGLE(VertexAttrib1hvNV)
++#define glVertexAttrib1sARB		MANGLE(VertexAttrib1sARB)
++#define glVertexAttrib1s		MANGLE(VertexAttrib1s)
++#define glVertexAttrib1sNV		MANGLE(VertexAttrib1sNV)
++#define glVertexAttrib1svARB		MANGLE(VertexAttrib1svARB)
++#define glVertexAttrib1sv		MANGLE(VertexAttrib1sv)
++#define glVertexAttrib1svNV		MANGLE(VertexAttrib1svNV)
++#define glVertexAttrib2dARB		MANGLE(VertexAttrib2dARB)
++#define glVertexAttrib2d		MANGLE(VertexAttrib2d)
++#define glVertexAttrib2dNV		MANGLE(VertexAttrib2dNV)
++#define glVertexAttrib2dvARB		MANGLE(VertexAttrib2dvARB)
++#define glVertexAttrib2dv		MANGLE(VertexAttrib2dv)
++#define glVertexAttrib2dvNV		MANGLE(VertexAttrib2dvNV)
++#define glVertexAttrib2fARB		MANGLE(VertexAttrib2fARB)
++#define glVertexAttrib2f		MANGLE(VertexAttrib2f)
++#define glVertexAttrib2fNV		MANGLE(VertexAttrib2fNV)
++#define glVertexAttrib2fvARB		MANGLE(VertexAttrib2fvARB)
++#define glVertexAttrib2fv		MANGLE(VertexAttrib2fv)
++#define glVertexAttrib2fvNV		MANGLE(VertexAttrib2fvNV)
++#define glVertexAttrib2hNV		MANGLE(VertexAttrib2hNV)
++#define glVertexAttrib2hvNV		MANGLE(VertexAttrib2hvNV)
++#define glVertexAttrib2sARB		MANGLE(VertexAttrib2sARB)
++#define glVertexAttrib2s		MANGLE(VertexAttrib2s)
++#define glVertexAttrib2sNV		MANGLE(VertexAttrib2sNV)
++#define glVertexAttrib2svARB		MANGLE(VertexAttrib2svARB)
++#define glVertexAttrib2sv		MANGLE(VertexAttrib2sv)
++#define glVertexAttrib2svNV		MANGLE(VertexAttrib2svNV)
++#define glVertexAttrib3dARB		MANGLE(VertexAttrib3dARB)
++#define glVertexAttrib3d		MANGLE(VertexAttrib3d)
++#define glVertexAttrib3dNV		MANGLE(VertexAttrib3dNV)
++#define glVertexAttrib3dvARB		MANGLE(VertexAttrib3dvARB)
++#define glVertexAttrib3dv		MANGLE(VertexAttrib3dv)
++#define glVertexAttrib3dvNV		MANGLE(VertexAttrib3dvNV)
++#define glVertexAttrib3fARB		MANGLE(VertexAttrib3fARB)
++#define glVertexAttrib3f		MANGLE(VertexAttrib3f)
++#define glVertexAttrib3fNV		MANGLE(VertexAttrib3fNV)
++#define glVertexAttrib3fvARB		MANGLE(VertexAttrib3fvARB)
++#define glVertexAttrib3fv		MANGLE(VertexAttrib3fv)
++#define glVertexAttrib3fvNV		MANGLE(VertexAttrib3fvNV)
++#define glVertexAttrib3hNV		MANGLE(VertexAttrib3hNV)
++#define glVertexAttrib3hvNV		MANGLE(VertexAttrib3hvNV)
++#define glVertexAttrib3sARB		MANGLE(VertexAttrib3sARB)
++#define glVertexAttrib3s		MANGLE(VertexAttrib3s)
++#define glVertexAttrib3sNV		MANGLE(VertexAttrib3sNV)
++#define glVertexAttrib3svARB		MANGLE(VertexAttrib3svARB)
++#define glVertexAttrib3sv		MANGLE(VertexAttrib3sv)
++#define glVertexAttrib3svNV		MANGLE(VertexAttrib3svNV)
++#define glVertexAttrib4bvARB		MANGLE(VertexAttrib4bvARB)
++#define glVertexAttrib4bv		MANGLE(VertexAttrib4bv)
++#define glVertexAttrib4dARB		MANGLE(VertexAttrib4dARB)
++#define glVertexAttrib4d		MANGLE(VertexAttrib4d)
++#define glVertexAttrib4dNV		MANGLE(VertexAttrib4dNV)
++#define glVertexAttrib4dvARB		MANGLE(VertexAttrib4dvARB)
++#define glVertexAttrib4dv		MANGLE(VertexAttrib4dv)
++#define glVertexAttrib4dvNV		MANGLE(VertexAttrib4dvNV)
++#define glVertexAttrib4fARB		MANGLE(VertexAttrib4fARB)
++#define glVertexAttrib4f		MANGLE(VertexAttrib4f)
++#define glVertexAttrib4fNV		MANGLE(VertexAttrib4fNV)
++#define glVertexAttrib4fvARB		MANGLE(VertexAttrib4fvARB)
++#define glVertexAttrib4fv		MANGLE(VertexAttrib4fv)
++#define glVertexAttrib4fvNV		MANGLE(VertexAttrib4fvNV)
++#define glVertexAttrib4hNV		MANGLE(VertexAttrib4hNV)
++#define glVertexAttrib4hvNV		MANGLE(VertexAttrib4hvNV)
++#define glVertexAttrib4ivARB		MANGLE(VertexAttrib4ivARB)
++#define glVertexAttrib4iv		MANGLE(VertexAttrib4iv)
++#define glVertexAttrib4NbvARB		MANGLE(VertexAttrib4NbvARB)
++#define glVertexAttrib4Nbv		MANGLE(VertexAttrib4Nbv)
++#define glVertexAttrib4NivARB		MANGLE(VertexAttrib4NivARB)
++#define glVertexAttrib4Niv		MANGLE(VertexAttrib4Niv)
++#define glVertexAttrib4NsvARB		MANGLE(VertexAttrib4NsvARB)
++#define glVertexAttrib4Nsv		MANGLE(VertexAttrib4Nsv)
++#define glVertexAttrib4NubARB		MANGLE(VertexAttrib4NubARB)
++#define glVertexAttrib4Nub		MANGLE(VertexAttrib4Nub)
++#define glVertexAttrib4NubvARB		MANGLE(VertexAttrib4NubvARB)
++#define glVertexAttrib4Nubv		MANGLE(VertexAttrib4Nubv)
++#define glVertexAttrib4NuivARB		MANGLE(VertexAttrib4NuivARB)
++#define glVertexAttrib4Nuiv		MANGLE(VertexAttrib4Nuiv)
++#define glVertexAttrib4NusvARB		MANGLE(VertexAttrib4NusvARB)
++#define glVertexAttrib4Nusv		MANGLE(VertexAttrib4Nusv)
++#define glVertexAttrib4sARB		MANGLE(VertexAttrib4sARB)
++#define glVertexAttrib4s		MANGLE(VertexAttrib4s)
++#define glVertexAttrib4sNV		MANGLE(VertexAttrib4sNV)
++#define glVertexAttrib4svARB		MANGLE(VertexAttrib4svARB)
++#define glVertexAttrib4sv		MANGLE(VertexAttrib4sv)
++#define glVertexAttrib4svNV		MANGLE(VertexAttrib4svNV)
++#define glVertexAttrib4ubNV		MANGLE(VertexAttrib4ubNV)
++#define glVertexAttrib4ubvARB		MANGLE(VertexAttrib4ubvARB)
++#define glVertexAttrib4ubv		MANGLE(VertexAttrib4ubv)
++#define glVertexAttrib4ubvNV		MANGLE(VertexAttrib4ubvNV)
++#define glVertexAttrib4uivARB		MANGLE(VertexAttrib4uivARB)
++#define glVertexAttrib4uiv		MANGLE(VertexAttrib4uiv)
++#define glVertexAttrib4usvARB		MANGLE(VertexAttrib4usvARB)
++#define glVertexAttrib4usv		MANGLE(VertexAttrib4usv)
++#define glVertexAttribArrayObjectATI		MANGLE(VertexAttribArrayObjectATI)
++#define glVertexAttribI1iEXT		MANGLE(VertexAttribI1iEXT)
++#define glVertexAttribI1ivEXT		MANGLE(VertexAttribI1ivEXT)
++#define glVertexAttribI1uiEXT		MANGLE(VertexAttribI1uiEXT)
++#define glVertexAttribI1uivEXT		MANGLE(VertexAttribI1uivEXT)
++#define glVertexAttribI2iEXT		MANGLE(VertexAttribI2iEXT)
++#define glVertexAttribI2ivEXT		MANGLE(VertexAttribI2ivEXT)
++#define glVertexAttribI2uiEXT		MANGLE(VertexAttribI2uiEXT)
++#define glVertexAttribI2uivEXT		MANGLE(VertexAttribI2uivEXT)
++#define glVertexAttribI3iEXT		MANGLE(VertexAttribI3iEXT)
++#define glVertexAttribI3ivEXT		MANGLE(VertexAttribI3ivEXT)
++#define glVertexAttribI3uiEXT		MANGLE(VertexAttribI3uiEXT)
++#define glVertexAttribI3uivEXT		MANGLE(VertexAttribI3uivEXT)
++#define glVertexAttribI4bvEXT		MANGLE(VertexAttribI4bvEXT)
++#define glVertexAttribI4iEXT		MANGLE(VertexAttribI4iEXT)
++#define glVertexAttribI4ivEXT		MANGLE(VertexAttribI4ivEXT)
++#define glVertexAttribI4svEXT		MANGLE(VertexAttribI4svEXT)
++#define glVertexAttribI4ubvEXT		MANGLE(VertexAttribI4ubvEXT)
++#define glVertexAttribI4uiEXT		MANGLE(VertexAttribI4uiEXT)
++#define glVertexAttribI4uivEXT		MANGLE(VertexAttribI4uivEXT)
++#define glVertexAttribI4usvEXT		MANGLE(VertexAttribI4usvEXT)
++#define glVertexAttribIPointerEXT		MANGLE(VertexAttribIPointerEXT)
++#define glVertexAttribPointerARB		MANGLE(VertexAttribPointerARB)
++#define glVertexAttribPointer		MANGLE(VertexAttribPointer)
++#define glVertexAttribPointerNV		MANGLE(VertexAttribPointerNV)
++#define glVertexAttribs1dvNV		MANGLE(VertexAttribs1dvNV)
++#define glVertexAttribs1fvNV		MANGLE(VertexAttribs1fvNV)
++#define glVertexAttribs1hvNV		MANGLE(VertexAttribs1hvNV)
++#define glVertexAttribs1svNV		MANGLE(VertexAttribs1svNV)
++#define glVertexAttribs2dvNV		MANGLE(VertexAttribs2dvNV)
++#define glVertexAttribs2fvNV		MANGLE(VertexAttribs2fvNV)
++#define glVertexAttribs2hvNV		MANGLE(VertexAttribs2hvNV)
++#define glVertexAttribs2svNV		MANGLE(VertexAttribs2svNV)
++#define glVertexAttribs3dvNV		MANGLE(VertexAttribs3dvNV)
++#define glVertexAttribs3fvNV		MANGLE(VertexAttribs3fvNV)
++#define glVertexAttribs3hvNV		MANGLE(VertexAttribs3hvNV)
++#define glVertexAttribs3svNV		MANGLE(VertexAttribs3svNV)
++#define glVertexAttribs4dvNV		MANGLE(VertexAttribs4dvNV)
++#define glVertexAttribs4fvNV		MANGLE(VertexAttribs4fvNV)
++#define glVertexAttribs4hvNV		MANGLE(VertexAttribs4hvNV)
++#define glVertexAttribs4svNV		MANGLE(VertexAttribs4svNV)
++#define glVertexAttribs4ubvNV		MANGLE(VertexAttribs4ubvNV)
++#define glVertexBlendARB		MANGLE(VertexBlendARB)
++#define glVertexBlendEnvfATI		MANGLE(VertexBlendEnvfATI)
++#define glVertexBlendEnviATI		MANGLE(VertexBlendEnviATI)
++#define glVertexPointerEXT		MANGLE(VertexPointerEXT)
++#define glVertexPointerListIBM		MANGLE(VertexPointerListIBM)
++#define glVertexPointer		MANGLE(VertexPointer)
++#define glVertexPointervINTEL		MANGLE(VertexPointervINTEL)
++#define glVertexStream1dATI		MANGLE(VertexStream1dATI)
++#define glVertexStream1dvATI		MANGLE(VertexStream1dvATI)
++#define glVertexStream1fATI		MANGLE(VertexStream1fATI)
++#define glVertexStream1fvATI		MANGLE(VertexStream1fvATI)
++#define glVertexStream1iATI		MANGLE(VertexStream1iATI)
++#define glVertexStream1ivATI		MANGLE(VertexStream1ivATI)
++#define glVertexStream1sATI		MANGLE(VertexStream1sATI)
++#define glVertexStream1svATI		MANGLE(VertexStream1svATI)
++#define glVertexStream2dATI		MANGLE(VertexStream2dATI)
++#define glVertexStream2dvATI		MANGLE(VertexStream2dvATI)
++#define glVertexStream2fATI		MANGLE(VertexStream2fATI)
++#define glVertexStream2fvATI		MANGLE(VertexStream2fvATI)
++#define glVertexStream2iATI		MANGLE(VertexStream2iATI)
++#define glVertexStream2ivATI		MANGLE(VertexStream2ivATI)
++#define glVertexStream2sATI		MANGLE(VertexStream2sATI)
++#define glVertexStream2svATI		MANGLE(VertexStream2svATI)
++#define glVertexStream3dATI		MANGLE(VertexStream3dATI)
++#define glVertexStream3dvATI		MANGLE(VertexStream3dvATI)
++#define glVertexStream3fATI		MANGLE(VertexStream3fATI)
++#define glVertexStream3fvATI		MANGLE(VertexStream3fvATI)
++#define glVertexStream3iATI		MANGLE(VertexStream3iATI)
++#define glVertexStream3ivATI		MANGLE(VertexStream3ivATI)
++#define glVertexStream3sATI		MANGLE(VertexStream3sATI)
++#define glVertexStream3svATI		MANGLE(VertexStream3svATI)
++#define glVertexStream4dATI		MANGLE(VertexStream4dATI)
++#define glVertexStream4dvATI		MANGLE(VertexStream4dvATI)
++#define glVertexStream4fATI		MANGLE(VertexStream4fATI)
++#define glVertexStream4fvATI		MANGLE(VertexStream4fvATI)
++#define glVertexStream4iATI		MANGLE(VertexStream4iATI)
++#define glVertexStream4ivATI		MANGLE(VertexStream4ivATI)
++#define glVertexStream4sATI		MANGLE(VertexStream4sATI)
++#define glVertexStream4svATI		MANGLE(VertexStream4svATI)
++#define glVertexWeightfEXT		MANGLE(VertexWeightfEXT)
++#define glVertexWeightfvEXT		MANGLE(VertexWeightfvEXT)
++#define glVertexWeighthNV		MANGLE(VertexWeighthNV)
++#define glVertexWeighthvNV		MANGLE(VertexWeighthvNV)
++#define glVertexWeightPointerEXT		MANGLE(VertexWeightPointerEXT)
++#define glViewport		MANGLE(Viewport)
++#define glWeightbvARB		MANGLE(WeightbvARB)
++#define glWeightdvARB		MANGLE(WeightdvARB)
++#define glWeightfvARB		MANGLE(WeightfvARB)
++#define glWeightivARB		MANGLE(WeightivARB)
++#define glWeightPointerARB		MANGLE(WeightPointerARB)
++#define glWeightsvARB		MANGLE(WeightsvARB)
++#define glWeightubvARB		MANGLE(WeightubvARB)
++#define glWeightuivARB		MANGLE(WeightuivARB)
++#define glWeightusvARB		MANGLE(WeightusvARB)
++#define glWindowPos2dARB		MANGLE(WindowPos2dARB)
++#define glWindowPos2d		MANGLE(WindowPos2d)
++#define glWindowPos2dMESA		MANGLE(WindowPos2dMESA)
++#define glWindowPos2dvARB		MANGLE(WindowPos2dvARB)
++#define glWindowPos2dv		MANGLE(WindowPos2dv)
++#define glWindowPos2dvMESA		MANGLE(WindowPos2dvMESA)
++#define glWindowPos2fARB		MANGLE(WindowPos2fARB)
++#define glWindowPos2f		MANGLE(WindowPos2f)
++#define glWindowPos2fMESA		MANGLE(WindowPos2fMESA)
++#define glWindowPos2fvARB		MANGLE(WindowPos2fvARB)
++#define glWindowPos2fv		MANGLE(WindowPos2fv)
++#define glWindowPos2fvMESA		MANGLE(WindowPos2fvMESA)
++#define glWindowPos2iARB		MANGLE(WindowPos2iARB)
++#define glWindowPos2i		MANGLE(WindowPos2i)
++#define glWindowPos2iMESA		MANGLE(WindowPos2iMESA)
++#define glWindowPos2ivARB		MANGLE(WindowPos2ivARB)
++#define glWindowPos2iv		MANGLE(WindowPos2iv)
++#define glWindowPos2ivMESA		MANGLE(WindowPos2ivMESA)
++#define glWindowPos2sARB		MANGLE(WindowPos2sARB)
++#define glWindowPos2s		MANGLE(WindowPos2s)
++#define glWindowPos2sMESA		MANGLE(WindowPos2sMESA)
++#define glWindowPos2svARB		MANGLE(WindowPos2svARB)
++#define glWindowPos2sv		MANGLE(WindowPos2sv)
++#define glWindowPos2svMESA		MANGLE(WindowPos2svMESA)
++#define glWindowPos3dARB		MANGLE(WindowPos3dARB)
++#define glWindowPos3d		MANGLE(WindowPos3d)
++#define glWindowPos3dMESA		MANGLE(WindowPos3dMESA)
++#define glWindowPos3dvARB		MANGLE(WindowPos3dvARB)
++#define glWindowPos3dv		MANGLE(WindowPos3dv)
++#define glWindowPos3dvMESA		MANGLE(WindowPos3dvMESA)
++#define glWindowPos3fARB		MANGLE(WindowPos3fARB)
++#define glWindowPos3f		MANGLE(WindowPos3f)
++#define glWindowPos3fMESA		MANGLE(WindowPos3fMESA)
++#define glWindowPos3fvARB		MANGLE(WindowPos3fvARB)
++#define glWindowPos3fv		MANGLE(WindowPos3fv)
++#define glWindowPos3fvMESA		MANGLE(WindowPos3fvMESA)
++#define glWindowPos3iARB		MANGLE(WindowPos3iARB)
++#define glWindowPos3i		MANGLE(WindowPos3i)
++#define glWindowPos3iMESA		MANGLE(WindowPos3iMESA)
++#define glWindowPos3ivARB		MANGLE(WindowPos3ivARB)
++#define glWindowPos3iv		MANGLE(WindowPos3iv)
++#define glWindowPos3ivMESA		MANGLE(WindowPos3ivMESA)
++#define glWindowPos3sARB		MANGLE(WindowPos3sARB)
++#define glWindowPos3s		MANGLE(WindowPos3s)
++#define glWindowPos3sMESA		MANGLE(WindowPos3sMESA)
++#define glWindowPos3svARB		MANGLE(WindowPos3svARB)
++#define glWindowPos3sv		MANGLE(WindowPos3sv)
++#define glWindowPos3svMESA		MANGLE(WindowPos3svMESA)
++#define glWindowPos4dMESA		MANGLE(WindowPos4dMESA)
++#define glWindowPos4dvMESA		MANGLE(WindowPos4dvMESA)
++#define glWindowPos4fMESA		MANGLE(WindowPos4fMESA)
++#define glWindowPos4fvMESA		MANGLE(WindowPos4fvMESA)
++#define glWindowPos4iMESA		MANGLE(WindowPos4iMESA)
++#define glWindowPos4ivMESA		MANGLE(WindowPos4ivMESA)
++#define glWindowPos4sMESA		MANGLE(WindowPos4sMESA)
++#define glWindowPos4svMESA		MANGLE(WindowPos4svMESA)
++#define glWriteMaskEXT		MANGLE(WriteMaskEXT)
++
++#endif /* GL_MANGLE_H */
+--- /dev/null	
++++ Mesa/inc/gl.h	
+@@ -0,0 +1,2252 @@
++/*
++ * Mesa 3-D graphics library
++ * Version:  7.0
++ *
++ * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included
++ * in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++
++#ifndef __gl_h_
++#define __gl_h_
++
++#if defined(USE_MGL_NAMESPACE)
++#include "gl_mangle.h"
++#endif
++
++
++/**********************************************************************
++ * Begin system-specific stuff. Do not do any of this when building
++ * for SciTech SNAP, as this is all done before this header file is
++ * included. 
++ */
++#if !defined(__SCITECH_SNAP__)
++
++#if defined(__BEOS__)
++#include <stdlib.h>     /* to get some BeOS-isms */
++#endif
++
++#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO))
++#define OPENSTEP
++#endif
++
++#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__)
++#define __WIN32__
++#endif
++
++#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__))
++#  if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
++#    define GLAPI __declspec(dllexport)
++#  elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
++#    define GLAPI __declspec(dllimport)
++#  else /* for use with static link lib build of Win32 edition only */
++#    define GLAPI extern
++#  endif /* _STATIC_MESA support */
++#  define GLAPIENTRY __stdcall
++#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */
++#  define GLAPI extern
++#  define GLAPIENTRY __stdcall
++#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
++#  define GLAPI __attribute__((visibility("default")))
++#  define GLAPIENTRY
++#endif /* WIN32 && !CYGWIN */
++
++#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__)
++#  define PRAGMA_EXPORT_SUPPORTED		1
++#endif
++
++/*
++ * WINDOWS: Include windows.h here to define APIENTRY.
++ * It is also useful when applications include this file by
++ * including only glut.h, since glut.h depends on windows.h.
++ * Applications needing to include windows.h with parms other
++ * than "WIN32_LEAN_AND_MEAN" may include windows.h before
++ * glut.h or gl.h.
++ */
++#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
++#define WIN32_LEAN_AND_MEAN 1
++#include <windows.h>
++#endif
++
++#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) \
++     && !defined(OPENSTEP) && !defined(__CYGWIN__) || defined(__MINGW32__)
++#include <GL/mesa_wgl.h>
++#endif
++
++#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED
++#pragma import on
++#endif
++
++#ifndef GLAPI
++#define GLAPI extern
++#endif
++
++#ifndef GLAPIENTRY
++#define GLAPIENTRY
++#endif
++
++#ifndef APIENTRY
++#define APIENTRY GLAPIENTRY
++#endif
++
++/* "P" suffix to be used for a pointer to a function */
++#ifndef APIENTRYP
++#define APIENTRYP APIENTRY *
++#endif
++
++#ifndef GLAPIENTRYP
++#define GLAPIENTRYP GLAPIENTRY *
++#endif
++
++#ifdef CENTERLINE_CLPP
++#define signed
++#endif
++
++#if defined(PRAGMA_EXPORT_SUPPORTED)
++#pragma export on
++#endif
++
++#endif /* !__SCITECH_SNAP__ */
++/*
++ * End system-specific stuff.
++ **********************************************************************/
++
++
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++
++
++#define GL_VERSION_1_1   1
++#define GL_VERSION_1_2   1
++#define GL_VERSION_1_3   1
++#define GL_ARB_imaging   1
++
++
++/*
++ * Datatypes
++ */
++typedef unsigned int	GLenum;
++typedef unsigned char	GLboolean;
++typedef unsigned int	GLbitfield;
++typedef void		GLvoid;
++typedef signed char	GLbyte;		/* 1-byte signed */
++typedef short		GLshort;	/* 2-byte signed */
++typedef int		GLint;		/* 4-byte signed */
++typedef unsigned char	GLubyte;	/* 1-byte unsigned */
++typedef unsigned short	GLushort;	/* 2-byte unsigned */
++typedef unsigned int	GLuint;		/* 4-byte unsigned */
++typedef int		GLsizei;	/* 4-byte signed */
++typedef float		GLfloat;	/* single precision float */
++typedef float		GLclampf;	/* single precision float in [0,1] */
++typedef double		GLdouble;	/* double precision float */
++typedef double		GLclampd;	/* double precision float in [0,1] */
++
++
++
++/*
++ * Constants
++ */
++
++/* Boolean values */
++#define GL_FALSE				0x0
++#define GL_TRUE					0x1
++
++/* Data types */
++#define GL_BYTE					0x1400
++#define GL_UNSIGNED_BYTE			0x1401
++#define GL_SHORT				0x1402
++#define GL_UNSIGNED_SHORT			0x1403
++#define GL_INT					0x1404
++#define GL_UNSIGNED_INT				0x1405
++#define GL_FLOAT				0x1406
++#define GL_2_BYTES				0x1407
++#define GL_3_BYTES				0x1408
++#define GL_4_BYTES				0x1409
++#define GL_DOUBLE				0x140A
++
++/* Primitives */
++#define GL_POINTS				0x0000
++#define GL_LINES				0x0001
++#define GL_LINE_LOOP				0x0002
++#define GL_LINE_STRIP				0x0003
++#define GL_TRIANGLES				0x0004
++#define GL_TRIANGLE_STRIP			0x0005
++#define GL_TRIANGLE_FAN				0x0006
++#define GL_QUADS				0x0007
++#define GL_QUAD_STRIP				0x0008
++#define GL_POLYGON				0x0009
++
++/* Vertex Arrays */
++#define GL_VERTEX_ARRAY				0x8074
++#define GL_NORMAL_ARRAY				0x8075
++#define GL_COLOR_ARRAY				0x8076
++#define GL_INDEX_ARRAY				0x8077
++#define GL_TEXTURE_COORD_ARRAY			0x8078
++#define GL_EDGE_FLAG_ARRAY			0x8079
++#define GL_VERTEX_ARRAY_SIZE			0x807A
++#define GL_VERTEX_ARRAY_TYPE			0x807B
++#define GL_VERTEX_ARRAY_STRIDE			0x807C
++#define GL_NORMAL_ARRAY_TYPE			0x807E
++#define GL_NORMAL_ARRAY_STRIDE			0x807F
++#define GL_COLOR_ARRAY_SIZE			0x8081
++#define GL_COLOR_ARRAY_TYPE			0x8082
++#define GL_COLOR_ARRAY_STRIDE			0x8083
++#define GL_INDEX_ARRAY_TYPE			0x8085
++#define GL_INDEX_ARRAY_STRIDE			0x8086
++#define GL_TEXTURE_COORD_ARRAY_SIZE		0x8088
++#define GL_TEXTURE_COORD_ARRAY_TYPE		0x8089
++#define GL_TEXTURE_COORD_ARRAY_STRIDE		0x808A
++#define GL_EDGE_FLAG_ARRAY_STRIDE		0x808C
++#define GL_VERTEX_ARRAY_POINTER			0x808E
++#define GL_NORMAL_ARRAY_POINTER			0x808F
++#define GL_COLOR_ARRAY_POINTER			0x8090
++#define GL_INDEX_ARRAY_POINTER			0x8091
++#define GL_TEXTURE_COORD_ARRAY_POINTER		0x8092
++#define GL_EDGE_FLAG_ARRAY_POINTER		0x8093
++#define GL_V2F					0x2A20
++#define GL_V3F					0x2A21
++#define GL_C4UB_V2F				0x2A22
++#define GL_C4UB_V3F				0x2A23
++#define GL_C3F_V3F				0x2A24
++#define GL_N3F_V3F				0x2A25
++#define GL_C4F_N3F_V3F				0x2A26
++#define GL_T2F_V3F				0x2A27
++#define GL_T4F_V4F				0x2A28
++#define GL_T2F_C4UB_V3F				0x2A29
++#define GL_T2F_C3F_V3F				0x2A2A
++#define GL_T2F_N3F_V3F				0x2A2B
++#define GL_T2F_C4F_N3F_V3F			0x2A2C
++#define GL_T4F_C4F_N3F_V4F			0x2A2D
++
++/* Matrix Mode */
++#define GL_MATRIX_MODE				0x0BA0
++#define GL_MODELVIEW				0x1700
++#define GL_PROJECTION				0x1701
++#define GL_TEXTURE				0x1702
++
++/* Points */
++#define GL_POINT_SMOOTH				0x0B10
++#define GL_POINT_SIZE				0x0B11
++#define GL_POINT_SIZE_GRANULARITY 		0x0B13
++#define GL_POINT_SIZE_RANGE			0x0B12
++
++/* Lines */
++#define GL_LINE_SMOOTH				0x0B20
++#define GL_LINE_STIPPLE				0x0B24
++#define GL_LINE_STIPPLE_PATTERN			0x0B25
++#define GL_LINE_STIPPLE_REPEAT			0x0B26
++#define GL_LINE_WIDTH				0x0B21
++#define GL_LINE_WIDTH_GRANULARITY		0x0B23
++#define GL_LINE_WIDTH_RANGE			0x0B22
++
++/* Polygons */
++#define GL_POINT				0x1B00
++#define GL_LINE					0x1B01
++#define GL_FILL					0x1B02
++#define GL_CW					0x0900
++#define GL_CCW					0x0901
++#define GL_FRONT				0x0404
++#define GL_BACK					0x0405
++#define GL_POLYGON_MODE				0x0B40
++#define GL_POLYGON_SMOOTH			0x0B41
++#define GL_POLYGON_STIPPLE			0x0B42
++#define GL_EDGE_FLAG				0x0B43
++#define GL_CULL_FACE				0x0B44
++#define GL_CULL_FACE_MODE			0x0B45
++#define GL_FRONT_FACE				0x0B46
++#define GL_POLYGON_OFFSET_FACTOR		0x8038
++#define GL_POLYGON_OFFSET_UNITS			0x2A00
++#define GL_POLYGON_OFFSET_POINT			0x2A01
++#define GL_POLYGON_OFFSET_LINE			0x2A02
++#define GL_POLYGON_OFFSET_FILL			0x8037
++
++/* Display Lists */
++#define GL_COMPILE				0x1300
++#define GL_COMPILE_AND_EXECUTE			0x1301
++#define GL_LIST_BASE				0x0B32
++#define GL_LIST_INDEX				0x0B33
++#define GL_LIST_MODE				0x0B30
++
++/* Depth buffer */
++#define GL_NEVER				0x0200
++#define GL_LESS					0x0201
++#define GL_EQUAL				0x0202
++#define GL_LEQUAL				0x0203
++#define GL_GREATER				0x0204
++#define GL_NOTEQUAL				0x0205
++#define GL_GEQUAL				0x0206
++#define GL_ALWAYS				0x0207
++#define GL_DEPTH_TEST				0x0B71
++#define GL_DEPTH_BITS				0x0D56
++#define GL_DEPTH_CLEAR_VALUE			0x0B73
++#define GL_DEPTH_FUNC				0x0B74
++#define GL_DEPTH_RANGE				0x0B70
++#define GL_DEPTH_WRITEMASK			0x0B72
++#define GL_DEPTH_COMPONENT			0x1902
++
++/* Lighting */
++#define GL_LIGHTING				0x0B50
++#define GL_LIGHT0				0x4000
++#define GL_LIGHT1				0x4001
++#define GL_LIGHT2				0x4002
++#define GL_LIGHT3				0x4003
++#define GL_LIGHT4				0x4004
++#define GL_LIGHT5				0x4005
++#define GL_LIGHT6				0x4006
++#define GL_LIGHT7				0x4007
++#define GL_SPOT_EXPONENT			0x1205
++#define GL_SPOT_CUTOFF				0x1206
++#define GL_CONSTANT_ATTENUATION			0x1207
++#define GL_LINEAR_ATTENUATION			0x1208
++#define GL_QUADRATIC_ATTENUATION		0x1209
++#define GL_AMBIENT				0x1200
++#define GL_DIFFUSE				0x1201
++#define GL_SPECULAR				0x1202
++#define GL_SHININESS				0x1601
++#define GL_EMISSION				0x1600
++#define GL_POSITION				0x1203
++#define GL_SPOT_DIRECTION			0x1204
++#define GL_AMBIENT_AND_DIFFUSE			0x1602
++#define GL_COLOR_INDEXES			0x1603
++#define GL_LIGHT_MODEL_TWO_SIDE			0x0B52
++#define GL_LIGHT_MODEL_LOCAL_VIEWER		0x0B51
++#define GL_LIGHT_MODEL_AMBIENT			0x0B53
++#define GL_FRONT_AND_BACK			0x0408
++#define GL_SHADE_MODEL				0x0B54
++#define GL_FLAT					0x1D00
++#define GL_SMOOTH				0x1D01
++#define GL_COLOR_MATERIAL			0x0B57
++#define GL_COLOR_MATERIAL_FACE			0x0B55
++#define GL_COLOR_MATERIAL_PARAMETER		0x0B56
++#define GL_NORMALIZE				0x0BA1
++
++/* User clipping planes */
++#define GL_CLIP_PLANE0				0x3000
++#define GL_CLIP_PLANE1				0x3001
++#define GL_CLIP_PLANE2				0x3002
++#define GL_CLIP_PLANE3				0x3003
++#define GL_CLIP_PLANE4				0x3004
++#define GL_CLIP_PLANE5				0x3005
++
++/* Accumulation buffer */
++#define GL_ACCUM_RED_BITS			0x0D58
++#define GL_ACCUM_GREEN_BITS			0x0D59
++#define GL_ACCUM_BLUE_BITS			0x0D5A
++#define GL_ACCUM_ALPHA_BITS			0x0D5B
++#define GL_ACCUM_CLEAR_VALUE			0x0B80
++#define GL_ACCUM				0x0100
++#define GL_ADD					0x0104
++#define GL_LOAD					0x0101
++#define GL_MULT					0x0103
++#define GL_RETURN				0x0102
++
++/* Alpha testing */
++#define GL_ALPHA_TEST				0x0BC0
++#define GL_ALPHA_TEST_REF			0x0BC2
++#define GL_ALPHA_TEST_FUNC			0x0BC1
++
++/* Blending */
++#define GL_BLEND				0x0BE2
++#define GL_BLEND_SRC				0x0BE1
++#define GL_BLEND_DST				0x0BE0
++#define GL_ZERO					0x0
++#define GL_ONE					0x1
++#define GL_SRC_COLOR				0x0300
++#define GL_ONE_MINUS_SRC_COLOR			0x0301
++#define GL_SRC_ALPHA				0x0302
++#define GL_ONE_MINUS_SRC_ALPHA			0x0303
++#define GL_DST_ALPHA				0x0304
++#define GL_ONE_MINUS_DST_ALPHA			0x0305
++#define GL_DST_COLOR				0x0306
++#define GL_ONE_MINUS_DST_COLOR			0x0307
++#define GL_SRC_ALPHA_SATURATE			0x0308
++
++/* Render Mode */
++#define GL_FEEDBACK				0x1C01
++#define GL_RENDER				0x1C00
++#define GL_SELECT				0x1C02
++
++/* Feedback */
++#define GL_2D					0x0600
++#define GL_3D					0x0601
++#define GL_3D_COLOR				0x0602
++#define GL_3D_COLOR_TEXTURE			0x0603
++#define GL_4D_COLOR_TEXTURE			0x0604
++#define GL_POINT_TOKEN				0x0701
++#define GL_LINE_TOKEN				0x0702
++#define GL_LINE_RESET_TOKEN			0x0707
++#define GL_POLYGON_TOKEN			0x0703
++#define GL_BITMAP_TOKEN				0x0704
++#define GL_DRAW_PIXEL_TOKEN			0x0705
++#define GL_COPY_PIXEL_TOKEN			0x0706
++#define GL_PASS_THROUGH_TOKEN			0x0700
++#define GL_FEEDBACK_BUFFER_POINTER		0x0DF0
++#define GL_FEEDBACK_BUFFER_SIZE			0x0DF1
++#define GL_FEEDBACK_BUFFER_TYPE			0x0DF2
++
++/* Selection */
++#define GL_SELECTION_BUFFER_POINTER		0x0DF3
++#define GL_SELECTION_BUFFER_SIZE		0x0DF4
++
++/* Fog */
++#define GL_FOG					0x0B60
++#define GL_FOG_MODE				0x0B65
++#define GL_FOG_DENSITY				0x0B62
++#define GL_FOG_COLOR				0x0B66
++#define GL_FOG_INDEX				0x0B61
++#define GL_FOG_START				0x0B63
++#define GL_FOG_END				0x0B64
++#define GL_LINEAR				0x2601
++#define GL_EXP					0x0800
++#define GL_EXP2					0x0801
++
++/* Logic Ops */
++#define GL_LOGIC_OP				0x0BF1
++#define GL_INDEX_LOGIC_OP			0x0BF1
++#define GL_COLOR_LOGIC_OP			0x0BF2
++#define GL_LOGIC_OP_MODE			0x0BF0
++#define GL_CLEAR				0x1500
++#define GL_SET					0x150F
++#define GL_COPY					0x1503
++#define GL_COPY_INVERTED			0x150C
++#define GL_NOOP					0x1505
++#define GL_INVERT				0x150A
++#define GL_AND					0x1501
++#define GL_NAND					0x150E
++#define GL_OR					0x1507
++#define GL_NOR					0x1508
++#define GL_XOR					0x1506
++#define GL_EQUIV				0x1509
++#define GL_AND_REVERSE				0x1502
++#define GL_AND_INVERTED				0x1504
++#define GL_OR_REVERSE				0x150B
++#define GL_OR_INVERTED				0x150D
++
++/* Stencil */
++#define GL_STENCIL_BITS				0x0D57
++#define GL_STENCIL_TEST				0x0B90
++#define GL_STENCIL_CLEAR_VALUE			0x0B91
++#define GL_STENCIL_FUNC				0x0B92
++#define GL_STENCIL_VALUE_MASK			0x0B93
++#define GL_STENCIL_FAIL				0x0B94
++#define GL_STENCIL_PASS_DEPTH_FAIL		0x0B95
++#define GL_STENCIL_PASS_DEPTH_PASS		0x0B96
++#define GL_STENCIL_REF				0x0B97
++#define GL_STENCIL_WRITEMASK			0x0B98
++#define GL_STENCIL_INDEX			0x1901
++#define GL_KEEP					0x1E00
++#define GL_REPLACE				0x1E01
++#define GL_INCR					0x1E02
++#define GL_DECR					0x1E03
++
++/* Buffers, Pixel Drawing/Reading */
++#define GL_NONE					0x0
++#define GL_LEFT					0x0406
++#define GL_RIGHT				0x0407
++/*GL_FRONT					0x0404 */
++/*GL_BACK					0x0405 */
++/*GL_FRONT_AND_BACK				0x0408 */
++#define GL_FRONT_LEFT				0x0400
++#define GL_FRONT_RIGHT				0x0401
++#define GL_BACK_LEFT				0x0402
++#define GL_BACK_RIGHT				0x0403
++#define GL_AUX0					0x0409
++#define GL_AUX1					0x040A
++#define GL_AUX2					0x040B
++#define GL_AUX3					0x040C
++#define GL_COLOR_INDEX				0x1900
++#define GL_RED					0x1903
++#define GL_GREEN				0x1904
++#define GL_BLUE					0x1905
++#define GL_ALPHA				0x1906
++#define GL_LUMINANCE				0x1909
++#define GL_LUMINANCE_ALPHA			0x190A
++#define GL_ALPHA_BITS				0x0D55
++#define GL_RED_BITS				0x0D52
++#define GL_GREEN_BITS				0x0D53
++#define GL_BLUE_BITS				0x0D54
++#define GL_INDEX_BITS				0x0D51
++#define GL_SUBPIXEL_BITS			0x0D50
++#define GL_AUX_BUFFERS				0x0C00
++#define GL_READ_BUFFER				0x0C02
++#define GL_DRAW_BUFFER				0x0C01
++#define GL_DOUBLEBUFFER				0x0C32
++#define GL_STEREO				0x0C33
++#define GL_BITMAP				0x1A00
++#define GL_COLOR				0x1800
++#define GL_DEPTH				0x1801
++#define GL_STENCIL				0x1802
++#define GL_DITHER				0x0BD0
++#define GL_RGB					0x1907
++#define GL_RGBA					0x1908
++
++/* Implementation limits */
++#define GL_MAX_LIST_NESTING			0x0B31
++#define GL_MAX_EVAL_ORDER			0x0D30
++#define GL_MAX_LIGHTS				0x0D31
++#define GL_MAX_CLIP_PLANES			0x0D32
++#define GL_MAX_TEXTURE_SIZE			0x0D33
++#define GL_MAX_PIXEL_MAP_TABLE			0x0D34
++#define GL_MAX_ATTRIB_STACK_DEPTH		0x0D35
++#define GL_MAX_MODELVIEW_STACK_DEPTH		0x0D36
++#define GL_MAX_NAME_STACK_DEPTH			0x0D37
++#define GL_MAX_PROJECTION_STACK_DEPTH		0x0D38
++#define GL_MAX_TEXTURE_STACK_DEPTH		0x0D39
++#define GL_MAX_VIEWPORT_DIMS			0x0D3A
++#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH	0x0D3B
++
++/* Gets */
++#define GL_ATTRIB_STACK_DEPTH			0x0BB0
++#define GL_CLIENT_ATTRIB_STACK_DEPTH		0x0BB1
++#define GL_COLOR_CLEAR_VALUE			0x0C22
++#define GL_COLOR_WRITEMASK			0x0C23
++#define GL_CURRENT_INDEX			0x0B01
++#define GL_CURRENT_COLOR			0x0B00
++#define GL_CURRENT_NORMAL			0x0B02
++#define GL_CURRENT_RASTER_COLOR			0x0B04
++#define GL_CURRENT_RASTER_DISTANCE		0x0B09
++#define GL_CURRENT_RASTER_INDEX			0x0B05
++#define GL_CURRENT_RASTER_POSITION		0x0B07
++#define GL_CURRENT_RASTER_TEXTURE_COORDS	0x0B06
++#define GL_CURRENT_RASTER_POSITION_VALID	0x0B08
++#define GL_CURRENT_TEXTURE_COORDS		0x0B03
++#define GL_INDEX_CLEAR_VALUE			0x0C20
++#define GL_INDEX_MODE				0x0C30
++#define GL_INDEX_WRITEMASK			0x0C21
++#define GL_MODELVIEW_MATRIX			0x0BA6
++#define GL_MODELVIEW_STACK_DEPTH		0x0BA3
++#define GL_NAME_STACK_DEPTH			0x0D70
++#define GL_PROJECTION_MATRIX			0x0BA7
++#define GL_PROJECTION_STACK_DEPTH		0x0BA4
++#define GL_RENDER_MODE				0x0C40
++#define GL_RGBA_MODE				0x0C31
++#define GL_TEXTURE_MATRIX			0x0BA8
++#define GL_TEXTURE_STACK_DEPTH			0x0BA5
++#define GL_VIEWPORT				0x0BA2
++
++/* Evaluators */
++#define GL_AUTO_NORMAL				0x0D80
++#define GL_MAP1_COLOR_4				0x0D90
++#define GL_MAP1_INDEX				0x0D91
++#define GL_MAP1_NORMAL				0x0D92
++#define GL_MAP1_TEXTURE_COORD_1			0x0D93
++#define GL_MAP1_TEXTURE_COORD_2			0x0D94
++#define GL_MAP1_TEXTURE_COORD_3			0x0D95
++#define GL_MAP1_TEXTURE_COORD_4			0x0D96
++#define GL_MAP1_VERTEX_3			0x0D97
++#define GL_MAP1_VERTEX_4			0x0D98
++#define GL_MAP2_COLOR_4				0x0DB0
++#define GL_MAP2_INDEX				0x0DB1
++#define GL_MAP2_NORMAL				0x0DB2
++#define GL_MAP2_TEXTURE_COORD_1			0x0DB3
++#define GL_MAP2_TEXTURE_COORD_2			0x0DB4
++#define GL_MAP2_TEXTURE_COORD_3			0x0DB5
++#define GL_MAP2_TEXTURE_COORD_4			0x0DB6
++#define GL_MAP2_VERTEX_3			0x0DB7
++#define GL_MAP2_VERTEX_4			0x0DB8
++#define GL_MAP1_GRID_DOMAIN			0x0DD0
++#define GL_MAP1_GRID_SEGMENTS			0x0DD1
++#define GL_MAP2_GRID_DOMAIN			0x0DD2
++#define GL_MAP2_GRID_SEGMENTS			0x0DD3
++#define GL_COEFF				0x0A00
++#define GL_ORDER				0x0A01
++#define GL_DOMAIN				0x0A02
++
++/* Hints */
++#define GL_PERSPECTIVE_CORRECTION_HINT		0x0C50
++#define GL_POINT_SMOOTH_HINT			0x0C51
++#define GL_LINE_SMOOTH_HINT			0x0C52
++#define GL_POLYGON_SMOOTH_HINT			0x0C53
++#define GL_FOG_HINT				0x0C54
++#define GL_DONT_CARE				0x1100
++#define GL_FASTEST				0x1101
++#define GL_NICEST				0x1102
++
++/* Scissor box */
++#define GL_SCISSOR_BOX				0x0C10
++#define GL_SCISSOR_TEST				0x0C11
++
++/* Pixel Mode / Transfer */
++#define GL_MAP_COLOR				0x0D10
++#define GL_MAP_STENCIL				0x0D11
++#define GL_INDEX_SHIFT				0x0D12
++#define GL_INDEX_OFFSET				0x0D13
++#define GL_RED_SCALE				0x0D14
++#define GL_RED_BIAS				0x0D15
++#define GL_GREEN_SCALE				0x0D18
++#define GL_GREEN_BIAS				0x0D19
++#define GL_BLUE_SCALE				0x0D1A
++#define GL_BLUE_BIAS				0x0D1B
++#define GL_ALPHA_SCALE				0x0D1C
++#define GL_ALPHA_BIAS				0x0D1D
++#define GL_DEPTH_SCALE				0x0D1E
++#define GL_DEPTH_BIAS				0x0D1F
++#define GL_PIXEL_MAP_S_TO_S_SIZE		0x0CB1
++#define GL_PIXEL_MAP_I_TO_I_SIZE		0x0CB0
++#define GL_PIXEL_MAP_I_TO_R_SIZE		0x0CB2
++#define GL_PIXEL_MAP_I_TO_G_SIZE		0x0CB3
++#define GL_PIXEL_MAP_I_TO_B_SIZE		0x0CB4
++#define GL_PIXEL_MAP_I_TO_A_SIZE		0x0CB5
++#define GL_PIXEL_MAP_R_TO_R_SIZE		0x0CB6
++#define GL_PIXEL_MAP_G_TO_G_SIZE		0x0CB7
++#define GL_PIXEL_MAP_B_TO_B_SIZE		0x0CB8
++#define GL_PIXEL_MAP_A_TO_A_SIZE		0x0CB9
++#define GL_PIXEL_MAP_S_TO_S			0x0C71
++#define GL_PIXEL_MAP_I_TO_I			0x0C70
++#define GL_PIXEL_MAP_I_TO_R			0x0C72
++#define GL_PIXEL_MAP_I_TO_G			0x0C73
++#define GL_PIXEL_MAP_I_TO_B			0x0C74
++#define GL_PIXEL_MAP_I_TO_A			0x0C75
++#define GL_PIXEL_MAP_R_TO_R			0x0C76
++#define GL_PIXEL_MAP_G_TO_G			0x0C77
++#define GL_PIXEL_MAP_B_TO_B			0x0C78
++#define GL_PIXEL_MAP_A_TO_A			0x0C79
++#define GL_PACK_ALIGNMENT			0x0D05
++#define GL_PACK_LSB_FIRST			0x0D01
++#define GL_PACK_ROW_LENGTH			0x0D02
++#define GL_PACK_SKIP_PIXELS			0x0D04
++#define GL_PACK_SKIP_ROWS			0x0D03
++#define GL_PACK_SWAP_BYTES			0x0D00
++#define GL_UNPACK_ALIGNMENT			0x0CF5
++#define GL_UNPACK_LSB_FIRST			0x0CF1
++#define GL_UNPACK_ROW_LENGTH			0x0CF2
++#define GL_UNPACK_SKIP_PIXELS			0x0CF4
++#define GL_UNPACK_SKIP_ROWS			0x0CF3
++#define GL_UNPACK_SWAP_BYTES			0x0CF0
++#define GL_ZOOM_X				0x0D16
++#define GL_ZOOM_Y				0x0D17
++
++/* Texture mapping */
++#define GL_TEXTURE_ENV				0x2300
++#define GL_TEXTURE_ENV_MODE			0x2200
++#define GL_TEXTURE_1D				0x0DE0
++#define GL_TEXTURE_2D				0x0DE1
++#define GL_TEXTURE_WRAP_S			0x2802
++#define GL_TEXTURE_WRAP_T			0x2803
++#define GL_TEXTURE_MAG_FILTER			0x2800
++#define GL_TEXTURE_MIN_FILTER			0x2801
++#define GL_TEXTURE_ENV_COLOR			0x2201
++#define GL_TEXTURE_GEN_S			0x0C60
++#define GL_TEXTURE_GEN_T			0x0C61
++#define GL_TEXTURE_GEN_MODE			0x2500
++#define GL_TEXTURE_BORDER_COLOR			0x1004
++#define GL_TEXTURE_WIDTH			0x1000
++#define GL_TEXTURE_HEIGHT			0x1001
++#define GL_TEXTURE_BORDER			0x1005
++#define GL_TEXTURE_COMPONENTS			0x1003
++#define GL_TEXTURE_RED_SIZE			0x805C
++#define GL_TEXTURE_GREEN_SIZE			0x805D
++#define GL_TEXTURE_BLUE_SIZE			0x805E
++#define GL_TEXTURE_ALPHA_SIZE			0x805F
++#define GL_TEXTURE_LUMINANCE_SIZE		0x8060
++#define GL_TEXTURE_INTENSITY_SIZE		0x8061
++#define GL_NEAREST_MIPMAP_NEAREST		0x2700
++#define GL_NEAREST_MIPMAP_LINEAR		0x2702
++#define GL_LINEAR_MIPMAP_NEAREST		0x2701
++#define GL_LINEAR_MIPMAP_LINEAR			0x2703
++#define GL_OBJECT_LINEAR			0x2401
++#define GL_OBJECT_PLANE				0x2501
++#define GL_EYE_LINEAR				0x2400
++#define GL_EYE_PLANE				0x2502
++#define GL_SPHERE_MAP				0x2402
++#define GL_DECAL				0x2101
++#define GL_MODULATE				0x2100
++#define GL_NEAREST				0x2600
++#define GL_REPEAT				0x2901
++#define GL_CLAMP				0x2900
++#define GL_S					0x2000
++#define GL_T					0x2001
++#define GL_R					0x2002
++#define GL_Q					0x2003
++#define GL_TEXTURE_GEN_R			0x0C62
++#define GL_TEXTURE_GEN_Q			0x0C63
++
++/* Utility */
++#define GL_VENDOR				0x1F00
++#define GL_RENDERER				0x1F01
++#define GL_VERSION				0x1F02
++#define GL_EXTENSIONS				0x1F03
++
++/* Errors */
++#define GL_NO_ERROR 				0x0
++#define GL_INVALID_ENUM				0x0500
++#define GL_INVALID_VALUE			0x0501
++#define GL_INVALID_OPERATION			0x0502
++#define GL_STACK_OVERFLOW			0x0503
++#define GL_STACK_UNDERFLOW			0x0504
++#define GL_OUT_OF_MEMORY			0x0505
++
++/* glPush/PopAttrib bits */
++#define GL_CURRENT_BIT				0x00000001
++#define GL_POINT_BIT				0x00000002
++#define GL_LINE_BIT				0x00000004
++#define GL_POLYGON_BIT				0x00000008
++#define GL_POLYGON_STIPPLE_BIT			0x00000010
++#define GL_PIXEL_MODE_BIT			0x00000020
++#define GL_LIGHTING_BIT				0x00000040
++#define GL_FOG_BIT				0x00000080
++#define GL_DEPTH_BUFFER_BIT			0x00000100
++#define GL_ACCUM_BUFFER_BIT			0x00000200
++#define GL_STENCIL_BUFFER_BIT			0x00000400
++#define GL_VIEWPORT_BIT				0x00000800
++#define GL_TRANSFORM_BIT			0x00001000
++#define GL_ENABLE_BIT				0x00002000
++#define GL_COLOR_BUFFER_BIT			0x00004000
++#define GL_HINT_BIT				0x00008000
++#define GL_EVAL_BIT				0x00010000
++#define GL_LIST_BIT				0x00020000
++#define GL_TEXTURE_BIT				0x00040000
++#define GL_SCISSOR_BIT				0x00080000
++#define GL_ALL_ATTRIB_BITS			0x000FFFFF
++
++
++/* OpenGL 1.1 */
++#define GL_PROXY_TEXTURE_1D			0x8063
++#define GL_PROXY_TEXTURE_2D			0x8064
++#define GL_TEXTURE_PRIORITY			0x8066
++#define GL_TEXTURE_RESIDENT			0x8067
++#define GL_TEXTURE_BINDING_1D			0x8068
++#define GL_TEXTURE_BINDING_2D			0x8069
++#define GL_TEXTURE_INTERNAL_FORMAT		0x1003
++#define GL_ALPHA4				0x803B
++#define GL_ALPHA8				0x803C
++#define GL_ALPHA12				0x803D
++#define GL_ALPHA16				0x803E
++#define GL_LUMINANCE4				0x803F
++#define GL_LUMINANCE8				0x8040
++#define GL_LUMINANCE12				0x8041
++#define GL_LUMINANCE16				0x8042
++#define GL_LUMINANCE4_ALPHA4			0x8043
++#define GL_LUMINANCE6_ALPHA2			0x8044
++#define GL_LUMINANCE8_ALPHA8			0x8045
++#define GL_LUMINANCE12_ALPHA4			0x8046
++#define GL_LUMINANCE12_ALPHA12			0x8047
++#define GL_LUMINANCE16_ALPHA16			0x8048
++#define GL_INTENSITY				0x8049
++#define GL_INTENSITY4				0x804A
++#define GL_INTENSITY8				0x804B
++#define GL_INTENSITY12				0x804C
++#define GL_INTENSITY16				0x804D
++#define GL_R3_G3_B2				0x2A10
++#define GL_RGB4					0x804F
++#define GL_RGB5					0x8050
++#define GL_RGB8					0x8051
++#define GL_RGB10				0x8052
++#define GL_RGB12				0x8053
++#define GL_RGB16				0x8054
++#define GL_RGBA2				0x8055
++#define GL_RGBA4				0x8056
++#define GL_RGB5_A1				0x8057
++#define GL_RGBA8				0x8058
++#define GL_RGB10_A2				0x8059
++#define GL_RGBA12				0x805A
++#define GL_RGBA16				0x805B
++#define GL_CLIENT_PIXEL_STORE_BIT		0x00000001
++#define GL_CLIENT_VERTEX_ARRAY_BIT		0x00000002
++#define GL_ALL_CLIENT_ATTRIB_BITS 		0xFFFFFFFF
++#define GL_CLIENT_ALL_ATTRIB_BITS 		0xFFFFFFFF
++
++
++
++/*
++ * Miscellaneous
++ */
++
++GLAPI void GLAPIENTRY glClearIndex( GLfloat c );
++
++GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
++
++GLAPI void GLAPIENTRY glClear( GLbitfield mask );
++
++GLAPI void GLAPIENTRY glIndexMask( GLuint mask );
++
++GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
++
++GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref );
++
++GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor );
++
++GLAPI void GLAPIENTRY glLogicOp( GLenum opcode );
++
++GLAPI void GLAPIENTRY glCullFace( GLenum mode );
++
++GLAPI void GLAPIENTRY glFrontFace( GLenum mode );
++
++GLAPI void GLAPIENTRY glPointSize( GLfloat size );
++
++GLAPI void GLAPIENTRY glLineWidth( GLfloat width );
++
++GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern );
++
++GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode );
++
++GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units );
++
++GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask );
++
++GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask );
++
++GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag );
++
++GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag );
++
++GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height);
++
++GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation );
++
++GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation );
++
++GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode );
++
++GLAPI void GLAPIENTRY glReadBuffer( GLenum mode );
++
++GLAPI void GLAPIENTRY glEnable( GLenum cap );
++
++GLAPI void GLAPIENTRY glDisable( GLenum cap );
++
++GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap );
++
++
++GLAPI void GLAPIENTRY glEnableClientState( GLenum cap );  /* 1.1 */
++
++GLAPI void GLAPIENTRY glDisableClientState( GLenum cap );  /* 1.1 */
++
++
++GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params );
++
++GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params );
++
++GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params );
++
++GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params );
++
++
++GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask );
++
++GLAPI void GLAPIENTRY glPopAttrib( void );
++
++
++GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask );  /* 1.1 */
++
++GLAPI void GLAPIENTRY glPopClientAttrib( void );  /* 1.1 */
++
++
++GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode );
++
++GLAPI GLenum GLAPIENTRY glGetError( void );
++
++GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name );
++
++GLAPI void GLAPIENTRY glFinish( void );
++
++GLAPI void GLAPIENTRY glFlush( void );
++
++GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode );
++
++
++/*
++ * Depth Buffer
++ */
++
++GLAPI void GLAPIENTRY glClearDepth( GLclampd depth );
++
++GLAPI void GLAPIENTRY glDepthFunc( GLenum func );
++
++GLAPI void GLAPIENTRY glDepthMask( GLboolean flag );
++
++GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val );
++
++
++/*
++ * Accumulation Buffer
++ */
++
++GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
++
++GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value );
++
++
++/*
++ * Transformation
++ */
++
++GLAPI void GLAPIENTRY glMatrixMode( GLenum mode );
++
++GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right,
++                                 GLdouble bottom, GLdouble top,
++                                 GLdouble near_val, GLdouble far_val );
++
++GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right,
++                                   GLdouble bottom, GLdouble top,
++                                   GLdouble near_val, GLdouble far_val );
++
++GLAPI void GLAPIENTRY glViewport( GLint x, GLint y,
++                                    GLsizei width, GLsizei height );
++
++GLAPI void GLAPIENTRY glPushMatrix( void );
++
++GLAPI void GLAPIENTRY glPopMatrix( void );
++
++GLAPI void GLAPIENTRY glLoadIdentity( void );
++
++GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m );
++GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m );
++
++GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m );
++GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m );
++
++GLAPI void GLAPIENTRY glRotated( GLdouble angle,
++                                   GLdouble x, GLdouble y, GLdouble z );
++GLAPI void GLAPIENTRY glRotatef( GLfloat angle,
++                                   GLfloat x, GLfloat y, GLfloat z );
++
++GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z );
++GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z );
++
++GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z );
++GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z );
++
++
++/*
++ * Display Lists
++ */
++
++GLAPI GLboolean GLAPIENTRY glIsList( GLuint list );
++
++GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range );
++
++GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range );
++
++GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode );
++
++GLAPI void GLAPIENTRY glEndList( void );
++
++GLAPI void GLAPIENTRY glCallList( GLuint list );
++
++GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type,
++                                     const GLvoid *lists );
++
++GLAPI void GLAPIENTRY glListBase( GLuint base );
++
++
++/*
++ * Drawing Functions
++ */
++
++GLAPI void GLAPIENTRY glBegin( GLenum mode );
++
++GLAPI void GLAPIENTRY glEnd( void );
++
++
++GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y );
++GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y );
++GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y );
++GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y );
++
++GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z );
++GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z );
++GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z );
++GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z );
++
++GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
++GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
++GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w );
++GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w );
++
++GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glVertex2iv( const GLint *v );
++GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glVertex3iv( const GLint *v );
++GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glVertex4iv( const GLint *v );
++GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v );
++
++
++GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz );
++GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz );
++GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz );
++GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz );
++GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz );
++
++GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v );
++GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glNormal3iv( const GLint *v );
++GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v );
++
++
++GLAPI void GLAPIENTRY glIndexd( GLdouble c );
++GLAPI void GLAPIENTRY glIndexf( GLfloat c );
++GLAPI void GLAPIENTRY glIndexi( GLint c );
++GLAPI void GLAPIENTRY glIndexs( GLshort c );
++GLAPI void GLAPIENTRY glIndexub( GLubyte c );  /* 1.1 */
++
++GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c );
++GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c );
++GLAPI void GLAPIENTRY glIndexiv( const GLint *c );
++GLAPI void GLAPIENTRY glIndexsv( const GLshort *c );
++GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c );  /* 1.1 */
++
++GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue );
++GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue );
++GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue );
++GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue );
++GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue );
++GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue );
++GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue );
++GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue );
++
++GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green,
++                                   GLbyte blue, GLbyte alpha );
++GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green,
++                                   GLdouble blue, GLdouble alpha );
++GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green,
++                                   GLfloat blue, GLfloat alpha );
++GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green,
++                                   GLint blue, GLint alpha );
++GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green,
++                                   GLshort blue, GLshort alpha );
++GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green,
++                                    GLubyte blue, GLubyte alpha );
++GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green,
++                                    GLuint blue, GLuint alpha );
++GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green,
++                                    GLushort blue, GLushort alpha );
++
++
++GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v );
++GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glColor3iv( const GLint *v );
++GLAPI void GLAPIENTRY glColor3sv( const GLshort *v );
++GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v );
++GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v );
++GLAPI void GLAPIENTRY glColor3usv( const GLushort *v );
++
++GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v );
++GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glColor4iv( const GLint *v );
++GLAPI void GLAPIENTRY glColor4sv( const GLshort *v );
++GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v );
++GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v );
++GLAPI void GLAPIENTRY glColor4usv( const GLushort *v );
++
++
++GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s );
++GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s );
++GLAPI void GLAPIENTRY glTexCoord1i( GLint s );
++GLAPI void GLAPIENTRY glTexCoord1s( GLshort s );
++
++GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t );
++GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t );
++GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t );
++GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t );
++
++GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r );
++GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r );
++GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r );
++GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r );
++
++GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
++GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
++GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q );
++GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q );
++
++GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v );
++GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v );
++GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v );
++GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v );
++GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v );
++
++
++GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y );
++GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y );
++GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y );
++GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y );
++
++GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z );
++GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z );
++GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z );
++GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z );
++
++GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
++GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
++GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w );
++GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w );
++
++GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v );
++GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v );
++GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v );
++
++GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v );
++GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v );
++GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v );
++GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v );
++
++
++GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
++GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
++GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 );
++GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
++
++
++GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 );
++GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 );
++GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 );
++GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 );
++
++
++/*
++ * Vertex Arrays  (1.1)
++ */
++
++GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type,
++                                       GLsizei stride, const GLvoid *ptr );
++
++GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride,
++                                       const GLvoid *ptr );
++
++GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type,
++                                      GLsizei stride, const GLvoid *ptr );
++
++GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride,
++                                      const GLvoid *ptr );
++
++GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type,
++                                         GLsizei stride, const GLvoid *ptr );
++
++GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr );
++
++GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params );
++
++GLAPI void GLAPIENTRY glArrayElement( GLint i );
++
++GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count );
++
++GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count,
++                                      GLenum type, const GLvoid *indices );
++
++GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride,
++                                           const GLvoid *pointer );
++
++/*
++ * Lighting
++ */
++
++GLAPI void GLAPIENTRY glShadeModel( GLenum mode );
++
++GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param );
++GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname,
++                                 const GLfloat *params );
++GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname,
++                                 const GLint *params );
++
++GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname,
++                                    GLfloat *params );
++GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname,
++                                    GLint *params );
++
++GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param );
++GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params );
++GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params );
++
++GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param );
++GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params );
++GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params );
++
++GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params );
++GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params );
++
++GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode );
++
++
++/*
++ * Raster functions
++ */
++
++GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor );
++
++GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param );
++
++GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param );
++
++GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize,
++                                    const GLfloat *values );
++GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize,
++                                     const GLuint *values );
++GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize,
++                                     const GLushort *values );
++
++GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values );
++GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values );
++GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values );
++
++GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height,
++                                GLfloat xorig, GLfloat yorig,
++                                GLfloat xmove, GLfloat ymove,
++                                const GLubyte *bitmap );
++
++GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y,
++                                    GLsizei width, GLsizei height,
++                                    GLenum format, GLenum type,
++                                    GLvoid *pixels );
++
++GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height,
++                                    GLenum format, GLenum type,
++                                    const GLvoid *pixels );
++
++GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y,
++                                    GLsizei width, GLsizei height,
++                                    GLenum type );
++
++/*
++ * Stenciling
++ */
++
++GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask );
++
++GLAPI void GLAPIENTRY glStencilMask( GLuint mask );
++
++GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass );
++
++GLAPI void GLAPIENTRY glClearStencil( GLint s );
++
++
++
++/*
++ * Texture mapping
++ */
++
++GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param );
++GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param );
++
++GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params );
++GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params );
++GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params );
++
++GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params );
++GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
++GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params );
++
++
++GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param );
++
++GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params );
++GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params );
++
++GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params );
++GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params );
++
++
++GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param );
++GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param );
++
++GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname,
++                                          const GLfloat *params );
++GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname,
++                                          const GLint *params );
++
++GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target,
++                                           GLenum pname, GLfloat *params);
++GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target,
++                                           GLenum pname, GLint *params );
++
++GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level,
++                                                GLenum pname, GLfloat *params );
++GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level,
++                                                GLenum pname, GLint *params );
++
++
++GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level,
++                                    GLint internalFormat,
++                                    GLsizei width, GLint border,
++                                    GLenum format, GLenum type,
++                                    const GLvoid *pixels );
++
++GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level,
++                                    GLint internalFormat,
++                                    GLsizei width, GLsizei height,
++                                    GLint border, GLenum format, GLenum type,
++                                    const GLvoid *pixels );
++
++GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level,
++                                     GLenum format, GLenum type,
++                                     GLvoid *pixels );
++
++
++/* 1.1 functions */
++
++GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures );
++
++GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures);
++
++GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture );
++
++GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n,
++                                            const GLuint *textures,
++                                            const GLclampf *priorities );
++
++GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n,
++                                                  const GLuint *textures,
++                                                  GLboolean *residences );
++
++GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture );
++
++
++GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level,
++                                       GLint xoffset,
++                                       GLsizei width, GLenum format,
++                                       GLenum type, const GLvoid *pixels );
++
++
++GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level,
++                                       GLint xoffset, GLint yoffset,
++                                       GLsizei width, GLsizei height,
++                                       GLenum format, GLenum type,
++                                       const GLvoid *pixels );
++
++
++GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level,
++                                        GLenum internalformat,
++                                        GLint x, GLint y,
++                                        GLsizei width, GLint border );
++
++
++GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level,
++                                        GLenum internalformat,
++                                        GLint x, GLint y,
++                                        GLsizei width, GLsizei height,
++                                        GLint border );
++
++
++GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level,
++                                           GLint xoffset, GLint x, GLint y,
++                                           GLsizei width );
++
++
++GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level,
++                                           GLint xoffset, GLint yoffset,
++                                           GLint x, GLint y,
++                                           GLsizei width, GLsizei height );
++
++
++/*
++ * Evaluators
++ */
++
++GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2,
++                               GLint stride,
++                               GLint order, const GLdouble *points );
++GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2,
++                               GLint stride,
++                               GLint order, const GLfloat *points );
++
++GLAPI void GLAPIENTRY glMap2d( GLenum target,
++		     GLdouble u1, GLdouble u2, GLint ustride, GLint uorder,
++		     GLdouble v1, GLdouble v2, GLint vstride, GLint vorder,
++		     const GLdouble *points );
++GLAPI void GLAPIENTRY glMap2f( GLenum target,
++		     GLfloat u1, GLfloat u2, GLint ustride, GLint uorder,
++		     GLfloat v1, GLfloat v2, GLint vstride, GLint vorder,
++		     const GLfloat *points );
++
++GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v );
++GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v );
++GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v );
++
++GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u );
++GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u );
++
++GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u );
++GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u );
++
++GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v );
++GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v );
++
++GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u );
++GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u );
++
++GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 );
++GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 );
++
++GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2,
++                                   GLint vn, GLdouble v1, GLdouble v2 );
++GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2,
++                                   GLint vn, GLfloat v1, GLfloat v2 );
++
++GLAPI void GLAPIENTRY glEvalPoint1( GLint i );
++
++GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j );
++
++GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 );
++
++GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
++
++
++/*
++ * Fog
++ */
++
++GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param );
++
++GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param );
++
++GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params );
++
++GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params );
++
++
++/*
++ * Selection and Feedback
++ */
++
++GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer );
++
++GLAPI void GLAPIENTRY glPassThrough( GLfloat token );
++
++GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer );
++
++GLAPI void GLAPIENTRY glInitNames( void );
++
++GLAPI void GLAPIENTRY glLoadName( GLuint name );
++
++GLAPI void GLAPIENTRY glPushName( GLuint name );
++
++GLAPI void GLAPIENTRY glPopName( void );
++
++
++
++/*
++ * OpenGL 1.2
++ */
++
++#define GL_RESCALE_NORMAL			0x803A
++#define GL_CLAMP_TO_EDGE			0x812F
++#define GL_MAX_ELEMENTS_VERTICES		0x80E8
++#define GL_MAX_ELEMENTS_INDICES			0x80E9
++#define GL_BGR					0x80E0
++#define GL_BGRA					0x80E1
++#define GL_UNSIGNED_BYTE_3_3_2			0x8032
++#define GL_UNSIGNED_BYTE_2_3_3_REV		0x8362
++#define GL_UNSIGNED_SHORT_5_6_5			0x8363
++#define GL_UNSIGNED_SHORT_5_6_5_REV		0x8364
++#define GL_UNSIGNED_SHORT_4_4_4_4		0x8033
++#define GL_UNSIGNED_SHORT_4_4_4_4_REV		0x8365
++#define GL_UNSIGNED_SHORT_5_5_5_1		0x8034
++#define GL_UNSIGNED_SHORT_1_5_5_5_REV		0x8366
++#define GL_UNSIGNED_INT_8_8_8_8			0x8035
++#define GL_UNSIGNED_INT_8_8_8_8_REV		0x8367
++#define GL_UNSIGNED_INT_10_10_10_2		0x8036
++#define GL_UNSIGNED_INT_2_10_10_10_REV		0x8368
++#define GL_LIGHT_MODEL_COLOR_CONTROL		0x81F8
++#define GL_SINGLE_COLOR				0x81F9
++#define GL_SEPARATE_SPECULAR_COLOR		0x81FA
++#define GL_TEXTURE_MIN_LOD			0x813A
++#define GL_TEXTURE_MAX_LOD			0x813B
++#define GL_TEXTURE_BASE_LEVEL			0x813C
++#define GL_TEXTURE_MAX_LEVEL			0x813D
++#define GL_SMOOTH_POINT_SIZE_RANGE		0x0B12
++#define GL_SMOOTH_POINT_SIZE_GRANULARITY	0x0B13
++#define GL_SMOOTH_LINE_WIDTH_RANGE		0x0B22
++#define GL_SMOOTH_LINE_WIDTH_GRANULARITY	0x0B23
++#define GL_ALIASED_POINT_SIZE_RANGE		0x846D
++#define GL_ALIASED_LINE_WIDTH_RANGE		0x846E
++#define GL_PACK_SKIP_IMAGES			0x806B
++#define GL_PACK_IMAGE_HEIGHT			0x806C
++#define GL_UNPACK_SKIP_IMAGES			0x806D
++#define GL_UNPACK_IMAGE_HEIGHT			0x806E
++#define GL_TEXTURE_3D				0x806F
++#define GL_PROXY_TEXTURE_3D			0x8070
++#define GL_TEXTURE_DEPTH			0x8071
++#define GL_TEXTURE_WRAP_R			0x8072
++#define GL_MAX_3D_TEXTURE_SIZE			0x8073
++#define GL_TEXTURE_BINDING_3D			0x806A
++
++GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start,
++	GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
++
++GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level,
++                                      GLint internalFormat,
++                                      GLsizei width, GLsizei height,
++                                      GLsizei depth, GLint border,
++                                      GLenum format, GLenum type,
++                                      const GLvoid *pixels );
++
++GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level,
++                                         GLint xoffset, GLint yoffset,
++                                         GLint zoffset, GLsizei width,
++                                         GLsizei height, GLsizei depth,
++                                         GLenum format,
++                                         GLenum type, const GLvoid *pixels);
++
++GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level,
++                                             GLint xoffset, GLint yoffset,
++                                             GLint zoffset, GLint x,
++                                             GLint y, GLsizei width,
++                                             GLsizei height );
++
++typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
++typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
++
++
++/*
++ * GL_ARB_imaging
++ */
++
++#define GL_CONSTANT_COLOR			0x8001
++#define GL_ONE_MINUS_CONSTANT_COLOR		0x8002
++#define GL_CONSTANT_ALPHA			0x8003
++#define GL_ONE_MINUS_CONSTANT_ALPHA		0x8004
++#define GL_COLOR_TABLE				0x80D0
++#define GL_POST_CONVOLUTION_COLOR_TABLE		0x80D1
++#define GL_POST_COLOR_MATRIX_COLOR_TABLE	0x80D2
++#define GL_PROXY_COLOR_TABLE			0x80D3
++#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE	0x80D4
++#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE	0x80D5
++#define GL_COLOR_TABLE_SCALE			0x80D6
++#define GL_COLOR_TABLE_BIAS			0x80D7
++#define GL_COLOR_TABLE_FORMAT			0x80D8
++#define GL_COLOR_TABLE_WIDTH			0x80D9
++#define GL_COLOR_TABLE_RED_SIZE			0x80DA
++#define GL_COLOR_TABLE_GREEN_SIZE		0x80DB
++#define GL_COLOR_TABLE_BLUE_SIZE		0x80DC
++#define GL_COLOR_TABLE_ALPHA_SIZE		0x80DD
++#define GL_COLOR_TABLE_LUMINANCE_SIZE		0x80DE
++#define GL_COLOR_TABLE_INTENSITY_SIZE		0x80DF
++#define GL_CONVOLUTION_1D			0x8010
++#define GL_CONVOLUTION_2D			0x8011
++#define GL_SEPARABLE_2D				0x8012
++#define GL_CONVOLUTION_BORDER_MODE		0x8013
++#define GL_CONVOLUTION_FILTER_SCALE		0x8014
++#define GL_CONVOLUTION_FILTER_BIAS		0x8015
++#define GL_REDUCE				0x8016
++#define GL_CONVOLUTION_FORMAT			0x8017
++#define GL_CONVOLUTION_WIDTH			0x8018
++#define GL_CONVOLUTION_HEIGHT			0x8019
++#define GL_MAX_CONVOLUTION_WIDTH		0x801A
++#define GL_MAX_CONVOLUTION_HEIGHT		0x801B
++#define GL_POST_CONVOLUTION_RED_SCALE		0x801C
++#define GL_POST_CONVOLUTION_GREEN_SCALE		0x801D
++#define GL_POST_CONVOLUTION_BLUE_SCALE		0x801E
++#define GL_POST_CONVOLUTION_ALPHA_SCALE		0x801F
++#define GL_POST_CONVOLUTION_RED_BIAS		0x8020
++#define GL_POST_CONVOLUTION_GREEN_BIAS		0x8021
++#define GL_POST_CONVOLUTION_BLUE_BIAS		0x8022
++#define GL_POST_CONVOLUTION_ALPHA_BIAS		0x8023
++#define GL_CONSTANT_BORDER			0x8151
++#define GL_REPLICATE_BORDER			0x8153
++#define GL_CONVOLUTION_BORDER_COLOR		0x8154
++#define GL_COLOR_MATRIX				0x80B1
++#define GL_COLOR_MATRIX_STACK_DEPTH		0x80B2
++#define GL_MAX_COLOR_MATRIX_STACK_DEPTH		0x80B3
++#define GL_POST_COLOR_MATRIX_RED_SCALE		0x80B4
++#define GL_POST_COLOR_MATRIX_GREEN_SCALE	0x80B5
++#define GL_POST_COLOR_MATRIX_BLUE_SCALE		0x80B6
++#define GL_POST_COLOR_MATRIX_ALPHA_SCALE	0x80B7
++#define GL_POST_COLOR_MATRIX_RED_BIAS		0x80B8
++#define GL_POST_COLOR_MATRIX_GREEN_BIAS		0x80B9
++#define GL_POST_COLOR_MATRIX_BLUE_BIAS		0x80BA
++#define GL_POST_COLOR_MATRIX_ALPHA_BIAS		0x80BB
++#define GL_HISTOGRAM				0x8024
++#define GL_PROXY_HISTOGRAM			0x8025
++#define GL_HISTOGRAM_WIDTH			0x8026
++#define GL_HISTOGRAM_FORMAT			0x8027
++#define GL_HISTOGRAM_RED_SIZE			0x8028
++#define GL_HISTOGRAM_GREEN_SIZE			0x8029
++#define GL_HISTOGRAM_BLUE_SIZE			0x802A
++#define GL_HISTOGRAM_ALPHA_SIZE			0x802B
++#define GL_HISTOGRAM_LUMINANCE_SIZE		0x802C
++#define GL_HISTOGRAM_SINK			0x802D
++#define GL_MINMAX				0x802E
++#define GL_MINMAX_FORMAT			0x802F
++#define GL_MINMAX_SINK				0x8030
++#define GL_TABLE_TOO_LARGE			0x8031
++#define GL_BLEND_EQUATION			0x8009
++#define GL_MIN					0x8007
++#define GL_MAX					0x8008
++#define GL_FUNC_ADD				0x8006
++#define GL_FUNC_SUBTRACT			0x800A
++#define GL_FUNC_REVERSE_SUBTRACT		0x800B
++#define GL_BLEND_COLOR				0x8005
++
++
++GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat,
++                                    GLsizei width, GLenum format,
++                                    GLenum type, const GLvoid *table );
++
++GLAPI void GLAPIENTRY glColorSubTable( GLenum target,
++                                       GLsizei start, GLsizei count,
++                                       GLenum format, GLenum type,
++                                       const GLvoid *data );
++
++GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname,
++                                              const GLint *params);
++
++GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname,
++                                              const GLfloat *params);
++
++GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start,
++                                           GLint x, GLint y, GLsizei width );
++
++GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat,
++                                        GLint x, GLint y, GLsizei width );
++
++GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format,
++                                       GLenum type, GLvoid *table );
++
++GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname,
++                                                  GLfloat *params );
++
++GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname,
++                                                  GLint *params );
++
++GLAPI void GLAPIENTRY glBlendEquation( GLenum mode );
++
++GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green,
++                                    GLclampf blue, GLclampf alpha );
++
++GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width,
++				   GLenum internalformat, GLboolean sink );
++
++GLAPI void GLAPIENTRY glResetHistogram( GLenum target );
++
++GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset,
++				      GLenum format, GLenum type,
++				      GLvoid *values );
++
++GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname,
++						 GLfloat *params );
++
++GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname,
++						 GLint *params );
++
++GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat,
++				GLboolean sink );
++
++GLAPI void GLAPIENTRY glResetMinmax( GLenum target );
++
++GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset,
++                                   GLenum format, GLenum types,
++                                   GLvoid *values );
++
++GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname,
++					      GLfloat *params );
++
++GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname,
++					      GLint *params );
++
++GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target,
++	GLenum internalformat, GLsizei width, GLenum format, GLenum type,
++	const GLvoid *image );
++
++GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target,
++	GLenum internalformat, GLsizei width, GLsizei height, GLenum format,
++	GLenum type, const GLvoid *image );
++
++GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname,
++	GLfloat params );
++
++GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname,
++	const GLfloat *params );
++
++GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname,
++	GLint params );
++
++GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname,
++	const GLint *params );
++
++GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target,
++	GLenum internalformat, GLint x, GLint y, GLsizei width );
++
++GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target,
++	GLenum internalformat, GLint x, GLint y, GLsizei width,
++	GLsizei height);
++
++GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format,
++	GLenum type, GLvoid *image );
++
++GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname,
++	GLfloat *params );
++
++GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname,
++	GLint *params );
++
++GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target,
++	GLenum internalformat, GLsizei width, GLsizei height, GLenum format,
++	GLenum type, const GLvoid *row, const GLvoid *column );
++
++GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format,
++	GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
++
++typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
++typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
++typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
++typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
++typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
++typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
++typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
++typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
++typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target);
++
++
++
++/*
++ * OpenGL 1.3
++ */
++
++/* multitexture */
++#define GL_TEXTURE0				0x84C0
++#define GL_TEXTURE1				0x84C1
++#define GL_TEXTURE2				0x84C2
++#define GL_TEXTURE3				0x84C3
++#define GL_TEXTURE4				0x84C4
++#define GL_TEXTURE5				0x84C5
++#define GL_TEXTURE6				0x84C6
++#define GL_TEXTURE7				0x84C7
++#define GL_TEXTURE8				0x84C8
++#define GL_TEXTURE9				0x84C9
++#define GL_TEXTURE10				0x84CA
++#define GL_TEXTURE11				0x84CB
++#define GL_TEXTURE12				0x84CC
++#define GL_TEXTURE13				0x84CD
++#define GL_TEXTURE14				0x84CE
++#define GL_TEXTURE15				0x84CF
++#define GL_TEXTURE16				0x84D0
++#define GL_TEXTURE17				0x84D1
++#define GL_TEXTURE18				0x84D2
++#define GL_TEXTURE19				0x84D3
++#define GL_TEXTURE20				0x84D4
++#define GL_TEXTURE21				0x84D5
++#define GL_TEXTURE22				0x84D6
++#define GL_TEXTURE23				0x84D7
++#define GL_TEXTURE24				0x84D8
++#define GL_TEXTURE25				0x84D9
++#define GL_TEXTURE26				0x84DA
++#define GL_TEXTURE27				0x84DB
++#define GL_TEXTURE28				0x84DC
++#define GL_TEXTURE29				0x84DD
++#define GL_TEXTURE30				0x84DE
++#define GL_TEXTURE31				0x84DF
++#define GL_ACTIVE_TEXTURE			0x84E0
++#define GL_CLIENT_ACTIVE_TEXTURE		0x84E1
++#define GL_MAX_TEXTURE_UNITS			0x84E2
++/* texture_cube_map */
++#define GL_NORMAL_MAP				0x8511
++#define GL_REFLECTION_MAP			0x8512
++#define GL_TEXTURE_CUBE_MAP			0x8513
++#define GL_TEXTURE_BINDING_CUBE_MAP		0x8514
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_X		0x8515
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X		0x8516
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y		0x8517
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y		0x8518
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z		0x8519
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z		0x851A
++#define GL_PROXY_TEXTURE_CUBE_MAP		0x851B
++#define GL_MAX_CUBE_MAP_TEXTURE_SIZE		0x851C
++/* texture_compression */
++#define GL_COMPRESSED_ALPHA			0x84E9
++#define GL_COMPRESSED_LUMINANCE			0x84EA
++#define GL_COMPRESSED_LUMINANCE_ALPHA		0x84EB
++#define GL_COMPRESSED_INTENSITY			0x84EC
++#define GL_COMPRESSED_RGB			0x84ED
++#define GL_COMPRESSED_RGBA			0x84EE
++#define GL_TEXTURE_COMPRESSION_HINT		0x84EF
++#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE	0x86A0
++#define GL_TEXTURE_COMPRESSED			0x86A1
++#define GL_NUM_COMPRESSED_TEXTURE_FORMATS	0x86A2
++#define GL_COMPRESSED_TEXTURE_FORMATS		0x86A3
++/* multisample */
++#define GL_MULTISAMPLE				0x809D
++#define GL_SAMPLE_ALPHA_TO_COVERAGE		0x809E
++#define GL_SAMPLE_ALPHA_TO_ONE			0x809F
++#define GL_SAMPLE_COVERAGE			0x80A0
++#define GL_SAMPLE_BUFFERS			0x80A8
++#define GL_SAMPLES				0x80A9
++#define GL_SAMPLE_COVERAGE_VALUE		0x80AA
++#define GL_SAMPLE_COVERAGE_INVERT		0x80AB
++#define GL_MULTISAMPLE_BIT			0x20000000
++/* transpose_matrix */
++#define GL_TRANSPOSE_MODELVIEW_MATRIX		0x84E3
++#define GL_TRANSPOSE_PROJECTION_MATRIX		0x84E4
++#define GL_TRANSPOSE_TEXTURE_MATRIX		0x84E5
++#define GL_TRANSPOSE_COLOR_MATRIX		0x84E6
++/* texture_env_combine */
++#define GL_COMBINE				0x8570
++#define GL_COMBINE_RGB				0x8571
++#define GL_COMBINE_ALPHA			0x8572
++#define GL_SOURCE0_RGB				0x8580
++#define GL_SOURCE1_RGB				0x8581
++#define GL_SOURCE2_RGB				0x8582
++#define GL_SOURCE0_ALPHA			0x8588
++#define GL_SOURCE1_ALPHA			0x8589
++#define GL_SOURCE2_ALPHA			0x858A
++#define GL_OPERAND0_RGB				0x8590
++#define GL_OPERAND1_RGB				0x8591
++#define GL_OPERAND2_RGB				0x8592
++#define GL_OPERAND0_ALPHA			0x8598
++#define GL_OPERAND1_ALPHA			0x8599
++#define GL_OPERAND2_ALPHA			0x859A
++#define GL_RGB_SCALE				0x8573
++#define GL_ADD_SIGNED				0x8574
++#define GL_INTERPOLATE				0x8575
++#define GL_SUBTRACT				0x84E7
++#define GL_CONSTANT				0x8576
++#define GL_PRIMARY_COLOR			0x8577
++#define GL_PREVIOUS				0x8578
++/* texture_env_dot3 */
++#define GL_DOT3_RGB				0x86AE
++#define GL_DOT3_RGBA				0x86AF
++/* texture_border_clamp */
++#define GL_CLAMP_TO_BORDER			0x812D
++
++GLAPI void GLAPIENTRY glActiveTexture( GLenum texture );
++
++GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture );
++
++GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
++
++GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
++
++GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
++
++GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
++
++GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
++
++GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
++
++GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s );
++
++GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t );
++
++GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r );
++
++GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
++
++GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v );
++
++
++GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] );
++
++GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] );
++
++GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] );
++
++GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] );
++
++GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert );
++
++typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
++typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
++typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
++typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
++typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img);
++
++
++/*
++ * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1)
++ */
++#ifndef GL_ARB_multitexture
++#define GL_ARB_multitexture 1
++
++#define GL_TEXTURE0_ARB				0x84C0
++#define GL_TEXTURE1_ARB				0x84C1
++#define GL_TEXTURE2_ARB				0x84C2
++#define GL_TEXTURE3_ARB				0x84C3
++#define GL_TEXTURE4_ARB				0x84C4
++#define GL_TEXTURE5_ARB				0x84C5
++#define GL_TEXTURE6_ARB				0x84C6
++#define GL_TEXTURE7_ARB				0x84C7
++#define GL_TEXTURE8_ARB				0x84C8
++#define GL_TEXTURE9_ARB				0x84C9
++#define GL_TEXTURE10_ARB			0x84CA
++#define GL_TEXTURE11_ARB			0x84CB
++#define GL_TEXTURE12_ARB			0x84CC
++#define GL_TEXTURE13_ARB			0x84CD
++#define GL_TEXTURE14_ARB			0x84CE
++#define GL_TEXTURE15_ARB			0x84CF
++#define GL_TEXTURE16_ARB			0x84D0
++#define GL_TEXTURE17_ARB			0x84D1
++#define GL_TEXTURE18_ARB			0x84D2
++#define GL_TEXTURE19_ARB			0x84D3
++#define GL_TEXTURE20_ARB			0x84D4
++#define GL_TEXTURE21_ARB			0x84D5
++#define GL_TEXTURE22_ARB			0x84D6
++#define GL_TEXTURE23_ARB			0x84D7
++#define GL_TEXTURE24_ARB			0x84D8
++#define GL_TEXTURE25_ARB			0x84D9
++#define GL_TEXTURE26_ARB			0x84DA
++#define GL_TEXTURE27_ARB			0x84DB
++#define GL_TEXTURE28_ARB			0x84DC
++#define GL_TEXTURE29_ARB			0x84DD
++#define GL_TEXTURE30_ARB			0x84DE
++#define GL_TEXTURE31_ARB			0x84DF
++#define GL_ACTIVE_TEXTURE_ARB			0x84E0
++#define GL_CLIENT_ACTIVE_TEXTURE_ARB		0x84E1
++#define GL_MAX_TEXTURE_UNITS_ARB		0x84E2
++
++GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture);
++GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture);
++GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s);
++GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
++GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s);
++GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
++GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s);
++GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v);
++GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s);
++GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v);
++GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
++GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
++GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
++GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
++GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
++GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v);
++GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
++GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v);
++GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
++GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
++GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
++GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
++GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
++GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v);
++GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
++GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v);
++GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
++GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
++GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
++GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
++GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
++GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v);
++GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
++GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
++
++typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
++
++#endif /* GL_ARB_multitexture */
++
++
++
++/*
++ * Define this token if you want "old-style" header file behaviour (extensions
++ * defined in gl.h).  Otherwise, extensions will be included from glext.h.
++ */
++#if defined(GL_GLEXT_LEGACY)
++
++/* All extensions that used to be here are now found in glext.h */
++
++#else  /* GL_GLEXT_LEGACY */
++
++#include <GL/glext.h>
++
++#endif  /* GL_GLEXT_LEGACY */
++
++
++
++#if GL_ARB_shader_objects
++
++#ifndef GL_MESA_shader_debug
++#define GL_MESA_shader_debug 1
++
++#define GL_DEBUG_OBJECT_MESA              0x8759
++#define GL_DEBUG_PRINT_MESA               0x875A
++#define GL_DEBUG_ASSERT_MESA              0x875B
++
++GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void);
++GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
++GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
++                                         GLsizei *length, GLcharARB *debugLog);
++GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
++
++#endif /* GL_MESA_shader_debug */
++
++#endif /* GL_ARB_shader_objects */
++
++
++/*
++ * ???. GL_MESA_packed_depth_stencil
++ * XXX obsolete
++ */
++#ifndef GL_MESA_packed_depth_stencil
++#define GL_MESA_packed_depth_stencil 1
++
++#define GL_DEPTH_STENCIL_MESA			0x8750
++#define GL_UNSIGNED_INT_24_8_MESA		0x8751
++#define GL_UNSIGNED_INT_8_24_REV_MESA		0x8752
++#define GL_UNSIGNED_SHORT_15_1_MESA		0x8753
++#define GL_UNSIGNED_SHORT_1_15_REV_MESA		0x8754
++
++#endif /* GL_MESA_packed_depth_stencil */
++
++
++#ifndef GL_MESA_program_debug
++#define GL_MESA_program_debug 1
++
++#define GL_FRAGMENT_PROGRAM_POSITION_MESA       0x8bb0
++#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA       0x8bb1
++#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA  0x8bb2
++#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA  0x8bb3
++#define GL_VERTEX_PROGRAM_POSITION_MESA         0x8bb4
++#define GL_VERTEX_PROGRAM_CALLBACK_MESA         0x8bb5
++#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA    0x8bb6
++#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA    0x8bb7
++
++typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data);
++
++GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data);
++
++GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v);
++
++#endif /* GL_MESA_program_debug */
++
++
++#ifndef GL_ATI_blend_equation_separate
++#define GL_ATI_blend_equation_separate 1
++
++#define GL_ALPHA_BLEND_EQUATION_ATI	        0x883D
++
++GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA );
++typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA);
++
++#endif /* GL_ATI_blend_equation_separate */
++
++
++
++/**
++ ** NOTE!!!!!  If you add new functions to this file, or update
++ ** glext.h be sure to regenerate the gl_mangle.h file.  See comments
++ ** in that file for details.
++ **/
++
++
++
++/**********************************************************************
++ * Begin system-specific stuff
++ */
++#if defined(PRAGMA_EXPORT_SUPPORTED)
++#pragma export off
++#endif
++
++#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED
++#pragma import off
++#endif
++/*
++ * End system-specific stuff
++ **********************************************************************/
++
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* __gl_h_ */
+--- /dev/null	
++++ Mesa/inc/glext.h	
+@@ -0,0 +1,7260 @@
++#ifndef __glext_h_
++#define __glext_h_
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*
++** Copyright (c) 2007 The Khronos Group Inc.
++** 
++** Permission is hereby granted, free of charge, to any person obtaining a
++** copy of this software and/or associated documentation files (the
++** "Materials"), to deal in the Materials without restriction, including
++** without limitation the rights to use, copy, modify, merge, publish,
++** distribute, sublicense, and/or sell copies of the Materials, and to
++** permit persons to whom the Materials are furnished to do so, subject to
++** the following conditions:
++** 
++** The above copyright notice and this permission notice shall be included
++** in all copies or substantial portions of the Materials.
++** 
++** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
++** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
++** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
++*/
++
++#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
++#define WIN32_LEAN_AND_MEAN 1
++#include <windows.h>
++#endif
++
++#ifndef APIENTRY
++#define APIENTRY
++#endif
++#ifndef APIENTRYP
++#define APIENTRYP APIENTRY *
++#endif
++#ifndef GLAPI
++#define GLAPI extern
++#endif
++
++/*************************************************************/
++
++/* Header file version number, required by OpenGL ABI for Linux */
++/* glext.h last updated 2007/02/12 */
++/* Current version at http://www.opengl.org/registry/ */
++#define GL_GLEXT_VERSION 39
++
++#ifndef GL_VERSION_1_2
++#define GL_UNSIGNED_BYTE_3_3_2            0x8032
++#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
++#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
++#define GL_UNSIGNED_INT_8_8_8_8           0x8035
++#define GL_UNSIGNED_INT_10_10_10_2        0x8036
++#define GL_RESCALE_NORMAL                 0x803A
++#define GL_TEXTURE_BINDING_3D             0x806A
++#define GL_PACK_SKIP_IMAGES               0x806B
++#define GL_PACK_IMAGE_HEIGHT              0x806C
++#define GL_UNPACK_SKIP_IMAGES             0x806D
++#define GL_UNPACK_IMAGE_HEIGHT            0x806E
++#define GL_TEXTURE_3D                     0x806F
++#define GL_PROXY_TEXTURE_3D               0x8070
++#define GL_TEXTURE_DEPTH                  0x8071
++#define GL_TEXTURE_WRAP_R                 0x8072
++#define GL_MAX_3D_TEXTURE_SIZE            0x8073
++#define GL_UNSIGNED_BYTE_2_3_3_REV        0x8362
++#define GL_UNSIGNED_SHORT_5_6_5           0x8363
++#define GL_UNSIGNED_SHORT_5_6_5_REV       0x8364
++#define GL_UNSIGNED_SHORT_4_4_4_4_REV     0x8365
++#define GL_UNSIGNED_SHORT_1_5_5_5_REV     0x8366
++#define GL_UNSIGNED_INT_8_8_8_8_REV       0x8367
++#define GL_UNSIGNED_INT_2_10_10_10_REV    0x8368
++#define GL_BGR                            0x80E0
++#define GL_BGRA                           0x80E1
++#define GL_MAX_ELEMENTS_VERTICES          0x80E8
++#define GL_MAX_ELEMENTS_INDICES           0x80E9
++#define GL_CLAMP_TO_EDGE                  0x812F
++#define GL_TEXTURE_MIN_LOD                0x813A
++#define GL_TEXTURE_MAX_LOD                0x813B
++#define GL_TEXTURE_BASE_LEVEL             0x813C
++#define GL_TEXTURE_MAX_LEVEL              0x813D
++#define GL_LIGHT_MODEL_COLOR_CONTROL      0x81F8
++#define GL_SINGLE_COLOR                   0x81F9
++#define GL_SEPARATE_SPECULAR_COLOR        0x81FA
++#define GL_SMOOTH_POINT_SIZE_RANGE        0x0B12
++#define GL_SMOOTH_POINT_SIZE_GRANULARITY  0x0B13
++#define GL_SMOOTH_LINE_WIDTH_RANGE        0x0B22
++#define GL_SMOOTH_LINE_WIDTH_GRANULARITY  0x0B23
++#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
++#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
++#endif
++
++#ifndef GL_ARB_imaging
++#define GL_CONSTANT_COLOR                 0x8001
++#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
++#define GL_CONSTANT_ALPHA                 0x8003
++#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
++#define GL_BLEND_COLOR                    0x8005
++#define GL_FUNC_ADD                       0x8006
++#define GL_MIN                            0x8007
++#define GL_MAX                            0x8008
++#define GL_BLEND_EQUATION                 0x8009
++#define GL_FUNC_SUBTRACT                  0x800A
++#define GL_FUNC_REVERSE_SUBTRACT          0x800B
++#define GL_CONVOLUTION_1D                 0x8010
++#define GL_CONVOLUTION_2D                 0x8011
++#define GL_SEPARABLE_2D                   0x8012
++#define GL_CONVOLUTION_BORDER_MODE        0x8013
++#define GL_CONVOLUTION_FILTER_SCALE       0x8014
++#define GL_CONVOLUTION_FILTER_BIAS        0x8015
++#define GL_REDUCE                         0x8016
++#define GL_CONVOLUTION_FORMAT             0x8017
++#define GL_CONVOLUTION_WIDTH              0x8018
++#define GL_CONVOLUTION_HEIGHT             0x8019
++#define GL_MAX_CONVOLUTION_WIDTH          0x801A
++#define GL_MAX_CONVOLUTION_HEIGHT         0x801B
++#define GL_POST_CONVOLUTION_RED_SCALE     0x801C
++#define GL_POST_CONVOLUTION_GREEN_SCALE   0x801D
++#define GL_POST_CONVOLUTION_BLUE_SCALE    0x801E
++#define GL_POST_CONVOLUTION_ALPHA_SCALE   0x801F
++#define GL_POST_CONVOLUTION_RED_BIAS      0x8020
++#define GL_POST_CONVOLUTION_GREEN_BIAS    0x8021
++#define GL_POST_CONVOLUTION_BLUE_BIAS     0x8022
++#define GL_POST_CONVOLUTION_ALPHA_BIAS    0x8023
++#define GL_HISTOGRAM                      0x8024
++#define GL_PROXY_HISTOGRAM                0x8025
++#define GL_HISTOGRAM_WIDTH                0x8026
++#define GL_HISTOGRAM_FORMAT               0x8027
++#define GL_HISTOGRAM_RED_SIZE             0x8028
++#define GL_HISTOGRAM_GREEN_SIZE           0x8029
++#define GL_HISTOGRAM_BLUE_SIZE            0x802A
++#define GL_HISTOGRAM_ALPHA_SIZE           0x802B
++#define GL_HISTOGRAM_LUMINANCE_SIZE       0x802C
++#define GL_HISTOGRAM_SINK                 0x802D
++#define GL_MINMAX                         0x802E
++#define GL_MINMAX_FORMAT                  0x802F
++#define GL_MINMAX_SINK                    0x8030
++#define GL_TABLE_TOO_LARGE                0x8031
++#define GL_COLOR_MATRIX                   0x80B1
++#define GL_COLOR_MATRIX_STACK_DEPTH       0x80B2
++#define GL_MAX_COLOR_MATRIX_STACK_DEPTH   0x80B3
++#define GL_POST_COLOR_MATRIX_RED_SCALE    0x80B4
++#define GL_POST_COLOR_MATRIX_GREEN_SCALE  0x80B5
++#define GL_POST_COLOR_MATRIX_BLUE_SCALE   0x80B6
++#define GL_POST_COLOR_MATRIX_ALPHA_SCALE  0x80B7
++#define GL_POST_COLOR_MATRIX_RED_BIAS     0x80B8
++#define GL_POST_COLOR_MATRIX_GREEN_BIAS   0x80B9
++#define GL_POST_COLOR_MATRIX_BLUE_BIAS    0x80BA
++#define GL_POST_COLOR_MATRIX_ALPHA_BIAS   0x80BB
++#define GL_COLOR_TABLE                    0x80D0
++#define GL_POST_CONVOLUTION_COLOR_TABLE   0x80D1
++#define GL_POST_COLOR_MATRIX_COLOR_TABLE  0x80D2
++#define GL_PROXY_COLOR_TABLE              0x80D3
++#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
++#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
++#define GL_COLOR_TABLE_SCALE              0x80D6
++#define GL_COLOR_TABLE_BIAS               0x80D7
++#define GL_COLOR_TABLE_FORMAT             0x80D8
++#define GL_COLOR_TABLE_WIDTH              0x80D9
++#define GL_COLOR_TABLE_RED_SIZE           0x80DA
++#define GL_COLOR_TABLE_GREEN_SIZE         0x80DB
++#define GL_COLOR_TABLE_BLUE_SIZE          0x80DC
++#define GL_COLOR_TABLE_ALPHA_SIZE         0x80DD
++#define GL_COLOR_TABLE_LUMINANCE_SIZE     0x80DE
++#define GL_COLOR_TABLE_INTENSITY_SIZE     0x80DF
++#define GL_CONSTANT_BORDER                0x8151
++#define GL_REPLICATE_BORDER               0x8153
++#define GL_CONVOLUTION_BORDER_COLOR       0x8154
++#endif
++
++#ifndef GL_VERSION_1_3
++#define GL_TEXTURE0                       0x84C0
++#define GL_TEXTURE1                       0x84C1
++#define GL_TEXTURE2                       0x84C2
++#define GL_TEXTURE3                       0x84C3
++#define GL_TEXTURE4                       0x84C4
++#define GL_TEXTURE5                       0x84C5
++#define GL_TEXTURE6                       0x84C6
++#define GL_TEXTURE7                       0x84C7
++#define GL_TEXTURE8                       0x84C8
++#define GL_TEXTURE9                       0x84C9
++#define GL_TEXTURE10                      0x84CA
++#define GL_TEXTURE11                      0x84CB
++#define GL_TEXTURE12                      0x84CC
++#define GL_TEXTURE13                      0x84CD
++#define GL_TEXTURE14                      0x84CE
++#define GL_TEXTURE15                      0x84CF
++#define GL_TEXTURE16                      0x84D0
++#define GL_TEXTURE17                      0x84D1
++#define GL_TEXTURE18                      0x84D2
++#define GL_TEXTURE19                      0x84D3
++#define GL_TEXTURE20                      0x84D4
++#define GL_TEXTURE21                      0x84D5
++#define GL_TEXTURE22                      0x84D6
++#define GL_TEXTURE23                      0x84D7
++#define GL_TEXTURE24                      0x84D8
++#define GL_TEXTURE25                      0x84D9
++#define GL_TEXTURE26                      0x84DA
++#define GL_TEXTURE27                      0x84DB
++#define GL_TEXTURE28                      0x84DC
++#define GL_TEXTURE29                      0x84DD
++#define GL_TEXTURE30                      0x84DE
++#define GL_TEXTURE31                      0x84DF
++#define GL_ACTIVE_TEXTURE                 0x84E0
++#define GL_CLIENT_ACTIVE_TEXTURE          0x84E1
++#define GL_MAX_TEXTURE_UNITS              0x84E2
++#define GL_TRANSPOSE_MODELVIEW_MATRIX     0x84E3
++#define GL_TRANSPOSE_PROJECTION_MATRIX    0x84E4
++#define GL_TRANSPOSE_TEXTURE_MATRIX       0x84E5
++#define GL_TRANSPOSE_COLOR_MATRIX         0x84E6
++#define GL_MULTISAMPLE                    0x809D
++#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
++#define GL_SAMPLE_ALPHA_TO_ONE            0x809F
++#define GL_SAMPLE_COVERAGE                0x80A0
++#define GL_SAMPLE_BUFFERS                 0x80A8
++#define GL_SAMPLES                        0x80A9
++#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
++#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
++#define GL_MULTISAMPLE_BIT                0x20000000
++#define GL_NORMAL_MAP                     0x8511
++#define GL_REFLECTION_MAP                 0x8512
++#define GL_TEXTURE_CUBE_MAP               0x8513
++#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
++#define GL_PROXY_TEXTURE_CUBE_MAP         0x851B
++#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
++#define GL_COMPRESSED_ALPHA               0x84E9
++#define GL_COMPRESSED_LUMINANCE           0x84EA
++#define GL_COMPRESSED_LUMINANCE_ALPHA     0x84EB
++#define GL_COMPRESSED_INTENSITY           0x84EC
++#define GL_COMPRESSED_RGB                 0x84ED
++#define GL_COMPRESSED_RGBA                0x84EE
++#define GL_TEXTURE_COMPRESSION_HINT       0x84EF
++#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE  0x86A0
++#define GL_TEXTURE_COMPRESSED             0x86A1
++#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
++#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
++#define GL_CLAMP_TO_BORDER                0x812D
++#define GL_COMBINE                        0x8570
++#define GL_COMBINE_RGB                    0x8571
++#define GL_COMBINE_ALPHA                  0x8572
++#define GL_SOURCE0_RGB                    0x8580
++#define GL_SOURCE1_RGB                    0x8581
++#define GL_SOURCE2_RGB                    0x8582
++#define GL_SOURCE0_ALPHA                  0x8588
++#define GL_SOURCE1_ALPHA                  0x8589
++#define GL_SOURCE2_ALPHA                  0x858A
++#define GL_OPERAND0_RGB                   0x8590
++#define GL_OPERAND1_RGB                   0x8591
++#define GL_OPERAND2_RGB                   0x8592
++#define GL_OPERAND0_ALPHA                 0x8598
++#define GL_OPERAND1_ALPHA                 0x8599
++#define GL_OPERAND2_ALPHA                 0x859A
++#define GL_RGB_SCALE                      0x8573
++#define GL_ADD_SIGNED                     0x8574
++#define GL_INTERPOLATE                    0x8575
++#define GL_SUBTRACT                       0x84E7
++#define GL_CONSTANT                       0x8576
++#define GL_PRIMARY_COLOR                  0x8577
++#define GL_PREVIOUS                       0x8578
++#define GL_DOT3_RGB                       0x86AE
++#define GL_DOT3_RGBA                      0x86AF
++#endif
++
++#ifndef GL_VERSION_1_4
++#define GL_BLEND_DST_RGB                  0x80C8
++#define GL_BLEND_SRC_RGB                  0x80C9
++#define GL_BLEND_DST_ALPHA                0x80CA
++#define GL_BLEND_SRC_ALPHA                0x80CB
++#define GL_POINT_SIZE_MIN                 0x8126
++#define GL_POINT_SIZE_MAX                 0x8127
++#define GL_POINT_FADE_THRESHOLD_SIZE      0x8128
++#define GL_POINT_DISTANCE_ATTENUATION     0x8129
++#define GL_GENERATE_MIPMAP                0x8191
++#define GL_GENERATE_MIPMAP_HINT           0x8192
++#define GL_DEPTH_COMPONENT16              0x81A5
++#define GL_DEPTH_COMPONENT24              0x81A6
++#define GL_DEPTH_COMPONENT32              0x81A7
++#define GL_MIRRORED_REPEAT                0x8370
++#define GL_FOG_COORDINATE_SOURCE          0x8450
++#define GL_FOG_COORDINATE                 0x8451
++#define GL_FRAGMENT_DEPTH                 0x8452
++#define GL_CURRENT_FOG_COORDINATE         0x8453
++#define GL_FOG_COORDINATE_ARRAY_TYPE      0x8454
++#define GL_FOG_COORDINATE_ARRAY_STRIDE    0x8455
++#define GL_FOG_COORDINATE_ARRAY_POINTER   0x8456
++#define GL_FOG_COORDINATE_ARRAY           0x8457
++#define GL_COLOR_SUM                      0x8458
++#define GL_CURRENT_SECONDARY_COLOR        0x8459
++#define GL_SECONDARY_COLOR_ARRAY_SIZE     0x845A
++#define GL_SECONDARY_COLOR_ARRAY_TYPE     0x845B
++#define GL_SECONDARY_COLOR_ARRAY_STRIDE   0x845C
++#define GL_SECONDARY_COLOR_ARRAY_POINTER  0x845D
++#define GL_SECONDARY_COLOR_ARRAY          0x845E
++#define GL_MAX_TEXTURE_LOD_BIAS           0x84FD
++#define GL_TEXTURE_FILTER_CONTROL         0x8500
++#define GL_TEXTURE_LOD_BIAS               0x8501
++#define GL_INCR_WRAP                      0x8507
++#define GL_DECR_WRAP                      0x8508
++#define GL_TEXTURE_DEPTH_SIZE             0x884A
++#define GL_DEPTH_TEXTURE_MODE             0x884B
++#define GL_TEXTURE_COMPARE_MODE           0x884C
++#define GL_TEXTURE_COMPARE_FUNC           0x884D
++#define GL_COMPARE_R_TO_TEXTURE           0x884E
++#endif
++
++#ifndef GL_VERSION_1_5
++#define GL_BUFFER_SIZE                    0x8764
++#define GL_BUFFER_USAGE                   0x8765
++#define GL_QUERY_COUNTER_BITS             0x8864
++#define GL_CURRENT_QUERY                  0x8865
++#define GL_QUERY_RESULT                   0x8866
++#define GL_QUERY_RESULT_AVAILABLE         0x8867
++#define GL_ARRAY_BUFFER                   0x8892
++#define GL_ELEMENT_ARRAY_BUFFER           0x8893
++#define GL_ARRAY_BUFFER_BINDING           0x8894
++#define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
++#define GL_VERTEX_ARRAY_BUFFER_BINDING    0x8896
++#define GL_NORMAL_ARRAY_BUFFER_BINDING    0x8897
++#define GL_COLOR_ARRAY_BUFFER_BINDING     0x8898
++#define GL_INDEX_ARRAY_BUFFER_BINDING     0x8899
++#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
++#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
++#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
++#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
++#define GL_WEIGHT_ARRAY_BUFFER_BINDING    0x889E
++#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
++#define GL_READ_ONLY                      0x88B8
++#define GL_WRITE_ONLY                     0x88B9
++#define GL_READ_WRITE                     0x88BA
++#define GL_BUFFER_ACCESS                  0x88BB
++#define GL_BUFFER_MAPPED                  0x88BC
++#define GL_BUFFER_MAP_POINTER             0x88BD
++#define GL_STREAM_DRAW                    0x88E0
++#define GL_STREAM_READ                    0x88E1
++#define GL_STREAM_COPY                    0x88E2
++#define GL_STATIC_DRAW                    0x88E4
++#define GL_STATIC_READ                    0x88E5
++#define GL_STATIC_COPY                    0x88E6
++#define GL_DYNAMIC_DRAW                   0x88E8
++#define GL_DYNAMIC_READ                   0x88E9
++#define GL_DYNAMIC_COPY                   0x88EA
++#define GL_SAMPLES_PASSED                 0x8914
++#define GL_FOG_COORD_SRC                  GL_FOG_COORDINATE_SOURCE
++#define GL_FOG_COORD                      GL_FOG_COORDINATE
++#define GL_CURRENT_FOG_COORD              GL_CURRENT_FOG_COORDINATE
++#define GL_FOG_COORD_ARRAY_TYPE           GL_FOG_COORDINATE_ARRAY_TYPE
++#define GL_FOG_COORD_ARRAY_STRIDE         GL_FOG_COORDINATE_ARRAY_STRIDE
++#define GL_FOG_COORD_ARRAY_POINTER        GL_FOG_COORDINATE_ARRAY_POINTER
++#define GL_FOG_COORD_ARRAY                GL_FOG_COORDINATE_ARRAY
++#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
++#define GL_SRC0_RGB                       GL_SOURCE0_RGB
++#define GL_SRC1_RGB                       GL_SOURCE1_RGB
++#define GL_SRC2_RGB                       GL_SOURCE2_RGB
++#define GL_SRC0_ALPHA                     GL_SOURCE0_ALPHA
++#define GL_SRC1_ALPHA                     GL_SOURCE1_ALPHA
++#define GL_SRC2_ALPHA                     GL_SOURCE2_ALPHA
++#endif
++
++#ifndef GL_VERSION_2_0
++#define GL_BLEND_EQUATION_RGB             GL_BLEND_EQUATION
++#define GL_VERTEX_ATTRIB_ARRAY_ENABLED    0x8622
++#define GL_VERTEX_ATTRIB_ARRAY_SIZE       0x8623
++#define GL_VERTEX_ATTRIB_ARRAY_STRIDE     0x8624
++#define GL_VERTEX_ATTRIB_ARRAY_TYPE       0x8625
++#define GL_CURRENT_VERTEX_ATTRIB          0x8626
++#define GL_VERTEX_PROGRAM_POINT_SIZE      0x8642
++#define GL_VERTEX_PROGRAM_TWO_SIDE        0x8643
++#define GL_VERTEX_ATTRIB_ARRAY_POINTER    0x8645
++#define GL_STENCIL_BACK_FUNC              0x8800
++#define GL_STENCIL_BACK_FAIL              0x8801
++#define GL_STENCIL_BACK_PASS_DEPTH_FAIL   0x8802
++#define GL_STENCIL_BACK_PASS_DEPTH_PASS   0x8803
++#define GL_MAX_DRAW_BUFFERS               0x8824
++#define GL_DRAW_BUFFER0                   0x8825
++#define GL_DRAW_BUFFER1                   0x8826
++#define GL_DRAW_BUFFER2                   0x8827
++#define GL_DRAW_BUFFER3                   0x8828
++#define GL_DRAW_BUFFER4                   0x8829
++#define GL_DRAW_BUFFER5                   0x882A
++#define GL_DRAW_BUFFER6                   0x882B
++#define GL_DRAW_BUFFER7                   0x882C
++#define GL_DRAW_BUFFER8                   0x882D
++#define GL_DRAW_BUFFER9                   0x882E
++#define GL_DRAW_BUFFER10                  0x882F
++#define GL_DRAW_BUFFER11                  0x8830
++#define GL_DRAW_BUFFER12                  0x8831
++#define GL_DRAW_BUFFER13                  0x8832
++#define GL_DRAW_BUFFER14                  0x8833
++#define GL_DRAW_BUFFER15                  0x8834
++#define GL_BLEND_EQUATION_ALPHA           0x883D
++#define GL_POINT_SPRITE                   0x8861
++#define GL_COORD_REPLACE                  0x8862
++#define GL_MAX_VERTEX_ATTRIBS             0x8869
++#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
++#define GL_MAX_TEXTURE_COORDS             0x8871
++#define GL_MAX_TEXTURE_IMAGE_UNITS        0x8872
++#define GL_FRAGMENT_SHADER                0x8B30
++#define GL_VERTEX_SHADER                  0x8B31
++#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
++#define GL_MAX_VERTEX_UNIFORM_COMPONENTS  0x8B4A
++#define GL_MAX_VARYING_FLOATS             0x8B4B
++#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
++#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
++#define GL_SHADER_TYPE                    0x8B4F
++#define GL_FLOAT_VEC2                     0x8B50
++#define GL_FLOAT_VEC3                     0x8B51
++#define GL_FLOAT_VEC4                     0x8B52
++#define GL_INT_VEC2                       0x8B53
++#define GL_INT_VEC3                       0x8B54
++#define GL_INT_VEC4                       0x8B55
++#define GL_BOOL                           0x8B56
++#define GL_BOOL_VEC2                      0x8B57
++#define GL_BOOL_VEC3                      0x8B58
++#define GL_BOOL_VEC4                      0x8B59
++#define GL_FLOAT_MAT2                     0x8B5A
++#define GL_FLOAT_MAT3                     0x8B5B
++#define GL_FLOAT_MAT4                     0x8B5C
++#define GL_SAMPLER_1D                     0x8B5D
++#define GL_SAMPLER_2D                     0x8B5E
++#define GL_SAMPLER_3D                     0x8B5F
++#define GL_SAMPLER_CUBE                   0x8B60
++#define GL_SAMPLER_1D_SHADOW              0x8B61
++#define GL_SAMPLER_2D_SHADOW              0x8B62
++#define GL_DELETE_STATUS                  0x8B80
++#define GL_COMPILE_STATUS                 0x8B81
++#define GL_LINK_STATUS                    0x8B82
++#define GL_VALIDATE_STATUS                0x8B83
++#define GL_INFO_LOG_LENGTH                0x8B84
++#define GL_ATTACHED_SHADERS               0x8B85
++#define GL_ACTIVE_UNIFORMS                0x8B86
++#define GL_ACTIVE_UNIFORM_MAX_LENGTH      0x8B87
++#define GL_SHADER_SOURCE_LENGTH           0x8B88
++#define GL_ACTIVE_ATTRIBUTES              0x8B89
++#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH    0x8B8A
++#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
++#define GL_SHADING_LANGUAGE_VERSION       0x8B8C
++#define GL_CURRENT_PROGRAM                0x8B8D
++#define GL_POINT_SPRITE_COORD_ORIGIN      0x8CA0
++#define GL_LOWER_LEFT                     0x8CA1
++#define GL_UPPER_LEFT                     0x8CA2
++#define GL_STENCIL_BACK_REF               0x8CA3
++#define GL_STENCIL_BACK_VALUE_MASK        0x8CA4
++#define GL_STENCIL_BACK_WRITEMASK         0x8CA5
++#endif
++
++#ifndef GL_VERSION_2_1
++#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
++#define GL_PIXEL_PACK_BUFFER              0x88EB
++#define GL_PIXEL_UNPACK_BUFFER            0x88EC
++#define GL_PIXEL_PACK_BUFFER_BINDING      0x88ED
++#define GL_PIXEL_UNPACK_BUFFER_BINDING    0x88EF
++#define GL_FLOAT_MAT2x3                   0x8B65
++#define GL_FLOAT_MAT2x4                   0x8B66
++#define GL_FLOAT_MAT3x2                   0x8B67
++#define GL_FLOAT_MAT3x4                   0x8B68
++#define GL_FLOAT_MAT4x2                   0x8B69
++#define GL_FLOAT_MAT4x3                   0x8B6A
++#define GL_SRGB                           0x8C40
++#define GL_SRGB8                          0x8C41
++#define GL_SRGB_ALPHA                     0x8C42
++#define GL_SRGB8_ALPHA8                   0x8C43
++#define GL_SLUMINANCE_ALPHA               0x8C44
++#define GL_SLUMINANCE8_ALPHA8             0x8C45
++#define GL_SLUMINANCE                     0x8C46
++#define GL_SLUMINANCE8                    0x8C47
++#define GL_COMPRESSED_SRGB                0x8C48
++#define GL_COMPRESSED_SRGB_ALPHA          0x8C49
++#define GL_COMPRESSED_SLUMINANCE          0x8C4A
++#define GL_COMPRESSED_SLUMINANCE_ALPHA    0x8C4B
++#endif
++
++#ifndef GL_ARB_multitexture
++#define GL_TEXTURE0_ARB                   0x84C0
++#define GL_TEXTURE1_ARB                   0x84C1
++#define GL_TEXTURE2_ARB                   0x84C2
++#define GL_TEXTURE3_ARB                   0x84C3
++#define GL_TEXTURE4_ARB                   0x84C4
++#define GL_TEXTURE5_ARB                   0x84C5
++#define GL_TEXTURE6_ARB                   0x84C6
++#define GL_TEXTURE7_ARB                   0x84C7
++#define GL_TEXTURE8_ARB                   0x84C8
++#define GL_TEXTURE9_ARB                   0x84C9
++#define GL_TEXTURE10_ARB                  0x84CA
++#define GL_TEXTURE11_ARB                  0x84CB
++#define GL_TEXTURE12_ARB                  0x84CC
++#define GL_TEXTURE13_ARB                  0x84CD
++#define GL_TEXTURE14_ARB                  0x84CE
++#define GL_TEXTURE15_ARB                  0x84CF
++#define GL_TEXTURE16_ARB                  0x84D0
++#define GL_TEXTURE17_ARB                  0x84D1
++#define GL_TEXTURE18_ARB                  0x84D2
++#define GL_TEXTURE19_ARB                  0x84D3
++#define GL_TEXTURE20_ARB                  0x84D4
++#define GL_TEXTURE21_ARB                  0x84D5
++#define GL_TEXTURE22_ARB                  0x84D6
++#define GL_TEXTURE23_ARB                  0x84D7
++#define GL_TEXTURE24_ARB                  0x84D8
++#define GL_TEXTURE25_ARB                  0x84D9
++#define GL_TEXTURE26_ARB                  0x84DA
++#define GL_TEXTURE27_ARB                  0x84DB
++#define GL_TEXTURE28_ARB                  0x84DC
++#define GL_TEXTURE29_ARB                  0x84DD
++#define GL_TEXTURE30_ARB                  0x84DE
++#define GL_TEXTURE31_ARB                  0x84DF
++#define GL_ACTIVE_TEXTURE_ARB             0x84E0
++#define GL_CLIENT_ACTIVE_TEXTURE_ARB      0x84E1
++#define GL_MAX_TEXTURE_UNITS_ARB          0x84E2
++#endif
++
++#ifndef GL_ARB_transpose_matrix
++#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
++#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
++#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB   0x84E5
++#define GL_TRANSPOSE_COLOR_MATRIX_ARB     0x84E6
++#endif
++
++#ifndef GL_ARB_multisample
++#define GL_MULTISAMPLE_ARB                0x809D
++#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB   0x809E
++#define GL_SAMPLE_ALPHA_TO_ONE_ARB        0x809F
++#define GL_SAMPLE_COVERAGE_ARB            0x80A0
++#define GL_SAMPLE_BUFFERS_ARB             0x80A8
++#define GL_SAMPLES_ARB                    0x80A9
++#define GL_SAMPLE_COVERAGE_VALUE_ARB      0x80AA
++#define GL_SAMPLE_COVERAGE_INVERT_ARB     0x80AB
++#define GL_MULTISAMPLE_BIT_ARB            0x20000000
++#endif
++
++#ifndef GL_ARB_texture_env_add
++#endif
++
++#ifndef GL_ARB_texture_cube_map
++#define GL_NORMAL_MAP_ARB                 0x8511
++#define GL_REFLECTION_MAP_ARB             0x8512
++#define GL_TEXTURE_CUBE_MAP_ARB           0x8513
++#define GL_TEXTURE_BINDING_CUBE_MAP_ARB   0x8514
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
++#define GL_PROXY_TEXTURE_CUBE_MAP_ARB     0x851B
++#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB  0x851C
++#endif
++
++#ifndef GL_ARB_texture_compression
++#define GL_COMPRESSED_ALPHA_ARB           0x84E9
++#define GL_COMPRESSED_LUMINANCE_ARB       0x84EA
++#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
++#define GL_COMPRESSED_INTENSITY_ARB       0x84EC
++#define GL_COMPRESSED_RGB_ARB             0x84ED
++#define GL_COMPRESSED_RGBA_ARB            0x84EE
++#define GL_TEXTURE_COMPRESSION_HINT_ARB   0x84EF
++#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
++#define GL_TEXTURE_COMPRESSED_ARB         0x86A1
++#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
++#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
++#endif
++
++#ifndef GL_ARB_texture_border_clamp
++#define GL_CLAMP_TO_BORDER_ARB            0x812D
++#endif
++
++#ifndef GL_ARB_point_parameters
++#define GL_POINT_SIZE_MIN_ARB             0x8126
++#define GL_POINT_SIZE_MAX_ARB             0x8127
++#define GL_POINT_FADE_THRESHOLD_SIZE_ARB  0x8128
++#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
++#endif
++
++#ifndef GL_ARB_vertex_blend
++#define GL_MAX_VERTEX_UNITS_ARB           0x86A4
++#define GL_ACTIVE_VERTEX_UNITS_ARB        0x86A5
++#define GL_WEIGHT_SUM_UNITY_ARB           0x86A6
++#define GL_VERTEX_BLEND_ARB               0x86A7
++#define GL_CURRENT_WEIGHT_ARB             0x86A8
++#define GL_WEIGHT_ARRAY_TYPE_ARB          0x86A9
++#define GL_WEIGHT_ARRAY_STRIDE_ARB        0x86AA
++#define GL_WEIGHT_ARRAY_SIZE_ARB          0x86AB
++#define GL_WEIGHT_ARRAY_POINTER_ARB       0x86AC
++#define GL_WEIGHT_ARRAY_ARB               0x86AD
++#define GL_MODELVIEW0_ARB                 0x1700
++#define GL_MODELVIEW1_ARB                 0x850A
++#define GL_MODELVIEW2_ARB                 0x8722
++#define GL_MODELVIEW3_ARB                 0x8723
++#define GL_MODELVIEW4_ARB                 0x8724
++#define GL_MODELVIEW5_ARB                 0x8725
++#define GL_MODELVIEW6_ARB                 0x8726
++#define GL_MODELVIEW7_ARB                 0x8727
++#define GL_MODELVIEW8_ARB                 0x8728
++#define GL_MODELVIEW9_ARB                 0x8729
++#define GL_MODELVIEW10_ARB                0x872A
++#define GL_MODELVIEW11_ARB                0x872B
++#define GL_MODELVIEW12_ARB                0x872C
++#define GL_MODELVIEW13_ARB                0x872D
++#define GL_MODELVIEW14_ARB                0x872E
++#define GL_MODELVIEW15_ARB                0x872F
++#define GL_MODELVIEW16_ARB                0x8730
++#define GL_MODELVIEW17_ARB                0x8731
++#define GL_MODELVIEW18_ARB                0x8732
++#define GL_MODELVIEW19_ARB                0x8733
++#define GL_MODELVIEW20_ARB                0x8734
++#define GL_MODELVIEW21_ARB                0x8735
++#define GL_MODELVIEW22_ARB                0x8736
++#define GL_MODELVIEW23_ARB                0x8737
++#define GL_MODELVIEW24_ARB                0x8738
++#define GL_MODELVIEW25_ARB                0x8739
++#define GL_MODELVIEW26_ARB                0x873A
++#define GL_MODELVIEW27_ARB                0x873B
++#define GL_MODELVIEW28_ARB                0x873C
++#define GL_MODELVIEW29_ARB                0x873D
++#define GL_MODELVIEW30_ARB                0x873E
++#define GL_MODELVIEW31_ARB                0x873F
++#endif
++
++#ifndef GL_ARB_matrix_palette
++#define GL_MATRIX_PALETTE_ARB             0x8840
++#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
++#define GL_MAX_PALETTE_MATRICES_ARB       0x8842
++#define GL_CURRENT_PALETTE_MATRIX_ARB     0x8843
++#define GL_MATRIX_INDEX_ARRAY_ARB         0x8844
++#define GL_CURRENT_MATRIX_INDEX_ARB       0x8845
++#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB    0x8846
++#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB    0x8847
++#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB  0x8848
++#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
++#endif
++
++#ifndef GL_ARB_texture_env_combine
++#define GL_COMBINE_ARB                    0x8570
++#define GL_COMBINE_RGB_ARB                0x8571
++#define GL_COMBINE_ALPHA_ARB              0x8572
++#define GL_SOURCE0_RGB_ARB                0x8580
++#define GL_SOURCE1_RGB_ARB                0x8581
++#define GL_SOURCE2_RGB_ARB                0x8582
++#define GL_SOURCE0_ALPHA_ARB              0x8588
++#define GL_SOURCE1_ALPHA_ARB              0x8589
++#define GL_SOURCE2_ALPHA_ARB              0x858A
++#define GL_OPERAND0_RGB_ARB               0x8590
++#define GL_OPERAND1_RGB_ARB               0x8591
++#define GL_OPERAND2_RGB_ARB               0x8592
++#define GL_OPERAND0_ALPHA_ARB             0x8598
++#define GL_OPERAND1_ALPHA_ARB             0x8599
++#define GL_OPERAND2_ALPHA_ARB             0x859A
++#define GL_RGB_SCALE_ARB                  0x8573
++#define GL_ADD_SIGNED_ARB                 0x8574
++#define GL_INTERPOLATE_ARB                0x8575
++#define GL_SUBTRACT_ARB                   0x84E7
++#define GL_CONSTANT_ARB                   0x8576
++#define GL_PRIMARY_COLOR_ARB              0x8577
++#define GL_PREVIOUS_ARB                   0x8578
++#endif
++
++#ifndef GL_ARB_texture_env_crossbar
++#endif
++
++#ifndef GL_ARB_texture_env_dot3
++#define GL_DOT3_RGB_ARB                   0x86AE
++#define GL_DOT3_RGBA_ARB                  0x86AF
++#endif
++
++#ifndef GL_ARB_texture_mirrored_repeat
++#define GL_MIRRORED_REPEAT_ARB            0x8370
++#endif
++
++#ifndef GL_ARB_depth_texture
++#define GL_DEPTH_COMPONENT16_ARB          0x81A5
++#define GL_DEPTH_COMPONENT24_ARB          0x81A6
++#define GL_DEPTH_COMPONENT32_ARB          0x81A7
++#define GL_TEXTURE_DEPTH_SIZE_ARB         0x884A
++#define GL_DEPTH_TEXTURE_MODE_ARB         0x884B
++#endif
++
++#ifndef GL_ARB_shadow
++#define GL_TEXTURE_COMPARE_MODE_ARB       0x884C
++#define GL_TEXTURE_COMPARE_FUNC_ARB       0x884D
++#define GL_COMPARE_R_TO_TEXTURE_ARB       0x884E
++#endif
++
++#ifndef GL_ARB_shadow_ambient
++#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
++#endif
++
++#ifndef GL_ARB_window_pos
++#endif
++
++#ifndef GL_ARB_vertex_program
++#define GL_COLOR_SUM_ARB                  0x8458
++#define GL_VERTEX_PROGRAM_ARB             0x8620
++#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
++#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB   0x8623
++#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
++#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB   0x8625
++#define GL_CURRENT_VERTEX_ATTRIB_ARB      0x8626
++#define GL_PROGRAM_LENGTH_ARB             0x8627
++#define GL_PROGRAM_STRING_ARB             0x8628
++#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
++#define GL_MAX_PROGRAM_MATRICES_ARB       0x862F
++#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
++#define GL_CURRENT_MATRIX_ARB             0x8641
++#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB  0x8642
++#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB    0x8643
++#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
++#define GL_PROGRAM_ERROR_POSITION_ARB     0x864B
++#define GL_PROGRAM_BINDING_ARB            0x8677
++#define GL_MAX_VERTEX_ATTRIBS_ARB         0x8869
++#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
++#define GL_PROGRAM_ERROR_STRING_ARB       0x8874
++#define GL_PROGRAM_FORMAT_ASCII_ARB       0x8875
++#define GL_PROGRAM_FORMAT_ARB             0x8876
++#define GL_PROGRAM_INSTRUCTIONS_ARB       0x88A0
++#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB   0x88A1
++#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
++#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
++#define GL_PROGRAM_TEMPORARIES_ARB        0x88A4
++#define GL_MAX_PROGRAM_TEMPORARIES_ARB    0x88A5
++#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
++#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
++#define GL_PROGRAM_PARAMETERS_ARB         0x88A8
++#define GL_MAX_PROGRAM_PARAMETERS_ARB     0x88A9
++#define GL_PROGRAM_NATIVE_PARAMETERS_ARB  0x88AA
++#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
++#define GL_PROGRAM_ATTRIBS_ARB            0x88AC
++#define GL_MAX_PROGRAM_ATTRIBS_ARB        0x88AD
++#define GL_PROGRAM_NATIVE_ATTRIBS_ARB     0x88AE
++#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
++#define GL_PROGRAM_ADDRESS_REGISTERS_ARB  0x88B0
++#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
++#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
++#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
++#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
++#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
++#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
++#define GL_TRANSPOSE_CURRENT_MATRIX_ARB   0x88B7
++#define GL_MATRIX0_ARB                    0x88C0
++#define GL_MATRIX1_ARB                    0x88C1
++#define GL_MATRIX2_ARB                    0x88C2
++#define GL_MATRIX3_ARB                    0x88C3
++#define GL_MATRIX4_ARB                    0x88C4
++#define GL_MATRIX5_ARB                    0x88C5
++#define GL_MATRIX6_ARB                    0x88C6
++#define GL_MATRIX7_ARB                    0x88C7
++#define GL_MATRIX8_ARB                    0x88C8
++#define GL_MATRIX9_ARB                    0x88C9
++#define GL_MATRIX10_ARB                   0x88CA
++#define GL_MATRIX11_ARB                   0x88CB
++#define GL_MATRIX12_ARB                   0x88CC
++#define GL_MATRIX13_ARB                   0x88CD
++#define GL_MATRIX14_ARB                   0x88CE
++#define GL_MATRIX15_ARB                   0x88CF
++#define GL_MATRIX16_ARB                   0x88D0
++#define GL_MATRIX17_ARB                   0x88D1
++#define GL_MATRIX18_ARB                   0x88D2
++#define GL_MATRIX19_ARB                   0x88D3
++#define GL_MATRIX20_ARB                   0x88D4
++#define GL_MATRIX21_ARB                   0x88D5
++#define GL_MATRIX22_ARB                   0x88D6
++#define GL_MATRIX23_ARB                   0x88D7
++#define GL_MATRIX24_ARB                   0x88D8
++#define GL_MATRIX25_ARB                   0x88D9
++#define GL_MATRIX26_ARB                   0x88DA
++#define GL_MATRIX27_ARB                   0x88DB
++#define GL_MATRIX28_ARB                   0x88DC
++#define GL_MATRIX29_ARB                   0x88DD
++#define GL_MATRIX30_ARB                   0x88DE
++#define GL_MATRIX31_ARB                   0x88DF
++#endif
++
++#ifndef GL_ARB_fragment_program
++#define GL_FRAGMENT_PROGRAM_ARB           0x8804
++#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB   0x8805
++#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB   0x8806
++#define GL_PROGRAM_TEX_INDIRECTIONS_ARB   0x8807
++#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
++#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
++#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
++#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
++#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
++#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
++#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
++#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
++#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
++#define GL_MAX_TEXTURE_COORDS_ARB         0x8871
++#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB    0x8872
++#endif
++
++#ifndef GL_ARB_vertex_buffer_object
++#define GL_BUFFER_SIZE_ARB                0x8764
++#define GL_BUFFER_USAGE_ARB               0x8765
++#define GL_ARRAY_BUFFER_ARB               0x8892
++#define GL_ELEMENT_ARRAY_BUFFER_ARB       0x8893
++#define GL_ARRAY_BUFFER_BINDING_ARB       0x8894
++#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
++#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
++#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
++#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
++#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
++#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
++#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
++#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
++#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
++#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
++#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
++#define GL_READ_ONLY_ARB                  0x88B8
++#define GL_WRITE_ONLY_ARB                 0x88B9
++#define GL_READ_WRITE_ARB                 0x88BA
++#define GL_BUFFER_ACCESS_ARB              0x88BB
++#define GL_BUFFER_MAPPED_ARB              0x88BC
++#define GL_BUFFER_MAP_POINTER_ARB         0x88BD
++#define GL_STREAM_DRAW_ARB                0x88E0
++#define GL_STREAM_READ_ARB                0x88E1
++#define GL_STREAM_COPY_ARB                0x88E2
++#define GL_STATIC_DRAW_ARB                0x88E4
++#define GL_STATIC_READ_ARB                0x88E5
++#define GL_STATIC_COPY_ARB                0x88E6
++#define GL_DYNAMIC_DRAW_ARB               0x88E8
++#define GL_DYNAMIC_READ_ARB               0x88E9
++#define GL_DYNAMIC_COPY_ARB               0x88EA
++#endif
++
++#ifndef GL_ARB_occlusion_query
++#define GL_QUERY_COUNTER_BITS_ARB         0x8864
++#define GL_CURRENT_QUERY_ARB              0x8865
++#define GL_QUERY_RESULT_ARB               0x8866
++#define GL_QUERY_RESULT_AVAILABLE_ARB     0x8867
++#define GL_SAMPLES_PASSED_ARB             0x8914
++#endif
++
++#ifndef GL_ARB_shader_objects
++#define GL_PROGRAM_OBJECT_ARB             0x8B40
++#define GL_SHADER_OBJECT_ARB              0x8B48
++#define GL_OBJECT_TYPE_ARB                0x8B4E
++#define GL_OBJECT_SUBTYPE_ARB             0x8B4F
++#define GL_FLOAT_VEC2_ARB                 0x8B50
++#define GL_FLOAT_VEC3_ARB                 0x8B51
++#define GL_FLOAT_VEC4_ARB                 0x8B52
++#define GL_INT_VEC2_ARB                   0x8B53
++#define GL_INT_VEC3_ARB                   0x8B54
++#define GL_INT_VEC4_ARB                   0x8B55
++#define GL_BOOL_ARB                       0x8B56
++#define GL_BOOL_VEC2_ARB                  0x8B57
++#define GL_BOOL_VEC3_ARB                  0x8B58
++#define GL_BOOL_VEC4_ARB                  0x8B59
++#define GL_FLOAT_MAT2_ARB                 0x8B5A
++#define GL_FLOAT_MAT3_ARB                 0x8B5B
++#define GL_FLOAT_MAT4_ARB                 0x8B5C
++#define GL_SAMPLER_1D_ARB                 0x8B5D
++#define GL_SAMPLER_2D_ARB                 0x8B5E
++#define GL_SAMPLER_3D_ARB                 0x8B5F
++#define GL_SAMPLER_CUBE_ARB               0x8B60
++#define GL_SAMPLER_1D_SHADOW_ARB          0x8B61
++#define GL_SAMPLER_2D_SHADOW_ARB          0x8B62
++#define GL_SAMPLER_2D_RECT_ARB            0x8B63
++#define GL_SAMPLER_2D_RECT_SHADOW_ARB     0x8B64
++#define GL_OBJECT_DELETE_STATUS_ARB       0x8B80
++#define GL_OBJECT_COMPILE_STATUS_ARB      0x8B81
++#define GL_OBJECT_LINK_STATUS_ARB         0x8B82
++#define GL_OBJECT_VALIDATE_STATUS_ARB     0x8B83
++#define GL_OBJECT_INFO_LOG_LENGTH_ARB     0x8B84
++#define GL_OBJECT_ATTACHED_OBJECTS_ARB    0x8B85
++#define GL_OBJECT_ACTIVE_UNIFORMS_ARB     0x8B86
++#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
++#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
++#endif
++
++#ifndef GL_ARB_vertex_shader
++#define GL_VERTEX_SHADER_ARB              0x8B31
++#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
++#define GL_MAX_VARYING_FLOATS_ARB         0x8B4B
++#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
++#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
++#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB   0x8B89
++#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
++#endif
++
++#ifndef GL_ARB_fragment_shader
++#define GL_FRAGMENT_SHADER_ARB            0x8B30
++#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
++#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
++#endif
++
++#ifndef GL_ARB_shading_language_100
++#define GL_SHADING_LANGUAGE_VERSION_ARB   0x8B8C
++#endif
++
++#ifndef GL_ARB_texture_non_power_of_two
++#endif
++
++#ifndef GL_ARB_point_sprite
++#define GL_POINT_SPRITE_ARB               0x8861
++#define GL_COORD_REPLACE_ARB              0x8862
++#endif
++
++#ifndef GL_ARB_fragment_program_shadow
++#endif
++
++#ifndef GL_ARB_draw_buffers
++#define GL_MAX_DRAW_BUFFERS_ARB           0x8824
++#define GL_DRAW_BUFFER0_ARB               0x8825
++#define GL_DRAW_BUFFER1_ARB               0x8826
++#define GL_DRAW_BUFFER2_ARB               0x8827
++#define GL_DRAW_BUFFER3_ARB               0x8828
++#define GL_DRAW_BUFFER4_ARB               0x8829
++#define GL_DRAW_BUFFER5_ARB               0x882A
++#define GL_DRAW_BUFFER6_ARB               0x882B
++#define GL_DRAW_BUFFER7_ARB               0x882C
++#define GL_DRAW_BUFFER8_ARB               0x882D
++#define GL_DRAW_BUFFER9_ARB               0x882E
++#define GL_DRAW_BUFFER10_ARB              0x882F
++#define GL_DRAW_BUFFER11_ARB              0x8830
++#define GL_DRAW_BUFFER12_ARB              0x8831
++#define GL_DRAW_BUFFER13_ARB              0x8832
++#define GL_DRAW_BUFFER14_ARB              0x8833
++#define GL_DRAW_BUFFER15_ARB              0x8834
++#endif
++
++#ifndef GL_ARB_texture_rectangle
++#define GL_TEXTURE_RECTANGLE_ARB          0x84F5
++#define GL_TEXTURE_BINDING_RECTANGLE_ARB  0x84F6
++#define GL_PROXY_TEXTURE_RECTANGLE_ARB    0x84F7
++#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
++#endif
++
++#ifndef GL_ARB_color_buffer_float
++#define GL_RGBA_FLOAT_MODE_ARB            0x8820
++#define GL_CLAMP_VERTEX_COLOR_ARB         0x891A
++#define GL_CLAMP_FRAGMENT_COLOR_ARB       0x891B
++#define GL_CLAMP_READ_COLOR_ARB           0x891C
++#define GL_FIXED_ONLY_ARB                 0x891D
++#endif
++
++#ifndef GL_ARB_half_float_pixel
++#define GL_HALF_FLOAT_ARB                 0x140B
++#endif
++
++#ifndef GL_ARB_texture_float
++#define GL_TEXTURE_RED_TYPE_ARB           0x8C10
++#define GL_TEXTURE_GREEN_TYPE_ARB         0x8C11
++#define GL_TEXTURE_BLUE_TYPE_ARB          0x8C12
++#define GL_TEXTURE_ALPHA_TYPE_ARB         0x8C13
++#define GL_TEXTURE_LUMINANCE_TYPE_ARB     0x8C14
++#define GL_TEXTURE_INTENSITY_TYPE_ARB     0x8C15
++#define GL_TEXTURE_DEPTH_TYPE_ARB         0x8C16
++#define GL_UNSIGNED_NORMALIZED_ARB        0x8C17
++#define GL_RGBA32F_ARB                    0x8814
++#define GL_RGB32F_ARB                     0x8815
++#define GL_ALPHA32F_ARB                   0x8816
++#define GL_INTENSITY32F_ARB               0x8817
++#define GL_LUMINANCE32F_ARB               0x8818
++#define GL_LUMINANCE_ALPHA32F_ARB         0x8819
++#define GL_RGBA16F_ARB                    0x881A
++#define GL_RGB16F_ARB                     0x881B
++#define GL_ALPHA16F_ARB                   0x881C
++#define GL_INTENSITY16F_ARB               0x881D
++#define GL_LUMINANCE16F_ARB               0x881E
++#define GL_LUMINANCE_ALPHA16F_ARB         0x881F
++#endif
++
++#ifndef GL_ARB_pixel_buffer_object
++#define GL_PIXEL_PACK_BUFFER_ARB          0x88EB
++#define GL_PIXEL_UNPACK_BUFFER_ARB        0x88EC
++#define GL_PIXEL_PACK_BUFFER_BINDING_ARB  0x88ED
++#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
++#endif
++
++#ifndef GL_EXT_abgr
++#define GL_ABGR_EXT                       0x8000
++#endif
++
++#ifndef GL_EXT_blend_color
++#define GL_CONSTANT_COLOR_EXT             0x8001
++#define GL_ONE_MINUS_CONSTANT_COLOR_EXT   0x8002
++#define GL_CONSTANT_ALPHA_EXT             0x8003
++#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT   0x8004
++#define GL_BLEND_COLOR_EXT                0x8005
++#endif
++
++#ifndef GL_EXT_polygon_offset
++#define GL_POLYGON_OFFSET_EXT             0x8037
++#define GL_POLYGON_OFFSET_FACTOR_EXT      0x8038
++#define GL_POLYGON_OFFSET_BIAS_EXT        0x8039
++#endif
++
++#ifndef GL_EXT_texture
++#define GL_ALPHA4_EXT                     0x803B
++#define GL_ALPHA8_EXT                     0x803C
++#define GL_ALPHA12_EXT                    0x803D
++#define GL_ALPHA16_EXT                    0x803E
++#define GL_LUMINANCE4_EXT                 0x803F
++#define GL_LUMINANCE8_EXT                 0x8040
++#define GL_LUMINANCE12_EXT                0x8041
++#define GL_LUMINANCE16_EXT                0x8042
++#define GL_LUMINANCE4_ALPHA4_EXT          0x8043
++#define GL_LUMINANCE6_ALPHA2_EXT          0x8044
++#define GL_LUMINANCE8_ALPHA8_EXT          0x8045
++#define GL_LUMINANCE12_ALPHA4_EXT         0x8046
++#define GL_LUMINANCE12_ALPHA12_EXT        0x8047
++#define GL_LUMINANCE16_ALPHA16_EXT        0x8048
++#define GL_INTENSITY_EXT                  0x8049
++#define GL_INTENSITY4_EXT                 0x804A
++#define GL_INTENSITY8_EXT                 0x804B
++#define GL_INTENSITY12_EXT                0x804C
++#define GL_INTENSITY16_EXT                0x804D
++#define GL_RGB2_EXT                       0x804E
++#define GL_RGB4_EXT                       0x804F
++#define GL_RGB5_EXT                       0x8050
++#define GL_RGB8_EXT                       0x8051
++#define GL_RGB10_EXT                      0x8052
++#define GL_RGB12_EXT                      0x8053
++#define GL_RGB16_EXT                      0x8054
++#define GL_RGBA2_EXT                      0x8055
++#define GL_RGBA4_EXT                      0x8056
++#define GL_RGB5_A1_EXT                    0x8057
++#define GL_RGBA8_EXT                      0x8058
++#define GL_RGB10_A2_EXT                   0x8059
++#define GL_RGBA12_EXT                     0x805A
++#define GL_RGBA16_EXT                     0x805B
++#define GL_TEXTURE_RED_SIZE_EXT           0x805C
++#define GL_TEXTURE_GREEN_SIZE_EXT         0x805D
++#define GL_TEXTURE_BLUE_SIZE_EXT          0x805E
++#define GL_TEXTURE_ALPHA_SIZE_EXT         0x805F
++#define GL_TEXTURE_LUMINANCE_SIZE_EXT     0x8060
++#define GL_TEXTURE_INTENSITY_SIZE_EXT     0x8061
++#define GL_REPLACE_EXT                    0x8062
++#define GL_PROXY_TEXTURE_1D_EXT           0x8063
++#define GL_PROXY_TEXTURE_2D_EXT           0x8064
++#define GL_TEXTURE_TOO_LARGE_EXT          0x8065
++#endif
++
++#ifndef GL_EXT_texture3D
++#define GL_PACK_SKIP_IMAGES_EXT           0x806B
++#define GL_PACK_IMAGE_HEIGHT_EXT          0x806C
++#define GL_UNPACK_SKIP_IMAGES_EXT         0x806D
++#define GL_UNPACK_IMAGE_HEIGHT_EXT        0x806E
++#define GL_TEXTURE_3D_EXT                 0x806F
++#define GL_PROXY_TEXTURE_3D_EXT           0x8070
++#define GL_TEXTURE_DEPTH_EXT              0x8071
++#define GL_TEXTURE_WRAP_R_EXT             0x8072
++#define GL_MAX_3D_TEXTURE_SIZE_EXT        0x8073
++#endif
++
++#ifndef GL_SGIS_texture_filter4
++#define GL_FILTER4_SGIS                   0x8146
++#define GL_TEXTURE_FILTER4_SIZE_SGIS      0x8147
++#endif
++
++#ifndef GL_EXT_subtexture
++#endif
++
++#ifndef GL_EXT_copy_texture
++#endif
++
++#ifndef GL_EXT_histogram
++#define GL_HISTOGRAM_EXT                  0x8024
++#define GL_PROXY_HISTOGRAM_EXT            0x8025
++#define GL_HISTOGRAM_WIDTH_EXT            0x8026
++#define GL_HISTOGRAM_FORMAT_EXT           0x8027
++#define GL_HISTOGRAM_RED_SIZE_EXT         0x8028
++#define GL_HISTOGRAM_GREEN_SIZE_EXT       0x8029
++#define GL_HISTOGRAM_BLUE_SIZE_EXT        0x802A
++#define GL_HISTOGRAM_ALPHA_SIZE_EXT       0x802B
++#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT   0x802C
++#define GL_HISTOGRAM_SINK_EXT             0x802D
++#define GL_MINMAX_EXT                     0x802E
++#define GL_MINMAX_FORMAT_EXT              0x802F
++#define GL_MINMAX_SINK_EXT                0x8030
++#define GL_TABLE_TOO_LARGE_EXT            0x8031
++#endif
++
++#ifndef GL_EXT_convolution
++#define GL_CONVOLUTION_1D_EXT             0x8010
++#define GL_CONVOLUTION_2D_EXT             0x8011
++#define GL_SEPARABLE_2D_EXT               0x8012
++#define GL_CONVOLUTION_BORDER_MODE_EXT    0x8013
++#define GL_CONVOLUTION_FILTER_SCALE_EXT   0x8014
++#define GL_CONVOLUTION_FILTER_BIAS_EXT    0x8015
++#define GL_REDUCE_EXT                     0x8016
++#define GL_CONVOLUTION_FORMAT_EXT         0x8017
++#define GL_CONVOLUTION_WIDTH_EXT          0x8018
++#define GL_CONVOLUTION_HEIGHT_EXT         0x8019
++#define GL_MAX_CONVOLUTION_WIDTH_EXT      0x801A
++#define GL_MAX_CONVOLUTION_HEIGHT_EXT     0x801B
++#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
++#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
++#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
++#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
++#define GL_POST_CONVOLUTION_RED_BIAS_EXT  0x8020
++#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
++#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
++#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
++#endif
++
++#ifndef GL_SGI_color_matrix
++#define GL_COLOR_MATRIX_SGI               0x80B1
++#define GL_COLOR_MATRIX_STACK_DEPTH_SGI   0x80B2
++#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
++#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
++#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
++#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
++#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
++#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
++#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
++#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
++#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
++#endif
++
++#ifndef GL_SGI_color_table
++#define GL_COLOR_TABLE_SGI                0x80D0
++#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
++#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
++#define GL_PROXY_COLOR_TABLE_SGI          0x80D3
++#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
++#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
++#define GL_COLOR_TABLE_SCALE_SGI          0x80D6
++#define GL_COLOR_TABLE_BIAS_SGI           0x80D7
++#define GL_COLOR_TABLE_FORMAT_SGI         0x80D8
++#define GL_COLOR_TABLE_WIDTH_SGI          0x80D9
++#define GL_COLOR_TABLE_RED_SIZE_SGI       0x80DA
++#define GL_COLOR_TABLE_GREEN_SIZE_SGI     0x80DB
++#define GL_COLOR_TABLE_BLUE_SIZE_SGI      0x80DC
++#define GL_COLOR_TABLE_ALPHA_SIZE_SGI     0x80DD
++#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
++#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
++#endif
++
++#ifndef GL_SGIS_pixel_texture
++#define GL_PIXEL_TEXTURE_SGIS             0x8353
++#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
++#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
++#define GL_PIXEL_GROUP_COLOR_SGIS         0x8356
++#endif
++
++#ifndef GL_SGIX_pixel_texture
++#define GL_PIXEL_TEX_GEN_SGIX             0x8139
++#define GL_PIXEL_TEX_GEN_MODE_SGIX        0x832B
++#endif
++
++#ifndef GL_SGIS_texture4D
++#define GL_PACK_SKIP_VOLUMES_SGIS         0x8130
++#define GL_PACK_IMAGE_DEPTH_SGIS          0x8131
++#define GL_UNPACK_SKIP_VOLUMES_SGIS       0x8132
++#define GL_UNPACK_IMAGE_DEPTH_SGIS        0x8133
++#define GL_TEXTURE_4D_SGIS                0x8134
++#define GL_PROXY_TEXTURE_4D_SGIS          0x8135
++#define GL_TEXTURE_4DSIZE_SGIS            0x8136
++#define GL_TEXTURE_WRAP_Q_SGIS            0x8137
++#define GL_MAX_4D_TEXTURE_SIZE_SGIS       0x8138
++#define GL_TEXTURE_4D_BINDING_SGIS        0x814F
++#endif
++
++#ifndef GL_SGI_texture_color_table
++#define GL_TEXTURE_COLOR_TABLE_SGI        0x80BC
++#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI  0x80BD
++#endif
++
++#ifndef GL_EXT_cmyka
++#define GL_CMYK_EXT                       0x800C
++#define GL_CMYKA_EXT                      0x800D
++#define GL_PACK_CMYK_HINT_EXT             0x800E
++#define GL_UNPACK_CMYK_HINT_EXT           0x800F
++#endif
++
++#ifndef GL_EXT_texture_object
++#define GL_TEXTURE_PRIORITY_EXT           0x8066
++#define GL_TEXTURE_RESIDENT_EXT           0x8067
++#define GL_TEXTURE_1D_BINDING_EXT         0x8068
++#define GL_TEXTURE_2D_BINDING_EXT         0x8069
++#define GL_TEXTURE_3D_BINDING_EXT         0x806A
++#endif
++
++#ifndef GL_SGIS_detail_texture
++#define GL_DETAIL_TEXTURE_2D_SGIS         0x8095
++#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
++#define GL_LINEAR_DETAIL_SGIS             0x8097
++#define GL_LINEAR_DETAIL_ALPHA_SGIS       0x8098
++#define GL_LINEAR_DETAIL_COLOR_SGIS       0x8099
++#define GL_DETAIL_TEXTURE_LEVEL_SGIS      0x809A
++#define GL_DETAIL_TEXTURE_MODE_SGIS       0x809B
++#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
++#endif
++
++#ifndef GL_SGIS_sharpen_texture
++#define GL_LINEAR_SHARPEN_SGIS            0x80AD
++#define GL_LINEAR_SHARPEN_ALPHA_SGIS      0x80AE
++#define GL_LINEAR_SHARPEN_COLOR_SGIS      0x80AF
++#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
++#endif
++
++#ifndef GL_EXT_packed_pixels
++#define GL_UNSIGNED_BYTE_3_3_2_EXT        0x8032
++#define GL_UNSIGNED_SHORT_4_4_4_4_EXT     0x8033
++#define GL_UNSIGNED_SHORT_5_5_5_1_EXT     0x8034
++#define GL_UNSIGNED_INT_8_8_8_8_EXT       0x8035
++#define GL_UNSIGNED_INT_10_10_10_2_EXT    0x8036
++#endif
++
++#ifndef GL_SGIS_texture_lod
++#define GL_TEXTURE_MIN_LOD_SGIS           0x813A
++#define GL_TEXTURE_MAX_LOD_SGIS           0x813B
++#define GL_TEXTURE_BASE_LEVEL_SGIS        0x813C
++#define GL_TEXTURE_MAX_LEVEL_SGIS         0x813D
++#endif
++
++#ifndef GL_SGIS_multisample
++#define GL_MULTISAMPLE_SGIS               0x809D
++#define GL_SAMPLE_ALPHA_TO_MASK_SGIS      0x809E
++#define GL_SAMPLE_ALPHA_TO_ONE_SGIS       0x809F
++#define GL_SAMPLE_MASK_SGIS               0x80A0
++#define GL_1PASS_SGIS                     0x80A1
++#define GL_2PASS_0_SGIS                   0x80A2
++#define GL_2PASS_1_SGIS                   0x80A3
++#define GL_4PASS_0_SGIS                   0x80A4
++#define GL_4PASS_1_SGIS                   0x80A5
++#define GL_4PASS_2_SGIS                   0x80A6
++#define GL_4PASS_3_SGIS                   0x80A7
++#define GL_SAMPLE_BUFFERS_SGIS            0x80A8
++#define GL_SAMPLES_SGIS                   0x80A9
++#define GL_SAMPLE_MASK_VALUE_SGIS         0x80AA
++#define GL_SAMPLE_MASK_INVERT_SGIS        0x80AB
++#define GL_SAMPLE_PATTERN_SGIS            0x80AC
++#endif
++
++#ifndef GL_EXT_rescale_normal
++#define GL_RESCALE_NORMAL_EXT             0x803A
++#endif
++
++#ifndef GL_EXT_vertex_array
++#define GL_VERTEX_ARRAY_EXT               0x8074
++#define GL_NORMAL_ARRAY_EXT               0x8075
++#define GL_COLOR_ARRAY_EXT                0x8076
++#define GL_INDEX_ARRAY_EXT                0x8077
++#define GL_TEXTURE_COORD_ARRAY_EXT        0x8078
++#define GL_EDGE_FLAG_ARRAY_EXT            0x8079
++#define GL_VERTEX_ARRAY_SIZE_EXT          0x807A
++#define GL_VERTEX_ARRAY_TYPE_EXT          0x807B
++#define GL_VERTEX_ARRAY_STRIDE_EXT        0x807C
++#define GL_VERTEX_ARRAY_COUNT_EXT         0x807D
++#define GL_NORMAL_ARRAY_TYPE_EXT          0x807E
++#define GL_NORMAL_ARRAY_STRIDE_EXT        0x807F
++#define GL_NORMAL_ARRAY_COUNT_EXT         0x8080
++#define GL_COLOR_ARRAY_SIZE_EXT           0x8081
++#define GL_COLOR_ARRAY_TYPE_EXT           0x8082
++#define GL_COLOR_ARRAY_STRIDE_EXT         0x8083
++#define GL_COLOR_ARRAY_COUNT_EXT          0x8084
++#define GL_INDEX_ARRAY_TYPE_EXT           0x8085
++#define GL_INDEX_ARRAY_STRIDE_EXT         0x8086
++#define GL_INDEX_ARRAY_COUNT_EXT          0x8087
++#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT   0x8088
++#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT   0x8089
++#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
++#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT  0x808B
++#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT     0x808C
++#define GL_EDGE_FLAG_ARRAY_COUNT_EXT      0x808D
++#define GL_VERTEX_ARRAY_POINTER_EXT       0x808E
++#define GL_NORMAL_ARRAY_POINTER_EXT       0x808F
++#define GL_COLOR_ARRAY_POINTER_EXT        0x8090
++#define GL_INDEX_ARRAY_POINTER_EXT        0x8091
++#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
++#define GL_EDGE_FLAG_ARRAY_POINTER_EXT    0x8093
++#endif
++
++#ifndef GL_EXT_misc_attribute
++#endif
++
++#ifndef GL_SGIS_generate_mipmap
++#define GL_GENERATE_MIPMAP_SGIS           0x8191
++#define GL_GENERATE_MIPMAP_HINT_SGIS      0x8192
++#endif
++
++#ifndef GL_SGIX_clipmap
++#define GL_LINEAR_CLIPMAP_LINEAR_SGIX     0x8170
++#define GL_TEXTURE_CLIPMAP_CENTER_SGIX    0x8171
++#define GL_TEXTURE_CLIPMAP_FRAME_SGIX     0x8172
++#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX    0x8173
++#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
++#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
++#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX     0x8176
++#define GL_MAX_CLIPMAP_DEPTH_SGIX         0x8177
++#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
++#define GL_NEAREST_CLIPMAP_NEAREST_SGIX   0x844D
++#define GL_NEAREST_CLIPMAP_LINEAR_SGIX    0x844E
++#define GL_LINEAR_CLIPMAP_NEAREST_SGIX    0x844F
++#endif
++
++#ifndef GL_SGIX_shadow
++#define GL_TEXTURE_COMPARE_SGIX           0x819A
++#define GL_TEXTURE_COMPARE_OPERATOR_SGIX  0x819B
++#define GL_TEXTURE_LEQUAL_R_SGIX          0x819C
++#define GL_TEXTURE_GEQUAL_R_SGIX          0x819D
++#endif
++
++#ifndef GL_SGIS_texture_edge_clamp
++#define GL_CLAMP_TO_EDGE_SGIS             0x812F
++#endif
++
++#ifndef GL_SGIS_texture_border_clamp
++#define GL_CLAMP_TO_BORDER_SGIS           0x812D
++#endif
++
++#ifndef GL_EXT_blend_minmax
++#define GL_FUNC_ADD_EXT                   0x8006
++#define GL_MIN_EXT                        0x8007
++#define GL_MAX_EXT                        0x8008
++#define GL_BLEND_EQUATION_EXT             0x8009
++#endif
++
++#ifndef GL_EXT_blend_subtract
++#define GL_FUNC_SUBTRACT_EXT              0x800A
++#define GL_FUNC_REVERSE_SUBTRACT_EXT      0x800B
++#endif
++
++#ifndef GL_EXT_blend_logic_op
++#endif
++
++#ifndef GL_SGIX_interlace
++#define GL_INTERLACE_SGIX                 0x8094
++#endif
++
++#ifndef GL_SGIX_pixel_tiles
++#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
++#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
++#define GL_PIXEL_TILE_WIDTH_SGIX          0x8140
++#define GL_PIXEL_TILE_HEIGHT_SGIX         0x8141
++#define GL_PIXEL_TILE_GRID_WIDTH_SGIX     0x8142
++#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX    0x8143
++#define GL_PIXEL_TILE_GRID_DEPTH_SGIX     0x8144
++#define GL_PIXEL_TILE_CACHE_SIZE_SGIX     0x8145
++#endif
++
++#ifndef GL_SGIS_texture_select
++#define GL_DUAL_ALPHA4_SGIS               0x8110
++#define GL_DUAL_ALPHA8_SGIS               0x8111
++#define GL_DUAL_ALPHA12_SGIS              0x8112
++#define GL_DUAL_ALPHA16_SGIS              0x8113
++#define GL_DUAL_LUMINANCE4_SGIS           0x8114
++#define GL_DUAL_LUMINANCE8_SGIS           0x8115
++#define GL_DUAL_LUMINANCE12_SGIS          0x8116
++#define GL_DUAL_LUMINANCE16_SGIS          0x8117
++#define GL_DUAL_INTENSITY4_SGIS           0x8118
++#define GL_DUAL_INTENSITY8_SGIS           0x8119
++#define GL_DUAL_INTENSITY12_SGIS          0x811A
++#define GL_DUAL_INTENSITY16_SGIS          0x811B
++#define GL_DUAL_LUMINANCE_ALPHA4_SGIS     0x811C
++#define GL_DUAL_LUMINANCE_ALPHA8_SGIS     0x811D
++#define GL_QUAD_ALPHA4_SGIS               0x811E
++#define GL_QUAD_ALPHA8_SGIS               0x811F
++#define GL_QUAD_LUMINANCE4_SGIS           0x8120
++#define GL_QUAD_LUMINANCE8_SGIS           0x8121
++#define GL_QUAD_INTENSITY4_SGIS           0x8122
++#define GL_QUAD_INTENSITY8_SGIS           0x8123
++#define GL_DUAL_TEXTURE_SELECT_SGIS       0x8124
++#define GL_QUAD_TEXTURE_SELECT_SGIS       0x8125
++#endif
++
++#ifndef GL_SGIX_sprite
++#define GL_SPRITE_SGIX                    0x8148
++#define GL_SPRITE_MODE_SGIX               0x8149
++#define GL_SPRITE_AXIS_SGIX               0x814A
++#define GL_SPRITE_TRANSLATION_SGIX        0x814B
++#define GL_SPRITE_AXIAL_SGIX              0x814C
++#define GL_SPRITE_OBJECT_ALIGNED_SGIX     0x814D
++#define GL_SPRITE_EYE_ALIGNED_SGIX        0x814E
++#endif
++
++#ifndef GL_SGIX_texture_multi_buffer
++#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
++#endif
++
++#ifndef GL_EXT_point_parameters
++#define GL_POINT_SIZE_MIN_EXT             0x8126
++#define GL_POINT_SIZE_MAX_EXT             0x8127
++#define GL_POINT_FADE_THRESHOLD_SIZE_EXT  0x8128
++#define GL_DISTANCE_ATTENUATION_EXT       0x8129
++#endif
++
++#ifndef GL_SGIS_point_parameters
++#define GL_POINT_SIZE_MIN_SGIS            0x8126
++#define GL_POINT_SIZE_MAX_SGIS            0x8127
++#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
++#define GL_DISTANCE_ATTENUATION_SGIS      0x8129
++#endif
++
++#ifndef GL_SGIX_instruments
++#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
++#define GL_INSTRUMENT_MEASUREMENTS_SGIX   0x8181
++#endif
++
++#ifndef GL_SGIX_texture_scale_bias
++#define GL_POST_TEXTURE_FILTER_BIAS_SGIX  0x8179
++#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
++#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
++#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
++#endif
++
++#ifndef GL_SGIX_framezoom
++#define GL_FRAMEZOOM_SGIX                 0x818B
++#define GL_FRAMEZOOM_FACTOR_SGIX          0x818C
++#define GL_MAX_FRAMEZOOM_FACTOR_SGIX      0x818D
++#endif
++
++#ifndef GL_SGIX_tag_sample_buffer
++#endif
++
++#ifndef GL_FfdMaskSGIX
++#define GL_TEXTURE_DEFORMATION_BIT_SGIX   0x00000001
++#define GL_GEOMETRY_DEFORMATION_BIT_SGIX  0x00000002
++#endif
++
++#ifndef GL_SGIX_polynomial_ffd
++#define GL_GEOMETRY_DEFORMATION_SGIX      0x8194
++#define GL_TEXTURE_DEFORMATION_SGIX       0x8195
++#define GL_DEFORMATIONS_MASK_SGIX         0x8196
++#define GL_MAX_DEFORMATION_ORDER_SGIX     0x8197
++#endif
++
++#ifndef GL_SGIX_reference_plane
++#define GL_REFERENCE_PLANE_SGIX           0x817D
++#define GL_REFERENCE_PLANE_EQUATION_SGIX  0x817E
++#endif
++
++#ifndef GL_SGIX_flush_raster
++#endif
++
++#ifndef GL_SGIX_depth_texture
++#define GL_DEPTH_COMPONENT16_SGIX         0x81A5
++#define GL_DEPTH_COMPONENT24_SGIX         0x81A6
++#define GL_DEPTH_COMPONENT32_SGIX         0x81A7
++#endif
++
++#ifndef GL_SGIS_fog_function
++#define GL_FOG_FUNC_SGIS                  0x812A
++#define GL_FOG_FUNC_POINTS_SGIS           0x812B
++#define GL_MAX_FOG_FUNC_POINTS_SGIS       0x812C
++#endif
++
++#ifndef GL_SGIX_fog_offset
++#define GL_FOG_OFFSET_SGIX                0x8198
++#define GL_FOG_OFFSET_VALUE_SGIX          0x8199
++#endif
++
++#ifndef GL_HP_image_transform
++#define GL_IMAGE_SCALE_X_HP               0x8155
++#define GL_IMAGE_SCALE_Y_HP               0x8156
++#define GL_IMAGE_TRANSLATE_X_HP           0x8157
++#define GL_IMAGE_TRANSLATE_Y_HP           0x8158
++#define GL_IMAGE_ROTATE_ANGLE_HP          0x8159
++#define GL_IMAGE_ROTATE_ORIGIN_X_HP       0x815A
++#define GL_IMAGE_ROTATE_ORIGIN_Y_HP       0x815B
++#define GL_IMAGE_MAG_FILTER_HP            0x815C
++#define GL_IMAGE_MIN_FILTER_HP            0x815D
++#define GL_IMAGE_CUBIC_WEIGHT_HP          0x815E
++#define GL_CUBIC_HP                       0x815F
++#define GL_AVERAGE_HP                     0x8160
++#define GL_IMAGE_TRANSFORM_2D_HP          0x8161
++#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
++#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
++#endif
++
++#ifndef GL_HP_convolution_border_modes
++#define GL_IGNORE_BORDER_HP               0x8150
++#define GL_CONSTANT_BORDER_HP             0x8151
++#define GL_REPLICATE_BORDER_HP            0x8153
++#define GL_CONVOLUTION_BORDER_COLOR_HP    0x8154
++#endif
++
++#ifndef GL_INGR_palette_buffer
++#endif
++
++#ifndef GL_SGIX_texture_add_env
++#define GL_TEXTURE_ENV_BIAS_SGIX          0x80BE
++#endif
++
++#ifndef GL_EXT_color_subtable
++#endif
++
++#ifndef GL_PGI_vertex_hints
++#define GL_VERTEX_DATA_HINT_PGI           0x1A22A
++#define GL_VERTEX_CONSISTENT_HINT_PGI     0x1A22B
++#define GL_MATERIAL_SIDE_HINT_PGI         0x1A22C
++#define GL_MAX_VERTEX_HINT_PGI            0x1A22D
++#define GL_COLOR3_BIT_PGI                 0x00010000
++#define GL_COLOR4_BIT_PGI                 0x00020000
++#define GL_EDGEFLAG_BIT_PGI               0x00040000
++#define GL_INDEX_BIT_PGI                  0x00080000
++#define GL_MAT_AMBIENT_BIT_PGI            0x00100000
++#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
++#define GL_MAT_DIFFUSE_BIT_PGI            0x00400000
++#define GL_MAT_EMISSION_BIT_PGI           0x00800000
++#define GL_MAT_COLOR_INDEXES_BIT_PGI      0x01000000
++#define GL_MAT_SHININESS_BIT_PGI          0x02000000
++#define GL_MAT_SPECULAR_BIT_PGI           0x04000000
++#define GL_NORMAL_BIT_PGI                 0x08000000
++#define GL_TEXCOORD1_BIT_PGI              0x10000000
++#define GL_TEXCOORD2_BIT_PGI              0x20000000
++#define GL_TEXCOORD3_BIT_PGI              0x40000000
++#define GL_TEXCOORD4_BIT_PGI              0x80000000
++#define GL_VERTEX23_BIT_PGI               0x00000004
++#define GL_VERTEX4_BIT_PGI                0x00000008
++#endif
++
++#ifndef GL_PGI_misc_hints
++#define GL_PREFER_DOUBLEBUFFER_HINT_PGI   0x1A1F8
++#define GL_CONSERVE_MEMORY_HINT_PGI       0x1A1FD
++#define GL_RECLAIM_MEMORY_HINT_PGI        0x1A1FE
++#define GL_NATIVE_GRAPHICS_HANDLE_PGI     0x1A202
++#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
++#define GL_NATIVE_GRAPHICS_END_HINT_PGI   0x1A204
++#define GL_ALWAYS_FAST_HINT_PGI           0x1A20C
++#define GL_ALWAYS_SOFT_HINT_PGI           0x1A20D
++#define GL_ALLOW_DRAW_OBJ_HINT_PGI        0x1A20E
++#define GL_ALLOW_DRAW_WIN_HINT_PGI        0x1A20F
++#define GL_ALLOW_DRAW_FRG_HINT_PGI        0x1A210
++#define GL_ALLOW_DRAW_MEM_HINT_PGI        0x1A211
++#define GL_STRICT_DEPTHFUNC_HINT_PGI      0x1A216
++#define GL_STRICT_LIGHTING_HINT_PGI       0x1A217
++#define GL_STRICT_SCISSOR_HINT_PGI        0x1A218
++#define GL_FULL_STIPPLE_HINT_PGI          0x1A219
++#define GL_CLIP_NEAR_HINT_PGI             0x1A220
++#define GL_CLIP_FAR_HINT_PGI              0x1A221
++#define GL_WIDE_LINE_HINT_PGI             0x1A222
++#define GL_BACK_NORMALS_HINT_PGI          0x1A223
++#endif
++
++#ifndef GL_EXT_paletted_texture
++#define GL_COLOR_INDEX1_EXT               0x80E2
++#define GL_COLOR_INDEX2_EXT               0x80E3
++#define GL_COLOR_INDEX4_EXT               0x80E4
++#define GL_COLOR_INDEX8_EXT               0x80E5
++#define GL_COLOR_INDEX12_EXT              0x80E6
++#define GL_COLOR_INDEX16_EXT              0x80E7
++#define GL_TEXTURE_INDEX_SIZE_EXT         0x80ED
++#endif
++
++#ifndef GL_EXT_clip_volume_hint
++#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT  0x80F0
++#endif
++
++#ifndef GL_SGIX_list_priority
++#define GL_LIST_PRIORITY_SGIX             0x8182
++#endif
++
++#ifndef GL_SGIX_ir_instrument1
++#define GL_IR_INSTRUMENT1_SGIX            0x817F
++#endif
++
++#ifndef GL_SGIX_calligraphic_fragment
++#define GL_CALLIGRAPHIC_FRAGMENT_SGIX     0x8183
++#endif
++
++#ifndef GL_SGIX_texture_lod_bias
++#define GL_TEXTURE_LOD_BIAS_S_SGIX        0x818E
++#define GL_TEXTURE_LOD_BIAS_T_SGIX        0x818F
++#define GL_TEXTURE_LOD_BIAS_R_SGIX        0x8190
++#endif
++
++#ifndef GL_SGIX_shadow_ambient
++#define GL_SHADOW_AMBIENT_SGIX            0x80BF
++#endif
++
++#ifndef GL_EXT_index_texture
++#endif
++
++#ifndef GL_EXT_index_material
++#define GL_INDEX_MATERIAL_EXT             0x81B8
++#define GL_INDEX_MATERIAL_PARAMETER_EXT   0x81B9
++#define GL_INDEX_MATERIAL_FACE_EXT        0x81BA
++#endif
++
++#ifndef GL_EXT_index_func
++#define GL_INDEX_TEST_EXT                 0x81B5
++#define GL_INDEX_TEST_FUNC_EXT            0x81B6
++#define GL_INDEX_TEST_REF_EXT             0x81B7
++#endif
++
++#ifndef GL_EXT_index_array_formats
++#define GL_IUI_V2F_EXT                    0x81AD
++#define GL_IUI_V3F_EXT                    0x81AE
++#define GL_IUI_N3F_V2F_EXT                0x81AF
++#define GL_IUI_N3F_V3F_EXT                0x81B0
++#define GL_T2F_IUI_V2F_EXT                0x81B1
++#define GL_T2F_IUI_V3F_EXT                0x81B2
++#define GL_T2F_IUI_N3F_V2F_EXT            0x81B3
++#define GL_T2F_IUI_N3F_V3F_EXT            0x81B4
++#endif
++
++#ifndef GL_EXT_compiled_vertex_array
++#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT   0x81A8
++#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT   0x81A9
++#endif
++
++#ifndef GL_EXT_cull_vertex
++#define GL_CULL_VERTEX_EXT                0x81AA
++#define GL_CULL_VERTEX_EYE_POSITION_EXT   0x81AB
++#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
++#endif
++
++#ifndef GL_SGIX_ycrcb
++#define GL_YCRCB_422_SGIX                 0x81BB
++#define GL_YCRCB_444_SGIX                 0x81BC
++#endif
++
++#ifndef GL_SGIX_fragment_lighting
++#define GL_FRAGMENT_LIGHTING_SGIX         0x8400
++#define GL_FRAGMENT_COLOR_MATERIAL_SGIX   0x8401
++#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
++#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
++#define GL_MAX_FRAGMENT_LIGHTS_SGIX       0x8404
++#define GL_MAX_ACTIVE_LIGHTS_SGIX         0x8405
++#define GL_CURRENT_RASTER_NORMAL_SGIX     0x8406
++#define GL_LIGHT_ENV_MODE_SGIX            0x8407
++#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
++#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
++#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
++#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
++#define GL_FRAGMENT_LIGHT0_SGIX           0x840C
++#define GL_FRAGMENT_LIGHT1_SGIX           0x840D
++#define GL_FRAGMENT_LIGHT2_SGIX           0x840E
++#define GL_FRAGMENT_LIGHT3_SGIX           0x840F
++#define GL_FRAGMENT_LIGHT4_SGIX           0x8410
++#define GL_FRAGMENT_LIGHT5_SGIX           0x8411
++#define GL_FRAGMENT_LIGHT6_SGIX           0x8412
++#define GL_FRAGMENT_LIGHT7_SGIX           0x8413
++#endif
++
++#ifndef GL_IBM_rasterpos_clip
++#define GL_RASTER_POSITION_UNCLIPPED_IBM  0x19262
++#endif
++
++#ifndef GL_HP_texture_lighting
++#define GL_TEXTURE_LIGHTING_MODE_HP       0x8167
++#define GL_TEXTURE_POST_SPECULAR_HP       0x8168
++#define GL_TEXTURE_PRE_SPECULAR_HP        0x8169
++#endif
++
++#ifndef GL_EXT_draw_range_elements
++#define GL_MAX_ELEMENTS_VERTICES_EXT      0x80E8
++#define GL_MAX_ELEMENTS_INDICES_EXT       0x80E9
++#endif
++
++#ifndef GL_WIN_phong_shading
++#define GL_PHONG_WIN                      0x80EA
++#define GL_PHONG_HINT_WIN                 0x80EB
++#endif
++
++#ifndef GL_WIN_specular_fog
++#define GL_FOG_SPECULAR_TEXTURE_WIN       0x80EC
++#endif
++
++#ifndef GL_EXT_light_texture
++#define GL_FRAGMENT_MATERIAL_EXT          0x8349
++#define GL_FRAGMENT_NORMAL_EXT            0x834A
++#define GL_FRAGMENT_COLOR_EXT             0x834C
++#define GL_ATTENUATION_EXT                0x834D
++#define GL_SHADOW_ATTENUATION_EXT         0x834E
++#define GL_TEXTURE_APPLICATION_MODE_EXT   0x834F
++#define GL_TEXTURE_LIGHT_EXT              0x8350
++#define GL_TEXTURE_MATERIAL_FACE_EXT      0x8351
++#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
++/* reuse GL_FRAGMENT_DEPTH_EXT */
++#endif
++
++#ifndef GL_SGIX_blend_alpha_minmax
++#define GL_ALPHA_MIN_SGIX                 0x8320
++#define GL_ALPHA_MAX_SGIX                 0x8321
++#endif
++
++#ifndef GL_SGIX_impact_pixel_texture
++#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX   0x8184
++#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX     0x8185
++#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX     0x8186
++#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187
++#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188
++#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX    0x8189
++#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX    0x818A
++#endif
++
++#ifndef GL_EXT_bgra
++#define GL_BGR_EXT                        0x80E0
++#define GL_BGRA_EXT                       0x80E1
++#endif
++
++#ifndef GL_SGIX_async
++#define GL_ASYNC_MARKER_SGIX              0x8329
++#endif
++
++#ifndef GL_SGIX_async_pixel
++#define GL_ASYNC_TEX_IMAGE_SGIX           0x835C
++#define GL_ASYNC_DRAW_PIXELS_SGIX         0x835D
++#define GL_ASYNC_READ_PIXELS_SGIX         0x835E
++#define GL_MAX_ASYNC_TEX_IMAGE_SGIX       0x835F
++#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX     0x8360
++#define GL_MAX_ASYNC_READ_PIXELS_SGIX     0x8361
++#endif
++
++#ifndef GL_SGIX_async_histogram
++#define GL_ASYNC_HISTOGRAM_SGIX           0x832C
++#define GL_MAX_ASYNC_HISTOGRAM_SGIX       0x832D
++#endif
++
++#ifndef GL_INTEL_texture_scissor
++#endif
++
++#ifndef GL_INTEL_parallel_arrays
++#define GL_PARALLEL_ARRAYS_INTEL          0x83F4
++#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
++#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
++#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
++#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
++#endif
++
++#ifndef GL_HP_occlusion_test
++#define GL_OCCLUSION_TEST_HP              0x8165
++#define GL_OCCLUSION_TEST_RESULT_HP       0x8166
++#endif
++
++#ifndef GL_EXT_pixel_transform
++#define GL_PIXEL_TRANSFORM_2D_EXT         0x8330
++#define GL_PIXEL_MAG_FILTER_EXT           0x8331
++#define GL_PIXEL_MIN_FILTER_EXT           0x8332
++#define GL_PIXEL_CUBIC_WEIGHT_EXT         0x8333
++#define GL_CUBIC_EXT                      0x8334
++#define GL_AVERAGE_EXT                    0x8335
++#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
++#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
++#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT  0x8338
++#endif
++
++#ifndef GL_EXT_pixel_transform_color_table
++#endif
++
++#ifndef GL_EXT_shared_texture_palette
++#define GL_SHARED_TEXTURE_PALETTE_EXT     0x81FB
++#endif
++
++#ifndef GL_EXT_separate_specular_color
++#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT  0x81F8
++#define GL_SINGLE_COLOR_EXT               0x81F9
++#define GL_SEPARATE_SPECULAR_COLOR_EXT    0x81FA
++#endif
++
++#ifndef GL_EXT_secondary_color
++#define GL_COLOR_SUM_EXT                  0x8458
++#define GL_CURRENT_SECONDARY_COLOR_EXT    0x8459
++#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
++#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
++#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
++#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
++#define GL_SECONDARY_COLOR_ARRAY_EXT      0x845E
++#endif
++
++#ifndef GL_EXT_texture_perturb_normal
++#define GL_PERTURB_EXT                    0x85AE
++#define GL_TEXTURE_NORMAL_EXT             0x85AF
++#endif
++
++#ifndef GL_EXT_multi_draw_arrays
++#endif
++
++#ifndef GL_EXT_fog_coord
++#define GL_FOG_COORDINATE_SOURCE_EXT      0x8450
++#define GL_FOG_COORDINATE_EXT             0x8451
++#define GL_FRAGMENT_DEPTH_EXT             0x8452
++#define GL_CURRENT_FOG_COORDINATE_EXT     0x8453
++#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT  0x8454
++#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
++#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
++#define GL_FOG_COORDINATE_ARRAY_EXT       0x8457
++#endif
++
++#ifndef GL_REND_screen_coordinates
++#define GL_SCREEN_COORDINATES_REND        0x8490
++#define GL_INVERTED_SCREEN_W_REND         0x8491
++#endif
++
++#ifndef GL_EXT_coordinate_frame
++#define GL_TANGENT_ARRAY_EXT              0x8439
++#define GL_BINORMAL_ARRAY_EXT             0x843A
++#define GL_CURRENT_TANGENT_EXT            0x843B
++#define GL_CURRENT_BINORMAL_EXT           0x843C
++#define GL_TANGENT_ARRAY_TYPE_EXT         0x843E
++#define GL_TANGENT_ARRAY_STRIDE_EXT       0x843F
++#define GL_BINORMAL_ARRAY_TYPE_EXT        0x8440
++#define GL_BINORMAL_ARRAY_STRIDE_EXT      0x8441
++#define GL_TANGENT_ARRAY_POINTER_EXT      0x8442
++#define GL_BINORMAL_ARRAY_POINTER_EXT     0x8443
++#define GL_MAP1_TANGENT_EXT               0x8444
++#define GL_MAP2_TANGENT_EXT               0x8445
++#define GL_MAP1_BINORMAL_EXT              0x8446
++#define GL_MAP2_BINORMAL_EXT              0x8447
++#endif
++
++#ifndef GL_EXT_texture_env_combine
++#define GL_COMBINE_EXT                    0x8570
++#define GL_COMBINE_RGB_EXT                0x8571
++#define GL_COMBINE_ALPHA_EXT              0x8572
++#define GL_RGB_SCALE_EXT                  0x8573
++#define GL_ADD_SIGNED_EXT                 0x8574
++#define GL_INTERPOLATE_EXT                0x8575
++#define GL_CONSTANT_EXT                   0x8576
++#define GL_PRIMARY_COLOR_EXT              0x8577
++#define GL_PREVIOUS_EXT                   0x8578
++#define GL_SOURCE0_RGB_EXT                0x8580
++#define GL_SOURCE1_RGB_EXT                0x8581
++#define GL_SOURCE2_RGB_EXT                0x8582
++#define GL_SOURCE0_ALPHA_EXT              0x8588
++#define GL_SOURCE1_ALPHA_EXT              0x8589
++#define GL_SOURCE2_ALPHA_EXT              0x858A
++#define GL_OPERAND0_RGB_EXT               0x8590
++#define GL_OPERAND1_RGB_EXT               0x8591
++#define GL_OPERAND2_RGB_EXT               0x8592
++#define GL_OPERAND0_ALPHA_EXT             0x8598
++#define GL_OPERAND1_ALPHA_EXT             0x8599
++#define GL_OPERAND2_ALPHA_EXT             0x859A
++#endif
++
++#ifndef GL_APPLE_specular_vector
++#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
++#endif
++
++#ifndef GL_APPLE_transform_hint
++#define GL_TRANSFORM_HINT_APPLE           0x85B1
++#endif
++
++#ifndef GL_SGIX_fog_scale
++#define GL_FOG_SCALE_SGIX                 0x81FC
++#define GL_FOG_SCALE_VALUE_SGIX           0x81FD
++#endif
++
++#ifndef GL_SUNX_constant_data
++#define GL_UNPACK_CONSTANT_DATA_SUNX      0x81D5
++#define GL_TEXTURE_CONSTANT_DATA_SUNX     0x81D6
++#endif
++
++#ifndef GL_SUN_global_alpha
++#define GL_GLOBAL_ALPHA_SUN               0x81D9
++#define GL_GLOBAL_ALPHA_FACTOR_SUN        0x81DA
++#endif
++
++#ifndef GL_SUN_triangle_list
++#define GL_RESTART_SUN                    0x0001
++#define GL_REPLACE_MIDDLE_SUN             0x0002
++#define GL_REPLACE_OLDEST_SUN             0x0003
++#define GL_TRIANGLE_LIST_SUN              0x81D7
++#define GL_REPLACEMENT_CODE_SUN           0x81D8
++#define GL_REPLACEMENT_CODE_ARRAY_SUN     0x85C0
++#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
++#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
++#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
++#define GL_R1UI_V3F_SUN                   0x85C4
++#define GL_R1UI_C4UB_V3F_SUN              0x85C5
++#define GL_R1UI_C3F_V3F_SUN               0x85C6
++#define GL_R1UI_N3F_V3F_SUN               0x85C7
++#define GL_R1UI_C4F_N3F_V3F_SUN           0x85C8
++#define GL_R1UI_T2F_V3F_SUN               0x85C9
++#define GL_R1UI_T2F_N3F_V3F_SUN           0x85CA
++#define GL_R1UI_T2F_C4F_N3F_V3F_SUN       0x85CB
++#endif
++
++#ifndef GL_SUN_vertex
++#endif
++
++#ifndef GL_EXT_blend_func_separate
++#define GL_BLEND_DST_RGB_EXT              0x80C8
++#define GL_BLEND_SRC_RGB_EXT              0x80C9
++#define GL_BLEND_DST_ALPHA_EXT            0x80CA
++#define GL_BLEND_SRC_ALPHA_EXT            0x80CB
++#endif
++
++#ifndef GL_INGR_color_clamp
++#define GL_RED_MIN_CLAMP_INGR             0x8560
++#define GL_GREEN_MIN_CLAMP_INGR           0x8561
++#define GL_BLUE_MIN_CLAMP_INGR            0x8562
++#define GL_ALPHA_MIN_CLAMP_INGR           0x8563
++#define GL_RED_MAX_CLAMP_INGR             0x8564
++#define GL_GREEN_MAX_CLAMP_INGR           0x8565
++#define GL_BLUE_MAX_CLAMP_INGR            0x8566
++#define GL_ALPHA_MAX_CLAMP_INGR           0x8567
++#endif
++
++#ifndef GL_INGR_interlace_read
++#define GL_INTERLACE_READ_INGR            0x8568
++#endif
++
++#ifndef GL_EXT_stencil_wrap
++#define GL_INCR_WRAP_EXT                  0x8507
++#define GL_DECR_WRAP_EXT                  0x8508
++#endif
++
++#ifndef GL_EXT_422_pixels
++#define GL_422_EXT                        0x80CC
++#define GL_422_REV_EXT                    0x80CD
++#define GL_422_AVERAGE_EXT                0x80CE
++#define GL_422_REV_AVERAGE_EXT            0x80CF
++#endif
++
++#ifndef GL_NV_texgen_reflection
++#define GL_NORMAL_MAP_NV                  0x8511
++#define GL_REFLECTION_MAP_NV              0x8512
++#endif
++
++#ifndef GL_EXT_texture_cube_map
++#define GL_NORMAL_MAP_EXT                 0x8511
++#define GL_REFLECTION_MAP_EXT             0x8512
++#define GL_TEXTURE_CUBE_MAP_EXT           0x8513
++#define GL_TEXTURE_BINDING_CUBE_MAP_EXT   0x8514
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
++#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
++#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
++#define GL_PROXY_TEXTURE_CUBE_MAP_EXT     0x851B
++#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT  0x851C
++#endif
++
++#ifndef GL_SUN_convolution_border_modes
++#define GL_WRAP_BORDER_SUN                0x81D4
++#endif
++
++#ifndef GL_EXT_texture_env_add
++#endif
++
++#ifndef GL_EXT_texture_lod_bias
++#define GL_MAX_TEXTURE_LOD_BIAS_EXT       0x84FD
++#define GL_TEXTURE_FILTER_CONTROL_EXT     0x8500
++#define GL_TEXTURE_LOD_BIAS_EXT           0x8501
++#endif
++
++#ifndef GL_EXT_texture_filter_anisotropic
++#define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
++#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
++#endif
++
++#ifndef GL_EXT_vertex_weighting
++#define GL_MODELVIEW0_STACK_DEPTH_EXT     GL_MODELVIEW_STACK_DEPTH
++#define GL_MODELVIEW1_STACK_DEPTH_EXT     0x8502
++#define GL_MODELVIEW0_MATRIX_EXT          GL_MODELVIEW_MATRIX
++#define GL_MODELVIEW1_MATRIX_EXT          0x8506
++#define GL_VERTEX_WEIGHTING_EXT           0x8509
++#define GL_MODELVIEW0_EXT                 GL_MODELVIEW
++#define GL_MODELVIEW1_EXT                 0x850A
++#define GL_CURRENT_VERTEX_WEIGHT_EXT      0x850B
++#define GL_VERTEX_WEIGHT_ARRAY_EXT        0x850C
++#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT   0x850D
++#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT   0x850E
++#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
++#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
++#endif
++
++#ifndef GL_NV_light_max_exponent
++#define GL_MAX_SHININESS_NV               0x8504
++#define GL_MAX_SPOT_EXPONENT_NV           0x8505
++#endif
++
++#ifndef GL_NV_vertex_array_range
++#define GL_VERTEX_ARRAY_RANGE_NV          0x851D
++#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV   0x851E
++#define GL_VERTEX_ARRAY_RANGE_VALID_NV    0x851F
++#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
++#define GL_VERTEX_ARRAY_RANGE_POINTER_NV  0x8521
++#endif
++
++#ifndef GL_NV_register_combiners
++#define GL_REGISTER_COMBINERS_NV          0x8522
++#define GL_VARIABLE_A_NV                  0x8523
++#define GL_VARIABLE_B_NV                  0x8524
++#define GL_VARIABLE_C_NV                  0x8525
++#define GL_VARIABLE_D_NV                  0x8526
++#define GL_VARIABLE_E_NV                  0x8527
++#define GL_VARIABLE_F_NV                  0x8528
++#define GL_VARIABLE_G_NV                  0x8529
++#define GL_CONSTANT_COLOR0_NV             0x852A
++#define GL_CONSTANT_COLOR1_NV             0x852B
++#define GL_PRIMARY_COLOR_NV               0x852C
++#define GL_SECONDARY_COLOR_NV             0x852D
++#define GL_SPARE0_NV                      0x852E
++#define GL_SPARE1_NV                      0x852F
++#define GL_DISCARD_NV                     0x8530
++#define GL_E_TIMES_F_NV                   0x8531
++#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
++#define GL_UNSIGNED_IDENTITY_NV           0x8536
++#define GL_UNSIGNED_INVERT_NV             0x8537
++#define GL_EXPAND_NORMAL_NV               0x8538
++#define GL_EXPAND_NEGATE_NV               0x8539
++#define GL_HALF_BIAS_NORMAL_NV            0x853A
++#define GL_HALF_BIAS_NEGATE_NV            0x853B
++#define GL_SIGNED_IDENTITY_NV             0x853C
++#define GL_SIGNED_NEGATE_NV               0x853D
++#define GL_SCALE_BY_TWO_NV                0x853E
++#define GL_SCALE_BY_FOUR_NV               0x853F
++#define GL_SCALE_BY_ONE_HALF_NV           0x8540
++#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV   0x8541
++#define GL_COMBINER_INPUT_NV              0x8542
++#define GL_COMBINER_MAPPING_NV            0x8543
++#define GL_COMBINER_COMPONENT_USAGE_NV    0x8544
++#define GL_COMBINER_AB_DOT_PRODUCT_NV     0x8545
++#define GL_COMBINER_CD_DOT_PRODUCT_NV     0x8546
++#define GL_COMBINER_MUX_SUM_NV            0x8547
++#define GL_COMBINER_SCALE_NV              0x8548
++#define GL_COMBINER_BIAS_NV               0x8549
++#define GL_COMBINER_AB_OUTPUT_NV          0x854A
++#define GL_COMBINER_CD_OUTPUT_NV          0x854B
++#define GL_COMBINER_SUM_OUTPUT_NV         0x854C
++#define GL_MAX_GENERAL_COMBINERS_NV       0x854D
++#define GL_NUM_GENERAL_COMBINERS_NV       0x854E
++#define GL_COLOR_SUM_CLAMP_NV             0x854F
++#define GL_COMBINER0_NV                   0x8550
++#define GL_COMBINER1_NV                   0x8551
++#define GL_COMBINER2_NV                   0x8552
++#define GL_COMBINER3_NV                   0x8553
++#define GL_COMBINER4_NV                   0x8554
++#define GL_COMBINER5_NV                   0x8555
++#define GL_COMBINER6_NV                   0x8556
++#define GL_COMBINER7_NV                   0x8557
++/* reuse GL_TEXTURE0_ARB */
++/* reuse GL_TEXTURE1_ARB */
++/* reuse GL_ZERO */
++/* reuse GL_NONE */
++/* reuse GL_FOG */
++#endif
++
++#ifndef GL_NV_fog_distance
++#define GL_FOG_DISTANCE_MODE_NV           0x855A
++#define GL_EYE_RADIAL_NV                  0x855B
++#define GL_EYE_PLANE_ABSOLUTE_NV          0x855C
++/* reuse GL_EYE_PLANE */
++#endif
++
++#ifndef GL_NV_texgen_emboss
++#define GL_EMBOSS_LIGHT_NV                0x855D
++#define GL_EMBOSS_CONSTANT_NV             0x855E
++#define GL_EMBOSS_MAP_NV                  0x855F
++#endif
++
++#ifndef GL_NV_blend_square
++#endif
++
++#ifndef GL_NV_texture_env_combine4
++#define GL_COMBINE4_NV                    0x8503
++#define GL_SOURCE3_RGB_NV                 0x8583
++#define GL_SOURCE3_ALPHA_NV               0x858B
++#define GL_OPERAND3_RGB_NV                0x8593
++#define GL_OPERAND3_ALPHA_NV              0x859B
++#endif
++
++#ifndef GL_MESA_resize_buffers
++#endif
++
++#ifndef GL_MESA_window_pos
++#endif
++
++#ifndef GL_EXT_texture_compression_s3tc
++#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT   0x83F0
++#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  0x83F1
++#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  0x83F2
++#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  0x83F3
++#endif
++
++#ifndef GL_IBM_cull_vertex
++#define GL_CULL_VERTEX_IBM                103050
++#endif
++
++#ifndef GL_IBM_multimode_draw_arrays
++#endif
++
++#ifndef GL_IBM_vertex_array_lists
++#define GL_VERTEX_ARRAY_LIST_IBM          103070
++#define GL_NORMAL_ARRAY_LIST_IBM          103071
++#define GL_COLOR_ARRAY_LIST_IBM           103072
++#define GL_INDEX_ARRAY_LIST_IBM           103073
++#define GL_TEXTURE_COORD_ARRAY_LIST_IBM   103074
++#define GL_EDGE_FLAG_ARRAY_LIST_IBM       103075
++#define GL_FOG_COORDINATE_ARRAY_LIST_IBM  103076
++#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
++#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM   103080
++#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM   103081
++#define GL_COLOR_ARRAY_LIST_STRIDE_IBM    103082
++#define GL_INDEX_ARRAY_LIST_STRIDE_IBM    103083
++#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
++#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
++#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
++#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
++#endif
++
++#ifndef GL_SGIX_subsample
++#define GL_PACK_SUBSAMPLE_RATE_SGIX       0x85A0
++#define GL_UNPACK_SUBSAMPLE_RATE_SGIX     0x85A1
++#define GL_PIXEL_SUBSAMPLE_4444_SGIX      0x85A2
++#define GL_PIXEL_SUBSAMPLE_2424_SGIX      0x85A3
++#define GL_PIXEL_SUBSAMPLE_4242_SGIX      0x85A4
++#endif
++
++#ifndef GL_SGIX_ycrcb_subsample
++#endif
++
++#ifndef GL_SGIX_ycrcba
++#define GL_YCRCB_SGIX                     0x8318
++#define GL_YCRCBA_SGIX                    0x8319
++#endif
++
++#ifndef GL_SGI_depth_pass_instrument
++#define GL_DEPTH_PASS_INSTRUMENT_SGIX     0x8310
++#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311
++#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312
++#endif
++
++#ifndef GL_3DFX_texture_compression_FXT1
++#define GL_COMPRESSED_RGB_FXT1_3DFX       0x86B0
++#define GL_COMPRESSED_RGBA_FXT1_3DFX      0x86B1
++#endif
++
++#ifndef GL_3DFX_multisample
++#define GL_MULTISAMPLE_3DFX               0x86B2
++#define GL_SAMPLE_BUFFERS_3DFX            0x86B3
++#define GL_SAMPLES_3DFX                   0x86B4
++#define GL_MULTISAMPLE_BIT_3DFX           0x20000000
++#endif
++
++#ifndef GL_3DFX_tbuffer
++#endif
++
++#ifndef GL_EXT_multisample
++#define GL_MULTISAMPLE_EXT                0x809D
++#define GL_SAMPLE_ALPHA_TO_MASK_EXT       0x809E
++#define GL_SAMPLE_ALPHA_TO_ONE_EXT        0x809F
++#define GL_SAMPLE_MASK_EXT                0x80A0
++#define GL_1PASS_EXT                      0x80A1
++#define GL_2PASS_0_EXT                    0x80A2
++#define GL_2PASS_1_EXT                    0x80A3
++#define GL_4PASS_0_EXT                    0x80A4
++#define GL_4PASS_1_EXT                    0x80A5
++#define GL_4PASS_2_EXT                    0x80A6
++#define GL_4PASS_3_EXT                    0x80A7
++#define GL_SAMPLE_BUFFERS_EXT             0x80A8
++#define GL_SAMPLES_EXT                    0x80A9
++#define GL_SAMPLE_MASK_VALUE_EXT          0x80AA
++#define GL_SAMPLE_MASK_INVERT_EXT         0x80AB
++#define GL_SAMPLE_PATTERN_EXT             0x80AC
++#define GL_MULTISAMPLE_BIT_EXT            0x20000000
++#endif
++
++#ifndef GL_SGIX_vertex_preclip
++#define GL_VERTEX_PRECLIP_SGIX            0x83EE
++#define GL_VERTEX_PRECLIP_HINT_SGIX       0x83EF
++#endif
++
++#ifndef GL_SGIX_convolution_accuracy
++#define GL_CONVOLUTION_HINT_SGIX          0x8316
++#endif
++
++#ifndef GL_SGIX_resample
++#define GL_PACK_RESAMPLE_SGIX             0x842C
++#define GL_UNPACK_RESAMPLE_SGIX           0x842D
++#define GL_RESAMPLE_REPLICATE_SGIX        0x842E
++#define GL_RESAMPLE_ZERO_FILL_SGIX        0x842F
++#define GL_RESAMPLE_DECIMATE_SGIX         0x8430
++#endif
++
++#ifndef GL_SGIS_point_line_texgen
++#define GL_EYE_DISTANCE_TO_POINT_SGIS     0x81F0
++#define GL_OBJECT_DISTANCE_TO_POINT_SGIS  0x81F1
++#define GL_EYE_DISTANCE_TO_LINE_SGIS      0x81F2
++#define GL_OBJECT_DISTANCE_TO_LINE_SGIS   0x81F3
++#define GL_EYE_POINT_SGIS                 0x81F4
++#define GL_OBJECT_POINT_SGIS              0x81F5
++#define GL_EYE_LINE_SGIS                  0x81F6
++#define GL_OBJECT_LINE_SGIS               0x81F7
++#endif
++
++#ifndef GL_SGIS_texture_color_mask
++#define GL_TEXTURE_COLOR_WRITEMASK_SGIS   0x81EF
++#endif
++
++#ifndef GL_EXT_texture_env_dot3
++#define GL_DOT3_RGB_EXT                   0x8740
++#define GL_DOT3_RGBA_EXT                  0x8741
++#endif
++
++#ifndef GL_ATI_texture_mirror_once
++#define GL_MIRROR_CLAMP_ATI               0x8742
++#define GL_MIRROR_CLAMP_TO_EDGE_ATI       0x8743
++#endif
++
++#ifndef GL_NV_fence
++#define GL_ALL_COMPLETED_NV               0x84F2
++#define GL_FENCE_STATUS_NV                0x84F3
++#define GL_FENCE_CONDITION_NV             0x84F4
++#endif
++
++#ifndef GL_IBM_texture_mirrored_repeat
++#define GL_MIRRORED_REPEAT_IBM            0x8370
++#endif
++
++#ifndef GL_NV_evaluators
++#define GL_EVAL_2D_NV                     0x86C0
++#define GL_EVAL_TRIANGULAR_2D_NV          0x86C1
++#define GL_MAP_TESSELLATION_NV            0x86C2
++#define GL_MAP_ATTRIB_U_ORDER_NV          0x86C3
++#define GL_MAP_ATTRIB_V_ORDER_NV          0x86C4
++#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
++#define GL_EVAL_VERTEX_ATTRIB0_NV         0x86C6
++#define GL_EVAL_VERTEX_ATTRIB1_NV         0x86C7
++#define GL_EVAL_VERTEX_ATTRIB2_NV         0x86C8
++#define GL_EVAL_VERTEX_ATTRIB3_NV         0x86C9
++#define GL_EVAL_VERTEX_ATTRIB4_NV         0x86CA
++#define GL_EVAL_VERTEX_ATTRIB5_NV         0x86CB
++#define GL_EVAL_VERTEX_ATTRIB6_NV         0x86CC
++#define GL_EVAL_VERTEX_ATTRIB7_NV         0x86CD
++#define GL_EVAL_VERTEX_ATTRIB8_NV         0x86CE
++#define GL_EVAL_VERTEX_ATTRIB9_NV         0x86CF
++#define GL_EVAL_VERTEX_ATTRIB10_NV        0x86D0
++#define GL_EVAL_VERTEX_ATTRIB11_NV        0x86D1
++#define GL_EVAL_VERTEX_ATTRIB12_NV        0x86D2
++#define GL_EVAL_VERTEX_ATTRIB13_NV        0x86D3
++#define GL_EVAL_VERTEX_ATTRIB14_NV        0x86D4
++#define GL_EVAL_VERTEX_ATTRIB15_NV        0x86D5
++#define GL_MAX_MAP_TESSELLATION_NV        0x86D6
++#define GL_MAX_RATIONAL_EVAL_ORDER_NV     0x86D7
++#endif
++
++#ifndef GL_NV_packed_depth_stencil
++#define GL_DEPTH_STENCIL_NV               0x84F9
++#define GL_UNSIGNED_INT_24_8_NV           0x84FA
++#endif
++
++#ifndef GL_NV_register_combiners2
++#define GL_PER_STAGE_CONSTANTS_NV         0x8535
++#endif
++
++#ifndef GL_NV_texture_compression_vtc
++#endif
++
++#ifndef GL_NV_texture_rectangle
++#define GL_TEXTURE_RECTANGLE_NV           0x84F5
++#define GL_TEXTURE_BINDING_RECTANGLE_NV   0x84F6
++#define GL_PROXY_TEXTURE_RECTANGLE_NV     0x84F7
++#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV  0x84F8
++#endif
++
++#ifndef GL_NV_texture_shader
++#define GL_OFFSET_TEXTURE_RECTANGLE_NV    0x864C
++#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
++#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
++#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
++#define GL_UNSIGNED_INT_S8_S8_8_8_NV      0x86DA
++#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  0x86DB
++#define GL_DSDT_MAG_INTENSITY_NV          0x86DC
++#define GL_SHADER_CONSISTENT_NV           0x86DD
++#define GL_TEXTURE_SHADER_NV              0x86DE
++#define GL_SHADER_OPERATION_NV            0x86DF
++#define GL_CULL_MODES_NV                  0x86E0
++#define GL_OFFSET_TEXTURE_MATRIX_NV       0x86E1
++#define GL_OFFSET_TEXTURE_SCALE_NV        0x86E2
++#define GL_OFFSET_TEXTURE_BIAS_NV         0x86E3
++#define GL_OFFSET_TEXTURE_2D_MATRIX_NV    GL_OFFSET_TEXTURE_MATRIX_NV
++#define GL_OFFSET_TEXTURE_2D_SCALE_NV     GL_OFFSET_TEXTURE_SCALE_NV
++#define GL_OFFSET_TEXTURE_2D_BIAS_NV      GL_OFFSET_TEXTURE_BIAS_NV
++#define GL_PREVIOUS_TEXTURE_INPUT_NV      0x86E4
++#define GL_CONST_EYE_NV                   0x86E5
++#define GL_PASS_THROUGH_NV                0x86E6
++#define GL_CULL_FRAGMENT_NV               0x86E7
++#define GL_OFFSET_TEXTURE_2D_NV           0x86E8
++#define GL_DEPENDENT_AR_TEXTURE_2D_NV     0x86E9
++#define GL_DEPENDENT_GB_TEXTURE_2D_NV     0x86EA
++#define GL_DOT_PRODUCT_NV                 0x86EC
++#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV   0x86ED
++#define GL_DOT_PRODUCT_TEXTURE_2D_NV      0x86EE
++#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
++#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
++#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
++#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
++#define GL_HILO_NV                        0x86F4
++#define GL_DSDT_NV                        0x86F5
++#define GL_DSDT_MAG_NV                    0x86F6
++#define GL_DSDT_MAG_VIB_NV                0x86F7
++#define GL_HILO16_NV                      0x86F8
++#define GL_SIGNED_HILO_NV                 0x86F9
++#define GL_SIGNED_HILO16_NV               0x86FA
++#define GL_SIGNED_RGBA_NV                 0x86FB
++#define GL_SIGNED_RGBA8_NV                0x86FC
++#define GL_SIGNED_RGB_NV                  0x86FE
++#define GL_SIGNED_RGB8_NV                 0x86FF
++#define GL_SIGNED_LUMINANCE_NV            0x8701
++#define GL_SIGNED_LUMINANCE8_NV           0x8702
++#define GL_SIGNED_LUMINANCE_ALPHA_NV      0x8703
++#define GL_SIGNED_LUMINANCE8_ALPHA8_NV    0x8704
++#define GL_SIGNED_ALPHA_NV                0x8705
++#define GL_SIGNED_ALPHA8_NV               0x8706
++#define GL_SIGNED_INTENSITY_NV            0x8707
++#define GL_SIGNED_INTENSITY8_NV           0x8708
++#define GL_DSDT8_NV                       0x8709
++#define GL_DSDT8_MAG8_NV                  0x870A
++#define GL_DSDT8_MAG8_INTENSITY8_NV       0x870B
++#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV   0x870C
++#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
++#define GL_HI_SCALE_NV                    0x870E
++#define GL_LO_SCALE_NV                    0x870F
++#define GL_DS_SCALE_NV                    0x8710
++#define GL_DT_SCALE_NV                    0x8711
++#define GL_MAGNITUDE_SCALE_NV             0x8712
++#define GL_VIBRANCE_SCALE_NV              0x8713
++#define GL_HI_BIAS_NV                     0x8714
++#define GL_LO_BIAS_NV                     0x8715
++#define GL_DS_BIAS_NV                     0x8716
++#define GL_DT_BIAS_NV                     0x8717
++#define GL_MAGNITUDE_BIAS_NV              0x8718
++#define GL_VIBRANCE_BIAS_NV               0x8719
++#define GL_TEXTURE_BORDER_VALUES_NV       0x871A
++#define GL_TEXTURE_HI_SIZE_NV             0x871B
++#define GL_TEXTURE_LO_SIZE_NV             0x871C
++#define GL_TEXTURE_DS_SIZE_NV             0x871D
++#define GL_TEXTURE_DT_SIZE_NV             0x871E
++#define GL_TEXTURE_MAG_SIZE_NV            0x871F
++#endif
++
++#ifndef GL_NV_texture_shader2
++#define GL_DOT_PRODUCT_TEXTURE_3D_NV      0x86EF
++#endif
++
++#ifndef GL_NV_vertex_array_range2
++#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
++#endif
++
++#ifndef GL_NV_vertex_program
++#define GL_VERTEX_PROGRAM_NV              0x8620
++#define GL_VERTEX_STATE_PROGRAM_NV        0x8621
++#define GL_ATTRIB_ARRAY_SIZE_NV           0x8623
++#define GL_ATTRIB_ARRAY_STRIDE_NV         0x8624
++#define GL_ATTRIB_ARRAY_TYPE_NV           0x8625
++#define GL_CURRENT_ATTRIB_NV              0x8626
++#define GL_PROGRAM_LENGTH_NV              0x8627
++#define GL_PROGRAM_STRING_NV              0x8628
++#define GL_MODELVIEW_PROJECTION_NV        0x8629
++#define GL_IDENTITY_NV                    0x862A
++#define GL_INVERSE_NV                     0x862B
++#define GL_TRANSPOSE_NV                   0x862C
++#define GL_INVERSE_TRANSPOSE_NV           0x862D
++#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
++#define GL_MAX_TRACK_MATRICES_NV          0x862F
++#define GL_MATRIX0_NV                     0x8630
++#define GL_MATRIX1_NV                     0x8631
++#define GL_MATRIX2_NV                     0x8632
++#define GL_MATRIX3_NV                     0x8633
++#define GL_MATRIX4_NV                     0x8634
++#define GL_MATRIX5_NV                     0x8635
++#define GL_MATRIX6_NV                     0x8636
++#define GL_MATRIX7_NV                     0x8637
++#define GL_CURRENT_MATRIX_STACK_DEPTH_NV  0x8640
++#define GL_CURRENT_MATRIX_NV              0x8641
++#define GL_VERTEX_PROGRAM_POINT_SIZE_NV   0x8642
++#define GL_VERTEX_PROGRAM_TWO_SIDE_NV     0x8643
++#define GL_PROGRAM_PARAMETER_NV           0x8644
++#define GL_ATTRIB_ARRAY_POINTER_NV        0x8645
++#define GL_PROGRAM_TARGET_NV              0x8646
++#define GL_PROGRAM_RESIDENT_NV            0x8647
++#define GL_TRACK_MATRIX_NV                0x8648
++#define GL_TRACK_MATRIX_TRANSFORM_NV      0x8649
++#define GL_VERTEX_PROGRAM_BINDING_NV      0x864A
++#define GL_PROGRAM_ERROR_POSITION_NV      0x864B
++#define GL_VERTEX_ATTRIB_ARRAY0_NV        0x8650
++#define GL_VERTEX_ATTRIB_ARRAY1_NV        0x8651
++#define GL_VERTEX_ATTRIB_ARRAY2_NV        0x8652
++#define GL_VERTEX_ATTRIB_ARRAY3_NV        0x8653
++#define GL_VERTEX_ATTRIB_ARRAY4_NV        0x8654
++#define GL_VERTEX_ATTRIB_ARRAY5_NV        0x8655
++#define GL_VERTEX_ATTRIB_ARRAY6_NV        0x8656
++#define GL_VERTEX_ATTRIB_ARRAY7_NV        0x8657
++#define GL_VERTEX_ATTRIB_ARRAY8_NV        0x8658
++#define GL_VERTEX_ATTRIB_ARRAY9_NV        0x8659
++#define GL_VERTEX_ATTRIB_ARRAY10_NV       0x865A
++#define GL_VERTEX_ATTRIB_ARRAY11_NV       0x865B
++#define GL_VERTEX_ATTRIB_ARRAY12_NV       0x865C
++#define GL_VERTEX_ATTRIB_ARRAY13_NV       0x865D
++#define GL_VERTEX_ATTRIB_ARRAY14_NV       0x865E
++#define GL_VERTEX_ATTRIB_ARRAY15_NV       0x865F
++#define GL_MAP1_VERTEX_ATTRIB0_4_NV       0x8660
++#define GL_MAP1_VERTEX_ATTRIB1_4_NV       0x8661
++#define GL_MAP1_VERTEX_ATTRIB2_4_NV       0x8662
++#define GL_MAP1_VERTEX_ATTRIB3_4_NV       0x8663
++#define GL_MAP1_VERTEX_ATTRIB4_4_NV       0x8664
++#define GL_MAP1_VERTEX_ATTRIB5_4_NV       0x8665
++#define GL_MAP1_VERTEX_ATTRIB6_4_NV       0x8666
++#define GL_MAP1_VERTEX_ATTRIB7_4_NV       0x8667
++#define GL_MAP1_VERTEX_ATTRIB8_4_NV       0x8668
++#define GL_MAP1_VERTEX_ATTRIB9_4_NV       0x8669
++#define GL_MAP1_VERTEX_ATTRIB10_4_NV      0x866A
++#define GL_MAP1_VERTEX_ATTRIB11_4_NV      0x866B
++#define GL_MAP1_VERTEX_ATTRIB12_4_NV      0x866C
++#define GL_MAP1_VERTEX_ATTRIB13_4_NV      0x866D
++#define GL_MAP1_VERTEX_ATTRIB14_4_NV      0x866E
++#define GL_MAP1_VERTEX_ATTRIB15_4_NV      0x866F
++#define GL_MAP2_VERTEX_ATTRIB0_4_NV       0x8670
++#define GL_MAP2_VERTEX_ATTRIB1_4_NV       0x8671
++#define GL_MAP2_VERTEX_ATTRIB2_4_NV       0x8672
++#define GL_MAP2_VERTEX_ATTRIB3_4_NV       0x8673
++#define GL_MAP2_VERTEX_ATTRIB4_4_NV       0x8674
++#define GL_MAP2_VERTEX_ATTRIB5_4_NV       0x8675
++#define GL_MAP2_VERTEX_ATTRIB6_4_NV       0x8676
++#define GL_MAP2_VERTEX_ATTRIB7_4_NV       0x8677
++#define GL_MAP2_VERTEX_ATTRIB8_4_NV       0x8678
++#define GL_MAP2_VERTEX_ATTRIB9_4_NV       0x8679
++#define GL_MAP2_VERTEX_ATTRIB10_4_NV      0x867A
++#define GL_MAP2_VERTEX_ATTRIB11_4_NV      0x867B
++#define GL_MAP2_VERTEX_ATTRIB12_4_NV      0x867C
++#define GL_MAP2_VERTEX_ATTRIB13_4_NV      0x867D
++#define GL_MAP2_VERTEX_ATTRIB14_4_NV      0x867E
++#define GL_MAP2_VERTEX_ATTRIB15_4_NV      0x867F
++#endif
++
++#ifndef GL_SGIX_texture_coordinate_clamp
++#define GL_TEXTURE_MAX_CLAMP_S_SGIX       0x8369
++#define GL_TEXTURE_MAX_CLAMP_T_SGIX       0x836A
++#define GL_TEXTURE_MAX_CLAMP_R_SGIX       0x836B
++#endif
++
++#ifndef GL_SGIX_scalebias_hint
++#define GL_SCALEBIAS_HINT_SGIX            0x8322
++#endif
++
++#ifndef GL_OML_interlace
++#define GL_INTERLACE_OML                  0x8980
++#define GL_INTERLACE_READ_OML             0x8981
++#endif
++
++#ifndef GL_OML_subsample
++#define GL_FORMAT_SUBSAMPLE_24_24_OML     0x8982
++#define GL_FORMAT_SUBSAMPLE_244_244_OML   0x8983
++#endif
++
++#ifndef GL_OML_resample
++#define GL_PACK_RESAMPLE_OML              0x8984
++#define GL_UNPACK_RESAMPLE_OML            0x8985
++#define GL_RESAMPLE_REPLICATE_OML         0x8986
++#define GL_RESAMPLE_ZERO_FILL_OML         0x8987
++#define GL_RESAMPLE_AVERAGE_OML           0x8988
++#define GL_RESAMPLE_DECIMATE_OML          0x8989
++#endif
++
++#ifndef GL_NV_copy_depth_to_color
++#define GL_DEPTH_STENCIL_TO_RGBA_NV       0x886E
++#define GL_DEPTH_STENCIL_TO_BGRA_NV       0x886F
++#endif
++
++#ifndef GL_ATI_envmap_bumpmap
++#define GL_BUMP_ROT_MATRIX_ATI            0x8775
++#define GL_BUMP_ROT_MATRIX_SIZE_ATI       0x8776
++#define GL_BUMP_NUM_TEX_UNITS_ATI         0x8777
++#define GL_BUMP_TEX_UNITS_ATI             0x8778
++#define GL_DUDV_ATI                       0x8779
++#define GL_DU8DV8_ATI                     0x877A
++#define GL_BUMP_ENVMAP_ATI                0x877B
++#define GL_BUMP_TARGET_ATI                0x877C
++#endif
++
++#ifndef GL_ATI_fragment_shader
++#define GL_FRAGMENT_SHADER_ATI            0x8920
++#define GL_REG_0_ATI                      0x8921
++#define GL_REG_1_ATI                      0x8922
++#define GL_REG_2_ATI                      0x8923
++#define GL_REG_3_ATI                      0x8924
++#define GL_REG_4_ATI                      0x8925
++#define GL_REG_5_ATI                      0x8926
++#define GL_REG_6_ATI                      0x8927
++#define GL_REG_7_ATI                      0x8928
++#define GL_REG_8_ATI                      0x8929
++#define GL_REG_9_ATI                      0x892A
++#define GL_REG_10_ATI                     0x892B
++#define GL_REG_11_ATI                     0x892C
++#define GL_REG_12_ATI                     0x892D
++#define GL_REG_13_ATI                     0x892E
++#define GL_REG_14_ATI                     0x892F
++#define GL_REG_15_ATI                     0x8930
++#define GL_REG_16_ATI                     0x8931
++#define GL_REG_17_ATI                     0x8932
++#define GL_REG_18_ATI                     0x8933
++#define GL_REG_19_ATI                     0x8934
++#define GL_REG_20_ATI                     0x8935
++#define GL_REG_21_ATI                     0x8936
++#define GL_REG_22_ATI                     0x8937
++#define GL_REG_23_ATI                     0x8938
++#define GL_REG_24_ATI                     0x8939
++#define GL_REG_25_ATI                     0x893A
++#define GL_REG_26_ATI                     0x893B
++#define GL_REG_27_ATI                     0x893C
++#define GL_REG_28_ATI                     0x893D
++#define GL_REG_29_ATI                     0x893E
++#define GL_REG_30_ATI                     0x893F
++#define GL_REG_31_ATI                     0x8940
++#define GL_CON_0_ATI                      0x8941
++#define GL_CON_1_ATI                      0x8942
++#define GL_CON_2_ATI                      0x8943
++#define GL_CON_3_ATI                      0x8944
++#define GL_CON_4_ATI                      0x8945
++#define GL_CON_5_ATI                      0x8946
++#define GL_CON_6_ATI                      0x8947
++#define GL_CON_7_ATI                      0x8948
++#define GL_CON_8_ATI                      0x8949
++#define GL_CON_9_ATI                      0x894A
++#define GL_CON_10_ATI                     0x894B
++#define GL_CON_11_ATI                     0x894C
++#define GL_CON_12_ATI                     0x894D
++#define GL_CON_13_ATI                     0x894E
++#define GL_CON_14_ATI                     0x894F
++#define GL_CON_15_ATI                     0x8950
++#define GL_CON_16_ATI                     0x8951
++#define GL_CON_17_ATI                     0x8952
++#define GL_CON_18_ATI                     0x8953
++#define GL_CON_19_ATI                     0x8954
++#define GL_CON_20_ATI                     0x8955
++#define GL_CON_21_ATI                     0x8956
++#define GL_CON_22_ATI                     0x8957
++#define GL_CON_23_ATI                     0x8958
++#define GL_CON_24_ATI                     0x8959
++#define GL_CON_25_ATI                     0x895A
++#define GL_CON_26_ATI                     0x895B
++#define GL_CON_27_ATI                     0x895C
++#define GL_CON_28_ATI                     0x895D
++#define GL_CON_29_ATI                     0x895E
++#define GL_CON_30_ATI                     0x895F
++#define GL_CON_31_ATI                     0x8960
++#define GL_MOV_ATI                        0x8961
++#define GL_ADD_ATI                        0x8963
++#define GL_MUL_ATI                        0x8964
++#define GL_SUB_ATI                        0x8965
++#define GL_DOT3_ATI                       0x8966
++#define GL_DOT4_ATI                       0x8967
++#define GL_MAD_ATI                        0x8968
++#define GL_LERP_ATI                       0x8969
++#define GL_CND_ATI                        0x896A
++#define GL_CND0_ATI                       0x896B
++#define GL_DOT2_ADD_ATI                   0x896C
++#define GL_SECONDARY_INTERPOLATOR_ATI     0x896D
++#define GL_NUM_FRAGMENT_REGISTERS_ATI     0x896E
++#define GL_NUM_FRAGMENT_CONSTANTS_ATI     0x896F
++#define GL_NUM_PASSES_ATI                 0x8970
++#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI  0x8971
++#define GL_NUM_INSTRUCTIONS_TOTAL_ATI     0x8972
++#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
++#define GL_NUM_LOOPBACK_COMPONENTS_ATI    0x8974
++#define GL_COLOR_ALPHA_PAIRING_ATI        0x8975
++#define GL_SWIZZLE_STR_ATI                0x8976
++#define GL_SWIZZLE_STQ_ATI                0x8977
++#define GL_SWIZZLE_STR_DR_ATI             0x8978
++#define GL_SWIZZLE_STQ_DQ_ATI             0x8979
++#define GL_SWIZZLE_STRQ_ATI               0x897A
++#define GL_SWIZZLE_STRQ_DQ_ATI            0x897B
++#define GL_RED_BIT_ATI                    0x00000001
++#define GL_GREEN_BIT_ATI                  0x00000002
++#define GL_BLUE_BIT_ATI                   0x00000004
++#define GL_2X_BIT_ATI                     0x00000001
++#define GL_4X_BIT_ATI                     0x00000002
++#define GL_8X_BIT_ATI                     0x00000004
++#define GL_HALF_BIT_ATI                   0x00000008
++#define GL_QUARTER_BIT_ATI                0x00000010
++#define GL_EIGHTH_BIT_ATI                 0x00000020
++#define GL_SATURATE_BIT_ATI               0x00000040
++#define GL_COMP_BIT_ATI                   0x00000002
++#define GL_NEGATE_BIT_ATI                 0x00000004
++#define GL_BIAS_BIT_ATI                   0x00000008
++#endif
++
++#ifndef GL_ATI_pn_triangles
++#define GL_PN_TRIANGLES_ATI               0x87F0
++#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
++#define GL_PN_TRIANGLES_POINT_MODE_ATI    0x87F2
++#define GL_PN_TRIANGLES_NORMAL_MODE_ATI   0x87F3
++#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
++#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
++#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
++#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
++#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
++#endif
++
++#ifndef GL_ATI_vertex_array_object
++#define GL_STATIC_ATI                     0x8760
++#define GL_DYNAMIC_ATI                    0x8761
++#define GL_PRESERVE_ATI                   0x8762
++#define GL_DISCARD_ATI                    0x8763
++#define GL_OBJECT_BUFFER_SIZE_ATI         0x8764
++#define GL_OBJECT_BUFFER_USAGE_ATI        0x8765
++#define GL_ARRAY_OBJECT_BUFFER_ATI        0x8766
++#define GL_ARRAY_OBJECT_OFFSET_ATI        0x8767
++#endif
++
++#ifndef GL_EXT_vertex_shader
++#define GL_VERTEX_SHADER_EXT              0x8780
++#define GL_VERTEX_SHADER_BINDING_EXT      0x8781
++#define GL_OP_INDEX_EXT                   0x8782
++#define GL_OP_NEGATE_EXT                  0x8783
++#define GL_OP_DOT3_EXT                    0x8784
++#define GL_OP_DOT4_EXT                    0x8785
++#define GL_OP_MUL_EXT                     0x8786
++#define GL_OP_ADD_EXT                     0x8787
++#define GL_OP_MADD_EXT                    0x8788
++#define GL_OP_FRAC_EXT                    0x8789
++#define GL_OP_MAX_EXT                     0x878A
++#define GL_OP_MIN_EXT                     0x878B
++#define GL_OP_SET_GE_EXT                  0x878C
++#define GL_OP_SET_LT_EXT                  0x878D
++#define GL_OP_CLAMP_EXT                   0x878E
++#define GL_OP_FLOOR_EXT                   0x878F
++#define GL_OP_ROUND_EXT                   0x8790
++#define GL_OP_EXP_BASE_2_EXT              0x8791
++#define GL_OP_LOG_BASE_2_EXT              0x8792
++#define GL_OP_POWER_EXT                   0x8793
++#define GL_OP_RECIP_EXT                   0x8794
++#define GL_OP_RECIP_SQRT_EXT              0x8795
++#define GL_OP_SUB_EXT                     0x8796
++#define GL_OP_CROSS_PRODUCT_EXT           0x8797
++#define GL_OP_MULTIPLY_MATRIX_EXT         0x8798
++#define GL_OP_MOV_EXT                     0x8799
++#define GL_OUTPUT_VERTEX_EXT              0x879A
++#define GL_OUTPUT_COLOR0_EXT              0x879B
++#define GL_OUTPUT_COLOR1_EXT              0x879C
++#define GL_OUTPUT_TEXTURE_COORD0_EXT      0x879D
++#define GL_OUTPUT_TEXTURE_COORD1_EXT      0x879E
++#define GL_OUTPUT_TEXTURE_COORD2_EXT      0x879F
++#define GL_OUTPUT_TEXTURE_COORD3_EXT      0x87A0
++#define GL_OUTPUT_TEXTURE_COORD4_EXT      0x87A1
++#define GL_OUTPUT_TEXTURE_COORD5_EXT      0x87A2
++#define GL_OUTPUT_TEXTURE_COORD6_EXT      0x87A3
++#define GL_OUTPUT_TEXTURE_COORD7_EXT      0x87A4
++#define GL_OUTPUT_TEXTURE_COORD8_EXT      0x87A5
++#define GL_OUTPUT_TEXTURE_COORD9_EXT      0x87A6
++#define GL_OUTPUT_TEXTURE_COORD10_EXT     0x87A7
++#define GL_OUTPUT_TEXTURE_COORD11_EXT     0x87A8
++#define GL_OUTPUT_TEXTURE_COORD12_EXT     0x87A9
++#define GL_OUTPUT_TEXTURE_COORD13_EXT     0x87AA
++#define GL_OUTPUT_TEXTURE_COORD14_EXT     0x87AB
++#define GL_OUTPUT_TEXTURE_COORD15_EXT     0x87AC
++#define GL_OUTPUT_TEXTURE_COORD16_EXT     0x87AD
++#define GL_OUTPUT_TEXTURE_COORD17_EXT     0x87AE
++#define GL_OUTPUT_TEXTURE_COORD18_EXT     0x87AF
++#define GL_OUTPUT_TEXTURE_COORD19_EXT     0x87B0
++#define GL_OUTPUT_TEXTURE_COORD20_EXT     0x87B1
++#define GL_OUTPUT_TEXTURE_COORD21_EXT     0x87B2
++#define GL_OUTPUT_TEXTURE_COORD22_EXT     0x87B3
++#define GL_OUTPUT_TEXTURE_COORD23_EXT     0x87B4
++#define GL_OUTPUT_TEXTURE_COORD24_EXT     0x87B5
++#define GL_OUTPUT_TEXTURE_COORD25_EXT     0x87B6
++#define GL_OUTPUT_TEXTURE_COORD26_EXT     0x87B7
++#define GL_OUTPUT_TEXTURE_COORD27_EXT     0x87B8
++#define GL_OUTPUT_TEXTURE_COORD28_EXT     0x87B9
++#define GL_OUTPUT_TEXTURE_COORD29_EXT     0x87BA
++#define GL_OUTPUT_TEXTURE_COORD30_EXT     0x87BB
++#define GL_OUTPUT_TEXTURE_COORD31_EXT     0x87BC
++#define GL_OUTPUT_FOG_EXT                 0x87BD
++#define GL_SCALAR_EXT                     0x87BE
++#define GL_VECTOR_EXT                     0x87BF
++#define GL_MATRIX_EXT                     0x87C0
++#define GL_VARIANT_EXT                    0x87C1
++#define GL_INVARIANT_EXT                  0x87C2
++#define GL_LOCAL_CONSTANT_EXT             0x87C3
++#define GL_LOCAL_EXT                      0x87C4
++#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
++#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
++#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
++#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
++#define GL_MAX_VERTEX_SHADER_LOCALS_EXT   0x87C9
++#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
++#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
++#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
++#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
++#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
++#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
++#define GL_VERTEX_SHADER_VARIANTS_EXT     0x87D0
++#define GL_VERTEX_SHADER_INVARIANTS_EXT   0x87D1
++#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
++#define GL_VERTEX_SHADER_LOCALS_EXT       0x87D3
++#define GL_VERTEX_SHADER_OPTIMIZED_EXT    0x87D4
++#define GL_X_EXT                          0x87D5
++#define GL_Y_EXT                          0x87D6
++#define GL_Z_EXT                          0x87D7
++#define GL_W_EXT                          0x87D8
++#define GL_NEGATIVE_X_EXT                 0x87D9
++#define GL_NEGATIVE_Y_EXT                 0x87DA
++#define GL_NEGATIVE_Z_EXT                 0x87DB
++#define GL_NEGATIVE_W_EXT                 0x87DC
++#define GL_ZERO_EXT                       0x87DD
++#define GL_ONE_EXT                        0x87DE
++#define GL_NEGATIVE_ONE_EXT               0x87DF
++#define GL_NORMALIZED_RANGE_EXT           0x87E0
++#define GL_FULL_RANGE_EXT                 0x87E1
++#define GL_CURRENT_VERTEX_EXT             0x87E2
++#define GL_MVP_MATRIX_EXT                 0x87E3
++#define GL_VARIANT_VALUE_EXT              0x87E4
++#define GL_VARIANT_DATATYPE_EXT           0x87E5
++#define GL_VARIANT_ARRAY_STRIDE_EXT       0x87E6
++#define GL_VARIANT_ARRAY_TYPE_EXT         0x87E7
++#define GL_VARIANT_ARRAY_EXT              0x87E8
++#define GL_VARIANT_ARRAY_POINTER_EXT      0x87E9
++#define GL_INVARIANT_VALUE_EXT            0x87EA
++#define GL_INVARIANT_DATATYPE_EXT         0x87EB
++#define GL_LOCAL_CONSTANT_VALUE_EXT       0x87EC
++#define GL_LOCAL_CONSTANT_DATATYPE_EXT    0x87ED
++#endif
++
++#ifndef GL_ATI_vertex_streams
++#define GL_MAX_VERTEX_STREAMS_ATI         0x876B
++#define GL_VERTEX_STREAM0_ATI             0x876C
++#define GL_VERTEX_STREAM1_ATI             0x876D
++#define GL_VERTEX_STREAM2_ATI             0x876E
++#define GL_VERTEX_STREAM3_ATI             0x876F
++#define GL_VERTEX_STREAM4_ATI             0x8770
++#define GL_VERTEX_STREAM5_ATI             0x8771
++#define GL_VERTEX_STREAM6_ATI             0x8772
++#define GL_VERTEX_STREAM7_ATI             0x8773
++#define GL_VERTEX_SOURCE_ATI              0x8774
++#endif
++
++#ifndef GL_ATI_element_array
++#define GL_ELEMENT_ARRAY_ATI              0x8768
++#define GL_ELEMENT_ARRAY_TYPE_ATI         0x8769
++#define GL_ELEMENT_ARRAY_POINTER_ATI      0x876A
++#endif
++
++#ifndef GL_SUN_mesh_array
++#define GL_QUAD_MESH_SUN                  0x8614
++#define GL_TRIANGLE_MESH_SUN              0x8615
++#endif
++
++#ifndef GL_SUN_slice_accum
++#define GL_SLICE_ACCUM_SUN                0x85CC
++#endif
++
++#ifndef GL_NV_multisample_filter_hint
++#define GL_MULTISAMPLE_FILTER_HINT_NV     0x8534
++#endif
++
++#ifndef GL_NV_depth_clamp
++#define GL_DEPTH_CLAMP_NV                 0x864F
++#endif
++
++#ifndef GL_NV_occlusion_query
++#define GL_PIXEL_COUNTER_BITS_NV          0x8864
++#define GL_CURRENT_OCCLUSION_QUERY_ID_NV  0x8865
++#define GL_PIXEL_COUNT_NV                 0x8866
++#define GL_PIXEL_COUNT_AVAILABLE_NV       0x8867
++#endif
++
++#ifndef GL_NV_point_sprite
++#define GL_POINT_SPRITE_NV                0x8861
++#define GL_COORD_REPLACE_NV               0x8862
++#define GL_POINT_SPRITE_R_MODE_NV         0x8863
++#endif
++
++#ifndef GL_NV_texture_shader3
++#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
++#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
++#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
++#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
++#define GL_OFFSET_HILO_TEXTURE_2D_NV      0x8854
++#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
++#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
++#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
++#define GL_DEPENDENT_HILO_TEXTURE_2D_NV   0x8858
++#define GL_DEPENDENT_RGB_TEXTURE_3D_NV    0x8859
++#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
++#define GL_DOT_PRODUCT_PASS_THROUGH_NV    0x885B
++#define GL_DOT_PRODUCT_TEXTURE_1D_NV      0x885C
++#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
++#define GL_HILO8_NV                       0x885E
++#define GL_SIGNED_HILO8_NV                0x885F
++#define GL_FORCE_BLUE_TO_ONE_NV           0x8860
++#endif
++
++#ifndef GL_NV_vertex_program1_1
++#endif
++
++#ifndef GL_EXT_shadow_funcs
++#endif
++
++#ifndef GL_EXT_stencil_two_side
++#define GL_STENCIL_TEST_TWO_SIDE_EXT      0x8910
++#define GL_ACTIVE_STENCIL_FACE_EXT        0x8911
++#endif
++
++#ifndef GL_ATI_text_fragment_shader
++#define GL_TEXT_FRAGMENT_SHADER_ATI       0x8200
++#endif
++
++#ifndef GL_APPLE_client_storage
++#define GL_UNPACK_CLIENT_STORAGE_APPLE    0x85B2
++#endif
++
++#ifndef GL_APPLE_element_array
++#define GL_ELEMENT_ARRAY_APPLE            0x8768
++#define GL_ELEMENT_ARRAY_TYPE_APPLE       0x8769
++#define GL_ELEMENT_ARRAY_POINTER_APPLE    0x876A
++#endif
++
++#ifndef GL_APPLE_fence
++#define GL_DRAW_PIXELS_APPLE              0x8A0A
++#define GL_FENCE_APPLE                    0x8A0B
++#endif
++
++#ifndef GL_APPLE_vertex_array_object
++#define GL_VERTEX_ARRAY_BINDING_APPLE     0x85B5
++#endif
++
++#ifndef GL_APPLE_vertex_array_range
++#define GL_VERTEX_ARRAY_RANGE_APPLE       0x851D
++#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
++#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
++#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
++#define GL_STORAGE_CACHED_APPLE           0x85BE
++#define GL_STORAGE_SHARED_APPLE           0x85BF
++#endif
++
++#ifndef GL_APPLE_ycbcr_422
++#define GL_YCBCR_422_APPLE                0x85B9
++#define GL_UNSIGNED_SHORT_8_8_APPLE       0x85BA
++#define GL_UNSIGNED_SHORT_8_8_REV_APPLE   0x85BB
++#endif
++
++#ifndef GL_S3_s3tc
++#define GL_RGB_S3TC                       0x83A0
++#define GL_RGB4_S3TC                      0x83A1
++#define GL_RGBA_S3TC                      0x83A2
++#define GL_RGBA4_S3TC                     0x83A3
++#endif
++
++#ifndef GL_ATI_draw_buffers
++#define GL_MAX_DRAW_BUFFERS_ATI           0x8824
++#define GL_DRAW_BUFFER0_ATI               0x8825
++#define GL_DRAW_BUFFER1_ATI               0x8826
++#define GL_DRAW_BUFFER2_ATI               0x8827
++#define GL_DRAW_BUFFER3_ATI               0x8828
++#define GL_DRAW_BUFFER4_ATI               0x8829
++#define GL_DRAW_BUFFER5_ATI               0x882A
++#define GL_DRAW_BUFFER6_ATI               0x882B
++#define GL_DRAW_BUFFER7_ATI               0x882C
++#define GL_DRAW_BUFFER8_ATI               0x882D
++#define GL_DRAW_BUFFER9_ATI               0x882E
++#define GL_DRAW_BUFFER10_ATI              0x882F
++#define GL_DRAW_BUFFER11_ATI              0x8830
++#define GL_DRAW_BUFFER12_ATI              0x8831
++#define GL_DRAW_BUFFER13_ATI              0x8832
++#define GL_DRAW_BUFFER14_ATI              0x8833
++#define GL_DRAW_BUFFER15_ATI              0x8834
++#endif
++
++#ifndef GL_ATI_pixel_format_float
++#define GL_TYPE_RGBA_FLOAT_ATI            0x8820
++#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
++#endif
++
++#ifndef GL_ATI_texture_env_combine3
++#define GL_MODULATE_ADD_ATI               0x8744
++#define GL_MODULATE_SIGNED_ADD_ATI        0x8745
++#define GL_MODULATE_SUBTRACT_ATI          0x8746
++#endif
++
++#ifndef GL_ATI_texture_float
++#define GL_RGBA_FLOAT32_ATI               0x8814
++#define GL_RGB_FLOAT32_ATI                0x8815
++#define GL_ALPHA_FLOAT32_ATI              0x8816
++#define GL_INTENSITY_FLOAT32_ATI          0x8817
++#define GL_LUMINANCE_FLOAT32_ATI          0x8818
++#define GL_LUMINANCE_ALPHA_FLOAT32_ATI    0x8819
++#define GL_RGBA_FLOAT16_ATI               0x881A
++#define GL_RGB_FLOAT16_ATI                0x881B
++#define GL_ALPHA_FLOAT16_ATI              0x881C
++#define GL_INTENSITY_FLOAT16_ATI          0x881D
++#define GL_LUMINANCE_FLOAT16_ATI          0x881E
++#define GL_LUMINANCE_ALPHA_FLOAT16_ATI    0x881F
++#endif
++
++#ifndef GL_NV_float_buffer
++#define GL_FLOAT_R_NV                     0x8880
++#define GL_FLOAT_RG_NV                    0x8881
++#define GL_FLOAT_RGB_NV                   0x8882
++#define GL_FLOAT_RGBA_NV                  0x8883
++#define GL_FLOAT_R16_NV                   0x8884
++#define GL_FLOAT_R32_NV                   0x8885
++#define GL_FLOAT_RG16_NV                  0x8886
++#define GL_FLOAT_RG32_NV                  0x8887
++#define GL_FLOAT_RGB16_NV                 0x8888
++#define GL_FLOAT_RGB32_NV                 0x8889
++#define GL_FLOAT_RGBA16_NV                0x888A
++#define GL_FLOAT_RGBA32_NV                0x888B
++#define GL_TEXTURE_FLOAT_COMPONENTS_NV    0x888C
++#define GL_FLOAT_CLEAR_COLOR_VALUE_NV     0x888D
++#define GL_FLOAT_RGBA_MODE_NV             0x888E
++#endif
++
++#ifndef GL_NV_fragment_program
++#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
++#define GL_FRAGMENT_PROGRAM_NV            0x8870
++#define GL_MAX_TEXTURE_COORDS_NV          0x8871
++#define GL_MAX_TEXTURE_IMAGE_UNITS_NV     0x8872
++#define GL_FRAGMENT_PROGRAM_BINDING_NV    0x8873
++#define GL_PROGRAM_ERROR_STRING_NV        0x8874
++#endif
++
++#ifndef GL_NV_half_float
++#define GL_HALF_FLOAT_NV                  0x140B
++#endif
++
++#ifndef GL_NV_pixel_data_range
++#define GL_WRITE_PIXEL_DATA_RANGE_NV      0x8878
++#define GL_READ_PIXEL_DATA_RANGE_NV       0x8879
++#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
++#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
++#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
++#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
++#endif
++
++#ifndef GL_NV_primitive_restart
++#define GL_PRIMITIVE_RESTART_NV           0x8558
++#define GL_PRIMITIVE_RESTART_INDEX_NV     0x8559
++#endif
++
++#ifndef GL_NV_texture_expand_normal
++#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
++#endif
++
++#ifndef GL_NV_vertex_program2
++#endif
++
++#ifndef GL_ATI_map_object_buffer
++#endif
++
++#ifndef GL_ATI_separate_stencil
++#define GL_STENCIL_BACK_FUNC_ATI          0x8800
++#define GL_STENCIL_BACK_FAIL_ATI          0x8801
++#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
++#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
++#endif
++
++#ifndef GL_ATI_vertex_attrib_array_object
++#endif
++
++#ifndef GL_OES_read_format
++#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
++#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
++#endif
++
++#ifndef GL_EXT_depth_bounds_test
++#define GL_DEPTH_BOUNDS_TEST_EXT          0x8890
++#define GL_DEPTH_BOUNDS_EXT               0x8891
++#endif
++
++#ifndef GL_EXT_texture_mirror_clamp
++#define GL_MIRROR_CLAMP_EXT               0x8742
++#define GL_MIRROR_CLAMP_TO_EDGE_EXT       0x8743
++#define GL_MIRROR_CLAMP_TO_BORDER_EXT     0x8912
++#endif
++
++#ifndef GL_EXT_blend_equation_separate
++#define GL_BLEND_EQUATION_RGB_EXT         GL_BLEND_EQUATION
++#define GL_BLEND_EQUATION_ALPHA_EXT       0x883D
++#endif
++
++#ifndef GL_MESA_pack_invert
++#define GL_PACK_INVERT_MESA               0x8758
++#endif
++
++#ifndef GL_MESA_ycbcr_texture
++#define GL_UNSIGNED_SHORT_8_8_MESA        0x85BA
++#define GL_UNSIGNED_SHORT_8_8_REV_MESA    0x85BB
++#define GL_YCBCR_MESA                     0x8757
++#endif
++
++#ifndef GL_EXT_pixel_buffer_object
++#define GL_PIXEL_PACK_BUFFER_EXT          0x88EB
++#define GL_PIXEL_UNPACK_BUFFER_EXT        0x88EC
++#define GL_PIXEL_PACK_BUFFER_BINDING_EXT  0x88ED
++#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
++#endif
++
++#ifndef GL_NV_fragment_program_option
++#endif
++
++#ifndef GL_NV_fragment_program2
++#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
++#define GL_MAX_PROGRAM_CALL_DEPTH_NV      0x88F5
++#define GL_MAX_PROGRAM_IF_DEPTH_NV        0x88F6
++#define GL_MAX_PROGRAM_LOOP_DEPTH_NV      0x88F7
++#define GL_MAX_PROGRAM_LOOP_COUNT_NV      0x88F8
++#endif
++
++#ifndef GL_NV_vertex_program2_option
++/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
++/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */
++#endif
++
++#ifndef GL_NV_vertex_program3
++/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
++#endif
++
++#ifndef GL_EXT_framebuffer_object
++#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
++#define GL_MAX_RENDERBUFFER_SIZE_EXT      0x84E8
++#define GL_FRAMEBUFFER_BINDING_EXT        0x8CA6
++#define GL_RENDERBUFFER_BINDING_EXT       0x8CA7
++#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
++#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
++#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
++#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
++#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
++#define GL_FRAMEBUFFER_COMPLETE_EXT       0x8CD5
++#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
++#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
++#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
++#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
++#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
++#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
++#define GL_FRAMEBUFFER_UNSUPPORTED_EXT    0x8CDD
++#define GL_MAX_COLOR_ATTACHMENTS_EXT      0x8CDF
++#define GL_COLOR_ATTACHMENT0_EXT          0x8CE0
++#define GL_COLOR_ATTACHMENT1_EXT          0x8CE1
++#define GL_COLOR_ATTACHMENT2_EXT          0x8CE2
++#define GL_COLOR_ATTACHMENT3_EXT          0x8CE3
++#define GL_COLOR_ATTACHMENT4_EXT          0x8CE4
++#define GL_COLOR_ATTACHMENT5_EXT          0x8CE5
++#define GL_COLOR_ATTACHMENT6_EXT          0x8CE6
++#define GL_COLOR_ATTACHMENT7_EXT          0x8CE7
++#define GL_COLOR_ATTACHMENT8_EXT          0x8CE8
++#define GL_COLOR_ATTACHMENT9_EXT          0x8CE9
++#define GL_COLOR_ATTACHMENT10_EXT         0x8CEA
++#define GL_COLOR_ATTACHMENT11_EXT         0x8CEB
++#define GL_COLOR_ATTACHMENT12_EXT         0x8CEC
++#define GL_COLOR_ATTACHMENT13_EXT         0x8CED
++#define GL_COLOR_ATTACHMENT14_EXT         0x8CEE
++#define GL_COLOR_ATTACHMENT15_EXT         0x8CEF
++#define GL_DEPTH_ATTACHMENT_EXT           0x8D00
++#define GL_STENCIL_ATTACHMENT_EXT         0x8D20
++#define GL_FRAMEBUFFER_EXT                0x8D40
++#define GL_RENDERBUFFER_EXT               0x8D41
++#define GL_RENDERBUFFER_WIDTH_EXT         0x8D42
++#define GL_RENDERBUFFER_HEIGHT_EXT        0x8D43
++#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
++#define GL_STENCIL_INDEX1_EXT             0x8D46
++#define GL_STENCIL_INDEX4_EXT             0x8D47
++#define GL_STENCIL_INDEX8_EXT             0x8D48
++#define GL_STENCIL_INDEX16_EXT            0x8D49
++#define GL_RENDERBUFFER_RED_SIZE_EXT      0x8D50
++#define GL_RENDERBUFFER_GREEN_SIZE_EXT    0x8D51
++#define GL_RENDERBUFFER_BLUE_SIZE_EXT     0x8D52
++#define GL_RENDERBUFFER_ALPHA_SIZE_EXT    0x8D53
++#define GL_RENDERBUFFER_DEPTH_SIZE_EXT    0x8D54
++#define GL_RENDERBUFFER_STENCIL_SIZE_EXT  0x8D55
++#endif
++
++#ifndef GL_GREMEDY_string_marker
++#endif
++
++#ifndef GL_EXT_packed_depth_stencil
++#define GL_DEPTH_STENCIL_EXT              0x84F9
++#define GL_UNSIGNED_INT_24_8_EXT          0x84FA
++#define GL_DEPTH24_STENCIL8_EXT           0x88F0
++#define GL_TEXTURE_STENCIL_SIZE_EXT       0x88F1
++#endif
++
++#ifndef GL_EXT_stencil_clear_tag
++#define GL_STENCIL_TAG_BITS_EXT           0x88F2
++#define GL_STENCIL_CLEAR_TAG_VALUE_EXT    0x88F3
++#endif
++
++#ifndef GL_EXT_texture_sRGB
++#define GL_SRGB_EXT                       0x8C40
++#define GL_SRGB8_EXT                      0x8C41
++#define GL_SRGB_ALPHA_EXT                 0x8C42
++#define GL_SRGB8_ALPHA8_EXT               0x8C43
++#define GL_SLUMINANCE_ALPHA_EXT           0x8C44
++#define GL_SLUMINANCE8_ALPHA8_EXT         0x8C45
++#define GL_SLUMINANCE_EXT                 0x8C46
++#define GL_SLUMINANCE8_EXT                0x8C47
++#define GL_COMPRESSED_SRGB_EXT            0x8C48
++#define GL_COMPRESSED_SRGB_ALPHA_EXT      0x8C49
++#define GL_COMPRESSED_SLUMINANCE_EXT      0x8C4A
++#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
++#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT  0x8C4C
++#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
++#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
++#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
++#endif
++
++#ifndef GL_EXT_framebuffer_blit
++#define GL_READ_FRAMEBUFFER_EXT           0x8CA8
++#define GL_DRAW_FRAMEBUFFER_EXT           0x8CA9
++#define GL_READ_FRAMEBUFFER_BINDING_EXT   GL_FRAMEBUFFER_BINDING_EXT
++#define GL_DRAW_FRAMEBUFFER_BINDING_EXT   0x8CAA
++#endif
++
++#ifndef GL_EXT_framebuffer_multisample
++#define GL_RENDERBUFFER_SAMPLES_EXT       0x8CAB
++#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
++#define GL_MAX_SAMPLES_EXT                0x8D57
++#endif
++
++#ifndef GL_MESAX_texture_stack
++#define GL_TEXTURE_1D_STACK_MESAX         0x8759
++#define GL_TEXTURE_2D_STACK_MESAX         0x875A
++#define GL_PROXY_TEXTURE_1D_STACK_MESAX   0x875B
++#define GL_PROXY_TEXTURE_2D_STACK_MESAX   0x875C
++#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
++#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
++#endif
++
++#ifndef GL_EXT_timer_query
++#define GL_TIME_ELAPSED_EXT               0x88BF
++#endif
++
++#ifndef GL_EXT_gpu_program_parameters
++#endif
++
++#ifndef GL_APPLE_flush_buffer_range
++#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
++#define GL_BUFFER_FLUSHING_UNMAP_APPLE    0x8A13
++#endif
++
++#ifndef GL_NV_gpu_program4
++#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV    0x8904
++#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV    0x8905
++#define GL_PROGRAM_ATTRIB_COMPONENTS_NV   0x8906
++#define GL_PROGRAM_RESULT_COMPONENTS_NV   0x8907
++#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
++#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
++#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
++#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
++#endif
++
++#ifndef GL_NV_geometry_program4
++#define GL_LINES_ADJACENCY_EXT            0x000A
++#define GL_LINE_STRIP_ADJACENCY_EXT       0x000B
++#define GL_TRIANGLES_ADJACENCY_EXT        0x000C
++#define GL_TRIANGLE_STRIP_ADJACENCY_EXT   0x000D
++#define GL_GEOMETRY_PROGRAM_NV            0x8C26
++#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
++#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
++#define GL_GEOMETRY_VERTICES_OUT_EXT      0x8DDA
++#define GL_GEOMETRY_INPUT_TYPE_EXT        0x8DDB
++#define GL_GEOMETRY_OUTPUT_TYPE_EXT       0x8DDC
++#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
++#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
++#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
++#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
++#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
++#define GL_PROGRAM_POINT_SIZE_EXT         0x8642
++#endif
++
++#ifndef GL_EXT_geometry_shader4
++#define GL_GEOMETRY_SHADER_EXT            0x8DD9
++/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */
++/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */
++/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */
++/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */
++#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
++#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
++#define GL_MAX_VARYING_COMPONENTS_EXT     0x8B4B
++#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
++#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
++#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
++/* reuse GL_LINES_ADJACENCY_EXT */
++/* reuse GL_LINE_STRIP_ADJACENCY_EXT */
++/* reuse GL_TRIANGLES_ADJACENCY_EXT */
++/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */
++/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */
++/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */
++/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */
++/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
++/* reuse GL_PROGRAM_POINT_SIZE_EXT */
++#endif
++
++#ifndef GL_NV_vertex_program4
++#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
++#endif
++
++#ifndef GL_EXT_gpu_shader4
++#define GL_SAMPLER_1D_ARRAY_EXT           0x8DC0
++#define GL_SAMPLER_2D_ARRAY_EXT           0x8DC1
++#define GL_SAMPLER_BUFFER_EXT             0x8DC2
++#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT    0x8DC3
++#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT    0x8DC4
++#define GL_SAMPLER_CUBE_SHADOW_EXT        0x8DC5
++#define GL_UNSIGNED_INT_VEC2_EXT          0x8DC6
++#define GL_UNSIGNED_INT_VEC3_EXT          0x8DC7
++#define GL_UNSIGNED_INT_VEC4_EXT          0x8DC8
++#define GL_INT_SAMPLER_1D_EXT             0x8DC9
++#define GL_INT_SAMPLER_2D_EXT             0x8DCA
++#define GL_INT_SAMPLER_3D_EXT             0x8DCB
++#define GL_INT_SAMPLER_CUBE_EXT           0x8DCC
++#define GL_INT_SAMPLER_2D_RECT_EXT        0x8DCD
++#define GL_INT_SAMPLER_1D_ARRAY_EXT       0x8DCE
++#define GL_INT_SAMPLER_2D_ARRAY_EXT       0x8DCF
++#define GL_INT_SAMPLER_BUFFER_EXT         0x8DD0
++#define GL_UNSIGNED_INT_SAMPLER_1D_EXT    0x8DD1
++#define GL_UNSIGNED_INT_SAMPLER_2D_EXT    0x8DD2
++#define GL_UNSIGNED_INT_SAMPLER_3D_EXT    0x8DD3
++#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT  0x8DD4
++#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
++#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
++#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
++#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
++#endif
++
++#ifndef GL_EXT_draw_instanced
++#endif
++
++#ifndef GL_EXT_packed_float
++#define GL_R11F_G11F_B10F_EXT             0x8C3A
++#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
++#define GL_RGBA_SIGNED_COMPONENTS_EXT     0x8C3C
++#endif
++
++#ifndef GL_EXT_texture_array
++#define GL_TEXTURE_1D_ARRAY_EXT           0x8C18
++#define GL_PROXY_TEXTURE_1D_ARRAY_EXT     0x8C19
++#define GL_TEXTURE_2D_ARRAY_EXT           0x8C1A
++#define GL_PROXY_TEXTURE_2D_ARRAY_EXT     0x8C1B
++#define GL_TEXTURE_BINDING_1D_ARRAY_EXT   0x8C1C
++#define GL_TEXTURE_BINDING_2D_ARRAY_EXT   0x8C1D
++#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT   0x88FF
++#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
++/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
++#endif
++
++#ifndef GL_EXT_texture_buffer_object
++#define GL_TEXTURE_BUFFER_EXT             0x8C2A
++#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT    0x8C2B
++#define GL_TEXTURE_BINDING_BUFFER_EXT     0x8C2C
++#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
++#define GL_TEXTURE_BUFFER_FORMAT_EXT      0x8C2E
++#endif
++
++#ifndef GL_EXT_texture_compression_latc
++#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
++#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
++#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
++#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
++#endif
++
++#ifndef GL_EXT_texture_compression_rgtc
++#define GL_COMPRESSED_RED_RGTC1_EXT       0x8DBB
++#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
++#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
++#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
++#endif
++
++#ifndef GL_EXT_texture_shared_exponent
++#define GL_RGB9_E5_EXT                    0x8C3D
++#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT   0x8C3E
++#define GL_TEXTURE_SHARED_SIZE_EXT        0x8C3F
++#endif
++
++#ifndef GL_NV_depth_buffer_float
++#define GL_DEPTH_COMPONENT32F_NV          0x8DAB
++#define GL_DEPTH32F_STENCIL8_NV           0x8DAC
++#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
++#define GL_DEPTH_BUFFER_FLOAT_MODE_NV     0x8DAF
++#endif
++
++#ifndef GL_NV_fragment_program4
++#endif
++
++#ifndef GL_NV_framebuffer_multisample_coverage
++#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
++#define GL_RENDERBUFFER_COLOR_SAMPLES_NV  0x8E10
++#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
++#define GL_MULTISAMPLE_COVERAGE_MODES_NV  0x8E12
++#endif
++
++#ifndef GL_EXT_framebuffer_sRGB
++#define GL_FRAMEBUFFER_SRGB_EXT           0x8DB9
++#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT   0x8DBA
++#endif
++
++#ifndef GL_NV_geometry_shader4
++#endif
++
++#ifndef GL_NV_parameter_buffer_object
++#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
++#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
++#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
++#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
++#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
++#endif
++
++#ifndef GL_EXT_draw_buffers2
++#endif
++
++#ifndef GL_NV_transform_feedback
++#define GL_BACK_PRIMARY_COLOR_NV          0x8C77
++#define GL_BACK_SECONDARY_COLOR_NV        0x8C78
++#define GL_TEXTURE_COORD_NV               0x8C79
++#define GL_CLIP_DISTANCE_NV               0x8C7A
++#define GL_VERTEX_ID_NV                   0x8C7B
++#define GL_PRIMITIVE_ID_NV                0x8C7C
++#define GL_GENERIC_ATTRIB_NV              0x8C7D
++#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV  0x8C7E
++#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
++#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
++#define GL_ACTIVE_VARYINGS_NV             0x8C81
++#define GL_ACTIVE_VARYING_MAX_LENGTH_NV   0x8C82
++#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
++#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
++#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
++#define GL_TRANSFORM_FEEDBACK_RECORD_NV   0x8C86
++#define GL_PRIMITIVES_GENERATED_NV        0x8C87
++#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
++#define GL_RASTERIZER_DISCARD_NV          0x8C89
++#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A
++#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
++#define GL_INTERLEAVED_ATTRIBS_NV         0x8C8C
++#define GL_SEPARATE_ATTRIBS_NV            0x8C8D
++#define GL_TRANSFORM_FEEDBACK_BUFFER_NV   0x8C8E
++#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
++#endif
++
++#ifndef GL_EXT_bindable_uniform
++#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
++#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
++#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
++#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT  0x8DED
++#define GL_UNIFORM_BUFFER_EXT             0x8DEE
++#define GL_UNIFORM_BUFFER_BINDING_EXT     0x8DEF
++#endif
++
++#ifndef GL_EXT_texture_integer
++#define GL_RGBA32UI_EXT                   0x8D70
++#define GL_RGB32UI_EXT                    0x8D71
++#define GL_ALPHA32UI_EXT                  0x8D72
++#define GL_INTENSITY32UI_EXT              0x8D73
++#define GL_LUMINANCE32UI_EXT              0x8D74
++#define GL_LUMINANCE_ALPHA32UI_EXT        0x8D75
++#define GL_RGBA16UI_EXT                   0x8D76
++#define GL_RGB16UI_EXT                    0x8D77
++#define GL_ALPHA16UI_EXT                  0x8D78
++#define GL_INTENSITY16UI_EXT              0x8D79
++#define GL_LUMINANCE16UI_EXT              0x8D7A
++#define GL_LUMINANCE_ALPHA16UI_EXT        0x8D7B
++#define GL_RGBA8UI_EXT                    0x8D7C
++#define GL_RGB8UI_EXT                     0x8D7D
++#define GL_ALPHA8UI_EXT                   0x8D7E
++#define GL_INTENSITY8UI_EXT               0x8D7F
++#define GL_LUMINANCE8UI_EXT               0x8D80
++#define GL_LUMINANCE_ALPHA8UI_EXT         0x8D81
++#define GL_RGBA32I_EXT                    0x8D82
++#define GL_RGB32I_EXT                     0x8D83
++#define GL_ALPHA32I_EXT                   0x8D84
++#define GL_INTENSITY32I_EXT               0x8D85
++#define GL_LUMINANCE32I_EXT               0x8D86
++#define GL_LUMINANCE_ALPHA32I_EXT         0x8D87
++#define GL_RGBA16I_EXT                    0x8D88
++#define GL_RGB16I_EXT                     0x8D89
++#define GL_ALPHA16I_EXT                   0x8D8A
++#define GL_INTENSITY16I_EXT               0x8D8B
++#define GL_LUMINANCE16I_EXT               0x8D8C
++#define GL_LUMINANCE_ALPHA16I_EXT         0x8D8D
++#define GL_RGBA8I_EXT                     0x8D8E
++#define GL_RGB8I_EXT                      0x8D8F
++#define GL_ALPHA8I_EXT                    0x8D90
++#define GL_INTENSITY8I_EXT                0x8D91
++#define GL_LUMINANCE8I_EXT                0x8D92
++#define GL_LUMINANCE_ALPHA8I_EXT          0x8D93
++#define GL_RED_INTEGER_EXT                0x8D94
++#define GL_GREEN_INTEGER_EXT              0x8D95
++#define GL_BLUE_INTEGER_EXT               0x8D96
++#define GL_ALPHA_INTEGER_EXT              0x8D97
++#define GL_RGB_INTEGER_EXT                0x8D98
++#define GL_RGBA_INTEGER_EXT               0x8D99
++#define GL_BGR_INTEGER_EXT                0x8D9A
++#define GL_BGRA_INTEGER_EXT               0x8D9B
++#define GL_LUMINANCE_INTEGER_EXT          0x8D9C
++#define GL_LUMINANCE_ALPHA_INTEGER_EXT    0x8D9D
++#define GL_RGBA_INTEGER_MODE_EXT          0x8D9E
++#endif
++
++
++/*************************************************************/
++
++#include <stddef.h>
++#ifndef GL_VERSION_2_0
++/* GL type for program/shader text */
++typedef char GLchar;			/* native character */
++#endif
++
++#ifndef GL_VERSION_1_5
++/* GL types for handling large vertex buffer objects */
++typedef ptrdiff_t GLintptr;
++typedef ptrdiff_t GLsizeiptr;
++#endif
++
++#ifndef GL_ARB_vertex_buffer_object
++/* GL types for handling large vertex buffer objects */
++typedef ptrdiff_t GLintptrARB;
++typedef ptrdiff_t GLsizeiptrARB;
++#endif
++
++#ifndef GL_ARB_shader_objects
++/* GL types for handling shader object handles and program/shader text */
++typedef char GLcharARB;		/* native character */
++typedef unsigned int GLhandleARB;	/* shader object handle */
++#endif
++
++/* GL types for "half" precision (s10e5) float data in host memory */
++#ifndef GL_ARB_half_float_pixel
++typedef unsigned short GLhalfARB;
++#endif
++
++#ifndef GL_NV_half_float
++typedef unsigned short GLhalfNV;
++#endif
++
++#ifndef GLEXT_64_TYPES_DEFINED
++/* This code block is duplicated in glext.h, so must be protected */
++#define GLEXT_64_TYPES_DEFINED
++/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
++/* (as used in the GL_EXT_timer_query extension). */
++#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
++#include <inttypes.h>
++#elif defined(__sun__)
++#include <inttypes.h>
++#if defined(__STDC__)
++#if defined(__arch64__)
++typedef long int int64_t;
++typedef unsigned long int uint64_t;
++#else
++typedef long long int int64_t;
++typedef unsigned long long int uint64_t;
++#endif /* __arch64__ */
++#endif /* __STDC__ */
++#elif defined( __VMS )
++#include <inttypes.h>
++#elif defined(__SCO__) || defined(__USLC__)
++#include <stdint.h>
++#elif defined(__UNIXOS2__) || defined(__SOL64__)
++typedef long int int32_t;
++typedef long long int int64_t;
++typedef unsigned long long int uint64_t;
++#elif defined(_WIN32) && defined(__GNUC__)
++#include <stdint.h>
++#elif defined(_WIN32)
++typedef __int32 int32_t;
++typedef __int64 int64_t;
++typedef unsigned __int64 uint64_t;
++#else
++#include <inttypes.h>     /* Fallback option */
++#endif
++#endif
++
++#ifndef GL_EXT_timer_query
++typedef int64_t GLint64EXT;
++typedef uint64_t GLuint64EXT;
++#endif
++
++#ifndef GL_VERSION_1_2
++#define GL_VERSION_1_2 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf);
++GLAPI void APIENTRY glBlendEquation (GLenum);
++GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
++GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei);
++GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei);
++GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat);
++GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei);
++GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
++GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
++GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
++GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean);
++GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean);
++GLAPI void APIENTRY glResetHistogram (GLenum);
++GLAPI void APIENTRY glResetMinmax (GLenum);
++GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
++typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
++typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
++typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
++typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
++typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
++typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
++typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
++typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
++typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
++#endif
++
++#ifndef GL_VERSION_1_3
++#define GL_VERSION_1_3 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glActiveTexture (GLenum);
++GLAPI void APIENTRY glClientActiveTexture (GLenum);
++GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint);
++GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort);
++GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *);
++GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint);
++GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort);
++GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *);
++GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint);
++GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *);
++GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *);
++GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *);
++GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *);
++GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *);
++GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *);
++GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean);
++GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
++typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
++typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
++typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
++typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
++#endif
++
++#ifndef GL_VERSION_1_4
++#define GL_VERSION_1_4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glFogCoordf (GLfloat);
++GLAPI void APIENTRY glFogCoordfv (const GLfloat *);
++GLAPI void APIENTRY glFogCoordd (GLdouble);
++GLAPI void APIENTRY glFogCoorddv (const GLdouble *);
++GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei);
++GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
++GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat);
++GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *);
++GLAPI void APIENTRY glPointParameteri (GLenum, GLint);
++GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *);
++GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte);
++GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *);
++GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *);
++GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *);
++GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint);
++GLAPI void APIENTRY glSecondaryColor3iv (const GLint *);
++GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *);
++GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte);
++GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *);
++GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *);
++GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort);
++GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *);
++GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos2dv (const GLdouble *);
++GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos2fv (const GLfloat *);
++GLAPI void APIENTRY glWindowPos2i (GLint, GLint);
++GLAPI void APIENTRY glWindowPos2iv (const GLint *);
++GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos2sv (const GLshort *);
++GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos3dv (const GLdouble *);
++GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos3fv (const GLfloat *);
++GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint);
++GLAPI void APIENTRY glWindowPos3iv (const GLint *);
++GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos3sv (const GLshort *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
++typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord);
++typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
++typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord);
++typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
++typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
++typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v);
++#endif
++
++#ifndef GL_VERSION_1_5
++#define GL_VERSION_1_5 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *);
++GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *);
++GLAPI GLboolean APIENTRY glIsQuery (GLuint);
++GLAPI void APIENTRY glBeginQuery (GLenum, GLuint);
++GLAPI void APIENTRY glEndQuery (GLenum);
++GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *);
++GLAPI void APIENTRY glBindBuffer (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *);
++GLAPI GLboolean APIENTRY glIsBuffer (GLuint);
++GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum);
++GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *);
++GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *);
++GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum);
++GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum);
++GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
++typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
++typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
++typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
++typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
++typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
++typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
++typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
++typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
++typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
++typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
++typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
++typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params);
++#endif
++
++#ifndef GL_VERSION_2_0
++#define GL_VERSION_2_0 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum);
++GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *);
++GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint);
++GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint);
++GLAPI void APIENTRY glAttachShader (GLuint, GLuint);
++GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *);
++GLAPI void APIENTRY glCompileShader (GLuint);
++GLAPI GLuint APIENTRY glCreateProgram (void);
++GLAPI GLuint APIENTRY glCreateShader (GLenum);
++GLAPI void APIENTRY glDeleteProgram (GLuint);
++GLAPI void APIENTRY glDeleteShader (GLuint);
++GLAPI void APIENTRY glDetachShader (GLuint, GLuint);
++GLAPI void APIENTRY glDisableVertexAttribArray (GLuint);
++GLAPI void APIENTRY glEnableVertexAttribArray (GLuint);
++GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
++GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
++GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *);
++GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *);
++GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
++GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *);
++GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *);
++GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *);
++GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *);
++GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *);
++GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *);
++GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *);
++GLAPI GLboolean APIENTRY glIsProgram (GLuint);
++GLAPI GLboolean APIENTRY glIsShader (GLuint);
++GLAPI void APIENTRY glLinkProgram (GLuint);
++GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *);
++GLAPI void APIENTRY glUseProgram (GLuint);
++GLAPI void APIENTRY glUniform1f (GLint, GLfloat);
++GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat);
++GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glUniform1i (GLint, GLint);
++GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint);
++GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glValidateProgram (GLuint);
++GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble);
++GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat);
++GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort);
++GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *);
++GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
++GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *);
++GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *);
++GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *);
++GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
++typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
++typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
++typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
++typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
++typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
++typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
++typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
++typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
++typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
++typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
++typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
++typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
++typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
++typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
++typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
++typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
++typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
++typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
++typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
++typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
++typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
++typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
++typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
++typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
++typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
++typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
++typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
++typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
++typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
++typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
++typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
++typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
++typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
++typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
++typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
++typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
++typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
++#endif
++
++#ifndef GL_VERSION_2_1
++#define GL_VERSION_2_1 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++#endif
++
++#ifndef GL_ARB_multitexture
++#define GL_ARB_multitexture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glActiveTextureARB (GLenum);
++GLAPI void APIENTRY glClientActiveTextureARB (GLenum);
++GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint);
++GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort);
++GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *);
++GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint);
++GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort);
++GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *);
++GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint);
++GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *);
++GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *);
++GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *);
++GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *);
++GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
++#endif
++
++#ifndef GL_ARB_transpose_matrix
++#define GL_ARB_transpose_matrix 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *);
++GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *);
++GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *);
++GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
++typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
++typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
++typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
++#endif
++
++#ifndef GL_ARB_multisample
++#define GL_ARB_multisample 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
++#endif
++
++#ifndef GL_ARB_texture_env_add
++#define GL_ARB_texture_env_add 1
++#endif
++
++#ifndef GL_ARB_texture_cube_map
++#define GL_ARB_texture_cube_map 1
++#endif
++
++#ifndef GL_ARB_texture_compression
++#define GL_ARB_texture_compression 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
++typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img);
++#endif
++
++#ifndef GL_ARB_texture_border_clamp
++#define GL_ARB_texture_border_clamp 1
++#endif
++
++#ifndef GL_ARB_point_parameters
++#define GL_ARB_point_parameters 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat);
++GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
++#endif
++
++#ifndef GL_ARB_vertex_blend
++#define GL_ARB_vertex_blend 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *);
++GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *);
++GLAPI void APIENTRY glWeightivARB (GLint, const GLint *);
++GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *);
++GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *);
++GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *);
++GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *);
++GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *);
++GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glVertexBlendARB (GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights);
++typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights);
++typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights);
++typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights);
++typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights);
++typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights);
++typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights);
++typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights);
++typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count);
++#endif
++
++#ifndef GL_ARB_matrix_palette
++#define GL_ARB_matrix_palette 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint);
++GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *);
++GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *);
++GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *);
++GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
++typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices);
++typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices);
++typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices);
++typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
++#endif
++
++#ifndef GL_ARB_texture_env_combine
++#define GL_ARB_texture_env_combine 1
++#endif
++
++#ifndef GL_ARB_texture_env_crossbar
++#define GL_ARB_texture_env_crossbar 1
++#endif
++
++#ifndef GL_ARB_texture_env_dot3
++#define GL_ARB_texture_env_dot3 1
++#endif
++
++#ifndef GL_ARB_texture_mirrored_repeat
++#define GL_ARB_texture_mirrored_repeat 1
++#endif
++
++#ifndef GL_ARB_depth_texture
++#define GL_ARB_depth_texture 1
++#endif
++
++#ifndef GL_ARB_shadow
++#define GL_ARB_shadow 1
++#endif
++
++#ifndef GL_ARB_shadow_ambient
++#define GL_ARB_shadow_ambient 1
++#endif
++
++#ifndef GL_ARB_window_pos
++#define GL_ARB_window_pos 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *);
++GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *);
++GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint);
++GLAPI void APIENTRY glWindowPos2ivARB (const GLint *);
++GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos2svARB (const GLshort *);
++GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *);
++GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *);
++GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint);
++GLAPI void APIENTRY glWindowPos3ivARB (const GLint *);
++GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos3svARB (const GLshort *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v);
++#endif
++
++#ifndef GL_ARB_vertex_program
++#define GL_ARB_vertex_program 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble);
++GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat);
++GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort);
++GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *);
++GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
++GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *);
++GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *);
++GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *);
++GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint);
++GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint);
++GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *);
++GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *);
++GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *);
++GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *);
++GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *);
++GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *);
++GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *);
++GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *);
++GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *);
++GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *);
++GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *);
++GLAPI GLboolean APIENTRY glIsProgramARB (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
++typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
++typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
++typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
++typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
++typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
++typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program);
++#endif
++
++#ifndef GL_ARB_fragment_program
++#define GL_ARB_fragment_program 1
++/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */
++#endif
++
++#ifndef GL_ARB_vertex_buffer_object
++#define GL_ARB_vertex_buffer_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *);
++GLAPI GLboolean APIENTRY glIsBufferARB (GLuint);
++GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
++GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
++GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
++GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum);
++GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum);
++GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
++typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
++typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
++typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer);
++typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
++typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
++typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
++typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
++typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
++#endif
++
++#ifndef GL_ARB_occlusion_query
++#define GL_ARB_occlusion_query 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *);
++GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *);
++GLAPI GLboolean APIENTRY glIsQueryARB (GLuint);
++GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint);
++GLAPI void APIENTRY glEndQueryARB (GLenum);
++GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids);
++typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids);
++typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
++typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params);
++#endif
++
++#ifndef GL_ARB_shader_objects
++#define GL_ARB_shader_objects 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB);
++GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum);
++GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB);
++GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum);
++GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *);
++GLAPI void APIENTRY glCompileShaderARB (GLhandleARB);
++GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void);
++GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB);
++GLAPI void APIENTRY glLinkProgramARB (GLhandleARB);
++GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB);
++GLAPI void APIENTRY glValidateProgramARB (GLhandleARB);
++GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat);
++GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat);
++GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glUniform1iARB (GLint, GLint);
++GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint);
++GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *);
++GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *);
++GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *);
++GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
++GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *);
++GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *);
++GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
++GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *);
++GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *);
++GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
++typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname);
++typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
++typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
++typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
++typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
++typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
++typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
++typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
++typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
++typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
++typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
++typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
++typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
++typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
++typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
++typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
++typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
++typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
++typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
++typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
++typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
++typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
++typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
++typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
++typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
++#endif
++
++#ifndef GL_ARB_vertex_shader
++#define GL_ARB_vertex_shader 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *);
++GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
++GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
++typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
++typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
++#endif
++
++#ifndef GL_ARB_fragment_shader
++#define GL_ARB_fragment_shader 1
++#endif
++
++#ifndef GL_ARB_shading_language_100
++#define GL_ARB_shading_language_100 1
++#endif
++
++#ifndef GL_ARB_texture_non_power_of_two
++#define GL_ARB_texture_non_power_of_two 1
++#endif
++
++#ifndef GL_ARB_point_sprite
++#define GL_ARB_point_sprite 1
++#endif
++
++#ifndef GL_ARB_fragment_program_shadow
++#define GL_ARB_fragment_program_shadow 1
++#endif
++
++#ifndef GL_ARB_draw_buffers
++#define GL_ARB_draw_buffers 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
++#endif
++
++#ifndef GL_ARB_texture_rectangle
++#define GL_ARB_texture_rectangle 1
++#endif
++
++#ifndef GL_ARB_color_buffer_float
++#define GL_ARB_color_buffer_float 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glClampColorARB (GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
++#endif
++
++#ifndef GL_ARB_half_float_pixel
++#define GL_ARB_half_float_pixel 1
++#endif
++
++#ifndef GL_ARB_texture_float
++#define GL_ARB_texture_float 1
++#endif
++
++#ifndef GL_ARB_pixel_buffer_object
++#define GL_ARB_pixel_buffer_object 1
++#endif
++
++#ifndef GL_EXT_abgr
++#define GL_EXT_abgr 1
++#endif
++
++#ifndef GL_EXT_blend_color
++#define GL_EXT_blend_color 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
++#endif
++
++#ifndef GL_EXT_polygon_offset
++#define GL_EXT_polygon_offset 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
++#endif
++
++#ifndef GL_EXT_texture
++#define GL_EXT_texture 1
++#endif
++
++#ifndef GL_EXT_texture3D
++#define GL_EXT_texture3D 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
++#endif
++
++#ifndef GL_SGIS_texture_filter4
++#define GL_SGIS_texture_filter4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
++typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
++#endif
++
++#ifndef GL_EXT_subtexture
++#define GL_EXT_subtexture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
++#endif
++
++#ifndef GL_EXT_copy_texture
++#define GL_EXT_copy_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
++GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
++GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei);
++GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
++GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
++typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
++typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
++typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
++#endif
++
++#ifndef GL_EXT_histogram
++#define GL_EXT_histogram 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean);
++GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean);
++GLAPI void APIENTRY glResetHistogramEXT (GLenum);
++GLAPI void APIENTRY glResetMinmaxEXT (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
++typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
++typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
++typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target);
++#endif
++
++#ifndef GL_EXT_convolution
++#define GL_EXT_convolution 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat);
++GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei);
++GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
++GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
++GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
++typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
++typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
++typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
++#endif
++
++#ifndef GL_SGI_color_matrix
++#define GL_SGI_color_matrix 1
++#endif
++
++#ifndef GL_SGI_color_table
++#define GL_SGI_color_table 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei);
++GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
++typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
++typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
++#endif
++
++#ifndef GL_SGIX_pixel_texture
++#define GL_SGIX_pixel_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPixelTexGenSGIX (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
++#endif
++
++#ifndef GL_SGIS_pixel_texture
++#define GL_SGIS_pixel_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint);
++GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *);
++GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat);
++GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *);
++GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *);
++GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params);
++#endif
++
++#ifndef GL_SGIS_texture4D
++#define GL_SGIS_texture4D 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
++typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
++#endif
++
++#ifndef GL_SGI_texture_color_table
++#define GL_SGI_texture_color_table 1
++#endif
++
++#ifndef GL_EXT_cmyka
++#define GL_EXT_cmyka 1
++#endif
++
++#ifndef GL_EXT_texture_object
++#define GL_EXT_texture_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *);
++GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *);
++GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint);
++GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
++typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
++typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
++typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
++typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture);
++typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
++#endif
++
++#ifndef GL_SGIS_detail_texture
++#define GL_SGIS_detail_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
++typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
++#endif
++
++#ifndef GL_SGIS_sharpen_texture
++#define GL_SGIS_sharpen_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
++typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
++#endif
++
++#ifndef GL_EXT_packed_pixels
++#define GL_EXT_packed_pixels 1
++#endif
++
++#ifndef GL_SGIS_texture_lod
++#define GL_SGIS_texture_lod 1
++#endif
++
++#ifndef GL_SGIS_multisample
++#define GL_SGIS_multisample 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean);
++GLAPI void APIENTRY glSamplePatternSGIS (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
++typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
++#endif
++
++#ifndef GL_EXT_rescale_normal
++#define GL_EXT_rescale_normal 1
++#endif
++
++#ifndef GL_EXT_vertex_array
++#define GL_EXT_vertex_array 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glArrayElementEXT (GLint);
++GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei);
++GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *);
++GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *);
++GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i);
++typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
++typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
++typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
++typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
++#endif
++
++#ifndef GL_EXT_misc_attribute
++#define GL_EXT_misc_attribute 1
++#endif
++
++#ifndef GL_SGIS_generate_mipmap
++#define GL_SGIS_generate_mipmap 1
++#endif
++
++#ifndef GL_SGIX_clipmap
++#define GL_SGIX_clipmap 1
++#endif
++
++#ifndef GL_SGIX_shadow
++#define GL_SGIX_shadow 1
++#endif
++
++#ifndef GL_SGIS_texture_edge_clamp
++#define GL_SGIS_texture_edge_clamp 1
++#endif
++
++#ifndef GL_SGIS_texture_border_clamp
++#define GL_SGIS_texture_border_clamp 1
++#endif
++
++#ifndef GL_EXT_blend_minmax
++#define GL_EXT_blend_minmax 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendEquationEXT (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
++#endif
++
++#ifndef GL_EXT_blend_subtract
++#define GL_EXT_blend_subtract 1
++#endif
++
++#ifndef GL_EXT_blend_logic_op
++#define GL_EXT_blend_logic_op 1
++#endif
++
++#ifndef GL_SGIX_interlace
++#define GL_SGIX_interlace 1
++#endif
++
++#ifndef GL_SGIX_pixel_tiles
++#define GL_SGIX_pixel_tiles 1
++#endif
++
++#ifndef GL_SGIX_texture_select
++#define GL_SGIX_texture_select 1
++#endif
++
++#ifndef GL_SGIX_sprite
++#define GL_SGIX_sprite 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat);
++GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *);
++GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint);
++GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params);
++#endif
++
++#ifndef GL_SGIX_texture_multi_buffer
++#define GL_SGIX_texture_multi_buffer 1
++#endif
++
++#ifndef GL_EXT_point_parameters
++#define GL_EXT_point_parameters 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat);
++GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
++#endif
++
++#ifndef GL_SGIS_point_parameters
++#define GL_SGIS_point_parameters 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat);
++GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
++#endif
++
++#ifndef GL_SGIX_instruments
++#define GL_SGIX_instruments 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLint APIENTRY glGetInstrumentsSGIX (void);
++GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *);
++GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *);
++GLAPI void APIENTRY glReadInstrumentsSGIX (GLint);
++GLAPI void APIENTRY glStartInstrumentsSGIX (void);
++GLAPI void APIENTRY glStopInstrumentsSGIX (GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void);
++typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer);
++typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p);
++typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
++typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
++typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
++#endif
++
++#ifndef GL_SGIX_texture_scale_bias
++#define GL_SGIX_texture_scale_bias 1
++#endif
++
++#ifndef GL_SGIX_framezoom
++#define GL_SGIX_framezoom 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFrameZoomSGIX (GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
++#endif
++
++#ifndef GL_SGIX_tag_sample_buffer
++#define GL_SGIX_tag_sample_buffer 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTagSampleBufferSGIX (void);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
++#endif
++
++#ifndef GL_SGIX_polynomial_ffd
++#define GL_SGIX_polynomial_ffd 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
++GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
++GLAPI void APIENTRY glDeformSGIX (GLbitfield);
++GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
++typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
++typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask);
++typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
++#endif
++
++#ifndef GL_SGIX_reference_plane
++#define GL_SGIX_reference_plane 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation);
++#endif
++
++#ifndef GL_SGIX_flush_raster
++#define GL_SGIX_flush_raster 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFlushRasterSGIX (void);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void);
++#endif
++
++#ifndef GL_SGIX_depth_texture
++#define GL_SGIX_depth_texture 1
++#endif
++
++#ifndef GL_SGIS_fog_function
++#define GL_SGIS_fog_function 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *);
++GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points);
++typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points);
++#endif
++
++#ifndef GL_SGIX_fog_offset
++#define GL_SGIX_fog_offset 1
++#endif
++
++#ifndef GL_HP_image_transform
++#define GL_HP_image_transform 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat);
++GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params);
++#endif
++
++#ifndef GL_HP_convolution_border_modes
++#define GL_HP_convolution_border_modes 1
++#endif
++
++#ifndef GL_SGIX_texture_add_env
++#define GL_SGIX_texture_add_env 1
++#endif
++
++#ifndef GL_EXT_color_subtable
++#define GL_EXT_color_subtable 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
++typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
++#endif
++
++#ifndef GL_PGI_vertex_hints
++#define GL_PGI_vertex_hints 1
++#endif
++
++#ifndef GL_PGI_misc_hints
++#define GL_PGI_misc_hints 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glHintPGI (GLenum, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode);
++#endif
++
++#ifndef GL_EXT_paletted_texture
++#define GL_EXT_paletted_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
++GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *);
++GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
++#endif
++
++#ifndef GL_EXT_clip_volume_hint
++#define GL_EXT_clip_volume_hint 1
++#endif
++
++#ifndef GL_SGIX_list_priority
++#define GL_SGIX_list_priority 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat);
++GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *);
++GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint);
++GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params);
++#endif
++
++#ifndef GL_SGIX_ir_instrument1
++#define GL_SGIX_ir_instrument1 1
++#endif
++
++#ifndef GL_SGIX_calligraphic_fragment
++#define GL_SGIX_calligraphic_fragment 1
++#endif
++
++#ifndef GL_SGIX_texture_lod_bias
++#define GL_SGIX_texture_lod_bias 1
++#endif
++
++#ifndef GL_SGIX_shadow_ambient
++#define GL_SGIX_shadow_ambient 1
++#endif
++
++#ifndef GL_EXT_index_texture
++#define GL_EXT_index_texture 1
++#endif
++
++#ifndef GL_EXT_index_material
++#define GL_EXT_index_material 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
++#endif
++
++#ifndef GL_EXT_index_func
++#define GL_EXT_index_func 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref);
++#endif
++
++#ifndef GL_EXT_index_array_formats
++#define GL_EXT_index_array_formats 1
++#endif
++
++#ifndef GL_EXT_compiled_vertex_array
++#define GL_EXT_compiled_vertex_array 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei);
++GLAPI void APIENTRY glUnlockArraysEXT (void);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
++typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void);
++#endif
++
++#ifndef GL_EXT_cull_vertex
++#define GL_EXT_cull_vertex 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *);
++GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params);
++typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params);
++#endif
++
++#ifndef GL_SGIX_ycrcb
++#define GL_SGIX_ycrcb 1
++#endif
++
++#ifndef GL_SGIX_fragment_lighting
++#define GL_SGIX_fragment_lighting 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum);
++GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat);
++GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat);
++GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *);
++GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint);
++GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *);
++GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat);
++GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param);
++#endif
++
++#ifndef GL_IBM_rasterpos_clip
++#define GL_IBM_rasterpos_clip 1
++#endif
++
++#ifndef GL_HP_texture_lighting
++#define GL_HP_texture_lighting 1
++#endif
++
++#ifndef GL_EXT_draw_range_elements
++#define GL_EXT_draw_range_elements 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
++#endif
++
++#ifndef GL_WIN_phong_shading
++#define GL_WIN_phong_shading 1
++#endif
++
++#ifndef GL_WIN_specular_fog
++#define GL_WIN_specular_fog 1
++#endif
++
++#ifndef GL_EXT_light_texture
++#define GL_EXT_light_texture 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glApplyTextureEXT (GLenum);
++GLAPI void APIENTRY glTextureLightEXT (GLenum);
++GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
++typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
++typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
++#endif
++
++#ifndef GL_SGIX_blend_alpha_minmax
++#define GL_SGIX_blend_alpha_minmax 1
++#endif
++
++#ifndef GL_EXT_bgra
++#define GL_EXT_bgra 1
++#endif
++
++#ifndef GL_SGIX_async
++#define GL_SGIX_async 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint);
++GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *);
++GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *);
++GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei);
++GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei);
++GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
++typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
++typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
++typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
++typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
++typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
++#endif
++
++#ifndef GL_SGIX_async_pixel
++#define GL_SGIX_async_pixel 1
++#endif
++
++#ifndef GL_SGIX_async_histogram
++#define GL_SGIX_async_histogram 1
++#endif
++
++#ifndef GL_INTEL_parallel_arrays
++#define GL_INTEL_parallel_arrays 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *);
++GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *);
++GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *);
++GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
++typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer);
++typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
++typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
++#endif
++
++#ifndef GL_HP_occlusion_test
++#define GL_HP_occlusion_test 1
++#endif
++
++#ifndef GL_EXT_pixel_transform
++#define GL_EXT_pixel_transform 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat);
++GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
++#endif
++
++#ifndef GL_EXT_pixel_transform_color_table
++#define GL_EXT_pixel_transform_color_table 1
++#endif
++
++#ifndef GL_EXT_shared_texture_palette
++#define GL_EXT_shared_texture_palette 1
++#endif
++
++#ifndef GL_EXT_separate_specular_color
++#define GL_EXT_separate_specular_color 1
++#endif
++
++#ifndef GL_EXT_secondary_color
++#define GL_EXT_secondary_color 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte);
++GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *);
++GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *);
++GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *);
++GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint);
++GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *);
++GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *);
++GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte);
++GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *);
++GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *);
++GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort);
++GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *);
++GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
++typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
++#endif
++
++#ifndef GL_EXT_texture_perturb_normal
++#define GL_EXT_texture_perturb_normal 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTextureNormalEXT (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
++#endif
++
++#ifndef GL_EXT_multi_draw_arrays
++#define GL_EXT_multi_draw_arrays 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
++GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
++typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
++#endif
++
++#ifndef GL_EXT_fog_coord
++#define GL_EXT_fog_coord 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFogCoordfEXT (GLfloat);
++GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *);
++GLAPI void APIENTRY glFogCoorddEXT (GLdouble);
++GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *);
++GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
++typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
++typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
++typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
++typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
++#endif
++
++#ifndef GL_REND_screen_coordinates
++#define GL_REND_screen_coordinates 1
++#endif
++
++#ifndef GL_EXT_coordinate_frame
++#define GL_EXT_coordinate_frame 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte);
++GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *);
++GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *);
++GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *);
++GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint);
++GLAPI void APIENTRY glTangent3ivEXT (const GLint *);
++GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glTangent3svEXT (const GLshort *);
++GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte);
++GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *);
++GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *);
++GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *);
++GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint);
++GLAPI void APIENTRY glBinormal3ivEXT (const GLint *);
++GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glBinormal3svEXT (const GLshort *);
++GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz);
++typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v);
++typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz);
++typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz);
++typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz);
++typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz);
++typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz);
++typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v);
++typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz);
++typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz);
++typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz);
++typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz);
++typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
++#endif
++
++#ifndef GL_EXT_texture_env_combine
++#define GL_EXT_texture_env_combine 1
++#endif
++
++#ifndef GL_APPLE_specular_vector
++#define GL_APPLE_specular_vector 1
++#endif
++
++#ifndef GL_APPLE_transform_hint
++#define GL_APPLE_transform_hint 1
++#endif
++
++#ifndef GL_SGIX_fog_scale
++#define GL_SGIX_fog_scale 1
++#endif
++
++#ifndef GL_SUNX_constant_data
++#define GL_SUNX_constant_data 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFinishTextureSUNX (void);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void);
++#endif
++
++#ifndef GL_SUN_global_alpha
++#define GL_SUN_global_alpha 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte);
++GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort);
++GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint);
++GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat);
++GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble);
++GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte);
++GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort);
++GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
++typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
++#endif
++
++#ifndef GL_SUN_triangle_list
++#define GL_SUN_triangle_list 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint);
++GLAPI void APIENTRY glReplacementCodeusSUN (GLushort);
++GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte);
++GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *);
++GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *);
++GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *);
++GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer);
++#endif
++
++#ifndef GL_SUN_vertex
++#define GL_SUN_vertex 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat);
++GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *);
++GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *);
++GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *);
++GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
++#endif
++
++#ifndef GL_EXT_blend_func_separate
++#define GL_EXT_blend_func_separate 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
++#endif
++
++#ifndef GL_INGR_blend_func_separate
++#define GL_INGR_blend_func_separate 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
++#endif
++
++#ifndef GL_INGR_color_clamp
++#define GL_INGR_color_clamp 1
++#endif
++
++#ifndef GL_INGR_interlace_read
++#define GL_INGR_interlace_read 1
++#endif
++
++#ifndef GL_EXT_stencil_wrap
++#define GL_EXT_stencil_wrap 1
++#endif
++
++#ifndef GL_EXT_422_pixels
++#define GL_EXT_422_pixels 1
++#endif
++
++#ifndef GL_NV_texgen_reflection
++#define GL_NV_texgen_reflection 1
++#endif
++
++#ifndef GL_SUN_convolution_border_modes
++#define GL_SUN_convolution_border_modes 1
++#endif
++
++#ifndef GL_EXT_texture_env_add
++#define GL_EXT_texture_env_add 1
++#endif
++
++#ifndef GL_EXT_texture_lod_bias
++#define GL_EXT_texture_lod_bias 1
++#endif
++
++#ifndef GL_EXT_texture_filter_anisotropic
++#define GL_EXT_texture_filter_anisotropic 1
++#endif
++
++#ifndef GL_EXT_vertex_weighting
++#define GL_EXT_vertex_weighting 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexWeightfEXT (GLfloat);
++GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *);
++GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
++typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
++typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
++#endif
++
++#ifndef GL_NV_light_max_exponent
++#define GL_NV_light_max_exponent 1
++#endif
++
++#ifndef GL_NV_vertex_array_range
++#define GL_NV_vertex_array_range 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glFlushVertexArrayRangeNV (void);
++GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
++typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer);
++#endif
++
++#ifndef GL_NV_register_combiners
++#define GL_NV_register_combiners 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *);
++GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat);
++GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *);
++GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint);
++GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean);
++GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
++typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
++typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
++typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
++typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
++#endif
++
++#ifndef GL_NV_fog_distance
++#define GL_NV_fog_distance 1
++#endif
++
++#ifndef GL_NV_texgen_emboss
++#define GL_NV_texgen_emboss 1
++#endif
++
++#ifndef GL_NV_blend_square
++#define GL_NV_blend_square 1
++#endif
++
++#ifndef GL_NV_texture_env_combine4
++#define GL_NV_texture_env_combine4 1
++#endif
++
++#ifndef GL_MESA_resize_buffers
++#define GL_MESA_resize_buffers 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glResizeBuffersMESA (void);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void);
++#endif
++
++#ifndef GL_MESA_window_pos
++#define GL_MESA_window_pos 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *);
++GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *);
++GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint);
++GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *);
++GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *);
++GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *);
++GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *);
++GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint);
++GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *);
++GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *);
++GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *);
++GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *);
++GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *);
++GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
++typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v);
++typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
++typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v);
++#endif
++
++#ifndef GL_IBM_cull_vertex
++#define GL_IBM_cull_vertex 1
++#endif
++
++#ifndef GL_IBM_multimode_draw_arrays
++#define GL_IBM_multimode_draw_arrays 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint);
++GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
++typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride);
++#endif
++
++#ifndef GL_IBM_vertex_array_lists
++#define GL_IBM_vertex_array_lists 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
++GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
++GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint);
++GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
++GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
++GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
++GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
++GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
++#endif
++
++#ifndef GL_SGIX_subsample
++#define GL_SGIX_subsample 1
++#endif
++
++#ifndef GL_SGIX_ycrcba
++#define GL_SGIX_ycrcba 1
++#endif
++
++#ifndef GL_SGIX_ycrcb_subsample
++#define GL_SGIX_ycrcb_subsample 1
++#endif
++
++#ifndef GL_SGIX_depth_pass_instrument
++#define GL_SGIX_depth_pass_instrument 1
++#endif
++
++#ifndef GL_3DFX_texture_compression_FXT1
++#define GL_3DFX_texture_compression_FXT1 1
++#endif
++
++#ifndef GL_3DFX_multisample
++#define GL_3DFX_multisample 1
++#endif
++
++#ifndef GL_3DFX_tbuffer
++#define GL_3DFX_tbuffer 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTbufferMask3DFX (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
++#endif
++
++#ifndef GL_EXT_multisample
++#define GL_EXT_multisample 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean);
++GLAPI void APIENTRY glSamplePatternEXT (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
++typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
++#endif
++
++#ifndef GL_SGIX_vertex_preclip
++#define GL_SGIX_vertex_preclip 1
++#endif
++
++#ifndef GL_SGIX_convolution_accuracy
++#define GL_SGIX_convolution_accuracy 1
++#endif
++
++#ifndef GL_SGIX_resample
++#define GL_SGIX_resample 1
++#endif
++
++#ifndef GL_SGIS_point_line_texgen
++#define GL_SGIS_point_line_texgen 1
++#endif
++
++#ifndef GL_SGIS_texture_color_mask
++#define GL_SGIS_texture_color_mask 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
++#endif
++
++#ifndef GL_SGIX_igloo_interface
++#define GL_SGIX_igloo_interface 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params);
++#endif
++
++#ifndef GL_EXT_texture_env_dot3
++#define GL_EXT_texture_env_dot3 1
++#endif
++
++#ifndef GL_ATI_texture_mirror_once
++#define GL_ATI_texture_mirror_once 1
++#endif
++
++#ifndef GL_NV_fence
++#define GL_NV_fence 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *);
++GLAPI GLboolean APIENTRY glIsFenceNV (GLuint);
++GLAPI GLboolean APIENTRY glTestFenceNV (GLuint);
++GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glFinishFenceNV (GLuint);
++GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
++typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
++typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
++typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
++typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
++typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
++#endif
++
++#ifndef GL_NV_evaluators
++#define GL_NV_evaluators 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *);
++GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *);
++GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
++typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
++typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
++#endif
++
++#ifndef GL_NV_packed_depth_stencil
++#define GL_NV_packed_depth_stencil 1
++#endif
++
++#ifndef GL_NV_register_combiners2
++#define GL_NV_register_combiners2 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *);
++GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
++typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
++#endif
++
++#ifndef GL_NV_texture_compression_vtc
++#define GL_NV_texture_compression_vtc 1
++#endif
++
++#ifndef GL_NV_texture_rectangle
++#define GL_NV_texture_rectangle 1
++#endif
++
++#ifndef GL_NV_texture_shader
++#define GL_NV_texture_shader 1
++#endif
++
++#ifndef GL_NV_texture_shader2
++#define GL_NV_texture_shader2 1
++#endif
++
++#ifndef GL_NV_vertex_array_range2
++#define GL_NV_vertex_array_range2 1
++#endif
++
++#ifndef GL_NV_vertex_program
++#define GL_NV_vertex_program 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *);
++GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *);
++GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *);
++GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *);
++GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *);
++GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *);
++GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *);
++GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *);
++GLAPI GLboolean APIENTRY glIsProgramNV (GLuint);
++GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *);
++GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *);
++GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *);
++GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *);
++GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *);
++GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *);
++GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum);
++GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble);
++GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat);
++GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort);
++GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
++GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *);
++GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *);
++GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *);
++GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *);
++GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *);
++GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *);
++GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *);
++GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *);
++GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
++typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
++typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
++typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
++typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
++typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
++typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
++typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v);
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v);
++typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
++typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
++#endif
++
++#ifndef GL_SGIX_texture_coordinate_clamp
++#define GL_SGIX_texture_coordinate_clamp 1
++#endif
++
++#ifndef GL_SGIX_scalebias_hint
++#define GL_SGIX_scalebias_hint 1
++#endif
++
++#ifndef GL_OML_interlace
++#define GL_OML_interlace 1
++#endif
++
++#ifndef GL_OML_subsample
++#define GL_OML_subsample 1
++#endif
++
++#ifndef GL_OML_resample
++#define GL_OML_resample 1
++#endif
++
++#ifndef GL_NV_copy_depth_to_color
++#define GL_NV_copy_depth_to_color 1
++#endif
++
++#ifndef GL_ATI_envmap_bumpmap
++#define GL_ATI_envmap_bumpmap 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *);
++GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *);
++GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *);
++GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param);
++typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param);
++typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
++typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
++#endif
++
++#ifndef GL_ATI_fragment_shader
++#define GL_ATI_fragment_shader 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint);
++GLAPI void APIENTRY glBindFragmentShaderATI (GLuint);
++GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint);
++GLAPI void APIENTRY glBeginFragmentShaderATI (void);
++GLAPI void APIENTRY glEndFragmentShaderATI (void);
++GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum);
++GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum);
++GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
++typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
++typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void);
++typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
++typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
++typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
++typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
++typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
++typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
++typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
++typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
++typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value);
++#endif
++
++#ifndef GL_ATI_pn_triangles
++#define GL_ATI_pn_triangles 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint);
++GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
++#endif
++
++#ifndef GL_ATI_vertex_array_object
++#define GL_ATI_vertex_array_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum);
++GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint);
++GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum);
++GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glFreeObjectBufferATI (GLuint);
++GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint);
++GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint);
++GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
++typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
++typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
++typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
++typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
++typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
++typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params);
++#endif
++
++#ifndef GL_EXT_vertex_shader
++#define GL_EXT_vertex_shader 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBeginVertexShaderEXT (void);
++GLAPI void APIENTRY glEndVertexShaderEXT (void);
++GLAPI void APIENTRY glBindVertexShaderEXT (GLuint);
++GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint);
++GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint);
++GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint);
++GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint);
++GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint);
++GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *);
++GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *);
++GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *);
++GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *);
++GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *);
++GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *);
++GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *);
++GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *);
++GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *);
++GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *);
++GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint);
++GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint);
++GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum);
++GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum);
++GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum);
++GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum);
++GLAPI GLuint APIENTRY glBindParameterEXT (GLenum);
++GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum);
++GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *);
++GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *);
++GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *);
++GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *);
++GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void);
++typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void);
++typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
++typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
++typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
++typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
++typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
++typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
++typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
++typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
++typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
++typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
++typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
++typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
++typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr);
++typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr);
++typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr);
++typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr);
++typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr);
++typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr);
++typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr);
++typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr);
++typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
++typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
++typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
++typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
++typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
++typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
++typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value);
++typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
++typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
++typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
++typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
++typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data);
++typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
++typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
++typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
++typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
++typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
++typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
++#endif
++
++#ifndef GL_ATI_vertex_streams
++#define GL_ATI_vertex_streams 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort);
++GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *);
++GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint);
++GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *);
++GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat);
++GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *);
++GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble);
++GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *);
++GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort);
++GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *);
++GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint);
++GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *);
++GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *);
++GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *);
++GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *);
++GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint);
++GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *);
++GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *);
++GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *);
++GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *);
++GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *);
++GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *);
++GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *);
++GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte);
++GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *);
++GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort);
++GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *);
++GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint);
++GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *);
++GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *);
++GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *);
++GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum);
++GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint);
++GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
++typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
++typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
++typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
++#endif
++
++#ifndef GL_ATI_element_array
++#define GL_ATI_element_array 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *);
++GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei);
++GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
++typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
++#endif
++
++#ifndef GL_SUN_mesh_array
++#define GL_SUN_mesh_array 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width);
++#endif
++
++#ifndef GL_SUN_slice_accum
++#define GL_SUN_slice_accum 1
++#endif
++
++#ifndef GL_NV_multisample_filter_hint
++#define GL_NV_multisample_filter_hint 1
++#endif
++
++#ifndef GL_NV_depth_clamp
++#define GL_NV_depth_clamp 1
++#endif
++
++#ifndef GL_NV_occlusion_query
++#define GL_NV_occlusion_query 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *);
++GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *);
++GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint);
++GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint);
++GLAPI void APIENTRY glEndOcclusionQueryNV (void);
++GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
++typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
++typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
++typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void);
++typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
++#endif
++
++#ifndef GL_NV_point_sprite
++#define GL_NV_point_sprite 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint);
++GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
++#endif
++
++#ifndef GL_NV_texture_shader3
++#define GL_NV_texture_shader3 1
++#endif
++
++#ifndef GL_NV_vertex_program1_1
++#define GL_NV_vertex_program1_1 1
++#endif
++
++#ifndef GL_EXT_shadow_funcs
++#define GL_EXT_shadow_funcs 1
++#endif
++
++#ifndef GL_EXT_stencil_two_side
++#define GL_EXT_stencil_two_side 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
++#endif
++
++#ifndef GL_ATI_text_fragment_shader
++#define GL_ATI_text_fragment_shader 1
++#endif
++
++#ifndef GL_APPLE_client_storage
++#define GL_APPLE_client_storage 1
++#endif
++
++#ifndef GL_APPLE_element_array
++#define GL_APPLE_element_array 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *);
++GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei);
++GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei);
++GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei);
++GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
++typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
++typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
++typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
++#endif
++
++#ifndef GL_APPLE_fence
++#define GL_APPLE_fence 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *);
++GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *);
++GLAPI void APIENTRY glSetFenceAPPLE (GLuint);
++GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint);
++GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint);
++GLAPI void APIENTRY glFinishFenceAPPLE (GLuint);
++GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint);
++GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences);
++typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences);
++typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence);
++typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence);
++typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
++typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
++typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
++typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
++#endif
++
++#ifndef GL_APPLE_vertex_array_object
++#define GL_APPLE_vertex_array_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint);
++GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, GLuint *);
++GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
++typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
++typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays);
++typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
++#endif
++
++#ifndef GL_APPLE_vertex_array_range
++#define GL_APPLE_vertex_array_range 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *);
++GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *);
++GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
++typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
++typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
++#endif
++
++#ifndef GL_APPLE_ycbcr_422
++#define GL_APPLE_ycbcr_422 1
++#endif
++
++#ifndef GL_S3_s3tc
++#define GL_S3_s3tc 1
++#endif
++
++#ifndef GL_ATI_draw_buffers
++#define GL_ATI_draw_buffers 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs);
++#endif
++
++#ifndef GL_ATI_pixel_format_float
++#define GL_ATI_pixel_format_float 1
++/* This is really a WGL extension, but defines some associated GL enums.
++ * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string.
++ */
++#endif
++
++#ifndef GL_ATI_texture_env_combine3
++#define GL_ATI_texture_env_combine3 1
++#endif
++
++#ifndef GL_ATI_texture_float
++#define GL_ATI_texture_float 1
++#endif
++
++#ifndef GL_NV_float_buffer
++#define GL_NV_float_buffer 1
++#endif
++
++#ifndef GL_NV_fragment_program
++#define GL_NV_fragment_program 1
++/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat);
++GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble);
++GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *);
++GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *);
++GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *);
++GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
++typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
++typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
++typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
++typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
++#endif
++
++#ifndef GL_NV_half_float
++#define GL_NV_half_float 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV);
++GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV);
++GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *);
++GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *);
++GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *);
++GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *);
++GLAPI void APIENTRY glFogCoordhNV (GLhalfNV);
++GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *);
++GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *);
++GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV);
++GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV);
++GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
++GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *);
++GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
++typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
++typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
++typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
++typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
++typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
++typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s);
++typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
++typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
++typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
++typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
++typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
++typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
++typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
++typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
++#endif
++
++#ifndef GL_NV_pixel_data_range
++#define GL_NV_pixel_data_range 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *);
++GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer);
++typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
++#endif
++
++#ifndef GL_NV_primitive_restart
++#define GL_NV_primitive_restart 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glPrimitiveRestartNV (void);
++GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void);
++typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
++#endif
++
++#ifndef GL_NV_texture_expand_normal
++#define GL_NV_texture_expand_normal 1
++#endif
++
++#ifndef GL_NV_vertex_program2
++#define GL_NV_vertex_program2 1
++#endif
++
++#ifndef GL_ATI_map_object_buffer
++#define GL_ATI_map_object_buffer 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint);
++GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
++typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
++#endif
++
++#ifndef GL_ATI_separate_stencil
++#define GL_ATI_separate_stencil 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum);
++GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
++typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
++#endif
++
++#ifndef GL_ATI_vertex_attrib_array_object
++#define GL_ATI_vertex_attrib_array_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint);
++GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *);
++GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params);
++#endif
++
++#ifndef GL_OES_read_format
++#define GL_OES_read_format 1
++#endif
++
++#ifndef GL_EXT_depth_bounds_test
++#define GL_EXT_depth_bounds_test 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
++#endif
++
++#ifndef GL_EXT_texture_mirror_clamp
++#define GL_EXT_texture_mirror_clamp 1
++#endif
++
++#ifndef GL_EXT_blend_equation_separate
++#define GL_EXT_blend_equation_separate 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
++#endif
++
++#ifndef GL_MESA_pack_invert
++#define GL_MESA_pack_invert 1
++#endif
++
++#ifndef GL_MESA_ycbcr_texture
++#define GL_MESA_ycbcr_texture 1
++#endif
++
++#ifndef GL_EXT_pixel_buffer_object
++#define GL_EXT_pixel_buffer_object 1
++#endif
++
++#ifndef GL_NV_fragment_program_option
++#define GL_NV_fragment_program_option 1
++#endif
++
++#ifndef GL_NV_fragment_program2
++#define GL_NV_fragment_program2 1
++#endif
++
++#ifndef GL_NV_vertex_program2_option
++#define GL_NV_vertex_program2_option 1
++#endif
++
++#ifndef GL_NV_vertex_program3
++#define GL_NV_vertex_program3 1
++#endif
++
++#ifndef GL_EXT_framebuffer_object
++#define GL_EXT_framebuffer_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint);
++GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *);
++GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei);
++GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *);
++GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint);
++GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint);
++GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *);
++GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *);
++GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum);
++GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
++GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
++GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
++GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint);
++GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGenerateMipmapEXT (GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
++typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
++typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
++typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
++typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
++typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
++typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
++typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
++typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
++typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
++typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
++typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
++#endif
++
++#ifndef GL_GREMEDY_string_marker
++#define GL_GREMEDY_string_marker 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string);
++#endif
++
++#ifndef GL_EXT_packed_depth_stencil
++#define GL_EXT_packed_depth_stencil 1
++#endif
++
++#ifndef GL_EXT_stencil_clear_tag
++#define GL_EXT_stencil_clear_tag 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glStencilClearTagEXT (GLsizei, GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag);
++#endif
++
++#ifndef GL_EXT_texture_sRGB
++#define GL_EXT_texture_sRGB 1
++#endif
++
++#ifndef GL_EXT_framebuffer_blit
++#define GL_EXT_framebuffer_blit 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBlitFramebufferEXT (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
++#endif
++
++#ifndef GL_EXT_framebuffer_multisample
++#define GL_EXT_framebuffer_multisample 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
++#endif
++
++#ifndef GL_MESAX_texture_stack
++#define GL_MESAX_texture_stack 1
++#endif
++
++#ifndef GL_EXT_timer_query
++#define GL_EXT_timer_query 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint, GLenum, GLint64EXT *);
++GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint, GLenum, GLuint64EXT *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params);
++typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params);
++#endif
++
++#ifndef GL_EXT_gpu_program_parameters
++#define GL_EXT_gpu_program_parameters 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
++#endif
++
++#ifndef GL_APPLE_flush_buffer_range
++#define GL_APPLE_flush_buffer_range 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint);
++GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
++typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
++#endif
++
++#ifndef GL_NV_gpu_program4
++#define GL_NV_gpu_program4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *);
++GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *);
++GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *);
++GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *);
++GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *);
++GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *);
++GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *);
++GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *);
++GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *);
++GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *);
++GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *);
++GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
++typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
++typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
++typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
++#endif
++
++#ifndef GL_NV_geometry_program4
++#define GL_NV_geometry_program4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint);
++GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint);
++GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint);
++GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
++typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
++#endif
++
++#ifndef GL_EXT_geometry_shader4
++#define GL_EXT_geometry_shader4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
++#endif
++
++#ifndef GL_NV_vertex_program4
++#define GL_NV_vertex_program4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint);
++GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint);
++GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint);
++GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint);
++GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *);
++GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *);
++GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *);
++GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *);
++GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *);
++GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *);
++GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
++GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *);
++GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
++typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
++#endif
++
++#ifndef GL_EXT_gpu_shader4
++#define GL_EXT_gpu_shader4 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *);
++GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *);
++GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *);
++GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint);
++GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint);
++GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint);
++GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *);
++GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *);
++GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *);
++GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
++typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
++typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
++typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
++typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
++typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
++typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
++typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
++typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
++typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
++typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
++#endif
++
++#ifndef GL_EXT_draw_instanced
++#define GL_EXT_draw_instanced 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei);
++GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
++typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
++#endif
++
++#ifndef GL_EXT_packed_float
++#define GL_EXT_packed_float 1
++#endif
++
++#ifndef GL_EXT_texture_array
++#define GL_EXT_texture_array 1
++#endif
++
++#ifndef GL_EXT_texture_buffer_object
++#define GL_EXT_texture_buffer_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
++#endif
++
++#ifndef GL_EXT_texture_compression_latc
++#define GL_EXT_texture_compression_latc 1
++#endif
++
++#ifndef GL_EXT_texture_compression_rgtc
++#define GL_EXT_texture_compression_rgtc 1
++#endif
++
++#ifndef GL_EXT_texture_shared_exponent
++#define GL_EXT_texture_shared_exponent 1
++#endif
++
++#ifndef GL_NV_depth_buffer_float
++#define GL_NV_depth_buffer_float 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble);
++GLAPI void APIENTRY glClearDepthdNV (GLdouble);
++GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
++typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
++typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
++#endif
++
++#ifndef GL_NV_fragment_program4
++#define GL_NV_fragment_program4 1
++#endif
++
++#ifndef GL_NV_framebuffer_multisample_coverage
++#define GL_NV_framebuffer_multisample_coverage 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
++#endif
++
++#ifndef GL_EXT_framebuffer_sRGB
++#define GL_EXT_framebuffer_sRGB 1
++#endif
++
++#ifndef GL_NV_geometry_shader4
++#define GL_NV_geometry_shader4 1
++#endif
++
++#ifndef GL_NV_parameter_buffer_object
++#define GL_NV_parameter_buffer_object 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *);
++GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *);
++GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
++typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
++typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
++#endif
++
++#ifndef GL_EXT_draw_buffers2
++#define GL_EXT_draw_buffers2 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
++GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *);
++GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *);
++GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint);
++GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint);
++GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
++typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data);
++typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data);
++typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
++typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
++typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
++#endif
++
++#ifndef GL_NV_transform_feedback
++#define GL_NV_transform_feedback 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum);
++GLAPI void APIENTRY glEndTransformFeedbackNV (void);
++GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum);
++GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
++GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr);
++GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint);
++GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum);
++GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *);
++GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *);
++GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
++GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
++typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
++typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
++typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
++typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
++typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
++typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
++typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
++typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
++typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
++typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
++#endif
++
++#ifndef GL_EXT_bindable_uniform
++#define GL_EXT_bindable_uniform 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint);
++GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint);
++GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
++typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
++typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
++#endif
++
++#ifndef GL_EXT_texture_integer
++#define GL_EXT_texture_integer 1
++#ifdef GL_GLEXT_PROTOTYPES
++GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *);
++GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *);
++GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *);
++GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *);
++GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint);
++GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint);
++#endif /* GL_GLEXT_PROTOTYPES */
++typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
++typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
++typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
++typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
++typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
++typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
++#endif
++
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layoutdialogs-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layoutdialogs-scp2.diff
@@ -0,0 +1,132 @@
+cvs diff: Diffing scp2
+cvs diff: Diffing scp2/inc
+cvs diff: Diffing scp2/macros
+cvs diff: Diffing scp2/prj
+cvs diff: Diffing scp2/source
+cvs diff: Diffing scp2/source/activex
+cvs diff: Diffing scp2/source/base
+cvs diff: Diffing scp2/source/calc
+cvs diff: Diffing scp2/source/canvas
+cvs diff: Diffing scp2/source/crashrep
+cvs diff: Diffing scp2/source/draw
+cvs diff: Diffing scp2/source/gnome
+cvs diff: Diffing scp2/source/graphicfilter
+cvs diff: Diffing scp2/source/impress
+cvs diff: Diffing scp2/source/javafilter
+cvs diff: Diffing scp2/source/kde
+cvs diff: Diffing scp2/source/layout
+Index: scp2/source/layout/layout.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/layout/layout.scp,v
+retrieving revision 1.2
+retrieving revision 1.2.20.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.20.3
+--- scp2/source/layout/layout.scp	6 Mar 2008 12:47:00 -0000	1.2
++++ scp2/source/layout/layout.scp	31 Mar 2008 14:53:28 -0000	1.2.20.3
+@@ -35,83 +35,21 @@
+ 
+ #include "macros.inc"
+ 
+-File gid_File_Lib_Layout
+-    TXT_FILE_BODY;
+-    Styles = (PACKED,UNO_COMPONENT);
+-    RegistryID = gid_Starregistry_Services_Rdb;
+-    Dir = gid_Dir_Program;
+-  #ifdef UNX
+-    Name = STRING(CONCAT4(libtklayout,OFFICEUPD,DLLPOSTFIX,UNXSUFFIX));
+-  #else
+-    Name = STRING(CONCAT4(tklayout,OFFICEUPD,DLLPOSTFIX,.dll));
+-  #endif
+-End
+-
+ Directory gid_Dir_Share_Layout
+     ParentID = gid_Dir_Share;
+     DosName = "layout";
+ End
+ 
+-File gid_File_Xml_Wordcount
+-   TXT_FILE_BODY;
++File gid_File_Zip_Sw_Layout
+    Dir = gid_Dir_Share_Layout;
+-   Name = "wordcount.xml";
+-   Styles = (PACKED);
++   USER_FILE_BODY;
++   Styles = (ARCHIVE, PATCH);
++   Name = "sw-layout.zip";
+ End
+ 
+-File gid_File_Xml_Zoom
+-   TXT_FILE_BODY;
++File gid_File_Zip_Svx_Layout
+    Dir = gid_Dir_Share_Layout;
+-   Name = "zoom.xml";
+-   Styles = (PACKED);
+-End
+-
+-Directory gid_Dir_Share_Layout_De
+-    ParentID = gid_Dir_Share_Layout;
+-    DosName = "de";
+-End
+-
+-File gid_File_Xml_Wordcount_De
+-   TXT_FILE_BODY;
+-   Dir = gid_Dir_Share_Layout_De;
+-   Name = "de/wordcount.xml";
+-   Styles = (PACKED);
+-End
+-
+-File gid_File_Xml_Zoom_De
+-   TXT_FILE_BODY;
+-   Dir = gid_Dir_Share_Layout_De;
+-   Name = "de/zoom.xml";
+-   Styles = (PACKED);
++   USER_FILE_BODY;
++   Styles = (ARCHIVE, PATCH);
++   Name = "svx-layout.zip";
+ End
+-
+-Directory gid_Dir_Share_Layout_Nl
+-    ParentID = gid_Dir_Share_Layout;
+-    DosName = "nl";
+-End
+-
+-File gid_File_Xml_Wordcount_Nl
+-   TXT_FILE_BODY;
+-   Dir = gid_Dir_Share_Layout_Nl;
+-   Name = "nl/wordcount.xml";
+-   Styles = (PACKED);
+-End
+-
+-File gid_File_Xml_Zoom_Nl
+-   TXT_FILE_BODY;
+-   Dir = gid_Dir_Share_Layout_Nl;
+-   Name = "nl/zoom.xml";
+-   Styles = (PACKED);
+-End
+-
+-//  Do we need this?
+-//  Must MODULE_OPTIONAL_LAYOUT be registered somewhere?
+-//
+-// Module gid_Module_Layout
+-//    MOD_NAME_DESC (MODULE_OPTIONAL_LAYOUT);
+-//    ParentID = gid_Module_Optional;
+-//    Files = (gid_File_Lib_Layout,gid_File_Xml_Wordcount,gid_File_Xml_Zoom);
+-//    Minimal = NO;
+-//    Default = YES;
+-//    Styles = ();
+-// End
+cvs diff: Diffing scp2/source/lingu
+cvs diff: Diffing scp2/source/math
+cvs diff: Diffing scp2/source/onlineupdate
+cvs diff: Diffing scp2/source/ooo
+cvs diff: Diffing scp2/source/ooo_wo_ure
+cvs diff: Diffing scp2/source/python
+cvs diff: Diffing scp2/source/quickstart
+cvs diff: Diffing scp2/source/sdkoo
+cvs diff: Diffing scp2/source/templates
+cvs diff: Diffing scp2/source/testtool
+cvs diff: Diffing scp2/source/ure
+cvs diff: Diffing scp2/source/winexplorerext
+cvs diff: Diffing scp2/source/writer
+cvs diff: Diffing scp2/source/xsltfilter
+cvs diff: Diffing scp2/util
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/basic-prj-build_lst.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/basic-prj-build_lst.diff
@@ -0,0 +1,8 @@
+--- basic/prj/build.lst	1 Feb 2007 08:11:15 -0000	1.9
++++ basic/prj/build.lst	6 Jun 2007 09:30:24 -0000
+@@ -1,4 +1,4 @@
+-sb	basic	:	offuh svtools sj2 xmlscript framework NULL
++sb	basic	:	offuh svtools sj2 xmlscript framework oovbaapi NULL
+ sb	basic									usr1	-	all	sb_mkout NULL
+ sb	basic\inc								nmake	-	all	sb_inc NULL
+ sb	basic\source\app						nmake	-	all	sb_app sb_class sb_inc NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-qadevOOo.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-qadevOOo.diff
@@ -0,0 +1,4 @@
+--- qadevOOo/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ qadevOOo/prj/tests.lst	2007-09-07 08:12:53.000000000 +0200
+@@ -0,0 +1 @@
++qa   qadevOOo\testdocs\qadevlibs\source\test            nmake - all qa_testdocs_qadevlibs_source_test qa_make_package NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/separate-helpcontent.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/separate-helpcontent.diff
@@ -0,0 +1,1233 @@
+--- config_office/configure.in	2007-05-28 13:35:49.000000000 +0200
++++ config_office/configure.in	2007-05-28 18:01:00.000000000 +0200
+@@ -43,6 +43,11 @@ AC_ARG_WITH(openldap,
+ AC_ARG_ENABLE(lockdown,
+ [  --enable-lockdown       Enables the gconf integration work in OOo
+ ],,)
++AC_ARG_ENABLE(separate-helpcontent,
++[  --enable-separate-helpcontent
++                          Don't build helpcontent during the main build, just
++                          prepare the separate scp2 scripts.
++],,)
+ AC_ARG_ENABLE(vba,
+ [  --disable-vba           disables the vba compatibility feature
+ ],,)
+@@ -5361,6 +5366,20 @@ fi
+ AC_SUBST(ENABLE_LOCKDOWN)
+ 
+ dnl ===================================================================
++dnl Test for the disabling the helpcontent build
++dnl ===================================================================
++AC_MSG_CHECKING([whether to build (and pack) helpcontent separately])
++SEPARATE_HELPCONTENT=
++if test "$enable_separate_helpcontent" = "yes"; then
++  SEPARATE_HELPCONTENT="YES"
++  AC_MSG_RESULT([yes])
++else
++  BUILD_TYPE="$BUILD_TYPE HELPCONTENT2"
++  AC_MSG_RESULT([no])
++fi
++AC_SUBST(SEPARATE_HELPCONTENT)
++
++dnl ===================================================================
+ dnl Test for the presence of libstartup-notification
+ dnl ===================================================================
+ AC_MSG_CHECKING([whether to use libstartup-notification])
+--- config_office/set_soenv.in	2007-05-28 11:19:16.000000000 +0200
++++ config_office/set_soenv.in	2007-05-28 18:02:53.000000000 +0200
+@@ -1795,6 +1795,7 @@ ToFile( "VC_STANDARD",       "@VC_STANDA
+ ToFile( "WITH_GPC",          "@WITH_GPC@",         "e" );
+ ToFile( "WITH_MYSPELL_DICTS","@WITH_MYSPELL_DICTS@","e");
+ ToFile( "ENABLE_LOCKDOWN",   "@ENABLE_LOCKDOWN@",  "e" );
++ToFile( "SEPARATE_HELPCONTENT","@SEPARATE_HELPCONTENT@","e" );
+ ToFile( "WITH_LIBSN",        "@WITH_LIBSN@",       "e" );
+ ToFile( "LIBSN_CFLAGS",      "@LIBSN_CFLAGS@",     "e" );
+ ToFile( "LIBSN_LIBS",        "@LIBSN_LIBS@",       "e" );
+--- postprocess/prj/build.lst	2007-05-28 13:19:48.000000000 +0200
++++ postprocess/prj/build.lst	2007-05-28 12:07:48.000000000 +0200
+@@ -1,4 +1,4 @@
+-po	postprocess	::	accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io JAVAINSTALLER2:javainstaller2 lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd ODK:sdk_oo setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts AGFA_MONOTYPE_FONTS:agfa_monotype_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools jfreereport reportdesign NULL
++po	postprocess	::	accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker xmlhelp HELPCONTENT2:helpcontent2 hwpfilter io JAVAINSTALLER2:javainstaller2 lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd ODK:sdk_oo setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts AGFA_MONOTYPE_FONTS:agfa_monotype_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools jfreereport reportdesign NULL
+ po	postprocess			    	usr1	-	all	po_mkout NULL
+ po	postprocess\checkxml		nmake	-	all	po_checkxml NULL
+ po	postprocess\checkdeliver	nmake	-	all	po_checkdlv NULL
+--- scp2/prj/d.lst	2005-11-09 10:39:07.000000000 +0100
++++ scp2/prj/d.lst	2007-05-30 15:47:19.000000000 +0200
+@@ -6,6 +6,8 @@
+ ..\%__SRC%\bin\osl\setup_osljre.ins %_DEST%\bin%_EXT%\setup_osljre.ins
+ ..\%__SRC%\bin\osl\ooo_wo_ure.inf %_DEST%\bin%_EXT%\ooo_wo_ure.inf
+ ..\%__SRC%\bin\osl\ooo_wo_ure.ins %_DEST%\bin%_EXT%\ooo_wo_ure.ins
++..\%__SRC%\bin\osl\helpcontent.inf %_DEST%\bin%_EXT%\helpcontent.inf
++..\%__SRC%\bin\osl\helpcontent.ins %_DEST%\bin%_EXT%\helpcontent.ins
+ 
+ mkdir: %_DEST%\par%_EXT%
+ 
+--- scp2/source/base/file_base.scp	2006-11-01 14:52:16.000000000 +0100
++++ scp2/source/base/file_base.scp	2007-05-28 16:59:42.000000000 +0200
+@@ -64,25 +64,6 @@ End
+ 
+ #endif
+ 
+-File gid_File_Help_Sdatabase_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(sdatabase);
+-    Patchfiles = ("sdatabase.db",
+-                  "sdatabase.ht",
+-                  "sdatabase.jar",
+-                  "sdatabase.key",
+-                  "sdatabase.idx/CONTEXTS",
+-                  "sdatabase.idx/DICTIONARY",
+-                  "sdatabase.idx/DOCS",
+-                  "sdatabase.idx/DOCS.TAB",
+-                  "sdatabase.idx/EDGE",
+-                  "sdatabase.idx/LINKNAMES",
+-                  "sdatabase.idx/OFFSETS",
+-                  "sdatabase.idx/POSITIONS",
+-                  "sdatabase.idx/SCHEMA"); 
+-End
+-
+ File gid_File_Registry_Spool_Oo_Setup_Base_Xcu
+     TXT_FILE_BODY;
+     Styles = (PACKED,PATCH);
+--- scp2/source/base/help_base.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/base/help_base.scp	2007-05-28 17:14:08.000000000 +0200
+@@ -0,0 +1,64 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Prg_Base_Help
++    MOD_NAME_DESC ( MODULE_PRG_BASE_HELP );
++    ParentID = gid_Module_Prg_Base;
++    Sortkey = "200";
++    Minimal = NO;
++    Default = YES;
++    Files = (gid_File_Help_Sdatabase_Zip);
++End
++
++File gid_File_Help_Sdatabase_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(sdatabase);
++    Patchfiles = ("sdatabase.db",
++                  "sdatabase.ht",
++                  "sdatabase.jar",
++                  "sdatabase.key",
++                  "sdatabase.idx/CONTEXTS",
++                  "sdatabase.idx/DICTIONARY",
++                  "sdatabase.idx/DOCS",
++                  "sdatabase.idx/DOCS.TAB",
++                  "sdatabase.idx/EDGE",
++                  "sdatabase.idx/LINKNAMES",
++                  "sdatabase.idx/OFFSETS",
++                  "sdatabase.idx/POSITIONS",
++                  "sdatabase.idx/SCHEMA"); 
++End
+--- scp2/source/base/makefile.mk	2005-11-15 13:54:19.000000000 +0100
++++ scp2/source/base/makefile.mk	2007-05-28 17:11:24.000000000 +0200
+@@ -49,6 +49,7 @@ SCP_PRODUCT_TYPE=osl
+ 
+ PARFILES= \
+         module_base.par             \
++        help_base.par               \
+         file_base.par
+ 
+ .IF "$(GUI)"=="WNT"
+--- scp2/source/base/module_base.scp	2007-01-02 16:27:26.000000000 +0100
++++ scp2/source/base/module_base.scp	2007-05-28 16:58:19.000000000 +0200
+@@ -58,12 +58,3 @@ Module gid_Module_Prg_Base_Bin
+         ,gid_File_Res_Cnr
+     );
+ End
+-
+-Module gid_Module_Prg_Base_Help
+-    MOD_NAME_DESC ( MODULE_PRG_BASE_HELP );
+-    ParentID = gid_Module_Prg_Base;
+-    Sortkey = "200";
+-    Minimal = NO;
+-    Default = YES;
+-    Files = (gid_File_Help_Sdatabase_Zip);
+-End
+--- scp2/source/calc/file_calc.scp	2007-05-28 11:19:13.000000000 +0200
++++ scp2/source/calc/file_calc.scp	2007-05-28 17:14:29.000000000 +0200
+@@ -110,26 +110,6 @@ File gid_File_Registry_Spool_Oo_Office_E
+     Name = "/registry/spool/org/openoffice/Office/Embedding-calc.xcu";
+ End
+ 
+-File gid_File_Help_Scalc_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(scalc);
+-    Patchfiles = ("scalc.db",
+-                  "scalc.ht",
+-                  "scalc.jar",
+-                  "scalc.key",
+-                  "scalc.tree",
+-                  "scalc.idx/CONTEXTS",
+-                  "scalc.idx/DICTIONARY",
+-                  "scalc.idx/DOCS",
+-                  "scalc.idx/DOCS.TAB",
+-                  "scalc.idx/EDGE",
+-                  "scalc.idx/LINKNAMES",
+-                  "scalc.idx/OFFSETS",
+-                  "scalc.idx/POSITIONS",
+-                  "scalc.idx/SCHEMA"); 
+-End
+-
+ // new user interface configuration files
+ /*
+ File gid_File_Share_Config_Sofficecfg_Calc_Menubar_Xml
+--- scp2/source/calc/help_calc.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/calc/help_calc.scp	2007-05-28 17:14:48.000000000 +0200
+@@ -0,0 +1,64 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Prg_Calc_Help
++    MOD_NAME_DESC ( MODULE_PRG_CALC_HELP );
++    ParentID = gid_Module_Prg_Calc;
++    Sortkey = "200";
++    Default = YES;
++    Files = (gid_File_Help_Scalc_Zip);
++End
++
++File gid_File_Help_Scalc_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(scalc);
++    Patchfiles = ("scalc.db",
++                  "scalc.ht",
++                  "scalc.jar",
++                  "scalc.key",
++                  "scalc.tree",
++                  "scalc.idx/CONTEXTS",
++                  "scalc.idx/DICTIONARY",
++                  "scalc.idx/DOCS",
++                  "scalc.idx/DOCS.TAB",
++                  "scalc.idx/EDGE",
++                  "scalc.idx/LINKNAMES",
++                  "scalc.idx/OFFSETS",
++                  "scalc.idx/POSITIONS",
++                  "scalc.idx/SCHEMA"); 
++End
+--- scp2/source/calc/makefile.mk	2007-05-28 11:19:13.000000000 +0200
++++ scp2/source/calc/makefile.mk	2007-05-28 17:15:20.000000000 +0200
+@@ -56,6 +56,7 @@ SCPDEFS+=-DSYSTEM_LPSOLVE
+ SCP_PRODUCT_TYPE=osl
+ PARFILES= \
+         module_calc.par              \
++        help_calc.par                \
+         file_calc.par 
+ 
+ .IF "$(GUI)"=="WNT"
+--- scp2/source/calc/module_calc.scp	2007-01-02 16:27:54.000000000 +0100
++++ scp2/source/calc/module_calc.scp	2007-05-28 17:14:54.000000000 +0200
+@@ -53,14 +53,6 @@ Module gid_Module_Prg_Calc_Bin
+     gid_File_Lib_Bf_Sc,gid_File_Res_Bf_Sc,gid_File_Oo_Office_Ui_Calcwindowstate_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Filters_Xcu, gid_File_Tmp_Userinstall_Calc_Inf);
+ End
+ 
+-Module gid_Module_Prg_Calc_Help
+-    MOD_NAME_DESC ( MODULE_PRG_CALC_HELP );
+-    ParentID = gid_Module_Prg_Calc;
+-    Sortkey = "200";
+-    Default = YES;
+-    Files = (gid_File_Help_Scalc_Zip);
+-End
+-
+ Module gid_Module_Prg_Calc_Addins
+     MOD_NAME_DESC ( MODULE_OPTIONAL_ADDINS );
+     ParentID = gid_Module_Prg_Calc;
+--- scp2/source/draw/file_draw.scp	2006-11-01 14:52:47.000000000 +0100
++++ scp2/source/draw/file_draw.scp	2007-05-28 17:16:22.000000000 +0200
+@@ -42,25 +42,6 @@ File gid_File_Registry_Spool_Oo_Office_E
+     Name = "/registry/spool/org/openoffice/Office/Embedding-draw.xcu";
+ End
+ 
+-File gid_File_Help_Sdraw_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(sdraw);
+-    Patchfiles = ("sdraw.db",
+-                  "sdraw.ht",
+-                  "sdraw.jar",
+-                  "sdraw.key",
+-                  "sdraw.idx/CONTEXTS",
+-                  "sdraw.idx/DICTIONARY",
+-                  "sdraw.idx/DOCS",
+-                  "sdraw.idx/DOCS.TAB",
+-                  "sdraw.idx/EDGE",
+-                  "sdraw.idx/LINKNAMES",
+-                  "sdraw.idx/OFFSETS",
+-                  "sdraw.idx/POSITIONS",
+-                  "sdraw.idx/SCHEMA"); 
+-End
+-
+ File gid_File_Exe_Sdraw
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/draw/help_draw.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/draw/help_draw.scp	2007-05-28 17:16:48.000000000 +0200
+@@ -0,0 +1,63 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Prg_Draw_Help
++    MOD_NAME_DESC ( MODULE_PRG_DRAW_HELP );
++    ParentID = gid_Module_Prg_Draw;
++    Sortkey = "200";
++    Default = YES;
++    Files = (gid_File_Help_Sdraw_Zip);
++End
++
++File gid_File_Help_Sdraw_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(sdraw);
++    Patchfiles = ("sdraw.db",
++                  "sdraw.ht",
++                  "sdraw.jar",
++                  "sdraw.key",
++                  "sdraw.idx/CONTEXTS",
++                  "sdraw.idx/DICTIONARY",
++                  "sdraw.idx/DOCS",
++                  "sdraw.idx/DOCS.TAB",
++                  "sdraw.idx/EDGE",
++                  "sdraw.idx/LINKNAMES",
++                  "sdraw.idx/OFFSETS",
++                  "sdraw.idx/POSITIONS",
++                  "sdraw.idx/SCHEMA"); 
++End
+--- scp2/source/draw/makefile.mk	2005-09-09 03:25:32.000000000 +0200
++++ scp2/source/draw/makefile.mk	2007-05-28 17:17:12.000000000 +0200
+@@ -48,6 +48,7 @@ TARGETTYPE=CUI
+ SCP_PRODUCT_TYPE=osl
+ PARFILES= \
+         module_draw.par              \
++        help_draw.par                \
+         file_draw.par  
+ 
+ .IF "$(GUI)"=="WNT"
+--- scp2/source/draw/module_draw.scp	2007-01-02 16:28:05.000000000 +0100
++++ scp2/source/draw/module_draw.scp	2007-05-28 17:16:41.000000000 +0200
+@@ -52,11 +52,3 @@ Module gid_Module_Prg_Draw_Bin
+ 	gid_File_Registry_Spool_Oo_Office_Embedding_Draw_Xcu,
+     gid_File_Registry_Spool_Oo_TypeDetection_Draw_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Draw_Filters_Xcu, gid_File_Tmp_Userinstall_Draw_Inf);
+ End
+-
+-Module gid_Module_Prg_Draw_Help
+-    MOD_NAME_DESC ( MODULE_PRG_DRAW_HELP );
+-    ParentID = gid_Module_Prg_Draw;
+-    Sortkey = "200";
+-    Default = YES;
+-    Files = (gid_File_Help_Sdraw_Zip);
+-End
+--- scp2/source/impress/file_impress.scp	2006-11-01 14:53:03.000000000 +0100
++++ scp2/source/impress/file_impress.scp	2007-05-28 17:19:27.000000000 +0200
+@@ -52,27 +52,6 @@ File gid_File_Registry_Spool_Oo_Office_E
+     Name = "/registry/spool/org/openoffice/Office/Embedding-impress.xcu";
+ End
+ 
+-File gid_File_Help_Simpress_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    TXT_FILE_BODY;
+-    Styles = (ARCHIVE,DONT_OVERWRITE,PATCH);
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(simpress);
+-    Patchfiles = ("simpress.db",
+-                  "simpress.ht",
+-                  "simpress.jar",
+-                  "simpress.key",
+-                  "simpress.tree",
+-                  "simpress.idx/CONTEXTS",
+-                  "simpress.idx/DICTIONARY",
+-                  "simpress.idx/DOCS",
+-                  "simpress.idx/DOCS.TAB",
+-                  "simpress.idx/EDGE",
+-                  "simpress.idx/LINKNAMES",
+-                  "simpress.idx/OFFSETS",
+-                  "simpress.idx/POSITIONS",
+-                  "simpress.idx/SCHEMA"); 
+-End
+-
+ File gid_File_Exe_Simpress
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/impress/help_impress.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/impress/help_impress.scp	2007-05-28 17:20:00.000000000 +0200
+@@ -0,0 +1,65 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Prg_Impress_Help
++    MOD_NAME_DESC ( MODULE_PRG_IMPRESS_HELP );
++    ParentID = gid_Module_Prg_Impress;
++    Sortkey = "200";
++    Default = YES;
++    Files = (gid_File_Help_Simpress_Zip);
++End
++
++File gid_File_Help_Simpress_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE,DONT_OVERWRITE,PATCH);
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(simpress);
++    Patchfiles = ("simpress.db",
++                  "simpress.ht",
++                  "simpress.jar",
++                  "simpress.key",
++                  "simpress.tree",
++                  "simpress.idx/CONTEXTS",
++                  "simpress.idx/DICTIONARY",
++                  "simpress.idx/DOCS",
++                  "simpress.idx/DOCS.TAB",
++                  "simpress.idx/EDGE",
++                  "simpress.idx/LINKNAMES",
++                  "simpress.idx/OFFSETS",
++                  "simpress.idx/POSITIONS",
++                  "simpress.idx/SCHEMA"); 
++End
+--- scp2/source/impress/makefile.mk	2005-09-09 03:29:59.000000000 +0200
++++ scp2/source/impress/makefile.mk	2007-05-28 17:20:19.000000000 +0200
+@@ -49,6 +49,7 @@ SCP_PRODUCT_TYPE=osl
+ 
+ PARFILES= \
+         module_impress.par              \
++        help_impress.par                \
+         file_impress.par 
+ 
+ .IF "$(GUI)"=="WNT"
+--- scp2/source/impress/module_impress.scp	2007-01-02 16:28:58.000000000 +0100
++++ scp2/source/impress/module_impress.scp	2007-05-28 17:20:05.000000000 +0200
+@@ -53,11 +53,3 @@ Module gid_Module_Prg_Impress_Bin
+ 	gid_File_Oo_Office_Ui_Effects_Xcs, gid_File_Oo_Office_Ui_Effects_Xcu, gid_File_Xdg_Impress, gid_File_Registry_Spool_Oo_Office_Embedding_Impress_Xcu,
+     gid_File_Registry_Spool_Oo_TypeDetection_Impress_Filters_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Impress_Types_Xcu, gid_File_Tmp_Userinstall_Impress_Inf);
+ End
+-
+-Module gid_Module_Prg_Impress_Help
+-    MOD_NAME_DESC ( MODULE_PRG_IMPRESS_HELP );
+-    ParentID = gid_Module_Prg_Impress;
+-    Sortkey = "200";
+-    Default = YES;
+-    Files = (gid_File_Help_Simpress_Zip);
+-End
+--- scp2/source/math/file_math.scp	2007-04-25 16:38:37.000000000 +0200
++++ scp2/source/math/file_math.scp	2007-05-28 17:21:16.000000000 +0200
+@@ -77,27 +77,6 @@ File gid_File_Registry_Spool_Oo_Office_E
+     Name = "/registry/spool/org/openoffice/Office/Embedding-math.xcu";
+ End
+ 
+-File gid_File_Help_Smath_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(smath);
+-    Patchfiles = ("smath.cfg",
+-                  "smath.db",
+-                  "smath.ht",
+-                  "smath.jar",
+-                  "smath.key",
+-                  "smath.tree",
+-                  "smath.idx/CONTEXTS",
+-                  "smath.idx/DICTIONARY",
+-                  "smath.idx/DOCS",
+-                  "smath.idx/DOCS.TAB",
+-                  "smath.idx/EDGE",
+-                  "smath.idx/LINKNAMES",
+-                  "smath.idx/OFFSETS",
+-                  "smath.idx/POSITIONS",
+-                  "smath.idx/SCHEMA");
+-End
+-
+ File gid_File_Exe_Smath
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/math/help_math.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/math/help_math.scp	2007-05-28 17:21:44.000000000 +0200
+@@ -0,0 +1,65 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Prg_Math_Help
++    MOD_NAME_DESC ( MODULE_PRG_MATH_HELP );
++    ParentID = gid_Module_Prg_Math;
++    Sortkey = "200";
++    Default = YES;
++    Files = (gid_File_Help_Smath_Zip);
++End
++
++File gid_File_Help_Smath_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(smath);
++    Patchfiles = ("smath.cfg",
++                  "smath.db",
++                  "smath.ht",
++                  "smath.jar",
++                  "smath.key",
++                  "smath.tree",
++                  "smath.idx/CONTEXTS",
++                  "smath.idx/DICTIONARY",
++                  "smath.idx/DOCS",
++                  "smath.idx/DOCS.TAB",
++                  "smath.idx/EDGE",
++                  "smath.idx/LINKNAMES",
++                  "smath.idx/OFFSETS",
++                  "smath.idx/POSITIONS",
++                  "smath.idx/SCHEMA");
++End
+--- scp2/source/math/makefile.mk	2005-09-09 03:35:06.000000000 +0200
++++ scp2/source/math/makefile.mk	2007-05-28 17:54:44.000000000 +0200
+@@ -52,6 +52,7 @@ SCPDEFS+=-DWITHOUT_BINFILTER
+ SCP_PRODUCT_TYPE=osl
+ PARFILES= \
+         module_math.par              \
++        help_math.par                \
+         file_math.par 
+ 
+ .IF "$(GUI)"=="WNT"
+--- scp2/source/math/module_math.scp	2007-01-02 16:29:10.000000000 +0100
++++ scp2/source/math/module_math.scp	2007-05-28 17:21:40.000000000 +0200
+@@ -53,11 +53,3 @@ Module gid_Module_Prg_Math_Bin
+ 	gid_File_Oo_Office_Ui_Mathwindowstate_Xcu, gid_File_Share_Xdg_Math, gid_File_Registry_Spool_Oo_Office_Embedding_Math_Xcu,
+     gid_File_Registry_Spool_Oo_TypeDetection_Math_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Math_Filters_Xcu, gid_File_Tmp_Userinstall_Math_Inf);
+ End
+-
+-Module gid_Module_Prg_Math_Help
+-    MOD_NAME_DESC ( MODULE_PRG_MATH_HELP );
+-    ParentID = gid_Module_Prg_Math;
+-    Sortkey = "200";
+-    Default = YES;
+-    Files = (gid_File_Help_Smath_Zip);
+-End
+--- scp2/source/ooo/directory_ooo.scp	2006-10-27 14:11:22.000000000 +0200
++++ scp2/source/ooo/directory_ooo.scp	2007-05-28 18:05:29.000000000 +0200
+@@ -1027,11 +1027,6 @@ Directory gid_Dir_Config_Language
+     DIR_ISOLANGUAGE_ALL_LANG_2;
+ End
+ 
+-Directory gid_Dir_Share_Config_Help
+-    ParentID = gid_Dir_Config;
+-    DosName = "help";
+-End
+-
+ Directory gid_Dir_Config_More
+     ParentID = gid_Dir_Config;
+     DosName = "more";
+@@ -1443,20 +1438,6 @@ Directory gid_Dir_Share_Plugin
+     DosName = "plugin";
+ End
+ 
+-Directory gid_Dir_Help
+-#ifndef MACOSX
+-    ParentID = PD_PROGDIR;
+-#else
+-    ParentID = gid_Dir_Bundle_Contents;
+-#endif
+-    DosName = "help";
+-End
+-
+-Directory gid_Dir_Help_Isolanguage
+-    ParentID = gid_Dir_Help;
+-    DIR_ISOLANGUAGE_ALL_LANG;
+-End
+-
+ #ifdef UNX
+ 
+ Directory gid_Dir_User_Psprint
+--- scp2/source/ooo/file_ooo.scp	2007-05-28 11:19:11.000000000 +0200
++++ scp2/source/ooo/file_ooo.scp	2007-05-28 17:53:24.000000000 +0200
+@@ -636,50 +636,6 @@ STD_RES_FILE( gid_File_Res_Ept, ept )
+ 
+ STD_RES_FILE( gid_File_Res_Eme, eme )
+ 
+-File gid_File_Help_Common_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(shared);
+-    Patchfiles = ("shared.db",
+-                  "shared.ht",
+-                  "shared.jar",
+-                  "shared.key",
+-                  "shared.tree",
+-                  "err.html");
+-End
+-
+-File gid_File_Help_Help_Zip
+-    Dir = gid_Dir_Help;
+-    ARCHIVE_TXT_FILE_BODY;
+-    Name = "helpxsl.zip";
+-End
+-
+-File gid_File_Help_Sbasic_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(sbasic);
+-    Patchfiles = ("sbasic.db",
+-                  "sbasic.ht",
+-                  "sbasic.jar",
+-                  "sbasic.key",
+-                  "sbasic.tree",
+-                  "sbasic.idx/CONTEXTS",
+-                  "sbasic.idx/DICTIONARY",
+-                  "sbasic.idx/DOCS",
+-                  "sbasic.idx/DOCS.TAB",
+-                  "sbasic.idx/EDGE",
+-                  "sbasic.idx/LINKNAMES",
+-                  "sbasic.idx/OFFSETS",
+-                  "sbasic.idx/POSITIONS",
+-                  "sbasic.idx/SCHEMA");
+-End
+-
+-File gid_File_Help_Schart_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(schart);
+-End
+-
+ File gid_File_Html_Thirdpartylicensereadme
+     Name = "THIRDPARTYLICENSEREADME.html";
+ #ifndef MACOSX
+--- scp2/source/ooo/help_ooo.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/ooo/help_ooo.scp	2007-05-28 18:37:09.000000000 +0200
+@@ -0,0 +1,113 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Root_Files_7
++	PackageInfo = "packinfo_office.txt";
++	ParentID = gid_Module_Root;
++	Name = "gid_Module_Root_Files_7";
++	Description = "gid_Module_Root_Files_7";
++	Sortkey = "1700";
++	Default = YES;
++	Styles = (HIDDEN_ROOT);
++	Files = (gid_File_Help_Common_Zip,
++	gid_File_Help_Help_Zip,
++	gid_File_Help_Sbasic_Zip,
++	gid_File_Help_Schart_Zip);
++End
++
++Directory gid_Dir_Share_Config_Help
++    ParentID = gid_Dir_Config;
++    DosName = "help";
++End
++
++Directory gid_Dir_Help
++#ifndef MACOSX
++    ParentID = PD_PROGDIR;
++#else
++    ParentID = gid_Dir_Bundle_Contents;
++#endif
++    DosName = "help";
++End
++
++Directory gid_Dir_Help_Isolanguage
++    ParentID = gid_Dir_Help;
++    DIR_ISOLANGUAGE_ALL_LANG;
++End
++
++File gid_File_Help_Common_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(shared);
++    Patchfiles = ("shared.db",
++                  "shared.ht",
++                  "shared.jar",
++                  "shared.key",
++                  "shared.tree",
++                  "err.html");
++End
++
++File gid_File_Help_Help_Zip
++    Dir = gid_Dir_Help;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "helpxsl.zip";
++End
++
++File gid_File_Help_Sbasic_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(sbasic);
++    Patchfiles = ("sbasic.db",
++                  "sbasic.ht",
++                  "sbasic.jar",
++                  "sbasic.key",
++                  "sbasic.tree",
++                  "sbasic.idx/CONTEXTS",
++                  "sbasic.idx/DICTIONARY",
++                  "sbasic.idx/DOCS",
++                  "sbasic.idx/DOCS.TAB",
++                  "sbasic.idx/EDGE",
++                  "sbasic.idx/LINKNAMES",
++                  "sbasic.idx/OFFSETS",
++                  "sbasic.idx/POSITIONS",
++                  "sbasic.idx/SCHEMA");
++End
++
++File gid_File_Help_Schart_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(schart);
++End
+--- scp2/source/ooo/help.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/ooo/help.scp	2007-05-28 19:12:36.000000000 +0200
+@@ -0,0 +1,60 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++Installation gid_Installation
++    ProductName = "${PRODUCTNAME}";
++    ProductVersion = "${PRODUCTVERSION}";
++  #ifdef WNT
++    DefaultDestPath = "<winprogpath>\${PRODUCTNAME}${PRODUCTVERSION}";
++  #else
++	DefaultDestPath = "/opt/${UNIXPRODUCTNAME}${PRODUCTVERSION}";
++  #endif
++End
++
++Directory gid_Dir_Program
++#ifndef MACOSX
++    ParentID = PD_PROGDIR;
++#else
++    ParentID = gid_Dir_Bundle_Contents;
++#endif
++    DosName = "program";
++End
++
++Module gid_Module_Root_Help
++    Name = "help";
++    Description = "help";
++End
+--- scp2/source/ooo/makefile.mk	2007-05-28 11:19:13.000000000 +0200
++++ scp2/source/ooo/makefile.mk	2007-05-28 18:53:28.000000000 +0200
+@@ -246,6 +246,8 @@ PARFILES=                          \
+         file_font_ooo.par          \
+         file_library_ooo.par       \
+         file_resource_ooo.par      \
++        help.par                   \
++        help_ooo.par               \
+         shortcut_ooo.par           \
+         module_ooo.par             \
+         module_hidden_ooo.par      \
+--- scp2/source/ooo/module_hidden_ooo.scp	2007-05-28 11:19:16.000000000 +0200
++++ scp2/source/ooo/module_hidden_ooo.scp	2007-05-28 17:25:43.000000000 +0200
+@@ -832,20 +832,6 @@ Module gid_Module_Root_Files_6
+ 	gid_File_Spuser1_Txt);
+ End
+ 
+-Module gid_Module_Root_Files_7
+-    PackageInfo = "packinfo_office.txt";
+-	ParentID = gid_Module_Root;
+-	Name = "gid_Module_Root_Files_7";
+-	Description = "gid_Module_Root_Files_7";
+-	Sortkey = "1700";
+-	Default = YES;
+-	Styles = (HIDDEN_ROOT);
+-	Files = (gid_File_Help_Common_Zip,
+-	gid_File_Help_Help_Zip,
+-	gid_File_Help_Sbasic_Zip,
+-	gid_File_Help_Schart_Zip);
+-End
+-
+ Module gid_Module_Root_Files_8
+ 	ParentID = gid_Module_Root;
+ 	Name = "gid_Module_Root_Files_8";
+--- scp2/source/testtool/file_testtool.scp	2006-08-04 12:25:33.000000000 +0200
++++ scp2/source/testtool/file_testtool.scp	2007-05-29 14:06:48.000000000 +0200
+@@ -49,13 +49,6 @@ File gid_File_Bin_Testtool
+   #endif
+ End
+ 
+-File gid_File_Hid_Testtool
+-    BIN_FILE_BODY;
+-    Dir = gid_Dir_Program;
+-    Styles = (PACKED);
+-    Name = "hid.lst";
+-End
+-
+ File gid_File_Config_Testtool
+     BIN_FILE_BODY;
+     Dir = gid_Dir_Program;
+--- scp2/source/testtool/help_testtool.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/testtool/help_testtool.scp	2007-05-29 14:06:46.000000000 +0200
+@@ -0,0 +1,43 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++File gid_File_Hid_Testtool
++    BIN_FILE_BODY;
++    Dir = gid_Dir_Program;
++    Styles = (PACKED);
++    Name = "hid.lst";
++End
+--- scp2/source/testtool/makefile.mk	2005-09-09 03:46:03.000000000 +0200
++++ scp2/source/testtool/makefile.mk	2007-05-29 14:06:59.000000000 +0200
+@@ -49,6 +49,7 @@ SCP_PRODUCT_TYPE=osl
+ 
+ PARFILES= \
+         module_testtool.par     \
++        help_testtool.par     \
+         file_testtool.par
+ 
+ ULFFILES= \
+--- scp2/source/writer/file_writer.scp	2007-04-16 19:00:12.000000000 +0200
++++ scp2/source/writer/file_writer.scp	2007-05-28 17:28:10.000000000 +0200
+@@ -85,26 +85,6 @@ File gid_File_Registry_Spool_Oo_Office_E
+     Name = "/registry/spool/org/openoffice/Office/Embedding-writer.xcu";
+ End
+ 
+-File gid_File_Help_Swriter_Zip
+-    Dir = gid_Dir_Help_Isolanguage;
+-    ARCHIVE_TXT_FILE_BODY_PATCH;
+-    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(swriter);
+-    Patchfiles = ("swriter.db",
+-                  "swriter.ht",
+-                  "swriter.jar",
+-                  "swriter.key",
+-                  "swriter.tree",
+-                  "swriter.idx/CONTEXTS",
+-                  "swriter.idx/DICTIONARY",
+-                  "swriter.idx/DOCS",
+-                  "swriter.idx/DOCS.TAB",
+-                  "swriter.idx/EDGE",
+-                  "swriter.idx/LINKNAMES",
+-                  "swriter.idx/OFFSETS",
+-                  "swriter.idx/POSITIONS",
+-                  "swriter.idx/SCHEMA");
+-End
+-
+ /*
+ File gid_File_Share_Config_Sofficecfg_Writer_Menubar_Xml
+     TXT_FILE_BODY;
+--- scp2/source/writer/help_writer.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/writer/help_writer.scp	2007-05-28 17:28:25.000000000 +0200
+@@ -0,0 +1,65 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Prg_Wrt_Help
++    MOD_NAME_DESC ( MODULE_PRG_WRT_HELP );
++    ParentID = gid_Module_Prg_Wrt;
++    Sortkey = "200";
++    Default = YES;
++    Minimal = YES;
++    Files = (gid_File_Help_Swriter_Zip);
++End
++
++File gid_File_Help_Swriter_Zip
++    Dir = gid_Dir_Help_Isolanguage;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(swriter);
++    Patchfiles = ("swriter.db",
++                  "swriter.ht",
++                  "swriter.jar",
++                  "swriter.key",
++                  "swriter.tree",
++                  "swriter.idx/CONTEXTS",
++                  "swriter.idx/DICTIONARY",
++                  "swriter.idx/DOCS",
++                  "swriter.idx/DOCS.TAB",
++                  "swriter.idx/EDGE",
++                  "swriter.idx/LINKNAMES",
++                  "swriter.idx/OFFSETS",
++                  "swriter.idx/POSITIONS",
++                  "swriter.idx/SCHEMA");
++End
+--- scp2/source/writer/makefile.mk	2005-09-09 03:49:46.000000000 +0200
++++ scp2/source/writer/makefile.mk	2007-05-28 17:55:17.000000000 +0200
+@@ -49,6 +49,7 @@ SCP_PRODUCT_TYPE=osl
+ 
+ PARFILES= \
+         module_writer.par              \
++        help_writer.par                \
+         file_writer.par
+ 
+ .IF "$(GUI)"=="WNT"
+--- scp2/source/writer/module_writer.scp	2007-05-28 11:19:11.000000000 +0200
++++ scp2/source/writer/module_writer.scp	2007-05-28 17:28:39.000000000 +0200
+@@ -80,12 +80,3 @@ Module gid_Module_Prg_Wrt_Bin
+     gid_File_Registry_Spool_Oo_TypeDetection_Global_Types_Xcu, gid_File_Registry_Spool_Oo_TypeDetection_Global_Filters_Xcu,
+     gid_File_Tmp_Userinstall_Wrt_Inf);
+ End
+-
+-Module gid_Module_Prg_Wrt_Help
+-    MOD_NAME_DESC ( MODULE_PRG_WRT_HELP );
+-    ParentID = gid_Module_Prg_Wrt;
+-    Sortkey = "200";
+-    Default = YES;
+-    Minimal = YES;
+-    Files = (gid_File_Help_Swriter_Zip);
+-End
+--- scp2/util/makefile.mk	2007-01-22 15:50:30.000000000 +0100
++++ scp2/util/makefile.mk	2007-05-28 19:02:35.000000000 +0200
+@@ -305,6 +305,33 @@ SCP4LINK_PRODUCT_TYPE = sdk
+ SCP4TARGET = sdkoo
+ SCP4FILES = sdkoo.par
+ 
++# ------------------------------------------------------------------------
++# Help - it can be part of the product, or separate
++
++HELP_FILES =                               \
++             help_base.par                 \
++             help_calc.par                 \
++             help_draw.par                 \
++             help_impress.par              \
++             help_math.par                 \
++             help_ooo.par                  \
++             help_testtool.par             \
++             help_writer.par
++
++SCP6LINK_PRODUCT_TYPE = osl
++SCP6TARGET = helpcontent
++SCP6FILES =                                \
++             help.par                      \
++             $(HELP_FILES)
++
++.IF "$(SEPARATE_HELPCONTENT)" != "YES"
++
++SCP1FILES += $(HELP_FILES)
++SCP2FILES += $(HELP_FILES)
++SCP5FILES += $(HELP_FILES)
++
++.ENDIF
++
+ # --- target -------------------------------------------------------------
+ .INCLUDE :  target.mk
+ 
+--- instsetoo_native/util/openoffice.lst	2007-04-02 14:33:03.000000000 +0200
++++ instsetoo_native/util/openoffice.lst	2007-06-01 12:56:42.000000000 +0200
+@@ -204,3 +204,30 @@ OpenOffice_SDK
+         mailinfo ms-eham02-01,packager,packager
+     }
+ }
++
++OpenOffice_Languages
++{
++    Settings
++    {
++	downloadname OOo-lang_{productversion}_{os}_install_{languages}
++        variables
++        {
++            PRODUCTNAME OpenOffice.org
++            PRODUCTVERSION 2.3
++            PACKAGEVERSION 2.3
++            PACKAGEREVISION 1
++            LICENSENAME LGPL
++            NOVERSIONINDIRNAME 1
++            DOWNLOADBANNER ooobanner.bmp
++            DOWNLOADBITMAP ooobitmap.bmp
++            DOWNLOADSETUPICO ooosetup.ico
++            DONTUSESTARTMENUFOLDER 1
++        }
++        active 1
++        compression 5
++        script helpcontent
++	include	.,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external
++        fail sun.star.releng.pack.errors@staroffice-news.germany.sun.com
++        mailinfo ms-eham02-01,packager,packager
++    }
++}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-linguistic.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-linguistic.diff
@@ -0,0 +1,8 @@
+--- linguistic/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ linguistic/prj/tests.lst	2007-09-07 18:15:44.000000000 +0200
+@@ -0,0 +1,5 @@
++lg   linguistic\qa\complex\linguistic                   nmake - all lg_qa_complex_linguistic lg_src NULL
++#does not build: lg   linguistic\qa\unoapi                               nmake - all lg_qa_unoapi lg_src NULL
++
++# older tests:
++lg   linguistic\workben                                 nmake - all lg_workben lg_src NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-t602import01-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-t602import01-filter.diff
@@ -0,0 +1,2020 @@
+--- filter/prj/build.lst	30 Oct 2006 08:51:08 -0000	1.25
++++ filter/prj/build.lst	13 Apr 2007 08:04:20 -0000	1.25.88.2
+@@ -1,4 +1,4 @@
+-fl	filter	:	svtools unotools goodies xmloff svx javaunohelper jvmaccess XALAN:xalan LIBXSLT:libxslt NULL
++fl	filter	:	svtools unotools goodies xmloff cppu tools cppuhelper sal svx javaunohelper jvmaccess XALAN:xalan LIBXSLT:libxslt NULL
+ fl	filter									usr1	-	all	fl_mkout			NULL
+ fl	filter\prj								get		-	all	fl_prj				NULL
+ fl	filter\inc								nmake	-	all	fl_inc				NULL
+@@ -14,6 +14,7 @@ fl	filter\source\xsltfilter				nmake	-	a
+ fl	filter\source\xsltvalidate				nmake	-	all fl_xsltvalidate fl_xsltfilter	fl_inc NULL
+ fl	filter\source\xsltdialog				nmake	-	all fl_xsltdialog fl_flash		fl_inc NULL
+ fl  filter\source\docbook                   nmake   -   all fl_docbook          fl_inc NULL
++fl  filter\source\t602                      nmake   -   all fl_t602             fl_inc NULL
+ fl  filter\source\config\cache              nmake   -   all fl_config           fl_inc NULL
+ fl  filter\source\config\tools\utils        nmake   -   all fl_fcfg_utils       fl_inc NULL
+ fl  filter\source\config\tools\merge        nmake   -   all fl_fcfg_merge fl_fcfg_utils fl_xsltvalidate fl_inc NULL
+--- filter/source/config/fragments/fcfg_writer.mk	13 Jul 2006 09:12:35 -0000	1.9
++++ filter/source/config/fragments/fcfg_writer.mk	12 Apr 2007 10:27:50 -0000	1.9.136.1
+@@ -47,6 +47,7 @@ T4_WRITER = \
+     $(T4_WRITER_BINFILTER) \
+     writer_WordPerfect_Document \
+     writer_MS_Works_Document \
++    writer_T602_Document \
+     writer_Text \
+     writer_Text_encoded \
+     writer_JustSystem_Ichitaro_10 \
+@@ -81,6 +82,7 @@ F4_WRITER = \
+ 	$(F4_WRITER_BINFILTER) \
+ 	WordPerfect \
+ 	MS_Works \
++	T602Document \
+ 	Text \
+ 	Text__encoded_ \
+ 	writer_JustSystem_Ichitaro_10 \
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/config/fragments/filters/T602Document.xcu	12 Apr 2007 10:27:50 -0000	1.1.2.1
+@@ -0,0 +1,13 @@
++	<node oor:name="T602Document" oor:op="replace">
++		<prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.T602ImportFilter</value></prop>
++		<prop oor:name="UserData"><value>602</value></prop>
++		<prop oor:name="UIName">
++			<value xml:lang="x-default">T602 Document</value>
++		</prop>
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>writer_T602_Document</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
++	</node>
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/config/fragments/types/writer_T602_Document.xcu	12 Apr 2007 10:27:50 -0000	1.1.2.1
+@@ -0,0 +1,12 @@
++	<node oor:name="writer_T602_Document" oor:op="replace" >
++		<prop oor:name="DetectService"><value>com.sun.star.comp.Writer.T602ImportFilter</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>602 txt</value></prop>
++		<prop oor:name="MediaType"><value>application/x-t602</value></prop>
++		<prop oor:name="Preferred"><value>true</value></prop>
++		<prop oor:name="PreferredFilter"><value>T602Document</value></prop>
++		<prop oor:name="UIName">
++			<value>T602 Document</value>
++		</prop>
++		<prop oor:name="ClipboardFormat"/>
++	</node>
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/filterenv.cxx	20 Feb 2008 18:58:09 -0000	1.1.2.6
+@@ -0,0 +1,133 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2004-2007 Milan Broz <mbroz@redhat.com>
++ *    Copyright 2007 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <osl/mutex.hxx>
++#include <osl/thread.h>
++#include <cppuhelper/factory.hxx>
++
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++
++#include "t602filter.hxx"
++
++using namespace ::rtl;
++using namespace ::cppu;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::registry;
++
++using namespace T602ImportFilter;
++
++extern "C"
++{
++//==================================================================================================
++void SAL_CALL component_getImplementationEnvironment(
++	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++//==================================================================================================
++sal_Bool SAL_CALL component_writeInfo(
++	void * /* pServiceManager */, void * pRegistryKey )
++{
++	if (pRegistryKey)
++	{
++		try
++		{
++            sal_Int32 nPos = 0;
++            Reference< XRegistryKey > xNewKey(
++				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( T602ImportFilter_getImplementationName() ) );
++            xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
++
++			const Sequence< OUString > & rSNL = T602ImportFilter_getSupportedServiceNames();
++			const OUString * pArray = rSNL.getConstArray();
++			for ( nPos = rSNL.getLength(); nPos--; )
++				xNewKey->createKey( pArray[nPos] );
++
++			xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( T602ImportFilterDialog_getImplementationName() );
++            xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
++
++			const Sequence< OUString > & rSNL2 = T602ImportFilterDialog_getSupportedServiceNames();
++			pArray = rSNL2.getConstArray();
++			for ( nPos = rSNL2.getLength(); nPos--; )
++				xNewKey->createKey( pArray[nPos] );
++
++			return sal_True;
++		}
++		catch (InvalidRegistryException &)
++		{
++			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
++		}
++	}
++	return sal_False;
++}
++//==================================================================================================
++void * SAL_CALL component_getFactory(
++	const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
++{
++	void * pRet = 0;
++
++    OUString implName = OUString::createFromAscii( pImplName );
++	if ( pServiceManager && implName.equals(T602ImportFilter_getImplementationName()) )
++	{
++		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
++			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
++			OUString::createFromAscii( pImplName ),
++			T602ImportFilter_createInstance, T602ImportFilter_getSupportedServiceNames() ) );
++
++		if (xFactory.is())
++		{
++			xFactory->acquire();
++			pRet = xFactory.get();
++		}
++	}
++	else if ( pServiceManager && implName.equals(T602ImportFilterDialog_getImplementationName()) )
++	{
++		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
++			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
++			OUString::createFromAscii( pImplName ),
++			T602ImportFilterDialog_createInstance, T602ImportFilterDialog_getSupportedServiceNames() ) );
++
++		if (xFactory.is())
++		{
++			xFactory->acquire();
++			pRet = xFactory.get();
++		}
++	}
++
++
++	return pRet;
++}
++}
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/makefile.mk	23 Aug 2007 12:19:40 -0000	1.1.2.3
+@@ -0,0 +1,72 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   Copyright (C) 2007   Fridrich Strba (fstrba@novell.com)
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++PRJ	= ..$/..
++PRJNAME = filter
++TARGET  =t602filter
++ENABLE_EXCEPTIONS=TRUE
++LIBTARGET=NO
++
++# --- Settings -----------------------------------------------------
++.INCLUDE: settings.mk
++
++SRS1NAME = $(TARGET)
++SRC1FILES = $(SRS1NAME).src
++
++RESLIB1NAME=$(SRS1NAME)
++RESLIB1SRSFILES= $(SRS)$/$(RESLIB1NAME).srs
++
++SLOFILES=$(SLO)$/t602filter.obj \
++         $(SLO)$/filterenv.obj
++
++LIBNAME=$(TARGET)
++SHL1TARGETDEPN=makefile.mk
++SHL1OBJS=$(SLOFILES)
++SHL1TARGET=$(LIBNAME)$(UPD)$(DLLPOSTFIX)
++SHL1IMPLIB=i$(LIBNAME)
++SHL1VERSIONMAP=$(LIBNAME).map
++#SHL1DEF=$(MISC)$/$(SHL1TARGET).def
++DEF1NAME=$(SHL1TARGET)
++
++SHL1STDLIBS= \
++    $(XMLOFFLIB) \
++	$(CPPULIB) \
++	$(CPPUHELPERLIB) \
++    $(SALLIB) \
++    $(TOOLSLIB)
++
++# --- Targets ------------------------------------------------------
++.INCLUDE :  target.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/t602filter.cxx	20 Feb 2008 19:35:02 -0000	1.1.2.9
+@@ -0,0 +1,1273 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  Copyright (C) 2004-2007 Milan Broz (asi@seznam.cz)
++ *  Copyright (C) 2007 Novell, Inc. (http://www.novell.com)
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2004-2007 Milan Broz <mbroz@redhat.com>
++ *    Copyright 2007 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "t602filter.hxx"
++#include "t602filter.hrc"
++
++#include <ctype.h>
++#include <stdio.h>
++
++#include <cppuhelper/factory.hxx>
++#include <cppuhelper/bootstrap.hxx>
++#include <com/sun/star/bridge/XUnoUrlResolver.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
++#include <com/sun/star/text/XTextDocument.hpp>
++#include <com/sun/star/container/XNameContainer.hpp>
++#include <com/sun/star/awt/XControl.hpp>
++#include <com/sun/star/awt/XDialog.hpp>
++#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
++
++using namespace ::rtl;
++using namespace ::cppu;
++using namespace ::osl;
++using namespace ::com::sun::star;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::registry;
++using namespace ::com::sun::star::container;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::awt;
++using namespace ::com::sun::star::xml::sax;
++using namespace ::com::sun::star::document;
++using com::sun::star::io::XInputStream;
++
++namespace T602ImportFilter {
++
++    unsigned char kam2lat[129] =
++        //    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
++        "\xAC\x81\x82\xD4\x84\xD2\x9B\x9F\xD8\xB7\x91\xD6\x96\x92\x8E\xB5"  // 8
++        "\x90\xA7\xA6\x93\x94\xE0\x85\xE9\xEC\x99\x9A\xE6\x95\xED\xFC\x9C"  // 9
++        "\xA0\xA1\xA2\xA3\xE5\xD5\xDE\xE2\xE7\xFD\xEA\xE8\xCE\xF5\xAE\xAF"  // A
++        "\x80\x80\x83\xB3\xB4\xE1\x87\x88\x89\x8A\x8B\x8C\x8F\x97\x8D\xBF"  // B
++        "\xC0\xC1\xC2\xC3\xC4\xC5\xCF\x98\x9D\x9E\xA4\xA5\xA8\xA9\x86\xF3"  // C
++        "\xCD\xB1\xB2\xB6\xB8\xB9\xBA\xBB\xF7\xD9\xDA\xDB\xDC\xF8\xF9\xDF"  // D
++        "\xD0\xD1\xD3\xD7\xAA\xAB\xDD\xB0\xE3\xE4\xEB\xEE\xEF\xF0\xF2\xF4"  // E
++        "\xBC\xBD\xBE\xC6\xC7\xC8\xF6\xC9\xCA\xFA\xFB\xCB\xF1\xCC\xFE\xFF"; // F
++
++    unsigned char koi2lat[129] =
++        //    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
++        "\x80\x83\x86\xF5\xE1\x87\x88\x89\x8A\x8B\x8C\x8F\x97\xCF\xCF\x98"  // 8
++        "\x9D\x9E\xA4\xA5\xA8\xA9\xDB\xDC\xDF\xB1\xB2\xB6\xB8\xB9\xBA\xBB"  // 9
++        "\xBC\xBD\xBE\xC6\xC7\xC8\xF6\xC9\xCA\xCB\xCC\xCD\xCE\xAD\xAE\xAF"  // A
++        "\xD0\xD1\xD3\xD7\xAA\xAB\xDD\xB0\xE3\xE4\xEB\xEE\xEF\xF0\xF2\xF4"  // B
++        "\xDA\xA0\xC0\x9F\xD4\xD8\xEA\xC4\x81\xA1\x85\x92\x96\x94\xE5\xA2"  // C
++        "\x93\x84\xFD\xE7\x9C\xA3\xC3\x82\xF7\xEC\xA7\xC2\xF3\xF8\xF9\xC5"  // D
++        "\xBF\xB5\xD9\xAC\xD2\xB7\xE8\xB3\x9A\xD6\xDE\x91\x95\x99\xD5\xE0"  // E
++        "\xE2\x8E\xFC\xE6\x9B\xE9\xB4\x90\xFA\xED\xA6\xC1\xF1\xFB\xFE\xFF"; // F
++
++    unsigned char lat2UNC[257] =
++        //    0       1       2       3       4       5       6       7
++        //    8       9       A       B       C       D       E       F
++        "\x00\xe7\x00\xfc\x00\xe9\x00\xf9\x00\xe4\x01\x6f\x00\xe8\x00\xa3"  // 8
++        "\x00\xc6\x00\xd8\x00\xc5\x00\xe6\x00\xf8\x00\xc4\x00\xc4\x00\xe5"
++        "\x00\xc9\x01\x39\x00\xf4\x00\xf4\x00\xf6\x01\x3d\x01\x3e\x00\x20"  // 9
++        "\x00\xf2\x00\xd6\x00\xdc\x01\x64\x01\x65\x00\xec\x20\xa7\x01\x0d"
++        "\x00\xe1\x00\xed\x00\xf3\x00\xfa\x00\xa1\x00\xd1\x01\x7d\x01\x7e"  // A
++        "\x00\xbf\x00\xf1\x22\x11\x03\xc3\x01\x0c\x00\xa7\x00\xbb\x00\xab"
++        "\x25\x91\x25\x92\x25\x93\x25\x02\x25\x24\x00\xc1\x00\xc2\x01\x1a"  // B
++        "\x00\x20\x00\x20\x00\x20\x00\x20\x22\x61\x00\xb1\x22\x65\x25\x10"
++        "\x25\x14\x25\x34\x25\x2c\x25\x1c\x25\x00\x25\x3c\x22\x64\x23\x20"  // C
++        "\x23\x21\x22\x48\x00\xba\x22\x1a\x00\xb2\x00\xbd\x00\xbc\x00\xa4"
++        "\x03\xb1\x03\xb2\x01\x0e\x03\x93\x01\x0f\x01\x47\x00\xcd\x03\xc0"  // D
++        "\x01\x1b\x25\x18\x25\x0c\x25\x88\x25\x84\x00\xb5\x01\x6e\x25\x80"
++        "\x00\xd3\x00\xdf\x00\xd4\x03\xa6\x03\x98\x01\x48\x01\x60\x01\x61"  // E
++        "\x01\x54\x00\xda\x01\x55\x03\xa9\x00\xfd\x00\xdd\x03\xb4\x22\x1e"
++        "\x00\xf8\x02\xdd\x03\xb5\x02\xc7\x22\x29\x00\xa7\x00\xf7\x00\xe0"  // F
++        "\x00\xb4\x00\xb0\x00\xc0\x02\xc6\x01\x58\x01\x59\x00\x20\x00\x20";
++
++    unsigned char rus2UNC[257] =
++        //    0       1       2       3       4       5       6       7
++        //    8       9       A       B       C       D       E       F
++        "\x04\x11\x00\xfc\x00\xe9\x04\x12\x00\xe4\x01\x6f\x04\x13\x04\x14"  // 8
++        "\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x00\xc4\x00\xc4\x04\x1a"
++        "\x00\xc9\x01\x39\x01\x3a\x00\xf4\x00\xf6\x01\x3d\x01\x3e\x00\x20"  // 9
++        "\x04\x1c\x00\xd6\x00\xdc\x01\x64\x01\x65\x04\x1d\x04\x1f\x01\x0a"
++        "\x00\xe1\x00\xed\x00\xf3\x00\xfa\x04\x20\x04\x22\x01\x7d\x01\x7e"  // A
++        "\x04\x23\x04\x24\x04\x43\x04\x44\x01\x0c\x00\xa7\x04\x3b\x04\x3c"
++        "\x04\x47\x04\x26\x04\x27\x25\x02\x25\x24\x00\xc1\x04\x28\x01\x1a"  // B
++        "\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x25\x10"
++        "\x25\x14\x25\x34\x25\x2c\x25\x1c\x25\x00\x25\x3c\x04\x31\x04\x32"  // C
++        "\x04\x33\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x1b"
++        "\x04\x3d\x04\x3f\x01\x0e\x04\x40\x01\x0f\x01\x47\x00\xcd\x04\x42"  // D
++        "\x01\x1b\x25\x18\x25\x0c\x25\x88\x25\x84\x04\x46\x01\x6e\x25\x80"
++        "\x00\xd3\x00\xdf\x00\xd4\x04\x48\x04\x49\x01\x48\x01\x60\x01\x61"  // E
++        "\x01\x54\x00\xda\x01\x55\x04\x4a\x00\xfd\x00\xdd\x04\x4b\x04\x4c"
++        "\x04\x4d\x02\xdd\x04\x4e\x02\xc7\x04\x4f\x00\xa7\x04\x34\x00\xe0"  // F
++        "\x00\xb4\x00\xb0\x00\xc0\x02\xc6\x01\x58\x01\x59\x00\x20\x00\x20";
++
++#define _AddAtt(_nam, _val) \
++    mpAttrList->AddAttribute(OUString::createFromAscii( _nam ),\
++    OUString::createFromAscii( _val ) );
++
++#define _Start(_nam) \
++    mxHandler->startElement(OUString::createFromAscii(_nam), mAttrList);\
++    mpAttrList->Clear();
++
++#define _End(_nam) \
++    mxHandler->endElement(OUString::createFromAscii(_nam));
++
++#define _Chars(_ch) \
++    mxHandler->characters(OUString::createFromAscii((sal_Char *) _ch) );
++
++inistruct ini;
++
++T602ImportFilter::T602ImportFilter(const ::com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory > &r ) :
++    mxMSF( r ) {}
++
++T602ImportFilter::~T602ImportFilter()
++{
++}
++
++// XExtendedTypeDetection
++::rtl::OUString T602ImportFilter::detect( Sequence<PropertyValue>& Descriptor)
++    throw(RuntimeException)
++{
++	// checks for filter or type name would be necessary in case we want to use the filter also for "602" files
++	// without the magic bytes at the beginning; I leave the code as comment in case of
++	// ::rtl::OUString aFilterName, aTypeName;
++    sal_Int32 nLength = Descriptor.getLength();
++    const PropertyValue * pValue = Descriptor.getConstArray();
++    for ( sal_Int32 i = 0 ; i < nLength; i++)
++    {
++        if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++            pValue[i].Value >>= mxInputStream;
++/*        else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "FilterName" ) ) )
++            pValue[i].Value >>= aFilterName;
++        else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "TypeName" ) ) )
++            pValue[i].Value >>= aTypeName; */
++    }
++
++    if (!mxInputStream.is())
++        return ::rtl::OUString();
++
++/*    if ( aFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "T602Document" ) )  || 
++		   aTypeName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_T602_Document" ) ) )
++		// preselection by type (extension) or filter name: no reason to check type
++        return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "writer_T602_Document" ) ); */
++
++    ::com::sun::star::uno::Sequence< sal_Int8 > aData;
++    size_t numBytes = 4;
++    size_t numBytesRead = 0;
++
++    numBytesRead = mxInputStream->readSomeBytes (aData, numBytes);
++
++    if ((numBytesRead != numBytes) || (aData[0] != '@') ||
++        (aData[1] != 'C') || (aData[2] != 'T') || (aData[3] != ' '))
++        return ::rtl::OUString();
++
++    return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "writer_T602_Document" ) );;
++}
++
++// XFilter
++sal_Bool SAL_CALL T602ImportFilter::filter( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
++	throw (RuntimeException)
++{
++	return importImpl ( aDescriptor );
++}
++
++// XImporter
++void SAL_CALL T602ImportFilter::setTargetDocument( const Reference< ::com::sun::star::lang::XComponent >& xDoc )
++	throw (::com::sun::star::lang::IllegalArgumentException, RuntimeException)
++{
++	mxDoc = xDoc;
++}
++
++// XInitialization
++void SAL_CALL T602ImportFilter::initialize( const Sequence< Any >& aArguments )
++    throw (Exception, RuntimeException)
++{
++    Sequence < PropertyValue > aAnySeq;
++    sal_Int32 nLength = aArguments.getLength();
++    if ( nLength && ( aArguments[0] >>= aAnySeq ) )
++    {
++        const PropertyValue * pValue = aAnySeq.getConstArray();
++        nLength = aAnySeq.getLength();
++        for ( sal_Int32 i = 0 ; i < nLength; i++)
++        {
++            if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) )
++            {
++                pValue[i].Value >>= msFilterName;
++                break;
++            }
++        }
++    }
++}
++
++// Other functions
++
++void T602ImportFilter::inschr(unsigned char ch)
++{
++    Reference < XAttributeList > mAttrList ( mpAttrList );
++
++    if(!ini.showcomm&&pst.comment) return;
++
++    if(ch==' ') {
++        setfnt(chngul,true);
++        pst.wasspace++;
++        return;
++    }
++
++    if(pst.wasspace > 0)
++        if(ini.reformatpars) {
++            if(!pst.wasfdash)
++                inschrdef(' ');
++            pst.wasfdash = false;
++        } else {
++            char s[20];
++            sprintf(s,"%i",pst.wasspace);
++            _AddAtt("text:c",s);
++            _Start("text:s");
++            _End("text:s");
++        }
++
++        pst.wasspace = 0;
++        setfnt(chngul,true);
++        inschrdef(ch);
++}
++
++sal_Bool SAL_CALL T602ImportFilter::importImpl( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
++    throw (RuntimeException)
++{
++    Reset602();
++
++    sal_Int32 nLength = aDescriptor.getLength();
++    const PropertyValue * pValue = aDescriptor.getConstArray();
++    OUString sURL;
++    for ( sal_Int32 i = 0 ; i < nLength; i++)
++    {
++        if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++            pValue[i].Value >>= mxInputStream;
++    }
++
++    if ( !mxInputStream.is() )
++    {
++        OSL_ASSERT( 0 );
++        return sal_False;
++    }
++
++    // An XML import service: what we push sax messages to..
++    OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLImporter" ) );
++
++    mxHandler = Reference< XDocumentHandler >( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
++
++    // The XImporter sets up an empty target document for XDocumentHandler to write to..
++    Reference < XImporter > xImporter(mxHandler, UNO_QUERY);
++    xImporter->setTargetDocument(mxDoc);
++
++    char fs[32], fs2[32];
++    sprintf(fs, "%ipt", ini.fontsize);
++    sprintf(fs2,"%ipt", 2*ini.fontsize);
++
++    mpAttrList = new SvXMLAttributeList;
++
++    Reference < XAttributeList > mAttrList ( mpAttrList );
++
++    mxHandler->startDocument();
++
++	_AddAtt("xmlns:office", "http://openoffice.org/2000/office");
++	_AddAtt("xmlns:style", "http://openoffice.org/2000/style");
++	_AddAtt("xmlns:text", "http://openoffice.org/2000/text");
++	_AddAtt("xmlns:table", "http://openoffice.org/2000/table");
++	_AddAtt("xmlns:draw", "http://openoffice.org/2000/draw");
++	_AddAtt("xmlns:fo", "http://www.w3.org/1999/XSL/Format");
++	_AddAtt("xmlns:xlink", "http://www.w3.org/1999/xlink");
++	_AddAtt("xmlns:number", "http://openoffice.org/2000/datastyle");
++	_AddAtt("xmlns:svg", "http://www.w3.org/2000/svg");
++	_AddAtt("xmlns:chart", "http://openoffice.org/2000/chart");
++	_AddAtt("xmlns:dr3d", "http://openoffice.org/2000/dr3d");
++	_AddAtt("xmlns:math", "http://www.w3.org/1998/Math/MathML");
++	_AddAtt("xmlns:form", "http://openoffice.org/2000/form");
++	_AddAtt("xmlns:script", "http://openoffice.org/2000/script");
++	_AddAtt("office:class", "text");
++	_AddAtt("office:version", "1.0");
++    _Start("office:document-content");
++
++    _Start("office:font-decls");
++    _AddAtt("style:name","Courier New");
++    _AddAtt("fo:font-family","Courier New");
++    _AddAtt("style:font-pitch","fixed");
++    _Start("style:font-decl");
++    _End("style:font-decl");
++    _End("office:font-decls");
++
++    _Start("office:automatic-styles");
++
++    // Standardni text
++    _AddAtt("style:name","P1");
++    _AddAtt("style:family","paragraph");
++    _AddAtt("style:parent-style-name","Standard");
++    _Start("style:style");
++    _AddAtt("style:font-name","Courier New");
++    _AddAtt("fo:font-size",fs);
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // Standardni text - konec stranky
++    _AddAtt("style:name","P2");
++    _AddAtt("style:family","paragraph");
++    _AddAtt("style:parent-style-name","Standard");
++    _Start("style:style");
++    _AddAtt("style:font-name","Courier New");
++    _AddAtt("fo:font-size",fs);
++    _AddAtt("fo:break-before","page");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T1 Normalni text
++    _AddAtt("style:name","T1");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T2 Tucny text
++    _AddAtt("style:name","T2");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-weight","bold");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T3 Kurziva
++    _AddAtt("style:name","T3");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-style","italic");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T4 Siroky text
++    _AddAtt("style:name","T4");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-weight","bold");
++    _AddAtt("style:text-scale","200%");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T5 Vysoky text
++    _AddAtt("style:name","T5");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-size",fs2);
++    _AddAtt("fo:font-weight","bold");
++    _AddAtt("style:text-scale","50%");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T6 Velky text
++    _AddAtt("style:name","T6");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-size",fs2);
++    _AddAtt("fo:font-weight","bold");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T7 Podtrzeny text
++    _AddAtt("style:name","T7");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("style:text-underline","single");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T8 Podtrzena tucny text
++    _AddAtt("style:name","T8");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-weight","bold");
++    _AddAtt("style:text-underline","single");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T9 Podtrzena kurziva
++    _AddAtt("style:name","T9");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("fo:font-style","italic");
++    _AddAtt("style:text-underline","single");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T10 Horni index
++    _AddAtt("style:name","T10");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("style:text-position","27% 100%");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    // T11 Dolni index
++    _AddAtt("style:name","T11");
++    _AddAtt("style:family","text");
++    _Start("style:style");
++    _AddAtt("style:text-position","-27% 100%");
++    _Start("style:properties");
++    _End("style:properties");
++    _End("style:style");
++
++    _End("office:automatic-styles");
++
++    _Start("office:styles");
++    _End("office:styles");
++
++    _Start("office:body");
++
++    Read602();
++
++    _End("office:body");
++    _End("office:document-content");
++
++    mxHandler->endDocument();
++
++    return sal_True;
++}
++
++void T602ImportFilter::Reset602()
++{
++    node = START;
++
++    format602.mt = 0;
++    format602.mb = 0;
++    format602.tb = 0;
++    format602.ct = 0;
++    format602.pn = 1;
++    format602.lh = 1;
++    format602.lm = 6;
++    format602.rm = 60;
++    format602.pl = 60;
++
++    ini.showcomm    = false;
++    ini.forcecode   = false;
++    ini.xcode    = KAM;
++    ini.ruscode    = false;
++    ini.reformatpars= false;
++    ini.fontsize    = 10;
++
++    fst.nowfnt    = fst.oldfnt    = standard;
++    fst.uline    = fst.olduline    = false;
++
++    pst.pars    = 0;
++    pst.comment    = false;
++    pst.wasspace    = 0;
++    pst.ccafterln    = false;
++    pst.willbeeop    = false;
++    pst.waspar    = false;
++    pst.wasfdash    = false;
++}
++
++void T602ImportFilter::inschrdef(unsigned char ch)
++{
++    static sal_Unicode xch[2];
++
++    xch[1] = 0;
++
++    if(ch > 127) {
++
++        switch(ini.xcode) {
++            case L2 : break;
++            case KOI: ch = koi2lat[ch-128]; break;
++            case KAM: ch = kam2lat[ch-128]; break;
++            default : ch = kam2lat[ch-128];
++        }
++
++        if(ini.ruscode)
++            xch[0] = (rus2UNC[(ch-128)*2] << 8) + rus2UNC[(ch-128)*2+1];
++        else
++            xch[0] = (lat2UNC[(ch-128)*2] << 8) + lat2UNC[(ch-128)*2+1];
++    } else
++        xch[0] = ch;
++
++    pst.waspar = false;
++    mxHandler->characters(OUString(xch));
++}
++
++void T602ImportFilter::wrtfnt()
++{
++    Reference < XAttributeList > mAttrList ( mpAttrList );
++    const sal_Char *style = "P1";
++
++    switch(fst.nowfnt) {
++        case standard : style = (char*)(fst.uline ? "T7" : "T1"); break;
++        case fat      : style = (char*)(fst.uline ? "T8" : "T2"); break;
++        case cursive  : style = (char*)(fst.uline ? "T9" : "T3"); break;
++        case bold     : style = "T4"; break;
++        case tall     : style = "T5"; break;
++        case big      : style = "T6"; break;
++        case lindex   : style = "T11";break;
++        case hindex   : style = "T10";break;
++        default       : style = "T1"; break;
++    }
++
++    _End("text:span");
++    _AddAtt("text:style-name", style);
++    _Start("text:span");
++}
++
++void T602ImportFilter::setfnt(fonts fnt,bool mustwrite)
++{
++    if( fnt == fst.oldfnt &&
++        fnt == fst.nowfnt &&
++        !mustwrite )
++        fst.nowfnt = standard;
++    else
++        if (fnt != chngul) fst.nowfnt = fnt;
++
++        if(mustwrite)
++            if(fst.oldfnt != fst.nowfnt || fst.olduline != fst.uline) {
++                wrtfnt();
++                fst.oldfnt = fst.nowfnt;
++                fst.olduline = fst.uline;
++            }
++}
++
++unsigned char T602ImportFilter::Readchar602()
++{
++    static Sequence< sal_Int8 > aData;
++
++    return (mxInputStream->readBytes(aData, 1) > 0) ?
++        ((unsigned char *) aData.getConstArray())[0] : 0;
++}
++
++void T602ImportFilter::par602(bool endofpage)
++{
++    sal_Int16 endp;
++    Reference < XAttributeList > mAttrList ( mpAttrList );
++
++    if(!endofpage || !pst.waspar) {
++        if(ini.showcomm||!pst.comment) {
++            if(pst.waspar||ini.reformatpars) {
++                _End("text:span");
++                _End("text:p");
++                _AddAtt("text:style-name", "P1");
++                _Start("text:p");
++                _Start("text:span");
++                wrtfnt();
++            } else {
++                _Start("text:line-break");
++                _End("text:line-break");
++            }
++        }
++
++        pst.waspar = true;
++    }
++
++    if(!pst.comment) {
++        switch(format602.lh) {
++            case 3: pst.pars += 4; break;
++            case 4: pst.pars += 3; break;
++            case 6: pst.pars += 2; break;
++            default: pst.pars +=2; break;
++        }
++        endp = format602.pl-format602.mt-format602.mb;
++        if(((pst.pars+1)/2) >= endp || endofpage) {
++            pst.pars = 0;
++            if(!ini.reformatpars) {
++                _End("text:span");
++                _End("text:p");
++                _AddAtt("text:style-name", "P2");
++                _Start("text:p");
++                _Start("text:span");
++                wrtfnt();
++            }
++        }
++    }
++}
++
++sal_Int16 T602ImportFilter::readnum(unsigned char *ch, bool show)
++{
++    unsigned char buff[21];
++    sal_Int16 i=0;
++
++    while((i<20) && *ch && (*ch!='\n') && (*ch!=','))
++    {
++        *ch = Readchar602();
++        if(show) inschr(*ch);
++        buff[i++] = *ch;
++    }
++    buff[i]='\0';
++
++    // mba: cast from unsigned char via int to sal_Int16 seems to be safe
++	return (sal_Int16) atoi((char *)buff);
++}
++
++unsigned char T602ImportFilter::Setformat602(char *cmd)
++{
++    unsigned char ch;
++    sal_Int16 i;
++
++    ch = Readchar602();
++
++         if (cmd[0]=='M' && cmd[1]=='T') format602.mt = readnum(&ch,false);
++    else if (cmd[0]=='M' && cmd[1]=='B') format602.mb = readnum(&ch,false);
++    // else if (cmd[0]=='T' && cmd[1]=='B') {}
++    // else if (cmd[0]=='H' && cmd[1]=='E') {}
++    // else if (cmd[0]=='F' && cmd[1]=='O') {}
++    else if (cmd[0]=='C' && cmd[1]=='T') {
++        format602.ct = readnum(&ch,false);
++        if (!ini.forcecode)
++            switch(format602.ct) {
++                case 0:  ini.xcode = KAM; break;
++                case 1:  ini.xcode = L2;  break;
++                case 2:  ini.xcode = KOI; break;
++                default: ini.xcode = KAM; break;
++            }
++        }
++    else if (cmd[0]=='P' && cmd[1]=='N')  format602.pn = readnum(&ch,false);
++    else if (cmd[0]=='L' && cmd[1]=='H')  format602.lh = readnum(&ch,false);
++    // else if(cmd[0]=='S' && cmd[1]=='T') {} //styl
++    else if (cmd[0]=='L' && cmd[1]=='M')  format602.lm = readnum(&ch,false);
++    else if (cmd[0]=='R' && cmd[1]=='M')  format602.rm = readnum(&ch,false);
++    else if (cmd[0]=='P' && cmd[1]=='L')  format602.pl = readnum(&ch,false);
++    else if (cmd[0]=='P' && cmd[1]=='A') { if(pst.pars) par602(true); }
++    else if (cmd[0]=='C' && cmd[1]=='P') {
++        i = readnum(&ch,false);
++        if ((i+pst.pars/2) > (format602.pl-format602.mt-format602.mb))
++            if(pst.pars) par602(true);
++    }
++    while (ch && (ch != '\n')) ch = Readchar602();
++    return ch;
++}
++
++tnode T602ImportFilter::PointCmd602(unsigned char *ch)
++{
++    char pcmd[2];
++
++    // warning: uChar -> char
++	pcmd[0] = (char) toupper(*ch); inschr(*ch);
++    *ch = Readchar602();
++    if (!*ch) return EEND;
++    if (*ch=='\n') return EOL;
++    if (!isalpha(*ch)) return (*ch<32) ? SETCH : WRITE;
++
++	// warning: uChar -> char
++    pcmd[1] = (char) toupper(*ch); inschr(*ch);
++
++         if (pcmd[0]=='P' && pcmd[1]=='A') { if (pst.pars) pst.willbeeop = true; }
++    else if (pcmd[0]=='C' && pcmd[1]=='P') { if (pst.pars) pst.willbeeop = true; }
++    else if (pcmd[0]=='P' && pcmd[1]=='I') {
++        while (*ch && (*ch != '\n') && (*ch != ','))
++            { *ch = Readchar602(); inschr(*ch); }
++        if (!*ch) return EEND;
++        if (*ch=='\n') return EOL;
++        if (*ch==',') { *ch = Readchar602(); inschr(*ch); }
++        pst.pars += (readnum(ch,true)*2);
++        if (!*ch) return EEND;
++        if (*ch=='\n') return EOL;
++    }
++    // else if(pcmd[0]=='K'&&pcmd[1]=='P') {}
++    // else if(pcmd[0]=='H'&&pcmd[1]=='E') {}
++    // else if(pcmd[0]=='F'&&pcmd[1]=='O') {}
++
++    return READCH;
++}
++
++
++void T602ImportFilter::Read602()
++{
++    unsigned char ch=0;
++    char cmd602[3];
++
++    Reference < XAttributeList > mAttrList ( mpAttrList );
++
++    if (node==QUIT) return;
++
++    _AddAtt("text:style-name", "P1");
++    _Start("text:p");
++    _AddAtt("text:style-name", "T1");
++    _Start("text:span");
++
++    if (node==START) { node = EOL; }
++
++    while (node != EEND) {
++        switch (node) {
++        case READCH:
++            ch = Readchar602();
++            if (ch == 0) node = EEND;
++            else if (ch == '\n') {
++                if(!pst.willbeeop) par602(false);
++                node = EOL;
++            } else if (ch < 32) node = SETCH;
++            else node = WRITE;
++            break;
++        case EOL:
++            ch = Readchar602();
++            pst.comment = false;
++            if (pst.willbeeop) par602(true);
++            pst.willbeeop = false;
++            if(ch == 0) node = EEND;
++            else if (ch == '@') node = EXPCMD;
++            else if (ch == '\n') { par602(false); node = EOL; }
++            else if (ch < 32) {pst.ccafterln = true; node = SETCH; break;}
++            else node = WRITE;
++            if (ch == '.') { pst.comment = true; node = POCMD; }
++            pst.ccafterln = false;
++            break;
++
++        case POCMD: inschr('.');
++            ch = Readchar602();
++            if(ch == 0) node = EEND;
++            else if(isalpha(ch)) node = PointCmd602(&ch);
++            else if(ch <32) node=SETCH;
++            else node = WRITE;
++            break;
++
++        case EXPCMD: ch = Readchar602();
++            if(ch == 0) {inschr('@'); node = EEND; }
++            else if(isupper(ch)) {
++                cmd602[0] = ch;
++                ch = Readchar602();
++                cmd602[1] = ch;
++                cmd602[2] = '\0';
++                if(isupper(ch)) node = SETCMD;   //nedodelano
++                else { inschr('@'); _Chars(cmd602); node = READCH; }
++            } else {
++                inschr('@');
++                if(ch<32) node = SETCH;
++                else node = WRITE;}
++            break;
++
++        case SETCMD:
++            ch = Setformat602(cmd602);
++            if(ch == 0) node = EEND;
++            else if(ch == '\n') node = EOL;
++            else node = READCH;
++            break;
++
++        case SETCH :
++			// warning: potentially uninitialized
++            switch(ch) {
++            case '\t' : _Start("text:tab-stop");
++                    _End("text:tab-stop");
++                    break;
++            case 0x03 : break; //condensed
++            case 0x01 : break; //elite
++            case 0x11 : break; //uzv1
++            case 0x12 : break; //uzv2
++            case 0x15 : break; //uzv3
++            case 0x17 : break; //uzv4
++            case 0x18 : break; //uzv5
++            case 0x19 : break; //uzv6
++            case 0x13 : fst.uline = !fst.uline;break;
++            case 0x02 : setfnt(fat,false);     break;
++            case 0x04 : setfnt(cursive,false); break;
++            case 0x0f : setfnt(bold,false);    break;
++            case 0x10 : setfnt(tall,false);    break;
++            case 0x1d : setfnt(big,false);     break;
++            case 0x14 : setfnt(hindex,false);  break;
++            case 0x16 : setfnt(lindex,false);  break;
++            default   : break;
++            }
++            if(pst.ccafterln) node = EOL;
++            else node = READCH;
++            break;
++
++        case WRITE :
++            switch(ch) {
++            case 0x8d:
++                ch = Readchar602();
++                if( ch == 0x0a) {
++                    if(ini.reformatpars) inschr(' ');
++                    else par602(false); //formatovaci radek
++                    node = EOL;
++                } else {
++                    inschr(0x8d);//inschr(' ');
++                    if(ch == 0) node = EEND;
++                    else if(ch == '\n') {
++                        if(!pst.willbeeop) par602(false);
++                        node = EOL; }
++                    else if(ch < 32) node = SETCH;
++                    else node = WRITE;
++                }
++                break;
++            case 0xfe:
++                if (ini.showcomm||!pst.comment) inschr(' ');
++                node = READCH;
++                break;
++            case 0xad:
++                ch = Readchar602();
++                if( ch==0x8d ) {
++                    if(ini.showcomm||!pst.comment) { //formatovaci pomlcka
++                        if(!ini.reformatpars)
++                            inschr('-');
++                        else {
++                            pst.wasspace--;
++                            pst.wasfdash = true;
++                        }
++                    }
++                    node=WRITE;
++                } else {
++                    inschr(0xad);
++                    if(ch == 0) node = EEND;
++                    else if(ch == '\n') {
++                        if(!pst.willbeeop) par602(false);
++                        node = EOL; }
++                    else if(ch < 32) node = SETCH;
++                    else node = WRITE;
++                }
++                break;
++            default:
++                inschr(ch);
++                node = READCH;
++                break;
++            }
++            break;
++        default: break;
++        }
++    }
++
++    _End("text:p");
++    node = QUIT;
++}
++
++// XServiceInfo
++OUString SAL_CALL T602ImportFilter::getImplementationName(  )
++    throw (RuntimeException)
++{
++    return T602ImportFilter_getImplementationName();
++}
++
++sal_Bool SAL_CALL T602ImportFilter::supportsService( const OUString& rServiceName )
++    throw (RuntimeException)
++{
++    return T602ImportFilter_supportsService( rServiceName );
++}
++
++Sequence< OUString > SAL_CALL T602ImportFilter::getSupportedServiceNames(  )
++    throw (RuntimeException)
++{
++    return T602ImportFilter_getSupportedServiceNames();
++}
++
++#define IMPLEMENTATION_NAME "com.sun.star.comp.Writer.T602ImportFilter"
++
++OUString T602ImportFilter_getImplementationName ()
++    throw (RuntimeException)
++{
++    return OUString ( RTL_CONSTASCII_USTRINGPARAM ( IMPLEMENTATION_NAME ) );
++}
++
++#define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
++#define SERVICE_NAME2 "com.sun.star.document.ExtendedTypeDetection"
++sal_Bool SAL_CALL T602ImportFilter_supportsService( const OUString& ServiceName )
++    throw (RuntimeException)
++{
++    return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
++        ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) );
++}
++
++Sequence< OUString > SAL_CALL T602ImportFilter_getSupportedServiceNames(  )
++    throw (RuntimeException)
++{
++    Sequence < OUString > aRet(2);
++    OUString* pArray = aRet.getArray();
++    pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
++    pArray[1] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) );
++    return aRet;
++}
++#undef SERVICE_NAME2
++#undef SERVICE_NAME1
++#undef IMPLEMENTATION_NAME
++
++Reference< XInterface > SAL_CALL T602ImportFilter_createInstance( const Reference< XMultiServiceFactory > & rSMgr)
++    throw( Exception )
++{
++    return (cppu::OWeakObject*) new T602ImportFilter( rSMgr );
++}
++
++/* Reference < XInterface > SAL_CALL CreateInstance( const Reference< XMultiServiceFactory > &r)
++throw ( Exception )
++{
++    return Reference< XInterface > (( OWeakObject *) new T602ImportFilter(r));
++}
++
++Sequence < OUString > getSupportedServiceNames()
++throw ( RuntimeException )
++{
++    static Sequence < OUString > *pNames = 0;
++    if( ! pNames ) {
++        MutexGuard guard( Mutex::getGlobalMutex() );
++        if( !pNames ) {
++            static Sequence< OUString > seqNames(2);
++            seqNames.getArray()[0] = OUString::createFromAscii(IMPLEMENTATION_NAME);
++            pNames = &seqNames;
++        }
++    }
++    return *pNames;
++}*/
++
++T602ImportFilterDialog::T602ImportFilterDialog(const ::com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory > &r ) :
++    mxMSF( r ), mpResMgr( NULL ) {}
++
++T602ImportFilterDialog::~T602ImportFilterDialog()
++{
++    if (mpResMgr)
++    	delete mpResMgr;
++}
++
++// XLocalizable
++
++void SAL_CALL T602ImportFilterDialog::setLocale( const Locale& eLocale )
++	throw(::com::sun::star::uno::RuntimeException)
++{
++	meLocale = eLocale;
++	initLocale();
++}
++
++Locale SAL_CALL T602ImportFilterDialog::getLocale()
++	throw(::com::sun::star::uno::RuntimeException)
++{
++	return meLocale;
++}
++
++sal_Bool T602ImportFilterDialog::OptionsDlg()
++{
++    sal_Bool ret = sal_False;
++
++    Any any;
++#define _propInt(_prop,_nam,_val) \
++    any <<= (sal_Int32)_val;\
++    _prop->setPropertyValue(OUString::createFromAscii(_nam), any);
++#define _propShort(_prop,_nam,_val) \
++    any <<= (sal_Int16)_val;\
++    _prop->setPropertyValue(OUString::createFromAscii(_nam), any);
++#define _propBool(_prop,_nam,_val) \
++    any <<= (sal_Bool)_val;\
++    _prop->setPropertyValue(OUString::createFromAscii(_nam), any);
++#define _propString(_prop,_nam,_val) \
++    any <<= OUString::createFromAscii(_val);\
++    _prop->setPropertyValue(OUString::createFromAscii(_nam), any);
++#define _propStringFromResId(_prop,_nam,_val) \
++    any <<= getResStr(_val);\
++    _prop->setPropertyValue(OUString::createFromAscii(_nam), any);
++#define _propGet(_prop,_nam) \
++    _prop->getPropertyValue(OUString::createFromAscii(_nam));
++#define _InstCtx(_path,_ctx)\
++    rServiceManager->createInstanceWithContext(\
++    OUString::createFromAscii(_path),_ctx);
++#define _Inst(_path)\
++    xMultiServiceFactory->createInstance(OUString::createFromAscii(_path) );
++#define _Insert(_cont,_nam,_obj) \
++    any <<= _obj;\
++    _cont->insertByName( OUString::createFromAscii(_nam), any );
++
++    Reference < XComponentContext > rComponentContext = defaultBootstrap_InitialComponentContext();
++    Reference < XMultiComponentFactory > rServiceManager = rComponentContext->getServiceManager();
++    Reference < XInterface > rInstance = _InstCtx("com.sun.star.awt.UnoControlDialogModel", rComponentContext );
++
++    Reference <XMultiServiceFactory> xMultiServiceFactory (rInstance,UNO_QUERY);
++
++    Reference < XPropertySet > xPSetDialog( rInstance, UNO_QUERY );
++    _propInt(xPSetDialog,"PositionX",100);
++    _propInt(xPSetDialog,"PositionY",100);
++    _propInt(xPSetDialog,"Width",130);
++    _propInt(xPSetDialog,"Height",90);
++    _propStringFromResId(xPSetDialog,"Title", T602FILTER_STR_IMPORT_DIALOG_TITLE);
++
++#define T602DLG_OK_BUTTON    "ok_button"
++#define T602DLG_CANCEL_BUTTON    "cancel_button"
++#define T602DLG_CODE_LB        "code_lb"
++#define T602DLG_AZBUKA_CB    "azbuka_cb"
++#define T602DLG_COMMENT_CB    "comment_cb"
++#define T602DLG_REFORMAT_CB    "reformat_cb"
++#define T602DLG_CODE_TXT    "code_txt"
++
++    Reference < XInterface > TextModel = _Inst("com.sun.star.awt.UnoControlFixedTextModel");
++    Reference < XPropertySet > xPSetText( TextModel, UNO_QUERY );
++    _propInt(xPSetText,"PositionX",10);
++    _propInt(xPSetText,"PositionY",8);
++    _propInt(xPSetText,"Width",30);
++    _propInt(xPSetText,"Height",14);
++    _propString(xPSetText,"Name",T602DLG_CODE_TXT);
++    _propStringFromResId(xPSetText,"Label",T602FILTER_STR_ENCODING_LABEL);
++
++    Reference < XInterface > ListBoxModel = _Inst("com.sun.star.awt.UnoControlListBoxModel");
++    Reference < XPropertySet > xPSetCodeLB( ListBoxModel, UNO_QUERY );
++    _propInt(xPSetCodeLB,"PositionX",40);
++    _propInt(xPSetCodeLB,"PositionY",5);
++    _propInt(xPSetCodeLB,"Width",85);
++    _propInt(xPSetCodeLB,"Height",14);
++    _propString(xPSetCodeLB,"Name",T602DLG_CODE_LB);
++    _propShort(xPSetCodeLB,"TabIndex",1);
++    _propBool(xPSetCodeLB,"Dropdown",true);
++    _propBool(xPSetCodeLB,"MultiSelection",false);
++
++    Sequence< OUString > ous(4);
++    ous[0] = getResStr(T602FILTER_STR_ENCODING_AUTO);
++    ous[1] = getResStr(T602FILTER_STR_ENCODING_CP852);
++    ous[2] = getResStr(T602FILTER_STR_ENCODING_CP895);
++    ous[3] = getResStr(T602FILTER_STR_ENCODING_KOI8CS2);
++    any <<= ous;
++    xPSetCodeLB->setPropertyValue(OUString::createFromAscii("StringItemList"), any);
++
++    Sequence < sal_Int16 > shr(1);
++    shr[0] = ini.forcecode ? ((sal_Int16) ini.xcode) + 1 : 0;
++    any <<= shr;
++    xPSetCodeLB->setPropertyValue(OUString::createFromAscii("SelectedItems"), any);
++
++    Reference < XInterface > AzbCheckBoxModel = _Inst("com.sun.star.awt.UnoControlCheckBoxModel");
++    Reference < XPropertySet > xPSetAzbukaCB( AzbCheckBoxModel, UNO_QUERY );
++    _propInt(xPSetAzbukaCB,"PositionX",10);
++    _propInt(xPSetAzbukaCB,"PositionY",25);
++    _propInt(xPSetAzbukaCB,"Width",100);
++    _propInt(xPSetAzbukaCB,"Height",14);
++    _propString(xPSetAzbukaCB,"Name",T602DLG_AZBUKA_CB);
++    _propShort(xPSetAzbukaCB,"TabIndex",2);
++    _propStringFromResId(xPSetAzbukaCB,"Label",T602FILTER_STR_CYRILLIC_MODE);
++    _propShort(xPSetAzbukaCB,"State",ini.ruscode);
++
++    Reference < XInterface > RefCheckBoxModel = _Inst("com.sun.star.awt.UnoControlCheckBoxModel");
++    Reference < XPropertySet > xPSetRefCB( RefCheckBoxModel, UNO_QUERY );
++    _propInt(xPSetRefCB,"PositionX",10);
++    _propInt(xPSetRefCB,"PositionY",40);
++    _propInt(xPSetRefCB,"Width",100);
++    _propInt(xPSetRefCB,"Height",14);
++    _propString(xPSetRefCB,"Name",T602DLG_REFORMAT_CB);
++    _propShort(xPSetRefCB,"TabIndex",3);
++    _propStringFromResId(xPSetRefCB,"Label",T602FILTER_STR_REFORMAT_TEXT);
++    _propShort(xPSetRefCB,"State",ini.reformatpars);
++
++    Reference < XInterface > CommCheckBoxModel = _Inst("com.sun.star.awt.UnoControlCheckBoxModel");
++    Reference < XPropertySet > xPSetCommCB( CommCheckBoxModel, UNO_QUERY );
++    _propInt(xPSetCommCB,"PositionX",10);
++    _propInt(xPSetCommCB,"PositionY",55);
++    _propInt(xPSetCommCB,"Width",100);
++    _propInt(xPSetCommCB,"Height",14);
++    _propString(xPSetCommCB,"Name",T602DLG_COMMENT_CB);
++    _propShort(xPSetCommCB,"TabIndex",4);
++    _propStringFromResId(xPSetCommCB,"Label",T602FILTER_STR_DOT_COMMANDS);
++    _propShort(xPSetCommCB,"State",ini.showcomm);
++
++    Reference < XInterface > CancelButtonModel = _Inst("com.sun.star.awt.UnoControlButtonModel");
++    Reference < XPropertySet > xPSetCancelButton( CancelButtonModel, UNO_QUERY );
++    _propInt(xPSetCancelButton,"PositionX",10);
++    _propInt(xPSetCancelButton,"PositionY",70);
++    _propInt(xPSetCancelButton,"Width",50);
++    _propInt(xPSetCancelButton,"Height",14);
++    _propString(xPSetCancelButton,"Name",T602DLG_CANCEL_BUTTON);
++    _propShort(xPSetCancelButton,"TabIndex",5);
++    _propShort(xPSetCancelButton,"PushButtonType",2);
++    _propStringFromResId(xPSetCancelButton,"Label",T602FILTER_STR_CANCEL_BUTTON);
++
++    Reference < XInterface > OkButtonModel = _Inst("com.sun.star.awt.UnoControlButtonModel");
++    Reference < XPropertySet > xPSetOkButton( OkButtonModel, UNO_QUERY );
++    _propInt(xPSetOkButton,"PositionX",70);
++    _propInt(xPSetOkButton,"PositionY",70);
++    _propInt(xPSetOkButton,"Width",50);
++    _propInt(xPSetOkButton,"Height",14);
++    _propString(xPSetOkButton,"Name",T602DLG_OK_BUTTON);
++    _propShort(xPSetOkButton,"TabIndex",0);
++    _propShort(xPSetOkButton,"PushButtonType",1);
++    _propStringFromResId(xPSetOkButton,"Label",T602FILTER_STR_OK_BUTTON);
++    _propBool(xPSetOkButton,"DefaultButton",true);
++
++    Reference < XNameContainer > xNameCont (rInstance,UNO_QUERY);
++
++    _Insert(xNameCont, T602DLG_OK_BUTTON, OkButtonModel);
++    _Insert(xNameCont, T602DLG_CANCEL_BUTTON, CancelButtonModel);
++    _Insert(xNameCont, T602DLG_AZBUKA_CB, AzbCheckBoxModel);
++    _Insert(xNameCont, T602DLG_REFORMAT_CB, RefCheckBoxModel);
++    _Insert(xNameCont, T602DLG_COMMENT_CB, CommCheckBoxModel);
++    _Insert(xNameCont, T602DLG_CODE_LB, ListBoxModel);
++    _Insert(xNameCont, T602DLG_CODE_TXT, TextModel);
++
++    Reference< XInterface > dialog = _InstCtx("com.sun.star.awt.UnoControlDialog",rComponentContext);
++
++    Reference < XControl > xControl (dialog,UNO_QUERY);
++    Reference < XControlModel > xControlModel (rInstance,UNO_QUERY);
++
++    if(!xControl.is())
++        sal_False;
++
++    xControl->setModel( xControlModel );
++
++    Reference< XInterface > toolkit = _InstCtx("com.sun.star.awt.ExtToolkit", rComponentContext);
++
++    Reference < XToolkit > xToolkit (toolkit,UNO_QUERY);
++    Reference < XWindow > xWindow (xControl,UNO_QUERY);
++
++    if(!xWindow.is())
++        return sal_False;
++
++    xWindow->setVisible( false );
++    xControl->createPeer( xToolkit, NULL );
++
++    Reference < XDialog > xDialog (dialog,UNO_QUERY);
++
++    if(!xDialog.is())
++        return sal_False;
++
++    ret = ( xDialog->execute() != 0 );
++    if ( ret ) {
++
++        sal_Int16 tt = 0;
++
++        any = _propGet(xPSetAzbukaCB, "State"); any >>= tt; ini.ruscode      = tt;
++        any = _propGet(xPSetRefCB,    "State"); any >>= tt; ini.reformatpars = tt;
++        any = _propGet(xPSetCommCB,   "State"); any >>= tt; ini.showcomm     = tt;
++
++        any = _propGet(xPSetCodeLB,   "SelectedItems"); any >>= shr;
++
++        if( shr[0] > 0 ) {
++            ini.xcode = (tcode)(shr[0]-1);
++            ini.forcecode = true;
++        } else {
++            ini.forcecode = false;
++        }
++    }
++
++    Reference < XComponent > xComponent (dialog,UNO_QUERY);
++
++    xComponent->dispose();
++
++    return ret;
++}
++
++void T602ImportFilterDialog::initLocale()
++{
++	rtl::OString aModName( "t602filter" );
++	aModName += rtl::OString::valueOf( sal_Int32( SUPD ) );
++
++	mpResMgr = ResMgr::CreateResMgr( aModName.getStr(), meLocale );
++}
++
++ResMgr* T602ImportFilterDialog::getResMgr()
++{
++	if( !mpResMgr )
++		initLocale();
++	return mpResMgr;
++}
++
++void SAL_CALL T602ImportFilterDialog::setTitle( const ::rtl::OUString& )
++            throw (::com::sun::star::uno::RuntimeException)
++{
++}
++
++sal_Int16 SAL_CALL T602ImportFilterDialog::execute()
++            throw (::com::sun::star::uno::RuntimeException)
++{
++    if (OptionsDlg())
++		return com::sun::star::ui::dialogs::ExecutableDialogResults::OK;
++	else
++		return com::sun::star::ui::dialogs::ExecutableDialogResults::CANCEL;
++}
++
++rtl::OUString T602ImportFilterDialog::getResStr( sal_Int16 resid )
++{
++	rtl::OUString sStr = String( ResId( resid, *getResMgr() ) );
++	return sStr;
++}
++
++uno::Sequence<beans::PropertyValue> SAL_CALL T602ImportFilterDialog::getPropertyValues() throw(uno::RuntimeException)
++{
++	return uno::Sequence<beans::PropertyValue>();
++}
++
++void SAL_CALL T602ImportFilterDialog::setPropertyValues( const uno::Sequence<beans::PropertyValue>& )
++					throw(beans::UnknownPropertyException, beans::PropertyVetoException,
++							lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
++{
++}
++
++
++// XServiceInfo
++OUString SAL_CALL T602ImportFilterDialog::getImplementationName(  )
++    throw (RuntimeException)
++{
++    return T602ImportFilterDialog_getImplementationName();
++}
++
++sal_Bool SAL_CALL T602ImportFilterDialog::supportsService( const OUString& rServiceName )
++    throw (RuntimeException)
++{
++    return T602ImportFilterDialog_supportsService( rServiceName );
++}
++
++Sequence< OUString > SAL_CALL T602ImportFilterDialog::getSupportedServiceNames(  )
++    throw (RuntimeException)
++{
++    return T602ImportFilterDialog_getSupportedServiceNames();
++}
++
++#define IMPLEMENTATION_NAME "com.sun.star.comp.Writer.T602ImportFilterDialog"
++
++OUString T602ImportFilterDialog_getImplementationName ()
++    throw (RuntimeException)
++{
++    return OUString ( RTL_CONSTASCII_USTRINGPARAM ( IMPLEMENTATION_NAME ) );
++}
++
++#define SERVICE_NAME "com.sun.star.ui.dialogs.FilterOptionsDialog"
++sal_Bool SAL_CALL T602ImportFilterDialog_supportsService( const OUString& ServiceName )
++    throw (RuntimeException)
++{
++    return ( ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) ) );
++}
++
++Sequence< OUString > SAL_CALL T602ImportFilterDialog_getSupportedServiceNames(  )
++    throw (RuntimeException)
++{
++    Sequence < OUString > aRet(1);
++    OUString* pArray = aRet.getArray();
++    pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
++    return aRet;
++}
++#undef SERVICE_NAME
++
++Reference< XInterface > SAL_CALL T602ImportFilterDialog_createInstance( const Reference< XMultiServiceFactory > & rSMgr)
++    throw( Exception )
++{
++    return (cppu::OWeakObject*) new T602ImportFilterDialog( rSMgr );
++}
++
++}
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/t602filter.hrc	23 Aug 2007 12:41:20 -0000	1.1.2.3
+@@ -0,0 +1,56 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  Copyright (C) 2007 Novell, Inc. (http://www.novell.com)
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2004-2007 Milan Broz <mbroz@redhat.com>
++ *    Copyright 2007 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef T602FILTER_HRC
++#define T602FILTER_HRC
++
++#define T602FILTER_RES_START 1000
++
++#define T602FILTER_STR_IMPORT_DIALOG_TITLE      (T602FILTER_RES_START)
++#define T602FILTER_STR_ENCODING_LABEL           (T602FILTER_RES_START+1)
++#define T602FILTER_STR_ENCODING_AUTO            (T602FILTER_RES_START+2)
++#define T602FILTER_STR_ENCODING_CP852           (T602FILTER_RES_START+3)
++#define T602FILTER_STR_ENCODING_CP895           (T602FILTER_RES_START+4)
++#define T602FILTER_STR_ENCODING_KOI8CS2         (T602FILTER_RES_START+5)
++#define T602FILTER_STR_CYRILLIC_MODE            (T602FILTER_RES_START+6)
++#define T602FILTER_STR_REFORMAT_TEXT            (T602FILTER_RES_START+7)
++#define T602FILTER_STR_DOT_COMMANDS             (T602FILTER_RES_START+8)
++#define T602FILTER_STR_CANCEL_BUTTON            (T602FILTER_RES_START+9)
++#define T602FILTER_STR_OK_BUTTON                (T602FILTER_RES_START+10)
++
++#endif // T602FILTER_HRC
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/t602filter.hxx	20 Feb 2008 18:58:09 -0000	1.1.2.7
+@@ -0,0 +1,298 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  Copyright (C) 2004-2007 Milan Broz (asi@seznam.cz)
++ *  Copyright (C) 2007 Novell, Inc. (http://www.novell.com)
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2004-2007 Milan Broz <mbroz@redhat.com>
++ *    Copyright 2007 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef _T602FILTER_HXX
++#define _T602FILTER_HXX
++
++#include <com/sun/star/document/XFilter.hpp>
++#include <com/sun/star/document/XImporter.hpp>
++#include <com/sun/star/document/XExtendedFilterDetection.hpp>
++#include <com/sun/star/io/XInputStream.hpp>
++#include <com/sun/star/lang/XInitialization.hpp>
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#include <com/sun/star/lang/XLocalizable.hpp>
++#include <com/sun/star/beans/XPropertyAccess.hpp>
++#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
++#include <cppuhelper/implbase5.hxx>
++#include <cppuhelper/implbase4.hxx>
++#include <xmloff/attrlist.hxx>
++#include <tools/resmgr.hxx>
++
++namespace T602ImportFilter {
++
++typedef enum {L2,KAM,KOI} tcode;
++
++typedef enum {
++        standard,   // default
++        fat,        // bold
++        cursive,    // italic
++        bold,       // wide
++        tall,       // high
++        big,        // big
++        lindex,     // lower index
++        hindex,     // upper index
++        err,        // not set yet
++        chngul      // change underline
++} fonts;
++
++typedef enum {START,READCH,EOL,POCMD,EXPCMD,SETCMD,SETCH,WRITE,EEND,QUIT} tnode;
++
++::rtl::OUString getImplementationName()
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Sequence < ::rtl::OUString > getSupportedServiceNames()
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++
++::com::sun::star::uno::Reference < ::com::sun::star::uno::XInterface > SAL_CALL
++    CreateInstance( const ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > &r)
++    throw ( ::com::sun::star::uno::Exception );
++
++
++//
++// class T602ImportFilter
++//
++
++struct inistruct 
++{
++        bool showcomm;      // true   show comment lines
++        bool forcecode;     // false  the user has changed the encoding with something else than @CT
++        tcode xcode;        // KAM    encoding set - forced
++        bool ruscode;       // false  Russian tables turned on
++        bool reformatpars;  // false  Reformat paragraphs (whitespaces and line breaks)
++        sal_Int16 fontsize;       // font size in points
++
++		inistruct()
++			: showcomm( true )
++			, forcecode( false )
++			, xcode ( KAM )
++			, ruscode ( false )
++			, reformatpars ( false )
++			, fontsize (10)
++		{
++		};
++};
++
++class T602ImportFilterDialog : public cppu::WeakImplHelper4 <
++		com::sun::star::ui::dialogs::XExecutableDialog,
++		com::sun::star::lang::XLocalizable,
++		com::sun::star::lang::XServiceInfo,
++		com::sun::star::beans::XPropertyAccess
++>
++{
++    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
++	com::sun::star::lang::Locale meLocale;
++    ResMgr *mpResMgr;
++    sal_Bool OptionsDlg();
++    ResMgr* getResMgr();
++    rtl::OUString getResStr( sal_Int16 resid );
++    void initLocale();
++
++    ~T602ImportFilterDialog();
++
++	// XExecutableDialog
++       virtual void SAL_CALL setTitle( const ::rtl::OUString& aTitle )
++            throw (::com::sun::star::uno::RuntimeException);
++       virtual sal_Int16 SAL_CALL execute()
++            throw (::com::sun::star::uno::RuntimeException);
++
++	// XLocalizable
++        virtual void SAL_CALL setLocale( const com::sun::star::lang::Locale& eLocale )
++            throw(::com::sun::star::uno::RuntimeException);
++        virtual com::sun::star::lang::Locale SAL_CALL getLocale()
++            throw(::com::sun::star::uno::RuntimeException);
++
++    // XServiceInfo
++        virtual ::rtl::OUString SAL_CALL getImplementationName(  )
++            throw (::com::sun::star::uno::RuntimeException);
++        virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
++            throw (::com::sun::star::uno::RuntimeException);
++        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  )
++            throw (::com::sun::star::uno::RuntimeException);
++
++	// XPropertyAccess
++		virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >
++							SAL_CALL getPropertyValues() throw (::com::sun::star::uno::RuntimeException);
++		virtual void SAL_CALL	setPropertyValues( const ::com::sun::star::uno::Sequence<
++									::com::sun::star::beans::PropertyValue >& aProps )
++								throw (::com::sun::star::beans::UnknownPropertyException,
++										::com::sun::star::beans::PropertyVetoException,
++										::com::sun::star::lang::IllegalArgumentException,
++										::com::sun::star::lang::WrappedTargetException,
++										::com::sun::star::uno::RuntimeException);
++
++public:
++	T602ImportFilterDialog(const ::com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory > &r );
++
++};
++
++
++class T602ImportFilter : public cppu::WeakImplHelper5 <
++    com::sun::star::document::XFilter,
++    com::sun::star::document::XImporter,
++    com::sun::star::document::XExtendedFilterDetection,
++    com::sun::star::lang::XInitialization,
++    com::sun::star::lang::XServiceInfo    
++>
++{
++private:
++//    ::com::sun::star::uno::Reference<com::sun::star::io::XInputStream> xInputStream;
++    ::com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> mxHandler;
++    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
++    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > mxDoc;
++    ::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > mxInputStream;
++    ::rtl::OUString msFilterName;
++
++    SvXMLAttributeList *mpAttrList;
++
++    tnode node;         // START
++
++    struct {
++        sal_Int16   mt;       // row for header
++        sal_Int16   mb;       // row for footer
++        sal_Int16   tb;       // tabs
++        sal_Int16   ct;       // encoding (0-kamenik, 1-latin2, 2-koi8)
++        sal_Int16   pn;       // from page number
++        sal_Int16   lh;       // linespacing 3-2x, 4-1.5x, 6-1x
++        sal_Int16   lm;       // left border
++        sal_Int16   rm;       // right border
++        sal_Int16   pl;       // page length
++    } format602;
++
++    // Initialisation constants - they are not changed during the conversion
++
++    inistruct ini;
++
++    // Font state - changes based on font
++
++    struct {
++        fonts nowfnt;     // current font
++        fonts oldfnt;     // previous font
++        bool uline;       // underlined
++        bool olduline;    // previous value of uline (font change)
++    } fst;
++
++    // Paragraph state
++
++    struct {
++        sal_Int16 pars;            //       the number of line endings times linespacing on the current page
++        bool comment;        //       in comments
++        sal_Int16 wasspace;        // 0     there was a space - for reformatting
++        bool wasfdash;       // 0     formatting dash
++        bool ccafterln;      // false
++        bool willbeeop;      // false
++        bool waspar;         // false
++    } pst;
++
++    void Reset602();
++    unsigned char Readchar602();
++    void Read602();
++    void par602(bool endofpage);
++    void inschr(unsigned char ch);
++    void inschrdef(unsigned char ch);
++    unsigned char Setformat602(char *cmd);
++    sal_Int16 readnum(unsigned char *ch, bool show);
++    tnode PointCmd602(unsigned char *ch);
++    void setfnt(fonts fnt,bool mustwrite);
++    void wrtfnt();
++
++    sal_Bool SAL_CALL importImpl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
++        throw (::com::sun::star::uno::RuntimeException);
++
++    public:
++        T602ImportFilter(const ::com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory > &r );
++        ~T602ImportFilter();
++
++    // XFilter
++        virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
++            throw (::com::sun::star::uno::RuntimeException);
++        virtual void SAL_CALL cancel(  )
++            throw (::com::sun::star::uno::RuntimeException) {};
++
++    // XImporter
++        virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc )
++            throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
++
++    // XExtendedTypeDetection
++        virtual ::rtl::OUString SAL_CALL detect(
++            com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Descriptor )
++            throw( com::sun::star::uno::RuntimeException );
++
++    // XInitialization
++        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
++            throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++
++    // XServiceInfo
++        virtual ::rtl::OUString SAL_CALL getImplementationName(  )
++            throw (::com::sun::star::uno::RuntimeException);
++        virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
++            throw (::com::sun::star::uno::RuntimeException);
++        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  )
++            throw (::com::sun::star::uno::RuntimeException);
++};
++
++::rtl::OUString T602ImportFilter_getImplementationName()
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++sal_Bool SAL_CALL T602ImportFilter_supportsService( const ::rtl::OUString& ServiceName )
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL T602ImportFilter_getSupportedServiceNames(  )
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
++SAL_CALL T602ImportFilter_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
++    throw ( ::com::sun::star::uno::Exception );
++
++::rtl::OUString T602ImportFilterDialog_getImplementationName()
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++sal_Bool SAL_CALL T602ImportFilterDialog_supportsService( const ::rtl::OUString& ServiceName )
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL T602ImportFilterDialog_getSupportedServiceNames(  )
++    throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
++SAL_CALL T602ImportFilterDialog_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
++    throw ( ::com::sun::star::uno::Exception );
++
++}
++
++#endif
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/t602filter.map	13 Apr 2007 08:04:23 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++T602IMP_1_0 {
++	global:
++		component_getImplementationEnvironment;
++		component_writeInfo;
++		component_getFactory;
++	local:
++		*;
++};
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/t602/t602filter.src	4 Nov 2007 15:52:37 -0000	1.1.2.8
+@@ -0,0 +1,94 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  Copyright (C) 2007 Novell, Inc. (http://www.novell.com)
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2004-2007 Milan Broz <mbroz@redhat.com>
++ *    Copyright 2007 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "t602filter.hrc"
++
++String T602FILTER_STR_IMPORT_DIALOG_TITLE
++{
++    Text [ en-US ] = "Settings for T602 import";
++};
++
++String T602FILTER_STR_ENCODING_LABEL
++{
++    Text [ en-US ] = "Encoding";
++};
++
++String T602FILTER_STR_ENCODING_AUTO
++{
++    Text [ en-US ] = "Automatic";
++};
++
++String T602FILTER_STR_ENCODING_CP852
++{
++    Text [ en-US ] = "CP852 (Latin2)";
++};
++
++String T602FILTER_STR_ENCODING_CP895
++{
++    Text [ en-US ] = "CP895 (KEYB2CS, Kamenicky)";
++};
++
++String T602FILTER_STR_ENCODING_KOI8CS2
++{
++    Text [ en-US ] = "KOI8 CS2";
++};
++
++String T602FILTER_STR_CYRILLIC_MODE
++{
++    Text [ en-US ] = "Mode for Russian language (Cyrillic)";
++};
++
++String T602FILTER_STR_REFORMAT_TEXT
++{
++    Text [ en-US ] = "Reformat the text";
++};
++
++String T602FILTER_STR_DOT_COMMANDS
++{
++    Text [ en-US ] = "Display dot commands";
++};
++
++String T602FILTER_STR_CANCEL_BUTTON
++{
++    Text [ en-US ] = "Cancel";
++};
++
++String T602FILTER_STR_OK_BUTTON
++{
++    Text [ en-US ] = "OK";
++};
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-sw.diff
@@ -0,0 +1,223 @@
+cvs diff: Diffing sw
+cvs diff: Diffing sw/inc
+cvs diff: Diffing sw/inc/pch
+cvs diff: Diffing sw/prj
+cvs diff: Diffing sw/qa
+cvs diff: Diffing sw/qa/complex
+cvs diff: Diffing sw/qa/complex/accessibility
+cvs diff: Diffing sw/qa/complex/checkColor
+cvs diff: Diffing sw/qa/complex/indeterminateState
+cvs diff: Diffing sw/qa/complex/writer
+cvs diff: Diffing sw/qa/core
+cvs diff: Diffing sw/qa/unoapi
+cvs diff: Diffing sw/qa/unoapi/testdocuments
+cvs diff: Diffing sw/sdi
+cvs diff: Diffing sw/source
+cvs diff: Diffing sw/source/core
+cvs diff: Diffing sw/source/core/SwNumberTree
+cvs diff: Diffing sw/source/core/access
+cvs diff: Diffing sw/source/core/attr
+cvs diff: Diffing sw/source/core/bastyp
+cvs diff: Diffing sw/source/core/crsr
+cvs diff: Diffing sw/source/core/doc
+cvs diff: Diffing sw/source/core/docnode
+cvs diff: Diffing sw/source/core/draw
+cvs diff: Diffing sw/source/core/edit
+cvs diff: Diffing sw/source/core/except
+cvs diff: Diffing sw/source/core/fields
+cvs diff: Diffing sw/source/core/frmedt
+cvs diff: Diffing sw/source/core/graphic
+cvs diff: Diffing sw/source/core/inc
+cvs diff: Diffing sw/source/core/layout
+cvs diff: Diffing sw/source/core/objectpositioning
+cvs diff: Diffing sw/source/core/ole
+cvs diff: Diffing sw/source/core/para
+cvs diff: Diffing sw/source/core/sw3io
+cvs diff: Diffing sw/source/core/swg
+cvs diff: Diffing sw/source/core/table
+cvs diff: Diffing sw/source/core/text
+cvs diff: Diffing sw/source/core/tox
+cvs diff: Diffing sw/source/core/txtnode
+cvs diff: Diffing sw/source/core/undo
+cvs diff: Diffing sw/source/core/unocore
+cvs diff: Diffing sw/source/core/view
+cvs diff: Diffing sw/source/filter
+cvs diff: Diffing sw/source/filter/ascii
+cvs diff: Diffing sw/source/filter/basflt
+cvs diff: Diffing sw/source/filter/html
+cvs diff: Diffing sw/source/filter/inc
+cvs diff: Diffing sw/source/filter/rtf
+cvs diff: Diffing sw/source/filter/writer
+cvs diff: Diffing sw/source/filter/ww1
+cvs diff: Diffing sw/source/filter/ww8
+cvs diff: Diffing sw/source/filter/ww8/dump
+cvs diff: Diffing sw/source/filter/xml
+cvs diff: Diffing sw/source/ui
+cvs diff: Diffing sw/source/ui/app
+cvs diff: Diffing sw/source/ui/cctrl
+cvs diff: Diffing sw/source/ui/chrdlg
+cvs diff: Diffing sw/source/ui/config
+cvs diff: Diffing sw/source/ui/dbui
+cvs diff: Diffing sw/source/ui/dialog
+Index: sw/source/ui/dialog/makefile.mk
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/dialog/makefile.mk,v
+retrieving revision 1.19
+retrieving revision 1.19.186.1
+diff -p -u -u -p -b -w -B -r1.19 -r1.19.186.1
+--- sw/source/ui/dialog/makefile.mk	27 Sep 2007 11:37:21 -0000	1.19
++++ sw/source/ui/dialog/makefile.mk	12 Feb 2008 12:42:46 -0000	1.19.186.1
+@@ -46,6 +46,10 @@ LIBTARGET=no
+ .INCLUDE :  settings.mk
+ .INCLUDE :  $(PRJ)$/inc$/sw.mk
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++CFLAGS+= -DENABLE_LAYOUT=1 -I../$(PRJ)/layout/inc -I../$(PRJ)/layout/$(INPATH)/inc
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ # --- Files --------------------------------------------------------
+ 
+ SRS1NAME=$(TARGET)
+Index: sw/source/ui/dialog/wordcountdialog.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/dialog/wordcountdialog.cxx,v
+retrieving revision 1.8
+retrieving revision 1.8.186.1
+diff -p -u -u -p -b -w -B -r1.8 -r1.8.186.1
+--- sw/source/ui/dialog/wordcountdialog.cxx	27 Sep 2007 11:39:08 -0000	1.8
++++ sw/source/ui/dialog/wordcountdialog.cxx	12 Feb 2008 12:42:46 -0000	1.8.186.1
+@@ -50,6 +50,7 @@
+ #endif
+ 
+ #include <dialog.hrc>
++#include <layout/layout-pre.hxx>
+ #include <wordcountdialog.hrc>
+ 
+ /*-- 06.04.2004 16:05:55---------------------------------------------------
+cvs diff: Diffing sw/source/ui/dochdl
+cvs diff: Diffing sw/source/ui/docvw
+cvs diff: Diffing sw/source/ui/envelp
+cvs diff: Diffing sw/source/ui/fldui
+cvs diff: Diffing sw/source/ui/fmtui
+cvs diff: Diffing sw/source/ui/frmdlg
+cvs diff: Diffing sw/source/ui/globdoc
+cvs diff: Diffing sw/source/ui/inc
+Index: sw/source/ui/inc/wordcountdialog.hxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/inc/wordcountdialog.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.1148.1
+diff -p -u -u -p -b -w -B -r1.3 -r1.3.1148.1
+--- sw/source/ui/inc/wordcountdialog.hxx	9 Sep 2005 10:18:42 -0000	1.3
++++ sw/source/ui/inc/wordcountdialog.hxx	12 Feb 2008 12:42:47 -0000	1.3.1148.1
+@@ -43,6 +43,8 @@
+ #ifndef _SV_BUTTON_HXX
+ #include <vcl/button.hxx>
+ #endif
++#include <layout/layout.hxx>
++#include <layout/layout-pre.hxx>
+ struct SwDocStat;
+ class SwWordCountDialog : public SfxModalDialog
+ {
+@@ -70,4 +72,6 @@ public:    
+     void    SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc);
+ };
+ 
++#include <layout/layout-post.hxx>
++
+ #endif
+cvs diff: Diffing sw/source/ui/index
+cvs diff: Diffing sw/source/ui/lingu
+cvs diff: Diffing sw/source/ui/misc
+cvs diff: Diffing sw/source/ui/ribbar
+cvs diff: Diffing sw/source/ui/shells
+cvs diff: Diffing sw/source/ui/smartmenu
+cvs diff: Diffing sw/source/ui/table
+cvs diff: Diffing sw/source/ui/uiview
+cvs diff: Diffing sw/source/ui/uno
+cvs diff: Diffing sw/source/ui/utlui
+cvs diff: Diffing sw/source/ui/web
+cvs diff: Diffing sw/source/ui/wrtsh
+cvs diff: Diffing sw/uiconfig
+cvs diff: Diffing sw/uiconfig/sglobal
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/de
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/es
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/fr
+cvs diff: Diffing sw/uiconfig/sglobal/menubar
+cvs diff: Diffing sw/uiconfig/sglobal/statusbar
+cvs diff: Diffing sw/uiconfig/sglobal/toolbar
+cvs diff: Diffing sw/uiconfig/sweb
+cvs diff: Diffing sw/uiconfig/sweb/accelerator
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/de
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/es
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/fr
+cvs diff: Diffing sw/uiconfig/sweb/menubar
+cvs diff: Diffing sw/uiconfig/sweb/statusbar
+cvs diff: Diffing sw/uiconfig/sweb/toolbar
+cvs diff: Diffing sw/uiconfig/swform
+cvs diff: Diffing sw/uiconfig/swform/accelerator
+cvs diff: Diffing sw/uiconfig/swform/accelerator/de
+cvs diff: Diffing sw/uiconfig/swform/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swform/accelerator/es
+cvs diff: Diffing sw/uiconfig/swform/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swform/menubar
+cvs diff: Diffing sw/uiconfig/swform/statusbar
+cvs diff: Diffing sw/uiconfig/swform/toolbar
+cvs diff: Diffing sw/uiconfig/swreport
+cvs diff: Diffing sw/uiconfig/swreport/accelerator
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/de
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/es
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swreport/menubar
+cvs diff: Diffing sw/uiconfig/swreport/statusbar
+cvs diff: Diffing sw/uiconfig/swreport/toolbar
+cvs diff: Diffing sw/uiconfig/swriter
+cvs diff: Diffing sw/uiconfig/swriter/accelerator
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/de
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/es
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swriter/menubar
+cvs diff: Diffing sw/uiconfig/swriter/statusbar
+cvs diff: Diffing sw/uiconfig/swriter/toolbar
+cvs diff: Diffing sw/uiconfig/swxform
+cvs diff: Diffing sw/uiconfig/swxform/accelerator
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/de
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/es
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swxform/menubar
+cvs diff: Diffing sw/uiconfig/swxform/statusbar
+cvs diff: Diffing sw/uiconfig/swxform/toolbar
+cvs diff: Diffing sw/util
+Index: sw/util/makefile.mk
+===================================================================
+RCS file: /cvs/sw/sw/util/makefile.mk,v
+retrieving revision 1.62
+retrieving revision 1.62.164.1
+diff -p -u -u -p -b -w -B -r1.62 -r1.62.164.1
+--- sw/util/makefile.mk	15 Oct 2007 12:15:54 -0000	1.62
++++ sw/util/makefile.mk	12 Feb 2008 12:42:47 -0000	1.62.164.1
+@@ -199,6 +199,11 @@ SHL3STDLIBS= \
+             $(SALLIB) \
+ 			$(SOTLIB)
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++LINKFLAGS+= -L../$(PRJ)/layout/$(INPATH)/lib
++SHL3STDLIBS += -ltklayout$(UPD)$(DLLPOSTFIX)
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ SHL3LIBS=   $(SLB)$/swui.lib
+ LIB3TARGET = $(SLB)$/swui.lib
+ 
+cvs diff: Diffing sw/util/defs
+cvs diff: Diffing sw/xml
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autocorrect-accidental-caps-lock-svx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autocorrect-accidental-caps-lock-svx.diff
@@ -0,0 +1,553 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/inc/svx/editeng.hxx svx/inc/svx/editeng.hxx
+--- svx.clean/inc/svx/editeng.hxx	2008-02-25 11:50:16.000000000 -0500
++++ svx/inc/svx/editeng.hxx	2008-02-27 23:29:13.000000000 -0500
+@@ -61,6 +61,7 @@ class Rectangle;
+ class SvStream;
+ class Link;
+ class OutputDevice;
++class Window;
+ class SvUShorts;
+ class SfxPoolItem;
+ class SvxNumBulletItem;
+@@ -133,7 +134,7 @@ private:
+ 	SVX_DLLPRIVATE EditEngine&		operator=( const EditEngine& );
+ 
+ //#if 0 // _SOLAR__PRIVATE
+-	SVX_DLLPRIVATE BOOL				PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pView );
++	SVX_DLLPRIVATE BOOL				PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pView, Window* pFrameWin = NULL );
+ //#endif
+ 
+ public:
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/inc/svx/editview.hxx svx/inc/svx/editview.hxx
+--- svx.clean/inc/svx/editview.hxx	2008-02-25 11:50:16.000000000 -0500
++++ svx/inc/svx/editview.hxx	2008-02-27 23:15:13.000000000 -0500
+@@ -162,7 +162,7 @@ public:
+ 
+ 	void			InsertText( const String& rNew, BOOL bSelect = FALSE );
+ 
+-	BOOL			PostKeyEvent( const KeyEvent& rKeyEvent );
++	BOOL			PostKeyEvent( const KeyEvent& rKeyEvent, Window* pFrameWin = NULL );
+ 
+ 	BOOL			MouseButtonUp( const MouseEvent& rMouseEvent );
+ 	BOOL			MouseButtonDown( const MouseEvent& rMouseEvent );
+@@ -225,7 +225,7 @@ public:
+ 
+ 	BOOL			MatchGroup();
+ 
+-	void			CompleteAutoCorrect();
++	void			CompleteAutoCorrect( Window* pFrameWin = NULL );
+ 
+ 	EESpellState	StartSpeller( BOOL bMultipleDoc = FALSE );
+ 	EESpellState	StartThesaurus();
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/inc/svx/outliner.hxx svx/inc/svx/outliner.hxx
+--- svx.clean/inc/svx/outliner.hxx	2008-02-25 11:50:16.000000000 -0500
++++ svx/inc/svx/outliner.hxx	2008-02-28 18:57:43.000000000 -0500
+@@ -274,7 +274,7 @@ public:
+ 	void        Scroll( long nHorzScroll, long nVertScroll );
+ 
+ 	void        Paint( const Rectangle& rRect );
+-	BOOL        PostKeyEvent( const KeyEvent& rKEvt );
++	BOOL        PostKeyEvent( const KeyEvent& rKEvt, Window* pFrameWin = NULL );
+ 	BOOL        MouseButtonDown( const MouseEvent& );
+ 	BOOL        MouseButtonUp( const MouseEvent& );
+ 	BOOL        MouseMove( const MouseEvent& );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/inc/svx/svxacorr.hxx svx/inc/svx/svxacorr.hxx
+--- svx.clean/inc/svx/svxacorr.hxx	2008-02-25 11:50:16.000000000 -0500
++++ svx/inc/svx/svxacorr.hxx	2008-02-28 11:46:04.000000000 -0500
+@@ -75,6 +75,7 @@ class SvxAutoCorrLanguageTable_Impl;
+ class SvxAutoCorrLastFileAskTable_Impl;
+ class SotStorageRef;
+ class SotStorage;
++class Window;
+ 
+ // Flags fuer die AutoKorrekt-Flags
+ const long CptlSttSntnc		= 0x00000001;	// Gross-Buchstaben am SatzAnfang
+@@ -90,6 +91,7 @@ const long SaveWordCplSttLst= 0x00000200
+ const long SaveWordWrdSttLst= 0x00000400;	// 2 GrB. am WortAnf. auto. aufnehmen
+ const long IngnoreDoubleSpace= 0x00000800;	// 2 Spaces ignorieren
+ const long ChgSglQuotes		= 0x00001000;	// einfache Quotes ersetzen
++const long CorrectCapsLock  = 0x00002000;   // Correct accidental use of cAPS LOCK key
+ 
+ const long ChgWordLstLoad	= 0x20000000;	// Ersetzungsliste geladen
+ const long CplSttLstLoad	= 0x40000000;	// Exceptionlist fuer CplStart geladen
+@@ -277,7 +279,7 @@ public:
+ 	// fuehre eine AutoKorrektur aus.
+ 	// returnt was ausgefuehrt wurde; entsprechend den obigen Flags
+ 	ULONG AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
+-						xub_StrLen nPos, sal_Unicode cInsChar, BOOL bInsert );
++						xub_StrLen nPos, sal_Unicode cInsChar, BOOL bInsert, Window* pFrameWin = NULL );
+ 
+ 	// return fuer die Autotext Expandierung das vorherige Wort, was dem
+ 	// AutoCorrect - Algorythmus entspricht.
+@@ -402,6 +404,10 @@ public:
+ 								xub_StrLen nSttPos, xub_StrLen nEndPos,
+ 								LanguageType eLang  = LANGUAGE_SYSTEM);
+ 
++    bool FnCorrectCapsLock( SvxAutoCorrDoc&, const String&, 
++                            xub_StrLen nSttPos, xub_StrLen nEndPos,
++                            LanguageType eLang  = LANGUAGE_SYSTEM );
++
+ 	static long			GetDefaultFlags();
+ 
+ // returns TRUE for charcters where the function
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/dialog/autocdlg.cxx svx/source/dialog/autocdlg.cxx
+--- svx.clean/source/dialog/autocdlg.cxx	2008-02-25 11:50:19.000000000 -0500
++++ svx/source/dialog/autocdlg.cxx	2008-02-25 23:26:30.000000000 -0500
+@@ -260,7 +260,8 @@ OfaAutocorrOptionsPage::OfaAutocorrOptio
+     sNoDblSpaces        (SVX_RES(STR_NO_DBL_SPACES    )),
+     sHalf               (SVX_RES(ST_FRACTION          )),
+ 	sDash    			(SVX_RES(ST_DASH	         	)),
+-    sFirst              (SVX_RES(ST_ORDINAL           ))
++    sFirst              (SVX_RES(ST_ORDINAL           )),
++    sAccidentalCaps     (SVX_RES(ST_CORRECT_ACCIDENTAL_CAPS_LOCK))
+ {
+ 	FreeResource();
+ 
+@@ -306,6 +307,7 @@ BOOL OfaAutocorrOptionsPage::FillItemSet
+ 	pAutoCorrect->SetAutoCorrFlag(ChgFractionSymbol,	aCheckLB.IsChecked(nPos++));
+ 	pAutoCorrect->SetAutoCorrFlag(ChgToEnEmDash,		aCheckLB.IsChecked(nPos++));
+ 	pAutoCorrect->SetAutoCorrFlag(IngnoreDoubleSpace,	aCheckLB.IsChecked(nPos++));
++    pAutoCorrect->SetAutoCorrFlag(CorrectCapsLock,      aCheckLB.IsChecked(nPos++));
+ 
+ 	BOOL bReturn = nFlags != pAutoCorrect->GetFlags();
+ 	if(bReturn )
+@@ -347,6 +349,7 @@ void OfaAutocorrOptionsPage::Reset( cons
+ 	aCheckLB.InsertEntry(sHalf);
+ 	aCheckLB.InsertEntry(sDash);
+ 	aCheckLB.InsertEntry(sNoDblSpaces);
++    aCheckLB.InsertEntry(sAccidentalCaps);
+ 
+ 	USHORT nPos = 0;
+ 	aCheckLB.CheckEntryPos( nPos++, 0 != (nFlags & Autocorrect) );
+@@ -358,6 +361,7 @@ void OfaAutocorrOptionsPage::Reset( cons
+ 	aCheckLB.CheckEntryPos( nPos++, 0 != (nFlags & ChgFractionSymbol) );
+ 	aCheckLB.CheckEntryPos( nPos++, 0 != (nFlags & ChgToEnEmDash) );
+ 	aCheckLB.CheckEntryPos( nPos++, 0 != (nFlags & IngnoreDoubleSpace) );
++    aCheckLB.CheckEntryPos( nPos++, 0 != (nFlags & CorrectCapsLock) );
+ 
+ 	aCheckLB.SetUpdateMode(TRUE);
+ }
+@@ -490,6 +494,7 @@ enum OfaAutoFmtOptions
+ 	DEL_SPACES_AT_STT_END,
+ 	DEL_SPACES_BETWEEN_LINES,
+ 	IGNORE_DBLSPACE,
++    CORRECT_CAPS_LOCK,
+ 	APPLY_NUMBERING,
+ 	INSERT_BORDER,
+ 	CREATE_TABLE,
+@@ -519,6 +524,7 @@ OfaSwAutoFmtOptionsPage::OfaSwAutoFmtOpt
+ 	sBullet				(SVX_RES(	ST_BULLET       )),
+ 	sBoldUnder			(SVX_RES(	ST_BOLD_UNDER   )),
+ 	sNoDblSpaces		(SVX_RES(	STR_NO_DBL_SPACES)),
++    sCorrectCapsLock    (SVX_RES(   ST_CORRECT_ACCIDENTAL_CAPS_LOCK)),
+ 	sFraction			(SVX_RES(	ST_FRACTION     )),
+ 	sDetectURL			(SVX_RES(	ST_DETECT_URL   )),
+ 	sDash				(SVX_RES(	ST_DASH         )),
+@@ -659,6 +665,9 @@ BOOL OfaSwAutoFmtOptionsPage::FillItemSe
+ 	pAutoCorrect->SetAutoCorrFlag(IngnoreDoubleSpace,
+ 						aCheckLB.IsChecked(IGNORE_DBLSPACE, CBCOL_SECOND));
+ 
++    pAutoCorrect->SetAutoCorrFlag(CorrectCapsLock,
++                        aCheckLB.IsChecked(CORRECT_CAPS_LOCK, CBCOL_SECOND));
++
+ 	bCheck = aCheckLB.IsChecked(DETECT_URL, CBCOL_FIRST);
+ 	bModified |= pOpt->bSetINetAttr != bCheck;
+ 	pOpt->bSetINetAttr = bCheck;
+@@ -790,6 +799,7 @@ void OfaSwAutoFmtOptionsPage::Reset( con
+ 	aCheckLB.GetModel()->Insert(CreateEntry(sDelSpaceBetweenLines, CBCOL_BOTH  ));
+ 
+ 	aCheckLB.GetModel()->Insert(CreateEntry(sNoDblSpaces,		CBCOL_SECOND));
++    aCheckLB.GetModel()->Insert(CreateEntry(sCorrectCapsLock,   CBCOL_SECOND));
+ 	aCheckLB.GetModel()->Insert(CreateEntry(sNum,				CBCOL_SECOND));
+ 	aCheckLB.GetModel()->Insert(CreateEntry(sBorder,			CBCOL_SECOND));
+ 	aCheckLB.GetModel()->Insert(CreateEntry(sTable,				CBCOL_SECOND));
+@@ -809,6 +819,7 @@ void OfaSwAutoFmtOptionsPage::Reset( con
+ 	aCheckLB.CheckEntryPos( BOLD_UNDERLINE,		CBCOL_FIRST,	pOpt->bChgWeightUnderl );
+ 	aCheckLB.CheckEntryPos( BOLD_UNDERLINE,		CBCOL_SECOND,	0 != (nFlags & ChgWeightUnderl) );
+ 	aCheckLB.CheckEntryPos( IGNORE_DBLSPACE,	CBCOL_SECOND,	0 != (nFlags & IngnoreDoubleSpace) );
++    aCheckLB.CheckEntryPos( CORRECT_CAPS_LOCK,  CBCOL_SECOND,   0 != (nFlags & CorrectCapsLock) );
+ 	aCheckLB.CheckEntryPos( DETECT_URL,			CBCOL_FIRST,	pOpt->bSetINetAttr );
+ 	aCheckLB.CheckEntryPos( DETECT_URL,			CBCOL_SECOND,	0 != (nFlags & SetINetAttr) );
+ 	aCheckLB.CheckEntryPos( REPLACE_1ST,		CBCOL_FIRST,	pOpt->bChgOrdinalNumber );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/dialog/autocdlg.hrc svx/source/dialog/autocdlg.hrc
+--- svx.clean/source/dialog/autocdlg.hrc	2008-02-25 11:50:19.000000000 -0500
++++ svx/source/dialog/autocdlg.hrc	2008-02-25 17:43:51.000000000 -0500
+@@ -157,6 +157,7 @@
+ #define ST_DASH                         208
+ #define FT_LANG                         209
+ #define LB_LANG                         210
++#define ST_CORRECT_ACCIDENTAL_CAPS_LOCK 211
+ 
+ #define CB_SMARTTAGS                    220
+ #define FT_SMARTTAGS                    221
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/dialog/autocdlg.hxx svx/source/dialog/autocdlg.hxx
+--- svx.clean/source/dialog/autocdlg.hxx	2008-02-25 11:50:19.000000000 -0500
++++ svx/source/dialog/autocdlg.hxx	2008-02-25 19:07:16.000000000 -0500
+@@ -149,6 +149,7 @@ private:
+ 	String		sHalf;
+ 	String		sDash;
+ 	String		sFirst;
++    String      sAccidentalCaps;
+ 
+ public:
+ 						OfaAutocorrOptionsPage( Window* pParent, const SfxItemSet& rSet );
+@@ -187,6 +188,7 @@ class OfaSwAutoFmtOptionsPage : public S
+ 	String			sByInputBullet;
+ 	String			sBoldUnder;
+ 	String			sNoDblSpaces;
++    String          sCorrectCapsLock;
+ 	String			sFraction;
+ 	String			sDetectURL;
+ 	String          sDash;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/dialog/autocdlg.src svx/source/dialog/autocdlg.src
+--- svx.clean/source/dialog/autocdlg.src	2008-02-25 11:50:19.000000000 -0500
++++ svx/source/dialog/autocdlg.src	2008-02-25 17:46:00.000000000 -0500
+@@ -145,7 +145,11 @@ TabDialog RID_OFA_AUTOCORR_DLG
+     String ST_DASH \
+     { \
+         Text [ en-US ] = "Replace dashes" ; \
+-	};
++	}; \
++    String ST_CORRECT_ACCIDENTAL_CAPS_LOCK \
++    { \
++        Text [ en-US ] = "Correct accidental use of cAPS LOCK key" ; \
++    };
+ 
+ /**************************************************************************/
+ /*                                                                        */
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/acorrcfg.cxx svx/source/editeng/acorrcfg.cxx
+--- svx.clean/source/editeng/acorrcfg.cxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/acorrcfg.cxx	2008-02-25 19:15:21.000000000 -0500
+@@ -139,9 +139,10 @@ Sequence<OUString> 	SvxBaseAutoCorrCfg::
+ 		"SingleQuoteAtEnd",						// 13
+ 		"ReplaceDoubleQuote",					// 14
+ 		"DoubleQuoteAtStart",					// 15
+-		"DoubleQuoteAtEnd"						// 16
++		"DoubleQuoteAtEnd",						// 16
++        "CorrectAccidentalCapsLock"             // 17
+ 	};
+-	const int nCount = 17;
++	const int nCount = 18;
+ 	Sequence<OUString> aNames(nCount);
+ 	OUString* pNames = aNames.getArray();
+ 	for(int i = 0; i < nCount; i++)
+@@ -241,6 +242,10 @@ void SvxBaseAutoCorrCfg::Load(sal_Bool b
+ 						rParent.pAutoCorrect->SetEndDoubleQuote(
+                             sal::static_int_cast< sal_Unicode >( nTemp ) );
+ 					break;//"DoubleQuoteAtEnd"
++                    case 17:
++                        if(*(sal_Bool*)pValues[nProp].getValue())
++                            nFlags |= CorrectCapsLock;
++                    break;//"CorrectAccidentalCapsLock"
+ 				}
+ 			}
+ 		}
+@@ -345,6 +350,10 @@ void SvxBaseAutoCorrCfg::Commit()
+ 			case 16:
+ 				pValues[nProp] <<= (sal_Int32) rParent.pAutoCorrect->GetEndDoubleQuote();
+ 			break;//"DoubleQuoteAtEnd"
++            case 17:
++                bVal = 0 != (nFlags & CorrectCapsLock);
++                pValues[nProp].setValue(&bVal, rType);
++            break;//"CorrectAccidentalCapsLock"
+ 		}
+ 	}
+ 	PutProperties(aNames, aValues);
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/editeng.cxx svx/source/editeng/editeng.cxx
+--- svx.clean/source/editeng/editeng.cxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/editeng.cxx	2008-02-28 14:24:30.000000000 -0500
+@@ -831,7 +831,7 @@ ESelection EditEngine::CursorRight( cons
+ 	return pE->pImpEditEngine->CreateESel( aSel );
+ }
+ 
+-sal_Bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView )
++sal_Bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView, Window* pFrameWin )
+ {
+ 	DBG_CHKTHIS( EditEngine, 0 );
+ 	DBG_CHKOBJ( pEditView, EditView, 0 );
+@@ -1018,7 +1018,7 @@ sal_Bool EditEngine::PostKeyEvent( const
+ 						if ( bSel )
+ 							pImpEditEngine->UndoActionStart( EDITUNDO_INSERT );
+ 						if ( pImpEditEngine->GetStatus().DoAutoCorrect() )
+-							aCurSel = pImpEditEngine->AutoCorrect( aCurSel, 0, !pEditView->IsInsertMode() );
++							aCurSel = pImpEditEngine->AutoCorrect( aCurSel, 0, !pEditView->IsInsertMode(), pFrameWin );
+ 						aCurSel = pImpEditEngine->InsertTab( aCurSel );
+ 						if ( bSel )
+ 							pImpEditEngine->UndoActionEnd( EDITUNDO_INSERT );
+@@ -1039,7 +1039,7 @@ sal_Bool EditEngine::PostKeyEvent( const
+ 						pImpEditEngine->UndoActionStart( EDITUNDO_INSERT );
+ 						if ( rKeyEvent.GetKeyCode().IsShift() )
+                         {
+-                            aCurSel = pImpEditEngine->AutoCorrect( aCurSel, 0, !pEditView->IsInsertMode() );
++                            aCurSel = pImpEditEngine->AutoCorrect( aCurSel, 0, !pEditView->IsInsertMode(), pFrameWin );
+ 							aCurSel = pImpEditEngine->InsertLineBreak( aCurSel );
+                         }
+ 						else
+@@ -1047,7 +1047,7 @@ sal_Bool EditEngine::PostKeyEvent( const
+ 							if ( !aAutoText.Len() )
+ 							{
+ 								if ( pImpEditEngine->GetStatus().DoAutoCorrect() )
+-									aCurSel = pImpEditEngine->AutoCorrect( aCurSel, 0, !pEditView->IsInsertMode() );
++									aCurSel = pImpEditEngine->AutoCorrect( aCurSel, 0, !pEditView->IsInsertMode(), pFrameWin );
+ 								aCurSel = pImpEditEngine->InsertParaBreak( aCurSel );
+ 							}
+ 							else
+@@ -1095,7 +1095,8 @@ sal_Bool EditEngine::PostKeyEvent( const
+ 						 	( nCharCode == '\"' ) || ( nCharCode == '\'' ) ||
+ 							( nCharCode == '_' )  ))
+ 					{
+-						aCurSel = pImpEditEngine->AutoCorrect( aCurSel, nCharCode, !pEditView->IsInsertMode() );
++						aCurSel = pImpEditEngine->AutoCorrect( 
++                            aCurSel, nCharCode, !pEditView->IsInsertMode(), pFrameWin );
+ 					}
+ 					else
+ 					{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/editview.cxx svx/source/editeng/editview.cxx
+--- svx.clean/source/editeng/editview.cxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/editview.cxx	2008-02-28 11:52:15.000000000 -0500
+@@ -59,6 +59,7 @@
+ #include <helpid.hrc>
+ #include <i18npool/lang.h>
+ #include <vcl/menu.hxx>
++#include <vcl/window.hxx>
+ #include <acorrcfg.hxx>
+ 
+ #ifndef _UNO_LINGU_HXX
+@@ -434,11 +435,11 @@ void EditView::InsertText( const XubStri
+ 	pImpEE->FormatAndUpdate( this );
+ }
+ 
+-sal_Bool EditView::PostKeyEvent( const KeyEvent& rKeyEvent )
++sal_Bool EditView::PostKeyEvent( const KeyEvent& rKeyEvent, Window* pFrameWin )
+ {
+ 	DBG_CHKTHIS( EditView, 0 );
+ 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
+-	return pImpEditView->PostKeyEvent( rKeyEvent );
++	return pImpEditView->PostKeyEvent( rKeyEvent, pFrameWin );
+ }
+ 
+ sal_Bool EditView::MouseButtonUp( const MouseEvent& rMouseEvent )
+@@ -934,7 +935,7 @@ sal_Bool EditView::MatchGroup()
+ 	return sal_False;
+ }
+ 
+-void EditView::CompleteAutoCorrect()
++void EditView::CompleteAutoCorrect( Window* pFrameWin )
+ {
+ 	DBG_CHKTHIS( EditView, 0 );
+ 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
+@@ -944,7 +945,7 @@ void EditView::CompleteAutoCorrect()
+ 		EditSelection aSel = pImpEditView->GetEditSelection();
+ 		aSel = PIMPEE->EndOfWord( aSel.Max() );
+ 		// MT 06/00: Why pass EditSelection to AutoCorrect, not EditPaM?!
+-		aSel = PIMPEE->AutoCorrect( aSel, 0, !IsInsertMode() );
++		aSel = PIMPEE->AutoCorrect( aSel, 0, !IsInsertMode(), pFrameWin );
+ 		pImpEditView->SetEditSelection( aSel );
+ 		if ( PIMPEE->IsModified() )
+ 			PIMPEE->FormatAndUpdate( this );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/impedit2.cxx svx/source/editeng/impedit2.cxx
+--- svx.clean/source/editeng/impedit2.cxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/impedit2.cxx	2008-02-28 11:56:17.000000000 -0500
+@@ -2428,7 +2428,8 @@ void ImpEditEngine::ImpRemoveParagraph( 
+ 	}
+ }
+ 
+-EditPaM ImpEditEngine::AutoCorrect( const EditSelection& rCurSel, xub_Unicode c, BOOL bOverwrite )
++EditPaM ImpEditEngine::AutoCorrect( const EditSelection& rCurSel, xub_Unicode c, 
++                                    bool bOverwrite, Window* pFrameWin )
+ {
+ 	EditSelection aSel( rCurSel );
+ #ifndef SVX_LIGHT
+@@ -2478,7 +2479,7 @@ EditPaM ImpEditEngine::AutoCorrect( cons
+ 		ContentNode* pNode = aSel.Max().GetNode();
+ 		USHORT nIndex = aSel.Max().GetIndex();
+ 		EdtAutoCorrDoc aAuto( this, pNode, nIndex, c );
+-		pAutoCorrect->AutoCorrect( aAuto, *pNode, nIndex, c, !bOverwrite );
++		pAutoCorrect->AutoCorrect( aAuto, *pNode, nIndex, c, !bOverwrite, pFrameWin );
+ 		aSel.Max().SetIndex( aAuto.GetCursor() );
+ 
+ 		// #i78661 since the SvxAutoCorrect object used here is
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/impedit.cxx svx/source/editeng/impedit.cxx
+--- svx.clean/source/editeng/impedit.cxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/impedit.cxx	2008-02-28 02:02:11.000000000 -0500
+@@ -1041,7 +1041,7 @@ Pair ImpEditView::Scroll( long ndX, long
+ 	return Pair( nRealDiffX, nRealDiffY );
+ }
+ 
+-sal_Bool ImpEditView::PostKeyEvent( const KeyEvent& rKeyEvent )
++sal_Bool ImpEditView::PostKeyEvent( const KeyEvent& rKeyEvent, Window* pFrameWin )
+ {
+     BOOL bDone = FALSE;
+ 
+@@ -1085,7 +1085,7 @@ sal_Bool ImpEditView::PostKeyEvent( cons
+     }
+ 
+     if( !bDone )
+-	    bDone = pEditEngine->PostKeyEvent( rKeyEvent, GetEditViewPtr() );
++	    bDone = pEditEngine->PostKeyEvent( rKeyEvent, GetEditViewPtr(), pFrameWin );
+ 
+     return bDone;
+ }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/impedit.hxx svx/source/editeng/impedit.hxx
+--- svx.clean/source/editeng/impedit.hxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/impedit.hxx	2008-02-28 11:51:11.000000000 -0500
+@@ -138,6 +138,8 @@ class TextRanger;
+ class SvKeyValueIterator;
+ class SvxForbiddenCharactersTable;
+ class SvtCTLOptions;
++class Window;
++
+ #ifndef SVX_SPELL_PORTIONS_HXX
+ #include <svx/SpellPortions.hxx>
+ #endif
+@@ -333,7 +335,7 @@ public:
+ 
+ 	BOOL			IsVertical() const;
+ 
+-	BOOL			PostKeyEvent( const KeyEvent& rKeyEvent );
++	BOOL			PostKeyEvent( const KeyEvent& rKeyEvent, Window* pFrameWin = NULL );
+ 
+ 	BOOL			MouseButtonUp( const MouseEvent& rMouseEvent );
+ 	BOOL			MouseButtonDown( const MouseEvent& rMouseEvent );
+@@ -833,7 +835,7 @@ public:
+ 	EditPaM			DeleteSelected( EditSelection aEditSelection);
+     EditPaM         InsertText( const EditSelection& rCurEditSelection, sal_Unicode c, sal_Bool bOverwrite, sal_Bool bIsUserInput = sal_False );
+ 	EditPaM			InsertText( EditSelection aCurEditSelection, const String& rStr );
+-	EditPaM			AutoCorrect( const EditSelection& rCurEditSelection, sal_Unicode c, sal_Bool bOverwrite );
++	EditPaM			AutoCorrect( const EditSelection& rCurEditSelection, sal_Unicode c, bool bOverwrite, Window* pFrameWin = NULL );
+ 	EditPaM			DeleteLeftOrRight( const EditSelection& rEditSelection, BYTE nMode, BYTE nDelMode = DELMODE_SIMPLE );
+ 	EditPaM			InsertParaBreak( EditSelection aEditSelection );
+ 	EditPaM			InsertLineBreak( EditSelection aEditSelection );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/editeng/svxacorr.cxx svx/source/editeng/svxacorr.cxx
+--- svx.clean/source/editeng/svxacorr.cxx	2008-02-25 11:50:18.000000000 -0500
++++ svx/source/editeng/svxacorr.cxx	2008-02-28 22:39:51.000000000 -0500
+@@ -119,6 +119,7 @@
+ #include <svx/escpitem.hxx>
+ #include <svx/svxacorr.hxx>
+ #include "unolingu.hxx"
++#include "vcl/window.hxx"
+ 
+ #ifndef _SVX_HELPID_HRC
+ #include <helpid.hrc>
+@@ -412,7 +413,8 @@ long SvxAutoCorrect::GetDefaultFlags()
+ 					| SetINetAttr
+ 					| ChgQuotes
+ 					| SaveWordCplSttLst
+-					| SaveWordWrdSttLst;
++					| SaveWordWrdSttLst
++                    | CorrectCapsLock;
+ 	LanguageType eLang = GetAppLang();
+ 	switch( eLang )
+ 	{
+@@ -1113,6 +1115,49 @@ BOOL SvxAutoCorrect::FnCptlSttSntnc( Svx
+ 
+ 	return bRet;
+ }
++
++bool SvxAutoCorrect::FnCorrectCapsLock( SvxAutoCorrDoc& rDoc, const String& rTxt,
++                                        xub_StrLen nSttPos, xub_StrLen nEndPos,
++                                        LanguageType eLang )
++{
++    if (nEndPos - nSttPos < 2)
++        // string must be at least 2-character long.
++        return false;
++
++    CharClass& rCC = GetCharClass( eLang );
++
++    // Check the first 2 letters.
++    if ( !IsLowerLetter(rCC.getCharacterType(rTxt, nSttPos)) )
++        return false;
++
++    if ( !IsUpperLetter(rCC.getCharacterType(rTxt, nSttPos+1)) )
++        return false;
++
++    String aConverted;
++    aConverted.Append( rCC.upper(rTxt.GetChar(nSttPos)) );
++    aConverted.Append( rCC.lower(rTxt.GetChar(nSttPos+1)) );
++
++    for (xub_StrLen i = nSttPos+2; i < nEndPos; ++i)
++    {
++        if ( IsLowerLetter(rCC.getCharacterType(rTxt, i)) )
++            // A lowercase letter disqualifies the whole text.
++            return false;
++
++        if ( IsUpperLetter(rCC.getCharacterType(rTxt, i)) )
++            // Another uppercase letter.  Convert it.
++            aConverted.Append( rCC.lower(rTxt.GetChar(i)) );
++        else
++            // This is not an alphabetic letter.  Leave it as-is.
++            aConverted.Append(rTxt.GetChar(i));
++    }
++
++    // Replace the word.
++    rDoc.Delete(nSttPos, nEndPos);
++    rDoc.Insert(nSttPos, aConverted);
++
++    return true;
++}
++
+ //The method below is renamed from _GetQuote to GetQuote by BerryJia for Bug95846 Time:2002-8-13 15:50
+ sal_Unicode SvxAutoCorrect::GetQuote( sal_Unicode cInsChar, BOOL bSttQuote,
+ 										LanguageType eLang ) const
+@@ -1226,7 +1271,7 @@ String SvxAutoCorrect::GetQuote( SvxAuto
+ 
+ ULONG SvxAutoCorrect::AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
+ 									xub_StrLen nInsPos, sal_Unicode cChar,
+-									BOOL bInsert )
++									BOOL bInsert, Window* pFrameWin )
+ {
+ 	ULONG nRet = 0;
+ 	do{		                            // only for middle check loop !!
+@@ -1369,7 +1414,19 @@ ULONG SvxAutoCorrect::AutoCorrect( SvxAu
+ 			;
+ 		else
+ 		{
++            bool bLockKeyOn = pFrameWin && (pFrameWin->GetIndicatorState() & INDICATOR_CAPSLOCK);
++
+ 			nRet = 0;
++            if ( bLockKeyOn && IsAutoCorrFlag( CorrectCapsLock ) &&
++                 FnCorrectCapsLock( rDoc, rTxt, nCapLttrPos, nInsPos, eLang ) )
++            {
++                // Correct accidental use of cAPS LOCK key (do this only when 
++                // the caps or shift lock key is pressed).  Turn off the caps
++                // lock afterwords.
++                nRet |= CorrectCapsLock;
++                pFrameWin->SimulateKeyPress( KEY_CAPSLOCK );
++            }
++
+ 			// Grossbuchstabe am Satz-Anfang ??
+ 			if( IsAutoCorrFlag( CptlSttSntnc ) &&
+ 				FnCptlSttSntnc( rDoc, rTxt, TRUE, nCapLttrPos, nInsPos, eLang ) )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/outliner/outlvw.cxx svx/source/outliner/outlvw.cxx
+--- svx.clean/source/outliner/outlvw.cxx	2008-02-25 11:50:19.000000000 -0500
++++ svx/source/outliner/outlvw.cxx	2008-02-28 18:58:04.000000000 -0500
+@@ -109,7 +109,7 @@ void OutlinerView::Paint( const Rectangl
+ 	pEditView->Paint( rRect );
+ }
+ 
+-BOOL OutlinerView::PostKeyEvent( const KeyEvent& rKEvt )
++BOOL OutlinerView::PostKeyEvent( const KeyEvent& rKEvt, Window* pFrameWin )
+ {
+ 	DBG_CHKTHIS( OutlinerView, 0 );
+ 
+@@ -274,7 +274,7 @@ BOOL OutlinerView::PostKeyEvent( const K
+ 		}
+ 	}
+ 
+-	return bKeyProcessed ? TRUE : pEditView->PostKeyEvent( rKEvt );
++	return bKeyProcessed ? TRUE : pEditView->PostKeyEvent( rKEvt, pFrameWin );
+ }
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svx.vpj svx.clean/source/svdraw/svdedxv.cxx svx/source/svdraw/svdedxv.cxx
+--- svx.clean/source/svdraw/svdedxv.cxx	2008-02-25 11:50:19.000000000 -0500
++++ svx/source/svdraw/svdedxv.cxx	2008-02-28 18:58:41.000000000 -0500
+@@ -1203,7 +1203,7 @@ BOOL SdrObjEditView::KeyInput(const KeyE
+ 				ShowItemBrowser();
+         }
+ #endif
+-		if (pTextEditOutlinerView->PostKeyEvent(rKEvt))
++		if (pTextEditOutlinerView->PostKeyEvent(rKEvt, pWin))
+ 		{
+ 			if( pMod && !pMod->IsChanged() )
+ 			{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/i18nutil-glibc-braindamage-workaround.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/i18nutil-glibc-braindamage-workaround.diff
@@ -0,0 +1,14 @@
+--- i18nutil/source/utility/unicode.cxx.ark	2006-06-21 14:14:01.000000000 +0200
++++ i18nutil/source/utility/unicode.cxx	2006-06-21 14:19:50.000000000 +0200
+@@ -38,6 +38,11 @@
+ #include <i18nutil/unicode.hxx>
+ #include "unicode_data.h"
+ 
++// Workaround for glibc braindamage:
++// glibc 2.4's langinfo.h does "#define CURRENCY_SYMBOL __CURRENCY_SYMBOL"
++// which (obviously) breaks UnicodeType::CURRENCY_SYMBOL
++#undef CURRENCY_SYMBOL
++
+ using namespace ::com::sun::star::i18n;
+ 
+ static ScriptTypeList defaultTypeList[] = {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-writerfilter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-writerfilter.diff
@@ -0,0 +1,8 @@
+--- writerfilter/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ writerfilter/prj/tests.lst	2007-09-07 14:32:16.000000000 +0200
+@@ -0,0 +1,5 @@
++#does not build: wf   writerfilter\qa\cppunittests\doctok                nmake - all wf_qa_cppunittests_doctok wf_odiapi NULL
++#does not build: wf   writerfilter\qa\cppunittests\odiapi                nmake - all wf_qa_cppunittests_odiapi wf_odiapi NULL
++#does not build: wf   writerfilter\qa\cppunittests\qname                 nmake - all wf_qa_cppunittests_qname wf_odiapi NULL
++#does not build: wf   writerfilter\qa\cppunittests\sl                    nmake - all wf_qa_cppunittests_sl wf_odiapi NULL
++#does not build: wf   writerfilter\qa\cppunittests\xxml                  nmake - all wf_qa_cppunittests_xxml wf_odiapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xmlsecurity-verify-usages.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xmlsecurity-verify-usages.diff
@@ -0,0 +1,19 @@
+--- xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx~	2007-03-15 15:37:47.000000000 -0400
++++ xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx	2007-03-19 11:14:07.000000000 -0400
+@@ -796,10 +828,12 @@ sal_Int32 SecurityEnvironment_NssImpl ::
+             //The expression  if ( flags & CERTDB_TRUSTED ) fails. This occurred with openssl 
+             //generated certificates, when the trust settings of the root certificate had only the 
+             //item "This certificate can identify web sites" checked.
+-            if (usage & certificateUsageEmailSigner
+-                || usage & certificateUsageEmailRecipient
+-                || usage & certificateUsageSSLCA
+-                /*|| usage & certificateUsageSSLClient*/)
++	    if (usage & (certificateUsageEmailSigner
++			 | certificateUsageEmailRecipient
++			 | certificateUsageSSLCA
++			 | certificateUsageProtectedObjectSigner
++			 | certificateUsageObjectSigner
++			 /* | certificateUsageSSLClient*/))
+                 validity = csss::CertificateValidity::VALID;
+             else
+                 validity = csss::CertificateValidity::INVALID;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xmloff_dis26300_conformance.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xmloff_dis26300_conformance.diff
@@ -0,0 +1,337 @@
+diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
+index f382d48..e3061fa 100644
+--- sw/source/filter/xml/xmltbli.cxx
++++ sw/source/filter/xml/xmltbli.cxx
+@@ -2867,7 +2867,7 @@ const SwStartNode *SwXMLTableContext::InsertTableSection(
+ 		bFirstSection = sal_False;
+ 		OUString sStyleName( RTL_CONSTASCII_USTRINGPARAM("Standard") );
+ 		GetImport().GetTextImport()->SetStyleAndAttrs( GetImport(),
+-			GetImport().GetTextImport()->GetCursor(), sStyleName, sal_True );
++			GetImport().GetTextImport()->GetCursor(), sStyleName, rtl::OUString(), sal_True );
+ 	}
+ 	else
+ 	{
+diff --git a/xmloff/inc/xmloff/txtimp.hxx b/xmloff/inc/xmloff/txtimp.hxx
+index 97e8b6b..e5576fc 100644
+--- xmloff/inc/xmloff/txtimp.hxx
++++ xmloff/inc/xmloff/txtimp.hxx
+@@ -641,6 +641,7 @@ public:
+ 			const ::com::sun::star::uno::Reference <
+ 				::com::sun::star::text::XTextCursor >& rCursor,
+ 			const ::rtl::OUString& rStyleName,
++			const ::rtl::OUString& rClassNames,
+ 			sal_Bool bPara,
+             sal_Bool bOutlineLevelAttrFound = sal_False,
+             sal_Int8 nOutlineLevel = -1,
+diff --git a/xmloff/inc/xmloff/xmlimp.hxx b/xmloff/inc/xmloff/xmlimp.hxx
+index 99507e7..83e4461 100644
+--- xmloff/inc/xmloff/xmlimp.hxx
++++ xmloff/inc/xmloff/xmlimp.hxx
+@@ -270,6 +270,12 @@ public:
+ 	static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw();
+ 	static SvXMLImport* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > ) throw();
+ 
++
++        SvXMLImportContext *getTopContext();
++        SvXMLImportContext *createUnknownContext( USHORT nPrefix,
++						  const ::rtl::OUString& rLocalName,
++						  const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
++
+ 	// ::com::sun::star::xml::sax::XDocumentHandler
+ 	virtual void SAL_CALL startDocument(void)
+ 		throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
+diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx
+index fe927eb..fb15e70 100644
+--- xmloff/inc/xmloff/xmltoken.hxx
++++ xmloff/inc/xmloff/xmltoken.hxx
+@@ -1400,6 +1400,7 @@ namespace xmloff { namespace token {
+         XML_PRINTABLE,
+         XML_PRINTED_BY,
+         XML_PROCEEDINGS,
++	XML_PROCESS_CONTENT,
+         XML_PRODUCT,
+         XML_PROJECTION,
+         XML_PROPERTIES,
+@@ -1689,6 +1690,7 @@ namespace xmloff { namespace token {
+         XML_STRUCTURE_PROTECTED,
+         XML_STYLE,
+         XML_STYLE_NAME,
++        XML_CLASS_NAMES,
+         XML_STYLES,
+         XML_STYLESHEET,
+         XML_SUB_TABLE,
+diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx
+index 910f12b..e4714d5 100644
+--- xmloff/source/core/xmlimp.cxx
++++ xmloff/source/core/xmlimp.cxx
+@@ -780,6 +780,42 @@ void SAL_CALL SvXMLImport::startElement( const OUString& rName,
+ 	mpContexts->Insert( pContext, nCount );
+ }
+ 
++SvXMLImportContext *SvXMLImport::getTopContext() {
++    USHORT nCount = mpContexts->Count();
++    if (nCount>0) {
++	SvXMLImportContext *pContext = (*mpContexts)[nCount-1];
++	return pContext;
++    } else {
++	return NULL;
++    }		   
++}
++
++SvXMLImportContext *SvXMLImport::createUnknownContext( USHORT nPrefix,
++					  const ::rtl::OUString& rLocalName,
++					  const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList )
++{
++    bool bProcessContent=true;
++    sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
++    for(sal_Int16 a=0; a < nAttrCount; a++)
++    {
++	const OUString& rAttrName = xAttrList->getNameByIndex(a);
++	OUString aLocalName;
++	sal_uInt16 _nPrefix = GetNamespaceMap().GetKeyByAttrName(rAttrName, &aLocalName);
++	const OUString aValue( xAttrList->getValueByIndex(a) );
++	if (_nPrefix==XML_NAMESPACE_OFFICE && IsXMLToken( aLocalName, XML_PROCESS_CONTENT ) ) {
++	    bProcessContent=!aValue.equalsIgnoreAsciiCaseAscii("false");
++	}
++    }
++    SvXMLImportContext *ret=NULL;
++    if (bProcessContent) {
++	ret=getTopContext();
++    }
++    if (ret==NULL) {
++	ret=new SvXMLImportContext( *this, nPrefix, rLocalName );
++    }
++    return ret;
++}
++
+ void SAL_CALL SvXMLImport::endElement( const OUString&
+ #ifndef PRODUCT
+ rName
+diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
+index 0817e86..8e55b5f 100644
+--- xmloff/source/core/xmltoken.cxx
++++ xmloff/source/core/xmltoken.cxx
+@@ -1408,6 +1408,7 @@ namespace xmloff { namespace token {
+         TOKEN( "printable",                       XML_PRINTABLE ),
+         TOKEN( "printed-by",                      XML_PRINTED_BY ),
+         TOKEN( "proceedings",                     XML_PROCEEDINGS ),
++        TOKEN( "process-content",                 XML_PROCESS_CONTENT ),
+         TOKEN( "product",                         XML_PRODUCT ),
+         TOKEN( "projection",                      XML_PROJECTION ),
+         TOKEN( "properties",                      XML_PROPERTIES ),
+@@ -1697,6 +1698,7 @@ namespace xmloff { namespace token {
+         TOKEN( "structure-protected",             XML_STRUCTURE_PROTECTED ),
+         TOKEN( "style",                           XML_STYLE ),
+         TOKEN( "style-name",                      XML_STYLE_NAME ),
++        TOKEN( "class-names",                     XML_CLASS_NAMES ),
+         TOKEN( "styles",                          XML_STYLES ),
+         TOKEN( "stylesheet",                      XML_STYLESHEET ),
+         TOKEN( "sub-table",                       XML_SUB_TABLE ),
+diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx
+index d6d3880..ed22434 100644
+--- xmloff/source/draw/shapeimport.cxx
++++ xmloff/source/draw/shapeimport.cxx
+@@ -876,8 +876,8 @@ SvXMLShapeContext* XMLShapeImportHelper::CreateGroupChildContext(
+ // 			break;
+ // 		}
+ 		// add other shapes here...
+-		default:
+-			return new SvXMLShapeContext( rImport, p_nPrefix, rLocalName, bTemporaryShape );
++	    default: 
++		return NULL; // no shape context...
+ 	}
+ 
+ 	// now parse the attribute list and call the child context for each unknown attribute
+diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
+index 69d52a9..58c9e57 100644
+--- xmloff/source/text/txtimp.cxx
++++ xmloff/source/text/txtimp.cxx
+@@ -443,6 +443,8 @@ static __FAR_DATA SvXMLTokenMapEntry aTextPAttrTokenMap[] =
+ 	{ XML_NAMESPACE_TEXT, XML_IS_LIST_HEADER,XML_TOK_TEXT_P_IS_LIST_HEADER },
+ 	{ XML_NAMESPACE_TEXT, XML_RESTART_NUMBERING,XML_TOK_TEXT_P_RESTART_NUMBERING },
+ 	{ XML_NAMESPACE_TEXT, XML_START_VALUE,XML_TOK_TEXT_P_START_VALUE },
++	
++	{ XML_NAMESPACE_TEXT, XML_CLASS_NAMES,	XML_TOK_TEXT_P_CLASS_NAMES },
+ 	XML_TOKEN_MAP_END
+ };
+ 
+@@ -992,6 +994,7 @@ OUString XMLTextImportHelper::SetStyleAndAttrs(
+ 		SvXMLImport& rImport,
+ 		const Reference < XTextCursor >& rCursor,
+ 		const OUString& rStyleName,
++		const OUString& rClassNames,
+ 		sal_Bool bPara,
+         sal_Bool bOutlineLevelAttrFound,
+         sal_Int8 nOutlineLevel,
+@@ -1174,8 +1177,11 @@ OUString XMLTextImportHelper::SetStyleAndAttrs(
+ 	}
+ 
+ 	// hard paragraph properties
+-	if( pStyle )
+-	{
++        sal_Int32 nTokenIndex = 0;
++	rtl::OUString aToken;
++	do {
++#if 1
++	    if (pStyle) {
+ 		pStyle->FillPropertySet( xPropSet );
+ 		if( bPara && pStyle->HasMasterPageName() &&
+ 			xPropSetInfo->hasPropertyByName( sPageDescName ) )
+@@ -1237,7 +1243,19 @@ OUString XMLTextImportHelper::SetStyleAndAttrs(
+ 				}
+ 			}
+ 		}
+-	}
++	    }
++	    aToken = rClassNames.getToken( 0, ' ', nTokenIndex );
++	    if (aToken.getLength() && xAutoStyles.Is() )
++	    {
++		pStyle = PTR_CAST( XMLTextStyleContext,
++				   ((SvXMLStylesContext *)&xAutoStyles)->
++				   FindStyleChildContext( nFamily, aToken, sal_True ) );
++	    } else {
++		pStyle=NULL;
++		aToken=rtl::OUString();
++	    }
++#endif
++	} while (pStyle!=NULL || aToken.getLength()>0);
+ 
+     // outline level; set after list style has been set
+     // --> OD 2005-08-25 #i53198#
+@@ -1973,8 +1991,9 @@ SvXMLImportContext *XMLTextImportHelper::CreateTextChildContext(
+ 		}
+ 	}
+ 
+-//	if( !pContext )
+-//		pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
++	if (pContext==NULL) {
++	    pContext=rImport.createUnknownContext(nPrefix, rLocalName, xAttrList);
++	}
+ 
+ 	// handle open redlines
+ 	if ( (XML_TOK_TEXT_CHANGE != nToken) &&
+diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx
+index 91d27e6..237cc3e 100644
+--- xmloff/source/text/txtparai.cxx
++++ xmloff/source/text/txtparai.cxx
+@@ -1529,23 +1529,22 @@ SvXMLImportContext *XMLImpSpanContext_Impl::CreateChildContext(
+             SvXMLShapeContext* pShapeContext = rImport.GetShapeImport()->CreateGroupChildContext(
+                 rImport, nPrefix, rLocalName, xAttrList, xShapes );
+             pContext = pShapeContext;
+-            // OD 2004-04-20 #i26791# - keep shape in a text frame hint to
+-            // adjust its anchor position, if its at-character anchored
+-            Reference < XTextRange > xAnchorPos =
+-                rImport.GetTextImport()->GetCursor()->getStart();
+-            rHints.Insert( new XMLDrawHint_Impl( pShapeContext, xAnchorPos ),
+-                           rHints.Count() );
++	    if (pContext) {
++		// OD 2004-04-20 #i26791# - keep shape in a text frame hint to
++		// adjust its anchor position, if its at-character anchored	    
++		Reference < XTextRange > xAnchorPos =
++		    rImport.GetTextImport()->GetCursor()->getStart();
++		rHints.Insert( new XMLDrawHint_Impl( pShapeContext, xAnchorPos ),
++			       rHints.Count() );
++	    }
+         }
+ 		if( !pContext )
+ 		{
+-			// ignore unknown content
+-			pContext =
+-				new SvXMLImportContext( rImport, nPrefix, rLocalName );
++		    pContext=rImport.createUnknownContext(nPrefix, rLocalName, xAttrList);
+ 		}
+ 		// Behind fields, shapes and any unknown content blanks aren't ignored
+ 		rIgnoreLeadingSpace = sal_False;
+ 	}
+-
+ 	return pContext;
+ }
+ 
+@@ -1602,7 +1601,7 @@ XMLParaContext::XMLParaContext(
+ 	const SvXMLTokenMap& rTokenMap =
+ 		GetImport().GetTextImport()->GetTextPAttrTokenMap();
+ 
+-	OUString aCondStyleName, sClassNames;
++	OUString sStyleName, aCondStyleName, sClassNames;
+ 
+ 	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+ 	for( sal_Int16 i=0; i < nAttrCount; i++ )
+@@ -1668,18 +1667,24 @@ XMLParaContext::XMLParaContext(
+             break;
+ 		}
+ 	}
+-
++	m_sClassNames = sClassNames;
+ 	if( aCondStyleName.getLength() )
+-		sStyleName = aCondStyleName;
+-	else if( sClassNames.getLength() )
+-	{
+-		sal_Int32 nDummy = 0;
+-		sStyleName = sClassNames.getToken( 0, ' ', nDummy );
++	    m_sStyleName = aCondStyleName;
++	else {
++	    m_sStyleName = sStyleName;
++	}
++	if (m_sStyleName.getLength()==0 && sClassNames.getLength()>0) {
++	    // so when we only have class names make sure the first styles
++	    // of the class names is the style name
++	    sal_Int32 nDummy = 0;
++	    m_sStyleName = m_sClassNames.getToken( 0, ' ', nDummy );
++	    m_sClassNames = m_sClassNames.copy(m_sStyleName.getLength()+1);
+ 	}
+ }
+ 
+ XMLParaContext::~XMLParaContext()
+ {
++    rtl::OUString sStyleName = m_sStyleName;
+ 	UniReference < XMLTextImportHelper > xTxtImport(
+ 		GetImport().GetTextImport());
+     Reference < XTextRange > xCrsrRange( xTxtImport->GetCursorAsRange() );
+@@ -1718,6 +1723,7 @@ XMLParaContext::~XMLParaContext()
+         // because of side effects of method <SetStyleAndAttrs(..)>
+         xTxtImport->SetStyleAndAttrs( GetImport(), xAttrCursor,
+                                       sCellParaStyleName,
++				      OUString(),
+                                       sal_True,
+                                       sal_False, -1, // suppress outline handling
+                                       sal_False );   // suppress list attributes handling
+@@ -1732,6 +1738,7 @@ XMLParaContext::~XMLParaContext()
+     // --> OD 2007-07-25 #i73509# - add paramter <mbOutlineLevelAttrFound>
+     sStyleName = xTxtImport->SetStyleAndAttrs( GetImport(), xAttrCursor,
+                                                sStyleName,
++					       m_sClassNames,
+                                                sal_True,
+                                                mbOutlineLevelAttrFound,
+                                                bHeading ? nOutlineLevel : -1 );
+@@ -1794,7 +1801,7 @@ XMLParaContext::~XMLParaContext()
+ 							((XMLStyleHint_Impl *)pHint)->GetStyleName();
+ 					if( rStyleName.getLength() )
+ 						xTxtImport->SetStyleAndAttrs( GetImport(),
+-													  xAttrCursor, rStyleName,
++									      xAttrCursor, rStyleName, OUString(), 
+                                                       sal_False );
+ 				}
+ 				break;
+@@ -1965,7 +1972,7 @@ SvXMLImportContext *XMLParaContext::CreateChildContext(
+ void XMLParaContext::Characters( const OUString& rChars )
+ {
+ 	OUString sChars =
+-		GetImport().GetTextImport()->ConvertStarFonts( rChars, sStyleName,
++		GetImport().GetTextImport()->ConvertStarFonts( rChars, m_sStyleName,
+ 													   nStarFontsConvFlags,
+ 													   sal_True, GetImport() );
+ 	GetImport().GetTextImport()->InsertString( sChars, bIgnoreLeadingSpace );
+diff --git a/xmloff/source/text/txtparai.hxx b/xmloff/source/text/txtparai.hxx
+index bfbfc08..db44166 100644
+--- xmloff/source/text/txtparai.hxx
++++ xmloff/source/text/txtparai.hxx
+@@ -58,7 +58,8 @@ class XMLParaContext : public SvXMLImportContext
+ {
+ 	::com::sun::star::uno::Reference <
+ 		::com::sun::star::text::XTextRange > xStart;	// xub_StrLen nStart;
+-	::rtl::OUString				sStyleName;
++	::rtl::OUString				m_sStyleName;
++	::rtl::OUString				m_sClassNames;
+ 	::rtl::OUString				sId;
+ 	sal_Int8 				nOutlineLevel;
+ 	XMLHints_Impl			*pHints;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl_font-NO_LIST.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl_font-NO_LIST.diff
@@ -0,0 +1,12 @@
+--- vcl/source/gdi/font.cxx.orig	2007-08-02 22:59:48.000000000 +0200
++++ vcl/source/gdi/font.cxx	2007-08-02 22:56:03.000000000 +0200
+@@ -45,7 +45,9 @@
+ #ifndef _DEBUG_HXX
+ #include <tools/debug.hxx>
+ #endif
++#define NO_LIST
+ #include <psprint/sft.h>
++#undef NO_LIST
+ 
+ #ifndef _SV_FONT_HXX
+ #include <vcl/font.hxx>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-fpicker.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-fpicker.diff
@@ -0,0 +1,186 @@
+Index: fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkFilePicker.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.4.2
+diff -u -p -u -p -r1.23 -r1.23.4.2
+--- fpicker/source/unx/gnome/SalGtkFilePicker.cxx	31 Jul 2007 16:00:02 -0000	1.23
++++ fpicker/source/unx/gnome/SalGtkFilePicker.cxx	13 Aug 2007 09:58:19 -0000	1.23.4.2
+@@ -192,7 +192,10 @@ SalGtkFilePicker::SalGtkFilePicker( cons
+ 	}
+ 
+ 	for( i = 0; i < BUTTON_LAST; i++ )
++    {
+ 		m_pButtons[i] = NULL;
++		mbButtonVisibility[i] = false;
++    }
+ 
+ 	for( i = 0; i < LIST_LAST; i++ )
+     {
+@@ -259,27 +262,6 @@ SalGtkFilePicker::SalGtkFilePicker( cons
+ 		gtk_box_pack_end( GTK_BOX( pThinVBox ), m_pToggles[i], FALSE, FALSE, 0 );
+ 	}
+ 
+-	for( i = 0; i < BUTTON_LAST; i++ )
+-	{
+-		m_pButtons[i] = gtk_button_new();
+-
+-#define LABEL_BUTTON( elem ) \
+-		case elem : \
+-			aLabel = aResProvider.getResString( PUSHBUTTON_##elem ); \
+-			setLabel( PUSHBUTTON_##elem, aLabel ); \
+-			break
+-
+-  		switch( i ) {
+-
+-		LABEL_BUTTON( PLAY );
+-			default:
+-				OSL_TRACE("Handle unknown control %d\n", i);
+-				break;
+-		}
+-
+-		gtk_box_pack_end( GTK_BOX( pThinVBox ), m_pButtons[i], FALSE, TRUE, 0 );
+-	}
+-
+ 	for( i = 0; i < LIST_LAST; i++ )
+ 	{
+         m_pHBoxs[i] = gtk_hbox_new( FALSE, 0 );
+@@ -1119,6 +1101,16 @@ sal_Int16 SAL_CALL SalGtkFilePicker::exe
+ 				retVal = ExecutableDialogResults::CANCEL;
+ 				break;
+ 
++			case 1:	//PLAY
++				{
++					FilePickerEvent evt;
++				    evt.ElementId = PUSHBUTTON_PLAY;
++				    OSL_TRACE( "filter_changed, isn't it great %x\n", this);
++				    controlStateChanged( evt );
++				    btn = GTK_RESPONSE_NO;
++				}
++				break;
++
+ 			default:
+ 				retVal = 0;
+ 				break;
+@@ -1412,14 +1404,12 @@ throw( uno::RuntimeException )
+ 		OSL_TRACE("enable unknown control %d\n", nControlId );
+ }
+ 
+-void SAL_CALL SalGtkFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUString& aLabel ) 
++void SAL_CALL SalGtkFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUString& rLabel ) 
+ 	throw( uno::RuntimeException )
+ {
+ 	OSL_ASSERT( m_pDialog != NULL );
+ 	::vos::OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	OString aTxt = OUStringToOString( aLabel, RTL_TEXTENCODING_UTF8 );
+-
+ 	GType tType;
+ 	GtkWidget *pWidget;
+ 
+@@ -1428,7 +1418,22 @@ void SAL_CALL SalGtkFilePicker::setLabel
+ 	  	OSL_TRACE("Set label on unknown control %d\n", nControlId);
+ 		return;
+ 	}
+-	if( tType == GTK_TYPE_TOGGLE_BUTTON || tType == GTK_TYPE_BUTTON || tType == GTK_TYPE_LABEL )
++
++    OString aTxt = OUStringToOString( rLabel.replace('~', '_'), RTL_TEXTENCODING_UTF8 );
++    if (nControlId == ExtendedFilePickerElementIds::PUSHBUTTON_PLAY)
++    {
++#ifdef GTK_STOCK_MEDIA_PLAY
++        if (!msPlayLabel.getLength())
++            msPlayLabel = rLabel;
++        if (msPlayLabel == rLabel)
++            gtk_button_set_label(GTK_BUTTON(pWidget), GTK_STOCK_MEDIA_PLAY);
++        else
++            gtk_button_set_label(GTK_BUTTON(pWidget), GTK_STOCK_MEDIA_STOP);
++#else
++        gtk_button_set_label(GTK_BUTTON(pWidget), aTxt.getStr());
++#endif
++    }
++	else if( tType == GTK_TYPE_TOGGLE_BUTTON || tType == GTK_TYPE_BUTTON || tType == GTK_TYPE_LABEL )
+ 		g_object_set( pWidget, "label", aTxt.getStr(),
+ 					  "use_underline", TRUE, (char *)NULL );
+ 	else
+@@ -1726,6 +1731,7 @@ void SAL_CALL SalGtkFilePicker::initiali
+ 		case FILEOPEN_PLAY:        
+ 			eAction = GTK_FILE_CHOOSER_ACTION_OPEN;
+ 			first_button_text = GTK_STOCK_OPEN;
++			mbButtonVisibility[PLAY] = true;
+ 			// TODO
+ 		        break;
+ 		case FILEOPEN_READONLY_VERSION:
+@@ -1766,7 +1772,21 @@ void SAL_CALL SalGtkFilePicker::initiali
+     gtk_file_chooser_set_action( GTK_FILE_CHOOSER( m_pDialog ), eAction);
+     dialog_remove_buttons( GTK_DIALOG( m_pDialog ) );
+     gtk_dialog_add_button( GTK_DIALOG( m_pDialog ), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL );
++    for( int nTVIndex = 0; nTVIndex < BUTTON_LAST; nTVIndex++ )
++    {
++        if( mbButtonVisibility[nTVIndex] )
++        {
++#ifdef GTK_STOCK_MEDIA_PLAY
++            m_pButtons[ nTVIndex ] = gtk_dialog_add_button( GTK_DIALOG( m_pDialog ), GTK_STOCK_MEDIA_PLAY, 1 );
++#else
++		    CResourceProvider aResProvider;
++            OString aPlay = OUStringToOString( aResProvider.getResString( PUSHBUTTON_PLAY ), RTL_TEXTENCODING_UTF8 );
++            m_pButtons[ nTVIndex ] = gtk_dialog_add_button( GTK_DIALOG( m_pDialog ), aPlay.getStr(), 1 );
++#endif
++        }
++    }
+     gtk_dialog_add_button( GTK_DIALOG( m_pDialog ), first_button_text, GTK_RESPONSE_ACCEPT );
++
+     gtk_dialog_set_default_response( GTK_DIALOG (m_pDialog), GTK_RESPONSE_ACCEPT );
+ 
+ 	// Setup special flags
+@@ -2031,9 +2051,6 @@ SalGtkFilePicker::~SalGtkFilePicker()
+ 	for( i = 0; i < TOGGLE_LAST; i++ )
+ 		gtk_widget_destroy( m_pToggles[i] );
+ 
+-	for( i = 0; i < BUTTON_LAST; i++ )
+-		gtk_widget_destroy( m_pButtons[i] );
+-
+ 	for( i = 0; i < LIST_LAST; i++ )
+     {
+ 		gtk_widget_destroy( m_pListLabels[i] );
+Index: fpicker/source/unx/gnome/SalGtkFilePicker.hxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkFilePicker.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.110.2
+diff -u -p -u -p -r1.10 -r1.10.110.2
+--- fpicker/source/unx/gnome/SalGtkFilePicker.hxx	7 Aug 2006 13:59:37 -0000	1.10
++++ fpicker/source/unx/gnome/SalGtkFilePicker.hxx	13 Aug 2007 09:58:19 -0000	1.10.110.2
+@@ -289,6 +289,7 @@ class SalGtkFilePicker : 
+ 	private:
+         ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >
+             m_xListener;
++        ::rtl::OUString msPlayLabel;
+ 		FilterList *m_pFilterList;
+ 		GtkWidget  *m_pVBox;
+ 
+@@ -332,6 +333,7 @@ class SalGtkFilePicker : 
+ 		GtkWidget *m_pLists[ LIST_LAST ];
+ 		GtkWidget *m_pListLabels[ LIST_LAST ];
+ 		bool mbListVisibility[ LIST_LAST ];
++		bool mbButtonVisibility[ BUTTON_LAST ];
+         gulong mnHID_FolderChange;
+         gulong mnHID_SelectionChange;
+ 
+Index: fpicker/source/unx/gnome/SalGtkPicker.cxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkPicker.cxx,v
+retrieving revision 1.14
+retrieving revision 1.14.84.1
+diff -u -p -u -p -r1.14 -r1.14.84.1
+--- fpicker/source/unx/gnome/SalGtkPicker.cxx	24 Oct 2006 15:02:38 -0000	1.14
++++ fpicker/source/unx/gnome/SalGtkPicker.cxx	10 Aug 2007 11:03:44 -0000	1.14.84.1
+@@ -131,7 +131,8 @@ gboolean rundialog(RunDialog *pDialog)
+ void RunDialog::run() 
+ { 
+     mnStatus = gtk_dialog_run( GTK_DIALOG( m_pDialog ) ); 
+-    gtk_widget_hide( m_pDialog );
++    if (mnStatus != 1)	//PLAY
++        gtk_widget_hide( m_pDialog );
+ 
+     maLock.acquire();
+     mbFinished = true;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/warning-return-values-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/warning-return-values-filter.diff
@@ -0,0 +1,17 @@
+--- filter/source/config/cache/filtercache.cxx.old	2005-09-08 23:28:41.000000000 +0200
++++ filter/source/config/cache/filtercache.cxx	2005-11-28 19:17:53.000000000 +0100
+@@ -849,10 +849,12 @@
+         case E_CONTENTHANDLER : return m_lContentHandlers;
+         case E_DETECTSERVICE  : return m_lDetectServices ;
+ 
+-        default : throw css::uno::Exception(::rtl::OUString::createFromAscii("unknown sub container requested."),
+-                                            css::uno::Reference< css::uno::XInterface >()                      );
+     }
+ 
++    // throw has been moved from the default section of the switch to
++    // avoid warning: control reaches end of non-void function
++    throw css::uno::Exception(::rtl::OUString::createFromAscii("unknown sub container requested."),
++                                            css::uno::Reference< css::uno::XInterface >()                      );
+     // <- SAFE ----------------------------------
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-fix-paste-cellrange-selection.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-fix-paste-cellrange-selection.diff
@@ -0,0 +1,48 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/tabview.hxx sc/source/ui/inc/tabview.hxx
+--- sc.clean/source/ui/inc/tabview.hxx	2008-03-11 09:39:34.000000000 -0400
++++ sc/source/ui/inc/tabview.hxx	2008-03-11 14:15:22.000000000 -0400
+@@ -501,6 +501,8 @@ public:
+ 	void			PaintMarks( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
+ 	void			PaintBlock( BOOL bReset = FALSE );
+ 
++    void            MarkDataChanged();
++
+ 	void			LockModifiers( USHORT nModifiers );
+ 	USHORT			GetLockedModifiers() const;
+ 	void			ViewOptionsHasChanged( BOOL bHScrollChanged,
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
+--- sc.clean/source/ui/view/tabview3.cxx	2008-03-11 09:39:35.000000000 -0400
++++ sc/source/ui/view/tabview3.cxx	2008-03-11 14:13:43.000000000 -0400
+@@ -1568,6 +1568,13 @@ void ScTabView::Unmark()
+ 	}
+ }
+ 
++void ScTabView::MarkDataChanged()
++{
++    // has to be called after making direct changes to mark data (not via MarkCursor etc)
++
++    UpdateSelectionOverlay();
++}
++
+ void ScTabView::SelectNextTab( short nDir, BOOL bExtendSelection )
+ {
+ 	if (!nDir) return;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/viewfun3.cxx sc/source/ui/view/viewfun3.cxx
+--- sc.clean/source/ui/view/viewfun3.cxx	2008-03-11 09:39:35.000000000 -0400
++++ sc/source/ui/view/viewfun3.cxx	2008-03-11 14:24:13.000000000 -0400
+@@ -253,6 +253,7 @@ void ScViewFunc::CutToClip( ScDocument* 
+ 			DoneBlockMode();
+ 			InitOwnBlockMode();
+ 			rMark.SetMarkArea( aRange );
++            MarkDataChanged();
+ 		}
+ 
+ 		CopyToClip( pClipDoc, TRUE, FALSE, bIncludeObjects );			// Ab ins Clipboard
+@@ -1039,6 +1040,7 @@ BOOL ScViewFunc::PasteFromClip( USHORT n
+ 		InitOwnBlockMode();
+ 	}
+ 	rMark.SetMarkArea( aUserRange );
++    MarkDataChanged();
+ 
+ 	HideCursor();							// Cursor aendert sich !
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-allow-negative-spacing.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-allow-negative-spacing.diff
@@ -0,0 +1,16 @@
+--- sw_save/source/core/text/txtfrm.cxx	2007-11-26 18:30:32.000000000 +0100
++++ sw/source/core/text/txtfrm.cxx	2008-02-26 05:27:17.000000000 +0100
+@@ -2401,10 +2401,13 @@
+             nTmp *= rSpace.GetPropLineSpace();
+             nTmp /= 100;
+             nTmp -= nRet;
++	    nRet = nTmp;
++/*
+             if ( nTmp > 0 )
+                 nRet = nTmp;
+             else
+                 nRet = 0;
++*/
+ 		}
+ 			break;
+ 		case SVX_INTER_LINE_SPACE_FIX:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/padmin-nofontconfig.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/padmin-nofontconfig.diff
@@ -0,0 +1,114 @@
+Index: padmin/source/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/padmin/source/makefile.mk,v
+retrieving revision 1.14
+diff -u -p -r1.14 makefile.mk
+--- padmin/source/makefile.mk	29 Oct 2004 12:45:30 -0000	1.14
++++ padmin/source/makefile.mk	25 Nov 2004 12:37:44 -0000
+@@ -71,6 +71,10 @@ LIBTARGET=NO
+ 
+ .INCLUDE: settings.mk
+ 
++.IF "$(FONTCONFIG_FONTS)" != ""
++CFLAGS+=-DFONTCONFIG_FONTS
++.ENDIF
++
+ # --- Files --------------------------------------------------------
+ 
+ SRS1NAME=$(TARGET)
+@@ -94,11 +98,13 @@ SLOFILES=\
+ 	$(SLO)$/newppdlg.obj		\
+ 	$(SLO)$/prtsetup.obj		\
+ 	$(SLO)$/prgsbar.obj			\
+-	$(SLO)$/fontentry.obj		\
+ 	$(SLO)$/helper.obj			\
+ 	$(SLO)$/adddlg.obj			\
+ 	$(SLO)$/titlectrl.obj
+ 
++.IF "$(FONTCONFIG_FONTS)" == ""
++SLOFILES+= $(SLO)$/fontentry.obj
++.ENDIF
+ 
+ OBJFILES=\
+ 	$(OBJ)/pamain.obj
+Index: padmin/source/padialog.cxx
+===================================================================
+RCS file: /cvs/gsl/padmin/source/padialog.cxx,v
+retrieving revision 1.13
+diff -u -p -r1.13 padialog.cxx
+--- padmin/source/padialog.cxx	9 Nov 2004 16:50:55 -0000	1.13
++++ padmin/source/padialog.cxx	25 Nov 2004 12:39:13 -0000
+@@ -89,9 +89,14 @@
+ #ifndef _TOOLS_COLOR_HXX
+ #include <tools/color.hxx>
+ #endif
++#ifndef _URLOBJ_HXX
++#include <tools/urlobj.hxx>
++#endif
++#ifndef FONTCONFIG_FONTS
+ #ifndef _PAD_PADIALOG_HRC_
+ #include <padialog.hrc>
+ #endif
++#endif
+ #ifndef _PAD_FONTENTRY_HXX_
+ #include <fontentry.hxx>
+ #endif
+@@ -156,7 +161,9 @@ PADialog::PADialog( Window* pParent, BOO
+ 		m_aComment( this, PaResId( RID_PA_TXT_COMMENT_STRING ) ),
+         m_aSepButtonFL( this, PaResId( RID_PA_FL_SEPBUTTON ) ),
+ 		m_aAddPB( this, PaResId( RID_PA_BTN_ADD ) ),
++	#ifndef FONTCONFIG_FONTS
+ 		m_aFontsPB( this, PaResId( RID_PA_BTN_FONTS ) ),
++	#endif
+ 		m_aCancelButton( this, PaResId( RID_PA_BTN_CANCEL ) ),
+ 		m_aDefPrt( PaResId( RID_PA_STR_DEFPRT ) ),
+ 		m_aRenameStr( PaResId( RID_PA_STR_RENAME ) ),
+@@ -184,13 +191,15 @@ void PADialog::Init()
+ 	m_aConfPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
+ 	m_aRenamePB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
+ 	m_aTestPagePB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
+-	m_aFontsPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
+ 	m_aAddPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
+ 	m_aDevicesLB.setDelPressedLink( LINK( this, PADialog, DelPressedHdl ) );
+ 
++     #ifndef FONTCONFIG_FONTS
++        m_aFontsPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
+ 	::psp::PrintFontManager& rFontManager( ::psp::PrintFontManager::get() );
+ 	if( ! rFontManager.checkImportPossible() )
+ 		m_aFontsPB.Enable( FALSE );
++     #endif
+ }
+ 
+ PADialog::~PADialog()
+@@ -227,12 +236,13 @@ IMPL_LINK( PADialog, ClickBtnHdl, PushBu
+ 		PrintTestPage();
+ 	else if( pButton == &m_aAddPB )
+ 		AddDevice();
++     #ifndef FONTCONFIG_FONTS
+ 	else if( pButton == &m_aFontsPB )
+ 	{
+ 		FontNameDlg aDialog( this );
+ 		aDialog.Execute();
+ 	}
+-
++     #endif
+ 	return 0;
+ }
+ 
+Index: padmin/source/padialog.hxx
+===================================================================
+RCS file: /cvs/gsl/padmin/source/padialog.hxx,v
+retrieving revision 1.5
+diff -u -p -r1.5 padialog.hxx
+--- padmin/source/padialog.hxx	6 Jan 2004 16:50:50 -0000	1.5
++++ padmin/source/padialog.hxx	25 Nov 2004 12:39:50 -0000
+@@ -118,7 +118,9 @@ namespace padmin {
+ 
+         FixedLine							m_aSepButtonFL;
+ 		PushButton							m_aAddPB;
++#ifndef FONTCONFIG_FONTS
+ 		PushButton							m_aFontsPB;
++#endif
+ 		CancelButton  						m_aCancelButton;
+ 
+ 		String								m_aDefPrt;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/win32-installer-register-moox-types.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/win32-installer-register-moox-types.diff
@@ -0,0 +1,191 @@
+--- setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
++++ setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
+@@ -42,6 +42,14 @@
+ 	std::wstring GetWordDocumentDefaultIconEntry() const;
+ 	std::wstring GetWordDocumentDefaultShellCommand() const;
+ 
++	/** MOOX Word document information		
++		The icon index is the index of the icon 
++		in soffice.exe to be associated with 
++		word document files
++	*/
++	std::wstring GetMOOXWordDocumentDisplayName() const;
++	std::wstring GetMOOXWordDocumentFileExtension() const;
++
+ 	/** Word template information
+ 		The icon index is the index of the icon 
+ 		in soffice.exe to be associated with 
+@@ -72,6 +72,9 @@
+ 	std::wstring GetExcelSheetDefaultIconEntry() const;
+ 	std::wstring GetExcelSheetDefaultShellCommand() const;
+ 
++	std::wstring GetMOOXExcelSheetDisplayName() const;
++	std::wstring GetMOOXExcelSheetFileExtension() const;
++
+ 	/** Excel template information
+ 		The icon index is the index of the icon 
+ 		in soffice.exe to be associated with 
+@@ -92,6 +92,9 @@
+ 	std::wstring GetPowerPointDocumentDefaultIconEntry() const;
+ 	std::wstring GetPowerPointDocumentDefaultShellCommand() const;
+ 
++	std::wstring GetMOOXPowerPointDocumentDisplayName() const;
++	std::wstring GetMOOXPowerPointDocumentFileExtension() const;
++
+ 	/** PowerPoint template information
+ 		The icon index is the index of the icon 
+ 		in soffice.exe to be associated with 
+dummy line to avoid confusing diff-mode
+--- setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.cxx
++++ setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.cxx
+@@ -59,6 +59,18 @@
+ 	return std::wstring(TEXT("open"));
+ }
+ 
++std::wstring RegistrationContextInformation::GetMOOXWordDocumentDisplayName() const
++{	
++	std::wstring str;
++	str = TEXT("Microsoft Word 2007 Document");
++	return str;
++}
++
++std::wstring RegistrationContextInformation::GetMOOXWordDocumentFileExtension() const
++{
++	return std::wstring(TEXT(".docx"));
++}
++
+ std::wstring RegistrationContextInformation::GetWordTemplateDisplayName() const
+ {
+ 	std::wstring str;
+@@ -131,6 +131,18 @@
+ 	return std::wstring(TEXT("open"));
+ }
+ 
++std::wstring RegistrationContextInformation::GetMOOXExcelSheetDisplayName() const
++{	
++	std::wstring str;
++	str = TEXT("Microsoft Excel 2007 Spreadsheet");
++	return str;
++}
++
++std::wstring RegistrationContextInformation::GetMOOXExcelSheetFileExtension() const
++{
++	return std::wstring(TEXT(".xlsx"));
++}
++
+ std::wstring RegistrationContextInformation::GetExcelTemplateDisplayName() const
+ {
+ 	std::wstring str;
+@@ -179,6 +179,18 @@
+ 	return std::wstring(TEXT("open"));
+ }
+ 
++std::wstring RegistrationContextInformation::GetMOOXPowerPointDocumentDisplayName() const
++{	
++	std::wstring str;
++	str = TEXT("Microsoft Excel 2007 Presentation");
++	return str;
++}
++
++std::wstring RegistrationContextInformation::GetMOOXPowerPointDocumentFileExtension() const
++{
++	return std::wstring(TEXT(".pptx"));
++}
++
+ std::wstring RegistrationContextInformation::GetPowerPointTemplateDisplayName() const
+ {
+ 	std::wstring str;
+dummy line to avoid confusing diff-mode
+--- setup_native/source/win32/customactions/reg4msdoc/registrar.cxx
++++ setup_native/source/win32/customactions/reg4msdoc/registrar.cxx
+@@ -68,6 +68,14 @@
+         m_ContextInformation.ShellNewCommandDisplayName(),
+         RegistrationContextInformation::Writer);
+ 	
++    RegisterForMsOfficeApplication(
++        m_ContextInformation.GetMOOXWordDocumentFileExtension(),
++        m_ContextInformation.GetMOOXWordDocumentDisplayName(),
++        m_ContextInformation.GetWordDocumentDefaultIconEntry(),
++        m_ContextInformation.GetWordDocumentDefaultShellCommand(),
++        m_ContextInformation.ShellNewCommandDisplayName(),
++        RegistrationContextInformation::Writer);
++	
+     RegisterForMsOfficeApplication(
+         m_ContextInformation.GetWordTemplateFileExtension(),
+         m_ContextInformation.GetWordTemplateDisplayName(),
+@@ -99,6 +99,14 @@
+ 	catch(RegistryKeyNotFoundException&)
+ 	{}
+ 
++	try
++	{
++		UnregisterForMsOfficeApplication(
++			m_ContextInformation.GetMOOXWordDocumentFileExtension());
++	}
++	catch(RegistryKeyNotFoundException&)
++	{}
++
+ 	try
+ 	{
+ 		UnregisterForMsOfficeApplication(
+@@ -165,6 +165,14 @@
+ 		m_ContextInformation.ShellNewCommandDisplayName(),
+         RegistrationContextInformation::Calc);
+ 
++    RegisterForMsOfficeApplication(
++        m_ContextInformation.GetMOOXExcelSheetFileExtension(),
++        m_ContextInformation.GetMOOXExcelSheetDisplayName(),
++        m_ContextInformation.GetExcelSheetDefaultIconEntry(),
++        m_ContextInformation.GetExcelSheetDefaultShellCommand(),
++        m_ContextInformation.ShellNewCommandDisplayName(),
++        RegistrationContextInformation::Calc);
++	
+ 	RegisterForMsOfficeApplication(
+ 		m_ContextInformation.GetExcelTemplateFileExtension(),
+ 		m_ContextInformation.GetExcelTemplateDisplayName(),
+@@ -188,6 +188,14 @@
+ 	catch(RegistryKeyNotFoundException&)
+ 	{}
+ 
++	try
++	{
++		UnregisterForMsOfficeApplication(
++			m_ContextInformation.GetMOOXExcelSheetFileExtension());
++	}
++	catch(RegistryKeyNotFoundException&)
++	{}
++
+ 	try
+ 	{
+ 		UnregisterForMsOfficeApplication(
+@@ -217,6 +217,14 @@
+         m_ContextInformation.ShellNewCommandDisplayName(),
+         RegistrationContextInformation::Impress);
+             
++    RegisterForMsOfficeApplication(
++        m_ContextInformation.GetMOOXPowerPointDocumentFileExtension(),
++        m_ContextInformation.GetMOOXPowerPointDocumentDisplayName(),
++        m_ContextInformation.GetPowerPointDocumentDefaultIconEntry(),
++        m_ContextInformation.GetPowerPointDocumentDefaultShellCommand(),
++        m_ContextInformation.ShellNewCommandDisplayName(),
++        RegistrationContextInformation::Impress);
++	
+     RegisterForMsOfficeApplication(
+         m_ContextInformation.GetPowerPointShowFileExtension(),
+         m_ContextInformation.GetPowerPointShowDisplayName(),
+@@ -248,6 +248,14 @@
+ 	catch(RegistryKeyNotFoundException&)
+ 	{}
+ 
++	try
++	{
++		UnregisterForMsOfficeApplication(
++			m_ContextInformation.GetMOOXPowerPointDocumentFileExtension());
++	}
++	catch(RegistryKeyNotFoundException&)
++	{}
++
+ 	try
+ 	{
+ 		UnregisterForMsOfficeApplication(
+dummy line to avoid confusing diff-mode
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-common-build.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-common-build.diff
@@ -0,0 +1,37 @@
+Index: fpicker/prj/build.lst
+===================================================================
+RCS file: /cvs/gsl/fpicker/prj/build.lst,v
+retrieving revision 1.6
+Index: fpicker/prj/build.lst
+===================================================================
+--- fpicker/prj/build.lst.ark	2006-11-02 12:36:21.000000000 +0100
++++ fpicker/prj/build.lst	2006-11-02 12:37:44.000000000 +0100
+@@ -3,8 +3,10 @@ fp	fpicker\inc							nmake	-	all	
+ fp	fpicker\source\generic				nmake	-	all	fp_generic fp_inc NULL
+ fp	fpicker\source\office				nmake	-	all	fp_office fp_inc NULL
+ fp	fpicker\source\unx\gnome			nmake	-	u	fp_gnome_filepicker fp_inc NULL
++fp	fpicker\source\unx\kde_unx			nmake	-	u	fp_unx_common fp_inc NULL
++fp	fpicker\source\unx\kde				nmake	-	u	fp_unx_kde_filepicker fp_inc NULL
+ fp	fpicker\source\aqua					nmake	-	u	fp_macosx_filepicker NULL
+ fp	fpicker\source\win32\filepicker		nmake	-	w	fp_win32_filepicker fp_inc NULL
+ fp	fpicker\source\win32\folderpicker	nmake	-	w	fp_win32_folderpicker fp_inc NULL
+ fp  fpicker\source\win32\misc			nmake	-	w	fp_win32_misc fp_win32_filepicker.w fp_win32_folderpicker.w fp_inc NULL
+-fp	fpicker\util				nmake	-	all	fp_util fp_win32_filepicker.w fp_win32_misc.w fp_win32_folderpicker.w NULL
++fp	fpicker\util				nmake	-	all	fp_util fp_gnome_filepicker.u fp_unx_common.u fp_unx_kde_filepicker.u fp_win32_filepicker.w fp_win32_misc.w fp_win32_folderpicker.w NULL
+Index: fpicker/prj/d.lst
+===================================================================
+--- fpicker/prj/d.lst.orig	2004-07-31 19:07:38.523658664 +0200
++++ fpicker/prj/d.lst	2004-07-31 19:13:36.267273368 +0200
+@@ -1,10 +1,12 @@
+ 
+ ..\%__SRC%\bin\f*.res %_DEST%\bin%_EXT%\
+ ..\%__SRC%\bin\f*.dll %_DEST%\bin%_EXT%\
++..\%__SRC%\bin\kdefilepicker %_DEST%\bin%_EXT%\kdefilepicker
+ ..\%__SRC%\lib\f*.so %_DEST%\lib%_EXT%\
+ ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+ 
+ ..\source\win32\filepicker\*.xml %_DEST%\xml%_EXT%\*.xml
+ ..\source\win32\folderpicker\*.xml %_DEST%\xml%_EXT%\*.xml
+ ..\source\unx\gnome\fps-gnome-ucd.txt %_DEST%\bin%_EXT%\fps-gnome-ucd.txt
+ ..\source\aqua\fps-aqua-ucd.txt %_DEST%\bin%_EXT%\fps-aqua-ucd.txt
++..\source\unx\kde_unx\fps-kde-ucd.txt %_DEST%\bin%_EXT%\fps-kde-ucd.txt
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gui-insensitive.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gui-insensitive.diff
@@ -0,0 +1,305 @@
+--- vcl/source/gdi/impimage.cxx.old	2007-07-24 12:10:47.000000000 +0200
++++ vcl/source/gdi/impimage.cxx	2007-08-15 15:19:23.000000000 +0200
+@@ -240,7 +240,7 @@ void ImplImageBmp::Create( long nItemWid
+ 	const Size aTotalSize( nInitSize * nItemWidth, nItemHeight );
+ 
+ 	maBmpEx = Bitmap( aTotalSize, 24 );
+-	maDisabledBmp.SetEmpty();
++	maDisabledBmpEx.SetEmpty();
+ 
+ 	delete mpDisplayBmp;
+ 	mpDisplayBmp = NULL;
+@@ -258,7 +258,7 @@ void ImplImageBmp::Create( long nItemWid
+ void ImplImageBmp::Create( const BitmapEx& rBmpEx, long nItemWidth, long nItemHeight, USHORT nInitSize )
+ {
+ 	maBmpEx = rBmpEx;
+-	maDisabledBmp.SetEmpty();
++	maDisabledBmpEx.SetEmpty();
+ 
+ 	delete mpDisplayBmp;
+ 	mpDisplayBmp = NULL;
+@@ -283,8 +283,8 @@ void ImplImageBmp::Expand( USHORT nGrowS
+ 
+ 	maBmpEx.Expand( nDX, 0UL );
+ 
+-	if( !maDisabledBmp.IsEmpty() )
+-		maDisabledBmp.Expand( nDX, 0UL );
++	if( !maDisabledBmpEx.IsEmpty() )
++		maDisabledBmpEx.Expand( nDX, 0UL );
+ 
+ 	delete mpDisplayBmp;
+ 	mpDisplayBmp = NULL;
+@@ -315,8 +315,8 @@ void ImplImageBmp::Replace( USHORT nPos,
+ 
+ 	maBmpEx.CopyPixel( aDstRect, aSrcRect );
+ 
+-	if( !maDisabledBmp.IsEmpty() )
+-		maDisabledBmp.CopyPixel( aDstRect, aSrcRect );
++	if( !maDisabledBmpEx.IsEmpty() )
++		maDisabledBmpEx.CopyPixel( aDstRect, aSrcRect );
+ 
+ 	delete mpDisplayBmp;
+ 	mpDisplayBmp = NULL;
+@@ -427,8 +427,7 @@ void ImplImageBmp::Draw( USHORT nPos, Ou
+ 
+ 			ImplUpdateDisabledBmp( -1 );
+ 
+-			pOutDev->DrawMask( aOutPos1, aOutSize, aSrcPos, maSize, maDisabledBmp, rSettings.GetLightColor() );
+-			pOutDev->DrawMask( rPos, aOutSize, aSrcPos, maSize, maDisabledBmp, rSettings.GetShadowColor() );
++			pOutDev->DrawBitmapEx( rPos, aOutSize, aSrcPos, maSize, maDisabledBmpEx );
+ 		}
+ 		else
+ 		{
+@@ -609,160 +608,96 @@ pOutDev
+ 
+ // -----------------------------------------------------------------------
+ 
++static unsigned char deSaturate (unsigned char col, unsigned char intensity)
++{
++	int i = (int) ((0.2 * intensity + col * 0.8) * 0.7);
++	if (i <= 0)
++		return 0;
++	if (i >= 255)
++		return 255;
++	return (unsigned char) i;
++}
++
+ void ImplImageBmp::ImplUpdateDisabledBmp( int nPos )
+ {
+-	if( ( nPos >= 0 && !maDisabledBmp.IsEmpty() ) ||
+-		( nPos < 0 && maDisabledBmp.IsEmpty() ) )
++	if( ! ( nPos >= 0 && !maDisabledBmpEx.IsEmpty() ) &&
++	    ! ( nPos < 0 && maDisabledBmpEx.IsEmpty() ) )
++		return;
++
++	Bitmap aBitmap;
++
++	// The source bitmap might use a palette. We are going to do some
++	// mathematical operations with the colors. It will be more safe
++	// to always put the output into RGB instead of searching the best
++	// matching colors in the current palette...
++	aBitmap = Bitmap( maBmpEx.GetSizePixel(), 24 );
++
++	Bitmap aSrcBitmap = maBmpEx.GetBitmap();
++	BitmapReadAccess  *pAcc = aSrcBitmap.AcquireReadAccess();
++	if( !pAcc )
++		return;
++	BitmapWriteAccess *pDis = aBitmap.AcquireWriteAccess();
++
++	if( !pDis )
+ 	{
+-		Bitmap aBmp( maBmpEx.GetBitmap() );
+-		Bitmap aMask;
++		aSrcBitmap.ReleaseAccess( pAcc );
++		return;
++	}
+ 
+-		if( maBmpEx.IsTransparent() )
+-			aMask = maBmpEx.GetMask();
+-		else
+-		{
+-			aMask = aBmp;
+-			aMask.Convert( BMP_CONVERSION_1BIT_THRESHOLD );
+-		}
++	long nLeft, nTop, nRight, nBottom;
+ 
+-		if( maDisabledBmp.IsEmpty() )
+-			maDisabledBmp = Bitmap( aBmp.GetSizePixel(), 1 );
++	if( nPos >= 0 )
++	{
++		const Point aPos( nPos * maSize.Width(), 0 );
+ 
+-		BitmapReadAccess*	pAcc = aBmp.AcquireReadAccess();
+-		BitmapReadAccess*	pMsk = aMask.AcquireReadAccess();
+-		BitmapWriteAccess*	pDis = maDisabledBmp.AcquireWriteAccess();
++		nLeft = aPos.X();
++		nTop = 0;
++		nRight = nLeft + maSize.Width();
++		nBottom = nTop + maSize.Height();
++	}
++	else
++	{
++		nLeft = nTop = 0L;
++		nRight = pDis->Width();
++		nBottom = pDis->Height();
++	}
+ 
+-		if( pAcc && pMsk && pDis )
++	if( pAcc && pDis )
++	{
++		for( long nY = nTop; nY < nBottom; nY++ )
+ 		{
+-			const Color 		aWhite( COL_WHITE );
+-			const Color 		aBlack( COL_BLACK );
+-			const BitmapColor	aAccWhite( pAcc->GetBestMatchingColor( aWhite ) );
+-			const BitmapColor	aMskWhite( pMsk->GetBestMatchingColor( aWhite ) );
+-			const BitmapColor	aDisWhite( pDis->GetBestMatchingColor( aWhite ) );
+-			const BitmapColor	aDisBlack( pDis->GetBestMatchingColor( aBlack ) );
+-			long				nLeft, nTop, nRight, nBottom;
+-			long				nCurLeft, nCurRight;
+-			const long			nBlackThreshold = FRound( maSize.Width() * maSize.Height() * 0.10 );
+-
+-			if( nPos >= 0 )
++			for( long nX = nLeft; nX < nRight; nX++ )
+ 			{
+-				const Point aPos( nPos * maSize.Width(), 0 );
+-
+-				nLeft = aPos.X();
+-				nTop = 0;
+-				nRight = nLeft + maSize.Width();
+-				nBottom = nTop + maSize.Height();
+-			}
+-			else
+-			{
+-				nLeft = nTop = 0L;
+-				nRight = pDis->Width();
+-				nBottom = pDis->Height();
+-			}
+-
+-			nCurLeft = nLeft;
+-			nCurRight = nCurLeft + maSize.Width();
+-
+-			while( nCurLeft < nRight )
+-			{
+-				sal_Int32 nBlackCount = 0;
+-
+-				if( pAcc->GetScanlineFormat() == BMP_FORMAT_4BIT_MSN_PAL &&
+-					pMsk->GetScanlineFormat() == BMP_FORMAT_1BIT_MSB_PAL )
+-				{
+-					// optimized version
+-					const BYTE cAccTest = aAccWhite.GetIndex();
+-					const BYTE cMskTest = aMskWhite.GetIndex();
+-
+-					for( long nY = nTop; nY < nBottom; nY++ )
+-					{
+-						Scanline pAccScan = pAcc->GetScanline( nY );
+-						Scanline pMskScan = pMsk->GetScanline( nY );
+-
+-						for( long nX = nCurLeft; nX < nCurRight; nX++ )
+-						{
+-							if( ( cMskTest == ( pMskScan[ nX >> 3 ] & ( 1 << ( 7 - ( nX & 7 ) ) ) ? 1 : 0 ) ) ||
+-								( cAccTest == ( ( pAccScan[ nX >> 1 ] >> ( nX & 1 ? 0 : 4 ) ) & 0x0f ) ) )
+-							{
+-								pDis->SetPixel( nY, nX, aDisWhite );
+-							}
+-							else
+-							{
+-								pDis->SetPixel( nY, nX, aDisBlack );
+-								++nBlackCount;
+-							}
+-						}
+-					}
+-				}
+-				else if( pAcc->GetScanlineFormat() == BMP_FORMAT_8BIT_PAL &&
+-						pMsk->GetScanlineFormat() == BMP_FORMAT_1BIT_MSB_PAL )
++				// read color even when the birmap uses palette
++				// we generate RGB anyway
++				BitmapColor col = pAcc->GetColor( nY, nX );
++				unsigned char i;
++
++				i = (unsigned char ) ( col.GetRed() * 0.3 + // magic numbers
++									   col.GetGreen() * 0.59 +
++									   col.GetBlue () * 0.11 );
++				if ((nY + nX) % 2 == 0)
+ 				{
+-					// optimized version
+-					const BYTE cAccTest = aAccWhite.GetIndex();
+-					const BYTE cMskTest = aMskWhite.GetIndex();
+-
+-					for( long nY = nTop; nY < nBottom; nY++ )
+-					{
+-						Scanline pAccScan = pAcc->GetScanline( nY );
+-						Scanline pMskScan = pMsk->GetScanline( nY );
+-
+-						for( long nX = nCurLeft; nX < nCurRight; nX++ )
+-						{
+-							if( ( cMskTest == ( pMskScan[ nX >> 3 ] & ( 1 << ( 7 - ( nX & 7 ) ) ) ? 1 : 0 ) ) ||
+-								( cAccTest == pAccScan[ nX ] ) )
+-							{
+-								pDis->SetPixel( nY, nX, aDisWhite );
+-							}
+-							else
+-							{
+-								pDis->SetPixel( nY, nX, aDisBlack );
+-								++nBlackCount;
+-							}
+-						}
+-					}
++					col.SetRed   (i / 2 + 127);
++					col.SetGreen (i / 2 + 127);
++					col.SetBlue  (i / 2 + 127);
+ 				}
+ 				else
+ 				{
+-					for( long nY = nTop; nY < nBottom; nY++ )
+-					{
+-						for( long nX = nCurLeft; nX < nCurRight; nX++ )
+-						{
+-							if( ( aMskWhite == pMsk->GetPixel( nY, nX ) ) ||
+-								( aAccWhite == pAcc->GetPixel( nY, nX ) ) )
+-							{
+-								pDis->SetPixel( nY, nX, aDisWhite );
+-							}
+-							else
+-							{
+-								pDis->SetPixel( nY, nX, aDisBlack );
+-								++nBlackCount;
+-							}
+-						}
+-					}
+-				}
+-
+-				if( nBlackCount < nBlackThreshold )
+-				{
+-					// emergency solution if paint bitmap is mostly white
+-					for( long nY = nTop; nY < nBottom; nY++ )
+-					{
+-						for( long nX = nCurLeft; nX < nCurRight; nX++ )
+-						{
+-							if( aMskWhite == pMsk->GetPixel( nY, nX ) )
+-								pDis->SetPixel( nY, nX, aDisWhite );
+-							else
+-								pDis->SetPixel( nY, nX, aDisBlack );
+-						}
+-					}
+-				}
+-
+-				nCurLeft += maSize.Width();
+-				nCurRight += maSize.Width();
++					col.SetRed   (deSaturate (col.GetRed(), i));
++					col.SetGreen (deSaturate (col.GetGreen(), i));
++					col.SetBlue  (deSaturate (col.GetBlue(), i));
++			}
++				pDis->SetPixel( nY, nX, col );
+ 			}
+ 		}
+-
+-		aBmp.ReleaseAccess( pAcc );
+-		aMask.ReleaseAccess( pMsk );
+-		maDisabledBmp.ReleaseAccess( pDis );
+ 	}
++
++	aSrcBitmap.ReleaseAccess( pAcc );
++	aBitmap.ReleaseAccess( pDis );
++
++	if( maBmpEx.IsAlpha() )
++			maDisabledBmpEx = BitmapEx( aBitmap, maBmpEx.GetAlpha() );
++	else
++			maDisabledBmpEx = BitmapEx( aBitmap, maBmpEx.GetMask() );
+ }
+Index: vcl/inc/image.h
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/image.h,v
+retrieving revision 1.8
+diff -u -r1.8 image.h
+--- vcl/inc/vcl/image.h	9 Sep 2005 11:01:36 -0000	1.8
++++ vcl/inc/vcl/image.h	22 Mar 2006 12:25:15 -0000
+@@ -71,7 +71,7 @@
+ private:
+ 
+ 	BitmapEx	maBmpEx;
+-	Bitmap		maDisabledBmp;
++	BitmapEx	maDisabledBmpEx;
+ 	BitmapEx*	mpDisplayBmp;
+ 	Size		maSize;
+ 	BYTE*		mpInfoAry;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extensions_configure.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extensions_configure.diff
@@ -0,0 +1,26 @@
+--- config_office/configure.in.original	2008-03-19 07:37:01.000000000 +0100
++++ config_office/configure.in	2008-03-19 08:20:11.000000000 +0100
+@@ -5377,10 +5377,14 @@
+ AC_MSG_CHECKING([whether to build the Presentation Minimizer extension])
+ if test -n "$enable_sdext" -a "$enable_sdext" != "no"; then
+    AC_MSG_RESULT([yes])
++   WITH_EXTENSION_SDEXT=YES
+    BUILD_TYPE="$BUILD_TYPE SDEXT"
+ else
+    AC_MSG_RESULT([no])
++   WITH_EXTENSION_SDEXT=NO
++   SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_SDEXT"
+ fi
++AC_SUBST(WITH_EXTENSION_SDEXT)
+ 
+ AC_MSG_CHECKING([whether to build the Report Builder extension])
+ if test -z "$enable_reportdesign" -o "$enable_reportdesign" != "no" && test "$WITH_JAVA" != "no"; then
+@@ -5458,6 +5458,7 @@
+ else
+   AC_MSG_RESULT([no])
+   ENABLE_REPORTDESIGN=NO
++  SCPDEFS="$SCPDEFS -DDISABLE_REPORTDESIGN"
+   SYSTEM_JFREEREPORT=NO
+ fi
+ AC_SUBST(ENABLE_REPORTDESIGN)
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/oosplash-etc-openoffice-sofficerc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/oosplash-etc-openoffice-sofficerc.diff
@@ -0,0 +1,18 @@
+--- desktop/unx/source/start.c-old	2007-10-20 17:48:31.000000000 +0200
++++ desktop/unx/source/start.c	2007-10-20 17:42:52.000000000 +0200
+@@ -456,12 +456,13 @@
+ static void
+ load_splash_defaults( rtl_uString *pAppPath, sal_Bool *pInhibitSplash )
+ {
+-    rtl_uString *pSettings = NULL, *pTmp = NULL;
++    rtl_uString *pSettings = NULL, *pTmp = NULL, *pEtcPath = NULL;;
+     rtlBootstrapHandle handle;
+ 
+     /* costruct the sofficerc file location */
+     rtl_uString_newFromAscii( &pSettings, "file://" );
+-    rtl_uString_newConcat( &pSettings, pSettings, pAppPath );
++    rtl_uString_newFromAscii( &pEtcPath, "/etc/openoffice" );
++    rtl_uString_newConcat( &pSettings, pSettings, pEtcPath );
+     rtl_uString_newFromAscii( &pTmp, "/" );
+     rtl_uString_newConcat( &pSettings, pSettings, pTmp );
+     rtl_uString_newFromAscii( &pTmp, SAL_CONFIGFILE( "soffice" ) );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/warning-return-values-registry.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/warning-return-values-registry.diff
@@ -0,0 +1,12 @@
+--- registry/source/regimpl.cxx.old	2005-09-09 07:16:14.000000000 +0200
++++ registry/source/regimpl.cxx	2005-11-28 19:22:26.000000000 +0100
+@@ -561,6 +561,9 @@
+         } else
+             return REG_INVALID_REGISTRY;
+     }
++    // this line is never accessed
++    // just hack to avoid warning: control reaches end of non-void function
++    return REG_INVALID_REGISTRY;
+ }
+ 
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-bitmap2-negative-height.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-bitmap2-negative-height.diff
@@ -0,0 +1,67 @@
+Index: vcl/source/gdi/bitmap2.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/gdi/bitmap2.cxx,v
+retrieving revision 1.14
+diff -u -r1.14 bitmap2.cxx
+--- vcl/source/gdi/bitmap2.cxx	17 Sep 2006 11:57:13 -0000	1.14
++++ vcl/source/gdi/bitmap2.cxx	1 Feb 2007 15:36:29 -0000
+@@ -187,7 +187,7 @@
+ 	{
+ 		const USHORT nBitCount( discretizeBitcount(aHeader.nBitCount) );
+ 
+-		const Size			aSizePixel( aHeader.nWidth, aHeader.nHeight );
++		const Size			aSizePixel( aHeader.nWidth, abs(aHeader.nHeight) );
+ 		BitmapPalette		aDummyPal;
+ 		Bitmap				aNewBmp( aSizePixel, nBitCount, &aDummyPal );
+ 		BitmapWriteAccess*	pAcc = aNewBmp.AcquireWriteAccess();
+@@ -259,7 +259,7 @@
+ 									  Fraction( 1000, aHeader.nYPelsPerMeter ) );
+ 
+ 					aNewBmp.SetPrefMapMode( aMapMode );
+-					aNewBmp.SetPrefSize( Size( aHeader.nWidth, aHeader.nHeight ) );
++					aNewBmp.SetPrefSize( Size( aHeader.nWidth, abs(aHeader.nHeight) ) );
+ 				}
+ 			}
+ 
+@@ -380,7 +380,7 @@
+ 		else
+ 		{
+ 			rIStm >> rHeader.nWidth;
+-			rIStm >> rHeader.nHeight;
++			rIStm >> rHeader.nHeight; //rHeader.nHeight=abs(rHeader.nHeight);
+ 			rIStm >> rHeader.nPlanes;
+ 			rIStm >> rHeader.nBitCount;
+ 			rIStm >> rHeader.nCompression;
+@@ -463,7 +463,13 @@
+ 		if( rHeader.nColsUsed && rHeader.nBitCount > 8 )
+ 			rIStm.SeekRel( rHeader.nColsUsed * ( ( rHeader.nSize != DIBCOREHEADERSIZE ) ? 4 : 3 ) );
+ 
+-		rIStm.Read( rAcc.GetBuffer(), rHeader.nHeight * nAlignedWidth );
++		if (rHeader.nHeight>0) {
++		    rIStm.Read( rAcc.GetBuffer(), rHeader.nHeight * nAlignedWidth );
++		} else {
++		    for(int i=abs(rHeader.nHeight)-1;i>=0;i--) {
++			rIStm.Read( ((char*)rAcc.GetBuffer())+(nAlignedWidth*i), nAlignedWidth );		
++		    }
++		}
+ 	}
+ 	else
+ 	{
+@@ -506,7 +512,7 @@
+ 		else
+ 		{
+ 			const long	nWidth = rHeader.nWidth;
+-			const long	nHeight = rHeader.nHeight;
++			const long	nHeight = abs(rHeader.nHeight);
+ 			BYTE*		pBuf = new BYTE[ nAlignedWidth ];
+ 
+ 			// true color DIB's can have a (optimization) palette
+@@ -1047,7 +1053,7 @@
+ 							BitmapWriteAccess& rAcc, BOOL bRLE4 )
+ {
+ 	Scanline	pRLE = pBuffer;
+-	long		nY = rHeader.nHeight - 1L;
++	long		nY = abs(rHeader.nHeight) - 1L;
+ 	const ULONG	nWidth = rAcc.Width();
+ 	ULONG		nCountByte;
+ 	ULONG		nRunByte;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/chart2-es-eje-Y.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/chart2-es-eje-Y.diff
@@ -0,0 +1,17 @@
+Index: localize.sdf
+===================================================================
+RCS file: /cvs/graphics/chart2/source/controller/dialogs/localize.sdf,v
+retrieving revision 1.30.22.5
+retrieving revision 1.30.22.6
+diff -u -u -r1.30.22.5 -r1.30.22.6
+--- chart2/source/controller/dialogs/localize.sdf	9 Nov 2007 15:56:48 -0000	1.30.22.5
++++ chart2/source/controller/dialogs/localize.sdf	30 Nov 2007 16:27:54 -0000	1.30.22.6
+@@ -20191,7 +20191,7 @@
+ chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	de	~Y-Achse				2002-02-02 02:02:02
+ chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	en-GB	~Y axis				2002-02-02 02:02:02
+ chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	eo	Y-akso				2002-02-02 02:02:02
+-chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	es	~Eje X				2002-02-02 02:02:02
++chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	es	~Eje Y				2002-02-02 02:02:02
+ chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	et	Y-telg				2002-02-02 02:02:02
+ chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	fr	Axe ~Y				2002-02-02 02:02:02
+ chart2	source\controller\dialogs\res_Titlesx_tmpl.hrc	0	fixedtext	TITLES( xpos, ypos, editwidth, namefieldwidth )	FT_TITLE_Y_AXIS		!defined _CHART2_RES_TITLES_SRC	0	gu	~Y અક્ષ				2002-02-02 02:02:02
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gui-sw-scroll.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gui-sw-scroll.diff
@@ -0,0 +1,24 @@
+Index: sw/source/ui/uiview/viewport.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/uiview/viewport.cxx,v
+retrieving revision 1.25.160.1
+diff -u -p -u -r1.25.160.1 viewport.cxx
+--- sw/source/ui/uiview/viewport.cxx	22 Aug 2003 12:01:25 -0000	1.25.160.1
++++ sw/source/ui/uiview/viewport.cxx	7 Oct 2003 09:33:04 -0000
+@@ -785,6 +785,7 @@ IMPL_LINK( SwView, ScrollHdl, SwScrollba
+ 		//Hier wieder auskommentieren wenn das mitscrollen nicht gewuenscht ist.
+ 		// JP 21.07.00: the end scrollhandler invalidate the FN_STAT_PAGE,
+ 		// 				so we dont must do it agin.
++ 		long nOldPge = nPgNum;
+ 		EndScrollHdl(pScrollbar);
+ 
+ 		Point aPos( aVisArea.TopLeft() );
+@@ -805,7 +807,7 @@ IMPL_LINK( SwView, ScrollHdl, SwScrollba
+ 			USHORT nPageCnt = pWrtShell->GetPageCnt();
+ 			if( nPageCnt > 1 && Help::IsQuickHelpEnabled() )
+ 			{
+-				if( !nPgNum || nPgNum != nPhNum )
++				if( !nOldPge || nOldPge != nPhNum )
+ 				{
+ 					Rectangle aRect;
+ 					aRect.Left() = pScrollbar->GetParent()->OutputToScreenPixel(
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo85931.inconsistent.getentrypos.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo85931.inconsistent.getentrypos.diff
@@ -0,0 +1,11 @@
+--- svx/source/dialog/multipat.cxx	27 Jun 2007 17:22:03 -0000	1.11
++++ svx/source/dialog/multipat.cxx	7 Feb 2008 08:54:15 -0000
+@@ -138,7 +138,7 @@
+         if ( pImpl->bIsRadioButtonMode )
+         {
+             ULONG nPos = aRadioLB.GetEntryPos( sInsPath, 1 );
+-            if ( (ULONG)-1 == nPos )
++            if ( 0xffffffff == nPos ) //See svtools/source/contnr/svtabbx.cxx SvTabListBox::GetEntryPos
+             {
+                 String sNewEntry( '\t' );
+                 sNewEntry += sInsPath;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-getfilestatus-dtype.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-getfilestatus-dtype.diff
@@ -0,0 +1,267 @@
+Index: sal/osl/unx/file.cxx
+===================================================================
+RCS file: /cvs/porting/sal/osl/unx/file.cxx,v
+retrieving revision 1.10
+diff -u -p -r1.10 file.cxx
+--- sal/osl/unx/file.cxx	8 Sep 2005 14:53:53 -0000	1.10
++++ sal/osl/unx/file.cxx	18 Jan 2006 14:38:41 -0000
+@@ -150,6 +150,42 @@ static const sal_Char* MOUNTTAB="/etc/mt
+ 
+ #endif
+ 
++#ifdef _DIRENT_HAVE_D_TYPE
++#include "file_impl.hxx"
++	oslDirectoryItemImpl* oslDirectoryItemImpl_CreateNew( rtl_uString* _ustrFilePath, bool _bHasDType, unsigned char _DType )
++	{
++		oslDirectoryItemImpl *pItemObject = (oslDirectoryItemImpl*) malloc( sizeof( oslDirectoryItemImpl ) );
++		pItemObject->RefCount = 1;
++		pItemObject->bHasType = _bHasDType;
++		pItemObject->DType = _DType;
++		pItemObject->ustrFilePath = _ustrFilePath;
++
++		return pItemObject;
++	}
++
++	void oslDirectoryItemImpl_Destroy( oslDirectoryItemImpl* pItem )
++	{
++		if( pItem->ustrFilePath ) {
++			rtl_uString_release( pItem->ustrFilePath );
++			pItem->ustrFilePath = NULL;
++		}
++		free( pItem );
++	}
++
++	void oslDirectoryItemImpl_acquire( oslDirectoryItemImpl* pItem )
++	{
++		pItem->RefCount ++;
++	}
++
++	void oslDirectoryItemImpl_release( oslDirectoryItemImpl* pItem )
++	{
++		pItem->RefCount --;
++
++		if( pItem->RefCount <= 0 )
++			oslDirectoryItemImpl_Destroy( pItem );
++	}
++#endif
++
+ #if OSL_DEBUG_LEVEL > 1
+ 
+ 	extern void debug_ustring(rtl_uString*);
+@@ -480,8 +484,14 @@ oslFileError SAL_CALL osl_getNextDirecto
+ 	osl_systemPathMakeAbsolutePath(pDirImpl->ustrPath, ustrFileName, &ustrFilePath);
+     rtl_uString_release( ustrFileName );
+ 
++#ifdef _DIRENT_HAVE_D_TYPE
++    if(*pItem)
++	oslDirectoryItemImpl_release( ( oslDirectoryItemImpl* )( *pItem ) );
++    *pItem = (oslDirectoryItem) oslDirectoryItemImpl_CreateNew( ustrFilePath, true, pEntry->d_type );
++#else
+     /* use path as directory item */
+     *pItem = (oslDirectoryItem) ustrFilePath;
++#endif
+ 
+     return osl_File_E_None;
+ }
+@@ -474,7 +482,11 @@ oslFileError SAL_CALL osl_getDirectoryIt
+ 
+ 	if (0 == access_u(ustrSystemPath, F_OK))
+ 	{
++#ifdef _DIRENT_HAVE_D_TYPE
++		*pItem = (oslDirectoryItem) oslDirectoryItemImpl_CreateNew( ustrSystemPath, false );
++#else
+ 		*pItem = (oslDirectoryItem)ustrSystemPath;
++#endif
+ 		osl_error = osl_File_E_None;
+ 	}
+ 	else
+@@ -492,12 +504,21 @@ oslFileError SAL_CALL osl_getDirectoryIt
+ 
+ oslFileError osl_acquireDirectoryItem( oslDirectoryItem Item )
+ {
++#ifdef _DIRENT_HAVE_D_TYPE
++	oslDirectoryItemImpl* pImpl = (oslDirectoryItemImpl*) Item;
++#else
+     rtl_uString* ustrFilePath = (rtl_uString *) Item;
++#endif
+ 
+     OSL_ASSERT( Item );
+ 
++#ifdef _DIRENT_HAVE_D_TYPE
++	if( pImpl )
++		oslDirectoryItemImpl_acquire( pImpl );
++#else
+     if( ustrFilePath )
+         rtl_uString_acquire( ustrFilePath );
++#endif
+ 
+     return osl_File_E_None;
+ }
+@@ -508,12 +529,21 @@ oslFileError osl_acquireDirectoryItem( o
+ 
+ oslFileError osl_releaseDirectoryItem( oslDirectoryItem Item )
+ {
++#ifdef _DIRENT_HAVE_D_TYPE
++	oslDirectoryItemImpl* pImpl = (oslDirectoryItemImpl*) Item;
++#else
+     rtl_uString* ustrFilePath = (rtl_uString *) Item;
++#endif
+ 
+     OSL_ASSERT( Item );
+ 
++#ifdef _DIRENT_HAVE_D_TYPE
++	if( pImpl )
++		oslDirectoryItemImpl_release( pImpl );
++#else
+     if( ustrFilePath )
+         rtl_uString_release( ustrFilePath );
++#endif
+ 
+     return osl_File_E_None;
+ }
+Index: sal/osl/unx/file_stat.cxx
+===================================================================
+RCS file: /cvs/porting/sal/osl/unx/file_stat.cxx,v
+retrieving revision 1.6
+diff -u -p -r1.6 file_stat.cxx
+--- sal/osl/unx/file_stat.cxx	8 Sep 2005 14:56:14 -0000	1.6
++++ sal/osl/unx/file_stat.cxx	18 Jan 2006 14:38:41 -0000
+@@ -45,6 +45,10 @@
+ #include <unistd.h>
+ #endif
+ 
++#ifndef _DIRENT_H
++#include <dirent.h>
++#endif
++
+ #ifndef _OSL_FILE_H_
+ #include <osl/file.h>
+ #endif
+@@ -69,6 +73,9 @@
+ #include "file_error_transl.h"
+ #endif
+ 
++#ifdef _DIRENT_HAVE_D_TYPE
++#include "file_impl.hxx"
++#endif
+ 
+ namespace /* private */
+ {
+@@ -236,9 +243,19 @@ namespace /* private */
+ 	
+ 	/* we only need to call stat or lstat if one of the 
+        following flags is set */
++#ifdef _DIRENT_HAVE_D_TYPE
++	inline bool is_stat_call_necessary(sal_uInt32 field_mask, oslDirectoryItemImpl *pImpl)
++#else
+ 	inline bool is_stat_call_necessary(sal_uInt32 field_mask)
++#endif
+ 	{
+-		return ((field_mask & osl_FileStatus_Mask_Type) ||
++		return (
++/* on linux the dirent might have d_type */
++#ifdef _DIRENT_HAVE_D_TYPE
++				((field_mask & osl_FileStatus_Mask_Type) && (!pImpl->bHasType || pImpl->DType == DT_UNKNOWN)) ||
++#else
++				(field_mask & osl_FileStatus_Mask_Type) ||
++#endif
+ 				(field_mask & osl_FileStatus_Mask_Attributes) ||
+ 				(field_mask & osl_FileStatus_Mask_CreationTime) ||
+ 				(field_mask & osl_FileStatus_Mask_AccessTime) ||
+@@ -267,7 +284,11 @@ namespace /* private */
+     	if ((NULL == Item) || (NULL == pStat))
+         	return osl_File_E_INVAL;
+ 							
++#ifdef _DIRENT_HAVE_D_TYPE
++		file_path = rtl::OUString(reinterpret_cast<rtl_uString*>(((oslDirectoryItemImpl* ) Item)->ustrFilePath));
++#else
+ 		file_path = rtl::OUString(reinterpret_cast<rtl_uString*>(Item));    
++#endif
+ 
+ 		OSL_ASSERT(file_path.getLength() > 0);
+ 		
+@@ -298,10 +319,18 @@ oslFileError SAL_CALL osl_getFileStatus(
+ #else
+ 	struct stat file_stat;
+ #endif
+-	if (is_stat_call_necessary(uFieldMask) && (0 != osl::lstat(file_path, file_stat)))
++
++#ifdef _DIRENT_HAVE_D_TYPE
++	oslDirectoryItemImpl* pImpl = (oslDirectoryItemImpl*) Item;
++	bool bStatNeeded = is_stat_call_necessary(uFieldMask, pImpl);
++#else
++	bool bStatNeeded = is_stat_call_necessary(uFieldMask);
++#endif
++
++	if (bStatNeeded && (0 != osl::lstat(file_path, file_stat)))
+     	return oslTranslateFileError(OSL_FET_ERROR, errno);
+ 	
+-	if (is_stat_call_necessary(uFieldMask))
++	if (bStatNeeded)
+ 	{
+ 		// we set all these attributes because it's cheap				
+ 		set_file_type(file_stat, pStat);
+@@ -318,6 +347,40 @@ oslFileError SAL_CALL osl_getFileStatus(
+ 				return osl_error;
+ 		}
+     }
++#ifdef _DIRENT_HAVE_D_TYPE
++    else if (uFieldMask & osl_FileStatus_Mask_Type)
++    {
++		OSL_ASSERT(pImpl->bHasType);
++
++		switch(pImpl->DType)
++		{
++		case DT_LNK:
++			pStat->eType = osl_File_Type_Link;              
++			break;
++		case DT_DIR:
++			pStat->eType = osl_File_Type_Directory;       
++			break;
++		case DT_REG:
++			pStat->eType = osl_File_Type_Regular;
++			break;
++		case DT_FIFO:
++			pStat->eType = osl_File_Type_Fifo;
++			break;
++		case DT_SOCK:
++			pStat->eType = osl_File_Type_Socket;
++			break;
++		case DT_CHR:
++		case DT_BLK:
++			pStat->eType = osl_File_Type_Special;
++			break;
++		default:
++			OSL_ASSERT(0);
++			pStat->eType = osl_File_Type_Unknown;
++		}
++
++       pStat->uValidFields |= osl_FileStatus_Mask_Type;
++	}
++#endif
+ 			
+     if (uFieldMask & osl_FileStatus_Mask_FileURL)
+     {
+Index: sal/osl/unx/file_impl.hxx
+===================================================================
+--- /dev/null	2006-01-10 21:26:33.568399000 +0100
++++ sal/osl/unx/file_impl.hxx	2006-01-17 20:05:30.000000000 +0100
+@@ -0,0 +1,18 @@
++#ifdef __cplusplus
++extern "C" {
++#endif
++typedef struct
++{
++	rtl_uString* ustrFilePath;       /* holds native file name */
++	unsigned char DType;
++	bool bHasType;
++	sal_uInt32 RefCount;
++} oslDirectoryItemImpl;
++
++	oslDirectoryItemImpl* oslDirectoryItemImpl_CreateNew( rtl_uString* _ustrFilePath, bool _bHasDType, unsigned char _DType=0 );
++	void oslDirectoryItemImpl_Destroy( oslDirectoryItemImpl* pItem );
++	void oslDirectoryItemImpl_acquire( oslDirectoryItemImpl* pItem );
++	void oslDirectoryItemImpl_release( oslDirectoryItemImpl* pItem );
++#ifdef __cplusplus
++} /* extern "C" */
++#endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-solenv.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-solenv.diff
@@ -0,0 +1,246 @@
+Index: solenv/bin/compiler.wrap
+===================================================================
+RCS file: /cvs/tools/solenv/bin/compiler.wrap,v
+retrieving revision 1.1.1.1
+retrieving revision 1.1.1.1.1586.1
+diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.1586.1
+--- solenv/bin/compiler.wrap	20 Sep 2000 14:43:11 -0000	1.1.1.1
++++ solenv/bin/compiler.wrap	31 Aug 2007 10:00:01 -0000	1.1.1.1.1586.1
+@@ -1748,7 +1748,7 @@ CC-Compiler (WorkShop Compilers 4.2 30 O
+ 
+ cc-Compiler (WorkShop Compilers 4.2 30 Oct 1996 C 4.2, sdo/06.03.98)
+ 
+-/opt2/SUNWspro/bin/../SC4.2/bin/acomp -i security.c -o /tmp/acompAAAa003_y -r /tmp/acompBAAa003_y -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxsoli/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/solarserver/inc/Xp31 -I/solarserver/inc/stl -I/solarserver/inc -I/nw386/dev/s/solenv/res -I/usr/include -I/usr/dt/include -I/usr/openwin/include -I/nw386/dev/s//solenv/unxsoli/inc -I/nw386/dev/s//solver/382/unxsoli/inc -I/nw386/dev/s//solenv/inc -D_DEBUG -DSHAREDLIB -DSHARED -DVCL -DSO3 -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DNO_AUDIO -DSYSV -DSOLARIS -DINTEL -DX86 -DC42 -DUNX -DMTF -DMTF12 -DXPVERSION=3 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSUPD=364 -DUPDVER="SV364" -DOLD_CHAOS -DNEW_SOLAR -DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -DBUILD= -DRSCREVISION="" -Qy -D__SunOS_5_5_1 -D__SUNPRO_C=0x420 -D__SVR4 -D__unix -D__sun -D__i386 -D__BUILTIN_VA_ARG_INCR -Xa -Dunix -Dsun -Di386 -D__RESTRICT -I/opt2/SUNWspro/SC4.2/include/cc -B -2K -O2 "-g/opt2/SUNWspro/bin/../SC4.2/bin/cc -KPIC -temp=/tmp -xCC -c -o /tmp/make.14653.security.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxsoli/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/solarserver/inc/Xp31 -I/solarserver/inc/stl -I/solarserver/inc -I/nw386/dev/s/solenv/res -I/usr/include -I/usr/dt/include -I/usr/openwin/include -I/nw386/dev/s//solenv/unxsoli/inc -I/nw386/dev/s//solver/382/unxsoli/inc -I/nw386/dev/s//solenv/inc -O -D_DEBUG -DSHAREDLIB -DSHARED -DVCL -DSO3 -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DNO_AUDIO -DSYSV -DSOLARIS -DINTEL -DX86 -DC42 -DUNX -DMTF -DMTF12 -DXPVERSION='3' -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSUPD='364' -DUPDVER='"SV364"' -DOLD_CHAOS -DNEW_SOLAR -DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -DBUILD='' -DRSCREVISION='""' "
++/opt2/SUNWspro/bin/../SC4.2/bin/acomp -i security.c -o /tmp/acompAAAa003_y -r /tmp/acompBAAa003_y -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxsoli/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/solarserver/inc/Xp31 -I/solarserver/inc/stl -I/solarserver/inc -I/nw386/dev/s/solenv/res -I/usr/include -I/usr/dt/include -I/usr/openwin/include -I/nw386/dev/s//solenv/unxsoli/inc -I/nw386/dev/s//solver/382/unxsoli/inc -I/nw386/dev/s//solenv/inc -D_DEBUG -DSHAREDLIB -DSHARED -DVCL -DSO3 -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DSYSV -DSOLARIS -DINTEL -DX86 -DC42 -DUNX -DMTF -DMTF12 -DXPVERSION=3 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSUPD=364 -DUPDVER="SV364" -DOLD_CHAOS -DNEW_SOLAR -DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -DBUILD= -DRSCREVISION="" -Qy -D__SunOS_5_5_1 -D__SUNPRO_C=0x420 -D__SVR4 -D__unix -D__sun -D__i386 -D__BUILTIN_VA_ARG_INCR -Xa -Dunix -Dsun -Di386 -D__RESTRICT -I/opt2/SUNWspro/SC4.2/include/cc -B -2K -O2 "-g/opt2/SUNWspro/bin/../SC4.2/bin/cc -KPIC -temp=/tmp -xCC -c -o /tmp/make.14653.security.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxsoli/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/solarserver/inc/Xp31 -I/solarserver/inc/stl -I/solarserver/inc -I/nw386/dev/s/solenv/res -I/usr/include -I/usr/dt/include -I/usr/openwin/include -I/nw386/dev/s//solenv/unxsoli/inc -I/nw386/dev/s//solver/382/unxsoli/inc -I/nw386/dev/s//solenv/inc -O -D_DEBUG -DSHAREDLIB -DSHARED -DVCL -DSO3 -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DSYSV -DSOLARIS -DINTEL -DX86 -DC42 -DUNX -DMTF -DMTF12 -DXPVERSION='3' -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSUPD='364' -DUPDVER='"SV364"' -DOLD_CHAOS -DNEW_SOLAR -DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -DBUILD='' -DRSCREVISION='""' "
+ /opt2/SUNWspro/bin/../SC4.2/bin/cg386 -k -f /tmp/acompBAAa003_y /tmp/acompAAAa003_y /tmp/iroptCAAa003_y /tmp/iroptDAAa003_y
+ /opt2/SUNWspro/bin/../SC4.2/bin/codegen -i /tmp/iroptCAAa003_y -V /tmp/iroptDAAa003_y -T /tmp/codegEAAa003_y -T /tmp/codegFAAa003_y -XP -Xf -on ALIGN_LABELS ALIGN_ROUTINES FLOATING_POINT USE_SHORT_CALLS MULTIPLE_VAR_DEFS ARGS_IN_REGS_FOR_LOCALS OPTIMIZE_FP LOW_LEVEL_SCHEDULING CLEANUP_SPILLS CROSS_JUMP LOCAL_CSE_ITERATE LIVE_DEAD_ITERATE MEM_REFS_FROM_LOOP LOOP_REG_RENAME REG_ALLOC_ENHANCE GLOBAL_CSE BACK_SUBSTITUTE_EPILOG HIGH_LEVEL_SCHEDULING SSA LANDING_PADS USE_FRAME_POINTER -off POSTPONE_ARG_POPS OPTIMIZE_FP -e -Xo -XSA -XA -os SOL -efile @E -S /tmp/asGAAa003_y -s security.c
+ /opt2/SUNWspro/bin/../SC4.2/bin/fbe -o /tmp/make.14653.security.o -Qy /tmp/asGAAa003_y
+@@ -1756,13 +1756,13 @@ cc-Compiler (WorkShop Compilers 4.2 30 O
+ 
+ HPUX cc B.10.20.03
+ 
+-/opt/langtools/lbin/cpp.ansi diagnose.c /var/tmp/ctmAAAa21752 -D__hp9000s700 -D__hp9000s800 -D__hppa -D__hpux -D__unix -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc700hpuxhp9000/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc700hpuxhp9000/inc -I/solarserver/hpuxhp9000/inc -I/solarserver/hpuxhp9000/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DHPUX -DHP9000 -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_HPUX_SOURCE -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL -D_PA_RISC1_1  
++/opt/langtools/lbin/cpp.ansi diagnose.c /var/tmp/ctmAAAa21752 -D__hp9000s700 -D__hp9000s800 -D__hppa -D__hpux -D__unix -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc700hpuxhp9000/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc700hpuxhp9000/inc -I/solarserver/hpuxhp9000/inc -I/solarserver/hpuxhp9000/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DHPUX -DHP9000 -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_HPUX_SOURCE -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL -D_PA_RISC1_1  
+ 
+ 
+ HPUX aCC A.01.04
+ 
+ /opt/aCC/lbin/ctcom -piccode long -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc700hpuxhp9000/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl
+- -I/solarserver/364/salc700hpuxhp9000/inc -I/solarserver/hpuxhp9000/inc -I/solarserver/hpuxhp9000/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DHPUX -DHP9000 -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_HPUX_SOURCE -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL -inst auto -D __hppa -D __hpux -D __unix -D __hp9000s800 -D __STDCPP__ -D __hp9000s700 -D _PA_RISC1_1 -I /opt/aCC/include -I /opt/aCC/include/iostream -I /usr -I /usr/include
++ -I/solarserver/364/salc700hpuxhp9000/inc -I/solarserver/hpuxhp9000/inc -I/solarserver/hpuxhp9000/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DHPUX -DHP9000 -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_HPUX_SOURCE -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL -inst auto -D __hppa -D __hpux -D __unix -D __hp9000s800 -D __STDCPP__ -D __hp9000s700 -D _PA_RISC1_1 -I /opt/aCC/include -I /opt/aCC/include/iostream -I /usr -I /usr/include
+  -o /tmp/make.7940.gen.o -plusooption -Oq02,al,ag,cn,Lm,sz,Ic,vo,lc,Mf,Po,es,rs,sp,in,vc,Pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,Lu,dp,Fs,bp,wp! gen.cxx
+ 
+ 
+@@ -1803,82 +1803,82 @@ gcc version 2.7.2.l.3
+ gcc version 2.7-95q4 (SCO)
+ 
+ gcc -v -b elf -static -fsigned-char -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl
+- -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc     -O2 -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL       diagnose.c ; mv -f /tmp/make.$$.diagnose.o ../../salc272sco/obj/diagnose.o
++ -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc     -O2 -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL       diagnose.c ; mv -f /tmp/make.$$.diagnose.o ../../salc272sco/obj/diagnose.o
+ Reading specs from /usr/cygnus/progressive-95q4/H-i486-unknown-sco3.2v5.0.0/lib/gcc-lib/elf/2.7-95q4/specs
+ gcc version 2.7-95q4
+- /usr/cygnus/progressive-95q4/H-i486-unknown-sco3.2v5.0.0/lib/gcc-lib/elf/2.7-95q4/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Asystem(__unix) -Acpu(__i386) -Amachine(__i386) -D__OPTIMIZE__ -D_SCO_ELF -D__i386 -D_SCO_DS=1 -D__unix -D_M_I386 -D_M_XENIX -D_M_UNIX -D_SCO_C_DIALECT=1 -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -I/usr/include -D_M_BITFIELDS -D_M_INTERNAT -D_M_SYSV -D_M_SYS5 -D_M_SYSIII -D_M_WORDSWAP -Di386 -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL diagnose.c /tmp/cca003bI.i
++ /usr/cygnus/progressive-95q4/H-i486-unknown-sco3.2v5.0.0/lib/gcc-lib/elf/2.7-95q4/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Asystem(__unix) -Acpu(__i386) -Amachine(__i386) -D__OPTIMIZE__ -D_SCO_ELF -D__i386 -D_SCO_DS=1 -D__unix -D_M_I386 -D_M_XENIX -D_M_UNIX -D_SCO_C_DIALECT=1 -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -I/usr/include -D_M_BITFIELDS -D_M_INTERNAT -D_M_SYSV -D_M_SYS5 -D_M_SYSIII -D_M_WORDSWAP -Di386 -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL diagnose.c /tmp/cca003bI.i
+ GNU CPP version 2.7-95q4 (i386 System V Release 4)
+ 
+ g++ version 2.7-95q4 (SCO)
+ 
+- gcc -v -b elf -static -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.13277.gen.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -O2 -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL gen.cxx
++ gcc -v -b elf -static -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.13277.gen.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -O2 -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL gen.cxx
+ Reading specs from /usr/cygnus/progressive-95q4/H-i486-unknown-sco3.2v5.0.0/lib/gcc-lib/elf/2.7-95q4/specs
+ gcc version 2.7-95q4
+- /usr/cygnus/progressive-95q4/H-i486-unknown-sco3.2v5.0.0/lib/gcc-lib/elf/2.7-95q4/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Asystem(__unix) -Acpu(__i386) -Amachine(__i386) -D__OPTIMIZE__ -D_SCO_ELF -D__i386 -D_SCO_DS=1 -D__unix -D_M_I386 -D_M_XENIX -D_M_UNIX -D_SCO_C_DIALECT=1 -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -I/usr/include -D_M_BITFIELDS -D_M_INTERNAT -D_M_SYSV -D_M_SYS5 -D_M_SYSIII -D_M_WORDSWAP -Di386 -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL gen.cxx /tmp/cca003FU.ii
++ /usr/cygnus/progressive-95q4/H-i486-unknown-sco3.2v5.0.0/lib/gcc-lib/elf/2.7-95q4/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Asystem(__unix) -Acpu(__i386) -Amachine(__i386) -D__OPTIMIZE__ -D_SCO_ELF -D__i386 -D_SCO_DS=1 -D__unix -D_M_I386 -D_M_XENIX -D_M_UNIX -D_SCO_C_DIALECT=1 -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -I/usr/include -D_M_BITFIELDS -D_M_INTERNAT -D_M_SYSV -D_M_SYS5 -D_M_SYSIII -D_M_WORDSWAP -Di386 -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT -D_DEBUG -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL gen.cxx /tmp/cca003FU.ii
+ GNU CPP version 2.7-95q4 (i386 System V Release 4)
+ 
+ 
+ 
+ gcc version 2.7.2.1 (SCO)
+ 
+-gcc -v -melf -fpic -fsigned-char -c  -o /tmp/make.$$.socket.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc  -O2 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL          socket.c ; mv -f /tmp/make.$$.socket.o ../../salc272sco/so/socket.o
++gcc -v -melf -fpic -fsigned-char -c  -o /tmp/make.$$.socket.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc  -O2 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL          socket.c ; mv -f /tmp/make.$$.socket.o ../../salc272sco/so/socket.o
+ Reading specs from /usr/local/lib/gcc-lib/i486-sco3.2v5.0/2.7.2.1/specs
+ gcc version 2.7.2.1 
+-/usr/local/lib/gcc-lib/i486-sco3.2v5.0/2.7.2.1/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Di386 -D__i386__ -D__i386 -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT -D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_SCO_ELF -D__PIC__ -D__pic__ -D_SCO_C_DIALECT=1 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL socket.c /tmp/cca007EY.i
++/usr/local/lib/gcc-lib/i486-sco3.2v5.0/2.7.2.1/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Di386 -D__i386__ -D__i386 -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT -D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_SCO_ELF -D__PIC__ -D__pic__ -D_SCO_C_DIALECT=1 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL socket.c /tmp/cca007EY.i
+ 
+ 
+ gcc -lang-c++ version 2.7.2.1 (SCO)
+ 
+-gcc -v -melf -fpic -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.$$.genstrm.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc     -O2 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL genstrm.cxx
++gcc -v -melf -fpic -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.$$.genstrm.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc     -O2 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL genstrm.cxx
+ Reading specs from /usr/local/lib/gcc-lib/i486-sco3.2v5.0/2.7.2.1/specs
+ gcc version 2.7.2.1
+-      3  /usr/local/lib/gcc-lib/i486-sco3.2v5.0/2.7.2.1/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Di386 -D__i386__ -D__i386 -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT -D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_SCO_ELF -D__PIC__ -D__pic__ -D_SCO_C_DIALECT=1 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV  -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL genstrm.cxx /tmp/cca007DI.ii
++      3  /usr/local/lib/gcc-lib/i486-sco3.2v5.0/2.7.2.1/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272sco/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/solarserver/inc/stl -I/solarserver/364/salc272sco/inc -I/solarserver/scoosr5x86/inc -I/solarserver/scoosr5x86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Di386 -D__i386__ -D__i386 -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT -D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_SCO_ELF -D__PIC__ -D__pic__ -D_SCO_C_DIALECT=1 -D_DEBUG -DSHAREDLIB -DSHARED -DSYSV  -DSCO -DSCO_OSR5 -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DDBG_UTIL genstrm.cxx /tmp/cca007DI.ii
+ 
+ 
+ 
+ gcc version 2.7.2.1 NetBSD-x86
+ 
+-gcc  -static -fsigned-char -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include        -O2 -DNDEBUG -DPRODUCT -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DPRODUCT     diagnose.c
+- /usr/local/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2.1/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Dunix -Di386 -D__NetBSD__ -D__unix__ -D__i386__ -D__NetBSD__ -D__unix -D__i386 -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT diagnose.c /tmp/cc013212.i
++gcc  -static -fsigned-char -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include        -O2 -DNDEBUG -DPRODUCT -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DPRODUCT     diagnose.c
++ /usr/local/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2.1/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Dunix -Di386 -D__NetBSD__ -D__unix__ -D__i386__ -D__NetBSD__ -D__unix -D__i386 -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT diagnose.c /tmp/cc013212.i
+ 
+ 
+ g++ version 2.7.2.1 NetBSD-x86
+ 
+- gcc -v -fPIC -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.12906.genstrm.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -O2 -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT genstrm.cxx
++ gcc -v -fPIC -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.12906.genstrm.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -O2 -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT genstrm.cxx
+ Reading specs from /usr/local/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2.1/specs
+ gcc version 2.7.2.1
+- /usr/local/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2.1/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dunix -Di386 -D__NetBSD__ -D__unix__ -D__i386__ -D__NetBSD__ -D__unix -D__i386 -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT genstrm.cxx /tmp/cc012907.ii
++ /usr/local/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2.1/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsd.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsd.pro/inc -I/solarserver/netbsdx86/inc -I/solarserver/netbsdx86/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dunix -Di386 -D__NetBSD__ -D__unix__ -D__i386__ -D__NetBSD__ -D__unix -D__i386 -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DX86 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT genstrm.cxx /tmp/cc012907.ii
+ 
+ 
+ 
+ gcc version 2.7.2.1-pic-970903 NetBSD-arm32
+ 
+-gcc  -static -fsigned-char -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsdarm32.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include  -O2 -DNDEBUG -DPRODUCT -DNETBSD -DARM32 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DPRODUCT   diagnose.c
++gcc  -static -fsigned-char -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsdarm32.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include  -O2 -DNDEBUG -DPRODUCT -DNETBSD -DARM32 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DPRODUCT   diagnose.c
+ /usr/libexec/cpp -lang-c -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsdarm32.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl
+- -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Dunix -Darm32 -D__arm32__ -D__arm6__ -Driscbsd -D__NetBSD__ -D__unix__ -D__arm32__ -D__arm32__ -D__arm6__ -D__riscbsd__ -D__NetBSD__ -D__unix -D__arm32 -D__riscbsd -Asystem(unix) -Asystem(NetBSD) -Acpu(arm) -Amachine(arm) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DNETBSD -DARM32 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT diagnose.c /tmp/cc19319a.i
++ -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Dunix -Darm32 -D__arm32__ -D__arm6__ -Driscbsd -D__NetBSD__ -D__unix__ -D__arm32__ -D__arm32__ -D__arm6__ -D__riscbsd__ -D__NetBSD__ -D__unix -D__arm32 -D__riscbsd -Asystem(unix) -Asystem(NetBSD) -Acpu(arm) -Amachine(arm) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DNETBSD -DARM32 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT diagnose.c /tmp/cc19319a.i
+ 
+ 
+ g++ version 2.7.2.1-pic-970903 NetBSD-arm32
+ 
+ gcc -v -fPIC -fno-for-scope -fsigned-char -fno-strength-reduce -c -o /tmp/make.19501.gen.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsdarm32.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include
+  -O2 -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DARM32 -DC272 -DUNX
+- -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT
++ -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT
+  gen.cxx
+-/usr/libexec/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsdarm32.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dunix -Darm32 -D__arm32__ -D__arm6__ -Driscbsd -D__NetBSD__ -D__unix__ -D__arm32__ -D__arm32__ -D__arm6__ -D__riscbsd__ -D__NetBSD__ -D__unix -D__arm32 -D__riscbsd -Asystem(unix) -Asystem(NetBSD) -Acpu(arm) -Amachine(arm) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DARM32 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT gen.cxx /tmp/cc19502a.ii
++/usr/libexec/cpp -lang-c++ -v -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../salc272netbsdarm32.pro/inc -I../../../solar/inc -I../../../solar/sal/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/salc272netbsdarm32.pro/inc -I/solarserver/netbsdarm32/inc -I/solarserver/netbsdarm32/java/inc -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/X11R6/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dunix -Darm32 -D__arm32__ -D__arm6__ -Driscbsd -D__NetBSD__ -D__unix__ -D__arm32__ -D__arm32__ -D__arm6__ -D__riscbsd__ -D__NetBSD__ -D__unix -D__arm32 -D__riscbsd -Asystem(unix) -Asystem(NetBSD) -Acpu(arm) -Amachine(arm) -D__OPTIMIZE__ -DNDEBUG -DPRODUCT -DSHAREDLIB -DPIC -DSHARED -DNETBSD -DARM32 -DC272 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DGCC  -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER="SV364" -DPRODUCT gen.cxx /tmp/cc19502a.ii
+ 
+ 
+ AIX cc Version 3.1.4.0
+ 
+-cc -v -qnotwolink -qlanglvl=compat  -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../mtf12c272rs6000/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/mtf12c272rs6000/inc -I/solarserver/aixrs6000/inc -I/solarserver/aixrs6000/java/inc -I/solarserver/inc/Xp21 -I/solarserver/inc   -O -D_DEBUG -DSYSV -DAIX -DRS6000 -DC272 -DUNX -DMTF -DMTF12 -DXPVERSION=2 -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL     diagnose.c 
++cc -v -qnotwolink -qlanglvl=compat  -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../mtf12c272rs6000/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/mtf12c272rs6000/inc -I/solarserver/aixrs6000/inc -I/solarserver/aixrs6000/java/inc -I/solarserver/inc/Xp21 -I/solarserver/inc   -O -D_DEBUG -DSYSV -DAIX -DRS6000 -DC272 -DUNX -DMTF -DMTF12 -DXPVERSION=2  -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL     diagnose.c 
+ 
+-exec: /usr/lpp/xlC/exe/xlcentry(xlcentry,-D_AIX,-D_AIX32,-D_AIX41,-D_IBMR2,-D_POWER,-I.,-I../inc,-I../../inc,-I../../inc,-I../../unx/inc,-I../../mtf12c272rs6000/inc,-I../../../solar/inc,-I../../../solar/mow/res,-I../../../solar/res,-I/nw386/dev/s/solenv/res,-I/solarserver/inc/stl,-I/solarserver/364/mtf12c272rs6000/inc,-I/solarserver/aixrs6000/inc,-I/solarserver/aixrs6000/java/inc,-I/solarserver/inc/Xp21,-I/solarserver/inc,-D_DEBUG,-DSYSV,-DAIX,-DRS6000,-DC272,-DUNX,-DMTF,-DMTF12,-DXPVERSION=2,-DNO_AUDIO,-DSUPD=364,-DSOLAR_VERSION=3640,-DUPDVER="SV364",-DDBG_UTIL,-qtbtable=full,-qlanglvl=extended,-qnoro,-qnoroconst,-qlanglvl=compat,-O,-o/tmp/make.36066.diagnose.o,diagnose.c,/tmp/xlcHn4Tya,/tmp/xlcHn4Tyb,/dev/null,diagnose.lst,diagnose,/tmp/xlcHn4Tyc,NULL)
++exec: /usr/lpp/xlC/exe/xlcentry(xlcentry,-D_AIX,-D_AIX32,-D_AIX41,-D_IBMR2,-D_POWER,-I.,-I../inc,-I../../inc,-I../../inc,-I../../unx/inc,-I../../mtf12c272rs6000/inc,-I../../../solar/inc,-I../../../solar/mow/res,-I../../../solar/res,-I/nw386/dev/s/solenv/res,-I/solarserver/inc/stl,-I/solarserver/364/mtf12c272rs6000/inc,-I/solarserver/aixrs6000/inc,-I/solarserver/aixrs6000/java/inc,-I/solarserver/inc/Xp21,-I/solarserver/inc,-D_DEBUG,-DSYSV,-DAIX,-DRS6000,-DC272,-DUNX,-DMTF,-DMTF12,-DXPVERSION=2,,-DSUPD=364,-DSOLAR_VERSION=3640,-DUPDVER="SV364",-DDBG_UTIL,-qtbtable=full,-qlanglvl=extended,-qnoro,-qnoroconst,-qlanglvl=compat,-O,-o/tmp/make.36066.diagnose.o,diagnose.c,/tmp/xlcHn4Tya,/tmp/xlcHn4Tyb,/dev/null,diagnose.lst,diagnose,/tmp/xlcHn4Tyc,NULL)
+ 1506-261 (W) Suboption compat is not valid for option langlvl.
+ 
+ AIX xlC Version 3.1.4.0 (==cc)
+ 
+-xlC -v -qnotwolink -qlanglvl=compat  -+ -c   -o /tmp/make.$$.gen.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../mtf12c272rs6000/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/mtf12c272rs6000/inc -I/solarserver/aixrs6000/inc -I/solarserver/aixrs6000/java/inc -I/solarserver/inc/Xp21 -I/solarserver/inc   -O -D_DEBUG -DSYSV -DAIX -DRS6000 -DC272 -DUNX -DMTF -DMTF12 -DXPVERSION=2 -DNO_AUDIO -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL     gen.cxx ; mv -f /tmp/make.$$.gen.o ../../mtf12c272rs6000/obj/gen.o
++xlC -v -qnotwolink -qlanglvl=compat  -+ -c   -o /tmp/make.$$.gen.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../mtf12c272rs6000/inc -I../../../solar/inc -I../../../solar/mow/res -I../../../solar/res -I/nw386/dev/s/solenv/res -I/solarserver/inc/stl -I/solarserver/364/mtf12c272rs6000/inc -I/solarserver/aixrs6000/inc -I/solarserver/aixrs6000/java/inc -I/solarserver/inc/Xp21 -I/solarserver/inc   -O -D_DEBUG -DSYSV -DAIX -DRS6000 -DC272 -DUNX -DMTF -DMTF12 -DXPVERSION=2  -DSUPD=364 -DSOLAR_VERSION=3640 -DUPDVER='"SV364"' -DDBG_UTIL     gen.cxx ; mv -f /tmp/make.$$.gen.o ../../mtf12c272rs6000/obj/gen.o
+ 
+-exec: /usr/lpp/xlC/exe/xlCentry(xlCentry,-D_AIX,-D_AIX32,-D_AIX41,-D_IBMR2,-D_POWER,-I.,-I../inc,-I../../inc,-I../../inc,-I../../unx/inc,-I../../mtf12c272rs6000/inc,-I../../../solar/inc,-I../../../solar/mow/res,-I../../../solar/res,-I/nw386/dev/s/solenv/res,-I/solarserver/inc/stl,-I/solarserver/364/mtf12c272rs6000/inc,-I/solarserver/aixrs6000/inc,-I/solarserver/aixrs6000/java/inc,-I/solarserver/inc/Xp21,-I/solarserver/inc,-D_DEBUG,-DSYSV,-DAIX,-DRS6000,-DC272,-DUNX,-DMTF,-DMTF12,-DXPVERSION=2,-DNO_AUDIO,-DSUPD=364,-DSOLAR_VERSION=3640,-DUPDVER="SV364",-DDBG_UTIL,-qlanglvl=compat,-O,-o/tmp/make.36066.gen.o,gen.cxx,/tmp/xlcLi4U7a,/tmp/xlcLi4U7b,/dev/null,gen.lst,gen,/tmp/xlcLi4U7c,NULL)
++exec: /usr/lpp/xlC/exe/xlCentry(xlCentry,-D_AIX,-D_AIX32,-D_AIX41,-D_IBMR2,-D_POWER,-I.,-I../inc,-I../../inc,-I../../inc,-I../../unx/inc,-I../../mtf12c272rs6000/inc,-I../../../solar/inc,-I../../../solar/mow/res,-I../../../solar/res,-I/nw386/dev/s/solenv/res,-I/solarserver/inc/stl,-I/solarserver/364/mtf12c272rs6000/inc,-I/solarserver/aixrs6000/inc,-I/solarserver/aixrs6000/java/inc,-I/solarserver/inc/Xp21,-I/solarserver/inc,-D_DEBUG,-DSYSV,-DAIX,-DRS6000,-DC272,-DUNX,-DMTF,-DMTF12,-DXPVERSION=2,,-DSUPD=364,-DSOLAR_VERSION=3640,-DUPDVER="SV364",-DDBG_UTIL,-qlanglvl=compat,-O,-o/tmp/make.36066.gen.o,gen.cxx,/tmp/xlcLi4U7a,/tmp/xlcLi4U7b,/dev/null,gen.lst,gen,/tmp/xlcLi4U7c,NULL)
+ "../../inc/solar.h", line 288.60: 1540-101: (W) "n" may be used before being set.
+ exec: /usr/lpp/xlC/exe/xlCinline(xlCinline,-qlanglvl=compat,/tmp/xlcLi4U7a,/tmp/xlcLi4U7b,/tmp/xlcLi4U7c,NULL)
+ exec: /usr/lpp/xlC/exe/xlCcode(xlCcode,-qlanglvl=compat,/tmp/xlcLi4U7a,/tmp/xlcLi4U7b,/tmp/make.36066.gen.o,gen.lst,/tmp/xlcLi4U7c,NULL)
+@@ -1889,20 +1889,20 @@ unlink: /tmp/xlcLi4U7c
+ 
+ 
+ IRIX cc C700
+-cc -v -KPIC -Xcpluscomm -n32 -OPT:Olimit=20523 -woff 1009,1021,1107,1110,1155,1171,1183,1185,1188,1233,1234,1257,1440,1516,1681,1682 -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxirxm.pro/inc -I../../../solar/inc -I../../../solar//res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/home/usr/sdo/VCL364/unxirxm.pro/inc -I/nw386/dev/s/solver/364/unxirxm.pro/inc -I/nw386/dev/s/solenv/unxrxm/inc -I/nw386/dev/s/solenv/inc -I/nw386/dev/s/solenv/res -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/include -O -DNDEBUG -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS -DNO_AUDIO -DSUPD=364 -DUPDVER='SV364' -DPRODUCT -DBUILD=1406 diagnose.c
++cc -v -KPIC -Xcpluscomm -n32 -OPT:Olimit=20523 -woff 1009,1021,1107,1110,1155,1171,1183,1185,1188,1233,1234,1257,1440,1516,1681,1682 -c  -o /tmp/make.$$.diagnose.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxirxm.pro/inc -I../../../solar/inc -I../../../solar//res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/home/usr/sdo/VCL364/unxirxm.pro/inc -I/nw386/dev/s/solver/364/unxirxm.pro/inc -I/nw386/dev/s/solenv/unxrxm/inc -I/nw386/dev/s/solenv/inc -I/nw386/dev/s/solenv/res -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/include -O -DNDEBUG -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS  -DSUPD=364 -DUPDVER='SV364' -DPRODUCT -DBUILD=1406 diagnose.c
+ 
+-/usr/lib32/cmplrs/fec -G8 -DMIPSEB -D_MIPSEB -TENV:PIC -D_PIC -D__DSO__ -Ac=xansi -D__EXTENSIONS__ -D__INLINE_INTRINSICS -D__MATH_HAS_NO_SIDE_EFFECTS -DLANGUAGE_C -Dmips -Dunix -Dsgi -Dhost_mips -D_SGI_SOURCE -D_LONGLONG -D_SVR4_SOURCE -D_LANGUAGE_C -D_MODERN_C -D__sgi -D__host_mips -Amachine(mips) -D_SYSTYPE_SVR4 -D__unix -Asystem(unix) -D_COMPILER_VERSION=710 -m1 -show -Xcpluscomm -OPT:Olimit=20523 -woff1009,1021,1107,1110,1155,1171,1183,1185,1188,1233,1234,1257,1440,1516,1681,1682 -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxirxm.pro/inc -I../../../solar/inc -I../../../solar//res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/home/usr/sdo/VCL364/unxirxm.pro/inc -I/nw386/dev/s/solver/364/unxirxm.pro/inc -I/nw386/dev/s/solenv/unxrxm/inc -I/nw386/dev/s/solenv/inc -I/nw386/dev/s/solenv/res -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/include -O2 -DNDEBUG -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS -DNO_AUDIO -DSUPD=364 -DUPDVER=SV364 -DPRODUCT -DBUILD=1406 -D__mips=3 -D_MIPS_ISA=3 -D_ABIN32=2 -D_MIPS_SIM=_ABIN32 -D_MIPS_FPSET=32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 -TARG:abi=n32:isa=mips3 -I/usr/include -FE:cmdline=/tmp/ctmL.AAAa005-U -fB,/tmp/ctmB.BAAa005-U diagnose.c
++/usr/lib32/cmplrs/fec -G8 -DMIPSEB -D_MIPSEB -TENV:PIC -D_PIC -D__DSO__ -Ac=xansi -D__EXTENSIONS__ -D__INLINE_INTRINSICS -D__MATH_HAS_NO_SIDE_EFFECTS -DLANGUAGE_C -Dmips -Dunix -Dsgi -Dhost_mips -D_SGI_SOURCE -D_LONGLONG -D_SVR4_SOURCE -D_LANGUAGE_C -D_MODERN_C -D__sgi -D__host_mips -Amachine(mips) -D_SYSTYPE_SVR4 -D__unix -Asystem(unix) -D_COMPILER_VERSION=710 -m1 -show -Xcpluscomm -OPT:Olimit=20523 -woff1009,1021,1107,1110,1155,1171,1183,1185,1188,1233,1234,1257,1440,1516,1681,1682 -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxirxm.pro/inc -I../../../solar/inc -I../../../solar//res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/home/usr/sdo/VCL364/unxirxm.pro/inc -I/nw386/dev/s/solver/364/unxirxm.pro/inc -I/nw386/dev/s/solenv/unxrxm/inc -I/nw386/dev/s/solenv/inc -I/nw386/dev/s/solenv/res -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/include -O2 -DNDEBUG -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS  -DSUPD=364 -DUPDVER=SV364 -DPRODUCT -DBUILD=1406 -D__mips=3 -D_MIPS_ISA=3 -D_ABIN32=2 -D_MIPS_SIM=_ABIN32 -D_MIPS_FPSET=32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 -TARG:abi=n32:isa=mips3 -I/usr/include -FE:cmdline=/tmp/ctmL.AAAa005-U -fB,/tmp/ctmB.BAAa005-U diagnose.c
+ 
+ IRIX CC C710
+ 
+ CC -v -KPIC -n32 -OPT:Olimit=20523 -woff 1009,1021,1107,1110,1155,1171,1183,1185,1188,1233,1234,1257,1440,1516,1681,1682 -c -o /tmp/make.$$.gen.o -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxirxm.pro/inc -I../../../solar/inc -I../../../solar//res -I../../../solar/res -I/nw386/dev/s/solenv/res
+  -I. -I/home/usr/sdo/VCL364/unxirxm.pro/inc -I/nw386/dev/s/solver/364/unxirxm.pro/inc -I/nw386/dev/s/solenv/unxrxm/inc -I/nw386/dev/s/solenv/inc -I/nw386/dev/s/solenv/res -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/include -O -DNDEBUG
+- -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS -DNO_AUDIO -DSUPD=364 -DUPDVER='SV364' -DPRODUCT -DBUILD=1406 gen.cxx
++ -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS  -DSUPD=364 -DUPDVER='SV364' -DPRODUCT -DBUILD=1406 gen.cxx
+ 
+ /usr/lib32/cmplrs/fecc -G8 -DMIPSEB -D_MIPSEB -TENV:PIC -D_PIC -D__DSO__
+  -Ac=cplus -D_LANGUAGE_C_PLUS_PLUS=1 -D__EXTENSIONS__ -D_MODERN_C -D_SGI_SOURCE -D_LONGLONG -D_SVR4_SOURCE -Dmips -Dunix -Dsgi -Dhost_mips -D__sgi -D__host_mips
+  -Amachine(mips) -D_SYSTYPE_SVR4 -D__unix -Asystem(unix) -D_COMPILER_VERSION=710
+  -m1 -show -OPT:Olimit=20523 -woff1009,1021,1107,1110,1155,1171,1183,1185,1188,1233,1234,1257,1440,1516,1681,1682 -I. -I../inc -I../../inc -I../../inc -I../../unx/inc -I../../unxirxm.pro/inc -I../../../solar/inc -I../../../solar//res -I../../../solar/res -I/nw386/dev/s/solenv/res -I. -I/home/usr/sdo/VCL364/unxirxm.pro/inc -I/nw386/dev/s/solver/364/unxirxm.pro/inc -I/nw386/dev/s/solenv/unxrxm/inc -I/nw386/dev/s/solenv/inc -I/nw386/dev/s/solenv/res -I/solarserver/inc/Xp31 -I/solarserver/inc -I/usr/include -O2 -DNDEBUG -DPRODUCT -DSHAREDLIB -DNEW_SOLAR -DOLD_CHAOS -DSHARED -DNEW_SOLAR -DOLD_CHAOS -DSYSV -DIRIX -DMIPS -DC700 -DUNX -DVCL
+- -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS -DNO_AUDIO -DSUPD=364 -DUPDVER=SV364 -DPRODUCT -DBUILD=1406 -D__mips=3 -D_MIPS_ISA=3 -D_ABIN32=2 -D_MIPS_SIM=_ABIN32 -D_MIPS_FPSET=32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 -TARG:abi=n32:isa=mips3 -I/usr/include/CC -I/usr/include -FE:cmdline=/tmp/ctmL.AAAa005WP -ii/tmp/ii_files/make.22552.gen.ii
++ -DSO3 -D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -D_PTHREADS  -DSUPD=364 -DUPDVER=SV364 -DPRODUCT -DBUILD=1406 -D__mips=3 -D_MIPS_ISA=3 -D_ABIN32=2 -D_MIPS_SIM=_ABIN32 -D_MIPS_FPSET=32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 -TARG:abi=n32:isa=mips3 -I/usr/include/CC -I/usr/include -FE:cmdline=/tmp/ctmL.AAAa005WP -ii/tmp/ii_files/make.22552.gen.ii
+  -fB,/tmp/ctmB.BAAa005WP gen.cxx
+ 
+Index: solenv/inc/libs.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/libs.mk,v
+retrieving revision 1.119
+retrieving revision 1.117.36.3
+diff -u -p -u -p -r1.119 -r1.117.36.3
+--- solenv/inc/libs.mk	23 Oct 2007 14:40:38 -0000	1.119
++++ solenv/inc/libs.mk	30 Oct 2007 15:19:17 -0000	1.117.36.3
+@@ -129,7 +129,6 @@ LDAPSDKLIB=-lldap50
+ .ENDIF			# "$(GUI)$(COM)"=="WNTGCC"
+ ICOLIB=-lico$(OFFICEUPD)$(DLLPOSTFIX)
+ VCLLIB=-lvcl$(OFFICEUPD)$(DLLPOSTFIX)
+-SNDFILELIB*=-lsndfile
+ BASEGFXLIB=-lbasegfx$(OFFICEUPD)$(DLLPOSTFIX)
+ BASEBMPLIB=-lbasebmp$(OFFICEUPD)$(DLLPOSTFIX)
+ CANVASTOOLSLIB=-lcanvastools$(OFFICEUPD)$(DLLPOSTFIX)
+Index: solenv/inc/unxbsda.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxbsda.mk,v
+retrieving revision 1.7
+retrieving revision 1.7.178.1
+diff -u -p -u -p -r1.7 -r1.7.178.1
+--- solenv/inc/unxbsda.mk	9 Mar 2007 09:06:57 -0000	1.7
++++ solenv/inc/unxbsda.mk	31 Aug 2007 10:00:02 -0000	1.7.178.1
+@@ -44,7 +44,7 @@ CC=				gcc -c
+ CXX=			g++ -c
+ CDEFS+=			-D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE
+ CDEFS+=			-D_REENTRANT 		# -D_PTHREADS -DPOSIX_PTHREAD_SEMANTICS
+-CDEFS+= 		-DNO_AUDIO -DPRINTER_DUMMY
++CDEFS+= 		-DPRINTER_DUMMY
+ CFLAGSCC=		-fsigned-char $(ARCH_FLAGS)
+ CFLAGSCXX=		-fsigned-char $(ARCH_FLAGS)
+ PICSWITCH:=-fPIC
+Index: solenv/inc/unxhpgr.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxhpgr.mk,v
+retrieving revision 1.9
+retrieving revision 1.9.178.1
+diff -u -p -u -p -r1.9 -r1.9.178.1
+--- solenv/inc/unxhpgr.mk	9 Mar 2007 09:08:07 -0000	1.9
++++ solenv/inc/unxhpgr.mk	31 Aug 2007 10:00:02 -0000	1.9.178.1
+@@ -39,7 +39,7 @@ ASM=
+ AFLAGS=
+ 
+ CDEFS+=-D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE
+-CDEFS+=-DNO_AUDIO -DSYSV -D_POSIX_PTHREAD_SEMANTICS  -D_HPUX_SOURCE -DRWSTD_MULTI_THREAD -D_REENTRANT -D__HPACC_NOEH -D__STL_NO_EXCEPTIONS
++CDEFS+=-DSYSV -D_POSIX_PTHREAD_SEMANTICS  -D_HPUX_SOURCE -DRWSTD_MULTI_THREAD -D_REENTRANT -D__HPACC_NOEH -D__STL_NO_EXCEPTIONS
+  #CDEFS+= -D__hppa__
+ 
+ # obernervige Warnungen abschalten
+Index: solenv/inc/unxhpxr.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxhpxr.mk,v
+retrieving revision 1.7
+retrieving revision 1.7.178.1
+diff -u -p -u -p -r1.7 -r1.7.178.1
+--- solenv/inc/unxhpxr.mk	9 Mar 2007 09:08:19 -0000	1.7
++++ solenv/inc/unxhpxr.mk	31 Aug 2007 10:00:02 -0000	1.7.178.1
+@@ -37,7 +37,7 @@
+ ASM=
+ AFLAGS=
+ 
+-CDEFS+=-D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DNO_AUDIO -DSYSV -D_POSIX_PTHREAD_SEMANTICS  -D_HPUX_SOURCE -DRWSTD_MULTI_THREAD -D_REENTRANT -D__HPACC_NOEH -D__STL_NO_EXCEPTIONS
++CDEFS+=-D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DSYSV -D_POSIX_PTHREAD_SEMANTICS  -D_HPUX_SOURCE -DRWSTD_MULTI_THREAD -D_REENTRANT -D__HPACC_NOEH -D__STL_NO_EXCEPTIONS
+ 
+ # kann c++ was c braucht??
+ 
+Index: solenv/inc/unxmacx.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxmacx.mk,v
+retrieving revision 1.21
+retrieving revision 1.20.36.2
+diff -u -p -u -p -r1.21 -r1.20.36.2
+--- solenv/inc/unxmacx.mk	9 Oct 2007 15:05:16 -0000	1.21
++++ solenv/inc/unxmacx.mk	16 Oct 2007 08:33:09 -0000	1.20.36.2
+@@ -153,9 +153,6 @@
+     autodoc \
+     extensions
+ 
+-# Currently, there is no nas support for OS X...
+-CDEFS+= -DNO_AUDIO
+-
+ #special settings form environment
+ CDEFS+=$(EXTRA_CDEFS)
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xulrunner-1.9.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xulrunner-1.9.diff
@@ -0,0 +1,93 @@
+--- config_office/configure.in.orig	2008-01-31 05:45:01.000000000 -0600
++++ config_office/configure.in	2008-03-29 14:19:38.000000000 -0500
+@@ -466,7 +466,8 @@
+                           components cannot be built against a contemporary
+                           mozilla. The flavour used can be specified by
+                           --with-system-mozilla=<flavour>. Supported are:
+-                          xulrunner (default), firefox, seamonkey, mozilla
++                          libxul (default), xulrunner, firefox, seamonkey,
++                          mozilla
+ ], WITH_SYSTEM_MOZILLA=$withval, WITH_SYSTEM_MOZILLA=no)
+ AC_ARG_WITH(stlport,
+ [  --with-stlport         The location that STLport is installed in. The STL
+@@ -3781,7 +3782,9 @@
+     AC_MSG_RESULT([external])
+     SYSTEM_MOZILLA=YES
+     AC_MSG_CHECKING([which Mozilla flavour to use])
+-    if test -n "$with_system_mozilla" && test "$with_system_mozilla" = "xulrunner"; then
++    if test -n "$with_system_mozilla" && test "$with_system_mozilla" = "libxul"; then
++      MOZ_FLAVOUR=libxul
++    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "xulrunner"; then
+       MOZ_FLAVOUR=xulrunner
+     elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "seamonkey"; then
+       MOZ_FLAVOUR=seamonkey
+@@ -3790,12 +3793,18 @@
+     elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "mozilla"; then
+       MOZ_FLAVOUR=mozilla
+     else
+-      MOZ_FLAVOUR=xulrunner
++      MOZ_FLAVOUR=libxul
+     fi
+     tmp=`echo $MOZ_FLAVOUR | $PERL -e 'print ucfirst(<STDIN>);'`
+     AC_MSG_RESULT($tmp)
+ 
+-    PKG_CHECK_MODULES( MOZILLAXPCOM, $MOZ_FLAVOUR-xpcom )
++    PKG_CHECK_MODULES( MOZ_NSS, nss, STANDALONENSS="TRUE", STANDALONENSS="" )
++    if test -z "$STANDALONENSS"; then
++        PKG_CHECK_MODULES( MOZ_NSS, $MOZ_FLAVOUR-nss )
++    else
++        NSS_LIB="-L`$PKG_CONFIG --variable=libdir nss`"
++        AC_SUBST(NSS_LIB)
++    fi
+ 
+     if $PKG_CONFIG --exists nspr ; then
+       PKG_CHECK_MODULES( MOZ_NSPR, nspr )
+@@ -3805,12 +3814,20 @@
+       PKG_CHECK_MODULES( MOZ_NSPR, $MOZ_FLAVOUR-nspr )
+     fi
+ 
+-    PKG_CHECK_MODULES( MOZ_NSS, nss, STANDALONENSS="TRUE", STANDALONENSS="" )
+-    if test -z "$STANDALONENSS"; then
+-        PKG_CHECK_MODULES( MOZ_NSS, $MOZ_FLAVOUR-nss )
++    if $PKG_CONFIG --exists libxul ; then
++      PKG_CHECK_MODULES( MOZILLAXPCOM, libxul )
++      MOZ_INC=`$PKG_CONFIG --variable=includedir libxul`
++      MOZ_LIB=`$PKG_CONFIG --variable=libdir libxul`
++      if ! test -e "$MOZ_LIB/libxul.so"; then
++         MOZ_LIB=`$PKG_CONFIG --variable=sdkdir libxul`
++         if test -e "$MOZ_LIB/sdk/lib/libxul.so"; then
++            MOZ_LIB="$MOZ_LIB/sdk/lib"
++         fi
++      fi
+     else
+-        NSS_LIB="-L`$PKG_CONFIG --variable=libdir nss`"
+-        AC_SUBST(NSS_LIB)
++      PKG_CHECK_MODULES( MOZILLAXPCOM, $MOZ_FLAVOUR-xpcom )
++      MOZ_INC=`$PKG_CONFIG --variable=includedir $MOZ_FLAVOUR-xpcom`
++      MOZ_LIB=`$PKG_CONFIG --variable=libdir $MOZ_FLAVOUR-xpcom`
+     fi
+ 
+     save_CPPFLAGS="$CPPFLAGS"
+@@ -3826,8 +3843,6 @@
+     CPPFLAGS="$save_CPPFLAGS"
+     LIBS="$save_LIBS"
+ 
+-    MOZ_INC=`$PKG_CONFIG --variable=includedir $MOZ_FLAVOUR-xpcom`
+-    MOZ_LIB=`$PKG_CONFIG --variable=libdir $MOZ_FLAVOUR-xpcom`
+     MOZ_LIB_XPCOM=$MOZILLAXPCOM_LIBS
+     if test "$WITH_LDAP" != "NO" && test "$WITH_OPENLDAP" != "YES"; then
+       AC_MSG_CHECKING([whether $tmp was compiled with --enable-ldap])
+@@ -3840,6 +3855,13 @@
+ Please recompile $tmp with --enable-ldap or use --with-openldap.])
+       fi
+     fi
++
++    #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges
++    #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul
++    if test "$MOZ_FLAVOUR" == "libxul"; then
++        MOZ_FLAVOUR="mozilla"
++    fi
++
+ elif test "$enable_mozilla" = "no"; then
+     AC_MSG_RESULT([none])
+     WITH_MOZILLA=NO
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/debian-opt.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/debian-opt.diff
@@ -0,0 +1,22 @@
+--- solenv/inc/unxlngi6.mk~	2006-09-21 14:19:05.398388000 +0200
++++ solenv/inc/unxlngi6.mk	2006-09-21 14:48:34.028388000 +0200
+@@ -118,7 +118,7 @@
+ CFLAGSDBGUTIL=
+ # Compiler flags for enabling optimizations
+ .IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
++CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
+ .ELSE 	# "$(PRODUCT)"!=""
+ CFLAGSOPT=   							# no optimizing for non products
+ .ENDIF	# "$(PRODUCT)"!=""
+--- solenv/inc/unxlngs.mk~	2006-09-21 14:19:04.108388000 +0200
++++ solenv/inc/unxlngs.mk	2006-09-21 14:49:04.728388000 +0200
+@@ -110,7 +110,7 @@
+ CFLAGSDBGUTIL=
+ # Compiler flags for enabling optimizations
+ .IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
++CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
+ .ELSE 	# "$(PRODUCT)"!=""
+ CFLAGSOPT=   							# no optimizing for non products
+ .ENDIF	# "$(PRODUCT)"!=""
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-serve-dav-uri.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-serve-dav-uri.diff
@@ -0,0 +1,313 @@
+diff --git officecfg/registry/data/org/openoffice/ucb/Configuration.xcu officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
+index 4c5f119..e553404 100644
+--- officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
++++ officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
+@@ -150,18 +150,62 @@
+                 <value/>
+               </prop>
+             </node>
+-   		    <node oor:name="Provider12" oor:op="replace">
+-			  <prop oor:name="ServiceName">
+-			    <value>com.sun.star.ucb.WebDAVContentProvider</value>
+-			  </prop>
+-			  <prop oor:name="URLTemplate">
+-				<value>https</value>
+-			  </prop>
+-			  <prop oor:name="Arguments">
+-			    <value/>
+-			  </prop>
+-			</node>
+-		  </node>
++	    <node oor:name="Provider12" oor:op="replace">
++		<prop oor:name="ServiceName">
++		    <value>com.sun.star.ucb.WebDAVContentProvider</value>
++		</prop>
++		<prop oor:name="URLTemplate">
++		    <value>https</value>
++		</prop>
++		<prop oor:name="Arguments">
++		    <value/>
++		</prop>
++	    </node>
++	    <node oor:name="Provider13" oor:op="replace">
++		<prop oor:name="ServiceName">
++		    <value>com.sun.star.ucb.WebDAVContentProvider</value>
++		</prop>
++		<prop oor:name="URLTemplate">
++		    <value>dav</value>
++		</prop>
++		<prop oor:name="Arguments">
++		    <value/>
++		</prop>
++	    </node>
++	    <node oor:name="Provider14" oor:op="replace">
++		<prop oor:name="ServiceName">
++		    <value>com.sun.star.ucb.WebDAVContentProvider</value>
++		</prop>
++		<prop oor:name="URLTemplate">
++		    <value>davs</value>
++		</prop>
++		<prop oor:name="Arguments">
++		    <value/>
++		</prop>
++	    </node>
++	    <node oor:name="Provider15" oor:op="replace">
++		<prop oor:name="ServiceName">
++		    <value>com.sun.star.ucb.WebDAVContentProvider</value>
++		</prop>
++		<prop oor:name="URLTemplate">
++		    <value>webdav</value>
++		</prop>
++		<prop oor:name="Arguments">
++		    <value/>
++		</prop>
++	    </node>
++	    <node oor:name="Provider16" oor:op="replace">
++		<prop oor:name="ServiceName">
++		    <value>com.sun.star.ucb.WebDAVContentProvider</value>
++		</prop>
++		<prop oor:name="URLTemplate">
++		    <value>webdavs</value>
++		</prop>
++		<prop oor:name="Arguments">
++		    <value/>
++		</prop>
++	    </node>
++        </node>
+         </node>
+       </node>
+     </node>
+diff --git tools/inc/tools/urlobj.hxx tools/inc/tools/urlobj.hxx
+index 199079f..477c1ec 100644
+--- tools/inc/tools/urlobj.hxx
++++ tools/inc/tools/urlobj.hxx
+@@ -163,9 +163,13 @@ enum INetProtocol
+     INET_PROT_VND_SUN_STAR_EXPAND = 29,
+     INET_PROT_VND_SUN_STAR_TDOC = 30,
+     INET_PROT_SMB = 31,
+-    INET_PROT_GENERIC = 32,
+-    INET_PROT_GENERIC_HIERARCHICAL = 33,
+-    INET_PROT_END = 34
++    INET_PROT_DAV = 32,
++    INET_PROT_DAVS = 33,
++    INET_PROT_WEBDAV = 34,
++    INET_PROT_WEBDAVS = 35,
++    INET_PROT_GENERIC = 36,
++    INET_PROT_GENERIC_HIERARCHICAL = 37,
++    INET_PROT_END = 38
+ };
+ 
+ //============================================================================
+diff --git tools/source/fsys/urlobj.cxx tools/source/fsys/urlobj.cxx
+index 431bfb5..b5a51f9 100644
+--- tools/source/fsys/urlobj.cxx
++++ tools/source/fsys/urlobj.cxx
+@@ -464,6 +464,14 @@ static INetURLObject::SchemeInfo const aSchemeInfoMap[INET_PROT_END]
+           false, false, false, true, false },
+         { "smb", "smb://", 139, true, true, false, true, true, true, true,
+           true },
++        { "dav", "dav://", 80, true, false, false, false, true, true, true,
++          true },
++        { "davs", "davs://", 443, true, false, false, false, true, true,
++          true, true },
++        { "webdav", "webdav://", 80, true, false, false, false, true, true, true,
++          true },
++        { "webdavs", "webdavs://", 443, true, false, false, false, true, true,
++          true, true },
+         { "", "", 0, false, false, false, false, false, false, false, false },
+         { "", "", 0, false, false, false, false, false, false, true, false }
+       };
+@@ -2113,6 +2121,8 @@ INetURLObject::getPrefix(sal_Unicode const *& rBegin,
+ 			  PrefixInfo::INTERNAL },
+ 			{ "cid:", 0, INET_PROT_CID, PrefixInfo::OFFICIAL },
+ 			{ "data:", 0, INET_PROT_DATA, PrefixInfo::OFFICIAL },
++			{ "dav:", 0, INET_PROT_DAV, PrefixInfo::OFFICIAL },
++			{ "davs:", 0, INET_PROT_DAVS, PrefixInfo::OFFICIAL },
+ 			{ "db:", "staroffice.db:", INET_PROT_DB, PrefixInfo::INTERNAL },
+ 			{ "file:", 0, INET_PROT_FILE, PrefixInfo::OFFICIAL },
+ 			{ "ftp:", 0, INET_PROT_FTP, PrefixInfo::OFFICIAL },
+@@ -2194,6 +2204,8 @@ INetURLObject::getPrefix(sal_Unicode const *& rBegin,
+ 			  PrefixInfo::OFFICIAL },
+ 			{ "vnd.sun.star.wfs:", 0, INET_PROT_VND_SUN_STAR_WFS,
+ 			  PrefixInfo::OFFICIAL },
++			{ "webdav:", 0, INET_PROT_WEBDAV, PrefixInfo::OFFICIAL },
++			{ "webdavs:", 0, INET_PROT_WEBDAVS, PrefixInfo::OFFICIAL },
+ 			{ "wfs:", "vnd.sun.star.wfs:", INET_PROT_VND_SUN_STAR_WFS,
+ 			  PrefixInfo::ALIAS } };
+ 	PrefixInfo const * pFirst = aMap + 1;
+@@ -2986,6 +2998,10 @@ bool INetURLObject::parsePath(INetProtocol eScheme,
+ 		case INET_PROT_VND_SUN_STAR_WEBDAV:
+ 		case INET_PROT_HTTPS:
+         case INET_PROT_SMB:
++        case INET_PROT_DAV:
++        case INET_PROT_DAVS:
++        case INET_PROT_WEBDAV:
++        case INET_PROT_WEBDAVS:
+ 			if (pPos < pEnd && *pPos != '/')
+ 				return false;
+ 			while (pPos < pEnd && *pPos != nQueryDelimiter
+diff --git ucb/source/ucp/webdav/webdavcontent.cxx ucb/source/ucp/webdav/webdavcontent.cxx
+index 16223f6..6fae616 100644
+--- ucb/source/ucp/webdav/webdavcontent.cxx
++++ ucb/source/ucp/webdav/webdavcontent.cxx
+@@ -2814,11 +2814,23 @@ void Content::transfer(
+         //
+         const rtl::OUString aScheme = sourceURI.GetScheme().toAsciiLowerCase();
+         if ( aScheme.equalsAsciiL(
+-                RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) )
++                RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) ||
++             aScheme.equalsAsciiL(
++                RTL_CONSTASCII_STRINGPARAM( DAV_URL_SCHEME ) ) ||
++             aScheme.equalsAsciiL(
++                RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAV_URL_SCHEME ) ) )
+         {
+             sourceURI.SetScheme(
+                 rtl::OUString::createFromAscii( HTTP_URL_SCHEME ) );
+         }
++        else if ( aScheme.equalsAsciiL(
++                     RTL_CONSTASCII_STRINGPARAM( DAVS_URL_SCHEME ) ) ||
++                  aScheme.equalsAsciiL(
++                     RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAVS_URL_SCHEME ) ) )
++        {
++            sourceURI.SetScheme(
++                rtl::OUString::createFromAscii( HTTPS_URL_SCHEME ) );
++        }
+         else
+         {
+             if ( !aScheme.equalsAsciiL(
+@@ -2838,9 +2850,23 @@ void Content::transfer(
+         }
+ 
+         if ( targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
+-                 RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) )
++                 RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) ||
++             targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
++                 RTL_CONSTASCII_STRINGPARAM( DAV_URL_SCHEME ) ) ||
++             targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
++                 RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAV_URL_SCHEME ) ) )
++        {
+             targetURI.SetScheme(
+                 rtl::OUString::createFromAscii( HTTP_URL_SCHEME ) );
++        }
++        else if ( targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
++                      RTL_CONSTASCII_STRINGPARAM( DAVS_URL_SCHEME ) ) ||
++                  targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
++                      RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAVS_URL_SCHEME ) ) )
++        {
++            targetURI.SetScheme(
++                rtl::OUString::createFromAscii( HTTPS_URL_SCHEME ) );
++        }
+ 	
+         // @@@ This implementation of 'transfer' only works
+         //     if the source and target are located at same host.
+diff --git ucb/source/ucp/webdav/webdavprovider.cxx ucb/source/ucp/webdav/webdavprovider.cxx
+index 9790870..6b219ef 100644
+--- ucb/source/ucp/webdav/webdavprovider.cxx
++++ ucb/source/ucp/webdav/webdavprovider.cxx
+@@ -42,6 +42,8 @@
+ 
+  *************************************************************************/
+ 
++#include <string.h>
++
+ #ifndef _UCBHELPER_CONTENTIDENTIFIER_HXX
+ #include <ucbhelper/contentidentifier.hxx>
+ #endif
+@@ -146,10 +146,17 @@ ContentProvider::queryContent(
+          !aScheme.equalsAsciiL(
+             RTL_CONSTASCII_STRINGPARAM( HTTPS_URL_SCHEME ) ) &&
+          !aScheme.equalsAsciiL(
+-            RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) )
+-         &&
++            RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) &&
+          !aScheme.equalsAsciiL(
+-            RTL_CONSTASCII_STRINGPARAM( FTP_URL_SCHEME ) )
++            RTL_CONSTASCII_STRINGPARAM( FTP_URL_SCHEME ) ) &&
++         !aScheme.equalsAsciiL(
++            RTL_CONSTASCII_STRINGPARAM( DAV_URL_SCHEME ) ) &&
++         !aScheme.equalsAsciiL(
++            RTL_CONSTASCII_STRINGPARAM( DAVS_URL_SCHEME ) ) &&
++         !aScheme.equalsAsciiL(
++            RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAV_URL_SCHEME ) ) &&
++         !aScheme.equalsAsciiL(
++            RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAVS_URL_SCHEME ) )
+        )
+         throw ucb::IllegalIdentifierException();
+ 
+@@ -168,14 +175,27 @@ ContentProvider::queryContent(
+     uno::Reference< ucb::XContentIdentifier > xCanonicId;
+ 
+     bool bNewId = false;
+-    if ( aScheme.equalsAsciiL(
+-            RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) )
++    struct {
++        const char *from;
++        const char *to;
++    } const *pScheme, pReplace[] = {
++        { WEBDAV_URL_SCHEME, HTTP_URL_SCHEME },
++        { DAV_URL_SCHEME, HTTP_URL_SCHEME },
++        { DAVS_URL_SCHEME, HTTPS_URL_SCHEME },
++        { PLAIN_WEBDAV_URL_SCHEME, HTTP_URL_SCHEME },
++        { PLAIN_WEBDAVS_URL_SCHEME, HTTPS_URL_SCHEME },
++        { NULL, NULL }
++    };
++    for ( pScheme = pReplace; pScheme->from ; ++pScheme )
+     {
+-        aURL = aURL.replaceAt( 0,
+-                               WEBDAV_URL_SCHEME_LENGTH,
+-                               rtl::OUString::createFromAscii(
+-                                                    HTTP_URL_SCHEME ) );
+-        bNewId = true;
++        if ( aScheme.equalsAscii( pScheme->from ) )
++        {
++            aURL = aURL.replaceAt( 0,
++                    strlen( pScheme->from ),
++                    rtl::OUString::createFromAscii( pScheme->to ) );
++            bNewId = true;
++            break;
++        }
+     }
+ 
+     sal_Int32 nPos = aURL.lastIndexOf( '/' );
+diff --git ucb/source/ucp/webdav/webdavprovider.hxx ucb/source/ucp/webdav/webdavprovider.hxx
+index 7068b41..f6d7228 100644
+--- ucb/source/ucp/webdav/webdavprovider.hxx
++++ ucb/source/ucp/webdav/webdavprovider.hxx
+@@ -71,16 +71,19 @@ namespace webdav_ucp {
+ // contents ) according to this scheme.
+ #define WEBDAV_URL_SCHEME \
+ 				"vnd.sun.star.webdav"
+-#define WEBDAV_URL_SCHEME_LENGTH	19
+ 
+ #define HTTP_URL_SCHEME 		"http"
+-#define HTTP_URL_SCHEME_LENGTH	4
+ 
+ #define HTTPS_URL_SCHEME 		"https"
+-#define HTTPS_URL_SCHEME_LENGTH	5
+ 
+ #define FTP_URL_SCHEME "ftp"
+ 
++#define DAV_URL_SCHEME "dav"
++#define DAVS_URL_SCHEME "davs"
++
++#define PLAIN_WEBDAV_URL_SCHEME "webdav"
++#define PLAIN_WEBDAVS_URL_SCHEME "webdavs"
++
+ #define HTTP_CONTENT_TYPE \
+ 				"application/" HTTP_URL_SCHEME "-content"
+ 
+diff --git unotools/source/ucbhelper/ucblockbytes.cxx unotools/source/ucbhelper/ucblockbytes.cxx
+index 7cda473..ab428c2 100644
+--- unotools/source/ucbhelper/ucblockbytes.cxx
++++ unotools/source/ucbhelper/ucblockbytes.cxx
+@@ -1026,6 +1026,10 @@ static sal_Bool UCBOpenContentSync(
+     if( ! aScheme.equalsIgnoreAsciiCaseAscii("http")                &&
+ 		! aScheme.equalsIgnoreAsciiCaseAscii("https")                &&
+         ! aScheme.equalsIgnoreAsciiCaseAscii("vnd.sun.star.webdav") &&
++        ! aScheme.equalsIgnoreAsciiCaseAscii("dav") &&
++        ! aScheme.equalsIgnoreAsciiCaseAscii("davs") &&
++        ! aScheme.equalsIgnoreAsciiCaseAscii("webdav") &&
++        ! aScheme.equalsIgnoreAsciiCaseAscii("webdavs") &&
+         ! aScheme.equalsIgnoreAsciiCaseAscii("ftp"))
+ 		return _UCBOpenContentSync(
+ 			xLockBytes,xContent,rArg,xSink,xInteract,xProgress,xHandler);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mdbtools-makefile-mk.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mdbtools-makefile-mk.diff
@@ -0,0 +1,108 @@
+--- /dev/null	2004-08-25 23:04:59.000000000 +0530
++++ mdbtools/makefile.mk	2005-08-04 16:45:48.097693501 +0530
+@@ -0,0 +1,105 @@
++#*************************************************************************
++#
++#   $RCSfile$
++#
++#   $Revision: 4218 $
++#
++#   last change: $Author: rengelhard $ $Date: 2005-08-16 07:43:02 -0500 (Tue, 16 Aug 2005) $
++#
++#   The Contents of this file are made available subject to the terms of
++#   either of the following licenses
++#
++#          - GNU Lesser General Public License Version 2.1
++#          - Sun Industry Standards Source License Version 1.1
++#
++#   Sun Microsystems Inc., October, 2000
++#
++#   GNU Lesser General Public License Version 2.1
++#   =============================================
++#   Copyright 2000 by Sun Microsystems, Inc.
++#   901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#   This library is free software; you can redistribute it and/or
++#   modify it under the terms of the GNU Lesser General Public
++#   License version 2.1, as published by the Free Software Foundation.
++#
++#   This library is distributed in the hope that it will be useful,
++#   but WITHOUT ANY WARRANTY; without even the implied warranty of
++#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#   Lesser General Public License for more details.
++#
++#   You should have received a copy of the GNU Lesser General Public
++#   License along with this library; if not, write to the Free Software
++#   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#   MA  02111-1307  USA
++#
++#
++#   Sun Industry Standards Source License Version 1.1
++#   =================================================
++#   The contents of this file are subject to the Sun Industry Standards
++#   Source License Version 1.1 (the "License"); You may not use this file
++#   except in compliance with the License. You may obtain a copy of the
++#   License at http://www.openoffice.org/license.html.
++#
++#   Software provided under this License is provided on an "AS IS" basis,
++#   WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++#   WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++#   MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++#   See the License for the specific provisions governing your rights and
++#   obligations concerning the Software.
++#
++#   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++#
++#   Copyright: 2000 by Sun Microsystems, Inc.
++#
++#   All Rights Reserved.
++#
++#   Contributor(s): _______________________________________
++#
++#
++#
++#*************************************************************************
++
++PRJ=.
++
++PRJNAME=mdbtools
++TARGET=mdbtools
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :	settings.mk
++
++# --- Files --------------------------------------------------------
++
++.IF "$(ENABLE_ACCESS)"=="YES" && "$(SYSTEM_MDBTOOLS)" != "YES"
++
++TARFILE_NAME=mdbtools-0.6pre1
++
++PATCH_FILE_NAME=mdbtools-0.6pre1.patch
++
++CONFIGURE_DIR=
++
++CONFIGURE_ACTION=./configure CFLAGS="-O2 $(ARCH_FLAGS)" --with-pic
++CONFIGURE_FLAGS=
++BUILD_DIR=$(CONFIGURE_DIR)
++BUILD_ACTION=$(GNUMAKE)
++
++OUT2LIB= \
++	$/src$/*$/.libs$/libmdb* 
++
++OUT2INC= \
++	$/include$/*.h
++
++# --- Targets ------------------------------------------------------
++
++
++.INCLUDE :	set_ext.mk
++.INCLUDE :	target.mk
++.INCLUDE :	tg_ext.mk
++
++.ELSE  
++
++dummy:
++	@echo "Access disabled in configure"
++
++.ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-field-patch-fix-competing-protection.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-field-patch-fix-competing-protection.diff
@@ -0,0 +1,16 @@
+--- sw/source/filter/ww8/ww8par.cxx.save	2008-06-21 01:35:56.000000000 +0200
++++ sw/source/filter/ww8/ww8par.cxx	2008-06-21 01:36:04.000000000 +0200
+@@ -3602,7 +3602,12 @@
+ 
+         bool bInsertSection = aIter != aStart ? aIter->IsContinous() : false;
+         bool bInsertPageDesc = !bInsertSection;
+-        bool bProtected = !bUseEnhFields && SectionIsProtected(*aIter); // do we really  need this ?? I guess I have a different logic in editshell which disales this...
++        bool bProtected = SectionIsProtected(*aIter); // do we really  need this ?? I guess I have a different logic in editshell which disales this...
++	if (bUseEnhFields && mrReader.pWDop->fProtEnabled && aIter->IsNotProtected()) {
++	    // here we have the special case that the whole document is protected, with the execption of this section.
++	    // I want to address this when I do the section rework, so for the moment we disable the overall protection then...
++	    mrReader.rDoc.set(IDocumentSettingAccess::PROTECT_FORM, false );
++	}
+ 
+         if (bInsertPageDesc)
+         {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/office-cfg-common-template-dir.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/office-cfg-common-template-dir.diff
@@ -0,0 +1,29 @@
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs.old	2007-08-23 20:15:04.000000000 +0200
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2007-08-24 16:15:30.000000000 +0200
+@@ -1524,7 +1524,7 @@ Dymamic border coloring means that when 
+ 						<author>MBA</author>
+ 						<desc>Specifies the templates originate from these folders and sub-folders.</desc>
+ 					</info>
+-					<value oor:separator=":">$(insturl)/share/template/$(vlang):$(userurl)/template</value>
++					<value oor:separator=";">file:///usr/share/templates/ooo2/common;file:///usr/share/templates/ooo2/$(vlang);$(insturl)/share/template/common;$(insturl)/share/template/$(vlang);$(userurl)/template</value>
+ 				</prop>
+ 				<prop oor:name="UIConfig" oor:type="oor:string-list">
+ 					<info>
+@@ -1672,7 +1672,7 @@ Dymamic border coloring means that when 
+ 					<info>
+ 						<desc>Specifies the default directory where all provided templates are located in folders and sub-folders.</desc>
+ 					</info>
+-					<value oor:separator=":">$(insturl)/share/template/$(vlang):$(userurl)/template</value>
++					<value oor:separator=";">file:///usr/share/templates/ooo2/common;file:///usr/share/templates/ooo2/$(vlang);$(insturl)/share/template/common;$(insturl)/share/template/$(vlang);$(userurl)/template</value>
+ 				</prop>
+ 				<prop oor:name="UIConfig" oor:type="oor:string-list">
+ 					<info>
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu.old	2007-08-23 20:15:03.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu	2007-08-24 16:18:32.000000000 +0200
+@@ -536,4 +536,6 @@
+       </prop>
+     </node>
+   </node>
++  <!-- FIXME: This comment is needed to change a checksum or so.
++              Then the updated list of templates paths is read from Common.xcs-->
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sdk-settings-honour-linux.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sdk-settings-honour-linux.diff
@@ -0,0 +1,16 @@
+Index: settings.mk
+===================================================================
+RCS file: /cvs/api/odk/settings/settings.mk,v
+retrieving revision 1.26.4.2
+diff -u -u -r1.26.4.2 settings.mk
+--- odk/settings/settings.mk	18 Jan 2008 19:24:00 -0000	1.26.4.2
++++ odk/settings/settings.mk	21 Apr 2008 14:14:03 -0000
+@@ -219,7 +219,7 @@
+ # Linux specific settings
+ #
+ ###########################################################################
+-ifeq "$(PLATFORM)" "linux-gnu"
++ifneq (,$(findstring linux,$(PLATFORM)))
+ # Settings for Linux using gcc compiler
+ 
+ PROCTYPE := $(shell $(PRJ)/config.guess | cut -d "-" -f1 | sed -e 's/^i.86$$/i386/')
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_build_extensions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_build_extensions.diff
@@ -0,0 +1,16 @@
+--- scp2/prj/build.lst.orig	2008-03-19 07:36:56.000000000 +0100
++++ scp2/prj/build.lst		2008-03-19 10:16:16.000000000 +0100
+@@ -6,6 +6,7 @@
+ cp    scp2\source\canvas          nmake    -    all    cp_canvas cp_langmacros NULL
+ cp    scp2\source\crashrep        nmake    -    all    cp_crashrep cp_langmacros NULL
+ cp    scp2\source\draw            nmake    -    all    cp_draw cp_langmacros NULL
++cp    scp2\source\extensions      nmake    -    all    cp_extensions cp_langmacros NULL
+ cp    scp2\source\gnome           nmake    -    all    cp_gnome cp_langmacros NULL
+ cp    scp2\source\graphicfilter   nmake    -    all    cp_graphicfilter cp_langmacros NULL
+ cp    scp2\source\impress         nmake    -    all    cp_impress cp_langmacros NULL
+@@ -26,4 +27,4 @@
+ cp    scp2\source\ure             nmake    -    all    cp_ure cp_langmacros NULL
+ cp    scp2\source\onlineupdate    nmake    -    all    cp_update cp_langmacros NULL
+ cp    scp2\source\ooo_wo_ure      nmake    -    all    cp_ooo_wo_ure cp_langmacros NULL
+-cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
++cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_extensions cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix-x86-64-visibility-workaround.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix-x86-64-visibility-workaround.diff
@@ -0,0 +1,61 @@
+diff --git a/config_office/configure.in b/config_office/configure.in
+index b2faf3a..68e4904 100644
+--- config_office/configure.in
++++ config_office/configure.in
+@@ -2369,6 +2369,7 @@ AC_SUBST(USE_SYSTEM_STL)
+ dnl ===================================================================
+ dnl system stl sanity tests
+ dnl ===================================================================
++HAVE_GCC_VISIBILITY_BROKEN=
+ if test "$USE_SYSTEM_STL" = "YES"; then
+    AC_MSG_CHECKING([if hash_map will be in __gnu_cxx namespace])
+    AC_LANG_PUSH([C++])
+@@ -2405,18 +2406,19 @@ using namespace std;
+       gccvisok=no)
+       AC_MSG_RESULT([$gccvisok])
+       if test "$gccvisok" = "no"; then
+-         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility])
+-         echo "Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility" >> warn
+-         unset HAVE_GCC_VISIBILITY_FEATURE
++         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe, disabling that.])
++         echo "Your gcc is not -fvisibility-inlines-hidden safe, disabling that." >> warn
++         HAVE_GCC_VISIBILITY_BROKEN="TRUE"
+       fi
+ 
+       LDFLAGS=$sharedlink_ldflags_save
+    fi
+ 
+    AC_LANG_POP([C++])
+ fi
+
+ AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
++AC_SUBST(HAVE_GCC_VISIBILITY_BROKEN)
+ 
+ dnl ===================================================================
+ dnl allocator
+diff --git a/config_office/set_soenv.in b/config_office/set_soenv.in
+index f1538b9..488597a 100644
+--- config_office/set_soenv.in
++++ config_office/set_soenv.in
+@@ -1917,6 +1917,8 @@ ToFile( "JAVAHOME",          $JAVAHOME,          "e" );
+ ToFile( "CC",                $CC,                "e" );
+ ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
+ 		"@HAVE_GCC_VISIBILITY_FEATURE@", "e" );
++ToFile( "HAVE_GCC_VISIBILITY_BROKEN",
++		"@HAVE_GCC_VISIBILITY_BROKEN@", "e" );
+ ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
+ ToFile( "HAVE_LD_BDIRECT",   "@HAVE_LD_BDIRECT@","e" );
+ ToFile( "CXX",               $CXX,               "e" );
+diff --git a/solenv/inc/unxlngx6.mk b/solenv/inc/unxlngx6.mk
+index 4afa0b6..91d9bf1 100644
+--- solenv/inc/unxlngx6.mk
++++ solenv/inc/unxlngx6.mk
+@@ -101,7 +101,7 @@ CFLAGSCXX+= -fno-use-cxa-atexit
+ CFLAGSCXX+= -Wno-ctor-dtor-privacy
+ CFLAGSCXX+= -fno-use-cxa-atexit
+ PICSWITCH:=-fpic
+-.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" && "$(HAVE_GCC_VISIBILITY_BROKEN)" != "TRUE"
+ CFLAGSCXX += -fvisibility-inlines-hidden
+ .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/x11_extensions-new-xrender-headers.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/x11_extensions-new-xrender-headers.diff
@@ -0,0 +1,1069 @@
+--- x11_extensions/inc/Xrender.h	23 Sep 2002 15:40:14 -0000	1.1
++++ x11_extensions/inc/Xrender.h	16 Mar 2006 15:49:50 -0000	1.1.96.1
+@@ -1,5 +1,4 @@
+ /*
+- * $XFree86: xc/lib/Xrender/Xrender.h,v 1.7 2000/12/05 03:13:30 keithp Exp $
+  *
+  * Copyright � 2000 SuSE, Inc.
+  *
+@@ -28,6 +27,7 @@
+ 
+ #include "render.h"
+ 
++#include <X11/Xlib.h>
+ #include <X11/Xfuncproto.h>
+ #include <X11/Xosdefs.h>
+ #include <X11/Xutil.h>
+@@ -64,36 +64,8 @@ typedef struct {
+ #define PictFormatAlphaMask (1 << 10)
+ #define PictFormatColormap  (1 << 11)
+ 
+-typedef struct {
+-    Visual		*visual;
+-    XRenderPictFormat	*format;
+-} XRenderVisual;
+-
+-typedef struct {
+-    int			depth;
+-    int			nvisuals;
+-    XRenderVisual	*visuals;
+-} XRenderDepth;
+-
+-typedef struct {
+-    XRenderDepth	*depths;
+-    int			ndepths;
+-    XRenderPictFormat	*fallback;
+-} XRenderScreen;
+-
+-typedef struct _XRenderInfo {
+-    XRenderPictFormat	*format;
+-    int			nformat;
+-    XRenderScreen	*screen;
+-    int			nscreen;
+-    XRenderDepth	*depth;
+-    int			ndepth;
+-    XRenderVisual	*visual;
+-    int			nvisual;
+-} XRenderInfo;
+-
+ typedef struct _XRenderPictureAttributes {
+-    Bool		repeat;
++    int 		repeat;
+     Picture		alpha_map;
+     int			alpha_x_origin;
+     int			alpha_y_origin;
+@@ -124,6 +96,108 @@ typedef struct _XGlyphInfo {
+     short	    yOff;
+ } XGlyphInfo;
+ 
++typedef struct _XGlyphElt8 {
++    GlyphSet		    glyphset;
++    _Xconst char	    *chars;
++    int			    nchars;
++    int			    xOff;
++    int			    yOff;
++} XGlyphElt8;
++
++typedef struct _XGlyphElt16 {
++    GlyphSet		    glyphset;
++    _Xconst unsigned short  *chars;
++    int			    nchars;
++    int			    xOff;
++    int			    yOff;
++} XGlyphElt16;
++
++typedef struct _XGlyphElt32 {
++    GlyphSet		    glyphset;
++    _Xconst unsigned int    *chars;
++    int			    nchars;
++    int			    xOff;
++    int			    yOff;
++} XGlyphElt32;
++
++typedef double	XDouble;
++
++typedef struct _XPointDouble {
++    XDouble  x, y;
++} XPointDouble;
++
++#define XDoubleToFixed(f)    ((XFixed) ((f) * 65536))
++#define XFixedToDouble(f)    (((XDouble) (f)) / 65536)
++
++typedef int XFixed;
++
++typedef struct _XPointFixed {
++    XFixed  x, y;
++} XPointFixed;
++
++typedef struct _XLineFixed {
++    XPointFixed	p1, p2;
++} XLineFixed;
++
++typedef struct _XTriangle {
++    XPointFixed	p1, p2, p3;
++} XTriangle;
++
++typedef struct _XCircle {
++    XFixed x;
++    XFixed y;
++    XFixed radius;
++} XCircle;
++
++typedef struct _XTrapezoid {
++    XFixed  top, bottom;
++    XLineFixed	left, right;
++} XTrapezoid;
++
++typedef struct _XTransform {
++    XFixed  matrix[3][3];
++} XTransform;
++
++typedef struct _XFilters {
++    int	    nfilter;
++    char    **filter;
++    int	    nalias;
++    short   *alias;
++} XFilters;
++
++typedef struct _XIndexValue {
++    unsigned long    pixel;
++    unsigned short   red, green, blue, alpha;
++} XIndexValue;
++
++typedef struct _XAnimCursor {
++    Cursor	    cursor;
++    unsigned long   delay;
++} XAnimCursor;
++
++typedef struct _XSpanFix {
++    XFixed	    left, right, y;
++} XSpanFix;
++
++typedef struct _XTrap {
++    XSpanFix	    top, bottom;
++} XTrap;
++
++typedef struct _XLinearGradient {
++    XPointFixed p1;
++    XPointFixed p2;
++} XLinearGradient;
++
++typedef struct _XRadialGradient {
++    XCircle inner;
++    XCircle outer;
++} XRadialGradient;
++
++typedef struct _XConicalGradient {
++    XPointFixed center;
++    XFixed angle; /* in degrees */
++} XConicalGradient;
++
+ _XFUNCPROTOBEGIN
+ 
+ Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
+@@ -134,35 +208,55 @@ Status XRenderQueryVersion (Display *dpy
+ 
+ Status XRenderQueryFormats (Display *dpy);
+ 
++int XRenderQuerySubpixelOrder (Display *dpy, int screen);
++
++Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
++
+ XRenderPictFormat *
+-XRenderFindVisualFormat (Display *dpy, Visual *visual);
++XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
+ 
+ XRenderPictFormat *
+-XRenderFindFormat (Display		*dpy,
+-		   unsigned long	mask,
+-		   XRenderPictFormat	*templ,
+-		   int			count);
++XRenderFindFormat (Display			*dpy,
++		   unsigned long		mask,
++		   _Xconst XRenderPictFormat	*templ,
++		   int				count);
+     
++#define PictStandardARGB32  0
++#define PictStandardRGB24   1
++#define PictStandardA8	    2
++#define PictStandardA4	    3
++#define PictStandardA1	    4
++#define PictStandardNUM	    5
++
++XRenderPictFormat *
++XRenderFindStandardFormat (Display		*dpy,
++			   int			format);
++
++XIndexValue *
++XRenderQueryPictIndexValues(Display			*dpy,
++			    _Xconst XRenderPictFormat	*format,
++			    int				*num);
++
+ Picture
+-XRenderCreatePicture (Display			*dpy,
+-		      Drawable			drawable,
+-		      XRenderPictFormat		*format,
+-		      unsigned long		valuemask,
+-		      XRenderPictureAttributes	*attributes);
+-
+-void
+-XRenderChangePicture (Display                   *dpy,
+-		      Picture			picture,
+-		      unsigned long             valuemask,
+-		      XRenderPictureAttributes  *attributes);
+-
+-void
+-XRenderSetPictureClipRectangles (Display	*dpy,
+-				 Picture	picture,
+-				 int		xOrigin,
+-				 int		yOrigin,
+-				 XRectangle	*rects,
+-				 int		n);
++XRenderCreatePicture (Display				*dpy,
++		      Drawable				drawable,
++		      _Xconst XRenderPictFormat		*format,
++		      unsigned long			valuemask,
++		      _Xconst XRenderPictureAttributes	*attributes);
++
++void
++XRenderChangePicture (Display				*dpy,
++		      Picture				picture,
++		      unsigned long			valuemask,
++		      _Xconst XRenderPictureAttributes  *attributes);
++
++void
++XRenderSetPictureClipRectangles (Display	    *dpy,
++				 Picture	    picture,
++				 int		    xOrigin,
++				 int		    yOrigin,
++				 _Xconst XRectangle *rects,
++				 int		    n);
+ 
+ void
+ XRenderSetPictureClipRegion (Display	    *dpy,
+@@ -170,6 +264,11 @@ XRenderSetPictureClipRegion (Display	   
+ 			     Region	    r);
+ 
+ void
++XRenderSetPictureTransform (Display	    *dpy,
++			    Picture	    picture,
++			    XTransform	    *transform);
++
++void
+ XRenderFreePicture (Display                   *dpy,
+ 		    Picture                   picture);
+ 
+@@ -189,7 +288,7 @@ XRenderComposite (Display   *dpy,
+ 		  unsigned int	height);
+ 
+ GlyphSet
+-XRenderCreateGlyphSet (Display *dpy, XRenderPictFormat *format);
++XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
+ 
+ GlyphSet
+ XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
+@@ -198,79 +297,231 @@ void
+ XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
+ 
+ void
+-XRenderAddGlyphs (Display	*dpy,
+-		  GlyphSet	glyphset,
+-		  Glyph		*gids,
+-		  XGlyphInfo	*glyphs,
+-		  int		nglyphs,
+-		  char		*images,
+-		  int		nbyte_images);
+-
+-void
+-XRenderFreeGlyphs (Display   *dpy,
+-		   GlyphSet  glyphset,
+-		   Glyph     *gids,
+-		   int       nglyphs);
+-
+-void
+-XRenderCompositeString8 (Display	    *dpy,
+-			 int		    op,
+-			 Picture	    src,
+-			 Picture	    dst,
+-			 XRenderPictFormat  *maskFormat,
+-			 GlyphSet	    glyphset,
+-			 int		    xSrc,
+-			 int		    ySrc,
+-			 int		    xDst,
+-			 int		    yDst,
+-			 char		    *string,
+-			 int		    nchar);
+-
+-void
+-XRenderCompositeString16 (Display	    *dpy,
+-			  int		    op,
+-			  Picture	    src,
+-			  Picture	    dst,
+-			  XRenderPictFormat *maskFormat,
+-			  GlyphSet	    glyphset,
+-			  int		    xSrc,
+-			  int		    ySrc,
+-			  int		    xDst,
+-			  int		    yDst,
+-			  unsigned short    *string,
+-			  int		    nchar);
+-
+-void
+-XRenderCompositeString32 (Display	    *dpy,
+-			  int		    op,
+-			  Picture	    src,
+-			  Picture	    dst,
+-			  XRenderPictFormat *maskFormat,
+-			  GlyphSet	    glyphset,
+-			  int		    xSrc,
+-			  int		    ySrc,
+-			  int		    xDst,
+-			  int		    yDst,
+-			  unsigned int	    *string,
+-			  int		    nchar);
+-
+-void
+-XRenderFillRectangle (Display	    *dpy,
+-		      int	    op,
+-		      Picture	    dst,
+-		      XRenderColor  *color,
+-		      int	    x,
+-		      int	    y,
+-		      unsigned int  width,
+-		      unsigned int  height);
+-
+-void
+-XRenderFillRectangles (Display	    *dpy,
+-		       int	    op,
+-		       Picture	    dst,
+-		       XRenderColor *color,
+-		       XRectangle   *rectangles,
+-		       int	    n_rects);
++XRenderAddGlyphs (Display		*dpy,
++		  GlyphSet		glyphset,
++		  _Xconst Glyph		*gids,
++		  _Xconst XGlyphInfo	*glyphs,
++		  int			nglyphs,
++		  _Xconst char		*images,
++		  int			nbyte_images);
++
++void
++XRenderFreeGlyphs (Display	    *dpy,
++		   GlyphSet	    glyphset,
++		   _Xconst Glyph    *gids,
++		   int		    nglyphs);
++
++void
++XRenderCompositeString8 (Display		    *dpy,
++			 int			    op,
++			 Picture		    src,
++			 Picture		    dst,
++			 _Xconst XRenderPictFormat  *maskFormat,
++			 GlyphSet		    glyphset,
++			 int			    xSrc,
++			 int			    ySrc,
++			 int			    xDst,
++			 int			    yDst,
++			 _Xconst char		    *string,
++			 int			    nchar);
++
++void
++XRenderCompositeString16 (Display		    *dpy,
++			  int			    op,
++			  Picture		    src,
++			  Picture		    dst,
++			  _Xconst XRenderPictFormat *maskFormat,
++			  GlyphSet		    glyphset,
++			  int			    xSrc,
++			  int			    ySrc,
++			  int			    xDst,
++			  int			    yDst,
++			  _Xconst unsigned short    *string,
++			  int			    nchar);
++
++void
++XRenderCompositeString32 (Display		    *dpy,
++			  int			    op,
++			  Picture		    src,
++			  Picture		    dst,
++			  _Xconst XRenderPictFormat *maskFormat,
++			  GlyphSet		    glyphset,
++			  int			    xSrc,
++			  int			    ySrc,
++			  int			    xDst,
++			  int			    yDst,
++			  _Xconst unsigned int	    *string,
++			  int			    nchar);
++
++void
++XRenderCompositeText8 (Display			    *dpy,
++		       int			    op,
++		       Picture			    src,
++		       Picture			    dst,
++		       _Xconst XRenderPictFormat    *maskFormat,
++		       int			    xSrc,
++		       int			    ySrc,
++		       int			    xDst,
++		       int			    yDst,
++		       _Xconst XGlyphElt8	    *elts,
++		       int			    nelt);
++
++void
++XRenderCompositeText16 (Display			    *dpy,
++			int			    op,
++			Picture			    src,
++			Picture			    dst,
++			_Xconst XRenderPictFormat   *maskFormat,
++			int			    xSrc,
++			int			    ySrc,
++			int			    xDst,
++			int			    yDst,
++			_Xconst XGlyphElt16	    *elts,
++			int			    nelt);
++
++void
++XRenderCompositeText32 (Display			    *dpy,
++			int			    op,
++			Picture			    src,
++			Picture			    dst,
++			_Xconst XRenderPictFormat   *maskFormat,
++			int			    xSrc,
++			int			    ySrc,
++			int			    xDst,
++			int			    yDst,
++			_Xconst XGlyphElt32	    *elts,
++			int			    nelt);
++
++void
++XRenderFillRectangle (Display		    *dpy,
++		      int		    op,
++		      Picture		    dst,
++		      _Xconst XRenderColor  *color,
++		      int		    x,
++		      int		    y,
++		      unsigned int	    width,
++		      unsigned int	    height);
++
++void
++XRenderFillRectangles (Display		    *dpy,
++		       int		    op,
++		       Picture		    dst,
++		       _Xconst XRenderColor *color,
++		       _Xconst XRectangle   *rectangles,
++		       int		    n_rects);
++
++void
++XRenderCompositeTrapezoids (Display		*dpy,
++			    int			op,
++			    Picture		src,
++			    Picture		dst,
++			    _Xconst XRenderPictFormat	*maskFormat,
++			    int			xSrc,
++			    int			ySrc,
++			    _Xconst XTrapezoid	*traps,
++			    int			ntrap);
++
++void
++XRenderCompositeTriangles (Display		*dpy,
++			   int			op,
++			   Picture		src,
++			   Picture		dst,
++			    _Xconst XRenderPictFormat	*maskFormat,
++			   int			xSrc,
++			   int			ySrc,
++			   _Xconst XTriangle	*triangles,
++			   int			ntriangle);
++
++void
++XRenderCompositeTriStrip (Display		*dpy,
++			  int			op,
++			  Picture		src,
++			  Picture		dst,
++			    _Xconst XRenderPictFormat	*maskFormat,
++			  int			xSrc,
++			  int			ySrc,
++			  _Xconst XPointFixed	*points,
++			  int			npoint);
++
++void
++XRenderCompositeTriFan (Display			*dpy,
++			int			op,
++			Picture			src,
++			Picture			dst,
++			_Xconst XRenderPictFormat	*maskFormat,
++			int			xSrc,
++			int			ySrc,
++			_Xconst XPointFixed	*points,
++			int			npoint);
++
++void
++XRenderCompositeDoublePoly (Display		    *dpy,
++			    int			    op,
++			    Picture		    src,
++			    Picture		    dst,
++			    _Xconst XRenderPictFormat	*maskFormat,
++			    int			    xSrc,
++			    int			    ySrc,
++			    int			    xDst,
++			    int			    yDst,
++			    _Xconst XPointDouble    *fpoints,
++			    int			    npoints,
++			    int			    winding);
++Status
++XRenderParseColor(Display	*dpy, 
++		  char		*spec,
++		  XRenderColor	*def);
++
++Cursor
++XRenderCreateCursor (Display	    *dpy,
++		     Picture	    source,
++		     unsigned int   x,
++		     unsigned int   y);
++
++XFilters *
++XRenderQueryFilters (Display *dpy, Drawable drawable);
++
++void
++XRenderSetPictureFilter (Display    *dpy,
++			 Picture    picture,
++			 char	    *filter,
++			 XFixed	    *params,
++			 int	    nparams);
++
++Cursor
++XRenderCreateAnimCursor (Display	*dpy,
++			 int		ncursor,
++			 XAnimCursor	*cursors);
++
++
++void
++XRenderAddTraps (Display	    *dpy,
++		 Picture	    picture,
++		 int		    xOff,
++		 int		    yOff,
++		 _Xconst XTrap	    *traps,
++		 int		    ntrap);
++
++Picture XRenderCreateSolidFill (Display *dpy,
++                                const XRenderColor *color);
++
++Picture XRenderCreateLinearGradient (Display *dpy,
++                                     const XLinearGradient *gradient,
++                                     const XFixed *stops,
++                                     const XRenderColor *colors,
++                                     int nstops);
++
++Picture XRenderCreateRadialGradient (Display *dpy,
++                                     const XRadialGradient *gradient,
++                                     const XFixed *stops,
++                                     const XRenderColor *colors,
++                                     int nstops);
++
++Picture XRenderCreateConicalGradient (Display *dpy,
++                                      const XConicalGradient *gradient,
++                                      const XFixed *stops,
++                                      const XRenderColor *colors,
++                                      int nstops);
+ 
+ _XFUNCPROTOEND
+ 
+Index: x11_extensions/inc/render.h
+===================================================================
+RCS file: /cvs/external/x11_extensions/inc/render.h,v
+retrieving revision 1.1
+retrieving revision 1.1.96.1
+diff -u -p -r1.1 -r1.1.96.1
+--- x11_extensions/inc/render.h	23 Sep 2002 15:40:13 -0000	1.1
++++ x11_extensions/inc/render.h	16 Mar 2006 15:49:51 -0000	1.1.96.1
+@@ -1,7 +1,7 @@
+ /*
+- * $XFree86: xc/include/extensions/render.h,v 1.3 2000/11/20 07:13:09 keithp Exp $
++ * $XFree86: xc/include/extensions/render.h,v 1.10 2002/11/06 22:47:49 keithp Exp $
+  *
+- * Copyright � 2000 SuSE, Inc.
++ * Copyright © 2000 SuSE, Inc.
+  *
+  * Permission to use, copy, modify, distribute, and sell this software and its
+  * documentation for any purpose is hereby granted without fee, provided that
+@@ -17,7 +17,7 @@
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
+  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
++ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+  *
+  * Author:  Keith Packard, SuSE, Inc.
+@@ -33,11 +33,11 @@ typedef unsigned long	PictFormat;
+ 
+ #define RENDER_NAME	"RENDER"
+ #define RENDER_MAJOR	0
+-#define RENDER_MINOR	1
++#define RENDER_MINOR	10
+ 
+ #define X_RenderQueryVersion		    0
+ #define X_RenderQueryPictFormats	    1
+-#define X_RenderQueryPictIndexValues	    2
++#define X_RenderQueryPictIndexValues	    2	/* 0.7 */
+ #define X_RenderQueryDithers		    3
+ #define X_RenderCreatePicture		    4
+ #define X_RenderChangePicture		    5
+@@ -51,7 +51,7 @@ typedef unsigned long	PictFormat;
+ #define X_RenderTriFan			    13
+ #define X_RenderColorTrapezoids		    14
+ #define X_RenderColorTriangles		    15
+-#define X_RenderTransform		    16
++/* #define X_RenderTransform		    16 */
+ #define X_RenderCreateGlyphSet		    17
+ #define X_RenderReferenceGlyphSet	    18
+ #define X_RenderFreeGlyphSet		    19
+@@ -62,6 +62,22 @@ typedef unsigned long	PictFormat;
+ #define X_RenderCompositeGlyphs16	    24
+ #define X_RenderCompositeGlyphs32	    25
+ #define X_RenderFillRectangles		    26
++/* 0.5 */
++#define X_RenderCreateCursor		    27
++/* 0.6 */
++#define X_RenderSetPictureTransform	    28
++#define X_RenderQueryFilters		    29
++#define X_RenderSetPictureFilter	    30
++/* 0.8 */
++#define X_RenderCreateAnimCursor	    31
++/* 0.9 */
++#define X_RenderAddTraps		    32
++/* 0.10 */
++#define X_RenderCreateSolidFill             33
++#define X_RenderCreateLinearGradient        34
++#define X_RenderCreateRadialGradient        35
++#define X_RenderCreateConicalGradient       36
++#define RenderNumberRequests		    (X_RenderCreateConicalGradient+1)
+ 
+ #define BadPictFormat			    0
+ #define BadPicture			    1
+@@ -73,6 +89,7 @@ typedef unsigned long	PictFormat;
+ #define PictTypeIndexed			    0
+ #define PictTypeDirect			    1
+ 
++#define PictOpMinimum			    0
+ #define PictOpClear			    0
+ #define PictOpSrc			    1
+ #define PictOpDst			    2
+@@ -89,6 +106,39 @@ typedef unsigned long	PictFormat;
+ #define PictOpSaturate			    13
+ #define PictOpMaximum			    13
+ 
++/*
++ * Operators only available in version 0.2
++ */
++#define PictOpDisjointMinimum			    0x10
++#define PictOpDisjointClear			    0x10
++#define PictOpDisjointSrc			    0x11
++#define PictOpDisjointDst			    0x12
++#define PictOpDisjointOver			    0x13
++#define PictOpDisjointOverReverse		    0x14
++#define PictOpDisjointIn			    0x15
++#define PictOpDisjointInReverse			    0x16
++#define PictOpDisjointOut			    0x17
++#define PictOpDisjointOutReverse		    0x18
++#define PictOpDisjointAtop			    0x19
++#define PictOpDisjointAtopReverse		    0x1a
++#define PictOpDisjointXor			    0x1b
++#define PictOpDisjointMaximum			    0x1b
++
++#define PictOpConjointMinimum			    0x20
++#define PictOpConjointClear			    0x20
++#define PictOpConjointSrc			    0x21
++#define PictOpConjointDst			    0x22
++#define PictOpConjointOver			    0x23
++#define PictOpConjointOverReverse		    0x24
++#define PictOpConjointIn			    0x25
++#define PictOpConjointInReverse			    0x26
++#define PictOpConjointOut			    0x27
++#define PictOpConjointOutReverse		    0x28
++#define PictOpConjointAtop			    0x29
++#define PictOpConjointAtopReverse		    0x2a
++#define PictOpConjointXor			    0x2b
++#define PictOpConjointMaximum			    0x2b
++
+ #define PolyEdgeSharp			    0
+ #define PolyEdgeSmooth			    1
+ 
+@@ -108,6 +158,32 @@ typedef unsigned long	PictFormat;
+ #define CPPolyMode			    (1 << 10)
+ #define CPDither			    (1 << 11)
+ #define CPComponentAlpha		    (1 << 12)
+-#define CPLastBit			    11
++#define CPLastBit			    12
++
++/* Filters included in 0.6 */
++#define FilterNearest			    "nearest"
++#define FilterBilinear			    "bilinear"
++/* Filters included in 0.10 */
++#define FilterConvolution		    "convolution"
++
++#define FilterFast			    "fast"
++#define FilterGood			    "good"
++#define FilterBest			    "best"
++
++#define FilterAliasNone			    -1
++
++/* Subpixel orders included in 0.6 */
++#define SubPixelUnknown			    0
++#define SubPixelHorizontalRGB		    1
++#define SubPixelHorizontalBGR		    2
++#define SubPixelVerticalRGB		    3
++#define SubPixelVerticalBGR		    4
++#define SubPixelNone			    5
++
++/* Extended repeat attributes included in 0.10 */
++#define RepeatNone                          0
++#define RepeatNormal                        1
++#define RepeatPad                           2
++#define RepeatReflect                       3
+ 
+ #endif	/* _RENDER_H_ */
+Index: x11_extensions/inc/renderproto.h
+===================================================================
+RCS file: /cvs/external/x11_extensions/inc/renderproto.h,v
+retrieving revision 1.1
+retrieving revision 1.1.96.1
+diff -u -p -r1.1 -r1.1.96.1
+--- x11_extensions/inc/renderproto.h	23 Sep 2002 15:40:12 -0000	1.1
++++ x11_extensions/inc/renderproto.h	16 Mar 2006 15:49:51 -0000	1.1.96.1
+@@ -1,7 +1,7 @@
+ /*
+- * $XFree86: xc/include/extensions/renderproto.h,v 1.5 2000/11/20 07:13:09 keithp Exp $
++ * $XFree86: xc/include/extensions/renderproto.h,v 1.12 2002/09/26 02:56:48 keithp Exp $
+  *
+- * Copyright � 2000 SuSE, Inc.
++ * Copyright © 2000 SuSE, Inc.
+  *
+  * Permission to use, copy, modify, distribute, and sell this software and its
+  * documentation for any purpose is hereby granted without fee, provided that
+@@ -17,7 +17,7 @@
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
+  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
++ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+  *
+  * Author:  Keith Packard, SuSE, Inc.
+@@ -26,6 +26,7 @@
+ #ifndef _XRENDERP_H_
+ #define _XRENDERP_H_
+ 
++#include <X11/Xmd.h>
+ #include "render.h"
+ 
+ #define Window CARD32
+@@ -73,7 +74,7 @@ typedef struct {
+     Colormap	colormap;
+ } xPictFormInfo;
+ 
+-#define sz_xPictFormInfo    16
++#define sz_xPictFormInfo    28
+ 
+ typedef struct {
+     VisualID	visual;
+@@ -125,12 +126,28 @@ typedef struct {
+ #define sz_xPointFixed	8
+ 
+ typedef struct {
++    xPointFixed	p1;
++    xPointFixed p2;
++} xLineFixed;
++
++#define sz_xLineFixed	16
++
++typedef struct {
+     xPointFixed	p1, p2, p3;
+ } xTriangle;
+ 
+ #define sz_xTriangle	24
+ 
+ typedef struct {
++    Fixed	top B32;
++    Fixed	bottom B32;
++    xLineFixed	left;
++    xLineFixed	right;
++} xTrapezoid;
++
++#define sz_xTrapezoid	40
++
++typedef struct {
+     CARD16  width B16;
+     CARD16  height B16;
+     INT16   x B16;
+@@ -151,7 +168,19 @@ typedef struct {
+ 
+ #define sz_xGlyphElt	8
+ 
+-/* 
++typedef struct {
++    Fixed   l, r, y;
++} xSpanFix;
++
++#define sz_xSpanFix	12
++
++typedef struct {
++    xSpanFix	top, bot;
++} xTrap;
++
++#define sz_xTrap	24
++
++/*
+  * requests and replies
+  */
+ typedef struct {
+@@ -196,7 +225,7 @@ typedef struct {
+     CARD32  numScreens B32;
+     CARD32  numDepths B32;
+     CARD32  numVisuals B32;
+-    CARD32  pad4 B32;
++    CARD32  numSubpixel B32;	    /* Version 0.6 */
+     CARD32  pad5 B32;
+ } xRenderQueryPictFormatsReply;
+ 
+@@ -312,13 +341,65 @@ typedef struct {
+     CARD8       reqType;
+     CARD8       renderReqType;
+     CARD16      length B16;
++    CARD8	op;
++    CARD8	pad1;
++    CARD16	pad2 B16;
++    Picture	src B32;
++    Picture	dst B32;
++    PictFormat	maskFormat B32;
++    INT16	xSrc B16;
++    INT16	ySrc B16;
++} xRenderTrapezoidsReq;
++
++#define sz_xRenderTrapezoidsReq			    24
++
++typedef struct {
++    CARD8       reqType;
++    CARD8       renderReqType;
++    CARD16      length B16;
++    CARD8	op;
++    CARD8	pad1;
++    CARD16	pad2 B16;
+     Picture	src B32;
+     Picture	dst B32;
++    PictFormat	maskFormat B32;
+     INT16	xSrc B16;
+     INT16	ySrc B16;
+ } xRenderTrianglesReq;
+ 
+-#define sz_xRenderTrianglesReq			    16
++#define sz_xRenderTrianglesReq			    24
++
++typedef struct {
++    CARD8       reqType;
++    CARD8       renderReqType;
++    CARD16      length B16;
++    CARD8	op;
++    CARD8	pad1;
++    CARD16	pad2 B16;
++    Picture	src B32;
++    Picture	dst B32;
++    PictFormat	maskFormat B32;
++    INT16	xSrc B16;
++    INT16	ySrc B16;
++} xRenderTriStripReq;
++
++#define sz_xRenderTriStripReq			    24
++
++typedef struct {
++    CARD8       reqType;
++    CARD8       renderReqType;
++    CARD16      length B16;
++    CARD8	op;
++    CARD8	pad1;
++    CARD16	pad2 B16;
++    Picture	src B32;
++    Picture	dst B32;
++    PictFormat	maskFormat B32;
++    INT16	xSrc B16;
++    INT16	ySrc B16;
++} xRenderTriFanReq;
++
++#define sz_xRenderTriFanReq			    24
+ 
+ typedef struct {
+     CARD8       reqType;
+@@ -381,7 +462,7 @@ typedef struct {
+     Glyphset    glyphset B32;
+     INT16	xSrc B16;
+     INT16	ySrc B16;
+-} xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req, 
++} xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req,
+ xRenderCompositeGlyphs16Req, xRenderCompositeGlyphs32Req;
+ 
+ #define sz_xRenderCompositeGlyphs8Req		    28
+@@ -403,6 +484,165 @@ typedef struct {
+ 
+ #define sz_xRenderFillRectanglesReq		    20
+ 
++/* 0.5 and higher */
++
++typedef struct {
++    CARD8	reqType;
++    CARD8	renderReqType;
++    CARD16	length B16;
++    Cursor	cid B32;
++    Picture	src B32;
++    CARD16	x B16;
++    CARD16	y B16;
++} xRenderCreateCursorReq;
++
++#define sz_xRenderCreateCursorReq		    16
++
++/* 0.6 and higher */
++
++/*
++ * This can't use an array because 32-bit values may be in bitfields
++ */
++typedef struct {
++    Fixed	matrix11 B32;
++    Fixed	matrix12 B32;
++    Fixed	matrix13 B32;
++    Fixed	matrix21 B32;
++    Fixed	matrix22 B32;
++    Fixed	matrix23 B32;
++    Fixed	matrix31 B32;
++    Fixed	matrix32 B32;
++    Fixed	matrix33 B32;
++} xRenderTransform;
++
++#define sz_xRenderTransform 36
++
++typedef struct {
++    CARD8		reqType;
++    CARD8		renderReqType;
++    CARD16		length B16;
++    Picture		picture B32;
++    xRenderTransform	transform;
++} xRenderSetPictureTransformReq;
++
++#define sz_xRenderSetPictureTransformReq	    44
++
++typedef struct {
++    CARD8		reqType;
++    CARD8		renderReqType;
++    CARD16		length B16;
++    Drawable		drawable B32;
++} xRenderQueryFiltersReq;
++
++#define sz_xRenderQueryFiltersReq		    8
++
++typedef struct {
++    BYTE    type;   /* X_Reply */
++    BYTE    pad1;
++    CARD16  sequenceNumber B16;
++    CARD32  length B32;
++    CARD32  numAliases B32;	/* LISTofCARD16 */
++    CARD32  numFilters B32;	/* LISTofSTRING8 */
++    CARD32  pad2 B32;
++    CARD32  pad3 B32;
++    CARD32  pad4 B32;
++    CARD32  pad5 B32;
++} xRenderQueryFiltersReply;
++
++#define sz_xRenderQueryFiltersReply		    32
++
++typedef struct {
++    CARD8		reqType;
++    CARD8		renderReqType;
++    CARD16		length B16;
++    Picture		picture B32;
++    CARD16		nbytes B16; /* number of bytes in name */
++    CARD16		pad B16;
++} xRenderSetPictureFilterReq;
++
++#define sz_xRenderSetPictureFilterReq		    12
++
++/* 0.8 and higher */
++
++typedef struct {
++    Cursor		cursor B32;
++    CARD32		delay B32;
++} xAnimCursorElt;
++
++#define sz_xAnimCursorElt			    8
++
++typedef struct {
++    CARD8		reqType;
++    CARD8		renderReqType;
++    CARD16		length B16;
++    Cursor		cid B32;
++} xRenderCreateAnimCursorReq;
++
++#define sz_xRenderCreateAnimCursorReq		    8
++
++/* 0.9 and higher */
++
++typedef struct {
++    CARD8		reqType;
++    CARD8		renderReqType;
++    CARD16		length B16;
++    Picture		picture;
++    INT16		xOff B16;
++    INT16		yOff B16;
++} xRenderAddTrapsReq;
++
++#define sz_xRenderAddTrapsReq			    12
++
++/* 0.10 and higher */
++
++typedef struct {
++    CARD8	reqType;
++    CARD8	renderReqType;
++    CARD16	length B16;
++    Picture	pid B32;
++    xRenderColor color;
++} xRenderCreateSolidFillReq;
++
++#define sz_xRenderCreateSolidFillReq                 16
++
++typedef struct {
++    CARD8	reqType;
++    CARD8	renderReqType;
++    CARD16	length B16;
++    Picture	pid B32;
++    xPointFixed p1;
++    xPointFixed p2;
++    CARD32      nStops;
++} xRenderCreateLinearGradientReq;
++
++#define sz_xRenderCreateLinearGradientReq                 28
++
++typedef struct {
++    CARD8	reqType;
++    CARD8	renderReqType;
++    CARD16	length B16;
++    Picture	pid B32;
++    xPointFixed inner;
++    xPointFixed outer;
++    Fixed       inner_radius;
++    Fixed       outer_radius;
++    CARD32      nStops;
++} xRenderCreateRadialGradientReq;
++
++#define sz_xRenderCreateRadialGradientReq                 36
++
++typedef struct {
++    CARD8	reqType;
++    CARD8	renderReqType;
++    CARD16	length B16;
++    Picture	pid B32;
++    xPointFixed center;
++    Fixed       angle; /* in degrees */
++    CARD32      nStops;
++} xRenderCreateConicalGradientReq;
++
++#define sz_xRenderCreateConicalGradientReq                 24
++
+ #undef Window
+ #undef Drawable
+ #undef Font
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/userform-scrollleftandtop.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/userform-scrollleftandtop.diff
@@ -0,0 +1,77 @@
+Index: svx/inc/svx/msocximex.hxx
+===================================================================
+RCS file: /cvs/graphics/svx/inc/svx/msocximex.hxx,v
+retrieving revision 1.4
+diff -u -p -r1.4 msocximex.hxx
+--- svx/inc/svx/msocximex.hxx	27 Sep 2007 13:00:53 -0000	1.4
++++ svx/inc/svx/msocximex.hxx	13 Mar 2008 17:13:53 -0000
+@@ -838,6 +838,8 @@ public:
+ 
+ 	sal_uInt32 	nScrollWidth;
+ 	sal_uInt32 	nScrollHeight;
++	sal_uInt32 	nScrollLeft;
++	sal_uInt32 	nScrollTop;
+ 
+ 
+ 	sal_uInt8 pIconHeader[20];
+@@ -919,7 +921,8 @@ public:
+ 
+ 	sal_uInt32 	nScrollWidth;
+ 	sal_uInt32 	nScrollHeight;
+-
++	sal_uInt32 	nScrollLeft;
++	sal_uInt32 	nScrollTop;
+ 
+ 	sal_uInt8 pIconHeader[20];
+ 	sal_uInt32  nIconLen;
+Index: svx/source/msfilter/msocximex.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/msocximex.cxx,v
+retrieving revision 1.35
+diff -u -p -r1.35 msocximex.cxx
+--- svx/source/msfilter/msocximex.cxx	27 Sep 2007 13:02:19 -0000	1.35
++++ svx/source/msfilter/msocximex.cxx	13 Mar 2008 17:14:21 -0000
+@@ -3910,7 +3910,7 @@ OCX_Frame::OCX_Frame( SotStorageRef& par
+ 		nKeepScrollBarsVisible(3), nCycle(0), nBorderStyle(0), nSpecialEffect(0),
+ 		nPicture(0), nPictureAlignment(2), nPictureSizeMode(0),
+ 		bPictureTiling(FALSE), nAccelerator(0), nIcon(0), pCaption(0),
+-		nScrollWidth(0), nScrollHeight(0), nIconLen(0), pIcon(0), nPictureLen(0),
++		nScrollWidth(0), nScrollHeight(0), nScrollLeft(0), nScrollTop(0), nIconLen(0), pIcon(0), nPictureLen(0),
+ 		pPicture(0)
+ {
+     msDialogType = C2U("com.sun.star.awt.UnoControlGroupBoxModel");
+@@ -4035,6 +4035,12 @@ sal_Bool OCX_Frame::Read(SvStorageStream
+     *pS >> nScrollWidth;
+     *pS >> nScrollHeight;
+ 
++    if (pBlockFlags[1] & 0x10)
++    {
++        *pS >> nScrollLeft;
++        *pS >> nScrollTop;
++    }
++
+     if ( bCaption )
+     {
+         lclReadCharArray( *pS, pCaption, nCaptionLen, pS->Tell() - nStart);
+@@ -4100,7 +4106,7 @@ OCX_UserForm::OCX_UserForm( SotStorageRe
+ 		nKeepScrollBarsVisible(3), nCycle(0), nBorderStyle(0), nSpecialEffect(0),
+ 		nPicture(0), nPictureAlignment(2), nPictureSizeMode(0),
+ 		bPictureTiling(FALSE), nAccelerator(0), nIcon(0), pCaption(0),
+-		nScrollWidth(0), nScrollHeight(0), nIconLen(0), pIcon(0), nPictureLen(0),
++		nScrollWidth(0), nScrollHeight(0), nScrollLeft(0), nScrollTop(0), nIconLen(0), pIcon(0), nPictureLen(0),
+ 		pPicture(0)
+ 	{
+             mnForeColor = 0x80000012;
+@@ -4217,6 +4223,12 @@ sal_Bool OCX_UserForm::Read(SvStorageStr
+     *pS >> nScrollWidth;
+     *pS >> nScrollHeight;
+ 
++    if (pBlockFlags[1] & 0x10)
++    {
++        *pS >> nScrollLeft;
++        *pS >> nScrollTop;
++    }
++
+ 	if (nIcon)
+ 	{
+ 		pS->Read(pIconHeader,20);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/psprint-postscript-page-setup.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/psprint-postscript-page-setup.diff
@@ -0,0 +1,92 @@
+--- psprint/inc/psprint/printerjob.hxx	2005-09-08 18:35:45.000000000 +0200
++++ psprint/inc/psprint/printerjob.hxx	2006-05-16 20:23:54.000000000 +0200
+@@ -99,7 +99,7 @@ private:            // private methods
+ 
+     bool			writeFeatureList( osl::File* pFile, const JobData&, bool bDocumentSetup );
+     bool            writeSetup( osl::File* pFile, const JobData& );
+-    bool            writePageSetup( osl::File* pFile, const JobData& );
++    bool            writePageSetup( osl::File* pFile, const JobData&, bool bWriteFeatures = true );
+     void			writeJobPatch( osl::File* File, const JobData& );
+     bool            writeProlog (osl::File* pFile, const JobData& );
+ 
+--- psprint/source/printergfx/printerjob.cxx	2006-05-04 10:41:55.000000000 +0200
++++ psprint/source/printergfx/printerjob.cxx	2006-05-16 20:23:10.000000000 +0200
+@@ -1047,14 +1047,6 @@ PrinterJob::StartPage (const JobData& rJ
+     if( ! (pPageHeader && pPageBody) )
+         return sal_False;
+ 
+-    /* #i7262# write setup only before first page
+-     *  don't do this in StartJob since the jobsetup there may be
+-     *  different.
+-     */ 
+-    bool bSuccess =  true;
+-    if( 1 == maPageList.size() )
+-        m_aDocumentJobData = rJobSetup;
+-
+     // write page header according to Document Structuring Conventions (DSC)
+     WritePS (pPageHeader, "%%Page: ");
+     WritePS (pPageHeader, aPageNo); 
+@@ -1077,13 +1069,25 @@ PrinterJob::StartPage (const JobData& rJ
+ 
+     WritePS (pPageHeader, pBBox);
+ 
+-    if (bSuccess)
+-        bSuccess = writePageSetup ( pPageHeader, rJobSetup );
+-    if(bSuccess)
+-        m_aLastJobData = rJobSetup;
++    /* #i7262# #i65491# write setup only before first page
++     *  (to %%Begin(End)Setup, instead of %%Begin(End)PageSetup)
++     *  don't do this in StartJob since the jobsetup there may be
++     *  different.
++     */ 
++    bool bWriteFeatures = true;
++    if( 1 == maPageList.size() )
++    {
++        m_aDocumentJobData = rJobSetup;
++        bWriteFeatures = false;
++    }
+ 
++    if ( writePageSetup( pPageHeader, rJobSetup, bWriteFeatures ) )
++    {
++        m_aLastJobData = rJobSetup;
++        return true;
++    }
+         
+-    return bSuccess;
++    return false;
+ }
+ 
+ sal_Bool
+@@ -1174,12 +1178,9 @@ bool PrinterJob::writeFeatureList( osl::
+                 if( pKey->getSetupType()    == PPDKey::DocumentSetup )
+                     bEmit = true;
+             }
+-            else
+-            {
+-                if( pKey->getSetupType()    == PPDKey::PageSetup        ||
+-                    pKey->getSetupType()    == PPDKey::AnySetup )
+-                    bEmit = true;
+-            }
++            if( pKey->getSetupType()    == PPDKey::PageSetup        ||
++                pKey->getSetupType()    == PPDKey::AnySetup )
++                bEmit = true;
+             if( bEmit )
+             {
+                 const PPDValue* pValue = rJob.m_aContext.getValue( pKey );
+@@ -1213,13 +1214,13 @@ bool PrinterJob::writeFeatureList( osl::
+     return bSuccess;
+ }
+ 
+-bool PrinterJob::writePageSetup( osl::File* pFile, const JobData& rJob )
++bool PrinterJob::writePageSetup( osl::File* pFile, const JobData& rJob, bool bWriteFeatures )
+ {
+     bool bSuccess = true;
+ 
+     WritePS (pFile, "%%BeginPageSetup\n%\n");
+-
+-    bSuccess = writeFeatureList( pFile, rJob, false );
++    if ( bWriteFeatures )
++        bSuccess = writeFeatureList( pFile, rJob, false );
+     WritePS (pFile, "%%EndPageSetup\n");
+ 
+     sal_Char  pTranslate [128];
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-text-shortcut-n352330.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-text-shortcut-n352330.diff
@@ -0,0 +1,466 @@
+Index: sd/prj/d.lst
+===================================================================
+RCS file: /cvs/graphics/sd/prj/d.lst,v
+retrieving revision 1.27
+diff -u -r1.27 d.lst
+--- sd/prj/d.lst	27 Jun 2007 15:35:08 -0000	1.27
++++ sd/prj/d.lst	10 Jan 2008 15:19:01 -0000
+@@ -66,6 +66,7 @@
+ ..\uiconfig\sdraw\accelerator\de\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\sdraw\accelerator\de\*.xml
+ ..\uiconfig\sdraw\accelerator\es\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\sdraw\accelerator\es\*.xml
+ ..\uiconfig\sdraw\accelerator\fr\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\sdraw\accelerator\fr\*.xml
++..\uiconfig\simpress\accelerator\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\simpress\accelerator\*.xml
+ ..\uiconfig\simpress\accelerator\en-US\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\simpress\accelerator\en-US\*.xml
+ ..\uiconfig\simpress\accelerator\de\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\simpress\accelerator\de\*.xml
+ ..\uiconfig\simpress\accelerator\es\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\simpress\accelerator\es\*.xml
+Index: sd/uiconfig/simpress/accelerator/default.xml
+===================================================================
+RCS file: uiconfig/simpress/accelerator/default.xml
+diff -N uiconfig/simpress/accelerator/default.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sd/uiconfig/simpress/accelerator/default.xml	10 Jan 2008 15:19:01 -0000
+@@ -0,0 +1,71 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
++	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
++	<accel:item accel:code="KEY_N" accel:shift="true" accel:mod1="true" xlink:href=".uno:NewDoc"/>
++	<accel:item accel:code="KEY_O" accel:mod1="true" xlink:href=".uno:Open"/>
++	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
++	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
++	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Save"/>
++	<accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
++	<accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
++	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
++	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
++	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
++	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
++	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
++	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
++	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
++	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
++	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
++	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
++	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
++	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
++	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
++	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
++	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
++	<accel:item accel:code="KEY_F2" xlink:href=".uno:Text"/>
++	<accel:item accel:code="KEY_I" accel:mod1="true" xlink:href=".uno:Italic"/>
++	<accel:item accel:code="KEY_B" accel:mod1="true" xlink:href=".uno:Bold"/>
++	<accel:item accel:code="KEY_U" accel:mod1="true" xlink:href=".uno:Underline"/>
++	<accel:item accel:code="KEY_L" accel:mod1="true" xlink:href=".uno:LeftPara"/>
++	<accel:item accel:code="KEY_R" accel:mod1="true" xlink:href=".uno:RightPara"/>
++	<accel:item accel:code="KEY_E" accel:mod1="true" xlink:href=".uno:CenterPara"/>
++	<accel:item accel:code="KEY_J" accel:mod1="true" xlink:href=".uno:JustifyPara"/>
++	<accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
++	<accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
++	<accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
++	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
++	<accel:item accel:code="KEY_F8" xlink:href=".uno:ToggleObjectBezierMode"/>
++	<accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
++	<accel:item accel:code="KEY_F7" accel:mod1="true" xlink:href=".uno:Thesaurus"/>
++	<accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:BringToFront"/>
++	<accel:item accel:code="KEY_SUBTRACT" accel:shift="true" accel:mod1="true" xlink:href=".uno:SendToBack"/>
++	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" xlink:href=".uno:SuperScript"/>
++	<accel:item accel:code="KEY_B" accel:shift="true" accel:mod1="true" xlink:href=".uno:SubScript"/>
++	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:Navigator"/>
++	<accel:item accel:code="KEY_F5" accel:shift="true" xlink:href=".uno:RestoreEditingView"/>
++	<accel:item accel:code="KEY_F5" xlink:href=".uno:Presentation"/>
++	<accel:item accel:code="KEY_F2" accel:mod1="true" xlink:href=".uno:Presentation"/>
++	<accel:item accel:code="KEY_F9" xlink:href=".uno:Presentation"/>
++	<accel:item accel:code="KEY_F8" accel:shift="true" accel:mod1="true" xlink:href=".uno:TextFitToSize"/>
++	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" xlink:href=".uno:FormatGroup"/>
++	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:FormatUngroup"/>
++	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
++	<accel:item accel:code="KEY_V" accel:shift="true" accel:mod1="true" xlink:href=".uno:PasteClipboard"/>
++	<accel:item accel:code="KEY_F3" accel:shift="true" xlink:href=".uno:CopyObjects"/>
++	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:PixelMode"/>
++	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" xlink:href=".uno:Combine"/>
++	<accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:Forward"/>
++	<accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:Backward"/>
++	<accel:item accel:code="KEY_A" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:AnimationMode"/>
++	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:Dismantle"/>
++	<accel:item accel:code="KEY_F3" xlink:href=".uno:EnterGroup"/>
++	<accel:item accel:code="KEY_F3" accel:mod1="true" xlink:href=".uno:LeaveGroup"/>
++    <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
++	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:InsertNonBreakingSpace"/>
++    <accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:InsertZWSP"/>
++    <accel:item accel:code="KEY_UP" accel:shift="true" accel:mod2="true" xlink:href=".uno:OutlineUp"/>
++    <accel:item accel:code="KEY_DOWN" accel:shift="true" accel:mod2="true" xlink:href=".uno:OutlineDown"/>
++    <accel:item accel:code="KEY_LEFT" accel:shift="true" accel:mod2="true" xlink:href=".uno:OutlineLeft"/>
++    <accel:item accel:code="KEY_RIGHT" accel:shift="true" accel:mod2="true" xlink:href=".uno:OutlineRight"/>
++</accel:acceleratorlist>
+Index: sd/uiconfig/simpress/accelerator/de/default.xml
+===================================================================
+RCS file: /cvs/graphics/sd/uiconfig/simpress/accelerator/de/default.xml,v
+retrieving revision 1.6
+diff -u -r1.6 default.xml
+--- sd/uiconfig/simpress/accelerator/de/default.xml	1 Feb 2006 12:54:11 -0000	1.6
++++ sd/uiconfig/simpress/accelerator/de/default.xml	10 Jan 2008 15:19:01 -0000
+@@ -1,67 +1,11 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
+-	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
+-	<accel:item accel:code="KEY_N" accel:shift="true" accel:mod1="true" xlink:href=".uno:NewDoc"/>
+-	<accel:item accel:code="KEY_O" accel:mod1="true" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
+-	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Save"/>
+-	<accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
+-	<accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
+-	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
+-	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
+-	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
+-	<accel:item accel:code="KEY_F2" xlink:href=".uno:Text"/>
+ 	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" xlink:href=".uno:Italic"/>
+ 	<accel:item accel:code="KEY_F" accel:shift="true" accel:mod1="true" xlink:href=".uno:Bold"/>
+ 	<accel:item accel:code="KEY_U" accel:shift="true" accel:mod1="true" xlink:href=".uno:Underline"/>
+-	<accel:item accel:code="KEY_L" accel:mod1="true" xlink:href=".uno:LeftPara"/>
+-	<accel:item accel:code="KEY_R" accel:mod1="true" xlink:href=".uno:RightPara"/>
+-	<accel:item accel:code="KEY_E" accel:mod1="true" xlink:href=".uno:CenterPara"/>
+ 	<accel:item accel:code="KEY_B" accel:mod1="true" xlink:href=".uno:JustifyPara"/>
+-	<accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
+-	<accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
+-	<accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
+-	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
+-	<accel:item accel:code="KEY_F8" xlink:href=".uno:ToggleObjectBezierMode"/>
+-	<accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
+-	<accel:item accel:code="KEY_F7" accel:mod1="true" xlink:href=".uno:Thesaurus"/>
+-	<accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:BringToFront"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:shift="true" accel:mod1="true" xlink:href=".uno:SendToBack"/>
+ 	<accel:item accel:code="KEY_H" accel:mod1="true" xlink:href=".uno:SuperScript"/>
+ 	<accel:item accel:code="KEY_T" accel:mod1="true" xlink:href=".uno:SubScript"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:Navigator"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" xlink:href=".uno:RestoreEditingView"/>
+-	<accel:item accel:code="KEY_F5" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F2" accel:mod1="true" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F9" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F8" accel:shift="true" accel:mod1="true" xlink:href=".uno:TextFitToSize"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" xlink:href=".uno:FormatGroup"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:FormatUngroup"/>
+-	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
+-	<accel:item accel:code="KEY_V" accel:shift="true" accel:mod1="true" xlink:href=".uno:PasteClipboard"/>
+-	<accel:item accel:code="KEY_F3" accel:shift="true" xlink:href=".uno:CopyObjects"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:PixelMode"/>
+ 	<accel:item accel:code="KEY_C" accel:shift="true" accel:mod1="true" xlink:href=".uno:Combine"/>
+-	<accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:Forward"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:Backward"/>
+-	<accel:item accel:code="KEY_A" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:AnimationMode"/>
+ 	<accel:item accel:code="KEY_C" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:Dismantle"/>
+-	<accel:item accel:code="KEY_F3" xlink:href=".uno:EnterGroup"/>
+-	<accel:item accel:code="KEY_F3" accel:mod1="true" xlink:href=".uno:LeaveGroup"/>
+-    <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
+-	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:InsertNonBreakingSpace"/>
+-    <accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:InsertZWSP"/>
+ </accel:acceleratorlist>
+Index: sd/uiconfig/simpress/accelerator/en-GB/default.xml
+===================================================================
+RCS file: uiconfig/simpress/accelerator/en-GB/default.xml
+diff -N uiconfig/simpress/accelerator/en-GB/default.xml
+--- sd/uiconfig/simpress/accelerator/en-GB/default.xml	1 Feb 2006 12:54:23 -0000	1.6
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,67 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
+-	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
+-	<accel:item accel:code="KEY_N" accel:shift="true" accel:mod1="true" xlink:href=".uno:NewDoc"/>
+-	<accel:item accel:code="KEY_O" accel:mod1="true" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
+-	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Save"/>
+-	<accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
+-	<accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
+-	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
+-	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
+-	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
+-	<accel:item accel:code="KEY_F2" xlink:href=".uno:Text"/>
+-	<accel:item accel:code="KEY_I" accel:mod1="true" xlink:href=".uno:Italic"/>
+-	<accel:item accel:code="KEY_B" accel:mod1="true" xlink:href=".uno:Bold"/>
+-	<accel:item accel:code="KEY_U" accel:mod1="true" xlink:href=".uno:Underline"/>
+-	<accel:item accel:code="KEY_L" accel:mod1="true" xlink:href=".uno:LeftPara"/>
+-	<accel:item accel:code="KEY_R" accel:mod1="true" xlink:href=".uno:RightPara"/>
+-	<accel:item accel:code="KEY_E" accel:mod1="true" xlink:href=".uno:CenterPara"/>
+-	<accel:item accel:code="KEY_J" accel:mod1="true" xlink:href=".uno:JustifyPara"/>
+-	<accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
+-	<accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
+-	<accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
+-	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
+-	<accel:item accel:code="KEY_F8" xlink:href=".uno:ToggleObjectBezierMode"/>
+-	<accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
+-	<accel:item accel:code="KEY_F7" accel:mod1="true" xlink:href=".uno:Thesaurus"/>
+-	<accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:BringToFront"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:shift="true" accel:mod1="true" xlink:href=".uno:SendToBack"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" xlink:href=".uno:SuperScript"/>
+-	<accel:item accel:code="KEY_B" accel:shift="true" accel:mod1="true" xlink:href=".uno:SubScript"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:Navigator"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" xlink:href=".uno:RestoreEditingView"/>
+-	<accel:item accel:code="KEY_F5" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F2" accel:mod1="true" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F9" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F8" accel:shift="true" accel:mod1="true" xlink:href=".uno:TextFitToSize"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" xlink:href=".uno:FormatGroup"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:FormatUngroup"/>
+-	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
+-	<accel:item accel:code="KEY_V" accel:shift="true" accel:mod1="true" xlink:href=".uno:PasteClipboard"/>
+-	<accel:item accel:code="KEY_F3" accel:shift="true" xlink:href=".uno:CopyObjects"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:PixelMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" xlink:href=".uno:Combine"/>
+-	<accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:Forward"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:Backward"/>
+-	<accel:item accel:code="KEY_A" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:AnimationMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:Dismantle"/>
+-	<accel:item accel:code="KEY_F3" xlink:href=".uno:EnterGroup"/>
+-	<accel:item accel:code="KEY_F3" accel:mod1="true" xlink:href=".uno:LeaveGroup"/>
+-    <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
+-	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:InsertNonBreakingSpace"/>
+-    <accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:InsertZWSP"/>
+-</accel:acceleratorlist>
+Index: sd/uiconfig/simpress/accelerator/en-US/default.xml
+===================================================================
+RCS file: uiconfig/simpress/accelerator/en-US/default.xml
+diff -N uiconfig/simpress/accelerator/en-US/default.xml
+--- sd/uiconfig/simpress/accelerator/en-US/default.xml	1 Feb 2006 12:54:35 -0000	1.8
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,67 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
+-	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
+-	<accel:item accel:code="KEY_N" accel:shift="true" accel:mod1="true" xlink:href=".uno:NewDoc"/>
+-	<accel:item accel:code="KEY_O" accel:mod1="true" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
+-	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Save"/>
+-	<accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
+-	<accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
+-	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
+-	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
+-	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
+-	<accel:item accel:code="KEY_F2" xlink:href=".uno:Text"/>
+-	<accel:item accel:code="KEY_I" accel:mod1="true" xlink:href=".uno:Italic"/>
+-	<accel:item accel:code="KEY_B" accel:mod1="true" xlink:href=".uno:Bold"/>
+-	<accel:item accel:code="KEY_U" accel:mod1="true" xlink:href=".uno:Underline"/>
+-	<accel:item accel:code="KEY_L" accel:mod1="true" xlink:href=".uno:LeftPara"/>
+-	<accel:item accel:code="KEY_R" accel:mod1="true" xlink:href=".uno:RightPara"/>
+-	<accel:item accel:code="KEY_E" accel:mod1="true" xlink:href=".uno:CenterPara"/>
+-	<accel:item accel:code="KEY_J" accel:mod1="true" xlink:href=".uno:JustifyPara"/>
+-	<accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
+-	<accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
+-	<accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
+-	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
+-	<accel:item accel:code="KEY_F8" xlink:href=".uno:ToggleObjectBezierMode"/>
+-	<accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
+-	<accel:item accel:code="KEY_F7" accel:mod1="true" xlink:href=".uno:Thesaurus"/>
+-	<accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:BringToFront"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:shift="true" accel:mod1="true" xlink:href=".uno:SendToBack"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" xlink:href=".uno:SuperScript"/>
+-	<accel:item accel:code="KEY_B" accel:shift="true" accel:mod1="true" xlink:href=".uno:SubScript"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:Navigator"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" xlink:href=".uno:RestoreEditingView"/>
+-	<accel:item accel:code="KEY_F5" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F2" accel:mod1="true" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F9" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F8" accel:shift="true" accel:mod1="true" xlink:href=".uno:TextFitToSize"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" xlink:href=".uno:FormatGroup"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:FormatUngroup"/>
+-	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
+-	<accel:item accel:code="KEY_V" accel:shift="true" accel:mod1="true" xlink:href=".uno:PasteClipboard"/>
+-	<accel:item accel:code="KEY_F3" accel:shift="true" xlink:href=".uno:CopyObjects"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:PixelMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" xlink:href=".uno:Combine"/>
+-	<accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:Forward"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:Backward"/>
+-	<accel:item accel:code="KEY_A" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:AnimationMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:Dismantle"/>
+-	<accel:item accel:code="KEY_F3" xlink:href=".uno:EnterGroup"/>
+-	<accel:item accel:code="KEY_F3" accel:mod1="true" xlink:href=".uno:LeaveGroup"/>
+-    <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
+-	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:InsertNonBreakingSpace"/>
+-    <accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:InsertZWSP"/>
+-</accel:acceleratorlist>
+Index: sd/uiconfig/simpress/accelerator/es/default.xml
+===================================================================
+RCS file: /cvs/graphics/sd/uiconfig/simpress/accelerator/es/default.xml,v
+retrieving revision 1.6
+diff -u -r1.6 default.xml
+--- sd/uiconfig/simpress/accelerator/es/default.xml	1 Feb 2006 12:54:47 -0000	1.6
++++ sd/uiconfig/simpress/accelerator/es/default.xml	10 Jan 2008 15:19:01 -0000
+@@ -1,67 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
+-	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
+-	<accel:item accel:code="KEY_N" accel:shift="true" accel:mod1="true" xlink:href=".uno:NewDoc"/>
+ 	<accel:item accel:code="KEY_A" accel:mod1="true" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
+ 	<accel:item accel:code="KEY_G" accel:mod1="true" xlink:href=".uno:Save"/>
+-	<accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
+-	<accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
+-	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
+-	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
+-	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
+-	<accel:item accel:code="KEY_F2" xlink:href=".uno:Text"/>
+ 	<accel:item accel:code="KEY_K" accel:mod1="true" xlink:href=".uno:Italic"/>
+ 	<accel:item accel:code="KEY_N" accel:mod1="true" xlink:href=".uno:Bold"/>
+ 	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Underline"/>
+-	<accel:item accel:code="KEY_L" accel:mod1="true" xlink:href=".uno:LeftPara"/>
+-	<accel:item accel:code="KEY_R" accel:mod1="true" xlink:href=".uno:RightPara"/>
+ 	<accel:item accel:code="KEY_T" accel:mod1="true" xlink:href=".uno:CenterPara"/>
+-	<accel:item accel:code="KEY_J" accel:mod1="true" xlink:href=".uno:JustifyPara"/>
+-	<accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
+-	<accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
+-	<accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
+-	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
+-	<accel:item accel:code="KEY_F8" xlink:href=".uno:ToggleObjectBezierMode"/>
+-	<accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
+-	<accel:item accel:code="KEY_F7" accel:mod1="true" xlink:href=".uno:Thesaurus"/>
+-	<accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:BringToFront"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:shift="true" accel:mod1="true" xlink:href=".uno:SendToBack"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" xlink:href=".uno:SuperScript"/>
+-	<accel:item accel:code="KEY_B" accel:shift="true" accel:mod1="true" xlink:href=".uno:SubScript"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:Navigator"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" xlink:href=".uno:RestoreEditingView"/>
+-	<accel:item accel:code="KEY_F5" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F2" accel:mod1="true" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F9" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F8" accel:shift="true" accel:mod1="true" xlink:href=".uno:TextFitToSize"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" xlink:href=".uno:FormatGroup"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:FormatUngroup"/>
+-	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
+-	<accel:item accel:code="KEY_V" accel:shift="true" accel:mod1="true" xlink:href=".uno:PasteClipboard"/>
+-	<accel:item accel:code="KEY_F3" accel:shift="true" xlink:href=".uno:CopyObjects"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:PixelMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" xlink:href=".uno:Combine"/>
+-	<accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:Forward"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:Backward"/>
+-	<accel:item accel:code="KEY_A" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:AnimationMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:Dismantle"/>
+-	<accel:item accel:code="KEY_F3" xlink:href=".uno:EnterGroup"/>
+-	<accel:item accel:code="KEY_F3" accel:mod1="true" xlink:href=".uno:LeaveGroup"/>
+-    <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
+-	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:InsertNonBreakingSpace"/>
+-    <accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:InsertZWSP"/>
+ </accel:acceleratorlist>
+Index: sd/uiconfig/simpress/accelerator/fr/default.xml
+===================================================================
+RCS file: /cvs/graphics/sd/uiconfig/simpress/accelerator/fr/default.xml,v
+retrieving revision 1.6
+diff -u -r1.6 default.xml
+--- sd/uiconfig/simpress/accelerator/fr/default.xml	1 Feb 2006 12:54:58 -0000	1.6
++++ sd/uiconfig/simpress/accelerator/fr/default.xml	10 Jan 2008 15:19:01 -0000
+@@ -1,67 +1,4 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
+-	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
+-	<accel:item accel:code="KEY_N" accel:shift="true" accel:mod1="true" xlink:href=".uno:NewDoc"/>
+-	<accel:item accel:code="KEY_O" accel:mod1="true" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
+-	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
+-	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Save"/>
+-	<accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
+-	<accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
+-	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
+-	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
+-	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
+-	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
+-	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
+-	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
+-	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
+-	<accel:item accel:code="KEY_F2" xlink:href=".uno:Text"/>
+-	<accel:item accel:code="KEY_I" accel:mod1="true" xlink:href=".uno:Italic"/>
+ 	<accel:item accel:code="KEY_G" accel:mod1="true" xlink:href=".uno:Bold"/>
+-	<accel:item accel:code="KEY_U" accel:mod1="true" xlink:href=".uno:Underline"/>
+-	<accel:item accel:code="KEY_L" accel:mod1="true" xlink:href=".uno:LeftPara"/>
+-	<accel:item accel:code="KEY_R" accel:mod1="true" xlink:href=".uno:RightPara"/>
+-	<accel:item accel:code="KEY_E" accel:mod1="true" xlink:href=".uno:CenterPara"/>
+-	<accel:item accel:code="KEY_J" accel:mod1="true" xlink:href=".uno:JustifyPara"/>
+-	<accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
+-	<accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
+-	<accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
+-	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
+-	<accel:item accel:code="KEY_F8" xlink:href=".uno:ToggleObjectBezierMode"/>
+-	<accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
+-	<accel:item accel:code="KEY_F7" accel:mod1="true" xlink:href=".uno:Thesaurus"/>
+-	<accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:BringToFront"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:shift="true" accel:mod1="true" xlink:href=".uno:SendToBack"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" xlink:href=".uno:SuperScript"/>
+-	<accel:item accel:code="KEY_B" accel:shift="true" accel:mod1="true" xlink:href=".uno:SubScript"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:Navigator"/>
+-	<accel:item accel:code="KEY_F5" accel:shift="true" xlink:href=".uno:RestoreEditingView"/>
+-	<accel:item accel:code="KEY_F5" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F2" accel:mod1="true" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F9" xlink:href=".uno:Presentation"/>
+-	<accel:item accel:code="KEY_F8" accel:shift="true" accel:mod1="true" xlink:href=".uno:TextFitToSize"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" xlink:href=".uno:FormatGroup"/>
+-	<accel:item accel:code="KEY_G" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:FormatUngroup"/>
+-	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
+-	<accel:item accel:code="KEY_V" accel:shift="true" accel:mod1="true" xlink:href=".uno:PasteClipboard"/>
+-	<accel:item accel:code="KEY_F3" accel:shift="true" xlink:href=".uno:CopyObjects"/>
+-	<accel:item accel:code="KEY_P" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:PixelMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" xlink:href=".uno:Combine"/>
+-	<accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:Forward"/>
+-	<accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:Backward"/>
+-	<accel:item accel:code="KEY_A" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:AnimationMode"/>
+-	<accel:item accel:code="KEY_K" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:Dismantle"/>
+-	<accel:item accel:code="KEY_F3" xlink:href=".uno:EnterGroup"/>
+-	<accel:item accel:code="KEY_F3" accel:mod1="true" xlink:href=".uno:LeaveGroup"/>
+-    <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
+-	<accel:item accel:code="KEY_SPACE" accel:mod1="true" xlink:href=".uno:InsertNonBreakingSpace"/>
+-    <accel:item accel:code="KEY_DIVIDE" accel:mod1="true" xlink:href=".uno:InsertZWSP"/>
+ </accel:acceleratorlist>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-unused-stuff.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-unused-stuff.diff
@@ -0,0 +1,1859 @@
+diff --git a/basic/source/app/process.cxx b/basic/source/app/process.cxx
+index 6cb5b25..516816d 100644
+--- basic/source/app/process.cxx
++++ basic/source/app/process.cxx
+@@ -46,9 +46,6 @@
+ #ifndef _ERRCODE_HXX //autogen
+ #include <tools/errcode.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _SBXCORE_HXX
+ #include <basic/sbxcore.hxx>
+ #endif
+diff --git a/extensions/test/sax/testsax.cxx b/extensions/test/sax/testsax.cxx
+index 1b2d845..b3b70e3 100644
+--- extensions/test/sax/testsax.cxx
++++ extensions/test/sax/testsax.cxx
+@@ -42,7 +42,6 @@
+ 
+ #include <rtl/wstring.hxx>
+ #include <osl/time.h>
+-//#include <vos/dynload.hxx>
+ //#include <osl/diagnose.h>
+ #include <usr/weak.hxx>
+ #include <tools/string.hxx>
+diff --git a/extensions/workben/pythonautotest.cxx b/extensions/workben/pythonautotest.cxx
+index 950d28f..3f8c20d 100644
+--- extensions/workben/pythonautotest.cxx
++++ extensions/workben/pythonautotest.cxx
+@@ -41,7 +41,6 @@
+ #include <stardiv/uno/beans/exactname.hxx>
+ 
+ #include <rtl/ustring.hxx>
+-#include <vos/dynload.hxx>
+ #include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+diff --git a/extensions/workben/pythontest.cxx b/extensions/workben/pythontest.cxx
+index 2c8d894..26905e9 100644
+--- extensions/workben/pythontest.cxx
++++ extensions/workben/pythontest.cxx
+@@ -42,7 +42,6 @@
+ #include <stardiv/uno/beans/exactname.hxx>
+ 
+ #include <rtl/ustring.hxx>
+-#include <vos/dynload.hxx>
+ #include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+diff --git a/extensions/workben/testcomponent.cxx b/extensions/workben/testcomponent.cxx
+index cd49e03..9a586a3 100644
+--- extensions/workben/testcomponent.cxx
++++ extensions/workben/testcomponent.cxx
+@@ -49,7 +49,6 @@
+ #include <smart/com/sun/star/lang/XComponent.hxx>
+ //#include <com/sun/star/registry/ stardiv/uno/repos/simplreg.hxx>
+ 
+-#include <vos/dynload.hxx>
+ #include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+diff --git a/extensions/workben/testframecontrol.cxx b/extensions/workben/testframecontrol.cxx
+index dfbb793..9c79532 100644
+--- extensions/workben/testframecontrol.cxx
++++ extensions/workben/testframecontrol.cxx
+@@ -37,7 +37,6 @@
+ #include "precompiled_extensions.hxx"
+ 
+ //#include <osl/mutex.hxx>
+-#include <vos/dynload.hxx>
+ 
+ #include <vcl/wrkwin.hxx>
+ #include <vcl/svapp.hxx>
+diff --git a/extensions/workben/testresource.cxx b/extensions/workben/testresource.cxx
+index 0aed67a..8725e9b 100644
+--- extensions/workben/testresource.cxx
++++ extensions/workben/testresource.cxx
+@@ -40,7 +40,6 @@
+ #include <smart/com/sun/star/script/XInvocation.hxx>
+ 
+ #include <rtl/ustring.hxx>
+-#include <vos/dynload.hxx>
+ #include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+diff --git a/sax/test/saxdemo.cxx b/sax/test/saxdemo.cxx
+index 9d73d6e..acca666 100644
+--- sax/test/saxdemo.cxx
++++ sax/test/saxdemo.cxx
+@@ -58,7 +58,6 @@
+ #include <cppuhelper/implbase1.hxx>
+ #include <cppuhelper/implbase3.hxx>
+ 
+-#include <vos/dynload.hxx>
+ #include <osl/diagnose.h>
+ 
+ using namespace ::rtl;
+diff --git a/sax/test/testcomponent.cxx b/sax/test/testcomponent.cxx
+index 1fa63f3..49da513 100644
+--- sax/test/testcomponent.cxx
++++ sax/test/testcomponent.cxx
+@@ -49,7 +49,6 @@
+ 
+ #include <cppuhelper/servicefactory.hxx>
+ 
+-#include <vos/dynload.hxx>
+ #include <osl/diagnose.h>
+ 
+ using namespace ::rtl;
+diff --git a/sc/inc/pch/precompiled_sc.hxx b/sc/inc/pch/precompiled_sc.hxx
+index bbef9da..607220b 100644
+--- sc/inc/pch/precompiled_sc.hxx
++++ sc/inc/pch/precompiled_sc.hxx
+@@ -252,8 +252,6 @@
+ #include <vcl/window.hxx>
+ #include <vcl/wintypes.hxx>
+ #include <sal/macros.h>
+-#include <vos/object.hxx>
+-#include <vos/types.hxx>
+ #include <wchar.h>
+ 
+ #endif
+diff --git a/sc/source/filter/inc/filt_pch.hxx b/sc/source/filter/inc/filt_pch.hxx
+index d31ae05..df03b56 100644
+--- sc/source/filter/inc/filt_pch.hxx
++++ sc/source/filter/inc/filt_pch.hxx
+@@ -171,8 +171,6 @@
+ #include <so3/so2ref.hxx>
+ #include <so3/so2dll.hxx>
+ #include <svx/fhgtitem.hxx>
+-#include <vos/types.hxx>
+-#include <vos/object.hxx>
+ #include <sal/macros.h>
+ #include <tools/unqid.hxx>
+ #include <com/sun/star/uno/Sequence.h>
+@@ -238,7 +236,6 @@
+ #include <com/sun/star/container/NoSuchElementException.hpp>
+ #include <vcl/svapp.hxx>
+ #include <osl/thread.hxx>
+-#include <vos/runnable.hxx>
+ #include <salhelper/simplereferenceobject.hxx>
+ #include <vcl/apptypes.hxx>
+ #include <svx/editdata.hxx>
+diff --git a/starmath/source/math_pch.cxx b/starmath/source/math_pch.cxx
+index dd32c2e..f4e69a9 100644
+--- starmath/source/math_pch.cxx
++++ starmath/source/math_pch.cxx
+@@ -126,10 +126,8 @@
+ #include <usr/xiface.hxx>
+ #include <usr/ustring.hxx>
+ #include <salhelper/simplereferenceobject.hxx>
+-#include <vos/types.hxx>
+ #include <osl/types.h>
+ #include <osl/interlck.h>
+-#include <vos/object.hxx>
+ #include <sal/macros.h>
+ #include <smdll.hxx>
+ #include <sfx2/sfxsids.hrc>
+@@ -152,7 +150,6 @@
+ #include <smmod.hxx>
+ #include <osl/thread.hxx>
+ #include <osl/thread.h>
+-#include <vos/runnable.hxx>
+ #include <vcl/apptypes.hxx>
+ #include <tools/dynary.hxx>
+ #include <vcl/metric.hxx>
+diff --git a/stoc/test/testintrosp.cxx b/stoc/test/testintrosp.cxx
+index 396c944..5be43aa 100644
+--- stoc/test/testintrosp.cxx
++++ stoc/test/testintrosp.cxx
+@@ -45,8 +45,6 @@
+ #include <osl/diagnose.h>
+ #endif
+ 
+-//#include <vos/dynload.hxx>
+-
+ #include <ModuleA/XIntroTest.hpp>
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ #include <com/sun/star/beans/XIntrospection.hpp>
+diff --git a/vos/inc/vos/execabl.hxx b/vos/inc/vos/execabl.hxx
+index f229f09..bfb7604 100644
+--- vos/inc/vos/execabl.hxx
++++ vos/inc/vos/execabl.hxx
+@@ -37,9 +37,6 @@
+ #ifndef _VOS_EXECABL_HXX_
+ #define _VOS_EXECABL_HXX_
+ 
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+ #ifndef _VOS_REFERNCE_HXX_
+ #	include <vos/refernce.hxx>
+ #endif
+diff --git a/vos/inc/vos/istream.hxx b/vos/inc/vos/istream.hxx
+index ab0b719..1fd78ec 100644
+--- vos/inc/vos/istream.hxx
++++ vos/inc/vos/istream.hxx
+@@ -40,10 +40,6 @@
+ #include "sal/types.h"
+ #endif
+ 
+-#ifndef _VOS_TYPES_HXX_
+-#	include	<vos/types.hxx>
+-#endif
+-
+ namespace vos
+ {     
+ 
+diff --git a/vos/inc/vos/object.hxx b/vos/inc/vos/object.hxx
+index 5efb555..340900a 100644
+--- vos/inc/vos/object.hxx
++++ vos/inc/vos/object.hxx
+@@ -37,9 +37,6 @@
+ #ifndef _VOS_OBJECT_HXX_
+ #define _VOS_OBJECT_HXX_
+ 
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+ #ifndef _VOS_MACROS_HXX_
+ #	include <vos/macros.hxx>
+ #endif
+diff --git a/vos/inc/vos/pipe.hxx b/vos/inc/vos/pipe.hxx
+index 3067a42..2982ae2 100644
+--- vos/inc/vos/pipe.hxx
++++ vos/inc/vos/pipe.hxx
+@@ -40,9 +40,6 @@
+ #ifndef _OSL_PIPE_H_
+ #   include <osl/pipe.h>
+ #endif
+-#ifndef _VOS_TYPES_HXX_
+-#   include <vos/types.hxx>
+-#endif
+ #ifndef _VOS_OBJECT_HXX_
+ #   include <vos/object.hxx>
+ #endif
+diff --git a/vos/inc/vos/process.hxx b/vos/inc/vos/process.hxx
+deleted file mode 100644
+index eb59c0c..0000000
+--- vos/inc/vos/process.hxx
++++ /dev/null
+@@ -1,333 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: process.hxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:05:29 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_PROCESS_HXX_
+-#define _VOS_PROCESS_HXX_
+-
+-#ifndef _RTL_USTRING_HXX_
+-#   include <rtl/ustring.hxx>
+-#endif
+-#ifndef _OSL_SECURITY_HXX_
+-#   include <osl/security.hxx>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#   include <vos/object.hxx>
+-#endif
+-#ifndef _OSL_PROCESS_H_
+-#   include <osl/process.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-class OProcess;
+-
+-/** helper class to fill a vector of command line arguments
+- */
+-class OArgumentList
+-{
+-    sal_uInt32 n_Args;
+-    rtl_uString** m_aVec;
+-
+-public:
+-
+-    OArgumentList();
+-    OArgumentList( sal_uInt32 nArgs, const ::rtl::OUString* aArgument1, ... );
+-    // switched argument list to avoid ambiguity with previous constructor.
+-    OArgumentList( const ::rtl::OUString aArgumentList[], sal_uInt32 nArgs );
+-
+-    OArgumentList( const OArgumentList& rOther);
+-
+-    OArgumentList& operator=( const OArgumentList& rOther);
+-
+-    virtual ~OArgumentList();
+-
+-    friend class OProcess;
+-};
+-
+-/** helper class to fill a vector of environment settings
+- */
+-class OEnvironment
+-{
+-    sal_Int32 n_Vars;
+-    rtl_uString** m_aVec;
+-
+-public:
+-
+-    OEnvironment();
+-    OEnvironment( sal_Int32 nVars, const ::rtl::OUString* aVariable1, ... );
+-    // switched argument list to avoid ambiguity with previous constructor.
+-    OEnvironment( const ::rtl::OUString aVariableList[], sal_Int32 nVars );
+-
+-    OEnvironment( const OEnvironment& rOther );
+-
+-    OEnvironment& operator=( const OEnvironment& rOther );
+-
+-    virtual ~OEnvironment();
+-
+-    friend class OProcess;
+-};
+-
+-
+-/** startup child processes.
+-    @see OStartupInfo
+-    Used for starting an monitoring child processes with special features:
+-    <ul><li>setting enviroments,
+-    <li>setting working directories,
+-    <li>setting user rights and security,
+-    <li>providing ioresources like file descriptors and sockets.</ul>
+-*/
+-class OProcess : public OObject
+-{
+-    VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OProcess, vos));
+-
+-public:
+-
+-    /** Options for execution mode:
+-    */
+-    enum TProcessOption
+-    {
+-        TOption_Wait       = osl_Process_WAIT,       // wait for completion
+-        TOption_SearchPath = osl_Process_SEARCHPATH, // search path for executable
+-        TOption_Detached   = osl_Process_DETACHED,   // run detached
+-        TOption_Normal     = osl_Process_NORMAL,     // run in normal window
+-        TOption_Hidden     = osl_Process_HIDDEN,     // run hidden
+-        TOption_Minimized  = osl_Process_MINIMIZED,  // run in minimized window
+-        TOption_Maximized  = osl_Process_MAXIMIZED,  // run in maximized window
+-        TOption_FullScreen = osl_Process_FULLSCREEN  // run in fullscreen window
+-    };
+-
+-    /** Errorcodes:
+-    */
+-    enum TProcessError {
+-        E_None         = osl_Process_E_None,            /* no error */
+-        E_NotFound     = osl_Process_E_NotFound,        /* image not found */
+-        E_TimedOut     = osl_Process_E_TimedOut,        /* timout occured */
+-        E_NoPermission = osl_Process_E_NoPermission,    /* permission denied */
+-        E_Unknown      = osl_Process_E_Unknown,         /* unknown error */
+-        E_InvalidError = osl_Process_E_InvalidError     /* unmapped error */
+-    };
+-
+-    enum TDescriptorFlags
+-    {
+-        TFlags_None = osl_Process_DFNONE,
+-        TFlags_Wait = osl_Process_DFWAIT
+-    };
+-
+-    enum TProcessData
+-    {
+-        TData_Identifier = osl_Process_IDENTIFIER,
+-        TData_ExitCode   = osl_Process_EXITCODE,
+-        TData_CpuTimes   = osl_Process_CPUTIMES,
+-        TData_HeapUsage  = osl_Process_HEAPUSAGE
+-    };
+-
+-    struct TProcessInfo : public oslProcessInfo
+-    {
+-        TProcessInfo() { Size = sizeof(*this); }
+-    };
+-
+-    typedef oslProcessIdentifier TProcessIdentifier;
+-
+-    /** Creating a process object by naming the executable.
+-        Does not yet start the process.
+-        @see execute
+-    */
+-
+-    OProcess( );
+-
+-    OProcess(const ::rtl::OUString& strImageName);
+-
+-    OProcess(const ::rtl::OUString& strImageName,
+-             const ::rtl::OUString& strWorkingDirectory);
+-
+-    /// destroying a process object
+-    virtual ~OProcess();
+-
+-    SAL_CALL operator oslProcess()
+-        { return m_Process; }
+-
+-    SAL_CALL operator oslProcess() const
+-        { return m_Process; }
+-
+-    static OProcess* SAL_CALL getProcess(TProcessIdentifier Identifier);
+-
+-    /** execute the given process.
+-        This process becomes a child of the caller.
+-        If there are any ioresources provided from the calling process, this
+-        function returns only, if the child process calls OStartupInfo::acceptIOResource().
+-        @param Options [in] describes the execution mode.
+-        @return only not eNONE, if too much enviroments are added.
+-        @see OStartupInfo::acceptIOResource
+-    */
+-    TProcessError SAL_CALL execute(TProcessOption Options,
+-                          const OArgumentList& aArgumentList = OArgumentList(),
+-                          const OEnvironment&  aEnvironment  = OEnvironment()
+-                          );
+-
+-    /** execute the given process with the specified security.
+-        This process becomes a child of the caller.
+-        The process is executed with the rights of the user, for whom the security object is created.
+-        If there are any ioresources provided from the calling process, this
+-        function returns only, if the child process calls OStartupInfo::acceptIOResource().
+-        @param Options [in] describes the execution mode.
+-        @param Security [in] is a given security object for one logged in user.
+-        @return eNONE, if the proccess could be executed, otherwise an errorcode.
+-        @see OStartupInfo::acceptIOResource
+-    */
+-    TProcessError SAL_CALL execute(TProcessOption Options,
+-                          const osl::Security &Security,
+-                          const OArgumentList& aArgumentList = OArgumentList(),
+-                          const OEnvironment&  aEnvironment  = OEnvironment()
+-                         );
+-
+-    TProcessError SAL_CALL terminate();
+-
+-    TProcessError SAL_CALL getInfo(TProcessData Data, TProcessInfo* pInfo) const;
+-
+-    static TProcessError SAL_CALL getCurrentInfo(TProcessData Data, TProcessInfo* pInfo);
+-
+-    /** wait for the completation of this child process
+-        @return eNONE if child process exits, otherwise nothing.
+-    */
+-    TProcessError SAL_CALL join();
+-
+-protected:
+-    const ::rtl::OUString m_strImageName;
+-    const ::rtl::OUString m_strDirectory;
+-
+-    oslProcess         m_Process;
+-};
+-
+-/** informations for client processes provided by the parent.
+-    @see OProcess
+-*/
+-
+-
+-class OStartupInfo : public OObject
+-{
+-    VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OStartupInfo, vos));
+-
+-public:
+-    /** Errorcodes:
+-    */
+-    enum TStartupError {
+-        E_None         = osl_Process_E_None,            /* no error */
+-        E_NotFound     = osl_Process_E_NotFound,        /* image not found */
+-        E_TimedOut     = osl_Process_E_TimedOut,        /* timout occured */
+-        E_NoPermission = osl_Process_E_NoPermission,    /* permission denied */
+-        E_Unknown      = osl_Process_E_Unknown,         /* unknown error */
+-        E_InvalidError = osl_Process_E_InvalidError     /* unmapped error */
+-    };
+-
+-    /** Constructor.
+-    */
+-    OStartupInfo();
+-
+-    /** Destructor
+-    */
+-    ~OStartupInfo();
+-
+-    /** @return the number of command line arguments.
+-     */
+-    sal_uInt32 SAL_CALL getCommandArgCount();
+-
+-    /** get the nArg-th command argument passed to the main-function of this process.
+-        @param nArg [in] the number of arguments to return.
+-        @param strCommandArg [out] the string that receives the argument.
+-        @return eNONE
+-    */
+-    TStartupError SAL_CALL getCommandArg(sal_uInt32 nArg, ::rtl::OUString& strCommandArg);
+-
+-    TStartupError SAL_CALL getExecutableFile(::rtl::OUString& strImageName)
+-        const;
+-
+-    /** Get the value of one enviroment variable.
+-        @param Name [in] denotes the name of the variable to get.
+-        @param Buffer [out] is the buffer where the value of this variable is returned.
+-        @param Max [in] is the size of this buffer.
+-        @return eNONE, if the variable exist in the enviroment, otherwise False.
+-    */
+-    TStartupError SAL_CALL getEnvironment(const ::rtl::OUString& strVar, ::rtl::OUString& strValue);
+-};
+-
+-
+-
+-/** get extended arguments from command line and an argument file
+-    the file name is given on the command line as "@filename"
+-    (filename must be in our UNC notation!)
+-    enumeration starts with 0 (i.e. argv[1])
+-    each line in the file will be treated as one argument
+-    @see also OProcess and OStartupInfo
+-*/
+-
+-class OExtCommandLineImpl;
+-
+-class OExtCommandLine : public OObject
+-{
+-    VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OExtCommandLine, vos));
+-    static vos::OExtCommandLineImpl* pExtImpl;
+-
+-public:
+-
+-    /** Constructor.
+-    */
+-    OExtCommandLine();
+-
+-    /** Destructor
+-    */
+-    virtual ~OExtCommandLine();
+-
+-    /** @return the number of extended command line arguments.
+-     */
+-    sal_uInt32 SAL_CALL getCommandArgCount();
+-
+-
+-    /** get the nArg-th extended command argument
+-        @param nArg [in] the number of extended argument to return.
+-        @param strCommandArg [out] the string that receives the argument.
+-        @return sal_True   if the nArg-th argument has been retriveded successfully
+-        @return sal_False  on all other cases
+-    */
+-    sal_Bool SAL_CALL getCommandArg(sal_uInt32 nArg, ::rtl::OUString& strCommandArg);
+-
+-
+-};
+-
+-}
+-
+-#endif  // _VOS_PROCESS_HXX_
+-
+-
+diff --git a/vos/inc/vos/refernce.hxx b/vos/inc/vos/refernce.hxx
+index 6256f6e..46e695f 100644
+--- vos/inc/vos/refernce.hxx
++++ vos/inc/vos/refernce.hxx
+@@ -36,9 +36,6 @@
+ #ifndef _VOS_REFERNCE_HXX_
+ #define _VOS_REFERNCE_HXX_
+ 
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+ #ifndef _OSL_INTERLCK_H_
+ #	include <osl/interlck.h>
+ #endif
+diff --git a/vos/inc/vos/runnable.hxx b/vos/inc/vos/runnable.hxx
+deleted file mode 100644
+index 7b1533b..0000000
+--- vos/inc/vos/runnable.hxx
++++ /dev/null
+@@ -1,79 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: runnable.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:39:03 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_RUNNABLE_HXX_
+-#define _VOS_RUNNABLE_HXX_
+-
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+-#ifndef _VOS_REFERNCE_HXX_
+-#	include <vos/refernce.hxx>
+-#endif
+-
+-namespace vos
+-{     
+-
+-
+-/** IRunnable
+-
+-	The IRunnable-interface is to be understood as wrapper around
+-	your application-code, which allows it to be executed asynchronously.
+-
+-
+-	@author  Bernd Hofner
+-	@version 0.1
+-*/
+-
+-class IRunnable
+-{
+-public:
+-
+-    IRunnable() { }
+-    virtual ~IRunnable() { }
+-    
+-    
+-	/** overload to implement your functionality.
+-	*/
+-	virtual void SAL_CALL run()= 0;
+-
+-};
+-
+-
+-}
+-
+-
+-#endif  // _VOS_RUNNABLE_HXX_
+-
+diff --git a/vos/inc/vos/stream.hxx b/vos/inc/vos/stream.hxx
+index 096f075..c617cf2 100644
+--- vos/inc/vos/stream.hxx
++++ vos/inc/vos/stream.hxx
+@@ -36,9 +36,6 @@
+ #ifndef _VOS_STREAM_HXX_
+ #define _VOS_STREAM_HXX_
+ 
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+ #ifndef _VOS_OBJECT_HXX_
+ #	include <vos/object.hxx>
+ #endif
+diff --git a/vos/inc/vos/thread.hxx b/vos/inc/vos/thread.hxx
+deleted file mode 100644
+index 57fccb9..0000000
+--- vos/inc/vos/thread.hxx
++++ /dev/null
+@@ -1,255 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: thread.hxx,v $
+- *
+- *  $Revision: 1.7 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 11:18:52 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_THREAD_HXX_
+-#define _VOS_THREAD_HXX_
+-
+-#ifndef _VOS_TYPES_HXX_
+-#	include <vos/types.hxx>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#	include <vos/object.hxx>
+-#endif
+-#ifndef _OSL_THREAD_H_
+-#	include <osl/thread.h>
+-#endif
+-#ifndef _OSL_CONDITION_H_
+-#	include <osl/conditn.h>
+-#endif
+-#ifndef _VOS_RUNNABLE_HXX_
+-#	include <vos/runnable.hxx>
+-#endif
+-
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-extern "C" typedef void ThreadWorkerFunction_impl(void *);
+-ThreadWorkerFunction_impl threadWorkerFunction_impl;
+-
+-/** OThread is an objectoriented interface for threads.
+-	This class should be the base class for all objects using threads. The
+-	main working function is the run() method and should be overriden in the
+-	derived class. To support soft termination of a thread, yield() should
+-	be called in regular intervalls and the return value should be checked.
+-	If yield returned False the run method should return.
+-
+-	@author  Bernd Hofner
+-	@version 1.0
+-*/
+-
+-class OThread : public vos::IRunnable,
+-				public vos::OObject
+-{
+-
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OThread, vos));
+-    
+-    oslCondition m_aCondition;
+-
+-public:
+-	/** priority of thread.
+-	*/
+-	enum TThreadPriority
+-	{
+-		TPriority_Highest     = osl_Thread_PriorityHighest,
+-		TPriority_AboveNormal = osl_Thread_PriorityAboveNormal,
+-		TPriority_Normal      = osl_Thread_PriorityNormal,
+-		TPriority_BelowNormal = osl_Thread_PriorityBelowNormal,
+-		TPriority_Lowest      = osl_Thread_PriorityLowest,
+-		TPriority_Unknown     = osl_Thread_PriorityUnknown
+-	};
+-
+-	/** 
+-	*/
+-	enum TThreadSleep 
+-	{   
+-		TSleep_Normal,
+-		TSleep_Cancel,
+-		TSleep_Pending,
+-		TSleep_Active,
+-		TSleep_Error,
+-		TSleep_Unknown	
+-	};
+-
+-	typedef oslThreadIdentifier TThreadIdentifier;
+-
+-	/// Constructor 
+-	OThread();              
+-
+-	/// Destructor kills thread if neccessary
+-	virtual ~OThread();
+-
+-	/** Create running instance of a thread.
+-		@returns True if thread could be created.
+-	*/
+-	sal_Bool SAL_CALL create();
+-
+-	/** Create suspended instance of a thread.
+-		@returns True if thread could be created.
+-	*/
+-	sal_Bool SAL_CALL createSuspended();
+-
+-	/// Suspend a runnng thread
+-	void SAL_CALL suspend();
+-
+-	/// Resume a suspended thread
+-	void SAL_CALL resume();
+-
+-	/** Tries to kill the thread.
+-		will not block and might not succeed when run() won't heed isTerminationRequested().
+-	*/
+-	virtual void SAL_CALL terminate();
+-
+-	/// Kill thread hard and block until it is actually gone
+-	virtual void SAL_CALL kill();
+-
+-	/// Block till thread is terminated
+-	void SAL_CALL join();
+-
+-	/// Check if thread is running.
+-	sal_Bool SAL_CALL isRunning();
+-
+-	/** Change thread priority. 
+-		The valid priority levels are:
+-	<ul>
+-		<li>ThreadPriorityHighest,
+-		<li>ThreadPriorityAboveNormal,
+-		<li>ThreadPriorityNormal,
+-		<li>ThreadPriorityBelowNormal,
+-		<li>ThreadPriorityLowest,
+-	</ul>
+-	*/
+-	void SAL_CALL setPriority(TThreadPriority Priority);
+-
+-	/** Query thread priority. 
+-		Valid return values are:
+-	<ul>
+-		<li>ThreadPriorityHighest,
+-		<li>ThreadPriorityAboveNormal,
+-		<li>ThreadPriorityNormal,
+-		<li>ThreadPriorityBelowNormal,
+-		<li>ThreadPriorityLowest,
+-		<li>ThreadPriorityUnknown (returned if thread is killed)
+-	</ul>
+-	*/
+-	TThreadPriority SAL_CALL getPriority();
+-
+-	TThreadIdentifier SAL_CALL getIdentifier() const;
+-
+-	static TThreadIdentifier SAL_CALL getCurrentIdentifier();
+-
+-	/** Let thread sleep a specified amout of time.
+-		@param Delay specifies the number of time to sleep.
+-	*/
+-	TThreadSleep SAL_CALL sleep(const TimeValue& Delay);
+-
+-	/** Awake the sleeping thread. 
+-		@returns False if at least one of the handles is invalid 
+-		or the thread is not sleeping. 
+-	*/
+-	sal_Bool SAL_CALL awake();
+-
+-	/** Let current thread wait a specified amout of time.
+-		@param Delay specifies the number of time
+-		to wait. Note, if you need to interrupt the waiting operation
+-		use sleep instead.
+-	*/
+-	static void SAL_CALL wait(const TimeValue& Delay);
+-
+-	/** Reschedules threads. 
+-		Call within your loop if you
+-		want other threads offer some processing time.
+-		This method is static, so it might be used by the
+-		main-thread.
+-	*/
+-	static void SAL_CALL yield();
+-
+-protected:
+-
+-	/// Working method which should be overridden.
+-	virtual void SAL_CALL run() = 0;
+-
+-	/** Checks if thread should terminate.
+-		isTerminationRequested() will return True if someone called
+-		terminate().
+-		@return True if thread should terminate, False if he can continue.
+-	*/
+-	virtual sal_Bool SAL_CALL schedule();
+-
+-	/** Called when run() is done. 
+-		You might want to override it to do some cleanup.
+-	*/
+-	virtual void SAL_CALL onTerminated();
+-
+-protected:
+-	oslThread m_hThread;
+-	sal_Bool   m_bTerminating;
+-
+-	friend void threadWorkerFunction_impl(void *);
+-};
+-
+-class OThreadData : public vos::OObject
+-{
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OThreadData, vos));
+-
+-public:
+-	/// Create a thread specific local data key 
+-	OThreadData( oslThreadKeyCallbackFunction = 0 );              
+-
+-	/// Destroy a thread specific local data key 
+-	virtual ~OThreadData();
+-
+-	/** Set the data associated with the data key.
+-		@returns True if operation was successfull
+-	*/
+-	sal_Bool SAL_CALL setData(void *pData);
+-
+-	/** Get the data associated with the data key.
+-		@returns The data asscoitaed with the data key or 
+-		NULL if no data was set
+-	*/
+-	void* SAL_CALL getData();
+-
+-protected:
+-	oslThreadKey m_hKey;
+-};
+-
+-}
+-
+-#endif // _VOS_THREAD_HXX_
+-
+diff --git a/vos/inc/vos/types.hxx b/vos/inc/vos/types.hxx
+deleted file mode 100644
+index c66a226..0000000
+--- vos/inc/vos/types.hxx
++++ /dev/null
+@@ -1,48 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: types.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: rt $ $Date: 2005/09/09 09:05:37 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_TYPES_HXX_
+-#define _VOS_TYPES_HXX_
+-
+-
+-/* disable some warnings for MS-C */
+-#ifdef _MSC_VER
+-#	pragma warning (disable : 4786) // 4786: truncated names (longer 255 chars)
+-#	pragma warning (disable : 4355)	// 4355: this used in initializer-list
+-#endif
+-
+-#endif //_VOS_TYPES_HXX_
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index b258071..2c02290 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -48,10 +48,8 @@ ENABLE_EXCEPTIONS=TRUE
+ SLOFILES= \
+ 				$(SLO)$/object.obj      \
+ 				$(SLO)$/refernce.obj    \
+-				$(SLO)$/thread.obj      \
+ 				$(SLO)$/stream.obj      \
+ 				$(SLO)$/timer.obj       \
+-				$(SLO)$/process.obj     \
+ 				$(SLO)$/pipe.obj
+ 
+ 
+@@ -59,10 +57,8 @@ SLOFILES= \
+ OBJFILES= \
+ 				$(OBJ)$/object.obj      \
+ 				$(OBJ)$/refernce.obj    \
+-				$(OBJ)$/thread.obj      \
+ 				$(OBJ)$/stream.obj      \
+ 				$(OBJ)$/timer.obj       \
+-				$(OBJ)$/process.obj     \
+ 				$(OBJ)$/pipe.obj
+ 
+ .ENDIF
+diff --git a/vos/source/process.cxx b/vos/source/process.cxx
+deleted file mode 100644
+index 3872bbc..0000000
+--- vos/source/process.cxx
++++ /dev/null
+@@ -1,536 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: process.cxx,v $
+- *
+- *  $Revision: 1.13 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:07:14 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <cstdarg>
+-#include <vector>
+-#include <rtl/ustring.hxx>
+-#ifndef INCLUDED_RTL_INSTANCE_HXX
+-#include <rtl/instance.hxx>
+-#endif
+-
+-#include "vos/process.hxx"
+-#include "osl/diagnose.h"
+-#include <osl/file.hxx>
+-#include <osl/mutex.hxx>
+-
+-#define MAX_RESOURCES	100
+-#define MAX_ARGS		100
+-#define MAX_ENVIROMENTS 100
+-
+-using namespace vos;
+-
+-/////////////////////////////////////////////////////////////////////////////
+-/// Argument
+-
+-OArgumentList::OArgumentList() :
+-	n_Args(0),
+-	m_aVec(0)
+-{
+-	// empty 
+-}
+-
+-OArgumentList::OArgumentList( sal_uInt32 nArgs, const ::rtl::OUString* aArgument1, ... ) :
+-	n_Args( nArgs )
+-{
+-	m_aVec = new rtl_uString* [nArgs];
+-	std::va_list pArgs;
+-	sal_uInt32 i = 0;
+-	const rtl::OUString* aArgument;
+-	
+-	va_start ( pArgs, aArgument1 );
+-	aArgument = aArgument1;
+-
+-    while( true ) {
+-		m_aVec[i] = aArgument->pData;
+-		rtl_uString_acquire( m_aVec[i++] );
+-		if( i < n_Args )
+-			aArgument = va_arg( pArgs,rtl::OUString* );
+-		else
+-			break;
+-	}
+-	va_end( pArgs );
+-}
+-
+-
+-OArgumentList::OArgumentList( const rtl::OUString aArgumentList[], sal_uInt32 nArgs ) :
+-	n_Args( nArgs )
+-{
+-	m_aVec = new rtl_uString* [n_Args];
+-	for( sal_uInt32 i = 0; i < n_Args; ++ i )  {
+-		m_aVec[i] = aArgumentList[i].pData;
+-		rtl_uString_acquire( m_aVec[i] );
+-	}
+-}
+-
+-OArgumentList::OArgumentList( const OArgumentList& rOther ) : n_Args( rOther.n_Args )
+-{
+-	m_aVec = new rtl_uString* [n_Args];
+-	
+-	sal_uInt32 i;
+-	for ( i = 0; i < n_Args; ++i )
+-	{		
+-		m_aVec[i] = rOther.m_aVec[i];
+-		rtl_uString_acquire( m_aVec[i] );
+-	}
+-}
+-
+-OArgumentList& OArgumentList::operator=( const OArgumentList& rOther )
+-{
+-	if ( this != &rOther )
+-	{
+-
+-		// delete the old one
+-		sal_uInt32 i;
+-		for ( i = 0; i < n_Args; ++i )
+-			rtl_uString_release( m_aVec[i] );
+-
+-		delete [] m_aVec;
+-
+-
+-		n_Args = rOther.n_Args;
+-		m_aVec = new rtl_uString* [n_Args];
+-		for( i = 0; i < n_Args; ++i )
+-		{
+-			m_aVec[i] = rOther.m_aVec[i];
+-			rtl_uString_acquire( m_aVec[i] );
+-		}
+-	}
+-
+-	return *this;
+-}
+-
+-OArgumentList::~OArgumentList( )
+-{
+-	for( sal_uInt32 i = 0; i < n_Args; ++i ) rtl_uString_release( m_aVec[i] );
+-	delete[] m_aVec;
+-}
+-
+-
+-////////////////////////////////////////////////////////////////////////////////
+-/// Environment
+-
+-OEnvironment::OEnvironment() :
+-	n_Vars( 0 ),
+-	m_aVec( 0 )
+-{
+-}
+-
+-OEnvironment::OEnvironment( sal_Int32 nVars, const ::rtl::OUString* aArgument1, ... ) :
+-	n_Vars( nVars )
+-{
+-	m_aVec = new rtl_uString* [nVars];
+-	std::va_list pArgs;
+-	sal_Int32 i = 0;
+-	const rtl::OUString* aArgument;
+-	
+-	va_start ( pArgs, aArgument1 );
+-	aArgument = aArgument1;
+-
+-    while( true ) {
+-		m_aVec[i] = aArgument->pData;
+-		rtl_uString_acquire( m_aVec[i++] );
+-		if( i < n_Vars )
+-			aArgument = va_arg( pArgs,rtl::OUString* );
+-		else
+-			break;
+-	}
+-	va_end( pArgs );
+-}
+-
+-
+-OEnvironment::OEnvironment( const ::rtl::OUString aVariableList[], sal_Int32 nVars ) :
+-	n_Vars( nVars )
+-{
+-	m_aVec = new rtl_uString* [n_Vars];
+-	for( sal_Int32 i = 0; i < n_Vars; ++ i )  {
+-		m_aVec[i] = aVariableList[i].pData;
+-		rtl_uString_acquire( m_aVec[i] );
+-	}	
+-}
+-
+-OEnvironment::OEnvironment( const OEnvironment& rOther ) : n_Vars( rOther.n_Vars )
+-{
+-	m_aVec = new rtl_uString* [n_Vars];
+-	
+-	sal_Int32 i;
+-	for ( i = 0; i < n_Vars; ++i )
+-	{
+-		m_aVec[i] = rOther.m_aVec[i];
+-		rtl_uString_acquire( m_aVec[i] );
+-	}
+-}
+-
+-OEnvironment& OEnvironment::operator=( const OEnvironment& rOther )
+-{
+-	if ( this != &rOther )
+-	{
+-		sal_Int32 i;
+-		for ( i = 0; i < n_Vars; ++i )
+-			rtl_uString_release( m_aVec[i] );
+-
+-		delete [] m_aVec;
+-
+-		n_Vars = rOther.n_Vars;
+-		m_aVec = new rtl_uString* [n_Vars];
+-		for ( i = 0; i < n_Vars; ++i ) 
+-		{
+-			m_aVec[i] = rOther.m_aVec[i];
+-			rtl_uString_acquire( m_aVec[i] );
+-		}
+-	}
+-
+-	return *this;
+-}
+-
+-OEnvironment::~OEnvironment()
+-{
+-	for( sal_Int32 i = 0; i < n_Vars; ++i ) rtl_uString_release( m_aVec[i] );
+-	delete[] m_aVec;
+-}
+-
+-/////////////////////////////////////////////////////////////////////////////
+-// Process
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(
+-	VOS_CLASSNAME(OProcess, vos),
+-	VOS_NAMESPACE(OProcess, vos),
+-	VOS_NAMESPACE(OObject, vos), 0);
+-
+-
+-OProcess::OProcess( ) :
+-	m_strImageName( ),
+-	m_strDirectory(),
+-	m_Process(0)
+-{
+-}
+-
+-
+-OProcess::OProcess( const rtl::OUString& strImageName ) :
+-	m_strImageName( strImageName ),
+-	m_strDirectory(),
+-	m_Process(0)
+-{
+-	// empty
+-}
+-
+-
+-OProcess::OProcess(const rtl::OUString& strImageName, const rtl::OUString& strWorkingDirectory) :
+-	m_strImageName( strImageName ),
+-	m_strDirectory( strWorkingDirectory ),
+-	m_Process(0)
+-{
+-	// empty
+-}
+-
+-
+-OProcess::~OProcess()
+-{
+-	osl_freeProcessHandle(m_Process);
+-}
+-
+-OProcess* OProcess::getProcess(TProcessIdentifier Identifier)
+-{
+-	oslProcess hProcess = osl_getProcess(Identifier);
+-
+-	if (hProcess)
+-	{
+-		OProcess* pProcess = new OProcess( );
+-
+-		pProcess->m_Process = hProcess;
+-
+-		return pProcess;
+-	}
+-
+-	return 0;
+-}
+-
+-
+-OProcess::TProcessError OProcess::execute(TProcessOption Options,
+-										  const OArgumentList& aArgumentList,
+-										  const OEnvironment&  aEnvironment )
+-{
+-	return ((TProcessError)osl_executeProcess(m_strImageName.pData, 
+-								              aArgumentList.m_aVec,
+-											  aArgumentList.n_Args,
+-											  Options, 
+-								              0,
+-								              m_strDirectory.pData,
+-								              aEnvironment.m_aVec,
+-											  aEnvironment.n_Vars,
+-											  &m_Process));
+-}
+-
+-
+-OProcess::TProcessError OProcess::execute( TProcessOption Options,
+-										   const osl::Security &Security,
+-										   const OArgumentList& aArgumentList,
+-										   const OEnvironment&  aEnvironment )
+-{
+-	return ((TProcessError)osl_executeProcess(m_strImageName.pData, 
+-								              aArgumentList.m_aVec,
+-											  aArgumentList.n_Args,
+-											  Options, 
+-								              Security.getHandle(),
+-								              m_strDirectory.pData,
+-								              aEnvironment.m_aVec,
+-											  aEnvironment.n_Vars,
+-											  &m_Process));
+-}
+-
+-
+-OProcess::TProcessError OProcess::terminate()
+-{
+-   return (TProcessError)osl_terminateProcess(m_Process);
+-}
+-
+-OProcess::TProcessError OProcess::getInfo(TProcessData Data, TProcessInfo* pInfo) const
+-{
+-   return (TProcessError)osl_getProcessInfo(m_Process, Data, pInfo);
+-}
+-
+-OProcess::TProcessError OProcess::getCurrentInfo(TProcessData Data, TProcessInfo* pInfo)
+-{
+-   return (TProcessError)osl_getProcessInfo(0, Data, pInfo);
+-}
+-
+-OProcess::TProcessError OProcess::join()
+-{
+-	return (TProcessError)osl_joinProcess(m_Process);
+-}
+-
+-
+-/*
+-OProcess::TProcessError OProcess::searchPath(const sal_Char* Name, sal_Char *Buffer, sal_uInt32 Max, 
+-                                             const sal_Char* Path, sal_Char Separator)
+-{
+-	return (TProcessError)osl_searchPath(Name, Path, Separator, Buffer, Max);
+-}
+-*/
+-
+-/////////////////////////////////////////////////////////////////////////////
+-// StartupInfo
+-
+-VOS_IMPLEMENT_CLASSINFO(
+-	VOS_CLASSNAME(OStartupInfo, vos),
+-	VOS_NAMESPACE(OStartupInfo, vos), 
+-	VOS_NAMESPACE(OObject, vos), 0);
+-
+-OStartupInfo::OStartupInfo()
+-{
+-}
+-
+-OStartupInfo::~OStartupInfo()
+-{
+-}
+-
+-OStartupInfo::TStartupError OStartupInfo::getExecutableFile(
+-    rtl::OUString& strImageName ) const
+-{
+-	return (TStartupError) osl_getExecutableFile( &strImageName.pData );
+-}
+-
+-
+-OStartupInfo::TStartupError OStartupInfo::getCommandArg(sal_uInt32 nArg, rtl::OUString& strCommandArg)
+-{
+-	return ( TStartupError ) osl_getCommandArg( nArg,&strCommandArg.pData );
+-}
+-
+-sal_uInt32 OStartupInfo::getCommandArgCount()
+-{
+-	return osl_getCommandArgCount();
+-}
+-
+-OStartupInfo::TStartupError OStartupInfo::getEnvironment(const rtl::OUString& strVar,
+-														 rtl::OUString& strValue)
+-{
+-	return ( TStartupError ) osl_getEnvironment( strVar.pData, &strValue.pData );
+-}
+-
+-
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// OExtCommandLineImpl
+-//
+-
+-namespace vos
+-{  
+-
+-class OExtCommandLineImpl
+-{
+-    void init();
+-    
+-    ::std::vector< ::rtl::OUString > aExtArgVector;
+-    sal_uInt32 m_nArgCount;
+-    
+-public:
+-    
+-    OExtCommandLineImpl();
+-    ~OExtCommandLineImpl();
+-
+-    sal_uInt32 SAL_CALL getCommandArgCount();
+-    
+-    sal_Bool SAL_CALL getCommandArg(sal_uInt32 nArg, ::rtl::OUString& strCommandArg);
+-};
+- 
+-}
+-
+-OExtCommandLineImpl::OExtCommandLineImpl() 
+-    : m_nArgCount(0)
+-{
+-    init();
+-}
+-
+-OExtCommandLineImpl::~OExtCommandLineImpl()
+-{
+-    
+-}
+-
+-
+-sal_uInt32 SAL_CALL OExtCommandLineImpl::getCommandArgCount()
+-{
+-    return m_nArgCount;
+-}
+-
+-
+-sal_Bool SAL_CALL OExtCommandLineImpl::getCommandArg(sal_uInt32 nArg, ::rtl::OUString& strCommandArg) 
+-{
+-    if ( nArg >= m_nArgCount )
+-    {
+-        return sal_False;
+-    }
+-
+-    strCommandArg = aExtArgVector[nArg];
+-
+-    return sal_True;
+-}
+-
+-
+-void OExtCommandLineImpl::init()
+-{
+-    OStartupInfo aStartInfo;
+-    sal_uInt32 nIndex=0;
+-    sal_uInt32 nArgs = aStartInfo.getCommandArgCount();
+-
+-    for ( nIndex = 0 ; nIndex < nArgs ; ++nIndex )
+-    {
+-        ::rtl::OUString aString;
+-        aStartInfo.getCommandArg(nIndex,aString);
+-        
+-        if ( aString[0] == (sal_Unicode) '@' )
+-        {
+-            ::rtl::OUString aFileName = aString.copy(1);
+-            ::osl::File aFile(aFileName);
+-            ::rtl::ByteSequence aSeq;
+-
+-            ::osl::FileBase::RC aErr = aFile.open(OpenFlag_Read);
+-
+-            if ( aErr != ::osl::FileBase::E_None )
+-            {
+-                break;
+-            }
+-
+-            do
+-            {
+-                aErr = aFile.readLine(aSeq);
+-                if ( aSeq.getLength() != 0 )
+-                {
+-                    ::rtl::OUString newString((sal_Char*)aSeq.getArray(), aSeq.getLength(), RTL_TEXTENCODING_ASCII_US);
+-                    aExtArgVector.push_back( newString );
+-                    m_nArgCount++;
+-                }
+-            }
+-            while ( aErr == ::osl::FileBase::E_None && aSeq.getLength() > 0 );
+-
+-			aFile.close();
+-			aFile.remove(aFileName);
+-        }
+-        else
+-        {
+-            aExtArgVector.push_back( aString );
+-            m_nArgCount++;
+-        }
+-    }
+-}
+-
+-
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// OExtCommandLine
+-//
+-
+-namespace 
+-{ 
+-    struct lclMutex : public rtl::Static< osl::Mutex, lclMutex > {}; 
+-}
+-
+-OExtCommandLineImpl* OExtCommandLine::pExtImpl=0;
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(
+-	VOS_CLASSNAME(OExtCommandLine, vos),
+-	VOS_NAMESPACE(OExtCommandLine, vos),
+-	VOS_NAMESPACE(OObject, vos), 0);
+-
+-OExtCommandLine::OExtCommandLine()
+-{
+-    osl::MutexGuard Guard(lclMutex::get());
+-
+-    if ( pExtImpl == NULL )
+-    {    
+-        pExtImpl = new OExtCommandLineImpl;
+-    }
+-}
+-
+-OExtCommandLine::~OExtCommandLine()
+-{
+-
+-    
+-}
+-
+-sal_uInt32 SAL_CALL OExtCommandLine::getCommandArgCount()
+-{
+-    return pExtImpl->getCommandArgCount();
+-}
+-
+-
+-sal_Bool SAL_CALL OExtCommandLine::getCommandArg(sal_uInt32 nArg, ::rtl::OUString& strCommandArg) 
+-{
+-    return pExtImpl->getCommandArg(nArg,strCommandArg);
+-}
+-
+diff --git a/vos/source/thread.cxx b/vos/source/thread.cxx
+deleted file mode 100644
+index 324da86..0000000
+--- vos/source/thread.cxx
++++ /dev/null
+@@ -1,250 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: thread.cxx,v $
+- *
+- *  $Revision: 1.8 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 11:23:08 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-#include <osl/diagnose.h>
+-#include <vos/object.hxx>
+-#include <vos/thread.hxx>
+-
+-using namespace vos;
+-
+-void vos::threadWorkerFunction_impl(void * pthis)
+-{
+-	vos::OThread* pThis= (vos::OThread*)pthis;
+-
+-	// call Handler-Function of OThread-derived class
+-	pThis->run();
+-
+-	// if not already terminating, by a kill do normal shutdown 
+-	if (! pThis->m_bTerminating)
+-	{
+-		pThis->m_bTerminating = sal_True;
+-
+-		pThis->onTerminated();		// could e.g. delete this
+-	}
+-}
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// Thread class
+-//
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OThread, vos), 
+-						VOS_NAMESPACE(OThread, vos), 
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-OThread::OThread() 
+-{
+-	m_hThread      = 0;
+-	m_bTerminating = sal_False;
+-    m_aCondition   = osl_createCondition();
+-}
+-
+-OThread::~OThread() 
+-{
+-	if (m_hThread != 0)
+-	{
+-		osl_destroyThread(m_hThread);
+-	}
+-    
+-    osl_destroyCondition( m_aCondition );
+-}
+-
+-sal_Bool OThread::create() 
+-{
+-	OSL_ASSERT(m_hThread == 0);	// only one running thread per instance
+-
+-    m_hThread = osl_createSuspendedThread(
+-        threadWorkerFunction_impl, (void*)this);
+-	if (m_hThread)
+-		osl_resumeThread(m_hThread);							             
+-
+-	return m_hThread != 0;
+-}
+-
+-sal_Bool OThread::createSuspended() 
+-{
+-	OSL_ASSERT(m_hThread == 0);	// only one running thread per instance
+-
+-	m_hThread= osl_createSuspendedThread(threadWorkerFunction_impl, (void*)this);
+-	return m_hThread != 0;
+-}
+-
+-void OThread::suspend() 
+-{
+-	OSL_ASSERT(m_hThread != 0);	// use only on running thread
+-
+-	osl_suspendThread(m_hThread);
+-}
+-
+-void OThread::resume() 
+-{
+-	OSL_ASSERT(m_hThread != 0);	// use only on running thread
+-
+-	osl_resumeThread(m_hThread);
+-}
+-
+-sal_Bool OThread::isRunning() 
+-{
+-	return m_hThread != 0 && osl_isThreadRunning(m_hThread);
+-}
+-
+-OThread::TThreadIdentifier OThread::getIdentifier() const
+-{
+-	return (TThreadIdentifier)osl_getThreadIdentifier(m_hThread);
+-}
+-
+-OThread::TThreadIdentifier OThread::getCurrentIdentifier()
+-{
+-	return (TThreadIdentifier)osl_getThreadIdentifier(0);
+-}
+-
+-void OThread::join() 
+-{
+-	if (m_hThread) {
+-		OSL_ASSERT(getCurrentIdentifier() != getIdentifier());
+-		osl_joinWithThread(m_hThread);
+-	}
+-}
+-
+-OThread::TThreadSleep OThread::sleep(const TimeValue& Delay) 
+-{
+-    TThreadSleep eRet;
+-    
+-    switch( osl_waitCondition( m_aCondition, &Delay ) )
+-    {
+-    case osl_cond_result_ok:
+-        eRet = TSleep_Normal;
+-        break;
+-        
+-    case osl_cond_result_timeout:
+-        eRet = TSleep_Cancel;
+-        break;   
+-     
+-    default:
+-        eRet = TSleep_Error;
+-        break;
+-    }
+-    
+-    return eRet;
+-}
+-
+-void OThread::wait(const TimeValue& Delay) {
+-	osl_waitThread(&Delay);
+-}
+-
+-sal_Bool OThread::awake() 
+-{
+-    osl_setCondition( m_aCondition );
+-    return osl_resetCondition( m_aCondition );
+-}
+-
+-void OThread::terminate() 
+-{
+-	osl_terminateThread(m_hThread);
+-}
+-
+-sal_Bool OThread::schedule() {
+-	return osl_scheduleThread(m_hThread);
+-}
+-
+-void OThread::kill() 
+-{
+-	if (osl_isThreadRunning(m_hThread)) 
+-	{
+-		// flag we are shutting down
+-		m_bTerminating = sal_True;
+-
+-		terminate();
+-		join();
+-	}
+-}
+-
+-void OThread::setPriority(OThread::TThreadPriority Priority)
+-{
+-	osl_setThreadPriority(m_hThread, (oslThreadPriority)Priority);
+-}
+-
+-OThread::TThreadPriority OThread::getPriority()
+-{
+-	return 	(TThreadPriority)osl_getThreadPriority(m_hThread);
+-}
+-
+-
+-void OThread::yield() 
+-{ 
+-	osl_yieldThread();
+-}
+-
+-void OThread::onTerminated() 
+-{
+-}
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// ThreadData class
+-//
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OThreadData, vos), 
+-						VOS_NAMESPACE(OThreadData, vos), 
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-OThreadData::OThreadData( oslThreadKeyCallbackFunction pCallback )
+-{
+-    m_hKey = osl_createThreadKey( pCallback );
+-	OSL_VERIFY(m_hKey);
+-}
+-
+-OThreadData::~OThreadData()
+-{
+-	osl_destroyThreadKey(m_hKey);
+-}
+-
+-sal_Bool OThreadData::setData(void *pData)
+-{
+-	OSL_ASSERT(m_hKey != 0);
+-
+-	return (osl_setThreadKeyData(m_hKey, pData));
+-}
+-
+-void *OThreadData::getData()
+-{
+-	OSL_ASSERT(m_hKey != 0);
+-
+-	return (osl_getThreadKeyData(m_hKey));
+-}
+-
+diff --git a/vos/source/timer.cxx b/vos/source/timer.cxx
+index 00a3089..ed86c9a 100644
+--- vos/source/timer.cxx
++++ vos/source/timer.cxx
+@@ -40,7 +40,7 @@
+ #include <vos/timer.hxx>
+ #include <osl/diagnose.h>
+ #include <vos/ref.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <osl/conditn.hxx>
+ 
+ 
+@@ -51,7 +51,7 @@
+ 
+ class OTimerManagerCleanup;
+ 
+-class vos::OTimerManager : public vos::OThread
++class vos::OTimerManager : public osl::Thread
+ {
+     
+ public:
+@@ -463,7 +463,7 @@ void OTimerManager::checkForTimeout()
+ 
+ void OTimerManager::run() 
+ {
+-	setPriority(TPriority_BelowNormal);
++	setPriority(osl_Thread_PriorityBelowNormal);
+ 
+ 	while (schedule())
+ 	{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-stlport51-oox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-stlport51-oox.diff
@@ -0,0 +1,190 @@
+--- oox/inc/oox/drawingml/clrscheme.hxx.orig	2007-07-16 17:18:26.000000000 +0200
++++ oox/inc/oox/drawingml/clrscheme.hxx	2007-07-16 17:18:36.000000000 +0200
+@@ -36,9 +36,9 @@
+ #ifndef OOX_DRAWINGML_CLRSCHEME_HXX
+ #define OOX_DRAWINGML_CLRSCHEME_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+ #include <map>
+ #include <vector>
++#include <boost/shared_ptr.hpp>
+ #include "oox/core/namespaces.hxx"
+ 
+ namespace oox { namespace drawingml {
+--- oox/inc/oox/xls/globaldatahelper.hxx.orig	2007-07-16 17:46:11.000000000 +0200
++++ oox/inc/oox/xls/globaldatahelper.hxx	2007-07-16 17:46:16.000000000 +0200
+@@ -36,10 +36,10 @@
+ #ifndef OOX_XLS_GLOBALDATAHELPER_HXX
+ #define OOX_XLS_GLOBALDATAHELPER_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+ #include "oox/core/xmlfilterbase.hxx"
+ #include "oox/core/binaryfilterbase.hxx"
+ #include "oox/xls/biffhelper.hxx"
++#include <boost/shared_ptr.hpp>
+ 
+ namespace com { namespace sun { namespace star {
+     namespace awt { class XDevice; }
+--- oox/source/ppt/timenode.cxx.orig	2007-07-16 18:45:09.000000000 +0200
++++ oox/source/ppt/timenode.cxx	2007-07-16 18:45:28.000000000 +0200
+@@ -34,8 +34,6 @@
+  ************************************************************************/
+ 
+ 
+-#include <boost/bind.hpp>
+-
+ #include <comphelper/processfactory.hxx>
+ 
+ #include <com/sun/star/beans/XPropertySet.hpp>
+@@ -54,6 +52,7 @@
+ #include "oox/core/wrappedpropertyset.hxx"
+ #include "oox/ppt/timenode.hxx"
+ 
++#include <boost/bind.hpp>
+ 
+ using ::rtl::OUString;
+ using namespace ::oox::core;
+--- writerfilter/source/odiapi/props/PropertiesImpl.cxx.orig	2007-07-16 19:09:09.000000000 +0200
++++ writerfilter/source/odiapi/props/PropertiesImpl.cxx	2007-07-16 19:10:48.000000000 +0200
+@@ -37,7 +37,6 @@
+ 
+ #include "PropertiesImpl.hxx"
+ #include <odiapi/props/Logger.hxx>
+-#include <boost/assert.hpp>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <stdexcept>
+@@ -45,6 +44,7 @@
+ #include <memory>
+ #include <algorithm>
+ #include <errno.h>
++#include <boost/assert.hpp>
+ 
+ using namespace boost;
+ using namespace std;
+--- writerfilter/source/doctok/WW8ResourceModelImpl.hxx.orig	2007-07-16 19:23:53.000000000 +0200
++++ writerfilter/source/doctok/WW8ResourceModelImpl.hxx	2007-07-16 19:24:01.000000000 +0200
+@@ -36,6 +36,7 @@
+ #ifndef INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
+ #define INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
+ 
++#include <map>
+ #ifndef INCLUDED_WW8_DOCUMENT_HXX
+ #include <doctok/WW8Document.hxx>
+ #endif 
+@@ -53,7 +54,6 @@
+ #endif
+ 
+ #include <odiapi/qname/QName.hxx>
+-#include <map>
+ 
+ namespace doctok
+ {
+--- writerfilter/inc/doctok/WW8Document.hxx.orig	2007-07-16 19:27:48.000000000 +0200
++++ writerfilter/inc/doctok/WW8Document.hxx	2007-07-16 19:28:00.000000000 +0200
+@@ -36,7 +36,6 @@
+ #ifndef INCLUDED_WW8_DOCUMENT_HXX
+ #define INCLUDED_WW8_DOCUMENT_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+ #ifndef _SAL_TYPES_H_
+ #include <sal/types.h>
+ #endif // _SAL_TYPES_H_
+@@ -62,6 +61,7 @@
+ #endif
+ 
+ #include <WriterFilterDllApi.hxx>
++#include <boost/shared_ptr.hpp>
+ 
+ namespace doctok {
+ 
+--- writerfilter/source/doctok/WW8StructBase.hxx.orig	2007-07-16 19:24:53.000000000 +0200
++++ writerfilter/source/doctok/WW8StructBase.hxx	2007-07-16 19:30:49.000000000 +0200
+@@ -36,8 +36,6 @@
+ #ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+ #define INCLUDED_WW8_STRUCT_BASE_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+-
+ #ifndef INCLUDED_WW8_DOCUMENT_HXX
+ #include <doctok/WW8Document.hxx>
+ #endif
+@@ -46,6 +44,8 @@
+ #include <OutputWithDepth.hxx>
+ #endif
+ 
++#include <boost/shared_ptr.hpp>
++
+ namespace doctok {
+ 
+ class WW8DocumentImpl;
+--- oox/inc/oox/drawingml/theme.hxx.orig	2007-07-20 11:13:07.000000000 +0200
++++ oox/inc/oox/drawingml/theme.hxx	2007-07-20 11:13:24.000000000 +0200
+@@ -36,10 +36,10 @@
+ #ifndef OOX_DRAWINGML_THEME_HXX
+ #define OOX_DRAWINGML_THEME_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+ #include "oox/core/propertymap.hxx"
+ #include <oox/drawingml/clrscheme.hxx>
+ #include <map>
++#include <boost/shared_ptr.hpp>
+ 
+ namespace oox { namespace drawingml {
+ 
+--- oox/inc/oox/ppt/timenode.hxx.orig	2007-09-07 21:29:34.000000000 +0200
++++ oox/inc/oox/ppt/timenode.hxx	2007-09-07 21:29:43.000000000 +0200
+@@ -37,9 +37,9 @@
+ #ifndef OOX_DRAWINGML_TIMENODE_HXX
+ #define OOX_DRAWINGML_TIMENODE_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+ #include <vector>
+ #include <list>
++#include <boost/shared_ptr.hpp>
+ #include <rtl/ustring.hxx>
+ 
+ #include <com/sun/star/frame/XModel.hpp>
+--- oox/source/ppt/slidepersist.cxx.orig	2007-09-07 21:30:22.000000000 +0200
++++ oox/source/ppt/slidepersist.cxx	2007-09-07 21:30:29.000000000 +0200
+@@ -33,12 +33,12 @@
+  *
+  ************************************************************************/
+ 
+-#include <boost/bind.hpp>
+ #include "oox/ppt/timenode.hxx"
+ #include "oox/ppt/pptshape.hxx"
+ #include "oox/ppt/slidepersist.hxx"
+ #include "oox/core/namespaces.hxx"
+ #include "tokens.hxx"
++#include <boost/bind.hpp>
+ 
+ #include <com/sun/star/style/XStyle.hpp>
+ #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+--- oox/inc/oox/vml/drawing.hxx.orig	2007-09-07 21:34:34.000000000 +0200
++++ oox/inc/oox/vml/drawing.hxx	2007-09-07 21:34:39.000000000 +0200
+@@ -36,10 +36,10 @@
+ #ifndef OOX_VML_DRAWING_HXX
+ #define OOX_VML_DRAWING_HXX
+ 
++#include <vector>
+ #include <boost/shared_ptr.hpp>
+ #include "oox/core/propertymap.hxx"
+ #include "oox/vml/shape.hxx"
+-#include <vector>
+ 
+ namespace oox { namespace vml {
+ 
+--- oox/inc/oox/vml/shape.hxx.orig	2007-09-07 21:37:00.000000000 +0200
++++ oox/inc/oox/vml/shape.hxx	2007-09-07 21:38:52.000000000 +0200
+@@ -36,9 +36,9 @@
+ #ifndef OOX_VML_SHAPE_HXX
+ #define OOX_VML_SHAPE_HXX
+ 
++#include <map>
+ #include <boost/shared_ptr.hpp>
+ #include "oox/core/propertymap.hxx"
+-#include <map>
+ 
+ namespace oox { namespace vml {
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/debian-system-jfreereport.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/debian-system-jfreereport.diff
@@ -0,0 +1,50 @@
+Index: java/com/sun/star/report/pentaho/Manifest.mf
+===================================================================
+RCS file: /cvs/dba/reportdesign/java/com/sun/star/report/pentaho/Manifest.mf,v
+retrieving revision 1.2.68.1
+diff -u -u -r1.2.68.1 Manifest.mf
+--- reportdesign/java/com/sun/star/report/pentaho/Manifest.mf        11 Jan 2008 08:20:34 -0000      1.2.68.1
++++ reportdesign/java/com/sun/star/report/pentaho/Manifest.mf        15 Jan 2008 01:33:52 -0000
+@@ -1,6 +1,13 @@
+ RegistrationClassName: com.sun.star.report.pentaho.SOReportJobFactory
+-Class-Path: flute-1.3-jfree-20061107.jar jcommon-1.0.10.jar
+-  jcommon-serializer-0.2.0.jar libfonts-0.3.3.jar libformula-0.1.14.jar
+-  liblayout-0.2.8.jar libloader-0.3.6.jar librepository-0.1.4.jar
+-  libxml-0.9.9.jar pentaho-reporting-flow-engine-0.9.2.jar sac.jar
++Class-Path: file:///usr/share/java/flute-1.3-jfree.jar
++  file:///usr/share/java/jcommon.jar
++  file:///usr/share/java/jcommon-serializer.jar
++  file:///usr/share/java/libfonts.jar
++  file:///usr/share/java/libformula.jar
++  file:///usr/share/java/liblayout.jar
++  file:///usr/share/java/libloader.jar
++  file:///usr/share/java/librepository.jar
++  file:///usr/share/java/libxml.jar
++  file:///usr/share/java/pentaho-reporting-flow-engine.jar
++  file:///usr/share/java/sac.jar
+ UNO-Type-Path:
+Index: util/makefile.mk
+===================================================================
+RCS file: /cvs/dba/reportdesign/util/makefile.mk,v
+retrieving revision 1.10.2.1
+diff -u -u -r1.10.2.1 makefile.mk
+--- reportdesign/util/makefile.mk    11 Jan 2008 08:21:17 -0000      1.10.2.1
++++ reportdesign/util/makefile.mk    15 Jan 2008 01:33:52 -0000
+@@ -226,17 +226,6 @@
+                        $(ZIP1DIR)$/readme_en-US.txt
+ 
+ REPORTJARFILES := \
+-       $(ZIP1DIR)$/flute-1.3-jfree-20061107.jar                               \
+-       $(ZIP1DIR)$/jcommon-1.0.10.jar                                         \
+-       $(ZIP1DIR)$/jcommon-serializer-0.2.0.jar                               \
+-       $(ZIP1DIR)$/libfonts-0.3.3.jar                                         \
+-       $(ZIP1DIR)$/libformula-0.1.14.jar                                      \
+-       $(ZIP1DIR)$/liblayout-0.2.8.jar                                        \
+-       $(ZIP1DIR)$/libloader-0.3.6.jar                                        \
+-       $(ZIP1DIR)$/librepository-0.1.4.jar                                    \
+-       $(ZIP1DIR)$/libxml-0.9.9.jar                                           \
+-       $(ZIP1DIR)$/pentaho-reporting-flow-engine-0.9.2.jar                    \
+-       $(ZIP1DIR)$/sac.jar                                                    \
+        $(ZIP1DIR)$/sun-report-builder.jar
+ 
+ # --- Targets ----------------------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/no-oc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/no-oc.diff
@@ -0,0 +1,28 @@
+	... languages oc ...
+	... creating language pack: oc !
+	... analyzing files ...
+	    WARNING: Using autotextshare_en-US.zip instead of autotextshare_oc.zip
+	    WARNING: Using palettes_en-US.zip instead of palettes_oc.zip
+	    WARNING: Using tpllayoutimpr_en-US.zip instead of tpllayoutimpr_oc.zip
+	    WARNING: Using tplpresntimpr_en-US.zip instead of tplpresntimpr_oc.zip
+	    WARNING: Using tplwizagenda_en-US.zip instead of tplwizagenda_oc.zip
+	    WARNING: Using tplwizdesktop_en-US.zip instead of tplwizdesktop_oc.zip
+	    WARNING: Using tplwizfax_en-US.zip instead of tplwizfax_oc.zip
+	    WARNING: Using tplwizletter_en-US.zip instead of tplwizletter_oc.zip
+	    WARNING: Using tplwizreport_en-US.zip instead of tplwizreport_oc.zip
+	    WARNING: Using tplwizstyles_en-US.zip instead of tplwizstyles_oc.zip
+	    WARNING: Using wordbook_en-US.zip instead of wordbook_oc.zip
+	... analyzing files with flag ARCHIVE ...
+
+	**************************************************
+	ERROR: ERROR: No packages defined!
+--- solenv/inc/postset.mk.orig	2008-02-13 13:40:48.000000000 +0100
++++ solenv/inc/postset.mk	2008-02-13 13:41:03.000000000 +0100
+@@ -39,6 +39,6 @@
+ defaultlangiso=en-US
+ 
+ # Complete list of all supported ISO codes
+-completelangiso=af ar as-IN be-BY bg br bn bn-BD bn-IN bs ca cs cy da de dz el en-GB en-US en-ZA eo es et eu fa fi fr ga gl gu-IN he hi-IN hr hu it ja ka km kn ko ku lo lt lv mk ms ml-IN mr-IN ne nb nl nn nr ns oc or-IN pa-IN pl pt pt-BR ru rw sk sl sh sr ss st sv sw sw-TZ te-IN ti-ER ta-IN th tn tr ts tg ur-IN uk uz ve vi xh zh-CN zh-TW zu
++completelangiso=af ar as-IN be-BY bg br bn bn-BD bn-IN bs ca cs cy da de dz el en-GB en-US en-ZA eo es et eu fa fi fr ga gl gu-IN he hi-IN hr hu it ja ka km kn ko ku lo lt lv mk ms ml-IN mr-IN ne nb nl nn nr ns or-IN pa-IN pl pt pt-BR ru rw sk sl sh sr ss st sv sw sw-TZ te-IN ti-ER ta-IN th tn tr ts tg ur-IN uk uz ve vi xh zh-CN zh-TW zu
+ 
+ alllangiso=$(strip $(defaultlangiso) $(subst,$(defaultlangiso), $(uniq $(subst,ALL,$(completelangiso) $(WITH_LANG)))))
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-show-checkbox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-show-checkbox.diff
@@ -0,0 +1,48 @@
+--- svx/source/dialog/makefile.mk	2005-01-27 16:07:36.524512181 +0100
++++ svx/source/dialog/makefile.mk	2005-01-27 16:08:16.079495949 +0100
+@@ -74,6 +74,14 @@ LIBTARGET=NO
+ .INCLUDE :  settings.mk
+ .INCLUDE :  $(PRJ)$/util$/makefile.pmk
+
++.IF "$(ENABLE_GTK)" != ""
++CFLAGS+=-DENABLE_GTK
++.ENDIF
++
++.IF "$(ENABLE_KDE)" != ""
++CFLAGS+=-DENABLE_KDE
++.ENDIF
++
+ # --- Files --------------------------------------------------------
+
+ SRS1NAME=dialogs
+--- svx/source/dialog/optgdlg.cxx	2005-01-27 16:07:50.057118604 +0100
++++ svx/source/dialog/optgdlg.cxx	2005-01-27 16:10:32.283203749 +0100
+@@ -242,7 +242,7 @@ int OfaMiscTabPage::DeactivatePage( SfxI
+ 	return LEAVE_PAGE;
+ }
+ 
+-#	ifdef ENABLE_GTK
++#if defined( ENABLE_GTK ) || defined( ENABLE_KDE )
+ namespace
+ {
+ 		::rtl::OUString impl_SystemFileOpenServiceName() 
+@@ -315,17 +315,15 @@ OfaMiscTabPage::OfaMiscTabPage(Window* p
+ 
+     //system fileopen only available in Windows and with gtk vclplug based
+     //picker and on MacOSX (aqua version)
+-#if !defined( WNT ) && !defined( ENABLE_GTK ) && !(defined(MACOSX) && defined(QUARTZ))
++#if !defined( WNT ) && !defined( ENABLE_GTK ) && !(defined(MACOSX) && defined(QUARTZ)) && !defined( ENABLE_KDE )
+     aFileDlgFL.Hide();
+     aFileDlgCB.Hide();
+-#else
+-#	ifdef ENABLE_GTK
++#elif defined( ENABLE_GTK ) || defined( ENABLE_KDE )
+ 	if (!lcl_HasSystemFilePicker())
+ 	{
+ 			aFileDlgFL.Hide();
+ 			aFileDlgCB.Hide();
+ 	}
+-#	endif
+ #endif
+ 
+ 	// at least the button is as wide as its text
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_add_additional_dirs.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_add_additional_dirs.diff
@@ -0,0 +1,14 @@
+--- scp2/source/ooo/directory_ooo.scp.orig	2008-04-13 23:46:59.000000000 +0200
++++ scp2/source/ooo/directory_ooo.scp	2008-05-19 17:33:02.000000000 +0200
+@@ -1309,6 +1309,11 @@
+     DIR_IDENT_ALL_LANG(forms);
+ End
+ 
++Directory gid_Dir_Template_Labels
++    ParentID = gid_Dir_Template_Language;
++    DIR_IDENT_ALL_LANG(labels);
++End
++
+ Directory gid_Dir_Template_Layout
+     ParentID = gid_Dir_Template_Language;
+     DIR_IDENT_ALL_LANG(layout);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-middle-button-should-paste-text.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-middle-button-should-paste-text.diff
@@ -0,0 +1,31 @@
+diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
+index 18c198e..c96dc5b 100644
+--- sc/source/ui/view/gridwin.cxx
++++ sc/source/ui/view/gridwin.cxx
+@@ -3604,7 +3604,7 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt )
+ 	return nRet;
+ }
+ 
+-ULONG lcl_GetDropFormatId( const uno::Reference<datatransfer::XTransferable>& xTransfer )
++ULONG lcl_GetDropFormatId( const uno::Reference<datatransfer::XTransferable>& xTransfer, bool bPreferText = false )
+ {
+ 	TransferableDataHelper aDataHelper( xTransfer );
+ 
+@@ -3673,6 +3673,8 @@ ULONG lcl_GetDropFormatId( const uno::Reference<datatransfer::XTransferable>& xT
+ 		nFormatId = SOT_FORMATSTR_ID_SYLK;
+ 	else if ( aDataHelper.HasFormat( SOT_FORMATSTR_ID_LINK ) )
+ 		nFormatId = SOT_FORMATSTR_ID_LINK;
++	else if ( bPreferText && aDataHelper.HasFormat( SOT_FORMAT_STRING ) ) // #i86734# the behaviour introduced in #i62773# is wrong when pasting
++		nFormatId = SOT_FORMAT_STRING;
+     else if ( aDataHelper.HasFormat( SOT_FORMAT_FILE_LIST ) )
+         nFormatId = SOT_FORMAT_FILE_LIST;
+     else if ( aDataHelper.HasFormat( SOT_FORMAT_FILE ) )    // #i62773# FILE_LIST/FILE before STRING (Unix file managers)
+@@ -4200,7 +4202,7 @@ void ScGridWindow::PasteSelection( const Point& rPosPixel )
+ 		uno::Reference<datatransfer::XTransferable> xTransferable = aDataHelper.GetTransferable();
+ 		if ( xTransferable.is() )
+ 		{
+-			ULONG nFormatId = lcl_GetDropFormatId( xTransferable );
++			ULONG nFormatId = lcl_GetDropFormatId( xTransferable, true );
+ 			if ( nFormatId )
+ 			{
+ 				bPasteIsDrop = TRUE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/helpdocument-menubar.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/helpdocument-menubar.diff
@@ -0,0 +1,338 @@
+--- basctl/uiconfig/basicide/menubar/menubar.xml.orig	2007-08-10 19:03:30.000000000 +0200
++++ basctl/uiconfig/basicide/menubar/menubar.xml	2007-09-12 15:16:03.567590800 +0200
+@@ -79,9 +79,15 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- chart2/uiconfig/menubar/menubar.xml.orig	2007-08-10 19:06:32.000000000 +0200
++++ chart2/uiconfig/menubar/menubar.xml	2007-09-13 07:09:07.559364300 +0200
+@@ -140,9 +140,15 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>			
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- framework/uiconfig/startmodule/menubar/menubar.xml.orig	2007-08-10 19:09:20.000000000 +0200
++++ framework/uiconfig/startmodule/menubar/menubar.xml	2007-09-12 15:16:03.661342000 +0200
+@@ -72,12 +72,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- sw/uiconfig/sglobal/menubar/menubar.xml.orig	2007-08-10 19:18:08.000000000 +0200
++++ sw/uiconfig/sglobal/menubar/menubar.xml	2007-09-12 15:16:03.708217600 +0200
+@@ -434,12 +434,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- sw/uiconfig/sweb/menubar/menubar.xml.orig	2007-08-10 19:18:09.000000000 +0200
++++ sw/uiconfig/sweb/menubar/menubar.xml	2007-09-12 15:16:03.786343600 +0200
+@@ -361,12 +361,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- sw/uiconfig/swform/menubar/menubar.xml.orig	2007-08-10 19:18:09.000000000 +0200
++++ sw/uiconfig/swform/menubar/menubar.xml	2007-09-13 07:14:07.894667300 +0200
+@@ -435,9 +435,15 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- sw/uiconfig/swreport/menubar/menubar.xml.orig	2007-08-10 19:18:10.000000000 +0200
++++ sw/uiconfig/swreport/menubar/menubar.xml	2007-09-13 07:14:42.956942900 +0200
+@@ -435,9 +435,15 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- sw/uiconfig/swriter/menubar/menubar.xml.orig	2007-08-10 19:18:10.000000000 +0200
++++ sw/uiconfig/swriter/menubar/menubar.xml	2007-09-12 15:16:03.755093200 +0200
+@@ -437,12 +437,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- sw/uiconfig/swxform/menubar/menubar.xml.orig	2007-08-10 19:18:11.000000000 +0200
++++ sw/uiconfig/swxform/menubar/menubar.xml	2007-09-13 07:15:21.300447500 +0200
+@@ -435,9 +435,15 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- sd/uiconfig/sdraw/menubar/menubar.xml.orig	2007-08-10 19:15:56.000000000 +0200
++++ sd/uiconfig/sdraw/menubar/menubar.xml	2007-09-12 15:16:03.880094800 +0200
+@@ -314,12 +314,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- sd/uiconfig/simpress/menubar/menubar.xml.orig	2007-08-10 19:15:57.000000000 +0200
++++ sd/uiconfig/simpress/menubar/menubar.xml	2007-09-12 15:16:03.911345200 +0200
+@@ -289,12 +289,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- dbaccess/uiconfig/dbapp/menubar/menubar.xml.orig	2007-08-10 19:07:22.000000000 +0200
++++ dbaccess/uiconfig/dbapp/menubar/menubar.xml	2007-09-13 07:20:13.662533900 +0200
+@@ -138,6 +138,7 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- dbaccess/uiconfig/dbbrowser/menubar/menubar.xml.orig	2007-08-10 19:07:23.000000000 +0200
++++ dbaccess/uiconfig/dbbrowser/menubar/menubar.xml	2007-09-13 07:20:15.975063500 +0200
+@@ -66,6 +66,7 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- dbaccess/uiconfig/dbquery/menubar/menubar.xml.orig	2007-08-10 19:07:23.000000000 +0200
++++ dbaccess/uiconfig/dbquery/menubar/menubar.xml	2007-09-13 07:20:17.865712700 +0200
+@@ -80,6 +80,7 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- dbaccess/uiconfig/dbrelation/menubar/menubar.xml.orig	2007-08-10 19:07:23.000000000 +0200
++++ dbaccess/uiconfig/dbrelation/menubar/menubar.xml	2007-09-13 07:20:19.678235900 +0200
+@@ -63,6 +63,7 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- dbaccess/uiconfig/dbtable/menubar/menubar.xml.orig	2007-08-10 19:07:23.000000000 +0200
++++ dbaccess/uiconfig/dbtable/menubar/menubar.xml	2007-09-13 07:20:22.365770300 +0200
+@@ -64,6 +64,7 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- sc/uiconfig/scalc/menubar/menubar.xml.orig	2007-08-10 19:15:28.000000000 +0200
++++ sc/uiconfig/scalc/menubar/menubar.xml	2007-09-12 15:16:04.286350000 +0200
+@@ -428,12 +428,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml.orig	2007-08-10 19:08:17.000000000 +0200
++++ extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml	2007-09-12 15:16:04.395726400 +0200
+@@ -82,12 +82,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
+--- starmath/uiconfig/smath/menubar/menubar.xml.orig	2007-08-10 19:16:40.000000000 +0200
++++ starmath/uiconfig/smath/menubar/menubar.xml	2007-09-12 15:16:04.473852400 +0200
+@@ -108,12 +108,19 @@
+ 	<menu:menu menu:id=".uno:HelpMenu">
+ 		<menu:menupopup>
+ 			<menu:menuitem menu:id=".uno:HelpIndex"/>
++			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
++			<menu:menuitem menu:id=".uno:HelpTip"/>
++			<menu:menuitem menu:id=".uno:ActiveHelp"/>
++			<menu:menuseparator/>
++			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++                        <menu:menuitem menu:id="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+ </menu:menubar>
++
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-dba241e.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-dba241e.diff
@@ -0,0 +1,70 @@
+Index: sw/source/core/crsr/findtxt.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/core/crsr/findtxt.cxx,v
+retrieving revision 1.22
+retrieving revision 1.22.24.1
+diff -u -p -u -p -b -w -B -r1.22 -r1.22.24.1
+--- sw/source/core/crsr/findtxt.cxx	5 Dec 2007 16:43:55 -0000	1.22
++++ sw/source/core/crsr/findtxt.cxx	27 May 2008 21:14:30 -0000	1.22.24.1
+@@ -548,11 +548,17 @@ String *ReplaceBackReferences( const Sea
+                 ++nStart;
+             }
+             xub_StrLen nEnd = aStr.Len();
++            bool bDeleteLastX = false;
+             if( pPam->End()->nContent < (static_cast<const SwTxtNode*>(pTxtNode))->GetTxt().Len() )
++            {
+                 aStr.Insert( sX );
++                bDeleteLastX = true;
++            }
+             SearchResult aResult;
+             if( aSTxt.SearchFrwrd( aStr, &nStart, &nEnd, &aResult ) )
+             {
++                if( bDeleteLastX && aStr.Len() )
++                    aStr.Erase( aStr.Len() - 1 );
+                 aSTxt.ReplaceBackReferences( aReplaceStr, aStr, aResult );
+                 pRet = new String( aReplaceStr );
+             }
+Index: dbaccess/source/core/dataaccess/ModelImpl.cxx
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/core/dataaccess/ModelImpl.cxx,v
+retrieving revision 1.21.18.5
+retrieving revision 1.21.18.5.2.1
+diff -u -p -u -p -b -w -B -r1.21.18.5 -r1.21.18.5.2.1
+--- dbaccess/source/core/dataaccess/ModelImpl.cxx	20 May 2008 18:22:49 -0000	1.21.18.5
++++ dbaccess/source/core/dataaccess/ModelImpl.cxx	27 May 2008 21:09:23 -0000	1.21.18.5.2.1
+@@ -456,7 +456,7 @@ namespace
+     }
+ 
+     // .........................................................................
+-    bool lcl_hasObjectWithMacros_throw( const ODefinitionContainer_Impl& _rObjectDefinitions, const ::utl::SharedUNOComponent< XStorage >& _rxContainerStorage )
++    bool lcl_hasObjectWithMacros_throw( const ODefinitionContainer_Impl& _rObjectDefinitions, const Reference< XStorage >& _rxContainerStorage )
+     {
+         bool bSomeDocHasMacros = false;
+ 
+@@ -479,7 +479,7 @@ namespace
+                 continue;
+             }
+ 
+-            ::utl::SharedUNOComponent< XStorage > xObjectStor( _rxContainerStorage->openStorageElement(
++            Reference< XStorage > xObjectStor( _rxContainerStorage->openStorageElement(
+                 rPersistentName, ElementModes::READ ) );
+ 
+             // TODO: opening the storage is too expensive, find some hasByHierarchicalName or so
+@@ -499,8 +499,15 @@ namespace
+ 
+         try
+         {
+-            ::utl::SharedUNOComponent< XStorage > xContainerStorage( _rModel.getStorage(
+-                _rModel.getObjectContainerStorageName( _eType ), ElementModes::READ ) );
++            Reference< XStorage > xContainerStorage( _rModel.getStorage(
++                _rModel.getObjectContainerStorageName( _eType ), ElementModes::READWRITE ) );
++            // note the READWRITE here: If the storage already existed before, then the OpenMode will
++            // be ignored, anyway.
++            // If the storage did not yet exist, then it will be created. If the database document
++            // is read-only, the OpenMode will be automatically downgraded to READ. Otherwise,
++            // the storage will in fact be created as READWRITE. While this is not strictly necessary
++            // for this particular use case here, it is required since the storage is *cached*, and
++            // later use cases will need the READWRITE mode.
+   
+             if ( xContainerStorage.is() )
+                 bSomeDocHasMacros = lcl_hasObjectWithMacros_throw( rObjectDefinitions, xContainerStorage );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/lwp-filter-component.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/lwp-filter-component.diff
@@ -0,0 +1,800 @@
+--- /dev/null	2006-03-20 09:28:16.436453250 +0000
++++ lotuswordpro/source/filter/LotusWordProImportFilter.cxx	2006-03-20 12:31:24.000000000 +0000
+@@ -0,0 +1,423 @@
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++#ifndef _RTL_TENCINFO_H_
++#include <rtl/tencinfo.h>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
++#include <com/sun/star/io/XInputStream.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XATTRIBUTELIST_HPP_
++#include <com/sun/star/xml/sax/XAttributeList.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XPARSER_HPP_
++#include <com/sun/star/xml/sax/XParser.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UCB_XCOMMANDENVIRONMENT_HPP
++#include <com/sun/star/ucb/XCommandEnvironment.hpp>
++#endif
++#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
++#include <com/sun/star/io/XInputStream.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
++#include <com/sun/star/uno/Reference.hxx>
++#endif
++#ifndef _ATTRLIST_HPP_
++#include <xmloff/attrlist.hxx>
++#endif
++#ifndef _XMLKYWD_HPP
++#include <xmloff/xmlkywd.hxx>
++#endif
++
++#ifndef _UCBHELPER_CONTENT_HXX
++#include <ucbhelper/content.hxx>
++#endif
++
++#include <tools/stream.hxx>
++
++#include "LotusWordProImportFilter.hxx"
++
++#include <vector>
++
++using namespace ::rtl;
++using namespace com::sun::star;
++using rtl::OString;
++using rtl::OUStringBuffer;
++using rtl::OUString;
++using com::sun::star::uno::Sequence;
++using com::sun::star::lang::XComponent;
++using com::sun::star::uno::Any;
++using com::sun::star::uno::UNO_QUERY;
++using com::sun::star::uno::XInterface;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::io::XInputStream;
++using com::sun::star::lang::XMultiServiceFactory;
++using com::sun::star::beans::PropertyValue;
++using com::sun::star::document::XFilter;
++using com::sun::star::document::XExtendedFilterDetection;
++using com::sun::star::ucb::XCommandEnvironment;
++
++using com::sun::star::document::XImporter;
++using com::sun::star::xml::sax::XAttributeList;
++using com::sun::star::xml::sax::XDocumentHandler;
++using com::sun::star::xml::sax::XParser;
++
++//                                 W     o     r     d     P     r     o
++static const sal_Int8 header[] = { 0x57, 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f };
++
++const sal_Int32 MAXCHARS = 65534;
++
++ // Simple xml importer, currently the importer is very very simple
++ // it only extracts pure text from the wordpro file. Absolutely no formating
++ // information is currently imported.
++ // To reflect the current state of this importer the sax events sent 
++ // to the document handler are also the simplest possible. In addition to
++ // the the basic attributes set up for the 'office:document' element
++ // all the imported text is inserted into 'text:p' elements. 
++ // The parser extracts the pure text and creates simple a simple 'text:p'
++ // element to contain that text. In the event of the text exceeding 
++ // MAXCHARS new 'text:p' elements are created as needed 
++class SimpleXMLImporter
++{
++private:
++
++    uno::Reference< XDocumentHandler > m_xDocHandler;
++    std::vector< OUString > m_vStringChunks;
++    SvStream& m_InputStream; 
++
++    bool CheckValidData( sal_Int8 nChar )
++    {
++        if( ( nChar >= 0x20 && nChar <= 0x7E ) && ( nChar != 0X40 ) )
++            return  true;
++        return false;				   
++    } 
++
++    void addAttribute( SvXMLAttributeList* pAttrList, const char* key, const char* val )
++    {
++        pAttrList->AddAttribute( OUString::createFromAscii( key ), OUString::createFromAscii( val ) );
++    }
++
++    void writeTextChunk( const OUString& sChunk )
++    {
++        SvXMLAttributeList *pAttrList = new SvXMLAttributeList();
++        uno::Reference < XAttributeList > xAttrList(pAttrList);
++
++        pAttrList->AddAttribute( OUString(RTL_CONSTASCII_USTRINGPARAM("text:style-name")),  OUString(RTL_CONSTASCII_USTRINGPARAM("Standard")));
++
++        m_xDocHandler->startElement( OUString(RTL_CONSTASCII_USTRINGPARAM("text:p")), xAttrList  );
++        m_xDocHandler->characters( sChunk );
++        m_xDocHandler->endElement( OUString(RTL_CONSTASCII_USTRINGPARAM("text:p") ) );
++    }
++
++    void writeDocContentPreamble()
++    {
++        SvXMLAttributeList *pDocContentPropList = new SvXMLAttributeList();
++	uno::Reference < XAttributeList > xDocContentList(pDocContentPropList);
++        addAttribute( pDocContentPropList, "xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
++        addAttribute( pDocContentPropList, "xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:xlink", "http://www.w3.org/1999/xlink" );
++        addAttribute( pDocContentPropList, "xmlns:dc", "http://purl.org/dc/elements/1.1/" );
++        addAttribute( pDocContentPropList, "xmlns:meta", "urn:oasis:names:tc:opendocument:xmlns:meta:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:number", "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:chart", "urn:oasis:names:tc:opendocument:xmlns:chart:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:dr3d", "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:math", "http://www.w3.org/1998/Math/MathML" );
++        addAttribute( pDocContentPropList, "xmlns:form", "urn:oasis:names:tc:opendocument:xmlns:form:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:script", "urn:oasis:names:tc:opendocument:xmlns:script:1.0" );
++        addAttribute( pDocContentPropList, "xmlns:ooo", "http://openoffice.org/2004/office" );
++        addAttribute( pDocContentPropList, "xmlns:ooow", "http://openoffice.org/2004/writer" );
++        addAttribute( pDocContentPropList, "xmlns:oooc", "http://openoffice.org/2004/calc" );
++        addAttribute( pDocContentPropList, "xmlns:dom", "http://www.w3.org/2001/xml-events" );
++        addAttribute( pDocContentPropList, "xmlns:xforms", "http://www.w3.org/2002/xforms" );
++        addAttribute( pDocContentPropList, "xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
++        addAttribute( pDocContentPropList, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance" );
++        addAttribute( pDocContentPropList, "office:version", "1.0");
++        m_xDocHandler->startElement(OUString(RTL_CONSTASCII_USTRINGPARAM("office:document-content" ) ), xDocContentList );
++    }
++
++    void parseDoc()
++    {
++        UINT8 nDelim, nDummy, nLen, nData;
++        UINT16 nOpcode;
++        int nCount = 0;
++        OUStringBuffer sBuf( MAXCHARS );
++        sal_Int32 nChars = 0;
++
++        while( !m_InputStream.IsEof())
++        {
++            m_InputStream >> nDelim;
++            if( nDelim == 0x40 )
++            {
++                m_InputStream >> nDummy >> nOpcode;
++                switch( nOpcode )
++                {
++                    case 0xC00B:  // Dictionary Word
++                        m_InputStream >> nLen >> nDummy;
++                        while( nLen > 0 && !m_InputStream.IsEof() )
++                        {
++                            UINT8 nChar;
++                            m_InputStream >> nChar;
++                            if( CheckValidData( nChar ) )
++                            {
++                                sBuf.appendAscii( (sal_Char*)(&nChar),1 );
++                                if ( ++nChars >=  MAXCHARS )
++                                {
++                                    m_vStringChunks.push_back( sBuf.makeStringAndClear() ); 
++                                    nChars = 0;
++                                }
++                            }
++                            nLen--;
++                        }
++                        break;
++
++                    case 0x0242:  // Non Dictionary word
++                        m_InputStream >> nData;
++                        if( nData == 0x02 )
++                        { 
++                            m_InputStream >> nLen >> nDummy;
++                            while( nLen > 0 && !m_InputStream.IsEof() )
++                            {
++                                m_InputStream >> nData;
++                                if( CheckValidData( nData ) )
++                                {
++                                    sBuf.appendAscii( (sal_Char*)(&nData),1 );
++                                    if ( ++nChars >=  MAXCHARS )
++                                    {
++                                        m_vStringChunks.push_back( sBuf.makeStringAndClear() ); 
++                                        nChars = 0;
++                                    }
++                                }
++                                nLen--;
++                            }
++                        }
++                        break;
++                }
++            }   
++        }
++        if ( nChars )
++            m_vStringChunks.push_back( sBuf.makeStringAndClear() ); 
++    }
++
++    void writeXML()
++    {
++        if ( m_vStringChunks.size() )
++        {
++            m_xDocHandler->startDocument();
++            SvXMLAttributeList *pAttrList = new SvXMLAttributeList();
++            writeDocContentPreamble(); // writes "office:document-content" elem
++            uno::Reference < XAttributeList > xAttrList(pAttrList);
++
++            m_xDocHandler->startElement( OUString(RTL_CONSTASCII_USTRINGPARAM("office:body")), xAttrList  );
++
++            // process strings imported
++            std::vector< OUString >::const_iterator it = m_vStringChunks.begin();
++            std::vector< OUString >::const_iterator it_end = m_vStringChunks.end();
++            for ( ; it!=it_end; ++it )
++                writeTextChunk( *it );
++
++            m_xDocHandler->endElement( OUString(RTL_CONSTASCII_USTRINGPARAM("office:body") ) );
++            m_xDocHandler->endElement( OUString(RTL_CONSTASCII_USTRINGPARAM("office:document-content")));
++            m_xDocHandler->endDocument();
++        }
++    }
++public:
++
++    SimpleXMLImporter( const uno::Reference< XDocumentHandler >&  xDocHandler, SvStream& rStream ) : m_xDocHandler( xDocHandler ), m_InputStream( rStream ) {}
++
++    void import()
++    {
++        parseDoc();
++        writeXML();
++    }
++};
++
++sal_Bool SAL_CALL LotusWordProImportFilter::importImpl( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
++	throw (RuntimeException)
++{
++	
++	sal_Int32 nLength = aDescriptor.getLength();
++	const PropertyValue * pValue = aDescriptor.getConstArray();
++	OUString sURL;
++	uno::Reference < XInputStream > xInputStream;
++	for ( sal_Int32 i = 0 ; i < nLength; i++)
++	{
++	    if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++		pValue[i].Value >>= xInputStream;
++	    else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
++		pValue[i].Value >>= sURL;
++	    rtl_TextEncoding encoding = RTL_TEXTENCODING_INFO_ASCII;
++	}
++	if ( !xInputStream.is() )
++	{
++	    OSL_ASSERT( 0 );
++	    return sal_False;
++	}
++
++	OString sFileName;
++	sFileName = OUStringToOString(sURL, RTL_TEXTENCODING_INFO_ASCII);
++
++        SvFileStream inputStream( sURL, STREAM_READ );
++        if ( inputStream.IsEof() || ( inputStream.GetError() != SVSTREAM_OK ) )
++             return sal_False;
++
++	// An XML import service: what we push sax messages to..
++	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLImporter" ) );
++
++	uno::Reference< XDocumentHandler > xInternalHandler( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
++	uno::Reference < XImporter > xImporter(xInternalHandler, UNO_QUERY);
++        xImporter->setTargetDocument(mxDoc);
++
++        SimpleXMLImporter xmlImporter( xInternalHandler, inputStream );
++        xmlImporter.import();
++         
++	return sal_True; 
++}
++
++sal_Bool SAL_CALL LotusWordProImportFilter::filter( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++	throw (RuntimeException)
++{
++	return importImpl ( aDescriptor );
++}
++void SAL_CALL LotusWordProImportFilter::cancel(  ) 
++	throw (RuntimeException)
++{
++}
++
++// XImporter
++void SAL_CALL LotusWordProImportFilter::setTargetDocument( const uno::Reference< ::com::sun::star::lang::XComponent >& xDoc )
++	throw (::com::sun::star::lang::IllegalArgumentException, RuntimeException)
++{
++	meType = FILTER_IMPORT;
++	mxDoc = xDoc;
++}
++
++// XExtendedFilterDetection
++OUString SAL_CALL LotusWordProImportFilter::detect( com::sun::star::uno::Sequence< PropertyValue >& Descriptor )
++	throw( com::sun::star::uno::RuntimeException )
++{
++
++	OUString sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "" ) );
++	sal_Int32 nLength = Descriptor.getLength();
++	sal_Int32 location = nLength;
++	OUString sURL;
++	const PropertyValue * pValue = Descriptor.getConstArray();
++	uno::Reference < XInputStream > xInputStream;
++	for ( sal_Int32 i = 0 ; i < nLength; i++)
++	{
++		if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "TypeName" ) ) )
++			location=i;
++		else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++			pValue[i].Value >>= xInputStream;
++		else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
++			pValue[i].Value >>= sURL;
++
++	    rtl_TextEncoding encoding = RTL_TEXTENCODING_INFO_ASCII;
++	}
++
++        uno::Reference< com::sun::star::ucb::XCommandEnvironment > xEnv;
++        if (!xInputStream.is())
++        {
++		try
++		{
++			::ucbhelper::Content aContent(sURL, xEnv);
++	                xInputStream = aContent.openStream();
++		}
++		catch ( Exception& )
++		{
++			return ::rtl::OUString();
++		}
++		
++                if (!xInputStream.is())
++                    return ::rtl::OUString();
++        }
++
++        Sequence< ::sal_Int8 > aData;			
++        sal_Int32 nLen = sizeof( header ) / sizeof( header[0] );
++        if ( ( nLen == xInputStream->readBytes(  aData, nLen ) ) )
++            if ( memcmp( ( void* )header, (void*) aData.getConstArray(), nLen ) == 0 ) 
++                sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "writer_LotusWordPro_Document" ) );
++        return sTypeName;
++}
++
++
++// XInitialization
++void SAL_CALL LotusWordProImportFilter::initialize( const Sequence< Any >& aArguments ) 
++	throw (Exception, RuntimeException)
++{
++	Sequence < PropertyValue > aAnySeq;
++	sal_Int32 nLength = aArguments.getLength();
++	if ( nLength && ( aArguments[0] >>= aAnySeq ) )
++	{
++		const PropertyValue * pValue = aAnySeq.getConstArray();
++		nLength = aAnySeq.getLength();
++		for ( sal_Int32 i = 0 ; i < nLength; i++)
++		{
++			if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) )
++			{
++				pValue[i].Value >>= msFilterName;
++				break;
++			}
++		}
++	}
++}
++OUString LotusWordProImportFilter_getImplementationName ()
++	throw (RuntimeException)
++{
++	return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.LotusWordProImportFilter" ) );
++}
++
++#define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
++#define SERVICE_NAME2 "com.sun.star.document.ExtendedTypeDetection"
++sal_Bool SAL_CALL LotusWordProImportFilter_supportsService( const OUString& ServiceName ) 
++	throw (RuntimeException)
++{
++	return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
++		ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) );
++}
++Sequence< OUString > SAL_CALL LotusWordProImportFilter_getSupportedServiceNames(  ) 
++	throw (RuntimeException)
++{
++	Sequence < OUString > aRet(2);
++//	Sequence < OUString > aRet(1);
++        OUString* pArray = aRet.getArray();
++        pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
++	pArray[1] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) ); 
++        return aRet;
++}
++#undef SERVICE_NAME2
++#undef SERVICE_NAME1
++
++uno::Reference< XInterface > SAL_CALL LotusWordProImportFilter_createInstance( const uno::Reference< XMultiServiceFactory > & rSMgr)
++	throw( Exception )
++{
++	return (cppu::OWeakObject*) new LotusWordProImportFilter( rSMgr );
++}
++
++// XServiceInfo
++OUString SAL_CALL LotusWordProImportFilter::getImplementationName(  ) 
++	throw (RuntimeException)
++{
++	return LotusWordProImportFilter_getImplementationName();
++}
++sal_Bool SAL_CALL LotusWordProImportFilter::supportsService( const OUString& rServiceName ) 
++	throw (RuntimeException)
++{
++    return LotusWordProImportFilter_supportsService( rServiceName );
++}
++Sequence< OUString > SAL_CALL LotusWordProImportFilter::getSupportedServiceNames(  ) 
++	throw (RuntimeException)
++{
++    return LotusWordProImportFilter_getSupportedServiceNames();
++}
+--- /dev/null	2006-03-20 09:28:16.436453250 +0000
++++ lotuswordpro/source/filter/LotusWordProImportFilter.hxx	2006-03-20 10:10:03.000000000 +0000
+@@ -0,0 +1,104 @@
++#ifndef _WORDPERFECTIMPORTFILTER_HXX
++#define _WORDPERFECTIMPORTFILTER_HXX
++
++#ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
++#include <com/sun/star/document/XFilter.hpp>
++#endif
++#ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_
++#include <com/sun/star/document/XImporter.hpp>
++#endif
++#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_
++#include <com/sun/star/document/XExtendedFilterDetection.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
++#include <com/sun/star/lang/XInitialization.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE5_HXX_
++#include <cppuhelper/implbase5.hxx>
++#endif
++#include <rtl/ustrbuf.hxx>
++
++enum FilterType 
++{
++	FILTER_IMPORT,
++	FILTER_EXPORT
++};
++/* This component will be instantiated for both import or export. Whether it calls
++ * setSourceDocument or setTargetDocument determines which Impl function the filter
++ * member calls */
++class LotusWordProImportFilter : public cppu::WeakImplHelper5 
++< 
++	com::sun::star::document::XFilter,
++	com::sun::star::document::XImporter,
++	com::sun::star::document::XExtendedFilterDetection,
++	com::sun::star::lang::XInitialization,
++	com::sun::star::lang::XServiceInfo
++>
++{
++private:
++
++protected:
++	// oo.org declares
++	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
++	::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > mxDoc;
++	::rtl::OUString msFilterName;
++	::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > mxHandler;
++
++	FilterType meType;
++
++	sal_Bool SAL_CALL importImpl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++public:
++	LotusWordProImportFilter( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > &rxMSF)
++        : mxMSF( rxMSF ) {}
++	virtual ~LotusWordProImportFilter() {}
++
++	// XFilter
++        virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++		throw (::com::sun::star::uno::RuntimeException);
++        virtual void SAL_CALL cancel(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++	// XImporter
++        virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) 
++		throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
++
++ 	//XExtendedFilterDetection
++	virtual ::rtl::OUString SAL_CALL detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Descriptor ) 
++		throw( com::sun::star::uno::RuntimeException );
++
++	// XInitialization
++        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) 
++		throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++
++	// XServiceInfo
++        virtual ::rtl::OUString SAL_CALL getImplementationName(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++        virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 
++		throw (::com::sun::star::uno::RuntimeException);
++        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++};
++
++::rtl::OUString LotusWordProImportFilter_getImplementationName()
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++sal_Bool SAL_CALL LotusWordProImportFilter_supportsService( const ::rtl::OUString& ServiceName ) 
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL LotusWordProImportFilter_getSupportedServiceNames(  ) 
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
++SAL_CALL LotusWordProImportFilter_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
++	throw ( ::com::sun::star::uno::Exception );
++
++#endif
+diff -rNup lotusworkpro/prj/build.lst lotuswordpro/prj/build.lst
+--- lotuswordpro/prj/build.lst	1970-01-01 01:00:00.000000000 +0100
++++ lotuswordpro/prj/build.lst	2006-03-13 17:14:50.000000000 +0000
+@@ -0,0 +1,4 @@
++wp	lotuswordpro : sfx2 sot svx comphelper NULL
++wp	lotuswordpro			usr1	-	all	lwp_mkout NULL
++wp	lotuswordpro\source\filter	nmake	-	all	lwp_filter NULL
++wp	lotuswordpro\util		nmake	-	all	lwp_util lwp_filter NULL
+diff -rNup lotuswordpro/prj/d.lst lotuswordpro/prj/d.lst
+--- lotuswordpro/prj/d.lst	1970-01-01 01:00:00.000000000 +0100
++++ lotuswordpro/prj/d.lst	2004-10-08 09:48:28.000000000 +0100
+@@ -0,0 +1,3 @@
++..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
++..\%__SRC%\bin\*.dll %_DEST%\lib%_EXT%\*.dll
++..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+diff -rNup lotuswordpro/source/filter/genericfilter.cxx lotuswordpro/source/filter/genericfilter.cxx
+--- lotuswordpro/source/filter/genericfilter.cxx	1970-01-01 01:00:00.000000000 +0100
++++ lotuswordpro/source/filter/genericfilter.cxx	2006-03-14 11:06:00.000000000 +0000
+@@ -0,0 +1,77 @@
++#include <stdio.h>
++
++#include <osl/mutex.hxx>
++#include <osl/thread.h>
++#include <cppuhelper/factory.hxx>
++
++#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++#endif
++
++#include "LotusWordProImportFilter.hxx"
++
++using namespace ::rtl;
++using namespace ::cppu;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::registry;
++
++extern "C"
++{
++//==================================================================================================
++void SAL_CALL component_getImplementationEnvironment(
++	const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++//==================================================================================================
++sal_Bool SAL_CALL component_writeInfo(
++	void * pServiceManager, void * pRegistryKey )
++{
++	if (pRegistryKey)
++	{
++		try
++		{
++            sal_Int32 nPos = 0;
++            Reference< XRegistryKey > xNewKey(
++				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( LotusWordProImportFilter_getImplementationName() ) ); 
++            xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
++			
++			const Sequence< OUString > & rSNL = LotusWordProImportFilter_getSupportedServiceNames();
++			const OUString * pArray = rSNL.getConstArray();
++			for ( nPos = rSNL.getLength(); nPos--; )
++				xNewKey->createKey( pArray[nPos] );
++
++			return sal_True;
++		}
++		catch (InvalidRegistryException &)
++		{
++			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
++		}
++	}
++	return sal_False;
++}
++//==================================================================================================
++void * SAL_CALL component_getFactory(
++	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
++{
++	void * pRet = 0;
++
++    OUString implName = OUString::createFromAscii( pImplName );
++	if ( pServiceManager && implName.equals(LotusWordProImportFilter_getImplementationName()) )
++	{
++		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
++			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
++			OUString::createFromAscii( pImplName ),
++			LotusWordProImportFilter_createInstance, LotusWordProImportFilter_getSupportedServiceNames() ) );
++		
++		if (xFactory.is())
++		{
++			xFactory->acquire();
++			pRet = xFactory.get();
++		}
++	}
++	
++	return pRet;
++}
++}
+diff -rNup lotuswordpro/source/filter/makefile.mk lotuswordpro/source/filter/makefile.mk
+--- lotuswordpro/source/filter/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ lotuswordpro/source/filter/makefile.mk	2006-03-14 11:07:05.000000000 +0000
+@@ -0,0 +1,13 @@
++PRJ=..$/..
++
++PRJNAME=filter
++TARGET=filter
++ENABLE_EXCEPTIONS=true
++
++.INCLUDE :  settings.mk
++
++SLOFILES= \
++	$(SLO)$/LotusWordProImportFilter.obj \
++	$(SLO)$/genericfilter.obj
++
++.INCLUDE :  target.mk
+diff -rNup lotuswordpro/util/lwpft.map lotuswordpro/util/lwpft.map
+--- lotuswordpro/util/lwpft.map	1970-01-01 01:00:00.000000000 +0100
++++ lotuswordpro/util/lwpft.map	2004-08-05 18:44:50.000000000 +0100
+@@ -0,0 +1,8 @@
++WPFT_1_0 {
++	global:
++		component_getImplementationEnvironment;
++		component_writeInfo;
++		component_getFactory;
++	local:
++		*;
++};
+diff -rNup lotuswordpro/util/makefile.mk lotuswordpro/util/makefile.mk
+--- lotuswordpro/util/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ lotuswordpro/util/makefile.mk	2006-03-13 17:13:49.000000000 +0000
+@@ -0,0 +1,27 @@
++PRJ=..
++PRJNAME=lwpft
++TARGET=lwpft
++VERSION=$(UPD)
++
++.INCLUDE :  settings.mk
++
++LIB1TARGET= $(SLB)$/$(TARGET).lib
++LIB1FILES= \
++	$(SLB)$/filter.lib
++SHL1LIBS=$(LIB1TARGET) 
++SHL1STDLIBS+= \
++	$(TOOLSLIB) \
++	$(COMPHELPERLIB) \
++	$(UCBHELPERLIB) \
++	$(CPPUHELPERLIB) \
++	$(CPPULIB) \
++	$(SALLIB) \
++	$(XMLOFFLIB)
++
++SHL1TARGET = $(TARGET)$(UPD)$(DLLPOSTFIX)
++SHL1IMPLIB = i$(SHL1TARGET)
++SHL1LIBS = $(LIB1TARGET)
++SHL1VERSIONMAP=$(TARGET).map
++DEF1NAME=$(SHL1TARGET)
++
++.INCLUDE :  target.mk
+diff -urpN filter.orig/source/config/fragments/fcfg_writer.mk filter/source/config/fragments/fcfg_writer.mk
+--- filter.orig/source/config/fragments/fcfg_writer.mk	2006-03-13 16:35:22.000000000 +0000
++++ filter/source/config/fragments/fcfg_writer.mk	2006-03-15 10:03:24.000000000 +0000
+@@ -48,6 +48,7 @@ T4_WRITER = \
+     writer_WordPerfect_Document \
+     writer_MS_Works_Document \
+     writer_T602_Document \
++    writer_LotusWordPro_Document \
+     writer_Text \
+     writer_Text_encoded \
+     writer_JustSystem_Ichitaro_10 \
+@@ -83,6 +83,7 @@ F4_WRITER = \
+ 	WordPerfect \
+ 	MS_Works \
+ 	T602Document \
++	LotusWordPro \
+ 	Text \
+ 	Text__encoded_ \
+ 	writer_JustSystem_Ichitaro_10 \
+diff -urpN filter.orig/source/config/fragments/filters/LotusWordPro.xcu filter/source/config/fragments/filters/LotusWordPro.xcu
+--- filter.orig/source/config/fragments/filters/LotusWordPro.xcu	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/config/fragments/filters/LotusWordPro.xcu	2006-03-15 10:14:03.000000000 +0000
+@@ -0,0 +1,13 @@
++	<node oor:name="LotusWordPro" oor:op="replace">
++		<prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.LotusWordProImportFilter</value></prop>
++		<prop oor:name="UserData"><value>WPD</value></prop>
++		<prop oor:name="UIName">
++			<value xml:lang="x-default">Lotus WordPro Document</value>
++		</prop>
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>writer_LotusWordPro_Document</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
++	</node>
+diff -urpN filter.orig/source/config/fragments/types/writer_LotusWordPro_Document.xcu filter/source/config/fragments/types/writer_LotusWordPro_Document.xcu
+--- filter.orig/source/config/fragments/types/writer_LotusWordPro_Document.xcu	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/config/fragments/types/writer_LotusWordPro_Document.xcu	2006-03-15 10:14:32.000000000 +0000
+@@ -0,0 +1,12 @@
++	<node oor:name="writer_LotusWordPro_Document" oor:op="replace" >
++		<prop oor:name="DetectService"><value>com.sun.star.comp.Writer.LotusWordProImportFilter</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>lwp</value></prop>
++		<prop oor:name="MediaType"/>
++		<prop oor:name="Preferred"><value>false</value></prop>
++		<prop oor:name="PreferredFilter"><value>LotusWordPro</value></prop>
++		<prop oor:name="UIName">
++			<value>LotusWordPro Document</value>
++		</prop>
++		<prop oor:name="ClipboardFormat"/>
++	</node>
+Index: officecfg/registry/data/org/openoffice/Office/UI.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/UI.xcu,v
+retrieving revision 1.33
+diff -u -p -r1.33 UI.xcu
+--- officecfg/registry/data/org/openoffice/Office/UI.xcu	8 Sep 2005 14:52:04 -0000	1.33
++++ officecfg/registry/data/org/openoffice/Office/UI.xcu	15 Mar 2006 11:29:44 -0000
+@@ -44,7 +44,7 @@
+ 						<value xml:lang="en-US">Text documents</value>
+ 					</prop>
+ 					<prop oor:name="Filters">
+-                                                <value oor:separator=";">HTML (StarWriter);MS WinWord 2.x (W4W);MS WinWord 6.0;MS Word 95;MS Word 95 Vorlage;MS Word 97;MS Word 97 Vorlage;StarOffice XML (Writer);StarWriter 3.0;StarWriter 3.0 Vorlage/Template;StarWriter 4.0;StarWriter 4.0 Vorlage/Template;StarWriter 5.0;StarWriter 5.0 Vorlage/Template;writer_StarOffice_XML_Writer_Template;Text;WordPerfect;writer8;writer8_template</value>
++                                                <value oor:separator=";">HTML (StarWriter);MS WinWord 2.x (W4W);MS WinWord 6.0;MS Word 95;MS Word 95 Vorlage;MS Word 97;MS Word 97 Vorlage;StarOffice XML (Writer);StarWriter 3.0;StarWriter 3.0 Vorlage/Template;StarWriter 4.0;StarWriter 4.0 Vorlage/Template;StarWriter 5.0;StarWriter 5.0 Vorlage/Template;writer_StarOffice_XML_Writer_Template;Text;WordPerfect;writer8;writer8_template;LotusWordPro</value>
+ 					</prop>
+ 				</node>
+ 				<node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace">
+Index: scp2/source/ooo/file_library_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
+retrieving revision 1.184.2.2
+diff -u -p -r1.184.2.2 file_library_ooo.scp
+--- scp2/source/ooo/file_library_ooo.scp	17 Feb 2006 16:52:02 -0000	1.184.2.2
++++ scp2/source/ooo/file_library_ooo.scp	15 Mar 2006 11:48:56 -0000
+@@ -1399,6 +1399,8 @@ End
+ STD_UNO_LIB_FILE_PATCH(gid_File_Lib_Msworks,msworks)
+ 
+ STD_UNO_LIB_FILE_PATCH(gid_File_Lib_T602Filter,t602filter)
++
++STD_UNO_LIB_FILE_PATCH(gid_File_Lib_Wlwp,lwpft)
+ 
+ #if !defined(MACOSX) && ( !defined(SYSTEM_MOZILLA) && !defined(WITHOUT_MOZILLA) )
+ 
+Index: scp2/source/writer/module_writer.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/writer/module_writer.scp,v
+retrieving revision 1.14
+diff -u -p -r1.14 module_writer.scp
+--- scp2/source/writer/module_writer.scp	9 Sep 2005 01:50:00 -0000	1.14
++++ scp2/source/writer/module_writer.scp	15 Mar 2006 11:50:35 -0000
+@@ -55,5 +55,6 @@ Module gid_Module_Prg_Wrt_Bin
+     gid_File_Lib_Msworks,
+     gid_File_Lib_T602Filter,
++    gid_File_Lib_Wlwp,
+     gid_File_Share_Config_Sofficecfg_Writer_Menubar_Xml,
+     gid_File_Share_Config_Sofficecfg_Writerweb_Menubar_Xml,
+     gid_File_Share_Config_Sofficecfg_Writerglobal_Menubar_Xml,
+Index: sw/prj/build.lst
+===================================================================
+RCS file: /cvs/sw/sw/prj/build.lst,v
+retrieving revision 1.16
+diff -u -p -r1.16 build.lst
+--- sw/prj/build.lst	8 Nov 2005 17:14:00 -0000	1.16
++++ sw/prj/build.lst	15 Mar 2006 12:09:49 -0000
+@@ -1,4 +1,4 @@
+-sw	sw	:	connectivity OOo:writerperfect svx stoc uui NULL
++sw	sw	:	connectivity OOo:writerperfect OOo:lotuswordpro svx stoc uui NULL
+ sw	sw										usr1	-	all	sw_mkout NULL
+ sw	sw\inc									nmake		-	all	sw_inc NULL
+ sw	sw\prj									get		-	all	sw_prj NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-win32-installer-branding.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-win32-installer-branding.diff
@@ -0,0 +1,91 @@
+--- instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf 
++++ instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
+@@ -379,7 +379,7 @@
+ en-US = "Cancel"
+ 
+ [OOO_CONTROL_124]
+-en-US = "Build contributed in collaboration with the community by Sun Microsystems, Inc. For credits, see: http://www.openoffice.org/welcome/credits.html"
++en-US = "Build contributed in collaboration with the community by Novell, Inc. For credits, see: http://www.openoffice.org/welcome/credits.html"
+ 
+ [OOO_CONTROL_125]
+ en-US = "&Next >"
+--- instsetoo_native/util/makefile.mk.old	2006-01-16 15:10:22.000000000 +0200
++++ instsetoo_native/util/makefile.mk	2006-01-17 12:58:26.000000000 +0200
+@@ -372,10 +372,17 @@
+ 	$(RM) $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
+ 	$(RM) $(MSISDKOOTEMPLATEDIR)$/Binary$/Image.bmp
+ 	$(RM) $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSIOFFICETEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSILANGPACKTEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSISDKOOTEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_nld.bmp $(MSIOFFICETEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_nld.bmp $(MSILANGPACKTEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_nld.bmp $(MSISDKOOTEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_nld.bmp $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
++	$(RM) $(MSIOFFICETEMPLATEDIR)$/Binary$/Banner.bmp
++	$(RM) $(MSILANGPACKTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(RM) $(MSISDKOOTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(RM) $(MSIURETEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_nld.bmp $(MSIOFFICETEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_nld.bmp $(MSILANGPACKTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_nld.bmp $(MSISDKOOTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_nld.bmp $(MSIURETEMPLATEDIR)$/Binary$/Banner.bmp
+ 
+ 
+dummy line to avoid confusing diff-mode
+--- instsetoo_native/util/openoffice.lst.old	2006-01-17 12:23:31.000000000 +0200
++++ instsetoo_native/util/openoffice.lst	2006-01-17 14:24:08.000000000 +0200
+@@ -29,9 +29,9 @@
+ 			USE_FILEVERSION 1
+ 			LIBRARYVERSION 8.4.0
+ 			PATCHCODEFILE ooo_patchcodes.txt
+-			DOWNLOADBANNER	ooobanner.bmp
+-			DOWNLOADBITMAP	ooobitmap.bmp
+-			DOWNLOADSETUPICO	ooosetup.ico
++			DOWNLOADBANNER	ooobanner_nld.bmp
++			DOWNLOADBITMAP	ooobitmap_nld.bmp
++			DOWNLOADSETUPICO	ooosetup_nld.ico
+ 			RELATIVE_PATHES_IN_DDF 1
+ 		}
+ 		active			1
+@@ -76,9 +76,9 @@
+ 			LIBRARYVERSION 8.4.0
+ 			PATCHCODEFILE ooo_patchcodes.txt
+ 			JAVAPRODUCT 1
+-			DOWNLOADBANNER	ooobanner.bmp
+-			DOWNLOADBITMAP	ooobitmap.bmp
+-			DOWNLOADSETUPICO	ooosetup.ico
++			DOWNLOADBANNER	ooobanner_nld.bmp
++			DOWNLOADBITMAP	ooobitmap_nld.bmp
++			DOWNLOADSETUPICO	ooosetup_nld.ico
+ 			RELATIVE_PATHES_IN_DDF 1
+ 		}
+ 		active			1
+@@ -122,9 +122,9 @@
+ 			LIBRARYVERSION 8.4.0
+ 			PATCHCODEFILE ooo_patchcodes.txt
+ 			CODEFILENAME codes_ooodev.txt
+-			DOWNLOADBANNER	ooobanner.bmp
+-			DOWNLOADBITMAP	ooobitmap.bmp
+-			DOWNLOADSETUPICO	ooosetup.ico
++			DOWNLOADBANNER	ooobanner_nld.bmp
++			DOWNLOADBITMAP	ooobitmap_nld.bmp
++			DOWNLOADSETUPICO	ooosetup_nld.ico
+ 			LOCALUSERDIR $ORIGIN/..
+ 			RELATIVE_PATHES_IN_DDF 1
+ 		}
+@@ -150,9 +150,9 @@
+             LICENSENAME LGPL
+ 			SERVICESPROJEKT 1
+             NOVERSIONINDIRNAME 1
+-            DOWNLOADBANNER urebanner.bmp
+-            DOWNLOADBITMAP urebitmap.bmp
+-            DOWNLOADSETUPICO ooosetup.ico
++            DOWNLOADBANNER ooobanner_nld.bmp
++            DOWNLOADBITMAP ooobitmap_nld.bmp
++            DOWNLOADSETUPICO ooosetup_nld.ico
+             DONTUSESTARTMENUFOLDER 1
+             SERVICESPROJEKT 1
+             NATIVESERVICESURLPREFIX vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/shell-senddoc-sylpheed-filenames.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/shell-senddoc-sylpheed-filenames.diff
@@ -0,0 +1,20 @@
+--- shell/source/unix/misc/senddoc.sh.old	2008-03-06 22:51:57.000000000 +0100
++++ shell/source/unix/misc/senddoc.sh	2008-03-10 11:57:18.000000000 +0100
+@@ -315,7 +315,7 @@ case `basename "$MAILER" | sed 's/-.*$//
+ 					shift
+ 					;;
+ 				--attach)
+-					ATTACH="${ATTACH:-}${ATTACH:+ } $2"
++					ATTACH="${ATTACH:-}${ATTACH:+ }$2"
+ 					shift
+ 					;;
+ 				*)
+@@ -324,7 +324,7 @@ case `basename "$MAILER" | sed 's/-.*$//
+ 			shift;
+ 		done
+ 		 
+-		 ${MAILER} ${TO:+--compose} ${TO:-} ${ATTACH:+--attach} ${ATTACH:-}
++		 ${MAILER} ${TO:+--compose} "${TO:-}" ${ATTACH:+--attach} "${ATTACH:-}"
+ 		;;
+ 
+ 	Mail | Thunderbird | *.app )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-bdirect.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-bdirect.diff
@@ -0,0 +1,109 @@
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.139
+diff -u -p -u -r1.139 configure.in
+--- config_office/configure.in	25 Oct 2005 11:23:57 -0000	1.139
++++ config_office/configure.in	18 Nov 2005 15:00:30 -0000
+@@ -1374,6 +1374,24 @@ if test "$GCC" = "yes"; then
+ fi
+ AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
+ 
++if test "$GCC" = "yes"; then
++   AC_MSG_CHECKING( for -Bdirect linker support )
++   bdirect_ldflags_save=$LDFLAGS
++   LDFLAGS="$LDFLAGS -Wl,-Bdirect"
++   AC_LINK_IFELSE([AC_LANG_PROGRAM([
++   #include <stdio.h>
++   ],[
++    printf ("hello world\n");
++   ])], HAVE_LD_BDIRECT=TRUE, [])
++   if test "z$HAVE_LD_BDIRECT" = "zTRUE"; then
++     AC_MSG_RESULT( found )
++   else
++     AC_MSG_RESULT( not found )
++   fi
++   LDFLAGS=$bdirect_ldflags_save
++fi
++AC_SUBST(HAVE_LD_BDIRECT)
++
+ dnl ===================================================================
+ dnl Set the ENABLE_PCH variable. (Activate --enable-pch)
+ dnl ===================================================================
+diff -u -p -u -r1.78 set_soenv.in
+--- config_office/set_soenv.in	28 Oct 2005 11:59:53 -0000	1.78
++++ config_office/set_soenv.in	18 Nov 2005 15:00:31 -0000
+@@ -1926,6 +1926,7 @@ ToFile( "JAVAHOME",          $JAVAHOME, 
+ ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
+ ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS",
+ 		"@HAVE_LD_BSYMBOLIC_FUNCTIONS@","e" );
++ToFile( "HAVE_LD_BDIRECT",   "@HAVE_LD_BDIRECT@","e" );
+ ToFile( "CXX",               $CXX,               "e" );
+ ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
+ ToFile( "MINGWSTRIP",        "@MINGWSTRIP@",     "e" );
+Index: solenv/inc/unxlngi6.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxlngi6.mk,v
+retrieving revision 1.16
+diff -u -p -u -r1.16 unxlngi6.mk
+--- solenv/inc/unxlngi6.mk	5 Oct 2005 11:34:22 -0000	1.16
++++ solenv/inc/unxlngi6.mk	18 Nov 2005 15:03:14 -0000
+@@ -160,6 +160,9 @@ LINKC*=$(CC)
+ .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
+ LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+ .ENDIF
++.IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
++LINKFLAGS += -Wl,-Bdirect
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+
+--- solenv/inc/unxlngx6.mk.old	2007-01-08 16:14:48.000000000 +0100
++++ solenv/inc/unxlngx6.mk	2007-01-08 16:28:14.000000000 +0100
+@@ -170,6 +170,9 @@
+ .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
+ LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+ .ENDIF
++.IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
++LINKFLAGS += -Wl,-Bdirect
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+Index: icu/makefile.mk
+===================================================================
+RCS file: /cvs/external/icu/makefile.mk,v
+retrieving revision 1.27
+diff -u -p -u -r1.27 makefile.mk
+--- icu/makefile.mk	7 Sep 2005 17:43:26 -0000	1.27
++++ icu/makefile.mk	29 Nov 2005 14:11:41 -0000
+@@ -93,6 +93,10 @@ CXX:=$(COMPATH)$/bin$/CC
+ LDFLAGSADD += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+ .ENDIF
+ 
++.IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
++LDFLAGSADD += -Wl,-Bdirect
++.ENDIF
++
+ CONFIGURE_DIR=source
+ 
+ CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
+Index: stlport/makefile.mk
+===================================================================
+RCS file: /cvs/external/stlport/makefile.mk,v
+retrieving revision 1.32
+diff -u -p -u -r1.32 makefile.mk
+--- stlport/makefile.mk	8 Sep 2005 07:48:02 -0000	1.32
++++ stlport/makefile.mk	29 Nov 2005 15:03:43 -0000
+@@ -162,6 +162,10 @@ BUILD_FLAGS=-f vc7.mak
+ CXX+= -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+ .ENDIF
+ 
++.IF "$(HAVE_LD_BDIRECT)"  == "TRUE"
++CXX+= -Wl,-Bdirect
++.ENDIF
++
+ .IF "$(COM)"=="C52"
+ BUILD_ACTION=make
+ .IF "$(CCNUMVER)">="00050008"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svg-import-basegfx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svg-import-basegfx.diff
@@ -0,0 +1,441 @@
+--- basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx
++++ basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx
+@@ -127,19 +127,37 @@ namespace basegfx
+         /** Read poly-polygon from SVG.
+ 
+         	This function imports a poly-polygon from an SVG-D
+-        	statement. Currently, elliptical arc elements are not yet
++        	attribute. Currently, elliptical arc elements are not yet
+         	supported (and ignored during parsing).
+ 
+             @param o_rPolyPoly
+             The output poly-polygon
+ 
+-            @param rSvgDStatement
+-            A valid SVG-D statement
++            @param rSvgDAttribute
++            A valid SVG-D attribute string
+ 
+             @return true, if the string was successfully parsed
+          */
+-        bool importFromSvgD( B2DPolyPolygon& o_rPolyPoly,
+-                             const ::rtl::OUString& 	rSvgDStatement );
++        bool importFromSvgD( B2DPolyPolygon&        o_rPolyPoly,
++                             const ::rtl::OUString& rSvgDAttribute );
++
++        /** Read poly-polygon from SVG.
++
++        	This function imports a poly-polygon from an SVG points
++        	attribute (a plain list of coordinate pairs).
++
++            @param o_rPoly
++            The output polygon. Note that svg:points can only define a
++            single polygon
++
++            @param rSvgPointsAttribute
++            A valid SVG points attribute string
++
++            @return true, if the string was successfully parsed
++         */
++        bool importFromSvgPoints( B2DPolygon&            o_rPoly,
++                                  const ::rtl::OUString& rSvgPointsAttribute );
++
+ 
+ 		// create 3d PolyPolygon from given 2d PolyPolygon. The given fZCoordinate is used to expand the
+ 		// third coordinate.
+--- basegfx/source/polygon/b2dsvgpolypolygon.cxx.orig	2008-05-09 12:49:06.000000000 +0200
++++ basegfx/source/polygon/b2dsvgpolypolygon.cxx	2008-05-09 12:53:16.000000000 +0200
+@@ -37,7 +37,9 @@
+ #include "precompiled_basegfx.hxx"
+ 
+ #include <basegfx/polygon/b2dpolypolygontools.hxx>
++#include <basegfx/polygon/b2dpolygontools.hxx>
+ #include <basegfx/polygon/b2dpolypolygon.hxx>
++#include <basegfx/matrix/b2dhommatrix.hxx>
+ 
+ #ifndef _RTL_USTRING_
+ #include <rtl/ustring.hxx>
+@@ -74,7 +76,7 @@
+                 }
+             }
+ 
+-            bool lcl_isOnNumberChar(const ::rtl::OUString& rStr, const sal_Int32 nPos, bool bSignAllowed = true)
++            inline bool lcl_isOnNumberChar(const ::rtl::OUString& rStr, const sal_Int32 nPos, bool bSignAllowed = true)
+             {
+                 const sal_Unicode aChar(rStr[nPos]);
+ 
+@@ -151,6 +153,37 @@
+                 return true;
+             }
+ 
++            bool lcl_importNumberAndSpaces(sal_Int32&                o_nRetval,
++                                           sal_Int32& 				io_rPos, 
++                                           const ::rtl::OUString& 	rStr, 
++                                           const sal_Int32 		nLen)
++            {
++                sal_Unicode aChar( rStr[io_rPos] );
++                ::rtl::OUStringBuffer sNumberString;
++
++                if(sal_Unicode('+') == aChar || sal_Unicode('-') == aChar)
++                {
++                    sNumberString.append(rStr[io_rPos]);
++                    aChar = rStr[++io_rPos];
++                }
++
++                while(sal_Unicode('0') <= aChar && sal_Unicode('9') >= aChar)
++                {
++                    sNumberString.append(rStr[io_rPos]);
++                    aChar = rStr[++io_rPos];
++                }
++
++                if(sNumberString.getLength())
++                {
++                    o_nRetval = sNumberString.makeStringAndClear().toInt32();
++                    lcl_skipSpacesAndCommas(io_rPos, rStr, nLen);
++
++                    return true;
++                }
++
++                return false;
++            }
++
+             void lcl_skipNumber(sal_Int32& 				io_rPos, 
+                                 const ::rtl::OUString& 	rStr, 
+                                 const sal_Int32 		nLen)
+@@ -623,24 +656,185 @@
+                         break;
+                     }
+ 
+-                    // #100617# not yet supported: elliptical arc
+-                    case 'A' :
+-                        // FALLTHROUGH intended
+                     case 'a' :
+                     {
+-                        OSL_ENSURE(false, "importFromSvgD(): non-interpreted tags in svg:d element (elliptical arc)!");
++                        bRelative = true;
++                        // FALLTHROUGH intended
++                    }
++                    case 'A' :
++                    {
+                         nPos++;
+                         lcl_skipSpaces(nPos, rSvgDStatement, nLen);
+ 
+                         while(nPos < nLen && lcl_isOnNumberChar(rSvgDStatement, nPos))
+                         {
+-                            lcl_skipDoubleAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
+-                            lcl_skipDoubleAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
+-                            lcl_skipDoubleAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
+-                            lcl_skipNumberAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
+-                            lcl_skipNumberAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
+-                            lcl_skipDoubleAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
+-                            lcl_skipDoubleAndSpacesAndCommas(nPos, rSvgDStatement, nLen);
++                            double nX, nY;
++                            double fRX, fRY, fPhi;
++                            sal_Int32 bLargeArcFlag, bSweepFlag;
++
++                            if(!lcl_importDoubleAndSpaces(fRX, nPos, rSvgDStatement, nLen)) return false;
++                            if(!lcl_importDoubleAndSpaces(fRY, nPos, rSvgDStatement, nLen)) return false;
++                            if(!lcl_importDoubleAndSpaces(fPhi, nPos, rSvgDStatement, nLen)) return false;
++                            if(!lcl_importNumberAndSpaces(bLargeArcFlag, nPos, rSvgDStatement, nLen)) return false;
++                            if(!lcl_importNumberAndSpaces(bSweepFlag, nPos, rSvgDStatement, nLen)) return false;
++                            if(!lcl_importDoubleAndSpaces(nX, nPos, rSvgDStatement, nLen)) return false;
++                            if(!lcl_importDoubleAndSpaces(nY, nPos, rSvgDStatement, nLen)) return false;
++
++                            if(bRelative)
++                            {
++                                nX += nLastX;
++                                nY += nLastY;
++                            }
++
++							const B2DPoint aPrevPoint(aCurrPoly.getB2DPoint(aCurrPoly.count() - 1));
++
++                            if( nX == nLastX && nY == nLastY )
++                                continue; // start==end -> skip according to SVG spec
++
++                            if( fRX == 0.0 || fRY == 0.0 )
++                            {
++                                // straight line segment according to SVG spec
++                                aCurrPoly.append(B2DPoint(nX, nY));
++                            }
++                            else
++                            {
++                                // normalize according to SVG spec
++                                fRX=fabs(fRX); fRY=fabs(fRY);
++                                
++                                // from the SVG spec, appendix F.6.4
++
++                                // |x1'|   |cos phi   sin phi|  |(x1 - x2)/2|
++                                // |y1'| = |-sin phi  cos phi|  |(y1 - y2)/2|
++                                const B2DPoint p1(nLastX, nLastY);
++                                const B2DPoint p2(nX, nY);
++                                B2DHomMatrix aTransform; aTransform.rotate(-fPhi*M_PI/180);
++                                
++                                const B2DPoint p1_prime( aTransform * B2DPoint(((p1-p2)/2.0)) );
++
++                                //           ______________________________________       rx y1'
++                                // |cx'|  + /  rx^2 ry^2 - rx^2 y1'^2 - ry^2 x1^2           ry
++                                // |cy'| =-/       rx^2y1'^2 + ry^2 x1'^2               - ry x1' 
++                                //                                                          rx
++                                // chose + if f_A != f_S
++                                // chose - if f_A  = f_S
++                                B2DPoint aCenter_prime;
++                                const double fRadicant(
++                                    (fRX*fRX*fRY*fRY - fRX*fRX*p1_prime.getY()*p1_prime.getY() - fRY*fRY*p1_prime.getX()*p1_prime.getX())/
++                                    (fRX*fRX*p1_prime.getY()*p1_prime.getY() + fRY*fRY*p1_prime.getX()*p1_prime.getX()));
++                                if( fRadicant < 0.0 )
++                                {
++                                    // no solution - according to SVG
++                                    // spec, scale up ellipse
++                                    // uniformly such that it passes
++                                    // through end points (denominator
++                                    // of radicant solved for fRY,
++                                    // with s=fRX/fRY)
++                                    const double fRatio(fRX/fRY);
++                                    const double fRadicant2(
++                                        p1_prime.getY()*p1_prime.getY() +
++                                        p1_prime.getX()*p1_prime.getX()/(fRatio*fRatio));
++                                    if( fRadicant2 < 0.0 )
++                                    {
++                                        // only trivial solution, one
++                                        // of the axes 0 -> straight
++                                        // line segment according to
++                                        // SVG spec
++                                        aCurrPoly.append(B2DPoint(nX, nY));
++                                        continue;
++                                    }
++                                    
++                                    fRY=sqrt(fRadicant2);
++                                    fRX=fRatio*fRY;
++
++                                    // keep center_prime forced to (0,0)
++                                }
++                                else
++                                {
++                                    // todo:   <path d="M200,100 h 50 
++                                    // a25,50 20 0,0 50,-25 l 50,-25"
++                                    // fill="none" stroke="green" stroke-width="5"  />
++                                    //
++                                    // sweep flag not considered right for e.g. 
++                                    // <path d="M0,400 l 50,-25 
++                                    // a25,25 -30 0,1 50,-25 l 50,-25 
++                                    // a25,50 -30 0,1 50,-25 l 50,-25 
++                                    // a25,75 -30 0,1 50,-25 l 50,-25 
++                                    // a25,100 -30 0,1 50,-25 l 50,-25"
++                                    // fill="none" stroke="red" stroke-width="5"  />
++
++
++                                    const double fFactor(
++                                        (bLargeArcFlag==bSweepFlag ? -1.0 : 1.0) *
++                                        sqrt((fRX*fRX*fRY*fRY - fRX*fRX*p1_prime.getY()*p1_prime.getY() - fRY*fRY*p1_prime.getX()*p1_prime.getX())/
++                                             (fRX*fRX*p1_prime.getY()*p1_prime.getY() + fRY*fRY*p1_prime.getX()*p1_prime.getX())));
++
++                                    // actually calculate center_prime
++                                    aCenter_prime = B2DPoint(
++                                        fFactor*fRX*p1_prime.getY()/fRY,
++                                        -fFactor*fRY*p1_prime.getX()/fRX);
++                                }
++
++                                //              +           u - v 
++                                // angle(u,v) =  arccos( ------------ )     (take the sign of (ux vy - uy vx))
++                                //              -        ||u|| ||v||
++
++                                //                  1    | (x1' - cx')/rx |
++                                // theta1 = angle((   ), |                | )
++                                //                  0    | (y1' - cy')/ry |
++                                const B2DPoint aRadii(fRX,fRY);
++                                double fTheta1( 
++                                    B2DVector(1.0,0.0).angle(
++                                        (p1_prime-aCenter_prime)/aRadii));
++
++                                //                 |1|    |  (-x1' - cx')/rx |
++                                // theta2 = angle( | | ,  |                  | )
++                                //                 |0|    |  (-y1' - cy')/ry |
++                                double fTheta2( 
++                                    B2DVector(1.0,0.0).angle(
++                                        (-p1_prime-aCenter_prime)/aRadii));
++
++                                // map both angles to [0,2pi)
++                                fTheta1 = fmod(2*M_PI+fTheta1,2*M_PI);
++                                fTheta2 = fmod(2*M_PI+fTheta2,2*M_PI);
++
++                                // make sure the large arc is taken
++                                // (since
++                                // createPolygonFromEllipseSegment()
++                                // normalizes to e.g. cw arc)
++                                const bool bFlipSegment( (bLargeArcFlag!=0) == 
++                                    (fmod(fTheta2+2*M_PI-fTheta1,
++                                          2*M_PI)<M_PI) );
++                                if( bFlipSegment )
++                                    std::swap(fTheta1,fTheta2);
++
++                                // finally, create bezier polygon from this
++                                B2DPolygon aSegment(
++                                    tools::createPolygonFromUnitEllipseSegment( 
++                                        fTheta1, fTheta2 ));
++
++                                // transform ellipse by rotation & move to final center
++                                aTransform.identity(); 
++                                aTransform.scale(fRX,fRY);
++                                aTransform.translate(aCenter_prime.getX(),
++                                                     aCenter_prime.getY());
++                                aTransform.rotate(fPhi*M_PI/180);
++                                const B2DPoint aOffset((p1+p2)/2.0);
++                                aTransform.translate(aOffset.getX(),
++                                                     aOffset.getY());
++                                aSegment.transform(aTransform);
++                                
++                                // createPolygonFromEllipseSegment()
++                                // always creates arcs that are
++                                // positively oriented - flip polygon
++                                // if we swapped angles above
++                                if( bFlipSegment )
++                                    aSegment.flip();
++                                aCurrPoly.append(aSegment);
++                            }
++
++                            // set last position
++                            nLastX = nX;
++                            nLastY = nY;
+                         }
+                         break;
+                     }
+@@ -665,6 +859,32 @@
+             return true;
+         }
+ 
++        bool importFromSvgPoints( B2DPolygon&            o_rPoly,
++                                  const ::rtl::OUString& rSvgPointsAttribute )
++        {
++            o_rPoly.clear();
++            const sal_Int32 nLen(rSvgPointsAttribute.getLength());
++            sal_Int32 nPos(0);
++            double nX, nY;
++
++            // skip initial whitespace
++            lcl_skipSpaces(nPos, rSvgPointsAttribute, nLen);
++
++            while(nPos < nLen)
++            {
++                if(!lcl_importDoubleAndSpaces(nX, nPos, rSvgPointsAttribute, nLen)) return false;
++                if(!lcl_importDoubleAndSpaces(nY, nPos, rSvgPointsAttribute, nLen)) return false;
++                
++                // add point        
++                o_rPoly.append(B2DPoint(nX, nY));
++
++                // skip to next number, or finish
++                lcl_skipSpaces(nPos, rSvgPointsAttribute, nLen);
++            }
++
++            return true;
++        }
++
+         ::rtl::OUString exportToSvgD(
+ 			const B2DPolyPolygon& rPolyPolygon,
+ 			bool bUseRelativeCoordinates, 
+@@ -678,13 +898,23 @@
+             {
+                 const B2DPolygon aPolygon(rPolyPolygon.getB2DPolygon(i));
+                 const sal_uInt32 nPointCount(aPolygon.count());
++
++                // simply skip empty polygons - avoids special-casing
++                // this below for the n+1 fix for closed polygons
++                if( !aPolygon.count() )
++                    continue;
++
+                 const bool bPolyUsesControlPoints(aPolygon.areControlPointsUsed());
++                // to correctly write out closed curves, need to
++                // output first point twice (so output one additional
++                // point)
++                const sal_uInt32 nExtendedPointCount(nPointCount + aPolygon.isClosed()*bPolyUsesControlPoints);
+                 sal_Unicode aLastSVGCommand(' '); // last SVG command char
+ 				B2DPoint aLeft, aRight; // for quadratic bezier test
+ 
+-                for(sal_uInt32 j(0); j < nPointCount; j++)
++                for(sal_uInt32 j(0); j<nExtendedPointCount; j++)
+                 {
+-                    const B2DPoint aCurrent(aPolygon.getB2DPoint(j));
++                    const B2DPoint aCurrent(aPolygon.getB2DPoint(j%nPointCount));
+ 
+                     if(0 == j)
+                     {
+@@ -697,16 +927,18 @@
+                     else
+                     {
+ 						// handle edge from j-1 to j
+-						const bool bEdgeIsBezier(bPolyUsesControlPoints
+-							&& (aPolygon.isNextControlPointUsed(j - 1) || aPolygon.isPrevControlPointUsed(j)));
+-
++						const bool bEdgeIsBezier(
++                            bPolyUsesControlPoints
++                            && (aPolygon.isNextControlPointUsed((j - 1)%nPointCount) 
++                                || aPolygon.isPrevControlPointUsed(j%nPointCount)));
++                        
+                         if(bEdgeIsBezier)
+                         {
+                             // handle bezier edge
+-                            const B2DPoint aControl0(aPolygon.getNextControlPoint(j - 1));
+-                            const B2DPoint aControl1(aPolygon.getPrevControlPoint(j));
+-							const B2VectorContinuity aPrevCont(aPolygon.getContinuityInPoint(j - 1));
+-							const bool bSymmetricControlVector(CONTINUITY_C2 == aPrevCont);
++                            const B2DPoint aControl0(aPolygon.getNextControlPoint((j - 1)%nPointCount));
++                            const B2DPoint aControl1(aPolygon.getPrevControlPoint(j%nPointCount));
++							const B2VectorContinuity aPrevCont(aPolygon.getContinuityInPoint((j - 1)%nPointCount));
++							const bool bSymmetricControlVector(j>1 && CONTINUITY_C2 == aPrevCont);
+ 							bool bIsQuadraticBezier(false);
+ 
+ 							if(bDetectQuadraticBeziers)
+@@ -798,7 +1030,13 @@
+                         }
+                         else
+                         {
+-                            // normal straight line points
++                            // normal straight line points - no need
++                            // to write extra segments for closed
++                            // polygons here (see n+1 fix above for
++                            // reasoning)
++                            if( j==nPointCount )
++                                continue;
++
+                             if(aLastPoint.getX() == aCurrent.getX())
+                             {
+ 								// export as vertical line
+--- basegfx/test/basegfx2d.cxx	18 Jul 2007 11:08:37 -0000	1.9
++++ basegfx/test/basegfx2d.cxx	28 Feb 2008 09:04:44 -0000
+@@ -470,6 +470,37 @@
+         aExport = tools::exportToSvgD( aPoly );
+         CPPUNIT_ASSERT_MESSAGE("exporting complex polygon to SVG-D (round-trip)", 
+                                !aExport.compareToAscii(sExportString2));
++
++        const B2DPolygon aCircle( 
++            tools::createPolygonFromEllipse( B2DPoint(0,0),
++                                             1.0, 2.0 ));
++        aExport = tools::exportToSvgD( B2DPolyPolygon(aCircle), false, false);
++
++        const char* sExportString3 =
++            "M1 0S0.552284749830794 2 0 2-1 1.10456949966159-1 0-0.552284749830794-2 0-2 1-1.10456949966159 1 0Z";
++        CPPUNIT_ASSERT_MESSAGE("exporting bezier circle polygon to SVG-D", 
++                               !aExport.compareToAscii(sExportString3));
++
++        ::std::ofstream output("elliptical_arc.gnuplot");
++        DebugPlotter aPlotter( "elliptical arg testcases",
++                               output );
++
++        tools::importFromSvgD( aPoly,
++                               ::rtl::OUString::createFromAscii( 
++                                   "M300,200 h-150 a150,150 0 1,0 150,-150 z") );
++        aPlotter.plot( aPoly, "a" );
++        tools::importFromSvgD( aPoly,
++                               ::rtl::OUString::createFromAscii( 
++                                   "M275,175 v-150 a150,150 0 0,0 -150,150 z") );
++        aPlotter.plot( aPoly, "b" );
++        tools::importFromSvgD( aPoly,
++                               ::rtl::OUString::createFromAscii( 
++            "M600,350 l 50,-25 "
++            "a25,25 -30 0,1 50,-25 l 50,-25 "
++            "a25,50 -30 0,1 50,-25 l 50,-25 "
++            "a25,75 -30 0,1 50,-25 l 50,-25 "
++            "a25,100 -30 0,1 50,-25 l 50,-25") );
++        aPlotter.plot( aPoly, "c" );
+     }
+ 
+     // Change the following lines only, if you add, remove or rename 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-huge-tables-header.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-huge-tables-header.diff
@@ -0,0 +1,11 @@
+--- sc/source/ui/view/hdrcont.cxx.orig	2008-06-07 17:19:14.000000000 +0200
++++ sc/source/ui/view/hdrcont.cxx	2008-06-07 17:28:08.000000000 +0200
+@@ -109,7 +109,7 @@
+ 
+ 	nWidth = nSmallWidth = aSize.Width();
+ 	nBigWidth = LogicToPixel( Size( GetTextWidth(
+-		String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("88888")) ), 0 ) ).Width() + 4;
++		String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("8888888")) ), 0 ) ).Width() + 4;
+ 
+ 	SetBackground();	// sonst Probleme auf OS/2 !?!?!
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unxsplash-rework.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unxsplash-rework.diff
@@ -0,0 +1,2351 @@
+diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
+index 1672175..9e931db 100644
+--- desktop/inc/app.hxx
++++ desktop/inc/app.hxx
+@@ -114,6 +114,7 @@ class Desktop : public Application
+ 								~Desktop();
+ 		virtual void			Main( );
+ 		virtual void			Init();
++		virtual void			InitFinished();
+ 		virtual void			DeInit();
+ 		virtual BOOL			QueryExit();
+ 		virtual USHORT			Exception(USHORT nError);
+diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
+index 3b3f0c8..012a82c 100644
+--- desktop/prj/build.lst
++++ desktop/prj/build.lst
+@@ -14,6 +14,8 @@ dt	desktop\win32\source\setup				nmake	-	w	dt_setup dt_inc NULL
+ dt	desktop\win32\source\applauncher		nmake	-	w	dt_applauncher dt_inc NULL
+ dt	desktop\win32\source\applauncher\ooo	nmake	-	w	dt_applauncher_ooo dt_applauncher.w dt_inc NULL
+ dt     desktop\os2\source\applauncher                  nmake   -       p       dt_applauncher dt_inc NULL
++dt	desktop\unx\source			nmake	-	u	dt_uwrapper	dt_inc NULL
++dt	desktop\unx\splash			nmake	-	u	dt_usplash	dt_inc NULL
+ dt	desktop\source\pagein					nmake	-	u	dt_pagein dt_inc NULL
+ dt	desktop\source\pkgchk\unopkg			nmake	-	all	dt_unopkg dt_dp_misc dt_app dt_inc NULL
+ dt	desktop\source\pkgchk					nmake	-	all	dt_pkgchk NULL
+@@ -32,5 +34,5 @@ dt	desktop\source\deployment\registry\component		nmake	-	all	dt_dp_registry_comp
+ dt	desktop\source\deployment\registry\configuration	nmake	-	all	dt_dp_registry_configuration dt_inc NULL
+ dt	desktop\scripts 						nmake	-	u	dt_scripts dt_inc NULL
+ dt	desktop\macosx\source					nmake	-	u	dt_macosx_icons         dt_inc NULL
+-dt	desktop\util							nmake	-	all	dt_util dt_app dt_so_comp dt_spl dt_wrapper.w dt_officeloader.w dt_migr dt_macosx_icons.u NULL
++dt	desktop\util							nmake	-	all	dt_util dt_app dt_so_comp dt_spl dt_uwrapper.u dt_usplash.u dt_wrapper.w dt_officeloader.w dt_migr dt_macosx_icons.u NULL
+ dt	desktop\zipintro							nmake	-	all	dt_zipintro NULL
+diff --git a/desktop/prj/d.lst b/desktop/prj/d.lst
+index ebfc739..b550b26 100644
+--- desktop/prj/d.lst
++++ desktop/prj/d.lst
+@@ -7,6 +7,7 @@ mkdir: %_DEST%\bin%_EXT%\remote2
+ ..\%__SRC%\bin\soffice.bin %_DEST%\bin%_EXT%\soffice.bin
+ ..\%__SRC%\bin\officeloader.exe %_DEST%\bin%_EXT%\soffice.exe
+ ..\%__SRC%\bin\soffice %_DEST%\bin%_EXT%\soffice.bin
++..\%__SRC%\bin\oosplash %_DEST%\bin%_EXT%\oosplash.bin
+ ..\%__SRC%\bin\so\soffice.bin %_DEST%\bin%_EXT%\so\soffice.bin
+ ..\%__SRC%\bin\so\officeloader.exe %_DEST%\bin%_EXT%\so\soffice.exe
+ ..\%__SRC%\bin\so\soffice %_DEST%\bin%_EXT%\so\soffice.bin
+diff --git a/desktop/scripts/soffice.sh b/desktop/scripts/soffice.sh
+index 7fd1393..20936bd 100644
+--- desktop/scripts/soffice.sh
++++ desktop/scripts/soffice.sh
+@@ -262,6 +262,10 @@ else
+ fi
+ export PATH
+ 
++# test for availability of the fast external splash
++if [ "$sd_binary" = "soffice.bin" -a -x "$sd_prog/oosplash.bin" ] ; then
++    sd_binary="oosplash.bin"
++fi
+ 
+ # execute soffice binary
+ "$sd_prog/$sd_binary" "$@" &
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index faeafe5..681b6c6 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -660,6 +660,13 @@ void Desktop::Init()
+     }
+ }
+ 
++void Desktop::InitFinished()
++{
++    RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::InitFinished" );
++
++    CloseSplashScreen();
++}
++
+ void Desktop::DeInit()
+ {
+     RTL_LOGFILE_CONTEXT( aLog, "desktop (cd100003) ::Desktop::DeInit" );
+@@ -1337,6 +1344,7 @@ void Desktop::Main()
+     OpenSplashScreen();
+     RTL_LOGFILE_CONTEXT_TRACE( aLog, "desktop (lo119109) Desktop::Main } OpenSplashScreen" );
+ 
++    SetSplashScreenProgress(10);
+     {
+         UserInstall::UserInstallError instErr_fin = UserInstall::finalize();
+         if ( instErr_fin != UserInstall::E_None)
+@@ -1352,7 +1360,7 @@ void Desktop::Main()
+         }
+         // refresh path information
+         utl::Bootstrap::reloadData();
+-        SetSplashScreenProgress(25);
++        SetSplashScreenProgress(20);
+     }
+ 
+     Reference< XMultiServiceFactory > xSMgr =
+@@ -1365,7 +1373,7 @@ void Desktop::Main()
+     {
+         RegisterServices( xSMgr );
+ 
+-        //SetSplashScreenProgress(15);
++        SetSplashScreenProgress(25);
+ 
+ #ifndef UNX
+         if ( pCmdLineArgs->IsHelp() ) {
+@@ -1403,7 +1411,7 @@ void Desktop::Main()
+         //  Read the common configuration items for optimization purpose
+         if ( !InitializeConfiguration() ) return;
+ 
+-        //SetSplashScreenProgress(20);
++        SetSplashScreenProgress(30);
+ 
+         // set static variable to enabled/disable crash reporter
+         retrieveCrashReporterState();
+@@ -1464,10 +1472,10 @@ void Desktop::Main()
+ #endif
+ 
+         SetDisplayName( aTitle );
+-//        SetSplashScreenProgress(30);
++        SetSplashScreenProgress(35);
+         RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ create SvtPathOptions and SvtLanguageOptions" );
+         pPathOptions.reset( new SvtPathOptions);
+-//        SetSplashScreenProgress(40);
++        SetSplashScreenProgress(40);
+ //        pLanguageOptions = new SvtLanguageOptions(sal_True);
+ //        SetSplashScreenProgress(45);
+         RTL_LOGFILE_CONTEXT_TRACE( aLog, "} create SvtPathOptions and SvtLanguageOptions" );
+@@ -1548,7 +1556,7 @@ void Desktop::Main()
+                 OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), UNO_QUERY );
+             if (xDesktopFrame.is())
+             {
+-//                SetSplashScreenProgress(60);
++                SetSplashScreenProgress(60);
+                 Reference< XFrame > xBackingFrame;
+                 Reference< ::com::sun::star::awt::XWindow > xContainerWindow;
+ 
+@@ -1564,7 +1572,7 @@ void Desktop::Main()
+                     Reference< XController > xBackingComp(
+                         xSMgr->createInstanceWithArguments(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.StartModule") ), lArgs),
+                         UNO_QUERY);
+-//                    SetSplashScreenProgress(80);
++                    SetSplashScreenProgress(80);
+                     if (xBackingComp.is())
+                     {
+                         Reference< ::com::sun::star::awt::XWindow > xBackingWin(xBackingComp, UNO_QUERY);
+@@ -1607,7 +1615,7 @@ void Desktop::Main()
+         return;
+     }
+     */
+-//    SetSplashScreenProgress(55);
++    SetSplashScreenProgress(55);
+ 
+     SvtFontSubstConfig().Apply();
+ 
+@@ -1616,7 +1624,7 @@ void Desktop::Main()
+ 	aAppearanceCfg.SetApplicationDefaults( this );
+ 	SvtAccessibilityOptions aOptions;
+ 	aOptions.SetVCLSettings();
+-//    SetSplashScreenProgress(60);
++    SetSplashScreenProgress(60);
+ 
+ 	Application::SetFilterHdl( LINK( this, Desktop, ImplInitFilterHdl ) );
+ 
+@@ -1639,7 +1647,7 @@ void Desktop::Main()
+     // use system window dialogs
+     Application::SetSystemWindowMode( SYSTEMWINDOW_MODE_DIALOG );
+ 
+-//    SetSplashScreenProgress(80);
++    SetSplashScreenProgress(80);
+ 
+     if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() )
+         InitializeQuickstartMode( xSMgr );
+@@ -2908,14 +2916,18 @@ void Desktop::OpenSplashScreen()
+         else if ( pCmdLine->IsWeb() )
+             aAppName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "web" ));
+ 
++        // Which splash to use
++        OUString aSplashService( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.office.SplashScreen" ));
++        if ( pCmdLine->GetStringParam( CommandLineArgs::CMD_STRINGPARAM_SPLASHPIPE ).getLength() )
++            aSplashService = OUString::createFromAscii("com.sun.star.office.PipeSplashScreen");
++
+         bVisible = sal_True;
+         Sequence< Any > aSeq( 2 );
+         aSeq[0] <<= bVisible;
+         aSeq[1] <<= aAppName;
+         m_rSplashScreen = Reference<XStatusIndicator>(
+             comphelper::getProcessServiceFactory()->createInstanceWithArguments(
+-            OUString::createFromAscii("com.sun.star.office.SplashScreen"),
+-            aSeq), UNO_QUERY);
++            aSplashService, aSeq), UNO_QUERY);
+ 
+         if(m_rSplashScreen.is())
+                 m_rSplashScreen->start(OUString::createFromAscii("SplashScreen"), 100);
+diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
+index ab02af5..5658050 100644
+--- desktop/source/app/cmdlineargs.cxx
++++ desktop/source/app/cmdlineargs.cxx
+@@ -420,6 +420,11 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
+ 		SetBoolParam_Impl( CMD_BOOLPARAM_HELPMATH, sal_True );
+ 		return sal_True;
+ 	}
++    else if ( aArgStr.Copy(0, 13).EqualsIgnoreCaseAscii( "-splash-pipe=" ))
++    {
++		AddStringListParam_Impl( CMD_STRINGPARAM_SPLASHPIPE, aArgStr.Copy( 13 ) );
++		return sal_True;
++    }
+     #ifdef MACOSX
+     /* #i84053# ignore -psn on Mac
+       Platform dependent #ifdef here is ugly, however this is currently
+@@ -929,7 +929,8 @@
+ {
+     osl::MutexGuard  aMutexGuard( m_aMutex );
+
+-    return m_eArgumentCount == NONE ||
++    return m_eArgumentCount == NONE ||
++           ( ( m_eArgumentCount == ONE ) && ( m_aStrParams[ CMD_STRINGPARAM_SPLASHPIPE ].getLength() )) ||
+            ( ( m_eArgumentCount == ONE ) && ( m_aStrParams[ CMD_STRINGPARAM_ACCEPT ].getLength() )) ||
+            ( ( m_eArgumentCount == ONE ) && ( m_aBoolParams[ CMD_BOOLPARAM_PSN ] ));
+ }
+diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
+index 877a909..83f1c67 100644
+--- desktop/source/app/cmdlineargs.hxx
++++ desktop/source/app/cmdlineargs.hxx
+@@ -90,6 +90,7 @@ class CommandLineArgs
+ 		enum StringParam // must be zero based!
+ 		{
+ 			CMD_STRINGPARAM_PORTAL,
++			CMD_STRINGPARAM_SPLASHPIPE,
+ 			CMD_STRINGPARAM_ACCEPT,
+ 			CMD_STRINGPARAM_UNACCEPT,
+ 			CMD_STRINGPARAM_USERDIR,
+diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
+index 36b7638..5be3d9d 100644
+--- desktop/source/splash/makefile.mk
++++ desktop/source/splash/makefile.mk
+@@ -86,7 +86,7 @@ $(SLO)$/splash.obj : $(INCCOM)$/introbmpnames.hxx
+ 
+ .INCLUDE .IGNORE : $(MISC)$/intro_bmp_names.mk
+ 
+-.IF "$(INTO_BITMAPS:f)"!="$(LASTTIME_INTRO_BITMAPS)"
++.IF "$(INTRO_BITMAPS:f)"!="$(LASTTIME_INTRO_BITMAPS)"
+ DO_PHONY=.PHONY
+ .ENDIF			# "$(INTRO_BITMAPS:f)"!="$(LASTTIME_INTRO_BITMAPS)"
+ 
+diff --git a/desktop/unx/source/makefile.mk b/desktop/unx/source/makefile.mk
+new file mode 100644
+index 0000000..e609303
+--- /dev/null
++++ desktop/unx/source/makefile.mk
+@@ -0,0 +1,38 @@
++PRJ=..$/..
++PRJNAME=desktop
++TARGET=oosplash
++
++NO_DEFAULT_STL=TRUE
++
++.INCLUDE :  settings.mk
++
++STDLIB=
++
++OBJFILES= \
++	$(OBJ)$/splashx.obj \
++	$(OBJ)$/start.obj
++
++APP1TARGET = $(TARGET)
++APP1OBJS   = $(OBJFILES)
++APP1LIBSALCPPRT=
++APP1CODETYPE = C
++APP1STDLIBS = $(SALLIB) -lX11
++.IF "$(OS)"=="SOLARIS"
++APP1STDLIBS+= -lsocket
++.ENDIF
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :	target.mk
++
++$(OBJ)$/start.obj : $(INCCOM)$/introbmpnames.hxx
++
++.INCLUDE .IGNORE : $(MISC)$/intro_bmp_names.mk
++
++.IF "$(INTRO_BITMAPS:f)"!="$(LASTTIME_INTRO_BITMAPS)"
++DO_PHONY=.PHONY
++.ENDIF			# "$(INTRO_BITMAPS:f)"!="$(LASTTIME_INTRO_BITMAPS)"
++
++$(INCCOM)$/introbmpnames.hxx $(DO_PHONY):
++	echo const char INTRO_BITMAP_STRINGLIST[]=$(EMQ)"$(INTRO_BITMAPS:f:t",")$(EMQ)"$(EMQ); > $@
++	echo LASTTIME_INTRO_BITMAPS=$(INTRO_BITMAPS:f) > $(MISC)$/intro_bmp_names.mk
+diff --git a/desktop/unx/source/splashx.c b/desktop/unx/source/splashx.c
+new file mode 100644
+index 0000000..b3b6da0
+--- /dev/null
++++ desktop/unx/source/splashx.c
+@@ -0,0 +1,570 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 9695 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2007-07-03 16:36:09 +0200 (Út, 03 čec 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <X11/Xlib.h>
++#include <X11/Xatom.h>
++#include <X11/Xutil.h>
++
++#include "osl/endian.h"
++#include <fcntl.h>
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++
++#include "splashx.h"
++
++typedef struct {
++    unsigned char b, g, r;
++} color_t;
++
++#define WINDOW_WIDTH  440
++#define WINDOW_HEIGHT 299
++
++#define PROGRESS_XOFFSET 12
++#define PROGRESS_YOFFSET 18
++#define PROGRESS_BARSPACE 2
++
++static Display *display = NULL;
++static int screen;
++static int depth;
++static Visual *visual = NULL;
++
++static int width = WINDOW_WIDTH;
++static int height = WINDOW_HEIGHT;
++
++static Colormap color_map;
++static Window win;
++static GC gc;
++
++// Progress bar values
++// taken from desktop/source/splash/splash.cxx
++static int tlx = 212;
++static int tly = 216;
++static int barwidth = 263;
++static int barheight = 8;
++static int barspace = PROGRESS_BARSPACE;
++static color_t barcol = { 18, 202, 157 };
++static color_t framecol = { 0xD3, 0xD3, 0xD3 };
++
++static XColor barcolor;
++static XColor framecolor;
++
++static color_t *bitmap = NULL;
++
++#define BMP_HEADER_LEN 14
++#define WIN_INFO_LEN 40
++
++#define UINT8( x )      ( (unsigned int)( ( (uint8_t *)( x ) )[0] ) )
++
++#define UINT16( x ) (   ( (unsigned int)( ( (uint8_t *)( x ) )[0] ) ) + \
++                      ( ( (unsigned int)( ( (uint8_t *)( x ) )[1] ) ) << 8 ) )
++
++#define UINT32( x ) (   ( (unsigned int)( ( (uint8_t *)( x ) )[0] ) ) + \
++                      ( ( (unsigned int)( ( (uint8_t *)( x ) )[1] ) ) << 8  ) + \
++                      ( ( (unsigned int)( ( (uint8_t *)( x ) )[2] ) ) << 16 ) + \
++                      ( ( (unsigned int)( ( (uint8_t *)( x ) )[3] ) ) << 24 ) )
++
++#define MAX( x, y ) ( ( (x) > (y) )? (x): (y) )
++
++#define LOAD_FAILURE( msg ) \
++    { \
++        fprintf( stderr, "%s: " msg, filename ); \
++        close( fd ); \
++        return 0; \
++    }
++
++// Load the specified Windows 24bit BMP to 'bitmap'
++// Return: 1 - success, 0 - failure
++int splash_load_bmp( char *filename )
++{
++    int fd = open( filename, O_RDONLY );
++    if ( fd < 0 )
++        return 0;
++
++    char file_header[ BMP_HEADER_LEN ];
++
++    if ( read( fd, file_header, BMP_HEADER_LEN ) != BMP_HEADER_LEN || file_header[0] != 'B' || file_header[1] != 'M' )
++        LOAD_FAILURE( "Not a bitmap.\n" );
++
++    int file_size = UINT32( file_header + 2 );
++
++    char info_header[ WIN_INFO_LEN ];
++    if ( read( fd, info_header, 4 ) != 4 )
++        LOAD_FAILURE( "Unable to read the header.\n" );
++
++    int header_size = UINT32( info_header );
++    if ( header_size != WIN_INFO_LEN )
++        LOAD_FAILURE( "Not a Windows bitmap.\n" );
++
++    if ( read( fd, info_header + 4, WIN_INFO_LEN - 4 ) != WIN_INFO_LEN - 4 )
++        LOAD_FAILURE( "The header ended too early.\n" );
++
++    width = UINT32( info_header + 4 );
++    height = UINT32( info_header + 8 );
++
++    int bits = UINT16( info_header + 14 );
++    int compression = UINT16( info_header + 16 );
++
++    if ( bits != 24 )
++        LOAD_FAILURE( "Just 24 bpp bitmaps are supported.\n" );
++
++    if ( compression != 0 )
++        LOAD_FAILURE( "Just uncompressed bitmaps are supported.\n" );
++
++    size_t bitmap_size = width * height * 3;
++    bitmap = malloc( bitmap_size );
++    if ( bitmap == NULL )
++        LOAD_FAILURE( "Cannot allocate memory for the data.\n" );
++
++    if ( read( fd, bitmap, bitmap_size ) != bitmap_size )
++        LOAD_FAILURE( "Cannot read the bitmap data.\n" );
++
++    close( fd );
++    return 1;
++}
++
++static void setup_color( int val[3], color_t *col )
++{
++    if ( val[0] < 0 || val[1] < 0 || val[2] < 0 )
++        return;
++
++#define CONVERT_COLOR( from,to ) if ( from < 0 ) to = 0; else if ( from > 255 ) to = 255; else to = from;
++    CONVERT_COLOR( val[0], col->r );
++    CONVERT_COLOR( val[1], col->g );
++    CONVERT_COLOR( val[2], col->b );
++#undef CONVERT_COLOR
++}
++
++// setup
++void splash_setup( int barc[3], int framec[3], int posx, int posy, int w, int h )
++{
++    if ( width <= 500 )
++    {
++        barwidth  = width - ( 2 * PROGRESS_XOFFSET );
++        barheight = 6;
++        tlx = PROGRESS_XOFFSET;
++        tly = height - PROGRESS_YOFFSET;
++
++        barcol.r = 0;
++        barcol.g = 0;
++        barcol.b = 128;
++    }
++
++    if ( posx >= 0 )
++        tlx = posx;
++    if ( posy >= 0 )
++        tly = posy;
++    if ( w >= 0 )
++        barwidth = w;
++    if ( h >= 0 )
++        barheight = h;
++
++    setup_color( barc, &barcol );
++    setup_color( framec, &framecol );
++}
++
++// Universal shift: bits >= 0 - left, otherwise right
++#define SHIFT( x, bits ) ( ( (bits) >= 0 )? ( (x) << (bits) ): ( (x) >> -(bits) ) )
++
++// Position of the highest bit (more or less integer log2)
++inline int HIGHEST_BIT( unsigned long x )
++{
++    int i = 0;
++    for ( ; x; ++i )
++        x >>= 1;
++
++    return i;
++}
++
++// Number of bits set to 1
++inline int BITS( unsigned long x )
++{
++    int i = 0;
++    for ( ; x; x >>= 1 )
++        if ( x & 1UL )
++            ++i;
++
++    return i;
++}
++
++// Set 'bitmap' as the background of our 'win' window
++static void create_pixmap()
++{
++    if ( !bitmap )
++        return;
++
++    Pixmap pixmap = XCreatePixmap( display, win, width, height, depth );
++
++    unsigned long value_mask = 0;
++    XGCValues values;
++    GC pixmap_gc = XCreateGC( display, pixmap, value_mask, &values );
++
++    if ( visual->class == TrueColor )
++    {
++        unsigned long red_mask   = visual->red_mask;
++        unsigned long green_mask = visual->green_mask;
++        unsigned long blue_mask  = visual->blue_mask;
++
++        unsigned long red_delta_mask   = ( 1UL << ( 8 - BITS( red_mask ) ) ) - 1;
++        unsigned long green_delta_mask = ( 1UL << ( 8 - BITS( green_mask ) ) ) - 1;
++        unsigned long blue_delta_mask  = ( 1UL << ( 8 - BITS( blue_mask ) ) ) - 1;
++
++        int red_shift   = HIGHEST_BIT( red_mask ) - 8;
++        int green_shift = HIGHEST_BIT( green_mask ) - 8;
++        int blue_shift  = HIGHEST_BIT( blue_mask ) - 8;
++
++        XImage *image = XCreateImage( display, visual, depth, ZPixmap,
++                0, NULL, width, height, 32, 0 );
++
++        int bytes_per_line = image->bytes_per_line;
++        int bpp = image->bits_per_pixel;
++        int byte_order = image->byte_order;
++        int machine_byte_order;
++#if defined( _LITTLE_ENDIAN )
++        machine_byte_order = LSBFirst;
++#elif defined( _BIG_ENDIAN )
++        machine_byte_order = MSBFirst;
++#else
++        {
++            fprintf( stderr, "Unsupported machine endianity.\n" );
++            XFreeGC( display, pixmap_gc );
++            XFreePixmap( display, pixmap );
++            XDestroyImage( image );
++            return;
++        }
++#endif
++
++        char *data = malloc( height * bytes_per_line );
++        image->data = data;
++
++        // The following dithers & converts the color_t color to one
++        // acceptable for the visual
++#define COPY_IN_OUT( pix_size, code ) \
++        { \
++            out += pix_size * width * ( height - 1 ); \
++            int x, y; \
++            for ( y = 0; y < height; ++y ) \
++            { \
++                unsigned long red_delta = 0, green_delta = 0, blue_delta = 0; \
++                for ( x = 0; x < width; ++x, ++in  ) \
++                { \
++                    unsigned long red   = in->r + red_delta; \
++                    unsigned long green = in->g + green_delta; \
++                    unsigned long blue  = in->b + blue_delta; \
++                    red_delta = red & red_delta_mask; \
++                    green_delta = green & green_delta_mask; \
++                    blue_delta = blue & blue_delta_mask; \
++                    if ( red > 255 ) \
++                        red = 255; \
++                    if ( green > 255 ) \
++                        green = 255; \
++                    if ( blue > 255 ) \
++                        blue = 255; \
++                    unsigned long pixel = \
++                        ( SHIFT( red, red_shift ) & red_mask ) | \
++                        ( SHIFT( green, green_shift ) & green_mask ) | \
++                        ( SHIFT( blue, blue_shift ) & blue_mask ); \
++                    code \
++                } \
++                out -= 2 * pix_size * width; \
++            } \
++        }
++
++        color_t *in = bitmap;
++        char *out = data;
++
++        if ( bpp == 32 )
++        {
++            if ( machine_byte_order == byte_order )
++                COPY_IN_OUT( 4, *( (uint32_t *)out ) = (uint32_t)pixel; out += 4; )
++            else
++                COPY_IN_OUT( 4, uint32_t tmp = pixel;
++                             *( (uint8_t *)out     ) = *( (uint8_t *)(&tmp) + 3 );
++                             *( (uint8_t *)out + 1 ) = *( (uint8_t *)(&tmp) + 2 );
++                             *( (uint8_t *)out + 2 ) = *( (uint8_t *)(&tmp) + 1 );
++                             *( (uint8_t *)out + 3 ) = *( (uint8_t *)(&tmp)     );
++                             out += 4; )
++        }
++        else if ( bpp == 24 )
++        {
++            if ( machine_byte_order == byte_order && byte_order == LSBFirst )
++                COPY_IN_OUT( 3, *( (color_t *)out ) = *( (color_t *)( &pixel ) ); out += 3; )
++            if ( machine_byte_order == byte_order && byte_order == MSBFirst )
++                COPY_IN_OUT( 3, uint32_t tmp = pixel;
++                             *( (uint8_t *)out     ) = *( (uint8_t *)(&tmp) + 1 );
++                             *( (uint8_t *)out + 1 ) = *( (uint8_t *)(&tmp) + 2 );
++                             *( (uint8_t *)out + 2 ) = *( (uint8_t *)(&tmp) + 3 );
++                             out += 3; )
++            else
++                COPY_IN_OUT( 3, uint32_t tmp = pixel;
++                             *( (uint8_t *)out     ) = *( (uint8_t *)(&tmp) + 3 );
++                             *( (uint8_t *)out + 1 ) = *( (uint8_t *)(&tmp) + 2 );
++                             *( (uint8_t *)out + 2 ) = *( (uint8_t *)(&tmp) + 1 );
++                             out += 3; )
++        }
++        else if ( bpp == 16 )
++        {
++            if ( machine_byte_order == byte_order )
++                COPY_IN_OUT( 2, *( (uint16_t *)out ) = (uint16_t)pixel; out += 2; )
++            else
++                COPY_IN_OUT( 2, uint16_t tmp = pixel;
++                             *( (uint8_t *)out     ) = *( (uint8_t *)(&tmp) + 1 );
++                             *( (uint8_t *)out + 1 ) = *( (uint8_t *)(&tmp)     );
++                             out += 2; );
++        }
++        else if ( bpp == 8 )
++        {
++            COPY_IN_OUT( 1, *( (uint8_t *)out ) = (uint8_t)pixel; ++out; )
++        }
++        else
++        {
++            fprintf( stderr, "Unsupported depth: %d bits per pixel.\n", bpp );
++            XFreeGC( display, pixmap_gc );
++            XFreePixmap( display, pixmap );
++            XDestroyImage( image );
++            return;
++        }
++
++#undef COPY_IN_OUT
++
++        XPutImage( display, pixmap, pixmap_gc, image, 0, 0, 0, 0, width, height );
++        XDestroyImage( image );
++    }
++    else //if ( depth == 1 || visual->class == DirectColor )
++    {
++        // FIXME Something like the following, but faster ;-) - XDrawPoint is not
++        // a good idea...
++        int x, y;
++        for ( y = 0; y < height; ++y )
++        {
++            color_t *color = bitmap + y * width;
++
++            int delta = 0;
++            for ( x = 0; x < width; ++x, ++color )
++            {
++                int rnd = (int)( ( (long)( random() - RAND_MAX/2 ) * 32000 )/RAND_MAX );
++                int luminance = delta + rnd + 299 * (int)color->r + 587 * (int)color->g + 114 * (int)color->b;
++
++                if ( luminance < 128000 )
++                {
++                    XSetForeground( display, pixmap_gc, BlackPixel( display, screen ) );
++                    delta = luminance;
++                }
++                else
++                {
++                    XSetForeground( display, pixmap_gc, WhitePixel( display, screen ) );
++                    delta = luminance - 255000;
++                }
++
++                XDrawPoint( display, pixmap, pixmap_gc, x, y );
++            }
++        }
++    }
++
++    XSetWindowBackgroundPixmap( display, win, pixmap );
++
++    XFreeGC( display, pixmap_gc );
++    XFreePixmap( display, pixmap );
++}
++
++// The old method of hiding the window decorations
++static void suppress_decorations_motif()
++{
++    struct {
++        unsigned long flags, functions, decorations;
++        long input_mode;
++        unsigned long status;
++    } mwmhints;
++
++    Atom a = XInternAtom( display, "_MOTIF_WM_HINTS", False );
++
++    mwmhints.flags = 15; // functions, decorations, input_mode, status
++    mwmhints.functions = 2; // ?
++    mwmhints.decorations = 0;
++    mwmhints.input_mode = 0;
++
++    XChangeProperty( display, win, a, a, 32,
++            PropModeReplace, (unsigned char*)&mwmhints, 5 );
++}
++
++// This is a splash, set it as such.
++// If it fails, just hide the decorations...
++static void suppress_decorations()
++{
++    Atom atom_type = XInternAtom( display, "_NET_WM_WINDOW_TYPE", True );
++    Atom atom_splash = XInternAtom( display, "_NET_WM_WINDOW_TYPE_SPLASH", True );
++
++    if ( atom_type != None && atom_splash != None )
++        XChangeProperty( display, win, atom_type, XA_ATOM, 32,
++                PropModeReplace, (unsigned char*)&atom_splash, 1 );
++    //else
++        suppress_decorations_motif(); // FIXME: Unconditional until Metacity/compiz's SPLASH handling is fixed
++}
++
++// Create the window
++// Return: 1 - success, 0 - failure
++int splash_create_window( int argc, char** argv )
++{
++    char *display_name = NULL;
++    int i;
++    for ( i = 0; i < argc; i++ )
++    {
++        if ( !strcmp( argv[i], "-display" )  || !strcmp( argv[i], "--display" ) )
++            display_name = ( i + 1 < argc )? argv[i+1]: NULL;
++    }
++
++    if ( !display_name )
++        display_name = getenv( "DISPLAY" );
++
++    // init display
++    display = XOpenDisplay( display_name );
++    if ( !display )
++    {
++        fprintf( stderr, "Failed to open display\n" );
++        return 0;
++    }
++
++    // create the window
++    screen = DefaultScreen( display );
++    depth = DefaultDepth( display, screen );
++    color_map = DefaultColormap( display, screen );
++    visual = DefaultVisual( display, screen );
++
++    Window root_win = RootWindow( display, screen );
++    int display_width = DisplayWidth( display, screen );
++    int display_height = DisplayHeight( display, screen );
++
++    win = XCreateSimpleWindow( display, root_win,
++            ( display_width - width ) / 2, ( display_height - height ) / 2,
++            width, height, 0,
++            BlackPixel( display, screen ), BlackPixel( display, screen ) );
++
++    XSetWindowColormap( display, win, color_map );
++
++    // setup colors
++#define FILL_COLOR( xcol,col ) xcol.red = 256*col.r; xcol.green = 256*col.g; xcol.blue = 256*col.b;
++    FILL_COLOR( barcolor, barcol );
++    FILL_COLOR( framecolor, framecol );
++#undef FILL_COLOR
++
++    XAllocColor( display, color_map, &barcolor );
++    XAllocColor( display, color_map, &framecolor );
++
++    // not resizable, no decorations, etc.
++    unsigned long value_mask = 0;
++    XGCValues values;
++    gc = XCreateGC( display, win, value_mask, &values );
++
++    XSizeHints size_hints;
++    size_hints.flags = PPosition | PSize | PMinSize | PMaxSize;
++    size_hints.min_width = width;
++    size_hints.max_width = width;
++    size_hints.min_height = height;
++    size_hints.max_height = height;
++
++    char *name = "OpenOffice.org";
++    char *icon = "icon"; // FIXME
++
++    XSetStandardProperties( display, win, name, icon, None,
++            0, 0, &size_hints );
++
++    // the actual work
++    suppress_decorations();
++    create_pixmap();
++
++    // show it
++    XSelectInput( display, win, 0 );
++    XMapWindow( display, win );
++
++    return 1;
++}
++
++// Re-draw & process the events
++// Just throwing them away - we do not need anything more...
++static void process_events()
++{
++    XEvent xev;
++    int num_events;
++
++    XFlush( display );
++    num_events = XPending( display );
++    while ( num_events > 0 )
++    {
++        num_events--;
++        XNextEvent( display, &xev );
++        //process_event(xev);
++    }
++}
++
++// Draw the progress
++void splash_draw_progress( int progress )
++{
++    // sanity
++    if ( progress < 0 )
++        progress = 0;
++    if ( progress > 100 )
++        progress = 100;
++
++    // draw progress...
++    int length = ( progress * barwidth / 100 ) - ( 2 * barspace );
++    if ( length < 0 )
++        length = 0;
++
++    // border
++    XSetForeground( display, gc, framecolor.pixel );
++    XDrawRectangle( display, win, gc,
++            tlx, tly,
++            barwidth, barheight );
++
++    // progress bar
++    XSetForeground( display, gc, barcolor.pixel );
++    XFillRectangle( display, win, gc,
++            tlx + barspace, tly + barspace,
++            length + 1, barheight - 2*barspace + 1 );
++
++    // pending events
++    process_events();
++}
++
++// Close the window & cleanup
++void splash_close_window()
++{
++    XCloseDisplay( display );
++
++    free( bitmap );
++    bitmap = NULL;
++}
+diff --git a/desktop/unx/source/splashx.h b/desktop/unx/source/splashx.h
+new file mode 100644
+index 0000000..6d84d4b
+--- /dev/null
++++ desktop/unx/source/splashx.h
+@@ -0,0 +1,71 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 9695 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2007-07-03 16:36:09 +0200 (Út, 03 čec 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef _SPLASHX_H
++#define _SPLASHX_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++// Load the specified Windows 24bit BMP we can have as a background of the
++// splash.
++//
++// Note: Must be called before the create_window(), otherwise there will be no
++// image in the splash, just black rectangle.
++//
++// Return: 1 - success, 0 - failure (non-existing, etc.)
++int splash_load_bmp( char *filename );
++
++// Init some of the values
++// If not called, the defaults are used
++// barc, framec - colors, posx, posy - position, w, h - size
++void splash_setup( int barc[3], int framec[3], int posx, int posy, int w, int h );
++
++// Create the splash window
++// Return: 1 - success, 0 - failure
++int splash_create_window( int argc, char** argv );
++
++// Destroy the splash window
++void splash_close_window();
++
++// Update the progress bar
++void splash_draw_progress( int progress );
++
++#ifdef __cplusplus
++} // extern "C"
++#endif
++
++#endif // _SPLASHX_H
+diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c
+new file mode 100644
+index 0000000..2317efe
+--- /dev/null
++++ desktop/unx/source/start.c
+@@ -0,0 +1,719 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 9695 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2007-07-03 16:36:09 +0200 (Út, 03 čec 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <signal.h>
++#include <unistd.h>
++#include <limits.h>
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/socket.h>
++#include <arpa/inet.h>
++#include <sys/un.h>
++#include <sys/poll.h>
++#include <fcntl.h>
++#include <stdio.h>
++#include <libgen.h>
++
++#include <osl/nlsupport.h>
++#include <osl/process.h>
++#include <rtl/bootstrap.h>
++#include <rtl/digest.h>
++#include <sal/main.h>
++
++#include "splashx.h"
++#include <introbmpnames.hxx>
++
++#define PIPEDEFAULTPATH      "/tmp"
++#define PIPEALTERNATEPATH    "/var/tmp"
++
++/* Easier conversions: rtl_uString to rtl_String */
++static rtl_String *
++ustr_to_str( rtl_uString *pStr )
++{
++    rtl_String *pOut = NULL;
++
++    rtl_uString2String( &pOut, rtl_uString_getStr( pStr ),
++            rtl_uString_getLength( pStr ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
++
++    return pOut;
++}
++
++/* Easier conversions: char * to rtl_uString */
++static rtl_uString *
++charp_to_ustr( const char *pStr )
++{
++    rtl_uString *pOut = NULL;
++
++    rtl_string2UString( &pOut, pStr, strlen( pStr ), osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
++
++    return pOut;
++}
++
++/* Easier debugging of rtl_uString values. */
++#if OSL_DEBUG_LEVEL > 0
++static void
++ustr_debug( const char *pMessage, rtl_uString *pStr )
++{
++    rtl_String *pOut = ustr_to_str( pStr );
++
++    fprintf( stderr, "%s: %s\n", pMessage, rtl_string_getStr( pOut ) );
++
++    rtl_string_release( pOut );
++    return;
++}
++#else
++#define ustr_debug( a, b ) {}
++#endif
++
++/* Path of the application. */
++static rtl_uString *
++get_app_path( const char *pAppExec )
++{
++    char pRealPath[PATH_MAX];
++    rtl_uString *pResult;
++
++    char *pPath = strdup( pAppExec );
++    pPath = dirname( pPath );
++
++    realpath( pPath, pRealPath );
++    pResult = charp_to_ustr( pRealPath );
++    free( pPath );
++
++    return pResult;
++}
++
++/* Compute the OOo md5 hash from 'pText' */
++static rtl_uString *
++get_md5hash( rtl_uString *pText )
++{
++    rtl_uString *pResult = NULL;
++    sal_Int32 nCapacity = 100;
++
++    if ( !pText )
++        return NULL;
++
++    unsigned char *pData = (unsigned char *)rtl_uString_getStr( pText );
++    sal_uInt32   nSize = rtl_uString_getLength( pText ) * sizeof( sal_Unicode );
++    if ( !pData )
++        return NULL;
++
++    rtlDigest digest = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
++    if ( digest <= 0 )
++        return NULL;
++
++    sal_uInt32 md5_key_len = rtl_digest_queryLength( digest );
++    sal_uInt8 *md5_buf = (sal_uInt8 *)calloc( md5_key_len, sizeof( sal_uInt8 ) );
++
++    rtl_digest_init( digest, pData , nSize );
++    rtl_digest_update( digest, pData, nSize );
++    rtl_digest_get( digest, md5_buf, md5_key_len );
++    rtl_digest_destroy( digest );
++
++    /* create hex-value string from the MD5 value to keep
++       the string size minimal */
++    rtl_uString_new_WithLength( &pResult, nCapacity );
++    sal_uInt32 i = 0;
++    for ( ; i < md5_key_len; ++i )
++    {
++        char val[3];
++        snprintf( val, 3, "%x", md5_buf[i] ); /* sic! we ignore some of the 0's */
++
++        rtl_uStringbuffer_insert_ascii( &pResult, &nCapacity, rtl_uString_getLength( pResult ),
++                val, strlen( val ) );
++    }
++
++    /* cleanup */
++    free( md5_buf );
++
++    return pResult;
++}
++
++/* Construct the pipe name */
++static rtl_uString *
++get_pipe_path( rtl_uString *pAppPath )
++{
++    rtl_uString *pPath = NULL, *pTmp = NULL, *pUserInstallation = NULL;
++    rtl_uString *pResult = NULL;
++
++    /* setup bootstrap filename */
++    rtl_uString_newFromAscii( &pPath, "file://" );
++    rtl_uString_newConcat( &pPath, pPath, pAppPath );
++    rtl_uString_newFromAscii( &pTmp, "/" );
++    rtl_uString_newConcat( &pPath, pPath, pTmp );
++    rtl_uString_newFromAscii( &pTmp, SAL_CONFIGFILE( "bootstrap" ) );
++    rtl_uString_newConcat( &pPath, pPath, pTmp );
++
++    ustr_debug( "bootstap", pPath );
++
++    /* read userinstallation value */
++    rtlBootstrapHandle handle = rtl_bootstrap_args_open( pPath );
++
++    rtl_uString_newFromAscii( &pTmp, "UserInstallation" );
++    rtl_bootstrap_get_from_handle( handle, pTmp, &pUserInstallation, NULL );
++
++    rtl_bootstrap_args_close( handle );
++
++    /* create the pipe name */
++    ustr_debug( "user installation", pUserInstallation );
++    rtl_uString *pMd5hash = get_md5hash( pUserInstallation );
++    if ( !pMd5hash )
++        rtl_uString_new( &pMd5hash );
++
++    if ( access( PIPEDEFAULTPATH, R_OK|W_OK ) == 0 )
++        rtl_uString_newFromAscii( &pResult, PIPEDEFAULTPATH );
++    else
++        rtl_uString_newFromAscii( &pResult, PIPEALTERNATEPATH );
++
++    rtl_uString_newFromAscii( &pTmp, "/OSL_PIPE_" );
++    rtl_uString_newConcat( &pResult, pResult, pTmp );
++
++    sal_Unicode pUnicode[RTL_USTR_MAX_VALUEOFINT32];
++    rtl_ustr_valueOfInt32( pUnicode, (int)getuid(), 10 );
++    rtl_uString_newFromStr( &pTmp, pUnicode );
++    rtl_uString_newConcat( &pResult, pResult, pTmp );
++
++    rtl_uString_newFromAscii( &pTmp, "_SingleOfficeIPC_" );
++    rtl_uString_newConcat( &pResult, pResult, pTmp );
++
++    rtl_uString_newConcat( &pResult, pResult, pMd5hash );
++
++    ustr_debug( "result", pResult );
++
++    /* cleanup */
++    rtl_uString_release( pPath );
++    rtl_uString_release( pTmp );
++    rtl_uString_release( pUserInstallation );
++
++    return pResult;
++}
++
++/* Get fd of the pipe of the already running OOo. */
++static int
++connect_pipe( rtl_uString *pPipePath )
++{
++    int fd;
++    size_t len;
++    struct sockaddr_un addr;
++
++    rtl_String *pPipeStr = ustr_to_str( pPipePath );
++
++    memset( &addr, 0, sizeof( addr ) );
++
++    if ( ( fd = socket( AF_UNIX, SOCK_STREAM, 0 ) ) < 0 )
++        return fd;
++
++    fcntl( fd, F_SETFD, FD_CLOEXEC );
++
++    addr.sun_family = AF_UNIX;
++    strncpy( addr.sun_path, rtl_string_getStr( pPipeStr ), sizeof( addr.sun_path ) );
++    rtl_string_release( pPipeStr );
++
++/* cut / paste from osl's pipe.c */
++#if defined(FREEBSD)
++    len = SUN_LEN( &addr );
++#else
++    len = sizeof( addr );
++#endif
++
++    if ( connect( fd, (struct sockaddr *)&addr, len ) < 0 )
++        return -1;
++
++    return fd;
++}
++
++/* Send args to the OOo instance (using the 'fd' file descriptor) */
++static sal_Bool
++send_args( int fd )
++{
++    rtl_uString *pBuffer = NULL, *pTmp = NULL;
++    sal_Int32 nCapacity = 100;
++    rtl_String *pOut = NULL;
++    sal_Bool bResult;
++    size_t nLen;
++
++    rtl_uString_new_WithLength( &pBuffer, nCapacity );
++    rtl_uString_new( &pTmp );
++
++    sal_uInt32 nArg;
++    sal_uInt32 nArgCount = osl_getCommandArgCount();
++    for ( nArg = 0; nArg < nArgCount; ++nArg )
++    {
++        osl_getCommandArg( nArg, &pTmp );
++
++        rtl_uStringbuffer_insert( &pBuffer, &nCapacity,
++                rtl_uString_getLength( pBuffer ),
++                rtl_uString_getStr( pTmp ),
++                rtl_uString_getLength( pTmp ) );
++
++        rtl_uStringbuffer_insert_ascii( &pBuffer, &nCapacity,
++                rtl_uString_getLength( pBuffer ),
++                "|", 1 );
++    }
++
++    ustr_debug( "Pass args", pBuffer );
++
++    pOut = ustr_to_str( pBuffer );
++
++    nLen = rtl_string_getLength( pOut ) + 1;
++    bResult = ( write( fd, rtl_string_getStr( pOut ), nLen ) == nLen );
++
++    /* cleanup */
++    rtl_uString_release( pBuffer );
++    rtl_uString_release( pTmp );
++    rtl_string_release( pOut );
++
++    return bResult;
++}
++
++/* Load the splash bitmap. */
++static void
++load_splash_image( rtl_uString *pImagePath )
++{
++    rtl_uString *pPath = NULL, *pBitmaps = NULL, *pTmp = NULL;
++    rtl_uString *pToken = NULL, *pFilename = NULL;
++
++    sal_Int32 nIndex = 0;
++
++    /* setup values */
++    rtl_uString_newFromString( &pPath, pImagePath );
++    rtl_uString_newFromAscii( &pTmp, "/" );
++    rtl_uString_newConcat( &pPath, pPath, pTmp );
++
++    rtl_uString_newFromAscii( &pBitmaps, INTRO_BITMAP_STRINGLIST );
++    rtl_uString_newFromAscii( &pTmp, ",intro.bmp" );
++    rtl_uString_newConcat( &pBitmaps, pBitmaps, pTmp );
++
++    /* try all the bitmaps from INTRO_BITMAP_STRINGLIST
++       (and the intro.bmp fallback) */
++    while ( nIndex >= 0 )
++    {
++        nIndex = rtl_uString_getToken( &pToken, pBitmaps, 0, ',', nIndex );
++        rtl_uString_newConcat( &pFilename, pPath, pToken );
++
++        if ( rtl_uString_getLength( pToken ) > 0 )
++        {
++            rtl_String *pFilenameStr = ustr_to_str( pFilename );
++            sal_Bool bLoaded = splash_load_bmp( rtl_string_getStr( pFilenameStr ) );
++            rtl_string_release( pFilenameStr );
++
++            if ( bLoaded )
++                break;
++        }
++    }
++
++    /* cleanup */
++    rtl_uString_release( pPath );
++    rtl_uString_release( pBitmaps );
++    rtl_uString_release( pTmp );
++    rtl_uString_release( pToken );
++    rtl_uString_release( pFilename );
++}
++
++/* Fill 'array' with values of the key 'name'.
++   Its value is a comma delimited list of integers */
++static void
++get_bootstrap_value( int *array, int size, rtlBootstrapHandle handle, const char *name )
++{
++    rtl_uString *pKey = NULL, *pValue = NULL;
++    sal_Int32 nIndex = 0;
++    int i = 0;
++
++    /* get the value from the ini file */
++    rtl_uString_newFromAscii( &pKey, name );
++    rtl_bootstrap_get_from_handle( handle, pKey, &pValue, NULL );
++
++    /* the value is several numbers delimited by ',' - parse it */
++    if ( rtl_uString_getLength( pValue ) > 0 )
++    {
++        rtl_uString *pToken = NULL;
++
++        for ( ; ( nIndex >= 0 ) && ( i < size ); ++i )
++        {
++            nIndex = rtl_uString_getToken( &pToken, pValue, 0, ',', nIndex );
++            array[i] = rtl_ustr_toInt32( rtl_uString_getStr( pToken ), 10 );
++        }
++
++        rtl_uString_release( pToken );
++    }
++
++    /* cleanup */
++    rtl_uString_release( pKey );
++    rtl_uString_release( pValue );
++}
++
++/* Load the colors and size of the splash. */
++static void
++load_splash_defaults( rtl_uString *pAppPath, sal_Bool *pInhibitSplash )
++{
++    rtl_uString *pSettings = NULL, *pTmp = NULL;
++    rtlBootstrapHandle handle;
++
++    /* costruct the sofficerc file location */
++    rtl_uString_newFromAscii( &pSettings, "file://" );
++    rtl_uString_newConcat( &pSettings, pSettings, pAppPath );
++    rtl_uString_newFromAscii( &pTmp, "/" );
++    rtl_uString_newConcat( &pSettings, pSettings, pTmp );
++    rtl_uString_newFromAscii( &pTmp, SAL_CONFIGFILE( "soffice" ) );
++    rtl_uString_newConcat( &pSettings, pSettings, pTmp );
++
++    /* use it as the bootstrap file */
++    handle = rtl_bootstrap_args_open( pSettings );
++
++    int logo[1] =  { -1 },
++        bar[3] =   { -1, -1, -1 },
++        frame[3] = { -1, -1, -1 },
++        pos[2] =   { -1, -1 },
++        size[2] =  { -1, -1 };
++
++    /* get the values */
++    get_bootstrap_value( logo,  1, handle, "Logo" );
++    get_bootstrap_value( bar,   3, handle, "ProgressBarColor" );
++    get_bootstrap_value( frame, 3, handle, "ProgressFrameColor" );
++    get_bootstrap_value( pos,   2, handle, "ProgressPosition" );
++    get_bootstrap_value( size,  2, handle, "ProgressSize" );
++
++    if ( logo[0] == 0 )
++        *pInhibitSplash = sal_True;
++
++    splash_setup( bar, frame, pos[0], pos[1], size[0], size[1] );
++
++    /* cleanup */
++    rtl_bootstrap_args_close( handle );
++    rtl_uString_release( pSettings );
++    rtl_uString_release( pTmp );
++}
++
++#define BUFFER_LEN 255
++
++/* Read the percent to show in splash. */
++static sal_Bool
++read_percent( int status_fd, int *pPercent )
++{
++    static char pBuffer[BUFFER_LEN + 1];
++    static char *pNext = pBuffer;
++    static size_t nRead = 0;
++
++    char *pBegin;
++    char *pIter;
++
++    /* from the last call */
++    int nNotProcessed = nRead - ( pNext - pBuffer );
++    if ( nNotProcessed >= BUFFER_LEN )
++        return sal_False;
++
++    memmove( pBuffer, pNext, nNotProcessed );
++
++    /* read data */
++    nRead = read( status_fd, pBuffer + nNotProcessed, BUFFER_LEN - nNotProcessed );
++    if ( nRead < 0 )
++        return sal_False;
++
++    nRead += nNotProcessed;
++    pBuffer[nRead] = '\0';
++
++    /* skip old data */
++    pBegin = pBuffer;
++    pNext = pBuffer;
++    for ( pIter = pBuffer; *pIter; ++pIter )
++        if ( *pIter == '\n' )
++        {
++            pBegin = pNext;
++            pNext = pIter + 1;
++        }
++
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "Got status: %s\n", pBegin );
++#endif
++    if ( !strncasecmp( pBegin, "end", 3 ) )
++        return sal_False;
++    else if ( sscanf( pBegin, "%d%%", pPercent ) )
++        return sal_True;
++
++    return sal_False;
++}
++
++/* Periodically update the splash & the percent acconding to what
++   status_fd says */
++static void
++show_splash( int status_fd )
++{
++    int nRetval;
++    struct pollfd aPfd;
++
++    int nPercent = 0;
++    sal_Bool bFinish = sal_False;
++
++    /* we want to watch status_fd */
++    aPfd.fd = status_fd;
++    aPfd.events = POLLIN;
++
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "Starting main loop, status fd: %d\n", status_fd );
++#endif
++
++    /* main loop */
++    do {
++        splash_draw_progress( nPercent );
++
++        /* read from pipe if data available */
++        nRetval = poll( &aPfd, 1, 50 );
++        if ( nRetval > 0 )
++            bFinish = !read_percent( status_fd, &nPercent );
++        else if ( nRetval < 0 )
++            bFinish = sal_True;
++    } while ( !bFinish );
++}
++
++/* Simple system check. */
++static void
++system_checks( void )
++{
++#ifdef LINUX
++    struct stat buf;
++
++    /* check proc is mounted - lots of things fail otherwise */
++    if ( stat( "/proc/version", &buf ) != 0 )
++    {
++        fprintf( stderr, "ERROR: /proc not mounted - OO.o is unlikely to work well if at all" );
++        exit( 1 );
++    }
++#endif
++}
++
++/* Start the OOo application */
++static sal_Bool
++fork_app( rtl_uString *pAppPath, int *status_fd )
++{
++    rtl_uString *pApp = NULL, *pTmp = NULL, *pArg = NULL;
++    rtl_uString **ppArgs;
++    sal_uInt32 nArgs, i;
++
++    oslProcess aProcess;
++    oslProcessError nError;
++    int status_pipe[2];
++
++    system_checks();
++
++    /* application name */
++    rtl_uString_newFromAscii( &pApp, "file://" );
++    rtl_uString_newConcat( &pApp, pApp, pAppPath );
++    rtl_uString_newFromAscii( &pTmp, "/soffice.bin" );
++    rtl_uString_newConcat( &pApp, pApp, pTmp );
++
++    rtl_uString_new( &pTmp );
++
++    /* copy args */
++    nArgs = osl_getCommandArgCount();
++    ppArgs = (rtl_uString **)calloc( nArgs + 1, sizeof( rtl_uString* ) );
++    for ( i = 0; i < nArgs; ++i )
++    {
++        ppArgs[i] = NULL;
++        osl_getCommandArg( i, &pTmp );
++
++        rtl_uString_newFromString( &(ppArgs[i]), pTmp );
++    }
++
++    /* create pipe */
++    if ( pipe( status_pipe ) < 0 )
++    {
++        fprintf( stderr, "ERROR: no file handles\n");
++        exit( 1 );
++    }
++
++    /* add the pipe arg */
++    sal_Unicode pUnicode[RTL_USTR_MAX_VALUEOFINT32];
++    rtl_ustr_valueOfInt32( pUnicode, status_pipe[1], 10 );
++
++    rtl_uString_newFromAscii( &pArg, "-splash-pipe=" );
++    rtl_uString_newFromStr( &pTmp, pUnicode );
++    rtl_uString_newConcat( &pArg, pArg, pTmp );
++
++    ppArgs[nArgs] = NULL;
++    rtl_uString_newFromString( &(ppArgs[nArgs]), pArg );
++    ++nArgs;
++
++    /* start the OOo process */
++    nError = osl_executeProcess( pApp, ppArgs, nArgs,
++            osl_Process_DETACHED | osl_Process_NORMAL,
++            NULL,
++            NULL,
++            NULL, 0,
++            &aProcess );
++
++    *status_fd = status_pipe[0];
++    close( status_pipe[1] );
++
++    if ( nError != osl_Process_E_None )
++    {
++        fprintf( stderr, "ERROR %d forking process", nError );
++        ustr_debug( "", pApp );
++        return sal_False;
++    }
++
++    return sal_True;
++}
++
++/* Check if 'pArg' is -pCmpWith or --pCmpWith */
++static sal_Bool
++arg_check( rtl_uString *pArg, const char *pCmpWith )
++{
++    sal_Unicode *pUnicode = rtl_uString_getStr( pArg );
++
++    if ( pUnicode[0] == (sal_Unicode)'-' )
++        pUnicode++;
++    else
++        return sal_False;
++
++    /* tolerate -- prefixes etc. */
++    if ( pUnicode[0] == (sal_Unicode)'-' )
++        pUnicode++;
++
++    return !rtl_ustr_ascii_compare( pUnicode, pCmpWith );
++}
++
++static const char *ppInhibit[] = {
++    "nologo", "headless", "invisible", "help", "h", "?", "minimized",
++    NULL };
++static const char *ppTwoArgs[] = {
++    "pt", "display",
++    NULL };
++
++/* Read command line parameters and return whether we display the splash. */
++static sal_Bool
++get_inhibit_splash()
++{
++    rtl_uString *pTmp = NULL;
++    sal_Bool bSkipNextArg = sal_False;
++    const char **ppIter;
++
++    rtl_uString_new( &pTmp );
++
++    sal_uInt32 nArg;
++    sal_uInt32 nArgCount = osl_getCommandArgCount();
++    for ( nArg = 0; nArg < nArgCount; ++nArg )
++    {
++        if ( bSkipNextArg )
++        {
++            bSkipNextArg = sal_False;
++            continue;
++        }
++
++        osl_getCommandArg( nArg, &pTmp );
++
++        /* check for inhibit splash params */
++        for ( ppIter = ppInhibit; *ppIter; ++ppIter )
++        {
++            if ( arg_check( pTmp, *ppIter ) )
++            {
++                rtl_uString_release( pTmp );
++                return sal_True;
++            }
++        }
++        /* check for 2 arguments params */
++        for ( ppIter = ppTwoArgs; *ppIter; ++ppIter )
++        {
++            if ( arg_check( pTmp, *ppIter ) )
++            {
++                bSkipNextArg = sal_True;
++                break;
++            }
++        }
++    }
++
++    /* cleanup */
++    rtl_uString_release( pTmp );
++
++    return sal_False;
++}
++
++SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
++{
++    int fd = 0, status_fd = 0;
++    sal_Bool bInhibitSplash;
++    sal_Bool bSentArgs = sal_False;
++    rtl_uString *pAppPath = NULL;
++    rtl_uString *pPipePath = NULL;
++
++    /* turn SIGPIPE into an error */
++    signal( SIGPIPE, SIG_IGN );
++
++    bInhibitSplash = get_inhibit_splash();
++
++    pAppPath = get_app_path( argv[0] );
++    if ( !pAppPath )
++    {
++        fprintf( stderr, "ERROR: Can't read app link\n" );
++        exit( 1 );
++    }
++    ustr_debug( "App path", pAppPath );
++
++    pPipePath = get_pipe_path( pAppPath );
++
++    if ( ( fd = connect_pipe( pPipePath ) ) >= 0 )
++        bSentArgs = send_args( fd );
++#if OSL_DEBUG_LEVEL > 0
++    else
++        ustr_debug( "Failed to connect to pipe", pPipePath );
++#endif
++
++    if ( !bSentArgs )
++    {
++        if ( !fork_app( pAppPath, &status_fd ) )
++            return 1;
++
++        if ( !bInhibitSplash )
++        {
++            load_splash_image( pAppPath );
++            load_splash_defaults( pAppPath, &bInhibitSplash );
++        }
++
++        if ( !bInhibitSplash && splash_create_window( argc, argv ) )
++        {
++            splash_draw_progress( 0 );
++            show_splash( status_fd );
++            splash_close_window();
++        }
++    }
++
++    /* cleanup */
++    rtl_uString_release( pAppPath );
++    rtl_uString_release( pPipePath );
++
++    close( fd );
++    close( status_fd );
++
++    return 0;
++}
+diff --git a/desktop/unx/splash/exports.map b/desktop/unx/splash/exports.map
+new file mode 100644
+index 0000000..c235082
+--- /dev/null
++++ desktop/unx/splash/exports.map
+@@ -0,0 +1,10 @@
++UDK_3_0_0 {
++    global:
++        GetVersionInfo;
++        component_getImplementationEnvironment;
++        component_getFactory;
++        component_writeInfo;
++
++    local:
++        *;
++};
+diff --git a/desktop/unx/splash/makefile.mk b/desktop/unx/splash/makefile.mk
+new file mode 100644
+index 0000000..4bbe6dd
+--- /dev/null
++++ desktop/unx/splash/makefile.mk
+@@ -0,0 +1,73 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision: 7305 $
++#
++#   last change: $Author: jholesovsky $ $Date: 2006-08-04 16:35:41 +0200 (Pá, 04 srp 2006) $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJNAME=desktop
++TARGET=spl_unx
++LIBTARGET=NO
++
++ENABLE_EXCEPTIONS=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++
++# --- Files --------------------------------------------------------
++
++SLOFILES =  $(SLO)$/unxsplash.obj \
++            $(SLO)$/services_unxsplash.obj
++
++SHL1DEPN=   makefile.mk
++SHL1OBJS=   $(SLOFILES)
++
++
++SHL1TARGET=$(TARGET)$(UPD)$(DLLPOSTFIX)
++SHL1IMPLIB=i$(TARGET)
++
++SHL1VERSIONMAP=exports.map
++SHL1DEF=$(MISC)$/$(SHL1TARGET).def
++DEF1NAME=$(SHL1TARGET)
++
++SHL1STDLIBS= \
++	$(VOSLIB)			\
++	$(CPPUHELPERLIB)	\
++	$(CPPULIB)			\
++	$(SALLIB)
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :  target.mk
++
+diff --git a/desktop/unx/splash/services_unxsplash.cxx b/desktop/unx/splash/services_unxsplash.cxx
+new file mode 100644
+index 0000000..c1ee124
+--- /dev/null
++++ desktop/unx/splash/services_unxsplash.cxx
+@@ -0,0 +1,177 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 7305 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2006-08-04 16:35:41 +0200 (Pá, 04 srp 2006) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_
++#include <com/sun/star/beans/NamedValue.hpp>
++#endif
++#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP_
++#include <com/sun/star/registry/XRegistryKey.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UTIL_DATE_HPP_
++#include <com/sun/star/util/Date.hpp>
++#endif
++
++#ifndef _UNO_ENVIRONMENT_H_
++#include <uno/environment.h>
++#endif
++#ifndef _CPPUHELPER_FACTORY_HXX_
++#include <cppuhelper/factory.hxx>
++#endif
++#ifndef _UTL_CONFIGMGR_HXX_
++#include <unotools/configmgr.hxx>
++#endif
++
++#include <string.h>
++
++#include "unxsplash.hxx"
++
++using namespace rtl;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::registry;
++using namespace ::desktop;
++
++static const char* pServices[] =
++{
++    UnxSplashScreen::serviceName,
++    NULL
++};
++
++static const char* pImplementations[] =
++{
++    UnxSplashScreen::implementationName,
++    NULL
++};
++
++typedef Reference<XInterface>(* fProvider)( const Reference<XMultiServiceFactory>& );
++
++static const fProvider pInstanceProviders[] =
++{
++    UnxSplashScreen::getInstance,
++    NULL
++};
++
++
++static const char** pSupportedServices[] =
++{
++    UnxSplashScreen::interfaces,
++    NULL
++};
++
++static Sequence<OUString>
++getSupportedServiceNames( int p ) {
++    const char **names = pSupportedServices[p];
++    Sequence<OUString> aSeq;
++    for ( int i = 0; names[i] != NULL; i++ )
++    {
++        aSeq.realloc( i+1 );
++        aSeq[i] = OUString::createFromAscii( names[i] );
++    }
++    return aSeq;
++}
++
++extern "C"
++{
++void SAL_CALL
++component_getImplementationEnvironment(
++    const sal_Char** ppEnvironmentTypeName,
++    uno_Environment** ppEnvironment )
++{
++    *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
++}
++
++sal_Bool SAL_CALL
++component_writeInfo(
++    void* pServiceManager,
++    void* pRegistryKey )
++{
++    Reference<XMultiServiceFactory> xMan(
++        reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
++    Reference<XRegistryKey> xKey(
++        reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
++
++    // iterate over service names and register them...
++    OUString aImpl;
++    const char* pServiceName = NULL;
++    const char* pImplName = NULL;
++    for ( int i = 0; ( pServices[i] != NULL ) && ( pImplementations[i] != NULL ); i++ )
++    {
++        pServiceName= pServices[i];
++        pImplName = pImplementations[i];
++        aImpl = OUString::createFromAscii( "/" )
++              + OUString::createFromAscii( pImplName )
++              + OUString::createFromAscii( "/UNO/SERVICES" );
++        Reference<XRegistryKey> xNewKey = xKey->createKey( aImpl );
++        xNewKey->createKey( OUString::createFromAscii( pServiceName ) );
++    }
++    return sal_True;
++}
++
++void* SAL_CALL
++component_getFactory(
++    const sal_Char* pImplementationName,
++    void* pServiceManager,
++    void* pRegistryKey )
++{
++    // Set default return value for this operation - if it failed.
++    if ( pImplementationName && pServiceManager )
++    {
++        Reference< XSingleServiceFactory > xFactory;
++        Reference< XMultiServiceFactory > xServiceManager(
++            reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
++
++        // search implementation
++        for ( int i = 0; ( pImplementations[i] != NULL ); i++ )
++        {
++            if ( strcmp( pImplementations[i], pImplementationName ) == 0 )
++            {
++                // found implementation
++                xFactory = Reference<XSingleServiceFactory>( cppu::createSingleFactory(
++                    xServiceManager, OUString::createFromAscii( pImplementationName ),
++                    pInstanceProviders[i], getSupportedServiceNames( i ) ) );
++                if ( xFactory.is() )
++                {
++                    // Factory is valid - service was found.
++                    xFactory->acquire();
++                    return xFactory.get();
++                }
++            }
++        }
++    }
++
++    return NULL;
++}
++} // extern "C"
+diff --git a/desktop/unx/splash/unxsplash.cxx b/desktop/unx/splash/unxsplash.cxx
+new file mode 100644
+index 0000000..ca20334
+--- /dev/null
++++ desktop/unx/splash/unxsplash.cxx
+@@ -0,0 +1,192 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 7305 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2006-08-04 16:35:41 +0200 (Pá, 04 srp 2006) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "unxsplash.hxx"
++#include <stdio.h>
++#ifndef _UTL_BOOTSTRAP_HXX
++#include <unotools/bootstrap.hxx>
++#endif
++#ifndef _VOS_PROCESS_HXX_
++#include <vos/process.hxx>
++#endif
++#ifndef _URLOBJ_HXX
++#include <tools/urlobj.hxx>
++#endif
++#ifndef _STREAM_HXX
++#include <tools/stream.hxx>
++#endif
++#ifndef _SFX_HRC
++#include <sfx2/sfx.hrc>
++#endif
++
++#include <com/sun/star/registry/XRegistryKey.hpp>
++#include <rtl/logfile.hxx>
++#include <rtl/ustrbuf.hxx>
++#include <rtl/math.hxx>
++
++#define PIPE_ARG "-splash-pipe="
++
++using namespace ::rtl;
++using namespace ::com::sun::star::registry;
++
++namespace desktop
++{
++
++UnxSplashScreen::UnxSplashScreen( const Reference< XMultiServiceFactory >& rSMgr )
++    : m_rFactory( rSMgr ),
++      m_pOutFd( NULL )
++{
++}
++
++UnxSplashScreen::~UnxSplashScreen()
++{
++#if OSL_DEBUG_LEVEL > 1
++    fprintf( stderr, "UnxSplashScreen::~UnxSplashScreen()\n" );
++#endif
++
++    if ( m_pOutFd )
++    {
++        fclose( m_pOutFd );
++        m_pOutFd = NULL;
++    }
++}
++
++void SAL_CALL UnxSplashScreen::start( const OUString& /*aText*/, sal_Int32 /*nRange*/ )
++    throw ( RuntimeException )
++{
++}
++
++void SAL_CALL UnxSplashScreen::end()
++    throw ( RuntimeException )
++{
++#if OSL_DEBUG_LEVEL > 1
++    fprintf( stderr, "UnxSplashScreen::end()\n" );
++#endif
++
++    fprintf( m_pOutFd, "end\n" );
++    fflush( m_pOutFd );
++}
++
++void SAL_CALL UnxSplashScreen::reset()
++    throw ( RuntimeException )
++{
++    // TODO?
++}
++
++void SAL_CALL UnxSplashScreen::setText( const OUString& /*aText*/ )
++    throw ( RuntimeException )
++{
++    // TODO?
++}
++
++void SAL_CALL UnxSplashScreen::setValue( sal_Int32 nValue )
++    throw ( RuntimeException )
++{
++    if ( m_pOutFd )
++    {
++        fprintf( m_pOutFd, "%d%%\n", nValue );
++        fflush( m_pOutFd );
++    }
++}
++
++// XInitialize
++void SAL_CALL
++UnxSplashScreen::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments )
++    throw ( RuntimeException )
++{
++    ::vos::OStartupInfo aInfo;
++    for ( sal_uInt32 i = 0; i < aInfo.getCommandArgCount(); i++ )
++    {
++        rtl::OUString aArg;
++        if ( aInfo.getCommandArg( i, aArg ) )
++            break;
++        if ( aArg.matchIgnoreAsciiCaseAsciiL( PIPE_ARG, sizeof( PIPE_ARG ) - 1, 0 ) )
++        {
++            OUString aNum = aArg.copy( sizeof( PIPE_ARG ) - 1 );
++            int fd = aNum.toInt32();
++            m_pOutFd = fdopen( fd, "w" );
++#if OSL_DEBUG_LEVEL > 1
++            fprintf( stderr, "Got argument '-splash-pipe=%d ('%s') (%p)\n",
++                     fd, (const sal_Char *)rtl::OUStringToOString( aNum, RTL_TEXTENCODING_UTF8 ),
++                     m_pOutFd );
++#endif
++        }
++    }
++}
++
++// get service instance...
++UnxSplashScreen *UnxSplashScreen::m_pINSTANCE = NULL;
++osl::Mutex UnxSplashScreen::m_aMutex;
++
++Reference< XInterface > UnxSplashScreen::getInstance( const Reference< XMultiServiceFactory >& rSMgr )
++{
++    if ( m_pINSTANCE == NULL )
++    {
++        osl::MutexGuard guard( m_aMutex );
++        if ( m_pINSTANCE == NULL )
++            return (XComponent*) new UnxSplashScreen( rSMgr );
++    }
++
++    return (XComponent*)NULL;
++}
++
++// static service info...
++const char* UnxSplashScreen::interfaces[] =
++{
++    "com.sun.star.task.XStartusIndicator",
++    "com.sun.star.lang.XInitialization",
++    NULL,
++};
++const sal_Char *UnxSplashScreen::serviceName = "com.sun.star.office.PipeSplashScreen";
++const sal_Char *UnxSplashScreen::implementationName = "com.sun.star.office.comp.PipeSplashScreen";
++const sal_Char *UnxSplashScreen::supportedServiceNames[] = { "com.sun.star.office.PipeSplashScreen", NULL };
++
++OUString UnxSplashScreen::impl_getImplementationName()
++{
++    return OUString::createFromAscii( implementationName );
++}
++
++Sequence<OUString> UnxSplashScreen::impl_getSupportedServiceNames()
++{
++    Sequence<OUString> aSequence;
++    for ( int i = 0; supportedServiceNames[i] != NULL; i++ )
++    {
++        aSequence.realloc( i+1 );
++        aSequence[i] = OUString::createFromAscii( supportedServiceNames[i] );
++    }
++    return aSequence;
++}
++
++}
+diff --git a/desktop/unx/splash/unxsplash.hxx b/desktop/unx/splash/unxsplash.hxx
+new file mode 100644
+index 0000000..5419324
+--- /dev/null
++++ desktop/unx/splash/unxsplash.hxx
+@@ -0,0 +1,117 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 7305 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2006-08-04 16:35:41 +0200 (Pá, 04 srp 2006) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <stdio.h>
++
++#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UNO_EXCEPTION_HPP_
++#include <com/sun/star/uno/Exception.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
++#include <com/sun/star/uno/Reference.h>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
++#include <com/sun/star/lang/XComponent.hpp>
++#endif
++#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATOR_HPP_
++#include <com/sun/star/task/XStatusIndicator.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
++#include <com/sun/star/lang/XInitialization.hpp>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE2_HXX_
++#include <cppuhelper/implbase2.hxx>
++#endif
++#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
++#include <cppuhelper/interfacecontainer.h>
++#endif
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++#include <osl/mutex.hxx>
++#ifndef _RTL_BOOTSTRAP_HXX_
++#include <rtl/bootstrap.hxx>
++#endif
++
++using namespace ::rtl;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::task;
++
++namespace desktop {
++
++class  UnxSplashScreen : public ::cppu::WeakImplHelper2< XStatusIndicator, XInitialization >
++{
++private:
++    // don't allow anybody but ourselves to create instances of this class
++    UnxSplashScreen( const UnxSplashScreen& );
++    UnxSplashScreen( void );
++    UnxSplashScreen operator =( const UnxSplashScreen& );
++
++    UnxSplashScreen( const Reference< XMultiServiceFactory >& xFactory );
++
++    virtual ~UnxSplashScreen();
++
++    static  UnxSplashScreen *m_pINSTANCE;
++
++    static osl::Mutex m_aMutex;
++    Reference< XMultiServiceFactory > m_rFactory;
++
++    FILE *m_pOutFd;
++
++public:
++    static const char* interfaces[];
++    static const sal_Char *serviceName;
++    static const sal_Char *implementationName;
++    static const sal_Char *supportedServiceNames[];
++
++    static Reference< XInterface > getInstance( const Reference < XMultiServiceFactory >& xFactory );
++
++    // static service info
++    static OUString  impl_getImplementationName();
++    static Sequence<OUString> impl_getSupportedServiceNames();
++
++    // XStatusIndicator
++    virtual void SAL_CALL start( const OUString& aText, sal_Int32 nRange ) throw ( RuntimeException );
++    virtual void SAL_CALL end() throw ( RuntimeException );
++    virtual void SAL_CALL reset() throw ( RuntimeException );
++    virtual void SAL_CALL setText( const OUString& aText ) throw ( RuntimeException );
++    virtual void SAL_CALL setValue( sal_Int32 nValue ) throw ( RuntimeException );
++
++    // XInitialize
++    virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments ) throw ( RuntimeException );
++};
++
++}
+diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
+index 1fc287e..3d3460d 100644
+--- scp2/source/ooo/file_library_ooo.scp
++++ scp2/source/ooo/file_library_ooo.scp
+@@ -2116,6 +2116,9 @@ File gid_File_Lib_Spell
+ End
+ 
+ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Spl, spl)
++#ifdef UNX
++STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Spl_Unx, spl_unx)
++#endif
+ 
+ SPECIAL_UNO_LIB_FILE_PATCH(gid_File_Lib_Srtrs1,srtrs1)
+ 
+diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
+index 8e113d3..2f49288 100644
+--- scp2/source/ooo/file_ooo.scp
++++ scp2/source/ooo/file_ooo.scp
+@@ -341,6 +341,15 @@ File gid_File_Bin_Soffice_Bin
+     Name = "soffice.bin";
+ End
+ 
++#if defined(UNX)
++File gid_File_Bin_QStart_Bin
++    BIN_FILE_BODY;
++    Dir = gid_Dir_Program;
++    Styles = (PACKED, PATCH);
++    Name = "oosplash.bin";
++End
++#endif
++
+ // use this for high detail file open dialog >= 5.1 windows
+ // #ifdef WNT
+ //
+diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
+index 1576807..9492703 100644
+--- vcl/inc/vcl/svapp.hxx
++++ vcl/inc/vcl/svapp.hxx
+@@ -292,6 +292,7 @@ public:
+     virtual void                DataChanged( const DataChangedEvent& rDCEvt );
+ 
+     virtual void                Init();
++    virtual void                InitFinished();
+     virtual void                DeInit();
+ 
+     static void                 InitAppRes( const ResId& rResId );
+diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
+index 76bb447..8aefaf8 100644
+--- vcl/source/app/svapp.cxx
++++ vcl/source/app/svapp.cxx
+@@ -381,6 +381,11 @@ void Application::Init()
+ }
+ 
+ // -----------------------------------------------------------------------
++void Application::InitFinished()
++{
++}
++
++// -----------------------------------------------------------------------
+ 
+ void Application::DeInit()
+ {
+diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
+index 6a1a0c0..db4c9f0 100644
+--- vcl/source/window/window.cxx
++++ vcl/source/window/window.cxx
+@@ -6518,10 +6518,19 @@ void Window::Show( BOOL bVisible, USHORT nFlags )
+             mpWindowImpl->mpBorderWindow->Show( TRUE, nFlags );
+         else if ( mpWindowImpl->mbFrame )
+         {
+-            ImplSVData* pSVData = ImplGetSVData();
+             // #106431#, hide SplashScreen
+-            if( pSVData->mpIntroWindow && !ImplIsWindowOrChild( pSVData->mpIntroWindow ) )
++            ImplSVData* pSVData = ImplGetSVData();
++            if ( !pSVData->mpIntroWindow )
++            {
++                // The right way would be just to call this (not even in the 'if')
++                GetpApp()->InitFinished();
++            }
++            else if ( !ImplIsWindowOrChild( pSVData->mpIntroWindow ) )
++            {
++                // ... but the VCL splash is broken, and it needs this
++                // (for ./soffice slot:5500)
+                 pSVData->mpIntroWindow->Hide();
++            }
+ 
+             //DBG_ASSERT( !mpWindowImpl->mbSuppressAccessibilityEvents, "Window::Show() - Frame reactivated");
+             mpWindowImpl->mbSuppressAccessibilityEvents = FALSE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ucb-gnome-vfs-read-more.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ucb-gnome-vfs-read-more.diff
@@ -0,0 +1,41 @@
+--- ucb/source/ucp/gvfs/stream.cxx	2007-04-10 14:23:52.000000000 +0200
++++ ucb/source/ucp/gvfs/stream.cxx	2007-04-10 14:36:08.000000000 +0200
+@@ -128,7 +128,6 @@ sal_Int32 SAL_CALL Stream::readBytes(
+ 		       RuntimeException )
+ {
+ 	GnomeVFSResult   result;
+-	GnomeVFSFileSize nBytesRead = 0;
+ 
+ 	if( ! m_handle )
+ 		throw IOException();
+@@ -144,10 +143,15 @@ sal_Int32 SAL_CALL Stream::readBytes(
+ 		throw BufferSizeExceededException();
+ 	}
+ 
++	GnomeVFSFileSize nTotalBytesRead = 0;
+ 	do {
+-		result = gnome_vfs_read( m_handle, aData.getArray(),
+-					 nBytesToRead, &nBytesRead );
+-	} while( result == GNOME_VFS_ERROR_INTERRUPTED );
++		GnomeVFSFileSize nBytesRead = 0;
++		do {
++			result = gnome_vfs_read( m_handle, aData.getArray() + nTotalBytesRead,
++					nBytesToRead - nTotalBytesRead, &nBytesRead );
++		} while( result == GNOME_VFS_ERROR_INTERRUPTED );
++		nTotalBytesRead += nBytesRead;
++	} while( result == GNOME_VFS_OK && nTotalBytesRead < nBytesToRead );
+ 
+ 	if (result != GNOME_VFS_OK &&
+ 	    result != GNOME_VFS_ERROR_EOF)
+@@ -156,9 +160,9 @@ sal_Int32 SAL_CALL Stream::readBytes(
+ 	if (result == GNOME_VFS_ERROR_EOF)
+ 		m_eof = sal_True;
+ 
+-	aData.realloc( sal::static_int_cast<sal_uInt32>(nBytesRead) );
++	aData.realloc( sal::static_int_cast<sal_uInt32>(nTotalBytesRead) );
+ 
+-	return sal::static_int_cast<sal_Int32>(nBytesRead);
++	return sal::static_int_cast<sal_Int32>(nTotalBytesRead);
+ }
+ 
+ sal_Int32 SAL_CALL Stream::readSomeBytes(
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-reference.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-reference.diff
@@ -0,0 +1,13044 @@
+diff --git a/binfilter/bf_sc/source/core/data/sc_documen2.cxx b/binfilter/bf_sc/source/core/data/sc_documen2.cxx
+index 9695514..0e864cf 100644
+--- binfilter/bf_sc/source/core/data/sc_documen2.cxx
++++ binfilter/bf_sc/source/core/data/sc_documen2.cxx
+@@ -496,9 +496,9 @@ namespace binfilter {
+ /*N*/ 	// delete the EditEngine before destroying the xPoolHelper
+ /*N*/ 	delete pCacheFieldEditEngine;
+ /*N*/ 
+-/*N*/ 	if ( xPoolHelper.isValid() && !bIsClip )
++/*N*/ 	if ( xPoolHelper.is() && !bIsClip )
+ /*N*/ 		xPoolHelper->SourceDocumentGone();
+-/*N*/ 	xPoolHelper.unbind();
++/*N*/ 	xPoolHelper.clear();
+ /*N*/ 
+ /*N*/ 	DeleteColorTable();
+ /*N*/ 	delete pScriptTypeData;
+diff --git a/binfilter/bf_sc/source/core/data/sc_documen3.cxx b/binfilter/bf_sc/source/core/data/sc_documen3.cxx
+index b883066..affded4 100644
+--- binfilter/bf_sc/source/core/data/sc_documen3.cxx
++++ binfilter/bf_sc/source/core/data/sc_documen3.cxx
+@@ -884,7 +884,7 @@ using namespace ::com::sun::star;
+ /*N*/ 	eLanguage = eLatin;
+ /*N*/ 	eCjkLanguage = eCjk;
+ /*N*/ 	eCtlLanguage = eCtl;
+-/*N*/ 	if ( xPoolHelper.isValid() )
++/*N*/ 	if ( xPoolHelper.is() )
+ /*N*/ 	{
+ /*N*/ 		ScDocumentPool* pPool = xPoolHelper->GetDocPool();
+ /*N*/ 		pPool->SetPoolDefaultItem( SvxLanguageItem( eLanguage, ATTR_FONT_LANGUAGE ) );
+diff --git a/binfilter/bf_sc/source/core/data/sc_documen9.cxx b/binfilter/bf_sc/source/core/data/sc_documen9.cxx
+index 877be6f..1f51f4b 100644
+--- binfilter/bf_sc/source/core/data/sc_documen9.cxx
++++ binfilter/bf_sc/source/core/data/sc_documen9.cxx
+@@ -546,12 +546,12 @@ namespace binfilter {
+ /*N*/ 		pDrawLayer->EnableAdjust(!bImportingXML);
+ /*N*/ }
+ 
+-/*N*/ vos::ORef<SvxForbiddenCharactersTable> ScDocument::GetForbiddenCharacters()
++/*N*/ rtl::Reference<SvxForbiddenCharactersTable> ScDocument::GetForbiddenCharacters()
+ /*N*/ {
+ /*N*/ 	return xForbiddenCharacters;
+ /*N*/ }
+ 
+-/*N*/ void ScDocument::SetForbiddenCharacters( const vos::ORef<SvxForbiddenCharactersTable> xNew )
++/*N*/ void ScDocument::SetForbiddenCharacters( const rtl::Reference<SvxForbiddenCharactersTable> xNew )
+ /*N*/ {
+ /*N*/ 	xForbiddenCharacters = xNew;
+ /*N*/ 	if ( pEditEngine )
+diff --git a/binfilter/bf_sc/source/core/data/sc_document.cxx b/binfilter/bf_sc/source/core/data/sc_document.cxx
+index 75128b8..e36c2a3 100644
+--- binfilter/bf_sc/source/core/data/sc_document.cxx
++++ binfilter/bf_sc/source/core/data/sc_document.cxx
+@@ -1011,7 +1011,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ 						Rectangle aObjRect = GetMMRect
+ /*N*/ BOOL ScDocument::IsClipboardSource() const
+ /*N*/ {
+ /*N*/ 	ScDocument* pClipDoc = SC_MOD()->GetClipDoc();
+-/*N*/ 	return pClipDoc && pClipDoc->xPoolHelper.isValid() &&
++/*N*/ 	return pClipDoc && pClipDoc->xPoolHelper.is() &&
+ /*N*/ 			xPoolHelper->GetDocPool() == pClipDoc->xPoolHelper->GetDocPool();
+ /*N*/ }
+ 
+@@ -2803,7 +2803,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 /*?*/ 			RefreshAutoFilter( nStartCol, nSt
+ /*N*/
+ /*N*/ 	ScPatternAttr::pDoc = this;
+ /*N*/
+-/*N*/ 	if ( xPoolHelper.isValid() && !bIsClip )
++/*N*/ 	if ( xPoolHelper.is() && !bIsClip )
+ /*N*/ 		xPoolHelper->SourceDocumentGone();
+ /*N*/
+ /*N*/ 	xPoolHelper = new ScPoolHelper( this );
+diff --git a/binfilter/bf_sc/source/core/inc/poolhelp.hxx b/binfilter/bf_sc/source/core/inc/poolhelp.hxx
+index 032140a..a9a8ce8 100644
+--- binfilter/bf_sc/source/core/inc/poolhelp.hxx
++++ binfilter/bf_sc/source/core/inc/poolhelp.hxx
+@@ -36,8 +36,8 @@
+ #ifndef SC_POOLHELP_HXX
+ #define SC_POOLHELP_HXX
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ class SvNumberFormatter;
+@@ -50,7 +50,7 @@ class ScDocumentPool;
+ class ScStyleSheetPool;
+ 
+ 
+-class ScPoolHelper : public vos::OReference
++class ScPoolHelper : public salhelper::SimpleReferenceObject
+ {
+ private:
+ 	ScDocumentPool*		pDocPool;
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_XMLDDELinksContext.cxx b/binfilter/bf_sc/source/filter/xml/sc_XMLDDELinksContext.cxx
+index 315ecb0..de74bdf 100644
+--- binfilter/bf_sc/source/filter/xml/sc_XMLDDELinksContext.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_XMLDDELinksContext.cxx
+@@ -68,6 +68,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScXMLDDELinksContext::ScXMLDDELinksContext( ScXMLImport& rImport,
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_XMLTableHeaderFooterContext.cxx b/binfilter/bf_sc/source/filter/xml/sc_XMLTableHeaderFooterContext.cxx
+index 164f161..ba4fff5 100644
+--- binfilter/bf_sc/source/filter/xml/sc_XMLTableHeaderFooterContext.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_XMLTableHeaderFooterContext.cxx
+@@ -46,7 +46,6 @@
+ #include "unonames.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -54,6 +53,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ TYPEINIT1( XMLTableHeaderFooterContext, SvXMLImportContext );
+ 
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_XMLTableMasterPageExport.cxx b/binfilter/bf_sc/source/filter/xml/sc_XMLTableMasterPageExport.cxx
+index 590d6cd..393e86a 100644
+--- binfilter/bf_sc/source/filter/xml/sc_XMLTableMasterPageExport.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_XMLTableMasterPageExport.cxx
+@@ -50,13 +50,14 @@
+ #include "unonames.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ XMLTableMasterPageExport::XMLTableMasterPageExport( ScXMLExport& rExp ) :
+ 		XMLTextMasterPageExport ( rExp )
+ {
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_XMLTableShapeImportHelper.cxx b/binfilter/bf_sc/source/filter/xml/sc_XMLTableShapeImportHelper.cxx
+index 233d652..7781b0c 100644
+--- binfilter/bf_sc/source/filter/xml/sc_XMLTableShapeImportHelper.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_XMLTableShapeImportHelper.cxx
+@@ -68,6 +68,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ XMLTableShapeImportHelper::XMLTableShapeImportHelper(
+ 		ScXMLImport& rImp, SvXMLImportPropertyMapper *pImpMapper ) :
+ 	XMLShapeImportHelper(rImp, rImp.GetModel(), pImpMapper )
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_XMLTrackedChangesContext.cxx b/binfilter/bf_sc/source/filter/xml/sc_XMLTrackedChangesContext.cxx
+index 0ed0841..0039de2 100644
+--- binfilter/bf_sc/source/filter/xml/sc_XMLTrackedChangesContext.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_XMLTrackedChangesContext.cxx
+@@ -84,6 +84,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //-----------------------------------------------------------------------------
+ 
+ class ScXMLChangeInfoContext : public SvXMLImportContext
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_xmldpimp.cxx b/binfilter/bf_sc/source/filter/xml/sc_xmldpimp.cxx
+index 2fe578e..a9483f4 100644
+--- binfilter/bf_sc/source/filter/xml/sc_xmldpimp.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_xmldpimp.cxx
+@@ -59,6 +59,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScXMLDataPilotTablesContext::ScXMLDataPilotTablesContext( ScXMLImport& rImport,
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_xmlimprt.cxx b/binfilter/bf_sc/source/filter/xml/sc_xmlimprt.cxx
+index 63510ed..a742daf 100644
+--- binfilter/bf_sc/source/filter/xml/sc_xmlimprt.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_xmlimprt.cxx
+@@ -112,6 +112,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ OUString SAL_CALL ScXMLImport_getImplementationName() throw()
+ {
+ 	return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLImporter" ) );
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_xmlsceni.cxx b/binfilter/bf_sc/source/filter/xml/sc_xmlsceni.cxx
+index a46be03..41ae382 100644
+--- binfilter/bf_sc/source/filter/xml/sc_xmlsceni.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_xmlsceni.cxx
+@@ -58,6 +58,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScXMLTableScenarioContext::ScXMLTableScenarioContext(
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_xmlstyle.cxx b/binfilter/bf_sc/source/filter/xml/sc_xmlstyle.cxx
+index 34a5685..07ba121 100644
+--- binfilter/bf_sc/source/filter/xml/sc_xmlstyle.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_xmlstyle.cxx
+@@ -87,6 +87,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ #define MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context }
+ #define MAP_END()	{ NULL, 0, 0, XML_TOKEN_INVALID, 0 }
+ 
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_xmlstyli.cxx b/binfilter/bf_sc/source/filter/xml/sc_xmlstyli.cxx
+index 6ec249f..8a49332 100644
+--- binfilter/bf_sc/source/filter/xml/sc_xmlstyli.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_xmlstyli.cxx
+@@ -79,7 +79,6 @@ namespace binfilter {
+ #define XML_LINE_TOP 2
+ #define XML_LINE_BOTTOM 3
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -88,6 +87,8 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+ using namespace xmloff::token;
++
++using rtl::OUString;
+ //using namespace ::com::sun::star::text;
+ 
+ ScXMLCellImportPropertyMapper::ScXMLCellImportPropertyMapper(
+diff --git a/binfilter/bf_sc/source/filter/xml/sc_xmlwrap.cxx b/binfilter/bf_sc/source/filter/xml/sc_xmlwrap.cxx
+index c2f208f..0e253e7 100644
+--- binfilter/bf_sc/source/filter/xml/sc_xmlwrap.cxx
++++ binfilter/bf_sc/source/filter/xml/sc_xmlwrap.cxx
+@@ -114,6 +114,8 @@ namespace binfilter {
+ 
+ using namespace ::com::sun::star;
+ 
++using rtl::OUString;
++
+ // -----------------------------------------------------------------------
+ 
+ ScXMLImportWrapper::ScXMLImportWrapper(ScDocument& rD, SfxMedium* pM, SvStorage* pS) :
+diff --git a/binfilter/bf_sc/source/filter/xml/xmlimprt.hxx b/binfilter/bf_sc/source/filter/xml/xmlimprt.hxx
+index 4c09eeb..db6a211 100644
+--- binfilter/bf_sc/source/filter/xml/xmlimprt.hxx
++++ binfilter/bf_sc/source/filter/xml/xmlimprt.hxx
+@@ -99,8 +99,6 @@ class XMLNumberFormatAttributesExportHelper;
+ class SvXMLTokenMap;
+ class SvXMLStyleContext;
+ 
+-using namespace ::rtl;
+-
+ enum ScXMLDocTokens
+ {
+ 	XML_TOK_DOC_FONTDECLS,
+diff --git a/binfilter/bf_sc/source/filter/xml/xmlstyle.hxx b/binfilter/bf_sc/source/filter/xml/xmlstyle.hxx
+index 99f634f..69ac98b 100644
+--- binfilter/bf_sc/source/filter/xml/xmlstyle.hxx
++++ binfilter/bf_sc/source/filter/xml/xmlstyle.hxx
+@@ -62,8 +62,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+-
+ extern const XMLPropertyMapEntry aXMLScCellStylesProperties[];
+ extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[];
+ extern const XMLPropertyMapEntry aXMLScRowStylesProperties[];
+diff --git a/binfilter/bf_sc/source/ui/docshell/sc_docsh2.cxx b/binfilter/bf_sc/source/ui/docshell/sc_docsh2.cxx
+index 39ca190..6a7dd62 100644
+--- binfilter/bf_sc/source/ui/docshell/sc_docsh2.cxx
++++ binfilter/bf_sc/source/ui/docshell/sc_docsh2.cxx
+@@ -153,19 +153,19 @@ using namespace ::com::sun::star;
+ /*N*/ 		PutItem( SvxColorTableItem( OFF_APP()->GetStdColorTable() ) );
+ /*N*/ 	}
+ /*N*/ 
+-/*N*/ 	if ( !aDocument.GetForbiddenCharacters().isValid() ||
++/*N*/ 	if ( !aDocument.GetForbiddenCharacters().is() ||
+ /*N*/ 			!aDocument.IsValidAsianCompression() || !aDocument.IsValidAsianKerning() )
+ /*N*/ 	{
+ /*N*/ 		//	get settings from SvxAsianConfig
+ /*N*/ 		SvxAsianConfig aAsian( sal_False );
+ /*N*/ 
+-/*N*/ 		if ( !aDocument.GetForbiddenCharacters().isValid() )
++/*N*/ 		if ( !aDocument.GetForbiddenCharacters().is() )
+ /*N*/ 		{
+ /*N*/ 			// set forbidden characters if necessary
+ /*N*/ 			uno::Sequence<lang::Locale> aLocales = aAsian.GetStartEndCharLocales();
+ /*N*/ 			if (aLocales.getLength())
+ /*N*/ 			{
+-/*?*/ 				vos::ORef<SvxForbiddenCharactersTable> xForbiddenTable =
++/*?*/ 				rtl::Reference<SvxForbiddenCharactersTable> xForbiddenTable =
+ /*?*/ 						new SvxForbiddenCharactersTable( aDocument.GetServiceManager() );
+ /*?*/ 
+ /*?*/ 				const lang::Locale* pLocales = aLocales.getConstArray();
+diff --git a/binfilter/bf_sc/source/ui/unoobj/sc_forbiuno.cxx b/binfilter/bf_sc/source/ui/unoobj/sc_forbiuno.cxx
+index 26f0ebb..f6d5aae 100644
+--- binfilter/bf_sc/source/ui/unoobj/sc_forbiuno.cxx
++++ binfilter/bf_sc/source/ui/unoobj/sc_forbiuno.cxx
+@@ -48,14 +48,14 @@ using namespace ::com::sun::star;
+ 
+ //------------------------------------------------------------------------
+ 
+-vos::ORef<SvxForbiddenCharactersTable> lcl_GetForbidden( ScDocShell* pDocSh )
++rtl::Reference<SvxForbiddenCharactersTable> lcl_GetForbidden( ScDocShell* pDocSh )
+ {
+-	vos::ORef<SvxForbiddenCharactersTable> xRet;
++	rtl::Reference<SvxForbiddenCharactersTable> xRet;
+ 	if ( pDocSh )
+ 	{
+ 		ScDocument* pDoc = pDocSh->GetDocument();
+ 		xRet = pDoc->GetForbiddenCharacters();
+-		if ( !xRet.isValid() )
++		if ( !xRet.is() )
+ 		{
+ 			//	create an empty SvxForbiddenCharactersTable for SvxUnoForbiddenCharsTable,
+ 			//	so changes can be stored.
+diff --git a/binfilter/bf_sc/util/makefile.mk b/binfilter/bf_sc/util/makefile.mk
+index 02b8a74..a21bd3e 100644
+--- binfilter/bf_sc/util/makefile.mk
++++ binfilter/bf_sc/util/makefile.mk
+@@ -92,6 +92,7 @@ SHL1STDLIBS+=       \
+ 	$(TKLIB)		\
+ 	$(VOSLIB)		\
+ 	$(SALLIB)		\
++	$(SALHELPERLIB)		\
+ 	$(TOOLSLIB)		\
+ 	$(I18NISOLANGLIB)   \
+ 	$(UNOTOOLSLIB)  \
+diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx
+index 7fd810d..544cf42 100644
+--- binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx
++++ binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx
+@@ -142,11 +142,12 @@ namespace
+ namespace binfilter {
+ 
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ 
++using rtl::OUString;
++
+ extern SchUnoPropertyMapProvider aSchMapProvider;
+ 
+ #if defined(MACOSX) && ( __GNUC__ < 3 )
+diff --git a/binfilter/bf_sd/source/filter/xml/sd_sdxmlwrp.cxx b/binfilter/bf_sd/source/filter/xml/sd_sdxmlwrp.cxx
+index e2727bf..0f981f8 100644
+--- binfilter/bf_sd/source/filter/xml/sd_sdxmlwrp.cxx
++++ binfilter/bf_sd/source/filter/xml/sd_sdxmlwrp.cxx
+@@ -117,9 +117,10 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::document;
+-using namespace rtl;
+ using namespace comphelper;
+ 
++using rtl::OUString;
++
+ #define SD_XML_READERROR 1234
+ 
+ //////////////////////////////////////////////////////////////////////////////
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx
+index 280acc3..ff21f32 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_UnoDocumentSettings.cxx
+@@ -105,7 +105,6 @@ namespace binfilter {
+ 
+ using namespace ::comphelper;
+ using namespace ::osl;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::vos;
+ using namespace ::com::sun::star;
+@@ -119,6 +118,8 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::i18n;
+ 
++using rtl::OUString;
++
+ namespace sd
+ {
+ 	class DocumentSettings : public WeakImplHelper3< XPropertySet, XMultiPropertySet, XServiceInfo >,
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unopool.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unopool.cxx
+index 7896d0c..4d0ae1b 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unopool.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unopool.cxx
+@@ -56,7 +56,6 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::comphelper;
+ 
+diff --git a/binfilter/bf_sfx2/source/doc/sfx2_xmlversion.cxx b/binfilter/bf_sfx2/source/doc/sfx2_xmlversion.cxx
+index 2f67b6f..e27aabb 100644
+--- binfilter/bf_sfx2/source/doc/sfx2_xmlversion.cxx
++++ binfilter/bf_sfx2/source/doc/sfx2_xmlversion.cxx
+@@ -96,7 +96,8 @@ namespace binfilter {
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ // ------------------------------------------------------------------------
+ 
+diff --git a/binfilter/bf_svx/source/editeng/eerdll2.hxx b/binfilter/bf_svx/source/editeng/eerdll2.hxx
+index 53b0111..833c7c6 100644
+--- binfilter/bf_svx/source/editeng/eerdll2.hxx
++++ binfilter/bf_svx/source/editeng/eerdll2.hxx
+@@ -37,7 +37,7 @@
+ #define _EERDLL2_HXX
+ 
+ #include <forbiddencharacterstable.hxx>
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ class SfxPoolItem; 
+ namespace binfilter {
+ 
+@@ -51,7 +51,7 @@ private:
+ 
+ 	Link			aGetAutoCorrectHdl;
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
++	rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
+ 
+ public:
+ 					GlobalEditData();
+@@ -63,8 +63,8 @@ public:
+ 	void			SetGetAutoCorrectHdl( const Link& rHdl ) { aGetAutoCorrectHdl = rHdl; }
+ 	SvxAutoCorrect*	GetAutoCorrect() const { return (SvxAutoCorrect*) aGetAutoCorrectHdl.Call( NULL ); }
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable();
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars ) { xForbiddenCharsTable = xForbiddenChars; }
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable();
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars ) { xForbiddenCharsTable = xForbiddenChars; }
+ };
+ 
+ 
+diff --git a/binfilter/bf_svx/source/editeng/impedit.hxx b/binfilter/bf_svx/source/editeng/impedit.hxx
+index ecaab21..b28a368 100644
+--- binfilter/bf_svx/source/editeng/impedit.hxx
++++ binfilter/bf_svx/source/editeng/impedit.hxx
+@@ -73,7 +73,7 @@
+ #include <com/sun/star/i18n/WordType.hpp>
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ class SvKeyValueIterator;
+ class SvtCTLOptions;
+ class SvUShorts;
+@@ -397,7 +397,7 @@ private:
+     Link                aEndPasteOrDropHdl;
+     Link                aModifyHdl;
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
++	rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
+ 
+ 
+ 	// ================================================================
+@@ -697,8 +697,8 @@ public:
+ 	void                SetKernAsianPunctuation( BOOL b );
+ 	BOOL				IsKernAsianPunctuation() const { return bKernAsianPunctuation; }
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable( BOOL bGetInternal = TRUE ) const;
+-	void				SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable( BOOL bGetInternal = TRUE ) const;
++	void				SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
+ };
+ 
+ inline EPaM ImpEditEngine::CreateEPaM( const EditPaM& rPaM )
+diff --git a/binfilter/bf_svx/source/editeng/svx_editeng.cxx b/binfilter/bf_svx/source/editeng/svx_editeng.cxx
+index 0a9dfcc..9a9d97f 100644
+--- binfilter/bf_svx/source/editeng/svx_editeng.cxx
++++ binfilter/bf_svx/source/editeng/svx_editeng.cxx
+@@ -974,7 +974,7 @@ SV_IMPL_VARARR( EECharAttribArray, EECharAttrib );
+ /*N*/ 	pImpEditEngine->EraseVirtualDevice();
+ /*N*/ }
+ 
+-/*N*/ void EditEngine::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++/*N*/ void EditEngine::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ /*N*/ {
+ /*N*/ 	DBG_CHKTHIS( EditEngine, 0 );
+ /*N*/ 	pImpEditEngine->SetForbiddenCharsTable( xForbiddenChars );
+diff --git a/binfilter/bf_svx/source/editeng/svx_eerdll.cxx b/binfilter/bf_svx/source/editeng/svx_eerdll.cxx
+index 48eef99..a6fecb8 100644
+--- binfilter/bf_svx/source/editeng/svx_eerdll.cxx
++++ binfilter/bf_svx/source/editeng/svx_eerdll.cxx
+@@ -209,9 +209,9 @@ namespace binfilter {
+ /*N*/ 	return ppDefItems;
+ /*N*/ }
+ 
+-/*N*/ vos::ORef<SvxForbiddenCharactersTable> GlobalEditData::GetForbiddenCharsTable()
++/*N*/ rtl::Reference<SvxForbiddenCharactersTable> GlobalEditData::GetForbiddenCharsTable()
+ /*N*/ {
+-/*N*/ 	if ( !xForbiddenCharsTable.isValid() )
++/*N*/ 	if ( !xForbiddenCharsTable.is() )
+ /*N*/ 	{
+ /*N*/ 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF = ::legacy_binfilters::getLegacyProcessServiceFactory();
+ /*N*/ 		xForbiddenCharsTable = new SvxForbiddenCharactersTable( xMSF );
+diff --git a/binfilter/bf_svx/source/editeng/svx_impedit2.cxx b/binfilter/bf_svx/source/editeng/svx_impedit2.cxx
+index f0086b8..0e9ea8f 100644
+--- binfilter/bf_svx/source/editeng/svx_impedit2.cxx
++++ binfilter/bf_svx/source/editeng/svx_impedit2.cxx
+@@ -2040,15 +2040,15 @@ using namespace ::com::sun::star;
+ /*N*/ }
+ 
+ 
+-/*N*/ vos::ORef<SvxForbiddenCharactersTable> ImpEditEngine::GetForbiddenCharsTable( BOOL bGetInternal ) const
++/*N*/ rtl::Reference<SvxForbiddenCharactersTable> ImpEditEngine::GetForbiddenCharsTable( BOOL bGetInternal ) const
+ /*N*/ {
+-/*N*/ 	vos::ORef<SvxForbiddenCharactersTable> xF = xForbiddenCharsTable;
+-/*N*/ 	if ( !xF.isValid() && bGetInternal )
++/*N*/ 	rtl::Reference<SvxForbiddenCharactersTable> xF = xForbiddenCharsTable;
++/*N*/ 	if ( !xF.is() && bGetInternal )
+ /*N*/ 		xF = EE_DLL()->GetGlobalData()->GetForbiddenCharsTable();
+ /*N*/ 	return xF;
+ /*N*/ }
+ 
+-/*N*/ void ImpEditEngine::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++/*N*/ void ImpEditEngine::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ /*N*/ {
+ /*N*/ 	EE_DLL()->GetGlobalData()->SetForbiddenCharsTable( xForbiddenChars );
+ /*N*/ }
+diff --git a/binfilter/bf_svx/source/editeng/svx_impedit3.cxx b/binfilter/bf_svx/source/editeng/svx_impedit3.cxx
+index 026ab00..a69427f 100644
+--- binfilter/bf_svx/source/editeng/svx_impedit3.cxx
++++ binfilter/bf_svx/source/editeng/svx_impedit3.cxx
+@@ -114,12 +114,13 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::linguistic2;
+ 
++using rtl::OUString;
++
+ /*N*/ SV_DECL_VARARR_SORT( SortedPositions, sal_uInt32, 16, 8 )//STRIP008 ;
+ /*N*/ SV_IMPL_VARARR_SORT( SortedPositions, sal_uInt32 );
+ 
+diff --git a/binfilter/bf_svx/source/items/svx_xmlcnitm.cxx b/binfilter/bf_svx/source/items/svx_xmlcnitm.cxx
+index 9a70f45..1b5b8c6 100644
+--- binfilter/bf_svx/source/items/svx_xmlcnitm.cxx
++++ binfilter/bf_svx/source/items/svx_xmlcnitm.cxx
+@@ -49,12 +49,13 @@
+ #include "xmlcnitm.hxx"
+ namespace binfilter {
+ 
+-using namespace rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::xml;
+ 
++using rtl::OUString;
++
+ // ------------------------------------------------------------------------
+ 
+ /*N*/ TYPEINIT1(SvXMLAttrContainerItem, SfxPoolItem);
+diff --git a/binfilter/bf_svx/source/outliner/svx_outlin2.cxx b/binfilter/bf_svx/source/outliner/svx_outlin2.cxx
+index a513ba6..1b70586 100644
+--- binfilter/bf_svx/source/outliner/svx_outlin2.cxx
++++ binfilter/bf_svx/source/outliner/svx_outlin2.cxx
+@@ -313,7 +313,7 @@ using namespace ::com::sun::star::linguistic2;
+ /*N*/ 	return pEditEngine->GetEditTextObjectPool();
+ /*N*/ }
+ 
+-/*N*/ void Outliner::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++/*N*/ void Outliner::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ /*N*/ {
+ /*N*/ 	DBG_CHKTHIS(Outliner,0);
+ /*N*/ 	pEditEngine->SetForbiddenCharsTable( xForbiddenChars );
+diff --git a/binfilter/bf_svx/source/svdraw/svx_svdmodel.cxx b/binfilter/bf_svx/source/svdraw/svx_svdmodel.cxx
+index cc097e5..82af05c 100644
+--- binfilter/bf_svx/source/svdraw/svx_svdmodel.cxx
++++ binfilter/bf_svx/source/svdraw/svx_svdmodel.cxx
+@@ -2229,12 +2229,12 @@ using namespace ::com::sun::star;
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+-/*N*/ void SdrModel::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++/*N*/ void SdrModel::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ /*N*/ {
+ /*N*/ 	if( mpForbiddenCharactersTable )
+ /*N*/ 		mpForbiddenCharactersTable->release();
+ /*N*/ 
+-/*N*/ 	mpForbiddenCharactersTable = xForbiddenChars.getBodyPtr();
++/*N*/ 	mpForbiddenCharactersTable = xForbiddenChars.get();
+ /*N*/ 
+ /*N*/ 	if( mpForbiddenCharactersTable )
+ /*N*/ 		mpForbiddenCharactersTable->acquire();
+@@ -2243,7 +2243,7 @@ using namespace ::com::sun::star;
+ /*N*/ 	ImpSetOutlinerDefaults( pHitTestOutliner );
+ /*N*/ }
+ 
+-/*N*/ vos::ORef<SvxForbiddenCharactersTable> SdrModel::GetForbiddenCharsTable() const
++/*N*/ rtl::Reference<SvxForbiddenCharactersTable> SdrModel::GetForbiddenCharsTable() const
+ /*N*/ {
+ /*N*/ 	return mpForbiddenCharactersTable;
+ /*N*/ }
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoipset.cxx b/binfilter/bf_svx/source/unodraw/svx_unoipset.cxx
+index d951004..e6a9636 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoipset.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoipset.cxx
+@@ -51,7 +51,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ //----------------------------------------------------------------------
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unopage.cxx b/binfilter/bf_svx/source/unodraw/svx_unopage.cxx
+index f76f4c6..5a3b9e1 100644
+--- binfilter/bf_svx/source/unodraw/svx_unopage.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unopage.cxx
+@@ -69,7 +69,6 @@
+ namespace binfilter {
+ 
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -77,6 +76,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::drawing;
+ 
++using rtl::OUString;
++
+ #define INTERFACE_TYPE( xint ) \
+ 	::getCppuType((const Reference< xint >*)0)
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unopool.cxx b/binfilter/bf_svx/source/unodraw/svx_unopool.cxx
+index 9f5cbe1..3721e9f 100644
+--- binfilter/bf_svx/source/unodraw/svx_unopool.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unopool.cxx
+@@ -77,9 +77,10 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ 
++using rtl::OUString;
++
+ SvxUnoDrawPool::SvxUnoDrawPool( SdrModel* pModel, sal_Int32 nServiceId ) throw()
+ : PropertySetHelper( SvxPropertySetInfoPool::getOrCreate( nServiceId ) ), mpModel( pModel )
+ {
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx
+index e59808d..bf8ed2b 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshap2.cxx
+@@ -75,13 +75,14 @@ namespace binfilter {
+ 
+ using namespace ::osl;
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ 
++using rtl::OUString;
++
+ #define INTERFACE_TYPE( xint ) \
+ 	::getCppuType((const Reference< xint >*)0)
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx
+index 7f77880..8e26913 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshap3.cxx
+@@ -64,13 +64,14 @@
+ namespace binfilter {
+ 
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ 
++using rtl::OUString;
++
+ #define INTERFACE_TYPE( xint ) \
+ 	::getCppuType((const Reference< xint >*)0)
+ 
+diff --git a/binfilter/bf_svx/source/unodraw/svx_unoshape.cxx b/binfilter/bf_svx/source/unodraw/svx_unoshape.cxx
+index bee0bae..e5a09aa 100644
+--- binfilter/bf_svx/source/unodraw/svx_unoshape.cxx
++++ binfilter/bf_svx/source/unodraw/svx_unoshape.cxx
+@@ -128,13 +128,14 @@ namespace binfilter {
+ 
+ using namespace ::osl;
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ 
++using rtl::OUString;
++
+ #define QUERYINT( xint ) \
+ 	if( rType == ::getCppuType((const uno::Reference< xint >*)0) ) \
+ 		aAny <<= uno::Reference< xint >(this)
+diff --git a/binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx b/binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx
+index a636638..588a333 100644
+--- binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx
++++ binfilter/bf_svx/source/unoedit/svx_UnoForbiddenCharsTable.cxx
+@@ -62,7 +62,7 @@ using namespace ::rtl;
+ using namespace ::vos;
+ using namespace ::cppu;
+ 
+-SvxUnoForbiddenCharsTable::SvxUnoForbiddenCharsTable(ORef<SvxForbiddenCharactersTable> xForbiddenChars) :
++SvxUnoForbiddenCharsTable::SvxUnoForbiddenCharsTable(rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars) :
+ 	mxForbiddenChars( xForbiddenChars )
+ {
+ }
+@@ -80,7 +80,7 @@ ForbiddenCharacters SvxUnoForbiddenCharsTable::getForbiddenCharacters( const Loc
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -96,7 +96,7 @@ sal_Bool SvxUnoForbiddenCharsTable::hasForbiddenCharacters( const Locale& rLocal
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		return sal_False;
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -110,7 +110,7 @@ void SvxUnoForbiddenCharsTable::setForbiddenCharacters(const Locale& rLocale, co
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -124,7 +124,7 @@ void SvxUnoForbiddenCharsTable::removeForbiddenCharacters( const Locale& rLocale
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -139,7 +139,7 @@ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales()
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	const sal_Int32 nCount = mxForbiddenChars.isValid() ? mxForbiddenChars->Count() : 0;
++	const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Count() : 0;
+ 
+ 	Sequence< Locale > aLocales( nCount );
+ 	if( nCount )
+diff --git a/binfilter/bf_svx/source/xml/svx_xmlexport.cxx b/binfilter/bf_svx/source/xml/svx_xmlexport.cxx
+index da56a2b..1e101d8 100644
+--- binfilter/bf_svx/source/xml/svx_xmlexport.cxx
++++ binfilter/bf_svx/source/xml/svx_xmlexport.cxx
+@@ -81,10 +81,11 @@
+ #include <legacysmgr/legacy_binfilters_smgr.hxx>	//STRIP002 
+ #endif
+ namespace binfilter {
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++
+ /*N*/ sal_Bool SvxDrawingLayerExport( SdrModel* pModel, uno::Reference<io::XOutputStream> xOut, Reference< lang::XComponent > xComponent )
+ /*N*/ {
+ /*N*/ 	return SvxDrawingLayerExport( pModel, xOut, xComponent, "com.sun.star.comp.DrawingLayer.XMLExporter" );
+diff --git a/binfilter/bf_svx/source/xml/svx_xmltxtexp.cxx b/binfilter/bf_svx/source/xml/svx_xmltxtexp.cxx
+index 43d9433..eb0ddf9 100644
+--- binfilter/bf_svx/source/xml/svx_xmltxtexp.cxx
++++ binfilter/bf_svx/source/xml/svx_xmltxtexp.cxx
+@@ -99,9 +99,10 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::xml::sax;
+-using namespace ::rtl;
+ using namespace cppu;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ class SvxEditEngineSourceImpl;
+diff --git a/binfilter/bf_svx/source/xml/svx_xmltxtimp.cxx b/binfilter/bf_svx/source/xml/svx_xmltxtimp.cxx
+index 2fafc3d..7ffe7f9 100644
+--- binfilter/bf_svx/source/xml/svx_xmltxtimp.cxx
++++ binfilter/bf_svx/source/xml/svx_xmltxtimp.cxx
+@@ -75,10 +75,11 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::text;
+-using namespace ::rtl;
+ using namespace cppu;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ ///////////////////////////////////////////////////////////////////////
+ 
+diff --git a/binfilter/bf_svx/source/xml/svx_xmlxtimp.cxx b/binfilter/bf_svx/source/xml/svx_xmlxtimp.cxx
+index 696857a..0115a2a 100644
+--- binfilter/bf_svx/source/xml/svx_xmlxtimp.cxx
++++ binfilter/bf_svx/source/xml/svx_xmlxtimp.cxx
+@@ -127,9 +127,10 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::xml::sax;
+-using namespace ::rtl;
+ using namespace cppu;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ enum SvxXMLTableImportContextEnum { stice_unknown, stice_color, stice_marker, stice_dash, stice_hatch, stice_gradient, stice_bitmap };
+diff --git a/binfilter/bf_sw/source/core/doc/sw_docnew.cxx b/binfilter/bf_sw/source/core/doc/sw_docnew.cxx
+index c21a94d..c9c66ce 100644
+--- binfilter/bf_sw/source/core/doc/sw_docnew.cxx
++++ binfilter/bf_sw/source/core/doc/sw_docnew.cxx
+@@ -783,9 +783,9 @@ const sal_Char __FAR_DATA sGrfCollStr[] = "Graphikformatvorlage";
+ /*N*/ 	return pUnoCallBack;
+ /*N*/ }
+ 
+-/*N*/ vos::ORef < SvxForbiddenCharactersTable > & SwDoc::GetForbiddenCharacterTbl()
++/*N*/ rtl::Reference < SvxForbiddenCharactersTable > & SwDoc::GetForbiddenCharacterTbl()
+ /*N*/ {
+-/*N*/ 	if( !xForbiddenCharsTable.isValid() )
++/*N*/ 	if( !xForbiddenCharsTable.is() )
+ /*N*/ 	{
+ /*N*/ 		::com::sun::star::uno::Reference<
+ /*N*/ 			::com::sun::star::lang::XMultiServiceFactory > xMSF =
+@@ -801,7 +801,7 @@ const sal_Char __FAR_DATA sGrfCollStr[] = "Graphikformatvorlage";
+ /*N*/ 							BOOL bLocaleData ) const
+ /*N*/ {
+ /*N*/ 	const ::com::sun::star::i18n::ForbiddenCharacters* pRet = 0;
+-/*N*/ 	if( xForbiddenCharsTable.isValid() )
++/*N*/ 	if( xForbiddenCharsTable.is() )
+ /*N*/ 		pRet = xForbiddenCharsTable->GetForbiddenCharacters( nLang, FALSE );
+ /*N*/ 	if( bLocaleData && !pRet && pBreakIt )
+ /*N*/ 		pRet = &pBreakIt->GetForbidden( (LanguageType)nLang );
+diff --git a/binfilter/bf_sw/source/core/layout/sw_atrfrm.cxx b/binfilter/bf_sw/source/core/layout/sw_atrfrm.cxx
+index f0385cf..0a413ce 100644
+--- binfilter/bf_sw/source/core/layout/sw_atrfrm.cxx
++++ binfilter/bf_sw/source/core/layout/sw_atrfrm.cxx
+@@ -209,7 +209,8 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /*N*/ SV_IMPL_PTRARR(SwColumns,SwColumn*)
+ 
+diff --git a/binfilter/bf_sw/source/core/text/sw_guess.cxx b/binfilter/bf_sw/source/core/text/sw_guess.cxx
+index 943f9d1..26d2e05 100644
+--- binfilter/bf_sw/source/core/text/sw_guess.cxx
++++ binfilter/bf_sw/source/core/text/sw_guess.cxx
+@@ -83,12 +83,13 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::i18n;
+ using namespace ::com::sun::star::beans;
+ 
++using rtl::OUString;
++
+ #ifdef VERTICAL_LAYOUT
+ #define CH_FULL_BLANK 0x3000
+ #endif
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx b/binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx
+index e56a1b8..150a335 100644
+--- binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_SwXTextDefaults.cxx
+@@ -86,12 +86,13 @@
+ namespace binfilter {
+ 
+ 
+-using namespace rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ 
++using rtl::OUString;
++
+ // declarations
+ void lcl_setPageDesc(SwDoc*, const uno::Any&, SfxItemSet& ); // from unoobj.cxx
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx b/binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx
+index b502716..15121dc 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unocoll.cxx
+@@ -156,7 +156,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::uno;
+@@ -164,6 +163,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ 
++using rtl::OUString;
++
+ /******************************************************************************
+  *
+  ******************************************************************************/
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unocrsrhelper.cxx b/binfilter/bf_sw/source/core/unocore/sw_unocrsrhelper.cxx
+index 66665c6..5283a5a 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unocrsrhelper.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unocrsrhelper.cxx
+@@ -191,7 +191,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::table;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ 
+ namespace SwUnoCursorHelper
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx b/binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx
+index 183e1ab..13c712d 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unodraw.cxx
+@@ -157,7 +157,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::drawing;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ DECLARE_STL_USTRINGACCESS_MAP( Sequence< sal_Int8 > *,  SwShapeImplementationIdMap );
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unofield.cxx b/binfilter/bf_sw/source/core/unocore/sw_unofield.cxx
+index 4c32393..c684d1a 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unofield.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unofield.cxx
+@@ -243,7 +243,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ #define COM_TEXT_FLDMASTER		"com.sun.star.text.FieldMaster."
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx
+index d5569b7..8f19b75 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoframe.cxx
+@@ -269,7 +269,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::drawing;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ using ::com::sun::star::frame::XModel;
+ using ::com::sun::star::container::XNameAccess;
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx
+index 20161f3..c2235be 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoftn.cxx
+@@ -93,7 +93,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /******************************************************************
+  *
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx
+index b4afeee..772722d 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoidx.cxx
+@@ -152,7 +152,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ //-----------------------------------------------------------------------------
+ String lcl_AnyToString(uno::Any rVal) throw(IllegalArgumentException)
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx
+index 3e5a66d..ae13510 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoobj2.cxx
+@@ -334,7 +334,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::drawing;
+ 
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ //collectn.cxx
+ //BOOL lcl_IsNumeric(const String&);
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx
+index 511c138..c4e827f 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoparagraph.cxx
+@@ -101,7 +101,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ //using namespace ::com::sun::star::drawing;
+ 
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /******************************************************************
+  * SwXParagraph
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoport.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoport.cxx
+index d436925..c09f974 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoport.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoport.cxx
+@@ -106,7 +106,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ 
+ /******************************************************************
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx
+index 73b9b52..8610108 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoportenum.cxx
+@@ -105,7 +105,8 @@ namespace binfilter {
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /******************************************************************
+  *	SwXTextPortionEnumeration
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx
+index e5b729e..72860f5 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoredline.cxx
+@@ -110,7 +110,9 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ 
+ /* ---------------------------------------------------------------------------
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx b/binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx
+index 2dbefcb..6fedf10 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unoredlines.cxx
+@@ -90,7 +90,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /*-- 11.01.01 15:28:54---------------------------------------------------
+ 
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx b/binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx
+index e465f22..2846cee 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unorefmk.cxx
+@@ -84,7 +84,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /******************************************************************
+  * SwXReferenceMark
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unosect.cxx b/binfilter/bf_sw/source/core/unocore/sw_unosect.cxx
+index 09d6efe..9a18a70 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unosect.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unosect.cxx
+@@ -142,7 +142,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ /******************************************************************
+  *
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unosett.cxx b/binfilter/bf_sw/source/core/unocore/sw_unosett.cxx
+index b68194d..2271f65 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unosett.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unosett.cxx
+@@ -185,7 +185,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -193,6 +192,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::style;
+ 
++using rtl::OUString;
++
+ struct PropValData
+ {
+ 	uno::Any 		aVal;
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx b/binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx
+index 29c0b0b..c55364e 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unosrch.cxx
+@@ -86,7 +86,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::i18n;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ /******************************************************************************
+  *
+  ******************************************************************************/
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx b/binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx
+index 0501f32..1258a8d 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unostyle.cxx
+@@ -223,8 +223,9 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::container;
+-using namespace ::rtl;
+ using ::com::sun::star::frame::XModel;
++
++using rtl::OUString;
+ /******************************************************************************
+  *
+  ******************************************************************************/
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx b/binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx
+index 7a5d0cc..2c141d8 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unotbl.cxx
+@@ -235,7 +235,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::table;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::chart;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ BOOL lcl_IsNumeric(const String& rStr)
+ {
+diff --git a/binfilter/bf_sw/source/core/unocore/sw_unotext.cxx b/binfilter/bf_sw/source/core/unocore/sw_unotext.cxx
+index 1b140cb..94c50f6 100644
+--- binfilter/bf_sw/source/core/unocore/sw_unotext.cxx
++++ binfilter/bf_sw/source/core/unocore/sw_unotext.cxx
+@@ -133,7 +133,8 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ const sal_Char cInvalidObject[] = "this object is invalid";
+ /******************************************************************
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_swxml.cxx b/binfilter/bf_sw/source/filter/xml/sw_swxml.cxx
+index fef4614..6c530e9 100644
+--- binfilter/bf_sw/source/filter/xml/sw_swxml.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_swxml.cxx
+@@ -154,7 +154,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::lang;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ 
+ void lcl_EnsureValidPam( SwPaM& rPam )
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_wrtxml.cxx b/binfilter/bf_sw/source/filter/xml/sw_wrtxml.cxx
+index 51cb5c3..1dc46da 100644
+--- binfilter/bf_sw/source/filter/xml/sw_wrtxml.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_wrtxml.cxx
+@@ -115,7 +115,6 @@
+ #include <legacysmgr/legacy_binfilters_smgr.hxx>	//STRIP002 
+ #endif
+ namespace binfilter {
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+@@ -123,6 +122,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ 
++using rtl::OUString;
++
+ #define LOGFILE_AUTHOR "mb93740"
+ 
+ SwXMLWriter::SwXMLWriter()
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlbrsh.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlbrsh.cxx
+index b95c866..ce0d0cb 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlbrsh.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlbrsh.cxx
+@@ -68,11 +68,12 @@
+ #include "xmlexpit.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ enum SvXMLTokenMapAttrs
+ {
+ 	XML_TOK_BGIMG_HREF,
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx
+index ef90577..17ede8d 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlexp.cxx
+@@ -180,7 +180,6 @@
+ 
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::xml::sax;
+@@ -194,6 +193,9 @@ using namespace ::com::sun::star::form;
+ using namespace ::com::sun::star::i18n;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ #ifdef XML_CORE_API
+ void SwXMLExport::SetCurPaM( SwPaM& rPaM, sal_Bool bWhole, sal_Bool bTabOnly )
+ {
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlfmt.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlfmt.cxx
+index 181a89d..1cc8eb4 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlfmt.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlfmt.cxx
+@@ -162,9 +162,11 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+-using namespace ::rtl;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ class SwXMLConditionParser_Impl
+ {
+ 	OUString sInput;
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlfmte.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlfmte.cxx
+index 846d615..a193ff6 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlfmte.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlfmte.cxx
+@@ -114,7 +114,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -122,6 +121,8 @@ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::lang;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ void SwXMLExport::ExportFmt( const SwFmt& rFmt, enum XMLTokenEnum eFamily )
+ {
+ 	// <style:style ...>
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx
+index dd2fb03..be2d6b8 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlimp.cxx
+@@ -168,7 +168,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -179,6 +178,8 @@ using namespace ::com::sun::star::i18n;
+ using namespace ::com::sun::star::drawing;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ struct OUStringEquals
+ {
+ 	sal_Bool operator()( const ::rtl::OUString &r1,
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlitemi.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlitemi.cxx
+index 40aaf30..806afb5 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlitemi.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlitemi.cxx
+@@ -114,10 +114,11 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++
+ extern SvXMLItemMapEntry aXMLTableItemMap[];
+ extern SvXMLItemMapEntry aXMLTableColItemMap[];
+ extern SvXMLItemMapEntry aXMLTableRowItemMap[];
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmlmeta.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmlmeta.cxx
+index 8c90f01..0878222 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmlmeta.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmlmeta.cxx
+@@ -107,13 +107,15 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::text;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ // ---------------------------------------------------------------------
+ 
+ #if 0
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltble.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltble.cxx
+index 4dca43c..411b970 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltble.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltble.cxx
+@@ -153,7 +153,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+@@ -162,6 +161,9 @@ using namespace ::com::sun::star::container;
+ using namespace ::binfilter::xmloff::token;
+ using ::com::sun::star::table::XCell;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ class SwXMLTableColumn_Impl : public SwWriteTableCol
+ {
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx
+index fe3213e..1809985 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltbli.cxx
+@@ -161,7 +161,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -172,6 +171,8 @@ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ using ::std::hash_map;
+ 
++using rtl::OUString;
++
+ enum SwXMLTableElemTokens
+ {
+ 	XML_TOK_TABLE_HEADER_COLS,
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltext.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltext.cxx
+index e9c1879..74d06ea 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltext.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltext.cxx
+@@ -44,11 +44,12 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ 
++using rtl::OUString;
++
+ // ---------------------------------------------------------------------
+ 
+ class SwXMLBodyContext_Impl : public SvXMLImportContext
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltexte.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltexte.cxx
+index 5f90324..2b86812 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltexte.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltexte.cxx
+@@ -103,7 +103,6 @@
+ #include "so3/staticbaseurl.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+@@ -111,6 +110,9 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::document;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ enum SvEmbeddedObjectTypes
+ {
+     SV_EMBEDDED_OWN,
+diff --git a/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx b/binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
+index 0da1866..a0495c8 100644
+--- binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
++++ binfilter/bf_sw/source/filter/xml/sw_xmltexti.cxx
+@@ -137,7 +137,6 @@ namespace binfilter {
+  
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -146,6 +145,9 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ struct XMLServiceMapEntry_Impl
+ {
+diff --git a/binfilter/bf_sw/source/ui/dochdl/sw_swdtflvr.cxx b/binfilter/bf_sw/source/ui/dochdl/sw_swdtflvr.cxx
+index b005c37..ae100a7 100644
+--- binfilter/bf_sw/source/ui/dochdl/sw_swdtflvr.cxx
++++ binfilter/bf_sw/source/ui/dochdl/sw_swdtflvr.cxx
+@@ -118,7 +118,6 @@ extern BOOL bExecuteDrag;
+ #define SWTRANSFER_OBJECTTYPE_DDE				0x00000020
+ 
+ using namespace ::binfilter::svx;
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::datatransfer;
+ 
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx b/binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx
+index cb78aec..0e6da96 100644
+--- binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_SwXDocumentSettings.cxx
+@@ -111,7 +111,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace rtl;
+ using namespace comphelper;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -119,6 +118,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::i18n;
+ 
++using rtl::OUString;
++
+ enum SwDocumentSettingsPropertyHandles
+ {
+ 	HANDLE_FORBIDDEN_CHARS,
+diff --git a/binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx b/binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx
+index 6a73f15..6c8faca 100644
+--- binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx
++++ binfilter/bf_sw/source/ui/uno/sw_unotxdoc.cxx
+@@ -3074,7 +3074,7 @@ void SwXDocumentPropertyHelper::Invalidate()
+ 	xMarkerTable = 0;
+ 	xDrawDefaults = 0;
+ 	m_pDoc = 0;
+-	SvxUnoForbiddenCharsTable::mxForbiddenChars.unbind();
++	SvxUnoForbiddenCharsTable::mxForbiddenChars.clear();
+ }
+ 
+ }
+diff --git a/binfilter/bf_sw/util/makefile.mk b/binfilter/bf_sw/util/makefile.mk
+index 30d46fa..f3ef542 100644
+--- binfilter/bf_sw/util/makefile.mk
++++ binfilter/bf_sw/util/makefile.mk
+@@ -121,6 +121,7 @@ SHL2STDLIBS+= \
+ 	$(CPPULIB) \
+ 	$(VOSLIB) \
+ 	$(SALLIB) \
++	$(SALHELPERLIB) \
+     $(ICUUCLIB)
+ 
+ 
+diff --git a/binfilter/bf_xmloff/source/chart/xmloff_SchXMLExport.cxx b/binfilter/bf_xmloff/source/chart/xmloff_SchXMLExport.cxx
+index 2204fe2..1f622aa 100644
+--- binfilter/bf_xmloff/source/chart/xmloff_SchXMLExport.cxx
++++ binfilter/bf_xmloff/source/chart/xmloff_SchXMLExport.cxx
+@@ -101,11 +101,13 @@
+ #include    "PropertyMap.hxx"
+ namespace binfilter {
+ 
+-using namespace rtl;
+ using namespace ::com::sun::star;
+ using namespace ::binfilter::xmloff::token;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ using ::rtl::OUString;
+ 
+ struct SchXMLDataPointStruct
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_XMLBase64Export.cxx b/binfilter/bf_xmloff/source/core/xmloff_XMLBase64Export.cxx
+index 1796370..c899b54 100644
+--- binfilter/bf_xmloff/source/core/xmloff_XMLBase64Export.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_XMLBase64Export.cxx
+@@ -55,7 +55,9 @@ namespace binfilter {
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::io;
+-using namespace ::rtl;
++
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ #define INPUT_BUFFER_SIZE 54
+ #define OUTPUT_BUFFER_SIZE 72
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_XMLBase64ImportContext.cxx b/binfilter/bf_xmloff/source/core/xmloff_XMLBase64ImportContext.cxx
+index f0be225..860d4bd 100644
+--- binfilter/bf_xmloff/source/core/xmloff_XMLBase64ImportContext.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_XMLBase64ImportContext.cxx
+@@ -49,11 +49,12 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::io;
+ 
++using rtl::OUString;
++
+ //-----------------------------------------------------------------------------
+ 
+ TYPEINIT1( XMLBase64ImportContext, SvXMLImportContext );
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_XMLEmbeddedObjectImportContext.cxx b/binfilter/bf_xmloff/source/core/xmloff_XMLEmbeddedObjectImportContext.cxx
+index d23ba02..a2de0a6 100644
+--- binfilter/bf_xmloff/source/core/xmloff_XMLEmbeddedObjectImportContext.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_XMLEmbeddedObjectImportContext.cxx
+@@ -70,7 +70,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::beans;
+@@ -80,6 +79,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ struct XMLServiceMapEntry_Impl
+ {
+ 	enum XMLTokenEnum eClass;
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_nmspmap.cxx b/binfilter/bf_xmloff/source/core/xmloff_nmspmap.cxx
+index 63ab2be..98fbefa 100644
+--- binfilter/bf_xmloff/source/core/xmloff_nmspmap.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_nmspmap.cxx
+@@ -266,7 +266,7 @@ sal_uInt16 SvXMLNamespaceMap::_GetKeyByAttrName( const OUString& rAttrName,
+     NameSpaceHash::const_iterator aIter = aNameCache.find ( rAttrName );
+     if ( aIter != aNameCache.end() )
+ 	{
+-        const NameSpaceEntry &rEntry = (*aIter).second.getBody();
++        const NameSpaceEntry &rEntry = *((*aIter).second);
+         if ( pPrefix )
+             *pPrefix = rEntry.sPrefix;
+         if ( pLocalName )
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx b/binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx
+index 00a3168..ff9e5c5 100644
+--- binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_xmlexp.cxx
+@@ -147,7 +147,6 @@
+ #include "so3/staticbaseurl.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::osl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -160,6 +159,9 @@ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::io;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ sal_Char __READONLY_DATA sXML_1_0[] = "1.0";
+ 
+ #define LOGFILE_AUTHOR "mb93740"
+diff --git a/binfilter/bf_xmloff/source/core/xmloff_xmlimp.cxx b/binfilter/bf_xmloff/source/core/xmloff_xmlimp.cxx
+index c50955d..bbdadd5 100644
+--- binfilter/bf_xmloff/source/core/xmloff_xmlimp.cxx
++++ binfilter/bf_xmloff/source/core/xmloff_xmlimp.cxx
+@@ -115,7 +115,6 @@
+ #include "so3/staticbaseurl.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::osl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::frame;
+@@ -126,6 +125,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::document;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ sal_Char __READONLY_DATA sXML_np__office[] = "_office";
+ sal_Char __READONLY_DATA sXML_np__style[] = "_style";
+ sal_Char __READONLY_DATA sXML_np__text[] = "_text";
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_XMLGraphicsDefaultStyle.cxx b/binfilter/bf_xmloff/source/draw/xmloff_XMLGraphicsDefaultStyle.cxx
+index 8d83780..9458f0e 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_XMLGraphicsDefaultStyle.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_XMLGraphicsDefaultStyle.cxx
+@@ -55,13 +55,14 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ using ::binfilter::xmloff::token::IsXMLToken;
+ using ::binfilter::xmloff::token::XML_PROPERTIES;
+ 
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_XMLShapePropertySetContext.cxx b/binfilter/bf_xmloff/source/draw/xmloff_XMLShapePropertySetContext.cxx
+index 37bc09b..de27cd6 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_XMLShapePropertySetContext.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_XMLShapePropertySetContext.cxx
+@@ -54,10 +54,11 @@
+ #include "sdpropls.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++
+ //////////////////////////////////////////////////////////////////////////////
+ 
+ TYPEINIT1( XMLShapePropertySetContext, SvXMLPropertySetContext );
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_XMLShapeStyleContext.cxx b/binfilter/bf_xmloff/source/draw/xmloff_XMLShapeStyleContext.cxx
+index 0f12c3b..f833342 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_XMLShapeStyleContext.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_XMLShapeStyleContext.cxx
+@@ -66,12 +66,13 @@
+ 
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using ::binfilter::xmloff::token::IsXMLToken;
+ using ::binfilter::xmloff::token::XML_PROPERTIES;
+ 
++using rtl::OUString;
++
+ //////////////////////////////////////////////////////////////////////////////
+ 
+ TYPEINIT1( XMLShapeStyleContext, XMLPropStyleContext );
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_animexp.cxx b/binfilter/bf_xmloff/source/draw/xmloff_animexp.cxx
+index 8bea437..ed0cf45 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_animexp.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_animexp.cxx
+@@ -67,7 +67,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -78,6 +77,9 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ const struct Effect
+ {
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_animimp.cxx b/binfilter/bf_xmloff/source/draw/xmloff_animimp.cxx
+index ebc46d1..f446228 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_animimp.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_animimp.cxx
+@@ -74,7 +74,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -87,6 +86,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ SvXMLEnumMapEntry aXML_AnimationEffect_EnumMap[] =
+ {
+ 	{ XML_NONE,		    EK_none },
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_eventimp.cxx b/binfilter/bf_xmloff/source/draw/xmloff_eventimp.cxx
+index 5289f00..67be3fb 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_eventimp.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_eventimp.cxx
+@@ -79,7 +79,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -94,6 +93,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ SvXMLEnumMapEntry __READONLY_DATA aXML_EventActions_EnumMap[] =
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_layerexp.cxx b/binfilter/bf_xmloff/source/draw/xmloff_layerexp.cxx
+index c72d4f7..d85d32a 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_layerexp.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_layerexp.cxx
+@@ -56,7 +56,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -66,6 +65,9 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ void SdXMLayerExporter::exportLayer( SvXMLExport& rExport )
+ {
+ 	Reference< XLayerSupplier > xLayerSupplier( rExport.GetModel(), UNO_QUERY );
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_layerimp.cxx b/binfilter/bf_xmloff/source/draw/xmloff_layerimp.cxx
+index 33dbda2..050b3dc 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_layerimp.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_layerimp.cxx
+@@ -62,7 +62,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -76,6 +75,8 @@ using namespace ::com::sun::star::container;
+ using ::binfilter::xmloff::token::IsXMLToken;
+ using ::binfilter::xmloff::token::XML_NAME;
+ 
++using rtl::OUString;
++
+ 
+ TYPEINIT1( SdXMLLayerSetContext, SvXMLImportContext );
+ 
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_sdxmlexp.cxx b/binfilter/bf_xmloff/source/draw/xmloff_sdxmlexp.cxx
+index 779881b..05c6ad5 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_sdxmlexp.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_sdxmlexp.cxx
+@@ -154,7 +154,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -163,6 +162,9 @@ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ //////////////////////////////////////////////////////////////////////////////
+ 
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_shapeimport.cxx b/binfilter/bf_xmloff/source/draw/xmloff_shapeimport.cxx
+index 146792d..261e6a4 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_shapeimport.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_shapeimport.cxx
+@@ -208,7 +208,7 @@ XMLShapeImportHelper::XMLShapeImportHelper(
+ 
+ /*
+ 	// chain form attributes
+-	const UniReference< SvXMLImportPropertyMapper> xFormMapper( rImporter.GetFormImport()->getStylePropertyMapper().getBodyPtr() );
++	const UniReference< SvXMLImportPropertyMapper> xFormMapper( rImporter.GetFormImport()->getStylePropertyMapper().get() );
+ 	mpPropertySetMapper->ChainImportMapper(xFormMapper);
+ */
+ 
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_ximpshow.cxx b/binfilter/bf_xmloff/source/draw/xmloff_ximpshow.cxx
+index 5138732..2464b70 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_ximpshow.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_ximpshow.cxx
+@@ -74,7 +74,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -89,6 +88,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ class ShowsImpImpl
+diff --git a/binfilter/bf_xmloff/source/draw/xmloff_ximpstyl.cxx b/binfilter/bf_xmloff/source/draw/xmloff_ximpstyl.cxx
+index a85ddd3..dbe58c9 100644
+--- binfilter/bf_xmloff/source/draw/xmloff_ximpstyl.cxx
++++ binfilter/bf_xmloff/source/draw/xmloff_ximpstyl.cxx
+@@ -119,12 +119,13 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ //////////////////////////////////////////////////////////////////////////////
+ 
+ class SdXMLDrawingPagePropertySetContext : public SvXMLPropertySetContext
+diff --git a/binfilter/bf_xmloff/source/forms/callbacks.hxx b/binfilter/bf_xmloff/source/forms/callbacks.hxx
+index e7bb194..fea3d83 100644
+--- binfilter/bf_xmloff/source/forms/callbacks.hxx
++++ binfilter/bf_xmloff/source/forms/callbacks.hxx
+@@ -48,8 +48,8 @@
+ #ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_
+ #include <com/sun/star/script/ScriptEventDescriptor.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ namespace binfilter {
+ 
+@@ -72,7 +72,7 @@ namespace xmloff
+ 	{
+ 	public:
+ 		virtual SvXMLExport&								getGlobalContext() = 0;
+-		virtual ::vos::ORef< SvXMLExportPropertyMapper >	getStylePropertyMapper() = 0;
++		virtual ::rtl::Reference< SvXMLExportPropertyMapper >	getStylePropertyMapper() = 0;
+ 
+ 		/** steps through a collection and exports all children of this collection
+ 		*/
+diff --git a/binfilter/bf_xmloff/source/forms/controlpropertyhdl.hxx b/binfilter/bf_xmloff/source/forms/controlpropertyhdl.hxx
+index 4de6c1b..cc2a001 100644
+--- binfilter/bf_xmloff/source/forms/controlpropertyhdl.hxx
++++ binfilter/bf_xmloff/source/forms/controlpropertyhdl.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _XMLOFF_PROPERTYHANDLERFACTORY_HXX
+ #include "prhdlfac.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+diff --git a/binfilter/bf_xmloff/source/forms/layerexport.hxx b/binfilter/bf_xmloff/source/forms/layerexport.hxx
+index 77287b6..5d82e05 100644
+--- binfilter/bf_xmloff/source/forms/layerexport.hxx
++++ binfilter/bf_xmloff/source/forms/layerexport.hxx
+@@ -80,8 +80,8 @@ namespace xmloff
+ 		PropertySetBag		m_aIgnoreList;
+ 
+ 		// style handling
+-		::vos::ORef< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
+-		::vos::ORef< SvXMLExportPropertyMapper >	m_xExportMapper;
++		::rtl::Reference< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
++		::rtl::Reference< SvXMLExportPropertyMapper >	m_xExportMapper;
+ 
+ 		// we need our own number formats supplier:
+ 		// Controls which have a number formats do not work with the formats supplier of the document they reside
+@@ -185,7 +185,7 @@ namespace xmloff
+ 		virtual SvXMLExport&								getGlobalContext();
+ 		virtual ::rtl::OUString								getObjectStyleName(
+ 			const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObject );
+-		virtual ::vos::ORef< SvXMLExportPropertyMapper >	getStylePropertyMapper();
++		virtual ::rtl::Reference< SvXMLExportPropertyMapper >	getStylePropertyMapper();
+ 
+ 		/** clear any structures which have been build in the recent <method>examine</method> calls.
+ 		*/
+diff --git a/binfilter/bf_xmloff/source/forms/layerimport.hxx b/binfilter/bf_xmloff/source/forms/layerimport.hxx
+index 947e339..d21abb6 100644
+--- binfilter/bf_xmloff/source/forms/layerimport.hxx
++++ binfilter/bf_xmloff/source/forms/layerimport.hxx
+@@ -40,8 +40,8 @@
+ #include <com/sun/star/xml/sax/XAttributeList.hpp>
+ #endif
+ #include <com/sun/star/container/XNameContainer.hpp>
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _XMLOFF_FORMATTRIBUTES_HXX_
+ #include "formattributes.hxx"
+@@ -115,8 +115,8 @@ namespace xmloff
+ 
+ 	protected:
+ 		// style handling
+-		::vos::ORef< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
+-		::vos::ORef< SvXMLImportPropertyMapper >	m_xImportMapper;
++		::rtl::Reference< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
++		::rtl::Reference< SvXMLImportPropertyMapper >	m_xImportMapper;
+ 
+ 		DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >, MapString2PropertySet );
+ 		DECLARE_STL_MAP( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >, MapString2PropertySet, ODrawPageCompare, MapDrawPage2Map);
+@@ -171,7 +171,7 @@ namespace xmloff
+ 
+ 		/** retrieves the property mapper form form related auto styles.
+ 		*/
+-		::vos::ORef< SvXMLImportPropertyMapper > getStylePropertyMapper() const;
++		::rtl::Reference< SvXMLImportPropertyMapper > getStylePropertyMapper() const;
+ 
+ 		/** start importing the forms of the given page
+ 		*/
+diff --git a/binfilter/bf_xmloff/source/forms/propertyimport.hxx b/binfilter/bf_xmloff/source/forms/propertyimport.hxx
+index fa5bbee..592eb86 100644
+--- binfilter/bf_xmloff/source/forms/propertyimport.hxx
++++ binfilter/bf_xmloff/source/forms/propertyimport.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _XMLOFF_FORMATTRIBUTES_HXX_
+ #include "formattributes.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _COMPHELPER_STLTYPES_HXX_
+diff --git a/binfilter/bf_xmloff/source/forms/xmloff_formlayerimport.cxx b/binfilter/bf_xmloff/source/forms/xmloff_formlayerimport.cxx
+index c052027..17b5a5d 100644
+--- binfilter/bf_xmloff/source/forms/xmloff_formlayerimport.cxx
++++ binfilter/bf_xmloff/source/forms/xmloff_formlayerimport.cxx
+@@ -71,7 +71,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport::getStylePropertyMapper() const
++	::rtl::Reference< SvXMLImportPropertyMapper > OFormLayerXMLImport::getStylePropertyMapper() const
+ 	{
+ 		return m_pImpl->getStylePropertyMapper();
+ 	}
+diff --git a/binfilter/bf_xmloff/source/forms/xmloff_layerexport.cxx b/binfilter/bf_xmloff/source/forms/xmloff_layerexport.cxx
+index b568bb7..04701f8 100644
+--- binfilter/bf_xmloff/source/forms/xmloff_layerexport.cxx
++++ binfilter/bf_xmloff/source/forms/xmloff_layerexport.cxx
+@@ -113,14 +113,14 @@ namespace xmloff
+ 
+ 		// add our style family to the export context's style pool
+ 		m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory();
+-		::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper( getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr() );
+-		m_xExportMapper = new OFormExportPropertyMapper( xStylePropertiesMapper.getBodyPtr() );
++		::rtl::Reference< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper( getControlStylePropertyMap(), m_xPropertyHandlerFactory.get() );
++		m_xExportMapper = new OFormExportPropertyMapper( xStylePropertiesMapper.get() );
+ 
+ 		// our style family
+ 		m_rContext.GetAutoStylePool()->AddFamily(
+ 			XML_STYLE_FAMILY_CONTROL_ID,
+ 			::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XML_STYLE_FAMILY_CONTROL_NAME ) ),
+-			m_xExportMapper.getBodyPtr(),
++			m_xExportMapper.get(),
+ 			::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XML_STYLE_FAMILY_CONTROL_PREFIX) )
+ 		);
+ 
+@@ -194,7 +194,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLExportPropertyMapper > OFormLayerXMLExport_Impl::getStylePropertyMapper()
++	::rtl::Reference< SvXMLExportPropertyMapper > OFormLayerXMLExport_Impl::getStylePropertyMapper()
+ 	{
+ 		return m_xExportMapper;
+ 	}
+diff --git a/binfilter/bf_xmloff/source/forms/xmloff_layerimport.cxx b/binfilter/bf_xmloff/source/forms/xmloff_layerimport.cxx
+index 6d2e49b..7c8b967 100644
+--- binfilter/bf_xmloff/source/forms/xmloff_layerimport.cxx
++++ binfilter/bf_xmloff/source/forms/xmloff_layerimport.cxx
+@@ -270,8 +270,8 @@ namespace xmloff
+ 
+ 		// initialize our style map
+ 		m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory();
+-		::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr());
+-		m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.getBodyPtr(), _rImporter);
++		::rtl::Reference< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.get());
++		m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.get(), _rImporter);
+ 
+ 		// 'initialize'
+ 		m_aCurrentPageIds = m_aControlIds.end();
+@@ -446,7 +446,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const
++	::rtl::Reference< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const
+ 	{
+ 		return m_xImportMapper;
+ 	}
+diff --git a/binfilter/bf_xmloff/source/script/xmloff_xmlscripti.cxx b/binfilter/bf_xmloff/source/script/xmloff_xmlscripti.cxx
+index 03c09df..0e30290 100644
+--- binfilter/bf_xmloff/source/script/xmloff_xmlscripti.cxx
++++ binfilter/bf_xmloff/source/script/xmloff_xmlscripti.cxx
+@@ -46,7 +46,6 @@
+ #include <com/sun/star/document/XEventsSupplier.hpp>
+ namespace binfilter {
+ 
+-using namespace rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -56,6 +55,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ //-------------------------------------------------------------------------
+ 
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_XMLBackgroundImageContext.cxx b/binfilter/bf_xmloff/source/style/xmloff_XMLBackgroundImageContext.cxx
+index 9e3c28f..5a0d6ab 100644
+--- binfilter/bf_xmloff/source/style/xmloff_XMLBackgroundImageContext.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_XMLBackgroundImageContext.cxx
+@@ -59,13 +59,14 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::io;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ enum SvXMLTokenMapAttrs
+ {
+ 	XML_TOK_BGIMG_HREF,
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_XMLFontStylesContext.cxx b/binfilter/bf_xmloff/source/style/xmloff_XMLFontStylesContext.cxx
+index fe90383..ea437ff 100644
+--- binfilter/bf_xmloff/source/style/xmloff_XMLFontStylesContext.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_XMLFontStylesContext.cxx
+@@ -58,7 +58,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -68,6 +67,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::awt;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ #define XML_STYLE_FAMILY_FONT 1
+ 
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_XMLPageExport.cxx b/binfilter/bf_xmloff/source/style/xmloff_XMLPageExport.cxx
+index 218bd9e..fdba7e1 100644
+--- binfilter/bf_xmloff/source/style/xmloff_XMLPageExport.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_XMLPageExport.cxx
+@@ -71,7 +71,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -79,6 +78,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ //______________________________________________________________________________
+ 
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_prstylei.cxx b/binfilter/bf_xmloff/source/style/xmloff_prstylei.cxx
+index 72553e6..d0d61cf 100644
+--- binfilter/bf_xmloff/source/style/xmloff_prstylei.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_prstylei.cxx
+@@ -64,7 +64,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -74,6 +73,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ void XMLPropStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
+ 										const OUString& rLocalName,
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_styleexp.cxx b/binfilter/bf_xmloff/source/style/xmloff_styleexp.cxx
+index 43a3e69..e93ab33 100644
+--- binfilter/bf_xmloff/source/style/xmloff_styleexp.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_styleexp.cxx
+@@ -73,12 +73,13 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
++
++using rtl::OUString;
+ //using namespace ::com::sun::star::text;
+ using namespace ::binfilter::xmloff::token;
+ 
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_xmlexppr.cxx b/binfilter/bf_xmloff/source/style/xmloff_xmlexppr.cxx
+index ca08965..2a04ec0 100644
+--- binfilter/bf_xmloff/source/style/xmloff_xmlexppr.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_xmlexppr.cxx
+@@ -75,7 +75,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::beans;
+@@ -83,6 +82,9 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ ///////////////////////////////////////////////////////////////////////////////
+ //
+ // public methods
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_xmlimppr.cxx b/binfilter/bf_xmloff/source/style/xmloff_xmlimppr.cxx
+index c3722e3..bb0956d 100644
+--- binfilter/bf_xmloff/source/style/xmloff_xmlimppr.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_xmlimppr.cxx
+@@ -78,7 +78,6 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::xml;
+ using namespace ::com::sun::star::xml::sax;
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::binfilter::xmloff::token;
+ using ::com::sun::star::lang::IllegalArgumentException;
+@@ -86,6 +85,9 @@ using ::com::sun::star::lang::WrappedTargetException;
+ using ::com::sun::star::beans::UnknownPropertyException;
+ using ::com::sun::star::beans::PropertyVetoException;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ SvXMLImportPropertyMapper::SvXMLImportPropertyMapper(
+         const UniReference< XMLPropertySetMapper >& rMapper,
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_xmlnume.cxx b/binfilter/bf_xmloff/source/style/xmloff_xmlnume.cxx
+index ae70f45..f6447cd 100644
+--- binfilter/bf_xmloff/source/style/xmloff_xmlnume.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_xmlnume.cxx
+@@ -96,7 +96,6 @@
+ #include "so3/staticbaseurl.hxx"
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -105,6 +104,9 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE[] = "SymbolTextDistance";
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_PARENT_NUMBERING[] = "ParentNumbering";
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_CHAR_STYLE_NAME[] = "CharStyleName";
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_xmlnumi.cxx b/binfilter/bf_xmloff/source/style/xmloff_xmlnumi.cxx
+index 5e1ca89..d182c90 100644
+--- binfilter/bf_xmloff/source/style/xmloff_xmlnumi.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_xmlnumi.cxx
+@@ -85,7 +85,6 @@
+ #define _SVSTDARR_USHORTS
+ #include <svtools/svstdarr.hxx>
+ namespace binfilter {
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -97,6 +96,9 @@ using namespace ::com::sun::star::frame;
+ using namespace ::binfilter::xmloff::token;
+ using namespace ::com::sun::star::io;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE[] =
+ 		"SymbolTextDistance";
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_PARENT_NUMBERING[] =
+diff --git a/binfilter/bf_xmloff/source/style/xmloff_xmlstyle.cxx b/binfilter/bf_xmloff/source/style/xmloff_xmlstyle.cxx
+index cbcc98f..03a4352 100644
+--- binfilter/bf_xmloff/source/style/xmloff_xmlstyle.cxx
++++ binfilter/bf_xmloff/source/style/xmloff_xmlstyle.cxx
+@@ -103,13 +103,14 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::style;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ // ---------------------------------------------------------------------
+ 
+ static __FAR_DATA SvXMLTokenMapEntry aStyleStylesElemTokenMap[] =
+@@ -794,7 +795,7 @@ UniReference < SvXMLImportPropertyMapper > SvXMLStylesContext::GetImportProperty
+ #ifndef SVX_LIGHT
+ #if SUPD>615 || defined(PRIV_DEBUG)
+ 	case XML_STYLE_FAMILY_CONTROL_ID:
+-		xMapper = const_cast<SvXMLImport&>(GetImport()).GetFormImport()->getStylePropertyMapper().getBodyPtr();
++		xMapper = const_cast<SvXMLImport&>(GetImport()).GetFormImport()->getStylePropertyMapper().get();
+ 		break;
+ #endif
+ #endif // #ifndef SVX_LIGHT
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLCalculationSettingsContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLCalculationSettingsContext.cxx
+index a08b0fe..7f4ef9b 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLCalculationSettingsContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLCalculationSettingsContext.cxx
+@@ -54,12 +54,13 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ XMLCalculationSettingsContext::XMLCalculationSettingsContext( SvXMLImport& rImport, 
+ 									sal_uInt16 nPrefix,
+ 									const ::rtl::OUString& rLocalName,
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteConfigurationImportContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteConfigurationImportContext.cxx
+index aec70cc..bf80b6e 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteConfigurationImportContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteConfigurationImportContext.cxx
+@@ -83,7 +83,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::uno;
+@@ -91,6 +90,9 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ //
+ //  XMLFootnoteConfigHelper
+ //
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteImportContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteImportContext.cxx
+index 5b4623c..cd3e7d3 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteImportContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLFootnoteImportContext.cxx
+@@ -76,7 +76,6 @@ namespace binfilter {
+ 
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::lang;
+@@ -84,6 +83,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1(XMLFootnoteImportContext, SvXMLImportContext);
+ 
+ const sal_Char sAPI_service_footnote[] = "com.sun.star.text.Footnote";
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsContext.cxx
+index baae19b..89e8d79 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsContext.cxx
+@@ -59,7 +59,6 @@
+ #include <svtools/svstdarr.hxx>
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -68,6 +67,8 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ enum SvXMLTokenMapAttrs
+ {
+ 	XML_TOK_COLUMN_WIDTH,
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsExport.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsExport.cxx
+index e007c5b..f3b16eb 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsExport.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextColumnsExport.cxx
+@@ -63,9 +63,11 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ XMLTextColumnsExport::XMLTextColumnsExport( SvXMLExport& rExp ) :
+ 	rExport( rExp ),
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameContext.cxx
+index fa0898f..2ae8e48 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameContext.cxx
+@@ -114,7 +114,6 @@ namespace binfilter {
+ 
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -127,6 +126,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::binfilter::xmloff::token;
+ using ::com::sun::star::document::XEventsSupplier;
+ 
++using rtl::OUString;
++
+ class XMLTextFrameContextHyperlink_Impl
+ {
+ 	OUString sHRef;
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameHyperlinkContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameHyperlinkContext.cxx
+index 87b2f77..4ea0421 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameHyperlinkContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextFrameHyperlinkContext.cxx
+@@ -53,13 +53,14 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::beans;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLTextFrameHyperlinkContext, SvXMLImportContext );
+ 
+ XMLTextFrameHyperlinkContext::XMLTextFrameHyperlinkContext(
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextHeaderFooterContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextHeaderFooterContext.cxx
+index 1756adf..01acadc 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextHeaderFooterContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextHeaderFooterContext.cxx
+@@ -45,10 +45,11 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
++
++using rtl::OUString;
+ //using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextListAutoStylePool.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextListAutoStylePool.cxx
+index 5e13121..167c819 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextListAutoStylePool.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextListAutoStylePool.cxx
+@@ -61,13 +61,15 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::style;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ int XMLTextListAutoStylePoolNameCmp_Impl( const OUString& r1,
+ 									 	  const OUString& r2 )
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextListBlockContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextListBlockContext.cxx
+index d3338c8..a1711d4 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextListBlockContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextListBlockContext.cxx
+@@ -59,7 +59,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+@@ -67,6 +66,8 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLTextListBlockContext, SvXMLImportContext );
+ 
+ XMLTextListBlockContext::XMLTextListBlockContext(
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextListItemContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextListItemContext.cxx
+index 7c154f2..59e7de8 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextListItemContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextListItemContext.cxx
+@@ -59,11 +59,12 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLTextListItemContext, SvXMLImportContext );
+ 
+ XMLTextListItemContext::XMLTextListItemContext(
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextMarkImportContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextMarkImportContext.cxx
+index ade5035..a1d2bed 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextMarkImportContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextMarkImportContext.cxx
+@@ -72,7 +72,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -80,6 +79,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
++
++using rtl::OUString;
+ 	
+ TYPEINIT1( XMLTextMarkImportContext, SvXMLImportContext);
+ 
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageContext.cxx
+index 23a34d6..f23f6c7 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageContext.cxx
+@@ -54,7 +54,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -63,6 +62,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
++
++using rtl::OUString;
+ //using namespace ::com::sun::star::text;
+ using namespace ::binfilter::xmloff::token;
+ 
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageExport.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageExport.cxx
+index 4f78bc0..b2c3582 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageExport.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterPageExport.cxx
+@@ -56,7 +56,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterStylesContext.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterStylesContext.cxx
+index 9a15dd3..206b684 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterStylesContext.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextMasterStylesContext.cxx
+@@ -50,10 +50,11 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ using ::binfilter::xmloff::token::IsXMLToken;
+ using ::binfilter::xmloff::token::XML_MASTER_PAGE;
+ 
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_XMLTextShapeImportHelper.cxx b/binfilter/bf_xmloff/source/text/xmloff_XMLTextShapeImportHelper.cxx
+index fee4927..d7a3a9b 100644
+--- binfilter/bf_xmloff/source/text/xmloff_XMLTextShapeImportHelper.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_XMLTextShapeImportHelper.cxx
+@@ -58,7 +58,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::drawing;
+@@ -67,6 +66,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ XMLTextShapeImportHelper::XMLTextShapeImportHelper(
+ 		SvXMLImport& rImp ) :
+ 	XMLShapeImportHelper( rImp, rImp.GetModel(),
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtdropi.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtdropi.cxx
+index f20a38f..9a541d1 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtdropi.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtdropi.cxx
+@@ -53,12 +53,13 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ 
+ enum SvXMLTokenMapDropAttrs
+ {
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtexppr.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtexppr.cxx
+index 4ab254c..455e8fd 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtexppr.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtexppr.cxx
+@@ -73,7 +73,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -81,6 +80,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::awt;
+ 
++using rtl::OUString;
++
+ void XMLTextExportPropertySetMapper::handleElementItem(
+         SvXMLExport& rExport,
+ 		const XMLPropertyState& rProperty,
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtflde.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtflde.cxx
+index 017f121..0df2719 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtflde.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtflde.cxx
+@@ -163,7 +163,6 @@
+ #include <vector>
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -176,6 +175,9 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::container;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ static sal_Char __READONLY_DATA FIELD_SERVICE_SENDER[] = "ExtendedUser";
+ static sal_Char __READONLY_DATA FIELD_SERVICE_AUTHOR[] = "Author";
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtfldi.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtfldi.cxx
+index 9dd9d1d..58c81c2 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtfldi.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtfldi.cxx
+@@ -148,7 +148,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -159,6 +158,9 @@ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ //
+ // SO API string constants
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtftne.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtftne.cxx
+index 303cfb1..7fd89cc 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtftne.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtftne.cxx
+@@ -92,7 +92,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -101,6 +100,9 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ void XMLTextParagraphExport::exportTextFootnote(
+ 	const Reference<XPropertySet> & rPropSet,
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtimp.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtimp.cxx
+index eb5d8db..9f8e04c 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtimp.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtimp.cxx
+@@ -137,7 +137,6 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -152,6 +151,9 @@ using namespace ::binfilter::xmloff::token;
+ using ::com::sun::star::util::DateTime;
+ using namespace ::com::sun::star::ucb;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ #if SUPD > 632 || DVO_TEST
+ using ::comphelper::UStringLess;
+ #endif
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtparae.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtparae.cxx
+index 50a8398..35ab30c 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtparae.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtparae.cxx
+@@ -156,7 +156,6 @@
+ namespace binfilter {
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -170,6 +169,9 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::frame;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ typedef OUString *OUStringPtr;
+ SV_DECL_PTRARR_DEL( OUStrings_Impl, OUStringPtr, 20, 10 )
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtparai.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtparai.cxx
+index a956371..11c65c2 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtparai.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtparai.cxx
+@@ -86,13 +86,15 @@
+ #endif
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::drawing;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ // ---------------------------------------------------------------------
+ 
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtstyle.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtstyle.cxx
+index c6b449b..a1db8fa 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtstyle.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtstyle.cxx
+@@ -73,7 +73,6 @@ namespace binfilter {
+ //#include "styleexp.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -81,6 +80,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++
+ void XMLTextParagraphExport::exportStyleAttributes(
+ 		const ::com::sun::star::uno::Reference<
+ 				::com::sun::star::style::XStyle > & rStyle )
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtstyli.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtstyli.cxx
+index 872ae75..44803c4 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtstyli.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtstyli.cxx
+@@ -75,7 +75,6 @@
+ #include <vector>
+ namespace binfilter {
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -85,6 +84,8 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
++
++using rtl::OUString;
+ //using namespace ::com::sun::star::text;
+ using namespace ::binfilter::xmloff::token;
+ 
+diff --git a/binfilter/bf_xmloff/source/text/xmloff_txtvfldi.cxx b/binfilter/bf_xmloff/source/text/xmloff_txtvfldi.cxx
+index 7e9dcf7..e8e4661 100644
+--- binfilter/bf_xmloff/source/text/xmloff_txtvfldi.cxx
++++ binfilter/bf_xmloff/source/text/xmloff_txtvfldi.cxx
+@@ -125,7 +125,6 @@ static const sal_Char sAPI_sequence_value[]		= "SequenceValue";
+ static const sal_Char sAPI_is_fixed_language[] = "IsFixedLanguage";
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -133,6 +132,9 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::style;
+ using namespace ::binfilter::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ 
+ //
+diff --git a/binfilter/bf_xmloff/util/makefile.mk b/binfilter/bf_xmloff/util/makefile.mk
+index 405154e..33e194a 100644
+--- binfilter/bf_xmloff/util/makefile.mk
++++ binfilter/bf_xmloff/util/makefile.mk
+@@ -83,6 +83,7 @@ SHL1STDLIBS= \
+ 		$(TKLIB)		\
+ 		$(SVLLIB)		\
+ 		$(SALLIB)		\
++		$(SALHELPERLIB)		\
+ 		$(UNOTOOLSLIB)	\
+         $(BFGOODIESLIB) \
+         $(SO2LIB)
+diff --git a/binfilter/inc/bf_sc/document.hxx b/binfilter/inc/bf_sc/document.hxx
+index 68a7352..df4fa87 100644
+--- binfilter/inc/bf_sc/document.hxx
++++ binfilter/inc/bf_sc/document.hxx
+@@ -43,8 +43,8 @@
+ #endif
+ 
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef SC_TABLE_HXX
+@@ -329,7 +329,7 @@ friend class ScPivot;
+ private:
+ 	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager;
+ 
+-	vos::ORef<ScPoolHelper> xPoolHelper;
++	rtl::Reference<ScPoolHelper> xPoolHelper;
+ 
+ 	ScFieldEditEngine*	pEditEngine;					// uses pEditPool from xPoolHelper
+ 	SfxObjectShell*		pShell;
+@@ -361,7 +361,7 @@ private:
+ 	ScChangeViewSettings* pChangeViewSettings;
+ 	ScScriptTypeData*	pScriptTypeData;
+ 	ScRefreshTimerControl* pRefreshTimerControl;
+-	vos::ORef<SvxForbiddenCharactersTable> xForbiddenCharacters;
++	rtl::Reference<SvxForbiddenCharactersTable> xForbiddenCharacters;
+ 
+ 	ScFieldEditEngine*	pCacheFieldEditEngine;
+ 
+@@ -1172,8 +1172,8 @@ public:
+ 	ScChangeViewSettings* GetChangeViewSettings() const		{ return pChangeViewSettings; }
+ 	void				SetChangeViewSettings(const ScChangeViewSettings& rNew);
+ 
+-	vos::ORef<SvxForbiddenCharactersTable> GetForbiddenCharacters();
+-	void			SetForbiddenCharacters( const vos::ORef<SvxForbiddenCharactersTable> xNew );
++	rtl::Reference<SvxForbiddenCharactersTable> GetForbiddenCharacters();
++	void			SetForbiddenCharacters( const rtl::Reference<SvxForbiddenCharactersTable> xNew );
+ 
+ 	BYTE			GetAsianCompression() const;		// CharacterCompressionType values
+ 	BOOL			IsValidAsianCompression() const;
+diff --git a/binfilter/inc/bf_starmath/symbol.hxx b/binfilter/inc/bf_starmath/symbol.hxx
+index 11638ef..7c4f168 100644
+--- binfilter/inc/bf_starmath/symbol.hxx
++++ binfilter/inc/bf_starmath/symbol.hxx
+@@ -35,8 +35,8 @@
+ #ifndef SYMBOL_HXX
+ #define SYMBOL_HXX
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _FONT_HXX //autogen
+ #include <vcl/font.hxx>
+diff --git a/binfilter/inc/bf_svx/UnoForbiddenCharsTable.hxx b/binfilter/inc/bf_svx/UnoForbiddenCharsTable.hxx
+index 56ba973..6d066dc 100644
+--- binfilter/inc/bf_svx/UnoForbiddenCharsTable.hxx
++++ binfilter/inc/bf_svx/UnoForbiddenCharsTable.hxx
+@@ -43,8 +43,8 @@
+ #include <com/sun/star/linguistic2/XSupportedLocales.hpp>
+ #endif
+ 
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #include <cppuhelper/implbase2.hxx>
+@@ -60,10 +60,10 @@ protected:
+ 	/** this virtual function is called if the forbidden characters are changed */
+ 	virtual void onChange();
+ 
+-	vos::ORef<SvxForbiddenCharactersTable> mxForbiddenChars;
++	rtl::Reference<SvxForbiddenCharactersTable> mxForbiddenChars;
+ 
+ public:
+-	SvxUnoForbiddenCharsTable(vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars);
++	SvxUnoForbiddenCharsTable(rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars);
+ 	~SvxUnoForbiddenCharsTable();
+ 
+ 	// XForbiddenCharacters
+diff --git a/binfilter/inc/bf_svx/editeng.hxx b/binfilter/inc/bf_svx/editeng.hxx
+index 209fd62..50cb02c 100644
+--- binfilter/inc/bf_svx/editeng.hxx
++++ binfilter/inc/bf_svx/editeng.hxx
+@@ -71,7 +71,7 @@ class SvxBulletItem;
+ class SvxLRSpaceItem;
+ class SvxForbiddenCharactersTable;
+ }//end of namespace binfilter
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+ #ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+ #include <com/sun/star/uno/Reference.h>
+@@ -291,7 +291,7 @@ public:
+ 	void			SetHyphenator( ::com::sun::star::uno::Reference< 
+ 							::com::sun::star::linguistic2::XHyphenator >& xHyph );
+ 
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
+ 
+ 	void 			SetDefaultLanguage( LanguageType eLang );
+ 
+diff --git a/binfilter/inc/bf_svx/forbiddencharacterstable.hxx b/binfilter/inc/bf_svx/forbiddencharacterstable.hxx
+index 609f078..266a502 100644
+--- binfilter/inc/bf_svx/forbiddencharacterstable.hxx
++++ binfilter/inc/bf_svx/forbiddencharacterstable.hxx
+@@ -40,7 +40,7 @@
+ #include <tools/table.hxx>
+ #endif
+ 
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ 
+ #ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
+ #include <com/sun/star/uno/Reference.hxx>
+@@ -72,7 +72,7 @@ struct ForbiddenCharactersInfo
+ 
+ DECLARE_TABLE( SvxForbiddenCharactersTableImpl, ForbiddenCharactersInfo* )
+ 
+-class SvxForbiddenCharactersTable : public SvxForbiddenCharactersTableImpl, public vos::OReference
++class SvxForbiddenCharactersTable : public SvxForbiddenCharactersTableImpl, public salhelper::SimpleReferenceObject
+ {
+ private:	
+ 	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
+diff --git a/binfilter/inc/bf_svx/outliner.hxx b/binfilter/inc/bf_svx/outliner.hxx
+index e0eca58..98f6a2c 100644
+--- binfilter/inc/bf_svx/outliner.hxx
++++ binfilter/inc/bf_svx/outliner.hxx
+@@ -72,7 +72,7 @@
+ #include <com/sun/star/uno/Reference.h>
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #include <bf_svx/svxfont.hxx>
+ 
+ namespace com { namespace sun { namespace star { namespace linguistic2 {
+@@ -117,7 +117,7 @@ class SvxForbiddenCharactersTable;
+ //STRIP008 #include <com/sun/star/uno/Reference.h>
+ //STRIP008 #endif
+ //STRIP008 
+-//STRIP008 #include <vos/ref.hxx>
++//STRIP008 #include <rtl/ref.hxx>
+ //STRIP008 #include <bf_svx/svxfont.hxx>
+ //STRIP008 
+ //STRIP008 namespace com { namespace sun { namespace star { namespace linguistic2 {
+@@ -683,7 +683,7 @@ public:
+ 	void			SetHyphenator( ::com::sun::star::uno::Reference<
+ 						::com::sun::star::linguistic2::XHyphenator >& xHyph );
+ 
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
+ 
+ 	// Depricated
+ 	void 			SetDefaultLanguage( LanguageType eLang );
+diff --git a/binfilter/inc/bf_svx/svdmodel.hxx b/binfilter/inc/bf_svx/svdmodel.hxx
+index ba80e8d..1259da3 100644
+--- binfilter/inc/bf_svx/svdmodel.hxx
++++ binfilter/inc/bf_svx/svdmodel.hxx
+@@ -82,7 +82,7 @@ class OutputDevice;
+ #include <vcl/field.hxx>
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ class AutoTimer;
+ class SfxItemPool;
+ class SfxItemSet;
+@@ -759,8 +759,8 @@ public:
+ 	BOOL isLocked() const { return mbModelLocked; }
+ 	void setLock( BOOL bLock );
+ 
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
+ 
+ 	void SetCharCompressType( UINT16 nType );
+ 	UINT16 GetCharCompressType() const { return mnCharCompressType; }
+diff --git a/binfilter/inc/bf_sw/doc.hxx b/binfilter/inc/bf_sw/doc.hxx
+index 9c18bec..ce1bcba 100644
+--- binfilter/inc/bf_sw/doc.hxx
++++ binfilter/inc/bf_sw/doc.hxx
+@@ -80,8 +80,8 @@
+ #ifndef _COM_SUN_STAR_LINGUISTIC2_XHYPHENATEDWORD_HPP_
+ #include <com/sun/star/linguistic2/XHyphenatedWord.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ // OD 25.06.2003 #108784#
+@@ -394,7 +394,7 @@ class SwDoc
+ 	SwUnoCallBack	*pUnoCallBack;
+ 
+ 	// table of forbidden characters of this document
+-	::vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable; //STRIP008 vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
++	::rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable; //STRIP008 rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
+ 
+ 	// -------------------------------------------------------------------
+ 	// sonstige
+@@ -1659,9 +1659,9 @@ public:
+ 	const ::com::sun::star::i18n::
+ 		ForbiddenCharacters* GetForbiddenCharacters( USHORT nLang,
+ 													BOOL bLocaleData ) const;
+-	const vos::ORef<SvxForbiddenCharactersTable>& GetForbiddenCharacterTbl() const
++	const rtl::Reference<SvxForbiddenCharactersTable>& GetForbiddenCharacterTbl() const
+ 			{ return xForbiddenCharsTable; }
+-	vos::ORef<SvxForbiddenCharactersTable>& GetForbiddenCharacterTbl();
++	rtl::Reference<SvxForbiddenCharactersTable>& GetForbiddenCharacterTbl();
+ 
+ 	// ------------------- Zugriff auf Dummy-Member --------------------
+ 
+diff --git a/binfilter/inc/bf_sw/flddropdown.hxx b/binfilter/inc/bf_sw/flddropdown.hxx
+index 5ea6099..6a12e90 100644
+--- binfilter/inc/bf_sw/flddropdown.hxx
++++ binfilter/inc/bf_sw/flddropdown.hxx
+@@ -41,9 +41,10 @@
+ namespace binfilter {
+ 
+ using namespace ::com::sun::star::uno;
+-using namespace ::rtl;
+ using namespace std;
+ 
++using rtl::OUString;
++
+ /** 
+     Field type for dropdown boxes.
+ */
+diff --git a/binfilter/inc/bf_xmloff/ControlBorderHandler.hxx b/binfilter/inc/bf_xmloff/ControlBorderHandler.hxx
+index c3b124f..bc03fcb 100644
+--- binfilter/inc/bf_xmloff/ControlBorderHandler.hxx
++++ binfilter/inc/bf_xmloff/ControlBorderHandler.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _XMLOFF_PROPERTYHANDLERFACTORY_HXX
+ #include "prhdlfac.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+diff --git a/binfilter/inc/bf_xmloff/formlayerexport.hxx b/binfilter/inc/bf_xmloff/formlayerexport.hxx
+index e013a8a..6ff4a3a 100644
+--- binfilter/inc/bf_xmloff/formlayerexport.hxx
++++ binfilter/inc/bf_xmloff/formlayerexport.hxx
+@@ -36,8 +36,8 @@
+ #ifndef _XMLOFF_FORMLAYEREXPORT_HXX_
+ #define _XMLOFF_FORMLAYEREXPORT_HXX_
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGE_HPP_
+ #include <com/sun/star/drawing/XDrawPage.hpp>
+@@ -51,8 +51,8 @@
+ #ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+ #include <com/sun/star/frame/XModel.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _XMLOFF_XMLEXPPR_HXX
+ #include <bf_xmloff/xmlexppr.hxx>
+@@ -78,7 +78,7 @@ namespace xmloff
+ 	/** provides functionallity for exporting a complete form layer.
+ 	*/
+ 	class OFormLayerXMLExport
+-				:public ::vos::OReference
++				:public ::salhelper::SimpleReferenceObject
+ 	{
+ 	protected:
+ 		/// our export context
+diff --git a/binfilter/inc/bf_xmloff/formlayerimport.hxx b/binfilter/inc/bf_xmloff/formlayerimport.hxx
+index 5ad4159..f176204 100644
+--- binfilter/inc/bf_xmloff/formlayerimport.hxx
++++ binfilter/inc/bf_xmloff/formlayerimport.hxx
+@@ -36,8 +36,8 @@
+ #ifndef _XMLOFF_FORMLAYERIMPORT_HXX_
+ #define _XMLOFF_FORMLAYERIMPORT_HXX_
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGE_HPP_
+ #include <com/sun/star/drawing/XDrawPage.hpp>
+@@ -48,8 +48,8 @@
+ #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _XMLOFF_XMLIMPPR_HXX
+ #include <bf_xmloff/xmlimppr.hxx>
+@@ -73,7 +73,7 @@ namespace xmloff
+ 	/** allows you to import a &lt;form:form&gt; element
+ 	*/
+ 	class OFormLayerXMLImport
+-				:public ::vos::OReference
++				:public ::salhelper::SimpleReferenceObject
+ 	{
+ 		OFormLayerXMLImport_Impl*	m_pImpl;
+ 
+@@ -83,7 +83,7 @@ namespace xmloff
+ 
+ 		/** retrieves the property mapper form form related auto styles.
+ 		*/
+-		::vos::ORef< SvXMLImportPropertyMapper >
++		::rtl::Reference< SvXMLImportPropertyMapper >
+ 				getStylePropertyMapper() const;
+ 
+ 		/** start importing the forms of the given page
+diff --git a/binfilter/inc/bf_xmloff/nmspmap.hxx b/binfilter/inc/bf_xmloff/nmspmap.hxx
+index ce20e2d..4f6e43b 100644
+--- binfilter/inc/bf_xmloff/nmspmap.hxx
++++ binfilter/inc/bf_xmloff/nmspmap.hxx
+@@ -42,8 +42,8 @@
+ #ifndef __SGI_STL_MAP
+ #include <map>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CPPUHELPER_WEAK_HXX_
+ #include <cppuhelper/weak.hxx>
+@@ -102,8 +102,8 @@ struct QNamePairEq
+ };
+ 
+ typedef ::std::hash_map < QNamePair, ::rtl::OUString, QNamePairHash, QNamePairEq > QNameCache;
+-typedef ::std::hash_map < ::rtl::OUString, ::vos::ORef <NameSpaceEntry >, ::rtl::OUStringHash, OUStringEqFunc > NameSpaceHash;
+-typedef ::std::map < sal_uInt16, ::vos::ORef < NameSpaceEntry >, uInt32lt > NameSpaceMap;
++typedef ::std::hash_map < ::rtl::OUString, ::rtl::Reference <NameSpaceEntry >, ::rtl::OUStringHash, OUStringEqFunc > NameSpaceHash;
++typedef ::std::map < sal_uInt16, ::rtl::Reference < NameSpaceEntry >, uInt32lt > NameSpaceMap;
+ 
+ class SvXMLNamespaceMap
+ {
+diff --git a/configmgr/inc/pch/precompiled_configmgr.hxx b/configmgr/inc/pch/precompiled_configmgr.hxx
+index c84dff7..c74b718 100644
+--- configmgr/inc/pch/precompiled_configmgr.hxx
++++ configmgr/inc/pch/precompiled_configmgr.hxx
+@@ -243,8 +243,8 @@
+ 
+ #include "vos/conditn.hxx"
+ #include "vos/pipe.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "salhelper/simplereferenceobject.hxx"
+ #include "vos/socket.hxx"
+ #include "vos/thread.hxx"
+ #include "vos/timer.hxx"
+diff --git a/configmgr/source/api2/apiaccessobj.hxx b/configmgr/source/api2/apiaccessobj.hxx
+index eaa1979..1775702 100644
+--- configmgr/source/api2/apiaccessobj.hxx
++++ configmgr/source/api2/apiaccessobj.hxx
+@@ -134,7 +134,7 @@ namespace configmgr
+ 			static ServiceInfo const*const s_pServiceInfo;
+ 			mutable ApiRootTreeImpl 	m_aRootTree;
+ 		public:
+-			OReadRootElement(UnoInterface* pUnoThis, ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++			OReadRootElement(UnoInterface* pUnoThis, ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 				: m_aRootTree(pUnoThis, rProvider,aTree, _xOptions)
+ 			{}
+ 
+@@ -156,7 +156,7 @@ namespace configmgr
+ 
+ 			mutable ApiRootTreeImpl 	m_aRootTree;
+ 		public:
+-			OUpdateRootElement(UnoInterface* pUnoThis, ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++			OUpdateRootElement(UnoInterface* pUnoThis, ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 			: m_aRootTree(pUnoThis, rProvider,aTree,_xOptions)
+ 			{}
+ 
+diff --git a/configmgr/source/api2/apifactory.cxx b/configmgr/source/api2/apifactory.cxx
+index 724030c..7cf5d31 100644
+--- configmgr/source/api2/apifactory.cxx
++++ configmgr/source/api2/apifactory.cxx
+@@ -190,7 +190,7 @@ NodeElement* Factory::makeElement(Tree const& aTree, NodeRef const& aNode)
+ 			else
+ 			{
+ 				OSL_ENSURE(aTree.getContextTree().isEmpty(),"INTERNAL ERROR: Found tree (not a set element) with a parent tree.");
+-				pRet = doCreateAccessRoot(aTree,aTemplate.get(), vos::ORef< OOptions >());
++				pRet = doCreateAccessRoot(aTree,aTemplate.get(), rtl::Reference< OOptions >());
+ 			}
+ 		}
+ 		implHaveNewElement(aNodeID,pRet);
+@@ -245,7 +245,7 @@ TreeElement* Factory::makeAccessRoot(Tree const& aTree, RequestOptions const& _a
+ 	if (0 == pRet)
+ 	{
+ 		TemplateHolder aTemplate = implGetSetElementTemplate(aTree,aRoot);
+-        vos::ORef<OOptions> xOptions = new OOptions(_aOptions);
++        rtl::Reference<OOptions> xOptions = new OOptions(_aOptions);
+ 		pRet = doCreateAccessRoot(aTree,aTemplate.get(), xOptions);
+ 		implHaveNewElement (aNodeID,pRet);
+ 	}
+diff --git a/configmgr/source/api2/apifactory.hxx b/configmgr/source/api2/apifactory.hxx
+index 9534f78..ad1c5b6 100644
+--- configmgr/source/api2/apifactory.hxx
++++ configmgr/source/api2/apifactory.hxx
+@@ -46,8 +46,8 @@
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
+@@ -134,7 +134,7 @@ namespace configmgr
+ 			uno::Sequence< sal_Int8 > doGetElementTunnelID() const { return m_aTunnelID.getImplementationId(); }
+ 
+ 			virtual NodeElement*	doCreateGroupMember(configuration::Tree const& aTree, configuration::NodeRef const& aNode, configuration::Template* pSetElementTemplate) = 0;
+-			virtual TreeElement*	doCreateAccessRoot(configuration::Tree const& aTree, configuration::Template* pSetElementTemplate, vos::ORef< OOptions >const& _xOptions) = 0;
++			virtual TreeElement*	doCreateAccessRoot(configuration::Tree const& aTree, configuration::Template* pSetElementTemplate, rtl::Reference< OOptions >const& _xOptions) = 0;
+ 			virtual SetElement*		doCreateSetElement(configuration::ElementTree const& aTree, configuration::Template* pSetElementTemplate) = 0;
+ 
+ 			static ApiTreeImpl& getImplementation(NodeElement& pElement);
+diff --git a/configmgr/source/api2/apifactoryimpl.cxx b/configmgr/source/api2/apifactoryimpl.cxx
+index 53482b5..6de3922 100644
+--- configmgr/source/api2/apifactoryimpl.cxx
++++ configmgr/source/api2/apifactoryimpl.cxx
+@@ -105,7 +105,7 @@ NodeElement* ReadOnlyObjectFactory::doCreateGroupMember(configuration::Tree cons
+ }
+ //-----------------------------------------------------------------------------
+ 
+-TreeElement* ReadOnlyObjectFactory::doCreateAccessRoot(configuration::Tree const& aTree, Template* pSetElementTemplate, vos::ORef< OOptions >const& _xOptions)
++TreeElement* ReadOnlyObjectFactory::doCreateAccessRoot(configuration::Tree const& aTree, Template* pSetElementTemplate, rtl::Reference< OOptions >const& _xOptions)
+ {
+ 	OSL_ENSURE(!aTree.isEmpty(), "ERROR: trying to create a root object without a tree");
+ 
+@@ -248,7 +248,7 @@ NodeElement* UpdateObjectFactory::doCreateGroupMember(configuration::Tree const&
+ }
+ //-----------------------------------------------------------------------------
+ 
+-TreeElement* UpdateObjectFactory::doCreateAccessRoot(configuration::Tree const& aTree, Template* pSetElementTemplate, vos::ORef< OOptions >const& _xOptions)
++TreeElement* UpdateObjectFactory::doCreateAccessRoot(configuration::Tree const& aTree, Template* pSetElementTemplate, rtl::Reference< OOptions >const& _xOptions)
+ {
+ 	OSL_ENSURE(!aTree.isEmpty(), "ERROR: trying to create a root object without a tree");
+ 	
+diff --git a/configmgr/source/api2/apifactoryimpl.hxx b/configmgr/source/api2/apifactoryimpl.hxx
+index c14f426..93a9174 100644
+--- configmgr/source/api2/apifactoryimpl.hxx
++++ configmgr/source/api2/apifactoryimpl.hxx
+@@ -52,7 +52,7 @@ namespace configmgr
+ 			~ReadOnlyObjectFactory();
+ 
+ 			virtual NodeElement*	doCreateGroupMember(configuration::Tree const& aTree, configuration::NodeRef const& aNode, configuration::Template* pSetElementTemplate);
+-			virtual TreeElement*	doCreateAccessRoot(configuration::Tree const& aTree, configuration::Template* pSetElementTemplate, vos::ORef< OOptions >const& _xOptions);
++			virtual TreeElement*	doCreateAccessRoot(configuration::Tree const& aTree, configuration::Template* pSetElementTemplate, rtl::Reference< OOptions >const& _xOptions);
+ 			virtual SetElement*	doCreateSetElement(configuration::ElementTree const& aTree, configuration::Template* pSetElementTemplate);
+ 		};
+ 		// used to create UNO objects
+@@ -64,7 +64,7 @@ namespace configmgr
+ 			~UpdateObjectFactory();
+ 
+ 			virtual NodeElement*	doCreateGroupMember(configuration::Tree const& aTree, configuration::NodeRef const& aNode, configuration::Template* pSetElementTemplate);
+-			virtual TreeElement*	doCreateAccessRoot(configuration::Tree const& aTree, configuration::Template* pSetElementTemplate, vos::ORef< OOptions >const& _xOptions);
++			virtual TreeElement*	doCreateAccessRoot(configuration::Tree const& aTree, configuration::Template* pSetElementTemplate, rtl::Reference< OOptions >const& _xOptions);
+ 			virtual SetElement*	doCreateSetElement(configuration::ElementTree const& aTree, configuration::Template* pSetElementTemplate);
+ 		private:
+ 			bool implIsReadOnly(configuration::Tree const& aTree, configuration::NodeRef const& aNode);
+diff --git a/configmgr/source/api2/apitreeimplobj.cxx b/configmgr/source/api2/apitreeimplobj.cxx
+index f96e912..47824c6 100644
+--- configmgr/source/api2/apitreeimplobj.cxx
++++ configmgr/source/api2/apitreeimplobj.cxx
+@@ -79,8 +79,8 @@
+ #ifndef _CPPUHELPER_QUERYINTERFACE_HXX_
+ #include <cppuhelper/queryinterface.hxx>
+ #endif
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ namespace configmgr
+@@ -97,14 +97,14 @@ namespace configmgr
+ //-----------------------------------------------------------------------------
+ class ApiTreeImpl::ComponentAdapter : public lang::XEventListener
+ {
+-	vos::ORefCount m_refs;
++	oslInterlockedCount m_nRefs;
+ 
+ 	ApiTreeImpl* pOwner;
+ 
+ 	uno::Reference< lang::XComponent > xProvider;
+ 	uno::Reference< lang::XComponent > xParent;
+ public:
+-	ComponentAdapter(ApiTreeImpl& rParent) : pOwner(&rParent) {}
++	ComponentAdapter(ApiTreeImpl& rParent) : m_nRefs( 0 ), pOwner(&rParent) {}
+     virtual ~ComponentAdapter() {}
+ 
+ 	void clear();
+@@ -174,13 +174,13 @@ void ApiTreeImpl::ComponentAdapter::setParent(uno::Reference< lang::XComponent >
+ 
+ void SAL_CALL ApiTreeImpl::ComponentAdapter::acquire() throw()
+ {
+-	++m_refs;
++	osl_incrementInterlockedCount( &m_nRefs );
+ }
+ //-------------------------------------------------------------------------
+ 
+ void SAL_CALL ApiTreeImpl::ComponentAdapter::release() throw()
+ {
+-	if (--m_refs == 0)
++	if ( osl_decrementInterlockedCount( &m_nRefs ) == 0 )
+ 		delete this;
+ }
+ //-------------------------------------------------------------------------
+@@ -266,8 +266,8 @@ public:
+ 		{
+ 			if (pNew != pSource)
+ 			{
+-                OSL_ENSURE(m_xOptions.isValid(),"Cannot set IConfigListener without Options");
+-                if (m_xOptions.isValid())
++                OSL_ENSURE(m_xOptions.is(),"Cannot set IConfigListener without Options");
++                if (m_xOptions.is())
+                 {
+ 				    if (pSource)
+ 					    pSource->removeListener(m_xOptions->getRequestOptions(), this);
+@@ -287,13 +287,13 @@ public:
+ 
+     void setLocation(AbsolutePath const& _aLocation, TreeOptions const& _xOptions)
+ 	{
+-        OSL_ASSERT(_xOptions.isValid());
++        OSL_ASSERT(_xOptions.is());
+ 
+         UnoApiLock aGuard;
+ 
+ 		if (pSource && pParent)
+         {
+-            OSL_ASSERT(m_xOptions.isValid());
++            OSL_ASSERT(m_xOptions.is());
+ 			pSource->removeListener(m_xOptions->getRequestOptions(), this);
+         }
+ 
+@@ -311,9 +311,9 @@ public:
+ 		pParent = 0;
+ 		if (pSource)
+ 		{
+-            OSL_ASSERT(m_xOptions.isValid());
++            OSL_ASSERT(m_xOptions.is());
+ 			pSource->removeListener(m_xOptions->getRequestOptions(), this);
+-			m_xOptions.unbind();
++			m_xOptions.clear();
+             m_aLocationPath = AbsolutePath::root();
+ 		}
+ 
+@@ -332,12 +332,12 @@ public:
+ 				TreeOptions xOptions = m_xOptions;
+ 
+ 				pSource = 0;
+-				m_xOptions.unbind();
++				m_xOptions.clear();
+                 m_aLocationPath = AbsolutePath::root();
+ 
+ 				aGuard.clear();
+ 
+-				OSL_ASSERT(xOptions.isValid());
++				OSL_ASSERT(xOptions.is());
+                 pOrgSource->removeListener(xOptions->getRequestOptions(), this);
+ 			}
+ 		}
+@@ -376,8 +376,8 @@ configuration::DefaultProvider createDefaultProvider(
+     OProviderImpl& rProviderImpl        = rProvider.getProviderImpl();
+     rtl::Reference< IConfigDefaultProvider > xDefaultProvider  = rProviderImpl.getDefaultProvider();
+ 
+-    OSL_ASSERT(_xOptions.isValid());
+-    RequestOptions const aOptions = _xOptions.isValid() ? _xOptions->getRequestOptions() : RequestOptions();
++    OSL_ASSERT(_xOptions.is());
++    RequestOptions const aOptions = _xOptions.is() ? _xOptions->getRequestOptions() : RequestOptions();
+ 
+     return configuration::DefaultProvider::create(aTree,aOptions,xDefaultProvider,&rProviderImpl);
+ }
+@@ -553,7 +553,7 @@ bool ApiRootTreeImpl::disposeTree()
+ 
+ 	if (bDisposed) releaseData();
+ 
+-	if (!m_xOptions.isEmpty())
++	if (m_xOptions.is())
+ 	{
+ 		OSL_ENSURE(!bDisposed, "Disposing/Releasing should clear the options");
+ 		CFG_TRACE_INFO2("Api Root TreeImpl: data was not released in disposeTree");
+@@ -756,7 +756,7 @@ IConfigBroadcaster* ApiRootTreeImpl::implSetNotificationSource(IConfigBroadcaste
+ 	IConfigBroadcaster* pOld = m_pNotificationListener.is() ? m_pNotificationListener->getSource() : 0;
+ 	if (pOld != pNew)
+ 	{
+-		OSL_ENSURE(m_xOptions.isValid(), "Cannot change notification source without options");
++		OSL_ENSURE(m_xOptions.is(), "Cannot change notification source without options");
+ 
+ 		if (!m_pNotificationListener.is())
+ 			m_pNotificationListener = new NodeListener(*this);
+@@ -786,7 +786,7 @@ void ApiRootTreeImpl::implSetLocation(configuration::Tree const& _aTree)
+ 		m_pNotificationListener = new NodeListener(*this);
+ 
+ 	OSL_ENSURE(!m_aLocationPath.isRoot() && !m_aLocationPath.isDetached(), "Cannot reregister for notifications: setting empty location");
+-	OSL_ENSURE( m_xOptions.isValid(), "Cannot reregister for notifications: no options available" );
++	OSL_ENSURE( m_xOptions.is(), "Cannot reregister for notifications: no options available" );
+ 
+ 	m_pNotificationListener->setLocation(m_aLocationPath, m_xOptions);
+ }
+@@ -801,10 +801,10 @@ void ApiRootTreeImpl::releaseData()
+ 	OSL_ASSERT(aTree.isEmpty());
+ 
+ 	OSL_ENSURE( !m_aLocationPath.isRoot() && !m_aLocationPath.isDetached(), "Location still needed to release data" );
+-	OSL_ENSURE( m_xOptions.isValid(), "Options still needed to release data" );
++	OSL_ENSURE( m_xOptions.is(), "Options still needed to release data" );
+ 
+ 	getApiTree().getProvider().getProviderImpl().releaseSubtree(m_aLocationPath,m_xOptions->getRequestOptions());
+-	m_xOptions.unbind();
++	m_xOptions.clear();
+ 
+     m_aLocationPath = configuration::AbsolutePath::detachedRoot();
+ }
+diff --git a/configmgr/source/api2/apitreeimplobj.hxx b/configmgr/source/api2/apitreeimplobj.hxx
+index e63e05f..f175801 100644
+--- configmgr/source/api2/apitreeimplobj.hxx
++++ configmgr/source/api2/apitreeimplobj.hxx
+@@ -55,8 +55,8 @@
+ #include "utility.hxx"
+ #endif
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+@@ -92,7 +92,7 @@ namespace configmgr
+ 		class Factory;
+ 		class Notifier;
+ 		class NotifierImpl;
+-		typedef vos::ORef<NotifierImpl> NotifierImplHolder;
++		typedef rtl::Reference<NotifierImpl> NotifierImplHolder;
+ //-----------------------------------------------------------------------------
+ 		class ObjectRegistry;
+ 		typedef rtl::Reference<ObjectRegistry> ObjectRegistryHolder;
+@@ -101,7 +101,7 @@ namespace configmgr
+ 		typedef uno::Reference<UnoInterface> UnoInterfaceRef;
+ 		typedef uno::Reference<com::sun::star::script::XTypeConverter>	UnoTypeConverter;
+ 
+-        typedef vos::ORef< OOptions > TreeOptions;
++        typedef rtl::Reference< OOptions > TreeOptions;
+ //-----------------------------------------------------------------------------
+ // API object implementation wrappers 
+ //-------------------------------------------------------------------------
+diff --git a/configmgr/source/api2/broadcaster.cxx b/configmgr/source/api2/broadcaster.cxx
+index b03bcea..85d872a 100644
+--- configmgr/source/api2/broadcaster.cxx
++++ configmgr/source/api2/broadcaster.cxx
+@@ -68,8 +68,8 @@
+ #include "apitreeimplobj.hxx"
+ #endif
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ #ifndef INCLUDED_MAP
+@@ -112,10 +112,10 @@ namespace configmgr
+ 		template <class T>
+ 		struct LessORefBodyPtr
+ 		{
+-			typedef vos::ORef<T> Ref;
++			typedef rtl::Reference<T> Ref;
+ 			bool operator()(Ref const& lhs, Ref const& rhs) const
+ 			{ 
+-				return ptr_less(lhs.getBodyPtr(), rhs.getBodyPtr()); 
++				return ptr_less(lhs.get(), rhs.get()); 
+ 			}
+ 
+ 			std::less<T*> ptr_less;
+@@ -157,7 +157,7 @@ namespace configmgr
+ // ---------------------------------------------------------------------------------------------------
+ // class Broadcaster::Impl
+ // ---------------------------------------------------------------------------------------------------
+-	class Broadcaster::Impl : public vos::OReference
++	class Broadcaster::Impl : public salhelper::SimpleReferenceObject
+ 	{
+ 	private:
+ 		NotifierData m_aNotifierData;
+@@ -174,10 +174,10 @@ namespace configmgr
+ 
+ 		void notifyRootListeners(NodeChangesInformation const& aChanges);
+ 
+-		static vos::ORef<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChange const& aChange, bool bLocal);
+-		static vos::ORef<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChanges const& aChange, bool bLocal);
+-		static vos::ORef<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChangeInformation const& aChange, bool bLocal);
+-		static vos::ORef<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChangesInformation const& aChange, bool bLocal);
++		static rtl::Reference<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChange const& aChange, bool bLocal);
++		static rtl::Reference<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChanges const& aChange, bool bLocal);
++		static rtl::Reference<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChangeInformation const& aChange, bool bLocal);
++		static rtl::Reference<Impl> create(NotifierHolder const& rNotifierImpl, ApiTreeRef const& pTreeImpl, NodeChangesInformation const& aChange, bool bLocal);
+ 
+ 	private:
+ 		virtual void doQueryConstraints(NodeChangesInformation const& aChanges) = 0;
+@@ -200,7 +200,7 @@ namespace configmgr
+ 		typedef std::set< configuration::NodeID >       NodeSet;
+ 		typedef std::set< configuration::SubNodeID > SubNodeSet;
+ 	// -----------------------------------------------------------------------------------------------
+-		typedef vos::ORef< Broadcaster::Impl > BroadcasterImplRef;
++		typedef rtl::Reference< Broadcaster::Impl > BroadcasterImplRef;
+ 	// -----------------------------------------------------------------------------------------------
+ 		
+ 		class EmptyBroadcaster_Impl : public Broadcaster::Impl
+@@ -295,7 +295,7 @@ namespace configmgr
+ 	// -----------------------------------------------------------------------------------------------
+ 		class SingleTreeBroadcaster_Impl : public Broadcaster::Impl
+ 		{
+-			typedef std::vector< vos::ORef<NodeLocalBroadcaster_Impl> > BroadcasterList;
++			typedef std::vector< rtl::Reference<NodeLocalBroadcaster_Impl> > BroadcasterList;
+ 			BroadcasterList m_aBroadcasters;
+ 
+ 			SingleTreeBroadcaster_Impl(NotifierData const& rTreeNotifierData, BroadcasterList& aBroadcasters);
+@@ -374,7 +374,7 @@ namespace configmgr
+ 			{
+ 				NotifierData aNotifierData( findNotifier(*it,pTreeImpl) );
+ 
+-				if (aNotifierData.first.isValid())
++				if (aNotifierData.first.is())
+ 				{
+ 					aNotifiers.insert( aNotifierData );
+ 					OSL_ENSURE( aNotifiers[aNotifierData.first] == aNotifierData.second, "Different Api Trees for the same notifier" );
+@@ -820,7 +820,7 @@ namespace configmgr
+ 				return 0;
+ 
+ 			else if (aNodecasters.size() == 1)
+-				return aNodecasters.begin()->getBodyPtr();
++				return aNodecasters.begin()->get();
+ 
+ 			else
+ 				return new SingleTreeBroadcaster_Impl(rRootNotifier, aNodecasters);
+@@ -859,7 +859,7 @@ namespace configmgr
+ 			
+ 		bool MultiTreeBroadcaster_Impl::selectChanges(NodeChangesInformation& rSelected, NodeChangesInformation const& aOriginal, NotifierData const& aSelector)
+ 		{
+-			OSL_ASSERT(aSelector.first.isValid());
++			OSL_ASSERT(aSelector.first.is());
+ 			OSL_ASSERT(aSelector.second.is());
+ 
+ 			OSL_ASSERT(rSelected.empty()); // nothing in there yet
+@@ -886,7 +886,7 @@ namespace configmgr
+ 				if ( selectChanges(aSelectedChanges, aChanges, *it))
+ 				{
+ 					BroadcasterImplRef pSelectedImpl = SingleTreeBroadcaster_Impl::create(rRootNotifier, *it, aSelectedChanges);
+-					if (pSelectedImpl.isValid())
++					if (pSelectedImpl.is())
+ 						aTreecasters.push_back(pSelectedImpl);
+ 				}
+ 			}
+@@ -952,7 +952,7 @@ namespace configmgr
+ 			// can't create a matching change - must still create an empty one
+ 		}
+ 
+-		if (pRet.isEmpty())
++		if (!pRet.is())
+ 			pRet = EmptyBroadcaster_Impl::create( NotifierData(rNotifierImpl,pTreeImpl) );
+ 
+ 		return pRet;
+@@ -970,7 +970,7 @@ namespace configmgr
+ 		}
+ 		else
+ 		{
+-			OSL_ENSURE(aChanges.isEmpty(), "Cannot get information for changes - cannot notify");
++			OSL_ENSURE(!aChanges.is(), "Cannot get information for changes - cannot notify");
+ 
+ 			// make an empty one below
+ 			BroadcasterImplRef pRet = EmptyBroadcaster_Impl::create( aRootData );
+@@ -1006,7 +1006,7 @@ namespace configmgr
+ 			// can't create a matching change - must still create an empty one
+ 		}
+ 
+-		if (pRet.isEmpty())
++		if (!pRet.is())
+ 			pRet = EmptyBroadcaster_Impl::create( NotifierData(rNotifierImpl,pTreeImpl) );
+ 
+ 		return pRet;
+@@ -1043,7 +1043,7 @@ namespace configmgr
+ 			// else: empty
+ 		}
+ 
+-		if (pRet.isEmpty())
++		if (!pRet.is())
+ 			pRet = EmptyBroadcaster_Impl::create( aRootData );
+ 
+ 		return pRet;
+@@ -1132,7 +1132,7 @@ namespace configmgr
+ 		if (pRootTree.is())
+ 		{
+ 			NotifierHolder aRootNotifier = BroadcasterHelper::getImpl(pRootTree->getNotifier());
+-			if (aRootNotifier.isValid())
++			if (aRootNotifier.is())
+ 			{
+ 				uno::Reference< css::util::XChangesListener > const * const pSelect = 0;
+ 
+@@ -1172,32 +1172,32 @@ namespace configmgr
+ Broadcaster::Broadcaster(Notifier const& aNotifier, NodeChange const& aChange, bool bLocal)
+ : m_pImpl( Impl::create(aNotifier.m_aImpl,ApiTreeRef(aNotifier.m_pTree),aChange,bLocal) )
+ {
+-	OSL_ASSERT(m_pImpl.isValid());
++	OSL_ASSERT(m_pImpl.is());
+ }
+ // ---------------------------------------------------------------------------------------------------
+ Broadcaster::Broadcaster(Notifier const& aNotifier, NodeChanges const& aChanges, bool bLocal)
+ : m_pImpl( Impl::create(aNotifier.m_aImpl,ApiTreeRef(aNotifier.m_pTree),aChanges,bLocal) )
+ {
+-	OSL_ASSERT(m_pImpl.isValid());
++	OSL_ASSERT(m_pImpl.is());
+ }
+ // ---------------------------------------------------------------------------------------------------
+ Broadcaster::Broadcaster(Notifier const& aNotifier, NodeChangeInformation const& aChange, bool bLocal)
+ : m_pImpl( Impl::create(aNotifier.m_aImpl,ApiTreeRef(aNotifier.m_pTree),aChange,bLocal) )
+ {
+-	OSL_ASSERT(m_pImpl.isValid());
++	OSL_ASSERT(m_pImpl.is());
+ }
+ // ---------------------------------------------------------------------------------------------------
+ Broadcaster::Broadcaster(Notifier const& aNotifier, NodeChangesInformation const& aChanges, bool bLocal)
+ : m_pImpl( Impl::create(aNotifier.m_aImpl,ApiTreeRef(aNotifier.m_pTree),aChanges,bLocal) )
+ {
+-	OSL_ASSERT(m_pImpl.isValid());
++	OSL_ASSERT(m_pImpl.is());
+ }
+ // ---------------------------------------------------------------------------------------------------
+ 
+ Broadcaster::Broadcaster(Broadcaster const& aOther)
+ : m_pImpl(aOther.m_pImpl)
+ {
+-	OSL_ASSERT(m_pImpl.isValid());
++	OSL_ASSERT(m_pImpl.is());
+ }
+ // ---------------------------------------------------------------------------------------------------
+ 
+@@ -1218,7 +1218,7 @@ void Broadcaster::queryConstraints(NodeChange const& aChange) throw(beans::Prope
+ 
+ void Broadcaster::queryConstraints(NodeChanges const& aChanges, bool bSingleBase) throw(beans::PropertyVetoException)
+ {
+-	OSL_ENSURE(!aChanges.isEmpty(),"Constraint query without a change !");
++	OSL_ENSURE(aChanges.is(),"Constraint query without a change !");
+ 		
+     try
+     {
+@@ -1265,7 +1265,7 @@ void Broadcaster::notifyListeners(NodeChangeInformation const& aChange) throw()
+ 
+ void Broadcaster::notifyListeners(NodeChanges const& aChanges, bool bSingleBase) throw()
+ {
+-	OSL_ENSURE(!aChanges.isEmpty(),"Notifying without a change !");
++	OSL_ENSURE(aChanges.is(),"Notifying without a change !");
+ 
+     try
+     {
+diff --git a/configmgr/source/api2/broadcaster.hxx b/configmgr/source/api2/broadcaster.hxx
+index bc04aec..800c6fb 100644
+--- configmgr/source/api2/broadcaster.hxx
++++ configmgr/source/api2/broadcaster.hxx
+@@ -40,7 +40,7 @@
+ #include <com/sun/star/beans/PropertyVetoException.hpp>
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+ namespace configmgr
+ {
+@@ -93,7 +93,7 @@ namespace configmgr
+ 			
+ 			class Impl;
+ 		private:
+-			vos::ORef<Impl> m_pImpl;			
++			rtl::Reference<Impl> m_pImpl;			
+ 		private:
+ 			void operator=(Broadcaster const& aOther);
+ 		};
+diff --git a/configmgr/source/api2/committer.cxx b/configmgr/source/api2/committer.cxx
+index c046050..b6e923b 100644
+--- configmgr/source/api2/committer.cxx
++++ configmgr/source/api2/committer.cxx
+@@ -105,9 +105,9 @@ void Committer::commit()
+ 	ApiTreeImpl& rApiTree = m_rTree.getApiTree();
+     
+ 	OSL_PRECOND(!m_rTree.getLocation().isRoot(),"INTERNAL ERROR: Empty location used.");
+-	OSL_PRECOND(m_rTree.getOptions().isValid(),"INTERNAL ERROR: Invalid Options used.");
++	OSL_PRECOND(m_rTree.getOptions().is(),"INTERNAL ERROR: Invalid Options used.");
+ 
+-    if (!m_rTree.getOptions().isValid()) return;
++    if (!m_rTree.getOptions().is()) return;
+ 
+     RequestOptions aOptions = m_rTree.getOptions()->getRequestOptions();
+ 
+diff --git a/configmgr/source/api2/confignotifier.hxx b/configmgr/source/api2/confignotifier.hxx
+index ccb273e..d676886 100644
+--- configmgr/source/api2/confignotifier.hxx
++++ configmgr/source/api2/confignotifier.hxx
+@@ -45,7 +45,7 @@
+ #ifndef CONFIGMGR_UTILITY_HXX_
+ #include "utility.hxx"
+ #endif
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+ #ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
+ #include <com/sun/star/lang/DisposedException.hpp>
+@@ -101,7 +101,7 @@ namespace configmgr
+ 		class Broadcaster;
+ 		class NotifierImpl;
+ 		class ApiTreeImpl;
+-		typedef vos::ORef<NotifierImpl> NotifierHolder;
++		typedef rtl::Reference<NotifierImpl> NotifierHolder;
+ 
+ 		namespace css = ::com::sun::star;
+ // ---------------------------------------------------------------------------------------------------
+diff --git a/configmgr/source/api2/confprovider2.cxx b/configmgr/source/api2/confprovider2.cxx
+index 8c354b1..5dd179e 100644
+--- configmgr/source/api2/confprovider2.cxx
++++ configmgr/source/api2/confprovider2.cxx
+@@ -89,7 +89,7 @@ namespace configmgr
+ 	namespace lang = css::lang;
+ 	namespace beans = css::beans;
+ 	using ::rtl::OUString;
+-	using ::vos::ORef;
++	using ::rtl::Reference;
+ 	using namespace osl;
+ 
+ 	namespace 
+diff --git a/configmgr/source/api2/confprovider2.hxx b/configmgr/source/api2/confprovider2.hxx
+index b9ab461..33bdac6 100644
+--- configmgr/source/api2/confprovider2.hxx
++++ configmgr/source/api2/confprovider2.hxx
+@@ -50,7 +50,7 @@ namespace configmgr
+ 	namespace uno  = css::uno;
+ 	namespace lang = css::lang;
+ 	using ::rtl::OUString;
+-	using ::vos::ORef;
++	using ::rtl::Reference;
+ 	
+ 	class OConfigurationProviderImpl;
+    
+diff --git a/configmgr/source/api2/groupobjects.hxx b/configmgr/source/api2/groupobjects.hxx
+index 493a28e..3343b73 100644
+--- configmgr/source/api2/groupobjects.hxx
++++ configmgr/source/api2/groupobjects.hxx
+@@ -226,7 +226,7 @@ namespace configmgr
+ 	{
+ 	public:
+ 		// Construction/Destruction 
+-		ORootElementGroupInfo(ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++		ORootElementGroupInfo(ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 		: m_aAccessElement(static_cast<css::lang::XComponent*>(this),rProvider,aTree, _xOptions)
+ 		{
+ 		}
+@@ -260,7 +260,7 @@ namespace configmgr
+ 	{
+ 	public:
+ 		// Construction/Destruction 
+-		ORootElementGroupUpdate(ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++		ORootElementGroupUpdate(ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 		: m_aAccessElement(static_cast<css::lang::XComponent*>(this),rProvider,aTree, _xOptions)
+ 		{
+ 		}
+diff --git a/configmgr/source/api2/notifierimpl.hxx b/configmgr/source/api2/notifierimpl.hxx
+index 4f80b68..40d5d3c 100644
+--- configmgr/source/api2/notifierimpl.hxx
++++ configmgr/source/api2/notifierimpl.hxx
+@@ -50,7 +50,7 @@
+ 
+ #include "propertiesfilterednotifier.hxx"
+ 
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ 
+ namespace configmgr
+ {
+@@ -59,7 +59,7 @@ namespace configmgr
+ // ---------------------------------------------------------------------------------------------------
+ 
+ 		/// manages collections of event listeners observing a whole config tree, thread-safe
+-		class NotifierImpl : public vos::OReference
++		class NotifierImpl : public salhelper::SimpleReferenceObject
+ 		{
+ 		public:
+ 			typedef configuration::SubNodeID        SubNodeID;
+diff --git a/configmgr/source/api2/objectregistry.hxx b/configmgr/source/api2/objectregistry.hxx
+index e2915b0..3a12457 100644
+--- configmgr/source/api2/objectregistry.hxx
++++ configmgr/source/api2/objectregistry.hxx
+@@ -41,7 +41,7 @@
+ #endif
+ 
+ #include <osl/mutex.hxx>
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ 
+ #include <hash_map>
+ #include "tracer.hxx"
+@@ -53,7 +53,7 @@ namespace configmgr
+ 
+ 		class NodeElement;
+ 
+-		class ObjectRegistry : public vos::OReference
++		class ObjectRegistry : public salhelper::SimpleReferenceObject
+ 		{
+ 		public:
+ 			typedef configuration::NodeID Key;
+diff --git a/configmgr/source/api2/propertiesfilterednotifier.cxx b/configmgr/source/api2/propertiesfilterednotifier.cxx
+index d2a0bed..1567527 100644
+--- configmgr/source/api2/propertiesfilterednotifier.cxx
++++ configmgr/source/api2/propertiesfilterednotifier.cxx
+@@ -64,7 +64,7 @@ PropertiesFilteredNotifier::PropertiesFilteredNotifier(
+ 	Reference< beans::XPropertiesChangeListener >const& xTarget,
+ 	Sequence< OUString > const& aFilterNames
+ )
+-: m_aRefCount()
++: m_nRefCount( 0 )
+ , m_xTarget(xTarget)
+ , m_aFilterNames(aFilterNames)
+ {
+@@ -80,13 +80,13 @@ PropertiesFilteredNotifier::~PropertiesFilteredNotifier()
+ 
+ void SAL_CALL PropertiesFilteredNotifier::acquire() throw()
+ {
+-	m_aRefCount.acquire();
++	osl_incrementInterlockedCount( &m_nRefCount );
+ }
+ //-----------------------------------------------------------------------------
+ 
+ void SAL_CALL PropertiesFilteredNotifier::release(  ) throw()
+ {
+-	if (m_aRefCount.release() == 0)
++	if ( osl_decrementInterlockedCount( &m_nRefCount ) == 0 )
+ 		delete this;
+ }
+ //-----------------------------------------------------------------------------
+diff --git a/configmgr/source/api2/propertiesfilterednotifier.hxx b/configmgr/source/api2/propertiesfilterednotifier.hxx
+index 3e7ed28..68b1810 100644
+--- configmgr/source/api2/propertiesfilterednotifier.hxx
++++ configmgr/source/api2/propertiesfilterednotifier.hxx
+@@ -40,7 +40,7 @@
+ #include <com/sun/star/beans/XPropertiesChangeListener.hpp>
+ #endif
+ 
+-#include <vos/refernce.hxx>
++#include <osl/interlck.h>
+ 
+ namespace configmgr
+ {
+@@ -76,7 +76,7 @@ namespace configmgr
+ 
+ 		bool implAccept(const ::com::sun::star::beans::PropertyChangeEvent& evt) const;
+ 
+-		::vos::ORefCount m_aRefCount;
++		oslInterlockedCount m_nRefCount;
+ 		::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener > m_xTarget;
+ 		::com::sun::star::uno::Sequence< ::rtl::OUString > m_aFilterNames;
+ 	};
+diff --git a/configmgr/source/api2/provider.cxx b/configmgr/source/api2/provider.cxx
+index caeae69..960a225 100644
+--- configmgr/source/api2/provider.cxx
++++ configmgr/source/api2/provider.cxx
+@@ -75,7 +75,7 @@ namespace configmgr
+ 	namespace lang = css::lang;
+ 	namespace beans = css::beans;
+ 	using ::rtl::OUString;
+-	using ::vos::ORef;
++	using ::rtl::Reference;
+ 	using namespace osl;
+ 
+ 	// -----------------------------------------------------------------------------
+diff --git a/configmgr/source/api2/provider.hxx b/configmgr/source/api2/provider.hxx
+index f6d9b3d..00385c6 100644
+--- configmgr/source/api2/provider.hxx
++++ configmgr/source/api2/provider.hxx
+@@ -60,8 +60,8 @@
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CPPUHELPER_IMPLBASE4_HXX_
+ #include <cppuhelper/implbase4.hxx>
+@@ -78,7 +78,7 @@ namespace configmgr
+ 	namespace beans = css::beans;
+     namespace util = css::util;
+ 	using ::rtl::OUString;
+-	using ::vos::ORef;	
++	using ::rtl::Reference;	
+ 
+ 	class Module;	
+ 	class ContextReader;
+diff --git a/configmgr/source/api2/setobjects.hxx b/configmgr/source/api2/setobjects.hxx
+index 632103b..242d336 100644
+--- configmgr/source/api2/setobjects.hxx
++++ configmgr/source/api2/setobjects.hxx
+@@ -289,7 +289,7 @@ namespace configmgr
+ 	{
+ 	public:
+ 		// Construction/Destruction 
+-		ORootElementSetInfo(ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++		ORootElementSetInfo(ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 			: m_aAccessElement(static_cast<css::lang::XComponent*>(this),rProvider,aTree,_xOptions)
+ 		{
+ 		}
+@@ -321,7 +321,7 @@ namespace configmgr
+ 	{
+ 	public:
+ 		// Construction/Destruction 
+-		ORootElementTreeSetUpdate(ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++		ORootElementTreeSetUpdate(ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 		: m_aAccessElement(static_cast<css::lang::XComponent*>(this),rProvider,aTree, _xOptions)
+ 		{
+ 		}
+@@ -355,7 +355,7 @@ namespace configmgr
+ 	{
+ 	public:
+ 		// Construction/Destruction 
+-		ORootElementValueSetUpdate(ApiProvider& rProvider, configuration::Tree const& aTree, vos::ORef< OOptions >const& _xOptions)
++		ORootElementValueSetUpdate(ApiProvider& rProvider, configuration::Tree const& aTree, rtl::Reference< OOptions >const& _xOptions)
+ 		: m_aAccessElement(static_cast<css::lang::XComponent*>(this),rProvider,aTree,_xOptions)
+ 		{
+ 		}
+diff --git a/configmgr/source/inc/commontypes.hxx b/configmgr/source/inc/commontypes.hxx
+index c7367e9..d9e68cf 100644
+--- configmgr/source/inc/commontypes.hxx
++++ configmgr/source/inc/commontypes.hxx
+@@ -60,7 +60,7 @@ namespace configmgr
+ //==========================================================================
+ //= IInterface
+ //==========================================================================
+-/** abstract base class for objects which may be aquired by ORef's
++/** abstract base class for objects which may be aquired by rtl::Reference's
+ 	(in opposite to the IReference, classes deriving from this IInterface can be
+ 	derived from XInterface, too)
+ */
+diff --git a/configmgr/source/inc/options.hxx b/configmgr/source/inc/options.hxx
+index d4fe629..c586464 100644
+--- configmgr/source/inc/options.hxx
++++ configmgr/source/inc/options.hxx
+@@ -50,8 +50,8 @@
+ #ifndef CONFIGMGR_UTILITY_HXX_
+ #include "utility.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace configmgr
+@@ -111,7 +111,7 @@ namespace configmgr
+         void enableAsync(bool _bEnable)         
+         { m_aRequestOptions.enableAsync(_bEnable); }
+ 	};
+-    typedef vos::ORef<OOptions> OptionsRef;
++    typedef rtl::Reference<OOptions> OptionsRef;
+ 
+ 	struct ltOptions
+ 	{
+diff --git a/configmgr/source/treecache/cachewritescheduler.cxx b/configmgr/source/treecache/cachewritescheduler.cxx
+index b954ab2..50d0ae3 100644
+--- configmgr/source/treecache/cachewritescheduler.cxx
++++ configmgr/source/treecache/cachewritescheduler.cxx
+@@ -62,7 +62,7 @@ void OCacheWriteScheduler::stopAndWriteCache()
+     OSL_ASSERT(UnoApiLock::isHeld());
+ 	CFG_TRACE_INFO("Cancelling all cache writings, Stopping timer");
+ 	
+-	if (m_xTimer.isValid())
++	if (m_xTimer.is())
+ 		m_xTimer->dispose(); // just to be sure	
+ 
+ 	runWriter();
+diff --git a/configmgr/source/treecache/cachewritescheduler.hxx b/configmgr/source/treecache/cachewritescheduler.hxx
+index cd8edb6..26e5e03 100644
+--- configmgr/source/treecache/cachewritescheduler.hxx
++++ configmgr/source/treecache/cachewritescheduler.hxx
+@@ -54,8 +54,8 @@
+ #ifndef _VOS_TIMER_HXX_
+ #include <vos/timer.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ 
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+@@ -93,7 +93,7 @@ namespace configmgr
+ 		};
+ 		friend void Timer::onShot();
+ 	private:
+-	    vos::ORef<Timer>	      m_xTimer;
++	    rtl::Reference<Timer>	      m_xTimer;
+ 	    backend::CacheController &m_rTreeManager;
+ 	    CacheWriteList	      m_aWriteList;
+ 	    TimeInterval	      m_aWriteInterval;
+diff --git a/configmgr/source/treecache/disposetimer.cxx b/configmgr/source/treecache/disposetimer.cxx
+index 0ca82d5..df23693 100644
+--- configmgr/source/treecache/disposetimer.cxx
++++ configmgr/source/treecache/disposetimer.cxx
+@@ -119,7 +119,7 @@ void OTreeDisposeScheduler::stopAndClearTasks()
+ 	CFG_TRACE_INFO("Cancelling all data cleanup tasks, Stopping Cleanup timer");
+ 	CFG_TRACE_INFO_NI("- %d cleanup tasks were pending", int(m_aAgenda.size()) );
+ 
+-	if (m_xTimer.isValid())
++	if (m_xTimer.is())
+ 		m_xTimer->dispose(); // just to be sure
+ 
+ 	m_aAgenda.clear();
+diff --git a/configmgr/source/treecache/disposetimer.hxx b/configmgr/source/treecache/disposetimer.hxx
+index 29b727f..a61eaa0 100644
+--- configmgr/source/treecache/disposetimer.hxx
++++ configmgr/source/treecache/disposetimer.hxx
+@@ -50,8 +50,8 @@
+ #ifndef _VOS_TIMER_HXX_
+ #include <vos/timer.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_LANG_WRAPPEDTARGETEXCEPTION_HPP_ 
+@@ -103,7 +103,7 @@ namespace configmgr
+ 
+ 	private:
+         Agenda				m_aAgenda;
+-		vos::ORef<Timer>	m_xTimer;
++		rtl::Reference<Timer>	m_xTimer;
+ 		CacheManager&		m_rTreeManager;
+ 
+ 		TimeInterval m_aCleanupDelay;
+diff --git a/configmgr/source/treecache/invalidatetree.cxx b/configmgr/source/treecache/invalidatetree.cxx
+index e3f589a..5a98bb9 100644
+--- configmgr/source/treecache/invalidatetree.cxx
++++ configmgr/source/treecache/invalidatetree.cxx
+@@ -108,7 +108,7 @@ std::auto_ptr<SubtreeChange> createDiffs(data::NodeAccess const& _aCachedNode,
+ // -----------------------------------------------------------------------------	
+ #if 0
+ std::auto_ptr<ISubtree> TreeManager::loadNodeFromSession( AbsolutePath const& _aAbsoluteSubtreePath, 
+-													 const vos::ORef < OOptions >& _xOptions,
++													 const rtl::Reference < OOptions >& _xOptions,
+ 													 sal_Int16 _nMinLevels)  CFG_UNO_THROW_ALL()
+ {
+ 	TreeInfo* pInfo = this->requestTreeInfo(_xOptions,true /*create TreeInfo*/);
+diff --git a/configmgr/source/treemgr/configset.cxx b/configmgr/source/treemgr/configset.cxx
+index 5d05b2f..855f8e6 100644
+--- configmgr/source/treemgr/configset.cxx
++++ configmgr/source/treemgr/configset.cxx
+@@ -67,8 +67,8 @@
+ #include "setnodeimpl.hxx"
+ #endif
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ namespace configmgr
+diff --git a/configmgr/source/treemgr/setnodeimpl.hxx b/configmgr/source/treemgr/setnodeimpl.hxx
+index 4172673..2ba6ed2 100644
+--- configmgr/source/treemgr/setnodeimpl.hxx
++++ configmgr/source/treemgr/setnodeimpl.hxx
+@@ -113,7 +113,7 @@ namespace configmgr
+             ElementTreeData(ElementTreeHolder const& _tree, bool _bDefault) 
+              : tree(_tree), inDefault(_bDefault) {}
+ 
+-            // ORef compatibility
++            // rtl::Reference compatibility
+             sal_Bool isValid() const { return this->tree.is(); }
+             ElementTreeImpl* get() const { return this->tree.get(); }
+             ElementTreeHolder const& operator->() const { return this->tree; }
+diff --git a/configmgr/workben/local_io/cfglocal.cxx b/configmgr/workben/local_io/cfglocal.cxx
+index 0a3b119..3cf1777 100644
+--- configmgr/workben/local_io/cfglocal.cxx
++++ configmgr/workben/local_io/cfglocal.cxx
+@@ -455,7 +455,7 @@ void _cdecl main( int argc, char * argv[] )
+ 		return;
+ 	}
+ 
+-	ORef< OSessionListener > xListener = new OSessionListener;
++	rtl::Reference< OSessionListener > xListener = new OSessionListener;
+ 	{
+ /*
+ 		ORemoteSession aSession(xORB);
+@@ -516,7 +516,7 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ 		return;
+ 	}
+ 	
+-	// aSession.setListener(xListener.getBodyPtr());
++	// aSession.setListener(xListener.get());
+ 	
+ 	OCondition aWaitForSomething;
+ 	aWaitForSomething.reset();
+@@ -524,8 +524,8 @@ void testSession(const Reference< XMultiServiceFactory > &xORB, bool bPrint)
+ 	// --------- openNode ----------
+ 	char* pWriterNode = "com.sun.star.Setup/Modules";
+ 	if (bPrint) printf("\nsending an openNode request for %s ...\n", pWriterNode);
+-	ORef< OOpenNodeCallback > xOpenCallback = new OOpenNodeCallback(aWaitForSomething);
+-	aSession.openNode(UNI_STRING(pWriterNode), 2, xOpenCallback.getBodyPtr());
++	rtl::Reference< OOpenNodeCallback > xOpenCallback = new OOpenNodeCallback(aWaitForSomething);
++	aSession.openNode(UNI_STRING(pWriterNode), 2, xOpenCallback.get());
+ 	
+ 	aTimeout.Seconds = 30;
+ 	switch (aWaitForSomething.wait(&aTimeout))
+diff --git a/configmgr/workben/local_io/simpletest.cxx b/configmgr/workben/local_io/simpletest.cxx
+index 6a19214..0eca65e 100644
+--- configmgr/workben/local_io/simpletest.cxx
++++ configmgr/workben/local_io/simpletest.cxx
+@@ -660,9 +660,9 @@ void hash_test()
+ // Fri Nov 10 15:10:45 2000
+ // -----------------------------------------------------------------------------
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+-class Options : public vos::OReference
++class Options : public salhelper::SimpleReferenceObject
+ {
+ 	int m_aValue;
+ public:
+@@ -674,18 +674,18 @@ public:
+ 
+ class A
+ {
+-	vos::ORef<Options> m_aOptions;
++	rtl::Reference<Options> m_aOptions;
+ public:
+ 	
+-	vos::ORef<Options> getOptions() {return m_aOptions;}
+-	void setOptions(vos::ORef<Options>& _aOptions) {
++	rtl::Reference<Options> getOptions() {return m_aOptions;}
++	void setOptions(rtl::Reference<Options>& _aOptions) {
+ 		m_aOptions = _aOptions;
+ 	}
+ };
+ 
+ void testRefs()
+ {
+-	vos::ORef<Options> aO = new Options;
++	rtl::Reference<Options> aO = new Options;
+ 	aO->setValue(10);
+ 
+ 	A a,b;
+diff --git a/configmgr/workben/memory/treeload.hxx b/configmgr/workben/memory/treeload.hxx
+index 8327cf5..65182fc 100644
+--- configmgr/workben/memory/treeload.hxx
++++ configmgr/workben/memory/treeload.hxx
+@@ -32,7 +32,7 @@ class OTreeLoad
+ {
+ 	// LocalSession* m_pLocalSession; // in TreeMgr
+ 	TreeManager* m_pTreeMgr;
+-	::vos::ORef<OOptions>		m_xDefaultOptions;
++	::rtl::Reference<OOptions>		m_xDefaultOptions;
+ 	uno::Reference<lang::XMultiServiceFactory> m_xServiceProvider;
+ 
+ public:
+diff --git a/connectivity/inc/connectivity/FValue.hxx b/connectivity/inc/connectivity/FValue.hxx
+index 5d7ca6c..d3342ae 100644
+--- connectivity/inc/connectivity/FValue.hxx
++++ connectivity/inc/connectivity/FValue.hxx
+@@ -51,8 +51,8 @@
+ #ifndef _COMPHELPER_STLTYPES_HXX_
+ #include <comphelper/stl_types.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include "connectivity/CommonTools.hxx"
+@@ -374,7 +374,7 @@ namespace connectivity
+ 	};
+ 
+ 	/// ORowSetValueDecorator decorates a ORowSetValue so the value is "refcounted"
+-	class ORowSetValueDecorator	: public ::vos::OReference
++	class ORowSetValueDecorator	: public ::salhelper::SimpleReferenceObject
+ 	{
+ 		ORowSetValue	m_aValue;	// my own value
+ 	public:
+@@ -394,7 +394,7 @@ namespace connectivity
+ 		inline void setModified(sal_Bool _bModified)				{ m_aValue.setModified(_bModified); }
+ 
+ 	};
+-	typedef ::vos::ORef<ORowSetValueDecorator> ORowSetValueDecoratorRef;
++	typedef ::rtl::Reference<ORowSetValueDecorator> ORowSetValueDecoratorRef;
+ 
+ 	// -------------------------------------------------------------------------
+ 	/// TSetBound is a unary_function to set the bound value with e.q. for_each call
+@@ -455,12 +455,12 @@ namespace connectivity
+ 		sal_Int32 getParameterIndex(sal_Int32 _nId) const { return m_nParameterIndexes[_nId]; }
+ 	};
+ 
+-	typedef ::vos::ORef< OAssignValues > ORefAssignValues;
++	typedef ::rtl::Reference< OAssignValues > ORefAssignValues;
+ 
+ 
+ 
+-	typedef ::vos::ORef< OValueVector >					OValueRow;
+-	typedef ::vos::ORef< OValueRefVector >				OValueRefRow;
++	typedef ::rtl::Reference< OValueVector >					OValueRow;
++	typedef ::rtl::Reference< OValueRefVector >				OValueRefRow;
+ }
+ 
+ #endif // #ifndef _CONNECTIVITY_FILE_VALUE_HXX_
+diff --git a/connectivity/inc/connectivity/PColumn.hxx b/connectivity/inc/connectivity/PColumn.hxx
+index de19d20..e2edd10 100644
+--- connectivity/inc/connectivity/PColumn.hxx
++++ connectivity/inc/connectivity/PColumn.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include "connectivity/CommonTools.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATA_HPP_
+@@ -111,7 +111,7 @@ namespace connectivity
+         public:
+             /** creates a collection of OParseColumn, as described by a result set meta data instance.
+             */
+-            static ::vos::ORef< OSQLColumns >
++            static ::rtl::Reference< OSQLColumns >
+                 createColumnsForResultSet(
+                     const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData >& _rxResMetaData,
+                     const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxDBMetaData
+diff --git a/connectivity/inc/connectivity/sqliterator.hxx b/connectivity/inc/connectivity/sqliterator.hxx
+index 06cbb58..26f5f89 100644
+--- connectivity/inc/connectivity/sqliterator.hxx
++++ connectivity/inc/connectivity/sqliterator.hxx
+@@ -56,8 +56,8 @@
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include "connectivity/CommonTools.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CPPUHELPER_WEAK_HXX_
+ #include <cppuhelper/weak.hxx>
+@@ -91,11 +91,11 @@ namespace connectivity
+ 		const OSQLParseNode*				            m_pParseTree;		// aktueller ParseTree
+ 		const OSQLParser&					            m_rParser;			// if set used for general error messages from the context
+ 		OSQLStatementType					            m_eStatementType;	// Art des Statements
+-		::vos::ORef<OSQLColumns>			            m_aSelectColumns;	// alle Spalten aus dem Select-Clause
+-		::vos::ORef<OSQLColumns>			            m_aParameters;		// all parameters
+-		::vos::ORef<OSQLColumns>			            m_aGroupColumns;	// the group by columns
+-		::vos::ORef<OSQLColumns>			            m_aOrderColumns;	// the order by columns
+-		::vos::ORef<OSQLColumns>			            m_aCreateColumns;	// the columns for Create table clause
++		::rtl::Reference<OSQLColumns>			            m_aSelectColumns;	// alle Spalten aus dem Select-Clause
++		::rtl::Reference<OSQLColumns>			            m_aParameters;		// all parameters
++		::rtl::Reference<OSQLColumns>			            m_aGroupColumns;	// the group by columns
++		::rtl::Reference<OSQLColumns>			            m_aOrderColumns;	// the order by columns
++		::rtl::Reference<OSQLColumns>			            m_aCreateColumns;	// the columns for Create table clause
+ 
+         ::std::auto_ptr< OSQLParseTreeIteratorImpl >    m_pImpl;
+ 
+@@ -142,8 +142,8 @@ namespace connectivity
+             const ::rtl::OUString & rColumnName, const ::rtl::OUString & rTableRange, bool _bLookInSubTables );
+ 
+ 	  protected:
+-		void setSelectColumnName(::vos::ORef<OSQLColumns>& _rColumns,const ::rtl::OUString & rColumnName,const ::rtl::OUString & rColumnAlias, const ::rtl::OUString & rTableRange,sal_Bool bFkt=sal_False,sal_Int32 _nType = com::sun::star::sdbc::DataType::VARCHAR,sal_Bool bAggFkt=sal_False);
+-		void appendColumns(::vos::ORef<OSQLColumns>& _rColumns,const ::rtl::OUString& _rTableAlias,const OSQLTable& _rTable);
++		void setSelectColumnName(::rtl::Reference<OSQLColumns>& _rColumns,const ::rtl::OUString & rColumnName,const ::rtl::OUString & rColumnAlias, const ::rtl::OUString & rTableRange,sal_Bool bFkt=sal_False,sal_Int32 _nType = com::sun::star::sdbc::DataType::VARCHAR,sal_Bool bAggFkt=sal_False);
++		void appendColumns(::rtl::Reference<OSQLColumns>& _rColumns,const ::rtl::OUString& _rTableAlias,const OSQLTable& _rTable);
+ 		// Weitere Member-Variable, die in den "set"-Funktionen zur
+ 		// Verfuegung stehen sollen, koennen in der abgeleiteten Klasse
+ 		// definiert werden und z. B. in deren Konstruktor initialisiert
+@@ -235,11 +235,11 @@ namespace connectivity
+ 		// Die TableRangeMap enth"alt alle Tabellen unter dem zugeh"origen Rangenamen der zuerst gefunden wird
+ 		const OSQLTables& getTables() const;
+ 
+-		::vos::ORef<OSQLColumns> getSelectColumns() const { return m_aSelectColumns;}
+-		::vos::ORef<OSQLColumns> getGroupColumns() const { return m_aGroupColumns;}
+-		::vos::ORef<OSQLColumns> getOrderColumns() const { return m_aOrderColumns;}
+-		::vos::ORef<OSQLColumns> getParameters()	const { return m_aParameters; }
+-		::vos::ORef<OSQLColumns> getCreateColumns() const { return m_aCreateColumns;}
++		::rtl::Reference<OSQLColumns> getSelectColumns() const { return m_aSelectColumns;}
++		::rtl::Reference<OSQLColumns> getGroupColumns() const { return m_aGroupColumns;}
++		::rtl::Reference<OSQLColumns> getOrderColumns() const { return m_aOrderColumns;}
++		::rtl::Reference<OSQLColumns> getParameters()	const { return m_aParameters; }
++		::rtl::Reference<OSQLColumns> getCreateColumns() const { return m_aCreateColumns;}
+ 
+ 		/** return the columname and the table range
+ 			@param	_pColumnRef
+diff --git a/connectivity/inc/pch/precompiled_connectivity.hxx b/connectivity/inc/pch/precompiled_connectivity.hxx
+index 12e3d55..796ec58 100644
+--- connectivity/inc/pch/precompiled_connectivity.hxx
++++ connectivity/inc/pch/precompiled_connectivity.hxx
+@@ -332,9 +332,9 @@
+ #include "unotools/sharedunocomponent.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/ref.hxx"		
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "rtl/ref.hxx"		
++#include "salhelper/simplereferenceobject.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+ 
+diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+index e39e3c1..fc80ced 100644
+--- connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
++++ connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+@@ -484,7 +484,7 @@ sal_Bool SAL_CALL ODatabaseMetaDataResultSet::wasNull(  ) throw(SQLException, Ru
+ 	checkDisposed(ODatabaseMetaDataResultSet_BASE::rBHelper.bDisposed );
+ 
+ 
+-	if(m_aRowsIter == m_aRows.end() || !(*m_aRowsIter)[m_nColPos].isValid())
++	if(m_aRowsIter == m_aRows.end() || !(*m_aRowsIter)[m_nColPos].is())
+ 		return sal_True;
+ 
+ 	return (*m_aRowsIter)[m_nColPos]->getValue().isNull();
+@@ -660,7 +660,7 @@ const ORowSetValue& ODatabaseMetaDataResultSet::getValue(sal_Int32 columnIndex)
+ 	checkIndex(columnIndex );
+ 	m_nColPos = columnIndex;
+ 
+-	if(m_aRowsIter != m_aRows.end() && (*m_aRowsIter)[columnIndex].isValid())
++	if(m_aRowsIter != m_aRows.end() && (*m_aRowsIter)[columnIndex].is())
+ 		return *(*m_aRowsIter)[columnIndex];
+ 	return m_aEmptyValue;
+ }
+diff --git a/connectivity/source/commontools/TSortIndex.cxx b/connectivity/source/commontools/TSortIndex.cxx
+index 76ec31f..bdeee76 100644
+--- connectivity/source/commontools/TSortIndex.cxx
++++ connectivity/source/commontools/TSortIndex.cxx
+@@ -95,11 +95,11 @@ struct TKeyValueFunc : ::std::binary_function<OSortIndex::TIntValuePairVector::v
+ };
+ 
+ // -----------------------------------------------------------------------------
+-::vos::ORef<OKeySet> OSortIndex::CreateKeySet()
++::rtl::Reference<OKeySet> OSortIndex::CreateKeySet()
+ {
+ 	Freeze();
+ 
+-	::vos::ORef<OKeySet> pKeySet = new OKeySet();
++	::rtl::Reference<OKeySet> pKeySet = new OKeySet();
+ 	pKeySet->reserve(m_aKeyValues.size());
+ 	::std::transform(m_aKeyValues.begin()
+ 					,m_aKeyValues.end()
+diff --git a/connectivity/source/cpool/ZConnectionPool.hxx b/connectivity/source/cpool/ZConnectionPool.hxx
+index 44c2134..ddc240d 100644
+--- connectivity/source/cpool/ZConnectionPool.hxx
++++ connectivity/source/cpool/ZConnectionPool.hxx
+@@ -68,8 +68,8 @@
+ #ifndef _VOS_TIMER_HXX_ 
+ #include <vos/timer.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _RTL_DIGEST_H_ 
+ #include <rtl/digest.h>
+@@ -150,7 +150,7 @@ namespace connectivity
+ 		TActiveConnectionMap	m_aActiveConnections;	// the currently active connections
+ 
+ 		::osl::Mutex			m_aMutex;
+-		::vos::ORef<OPoolTimer>	m_xInvalidator;			// invalidates the conntection pool when shot
++		::rtl::Reference<OPoolTimer>	m_xInvalidator;			// invalidates the conntection pool when shot
+ 		
+ 		::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDriver >				m_xDriver;		// the one and only driver for this connectionpool
+ 		::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >			m_xDriverNode;	// config node entry
+diff --git a/connectivity/source/dbtools/makefile.mk b/connectivity/source/dbtools/makefile.mk
+index 66f9519..5bbb76c 100644
+--- connectivity/source/dbtools/makefile.mk
++++ connectivity/source/dbtools/makefile.mk
+@@ -66,6 +66,7 @@ SHL1STDLIBS=\
+ 	$(CPPUHELPERLIB)			\
+ 	$(VOSLIB)					\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(JVMACCESSLIB)				\
+ 	$(UNOTOOLSLIB)	\
+ 	$(COMPHELPERLIB)
+diff --git a/connectivity/source/drivers/adabas/BConnection.cxx b/connectivity/source/drivers/adabas/BConnection.cxx
+index 48865ba..f20ef84 100644
+--- connectivity/source/drivers/adabas/BConnection.cxx
++++ connectivity/source/drivers/adabas/BConnection.cxx
+@@ -292,9 +292,9 @@ Sequence< sal_Int8 > OAdabasConnection::getUnoTunnelImplementationId()
+ 	return new OAdabasConnection(m_pDriverHandleCopy,m_pDriver);
+ }
+ // -----------------------------------------------------------------------------
+-::vos::ORef<OSQLColumns> OAdabasConnection::createSelectColumns(const ::rtl::OUString& _rSql)
++::rtl::Reference<OSQLColumns> OAdabasConnection::createSelectColumns(const ::rtl::OUString& _rSql)
+ {
+-	::vos::ORef<OSQLColumns> aRet;
++	::rtl::Reference<OSQLColumns> aRet;
+ 	OSQLParser aParser(getDriver()->getORB());
+ 	::rtl::OUString sErrorMessage;
+ 	OSQLParseNode* pNode = aParser.parseTree(sErrorMessage,_rSql);
+diff --git a/connectivity/source/drivers/adabas/BResultSetMetaData.cxx b/connectivity/source/drivers/adabas/BResultSetMetaData.cxx
+index bd185f0..9541e6e 100644
+--- connectivity/source/drivers/adabas/BResultSetMetaData.cxx
++++ connectivity/source/drivers/adabas/BResultSetMetaData.cxx
+@@ -54,7 +54,7 @@ using namespace com::sun::star::uno;
+ using namespace connectivity::adabas;
+ using namespace connectivity;
+ 
+-OAdabasResultSetMetaData::OAdabasResultSetMetaData(odbc::OConnection*	_pConnection, SQLHANDLE _pStmt,const ::vos::ORef<OSQLColumns>& _rSelectColumns )
++OAdabasResultSetMetaData::OAdabasResultSetMetaData(odbc::OConnection*	_pConnection, SQLHANDLE _pStmt,const ::rtl::Reference<OSQLColumns>& _rSelectColumns )
+ : OAdabasResultSetMetaData_BASE(_pConnection,_pStmt)
+ ,m_aSelectColumns(_rSelectColumns)
+ {
+@@ -83,7 +83,7 @@ sal_Int32 SAL_CALL OAdabasResultSetMetaData::isNullable( sal_Int32 column ) thro
+ {
+ 	sal_Int32 nValue = 0;
+ 	sal_Bool bFound = sal_False;
+-	if ( m_aSelectColumns.isValid() && column > 0 && column <= (sal_Int32)m_aSelectColumns->size() )
++	if ( m_aSelectColumns.is() && column > 0 && column <= (sal_Int32)m_aSelectColumns->size() )
+ 		bFound = (*m_aSelectColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE)) >>= nValue;
+ 
+ 	if ( !bFound )
+@@ -93,7 +93,7 @@ sal_Int32 SAL_CALL OAdabasResultSetMetaData::isNullable( sal_Int32 column ) thro
+ // -------------------------------------------------------------------------
+ sal_Bool SAL_CALL OAdabasResultSetMetaData::isAutoIncrement( sal_Int32 column ) throw(SQLException, RuntimeException)
+ {
+-	if ( m_aSelectColumns.isValid() && column > 0 && column <= (sal_Int32)m_aSelectColumns->size() )
++	if ( m_aSelectColumns.is() && column > 0 && column <= (sal_Int32)m_aSelectColumns->size() )
+     {
+         sal_Bool bAutoIncrement = sal_False;
+         (*m_aSelectColumns)[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT)) >>= bAutoIncrement;
+diff --git a/connectivity/source/drivers/adabas/makefile.mk b/connectivity/source/drivers/adabas/makefile.mk
+index d120f7d..4d944da 100644
+--- connectivity/source/drivers/adabas/makefile.mk
++++ connectivity/source/drivers/adabas/makefile.mk
+@@ -91,6 +91,7 @@ SHL1STDLIBS=\
+ 	$(CPPUHELPERLIB)			\
+ 	$(VOSLIB)					\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(ODBCBASELIB)				\
+ 	$(COMPHELPERLIB)
+diff --git a/connectivity/source/drivers/calc/CColumns.cxx b/connectivity/source/drivers/calc/CColumns.cxx
+index b259583..2b8c734 100644
+--- connectivity/source/drivers/calc/CColumns.cxx
++++ connectivity/source/drivers/calc/CColumns.cxx
+@@ -58,7 +58,7 @@ using namespace ::com::sun::star::container;
+ sdbcx::ObjectType OCalcColumns::createObject(const ::rtl::OUString& _rName)
+ {
+ 	OCalcTable* pTable = (OCalcTable*)m_pTable;
+-	::vos::ORef<OSQLColumns> aCols = pTable->getTableColumns();
++	::rtl::Reference<OSQLColumns> aCols = pTable->getTableColumns();
+ 
+ 	OSQLColumns::const_iterator aIter = find(aCols->begin(),aCols->end(),_rName,::comphelper::UStringMixEqual(isCaseSensitive()));
+ 	sdbcx::ObjectType xRet;
+diff --git a/connectivity/source/drivers/calc/makefile.mk b/connectivity/source/drivers/calc/makefile.mk
+index 6cc4677..d111ef6 100644
+--- connectivity/source/drivers/calc/makefile.mk
++++ connectivity/source/drivers/calc/makefile.mk
+@@ -80,6 +80,7 @@ SHL1STDLIBS=\
+ 	$(SVTOOLLIB)				\
+ 	$(UCBHELPERLIB)				\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(DBFILELIB)				\
+ 	$(UNOTOOLSLIB)				\
+diff --git a/connectivity/source/drivers/dbase/DColumns.cxx b/connectivity/source/drivers/dbase/DColumns.cxx
+index 5b2344b..fbfdbe8 100644
+--- connectivity/source/drivers/dbase/DColumns.cxx
++++ connectivity/source/drivers/dbase/DColumns.cxx
+@@ -68,7 +68,7 @@ sdbcx::ObjectType ODbaseColumns::createObject(const ::rtl::OUString& _rName)
+ 	ODbaseTable* pTable = (ODbaseTable*)m_pTable;
+ 
+ 	//	Reference< XFastPropertySet> xCol(pTable->getColumns()[_rName],UNO_QUERY);
+-	::vos::ORef<OSQLColumns> aCols = pTable->getTableColumns();
++	::rtl::Reference<OSQLColumns> aCols = pTable->getTableColumns();
+ 	OSQLColumns::const_iterator aIter = find(aCols->begin(),aCols->end(),_rName,::comphelper::UStringMixEqual(isCaseSensitive()));
+ 
+ 	sdbcx::ObjectType xRet;
+diff --git a/connectivity/source/drivers/dbase/DIndex.cxx b/connectivity/source/drivers/dbase/DIndex.cxx
+index 3bb3582..e77c415 100644
+--- connectivity/source/drivers/dbase/DIndex.cxx
++++ connectivity/source/drivers/dbase/DIndex.cxx
+@@ -630,7 +630,7 @@ BOOL ODbaseIndex::CreateImpl()
+ 	m_pFileStream->SetStreamSize(512);
+ 
+ 	sal_Int32 nType = 0;
+-	::vos::ORef<OSQLColumns> aCols = m_pTable->getTableColumns();
++	::rtl::Reference<OSQLColumns> aCols = m_pTable->getTableColumns();
+ 
+ 	Reference< XPropertySet > xTableCol(*find(aCols->begin(),aCols->end(),aName,::comphelper::UStringMixEqual(isCaseSensitive())));
+ 
+diff --git a/connectivity/source/drivers/dbase/DIndexColumns.cxx b/connectivity/source/drivers/dbase/DIndexColumns.cxx
+index 0057a2b..7cb24a3 100644
+--- connectivity/source/drivers/dbase/DIndexColumns.cxx
++++ connectivity/source/drivers/dbase/DIndexColumns.cxx
+@@ -70,7 +70,7 @@ sdbcx::ObjectType ODbaseIndexColumns::createObject(const ::rtl::OUString& _rName
+ {
+ 	const ODbaseTable* pTable = m_pIndex->getTable();
+ 
+-	::vos::ORef<OSQLColumns> aCols = pTable->getTableColumns();
++	::rtl::Reference<OSQLColumns> aCols = pTable->getTableColumns();
+ 	OSQLColumns::const_iterator aIter = find(aCols->begin(),aCols->end(),_rName,::comphelper::UStringMixEqual(isCaseSensitive()));
+ 
+ 	Reference< XPropertySet > xCol;
+diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
+index 5f8ae8c..2f2e736 100644
+--- connectivity/source/drivers/dbase/DTable.cxx
++++ connectivity/source/drivers/dbase/DTable.cxx
+@@ -209,7 +209,7 @@ void ODbaseTable::fillColumns()
+ 	m_pFileStream->Seek(STREAM_SEEK_TO_BEGIN);
+ 	m_pFileStream->Seek(32L);
+ 
+-	if(!m_aColumns.isValid())
++	if(!m_aColumns.is())
+ 		m_aColumns = new OSQLColumns();
+ 	else
+ 		m_aColumns->clear();
+@@ -392,7 +392,7 @@ void ODbaseTable::construct()
+ 			if (m_pMemoStream)
+ 				ReadMemoHeader();
+ 		}
+-		//	if(!m_pColumns && (!m_aColumns.isValid() || !m_aColumns->size()))
++		//	if(!m_pColumns && (!m_aColumns.is() || !m_aColumns->size()))
+ 		fillColumns();
+ 
+ 		m_pFileStream->Seek(STREAM_SEEK_TO_END);
+@@ -1444,7 +1444,7 @@ BOOL ODbaseTable::UpdateBuffer(OValueRefVector& rRow, OValueRefRow pOrgRow,const
+ 		if (xIndex.is())
+ 		{
+ 			// first check if the value is different to the old one and when if it conform to the index
+-			if(pOrgRow.isValid() && (rRow[nPos]->getValue().isNull() || rRow[nPos] == (*pOrgRow)[nPos]))
++			if(pOrgRow.is() && (rRow[nPos]->getValue().isNull() || rRow[nPos] == (*pOrgRow)[nPos]))
+ 				continue;
+ 			else
+ 			{
+@@ -1548,7 +1548,7 @@ BOOL ODbaseTable::UpdateBuffer(OValueRefVector& rRow, OValueRefRow pOrgRow,const
+ 			ODbaseIndex* pIndex = reinterpret_cast< ODbaseIndex* >( xTunnel->getSomething(ODbaseIndex::getUnoTunnelImplementationId()) );
+ 			OSL_ENSURE(pIndex,"ODbaseTable::UpdateBuffer: No Index returned!");
+ 			// Update !!
+-			if (pOrgRow.isValid() && !rRow[nPos]->getValue().isNull() )//&& pVal->isModified())
++			if (pOrgRow.is() && !rRow[nPos]->getValue().isNull() )//&& pVal->isModified())
+ 				pIndex->Update(m_nFilePos,*(*pOrgRow)[nPos],*rRow[nPos]);
+ 			else
+ 				pIndex->Insert(m_nFilePos,*rRow[nPos]);
+@@ -2213,7 +2213,7 @@ void ODbaseTable::copyData(ODbaseTable* _pNewTable,sal_Int32 _nPos)
+         bOk = seekRow( IResultSetHelper::BOOKMARK, nRowPos+1, nCurPos );
+         if ( bOk )
+ 		{
+-            bOk = fetchRow( aRow, m_aColumns.getBody(), sal_True, sal_True);
++            bOk = fetchRow( aRow, *m_aColumns, sal_True, sal_True);
+             if ( bOk )
+ 			{
+ 				// special handling when pos == 0 then we don't have to distinguish	between the two rows
+diff --git a/connectivity/source/drivers/dbase/makefile.mk b/connectivity/source/drivers/dbase/makefile.mk
+index f9fc84f..5c35ebe 100644
+--- connectivity/source/drivers/dbase/makefile.mk
++++ connectivity/source/drivers/dbase/makefile.mk
+@@ -110,6 +110,7 @@ SHL1STDLIBS=\
+ 	$(SVTOOLLIB)				\
+ 	$(UCBHELPERLIB)				\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(DBFILELIB)				\
+ 	$(UNOTOOLSLIB)				\
+diff --git a/connectivity/source/drivers/evoab/LColumns.cxx b/connectivity/source/drivers/evoab/LColumns.cxx
+index ade2bfa..9aae157 100644
+--- connectivity/source/drivers/evoab/LColumns.cxx
++++ connectivity/source/drivers/evoab/LColumns.cxx
+@@ -59,7 +59,7 @@ sdbcx::ObjectType OEvoabColumns::createObject(const ::rtl::OUString& _rName)
+ {
+ 
+ 	OEvoabTable* pTable = (OEvoabTable*)m_pTable;
+-	::vos::ORef<OSQLColumns> aCols = pTable->getTableColumns();
++	::rtl::Reference<OSQLColumns> aCols = pTable->getTableColumns();
+ 	OSQLColumns::const_iterator aIter = find(aCols->begin(),aCols->end(),_rName,::comphelper::UStringMixEqual(isCaseSensitive()));
+ 	sdbcx::ObjectType xRet;
+ 	if(aIter != aCols->end())
+diff --git a/connectivity/source/drivers/evoab/LConnection.cxx b/connectivity/source/drivers/evoab/LConnection.cxx
+index e0d8f3b..a182e8f 100644
+--- connectivity/source/drivers/evoab/LConnection.cxx
++++ connectivity/source/drivers/evoab/LConnection.cxx
+@@ -90,7 +90,6 @@
+ 
+ using namespace connectivity::evoab;
+ using namespace connectivity::file;
+-using namespace vos;
+ 
+ typedef connectivity::file::OConnection  OConnection_B;
+ 
+diff --git a/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx b/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+index 5ca44bd..3d45cdc 100644
+--- connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
++++ connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+@@ -116,7 +116,6 @@ using namespace ::com::sun::star::sdbc;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::ucb;
+ using namespace osl;
+-using namespace vos;
+ 
+ namespace connectivity
+ {
+diff --git a/connectivity/source/drivers/evoab/LFolderList.cxx b/connectivity/source/drivers/evoab/LFolderList.cxx
+index 0332b67..88c1e40 100644
+--- connectivity/source/drivers/evoab/LFolderList.cxx
++++ connectivity/source/drivers/evoab/LFolderList.cxx
+@@ -145,7 +145,7 @@ void OEvoabFolderList::fillColumns(const ::com::sun::star::lang::Locale& _aLocal
+ 	// column count
+ 	xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+ 
+-	if(!m_aColumns.isValid())
++	if(!m_aColumns.is())
+ 		m_aColumns = new OSQLColumns();
+ 	else
+ 		m_aColumns->clear();
+@@ -578,7 +578,7 @@ sal_Int32 SAL_CALL OEvoabFolderList::getInt( sal_Int32 _nColumnIndex ) throw(SQL
+ // -----------------------------------------------------------------------------
+ void OEvoabFolderList::initializeRow(sal_Int32 _nColumnCount)
+ {
+-	if(!m_aRow.isValid())
++	if(!m_aRow.is())
+ 	{
+ 		m_aRow	= new OValueVector(_nColumnCount);
+ 		(*m_aRow)[0].setBound(sal_True);
+@@ -609,7 +609,7 @@ sal_Bool SAL_CALL OEvoabFolderList::next(  ) throw(SQLException, RuntimeExceptio
+ 
+ sal_Int32 SAL_CALL OEvoabFolderList::getRow(  ) throw(SQLException, RuntimeException)
+ {
+-	sal_Bool bRet = fetchRow(m_aRow,getTableColumns().getBody());
++	sal_Bool bRet = fetchRow(m_aRow,*(getTableColumns()));
+ 	EVO_TRACE_STRING("OEvoabFolderList::getRow()::fetchRow() = %s\n", ::rtl::OUString::valueOf(bRet) );
+ 
+ 	return bRet;
+diff --git a/connectivity/source/drivers/evoab/LFolderList.hxx b/connectivity/source/drivers/evoab/LFolderList.hxx
+index e4eb369..dba139a 100644
+--- connectivity/source/drivers/evoab/LFolderList.hxx
++++ connectivity/source/drivers/evoab/LFolderList.hxx
+@@ -75,7 +75,7 @@ namespace connectivity
+ 			sal_Int32						m_nFilePos;					// aktuelle IResultSetHelper::Movement
+ 			SvStream*						m_pFileStream;
+ 			OEvoabConnection*				m_pConnection;
+-			::vos::ORef<OSQLColumns>		m_aColumns;
++			::rtl::Reference<OSQLColumns>		m_aColumns;
+ 			OValueRow						m_aRow;
+ 			sal_Bool						m_bIsNull;
+ 
+@@ -91,7 +91,7 @@ namespace connectivity
+ 			OEvoabFolderList( OEvoabConnection* _pConnection);
+ 
+ 			OEvoabConnection* getConnection() const { return m_pConnection;}
+-			::vos::ORef<OSQLColumns> getTableColumns() const {return m_aColumns;}
++			::rtl::Reference<OSQLColumns> getTableColumns() const {return m_aColumns;}
+ 			void construct(); // can throw any exception
+ 			static SvStream* createStream_simpleError( const String& _rFileName, StreamMode _eOpenMode);
+ 			void initializeRow(sal_Int32 _nColumnCount);
+diff --git a/connectivity/source/drivers/evoab/LTable.cxx b/connectivity/source/drivers/evoab/LTable.cxx
+index aa8eb9b..c88e765 100644
+--- connectivity/source/drivers/evoab/LTable.cxx
++++ connectivity/source/drivers/evoab/LTable.cxx
+@@ -152,7 +152,7 @@ void OEvoabTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale)
+ 	// column count
+ 	xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+ 
+-	if(!m_aColumns.isValid())
++	if(!m_aColumns.is())
+ 		m_aColumns = new OSQLColumns();
+ 	else
+ 		m_aColumns->clear();
+diff --git a/connectivity/source/drivers/evoab/makefile.mk b/connectivity/source/drivers/evoab/makefile.mk
+index f5ffb63..60a98cb 100644
+--- connectivity/source/drivers/evoab/makefile.mk
++++ connectivity/source/drivers/evoab/makefile.mk
+@@ -89,6 +89,7 @@ SHL1STDLIBS=\
+ 	$(UNOTOOLSLIB)				\
+ 	$(UCBHELPERLIB)				\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(DBFILELIB)				\
+ 	$(COMPHELPERLIB)
+diff --git a/connectivity/source/drivers/evoab2/NConnection.cxx b/connectivity/source/drivers/evoab2/NConnection.cxx
+index 39f427a..75ca508 100644
+--- connectivity/source/drivers/evoab2/NConnection.cxx
++++ connectivity/source/drivers/evoab2/NConnection.cxx
+@@ -80,7 +80,6 @@
+ #endif
+ 
+ using namespace connectivity::evoab;
+-using namespace vos;
+ using namespace dbtools;
+ 
+ //------------------------------------------------------------------------------
+diff --git a/connectivity/source/drivers/evoab2/NResultSetMetaData.cxx b/connectivity/source/drivers/evoab2/NResultSetMetaData.cxx
+index 56aa644..a063d97 100644
+--- connectivity/source/drivers/evoab2/NResultSetMetaData.cxx
++++ connectivity/source/drivers/evoab2/NResultSetMetaData.cxx
+@@ -66,7 +66,7 @@ OEvoabResultSetMetaData::~OEvoabResultSetMetaData()
+ {
+ }
+ // -------------------------------------------------------------------------
+-void OEvoabResultSetMetaData::setEvoabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(SQLException)
++void OEvoabResultSetMetaData::setEvoabFields(const ::rtl::Reference<connectivity::OSQLColumns> &xColumns) throw(SQLException)
+ {
+         OSQLColumns::const_iterator aIter;
+         static const ::rtl::OUString aName(::rtl::OUString::createFromAscii("Name"));
+diff --git a/connectivity/source/drivers/evoab2/NResultSetMetaData.hxx b/connectivity/source/drivers/evoab2/NResultSetMetaData.hxx
+index 79526dc..45871eb 100644
+--- connectivity/source/drivers/evoab2/NResultSetMetaData.hxx
++++ connectivity/source/drivers/evoab2/NResultSetMetaData.hxx
+@@ -46,8 +46,8 @@
+ #ifndef _CONNECTIVITY_EVOAB_CONNECTION_HXX_
+ #include "NConnection.hxx"
+ #endif 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #include <com/sun/star/connection/XConnection.hpp>
+ namespace connectivity
+@@ -68,7 +68,7 @@ namespace connectivity
+ 			virtual ~OEvoabResultSetMetaData();
+ 		public:
+ 		  OEvoabResultSetMetaData(const ::rtl::OUString& _aTableName);
+-		  void setEvoabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException);
++		  void setEvoabFields(const ::rtl::Reference<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException);
+ 		  inline sal_uInt32 fieldAtColumn(sal_Int32 columnIndex) const
+                         { return m_aEvoabFields[columnIndex - 1]; }
+ 		  inline sal_Int32 getFieldSize() const 
+diff --git a/connectivity/source/drivers/evoab2/NStatement.cxx b/connectivity/source/drivers/evoab2/NStatement.cxx
+index 8f12837..1b42406 100644
+--- connectivity/source/drivers/evoab2/NStatement.cxx
++++ connectivity/source/drivers/evoab2/NStatement.cxx
+@@ -499,13 +499,13 @@ Reference< XResultSet > SAL_CALL OStatement_Base::executeQuery( const ::rtl::OUS
+ 	g_message( "Parsed SQL to sexpr '%s'\n", pSexpr );
+ 	g_free( pSexpr );
+ #endif
+- 	::vos::ORef<connectivity::OSQLColumns> xColumns;
++ 	::rtl::Reference<connectivity::OSQLColumns> xColumns;
+ 	if (pQuery)
+ 	{
+ 		pResult->construct( pQuery, aTable, bIsWithoutWhere );
+ 		e_book_query_unref( pQuery );
+ 		xColumns = m_aSQLIterator.getSelectColumns();
+-		if (!xColumns.isValid())
++		if (!xColumns.is())
+ 		{
+ 			::dbtools::throwGenericSQLException(
+ 				::rtl::OUString::createFromAscii("Invalid selection of columns"),
+diff --git a/connectivity/source/drivers/evoab2/makefile.mk b/connectivity/source/drivers/evoab2/makefile.mk
+index ec9e1dd..c3ec517 100644
+--- connectivity/source/drivers/evoab2/makefile.mk
++++ connectivity/source/drivers/evoab2/makefile.mk
+@@ -94,6 +94,7 @@ SHL1STDLIBS=\
+ 	$(UNOTOOLSLIB)				\
+ 	$(UCBHELPERLIB)				\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(DBFILELIB)				\
+ 	$(COMPHELPERLIB)
+diff --git a/connectivity/source/drivers/file/FDriver.cxx b/connectivity/source/drivers/file/FDriver.cxx
+index a9e6ed3..601b11b 100644
+--- connectivity/source/drivers/file/FDriver.cxx
++++ connectivity/source/drivers/file/FDriver.cxx
+@@ -233,7 +233,7 @@ Reference< XTablesSupplier > SAL_CALL OFileDriver::getDataDefinitionByURL( const
+ 	return getDataDefinitionByConnection(connect(url,info));
+ }
+ // -----------------------------------------------------------------------------
+-void OOperandParam::describe(const Reference< XPropertySet>& rColumn, ::vos::ORef<connectivity::OSQLColumns> rParameterColumns)
++void OOperandParam::describe(const Reference< XPropertySet>& rColumn, ::rtl::Reference<connectivity::OSQLColumns> rParameterColumns)
+ {
+ 	// den alten namen beibehalten
+ 
+diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx
+index 3d8c5b5..ae96589 100644
+--- connectivity/source/drivers/file/FPreparedStatement.cxx
++++ connectivity/source/drivers/file/FPreparedStatement.cxx
+@@ -134,7 +134,7 @@ void OPreparedStatement::disposing()
+ 
+ 
+ 	m_xMetaData = NULL;
+-	if(m_aParameterRow.isValid())
++	if(m_aParameterRow.is())
+ 	{
+ 		m_aParameterRow->clear();
+ 		m_aParameterRow = NULL;
+@@ -316,7 +316,7 @@ void SAL_CALL OPreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 /
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 	checkAndResizeParameters(parameterIndex);
+ 
+-	if ( m_aAssignValues.isValid() )
++	if ( m_aAssignValues.is() )
+ 		(*m_aAssignValues)[m_aParameterIndexes[parameterIndex]]->setNull();
+ 	else
+ 		(*m_aParameterRow)[parameterIndex]->setNull();
+@@ -419,8 +419,8 @@ Reference<XResultSet> OPreparedStatement::initResultSet()
+ 	Reference<XResultSet> xRs(m_pResultSet);
+ 
+ 	// check if we got enough paramters
+-	if ( (m_aParameterRow.isValid() && ( m_aParameterRow->size() -1 ) < m_xParamColumns->size()) ||
+-		 (m_xParamColumns.isValid() && !m_aParameterRow.isValid() && !m_aParameterRow->empty()) )
++	if ( (m_aParameterRow.is() && ( m_aParameterRow->size() -1 ) < m_xParamColumns->size()) ||
++		 (m_xParamColumns.is() && !m_aParameterRow.is() && !m_aParameterRow->empty()) )
+ 		throw SQLException(::rtl::OUString::createFromAscii("Invalid count of parameters supplied!")
+ 							,*this
+ 							,::rtl::OUString::createFromAscii("S1000")
+@@ -445,7 +445,7 @@ void SAL_CALL OPreparedStatement::release() throw()
+ void OPreparedStatement::checkAndResizeParameters(sal_Int32 parameterIndex)
+ {
+ 	::connectivity::checkDisposed(OStatement_BASE::rBHelper.bDisposed);
+-	if ( m_aAssignValues.isValid() && (parameterIndex < 1 || parameterIndex >= static_cast<sal_Int32>(m_aParameterIndexes.size())) )
++	if ( m_aAssignValues.is() && (parameterIndex < 1 || parameterIndex >= static_cast<sal_Int32>(m_aParameterIndexes.size())) )
+ 		throwInvalidIndexException(*this);
+ 	else if ( static_cast<sal_Int32>((*m_aParameterRow).size()) <= parameterIndex )
+ 	{
+@@ -453,7 +453,7 @@ void OPreparedStatement::checkAndResizeParameters(sal_Int32 parameterIndex)
+ 		(*m_aParameterRow).resize(parameterIndex+1);
+ 		for ( ;i <= parameterIndex+1; ++i )
+ 		{
+-			if ( !(*m_aParameterRow)[i].isValid() )
++			if ( !(*m_aParameterRow)[i].is() )
+ 				(*m_aParameterRow)[i] = new ORowSetValueDecorator;
+ 		}
+ 	}
+@@ -464,7 +464,7 @@ void OPreparedStatement::setParameter(sal_Int32 parameterIndex, const ORowSetVal
+ 	::osl::MutexGuard aGuard( m_aMutex );
+ 	checkAndResizeParameters(parameterIndex);
+ 
+-	if(m_aAssignValues.isValid())
++	if(m_aAssignValues.is())
+ 		*(*m_aAssignValues)[m_aParameterIndexes[parameterIndex]] = x;
+ 	else
+ 		*((*m_aParameterRow)[parameterIndex]) = x;
+@@ -566,7 +566,7 @@ void OPreparedStatement::initializeResultSet(OResultSet* _pResult)
+ 		USHORT nParaCount=0; // gibt die aktuelle Anzahl der bisher gesetzen Parameter an
+ 
+ 		// Nach zu substituierenden Parametern suchen:
+-        size_t nCount = m_aAssignValues.isValid() ? m_aAssignValues->size() : 1; // 1 ist wichtig fuer die Kriterien
++        size_t nCount = m_aAssignValues.is() ? m_aAssignValues->size() : 1; // 1 ist wichtig fuer die Kriterien
+         for (size_t j = 1; j < nCount; j++)
+ 		{
+ 			UINT32 nParameter = (*m_aAssignValues).getParameterIndex(j);
+@@ -579,19 +579,19 @@ void OPreparedStatement::initializeResultSet(OResultSet* _pResult)
+ 			//	(*m_aAssignValues)[j] = (*m_aParameterRow)[(UINT16)nParameter];
+ 		}
+ 
+-		if (m_aParameterRow.isValid() &&  (m_xParamColumns->size()+1) != m_aParameterRow->size() )
++		if (m_aParameterRow.is() &&  (m_xParamColumns->size()+1) != m_aParameterRow->size() )
+         {
+             sal_Int32 i = m_aParameterRow->size();
+             sal_Int32 nParamColumns = m_xParamColumns->size()+1;
+ 		    m_aParameterRow->resize(nParamColumns);
+ 		    for ( ;i < nParamColumns; ++i )
+ 		    {
+-			    if ( !(*m_aParameterRow)[i].isValid() )
++			    if ( !(*m_aParameterRow)[i].is() )
+ 				    (*m_aParameterRow)[i] = new ORowSetValueDecorator;
+ 		    }
+ 			//m_aParameterRow->resize(m_xParamColumns->size()+1);
+         }
+-		if (m_aParameterRow.isValid() && nParaCount < m_aParameterRow->size() )
++		if (m_aParameterRow.is() && nParaCount < m_aParameterRow->size() )
+ 		{
+ 
+ 			m_pSQLAnalyzer->bindParameterRow(m_aParameterRow);
+@@ -604,7 +604,7 @@ void OPreparedStatement::parseParamterElem(const String& _sColumnName,OSQLParseN
+ 	Reference<XPropertySet> xCol;
+ 	m_xColNames->getByName(_sColumnName) >>= xCol;
+ 	sal_Int32 nParameter = -1;
+-	if(m_xParamColumns.isValid())
++	if(m_xParamColumns.is())
+ 	{
+ 		OSQLColumns::const_iterator aIter = find(m_xParamColumns->begin(),m_xParamColumns->end(),_sColumnName,::comphelper::UStringMixEqual(m_pTable->isCaseSensitive()));
+ 		if(aIter != m_xParamColumns->end())
+diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx
+index 79710c4..6cd4fee 100644
+--- connectivity/source/drivers/file/FResultSet.cxx
++++ connectivity/source/drivers/file/FResultSet.cxx
+@@ -223,7 +223,7 @@ void OResultSet::clear()
+ 	m_pFileSet = NULL;
+ 	DELETEZ(m_pSortIndex);
+ 
+-	if(m_aInsertRow.isValid())
++	if(m_aInsertRow.is())
+ 		m_aInsertRow->clear();
+ 
+ 	m_aSkipDeletedSet.clear();
+@@ -573,12 +573,12 @@ sal_Bool OResultSet::evaluate()
+ 		{
+ 			if(m_pEvaluationKeySet)
+ 			{
+-				bRet = m_pTable->fetchRow(m_aEvaluateRow,m_pTable->getTableColumns().getBody(),sal_True,sal_True);
++				bRet = m_pTable->fetchRow(m_aEvaluateRow,*(m_pTable->getTableColumns()),sal_True,sal_True);
+ 				evaluate();
+ 
+ 			}
+ 			else
+-				bRet = m_pTable->fetchRow(m_aRow,m_xColumns.getBody(),sal_False,sal_True);
++				bRet = m_pTable->fetchRow(m_aRow,*m_xColumns,sal_False,sal_True);
+ 		}
+ 	}
+ 
+@@ -629,8 +629,8 @@ void SAL_CALL OResultSet::insertRow(  ) throw(SQLException, RuntimeException)
+ 	// we know that we append new rows at the end
+ 	// so we have to know where the end is
+ 	m_aSkipDeletedSet.skipDeleted(IResultSetHelper::LAST,1,sal_False);
+-	m_bRowInserted = m_pTable->InsertRow(m_aInsertRow.getBody(), TRUE,m_xColsIdx);
+-	if(m_bRowInserted && m_pFileSet.isValid())
++	m_bRowInserted = m_pTable->InsertRow(*m_aInsertRow, TRUE, m_xColsIdx);
++	if(m_bRowInserted && m_pFileSet.is())
+ 	{
+ 		sal_Int32 nPos = (*m_aInsertRow)[0]->getValue();
+ 		m_pFileSet->push_back(nPos);
+@@ -648,7 +648,7 @@ void SAL_CALL OResultSet::updateRow(  ) throw(SQLException, RuntimeException)
+ 
+ 	if(!m_pTable || m_pTable->isReadOnly())
+         ::dbtools::throwGenericSQLException( ::rtl::OUString::createFromAscii( "Table is readonly."), *this );
+-	m_bRowUpdated = m_pTable->UpdateRow(m_aInsertRow.getBody(), m_aRow,m_xColsIdx);
++	m_bRowUpdated = m_pTable->UpdateRow(*m_aInsertRow, m_aRow, m_xColsIdx);
+ 	*(*m_aInsertRow)[0] = (sal_Int32)(*m_aRow)[0]->getValue();
+ 
+ 	clearInsertRow();
+@@ -668,8 +668,8 @@ void SAL_CALL OResultSet::deleteRow() throw(SQLException, RuntimeException)
+         ::dbtools::throwGenericSQLException( ::rtl::OUString::createFromAscii( "Row was already deleted."), *this );
+ 
+ 	sal_Int32 nPos = (sal_Int32)(*m_aRow)[0]->getValue();
+-	m_bRowDeleted = m_pTable->DeleteRow(m_xColumns.getBody());
+-	if(m_bRowDeleted && m_pFileSet.isValid())
++	m_bRowDeleted = m_pTable->DeleteRow(*m_xColumns);
++	if(m_bRowDeleted && m_pFileSet.is())
+ 	{
+ 		m_aRow->setDeleted(sal_True);
+ 		// don't touch the m_pFileSet member here
+@@ -688,7 +688,7 @@ void SAL_CALL OResultSet::cancelRowUpdates(  ) throw(SQLException, RuntimeExcept
+ 	m_bRowInserted	= sal_False;
+ 	m_bRowDeleted	= sal_False;
+ 
+-	if(m_aInsertRow.isValid())
++	if(m_aInsertRow.is())
+ 	{
+ 		OValueRefVector::iterator aIter = m_aInsertRow->begin()+1;
+ 		for(;aIter != m_aInsertRow->end();++aIter)
+@@ -912,7 +912,7 @@ again:
+ 					return sal_False;
+ 				}
+ 			}
+-			else if (m_pFileSet.isValid())
++			else if (m_pFileSet.is())
+ 			{
+ 				OSL_ENSURE(//!m_pFileSet->IsFrozen() &&
+ 							eCursorPosition == IResultSetHelper::NEXT, "Falsche CursorPosition!");
+@@ -953,14 +953,14 @@ again:
+ 	// Evaluate darf nur gesetzt sein,
+ 	// wenn der Keyset weiter aufgebaut	werden soll
+ 	if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT && !isCount() &&
+-		(m_pFileSet.isValid() || m_pSortIndex) && bEvaluate)
++		(m_pFileSet.is() || m_pSortIndex) && bEvaluate)
+ 	{
+ 		if (m_pSortIndex)
+ 		{
+ 			OKeyValue* pKeyValue = GetOrderbyKeyValue(m_aEvaluateRow);
+ 			m_pSortIndex->AddKeyValue(pKeyValue);
+ 		}
+-		else if (m_pFileSet.isValid())
++		else if (m_pFileSet.is())
+ 		{
+ 			//	OSL_ENSURE(!m_pFileSet->IsFrozen() , "Falsche CursorPosition!");
+ 			sal_uInt32 nBookmarkValue = Abs((sal_Int32)(*m_aEvaluateRow)[0]->getValue());
+@@ -973,13 +973,13 @@ again:
+ 		if (bEvaluate)
+ 		{
+ 			// jetzt die eigentliche Ergebniszeile Lesen
+-			bOK = m_pTable->fetchRow(m_aEvaluateRow, m_pTable->getTableColumns().getBody(), sal_True,TRUE);
++			bOK = m_pTable->fetchRow(m_aEvaluateRow, *(m_pTable->getTableColumns()), sal_True,TRUE);
+ 		}
+ 
+ 		if (bOK)
+ 		{
+ 			// Nur die zu aendernden Werte uebergeben:
+-			if(!m_pTable->UpdateRow(m_aAssignValues.getBody(),m_aEvaluateRow,m_xColsIdx))
++			if(!m_pTable->UpdateRow(*m_aAssignValues,m_aEvaluateRow, m_xColsIdx))
+ 				return sal_False;
+ 		}
+ 	}
+@@ -988,11 +988,11 @@ again:
+ 		sal_Bool bOK = sal_True;
+ 		if (bEvaluate)
+ 		{
+-			bOK = m_pTable->fetchRow(m_aEvaluateRow, m_pTable->getTableColumns().getBody(), sal_True,TRUE);
++			bOK = m_pTable->fetchRow(m_aEvaluateRow, *(m_pTable->getTableColumns()), sal_True,TRUE);
+ 		}
+ 		if (bOK)
+ 		{
+-			if(!m_pTable->DeleteRow(m_xColumns.getBody()))
++			if(!m_pTable->DeleteRow(*m_xColumns))
+ 				return sal_False;
+ 		}
+ 	}
+@@ -1012,7 +1012,7 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset,
+ 	if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT &&
+ 		!isCount())
+ 	{
+-		if (!m_pFileSet.isValid()) // kein Index verfuegbar
++		if (!m_pFileSet.is()) // kein Index verfuegbar
+ 		{
+ 			// Normales FETCH
+ 			ExecuteRow(eCursorPosition,nOffset,FALSE,bRetrieveData);
+@@ -1102,7 +1102,7 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset,
+ 					if (bOK)
+ 					{
+ 						// jetzt nochmal die Ergebnisse lesen
+-						m_pTable->fetchRow(m_aRow, m_pTable->getTableColumns().getBody(), sal_True,bRetrieveData);
++						m_pTable->fetchRow(m_aRow, *(m_pTable->getTableColumns()), sal_True,bRetrieveData);
+ 
+ 						// now set the bookmark for outside
+ 						*(*m_aRow->begin()) = sal_Int32(m_nRowPos + 1);
+@@ -1190,7 +1190,7 @@ Error:
+ 			case IResultSetHelper::ABSOLUTE:
+ 			case IResultSetHelper::RELATIVE:
+ 				if (nOffset > 0)
+-					m_nRowPos = m_pFileSet.isValid() ? (sal_Int32)m_pFileSet->size() : -1;
++					m_nRowPos = m_pFileSet.is() ? (sal_Int32)m_pFileSet->size() : -1;
+ 				else if (nOffset < 0)
+ 					m_nRowPos = -1;
+ 				break;
+@@ -1421,7 +1421,7 @@ BOOL OResultSet::OpenImpl()
+ 					// Nun kann ueber den Index sortiert zugegriffen werden.
+ 				}
+ 
+-				if (!m_pFileSet.isValid())
++				if (!m_pFileSet.is())
+ 				{
+ 					m_pFileSet = new OKeySet();
+ 
+@@ -1436,8 +1436,8 @@ BOOL OResultSet::OpenImpl()
+ 						   m_pFileSet->push_back(i + 1);
+ 					}
+ 				}
+-				OSL_ENSURE(m_pFileSet.isValid(),"Kein KeySet vorhanden! :-(");
+-	DISTINCT:	if(bDistinct && m_pFileSet.isValid())   // sicher ist sicher
++				OSL_ENSURE(m_pFileSet.is(),"Kein KeySet vorhanden! :-(");
++	DISTINCT:	if(bDistinct && m_pFileSet.is())   // sicher ist sicher
+ 				{
+ 					OValueRow aSearchRow = new OValueVector(m_aRow->size());
+ 					OValueRefVector::iterator aRowIter = m_aRow->begin();
+@@ -1571,8 +1571,8 @@ BOOL OResultSet::OpenImpl()
+ 		case SQL_STATEMENT_INSERT:
+ 			m_nRowCountResult = 0;
+ 
+-			OSL_ENSURE(m_aAssignValues.isValid(),"No assign values set!");
+-			if(!m_pTable->InsertRow(m_aAssignValues.getBody(), TRUE,m_xColsIdx))
++			OSL_ENSURE(m_aAssignValues.is(),"No assign values set!");
++			if(!m_pTable->InsertRow(*m_aAssignValues, TRUE,m_xColsIdx))
+ 			{
+ 				m_nFilePos  = 0;
+ 				return sal_False;
+@@ -1617,7 +1617,7 @@ sal_Int64 OResultSet::getSomething( const Sequence< sal_Int8 > & rId ) throw (Ru
+ // -----------------------------------------------------------------------------
+ void OResultSet::setBoundedColumns(const OValueRefRow& _rRow,
+ 								   const OValueRefRow& _rSelectRow,
+-								   const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns,
++								   const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,
+ 								   const Reference<XIndexAccess>& _xNames,
+ 								   sal_Bool _bSetColumnMapping,
+ 								   const Reference<XDatabaseMetaData>& _xMetaData,
+@@ -1778,7 +1778,7 @@ void OResultSet::clearInsertRow()
+ // -----------------------------------------------------------------------------
+ void OResultSet::initializeRow(OValueRefRow& _rRow,sal_Int32 _nColumnCount)
+ {
+-	if(!_rRow.isValid())
++	if(!_rRow.is())
+ 	{
+ 		_rRow	= new OValueRefVector(_nColumnCount);
+ 		(*_rRow)[0]->setBound(sal_True);
+diff --git a/connectivity/source/drivers/file/FResultSetMetaData.cxx b/connectivity/source/drivers/file/FResultSetMetaData.cxx
+index 6f8271c..e9012a0 100644
+--- connectivity/source/drivers/file/FResultSetMetaData.cxx
++++ connectivity/source/drivers/file/FResultSetMetaData.cxx
+@@ -64,7 +64,7 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ 
+ // -------------------------------------------------------------------------
+-OResultSetMetaData::OResultSetMetaData(const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns,const ::rtl::OUString& _aTableName,OFileTable*	_pTable)
++OResultSetMetaData::OResultSetMetaData(const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,const ::rtl::OUString& _aTableName,OFileTable*	_pTable)
+     :m_aTableName(_aTableName)
+ 	,m_xColumns(_rxColumns)
+ 	,m_pTable(_pTable)
+diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx
+index ffe89ff..b5beecd 100644
+--- connectivity/source/drivers/file/FStatement.cxx
++++ connectivity/source/drivers/file/FStatement.cxx
+@@ -172,7 +172,7 @@ void OStatement_BASE2::disposing()
+ 	if(m_pSQLAnalyzer)
+ 		m_pSQLAnalyzer->dispose();
+ 
+-	if(m_aRow.isValid())
++	if(m_aRow.is())
+ 	{
+ 		m_aRow->clear();
+ 		m_aRow = NULL;
+@@ -388,7 +388,7 @@ sal_Int32 SAL_CALL OStatement::executeUpdate( const ::rtl::OUString& sql ) throw
+ // -----------------------------------------------------------------------------
+ void SAL_CALL OStatement_Base::disposing(void)
+ {
+-	if(m_aEvaluateRow.isValid())
++	if(m_aEvaluateRow.is())
+ 	{
+ 		m_aEvaluateRow->clear();
+ 		m_aEvaluateRow = NULL;
+@@ -479,7 +479,7 @@ void OStatement_Base::setOrderbyColumn(	OSQLParseNode* pColumnRef,
+ 	}
+ 	catch(Exception)
+ 	{
+-		::vos::ORef<OSQLColumns> aSelectColumns = m_aSQLIterator.getSelectColumns();
++		::rtl::Reference<OSQLColumns> aSelectColumns = m_aSQLIterator.getSelectColumns();
+ 		::comphelper::UStringMixEqual aCase;
+ 		OSQLColumns::const_iterator aFind = ::connectivity::find(aSelectColumns->begin(),aSelectColumns->end(),aColumnName,aCase);
+ 		if ( aFind == aSelectColumns->end() )
+@@ -578,7 +578,7 @@ void OStatement_Base::construct(const ::rtl::OUString& sql)  throw(SQLException,
+ void OStatement_Base::createColumnMapping()
+ {
+ 	// initialize the column index map (mapping select columns to table columns)
+-	::vos::ORef<connectivity::OSQLColumns>	xColumns = m_aSQLIterator.getSelectColumns();
++	::rtl::Reference<connectivity::OSQLColumns>	xColumns = m_aSQLIterator.getSelectColumns();
+ 	m_aColMapping.resize(xColumns->size() + 1);
+ 	for (sal_Int32 i=0; i<(sal_Int32)m_aColMapping.size(); ++i)
+ 		m_aColMapping[i] = i;
+@@ -620,7 +620,7 @@ void OStatement_Base::GetAssignValues()
+ 	else if (SQL_ISRULE(m_pParseTree,insert_statement))
+ 	{
+ 		// Row fuer die zu setzenden Werte anlegen (Referenz durch new)
+-		if(m_aAssignValues.isValid())
++		if(m_aAssignValues.is())
+ 			m_aAssignValues->clear();
+ 		sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY)->getCount();
+ 		m_aAssignValues = new OAssignValues(nCount);
+@@ -727,7 +727,7 @@ void OStatement_Base::GetAssignValues()
+ 	}
+ 	else if (SQL_ISRULE(m_pParseTree,update_statement_searched))
+ 	{
+-		if(m_aAssignValues.isValid())
++		if(m_aAssignValues.is())
+ 			m_aAssignValues->clear();
+ 		sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY)->getCount();
+ 		m_aAssignValues = new OAssignValues(nCount);
+diff --git a/connectivity/source/drivers/file/fanalyzer.cxx b/connectivity/source/drivers/file/fanalyzer.cxx
+index 7f6dbd3..a3b9eeb 100644
+--- connectivity/source/drivers/file/fanalyzer.cxx
++++ connectivity/source/drivers/file/fanalyzer.cxx
+@@ -109,9 +109,9 @@ void OSQLAnalyzer::start(OSQLParseNode* pSQLParseNode)
+ 					||	SQL_ISRULE(pColumnRef,length_exp)
+ 					||	SQL_ISRULE(pColumnRef,set_fct_spec) )
+ 				{
+-					::vos::ORef<OPredicateCompiler>		pCompiler = new OPredicateCompiler(this);
++					::rtl::Reference<OPredicateCompiler>		pCompiler = new OPredicateCompiler(this);
+ 					pCompiler->setOrigColumns(m_aCompiler->getOrigColumns());
+-					::vos::ORef<OPredicateInterpreter>	pInterpreter = new OPredicateInterpreter(pCompiler);
++					::rtl::Reference<OPredicateInterpreter>	pInterpreter = new OPredicateInterpreter(pCompiler);
+ 					pCompiler->execute( pColumnRef );
+ 					m_aSelectionEvaluations.push_back( TPredicates(pCompiler,pInterpreter) );
+ 				}
+@@ -169,7 +169,7 @@ void OSQLAnalyzer::bindSelectRow(const OValueRefRow& _pRow)
+ 	OEvaluateSetList	aEvaluateSetList;
+ 	for ( ::std::vector< TPredicates >::iterator aIter = m_aSelectionEvaluations.begin(); aIter != m_aSelectionEvaluations.end();++aIter)
+ 	{
+-		if ( aIter->first.isValid() )
++		if ( aIter->first.is() )
+ 			bindRow( aIter->first->m_aCodeList,_pRow,aEvaluateSetList);
+ 	}
+ }
+@@ -213,7 +213,7 @@ void OSQLAnalyzer::bindSelectRow(const OValueRefRow& _pRow)
+ }
+ 
+ //------------------------------------------------------------------
+-void OSQLAnalyzer::describeParam(::vos::ORef<OSQLColumns> rParameterColumns)
++void OSQLAnalyzer::describeParam(::rtl::Reference<OSQLColumns> rParameterColumns)
+ {
+ 	OCodeList& rCodeList	= m_aCompiler->m_aCodeList;
+ 	OCodeStack aCodeStack;
+@@ -224,7 +224,7 @@ void OSQLAnalyzer::describeParam(::vos::ORef<OSQLColumns> rParameterColumns)
+ 		return; // keine Parameter
+ 
+     // Anlegen von Columns, die eine genauere Beschreibung fuer die enthalten
+-	::vos::ORef<OSQLColumns> aNewParamColumns = new OSQLColumns(*rParameterColumns);
++	::rtl::Reference<OSQLColumns> aNewParamColumns = new OSQLColumns(*rParameterColumns);
+ 
+ 
+     // Anlegen einer Testzeile, wird benoetigt um die Parameter zu beschreiben
+@@ -294,7 +294,7 @@ BOOL OSQLAnalyzer::hasFunctions() const
+ 		m_bSelectionFirstTime = sal_False;
+ 		for ( ::std::vector< TPredicates >::const_iterator aIter = m_aSelectionEvaluations.begin(); aIter != m_aSelectionEvaluations.end() && !m_bHasSelectionCode ;++aIter)
+ 		{
+-			if ( aIter->first.isValid() )
++			if ( aIter->first.is() )
+ 				m_bHasSelectionCode = aIter->first->hasCode();
+ 		}
+ 	}
+@@ -306,7 +306,7 @@ void OSQLAnalyzer::setSelectionEvaluationResult(OValueRefRow& _pRow,const ::std:
+ 	sal_Int32 nPos = 1;
+ 	for ( ::std::vector< TPredicates >::iterator aIter = m_aSelectionEvaluations.begin(); aIter != m_aSelectionEvaluations.end();++aIter,++nPos)
+ 	{
+-		if ( aIter->second.isValid() )
++		if ( aIter->second.is() )
+ 		{
+ 			sal_Int32	map = nPos;
+ 			// the first column (index 0) is for convenience only. The first real select column is no 1.
+@@ -322,7 +322,7 @@ void OSQLAnalyzer::dispose()
+ 	m_aCompiler->dispose();
+ 	for ( ::std::vector< TPredicates >::iterator aIter = m_aSelectionEvaluations.begin(); aIter != m_aSelectionEvaluations.end();++aIter)
+ 	{
+-		if ( aIter->first.isValid() )
++		if ( aIter->first.is() )
+ 			aIter->first->dispose();
+ 	}
+ }
+@@ -332,7 +332,7 @@ void OSQLAnalyzer::setOrigColumns(const OFileColumns& rCols)
+ 	m_aCompiler->setOrigColumns(rCols);
+ 	for ( ::std::vector< TPredicates >::iterator aIter = m_aSelectionEvaluations.begin(); aIter != m_aSelectionEvaluations.end();++aIter)
+ 	{
+-		if ( aIter->first.isValid() )
++		if ( aIter->first.is() )
+ 			aIter->first->setOrigColumns(rCols);
+ 	}
+ }
+diff --git a/connectivity/source/drivers/file/makefile.mk b/connectivity/source/drivers/file/makefile.mk
+index 7d61182..1370a17 100644
+--- connectivity/source/drivers/file/makefile.mk
++++ connectivity/source/drivers/file/makefile.mk
+@@ -86,6 +86,7 @@ SHL1STDLIBS=\
+ 	$(SVTOOLLIB)				\
+ 	$(UCBHELPERLIB)				\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(UNOTOOLSLIB)				\
+ 	$(COMPHELPERLIB)
+diff --git a/connectivity/source/drivers/flat/EColumns.cxx b/connectivity/source/drivers/flat/EColumns.cxx
+index 374be09..9dc5f8d 100644
+--- connectivity/source/drivers/flat/EColumns.cxx
++++ connectivity/source/drivers/flat/EColumns.cxx
+@@ -59,7 +59,7 @@ sdbcx::ObjectType OFlatColumns::createObject(const ::rtl::OUString& _rName)
+ {
+ 
+ 	OFlatTable* pTable = (OFlatTable*)m_pTable;
+-	::vos::ORef<OSQLColumns> aCols = pTable->getTableColumns();
++	::rtl::Reference<OSQLColumns> aCols = pTable->getTableColumns();
+ 	OSQLColumns::const_iterator aIter = find(aCols->begin(),aCols->end(),_rName,::comphelper::UStringMixEqual(isCaseSensitive()));
+ 	sdbcx::ObjectType xRet;
+ 	if(aIter != aCols->end())
+diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx
+index 600a9d8..43cc70e 100644
+--- connectivity/source/drivers/flat/ETable.cxx
++++ connectivity/source/drivers/flat/ETable.cxx
+@@ -149,7 +149,7 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale)
+ 	// column count
+ 	xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(pConnection->getFieldDelimiter(),pConnection->getStringDelimiter());
+ 
+-	if(!m_aColumns.isValid())
++	if(!m_aColumns.is())
+ 		m_aColumns = new OSQLColumns();
+ 	else
+ 		m_aColumns->clear();
+diff --git a/connectivity/source/drivers/flat/makefile.mk b/connectivity/source/drivers/flat/makefile.mk
+index 8edb9af..3e18d39 100644
+--- connectivity/source/drivers/flat/makefile.mk
++++ connectivity/source/drivers/flat/makefile.mk
+@@ -93,6 +93,7 @@ SHL1STDLIBS=\
+ 	$(UNOTOOLSLIB)				\
+ 	$(UCBHELPERLIB)				\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(DBFILELIB)				\
+ 	$(COMPHELPERLIB)
+diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk
+index 945244c..4a97b47 100644
+--- connectivity/source/drivers/jdbc/makefile.mk
++++ connectivity/source/drivers/jdbc/makefile.mk
+@@ -95,6 +95,7 @@ SHL1STDLIBS=\
+ 	$(CPPUHELPERLIB)			\
+ 	$(VOSLIB)					\
+ 	$(SALLIB)					\
++	$(SALHELPERLIB)					\
+ 	$(JVMACCESSLIB)				\
+ 	$(DBTOOLSLIB)				\
+ 	$(JVMFWKLIB)				\
+diff --git a/connectivity/source/drivers/kab/KPreparedStatement.cxx b/connectivity/source/drivers/kab/KPreparedStatement.cxx
+index 75aa051..4178dfc 100644
+--- connectivity/source/drivers/kab/KPreparedStatement.cxx
++++ connectivity/source/drivers/kab/KPreparedStatement.cxx
+@@ -55,7 +55,7 @@ IMPLEMENT_SERVICE_INFO(KabPreparedStatement, "com.sun.star.sdbc.drivers.KabPrepa
+ // -------------------------------------------------------------------------
+ void KabPreparedStatement::checkAndResizeParameters(sal_Int32 nParams) throw(SQLException)
+ {
+-	if ( !m_aParameterRow.isValid() )
++	if ( !m_aParameterRow.is() )
+ 		m_aParameterRow = new OValueVector();
+ 
+ 	if (nParams < 1)
+@@ -70,10 +70,10 @@ void KabPreparedStatement::checkAndResizeParameters(sal_Int32 nParams) throw(SQL
+ // -------------------------------------------------------------------------
+ void KabPreparedStatement::setKabFields() const throw(SQLException)
+ {
+-	::vos::ORef<connectivity::OSQLColumns> xColumns;	// selected columns
++	::rtl::Reference<connectivity::OSQLColumns> xColumns;	// selected columns
+ 
+ 	xColumns = m_aSQLIterator.getSelectColumns();
+-	if (!xColumns.isValid())
++	if (!xColumns.is())
+ 	{
+ 		::dbtools::throwGenericSQLException(
+ 			::rtl::OUString::createFromAscii("Invalid selection of columns"),
+@@ -119,7 +119,7 @@ void KabPreparedStatement::disposing()
+ {
+ 	KabPreparedStatement_BASE::disposing();
+ 
+-	if (m_aParameterRow.isValid())
++	if (m_aParameterRow.is())
+ 	{
+ 		m_aParameterRow->clear();
+ 		m_aParameterRow = NULL;
+diff --git a/connectivity/source/drivers/kab/KResultSetMetaData.cxx b/connectivity/source/drivers/kab/KResultSetMetaData.cxx
+index 7d195dc..652882d 100644
+--- connectivity/source/drivers/kab/KResultSetMetaData.cxx
++++ connectivity/source/drivers/kab/KResultSetMetaData.cxx
+@@ -64,7 +64,7 @@ KabResultSetMetaData::~KabResultSetMetaData()
+ {
+ }
+ // -------------------------------------------------------------------------
+-void KabResultSetMetaData::setKabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(SQLException)
++void KabResultSetMetaData::setKabFields(const ::rtl::Reference<connectivity::OSQLColumns> &xColumns) throw(SQLException)
+ {
+ 	OSQLColumns::const_iterator aIter;
+ 	static const ::rtl::OUString aName(::rtl::OUString::createFromAscii("Name"));
+diff --git a/connectivity/source/drivers/kab/KResultSetMetaData.hxx b/connectivity/source/drivers/kab/KResultSetMetaData.hxx
+index 238d242..c6032a6 100644
+--- connectivity/source/drivers/kab/KResultSetMetaData.hxx
++++ connectivity/source/drivers/kab/KResultSetMetaData.hxx
+@@ -49,8 +49,8 @@
+ #ifndef _CPPUHELPER_IMPLBASE1_HXX_
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace connectivity
+@@ -79,7 +79,7 @@ namespace connectivity
+ 				{ return this; }
+ 
+ 			void setKabFields(
+-				const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException);
++				const ::rtl::Reference<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException);
+ 			inline sal_uInt32 fieldAtColumn(sal_Int32 columnIndex) const
+ 				{ return m_aKabFields[columnIndex - 1]; }
+ 
+diff --git a/connectivity/source/drivers/kab/KStatement.cxx b/connectivity/source/drivers/kab/KStatement.cxx
+index 9d83761..9a76f8e 100644
+--- connectivity/source/drivers/kab/KStatement.cxx
++++ connectivity/source/drivers/kab/KStatement.cxx
+@@ -327,11 +327,11 @@ sal_Bool KabCommonStatement::isTableKnown(KabResultSet *pResult) const
+ //------------------------------------------------------------------------------
+ void KabCommonStatement::setKabFields(KabResultSet *pResult) const throw(SQLException)
+ {
+-	::vos::ORef<connectivity::OSQLColumns> xColumns;	// selected columns
++	::rtl::Reference<connectivity::OSQLColumns> xColumns;	// selected columns
+ 	KabResultSetMetaData *pMeta;				// meta information - holds the list of KAddressBook fields
+ 
+ 	xColumns = m_aSQLIterator.getSelectColumns();
+-	if (!xColumns.isValid())
++	if (!xColumns.is())
+ 	{
+ 		::dbtools::throwGenericSQLException(
+ 			::rtl::OUString::createFromAscii("Invalid selection of columns"),
+diff --git a/connectivity/source/drivers/kab/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
+index 67ce0a4..b3ba952 100644
+--- connectivity/source/drivers/kab/makefile.mk
++++ connectivity/source/drivers/kab/makefile.mk
+@@ -71,7 +71,8 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+     $(CPPULIB)                  \
+     $(CPPUHELPERLIB)            \
+-    $(SALLIB)
++    $(SALLIB)            \
++    $(SALHELPERLIB)
+ 
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
+@@ -113,6 +114,7 @@ SHL2STDLIBS=\
+     $(CPPUHELPERLIB)            \
+     $(VOSLIB)                   \
+     $(SALLIB)                   \
++    $(SALHELPERLIB)                   \
+     $(DBTOOLSLIB)               \
+     $(COMPHELPERLIB)            \
+     $(KAB_LIB)
+diff --git a/connectivity/source/drivers/mozab/MPreparedStatement.hxx b/connectivity/source/drivers/mozab/MPreparedStatement.hxx
+index 2219273..fda2e81 100644
+--- connectivity/source/drivers/mozab/MPreparedStatement.hxx
++++ connectivity/source/drivers/mozab/MPreparedStatement.hxx
+@@ -99,7 +99,7 @@ namespace connectivity
+             ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData >  m_xMetaData;
+             sal_Bool                                    m_bPrepared;
+             OResultSet*                                 m_pResultSet;
+-            ::vos::ORef<connectivity::OSQLColumns>      m_xParamColumns;    // the parameter columns
++            ::rtl::Reference<connectivity::OSQLColumns>      m_xParamColumns;    // the parameter columns
+             OValueRow                                   m_aParameterRow;
+ 
+ 
+diff --git a/connectivity/source/drivers/mozab/MResultSet.cxx b/connectivity/source/drivers/mozab/MResultSet.cxx
+index c75e6d0..9caf942 100644
+--- connectivity/source/drivers/mozab/MResultSet.cxx
++++ connectivity/source/drivers/mozab/MResultSet.cxx
+@@ -816,7 +816,7 @@ void OResultSet::analyseWhereClause( const OSQLParseNode*                 parseT
+         return;
+ 
+     if ( m_pSQLIterator->getParseTree() != NULL ) {
+-        ::vos::ORef<OSQLColumns> xColumns = m_pSQLIterator->getParameters();
++        ::rtl::Reference<OSQLColumns> xColumns = m_pSQLIterator->getParameters();
+         if(xColumns.isValid())
+         {
+             ::rtl::OUString aTabName,aColName,aParameterName,aParameterValue;
+@@ -1418,7 +1418,7 @@ void SAL_CALL OResultSet::executeQuery() throw( ::com::sun::star::sdbc::SQLExcep
+ // -----------------------------------------------------------------------------
+ 
+ void OResultSet::setBoundedColumns(const OValueRow& _rRow,
+-                                   const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns,
++                                   const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,
+                                    const Reference<XIndexAccess>& _xNames,
+                                    sal_Bool _bSetColumnMapping,
+                                    const Reference<XDatabaseMetaData>& _xMetaData,
+diff --git a/connectivity/source/drivers/mozab/MResultSet.hxx b/connectivity/source/drivers/mozab/MResultSet.hxx
+index a14f385..ef9dc24 100644
+--- connectivity/source/drivers/mozab/MResultSet.hxx
++++ connectivity/source/drivers/mozab/MResultSet.hxx
+@@ -288,7 +288,7 @@ protected:
+             ::std::vector< ::rtl::OUString> m_aAttributeStrings;
+             sal_Int32                m_nParamIndex;
+ 			sal_Bool 				 m_bIsAlwaysFalseQuery;
+-            ::vos::ORef<OKeySet>     m_pKeySet;
++            ::rtl::Reference<OKeySet>     m_pKeySet;
+             OSortIndex*              m_pSortIndex;
+ 			sal_Int32 				  m_nNewRow;		//inserted row
+ 			sal_Int32					  m_nUpdatedRow;	//updated row
+@@ -296,8 +296,8 @@ protected:
+ 			sal_Int32			          m_bIsReadOnly;
+             inline void resetParameters() { m_nParamIndex = 0; }
+ 
+-            ::vos::ORef<connectivity::OSQLColumns>  m_xColumns; // this are the select columns
+-            ::vos::ORef<connectivity::OSQLColumns>  m_xParamColumns;
++            ::rtl::Reference<connectivity::OSQLColumns>  m_xColumns; // this are the select columns
++            ::rtl::Reference<connectivity::OSQLColumns>  m_xParamColumns;
+             
+             void parseParameter( const OSQLParseNode* pNode, rtl::OUString& rMatchString );
+             void fillRowData() throw( ::com::sun::star::sdbc::SQLException );
+@@ -345,7 +345,7 @@ public:
+             void setParameterRow(const OValueRow& _rParaRow) 
+                       { m_aParameterRow = _rParaRow; }
+ 
+-            void setParameterColumns(const ::vos::ORef<connectivity::OSQLColumns>& _xParamColumns) 
++            void setParameterColumns(const ::rtl::Reference<connectivity::OSQLColumns>& _xParamColumns) 
+                       { m_xParamColumns = _xParamColumns; }
+ 
+             void setBindingRow(const OValueRow& _aRow) 
+@@ -363,7 +363,7 @@ public:
+ 
+             static void setBoundedColumns(
+                 const OValueRow& _rRow, 
+-                const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns, 
++                const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns, 
+                 const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xNames, 
+                 sal_Bool _bSetColumnMapping, 
+                 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& _xMetaData, 
+diff --git a/connectivity/source/drivers/mozab/MResultSetMetaData.hxx b/connectivity/source/drivers/mozab/MResultSetMetaData.hxx
+index d0b5ffe..ea4efd1 100644
+--- connectivity/source/drivers/mozab/MResultSetMetaData.hxx
++++ connectivity/source/drivers/mozab/MResultSetMetaData.hxx
+@@ -42,8 +42,8 @@
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+ #include <vector>
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef CONNECTIVITY_SCONNECTION_HXX
+@@ -65,7 +65,7 @@ namespace connectivity
+ 		class OResultSetMetaData :	public 	OResultSetMetaData_BASE
+ 		{
+             ::rtl::OUString                         m_aTableName;
+-            ::vos::ORef<connectivity::OSQLColumns>  m_xColumns;
++            ::rtl::Reference<connectivity::OSQLColumns>  m_xColumns;
+             OTable*                                 m_pTable;
+ 			sal_Bool								  m_bReadOnly;
+ 
+@@ -74,7 +74,7 @@ namespace connectivity
+ 		public:
+ 			// ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird:
+ 			// OResultSetMetaData(OConnection*	_pConnection) : m_pConnection(_pConnection){}
+-            OResultSetMetaData(const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns,
++            OResultSetMetaData(const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,
+                                const ::rtl::OUString& _aTableName,OTable* _pTable,sal_Bool aReadOnly
+                                )
+                  :m_aTableName(_aTableName)
+diff --git a/connectivity/source/drivers/mozab/MStatement.cxx b/connectivity/source/drivers/mozab/MStatement.cxx
+index 3d9798e..87bfb51 100644
+--- connectivity/source/drivers/mozab/MStatement.cxx
++++ connectivity/source/drivers/mozab/MStatement.cxx
+@@ -236,7 +236,7 @@ void OStatement_Base::createTable( )
+ {
+     if(m_pParseTree)
+     {
+-        ::vos::ORef<connectivity::OSQLColumns> xCreateColumn;
++        ::rtl::Reference<connectivity::OSQLColumns> xCreateColumn;
+         if (m_pSQLIterator->getStatementType() == SQL_STATEMENT_CREATE_TABLE)
+         {
+             const OSQLTables& xTabs = m_pSQLIterator->getTables();
+@@ -545,7 +545,7 @@ void OStatement_Base::createColumnMapping()
+     size_t i;
+ 
+     // initialize the column index map (mapping select columns to table columns)
+-	::vos::ORef<connectivity::OSQLColumns>	xColumns = m_pSQLIterator->getSelectColumns();
++	::rtl::Reference<connectivity::OSQLColumns>	xColumns = m_pSQLIterator->getSelectColumns();
+ 	m_aColMapping.resize(xColumns->size() + 1);
+ 	for (i=0; i<m_aColMapping.size(); ++i)
+ 		m_aColMapping[i] = i;
+diff --git a/connectivity/source/drivers/odbc/makefile.mk b/connectivity/source/drivers/odbc/makefile.mk
+index 4e2efbe..d08f371 100644
+--- connectivity/source/drivers/odbc/makefile.mk
++++ connectivity/source/drivers/odbc/makefile.mk
+@@ -79,7 +79,8 @@ SHL1STDLIBS=\
+ 	$(CPPUHELPERLIB)			\
+ 	$(CPPULIB)					\
+ 	$(VOSLIB)					\
+-	$(SALLIB)
++	$(SALLIB)					\
++	$(SALHELPERLIB)
+ 
+ SHL1DEPN=
+ SHL1IMPLIB=	i$(ODBC2_TARGET)
+diff --git a/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx b/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx
+index fc3e097..3727e07 100644
+--- connectivity/source/inc/FDatabaseMetaDataResultSet.hxx
++++ connectivity/source/inc/FDatabaseMetaDataResultSet.hxx
+@@ -81,8 +81,8 @@
+ #ifndef _COMPHELPER_BROADCASTHELPER_HXX_ 
+ #include <comphelper/broadcasthelper.hxx>
+ #endif
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ namespace connectivity
+diff --git a/connectivity/source/inc/TSortIndex.hxx b/connectivity/source/inc/TSortIndex.hxx
+index b30e40e..aafd4e5 100644
+--- connectivity/source/inc/TSortIndex.hxx
++++ connectivity/source/inc/TSortIndex.hxx
+@@ -107,7 +107,7 @@ namespace connectivity
+ 			CreateKeySet creates the keyset which vaalues could be used to travel in your table/result
+ 			The returned keyset is frozen.
+ 		*/
+-		::vos::ORef<OKeySet> CreateKeySet();
++		::rtl::Reference<OKeySet> CreateKeySet();
+ 
+ 
+ 
+diff --git a/connectivity/source/inc/adabas/BConnection.hxx b/connectivity/source/inc/adabas/BConnection.hxx
+index baa9362..97320aa 100644
+--- connectivity/source/inc/adabas/BConnection.hxx
++++ connectivity/source/inc/adabas/BConnection.hxx
+@@ -47,8 +47,8 @@
+ #ifndef _CPPUHELPER_WEAKREF_HXX_
+ #include <cppuhelper/weakref.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace connectivity
+@@ -90,7 +90,7 @@ namespace connectivity
+ 			virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw (::com::sun::star::uno::RuntimeException);
+ 			static ::com::sun::star::uno::Sequence< sal_Int8 > getUnoTunnelImplementationId();
+ 
+-			::vos::ORef<OSQLColumns> createSelectColumns(const ::rtl::OUString& _rSql);
++			::rtl::Reference<OSQLColumns> createSelectColumns(const ::rtl::OUString& _rSql);
+ 		};
+ 	}
+ }
+diff --git a/connectivity/source/inc/adabas/BPreparedStatement.hxx b/connectivity/source/inc/adabas/BPreparedStatement.hxx
+index 11c4436..5a8c276 100644
+--- connectivity/source/inc/adabas/BPreparedStatement.hxx
++++ connectivity/source/inc/adabas/BPreparedStatement.hxx
+@@ -48,7 +48,7 @@ namespace connectivity
+ 	{
+ 		class OAdabasPreparedStatement :	public	::connectivity::odbc::OPreparedStatement
+ 		{
+-			::vos::ORef<OSQLColumns>	m_aSelectColumns;
++			::rtl::Reference<OSQLColumns>	m_aSelectColumns;
+ 		protected:
+ 			virtual odbc::OResultSet* createResulSet();
+ 			virtual void setResultSetConcurrency(sal_Int32 _par0)	;
+diff --git a/connectivity/source/inc/adabas/BResultSet.hxx b/connectivity/source/inc/adabas/BResultSet.hxx
+index 962cb49..19b56b7 100644
+--- connectivity/source/inc/adabas/BResultSet.hxx
++++ connectivity/source/inc/adabas/BResultSet.hxx
+@@ -45,9 +45,9 @@ namespace connectivity
+ 	{
+ 		class OAdabasResultSet :	public	::connectivity::odbc::OResultSet
+ 		{
+-			::vos::ORef<OSQLColumns>	m_aSelectColumns;
++			::rtl::Reference<OSQLColumns>	m_aSelectColumns;
+ 		public:
+-			OAdabasResultSet(SQLHANDLE _pStatementHandle,::connectivity::odbc::OStatement_Base* pStmt,const ::vos::ORef<OSQLColumns>& _rSelectColumns) 
++			OAdabasResultSet(SQLHANDLE _pStatementHandle,::connectivity::odbc::OStatement_Base* pStmt,const ::rtl::Reference<OSQLColumns>& _rSelectColumns) 
+ 			 : ::connectivity::odbc::OResultSet( _pStatementHandle,pStmt)
+ 			 ,m_aSelectColumns(_rSelectColumns)
+ 			{}
+diff --git a/connectivity/source/inc/adabas/BResultSetMetaData.hxx b/connectivity/source/inc/adabas/BResultSetMetaData.hxx
+index ed73855..ec5f9e9 100644
+--- connectivity/source/inc/adabas/BResultSetMetaData.hxx
++++ connectivity/source/inc/adabas/BResultSetMetaData.hxx
+@@ -38,8 +38,8 @@
+ #ifndef _CONNECTIVITY_ODBC_ORESULTSETMETADATA_HXX_
+ #include "odbc/OResultSetMetaData.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace connectivity
+@@ -53,10 +53,10 @@ namespace connectivity
+ 		typedef odbc::OResultSetMetaData OAdabasResultSetMetaData_BASE;
+ 		class OAdabasResultSetMetaData :	public 	OAdabasResultSetMetaData_BASE
+ 		{
+-			::vos::ORef<OSQLColumns>	m_aSelectColumns;
++			::rtl::Reference<OSQLColumns>	m_aSelectColumns;
+ 		public:
+ 			// ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird:
+-			OAdabasResultSetMetaData(odbc::OConnection*	_pConnection, SQLHANDLE _pStmt ,const ::vos::ORef<OSQLColumns>& _rSelectColumns);
++			OAdabasResultSetMetaData(odbc::OConnection*	_pConnection, SQLHANDLE _pStmt ,const ::rtl::Reference<OSQLColumns>& _rSelectColumns);
+ 			OAdabasResultSetMetaData(odbc::OConnection*	_pConnection, SQLHANDLE _pStmt ,const ::std::vector<sal_Int32> & _vMapping);
+ 			virtual ~OAdabasResultSetMetaData();
+ 
+diff --git a/connectivity/source/inc/adabas/BStatement.hxx b/connectivity/source/inc/adabas/BStatement.hxx
+index e82c733..1101a22 100644
+--- connectivity/source/inc/adabas/BStatement.hxx
++++ connectivity/source/inc/adabas/BStatement.hxx
+@@ -44,8 +44,8 @@
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include "connectivity/commontools.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace connectivity
+@@ -55,7 +55,7 @@ namespace connectivity
+ 		class OAdabasStatement :	public	::connectivity::odbc::OStatement
+ 		{
+ 			OAdabasConnection*			m_pOwnConnection;
+-			::vos::ORef<OSQLColumns>	m_aSelectColumns;
++			::rtl::Reference<OSQLColumns>	m_aSelectColumns;
+ 		protected:
+ 			virtual odbc::OResultSet* createResulSet();
+ 			virtual void setResultSetConcurrency(sal_Int32 _par0);
+diff --git a/connectivity/source/inc/dbase/DIndexPage.hxx b/connectivity/source/inc/dbase/DIndexPage.hxx
+index 30c579c..fe0db8e 100644
+--- connectivity/source/inc/dbase/DIndexPage.hxx
++++ connectivity/source/inc/dbase/DIndexPage.hxx
+@@ -39,8 +39,8 @@
+ //#ifndef _REF_HXX
+ //#include <tools/ref.hxx>		
+ //#endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>		
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>		
+ #endif
+ #ifndef _STREAM_HXX
+ #include <tools/stream.hxx>
+@@ -66,7 +66,7 @@ namespace connectivity
+ 		//	SV_DECL_REF(ONDXPage); // Basisklasse da weitere Informationen gehalten werden muessen				
+ 
+ 		class ONDXPage;
+-		typedef vos::ORef<ONDXPage>			ONDXPagePtr_BASE;
++		typedef rtl::Reference<ONDXPage>			ONDXPagePtr_BASE;
+ 		
+ 		class ONDXPagePtr : public ONDXPagePtr_BASE //ONDXPageRef
+ 		{
+diff --git a/connectivity/source/inc/file/FPreparedStatement.hxx b/connectivity/source/inc/file/FPreparedStatement.hxx
+index 6308298..6e0b227 100644
+--- connectivity/source/inc/file/FPreparedStatement.hxx
++++ connectivity/source/inc/file/FPreparedStatement.hxx
+@@ -81,7 +81,7 @@ namespace connectivity
+             ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData>	m_xMetaData;
+             
+ 			OResultSet*											m_pResultSet;
+-			::vos::ORef<connectivity::OSQLColumns>				m_xParamColumns;	// the parameter columns
++			::rtl::Reference<connectivity::OSQLColumns>				m_xParamColumns;	// the parameter columns
+ 
+ 			// factory method for resultset's
+ 			virtual OResultSet* createResultSet();
+diff --git a/connectivity/source/inc/file/FResultSet.hxx b/connectivity/source/inc/file/FResultSet.hxx
+index 3313b66..892789d 100644
+--- connectivity/source/inc/file/FResultSet.hxx
++++ connectivity/source/inc/file/FResultSet.hxx
+@@ -149,14 +149,14 @@ namespace connectivity
+ //			::std::vector<TInt2IntMap::iterator>	m_aBookmarksPositions;// vector of iterators to bookmark map, the order is the logical position
+ 			OSkipDeletedSet							m_aSkipDeletedSet;
+ 
+-			::vos::ORef<OKeySet>					m_pFileSet;
++			::rtl::Reference<OKeySet>					m_pFileSet;
+ 			OKeySet::iterator						m_aFileSetIter;
+ 
+ 
+ 
+ 			OSortIndex*								m_pSortIndex;
+-			::vos::ORef<connectivity::OSQLColumns>	m_xColumns;	// this are the select columns
+-			::vos::ORef<connectivity::OSQLColumns>	m_xParamColumns;
++			::rtl::Reference<connectivity::OSQLColumns>	m_xColumns;	// this are the select columns
++			::rtl::Reference<connectivity::OSQLColumns>	m_xParamColumns;
+ 			OFileTable*								m_pTable;
+ 			connectivity::OSQLParseNode*			m_pParseTree;
+ 
+@@ -335,7 +335,7 @@ namespace connectivity
+ 			inline sal_Int32 getRowCountResult() const { return m_nRowCountResult; }
+ 			inline void setParameterRow(const OValueRefRow& _rParaRow)						{ m_aParameterRow = _rParaRow; }
+ 			inline void setEvaluationRow(const OValueRefRow& _aRow)						{ m_aEvaluateRow = _aRow; }
+-			inline void setParameterColumns(const ::vos::ORef<connectivity::OSQLColumns>&	_xParamColumns) { m_xParamColumns = _xParamColumns; }
++			inline void setParameterColumns(const ::rtl::Reference<connectivity::OSQLColumns>&	_xParamColumns) { m_xParamColumns = _xParamColumns; }
+ 			inline void setAssignValues(const ORefAssignValues& _aAssignValues)			{ m_aAssignValues = _aAssignValues; }
+ 			inline void setBindingRow(const OValueRefRow& _aRow)							{ m_aRow = _aRow; }
+ 			inline void setSelectRow(const OValueRefRow& _rRow)							{ m_aSelectRow = _rRow; }
+@@ -350,7 +350,7 @@ namespace connectivity
+ 			void clear();
+ 			static void setBoundedColumns(const OValueRefRow& _rRow,
+ 									const OValueRefRow& _rSelectRow,
+-									const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns,
++									const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,
+ 									const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xNames,
+ 									sal_Bool _bSetColumnMapping,
+ 									const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& _xMetaData,
+diff --git a/connectivity/source/inc/file/FResultSetMetaData.hxx b/connectivity/source/inc/file/FResultSetMetaData.hxx
+index 6517524..6f65872 100644
+--- connectivity/source/inc/file/FResultSetMetaData.hxx
++++ connectivity/source/inc/file/FResultSetMetaData.hxx
+@@ -45,8 +45,8 @@
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include "connectivity/CommonTools.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace connectivity
+@@ -62,7 +62,7 @@ namespace connectivity
+ 		class OResultSetMetaData :	public 	OResultSetMetaData_BASE
+ 		{
+ 			::rtl::OUString		m_aTableName;
+-			::vos::ORef<connectivity::OSQLColumns>	m_xColumns;
++			::rtl::Reference<connectivity::OSQLColumns>	m_xColumns;
+ 			OFileTable*			m_pTable;
+ 
+ 			void checkColumnIndex(sal_Int32 column) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+@@ -70,7 +70,7 @@ namespace connectivity
+ 			virtual ~OResultSetMetaData();
+ 		public:
+ 			// ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird:
+-			OResultSetMetaData(const ::vos::ORef<connectivity::OSQLColumns>& _rxColumns,const ::rtl::OUString& _aTableName,OFileTable*	_pTable);
++			OResultSetMetaData(const ::rtl::Reference<connectivity::OSQLColumns>& _rxColumns,const ::rtl::OUString& _aTableName,OFileTable*	_pTable);
+ 
+ 			/// Avoid ambigous cast error from the compiler.
+             inline operator ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > () throw()
+diff --git a/connectivity/source/inc/file/FTable.hxx b/connectivity/source/inc/file/FTable.hxx
+index e4d96c0..3cdcfdd 100644
+--- connectivity/source/inc/file/FTable.hxx
++++ connectivity/source/inc/file/FTable.hxx
+@@ -70,7 +70,7 @@ namespace connectivity
+ 			::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >	m_xMetaData;
+ 			OConnection*										m_pConnection;
+ 			SvStream*											m_pFileStream;
+-			::vos::ORef<OSQLColumns>							m_aColumns;
++			::rtl::Reference<OSQLColumns>							m_aColumns;
+ 			sal_Int32											m_nFilePos;					// aktuelle IResultSetHelper::Movement
+ 			sal_uInt8*											m_pBuffer;
+ 			sal_uInt16											m_nBufferSize;	// Groesse des ReadBuffer, wenn pBuffer != NULL
+@@ -106,7 +106,7 @@ namespace connectivity
+ 			virtual sal_Bool seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) = 0;
+ 			virtual sal_Bool fetchRow(OValueRefRow& _rRow,const OSQLColumns& _rCols, sal_Bool _bUseTableDefs,sal_Bool bRetrieveData) = 0;
+ 
+-			::vos::ORef<OSQLColumns> getTableColumns() const {return m_aColumns;}
++			::rtl::Reference<OSQLColumns> getTableColumns() const {return m_aColumns;}
+ 			virtual BOOL InsertRow(OValueRefVector& rRow, BOOL bFlush,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xCols);
+ 			virtual BOOL DeleteRow(const OSQLColumns& _rCols);
+ 			virtual BOOL UpdateRow(OValueRefVector& rRow, OValueRefRow& pOrgRow,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xCols);
+diff --git a/connectivity/source/inc/file/fanalyzer.hxx b/connectivity/source/inc/file/fanalyzer.hxx
+index b3a1355..52868c7 100644
+--- connectivity/source/inc/file/fanalyzer.hxx
++++ connectivity/source/inc/file/fanalyzer.hxx
+@@ -48,11 +48,11 @@ namespace connectivity
+ 		class OSQLAnalyzer
+ 		{
+ 			typedef ::std::list<OEvaluateSet*>		OEvaluateSetList;
+-			typedef ::std::pair< ::vos::ORef<OPredicateCompiler>,::vos::ORef<OPredicateInterpreter> > TPredicates;
++			typedef ::std::pair< ::rtl::Reference<OPredicateCompiler>,::rtl::Reference<OPredicateInterpreter> > TPredicates;
+ 
+ 			::std::vector< TPredicates >		m_aSelectionEvaluations;
+-			::vos::ORef<OPredicateCompiler>		m_aCompiler;
+-			::vos::ORef<OPredicateInterpreter>	m_aInterpreter;
++			::rtl::Reference<OPredicateCompiler>		m_aCompiler;
++			::rtl::Reference<OPredicateInterpreter>	m_aInterpreter;
+ 
+ 			mutable sal_Bool 					m_bHasSelectionCode;
+ 			mutable sal_Bool 					m_bSelectionFirstTime;
+@@ -71,7 +71,7 @@ namespace connectivity
+ 			inline static void SAL_CALL operator delete( void * /*pMem*/,void* /*_pHint*/ ) SAL_THROW( () )
+ 				{  }
+ 
+-			void describeParam(::vos::ORef<OSQLColumns> rParameterColumns); // genauere Beschreibung der Parameter
++			void describeParam(::rtl::Reference<OSQLColumns> rParameterColumns); // genauere Beschreibung der Parameter
+ 			::std::vector<sal_Int32>* bindEvaluationRow(OValueRefRow& _pRow);					// Anbinden einer Ergebniszeile an die Restrictions
+ 			/** bind the select columns if they contain a function which needs a row value
+ 				@param	_pRow	the result row
+diff --git a/connectivity/source/inc/file/fcode.hxx b/connectivity/source/inc/file/fcode.hxx
+index 6e75113..6cfa432 100644
+--- connectivity/source/inc/file/fcode.hxx
++++ connectivity/source/inc/file/fcode.hxx
+@@ -152,7 +152,7 @@ namespace connectivity
+ 		{
+ 		public:
+ 			OOperandParam(connectivity::OSQLParseNode* pNode, sal_Int32 _nPos);
+-			void describe(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xColumn, ::vos::ORef<connectivity::OSQLColumns> _xParamColumns);
++			void describe(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xColumn, ::rtl::Reference<connectivity::OSQLColumns> _xParamColumns);
+ 
+ 			TYPEINFO();
+ 		};
+diff --git a/connectivity/source/inc/file/fcomp.hxx b/connectivity/source/inc/file/fcomp.hxx
+index 13cc74c..b992b7f 100644
+--- connectivity/source/inc/file/fcomp.hxx
++++ connectivity/source/inc/file/fcomp.hxx
+@@ -52,7 +52,7 @@ namespace connectivity
+ 		class OSQLAnalyzer;
+ 		typedef::std::vector<OCode*> OCodeList;
+ 
+-		class OPredicateCompiler : public ::vos::OReference
++		class OPredicateCompiler : public ::salhelper::SimpleReferenceObject
+ 		{
+ 			friend class OPredicateInterpreter;
+ 			friend class OSQLAnalyzer;
+@@ -98,13 +98,13 @@ namespace connectivity
+ 		};
+ 
+ 
+-		class OPredicateInterpreter : public ::vos::OReference
++		class OPredicateInterpreter : public ::salhelper::SimpleReferenceObject
+ 		{
+ 			OCodeStack			m_aStack;
+-			::vos::ORef<OPredicateCompiler> m_rCompiler;
++			::rtl::Reference<OPredicateCompiler> m_rCompiler;
+ 
+ 		public:
+-			OPredicateInterpreter(const ::vos::ORef<OPredicateCompiler>& rComp) : m_rCompiler(rComp){}
++			OPredicateInterpreter(const ::rtl::Reference<OPredicateCompiler>& rComp) : m_rCompiler(rComp){}
+ 			virtual ~OPredicateInterpreter();
+ 
+ 			sal_Bool	evaluate(OCodeList& rCodeList);
+diff --git a/connectivity/source/parse/PColumn.cxx b/connectivity/source/parse/PColumn.cxx
+index 7e70dde..55510df 100644
+--- connectivity/source/parse/PColumn.cxx
++++ connectivity/source/parse/PColumn.cxx
+@@ -110,11 +110,11 @@ OParseColumn::OParseColumn(	const ::rtl::OUString& _Name,
+ }
+ 
+ // -------------------------------------------------------------------------
+-::vos::ORef< OSQLColumns > OParseColumn::createColumnsForResultSet( const Reference< XResultSetMetaData >& _rxResMetaData,
++::rtl::Reference< OSQLColumns > OParseColumn::createColumnsForResultSet( const Reference< XResultSetMetaData >& _rxResMetaData,
+     const Reference< XDatabaseMetaData >& _rxDBMetaData )
+ {
+     sal_Int32 nColumnCount = _rxResMetaData->getColumnCount();
+-    ::vos::ORef< OSQLColumns > aReturn( new OSQLColumns ); aReturn->reserve( nColumnCount );
++    ::rtl::Reference< OSQLColumns > aReturn( new OSQLColumns ); aReturn->reserve( nColumnCount );
+ 
+     for ( sal_Int32 i = 1; i <= nColumnCount; ++i )
+         aReturn->push_back( createColumnForResultSet( _rxResMetaData, _rxDBMetaData, i ) );
+diff --git a/connectivity/source/parse/sqliterator.cxx b/connectivity/source/parse/sqliterator.cxx
+index 2451b31..45083f0 100644
+--- connectivity/source/parse/sqliterator.cxx
++++ connectivity/source/parse/sqliterator.cxx
+@@ -356,7 +356,7 @@ void OSQLParseTreeIterator::impl_getQueryParameterColumns( const OSQLTable& _rQu
+         // parameters not to be included in the traversal
+         return;
+ 
+-    ::vos::ORef< OSQLColumns > pSubQueryParameterColumns( new OSQLColumns() );
++    ::rtl::Reference< OSQLColumns > pSubQueryParameterColumns( new OSQLColumns() );
+ 
+     // get the command and the EscapeProcessing properties from the sub query
+     ::rtl::OUString sSubQueryCommand;
+@@ -1563,7 +1563,7 @@ OSQLTable OSQLParseTreeIterator::impl_createTableObject( const ::rtl::OUString&
+     return aReturnTable;
+ }
+ //-----------------------------------------------------------------------------
+-void OSQLParseTreeIterator::appendColumns(::vos::ORef<OSQLColumns>& _rColumns,const ::rtl::OUString& _rTableAlias,const OSQLTable& _rTable)
++void OSQLParseTreeIterator::appendColumns(::rtl::Reference<OSQLColumns>& _rColumns,const ::rtl::OUString& _rTableAlias,const OSQLTable& _rTable)
+ {
+ 	
+ 	if (!_rTable.is())
+@@ -1605,7 +1605,7 @@ void OSQLParseTreeIterator::appendColumns(::vos::ORef<OSQLColumns>& _rColumns,co
+ 	}	 
+ }
+ //-----------------------------------------------------------------------------
+-void OSQLParseTreeIterator::setSelectColumnName(::vos::ORef<OSQLColumns>& _rColumns,const ::rtl::OUString & rColumnName,const ::rtl::OUString & rColumnAlias, const ::rtl::OUString & rTableRange,sal_Bool bFkt,sal_Int32 _nType,sal_Bool bAggFkt)
++void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns>& _rColumns,const ::rtl::OUString & rColumnName,const ::rtl::OUString & rColumnAlias, const ::rtl::OUString & rTableRange,sal_Bool bFkt,sal_Int32 _nType,sal_Bool bAggFkt)
+ {
+ 	if(rColumnName.toChar() == '*' && !rTableRange.getLength())
+ 	{   // SELECT * ...
+diff --git a/dbaccess/inc/pch/precompiled_dbaccess.hxx b/dbaccess/inc/pch/precompiled_dbaccess.hxx
+index db66f29..4465046 100644
+--- dbaccess/inc/pch/precompiled_dbaccess.hxx
++++ dbaccess/inc/pch/precompiled_dbaccess.hxx
+@@ -503,8 +503,8 @@
+ 
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "salhelper/simplereferenceobject.hxx"
+ #include "vos/thread.hxx"
+ 
+ #include "xmloff/ProgressBarHelper.hxx"
+diff --git a/dbaccess/source/core/api/CRowSetColumn.cxx b/dbaccess/source/core/api/CRowSetColumn.cxx
+index 5619c65..afe9a74 100644
+--- dbaccess/source/core/api/CRowSetColumn.cxx
++++ dbaccess/source/core/api/CRowSetColumn.cxx
+@@ -152,7 +152,7 @@ void SAL_CALL ORowSetColumn::getFastPropertyValue( Any& rValue, sal_Int32 nHandl
+ 			OColumnSettings::getFastPropertyValue( rValue, nHandle );
+ 			break;
+ 		case PROPERTY_ID_VALUE:
+-			if ( !m_aColumnValue.isNull() && (*m_aColumnValue).isValid() )
++			if ( !m_aColumnValue.isNull() && (*m_aColumnValue).is() )
+ 				rValue = (*(*m_aColumnValue))[m_nPos].makeAny();
+ 			break;
+ 		default:
+diff --git a/dbaccess/source/core/api/CRowSetDataColumn.cxx b/dbaccess/source/core/api/CRowSetDataColumn.cxx
+index 52c0ec6..c96a57f 100644
+--- dbaccess/source/core/api/CRowSetDataColumn.cxx
++++ dbaccess/source/core/api/CRowSetDataColumn.cxx
+@@ -156,7 +156,7 @@ void SAL_CALL ORowSetDataColumn::getFastPropertyValue( Any& rValue, sal_Int32 nH
+ 			OColumnSettings::getFastPropertyValue( rValue, nHandle );
+ 			break;
+ 		case PROPERTY_ID_VALUE:
+-			if ( !m_aColumnValue.isNull() && m_aColumnValue->isValid() )
++			if ( !m_aColumnValue.isNull() && m_aColumnValue->is() )
+ 			{
+ 				::osl::Mutex* pMutex = m_aColumnValue.getMutex();
+ 				::osl::MutexGuard aGuard( *pMutex );
+@@ -242,7 +242,7 @@ Sequence< sal_Int8 > ORowSetDataColumn::getImplementationId() throw (RuntimeExce
+ // -------------------------------------------------------------------------
+ void ORowSetDataColumn::fireValueChange(const ORowSetValue& _rOldValue)
+ {
+-	if ( !m_aColumnValue.isNull() && m_aColumnValue->isValid() && (!((*(*m_aColumnValue))[m_nPos] == _rOldValue)) )
++	if ( !m_aColumnValue.isNull() && m_aColumnValue->is() && (!((*(*m_aColumnValue))[m_nPos] == _rOldValue)) )
+ 	{
+ 		sal_Int32 nHandle = PROPERTY_ID_VALUE;
+ 		m_aOldValue = _rOldValue.makeAny();
+@@ -263,7 +263,7 @@ void ORowSetDataColumn::fireValueChange(const ORowSetValue& _rOldValue)
+ DBG_NAME(ORowSetDataColumns )
+ ORowSetDataColumns::ORowSetDataColumns(
+ 				sal_Bool _bCase,
+-				const ::vos::ORef< ::connectivity::OSQLColumns>& _rColumns,
++				const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ 				::cppu::OWeakObject& _rParent,
+ 				::osl::Mutex& _rMutex,
+ 				const ::std::vector< ::rtl::OUString> &_rVector
+@@ -298,7 +298,7 @@ void SAL_CALL ORowSetDataColumns::disposing(void)
+ 	//	m_aColumns.clear();
+ }
+ // -----------------------------------------------------------------------------
+-void ORowSetDataColumns::assign(const ::vos::ORef< ::connectivity::OSQLColumns>& _rColumns,const ::std::vector< ::rtl::OUString> &_rVector)
++void ORowSetDataColumns::assign(const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,const ::std::vector< ::rtl::OUString> &_rVector)
+ {
+ 	m_aColumns = _rColumns;
+ 	reFill(_rVector);
+diff --git a/dbaccess/source/core/api/CRowSetDataColumn.hxx b/dbaccess/source/core/api/CRowSetDataColumn.hxx
+index 2414658..2674fe0 100644
+--- dbaccess/source/core/api/CRowSetDataColumn.hxx
++++ dbaccess/source/core/api/CRowSetDataColumn.hxx
+@@ -105,14 +105,14 @@ namespace dbaccess
+ 	typedef connectivity::sdbcx::OCollection ORowSetDataColumns_BASE;
+ 	class ORowSetDataColumns : public ORowSetDataColumns_BASE
+ 	{
+-		::vos::ORef< ::connectivity::OSQLColumns> m_aColumns;
++		::rtl::Reference< ::connectivity::OSQLColumns> m_aColumns;
+ 	protected:
+ 		virtual connectivity::sdbcx::ObjectType createObject(const ::rtl::OUString& _rName);
+ 		virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException);
+ 	public:
+ 		ORowSetDataColumns(
+ 						sal_Bool _bCase,
+-						const ::vos::ORef< ::connectivity::OSQLColumns>& _rColumns,
++						const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ 						::cppu::OWeakObject& _rParent,
+ 						::osl::Mutex& _rMutex,
+ 						const ::std::vector< ::rtl::OUString> &_rVector
+@@ -120,7 +120,7 @@ namespace dbaccess
+ 		virtual ~ORowSetDataColumns();
+ 		// only the name is identical to ::cppu::OComponentHelper
+ 		virtual void SAL_CALL disposing(void);
+-		void assign(const ::vos::ORef< ::connectivity::OSQLColumns>& _rColumns,const ::std::vector< ::rtl::OUString> &_rVector);
++		void assign(const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,const ::std::vector< ::rtl::OUString> &_rVector);
+ 	};
+ }
+ 
+diff --git a/dbaccess/source/core/api/HelperCollections.cxx b/dbaccess/source/core/api/HelperCollections.cxx
+index a1402f7..5d219ca 100644
+--- dbaccess/source/core/api/HelperCollections.cxx
++++ dbaccess/source/core/api/HelperCollections.cxx
+@@ -59,7 +59,7 @@ namespace dbaccess
+ 	using namespace ::cppu;
+ 	using namespace ::osl;
+ 	// -----------------------------------------------------------------------------
+-	OPrivateColumns::OPrivateColumns(const ::vos::ORef< ::connectivity::OSQLColumns>& _rColumns,
++	OPrivateColumns::OPrivateColumns(const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ 						sal_Bool _bCase,
+ 						::cppu::OWeakObject& _rParent,
+ 						::osl::Mutex& _rMutex,
+@@ -71,7 +71,7 @@ namespace dbaccess
+ 	}
+ 
+ 	// -------------------------------------------------------------------------
+-    OPrivateColumns* OPrivateColumns::createWithIntrinsicNames( const ::vos::ORef< ::connectivity::OSQLColumns >& _rColumns,
++    OPrivateColumns* OPrivateColumns::createWithIntrinsicNames( const ::rtl::Reference< ::connectivity::OSQLColumns >& _rColumns,
+         sal_Bool _bCase, ::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex )
+     {
+         ::std::vector< ::rtl::OUString > aNames; aNames.reserve( _rColumns->size() );
+@@ -101,7 +101,7 @@ namespace dbaccess
+ 	// -------------------------------------------------------------------------
+ 	connectivity::sdbcx::ObjectType OPrivateColumns::createObject(const ::rtl::OUString& _rName)
+ 	{
+-		if ( m_aColumns.isValid() )
++		if ( m_aColumns.is() )
+ 		{
+ 			::connectivity::OSQLColumns::const_iterator aIter = find(m_aColumns->begin(),m_aColumns->end(),_rName,isCaseSensitive());
+ 			if(aIter == m_aColumns->end())
+diff --git a/dbaccess/source/core/api/HelperCollections.hxx b/dbaccess/source/core/api/HelperCollections.hxx
+index b869941..bb222f1 100644
+--- dbaccess/source/core/api/HelperCollections.hxx
++++ dbaccess/source/core/api/HelperCollections.hxx
+@@ -47,8 +47,8 @@
+ #ifndef _CONNECTIVITY_SDBCX_COLUMN_HXX_
+ #include <connectivity/PColumn.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ namespace dbaccess
+@@ -70,7 +70,7 @@ namespace dbaccess
+ 	typedef connectivity::sdbcx::OCollection OPrivateColumns_Base;
+ 	class OPrivateColumns : public OPrivateColumns_Base
+ 	{
+-		::vos::ORef< ::connectivity::OSQLColumns>	m_aColumns;
++		::rtl::Reference< ::connectivity::OSQLColumns>	m_aColumns;
+ 	protected:
+ 		virtual connectivity::sdbcx::ObjectType createObject(const ::rtl::OUString& _rName);
+ 		virtual void impl_refresh() throw(RuntimeException) {}
+@@ -79,7 +79,7 @@ namespace dbaccess
+ 			return NULL;
+ 		}
+ 	public:
+-		OPrivateColumns(const ::vos::ORef< ::connectivity::OSQLColumns>& _rColumns,
++		OPrivateColumns(const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ 						sal_Bool _bCase,
+ 						::cppu::OWeakObject& _rParent,
+ 						::osl::Mutex& _rMutex,
+@@ -90,7 +90,7 @@ namespace dbaccess
+         /** creates a columns instance as above, but taking the names from the columns itself
+         */
+ 		static OPrivateColumns* createWithIntrinsicNames(
+-            const ::vos::ORef< ::connectivity::OSQLColumns >& _rColumns,
++            const ::rtl::Reference< ::connectivity::OSQLColumns >& _rColumns,
+ 			sal_Bool _bCase,
+ 			::cppu::OWeakObject& _rParent,
+ 			::osl::Mutex& _rMutex
+diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
+index 96cea1c..4eca1cd 100644
+--- dbaccess/source/core/api/RowSet.cxx
++++ dbaccess/source/core/api/RowSet.cxx
+@@ -702,7 +702,7 @@ void ORowSet::freeResources( bool _bComplete )
+ 		m_bModified		= sal_False;
+ 		m_bLastKnownRowCountFinal = sal_False;
+         m_nLastKnownRowCount      = 0;
+-		if ( m_aOldRow.isValid() )
++		if ( m_aOldRow.is() )
+ 			m_aOldRow->clearRow();
+ 
+         impl_disposeParametersContainer_nothrow();
+@@ -1014,7 +1014,7 @@ void SAL_CALL ORowSet::insertRow(  ) throw(SQLException, RuntimeException)
+ 
+ 		ORowSetRow aOldValues;
+ 		if ( !m_aCurrentRow.isNull() )
+-			aOldValues = new ORowSetValueVector( m_aCurrentRow->getBody() );
++			aOldValues = new ORowSetValueVector( *(*m_aCurrentRow) );
+ 		RowChangeEvent aEvt(*this,RowChangeAction::INSERT,1);
+ 		notifyAllListenersRowBeforeChange(aGuard,aEvt);
+ 
+@@ -1066,7 +1066,7 @@ void SAL_CALL ORowSet::updateRow(  ) throw(SQLException, RuntimeException)
+ 	{
+ 		ORowSetRow aOldValues;
+ 		if ( !m_aCurrentRow.isNull() )
+-			aOldValues = new ORowSetValueVector( m_aCurrentRow->getBody() );
++			aOldValues = new ORowSetValueVector( *(*m_aCurrentRow) );
+ 
+ 		RowChangeEvent aEvt(*this,RowChangeAction::UPDATE,1);
+ 		notifyAllListenersRowBeforeChange(aGuard,aEvt);
+@@ -1074,7 +1074,7 @@ void SAL_CALL ORowSet::updateRow(  ) throw(SQLException, RuntimeException)
+         m_pCache->updateRow(m_aCurrentRow.operator ->());
+ 		m_aBookmark		= m_pCache->getBookmark();
+ 		m_aCurrentRow	= m_pCache->m_aMatrixIter;
+-		m_aOldRow->setRow(new ORowSetValueVector(m_aCurrentRow->getBody()));
++		m_aOldRow->setRow(new ORowSetValueVector( *(*m_aCurrentRow) ));
+ 
+ 		// notification order
+ 		// - column values
+@@ -1121,8 +1121,8 @@ void SAL_CALL ORowSet::deleteRow(  ) throw(SQLException, RuntimeException)
+     notifyRowSetAndClonesRowDelete( aBookmarkToDelete );
+ 
+ 	ORowSetRow aOldValues;
+-	if ( m_pCache->m_aMatrixIter != m_pCache->getEnd() && m_pCache->m_aMatrixIter->isValid() )
+-		aOldValues = new ORowSetValueVector( m_pCache->m_aMatrixIter->getBody() );
++	if ( m_pCache->m_aMatrixIter != m_pCache->getEnd() && m_pCache->m_aMatrixIter->is() )
++		aOldValues = new ORowSetValueVector( *(*(m_pCache->m_aMatrixIter)) );
+ 
+ 	RowChangeEvent aEvt(*this,RowChangeAction::DELETE,1);
+ 	notifyAllListenersRowBeforeChange(aGuard,aEvt);
+@@ -1166,7 +1166,7 @@ void ORowSet::implCancelRowUpdates( sal_Bool _bNotifyModified ) SAL_THROW( ( SQL
+ 
+ 	ORowSetRow aOldValues;
+ 	if ( !m_aCurrentRow.isNull() )
+-		aOldValues = new ORowSetValueVector( m_aCurrentRow->getBody() );
++		aOldValues = new ORowSetValueVector( *(*m_aCurrentRow) );
+ 
+ 	m_pCache->cancelRowUpdates();
+ 
+@@ -1296,9 +1296,9 @@ void SAL_CALL ORowSet::moveToInsertRow(  ) throw(SQLException, RuntimeException)
+ 		if  (   !m_bBeforeFirst
+             &&  !m_bAfterLast
+             &&  m_pCache->m_aMatrixIter != m_pCache->getEnd()
+-            &&  m_pCache->m_aMatrixIter->isValid()
++            &&  m_pCache->m_aMatrixIter->is()
+             )
+-			aOldValues = new ORowSetValueVector( m_pCache->m_aMatrixIter->getBody() );
++			aOldValues = new ORowSetValueVector( *(*(m_pCache->m_aMatrixIter)) );
+ 
+ 		const sal_Bool bNewState = m_bNew;
+ 		const sal_Bool bModState = m_bModified;
+@@ -1714,7 +1714,7 @@ Reference< XResultSet > ORowSet::impl_prepareAndExecute_throw()
+     catch( const SQLException& )
+     {
+         SQLExceptionInfo aError( ::cppu::getCaughtException() );
+-        OSL_ENSURE( aError.isValid(), "ORowSet::impl_prepareAndExecute_throw: caught an SQLException which we cannot analyze!" );
++        OSL_ENSURE( aError.is(), "ORowSet::impl_prepareAndExecute_throw: caught an SQLException which we cannot analyze!" );
+ 
+         // append information about what we were actually going to execute
+         try
+@@ -1864,7 +1864,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
+ 		if ( xNumberFormat.is() )
+ 			m_xNumberFormatTypes.set(xNumberFormat->getNumberFormats(),UNO_QUERY);
+ 
+-		::vos::ORef< ::connectivity::OSQLColumns> aColumns = new ::connectivity::OSQLColumns();
++		::rtl::Reference< ::connectivity::OSQLColumns> aColumns = new ::connectivity::OSQLColumns();
+ 		::std::vector< ::rtl::OUString> aNames;
+ 		::rtl::OUString aDescription;
+ 		sal_Int32 nFormatKey = 0;
+@@ -2746,7 +2746,7 @@ ORowSetClone::ORowSetClone(ORowSet& rParent,::osl::Mutex* _pMutex)
+ 
+ 	m_aOldRow = m_pCache->registerOldRow();
+ 
+-	::vos::ORef< ::connectivity::OSQLColumns> aColumns = new ::connectivity::OSQLColumns();
++	::rtl::Reference< ::connectivity::OSQLColumns> aColumns = new ::connectivity::OSQLColumns();
+ 	::std::vector< ::rtl::OUString> aNames;
+ 
+ 	::rtl::OUString aDescription;
+diff --git a/dbaccess/source/core/api/RowSetBase.cxx b/dbaccess/source/core/api/RowSetBase.cxx
+index 4ba8a7e..11d6ef8 100644
+--- dbaccess/source/core/api/RowSetBase.cxx
++++ dbaccess/source/core/api/RowSetBase.cxx
+@@ -248,7 +248,7 @@ sal_Bool SAL_CALL ORowSetBase::wasNull(  ) throw(SQLException, RuntimeException)
+ 	checkCache();
+ 	
+ 
+-	return ((m_nLastColumnIndex != -1) && !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid()) ? (*(*m_aCurrentRow))[m_nLastColumnIndex].isNull() : sal_True;
++	return ((m_nLastColumnIndex != -1) && !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is()) ? (*(*m_aCurrentRow))[m_nLastColumnIndex].isNull() : sal_True;
+ }
+ // -----------------------------------------------------------------------------
+ 
+@@ -269,7 +269,7 @@ const ORowSetValue& ORowSetBase::getValue(sal_Int32 columnIndex)
+         return m_aEmptyValue;
+ 	}
+ 
+-    bool bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid() );
++    bool bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
+     if ( !bValidCurrentRow )
+     {
+         // currentrow is null when the clone moves the window
+@@ -277,7 +277,7 @@ const ORowSetValue& ORowSetBase::getValue(sal_Int32 columnIndex)
+ 		m_aCurrentRow	= m_pCache->m_aMatrixIter;
+ 		OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getValue: we don't stand on a valid row! Row is null.");
+ 
+-        bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid() );
++        bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
+ 	}
+ 
+     if ( bValidCurrentRow )
+@@ -294,14 +294,14 @@ const ORowSetValue& ORowSetBase::getValue(sal_Int32 columnIndex)
+         ORowSetMatrix::iterator k = aHelper.aIterator;
+         for (; k != m_pCache->getEnd(); ++k)
+         {
+-            ORowSetValueVector* pTemp = k->getBodyPtr();
++            ORowSetValueVector* pTemp = k->get();
+             OSL_ENSURE( pTemp != (void*)0xfeeefeee,"HALT!" );
+         }
+ #endif
+ 		OSL_ENSURE(!m_aCurrentRow.isNull() && m_aCurrentRow < m_pCache->getEnd() && aCacheIter != m_pCache->m_aCacheIterators.end(),"Invalid iterator set for currentrow!");
+ #if OSL_DEBUG_LEVEL > 0
+         ORowSetRow rRow = (*m_aCurrentRow);
+-        OSL_ENSURE(rRow.isValid() && static_cast<sal_uInt16>(columnIndex) < (*rRow).size(),"Invalid size of vector!");
++        OSL_ENSURE(rRow.is() && static_cast<sal_uInt16>(columnIndex) < (*rRow).size(),"Invalid size of vector!");
+ #endif
+ 		return (*(*m_aCurrentRow))[m_nLastColumnIndex = columnIndex];
+ 	}
+@@ -399,14 +399,14 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL ORowSetBase::getBinaryS
+         return NULL;
+ 	}
+ 
+-    bool bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid() );
++    bool bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
+     if ( !bValidCurrentRow )
+ 	{
+         positionCache( MOVE_NONE_REFRESH_ONLY );
+ 		m_aCurrentRow	= m_pCache->m_aMatrixIter;
+ 		OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getBinaryStream: we don't stand on a valid row! Row is null.");
+ 
+-        bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid() );
++        bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
+ 	}
+ 
+     if ( bValidCurrentRow )
+@@ -1096,7 +1096,7 @@ void ORowSetBase::setCurrentRow( sal_Bool _bMoved, sal_Bool _bDoNotify, const OR
+ 		OSL_ENSURE(!m_aCurrentRow.isNull(),"CurrentRow is null!");
+ 		m_aCurrentRow.setBookmark(m_aBookmark);
+ 		OSL_ENSURE(!m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd(),"Position of matrix iterator isn't valid!");
+-		OSL_ENSURE(m_aCurrentRow->isValid(),"Currentrow isn't valid");
++		OSL_ENSURE(m_aCurrentRow->is(),"Currentrow isn't valid");
+ 		OSL_ENSURE(m_aBookmark.hasValue(),"Bookmark has no value!");
+ 
+ #if OSL_DEBUG_LEVEL > 0
+@@ -1111,7 +1111,7 @@ void ORowSetBase::setCurrentRow( sal_Bool _bMoved, sal_Bool _bDoNotify, const OR
+ 		OSL_ENSURE(!m_aCurrentRow.isNull(),"CurrentRow is nul after positionCache!");
+ #if OSL_DEBUG_LEVEL > 0
+         ORowSetRow rRow = (*m_aCurrentRow);
+-        OSL_ENSURE(rRow.isValid() ,"Invalid size of vector!");
++        OSL_ENSURE(rRow.is() ,"Invalid size of vector!");
+ #endif
+ 		// the cache could repositioned so we need to adjust the cache
+ 		// #104144# OJ
+@@ -1136,8 +1136,8 @@ void ORowSetBase::setCurrentRow( sal_Bool _bMoved, sal_Bool _bDoNotify, const OR
+ 	    firePropertyChange(_rOldValues);
+ 
+ 	// TODO: can this be done before the notifications?
+-	if(!(m_bBeforeFirst || m_bAfterLast) && !m_aCurrentRow.isNull() && m_aCurrentRow->isValid() && m_aCurrentRow != m_pCache->getEnd())
+-		m_aOldRow->setRow(new ORowSetValueVector(m_aCurrentRow->getBody()));
++	if(!(m_bBeforeFirst || m_bAfterLast) && !m_aCurrentRow.isNull() && m_aCurrentRow->is() && m_aCurrentRow != m_pCache->getEnd())
++		m_aOldRow->setRow(new ORowSetValueVector( *(*m_aCurrentRow) ));
+ 
+ 	if ( _bMoved && _bDoNotify )
+ 		// - cursorMoved
+@@ -1249,7 +1249,7 @@ void ORowSetBase::firePropertyChange(const ORowSetRow& _rOldRow)
+ 	try
+ 	{
+ 		for(TDataColumns::iterator aIter = m_aDataColumns.begin();aIter != m_aDataColumns.end();++aIter,++i) // #104278# OJ ++i inserted
+-			(*aIter)->fireValueChange(_rOldRow.isValid() ? (*_rOldRow)[i+1] : ::connectivity::ORowSetValue());
++			(*aIter)->fireValueChange(_rOldRow.is() ? (*_rOldRow)[i+1] : ::connectivity::ORowSetValue());
+ 	}
+ 	catch(Exception&)
+ 	{
+@@ -1365,10 +1365,10 @@ void ORowSetBase::movementFailed()
+ // -----------------------------------------------------------------------------
+ ORowSetRow ORowSetBase::getOldRow(sal_Bool _bWasNew)
+ {
+-	OSL_ENSURE(m_aOldRow.isValid(),"RowSetRowHElper isn't valid!");
++	OSL_ENSURE(m_aOldRow.is(),"RowSetRowHElper isn't valid!");
+ 	ORowSetRow aOldValues;
+-	if ( !_bWasNew && m_aOldRow->getRow().isValid() )
+-		aOldValues = new ORowSetValueVector( m_aOldRow->getRow().getBody());	 // remember the old values
++	if ( !_bWasNew && m_aOldRow->getRow().is() )
++		aOldValues = new ORowSetValueVector( *(m_aOldRow->getRow()) );	 // remember the old values
+ 	return aOldValues;
+ }
+ // -----------------------------------------------------------------------------
+diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
+index e645ef1..ed4de67 100644
+--- dbaccess/source/core/api/RowSetCache.cxx
++++ dbaccess/source/core/api/RowSetCache.cxx
+@@ -480,7 +480,7 @@ Any ORowSetCache::getBookmark(  )
+ 	if(m_bAfterLast)
+ 		throwFunctionSequenceException(m_xSet.get());
+ 
+-	if ( m_aMatrixIter >= m_pMatrix->end() || m_aMatrixIter < m_pMatrix->begin() || !(*m_aMatrixIter).isValid())
++	if ( m_aMatrixIter >= m_pMatrix->end() || m_aMatrixIter < m_pMatrix->begin() || !(*m_aMatrixIter).is())
+ 	{
+ 		return Any(); // this is allowed here because the rowset knowns what it is doing
+ 	}
+@@ -514,7 +514,7 @@ sal_Bool ORowSetCache::moveToBookmark( const Any& bookmark )
+ 			if ( !m_bAfterLast )
+ 			{
+ 				m_aMatrixIter = calcPosition();
+-				OSL_ENSURE(m_aMatrixIter->isValid(),"Iterator after moveToBookmark not valid");
++				OSL_ENSURE(m_aMatrixIter->is(),"Iterator after moveToBookmark not valid");
+ 			}
+ 			else
+ 				m_aMatrixIter = m_pMatrix->end();
+@@ -525,7 +525,7 @@ sal_Bool ORowSetCache::moveToBookmark( const Any& bookmark )
+ 	else
+ 		return sal_False;
+ 
+-	return m_aMatrixIter != m_pMatrix->end() && (*m_aMatrixIter).isValid();
++	return m_aMatrixIter != m_pMatrix->end() && (*m_aMatrixIter).is();
+ }
+ // -------------------------------------------------------------------------
+ sal_Bool ORowSetCache::moveRelativeToBookmark( const Any& bookmark, sal_Int32 rows )
+@@ -537,7 +537,7 @@ sal_Bool ORowSetCache::moveRelativeToBookmark( const Any& bookmark, sal_Int32 ro
+ 		absolute(m_nPosition);
+ 		//	for(sal_Int32 i=0;i<rows && m_aMatrixIter != m_pMatrix->end();++i,++m_aMatrixIter) ;
+ 
+-		bRet = m_aMatrixIter != m_pMatrix->end() && (*m_aMatrixIter).isValid();
++		bRet = m_aMatrixIter != m_pMatrix->end() && (*m_aMatrixIter).is();
+ 	}
+ 
+ 	return bRet;
+@@ -717,7 +717,7 @@ sal_Bool ORowSetCache::fillMatrix(sal_Int32& _nNewStartPos,sal_Int32 _nNewEndPos
+ 	{
+ 		if(bCheck)
+ 		{
+-			if(!aIter->isValid())
++			if(!aIter->is())
+ 				*aIter = new ORowSetValueVector(m_xMetaData->getColumnCount());
+ 			m_pCacheSet->fillValueRow(*aIter,i);
+ 		}
+@@ -743,7 +743,7 @@ sal_Bool ORowSetCache::fillMatrix(sal_Int32& _nNewStartPos,sal_Int32 _nNewEndPos
+ 				{
+ 					if(bCheck)
+ 					{
+-						if(!aIter->isValid())
++						if(!aIter->is())
+ 							*aIter = new ORowSetValueVector(m_xMetaData->getColumnCount());
+ 						m_pCacheSet->fillValueRow(*aIter,nPos++);
+ 					}
+@@ -877,7 +877,7 @@ sal_Bool ORowSetCache::moveWindow()
+                     bCheck = m_pCacheSet->next();
+ 					if ( bCheck )
+ 					{
+-						if(!aIter->isValid())
++						if(!aIter->is())
+ 							*aIter = new ORowSetValueVector(m_xMetaData->getColumnCount());
+ 						m_pCacheSet->fillValueRow(*aIter,i+1);
+ 					}
+@@ -896,7 +896,7 @@ sal_Bool ORowSetCache::moveWindow()
+ 		{	// position in window
+ 			OSL_ENSURE((m_nPosition - m_nStartPos -1) < (sal_Int32)m_pMatrix->size(),"Position is behind end()!");
+ 			m_aMatrixIter = calcPosition();
+-			if(!m_aMatrixIter->isValid())
++			if(!m_aMatrixIter->is())
+ 			{
+ 				sal_Bool bOk( m_pCacheSet->absolute( m_nPosition ) );
+ 				if ( bOk )
+@@ -982,13 +982,13 @@ sal_Bool ORowSetCache::moveWindow()
+ 					m_nStartPos = 0;
+ 			}
+ 			// here we need only to check if the begining row is valid. If not we have to fetch it.
+-			if(!m_pMatrix->begin()->isValid())
++			if(!m_pMatrix->begin()->is())
+ 			{
+ 				aIter = m_pMatrix->begin();
+ 
+ 				nPos	= m_nStartPos;
+ 				bCheck	= m_pCacheSet->absolute(m_nStartPos);
+-				for(; !aIter->isValid() && bCheck;++aIter)
++				for(; !aIter->is() && bCheck;++aIter)
+ 				{
+                     OSL_ENSURE(aIter != m_pMatrix->end(),"Invalid iterator");
+                     bCheck = m_pCacheSet->next();
+@@ -1068,7 +1068,7 @@ sal_Bool ORowSetCache::last(  )
+ #if OSL_DEBUG_LEVEL > 1
+ 	if(bRet)
+ 	{
+-		OSL_ENSURE((*m_aMatrixIter).isValid(),"ORowSetCache::last: Row not valid!");
++		OSL_ENSURE((*m_aMatrixIter).is(),"ORowSetCache::last: Row not valid!");
+ 	}
+ #endif
+ 
+@@ -1185,7 +1185,7 @@ sal_Bool ORowSetCache::previous(  )
+ 			else
+ 			{
+ 				m_aMatrixIter = calcPosition();
+-				bRet = (*m_aMatrixIter).isValid();
++				bRet = (*m_aMatrixIter).is();
+ 			}
+ 		}
+ 	}
+@@ -1218,7 +1218,7 @@ sal_Bool ORowSetCache::rowInserted(  )
+ // XResultSetUpdate
+ sal_Bool ORowSetCache::insertRow(  )
+ {
+-	if ( !m_bNew || !m_aInsertRow->isValid() )
++	if ( !m_bNew || !m_aInsertRow->is() )
+ 		throw SQLException(DBACORE_RESSTRING(RID_STR_NO_MOVETOINSERTROW_CALLED),NULL,SQLSTATE_GENERAL,1000,Any() );
+ 
+ 	m_pCacheSet->insertRow(*m_aInsertRow,m_aUpdateTable);
+@@ -1300,7 +1300,7 @@ bool ORowSetCache::deleteRow(  )
+     //	(*m_pMatrix)[(m_nPosition - m_nStartPos)] = NULL; // set the deleted row to NULL
+ 
+ 
+-    for(++aPos;aPos != m_pMatrix->end() && aPos->isValid();++aPos)
++    for(++aPos;aPos != m_pMatrix->end() && aPos->is();++aPos)
+     {
+         *(aPos-1) = *aPos;
+         (*aPos)	  = NULL;
+@@ -1335,7 +1335,7 @@ void ORowSetCache::moveToInsertRow(  )
+ 	m_bUpdated	= m_bAfterLast = sal_False;
+ 
+ 	m_aInsertRow = m_pInsertMatrix->begin();
+-	if(!m_aInsertRow->isValid())
++	if(!m_aInsertRow->is())
+ 		*m_aInsertRow = new ORowSetValueVector(m_xMetaData->getColumnCount());
+ 
+ 	// we don't unbound the bookmark column
+@@ -1388,7 +1388,7 @@ void ORowSetCache::rotateCacheIterator(ORowSetMatrix::difference_type _nDist)
+ void ORowSetCache::setUpdateIterator(const ORowSetMatrix::iterator& _rOriginalRow)
+ {
+ 	m_aInsertRow = m_pInsertMatrix->begin();
+-	if(!m_aInsertRow->isValid())
++	if(!m_aInsertRow->is())
+ 		*m_aInsertRow = new ORowSetValueVector(m_xMetaData->getColumnCount());
+ 
+ 	(*(*m_aInsertRow)) = (*(*_rOriginalRow));
+@@ -1518,7 +1518,7 @@ sal_Bool ORowSetCache::checkJoin(const Reference< XConnection>& _xConnection,
+ void ORowSetCache::clearInsertRow()
+ {
+ 	// we don't unbound the bookmark column
+-	if ( m_aInsertRow != m_pInsertMatrix->end() && m_aInsertRow->isValid() )
++	if ( m_aInsertRow != m_pInsertMatrix->end() && m_aInsertRow->is() )
+ 	{
+ 		ORowSetValueVector::iterator aIter = (*m_aInsertRow)->begin()+1;
+ 		ORowSetValueVector::iterator aEnd = (*m_aInsertRow)->end();
+@@ -1550,7 +1550,7 @@ void ORowSetCache::deregisterOldRow(const TORowSetOldRowHelperRef& _rRow)
+ {
+ 	for (TOldRowSetRows::iterator aOldRowIter = m_aOldRows.begin(); aOldRowIter != m_aOldRows.end(); ++aOldRowIter)
+ 	{
+-		if ( aOldRowIter->getBodyPtr() == _rRow.getBodyPtr() )
++		if ( aOldRowIter->get() == _rRow.get() )
+ 		{
+ 			m_aOldRows.erase(aOldRowIter);
+ 			break;
+@@ -1563,8 +1563,8 @@ sal_Bool ORowSetCache::reFillMatrix(sal_Int32 _nNewStartPos,sal_Int32 _nNewEndPo
+ {
+ 	for (TOldRowSetRows::iterator aOldRowIter = m_aOldRows.begin(); aOldRowIter != m_aOldRows.end(); ++aOldRowIter)
+ 	{
+-		if ( aOldRowIter->isValid() && aOldRowIter->getBody().getRow().isValid() )
+-			aOldRowIter->getBody().setRow(new ORowSetValueVector(aOldRowIter->getBody().getRow().getBody()) );
++		if ( aOldRowIter->is() && (*aOldRowIter)->getRow().is() )
++			(*aOldRowIter)->setRow(new ORowSetValueVector( *((*aOldRowIter)->getRow()) ) );
+ 	}
+ 	sal_Int32 nNewSt = _nNewStartPos;
+ 	sal_Bool bRet = fillMatrix(nNewSt,_nNewEndPos);
+@@ -1578,13 +1578,13 @@ sal_Bool ORowSetCache::fill(ORowSetMatrix::iterator& _aIter,const ORowSetMatrix:
+ 	sal_Int32 nColumnCount = m_xMetaData->getColumnCount();
+ 	for(; _bCheck && _aIter != _aEnd;)
+ 	{
+-		if ( !_aIter->isValid() )
++		if ( !_aIter->is() )
+ 			*_aIter = new ORowSetValueVector(nColumnCount);
+ 		else
+ 		{
+ 			for (TOldRowSetRows::iterator aOldRowIter = m_aOldRows.begin(); aOldRowIter != m_aOldRows.end(); ++aOldRowIter)
+ 			{
+-				if ( aOldRowIter->getBody().getRow().isEqualBody(*_aIter) )
++				if ( (*aOldRowIter)->getRow().get() == (*_aIter).get() )
+ 					*_aIter = new ORowSetValueVector(nColumnCount);
+ 			}
+ 		}
+diff --git a/dbaccess/source/core/api/RowSetRow.hxx b/dbaccess/source/core/api/RowSetRow.hxx
+index 3ac5b5f..d277804 100644
+--- dbaccess/source/core/api/RowSetRow.hxx
++++ dbaccess/source/core/api/RowSetRow.hxx
+@@ -35,8 +35,8 @@
+ #ifndef DBACCESS_CORE_API_ROWSETROW_HXX
+ #define DBACCESS_CORE_API_ROWSETROW_HXX
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include <connectivity/CommonTools.hxx>
+@@ -51,7 +51,7 @@
+ namespace dbaccess
+ {
+ 	typedef connectivity::ORowVector< connectivity::ORowSetValue >	ORowSetValueVector;
+-	typedef ::vos::ORef< ORowSetValueVector >						ORowSetRow;
++	typedef ::rtl::Reference< ORowSetValueVector >						ORowSetRow;
+ 	typedef ::std::vector< ORowSetRow >								ORowSetMatrix;
+ 
+ 	class ORowSetOldRowHelper
+@@ -86,7 +86,7 @@ namespace dbaccess
+ 		inline void setRow(const ORowSetRow& _rRow) { m_aRow = _rRow; }
+ 	};
+ 
+-	typedef ::vos::ORef< ORowSetOldRowHelper >	TORowSetOldRowHelperRef;
++	typedef ::rtl::Reference< ORowSetOldRowHelper >	TORowSetOldRowHelperRef;
+ 
+ 	class ORowSetValueCompare
+ 	{
+diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+index dab061f..86638c8 100644
+--- dbaccess/source/core/api/SingleSelectQueryComposer.cxx
++++ dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+@@ -737,7 +737,7 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns(  ) thr
+         return m_aCurrentColumns[SelectColumns];
+ 
+     ::std::vector< ::rtl::OUString> aNames;
+-	::vos::ORef< OSQLColumns> aSelectColumns;
++	::rtl::Reference< OSQLColumns> aSelectColumns;
+ 	sal_Bool bCase = sal_True;
+ 
+     do {
+@@ -1291,7 +1291,7 @@ Reference< XIndexAccess > SAL_CALL OSingleSelectQueryComposer::getParameters(  )
+ 	// now set the Parameters
+ 	if ( !m_aCurrentColumns[ParameterColumns] )
+ 	{
+-		::vos::ORef< OSQLColumns> aCols = m_aSqlIterator.getParameters();
++		::rtl::Reference< OSQLColumns> aCols = m_aSqlIterator.getParameters();
+ 		::std::vector< ::rtl::OUString> aNames;
+ 		for(OSQLColumns::const_iterator aIter = aCols->begin(); aIter != aCols->end();++aIter)
+ 			aNames.push_back(getString((*aIter)->getPropertyValue(PROPERTY_NAME)));
+@@ -1334,7 +1334,7 @@ void OSingleSelectQueryComposer::clearCurrentCollections()
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XIndexAccess > OSingleSelectQueryComposer::setCurrentColumns( EColumnType _eType,
+-    const ::vos::ORef< OSQLColumns >& _rCols )
++    const ::rtl::Reference< OSQLColumns >& _rCols )
+ {
+ 	::connectivity::checkDisposed(OSubComponent::rBHelper.bDisposed);
+ 
+diff --git a/dbaccess/source/core/api/query.cxx b/dbaccess/source/core/api/query.cxx
+index 3c8d8bd..186c90d 100644
+--- dbaccess/source/core/api/query.cxx
++++ dbaccess/source/core/api/query.cxx
+@@ -232,7 +232,7 @@ void OQuery::rebuildColumns()
+             }
+ 
+             Reference< XDatabaseMetaData > xDBMeta( m_xConnection->getMetaData(), UNO_QUERY_THROW );
+-            ::vos::ORef< OSQLColumns > aParseColumns(
++            ::rtl::Reference< OSQLColumns > aParseColumns(
+                 ::connectivity::parse::OParseColumn::createColumnsForResultSet( xResultSetMeta, xDBMeta ) );
+             xColumns = OPrivateColumns::createWithIntrinsicNames(
+                 aParseColumns, xDBMeta->storesMixedCaseQuotedIdentifiers(), *this, m_aMutex );
+diff --git a/dbaccess/source/core/dataaccess/ModelImpl.cxx b/dbaccess/source/core/dataaccess/ModelImpl.cxx
+index a6c6685..1a1e251 100644
+--- dbaccess/source/core/dataaccess/ModelImpl.cxx
++++ dbaccess/source/core/dataaccess/ModelImpl.cxx
+@@ -175,7 +175,6 @@ using namespace ::com::sun::star::reflection;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::cppu;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::dbtools;
+ using namespace ::comphelper;
+ namespace css = ::com::sun::star;
+diff --git a/dbaccess/source/core/dataaccess/ModelImpl.hxx b/dbaccess/source/core/dataaccess/ModelImpl.hxx
+index 0bd01c7..816b329 100644
+--- dbaccess/source/core/dataaccess/ModelImpl.hxx
++++ dbaccess/source/core/dataaccess/ModelImpl.hxx
+@@ -93,8 +93,8 @@
+ #ifndef _DBA_CORE_BOOKMARKCONTAINER_HXX_
+ #include "bookmarkcontainer.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+diff --git a/dbaccess/source/core/dataaccess/datasource.cxx b/dbaccess/source/core/dataaccess/datasource.cxx
+index c0a68d8..5043635 100644
+--- dbaccess/source/core/dataaccess/datasource.cxx
++++ dbaccess/source/core/dataaccess/datasource.cxx
+@@ -162,7 +162,6 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::reflection;
+ using namespace ::cppu;
+ using namespace ::osl;
+-using namespace ::vos;
+ using namespace ::dbtools;
+ using namespace ::comphelper;
+ namespace css = ::com::sun::star;
+diff --git a/dbaccess/source/core/dataaccess/datasource.hxx b/dbaccess/source/core/dataaccess/datasource.hxx
+index 1960097..a8c0724 100644
+--- dbaccess/source/core/dataaccess/datasource.hxx
++++ dbaccess/source/core/dataaccess/datasource.hxx
+@@ -99,8 +99,8 @@
+ #ifndef _DBA_CORE_BOOKMARKCONTAINER_HXX_
+ #include "bookmarkcontainer.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+diff --git a/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx b/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx
+index 044fb8d..8774435 100644
+--- dbaccess/source/core/inc/SingleSelectQueryComposer.hxx
++++ dbaccess/source/core/inc/SingleSelectQueryComposer.hxx
+@@ -188,7 +188,7 @@ namespace dbaccess
+ 					getStructuredCondition( TGetParseNode& _aGetFunctor );
+ 
+ 		::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
+-					setCurrentColumns( EColumnType _eType, const ::vos::ORef< ::connectivity::OSQLColumns >& _rCols );
++					setCurrentColumns( EColumnType _eType, const ::rtl::Reference< ::connectivity::OSQLColumns >& _rCols );
+ 
+ 		//helper methods for mem_fun_t
+ 		inline bool implSetFilter(::rtl::OUString _sFilter) { setFilter(_sFilter); return true;}
+diff --git a/dbaccess/source/ui/inc/ConnectionLineData.hxx b/dbaccess/source/ui/inc/ConnectionLineData.hxx
+index 4b850b5..6f2edd0 100644
+--- dbaccess/source/ui/inc/ConnectionLineData.hxx
++++ dbaccess/source/ui/inc/ConnectionLineData.hxx
+@@ -38,13 +38,13 @@
+ #ifndef DBAUI_ENUMTYPES_HXX
+ #include "QEnumTypes.hxx"
+ #endif
+-#ifndef _VOS_REFERNCE_HXX_ 
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #include <vector>
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef DBAUI_REFFUNCTOR_HXX
+@@ -70,7 +70,7 @@ namespace dbaui
+ 		the class OConnectionLineData contains the data of a connection
+ 		e.g. the source and the destanation field
+ 	**/
+-	class OConnectionLineData : public ::vos::OReference
++	class OConnectionLineData : public ::salhelper::SimpleReferenceObject
+ 	{
+ 		::rtl::OUString m_aSourceFieldName;
+ 		::rtl::OUString m_aDestFieldName;
+@@ -110,7 +110,7 @@ namespace dbaui
+ 	};
+ 
+ 	//------------------------------------------------------------------
+-	typedef ::vos::ORef< OConnectionLineData >		OConnectionLineDataRef;
++	typedef ::rtl::Reference< OConnectionLineData >		OConnectionLineDataRef;
+ 	typedef ::std::vector< OConnectionLineDataRef >	OConnectionLineDataVec;
+ }
+ #endif // DBAUI_CONNECTIONLINEDATA_HXX
+diff --git a/dbaccess/source/ui/inc/RefFunctor.hxx b/dbaccess/source/ui/inc/RefFunctor.hxx
+index 1a7f06d..39d8d59 100644
+--- dbaccess/source/ui/inc/RefFunctor.hxx
++++ dbaccess/source/ui/inc/RefFunctor.hxx
+@@ -36,8 +36,8 @@
+ #ifndef DBAUI_REFFUNCTOR_HXX
+ #define DBAUI_REFFUNCTOR_HXX
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef INCLUDED_FUNCTIONAL
+ #define INCLUDED_FUNCTIONAL
+@@ -46,19 +46,19 @@
+ 
+ namespace dbaui
+ {
+-	template <class T> class OUnaryRefFunctor : public ::std::unary_function< ::vos::ORef<T> ,void>
++	template <class T> class OUnaryRefFunctor : public ::std::unary_function< ::rtl::Reference<T> ,void>
+ 	{
+ 		::std::mem_fun_t<bool,T> m_aFunction;
+ 	public:
+ 		OUnaryRefFunctor(const ::std::mem_fun_t<bool,T>& _aFunc) : m_aFunction(_aFunc)
+ 		{}
+-		inline void operator()(const ::vos::ORef<T>& _aType) const
++		inline void operator()(const ::rtl::Reference<T>& _aType) const
+ 		{
+-			m_aFunction(_aType.getBodyPtr());
++			m_aFunction(_aType.get());
+ 		}
+-//		inline void operator()(const ::vos::ORef<T>& _aType)
++//		inline void operator()(const ::rtl::Reference<T>& _aType)
+ //		{
+-//			m_aFunction(_aType.getBodyPtr());
++//			m_aFunction(_aType.get());
+ //		}
+ 	};
+ // -----------------------------------------------------------------------------
+diff --git a/dbaccess/source/ui/inc/TableFieldDescription.hxx b/dbaccess/source/ui/inc/TableFieldDescription.hxx
+index 652a180..0ac59d8 100644
+--- dbaccess/source/ui/inc/TableFieldDescription.hxx
++++ dbaccess/source/ui/inc/TableFieldDescription.hxx
+@@ -48,14 +48,16 @@
+ #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+ #include <com/sun/star/beans/PropertyValue.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
++#include <salhelper/simplereferenceobject.hxx>
++
+ class Window;
+ namespace dbaui
+ {
+-	class OTableFieldDesc : public ::vos::OReference
++	class OTableFieldDesc : public ::salhelper::SimpleReferenceObject
+ 	{
+ 	private:
+ 		::std::vector< ::rtl::OUString>	m_vecCriteria;
+@@ -160,7 +162,7 @@ namespace dbaui
+ 		return bEmpty;
+ 	}
+ 	//------------------------------------------------------------------
+-	typedef ::vos::ORef< OTableFieldDesc>		OTableFieldDescRef;
++	typedef ::rtl::Reference< OTableFieldDesc>		OTableFieldDescRef;
+ 	typedef ::std::vector<OTableFieldDescRef>	OTableFields;
+ }
+ #endif //
+diff --git a/dbaccess/source/ui/querydesign/ConnectionLineData.cxx b/dbaccess/source/ui/querydesign/ConnectionLineData.cxx
+index 49c271e..ab9e917 100644
+--- dbaccess/source/ui/querydesign/ConnectionLineData.cxx
++++ dbaccess/source/ui/querydesign/ConnectionLineData.cxx
+@@ -64,7 +64,7 @@ OConnectionLineData::OConnectionLineData( const ::rtl::OUString& rSourceFieldNam
+ 
+ //------------------------------------------------------------------------
+ OConnectionLineData::OConnectionLineData( const OConnectionLineData& rConnLineData )
+-    : ::vos::OReference()
++    : ::salhelper::SimpleReferenceObject()
+ {
+ 	DBG_CTOR(OConnectionLineData,NULL);
+ 	*this = rConnLineData;
+diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+index 10096f9..70953ef 100644
+--- dbaccess/source/ui/querydesign/QueryDesignView.cxx
++++ dbaccess/source/ui/querydesign/QueryDesignView.cxx
+@@ -1438,7 +1438,7 @@ namespace
+ 			aDragLeft->SetField(aCondition);
+ 			aDragLeft->SetFunctionType(FKT_CONDITION);
+ 
+-			eErrorCode = _pSelectionBrw->InsertField(aDragLeft,BROWSER_INVALIDID,sal_False,sal_True).isValid() ? eOk : eTooManyColumns;
++			eErrorCode = _pSelectionBrw->InsertField(aDragLeft,BROWSER_INVALIDID,sal_False,sal_True).is() ? eOk : eTooManyColumns;
+ 		}
+ 		else //! TODO not supported yet
+ 			eErrorCode = eStatementTooComplex;
+@@ -1822,7 +1822,7 @@ namespace
+ 		OQueryController* pController = static_cast<OQueryController*>(_pView->getController());
+ 		OTableFields& rUnUsedFields = pController->getUnUsedFields();
+ 		for(OTableFields::iterator aIter = rUnUsedFields.begin();aIter != rUnUsedFields.end();++aIter)
+-			if(_pSelectionBrw->InsertField(*aIter,BROWSER_INVALIDID,sal_False,sal_False).isValid())
++			if(_pSelectionBrw->InsertField(*aIter,BROWSER_INVALIDID,sal_False,sal_False).is())
+ 				(*aIter) = NULL;
+ 		OTableFields().swap( rUnUsedFields );
+ 	}
+@@ -2253,7 +2253,7 @@ namespace
+ 						for(;aIter != aList.end();++aIter)
+ 						{
+ 							OTableFieldDescRef pEntry = *aIter;
+-							if(pEntry.isValid() && pEntry->GetFieldAlias() == aColumnName)
++							if(pEntry.is() && pEntry->GetFieldAlias() == aColumnName)
+ 								pEntry->SetOrderDir( eOrderDir );
+ 						}
+ 					}
+@@ -2615,7 +2615,7 @@ void OQueryDesignView::DeleteFields( const ::rtl::OUString& rAliasName )
+ // -----------------------------------------------------------------------------
+ SqlParseError OQueryDesignView::InsertField( const OTableFieldDescRef& rInfo, sal_Bool bVis, sal_Bool bActivate)
+ {
+-	return m_pSelectionBox->InsertField( rInfo, BROWSER_INVALIDID,bVis, bActivate ).isValid() ? eOk : eTooManyColumns;
++	return m_pSelectionBox->InsertField( rInfo, BROWSER_INVALIDID,bVis, bActivate ).is() ? eOk : eTooManyColumns;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool OQueryDesignView::getColWidth( const ::rtl::OUString& rAliasName, const ::rtl::OUString& rFieldName, sal_uInt32& nWidth )
+@@ -2884,8 +2884,8 @@ OSQLParseNode* OQueryDesignView::getPredicateTreeFromEntry(OTableFieldDescRef pE
+ 														   ::rtl::OUString& _rsErrorMessage,
+ 														   Reference<XPropertySet>& _rxColumn)
+ {
+-	OSL_ENSURE(pEntry.isValid(),"Entry is null!");
+-	if(!pEntry.isValid())
++	OSL_ENSURE(pEntry.is(),"Entry is null!");
++	if(!pEntry.is())
+ 		return NULL;
+ 	Reference< XConnection> xConnection = static_cast<OQueryController*>(getController())->getConnection();
+ 	if(!xConnection.is())
+diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+index f621fd7..df9c8bf 100644
+--- dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
++++ dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+@@ -492,9 +492,9 @@ CellController* OSelectionBrowseBox::GetController(long nRow, sal_uInt16 nColId)
+     if ( nColId >= getFields().size() )
+         return NULL;
+ 	OTableFieldDescRef pEntry = getFields()[nColId-1];
+-	DBG_ASSERT(pEntry.isValid(), "OSelectionBrowseBox::GetController : keine FieldDescription !");
++	DBG_ASSERT(pEntry.is(), "OSelectionBrowseBox::GetController : keine FieldDescription !");
+ 
+-	if (!pEntry.isValid())
++	if (!pEntry.is())
+ 		return NULL;
+ 
+ 	if (static_cast<OQueryController*>(getDesignView()->getController())->isReadOnly())
+@@ -529,7 +529,7 @@ void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, lon
+ 	if ( nPos == 0 || nPos == BROWSER_INVALIDID || nPos > getFields().size() )
+ 		return;
+ 	OTableFieldDescRef pEntry = getFields()[nPos-1];
+-	DBG_ASSERT(pEntry.isValid(), "OSelectionBrowseBox::InitController : keine FieldDescription !");
++	DBG_ASSERT(pEntry.is(), "OSelectionBrowseBox::InitController : keine FieldDescription !");
+ 	long nCellIndex = GetRealRow(nRow);
+ 
+ 	switch (nCellIndex)
+@@ -790,7 +790,7 @@ sal_Bool OSelectionBrowseBox::saveField(const String& _sFieldName,OTableFieldDes
+             {
+                 USHORT nColumnPostion;
+                 aSelEntry = FindFirstFreeCol(nColumnPostion);
+-                if ( !aSelEntry.isValid() )
++                if ( !aSelEntry.is() )
+                 {
+                     AppendNewCol(1);
+                     aSelEntry = FindFirstFreeCol(nColumnPostion);
+@@ -949,7 +949,7 @@ sal_Bool OSelectionBrowseBox::saveField(const String& _sFieldName,OTableFieldDes
+                     notifyTableFieldChanged(sOldAlias,aSelEntry->GetAlias(),_bListAction, nColumnId);
+                 }
+             }
+-            if ( i > 0 && InsertField(aSelEntry,BROWSER_INVALIDID,sal_True,sal_False).isEmpty() ) // may we have to append more than one field
++            if ( i > 0 && !InsertField(aSelEntry,BROWSER_INVALIDID,sal_True,sal_False).is() ) // may we have to append more than one field
+             { // the field could not be isnerted
+                 String sErrorMessage( ModuleRes( RID_STR_FIELD_DOESNT_EXIST ) );
+                 sErrorMessage.SearchAndReplaceAscii("$name$",aSelEntry->GetField());
+@@ -975,11 +975,11 @@ sal_Bool OSelectionBrowseBox::SaveModified()
+ 	if(getFields().size() > static_cast<USHORT>(nCurrentColumnPos - 1))
+ 		pEntry = getEntry(nCurrentColumnPos - 1);
+ 
+-	sal_Bool bWasEmpty = pEntry.isValid() ? pEntry->IsEmpty() : sal_False;
++	sal_Bool bWasEmpty = pEntry.is() ? pEntry->IsEmpty() : sal_False;
+ 	sal_Bool bError			= sal_False;
+ 	sal_Bool bListAction	= sal_False;
+ 
+-	if (pEntry.isValid() && Controller().Is() && Controller()->IsModified())
++	if (pEntry.is() && Controller().Is() && Controller()->IsModified())
+ 	{
+ 		// fuer die Undo-Action
+ 		String strOldCellContents,sNewValue;
+@@ -1274,7 +1274,7 @@ sal_Bool OSelectionBrowseBox::SaveModified()
+ 	}
+ 
+ 	// habe ich Daten in einer FieldDescription gespeichert, die vorher leer war und es nach den Aenderungen nicht mehr ist ?
+-	if ( pEntry.isValid() && bWasEmpty && !pEntry->IsEmpty() && !bError )
++	if ( pEntry.is() && bWasEmpty && !pEntry->IsEmpty() && !bError )
+ 	{
+ 		// Default auf sichtbar
+ 		pEntry->SetVisible(sal_True);
+@@ -1316,7 +1316,7 @@ void OSelectionBrowseBox::PaintCell(OutputDevice& rDev, const Rectangle& rRect,
+ 	if(getFields().size() > sal_uInt16(nPos - 1))
+ 		pEntry = getFields()[nPos - 1];
+ 
+-	if (!pEntry.isValid())
++	if (!pEntry.is())
+ 		return;
+ 
+ 	long nRow = GetRealRow(m_nSeekRow);
+@@ -1578,7 +1578,7 @@ void OSelectionBrowseBox::SetColWidth(sal_uInt16 nColId, long nNewWidth)
+ 
+ 	// der FieldDescription Bescheid sagen
+ 	OTableFieldDescRef pEntry = getEntry(GetColumnPos(nColId) - 1);
+-	if (pEntry.isValid())
++	if (pEntry.is())
+ 		pEntry->SetColWidth(sal_uInt16(GetColumnWidth(nColId)));
+ 
+ 	if (bWasEditing)
+@@ -1724,7 +1724,7 @@ sal_uInt16 OSelectionBrowseBox::FieldsCount()
+ 
+ 	while (aIter != getFields().end())
+ 	{
+-		if ((*aIter).isValid() && !(*aIter)->IsEmpty())
++		if ((*aIter).is() && !(*aIter)->IsEmpty())
+ 			++nCount;
+ 		++aIter;
+ 	}
+@@ -1745,7 +1745,7 @@ OTableFieldDescRef OSelectionBrowseBox::FindFirstFreeCol(USHORT& _rColumnPositio
+ 	{
+ 		++_rColumnPosition;
+ 		OTableFieldDescRef pEntry = (*aIter);
+-		if ( pEntry.isValid() && pEntry->IsEmpty() )
++		if ( pEntry.is() && pEntry->IsEmpty() )
+ 			return pEntry;
+ 		++aIter;
+ 	}
+@@ -1761,7 +1761,7 @@ void OSelectionBrowseBox::CheckFreeColumns(USHORT& _rColumnPosition)
+ 	{
+ 		// es ist voll, also einen Packen Spalten anhaengen
+ 		AppendNewCol(DEFAULT_QUERY_COLS);
+-		OSL_VERIFY(FindFirstFreeCol(_rColumnPosition).isValid());
++		OSL_VERIFY(FindFirstFreeCol(_rColumnPosition).is());
+ 	}
+ }
+ //------------------------------------------------------------------------------
+@@ -1782,7 +1782,7 @@ void OSelectionBrowseBox::AddGroupBy( const OTableFieldDescRef& rInfo , sal_uInt
+ 	for(;aIter != rFields.end();++aIter)
+ 	{
+ 		pEntry = *aIter;
+-		OSL_ENSURE(pEntry.isValid(),"OTableFieldDescRef was null!");
++		OSL_ENSURE(pEntry.is(),"OTableFieldDescRef was null!");
+ 
+ 		::rtl::OUString	aField = pEntry->GetField();
+ 		::rtl::OUString	aAlias = pEntry->GetAlias();
+@@ -1824,7 +1824,7 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S
+ 	if(!xConnection.is())
+ 		return;
+ 	DBG_CHKTHIS(OSelectionBrowseBox,NULL);
+-	DBG_ASSERT(rInfo.isValid() && !rInfo->IsEmpty(),"AddCondition:: OTableFieldDescRef sollte nicht Empty sein!");
++	DBG_ASSERT(rInfo.is() && !rInfo->IsEmpty(),"AddCondition:: OTableFieldDescRef sollte nicht Empty sein!");
+ 
+ 	OTableFieldDescRef pEntry;
+ 	Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
+@@ -1868,7 +1868,7 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S
+ 		OTableFieldDescRef pTmp = InsertField(rInfo, BROWSER_INVALIDID, sal_False, sal_False );
+ 		if ( pTmp->isNumericOrAggreateFunction() && rInfo->IsGroupBy() ) // das GroupBy wird bereits von rInfo "ubernommen
+ 			pTmp->SetGroupBy(sal_False);
+-		if ( pTmp.isValid() )
++		if ( pTmp.is() )
+ 		{
+ 			pTmp->SetCriteria( nLevel, rValue);
+ 			if(nLevel == (m_nVisibleCount-BROW_CRIT1_ROW-1))
+@@ -1922,7 +1922,7 @@ void OSelectionBrowseBox::AddOrder( const OTableFieldDescRef& rInfo, const EOrde
+ 	if (aIter == rFields.end())
+ 	{
+ 		OTableFieldDescRef pTmp = InsertField(rInfo, BROWSER_INVALIDID, sal_False, sal_False );
+-		if(pTmp.isValid())
++		if(pTmp.is())
+ 		{
+ 			if ( !m_bOrderByUnRelated && !bAppend )
+ 				pTmp->SetVisible(sal_True);
+@@ -2413,11 +2413,11 @@ void OSelectionBrowseBox::ColumnResized(sal_uInt16 nColId)
+ 	USHORT nPos = GetColumnPos(nColId);
+ 	DBG_ASSERT(nPos <= getFields().size(),"ColumnResized:: nColId sollte nicht groesser als List::count sein!");
+ 	OTableFieldDescRef pEntry = getEntry(nPos-1);
+-	DBG_ASSERT(pEntry.isValid(), "OSelectionBrowseBox::ColumnResized : keine FieldDescription !");
++	DBG_ASSERT(pEntry.is(), "OSelectionBrowseBox::ColumnResized : keine FieldDescription !");
+ 	static_cast<OQueryController*>(getDesignView()->getController())->setModified();
+ 	EditBrowseBox::ColumnResized(nColId);
+ 
+-	if ( pEntry.isValid())
++	if ( pEntry.is())
+ 	{
+ 		if ( !m_bInUndoMode )
+ 		{
+@@ -2439,7 +2439,7 @@ sal_uInt32 OSelectionBrowseBox::GetTotalCellWidth(long nRowId, sal_uInt16 nColId
+ 	DBG_ASSERT((nPos == 0) || (nPos <= getFields().size()), "OSelectionBrowseBox::GetTotalCellWidth : invalid parameter nColId");
+ 
+ 	OTableFieldDescRef pEntry = getFields()[nPos-1];
+-	DBG_ASSERT(pEntry.isValid(), "OSelectionBrowseBox::GetTotalCellWidth : invalid FieldDescription !");
++	DBG_ASSERT(pEntry.is(), "OSelectionBrowseBox::GetTotalCellWidth : invalid FieldDescription !");
+ 
+ 	long nRow = GetRealRow(nRowId);
+ 	String strText(GetCellText(nRow, nColId));
+@@ -2640,8 +2640,8 @@ OTableFieldDescRef OSelectionBrowseBox::getEntry(OTableFields::size_type _nPos)
+ 	OSL_ENSURE(aFields.size() > _nPos,"ColID is to great!");
+ 
+ 	OTableFieldDescRef pEntry = aFields[_nPos];
+-	OSL_ENSURE(pEntry.isValid(),"Invalid entry!");
+-	if ( !pEntry.isValid() )
++	OSL_ENSURE(pEntry.is(),"Invalid entry!");
++	if ( !pEntry.is() )
+ 	{
+ 		pEntry = new OTableFieldDesc();
+ 		pEntry->SetColumnId(
+@@ -2769,7 +2769,7 @@ Reference< XAccessible > OSelectionBrowseBox::CreateAccessibleCell( sal_Int32 _n
+ 	if(getFields().size() > sal_uInt16(_nColumnPos - 1))
+ 		pEntry = getFields()[_nColumnPos - 1];
+ 
+-	if ( _nRow == BROW_VIS_ROW && pEntry.isValid() )
++	if ( _nRow == BROW_VIS_ROW && pEntry.is() )
+ 		return EditBrowseBox::CreateAccessibleCheckBoxCell( _nRow, _nColumnPos,pEntry->IsVisible() ? STATE_CHECK : STATE_NOCHECK );
+ 
+ 	return EditBrowseBox::CreateAccessibleCell( _nRow, _nColumnPos );
+diff --git a/dbaccess/source/ui/querydesign/TableConnectionData.cxx b/dbaccess/source/ui/querydesign/TableConnectionData.cxx
+index aa78a23..fa3bbe9 100644
+--- dbaccess/source/ui/querydesign/TableConnectionData.cxx
++++ dbaccess/source/ui/querydesign/TableConnectionData.cxx
+@@ -170,7 +170,7 @@ BOOL OTableConnectionData::AppendConnLine( const ::rtl::OUString& rSourceFieldNa
+ 	if(aIter == m_vConnLineData.end())
+ 	{
+ 		OConnectionLineDataRef pNew = new OConnectionLineData(rSourceFieldName, rDestFieldName);
+-		if (!pNew.isValid())
++		if (!pNew.is())
+ 			return FALSE;
+ 
+ 		m_vConnLineData.push_back(pNew);
+diff --git a/dbaccess/source/ui/querydesign/TableFieldDescription.cxx b/dbaccess/source/ui/querydesign/TableFieldDescription.cxx
+index 1eb3361..296ed07 100644
+--- dbaccess/source/ui/querydesign/TableFieldDescription.cxx
++++ dbaccess/source/ui/querydesign/TableFieldDescription.cxx
+@@ -73,7 +73,7 @@ OTableFieldDesc::OTableFieldDesc()
+ }
+ //------------------------------------------------------------------------------
+ OTableFieldDesc::OTableFieldDesc(const OTableFieldDesc& rRS)
+-    : ::vos::OReference()
++    : ::salhelper::SimpleReferenceObject()
+     ,m_vecCriteria( rRS.m_vecCriteria)
+     ,m_aTableName(rRS.GetTable())
+     ,m_aAliasName(rRS.GetAlias())		// table range
+diff --git a/dbaccess/util/makefile.mk b/dbaccess/util/makefile.mk
+index b439400..7da9a2f 100644
+--- dbaccess/util/makefile.mk
++++ dbaccess/util/makefile.mk
+@@ -126,7 +126,8 @@ SHL2STDLIBS= \
+ 		$(CPPULIB)				\
+ 		$(SO2LIB)				\
+ 		$(VOSLIB)				\
+-		$(SALLIB)
++		$(SALLIB)				\
++		$(SALHELPERLIB)
+ 
+ SHL2DEPN=
+ SHL2IMPLIB=i$(TARGET2)
+diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
+index 9e931db..f72d832 100644
+--- desktop/inc/app.hxx
++++ desktop/inc/app.hxx
+@@ -71,7 +71,6 @@
+ using namespace com::sun::star::task;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+-using namespace rtl;
+ 
+ #define DESKTOP_SAVETASKS_MOD 0x1
+ #define DESKTOP_SAVETASKS_UNMOD 0x2
+@@ -86,7 +85,7 @@ namespace desktop
+ class IntroWindow_Impl;
+ class CommandLineArgs;
+ class Lockfile;
+-class AcceptorMap : public std::map< OUString, Reference<XInitialization> > {};
++class AcceptorMap : public std::map< rtl::OUString, Reference<XInitialization> > {};
+ struct ConvertData;
+ class Desktop : public Application
+ {
+@@ -208,9 +207,9 @@ class Desktop : public Application
+         static void             retrieveCrashReporterState();
+ 
+         // on-demand acceptors
+-		static void							createAcceptor(const OUString& aDescription);
++		static void							createAcceptor(const rtl::OUString& aDescription);
+ 		static void							enableAcceptors();
+-		static void							destroyAcceptor(const OUString& aDescription);
++		static void							destroyAcceptor(const rtl::OUString& aDescription);
+ 
+ 		sal_Bool						m_bMinimized;
+ 		sal_Bool						m_bInvisible;
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index 7a07c50..2a5d975 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -202,8 +202,8 @@
+ #ifndef _VOS_SECURITY_HXX_
+ #include <vos/security.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+@@ -324,7 +324,8 @@
+ #define U2S(STRING)                                ::rtl::OUStringToOString(STRING, RTL_TEXTENCODING_UTF8)
+ 
+ using namespace vos;
+-using namespace rtl;
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ //Gives an ICE with MSVC6
+ //namespace css = ::com::sun::star;
+diff --git a/desktop/source/app/userinstall.cxx b/desktop/source/app/userinstall.cxx
+index 1d0a9f8..fb952b1 100644
+--- desktop/source/app/userinstall.cxx
++++ desktop/source/app/userinstall.cxx
+@@ -65,8 +65,8 @@
+ #ifndef _VOS_SECURITY_HXX_
+ #include <vos/security.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _TOOLS_RESMGR_HXX_
+@@ -104,7 +104,8 @@
+ 
+ #include "app.hxx"
+ 
+-using namespace rtl;
++using rtl::OString;
++using rtl::OUString;
+ using namespace osl;
+ using namespace utl;
+ using namespace com::sun::star::container;
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 2af1582..4bfa679 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -549,8 +549,8 @@
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+ #include "vos/pipe.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "salhelper/simplereferenceobject.hxx"
+ #include "vos/thread.hxx"
+ #include "vos/timer.hxx"
+ 
+diff --git a/extensions/source/bibliography/loadlisteneradapter.cxx b/extensions/source/bibliography/loadlisteneradapter.cxx
+index e0391fd..646e5af 100644
+--- extensions/source/bibliography/loadlisteneradapter.cxx
++++ extensions/source/bibliography/loadlisteneradapter.cxx
+@@ -43,8 +43,8 @@
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+ #endif
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ //.........................................................................
+@@ -145,7 +145,7 @@ namespace bib
+ 	{
+ 		if ( m_bListening )
+ 		{
+-			::vos::ORef< OComponentAdapterBase > xPreventDelete(this);
++			::rtl::Reference< OComponentAdapterBase > xPreventDelete(this);
+ 
+ 			disposing();
+ 
+diff --git a/extensions/source/ole/unoobjw.cxx b/extensions/source/ole/unoobjw.cxx
+index 9a16d8e..5f06584 100644
+--- extensions/source/ole/unoobjw.cxx
++++ extensions/source/ole/unoobjw.cxx
+@@ -48,7 +48,7 @@
+ 
+ 
+ #include <osl/diagnose.h>
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ #include <tools/debug.hxx>
+ 
+ #ifndef _RTL_USTRING_HXX_
+diff --git a/extensions/source/ole/unoobjw.hxx b/extensions/source/ole/unoobjw.hxx
+index 825e133..0c0d08c 100644
+--- extensions/source/ole/unoobjw.hxx
++++ extensions/source/ole/unoobjw.hxx
+@@ -40,7 +40,7 @@
+ #include <com/sun/star/beans/XExactName.hpp>
+ #include <com/sun/star/lang/XInitialization.hpp>
+ #include <com/sun/star/script/InvocationInfo.hpp>
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ 
+ #include <tools/presys.h>
+ #include "comifaces.hxx"
+diff --git a/framework/inc/classes/framecontainer.hxx b/framework/inc/classes/framecontainer.hxx
+index ed7c492..5d4636f 100644
+--- framework/inc/classes/framecontainer.hxx
++++ framework/inc/classes/framecontainer.hxx
+@@ -91,8 +91,8 @@
+ #include <cppuhelper/weakref.hxx>
+ #endif
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+diff --git a/framework/inc/pch/precompiled_framework.hxx b/framework/inc/pch/precompiled_framework.hxx
+index d612d92..6d31ef7 100644
+--- framework/inc/pch/precompiled_framework.hxx
++++ framework/inc/pch/precompiled_framework.hxx
+@@ -494,7 +494,7 @@
+ #include "vcl/wintypes.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
++#include "rtl/ref.hxx"
+ #include "vos/thread.hxx"
+ #include "vos/timer.hxx"
+ 
+diff --git a/framework/source/helper/dockingareadefaultacceptor.cxx b/framework/source/helper/dockingareadefaultacceptor.cxx
+index f7d389d..bb51707 100644
+--- framework/source/helper/dockingareadefaultacceptor.cxx
++++ framework/source/helper/dockingareadefaultacceptor.cxx
+@@ -80,7 +80,6 @@ using namespace ::com::sun::star::lang			;
+ using namespace ::com::sun::star::uno			;
+ using namespace ::cppu							;
+ using namespace ::osl							;
+-using namespace ::rtl							;
+ 
+ //_________________________________________________________________________________________________________________
+ //	non exported const
+diff --git a/framework/source/helper/oframes.cxx b/framework/source/helper/oframes.cxx
+index aba83ce..652af8a 100644
+--- framework/source/helper/oframes.cxx
++++ framework/source/helper/oframes.cxx
+@@ -80,9 +80,9 @@ using namespace ::com::sun::star::lang			;
+ using namespace ::com::sun::star::uno			;
+ using namespace ::cppu							;
+ using namespace ::osl							;
+-using namespace ::rtl							;
+ using namespace ::std							;
+-using namespace ::vos							;
++
++using rtl::OUString;
+ 
+ //_________________________________________________________________________________________________________________
+ //	non exported const
+diff --git a/package/inc/HashMaps.hxx b/package/inc/HashMaps.hxx
+index f31fcff..a66b874 100644
+--- package/inc/HashMaps.hxx
++++ package/inc/HashMaps.hxx
+@@ -38,8 +38,8 @@
+ #ifndef _ZIP_ENTRY_HXX_
+ #include <ZipEntry.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #include <hash_map>
+ 
+@@ -63,7 +63,7 @@ typedef std::hash_map < rtl::OUString,
+ 						eqFunc > FolderHash;
+ 
+ typedef std::hash_map < rtl::OUString, 
+-						vos::ORef < com::sun::star::packages::ContentInfo >,
++						rtl::Reference < com::sun::star::packages::ContentInfo >,
+ 						::rtl::OUStringHash, 
+ 						eqFunc > ContentHash;
+ 
+diff --git a/package/inc/ZipFile.hxx b/package/inc/ZipFile.hxx
+index 262602a..fff013a 100644
+--- package/inc/ZipFile.hxx
++++ package/inc/ZipFile.hxx
+@@ -64,9 +64,9 @@ namespace com { namespace sun { namespace star {
+ 	namespace lang { class XMultiServiceFactory; }
+ 	namespace ucb  { class XProgressHandler; }
+ } } }
+-namespace vos 
++namespace rtl
+ {
+-	template < class T > class ORef;
++	template < class T > class Reference;
+ }
+ /*  
+  * We impose arbitrary but reasonable limit on ZIP files.
+@@ -97,25 +97,25 @@ protected:
+ 
+ 	com::sun::star::uno::Reference < com::sun::star::io::XInputStream >  createMemoryStream( 
+ 			ZipEntry & rEntry,
+-			const vos::ORef < EncryptionData > &rData, 
++			const rtl::Reference < EncryptionData > &rData, 
+ 			sal_Bool bRawStream,
+ 			sal_Bool bDecrypt );
+ 
+ 	com::sun::star::uno::Reference < com::sun::star::io::XInputStream >  createFileStream(
+ 			ZipEntry & rEntry,
+-			const vos::ORef < EncryptionData > &rData, 
++			const rtl::Reference < EncryptionData > &rData, 
+ 			sal_Bool bRawStream,
+ 			sal_Bool bDecrypt );
+ 
+ 	// aMediaType parameter is used only for raw stream header creation
+ 	com::sun::star::uno::Reference < com::sun::star::io::XInputStream >  createUnbufferedStream(
+ 			ZipEntry & rEntry,
+-			const vos::ORef < EncryptionData > &rData, 
++			const rtl::Reference < EncryptionData > &rData, 
+ 			sal_Int8 nStreamMode,
+ 			sal_Bool bDecrypt,
+ 			::rtl::OUString aMediaType = ::rtl::OUString() );
+ 
+-	sal_Bool hasValidPassword ( ZipEntry & rEntry, const vos::ORef < EncryptionData > &rData );
++	sal_Bool hasValidPassword ( ZipEntry & rEntry, const rtl::Reference < EncryptionData > &rData );
+ 
+ 	sal_Bool checkSizeAndCRC( const ZipEntry& aEntry );
+ 
+@@ -146,42 +146,42 @@ public:
+ 	void setInputStream ( com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xNewStream );
+     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getRawData( 
+ 			ZipEntry& rEntry,
+-			const vos::ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			sal_Bool bDecrypt)
+ 		throw(::com::sun::star::io::IOException, ::com::sun::star::packages::zip::ZipException, ::com::sun::star::uno::RuntimeException);
+ 	
+-	static void StaticGetCipher ( const vos::ORef < EncryptionData > & xEncryptionData, rtlCipher &rCipher );
++	static void StaticGetCipher ( const rtl::Reference < EncryptionData > & xEncryptionData, rtlCipher &rCipher );
+ 
+-	static void StaticFillHeader ( const vos::ORef < EncryptionData > & rData,
++	static void StaticFillHeader ( const rtl::Reference < EncryptionData > & rData,
+ 									sal_Int32 nSize,
+ 									const ::rtl::OUString& aMediaType,
+ 									sal_Int8 * & pHeader );
+ 
+-	static sal_Bool StaticFillData ( vos::ORef < EncryptionData > & rData,
++	static sal_Bool StaticFillData ( rtl::Reference < EncryptionData > & rData,
+ 									 sal_Int32 &rSize,
+ 									 ::rtl::OUString& aMediaType,
+ 									 ::com::sun::star::uno::Reference < com::sun::star::io::XInputStream > &rStream );
+ 
+ 	static ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > StaticGetDataFromRawStream(
+ 			const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xStream,
+-			const vos::ORef < EncryptionData > &rData )
++			const rtl::Reference < EncryptionData > &rData )
+ 		throw ( ::com::sun::star::packages::WrongPasswordException,
+ 				::com::sun::star::packages::zip::ZipIOException,
+ 				::com::sun::star::uno::RuntimeException );
+ 				
+ 	static sal_Bool StaticHasValidPassword ( const ::com::sun::star::uno::Sequence< sal_Int8 > &aReadBuffer,
+-											 const vos::ORef < EncryptionData > &rData );
++											 const rtl::Reference < EncryptionData > &rData );
+ 	
+ 
+     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getInputStream( 
+ 			ZipEntry& rEntry,
+-			const vos::ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			sal_Bool bDecrypt )
+ 		throw(::com::sun::star::io::IOException, ::com::sun::star::packages::zip::ZipException, ::com::sun::star::uno::RuntimeException);
+ 
+     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getDataStream( 
+ 			ZipEntry& rEntry,
+-			const vos::ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			sal_Bool bDecrypt )
+ 		throw ( ::com::sun::star::packages::WrongPasswordException,
+ 				::com::sun::star::io::IOException,
+@@ -190,7 +190,7 @@ public:
+ 
+     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getWrappedRawStream( 
+ 			ZipEntry& rEntry,
+-			const vos::ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			const ::rtl::OUString& aMediaType )
+ 		throw ( ::com::sun::star::packages::NoEncryptionException,
+ 				::com::sun::star::io::IOException,
+diff --git a/package/inc/ZipOutputStream.hxx b/package/inc/ZipOutputStream.hxx
+index 85c597d..057eecf 100644
+--- package/inc/ZipOutputStream.hxx
++++ package/inc/ZipOutputStream.hxx
+@@ -55,9 +55,9 @@
+ 
+ struct ZipEntry;
+ class EncryptionData;
+-namespace vos 
++namespace rtl
+ {
+-	template < class T > class ORef;
++	template < class T > class Reference;
+ }
+ class ZipOutputStream
+ {
+@@ -94,7 +94,7 @@ public:
+     void SAL_CALL setLevel( sal_Int32 nNewLevel )
+ 		throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL putNextEntry( ZipEntry& rEntry, 
+-			vos::ORef < EncryptionData > &rData,
++			rtl::Reference < EncryptionData > &rData,
+ 			sal_Bool bEncrypt = sal_False )
+ 		throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+     void SAL_CALL closeEntry(  )
+diff --git a/package/source/manifest/UnoRegister.cxx b/package/source/manifest/UnoRegister.cxx
+index 96eed44..e0c0922 100644
+--- package/source/manifest/UnoRegister.cxx
++++ package/source/manifest/UnoRegister.cxx
+@@ -57,7 +57,6 @@
+ 
+ #include <zipfileaccess.hxx>
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+@@ -65,6 +64,8 @@ using namespace ::com::sun::star::registry;
+ using namespace ::com::sun::star::packages;
+ using namespace ::com::sun::star::packages::manifest;
+ 
++using rtl::OUString;
++
+ static sal_Bool writeInfo( void * pRegistryKey,
+ 						   const OUString & rImplementationName,
+    						   Sequence< OUString > const & rServiceNames )
+diff --git a/package/source/zipapi/EntryInputStream.cxx b/package/source/zipapi/EntryInputStream.cxx
+index f989afe..74ce2af 100644
+--- package/source/zipapi/EntryInputStream.cxx
++++ package/source/zipapi/EntryInputStream.cxx
+@@ -68,7 +68,7 @@ using namespace com::sun::star::packages::zip::ZipConstants;
+ 
+ EntryInputStream::EntryInputStream( Reference < io::XInputStream > xNewInput, 
+ 									const ZipEntry & rNewEntry,
+-									const vos::ORef < EncryptionData > &xEncryptData,
++									const rtl::Reference < EncryptionData > &xEncryptData,
+ 									sal_Bool bGetRawStream)
+ : xStream( xNewInput )
+ , xSeek( xNewInput, UNO_QUERY )
+diff --git a/package/source/zipapi/EntryInputStream.hxx b/package/source/zipapi/EntryInputStream.hxx
+index 651141e..8877b75 100644
+--- package/source/zipapi/EntryInputStream.hxx
++++ package/source/zipapi/EntryInputStream.hxx
+@@ -51,7 +51,7 @@
+ #include <com/sun/star/packages/zip/ZipEntry.hpp>
+ #endif
+ #ifndef _VOS_REF_H_
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _ENCRYPTION_DATA_HXX
+ #include <EncryptionData.hxx>
+@@ -65,7 +65,7 @@ protected:
+ 	sal_Int64 nEnd, nCurrent, nUncompressedSize;
+ 	sal_Bool bRawStream, bHaveInMemory, bEncrypted;
+ 	com::sun::star::uno::Sequence < sal_Int8 > aBuffer;
+-	const vos::ORef < EncryptionData > xEncryptionData;
++	const rtl::Reference < EncryptionData > xEncryptionData;
+ 	const com::sun::star::packages::zip::ZipEntry aEntry;
+ 	Inflater aInflater;
+ 	void readIntoMemory()
+@@ -73,7 +73,7 @@ protected:
+ public:
+ 			 EntryInputStream( com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xInput, 
+ 					 		   const com::sun::star::packages::zip::ZipEntry &rNewEntry, 
+-							   const vos::ORef < EncryptionData > &xEncryptData,
++							   const rtl::Reference < EncryptionData > &xEncryptData,
+ 							   sal_Bool bGetRawStream = sal_False);
+ 	virtual ~EntryInputStream();
+ 
+diff --git a/package/source/zipapi/XFileStream.cxx b/package/source/zipapi/XFileStream.cxx
+index bb2870c..323a029 100644
+--- package/source/zipapi/XFileStream.cxx
++++ package/source/zipapi/XFileStream.cxx
+@@ -69,7 +69,7 @@ using ::rtl::OUString;
+ XFileStream::XFileStream( ZipEntry & rEntry,
+ 			 			  com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xNewZipStream,
+ 			 			  com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xNewTempStream,
+-			 			  const vos::ORef < EncryptionData > &rData, 
++			 			  const rtl::Reference < EncryptionData > &rData, 
+ 			 			  sal_Bool bNewRawStream,
+ 			 			  sal_Bool bIsEncrypted )
+ : maEntry ( rEntry )
+diff --git a/package/source/zipapi/XFileStream.hxx b/package/source/zipapi/XFileStream.hxx
+index cac7951..503c858 100644
+--- package/source/zipapi/XFileStream.hxx
++++ package/source/zipapi/XFileStream.hxx
+@@ -48,7 +48,7 @@
+ #include <cppuhelper/implbase2.hxx>
+ #endif
+ #ifndef _VOS_REF_H_
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _INFLATER_HXX
+ #include <Inflater.hxx>
+@@ -76,7 +76,7 @@ protected:
+ 	com::sun::star::uno::Reference < com::sun::star::io::XOutputStream > mxTempOut;
+ 	com::sun::star::uno::Sequence < sal_Int8 > maBuffer, maCompBuffer;
+ 	ZipEntry maEntry;
+-	vos::ORef < EncryptionData > mxData;
++	rtl::Reference < EncryptionData > mxData;
+ 	rtlCipher maCipher;
+ 	Inflater maInflater;
+ 	sal_Bool mbRawStream, mbFinished;
+@@ -87,7 +87,7 @@ public:
+ 	XFileStream( ZipEntry & rEntry,
+ 				 com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xNewZipStream,
+ 				 com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xNewTempStream,
+-				 const vos::ORef < EncryptionData > &rData, 
++				 const rtl::Reference < EncryptionData > &rData, 
+ 				 sal_Bool bRawStream,
+ 				 sal_Bool bIsEncrypted );
+ 	virtual ~XFileStream();
+diff --git a/package/source/zipapi/XUnbufferedStream.cxx b/package/source/zipapi/XUnbufferedStream.cxx
+index e967052..34a83a5 100644
+--- package/source/zipapi/XUnbufferedStream.cxx
++++ package/source/zipapi/XUnbufferedStream.cxx
+@@ -77,7 +77,7 @@ using ::rtl::OUString;
+ 
+ XUnbufferedStream::XUnbufferedStream( ZipEntry & rEntry,
+ 			 			  Reference < XInputStream > xNewZipStream,
+-			 			  const vos::ORef < EncryptionData > &rData, 
++			 			  const rtl::Reference < EncryptionData > &rData, 
+ 			 			  sal_Int8 nStreamMode,
+ 			 			  sal_Bool bIsEncrypted,
+ 						  const ::rtl::OUString& aMediaType,
+@@ -109,7 +109,7 @@ XUnbufferedStream::XUnbufferedStream( ZipEntry & rEntry,
+ 		mnZipSize = maEntry.nSize;
+ 		mnZipEnd = maEntry.nMethod == DEFLATED ? maEntry.nOffset + maEntry.nCompressedSize : maEntry.nOffset + maEntry.nSize;
+ 	}
+-	sal_Bool bHaveEncryptData = ( !rData.isEmpty() && rData->aSalt.getLength() && rData->aInitVector.getLength() && rData->nIterationCount != 0 ) ? sal_True : sal_False;
++	sal_Bool bHaveEncryptData = ( rData.is() && rData->aSalt.getLength() && rData->aInitVector.getLength() && rData->nIterationCount != 0 ) ? sal_True : sal_False;
+ 	sal_Bool bMustDecrypt = ( nStreamMode == UNBUFF_STREAM_DATA && bHaveEncryptData && bIsEncrypted ) ? sal_True : sal_False;
+ 	
+ 	if ( bMustDecrypt )
+@@ -134,7 +134,7 @@ XUnbufferedStream::XUnbufferedStream( ZipEntry & rEntry,
+ 
+ // allows to read package raw stream
+ XUnbufferedStream::XUnbufferedStream( const Reference < XInputStream >& xRawStream,
+-					const vos::ORef < EncryptionData > &rData )
++					const rtl::Reference < EncryptionData > &rData )
+ : mxZipStream ( xRawStream )
+ , mxZipSeek ( xRawStream, UNO_QUERY )
+ , mxData ( rData )
+diff --git a/package/source/zipapi/XUnbufferedStream.hxx b/package/source/zipapi/XUnbufferedStream.hxx
+index dd40359..230277d 100644
+--- package/source/zipapi/XUnbufferedStream.hxx
++++ package/source/zipapi/XUnbufferedStream.hxx
+@@ -54,7 +54,7 @@
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+ #ifndef _VOS_REF_H_
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _INFLATER_HXX
+ #include <Inflater.hxx>
+@@ -82,7 +82,7 @@ protected:
+ 	com::sun::star::uno::Reference < com::sun::star::io::XSeekable > mxZipSeek;
+ 	com::sun::star::uno::Sequence < sal_Int8 > maCompBuffer, maHeader;
+ 	ZipEntry maEntry;
+-	vos::ORef < EncryptionData > mxData;
++	rtl::Reference < EncryptionData > mxData;
+ 	rtlCipher maCipher;
+ 	Inflater maInflater;
+ 	sal_Bool mbRawStream, mbWrappedRaw, mbFinished;
+@@ -94,7 +94,7 @@ protected:
+ public:
+ 	XUnbufferedStream( ZipEntry & rEntry,
+ 				 com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xNewZipStream,
+-				 const vos::ORef < EncryptionData > &rData, 
++				 const rtl::Reference < EncryptionData > &rData, 
+ 				 sal_Int8 nStreamMode,
+ 				 sal_Bool bIsEncrypted,
+ 				 const ::rtl::OUString& aMediaType,
+@@ -102,7 +102,7 @@ public:
+ 
+ 	// allows to read package raw stream
+ 	XUnbufferedStream( const com::sun::star::uno::Reference < com::sun::star::io::XInputStream >& xRawStream,
+-				 const vos::ORef < EncryptionData > &rData );
++				 const rtl::Reference < EncryptionData > &rData );
+ 
+ 
+ 	virtual ~XUnbufferedStream();
+diff --git a/package/source/zipapi/ZipFile.cxx b/package/source/zipapi/ZipFile.cxx
+index 7422f09..d9e0523 100644
+--- package/source/zipapi/ZipFile.cxx
++++ package/source/zipapi/ZipFile.cxx
+@@ -87,8 +87,6 @@
+ #include <string.h> // for memcpy
+ #include <vector>
+ 
+-using namespace vos;
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace com::sun::star::io;
+ using namespace com::sun::star::uno;
+@@ -98,6 +96,7 @@ using namespace com::sun::star::packages;
+ using namespace com::sun::star::packages::zip;
+ using namespace com::sun::star::packages::zip::ZipConstants;
+ 
++using rtl::OUString;
+ 
+ /** This class is used to read entries from a zip file
+  */
+@@ -158,9 +157,9 @@ void ZipFile::setInputStream ( Reference < XInputStream > xNewStream )
+ 	aGrabber.setInputStream ( xStream );
+ }
+ 
+-void ZipFile::StaticGetCipher ( const ORef < EncryptionData > & xEncryptionData, rtlCipher &rCipher )
++void ZipFile::StaticGetCipher ( const rtl::Reference < EncryptionData > & xEncryptionData, rtlCipher &rCipher )
+ {
+-    if ( ! xEncryptionData.isEmpty() )
++    if ( xEncryptionData.is() )
+ 	{
+ 		Sequence < sal_uInt8 > aDerivedKey (16);
+ 		rtlCipherError aResult;
+@@ -184,7 +183,7 @@ void ZipFile::StaticGetCipher ( const ORef < EncryptionData > & xEncryptionData,
+ 	}
+ }
+ 
+-void ZipFile::StaticFillHeader ( const ORef < EncryptionData > & rData, 
++void ZipFile::StaticFillHeader ( const rtl::Reference < EncryptionData > & rData, 
+ 								sal_Int32 nSize,
+ 								const ::rtl::OUString& aMediaType,
+ 								sal_Int8 * & pHeader )
+@@ -251,7 +250,7 @@ void ZipFile::StaticFillHeader ( const ORef < EncryptionData > & rData,
+ 	pHeader += nMediaTypeLength;
+ }
+ 
+-sal_Bool ZipFile::StaticFillData ( ORef < EncryptionData > & rData,
++sal_Bool ZipFile::StaticFillData ( rtl::Reference < EncryptionData > & rData,
+ 									sal_Int32 &rSize,
+ 									::rtl::OUString& aMediaType,
+ 									Reference < XInputStream > &rStream )
+@@ -316,10 +315,10 @@ sal_Bool ZipFile::StaticFillData ( ORef < EncryptionData > & rData,
+ }
+ 
+ Reference< XInputStream > ZipFile::StaticGetDataFromRawStream(	const Reference< XInputStream >& xStream,
+-																const ORef < EncryptionData > &rData )
++																const rtl::Reference < EncryptionData > &rData )
+ 		throw ( packages::WrongPasswordException, ZipIOException, RuntimeException )
+ {
+-	if ( rData.isEmpty() )
++	if ( !rData.is() )
+ 		throw ZipIOException( OUString::createFromAscii( "Encrypted stream without encryption data!\n" ),
+ 							Reference< XInterface >() );
+ 
+@@ -356,9 +355,9 @@ Reference< XInputStream > ZipFile::StaticGetDataFromRawStream(	const Reference<
+ 	return new XUnbufferedStream ( xStream, rData );
+ }
+ 
+-sal_Bool ZipFile::StaticHasValidPassword( const Sequence< sal_Int8 > &aReadBuffer, const ORef < EncryptionData > &rData )
++sal_Bool ZipFile::StaticHasValidPassword( const Sequence< sal_Int8 > &aReadBuffer, const rtl::Reference < EncryptionData > &rData )
+ {
+-	if ( !rData.isValid() || !rData->aKey.getLength() )
++	if ( !rData.is() || !rData->aKey.getLength() )
+ 		return sal_False;
+ 
+ 	sal_Bool bRet = sal_False;
+@@ -405,7 +404,7 @@ sal_Bool ZipFile::StaticHasValidPassword( const Sequence< sal_Int8 > &aReadBuffe
+ 	return bRet;
+ }
+ 
+-sal_Bool ZipFile::hasValidPassword ( ZipEntry & rEntry, const ORef < EncryptionData > &rData )
++sal_Bool ZipFile::hasValidPassword ( ZipEntry & rEntry, const rtl::Reference < EncryptionData > &rData )
+ {
+ 	sal_Bool bRet = sal_False;
+ 	if ( rData->aKey.getLength() )
+@@ -427,7 +426,7 @@ sal_Bool ZipFile::hasValidPassword ( ZipEntry & rEntry, const ORef < EncryptionD
+ #if 0
+ Reference < XInputStream > ZipFile::createFileStream(
+ 			ZipEntry & rEntry,
+-			const ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			sal_Bool bRawStream,
+ 			sal_Bool bIsEncrypted )
+ {
+@@ -437,7 +436,7 @@ Reference < XInputStream > ZipFile::createFileStream(
+ }
+ Reference < XInputStream > ZipFile::createMemoryStream(
+ 			ZipEntry & rEntry,
+-			const ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			sal_Bool bRawStream, 
+ 			sal_Bool bIsEncrypted )
+ {
+@@ -460,7 +459,7 @@ Reference < XInputStream > ZipFile::createMemoryStream(
+ 	// we have the salt. If we have the salt, then check if we have the encryption key
+ 	// if not, return rawStream instead.
+ 	
+-	sal_Bool bHaveEncryptData = ( !rData.isEmpty() && rData->aSalt.getLength() && rData->aInitVector.getLength() && rData->nIterationCount != 0 ) ? sal_True : sal_False;
++	sal_Bool bHaveEncryptData = ( rData.is() && rData->aSalt.getLength() && rData->aInitVector.getLength() && rData->nIterationCount != 0 ) ? sal_True : sal_False;
+ 	sal_Bool bMustDecrypt = ( !bRawStream && bHaveEncryptData && bIsEncrypted ) ? sal_True : sal_False;
+ 
+ 	if ( bMustDecrypt )
+@@ -519,7 +518,7 @@ Reference < XInputStream > ZipFile::createMemoryStream(
+ #endif
+ Reference < XInputStream > ZipFile::createUnbufferedStream(
+ 			ZipEntry & rEntry,
+-			const ORef < EncryptionData > &rData,
++			const rtl::Reference < EncryptionData > &rData,
+ 			sal_Int8 nStreamMode,
+ 			sal_Bool bIsEncrypted,
+ 			::rtl::OUString aMediaType )
+@@ -546,7 +545,7 @@ sal_Int32 SAL_CALL ZipFile::getSize(  )
+ }
+ 
+ Reference< XInputStream > SAL_CALL ZipFile::getInputStream( ZipEntry& rEntry,
+-		const vos::ORef < EncryptionData > &rData,
++		const rtl::Reference < EncryptionData > &rData,
+ 		sal_Bool bIsEncrypted )
+ 	throw(IOException, ZipException, RuntimeException)
+ {
+@@ -560,7 +559,7 @@ Reference< XInputStream > SAL_CALL ZipFile::getInputStream( ZipEntry& rEntry,
+ 	
+ 	// if we have a digest, then this file is an encrypted one and we should
+ 	// check if we can decrypt it or not
+-	if ( bIsEncrypted && !rData.isEmpty() && rData->aDigest.getLength() )
++	if ( bIsEncrypted && rData.is() && rData->aDigest.getLength() )
+ 		bNeedRawStream = !hasValidPassword ( rEntry, rData );
+ 
+ 	return createUnbufferedStream ( rEntry,
+@@ -570,7 +569,7 @@ Reference< XInputStream > SAL_CALL ZipFile::getInputStream( ZipEntry& rEntry,
+ }
+ 
+ Reference< XInputStream > SAL_CALL ZipFile::getDataStream( ZipEntry& rEntry,
+-		const vos::ORef < EncryptionData > &rData,
++		const rtl::Reference < EncryptionData > &rData,
+ 		sal_Bool bIsEncrypted )
+ 	throw ( packages::WrongPasswordException,
+ 			IOException,
+@@ -587,7 +586,7 @@ Reference< XInputStream > SAL_CALL ZipFile::getDataStream( ZipEntry& rEntry,
+ 	{
+ 		// in case no digest is provided there is no way
+ 		// to detect password correctness
+-		if ( rData.isEmpty() )
++		if ( !rData.is() )
+ 			throw ZipException( OUString::createFromAscii( "Encrypted stream without encryption data!\n" ),
+ 								Reference< XInterface >() );
+ 
+@@ -607,7 +606,7 @@ Reference< XInputStream > SAL_CALL ZipFile::getDataStream( ZipEntry& rEntry,
+ }
+ 
+ Reference< XInputStream > SAL_CALL ZipFile::getRawData( ZipEntry& rEntry,
+-		const vos::ORef < EncryptionData > &rData,
++		const rtl::Reference < EncryptionData > &rData,
+ 		sal_Bool bIsEncrypted )
+ 	throw(IOException, ZipException, RuntimeException)
+ {
+@@ -619,14 +618,14 @@ Reference< XInputStream > SAL_CALL ZipFile::getRawData( ZipEntry& rEntry,
+ 
+ Reference< XInputStream > SAL_CALL ZipFile::getWrappedRawStream(
+ 		ZipEntry& rEntry,
+-		const vos::ORef < EncryptionData > &rData,
++		const rtl::Reference < EncryptionData > &rData,
+ 		const ::rtl::OUString& aMediaType )
+ 	throw ( packages::NoEncryptionException,
+ 			IOException,
+ 			ZipException,
+ 			RuntimeException )
+ {
+-	if ( rData.isEmpty() )
++	if ( !rData.is() )
+ 		throw packages::NoEncryptionException();
+ 
+ 	if ( rEntry.nOffset <= 0 )
+diff --git a/package/source/zipapi/ZipOutputStream.cxx b/package/source/zipapi/ZipOutputStream.cxx
+index 8d90ae8..d7b60d7 100644
+--- package/source/zipapi/ZipOutputStream.cxx
++++ package/source/zipapi/ZipOutputStream.cxx
+@@ -54,7 +54,7 @@
+ #include <ZipEntry.hxx>
+ #endif
+ #ifndef _VOS_REF_H_
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_IO_XOUTPUTSTREAM_HPP_
+ #include <com/sun/star/io/XOutputStream.hpp>
+@@ -63,7 +63,6 @@
+ #include <ImplValidCharacters.hxx>
+ #endif
+ 
+-using namespace rtl;
+ using namespace com::sun::star::io;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::packages;
+@@ -109,7 +108,7 @@ void SAL_CALL ZipOutputStream::setLevel( sal_Int32 nNewLevel )
+ }
+ 
+ void SAL_CALL ZipOutputStream::putNextEntry( ZipEntry& rEntry, 
+-						vos::ORef < EncryptionData > &xEncryptData,
++						rtl::Reference < EncryptionData > &xEncryptData,
+ 						sal_Bool bEncrypt)
+ 	throw(IOException, RuntimeException)
+ {
+@@ -142,7 +141,7 @@ void SAL_CALL ZipOutputStream::putNextEntry( ZipEntry& rEntry,
+ 		aDigest = rtl_digest_createSHA1();
+ 		mnDigested = 0;
+ 		rEntry.nFlag |= 1 << 4;
+-		pCurrentEncryptData = xEncryptData.getBodyPtr();
++		pCurrentEncryptData = xEncryptData.get();
+ 	}
+ 	sal_Int32 nLOCLength = writeLOC(rEntry);
+ 	rEntry.nOffset = static_cast < sal_Int32 > (aChucker.getPosition()) - nLOCLength;
+diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx
+index 162ce3f..76cafb4 100644
+--- package/source/zippackage/ZipPackage.cxx
++++ package/source/zippackage/ZipPackage.cxx
+@@ -998,7 +998,7 @@ void ZipPackage::WriteMimetypeMagicFile( ZipOutputStream& aZipOut )
+ 
+ 	try
+ 	{
+-		vos::ORef < EncryptionData > xEmpty;
++		rtl::Reference < EncryptionData > xEmpty;
+ 		aZipOut.putNextEntry( *pEntry, xEmpty );
+ 		aZipOut.write( aType, 0, nBufferLength );
+ 		aZipOut.closeEntry();
+@@ -1156,7 +1156,7 @@ sal_Bool ZipPackage::writeFileIsTemp()
+ 				pBuffer->realloc( nBufferLength );
+ 
+ 				// the manifest.xml is never encrypted - so pass an empty reference
+-				vos::ORef < EncryptionData > xEmpty;
++				rtl::Reference < EncryptionData > xEmpty;
+ 				aZipOut.putNextEntry( *pEntry, xEmpty );
+ 				aZipOut.write( pBuffer->getSequence(), 0, nBufferLength );
+ 				aZipOut.closeEntry();
+@@ -1215,7 +1215,7 @@ sal_Bool ZipPackage::writeFileIsTemp()
+ 			pBuffer->realloc( nBufferLength );
+ 
+ 			// there is no encryption in this format currently
+-			vos::ORef < EncryptionData > xEmpty;
++			rtl::Reference < EncryptionData > xEmpty;
+ 			aZipOut.putNextEntry( *pEntry, xEmpty );
+ 			aZipOut.write( pBuffer->getSequence(), 0, nBufferLength );
+ 			aZipOut.closeEntry();
+diff --git a/package/source/zippackage/ZipPackageEntry.cxx b/package/source/zippackage/ZipPackageEntry.cxx
+index f3a56be..51ebcb7 100644
+--- package/source/zippackage/ZipPackageEntry.cxx
++++ package/source/zippackage/ZipPackageEntry.cxx
+@@ -69,7 +69,6 @@
+ #endif
+ #endif
+  
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+@@ -77,6 +76,8 @@ using namespace com::sun::star::container;
+ using namespace com::sun::star::packages::zip;
+ using namespace com::sun::star::packages::zip::ZipConstants;
+ 
++using rtl::OUString;
++
+ ZipPackageEntry::ZipPackageEntry ( bool bNewFolder )
+ : mbIsFolder ( bNewFolder )
+ , mbAllowRemoveOnInsert( sal_True )
+diff --git a/package/source/zippackage/ZipPackageFolder.cxx b/package/source/zippackage/ZipPackageFolder.cxx
+index af0b527..2051cb1 100644
+--- package/source/zippackage/ZipPackageFolder.cxx
++++ package/source/zippackage/ZipPackageFolder.cxx
+@@ -91,10 +91,10 @@ using namespace com::sun::star::lang;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::io;
+ using namespace cppu;
+-using namespace rtl;
+ using namespace std;
+ using namespace ::com::sun::star;
+-using vos::ORef;
++
++using rtl::OUString;
+ 
+ Sequence < sal_Int8 > ZipPackageFolder::aImplementationId = Sequence < sal_Int8 > ();
+ 
+@@ -311,7 +311,7 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 
+ 		try
+ 		{
+-			vos::ORef < EncryptionData > aEmptyEncr;
++			rtl::Reference < EncryptionData > aEmptyEncr;
+ 			rZipOut.putNextEntry ( *pTempEntry, aEmptyEncr, sal_False );
+ 			rZipOut.rawCloseEntry();
+ 		}
+diff --git a/package/source/zippackage/ZipPackageStream.cxx b/package/source/zippackage/ZipPackageStream.cxx
+index cdbcbd8..2d72b71 100644
+--- package/source/zippackage/ZipPackageStream.cxx
++++ package/source/zippackage/ZipPackageStream.cxx
+@@ -93,7 +93,8 @@ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+ using namespace com::sun::star;
+ using namespace cppu;
+-using namespace rtl;
++
++using rtl::OUString;
+ 
+ Sequence < sal_Int8 > ZipPackageStream::aImplementationId = Sequence < sal_Int8 > ();
+ 
+@@ -196,7 +197,7 @@ uno::Reference< io::XInputStream > ZipPackageStream::GetRawEncrStreamNoHeaderCop
+ 	if ( m_nStreamMode != PACKAGE_STREAM_RAW || !GetOwnSeekStream().is() )
+ 		throw io::IOException(); // TODO
+ 
+-	if ( xEncryptionData.isEmpty() )
++	if ( !xEncryptionData.is() )
+ 		throw ZipIOException( OUString::createFromAscii( "Encrypted stream without encryption data!\n" ),
+ 							Reference< XInterface >() );
+ 
+@@ -236,7 +237,7 @@ Reference< io::XInputStream > ZipPackageStream::TryToGetRawFromDataStream( sal_B
+ 	
+ 	if ( bToBeEncrypted )
+ 	{
+-		aKey = ( xEncryptionData.isEmpty() || !bHaveOwnKey ) ? rZipPackage.getEncryptionKey() : 
++		aKey = ( !xEncryptionData.is() || !bHaveOwnKey ) ? rZipPackage.getEncryptionKey() : 
+ 																				xEncryptionData->aKey;
+ 		if ( !aKey.getLength() )
+ 			throw packages::NoEncryptionException(); // TODO
+@@ -351,7 +352,7 @@ sal_Bool ZipPackageStream::ParsePackageRawStream()
+ 
+ 	sal_Bool bOk = sal_False;
+ 
+-	vos::ORef < EncryptionData > xTempEncrData;
++	rtl::Reference < EncryptionData > xTempEncrData;
+ 	sal_Int32 nMagHackSize = 0;
+ 	Sequence < sal_Int8 > aHeader ( 4 );
+ 
+@@ -438,7 +439,7 @@ Reference< io::XInputStream > SAL_CALL ZipPackageStream::getRawData()
+ 	{
+ 		if (IsPackageMember())
+ 		{
+-			if ( !xEncryptionData.isEmpty() && !bHaveOwnKey )
++			if ( xEncryptionData.is() && !bHaveOwnKey )
+ 				xEncryptionData->aKey = rZipPackage.getEncryptionKey();
+ 			return rZipPackage.getZipFile().getRawData( aEntry, xEncryptionData, bIsEncrypted );
+ 		}
+@@ -471,7 +472,7 @@ Reference< io::XInputStream > SAL_CALL ZipPackageStream::getInputStream(  )
+ 	{
+ 		if (IsPackageMember())
+ 		{
+-			if ( !xEncryptionData.isEmpty() && !bHaveOwnKey )
++			if ( xEncryptionData.is() && !bHaveOwnKey )
+ 				xEncryptionData->aKey = rZipPackage.getEncryptionKey();
+ 			return rZipPackage.getZipFile().getInputStream( aEntry, xEncryptionData, bIsEncrypted );
+ 		}
+@@ -511,12 +512,12 @@ Reference< io::XInputStream > SAL_CALL ZipPackageStream::getDataStream()
+ 	if ( m_nStreamMode == PACKAGE_STREAM_DETECT )
+ 		throw packages::zip::ZipIOException(); // TODO
+ 
+-	if ( !xEncryptionData.isEmpty() && !bHaveOwnKey )
++	if ( xEncryptionData.is() && !bHaveOwnKey )
+ 		xEncryptionData->aKey = rZipPackage.getEncryptionKey();
+ 
+ 	if (IsPackageMember())
+ 	{
+-		if ( !xEncryptionData.isEmpty() && !bHaveOwnKey )
++		if ( xEncryptionData.is() && !bHaveOwnKey )
+ 			xEncryptionData->aKey = rZipPackage.getEncryptionKey();
+ 
+ 		return rZipPackage.getZipFile().getDataStream( aEntry, xEncryptionData, bIsEncrypted );
+@@ -549,7 +550,7 @@ Reference< io::XInputStream > SAL_CALL ZipPackageStream::getRawStream()
+ 
+ 	if (IsPackageMember())
+ 	{
+-		if ( !bIsEncrypted || xEncryptionData.isEmpty() )
++		if ( !bIsEncrypted || !xEncryptionData.is() )
+ 			throw packages::NoEncryptionException(); // TODO
+ 
+ 		return rZipPackage.getZipFile().getWrappedRawStream( aEntry, xEncryptionData, sMediaType );
+@@ -704,7 +705,7 @@ void SAL_CALL ZipPackageStream::setPropertyValue( const OUString& aPropertyName,
+ 												2 );
+ 
+ 			bToBeEncrypted = bEnc;
+-			if ( bToBeEncrypted && xEncryptionData.isEmpty())
++			if ( bToBeEncrypted && !xEncryptionData.is())
+ 				xEncryptionData = new EncryptionData;
+ 		}
+ 		else
+@@ -741,7 +742,7 @@ void SAL_CALL ZipPackageStream::setPropertyValue( const OUString& aPropertyName,
+ 
+ 		if ( aNewKey.getLength() )
+ 		{
+-			if ( xEncryptionData.isEmpty())
++			if ( !xEncryptionData.is())
+ 				xEncryptionData = new EncryptionData;
+ 
+ 			xEncryptionData->aKey = aNewKey;
+@@ -813,7 +814,7 @@ Any SAL_CALL ZipPackageStream::getPropertyValue( const OUString& PropertyName )
+ 	}
+ 	else if (PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "EncryptionKey" ) ) )
+ 	{
+-		aAny <<= xEncryptionData.isEmpty () ? Sequence < sal_Int8 > () : xEncryptionData->aKey;
++		aAny <<= !xEncryptionData.is() ? Sequence < sal_Int8 > () : xEncryptionData->aKey;
+ 		return aAny;
+ 	}
+ 	else
+diff --git a/package/source/zippackage/ZipPackageStream.hxx b/package/source/zippackage/ZipPackageStream.hxx
+index 08b943b..a32e97c 100644
+--- package/source/zippackage/ZipPackageStream.hxx
++++ package/source/zippackage/ZipPackageStream.hxx
+@@ -50,7 +50,7 @@
+ #include <ZipPackageEntry.hxx>
+ #endif
+ #ifndef _VOS_REF_H_
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _ENCRYPTION_DATA_HXX_
+ #include <EncryptionData.hxx>
+@@ -84,7 +84,7 @@ protected:
+ 	const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
+ 	ZipPackage 			&rZipPackage;
+ 	sal_Bool			bToBeCompressed, bToBeEncrypted, bHaveOwnKey, bIsEncrypted;
+-	vos::ORef < EncryptionData > xEncryptionData;
++	rtl::Reference < EncryptionData > xEncryptionData;
+ 
+ 	sal_uInt8	m_nStreamMode;
+ 	sal_uInt32	m_nMagicalHackPos;
+@@ -104,7 +104,7 @@ public:
+ 	sal_Bool IsToBeEncrypted ()  { return bToBeEncrypted;}
+ 	sal_Bool IsEncrypted ()  	 { return bIsEncrypted;}
+ 	sal_Bool IsPackageMember ()  { return m_nStreamMode == PACKAGE_STREAM_PACKAGEMEMBER;}
+-	vos::ORef < EncryptionData > & getEncryptionData ()
++	rtl::Reference < EncryptionData > & getEncryptionData ()
+ 	{ return xEncryptionData;}
+ 	const com::sun::star::uno::Sequence < sal_Int8 >& getKey ()
+ 	{ return xEncryptionData->aKey;}
+@@ -128,10 +128,10 @@ public:
+ 	void SetToBeEncrypted (sal_Bool bNewValue)  
+     { 
+         bToBeEncrypted  = bNewValue;
+-        if ( bToBeEncrypted && xEncryptionData.isEmpty())
++        if ( bToBeEncrypted && !xEncryptionData.is())
+             xEncryptionData = new EncryptionData;
+-		else if ( !bToBeEncrypted && !xEncryptionData.isEmpty() )
+-			xEncryptionData.unbind();
++		else if ( !bToBeEncrypted && xEncryptionData.is() )
++			xEncryptionData.clear();
+     }
+ 	void SetPackageMember (sal_Bool bNewValue);
+ 	void setKey (const com::sun::star::uno::Sequence < sal_Int8 >& rNewKey )
+diff --git a/reportdesign/source/filter/xml/xmlExport.hxx b/reportdesign/source/filter/xml/xmlExport.hxx
+index 713d327..151b946 100644
+--- reportdesign/source/filter/xml/xmlExport.hxx
++++ reportdesign/source/filter/xml/xmlExport.hxx
+@@ -1,5 +1,3 @@
+-#ifndef RPT_XMLEXPORT_HXX
+-#define RPT_XMLEXPORT_HXX
+ /*************************************************************************
+  *
+  *  OpenOffice.org - a multi-platform office productivity suite
+@@ -35,6 +33,8 @@
+  *
+  ************************************************************************/
+ 
++#ifndef RPT_XMLEXPORT_HXX
++#define RPT_XMLEXPORT_HXX
+ 
+ #ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_
+ #include <com/sun/star/container/XNamed.hpp>
+diff --git a/sal/typesconfig/core b/sal/typesconfig/core
+index c7cbe4f..9e29fe7 100644
+Binary files a/sal/typesconfig/core and b/sal/typesconfig/core differ
+diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
+index d77f3d8..12d47ce 100644
+--- sc/inc/document.hxx
++++ sc/inc/document.hxx
+@@ -49,8 +49,8 @@
+ #include <com/sun/star/uno/Reference.hxx>
+ #endif
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef INCLUDED_SCDLLAPI_H
+@@ -260,7 +260,7 @@ friend class ScPivot;
+ private:
+ 	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager;
+ 
+-	vos::ORef<ScPoolHelper> xPoolHelper;
++	rtl::Reference<ScPoolHelper> xPoolHelper;
+ 
+ 	ScFieldEditEngine*	pEditEngine;					// uses pEditPool from xPoolHelper
+ 	ScNoteEditEngine*	pNoteEngine;					// uses pEditPool from xPoolHelper
+@@ -298,7 +298,7 @@ private:
+ 	ScChangeViewSettings* pChangeViewSettings;
+ 	ScScriptTypeData*	pScriptTypeData;
+ 	ScRefreshTimerControl* pRefreshTimerControl;
+-	vos::ORef<SvxForbiddenCharactersTable> xForbiddenCharacters;
++	rtl::Reference<SvxForbiddenCharactersTable> xForbiddenCharacters;
+ 
+ 	ScFieldEditEngine*	pCacheFieldEditEngine;
+ 
+@@ -1468,8 +1468,8 @@ SC_DLLPUBLIC	SvNumberFormatter*	GetFormatTable() const;
+ 	ScChangeViewSettings* GetChangeViewSettings() const		{ return pChangeViewSettings; }
+ 	void				SetChangeViewSettings(const ScChangeViewSettings& rNew);
+ 
+-	vos::ORef<SvxForbiddenCharactersTable> GetForbiddenCharacters();
+-	void			SetForbiddenCharacters( const vos::ORef<SvxForbiddenCharactersTable> xNew );
++	rtl::Reference<SvxForbiddenCharactersTable> GetForbiddenCharacters();
++	void			SetForbiddenCharacters( const rtl::Reference<SvxForbiddenCharactersTable> xNew );
+ 
+ 	BYTE			GetAsianCompression() const;		// CharacterCompressionType values
+ 	BOOL			IsValidAsianCompression() const;
+diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
+index 9115eab..15234c4 100644
+--- sc/source/core/data/documen2.cxx
++++ sc/source/core/data/documen2.cxx
+@@ -583,9 +583,9 @@ ScDocument::~ScDocument()
+ 	// delete the EditEngine before destroying the xPoolHelper
+ 	delete pCacheFieldEditEngine;
+ 
+-	if ( xPoolHelper.isValid() && !bIsClip )
++	if ( xPoolHelper.is() && !bIsClip )
+ 		xPoolHelper->SourceDocumentGone();
+-	xPoolHelper.unbind();
++	xPoolHelper.clear();
+ 
+ 	DeleteColorTable();
+ 	delete pScriptTypeData;
+diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
+index e350a99..fa1e026 100644
+--- sc/source/core/data/documen3.cxx
++++ sc/source/core/data/documen3.cxx
+@@ -1826,7 +1826,7 @@ void ScDocument::SetLanguage( LanguageType eLatin, LanguageType eCjk, LanguageTy
+ 	eLanguage = eLatin;
+ 	eCjkLanguage = eCjk;
+ 	eCtlLanguage = eCtl;
+-	if ( xPoolHelper.isValid() )
++	if ( xPoolHelper.is() )
+ 	{
+ 		ScDocumentPool* pPool = xPoolHelper->GetDocPool();
+ 		pPool->SetPoolDefaultItem( SvxLanguageItem( eLanguage, ATTR_FONT_LANGUAGE ) );
+diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
+index a6e80bd..f38712d 100644
+--- sc/source/core/data/documen9.cxx
++++ sc/source/core/data/documen9.cxx
+@@ -914,12 +914,12 @@ void ScDocument::SetXMLFromWrapper( BOOL bVal )
+     bXMLFromWrapper = bVal;
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable> ScDocument::GetForbiddenCharacters()
++rtl::Reference<SvxForbiddenCharactersTable> ScDocument::GetForbiddenCharacters()
+ {
+ 	return xForbiddenCharacters;
+ }
+ 
+-void ScDocument::SetForbiddenCharacters( const vos::ORef<SvxForbiddenCharactersTable> xNew )
++void ScDocument::SetForbiddenCharacters( const rtl::Reference<SvxForbiddenCharactersTable> xNew )
+ {
+ 	xForbiddenCharacters = xNew;
+ 	if ( pEditEngine )
+diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
+index a0e9026..38f64d8 100644
+--- sc/source/core/data/document.cxx
++++ sc/source/core/data/document.cxx
+@@ -1528,7 +1528,7 @@ void ScDocument::TransposeClip( ScDocument* pTransClip, USHORT nFlags, BOOL bAsL
+ BOOL ScDocument::IsClipboardSource() const
+ {
+ 	ScDocument* pClipDoc = SC_MOD()->GetClipDoc();
+-	return pClipDoc && pClipDoc->xPoolHelper.isValid() &&
++	return pClipDoc && pClipDoc->xPoolHelper.is() &&
+ 			xPoolHelper->GetDocPool() == pClipDoc->xPoolHelper->GetDocPool();
+ }
+ 
+@@ -4336,7 +4336,7 @@ BOOL ScDocument::LoadPool( SvStream& rStream, BOOL /* bLoadRefCounts */ )
+ 
+ 	ScPatternAttr::pDoc = this;
+ 
+-	if ( xPoolHelper.isValid() && !bIsClip )
++	if ( xPoolHelper.is() && !bIsClip )
+ 		xPoolHelper->SourceDocumentGone();
+ 
+ 	xPoolHelper = new ScPoolHelper( this );
+diff --git a/sc/source/core/inc/poolhelp.hxx b/sc/source/core/inc/poolhelp.hxx
+index 70d1230..fa4dc43 100644
+--- sc/source/core/inc/poolhelp.hxx
++++ sc/source/core/inc/poolhelp.hxx
+@@ -36,8 +36,8 @@
+ #ifndef SC_POOLHELP_HXX
+ #define SC_POOLHELP_HXX
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ #ifndef _LINK_HXX
+@@ -51,7 +51,7 @@ class SvNumberFormatter;
+ class SfxItemPool;
+ 
+ 
+-class ScPoolHelper : public vos::OReference
++class ScPoolHelper : public salhelper::SimpleReferenceObject
+ {
+ private:
+ 	ScDocumentPool*		pDocPool;
+diff --git a/sc/source/filter/inc/filt_pch.hxx b/sc/source/filter/inc/filt_pch.hxx
+index 8c2d933..28c6650 100644
+--- sc/source/filter/inc/filt_pch.hxx
++++ sc/source/filter/inc/filt_pch.hxx
+@@ -239,7 +239,7 @@
+ #include <vcl/svapp.hxx>
+ #include <vos/thread.hxx>
+ #include <vos/runnable.hxx>
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ #include <vcl/apptypes.hxx>
+ #include <svx/editdata.hxx>
+ #include <svx/editeng.hxx>
+diff --git a/sc/source/filter/xml/XMLDDELinksContext.cxx b/sc/source/filter/xml/XMLDDELinksContext.cxx
+index 6129af3..999ca8d 100644
+--- sc/source/filter/xml/XMLDDELinksContext.cxx
++++ sc/source/filter/xml/XMLDDELinksContext.cxx
+@@ -73,6 +73,8 @@
+ using namespace com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScXMLDDELinksContext::ScXMLDDELinksContext( ScXMLImport& rImport,
+diff --git a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
+index 503816d..e10a542 100644
+--- sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
++++ sc/source/filter/xml/XMLTableHeaderFooterContext.cxx
+@@ -57,7 +57,6 @@
+ 
+ #include "unonames.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -65,6 +64,7 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
+ 
+ TYPEINIT1( XMLTableHeaderFooterContext, SvXMLImportContext );
+ 
+diff --git a/sc/source/filter/xml/XMLTableMasterPageExport.cxx b/sc/source/filter/xml/XMLTableMasterPageExport.cxx
+index 1c36358..acfdfbe 100644
+--- sc/source/filter/xml/XMLTableMasterPageExport.cxx
++++ sc/source/filter/xml/XMLTableMasterPageExport.cxx
+@@ -66,7 +66,6 @@
+ #include "unonames.hxx"
+ #include "xmlexprt.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+diff --git a/sc/source/filter/xml/XMLTableShapeImportHelper.cxx b/sc/source/filter/xml/XMLTableShapeImportHelper.cxx
+index 104ab3c..e4b28f8 100644
+--- sc/source/filter/xml/XMLTableShapeImportHelper.cxx
++++ sc/source/filter/xml/XMLTableShapeImportHelper.cxx
+@@ -88,6 +88,8 @@
+ using namespace ::com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ XMLTableShapeImportHelper::XMLTableShapeImportHelper(
+ 		ScXMLImport& rImp, SvXMLImportPropertyMapper *pImpMapper ) :
+ 	XMLShapeImportHelper(rImp, rImp.GetModel(), pImpMapper ),
+diff --git a/sc/source/filter/xml/XMLTrackedChangesContext.cxx b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+index f48d9cf..33e4af2 100644
+--- sc/source/filter/xml/XMLTrackedChangesContext.cxx
++++ sc/source/filter/xml/XMLTrackedChangesContext.cxx
+@@ -89,6 +89,8 @@
+ using namespace com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //-----------------------------------------------------------------------------
+ 
+ class ScXMLChangeInfoContext : public SvXMLImportContext
+diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
+index 0196454..d552f6c 100644
+--- sc/source/filter/xml/xmlcelli.cxx
++++ sc/source/filter/xml/xmlcelli.cxx
+@@ -155,6 +155,8 @@
+ using namespace com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScMyImportAnnotation::~ScMyImportAnnotation()
+diff --git a/sc/source/filter/xml/xmldpimp.cxx b/sc/source/filter/xml/xmldpimp.cxx
+index 21786f7..377df32 100644
+--- sc/source/filter/xml/xmldpimp.cxx
++++ sc/source/filter/xml/xmldpimp.cxx
+@@ -99,6 +99,8 @@
+ using namespace com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScXMLDataPilotTablesContext::ScXMLDataPilotTablesContext( ScXMLImport& rImport,
+diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
+index 8d1268a..9cdc751 100644
+--- sc/source/filter/xml/xmlimprt.cxx
++++ sc/source/filter/xml/xmlimprt.cxx
+@@ -178,6 +178,8 @@
+ using namespace com::sun::star;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ OUString SAL_CALL ScXMLImport_getImplementationName() throw()
+ {
+ 	return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Calc.XMLOasisImporter" ) );
+diff --git a/sc/source/filter/xml/xmlimprt.hxx b/sc/source/filter/xml/xmlimprt.hxx
+index ef7e698..6ded970 100644
+--- sc/source/filter/xml/xmlimprt.hxx
++++ sc/source/filter/xml/xmlimprt.hxx
+@@ -92,8 +92,6 @@ class ScRangeList;
+ class ScMyStyleNumberFormats;
+ class XMLNumberFormatAttributesExportHelper;
+ 
+-using namespace rtl;
+-
+ enum ScXMLShapeHlinkTokens // #i66550 HLINK_FOR_SHAPES
+ {
+ 	XML_TOK_SHAPE_ATTR_HREF
+diff --git a/sc/source/filter/xml/xmlsceni.cxx b/sc/source/filter/xml/xmlsceni.cxx
+index 2375d11..943634a 100644
+--- sc/source/filter/xml/xmlsceni.cxx
++++ sc/source/filter/xml/xmlsceni.cxx
+@@ -65,6 +65,8 @@
+ using namespace com::sun::star;
+ using namespace xmloff::token;
+ 
++using rtl::OUString;
++
+ //------------------------------------------------------------------
+ 
+ ScXMLTableScenarioContext::ScXMLTableScenarioContext(
+diff --git a/sc/source/filter/xml/xmlstyle.cxx b/sc/source/filter/xml/xmlstyle.cxx
+index 441227a..6d35340 100644
+--- sc/source/filter/xml/xmlstyle.cxx
++++ sc/source/filter/xml/xmlstyle.cxx
+@@ -115,6 +115,8 @@
+ using namespace com::sun::star;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ #define MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context }
+ #define MAP_END()	{ NULL, 0, 0, XML_TOKEN_INVALID, 0 }
+ 
+diff --git a/sc/source/filter/xml/xmlstyle.hxx b/sc/source/filter/xml/xmlstyle.hxx
+index 0f327bf..6a5c627 100644
+--- sc/source/filter/xml/xmlstyle.hxx
++++ sc/source/filter/xml/xmlstyle.hxx
+@@ -61,8 +61,6 @@
+ #include <xmloff/contextid.hxx>
+ #endif
+ 
+-using namespace rtl;
+-
+ extern const XMLPropertyMapEntry aXMLScCellStylesProperties[];
+ extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[];
+ extern const XMLPropertyMapEntry aXMLScRowStylesProperties[];
+diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx
+index a267ba9..dd2bd41 100644
+--- sc/source/filter/xml/xmlstyli.cxx
++++ sc/source/filter/xml/xmlstyli.cxx
+@@ -107,7 +107,6 @@
+ #define XML_LINE_TLBR 0
+ #define XML_LINE_BLTR 1
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -118,6 +117,9 @@ using namespace ::com::sun::star::container;
+ using namespace xmloff::token;
+ //using namespace ::com::sun::star::text;
+ 
++using rtl::OUString;
++using com::sun::star::uno::Reference;
++
+ ScXMLCellImportPropertyMapper::ScXMLCellImportPropertyMapper(
+ 		const UniReference< XMLPropertySetMapper >& rMapper,
+         SvXMLImport& rImportP) :
+diff --git a/sc/source/filter/xml/xmlwrap.cxx b/sc/source/filter/xml/xmlwrap.cxx
+index 6465fd0..3e41ecf 100644
+--- sc/source/filter/xml/xmlwrap.cxx
++++ sc/source/filter/xml/xmlwrap.cxx
+@@ -150,6 +150,8 @@
+ 
+ using namespace com::sun::star;
+ 
++using rtl::OUString;
++
+ // -----------------------------------------------------------------------
+ 
+ ScXMLImportWrapper::ScXMLImportWrapper(ScDocument& rD, SfxMedium* pM, const uno::Reference < embed::XStorage >& xStor ) :
+diff --git a/sc/source/ui/docshell/docsh2.cxx b/sc/source/ui/docshell/docsh2.cxx
+index cfb2899..2871b76 100644
+--- sc/source/ui/docshell/docsh2.cxx
++++ sc/source/ui/docshell/docsh2.cxx
+@@ -165,19 +165,19 @@ void ScDocShell::InitItems()
+         PutItem( SvxColorTableItem( XColorTable::GetStdColorTable(), SID_COLOR_TABLE ) );
+ 	}
+ 
+-	if ( !aDocument.GetForbiddenCharacters().isValid() ||
++	if ( !aDocument.GetForbiddenCharacters().is() ||
+ 			!aDocument.IsValidAsianCompression() || !aDocument.IsValidAsianKerning() )
+ 	{
+ 		//	get settings from SvxAsianConfig
+ 		SvxAsianConfig aAsian( sal_False );
+ 
+-		if ( !aDocument.GetForbiddenCharacters().isValid() )
++		if ( !aDocument.GetForbiddenCharacters().is() )
+ 		{
+ 			// set forbidden characters if necessary
+ 			uno::Sequence<lang::Locale> aLocales = aAsian.GetStartEndCharLocales();
+ 			if (aLocales.getLength())
+ 			{
+-				vos::ORef<SvxForbiddenCharactersTable> xForbiddenTable =
++				rtl::Reference<SvxForbiddenCharactersTable> xForbiddenTable =
+ 						new SvxForbiddenCharactersTable( aDocument.GetServiceManager() );
+ 
+ 				const lang::Locale* pLocales = aLocales.getConstArray();
+diff --git a/sc/source/ui/unoobj/forbiuno.cxx b/sc/source/ui/unoobj/forbiuno.cxx
+index 70b26f4..cf13212 100644
+--- sc/source/ui/unoobj/forbiuno.cxx
++++ sc/source/ui/unoobj/forbiuno.cxx
+@@ -47,14 +47,14 @@ using namespace ::com::sun::star;
+ 
+ //------------------------------------------------------------------------
+ 
+-vos::ORef<SvxForbiddenCharactersTable> lcl_GetForbidden( ScDocShell* pDocSh )
++rtl::Reference<SvxForbiddenCharactersTable> lcl_GetForbidden( ScDocShell* pDocSh )
+ {
+-	vos::ORef<SvxForbiddenCharactersTable> xRet;
++	rtl::Reference<SvxForbiddenCharactersTable> xRet;
+ 	if ( pDocSh )
+ 	{
+ 		ScDocument* pDoc = pDocSh->GetDocument();
+ 		xRet = pDoc->GetForbiddenCharacters();
+-		if ( !xRet.isValid() )
++		if ( !xRet.is() )
+ 		{
+ 			//	create an empty SvxForbiddenCharactersTable for SvxUnoForbiddenCharsTable,
+ 			//	so changes can be stored.
+diff --git a/sc/util/makefile.mk b/sc/util/makefile.mk
+index b84732a..8289f87 100644
+--- sc/util/makefile.mk
++++ sc/util/makefile.mk
+@@ -97,6 +97,7 @@ SHL1STDLIBS=       \
+ 	$(TKLIB)		\
+ 	$(VOSLIB)		\
+ 	$(SALLIB)		\
++	$(SALHELPERLIB)		\
+ 	$(TOOLSLIB)	\
+ 	$(I18NUTILLIB) \
+ 	$(I18NISOLANGLIB) \
+diff --git a/sd/source/core/EffectMigration.cxx b/sd/source/core/EffectMigration.cxx
+index b07b8ae..fdc9214 100644
+--- sd/source/core/EffectMigration.cxx
++++ sd/source/core/EffectMigration.cxx
+@@ -80,7 +80,6 @@
+ #include <anminfo.hxx>
+ #endif
+ 
+-using namespace ::vos;
+ using namespace ::sd;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::animations;
+diff --git a/sd/source/core/sdpage_animations.cxx b/sd/source/core/sdpage_animations.cxx
+index 480c017..4408614 100644
+--- sd/source/core/sdpage_animations.cxx
++++ sd/source/core/sdpage_animations.cxx
+@@ -87,12 +87,12 @@
+ #endif
+ 
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::sd;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::animations;
+ using namespace ::com::sun::star::presentation;
+ 
++using rtl::OUString;
+ using ::com::sun::star::drawing::XShape;
+ 
+ /** returns a helper class to manipulate effects inside the main sequence */
+diff --git a/sd/source/ui/unoidl/unogsfm.cxx b/sd/source/ui/unoidl/unogsfm.cxx
+index 0c55c68..7105973 100644
+--- sd/source/ui/unoidl/unogsfm.cxx
++++ sd/source/ui/unoidl/unogsfm.cxx
+@@ -76,7 +76,7 @@
+ //#include "docshell.hxx"
+ //#endif
+ 
+-using namespace ::rtl;
++using rtl::OUString;
+ using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+diff --git a/sd/util/makefile.mk b/sd/util/makefile.mk
+index 26ab788..1a9f94f 100644
+--- sd/util/makefile.mk
++++ sd/util/makefile.mk
+@@ -91,6 +91,7 @@ SHL1STDLIBS+= \
+ 	$(VOSLIB) \
+ 	$(CANVASLIB) \
+ 	$(SALLIB) \
++	$(SALHELPERLIB) \
+ 	$(AVMEDIALIB)
+ 
+ SHL1LIBS= $(LIB3TARGET) $(LIB5TARGET) $(LIB6TARGET)
+diff --git a/so3/source/persist/transprt.cxx b/so3/source/persist/transprt.cxx
+index 90c43e7..afc3f84 100644
+--- binfilter/bf_so3/source/persist/transprt.cxx
++++ binfilter/bf_so3/source/persist/transprt.cxx
+@@ -130,8 +130,8 @@
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _SOLAR_H
+@@ -1322,7 +1322,7 @@ protected:
+ 	String                               m_aUrl;
+ 	SvBindingTransportContext           &m_rCtx;
+ 	SvBindingTransportCallback          *m_pCallback;
+-	vos::ORef<UcbTransportDataSink_Impl> m_xSink;
++	rtl::Reference<UcbTransportDataSink_Impl> m_xSink;
+ 	SvLockBytesRef                       m_xLockBytes;
+ 	Reference<XContent>                  m_xContent;
+ 	OUString                             m_aContentType;
+@@ -1463,10 +1463,10 @@ IMPL_LINK( UcbTransport_Impl, ExecuteCallback, void*, pVoid )
+         if ( bAborted || bException  )
+         {
+             // download aborted
+-            if ( m_xSink.isValid() )
++            if ( m_xSink.is() )
+             {
+                 m_xSink->terminate();
+-                m_xSink.unbind();
++                m_xSink.clear();
+             }
+ 
+             if ( getCallback_Impl(pCB) )
+@@ -1480,12 +1480,12 @@ IMPL_LINK( UcbTransport_Impl, ExecuteCallback, void*, pVoid )
+                 m_aContentType = getContentType_Impl(xProcessor);
+             }
+ 
+-            if ( m_xSink.isValid() )
++            if ( m_xSink.is() )
+             {
+                 m_xSink->terminate();
+                 if( !m_xLockBytes.Is() )
+                     m_xLockBytes = m_xSink->getLockBytes();
+-                m_xSink.unbind();
++                m_xSink.clear();
+             }
+ 
+             if ( !m_bMimeAvail )
+@@ -1553,7 +1553,7 @@ void UcbTransport_Impl::start (void)
+ 		aArgument.Priority = m_rCtx.GetPriority();
+ 
+ 		m_xSink = new UcbTransportDataSink_Impl();
+-		aArgument.Sink = SAL_STATIC_CAST(OWeakObject*, m_xSink.getBodyPtr());
++		aArgument.Sink = SAL_STATIC_CAST(OWeakObject*, m_xSink.get());
+ 
+ 		if (m_rCtx.GetBindMode() & SVBIND_NEWESTVERSION)
+             m_aCommand.Name = OUString::createFromAscii ("synchronize");
+@@ -1703,7 +1703,7 @@ void SAL_CALL UcbTransport_Impl::push ( const Any &rStatus) throw(RuntimeExcepti
+ 		}
+ 		if (!m_xLockBytes.Is())
+ 		{
+-			if (m_xSink.isValid())
++			if (m_xSink.is())
+ 				m_xLockBytes = m_xSink->getLockBytes();
+ 		}
+ 		if (m_bMimeAvail && m_xLockBytes.Is() && getCallback_Impl (pCB))
+@@ -1731,7 +1731,7 @@ void SAL_CALL UcbTransport_Impl::update ( const Any &rStatus) throw(RuntimeExcep
+ 			}
+ 			if (!m_xLockBytes.Is())
+ 			{
+-				if (m_xSink.isValid())
++				if (m_xSink.is())
+ 					m_xLockBytes = m_xSink->getLockBytes();
+ 			}
+ 			if (m_bMimeAvail && m_xLockBytes.Is() && getCallback_Impl (pCB))
+@@ -1783,7 +1783,7 @@ void SAL_CALL UcbTransport_Impl::propertiesChange ( const Sequence<PropertyChang
+ 		}
+ 		if (evt.PropertyName == OUString::createFromAscii ("DocumentBody"))
+ 		{
+-			if (m_xSink.isValid())
++			if (m_xSink.is())
+ 				m_xLockBytes = m_xSink->getLockBytes();
+ 			continue;
+ 		}
+@@ -1980,7 +1980,7 @@ void UcbHTTPTransport_Impl::start (void)
+ 		OpenCommandArgument2 aArgument;
+ 		aArgument.Mode = OpenMode::DOCUMENT;
+ 		aArgument.Priority = m_rCtx.GetPriority();
+-		aArgument.Sink = SAL_STATIC_CAST(OWeakObject*, m_xSink.getBodyPtr());
++		aArgument.Sink = SAL_STATIC_CAST(OWeakObject*, m_xSink.get());
+         m_aCommand.Argument <<= aArgument;
+ 
+         m_nCommandId = xProcessor->createCommandIdentifier();
+@@ -2033,7 +2033,7 @@ void UcbHTTPTransport_Impl::start (void)
+ 
+ 			PostCommandArgument aArgument;
+ 			aArgument.Source = new UcbTransportInputStream_Impl(xLockBytes);
+-            aArgument.Sink = static_cast< OWeakObject* >(m_xSink.getBodyPtr());
++            aArgument.Sink = static_cast< OWeakObject* >(m_xSink.get());
+             m_aCommand.Argument <<= aArgument;
+ 		}
+ 
+@@ -2221,7 +2221,7 @@ void UcbHTTPTransport_Impl::handleError_Impl (
+ class UcbTransport : public SvBindingTransport
+ {
+ public:
+-	UcbTransport (const vos::ORef<UcbTransport_Impl> &rxImpl);
++	UcbTransport (const rtl::Reference<UcbTransport_Impl> &rxImpl);
+ 	virtual ~UcbTransport (void);
+ 
+ 	/** SvBindingTransport.
+@@ -2232,7 +2232,7 @@ public:
+ private:
+ 	/** Representation.
+ 	 */
+-	vos::ORef<UcbTransport_Impl> m_xImpl;
++	rtl::Reference<UcbTransport_Impl> m_xImpl;
+ 
+ 	/** Not implemented.
+ 	 */
+@@ -2242,7 +2242,7 @@ private:
+ /*
+  * UcbTransport.
+  */
+-UcbTransport::UcbTransport (const vos::ORef<UcbTransport_Impl> &rxImpl)
++UcbTransport::UcbTransport (const rtl::Reference<UcbTransport_Impl> &rxImpl)
+ 	: m_xImpl (rxImpl)
+ {
+ }
+@@ -2259,7 +2259,7 @@ UcbTransport::~UcbTransport (void)
+  */
+ void UcbTransport::Start (void)
+ {
+-	if (m_xImpl.isValid())
++	if (m_xImpl.is())
+ 		m_xImpl->start();
+ }
+ 
+@@ -2268,7 +2268,7 @@ void UcbTransport::Start (void)
+  */
+ void UcbTransport::Abort (void)
+ {
+-	if (m_xImpl.isValid())
++	if (m_xImpl.is())
+ 		m_xImpl->abort();
+ }
+ 
+@@ -2318,7 +2318,7 @@ SvBindingTransport* CntTransportFactory::CreateTransport (
+ 		(eProto == INET_PROT_FILE ) ||
+ 		(eProto == INET_PROT_FTP  )    )
+ 	{
+-		vos::ORef<UcbTransport_Impl> xImpl;
++		rtl::Reference<UcbTransport_Impl> xImpl;
+ 		if ((eProto == INET_PROT_HTTPS) || (eProto == INET_PROT_HTTP))
+ 			xImpl = new UcbHTTPTransport_Impl (rUrl, rCtx, pCB);
+ 		else if ((eProto == INET_PROT_FTP) && BAPP()->ShouldUseFtpProxy (rUrl))
+diff --git a/starmath/inc/symbol.hxx b/starmath/inc/symbol.hxx
+index 341dc8f..100aa89 100644
+--- starmath/inc/symbol.hxx
++++ starmath/inc/symbol.hxx
+@@ -35,8 +35,8 @@
+ #ifndef SYMBOL_HXX
+ #define SYMBOL_HXX
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _FONT_HXX //autogen
+ #include <vcl/font.hxx>
+diff --git a/starmath/source/accessibility.cxx b/starmath/source/accessibility.cxx
+index ffa3902..212693c 100644
+--- starmath/source/accessibility.cxx
++++ starmath/source/accessibility.cxx
+@@ -129,7 +129,7 @@
+ #include <view.hxx>
+ #endif
+ 
+-using namespace rtl;
++using rtl::OUString;
+ using namespace com::sun::star;
+ using namespace com::sun::star::lang;
+ using namespace com::sun::star::uno;
+diff --git a/starmath/source/math_pch.cxx b/starmath/source/math_pch.cxx
+index 4bc5bb5..45dbedf 100644
+--- starmath/source/math_pch.cxx
++++ starmath/source/math_pch.cxx
+@@ -126,7 +126,7 @@
+ #include <usr/uno.hxx>
+ #include <usr/xiface.hxx>
+ #include <usr/ustring.hxx>
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ #include <vos/types.hxx>
+ #include <osl/types.h>
+ #include <osl/interlck.h>
+diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
+index 3646b37..1700a69 100644
+--- starmath/source/unomodel.cxx
++++ starmath/source/unomodel.cxx
+@@ -118,7 +118,6 @@
+ #include <smdll.hxx>
+ 
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::std;
+ using namespace ::comphelper;
+@@ -130,6 +129,8 @@ using namespace ::com::sun::star::formula;
+ using namespace ::com::sun::star::view;
+ using namespace ::com::sun::star::script;
+ 
++using rtl::OUString;
++
+ #define TWIP_TO_MM100(TWIP) 	((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+ #define MM100_TO_TWIP(MM100)	((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
+ 
+diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
+index 785be00..2e06f3e 100644
+--- svtools/inc/pch/precompiled_svtools.hxx
++++ svtools/inc/pch/precompiled_svtools.hxx
+@@ -431,8 +431,8 @@
+ #include <vcl/unohelp.hxx>
+ 
+ #include <vos/mutex.hxx>
+-#include <vos/ref.hxx>
+-#include <vos/refernce.hxx>
++#include <rtl/ref.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ #include <vos/security.hxx>
+ #include <vos/thread.hxx>
+ #include <vos/timer.hxx>
+diff --git a/svtools/source/misc/templatefoldercache.cxx b/svtools/source/misc/templatefoldercache.cxx
+index 1007421..9d786bd 100644
+--- svtools/source/misc/templatefoldercache.cxx
++++ svtools/source/misc/templatefoldercache.cxx
+@@ -69,11 +69,11 @@
+ #ifndef _UCBHELPER_CONTENT_HXX
+ #include <ucbhelper/content.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _URLOBJ_HXX
+ #include <tools/urlobj.hxx>
+@@ -156,13 +156,13 @@ namespace svt
+ 	//= TemplateContent
+ 	//=====================================================================
+ 	struct TemplateContent;
+-	typedef	::std::vector< ::vos::ORef< TemplateContent > >	TemplateFolderContent;
++	typedef	::std::vector< ::rtl::Reference< TemplateContent > >	TemplateFolderContent;
+         typedef TemplateFolderContent::const_iterator           ConstFolderIterator;
+         typedef TemplateFolderContent::iterator                 FolderIterator;
+ 
+ 	/** a struct describing one content in one of the template dirs (or at least it's relevant aspects)
+ 	*/
+-	struct TemplateContent : public ::vos::OReference
++	struct TemplateContent : public ::salhelper::SimpleReferenceObject
+ 	{
+ 	public:
+ 
+@@ -201,7 +201,7 @@ namespace svt
+ 		inline TemplateFolderContent::size_type
+ 										size() const	{ return m_aSubContents.size(); }
+ 
+-		inline void						push_back( const ::vos::ORef< TemplateContent >& _rxNewElement )
++		inline void						push_back( const ::rtl::Reference< TemplateContent >& _rxNewElement )
+ 														{ m_aSubContents.push_back( _rxNewElement ); }
+ 	};
+ 
+@@ -247,12 +247,12 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	/// compares two TemplateContent by URL
+ 	struct TemplateContentURLLess
+-		:public ::std::binary_function	<	::vos::ORef< TemplateContent >
+-										,	::vos::ORef< TemplateContent >
++		:public ::std::binary_function	<	::rtl::Reference< TemplateContent >
++										,	::rtl::Reference< TemplateContent >
+ 										,	bool
+ 										>
+ 	{
+-		bool operator() ( const ::vos::ORef< TemplateContent >& _rxLHS, const ::vos::ORef< TemplateContent >& _rxRHS ) const
++		bool operator() ( const ::rtl::Reference< TemplateContent >& _rxLHS, const ::rtl::Reference< TemplateContent >& _rxRHS ) const
+ 		{
+ 			return	_rxLHS->getURL() < _rxRHS->getURL()
+ 				?	true
+@@ -262,7 +262,7 @@ namespace svt
+ 
+ 	//---------------------------------------------------------------------
+ 	/// sorts the sib contents of a TemplateFolderContent
+-	struct SubContentSort : public ::std::unary_function< ::vos::ORef< TemplateContent >, void >
++	struct SubContentSort : public ::std::unary_function< ::rtl::Reference< TemplateContent >, void >
+ 	{
+ 		void operator() ( TemplateFolderContent& _rFolder ) const
+ 		{
+@@ -281,9 +281,9 @@ namespace svt
+ 			);
+ 		}
+ 
+-		void operator() ( const ::vos::ORef< TemplateContent >& _rxContent ) const
++		void operator() ( const ::rtl::Reference< TemplateContent >& _rxContent ) const
+ 		{
+-			if ( _rxContent.isValid() && _rxContent->size() )
++			if ( _rxContent.is() && _rxContent->size() )
+ 			{
+ 				operator()( _rxContent->getSubContents() );
+ 			}
+@@ -293,15 +293,15 @@ namespace svt
+ 	/** does a deep compare of two template contents
+ 	*/
+ 	struct TemplateContentEqual
+-		:public ::std::binary_function	<	::vos::ORef< TemplateContent >
+-										,	::vos::ORef< TemplateContent >
++		:public ::std::binary_function	<	::rtl::Reference< TemplateContent >
++										,	::rtl::Reference< TemplateContent >
+ 										,	bool
+ 										>
+ 	{
+ 		//.................................................................
+-		bool operator() (const ::vos::ORef< TemplateContent >& _rLHS, const ::vos::ORef< TemplateContent >& _rRHS )
++		bool operator() (const ::rtl::Reference< TemplateContent >& _rLHS, const ::rtl::Reference< TemplateContent >& _rRHS )
+ 		{
+-			if ( !_rLHS.isValid() || !_rRHS.isValid() )
++			if ( !_rLHS.is() || !_rRHS.is() )
+ 			{
+ 				DBG_ERROR( "TemplateContentEqual::operator(): invalid contents!" );
+ 				return true;
+@@ -360,12 +360,12 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	/// functor which stores the local name of a TemplateContent
+ 	struct StoreLocalContentName
+-			:public ::std::unary_function< ::vos::ORef< TemplateContent >, void >
++			:public ::std::unary_function< ::rtl::Reference< TemplateContent >, void >
+ 			,public StoreString
+ 	{
+ 		StoreLocalContentName( SvStream& _rStorage ) : StoreString( _rStorage ) { }
+ 
+-		void operator() ( const ::vos::ORef< TemplateContent >& _rxContent ) const
++		void operator() ( const ::rtl::Reference< TemplateContent >& _rxContent ) const
+ 		{
+ 			DBG_ERRORFILE( "This method must not be used, the whole URL must be stored!" );
+ 
+@@ -376,7 +376,7 @@ namespace svt
+ 
+ 	//---------------------------------------------------------------------
+ 	struct StoreContentURL
+-			:public ::std::unary_function< ::vos::ORef< TemplateContent >, void >
++			:public ::std::unary_function< ::rtl::Reference< TemplateContent >, void >
+ 			,public StoreString
+ 	{
+         uno::Reference< util::XOfficeInstallationDirectories > m_xOfficeInstDirs;
+@@ -387,7 +387,7 @@ namespace svt
+                                 xOfficeInstDirs )
+         : StoreString( _rStorage ), m_xOfficeInstDirs( xOfficeInstDirs ) { }
+ 
+-		void operator() ( const ::vos::ORef< TemplateContent >& _rxContent ) const
++		void operator() ( const ::rtl::Reference< TemplateContent >& _rxContent ) const
+ 		{
+ 			// use the base class operator with the local name of the content
+             String sURL = _rxContent->getURL();
+@@ -401,7 +401,7 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	/// functor which stores the complete content of a TemplateContent
+ 	struct StoreFolderContent
+-			:public ::std::unary_function< ::vos::ORef< TemplateContent >, void >
++			:public ::std::unary_function< ::rtl::Reference< TemplateContent >, void >
+ 			,public StorageHelper
+ 	{
+         uno::Reference< util::XOfficeInstallationDirectories > m_xOfficeInstDirs;
+@@ -437,9 +437,9 @@ namespace svt
+ 		}
+ 
+ 		//.................................................................
+-		void operator() ( const ::vos::ORef< TemplateContent >& _rxContent ) const
++		void operator() ( const ::rtl::Reference< TemplateContent >& _rxContent ) const
+ 		{
+-			if ( _rxContent.isValid() )
++			if ( _rxContent.is() )
+ 			{
+ 				operator()( *_rxContent );
+ 			}
+@@ -449,7 +449,7 @@ namespace svt
+ 	//---------------------------------------------------------------------
+ 	/// functor which reads a complete TemplateContent instance
+ 	struct ReadFolderContent
+-			:public ::std::unary_function< ::vos::ORef< TemplateContent >, void >
++			:public ::std::unary_function< ::rtl::Reference< TemplateContent >, void >
+ 			,public StorageHelper
+ 	{
+         uno::Reference< util::XOfficeInstallationDirectories > m_xOfficeInstDirs;
+@@ -494,9 +494,9 @@ namespace svt
+ 		}
+ 
+ 		//.................................................................
+-		void operator() ( const ::vos::ORef< TemplateContent >& _rxContent ) const
++		void operator() ( const ::rtl::Reference< TemplateContent >& _rxContent ) const
+ 		{
+-			if ( _rxContent.isValid() )
++			if ( _rxContent.is() )
+ 			{
+ 				operator()( *_rxContent );
+ 			}
+@@ -541,7 +541,7 @@ namespace svt
+ 
+ 		String		implParseSmart( const String& _rPath );
+ 
+-		sal_Bool	implReadFolder( const ::vos::ORef< TemplateContent >& _rxRoot );
++		sal_Bool	implReadFolder( const ::rtl::Reference< TemplateContent >& _rxRoot );
+ 
+ 		static	String		getCacheFileName();
+ 		static	sal_Int32	getMagicNumber();
+@@ -668,7 +668,7 @@ namespace svt
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	sal_Bool TemplateFolderCacheImpl::implReadFolder( const ::vos::ORef< TemplateContent >& _rxRoot )
++	sal_Bool TemplateFolderCacheImpl::implReadFolder( const ::rtl::Reference< TemplateContent >& _rxRoot )
+ 	{
+ 		try
+ 		{
+@@ -710,7 +710,7 @@ namespace svt
+ 					INetURLObject aSubContentURL( xContentAccess->queryContentIdentifierString() );
+ 
+ 					// a new content instance
+-					::vos::ORef< TemplateContent > xChild = new TemplateContent( aSubContentURL );
++					::rtl::Reference< TemplateContent > xChild = new TemplateContent( aSubContentURL );
+ 
+ 					// the modified date
+ 					xChild->setModDate( xRow->getTimestamp( 2 ) );	// date modified
+diff --git a/svtools/util/makefile.mk b/svtools/util/makefile.mk
+index 85f9b77..8ed592e 100644
+--- svtools/util/makefile.mk
++++ svtools/util/makefile.mk
+@@ -153,6 +153,7 @@ SHL1STDLIBS+= \
+ 		$(CPPULIB)			\
+ 		$(VOSLIB)			\
+ 		$(SALLIB)			\
++		$(SALHELPERLIB)			\
+ 		$(ICUUCLIB)		\
+ 		$(JVMFWKLIB)
+ 
+diff --git a/svx/inc/UnoForbiddenCharsTable.hxx b/svx/inc/UnoForbiddenCharsTable.hxx
+index 92934d9..c92c99d 100644
+--- svx/inc/UnoForbiddenCharsTable.hxx
++++ svx/inc/UnoForbiddenCharsTable.hxx
+@@ -43,8 +43,8 @@
+ #include <com/sun/star/linguistic2/XSupportedLocales.hpp>
+ #endif
+ 
+-#ifndef _VOS_REF_HXX_ 
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #include <cppuhelper/implbase2.hxx>
+@@ -63,10 +63,10 @@ protected:
+ 	/** this virtual function is called if the forbidden characters are changed */
+ 	virtual void onChange();
+ 
+-	vos::ORef<SvxForbiddenCharactersTable> mxForbiddenChars;
++	rtl::Reference<SvxForbiddenCharactersTable> mxForbiddenChars;
+ 
+ public:
+-	SvxUnoForbiddenCharsTable(vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars);
++	SvxUnoForbiddenCharsTable(rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars);
+ 	~SvxUnoForbiddenCharsTable();
+ 
+ 	// XForbiddenCharacters
+diff --git a/svx/inc/forbiddencharacterstable.hxx b/svx/inc/forbiddencharacterstable.hxx
+index bc776ed..254cbb3 100644
+--- svx/inc/forbiddencharacterstable.hxx
++++ svx/inc/forbiddencharacterstable.hxx
+@@ -40,7 +40,7 @@
+ #include <tools/table.hxx>
+ #endif
+ 
+-#include <vos/refernce.hxx>
++#include <salhelper/simplereferenceobject.hxx>
+ 
+ #ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
+ #include <com/sun/star/uno/Reference.hxx>
+@@ -69,7 +69,7 @@ struct ForbiddenCharactersInfo
+ 
+ DECLARE_TABLE( SvxForbiddenCharactersTableImpl, ForbiddenCharactersInfo* )
+ 
+-class SVX_DLLPUBLIC SvxForbiddenCharactersTable : public SvxForbiddenCharactersTableImpl, public vos::OReference
++class SVX_DLLPUBLIC SvxForbiddenCharactersTable : public SvxForbiddenCharactersTableImpl, public salhelper::SimpleReferenceObject
+ {
+ private:	
+ 	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
+diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
+index df20422..69bd6d2 100644
+--- svx/inc/pch/precompiled_svx.hxx
++++ svx/inc/pch/precompiled_svx.hxx
+@@ -953,8 +953,8 @@
+ #include "vcl/wall.hxx"
+ #include "vcl/wintypes.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "salhelper/simplereferenceobject.hxx"
+ #include "vos/thread.hxx"
+ #include "vos/xception.hxx"
+ #include "xmloff/DashStyle.hxx"
+diff --git a/svx/inc/svx/editeng.hxx b/svx/inc/svx/editeng.hxx
+index 045f699..6610fd7 100644
+--- svx/inc/svx/editeng.hxx
++++ svx/inc/svx/editeng.hxx
+@@ -69,7 +69,7 @@ class SvxLRSpaceItem;
+ class SvKeyValueIterator;
+ class SvxForbiddenCharactersTable;
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #include <vector>
+ 
+ #ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
+@@ -376,8 +376,8 @@ public:
+ 	void			SetHyphenator( ::com::sun::star::uno::Reference<
+ 							::com::sun::star::linguistic2::XHyphenator >& xHyph );
+ 
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
+ 
+ 	void 			SetDefaultLanguage( LanguageType eLang );
+ 	LanguageType	GetDefaultLanguage() const;
+diff --git a/svx/inc/svx/outliner.hxx b/svx/inc/svx/outliner.hxx
+index 0c0010c..dcc0a54 100644
+--- svx/inc/svx/outliner.hxx
++++ svx/inc/svx/outliner.hxx
+@@ -109,7 +109,7 @@ class SvxForbiddenCharactersTable;
+ #include <com/sun/star/uno/Reference.h>
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ #include <svx/svxfont.hxx>
+ 
+ namespace com { namespace sun { namespace star { namespace linguistic2 {
+@@ -878,8 +878,8 @@ public:
+ 	void			SetHyphenator( ::com::sun::star::uno::Reference<
+ 						::com::sun::star::linguistic2::XHyphenator >& xHyph );
+ 
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
+ 
+ 	// Depricated
+ 	void 			SetDefaultLanguage( LanguageType eLang );
+diff --git a/svx/inc/svx/svdmodel.hxx b/svx/inc/svx/svdmodel.hxx
+index 08fa400..cecf66d 100644
+--- svx/inc/svx/svdmodel.hxx
++++ svx/inc/svx/svdmodel.hxx
+@@ -89,7 +89,7 @@ class OutputDevice;
+ #include "svx/svxdllapi.h"
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+ #if defined(UNX) || defined(WIN) || defined(WNT)
+ #define DEGREE_CHAR ((sal_Unicode)176)   /* 0xB0 = Ansi */
+@@ -726,8 +726,8 @@ public:
+ 	BOOL isLocked() const { return (BOOL)mbModelLocked; }
+ 	void setLock( BOOL bLock );
+ 
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable() const;
+ 
+ 	void SetCharCompressType( UINT16 nType );
+ 	UINT16 GetCharCompressType() const { return mnCharCompressType; }
+diff --git a/svx/inc/unolingu.hxx b/svx/inc/unolingu.hxx
+index c98c5dd..5f65362 100644
+--- svx/inc/unolingu.hxx
++++ svx/inc/unolingu.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+ #endif
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_UTIL_LANGUAGE_HPP_
+diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
+old mode 100755
+new mode 100644
+index e6aee0a..c424e25
+--- svx/source/accessibility/AccessibleShape.cxx
++++ svx/source/accessibility/AccessibleShape.cxx
+@@ -111,11 +111,12 @@
+ #include <svx/svdview.hxx>
+ #include "AccessibleEmptyEditSource.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace	::com::sun::star::accessibility;
+ using ::com::sun::star::uno::Reference;
+ 
++using rtl::OUString;
++
+ namespace accessibility {
+ 
+ //=====  internal  ============================================================
+diff --git a/svx/source/accessibility/GraphCtlAccessibleContext.cxx b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
+index cfabc09..0b774cf 100644
+--- svx/source/accessibility/GraphCtlAccessibleContext.cxx
++++ svx/source/accessibility/GraphCtlAccessibleContext.cxx
+@@ -130,7 +130,6 @@
+ using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::osl;
+-using namespace	::rtl;
+ using namespace ::accessibility;
+ using namespace	::com::sun::star;
+ using namespace	::com::sun::star::uno;
+@@ -138,6 +137,8 @@ using namespace	::com::sun::star::drawing;
+ using namespace	::com::sun::star::lang;
+ using namespace	::com::sun::star::accessibility;
+ 
++using rtl::OUString;
++
+ //=====  internal  ============================================================
+ 
+ /** initialize this component and set default values */
+diff --git a/svx/source/dialog/hltpbase.cxx b/svx/source/dialog/hltpbase.cxx
+index d015cfa..b5a6110 100644
+--- svx/source/dialog/hltpbase.cxx
++++ svx/source/dialog/hltpbase.cxx
+@@ -255,7 +255,7 @@ String SvxHyperURLBox::GetAllEmailNamesFromDragItem( USHORT nItem )
+ 						if ( aRow.Is() )
+ 						{
+ 							aAddress += pDBMgr->
+-								ImportDBField( (USHORT)nPos, &aDBDef, aRow.getBodyPtr() );
++								ImportDBField( (USHORT)nPos, &aDBDef, aRow.get() );
+ 							aAddress += ',';
+ 						}
+ 						else
+diff --git a/svx/source/editeng/editeng.cxx b/svx/source/editeng/editeng.cxx
+index 4b7c134..7643ec9 100644
+--- svx/source/editeng/editeng.cxx
++++ svx/source/editeng/editeng.cxx
+@@ -128,7 +128,8 @@
+ 
+ // Spaeter -> TOOLS\STRING.H (fuer Grep: WS_TARGET)
+ 
+-//using namespace ::rtl;
++
++using rtl::OUString;
+ //using namespace ::utl;
+ using namespace ::com::sun::star;
+ //using namespace ::com::sun::star::util;
+@@ -2066,13 +2067,13 @@ void EditEngine::SetHyphenator( Reference< XHyphenator > & xHyph )
+ 	pImpEditEngine->SetHyphenator( xHyph );
+ }
+ 
+-void EditEngine::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++void EditEngine::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ {
+ 	DBG_CHKTHIS( EditEngine, 0 );
+ 	pImpEditEngine->SetForbiddenCharsTable( xForbiddenChars );
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable> EditEngine::GetForbiddenCharsTable() const
++rtl::Reference<SvxForbiddenCharactersTable> EditEngine::GetForbiddenCharsTable() const
+ {
+ 	DBG_CHKTHIS( EditEngine, 0 );
+ 	return pImpEditEngine->GetForbiddenCharsTable( FALSE );
+diff --git a/svx/source/editeng/editview.cxx b/svx/source/editeng/editview.cxx
+index 5023e75..68920b6 100644
+--- svx/source/editeng/editview.cxx
++++ svx/source/editeng/editview.cxx
+@@ -91,12 +91,13 @@
+ #endif
+ 
+ 
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::beans;
+ using namespace com::sun::star::linguistic2;
+ 
++using rtl::OUString;
++
+ 
+ DBG_NAME( EditView )
+ 
+diff --git a/svx/source/editeng/edtspell.cxx b/svx/source/editeng/edtspell.cxx
+index ddd8e3f..00fe1eb 100644
+--- svx/source/editeng/edtspell.cxx
++++ svx/source/editeng/edtspell.cxx
+@@ -56,7 +56,6 @@
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ #endif
+ 
+-using namespace rtl;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::beans;
+ using namespace com::sun::star::linguistic2;
+diff --git a/svx/source/editeng/eerdll.cxx b/svx/source/editeng/eerdll.cxx
+index d34a54b..1ae5d62 100644
+--- svx/source/editeng/eerdll.cxx
++++ svx/source/editeng/eerdll.cxx
+@@ -208,9 +208,9 @@ SfxPoolItem** GlobalEditData::GetDefItems()
+ 	return ppDefItems;
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable> GlobalEditData::GetForbiddenCharsTable()
++rtl::Reference<SvxForbiddenCharactersTable> GlobalEditData::GetForbiddenCharsTable()
+ {
+-	if ( !xForbiddenCharsTable.isValid() )
++	if ( !xForbiddenCharsTable.is() )
+ 	{
+ 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory();
+ 		xForbiddenCharsTable = new SvxForbiddenCharactersTable( xMSF );
+diff --git a/svx/source/editeng/eerdll2.hxx b/svx/source/editeng/eerdll2.hxx
+index 2e5fa5a..db8a76a 100644
+--- svx/source/editeng/eerdll2.hxx
++++ svx/source/editeng/eerdll2.hxx
+@@ -41,7 +41,7 @@
+ #endif
+ 
+ #include <forbiddencharacterstable.hxx>
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+ class SfxPoolItem;
+ 
+@@ -53,7 +53,7 @@ private:
+ 	SfxPoolItem** 	ppDefItems;
+ 	OutputDevice*	pStdRefDevice;
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
++	rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
+ 
+ public:
+ 					GlobalEditData();
+@@ -62,8 +62,8 @@ public:
+ 	SfxPoolItem**	GetDefItems();
+ 	OutputDevice*	GetStdRefDevice();
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable();
+-	void			SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars ) { xForbiddenCharsTable = xForbiddenChars; }
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable();
++	void			SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars ) { xForbiddenCharsTable = xForbiddenChars; }
+     ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XLanguageGuessing > GetLanguageGuesser();
+ };
+ 
+diff --git a/svx/source/editeng/impedit.hxx b/svx/source/editeng/impedit.hxx
+index 182d50b..b747c28 100644
+--- svx/source/editeng/impedit.hxx
++++ svx/source/editeng/impedit.hxx
+@@ -100,7 +100,7 @@
+ #include <com/sun/star/i18n/XExtendedInputSequenceChecker.hpp>
+ #endif
+ 
+-#include <vos/ref.hxx>
++#include <rtl/ref.hxx>
+ 
+ DBG_NAMEEX( EditView )
+ DBG_NAMEEX( EditEngine )
+@@ -564,7 +564,7 @@ private:
+ 	Link				maBeginDropHdl;
+ 	Link				maEndDropHdl;
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
++	rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
+ 
+ 
+ 	// ================================================================
+@@ -1058,8 +1058,8 @@ public:
+     void                SetAddExtLeading( BOOL b );
+     BOOL                IsAddExtLeading() const { return bAddExtLeading; }
+ 
+-	vos::ORef<SvxForbiddenCharactersTable>	GetForbiddenCharsTable( BOOL bGetInternal = TRUE ) const;
+-	void				SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars );
++	rtl::Reference<SvxForbiddenCharactersTable>	GetForbiddenCharsTable( BOOL bGetInternal = TRUE ) const;
++	void				SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
+ 
+     // #110496#
+     void				EnableVerboseTextComments( BOOL bEnable ) { bVerboseTextComments=bEnable; }
+diff --git a/svx/source/editeng/impedit2.cxx b/svx/source/editeng/impedit2.cxx
+index 233894c..f8e6aa7 100644
+--- svx/source/editeng/impedit2.cxx
++++ svx/source/editeng/impedit2.cxx
+@@ -4327,15 +4327,15 @@ void ImpEditEngine::IndentBlock( EditView* pEditView, BOOL bRight )
+ 	}
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable> ImpEditEngine::GetForbiddenCharsTable( BOOL bGetInternal ) const
++rtl::Reference<SvxForbiddenCharactersTable> ImpEditEngine::GetForbiddenCharsTable( BOOL bGetInternal ) const
+ {
+-	vos::ORef<SvxForbiddenCharactersTable> xF = xForbiddenCharsTable;
+-	if ( !xF.isValid() && bGetInternal )
++	rtl::Reference<SvxForbiddenCharactersTable> xF = xForbiddenCharsTable;
++	if ( !xF.is() && bGetInternal )
+ 		xF = EE_DLL()->GetGlobalData()->GetForbiddenCharsTable();
+ 	return xF;
+ }
+ 
+-void ImpEditEngine::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++void ImpEditEngine::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ {
+ 	EE_DLL()->GetGlobalData()->SetForbiddenCharsTable( xForbiddenChars );
+ }
+diff --git a/svx/source/editeng/impedit3.cxx b/svx/source/editeng/impedit3.cxx
+index a5c46cc..369e19a 100644
+--- svx/source/editeng/impedit3.cxx
++++ svx/source/editeng/impedit3.cxx
+@@ -112,12 +112,13 @@
+ 
+ #include <comphelper/processfactory.hxx>
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::linguistic2;
+ 
++using rtl::OUString;
++
+ SV_DECL_VARARR_SORT( SortedPositions, sal_uInt32, 16, 8 )
+ SV_IMPL_VARARR_SORT( SortedPositions, sal_uInt32 );
+ 
+diff --git a/svx/source/editeng/textconv.cxx b/svx/source/editeng/textconv.cxx
+index 1ca343d..a438b0d 100644
+--- svx/source/editeng/textconv.cxx
++++ svx/source/editeng/textconv.cxx
+@@ -63,13 +63,14 @@
+ #endif
+ 
+ 
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::beans;
+ using namespace com::sun::star::lang;
+ using namespace com::sun::star::linguistic2;
+ 
++using rtl::OUString;
++
+ #define C2U(cChar) OUString::createFromAscii(cChar)
+ 
+ //////////////////////////////////////////////////////////////////////
+diff --git a/svx/source/items/xmlcnitm.cxx b/svx/source/items/xmlcnitm.cxx
+index 68475b1..a96d970 100644
+--- svx/source/items/xmlcnitm.cxx
++++ svx/source/items/xmlcnitm.cxx
+@@ -51,12 +51,13 @@
+ #endif
+ #include "xmlcnitm.hxx"
+ 
+-using namespace rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::xml;
+ 
++using rtl::OUString;
++
+ // ------------------------------------------------------------------------
+ 
+ TYPEINIT1(SvXMLAttrContainerItem, SfxPoolItem);
+diff --git a/svx/source/msfilter/eschesdo.cxx b/svx/source/msfilter/eschesdo.cxx
+index f3befc2..989d615 100644
+--- svx/source/msfilter/eschesdo.cxx
++++ svx/source/msfilter/eschesdo.cxx
+@@ -125,7 +125,6 @@
+ #endif
+ 
+ using ::rtl::OUString;
+-using namespace ::vos;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+diff --git a/svx/source/outliner/outlin2.cxx b/svx/source/outliner/outlin2.cxx
+index 6946b68..480ab91 100644
+--- svx/source/outliner/outlin2.cxx
++++ svx/source/outliner/outlin2.cxx
+@@ -542,13 +542,13 @@ Reference< XSpellChecker1 > Outliner::GetSpeller()
+ 	return pEditEngine->GetSpeller();
+ }
+ 
+-void Outliner::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++void Outliner::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ {
+ 	DBG_CHKTHIS(Outliner,0);
+ 	pEditEngine->SetForbiddenCharsTable( xForbiddenChars );
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable> Outliner::GetForbiddenCharsTable() const
++rtl::Reference<SvxForbiddenCharactersTable> Outliner::GetForbiddenCharsTable() const
+ {
+ 	DBG_CHKTHIS(Outliner,0);
+ 	return pEditEngine->GetForbiddenCharsTable();
+diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
+index 1b75328..5922fa9 100644
+--- svx/source/svdraw/svdmodel.cxx
++++ svx/source/svdraw/svdmodel.cxx
+@@ -1929,12 +1929,12 @@ void SdrModel::MigrateItemSet( const SfxItemSet* pSourceSet, SfxItemSet* pDestSe
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+-void SdrModel::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xForbiddenChars )
++void SdrModel::SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars )
+ {
+ 	if( mpForbiddenCharactersTable )
+ 		mpForbiddenCharactersTable->release();
+ 
+-	mpForbiddenCharactersTable = xForbiddenChars.getBodyPtr();
++	mpForbiddenCharactersTable = xForbiddenChars.get();
+ 
+ 	if( mpForbiddenCharactersTable )
+ 		mpForbiddenCharactersTable->acquire();
+@@ -1943,7 +1943,7 @@ void SdrModel::SetForbiddenCharsTable( vos::ORef<SvxForbiddenCharactersTable> xF
+ 	ImpSetOutlinerDefaults( pHitTestOutliner );
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable> SdrModel::GetForbiddenCharsTable() const
++rtl::Reference<SvxForbiddenCharactersTable> SdrModel::GetForbiddenCharsTable() const
+ {
+ 	return mpForbiddenCharactersTable;
+ }
+diff --git a/svx/source/tbxctrls/grafctrl.cxx b/svx/source/tbxctrls/grafctrl.cxx
+index f092451..833fbbe 100644
+--- svx/source/tbxctrls/grafctrl.cxx
++++ svx/source/tbxctrls/grafctrl.cxx
+@@ -98,13 +98,14 @@
+ #include "tbxcolor.hxx"
+ 
+ // namespaces
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ 
++using rtl::OUString;
++
+ #include <svx/svxdlg.hxx> //CHINA001
+ // -----------
+ // - Defines -
+diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx b/svx/source/unodraw/UnoGraphicExporter.cxx
+index af70ec7..0fbefad 100644
+--- svx/source/unodraw/UnoGraphicExporter.cxx
++++ svx/source/unodraw/UnoGraphicExporter.cxx
+@@ -234,7 +234,6 @@
+ using namespace ::comphelper;
+ using namespace ::osl;
+ using namespace ::vos;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -247,6 +246,8 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::task;
+ 
++using rtl::OUString;
++
+ #ifndef _SDR_CONTACT_VIEWOBJECTCONTACTREDIRECTOR_HXX
+ #include <svx/sdr/contact/viewobjectcontactredirector.hxx>
+ #endif
+diff --git a/svx/source/unoedit/UnoForbiddenCharsTable.cxx b/svx/source/unoedit/UnoForbiddenCharsTable.cxx
+index de4e9e3..2f7d9a8 100644
+--- svx/source/unoedit/UnoForbiddenCharsTable.cxx
++++ svx/source/unoedit/UnoForbiddenCharsTable.cxx
+@@ -64,7 +64,7 @@ using namespace ::rtl;
+ using namespace ::vos;
+ using namespace ::cppu;
+ 
+-SvxUnoForbiddenCharsTable::SvxUnoForbiddenCharsTable(ORef<SvxForbiddenCharactersTable> xForbiddenChars) :
++SvxUnoForbiddenCharsTable::SvxUnoForbiddenCharsTable(rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars) :
+ 	mxForbiddenChars( xForbiddenChars )
+ {
+ }
+@@ -82,7 +82,7 @@ ForbiddenCharacters SvxUnoForbiddenCharsTable::getForbiddenCharacters( const Loc
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -98,7 +98,7 @@ sal_Bool SvxUnoForbiddenCharsTable::hasForbiddenCharacters( const Locale& rLocal
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		return sal_False;
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -112,7 +112,7 @@ void SvxUnoForbiddenCharsTable::setForbiddenCharacters(const Locale& rLocale, co
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -126,7 +126,7 @@ void SvxUnoForbiddenCharsTable::removeForbiddenCharacters( const Locale& rLocale
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	if(!mxForbiddenChars.isValid())
++	if(!mxForbiddenChars.is())
+ 		throw RuntimeException();
+ 
+ 	const LanguageType eLang = SvxLocaleToLanguage( rLocale );
+@@ -141,7 +141,7 @@ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales()
+ {
+ 	OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	const sal_Int32 nCount = mxForbiddenChars.isValid() ? mxForbiddenChars->Count() : 0;
++	const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Count() : 0;
+ 
+ 	Sequence< Locale > aLocales( nCount );
+ 	if( nCount )
+diff --git a/svx/source/xml/xmlexport.cxx b/svx/source/xml/xmlexport.cxx
+index f139aed..c8e5519 100644
+--- svx/source/xml/xmlexport.cxx
++++ svx/source/xml/xmlexport.cxx
+@@ -109,10 +109,11 @@
+ 
+ #include <svx/unomodel.hxx>
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++
+ sal_Bool SvxDrawingLayerExport( SdrModel* pModel, uno::Reference<io::XOutputStream> xOut, Reference< lang::XComponent > xComponent )
+ {
+ 	return SvxDrawingLayerExport( pModel, xOut, xComponent, "com.sun.star.comp.DrawingLayer.XMLExporter" );
+diff --git a/svx/util/makefile.mk b/svx/util/makefile.mk
+index ff6e61a..4f2f57e 100644
+--- svx/util/makefile.mk
++++ svx/util/makefile.mk
+@@ -133,6 +133,7 @@ SHL1STDLIBS= \
+ 			$(CPPULIB) \
+             $(VOSLIB) \
+             $(SALLIB) \
++            $(SALHELPERLIB) \
+             $(ICUUCLIB)
+ 
+ .IF "$(GUI)"=="WNT"
+diff --git a/sw/inc/IDocumentSettingAccess.hxx b/sw/inc/IDocumentSettingAccess.hxx
+index 3be0d27..6d47163 100644
+--- sw/inc/IDocumentSettingAccess.hxx
++++ sw/inc/IDocumentSettingAccess.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _SOLAR_H
+ #include <tools/solar.h>
+ #endif
+-#ifndef _VOS_REF_HXX
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CHCMPRSE_HXX
+ #include <chcmprse.hxx>
+@@ -153,14 +153,14 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd
+        @returns
+        the forbidden characters table.
+     */
+-    virtual vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0;
++    virtual rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0;
+ 
+     /** Get the forbidden character table.
+ 
+        @returns
+        the forbidden characters table.
+     */
+-    virtual const vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const = 0;
++    virtual const rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const = 0;
+ 
+     /** Get the current link update mode.
+ 
+diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx
+index ebf43e8..68fa6ca 100644
+--- sw/inc/accmap.hxx
++++ sw/inc/accmap.hxx
+@@ -39,8 +39,8 @@
+ #include <com/sun/star/accessibility/XAccessible.hpp>
+ #endif
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _VOS_MUTEX_HXX_ //autogen
+@@ -249,7 +249,7 @@ public:
+                             const SwPageFrm* _pSelectedPageFrm,
+                             const Size&      _rPrevwWinSize );
+ 
+-	::vos::ORef < SwAccessibleContext > GetContextImpl(
++	::rtl::Reference < SwAccessibleContext > GetContextImpl(
+ 									 			const SwFrm *pFrm,
+ 												sal_Bool bCreate = sal_True );
+ 	::com::sun::star::uno::Reference<
+@@ -257,7 +257,7 @@ public:
+ 									 			const SwFrm *pFrm,
+ 												sal_Bool bCreate = sal_True );
+ 
+-	::vos::ORef < ::accessibility::AccessibleShape > GetContextImpl(
++	::rtl::Reference < ::accessibility::AccessibleShape > GetContextImpl(
+ 										const SdrObject *pObj,
+ 										SwAccessibleContext *pParentImpl,
+ 										sal_Bool bCreate = sal_True );
+@@ -312,7 +312,7 @@ public:
+ 	void InvalidateFocus();
+ 
+ 	void SetCursorContext(
+-		const ::vos::ORef < SwAccessibleContext >& rCursorContext );
++		const ::rtl::Reference < SwAccessibleContext >& rCursorContext );
+ 
+ 	// Invalidate state of whole tree. If an action is open, this call
+ 	// is processed when the last action ends.
+diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
+index ad85703..a8efbaf 100644
+--- sw/inc/doc.hxx
++++ sw/inc/doc.hxx
+@@ -138,8 +138,8 @@
+ #ifndef _COM_SUN_STAR_LINGUISTIC2_XHYPHENATEDWORD_HPP_
+ #include <com/sun/star/linguistic2/XHyphenatedWord.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _SVDTYPES_HXX
+ #include <svx/svdtypes.hxx>
+@@ -445,7 +445,7 @@ class SwDoc :
+     SwChartLockController_Helper  *pChartControllerHelper;
+ 
+ 	// table of forbidden characters of this document
+-	vos::ORef<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
++	rtl::Reference<SvxForbiddenCharactersTable>	xForbiddenCharsTable;
+ 
+ 	// -------------------------------------------------------------------
+ 	// sonstige
+@@ -747,8 +747,8 @@ public:
+     virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value);
+     virtual const com::sun::star::i18n::ForbiddenCharacters* getForbiddenCharacters(/*[in]*/ USHORT nLang, /*[in]*/ bool bLocaleData ) const;
+     virtual void setForbiddenCharacters(/*[in]*/ USHORT nLang, /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rForbiddenCharacters );
+-    virtual vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable();
+-    virtual const vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const;
++    virtual rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable();
++    virtual const rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const;
+     virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const;
+     virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode );
+     virtual sal_uInt16 getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const;
+diff --git a/sw/inc/pch/precompiled_sw.hxx b/sw/inc/pch/precompiled_sw.hxx
+index 74be0cb..749be09 100644
+--- sw/inc/pch/precompiled_sw.hxx
++++ sw/inc/pch/precompiled_sw.hxx
+@@ -969,7 +969,7 @@
+ #include "vcl/wrkwin.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
++#include "rtl/ref.hxx"
+ 
+ #include "xmloff/DocumentSettingsContext.hxx"
+ #include "xmloff/ProgressBarHelper.hxx"
+diff --git a/sw/source/core/access/acccell.cxx b/sw/source/core/access/acccell.cxx
+index 6ca65bc..54eef39 100644
+--- sw/source/core/access/acccell.cxx
++++ sw/source/core/access/acccell.cxx
+@@ -145,7 +145,7 @@ void SwAccessibleCell::GetStates(
+ 	{
+ 		rStateSet.AddState( AccessibleStateType::SELECTED );
+ 		ASSERT( bIsSelected, "bSelected out of sync" );
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ }
+@@ -176,7 +176,7 @@ sal_Bool SwAccessibleCell::_InvalidateMyCursorPos()
+ 	{
+ 		// remember that object as the one that has the caret. This is
+ 		// neccessary to notify that object if the cursor leaves it.
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ 
+@@ -201,14 +201,14 @@ sal_Bool SwAccessibleCell::_InvalidateChildrenCursorPos( const SwFrm *pFrm )
+ 		{
+ 			if( rLower.IsAccessible( GetMap()->GetShell()->IsPreView() )  )
+ 			{
+-				::vos::ORef< SwAccessibleContext > xAccImpl(
++				::rtl::Reference< SwAccessibleContext > xAccImpl(
+ 					GetMap()->GetContextImpl( pLower, sal_False ) );
+-				if( xAccImpl.isValid() )
++				if( xAccImpl.is() )
+ 				{
+ 					ASSERT( xAccImpl->GetFrm()->IsCellFrm(),
+ 						 	"table child is not a cell frame" )
+ 					bChanged |= static_cast< SwAccessibleCell *>( 
+-							xAccImpl.getBodyPtr() )->_InvalidateMyCursorPos();
++							xAccImpl.get() )->_InvalidateMyCursorPos();
+ 				}
+ 				else
+ 					bChanged = sal_True; // If the context is not know we 
+@@ -241,9 +241,9 @@ void SwAccessibleCell::_InvalidateCursorPos()
+ 		sal_Bool bChanged = _InvalidateChildrenCursorPos( pTabFrm );
+ 		if( bChanged )
+ 		{
+-			::vos::ORef< SwAccessibleContext > xAccImpl(
++			::rtl::Reference< SwAccessibleContext > xAccImpl(
+ 				GetMap()->GetContextImpl( pTabFrm, sal_False ) );
+-			if( xAccImpl.isValid() )
++			if( xAccImpl.is() )
+ 			{
+ 				AccessibleEventObject aEvent;
+ 				aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
+@@ -300,9 +300,9 @@ uno::Sequence< OUString > SAL_CALL SwAccessibleCell::getSupportedServiceNames()
+ void SwAccessibleCell::Dispose( sal_Bool bRecursive )
+ {
+ 	const SwFrm *pParent = GetParent( GetFrm(), IsInPagePreview() );
+-	::vos::ORef< SwAccessibleContext > xAccImpl(
++	::rtl::Reference< SwAccessibleContext > xAccImpl(
+ 			GetMap()->GetContextImpl( pParent, sal_False ) );
+-	if( xAccImpl.isValid() )
++	if( xAccImpl.is() )
+ 		xAccImpl->DisposeChild( GetFrm(), bRecursive );
+ 	SwAccessibleContext::Dispose( bRecursive );
+ }
+@@ -310,9 +310,9 @@ void SwAccessibleCell::Dispose( sal_Bool bRecursive )
+ void SwAccessibleCell::InvalidatePosOrSize( const SwRect& rOldBox )
+ {
+ 	const SwFrm *pParent = GetParent( GetFrm(), IsInPagePreview() );
+-	::vos::ORef< SwAccessibleContext > xAccImpl(
++	::rtl::Reference< SwAccessibleContext > xAccImpl(
+ 			GetMap()->GetContextImpl( pParent, sal_False ) );
+-	if( xAccImpl.isValid() )
++	if( xAccImpl.is() )
+ 		xAccImpl->InvalidateChildPosOrSize( GetFrm(), rOldBox );
+ 	SwAccessibleContext::InvalidatePosOrSize( rOldBox );
+ }
+diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
+index 6ea5da9..ccd3646 100644
+--- sw/source/core/access/acccontext.cxx
++++ sw/source/core/access/acccontext.cxx
+@@ -267,10 +267,10 @@ void SwAccessibleContext::ChildrenScrolled( const SwFrm *pFrm,
+ 			{
+ 				if( pLower  )
+ 				{
+-					::vos::ORef< SwAccessibleContext > xAccImpl =
++					::rtl::Reference< SwAccessibleContext > xAccImpl =
+ 						GetMap()->GetContextImpl( pLower, SCROLLED_OUT == eAction ||
+ 												SCROLLED_IN == eAction );
+-					if( xAccImpl.isValid() )
++					if( xAccImpl.is() )
+ 					{
+ 						switch( eAction )
+ 						{
+@@ -297,12 +297,12 @@ void SwAccessibleContext::ChildrenScrolled( const SwFrm *pFrm,
+ 				}
+ 				else
+ 				{
+-					::vos::ORef< ::accessibility::AccessibleShape > xAccImpl =
++					::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ 						GetMap()->GetContextImpl( rLower.GetSdrObject(),
+ 												  this,
+ 												  SCROLLED_OUT == eAction ||
+ 												  SCROLLED_IN == eAction );
+-					if( xAccImpl.isValid() )
++					if( xAccImpl.is() )
+ 					{
+ 						switch( eAction )
+ 						{
+@@ -314,7 +314,7 @@ void SwAccessibleContext::ChildrenScrolled( const SwFrm *pFrm,
+ 							break;
+ 						case SCROLLED_IN:
+ 							ScrolledInShape( rLower.GetSdrObject(),
+-											 xAccImpl.getBodyPtr() );
++											 xAccImpl.get() );
+ 							break;
+ 						case SCROLLED_OUT:
+ 							{
+@@ -322,7 +322,7 @@ void SwAccessibleContext::ChildrenScrolled( const SwFrm *pFrm,
+ 									::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA,
+ 									GetMap() );
+ 								DisposeShape( rLower.GetSdrObject(),
+-											  xAccImpl.getBodyPtr() );
++											  xAccImpl.get() );
+ 							}
+ 							break;
+ 						case NONE:
+@@ -381,19 +381,19 @@ void SwAccessibleContext::ScrolledIn()
+ 
+ 	// Send child event at parent. That's all we have to do here.
+ 	const SwFrm *pParent = GetParent();
+-	::vos::ORef< SwAccessibleContext > xParentImpl(
++	::rtl::Reference< SwAccessibleContext > xParentImpl(
+ 		 GetMap()->GetContextImpl( pParent, sal_False ) );
+ 	uno::Reference < XAccessibleContext > xThis( this );
+-	if( xParentImpl.isValid() )
++	if( xParentImpl.is() )
+ 	{
+-		SetParent( xParentImpl.getBodyPtr() );
++		SetParent( xParentImpl.get() );
+ 
+ 		AccessibleEventObject aEvent;
+ 		aEvent.EventId = AccessibleEventId::CHILD;
+ 		aEvent.NewValue <<= xThis;
+ 
+ 		xParentImpl->FireAccessibleEvent( aEvent );
+-		DBG_MSG_PARAM( "AccessibleChild (added)", xChildImpl.getBodyPtr() );
++		DBG_MSG_PARAM( "AccessibleChild (added)", xChildImpl.get() );
+ 
+ 		if( HasCursor() )
+ 		{
+@@ -441,10 +441,10 @@ void SwAccessibleContext::InvalidateChildrenStates( const SwFrm* _pFrm,
+ 		const SwFrm *pLower = rLower.GetSwFrm();
+ 		if( pLower )
+ 		{
+-			::vos::ORef< SwAccessibleContext > xAccImpl;
++			::rtl::Reference< SwAccessibleContext > xAccImpl;
+ 			if( rLower.IsAccessible( GetShell()->IsPreView() ) )
+ 				xAccImpl = GetMap()->GetContextImpl( pLower, sal_False );
+-			if( xAccImpl.isValid() )
++			if( xAccImpl.is() )
+                 xAccImpl->InvalidateStates( _nStates );
+ 			else
+                 InvalidateChildrenStates( pLower, _nStates );
+@@ -469,21 +469,21 @@ void SwAccessibleContext::DisposeChildren( const SwFrm *pFrm,
+ 		const SwFrm *pLower = rLower.GetSwFrm();
+ 		if( pLower )
+ 		{
+-			::vos::ORef< SwAccessibleContext > xAccImpl;
++			::rtl::Reference< SwAccessibleContext > xAccImpl;
+ 			if( rLower.IsAccessible( GetShell()->IsPreView() ) )
+ 				xAccImpl = GetMap()->GetContextImpl( pLower, sal_False );
+-			if( xAccImpl.isValid() )
++			if( xAccImpl.is() )
+ 				xAccImpl->Dispose( bRecursive );
+ 			else if( bRecursive )
+ 				DisposeChildren( pLower, bRecursive );
+ 		}
+ 		else
+ 		{
+-			::vos::ORef< ::accessibility::AccessibleShape > xAccImpl(
++			::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl(
+ 					GetMap()->GetContextImpl( rLower.GetSdrObject(),
+ 										  this, sal_False )  );
+-			if( xAccImpl.isValid() )
+-				DisposeShape( rLower.GetSdrObject(), xAccImpl.getBodyPtr() );
++			if( xAccImpl.is() )
++				DisposeShape( rLower.GetSdrObject(), xAccImpl.get() );
+ 		}
+ 		++aIter;
+ 	}
+@@ -641,21 +641,21 @@ uno::Reference< XAccessible> SAL_CALL
+ 	uno::Reference< XAccessible > xChild;
+ 	if( aChild.GetSwFrm() )
+ 	{
+-		::vos::ORef < SwAccessibleContext > xChildImpl(
++		::rtl::Reference < SwAccessibleContext > xChildImpl(
+ 				GetMap()->GetContextImpl( aChild.GetSwFrm(), !bDisposing )  );
+-		if( xChildImpl.isValid() )
++		if( xChildImpl.is() )
+ 		{
+ 			xChildImpl->SetParent( this );
+-			xChild = xChildImpl.getBodyPtr();
++			xChild = xChildImpl.get();
+ 		}
+ 	}
+ 	else
+ 	{
+-		::vos::ORef < ::accessibility::AccessibleShape > xChildImpl(
++		::rtl::Reference < ::accessibility::AccessibleShape > xChildImpl(
+ 				GetMap()->GetContextImpl( aChild.GetSdrObject(),
+ 										  this, !bDisposing )  );
+-		if( xChildImpl.isValid() )
+-			xChild = xChildImpl.getBodyPtr();
++		if( xChildImpl.is() )
++			xChild = xChildImpl.get();
+ 	}
+ 
+ 	return xChild;
+@@ -699,10 +699,10 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleIndexInParent (void)
+ 	sal_Int32 nIndex = -1;
+ 	if( pUpper )
+ 	{
+-		::vos::ORef < SwAccessibleContext > xAccImpl(
++		::rtl::Reference < SwAccessibleContext > xAccImpl(
+ 			GetMap()->GetContextImpl( pUpper, !bDisposing )  );
+-		ASSERT( xAccImpl.isValid() || bDisposing, "no parent found" );
+-		if( xAccImpl.isValid() )
++		ASSERT( xAccImpl.is() || bDisposing, "no parent found" );
++		if( xAccImpl.is() )
+ 			nIndex = xAccImpl->GetChildIndex( GetFrm() );
+ 	}
+ 
+@@ -1051,13 +1051,13 @@ uno::Sequence< OUString > SAL_CALL SwAccessibleContext::getSupportedServiceNames
+ void SwAccessibleContext::DisposeShape( const SdrObject *pObj,
+ 								::accessibility::AccessibleShape *pAccImpl )
+ {
+-	::vos::ORef< ::accessibility::AccessibleShape > xAccImpl( pAccImpl );
+-	if( !xAccImpl.isValid() )
++	::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl( pAccImpl );
++	if( !xAccImpl.is() )
+ 		xAccImpl = GetMap()->GetContextImpl( pObj, this, sal_True );
+ 
+ 	AccessibleEventObject aEvent;
+ 	aEvent.EventId = AccessibleEventId::CHILD;
+-	uno::Reference< XAccessible > xAcc( xAccImpl.getBodyPtr() );
++	uno::Reference< XAccessible > xAcc( xAccImpl.get() );
+ 	aEvent.OldValue <<= xAcc;
+ 	FireAccessibleEvent( aEvent );
+ 
+@@ -1155,18 +1155,18 @@ void SwAccessibleContext::DisposeChild( const SwFrmOrObj& rChildFrmOrObj,
+ 		// get notified of the movement.
+ 		if( rChildFrmOrObj.GetSwFrm() )
+ 		{
+-			::vos::ORef< SwAccessibleContext > xAccImpl =
++			::rtl::Reference< SwAccessibleContext > xAccImpl =
+ 					GetMap()->GetContextImpl( rChildFrmOrObj.GetSwFrm(),
+ 											  sal_True );
+ 			xAccImpl->Dispose( bRecursive );
+ 		}
+ 		else
+ 		{
+-			::vos::ORef< ::accessibility::AccessibleShape > xAccImpl =
++			::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ 					GetMap()->GetContextImpl( rChildFrmOrObj.GetSdrObject(),
+ 											  this, sal_True );
+ 			DisposeShape( rChildFrmOrObj.GetSdrObject(),
+-						  xAccImpl.getBodyPtr() );
++						  xAccImpl.get() );
+ 		}
+ 	}
+ 	else if( bRecursive && rChildFrmOrObj.GetSwFrm() )
+@@ -1233,21 +1233,21 @@ void SwAccessibleContext::InvalidateChildPosOrSize(
+ 			if( rChildFrmOrObj.GetSwFrm() )
+ 			{
+ 				// The frame becomes visible. A child event must be send.
+-				::vos::ORef< SwAccessibleContext > xAccImpl =
++				::rtl::Reference< SwAccessibleContext > xAccImpl =
+ 					GetMap()->GetContextImpl( rChildFrmOrObj.GetSwFrm(),
+ 											  sal_True );
+ 				xAccImpl->ScrolledIn();
+ 			}
+ 			else
+ 			{
+-				::vos::ORef< ::accessibility::AccessibleShape > xAccImpl =
++				::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ 						GetMap()->GetContextImpl( rChildFrmOrObj.GetSdrObject(),
+ 												  this, sal_True );
+                 // --> OD 2004-11-29 #i37790#
+-                if ( xAccImpl.isValid() )
++                if ( xAccImpl.is() )
+                 {
+                     ScrolledInShape( rChildFrmOrObj.GetSdrObject(),
+-                                     xAccImpl.getBodyPtr() );
++                                     xAccImpl.get() );
+                 }
+                 else
+                 {
+@@ -1269,7 +1269,7 @@ void SwAccessibleContext::InvalidateChildPosOrSize(
+ 		{
+ 			if( rChildFrmOrObj.GetSwFrm() )
+ 			{
+-				::vos::ORef< SwAccessibleContext > xAccImpl =
++				::rtl::Reference< SwAccessibleContext > xAccImpl =
+ 					GetMap()->GetContextImpl( rChildFrmOrObj.GetSwFrm(),
+ 											  sal_True );
+ 				xAccImpl->SetParent( this );
+@@ -1277,11 +1277,11 @@ void SwAccessibleContext::InvalidateChildPosOrSize(
+ 			}
+ 			else
+ 			{
+-				::vos::ORef< ::accessibility::AccessibleShape > xAccImpl =
++				::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ 						GetMap()->GetContextImpl( rChildFrmOrObj.GetSdrObject(),
+ 												  this, sal_True );
+ 				DisposeShape( rChildFrmOrObj.GetSdrObject(),
+-						  xAccImpl.getBodyPtr() );
++						  xAccImpl.get() );
+ 			}
+ 		}
+ 	}
+diff --git a/sw/source/core/access/accframebase.cxx b/sw/source/core/access/accframebase.cxx
+index 0a3f016..eee61f5 100644
+--- sw/source/core/access/accframebase.cxx
++++ sw/source/core/access/accframebase.cxx
+@@ -135,7 +135,7 @@ void SwAccessibleFrameBase::GetStates(
+ 	{
+ 		rStateSet.AddState( AccessibleStateType::SELECTED );
+ 		ASSERT( bIsSelected, "bSelected out of sync" );
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 
+ 		Window *pWin = GetWindow();
+@@ -205,7 +205,7 @@ void SwAccessibleFrameBase::_InvalidateCursorPos()
+ 	{
+ 		// remember that object as the one that has the caret. This is
+ 		// neccessary to notify that object if the cursor leaves it.
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ 
+diff --git a/sw/source/core/access/acchyperlink.cxx b/sw/source/core/access/acchyperlink.cxx
+index 9056c02..9ecaeca 100644
+--- sw/source/core/access/acchyperlink.cxx
++++ sw/source/core/access/acchyperlink.cxx
+@@ -78,7 +78,7 @@ SwAccessibleHyperlink::SwAccessibleHyperlink( sal_uInt16 nHPos,
+ const SwTxtAttr *SwAccessibleHyperlink::GetTxtAttr() const
+ {
+ 	const SwTxtAttr *pTxtAttr = 0;
+-	if( xPara.isValid() && xPara->GetMap() )
++	if( xPara.is() && xPara->GetMap() )
+ 	{
+ 		const SwTxtNode *pTxtNd = xPara->GetTxtNode();
+ 		const SwpHints *pHints = pTxtNd->GetpSwpHints();
+@@ -205,7 +205,7 @@ sal_Bool SAL_CALL SwAccessibleHyperlink::isValid(  )
+ 		throw (uno::RuntimeException)
+ {
+ 	vos::OGuard aGuard(Application::GetSolarMutex());
+-	return xPara.isValid();
++	return xPara.is();
+ }
+ 
+ void SwAccessibleHyperlink::Invalidate() 
+diff --git a/sw/source/core/access/acchyperlink.hxx b/sw/source/core/access/acchyperlink.hxx
+index 140f2b7..8fde0ab 100644
+--- sw/source/core/access/acchyperlink.hxx
++++ sw/source/core/access/acchyperlink.hxx
+@@ -37,8 +37,8 @@
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERLINK_HPP_
+ #include <com/sun/star/accessibility/XAccessibleHyperlink.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CPPUHELPER_IMPLBASE1_HXX_
+ #include <cppuhelper/implbase1.hxx>
+@@ -57,7 +57,7 @@ class SwAccessibleHyperlink :
+ 	friend class SwAccessibleParagraph;
+ 	friend class SwAccessibleHyperTextData;
+ 	sal_uInt16 nHintPos;
+-	::vos::ORef< SwAccessibleParagraph > xPara;
++	::rtl::Reference< SwAccessibleParagraph > xPara;
+ 	sal_Int32 nStartIdx;
+ 	sal_Int32 nEndIdx;
+ 
+diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
+index d48d0a3..ebb38b1 100644
+--- sw/source/core/access/accmap.cxx
++++ sw/source/core/access/accmap.cxx
+@@ -37,8 +37,8 @@
+ #include "precompiled_sw.hxx"
+ 
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CPPUHELPER_WEAKREF_HXX_
+ #include <cppuhelper/weakref.hxx>
+@@ -294,7 +294,7 @@ struct SwShapeFunc
+ 	}
+ };
+ typedef ::std::map < const SdrObject *, uno::WeakReference < XAccessible >, SwShapeFunc > _SwAccessibleShapeMap_Impl;
+-typedef ::std::pair < const SdrObject *, ::vos::ORef < ::accessibility::AccessibleShape > > SwAccessibleObjShape_Impl;
++typedef ::std::pair < const SdrObject *, ::rtl::Reference < ::accessibility::AccessibleShape > > SwAccessibleObjShape_Impl;
+ 
+ class SwAccessibleShapeMap_Impl: public _SwAccessibleShapeMap_Impl
+ 
+@@ -484,10 +484,10 @@ public:
+         return meType;
+     }
+ 
+-    inline ::vos::ORef < SwAccessibleContext > GetContext() const
++    inline ::rtl::Reference < SwAccessibleContext > GetContext() const
+     {
+         uno::Reference < XAccessible > xTmp( mxAcc );
+-        ::vos::ORef < SwAccessibleContext > xAccImpl(
++        ::rtl::Reference < SwAccessibleContext > xAccImpl(
+                             static_cast<SwAccessibleContext*>( xTmp.get() ) );
+ 
+         return xAccImpl;
+@@ -682,12 +682,12 @@ static sal_Bool AreInSameTable( const uno::Reference< XAccessible >& rAcc,
+ 
+ void SwAccessibleMap::FireEvent( const SwAccessibleEvent_Impl& rEvent )
+ {
+-	::vos::ORef < SwAccessibleContext > xAccImpl( rEvent.GetContext() );
++	::rtl::Reference < SwAccessibleContext > xAccImpl( rEvent.GetContext() );
+ 	if( SwAccessibleEvent_Impl::SHAPE_SELECTION == rEvent.GetType() )
+ 	{
+ 		DoInvalidateShapeSelection();
+ 	}
+-	else if( xAccImpl.isValid() && xAccImpl->GetFrm() )
++	else if( xAccImpl.is() && xAccImpl->GetFrm() )
+ 	{
+ 		switch( rEvent.GetType() )
+ 		{
+@@ -702,7 +702,7 @@ void SwAccessibleMap::FireEvent( const SwAccessibleEvent_Impl& rEvent )
+ 									   rEvent.GetOldBox() );
+ 			break;
+ 		case SwAccessibleEvent_Impl::DISPOSE:
+-			ASSERT( xAccImpl.isValid(),
++			ASSERT( xAccImpl.is(),
+ 					"dispose event has been stored" );
+ 			break;
+ 		default:
+@@ -907,7 +907,7 @@ void SwAccessibleMap::DoInvalidateShapeSelection()
+ 		SwAccessibleObjShape_Impl *pShape = pShapes;
+ 		while( nShapes )
+ 		{
+-			if( pShape->second.isValid() )
++			if( pShape->second.is() )
+ 			{
+ 				sal_Bool bChanged;
+ 				if( pShape >= pSelShape )
+@@ -944,7 +944,7 @@ void SwAccessibleMap::DoInvalidateShapeSelection()
+ 			::std::list< const SwFrm * >::const_iterator aEndIter = aParents.end();
+ 			while( aIter != aEndIter )
+ 			{
+-				::vos::ORef< SwAccessibleContext > xParentAccImpl;
++				::rtl::Reference< SwAccessibleContext > xParentAccImpl;
+ 				{
+ 					vos::OGuard aGuard( maMutex );
+ 					if(  mpFrmMap )
+@@ -959,7 +959,7 @@ void SwAccessibleMap::DoInvalidateShapeSelection()
+ 						}
+ 					}
+ 				}
+-				if( xParentAccImpl.isValid() )
++				if( xParentAccImpl.is() )
+ 				{
+ 					AccessibleEventObject aEvent;
+ 					aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
+@@ -1002,7 +1002,7 @@ void SwAccessibleMap::DoInvalidateShapeFocus()
+ 		SwAccessibleObjShape_Impl  *pShape = pShapes;
+ 		while( nShapes )
+ 		{
+-			if( pShape->second.isValid() )
++			if( pShape->second.is() )
+ 			{
+ 				if( bFocused && pShape >= pSelShape )
+ 					pShape->second->SetState( AccessibleStateType::FOCUSED );
+@@ -1357,13 +1357,13 @@ uno::Reference< XAccessible> SwAccessibleMap::GetContext( const SwFrm *pFrm,
+ 	return xAcc;
+ }
+ 
+-::vos::ORef < SwAccessibleContext > SwAccessibleMap::GetContextImpl(
++::rtl::Reference < SwAccessibleContext > SwAccessibleMap::GetContextImpl(
+ 			const SwFrm *pFrm,
+ 			sal_Bool bCreate )
+ {
+ 	uno::Reference < XAccessible > xAcc( GetContext( pFrm, bCreate ) );
+ 
+-	::vos::ORef < SwAccessibleContext > xAccImpl(
++	::rtl::Reference < SwAccessibleContext > xAccImpl(
+ 		 static_cast< SwAccessibleContext * >( xAcc.get() ) );
+ 
+ 	return xAccImpl;
+@@ -1435,14 +1435,14 @@ uno::Reference< XAccessible> SwAccessibleMap::GetContext(
+ 	return xAcc;
+ }
+ 
+-::vos::ORef < ::accessibility::AccessibleShape > SwAccessibleMap::GetContextImpl(
++::rtl::Reference < ::accessibility::AccessibleShape > SwAccessibleMap::GetContextImpl(
+ 			const SdrObject *pObj,
+ 			SwAccessibleContext *pParentImpl,
+ 			sal_Bool bCreate )
+ {
+ 	uno::Reference < XAccessible > xAcc( GetContext( pObj, pParentImpl, bCreate ) );
+ 
+-	::vos::ORef < ::accessibility::AccessibleShape > xAccImpl(
++	::rtl::Reference < ::accessibility::AccessibleShape > xAccImpl(
+ 		 static_cast< ::accessibility::AccessibleShape* >( xAcc.get() ) );
+ 
+ 	return xAccImpl;
+@@ -1524,9 +1524,9 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 	ASSERT( !aFrmOrObj.GetSwFrm() || aFrmOrObj.GetSwFrm()->IsAccessibleFrm(),
+ 			"non accessible frame should be disposed" );
+ 
+-	::vos::ORef< SwAccessibleContext > xAccImpl;
+-	::vos::ORef< SwAccessibleContext > xParentAccImpl;
+-	::vos::ORef< ::accessibility::AccessibleShape > xShapeAccImpl;
++	::rtl::Reference< SwAccessibleContext > xAccImpl;
++	::rtl::Reference< SwAccessibleContext > xParentAccImpl;
++	::rtl::Reference< ::accessibility::AccessibleShape > xShapeAccImpl;
+ 	if( aFrmOrObj.IsAccessible( GetShell()->IsPreView() ) )
+ 	{
+ 		// get accessible context for frame
+@@ -1545,7 +1545,7 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 						static_cast< SwAccessibleContext *>( xAcc.get() );
+ 				}
+ 			}
+-			if( !xAccImpl.isValid() && mpFrmMap )
++			if( !xAccImpl.is() && mpFrmMap )
+ 			{
+ 				// If there is none, look if the parent is accessible.
+ 				const SwFrm *pParent =
+@@ -1564,7 +1564,7 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 					}
+ 				}
+ 			}
+-			if( !xParentAccImpl.isValid() && !aFrmOrObj.GetSwFrm() &&
++			if( !xParentAccImpl.is() && !aFrmOrObj.GetSwFrm() &&
+ 				mpShapeMap )
+ 			{
+ 				SwAccessibleShapeMap_Impl::iterator aIter =
+@@ -1577,7 +1577,7 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 				}
+ 			}
+ 			if( pObj && GetShell()->ActionPend() &&
+-				(xParentAccImpl.isValid() || xShapeAccImpl.isValid()) )
++				(xParentAccImpl.is() || xShapeAccImpl.is()) )
+ 			{
+ 				// Keep a reference to the XShape to avoid that it
+ 				// is deleted with a SwFrmFmt::Modify.
+@@ -1613,11 +1613,11 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 		// the frame. If the frame is no context for it but disposing should
+ 		// take place recursive, the frame's children have to be disposed
+ 		// anyway, so we have to create the context then.
+-		if( xAccImpl.isValid() )
++		if( xAccImpl.is() )
+ 		{
+ 			xAccImpl->Dispose( bRecursive );
+ 		}
+-		else if( xParentAccImpl.isValid() )
++		else if( xParentAccImpl.is() )
+ 		{
+ 			// If the frame is a cell frame, the table must be notified.
+ 			// If we are in an action, a table model change event will
+@@ -1626,7 +1626,7 @@ void SwAccessibleMap::Dispose( const SwFrm *pFrm, const SdrObject *pObj,
+ 
+ 			xParentAccImpl->DisposeChild( aFrmOrObj, bRecursive );
+ 		}
+-		else if( xShapeAccImpl.isValid() )
++		else if( xShapeAccImpl.is() )
+ 		{
+ 			RemoveContext( aFrmOrObj.GetSdrObject() );
+ 			xShapeAccImpl->dispose();
+@@ -1644,8 +1644,8 @@ void SwAccessibleMap::InvalidatePosOrSize( const SwFrm *pFrm,
+ 	SwFrmOrObj aFrmOrObj( pFrm, pObj );
+ 	if( aFrmOrObj.IsAccessible( GetShell()->IsPreView() ) )
+ 	{
+-		::vos::ORef< SwAccessibleContext > xAccImpl;
+-		::vos::ORef< SwAccessibleContext > xParentAccImpl;
++		::rtl::Reference< SwAccessibleContext > xAccImpl;
++		::rtl::Reference< SwAccessibleContext > xParentAccImpl;
+ 		{
+ 			vos::OGuard aGuard( maMutex );
+ 
+@@ -1664,7 +1664,7 @@ void SwAccessibleMap::InvalidatePosOrSize( const SwFrm *pFrm,
+ 							static_cast< SwAccessibleContext *>( xAcc.get() );
+ 					}
+ 				}
+-				if( !xAccImpl.isValid() )
++				if( !xAccImpl.is() )
+ 				{
+ 					// Otherwise we look if the parent is accessible.
+ 					// If not, there is nothing to do.
+@@ -1687,12 +1687,12 @@ void SwAccessibleMap::InvalidatePosOrSize( const SwFrm *pFrm,
+ 			}
+ 		}
+ 
+-		if( xAccImpl.isValid() )
++		if( xAccImpl.is() )
+ 		{
+ 			if( GetShell()->ActionPend() )
+ 			{
+ 				SwAccessibleEvent_Impl aEvent(
+-					SwAccessibleEvent_Impl::POS_CHANGED, xAccImpl.getBodyPtr(),
++					SwAccessibleEvent_Impl::POS_CHANGED, xAccImpl.get(),
+ 					aFrmOrObj, rOldBox );
+ 				AppendEvent( aEvent );
+ 			}
+@@ -1702,13 +1702,13 @@ void SwAccessibleMap::InvalidatePosOrSize( const SwFrm *pFrm,
+ 				xAccImpl->InvalidatePosOrSize( rOldBox );
+ 			}
+ 		}
+-		else if( xParentAccImpl.isValid() )
++		else if( xParentAccImpl.is() )
+ 		{
+ 			if( GetShell()->ActionPend() )
+ 			{
+ 				SwAccessibleEvent_Impl aEvent(
+ 					SwAccessibleEvent_Impl::CHILD_POS_CHANGED,
+-					xParentAccImpl.getBodyPtr(), aFrmOrObj, rOldBox );
++					xParentAccImpl.get(), aFrmOrObj, rOldBox );
+ 				AppendEvent( aEvent );
+ 			}
+ 			else
+@@ -1875,10 +1875,10 @@ void SwAccessibleMap::InvalidateFocus()
+ }
+ 
+ void SwAccessibleMap::SetCursorContext(
+-		const ::vos::ORef < SwAccessibleContext >& rCursorContext )
++		const ::rtl::Reference < SwAccessibleContext >& rCursorContext )
+ {
+ 	vos::OGuard aGuard( maMutex );
+-	uno::Reference < XAccessible > xAcc( rCursorContext.getBodyPtr() );
++	uno::Reference < XAccessible > xAcc( rCursorContext.get() );
+ 	mxCursorContext = xAcc;
+ }
+ 
+@@ -2042,7 +2042,7 @@ void SwAccessibleMap::UpdatePreview( const std::vector<PrevwPage*>& _rPrevwPages
+     // accessibility tree; this will also send appropriate scroll
+     // events
+     SwAccessibleContext* pDoc =
+-        GetContextImpl( GetShell()->GetLayout() ).getBodyPtr();
++        GetContextImpl( GetShell()->GetLayout() ).get();
+     static_cast<SwAccessibleDocumentBase*>( pDoc )->SetVisArea();
+ 
+ 	uno::Reference < XAccessible > xOldAcc;
+@@ -2578,9 +2578,9 @@ void SwAccessibleMap::InvalidateTextSelectionOfAllParas()
+                 uno::Reference < XAccessible > xAcc( (*aIter).first );
+                 if ( xAcc.is() )
+                 {
+-                    ::vos::ORef < SwAccessibleContext > xAccImpl(
++                    ::rtl::Reference < SwAccessibleContext > xAccImpl(
+                                 static_cast<SwAccessibleContext*>( xAcc.get() ) );
+-                    if ( xAccImpl.isValid() && xAccImpl->GetFrm() )
++                    if ( xAccImpl.is() && xAccImpl->GetFrm() )
+                     {
+                         const SwTxtFrm* pTxtFrm(
+                             dynamic_cast<const SwTxtFrm*>(xAccImpl->GetFrm()) );
+@@ -2606,9 +2606,9 @@ void SwAccessibleMap::InvalidateTextSelectionOfAllParas()
+             uno::Reference < XAccessible > xAcc( (*aIter).first );
+             if ( xAcc.is() )
+             {
+-                ::vos::ORef < SwAccessibleContext > xAccImpl(
++                ::rtl::Reference < SwAccessibleContext > xAccImpl(
+                             static_cast<SwAccessibleContext*>( xAcc.get() ) );
+-                if ( xAccImpl.isValid() && xAccImpl->GetFrm() )
++                if ( xAccImpl.is() && xAccImpl->GetFrm() )
+                 {
+                     const SwTxtFrm* pTxtFrm(
+                             dynamic_cast<const SwTxtFrm*>(xAccImpl->GetFrm()) );
+diff --git a/sw/source/core/access/accpage.cxx b/sw/source/core/access/accpage.cxx
+index ed1a1d4..638a7bd 100644
+--- sw/source/core/access/accpage.cxx
++++ sw/source/core/access/accpage.cxx
+@@ -94,7 +94,7 @@ void SwAccessiblePage::GetStates(
+ 	if( IsSelected() )
+ 	{
+ 		ASSERT( bIsSelected, "bSelected out of sync" );
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 
+ 		Window *pWin = GetWindow();
+@@ -118,7 +118,7 @@ void SwAccessiblePage::_InvalidateCursorPos()
+ 	{
+ 		// remember that object as the one that has the caret. This is
+ 		// neccessary to notify that object if the cursor leaves it.
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ 
+diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
+index 0ef417f..7dbe78d 100644
+--- sw/source/core/access/accpara.cxx
++++ sw/source/core/access/accpara.cxx
+@@ -192,7 +192,6 @@ using namespace ::com::sun::star::i18n;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::accessibility;
+-using namespace ::rtl;
+ 
+ using ::com::sun::star::uno::Reference;
+ using ::com::sun::star::beans::PropertyValue;
+@@ -202,6 +201,7 @@ using ::com::sun::star::beans::PropertyState_DIRECT_VALUE;
+ using std::max;
+ using std::min;
+ using std::sort;
++using rtl::OUString;
+ 
+ namespace com { namespace sun { namespace star {
+     namespace text {
+@@ -474,7 +474,7 @@ void SwAccessibleParagraph::GetStates(
+ 		Window *pWin = GetWindow();
+ 		if( pWin && pWin->HasFocus() )
+ 			rStateSet.AddState( AccessibleStateType::FOCUSED );
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ }
+@@ -553,7 +553,7 @@ void SwAccessibleParagraph::_InvalidateCursorPos()
+ 	{
+ 		// remember that object as the one that has the caret. This is
+ 		// neccessary to notify that object if the cursor leaves it.
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ 
+@@ -1272,7 +1272,7 @@ sal_Int32 SwAccessibleParagraph::getCaretPosition()
+ 	}
+ 	if( -1 != nRet )
+ 	{
+-		::vos::ORef < SwAccessibleContext > xThis( this );
++		::rtl::Reference < SwAccessibleContext > xThis( this );
+ 		GetMap()->SetCursorContext( xThis );
+ 	}
+ 
+diff --git a/sw/source/core/access/accselectionhelper.cxx b/sw/source/core/access/accselectionhelper.cxx
+index 854cc3e..cf54721 100644
+--- sw/source/core/access/accselectionhelper.cxx
++++ sw/source/core/access/accselectionhelper.cxx
+@@ -327,22 +327,22 @@ Reference<XAccessible> SwAccessibleSelectionHelper::getSelectedAccessibleChild(
+ 	Reference< XAccessible > xChild;
+ 	if( aChild.GetSwFrm() )
+ 	{
+-		::vos::ORef < SwAccessibleContext > xChildImpl(
++		::rtl::Reference < SwAccessibleContext > xChildImpl(
+ 				rContext.GetMap()->GetContextImpl( aChild.GetSwFrm(),
+ 				sal_True ) );
+-		if( xChildImpl.isValid() )
++		if( xChildImpl.is() )
+ 		{
+ 			xChildImpl->SetParent( &rContext );
+-			xChild = xChildImpl.getBodyPtr();
++			xChild = xChildImpl.get();
+ 		}
+ 	}
+ 	else
+ 	{
+-		::vos::ORef < ::accessibility::AccessibleShape > xChildImpl(
++		::rtl::Reference < ::accessibility::AccessibleShape > xChildImpl(
+ 				rContext.GetMap()->GetContextImpl( aChild.GetSdrObject(),
+ 										  &rContext, sal_True )  );
+-		if( xChildImpl.isValid() )
+-			xChild = xChildImpl.getBodyPtr();
++		if( xChildImpl.is() )
++			xChild = xChildImpl.get();
+ 	}
+     return xChild;
+ }
+diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
+index a15203f..e703e59 100644
+--- sw/source/core/doc/doc.cxx
++++ sw/source/core/doc/doc.cxx
+@@ -450,7 +450,7 @@ const com::sun::star::i18n::ForbiddenCharacters*
+     SwDoc::getForbiddenCharacters(/*[in]*/ USHORT nLang, /*[in]*/ bool bLocaleData ) const
+ {
+     const i18n::ForbiddenCharacters* pRet = 0;
+-    if( xForbiddenCharsTable.isValid() )
++    if( xForbiddenCharsTable.is() )
+         pRet = xForbiddenCharsTable->GetForbiddenCharacters( nLang, FALSE );
+     if( bLocaleData && !pRet && pBreakIt )
+         pRet = &pBreakIt->GetForbidden( (LanguageType)nLang );
+@@ -460,7 +460,7 @@ const com::sun::star::i18n::ForbiddenCharacters*
+ void SwDoc::setForbiddenCharacters(/*[in]*/ USHORT nLang,
+                                    /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rFChars )
+ {
+-    if( !xForbiddenCharsTable.isValid() )
++    if( !xForbiddenCharsTable.is() )
+     {
+         ::com::sun::star::uno::Reference<
+             ::com::sun::star::lang::XMultiServiceFactory > xMSF =
+@@ -484,9 +484,9 @@ void SwDoc::setForbiddenCharacters(/*[in]*/ USHORT nLang,
+     SetModified();
+ }
+ 
+-vos::ORef<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable()
++rtl::Reference<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable()
+ {
+-    if( !xForbiddenCharsTable.isValid() )
++    if( !xForbiddenCharsTable.is() )
+     {
+         ::com::sun::star::uno::Reference<
+             ::com::sun::star::lang::XMultiServiceFactory > xMSF =
+@@ -496,7 +496,7 @@ vos::ORef<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable()
+     return xForbiddenCharsTable;
+ }
+ 
+-const vos::ORef<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable() const
++const rtl::Reference<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable() const
+ {
+     return xForbiddenCharsTable;
+ }
+diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
+index 6b44737..ce0661d 100644
+--- sw/source/core/doc/docnew.cxx
++++ sw/source/core/doc/docnew.cxx
+@@ -910,7 +910,7 @@ void SwDoc::ClearDoc()
+ 	else
+ 		pFrmFmtTbl->DeleteAndDestroy( 1, pFrmFmtTbl->Count()-1 );
+ 
+-	xForbiddenCharsTable.unbind();
++	xForbiddenCharsTable.clear();
+ 
+ 	pFldTypes->DeleteAndDestroy( INIT_FLDTYPES,
+ 								pFldTypes->Count() - INIT_FLDTYPES );
+diff --git a/sw/source/core/text/guess.cxx b/sw/source/core/text/guess.cxx
+index 9bfd3d3..ec106f9 100644
+--- sw/source/core/text/guess.cxx
++++ sw/source/core/text/guess.cxx
+@@ -90,13 +90,14 @@
+ #include <porfld.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::i18n;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::linguistic2;
+ 
++using rtl::OUString;
++
+ #define CH_FULL_BLANK 0x3000
+ 
+ /*************************************************************************
+diff --git a/sw/source/core/unocore/SwXTextDefaults.cxx b/sw/source/core/unocore/SwXTextDefaults.cxx
+index 0bbbed9..0b05352 100644
+--- sw/source/core/unocore/SwXTextDefaults.cxx
++++ sw/source/core/unocore/SwXTextDefaults.cxx
+@@ -84,7 +84,7 @@
+ #endif
+ 
+ 
+-using namespace rtl;
++using rtl::OUString;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx
+index ea0c4c9..cb425e9 100644
+--- sw/source/core/unocore/unocoll.cxx
++++ sw/source/core/unocore/unocoll.cxx
+@@ -145,7 +145,6 @@
+ 
+ #include "docsh.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::uno;
+@@ -153,6 +152,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ 
++using rtl::OUString;
++
+ /******************************************************************************
+  *
+  ******************************************************************************/
+diff --git a/sw/source/core/unocore/unoportenum.cxx b/sw/source/core/unocore/unoportenum.cxx
+index 818041d..e4aefcf 100644
+--- sw/source/core/unocore/unoportenum.cxx
++++ sw/source/core/unocore/unoportenum.cxx
+@@ -98,8 +98,10 @@
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+-using namespace ::rtl;
+ using namespace ::std;
++
++using rtl::OUString;
++
+ /******************************************************************
+  *	SwXTextPortionEnumeration
+  ******************************************************************/
+diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx
+index 4838f75..7945282 100644
+--- sw/source/core/unocore/unosett.cxx
++++ sw/source/core/unocore/unosett.cxx
+@@ -155,7 +155,6 @@
+ #include <SwStyleNameMapper.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -163,6 +162,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::style;
+ 
++using rtl::OUString;
++
+ struct PropValData
+ {
+ 	uno::Any 		aVal;
+diff --git a/sw/source/filter/xml/xmlbrsh.cxx b/sw/source/filter/xml/xmlbrsh.cxx
+index a490baf..b34909c 100644
+--- sw/source/filter/xml/xmlbrsh.cxx
++++ sw/source/filter/xml/xmlbrsh.cxx
+@@ -72,11 +72,12 @@
+ #include "xmlimpit.hxx"
+ #include "xmlexpit.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ enum SvXMLTokenMapAttrs
+ {
+ 	XML_TOK_BGIMG_HREF,
+diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
+index 95a28d6..5d8fc3e 100644
+--- sw/source/filter/xml/xmlexp.cxx
++++ sw/source/filter/xml/xmlexp.cxx
+@@ -160,7 +160,7 @@
+ #endif
+ // <--
+ 
+-using namespace ::rtl;
++using rtl::OUString;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::lang;
+diff --git a/sw/source/filter/xml/xmlfmte.cxx b/sw/source/filter/xml/xmlfmte.cxx
+index 61c20e4..12571fe 100644
+--- sw/source/filter/xml/xmlfmte.cxx
++++ sw/source/filter/xml/xmlfmte.cxx
+@@ -102,7 +102,6 @@
+ #include <SwStyleNameMapper.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -110,6 +109,8 @@ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::lang;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ void SwXMLExport::ExportFmt( const SwFmt& rFmt, enum XMLTokenEnum eFamily )
+ {
+ 	// <style:style ...>
+diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
+index 85418e7..479841e 100644
+--- sw/source/filter/xml/xmlimp.cxx
++++ sw/source/filter/xml/xmlimp.cxx
+@@ -158,7 +158,6 @@
+ #include <unotxdoc.hxx>    // for initXForms()
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -170,14 +169,7 @@ using namespace ::com::sun::star::drawing;
+ using namespace ::xmloff::token;
+ using namespace ::std;
+ 
+-struct OUStringEquals
+-{
+-	sal_Bool operator()( const rtl::OUString &r1,
+-				    	 const rtl::OUString &r2) const
+-	{
+-		return r1 == r2;
+-	}
+-};
++using rtl::OUString;
+ 
+ //----------------------------------------------------------------------------
+ 
+diff --git a/sw/source/filter/xml/xmlitemi.cxx b/sw/source/filter/xml/xmlitemi.cxx
+index 9dccf8c..46e7bf7 100644
+--- sw/source/filter/xml/xmlitemi.cxx
++++ sw/source/filter/xml/xmlitemi.cxx
+@@ -110,10 +110,11 @@
+ #include "xmlimp.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++
+ extern SvXMLItemMapEntry aXMLTableItemMap[];
+ extern SvXMLItemMapEntry aXMLTableColItemMap[];
+ extern SvXMLItemMapEntry aXMLTableRowItemMap[];
+diff --git a/sw/source/filter/xml/xmlmeta.cxx b/sw/source/filter/xml/xmlmeta.cxx
+index 6fe24c2..464569d 100644
+--- sw/source/filter/xml/xmlmeta.cxx
++++ sw/source/filter/xml/xmlmeta.cxx
+@@ -90,14 +90,15 @@
+ #include "xmlexp.hxx"
+ #endif
+ 
+-
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::text;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ // ---------------------------------------------------------------------
+ 
+ SvXMLImportContext *SwXMLImport::CreateMetaContext(
+diff --git a/sw/source/filter/xml/xmltble.cxx b/sw/source/filter/xml/xmltble.cxx
+index 8d6f26a..ab30329 100644
+--- sw/source/filter/xml/xmltble.cxx
++++ sw/source/filter/xml/xmltble.cxx
+@@ -140,7 +140,8 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
+index 265d7a0..937cc28 100644
+--- sw/source/filter/xml/xmltbli.cxx
++++ sw/source/filter/xml/xmltbli.cxx
+@@ -148,7 +148,6 @@
+ #include "ndtxt.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -158,6 +157,7 @@ using namespace ::com::sun::star::table;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ using ::std::hash_map;
++using rtl::OUString;
+ 
+ enum SwXMLTableElemTokens
+ {
+diff --git a/sw/source/filter/xml/xmltext.cxx b/sw/source/filter/xml/xmltext.cxx
+index cde940f..2f60162 100644
+--- sw/source/filter/xml/xmltext.cxx
++++ sw/source/filter/xml/xmltext.cxx
+@@ -45,11 +45,12 @@
+ #include "xmlimp.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ 
++using rtl::OUString;
++
+ // ---------------------------------------------------------------------
+ 
+ 
+diff --git a/sw/source/filter/xml/xmltexte.cxx b/sw/source/filter/xml/xmltexte.cxx
+index 22e4b51..2c7fd5c 100644
+--- sw/source/filter/xml/xmltexte.cxx
++++ sw/source/filter/xml/xmltexte.cxx
+@@ -122,7 +122,6 @@
+ #include <SwStyleNameMapper.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -131,6 +130,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::io;
+ using namespace ::xmloff::token;
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ enum SvEmbeddedObjectTypes
+ {
+diff --git a/sw/source/ui/app/swmodul1.cxx b/sw/source/ui/app/swmodul1.cxx
+index a962315..6e61635 100644
+--- sw/source/ui/app/swmodul1.cxx
++++ sw/source/ui/app/swmodul1.cxx
+@@ -141,7 +141,6 @@
+ #endif
+ #include "helpid.h"
+ 
+-using namespace ::rtl;
+ using namespace ::svx;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+diff --git a/sw/source/ui/fldui/fldmgr.cxx b/sw/source/ui/fldui/fldmgr.cxx
+index 2dbce7a..77068f6 100644
+--- sw/source/ui/fldui/fldmgr.cxx
++++ sw/source/ui/fldui/fldmgr.cxx
+@@ -205,7 +205,7 @@
+ #include <fldui.hrc>
+ #endif
+ 
+-using namespace ::rtl;
++using ::rtl::OUString;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
+index 6a34b62..f02f59d 100644
+--- sw/source/ui/uno/SwXDocumentSettings.cxx
++++ sw/source/ui/uno/SwXDocumentSettings.cxx
+@@ -100,8 +100,6 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
+-
+-using namespace rtl;
+ using namespace comphelper;
+ using namespace com::sun::star;
+ using namespace com::sun::star::uno;
+@@ -109,6 +107,8 @@ using namespace com::sun::star::beans;
+ using namespace com::sun::star::lang;
+ using namespace com::sun::star::i18n;
+ 
++using rtl::OUString;
++
+ enum SwDocumentSettingsPropertyHandles
+ {
+ 	HANDLE_FORBIDDEN_CHARS,
+diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx
+index d0bdda1..9657a1b 100644
+--- sw/source/ui/uno/unotxdoc.cxx
++++ sw/source/ui/uno/unotxdoc.cxx
+@@ -3607,7 +3607,7 @@ void SwXDocumentPropertyHelper::Invalidate()
+ 	xMarkerTable = 0;
+ 	xDrawDefaults = 0;
+ 	m_pDoc = 0;
+-	SvxUnoForbiddenCharsTable::mxForbiddenChars.unbind();
++	SvxUnoForbiddenCharsTable::mxForbiddenChars.clear();
+ }
+ /* -----------------13.08.2003 12:43-----------------
+ 
+diff --git a/ucb/inc/pch/precompiled_ucb.hxx b/ucb/inc/pch/precompiled_ucb.hxx
+index 64ee0aa..ad25188 100644
+--- ucb/inc/pch/precompiled_ucb.hxx
++++ ucb/inc/pch/precompiled_ucb.hxx
+@@ -184,8 +184,8 @@
+ 
+ #include "osl/diagnose.h"
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "salhelper/simplereferenceobject.hxx"
+ //---MARKER---
+ 
+ #endif
+diff --git a/xmlhelp/inc/provider/content.hxx b/xmlhelp/inc/provider/content.hxx
+index 6c6b7db..0c6d8c5 100644
+--- xmlhelp/inc/provider/content.hxx
++++ xmlhelp/inc/provider/content.hxx
+@@ -36,8 +36,8 @@
+ #ifndef _CONTENT_HXX
+ #define _CONTENT_HXX
+ 
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _UCBHELPER_CONTENTHELPER_HXX
+ #include <ucbhelper/contenthelper.hxx>
+diff --git a/xmlhelp/inc/provider/resultset.hxx b/xmlhelp/inc/provider/resultset.hxx
+index 965a471..499a748 100644
+--- xmlhelp/inc/provider/resultset.hxx
++++ xmlhelp/inc/provider/resultset.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _UCBHELPER_RESULTSETHELPER_HXX
+ #include <ucbhelper/resultsethelper.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CONTENT_HXX
+ #include <provider/content.hxx>
+@@ -52,7 +52,7 @@ namespace chelp {
+ 
+ 	class DynamicResultSet : public ::ucbhelper::ResultSetImplHelper
+ 	{
+-		vos::ORef< Content > m_xContent;
++		rtl::Reference< Content > m_xContent;
+ 		com::sun::star::uno::Reference<
+ 		com::sun::star::ucb::XCommandEnvironment > m_xEnv;
+ 		ResultSetFactory*                    m_pFactory;
+@@ -65,7 +65,7 @@ namespace chelp {
+ 		DynamicResultSet(
+ 			const com::sun::star::uno::Reference<
+ 			com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
+-			const vos::ORef< Content >& rxContent,
++			const rtl::Reference< Content >& rxContent,
+ 			const com::sun::star::ucb::OpenCommandArgument2& rCommand,
+ 			const com::sun::star::uno::Reference<
+ 			com::sun::star::ucb::XCommandEnvironment >& rxEnv,
+diff --git a/xmlhelp/source/cxxhelp/provider/resultset.cxx b/xmlhelp/source/cxxhelp/provider/resultset.cxx
+index f2f6193..167303b 100644
+--- xmlhelp/source/cxxhelp/provider/resultset.cxx
++++ xmlhelp/source/cxxhelp/provider/resultset.cxx
+@@ -64,7 +64,7 @@ using namespace chelp;
+ 
+ DynamicResultSet::DynamicResultSet(
+ 	const Reference< XMultiServiceFactory >& rxSMgr,
+-	const vos::ORef< Content >& rxContent,
++	const rtl::Reference< Content >& rxContent,
+ 	const OpenCommandArgument2& rCommand,
+ 	const Reference< XCommandEnvironment >& rxEnv,
+ 	ResultSetFactory* pFactory )
+diff --git a/xmloff/inc/pch/precompiled_xmloff.hxx b/xmloff/inc/pch/precompiled_xmloff.hxx
+index 1f4d7d8..cb96924 100644
+--- xmloff/inc/pch/precompiled_xmloff.hxx
++++ xmloff/inc/pch/precompiled_xmloff.hxx
+@@ -478,8 +478,8 @@
+ #include "vcl/mapunit.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/ref.hxx"
+-#include "vos/refernce.hxx"
++#include "rtl/ref.hxx"
++#include "salhelper/simplereferenceobject.hxx"
+ 
+ #include "xmloff/dllapi.h"
+ //---MARKER---
+diff --git a/xmloff/inc/xmloff/ControlBorderHandler.hxx b/xmloff/inc/xmloff/ControlBorderHandler.hxx
+index a5f38ae..b1e3ed5 100644
+--- xmloff/inc/xmloff/ControlBorderHandler.hxx
++++ xmloff/inc/xmloff/ControlBorderHandler.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _XMLOFF_PROPERTYHANDLERFACTORY_HXX
+ #include <xmloff/prhdlfac.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+diff --git a/xmloff/inc/xmloff/controlpropertyhdl.hxx b/xmloff/inc/xmloff/controlpropertyhdl.hxx
+index 8061e0d..c904dd9 100644
+--- xmloff/inc/xmloff/controlpropertyhdl.hxx
++++ xmloff/inc/xmloff/controlpropertyhdl.hxx
+@@ -47,8 +47,8 @@
+ #ifndef _XMLOFF_PROPERTYHANDLERFACTORY_HXX
+ #include <xmloff/prhdlfac.hxx>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+diff --git a/xmloff/inc/xmloff/formlayerexport.hxx b/xmloff/inc/xmloff/formlayerexport.hxx
+index 70b50b1..98201c8 100644
+--- xmloff/inc/xmloff/formlayerexport.hxx
++++ xmloff/inc/xmloff/formlayerexport.hxx
+@@ -44,8 +44,8 @@
+ #include "xmloff/dllapi.h"
+ #endif
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGE_HPP_
+ #include <com/sun/star/drawing/XDrawPage.hpp>
+@@ -59,8 +59,8 @@
+ #ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+ #include <com/sun/star/frame/XModel.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _XMLOFF_XMLEXPPR_HXX
+ #include <xmloff/xmlexppr.hxx>
+@@ -85,7 +85,7 @@ namespace xmloff
+ 	/** provides functionallity for exporting a complete form layer.
+ 	*/
+ 	class XMLOFF_DLLPUBLIC OFormLayerXMLExport
+-				:public ::vos::OReference
++				:public ::salhelper::SimpleReferenceObject
+ 	{
+ 	protected:
+ 		/// our export context
+@@ -194,7 +194,7 @@ namespace xmloff
+ 		bool documentContainsXForms() const;
+ 
+ 		/// retrieves the property mapper for control styles
+-		::vos::ORef< SvXMLExportPropertyMapper > getStylePropertyMapper();
++		::rtl::Reference< SvXMLExportPropertyMapper > getStylePropertyMapper();
+ 
+ 		/** exports the controls number styles
+ 		*/
+diff --git a/xmloff/inc/xmloff/formlayerimport.hxx b/xmloff/inc/xmloff/formlayerimport.hxx
+index d10f977..db3ffe4 100644
+--- xmloff/inc/xmloff/formlayerimport.hxx
++++ xmloff/inc/xmloff/formlayerimport.hxx
+@@ -44,8 +44,8 @@
+ #include "xmloff/dllapi.h"
+ #endif
+ 
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGE_HPP_
+ #include <com/sun/star/drawing/XDrawPage.hpp>
+@@ -56,8 +56,8 @@
+ #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _XMLOFF_XMLIMPPR_HXX
+ #include <xmloff/xmlimppr.hxx>
+@@ -80,7 +80,7 @@ namespace xmloff
+ 	/** allows you to import a &lt;form:form&gt; element
+ 	*/
+ 	class XMLOFF_DLLPUBLIC OFormLayerXMLImport
+-				:public ::vos::OReference
++				:public ::salhelper::SimpleReferenceObject
+ 	{
+ 		OFormLayerXMLImport_Impl*	m_pImpl;
+ 
+@@ -90,7 +90,7 @@ namespace xmloff
+ 
+ 		/** retrieves the property mapper form form related auto styles.
+ 		*/
+-		::vos::ORef< SvXMLImportPropertyMapper >
++		::rtl::Reference< SvXMLImportPropertyMapper >
+ 				getStylePropertyMapper() const;
+ 
+ 		/** start importing the forms of the given page
+diff --git a/xmloff/inc/xmloff/nmspmap.hxx b/xmloff/inc/xmloff/nmspmap.hxx
+index ae0a46e..ac8e9a4 100644
+--- xmloff/inc/xmloff/nmspmap.hxx
++++ xmloff/inc/xmloff/nmspmap.hxx
+@@ -54,8 +54,8 @@
+ #ifndef __SGI_STL_MAP
+ #include <map>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _CPPUHELPER_WEAK_HXX_
+ #include <cppuhelper/weak.hxx>
+@@ -113,8 +113,8 @@ struct QNamePairEq
+ };
+ 
+ typedef ::std::hash_map < QNamePair, ::rtl::OUString, QNamePairHash, QNamePairEq > QNameCache;
+-typedef ::std::hash_map < ::rtl::OUString, ::vos::ORef <NameSpaceEntry >, rtl::OUStringHash, OUStringEqFunc > NameSpaceHash;
+-typedef ::std::map < sal_uInt16, ::vos::ORef < NameSpaceEntry >, uInt32lt > NameSpaceMap;
++typedef ::std::hash_map < ::rtl::OUString, ::rtl::Reference <NameSpaceEntry >, rtl::OUStringHash, OUStringEqFunc > NameSpaceHash;
++typedef ::std::map < sal_uInt16, ::rtl::Reference < NameSpaceEntry >, uInt32lt > NameSpaceMap;
+ 
+ class XMLOFF_DLLPUBLIC SvXMLNamespaceMap
+ {
+diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
+index 9291816..f87cebf 100644
+--- xmloff/source/chart/SchXMLExport.cxx
++++ xmloff/source/chart/SchXMLExport.cxx
+@@ -209,7 +209,6 @@
+ #include	"MultiPropertySetHandler.hxx"
+ #include    "PropertyMap.hxx"
+ 
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace ::xmloff::token;
+ 
+diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx
+index e92921e..c4bb4be 100644
+--- xmloff/source/chart/SchXMLImport.cxx
++++ xmloff/source/chart/SchXMLImport.cxx
+@@ -114,7 +114,6 @@
+ 
+ #include <typeinfo>
+ 
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace ::xmloff::token;
+ 
+diff --git a/xmloff/source/core/XMLBase64Export.cxx b/xmloff/source/core/XMLBase64Export.cxx
+index 621c91b..d5954c0 100644
+--- xmloff/source/core/XMLBase64Export.cxx
++++ xmloff/source/core/XMLBase64Export.cxx
+@@ -60,7 +60,8 @@
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::io;
+-using namespace ::rtl;
++
++using rtl::OUStringBuffer;
+ 
+ #define INPUT_BUFFER_SIZE 54
+ #define OUTPUT_BUFFER_SIZE 72
+diff --git a/xmloff/source/core/XMLBase64ImportContext.cxx b/xmloff/source/core/XMLBase64ImportContext.cxx
+index f06f0da..8fbbf87 100644
+--- xmloff/source/core/XMLBase64ImportContext.cxx
++++ xmloff/source/core/XMLBase64ImportContext.cxx
+@@ -51,11 +51,12 @@
+ #include <xmloff/XMLBase64ImportContext.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::io;
+ 
++using rtl::OUString;
++
+ //-----------------------------------------------------------------------------
+ 
+ TYPEINIT1( XMLBase64ImportContext, SvXMLImportContext );
+diff --git a/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx b/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
+index fa9bae2..3fe25dc 100644
+--- xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
++++ xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
+@@ -93,7 +93,6 @@
+ #include "XMLEmbeddedObjectImportContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::beans;
+@@ -103,6 +102,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ struct XMLServiceMapEntry_Impl
+ {
+ 	enum XMLTokenEnum eClass;
+diff --git a/xmloff/source/core/nmspmap.cxx b/xmloff/source/core/nmspmap.cxx
+index b4f783e..1a60d42 100644
+--- xmloff/source/core/nmspmap.cxx
++++ xmloff/source/core/nmspmap.cxx
+@@ -124,7 +124,7 @@ sal_uInt16 SvXMLNamespaceMap::_Add( const OUString& rPrefix, const OUString &rNa
+ 		}
+ 		while ( sal_True );
+ 	}
+-    ::vos::ORef<NameSpaceEntry> pEntry(new NameSpaceEntry);
++    ::rtl::Reference<NameSpaceEntry> pEntry(new NameSpaceEntry);
+ 	pEntry->sName   = rName;
+ 	pEntry->nKey    = nKey;
+ 	pEntry->sPrefix = rPrefix;
+@@ -303,7 +303,7 @@ sal_uInt16 SvXMLNamespaceMap::_GetKeyByAttrName( const OUString& rAttrName,
+         it = aNameCache.end();
+     if ( it != aNameCache.end() )
+ 	{
+-        const NameSpaceEntry &rEntry = (*it).second.getBody();
++        const NameSpaceEntry &rEntry = *((*it).second);
+         if ( pPrefix )
+             *pPrefix = rEntry.sPrefix;
+         if ( pLocalName )
+@@ -317,7 +317,7 @@ sal_uInt16 SvXMLNamespaceMap::_GetKeyByAttrName( const OUString& rAttrName,
+     }
+     else
+     {
+-	vos::ORef<NameSpaceEntry> xEntry(new NameSpaceEntry());
++	rtl::Reference<NameSpaceEntry> xEntry(new NameSpaceEntry());
+ 
+         sal_Int32 nColonPos = rAttrName.indexOf( sal_Unicode(':') );
+         if( -1L == nColonPos )
+@@ -355,7 +355,7 @@ sal_uInt16 SvXMLNamespaceMap::_GetKeyByAttrName( const OUString& rAttrName,
+ 
+         if (bCache)
+ 	{
+-	    typedef std::pair< const rtl::OUString, vos::ORef<NameSpaceEntry> > value_type;
++	    typedef std::pair< const rtl::OUString, rtl::Reference<NameSpaceEntry> > value_type;
+ 	    (void) const_cast<NameSpaceHash*>(&aNameCache)->insert (value_type (rAttrName, xEntry));
+ 	}
+     }
+diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
+index 30bdce5..0a675d0 100644
+--- xmloff/source/core/xmlexp.cxx
++++ xmloff/source/core/xmlexp.cxx
+@@ -216,7 +216,7 @@
+ #include "xformsexport.hxx"
+ #endif
+ 
+-using namespace ::rtl;
++using ::rtl::OUString;
+ using namespace ::osl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+diff --git a/xmloff/source/core/xmlimp.cxx b/xmloff/source/core/xmlimp.cxx
+index 8268069..f598bc9 100644
+--- xmloff/source/core/xmlimp.cxx
++++ xmloff/source/core/xmlimp.cxx
+@@ -156,7 +156,6 @@
+ 
+ using ::com::sun::star::beans::XPropertySetInfo;
+ 
+-using namespace ::rtl;
+ using namespace ::osl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::frame;
+@@ -167,6 +166,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::document;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ sal_Char __READONLY_DATA sXML_np__office[] = "_office";
+ sal_Char __READONLY_DATA sXML_np__ooo[] = "_ooo";
+ sal_Char __READONLY_DATA sXML_np__ooow[] = "_ooow";
+diff --git a/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx b/xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
+index 756feb4..84f2289 100644
+--- xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
++++ xmloff/source/draw/XMLGraphicsDefaultStyle.cxx
+@@ -72,7 +72,6 @@
+ #include <xmloff/XMLGraphicsDefaultStyle.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -84,6 +83,8 @@ using ::xmloff::token::XML_TEXT_PROPERTIES;
+ using ::xmloff::token::XML_GRAPHIC_PROPERTIES;
+ using ::xmloff::token::XML_PARAGRAPH_PROPERTIES;
+ 
++using rtl::OUString;
++
+ // ---------------------------------------------------------------------
+ 
+ TYPEINIT1( XMLGraphicsDefaultStyle, XMLPropStyleContext );
+diff --git a/xmloff/source/draw/XMLShapePropertySetContext.cxx b/xmloff/source/draw/XMLShapePropertySetContext.cxx
+index 16f52cb..0763757 100644
+--- xmloff/source/draw/XMLShapePropertySetContext.cxx
++++ xmloff/source/draw/XMLShapePropertySetContext.cxx
+@@ -54,10 +54,11 @@
+ 
+ #include "sdpropls.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ 
++using rtl::OUString;
++
+ //////////////////////////////////////////////////////////////////////////////
+ 
+ TYPEINIT1( XMLShapePropertySetContext, SvXMLPropertySetContext );
+diff --git a/xmloff/source/draw/XMLShapeStyleContext.cxx b/xmloff/source/draw/XMLShapeStyleContext.cxx
+index 0d4ec20..a8e3da5 100644
+--- xmloff/source/draw/XMLShapeStyleContext.cxx
++++ xmloff/source/draw/XMLShapeStyleContext.cxx
+@@ -84,7 +84,6 @@
+ 
+ #include "sdpropls.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -93,6 +92,8 @@ using ::xmloff::token::XML_TEXT_PROPERTIES;
+ using ::xmloff::token::XML_GRAPHIC_PROPERTIES;
+ using ::xmloff::token::XML_PARAGRAPH_PROPERTIES;
+ 
++using rtl::OUString;
++
+ //////////////////////////////////////////////////////////////////////////////
+ 
+ TYPEINIT1( XMLShapeStyleContext, XMLPropStyleContext );
+diff --git a/xmloff/source/draw/animationexport.cxx b/xmloff/source/draw/animationexport.cxx
+index 72b49c6..3bf91c4 100644
+--- xmloff/source/draw/animationexport.cxx
++++ xmloff/source/draw/animationexport.cxx
+@@ -180,7 +180,6 @@
+ #include "animations.hxx"
+ #include "animationexport.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star::animations;
+@@ -201,6 +200,9 @@ using ::com::sun::star::beans::NamedValue;
+ using ::com::sun::star::container::XEnumerationAccess;
+ using ::com::sun::star::container::XEnumeration;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ namespace xmloff
+ {
+ 
+diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx
+index e8231ef..8b896da 100644
+--- xmloff/source/draw/animationimport.cxx
++++ xmloff/source/draw/animationimport.cxx
+@@ -168,7 +168,6 @@
+ #include "animationimport.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star::beans;
+@@ -197,6 +196,8 @@ using ::com::sun::star::container::XEnumeration;
+ using ::com::sun::star::lang::XMultiServiceFactory;
+ using ::com::sun::star::lang::XInitialization;
+ 
++using rtl::OUString;
++
+ namespace xmloff
+ {
+ 
+diff --git a/xmloff/source/draw/animexp.cxx b/xmloff/source/draw/animexp.cxx
+index bf1945d..0633493 100644
+--- xmloff/source/draw/animexp.cxx
++++ xmloff/source/draw/animexp.cxx
+@@ -91,7 +91,6 @@
+ #include "anim.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -102,6 +101,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ const struct Effect
+ {
+diff --git a/xmloff/source/draw/animimp.cxx b/xmloff/source/draw/animimp.cxx
+index a872024..ea3c68f 100644
+--- xmloff/source/draw/animimp.cxx
++++ xmloff/source/draw/animimp.cxx
+@@ -100,7 +100,6 @@
+ #include "animimp.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -113,6 +112,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ SvXMLEnumMapEntry aXML_AnimationEffect_EnumMap[] =
+ {
+ 	{ XML_NONE,		    EK_none },
+diff --git a/xmloff/source/draw/descriptionimp.cxx b/xmloff/source/draw/descriptionimp.cxx
+index 05a518a..9a872da 100644
+--- xmloff/source/draw/descriptionimp.cxx
++++ xmloff/source/draw/descriptionimp.cxx
+@@ -63,7 +63,6 @@
+ 
+ #include "descriptionimp.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -74,6 +73,8 @@ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ TYPEINIT1( SdXMLDescriptionContext, SvXMLImportContext );
+diff --git a/xmloff/source/draw/eventimp.cxx b/xmloff/source/draw/eventimp.cxx
+index 3d51b5f..1f6491e 100644
+--- xmloff/source/draw/eventimp.cxx
++++ xmloff/source/draw/eventimp.cxx
+@@ -93,7 +93,6 @@
+ #include "anim.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -108,6 +107,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ SvXMLEnumMapEntry __READONLY_DATA aXML_EventActions_EnumMap[] =
+diff --git a/xmloff/source/draw/layerexp.cxx b/xmloff/source/draw/layerexp.cxx
+index 8d77551..ec6a0d2 100644
+--- xmloff/source/draw/layerexp.cxx
++++ xmloff/source/draw/layerexp.cxx
+@@ -74,7 +74,6 @@
+ #include "layerexp.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -84,6 +83,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ void SdXMLayerExporter::exportLayer( SvXMLExport& rExport )
+ {
+ 	Reference< XLayerSupplier > xLayerSupplier( rExport.GetModel(), UNO_QUERY );
+diff --git a/xmloff/source/draw/layerimp.cxx b/xmloff/source/draw/layerimp.cxx
+index 6a4a9b3..b5e6941 100644
+--- xmloff/source/draw/layerimp.cxx
++++ xmloff/source/draw/layerimp.cxx
+@@ -82,7 +82,6 @@
+ #include <xmloff/xmltoken.hxx>
+ #include "XMLStringBufferImportContext.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::xmloff::token;
+@@ -96,6 +95,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using ::xmloff::token::IsXMLToken;
+ 
++using rtl::OUString;
++
+ class SdXMLLayerContext : public SvXMLImportContext
+ {
+ public:
+diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx
+index 09cb9da..e618ffa 100644
+--- xmloff/source/draw/sdxmlexp.cxx
++++ xmloff/source/draw/sdxmlexp.cxx
+@@ -227,7 +227,6 @@
+ 
+ #include "animationexport.hxx"
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -236,6 +235,8 @@ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ //////////////////////////////////////////////////////////////////////////////
+ 
+diff --git a/xmloff/source/draw/ximppage.cxx b/xmloff/source/draw/ximppage.cxx
+index f08b035..d623bf2 100644
+--- xmloff/source/draw/ximppage.cxx
++++ xmloff/source/draw/ximppage.cxx
+@@ -92,7 +92,7 @@
+ #include "unointerfacetouniqueidentifiermapper.hxx"
+ #include <xmloff/xmluconv.hxx>
+ 
+-using namespace ::rtl;
++using ::rtl::OUString;
+ using namespace ::com::sun::star;
+ using namespace ::xmloff::token;
+ 
+diff --git a/xmloff/source/draw/ximpshow.cxx b/xmloff/source/draw/ximpshow.cxx
+index c3f9eee..282b077 100644
+--- xmloff/source/draw/ximpshow.cxx
++++ xmloff/source/draw/ximpshow.cxx
+@@ -86,7 +86,6 @@
+ #include "ximpshow.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+@@ -101,6 +100,8 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ ///////////////////////////////////////////////////////////////////////
+ 
+ class ShowsImpImpl
+diff --git a/xmloff/source/draw/ximpstyl.cxx b/xmloff/source/draw/ximpstyl.cxx
+index 75092c9..33a8cd9 100644
+--- xmloff/source/draw/ximpstyl.cxx
++++ xmloff/source/draw/ximpstyl.cxx
+@@ -143,12 +143,13 @@
+ #include "xmlerror.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ //////////////////////////////////////////////////////////////////////////////
+ 
+ class SdXMLDrawingPagePropertySetContext : public SvXMLPropertySetContext
+diff --git a/xmloff/source/forms/callbacks.hxx b/xmloff/source/forms/callbacks.hxx
+index a8b73d6..030c360 100644
+--- xmloff/source/forms/callbacks.hxx
++++ xmloff/source/forms/callbacks.hxx
+@@ -48,8 +48,8 @@
+ #ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_
+ #include <com/sun/star/script/ScriptEventDescriptor.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ class SvXMLImport;
+@@ -71,7 +71,7 @@ namespace xmloff
+ 	{
+ 	public:
+ 		virtual SvXMLExport&								getGlobalContext() = 0;
+-		virtual ::vos::ORef< SvXMLExportPropertyMapper >	getStylePropertyMapper() = 0;
++		virtual ::rtl::Reference< SvXMLExportPropertyMapper >	getStylePropertyMapper() = 0;
+ 
+ 		/** steps through a collection and exports all children of this collection
+ 		*/
+diff --git a/xmloff/source/forms/formattributes.hxx b/xmloff/source/forms/formattributes.hxx
+index 9247c61..7ee056d 100644
+--- xmloff/source/forms/formattributes.hxx
++++ xmloff/source/forms/formattributes.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _SAL_TYPES_H_
+ #include <sal/types.h>
+ #endif
+-#ifndef _VOS_REFERNCE_HXX_
+-#include <vos/refernce.hxx>
++#ifndef _SALHELPER_SIMPLEREFERENCEOBJECT_HXX_
++#include <salhelper/simplereferenceobject.hxx>
+ #endif
+ #ifndef _COMPHELPER_STLTYPES_HXX_
+ #include <comphelper/stl_types.hxx>
+diff --git a/xmloff/source/forms/formlayerexport.cxx b/xmloff/source/forms/formlayerexport.cxx
+index d122731..2ec767f 100644
+--- xmloff/source/forms/formlayerexport.cxx
++++ xmloff/source/forms/formlayerexport.cxx
+@@ -126,7 +126,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLExportPropertyMapper > OFormLayerXMLExport::getStylePropertyMapper()
++	::rtl::Reference< SvXMLExportPropertyMapper > OFormLayerXMLExport::getStylePropertyMapper()
+ 	{
+ 		return m_pImpl->getStylePropertyMapper();
+ 	}
+diff --git a/xmloff/source/forms/formlayerimport.cxx b/xmloff/source/forms/formlayerimport.cxx
+index 2ac9191..cbe2a35 100644
+--- xmloff/source/forms/formlayerimport.cxx
++++ xmloff/source/forms/formlayerimport.cxx
+@@ -73,7 +73,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport::getStylePropertyMapper() const
++	::rtl::Reference< SvXMLImportPropertyMapper > OFormLayerXMLImport::getStylePropertyMapper() const
+ 	{
+ 		return m_pImpl->getStylePropertyMapper();
+ 	}
+diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx
+index 0933880..e0f20ad 100644
+--- xmloff/source/forms/layerexport.cxx
++++ xmloff/source/forms/layerexport.cxx
+@@ -163,13 +163,13 @@ namespace xmloff
+ 
+ 		// add our style family to the export context's style pool
+ 		m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory();
+-		::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper( getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr() );
+-		m_xExportMapper = new OFormExportPropertyMapper( xStylePropertiesMapper.getBodyPtr() );
++		::rtl::Reference< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper( getControlStylePropertyMap(), m_xPropertyHandlerFactory.get() );
++		m_xExportMapper = new OFormExportPropertyMapper( xStylePropertiesMapper.get() );
+ 
+ 		// our style family
+ 		m_rContext.GetAutoStylePool()->AddFamily(
+ 			XML_STYLE_FAMILY_CONTROL_ID, token::GetXMLToken(token::XML_PARAGRAPH),
+-			m_xExportMapper.getBodyPtr(),
++			m_xExportMapper.get(),
+ 			::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( XML_STYLE_FAMILY_CONTROL_PREFIX) )
+ 		);
+ 
+@@ -247,7 +247,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLExportPropertyMapper > OFormLayerXMLExport_Impl::getStylePropertyMapper()
++	::rtl::Reference< SvXMLExportPropertyMapper > OFormLayerXMLExport_Impl::getStylePropertyMapper()
+ 	{
+ 		return m_xExportMapper;
+ 	}
+diff --git a/xmloff/source/forms/layerexport.hxx b/xmloff/source/forms/layerexport.hxx
+index 9b36e0b..9f9f18e 100644
+--- xmloff/source/forms/layerexport.hxx
++++ xmloff/source/forms/layerexport.hxx
+@@ -54,8 +54,8 @@
+ #ifndef _XMLOFF_FORMS_IFACECOMPARE_HXX_
+ #include "ifacecompare.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ class SvXMLExport;
+@@ -102,8 +102,8 @@ namespace xmloff
+ 		PropertySetBag		m_aIgnoreList;
+ 
+ 		// style handling
+-		::vos::ORef< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
+-		::vos::ORef< SvXMLExportPropertyMapper >	m_xExportMapper;
++		::rtl::Reference< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
++		::rtl::Reference< SvXMLExportPropertyMapper >	m_xExportMapper;
+ 
+ 		// we need our own number formats supplier:
+ 		// Controls which have a number formats do not work with the formats supplier of the document they reside
+@@ -203,7 +203,7 @@ namespace xmloff
+ 		virtual SvXMLExport&								getGlobalContext();
+ 		virtual ::rtl::OUString								getObjectStyleName(
+ 			const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObject );
+-		virtual ::vos::ORef< SvXMLExportPropertyMapper >	getStylePropertyMapper();
++		virtual ::rtl::Reference< SvXMLExportPropertyMapper >	getStylePropertyMapper();
+ 
+ 		/** clear any structures which have been build in the recent <method>examine</method> calls.
+ 		*/
+diff --git a/xmloff/source/forms/layerimport.cxx b/xmloff/source/forms/layerimport.cxx
+index da17b88..d50b131 100644
+--- xmloff/source/forms/layerimport.cxx
++++ xmloff/source/forms/layerimport.cxx
+@@ -314,8 +314,8 @@ namespace xmloff
+ 
+ 		// initialize our style map
+ 		m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory();
+-		::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr());
+-		m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.getBodyPtr(), _rImporter);
++		::rtl::Reference< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.get());
++		m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.get(), _rImporter);
+ 
+ 		// 'initialize'
+ 		m_aCurrentPageIds = m_aControlIds.end();
+@@ -518,7 +518,7 @@ namespace xmloff
+ 	}
+ 
+ 	//---------------------------------------------------------------------
+-	::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const
++	::rtl::Reference< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const
+ 	{
+ 		return m_xImportMapper;
+ 	}
+diff --git a/xmloff/source/forms/layerimport.hxx b/xmloff/source/forms/layerimport.hxx
+index bf1410d..6119b28 100644
+--- xmloff/source/forms/layerimport.hxx
++++ xmloff/source/forms/layerimport.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _COM_SUN_STAR_FORM_XFORMSSUPPLIER2_HPP_
+ #include <com/sun/star/form/XFormsSupplier2.hpp>
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ #ifndef _XMLOFF_FORMATTRIBUTES_HXX_
+ #include "formattributes.hxx"
+@@ -117,8 +117,8 @@ namespace xmloff
+ 
+ 	protected:
+ 		// style handling
+-		::vos::ORef< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
+-		::vos::ORef< SvXMLImportPropertyMapper >	m_xImportMapper;
++		::rtl::Reference< XMLPropertyHandlerFactory >	m_xPropertyHandlerFactory;
++		::rtl::Reference< SvXMLImportPropertyMapper >	m_xImportMapper;
+ 
+ 		DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >, MapString2PropertySet );
+ 		DECLARE_STL_MAP( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >, MapString2PropertySet, ODrawPageCompare, MapDrawPage2Map);
+@@ -197,7 +197,7 @@ namespace xmloff
+ 
+ 		/** retrieves the property mapper form form related auto styles.
+ 		*/
+-		::vos::ORef< SvXMLImportPropertyMapper > getStylePropertyMapper() const;
++		::rtl::Reference< SvXMLImportPropertyMapper > getStylePropertyMapper() const;
+ 
+ 		/** start importing the forms of the given page
+ 		*/
+diff --git a/xmloff/source/forms/propertyimport.hxx b/xmloff/source/forms/propertyimport.hxx
+index e08a1ca..4f6d13a 100644
+--- xmloff/source/forms/propertyimport.hxx
++++ xmloff/source/forms/propertyimport.hxx
+@@ -42,8 +42,8 @@
+ #ifndef _XMLOFF_FORMATTRIBUTES_HXX_
+ #include "formattributes.hxx"
+ #endif
+-#ifndef _VOS_REF_HXX_
+-#include <vos/ref.hxx>
++#ifndef _RTL_REF_HXX_
++#include <rtl/ref.hxx>
+ #endif
+ 
+ #ifndef _COMPHELPER_STLTYPES_HXX_
+diff --git a/xmloff/source/meta/xmlversion.cxx b/xmloff/source/meta/xmlversion.cxx
+index 1e398cf..2a80a37 100644
+--- xmloff/source/meta/xmlversion.cxx
++++ xmloff/source/meta/xmlversion.cxx
+@@ -86,7 +86,8 @@ class SvStringsDtor;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star;
+-using namespace ::rtl;
++
++using rtl::OUString;
+ 
+ // ------------------------------------------------------------------------
+ 
+diff --git a/xmloff/source/script/xmlscripti.cxx b/xmloff/source/script/xmlscripti.cxx
+index 247f5a3..11efad8 100644
+--- xmloff/source/script/xmlscripti.cxx
++++ xmloff/source/script/xmlscripti.cxx
+@@ -46,7 +46,6 @@
+ 
+ #include <com/sun/star/document/XEventsSupplier.hpp>
+ 
+-using namespace rtl;
+ using namespace com::sun::star;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+@@ -55,6 +54,7 @@ using namespace com::sun::star::document;
+ using namespace com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
+ 
+ // =============================================================================
+ // XMLScriptChildContext: context for <office:script> element
+diff --git a/xmloff/source/style/XMLBackgroundImageContext.cxx b/xmloff/source/style/XMLBackgroundImageContext.cxx
+index e7abcbd..71bb69c 100644
+--- xmloff/source/style/XMLBackgroundImageContext.cxx
++++ xmloff/source/style/XMLBackgroundImageContext.cxx
+@@ -70,13 +70,14 @@
+ #include "XMLBackgroundImageContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::io;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ enum SvXMLTokenMapAttrs
+ {
+ 	XML_TOK_BGIMG_HREF,
+diff --git a/xmloff/source/style/XMLFontStylesContext.cxx b/xmloff/source/style/XMLFontStylesContext.cxx
+index 7ca7ae4..fbaf4d9 100644
+--- xmloff/source/style/XMLFontStylesContext.cxx
++++ xmloff/source/style/XMLFontStylesContext.cxx
+@@ -66,7 +66,6 @@
+ #include <xmloff/XMLFontStylesContext.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -76,6 +75,7 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::awt;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
+ 
+ #define XML_STYLE_FAMILY_FONT 1
+ 
+diff --git a/xmloff/source/style/XMLPageExport.cxx b/xmloff/source/style/XMLPageExport.cxx
+index bf1b431..d765d35 100644
+--- xmloff/source/style/XMLPageExport.cxx
++++ xmloff/source/style/XMLPageExport.cxx
+@@ -91,7 +91,6 @@
+ #include "PageMasterExportPropMapper.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -99,6 +98,7 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
+ 
+ //______________________________________________________________________________
+ 
+diff --git a/xmloff/source/style/prstylei.cxx b/xmloff/source/style/prstylei.cxx
+index c6daaab..65d477e 100644
+--- xmloff/source/style/prstylei.cxx
++++ xmloff/source/style/prstylei.cxx
+@@ -85,7 +85,6 @@
+ #include "xmlerror.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -95,6 +94,7 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
+ 
+ void XMLPropStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
+ 										const OUString& rLocalName,
+diff --git a/xmloff/source/style/styleexp.cxx b/xmloff/source/style/styleexp.cxx
+index cd5cf0e..2f14521 100644
+--- xmloff/source/style/styleexp.cxx
++++ xmloff/source/style/styleexp.cxx
+@@ -114,7 +114,6 @@
+ #include <xmloff/XMLEventExport.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -125,6 +124,8 @@ using namespace ::xmloff::token;
+ 
+ using ::com::sun::star::document::XEventsSupplier;
+ 
++using rtl::OUString;
++
+ XMLStyleExport::XMLStyleExport(
+ 		SvXMLExport& rExp,
+ 		const ::rtl::OUString& rPoolStyleName,
+diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx
+index a443022..21ae215 100644
+--- xmloff/source/style/xmlexppr.cxx
++++ xmloff/source/style/xmlexppr.cxx
+@@ -108,7 +108,6 @@
+ #include <svtools/svstdarr.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::beans;
+@@ -116,6 +115,9 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ #define GET_PROP_TYPE( f ) static_cast<sal_uInt16>((f & XML_TYPE_PROP_MASK) >> XML_TYPE_PROP_SHIFT)
+ 
+ struct XMLPropTokens_Impl
+diff --git a/xmloff/source/style/xmlimppr.cxx b/xmloff/source/style/xmlimppr.cxx
+index 16f0842..59300dd 100644
+--- xmloff/source/style/xmlimppr.cxx
++++ xmloff/source/style/xmlimppr.cxx
+@@ -109,7 +109,6 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::xml;
+ using namespace ::com::sun::star::xml::sax;
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::xmloff::token;
+ using ::com::sun::star::lang::IllegalArgumentException;
+@@ -117,6 +116,8 @@ using ::com::sun::star::lang::WrappedTargetException;
+ using ::com::sun::star::beans::UnknownPropertyException;
+ using ::com::sun::star::beans::PropertyVetoException;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ SvXMLImportPropertyMapper::SvXMLImportPropertyMapper(
+         const UniReference< XMLPropertySetMapper >& rMapper,
+diff --git a/xmloff/source/style/xmlnume.cxx b/xmloff/source/style/xmlnume.cxx
+index da60dae..d2a7b44 100644
+--- xmloff/source/style/xmlnume.cxx
++++ xmloff/source/style/xmlnume.cxx
+@@ -115,7 +115,6 @@
+ #include <vcl/vclenum.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -124,6 +123,9 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE[] = "SymbolTextDistance";
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_PARENT_NUMBERING[] = "ParentNumbering";
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_CHAR_STYLE_NAME[] = "CharStyleName";
+diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx
+index 77b3022..32eb5c1 100644
+--- xmloff/source/style/xmlnumi.cxx
++++ xmloff/source/style/xmlnumi.cxx
+@@ -112,7 +112,7 @@
+ 
+ #define _SVSTDARR_USHORTS
+ #include <svtools/svstdarr.hxx>
+-using namespace ::rtl;
++
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -124,6 +124,9 @@ using namespace ::com::sun::star::frame;
+ using namespace ::xmloff::token;
+ using namespace ::com::sun::star::io;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE[] =
+ 		"SymbolTextDistance";
+ static sal_Char __READONLY_DATA XML_UNO_NAME_NRULE_PARENT_NUMBERING[] =
+diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx
+index 5a10bc2..d30c092 100644
+--- xmloff/source/style/xmlstyle.cxx
++++ xmloff/source/style/xmlstyle.cxx
+@@ -150,13 +150,14 @@
+ #include "PageMasterImportPropMapper.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::style;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ // ---------------------------------------------------------------------
+ 
+ static __FAR_DATA SvXMLTokenMapEntry aStyleStylesElemTokenMap[] =
+diff --git a/xmloff/source/text/XMLCalculationSettingsContext.cxx b/xmloff/source/text/XMLCalculationSettingsContext.cxx
+index ceaba0d..dbbb3ef 100644
+--- xmloff/source/text/XMLCalculationSettingsContext.cxx
++++ xmloff/source/text/XMLCalculationSettingsContext.cxx
+@@ -62,12 +62,13 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ XMLCalculationSettingsContext::XMLCalculationSettingsContext( SvXMLImport& rImport, 
+ 									sal_uInt16 p_nPrefix,
+ 									const ::rtl::OUString& rLocalName,
+diff --git a/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx b/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx
+index e6cfd53..3154d4b 100644
+--- xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx
++++ xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx
+@@ -108,7 +108,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::uno;
+@@ -116,6 +115,9 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ //
+ //  XMLFootnoteConfigHelper
+ //
+diff --git a/xmloff/source/text/XMLFootnoteImportContext.cxx b/xmloff/source/text/XMLFootnoteImportContext.cxx
+index d9d2e2d..23e18f1 100644
+--- xmloff/source/text/XMLFootnoteImportContext.cxx
++++ xmloff/source/text/XMLFootnoteImportContext.cxx
+@@ -101,8 +101,6 @@
+ #endif
+ 
+ 
+-
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::lang;
+@@ -110,6 +108,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1(XMLFootnoteImportContext, SvXMLImportContext);
+ 
+ const sal_Char sAPI_service_footnote[] = "com.sun.star.text.Footnote";
+diff --git a/xmloff/source/text/XMLTextColumnsContext.cxx b/xmloff/source/text/XMLTextColumnsContext.cxx
+index 257e375..b0e5e74 100644
+--- xmloff/source/text/XMLTextColumnsContext.cxx
++++ xmloff/source/text/XMLTextColumnsContext.cxx
+@@ -76,7 +76,6 @@
+ #define _SVSTDARR_USHORTS
+ #include <svtools/svstdarr.hxx>
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -85,6 +84,8 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ enum SvXMLTokenMapAttrs
+ {
+ 	XML_TOK_COLUMN_WIDTH,
+diff --git a/xmloff/source/text/XMLTextColumnsExport.cxx b/xmloff/source/text/XMLTextColumnsExport.cxx
+index cdef0b9..919cb8b 100644
+--- xmloff/source/text/XMLTextColumnsExport.cxx
++++ xmloff/source/text/XMLTextColumnsExport.cxx
+@@ -80,9 +80,10 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+-using namespace ::rtl;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ XMLTextColumnsExport::XMLTextColumnsExport( SvXMLExport& rExp ) :
+ 	rExport( rExp ),
+diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx
+index 54b2c33..bb44fc4 100644
+--- xmloff/source/text/XMLTextFrameContext.cxx
++++ xmloff/source/text/XMLTextFrameContext.cxx
+@@ -148,7 +148,6 @@
+ #include <map>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -161,6 +160,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::xmloff::token;
+ using ::com::sun::star::document::XEventsSupplier;
+ 
++using rtl::OUString;
++
+ #define XML_TEXT_FRAME_TEXTBOX 1
+ #define XML_TEXT_FRAME_GRAPHIC 2
+ #define XML_TEXT_FRAME_OBJECT 3
+diff --git a/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx b/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
+index dea13c7..0ad7909 100644
+--- xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
++++ xmloff/source/text/XMLTextFrameHyperlinkContext.cxx
+@@ -63,13 +63,14 @@
+ #include <txtparaimphint.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLTextFrameHyperlinkContext, SvXMLImportContext );
+ 
+ XMLTextFrameHyperlinkContext::XMLTextFrameHyperlinkContext(
+diff --git a/xmloff/source/text/XMLTextHeaderFooterContext.cxx b/xmloff/source/text/XMLTextHeaderFooterContext.cxx
+index 6bb4dc1..6b133d8 100644
+--- xmloff/source/text/XMLTextHeaderFooterContext.cxx
++++ xmloff/source/text/XMLTextHeaderFooterContext.cxx
+@@ -59,7 +59,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -70,6 +69,7 @@ using namespace ::com::sun::star::beans;
+ //using namespace ::com::sun::star::lang;
+ //using namespace ::com::sun::star::text;
+ 
++using rtl::OUString;
+ 
+ TYPEINIT1( XMLTextHeaderFooterContext, SvXMLImportContext );
+ 
+diff --git a/xmloff/source/text/XMLTextListAutoStylePool.cxx b/xmloff/source/text/XMLTextListAutoStylePool.cxx
+index a86d1ae..c80c04a 100644
+--- xmloff/source/text/XMLTextListAutoStylePool.cxx
++++ xmloff/source/text/XMLTextListAutoStylePool.cxx
+@@ -69,13 +69,14 @@
+ #include <xmloff/xmlexp.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::style;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ int XMLTextListAutoStylePoolNameCmp_Impl( const OUString& r1,
+ 									 	  const OUString& r2 )
+diff --git a/xmloff/source/text/XMLTextListBlockContext.cxx b/xmloff/source/text/XMLTextListBlockContext.cxx
+index 0325720..65428f8 100644
+--- xmloff/source/text/XMLTextListBlockContext.cxx
++++ xmloff/source/text/XMLTextListBlockContext.cxx
+@@ -76,7 +76,6 @@
+ #include "XMLTextListBlockContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+@@ -84,6 +83,8 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLTextListBlockContext, SvXMLImportContext );
+ 
+ XMLTextListBlockContext::XMLTextListBlockContext(
+diff --git a/xmloff/source/text/XMLTextListItemContext.cxx b/xmloff/source/text/XMLTextListItemContext.cxx
+index af91d90..4d8be03 100644
+--- xmloff/source/text/XMLTextListItemContext.cxx
++++ xmloff/source/text/XMLTextListItemContext.cxx
+@@ -67,11 +67,12 @@
+ #include "XMLTextListItemContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLTextListItemContext, SvXMLImportContext );
+ 
+ XMLTextListItemContext::XMLTextListItemContext(
+diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx
+index 8a7add5..b22461d 100644
+--- xmloff/source/text/XMLTextMarkImportContext.cxx
++++ xmloff/source/text/XMLTextMarkImportContext.cxx
+@@ -89,7 +89,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -97,6 +96,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
++
++using rtl::OUString;
+ 	
+ TYPEINIT1( XMLTextMarkImportContext, SvXMLImportContext);
+ 
+diff --git a/xmloff/source/text/XMLTextMasterPageContext.cxx b/xmloff/source/text/XMLTextMasterPageContext.cxx
+index fffb133..1b7ec48 100644
+--- xmloff/source/text/XMLTextMasterPageContext.cxx
++++ xmloff/source/text/XMLTextMasterPageContext.cxx
+@@ -71,7 +71,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -83,6 +82,8 @@ using namespace ::com::sun::star::lang;
+ //using namespace ::com::sun::star::text;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ Reference < XStyle > XMLTextMasterPageContext::Create()
+ {
+ 	Reference < XStyle > xNewStyle;
+diff --git a/xmloff/source/text/XMLTextMasterPageExport.cxx b/xmloff/source/text/XMLTextMasterPageExport.cxx
+index 267a471..3793775 100644
+--- xmloff/source/text/XMLTextMasterPageExport.cxx
++++ xmloff/source/text/XMLTextMasterPageExport.cxx
+@@ -64,7 +64,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+diff --git a/xmloff/source/text/XMLTextMasterStylesContext.cxx b/xmloff/source/text/XMLTextMasterStylesContext.cxx
+index 3b8a38e..9358332 100644
+--- xmloff/source/text/XMLTextMasterStylesContext.cxx
++++ xmloff/source/text/XMLTextMasterStylesContext.cxx
+@@ -61,10 +61,11 @@
+ #include <xmloff/XMLTextMasterStylesContext.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ using ::xmloff::token::IsXMLToken;
+ using ::xmloff::token::XML_MASTER_PAGE;
+ 
+diff --git a/xmloff/source/text/XMLTextShapeImportHelper.cxx b/xmloff/source/text/XMLTextShapeImportHelper.cxx
+index e419c76..2693a5d 100644
+--- xmloff/source/text/XMLTextShapeImportHelper.cxx
++++ xmloff/source/text/XMLTextShapeImportHelper.cxx
+@@ -69,7 +69,6 @@
+ #include "XMLTextShapeImportHelper.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::drawing;
+@@ -78,6 +77,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ XMLTextShapeImportHelper::XMLTextShapeImportHelper(
+ 		SvXMLImport& rImp ) :
+ 	XMLShapeImportHelper( rImp, rImp.GetModel(),
+diff --git a/xmloff/source/text/XMLTextShapeStyleContext.cxx b/xmloff/source/text/XMLTextShapeStyleContext.cxx
+index 3a50524..27cc309 100644
+--- xmloff/source/text/XMLTextShapeStyleContext.cxx
++++ xmloff/source/text/XMLTextShapeStyleContext.cxx
+@@ -74,7 +74,6 @@
+ #include <xmloff/XMLTextShapeStyleContext.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+@@ -82,6 +81,8 @@ using namespace ::com::sun::star::style;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ class XMLTextShapePropertySetContext_Impl : public XMLShapePropertySetContext
+ {
+ public:
+diff --git a/xmloff/source/text/txtdropi.cxx b/xmloff/source/text/txtdropi.cxx
+index 5dd2cdf..7f9e3a9 100644
+--- xmloff/source/text/txtdropi.cxx
++++ xmloff/source/text/txtdropi.cxx
+@@ -61,12 +61,12 @@
+ #include <xmloff/xmltoken.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
+ 
+ enum SvXMLTokenMapDropAttrs
+ {
+diff --git a/xmloff/source/text/txtexppr.cxx b/xmloff/source/text/txtexppr.cxx
+index d2a30af..d27ff50 100644
+--- xmloff/source/text/txtexppr.cxx
++++ xmloff/source/text/txtexppr.cxx
+@@ -78,7 +78,6 @@
+ #include "XMLSectionFootnoteConfigExport.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -86,6 +85,8 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::awt;
+ 
++using rtl::OUString;
++
+ void XMLTextExportPropertySetMapper::handleElementItem(
+         SvXMLExport& rExp,
+ 		const XMLPropertyState& rProperty,
+diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx
+index ea93dd9..6af4bdd 100644
+--- xmloff/source/text/txtflde.cxx
++++ xmloff/source/text/txtflde.cxx
+@@ -210,7 +210,6 @@
+ 
+ #include <vector>
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -223,6 +222,8 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::container;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ static sal_Char __READONLY_DATA FIELD_SERVICE_SENDER[] = "ExtendedUser";
+ static sal_Char __READONLY_DATA FIELD_SERVICE_AUTHOR[] = "Author";
+diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx
+index f763072..5daef73 100644
+--- xmloff/source/text/txtfldi.cxx
++++ xmloff/source/text/txtfldi.cxx
+@@ -203,7 +203,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -214,6 +213,8 @@ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ //
+ // SO API string constants
+diff --git a/xmloff/source/text/txtftne.cxx b/xmloff/source/text/txtftne.cxx
+index 1a98fb0..f19f216 100644
+--- xmloff/source/text/txtftne.cxx
++++ xmloff/source/text/txtftne.cxx
+@@ -130,7 +130,6 @@
+ #include <xmloff/txtparae.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -139,6 +138,8 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::container;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
+ 
+ void XMLTextParagraphExport::exportTextFootnote(
+ 	const Reference<XPropertySet> & rPropSet,
+diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
+index 9039b4a..ad51154 100644
+--- xmloff/source/text/txtimp.cxx
++++ xmloff/source/text/txtimp.cxx
+@@ -198,7 +198,6 @@
+ #endif
+ // <--
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -213,6 +212,9 @@ using namespace ::xmloff::token;
+ using ::com::sun::star::util::DateTime;
+ using namespace ::com::sun::star::ucb;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ #if SUPD > 632 || DVO_TEST
+ using ::comphelper::UStringLess;
+ #endif
+diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
+index 2b14998..6503189 100644
+--- xmloff/source/text/txtparae.cxx
++++ xmloff/source/text/txtparae.cxx
+@@ -267,7 +267,6 @@
+ #endif
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -282,6 +281,9 @@ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::frame;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ typedef OUString *OUStringPtr;
+ SV_DECL_PTRARR_DEL( OUStrings_Impl, OUStringPtr, 20, 10 )
+diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx
+index dafa2a8..6852acf 100644
+--- xmloff/source/text/txtparai.cxx
++++ xmloff/source/text/txtparai.cxx
+@@ -144,7 +144,6 @@ SV_IMPL_PTRARR( XMLHints_Impl, XMLHint_ImplPtr )
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+@@ -154,6 +153,9 @@ using namespace ::xmloff::token;
+ using ::com::sun::star::container::XEnumerationAccess;
+ using ::com::sun::star::container::XEnumeration;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ TYPEINIT1( XMLCharContext, SvXMLImportContext );
+ 
+diff --git a/xmloff/source/text/txtparaimphint.hxx b/xmloff/source/text/txtparaimphint.hxx
+index 6826c0a..446771f 100644
+--- xmloff/source/text/txtparaimphint.hxx
++++ xmloff/source/text/txtparaimphint.hxx
+@@ -60,12 +60,13 @@
+ #include <xmloff/XMLEventsImportContext.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::text;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ // ---------------------------------------------------------------------
+ 
+ #define XML_HINT_STYLE 1
+diff --git a/xmloff/source/text/txtstyle.cxx b/xmloff/source/text/txtstyle.cxx
+index cb103e6..282ff39 100644
+--- xmloff/source/text/txtstyle.cxx
++++ xmloff/source/text/txtstyle.cxx
+@@ -99,7 +99,6 @@
+ //#include <xmloff/styleexp.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::style;
+@@ -107,6 +106,9 @@ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::beans;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ void XMLTextParagraphExport::exportStyleAttributes(
+ 		const ::com::sun::star::uno::Reference<
+ 				::com::sun::star::style::XStyle > & rStyle )
+diff --git a/xmloff/source/text/txtstyli.cxx b/xmloff/source/text/txtstyli.cxx
+index 2da08f1..d181cd5 100644
+--- xmloff/source/text/txtstyli.cxx
++++ xmloff/source/text/txtstyli.cxx
+@@ -104,7 +104,6 @@
+ #include <utility>
+ #include <vector>
+ 
+-using namespace ::rtl;
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+@@ -114,6 +113,8 @@ using namespace ::com::sun::star::frame;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::container;
++
++using rtl::OUString;
+ //using namespace ::com::sun::star::text;
+ using namespace ::xmloff::token;
+ 
+diff --git a/xmloff/source/text/txtvfldi.cxx b/xmloff/source/text/txtvfldi.cxx
+index ac2b9d3..99febc3 100644
+--- xmloff/source/text/txtvfldi.cxx
++++ xmloff/source/text/txtvfldi.cxx
+@@ -158,7 +158,6 @@ static const sal_Char sAPI_sequence_value[]		= "SequenceValue";
+ static const sal_Char sAPI_is_fixed_language[] = "IsFixedLanguage";
+ 
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+@@ -166,6 +165,9 @@ using namespace ::com::sun::star::text;
+ using namespace ::com::sun::star::style;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
+ 
+ 
+ //
+diff --git a/xmloff/source/transform/ChartOASISTContext.cxx b/xmloff/source/transform/ChartOASISTContext.cxx
+index c2c265c..ad17970 100644
+--- xmloff/source/transform/ChartOASISTContext.cxx
++++ xmloff/source/transform/ChartOASISTContext.cxx
+@@ -58,11 +58,12 @@
+ #include "TransformerBase.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ // -----------------------------------------------------------------------------
+ 
+ TYPEINIT1( XMLChartOASISTransformerContext, XMLTransformerContext );
+diff --git a/xmloff/source/transform/ChartOOoTContext.cxx b/xmloff/source/transform/ChartOOoTContext.cxx
+index 9d2d291..130d387 100644
+--- xmloff/source/transform/ChartOOoTContext.cxx
++++ xmloff/source/transform/ChartOOoTContext.cxx
+@@ -58,11 +58,12 @@
+ #include "TransformerBase.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ // -----------------------------------------------------------------------------
+ 
+ TYPEINIT1( XMLChartOOoTransformerContext, XMLTransformerContext );
+diff --git a/xmloff/source/transform/ControlOOoTContext.cxx b/xmloff/source/transform/ControlOOoTContext.cxx
+index 7d2df74..7df6df8 100644
+--- xmloff/source/transform/ControlOOoTContext.cxx
++++ xmloff/source/transform/ControlOOoTContext.cxx
+@@ -61,11 +61,12 @@
+ #include "TransformerBase.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLControlOOoTransformerContext, XMLTransformerContext );
+ 
+ XMLControlOOoTransformerContext::XMLControlOOoTransformerContext( 
+diff --git a/xmloff/source/transform/DlgOASISTContext.cxx b/xmloff/source/transform/DlgOASISTContext.cxx
+index 2e491e3..cfcd202 100644
+--- xmloff/source/transform/DlgOASISTContext.cxx
++++ xmloff/source/transform/DlgOASISTContext.cxx
+@@ -58,11 +58,12 @@
+ #include "TransformerBase.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ // -----------------------------------------------------------------------------
+ 
+ TYPEINIT1( XMLDlgOASISTransformerContext, XMLTransformerContext);
+diff --git a/xmloff/source/transform/DocumentTContext.cxx b/xmloff/source/transform/DocumentTContext.cxx
+index 6b1142b..aeffe8b 100644
+--- xmloff/source/transform/DocumentTContext.cxx
++++ xmloff/source/transform/DocumentTContext.cxx
+@@ -72,12 +72,13 @@
+ #include "DocumentTContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::xmloff::token;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::beans;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLDocumentTransformerContext, XMLTransformerContext );
+ 
+ XMLDocumentTransformerContext::XMLDocumentTransformerContext( XMLTransformerBase& rImp, 
+diff --git a/xmloff/source/transform/EventOASISTContext.cxx b/xmloff/source/transform/EventOASISTContext.cxx
+index c05cfa9..22f0022 100644
+--- xmloff/source/transform/EventOASISTContext.cxx
++++ xmloff/source/transform/EventOASISTContext.cxx
+@@ -74,11 +74,12 @@
+ 
+ #include <hash_map>
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ class XMLTransformerOASISEventMap_Impl:
+ 	public ::std::hash_map< NameKey_Impl, ::rtl::OUString, 
+ 						    NameHash_Impl, NameHash_Impl >
+diff --git a/xmloff/source/transform/FrameOASISTContext.cxx b/xmloff/source/transform/FrameOASISTContext.cxx
+index ca78281..10701f9 100644
+--- xmloff/source/transform/FrameOASISTContext.cxx
++++ xmloff/source/transform/FrameOASISTContext.cxx
+@@ -61,11 +61,12 @@
+ #include "TransformerBase.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLFrameOASISTransformerContext, XMLTransformerContext );
+ 
+ sal_Bool XMLFrameOASISTransformerContext::IsLinkedEmbeddedObject(
+diff --git a/xmloff/source/transform/PersAttrListTContext.cxx b/xmloff/source/transform/PersAttrListTContext.cxx
+index a7ad07d..c48d02c 100644
+--- xmloff/source/transform/PersAttrListTContext.cxx
++++ xmloff/source/transform/PersAttrListTContext.cxx
+@@ -56,11 +56,12 @@
+ #include "PersAttrListTContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLPersAttrListTContext, XMLTransformerContext );
+ 
+ void XMLPersAttrListTContext::AddAttribute(
+diff --git a/xmloff/source/transform/ProcAddAttrTContext.cxx b/xmloff/source/transform/ProcAddAttrTContext.cxx
+index de6eaf9..743640a 100644
+--- xmloff/source/transform/ProcAddAttrTContext.cxx
++++ xmloff/source/transform/ProcAddAttrTContext.cxx
+@@ -49,11 +49,12 @@
+ #include <xmloff/nmspmap.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLProcAddAttrTransformerContext, XMLProcAttrTransformerContext);
+ 
+ XMLProcAddAttrTransformerContext::XMLProcAddAttrTransformerContext( 
+diff --git a/xmloff/source/transform/ProcAttrTContext.cxx b/xmloff/source/transform/ProcAttrTContext.cxx
+index 1f63425..ad82a26 100644
+--- xmloff/source/transform/ProcAttrTContext.cxx
++++ xmloff/source/transform/ProcAttrTContext.cxx
+@@ -52,11 +52,12 @@
+ #include <xmloff/nmspmap.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::xmloff::token;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLProcAttrTransformerContext, XMLTransformerContext );
+ 
+ XMLProcAttrTransformerContext::XMLProcAttrTransformerContext( 
+diff --git a/xmloff/source/transform/RenameElemTContext.cxx b/xmloff/source/transform/RenameElemTContext.cxx
+index 2a040f8..d66ad68 100644
+--- xmloff/source/transform/RenameElemTContext.cxx
++++ xmloff/source/transform/RenameElemTContext.cxx
+@@ -49,10 +49,11 @@
+ #include <xmloff/nmspmap.hxx>
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ TYPEINIT1( XMLRenameElemTransformerContext, XMLTransformerContext );
+ 
+ XMLRenameElemTransformerContext::XMLRenameElemTransformerContext( 
+diff --git a/xmloff/source/transform/TransformerContext.cxx b/xmloff/source/transform/TransformerContext.cxx
+index 500e8ef..1a0a912 100644
+--- xmloff/source/transform/TransformerContext.cxx
++++ xmloff/source/transform/TransformerContext.cxx
+@@ -60,10 +60,11 @@
+ #include "TransformerContext.hxx"
+ #endif
+ 
+-using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ 
++using rtl::OUString;
++
+ TYPEINIT0( XMLTransformerContext );
+ 
+ sal_Bool XMLTransformerContext::HasQName( sal_uInt16 nPrefix, 
+diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx
+index 3eed10b..e6b6909 100644
+--- connectivity/source/drivers/file/FResultSet.cxx
++++ connectivity/source/drivers/file/FResultSet.cxx
+@@ -869,7 +869,7 @@ BOOL OResultSet::ExecuteRow(IResultSetHelper::Movement eFirstCursorPosition,
+ 	IResultSetHelper::Movement eCursorPosition = eFirstCursorPosition;
+ 	INT32  nOffset = nFirstOffset;
+ 
+-    const OSQLColumns & rTableCols = m_pTable->getTableColumns().getBody();
++    const OSQLColumns & rTableCols = *(m_pTable->getTableColumns());
+     BOOL bHasRestriction = m_pSQLAnalyzer->hasRestriction();
+ again:
+ 
+diff --git a/dbaccess/source/ui/querydesign/ConnectionLine.cxx b/dbaccess/source/ui/querydesign/ConnectionLine.cxx
+index f2e7ca4..152ff22 100644
+--- dbaccess/source/ui/querydesign/ConnectionLine.cxx
++++ dbaccess/source/ui/querydesign/ConnectionLine.cxx
+@@ -357,7 +357,7 @@ void OConnectionLine::Draw( OutputDevice* pOutDev )
+ // -----------------------------------------------------------------------------
+ BOOL OConnectionLine::IsValid() const
+ {
+-	return m_pData.isValid();
++	return m_pData.is();
+ }
+ //------------------------------------------------------------------------
+ double dist_Euklid(const Point &p1, const Point& p2,const Point& pM, Point& q)
+diff --git a/svx/source/toolbars/fontworkbar.cxx b/svx/source/toolbars/fontworkbar.cxx
+index 2ede95e..f42508c 100644
+--- svx/source/toolbars/fontworkbar.cxx
++++ svx/source/toolbars/fontworkbar.cxx
+@@ -103,7 +103,6 @@
+ #include "fontworkgallery.hxx"
+ 
+ using namespace ::svx;
+-using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::beans;
+diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx
+index cdec010..fc6bb63 100644
+--- xmloff/source/draw/ximpshap.cxx
++++ xmloff/source/draw/ximpshap.cxx
+@@ -234,7 +234,7 @@
+ #endif
+ // <--
+ 
+-using namespace ::rtl;
++using ::rtl::OUString;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::drawing;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/filter-xhtml-title-title.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/filter-xhtml-title-title.diff
@@ -0,0 +1,15 @@
+--- filter/source/xslt/export/xhtml/header.xsl	2007-08-06 07:26:49.453125000 +0200
++++ filter/source/xslt/export/xhtml/header.xsl	2007-08-06 07:27:22.984375000 +0200
+@@ -212,9 +212,9 @@
+ 				<xsl:when test="$globalData/meta-file/*/office:meta/dc:title">
+ 					<xsl:value-of select="$globalData/meta-file/*/office:meta/dc:title" />
+ 				</xsl:when>
+-				<!--<xsl:otherwise>
+-					<xsl:text>- no title specified</xsl:text>
+-				</xsl:otherwise>-->
++				<xsl:otherwise>
++					<xsl:text> </xsl:text>
++				</xsl:otherwise>
+ 			</xsl:choose>
+ 		</xsl:element>
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wpgimporter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wpgimporter.diff
@@ -0,0 +1,1413 @@
+--- config_office/configure.in	7 May 2007 09:28:02 -0000	1.189.2.5
++++ config_office/configure.in	7 May 2007 13:46:58 -0000
+@@ -299,6 +299,9 @@
+ AC_ARG_WITH(system-libwps,
+ [  --with-system-libwps    Use libwps already on system
+ ],,)
++AC_ARG_WITH(system-libwpg,
++[  --with-system-libwpg    Use libwpg already on system
++],,)
+ AC_ARG_WITH(system-libxml,
+ [  --with-system-libxml    Use libxml already on system
+ ],,)
+@@ -3021,6 +3024,24 @@
+ AC_SUBST(LIBWPS_LIBS)
+ 
+ dnl ===================================================================
++dnl Check for system libwpg
++dnl ===================================================================
++AC_MSG_CHECKING([which libwpg to use])
++if test -n "$with_system_libwpg" -o -n "$with_system_libs" && \
++        test "$with_system_libwpg" != "no"; then
++    AC_MSG_RESULT([external])
++    SYSTEM_LIBWPG=YES
++    PKG_CHECK_MODULES( LIBWPG, libwpg-0.1 )
++else
++    AC_MSG_RESULT([internal])
++    SYSTEM_LIBWPG=NO
++    BUILD_TYPE="$BUILD_TYPE LIBWPG"
++fi
++AC_SUBST(SYSTEM_LIBWPG)
++AC_SUBST(LIBWPG_CFLAGS)
++AC_SUBST(LIBWPG_LIBS)
++
++dnl ===================================================================
+ dnl Check whether freetype2 supports emboldening
+ dnl ===================================================================
+ if test "$SYSTEM_FREETYPE" = "YES" ; then
+--- config_office/set_soenv.in	7 May 2007 09:28:12 -0000	1.127.2.5
++++ config_office/set_soenv.in	7 May 2007 13:47:01 -0000
+@@ -1820,6 +1820,9 @@
+ ToFile( "SYSTEM_LIBWPS",     "@SYSTEM_LIBWPS@",    "e" );
+ ToFile( "LIBWPS_CFLAGS",     "@LIBWPS_CFLAGS@",    "e" );
+ ToFile( "LIBWPS_LIBS",       "@LIBWPS_LIBS@",      "e" );
++ToFile( "SYSTEM_LIBWPG",     "@SYSTEM_LIBWPG@",    "e" );
++ToFile( "LIBWPG_CFLAGS",     "@LIBWPG_CFLAGS@",    "e" );
++ToFile( "LIBWPG_LIBS",       "@LIBWPG_LIBS@",      "e" );
+ ToFile( "SYSTEM_LIBXML",     "@SYSTEM_LIBXML@",    "e" );
+ ToFile( "USE_FT_EMBOLDEN",   "@USE_FT_EMBOLDEN@",  "e" );
+ ToFile( "LIBXML_CFLAGS",     "@LIBXML_CFLAGS@",    "e" );
+--- /dev/null	2007-04-19 15:48:30.000000000 +0200
++++ filter/source/config/fragments/filters/WordPerfectGraphics.xcu	2007-05-07 13:20:27.000000000 +0200
+@@ -0,0 +1,14 @@
++    <node oor:name="WordPerfect Graphics" oor:op="replace">
++        <prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
++        <prop oor:name="UIComponent"/>
++        <prop oor:name="FilterService"><value>com.sun.star.comp.Draw.WPGImportFilter</value></prop>
++        <prop oor:name="UserData"><value></value></prop>
++        <prop oor:name="UIName">
++            <value xml:lang="x-default">WordPerfect Graphics</value>
++        </prop>
++        <prop oor:name="Installed"><value>true</value></prop>
++        <prop oor:name="FileFormatVersion"><value>0</value></prop>
++        <prop oor:name="Type"><value>draw_WordPerfect_Graphics</value></prop>
++        <prop oor:name="TemplateName"/>
++        <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
++    </node>
+--- /dev/null	2007-04-19 15:48:30.000000000 +0200
++++ filter/source/config/fragments/types/draw_WordPerfect_Graphics.xcu	2007-05-07 13:20:11.000000000 +0200
+@@ -0,0 +1,12 @@
++		<node oor:name="draw_WordPerfect_Graphics" oor:op="replace" >
++			<prop oor:name="DetectService"><value>com.sun.star.comp.Draw.WPGImportFilter</value></prop>
++			<prop oor:name="URLPattern"/>
++			<prop oor:name="Extensions"><value>wpg</value></prop>
++			<prop oor:name="MediaType"><value>image/x-wpg</value></prop>
++			<prop oor:name="Preferred"><value>true</value></prop>
++			<prop oor:name="PreferredFilter"><value>WordPerfect Graphics</value></prop>
++			<prop oor:name="UIName">
++				<value>WordPerfect Graphics</value>
++			</prop>
++			<prop oor:name="ClipboardFormat"/>
++		</node>
+--- filter/source/config/fragments/fcfg_draw.mk	14 Jul 2005 15:02:56 -0000	1.6
++++ filter/source/config/fragments/fcfg_draw.mk	7 May 2007 13:50:06 -0000
+@@ -24,7 +24,8 @@
+     draw_StarOffice_XML_Draw_Template \
+     pdf_Portable_Document_Format\
+     draw8 \
+-    draw8_template
++    draw8_template \
++    draw_WordPerfect_Graphics
+ 
+ # -----------------------------------------------
+ # count = 9
+@@ -34,7 +35,9 @@
+     draw_StarOffice_XML_Draw_Template \
+     draw_pdf_Export \
+     draw8 \
+-    draw8_template
++    draw8_template \
++    WordPerfectGraphics
++
+ 
+ # -----------------------------------------------
+ # count = 6
+--- scp2/source/graphicfilter/file_graphicfilter.scp	20 Jun 2006 04:52:21 -0000	1.11
++++ scp2/source/graphicfilter/file_graphicfilter.scp	7 May 2007 13:55:23 -0000
+@@ -67,3 +67,5 @@
+ 
+ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Svg, svgfilter )
+ 
++STD_UNO_LIB_FILE_PATCH( gid_File_Lib_WPGImport, wpgimport )
++
+--- scp2/source/graphicfilter/module_graphicfilter.scp	9 Sep 2005 01:28:30 -0000	1.4
++++ scp2/source/graphicfilter/module_graphicfilter.scp	6 Jun 2007 07:53:53 -0000
+@@ -39,7 +39,7 @@
+     MOD_NAME_DESC ( MODULE_OPTIONAL_GRFFLT );
+     ParentID = gid_Module_Optional;
+     Default = YES;
+-    Files = (gid_File_Lib_Svg, gid_File_Lib_Flash,
++    Files = (gid_File_Lib_Svg, gid_File_Lib_Flash, gid_File_Lib_WPGImport,
+     		 gid_File_Registry_Spool_Oo_TypeDetection_ImpressGraphics_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_ImpressGraphics_Filters_Xcu,
+     		 gid_File_Registry_Spool_Oo_TypeDetection_DrawGraphics_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_DrawGraphics_Filters_Xcu);
+ End
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/source/wpgimp/makefile.mk	2007-05-07 21:26:47.000000000 +0200
+@@ -0,0 +1,35 @@
++PRJ=..$/..
++
++PRJNAME=writerperfect
++TARGET=wpgimp
++ENABLE_EXCEPTIONS=true
++
++.INCLUDE :  settings.mk
++
++.IF "$(SYSTEM_LIBWPD)" == "YES"
++INCPRE+=$(LIBWPD_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++.ENDIF
++
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++INCPRE+=$(LIBWPS_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
++.ENDIF
++
++.IF "$(SYSTEM_LIBWPG)" == "YES"
++INCPRE+=$(LIBWPG_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpg
++.ENDIF
++
++# broken but ... necessary, internal include shafted ...
++INCPRE+= -I..
++
++SLOFILES= \
++    $(SLO)$/OdgExporter.obj  \
++    $(SLO)$/WPGImportFilter.obj \
++	$(SLO)$/wpgimport_genericfilter.obj		
++
++.INCLUDE :  target.mk
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/source/wpgimp/OdgExporter.cxx	2007-06-11 15:13:42.000000000 +0200
+@@ -0,0 +1,510 @@
++/* libwpg
++ * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
++ * Copyright (C) 2006-2007 Fridrich Strba (fridrich.strba@bluewin.ch)
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the 
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
++ * Boston, MA  02111-1301 USA
++ *
++ * For further information visit http://libwpg.sourceforge.net
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#include "OdgExporter.hxx"
++#include "filter/DocumentElement.hxx"
++#include "filter/DocumentHandler.hxx"
++#include <rtl/math.hxx>
++
++
++OdgExporter::OdgExporter(DocumentHandler *pHandler):
++	mpHandler(pHandler),
++	m_fillRule(AlternatingFill),
++	m_gradientIndex(1),
++	m_dashIndex(1), 
++	m_styleIndex(1)
++{
++}
++
++OdgExporter::~OdgExporter()
++{
++}
++
++void OdgExporter::startDocument(double width, double height)
++{
++	m_gradientIndex = 1;
++	m_dashIndex = 1;
++	m_styleIndex = 1;
++
++	mpHandler->startDocument();
++	TagOpenElement tmpOfficeDocumentContent("office:document");
++	tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/");
++	tmpOfficeDocumentContent.addAttribute("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
++	tmpOfficeDocumentContent.addAttribute("office:version", "1.0");	
++	tmpOfficeDocumentContent.write(mpHandler);
++
++	TagOpenElement("office:styles").write(mpHandler);
++	TagCloseElement("office:styles").write(mpHandler);
++	
++	TagOpenElement("office:automatic-styles").write(mpHandler);
++
++	TagOpenElement tmpStylePageLayoutOpenElement("style:page-layout");
++	tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0");
++	tmpStylePageLayoutOpenElement.write(mpHandler);
++
++	TagOpenElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0cm");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0cm");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0cm");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0cm");
++	WPXString sValue;
++	sValue = doubleToString(2.54 * width); sValue.append("cm");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", sValue);
++	sValue = doubleToString(2.54 * height); sValue.append("cm");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", sValue);
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait");
++	tmpStylePageLayoutPropertiesOpenElement.write(mpHandler);
++
++	TagCloseElement("style:page-layout-properties").write(mpHandler);
++
++	TagCloseElement("style:page-layout").write(mpHandler);
++
++	TagOpenElement tmpStyleStyleOpenElement("style:style");
++	tmpStyleStyleOpenElement.addAttribute("style:name", "dp1");
++	tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page");
++	tmpStyleStyleOpenElement.write(mpHandler);
++
++	TagOpenElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties");
++	tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border");
++	tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none");
++	tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler);
++
++	TagCloseElement("style:drawing-page-properties").write(mpHandler);
++
++	TagCloseElement("style:style").write(mpHandler);
++}
++
++void OdgExporter::endDocument()
++{
++	TagCloseElement("office:automatic-styles").write(mpHandler);
++
++	TagOpenElement("office:master-styles").write(mpHandler);
++
++	TagOpenElement tmpStyleMasterPageOpenElement("style:master-page");
++	tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default");
++	tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0");
++	tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1");
++	tmpStyleMasterPageOpenElement.write(mpHandler);
++
++	TagCloseElement("style:master-page").write(mpHandler);
++
++	TagCloseElement("office:master-styles").write(mpHandler);
++
++	TagOpenElement("office:body").write(mpHandler);
++
++	TagOpenElement("office:drawing").write(mpHandler);
++
++	TagOpenElement tmpDrawPageOpenElement("draw:page");
++	tmpDrawPageOpenElement.addAttribute("draw:name", "page1");
++	tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1");
++	tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default");
++	tmpDrawPageOpenElement.write(mpHandler);
++
++	for (std::vector<DocumentElement *>::const_iterator bodyIter = mpBodyElements.begin();
++		bodyIter != mpBodyElements.end(); bodyIter++)
++	{
++		(*bodyIter)->write(mpHandler);
++	}	
++
++	TagCloseElement("draw:page").write(mpHandler);
++	TagCloseElement("office:drawing").write(mpHandler);
++	TagCloseElement("office:body").write(mpHandler);
++	TagCloseElement("office:document").write(mpHandler);
++
++	mpHandler->endDocument();
++}
++
++void OdgExporter::setPen(const libwpg::WPGPen& pen)
++{
++	m_pen = pen;
++}
++
++void OdgExporter::setBrush(const libwpg::WPGBrush& brush)
++{
++	m_brush = brush;
++}
++
++void OdgExporter::setFillRule(FillRule rule)
++{
++	m_fillRule = rule;
++}
++
++void OdgExporter::startLayer(unsigned int /* id */)
++{
++}
++
++void OdgExporter::endLayer(unsigned int)
++{
++}
++
++void OdgExporter::drawRectangle(const libwpg::WPGRect& rect, double rx, double /* ry */)
++{
++	writeStyle();
++	TagOpenElement *pDrawRectElement = new TagOpenElement("draw:rect");
++	WPXString sValue;
++	sValue.sprintf("gr%i", m_styleIndex-1);
++	pDrawRectElement->addAttribute("draw:style-name", sValue);
++	sValue = doubleToString(2.54 * rect.x1); sValue.append("cm");
++	pDrawRectElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(2.54 * rect.y1); sValue.append("cm");
++	pDrawRectElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(2.54 * (rect.x2-rect.x1)); sValue.append("cm");
++	pDrawRectElement->addAttribute("svg:width", sValue);
++	sValue = doubleToString(2.54 * (rect.y2-rect.y1)); sValue.append("cm");
++	pDrawRectElement->addAttribute("svg:height", sValue);
++	sValue = doubleToString(2.54 * rx); sValue.append("cm");
++	// FIXME: what to do when rx != ry ?
++	pDrawRectElement->addAttribute("draw:corner-radius", sValue);
++	mpBodyElements.push_back(static_cast<DocumentElement *>(pDrawRectElement));
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:rect")));	
++}
++
++void OdgExporter::drawEllipse(const libwpg::WPGPoint& center, double rx, double ry)
++{
++	writeStyle();
++	TagOpenElement *pDrawEllipseElement = new TagOpenElement("draw:ellipse");
++	WPXString sValue;
++	sValue.sprintf("gr%i", m_styleIndex-1);
++	pDrawEllipseElement->addAttribute("draw:style-name", sValue);
++	sValue = doubleToString(2.54 * (center.x-rx)); sValue.append("cm");
++	pDrawEllipseElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(2.54 * (center.y-ry)); sValue.append("cm");
++	pDrawEllipseElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(2 * 2.54 * rx); sValue.append("cm");
++	pDrawEllipseElement->addAttribute("svg:width", sValue);
++	sValue = doubleToString(2 * 2.54 * ry); sValue.append("cm");
++	pDrawEllipseElement->addAttribute("svg:height", sValue);
++	mpBodyElements.push_back(static_cast<DocumentElement *>(pDrawEllipseElement));
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:ellipse")));
++}
++
++void OdgExporter::drawPolygon(const libwpg::WPGPointArray& vertices)
++{
++	if(vertices.count() < 2)
++		return;
++
++	if(vertices.count() == 2)
++	{
++		const libwpg::WPGPoint& p1 = vertices[0];
++		const libwpg::WPGPoint& p2 = vertices[1];
++
++		writeStyle();
++		TagOpenElement *pDrawLineElement = new TagOpenElement("draw:line");
++		WPXString sValue;
++		sValue.sprintf("gr%i", m_styleIndex-1);
++		pDrawLineElement->addAttribute("draw:style-name", sValue);
++		pDrawLineElement->addAttribute("draw:text-style-name", "P1");
++		pDrawLineElement->addAttribute("draw:layer", "layout");
++		sValue = doubleToString(2.54 * p1.x); sValue.append("cm");
++		pDrawLineElement->addAttribute("svg:x1", sValue);
++		sValue = doubleToString(2.54 * p1.y); sValue.append("cm");
++		pDrawLineElement->addAttribute("svg:y1", sValue);
++		sValue = doubleToString(2.54 * p2.x); sValue.append("cm");
++		pDrawLineElement->addAttribute("svg:x2", sValue);
++		sValue = doubleToString(2.54 * p2.y); sValue.append("cm");
++		pDrawLineElement->addAttribute("svg:y2", sValue);
++		mpBodyElements.push_back(static_cast<DocumentElement *>(pDrawLineElement));
++		mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:line")));
++	}
++	else
++	{
++		// draw as path
++		libwpg::WPGPath path;
++		path.moveTo(vertices[0]);
++		for(unsigned long ii = 1; ii < vertices.count(); ii++)
++			path.lineTo(vertices[ii]);
++		path.closed = true;
++		drawPath(path);
++	}
++}
++
++void OdgExporter::drawPath(const libwpg::WPGPath& path)
++{
++	if(path.count() == 0)
++		return;
++
++	// try to find the bounding box
++	// this is simple convex hull technique, the bounding box might not be
++	// accurate but that should be enough for this purpose
++	libwpg::WPGPoint p = path.element(0).point;
++	libwpg::WPGPoint q = path.element(0).point;
++	for(unsigned k = 0; k < path.count(); k++)
++	{
++		libwpg::WPGPathElement element = path.element(k);
++		p.x = (p.x > element.point.x) ? element.point.x : p.x; 
++		p.y = (p.y > element.point.y) ? element.point.y : p.y; 
++		q.x = (q.x < element.point.x) ? element.point.x : q.x; 
++		q.y = (q.y < element.point.y) ? element.point.y : q.y; 
++		if(element.type == libwpg::WPGPathElement::CurveToElement)
++		{
++			p.x = (p.x > element.extra1.x) ? element.extra1.x : p.x; 
++			p.y = (p.y > element.extra1.y) ? element.extra1.y : p.y; 
++			q.x = (q.x < element.extra1.x) ? element.extra1.x : q.x; 
++			q.y = (q.y < element.extra1.y) ? element.extra1.y : q.y; 
++			p.x = (p.x > element.extra2.x) ? element.extra2.x : p.x; 
++			p.y = (p.y > element.extra2.y) ? element.extra2.y : p.y; 
++			q.x = (q.x < element.extra2.x) ? element.extra2.x : q.x; 
++			q.y = (q.y < element.extra2.y) ? element.extra2.y : q.y; 
++		}
++	}
++	double vw = q.x - p.x;
++	double vh = q.y - p.y;
++		
++	writeStyle();
++
++	TagOpenElement *pDrawPathElement = new TagOpenElement("draw:path");
++	WPXString sValue;
++	sValue.sprintf("gr%i", m_styleIndex-1);
++	pDrawPathElement->addAttribute("draw:style-name", sValue);
++	pDrawPathElement->addAttribute("draw:text-style-name", "P1");
++	pDrawPathElement->addAttribute("draw:layer", "layout");
++	sValue = doubleToString(2.54 * p.x); sValue.append("cm");
++	pDrawPathElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(2.54 * p.y); sValue.append("cm");
++	pDrawPathElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(2.54 * vw); sValue.append("cm");
++	pDrawPathElement->addAttribute("svg:width", sValue);
++	sValue = doubleToString(2.54 * vh); sValue.append("cm");
++	pDrawPathElement->addAttribute("svg:height", sValue);
++	sValue.sprintf("%i %i %i %i", 0, 0, (int)(vw*2540), (int)(vh*2540));
++	pDrawPathElement->addAttribute("svg:viewBox", sValue);
++
++    sValue.clear();
++	for(unsigned i = 0; i < path.count(); i++)
++	{
++		libwpg::WPGPathElement element = path.element(i);
++		libwpg::WPGPoint point = element.point;
++        WPXString sElement;
++		switch(element.type)
++		{
++			// 2540 is 2.54*1000, 2.54 cm = 1 inch
++			case libwpg::WPGPathElement::MoveToElement:
++			    sElement.sprintf("M%i %i", (int)((point.x-p.x)*2540), (int)((point.y-p.y)*2540));
++				break;
++				
++			case libwpg::WPGPathElement::LineToElement:
++			    sElement.sprintf("L%i %i", (int)((point.x-p.x)*2540), (int)((point.y-p.y)*2540));
++				break;
++			
++			case libwpg::WPGPathElement::CurveToElement:
++                sElement.sprintf("C%i %i %i %i %i %i", (int)((element.extra1.x-p.x)*2540),
++                (int)((element.extra1.y-p.y)*2540), (int)((element.extra2.x-p.x)*2540),
++                (int)((element.extra2.y-p.y)*2540), (int)((point.x-p.x)*2540), (int)((point.y-p.y)*2540));
++				break;
++			
++			default:
++				break;
++		}
++		sValue.append(sElement);
++	}
++    if(path.closed)
++		sValue.append(" Z");
++	pDrawPathElement->addAttribute("svg:d", sValue);
++	mpBodyElements.push_back(static_cast<DocumentElement *>(pDrawPathElement));
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:path")));
++}
++
++void OdgExporter::drawBitmap(const libwpg::WPGBitmap& bitmap)
++{
++	TagOpenElement *pDrawFrameElement = new TagOpenElement("draw:frame");
++	WPXString sValue;
++	sValue = doubleToString(2.54 * bitmap.rect.x1); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(2.54 * bitmap.rect.y1); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(2.54 * bitmap.rect.height()); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:height", sValue);
++	sValue = doubleToString(2.54 * bitmap.rect.width()); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:width", sValue);
++	mpBodyElements.push_back(static_cast<DocumentElement *>(pDrawFrameElement));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagOpenElement("draw:image")));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagOpenElement("office:binary-data")));
++	
++	libwpg::WPGString base64Binary;
++	bitmap.generateBase64DIB(base64Binary);
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new CharDataElement(base64Binary.cstr())));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("office:binary-data")));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:image")));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:frame")));
++}
++
++void OdgExporter::drawImageObject(const libwpg::WPGBinaryData& binaryData)
++{
++	if (binaryData.mimeType.length() <= 0)
++		return;
++
++	TagOpenElement *pDrawFrameElement = new TagOpenElement("draw:frame");
++	WPXString sValue;
++	sValue = doubleToString(2.54 * binaryData.rect.x1); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(2.54 * binaryData.rect.y1); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(2.54 * binaryData.rect.height()); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:height", sValue);
++	sValue = doubleToString(2.54 * binaryData.rect.width()); sValue.append("cm");
++	pDrawFrameElement->addAttribute("svg:width", sValue);
++	mpBodyElements.push_back(static_cast<DocumentElement *>(pDrawFrameElement));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagOpenElement("draw:image")));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagOpenElement("office:binary-data")));
++	
++	libwpg::WPGString base64Binary = binaryData.getBase64Data();;
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new CharDataElement(base64Binary.cstr())));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("office:binary-data")));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:image")));
++	
++	mpBodyElements.push_back(static_cast<DocumentElement *>(new TagCloseElement("draw:frame")));
++}
++
++void OdgExporter::writeStyle()
++{
++	if(!m_pen.solid && (m_pen.dashArray.count() >=2 ) )
++	{
++		// ODG only supports dashes with the same length of spaces inbetween
++		// here we take the first space and assume everything else the same
++		// note that dash length is written in percentage
++		double distance = m_pen.dashArray.at(1);
++		TagOpenElement tmpDrawStrokeDashElement("draw:stroke-dash");
++		tmpDrawStrokeDashElement.addAttribute("draw:style", "rect");
++		WPXString sValue;
++		sValue.sprintf("Dash_%i", m_dashIndex++);
++		tmpDrawStrokeDashElement.addAttribute("draw:name", sValue);
++		sValue.sprintf("%i \%", distance*100);
++		tmpDrawStrokeDashElement.addAttribute("draw:distance", sValue);
++		WPXString sName;
++		for(unsigned i = 0; i < m_pen.dashArray.count()/2; i++)
++		{
++			sName.sprintf("draw:dots%i", i+1);
++			tmpDrawStrokeDashElement.addAttribute(sName.cstr(), "1");
++			sName.sprintf("draw:dots%i-length", i+1);
++			sValue.sprintf("%i\%", 100*m_pen.dashArray.at(i*2));
++			tmpDrawStrokeDashElement.addAttribute(sName.cstr(), sValue);
++		}
++		tmpDrawStrokeDashElement.write(mpHandler);
++		TagCloseElement("draw:stroke-dash").write(mpHandler);
++	}
++
++	if(m_brush.style == libwpg::WPGBrush::Gradient)
++	{
++		TagOpenElement tmpDrawGradientElement("draw:gradient");
++		tmpDrawGradientElement.addAttribute("draw:style", "linear");
++		WPXString sValue;
++		sValue.sprintf("Gradient_%i", m_gradientIndex++);
++		tmpDrawGradientElement.addAttribute("draw:name", sValue);
++
++		// ODG angle unit is 0.1 degree
++		double angle = -m_brush.gradient.angle();
++		while(angle < 0)
++			angle += 360;
++		while(angle > 360)
++			angle -= 360;
++
++		sValue.sprintf("%i", angle*10);
++		tmpDrawGradientElement.addAttribute("draw:angle", sValue);
++
++		libwpg::WPGColor startColor = m_brush.gradient.stopColor(0);
++		libwpg::WPGColor stopColor = m_brush.gradient.stopColor(1);
++		sValue.sprintf("#%.2x%.2x%.2x", (startColor.red & 0xff), (startColor.green & 0xff), (startColor.blue & 0xff));
++		tmpDrawGradientElement.addAttribute("draw:start-color", sValue);
++		sValue.sprintf("#%.2x%.2x%.2x", (stopColor.red & 0xff), (stopColor.green & 0xff), (stopColor.blue & 0xff));
++		tmpDrawGradientElement.addAttribute("draw:end-color", sValue);
++		tmpDrawGradientElement.addAttribute("draw:start-intensity", "100%");
++		tmpDrawGradientElement.addAttribute("draw:end-intensity", "100%");
++		tmpDrawGradientElement.addAttribute("draw:border", "0%");
++		tmpDrawGradientElement.write(mpHandler);
++		TagCloseElement("draw:gradient").write(mpHandler);
++	}
++
++	TagOpenElement tmpStyleStyleElement("style:style");
++	WPXString sValue;
++	sValue.sprintf("gr%i",  m_styleIndex);
++	tmpStyleStyleElement.addAttribute("style:name", sValue);
++	tmpStyleStyleElement.addAttribute("style:family", "graphic");
++	tmpStyleStyleElement.addAttribute("style:parent-style-name", "standard");
++	tmpStyleStyleElement.write(mpHandler);
++
++	TagOpenElement tmpStyleGraphicPropertiesElement("style:graphic-properties");
++
++	if(m_pen.width > 0.0)
++	{
++		sValue = doubleToString(2.54 * m_pen.width); sValue.append("cm");
++		tmpStyleGraphicPropertiesElement.addAttribute("svg:stroke-width", sValue);
++		sValue.sprintf("#%.2x%.2x%.2x", (m_pen.foreColor.red & 0xff),
++		              (m_pen.foreColor.green & 0xff), (m_pen.foreColor.blue & 0xff));
++		tmpStyleGraphicPropertiesElement.addAttribute("svg:stroke-color", sValue);
++
++		if(!m_pen.solid)
++		{
++			tmpStyleGraphicPropertiesElement.addAttribute("draw:stroke", "dash");
++			sValue.sprintf("Dash_%i", m_dashIndex-1);
++			tmpStyleGraphicPropertiesElement.addAttribute("draw:stroke-dash", sValue);
++			}
++	}
++	else
++		tmpStyleGraphicPropertiesElement.addAttribute("draw:stroke", "none");
++
++	if(m_brush.style == libwpg::WPGBrush::NoBrush)
++		tmpStyleGraphicPropertiesElement.addAttribute("draw:fill", "none");
++
++	if(m_brush.style == libwpg::WPGBrush::Solid)
++	{
++		tmpStyleGraphicPropertiesElement.addAttribute("draw:fill", "solid");
++		sValue.sprintf("#%.2x%.2x%.2x", (m_brush.foreColor.red & 0xff),
++		              (m_brush.foreColor.green & 0xff), (m_brush.foreColor.blue & 0xff));
++		tmpStyleGraphicPropertiesElement.addAttribute("draw:fill-color", sValue);
++	}
++
++	if(m_brush.style == libwpg::WPGBrush::Gradient)
++	{
++		tmpStyleGraphicPropertiesElement.addAttribute("draw:fill", "gradient");
++		sValue.sprintf("Gradient_%i", m_gradientIndex-1);
++		tmpStyleGraphicPropertiesElement.addAttribute("draw:fill-gradient-name", sValue);
++	}
++
++	tmpStyleGraphicPropertiesElement.write(mpHandler);
++	TagCloseElement("style:graphic-properties").write(mpHandler);
++
++	TagCloseElement("style:style").write(mpHandler);
++	m_styleIndex++;
++}
++
++WPXString OdgExporter::doubleToString(const double value)
++{
++	return WPXString((char *)::rtl::math::doubleToString(value, rtl_math_StringFormat_F, 4, '.').getStr());
++}
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/source/wpgimp/OdgExporter.hxx	2007-06-11 15:13:16.000000000 +0200
+@@ -0,0 +1,78 @@
++/* libwpg
++ * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
++ * Copyright (C) 2007 Fridrich Strba (fridrich_strba@bluewin.ch)
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the 
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
++ * Boston, MA  02111-1301 USA
++ *
++ * For further information visit http://libwpg.sourceforge.net
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#ifndef __ODGEXPORTER_HXX__
++#define __ODGEXPORTER_HXX__
++
++#include <iostream>
++#include <sstream>
++#include <string>
++
++#include <libwpd/WPXString.h>
++#include <libwpg/libwpg.h>
++#include <libwpg/WPGBinaryData.h>
++#include "filter/DocumentElement.hxx"
++#include "filter/DocumentHandler.hxx"
++
++class OdgExporter : public libwpg::WPGPaintInterface {
++public:
++	OdgExporter(DocumentHandler *pHandler);
++	~OdgExporter();
++
++	void startDocument(double width, double height);
++	void startGraphics(double width, double height) { startDocument(width, height); }
++	void endDocument();
++	void endGraphics() { endDocument(); };
++	void startLayer(unsigned int id);
++	void endLayer(unsigned int id);
++
++	void setPen(const libwpg::WPGPen& pen);
++	void setBrush(const libwpg::WPGBrush& brush);
++	void setFillRule(FillRule rule);
++
++	void drawRectangle(const libwpg::WPGRect& rect, double rx, double ry);
++	void drawEllipse(const libwpg::WPGPoint& center, double rx, double ry);
++	void drawPolygon(const libwpg::WPGPointArray& vertices);
++	void drawPath(const libwpg::WPGPath& path);
++	void drawBitmap(const libwpg::WPGBitmap& bitmap);
++	void drawImageObject(const libwpg::WPGBinaryData& binaryData);
++
++private:
++	std::vector <DocumentElement *> mpBodyElements;
++	std::vector <DocumentElement *> mpStylesElements;
++	DocumentHandler *mpHandler;
++
++	libwpg::WPGPen m_pen;
++	libwpg::WPGBrush m_brush;
++	FillRule m_fillRule;
++	int m_gradientIndex;
++	int m_dashIndex;
++	int m_styleIndex;
++	void writeStyle();
++	WPXString doubleToString(const double value);
++};
++
++#endif // __ODGEXPORTER_HXX__
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/source/wpgimp/WPGImportFilter.cxx	2007-05-07 22:24:08.000000000 +0200
+@@ -0,0 +1,332 @@
++/* WPGImportFilter: Sets up the filter, and calls OdgExporter
++ * to do the actual filtering
++ *
++ * Copyright (C) 2000 by Sun Microsystems, Inc.
++ * Copyright (C) 2002-2004 William Lachance (wlach@interlog.com)
++ * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
++ * Copyright (C) 2004-2006 Fridrich Strba <fridrich.strba@bluewin.ch>
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
++ * 02111-1307, USA.
++ *
++ *  Contributor(s): Martin Gallwey (gallwey@sun.com)
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++#ifndef _RTL_TENCINFO_H_
++#include <rtl/tencinfo.h>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
++#include <com/sun/star/io/XInputStream.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XATTRIBUTELIST_HPP_
++#include <com/sun/star/xml/sax/XAttributeList.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_INPUTSOURCE_HPP_
++#include <com/sun/star/xml/sax/InputSource.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XPARSER_HPP_
++#include <com/sun/star/xml/sax/XParser.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
++#include <com/sun/star/io/XInputStream.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_IO_XSEEKABLE_HPP_
++#include <com/sun/star/io/XSeekable.hpp>
++#endif
++
++#include <com/sun/star/uno/Reference.h>
++
++#ifndef _ATTRLIST_HPP_
++#include <xmloff/attrlist.hxx>
++#endif
++#ifndef _XMLKYWD_HPP
++#include <xmloff/xmlkywd.hxx>
++#endif
++
++#include "filter/DocumentHandler.hxx"
++#include "OdgExporter.hxx"
++#include "WPGImportFilter.hxx"
++#include "stream/WPXSvStream.h"
++
++#include <iostream>
++
++using namespace ::com::sun::star::uno;
++using com::sun::star::uno::Reference;
++using com::sun::star::io::XInputStream;
++using com::sun::star::io::XSeekable;
++using com::sun::star::uno::Sequence;
++using namespace ::rtl;
++using rtl::OString;
++using rtl::OUString;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::Any;
++using com::sun::star::uno::UNO_QUERY;
++using com::sun::star::uno::XInterface;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::lang::XMultiServiceFactory;
++using com::sun::star::beans::PropertyValue;
++using com::sun::star::document::XFilter;
++using com::sun::star::document::XExtendedFilterDetection;
++
++using com::sun::star::io::XInputStream;
++using com::sun::star::document::XImporter;
++using com::sun::star::xml::sax::InputSource;
++using com::sun::star::xml::sax::XAttributeList;
++using com::sun::star::xml::sax::XDocumentHandler;
++using com::sun::star::xml::sax::XParser;
++
++
++sal_Bool SAL_CALL WPGImportFilter::filter( const Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::filter" << std::endl;
++#endif
++	sal_Int32 nLength = aDescriptor.getLength();
++	const PropertyValue * pValue = aDescriptor.getConstArray();
++	OUString sURL;
++	Reference < XInputStream > xInputStream;
++	for ( sal_Int32 i = 0 ; i < nLength; i++)
++	{
++		if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++		pValue[i].Value >>= xInputStream;
++		else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
++		pValue[i].Value >>= sURL;
++	}
++	if ( !xInputStream.is() )
++	{
++		OSL_ASSERT( 0 );
++		return sal_False;
++	}
++	OString sFileName;
++	sFileName = OUStringToOString(sURL, RTL_TEXTENCODING_INFO_ASCII);
++
++	// An XML import service: what we push sax messages to..
++	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.XMLOasisImporter" ) );
++	Reference < XDocumentHandler > xInternalHandler( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
++
++	// The XImporter sets up an empty target document for XDocumentHandler to write to.. 
++	Reference < XImporter > xImporter(xInternalHandler, UNO_QUERY);
++	xImporter->setTargetDocument( mxDoc );
++
++	// OO Graphics Handler: abstract class to handle document SAX messages, concrete implementation here
++	// writes to in-memory target doc
++	DocumentHandler xHandler(xInternalHandler);
++
++	WPXInputStream* input = new WPXSvInputStream( xInputStream );
++
++	if (input->isOLEStream())
++	{
++		WPXInputStream* olestream = input->getDocumentOLEStream();
++		if (olestream)
++		{
++			delete input;
++			input = olestream;
++		}
++	}
++
++	OdgExporter exporter(&xHandler);
++	bool tmpParseResult = libwpg::WPGraphics::parse(input, &exporter);
++	if (input)
++		delete input;
++	xInputStream->closeInput();
++	return tmpParseResult;
++}
++
++void SAL_CALL WPGImportFilter::cancel(  ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::cancel" << std::endl;
++#endif
++}
++
++// XImporter
++void SAL_CALL WPGImportFilter::setTargetDocument( const Reference< ::com::sun::star::lang::XComponent >& xDoc )
++	throw (::com::sun::star::lang::IllegalArgumentException, RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::setTargetDocument" << std::endl;
++#endif
++	meType = FILTER_IMPORT;
++	mxDoc = xDoc;
++}
++
++// XExtendedFilterDetection
++OUString SAL_CALL WPGImportFilter::detect( com::sun::star::uno::Sequence< PropertyValue >& Descriptor )
++	throw( com::sun::star::uno::RuntimeException )
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::detect" << std::endl;
++#endif
++	OUString sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "" ) );
++	sal_Int32 nLength = Descriptor.getLength();
++	sal_Int32 location = nLength;
++	const PropertyValue * pValue = Descriptor.getConstArray();
++	Reference < XInputStream > xInputStream;
++	for ( sal_Int32 i = 0 ; i < nLength; i++)
++	{
++		if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "TypeName" ) ) )
++			location=i;
++		else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
++			pValue[i].Value >>= xInputStream;
++    }
++    
++	WPXInputStream* input = new WPXSvInputStream( xInputStream );
++
++	if (input->isOLEStream())
++	{
++		WPXInputStream* olestream = input->getDocumentOLEStream();
++		if (olestream)
++		{
++			delete input;
++			input = olestream;
++		}
++	}
++
++	if (libwpg::WPGraphics::isSupported(input))
++		sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "draw_WordPerfect_Graphics" ) );
++
++	if (input)
++		delete input;
++
++	if (!sTypeName.equalsAscii(""))
++	{
++		if ( location == Descriptor.getLength() )
++		{
++			Descriptor.realloc(nLength+1);
++			Descriptor[location].Name = ::rtl::OUString::createFromAscii( "TypeName" );
++		}
++
++		Descriptor[location].Value <<=sTypeName;
++	}
++	return sTypeName;		
++}
++
++
++// XInitialization
++void SAL_CALL WPGImportFilter::initialize( const Sequence< Any >& aArguments ) 
++	throw (Exception, RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::initialize" << std::endl;
++#endif
++	Sequence < PropertyValue > aAnySeq;
++	sal_Int32 nLength = aArguments.getLength();
++	if ( nLength && ( aArguments[0] >>= aAnySeq ) )
++	{
++		const PropertyValue * pValue = aAnySeq.getConstArray();
++		nLength = aAnySeq.getLength();
++		for ( sal_Int32 i = 0 ; i < nLength; i++)
++		{
++			if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) )
++			{
++				pValue[i].Value >>= msFilterName;
++				break;
++			}
++		}
++	}
++}
++OUString WPGImportFilter_getImplementationName ()
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter_getImplementationName" << std::endl;
++#endif
++	return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.WPGImportFilter" ) );
++}
++
++#define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
++#define SERVICE_NAME2 "com.sun.star.document.ExtendedTypeDetection"
++sal_Bool SAL_CALL WPGImportFilter_supportsService( const OUString& ServiceName ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter_supportsService" << std::endl;
++#endif
++	return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
++		ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) );
++}
++Sequence< OUString > SAL_CALL WPGImportFilter_getSupportedServiceNames(  ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter_getSupportedServiceNames" << std::endl;
++#endif
++	Sequence < OUString > aRet(2);
++	OUString* pArray = aRet.getArray();
++	pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
++	pArray[1] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) ); 
++	return aRet;
++}
++#undef SERVICE_NAME2
++#undef SERVICE_NAME1
++
++Reference< XInterface > SAL_CALL WPGImportFilter_createInstance( const Reference< XMultiServiceFactory > & rSMgr)
++	throw( Exception )
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter_createInstance" << std::endl;
++#endif
++	return (cppu::OWeakObject*) new WPGImportFilter( rSMgr );
++}
++
++// XServiceInfo
++OUString SAL_CALL WPGImportFilter::getImplementationName(  ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::getImplementationName" << std::endl;
++#endif
++	return WPGImportFilter_getImplementationName();
++}
++sal_Bool SAL_CALL WPGImportFilter::supportsService( const OUString& rServiceName ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::supportsService" << std::endl;
++#endif
++	return WPGImportFilter_supportsService( rServiceName );
++}
++Sequence< OUString > SAL_CALL WPGImportFilter::getSupportedServiceNames(  ) 
++	throw (RuntimeException)
++{
++#ifdef DEBUG
++	std::cerr << "WPGImportFilter::getSupportedServiceNames" << std::endl;
++#endif
++	return WPGImportFilter_getSupportedServiceNames();
++}
++
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/source/wpgimp/WPGImportFilter.hxx	2007-05-07 21:38:59.000000000 +0200
+@@ -0,0 +1,128 @@
++/* 
++ * Copyright (C) 2000 by Sun Microsystems, Inc.
++ * Copyright (C) 2002-2004 William Lachance (wlach@interlog.com)
++ * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
++ * Copyright (C) 2004 Fridrich Strba <fridrich.strba@bluewin.ch>
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
++ * 02111-1307, USA.
++ *
++ *  Contributor(s): Martin Gallwey (gallwey@sun.com)
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#ifndef _WPGIMPORTFILTER_HXX
++#define _WPGIMPORTFILTER_HXX
++
++#ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
++#include <com/sun/star/document/XFilter.hpp>
++#endif
++#ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_
++#include <com/sun/star/document/XImporter.hpp>
++#endif
++#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_
++#include <com/sun/star/document/XExtendedFilterDetection.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
++#include <com/sun/star/lang/XInitialization.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE5_HXX_
++#include <cppuhelper/implbase5.hxx>
++#endif
++
++#include <stdio.h>
++
++enum FilterType 
++{
++	FILTER_IMPORT,
++	FILTER_EXPORT
++};
++/* This component will be instantiated for both import or export. Whether it calls
++ * setSourceDocument or setTargetDocument determines which Impl function the filter
++ * member calls */
++class WPGImportFilter : public cppu::WeakImplHelper5 
++< 
++	com::sun::star::document::XFilter,
++	com::sun::star::document::XImporter,
++	com::sun::star::document::XExtendedFilterDetection,
++	com::sun::star::lang::XInitialization,
++	com::sun::star::lang::XServiceInfo
++>
++{
++protected:
++	// oo.org declares
++	::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF;
++	::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > mxDoc;
++	::rtl::OUString msFilterName;
++	::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > mxHandler;
++
++	FilterType meType;
++
++public:
++	WPGImportFilter( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > &rxMSF)
++	: mxMSF( rxMSF ) {}
++	virtual ~WPGImportFilter() {}
++
++	// XFilter
++	virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) 
++		throw (::com::sun::star::uno::RuntimeException);
++	virtual void SAL_CALL cancel(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++	// XImporter
++	virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) 
++		throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
++
++ 	//XExtendedFilterDetection
++	virtual ::rtl::OUString SAL_CALL detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Descriptor ) 
++		throw( com::sun::star::uno::RuntimeException );
++
++	// XInitialization
++	virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) 
++		throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++
++	// XServiceInfo
++	virtual ::rtl::OUString SAL_CALL getImplementationName(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) 
++		throw (::com::sun::star::uno::RuntimeException);
++	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) 
++		throw (::com::sun::star::uno::RuntimeException);
++
++};
++
++::rtl::OUString WPGImportFilter_getImplementationName()
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++sal_Bool SAL_CALL WPGImportFilter_supportsService( const ::rtl::OUString& ServiceName ) 
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL WPGImportFilter_getSupportedServiceNames(  ) 
++	throw ( ::com::sun::star::uno::RuntimeException );
++
++::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
++SAL_CALL WPGImportFilter_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
++	throw ( ::com::sun::star::uno::Exception );
++
++#endif
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/source/wpgimp/wpgimport_genericfilter.cxx	2007-05-07 21:38:59.000000000 +0200
+@@ -0,0 +1,101 @@
++/* genericfilter: mostly generic code for registering the filter
++ *
++ * Portions of this code Copyright 2000 by Sun Microsystems, Inc.
++ * Rest is Copyright (C) 2002 William Lachance (wlach@interlog.com)
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
++ * 02111-1307, USA.
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#include <stdio.h>
++
++#include <osl/mutex.hxx>
++#include <osl/thread.h>
++#include <cppuhelper/factory.hxx>
++
++#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++#endif
++
++#include "WPGImportFilter.hxx"
++
++using namespace ::rtl;
++using namespace ::cppu;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::registry;
++
++extern "C"
++{
++//==================================================================================================
++void SAL_CALL component_getImplementationEnvironment(
++	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++//==================================================================================================
++sal_Bool SAL_CALL component_writeInfo(
++	void * /* pServiceManager */, void * pRegistryKey )
++{
++	if (pRegistryKey)
++	{
++		try
++		{
++            sal_Int32 nPos = 0;
++            Reference< XRegistryKey > xNewKey(
++				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( WPGImportFilter_getImplementationName() ) ); 
++            xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
++			
++			const Sequence< OUString > & rSNL = WPGImportFilter_getSupportedServiceNames();
++			const OUString * pArray = rSNL.getConstArray();
++			for ( nPos = rSNL.getLength(); nPos--; )
++				xNewKey->createKey( pArray[nPos] );
++
++			return sal_True;
++		}
++		catch (InvalidRegistryException &)
++		{
++			OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
++		}
++	}
++	return sal_False;
++}
++//==================================================================================================
++void * SAL_CALL component_getFactory(
++	const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
++{
++	void * pRet = 0;
++
++    OUString implName = OUString::createFromAscii( pImplName );
++	if ( pServiceManager && implName.equals(WPGImportFilter_getImplementationName()) )
++	{
++		Reference< XSingleServiceFactory > xFactory( createSingleFactory(
++			reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
++			OUString::createFromAscii( pImplName ),
++			WPGImportFilter_createInstance, WPGImportFilter_getSupportedServiceNames() ) );
++		
++		if (xFactory.is())
++		{
++			xFactory->acquire();
++			pRet = xFactory.get();
++		}
++	}
++	
++	return pRet;
++}
++}
+--- /dev/null	2007-05-04 12:54:36.000000000 +0200
++++ writerperfect/util/wpgimport.map	2007-05-07 13:47:11.000000000 +0200
+@@ -0,0 +1,8 @@
++WPFT_1_0 {
++	global:
++		component_getImplementationEnvironment;
++		component_writeInfo;
++		component_getFactory;
++	local:
++		*;
++};
+--- writerperfect/prj/build.lst	18 Dec 2006 13:12:18 -0000	1.8.12.2
++++ writerperfect/prj/build.lst	8 May 2007 15:16:35 -0000
+@@ -1,7 +1,8 @@
+-wp      writerperfect : LIBWPS:libwps LIBWPD:libwpd sot comphelper xmloff NULL
++wp      writerperfect : LIBWPG:libwpg LIBWPS:libwps LIBWPD:libwpd sot comphelper xmloff NULL
+ wp	writerperfect			usr1	-	all	wp_mkout NULL
+ wp	writerperfect\source\stream	nmake	-	all	wp_stream NULL
+ wp	writerperfect\source\filter	nmake	-	all	wp_filter NULL
+ wp	writerperfect\source\wpdimp	nmake	-	all	wp_wpdimp NULL
+ wp	writerperfect\source\wpsimp	nmake	-	all	wp_wpsimp NULL
+-wp	writerperfect\util		nmake	-	all	wp_util wp_wpsimp wp_wpdimp wp_filter wp_stream NULL
++wp  writerperfect\source\wpgimp nmake   -   all wp_wpgimp NULL
++wp	writerperfect\util		nmake	-	all	wp_util wp_wpgimp wp_wpsimp wp_wpdimp wp_filter wp_stream NULL
+--- writerperfect/source/filter/DocumentHandler.cxx	3 Jan 2007 16:57:28 -0000	1.1.4.5
++++ writerperfect/source/filter/DocumentHandler.cxx	8 May 2007 15:16:36 -0000
+@@ -67,7 +67,7 @@
+ 	for (i.rewind(); i.next(); )
+ 	{
+                 // filter out libwpd elements
+-                if (strlen(i.key()) > 6 && strncmp(i.key(), "libwpd", 6) != 0)
++                if (strncmp(i.key(), "libwpd", 6) != 0)
+                         pAttrList->AddAttribute(OUString::createFromAscii(i.key()),
+                                                 OUString::createFromAscii(i()->getStr().cstr()));
+         }
+--- writerperfect/util/makefile.mk	7 May 2007 09:28:20 -0000	1.6.6.4
++++ writerperfect/util/makefile.mk	8 May 2007 15:16:36 -0000
+@@ -20,10 +20,17 @@
+ LIBWPS=-lwpslib
+ .ENDIF
+ 
++.IF "$(SYSTEM_LIBWPG)" == "YES"
++LIBWPG=$(LIBWPG_LIBS)
++.ELSE
++LIBWPG=-lwpglib
++.ENDIF
++
+ .ELSE
+ 
+ LIBWPD=$(LIBPRE) wpdlib.lib
+ LIBWPS=$(LIBPRE) wpslib.lib
++LIBWPG=$(LIBPRE) wpglib.lib
+ 
+ .ENDIF
+ 
+@@ -83,4 +90,32 @@
+ SHL2VERSIONMAP=msworks.map
+ DEF2NAME=$(SHL2TARGET)
+ 
++LIB3TARGET= $(SLB)$/wpgimport.lib
++LIB3FILES= \
++	$(SLB)$/stream.lib  \
++	$(SLB)$/filter.lib  \
++	$(SLB)$/wpgimp.lib
++SHL3LIBS=$(LIB3TARGET)
++SHL3STDLIBS+= \
++	$(SVLLIB)	\
++	$(SOTLIB) \
++	$(SO2LIB) \
++	$(SVTOOLLIB) \
++	$(UNOTOOLSLIB) \
++	$(TOOLSLIB) \
++	$(COMPHELPERLIB) \
++	$(UCBHELPERLIB) \
++	$(CPPUHELPERLIB) \
++	$(CPPULIB) \
++	$(SALLIB) \
++	$(XMLOFFLIB) \
++	$(LIBWPD) \
++	$(LIBWPG)
++
++SHL3TARGET = wpgimport$(UPD)$(DLLPOSTFIX)
++SHL3IMPLIB = i$(SHL3TARGET)
++SHL3LIBS = $(LIB3TARGET)
++SHL3VERSIONMAP=wpgimport.map
++DEF3NAME=$(SHL3TARGET)
++
+ .INCLUDE :  target.mk
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-natural-sort.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-natural-sort.diff
@@ -0,0 +1,666 @@
+Index: sc/inc/dbcolect.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/dbcolect.hxx,v
+retrieving revision 1.8
+diff -u -r1.8 dbcolect.hxx
+--- sc/inc/dbcolect.hxx	14 Jan 2005 11:58:41 -0000	1.8
++++ sc/inc/dbcolect.hxx	13 Mar 2005 04:18:36 -0000
+@@ -112,6 +112,7 @@
+ 	BOOL			bStripData;
+ 	// SortParam
+ 	BOOL			bSortCaseSens;
++	BOOL			bSortNaturalSort;
+ 	BOOL			bIncludePattern;
+ 	BOOL			bSortInplace;
+ 	BOOL			bSortUserDef;
+Index: sc/inc/global.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/global.hxx,v
+retrieving revision 1.42
+diff -u -r1.42 global.hxx
+--- sc/inc/global.hxx	13 Jan 2005 17:21:00 -0000	1.42
++++ sc/inc/global.hxx	13 Mar 2005 04:18:36 -0000
+@@ -918,6 +918,7 @@
+ 	BOOL			bByRow;
+ 	BOOL			bInplace;
+ 	BOOL			bCaseSens;
++	BOOL			bNaturalSort;
+ 	BOOL			bRegExp;
+     BOOL            bMixedComparison;   // whether numbers are smaller than strings
+ 	BOOL			bDuplicate;
+Index: sc/inc/sc.hrc
+===================================================================
+RCS file: /cvs/sc/sc/inc/sc.hrc,v
+retrieving revision 1.48
+diff -u -r1.48 sc.hrc
+--- sc/inc/sc.hrc	17 Feb 2005 11:17:32 -0000	1.48
++++ sc/inc/sc.hrc	13 Mar 2005 04:18:37 -0000
+@@ -1116,6 +1116,7 @@
+ #define SID_SORT_CASESENS		(SC_PARAM_START+2)
+ #define SID_SORT_ATTRIBS		(SC_PARAM_START+3)
+ #define SID_SORT_USERDEF		(SC_PARAM_START+4)
++#define SID_SORT_NATURALSORT	(SC_PARAM_START+5)
+ 
+ // Resourcen -------------------------------------------------------------
+ 
+Index: sc/inc/sortparam.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/sortparam.hxx,v
+retrieving revision 1.3
+diff -u -r1.3 sortparam.hxx
+--- sc/inc/sortparam.hxx	23 Aug 2004 09:26:33 -0000	1.3
++++ sc/inc/sortparam.hxx	13 Mar 2005 04:18:37 -0000
+@@ -94,6 +94,7 @@
+ 	BOOL		bHasHeader;
+ 	BOOL		bByRow;
+ 	BOOL		bCaseSens;
++	BOOL		bNaturalSort;
+ 	BOOL		bUserDef;
+ 	USHORT		nUserIndex;
+ 	BOOL		bIncludePattern;
+Index: sc/sdi/scalc.sdi
+===================================================================
+RCS file: /cvs/sc/sc/sdi/scalc.sdi,v
+retrieving revision 1.30
+diff -u -r1.30 scalc.sdi
+--- sc/sdi/scalc.sdi	2 Aug 2004 12:56:50 -0000	1.30
++++ sc/sdi/scalc.sdi	13 Mar 2005 04:18:38 -0000
+@@ -1608,7 +1608,7 @@
+ 
+ //--------------------------------------------------------------------------
+ SfxVoidItem DataSort SID_SORT
+-(SfxBoolItem ByRows SID_SORT_BYROW,SfxBoolItem HasHeader SID_SORT_HASHEADER,SfxBoolItem CaseSensitive SID_SORT_CASESENS,SfxBoolItem IncludeAttribs SID_SORT_ATTRIBS,SfxUInt16Item UserDefIndex SID_SORT_USERDEF,SfxInt32Item Col1 FN_PARAM_1,SfxBoolItem Ascending1 FN_PARAM_2,SfxInt32Item Col2 FN_PARAM_3,SfxBoolItem Ascending2 FN_PARAM_4,SfxInt32Item Col3 FN_PARAM_5,SfxBoolItem Ascending3 FN_PARAM_6)
++(SfxBoolItem ByRows SID_SORT_BYROW,SfxBoolItem HasHeader SID_SORT_HASHEADER,SfxBoolItem CaseSensitive SID_SORT_CASESENS,SfxBoolItem NaturalSort SID_SORT_NATURALSORT,SfxBoolItem IncludeAttribs SID_SORT_ATTRIBS,SfxUInt16Item UserDefIndex SID_SORT_USERDEF,SfxInt32Item Col1 FN_PARAM_1,SfxBoolItem Ascending1 FN_PARAM_2,SfxInt32Item Col2 FN_PARAM_3,SfxBoolItem Ascending2 FN_PARAM_4,SfxInt32Item Col3 FN_PARAM_5,SfxBoolItem Ascending3 FN_PARAM_6)
+ [
+ 	/* flags: */
+ 	AutoUpdate = FALSE,
+Index: sc/source/core/data/sortparam.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/sortparam.cxx,v
+retrieving revision 1.2
+diff -u -r1.2 sortparam.cxx
+--- sc/source/core/data/sortparam.cxx	4 Jun 2004 10:27:42 -0000	1.2
++++ sc/source/core/data/sortparam.cxx	13 Mar 2005 04:18:38 -0000
+@@ -85,7 +85,7 @@
+ 
+ ScSortParam::ScSortParam( const ScSortParam& r ) :
+ 		nCol1(r.nCol1),nRow1(r.nRow1),nCol2(r.nCol2),nRow2(r.nRow2),
+-		bHasHeader(r.bHasHeader),bByRow(r.bByRow),bCaseSens(r.bCaseSens),
++		bHasHeader(r.bHasHeader),bByRow(r.bByRow),bCaseSens(r.bCaseSens),bNaturalSort(r.bNaturalSort),
+ 		bUserDef(r.bUserDef),nUserIndex(r.nUserIndex),bIncludePattern(r.bIncludePattern),
+ 		bInplace(r.bInplace),
+ 		nDestTab(r.nDestTab),nDestCol(r.nDestCol),nDestRow(r.nDestRow),
+@@ -107,7 +107,7 @@
+ 	nRow1=nRow2=nDestRow = 0;
+ 	nDestTab = 0;
+ 	nUserIndex = 0;
+-	bHasHeader=bCaseSens=bUserDef = FALSE;
++	bHasHeader=bCaseSens=bUserDef=bNaturalSort = FALSE;
+ 	bByRow=bIncludePattern=bInplace	= TRUE;
+ 	aCollatorLocale = ::com::sun::star::lang::Locale();
+ 	aCollatorAlgorithm.Erase();
+@@ -130,6 +130,7 @@
+ 	nRow2			= r.nRow2;
+ 	bHasHeader		= r.bHasHeader;
+ 	bCaseSens		= r.bCaseSens;
++	bNaturalSort	= r.bNaturalSort;
+ 	bByRow			= r.bByRow;
+ 	bUserDef		= r.bUserDef;
+ 	nUserIndex		= r.nUserIndex;
+@@ -171,6 +172,7 @@
+ 		&& (bHasHeader		== rOther.bHasHeader)
+ 		&& (bByRow			== rOther.bByRow)
+ 		&& (bCaseSens		== rOther.bCaseSens)
++		&& (bNaturalSort	== rOther.bNaturalSort)
+ 		&& (bUserDef		== rOther.bUserDef)
+ 		&& (nUserIndex		== rOther.nUserIndex)
+ 		&& (bIncludePattern == rOther.bIncludePattern)
+Index: sc/source/core/data/table3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table3.cxx,v
+retrieving revision 1.20
+diff -u -r1.20 table3.cxx
+--- sc/source/core/data/table3.cxx	15 Nov 2004 16:34:51 -0000	1.20
++++ sc/source/core/data/table3.cxx	13 Mar 2005 04:18:38 -0000
+@@ -100,6 +100,143 @@
+ 
+ #include <vector>
+ 
++using namespace ::com::sun::star;
++
++namespace naturalsort {
++
++using namespace ::com::sun::star::i18n;
++
++/** Splits a given string into three parts: the prefix, number string, and 
++	the suffix.
++
++	@param sWhole
++	Original string to be split into pieces
++
++	@param sPrefix
++	Prefix string that consists of the part before the first number token
++
++	@param sSuffix
++	String after the last number token.  This may still contain number strings.
++
++	@param fNum
++	Number converted from the middle number string
++
++	@return Returns TRUE if a numeral element is found in a given string, or 
++	FALSE if no numeral element is found.
++*/
++BOOL SplitString( const rtl::OUString &sWhole, 
++	rtl::OUString &sPrefix, rtl::OUString &sSuffix, double &fNum )
++{
++	i18n::LocaleDataItem aLocaleItem = ScGlobal::pLocaleData->getLocaleItem();
++
++	// Get prefix element
++	rtl::OUString sEmpty, sUser = rtl::OUString::createFromAscii( "-" );
++	ParseResult aPRPre = ScGlobal::pCharClass->parsePredefinedToken( 
++		KParseType::IDENTNAME, sWhole, 0, 
++		KParseTokens::ANY_LETTER, sUser, KParseTokens::ANY_LETTER, sUser );
++	sPrefix = sWhole.copy( 0, aPRPre.EndPos );
++	
++	// Return FALSE if no numeral element is found
++	if ( aPRPre.EndPos == sWhole.getLength() )
++		return FALSE;
++	
++	// Get numeral element
++	sUser = aLocaleItem.decimalSeparator;
++	ParseResult aPRNum = ScGlobal::pCharClass->parsePredefinedToken(
++		KParseType::ANY_NUMBER, sWhole, aPRPre.EndPos, 
++		KParseTokens::ANY_NUMBER, sEmpty, KParseTokens::ANY_NUMBER, sUser );
++	
++	if ( aPRNum.EndPos == aPRPre.EndPos )
++		return FALSE;
++	
++	fNum = aPRNum.Value;
++	sSuffix = sWhole.copy( aPRNum.EndPos );
++	
++	return TRUE;
++}
++
++/** Naturally compares two given strings.
++
++	This is the main function that should be called externally.  It returns 
++	either 1, 0, or -1 depending on the comparison result of given two strings.
++
++	@param sInput1
++	Input string 1
++
++	@param sInput2
++	Input string 2
++
++	@param bCaseSens
++	Boolean value for case sensitivity
++
++	@param pData
++	Pointer to user defined sort list
++
++	@param pCW
++	Pointer to collator wrapper for normal string comparison
++	
++	@return Returnes 1 if sInput1 is greater, 0 if sInput1 == sInput2, and -1 if 
++	sInput2 is greater.
++*/
++short Compare( const String &sInput1, const String &sInput2, 
++			   const BOOL bCaseSens, const ScUserListData* pData, const CollatorWrapper *pCW )
++{   
++	rtl::OUString sStr1( sInput1 ), sStr2( sInput2 ), sPre1, sSuf1, sPre2, sSuf2;
++
++	do
++	{
++		double nNum1, nNum2;
++		BOOL bNumFound1 = SplitString( sStr1, sPre1, sSuf1, nNum1 );
++		BOOL bNumFound2 = SplitString( sStr2, sPre2, sSuf2, nNum2 );
++
++		short nPreRes; // Prefix comparison result
++		if ( pData )
++		{
++			if ( bCaseSens )
++			{
++				if ( !bNumFound1 || !bNumFound2 )
++					return static_cast<short>(pData->Compare( sStr1, sStr2 ));
++				else
++					nPreRes = pData->Compare( sPre1, sPre2 );
++			}
++			else
++			{
++				if ( !bNumFound1 || !bNumFound2 )
++					return static_cast<short>(pData->ICompare( sStr1, sStr2 ));
++				else
++					nPreRes = pData->ICompare( sPre1, sPre2 );
++			}
++		} 
++		else
++		{
++			if ( !bNumFound1 || !bNumFound2 )
++				return static_cast<short>(pCW->compareString( sStr1, sStr2 ));
++			else
++				nPreRes = static_cast<short>(pCW->compareString( sPre1, sPre2 ));
++		}
++		
++		// Prefix strings differ.  Return immediately.
++		if ( nPreRes != 0 ) return nPreRes;
++			
++		if ( nNum1 != nNum2 )
++		{
++			if ( nNum1 < nNum2 ) return -1;
++			return static_cast<short>( nNum1 > nNum2 );
++		}
++
++		// The prefix and the first numerical elements are equal, but the suffix
++		// strings may still differ.  Stay in the loop.
++
++		sStr1 = sSuf1;
++		sStr2 = sSuf2;
++
++	} while ( true );
++
++	return 0;
++}
++
++}
++
+ // STATIC DATA -----------------------------------------------------------
+ 
+ const USHORT nMaxSorts = 3;		// maximale Anzahl Sortierkriterien in aSortParam
+@@ -321,6 +458,10 @@
+ 					((ScStringCell*)pCell2)->GetString(aStr2);
+ 				else
+ 					GetString(nCell2Col, nCell2Row, aStr2);
+-				BOOL bUserDef = aSortParam.bUserDef;
++
++				BOOL bUserDef     = aSortParam.bUserDef;		// custom sort order
++				BOOL bNaturalSort = aSortParam.bNaturalSort;	// natural sort
++				BOOL bCaseSens    = aSortParam.bCaseSens;		// case sensitivity
++				
+ 				if (bUserDef)
+ 				{
+@@ -327,19 +468,30 @@
+ 					ScUserListData* pData =
+-						(ScUserListData*)(ScGlobal::GetUserList()->At(
+-						aSortParam.nUserIndex));
++						static_cast<ScUserListData*>( (ScGlobal::GetUserList()->At(
++						aSortParam.nUserIndex)) );
++						
+ 					if (pData)
+ 					{
+-						if ( aSortParam.bCaseSens )
+-                            nRes = sal::static_int_cast<short>( pData->Compare(aStr1, aStr2) );
++						if ( bNaturalSort )
++							nRes = naturalsort::Compare( aStr1, aStr2, bCaseSens, pData, pSortCollator );
+ 						else
+-                            nRes = sal::static_int_cast<short>( pData->ICompare(aStr1, aStr2) );
++						{
++							if ( bCaseSens )
++								nRes = sal::static_int_cast<short>( pData->Compare(aStr1, aStr2) );
++							else
++								nRes = sal::static_int_cast<short>( pData->ICompare(aStr1, aStr2) );
++						}
+ 					}
+ 					else
+ 						bUserDef = FALSE;
+ 
+ 				}
+ 				if (!bUserDef)
+-					nRes = (short) pSortCollator->compareString( aStr1, aStr2 );
++				{
++					if ( bNaturalSort )
++						nRes = naturalsort::Compare( aStr1, aStr2, bCaseSens, NULL, pSortCollator );
++					else
++						nRes = static_cast<short>( pSortCollator->compareString( aStr1, aStr2 ) );
++				}
+ 			}
+ 			else if ( bStr1 )				// String <-> Zahl
+ 				nRes = 1;					// Zahl vorne
+Index: sc/source/core/tool/dbcolect.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/tool/dbcolect.cxx,v
+retrieving revision 1.12
+diff -u -r1.12 dbcolect.cxx
+--- sc/source/core/tool/dbcolect.cxx	14 Jan 2005 11:59:07 -0000	1.12
++++ sc/source/core/tool/dbcolect.cxx	13 Mar 2005 04:18:39 -0000
+@@ -427,5 +427,6 @@
+ 	bKeepFmt			(rData.bKeepFmt),
+ 	bStripData			(rData.bStripData),
+ 	bSortCaseSens   	(rData.bSortCaseSens),
++	bSortNaturalSort	(rData.bSortNaturalSort),
+ 	bIncludePattern 	(rData.bIncludePattern),
+ 	bSortInplace		(rData.bSortInplace),
+@@ -520,6 +521,7 @@
+ 	bKeepFmt			= rData.bKeepFmt;
+ 	bStripData			= rData.bStripData;
+ 	bSortCaseSens   	= rData.bSortCaseSens;
++	bSortNaturalSort	= rData.bSortNaturalSort;
+ 	bIncludePattern 	= rData.bIncludePattern;
+ 	bSortInplace		= rData.bSortInplace;
+ 	nSortDestTab		= rData.nSortDestTab;
+@@ -771,6 +773,7 @@
+ 	rSortParam.bByRow = bByRow;
+ 	rSortParam.bHasHeader = bHasHeader;
+ 	rSortParam.bCaseSens = bSortCaseSens;
++	rSortParam.bNaturalSort = bSortNaturalSort;
+ 	rSortParam.bInplace = bSortInplace;
+ 	rSortParam.nDestTab = nSortDestTab;
+ 	rSortParam.nDestCol = nSortDestCol;
+@@ -791,6 +794,7 @@
+ void ScDBData::SetSortParam( const ScSortParam& rSortParam )
+ {
+ 	bSortCaseSens = rSortParam.bCaseSens;
++	bSortNaturalSort = rSortParam.bNaturalSort;
+ 	bIncludePattern = rSortParam.bIncludePattern;
+ 	bSortInplace = rSortParam.bInplace;
+ 	nSortDestTab = rSortParam.nDestTab;
+Index: sc/source/ui/dbgui/tpsort.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/dbgui/tpsort.cxx,v
+retrieving revision 1.8
+diff -u -r1.8 tpsort.cxx
+--- sc/source/ui/dbgui/tpsort.cxx	23 Aug 2004 09:32:01 -0000	1.8
++++ sc/source/ui/dbgui/tpsort.cxx	13 Mar 2005 04:18:39 -0000
+@@ -579,6 +579,7 @@
+ 		aBtnHeader		( this, ScResId( BTN_LABEL ) ),
+ 		aBtnFormats 	( this, ScResId( BTN_FORMATS ) ),
+ 		aBtnCopyResult	( this, ScResId( BTN_COPYRESULT ) ),
++		aBtnNaturalSort	( this, ScResId( BTN_NATURALSORT ) ),
+ 		aLbOutPos		( this, ScResId( LB_OUTAREA ) ),
+ 		aEdOutPos		( this, ScResId( ED_OUTAREA ) ),
+ 		aBtnSortUser	( this, ScResId( BTN_SORT_USER ) ),
+@@ -590,7 +591,7 @@
+ 		aLineDirection	( this, ScResId( FL_DIRECTION ) ),
+ 		aBtnTopDown 	( this, ScResId( BTN_TOP_DOWN ) ),
+ 		aBtnLeftRight	( this, ScResId( BTN_LEFT_RIGHT ) ),
+-		aFtAreaLabel	( this, ScResId( FT_AREA_LABEL ) ),
++// 		aFtAreaLabel	( this, ScResId( FT_AREA_LABEL ) ),
+ //		aFtArea 		( this, ScResId( FT_AREA ) ),
+ 		//
+ 		aStrRowLabel	( ScResId( STR_ROW_LABEL ) ),
+@@ -629,8 +630,8 @@
+ 
+ void ScTabPageSortOptions::Init()
+ {
+-	aStrAreaLabel = aFtAreaLabel.GetText();
+-	aStrAreaLabel.Append( (sal_Unicode) ' ' );
++// 	aStrAreaLabel = aFtAreaLabel.GetText();
++// 	aStrAreaLabel.Append( (sal_Unicode) ' ' );
+ 
+ 	//	CollatorRessource has user-visible names for sort algorithms
+ 	pColRes = new CollatorRessource();
+@@ -708,8 +709,8 @@
+ 		theArea += ')';
+ 
+ 		//aFtArea.SetText( theArea );
+-		theArea.Insert( aStrAreaLabel, 0 );
+-		aFtAreaLabel.SetText( theArea );
++		//theArea.Insert( aStrAreaLabel, 0 );
++		//aFtAreaLabel.SetText( theArea );
+ 
+ 		aBtnHeader.SetText( aStrColLabel );
+ 	}
+@@ -755,9 +756,10 @@
+ 		aLbSortUser.SelectEntryPos( 0 );
+ 	}
+ 
+-	aBtnCase.Check		( rSortData.bCaseSens );
+-	aBtnFormats.Check	( rSortData.bIncludePattern );
+-	aBtnHeader.Check	( rSortData.bHasHeader );
++	aBtnCase.Check			( rSortData.bCaseSens );
++	aBtnFormats.Check		( rSortData.bIncludePattern );
++	aBtnHeader.Check		( rSortData.bHasHeader );
++	aBtnNaturalSort.Check	( rSortData.bNaturalSort );
+ 
+ 	if ( rSortData.bByRow )
+ 	{
+@@ -825,6 +827,7 @@
+ 	theSortData.bByRow			= aBtnTopDown.IsChecked();
+ 	theSortData.bHasHeader		= aBtnHeader.IsChecked();
+ 	theSortData.bCaseSens		= aBtnCase.IsChecked();
++	theSortData.bNaturalSort	= aBtnNaturalSort.IsChecked();
+ 	theSortData.bIncludePattern = aBtnFormats.IsChecked();
+ 	theSortData.bInplace		= !aBtnCopyResult.IsChecked();
+ 	theSortData.nDestCol		= theOutPos.Col();
+Index: sc/source/ui/inc/sortdlg.hrc
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/inc/sortdlg.hrc,v
+retrieving revision 1.3
+diff -u -r1.3 sortdlg.hrc
+--- sc/source/ui/inc/sortdlg.hrc	18 May 2001 09:16:28 -0000	1.3
++++ sc/source/ui/inc/sortdlg.hrc	13 Mar 2005 04:18:39 -0000
+@@ -95,7 +95,7 @@
+ #define LB_SORT_USER		2
+ #define LB_OUTAREA			3
+ #define ED_OUTAREA          4
+-#define FT_AREA_LABEL       5
++//#define FT_AREA_LABEL       5
+ //#define FT_AREA             6
+ #define BTN_SORT_USER       7
+ #define BTN_CASESENSITIVE   8
+@@ -110,6 +110,7 @@
+ #define LB_LANGUAGE         17
+ #define FT_ALGORITHM        18
+ #define LB_ALGORITHM        19
++#define	BTN_NATURALSORT		20
+ 
+ 
+ 
+Index: sc/source/ui/inc/tpsort.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/inc/tpsort.hxx,v
+retrieving revision 1.5
+diff -u -r1.5 tpsort.hxx
+--- sc/source/ui/inc/tpsort.hxx	4 Jun 2004 11:42:38 -0000	1.5
++++ sc/source/ui/inc/tpsort.hxx	13 Mar 2005 04:18:39 -0000
+@@ -105,7 +105,7 @@
+ struct ScSortParam;
+ 
+ //========================================================================
+-// Kriterien
++// Kriterien (Sort Criteria)
+ 
+ class ScTabPageSortFields : public SfxTabPage
+ {
+@@ -175,7 +175,7 @@
+ };
+ 
+ //========================================================================
+-// Sortieroptionen:
++// Sortieroptionen (Sort Options)
+ 
+ class ScDocument;
+ class ScRangeData;
+@@ -206,6 +206,7 @@
+     CheckBox            aBtnCase;
+     CheckBox            aBtnHeader;
+     CheckBox            aBtnFormats;
++	CheckBox			aBtnNaturalSort;
+ 
+     CheckBox            aBtnCopyResult;
+     ListBox             aLbOutPos;
+@@ -223,7 +224,7 @@
+     RadioButton         aBtnTopDown;
+     RadioButton         aBtnLeftRight;
+ 
+-    FixedText           aFtAreaLabel;
++//     FixedText           aFtAreaLabel;
+ //  FixedInfo           aFtArea;
+     String              aStrRowLabel;
+     String              aStrColLabel;
+Index: sc/source/ui/src/sortdlg.src
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/src/sortdlg.src,v
+retrieving revision 1.37
+diff -u -r1.37 sortdlg.src
+--- sc/source/ui/src/sortdlg.src	26 Jun 2004 20:10:37 -0000	1.37
++++ sc/source/ui/src/sortdlg.src	13 Mar 2005 04:18:40 -0000
+@@ -209,8 +209,19 @@
+ 		TabStop = TRUE ;
+ 	};
++	CheckBox BTN_NATURALSORT
++	{
++		Pos = MAP_APPFONT ( 12 , 48 ) ;
++		Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ de ] = "Enable ~natural sort" ;
++		Text [ en-US ] = "Enable ~natural sort" ;
++		Text [ cs ] = "Aktivovat přirozené třídění" ;
++       Text [ sk ] = "Aktivovať prirodzené triedenie" ;
++		TabStop = TRUE ;
++		Text [ x-comment ] = " " ;
++	};
+ 	CheckBox BTN_COPYRESULT
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 48 ) ;
++        Pos = MAP_APPFONT ( 12 , 62 ) ;
+         Size = MAP_APPFONT ( 242 , 10 ) ;
+ 		Text [ en-US ] = "~Copy sort results to:" ;
+ 		TabStop = TRUE ;
+@@ -221,7 +230,7 @@
+ 	ListBox LB_OUTAREA
+ 	{
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 20 , 59 ) ;
++        Pos = MAP_APPFONT ( 20 , 73 ) ;
+         Size = MAP_APPFONT ( 93 , 90 ) ;
+ 		TabStop = TRUE ;
+ 		DropDown = TRUE ;
+@@ -230,13 +239,13 @@
+ 	{
+ 		Disable = TRUE ;
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 119 , 59 ) ;
++        Pos = MAP_APPFONT ( 119 , 73 ) ;
+         Size = MAP_APPFONT ( 132 , 12 ) ;
+ 		TabStop = TRUE ;
+ 	};
+ 	CheckBox BTN_SORT_USER
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 75 ) ;
++        Pos = MAP_APPFONT ( 12 , 89 ) ;
+         Size = MAP_APPFONT ( 242 , 10 ) ;
+ 		Text [ en-US ] = "Custom sort ~order" ;
+ 		TabStop = TRUE ;
+@@ -247,14 +256,14 @@
+ 	{
+ 		Disable = TRUE ;
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 20 , 86 ) ;
++        Pos = MAP_APPFONT ( 20 , 100 ) ;
+         Size = MAP_APPFONT ( 231 , 90 ) ;
+ 		TabStop = TRUE ;
+ 		DropDown = TRUE ;
+ 	};
+     FixedText FT_LANGUAGE
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 104 ) ;
++        Pos = MAP_APPFONT ( 12 , 118 ) ;
+         Size = MAP_APPFONT ( 101 , 8 ) ;
+ 		Text [ en-US ] = "~Language";
+ 	};
+@@ -262,7 +271,7 @@
+ 	ListBox LB_LANGUAGE
+ 	{
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 12 , 115 ) ;
++        Pos = MAP_APPFONT ( 12 , 129 ) ;
+         Size = MAP_APPFONT ( 101 , 90 ) ;
+ 		TabStop = TRUE ;
+ 		DropDown = TRUE ;
+@@ -270,7 +279,7 @@
+ 	};
+     FixedText FT_ALGORITHM
+ 	{
+-        Pos = MAP_APPFONT ( 119 , 104 ) ;
++        Pos = MAP_APPFONT ( 119 , 118 ) ;
+         Size = MAP_APPFONT ( 132 , 8 ) ;
+ 		Text [ en-US ] = "O~ptions";
+ 	};
+@@ -278,14 +287,14 @@
+ 	ListBox LB_ALGORITHM
+ 	{
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 119 , 115 ) ;
++        Pos = MAP_APPFONT ( 119 , 129 ) ;
+         Size = MAP_APPFONT ( 132 , 90 ) ;
+ 		TabStop = TRUE ;
+ 		DropDown = TRUE ;
+ 	};
+ 	FixedLine FL_DIRECTION
+ 	{
+-        Pos = MAP_APPFONT ( 6 , 133 ) ;
++        Pos = MAP_APPFONT ( 6 , 147 ) ;
+         Size = MAP_APPFONT ( 248 , 8 ) ;
+ 		Text [ en-US ] = "Direction" ;
+ 	};
+@@ -293,7 +302,7 @@
+ 	};
+ 	RadioButton BTN_TOP_DOWN
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 144 ) ;
++        Pos = MAP_APPFONT ( 12 , 158 ) ;
+         Size = MAP_APPFONT ( 242 , 10 ) ;
+ 		Text [ en-US ] = "~Top to bottom (sort rows)" ;
+ 		TabStop = TRUE ;
+@@ -302,11 +311,12 @@
+ 	};
+ 	RadioButton BTN_LEFT_RIGHT
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 158 ) ;
++        Pos = MAP_APPFONT ( 12 , 172 ) ;
+         Size = MAP_APPFONT ( 242 , 10 ) ;
+ 		Text [ en-US ] = "L~eft to right (sort columns)" ;
+ 		TabStop = TRUE ;
+ 	};
++/*
+ 	FixedText FT_AREA_LABEL
+ 	{
+         Pos = MAP_APPFONT ( 6 , 171 ) ;
+@@ -317,5 +327,6 @@
+ 		Text [ en-US ] = "Data area:" ;
+ 	};
++*/
+ };
+ TabDialog RID_SCDLG_SORT
+ {
+Index: sc/source/ui/view/cellsh2.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/cellsh2.cxx,v
+retrieving revision 1.22
+diff -u -r1.22 cellsh2.cxx
+--- sc/source/ui/view/cellsh2.cxx	4 Oct 2004 20:22:08 -0000	1.22
++++ sc/source/ui/view/cellsh2.cxx	13 Mar 2005 04:18:40 -0000
+@@ -329,6 +329,7 @@
+ 				aSortParam.bHasHeader		= FALSE;
+ 				aSortParam.bByRow			= TRUE;
+ 				aSortParam.bCaseSens		= FALSE;
++				aSortParam.bNaturalSort		= FALSE;
+ 				aSortParam.bIncludePattern	= FALSE;
+ 				aSortParam.bInplace 		= TRUE;
+ 				aSortParam.bDoSort[0]		= TRUE;
+@@ -364,6 +365,8 @@
+ 						aSortParam.bHasHeader = ((const SfxBoolItem*)pItem)->GetValue();
+ 					if ( pArgs->GetItemState( SID_SORT_CASESENS, TRUE, &pItem ) == SFX_ITEM_SET )
+ 						aSortParam.bCaseSens = ((const SfxBoolItem*)pItem)->GetValue();
++					if ( pArgs->GetItemState( SID_SORT_NATURALSORT, TRUE, &pItem ) == SFX_ITEM_SET )
++						aSortParam.bNaturalSort = ((const SfxBoolItem*)pItem)->GetValue();
+ 					if ( pArgs->GetItemState( SID_SORT_ATTRIBS, TRUE, &pItem ) == SFX_ITEM_SET )
+ 						aSortParam.bIncludePattern = ((const SfxBoolItem*)pItem)->GetValue();
+ 					if ( pArgs->GetItemState( SID_SORT_USERDEF, TRUE, &pItem ) == SFX_ITEM_SET )
+@@ -417,7 +420,7 @@
+ 
+ 					pDlg = pFact->CreateScSortDlg( pTabViewShell->GetDialogParent(),  &aArgSet, RID_SCDLG_SORT );
+ 					DBG_ASSERT(pDlg, "Dialog create fail!");//CHINA001
+-					pDlg->SetCurPageId(1);
++					pDlg->SetCurPageId(1);	// 1=sort field tab  2=sort options tab
+ 
+ 					if ( pDlg->Execute() == RET_OK )
+ 					{
+@@ -436,6 +439,8 @@
+ 												rOutParam.bHasHeader ) );
+ 							rReq.AppendItem( SfxBoolItem( SID_SORT_CASESENS,
+ 												rOutParam.bCaseSens ) );
++							rReq.AppendItem( SfxBoolItem( SID_SORT_NATURALSORT,
++												rOutParam.bNaturalSort ) );
+ 							rReq.AppendItem( SfxBoolItem( SID_SORT_ATTRIBS,
+ 												rOutParam.bIncludePattern ) );
+ 							USHORT nUser = rOutParam.bUserDef ? ( rOutParam.nUserIndex + 1 ) : 0;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libwpd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libwpd.diff
@@ -0,0 +1,13 @@
+--- libwpd/makefile.mk	23 Jan 2007 12:10:32 -0000	1.14
++++ libwpd/makefile.mk	15 Jun 2007 11:04:20 -0000
+@@ -49,8 +49,8 @@
+ 	@echo "Using system libwpd..."
+ .ENDIF
+ 
+-TARFILE_NAME=libwpd-0.8.8
++TARFILE_NAME=libwpd-0.8.14
+-PATCH_FILE_NAME=$(TARFILE_NAME).diff
++#PATCH_FILE_NAME=$(TARFILE_NAME).diff
+ BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ BUILD_DIR=src$/lib
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/stlport-solaris-fileno.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/stlport-solaris-fileno.diff
@@ -0,0 +1,26 @@
+--- stlport/STLport-4.0.patch	20 Jun 2006 04:08:21 -0000	1.14
++++ stlport/STLport-4.0.patch	5 Nov 2007 13:30:59 -0000
+@@ -3273,6 +3273,23 @@
+   
+   //----------------------------------------------------------------------
+ ***************
++*** 92,98 ****
++  typedef  unsigned char* _File_ptr_type;
++  #endif
++  
++! inline int   _FILE_fd(const FILE& __f) { return __f._file; }
++  inline char* _FILE_I_begin(const FILE& __f) { return (char*) __f._base; }
++  inline char* _FILE_I_next(const FILE& __f) { return (char*) __f._ptr; }  
++  inline char* _FILE_I_end(const FILE& __f)
++--- 92,98 ----
++  typedef  unsigned char* _File_ptr_type;
++  #endif
++  
++! inline int   _FILE_fd(const FILE& __f) { return fileno(__CONST_CAST(FILE*,&__f)); }
++  inline char* _FILE_I_begin(const FILE& __f) { return (char*) __f._base; }
++  inline char* _FILE_I_next(const FILE& __f) { return (char*) __f._ptr; }  
++  inline char* _FILE_I_end(const FILE& __f)
++***************
+ *** 377,382 ****
+ --- 380,388 ----
+   # endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-basic.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-basic.diff
@@ -0,0 +1,4 @@
+--- basic/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ basic/prj/tests.lst	2007-09-07 13:05:52.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: sb   basic\workben                                      nmake - all sb_workben NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-properties.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-properties.diff
@@ -0,0 +1,61 @@
+diff --git sfx2/source/bastyp/helper.cxx sfx2/source/bastyp/helper.cxx
+index eda78c5..e9470a9 100644
+--- sfx2/source/bastyp/helper.cxx
++++ sfx2/source/bastyp/helper.cxx
+@@ -836,16 +836,15 @@ ErrCode SfxContentHelper::QueryDiskSpace( const String& rPath, sal_Int64& rFreeB
+ 
+ // -----------------------------------------------------------------------
+ 
+-ULONG SfxContentHelper::GetSize( const String& rContent )
++sal_Int64 SfxContentHelper::GetSize( const String& rContent )
+ {
+-	ULONG nSize = 0;
+-	sal_Int64 nTemp = 0;
++	sal_Int64 nSize = -1;
+     INetURLObject aObj( rContent );
+     DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" );
+ 	try
+ 	{
+ 		::ucbhelper::Content aCnt( aObj.GetMainURL( INetURLObject::NO_DECODE ), uno::Reference< ucb::XCommandEnvironment > () );
+-		aCnt.getPropertyValue( OUString::createFromAscii( "Size" ) ) >>= nTemp;
++		aCnt.getPropertyValue( OUString::createFromAscii( "Size" ) ) >>= nSize;
+ 	}
+ 	catch( ucb::CommandAbortedException& )
+ 	{
+@@ -855,7 +854,6 @@ ULONG SfxContentHelper::GetSize( const String& rContent )
+ 	{
+ 		DBG_ERRORFILE( "Any other exception" );
+ 	}
+-	nSize = (UINT32)nTemp;
+ 	return nSize;
+ }
+ 
+diff --git sfx2/source/dialog/dinfdlg.cxx sfx2/source/dialog/dinfdlg.cxx
+index d770459..6fb37c7 100644
+--- sfx2/source/dialog/dinfdlg.cxx
++++ sfx2/source/dialog/dinfdlg.cxx
+@@ -904,8 +904,9 @@ void SfxDocumentPage::Reset( const SfxItemSet& rSet )
+ 
+ 	// Bestimmung von Groesse und Typ
+ 	String aSizeText( aUnknownSize );
+-	if ( aURL.GetProtocol() == INET_PROT_FILE )
+-		aSizeText = CreateSizeText( SfxContentHelper::GetSize( aURL.GetMainURL( INetURLObject::NO_DECODE ) ) );
++	sal_Int64 nSize = SfxContentHelper::GetSize( aURL.GetMainURL( INetURLObject::NO_DECODE ) );
++	if ( nSize >= 0 )
++		aSizeText = CreateSizeText( static_cast< ULONG >( nSize ) );
+ 	aShowSizeFT.SetText( aSizeText );
+ 
+ 	String aDescription = SvFileInformationManager::GetDescription( INetURLObject(rMainURL) );
+diff --git sfx2/source/inc/helper.hxx sfx2/source/inc/helper.hxx
+index 040aaa7..41ab691 100644
+--- sfx2/source/inc/helper.hxx
++++ sfx2/source/inc/helper.hxx
+@@ -78,7 +78,7 @@ public:
+ 
+ 	static sal_Bool				MakeFolder( const String& rFolder );
+ 	static ErrCode				QueryDiskSpace( const String& rPath, sal_Int64& rFreeBytes );
+-	static ULONG				GetSize( const String& rContent );
++	static sal_Int64			GetSize( const String& rContent );
+ 	static sal_Bool				IsYounger( const String& rIsYoung, const String& rIsOlder );
+ 
+ 	// please don't use this!
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/db4-jni-casting.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/db4-jni-casting.diff
@@ -0,0 +1,3544 @@
+Index: db-4.2.52.patch
+===================================================================
+RCS file: /cvs/external/berkeleydb/db-4.2.52.patch,v
+retrieving revision 1.22.6.1
+diff -u -u -r1.22.6.1 db-4.2.52.patch
+--- berkeleydb/db-4.2.52.patch	25 Oct 2007 14:01:17 -0000	1.22.6.1
++++ berkeleydb/db-4.2.52.patch	3 Nov 2007 12:41:36 -0000
+@@ -2221,3 +2221,3536 @@
+ ! 			$(SLO)$/xa_map.obj
+ ! 
+ ! .INCLUDE :  target.mk
++*** misc/db-4.2.52.NC/libdb_java/db_java_wrap.c	2003-12-03 16:10:36.000000000 -0500
++--- misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c	2005-05-23 14:54:42.000000000 -0400
++***************
++*** 371,377 ****
++  	memset(lsn_copy, 0, sizeof(DB_LSN));
++  	*lsn_copy = *lsn;
++  	/* Magic to convert a pointer to a long - must match SWIG */
++! 	*(DB_LSN **)&jptr = lsn_copy;
++  	return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
++  	    jptr, JNI_TRUE);
++  }
++--- 371,378 ----
++  	memset(lsn_copy, 0, sizeof(DB_LSN));
++  	*lsn_copy = *lsn;
++  	/* Magic to convert a pointer to a long - must match SWIG */
++! 	jptr = (intptr_t) lsn_copy;
++! /*	*(DB_LSN **)&jptr = lsn_copy; */
++  	return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
++  	    jptr, JNI_TRUE);
++  }
++***************
++*** 632,638 ****
++  	int completed;
++  
++  	COMPQUIET(jcls, NULL);
++! 	dbenv = *(DB_ENV **)&jdbenvp;
++  	jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
++  
++  	if (dbenv == NULL) {
++--- 633,640 ----
++  	int completed;
++  
++  	COMPQUIET(jcls, NULL);
++! 	dbenv = (DB_ENV *)((intptr_t)jdbenvp);
++! /*	dbenv = *(DB_ENV **)&jdbenvp; */
++  	jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
++  
++  	if (dbenv == NULL) {
++***************
++*** 701,707 ****
++  				    "DbLockRequest lock field is NULL", NULL, jdbenv);
++  				goto out2;
++  			}
++! 			lockp = *(DB_LOCK **)&jlockp;
++  			prereq->lock = *lockp;
++  			break;
++  		case DB_LOCK_PUT_ALL:
++--- 703,710 ----
++  				    "DbLockRequest lock field is NULL", NULL, jdbenv);
++  				goto out2;
++  			}
++! 			lockp = (DB_LOCK *)((intptr_t)jlockp);
++! /*			lockp = *(DB_LOCK **)&jlockp; */
++  			prereq->lock = *lockp;
++  			break;
++  		case DB_LOCK_PUT_ALL:
++***************
++*** 745,751 ****
++  			    lockreq_lock_fid);
++  			jlockp = (*jenv)->GetLongField(jenv, jlock,
++  			    lock_cptr_fid);
++! 			lockp = *(DB_LOCK **)&jlockp;
++  			__os_free(NULL, lockp);
++  			(*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
++  			    (jlong)0);
++--- 748,755 ----
++  			    lockreq_lock_fid);
++  			jlockp = (*jenv)->GetLongField(jenv, jlock,
++  			    lock_cptr_fid);
++! 			lockp = (DB_LOCK *)((intptr_t)jlockp);
++! /*			lockp = *(DB_LOCK **)&jlockp; */
++  			__os_free(NULL, lockp);
++  			(*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
++  			    (jlong)0);
++***************
++*** 763,769 ****
++  			}
++  
++  			*lockp = lockreq[i].lock;
++! 			*(DB_LOCK **)&jlockp = lockp;
++  
++  			jlockreq = (*jenv)->GetObjectArrayElement(jenv,
++  			    list, i + offset);
++--- 767,774 ----
++  			}
++  
++  			*lockp = lockreq[i].lock;
++! 			jlockp = (intptr_t)lockp;
++! /*			*(DB_LOCK **)&jlockp = lockp; */
++  
++  			jlockreq = (*jenv)->GetObjectArrayElement(jenv,
++  			    list, i + offset);
++***************
++*** 1194,1200 ****
++  
++  JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB_ENV *self = *(DB_ENV **)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++--- 1199,1206 ----
++  
++  JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB_ENV *self = (DB_ENV *)((intptr_t)jarg1);
++! /*	DB_ENV *self = *(DB_ENV **)&jarg1; */
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++***************
++*** 1204,1210 ****
++  
++  JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB *self = *(DB **)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++--- 1210,1217 ----
++  
++  JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB *self = (DB *)((intptr_t)jarg1);
++! /*	DB *self = *(DB **)&jarg1; */
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++***************
++*** 1221,1227 ****
++  
++  JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = *(DB **)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  	COMPQUIET(jenv, NULL);
++  
++--- 1228,1235 ----
++  
++  JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = (DB *)((intptr_t)jarg1);
++! /*	DB *self = *(DB **)&jarg1; */
++  	COMPQUIET(jcls, NULL);
++  	COMPQUIET(jenv, NULL);
++  
++***************
++*** 1230,1242 ****
++  
++  JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = *(DB **)&jarg1;
++  	jlong env_cptr;
++  
++  	COMPQUIET(jenv, NULL);
++  	COMPQUIET(jcls, NULL);
++  
++! 	*(DB_ENV **)&env_cptr = self->dbenv;
++  	return env_cptr;
++  }
++  
++--- 1238,1252 ----
++  
++  JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = (DB *)((intptr_t)jarg1);
++! /*	DB *self = *(DB **)&jarg1; */
++  	jlong env_cptr;
++  
++  	COMPQUIET(jenv, NULL);
++  	COMPQUIET(jcls, NULL);
++  
++! 	env_cptr = (jlong)((intptr_t)(self->dbenv));
++! /*	*(DB_ENV **)&env_cptr = self->dbenv; */
++  	return env_cptr;
++  }
++  
++***************
++*** 1997,2003 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(DB_ENV **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      errno = 0;
++--- 2007,2014 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (DB_ENV *)((intptr_t)jarg1);
++! /*    arg1 = *(DB_ENV **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      errno = 0;
++***************
++*** 2006,2012 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(struct __db **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 2017,2024 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(struct __db **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 2021,2029 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++!     arg3 = *(DB **)&jarg3; 
++      
++      arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
++      
++--- 2033,2044 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++!     arg3 = (DB *)((intptr_t)jarg3);
++! /*    arg3 = *(DB **)&jarg3; */
++      
++      arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
++      
++***************
++*** 2051,2057 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 2066,2073 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 2080,2087 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++--- 2096,2105 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++***************
++*** 2096,2102 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     *(DBC **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 2114,2121 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DBC **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 2112,2119 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 2131,2140 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 2147,2153 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++--- 2168,2175 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++***************
++*** 2176,2182 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 2198,2205 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 2211,2218 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 2234,2243 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 2254,2260 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2279,2286 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2282,2288 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2308,2315 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2308,2314 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2335,2342 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2334,2340 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2362,2369 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2362,2368 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2391,2398 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2390,2396 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2420,2427 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2416,2422 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2447,2454 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2442,2448 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2474,2481 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2468,2474 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2501,2508 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2482,2488 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     *(DB_MPOOLFILE **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 2516,2523 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_MPOOLFILE **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 2494,2500 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2529,2536 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2520,2526 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2556,2563 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2546,2552 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2583,2590 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2572,2578 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2610,2617 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2598,2604 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2637,2644 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2624,2630 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2664,2671 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2650,2656 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2691,2698 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2676,2682 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2718,2725 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2702,2708 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2745,2752 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2730,2736 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2774,2781 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2756,2762 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2801,2808 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2782,2788 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2828,2835 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2810,2816 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2857,2864 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2838,2844 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          int i, count, err;
++          
++--- 2886,2893 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          int i, count, err;
++          
++***************
++*** 2858,2864 ****
++              }else {
++                  jlong jptr = (*jenv)->GetLongField(jenv, jobj,
++                  dbc_cptr_fid);
++!                 arg2[i] = *(DBC **)&jptr;
++              }
++          }
++          arg2[count] = NULL;
++--- 2907,2914 ----
++              }else {
++                  jlong jptr = (*jenv)->GetLongField(jenv, jobj,
++                  dbc_cptr_fid);
++!                 arg2[i] = (DBC *)((intptr_t)jptr);
++! /*                arg2[i] = *(DBC **)&jptr; */
++              }
++          }
++          arg2[count] = NULL;
++***************
++*** 2877,2883 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     *(DBC **)&jresult = result; 
++      
++      __os_free(NULL, arg2);
++      
++--- 2927,2934 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DBC **)&jresult = result; */
++      
++      __os_free(NULL, arg2);
++      
++***************
++*** 2897,2904 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++--- 2948,2957 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++***************
++*** 2943,2950 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 2996,3005 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 2998,3005 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 3053,3062 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 3055,3062 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 3112,3121 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 3100,3106 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3159,3166 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3147,3153 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3207,3214 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3201,3207 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
++      
++--- 3262,3269 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
++      
++***************
++*** 3227,3233 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
++      
++--- 3289,3296 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
++      
++***************
++*** 3253,3259 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3316,3323 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3277,3283 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3341,3348 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3301,3307 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
++      
++--- 3366,3373 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
++      
++***************
++*** 3328,3334 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++--- 3394,3401 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++***************
++*** 3353,3359 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
++      
++--- 3420,3427 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
++      
++***************
++*** 3380,3386 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3448,3455 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3414,3420 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
++      
++--- 3483,3490 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
++      
++***************
++*** 3440,3446 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3510,3517 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3464,3470 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3535,3542 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3488,3494 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
++      
++--- 3560,3567 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
++      
++***************
++*** 3514,3520 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3587,3594 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3538,3544 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3612,3619 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3562,3568 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3637,3644 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3586,3592 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3662,3669 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3610,3616 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3687,3694 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3634,3640 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3712,3719 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3658,3664 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3737,3744 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3691,3697 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3771,3778 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3716,3722 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3797,3804 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3793,3799 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3875,3882 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3819,3826 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++--- 3902,3911 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3848,3854 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3933,3940 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3886,3892 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3972,3979 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3937,3943 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4024,4031 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 3961,3967 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4049,4056 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3989,3995 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4078,4085 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4016,4022 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4106,4113 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4031,4037 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
++      
++!     *(DBC **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 4122,4129 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DBC **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 4048,4054 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 4140,4147 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 4097,4103 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 4190,4198 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++! 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 4152,4158 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 4247,4255 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++! 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 4202,4208 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     *(struct __db_env **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 4299,4306 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(struct __db_env **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 4214,4220 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4312,4319 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4241,4248 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 4340,4349 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 4290,4297 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 4391,4400 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 4345,4351 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++--- 4448,4455 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++***************
++*** 4374,4380 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4478,4485 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4403,4409 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4508,4515 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4445,4451 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4551,4558 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4471,4477 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4578,4585 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4497,4503 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4605,4612 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4525,4531 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4634,4641 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4551,4557 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4661,4668 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4577,4583 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4688,4695 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4603,4609 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4715,4722 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4632,4638 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4745,4752 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4663,4669 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4777,4784 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4699,4705 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4814,4821 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4734,4740 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++--- 4850,4857 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++***************
++*** 4759,4765 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4876,4883 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4793,4799 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4911,4918 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4826,4832 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
++      
++--- 4945,4952 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
++      
++***************
++*** 4849,4855 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++--- 4969,4976 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++***************
++*** 4876,4882 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
++      
++--- 4997,5004 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
++      
++***************
++*** 4902,4908 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (size_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5024,5031 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (size_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4926,4932 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
++      
++--- 5049,5056 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
++      
++***************
++*** 4956,4963 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(void **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 5080,5089 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (void *)((intptr_t)jarg2);
++! /*    arg2 = *(void **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 5000,5006 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (long)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5126,5133 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (long)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5024,5030 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5151,5158 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5049,5055 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 5177,5184 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 5074,5080 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 5203,5210 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 5107,5113 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5237,5244 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5131,5137 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
++      
++--- 5262,5269 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
++      
++***************
++*** 5158,5164 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      time2 = (time_t)jarg2;
++      arg2 = &time2;
++--- 5290,5297 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      time2 = (time_t)jarg2;
++      arg2 = &time2;
++***************
++*** 5186,5192 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++--- 5319,5326 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++***************
++*** 5213,5219 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5347,5354 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5255,5261 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5390,5397 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5281,5287 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5417,5424 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5307,5313 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5444,5451 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5333,5339 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5471,5478 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5361,5367 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 5500,5507 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 5394,5400 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 5534,5541 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 5421,5427 ****
++      }else if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(DB_LOCK **)&jresult = result; 
++      
++      if (ldbt4.jarr != NULL) {
++          (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
++--- 5562,5569 ----
++      }else if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_LOCK **)&jresult = result; */
++      
++      if (ldbt4.jarr != NULL) {
++          (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
++***************
++*** 5439,5445 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5581,5588 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5465,5471 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5608,5615 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5489,5496 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LOCK **)&jarg2; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5633,5642 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LOCK *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LOCK **)&jarg2; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5514,5520 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5660,5667 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5546,5552 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          int i, len, err;
++          size_t bytesize;
++--- 5693,5700 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          int i, len, err;
++          size_t bytesize;
++***************
++*** 5591,5597 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5739,5746 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5615,5621 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5764,5771 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5639,5645 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5789,5796 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5663,5669 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5814,5821 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5687,5693 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5839,5846 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5713,5719 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5866,5873 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5741,5747 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5895,5902 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5767,5773 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5922,5929 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5794,5800 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5950,5957 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5839,5846 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(DB_LSN **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
++      
++      jresult = (jint)result; 
++--- 5996,6005 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (DB_LSN *)((intptr_t)jarg1);
++! /*    arg1 = *(DB_LSN **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
++      
++      jresult = (jint)result; 
++***************
++*** 5856,5862 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6015,6022 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5871,5877 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(DB_LOGC **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 6031,6038 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_LOGC **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 5884,5891 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6045,6054 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5913,5920 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6076,6085 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5940,5947 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++--- 6105,6114 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++***************
++*** 5977,5983 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6144,6151 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6009,6015 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6177,6184 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6033,6039 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 6202,6209 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 6066,6072 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6236,6243 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6090,6096 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6261,6268 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6114,6120 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6286,6293 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6140,6146 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6313,6320 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6166,6172 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6340,6347 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6193,6199 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6368,6375 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6226,6232 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6402,6409 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6276,6282 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6453,6460 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6303,6309 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6481,6488 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6329,6335 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6508,6515 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6356,6362 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6536,6543 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6385,6392 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++--- 6566,6575 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6401,6407 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(DB_TXN **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 6584,6591 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_TXN **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 6415,6421 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++--- 6599,6606 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++***************
++*** 6443,6449 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 6628,6635 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 6498,6504 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6684,6691 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6551,6557 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6738,6745 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6580,6586 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      arg3 = (int)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++--- 6768,6775 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      arg3 = (int)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++***************
++*** 6616,6622 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 6805,6812 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 6631,6637 ****
++      id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
++      arg4 = &id4;
++      
++!     arg5 = *(DB_LSN **)&jarg5; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6821,6828 ----
++      id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
++      arg4 = &id4;
++      
++!     arg5 = (DB_LSN *)((intptr_t)jarg5);
++! /*    arg5 = *(DB_LSN **)&jarg5; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6667,6673 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return ;
++--- 6858,6865 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return ;
++***************
++*** 6700,6706 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6892,6899 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6732,6738 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6925,6932 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6757,6763 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
++--- 6951,6958 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
++***************
++*** 6854,6860 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7049,7056 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6877,6883 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7073,7080 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6901,6907 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7098,7105 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6925,6931 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7123,7130 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6946,6952 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      
++      arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
++      
++--- 7145,7152 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      
++      arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
++      
++***************
++*** 6983,6989 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 7183,7190 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 7008,7014 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_log_cursor **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7209,7216 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_log_cursor **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 7036,7043 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_log_cursor **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 7238,7247 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_log_cursor **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 7069,7075 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lock_u **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7273,7280 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lock_u *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lock_u **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7098,7104 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     *(struct __db_lsn **)&jresult = result; 
++      return jresult;
++  }
++  
++--- 7303,7310 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(struct __db_lsn **)&jresult = result; */
++      return jresult;
++  }
++  
++***************
++*** 7108,7114 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lsn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7314,7321 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lsn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lsn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7127,7133 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lsn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7334,7341 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lsn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lsn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7148,7154 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lsn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7356,7363 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lsn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lsn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7169,7175 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7378,7385 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7195,7201 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      arg2 = (DB_CACHE_PRIORITY)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7405,7412 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      arg2 = (DB_CACHE_PRIORITY)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 7219,7225 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7430,7437 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7246,7252 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++--- 7458,7465 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++***************
++*** 7273,7279 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7486,7493 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7299,7305 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7513,7520 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_directory_accessories.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_directory_accessories.diff
@@ -0,0 +1,142 @@
+--- scp2/source/ooo/directory_ooo.scp.orig	2007-08-10 19:15:32.000000000 +0200
++++ scp2/source/ooo/directory_ooo.scp	2007-09-12 15:16:23.052215200 +0200
+@@ -1595,3 +1595,139 @@
+ End
+ 
+ #endif
++
++/* *** KAMI Extras *** */
++
++/* ** Gallery ** */
++
++/* Draws */
++Directory gid_Dir_Gallery_Draws
++    ParentID = gid_Dir_Gallery;
++    DosName = "Draws";
++End
++
++/* Draws - People */
++Directory gid_Dir_Gallery_Draws_People
++    ParentID = gid_Dir_Gallery_Draws;
++    DosName = "People";
++End
++
++/* Photos */
++Directory gid_Dir_Gallery_Photos
++    ParentID = gid_Dir_Gallery;
++    DosName = "Photos";
++End
++
++/* Photos - Cities */
++Directory gid_Dir_Gallery_Photos_Cities
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Cities";
++End
++
++/* Photos - Buildings */
++Directory gid_Dir_Gallery_Photos_Buildings
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Buildings";
++End
++
++/* Photos - Plants */
++Directory gid_Dir_Gallery_Photos_Plants
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Plants";
++End
++
++/* Photos - Fauna */
++Directory gid_Dir_Gallery_Photos_Fauna
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Fauna";
++End
++
++/* Photos - Flowers */
++Directory gid_Dir_Gallery_Photos_Flowers
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Flowers";
++End
++
++/* Photos - Landscapes */
++Directory gid_Dir_Gallery_Photos_Landscapes
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Landscapes";
++End
++
++/* Photos - Statues */
++Directory gid_Dir_Gallery_Photos_Statues
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Statues";
++End
++
++/* Photos - Space */
++Directory gid_Dir_Gallery_Photos_Space
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Space";
++End
++
++/* Photos - Travel */
++Directory gid_Dir_Gallery_Photos_Travel
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Travel";
++End
++
++/* Photos - Objects */
++Directory gid_Dir_Gallery_Photos_Objects
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Objects";
++End
++
++/* Photos - Humans */
++Directory gid_Dir_Gallery_Photos_Humans
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Humans";
++End
++
++/* Photos - FoodsandDrinks */
++Directory gid_Dir_Gallery_Photos_FoodsandDrinks
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "FoodsandDrinks";
++End
++
++/* Photos - Celebration */
++Directory gid_Dir_Gallery_Photos_Celebration
++    ParentID = gid_Dir_Gallery_Photos;
++    DosName = "Celebration";
++End
++
++/* Samples - Documentations */
++Directory gid_Dir_Samples_Documentations
++    ParentID = gid_Dir_Samples_Language;
++    DosName = "Documentations";
++End
++
++/* Samples - Advertisement */
++Directory gid_Dir_Samples_Advertisement
++    ParentID = gid_Dir_Samples_Language;
++    DosName = "Advertisement";
++End
++
++ /* Macros - Premium */
++Directory gid_Dir_Basic_Premium
++    ParentID = gid_Dir_Basic;
++    DosName = "Premium";
++End
++
++ /* Macros - OOoWikipedia */
++Directory gid_Dir_Basic_OOoWikipedia
++    ParentID = gid_Dir_Basic;
++    DosName = "OOoWikipedia";
++End
++
++/* Elements */
++Directory gid_Dir_Gallery_Elements
++    ParentID = gid_Dir_Gallery;
++    DosName = "Elements";
++End
++
++/* Elements - Bullets 2 */
++Directory gid_Dir_Gallery_Elements_Bullets2
++    ParentID = gid_Dir_Gallery_Elements;
++    DosName = "Bullets2";
++End
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/human-icons-add.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/human-icons-add.diff
@@ -0,0 +1,185 @@
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs.old	2007-07-18 05:44:03.000000000 -0500
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2007-08-04 02:48:14.000000000 -0500
+@@ -5383,7 +5383,12 @@
+ 					</enumeration>
+ 					<enumeration oor:value="tango">
+ 						<info>
+-							<desc>Tango - the Gnome default theme</desc>
++							<desc>Tango</desc>
++						</info>
++					</enumeration>
++					<enumeration oor:value="human">
++						<info>
++							<desc>Human - the Gnome default theme for Ubuntu</desc>
+ 						</info>
+ 					</enumeration>
+ 				</constraints>
+--- solenv/inc/settings.mk.old	2007-08-04 02:51:40.000000000 -0500
++++ solenv/inc/settings.mk	2007-08-04 02:51:55.000000000 -0500
+@@ -946,7 +946,7 @@
+ .ENDIF
+ 
+ # additional image sets
+-CUSTOM_IMAGE_SETS=hicontrast industrial crystal tango
++CUSTOM_IMAGE_SETS=hicontrast industrial crystal tango human
+ 
+ # settings for mozilla idl compiler
+ XPIDL=xpidl
+--- svtools/inc/imgdef.hxx.old	2007-06-04 09:47:50.000000000 -0500
++++ svtools/inc/imgdef.hxx	2007-08-04 02:53:12.000000000 -0500
+@@ -50,7 +50,8 @@
+     SFX_SYMBOLS_STYLE_HICONTRAST,
+     SFX_SYMBOLS_STYLE_INDUSTRIAL,
+     SFX_SYMBOLS_STYLE_CRYSTAL,
+-    SFX_SYMBOLS_STYLE_TANGO
++    SFX_SYMBOLS_STYLE_TANGO,
++    SFX_SYMBOLS_STYLE_HUMAN
+ };
+ 
+ #define SFX_TOOLBOX_CHANGESYMBOLSET		0x0001
+--- svtools/source/config/miscopt.cxx.old	2007-06-27 16:14:41.000000000 -0500
++++ svtools/source/config/miscopt.cxx	2007-08-04 02:56:14.000000000 -0500
+@@ -286,6 +286,7 @@
+ 		case STYLE_SYMBOLS_INDUSTRIAL: return SFX_SYMBOLS_STYLE_INDUSTRIAL;
+ 		case STYLE_SYMBOLS_CRYSTAL:    return SFX_SYMBOLS_STYLE_CRYSTAL;
+ 		case STYLE_SYMBOLS_TANGO:      return SFX_SYMBOLS_STYLE_TANGO;
++		case STYLE_SYMBOLS_HUMAN:      return SFX_SYMBOLS_STYLE_HUMAN;
+ 	}
+ 
+ 	return SFX_SYMBOLS_STYLE_AUTO;
+@@ -301,6 +302,7 @@
+ 		case SFX_SYMBOLS_STYLE_INDUSTRIAL: return STYLE_SYMBOLS_INDUSTRIAL;
+ 		case SFX_SYMBOLS_STYLE_CRYSTAL:    return STYLE_SYMBOLS_CRYSTAL;
+ 		case SFX_SYMBOLS_STYLE_TANGO:      return STYLE_SYMBOLS_TANGO;
++		case SFX_SYMBOLS_STYLE_HUMAN:      return STYLE_SYMBOLS_HUMAN;
+ 	}
+ 
+ 	return STYLE_SYMBOLS_AUTO;
+--- svx/source/dialog/optgdlg.cxx.old	2007-07-11 06:03:03.000000000 -0500
++++ svx/source/dialog/optgdlg.cxx	2007-08-04 02:59:17.000000000 -0500
+@@ -918,6 +918,7 @@
+             case 3: eSet = SFX_SYMBOLS_STYLE_INDUSTRIAL; break;
+             case 4: eSet = SFX_SYMBOLS_STYLE_CRYSTAL;    break;
+             case 5: eSet = SFX_SYMBOLS_STYLE_TANGO;      break;
++            case 6: eSet = SFX_SYMBOLS_STYLE_HUMAN;      break;
+             default:
+                 DBG_ERROR( "OfaViewTabPage::FillItemSet(): This state of aIconStyleLB should not be possible!" );
+         }
+@@ -1089,6 +1090,7 @@
+             case SFX_SYMBOLS_STYLE_INDUSTRIAL: nStyleLB_InitialSelection = 3; break;
+             case SFX_SYMBOLS_STYLE_CRYSTAL:    nStyleLB_InitialSelection = 4; break;
+             case SFX_SYMBOLS_STYLE_TANGO:      nStyleLB_InitialSelection = 5; break;
++            case SFX_SYMBOLS_STYLE_HUMAN:      nStyleLB_InitialSelection = 6; break;
+             default:                           nStyleLB_InitialSelection = 0; break;
+         }
+     }
+--- svx/source/dialog/optgdlg.src.old	2007-06-27 12:27:39.000000000 -0500
++++ svx/source/dialog/optgdlg.src	2007-08-04 03:18:01.000000000 -0500
+@@ -243,6 +243,7 @@
+             < "Industrial" ; > ;
+             < "Crystal" ; > ;
+             < "Tango" ; > ;
++            < "Human" ; > ;
+         };
+     };
+ 	CheckBox CB_SYSTEM_FONT
+--- vcl/inc/vcl/settings.hxx.old	2007-06-04 09:57:34.000000000 -0500
++++ vcl/inc/vcl/settings.hxx	2007-08-04 03:06:54.000000000 -0500
+@@ -529,7 +529,8 @@
+ #define STYLE_SYMBOLS_INDUSTRIAL	((ULONG)3)
+ #define STYLE_SYMBOLS_CRYSTAL		((ULONG)4)
+ #define STYLE_SYMBOLS_TANGO		((ULONG)5)
+-#define STYLE_SYMBOLS_THEMES_MAX	((ULONG)5)
++#define STYLE_SYMBOLS_HUMAN		((ULONG)6)
++#define STYLE_SYMBOLS_THEMES_MAX	((ULONG)6)
+ 
+ #define STYLE_CURSOR_NOBLINKTIME    ((ULONG)0xFFFFFFFF)
+ 
+--- vcl/source/app/settings.cxx.orig	2008-04-03 23:58:54.000000000 -0500
++++ vcl/source/app/settings.cxx	2008-04-05 18:11:50.000000000 -0500
+@@ -84,6 +84,11 @@
+ #include <tools/postwin.h>
+ #endif
+ 
++extern "C" {
++#include <unistd.h>
++#include <string.h>
++}
++
+ using namespace rtl;
+ 
+ // =======================================================================
+@@ -728,6 +733,7 @@
+ 		case STYLE_SYMBOLS_INDUSTRIAL: return ::rtl::OUString::createFromAscii( "industrial" );
+ 		case STYLE_SYMBOLS_CRYSTAL:    return ::rtl::OUString::createFromAscii( "crystal" );
+ 		case STYLE_SYMBOLS_TANGO:      return ::rtl::OUString::createFromAscii( "tango" );
++		case STYLE_SYMBOLS_HUMAN:      return ::rtl::OUString::createFromAscii( "human" );
+ 	}
+ 
+ 	return ::rtl::OUString::createFromAscii( "auto" );
+@@ -747,6 +753,8 @@
+ 		return STYLE_SYMBOLS_CRYSTAL;
+ 	else if ( rName == ::rtl::OUString::createFromAscii( "tango" ) )
+ 		return STYLE_SYMBOLS_TANGO;
++	else if ( rName == ::rtl::OUString::createFromAscii( "human" ) )
++		return STYLE_SYMBOLS_HUMAN;
+ 
+ 	return STYLE_SYMBOLS_AUTO;
+ }
+@@ -773,22 +781,46 @@
+ 
+ // -----------------------------------------------------------------------
+ 
++ULONG SymbolsStyleOrAuto (ULONG nStyle)
++{
++	// if the images*.zip file doesn't exist, fall back to auto
++	if ( nStyle != STYLE_SYMBOLS_AUTO )
++	{
++		char zipfile[100] = "/usr/lib/openoffice/share/config/images";
++		switch ( nStyle )
++		{
++			case STYLE_SYMBOLS_DEFAULT:    strcat (zipfile, ""); break;
++			case STYLE_SYMBOLS_HICONTRAST: strcat (zipfile, "_hicontrast"); break;
++			case STYLE_SYMBOLS_INDUSTRIAL: strcat (zipfile, "_industrial"); break;
++			case STYLE_SYMBOLS_CRYSTAL:    strcat (zipfile, "_crystal"); break;
++			case STYLE_SYMBOLS_TANGO:      strcat (zipfile, "_tango"); break;
++			case STYLE_SYMBOLS_HUMAN:      strcat (zipfile, "_human"); break;
++		}
++		strcat (zipfile, ".zip");
++		if ( access( zipfile, R_OK ) )
++			nStyle = STYLE_SYMBOLS_AUTO;
++	}
++	return nStyle;
++}
++
+ ULONG StyleSettings::GetCurrentSymbolsStyle() const
+ {
+ 	// style selected in Tools -> Options... -> OpenOffice.org -> View
+ 	ULONG nStyle = GetSymbolsStyle();
++	nStyle = SymbolsStyleOrAuto(nStyle);
+ 
+ 	if ( nStyle == STYLE_SYMBOLS_AUTO )
+ 	{
+ 		// the preferred style can be read from the desktop setting by the desktop native widgets modules
+ 		ULONG nPreferredStyle = GetPreferredSymbolsStyle();
++		nPreferredStyle = SymbolsStyleOrAuto(nPreferredStyle);
+ 		
+ 		if ( nPreferredStyle == STYLE_SYMBOLS_AUTO )
+ 		{
+ 		
+ 			// use a hardcoded desktop-specific fallback if no preferred style has been detected
+ 			static bool sbFallbackDesktopChecked = false;
+-			static ULONG snFallbackDesktopStyle = STYLE_SYMBOLS_DEFAULT;
++			static ULONG snFallbackDesktopStyle = STYLE_SYMBOLS_HUMAN;
+ 
+ 			if ( !sbFallbackDesktopChecked )
+ 			{
+@@ -796,7 +828,7 @@
+ 
+ 				if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) ||
+ 				    rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "windows" ) )
+-					snFallbackDesktopStyle = STYLE_SYMBOLS_TANGO;
++					snFallbackDesktopStyle = STYLE_SYMBOLS_HUMAN;
+ 				else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
+ 					snFallbackDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mdbtools-prj-d-lst.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mdbtools-prj-d-lst.diff
@@ -0,0 +1,8 @@
+--- /dev/null	2005-03-20 01:06:14.000000000 +0530
++++ mdbtools/prj/d.lst	2005-07-28 18:24:55.000000000 +0530
+@@ -0,0 +1,5 @@
++mkdir: %_DEST%\inc%_EXT%\mdbtools
++..\%__SRC%\inc\*.h %_DEST%\inc%_EXT%\mdbtools\*.h
++..\%__SRC%\lib\libmdb.a %_DEST%\lib%_EXT%\libmdb.a
++..\%__SRC%\lib\libmdbsql.a %_DEST%\lib%_EXT%\libmdbsql.a
++
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-paste-insert-rows.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-paste-insert-rows.diff
@@ -0,0 +1,23 @@
+--- ../src680-m72.bak/sc/source/ui/view/viewfun3.cxx	2005-02-07 12:34:17.506905571 +0530
++++ sc/source/ui/view/viewfun3.cxx	2005-01-31 10:46:05.000000000 +0530
+@@ -443,8 +443,16 @@
+ 	ScDrawTransferObj* pDrawClip = ScDrawTransferObj::GetOwnClipboard( pWin );
+ 
+ 	if (pOwnClip)
+-		PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
+-						PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_NONE, IDF_NONE,
+-						TRUE );		// allow warning dialog
++	{
++		ScRange aSource = pOwnClip->GetRange();
++		if (aSource.aStart.Col() == 0 && aSource.aEnd.Col() == MAXCOL)
++			PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
++							PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_CELLSDOWN, IDF_NONE,
++							FALSE );		// Dont allow warning dialog
++		else
++                        PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
++                                                        PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_NONE, IDF_NONE,
++                                                        TRUE );         // allow warning dialog
++	}
+ 	else if (pDrawClip)
+ 		PasteDraw();
+	else
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-win32-registry-branding.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-win32-registry-branding.diff
@@ -0,0 +1,38 @@
+--- scp2/source/ooo/registryitem_ooo.scp
++++ scp2/source/ooo/registryitem_ooo.scp
+@@ -393,6 +393,22 @@
+ 	Value = "<progpath>\program\soffice.exe";
+ End
+ 
++RegistryItem gid_Regitem_Software_Openoffice_Productname_Productversion_Vendor_PackageVersion
++	ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
++	Subkey = "Software\OpenOffice.org\%PRODUCTNAME\%PRODUCTVERSION\Novell";
++	ModuleID = gid_Module_Root;
++	Name = "PackageVersion";
++	Value = "<ooo_packageversion>";
++End
++
++RegistryItem gid_Regitem_Software_Openoffice_Productname_Productversion_Vendor_BuildVersion
++	ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
++	Subkey = "Software\OpenOffice.org\%PRODUCTNAME\%PRODUCTVERSION\Novell";
++	ModuleID = gid_Module_Root;
++	Name = "BuildVersion";
++	Value = "<buildversion>";
++End
++
+ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Productcode_Install
+ 	ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
+ 	Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\%PRODUCTCODE";
+dummy line to avoid confusing diff-mode
+--- solenv/bin/modules/installer/windows/registry.pm
++++ solenv/bin/modules/installer/windows/registry.pm
+@@ -179,6 +179,9 @@
+ 	
+ 	$value =~ s/\\\"/\"/g;	# no more masquerading of '"'
+ 	$value =~ s/\<progpath\>/\[INSTALLLOCATION\]/;
++	$value =~ s/\<vendor\>/$ENV{'OOO_VENDOR'}/;
++	$value =~ s/\<ooo_packageversion\>/$ENV{'OOO_PACKAGEVERSION'}/;
++	$value =~ s/\<buildversion\>/$ENV{'BUILD_VER_STRING'}/;
+ 	$value =~ s/\[INSTALLLOCATION\]\\/\[INSTALLLOCATION\]/;	# removing "\" after "[INSTALLLOCATION]"
+ 
+ 	if ( $value =~ /\%/ ) { $value = installer::worker::replace_variables_in_string($value, $allvariableshashref); }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-hatched-textmove.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-hatched-textmove.diff
@@ -0,0 +1,596 @@
+--- svx/inc/svx/svdhdl.hxx	6 Jul 2007 13:17:50 -0000	1.3
++++ svx/inc/svx/svdhdl.hxx	19 May 2008 00:23:59 -0000
+@@ -442,6 +442,19 @@ public:
+ };
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
++
++class ImpTextframeHdl: public SdrHdl
++{
++    const Rectangle maRect;
++
++	// create marker for this kind
++	virtual void CreateB2dIAObject();
++
++public:
++	explicit ImpTextframeHdl(const Rectangle& rRect);
++};
++
++////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/inc/svx/sdr/overlay/overlayhatchrect.hxx	19 May 2008 00:23:59 -0000
+@@ -0,0 +1,89 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: overlaybitmap.hxx,v $
++ *
++ *  $Revision: 1.2 $
++ *
++ *  last change: $Author: ihi $ $Date: 2006/11/14 13:06:40 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef _SDR_OVERLAY_OVERLAYHATCHRECT_HXX
++#define _SDR_OVERLAY_OVERLAYHATCHRECT_HXX
++
++#include <svx/sdr/overlay/overlayobject.hxx>
++#include <vcl/hatch.hxx>
++#include <tools/gen.hxx>
++
++//////////////////////////////////////////////////////////////////////////////
++
++class PolyPolygon;
++
++namespace sdr
++{
++	namespace overlay
++	{
++		class OverlayHatchRect : public OverlayObjectWithBasePosition
++		{
++            // the actual hatching to use
++            const Hatch            maHatch;
++            const sal_Int32        mnWidthPixel;
++            const sal_Int32        mnRotAngle;
++			basegfx::B2DPoint		maSecondPosition;
++
++            PolyPolygon getGeometry(OutputDevice& rOutputDevice);
++
++			// Draw geometry
++			virtual void drawGeometry(OutputDevice& rOutputDevice);
++
++			// Create the BaseRange. This method needs to calculate maBaseRange.
++			virtual void createBaseRange(OutputDevice& rOutputDevice);
++
++		public:
++			OverlayHatchRect(
++				const basegfx::B2DPoint& rBasePos,
++				const Hatch& rHatch,
++                sal_Int32 nRotAngle,
++                sal_Int32 nWidthPixel );
++
++			const basegfx::B2DPoint& getSecondPosition() const { return maSecondPosition; }
++            void setSecondPosition(const basegfx::B2DPoint&);
++
++			// Zoom has changed. If the objects logical size
++			// depends on the MapMode of the used OutputDevice, use this call
++			// to invalidate the range in logical coordinates.
++			virtual void zoomHasChanged();
++		};
++	} // end of namespace overlay
++} // end of namespace sdr
++
++//////////////////////////////////////////////////////////////////////////////
++
++#endif //_SDR_OVERLAY_OVERLAYHATCHRECT_HXX
++
++// eof
+--- svx/source/sdr/overlay/makefile.mk	17 Nov 2006 16:15:37 -0000	1.3
++++ svx/source/sdr/overlay/makefile.mk	19 May 2008 00:24:10 -0000
+@@ -58,6 +58,7 @@ SLOFILES=\
+ 		$(SLO)$/overlaytriangle.obj				\
+ 		$(SLO)$/overlaycrosshair.obj			\
+ 		$(SLO)$/overlayhelpline.obj				\
++		$(SLO)$/overlayhatchrect.obj			\
+ 		$(SLO)$/overlayrollingrectangle.obj		\
+ 		$(SLO)$/overlaypolypolygon.obj			\
+ 		$(SLO)$/overlaysdrobject.obj
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ svx/source/sdr/overlay/overlayhatchrect.cxx	19 May 2008 00:24:10 -0000
+@@ -0,0 +1,142 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: overlaybitmap.cxx,v $
++ *
++ *  $Revision: 1.4 $
++ *
++ *  last change: $Author: obo $ $Date: 2007/07/18 10:54:23 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_svx.hxx"
++
++#include <svx/sdr/overlay/overlayhatchrect.hxx>
++#include <vcl/hatch.hxx>
++#include <vcl/outdev.hxx>
++#include <basegfx/matrix/b2dhommatrix.hxx>
++
++//////////////////////////////////////////////////////////////////////////////
++
++namespace sdr
++{
++	namespace overlay
++	{
++        PolyPolygon OverlayHatchRect::getGeometry(OutputDevice& rOutputDevice)
++        {
++			const basegfx::B2DPoint aDiscreteTopLeft(rOutputDevice.GetViewTransformation() * getBasePosition());
++			const basegfx::B2DPoint aDiscreteBottomRight(rOutputDevice.GetViewTransformation() * getSecondPosition());
++
++			const Rectangle aPixRect((sal_Int32)floor(aDiscreteTopLeft.getX()), 
++                                     (sal_Int32)floor(aDiscreteTopLeft.getY()),
++                                     (sal_Int32)floor(aDiscreteBottomRight.getX()), 
++                                     (sal_Int32)floor(aDiscreteBottomRight.getY()));
++            
++			Rectangle aInnerRect(aPixRect);
++			aInnerRect.Left()+=mnWidthPixel;
++			aInnerRect.Top()+=mnWidthPixel;
++			aInnerRect.Right()-=mnWidthPixel;
++			aInnerRect.Bottom()-=mnWidthPixel;			
++
++			Rectangle aOuterPix(aPixRect);
++			aOuterPix.Left()-=mnWidthPixel;
++			aOuterPix.Top()-=mnWidthPixel;
++			aOuterPix.Right()+=mnWidthPixel;
++			aOuterPix.Bottom()+=mnWidthPixel;
++
++			PolyPolygon aPolyPoly( 2 );
++			aPolyPoly.Insert( aOuterPix );
++			aPolyPoly.Insert( aInnerRect );
++            aPolyPoly.Rotate(aPixRect.TopLeft(), mnRotAngle/10);
++
++            return aPolyPoly;
++        }
++
++		void OverlayHatchRect::drawGeometry(OutputDevice& rOutputDevice)
++		{
++			const PolyPolygon aPoly( getGeometry(rOutputDevice) );
++
++			const bool bMapModeWasEnabled(rOutputDevice.IsMapModeEnabled());
++			rOutputDevice.EnableMapMode(false);
++
++			rOutputDevice.DrawHatch( aPoly, maHatch );
++
++			// restore MapMode
++			rOutputDevice.EnableMapMode(bMapModeWasEnabled);
++		}
++
++		void OverlayHatchRect::createBaseRange(OutputDevice& rOutputDevice)
++		{
++			// reset range and expand it
++			maBaseRange.reset();
++
++            const Rectangle aBounds(getGeometry(rOutputDevice).GetBoundRect());
++
++            maBaseRange = basegfx::B2DRange(
++                aBounds.Left(),
++                aBounds.Top(),
++                aBounds.Right(),
++                aBounds.Bottom());
++			maBaseRange.transform(rOutputDevice.GetInverseViewTransformation());
++		}
++
++        OverlayHatchRect::OverlayHatchRect(
++				const basegfx::B2DPoint& rBasePos,
++				const Hatch& rHatch,
++                sal_Int32 nRotAngle,
++                sal_Int32 nWidthPixel) :
++            OverlayObjectWithBasePosition(rBasePos, Color(COL_TRANSPARENT)),
++            maHatch(rHatch),
++            mnWidthPixel(nWidthPixel),
++            mnRotAngle(nRotAngle),
++            maSecondPosition()
++		{
++		}
++
++		void OverlayHatchRect::setSecondPosition(const basegfx::B2DPoint& rNew)
++		{
++			if(rNew != maSecondPosition)
++			{
++				// remember new value
++				maSecondPosition = rNew;
++
++				// register change (after change)
++				objectChange();
++			}
++		}
++
++		void OverlayHatchRect::zoomHasChanged()
++		{
++			// reset validity of range in logical coor to force recalculation
++			mbIsChanged = sal_True;
++		}
++	} // end of namespace overlay
++} // end of namespace sdr
++
++//////////////////////////////////////////////////////////////////////////////
++// eof
+--- svx/source/svdraw/svdhdl.cxx	10 Jan 2008 14:22:56 -0000	1.28.202.1
++++ svx/source/svdraw/svdhdl.cxx	19 May 2008 00:24:13 -0000
+@@ -110,6 +110,8 @@
+ #include <svx/sdr/overlay/overlaytriangle.hxx>
+ #endif
+ 
++#include <svx/sdr/overlay/overlayhatchrect.hxx>
++
+ #ifndef _SDRPAGEWINDOW_HXX
+ #include <svx/sdrpagewindow.hxx>
+ #endif
+@@ -856,45 +858,48 @@ bool SdrHdl::IsHdlHit(const Point& rPnt)
+ Pointer SdrHdl::GetPointer() const
+ {
+     PointerStyle ePtr=POINTER_MOVE;
+-    BOOL bSize=eKind>=HDL_UPLFT && eKind<=HDL_LWRGT;
+-    // Fuer Resize von gedrehten Rechtecken die Mauszeiger etwas mitdrehen
+-    if (bSize && nDrehWink!=0) {
+-        long nHdlWink=0;
++    const BOOL bSize=eKind>=HDL_UPLFT && eKind<=HDL_LWRGT;
++    const BOOL bRot=pHdlList!=NULL && pHdlList->IsRotateShear();
++    const BOOL bDis=pHdlList!=NULL && pHdlList->IsDistortShear();
++    if (bSize && pHdlList!=NULL && (bRot || bDis)) {
+         switch (eKind) {
+-            case HDL_UPLFT: nHdlWink=13500; break;
+-            case HDL_UPPER: nHdlWink=9000;  break;
+-            case HDL_UPRGT: nHdlWink=4500;  break;
+-            case HDL_LEFT : nHdlWink=0;     break;
+-            case HDL_RIGHT: nHdlWink=0;     break;
+-            case HDL_LWLFT: nHdlWink=4500;  break;
+-            case HDL_LOWER: nHdlWink=9000;  break;
+-            case HDL_LWRGT: nHdlWink=13500; break;
++            case HDL_UPLFT: case HDL_UPRGT:
++            case HDL_LWLFT: case HDL_LWRGT: ePtr=bRot ? POINTER_ROTATE : POINTER_REFHAND; break;
++            case HDL_LEFT : case HDL_RIGHT: ePtr=POINTER_VSHEAR; break;
++            case HDL_UPPER: case HDL_LOWER: ePtr=POINTER_HSHEAR; break;
+             default:
+                 break;
+         }
+-        nHdlWink+=nDrehWink+2249; // und etwas drauf (zum runden)
+-        while (nHdlWink<0) nHdlWink+=18000;
+-        while (nHdlWink>=18000) nHdlWink-=18000;
+-        nHdlWink/=4500;
+-        switch ((BYTE)nHdlWink) {
+-            case 0: ePtr=POINTER_ESIZE;    break;
+-            case 1: ePtr=POINTER_NESIZE; break;
+-            case 2: ePtr=POINTER_SSIZE;    break;
+-            case 3: ePtr=POINTER_SESIZE; break;
+-        } // switch
+-    }
+-    if (ePtr==POINTER_MOVE) {
+-        BOOL bRot=pHdlList!=NULL && pHdlList->IsRotateShear();
+-        BOOL bDis=pHdlList!=NULL && pHdlList->IsDistortShear();
+-        if (bSize && pHdlList!=NULL && (bRot || bDis)) {
++    } else {
++        // Fuer Resize von gedrehten Rechtecken die Mauszeiger etwas mitdrehen
++        if (bSize && nDrehWink!=0) {
++            long nHdlWink=0;
+             switch (eKind) {
+-                case HDL_UPLFT: case HDL_UPRGT:
+-                case HDL_LWLFT: case HDL_LWRGT: ePtr=bRot ? POINTER_ROTATE : POINTER_REFHAND; break;
+-                case HDL_LEFT : case HDL_RIGHT: ePtr=POINTER_VSHEAR; break;
+-                case HDL_UPPER: case HDL_LOWER: ePtr=POINTER_HSHEAR; break;
++                case HDL_LWRGT: nHdlWink=31500; break;
++                case HDL_LOWER: nHdlWink=27000; break;
++                case HDL_LWLFT: nHdlWink=22500; break;
++                case HDL_LEFT : nHdlWink=18000; break;
++                case HDL_UPLFT: nHdlWink=13500; break;
++                case HDL_UPPER: nHdlWink=9000;  break;
++                case HDL_UPRGT: nHdlWink=4500;  break;
++                case HDL_RIGHT: nHdlWink=0;     break;
+                 default:
+                     break;
+             }
++            nHdlWink+=nDrehWink+2249; // und etwas drauf (zum runden)
++            while (nHdlWink<0) nHdlWink+=36000;
++            while (nHdlWink>=36000) nHdlWink-=36000;
++            nHdlWink/=4500;
++            switch ((BYTE)nHdlWink) {
++                case 0: ePtr=POINTER_ESIZE;  break;
++                case 1: ePtr=POINTER_NESIZE; break;
++                case 2: ePtr=POINTER_NSIZE;  break;
++                case 3: ePtr=POINTER_NWSIZE; break;
++                case 4: ePtr=POINTER_WSIZE;  break;
++                case 5: ePtr=POINTER_SWSIZE; break;
++                case 6: ePtr=POINTER_SSIZE;  break;
++                case 7: ePtr=POINTER_SESIZE; break;
++            } // switch
+         } else {
+             switch (eKind) {
+                 case HDL_UPLFT: ePtr=POINTER_NWSIZE;  break;
+@@ -1682,6 +1687,66 @@ Pointer ImpMeasureHdl::GetPointer() cons
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
++ImpTextframeHdl::ImpTextframeHdl(const Rectangle& rRect) : 
++    SdrHdl(rRect.TopLeft(),HDL_MOVE),
++    maRect(rRect)
++{
++}
++
++void ImpTextframeHdl::CreateB2dIAObject()
++{
++	// first throw away old one
++	GetRidOfIAObject();
++
++	if(pHdlList)
++	{
++		SdrMarkView* pView = pHdlList->GetView();
++
++		if(pView && !pView->areMarkHandlesHidden())
++		{
++			SdrPageView* pPageView = pView->GetSdrPageView();
++
++			if(pPageView)
++			{
++				for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++)
++				{
++					const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(b);
++
++					if(rPageWindow.GetPaintWindow().OutputToWindow())
++					{
++						if(rPageWindow.GetOverlayManager())
++						{
++                            const basegfx::B2DPoint aTopLeft(maRect.Left(), maRect.Top());
++                            const basegfx::B2DPoint aBottomRight(maRect.Right(), maRect.Bottom());
++
++                            svtools::ColorConfig aColorConfig;
++                            Color aHatchCol( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
++
++                            ::sdr::overlay::OverlayHatchRect* pNewOverlayObject = 
++                                  new ::sdr::overlay::OverlayHatchRect(
++                                      aTopLeft,
++                                      Hatch(HATCH_SINGLE, aHatchCol, 3, 450),
++                                      nDrehWink,
++                                      4 );
++                            pNewOverlayObject->setHittable(false);
++                            pNewOverlayObject->setSecondPosition(aBottomRight);
++
++                            // OVERLAYMANAGER
++                            if(pNewOverlayObject)
++                            {
++                                rPageWindow.GetOverlayManager()->add(*pNewOverlayObject);
++                                maOverlayGroup.append(*pNewOverlayObject);
++                            }
++                        }
++                    }
++                }
++            }
++		}
++	}
++}
++
++////////////////////////////////////////////////////////////////////////////////////////////////////
++
+ class ImpSdrHdlListSorter: public ContainerSorter {
+ public:
+     ImpSdrHdlListSorter(Container& rNewCont): ContainerSorter(rNewCont) {}
+diff -u -p -r1.35 svdmrkv.cxx
+--- svx/source/svdraw/svdmrkv.cxx	28 Aug 2007 13:50:49 -0000	1.35
++++ svx/source/svdraw/svdmrkv.cxx	19 May 2008 00:24:14 -0000
+@@ -716,10 +729,15 @@ void SdrMarkView::SetMarkHandles()
+ 	{
+ 		ULONG nMarkAnz=GetMarkedObjectCount();
+ 		BOOL bStdDrag=eDragMode==SDRDRAG_MOVE;
+-		
++		BOOL bSingleTextObjMark=FALSE;
++
+ 		if (nMarkAnz==1) 
+ 		{
+ 			pMarkedObj=GetMarkedObjectByIndex(0);
++            bSingleTextObjMark = 
++                pMarkedObj && 
++                pMarkedObj->ISA(SdrTextObj) &&
++                static_cast<SdrTextObj*>(pMarkedObj)->IsTextFrame();
+ 		}
+ 		
+ 		BOOL bFrmHdl=ImpIsFrameHandles();
+@@ -752,28 +770,44 @@ void SdrMarkView::SetMarkHandles()
+ 			
+ 			if(!aRect.IsEmpty() && !bHideHandlesWhenInTextEdit) 
+ 			{ // sonst nix gefunden
+-				BOOL bWdt0=aRect.Left()==aRect.Right();
+-				BOOL bHgt0=aRect.Top()==aRect.Bottom();
+-				if (bWdt0 && bHgt0) 
+-				{
+-					aHdl.AddHdl(new SdrHdl(aRect.TopLeft(),HDL_UPLFT));
+-				} 
+-				else if (!bStdDrag && (bWdt0 || bHgt0)) 
+-				{
+-					aHdl.AddHdl(new SdrHdl(aRect.TopLeft()    ,HDL_UPLFT));
+-					aHdl.AddHdl(new SdrHdl(aRect.BottomRight(),HDL_LWRGT));
+-				} 
+-				else 
+-				{
+-					if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.TopLeft()     ,HDL_UPLFT));
+-					if (          !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.TopCenter()   ,HDL_UPPER));
+-					if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.TopRight()    ,HDL_UPRGT));
+-					if (!bWdt0          ) aHdl.AddHdl(new SdrHdl(aRect.LeftCenter()  ,HDL_LEFT ));
+-					if (!bWdt0          ) aHdl.AddHdl(new SdrHdl(aRect.RightCenter() ,HDL_RIGHT));
+-					if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.BottomLeft()  ,HDL_LWLFT));
+-					if (          !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.BottomCenter(),HDL_LOWER));
+-					if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.BottomRight() ,HDL_LWRGT));
+-				}
++                if( bSingleTextObjMark )
++                {
++                    const ULONG nSiz0=aHdl.GetHdlCount();
++                    pMarkedObj->AddToHdlList(aHdl);
++                    const ULONG nSiz1=aHdl.GetHdlCount();
++                    for (ULONG i=nSiz0; i<nSiz1; i++) 
++                    {
++                        SdrHdl* pHdl=aHdl.GetHdl(i);
++                        pHdl->SetObj(pMarkedObj);
++                        pHdl->SetPageView(pMarkedPV);
++                        pHdl->SetObjHdlNum(USHORT(i-nSiz0));
++                    }
++                }
++                else
++                {
++                    BOOL bWdt0=aRect.Left()==aRect.Right();
++                    BOOL bHgt0=aRect.Top()==aRect.Bottom();
++                    if (bWdt0 && bHgt0) 
++                    {
++                        aHdl.AddHdl(new SdrHdl(aRect.TopLeft(),HDL_UPLFT));
++                    } 
++                    else if (!bStdDrag && (bWdt0 || bHgt0)) 
++                    {
++                        aHdl.AddHdl(new SdrHdl(aRect.TopLeft()    ,HDL_UPLFT));
++                        aHdl.AddHdl(new SdrHdl(aRect.BottomRight(),HDL_LWRGT));
++                    } 
++                    else 
++                    {
++                        if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.TopLeft()     ,HDL_UPLFT));
++                        if (          !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.TopCenter()   ,HDL_UPPER));
++                        if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.TopRight()    ,HDL_UPRGT));
++                        if (!bWdt0          ) aHdl.AddHdl(new SdrHdl(aRect.LeftCenter()  ,HDL_LEFT ));
++                        if (!bWdt0          ) aHdl.AddHdl(new SdrHdl(aRect.RightCenter() ,HDL_RIGHT));
++                        if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.BottomLeft()  ,HDL_LWLFT));
++                        if (          !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.BottomCenter(),HDL_LOWER));
++                        if (!bWdt0 && !bHgt0) aHdl.AddHdl(new SdrHdl(aRect.BottomRight() ,HDL_LWRGT));
++                    }
++                }
+ 			}
+ 		} 
+ 		else 
+@@ -783,9 +817,9 @@ void SdrMarkView::SetMarkHandles()
+ 				const SdrMark* pM=GetSdrMarkByIndex(nMarkNum);
+ 				SdrObject* pObj=pM->GetMarkedSdrObj();
+ 				SdrPageView* pPV=pM->GetPageView();
+-				ULONG nSiz0=aHdl.GetHdlCount();
++				const ULONG nSiz0=aHdl.GetHdlCount();
+ 				pObj->AddToHdlList(aHdl);
+-				ULONG nSiz1=aHdl.GetHdlCount();
++				const ULONG nSiz1=aHdl.GetHdlCount();
+ 				bool bPoly=pObj->IsPolyObj();
+ 				const SdrUShortCont* pMrkPnts=pM->GetMarkedPoints();
+ 				for (ULONG i=nSiz0; i<nSiz1; i++) 
+--- svx/source/svdraw/svdorect.cxx	26 Nov 2007 14:56:13 -0000	1.29
++++ svx/source/svdraw/svdorect.cxx	19 May 2008 00:24:14 -0000
+@@ -595,25 +595,35 @@ SdrHdl* SdrRectObj::GetHdl(sal_uInt32 nH
+ 	SdrHdl* pH=NULL;
+ 	Point aPnt;
+ 	SdrHdlKind eKind=HDL_MOVE;
+-	switch (nHdlNum) {
+-		case 0: {
+-			long a=GetEckenradius();
+-			long b=Max(aRect.GetWidth(),aRect.GetHeight())/2; // Wird aufgerundet, da GetWidth() eins draufaddiert
+-			if (a>b) a=b;
+-			if (a<0) a=0;
+-			aPnt=aRect.TopLeft();
+-			aPnt.X()+=a;
+-			eKind=HDL_CIRC;
+-		} break; // Eckenradius
+-		case 1: aPnt=aRect.TopLeft();      eKind=HDL_UPLFT; break; // Oben links
+-		case 2: aPnt=aRect.TopCenter();    eKind=HDL_UPPER; break; // Oben
+-		case 3: aPnt=aRect.TopRight();     eKind=HDL_UPRGT; break; // Oben rechts
+-		case 4: aPnt=aRect.LeftCenter();   eKind=HDL_LEFT ; break; // Links
+-		case 5: aPnt=aRect.RightCenter();  eKind=HDL_RIGHT; break; // Rechts
+-		case 6: aPnt=aRect.BottomLeft();   eKind=HDL_LWLFT; break; // Unten links
+-		case 7: aPnt=aRect.BottomCenter(); eKind=HDL_LOWER; break; // Unten
+-		case 8: aPnt=aRect.BottomRight();  eKind=HDL_LWRGT; break; // Unten rechts
+-	}
++    if( IsTextFrame() && !nHdlNum )
++    {
++        pH=new ImpTextframeHdl(aRect);
++		pH->SetObj((SdrObject*)this);
++		pH->SetDrehWink(aGeo.nDrehWink);
++        return pH;
++    }
++    else
++    {
++        switch (nHdlNum) {
++            case 0: {
++                long a=GetEckenradius();
++                long b=Max(aRect.GetWidth(),aRect.GetHeight())/2; // Wird aufgerundet, da GetWidth() eins draufaddiert
++                if (a>b) a=b;
++                if (a<0) a=0;
++                aPnt=aRect.TopLeft();
++                aPnt.X()+=a;
++                eKind=HDL_CIRC;
++            } break; // Eckenradius
++            case 1: aPnt=aRect.TopLeft();      eKind=HDL_UPLFT; break; // Oben links
++            case 2: aPnt=aRect.TopCenter();    eKind=HDL_UPPER; break; // Oben
++            case 3: aPnt=aRect.TopRight();     eKind=HDL_UPRGT; break; // Oben rechts
++            case 4: aPnt=aRect.LeftCenter();   eKind=HDL_LEFT ; break; // Links
++            case 5: aPnt=aRect.RightCenter();  eKind=HDL_RIGHT; break; // Rechts
++            case 6: aPnt=aRect.BottomLeft();   eKind=HDL_LWLFT; break; // Unten links
++            case 7: aPnt=aRect.BottomCenter(); eKind=HDL_LOWER; break; // Unten
++            case 8: aPnt=aRect.BottomRight();  eKind=HDL_LWRGT; break; // Unten rechts
++        }
++    }
+ 	if (aGeo.nShearWink!=0) ShearPoint(aPnt,aRect.TopLeft(),aGeo.nTan);
+ 	if (aGeo.nDrehWink!=0) RotatePoint(aPnt,aRect.TopLeft(),aGeo.nSin,aGeo.nCos);
+ 	if (eKind!=HDL_MOVE) {
+--- svx/source/svdraw/svdview.cxx	27 Jun 2007 19:13:08 -0000	1.23
++++ svx/source/svdraw/svdview.cxx	19 May 2008 00:24:14 -0000
+@@ -520,7 +520,9 @@ SdrHitKind SdrView::PickAnything(const P
+ 
+ 		if(pOut)
+ 		{
+-			nTolerance = pOut->PixelToLogic(Size(2, 0)).Width();
++            // special-casing text object, as it's otherwise hard to
++            // grab&move with mouse
++			nTolerance = pOut->PixelToLogic(Size(5, 0)).Width();
+ 		}
+ 
+ 		if(	(aLocalLogicPosition.X() >= aBoundRect.Left() - nTolerance && aLocalLogicPosition.X() <= aBoundRect.Left() + nTolerance)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-formula-int-precision.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-formula-int-precision.diff
@@ -0,0 +1,70 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/inc/interpre.hxx sc/source/core/inc/interpre.hxx
+--- sc.clean/source/core/inc/interpre.hxx	2008-03-24 20:32:36.000000000 -0400
++++ sc/source/core/inc/interpre.hxx	2008-03-24 20:38:45.000000000 -0400
+@@ -189,6 +189,13 @@ private:
+ 	BOOL		bCalcAsShown;			// Genauigkeit wie angezeigt
+ 	BOOL		bMatrixFormula;			// Formelzelle ist Matrixformel
+ 
++//-------------------------------------------------------------------------
++// General utility functions
++//-------------------------------------------------------------------------
++
++/** Call this to throw away digits outside the 15 significant digits. */
++double approxValue( double fValue ) const;
++
+ //---------------------------------Funktionen in interpre.cxx---------
+ // nMust <= nAct <= nMax ? ok : SetError, PushInt
+ inline BOOL MustHaveParamCount( BYTE nAct, BYTE nMust );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr1.cxx sc/source/core/tool/interpr1.cxx
+--- sc.clean/source/core/tool/interpr1.cxx	2008-03-24 20:32:36.000000000 -0400
++++ sc/source/core/tool/interpr1.cxx	2008-03-24 20:41:23.000000000 -0400
+@@ -83,6 +83,35 @@ ScTokenStack* ScInterpreter::pGlobalStac
+ ScErrorStack* ScInterpreter::pGlobalErrorStack = NULL;
+ BOOL ScInterpreter::bGlobalStackInUse = FALSE;
+ 
++//-------------------------------------------------------------------------
++// General utility functions
++//-------------------------------------------------------------------------
++
++double ScInterpreter::approxValue( double fValue ) const
++{
++    bool bSign = ::rtl::math::isSignBitSet(fValue);
++    if (bSign)
++        fValue = -fValue;
++
++    if (::rtl::math::isNan(fValue) || ::rtl::math::isInf(fValue) ||
++        fValue == HUGE_VAL || fValue == 0.0)
++        // We don't handle these conditions.  Bail out.
++        return fValue;
++
++//  fprintf(stdout, "lcl_roundValue:   original   = %.16f\n", fValue);
++
++    int nExp = static_cast<int>( floor(log10(fValue)) );
++    nExp = 14 - nExp;
++    double fExpValue = pow(10.0, static_cast<double>(nExp));
++    fValue *= fExpValue;
++
++//  fprintf(stdout, "lcl_roundValue:   normalized = %.16f\n", fValue);
++    fValue = rtl::math::round(fValue);
++//  fprintf(stdout, "lcl_roundValue:   rounded    = %.16f\n", fValue);
++    fValue /= fExpValue;
++//  fprintf(stdout, "lcl_roundValue:   restored   = %.16f\n", fValue);
++    return bSign ? -fValue : fValue;
++}
+ 
+ //-----------------------------------------------------------------------------
+ // Funktionen
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr2.cxx sc/source/core/tool/interpr2.cxx
+--- sc.clean/source/core/tool/interpr2.cxx	2008-03-24 20:32:36.000000000 -0400
++++ sc/source/core/tool/interpr2.cxx	2008-03-24 20:42:25.000000000 -0400
+@@ -419,7 +419,9 @@ void ScInterpreter::ScAbs()
+ 
+ void ScInterpreter::ScInt()
+ {
+-	PushDouble(::rtl::math::approxFloor(GetDouble()));
++    double fVal = GetDouble();
++    fVal = approxValue(fVal);
++    PushDouble(floor(fVal));
+ }
+ 
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autocorrect-accidental-caps-lock-sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autocorrect-accidental-caps-lock-sc.diff
@@ -0,0 +1,32 @@
+Only in sc: out.ann
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/app/inputhdl.cxx sc/source/ui/app/inputhdl.cxx
+--- sc.clean/source/ui/app/inputhdl.cxx	2008-02-05 11:16:55.000000000 -0500
++++ sc/source/ui/app/inputhdl.cxx	2008-02-28 14:23:24.000000000 -0500
+@@ -2039,10 +2039,12 @@ void ScInputHandler::EnterHandler( BYTE 
+             lcl_SelectionToEnd(pTableView);
+         }
+ 
++        Window* pFrameWin = pActiveViewSh ? pActiveViewSh->GetFrameWin() : NULL;
++
+ 		if (pTopView)
+ 			pTopView->CompleteAutoCorrect();	// #59759# CompleteAutoCorrect fuer beide Views
+ 		if (pTableView)
+-			pTableView->CompleteAutoCorrect();
++			pTableView->CompleteAutoCorrect(pFrameWin);
+ 		aString = GetEditText(pEngine);
+ 	}
+ 	lcl_RemoveTabs(aString);
+@@ -2774,8 +2776,11 @@ BOOL ScInputHandler::KeyInput( const Key
+ 				else
+ 				{
+ 					if (pTableView)
+-						if ( pTableView->PostKeyEvent( rKEvt ) )
+-							bUsed = TRUE;
++                    {
++                        Window* pFrameWin = pActiveViewSh ? pActiveViewSh->GetFrameWin() : NULL;
++                        if ( pTableView->PostKeyEvent( rKEvt, pFrameWin ) )
++                            bUsed = TRUE;
++                    }
+ 					if (pTopView)
+ 						if ( pTopView->PostKeyEvent( rKEvt ) )
+ 							bUsed = TRUE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/build-java-target.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/build-java-target.diff
@@ -0,0 +1,1259 @@
+--- config_office/configure.in.old	2006-10-10 21:48:52.000000000 +0200
++++ config_office/configure.in	2006-10-11 22:43:50.000000000 +0200
+@@ -417,6 +417,17 @@
+                           or XML filters. Use --with-java=gij to enable gij/gcj
+                           as java/javac replacements
+ ], if test "$withval" = "yes"; then WITH_JAVA=java; else WITH_JAVA=$withval; fi, WITH_JAVA=java)
++AC_ARG_WITH(java_target_version,
++[  --with-java-target-version   Generate class files that will work on JVMs with
++			  the specified version. For example, use
++			  --with-java-target-version=1.4 to make sure that the
++			  application will work with JVM 1.4 even when compiled
++			  with JDK 1.5.
++			  
++			  This option is ignored when you compile with gcj/gij.
++ 
++                          Usage: --with-java-target-version=<jvm version>
++],,)
+ AC_ARG_ENABLE(gcjaot,
+ [  --enable-gcjaot         Build with[[out]] using Ahead of Time java compilation
+                           support to speed up buildsi by compiling the jars also
+@@ -2308,6 +2319,44 @@
+    JAVA_HOME=NO_JAVA_HOME ; export JAVA_HOME
+ fi
+ 
++_java_target_ver="1.4"
++dnl ===================================================================
++dnl Check for target java bytecode version
++dnl ===================================================================
++if test "$SOLAR_JAVA" != ""; then
++    AC_MSG_CHECKING([for target java bytecode version])
++    if test "$JDK" = "gcj" -o "$JDK" = "kaffe"; then
++	AC_MSG_RESULT([default by $JDK])
++	if test -n "$with_java_target_version" -a "$with_java_target_version" != "no" ; then
++	    AC_MSG_WARN([Value defined by --with-java-target-version is ignored!])
++	fi
++    else
++	if test -n "$with_java_target_version" -a "$with_java_target_version" != "no" ; then
++	    _java_target_ver="$with_java_target_version"
++	    AC_MSG_RESULT([$_java_target_ver])
++	elif test $_jdk_ver -gt 10000 ; then
++	    _java_target_ver=`echo "$_jdk_ver" | $AWK '{ maj=substr($0,1,1); min=substr($0,2,2); print int(maj)"."int(min) }'`
++	    AC_MSG_RESULT([$_java_target_ver])
++	else
++    	    AC_MSG_ERROR([Unable to guess java bytecode version from java version!])
++	fi
++    fi
++
++    if ! test -z "$_java_target_ver" -o \
++	    "$_java_target_ver" = "1.1" -o \
++            "$_java_target_ver" = "1.2" -o \
++	    "$_java_target_ver" = "1.3" -o \
++	    "$_java_target_ver" = "1.4" -o \
++	    "$_java_target_ver" = "1.5" -o \
++	    "$_java_target_ver" = "1.6" -o \
++	    "$_java_target_ver" = "5" ; then
++    	AC_MSG_ERROR([$_java_target_ver is not supported java bytecode version!])
++    fi
++
++    JAVA_SOURCE_VER="$_java_target_ver"
++    JAVA_TARGET_VER="$_java_target_ver"
++fi
++
+ dnl ===================================================================
+ dnl Checks for javac
+ dnl ===================================================================
+@@ -2349,6 +2397,17 @@
+ fi
+ AC_SUBST(JAVACISGCJ)
+ 
++JAVACISKAFFE=""
++dnl ===================================================================
++dnl Checks that javac is kaffe
++dnl ===================================================================
++if test "$SOLAR_JAVA" != ""; then
++    if test `$JAVACOMPILER -version 2>&1 | grep -c "Kaffe"` -gt 0; then
++        JAVACISKAFFE="yes"
++    fi
++fi
++AC_SUBST(JAVACISKAFFE)
++
+ dnl ===================================================================
+ dnl Checks for javadoc
+ dnl ===================================================================
+@@ -2465,6 +2524,8 @@
+ 
+ AC_SUBST(JAVA_HOME)
+ AC_SUBST(JDK)
++AC_SUBST(JAVA_SOURCE_VER)
++AC_SUBST(JAVA_TARGET_VER)
+ AC_SUBST(JAVAINTERPRETER)
+ AC_SUBST(JAVACOMPILER)
+ AC_SUBST(JAVAAOTCOMPILER)
+--- config_office/set_soenv.in.old	2006-10-11 22:21:28.000000000 +0200
++++ config_office/set_soenv.in	2006-10-11 22:21:34.000000000 +0200
+@@ -1872,6 +1872,7 @@
+ if ( $JDK ne "gcj" ) {
+    ToFile( "CLASSPATH",         $CLASSPATH,         "e" );
+    ToFile( "XCLASSPATH",        $XCLASSPATH,        "e" );
++   ToFile( "JAVACISKAFFE",     '@JAVACISKAFFE@',    "e" );
+ }
+ else {
+    ToFile( "JAVACISGCJ",       '@JAVACISGCJ@',      "e" );
+@@ -1882,6 +1883,8 @@
+ if ( '@JDK@' ne '' )
+ { 
+    ToFile( "JDK",             "@JDK@",           "e" );
++   ToFile( "JAVA_SOURCE_VER", "@JAVA_SOURCE_VER@","e" );
++   ToFile( "JAVA_TARGET_VER", "@JAVA_TARGET_VER@","e" );
+    ToFile( "JAVAINTERPRETER", PathFormat("@JAVAINTERPRETER@"), "e" );
+    ToFile( "JAVACOMPILER",    PathFormat("@JAVACOMPILER@"), "e" );
+    ToFile( "JAVAAOTCOMPILER", PathFormat("@JAVAAOTCOMPILER@"), "e" );
+--- solenv/inc/antsettings.mk.old	2006-07-05 22:59:17.000000000 +0200
++++ solenv/inc/antsettings.mk	2006-10-11 15:07:05.000000000 +0200
+@@ -53,6 +53,18 @@
+ ANT*:=$(ANT_HOME)$/bin$/ant
+ ANT_BUILDFILE*=build.xml
+ 
++.IF "$(ANT_COMPILER_FLAGS)"==""
++.IF "$(JAVACISGCJ)" == "yes"
++ANT_COMPILER_FLAGS=-Dbuild.compiler=gcj
++.ENDIF
++.ENDIF
++
++.IF "$(ANT_JAVA_VER_FLAGS)"==""
++.IF "$(JAVACISGCJ)" != "yes" && $(JAVACISKAFFE) != "yes"
++ANT_JAVA_VER_FLAGS=-Djava.source.ver=$(JAVA_SOURCE_VER) -Djava.target.ver=$(JAVA_TARGET_VER)
++.ENDIF
++.ENDIF
++
+ .IF "$(ANT_DEBUG)"==""
+ .IF "$(debug)"==""
+ ANT_DEBUG=off
+@@ -74,24 +86,14 @@
+ .EXPORT : JAVA_HOME
+ .ENDIF
+ 
+-.IF "$(JAVACISGCJ)" == "yes"
+-ANT_FLAGS!:=-Dbuild.compiler=gcj -Dprj=$(PRJ) -Dprjname=$(PRJNAME) -Ddebug=$(ANT_DEBUG) \
+- -Doptimize=$(ANT_OPT) -Dtarget=$(TARGET) -Dsolar.update=on -Dout=$(OUT) -Dinpath=$(INPATH) \
+- -Dproext="$(PROEXT)" -Dsolar.bin=$(SOLARBINDIR) -Dsolar.jar=$(SOLARBINDIR) \
+- -Dsolar.doc=$(SOLARDOCDIR) -Dcommon.jar=$(SOLARCOMMONBINDIR) \
++ANT_FLAGS!:=$(ANT_COMPILER_FLAGS) -Dprj=$(PRJ) -Dprjname=$(PRJNAME) $(ANT_JAVA_VER_FLAGS) \
++ -Ddebug=$(ANT_DEBUG) -Doptimize=$(ANT_OPT) -Dtarget=$(TARGET) -Dsolar.update=on \
++ -Dout=$(OUT) -Dinpath=$(INPATH) -Dproext="$(PROEXT)" -Dsolar.bin=$(SOLARBINDIR) \
++ -Dsolar.jar=$(SOLARBINDIR) -Dsolar.doc=$(SOLARDOCDIR) -Dcommon.jar=$(SOLARCOMMONBINDIR) \
+  -Dcommon.doc=$(SOLARCOMMONDOCDIR) -Dsolar.sourceversion=$(SOURCEVERSION) \
+  -Dsolar.lastminor=$(LAST_MINOR) -Dsolar.build=$(BUILD) -f $(ANT_BUILDFILE) $(ANT_FLAGS) -emacs
+-.ELSE
+-ANT_FLAGS!:=-Dprj=$(PRJ) -Dprjname=$(PRJNAME) -Ddebug=$(ANT_DEBUG) -Doptimize=$(ANT_OPT) \
+- -Dtarget=$(TARGET) -Dsolar.update=on -Dout=$(OUT) -Dinpath=$(INPATH) -Dproext="$(PROEXT)" \
+- -Dsolar.bin=$(SOLARBINDIR) -Dsolar.jar=$(SOLARBINDIR) -Dsolar.doc=$(SOLARDOCDIR) \
+- -Dcommon.jar=$(SOLARCOMMONBINDIR) -Dcommon.doc=$(SOLARCOMMONDOCDIR) \
+- -Dsolar.sourceversion=$(SOURCEVERSION) -Dsolar.lastminor=$(LAST_MINOR) \
+- -Dsolar.build=$(BUILD) -f $(ANT_BUILDFILE) $(ANT_FLAGS) -emacs
+-.ENDIF
++
+ .ELSE # No java
+ ANT=
+ ANT_FLAGS=
+ .ENDIF
+- 
+- 
+--- solenv/inc/settings.mk.old	2006-10-11 19:08:41.000000000 +0200
++++ solenv/inc/settings.mk	2006-10-11 19:11:35.000000000 +0200
+@@ -169,6 +169,9 @@
+ .IF "$(JAVACISGCJ)" == "yes"
+ JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C
+ .ENDIF
++.IF "$(JAVACISGCJ)" != "yes" && $(JAVACISKAFFE) != "yes"
++JAVAC+=-source $(JAVA_SOURCE_VER) -target $(JAVA_TARGET_VER)
++.ENDIF
+ 
+ #classpath and response
+ .IF "$(JDK)" == "J++"
+--- beanshell/bsh-2.0b1-src.patch.old	2005-12-21 12:36:35.000000000 +0100
++++ beanshell/bsh-2.0b1-src.patch	2006-10-11 15:49:48.000000000 +0200
+@@ -1,5 +1,5 @@
+-*** misc/BeanShell/build.xml	Fri Dec 19 17:14:27 2003
+---- misc/build/BeanShell/build.xml	Mon May 30 15:47:00 2005
++*** misc/BeanShell/build.xml	2003-12-19 17:14:27.000000000 +0100
++--- misc/build/BeanShell/build.xml	2006-10-11 15:46:05.000000000 +0200
+ ***************
+ *** 17,23 ****
+   		up the build dir!  It has to be done manually the first time (or put
+@@ -41,6 +41,17 @@
+   	<!-- Legacy excludes.  Comment this *out* to build these legacy items -->
+   	<property name="legacy-excludes" 
+   		value="bsh/JThis.java"/>
++***************
++*** 165,170 ****
++--- 171,178 ----
++  			deprecation="${deprecation}"
++  			optimize="on"
++  			debug="off"
+++ 			source="${java.source.ver}"
+++ 			target="${java.target.ver}"
++  			includes="**/*.java"
++  			excludes="${excludes},**/bak/**"
++  		>
+ *** misc/BeanShell/makefile.mk	Mon May 30 15:55:35 2005
+ --- misc/build/BeanShell/makefile.mk	Mon May 30 15:47:00 2005
+ ***************
+--- hsqldb/makefile.mk.old	2006-07-10 21:01:25.000000000 +0200
++++ hsqldb/makefile.mk	2006-10-11 20:42:14.000000000 +0200
+@@ -38,18 +38,12 @@
+ PRJNAME=hsqldb
+ TARGET=so_hsqldb
+ 
++.IF "$(SOLAR_JAVA)" != ""
+ # --- Settings -----------------------------------------------------
+ 
+ .INCLUDE :	settings.mk
+-
+-# override buildfile
+-ANT_BUILDFILE=build$/build.xml
+-
+-.INCLUDE : antsettings.mk
+-
+ .INCLUDE :  version.mk
+ 
+-.IF "$(SOLAR_JAVA)" != ""
+ # --- Files --------------------------------------------------------
+ 
+ TARFILE_NAME=hsqldb_$(HSQLDB_VERSION)
+@@ -60,28 +60,24 @@
+ 
+ PATCH_FILE_NAME=patches$/accumulated_patches.patch
+ 
++ADDITIONAL_FILES=makefile.mk
++
+ # ADDITIONAL_FILES=   src$/org$/hsqldb$/Collation.java \
+ #                     src$/org$/hsqldb$/TxManager.java \
+ #                     src$/org$/hsqldb$/lib$/LongKeyIntValueHashMap.java \
+ #                     src$/org$/hsqldb$/persist$/ScaledRAFileInJar.java \
+ #                     src$/org$/hsqldb$/test$/TestCollation.java
+ 
+-.IF "$(JAVACISGCJ)"=="yes"
+-JAVA_HOME=
+-.EXPORT : JAVA_HOME
+-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar
+-.ELSE
+-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) jar
+-.ENDIF
+-
+-.ENDIF # $(SOLAR_JAVA)!= ""
++BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ 
+ # --- Targets ------------------------------------------------------
+ 
+ .INCLUDE : set_ext.mk
+ .INCLUDE : target.mk
+ 
+-.IF "$(SOLAR_JAVA)" != ""
+ .INCLUDE : tg_ext.mk
+-.ENDIF
+ 
++.ELSE
++@all:
++	@echo java disabled
++.ENDIF
+dummy line to avoid confusing diff-mode
+--- hsqldb/patches/accumulated_patches.patch	2008-01-29 12:13:28.000000000 +0100
++++ hsqldb/patches/accumulated_patches.patch	2008-01-29 12:11:22.000000000 +0100
+@@ -1315,3 +1315,176 @@
+   
+                               return false;
+                           }
++diff -crN misc/hsqldb/makefile.mk misc/build/hsqldb/makefile.mk
++*** misc/hsqldb/makefile.mk	2006-11-28 12:45:49.000000000 +0100
++--- misc/build/hsqldb/makefile.mk	2006-11-28 12:31:12.000000000 +0100
++***************
++*** 1 ****
++! dummy
++--- 1,47 ----
++! #*************************************************************************
++! #
++! #   OpenOffice.org - a multi-platform office productivity suite
++! #
++! #   $RCSfile$
++! #
++! #   $Revision: 11827 $
++! #
++! #   last change: $Author: strba $ $Date: 2008-03-06 10:22:41 -0600 (Thu, 06 Mar 2008) $
++! #
++! #   The Contents of this file are made available subject to
++! #   the terms of GNU Lesser General Public License Version 2.1.
++! #
++! #
++! #     GNU Lesser General Public License Version 2.1
++! #     =============================================
++! #     Copyright 2005 by Sun Microsystems, Inc.
++! #     901 San Antonio Road, Palo Alto, CA 94303, USA
++! #
++! #     This library is free software; you can redistribute it and/or
++! #     modify it under the terms of the GNU Lesser General Public
++! #     License version 2.1, as published by the Free Software Foundation.
++! #
++! #     This library is distributed in the hope that it will be useful,
++! #     but WITHOUT ANY WARRANTY; without even the implied warranty of
++! #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++! #     Lesser General Public License for more details.
++! #
++! #     You should have received a copy of the GNU Lesser General Public
++! #     License along with this library; if not, write to the Free Software
++! #     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++! #     MA  02111-1307  USA
++! #
++! #*************************************************************************
++! 
++! PRJ=..$/..$/..$/..
++! PRJNAME=so_hsqldb
++! TARGET=so_hsqldb
++! 
++! # buildfile is in a subdirectory
++! ANT_BUILDFILE=build$/build.xml
++! 
++! .INCLUDE : ant.mk
++! 
++! ANT_FLAGS+=-Dbuild.label="build-$(RSCREVISION)" jar
++! 
++! ALLTAR : ANTBUILD
++diff -crN misc/hsqldb/build/build.xml misc/build/hsqldb/build/build.xml
++*** misc/hsqldb/build/build.xml.orig	2007-10-22 16:17:31.000000000 +0200
++--- misc/build/hsqldb/build/build.xml	2008-01-29 12:10:02.000000000 +0100
++***************
++*** 132,138 ****
++  
++      <target name="codeswitcher" depends="-prepare"
++              description="uses +-JDBC2 +-JDBC2 +-JAVA2 +-JDBC4">
++!       <javac destdir="classes">
++           <src path="${src}"/>
++           <include name="org/hsqldb/util/CodeSwitcher.java"/>
++         </javac>
++--- 132,138 ----
++  
++      <target name="codeswitcher" depends="-prepare"
++              description="uses +-JDBC2 +-JDBC2 +-JAVA2 +-JDBC4">
++!       <javac destdir="classes" source="${java.source.ver}" target="${java.target.ver}">
++           <src path="${src}"/>
++           <include name="org/hsqldb/util/CodeSwitcher.java"/>
++         </javac>
++***************
++*** 258,263 ****
++--- 258,265 ----
++              description="compiles the /store folder">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++        >
++***************
++*** 269,274 ****
++--- 271,278 ----
++              description="compiles the /lib folder">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++        >
++***************
++*** 281,286 ****
++--- 285,292 ----
++              description="compiles all the classes">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++         >
++***************
++*** 315,320 ****
++--- 321,328 ----
++             description="compiles 1.2 specific classes">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++         >
++***************
++*** 327,332 ****
++--- 335,342 ----
++             description="compiles 1.4 specific classes">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++         >
++***************
++*** 343,348 ****
++--- 353,360 ----
++             description="compiles 1.4-specific test classes">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++               debug="${build.debug}"
++               optimize="${build.optimize}"
++               classpath="lib/junit.jar"
++***************
++*** 357,362 ****
++--- 369,376 ----
++              description="compiles the /util folder">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++        >
++***************
++*** 373,378 ****
++--- 387,394 ----
++             description="compiles the swing based classes in the /util folder">
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++         >
++***************
++*** 388,393 ****
++--- 404,411 ----
++              message="'junit.jar' must reside in the /lib directory in order to use this target"/>
++        <javac srcdir="${src}"
++               destdir="classes"
+++              source="${java.source.ver}"
+++              target="${java.target.ver}"
++                   debug="${build.debug}"
++                   optimize="${build.optimize}"
++           >
+dummy line to avoid confusing diff-mode
+--- jfreereport/java/sac/makefile.mk.old	2008-01-11 09:27:31.000000000 +0100
++++ jfreereport/java/sac/makefile.mk	2008-01-29 17:56:18.000000000 +0100
+@@ -38,16 +38,12 @@ PRJ=..$/..
+ PRJNAME=jfreereport
+ TARGET=sac-1.3
+ 
++.IF "$(SOLAR_JAVA)" != ""
++
+ # --- Settings -----------------------------------------------------
+ 
+ .INCLUDE :	settings.mk
+ 
+-# override buildfile
+-ANT_BUILDFILE=build.xml
+-
+-.INCLUDE : antsettings.mk
+-
+-.IF "$(SOLAR_JAVA)" != ""
+ # --- Files --------------------------------------------------------
+ 
+ TARFILE_NAME=sacjava-1.3
+@@ -56,31 +52,26 @@ TARFILE_ROOTDIR=$(TARGET)
+ 
+ PATCH_FILE_NAME=patches$/sac.patch
+ 
+-ADDITIONAL_FILES=build.xml
++ADDITIONAL_FILES=build.xml \
++		 makefile.mk
+ 
+ # CONVERTFILES=build.xml
+ 
+-.IF "$(JAVACISGCJ)"=="yes"
+-JAVA_HOME=
+-.EXPORT : JAVA_HOME
+-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) all
+-.ELSE
+-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) all
+-.ENDIF
+-
+-.ENDIF # $(SOLAR_JAVA)!= ""
++BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ 
+ # --- Targets ------------------------------------------------------
+ 
+ .INCLUDE : set_ext.mk
+ .INCLUDE : target.mk
+ 
+-.IF "$(SOLAR_JAVA)" != ""
+ .INCLUDE : tg_ext.mk
+ 
+ ALLTAR : $(CLASSDIR)$/sac.jar
+ 
+ $(CLASSDIR)$/sac.jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE)
+ 	$(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/sac.jar $(CLASSDIR)$/sac.jar
+-.ENDIF
+ 
++.ELSE
++@all:
++       @echo java disabled
++.ENDIF
+dummy line to avoid confusing diff-mode
+--- jfreereport/patches/sac.patch.old	2008-01-11 09:30:07.000000000 +0100
++++ jfreereport/patches/sac.patch	2008-01-29 17:58:23.000000000 +0100
+@@ -1,3 +1,56 @@
++*** misc/sac-1.3/makefile.mk.dummy	2008-01-29 14:31:39.000000000 +0100
++--- misc/build/sac-1.3/makefile.mk	2008-01-29 17:35:10.000000000 +0100
++***************
++*** 1 ****
++! dummy
++--- 1,47 ----
++! #*************************************************************************
++! #
++! #   OpenOffice.org - a multi-platform office productivity suite
++! #
++! #   $RCSfile$
++! #
++! #   $Revision: 11827 $
++! #
++! #   last change: $Author: strba $ $Date: 2008-03-06 10:22:41 -0600 (Thu, 06 Mar 2008) $
++! #
++! #   The Contents of this file are made available subject to
++! #   the terms of GNU Lesser General Public License Version 2.1.
++! #
++! #
++! #     GNU Lesser General Public License Version 2.1
++! #     =============================================
++! #     Copyright 2005 by Sun Microsystems, Inc.
++! #     901 San Antonio Road, Palo Alto, CA 94303, USA
++! #
++! #     This library is free software; you can redistribute it and/or
++! #     modify it under the terms of the GNU Lesser General Public
++! #     License version 2.1, as published by the Free Software Foundation.
++! #
++! #     This library is distributed in the hope that it will be useful,
++! #     but WITHOUT ANY WARRANTY; without even the implied warranty of
++! #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++! #     Lesser General Public License for more details.
++! #
++! #     You should have received a copy of the GNU Lesser General Public
++! #     License along with this library; if not, write to the Free Software
++! #     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++! #     MA  02111-1307  USA
++! #
++! #*************************************************************************
++! 
++! PRJ=..$/..$/..$/..
++! PRJNAME=jfreereport
++! TARGET=sac-1.3
++! 
++! # buildfile is in a subdirectory
++! ANT_BUILDFILE=build.xml
++! 
++! .INCLUDE : ant.mk
++! 
++! ANT_FLAGS+=-Dbuild.label="build-$(RSCREVISION)" jar
++! 
++! ALLTAR : ANTBUILD
+ *** misc/sac-1.3/build.xml	Thu Oct 18 09:22:24 2007
+ --- misc/build/sac-1.3/build.xml	Thu Oct 18 08:53:59 2007
+ ***************
+@@ -40,7 +93,7 @@
+ ! 
+ !   <!-- Build classes -->
+ !   <target name="classes" depends="prepare">
+-!     <javac srcdir="${src}" destdir="${build.classes}" debug="off" optimize="on"/>
++!     <javac srcdir="${src}" destdir="${build.classes}" source="${java.source.ver}" target="${java.target.ver}" debug="off" optimize="on"/>
+ !     <copy todir="${build.classes}">
+ !       <fileset dir="${src}">
+ !         <include name="**/*.properties"/>
+dummy line to avoid confusing diff-mode
+--- rhino/makefile.mk.old	2008-01-04 13:29:01.000000000 +0100
++++ rhino/makefile.mk	2008-01-29 12:34:37.000000000 +0100
+@@ -42,7 +42,6 @@ TARGET=ooo_rhino
+ # --- Settings -----------------------------------------------------
+ 
+ .INCLUDE :	settings.mk
+-.INCLUDE :  antsettings.mk
+ 
+ # --- Files --------------------------------------------------------
+ 
+@@ -50,17 +49,12 @@ TARFILE_NAME=rhino1_5R5
+ TARFILE_ROOTDIR=rhino1_5R5
+ 
+ ADDITIONAL_FILES= \
++	makefile.mk \
+ 	toolsrc/org/mozilla/javascript/tools/debugger/OfficeScriptInfo.java
+ 
+ PATCH_FILE_NAME=rhino1_5R5.patch
+ 
+-.IF "$(JAVACISGCJ)"=="yes"
+-JAVA_HOME=
+-.EXPORT : JAVA_HOME
+-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj jar
+-.ELSE
+-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" jar
+-.ENDIF
++BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ 
+ # --- Targets ------------------------------------------------------
+ 
+dummy line to avoid confusing diff-mode
+--- rhino/rhino1_5R5.patch.old	2008-01-02 15:51:18.000000000 +0100
++++ rhino/rhino1_5R5.patch	2008-01-29 12:34:05.000000000 +0100
+@@ -1,3 +1,82 @@
++*** misc/rhino1_5R5//makefile.mk.old	2008-01-29 12:32:48.000000000 +0100
++--- misc/build/rhino1_5R5//makefile.mk	2008-01-29 12:33:22.000000000 +0100
++***************
++*** 1 ****
++! dummy
++--- 1,47 ----
++! #*************************************************************************
++! #
++! #   OpenOffice.org - a multi-platform office productivity suite
++! #
++! #   $RCSfile$
++! #
++! #   $Revision: 11827 $
++! #
++! #   last change: $Author: strba $ $Date: 2008-03-06 10:22:41 -0600 (Thu, 06 Mar 2008) $
++! #
++! #   The Contents of this file are made available subject to
++! #   the terms of GNU Lesser General Public License Version 2.1.
++! #
++! #
++! #     GNU Lesser General Public License Version 2.1
++! #     =============================================
++! #     Copyright 2005 by Sun Microsystems, Inc.
++! #     901 San Antonio Road, Palo Alto, CA 94303, USA
++! #
++! #     This library is free software; you can redistribute it and/or
++! #     modify it under the terms of the GNU Lesser General Public
++! #     License version 2.1, as published by the Free Software Foundation.
++! #
++! #     This library is distributed in the hope that it will be useful,
++! #     but WITHOUT ANY WARRANTY; without even the implied warranty of
++! #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++! #     Lesser General Public License for more details.
++! #
++! #     You should have received a copy of the GNU Lesser General Public
++! #     License along with this library; if not, write to the Free Software
++! #     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++! #     MA  02111-1307  USA
++! #
++! #*************************************************************************
++! 
++! PRJ=..$/..$/..$/..
++! PRJNAME=ooo_rhino
++! TARGET=ooo_rhino
++! 
++! # buildfile is in a subdirectory
++! ANT_BUILDFILE=build.xml
++! 
++! .INCLUDE : ant.mk
++! 
++! ANT_FLAGS+=-Dbuild.label="build-$(RSCREVISION)" jar
++! 
++! ALLTAR : ANTBUILD
++*** misc/rhino1_5R5/src/build.xml.old	2004-03-25 21:54:34.000000000 +0100
++--- misc/build/rhino1_5R5/src/build.xml	2008-01-29 12:18:05.000000000 +0100
++***************
++*** 17,22 ****
++--- 17,24 ----
++             destdir="${nest}/${classes}"
++             includes="org/**/*.java"
++             deprecation="on"
+++            source="${java.source.ver}" 
+++            target="${java.target.ver}"
++             debug="${debug}">
++      </javac>
++      <copy todir="${nest}/${classes}">
++*** misc/rhino1_5R5/toolsrc/build.xml.old	2008-01-29 10:51:54.000000000 +0100
++--- misc/build/rhino1_5R5/toolsrc/build.xml	2008-01-29 12:21:10.000000000 +0100
++***************
++*** 31,36 ****
++--- 31,38 ----
++             destdir="${nest}/${classes}"
++             includes="org/**/*.java"
++             deprecation="on"
+++            source="${java.source.ver}" 
+++            target="${java.target.ver}"
++             debug="${debug}">
++      </javac>
++      <copy todir="${nest}/${classes}">
+ *** misc/rhino1_5R5/src/org/mozilla/javascript/DefiningClassLoader.java	Tue Mar 22 13:20:47 2005
+ --- misc/build/rhino1_5R5/src/org/mozilla/javascript/DefiningClassLoader.java	Tue Jul  4 14:59:43 2006
+ ***************
+dummy line to avoid confusing diff-mode
+--- scripting/examples/java/build.xml.old	2005-09-09 03:53:51.000000000 +0200
++++ scripting/examples/java/build.xml	2006-10-11 15:30:17.000000000 +0200
+@@ -55,7 +55,8 @@
+ 
+     <javac srcdir="HelloWorld" destdir="${outdir}/HelloWorld"
+            includes="**/*.java" classpathref="idlclasspath"
+-           debug="${debug}" optimize="${optimize}" deprecation="on"/>
++           debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+ 
+     <copy file="HelloWorld/HelloWorld.java" todir="${outdir}/HelloWorld"/>
+     <copy file="HelloWorld/parcel-descriptor.xml" todir="${outdir}/HelloWorld"/>
+@@ -77,7 +78,8 @@
+ 
+     <javac srcdir="Highlight" destdir="${outdir}/Highlight"
+            includes="**/*.java" classpathref="idlclasspath"
+-           debug="${debug}" optimize="${optimize}" deprecation="on"/>
++           debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+ 
+     <copy file="Highlight/HighlightText.java" todir="${outdir}/Highlight"/>
+     <copy file="Highlight/parcel-descriptor.xml" todir="${outdir}/Highlight"/>
+@@ -99,7 +101,8 @@
+ 
+     <javac srcdir="MemoryUsage" destdir="${outdir}/MemoryUsage"
+            includes="**/*.java" classpathref="idlclasspath"
+-           debug="${debug}" optimize="${optimize}" deprecation="on"/>
++           debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+ 
+     <copy file="MemoryUsage/MemoryUsage.java" todir="${outdir}/MemoryUsage"/>
+     <copy file="MemoryUsage/parcel-descriptor.xml" todir="${outdir}/MemoryUsage"/>
+@@ -121,7 +124,8 @@
+ 
+     <javac srcdir="selector" destdir="${outdir}/selector"
+        	   includes="**/*.java" classpathref="idlclasspath"
+-	       debug="${debug}" optimize="${optimize}" deprecation="on"/>
++       	   debug="${debug}" optimize="${optimize}" deprecation="on"
++       	   source="${java.source.ver}" target="${java.target.ver}"/>
+ 
+     <copy todir="${outdir}/selector">
+         <fileset dir="selector">
+--- scripting/java/build.xml.old	2006-04-19 17:06:54.000000000 +0200
++++ scripting/java/build.xml	2006-10-11 15:32:20.000000000 +0200
+@@ -89,16 +89,19 @@
+   <target name="compile" depends="prepare">
+     <javac srcdir="com" destdir="${jardir}"
+          includes="**/*.java" classpathref="idlclasspath"
+-         debug="${debug}" optimize="${optimize}" deprecation="off"/>
++         debug="${debug}" optimize="${optimize}" deprecation="off"
++	 source="${java.source.ver}" target="${java.target.ver}"/>
+     <javac srcdir="Framework/" destdir="${jardir}"
+          includes="**/*.java" classpathref="idlclasspath" debug="${debug}" 
+-         optimize="${optimize}" deprecation="off">
++         optimize="${optimize}" deprecation="off"
++	 source="${java.source.ver}" target="${java.target.ver}">
+     </javac>
+   </target>
+ 
+   <target name="idesupport.compile" depends="compile, prepare">
+     <javac srcdir="." destdir="${jardir}"
+-           debug="${debug}" deprecation="on">
++           debug="${debug}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}">
+       <classpath refid="idesupport.class.path"/>
+       <exclude name="${idesupport.dir}/**/.*/*"/>
+       <exclude name="${idesupport.dir}/localoffice/**/*"/>
+@@ -110,7 +113,8 @@
+ 
+   <target name="localoffice.compile" depends="prepare">
+     <javac srcdir="." destdir="${jardir}"
+-           debug="${debug}" deprecation="on">
++           debug="${debug}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}">
+       <classpath refid="idlclasspath"/>
+       <exclude name="${idesupport.dir}/localoffice/.*/*"/>
+       <include name="${idesupport.dir}/localoffice/*.java"/>
+@@ -119,7 +123,8 @@
+ 
+   <target name="netbeans.compile" depends="idesupport.compile, prepare">
+     <javac srcdir="." destdir="${jardir}"
+-           debug="${debug}" deprecation="on">
++           debug="${debug}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}">
+       <classpath refid="openide.class.path"/>
+       <exclude name="${netbeans.dir}/**/.*/*"/>
+       <include name="${netbeans.dir}/**/*.java"/>
+@@ -128,7 +133,8 @@
+ 
+   <target name="netbeans.editor.support" depends="prepare">
+     <javac srcdir="." destdir="${jardir}"
+-           debug="${debug}" deprecation="on">
++           debug="${debug}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}">
+       <classpath refid="netbeans.editor.support.classpath"/>
+       <include name="org/openoffice/netbeans/editor/*.java"/>
+     </javac>
+--- scripting/workben/build.xml.old	2005-09-09 04:41:02.000000000 +0200
++++ scripting/workben/build.xml	2006-10-11 15:18:44.000000000 +0200
+@@ -117,7 +117,8 @@
+            destdir="${out}/class/examples/java/debugger"
+        	   includes="*.java"
+            classpathref="debuggerclasspath"
+-	   debug="${debug}" optimize="${optimize}" deprecation="on"/>
++	   debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+ 
+     <copy todir="${out}/class/examples/java/debugger">
+         <fileset dir="${prj}/examples/java/debugger">
+@@ -141,7 +142,8 @@
+     <mkdir dir="${out}/class/examples/java/Highlight"/>
+     <javac srcdir="${prj}/examples/java/" destdir="${out}/class/examples/java/Highlight/"
+        	   includes="**/Highlight*.java" classpathref="idlclasspath"
+-	   debug="${debug}" optimize="${optimize}" deprecation="on"/>
++	   debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+     <copy todir="${out}/class/examples/java/Highlight/">
+         <fileset dir="${prj}/examples/java/">
+             <include name="**/Highlight*.java"/>
+@@ -160,7 +162,8 @@
+     <mkdir dir="${out}/class/examples/java/MemoryUsage"/>
+     <javac srcdir="${prj}/examples/java/" destdir="${out}/class/examples/java/MemoryUsage/"
+        	   includes="**/MemoryUsage.java" classpathref="idlclasspath"
+-	   debug="${debug}" optimize="${optimize}" deprecation="on"/>
++	   debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+     <copy file="${prj}/examples/java/MemoryUsage.java" todir="${out}/class/examples/java/MemoryUsage/"/>
+     <copy file="${prj}/examples/java/MemoryUsageParcel.xml" tofile="${out}/class/examples/java/MemoryUsage/parcel-descriptor.xml"/>
+     <copy file="${prj}/examples/java/MemoryUsage.java" todir="${out}/class/examples/java/MemoryUsage/"/>
+@@ -169,7 +172,8 @@
+     <mkdir dir="${out}/class/examples/java/ScriptFrmwrkHelper"/>
+     <javac srcdir="${prj}/examples/java/" destdir="${out}/class/examples/java/ScriptFrmwrkHelper/"
+        	   includes="**/ScriptFrmwrkHelper.java" classpathref="scriptexampleclasspath"
+-	   debug="${debug}" optimize="${optimize}" deprecation="on"/>
++	   debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+     <copy todir="${out}/class/examples/java/ScriptFrmwrkHelper/">
+         <fileset dir="${prj}/examples/java/">
+             <include name="**/ScriptFrmwrkHelper.java"/>
+@@ -319,7 +323,8 @@
+     <javac srcdir="${prj}/examples/java/debugger"
+            destdir="${out}/class/jsruntimetmp"
+        	   includes="rhino/Main.java" classpathref="debuggerclasspath"
+-	   debug="${debug}" optimize="${optimize}" deprecation="on"/>
++	   debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+ 
+     <zip destfile="${out}/class/jsruntime/skip_registration/js.jar"
+         basedir="${out}/class/jsruntimetmp" includes="**"/>
+@@ -377,7 +382,8 @@
+     <mkdir dir="${installerclasses}"/>
+     <javac srcdir="installer/" destdir="${installerclasses}"
+        	   includes="**/*.java" classpathref="idlclasspath"
+-	   debug="${debug}" optimize="${optimize}" deprecation="on"/>
++	   debug="${debug}" optimize="${optimize}" deprecation="on"
++	   source="${java.source.ver}" target="${java.target.ver}"/>
+     <copy file="installer/sidebar.jpg" todir="${out}/class/sframeworkinstall/installer"/>
+   </target>
+ 
+--- transex3/java/l10nconv/build.xml.old	2007-05-11 11:06:43.000000000 +0200
++++ transex3/java/l10nconv/build.xml	2007-07-17 11:58:03.000000000 +0200
+@@ -133,6 +133,8 @@
+ 	       debug="${debug}"
+                deprecation="${deprication}"
+ 	       optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}"
+ 	       classpathref="classpath">
+             <src path="${java.dir}"/>
+ 	    <include name="**/*.java"/>
+--- transex3/java/receditor/build.xml.old	2007-07-10 17:42:10.000000000 +0200
++++ transex3/java/receditor/build.xml	2007-07-18 11:40:17.000000000 +0200
+@@ -131,6 +131,8 @@
+ 	       debug="${debug}"
+                deprecation="${deprication}"
+ 	       optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}"
+ 	       classpathref="classpath">
+             <src path="${java.dir}"/>
+ 	    <include name="**/*.java"/>
+--- xmerge/java/org/openoffice/xmerge/build.xml.old	2005-09-09 12:22:56.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/build.xml	2006-10-11 16:08:54.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/Convert.java"/>
+             <include name="${package}/ConverterCapabilities.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/dom/build.xml.old	2005-09-09 12:24:04.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/dom/build.xml	2006-10-11 17:04:03.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/DOMDocument.java"/>
+         </javac>
+--- xmerge/java/org/openoffice/xmerge/converter/palm/build.xml.old	2005-09-09 12:26:39.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/palm/build.xml	2006-10-11 16:47:21.000000000 +0200
+@@ -111,7 +111,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/PalmDB.java"/>
+             <include name="${package}/PdbDecoder.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/build.xml.old	2005-09-09 12:45:07.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/build.xml	2006-10-11 16:47:58.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+                         <include name="${package}/EmbeddedObject.java"/>
+                         <include name="${package}/EmbeddedBinaryObject.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml.old	2005-09-09 12:49:55.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml	2006-10-11 16:50:37.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/CellStyle.java"/>
+             <include name="${package}/ColumnStyle.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/build.xml.old	2005-09-09 12:52:54.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/build.xml	2006-10-11 16:52:07.000000000 +0200
+@@ -115,7 +115,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/MinicalcConstants.java"/>
+             <include name="${package}/MinicalcDecoder.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml.old	2005-09-09 12:55:41.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml	2006-10-11 16:51:12.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/PocketExcelConstants.java"/>
+             <include name="${package}/PocketExcelDecoder.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml.old	2005-09-09 13:04:31.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml	2006-10-11 16:51:28.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+ 			<include name="${package}/BIFFRecord.java"/>
+ 			<include name="${package}/CellValue.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml.old	2005-09-09 13:09:59.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml	2006-10-11 16:51:45.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+ 			<include name="${package}/FormulaCompiler.java"/>
+ 			<include name="${package}/FormulaHelper.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml.old	2005-09-09 13:14:23.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml	2006-10-11 16:50:03.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/DocConstants.java"/>
+             <include name="${package}/DocDecoder.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml.old	2005-09-09 13:11:24.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml	2006-10-11 16:48:59.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+ 			<include name="${package}/SxwDocument.java"/>
+ 			<include name="${package}/SxwPluginFactory.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml.old	2005-09-09 13:18:18.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml	2006-10-11 16:49:16.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+ 			<include name="${package}/DocumentDescriptor.java"/>
+                         <include name="${package}/DocumentDeserializerImpl.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml.old	2005-09-09 13:23:06.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml	2006-10-11 16:49:34.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/DOCConstants.java"/>
+             <include name="${package}/textRecord.java"/>
+--- xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml.old	2005-09-09 13:26:09.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml	2006-10-11 16:48:23.000000000 +0200
+@@ -115,7 +115,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/DocumentDeserializerImpl.java"/>
+             <include name="${package}/DocumentSerializerImpl.java"/>
+--- xmerge/java/org/openoffice/xmerge/merger/build.xml.old	2005-09-09 13:30:36.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/merger/build.xml	2006-10-11 16:44:04.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/DiffAlgorithm.java"/>
+             <include name="${package}/Difference.java"/>
+--- xmerge/java/org/openoffice/xmerge/merger/diff/build.xml.old	2005-09-09 13:34:42.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/merger/diff/build.xml	2006-10-11 16:46:49.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/CharacterParser.java"/>
+             <include name="${package}/CharArrayLCSAlgorithm.java"/>
+--- xmerge/java/org/openoffice/xmerge/merger/merge/build.xml.old	2005-09-09 13:37:05.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/merger/merge/build.xml	2006-10-11 16:46:28.000000000 +0200
+@@ -114,7 +114,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/CharacterBaseParagraphMerge.java"/>
+             <include name="${package}/PositionBaseRowMerge.java"/>
+--- xmerge/java/org/openoffice/xmerge/test/build.xml.old	2005-09-09 13:38:44.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/test/build.xml	2006-10-11 17:07:59.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/ConverterInfoList.java"/>
+             <include name="${package}/Driver.java"/>
+--- xmerge/java/org/openoffice/xmerge/util/build.xml.old	2005-09-09 13:42:14.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/util/build.xml	2006-10-11 17:07:04.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/IntArrayList.java"/>
+             <include name="${package}/Resources.java"/>
+--- xmerge/java/org/openoffice/xmerge/util/registry/build.xml.old	2005-09-09 13:44:35.000000000 +0200
++++ xmerge/java/org/openoffice/xmerge/util/registry/build.xml	2006-10-11 17:07:18.000000000 +0200
+@@ -113,7 +113,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/ConverterInfo.java"/>
+             <include name="${package}/ConverterInfoMgr.java"/>
+--- xmerge/source/aportisdoc/build.xml.old	2006-08-01 14:39:04.000000000 +0200
++++ xmerge/source/aportisdoc/build.xml	2006-10-11 16:07:08.000000000 +0200
+@@ -55,7 +55,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/bridge/build.xml.old	2006-08-01 14:41:36.000000000 +0200
++++ xmerge/source/bridge/build.xml	2006-10-11 16:05:56.000000000 +0200
+@@ -62,7 +62,9 @@
+                destdir="${target.dir}"
+ 			   debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/minicalc/build.xml.old	2006-08-01 14:43:30.000000000 +0200
++++ xmerge/source/minicalc/build.xml	2006-10-11 16:05:30.000000000 +0200
+@@ -55,7 +55,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/pexcel/build.xml.old	2006-08-01 14:56:54.000000000 +0200
++++ xmerge/source/pexcel/build.xml	2006-10-11 16:05:04.000000000 +0200
+@@ -55,7 +55,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/pocketword/build.xml.old	2006-08-01 15:09:21.000000000 +0200
++++ xmerge/source/pocketword/build.xml	2006-10-11 16:02:43.000000000 +0200
+@@ -55,7 +55,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/wordsmith/build.xml.old	2006-08-01 15:12:23.000000000 +0200
++++ xmerge/source/wordsmith/build.xml	2006-10-11 16:06:21.000000000 +0200
+@@ -55,7 +55,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/writer2latex/build.xml.old	2006-07-13 11:16:05.000000000 +0200
++++ xmerge/source/writer2latex/build.xml	2006-10-11 16:06:43.000000000 +0200
+@@ -85,7 +85,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/xmerge/build.xml.old	2006-08-01 15:16:55.000000000 +0200
++++ xmerge/source/xmerge/build.xml	2006-10-11 16:03:09.000000000 +0200
+@@ -64,7 +64,9 @@
+                destdir="${target.dir}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+         </javac>
+     </target>
+--- xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml.old	2006-08-01 15:43:18.000000000 +0200
++++ xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml	2006-10-11 16:03:48.000000000 +0200
+@@ -118,7 +118,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="${package}/ConverterInfo.java"/>
+             <include name="${package}/ConverterInfoMgr.java"/>
+--- xmerge/workben/build.xml.old	2006-04-19 17:11:40.000000000 +0200
++++ xmerge/workben/build.xml	2006-10-11 16:01:22.000000000 +0200
+@@ -116,7 +116,9 @@
+                destdir="${build.class}"
+                debug="${debug}"
+                deprecation="${deprecation}"
+-               optimize="${optimize}">
++               optimize="${optimize}"
++	       source="${java.source.ver}"
++	       target="${java.target.ver}">
+             <classpath refid="classpath"/>
+             <include name="XmlDiff.java"/>
+         </javac>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-remove-check-update-on-fileload.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-remove-check-update-on-fileload.diff
@@ -0,0 +1,65 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/dialog/newerverwarn.cxx sfx2/source/dialog/newerverwarn.cxx
+--- sfx2.clean/source/dialog/newerverwarn.cxx	2008-05-06 23:56:41.000000000 -0400
++++ sfx2/source/dialog/newerverwarn.cxx	2008-05-07 00:00:36.000000000 -0400
+@@ -58,6 +58,7 @@ namespace lang  = ::com::sun::star::lang
+ 
+ using namespace com::sun::star::system;
+ 
++#if 0
+ namespace sfx2
+ {
+ 
+@@ -160,4 +161,5 @@ void NewerVersionWarningDialog::InitButt
+ }
+ 
+ } // end of namespace sfx2
++#endif
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/doc/objstor.cxx sfx2/source/doc/objstor.cxx
+--- sfx2.clean/source/doc/objstor.cxx	2008-05-06 23:56:40.000000000 -0400
++++ sfx2/source/doc/objstor.cxx	2008-05-06 23:59:24.000000000 -0400
+@@ -1082,6 +1082,7 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedi
+             }
+         }
+ 
++#if 0
+         if ( pMedium->GetInteractionHandler().is() && !SFX_APP()->Get_Impl()->bODFVersionWarningLater )
+         {
+             // scan the generator string (within meta.xml)
+@@ -1122,16 +1122,17 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedi
+                         // ODF version greater than 1.1 - added some decimal places to be safe against floating point conversion errors (hack)
+                         sfx2::NewerVersionWarningDialog aDlg( NULL, sVersion );
+                         aDlg.Execute();
+                     }
+                 }
+             }
+ 			SetModified(sal_False);		// #i87555
+         }
++#endif
+     }
+     else
+         GetpApp()->HideStatusText();
+ 
+ 	return bOk;
+ }
+ 
+ sal_uInt32 SfxObjectShell::HandleFilter( SfxMedium* pMedium, SfxObjectShell* pDoc )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/inc/newerverwarn.hxx sfx2/source/inc/newerverwarn.hxx
+--- sfx2.clean/source/inc/newerverwarn.hxx	2008-05-06 23:56:41.000000000 -0400
++++ sfx2/source/inc/newerverwarn.hxx	2008-05-06 23:59:58.000000000 -0400
+@@ -39,6 +39,7 @@
+ #include <vcl/fixed.hxx>
+ #include <sfx2/basedlgs.hxx>
+ 
++#if 0
+ namespace sfx2
+ {
+     class NewerVersionWarningDialog : public SfxModalDialog
+@@ -60,6 +61,7 @@ namespace sfx2
+         ~NewerVersionWarningDialog();
+     };
+ } // namespace sfx2
++#endif
+ 
+ #endif // #ifndef _SFX2_NEWERVERSIONWARNING_HXX
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkwarn-dlg-in-apps.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkwarn-dlg-in-apps.diff
@@ -0,0 +1,92 @@
+--- sw/source/ui/uiview/view2.cxx	2008-04-10 23:49:38.000000000 +0200
++++ sw/source/ui/uiview/view2.cxx	2008-05-07 18:39:44.000000000 +0200
+@@ -104,6 +104,7 @@
+ #ifndef SVTOOLS_URIHELPER_HXX
+ #include <svtools/urihelper.hxx>
+ #endif
++#include <svtools/miscopt.hxx>
+ #ifndef _SFX_PASSWD_HXX
+ #include <sfx2/passwd.hxx>
+ #endif
+@@ -119,6 +120,7 @@
+ #ifndef _SVX_LANGITEM_HXX //autogen
+ #include <svx/langitem.hxx>
+ #endif
++#include <svx/linkwarn.hxx>
+ #ifndef _SVX_HTMLMODE_HXX
+ #include <svx/htmlmode.hxx>
+ #endif
+@@ -608,6 +610,14 @@
+                     rReq.AppendItem( SfxStringItem( FN_PARAM_2, sGraphicFormat ) );
+                 rReq.AppendItem( SfxBoolItem( FN_PARAM_1, bAsLink ) );
+             }
++
++            // really store as link only?
++            if( bAsLink && SvtMiscOptions().ShowLinkWarningDialog() )
++            {
++                SvxLinkWarningDialog aWarnDlg(GetWindow(),pFileDlg->GetPath());
++                if( aWarnDlg.Execute() != RET_OK )
++                    bAsLink=sal_False; // don't store as link
++            }                        
+         }
+ 
+         SwWrtShell& rSh = GetWrtShell();
+--- sc/source/ui/drawfunc/fuins1.cxx	2008-04-11 00:23:00.000000000 +0200
++++ sc/source/ui/drawfunc/fuins1.cxx	2008-05-07 18:40:07.000000000 +0200
+@@ -42,8 +42,10 @@
+ #include <svx/svdpage.hxx>
+ #include <svx/svdpagv.hxx>
+ #include <svx/svdview.hxx>
++#include <svx/linkwarn.hxx>
+ #include <svtools/filter.hxx>
+ #include <svtools/stritem.hxx>
++#include <svtools/miscopt.hxx>
+ #include <vcl/msgbox.hxx>
+ #include <tools/urlobj.hxx>
+ #include <avmedia/mediawindow.hxx>
+@@ -297,6 +299,14 @@
+ 				String aFilterName = aDlg.GetCurrentFilter();
+ 				BOOL bAsLink = aDlg.IsAsLink();
+ 
++                // really store as link only?
++                if( bAsLink && SvtMiscOptions().ShowLinkWarningDialog() )
++                {
++                    SvxLinkWarningDialog aWarnDlg(pWin,aFileName);
++                    if( aWarnDlg.Execute() != RET_OK )
++                        bAsLink = sal_False; // don't store as link
++                }
++
+ 				lcl_InsertGraphic( aGraphic, aFileName, aFilterName, bAsLink, FALSE, pViewSh, pWindow, pView );
+ 
+ 				//	append items for recording
+--- sd/source/ui/func/fuinsert.cxx	2008-04-10 22:20:15.000000000 +0200
++++ sd/source/ui/func/fuinsert.cxx	2008-05-07 18:13:46.000000000 +0200
+@@ -51,9 +51,11 @@
+ #include <sfx2/request.hxx>
+ #include <svtools/globalnameitem.hxx>
+ #include <svtools/pathoptions.hxx>
++#include <svtools/miscopt.hxx>
+ #include <svx/pfiledlg.hxx>
+ #include <svx/impgrf.hxx>
+ #include <svx/dialogs.hrc>
++#include <svx/linkwarn.hxx>
+ #include <svx/linkmgr.hxx>
+ #include <svx/svdetc.hxx>
+ #include <avmedia/mediawindow.hxx>
+@@ -178,7 +180,15 @@
+ 
+ 				if(pGrafObj && aDlg.IsAsLink())
+ 				{
+-					// store link only?
++                    // really store as link only?
++                    if( SvtMiscOptions().ShowLinkWarningDialog() )
++                    {
++                        SvxLinkWarningDialog aWarnDlg(mpWindow,aDlg.GetPath());
++                        if( aWarnDlg.Execute() != RET_OK )
++                            return; // don't store as link
++                    }
++                        
++					// store as link
+ 					String aFltName(aDlg.GetCurrentFilter());
+ 					String aPath(aDlg.GetPath());
+ 					pGrafObj->SetGraphicLink(aPath, aFltName);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-framework.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-framework.diff
@@ -0,0 +1,721 @@
+Index: framework/inc/services.h
+===================================================================
+RCS file: /cvs/framework/framework/inc/services.h,v
+retrieving revision 1.44
+retrieving revision 1.44.4.1
+diff -u -p -u -p -r1.44 -r1.44.4.1
+--- framework/inc/services.h	2 Aug 2007 17:03:01 -0000	1.44
++++ framework/inc/services.h	30 Aug 2007 15:00:07 -0000	1.44.4.1
+@@ -149,7 +149,6 @@ namespace framework{
+ #define	IMPLEMENTATIONNAME_LOGINDIALOG						    DECLARE_ASCII("com.sun.star.comp.framework.LoginDialog"				)
+ #define	IMPLEMENTATIONNAME_TYPEDETECTION					    DECLARE_ASCII("com.sun.star.comp.framework.TypeDetection"			)
+ #define	IMPLEMENTATIONNAME_DOCUMENTPROPERTIES				    DECLARE_ASCII("com.sun.star.comp.framework.DocumentProperties"		)
+-#define IMPLEMENTATIONNAME_SOUNDHANDLER                         DECLARE_ASCII("com.sun.star.comp.framework.SoundHandler"            )
+ #define IMPLEMENTATIONNAME_CONTENTHANDLERFACTORY                DECLARE_ASCII("com.sun.star.comp.framework.ContentHandlerFactory"   )
+ #define IMPLEMENTATIONNAME_SFXTERMINATOR                        DECLARE_ASCII("com.sun.star.comp.sfx2.SfxTerminateListener"         )
+ #define IMPLEMENTATIONNAME_PIPETERMINATOR                       DECLARE_ASCII("com.sun.star.comp.OfficeIPCThreadController"         )
+Index: framework/inc/dispatch/soundhandler.hxx
+===================================================================
+RCS file: framework/inc/dispatch/soundhandler.hxx
+diff -N framework/inc/dispatch/soundhandler.hxx
+--- framework/inc/dispatch/soundhandler.hxx	19 Jun 2006 10:51:51 -0000	1.5
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,229 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: soundhandler.hxx,v $
+- *
+- *  $Revision: 1.5 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/19 10:51:51 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef __FRAMEWORK_HANDLER_SOUNDHANDLER_HXX_
+-#define __FRAMEWORK_HANDLER_SOUNDHANDLER_HXX_
+-
+-//_________________________________________________________________________________________________________________
+-//	my own includes
+-//_________________________________________________________________________________________________________________
+-
+-#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_
+-#include <threadhelp/threadhelpbase.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_THREADHELP_RESETABLEGUARD_HXX_
+-#include <threadhelp/resetableguard.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_
+-#include <macros/xinterface.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_MACROS_XTYPEPROVIDER_HXX_
+-#include <macros/xtypeprovider.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_MACROS_XSERVICEINFO_HXX_
+-#include <macros/xserviceinfo.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_
+-#include <macros/debug.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_
+-#include <macros/generic.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_GENERAL_H_
+-#include <general.h>
+-#endif
+-
+-#ifndef __FRAMEWORK_STDTYPES_H_
+-#include <stdtypes.h>
+-#endif
+-
+-//_________________________________________________________________________________________________________________
+-//	interface includes
+-//_________________________________________________________________________________________________________________
+-
+-#ifndef _COM_SUN_STAR_LANG_XTYPEPROVIDER_HPP_
+-#include <com/sun/star/lang/XTypeProvider.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_FRAME_XNOTIFYINGDISPATCH_HPP_
+-#include <com/sun/star/frame/XNotifyingDispatch.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_
+-#include <com/sun/star/frame/XStatusListener.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_
+-#include <com/sun/star/frame/XFrame.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_
+-#include <com/sun/star/document/XExtendedFilterDetection.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+-#include <com/sun/star/beans/PropertyValue.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_UTIL_URL_HPP_
+-#include <com/sun/star/util/URL.hpp>
+-#endif
+-
+-//_________________________________________________________________________________________________________________
+-//	other includes
+-//_________________________________________________________________________________________________________________
+-
+-#ifndef _CPPUHELPER_WEAK_HXX_
+-#include <cppuhelper/weak.hxx>
+-#endif
+-
+-#ifndef _SV_SOUND_HXX
+-#include <vcl/sound.hxx>
+-#endif
+-
+-//_________________________________________________________________________________________________________________
+-//	namespace
+-//_________________________________________________________________________________________________________________
+-
+-namespace framework{
+-
+-//_________________________________________________________________________________________________________________
+-//	exported const
+-//_________________________________________________________________________________________________________________
+-
+-//_________________________________________________________________________________________________________________
+-//	exported definitions
+-//_________________________________________________________________________________________________________________
+-
+-/*-************************************************************************************************************//**
+-    @short          handler to detect and play sounds ("wav" and "au" only!)
+-    @descr          Register this implementation as a content handler to detect and/or play wav- and au-sounds.
+-                    It doesn't depend from the target platform. But one instance of this class
+-                    can play one sound at the same time only. Means every new dispatch request will stop the
+-                    might still running one. So we support one operation/one URL/one listener at the same time
+-                    only.
+-
+-    @devstatus      ready
+-    @threadsafe     yes
+-*//*-*************************************************************************************************************/
+-class SoundHandler  :   // interfaces
+-                        public  css::lang::XTypeProvider
+-                    ,   public  css::lang::XServiceInfo
+-                    ,   public  css::frame::XNotifyingDispatch // => XDispatch
+-                    ,   public  css::document::XExtendedFilterDetection
+-                        // baseclasses
+-                        // Order is neccessary for right initialization!
+-                    ,   private ThreadHelpBase
+-                    ,   public  ::cppu::OWeakObject
+-{
+-	//-------------------------------------------------------------------------------------------------------------
+-	//	public methods
+-	//-------------------------------------------------------------------------------------------------------------
+-	public:
+-
+-		//---------------------------------------------------------------------------------------------------------
+-		//	constructor / destructor
+-		//---------------------------------------------------------------------------------------------------------
+-                 SoundHandler( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
+-        virtual ~SoundHandler(                                                                        );
+-
+-		//---------------------------------------------------------------------------------------------------------
+-        //  XInterface, XTypeProvider, XServiceInfo
+-		//---------------------------------------------------------------------------------------------------------
+-		FWK_DECLARE_XINTERFACE
+-		FWK_DECLARE_XTYPEPROVIDER
+-            DECLARE_XSERVICEINFO
+-
+-        //---------------------------------------------------------------------------------------------------------
+-        //  XNotifyingDispatch
+-        //---------------------------------------------------------------------------------------------------------
+-        virtual void SAL_CALL dispatchWithNotification(const css::util::URL&                                             aURL      ,
+-                                                       const css::uno::Sequence< css::beans::PropertyValue >&            lArguments,
+-                                                       const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException);
+-
+-		//---------------------------------------------------------------------------------------------------------
+-		//	XDispatch
+-		//---------------------------------------------------------------------------------------------------------
+-        virtual void SAL_CALL dispatch              (   const   css::util::URL&                                     aURL        ,
+-                                                        const   css::uno::Sequence< css::beans::PropertyValue >&    lArguments  ) throw( css::uno::RuntimeException );
+-        // not supported !
+-        virtual void SAL_CALL addStatusListener     (   const   css::uno::Reference< css::frame::XStatusListener >& /*xListener*/   ,
+-                                                        const   css::util::URL&                                     /*aURL*/        ) throw( css::uno::RuntimeException ) {};
+-        virtual void SAL_CALL removeStatusListener  (   const   css::uno::Reference< css::frame::XStatusListener >& /*xListener*/   ,
+-                                                        const   css::util::URL&                                     /*aURL*/        ) throw( css::uno::RuntimeException ) {};
+-
+-		//---------------------------------------------------------------------------------------------------------
+-        //  XExtendedFilterDetection
+-		//---------------------------------------------------------------------------------------------------------
+-        virtual ::rtl::OUString SAL_CALL detect     (           css::uno::Sequence< css::beans::PropertyValue >&    lDescriptor ) throw( css::uno::RuntimeException );
+-
+-	//-------------------------------------------------------------------------------------------------------------
+-	//	protected methods
+-	//-------------------------------------------------------------------------------------------------------------
+-	protected:
+-
+-	//-------------------------------------------------------------------------------------------------------------
+-	//	private methods
+-	//-------------------------------------------------------------------------------------------------------------
+-	private:
+-        DECL_LINK( implts_PlayerNotify, void* );
+-
+-	//-------------------------------------------------------------------------------------------------------------
+-	//	variables
+-	//	(should be private everyway!)
+-	//-------------------------------------------------------------------------------------------------------------
+-	private:
+-
+-        css::uno::Reference< css::lang::XMultiServiceFactory >     m_xFactory          ;   /// global uno service factory to create new services
+-        css::uno::Reference< css::uno::XInterface >                m_xSelfHold         ;   /// we must protect us against dieing during async(!) dispatch() call!
+-        Sound                                                      m_aPlayer           ;   /// used vcl player to play sounds ... works asynchron ... That's why "self hold" and "request count" ...
+-        css::uno::Reference< css::frame::XDispatchResultListener > m_xListener         ;
+-
+-};      //  class SoundHandler
+-
+-}		//	namespace framework
+-
+-#endif  //  #ifndef __FRAMEWORK_HANDLER_SOUNDHANDLER_HXX_
+Index: framework/qa/unoapi/framework.sce
+===================================================================
+RCS file: /cvs/framework/framework/qa/unoapi/framework.sce,v
+retrieving revision 1.8
+retrieving revision 1.7.400.2
+diff -u -p -u -p -r1.8 -r1.7.400.2
+--- framework/qa/unoapi/framework.sce	23 Oct 2007 09:49:36 -0000	1.8
++++ framework/qa/unoapi/framework.sce	30 Oct 2007 15:11:51 -0000	1.7.400.2
+@@ -15,7 +15,6 @@
+ #-o fwk.JobHandler
+ -o fwk.MailToDispatcher
+ -o fwk.ServiceHandler
+--o fwk.SoundHandler
+ -o fwk.URLTransformer
+ -o fwk.MacrosMenuController
+ -o fwk.ModuleManager
+Index: framework/source/dispatch/makefile.mk
+===================================================================
+RCS file: /cvs/framework/framework/source/dispatch/makefile.mk,v
+retrieving revision 1.13
+retrieving revision 1.13.26.1
+diff -u -p -u -p -r1.13 -r1.13.26.1
+--- framework/source/dispatch/makefile.mk	5 Jul 2007 08:57:50 -0000	1.13
++++ framework/source/dispatch/makefile.mk	30 Aug 2007 15:00:08 -0000	1.13.26.1
+@@ -56,7 +56,6 @@ SLOFILES=			$(SLO)$/interceptionhelper.o
+ 					$(SLO)$/menudispatcher.obj					\
+ 					$(SLO)$/helpagentdispatcher.obj				\
+ 					$(SLO)$/mailtodispatcher.obj				\
+-					$(SLO)$/soundhandler.obj					\
+ 					$(SLO)$/interaction.obj						\
+                     $(SLO)$/servicehandler.obj                  \
+                     $(SLO)$/closedispatcher.obj                 \
+Index: framework/source/dispatch/soundhandler.cxx
+===================================================================
+RCS file: framework/source/dispatch/soundhandler.cxx
+diff -N framework/source/dispatch/soundhandler.cxx
+--- framework/source/dispatch/soundhandler.cxx	16 Sep 2006 13:55:53 -0000	1.14
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,351 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: soundhandler.cxx,v $
+- *
+- *  $Revision: 1.14 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/16 13:55:53 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_framework.hxx"
+-//_________________________________________________________________________________________________________________
+-//	my own includes
+-//_________________________________________________________________________________________________________________
+-
+-#ifndef __FRAMEWORK_DISPATCH_SOUNDHANDLER_HXX_
+-#include <dispatch/soundhandler.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_THREADHELP_TRANSACTIONGUARD_HXX_
+-#include <threadhelp/transactionguard.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_
+-#include <threadhelp/writeguard.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_
+-#include <threadhelp/readguard.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_
+-#include <macros/debug.hxx>
+-#endif
+-
+-#ifndef __FRAMEWORK_SERVICES_H_
+-#include <services.h>
+-#endif
+-
+-#ifndef __COMPHELPER_MEDIADESCRIPTOR_HXX_
+-#include <comphelper/mediadescriptor.hxx>
+-#endif
+-
+-//_________________________________________________________________________________________________________________
+-//	interface includes
+-//_________________________________________________________________________________________________________________
+-
+-#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
+-#include <com/sun/star/io/XInputStream.hpp>
+-#endif
+-
+-#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTSTATE_HPP_
+-#include <com/sun/star/frame/DispatchResultState.hpp>
+-#endif
+-
+-//_________________________________________________________________________________________________________________
+-//	includes of other projects
+-//_________________________________________________________________________________________________________________
+-
+-#ifndef _COMPHELPER_SEQUENCEASHASHMAP_HXX_
+-#include <comphelper/sequenceashashmap.hxx>
+-#endif
+-
+-#ifndef _RTL_USTRBUF_HXX_
+-#include <rtl/ustrbuf.hxx>
+-#endif
+-
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-
+-//_________________________________________________________________________________________________________________
+-//	namespace
+-//_________________________________________________________________________________________________________________
+-
+-namespace framework{
+-
+-//_________________________________________________________________________________________________________________
+-//	non exported const
+-//_________________________________________________________________________________________________________________
+-
+-//_________________________________________________________________________________________________________________
+-//	non exported definitions
+-//_________________________________________________________________________________________________________________
+-
+-//_________________________________________________________________________________________________________________
+-//	declarations
+-//_________________________________________________________________________________________________________________
+-
+-//*****************************************************************************************************************
+-//  XInterface, XTypeProvider, XServiceInfo
+-//*****************************************************************************************************************
+-DEFINE_XINTERFACE_5                 (   SoundHandler                                                 ,
+-                                        OWeakObject                                                  ,
+-                                        DIRECT_INTERFACE( css::lang::XTypeProvider                  ),
+-                                        DIRECT_INTERFACE( css::lang::XServiceInfo                   ),
+-                                        DIRECT_INTERFACE( css::frame::XNotifyingDispatch            ),
+-                                        DIRECT_INTERFACE( css::frame::XDispatch                     ),
+-                                        DIRECT_INTERFACE( css::document::XExtendedFilterDetection   )
+-                                    )
+-
+-DEFINE_XTYPEPROVIDER_5              (   SoundHandler                                                ,
+-                                        css::lang::XTypeProvider                                    ,
+-                                        css::lang::XServiceInfo                                     ,
+-                                        css::frame::XNotifyingDispatch                              ,
+-                                        css::frame::XDispatch                                       ,
+-                                        css::document::XExtendedFilterDetection
+-                                    )
+-
+-DEFINE_XSERVICEINFO_MULTISERVICE    (   SoundHandler                                                ,
+-                                        ::cppu::OWeakObject                                         ,
+-                                        SERVICENAME_CONTENTHANDLER                                  ,
+-                                        IMPLEMENTATIONNAME_SOUNDHANDLER
+-									)
+-
+-DEFINE_INIT_SERVICE                 (   SoundHandler,
+-                                        {
+-                                        }
+-                                    )
+-
+-/*-************************************************************************************************************//**
+-    @short      standard ctor
+-    @descr      These initialize a new instance of this class with needed informations for work.
+-
+-    @seealso    using at owner
+-
+-    @param      "xFactory", reference to service manager for creation of new services
+-    @return     -
+-
+-    @onerror    Show an assertion and do nothing else.
+-    @threadsafe yes
+-*//*-*************************************************************************************************************/
+-SoundHandler::SoundHandler( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory )
+-		//	Init baseclasses first
+-        :   ThreadHelpBase      (          )
+-        ,   ::cppu::OWeakObject (          )
+-        // Init member
+-        ,   m_xFactory          ( xFactory )
+-        ,   m_aPlayer           (          )
+-{
+-    m_aPlayer.SetNotifyHdl( LINK( this, SoundHandler, implts_PlayerNotify ) );
+-}
+-
+-/*-************************************************************************************************************//**
+-    @short      standard dtor
+-    @descr      -
+-
+-    @seealso    -
+-
+-    @param      -
+-    @return     -
+-
+-    @onerror    -
+-    @threadsafe -
+-*//*-*************************************************************************************************************/
+-SoundHandler::~SoundHandler()
+-{
+-    if (m_xListener.is())
+-    {
+-        css::frame::DispatchResultEvent aEvent;
+-        aEvent.State = css::frame::DispatchResultState::FAILURE;
+-        m_xListener->dispatchFinished(aEvent);
+-        m_xListener = css::uno::Reference< css::frame::XDispatchResultListener >();
+-    }
+-}
+-
+-/*-************************************************************************************************************//**
+-    @interface  ::com::sun::star::frame::XDispatch
+-
+-    @short      try to load audio file
+-    @descr      This method try to load given audio file by URL and play it. We use vcl/Sound class to do that.
+-                Playing of sound is asynchron everytime.
+-
+-    @attention  We must hold us alive by ourself ... because we use async. vcl sound player ... but playing is started
+-                in async interface call "dispatch()" too. And caller forget us imediatly. But then our uno ref count
+-                will decreased to 0 and will die. The only solution is to use own reference to our implementation.
+-                But we do it for realy started jobs only and release it during call back of vcl.
+-
+-    @seealso    class vcl/Sound
+-    @seealso    method implts_PlayerNotify()
+-
+-    @param      "aURL"      , URL to dispatch.
+-    @param      "lArguments", list of optional arguments.
+-    @return     -
+-
+-    @onerror    We do nothing.
+-    @threadsafe yes
+-*//*-*************************************************************************************************************/
+-void SAL_CALL SoundHandler::dispatchWithNotification(const css::util::URL&                                             aURL      ,
+-                                                     const css::uno::Sequence< css::beans::PropertyValue >&            /*lArguments*/,
+-                                                     const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException)
+-{
+-    // SAFE {
+-    ResetableGuard aLock( m_aLock );
+-
+-    // If player currently used for other dispatch() requests ...
+-    // cancel it by calling stop()!
+-    if (m_aPlayer.IsPlaying())
+-    {
+-        // It calls our impl_notify() automaticly ... so we inform our listener
+-        // everytimes!
+-        m_aPlayer.Stop();
+-    }
+-
+-    // Try to initialize player.
+-    m_xListener = xListener;
+-    if (m_aPlayer.SetSoundName(aURL.Complete))
+-    {
+-        // OK- we can start async playing ...
+-        // Count this request and initialize self-holder against dieing by uno ref count ...
+-        m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY);
+-        m_aPlayer.Play();
+-    }
+-
+-    // } SAFE
+-    aLock.unlock();
+-}
+-
+-void SAL_CALL SoundHandler::dispatch( const css::util::URL&                                  aURL       ,
+-                                      const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) throw( css::uno::RuntimeException )
+-{
+-    dispatchWithNotification(aURL, lArguments, css::uno::Reference< css::frame::XDispatchResultListener >());
+-}
+-
+-/*-************************************************************************************************************//**
+-    @interface  ::com::sun::star::document::XExtendedFilterDetection
+-
+-    @short      try to detect file (given as argument included in "lDescriptor")
+-    @descr      We try to detect, if given file could be handled by this class and is a well known one.
+-                If it is - we return right internal type name - otherwise we return nothing!
+-                So call can search for another detect service and ask him too.
+-
+-    @attention  a) We don't need any mutex here ... because we don't use any member!
+-                b) Dont' use internal player instance "m_pPlayer" to detect given sound file!
+-                   It's not neccessary to do that ... and we can use temp. variable to do the same.
+-                   This way is easy - we don't must synchronize it with currently played sounds!
+-                   Another reason to do so ... We are a listener on our internal ma_Player object.
+-                   If you would call "IsSoundFile()" on this instance, he would call us back and
+-                   we make some uneccssary things ...
+-
+-    @seealso    -
+-
+-    @param      "lDescriptor", description of file to detect
+-    @return     Internal type name which match this file ... or nothing if it is unknown.
+-
+-    @onerror    We return nothing.
+-    @threadsafe yes
+-*//*-*************************************************************************************************************/
+-::rtl::OUString SAL_CALL SoundHandler::detect( css::uno::Sequence< css::beans::PropertyValue >& lDescriptor ) throw( css::uno::RuntimeException )
+-{
+-    // Our default is "nothing". So we can return it, if detection failed or fily type is realy unknown.
+-    ::rtl::OUString sTypeName;
+-
+-    // Analyze given descriptor to find filename or input stream or ...
+-    ::comphelper::MediaDescriptor aDescriptor(lDescriptor);
+-    ::rtl::OUString               sURL       = aDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_URL(), ::rtl::OUString());
+-    Sound                         aDetector  ;
+-
+-    if (
+-        (sURL.getLength()           ) &&
+-        (aDetector.IsSoundFile(sURL))
+-       )
+-    {
+-        // "IsSoundFile" idffer between different "wav" and "au" file versions ...
+-        // couldn't return this information ... because: He use the OS to detect it!
+-        // I think we can the following ones:
+-        //  a) look for given extension of url to map our type decision HARD CODED!!!
+-        //  b) return preferred type every time... it's easy :-)
+-        sTypeName = ::rtl::OUString::createFromAscii("wav_Wave_Audio_File");
+-        aDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME()] <<= sTypeName;
+-        aDescriptor >> lDescriptor;
+-    }
+-
+-    // Return our decision.
+-    return sTypeName;
+-}
+-
+-/*-************************************************************************************************************//**
+-    @short      call back of sound player
+-    @descr      Our player call us back to give us some informations.
+-                We use this informations to callback our might existing listener.
+-
+-    @seealso    method dispatchWithNotification()
+-
+-    @param      -
+-    @return     0 everytime ... it doesnt matter for us.
+-
+-    @onerror    -
+-    @threadsafe yes
+-*//*-*************************************************************************************************************/
+-IMPL_LINK( SoundHandler, implts_PlayerNotify, void*, EMPTYARG )
+-{
+-    // SAFE {
+-    ResetableGuard aLock(m_aLock);
+-
+-    // We use m_xSelfHold to let us die ... but we must live till real finishing of this method too!!!
+-    // So we SHOULD use another "self-holder" temp. to provide that ...
+-    css::uno::Reference< css::uno::XInterface > xOperationHold = m_xSelfHold;
+-    m_xSelfHold = css::uno::Reference< css::uno::XInterface >();
+-
+-    // get last error and reset it - so the next callback shows the real problem
+-    ULONG nError = m_aPlayer.GetLastError();
+-    m_aPlayer.ClearError();
+-
+-    // notify might existing listener
+-    // And forget this listener!
+-    // Because the corresponding dispatch was finished.
+-    if (m_xListener.is())
+-    {
+-        css::frame::DispatchResultEvent aEvent;
+-        if (nError == SOUNDERR_SUCCESS)
+-            aEvent.State = css::frame::DispatchResultState::SUCCESS;
+-        else
+-            aEvent.State = css::frame::DispatchResultState::FAILURE;
+-        m_xListener->dispatchFinished(aEvent);
+-        m_xListener = css::uno::Reference< css::frame::XDispatchResultListener >();
+-    }
+-
+-    aLock.unlock();
+-    // } SAFE
+-
+-    return 0;
+-}
+-
+-} // namespace framework
+Index: framework/source/register/registerservices.cxx
+===================================================================
+RCS file: /cvs/framework/framework/source/register/registerservices.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.4.1
+diff -u -p -u -p -r1.39 -r1.39.4.1
+--- framework/source/register/registerservices.cxx	2 Aug 2007 17:03:59 -0000	1.39
++++ framework/source/register/registerservices.cxx	30 Aug 2007 15:00:09 -0000	1.39.4.1
+@@ -89,10 +89,6 @@
+ #include <jobs/jobexecutor.hxx>
+ #endif
+ 
+-#ifndef __FRAMEWORK_DISPATCH_SOUNDHANDLER_HXX_
+-#include <dispatch/soundhandler.hxx>
+-#endif
+-
+ #ifndef __FRAMEWORK_RECORDING_DISPATCHRECORDERSUPPLIER_HXX_
+ #include <recording/dispatchrecordersupplier.hxx>
+ #endif
+@@ -281,7 +277,6 @@ COMPONENTGETIMPLEMENTATIONENVIRONMENT
+ COMPONENTWRITEINFO  (   COMPONENTINFO( ::framework::URLTransformer                          )
+ 						COMPONENTINFO( ::framework::Desktop						            )
+                         COMPONENTINFO( ::framework::Frame                                   )
+-                        COMPONENTINFO( ::framework::SoundHandler                            )
+                         COMPONENTINFO( ::framework::JobExecutor                             )
+                         COMPONENTINFO( ::framework::DispatchRecorderSupplier                )
+                         COMPONENTINFO( ::framework::DispatchRecorder                        )
+@@ -335,7 +330,6 @@ COMPONENTWRITEINFO  (   COMPONENTINFO( :
+ COMPONENTGETFACTORY	(	IFFACTORY( ::framework::URLTransformer					        )	else
+ 						IFFACTORY( ::framework::Desktop							        )	else
+                         IFFACTORY( ::framework::Frame                                   )   else
+-                        IFFACTORY( ::framework::SoundHandler                            )   else
+                         IFFACTORY( ::framework::JobExecutor                             )   else
+                         IFFACTORY( ::framework::DispatchRecorderSupplier                )   else
+                         IFFACTORY( ::framework::DispatchRecorder                        )   else
+Index: framework/source/unotypes/fwk.xml
+===================================================================
+RCS file: /cvs/framework/framework/source/unotypes/fwk.xml,v
+retrieving revision 1.12
+retrieving revision 1.12.400.1
+diff -u -p -u -p -r1.12 -r1.12.400.1
+--- framework/source/unotypes/fwk.xml	14 Jun 2005 15:34:15 -0000	1.12
++++ framework/source/unotypes/fwk.xml	30 Aug 2007 15:00:09 -0000	1.12.400.1
+@@ -60,19 +60,6 @@
+ 
+ 	<component-description>
+ 		<author> Andreas Schluens </author>
+-		<name> com.sun.star.comp.framework.SoundHandler </name>
+-		<description>
+-			Implements a handler service to detect and/or play audio files.
+-			supported formats: wav/au
+-		</description>
+-		<loader-name> com.sun.star.loader.SharedLibrary </loader-name>
+-		<language> c++ </language>
+-		<status value="final"/>
+-        <supported-service> com.sun.star.frame.ContentHandler </supported-service>
+-	</component-description>
+-
+-	<component-description>
+-		<author> Andreas Schluens </author>
+ 		<name> com.sun.star.comp.framework.DispatchRecorderSupplier </name>
+ 		<description>
+ 			This supplier is available on the servcice Frame as property "DispatchRecorderSupplier".
+Index: framework/util/makefile.mk
+===================================================================
+RCS file: /cvs/framework/framework/util/makefile.mk,v
+retrieving revision 1.115
+retrieving revision 1.115.14.1
+diff -u -p -u -p -r1.115 -r1.115.14.1
+--- framework/util/makefile.mk	17 Jul 2007 13:26:27 -0000	1.115
++++ framework/util/makefile.mk	30 Aug 2007 15:00:10 -0000	1.115.14.1
+@@ -224,7 +224,6 @@ SHL4OBJS=       \
+ 				$(SLO)$/oframes.obj					\
+ 				$(SLO)$/registerservices.obj		\
+ 				$(SLO)$/closedispatcher.obj         \
+-				$(SLO)$/soundhandler.obj			\
+ 				$(SLO)$/statusindicator.obj			\
+ 				$(SLO)$/statusindicatorfactory.obj	\
+ 				$(SLO)$/targetfinder.obj		  	\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-no-startup-wizard.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-no-startup-wizard.diff
@@ -0,0 +1,54 @@
+diff --git a/desktop/source/migration/wizard.cxx b/desktop/source/migration/wizard.cxx
+index c7c7bbd..f488c56 100644
+--- desktop/source/migration/wizard.cxx
++++ desktop/source/migration/wizard.cxx
+@@ -121,6 +121,8 @@ FirstStartWizard::FirstStartWizard(Window* pParent)
+     ,m_bLicenseWasAccepted(sal_False)
+     ,m_bAutomaticUpdChk(sal_True)
+ {
++    return;
++
+     // ---
+     // FreeResource();
+ //	enableState(STATE_USER, sal_False);
+@@ -383,7 +385,11 @@ void FirstStartWizard::overrideCheck(sal_Bool bOverride)
+ 
+ short FirstStartWizard::Execute()
+ {
+-    return svt::RoadmapWizard::Execute();
++    disableWizard();
++    if ( Migration::checkMigration() )
++        Migration::doMigration();
++
++    return sal_True;
+ }
+ 
+ 
+diff --git a/scp2/source/ooo/profileitem_ooo.scp b/scp2/source/ooo/profileitem_ooo.scp
+index 9773b42..ce25861 100644
+--- scp2/source/ooo/profileitem_ooo.scp
++++ scp2/source/ooo/profileitem_ooo.scp
+@@ -682,22 +682,15 @@ ProfileItem gid_Profileitem_Soffice_ProgressPosition
+     Value = "-1,-1";
+ End
+ 
+-#ifdef WNT
+-
+ ProfileItem gid_Profileitem_Soffice_Hideeula
+     ProfileID = gid_Profile_Soffice_Ini;
+     ModuleID = gid_Module_Root;
+     Section = "Bootstrap";
+     Order = 7;
+     Key = "HideEula";
+-    Value = "[HIDEEULA]";
+-    Inifiletablekey = "HideEula";
+-    Inifiletableaction = "1";
+-    Styles = (INIFILETABLE);
++    Value = "1";
+ End
+ 
+-#endif
+-
+ ProfileItem gid_Profileitem_Uno_Uno_Shared_Packages
+     ProfileID = gid_Profile_Uno_Ini;
+     ModuleID = gid_Module_Root;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/build-identification.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/build-identification.diff
@@ -0,0 +1,38 @@
+--- solenv/bin/modules/installer/scriptitems.pm
++++ solenv/bin/modules/installer/scriptitems.pm
+@@ -483,6 +483,8 @@
+ 		$value =~ s/\<updateid\>/$updateid/;
+ 		$value =~ s/\<useragent\>/$useragent/;
+ 		$value =~ s/\<pkgformat\>/$installer::globals::packageformat/;
++		$value =~ s/\<vendor\>/$ENV{'OOO_VENDOR'}/;
++		$value =~ s/\<buildversion\>/$ENV{'BUILD_VER_STRING'}/;
+ 
+ 		$oneitem->{'Value'} = $value;
+ 	}
+--- scp2/source/ooo/profileitem_ooo.scp
++++ scp2/source/ooo/profileitem_ooo.scp
+@@ -239,6 +239,24 @@
+     Value = "<useragent>";
+ End
+ 
++ProfileItem gid_Profileitem_Version_Vendor
++    ProfileID = gid_Profile_Version_Ini;
++    ModuleID = gid_Module_Root;
++    Section = "Version";
++    Order = 16;
++    Key = "Vendor";
++    Value = "<vendor>";
++End
++
++ProfileItem gid_Profileitem_Version_BuildVersion
++    ProfileID = gid_Profile_Version_Ini;
++    ModuleID = gid_Module_Root;
++    Section = "Version";
++    Order = 17;
++    Key = "BuildVersion";
++    Value = "<buildversion>";
++End
++
+ ProfileItem gid_Profileitem_Version_Ooobaseversion
+     ProfileID = gid_Profile_Version_Ini;
+     ModuleID = gid_Module_Root;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-lpi.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-lpi.diff
@@ -0,0 +1,543 @@
+--- basctl/uiconfig/basicide/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ OOH680_m8.new/basctl/uiconfig/basicide/menubar/menubar.xml	2008-03-01 17:06:11.000000000 -0600
+@@ -82,6 +82,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- chart2/uiconfig/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ OOH680_m8.new/chart2/uiconfig/menubar/menubar.xml	2008-03-01 17:06:52.000000000 -0600
+@@ -143,8 +143,10 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+ 	</menu:menu>
+-</menu:menubar>
+\ No newline at end of file
++</menu:menubar>
+--- dbaccess/uiconfig/dbapp/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ OOH680_m8.new/dbaccess/uiconfig/dbapp/menubar/menubar.xml	2008-03-01 17:10:23.000000000 -0600
+@@ -138,6 +138,8 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- dbaccess/uiconfig/dbbrowser/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ OOH680_m8.new/dbaccess/uiconfig/dbbrowser/menubar/menubar.xml	2008-03-01 17:11:44.000000000 -0600
+@@ -66,6 +66,8 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- dbaccess/uiconfig/dbquery/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ OOH680_m8.new/dbaccess/uiconfig/dbquery/menubar/menubar.xml	2008-03-01 17:12:34.000000000 -0600
+@@ -80,6 +80,8 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- dbaccess/uiconfig/dbrelation/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ dbaccess/uiconfig/dbrelation/menubar/menubar.xml	2008-03-01 17:16:03.000000000 -0600
+@@ -63,6 +63,8 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml	2006-04-26 15:52:52.000000000 -0500
++++ extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml	2008-03-01 17:16:43.000000000 -0600
+@@ -85,6 +85,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- framework/uiconfig/startmodule/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ framework/uiconfig/startmodule/menubar/menubar.xml	2008-03-01 18:12:16.000000000 -0600
+@@ -75,6 +75,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- helpcontent2/helpers/help_hid.lst	2007-11-23 10:10:59.000000000 -0600
++++ helpcontent2/helpers/help_hid.lst	2008-03-01 18:22:25.000000000 -0600
+@@ -5225,8 +5225,10 @@
+ SID_HELP_DOWNLOAD,5415,.uno:HelpDownload
+ SID_HELP_HELPFILEBOX,5419,.uno:HelpChooseFile
+ SID_HELP_PI,5962,.uno:HelperDialog
++SID_HELP_REPORTBUG,6712,.uno:HelpReportBug
+ SID_HELP_SEARCH,5412,.uno:HelpSearch
+ SID_HELP_SUPPORTPAGE,6683,.uno:HelpSupport
++SID_HELP_TRANSLATEPAGE,6711,.uno:HelpTranslate
+ SID_HELP_TUTORIALS,6695,.uno:HelpTutorials
+ SID_HELP_ZOOMIN,5417,.uno:HelpZoomIn
+ SID_HELP_ZOOMOUT,5418,.uno:HelpZoomOut
+--- helpcontent2/helpers/longnames_commands.csv	2005-01-27 08:51:42.000000000 -0600
++++ helpcontent2/helpers/longnames_commands.csv	2008-03-01 18:23:28.000000000 -0600
+@@ -1244,8 +1244,10 @@
+ SID_HELP_DOWNLOAD,.uno:HelpDownload
+ SID_HELP_HELPFILEBOX,.uno:HelpChooseFile
+ SID_HELP_PI,.uno:HelperDialog
++SID_HELP_REPORTBUG,.uno:HelpReportBug
+ SID_HELP_SEARCH,.uno:HelpSearch
+ SID_HELP_SUPPORTPAGE,.uno:HelpSupport
++SID_HELP_TRANSLATEPAGE,.uno:HelpTranslate
+ SID_HELP_TUTORIALS,.uno:HelpTutorials
+ SID_HELP_ZOOMIN,.uno:HelpZoomIn
+ SID_HELP_ZOOMOUT,.uno:HelpZoomOut
+--- helpcontent2/helpers/unocmds.txt	2005-03-08 08:13:36.000000000 -0600
++++ helpcontent2/helpers/unocmds.txt	2008-03-01 18:24:50.000000000 -0600
+@@ -490,8 +490,10 @@
+ .uno:HelpIndex;shared/main0108.xhp
+ .uno:HelpMenu;shared/main0108.xhp
+ .uno:HelpOnHelp;shared/05/00000110.xhp
++.uno:HelpReportBug;shared/main0108.xhp
+ .uno:HelpSupport;shared/main0108.xhp
+ .uno:HelpTip;shared/00/00000099.xhp
++.uno:HelpTranslate;shared/main0108.xhp
+ .uno:HelperDialog;shared/00/00000099.xhp
+ .uno:HelplinesFront;shared/optionen/01050100.xhp
+ .uno:HelplinesMove;shared/02/01171400.xhp
+--- helpcontent2/helpers/uno-commands.csv	2005-01-27 08:52:05.000000000 -0600
++++ helpcontent2/helpers/uno-commands.csv	2008-03-01 18:25:54.000000000 -0600
+@@ -866,8 +866,10 @@
+ .uno:HelpIndex
+ .uno:HelpMenu
+ .uno:HelpOnHelp
++.uno:HelpReportBug
+ .uno:HelpSupport
+ .uno:HelpTip
++.uno:HelpTranslate
+ .uno:HelperDialog
+ .uno:HelplinesFront
+ .uno:HelplinesMove
+--- helpcontent2/helpers/uno_hid.lst	2005-03-08 08:13:24.000000000 -0600
++++ helpcontent2/helpers/uno_hid.lst	2008-03-01 18:27:18.000000000 -0600
+@@ -1242,8 +1242,10 @@
+ SID_HELP_DOWNLOAD,5415,.uno:HelpDownload
+ SID_HELP_HELPFILEBOX,5419,.uno:HelpChooseFile
+ SID_HELP_PI,5962,.uno:HelperDialog
++SID_HELP_REPORTBUG,6712,.uno:HelpReportBug
+ SID_HELP_SEARCH,5412,.uno:HelpSearch
+ SID_HELP_SUPPORTPAGE,6683,.uno:HelpSupport
++SID_HELP_TRANSLATEPAGE,6711,.uno:HelpTranslate
+ SID_HELP_TUTORIALS,6695,.uno:HelpTutorials
+ SID_HELP_ZOOMIN,5417,.uno:HelpZoomIn
+ SID_HELP_ZOOMOUT,5418,.uno:HelpZoomOut
+--- officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu	2007-11-23 10:18:58.000000000 -0600
++++ officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu	2008-03-01 18:30:54.000000000 -0600
+@@ -4058,7 +4058,20 @@
+ 			</node>
+ 			<node oor:name=".uno:HelpSupport" oor:op="replace">
+ 				<prop oor:name="Label" oor:type="xs:string">
+-					<value xml:lang="en-US">~Support</value>
++					<value xml:lang="de">~Online-Hilfe...</value>
++					<value xml:lang="en-US">~Get Help Online...</value>
++				</prop>
++			</node>
++			<node oor:name=".uno:HelpTranslate" oor:op="replace">
++				<prop oor:name="Label" oor:type="xs:string">
++					<value xml:lang="de">Diese Anwendung ~übersetzen...</value>
++					<value xml:lang="en-US">T~ranslate this application...</value>
++				</prop>
++			</node>
++			<node oor:name=".uno:HelpReportBug" oor:op="replace">
++				<prop oor:name="Label" oor:type="xs:string">
++					<value xml:lang="de">Einen ~Fehler melden...</value>
++					<value xml:lang="en-US">R~eport a Bug...</value>
+ 				</prop>
+ 			</node>
+ 			<node oor:name=".uno:StatusBarVisible" oor:op="replace">
+--- reportdesign/uiconfig/dbreport/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ reportdesign/uiconfig/dbreport/menubar/menubar.xml	2008-03-01 18:28:16.000000000 -0600
+@@ -160,5 +160,7 @@
+ 			<menu:menuitem menu:id=".uno:HelperDialog"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- scripting/workben/bindings/calcmenubar.xml	2003-06-03 07:54:16.000000000 -0500
++++ scripting/workben/bindings/calcmenubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -310,7 +310,9 @@
+    <menu:menuitem menu:id="slot:5404" menu:helpid="5404" menu:label="~Tips"/>
+    <menu:menuitem menu:id="slot:5403" menu:helpid="5403" menu:label="~Extended Tips"/>
+    <menu:menuseparator/>
+-   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Support"/>
++   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Get Help Online..."/>
++   <menu:menuitem menu:id="slot:6711" menu:helpid="6711" menu:label="T~ranslate this application"/>
++   <menu:menuitem menu:id="slot:6712" menu:helpid="6712" menu:label="R~eport a Bug"/>
+    <menu:menuitem menu:id="slot:6537" menu:helpid="6537" menu:label="~Registration..."/>
+    <menu:menuseparator/>
+    <menu:menuitem menu:id="slot:5301" menu:helpid="5301" menu:label="A~bout OpenOffice.org..."/>
+--- scripting/workben/bindings/drawmenubar.xml	2003-06-03 07:54:16.000000000 -0500
++++ scripting/workben/bindings/drawmenubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -345,7 +345,9 @@
+    <menu:menuitem menu:id="slot:5404" menu:helpid="5404" menu:label="~Tips"/>
+    <menu:menuitem menu:id="slot:5403" menu:helpid="5403" menu:label="~Extended Tips"/>
+    <menu:menuseparator/>
+-   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Support"/>
++   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Get Help Online..."/>
++   <menu:menuitem menu:id="slot:6711" menu:helpid="6711" menu:label="T~ranslate this application"/>
++   <menu:menuitem menu:id="slot:6712" menu:helpid="6712" menu:label="R~eport a Bug"/>
+    <menu:menuitem menu:id="slot:6537" menu:helpid="6537" menu:label="~Registration..."/>
+    <menu:menuseparator/>
+    <menu:menuitem menu:id="slot:5301" menu:helpid="5301" menu:label="A~bout OpenOffice.org..."/>
+--- scripting/workben/bindings/impressmenubar.xml	2003-06-03 07:54:16.000000000 -0500
++++ scripting/workben/bindings/impressmenubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -319,7 +319,9 @@
+    <menu:menuitem menu:id="slot:5404" menu:helpid="5404" menu:label="~Tips"/>
+    <menu:menuitem menu:id="slot:5403" menu:helpid="5403" menu:label="~Extended Tips"/>
+    <menu:menuseparator/>
+-   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Support"/>
++   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Get Help Online..."/>
++   <menu:menuitem menu:id="slot:6711" menu:helpid="6711" menu:label="T~ranslate this application"/>
++   <menu:menuitem menu:id="slot:6712" menu:helpid="6712" menu:label="R~eport a Bug"/>
+    <menu:menuitem menu:id="slot:6537" menu:helpid="6537" menu:label="~Registration..."/>
+    <menu:menuseparator/>
+    <menu:menuitem menu:id="slot:5301" menu:helpid="5301" menu:label="A~bout OpenOffice.org..."/>
+--- scripting/workben/bindings/writermenubar.xml	2003-06-03 07:54:17.000000000 -0500
++++ scripting/workben/bindings/writermenubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -272,7 +272,9 @@
+    <menu:menuitem menu:id="slot:5404" menu:helpid="5404" menu:label="~Tips"/>
+    <menu:menuitem menu:id="slot:5403" menu:helpid="5403" menu:label="~Extended Tips"/>
+    <menu:menuseparator/>
+-   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Support"/>
++   <menu:menuitem menu:id="slot:6683" menu:helpid="6683" menu:label="~Get Help Online..."/>
++   <menu:menuitem menu:id="slot:6711" menu:helpid="6711" menu:label="T~ranslate this application"/>
++   <menu:menuitem menu:id="slot:6712" menu:helpid="6712" menu:label="R~eport a Bug"/>
+    <menu:menuitem menu:id="slot:6537" menu:helpid="6537" menu:label="~Registration..."/>
+    <menu:menuseparator/>
+    <menu:menuitem menu:id="slot:5301" menu:helpid="5301" menu:label="A~bout OpenOffice.org..."/>
+--- sc/uiconfig/scalc/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ sc/uiconfig/scalc/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -440,6 +440,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- sd/uiconfig/sdraw/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ sd/uiconfig/sdraw/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -317,6 +317,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- sd/uiconfig/simpress/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ sd/uiconfig/simpress/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -292,6 +292,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- sfx2/inc/sfx2/sfxsids.hrc	2008-03-01 16:58:37.000000000 -0600
++++ sfx2/inc/sfx2/sfxsids.hrc	2008-03-01 18:32:58.000000000 -0600
+@@ -210,6 +210,8 @@
+ #define SID_HELP_HELPFILEBOX				(SID_SFX_START + 419)
+ #define SID_HELP_HELPFILEBOX_SELECTED		(SID_SFX_START + 420)
+ #define SID_HELP_SUPPORTPAGE				(SID_SFX_START + 1683)
++#define SID_HELP_TRANSLATEPAGE					(SID_SFX_START + 1712)
++#define SID_HELP_REPORTBUG					(SID_SFX_START + 1713)
+ #define SID_HELP_TUTORIALS					(SID_SFX_START + 1695)
+ 
+ // default-ids for document
+--- sfx2/sdi/appslots.sdi	2007-09-21 04:27:27.000000000 -0500
++++ sfx2/sdi/appslots.sdi	2008-03-01 18:30:54.000000000 -0600
+@@ -187,6 +187,14 @@
+ 	[
+ 		ExecMethod = MiscExec_Impl ;
+ 	]
++	SID_HELP_TRANSLATEPAGE
++	[
++		ExecMethod = MiscExec_Impl ;
++	]
++	SID_HELP_REPORTBUG
++	[
++		ExecMethod = MiscExec_Impl ;
++	]
+ 	SID_RECENTFILELIST
+ 	[
+ 	]
+--- sfx2/sdi/sfx.sdi	2008-03-01 16:58:34.000000000 -0600
++++ sfx2/sdi/sfx.sdi	2008-03-01 18:30:54.000000000 -0600
+@@ -7887,6 +7887,56 @@
+ ]
+ 
+ //--------------------------------------------------------------------------
++SfxVoidItem HelpTranslate SID_HELP_TRANSLATEPAGE
++()
++[
++	/* flags: */
++	AutoUpdate = FALSE,
++	Cachable = Cachable,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = FALSE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	/* config: */
++	AccelConfig = TRUE,
++	MenuConfig = TRUE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = TRUE,
++	GroupId = GID_APPLICATION;
++]
++
++//--------------------------------------------------------------------------
++SfxVoidItem HelpReportBug SID_HELP_REPORTBUG
++()
++[
++	/* flags: */
++	AutoUpdate = FALSE,
++	Cachable = Cachable,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = FALSE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	/* config: */
++	AccelConfig = TRUE,
++	MenuConfig = TRUE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = TRUE,
++	GroupId = GID_APPLICATION;
++]
++
++//--------------------------------------------------------------------------
+ SfxVoidItem HelpTutorials SID_HELP_TUTORIALS
+ ()
+ [
+--- sfx2/source/appl/appserv.cxx.orig	2008-01-15 01:56:07.000000000 -0600
++++ sfx2/source/appl/appserv.cxx	2008-04-05 23:15:51.000000000 -0500
+@@ -119,6 +119,12 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
++#ifndef _COM_SUN_STAR_SYSTEM_XSYSTEMSHELLEXECUTE_HPP_
++#include <com/sun/star/system/XSystemShellExecute.hpp>
++#endif
++#ifndef _COM_SUN_STAR_SYSTEM_SYSTEMSHELLEXECUTEFLAGS_HPP_
++#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
++#endif
+ #ifndef _SFXCANCEL_HXX //autogen
+ #include <svtools/cancel.hxx>
+ #endif
+@@ -419,9 +425,48 @@
+ 			break;
+ 		}
+ 
++		case SID_HELP_SUPPORTPAGE:
++		{
++			try {
++				Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
++					( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
++				if ( xSystemShell.is())
++					xSystemShell->execute( ::rtl::OUString(DEFINE_CONST_UNICODE("/usr/lib/openoffice/program/ooo87965.execute.sh")), ::rtl::OUString(DEFINE_CONST_UNICODE("/usr/bin/launchpad-integration -P openoffice.org-core -i")), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
++
++				break;
++			} catch (const ::com::sun::star::uno::Exception &) {
++ 			}
++			break;
++		}
++
++		case SID_HELP_TRANSLATEPAGE:
++		{
++			try {
++				Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
++					( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
++				if ( xSystemShell.is())
++					xSystemShell->execute( ::rtl::OUString(DEFINE_CONST_UNICODE("/usr/lib/openoffice/program/ooo87965.execute.sh")), ::rtl::OUString(DEFINE_CONST_UNICODE("/usr/bin/launchpad-integration -P openoffice.org-core -t")), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
++
++				break;
++			} catch (const ::com::sun::star::uno::Exception &) {
++ 			}
++			break;
++		}
++		case SID_HELP_REPORTBUG:
++		{
++			try {
++				Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
++					( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
++				if ( xSystemShell.is())
++					xSystemShell->execute( ::rtl::OUString(DEFINE_CONST_UNICODE("/usr/lib/openoffice/program/ooo87965.execute.sh")), ::rtl::OUString(DEFINE_CONST_UNICODE("/usr/bin/launchpad-integration -P openoffice.org-core -b")), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
++
++				break;
++			} catch (const ::com::sun::star::uno::Exception &) {
++ 			}
++			break;
++		}
+         // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+         case SID_HELPINDEX:
+-        case SID_HELP_SUPPORTPAGE:
+         {
+             Help* pHelp = Application::GetHelp();
+             if ( pHelp )
+--- sfx2/source/appl/makefile.mk	2007-09-21 04:28:29.000000000 -0500
++++ sfx2/source/appl/makefile.mk	2008-03-01 18:30:54.000000000 -0600
+@@ -65,6 +65,7 @@
+ .ELSE
+         CDEFS+=-DDLL_NAME=sfx$(UPD)$(DLLPOSTFIX)$(DLLPOST)
+ .ENDIF
++CFLAGS+=-DUBUNTU_RELEASE=\"$(shell lsb_release -cs)\"
+ 
+ # --- Files --------------------------------------------------------
+ 
+--- starmath/uiconfig/smath/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ starmath/uiconfig/smath/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -111,6 +111,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- svx/inc/globlmn_tmpl.hrc	2008-03-01 16:58:41.000000000 -0600
++++ svx/inc/globlmn_tmpl.hrc	2008-03-01 18:30:54.000000000 -0600
+@@ -1065,7 +1065,24 @@
+     Identifier = SID_HELP_SUPPORTPAGE ; \
+ 	Command = ".uno:HelpSupport" ; \
+     HelpID = SID_HELP_SUPPORTPAGE ; \
+-    Text [ en-US ] = "~Support" ;	\
++    Text [ de ] = "~Online-Hilfe..." ; \
++    Text [ en-US ] = "Get Help ~Online..." ;	\
++    Text [ de ] = "~Online-Hilfe..." ; \
++    Text [ en-US ] = "R~eport a Bug..." ;	\
++
++#define ITEM_HELP_TRANSLATEPAGE \
++    Identifier = SID_HELP_TRANSLATEPAGE ; \
++	Command = ".uno:HelpTranslate" ; \
++    HelpID = SID_HELP_TRANSLATEPAGE ; \
++    Text [ de ] = "Diese Anwendung ~�bersetzen..." ; \
++    Text [ en-US ] = "T~ranslate this application..." ;	\
++
++#define ITEM_HELP_REPORTBUG \
++    Identifier = SID_HELP_REPORTBUG ; \
++	Command = ".uno:HelpReportBug" ; \
++    HelpID = SID_HELP_REPORTBUG ; \
++    Text [ de ] = "Einen ~Fehler melden..." ; \
++    Text [ en-US ] = "R~eport a Bug..." ;	\
+ 
+ #define ITEM_HELP_ONLINE_REGISTRATION \
+     Identifier = SID_ONLINE_REGISTRATION ; \
+--- sw/uiconfig/sglobal/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ sw/uiconfig/sglobal/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -447,6 +447,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- sw/uiconfig/sweb/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ sw/uiconfig/sweb/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -375,6 +375,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- sw/uiconfig/swform/menubar/menubar.xml	2007-11-22 09:48:44.000000000 -0600
++++ sw/uiconfig/swform/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -444,6 +444,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- sw/uiconfig/swreport/menubar/menubar.xml	2007-11-22 09:50:45.000000000 -0600
++++ sw/uiconfig/swreport/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -444,6 +444,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+--- sw/uiconfig/swriter/menubar/menubar.xml	2008-03-01 16:58:41.000000000 -0600
++++ sw/uiconfig/swriter/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -450,6 +450,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+--- sw/uiconfig/swxform/menubar/menubar.xml	2007-11-22 09:54:22.000000000 -0600
++++ sw/uiconfig/swxform/menubar/menubar.xml	2008-03-01 18:30:54.000000000 -0600
+@@ -444,6 +444,8 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
++			<menu:menuitem menu:id=".uno:HelpTranslate"/>
++			<menu:menuitem menu:id=".uno:HelpReportBug"/>
+ 			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/debug-bits.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/debug-bits.diff
@@ -0,0 +1,14 @@
+--- tools/source/debug/debug.cxx	2006-02-28 11:31:43.000000000 +0100
++++ tools/source/debug/debug.cxx	2006-03-20 18:12:36.000000000 +0100
+@@ -178,7 +178,11 @@ struct DebugData
+         aDbgData.bOverwrite = TRUE;
+         aDbgData.nTraceOut = DBG_OUT_NULL;
+         aDbgData.nWarningOut = DBG_OUT_NULL;
++#ifdef UNX
++        aDbgData.nErrorOut = DBG_OUT_SHELL;
++#else
+         aDbgData.nErrorOut = DBG_OUT_MSGBOX;
++#endif
+         aDbgData.bMemInit = 0x77;
+         aDbgData.bMemBound = 0x55;
+         aDbgData.bMemFree = 0x33;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-desktop.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-desktop.diff
@@ -0,0 +1,8 @@
+--- desktop/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ desktop/prj/tests.lst	2007-09-07 14:38:11.000000000 +0200
+@@ -0,0 +1,5 @@
++dt   desktop\qa\deployment_misc                         nmake - all dt_qa_deployment_misc dt_util NULL
++
++# older tests:
++dt   desktop\test\deployment\locationtest               nmake - all dt_test_deployment_locationtest dt_util NULL
++dt   desktop\test\deployment\options\handler\com\sun\star\comp\extensionoptions nmake - all dt_test_deployment_options_handler_com_sun_star_comp_extensionoptions dt_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/config_office-msvc8-compat.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/config_office-msvc8-compat.diff
@@ -0,0 +1,13 @@
+--- config_office/configure.in	2007-03-22 16:54:38.000000000 +0100
++++ config_office/configure.in	2007-03-29 15:24:14.000000000 +0200
+@@ -1548,6 +1616,10 @@ if test "$_os" = "WINNT"; then
+ 		if test -e "$with_mspdb_path/mspdb71.dll"; then
+ 			MSPDB_PATH="$with_mspdb_path"
+ 		fi
++		dnl  .NET 2005 Compiler
++		if test -e "$with_mspdb_path/mspdb80.dll"; then
++			MSPDB_PATH="$with_mspdb_path"
++		fi
+ 		dnl .NET case
+ 		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb71.dll"; then
+ 			MSPDB_PATH="$with_cl_home/../Common7/IDE"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/soffice-detect-mozilla-certificates.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/soffice-detect-mozilla-certificates.diff
@@ -0,0 +1,32 @@
+Index: scripts/soffice.sh
+===================================================================
+RCS file: /cvs/framework/desktop/scripts/soffice.sh,v
+retrieving revision 1.25
+diff -u -u -r1.25 soffice.sh
+--- desktop/scripts/soffice.sh	5 Jul 2006 22:33:58 -0000	1.25
++++ desktop/scripts/soffice.sh	9 Sep 2006 11:07:33 -0000
+@@ -189,6 +189,24 @@
+ OPENOFFICE_MOZILLA_FIVE_HOME="$sd_inst/program"
+ export OPENOFFICE_MOZILLA_FIVE_HOME
+ 
++if [ -z "$MOZILLA_CERTIFICATE_FOLDER" ]; then
++	db=""
++	dir=""
++	for d in $HOME/.mozilla/firefox $HOME/.firefox $HOME/.mozilla-thunderbird $HOME/.mozilla/default $HOME/.mozilla; do
++		if [ -z "$dir" -a -d "$d" ]; then
++			dir=$d;
++		fi;
++	done
++	if [ -n "$dir" ]; then
++		cert8=`find $dir -name "cert8.db" | head -n 1`
++		if [ -n "$cert8" ]; then
++			profiledir=`dirname "$cert8"`
++			MOZILLA_CERTIFICATE_FOLDER=$profiledir
++			export MOZILLA_CERTIFICATE_FOLDER
++		fi
++	fi
++fi
++
+ unset XENVIRONMENT
+ 
+ # uncomment line below to disable anti aliasing of fonts
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-read-only-colrow-resize.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-read-only-colrow-resize.diff
@@ -0,0 +1,54 @@
+Index: sc/source/ui/view/colrowba.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/colrowba.cxx,v
+retrieving revision 1.13
+diff -u -w -p -r1.13 colrowba.cxx
+--- sc/source/ui/view/colrowba.cxx	8 Sep 2005 22:54:00 -0000	1.13
++++ sc/source/ui/view/colrowba.cxx	28 Jun 2006 18:49:21 -0000
+@@ -220,8 +227,7 @@ BOOL ScColBar::IsDisabled()
+ 
+ BOOL ScColBar::ResizeAllowed()
+ {
+-	return !pViewData->HasEditView( pViewData->GetActivePart() ) &&
+-			!pViewData->GetDocShell()->IsReadOnly();
++	return !pViewData->HasEditView( pViewData->GetActivePart() );
+ }
+ 
+ void ScColBar::DrawInvert( long nDragPosP )
+@@ -386,8 +392,7 @@ BOOL ScRowBar::IsDisabled()
+ 
+ BOOL ScRowBar::ResizeAllowed()
+ {
+-	return !pViewData->HasEditView( pViewData->GetActivePart() ) &&
+-			!pViewData->GetDocShell()->IsReadOnly();
++	return !pViewData->HasEditView( pViewData->GetActivePart() );
+ }
+ 
+ void ScRowBar::DrawInvert( long nDragPosP )
+Index: sc/source/ui/view/viewfunc.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/viewfunc.cxx,v
+retrieving revision 1.32
+diff -u -w -p -r1.32 viewfunc.cxx
+--- sc/source/ui/view/viewfunc.cxx	2 May 2006 15:54:05 -0000	1.32
++++ sc/source/ui/view/viewfunc.cxx	28 Jun 2006 18:49:24 -0000
+@@ -1943,7 +1948,10 @@ void ScViewFunc::SetWidthOrHeight( BOOL 
+                         bOnlyMatrix;
+ 			}
+ 		}
+-	if ( !bAllowed )
++
++	// Allow users to resize cols/rows in readonly docs despite the r/o state.
++	// It is frustrating to be unable to see content in mis-sized cells.
++	if( !bAllowed && !pDocSh->IsReadOnly() )
+ 	{
+ 		ErrorMessage(STR_PROTECTIONERR);
+ 		return;
+@@ -2169,6 +2177,7 @@ void ScViewFunc::SetWidthOrHeight( BOOL 
+ 			}
+ 
+ 		pDocSh->UpdateOle(GetViewData());
++		if( !pDocSh->IsReadOnly() )
+ 		aModificator.SetDocumentModified();
+ 
+ 		ShowCursor();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-cmcfixes42-ucb.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-cmcfixes42-ucb.diff
@@ -0,0 +1,292 @@
+Index: ucb/source/ucp/webdav/LinkSequence.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/LinkSequence.cxx,v
+retrieving revision 1.14
+retrieving revision 1.14.20.1
+diff -u -u -p -b -w -B -r1.14 -r1.14.20.1
+--- ucb/source/ucp/webdav/LinkSequence.cxx	12 Dec 2007 15:32:27 -0000	1.14
++++ ucb/source/ucp/webdav/LinkSequence.cxx	15 Feb 2008 10:51:05 -0000	1.14.20.1
+@@ -180,7 +180,7 @@ bool LinkSequence::createFromXML( const 
+                       rInData.getStr() + nStart,
+                       nEnd - nStart + TOKEN_LENGTH );
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+         success = !ne_xml_failed( parser );
+ #else
+         success = !!ne_xml_valid( parser );
+Index: ucb/source/ucp/webdav/LockEntrySequence.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/LockEntrySequence.cxx,v
+retrieving revision 1.14
+retrieving revision 1.14.20.1
+diff -u -u -p -b -w -B -r1.14 -r1.14.20.1
+--- ucb/source/ucp/webdav/LockEntrySequence.cxx	12 Dec 2007 15:32:46 -0000	1.14
++++ ucb/source/ucp/webdav/LockEntrySequence.cxx	15 Feb 2008 10:51:05 -0000	1.14.20.1
+@@ -205,7 +205,7 @@ bool LockEntrySequence::createFromXML( c
+                        rInData.getStr() + nStart,
+                        nEnd - nStart + TOKEN_LENGTH );
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+         success = !ne_xml_failed( parser );
+ #else
+         success = !!ne_xml_valid( parser );
+Index: ucb/source/ucp/webdav/LockSequence.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/LockSequence.cxx,v
+retrieving revision 1.15
+retrieving revision 1.15.20.1
+diff -u -u -p -b -w -B -r1.15 -r1.15.20.1
+--- ucb/source/ucp/webdav/LockSequence.cxx	12 Dec 2007 15:33:03 -0000	1.15
++++ ucb/source/ucp/webdav/LockSequence.cxx	15 Feb 2008 10:51:05 -0000	1.15.20.1
+@@ -338,7 +338,7 @@ bool LockSequence::createFromXML( const 
+                       rInData.getStr() + nStart,
+                       nEnd - nStart + TOKEN_LENGTH );
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+         success = !ne_xml_failed( parser );
+ #else
+         success = !!ne_xml_valid( parser );
+Index: ucb/source/ucp/webdav/NeonHeadRequest.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/NeonHeadRequest.cxx,v
+retrieving revision 1.9
+retrieving revision 1.9.20.1
+diff -u -u -p -b -w -B -r1.9 -r1.9.20.1
+--- ucb/source/ucp/webdav/NeonHeadRequest.cxx	12 Dec 2007 15:33:24 -0000	1.9
++++ ucb/source/ucp/webdav/NeonHeadRequest.cxx	15 Feb 2008 10:51:05 -0000	1.9.20.1
+@@ -56,7 +56,7 @@ using namespace com::sun::star;
+ 
+ namespace {
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+ void process_headers(ne_request *req,
+                      DAVResource &rResource,
+                      const std::vector< ::rtl::OUString > &rHeaderNames)
+@@ -193,14 +193,14 @@ NeonHeadRequest::NeonHeadRequest( HttpSe
+                                             inPath,
+                                             RTL_TEXTENCODING_UTF8 ) );
+ 
+-#if NEON_VERSION < 0250
++#if NEON_VERSION < 0x0250
+     NeonHeadRequestContext aCtx( &ioResource, &inHeaderNames );
+     ne_add_response_header_catcher( req, NHR_ResponseHeaderCatcher, &aCtx );
+ #endif
+ 
+     nError = ne_request_dispatch( req );
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+     process_headers(req, ioResource, inHeaderNames);
+ #endif
+ 
+Index: ucb/source/ucp/webdav/NeonPropFindRequest.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/NeonPropFindRequest.cxx,v
+retrieving revision 1.22
+retrieving revision 1.22.12.1
+diff -u -u -p -b -w -B -r1.22 -r1.22.12.1
+--- ucb/source/ucp/webdav/NeonPropFindRequest.cxx	7 Jan 2008 12:58:15 -0000	1.22
++++ ucb/source/ucp/webdav/NeonPropFindRequest.cxx	15 Feb 2008 10:51:05 -0000	1.22.12.1
+@@ -176,7 +176,7 @@ extern "C" int NPFR_propfind_iter( void*
+ 
+ // -------------------------------------------------------------------
+ extern "C" void NPFR_propfind_results( void* userdata,
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                        const ne_uri* uri,
+ #else
+                                        const char* href,
+@@ -185,7 +185,7 @@ extern "C" void NPFR_propfind_results( v
+ {
+ 	// @@@ href is not the uri! DAVResource ctor wants uri!
+ 
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+ 	DAVResource theResource(
+ 						OStringToOUString( uri->path, RTL_TEXTENCODING_UTF8 ) );
+ #else
+@@ -218,7 +218,7 @@ extern "C" int NPFR_propnames_iter( void
+ 
+ // -------------------------------------------------------------------
+ extern "C" void NPFR_propnames_results( void* userdata,
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                         const ne_uri* uri,
+ #else
+                                         const char* href,
+@@ -227,7 +227,7 @@ extern "C" void NPFR_propnames_results( 
+ {
+ 	// @@@ href is not the uri! DAVResourceInfo ctor wants uri!
+ 	// Create entry for the resource.
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+ 	DAVResourceInfo theResource(
+ 						OStringToOUString( uri->path, RTL_TEXTENCODING_UTF8 ) );
+ #else
+Index: ucb/source/ucp/webdav/NeonSession.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/NeonSession.cxx,v
+retrieving revision 1.52
+retrieving revision 1.52.20.1
+diff -u -u -p -b -w -B -r1.52 -r1.52.20.1
+--- ucb/source/ucp/webdav/NeonSession.cxx	12 Dec 2007 15:34:02 -0000	1.52
++++ ucb/source/ucp/webdav/NeonSession.cxx	15 Feb 2008 10:51:05 -0000	1.52.20.1
+@@ -252,7 +252,7 @@ struct NeonRequestContext
+ // A simple Neon response_block_reader for use with an XInputStream
+ // -------------------------------------------------------------------
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+ extern "C" int NeonSession_ResponseBlockReader(void * inUserData, 
+ #else
+ extern "C" void NeonSession_ResponseBlockReader(void * inUserData, 
+@@ -272,7 +272,7 @@ extern "C" void NeonSession_ResponseBloc
+         if ( xInputStream.is() )
+             xInputStream->AddToStream( inBuf, inLen );
+     }
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+     return 0;
+ #endif
+ }
+@@ -282,7 +282,7 @@ extern "C" void NeonSession_ResponseBloc
+ // A simple Neon response_block_reader for use with an XOutputStream
+ // -------------------------------------------------------------------
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+ extern "C" int NeonSession_ResponseBlockWriter( void * inUserData, 
+ #else
+ extern "C" void NeonSession_ResponseBlockWriter( void * inUserData, 
+@@ -304,7 +304,7 @@ extern "C" void NeonSession_ResponseBloc
+             xOutputStream->writeBytes( aSeq );
+         }
+     }
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+     return 0;
+ #endif
+ }
+@@ -1667,7 +1667,7 @@ int NeonSession::GET( ne_session * sess,
+     void *cursor = NULL;
+     const char *name, *value;
+ 
+-#if NEON_VERSION < 0250
++#if NEON_VERSION < 0x0250
+     if ( getheaders )
+ 	ne_add_response_header_catcher( req, runResponseHeaderHandler, userdata );
+ #endif
+@@ -1675,7 +1675,7 @@ int NeonSession::GET( ne_session * sess,
+ 
+     ret = ne_request_dispatch( req );
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+     if ( getheaders )
+     {
+         while ((cursor = ne_response_header_iterate(req, cursor, &name, &value)) 
+Index: ucb/source/ucp/webdav/NeonUri.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/NeonUri.cxx,v
+retrieving revision 1.22
+retrieving revision 1.22.12.1
+diff -u -u -p -b -w -B -r1.22 -r1.22.12.1
+--- ucb/source/ucp/webdav/NeonUri.cxx	4 Jan 2008 14:32:03 -0000	1.22
++++ ucb/source/ucp/webdav/NeonUri.cxx	15 Feb 2008 10:51:05 -0000	1.22.12.1
+@@ -73,34 +73,34 @@ using namespace webdav_ucp;
+ namespace {
+ 
+ const ne_uri g_sUriDefaultsHTTP  = { "http",  
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                      NULL, 
+ #endif
+                                      NULL, 
+                                      DEFAULT_HTTP_PORT, 
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                      NULL, 
+ #endif
+                                      NULL, 
+                                      NULL };
+ const ne_uri g_sUriDefaultsHTTPS = { "https", 
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                      NULL, 
+ #endif
+                                      NULL, 
+                                      DEFAULT_HTTPS_PORT, 
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                      NULL, 
+ #endif
+                                      NULL, 
+                                      NULL };
+ const ne_uri g_sUriDefaultsFTP   = { "ftp",   
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                      NULL, 
+ #endif
+                                      NULL, 
+                                      DEFAULT_FTP_PORT, 
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                                      NULL, 
+ #endif
+                                      NULL, 
+@@ -188,7 +188,7 @@ void NeonUri::init( const rtl::OString &
+                     pUri->scheme ? pUri->scheme : pUriDefs->scheme,
+                     RTL_TEXTENCODING_UTF8 );
+     mUserInfo = rtl::OStringToOUString(
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+                     pUri->userinfo ? pUri->userinfo : pUriDefs->userinfo,
+ #else
+                     pUri->authinfo ? pUri->authinfo : pUriDefs->authinfo,
+@@ -202,7 +202,7 @@ void NeonUri::init( const rtl::OString &
+                     pUri->path ? pUri->path : pUriDefs->path,
+                     RTL_TEXTENCODING_UTF8 );
+ 
+-#if NEON_VERSION >= 0260
++#if NEON_VERSION >= 0x0260
+     if ( pUri->query ) 
+     {
+         mPath += rtl::OUString::createFromAscii( "?" );
+Index: ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx,v
+retrieving revision 1.17
+retrieving revision 1.17.20.1
+diff -u -u -p -b -w -B -r1.17 -r1.17.20.1
+--- ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx	12 Dec 2007 15:34:39 -0000	1.17
++++ ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx	15 Feb 2008 10:51:05 -0000	1.17.20.1
+@@ -393,7 +393,7 @@ bool UCBDeadPropertyValue::createFromXML
+ 
+         ne_xml_parse( parser, rInData.getStr(), rInData.getLength() );
+ 
+-#if NEON_VERSION >= 0250
++#if NEON_VERSION >= 0x0250
+         success = !ne_xml_failed( parser );
+ #else
+         success = !!ne_xml_valid( parser );
+Index: ucb/source/ucp/webdav/makefile.mk
+===================================================================
+RCS file: /cvs/ucb/ucb/source/ucp/webdav/makefile.mk,v
+retrieving revision 1.41
+retrieving revision 1.41.26.1
+diff -u -u -p -b -w -B -r1.41 -r1.41.26.1
+--- ucb/source/ucp/webdav/makefile.mk	26 Nov 2007 12:43:52 -0000	1.41
++++ ucb/source/ucp/webdav/makefile.mk	15 Feb 2008 10:51:05 -0000	1.41.26.1
+@@ -68,7 +68,7 @@ NEONINCDIR=external$/neon
+ .INCLUDE: $(SOLARINCDIR)$/$(NEONINCDIR)$/version.mk
+ .ENDIF
+ 
+-CFLAGS+= -DNEON_VERSION=$(NEON_VERSION)
++CFLAGS+= -DNEON_VERSION=0x$(NEON_VERSION)
+ 
+ .IF "$(SYSTEM_NEON)" == "YES"
+ CFLAGS+= $(NEON_CFLAGS)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-cjksp1-xmloff.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-cjksp1-xmloff.diff
@@ -0,0 +1,276 @@
+diff -uNpr xmloff.bk/inc/PageMasterImportContext.hxx xmloff/inc/PageMasterImportContext.hxx
+--- xmloff.bk/inc/PageMasterImportContext.hxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/inc/PageMasterImportContext.hxx	2008-02-19 15:20:49.000000000 +0800
+@@ -60,7 +60,8 @@ public:
+ 	PageStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
+ 			const ::rtl::OUString& rLName,
+ 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > & xAttrList,
+-			SvXMLStylesContext& rStyles);
++			SvXMLStylesContext& rStyles,
++			sal_Bool bDefaultStyle=sal_False);
+ 	virtual ~PageStyleContext();
+ 
+ 	virtual SvXMLImportContext *CreateChildContext(
+@@ -71,6 +72,9 @@ public:
+ 	virtual void FillPropertySet(
+ 			const ::com::sun::star::uno::Reference<
+ 				::com::sun::star::beans::XPropertySet > & rPropSet );
++
++	//text grid enhancement
++	virtual void SetDefaults();
+ };
+ 
+ #endif
+diff -uNpr xmloff.bk/inc/xmloff/PageMasterStyleMap.hxx xmloff/inc/xmloff/PageMasterStyleMap.hxx
+--- xmloff.bk/inc/xmloff/PageMasterStyleMap.hxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/inc/xmloff/PageMasterStyleMap.hxx	2008-02-19 15:20:49.000000000 +0800
+@@ -107,6 +107,9 @@
+ #define CTF_PM_SCALETOPAGES				(XML_PM_CTF_START + 0x0052)
+ #define CTF_PM_SCALETOX                 (XML_PM_CTF_START + 0x0053)
+ #define CTF_PM_SCALETOY                 (XML_PM_CTF_START + 0x0054)
++#define CTF_PM_STANDARD_MODE            (XML_PM_CTF_START + 0x0055)
++#define CTP_PM_GRID_BASE_WIDTH          (XML_PM_CTF_START + 0x0056)
++#define CTP_PM_GRID_SNAP_TO_CHARS       (XML_PM_CTF_START + 0x0057)
+ // header
+ #define CTF_PM_HEADERBORDERALL			(CTF_PM_HEADERFLAG|CTF_PM_BORDERALL)
+ #define CTF_PM_HEADERBORDERTOP			(CTF_PM_HEADERFLAG|CTF_PM_BORDERTOP)
+diff -uNpr xmloff.bk/inc/xmloff/XMLPageExport.hxx xmloff/inc/xmloff/XMLPageExport.hxx
+--- xmloff.bk/inc/xmloff/XMLPageExport.hxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/inc/xmloff/XMLPageExport.hxx	2008-02-19 15:20:49.000000000 +0800
+@@ -130,6 +130,9 @@ public:
+ 	void	collectAutoStyles( sal_Bool bUsed )		{ exportStyles( bUsed, sal_True ); }
+ 	void	exportAutoStyles();
+ 	void	exportMasterStyles( sal_Bool bUsed )	{ exportStyles( bUsed, sal_False ); }
++
++	//text grid enhancement for better CJK support
++	void exportDefaultStyle();
+ };
+ 
+ #endif	//  _XMLOFF_XMLTEXTMASTERPAGEEXPORT_HXX
+diff -uNpr xmloff.bk/inc/xmloff/xmlstyle.hxx xmloff/inc/xmloff/xmlstyle.hxx
+--- xmloff.bk/inc/xmloff/xmlstyle.hxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/inc/xmloff/xmlstyle.hxx	2008-02-19 15:20:49.000000000 +0800
+@@ -91,6 +91,7 @@ enum XMLStyleStylesElemTokens
+ 	XML_TOK_TEXT_BIBLIOGRAPHY_CONFIG,
+ 	XML_TOK_TEXT_LINENUMBERING_CONFIG,
+ 	XML_TOK_STYLE_DEFAULT_STYLE,
++	XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT,	//text grid enhancement
+ 	XML_TOK_STYLE_STYLES_ELEM_END=XML_TOK_UNKNOWN
+ };
+ 
+diff -uNpr xmloff.bk/inc/xmloff/xmltoken.hxx xmloff/inc/xmloff/xmltoken.hxx
+--- xmloff.bk/inc/xmloff/xmltoken.hxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/inc/xmloff/xmltoken.hxx	2008-02-19 15:20:49.000000000 +0800
+@@ -2081,6 +2081,12 @@ namespace xmloff { namespace token {
+         XML_LAYOUT_GRID_PRINT,
+         XML_LAYOUT_GRID_DISPLAY,
+ 
++		//text grid enhancement for better CJK support
++		XML_DEFAULT_PAGE_LAYOUT,
++		XML_LAYOUT_GRID_STANDARD_MODE,
++		XML_LAYOUT_GRID_BASE_WIDTH,
++		XML_LAYOUT_GRID_SNAP_TO_CHARS,
++
+         XML_SNAP_TO_LAYOUT_GRID,
+         XML_DONT_BALANCE_TEXT_COLUMNS,
+ 
+diff -uNpr xmloff.bk/source/core/xmltoken.cxx xmloff/source/core/xmltoken.cxx
+--- xmloff.bk/source/core/xmltoken.cxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/source/core/xmltoken.cxx	2008-02-19 15:20:49.000000000 +0800
+@@ -2091,6 +2091,12 @@ namespace xmloff { namespace token {
+         TOKEN( "layout-grid-print",               XML_LAYOUT_GRID_PRINT ),
+         TOKEN( "layout-grid-display",             XML_LAYOUT_GRID_DISPLAY ),
+ 
++		//text grid enhancement for better CJK support
++        TOKEN( "default-page-layout",             XML_DEFAULT_PAGE_LAYOUT ),
++        TOKEN( "layout-grid-standard-mode",       XML_LAYOUT_GRID_STANDARD_MODE ),
++        TOKEN( "layout-grid-base-width",          XML_LAYOUT_GRID_BASE_WIDTH ),
++        TOKEN( "layout-grid-snap-to-characters",       XML_LAYOUT_GRID_SNAP_TO_CHARS ),
++
+         TOKEN( "snap-to-layout-grid",             XML_SNAP_TO_LAYOUT_GRID ),
+ 
+         TOKEN( "dont-balance-text-columns",       XML_DONT_BALANCE_TEXT_COLUMNS ),
+diff -uNpr xmloff.bk/source/style/PageMasterExportPropMapper.cxx xmloff/source/style/PageMasterExportPropMapper.cxx
+--- xmloff.bk/source/style/PageMasterExportPropMapper.cxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/source/style/PageMasterExportPropMapper.cxx	2008-02-19 15:20:49.000000000 +0800
+@@ -348,6 +348,9 @@ void XMLPageMasterExportPropMapper::Cont
+ 	XMLPropertyState*		pPMScaleToPages		= NULL;
+ 	XMLPropertyState*		pPMScaleToX 		= NULL;
+ 	XMLPropertyState*		pPMScaleToY	    	= NULL;
++	XMLPropertyState*		pPMStandardMode    	= NULL;
++	XMLPropertyState*		pPMGridBaseWidth   	= NULL;
++	XMLPropertyState*		pPMGridSnapToChars 	= NULL;
+ 
+     XMLPropertyState*       pPrint              = NULL;
+ 
+@@ -400,6 +403,9 @@ void XMLPageMasterExportPropMapper::Cont
+ 			case CTF_PM_SCALETOPAGES:		pPMScaleToPages		= pProp;	break;
+             case CTF_PM_SCALETOX:   		pPMScaleToX 		= pProp;	break;
+             case CTF_PM_SCALETOY:   		pPMScaleToY 		= pProp;	break;
++            case CTF_PM_STANDARD_MODE:		pPMStandardMode		= pProp;	break;
++            case CTP_PM_GRID_BASE_WIDTH:		pPMGridBaseWidth	= pProp;	break;
++            case CTP_PM_GRID_SNAP_TO_CHARS:		pPMGridSnapToChars	= pProp;	break;
+ 		}
+         if (nPrintId == CTF_PM_PRINTMASK)
+         {
+@@ -408,6 +414,18 @@ void XMLPageMasterExportPropMapper::Cont
+         }
+ 	}
+ 
++	if( pPMStandardMode && !getBOOL(pPMStandardMode->maValue) )
++	{
++		lcl_RemoveState(pPMStandardMode);
++		if( pPMGridBaseWidth )
++			lcl_RemoveState(pPMGridBaseWidth);
++		if( pPMGridSnapToChars )
++			lcl_RemoveState(pPMGridSnapToChars);
++	}
++
++	if( pPMGridBaseWidth && pPMStandardMode )
++		lcl_RemoveState(pPMStandardMode);	
++	
+ 	aPageBuffer.ContextFilter( rPropState );
+ 	aHeaderBuffer.ContextFilter( rPropState );
+ 	aFooterBuffer.ContextFilter( rPropState );
+diff -uNpr xmloff.bk/source/style/PageMasterImportContext.cxx xmloff/source/style/PageMasterImportContext.cxx
+--- xmloff.bk/source/style/PageMasterImportContext.cxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/source/style/PageMasterImportContext.cxx	2008-02-19 15:20:49.000000000 +0800
+@@ -67,8 +67,14 @@
+ #include <xmloff/PageMasterStyleMap.hxx>
+ #endif
+ 
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++
+ using namespace ::com::sun::star;
+ using namespace ::xmloff::token;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::lang;
+ 
+ void PageStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
+                                         const rtl::OUString& rLocalName,
+@@ -90,8 +96,9 @@ TYPEINIT1( PageStyleContext, XMLPropStyl
+ PageStyleContext::PageStyleContext( SvXMLImport& rImport,
+         sal_uInt16 nPrfx, const rtl::OUString& rLName,
+         const uno::Reference< xml::sax::XAttributeList > & xAttrList,
+-        SvXMLStylesContext& rStyles) :
+-    XMLPropStyleContext( rImport, nPrfx, rLName, xAttrList, rStyles, XML_STYLE_FAMILY_PAGE_MASTER ),
++        SvXMLStylesContext& rStyles,
++        sal_Bool bDefaultStyle) :
++    XMLPropStyleContext( rImport, nPrfx, rLName, xAttrList, rStyles, XML_STYLE_FAMILY_PAGE_MASTER, bDefaultStyle),
+     sPageUsage()
+ {
+ }
+@@ -202,3 +209,18 @@ void PageStyleContext::FillPropertySet(
+     }
+ }
+ 
++// text grid enhancement for better CJK support
++//set default page layout style
++void PageStyleContext::SetDefaults( )
++{
++	Reference < XMultiServiceFactory > xFactory ( GetImport().GetModel(), UNO_QUERY);
++	if (xFactory.is())
++	{
++		Reference < XInterface > xInt = xFactory->createInstance (
++	    rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.Defaults" ) ) );
++	    Reference < beans::XPropertySet > xProperties ( xInt, UNO_QUERY );
++	    if ( xProperties.is() )
++	    	FillPropertySet ( xProperties );
++	}
++}
++
+diff -uNpr xmloff.bk/source/style/PageMasterStyleMap.cxx xmloff/source/style/PageMasterStyleMap.cxx
+--- xmloff.bk/source/style/PageMasterStyleMap.cxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/source/style/PageMasterStyleMap.cxx	2008-02-19 15:20:49.000000000 +0800
+@@ -122,6 +122,12 @@ const XMLPropertyMapEntry aXMLPageMaster
+     PLMAP( "GridPrint", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_PRINT, XML_TYPE_BOOL, 0 ),
+     PLMAP( "GridDisplay", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_DISPLAY, XML_TYPE_BOOL, 0 ),
+ 
++	//text grid enhancement for better CJK support
++    PLMAP( "GridBaseWidth", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_BASE_WIDTH, XML_TYPE_MEASURE, CTP_PM_GRID_BASE_WIDTH ),
++    PLMAP( "GridSnapToChars", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_SNAP_TO_CHARS, XML_TYPE_BOOL, CTP_PM_GRID_SNAP_TO_CHARS ),
++  	//export as a default attribute
++    PLMAP( "StandardPageMode", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_STANDARD_MODE, XML_TYPE_BOOL|MID_FLAG_DEFAULT_ITEM_EXPORT, CTF_PM_STANDARD_MODE ),
++	
+ 	PLMAP( "UserDefinedAttributes",	XML_NAMESPACE_TEXT,		XML_XMLNS,						XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
+ 
+ // footnote
+diff -uNpr xmloff.bk/source/style/XMLPageExport.cxx xmloff/source/style/XMLPageExport.cxx
+--- xmloff.bk/source/style/XMLPageExport.cxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/source/style/XMLPageExport.cxx	2008-02-19 15:20:49.000000000 +0800
+@@ -277,3 +277,47 @@ void XMLPageExport::exportAutoStyles()
+ 		rExport.GetNamespaceMap()
+         );
+ }
++
++void XMLPageExport::exportDefaultStyle()
++{
++	Reference < lang::XMultiServiceFactory > xFactory (GetExport().GetModel(), UNO_QUERY);
++	if (xFactory.is())
++	{
++		OUString sTextDefaults ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.Defaults" ) );
++		Reference < XPropertySet > xPropSet (xFactory->createInstance ( sTextDefaults ), UNO_QUERY);
++		if (xPropSet.is())
++		{
++			// <style:default-style ...>
++			GetExport().CheckAttrList();
++
++			::std::vector< XMLPropertyState > xPropStates =
++				xPageMasterExportPropMapper->FilterDefaults( xPropSet );
++			
++			sal_Bool bExport = sal_False;
++			UniReference < XMLPropertySetMapper > aPropMapper(xPageMasterExportPropMapper->getPropertySetMapper());
++			for( ::std::vector< XMLPropertyState >::iterator aIter = xPropStates.begin(); aIter != xPropStates.end(); ++aIter )
++			{
++        		XMLPropertyState *pProp = &(*aIter);
++				sal_Int16 nContextId	= aPropMapper->GetEntryContextId( pProp->mnIndex );
++				if( nContextId == CTF_PM_STANDARD_MODE )
++				{
++					bExport = sal_True;
++					break;
++				}
++			}
++
++		//	if ( xPropStates.size() != 0 &&
++          //          ( xPropStates.size() != 1 || xPropStates[0].mnIndex != -1 ) )
++			if( bExport )	
++			{
++				//<style:default-page-layout>
++				SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
++										  XML_DEFAULT_PAGE_LAYOUT,
++										  sal_True, sal_True );
++
++				xPageMasterExportPropMapper->exportXML( GetExport(), xPropStates,
++									   	  XML_EXPORT_FLAG_IGN_WS );
++			}
++		}
++	}
++}
+diff -uNpr xmloff.bk/source/style/xmlstyle.cxx xmloff/source/style/xmlstyle.cxx
+--- xmloff.bk/source/style/xmlstyle.cxx	2008-02-19 15:20:40.000000000 +0800
++++ xmloff/source/style/xmlstyle.cxx	2008-02-19 15:20:49.000000000 +0800
+@@ -175,6 +175,7 @@ static __FAR_DATA SvXMLTokenMapEntry aSt
+ 	{ XML_NAMESPACE_TEXT,	XML_NOTES_CONFIGURATION,    XML_TOK_TEXT_NOTE_CONFIG },
+ 	{ XML_NAMESPACE_TEXT,	XML_BIBLIOGRAPHY_CONFIGURATION, XML_TOK_TEXT_BIBLIOGRAPHY_CONFIG },
+ 	{ XML_NAMESPACE_TEXT,   XML_LINENUMBERING_CONFIGURATION,XML_TOK_TEXT_LINENUMBERING_CONFIG },
++	{ XML_NAMESPACE_STYLE,	XML_DEFAULT_PAGE_LAYOUT,	XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT        },
+ 	XML_TOKEN_MAP_END
+ };
+ 
+@@ -546,9 +547,13 @@ SvXMLStyleContext *SvXMLStylesContext::C
+ 			}
+ 			break;
+ 			case XML_TOK_STYLE_PAGE_MASTER:
++			case XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT:
+ 			{
++				//there is not page family in odf now, so I specify one for it
++				sal_Bool bDefaultStyle  = XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT == nToken
++					? sal_True: sal_False;
+ 				pStyle = new PageStyleContext( GetImport(), p_nPrefix,
+-													rLocalName, xAttrList, *this );
++													rLocalName, xAttrList, *this, bDefaultStyle );
+ 			}
+ 			break;
+ 			case XML_TOK_TEXT_LIST_STYLE:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autocorrect-accidental-caps-lock-officecfg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autocorrect-accidental-caps-lock-officecfg.diff
@@ -0,0 +1,19 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=officecfg.vpj officecfg.clean/registry/schema/org/openoffice/Office/Common.xcs officecfg/registry/schema/org/openoffice/Office/Common.xcs
+--- officecfg.clean/registry/schema/org/openoffice/Office/Common.xcs	2008-02-20 15:04:19.000000000 -0500
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2008-02-25 18:29:09.000000000 -0500
+@@ -1194,6 +1194,15 @@ Dymamic border coloring means that when 
+ 				</info>
+ 				<value>false</value>
+ 			</prop>
++			<prop oor:name="CorrectAccidentalCapsLock" oor:type="xs:boolean">
++				<!-- UIHints: Tools  AutoCorrect/AutoFormat  Options  Correct accidental use of cAPS LOCK key -->
++				<info>
++					<author>Kohei Yoshida</author>
++					<desc>Specifies whether or not to correct accidental use of CAPS lock key.</desc>
++					<label>Correct accidental use of cAPS LOCK key</label>
++				</info>
++				<value>true</value>
++			</prop>
+ 			<prop oor:name="ReplaceSingleQuote" oor:type="xs:boolean">
+ 				<!-- OldPath: AutoCorrect/Options/All -->
+ 				<!-- OldLocation: Soffice.cfg -->
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/modal-changes-dialog.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/modal-changes-dialog.diff
@@ -0,0 +1,1219 @@
+diff -pur sc.orig/inc/sc.hrc sc/inc/sc.hrc
+--- sc.orig/inc/sc.hrc	2006-11-15 18:58:34.000000000 +0100
++++ sc/inc/sc.hrc	2006-12-04 16:17:26.000000000 +0100
+@@ -1587,6 +1587,9 @@
+ #define RID_SCDLG_DPSHOWDETAIL          (SC_DIALOGS_START + 137)
+ 
+ #define SID_PIVOT_AFMT					(SC_DIALOGS_START + 133)
++
++#define RID_SCDLG_CHANGES_MODAL				(SC_DIALOGS_START + 139)
++
+ #define SC_DIALOGS_END          (SC_DIALOGS_START + 150)
+ 
+ #ifndef STD_MASKCOLOR
+diff -pur sc.orig/source/ui/inc/acredlin.hxx sc/source/ui/inc/acredlin.hxx
+--- sc.orig/source/ui/inc/acredlin.hxx	2006-02-06 14:05:09.000000000 +0100
++++ sc/source/ui/inc/acredlin.hxx	2006-12-04 16:28:25.000000000 +0100
+@@ -160,9 +160,10 @@ typedef	long LExpNum;
+ //DECLARE_TABLE( ScChgTrackExps, LExpNum)
+ //==================================================================
+ 
+-class ScAcceptChgDlg : public SfxModelessDialog
++class ScChangeAcceptUI
+ {
+ private:
++	Dialog*					pDialog;
+ 
+ 	Timer					aSelectionTimer;
+ 	Timer					aReOpenTimer;
+@@ -227,13 +228,8 @@ private:
+ 	DECL_LINK( ReOpenTimerHdl, Timer*);
+ 	DECL_LINK( ColCompareHdl, SvSortData*);
+ 
+-
+-
+ protected:
+ 
+-	virtual void	Resize();
+-	virtual BOOL	Close();
+-
+ 	void			RejectFiltered();
+ 	void			AcceptFiltered();
+ 
+@@ -279,20 +275,54 @@ protected:
+ 							SvLBoxEntry* pEntry, BOOL bFilter=FALSE);
+ 
+ public:
++					ScChangeAcceptUI( Dialog* ptrDialog, ScViewData* ptrViewData );
++	virtual			~ScChangeAcceptUI();
++
++	void			ReInit( ScViewData* ptrViewData );
++
++	void			Initialize( const String& rExtraData );
++	void			FillInfo( String& rExtraData ) const;
++	void			Resize();
++	void			Update();
++};
++
++class ScAcceptChgDlg : public SfxModelessDialog
++{
++	ScChangeAcceptUI* pImpl;
++    
++protected:
++	virtual void	Resize();
++	virtual BOOL	Close();
++
++public:
+ 					ScAcceptChgDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
+-							   ScViewData*		ptrViewData);
++									ScViewData* ptrViewData );
+ 
+-					~ScAcceptChgDlg();
++	virtual			~ScAcceptChgDlg();
+ 
+-	void			ReInit(ScViewData* ptrViewData);
++	void			ReInit( ScViewData* ptrViewData );
+ 
+ 	virtual long	PreNotify( NotifyEvent& rNEvt );
+ 
+-	void			Initialize (SfxChildWinInfo* pInfo);
+-	virtual void    FillInfo(SfxChildWinInfo&) const;
+-
++	void			Initialize( SfxChildWinInfo* pInfo );
++	virtual void    FillInfo( SfxChildWinInfo& ) const;
+ };
+ 
++class ScAcceptChgModalDlg : public SfxModalDialog
++{
++	ScChangeAcceptUI* pImpl;
++    
++protected:
++	virtual void	Resize();
++//	virtual BOOL	Close();
++
++public:
++					ScAcceptChgModalDlg( Window *pParent, ScViewData* ptrViewData );
++					~ScAcceptChgModalDlg();
++
++//	void			AcceptAll( BOOL bAccept );
++//	virtual void	Activate();
++};
+ 
+ #endif // SC_NAMEDLG_HXX
+ 
+diff -pur sc.orig/source/ui/miscdlgs/acredlin.cxx sc/source/ui/miscdlgs/acredlin.cxx
+--- sc.orig/source/ui/miscdlgs/acredlin.cxx	2006-10-12 17:30:56.000000000 +0200
++++ sc/source/ui/miscdlgs/acredlin.cxx	2006-12-04 16:24:18.000000000 +0100
+@@ -120,14 +120,13 @@ ScRedlinData::~ScRedlinData()
+ 
+ 
+ //============================================================================
+-//	class ScAcceptChgDlg
++//	class ScChangeAcceptUI
+ //----------------------------------------------------------------------------
+-ScAcceptChgDlg::ScAcceptChgDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
+-					  ScViewData*		ptrViewData)
++ScChangeAcceptUI::ScChangeAcceptUI( Dialog* ptrDialog, ScViewData* ptrViewData )
+ 
+-	:	SfxModelessDialog( pB, pCW, pParent, ScResId(RID_SCDLG_CHANGES) ),
++	:	pDialog					( ptrDialog ),
+ 		//
+-		aAcceptChgCtr			( this, ScResId( CTR_REDLINING ) ),
++		aAcceptChgCtr			( pDialog, ScResId( CTR_REDLINING ) ),
+ 		//
+ 		pViewData		( ptrViewData ),
+ 		pDoc			( ptrViewData->GetDocument() ),
+@@ -151,8 +150,7 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
+ 		aStrChildOrgContent		( ScResId( STR_CHILD_ORGCONTENT)),
+ 		aStrEmpty				( ScResId( STR_EMPTY		))
+ {
+-	FreeResource();
+-//	bScAcceptChgDlgIsDead=FALSE;
++//	bScChangeAcceptUIIsDead=FALSE;
+ 	bNoSelection=FALSE;
+ 	bNeedsUpdate=FALSE;
+ 	bIgnoreMsg=FALSE;
+@@ -163,7 +161,7 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
+ 	bHasFilterEntry=FALSE;
+ 	bUseColor=FALSE;
+ 	aReOpenTimer.SetTimeout(50);
+-	aReOpenTimer.SetTimeoutHdl(LINK( this, ScAcceptChgDlg, ReOpenTimerHdl ));
++	aReOpenTimer.SetTimeoutHdl(LINK( this, ScChangeAcceptUI, ReOpenTimerHdl ));
+ 
+ 	//	dialog is now only hidden, not deleted, on switching views,
+ 	//	so there's no need to restore settings when reopening
+@@ -171,37 +169,37 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
+ 	MinSize=aAcceptChgCtr.GetMinSizePixel();
+ 	MinSize.Height()+=2;
+ 	MinSize.Width()+=2;
+-	SetMinOutputSizePixel(MinSize);
++	pDialog->SetMinOutputSizePixel( MinSize );
+ 	aUnknown.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Unknown"));
+ 
+ 	pTPFilter=aAcceptChgCtr.GetFilterPage();
+ 	pTPView=aAcceptChgCtr.GetViewPage();
+ 	pTheView=pTPView->GetTableControl();
+ 	aSelectionTimer.SetTimeout(100);
+-	aSelectionTimer.SetTimeoutHdl(LINK( this, ScAcceptChgDlg, UpdateSelectionHdl ));
++	aSelectionTimer.SetTimeoutHdl(LINK( this, ScChangeAcceptUI, UpdateSelectionHdl ));
+ 
+-	pTPFilter->SetReadyHdl(LINK( this, ScAcceptChgDlg, FilterHandle ));
+-	pTPFilter->SetRefHdl(LINK( this, ScAcceptChgDlg, RefHandle ));
+-	pTPFilter->SetModifyHdl(LINK( this, ScAcceptChgDlg, FilterModified));
++	pTPFilter->SetReadyHdl(LINK( this, ScChangeAcceptUI, FilterHandle ));
++	pTPFilter->SetRefHdl(LINK( this, ScChangeAcceptUI, RefHandle ));
++	pTPFilter->SetModifyHdl(LINK( this, ScChangeAcceptUI, FilterModified));
+ 	pTPFilter->HideRange(FALSE);
+ 	pTPView->InsertCalcHeader();
+-	pTPView->SetRejectClickHdl( LINK( this, ScAcceptChgDlg,RejectHandle));
+-	pTPView->SetAcceptClickHdl( LINK(this, ScAcceptChgDlg, AcceptHandle));
+-	pTPView->SetRejectAllClickHdl( LINK( this, ScAcceptChgDlg,RejectAllHandle));
+-	pTPView->SetAcceptAllClickHdl( LINK(this, ScAcceptChgDlg, AcceptAllHandle));
++	pTPView->SetRejectClickHdl( LINK( this, ScChangeAcceptUI,RejectHandle));
++	pTPView->SetAcceptClickHdl( LINK(this, ScChangeAcceptUI, AcceptHandle));
++	pTPView->SetRejectAllClickHdl( LINK( this, ScChangeAcceptUI,RejectAllHandle));
++	pTPView->SetAcceptAllClickHdl( LINK(this, ScChangeAcceptUI, AcceptAllHandle));
+ 	pTheView->SetCalcView();
+ 	pTheView->SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
+-	pTheView->SetExpandingHdl( LINK(this, ScAcceptChgDlg, ExpandingHandle));
+-	pTheView->SetSelectHdl( LINK(this, ScAcceptChgDlg, SelectHandle));
+-	pTheView->SetDeselectHdl( LINK(this, ScAcceptChgDlg, SelectHandle));
+-	pTheView->SetCommandHdl( LINK(this, ScAcceptChgDlg, CommandHdl));
+-	pTheView->SetColCompareHdl( LINK(this, ScAcceptChgDlg,ColCompareHdl));
++	pTheView->SetExpandingHdl( LINK(this, ScChangeAcceptUI, ExpandingHandle));
++	pTheView->SetSelectHdl( LINK(this, ScChangeAcceptUI, SelectHandle));
++	pTheView->SetDeselectHdl( LINK(this, ScChangeAcceptUI, SelectHandle));
++	pTheView->SetCommandHdl( LINK(this, ScChangeAcceptUI, CommandHdl));
++	pTheView->SetColCompareHdl( LINK(this, ScChangeAcceptUI,ColCompareHdl));
+ 	pTheView->SetSelectionMode(MULTIPLE_SELECTION);
+ 	pTheView->SetHighlightRange(1);
+ 
+ 	Init();
+ 
+-	aAcceptChgCtr.SetMinSizeHdl( LINK( this, ScAcceptChgDlg, MinSizeHandle ));
++	aAcceptChgCtr.SetMinSizeHdl( LINK( this, ScChangeAcceptUI, MinSizeHandle ));
+ 
+ 	UpdateView();
+ 	SvLBoxEntry* pEntry=pTheView->First();
+@@ -210,9 +208,10 @@ ScAcceptChgDlg::ScAcceptChgDlg( SfxBindi
+ 		pTheView->Select(pEntry);
+ 	}
+ }
+-ScAcceptChgDlg::~ScAcceptChgDlg()
++
++ScChangeAcceptUI::~ScChangeAcceptUI()
+ {
+-//	bScAcceptChgDlgIsDead=TRUE;
++//	bScChangeAcceptUIIsDead=TRUE;
+ 	ClearView();
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+ 
+@@ -223,7 +222,7 @@ ScAcceptChgDlg::~ScAcceptChgDlg()
+ 	}
+ }
+ 
+-void ScAcceptChgDlg::ReInit(ScViewData* ptrViewData)
++void ScChangeAcceptUI::ReInit(ScViewData* ptrViewData)
+ {
+ 	pViewData=ptrViewData;
+ 	if(pViewData!=NULL)
+@@ -252,11 +251,80 @@ void ScAcceptChgDlg::ReInit(ScViewData* 
+ 	{
+ 		ScChangeTrack* pChanges = pDoc->GetChangeTrack();
+ 		if ( pChanges )
+-			pChanges->SetModifiedLink( LINK( this, ScAcceptChgDlg, ChgTrackModHdl ) );
++			pChanges->SetModifiedLink( LINK( this, ScChangeAcceptUI, ChgTrackModHdl ) );
++	}
++}
++
++void ScChangeAcceptUI::Initialize( const String& rExtraData )
++{
++	if ( rExtraData.Len() )
++	{
++		xub_StrLen nPos = rExtraData.Search(
++				String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "AcceptChgDat:" ) ) );
++
++		// Versuche, den Alignment-String "ALIGN:(...)" einzulesen; wenn
++		// er nicht vorhanden ist, liegt eine "altere Version vor
++		if ( nPos != STRING_NOTFOUND )
++		{
++			xub_StrLen n1 = rExtraData.Search( '(', nPos );
++			if ( n1 != STRING_NOTFOUND )
++			{
++				xub_StrLen n2 = rExtraData.Search( ')', n1 );
++				if ( n2 != STRING_NOTFOUND )
++				{
++					// Alignment-String herausschneiden
++					String aStr = rExtraData.Copy( nPos, n2 - nPos + 1 );
++					aStr.Erase( 0, n1-nPos+1 );
++
++					if ( aStr.Len() )
++					{
++						USHORT nCount = (USHORT)aStr.ToInt32();
++
++						for ( USHORT i=0; i < nCount; i++ )
++						{
++							xub_StrLen n1 = aStr.Search( ';' );
++							aStr.Erase( 0, n1 + 1 );
++							pTheView->SetTab( i, (USHORT)aStr.ToInt32(), MAP_PIXEL );
++						}
++					}
++				}
++			}
++		}
++	}
++}
++
++void ScChangeAcceptUI::FillInfo( String& rExtraData ) const
++{
++	rExtraData.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "AcceptChgDat:(" ) );
++
++	USHORT	nCount = pTheView->TabCount();
++
++	rExtraData += String::CreateFromInt32( nCount );
++	rExtraData += ';';
++	for ( USHORT i=0; i<nCount; i++ )
++	{
++		rExtraData += String::CreateFromInt32( pTheView->GetTab( i ) );
++		rExtraData += ';';
++	}
++	rExtraData += ')';
++}
++
++void ScChangeAcceptUI::Resize()
++{
++	aAcceptChgCtr.SetSizePixel( pDialog->GetOutputSizePixel() );
++}
++
++void ScChangeAcceptUI::Update()
++{
++	if ( bNeedsUpdate )
++	{
++		ClearView();
++		UpdateView();
++		bNoSelection=FALSE;
+ 	}
+ }
+ 
+-void __EXPORT ScAcceptChgDlg::Init()
++void __EXPORT ScChangeAcceptUI::Init()
+ {
+ 	String	aAreaStr;
+ 	ScRange aRange;
+@@ -267,7 +335,7 @@ void __EXPORT ScAcceptChgDlg::Init()
+ 
+ 	if(pChanges!=NULL)
+ 	{
+-		pChanges->SetModifiedLink( LINK( this, ScAcceptChgDlg,ChgTrackModHdl));
++		pChanges->SetModifiedLink( LINK( this, ScChangeAcceptUI,ChgTrackModHdl));
+ 		aChangeViewSet.SetTheAuthorToShow(pChanges->GetUser());
+ 		pTPFilter->ClearAuthors();
+ 		StrCollection aUserColl=pChanges->GetUserCollection();
+@@ -325,7 +393,7 @@ void __EXPORT ScAcceptChgDlg::Init()
+ 
+ 
+ 
+-void ScAcceptChgDlg::ClearView()
++void ScChangeAcceptUI::ClearView()
+ {
+ 	nAcceptCount=0;
+ 	nRejectCount=0;
+@@ -336,7 +404,7 @@ void ScAcceptChgDlg::ClearView()
+ 	pTheView->SetUpdateMode(TRUE);
+ }
+ 
+-String* ScAcceptChgDlg::MakeTypeString(ScChangeActionType eType)
++String* ScChangeAcceptUI::MakeTypeString(ScChangeActionType eType)
+ {
+ 	String* pStr;
+ 
+@@ -367,7 +435,7 @@ String* ScAcceptChgDlg::MakeTypeString(S
+ }
+ 
+ 
+-BOOL ScAcceptChgDlg::IsValidAction(const ScChangeAction* pScChangeAction)
++BOOL ScChangeAcceptUI::IsValidAction(const ScChangeAction* pScChangeAction)
+ {
+ 	if(pScChangeAction==NULL) return FALSE;
+ 
+@@ -429,7 +497,7 @@ BOOL ScAcceptChgDlg::IsValidAction(const
+ 	return bFlag;
+ }
+ 
+-SvLBoxEntry* ScAcceptChgDlg::InsertChangeAction(const ScChangeAction* pScChangeAction,
++SvLBoxEntry* ScChangeAcceptUI::InsertChangeAction(const ScChangeAction* pScChangeAction,
+                                                    ScChangeActionState /* eState */, SvLBoxEntry* pParent,
+ 												   BOOL bDelMaster,BOOL bDisabled,ULONG nPos)
+ {
+@@ -580,7 +648,7 @@ SvLBoxEntry* ScAcceptChgDlg::InsertChang
+ 	return pEntry;
+ }
+ 
+-SvLBoxEntry* ScAcceptChgDlg::InsertFilteredAction(const ScChangeAction* pScChangeAction,
++SvLBoxEntry* ScChangeAcceptUI::InsertFilteredAction(const ScChangeAction* pScChangeAction,
+ 												   ScChangeActionState eState,SvLBoxEntry* pParent,
+ 												   BOOL bDelMaster,BOOL bDisabled,ULONG nPos)
+ {
+@@ -712,7 +780,7 @@ SvLBoxEntry* ScAcceptChgDlg::InsertFilte
+ 	return pEntry;
+ }
+ 
+-SvLBoxEntry* ScAcceptChgDlg::InsertChangeActionContent(const ScChangeActionContent* pScChangeAction,
++SvLBoxEntry* ScChangeAcceptUI::InsertChangeActionContent(const ScChangeActionContent* pScChangeAction,
+ 														  SvLBoxEntry* pParent, ULONG nSpecial)
+ {
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+@@ -840,20 +908,8 @@ SvLBoxEntry* ScAcceptChgDlg::InsertChang
+ 	return pEntry;
+ }
+ 
+-long ScAcceptChgDlg::PreNotify( NotifyEvent& rNEvt )
+-{
+-	if(rNEvt.GetType()==EVENT_GETFOCUS && bNeedsUpdate)
+-	{
+-		ClearView();
+-		UpdateView();
+-		bNoSelection=FALSE;
+-	}
+-
+-	return SfxModelessDialog::PreNotify(rNEvt);
+-}
+-
+ 
+-void ScAcceptChgDlg::UpdateView()
++void ScChangeAcceptUI::UpdateView()
+ {
+ 	bNeedsUpdate=FALSE;
+ 	DateTime aDateTime;
+@@ -862,7 +918,7 @@ void ScAcceptChgDlg::UpdateView()
+ 	const ScChangeAction* pScChangeAction=NULL;
+ 	bAcceptEnableFlag=TRUE;
+ 	bRejectEnableFlag=TRUE;
+-	SetPointer(Pointer(POINTER_WAIT));
++	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 	pTheView->SetUpdateMode(FALSE);
+ 	BOOL bFilterFlag=pTPFilter->IsDate()||pTPFilter->IsRange()||
+ 					 pTPFilter->IsAuthor()||pTPFilter->IsComment();
+@@ -952,7 +1008,7 @@ void ScAcceptChgDlg::UpdateView()
+ 		pParent->EnableChildsOnDemand(TRUE);
+ 	}
+ 	pTheView->SetUpdateMode(TRUE);
+-	SetPointer(Pointer(POINTER_ARROW));
++	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
+ 	SvLBoxEntry* pEntry=pTheView->First();
+ 	if(pEntry!=NULL)
+ 	{
+@@ -961,33 +1017,21 @@ void ScAcceptChgDlg::UpdateView()
+ }
+ 
+ //----------------------------------------------------------------------------
+-BOOL ScAcceptChgDlg::Close()
+-{
+-	return SfxModelessDialog::Close();
+-}
+-
+-void ScAcceptChgDlg::Resize()
+-{
+-	SfxModelessDialog::Resize();
+-    Size aOutSize=GetOutputSizePixel();
+-    aAcceptChgCtr.SetSizePixel(aOutSize);
+-}
+-
+-IMPL_LINK( ScAcceptChgDlg, MinSizeHandle, SvxAcceptChgCtr*, pCtr )
++IMPL_LINK( ScChangeAcceptUI, MinSizeHandle, SvxAcceptChgCtr*, pCtr )
+ {
+ 	if(pCtr==&aAcceptChgCtr)
+ 	{
+-		if(!IsRollUp())
+-			SetOutputSizePixel(MinSize);
++		if ( !pDialog->IsRollUp() )
++			pDialog->SetOutputSizePixel( MinSize );
+ 	}
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, RefHandle, SvxTPFilter*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, RefHandle, SvxTPFilter*, EMPTYARG )
+ {
+ 	USHORT nId  =ScSimpleRefDlgWrapper::GetChildWindowId();
+ 
+-	ScSimpleRefDlgWrapper::SetDefaultPosSize(GetPosPixel(),GetSizePixel(),TRUE);
++	ScSimpleRefDlgWrapper::SetDefaultPosSize( pDialog->GetPosPixel(), pDialog->GetSizePixel(), TRUE );
+ 
+ 	SC_MOD()->SetRefDialog( nId, TRUE );
+ 
+@@ -999,19 +1043,19 @@ IMPL_LINK( ScAcceptChgDlg, RefHandle, Sv
+ //		bSimpleRefDlgStarted=TRUE;
+ 		USHORT nAcceptId=ScAcceptChgDlgWrapper::GetChildWindowId();
+ 		pViewFrm->ShowChildWindow(nAcceptId,FALSE);
+-		pWnd->SetCloseHdl(LINK( this, ScAcceptChgDlg,RefInfoHandle));
++		pWnd->SetCloseHdl(LINK( this, ScChangeAcceptUI,RefInfoHandle));
+ 		pWnd->SetRefString(pTPFilter->GetRange());
+ 		pWnd->SetAutoReOpen(FALSE);
+ 		Window* pWin=pWnd->GetWindow();
+-		pWin->SetPosSizePixel(GetPosPixel(),GetSizePixel());
+-		Hide();
+-		pWin->SetText(GetText());
++		pWin->SetPosSizePixel( pDialog->GetPosPixel(), pDialog->GetSizePixel() );
++		pDialog->Hide();
++		pWin->SetText( pDialog->GetText() );
+ 		pWnd->StartRefInput();
+ 	}
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, RefInfoHandle, String*, pResult)
++IMPL_LINK( ScChangeAcceptUI, RefInfoHandle, String*, pResult)
+ {
+ 	USHORT nId;
+ 
+@@ -1031,9 +1075,9 @@ IMPL_LINK( ScAcceptChgDlg, RefInfoHandle
+ 		{
+ 			Window* pWin=pWnd->GetWindow();
+ 			Size aWinSize=pWin->GetSizePixel();
+-			aWinSize.Width()=GetSizePixel().Width();
+-			SetPosSizePixel(pWin->GetPosPixel(),aWinSize);
+-			Invalidate();
++			aWinSize.Width() = pDialog->GetSizePixel().Width();
++			pDialog->SetPosSizePixel( pWin->GetPosPixel(), aWinSize );
++			pDialog->Invalidate();
+ 		}
+ 		nId = ScAcceptChgDlgWrapper::GetChildWindowId();
+ 		pViewFrm->ShowChildWindow( nId, TRUE );
+@@ -1046,7 +1090,7 @@ IMPL_LINK( ScAcceptChgDlg, RefInfoHandle
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, FilterHandle, SvxTPFilter*, pRef )
++IMPL_LINK( ScChangeAcceptUI, FilterHandle, SvxTPFilter*, pRef )
+ {
+ 	if(pRef!=NULL)
+ 	{
+@@ -1059,9 +1103,9 @@ IMPL_LINK( ScAcceptChgDlg, FilterHandle,
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, RejectHandle, SvxTPView*, pRef )
++IMPL_LINK( ScChangeAcceptUI, RejectHandle, SvxTPView*, pRef )
+ {
+-	SetPointer(Pointer(POINTER_WAIT));
++	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 
+ 	bIgnoreMsg=TRUE;
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+@@ -1093,14 +1137,14 @@ IMPL_LINK( ScAcceptChgDlg, RejectHandle,
+ 		ClearView();
+ 		UpdateView();
+ 	}
+-	SetPointer(Pointer(POINTER_ARROW));
++	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
+ 
+ 	bIgnoreMsg=FALSE;
+ 	return 0;
+ }
+-IMPL_LINK( ScAcceptChgDlg, AcceptHandle, SvxTPView*, pRef )
++IMPL_LINK( ScChangeAcceptUI, AcceptHandle, SvxTPView*, pRef )
+ {
+-	SetPointer(Pointer(POINTER_WAIT));
++	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+ 	bIgnoreMsg=TRUE;
+@@ -1142,7 +1186,7 @@ IMPL_LINK( ScAcceptChgDlg, AcceptHandle,
+ 	return 0;
+ }
+ 
+-void ScAcceptChgDlg::RejectFiltered()
++void ScChangeAcceptUI::RejectFiltered()
+ {
+ 	if(pDoc==NULL) return;
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+@@ -1165,7 +1209,7 @@ void ScAcceptChgDlg::RejectFiltered()
+ 		pScChangeAction=pScChangeAction->GetPrev();
+ 	}
+ }
+-void ScAcceptChgDlg::AcceptFiltered()
++void ScChangeAcceptUI::AcceptFiltered()
+ {
+ 	if(pDoc==NULL) return;
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+@@ -1189,9 +1233,9 @@ void ScAcceptChgDlg::AcceptFiltered()
+ 	}
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, RejectAllHandle, SvxTPView*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, RejectAllHandle, SvxTPView*, EMPTYARG )
+ {
+-	SetPointer(Pointer(POINTER_WAIT));
++	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 	bIgnoreMsg=TRUE;
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+ 	if(pChanges!=NULL)
+@@ -1214,16 +1258,16 @@ IMPL_LINK( ScAcceptChgDlg, RejectAllHand
+ 		ClearView();
+ 		UpdateView();
+ 	}
+-	SetPointer(Pointer(POINTER_ARROW));
++	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
+ 
+ 	bIgnoreMsg=FALSE;
+ 
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, AcceptAllHandle, SvxTPView*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, AcceptAllHandle, SvxTPView*, EMPTYARG )
+ {
+-	SetPointer(Pointer(POINTER_WAIT));
++	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 
+ 	bIgnoreMsg=TRUE;
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+@@ -1245,12 +1289,12 @@ IMPL_LINK( ScAcceptChgDlg, AcceptAllHand
+ 		UpdateView();
+ 	}
+ 	bIgnoreMsg=FALSE;
+-	SetPointer(Pointer(POINTER_ARROW));
++	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
+ 
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, SelectHandle, SvxRedlinTable*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, SelectHandle, SvxRedlinTable*, EMPTYARG )
+ {
+ 	if(!bNoSelection)
+ 	{
+@@ -1260,7 +1304,7 @@ IMPL_LINK( ScAcceptChgDlg, SelectHandle,
+ 	return 0;
+ }
+ 
+-void ScAcceptChgDlg::GetDependents(  const ScChangeAction* pScChangeAction,
++void ScChangeAcceptUI::GetDependents(  const ScChangeAction* pScChangeAction,
+ 									ScChangeActionTable& aActionTable,
+ 									SvLBoxEntry* pEntry)
+ {
+@@ -1289,7 +1333,7 @@ void ScAcceptChgDlg::GetDependents(  con
+ 	}
+ }
+ 
+-BOOL ScAcceptChgDlg::InsertContentChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
++BOOL ScChangeAcceptUI::InsertContentChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
+ {
+ 	BOOL bTheTestFlag=TRUE;
+ 	ScRedlinData *pEntryData=(ScRedlinData *)(pParent->GetUserData());
+@@ -1363,7 +1407,7 @@ BOOL ScAcceptChgDlg::InsertContentChilds
+ 
+ }
+ 
+-BOOL ScAcceptChgDlg::InsertAcceptedORejected(SvLBoxEntry* pParent)
++BOOL ScChangeAcceptUI::InsertAcceptedORejected(SvLBoxEntry* pParent)
+ {
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+ 	BOOL bTheTestFlag=TRUE;
+@@ -1395,7 +1439,7 @@ BOOL ScAcceptChgDlg::InsertAcceptedOReje
+ 	return bTheTestFlag;
+ }
+ 
+-BOOL ScAcceptChgDlg::InsertChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
++BOOL ScChangeAcceptUI::InsertChilds(ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
+ {
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+ 	BOOL bTheTestFlag=TRUE;
+@@ -1425,7 +1469,7 @@ BOOL ScAcceptChgDlg::InsertChilds(ScChan
+ 	}
+ 	return bTheTestFlag;
+ }
+-BOOL ScAcceptChgDlg::InsertDeletedChilds(const ScChangeAction* pScChangeAction,
++BOOL ScChangeAcceptUI::InsertDeletedChilds(const ScChangeAction* pScChangeAction,
+ 										 ScChangeActionTable* pActionTable,SvLBoxEntry* pParent)
+ {
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+@@ -1468,7 +1512,7 @@ BOOL ScAcceptChgDlg::InsertDeletedChilds
+ 	return bTheTestFlag;
+ }
+ 
+-BOOL ScAcceptChgDlg::Expand(ScChangeTrack* pChanges,const ScChangeAction* pScChangeAction,
++BOOL ScChangeAcceptUI::Expand(ScChangeTrack* pChanges,const ScChangeAction* pScChangeAction,
+ 							SvLBoxEntry* pEntry,BOOL bFilter)
+ {
+ 	BOOL bTheTestFlag=TRUE;
+@@ -1507,11 +1551,11 @@ BOOL ScAcceptChgDlg::Expand(ScChangeTrac
+ 	return bTheTestFlag;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, ExpandingHandle, SvxRedlinTable*, pTable )
++IMPL_LINK( ScChangeAcceptUI, ExpandingHandle, SvxRedlinTable*, pTable )
+ {
+ 	ScChangeTrack* pChanges=pDoc->GetChangeTrack();
+ 	ScChangeAction* pScChangeAction=NULL;
+-	SetPointer(Pointer(POINTER_WAIT));
++	pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 	if(pTable!=NULL && pChanges!=NULL)
+ 	{
+ 		ScChangeActionTable aActionTable;
+@@ -1570,12 +1614,12 @@ IMPL_LINK( ScAcceptChgDlg, ExpandingHand
+ 
+ 		}
+ 	}
+-	SetPointer(Pointer(POINTER_ARROW));
++	pDialog->SetPointer( Pointer( POINTER_ARROW ) );
+ 	return (ULONG) TRUE;
+ }
+ 
+ 
+-void ScAcceptChgDlg::AppendChanges(ScChangeTrack* pChanges,ULONG nStartAction,
++void ScChangeAcceptUI::AppendChanges(ScChangeTrack* pChanges,ULONG nStartAction,
+                                    ULONG nEndAction, ULONG /* nPos */)
+ {
+ 	if(pChanges!=NULL)
+@@ -1585,7 +1629,7 @@ void ScAcceptChgDlg::AppendChanges(ScCha
+ 		const ScChangeAction* pScChangeAction=NULL;
+ 		bAcceptEnableFlag=TRUE;
+ 		bRejectEnableFlag=TRUE;
+-		SetPointer(Pointer(POINTER_WAIT));
++		pDialog->SetPointer( Pointer( POINTER_WAIT ) );
+ 		pTheView->SetUpdateMode(FALSE);
+ 
+ 		ScChangeActionTable ActionTable;
+@@ -1657,11 +1701,11 @@ void ScAcceptChgDlg::AppendChanges(ScCha
+ 		pTPView->EnableRejectAll(bTheFlag);
+ 
+ 		pTheView->SetUpdateMode(TRUE);
+-		SetPointer(Pointer(POINTER_ARROW));
++		pDialog->SetPointer( Pointer( POINTER_ARROW ) );
+ 	}
+ }
+ 
+-void ScAcceptChgDlg::RemoveEntrys(ULONG nStartAction,ULONG nEndAction)
++void ScChangeAcceptUI::RemoveEntrys(ULONG nStartAction,ULONG nEndAction)
+ {
+ 
+ 	pTheView->SetUpdateMode(FALSE);
+@@ -1713,7 +1757,7 @@ void ScAcceptChgDlg::RemoveEntrys(ULONG 
+ 
+ }
+ 
+-void ScAcceptChgDlg::UpdateEntrys(ScChangeTrack* pChgTrack, ULONG nStartAction,ULONG nEndAction)
++void ScChangeAcceptUI::UpdateEntrys(ScChangeTrack* pChgTrack, ULONG nStartAction,ULONG nEndAction)
+ {
+ 	pTheView->SetUpdateMode(FALSE);
+ 
+@@ -1775,9 +1819,9 @@ void ScAcceptChgDlg::UpdateEntrys(ScChan
+ 
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, ChgTrackModHdl, ScChangeTrack*, pChgTrack)
++IMPL_LINK( ScChangeAcceptUI, ChgTrackModHdl, ScChangeTrack*, pChgTrack)
+ {
+-//	if(bScAcceptChgDlgIsDead) return 0;
++//	if(bScChangeAcceptUIIsDead) return 0;
+ 
+ 	ScChangeTrackMsgQueue& aMsgQueue= pChgTrack->GetMsgQueue();
+ 
+@@ -1812,7 +1856,7 @@ IMPL_LINK( ScAcceptChgDlg, ChgTrackModHd
+ 
+ 	return 0;
+ }
+-IMPL_LINK( ScAcceptChgDlg, ReOpenTimerHdl, Timer*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, ReOpenTimerHdl, Timer*, EMPTYARG )
+ {
+ 	ScSimpleRefDlgWrapper::SetAutoReOpen(TRUE);
+ 	aAcceptChgCtr.ShowFilterPage();
+@@ -1821,7 +1865,7 @@ IMPL_LINK( ScAcceptChgDlg, ReOpenTimerHd
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, UpdateSelectionHdl, Timer*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, UpdateSelectionHdl, Timer*, EMPTYARG )
+ {
+     ScTabView* pTabView = pViewData->GetView();
+ 
+@@ -1844,7 +1888,7 @@ IMPL_LINK( ScAcceptChgDlg, UpdateSelecti
+                     (!pEntryData->bDisabled || pScChangeAction->IsVisible()) )
+             {
+                 const ScBigRange& rBigRange = pScChangeAction->GetBigRange();
+-                if( rBigRange.IsValid( pDoc ) && IsActive() )
++                if( rBigRange.IsValid( pDoc ) && pDialog->IsActive() )
+                 {
+                     BOOL bSetCursor = !pTheView->NextSelected( pEntry );
+                     pTabView->MarkRange( rBigRange.MakeRange(), bSetCursor, bContMark );
+@@ -1870,7 +1914,7 @@ IMPL_LINK( ScAcceptChgDlg, UpdateSelecti
+ 	return 0;
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, CommandHdl, Control*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, CommandHdl, Control*, EMPTYARG )
+ {
+ 
+ 	const CommandEvent aCEvt(pTheView->GetCommandEvent());
+@@ -1920,7 +1964,7 @@ IMPL_LINK( ScAcceptChgDlg, CommandHdl, C
+ 			}
+ 		}
+ 
+-		USHORT nCommand=aPopup.Execute( this, GetPointerPosPixel() );
++		USHORT nCommand=aPopup.Execute( pDialog, pDialog->GetPointerPosPixel() );
+ 
+ 
+ 		if(nCommand)
+@@ -1935,7 +1979,7 @@ IMPL_LINK( ScAcceptChgDlg, CommandHdl, C
+ 						ScChangeAction* pScChangeAction=
+ 								(ScChangeAction*) pEntryData->pData;
+ 
+-						pViewData->GetDocShell()->ExecuteChangeCommentDialog( pScChangeAction, this,FALSE);
++						pViewData->GetDocShell()->ExecuteChangeCommentDialog( pScChangeAction, pDialog, FALSE);
+ 					}
+ 				}
+ 			}
+@@ -1959,70 +2003,9 @@ IMPL_LINK( ScAcceptChgDlg, CommandHdl, C
+ 	return 0;
+ }
+ 
+-void ScAcceptChgDlg::Initialize(SfxChildWinInfo *pInfo)
+-{
+-	String aStr;
+-	if(pInfo!=NULL)
+-	{
+-		if ( pInfo->aExtraString.Len() )
+-		{
+-			xub_StrLen nPos = pInfo->aExtraString.Search(
+-				String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("AcceptChgDat:")));
+-
+-			// Versuche, den Alignment-String "ALIGN:(...)" einzulesen; wenn
+-			// er nicht vorhanden ist, liegt eine "altere Version vor
+-			if ( nPos != STRING_NOTFOUND )
+-			{
+-				xub_StrLen n1 = pInfo->aExtraString.Search('(', nPos);
+-				if ( n1 != STRING_NOTFOUND )
+-				{
+-					xub_StrLen n2 = pInfo->aExtraString.Search(')', n1);
+-					if ( n2 != STRING_NOTFOUND )
+-					{
+-						// Alignment-String herausschneiden
+-						aStr = pInfo->aExtraString.Copy(nPos, n2 - nPos + 1);
+-						pInfo->aExtraString.Erase(nPos, n2 - nPos + 1);
+-						aStr.Erase(0, n1-nPos+1);
+-					}
+-				}
+-			}
+-		}
+-	}
+-	SfxModelessDialog::Initialize(pInfo);
+-
+-	if ( aStr.Len())
+-	{
+-		USHORT nCount=(USHORT)aStr.ToInt32();
+-
+-		for(USHORT i=0;i<nCount;i++)
+-		{
+-			xub_StrLen n1 = aStr.Search(';');
+-			aStr.Erase(0, n1+1);
+-			pTheView->SetTab(i,(USHORT)aStr.ToInt32(),MAP_PIXEL);
+-		}
+-	}
+-}
+-
+ //-------------------------------------------------------------------------
+ 
+-void ScAcceptChgDlg::FillInfo(SfxChildWinInfo& rInfo) const
+-{
+-	SfxModelessDialog::FillInfo(rInfo);
+-	rInfo.aExtraString.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "AcceptChgDat:(" ));
+-
+-	USHORT	nCount=pTheView->TabCount();
+-
+-	rInfo.aExtraString += String::CreateFromInt32(nCount);
+-	rInfo.aExtraString += ';';
+-	for(USHORT i=0;i<nCount;i++)
+-	{
+-		rInfo.aExtraString += String::CreateFromInt32(pTheView->GetTab(i));
+-		rInfo.aExtraString += ';';
+-	}
+-	rInfo.aExtraString += ')';
+-}
+-
+-void ScAcceptChgDlg::InitFilter()
++void ScChangeAcceptUI::InitFilter()
+ {
+ 	if(pTPFilter->IsDate()||pTPFilter->IsRange()||
+ 		pTPFilter->IsAuthor()||pTPFilter->IsComment())
+@@ -2047,11 +2030,11 @@ void ScAcceptChgDlg::InitFilter()
+ 	}
+ }
+ 
+-void ScAcceptChgDlg::SetMyStaticData()
++void ScChangeAcceptUI::SetMyStaticData()
+ {
+ }
+ 
+-IMPL_LINK( ScAcceptChgDlg, FilterModified, SvxTPFilter*, EMPTYARG )
++IMPL_LINK( ScChangeAcceptUI, FilterModified, SvxTPFilter*, EMPTYARG )
+ {
+ 	return 0;
+ }
+@@ -2059,7 +2042,7 @@ IMPL_LINK( ScAcceptChgDlg, FilterModifie
+ #define CALC_DATE		3
+ #define CALC_POS		1
+ 
+-IMPL_LINK( ScAcceptChgDlg, ColCompareHdl, SvSortData*, pSortData )
++IMPL_LINK( ScChangeAcceptUI, ColCompareHdl, SvSortData*, pSortData )
+ {
+ 	StringCompare eCompare=COMPARE_EQUAL;
+ 	SCCOL nSortCol= static_cast<SCCOL>(pTheView->GetSortedCol());
+@@ -2147,3 +2130,80 @@ IMPL_LINK( ScAcceptChgDlg, ColCompareHdl
+ 	return eCompare;
+ }
+ 
++
++//============================================================================
++//	class ScAcceptChgDlg
++//----------------------------------------------------------------------------
++ScAcceptChgDlg::ScAcceptChgDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
++								ScViewData* ptrViewData )
++
++	:	SfxModelessDialog( pB, pCW, pParent, ScResId( RID_SCDLG_CHANGES ) ),
++		pImpl( new ScChangeAcceptUI( this, ptrViewData ) )
++{
++	FreeResource();
++}
++
++ScAcceptChgDlg::~ScAcceptChgDlg()
++{
++	delete pImpl, pImpl = NULL;
++}
++
++void ScAcceptChgDlg::ReInit( ScViewData* ptrViewData )
++{
++	if ( pImpl )
++		pImpl->ReInit( ptrViewData );
++}
++
++BOOL ScAcceptChgDlg::Close()
++{
++	return SfxModelessDialog::Close();
++}
++
++void ScAcceptChgDlg::Resize()
++{
++	SfxModelessDialog::Resize();
++	pImpl->Resize();
++}
++
++long ScAcceptChgDlg::PreNotify( NotifyEvent& rNEvt )
++{
++	if ( rNEvt.GetType() == EVENT_GETFOCUS )
++		pImpl->Update();
++
++	return SfxModelessDialog::PreNotify(rNEvt);
++}
++
++void ScAcceptChgDlg::Initialize( SfxChildWinInfo *pInfo )
++{
++	if ( pInfo != NULL )
++		pImpl->Initialize( pInfo->aExtraString );
++
++	SfxModelessDialog::Initialize( pInfo );
++}
++
++void ScAcceptChgDlg::FillInfo( SfxChildWinInfo& rInfo ) const
++{
++	SfxModelessDialog::FillInfo( rInfo );
++	pImpl->FillInfo( rInfo.aExtraString );
++}
++
++//============================================================================
++//	class ScAcceptChgModalDlg
++//----------------------------------------------------------------------------
++ScAcceptChgModalDlg::ScAcceptChgModalDlg( Window *pParent, ScViewData* ptrViewData )
++	:	SfxModalDialog( pParent, ScResId( RID_SCDLG_CHANGES_MODAL ) ),
++		pImpl( new ScChangeAcceptUI( this, ptrViewData ) )
++{
++	FreeResource();
++}
++
++ScAcceptChgModalDlg::~ScAcceptChgModalDlg()
++{
++	delete pImpl, pImpl = NULL;
++}
++
++void ScAcceptChgModalDlg::Resize()
++{
++	SfxModalDialog::Resize();
++	pImpl->Resize();
++}
+diff -pur sc.orig/source/ui/miscdlgs/acredlin.src sc/source/ui/miscdlgs/acredlin.src
+--- sc.orig/source/ui/miscdlgs/acredlin.src	2005-09-23 17:02:36.000000000 +0200
++++ sc/source/ui/miscdlgs/acredlin.src	2006-12-04 16:31:59.000000000 +0100
+@@ -34,136 +34,145 @@
+  ************************************************************************/
+ 
+ #include "acredlin.hrc"
++
++#define MODAL_OR_MODELESS_CHANGES_DIALOG \
++	OutputSize = TRUE ; \
++	HelpId = FID_CHG_ACCEPT ; \
++	Hide = TRUE ; \
++	SVLook = TRUE ; \
++	Size = MAP_APPFONT ( 282 , 142 ) ; \
++	Moveable = TRUE ; \
++	Sizeable = TRUE ; \
++	Closeable = TRUE ; \
++	Control CTR_REDLINING \
++	{ \
++		HelpId = HID_SC_REDLIN_CTR ; \
++		Pos = MAP_APPFONT ( 2 , 2 ) ; \
++		Size = MAP_APPFONT ( 270 , 105 ) ; \
++	}; \
++	CancelButton BTN_CANCEL \
++	{ \
++		Pos = MAP_APPFONT ( 271 , 105 ) ; \
++		Size = MAP_APPFONT ( 1 , 1 ) ; \
++		TabStop = FALSE ; \
++	}; \
++	FixedText FT_ASSIGN \
++	{ \
++		Hide = TRUE ; \
++		Border = TRUE ; \
++		Pos = MAP_APPFONT ( 12 , 105 ) ; \
++		Size = MAP_APPFONT ( 128 , 12 ) ; \
++		TabStop = TRUE ; \
++		Text [ en-US ] = "Range" ; \
++	}; \
++	Edit ED_ASSIGN \
++	{ \
++		Hide = TRUE ; \
++		Border = TRUE ; \
++		Pos = MAP_APPFONT ( 12 , 119 ) ; \
++		Size = MAP_APPFONT ( 128 , 12 ) ; \
++		TabStop = TRUE ; \
++	}; \
++	ImageButton RB_ASSIGN \
++	{ \
++		Hide = TRUE ; \
++		Pos = MAP_APPFONT ( 142 , 118 ) ; \
++		Size = MAP_APPFONT ( 13 , 15 ) ; \
++		TabStop = FALSE ; \
++		QuickHelpText [ en-US ] = "Minimize/Maximize" ; \
++	}; \
++	String STR_INSERT_COLS \
++	{ \
++		Text [ en-US ] = "Column inserted" ; \
++	}; \
++	String STR_INSERT_ROWS \
++	{ \
++		Text [ en-US ] = "Row inserted " ; \
++	}; \
++	String STR_INSERT_TABS \
++	{ \
++		Text [ en-US ] = "Sheet inserted " ; \
++	}; \
++	String STR_DELETE_COLS \
++	{ \
++		Text [ en-US ] = "Column deleted" ; \
++	}; \
++	String STR_DELETE_ROWS \
++	{ \
++		Text [ en-US ] = "Row deleted" ; \
++	}; \
++	String STR_DELETE_TABS \
++	{ \
++		Text [ en-US ] = "Sheet deleted" ; \
++	}; \
++	String STR_MOVE \
++	{ \
++		Text [ en-US ] = "Range moved" ; \
++	}; \
++	String STR_CONTENT \
++	{ \
++		Text [ en-US ] = "Changed contents" ; \
++	}; \
++	String STR_CONTENT_WITH_CHILD \
++	{ \
++		Text [ en-US ] = "Changed contents" ; \
++	}; \
++	String STR_CHILD_CONTENT \
++	{ \
++		Text [ en-US ] = "Changed to " ; \
++	}; \
++	String STR_CHILD_ORGCONTENT \
++	{ \
++		Text [ en-US ] = "Original" ; \
++	}; \
++	String STR_REJECT \
++	{ \
++		Text [ en-US ] = "Changes rejected" ; \
++	}; \
++	String STR_ACCEPTED \
++	{ \
++		Text [ en-US ] = "Accepted" ; \
++	}; \
++	String STR_REJECTED \
++	{ \
++		Text [ en-US ] = "Rejected" ; \
++	}; \
++	String STR_NO_ENTRY \
++	{ \
++		Text [ en-US ] = "No Entry" ; \
++	}; \
++	String STR_EMPTY \
++	{ \
++		Text [ en-US ] = "<empty>" ; \
++	}; \
++	Bitmap BMP_STR_CLOSE \
++	{ \
++		File = "dir-clos.bmp" ; \
++	}; \
++	Bitmap BMP_STR_OPEN \
++	{ \
++		File = "dir-open.bmp" ; \
++	}; \
++	Bitmap BMP_STR_END \
++	{ \
++		File = "basobj2.bmp" ; \
++	}; \
++	Bitmap BMP_STR_ERROR \
++	{ \
++		File = "basbrk.bmp" ; \
++	}; \
++	Text [ en-US ] = "Accept or Reject Changes" ; \
++
+ ModelessDialog RID_SCDLG_CHANGES
+ {
+-	OutputSize = TRUE ;
+-	HelpId = FID_CHG_ACCEPT ;
+-	Hide = TRUE ;
+-	SVLook = TRUE ;
+-	Size = MAP_APPFONT ( 282 , 142 ) ;
+-	Moveable = TRUE ;
+-	Sizeable = TRUE ;
+-	Closeable = TRUE ;
+-	 // Dieser Dialog hat einen Cancel-Button !
+-	Control CTR_REDLINING
+-	{
+-		HelpId = HID_SC_REDLIN_CTR ;
+-		Pos = MAP_APPFONT ( 2 , 2 ) ;
+-		Size = MAP_APPFONT ( 270 , 105 ) ;
+-	};
+-	CancelButton BTN_CANCEL
+-	{
+-		Pos = MAP_APPFONT ( 271 , 105 ) ;
+-		Size = MAP_APPFONT ( 1 , 1 ) ;
+-		TabStop = FALSE ;
+-	};
+-	FixedText FT_ASSIGN
+-	{
+-		Hide = TRUE ;
+-		Border = TRUE ;
+-		Pos = MAP_APPFONT ( 12 , 105 ) ;
+-		Size = MAP_APPFONT ( 128 , 12 ) ;
+-		TabStop = TRUE ;
+-		Text [ en-US ] = "Range" ;
+-	};
+-	Edit ED_ASSIGN
+-	{
+-		Hide = TRUE ;
+-		Border = TRUE ;
+-		Pos = MAP_APPFONT ( 12 , 119 ) ;
+-		Size = MAP_APPFONT ( 128 , 12 ) ;
+-		TabStop = TRUE ;
+-	};
+-	ImageButton RB_ASSIGN
+-	{
+-		Hide = TRUE ;
+-		Pos = MAP_APPFONT ( 142 , 118 ) ;
+-		Size = MAP_APPFONT ( 13 , 15 ) ;
+-		TabStop = FALSE ;
+-		QuickHelpText [ en-US ] = "Minimize/Maximize" ;
+-	};
+-	String STR_INSERT_COLS
+-	{
+-		Text [ en-US ] = "Column inserted" ;
+-	};
+-	String STR_INSERT_ROWS
+-	{
+-		Text [ en-US ] = "Row inserted " ;
+-	};
+-	String STR_INSERT_TABS
+-	{
+-		Text [ en-US ] = "Sheet inserted " ;
+-	};
+-	String STR_DELETE_COLS
+-	{
+-		Text [ en-US ] = "Column deleted" ;
+-	};
+-	String STR_DELETE_ROWS
+-	{
+-		Text [ en-US ] = "Row deleted" ;
+-	};
+-	String STR_DELETE_TABS
+-	{
+-		Text [ en-US ] = "Sheet deleted" ;
+-	};
+-	String STR_MOVE
+-	{
+-		Text [ en-US ] = "Range moved" ;
+-	};
+-	String STR_CONTENT
+-	{
+-		Text [ en-US ] = "Changed contents" ;
+-	};
+-	String STR_CONTENT_WITH_CHILD
+-	{
+-		Text [ en-US ] = "Changed contents" ;
+-	};
+-	String STR_CHILD_CONTENT
+-	{
+-		Text [ en-US ] = "Changed to " ;
+-	};
+-	String STR_CHILD_ORGCONTENT
+-	{
+-		Text [ en-US ] = "Original" ;
+-	};
+-	String STR_REJECT
+-	{
+-		Text [ en-US ] = "Changes rejected" ;
+-	};
+-	String STR_ACCEPTED
+-	{
+-		Text [ en-US ] = "Accepted" ;
+-	};
+-	String STR_REJECTED
+-	{
+-		Text [ en-US ] = "Rejected" ;
+-	};
+-	String STR_NO_ENTRY
+-	{
+-		Text [ en-US ] = "No Entry" ;
+-	};
+-	String STR_EMPTY
+-	{
+-		Text [ en-US ] = "<empty>" ;
+-	};
+-	Bitmap BMP_STR_CLOSE
+-	{
+-		File = "dir-clos.bmp" ;
+-	};
+-	Bitmap BMP_STR_OPEN
+-	{
+-		File = "dir-open.bmp" ;
+-	};
+-	Bitmap BMP_STR_END
+-	{
+-		File = "basobj2.bmp" ;
+-	};
+-	Bitmap BMP_STR_ERROR
+-	{
+-		File = "basbrk.bmp" ;
+-	};
+-	Text [ en-US ] = "Accept or Reject Changes" ;
++	MODAL_OR_MODELESS_CHANGES_DIALOG
+ };
++
++ModalDialog RID_SCDLG_CHANGES_MODAL
++{
++	MODAL_OR_MODELESS_CHANGES_DIALOG
++};
++
+ Menu RID_POPUP_CHANGES
+ {
+ 	ItemList =
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-print-selected-sheets.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-print-selected-sheets.diff
@@ -0,0 +1,46 @@
+Index: sc/source/ui/view/preview.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/preview.cxx,v
+retrieving revision 1.32
+diff -u -p -r1.32 preview.cxx
+--- sc/source/ui/view/preview.cxx	10 May 2007 17:01:54 -0000	1.32
++++ sc/source/ui/view/preview.cxx	15 Dec 2007 03:19:12 -0000
+@@ -231,8 +231,17 @@ void ScPreview::CalcPages( SCTAB nToWhic
+ 	//	but always all sheets are used (there is no selected sheet)
+ 	ScPrintOptions aOptions = SC_MOD()->GetPrintOptions();
+ 
++	ScMarkData aMarkData;
++	aMarkData.SelectTable( ScDocShell::GetCurTab(), TRUE );
++
+ 	for (SCTAB i=nStart; i<nAnz; i++)
+ 	{
++		if (!aOptions.GetAllSheets() && !aMarkData.GetTableSelect( i )) {
++			nPages[i] = 0;
++			nFirstAttr[i] = 0;
++			continue;
++		}
++
+ 		long nAttrPage = i > 0 ? nFirstAttr[i-1] : 1;
+ 
+ 		long nThisStart = nTotalPages;
+Index: sc/source/ui/view/tabvwsh4.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/tabvwsh4.cxx,v
+retrieving revision 1.70
+diff -u -p -r1.70 tabvwsh4.cxx
+--- sc/source/ui/view/tabvwsh4.cxx	26 Nov 2007 18:43:29 -0000	1.70
++++ sc/source/ui/view/tabvwsh4.cxx	15 Dec 2007 03:19:14 -0000
+@@ -1207,8 +1215,13 @@ PrintDialog* __EXPORT ScTabViewShell::Cr
+     bool bAllTabs = SC_MOD()->GetPrintOptions().GetAllSheets();
+     pDlg->CheckSheetRange( bAllTabs ? PRINTSHEETS_ALL : PRINTSHEETS_SELECTED_SHEETS );
+ 
++	ScMarkData aMarkData;
++	aMarkData.SelectTable( GetViewData()->GetTabNo(), TRUE );
++
+ 	for ( SCTAB i=0; i<nTabCount; i++ )
+ 	{
++		if ( !bAllTabs && !aMarkData.GetTableSelect( i ) )
++			continue;
+ 		ScPrintFunc aPrintFunc( pDocShell, pPrinter, i );
+ 		nDocPageMax += aPrintFunc.GetTotalPages();
+ 	}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wpsimport-config_office.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wpsimport-config_office.diff
@@ -0,0 +1,49 @@
+--- config_office/configure.in	25 Apr 2007 15:53:53 -0000	1.201
++++ config_office/configure.in	7 May 2007 09:28:02 -0000	1.189.2.5
+@@ -296,6 +296,9 @@ AC_ARG_WITH(system-freetype,
+ AC_ARG_WITH(system-libwpd,
+ [  --with-system-libwpd    Use libwpd already on system
+ ],,)
++AC_ARG_WITH(system-libwps,
++[  --with-system-libwps    Use libwps already on system
++],,)
+ AC_ARG_WITH(system-libxml,
+ [  --with-system-libxml    Use libxml already on system
+ ],,)
+@@ -3000,6 +3003,24 @@ AC_SUBST(LIBWPD_CFLAGS)
+ AC_SUBST(LIBWPD_LIBS)
+ 
+ dnl ===================================================================
++dnl Check for system libwps
++dnl ===================================================================
++AC_MSG_CHECKING([which libwps to use])
++if test -n "$with_system_libwps" -o -n "$with_system_libs" && \
++        test "$with_system_libwps" != "no"; then
++    AC_MSG_RESULT([external])
++    SYSTEM_LIBWPS=YES
++    PKG_CHECK_MODULES( LIBWPS, libwps-0.1 )
++else
++    AC_MSG_RESULT([internal])
++    SYSTEM_LIBWPS=NO
++    BUILD_TYPE="$BUILD_TYPE LIBWPS"
++fi
++AC_SUBST(SYSTEM_LIBWPS)
++AC_SUBST(LIBWPS_CFLAGS)
++AC_SUBST(LIBWPS_LIBS)
++
++dnl ===================================================================
+ dnl Check whether freetype2 supports emboldening
+ dnl ===================================================================
+ if test "$SYSTEM_FREETYPE" = "YES" ; then
+--- config_office/set_soenv.in	25 Apr 2007 15:54:09 -0000	1.141
++++ config_office/set_soenv.in	7 May 2007 09:28:12 -0000	1.127.2.5
+@@ -1817,6 +1817,9 @@ ToFile( "CAIRO_LIBS",        "@CAIRO_LIB
+ ToFile( "SYSTEM_LIBWPD",     "@SYSTEM_LIBWPD@",    "e" );
+ ToFile( "LIBWPD_CFLAGS",     "@LIBWPD_CFLAGS@",    "e" );
+ ToFile( "LIBWPD_LIBS",       "@LIBWPD_LIBS@",      "e" );
++ToFile( "SYSTEM_LIBWPS",     "@SYSTEM_LIBWPS@",    "e" );
++ToFile( "LIBWPS_CFLAGS",     "@LIBWPS_CFLAGS@",    "e" );
++ToFile( "LIBWPS_LIBS",       "@LIBWPS_LIBS@",      "e" );
+ ToFile( "SYSTEM_LIBXML",     "@SYSTEM_LIBXML@",    "e" );
+ ToFile( "USE_FT_EMBOLDEN",   "@USE_FT_EMBOLDEN@",  "e" );
+ ToFile( "LIBXML_CFLAGS",     "@LIBXML_CFLAGS@",    "e" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-slideshow-slideshowview-transformation-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-slideshow-slideshowview-transformation-fix.diff
@@ -0,0 +1,31 @@
+diff -rup sd/source/ui/slideshow-orig/slideshowviewimpl.cxx sd/source/ui/slideshow/slideshowviewimpl.cxx
+--- sd/source/ui/slideshow-orig/slideshowviewimpl.cxx	2008-02-22 15:31:52.000000000 +0100
++++ sd/source/ui/slideshow/slideshowviewimpl.cxx	2008-02-22 15:31:26.000000000 +0100
+@@ -368,13 +368,7 @@ geometry::AffineMatrix2D SAL_CALL SlideS
+     ::osl::MutexGuard aGuard( m_aMutex );
+ 	::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ 
+-	const Size& rTmpSize( mrOutputWindow.GetSizePixel() );
+-    
+-    // Reduce available width by one, as the slides might actually
+-    // render one pixel wider and higher as aPageSize below specifies
+-    // (when shapes of page size have visible border lines)
+-	const Size  aWindowSize( rTmpSize.Width()-1, 
+-                             rTmpSize.Height()-1 );
++	const Size aWindowSize( mrOutputWindow.GetSizePixel() );
+     Size aOutputSize( aWindowSize );
+ 
+ 	if( meAnimationMode != ANIMATIONMODE_SHOW )
+@@ -401,6 +395,12 @@ geometry::AffineMatrix2D SAL_CALL SlideS
+ 	Point aOutputOffset( ( aWindowSize.Width() - aOutputSize.Width() ) >> 1,
+ 							( aWindowSize.Height() - aOutputSize.Height() ) >> 1 );
+ 
++    // Reduce available width by one, as the slides might actually
++    // render one pixel wider and higher as aPageSize below specifies
++    // (when shapes of page size have visible border lines)
++    aOutputSize.Width() --;
++    aOutputSize.Height() --;
++    
+     ::basegfx::B2DHomMatrix aMatrix;
+ 
+ 	maPresentationArea = Rectangle( aOutputOffset, aOutputSize );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-input-field-inline-edit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-input-field-inline-edit.diff
@@ -0,0 +1,191 @@
+diff -urNp sworig/source/ui/docvw/edtwin.cxx sw/source/ui/docvw/edtwin.cxx
+--- sworig/source/ui/docvw/edtwin.cxx	2006-05-05 17:15:28.000000000 +0800
++++ sw/source/ui/docvw/edtwin.cxx	2006-08-15 11:57:50.000000000 +0800
+@@ -201,6 +201,11 @@
+ #ifndef IDOCUMENTSETTINGACCESS_HXX_INCLUDED
+ #include <IDocumentSettingAccess.hxx>
+ #endif
++
++#ifndef _EXPFLD_HXX
++#include <expfld.hxx>
++#endif
++
+ #ifndef _FLDBAS_HXX //autogen
+ #include <fldbas.hxx>
+ #endif
+@@ -1712,6 +1717,8 @@ KEYINPUT_CHECKTABLE:
+ 				case KEY_LEFT:
+ 				case KEY_LEFT | KEY_MOD1:
+                 {
++                    if( rSh.HasReadonlySel() )
++                        goto READONLY_SECTION_WITH_FIELD;
+                     BOOL bMod1 = 0 != (rKeyCode.GetModifier() & KEY_MOD1);
+                     if(!bMod1)
+                     {
+@@ -1790,8 +1797,9 @@ KEYINPUT_CHECKTABLE_INSDEL:
+ 						eKeyState = KS_TblColCellInsDel;
+ 					}
+ 					break;
+-
+                 case KEY_DELETE:
++                    if( rSh.HasReadonlySel() )
++                            goto READONLY_SECTION_WITH_FIELD;
+                     if (rSh.IsInFrontOfLabel() &&
+                         rSh.NumOrNoNum(FALSE))
+                         eKeyState = KS_NumOrNoNum;
+@@ -1854,6 +1862,8 @@ KEYINPUT_CHECKTABLE_INSDEL:
+ 						else
+ 							eNextKeyState = eKeyState, eKeyState = KS_CheckAutoCorrect;
+ 					}
++					else
++					    goto READONLY_SECTION_WITH_FIELD;
+ 					break;
+ 
+ 				case KEY_RETURN | KEY_MOD2:		// ALT-Return
+@@ -1958,10 +1968,14 @@ KEYINPUT_CHECKTABLE_INSDEL:
+                             // <--
+                         }
+ 					}
++					else
++					    goto READONLY_SECTION_WITH_FIELD;
+ 					break;
+ 
+ 				case KEY_RIGHT:
+ 					{
++                        if( rSh.HasReadonlySel() )
++                            goto READONLY_SECTION_WITH_FIELD;
+                         SwPaM * pCrsr = rSh.GetCrsr(); // #i27615#
+                         BOOL bMod1 = 0 !=
+                             (rKeyCode.GetModifier() & KEY_MOD1);
+@@ -2113,6 +2127,7 @@ KEYINPUT_CHECKTABLE_INSDEL:
+                 }
+             }
+ 			break;
++			
+         case KS_CheckDocReadOnlyKeys:
+ 			{
+ 				eKeyState = KS_KeyToView;
+@@ -2317,8 +2332,122 @@ KEYINPUT_CHECKTABLE_INSDEL:
+ 			eKeyState = KS_Ende;
+ 		}
+ 		else
++		
++READONLY_SECTION_WITH_FIELD:
+ 		{
+-			InfoBox( this, SW_RES( MSG_READONLY_CONTENT )).Execute();
++			USHORT nKeyCode = rKeyCode.GetCode();
++			
++			SwField* pField = NULL;
++			static BOOL isNewFld = FALSE; 
++			
++			if (( nKeyCode == KEY_TAB ) || ( nKeyCode == KEY_RIGHT ) || ( nKeyCode == KEY_RETURN ))
++			{
++			    //GetView().GetViewFrame()->GetDispatcher()->Execute(FN_GOTO_NEXT_INPUTFLD);
++			    SwFieldType* pFld = rSh.GetFldType( 0, RES_INPUTFLD );
++			    if( pFld )
++	            {
++	                if (rSh.MoveFldType( pFld, TRUE ))
++	                    isNewFld = TRUE;
++	            }
++			}
++			else if ( ( nKeyCode == KEY_LEFT ) )
++			{
++			    SwFieldType* pFld = rSh.GetFldType( 0, RES_INPUTFLD );
++			    if( pFld )
++	            {
++	                if (rSh.MoveFldType( pFld, FALSE ))
++	                    isNewFld = TRUE;
++	            }
++			}
++			else if ( ( nKeyCode == KEY_BACKSPACE ) )
++			{
++			    pField = rSh.GetCurFld();
++			    //if the current field is inputfield
++			    if (pField && (pField->GetTypeId() == TYP_INPUTFLD) )
++			    {
++			        rSh.StartAllAction();
++	                BOOL bModified = FALSE;
++	                
++			        SwInputField* pInpFld = (SwInputField*)pField;
++			        String aTmp = pInpFld->GetPar1();
++			        if ( aTmp.Len() > 0 )
++			        {
++			            aTmp = aTmp.Reverse();
++			            aTmp = aTmp.Erase( 0, 1 );
++			            aTmp = aTmp.Reverse();
++			            pInpFld->SetPar1(aTmp);
++			        }
++			        
++			        rSh.SwEditShell::UpdateFlds(*pInpFld);
++			        rSh.SetUndoNoResetModified();
++
++	                rSh.EndAllAction();
++			    }
++			}
++			else if ( ( nKeyCode == KEY_DELETE ) )
++			{
++			    pField = rSh.GetCurFld();
++			    //if the current field is inputfield
++			    if (pField && (pField->GetTypeId() == TYP_INPUTFLD) )
++			    {
++			        rSh.StartAllAction();
++	                BOOL bModified = FALSE;
++	                
++			        SwInputField* pInpFld = (SwInputField*)pField;
++			        String aTmp = pInpFld->GetPar1();
++			        if ( aTmp.Len() > 0 )
++			        {
++			            aTmp = aTmp.Erase( 0, 1 );
++			            pInpFld->SetPar1(aTmp);
++			        }
++			        
++			        rSh.SwEditShell::UpdateFlds(*pInpFld);
++			        rSh.SetUndoNoResetModified();
++
++	                rSh.EndAllAction();
++			    }
++			}
++			else
++			{
++			    //get the current field
++			    pField = rSh.GetCurFld();
++			    //if cann't find input field in current position, jump to the next field
++			    if (!pField || (pField->GetTypeId() != TYP_INPUTFLD))
++			    {
++	                SwFieldType* pFld = rSh.GetFldType( 0, RES_INPUTFLD );
++			        if( pFld )
++	                {
++	                    if (rSh.MoveFldType( pFld, TRUE ))
++	                    {
++	                        isNewFld = TRUE;
++                            pField = rSh.GetCurFld();
++	                    }
++	                }
++	            }
++	            //if we have an inputfield in current position, otherwise there is no inputfield in this document
++			    if (pField && (pField->GetTypeId() == TYP_INPUTFLD) )
++			    {		        
++			        rSh.StartAllAction();
++	                BOOL bModified = FALSE;
++	                
++			        SwInputField* pInpFld = (SwInputField*)pField;
++			        String aTmp = pInpFld->GetPar1();
++			        if (isNewFld)
++			        {
++			            pInpFld->SetPar1(aCh);
++			            isNewFld = FALSE;
++			        }
++			        else
++				        pInpFld->SetPar1(aTmp.Append(aCh));
++			        
++			        rSh.SwEditShell::UpdateFlds(*pInpFld);
++			        rSh.SetUndoNoResetModified();
++
++	                rSh.EndAllAction();
++			    }
++			    else
++			        InfoBox( this, SW_RES( MSG_READONLY_CONTENT )).Execute();
++			}
+ // ???			Window::KeyInput( aKeyEvent );
+ 			eKeyState = KS_Ende;
+ 		}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/store-core.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/store-core.diff
@@ -0,0 +1,4140 @@
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/store.h store/inc/store/store.h
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/store.h	2005-09-08 10:39:22.000000000 +0200
++++ store/inc/store/store.h	2007-03-14 10:21:25.000000000 +0100
+@@ -102,7 +102,8 @@ storeError SAL_CALL store_openFile (
+ 	rtl_uString     *pFilename,
+ 	storeAccessMode  eAccessMode,
+ 	sal_uInt16       nPageSize,
+-	storeFileHandle *phFile
++	storeFileHandle *phFile,
++    sal_uInt16       nFormatVersion = STORE_FORMAT_V1
+ ) SAL_THROW_EXTERN_C();
+ 
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/store.hxx store/inc/store/store.hxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/store.hxx	2005-09-08 10:39:40.000000000 +0200
++++ store/inc/store/store.hxx	2007-03-14 10:04:31.000000000 +0100
+@@ -294,7 +294,8 @@ public:
+ 	inline storeError create (
+ 		const rtl::OUString &rFilename,
+ 		storeAccessMode      eAccessMode,
+-		sal_uInt16           nPageSize = STORE_DEFAULT_PAGESIZE
++		sal_uInt16           nPageSize = STORE_DEFAULT_PAGESIZE,
++        sal_uInt16           nFormatVersion = STORE_FORMAT_V1
+ 	) SAL_THROW(());
+ 
+ 	/** Open the temporary file in memory.
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/store.inl store/inc/store/store.inl
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/store.inl	2005-09-08 10:40:01.000000000 +0200
++++ store/inc/store/store.inl	2007-03-14 15:45:47.000000000 +0100
+@@ -326,14 +326,15 @@ inline sal_Bool OStoreFile::isValid (voi
+ inline storeError OStoreFile::create (
+ 	const rtl::OUString &rFilename,
+ 	storeAccessMode      eAccessMode,
+-	sal_uInt16           nPageSize) SAL_THROW(())
++	sal_uInt16           nPageSize,
++	sal_uInt16           nFormatVersion) SAL_THROW(())
+ {
+ 	if (m_hImpl)
+ 	{
+ 		store_releaseHandle (m_hImpl);
+ 		m_hImpl = 0;
+ 	}
+-	return store_openFile (rFilename.pData, eAccessMode, nPageSize, &m_hImpl);
++	return store_openFile (rFilename.pData, eAccessMode, nPageSize, &m_hImpl, nFormatVersion);
+ }
+ 
+ inline storeError OStoreFile::createInMemory (
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/types.h store/inc/store/types.h
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/inc/store/types.h	2006-02-28 11:31:30.000000000 +0100
++++ store/inc/store/types.h	2007-03-14 10:06:44.000000000 +0100
+@@ -48,16 +48,26 @@
+ extern "C" {
+ #endif
+ 
++/* format version
++   V1 original rdb format, used publicly
++   V2 internal rdb format, which might change during time and
++      should be only used internally for services.rdb, types.rdb
++      and other rdb files shipped with OOo
++*/
++
++#define STORE_FORMAT_V1 1
++#define STORE_FORMAT_V2 2
++
+ /** PageSize (recommended) default.
+     @see store_openFile()
+  */
+-#define STORE_DEFAULT_PAGESIZE ((sal_uInt16)0x0400)
+-
++#define STORE_DEFAULT_PAGESIZE ((sal_uInt16)0x200)
+ 
+ /** PageSize (enforced) limits.
+     @see store_openFile()
+  */
+-#define STORE_MINIMUM_PAGESIZE ((sal_uInt16)0x0200)
++#define STORE_MINIMUM_PAGESIZE_V1 ((sal_uInt16)0x200)
++#define STORE_MINIMUM_PAGESIZE_V2 ((sal_uInt16)0x80)
+ #define STORE_MAXIMUM_PAGESIZE ((sal_uInt16)0x8000)
+ 
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/filelckb.cxx store/source/filelckb.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/filelckb.cxx	2006-09-17 03:11:02.000000000 +0200
++++ store/source/filelckb.cxx	2007-02-28 22:58:41.000000000 +0100
+@@ -652,7 +652,13 @@ storeError OFileLockBytes::writeAt (
+ 	// Acquire exclusive access.
+ 	osl::MutexGuard aGuard (m_aMutex);
+ 	if (m_pImpl->isValid())
+-		return m_pImpl->writeAt (nOffset, pBuffer, nBytes, rnDone);
++	{
++		storeError nErr;
++		nErr = m_pImpl->writeAt (nOffset, pBuffer, nBytes, rnDone);
++//		fprintf( stderr, "OFileLockBytes::writeAt %d (%d bytes) (%d written) err %d\n",
++//				 nOffset, nBytes, rnDone, nErr );
++		return nErr;
++	}
+ 	else
+ 		return store_E_InvalidHandle;
+ }
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storbase.cxx store/source/storbase.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storbase.cxx	2006-09-17 03:11:51.000000000 +0200
++++ store/source/storbase.cxx	2007-03-29 10:34:20.000000000 +0200
+@@ -56,6 +56,9 @@
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+ #endif
++#ifndef _RTL_MEMORY_H_
++#include <rtl/memory.h>
++#endif
+ 
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+@@ -81,6 +84,12 @@
+ #include <storbase.hxx>
+ #endif
+ 
++#ifdef WNT
++#include <malloc.h>
++#else
++#include <alloca.h>
++#endif
++
+ using namespace store;
+ 
+ /*========================================================================
+@@ -252,7 +259,9 @@ storeError OStorePageObject::verify (con
+  * OStoreSuperBlock.
+  *
+  *======================================================================*/
+-#define STORE_MAGIC_SUPERBLOCK sal_uInt32(0x484D5343)
++#define STORE_MAGIC_SUPERBLOCK_V1 sal_uInt32(0x484D5343)
++#define STORE_MAGIC_SUPERBLOCK_V2 sal_uInt32(0x484D5344)
++#define STORE_VERSION 2
+ 
+ struct OStoreSuperBlock
+ {
+@@ -280,7 +289,7 @@ struct OStoreSuperBlock
+ 	/** Construction.
+ 	 */
+ 	OStoreSuperBlock (void)
+-		: m_aGuard  (STORE_MAGIC_SUPERBLOCK),
++		: m_aGuard  (STORE_MAGIC_SUPERBLOCK_V2),
+ 		  m_nMarked (0),
+ 		  m_aMarked (0),
+ 		  m_nUnused (0),
+@@ -316,14 +325,21 @@ struct OStoreSuperBlock
+ 				(m_nMarked == rOther.m_nMarked) &&
+ 				(m_aMarked == rOther.m_aMarked) &&
+ 				(m_nUnused == rOther.m_nUnused) &&
+-				(m_aUnused == rOther.m_aUnused)    );
++				(m_aUnused == rOther.m_aUnused)   );
+ 	}
+ 
+ 	/** create.
+ 	 */
+-	void create (const D& rDescr)
++	void create (const D& rDescr, sal_uInt16 nFormatVersion)
+ 	{
+-		m_aGuard  = G(STORE_MAGIC_SUPERBLOCK);
++        switch (nFormatVersion) {
++        case STORE_FORMAT_V1:
++            m_aGuard  = G(STORE_MAGIC_SUPERBLOCK_V1);
++            break;
++        case STORE_FORMAT_V2:
++            m_aGuard  = G(STORE_MAGIC_SUPERBLOCK_V2);
++            break;
++        }
+ 		m_aDescr  = rDescr;
+ 
+ 		m_nMarked = 0;
+@@ -390,13 +406,14 @@ struct OStoreSuperBlock
+ 
+ 	/** verify (external representation).
+ 	 */
+-	storeError verify (void)
++	storeError verify (sal_uInt32 nVersion)
+ 	{
+ 		sal_uInt32 nMagic = m_aGuard.m_nMagic;
+ #ifdef OSL_BIGENDIAN
+ 		nMagic = OSL_SWAPDWORD(nMagic);
+ #endif /* OSL_BIGENDIAN */
+-		if (nMagic != STORE_MAGIC_SUPERBLOCK)
++		if ((nVersion == STORE_FORMAT_V1 && nMagic != STORE_MAGIC_SUPERBLOCK_V1) ||
++            (nVersion == STORE_FORMAT_V2 && nMagic != STORE_MAGIC_SUPERBLOCK_V2))
+ 			return store_E_WrongFormat;
+ 
+ 		sal_uInt32 nCRC32 = 0;
+@@ -410,6 +427,26 @@ struct OStoreSuperBlock
+ 		else
+ 			return store_E_None;
+ 	}
++
++    /** return version of superblock, determined by magic number in guard
++     */
++    sal_uInt32 version ()
++    {
++        sal_uInt32 nVersion;
++
++        switch (m_aGuard.m_nMagic) {
++        case STORE_MAGIC_SUPERBLOCK_V1:
++            nVersion = STORE_FORMAT_V1;
++            break;
++        case STORE_MAGIC_SUPERBLOCK_V2:
++            nVersion = STORE_FORMAT_V2;
++            break;
++        default:
++            nVersion = 0;
++        }
++
++        return nVersion;
++    }
+ };
+ 
+ /*========================================================================
+@@ -501,6 +538,10 @@ struct OStoreSuperBlockPage
+ 	SuperBlock m_aSuperTwo;
+ 	StateBlock m_aState;
+ 
++    /** version
++     */
++    sal_uInt32 m_nVersion;
++
+ 	/** size.
+ 	 */
+ 	static sal_uInt16 size (void)
+@@ -522,7 +563,7 @@ struct OStoreSuperBlockPage
+ 
+ 	/** Construction.
+ 	 */
+-	OStoreSuperBlockPage (void)
++	OStoreSuperBlockPage (sal_uInt16 nFormatVersion) : m_nVersion (nFormatVersion)
+ 	{}
+ 
+ 	/** swap (internal and external representation).
+@@ -548,6 +589,8 @@ struct OStoreSuperBlockPage
+ 		swap();
+ #endif /* OSL_BIGENDIAN */
+ 
++        m_nVersion = m_aSuperOne.version ();
++
+ 		// Done.
+ 		return eErrCode;
+ 	}
+@@ -633,7 +676,7 @@ storeError OStoreSuperBlockPage::create 
+ 		if (eErrCode == store_E_None)
+ 		{
+ 			// Setup 1st and 2nd SuperBlock copy.
+-			m_aSuperOne.create (rDescr);
++			m_aSuperOne.create (rDescr, m_nVersion);
+ 			m_aSuperTwo = m_aSuperOne;
+ 
+ 			// Mark as modified.
+@@ -759,11 +802,11 @@ storeError OStoreSuperBlockPage::verify 
+ #endif /* OSL_BIGENDIAN */
+ 
+ 	// Verify 1st copy.
+-	storeError eErrCode = m_aSuperOne.verify();
++	storeError eErrCode = m_aSuperOne.verify (m_nVersion);
+ 	if (eErrCode == store_E_None)
+ 	{
+ 		// Ok. Verify 2nd copy.
+-		eErrCode = m_aSuperTwo.verify();
++		eErrCode = m_aSuperTwo.verify (m_nVersion);
+ 		if (eErrCode == store_E_None)
+ 		{
+ 			// Ok. Ensure identical copies (1st copy wins).
+@@ -794,7 +837,7 @@ storeError OStoreSuperBlockPage::verify 
+ 	else
+ 	{
+ 		// Failure. Verify 2nd copy.
+-		eErrCode = m_aSuperTwo.verify();
++		eErrCode = m_aSuperTwo.verify (m_nVersion);
+ 		if (eErrCode == store_E_None)
+ 		{
+ 			// Ok. Replace 1st copy with 2nd copy.
+@@ -1009,7 +1052,7 @@ storeError OStorePageBIOS::verify (Super
+ 	if (rpSuper == 0)
+ 	{
+ 		// Allocate.
+-		if ((rpSuper = new SuperPage()) == 0)
++		if ((rpSuper = new SuperPage(version ())) == 0)
+ 			return store_E_OutOfMemory;
+ 
+ 		// Load (w/o verification).
+@@ -1120,7 +1163,7 @@ storeError OStorePageBIOS::initialize (
+  * create (SuperBlock).
+  * Precond: initialized, writeable (store_AccessCreate).
+  */
+-storeError OStorePageBIOS::create (sal_uInt16 nPageSize)
++storeError OStorePageBIOS::create (sal_uInt16 nPageSize, sal_uInt16 nFormatVersion)
+ {
+ 	// Acquire exclusive access.
+ 	osl::MutexGuard aGuard (m_aMutex);
+@@ -1133,7 +1176,14 @@ storeError OStorePageBIOS::create (sal_u
+ 
+ 	// Check PageSize.
+ 	sal_uInt16 nMinSize = SuperPage::size();
+-	nMinSize  = std::max (nMinSize, STORE_MINIMUM_PAGESIZE);
++    switch (nFormatVersion) {
++    case STORE_FORMAT_V1:
++        nMinSize  = std::max (nMinSize, STORE_MINIMUM_PAGESIZE_V1);
++        break;
++    case STORE_FORMAT_V2:
++        nMinSize  = std::max (nMinSize, STORE_MINIMUM_PAGESIZE_V2);
++        break;
++    }
+ 
+ 	nPageSize = std::max (nPageSize, nMinSize);
+ 	nPageSize = std::min (nPageSize, STORE_MAXIMUM_PAGESIZE);
+@@ -1148,7 +1198,7 @@ storeError OStorePageBIOS::create (sal_u
+ 		return eErrCode;
+ 
+ 	// Check SuperBlock page allocation.
+-	if ((m_pSuper == 0) && ((m_pSuper = new SuperPage()) == 0))
++	if ((m_pSuper == 0) && ((m_pSuper = new SuperPage(nFormatVersion)) == 0))
+ 	{
+ 		// Cleanup and fail.
+ 		releaseLock (0, SuperPage::size());
+@@ -1495,7 +1545,12 @@ storeError OStorePageBIOS::allocate (
+ 		if (aListHead.m_nAddr)
+ 		{
+ 			// Allocate from FreeList.
+-			OStorePageData aPageHead (OStorePageData::size());
++#ifdef WNT
++            sal_uInt8 *aPageHeadData = (sal_uInt8 *) _alloca (OStorePageData::size());
++#else
++            sal_uInt8 *aPageHeadData = (sal_uInt8 *) alloca (OStorePageData::size());
++#endif
++			OStorePageData aPageHead (OStorePageData::size(), sizeof (OStorePageData), aPageHeadData);
+ 			aPageHead.location (aListHead.m_nAddr);
+ 
+ 			// Load PageHead.
+@@ -1508,9 +1563,9 @@ storeError OStorePageBIOS::allocate (
+ 
+ 			// Verify FreeList head.
+ 			OSL_PRECOND(
+-				aPageHead.m_aUnused.m_nAddr != STORE_PAGE_NULL,
++				aPageHead.PageHeader ().m_aUnused.m_nAddr != STORE_PAGE_NULL,
+ 				"OStorePageBIOS::allocate(): page not free");
+-			if (aPageHead.m_aUnused.m_nAddr == STORE_PAGE_NULL)
++			if (aPageHead.PageHeader ().m_aUnused.m_nAddr == STORE_PAGE_NULL)
+ 			{
+ 				// Recovery: Reset FreeList.
+ 				m_pSuper->m_aSuperTwo.unusedReset();
+@@ -1531,11 +1586,11 @@ storeError OStorePageBIOS::allocate (
+ 
+ 			// Assign location.
+ 			OStorePageData &rData = rPage.getData();
+-			rData.location (aPageHead.m_aDescr.m_nAddr);
++			rData.location (aPageHead.PageHeader ().m_aDescr.m_nAddr);
+ 
+ 			// Pop from FreeList.
+-			aListHead.m_nAddr = aPageHead.m_aUnused.m_nAddr;
+-			rData.m_aUnused.m_nAddr = STORE_PAGE_NULL;
++			aListHead.m_nAddr = aPageHead.PageHeader ().m_aUnused.m_nAddr;
++			rData.PageHeader ().m_aUnused.m_nAddr = STORE_PAGE_NULL;
+ 
+ 			// Save page.
+ 			eErrCode = poke (rPage);
+@@ -1669,8 +1724,8 @@ storeError OStorePageBIOS::free (OStoreP
+ 	// Push onto FreeList.
+ 	OStorePageLink aListHead (m_pSuper->m_aSuperTwo.unusedHead());
+ 
+-	rData.m_aUnused.m_nAddr = aListHead.m_nAddr;
+-	aListHead.m_nAddr = rData.m_aDescr.m_nAddr;
++	rData.PageHeader ().m_aUnused.m_nAddr = aListHead.m_nAddr;
++	aListHead.m_nAddr = rData.PageHeader ().m_aDescr.m_nAddr;
+ 
+ 	// Save PageHead.
+ 	eErrCode = poke (rData);
+@@ -1708,14 +1763,14 @@ storeError OStorePageBIOS::load (OStoreP
+ 
+ 	// Save PageDescriptor.
+ 	OStorePageData       &rData = rPage.getData();
+-	OStorePageDescriptor  aDescr (rData.m_aDescr);
++	OStorePageDescriptor  aDescr (rData.PageHeader ().m_aDescr);
+ 
+ 	// Read page.
+-	storeError eErrCode = read (aDescr.m_nAddr, &rData, aDescr.m_nSize);
++	storeError eErrCode = read (aDescr.m_nAddr, rData.Data (), aDescr.m_nSize);
+ 	if (eErrCode != store_E_None)
+ 	{
+ 		// Restore PageDescriptor.
+-		rData.m_aDescr = aDescr;
++		rData.PageHeader ().m_aDescr = aDescr;
+ 		return eErrCode;
+ 	}
+ 
+@@ -1724,7 +1779,7 @@ storeError OStorePageBIOS::load (OStoreP
+ 	if (eErrCode != store_E_None)
+ 	{
+ 		// Restore PageDescriptor.
+-		rData.m_aDescr = aDescr;
++		rData.PageHeader ().m_aDescr = aDescr;
+ 		return eErrCode;
+ 	}
+ 
+@@ -1734,8 +1789,8 @@ storeError OStorePageBIOS::load (OStoreP
+ #endif /* OSL_BIGENDIAN */
+ 
+ 	// Verify PageDescriptor.
+-	if (!((aDescr == rData.m_aDescr) ||
+-		  (aDescr <= rData.m_aDescr)    ))
++	if (!((aDescr == rData.PageHeader ().m_aDescr) ||
++		  (aDescr <= rData.PageHeader ().m_aDescr)    ))
+ 		return store_E_InvalidAccess;
+ 
+ 	// Mark page as clean.
+@@ -1928,7 +1983,12 @@ storeError OStorePageBIOS::scanNext (
+ 		return store_E_InvalidAccess;
+ 
+ 	// Setup PageHead.
+-	OStorePageData aPageHead (OStorePageData::size());
++#ifdef WNT
++            sal_uInt8 *aPageHeadData = (sal_uInt8 *) _alloca (OStorePageData::size());
++#else
++            sal_uInt8 *aPageHeadData = (sal_uInt8 *) alloca (OStorePageData::size());
++#endif
++    OStorePageData aPageHead (OStorePageData::size(), sizeof (OStorePageData), aPageHeadData);
+ 
+ 	// Check context.
+ 	while (rCtx.isValid())
+@@ -1943,11 +2003,11 @@ storeError OStorePageBIOS::scanNext (
+ 			continue;
+ 
+ 		// Check PageHead Magic number.
+-		if (aPageHead.m_aGuard.m_nMagic != rCtx.m_nMagic)
++		if (aPageHead.PageHeader ().m_aGuard.m_nMagic != rCtx.m_nMagic)
+ 			continue;
+ 
+ 		// Check PageHead Unused link.
+-		if (aPageHead.m_aUnused.m_nAddr != STORE_PAGE_NULL)
++		if (aPageHead.PageHeader ().m_aUnused.m_nAddr != STORE_PAGE_NULL)
+ 			continue;
+ 
+ 		// Load page.
+@@ -1971,14 +2031,14 @@ storeError OStorePageBIOS::scanNext (
+ storeError OStorePageBIOS::peek (OStorePageData &rData)
+ {
+ 	// Save PageDescriptor.
+-	OStorePageDescriptor aDescr (rData.m_aDescr);
++	OStorePageDescriptor aDescr (rData.PageHeader ().m_aDescr);
+ 
+ 	// Read PageHead.
+-	storeError eErrCode = read (aDescr.m_nAddr, &rData, rData.size());
++	storeError eErrCode = read (aDescr.m_nAddr, rData.Data (), rData.size());
+ 	if (eErrCode != store_E_None)
+ 	{
+ 		// Restore PageDescriptor.
+-		rData.m_aDescr = aDescr;
++		rData.PageHeader ().m_aDescr = aDescr;
+ 		return eErrCode;
+ 	}
+ 
+@@ -1987,7 +2047,7 @@ storeError OStorePageBIOS::peek (OStoreP
+ 	if (eErrCode != store_E_None)
+ 	{
+ 		// Restore PageDescriptor.
+-		rData.m_aDescr = aDescr;
++		rData.PageHeader ().m_aDescr = aDescr;
+ 		return eErrCode;
+ 	}
+ 
+@@ -1997,8 +2057,8 @@ storeError OStorePageBIOS::peek (OStoreP
+ #endif /* OSL_BIGENDIAN */
+ 
+ 	// Verify PageDescriptor.
+-	if (!((aDescr == rData.m_aDescr) ||
+-		  (aDescr <= rData.m_aDescr)    ))
++	if (!((aDescr == rData.PageHeader ().m_aDescr) ||
++		  (aDescr <= rData.PageHeader ().m_aDescr)    ))
+ 		return store_E_InvalidAccess;
+ 	else
+ 		return store_E_None;
+@@ -2011,7 +2071,7 @@ storeError OStorePageBIOS::peek (OStoreP
+ storeError OStorePageBIOS::poke (OStorePageData &rData)
+ {
+ 	// Save PageDescriptor.
+-	OStorePageDescriptor aDescr (rData.m_aDescr);
++	OStorePageDescriptor aDescr (rData.PageHeader ().m_aDescr);
+ 
+ #ifdef OSL_BIGENDIAN
+ 	// Swap to external representation.
+@@ -2022,7 +2082,7 @@ storeError OStorePageBIOS::poke (OStoreP
+ 	rData.guard ();
+ 
+ 	// Write PageHead.
+-	storeError eErrCode = write (aDescr.m_nAddr, &rData, rData.size());
++	storeError eErrCode = write (aDescr.m_nAddr, rData.Data (), rData.size());
+ 
+ #ifdef OSL_BIGENDIAN
+ 	// Swap back to internal representation.
+@@ -2041,7 +2101,7 @@ storeError OStorePageBIOS::poke (OStoreP
+ {
+ 	// Save PageDescriptor.
+ 	OStorePageData       &rData = rPage.getData();
+-	OStorePageDescriptor  aDescr (rData.m_aDescr);
++	OStorePageDescriptor  aDescr (rData.PageHeader ().m_aDescr);
+ 
+ #ifdef OSL_BIGENDIAN
+ 	// Swap to external representation.
+@@ -2052,7 +2112,7 @@ storeError OStorePageBIOS::poke (OStoreP
+ 	rPage.guard (aDescr);
+ 
+ 	// Write page.
+-	storeError eErrCode = write (aDescr.m_nAddr, &rData, aDescr.m_nSize);
++	storeError eErrCode = write (aDescr.m_nAddr, rData.Data (), aDescr.m_nSize);
+ 
+ #ifdef OSL_BIGENDIAN
+ 	// Swap back to internal representation.
+@@ -2067,3 +2127,183 @@ storeError OStorePageBIOS::poke (OStoreP
+ 	return eErrCode;
+ }
+ 
++sal_uInt32 OStorePageBIOS::version ()
++{
++    if (!m_pSuper)
++        return 0;
++
++    return m_pSuper->m_nVersion;
++}
++
++static void
++copyAndTerminate( sal_Char *pDest, const sal_Char *pSrc, sal_Int32 nBytes)
++{
++	rtl_copyMemory (pDest, pSrc, nBytes);
++	pDest[nBytes] = '\0';
++}
++
++#define STORE_MAGIC_LONGNAME sal_uInt32 (0x12345678)
++
++struct OStorePageLongNameData : public OStorePageData
++{
++    typedef OStorePageData base;
++
++    struct Representation {
++        sal_Char m_nData[1];
++    };
++  public:
++	OStorePageLongNameData(sal_uInt16 nPageSize, sal_uInt8 *pData) :
++		OStorePageData (nPageSize, sizeof (OStorePageLongNameData), pData)
++    {
++        base::PageHeader ().m_aGuard.m_nMagic = STORE_MAGIC_LONGNAME;
++		base::PageHeader ().m_aDescr.m_nUsed = sal::static_int_cast< sal_uInt16 >(
++            base::PageHeader ().m_aDescr.m_nUsed);
++		rtl_zeroMemory (&RepresentationData (), capacity());
++    }
++
++	/** capacity.
++	*/
++	sal_uInt16 capacity (void)
++	{
++		return (base::PageHeader ().m_aDescr.m_nSize - (base::size()));
++	}
++
++    Representation& RepresentationData ()
++    {
++        return *(Representation *) (Data () + base::size ());
++    }
++};
++
++static sal_uInt16
++lcl_getPageSize (OStorePageBIOS &rBIOS)
++{
++	sal_uInt16 nPageSize = STORE_MAXIMUM_PAGESIZE;
++	rBIOS.getPageSize(nPageSize);
++//	fprintf (stderr, "page size for extended names %d\n", nPageSize);
++	return nPageSize;
++}
++
++#define USE_OTHER_BLOCK STORE_INTERNAL_MAX_NAMESIZE
++
++storeError
++OStorePageNameBlockV1::SetName (const rtl_String *pName, OStorePageBIOS &rBIOS)
++{
++    rtl_copyMemory (&m_pRepresentation->m_pData[0],
++                    pName->buffer, pName->length);
++    rtl_zeroMemory (&m_pRepresentation->m_pData[pName->length],
++                    STORE_MAXIMUM_NAMESIZE - pName->length);
++	return store_E_None;
++}
++
++storeError
++OStorePageNameBlockV1::Name (rtl_String **pName, OStorePageBIOS &rBIOS)
++{
++    sal_Int32 length = rtl_str_getLength(m_pRepresentation->m_pData);
++	rtl_string_new_WithLength (pName, length + 1);
++	(*pName)->length = length;
++    rtl_copyMemory ((*pName)->buffer,
++                    &m_pRepresentation->m_pData[0], length);
++    (*pName)->buffer [length] = 0;
++
++	return store_E_None;
++}
++
++storeError
++OStorePageNameBlockV2::SetName (const rtl_String *pName, OStorePageBIOS &rBIOS)
++{
++	storeError nRet;
++	sal_Char *pDest;
++
++//	fprintf (stderr, "setName '%s'\n", pName->buffer);
++
++    if (!m_pRepresentation)
++        return store_E_NotExists;
++
++	m_pRepresentation->m_nNameLength = pName->length;
++
++	if (pName->length >= USE_OTHER_BLOCK)
++	{
++        sal_uInt16 nSize = lcl_getPageSize(rBIOS);
++#ifdef WNT
++        sal_uInt8 *aPageHeadData = (sal_uInt8 *) _alloca (nSize);
++#else
++        sal_uInt8 *aPageHeadData = (sal_uInt8 *) alloca (nSize);
++#endif
++		OStorePageLongNameData aNameData (nSize, aPageHeadData);
++		OStorePageObject aNamePage(aNameData);
++		if (!m_pRepresentation->m_nNameBlock)
++		{
++			if ((nRet = rBIOS.allocate (aNamePage)) != store_E_None)
++			{
++				fprintf (stderr, "failed to allocate name page %d\n", nRet);
++				return nRet;
++			}
++			m_pRepresentation->m_nNameBlock = aNameData.location();
++		}
++		else
++		{
++			aNameData.location (m_pRepresentation->m_nNameBlock);
++			if ((nRet = rBIOS.load(aNamePage)) != store_E_None)
++			{
++				fprintf (stderr, "failed to load name page %d\n", nRet);
++				return nRet;
++			}
++		}
++		copyAndTerminate (m_pRepresentation->m_pNameData, pName->buffer, USE_OTHER_BLOCK - 1);
++		copyAndTerminate (aNameData.RepresentationData ().m_nData, pName->buffer + USE_OTHER_BLOCK - 1,
++						  pName->length - (USE_OTHER_BLOCK - 1));
++
++		if ((nRet = rBIOS.save (aNamePage)) != store_E_None)
++		{
++			fprintf (stderr, "failed to save name page %d\n", nRet);
++			return nRet;
++		}
++	}
++	else
++		copyAndTerminate (m_pRepresentation->m_pNameData, pName->buffer, pName->length);
++
++	return store_E_None;
++}
++
++storeError
++OStorePageNameBlockV2::Name (rtl_String **pName, OStorePageBIOS &rBIOS)
++{
++	storeError nRet;
++
++//	fprintf (stderr, "get!Name (%d)...\n", m_nNameLength);
++
++    if (!m_pRepresentation)
++        return store_E_NotExists;
++
++	rtl_string_new_WithLength (pName, m_pRepresentation->m_nNameLength + 1);
++	(*pName)->length = m_pRepresentation->m_nNameLength;
++
++	if (m_pRepresentation->m_nNameLength >= USE_OTHER_BLOCK)
++	{
++        sal_uInt16 nSize = lcl_getPageSize(rBIOS);
++#ifdef WNT
++        sal_uInt8 *aPageHeadData = (sal_uInt8 *) _alloca (nSize);
++#else
++        sal_uInt8 *aPageHeadData = (sal_uInt8 *) alloca (nSize);
++#endif
++		OStorePageLongNameData aNameData (nSize, aPageHeadData);
++		OStorePageObject aNamePage(aNameData);
++		aNameData.location (m_pRepresentation->m_nNameBlock);
++
++		if ((nRet = rBIOS.load(aNamePage)) != store_E_None)
++		{
++			fprintf (stderr, "failed to load name page %d\n", nRet);
++			return nRet;
++		}
++
++		copyAndTerminate ((*pName)->buffer, m_pRepresentation->m_pNameData, USE_OTHER_BLOCK - 1);
++		copyAndTerminate ((*pName)->buffer + USE_OTHER_BLOCK - 1,
++						  aNameData.RepresentationData ().m_nData, m_pRepresentation->m_nNameLength - (USE_OTHER_BLOCK - 1));
++	}
++	else
++		copyAndTerminate ((*pName)->buffer, m_pRepresentation->m_pNameData, m_pRepresentation->m_nNameLength);
++
++//	fprintf (stderr, "... returns '%s'\n", (*pName)->buffer);
++
++	return store_E_None;
++}
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storbase.hxx store/source/storbase.hxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storbase.hxx	2006-06-20 02:33:00.000000000 +0200
++++ store/source/storbase.hxx	2007-03-14 16:27:02.000000000 +0100
+@@ -33,6 +33,8 @@
+  *
+  ************************************************************************/
+ 
++#include <stdio.h>
++
+ #ifndef _STORE_STORBASE_HXX_
+ #define _STORE_STORBASE_HXX_ "$Revision: 1.9 $"
+ 
+@@ -49,6 +51,9 @@
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+ #endif
++#ifndef _RTL_MEMORY_H_
++#include <rtl/memory.h>
++#endif
+ 
+ #ifndef _OSL_ENDIAN_H_
+ #include <osl/endian.h>
+@@ -77,6 +82,9 @@
+ #define INCLUDED_CSTRING
+ #endif
+ 
++// #define STORE_INTERNAL_MAX_NAMESIZE 96-4
++#define STORE_INTERNAL_MAX_NAMESIZE 32
++
+ /*========================================================================
+  *
+  * store common internals.
+@@ -376,26 +384,101 @@ struct OStorePageLink
+ 	}
+ };
+ 
++
+ /*========================================================================
+  *
+  * OStorePageNameBlock.
+  *
+  *======================================================================*/
+-struct OStorePageNameBlock
++
++class OStorePageBIOS;
++
++struct OStorePageNameBlockA
+ {
+-	typedef OStorePageGuard G;
+ 	typedef OStorePageKey   K;
++	typedef OStorePageGuard G;
+ 
+-	/** Representation.
++	/** initialize.
+ 	*/
+-	G          m_aGuard;
+-	K          m_aKey;
+-	sal_uInt32 m_nAttrib;
+-	sal_Char   m_pData[STORE_MAXIMUM_NAMESIZE];
++	virtual void initialize (void) = 0;
++
++ 	/** Comparison.
++ 	*/
++ 	sal_Bool operator== (const OStorePageNameBlockA& rOther) const
++ 	{
++ 		return (Guard () == rOther.Guard ());
++ 	}
+ 
+ 	/** size.
+ 	*/
+-	static sal_uInt16 size (void)
++	virtual sal_uInt16 size (void) = 0;
++
++	/** swap (internal and external representation).
++	*/
++	virtual void swap (void) = 0;
++
++	/** guard (external representation).
++	*/
++	virtual void guard (void) = 0;
++
++	/** verify (external representation).
++	*/
++	virtual storeError verify (void) = 0;
++
++	/** namei.
++	*/
++	static storeError namei (
++		const rtl_String *pPath, const rtl_String *pName, K &rKey)
++	{
++		// Check parameter.
++		if (!(pPath && pName))
++			return store_E_InvalidParameter;
++
++		// Check name length.
++		if (pName->length >= STORE_MAXIMUM_NAMESIZE)
++			return store_E_NameTooLong;
++
++		// Transform pathname into key.
++		rKey.m_nLow  = G::crc32 (0, pName->buffer, pName->length);
++		rKey.m_nHigh = G::crc32 (0, pPath->buffer, pPath->length);
++
++		// Done.
++		return store_E_None;
++	}
++
++    /** Properties.
++     */
++
++    virtual G Guard () const = 0;
++
++    virtual sal_uInt32 Attrib () = 0;
++    virtual void SetAttrib (sal_uInt32 nAttrib) = 0;
++    virtual K Key () = 0;
++    virtual void SetKey (K aKey) = 0;
++
++	virtual storeError SetName (const rtl_String *pName, OStorePageBIOS &rBIOS) = 0;
++	virtual storeError Name (rtl_String **pName, OStorePageBIOS &rBIOS) = 0;
++};
++
++struct OStorePageNameBlockV1 : OStorePageNameBlockA
++{
++	typedef OStorePageGuard G;
++	typedef OStorePageKey   K;
++
++	struct Representation {
++        G          m_aGuard;
++        K          m_aKey;
++        sal_uInt32 m_nAttrib;
++        sal_Char   m_pData[STORE_MAXIMUM_NAMESIZE];
++    };
++
++private:
++    Representation* m_pRepresentation;
++
++public:
++	/** size.
++	*/
++	sal_uInt16 size (void)
+ 	{
+ 		return sal_uInt16(sizeof(G) + sizeof(K) + sizeof(sal_uInt32) +
+ 						  sizeof(sal_Char[STORE_MAXIMUM_NAMESIZE]));
+@@ -405,25 +488,25 @@ struct OStorePageNameBlock
+ 	*/
+ 	void initialize (void)
+ 	{
+-		m_aGuard  = G();
+-		m_aKey    = K();
+-		m_nAttrib = 0;
+-		__store_memset (m_pData, 0, sizeof(m_pData));
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard  = G();
++            m_pRepresentation->m_aKey    = K();
++            m_pRepresentation->m_nAttrib = 0;
++            __store_memset (m_pRepresentation->m_pData, 0, sizeof(m_pRepresentation->m_pData));
++        }
+ 	}
+ 
++
+ 	/** Construction.
+ 	*/
+-	OStorePageNameBlock (void)
+-		: m_nAttrib (0)
++	OStorePageNameBlockV1 (sal_uInt8 *data)
++		: m_pRepresentation ((Representation *) data)
+ 	{
+-		__store_memset (m_pData, 0, sizeof(m_pData));
+ 	}
+ 
+-	/** Comparison.
+-	*/
+-	sal_Bool operator== (const OStorePageNameBlock& rOther) const
++	OStorePageNameBlockV1 (void)
++        : m_pRepresentation (NULL)
+ 	{
+-		return (m_aGuard == rOther.m_aGuard);
+ 	}
+ 
+ 	/** swap (internal and external representation).
+@@ -431,9 +514,11 @@ struct OStorePageNameBlock
+ 	void swap (void)
+ 	{
+ #ifdef OSL_BIGENDIAN
+-		m_aGuard.swap();
+-		m_aKey.swap();
+-		m_nAttrib = OSL_SWAPDWORD(m_nAttrib);
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard.swap();
++            m_pRepresentation->m_aKey.swap();
++            m_pRepresentation->m_nAttrib = OSL_SWAPDWORD(m_pRepresentation->m_nAttrib);
++        }
+ #endif /* OSL_BIGENDIAN */
+ 	}
+ 
+@@ -441,51 +526,215 @@ struct OStorePageNameBlock
+ 	*/
+ 	void guard (void)
+ 	{
+-		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, &m_aKey, size() - sizeof(G));
++        if (m_pRepresentation) {
++            sal_uInt32 nCRC32 = 0;
++            nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++            nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aKey, size() - sizeof(G));
+ #ifdef OSL_BIGENDIAN
+-		nCRC32 = OSL_SWAPDWORD(nCRC32);
++            nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		m_aGuard.m_nCRC32 = nCRC32;
++            m_pRepresentation->m_aGuard.m_nCRC32 = nCRC32;
++        }
+ 	}
+ 
+ 	/** verify (external representation).
+ 	*/
+ 	storeError verify (void)
+ 	{
++        if (!m_pRepresentation)
++            return store_E_NotExists;
++
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, &m_aKey, size() - sizeof(G));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aKey, size() - sizeof(G));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		if (m_aGuard.m_nCRC32 != nCRC32)
++		if (m_pRepresentation->m_aGuard.m_nCRC32 != nCRC32)
+ 			return store_E_InvalidChecksum;
+ 		else
+ 			return store_E_None;
+ 	}
+ 
+-	/** namei.
++    /** Properties.
++     */
++
++    G Guard () const
++    {
++        return m_pRepresentation->m_aGuard;
++    }
++
++    sal_uInt32 Attrib ()
++    {
++        if (m_pRepresentation)
++            return m_pRepresentation->m_nAttrib;
++        else
++            return 0;
++    }
++
++    void SetAttrib (sal_uInt32 nAttrib)
++    {
++        if (m_pRepresentation)
++            m_pRepresentation->m_nAttrib = nAttrib;
++    }
++
++    K Key ()
++    {
++        if (m_pRepresentation)
++            return m_pRepresentation->m_aKey;
++        else
++            return K (0, 0);
++    }
++
++    void SetKey (K aKey)
++    {
++        if (m_pRepresentation)
++            m_pRepresentation->m_aKey = aKey;
++    }
++
++	storeError SetName (const rtl_String *pName, OStorePageBIOS &rBIOS);
++	storeError Name (rtl_String **pName, OStorePageBIOS &rBIOS);
++};
++
++struct OStorePageNameBlockV2 : OStorePageNameBlockA
++{
++	typedef OStorePageGuard G;
++	typedef OStorePageKey   K;
++
++	struct Representation {
++        G          m_aGuard;
++        K          m_aKey;
++        sal_uInt32 m_nAttrib;
++        sal_Char   m_pNameData[STORE_INTERNAL_MAX_NAMESIZE];
++        sal_uInt32 m_nNameLength;
++        sal_uInt32 m_nNameBlock;
++    };
++
++    Representation* m_pRepresentation;
++
++	/** size.
+ 	*/
+-	static storeError namei (
+-		const rtl_String *pPath, const rtl_String *pName, K &rKey)
++	sal_uInt16 size (void)
+ 	{
+-		// Check parameter.
+-		if (!(pPath && pName))
+-			return store_E_InvalidParameter;
++		return sal_uInt16 (sizeof(G) + sizeof(K) + 3*sizeof(sal_uInt32) +
++                           sizeof(sal_Char[STORE_INTERNAL_MAX_NAMESIZE]));
++	}
+ 
+-		// Check name length.
+-		if (!(pName->length < STORE_MAXIMUM_NAMESIZE))
+-			return store_E_NameTooLong;
++	/** initialize.
++	*/
++	void initialize (void)
++	{
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard  = G();
++            m_pRepresentation->m_aKey    = K();
++            m_pRepresentation->m_nAttrib = 0;
++            m_pRepresentation->m_nNameLength = 0;
++            m_pRepresentation->m_nNameBlock = 0;
++            __store_memset (m_pRepresentation->m_pNameData, 0, sizeof(sal_Char[STORE_INTERNAL_MAX_NAMESIZE]));
++        }
++	}
+ 
+-		// Transform pathname into key.
+-		rKey.m_nLow  = G::crc32 (0, pName->buffer, pName->length);
+-		rKey.m_nHigh = G::crc32 (0, pPath->buffer, pPath->length);
++	/** Construction.
++	*/
++	OStorePageNameBlockV2 (sal_uInt8 *data)
++		: m_pRepresentation ((Representation *) data)
++	{
++	}
+ 
+-		// Done.
+-		return store_E_None;
++	OStorePageNameBlockV2 (void)
++        : m_pRepresentation (NULL)
++        //        : m_nAttrib (0), m_nNameBlock (0), m_nNameLength (0)
++	{
++        //		__store_memset (m_pNameData, 0, sizeof(m_pNameData));
++	}
++
++	/** swap (internal and external representation).
++	*/
++	void swap (void)
++	{
++#ifdef OSL_BIGENDIAN
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard.swap();
++            m_pRepresentation->m_aKey.swap();
++            m_pRepresentation->m_nAttrib = OSL_SWAPDWORD(m_pRepresentation->m_nAttrib);
++            m_pRepresentation->m_nNameLength = OSL_SWAPDWORD(m_pRepresentation->m_nNameLength);
++            m_pRepresentation->m_nNameBlock = OSL_SWAPDWORD(m_pRepresentation->m_nNameBlock);
++        }
++#endif /* OSL_BIGENDIAN */
++	}
++
++	/** guard (external representation).
++	*/
++	void guard (void)
++	{
++        if (m_pRepresentation) {
++            sal_uInt32 nCRC32 = 0;
++            nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++            nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aKey, size() - sizeof(G));
++#ifdef OSL_BIGENDIAN
++            nCRC32 = OSL_SWAPDWORD(nCRC32);
++#endif /* OSL_BIGENDIAN */
++            m_pRepresentation->m_aGuard.m_nCRC32 = nCRC32;
++        }
++	}
++
++	/** verify (external representation).
++	*/
++	storeError verify (void)
++	{
++        if (!m_pRepresentation)
++            return store_E_NotExists;
++
++		sal_uInt32 nCRC32 = 0;
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aKey, size() - sizeof(G));
++#ifdef OSL_BIGENDIAN
++		nCRC32 = OSL_SWAPDWORD(nCRC32);
++#endif /* OSL_BIGENDIAN */
++		if (m_pRepresentation->m_aGuard.m_nCRC32 != nCRC32)
++			return store_E_InvalidChecksum;
++		else
++			return store_E_None;
+ 	}
++
++    /** Properties.
++     */
++
++    G Guard () const
++    {
++        return m_pRepresentation->m_aGuard;
++    }
++
++    sal_uInt32 Attrib ()
++    {
++        if (m_pRepresentation)
++            return m_pRepresentation->m_nAttrib;
++        else
++            return 0;
++    }
++
++    void SetAttrib (sal_uInt32 nAttrib)
++    {
++        if (m_pRepresentation)
++            m_pRepresentation->m_nAttrib = nAttrib;
++    }
++
++    K Key ()
++    {
++        if (m_pRepresentation)
++            return m_pRepresentation->m_aKey;
++        else
++            return K (0, 0);
++    }
++
++    void SetKey (K aKey)
++    {
++        if (m_pRepresentation)
++            m_pRepresentation->m_aKey = aKey;
++    }
++
++	storeError SetName (const rtl_String *pName, OStorePageBIOS &rBIOS);
++	storeError Name (rtl_String **pName, OStorePageBIOS &rBIOS);
+ };
+ 
+ /*========================================================================
+@@ -501,10 +750,30 @@ struct OStorePageData
+ 
+ 	/** Representation.
+ 	 */
+-	G m_aGuard;
+-	D m_aDescr;
+-	L m_aMarked;
+-	L m_aUnused;
++    struct Representation {
++        G m_aGuard;
++        D m_aDescr;
++        L m_aMarked;
++        L m_aUnused;
++    };
++
++private:
++
++    Representation* m_pPageHeader;
++
++public:
++
++    inline Representation& PageHeader () const
++    {
++        return *m_pPageHeader;
++    }
++
++	/** Representation.
++	*/
++	inline sal_uInt8* Data () const
++    {
++        return (sal_uInt8*) m_pPageHeader;
++    }
+ 
+ 	/** size.
+ 	 */
+@@ -517,24 +786,30 @@ struct OStorePageData
+ 	 */
+ 	sal_uInt32 location (void) const
+ 	{
+-		return m_aDescr.m_nAddr;
++		return PageHeader ().m_aDescr.m_nAddr;
+ 	}
+ 
+ 	void location (sal_uInt32 nAddr)
+ 	{
+-		m_aDescr.m_nAddr = nAddr;
++		PageHeader ().m_aDescr.m_nAddr = nAddr;
+ 	}
+ 
+ 	/** Allocation.
+ 	 */
+ 	static void* operator new (size_t n)
+ 	{
++        fprintf (stderr, "warning: OStorePageData allocated without additional space\n");
++
+ 		return rtl_allocateMemory (n);
+ 	}
+ 
+-	static void* operator new (size_t, sal_uInt16 nPageSize)
++	static void* operator new (size_t n, sal_uInt16 nPageSize)
+ 	{
+-		return rtl_allocateMemory (nPageSize);
++        void* mem = rtl_allocateMemory (n + nPageSize);
++
++        rtl_zeroMemory (((sal_uInt8 *)mem) + n, nPageSize);
++
++        return mem;
+ 	}
+ 
+ 	static void operator delete (void *p)
+@@ -549,18 +824,23 @@ struct OStorePageData
+ 
+ 	/** Construction.
+ 	 */
+-	OStorePageData (sal_uInt16 nPageSize)
++
++	OStorePageData (sal_uInt16 nPageSize, sal_uInt32 nDataOffset, sal_uInt8* pData = NULL)
+ 	{
+-		m_aDescr.m_nSize = nPageSize;
+-		m_aDescr.m_nUsed = size();
++        if (pData)
++            m_pPageHeader = (Representation *) pData;
++        else
++            m_pPageHeader = (Representation *) (((sal_uInt8*) this) + nDataOffset);
++		PageHeader ().m_aDescr.m_nSize = nPageSize;
++		PageHeader ().m_aDescr.m_nUsed = size();
+ 	}
+ 
+ 	OStorePageData& operator= (const OStorePageData& rOther)
+ 	{
+-		m_aGuard  = rOther.m_aGuard;
+-		m_aDescr  = rOther.m_aDescr;
+-		m_aMarked = rOther.m_aMarked;
+-		m_aUnused = rOther.m_aUnused;
++		PageHeader ().m_aGuard  = rOther.PageHeader ().m_aGuard;
++		PageHeader ().m_aDescr  = rOther.PageHeader ().m_aDescr;
++		PageHeader ().m_aMarked = rOther.PageHeader ().m_aMarked;
++		PageHeader ().m_aUnused = rOther.PageHeader ().m_aUnused;
+ 		return *this;
+ 	}
+ 
+@@ -568,10 +848,10 @@ struct OStorePageData
+ 	 */
+ 	sal_Bool operator== (const OStorePageData& rOther) const
+ 	{
+-		return ((m_aGuard  == rOther.m_aGuard ) &&
+-				(m_aDescr  == rOther.m_aDescr ) &&
+-				(m_aMarked == rOther.m_aMarked) &&
+-				(m_aUnused == rOther.m_aUnused)    );
++		return ((PageHeader ().m_aGuard  == rOther.PageHeader ().m_aGuard ) &&
++				(PageHeader ().m_aDescr  == rOther.PageHeader ().m_aDescr ) &&
++				(PageHeader ().m_aMarked == rOther.PageHeader ().m_aMarked) &&
++				(PageHeader ().m_aUnused == rOther.PageHeader ().m_aUnused)    );
+ 	}
+ 
+ 	/** swap (internal and external representation).
+@@ -579,10 +859,10 @@ struct OStorePageData
+ 	void swap ()
+ 	{
+ #ifdef OSL_BIGENDIAN
+-		m_aGuard.swap();
+-		m_aDescr.swap();
+-		m_aMarked.swap();
+-		m_aUnused.swap();
++		PageHeader ().m_aGuard.swap();
++		PageHeader ().m_aDescr.swap();
++		PageHeader ().m_aMarked.swap();
++		PageHeader ().m_aUnused.swap();
+ #endif /* OSL_BIGENDIAN */
+ 	}
+ 
+@@ -591,12 +871,12 @@ struct OStorePageData
+ 	void guard ()
+ 	{
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, &m_aDescr, size() - sizeof(G));
++		nCRC32 = G::crc32 (nCRC32, &PageHeader ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &PageHeader ().m_aDescr, size() - sizeof(G));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		m_aGuard.m_nCRC32 = nCRC32;
++		PageHeader ().m_aGuard.m_nCRC32 = nCRC32;
+ 	}
+ 
+ 	/** verify (external representation).
+@@ -604,12 +884,12 @@ struct OStorePageData
+ 	storeError verify ()
+ 	{
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, &m_aDescr, size() - sizeof(G));
++		nCRC32 = G::crc32 (nCRC32, &PageHeader ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &PageHeader ().m_aDescr, size() - sizeof(G));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		if (m_aGuard.m_nCRC32 != nCRC32)
++		if (PageHeader ().m_aGuard.m_nCRC32 != nCRC32)
+ 			return store_E_InvalidChecksum;
+ 		else
+ 			return store_E_None;
+@@ -860,6 +1140,10 @@ public:
+ 		ScanContext      &rCtx,
+ 		OStorePageObject &rPage);
+ 
++    /** version
++     */
++    sal_uInt32 version ();
++
+ protected:
+ 	/** Destruction (OReference).
+ 	 */
+@@ -868,7 +1152,8 @@ protected:
+ 	/** create (SuperBlock).
+ 	 */
+ 	storeError create (
+-		sal_uInt16 nPageSize = STORE_DEFAULT_PAGESIZE);
++                       sal_uInt16 nPageSize = STORE_DEFAULT_PAGESIZE,
++        sal_uInt16 nFormatVersion = STORE_FORMAT_V1);
+ 
+ 	/** Page Maintenance.
+ 	 */
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storcach.cxx store/source/storcach.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storcach.cxx	2006-09-17 03:12:04.000000000 +0200
++++ store/source/storcach.cxx	2007-03-08 12:17:33.000000000 +0100
+@@ -82,7 +82,8 @@ namespace store
+ struct OStorePageCacheEntry
+ {
+ 	typedef OStorePageCacheEntry self;
+-	typedef OStorePageData       data;
++    typedef OStorePageData       PD;
++	typedef sal_uInt8            data;
+ 	typedef OStorePageDescriptor D;
+ 
+ 	/** Representation.
+@@ -105,34 +106,33 @@ struct OStorePageCacheEntry
+ 
+ 	/** Construction.
+ 	*/
+-	OStorePageCacheEntry (const D& rDescr, const data& rData)
++	OStorePageCacheEntry (const D& rDescr, const PD& rData)
+ 		: m_aDescr (rDescr)
+ 	{
+-		sal_uInt16 nSize = m_aDescr.m_nSize;
+-		m_pData = new(nSize) data(nSize);
+-		__store_memcpy (m_pData, &rData, nSize);
++		m_pData = (data*) rtl_allocateMemory (m_aDescr.m_nSize);
++		__store_memcpy (m_pData, rData.Data (), m_aDescr.m_nSize);
+ 		m_pNext = m_pPrev = this;
+ 	}
+ 
+ 	/** Data assignment.
+ 	*/
+-	void assign (const D& rDescr, const data& rData)
++	void assign (const D& rDescr, const PD& rData)
+ 	{
+ 		m_aDescr.m_nAddr = rDescr.m_nAddr;
+ 		if (!(m_aDescr.m_nSize == rDescr.m_nSize))
+ 		{
+-			delete m_pData;
+-			m_pData = new(rDescr.m_nSize) data(rDescr.m_nSize);
++			rtl_freeMemory (m_pData);
++            m_pData = (data*) rtl_allocateMemory (m_aDescr.m_nSize);
+ 			m_aDescr.m_nSize = rDescr.m_nSize;
+ 		}
+-		__store_memcpy (m_pData, &rData, m_aDescr.m_nSize);
++		__store_memcpy (m_pData, rData.Data (), m_aDescr.m_nSize);
+ 	}
+ 
+ 	/** Destruction.
+ 	*/
+ 	~OStorePageCacheEntry (void)
+ 	{
+-		delete m_pData;
++        rtl_freeMemory (m_pData);
+ 	}
+ 
+ 	/** Comparison.
+@@ -528,7 +528,7 @@ storeError OStorePageCache::load (
+ 			}
+ 
+ 			// Load data and Leave.
+-			__store_memcpy (&rData, m_pHead->m_pData, rDescr.m_nSize);
++			__store_memcpy (rData.Data (), m_pHead->m_pData, rDescr.m_nSize);
+ 			STORE_METHOD_LEAVE(pMutex, store_E_None);
+ 		}
+ 	}
+@@ -538,7 +538,7 @@ storeError OStorePageCache::load (
+ 
+ 	// Load data.
+ 	storeError eErrCode = rBIOS.read (
+-		rDescr.m_nAddr, &rData, rDescr.m_nSize);
++		rDescr.m_nAddr, rData.Data (), rDescr.m_nSize);
+ 	if (eErrCode != store_E_None)
+ 		STORE_METHOD_LEAVE(pMutex, eErrCode);
+ 
+@@ -598,7 +598,7 @@ storeError OStorePageCache::update (
+ 				m_pHead->dirty();
+ 
+ 			// Update data and leave.
+-			__store_memcpy (m_pHead->m_pData, &rData, rDescr.m_nSize);
++			__store_memcpy (m_pHead->m_pData, rData.Data (), rDescr.m_nSize);
+ 			STORE_METHOD_LEAVE(pMutex, store_E_None);
+ 		}
+ 	}
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stordata.cxx store/source/stordata.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stordata.cxx	2006-09-17 03:12:18.000000000 +0200
++++ store/source/stordata.cxx	2007-03-15 14:02:00.000000000 +0100
+@@ -74,7 +74,7 @@ using namespace store;
+  * OStoreIndirectionPageData.
+  */
+ OStoreIndirectionPageData::OStoreIndirectionPageData (sal_uInt16 nPageSize)
+-	: OStorePageData (nPageSize)
++	: OStorePageData (nPageSize, sizeof (self))
+ {
+ 	initialize();
+ }
+@@ -84,14 +84,14 @@ OStoreIndirectionPageData::OStoreIndirec
+  */
+ void OStoreIndirectionPageData::initialize (void)
+ {
+-	base::m_aGuard.m_nMagic = STORE_MAGIC_INDIRECTPAGE;
+-	base::m_aDescr.m_nUsed = sal::static_int_cast< sal_uInt16 >(
+-        base::m_aDescr.m_nUsed + self::size());
+-	self::m_aGuard.m_nMagic = 0;
++	base::PageHeader ().m_aGuard.m_nMagic = STORE_MAGIC_INDIRECTPAGE;
++	base::PageHeader ().m_aDescr.m_nUsed = sal::static_int_cast< sal_uInt16 >(
++        base::PageHeader ().m_aDescr.m_nUsed + self::size());
++	self::DataRepresentation ().m_aGuard.m_nMagic = 0;
+ 
+ 	sal_uInt16 i, n = capacityCount();
+ 	for (i = 0; i < n; i++)
+-		m_pData[i] = STORE_PAGE_NULL;
++		DataRepresentation ().m_pData[i] = STORE_PAGE_NULL;
+ }
+ 
+ /*
+@@ -105,11 +105,11 @@ void OStoreIndirectionPageData::swap (
+ )
+ {
+ #ifdef OSL_BIGENDIAN
+-	m_aGuard.swap();
++	DataRepresentation ().m_aGuard.swap();
+ 
+ 	sal_uInt16 i, n = capacityCount (rDescr);
+ 	for (i = 0; i < n; i++)
+-		m_pData[i] = OSL_SWAPDWORD(m_pData[i]);
++		DataRepresentation ().m_pData[i] = OSL_SWAPDWORD(DataRepresentation ().m_pData[i]);
+ #endif /* OSL_BIGENDIAN */
+ }
+ 
+@@ -172,7 +172,7 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+ 
+ 	// Obtain data page location.
+-	sal_uInt32 nAddr = m_rPage.m_pData[nSingle];
++	sal_uInt32 nAddr = m_rPage.DataRepresentation ().m_pData[nSingle];
+ 	if (nAddr == STORE_PAGE_NULL)
+ 		STORE_METHOD_LEAVE(pMutex, store_E_NotExists);
+ 
+@@ -204,19 +204,19 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+ 
+ 	// Check single indirect page location.
+-	if (m_rPage.m_pData[nDouble] == STORE_PAGE_NULL)
++	if (m_rPage.DataRepresentation ().m_pData[nDouble] == STORE_PAGE_NULL)
+ 		STORE_METHOD_LEAVE(pMutex, store_E_NotExists);
+ 
+ 	// Check single indirect page buffer.
+ 	if (rpSingle == NULL)
+ 	{
+-		sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++		sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 		rpSingle = new(nPageSize) page(nPageSize);
+ 	}
+ 
+ 	// Load single indirect page.
+ 	OStoreIndirectionPageObject aSingle (*rpSingle);
+-	aSingle.location (m_rPage.m_pData[nDouble]);
++	aSingle.location (m_rPage.DataRepresentation ().m_pData[nDouble]);
+ 
+ 	storeError eErrCode = rBIOS.load (aSingle);
+ 	if (eErrCode != store_E_None)
+@@ -252,19 +252,19 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+ 
+ 	// Check double indirect page location.
+-	if (m_rPage.m_pData[nTriple] == STORE_PAGE_NULL)
++	if (m_rPage.DataRepresentation ().m_pData[nTriple] == STORE_PAGE_NULL)
+ 		STORE_METHOD_LEAVE(pMutex, store_E_NotExists);
+ 
+ 	// Check double indirect page buffer.
+ 	if (rpDouble == NULL)
+ 	{
+-		sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++		sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 		rpDouble = new(nPageSize) page(nPageSize);
+ 	}
+ 
+ 	// Load double indirect page.
+ 	OStoreIndirectionPageObject aDouble (*rpDouble);
+-	aDouble.location (m_rPage.m_pData[nTriple]);
++	aDouble.location (m_rPage.DataRepresentation ().m_pData[nTriple]);
+ 
+ 	storeError eErrCode = rBIOS.load (aDouble);
+ 	if (eErrCode != store_E_None)
+@@ -295,7 +295,7 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, eErrCode);
+ 
+ 	// Obtain data page location.
+-	rData.location (m_rPage.m_pData[nSingle]);
++	rData.location (m_rPage.DataRepresentation ().m_pData[nSingle]);
+ 	if (rData.location() == STORE_PAGE_NULL)
+ 	{
+ 		// Allocate data page.
+@@ -304,7 +304,7 @@ storeError OStoreIndirectionPageObject::
+ 			STORE_METHOD_LEAVE(pMutex, eErrCode);
+ 
+ 		// Save data page location.
+-		m_rPage.m_pData[nSingle] = rData.location();
++		m_rPage.DataRepresentation ().m_pData[nSingle] = rData.location();
+ 		touch();
+ 
+ 		// Save this page.
+@@ -345,13 +345,13 @@ storeError OStoreIndirectionPageObject::
+ 	// Check single indirect page buffer.
+ 	if (rpSingle == NULL)
+ 	{
+-		sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++		sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 		rpSingle = new(nPageSize) page(nPageSize);
+ 	}
+ 
+ 	// Obtain single indirect page location.
+ 	OStoreIndirectionPageObject aSingle (*rpSingle);
+-	aSingle.location (m_rPage.m_pData[nDouble]);
++	aSingle.location (m_rPage.DataRepresentation ().m_pData[nDouble]);
+ 	if (aSingle.location() == STORE_PAGE_NULL)
+ 	{
+ 		// Initialize single indirect page buffer.
+@@ -363,7 +363,7 @@ storeError OStoreIndirectionPageObject::
+ 			STORE_METHOD_LEAVE(pMutex, eErrCode);
+ 
+ 		// Save single indirect page location.
+-		m_rPage.m_pData[nDouble] = aSingle.location();
++		m_rPage.DataRepresentation ().m_pData[nDouble] = aSingle.location();
+ 		touch();
+ 
+ 		// Save this page.
+@@ -412,13 +412,13 @@ storeError OStoreIndirectionPageObject::
+ 	// Check double indirect page buffer.
+ 	if (rpDouble == NULL)
+ 	{
+-		sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++		sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 		rpDouble = new(nPageSize) page(nPageSize);
+ 	}
+ 
+ 	// Obtain double indirect page location.
+ 	OStoreIndirectionPageObject aDouble (*rpDouble);
+-	aDouble.location (m_rPage.m_pData[nTriple]);
++	aDouble.location (m_rPage.DataRepresentation ().m_pData[nTriple]);
+ 	if (aDouble.location() == STORE_PAGE_NULL)
+ 	{
+ 		// Initialize double indirect page buffer.
+@@ -430,7 +430,7 @@ storeError OStoreIndirectionPageObject::
+ 			STORE_METHOD_LEAVE(pMutex, eErrCode);
+ 
+ 		// Save double indirect page location.
+-		m_rPage.m_pData[nTriple] = aDouble.location();
++		m_rPage.DataRepresentation ().m_pData[nTriple] = aDouble.location();
+ 		touch();
+ 
+ 		// Save this page.
+@@ -471,7 +471,7 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+ 
+ 	// Save PageDescriptor.
+-	D aDescr (m_rPage.m_aDescr);
++	D aDescr (m_rPage.PageHeader ().m_aDescr);
+ 
+ 	// Acquire Lock.
+ 	storeError eErrCode = rBIOS.acquireLock (aDescr.m_nAddr, aDescr.m_nSize);
+@@ -482,7 +482,7 @@ storeError OStoreIndirectionPageObject::
+ 	for (i = n; i > nSingle; i--)
+ 	{
+ 		// Obtain data page location.
+-		sal_uInt32 nAddr = m_rPage.m_pData[i - 1];
++		sal_uInt32 nAddr = m_rPage.DataRepresentation ().m_pData[i - 1];
+ 		if (nAddr == STORE_PAGE_NULL) continue;
+ 
+ 		// Free data page.
+@@ -495,7 +495,7 @@ storeError OStoreIndirectionPageObject::
+ 		}
+ 
+ 		// Clear pointer to data page.
+-		m_rPage.m_pData[i - 1] = STORE_PAGE_NULL;
++		m_rPage.DataRepresentation ().m_pData[i - 1] = STORE_PAGE_NULL;
+ 		touch();
+ 	}
+ 
+@@ -540,7 +540,7 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+ 
+ 	// Save PageDescriptor.
+-	D aDescr (m_rPage.m_aDescr);
++	D aDescr (m_rPage.PageHeader ().m_aDescr);
+ 
+ 	// Acquire Lock.
+ 	storeError eErrCode = rBIOS.acquireLock (aDescr.m_nAddr, aDescr.m_nSize);
+@@ -552,13 +552,13 @@ storeError OStoreIndirectionPageObject::
+ 	for (i = n; i > nDouble + 1; i--)
+ 	{
+ 		// Obtain single indirect page location.
+-		sal_uInt32 nAddr = m_rPage.m_pData[i - 1];
++		sal_uInt32 nAddr = m_rPage.DataRepresentation ().m_pData[i - 1];
+ 		if (nAddr == STORE_PAGE_NULL) continue;
+ 
+ 		// Check single indirect page buffer.
+ 		if (rpSingle == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpSingle = new(nPageSize) page(nPageSize);
+ 		}
+ 
+@@ -595,18 +595,18 @@ storeError OStoreIndirectionPageObject::
+ 		}
+ 
+ 		// Clear pointer to single indirect page.
+-		m_rPage.m_pData[i - 1] = STORE_PAGE_NULL;
++		m_rPage.DataRepresentation ().m_pData[i - 1] = STORE_PAGE_NULL;
+ 		touch();
+ 	}
+ 
+ 	// Obtain last single indirect page location.
+-	sal_uInt32 nAddr = m_rPage.m_pData[nDouble];
++	sal_uInt32 nAddr = m_rPage.DataRepresentation ().m_pData[nDouble];
+ 	if (nAddr != STORE_PAGE_NULL)
+ 	{
+ 		// Check single indirect page buffer.
+ 		if (rpSingle == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpSingle = new(nPageSize) page(nPageSize);
+ 		}
+ 
+@@ -646,7 +646,7 @@ storeError OStoreIndirectionPageObject::
+ 			}
+ 
+ 			// Clear pointer to last single indirect page.
+-			m_rPage.m_pData[nDouble] = STORE_PAGE_NULL;
++			m_rPage.DataRepresentation ().m_pData[nDouble] = STORE_PAGE_NULL;
+ 			touch();
+ 		}
+ 	}
+@@ -695,7 +695,7 @@ storeError OStoreIndirectionPageObject::
+ 		STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+ 
+ 	// Save PageDescriptor.
+-	D aDescr (m_rPage.m_aDescr);
++	D aDescr (m_rPage.PageHeader ().m_aDescr);
+ 
+ 	// Acquire Lock.
+ 	storeError eErrCode = rBIOS.acquireLock (aDescr.m_nAddr, aDescr.m_nSize);
+@@ -707,13 +707,13 @@ storeError OStoreIndirectionPageObject::
+ 	for (i = n; i > nTriple + 1; i--)
+ 	{
+ 		// Obtain double indirect page location.
+-		sal_uInt32 nAddr = m_rPage.m_pData[i - 1];
++		sal_uInt32 nAddr = m_rPage.DataRepresentation ().m_pData[i - 1];
+ 		if (nAddr == STORE_PAGE_NULL) continue;
+ 
+ 		// Check double indirect page buffer.
+ 		if (rpDouble == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpDouble = new(nPageSize) page(nPageSize);
+ 		}
+ 
+@@ -751,18 +751,18 @@ storeError OStoreIndirectionPageObject::
+ 		}
+ 
+ 		// Clear pointer to double indirect page.
+-		m_rPage.m_pData[i - 1] = STORE_PAGE_NULL;
++		m_rPage.DataRepresentation ().m_pData[i - 1] = STORE_PAGE_NULL;
+ 		touch();
+ 	}
+ 
+ 	// Obtain last double indirect page location.
+-	sal_uInt32 nAddr = m_rPage.m_pData[nTriple];
++	sal_uInt32 nAddr = m_rPage.DataRepresentation ().m_pData[nTriple];
+ 	if (nAddr != STORE_PAGE_NULL)
+ 	{
+ 		// Check double indirect page buffer.
+ 		if (rpDouble == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpDouble = new(nPageSize) page(nPageSize);
+ 		}
+ 
+@@ -803,7 +803,7 @@ storeError OStoreIndirectionPageObject::
+ 			}
+ 
+ 			// Clear pointer to last double indirect page.
+-			m_rPage.m_pData[nTriple] = STORE_PAGE_NULL;
++			m_rPage.DataRepresentation ().m_pData[nTriple] = STORE_PAGE_NULL;
+ 			touch();
+ 		}
+ 	}
+@@ -831,13 +831,13 @@ storeError OStoreIndirectionPageObject::
+ 
+ /*========================================================================
+  *
+- * OStoreDirectoryDataBlock::LinkTable implementation.
++ * OStoreDirectoryDataBlockV1::LinkTable implementation.
+  *
+  *======================================================================*/
+ /*
+  * LinkTable::LinkTable.
+  */
+-OStoreDirectoryDataBlock::LinkTable::LinkTable (void)
++OStoreDirectoryDataBlockV1::LinkTable::LinkTable (void)
+ {
+ 	initialize();
+ }
+@@ -845,39 +845,87 @@ OStoreDirectoryDataBlock::LinkTable::Lin
+ /*
+  * LinkTable::initialize.
+  */
+-void OStoreDirectoryDataBlock::LinkTable::initialize (void)
++void OStoreDirectoryDataBlockV1::LinkTable::initialize (void)
+ {
+ 	sal_Int32 i;
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_DIRECT; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DIRECT_V1; i++)
+ 		m_pDirect[i] = STORE_PAGE_NULL;
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_SINGLE; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_SINGLE_V1; i++)
+ 		m_pSingle[i] = STORE_PAGE_NULL;
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_DOUBLE; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DOUBLE_V1; i++)
+ 		m_pDouble[i] = STORE_PAGE_NULL;
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_TRIPLE; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_TRIPLE_V1; i++)
+ 		m_pTriple[i] = STORE_PAGE_NULL;
+ }
+ 
+ /*
+  * LinkTable::swap.
+  */
+-void OStoreDirectoryDataBlock::LinkTable::swap (void)
++void OStoreDirectoryDataBlockV1::LinkTable::swap (void)
+ {
+ #ifdef OSL_BIGENDIAN
+ 	sal_Int32 i;
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_DIRECT; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DIRECT_V1; i++)
+ 		m_pDirect[i] = OSL_SWAPDWORD(m_pDirect[i]);
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_SINGLE; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_SINGLE_V1; i++)
+ 		m_pSingle[i] = OSL_SWAPDWORD(m_pSingle[i]);
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_DOUBLE; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DOUBLE_V1; i++)
+ 		m_pDouble[i] = OSL_SWAPDWORD(m_pDouble[i]);
+-	for (i = 0; i < STORE_LIMIT_DATAPAGE_TRIPLE; i++)
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_TRIPLE_V1; i++)
+ 		m_pTriple[i] = OSL_SWAPDWORD(m_pTriple[i]);
+ #endif /* OSL_BIGENDIAN */
+ }
+ 
+ /*========================================================================
+  *
++ * OStoreDirectoryDataBlockV2::LinkTable implementation.
++ *
++ *======================================================================*/
++/*
++ * LinkTable::LinkTable.
++ */
++OStoreDirectoryDataBlockV2::LinkTable::LinkTable (void)
++{
++	initialize();
++}
++
++/*
++ * LinkTable::initialize.
++ */
++void OStoreDirectoryDataBlockV2::LinkTable::initialize (void)
++{
++	sal_Int32 i;
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DIRECT_V2; i++)
++		m_pDirect[i] = STORE_PAGE_NULL;
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_SINGLE_V2; i++)
++		m_pSingle[i] = STORE_PAGE_NULL;
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DOUBLE_V2; i++)
++		m_pDouble[i] = STORE_PAGE_NULL;
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_TRIPLE_V2; i++)
++		m_pTriple[i] = STORE_PAGE_NULL;
++}
++
++/*
++ * LinkTable::swap.
++ */
++void OStoreDirectoryDataBlockV2::LinkTable::swap (void)
++{
++#ifdef OSL_BIGENDIAN
++	sal_Int32 i;
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DIRECT_V2; i++)
++		m_pDirect[i] = OSL_SWAPDWORD(m_pDirect[i]);
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_SINGLE_V2; i++)
++		m_pSingle[i] = OSL_SWAPDWORD(m_pSingle[i]);
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_DOUBLE_V2; i++)
++		m_pDouble[i] = OSL_SWAPDWORD(m_pDouble[i]);
++	for (i = 0; i < STORE_LIMIT_DATAPAGE_TRIPLE_V2; i++)
++		m_pTriple[i] = OSL_SWAPDWORD(m_pTriple[i]);
++#endif /* OSL_BIGENDIAN */
++}
++
++
++/*========================================================================
++ *
+  * OStoreDirectoryPageObject implementation.
+  *
+  *======================================================================*/
+@@ -924,13 +972,13 @@ storeError OStoreDirectoryPageObject::ve
+ OStoreDirectoryPageData::ChunkScope
+ OStoreDirectoryPageObject::scope (
+ 	sal_uInt32                       nPage,
+-	page::DataBlock::LinkDescriptor &rDescr) const
++	page::DataBlockT::LinkDescriptor &rDescr) const
+ {
+ 	typedef OStoreIndirectionPageData indrct;
+ 	sal_uInt32 index0, index1, index2, index3;
+ 
+ 	// direct.
+-	sal_uInt32 nCount = m_rPage.m_aDataBlock.directCount();
++	sal_uInt32 nCount = m_rPage.DataBlock ().directCount();
+ 	sal_uInt32 nLimit = nCount;
+ 	if (nPage < nLimit)
+ 	{
+@@ -946,8 +994,8 @@ OStoreDirectoryPageObject::scope (
+ 	nPage -= nLimit;
+ 
+ 	// single indirect.
+-	sal_uInt32 nCapacity = indrct::capacityCount(m_rPage.m_aDescr);
+-	nCount = m_rPage.m_aDataBlock.singleCount();
++	sal_uInt32 nCapacity = indrct::capacityCount(m_rPage.PageHeader ().m_aDescr);
++	nCount = m_rPage.DataBlock ().singleCount();
+ 	nLimit = nCount * nCapacity;
+ 	if (nPage < nLimit)
+ 	{
+@@ -974,7 +1022,7 @@ OStoreDirectoryPageObject::scope (
+ 	nPage -= nLimit;
+ 
+ 	// double indirect.
+-	nCount = m_rPage.m_aDataBlock.doubleCount();
++	nCount = m_rPage.DataBlock ().doubleCount();
+ 	nLimit = nCount * nCapacity * nCapacity;
+ 	if (nPage < nLimit)
+ 	{
+@@ -1007,7 +1055,7 @@ OStoreDirectoryPageObject::scope (
+ 	nPage -= nLimit;
+ 
+ 	// triple indirect.
+-	nCount = m_rPage.m_aDataBlock.tripleCount();
++	nCount = m_rPage.DataBlock ().tripleCount();
+ 	nLimit = nCount * nCapacity * nCapacity * nCapacity;
+ 	if (nPage < nLimit)
+ 	{
+@@ -1064,7 +1112,7 @@ storeError OStoreDirectoryPageObject::ge
+ 	STORE_METHOD_ENTER(pMutex);
+ 
+ 	// Determine scope and link indices.
+-	page::DataBlock::LinkDescriptor aLink;
++	page::DataBlockT::LinkDescriptor aLink;
+ 	page::ChunkScope eScope = scope (nPage, aLink);
+ 
+ 	storeError eErrCode = store_E_None;
+@@ -1085,7 +1133,7 @@ storeError OStoreDirectoryPageObject::ge
+ 
+ 		if (rpSingle == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpSingle = new(nPageSize) indirect(nPageSize);
+ 		}
+ 
+@@ -1108,7 +1156,7 @@ storeError OStoreDirectoryPageObject::ge
+ 
+ 		if (rpDouble == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpDouble = new(nPageSize) indirect(nPageSize);
+ 		}
+ 
+@@ -1133,7 +1181,7 @@ storeError OStoreDirectoryPageObject::ge
+ 
+ 		if (rpTriple == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpTriple = new(nPageSize) indirect(nPageSize);
+ 		}
+ 
+@@ -1184,7 +1232,7 @@ storeError OStoreDirectoryPageObject::pu
+ 	STORE_METHOD_ENTER(pMutex);
+ 
+ 	// Determine scope and link indices.
+-	page::DataBlock::LinkDescriptor aLink;
++	page::DataBlockT::LinkDescriptor aLink;
+ 	page::ChunkScope eScope = scope (nPage, aLink);
+ 
+ 	storeError eErrCode = store_E_None;
+@@ -1208,7 +1256,7 @@ storeError OStoreDirectoryPageObject::pu
+ 	{
+ 		if (rpSingle == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpSingle = new(nPageSize) indirect(nPageSize);
+ 		}
+ 
+@@ -1239,7 +1287,7 @@ storeError OStoreDirectoryPageObject::pu
+ 	{
+ 		if (rpDouble == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpDouble = new(nPageSize) indirect(nPageSize);
+ 		}
+ 
+@@ -1272,7 +1320,7 @@ storeError OStoreDirectoryPageObject::pu
+ 	{
+ 		if (rpTriple == NULL)
+ 		{
+-			sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++			sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 			rpTriple = new(nPageSize) indirect(nPageSize);
+ 		}
+ 
+@@ -1335,7 +1383,7 @@ storeError OStoreDirectoryPageObject::tr
+ 	STORE_METHOD_ENTER(pMutex);
+ 
+ 	// Determine scope and link indices.
+-	page::DataBlock::LinkDescriptor aLink;
++	page::DataBlockT::LinkDescriptor aLink;
+ 	page::ChunkScope eScope = scope (nPage, aLink);
+ 
+ 	storeError eErrCode = store_E_None;
+@@ -1404,7 +1452,7 @@ storeError OStoreDirectoryPageObject::tr
+ 			// Check single indirect page buffer.
+ 			if (rpSingle == NULL)
+ 			{
+-				sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++				sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 				rpSingle = new(nPageSize) indirect(nPageSize);
+ 			}
+ 
+@@ -1461,7 +1509,7 @@ storeError OStoreDirectoryPageObject::tr
+ 			// Check double indirect page buffer.
+ 			if (rpDouble == NULL)
+ 			{
+-				sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++				sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 				rpDouble = new(nPageSize) indirect(nPageSize);
+ 			}
+ 
+@@ -1512,7 +1560,7 @@ storeError OStoreDirectoryPageObject::tr
+ 			// Check triple indirect page buffer.
+ 			if (rpTriple == NULL)
+ 			{
+-				sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++				sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 				rpTriple = new(nPageSize) indirect(nPageSize);
+ 			}
+ 
+@@ -1583,7 +1631,7 @@ storeError OStoreDirectoryPageObject::tr
+ 	if (eScope == page::SCOPE_DIRECT)
+ 	{
+ 		// Truncate direct data pages.
+-		sal_uInt16 i, n = m_rPage.m_aDataBlock.directCount();
++		sal_uInt16 i, n = m_rPage.DataBlock ().directCount();
+ 		for (i = n; i > nRemain; i--)
+ 		{
+ 			// Obtain data page location.
+@@ -1607,7 +1655,7 @@ storeError OStoreDirectoryPageObject::tr
+ 	if (eScope == page::SCOPE_SINGLE)
+ 	{
+ 		// Truncate single indirect pages.
+-		sal_uInt16 i, n = m_rPage.m_aDataBlock.singleCount();
++		sal_uInt16 i, n = m_rPage.DataBlock ().singleCount();
+ 		for (i = n; i > nRemain; i--)
+ 		{
+ 			// Obtain single indirect page location.
+@@ -1617,7 +1665,7 @@ storeError OStoreDirectoryPageObject::tr
+ 			// Check single indirect page buffer.
+ 			if (rpSingle == NULL)
+ 			{
+-				sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++				sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 				rpSingle = new(nPageSize) indirect(nPageSize);
+ 			}
+ 
+@@ -1651,7 +1699,7 @@ storeError OStoreDirectoryPageObject::tr
+ 	if (eScope == page::SCOPE_DOUBLE)
+ 	{
+ 		// Truncate double indirect pages.
+-		sal_uInt16 i, n = m_rPage.m_aDataBlock.doubleCount();
++		sal_uInt16 i, n = m_rPage.DataBlock ().doubleCount();
+ 		for (i = n; i > nRemain; i--)
+ 		{
+ 			// Obtain double indirect page location.
+@@ -1661,7 +1709,7 @@ storeError OStoreDirectoryPageObject::tr
+ 			// Check double indirect page buffer.
+ 			if (rpDouble == NULL)
+ 			{
+-				sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++				sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 				rpDouble = new(nPageSize) indirect(nPageSize);
+ 			}
+ 
+@@ -1695,7 +1743,7 @@ storeError OStoreDirectoryPageObject::tr
+ 	if (eScope == page::SCOPE_TRIPLE)
+ 	{
+ 		// Truncate triple indirect pages.
+-		sal_uInt16 i, n = m_rPage.m_aDataBlock.tripleCount();
++		sal_uInt16 i, n = m_rPage.DataBlock ().tripleCount();
+ 		for (i = n; i > nRemain; i--)
+ 		{
+ 			// Obtain triple indirect page location.
+@@ -1705,7 +1753,7 @@ storeError OStoreDirectoryPageObject::tr
+ 			// Check triple indirect page buffer.
+ 			if (rpTriple == NULL)
+ 			{
+-				sal_uInt16 nPageSize = m_rPage.m_aDescr.m_nSize;
++				sal_uInt16 nPageSize = m_rPage.PageHeader ().m_aDescr.m_nSize;
+ 				rpTriple = new(nPageSize) indirect(nPageSize);
+ 			}
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stordata.hxx store/source/stordata.hxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stordata.hxx	2006-06-20 02:33:22.000000000 +0200
++++ store/source/stordata.hxx	2007-03-20 12:34:49.000000000 +0100
+@@ -76,10 +76,6 @@ struct OStoreDataPageData : public store
+ 
+ 	typedef OStorePageDescriptor D;
+ 
+-	/** Representation.
+-	*/
+-	sal_uInt8 m_pData[1];
+-
+ 	/** size.
+ 	*/
+ 	static sal_uInt16 size (void)
+@@ -87,6 +83,11 @@ struct OStoreDataPageData : public store
+ 		return sal_uInt16(0);
+ 	}
+ 
++    sal_uInt8* RepresentationData ()
++    {
++        return base::Data () + base::size ();
++    }
++
+ 	/** capacity.
+ 	*/
+ 	static sal_uInt16 capacity (const D& rDescr)
+@@ -96,7 +97,7 @@ struct OStoreDataPageData : public store
+ 
+ 	sal_uInt16 capacity (void) const
+ 	{
+-		return self::capacity (base::m_aDescr);
++		return self::capacity (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** usage.
+@@ -108,23 +109,23 @@ struct OStoreDataPageData : public store
+ 
+ 	sal_uInt16 usage (void) const
+ 	{
+-		return self::usage (base::m_aDescr);
++		return self::usage (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** initialize.
+ 	*/
+ 	void initialize (void)
+ 	{
+-		base::m_aGuard.m_nMagic = STORE_MAGIC_DATAPAGE;
+-		base::m_aDescr.m_nUsed = sal::static_int_cast< sal_uInt16 >(
+-            base::m_aDescr.m_nUsed + self::size());
+-		rtl_zeroMemory (m_pData, capacity());
++		base::PageHeader ().m_aGuard.m_nMagic = STORE_MAGIC_DATAPAGE;
++		base::PageHeader ().m_aDescr.m_nUsed = sal::static_int_cast< sal_uInt16 >(
++            base::PageHeader ().m_aDescr.m_nUsed + self::size());
++		rtl_zeroMemory (RepresentationData (), capacity());
+ 	}
+ 
+ 	/** Construction.
+ 	*/
+ 	OStoreDataPageData (sal_uInt16 nPageSize)
+-		: base (nPageSize)
++		: base (nPageSize, sizeof (self))
+ 	{
+ 		initialize();
+ 	}
+@@ -173,8 +174,15 @@ struct OStoreIndirectionPageData : publi
+ 
+ 	/** Representation.
+ 	*/
+-	G          m_aGuard;
+-	sal_uInt32 m_pData[1];
++    struct Representation {
++        G          m_aGuard;
++        sal_uInt32 m_pData[1];
++    };
++
++    inline Representation& DataRepresentation () const
++    {
++        return *(Representation *) (Data () + base::size ());
++    }
+ 
+ 	/** size.
+ 	*/
+@@ -191,7 +199,7 @@ struct OStoreIndirectionPageData : publi
+ 	}
+ 	sal_uInt16 capacity (void) const
+ 	{
+-		return self::capacity (base::m_aDescr);
++		return self::capacity (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** capacityCount.
+@@ -214,7 +222,7 @@ struct OStoreIndirectionPageData : publi
+ 	*/
+ 	sal_Bool operator== (const OStoreIndirectionPageData& rOther) const
+ 	{
+-		return (base::operator==(rOther) && (m_aGuard == rOther.m_aGuard));
++		return (base::operator==(rOther) && (DataRepresentation ().m_aGuard == rOther.DataRepresentation ().m_aGuard));
+ 	}
+ 
+ 	/** swap (internal and external representation).
+@@ -226,12 +234,12 @@ struct OStoreIndirectionPageData : publi
+ 	void guard (const D& rDescr)
+ 	{
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, m_pData, capacity(rDescr));
++		nCRC32 = G::crc32 (nCRC32, &DataRepresentation ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, DataRepresentation ().m_pData, capacity(rDescr));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		m_aGuard.m_nCRC32 = nCRC32;
++		DataRepresentation ().m_aGuard.m_nCRC32 = nCRC32;
+ 	}
+ 
+ 	/** verify (external representation).
+@@ -239,12 +247,12 @@ struct OStoreIndirectionPageData : publi
+ 	storeError verify (const D& rDescr)
+ 	{
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, m_pData, capacity(rDescr));
++		nCRC32 = G::crc32 (nCRC32, &DataRepresentation ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, DataRepresentation ().m_pData, capacity(rDescr));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		if (m_aGuard.m_nCRC32 != nCRC32)
++		if (DataRepresentation ().m_aGuard.m_nCRC32 != nCRC32)
+ 			return store_E_InvalidChecksum;
+ 		else
+ 			return store_E_None;
+@@ -368,12 +376,17 @@ inline OStoreIndirectionPageObject::OSto
+  * OStoreDirectoryDataBlock.
+  *
+  *======================================================================*/
+-#define STORE_LIMIT_DATAPAGE_DIRECT 16
+-#define STORE_LIMIT_DATAPAGE_SINGLE  8
+-#define STORE_LIMIT_DATAPAGE_DOUBLE  1
+-#define STORE_LIMIT_DATAPAGE_TRIPLE  1
++#define STORE_LIMIT_DATAPAGE_DIRECT_V1 16
++#define STORE_LIMIT_DATAPAGE_SINGLE_V1 8
++#define STORE_LIMIT_DATAPAGE_DOUBLE_V1 1
++#define STORE_LIMIT_DATAPAGE_TRIPLE_V1 1
++
++#define STORE_LIMIT_DATAPAGE_DIRECT_V2 4
++#define STORE_LIMIT_DATAPAGE_SINGLE_V2 2
++#define STORE_LIMIT_DATAPAGE_DOUBLE_V2 1
++#define STORE_LIMIT_DATAPAGE_TRIPLE_V2 1
+ 
+-struct OStoreDirectoryDataBlock
++struct OStoreDirectoryDataBlockA
+ {
+ 	typedef OStorePageGuard G;
+ 
+@@ -398,16 +411,83 @@ struct OStoreDirectoryDataBlock
+ 		{}
+ 	};
+ 
++	/** initialize.
++	*/
++	virtual void initialize (void) = 0;
++
++	/** Comparison.
++	*/
++	sal_Bool operator== (const OStoreDirectoryDataBlockA& rOther) const
++	{
++		return (Guard () == rOther.Guard ());
++	}
++
++	/** size.
++	*/
++	virtual sal_uInt16 size (void) = 0;
++
++    /** Properties.
++     */
++    virtual G Guard () const = 0;
++
++    virtual sal_uInt32 DataLen () = 0;
++    virtual void SetDataLen (sal_uInt32 len) = 0;
++
++//  	/** Comparison.
++//  	*/
++//  	virtual sal_Bool operator== (const OStoreDirectoryDataBlockV2& rOther) const = 0;
++
++	/** swap (internal and external representation).
++	*/
++	virtual void swap (void) = 0;
++
++	/** guard (external representation).
++	*/
++	virtual void guard (void) = 0;
++
++	/** verify (external representation).
++	*/
++	virtual storeError verify (void) = 0;
++
++	/** direct.
++	*/
++	virtual sal_uInt16 directCount (void) const = 0;
++	virtual sal_uInt32 directLink (sal_uInt16 nIndex) const = 0;
++	virtual void directLink (sal_uInt16 nIndex, sal_uInt32 nAddr) = 0;
++
++	/** single.
++	*/
++	virtual sal_uInt16 singleCount (void) const = 0;
++	virtual sal_uInt32 singleLink (sal_uInt16 nIndex) const = 0;
++	virtual void singleLink (sal_uInt16 nIndex, sal_uInt32 nAddr) = 0;
++
++	/** double.
++	*/
++	virtual sal_uInt16 doubleCount (void) const = 0;
++	virtual sal_uInt32 doubleLink (sal_uInt16 nIndex) const = 0;
++	virtual void doubleLink (sal_uInt16 nIndex, sal_uInt32 nAddr) = 0;
++
++	/** triple.
++	*/
++	virtual sal_uInt16 tripleCount (void) const = 0;
++	virtual sal_uInt32 tripleLink (sal_uInt16 nIndex) const = 0;
++	virtual void tripleLink (sal_uInt16 nIndex, sal_uInt32 nAddr) = 0;
++};
++
++struct OStoreDirectoryDataBlockV1 : OStoreDirectoryDataBlockA
++{
++	typedef OStorePageGuard G;
++
+ 	/** LinkTable.
+ 	*/
+ 	struct LinkTable
+ 	{
+ 		/** Representation.
+ 		*/
+-		sal_uInt32 m_pDirect[STORE_LIMIT_DATAPAGE_DIRECT];
+-		sal_uInt32 m_pSingle[STORE_LIMIT_DATAPAGE_SINGLE];
+-		sal_uInt32 m_pDouble[STORE_LIMIT_DATAPAGE_DOUBLE];
+-		sal_uInt32 m_pTriple[STORE_LIMIT_DATAPAGE_TRIPLE];
++		sal_uInt32 m_pDirect[STORE_LIMIT_DATAPAGE_DIRECT_V1];
++		sal_uInt32 m_pSingle[STORE_LIMIT_DATAPAGE_SINGLE_V1];
++		sal_uInt32 m_pDouble[STORE_LIMIT_DATAPAGE_DOUBLE_V1];
++		sal_uInt32 m_pTriple[STORE_LIMIT_DATAPAGE_TRIPLE_V1];
+ 
+ 		/** Construction.
+ 		*/
+@@ -419,15 +499,235 @@ struct OStoreDirectoryDataBlock
+ 		void swap (void);
+ 	};
+ 
+-	/** Representation.
++    struct Representation {
++        G          m_aGuard;
++        LinkTable  m_aTable;
++        sal_uInt32 m_nDataLen;
++    };
++
++    Representation* m_pRepresentation;
++
++	/** size.
++	*/
++	sal_uInt16 size (void)
++	{
++		return sal_uInt16(sizeof(G) + sizeof(LinkTable) + sizeof(sal_uInt32));
++	}
++
++	/** initialize.
++	*/
++	void initialize (void)
++	{
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard = G();
++            m_pRepresentation->m_aTable.initialize();
++            m_pRepresentation->m_nDataLen = 0;
++        }
++	}
++
++	/** Construction.
++	*/
++	OStoreDirectoryDataBlockV1 (sal_uInt8 *data)
++		: m_pRepresentation ((Representation *) data)
++	{
++        initialize ();
++    }
++
++    /** Properties.
++     */
++    G Guard () const
++    {
++        return m_pRepresentation->m_aGuard;
++    }
++
++    sal_uInt32 DataLen ()
++    {
++        if (m_pRepresentation)
++            return m_pRepresentation->m_nDataLen;
++        else
++            return 0;
++    }
++
++    void SetDataLen (sal_uInt32 len)
++    {
++        if (m_pRepresentation)
++            m_pRepresentation->m_nDataLen = len;
++    }
++
++	/** Comparison.
++	*/
++	sal_Bool operator== (const OStoreDirectoryDataBlockV1& rOther) const
++	{
++        if (m_pRepresentation == NULL && rOther.m_pRepresentation == NULL)
++            return sal_True;
++
++        if (m_pRepresentation == NULL || rOther.m_pRepresentation == NULL)
++            return sal_False;
++
++		return (m_pRepresentation->m_aGuard == rOther.m_pRepresentation->m_aGuard);
++	}
++
++	/** swap (internal and external representation).
++	*/
++	void swap (void)
++	{
++#ifdef OSL_BIGENDIAN
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard.swap();
++            m_pRepresentation->m_aTable.swap();
++            m_pRepresentation->m_nDataLen = OSL_SWAPDWORD(m_pRepresentation->m_nDataLen);
++        }
++#endif /* OSL_BIGENDIAN */
++	}
++
++	/** guard (external representation).
++	*/
++	void guard (void)
++	{
++        if (!m_pRepresentation)
++            return;
++
++		sal_uInt32 nCRC32 = 0;
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aTable, size() - sizeof(G));
++#ifdef OSL_BIGENDIAN
++		nCRC32 = OSL_SWAPDWORD(nCRC32);
++#endif /* OSL_BIGENDIAN */
++		m_pRepresentation->m_aGuard.m_nCRC32 = nCRC32;
++	}
++
++	/** verify (external representation).
+ 	*/
+-	G          m_aGuard;
+-	LinkTable  m_aTable;
+-	sal_uInt32 m_nDataLen;
++	storeError verify (void)
++	{
++        if (!m_pRepresentation)
++            return store_E_NotExists;
++
++		sal_uInt32 nCRC32 = 0;
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aTable, size() - sizeof(G));
++#ifdef OSL_BIGENDIAN
++		nCRC32 = OSL_SWAPDWORD(nCRC32);
++#endif /* OSL_BIGENDIAN */
++		if (m_pRepresentation->m_aGuard.m_nCRC32 != nCRC32)
++			return store_E_InvalidChecksum;
++		else
++			return store_E_None;
++	}
++
++	/** direct.
++	*/
++	virtual sal_uInt16 directCount (void) const
++	{
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_DIRECT_V1));
++	}
++	virtual sal_uInt32 directLink (sal_uInt16 nIndex) const
++	{
++		if (m_pRepresentation && nIndex < directCount())
++			return m_pRepresentation->m_aTable.m_pDirect[nIndex];
++		else
++			return STORE_PAGE_NULL;
++	}
++	virtual void directLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	{
++		if (m_pRepresentation && nIndex < directCount())
++			m_pRepresentation->m_aTable.m_pDirect[nIndex] = nAddr;
++	}
++
++	/** single.
++	*/
++    virtual  sal_uInt16 singleCount (void) const
++	{
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_SINGLE_V1));
++	}
++	virtual sal_uInt32 singleLink (sal_uInt16 nIndex) const
++	{
++		if (m_pRepresentation && nIndex < singleCount())
++			return m_pRepresentation->m_aTable.m_pSingle[nIndex];
++		else
++			return STORE_PAGE_NULL;
++	}
++	virtual void singleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	{
++		if (m_pRepresentation && nIndex < singleCount())
++			m_pRepresentation->m_aTable.m_pSingle[nIndex] = nAddr;
++	}
++
++	/** double.
++	*/
++	virtual sal_uInt16 doubleCount (void) const
++	{
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_DOUBLE_V1));
++	}
++	virtual sal_uInt32 doubleLink (sal_uInt16 nIndex) const
++	{
++		if (m_pRepresentation && nIndex < doubleCount())
++			return m_pRepresentation->m_aTable.m_pDouble[nIndex];
++		else
++			return STORE_PAGE_NULL;
++	}
++	virtual void doubleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	{
++		if (m_pRepresentation && nIndex < doubleCount())
++			m_pRepresentation->m_aTable.m_pDouble[nIndex] = nAddr;
++	}
++
++	/** triple.
++	*/
++	virtual sal_uInt16 tripleCount (void) const
++	{
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_TRIPLE_V1));
++	}
++	virtual sal_uInt32 tripleLink (sal_uInt16 nIndex) const
++	{
++		if (m_pRepresentation && nIndex < tripleCount())
++			return m_pRepresentation->m_aTable.m_pTriple[nIndex];
++		else
++			return STORE_PAGE_NULL;
++	}
++	virtual void tripleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	{
++		if (m_pRepresentation && nIndex < tripleCount())
++			m_pRepresentation->m_aTable.m_pTriple[nIndex] = nAddr;
++	}
++};
++
++struct OStoreDirectoryDataBlockV2 : OStoreDirectoryDataBlockA
++{
++	typedef OStorePageGuard G;
++
++	/** LinkTable.
++	*/
++	struct LinkTable
++	{
++		/** Representation.
++		*/
++		sal_uInt32 m_pDirect[STORE_LIMIT_DATAPAGE_DIRECT_V2];
++		sal_uInt32 m_pSingle[STORE_LIMIT_DATAPAGE_SINGLE_V2];
++		sal_uInt32 m_pDouble[STORE_LIMIT_DATAPAGE_DOUBLE_V2];
++		sal_uInt32 m_pTriple[STORE_LIMIT_DATAPAGE_TRIPLE_V2];
++
++		/** Construction.
++		*/
++		LinkTable (void);
++		void initialize (void);
++
++		/** swap (internal and external representation).
++		*/
++		void swap (void);
++	};
++
++    struct Representation {
++        G          m_aGuard;
++        LinkTable  m_aTable;
++        sal_uInt32 m_nDataLen;
++    };
++
++    Representation* m_pRepresentation;
+ 
+ 	/** size.
+ 	*/
+-	static sal_uInt16 size (void)
++	sal_uInt16 size (void)
+ 	{
+ 		return sal_uInt16(sizeof(G) + sizeof(LinkTable) + sizeof(sal_uInt32));
+ 	}
+@@ -436,22 +733,53 @@ struct OStoreDirectoryDataBlock
+ 	*/
+ 	void initialize (void)
+ 	{
+-		m_aGuard = G();
+-		m_aTable.initialize();
+-		m_nDataLen = 0;
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard = G();
++            m_pRepresentation->m_aTable.initialize();
++            m_pRepresentation->m_nDataLen = 0;
++        }
+ 	}
+ 
+ 	/** Construction.
+ 	*/
+-	OStoreDirectoryDataBlock (void)
+-		: m_nDataLen (0)
+-	{}
++	OStoreDirectoryDataBlockV2 (sal_uInt8 *data)
++		: m_pRepresentation ((Representation *) data)
++	{
++        initialize ();
++    }
++
++    /** Properties.
++     */
++    G Guard () const
++    {
++        return m_pRepresentation->m_aGuard;
++    }
++
++    sal_uInt32 DataLen ()
++    {
++        if (m_pRepresentation)
++            return m_pRepresentation->m_nDataLen;
++        else
++            return 0;
++    }
++
++    void SetDataLen (sal_uInt32 len)
++    {
++        if (m_pRepresentation)
++            m_pRepresentation->m_nDataLen = len;
++    }
+ 
+ 	/** Comparison.
+ 	*/
+-	sal_Bool operator== (const OStoreDirectoryDataBlock& rOther) const
++	sal_Bool operator== (const OStoreDirectoryDataBlockV2& rOther) const
+ 	{
+-		return (m_aGuard == rOther.m_aGuard);
++        if (m_pRepresentation == NULL && rOther.m_pRepresentation == NULL)
++            return sal_True;
++
++        if (m_pRepresentation == NULL || rOther.m_pRepresentation == NULL)
++            return sal_False;
++
++		return (m_pRepresentation->m_aGuard == rOther.m_pRepresentation->m_aGuard);
+ 	}
+ 
+ 	/** swap (internal and external representation).
+@@ -459,9 +784,11 @@ struct OStoreDirectoryDataBlock
+ 	void swap (void)
+ 	{
+ #ifdef OSL_BIGENDIAN
+-		m_aGuard.swap();
+-		m_aTable.swap();
+-		m_nDataLen = OSL_SWAPDWORD(m_nDataLen);
++        if (m_pRepresentation) {
++            m_pRepresentation->m_aGuard.swap();
++            m_pRepresentation->m_aTable.swap();
++            m_pRepresentation->m_nDataLen = OSL_SWAPDWORD(m_pRepresentation->m_nDataLen);
++        }
+ #endif /* OSL_BIGENDIAN */
+ 	}
+ 
+@@ -469,26 +796,32 @@ struct OStoreDirectoryDataBlock
+ 	*/
+ 	void guard (void)
+ 	{
++        if (!m_pRepresentation)
++            return;
++
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, &m_aTable, size() - sizeof(G));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aTable, size() - sizeof(G));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		m_aGuard.m_nCRC32 = nCRC32;
++		m_pRepresentation->m_aGuard.m_nCRC32 = nCRC32;
+ 	}
+ 
+ 	/** verify (external representation).
+ 	*/
+ 	storeError verify (void)
+ 	{
++        if (!m_pRepresentation)
++            return store_E_NotExists;
++
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, &m_aTable, size() - sizeof(G));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, &m_pRepresentation->m_aTable, size() - sizeof(G));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		if (m_aGuard.m_nCRC32 != nCRC32)
++		if (m_pRepresentation->m_aGuard.m_nCRC32 != nCRC32)
+ 			return store_E_InvalidChecksum;
+ 		else
+ 			return store_E_None;
+@@ -496,78 +829,78 @@ struct OStoreDirectoryDataBlock
+ 
+ 	/** direct.
+ 	*/
+-	static sal_uInt16 directCount (void)
++	virtual sal_uInt16 directCount (void) const
+ 	{
+-		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_DIRECT));
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_DIRECT_V2));
+ 	}
+-	sal_uInt32 directLink (sal_uInt16 nIndex) const
++	virtual sal_uInt32 directLink (sal_uInt16 nIndex) const
+ 	{
+-		if (nIndex < directCount())
+-			return m_aTable.m_pDirect[nIndex];
++		if (m_pRepresentation && nIndex < directCount())
++			return m_pRepresentation->m_aTable.m_pDirect[nIndex];
+ 		else
+ 			return STORE_PAGE_NULL;
+ 	}
+-	void directLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	virtual void directLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		if (nIndex < directCount())
+-			m_aTable.m_pDirect[nIndex] = nAddr;
++		if (m_pRepresentation && nIndex < directCount())
++			m_pRepresentation->m_aTable.m_pDirect[nIndex] = nAddr;
+ 	}
+ 
+ 	/** single.
+ 	*/
+-	static sal_uInt16 singleCount (void)
++    virtual  sal_uInt16 singleCount (void) const
+ 	{
+-		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_SINGLE));
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_SINGLE_V2));
+ 	}
+-	sal_uInt32 singleLink (sal_uInt16 nIndex) const
++	virtual sal_uInt32 singleLink (sal_uInt16 nIndex) const
+ 	{
+-		if (nIndex < singleCount())
+-			return m_aTable.m_pSingle[nIndex];
++		if (m_pRepresentation && nIndex < singleCount())
++			return m_pRepresentation->m_aTable.m_pSingle[nIndex];
+ 		else
+ 			return STORE_PAGE_NULL;
+ 	}
+-	void singleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	virtual void singleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		if (nIndex < singleCount())
+-			m_aTable.m_pSingle[nIndex] = nAddr;
++		if (m_pRepresentation && nIndex < singleCount())
++			m_pRepresentation->m_aTable.m_pSingle[nIndex] = nAddr;
+ 	}
+ 
+ 	/** double.
+ 	*/
+-	static sal_uInt16 doubleCount (void)
++	virtual sal_uInt16 doubleCount (void) const
+ 	{
+-		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_DOUBLE));
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_DOUBLE_V2));
+ 	}
+-	sal_uInt32 doubleLink (sal_uInt16 nIndex) const
++	virtual sal_uInt32 doubleLink (sal_uInt16 nIndex) const
+ 	{
+-		if (nIndex < doubleCount())
+-			return m_aTable.m_pDouble[nIndex];
++		if (m_pRepresentation && nIndex < doubleCount())
++			return m_pRepresentation->m_aTable.m_pDouble[nIndex];
+ 		else
+ 			return STORE_PAGE_NULL;
+ 	}
+-	void doubleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	virtual void doubleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		if (nIndex < doubleCount())
+-			m_aTable.m_pDouble[nIndex] = nAddr;
++		if (m_pRepresentation && nIndex < doubleCount())
++			m_pRepresentation->m_aTable.m_pDouble[nIndex] = nAddr;
+ 	}
+ 
+ 	/** triple.
+ 	*/
+-	static sal_uInt16 tripleCount (void)
++	virtual sal_uInt16 tripleCount (void) const
+ 	{
+-		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_TRIPLE));
++		return ((sal_uInt16)(STORE_LIMIT_DATAPAGE_TRIPLE_V2));
+ 	}
+-	sal_uInt32 tripleLink (sal_uInt16 nIndex) const
++	virtual sal_uInt32 tripleLink (sal_uInt16 nIndex) const
+ 	{
+-		if (nIndex < tripleCount())
+-			return m_aTable.m_pTriple[nIndex];
++		if (m_pRepresentation && nIndex < tripleCount())
++			return m_pRepresentation->m_aTable.m_pTriple[nIndex];
+ 		else
+ 			return STORE_PAGE_NULL;
+ 	}
+-	void tripleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
++	virtual void tripleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		if (nIndex < tripleCount())
+-			m_aTable.m_pTriple[nIndex] = nAddr;
++		if (m_pRepresentation && nIndex < tripleCount())
++			m_pRepresentation->m_aTable.m_pTriple[nIndex] = nAddr;
+ 	}
+ };
+ 
+@@ -583,76 +916,124 @@ struct OStoreDirectoryPageData : public 
+ 	typedef OStorePageData           base;
+ 	typedef OStoreDirectoryPageData  self;
+ 
+-	typedef OStorePageDescriptor     D;
+-	typedef OStorePageNameBlock      NameBlock;
+-	typedef OStoreDirectoryDataBlock DataBlock;
++	typedef OStorePageDescriptor      D;
++	typedef OStorePageNameBlockA      NameBlockT;
++	typedef OStoreDirectoryDataBlockA DataBlockT;
+ 
+ 	/** Representation.
+ 	*/
+-	NameBlock m_aNameBlock;
+-	DataBlock m_aDataBlock;
+-	sal_uInt8 m_pData[1];
++    OStorePageNameBlockA*      m_pNameBlock;
++    OStoreDirectoryDataBlockA* m_pDataBlock;
++    sal_uInt8*                 m_pData;
+ 
+ 	/** size.
+ 	*/
+-	static sal_uInt16 size (void)
++	sal_uInt16 size () const
+ 	{
+-		return (NameBlock::size() + DataBlock::size());
++		return m_pNameBlock->size () + m_pDataBlock->size ();
+ 	}
+ 
+ 	/** capacity.
+ 	*/
+-	static sal_uInt16 capacity (const D& rDescr)
++	sal_uInt16 capacity (const D& rDescr) const
+ 	{
+-		return (rDescr.m_nSize - (base::size() + self::size()));
++		return (rDescr.m_nSize - (base::size() + size()));
+ 	}
+ 	sal_uInt16 capacity (void) const
+ 	{
+-		return self::capacity (base::m_aDescr);
++		return capacity (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** usage.
+ 	*/
+-	static sal_uInt16 usage (const D& rDescr)
++	sal_uInt16 usage (const D& rDescr) const
+ 	{
+-		return (rDescr.m_nUsed - (base::size() + self::size()));
++		return (rDescr.m_nUsed - (base::size() + size()));
+ 	}
+ 	sal_uInt16 usage (void) const
+ 	{
+-		return self::usage (base::m_aDescr);
++		return usage (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** initialize.
+ 	*/
+ 	void initialize (void)
+ 	{
+-		base::m_aGuard.m_nMagic = STORE_MAGIC_DIRECTORYPAGE;
+-		base::m_aDescr.m_nUsed  = base::size() + self::size();
++		base::PageHeader ().m_aGuard.m_nMagic = STORE_MAGIC_DIRECTORYPAGE;
++		base::PageHeader ().m_aDescr.m_nUsed  = base::size() + self::size();
+ 
+-		m_aNameBlock.initialize();
+-		m_aDataBlock.initialize();
++ 		m_pNameBlock->initialize();
++ 		m_pDataBlock->initialize();
+ 
+-		rtl_zeroMemory (m_pData, capacity());
++ 		rtl_zeroMemory (m_pData, capacity());
+ 	}
+ 
+ 	/** Construction.
+ 	*/
+-	OStoreDirectoryPageData (sal_uInt16 nPageSize)
+-		: base (nPageSize)
++	OStoreDirectoryPageData (sal_uInt16 nPageSize, OStorePageBIOS* pBIOS)
++		: base (nPageSize, sizeof (self))
+ 	{
+-		base::m_aGuard.m_nMagic = STORE_MAGIC_DIRECTORYPAGE;
+-		base::m_aDescr.m_nUsed = sal::static_int_cast< sal_uInt16 >(
+-            base::m_aDescr.m_nUsed + self::size());
++		base::PageHeader ().m_aGuard.m_nMagic = STORE_MAGIC_DIRECTORYPAGE;
++
++        sal_uInt8* pMem = ((sal_uInt8*) this) + sizeof (self) + base::size ();
++
++        switch (pBIOS->version ()) {
++        case 1:
++            m_pNameBlock = new OStorePageNameBlockV1 (pMem);
++            m_pDataBlock = new OStoreDirectoryDataBlockV1 (pMem + m_pNameBlock->size ());
++            m_pData = pMem + m_pNameBlock->size () + m_pDataBlock->size ();
++            break;
++        case 2:
++            m_pNameBlock = new OStorePageNameBlockV2 (pMem);
++            m_pDataBlock = new OStoreDirectoryDataBlockV2 (pMem + m_pNameBlock->size ());
++            m_pData = pMem + m_pNameBlock->size () + m_pDataBlock->size ();
++            break;
++        default:
++            OSL_TRACE("wrong store BIOS/SuperPage version");
++            *((int *)NULL) = 0;
++            m_pNameBlock = NULL;
++            m_pDataBlock = NULL;
++            m_pData = NULL;
++        }
++
+ 		rtl_zeroMemory (m_pData, capacity());
+ 	}
+ 
++    ~OStoreDirectoryPageData ()
++    {
++        if (m_pNameBlock) {
++            delete m_pNameBlock;
++            m_pNameBlock = NULL;
++        }
++
++        if (m_pDataBlock) {
++            delete m_pDataBlock;
++            m_pDataBlock = NULL;
++        }
++    }
++
++    inline OStoreDirectoryDataBlockA& DataBlock () const
++    {
++        return *m_pDataBlock;
++    }
++
++    inline OStorePageNameBlockA& NameBlock () const
++    {
++        return *m_pNameBlock;
++    }
++
++    inline sal_uInt8* Data () const
++    {
++        return m_pData;
++    }
++
+ 	/** Comparsion.
+ 	*/
+ 	sal_Bool operator== (const OStoreDirectoryPageData& rOther) const
+ 	{
+ 		return ((base::operator==(rOther)           ) &&
+-				(m_aNameBlock == rOther.m_aNameBlock) &&
+-				(m_aDataBlock == rOther.m_aDataBlock)    );
++				(NameBlock () == rOther.NameBlock ()) &&
++				(DataBlock () == rOther.DataBlock ()));
+ 	}
+ 
+ 	/** swap (internal and external representation).
+@@ -660,8 +1041,8 @@ struct OStoreDirectoryPageData : public 
+ 	void swap ()
+ 	{
+ #ifdef OSL_BIGENDIAN
+-		m_aNameBlock.swap();
+-		m_aDataBlock.swap();
++		NameBlock ().swap();
++		DataBlock ().swap();
+ #endif /* OSL_BIGENDIAN */
+ 	}
+ 
+@@ -669,17 +1050,17 @@ struct OStoreDirectoryPageData : public 
+ 	*/
+ 	void guard ()
+ 	{
+-		m_aNameBlock.guard();
+-		m_aDataBlock.guard();
++		m_pNameBlock->guard();
++		m_pDataBlock->guard();
+ 	}
+ 
+ 	/** verify (external representation).
+ 	*/
+ 	storeError verify ()
+ 	{
+-		storeError eErrCode = m_aNameBlock.verify();
++		storeError eErrCode = m_pNameBlock->verify();
+ 		if (eErrCode == store_E_None)
+-			eErrCode = m_aDataBlock.verify();
++			eErrCode = m_pDataBlock->verify();
+ 		return eErrCode;
+ 	}
+ 
+@@ -757,11 +1138,11 @@ public:
+ 	*/
+ 	sal_uInt32 attrib (void) const
+ 	{
+-		return m_rPage.m_aNameBlock.m_nAttrib;
++		return m_rPage.NameBlock ().Attrib ();
+ 	}
+ 	void attrib (sal_uInt32 nAttrib)
+ 	{
+-		m_rPage.m_aNameBlock.m_nAttrib = nAttrib;
++		m_rPage.NameBlock ().SetAttrib (nAttrib);
+ 		touch();
+ 	}
+ 
+@@ -769,11 +1150,11 @@ public:
+ 	*/
+ 	sal_uInt32 dataLength (void) const
+ 	{
+-		return m_rPage.m_aDataBlock.m_nDataLen;
++		return m_rPage.DataBlock ().DataLen ();
+ 	}
+ 	void dataLength (sal_uInt32 nLength)
+ 	{
+-		m_rPage.m_aDataBlock.m_nDataLen = nLength;
++		m_rPage.DataBlock ().SetDataLen (nLength);
+ 		touch();
+ 	}
+ 
+@@ -781,11 +1162,11 @@ public:
+ 	*/
+ 	sal_uInt32 directLink (sal_uInt16 nIndex) const
+ 	{
+-		return m_rPage.m_aDataBlock.directLink (nIndex);
++		return m_rPage.DataBlock ().directLink (nIndex);
+ 	}
+ 	void directLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		m_rPage.m_aDataBlock.directLink (nIndex, nAddr);
++		m_rPage.DataBlock ().directLink (nIndex, nAddr);
+ 		touch();
+ 	}
+ 
+@@ -793,11 +1174,11 @@ public:
+ 	*/
+ 	sal_uInt32 singleLink (sal_uInt16 nIndex) const
+ 	{
+-		return m_rPage.m_aDataBlock.singleLink (nIndex);
++		return m_rPage.DataBlock ().singleLink (nIndex);
+ 	}
+ 	void singleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		m_rPage.m_aDataBlock.singleLink (nIndex, nAddr);
++		m_rPage.DataBlock ().singleLink (nIndex, nAddr);
+ 		touch();
+ 	}
+ 
+@@ -805,11 +1186,11 @@ public:
+ 	*/
+ 	sal_uInt32 doubleLink (sal_uInt16 nIndex) const
+ 	{
+-		return m_rPage.m_aDataBlock.doubleLink (nIndex);
++		return m_rPage.DataBlock ().doubleLink (nIndex);
+ 	}
+ 	void doubleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		m_rPage.m_aDataBlock.doubleLink (nIndex, nAddr);
++		m_rPage.DataBlock ().doubleLink (nIndex, nAddr);
+ 		touch();
+ 	}
+ 
+@@ -817,11 +1198,11 @@ public:
+ 	*/
+ 	sal_uInt32 tripleLink (sal_uInt16 nIndex) const
+ 	{
+-		return m_rPage.m_aDataBlock.tripleLink (nIndex);
++		return m_rPage.DataBlock ().tripleLink (nIndex);
+ 	}
+ 	void tripleLink (sal_uInt16 nIndex, sal_uInt32 nAddr)
+ 	{
+-		m_rPage.m_aDataBlock.tripleLink (nIndex, nAddr);
++		m_rPage.DataBlock ().tripleLink (nIndex, nAddr);
+ 		touch();
+ 	}
+ 
+@@ -829,7 +1210,7 @@ public:
+ 	*/
+ 	page::ChunkScope scope (
+ 		sal_uInt32                       nPage,
+-		page::DataBlock::LinkDescriptor &rDescr) const;
++		page::DataBlockT::LinkDescriptor &rDescr) const;
+ 
+ 	/** get (external data page).
+ 	*/
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/store.cxx store/source/store.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/store.cxx	2006-09-17 03:12:37.000000000 +0200
++++ store/source/store.cxx	2007-03-14 10:11:07.000000000 +0100
+@@ -163,7 +163,7 @@ storeError SAL_CALL store_createMemoryFi
+ 		return store_E_OutOfMemory;
+ 
+ 	storeError eErrCode = xManager->initializeManager (
+-		&*xLockBytes, store_AccessCreate, nPageSize);
++		&*xLockBytes, store_AccessCreate, nPageSize, STORE_FORMAT_V2);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+@@ -180,7 +180,8 @@ storeError SAL_CALL store_openFile (
+ 	rtl_uString     *pFilename,
+ 	storeAccessMode  eAccessMode,
+ 	sal_uInt16       nPageSize,
+-	storeFileHandle *phFile
++	storeFileHandle *phFile,
++    sal_uInt16       nFormatVersion
+ ) SAL_THROW_EXTERN_C()
+ {
+ 	if (phFile)
+@@ -202,7 +203,7 @@ storeError SAL_CALL store_openFile (
+ 		return store_E_OutOfMemory;
+ 
+ 	eErrCode = xManager->initializeManager (
+-        &*xLockBytes, eAccessMode, nPageSize);
++        &*xLockBytes, eAccessMode, nPageSize, nFormatVersion);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+@@ -612,7 +613,7 @@ storeError SAL_CALL store_attrib (
+ 	OString aName (pName->buffer, pName->length, RTL_TEXTENCODING_UTF8);
+ 	OStorePageKey aKey;
+ 
+-	eErrCode = OStorePageNameBlock::namei (aPath.pData, aName.pData, aKey);
++	eErrCode = OStorePageNameBlockA::namei (aPath.pData, aName.pData, aKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+@@ -653,7 +654,7 @@ storeError SAL_CALL store_link (
+ 		pSrcName->buffer, pSrcName->length, RTL_TEXTENCODING_UTF8);
+ 	OStorePageKey aSrcKey;
+ 
+-	eErrCode = OStorePageNameBlock::namei (
++	eErrCode = OStorePageNameBlockA::namei (
+ 		aSrcPath.pData, aSrcName.pData, aSrcKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+@@ -665,7 +666,7 @@ storeError SAL_CALL store_link (
+ 		pDstName->buffer, pDstName->length, RTL_TEXTENCODING_UTF8);
+ 	OStorePageKey aDstKey;
+ 
+-	eErrCode = OStorePageNameBlock::namei (
++	eErrCode = OStorePageNameBlockA::namei (
+ 		aDstPath.pData, aDstName.pData, aDstKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+@@ -703,7 +704,7 @@ storeError SAL_CALL store_symlink (
+ 		pDstName->buffer, pDstName->length, RTL_TEXTENCODING_UTF8);
+ 	OStorePageKey aDstKey;
+ 
+-	eErrCode = OStorePageNameBlock::namei (
++	eErrCode = OStorePageNameBlockA::namei (
+ 		aDstPath.pData, aDstName.pData, aDstKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+@@ -746,7 +747,7 @@ storeError SAL_CALL store_rename (
+ 		pSrcName->buffer, pSrcName->length, RTL_TEXTENCODING_UTF8);
+ 	OStorePageKey aSrcKey;
+ 
+-	eErrCode = OStorePageNameBlock::namei (
++	eErrCode = OStorePageNameBlockA::namei (
+ 		aSrcPath.pData, aSrcName.pData, aSrcKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+@@ -784,7 +785,7 @@ storeError SAL_CALL store_remove (
+ 	OString aName (pName->buffer, pName->length, RTL_TEXTENCODING_UTF8);
+ 	OStorePageKey aKey;
+ 
+-	eErrCode = OStorePageNameBlock::namei (aPath.pData, aName.pData, aKey);
++	eErrCode = OStorePageNameBlockA::namei (aPath.pData, aName.pData, aKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storlckb.cxx store/source/storlckb.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storlckb.cxx	2006-09-17 03:12:50.000000000 +0200
++++ store/source/storlckb.cxx	2007-03-13 11:27:31.000000000 +0100
+@@ -125,7 +125,7 @@ static storeError __store_iget (
+ {
+ 	// Setup inode page key.
+ 	OStorePageKey aKey;
+-	storeError eErrCode = OStorePageNameBlock::namei (pPath, pName, aKey);
++	storeError eErrCode = OStorePageNameBlockA::namei (pPath, pName, aKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+@@ -154,12 +154,9 @@ static storeError __store_iget (
+ 			return store_E_AccessViolation;
+ 
+ 		// Setup inode nameblock.
+-		rNode.m_aNameBlock.m_aKey    = aKey;
+-		rNode.m_aNameBlock.m_nAttrib = nAttrib;
+-
+-		rtl_copyMemory (
+-			&rNode.m_aNameBlock.m_pData[0],
+-			pName->buffer, pName->length);
++		rNode.NameBlock ().SetKey (aKey);
++		rNode.NameBlock ().SetAttrib (nAttrib);
++		rNode.NameBlock ().SetName (pName, rManager);
+ 
+ 		// Save inode page.
+ 		eErrCode = rManager.save (aKey, aPage);
+@@ -172,7 +169,7 @@ static storeError __store_iget (
+ 	{
+ 		// Obtain 'Destination' page key.
+ 		OStorePageKey aDstKey;
+-		rtl_copyMemory (&aDstKey, &rNode.m_pData[0], sizeof(aDstKey));
++		rtl_copyMemory (&aDstKey, rNode.Data (), sizeof(aDstKey));
+ 
+ #ifdef OSL_BIGENDIAN
+ 		// Swap to internal representation.
+@@ -255,7 +252,7 @@ storeError OStoreDirectory::create (
+ 		return eErrCode;
+ 
+ 	delete m_pNode;
+-	m_pNode = new(m_aDescr.m_nSize) inode(m_aDescr.m_nSize);
++	m_pNode = new(m_aDescr.m_nSize) inode(m_aDescr.m_nSize, pManager);
+ 	if (!m_pNode)
+ 		return store_E_OutOfMemory;
+ 
+@@ -268,21 +265,24 @@ storeError OStoreDirectory::create (
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+-	sal_uInt32 nAttrib = m_pNode->m_aNameBlock.m_nAttrib;
++	sal_uInt32 nAttrib = m_pNode->NameBlock ().Attrib ();
+ 	if (!(nAttrib & STORE_ATTRIB_ISDIR))
+ 		return store_E_NotDirectory;
+ 
+-	m_aDescr = m_pNode->m_aDescr;
++	m_aDescr = m_pNode->PageHeader ().m_aDescr;
+ 	eErrCode = xManager->acquirePage (m_aDescr, store_AccessReadOnly);
+ 	if (eErrCode == store_E_None)
+ 	{
+ 		// Evaluate iteration path from NameBlock.
+ 		typedef OStorePageGuard G;
+-		sal_Char *pszName = m_pNode->m_aNameBlock.m_pData;
++		rtl_String *pItemName = NULL;
++		if ((eErrCode = m_pNode->NameBlock ().Name (&pItemName, *pManager)) != store_E_None)
++			return eErrCode;
+ 
+-		m_nPath = m_pNode->m_aNameBlock.m_aKey.m_nHigh;
+-		m_nPath = G::crc32 (m_nPath, pszName, rtl_str_getLength(pszName));
++		m_nPath = m_pNode->NameBlock ().Key ().m_nHigh;
++		m_nPath = G::crc32 (m_nPath, pItemName->buffer, pItemName->length);
+ 		m_nPath = G::crc32 (m_nPath, "/", 1);
++		rtl_string_release (pItemName);
+ 
+ 		// Accept page manager.
+ 		m_xManager = xManager;
+@@ -327,8 +327,13 @@ storeError OStoreDirectory::iterate (sto
+ 			if (eErrCode == store_E_None)
+ 			{
+ 				// Setup FindData.
+-				sal_Char *p = m_pNode->m_aNameBlock.m_pData;
+-				sal_Size  n = rtl_str_getLength (p);
++ 
++ 				rtl_String *pItemName = NULL;
++ 				if ((eErrCode = m_pNode->NameBlock ().Name (&pItemName, *m_xManager)) != store_E_None)
++ 					return eErrCode;
++ 
++ 				sal_Char *p = pItemName->buffer;
++ 				sal_Size n = pItemName->length;
+ 				sal_Size  k = rFindData.m_nLength;
+ 
+ 				n = __store_convertTextToUnicode (
+@@ -339,6 +344,7 @@ storeError OStoreDirectory::iterate (sto
+ 					k = (k - n) * sizeof(sal_Unicode);
+ 					rtl_zeroMemory (&rFindData.m_pszName[n], k);
+ 				}
++				rtl_string_release (pItemName);
+ 
+ 				rFindData.m_nLength  = n;
+ 				rFindData.m_nAttrib |= aPage.attrib();
+@@ -393,7 +399,7 @@ OStoreLockBytes::~OStoreLockBytes (void)
+ 		osl::MutexGuard aGuard (*m_xManager);
+ 		if (m_pNode)
+ 		{
+-			OStorePageDescriptor aDescr (m_pNode->m_aDescr);
++			OStorePageDescriptor aDescr (m_pNode->PageHeader ().m_aDescr);
+             m_xManager->releasePage (aDescr);
+ 		}
+ 	}
+@@ -452,7 +458,7 @@ storeError OStoreLockBytes::create (
+ 		return eErrCode;
+ 
+ 	delete m_pNode;
+-	m_pNode = new(m_nPageSize) inode(m_nPageSize);
++	m_pNode = new(m_nPageSize) inode(m_nPageSize, pManager);
+ 	if (!m_pNode)
+ 		return store_E_OutOfMemory;
+ 
+@@ -465,7 +471,7 @@ storeError OStoreLockBytes::create (
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+-	sal_uInt32 nAttrib = m_pNode->m_aNameBlock.m_nAttrib;
++	sal_uInt32 nAttrib = m_pNode->NameBlock ().Attrib ();
+ 	if (!(nAttrib & STORE_ATTRIB_ISFILE))
+ 	{
+ 		// No ISFILE in older versions (backward compatibility).
+@@ -474,7 +480,7 @@ storeError OStoreLockBytes::create (
+ 	}
+ 
+ 	// ...
+-	OStorePageDescriptor aDescr (m_pNode->m_aDescr);
++	OStorePageDescriptor aDescr (m_pNode->PageHeader ().m_aDescr);
+ 	if (eMode != store_AccessReadOnly)
+ 		eErrCode = xManager->acquirePage (aDescr, store_AccessReadWrite);
+ 	else
+@@ -541,7 +547,7 @@ storeError OStoreLockBytes::readAt (
+ 
+ 			rtl_copyMemory (
+ 				&pData[rnDone],
+-				&m_pNode->m_pData[aDescr.m_nOffset],
++				m_pNode->Data () + aDescr.m_nOffset,
+ 				nLength);
+ 
+ 			// Adjust counters.
+@@ -580,7 +586,7 @@ storeError OStoreLockBytes::readAt (
+ 			{
+ 				rtl_copyMemory (
+ 					&pData[rnDone],
+-					&m_pData->m_pData[aDescr.m_nOffset],
++					&m_pData->RepresentationData ()[aDescr.m_nOffset],
+ 					nLength);
+ 			}
+ 
+@@ -638,7 +644,7 @@ storeError OStoreLockBytes::writeAt (
+ 			nLength = SAL_MIN(nLength, nBytes);
+ 
+ 			rtl_copyMemory (
+-				&m_pNode->m_pData[aDescr.m_nOffset],
++				m_pNode->Data () + aDescr.m_nOffset,
+ 				&pData[rnDone], nLength);
+ 
+ 			// Mark inode dirty.
+@@ -678,7 +684,7 @@ storeError OStoreLockBytes::writeAt (
+ 						return eErrCode;
+ 
+ 					rtl_zeroMemory (
+-						&m_pData->m_pData[0],
++						m_pData->RepresentationData (),
+ 						m_pData->capacity());
+ 				}
+ 			}
+@@ -687,7 +693,7 @@ storeError OStoreLockBytes::writeAt (
+ 			nLength = SAL_MIN(nLength, nBytes);
+ 
+ 			rtl_copyMemory (
+-				&m_pData->m_pData[aDescr.m_nOffset],
++				m_pData->RepresentationData () + aDescr.m_nOffset,
+ 				&pData[rnDone], nLength);
+ 
+ 			// Save data page.
+@@ -777,7 +783,7 @@ storeError OStoreLockBytes::setSize (sal
+ 			// Truncate internal data page.
+ 			inode::ChunkDescriptor aDescr (nSize, m_pNode->capacity());
+ 			rtl_zeroMemory (
+-				&m_pNode->m_pData[aDescr.m_nOffset],
++				m_pNode->Data () + aDescr.m_nOffset,
+ 				aDescr.m_nLength);
+ 		}
+ 		else
+@@ -821,7 +827,7 @@ storeError OStoreLockBytes::stat (sal_uI
+ 	if (!m_xManager.is())
+ 		return store_E_InvalidAccess;
+ 
+-	rnSize = m_pNode->m_aDataBlock.m_nDataLen;
++	rnSize = m_pNode->DataBlock ().DataLen ();
+ 	return store_E_None;
+ }
+ 
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storpage.cxx store/source/storpage.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storpage.cxx	2006-09-17 03:13:03.000000000 +0200
++++ store/source/storpage.cxx	2007-03-14 10:13:31.000000000 +0100
+@@ -144,7 +144,8 @@ sal_Bool SAL_CALL OStorePageManager::isK
+ storeError OStorePageManager::initializeManager (
+ 	ILockBytes      *pLockBytes,
+ 	storeAccessMode  eAccessMode,
+-	sal_uInt16       nPageSize)
++	sal_uInt16       nPageSize,
++    sal_uInt16       nFormatVersion)
+ {
+ 	// Acquire exclusive access.
+ 	osl::MutexGuard aGuard(*this);
+@@ -167,7 +168,7 @@ storeError OStorePageManager::initialize
+ 			return store_E_NotExists;
+ 
+ 		// Create.
+-		eErrCode = base::create (nPageSize);
++		eErrCode = base::create (nPageSize, nFormatVersion);
+ 		if (eErrCode != store_E_None)
+ 			return eErrCode;
+ 	}
+@@ -226,10 +227,10 @@ storeError OStorePageManager::free (OSto
+ 
+ 	// Check for cacheable page.
+ 	OStorePageData &rData = rPage.getData();
+-	if (rData.m_aGuard.m_nMagic == STORE_MAGIC_BTREENODE)
++	if (rData.PageHeader ().m_aGuard.m_nMagic == STORE_MAGIC_BTREENODE)
+ 	{
+ 		// Invalidate cache entry.
+-		storeError eErrCode = m_pCache->invalidate (rData.m_aDescr);
++		storeError eErrCode = m_pCache->invalidate (rData.PageHeader ().m_aDescr);
+ 		if (eErrCode != store_E_None)
+ 			return eErrCode;
+ 	}
+@@ -253,10 +254,10 @@ storeError OStorePageManager::load (OSto
+ 
+ 	// Check for cacheable page.
+ 	OStorePageData &rData = rPage.getData();
+-	if (rData.m_aGuard.m_nMagic == STORE_MAGIC_BTREENODE)
++	if (rData.PageHeader ().m_aGuard.m_nMagic == STORE_MAGIC_BTREENODE)
+ 	{
+ 		// Save PageDescriptor.
+-		OStorePageDescriptor aDescr (rData.m_aDescr);
++		OStorePageDescriptor aDescr (rData.PageHeader ().m_aDescr);
+ 
+ 		// Load (cached) page.
+ 		storeError eErrCode = m_pCache->load (aDescr, rData, *this);
+@@ -303,10 +304,10 @@ storeError OStorePageManager::save (OSto
+ 
+ 	// Check for cacheable page.
+ 	OStorePageData &rData = rPage.getData();
+-	if (rData.m_aGuard.m_nMagic == STORE_MAGIC_BTREENODE)
++	if (rData.PageHeader ().m_aGuard.m_nMagic == STORE_MAGIC_BTREENODE)
+ 	{
+ 		// Save PageDescriptor.
+-		OStorePageDescriptor aDescr (rData.m_aDescr);
++		OStorePageDescriptor aDescr (rData.PageHeader ().m_aDescr);
+ 
+ #ifdef OSL_BIGENDIAN
+ 		// Swap to external representation.
+@@ -397,7 +398,7 @@ storeError OStorePageManager::find (cons
+ 		}
+ 
+ 		// Check address.
+-		sal_uInt32 nAddr = rPage.m_pData[i].m_aLink.m_nAddr;
++		sal_uInt32 nAddr = rPage.DataRepresentation ().m_pData[i].m_aLink.m_nAddr;
+ 		if (nAddr == STORE_PAGE_NULL)
+ 		{
+ 			// Path to entry not exists (Must not happen(?)).
+@@ -437,7 +438,7 @@ storeError OStorePageManager::find (
+ 
+ 		// Pre-allocate left most entry (ugly, but we can't insert to left).
+ 		rPage.insert (0, entry());
+-		rPage.m_pData[0].m_aKey.m_nLow = OStorePageGuard::crc32 (0, "/", 1);
++		rPage.DataRepresentation ().m_pData[0].m_aKey.m_nLow = OStorePageGuard::crc32 (0, "/", 1);
+ 
+ 		// Allocate RootNode.
+ 		eErrCode = base::allocate (aRoot, ALLOCATE_EOF);
+@@ -468,7 +469,7 @@ storeError OStorePageManager::find (
+ 		}
+ 
+ 		// Check address.
+-		sal_uInt32 nAddr = rPage.m_pData[i].m_aLink.m_nAddr;
++		sal_uInt32 nAddr = rPage.DataRepresentation ().m_pData[i].m_aLink.m_nAddr;
+ 		if (nAddr == STORE_PAGE_NULL)
+ 		{
+ 			// Path to entry not exists (Must not happen(?)).
+@@ -531,13 +532,13 @@ storeError OStorePageManager::remove (
+ 	}
+ 
+ 	// Compare entry.
+-	entry::CompareResult result = rEntry.compare (rPage.m_pData[i]);
++	entry::CompareResult result = rEntry.compare (rPage.DataRepresentation ().m_pData[i]);
+ 
+ 	// Iterate down until equal match.
+ 	while ((result == entry::COMPARE_GREATER) && (rPage.depth() > 0))
+ 	{
+ 		// Check link address.
+-		sal_uInt32 nAddr = rPage.m_pData[i].m_aLink.m_nAddr;
++		sal_uInt32 nAddr = rPage.DataRepresentation ().m_pData[i].m_aLink.m_nAddr;
+ 		if (nAddr == STORE_PAGE_NULL)
+ 		{
+ 			// Path to entry not exists (Must not happen(?)).
+@@ -561,7 +562,7 @@ storeError OStorePageManager::remove (
+ 		}
+ 
+ 		// Compare entry.
+-		result = rEntry.compare (rPage.m_pData[i]);
++		result = rEntry.compare (rPage.DataRepresentation ().m_pData[i]);
+ 	}
+ 
+ 	OSL_POSTCOND(
+@@ -613,14 +614,14 @@ storeError OStorePageManager::load (
+ 	}
+ 
+ 	// Check for exact match.
+-	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
++	if (!(e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]) == entry::COMPARE_EQUAL))
+ 	{
+ 		// Page not present.
+ 		return store_E_NotExists;
+ 	}
+ 		
+ 	// Existing entry. Check address.
+-	sal_uInt32 nAddr = m_pNode[0]->m_pData[i].m_aLink.m_nAddr;
++	sal_uInt32 nAddr = m_pNode[0]->DataRepresentation ().m_pData[i].m_aLink.m_nAddr;
+ 	if (nAddr == STORE_PAGE_NULL)
+ 	{
+ 		// Page not present.
+@@ -664,7 +665,7 @@ storeError OStorePageManager::save (
+ 	if (i < n)
+ 	{
+ 		// Compare entry.
+-		entry::CompareResult result = e.compare (m_pNode[0]->m_pData[i]);
++		entry::CompareResult result = e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]);
+ 		OSL_POSTCOND(
+ 			result != entry::COMPARE_LESS,
+ 			"OStorePageManager::save(): find failed");
+@@ -679,7 +680,7 @@ storeError OStorePageManager::save (
+ 		if (result == entry::COMPARE_EQUAL)
+ 		{
+ 			// Existing entry. Check address.
+-			sal_uInt32 nAddr = m_pNode[0]->m_pData[i].m_aLink.m_nAddr;
++			sal_uInt32 nAddr = m_pNode[0]->DataRepresentation ().m_pData[i].m_aLink.m_nAddr;
+ 			if (nAddr == STORE_PAGE_NULL)
+ 			{
+ 				// Allocate page.
+@@ -688,7 +689,7 @@ storeError OStorePageManager::save (
+ 					return eErrCode;
+ 
+ 				// Modify page address.
+-				m_pNode[0]->m_pData[i].m_aLink.m_nAddr = rPage.location();
++				m_pNode[0]->DataRepresentation ().m_pData[i].m_aLink.m_nAddr = rPage.location();
+ 
+ 				// Save modified NodePage.
+ 				node aNode (*m_pNode[0]);
+@@ -752,14 +753,14 @@ storeError OStorePageManager::attrib (
+ 	}
+ 
+ 	// Check for exact match.
+-	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
++	if (!(e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]) == entry::COMPARE_EQUAL))
+ 	{
+ 		// Page not present.
+ 		return store_E_NotExists;
+ 	}
+ 		
+ 	// Existing entry.
+-	e = m_pNode[0]->m_pData[i];
++	e = m_pNode[0]->DataRepresentation ().m_pData[i];
+ 	if (nMask1 != nMask2)
+ 	{
+ 		// Evaluate new attributes.
+@@ -775,7 +776,7 @@ storeError OStorePageManager::attrib (
+ 			{
+ 				// Set new attributes.
+ 				e.m_nAttrib = nAttrib;
+-				m_pNode[0]->m_pData[i] = e;
++				m_pNode[0]->DataRepresentation ().m_pData[i] = e;
+ 
+ 				// Save modified NodePage.
+ 				node aNode (*m_pNode[0]);
+@@ -830,14 +831,14 @@ storeError OStorePageManager::link (
+ 	}
+ 
+ 	// Check for exact match.
+-	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
++	if (!(e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]) == entry::COMPARE_EQUAL))
+ 	{
+ 		// Page not present.
+ 		return store_E_NotExists;
+ 	}
+ 		
+ 	// Existing entry. Check address.
+-	e = m_pNode[0]->m_pData[i];
++	e = m_pNode[0]->DataRepresentation ().m_pData[i];
+ 	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+ 	{
+ 		// Page not present.
+@@ -858,7 +859,7 @@ storeError OStorePageManager::link (
+ 	if (i < n)
+ 	{
+ 		// Compare entry.
+-		entry::CompareResult result = e.compare (m_pNode[0]->m_pData[i]);
++		entry::CompareResult result = e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]);
+ 		OSL_POSTCOND(
+ 			result != entry::COMPARE_LESS,
+ 			"OStorePageManager::link(): find failed");
+@@ -910,7 +911,7 @@ storeError OStorePageManager::symlink (
+ 
+ 	// Setup 'Source' page key.
+ 	OStorePageKey aSrcKey;
+-	eErrCode = OStorePageNameBlock::namei (pSrcPath, pSrcName, aSrcKey);
++	eErrCode = OStorePageNameBlockA::namei (pSrcPath, pSrcName, aSrcKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+@@ -928,7 +929,7 @@ storeError OStorePageManager::symlink (
+ 	if (i < n)
+ 	{
+ 		// Compare entry.
+-		entry::CompareResult result = e.compare (m_pNode[0]->m_pData[i]);
++		entry::CompareResult result = e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]);
+ 		OSL_POSTCOND(
+ 			result != entry::COMPARE_LESS,
+ 			"OStorePageManager::symlink(): find failed");
+@@ -951,22 +952,20 @@ storeError OStorePageManager::symlink (
+ 	if (m_pDirect)
+ 		m_pDirect->initialize();
+ 	if (!m_pDirect)
+-		m_pDirect = new(m_nPageSize) inode(m_nPageSize);
++		m_pDirect = new(m_nPageSize) inode(m_nPageSize, this);
+ 	if (!m_pDirect)
+ 		return store_E_OutOfMemory;
+ 
+ 	// Setup as 'Source' directory page.
+-	m_pDirect->m_aNameBlock.m_aKey = aSrcKey;
+-	rtl_copyMemory (
+-		&m_pDirect->m_aNameBlock.m_pData[0],
+-		pSrcName->buffer, pSrcName->length);
++	m_pDirect->NameBlock ().SetKey (aSrcKey);
++	m_pDirect->NameBlock ().SetName (pSrcName, *this);
+ 
+ 	// Store 'Destination' page key.
+ 	OStorePageKey aDstKey (rDstKey);
+ #ifdef OSL_BIGENDIAN
+ 	aDstKey.swap(); // Swap to external representation.
+ #endif /* OSL_BIGENDIAN */
+-	rtl_copyMemory (&m_pDirect->m_pData[0], &aDstKey, sizeof(aDstKey));
++	rtl_copyMemory (m_pDirect->Data (), &aDstKey, sizeof(aDstKey));
+ 
+ 	// Mark 'Source' as symbolic link to 'Destination'.
+ 	OStoreDirectoryPageObject aPage (*m_pDirect);
+@@ -1013,7 +1012,7 @@ storeError OStorePageManager::rename (
+ 
+ 	// Setup 'Destination' page key.
+ 	OStorePageKey aDstKey;
+-	eErrCode = OStorePageNameBlock::namei (pDstPath, pDstName, aDstKey);
++	eErrCode = OStorePageNameBlockA::namei (pDstPath, pDstName, aDstKey);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+@@ -1035,14 +1034,14 @@ storeError OStorePageManager::rename (
+ 	}
+ 
+ 	// Check for exact match.
+-	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
++	if (!(e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]) == entry::COMPARE_EQUAL))
+ 	{
+ 		// Page not present.
+ 		return store_E_NotExists;
+ 	}
+ 
+ 	// Existing 'Source' entry. Check address.
+-	e = m_pNode[0]->m_pData[i];
++	e = m_pNode[0]->DataRepresentation ().m_pData[i];
+ 	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+ 	{
+ 		// Page not present.
+@@ -1054,7 +1053,7 @@ storeError OStorePageManager::rename (
+ 	{
+ 		// Check directory page buffer.
+ 		if (!m_pDirect)
+-			m_pDirect = new(m_nPageSize) inode(m_nPageSize);
++			m_pDirect = new(m_nPageSize) inode(m_nPageSize, this);
+ 		if (!m_pDirect)
+ 			return store_E_OutOfMemory;
+ 
+@@ -1087,7 +1086,7 @@ storeError OStorePageManager::rename (
+ 	if (i < n)
+ 	{
+ 		// Compare entry.
+-		entry::CompareResult result = e.compare (m_pNode[0]->m_pData[i]);
++		entry::CompareResult result = e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]);
+ 		OSL_POSTCOND(
+ 			result != entry::COMPARE_LESS,
+ 			"OStorePageManager::rename(): find failed");
+@@ -1118,14 +1117,8 @@ storeError OStorePageManager::rename (
+ 	if (!(e.m_nAttrib & STORE_ATTRIB_ISLINK))
+ 	{
+ 		// Setup 'Destination' NameBlock.
+-        sal_Int32 nDstLen = pDstName->length;
+-        rtl_copyMemory (
+-			&m_pDirect->m_aNameBlock.m_pData[0],
+-			pDstName->buffer, nDstLen);
+-		rtl_zeroMemory (
+-			&m_pDirect->m_aNameBlock.m_pData[nDstLen],
+-			STORE_MAXIMUM_NAMESIZE - nDstLen);
+-		m_pDirect->m_aNameBlock.m_aKey = e.m_aKey;
++		m_pDirect->NameBlock ().SetName (pDstName, *this);
++		m_pDirect->NameBlock ().SetKey (e.m_aKey);
+ 
+ 		// Save directory page.
+ 		OStoreDirectoryPageObject aPage (*m_pDirect);
+@@ -1175,14 +1168,14 @@ storeError OStorePageManager::remove (co
+ 	}
+ 
+ 	// Check for exact match.
+-	if (!(e.compare (m_pNode[0]->m_pData[i]) == entry::COMPARE_EQUAL))
++	if (!(e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]) == entry::COMPARE_EQUAL))
+ 	{
+ 		// Page not present.
+ 		return store_E_NotExists;
+ 	}
+ 
+ 	// Existing entry. Check address.
+-	e = m_pNode[0]->m_pData[i];
++	e = m_pNode[0]->DataRepresentation ().m_pData[i];
+ 	if (e.m_aLink.m_nAddr == STORE_PAGE_NULL)
+ 	{
+ 		// Page not present.
+@@ -1194,7 +1187,7 @@ storeError OStorePageManager::remove (co
+ 	{
+ 		// Check directory page buffer.
+ 		if (!m_pDirect)
+-			m_pDirect = new(m_nPageSize) inode(m_nPageSize);
++			m_pDirect = new(m_nPageSize) inode(m_nPageSize, this);
+ 		if (!m_pDirect)
+ 			return store_E_OutOfMemory;
+ 
+@@ -1207,7 +1200,7 @@ storeError OStorePageManager::remove (co
+ 			return eErrCode;
+ 
+ 		// Acquire page write access.
+-		OStorePageDescriptor aDescr (m_pDirect->m_aDescr);
++		OStorePageDescriptor aDescr (m_pDirect->PageHeader ().m_aDescr);
+ 		eErrCode = base::acquirePage (aDescr, store_AccessReadWrite);
+ 		if (eErrCode != store_E_None)
+ 			return eErrCode;
+@@ -1234,7 +1227,7 @@ storeError OStorePageManager::remove (co
+ 			}
+ 
+ 			// Truncate internal data page.
+-			rtl_zeroMemory (&m_pDirect->m_pData[0], m_pDirect->capacity());
++			rtl_zeroMemory (m_pDirect->Data (), m_pDirect->capacity());
+ 			aPage.dataLength (0);
+ 		}
+ 
+@@ -1284,7 +1277,7 @@ storeError OStorePageManager::iterate (
+ 	}
+ 		
+ 	// Compare entry.
+-	entry::CompareResult result = e.compare (m_pNode[0]->m_pData[i]);
++	entry::CompareResult result = e.compare (m_pNode[0]->DataRepresentation ().m_pData[i]);
+ 	OSL_POSTCOND(
+ 		result != entry::COMPARE_LESS,
+ 		"OStorePageManager::iterate(): find failed");
+@@ -1297,7 +1290,7 @@ storeError OStorePageManager::iterate (
+ 	}
+ 
+ 	// GreaterEqual. Found next entry.
+-	e = m_pNode[0]->m_pData[i];
++	e = m_pNode[0]->DataRepresentation ().m_pData[i];
+ 
+ 	// Setup result.
+ 	rKey    = e.m_aKey;
+@@ -1391,20 +1384,20 @@ storeError OStorePageManager::rebuild (
+ 		return eErrCode;
+ 
+ 	// Initialize as 'Destination' with 'Source' page size.
+-	eErrCode = self::initializeManager (pDstLB, store_AccessCreate, nPageSize);
++	eErrCode = self::initializeManager (pDstLB, store_AccessCreate, nPageSize, version ());
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
+ 
+ 	// Initialize directory and data page buffers.
+ 	if (!m_pDirect)
+-		m_pDirect = new(m_nPageSize) inode(m_nPageSize);
++		m_pDirect = new(m_nPageSize) inode(m_nPageSize, this);
+ 	if (!m_pData)
+ 		m_pData = new(m_nPageSize) data(m_nPageSize);
+ 	if (!(m_pDirect && m_pData))
+ 		return store_E_OutOfMemory;
+ 
+ 	// Initialize 'Source' directory page.
+-	inode *pDirect = new(m_nPageSize) inode(m_nPageSize);
++	inode *pDirect = new(m_nPageSize) inode(m_nPageSize, this);
+ 	if (!pDirect)
+ 		return store_E_OutOfMemory;
+ 
+@@ -1413,8 +1406,8 @@ storeError OStorePageManager::rebuild (
+ 	while ((eErrCode = aCtx.load(aSrcPage)) == store_E_None)
+ 	{
+ 		// Obtain page key and data length.
+-		OStorePageKey aKey (pDirect->m_aNameBlock.m_aKey);
+-		sal_uInt32 nDataLen = pDirect->m_aDataBlock.m_nDataLen;
++		OStorePageKey aKey (pDirect->NameBlock ().Key ());
++		sal_uInt32 nDataLen = pDirect->DataBlock ().DataLen ();
+ 
+ 		// Determine data page scope.
+ 		inode::ChunkScope eScope = pDirect->scope (nDataLen);
+@@ -1431,8 +1424,8 @@ storeError OStorePageManager::rebuild (
+ 			OStoreDirectoryPageObject aDstPage (*m_pDirect);
+ 			rtl_copyMemory (m_pDirect, pDirect, m_nPageSize);
+ 
+-			m_pDirect->m_aDataBlock.initialize();
+-			m_pDirect->m_aDataBlock.m_nDataLen = m_pDirect->capacity();
++			m_pDirect->DataBlock ().initialize();
++			m_pDirect->DataBlock ().SetDataLen (m_pDirect->capacity());
+ 
+ 			// Insert 'Destination' directory page.
+ 			eErrCode = save (aKey, aDstPage);
+@@ -1451,7 +1444,7 @@ storeError OStorePageManager::rebuild (
+ 			for (i = 0; i < n; i++)
+ 			{
+ 				// Re-initialize data page size.
+-				m_pData->m_aDescr.m_nSize = m_nPageSize;
++				m_pData->PageHeader ().m_aDescr.m_nSize = m_nPageSize;
+ 
+ 				// Read 'Source' data page.
+ 				OStorePageBIOS &rBIOS  = *(aCtx.m_xBIOS);
+@@ -1470,7 +1463,7 @@ storeError OStorePageManager::rebuild (
+ 			}
+ 
+ 			// Update 'Destination' directory page.
+-			m_pDirect->m_aDataBlock.m_nDataLen = nDataLen;
++			m_pDirect->DataBlock ().SetDataLen (nDataLen);
+ 			eErrCode = base::save (aDstPage);
+ 		}
+ 	}
+@@ -1492,17 +1485,17 @@ storeError OStorePageManager::rebuild (
+ 			sal_uInt16 i, n = pNode->usageCount();
+ 			for (i = 0; i < n; i++)
+ 			{
+-				e = pNode->m_pData[i];
++				e = pNode->DataRepresentation ().m_pData[i];
+ 				if (e.m_nAttrib & STORE_ATTRIB_ISLINK)
+ 				{
+ 					// Hard link.
+ 					aSrcPage.location (e.m_aLink.m_nAddr);
+-					pDirect->m_aDescr.m_nSize = m_nPageSize;
++					pDirect->PageHeader ().m_aDescr.m_nSize = m_nPageSize;
+ 
+ 					eErrCode = aCtx.m_xBIOS->load (aSrcPage);
+ 					if (eErrCode == store_E_None)
+ 					{
+-						OStorePageKey aDstKey (pDirect->m_aNameBlock.m_aKey);
++						OStorePageKey aDstKey (pDirect->NameBlock ().Key ());
+ 						eErrCode = link (e.m_aKey, aDstKey);
+ 					}
+ 					e.m_nAttrib &= ~STORE_ATTRIB_ISLINK;
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storpage.hxx store/source/storpage.hxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/storpage.hxx	2006-06-20 02:34:18.000000000 +0200
++++ store/source/storpage.hxx	2007-03-14 10:09:52.000000000 +0100
+@@ -81,7 +81,8 @@ public:
+     storeError initializeManager (
+ 		ILockBytes      *pLockBytes,
+ 		storeAccessMode  eAccessMode,
+-		sal_uInt16       nPageSize);
++		sal_uInt16       nPageSize,
++        sal_uInt16       nFormatVersion);
+ 
+ 	/** isValid.
+ 	 *  @return sal_True  upon successful initialization,
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stortree.cxx store/source/stortree.cxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stortree.cxx	2006-09-17 03:13:15.000000000 +0200
++++ store/source/stortree.cxx	2007-03-15 14:12:58.000000000 +0100
+@@ -78,7 +78,7 @@ using namespace store;
+  * OStoreBTreeNodeData.
+  */
+ OStoreBTreeNodeData::OStoreBTreeNodeData (sal_uInt16 nPageSize)
+-	: OStorePageData (nPageSize)
++	: OStorePageData (nPageSize, sizeof (self))
+ {
+ 	initialize();
+ }
+@@ -88,15 +88,15 @@ OStoreBTreeNodeData::OStoreBTreeNodeData
+  */
+ void OStoreBTreeNodeData::initialize (void)
+ {
+-	base::m_aGuard.m_nMagic = STORE_MAGIC_BTREENODE;
+-	base::m_aDescr.m_nUsed  = base::size() + self::size();
+-	self::m_aGuard.m_nMagic = 0;
++	base::PageHeader ().m_aGuard.m_nMagic = STORE_MAGIC_BTREENODE;
++	base::PageHeader ().m_aDescr.m_nUsed  = base::size() + self::size();
++	self::PageHeader ().m_aGuard.m_nMagic = 0;
+ 
+ 	sal_uInt16 i, n = capacityCount();
+ 	T          t;
+ 
+ 	for (i = 1; i < n; i++)
+-		m_pData[i] = t;
++		DataRepresentation ().m_pData[i] = t;
+ }
+ 
+ /*
+@@ -110,11 +110,11 @@ void OStoreBTreeNodeData::swap (
+ )
+ {
+ #ifdef OSL_BIGENDIAN
+-	m_aGuard.swap();
++	DataRepresentation ().m_aGuard.swap();
+ 
+ 	sal_uInt16 i, n = sal_uInt16(capacity(rDescr) / sizeof(T));
+ 	for (i = 0; i < n; i++)
+-		m_pData[i].swap();
++		DataRepresentation ().m_pData[i].swap();
+ #endif /* OSL_BIGENDIAN */
+ }
+ 
+@@ -130,16 +130,16 @@ sal_uInt16 OStoreBTreeNodeData::find (co
+ 	{
+ 		register sal_Int32 m = ((l + r) >> 1);
+ 
+-		if (t.m_aKey == m_pData[m].m_aKey)
++		if (t.m_aKey == DataRepresentation ().m_pData[m].m_aKey)
+ 			return ((sal_uInt16)(m));
+-		if (t.m_aKey < m_pData[m].m_aKey)
++		if (t.m_aKey < DataRepresentation ().m_pData[m].m_aKey)
+ 			r = m - 1;
+ 		else
+ 			l = m + 1;
+ 	}
+ 
+ 	sal_uInt16 k = ((sal_uInt16)(r));
+-	if ((k < capacityCount()) && (t.m_aKey < m_pData[k].m_aKey))
++	if ((k < capacityCount()) && (t.m_aKey < DataRepresentation ().m_pData[k].m_aKey))
+ 		return(k - 1);
+ 	else
+ 		return(k);
+@@ -155,11 +155,11 @@ void OStoreBTreeNodeData::insert (sal_uI
+ 	if ((n < m) && (i < m))
+ 	{
+ 		// shift right.
+-		rtl_moveMemory (&m_pData[i + 1], &m_pData[i], (n - i) * sizeof(T));
++		rtl_moveMemory (&DataRepresentation ().m_pData[i + 1], &DataRepresentation ().m_pData[i], (n - i) * sizeof(T));
+ 
+ 		// insert.
+-		m_pData[i] = t;
+-		base::m_aDescr.m_nUsed += sal_uInt16(sizeof(T));
++		DataRepresentation ().m_pData[i] = t;
++		base::PageHeader ().m_aDescr.m_nUsed += sal_uInt16(sizeof(T));
+ 	}
+ }
+ 
+@@ -173,11 +173,11 @@ void OStoreBTreeNodeData::remove (sal_uI
+ 	{
+ 		// shift left.
+ 		rtl_moveMemory (
+-			&m_pData[i], &m_pData[i + 1], (n - i - 1) * sizeof(T));
++			&DataRepresentation ().m_pData[i], &DataRepresentation ().m_pData[i + 1], (n - i - 1) * sizeof(T));
+ 
+ 		// truncate.
+-		m_pData[n - 1] = T();
+-		base::m_aDescr.m_nUsed -= sal_uInt16(sizeof(T));
++		DataRepresentation ().m_pData[n - 1] = T();
++		base::PageHeader ().m_aDescr.m_nUsed -= sal_uInt16(sizeof(T));
+ 	}
+ }
+ 
+@@ -190,7 +190,7 @@ void OStoreBTreeNodeData::merge (const s
+ 	{
+ 		sal_uInt16 n = usageCount();
+ 		sal_uInt16 m = rPageR.usageCount();
+-		rtl_copyMemory (&m_pData[n], &rPageR.m_pData[0], m * sizeof(T));
++		rtl_copyMemory (&DataRepresentation ().m_pData[n], &rPageR.DataRepresentation ().m_pData[0], m * sizeof(T));
+ 		usageCount (n + m);
+ 	}
+ }
+@@ -201,7 +201,7 @@ void OStoreBTreeNodeData::merge (const s
+ void OStoreBTreeNodeData::split (const self& rPageL)
+ {
+ 	sal_uInt16 h = capacityCount() / 2;
+-	rtl_copyMemory (&m_pData[0], &rPageL.m_pData[h], h * sizeof(T));
++	rtl_copyMemory (&DataRepresentation ().m_pData[0], &rPageL.DataRepresentation ().m_pData[h], h * sizeof(T));
+ 	truncate (h);
+ }
+ 
+@@ -214,7 +214,7 @@ void OStoreBTreeNodeData::truncate (sal_
+ 	T          t;
+ 
+ 	for (sal_uInt16 i = n; i < m; i++)
+-		m_pData[i] = t;
++		DataRepresentation ().m_pData[i] = t;
+ 	usageCount (n);
+ }
+ 
+@@ -278,7 +278,7 @@ storeError OStoreBTreeNodeObject::split 
+ 	STORE_METHOD_ENTER(pMutex);
+ 
+ 	// Save PageDescriptor.
+-	D aDescr (m_rPage.m_aDescr);
++	D aDescr (m_rPage.PageHeader ().m_aDescr);
+ 
+ 	// Acquire Lock.
+ 	storeError eErrCode = rBIOS.acquireLock (aDescr.m_nAddr, aDescr.m_nSize);
+@@ -320,7 +320,7 @@ storeError OStoreBTreeNodeObject::split 
+ 
+ 	// Insert right page.
+ 	T entry;
+-	entry.m_aKey          = rPageR.m_pData[0].m_aKey;
++	entry.m_aKey          = rPageR.DataRepresentation ().m_pData[0].m_aKey;
+ 	entry.m_aLink.m_nAddr = rPageR.location();
+ 
+ 	m_rPage.insert (nIndexL + 1, entry);
+@@ -363,7 +363,7 @@ storeError OStoreBTreeNodeObject::remove
+ 	STORE_METHOD_ENTER(pMutex);
+ 
+ 	// Save PageDescriptor.
+-	D aDescr (m_rPage.m_aDescr);
++	D aDescr (m_rPage.PageHeader ().m_aDescr);
+ 
+ 	// Acquire Lock.
+ 	storeError eErrCode = rBIOS.acquireLock (aDescr.m_nAddr, aDescr.m_nSize);
+@@ -374,7 +374,7 @@ storeError OStoreBTreeNodeObject::remove
+ 	if (m_rPage.depth())
+ 	{
+ 		// Check link entry.
+-		if (!(rEntryL.compare (m_rPage.m_pData[nIndexL]) == T::COMPARE_EQUAL))
++		if (!(rEntryL.compare (m_rPage.DataRepresentation ().m_pData[nIndexL]) == T::COMPARE_EQUAL))
+ 		{
+ 			rBIOS.releaseLock (aDescr.m_nAddr, aDescr.m_nSize);
+ 			STORE_METHOD_LEAVE(pMutex, store_E_InvalidAccess);
+@@ -382,7 +382,7 @@ storeError OStoreBTreeNodeObject::remove
+ 
+ 		// Load link node.
+ 		self aNodeL (rPageL);
+-		aNodeL.location (m_rPage.m_pData[nIndexL].m_aLink.m_nAddr);
++		aNodeL.location (m_rPage.DataRepresentation ().m_pData[nIndexL].m_aLink.m_nAddr);
+ 
+ 		eErrCode = rBIOS.load (aNodeL);
+ 		if (eErrCode != store_E_None)
+@@ -452,21 +452,21 @@ storeError OStoreBTreeNodeObject::remove
+ #endif  /* NYI */
+ 
+ 			// Relink.
+-			m_rPage.m_pData[nIndexL].m_aKey = rPageL.m_pData[0].m_aKey;
++			m_rPage.DataRepresentation ().m_pData[nIndexL].m_aKey = rPageL.DataRepresentation ().m_pData[0].m_aKey;
+ 			touch();
+ 		}
+ 	}
+ 	else
+ 	{
+ 		// Check leaf entry.
+-		if (!(rEntryL.compare (m_rPage.m_pData[nIndexL]) == T::COMPARE_EQUAL))
++		if (!(rEntryL.compare (m_rPage.DataRepresentation ().m_pData[nIndexL]) == T::COMPARE_EQUAL))
+ 		{
+ 			rBIOS.releaseLock (aDescr.m_nAddr, aDescr.m_nSize);
+ 			STORE_METHOD_LEAVE(pMutex, store_E_NotExists);
+ 		}
+ 
+ 		// Save leaf entry.
+-		rEntryL = m_rPage.m_pData[nIndexL];
++		rEntryL = m_rPage.DataRepresentation ().m_pData[nIndexL];
+ 
+ 		// Remove leaf index.
+ 		m_rPage.remove (nIndexL);
+@@ -511,7 +511,7 @@ storeError OStoreBTreeRootObject::change
+ 	STORE_METHOD_ENTER(pMutex);
+ 
+ 	// Save PageDescriptor.
+-	OStorePageDescriptor aDescr (m_rPage.m_aDescr);
++	OStorePageDescriptor aDescr (m_rPage.PageHeader ().m_aDescr);
+ 
+ 	// Acquire Lock.
+ 	storeError eErrCode = rBIOS.acquireLock (aDescr.m_nAddr, aDescr.m_nSize);
+@@ -530,8 +530,8 @@ storeError OStoreBTreeRootObject::change
+ 		STORE_METHOD_LEAVE(pMutex, eErrCode);
+ 	}
+ 
+-	m_rPage.m_pData[0].m_aKey = rPageL.m_pData[0].m_aKey;
+-	m_rPage.m_pData[0].m_aLink.m_nAddr = rPageL.location();
++	m_rPage.DataRepresentation ().m_pData[0].m_aKey = rPageL.DataRepresentation ().m_pData[0].m_aKey;
++	m_rPage.DataRepresentation ().m_pData[0].m_aLink.m_nAddr = rPageL.location();
+ 
+ 	m_rPage.truncate (1);
+ 	m_rPage.depth (m_rPage.depth() + 1);
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stortree.hxx store/source/stortree.hxx
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/source/stortree.hxx	2006-06-20 02:34:40.000000000 +0200
++++ store/source/stortree.hxx	2007-03-13 11:27:45.000000000 +0100
+@@ -146,8 +146,15 @@ struct OStoreBTreeNodeData : public stor
+ 
+ 	/** Representation.
+ 	*/
+-	G m_aGuard;
+-	T m_pData[1];
++    struct Representation {
++        G m_aGuard;
++        T m_pData[1];
++    };
++
++    inline Representation& DataRepresentation () const
++    {
++        return *(Representation *) (Data () + base::size ());
++    }
+ 
+ 	/** size.
+ 	*/
+@@ -164,7 +171,7 @@ struct OStoreBTreeNodeData : public stor
+ 	}
+ 	sal_uInt16 capacity (void) const
+ 	{
+-		return self::capacity (base::m_aDescr);
++		return self::capacity (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** capacityCount (must be even).
+@@ -182,7 +189,7 @@ struct OStoreBTreeNodeData : public stor
+ 	}
+ 	sal_uInt16 usage (void) const
+ 	{
+-		return self::usage (base::m_aDescr);
++		return self::usage (base::PageHeader ().m_aDescr);
+ 	}
+ 
+ 	/** usageCount.
+@@ -193,7 +200,7 @@ struct OStoreBTreeNodeData : public stor
+ 	}
+ 	void usageCount (sal_uInt16 nCount)
+ 	{
+-		base::m_aDescr.m_nUsed = base::size() + self::size() +
++		base::PageHeader ().m_aDescr.m_nUsed = base::size() + self::size() +
+             sal_uInt16(nCount * sizeof(T));
+ 	}
+ 
+@@ -208,8 +215,8 @@ struct OStoreBTreeNodeData : public stor
+ 		{
+ 			base::operator= (rOther);
+ 
+-			m_aGuard = rOther.m_aGuard;
+-			rtl_copyMemory (m_pData, rOther.m_pData, capacity());
++			DataRepresentation ().m_aGuard = rOther.DataRepresentation ().m_aGuard;
++			rtl_copyMemory (DataRepresentation ().m_pData, rOther.DataRepresentation ().m_pData, capacity());
+ 		}
+ 		return *this;
+ 	}
+@@ -218,7 +225,7 @@ struct OStoreBTreeNodeData : public stor
+ 	*/
+ 	sal_Bool operator== (const self& rOther) const
+ 	{
+-		return (base::operator==(rOther) && (m_aGuard == rOther.m_aGuard));
++		return (base::operator==(rOther) && (DataRepresentation ().m_aGuard == rOther.DataRepresentation ().m_aGuard));
+ 	}
+ 
+ 	/** swap (external and internal representation).
+@@ -230,12 +237,12 @@ struct OStoreBTreeNodeData : public stor
+ 	void guard (const D& rDescr)
+ 	{
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, m_pData, capacity(rDescr));
++		nCRC32 = G::crc32 (nCRC32, &DataRepresentation ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, DataRepresentation ().m_pData, capacity(rDescr));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		m_aGuard.m_nCRC32 = nCRC32;
++		DataRepresentation ().m_aGuard.m_nCRC32 = nCRC32;
+ 	}
+ 
+ 	/** verify (external representation).
+@@ -243,12 +250,12 @@ struct OStoreBTreeNodeData : public stor
+ 	storeError verify (const D& rDescr)
+ 	{
+ 		sal_uInt32 nCRC32 = 0;
+-		nCRC32 = G::crc32 (nCRC32, &m_aGuard.m_nMagic, sizeof(sal_uInt32));
+-		nCRC32 = G::crc32 (nCRC32, m_pData, capacity(rDescr));
++		nCRC32 = G::crc32 (nCRC32, &DataRepresentation ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
++		nCRC32 = G::crc32 (nCRC32, DataRepresentation ().m_pData, capacity(rDescr));
+ #ifdef OSL_BIGENDIAN
+ 		nCRC32 = OSL_SWAPDWORD(nCRC32);
+ #endif /* OSL_BIGENDIAN */
+-		if (m_aGuard.m_nCRC32 != nCRC32)
++		if (DataRepresentation ().m_aGuard.m_nCRC32 != nCRC32)
+ 			return store_E_InvalidChecksum;
+ 		else
+ 			return store_E_None;
+@@ -258,11 +265,11 @@ struct OStoreBTreeNodeData : public stor
+ 	*/
+ 	sal_uInt32 depth (void) const
+ 	{
+-		return self::m_aGuard.m_nMagic;
++		return self::DataRepresentation ().m_aGuard.m_nMagic;
+ 	}
+ 	void depth (sal_uInt32 nDepth)
+ 	{
+-		self::m_aGuard.m_nMagic = nDepth;
++		self::DataRepresentation ().m_aGuard.m_nMagic = nDepth;
+ 	}
+ 
+ 	/** queryMerge.
+diff -rup /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/workben/makefile.mk store/workben/makefile.mk
+--- /home/rodo/svn/ooo-build-reference/build/oof680-m7/store/workben/makefile.mk	2005-09-08 10:49:17.000000000 +0200
++++ store/workben/makefile.mk	2007-02-28 22:58:41.000000000 +0100
+@@ -68,12 +68,14 @@ CFLAGS+= -I..$/source
+ CXXFILES=	\
+ 	t_file.cxx	\
+ 	t_base.cxx	\
+-	t_store.cxx
++	t_store.cxx	\
++	t_shell.cxx
+ 
+ OBJFILES=	\
+ 	$(OBJ)$/t_file.obj	\
+ 	$(OBJ)$/t_base.obj	\
+-	$(OBJ)$/t_store.obj
++	$(OBJ)$/t_store.obj	\
++	$(OBJ)$/t_shell.obj
+ 
+ APP1TARGET=		t_file
+ APP1OBJS=		$(OBJ)$/t_file.obj
+@@ -99,6 +101,14 @@ APP3DEPN=	\
+ 	$(SLB)$/store.lib	\
+ 	$(L)$/isal.lib
+ 
++APP4TARGET=		t_shell
++APP4OBJS=		$(OBJ)$/t_shell.obj
++APP4STDLIBS=	$(STORELIB)
++APP4STDLIBS+=	$(SALLIB)
++APP4DEPN=	\
++	$(SLB)$/store.lib	\
++	$(L)$/isal.lib
++
+ # --- Targets ---
+ 
+ .INCLUDE : target.mk
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/db42-fix-jni-includes.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/db42-fix-jni-includes.diff
@@ -0,0 +1,4511 @@
+--- berkeleydb/db-4.2.52.patch.db42fix	2006-12-18 10:30:23.000000000 +0100
++++ berkeleydb/db-4.2.52.patch	2006-12-18 09:37:27.000000000 +0100
+@@ -4543,3 +4543,4489 @@
+ ! 			$(SLO)$/xa_map.obj
+ ! 
+ ! .INCLUDE :  target.mk
++diff -cNr misc/build/db-4.2.52.NC.orig/btree/bt_rec.c misc/build/db-4.2.52.NC/btree/bt_rec.c
++*** misc/build/db-4.2.52.NC.orig/btree/bt_rec.c	2003-09-13 20:48:58.000000000 +0200
++--- misc/build/db-4.2.52.NC/btree/bt_rec.c	2006-01-29 14:18:19.000000000 +0100
++***************
++*** 222,228 ****
++  		 * previous-page pointer updated to our new page.  The next
++  		 * page must exist because we're redoing the operation.
++  		 */
++! 		if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
++  			if ((ret =
++  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
++  				ret = __db_pgerr(file_dbp, argp->npgno, ret);
++--- 222,228 ----
++  		 * previous-page pointer updated to our new page.  The next
++  		 * page must exist because we're redoing the operation.
++  		 */
++! 		if (!rootsplit && argp->npgno != PGNO_INVALID) {
++  			if ((ret =
++  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
++  				ret = __db_pgerr(file_dbp, argp->npgno, ret);
++***************
++*** 294,300 ****
++  		 * possible that the next-page never existed, we ignore it as
++  		 * if there's nothing to undo.
++  		 */
++! 		if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
++  			if ((ret =
++  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
++  				np = NULL;
++--- 294,300 ----
++  		 * possible that the next-page never existed, we ignore it as
++  		 * if there's nothing to undo.
++  		 */
++! 		if (!rootsplit && argp->npgno != PGNO_INVALID) {
++  			if ((ret =
++  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
++  				np = NULL;
++diff -cNr misc/build/db-4.2.52.NC.orig/dbinc/db.in misc/build/db-4.2.52.NC/dbinc/db.in
++*** misc/build/db-4.2.52.NC.orig/dbinc/db.in	2003-10-03 19:20:36.000000000 +0200
++--- misc/build/db-4.2.52.NC/dbinc/db.in	2006-01-29 14:50:27.000000000 +0100
++***************
++*** 839,844 ****
++--- 839,845 ----
++  #define	TXN_NOWAIT	0x040		/* Do not wait on locks. */
++  #define	TXN_RESTORED	0x080		/* Transaction has been restored. */
++  #define	TXN_SYNC	0x100		/* Sync on prepare and commit. */
+++ #define	TXN_NOLOG	0x200		/* Do not log this transaction. */
++  	u_int32_t	flags;
++  };
++  
++diff -cNr misc/build/db-4.2.52.NC.orig/dbinc/mutex.h misc/build/db-4.2.52.NC/dbinc/mutex.h
++*** misc/build/db-4.2.52.NC.orig/dbinc/mutex.h	2003-09-20 23:40:49.000000000 +0200
++--- misc/build/db-4.2.52.NC/dbinc/mutex.h	2006-01-29 14:47:26.000000000 +0100
++***************
++*** 781,786 ****
++--- 781,811 ----
++  #endif
++  #endif
++  
+++ /*********************************************************************
+++  * amd64/gcc assembly.
+++  *********************************************************************/
+++ #ifdef HAVE_MUTEX_X86_64_GCC_ASSEMBLY
+++ typedef unsigned char tsl_t;
+++ 
+++ #ifdef LOAD_ACTUAL_MUTEX_CODE
+++ /*
+++  * For gcc/amd64, 0 is clear, 1 is set.
+++  */
+++ #define  MUTEX_SET(tsl) ({           \
+++ 	register tsl_t *__l = (tsl);          \
+++ 	int __r;              \
+++ 	asm volatile("mov $1,%%rax; lock; xchgb %1,%%al; xor $1,%%rax"\
+++ 		: "=&a" (__r), "=m" (*__l)          \
+++ 		: "1" (*__l)            \
+++ 		);                \
+++ 	__r & 1;              \
+++ })
+++ 
+++ #define  MUTEX_UNSET(tsl)  (*(tsl) = 0)
+++ #define  MUTEX_INIT(tsl)   MUTEX_UNSET(tsl)
+++ #endif
+++ #endif
+++ 
++  /*
++   * Mutex alignment defaults to one byte.
++   *
++diff -cNr misc/build/db-4.2.52.NC.orig/dist/aclocal/libtool.ac misc/build/db-4.2.52.NC/dist/aclocal/libtool.ac
++*** misc/build/db-4.2.52.NC.orig/dist/aclocal/libtool.ac	2003-04-26 19:45:37.000000000 +0200
++--- misc/build/db-4.2.52.NC/dist/aclocal/libtool.ac	2006-01-29 14:48:40.000000000 +0100
++***************
++*** 1092,1097 ****
++--- 1092,1120 ----
++  version_type=none
++  dynamic_linker="$host_os ld.so"
++  sys_lib_dlsearch_path_spec="/lib /usr/lib"
+++ 
+++ case $host in
+++ *-*-linux*)
+++   # Test if the compiler is 64bit
+++   echo 'int i;' > conftest.$ac_ext
+++   lt_cv_cc_64bit_output=no
+++   if AC_TRY_EVAL(ac_compile); then
+++     case "`/usr/bin/file conftest.$ac_objext`" in
+++     *64-bit*)
+++       lt_cv_cc_64bit_output=yes
+++       ;;
+++     esac
+++   fi
+++   rm -rf conftest*
+++   ;;
+++ esac
+++ 
+++ case $host_cpu:$lt_cv_cc_64bit_output in
+++ powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
+++   sys_lib_dlsearch_path_spec="/lib64 /usr/lib64"
+++   ;;
+++ esac
+++ 
++  if test "$GCC" = yes; then
++    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
++    if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
++***************
++*** 2019,2025 ****
++  [AC_REQUIRE([AC_PROG_EGREP])dnl
++  AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
++  [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
++! case `"$LD" -v 2>&1 </dev/null` in
++  *GNU* | *'with BFD'*)
++    lt_cv_prog_gnu_ld=yes
++    ;;
++--- 2042,2048 ----
++  [AC_REQUIRE([AC_PROG_EGREP])dnl
++  AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
++  [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
++! case `$LD -v 2>&1 </dev/null` in
++  *GNU* | *'with BFD'*)
++    lt_cv_prog_gnu_ld=yes
++    ;;
++***************
++*** 2167,2173 ****
++  # This must be Linux ELF.
++  linux*)
++    case $host_cpu in
++!   alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
++      lt_cv_deplibs_check_method=pass_all ;;
++    *)
++      # glibc up to 2.1.1 does not perform some relocations on ARM
++--- 2190,2196 ----
++  # This must be Linux ELF.
++  linux*)
++    case $host_cpu in
++!   alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh* | x86_64*)
++      lt_cv_deplibs_check_method=pass_all ;;
++    *)
++      # glibc up to 2.1.1 does not perform some relocations on ARM
++diff -cNr misc/build/db-4.2.52.NC.orig/dist/aclocal/mutex.ac misc/build/db-4.2.52.NC/dist/aclocal/mutex.ac
++*** misc/build/db-4.2.52.NC.orig/dist/aclocal/mutex.ac	2003-06-16 16:54:39.000000000 +0200
++--- misc/build/db-4.2.52.NC/dist/aclocal/mutex.ac	2006-01-29 14:47:26.000000000 +0100
++***************
++*** 198,225 ****
++  # Try with and without the -lpthread library.  If the user specified we use
++  # POSIX pthreads mutexes, and we fail to find the full interface, try and
++  # configure for just intra-process support.
++! if test "$db_cv_mutex" = no -o "$db_cv_mutex" = "posix_only"; then
++! 	AM_PTHREADS_SHARED("POSIX/pthreads")
++! fi
++! if test "$db_cv_mutex" = no -o \
++!     "$db_cv_mutex" = "posix_only" -o "$db_cv_mutex" = "posix_library_only"; then
++! 	LIBS="$LIBS -lpthread"
++! 	AM_PTHREADS_SHARED("POSIX/pthreads/library")
++! 	LIBS="$orig_libs"
++! fi
++! if test "$db_cv_mutex" = "posix_only"; then
++! 	AM_PTHREADS_PRIVATE("POSIX/pthreads/private")
++! fi
++! if test "$db_cv_mutex" = "posix_only" -o \
++!     "$db_cv_mutex" = "posix_library_only"; then
++! 	LIBS="$LIBS -lpthread"
++! 	AM_PTHREADS_PRIVATE("POSIX/pthreads/library/private")
++! 	LIBS="$orig_libs"
++! fi
++! 
++! if test "$db_cv_mutex" = "posix_only" -o \
++!     "$db_cv_mutex" = "posix_library_only"; then
++! 	AC_MSG_ERROR([unable to find POSIX 1003.1 mutex interfaces])
++  fi
++  
++  # msemaphore: HPPA only
++--- 198,228 ----
++  # Try with and without the -lpthread library.  If the user specified we use
++  # POSIX pthreads mutexes, and we fail to find the full interface, try and
++  # configure for just intra-process support.
++! if test "$db_cv_pthreadsmutexes" = yes; then
++! 	if test "$db_cv_mutex" = no -o "$db_cv_mutex" = "posix_only"; then
++! 		AM_PTHREADS_SHARED("POSIX/pthreads")
++! 	fi
++! 	if test "$db_cv_mutex" = no -o \
++! 	    "$db_cv_mutex" = "posix_only" -o \
++! 	    "$db_cv_mutex" = "posix_library_only"; then
++! 		LIBS="$LIBS -lpthread"
++! 		AM_PTHREADS_SHARED("POSIX/pthreads/library")
++! 		LIBS="$orig_libs"
++! 	fi
++! 	if test "$db_cv_mutex" = "posix_only"; then
++! 		AM_PTHREADS_PRIVATE("POSIX/pthreads/private")
++! 	fi
++! 	if test "$db_cv_mutex" = "posix_only" -o \
++! 	    "$db_cv_mutex" = "posix_library_only"; then
++! 		LIBS="$LIBS -lpthread"
++! 		AM_PTHREADS_PRIVATE("POSIX/pthreads/library/private")
++! 		LIBS="$orig_libs"
++! 	fi
++! 
++! 	if test "$db_cv_mutex" = "posix_only" -o \
++! 	    "$db_cv_mutex" = "posix_library_only"; then
++! 		AC_MSG_ERROR([unable to find POSIX 1003.1 mutex interfaces])
++! 	fi
++  fi
++  
++  # msemaphore: HPPA only
++***************
++*** 450,455 ****
++--- 453,469 ----
++  ], [db_cv_mutex="S390/gcc-assembly"])
++  fi
++  
+++ # AMD64/gcc: FreeBSD, NetBSD, BSD/OS, Linux
+++ if test "$db_cv_mutex" = no; then
+++ AC_TRY_COMPILE(,[
+++ #if (defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__)
+++ 	exit(0);
+++ #else
+++ 	FAIL TO COMPILE/LINK
+++ #endif
+++ ], [db_cv_mutex="x86_64/gcc-assembly"])
+++ fi
+++ 
++  # ia86/gcc: Linux
++  if test "$db_cv_mutex" = no; then
++  AC_TRY_COMPILE(,[
++***************
++*** 610,615 ****
++--- 624,633 ----
++  			AC_DEFINE(HAVE_MUTEX_X86_GCC_ASSEMBLY)
++  			AH_TEMPLATE(HAVE_MUTEX_X86_GCC_ASSEMBLY,
++  			    [Define to 1 to use the GCC compiler and x86 assembly language mutexes.]);;
+++ x86_64/gcc-assembly)	ADDITIONAL_OBJS="mut_tas${o} $ADDITIONAL_OBJS"
+++ 			AC_DEFINE(HAVE_MUTEX_X86_64_GCC_ASSEMBLY)
+++ 			AH_TEMPLATE(HAVE_MUTEX_X86_64_GCC_ASSEMBLY,
+++ 			    [Define to 1 to use the GCC compiler and amd64 assembly language mutexes.]);;
++  UNIX/fcntl)		AC_MSG_WARN(
++  			    [NO FAST MUTEXES FOUND FOR THIS COMPILER/ARCHITECTURE.])
++  			ADDITIONAL_OBJS="mut_fcntl${o} $ADDITIONAL_OBJS"
++diff -cNr misc/build/db-4.2.52.NC.orig/dist/aclocal/options.ac misc/build/db-4.2.52.NC/dist/aclocal/options.ac
++*** misc/build/db-4.2.52.NC.orig/dist/aclocal/options.ac	2003-11-17 20:58:48.000000000 +0100
++--- misc/build/db-4.2.52.NC/dist/aclocal/options.ac	2006-01-29 14:46:48.000000000 +0100
++***************
++*** 137,142 ****
++--- 137,152 ----
++  	[db_cv_mingw="$enable_mingw"], [db_cv_mingw="no"])
++  AC_MSG_RESULT($db_cv_mingw)
++  
+++ AC_MSG_CHECKING(if --disable-pthreadsmutexes option specified)
+++ AC_ARG_ENABLE(pthreadsmutexes,
+++ 	AC_HELP_STRING([--disable-pthreadsmutexes],
+++ 	    [Do not use POSIX pthreads mutexes.]),, enableval="yes")
+++ db_cv_pthreadsmutexes="$enableval"
+++ case "$enableval" in
+++  no) AC_MSG_RESULT(yes);;
+++ yes) AC_MSG_RESULT(no);;
+++ esac
+++ 
++  AC_MSG_CHECKING(if --enable-posixmutexes option specified)
++  AC_ARG_ENABLE(posixmutexes,
++  	[AC_HELP_STRING([--enable-posixmutexes],
++diff -cNr misc/build/db-4.2.52.NC.orig/dist/configure.ac misc/build/db-4.2.52.NC/dist/configure.ac
++*** misc/build/db-4.2.52.NC.orig/dist/configure.ac	2003-10-15 02:55:17.000000000 +0200
++--- misc/build/db-4.2.52.NC/dist/configure.ac	2006-01-29 14:51:30.000000000 +0100
++***************
++*** 405,414 ****
++--- 405,424 ----
++  		AC_MSG_ERROR([Java version 1.3 or higher required, got $JAVA_VERSION]) ;;
++  	esac
++  
+++ 	dnl check for libgcj includes
+++ 	if test -z "$PKG_CONFIG"; then
+++ 		AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+++ 	fi
+++ 	if test -z "$JNI_INCLUDE_DIRS"; then
+++ 		if $PKG_CONFIG --exists libgcj ; then
+++ 			CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libgcj`"
+++ 		fi
+++ 	else
++  	for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
++  	do
++  		CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
++  	done
+++ 	fi
++  
++  	ADDITIONAL_LANG="$ADDITIONAL_LANG java"
++  	INSTALL_LIBS="$INSTALL_LIBS \$(libjso_target)"
++diff -cNr misc/build/db-4.2.52.NC.orig/dist/Makefile.in misc/build/db-4.2.52.NC/dist/Makefile.in
++*** misc/build/db-4.2.52.NC.orig/dist/Makefile.in	2003-11-28 19:50:06.000000000 +0100
++--- misc/build/db-4.2.52.NC/dist/Makefile.in	2006-01-29 14:47:45.000000000 +0100
++***************
++*** 143,150 ****
++  # local libraries, for example.  Do that by adding -I options to the DB185INC
++  # line, and -l options to the DB185LIB line.
++  ##################################################
++! DB185INC=	-c @CFLAGS@ -I$(srcdir) @CPPFLAGS@
++! DB185LIB=
++  
++  ##################################################
++  # NOTHING BELOW THIS LINE SHOULD EVER NEED TO BE MODIFIED.
++--- 143,150 ----
++  # local libraries, for example.  Do that by adding -I options to the DB185INC
++  # line, and -l options to the DB185LIB line.
++  ##################################################
++! DB185INC=	-c @CFLAGS@ -I/usr/include/db1 -I$(srcdir) @CPPFLAGS@
++! DB185LIB=	-Wl,-static,-ldb1,-Bdynamic
++  
++  ##################################################
++  # NOTHING BELOW THIS LINE SHOULD EVER NEED TO BE MODIFIED.
++diff -cNr misc/build/db-4.2.52.NC.orig/dist/Makefile.in misc/build/db-4.2.52.NC/dist/Makefile.in
++*** misc/build/db-4.2.52.NC.orig/dist/Makefile.in	2003-11-28 19:50:06.000000000 +0100
++--- misc/build/db-4.2.52.NC/dist/Makefile.in	2006-01-29 14:47:45.000000000 +0100
++***************
++*** 1519,1525 ****
++  # Java API build rules.
++  ##################################################
++  db_java_wrap@o@::$(srcdir)/libdb_java/db_java_wrap.c
++! 	$(CC) $(CFLAGS) $?
++  
++  ##################################################
++  # Tcl API build rules.
++--- 1519,1525 ----
++  # Java API build rules.
++  ##################################################
++  db_java_wrap@o@::$(srcdir)/libdb_java/db_java_wrap.c
++! 	$(CC) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux $(CFLAGS) $?
++  
++  ##################################################
++  # Tcl API build rules.
++diff -cNr misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/DbEnv.java misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/DbEnv.java
++*** misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/DbEnv.java	2003-12-03 22:26:27.000000000 +0100
++--- misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/DbEnv.java	2006-01-29 14:18:11.000000000 +0100
++***************
++*** 61,67 ****
++      // Internally, the JNI layer creates a global reference to each DbEnv,
++      // which can potentially be different to this.  We keep a copy here so
++      // we can clean up after destructors.
++!     private Object dbenv_ref;
++      private DbAppDispatch app_dispatch_handler;
++      private DbEnvFeedbackHandler env_feedback_handler;
++      private DbErrorHandler error_handler;
++--- 61,67 ----
++      // Internally, the JNI layer creates a global reference to each DbEnv,
++      // which can potentially be different to this.  We keep a copy here so
++      // we can clean up after destructors.
++!     private long dbenv_ref;
++      private DbAppDispatch app_dispatch_handler;
++      private DbEnvFeedbackHandler env_feedback_handler;
++      private DbErrorHandler error_handler;
++***************
++*** 94,100 ****
++      void cleanup() {
++          swigCPtr = 0;
++          db_java.deleteRef0(dbenv_ref);
++!         dbenv_ref = null;
++      }
++  
++  
++--- 94,100 ----
++      void cleanup() {
++          swigCPtr = 0;
++          db_java.deleteRef0(dbenv_ref);
++!         dbenv_ref = 0L;
++      }
++  
++  
++diff -cNr misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/Db.java misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/Db.java
++*** misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/Db.java	2003-12-03 22:26:25.000000000 +0100
++--- misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/Db.java	2006-01-29 14:18:11.000000000 +0100
++***************
++*** 57,63 ****
++      // Internally, the JNI layer creates a global reference to each Db,
++      // which can potentially be different to this.  We keep a copy here so
++      // we can clean up after destructors.
++!     private Object db_ref;
++      private DbEnv dbenv;
++      private boolean private_dbenv;
++      private DbAppendRecno append_recno_handler;
++--- 57,63 ----
++      // Internally, the JNI layer creates a global reference to each Db,
++      // which can potentially be different to this.  We keep a copy here so
++      // we can clean up after destructors.
++!     private long db_ref;
++      private DbEnv dbenv;
++      private boolean private_dbenv;
++      private DbAppendRecno append_recno_handler;
++***************
++*** 84,90 ****
++      private void cleanup() {
++          swigCPtr = 0;
++          db_java.deleteRef0(db_ref);
++!         db_ref = null;
++          if (private_dbenv) {
++              dbenv.cleanup();
++          }
++--- 84,90 ----
++      private void cleanup() {
++          swigCPtr = 0;
++          db_java.deleteRef0(db_ref);
++!         db_ref = 0L;
++          if (private_dbenv) {
++              dbenv.cleanup();
++          }
++diff -cNr misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/db_java.java misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/db_java.java
++*** misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/db_java.java	2003-12-03 22:10:54.000000000 +0100
++--- misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/db_java.java	2006-01-29 14:18:11.000000000 +0100
++***************
++*** 14,28 ****
++      db_javaJNI.DbEnv_lock_vec(DbEnv.getCPtr(dbenv), locker, flags, list, offset, nlist);
++    }
++  
++!    static Object initDbEnvRef0(DbEnv self, Object handle) {
++      return db_javaJNI.initDbEnvRef0(DbEnv.getCPtr(self), handle);
++    }
++  
++!    static Object initDbRef0(Db self, Object handle) {
++      return db_javaJNI.initDbRef0(Db.getCPtr(self), handle);
++    }
++  
++!    static void deleteRef0(Object ref) {
++      db_javaJNI.deleteRef0(ref);
++    }
++  
++--- 14,28 ----
++      db_javaJNI.DbEnv_lock_vec(DbEnv.getCPtr(dbenv), locker, flags, list, offset, nlist);
++    }
++  
++!    static long initDbEnvRef0(DbEnv self, Object handle) {
++      return db_javaJNI.initDbEnvRef0(DbEnv.getCPtr(self), handle);
++    }
++  
++!    static long initDbRef0(Db self, Object handle) {
++      return db_javaJNI.initDbRef0(Db.getCPtr(self), handle);
++    }
++  
++!    static void deleteRef0(long ref) {
++      db_javaJNI.deleteRef0(ref);
++    }
++  
++diff -cNr misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/db_javaJNI.java misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/db_javaJNI.java
++*** misc/build/db-4.2.52.NC.orig/java/src/com/sleepycat/db/db_javaJNI.java	2003-12-03 22:10:55.000000000 +0100
++--- misc/build/db-4.2.52.NC/java/src/com/sleepycat/db/db_javaJNI.java	2006-01-29 14:18:11.000000000 +0100
++***************
++*** 45,53 ****
++  	static native final void initialize();
++  
++    public final static native void DbEnv_lock_vec(long jarg1, int jarg2, int jarg3, DbLockRequest[] jarg4, int jarg5, int jarg6) throws DbException;
++!    final static native Object initDbEnvRef0(long jarg1, Object jarg2);
++!    final static native Object initDbRef0(long jarg1, Object jarg2);
++!    final static native void deleteRef0(Object jarg1);
++     final static native long getDbEnv0(long jarg1);
++    public final static native long new_Db(long jarg1, int jarg2) throws DbException;
++    public final static native void Db_associate(long jarg1, long jarg2, long jarg3, DbSecondaryKeyCreate jarg4, int jarg5) throws DbException;
++--- 45,53 ----
++  	static native final void initialize();
++  
++    public final static native void DbEnv_lock_vec(long jarg1, int jarg2, int jarg3, DbLockRequest[] jarg4, int jarg5, int jarg6) throws DbException;
++!    final static native long initDbEnvRef0(long jarg1, Object jarg2);
++!    final static native long initDbRef0(long jarg1, Object jarg2);
++!    final static native void deleteRef0(long jarg1);
++     final static native long getDbEnv0(long jarg1);
++    public final static native long new_Db(long jarg1, int jarg2) throws DbException;
++    public final static native void Db_associate(long jarg1, long jarg2, long jarg3, DbSecondaryKeyCreate jarg4, int jarg5) throws DbException;
++diff -cNr misc/build/db-4.2.52.NC.orig/libdb_java/db_java.i misc/build/db-4.2.52.NC/libdb_java/db_java.i
++*** misc/build/db-4.2.52.NC.orig/libdb_java/db_java.i	2003-11-17 21:00:52.000000000 +0100
++--- misc/build/db-4.2.52.NC/libdb_java/db_java.i	2006-01-29 14:18:11.000000000 +0100
++***************
++*** 53,59 ****
++  	// Internally, the JNI layer creates a global reference to each DbEnv,
++  	// which can potentially be different to this.  We keep a copy here so
++  	// we can clean up after destructors.
++! 	private Object dbenv_ref;
++  	private DbAppDispatch app_dispatch_handler;
++  	private DbEnvFeedbackHandler env_feedback_handler;
++  	private DbErrorHandler error_handler;
++--- 53,59 ----
++  	// Internally, the JNI layer creates a global reference to each DbEnv,
++  	// which can potentially be different to this.  We keep a copy here so
++  	// we can clean up after destructors.
++! 	private long dbenv_ref;
++  	private DbAppDispatch app_dispatch_handler;
++  	private DbEnvFeedbackHandler env_feedback_handler;
++  	private DbErrorHandler error_handler;
++***************
++*** 76,82 ****
++  	void cleanup() {
++  		swigCPtr = 0;
++  		db_java.deleteRef0(dbenv_ref);
++! 		dbenv_ref = null;
++  	}
++  
++  	public synchronized void close(int flags) throws DbException {
++--- 76,82 ----
++  	void cleanup() {
++  		swigCPtr = 0;
++  		db_java.deleteRef0(dbenv_ref);
++! 		dbenv_ref = 0L;
++  	}
++  
++  	public synchronized void close(int flags) throws DbException {
++***************
++*** 220,226 ****
++  	// Internally, the JNI layer creates a global reference to each Db,
++  	// which can potentially be different to this.  We keep a copy here so
++  	// we can clean up after destructors.
++! 	private Object db_ref;
++  	private DbEnv dbenv;
++  	private boolean private_dbenv;
++  	private DbAppendRecno append_recno_handler;
++--- 220,226 ----
++  	// Internally, the JNI layer creates a global reference to each Db,
++  	// which can potentially be different to this.  We keep a copy here so
++  	// we can clean up after destructors.
++! 	private long db_ref;
++  	private DbEnv dbenv;
++  	private boolean private_dbenv;
++  	private DbAppendRecno append_recno_handler;
++***************
++*** 245,251 ****
++  	private void cleanup() {
++  		swigCPtr = 0;
++  		db_java.deleteRef0(db_ref);
++! 		db_ref = null;
++  		if (private_dbenv)
++  			dbenv.cleanup();
++  		dbenv = null;
++--- 245,251 ----
++  	private void cleanup() {
++  		swigCPtr = 0;
++  		db_java.deleteRef0(db_ref);
++! 		db_ref = 0L;
++  		if (private_dbenv)
++  			dbenv.cleanup();
++  		dbenv = null;
++***************
++*** 503,548 ****
++  	}
++  %}
++  
++! %native(initDbEnvRef0) jobject initDbEnvRef0(DB_ENV *self, void *handle);
++! %native(initDbRef0) jobject initDbRef0(DB *self, void *handle);
++! %native(deleteRef0) void deleteRef0(jobject ref);
++  %native(getDbEnv0) DB_ENV *getDbEnv0(DB *self);
++  
++  %{
++! JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++  	DB_ENV *self = *(DB_ENV **)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++  	self->set_errpfx(self, (const char*)self);
++! 	return (jobject)DB_ENV_INTERNAL(self);
++  }
++  
++! JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++  	DB *self = *(DB **)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++! 	return (jobject)DB_INTERNAL(self);
++  }
++  
++  JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
++-     JNIEnv *jenv, jclass jcls, jobject jref) {
++- 	COMPQUIET(jcls, NULL);
++- 
++- 	if (jref != NULL)
++- 		(*jenv)->DeleteGlobalRef(jenv, jref);
++- }
++- 
++- JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = *(DB **)&jarg1;
++  	COMPQUIET(jcls, NULL);
++- 	COMPQUIET(jenv, NULL);
++  
++! 	return (jobject)DB_INTERNAL(self);
++  }
++  
++  JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
++--- 503,544 ----
++  	}
++  %}
++  
++! %native(initDbEnvRef0) jlong initDbEnvRef0(DB_ENV *self, void *handle);
++! %native(initDbRef0) jlong initDbRef0(DB *self, void *handle);
++! %native(deleteRef0) void deleteRef0(jlong ref);
++  %native(getDbEnv0) DB_ENV *getDbEnv0(DB *self);
++  
++  %{
++! JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++  	DB_ENV *self = *(DB_ENV **)&jarg1;
+++ 	jlong ret;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++  	self->set_errpfx(self, (const char*)self);
++! 	*(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
++! 	return (ret);
++  }
++  
++! JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++  	DB *self = *(DB **)&jarg1;
+++ 	jlong ret;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++! 	*(jobject *)&ret = (jobject)DB_INTERNAL(self);
++! 	return (ret);
++  }
++  
++  JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	jobject jref = *(jobject *)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  
++! 	if (jref != 0L)
++! 		(*jenv)->DeleteGlobalRef(jenv, jref);
++  }
++  
++  JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
++***************
++*** 554,560 ****
++  	COMPQUIET(jcls, NULL);
++  
++  	*(DB_ENV **)&env_cptr = self->dbenv;
++! 	return env_cptr;
++  }
++  
++  JNIEXPORT jboolean JNICALL
++--- 550,556 ----
++  	COMPQUIET(jcls, NULL);
++  
++  	*(DB_ENV **)&env_cptr = self->dbenv;
++! 	return (env_cptr);
++  }
++  
++  JNIEXPORT jboolean JNICALL
++diff -cNr misc/build/db-4.2.52.NC.orig/libdb_java/db_java_wrap.c misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c
++*** misc/build/db-4.2.52.NC.orig/libdb_java/db_java_wrap.c	2006-01-29 14:10:09.000000000 +0100
++--- misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c	2006-01-29 14:43:29.000000000 +0100
++***************
++*** 371,378 ****
++  	memset(lsn_copy, 0, sizeof(DB_LSN));
++  	*lsn_copy = *lsn;
++  	/* Magic to convert a pointer to a long - must match SWIG */
++! 	jptr = (intptr_t) lsn_copy;
++! /*	*(DB_LSN **)&jptr = lsn_copy; */
++  	return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
++  	    jptr, JNI_TRUE);
++  }
++--- 371,377 ----
++  	memset(lsn_copy, 0, sizeof(DB_LSN));
++  	*lsn_copy = *lsn;
++  	/* Magic to convert a pointer to a long - must match SWIG */
++! 	*(DB_LSN **)&jptr = lsn_copy;
++  	return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
++  	    jptr, JNI_TRUE);
++  }
++***************
++*** 633,640 ****
++  	int completed;
++  
++  	COMPQUIET(jcls, NULL);
++! 	dbenv = (DB_ENV *)((intptr_t)jdbenvp);
++! /*	dbenv = *(DB_ENV **)&jdbenvp; */
++  	jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
++  
++  	if (dbenv == NULL) {
++--- 632,638 ----
++  	int completed;
++  
++  	COMPQUIET(jcls, NULL);
++! 	dbenv = *(DB_ENV **)&jdbenvp;
++  	jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
++  
++  	if (dbenv == NULL) {
++***************
++*** 703,710 ****
++  				    "DbLockRequest lock field is NULL", NULL, jdbenv);
++  				goto out2;
++  			}
++! 			lockp = (DB_LOCK *)((intptr_t)jlockp);
++! /*			lockp = *(DB_LOCK **)&jlockp; */
++  			prereq->lock = *lockp;
++  			break;
++  		case DB_LOCK_PUT_ALL:
++--- 701,707 ----
++  				    "DbLockRequest lock field is NULL", NULL, jdbenv);
++  				goto out2;
++  			}
++! 			lockp = *(DB_LOCK **)&jlockp;
++  			prereq->lock = *lockp;
++  			break;
++  		case DB_LOCK_PUT_ALL:
++***************
++*** 748,755 ****
++  			    lockreq_lock_fid);
++  			jlockp = (*jenv)->GetLongField(jenv, jlock,
++  			    lock_cptr_fid);
++! 			lockp = (DB_LOCK *)((intptr_t)jlockp);
++! /*			lockp = *(DB_LOCK **)&jlockp; */
++  			__os_free(NULL, lockp);
++  			(*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
++  			    (jlong)0);
++--- 745,751 ----
++  			    lockreq_lock_fid);
++  			jlockp = (*jenv)->GetLongField(jenv, jlock,
++  			    lock_cptr_fid);
++! 			lockp = *(DB_LOCK **)&jlockp;
++  			__os_free(NULL, lockp);
++  			(*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
++  			    (jlong)0);
++***************
++*** 767,774 ****
++  			}
++  
++  			*lockp = lockreq[i].lock;
++! 			jlockp = (intptr_t)lockp;
++! /*			*(DB_LOCK **)&jlockp = lockp; */
++  
++  			jlockreq = (*jenv)->GetObjectArrayElement(jenv,
++  			    list, i + offset);
++--- 763,769 ----
++  			}
++  
++  			*lockp = lockreq[i].lock;
++! 			*(DB_LOCK **)&jlockp = lockp;
++  
++  			jlockreq = (*jenv)->GetObjectArrayElement(jenv,
++  			    list, i + offset);
++***************
++*** 1197,1253 ****
++  }
++  
++  
++! JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB_ENV *self = (DB_ENV *)((intptr_t)jarg1);
++! /*	DB_ENV *self = *(DB_ENV **)&jarg1; */
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++  	self->set_errpfx(self, (const char*)self);
++! 	return (jobject)DB_ENV_INTERNAL(self);
++  }
++  
++! JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB *self = (DB *)((intptr_t)jarg1);
++! /*	DB *self = *(DB **)&jarg1; */
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++! 	return (jobject)DB_INTERNAL(self);
++  }
++  
++  JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
++-     JNIEnv *jenv, jclass jcls, jobject jref) {
++- 	COMPQUIET(jcls, NULL);
++- 
++- 	if (jref != NULL)
++- 		(*jenv)->DeleteGlobalRef(jenv, jref);
++- }
++- 
++- JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = (DB *)((intptr_t)jarg1);
++! /*	DB *self = *(DB **)&jarg1; */
++  	COMPQUIET(jcls, NULL);
++- 	COMPQUIET(jenv, NULL);
++  
++! 	return (jobject)DB_INTERNAL(self);
++  }
++  
++  JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = (DB *)((intptr_t)jarg1);
++! /*	DB *self = *(DB **)&jarg1; */
++  	jlong env_cptr;
++  
++  	COMPQUIET(jenv, NULL);
++  	COMPQUIET(jcls, NULL);
++  
++! 	env_cptr = (jlong)((intptr_t)(self->dbenv));
++! /*	*(DB_ENV **)&env_cptr = self->dbenv; */
++! 	return env_cptr;
++  }
++  
++  JNIEXPORT jboolean JNICALL
++--- 1192,1239 ----
++  }
++  
++  
++! JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB_ENV *self = *(DB_ENV **)&jarg1;
++! 	jlong ret;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++  	self->set_errpfx(self, (const char*)self);
++! 	*(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
++! 	return (ret);
++  }
++  
++! JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
++! 	DB *self = *(DB **)&jarg1;
++! 	jlong ret;
++  	COMPQUIET(jcls, NULL);
++  
++  	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
++! 	*(jobject *)&ret = (jobject)DB_INTERNAL(self);
++! 	return (ret);
++  }
++  
++  JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	jobject jref = *(jobject *)&jarg1;
++  	COMPQUIET(jcls, NULL);
++  
++! 	if (jref != 0L)
++! 		(*jenv)->DeleteGlobalRef(jenv, jref);
++  }
++  
++  JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
++      JNIEnv *jenv, jclass jcls, jlong jarg1) {
++! 	DB *self = *(DB **)&jarg1;
++  	jlong env_cptr;
++  
++  	COMPQUIET(jenv, NULL);
++  	COMPQUIET(jcls, NULL);
++  
++! 	*(DB_ENV **)&env_cptr = self->dbenv;
++! 	return (env_cptr);
++  }
++  
++  JNIEXPORT jboolean JNICALL
++***************
++*** 2007,2014 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (DB_ENV *)((intptr_t)jarg1);
++! /*    arg1 = *(DB_ENV **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      errno = 0;
++--- 1993,1999 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(DB_ENV **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      errno = 0;
++***************
++*** 2017,2024 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(struct __db **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 2002,2008 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(struct __db **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 2033,2044 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++!     arg3 = (DB *)((intptr_t)jarg3);
++! /*    arg3 = *(DB **)&jarg3; */
++      
++      arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
++      
++--- 2017,2025 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++!     arg3 = *(DB **)&jarg3; 
++      
++      arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
++      
++***************
++*** 2066,2073 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 2047,2053 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 2096,2105 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++--- 2076,2083 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++***************
++*** 2114,2121 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DBC **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 2092,2098 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     *(DBC **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 2131,2140 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 2108,2115 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 2168,2175 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++--- 2143,2149 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++***************
++*** 2198,2205 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 2172,2178 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 2234,2243 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 2207,2214 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 2279,2286 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2250,2256 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2308,2315 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2278,2284 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2335,2342 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2304,2310 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2362,2369 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2330,2336 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2391,2398 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2358,2364 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2420,2427 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2386,2392 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2447,2454 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2412,2418 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2474,2481 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2438,2444 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2501,2508 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2464,2470 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2516,2523 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_MPOOLFILE **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 2478,2484 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     *(DB_MPOOLFILE **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 2529,2536 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2490,2496 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2556,2563 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2516,2522 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2583,2590 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2542,2548 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2610,2617 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2568,2574 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2637,2644 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2594,2600 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2664,2671 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2620,2626 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2691,2698 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2646,2652 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2718,2725 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2672,2678 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2745,2752 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2698,2704 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2774,2781 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2726,2732 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2801,2808 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2752,2758 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2828,2835 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2778,2784 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2857,2864 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 2806,2812 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 2886,2893 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          int i, count, err;
++          
++--- 2834,2840 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          int i, count, err;
++          
++***************
++*** 2907,2914 ****
++              }else {
++                  jlong jptr = (*jenv)->GetLongField(jenv, jobj,
++                  dbc_cptr_fid);
++!                 arg2[i] = (DBC *)((intptr_t)jptr);
++! /*                arg2[i] = *(DBC **)&jptr; */
++              }
++          }
++          arg2[count] = NULL;
++--- 2854,2860 ----
++              }else {
++                  jlong jptr = (*jenv)->GetLongField(jenv, jobj,
++                  dbc_cptr_fid);
++!                 arg2[i] = *(DBC **)&jptr;
++              }
++          }
++          arg2[count] = NULL;
++***************
++*** 2927,2934 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DBC **)&jresult = result; */
++      
++      __os_free(NULL, arg2);
++      
++--- 2873,2879 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
++      
++!     *(DBC **)&jresult = result; 
++      
++      __os_free(NULL, arg2);
++      
++***************
++*** 2948,2957 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++--- 2893,2900 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++***************
++*** 2996,3005 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 2939,2946 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 3053,3062 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 2994,3001 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 3112,3121 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 3051,3058 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 3159,3166 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3096,3102 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3207,3214 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3143,3149 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3262,3269 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
++      
++--- 3197,3203 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
++      
++***************
++*** 3289,3296 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
++      
++--- 3223,3229 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
++      
++***************
++*** 3316,3323 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3249,3255 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3341,3348 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3273,3279 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3366,3373 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
++      
++--- 3297,3303 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
++      
++***************
++*** 3394,3401 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++--- 3324,3330 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++***************
++*** 3420,3427 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
++      
++--- 3349,3355 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
++      
++***************
++*** 3448,3455 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3376,3382 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3483,3490 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
++      
++--- 3410,3416 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
++      
++***************
++*** 3510,3517 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3436,3442 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3535,3542 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3460,3466 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3560,3567 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
++      
++--- 3484,3490 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
++      
++***************
++*** 3587,3594 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3510,3516 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3612,3619 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3534,3540 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3637,3644 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3558,3564 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3662,3669 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3582,3588 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3687,3694 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3606,3612 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3712,3719 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3630,3636 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3737,3744 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3654,3660 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3771,3778 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3687,3693 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3797,3804 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3712,3718 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3875,3882 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3789,3795 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3902,3911 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++--- 3815,3822 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++***************
++*** 3933,3940 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3844,3850 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 3972,3979 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 3882,3888 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4024,4031 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 3933,3939 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4049,4056 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3957,3963 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4078,4085 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 3985,3991 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4106,4113 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4012,4018 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4122,4129 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DBC **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 4027,4033 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
++      
++!     *(DBC **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 4140,4147 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 4044,4050 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 4190,4198 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++! 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 4093,4099 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 4247,4255 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __dbc *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __dbc **)&jarg1; */
++! 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 4148,4154 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __dbc **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 4299,4306 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(struct __db_env **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 4198,4204 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     *(struct __db_env **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 4312,4319 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4210,4216 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4340,4349 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 4237,4244 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 4391,4400 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 4286,4293 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 4448,4455 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++--- 4341,4347 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      {
++          arg3 = 0;
++***************
++*** 4478,4485 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4370,4376 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4508,4515 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4399,4405 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4551,4558 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4441,4447 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4578,4585 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4467,4473 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4605,4612 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4493,4499 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4634,4641 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4521,4527 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4661,4668 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4547,4553 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4688,4695 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4573,4579 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4715,4722 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 4599,4605 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 4745,4752 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4628,4634 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 4777,4784 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4659,4665 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4814,4821 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4695,4701 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4850,4857 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++--- 4730,4736 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = jarg2; 
++      arg3 = (int)jarg3; 
++      
++***************
++*** 4876,4883 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4755,4761 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4911,4918 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 4789,4795 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 4945,4952 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
++      
++--- 4822,4828 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
++      
++***************
++*** 4969,4976 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++--- 4845,4851 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++***************
++*** 4997,5004 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
++      
++--- 4872,4878 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
++      
++***************
++*** 5024,5031 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (size_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4898,4904 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (size_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5049,5056 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
++      
++--- 4922,4928 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
++      
++***************
++*** 5080,5089 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (void *)((intptr_t)jarg2);
++! /*    arg2 = *(void **)&jarg2; */
++      {
++          arg3 = 0;
++          if (jarg3) {
++--- 4952,4959 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(void **)&jarg2; 
++      {
++          arg3 = 0;
++          if (jarg3) {
++***************
++*** 5126,5133 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (long)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 4996,5002 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (long)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5151,5158 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5020,5026 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5177,5184 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 5045,5051 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 5203,5210 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 5070,5076 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 5237,5244 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5103,5109 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5262,5269 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
++      
++--- 5127,5133 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
++      
++***************
++*** 5290,5297 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      time2 = (time_t)jarg2;
++      arg2 = &time2;
++--- 5154,5160 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      time2 = (time_t)jarg2;
++      arg2 = &time2;
++***************
++*** 5319,5326 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++--- 5182,5188 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++***************
++*** 5347,5354 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5209,5215 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5390,5397 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5251,5257 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5417,5424 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5277,5283 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5444,5451 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5303,5309 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5471,5478 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5329,5335 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5500,5507 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 5357,5363 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 5534,5541 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 5390,5396 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 5562,5569 ****
++      }else if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_LOCK **)&jresult = result; */
++      
++      if (ldbt4.jarr != NULL) {
++          (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
++--- 5417,5423 ----
++      }else if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(DB_LOCK **)&jresult = result; 
++      
++      if (ldbt4.jarr != NULL) {
++          (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
++***************
++*** 5581,5588 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5435,5441 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5608,5615 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5461,5467 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5633,5642 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LOCK *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LOCK **)&jarg2; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5485,5492 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LOCK **)&jarg2; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5660,5667 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5510,5516 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5693,5700 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          int i, len, err;
++          size_t bytesize;
++--- 5542,5548 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          int i, len, err;
++          size_t bytesize;
++***************
++*** 5739,5746 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5587,5593 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5764,5771 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5611,5617 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5789,5796 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5635,5641 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5814,5821 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5659,5665 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5839,5846 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5683,5689 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5866,5873 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5709,5715 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5895,5902 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5737,5743 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5922,5929 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5763,5769 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 5950,5957 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5790,5796 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 5996,6005 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (DB_LSN *)((intptr_t)jarg1);
++! /*    arg1 = *(DB_LSN **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
++      
++      jresult = (jint)result; 
++--- 5835,5842 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(DB_LSN **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
++      
++      jresult = (jint)result; 
++***************
++*** 6015,6022 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5852,5858 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6031,6038 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_LOGC **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 5867,5873 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(DB_LOGC **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 6045,6054 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5880,5887 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6076,6085 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 5909,5916 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6105,6114 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++--- 5936,5943 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return ;
++***************
++*** 6144,6151 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 5973,5979 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6177,6184 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6005,6011 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6202,6209 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      {
++          arg2 = 0;
++          if (jarg2) {
++--- 6029,6035 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      {
++          arg2 = 0;
++          if (jarg2) {
++***************
++*** 6236,6243 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6062,6068 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6261,6268 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6086,6092 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6286,6293 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6110,6116 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6313,6320 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6136,6142 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6340,6347 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6162,6168 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6368,6375 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6189,6195 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6402,6409 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6222,6228 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6453,6460 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6272,6278 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6481,6488 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6299,6305 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6508,6515 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6325,6331 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6536,6543 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6352,6358 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6566,6575 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++!     arg2 = (DB_TXN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_TXN **)&jarg2; */
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++--- 6381,6388 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++!     arg2 = *(DB_TXN **)&jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6584,6591 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(DB_TXN **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 6397,6403 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
++      
++!     *(DB_TXN **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 6599,6606 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++--- 6411,6417 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++***************
++*** 6628,6635 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 6439,6445 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 6684,6691 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6494,6500 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6738,6745 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6547,6553 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6768,6775 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      arg3 = (int)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++--- 6576,6582 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      arg3 = (int)jarg3; 
++      arg4 = (u_int32_t)jarg4; 
++***************
++*** 6805,6812 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++--- 6612,6618 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return 0;
++***************
++*** 6821,6828 ****
++      id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
++      arg4 = &id4;
++      
++!     arg5 = (DB_LSN *)((intptr_t)jarg5);
++! /*    arg5 = *(DB_LSN **)&jarg5; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6627,6633 ----
++      id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
++      arg4 = &id4;
++      
++!     arg5 = *(DB_LSN **)&jarg5; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 6858,6865 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return ;
++--- 6663,6669 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
++      return ;
++***************
++*** 6892,6899 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6696,6702 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6925,6932 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6728,6734 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 6951,6958 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_env *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_env **)&jarg1; */
++      arg2 = (int)jarg2; 
++      
++      arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
++--- 6753,6759 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_env **)&jarg1; 
++      arg2 = (int)jarg2; 
++      
++      arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
++***************
++*** 7049,7056 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6850,6856 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7073,7080 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6873,6879 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 7098,7105 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 6897,6903 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 7123,7130 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 6921,6927 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7145,7152 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      
++      arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
++      
++--- 6942,6948 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      
++      arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
++      
++***************
++*** 7183,7190 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_txn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_txn **)&jarg1; */
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++--- 6979,6985 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_txn **)&jarg1; 
++      arg2 = (db_timeout_t)jarg2; 
++      arg3 = (u_int32_t)jarg3; 
++      
++***************
++*** 7209,7216 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_log_cursor **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7004,7010 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_log_cursor **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 7238,7247 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_log_cursor **)&jarg1; */
++!     arg2 = (DB_LSN *)((intptr_t)jarg2);
++! /*    arg2 = *(DB_LSN **)&jarg2; */
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++--- 7032,7039 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_log_cursor **)&jarg1; 
++!     arg2 = *(DB_LSN **)&jarg2; 
++      
++      if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
++      return 0;
++***************
++*** 7273,7280 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lock_u *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lock_u **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7065,7071 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lock_u **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7303,7310 ****
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     jresult = (jlong)((intptr_t)result);
++! /*    *(struct __db_lsn **)&jresult = result; */
++      return jresult;
++  }
++  
++--- 7094,7100 ----
++      if (!DB_RETOK_STD(errno))
++      __dbj_throw(jenv, errno, NULL, NULL, NULL);
++      
++!     *(struct __db_lsn **)&jresult = result; 
++      return jresult;
++  }
++  
++***************
++*** 7314,7321 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lsn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lsn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7104,7110 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lsn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7334,7341 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lsn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lsn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7123,7129 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lsn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7356,7363 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_lsn *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_lsn **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7144,7150 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_lsn **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7378,7385 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7165,7171 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7405,7412 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      arg2 = (DB_CACHE_PRIORITY)jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7191,7197 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      arg2 = (DB_CACHE_PRIORITY)jarg2; 
++      
++      if (jarg1 == 0) {
++***************
++*** 7430,7437 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7215,7221 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7458,7465 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++--- 7242,7248 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      arg2 = (u_int32_t)jarg2; 
++      
++      arg3 = (jarg3 == JNI_TRUE);
++***************
++*** 7486,7493 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++--- 7269,7275 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      
++      if (jarg1 == 0) {
++          __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
++***************
++*** 7513,7520 ****
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
++! /*    arg1 = *(struct __db_mpoolfile **)&jarg1; */
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++--- 7295,7301 ----
++      
++      (void)jenv;
++      (void)jcls;
++!     arg1 = *(struct __db_mpoolfile **)&jarg1; 
++      arg2 = jarg2; 
++      
++      if (jarg1 == 0) {
++diff -cNr misc/build/db-4.2.52.NC.orig/libdb_java/db_java_wrap.c.rej misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c.rej
++*** misc/build/db-4.2.52.NC.orig/libdb_java/db_java_wrap.c.rej	1970-01-01 01:00:00.000000000 +0100
++--- misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c.rej	2006-01-29 14:18:11.000000000 +0100
++***************
++*** 0 ****
++--- 1,96 ----
+++ ***************
+++ *** 1192,1231 ****
+++   }
+++   
+++   
+++ - JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
+++       JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+++   	DB_ENV *self = *(DB_ENV **)&jarg1;
+++   	COMPQUIET(jcls, NULL);
+++   
+++   	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+++   	self->set_errpfx(self, (const char*)self);
+++ - 	return (jobject)DB_ENV_INTERNAL(self);
+++   }
+++   
+++ - JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
+++       JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+++   	DB *self = *(DB **)&jarg1;
+++   	COMPQUIET(jcls, NULL);
+++   
+++   	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+++ - 	return (jobject)DB_INTERNAL(self);
+++   }
+++   
+++   JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
+++ -     JNIEnv *jenv, jclass jcls, jobject jref) {
+++ - 	COMPQUIET(jcls, NULL);
+++ - 
+++ - 	if (jref != NULL)
+++ - 		(*jenv)->DeleteGlobalRef(jenv, jref);
+++ - }
+++ - 
+++ - JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
+++       JNIEnv *jenv, jclass jcls, jlong jarg1) {
+++ - 	DB *self = *(DB **)&jarg1;
+++   	COMPQUIET(jcls, NULL);
+++ - 	COMPQUIET(jenv, NULL);
+++   
+++ - 	return (jobject)DB_INTERNAL(self);
+++   }
+++   
+++   JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
+++ --- 1192,1227 ----
+++   }
+++   
+++   
+++ + JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
+++       JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+++   	DB_ENV *self = *(DB_ENV **)&jarg1;
+++ + 	jlong ret;
+++   	COMPQUIET(jcls, NULL);
+++   
+++   	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+++   	self->set_errpfx(self, (const char*)self);
+++ + 	*(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
+++ + 	return (ret);
+++   }
+++   
+++ + JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
+++       JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+++   	DB *self = *(DB **)&jarg1;
+++ + 	jlong ret;
+++   	COMPQUIET(jcls, NULL);
+++   
+++   	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+++ + 	*(jobject *)&ret = (jobject)DB_INTERNAL(self);
+++ + 	return (ret);
+++   }
+++   
+++   JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
+++       JNIEnv *jenv, jclass jcls, jlong jarg1) {
+++ + 	jobject jref = *(jobject *)&jarg1;
+++   	COMPQUIET(jcls, NULL);
+++   
+++ + 	if (jref != 0L)
+++ + 		(*jenv)->DeleteGlobalRef(jenv, jref);
+++   }
+++   
+++   JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
+++ ***************
+++ *** 1237,1243 ****
+++   	COMPQUIET(jcls, NULL);
+++   
+++   	*(DB_ENV **)&env_cptr = self->dbenv;
+++ - 	return env_cptr;
+++   }
+++   
+++   JNIEXPORT jboolean JNICALL
+++ --- 1233,1239 ----
+++   	COMPQUIET(jcls, NULL);
+++   
+++   	*(DB_ENV **)&env_cptr = self->dbenv;
+++ + 	return (env_cptr);
+++   }
+++   
+++   JNIEXPORT jboolean JNICALL
++diff -cNr misc/build/db-4.2.52.NC.orig/lock/lock.c misc/build/db-4.2.52.NC/lock/lock.c
++*** misc/build/db-4.2.52.NC.orig/lock/lock.c	2003-11-21 03:40:10.000000000 +0100
++--- misc/build/db-4.2.52.NC/lock/lock.c	2006-01-29 14:16:32.000000000 +0100
++***************
++*** 2216,2226 ****
++  					dp = (u_int8_t *)dp +		\
++  					    sizeof(db_pgno_t);		\
++  				} while (0)
++! #define COPY_OBJ(dp, obj)	do {					   \
++! 					memcpy(dp, obj->data, obj->size);  \
++! 					dp = (u_int8_t *)dp +		   \
++! 					     ALIGN(obj->size,		   \
++! 					     sizeof(u_int32_t)); 	   \
++  				} while (0)
++  
++  #define GET_COUNT(dp, count)	do {					\
++--- 2216,2227 ----
++  					dp = (u_int8_t *)dp +		\
++  					    sizeof(db_pgno_t);		\
++  				} while (0)
++! #define COPY_OBJ(dp, obj)	do {					\
++! 					memcpy(dp,			\
++! 					    (obj)->data, (obj)->size);  \
++! 					dp = (u_int8_t *)dp +		\
++! 					     ALIGN((obj)->size,		\
++! 					    sizeof(u_int32_t)); 	\
++  				} while (0)
++  
++  #define GET_COUNT(dp, count)	do {					\
++***************
++*** 2339,2345 ****
++  		for (i = 0; i < nlocks; i = j) {
++  			PUT_PCOUNT(dp, obj[i].ulen);
++  			PUT_SIZE(dp, obj[i].size);
++! 			COPY_OBJ(dp, obj);
++  			lock = (DB_LOCK_ILOCK *)obj[i].data;
++  			for (j = i + 1; j <= i + obj[i].ulen; j++) {
++  				lock = (DB_LOCK_ILOCK *)obj[j].data;
++--- 2340,2346 ----
++  		for (i = 0; i < nlocks; i = j) {
++  			PUT_PCOUNT(dp, obj[i].ulen);
++  			PUT_SIZE(dp, obj[i].size);
++! 			COPY_OBJ(dp, &obj[i]);
++  			lock = (DB_LOCK_ILOCK *)obj[i].data;
++  			for (j = i + 1; j <= i + obj[i].ulen; j++) {
++  				lock = (DB_LOCK_ILOCK *)obj[j].data;
++diff -cNr misc/build/db-4.2.52.NC.orig/mp/mp_fget.c misc/build/db-4.2.52.NC/mp/mp_fget.c
++*** misc/build/db-4.2.52.NC.orig/mp/mp_fget.c	2003-09-25 17:29:02.000000000 +0200
++--- misc/build/db-4.2.52.NC/mp/mp_fget.c	2006-01-29 14:16:21.000000000 +0100
++***************
++*** 440,446 ****
++  		c_mp->stat.st_pages--;
++  		alloc_bhp = NULL;
++  		R_UNLOCK(dbenv, &dbmp->reginfo[n_cache]);
++- 		MUTEX_LOCK(dbenv, &hp->hash_mutex);
++  
++  		/*
++  		 * We can't use the page we found in the pool if DB_MPOOL_NEW
++--- 440,445 ----
++***************
++*** 455,460 ****
++--- 454,462 ----
++  			b_incr = 0;
++  			goto alloc;
++  		}
+++ 
+++ 		/* We can use the page -- get the bucket lock. */
+++ 		MUTEX_LOCK(dbenv, &hp->hash_mutex);
++  		break;
++  	case SECOND_MISS:
++  		/*
++diff -cNr misc/build/db-4.2.52.NC.orig/mp/mp_fput.c misc/build/db-4.2.52.NC/mp/mp_fput.c
++*** misc/build/db-4.2.52.NC.orig/mp/mp_fput.c	2003-09-30 19:42:07.000000000 +0200
++--- misc/build/db-4.2.52.NC/mp/mp_fput.c	2006-01-29 14:16:21.000000000 +0100
++***************
++*** 285,290 ****
++--- 285,291 ----
++  		    bhp != NULL; bhp = SH_TAILQ_NEXT(bhp, hq, __bh))
++  			if (bhp->priority != UINT32_T_MAX &&
++  			    bhp->priority > MPOOL_BASE_DECREMENT)
+++ 				bhp->priority -= MPOOL_BASE_DECREMENT;
++  		MUTEX_UNLOCK(dbenv, &hp->hash_mutex);
++  	}
++  }
++diff -cNr misc/build/db-4.2.52.NC.orig/txn/txn.c misc/build/db-4.2.52.NC/txn/txn.c
++*** misc/build/db-4.2.52.NC.orig/txn/txn.c	2003-12-03 15:33:06.000000000 +0100
++--- misc/build/db-4.2.52.NC/txn/txn.c	2006-01-29 14:50:27.000000000 +0100
++***************
++*** 127,133 ****
++  	if ((ret = __db_fchk(dbenv,
++  	    "txn_begin", flags,
++  	    DB_DIRTY_READ | DB_TXN_NOWAIT |
++! 	    DB_TXN_NOSYNC | DB_TXN_SYNC)) != 0)
++  		return (ret);
++  	if ((ret = __db_fcchk(dbenv,
++  	    "txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0)
++--- 127,133 ----
++  	if ((ret = __db_fchk(dbenv,
++  	    "txn_begin", flags,
++  	    DB_DIRTY_READ | DB_TXN_NOWAIT |
++! 	    DB_TXN_NOSYNC | DB_TXN_SYNC | DB_TXN_NOT_DURABLE)) != 0)
++  		return (ret);
++  	if ((ret = __db_fcchk(dbenv,
++  	    "txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0)
++***************
++*** 193,198 ****
++--- 193,200 ----
++  		F_SET(txn, TXN_SYNC);
++  	if (LF_ISSET(DB_TXN_NOWAIT))
++  		F_SET(txn, TXN_NOWAIT);
+++ 	if (LF_ISSET(DB_TXN_NOT_DURABLE))
+++ 		F_SET(txn, TXN_NOLOG);
++  
++  	if ((ret = __txn_begin_int(txn, 0)) != 0)
++  		goto err;
++***************
++*** 328,334 ****
++  	 * We should set this value when we write the first log record, not
++  	 * here.
++  	 */
++! 	if (DBENV_LOGGING(dbenv))
++  		__log_txn_lsn(dbenv, &begin_lsn, NULL, NULL);
++  	else
++  		ZERO_LSN(begin_lsn);
++--- 330,336 ----
++  	 * We should set this value when we write the first log record, not
++  	 * here.
++  	 */
++! 	if (DBENV_LOGGING(dbenv) && !F_ISSET(txn, TXN_NOLOG))
++  		__log_txn_lsn(dbenv, &begin_lsn, NULL, NULL);
++  	else
++  		ZERO_LSN(begin_lsn);
++*** misc/build/db-4.2.52.NC/dist/configure.ac.badpath	2006-01-29 19:10:22.000000000 +0100
++--- misc/build/db-4.2.52.NC/dist/configure.ac	2006-01-29 19:32:33.000000000 +0100
++***************
++*** 409,424 ****
++  	if test -z "$PKG_CONFIG"; then
++  		AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++  	fi
++! 	if test -z "$JNI_INCLUDE_DIRS"; then
++  		if $PKG_CONFIG --exists libgcj ; then
++  			CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libgcj`"
++  		fi
++  	else
++  	for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
++  	do
++! 		CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
++  	done
++  	fi
++  
++  	ADDITIONAL_LANG="$ADDITIONAL_LANG java"
++  	INSTALL_LIBS="$INSTALL_LIBS \$(libjso_target)"
++--- 409,425 ----
++  	if test -z "$PKG_CONFIG"; then
++  		AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
++  	fi
++! 	if test -z "$JNI_INCLUDE_DIRS" -o "${JNI_INCLUDE_DIRS:(-20):20}" = "../usr/include/linux"; then
++  		if $PKG_CONFIG --exists libgcj ; then
++  			CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags libgcj`"
++  		fi
++  	else
++  	for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
++  	do
++! 		CPPFLAGS="$CPPFLAGS"
++  	done
++  	fi
+++ 	echo "JNI_INCLUDES_DIR: $JNI_INCLUDE_DIRS (CPPFLAGS: $CPPFLAGS)"
++  
++  	ADDITIONAL_LANG="$ADDITIONAL_LANG java"
++  	INSTALL_LIBS="$INSTALL_LIBS \$(libjso_target)"
+--- berkeleydb/makefile.mk.db42fix	2006-07-05 23:52:16.000000000 +0200
++++ berkeleydb/makefile.mk	2006-12-03 16:47:27.000000000 +0100
+@@ -85,12 +85,14 @@
+ CONFIGURE_DIR=out
+ #relative to CONFIGURE_DIR
+ CONFIGURE_ACTION= \
+-	..$/dist$/configure
+-CONFIGURE_FLAGS=--disable-cxx --enable-dynamic --enable-shared --enable-compat185
++	(cd ../dist;./s_config) && ..$/dist$/configure
++CONFIGURE_FLAGS=--enable-cxx --enable-dynamic --enable-shared --enable-compat185
+ .IF "$(SOLAR_JAVA)"!=""
+ CONFIGURE_FLAGS+=--enable-java
+ .ENDIF
+ 
++CONFIGURE_FLAGS+=--enable-dump185 --enable-rpc --disable-pthreadsmutexes
++
+ BUILD_DIR=$(CONFIGURE_DIR)
+ BUILD_DIR_OUT=$(CONFIGURE_DIR)
+ .IF "$(OS)"=="IRIX"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-jvmaccess.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-jvmaccess.diff
@@ -0,0 +1,14 @@
+--- jvmaccess/prj/build.lst	2003-04-25 10:35:08.000000000 +0200
++++ jvmaccess/prj/build.lst	2007-09-07 09:58:40.000000000 +0200
+@@ -1,4 +1,4 @@
+-jv jvmaccess : offuh ridljar cppu sal salhelper NULL
++jv jvmaccess : offuh ridljar cppu sal salhelper jurt NULL
+ jv jvmaccess usr1 - all jv_mkout NULL
+ jv jvmaccess\source nmake - all jv_source NULL
+ jv jvmaccess\util nmake - all jv_util jv_source NULL
+--- jvmaccess/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ jvmaccess/prj/tests.lst	2007-09-07 10:02:28.000000000 +0200
+@@ -0,0 +1,3 @@
++jv   jvmaccess\workbench\java                           nmake - all jv_workbench_java NULL
++jv   jvmaccess\workbench                                nmake - all jv_workbench jv_util NULL
++#does not work: jv   jvmaccess\workbench\javainfo                       nmake - all jv_workbench_javainfo NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-sdrobjeditview-update-edit-area.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-sdrobjeditview-update-edit-area.diff
@@ -0,0 +1,26 @@
+--- svx-orig/source/svdraw/svdedxv.cxx	2007-11-08 14:03:57.000000000 +0100
++++ svx/source/svdraw/svdedxv.cxx	2007-11-08 14:07:29.000000000 +0100
+@@ -540,8 +540,9 @@ OutlinerView* SdrObjEditView::ImpMakeOut
+         pOutlView->SetAnchorMode((EVAnchorMode)(pText->GetOutlinerViewAnchorMode()));
+ 		pTextEditOutliner->SetFixedCellHeight(((const SdrTextFixedCellHeightItem&)pText->GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT)).GetValue());
+     }
+-    pOutlView->SetOutputArea(aTextEditArea);
++    // do update before setting output area so that aTextEditArea can be recalculated
+     pTextEditOutliner->SetUpdateMode(TRUE);
++    pOutlView->SetOutputArea(aTextEditArea);
+     ImpInvalidateOutlinerView(*pOutlView);
+     return pOutlView;
+ }
+--- svx/source/editeng-orig/impedit.cxx	2008-01-30 11:46:56.000000000 +0100
++++ svx/source/editeng/impedit.cxx	2008-01-31 13:27:15.000000000 +0100
+@@ -710,6 +710,10 @@
+ 
+     USHORT nTextPortionStart = 0;
+     USHORT nPara = pEditEngine->pImpEditEngine->aEditDoc.GetPos( aPaM.GetNode() );
++
++    if( nPara == USHRT_MAX )
++        return;
++
+     ParaPortion* pParaPortion = pEditEngine->pImpEditEngine->GetParaPortions().GetObject( nPara );
+ 
+     nShowCursorFlags |= nExtraCursorFlags;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/configures-explicit-arch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/configures-explicit-arch.diff
@@ -0,0 +1,260 @@
+? config_office/config.log
+? config_office/config.parms
+? config_office/config.status
+? config_office/findhome.class
+? config_office/findhome.java
+? config_office/set_soenv
+? config_office/warn
+? libtextcat/unxlngx6.pro
+? libxmlsec/unxlngx6.pro
+? libxslt/unxlngx6.pro
+Index: config_office/bootstrap.1
+===================================================================
+RCS file: /cvs/tools/config_office/bootstrap.1,v
+retrieving revision 1.21
+diff -u -u -r1.21 bootstrap.1
+--- config_office/bootstrap.1	26 Jun 2007 17:48:08 -0000	1.21
++++ config_office/bootstrap.1	11 Apr 2008 07:54:07 -0000
+@@ -36,7 +36,12 @@
+             $GNUMAKE distclean || exit
+         fi
+ 
+-        ./configure $DMAKE_CONF || exit
++	 if [ -z "$DEB_HOST_GNU_TYPE" -o -z "$DEB_BUILD_GNU_TYPE" ]; then
++	 	DEB_HOST_GNU_TYPE=`dpkg-architecture -qDEB_HOST_GNU_TYPE | head -n 1`
++		DEB_BUILD_GNU_TYPE=`dpkg-architecture -qDEB_BUILD_GNU_TYPE | head -n 1`
++	 fi
++        ./configure $DMAKE_CONF --host=$DEB_HOST_GNU_TYPE \
++		--build=$DEB_BUILD_GNU_TYPE || exit
+ 
+         ## invoke the gnu make command set by configure.
+         $GNUMAKE || exit
+Index: config_office/set_soenv.in
+===================================================================
+RCS file: /cvs/tools/config_office/set_soenv.in,v
+retrieving revision 1.168.4.1
+diff -u -u -r1.168.4.1 set_soenv.in
+--- config_office/set_soenv.in	23 Jan 2008 17:07:28 -0000	1.168.4.1
++++ config_office/set_soenv.in	11 Apr 2008 07:54:08 -0000
+@@ -1602,6 +1602,13 @@
+ CreateFileHeader( *OUT_SH, $UPD, $platform, "sh/bash/ksh", "#" );
+ CreateFileHeader( *OUT_BAT, $UPD, $platform, "4nt", "rem" ) if defined($outfile_bat);
+ 
++my $build_gnu_type=`dpkg-architecture -qDEB_BUILD_GNU_TYPE | head -n 1`;
++my $host_gnu_type=`dpkg-architecture -qDEB_HOST_GNU_TYPE | head -n 1`;
++chomp($build_gnu_type);
++chomp($host_gnu_type);
++
++ToFile( "DEB_BUILD_GNU_TYPE", $build_gnu_type,  "e" );
++ToFile( "DEB_HOST_GNU_TYPE",  $host_gnu_type,   "e" );
+ ToFile( "SRC_ROOT",	     $SRC_ROOT,          "e" );
+ ToFile( "SHELL",             $SHELL,             "e" );
+ ToFile( "JAVA_HOME",         $JAVA_HOME,         "e" );
+Index: berkeleydb/makefile.mk
+===================================================================
+RCS file: /cvs/external/berkeleydb/makefile.mk,v
+retrieving revision 1.43.2.1
+diff -u -u -r1.43.2.1 makefile.mk
+--- berkeleydb/makefile.mk	2 Jan 2008 17:30:31 -0000	1.43.2.1
++++ berkeleydb/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -103,7 +103,7 @@
+ #relative to CONFIGURE_DIR
+ CONFIGURE_ACTION= \
+ 	..$/dist$/configure
+-CONFIGURE_FLAGS=--disable-cxx --enable-dynamic --enable-shared --enable-compat185
++CONFIGURE_FLAGS=--disable-cxx --enable-dynamic --enable-shared --enable-compat185 --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ 
+ # just pass ARCH_FLAGS to native build
+ CFLAGS+:=$(ARCH_FLAGS)
+Index: curl/makefile.mk
+===================================================================
+RCS file: /cvs/external/curl/makefile.mk,v
+retrieving revision 1.22
+diff -u -u -r1.22 makefile.mk
+--- curl/makefile.mk	21 Sep 2007 09:26:36 -0000	1.22
++++ curl/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -70,7 +70,7 @@
+ CONFIGURE_DIR=.$/
+ #relative to CONFIGURE_DIR
+ CONFIGURE_ACTION=.$/configure
+-CONFIGURE_FLAGS= --without-ssl --without-libidn --enable-ftp --enable-ipv6 --enable-http --disable-gopher --disable-file --disable-ldap --disable-telnet --disable-dict --disable-static CPPFLAGS="$(curl_CFLAGS)"  LDFLAGS="$(curl_LDFLAGS)"
++CONFIGURE_FLAGS= --without-ssl --without-libidn --enable-ftp --enable-ipv6 --enable-http --disable-gopher --disable-file --disable-ldap --disable-telnet --disable-dict --disable-static --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) CPPFLAGS="$(curl_CFLAGS)"  LDFLAGS="$(curl_LDFLAGS)"
+ 
+ BUILD_DIR=$(CONFIGURE_DIR)$/lib
+ .IF "$(OS)"=="IRIX"
+Index: epm/makefile.mk
+===================================================================
+RCS file: /cvs/external/epm/makefile.mk,v
+retrieving revision 1.4.8.1
+diff -u -u -r1.4.8.1 makefile.mk
+--- epm/makefile.mk	2 Jan 2008 17:30:11 -0000	1.4.8.1
++++ epm/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -50,7 +50,7 @@
+ .IF "$(GUI)"=="UNX" && "$(BUILD_EPM)" != "NO"
+ 
+ CONFIGURE_ACTION=.$/configure
+-CONFIGURE_FLAGS=--disable-fltk
++CONFIGURE_FLAGS=--disable-fltk --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ .IF "$(OS)"=="MACOSX"
+ CONFIGURE_FLAGS+=CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(EXTRA_LINKFLAGS)"
+ .ENDIF
+Index: fondu/makefile.mk
+===================================================================
+RCS file: /cvs/external/fondu/makefile.mk,v
+retrieving revision 1.4
+diff -u -u -r1.4 makefile.mk
+--- fondu/makefile.mk	18 Jul 2007 07:17:48 -0000	1.4
++++ fondu/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -56,7 +56,7 @@
+ #relative to CONFIGURE_DIR
+ CONFIGURE_ACTION=configure
+ 
+-CONFIGURE_FLAGS=
++CONFIGURE_FLAGS= --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ 
+ BUILD_DIR=$(CONFIGURE_DIR)
+ 
+Index: freetype/makefile.mk
+===================================================================
+RCS file: /cvs/external/freetype/makefile.mk,v
+retrieving revision 1.24
+diff -u -u -r1.24 makefile.mk
+--- freetype/makefile.mk	3 Aug 2007 13:56:02 -0000	1.24
++++ freetype/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -62,7 +62,7 @@
+ #relative to CONFIGURE_DIR
+ .IF "$(OS)"=="MACOSX"
+ CONFIGURE_ACTION=./configure
+-CONFIGURE_FLAGS=--with-pic --without-zlib
++CONFIGURE_FLAGS=--with-pic --without-zlib --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ .ELSE
+ CONFIGURE_ACTION=$(GNUMAKE)
+ CONFIGURE_FLAGS=setup CFG="--with-pic --without-zlib"
+Index: icu/makefile.mk
+===================================================================
+RCS file: /cvs/external/icu/makefile.mk,v
+retrieving revision 1.37.16.1
+diff -u -u -r1.37.16.1 makefile.mk
+--- icu/makefile.mk	2 Jan 2008 17:31:44 -0000	1.37.16.1
++++ icu/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -99,7 +99,7 @@
+ 
+ CONFIGURE_DIR=source
+ 
+-CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
++CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
+ 
+ #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
+ CONFIGURE_FLAGS=
+Index: libtextcat/makefile.mk
+===================================================================
+RCS file: /cvs/external/libtextcat/makefile.mk,v
+retrieving revision 1.5.2.1
+diff -u -u -r1.5.2.1 makefile.mk
+--- libtextcat/makefile.mk	2 Jan 2008 17:33:39 -0000	1.5.2.1
++++ libtextcat/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -62,7 +62,7 @@
+ 
+ #relative to CONFIGURE_DIR
+-CONFIGURE_ACTION=configure CFLAGS="$(EXTRA_CFLAGS)"
++CONFIGURE_ACTION=configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) CFLAGS="$(EXTRA_CFLAGS)"
+ CONFIGURE_FLAGS=
+ 
+ BUILD_ACTION=make
+ 
+Index: libxml2/makefile.mk
+===================================================================
+RCS file: /cvs/external/libxml2/makefile.mk,v
+retrieving revision 1.17.18.1
+diff -u -u -r1.17.18.1 makefile.mk
+--- libxml2/makefile.mk	2 Jan 2008 17:30:52 -0000	1.17.18.1
++++ libxml2/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -93,7 +93,7 @@
+ 
+ CONFIGURE_DIR=
+ CONFIGURE_ACTION=.$/configure
+-CONFIGURE_FLAGS=--enable-ipv6=no --without-python --enable-static=no --with-sax1=yes ADDCFLAGS="$(xml2_CFLAGS)" CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(xml2_LDFLAGS) $(EXTRA_LINKFLAGS)"
++CONFIGURE_FLAGS=--enable-ipv6=no --without-python --enable-static=no --with-sax1=yes --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) ADDCFLAGS="$(xml2_CFLAGS)" CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(xml2_LDFLAGS) $(EXTRA_LINKFLAGS)"
+ BUILD_ACTION=$(GNUMAKE)
+ BUILD_FLAGS+= -j$(EXTMAXPROCESS)
+ BUILD_DIR=$(CONFIGURE_DIR)
+Index: libxmlsec/makefile.mk
+===================================================================
+RCS file: /cvs/external/libxmlsec/makefile.mk,v
+retrieving revision 1.15.6.1
+diff -u -u -r1.15.6.1 makefile.mk
+--- libxmlsec/makefile.mk	2 Jan 2008 17:29:48 -0000	1.15.6.1
++++ libxmlsec/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -139,7 +139,7 @@
+ CONFIGURE_DIR=
+ #CONFIGURE_ACTION=chmod 777 libxml2-config && .$/configure CFLAGS="$(xmlsec_CFLAGS)" CPPFLAGS="$(xmlsec_CPPFLAGS)" LDFLAGS="$(xmlsec_LDFLAGS)"
+ CONFIGURE_ACTION=chmod 777 libxml2-config && .$/configure ADDCFLAGS="$(xmlsec_CFLAGS)" CPPFLAGS="$(xmlsec_CPPFLAGS)"
+-CONFIGURE_FLAGS=--with-libxslt=no --with-openssl=no --with-gnutls=no LIBXML2LIB="$(LIBXML2LIB)" ZLIB3RDLIB=$(ZLIB3RDLIB)
++CONFIGURE_FLAGS=--with-libxslt=no --with-openssl=no --with-gnutls=no --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) LIBXML2LIB="$(LIBXML2LIB)" ZLIB3RDLIB=$(ZLIB3RDLIB)
+ # system-mozilla needs pkgconfig to get the information about nss
+ # FIXME: This also will enable pkg-config usage for libxml2. It *seems*
+ # that the internal headers still are used when they are there but....
+Index: libxslt/makefile.mk
+===================================================================
+RCS file: /cvs/external/libxslt/makefile.mk,v
+retrieving revision 1.10.6.1
+diff -u -u -r1.10.6.1 makefile.mk
+--- libxslt/makefile.mk	2 Jan 2008 17:28:49 -0000	1.10.6.1
++++ libxslt/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -100,7 +100,7 @@
+ .ENDIF                  # "$(COMNAME)"=="sunpro5"
+ CONFIGURE_DIR=
+ CONFIGURE_ACTION=chmod 777 libxml2-config && .$/configure
+-CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=no --with-sax1=yes CFLAGS="$(xslt_CFLAGS)" LIBXML2LIB=$(LIBXML2LIB) ZLIB3RDLIB=$(ZLIB3RDLIB)
++CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=no --with-sax1=yes --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) CFLAGS="$(xslt_CFLAGS)" LIBXML2LIB=$(LIBXML2LIB) ZLIB3RDLIB=$(ZLIB3RDLIB)
+ BUILD_ACTION=$(GNUMAKE)
+ BUILD_FLAGS+= -j$(EXTMAXPROCESS)
+ BUILD_DIR=$(CONFIGURE_DIR)
+Index: portaudio/makefile.mk
+===================================================================
+RCS file: /cvs/external/portaudio/Attic/makefile.mk,v
+retrieving revision 1.5
+diff -u -u -r1.5 makefile.mk
+--- portaudio/makefile.mk	8 Sep 2005 16:30:55 -0000	1.5
++++ portaudio/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -53,7 +53,7 @@
+ CONFIGURE_DIR=
+ 
+ CONFIGURE_ACTION=./configure
+-CONFIGURE_FLAGS=
++CONFIGURE_FLAGS= --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ BUILD_DIR=$(CONFIGURE_DIR)
+ BUILD_ACTION=$(GNUMAKE)
+ 
+Index: python/makefile.mk
+===================================================================
+RCS file: /cvs/external/python/makefile.mk,v
+retrieving revision 1.35
+diff -u -u -r1.35 makefile.mk
+--- python/makefile.mk	6 Nov 2007 15:58:43 -0000	1.35
++++ python/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -115,7 +115,7 @@
+ .ENDIF
+ 
+ 
+-CONFIGURE_ACTION=./configure --prefix=$(MYCWD)/python-inst --enable-shared CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
++CONFIGURE_ACTION=./configure --prefix=$(MYCWD)/python-inst --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --enable-shared CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
+ .IF "$(OS)$(CPU)" == "SOLARISI"
+ CONFIGURE_ACTION += --disable-ipv6
+ .ENDIF
+Index: sndfile/makefile.mk
+===================================================================
+RCS file: /cvs/external/sndfile/Attic/makefile.mk,v
+retrieving revision 1.9
+diff -u -u -r1.9 makefile.mk
+--- sndfile/makefile.mk	26 Mar 2007 12:22:58 -0000	1.9
++++ sndfile/makefile.mk	11 Apr 2008 07:54:08 -0000
+@@ -63,7 +63,7 @@
+ .EXPORT: LDFLAGS
+ .ENDIF
+ 
+-CONFIGURE_ACTION=./configure --with-pic
++CONFIGURE_ACTION=./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --with-pic
+ 
+ BUILD_DIR=$(CONFIGURE_DIR)
+ BUILD_ACTION=$(GNUMAKE)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gentooexperimental-gnujre.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gentooexperimental-gnujre.diff
@@ -0,0 +1,58 @@
+--- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx.orig	2006-08-27 22:35:55.000000000 +0200
++++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx	2006-08-27 22:36:25.000000000 +0200
+@@ -53,14 +53,8 @@
+ char const* const* GnuInfo::getJavaExePaths(int * size)
+ {
+     static char const * ar[] = {
+-        "gij",
+-        "bin/gij",
+-	"gij-4.3",
+-	"bin/gij-4.3",
+-	"gij-4.2",
+-	"bin/gij-4.2",
+-	"gij-4.1",
+-	"bin/gij-4.1",
++        "java",
++        "bin/java"
+     };
+     *size = sizeof (ar) / sizeof (char*);
+     return ar;
+@@ -73,25 +67,7 @@
+ char const* const* GnuInfo::getRuntimePaths(int * size)
+ {
+     static char const* ar[]= {
+-        "/libjvm.so",
+-        "/lib/" GCJ_JFW_PLUGIN_ARCH "/client/libjvm.so",
+-        "/gcj-4.1.1/libjvm.so",
+-	  "/gcj-4.3-90/libjvm.so",
+-	  "/gcj-4.2-81/libjvm.so",
+-	  "/gcj-4.2/libjvm.so",
+-	  "/gcj-4.2.1/libjvm.so",
+-	  "/gcj-4.2.2/libjvm.so",
+-	  "/gcj-4.2.3/libjvm.so",
+-	  "/gcj-4.1-71/libjvm.so",
+-	  "/gcj-4_1/libjvm.so",
+-	  "/gcj-4.1/libjvm.so",
+-	  "/libgcj.so.81",
+-	  "/libgcj.so.80",
+-	  "/libgcj.so.8",
+-	  "/libgcj.so.71",
+-	  "/libgcj.so.70",
+-        "/libgcj.so.7",
+-        "/libgcj.so.6"
++        "/lib/" GCJ_JFW_PLUGIN_ARCH "/client/libjvm.so"
+     };
+     *size = sizeof(ar) / sizeof (char*);
+     return ar;
+--- desktop/scripts/soffice.sh.orig	2006-09-23 16:42:54.000000000 +0200
++++ desktop/scripts/soffice.sh	2006-09-23 16:43:03.000000000 +0200
+@@ -140,6 +140,9 @@
+     ;;
+ 
+   *)
++    if [[ "$(java-config -f)" =~ "gcj-jdk" ]]; then
++      LD_LIBRARY_PATH="$(java-config --jdk-home)/lib:${LD_LIBRARY_PATH}"
++    fi
+     # this is a temporary hack until we can live with the default search paths
+     if [ $LD_LIBRARY_PATH ]; then
+       SYSTEM_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sal.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sal.diff
@@ -0,0 +1,22 @@
+--- sal/prj/build.lst	2007-07-03 14:49:32.000000000 +0200
++++ sal/prj/build.lst	2007-09-07 14:54:18.000000000 +0200
+@@ -10,7 +10,6 @@ sa	sal\systools\win32\guistdio				nmake	
+ sa	sal\systools\win32\onlineupdate			nmake	-	n	sa_onlineupdate sa_uwinapi.n sa_inc NULL
+ sa	sal\osl\w32								nmake	-	n	sa_osln sa_inc NULL
+ sa     sal\osl\os2                                                             nmake   -       p       sa_oslp sa_inc NULL
+-sa  sal\qa                                  nmake   -   all sa_qa sa_util NULL
+ sa	sal\osl\unx								nmake	-	u	sa_oslu sa_tc.u sa_inc NULL
+ sa	sal\osl\all								nmake	-	all	sa_oslall sa_tc.u sa_inc NULL
+ sa	sal\util								nmake	-	all	sa_util sa_tc.u sa_oslall sa_uwinapi.n sa_guistdio.n sa_kill.n sa_onlineupdate.n sa_osln.n sa_oslu.u sa_rtl sa_textenc NULL
+--- sal/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sal/prj/tests.lst	2007-09-07 14:54:04.000000000 +0200
+@@ -0,0 +1,9 @@
++sa   sal\qa                                             nmake - all sa_qa sa_util NULL
++
++# older tests:
++#depends on udkapi: sa   sal\test\unloading                                 nmake - all sa_test_unloading sa_util NULL
++sa   sal\test                                           nmake - all sa_test sa_util NULL
++sa   sal\workben\clipboardwben\testcopy                 nmake - w   sa_workben_clipboardwben_testcopy sa_util NULL
++sa   sal\workben\clipboardwben\testpaste                nmake - w   sa_workben_clipboardwben_testpaste sa_util NULL
++sa   sal\workben\clipboardwben\testviewer               nmake - w   sa_workben_clipboardwben_testviewer sa_util NULL
++#depends on testshl2: sa   sal\workben                                        nmake - all sa_workben sa_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-filter-name.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-filter-name.diff
@@ -0,0 +1,21 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx	2005-05-09 15:16:26.005903927 +0200
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2005-05-09 15:16:13.962981172 +0200
+@@ -714,4 +714,18 @@ void FileFilterComboHack::setCurrentFilt
+ {
+     setCurrentText( filter );
+     filterChanged();
++
++    // Workaround for 'Filter name (*.blah)' vs. 'Filter name'
++    if ( currentText() != text( currentItem() ) )
++    {
++        int nItem = 0;
++        for ( ; nItem < count() && !text( nItem ).startsWith( filter ); ++nItem );
++
++        if ( nItem < count() )
++            setCurrentItem( nItem );
++        else
++            setCurrentItem( 0 );
++
++        filterChanged();
++    }
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-toolbar-advanced-shapes.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-toolbar-advanced-shapes.diff
@@ -0,0 +1,28 @@
+diff -rup sd/uiconfig/simpress/toolbar.orig/toolbar.xml sd/uiconfig/simpress/toolbar/toolbar.xml
+--- sd/uiconfig/simpress/toolbar.orig/toolbar.xml	2006-05-28 18:56:48.000000000 +0200
++++ sd/uiconfig/simpress/toolbar/toolbar.xml	2006-05-28 18:57:49.000000000 +0200
+@@ -5,8 +5,8 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="helpid:10102" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="helpid:27173" toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="helpid:10104" toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:10104" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:Text" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
+diff -rup sd/uiconfig/sdraw/toolbar.orig/toolbar.xml sd/uiconfig/sdraw/toolbar/toolbar.xml
+--- sd/uiconfig/sdraw/toolbar.orig/toolbar.xml	2006-05-28 19:59:49.000000000 +0200
++++ sd/uiconfig/sdraw/toolbar/toolbar.xml	2006-05-28 20:00:39.000000000 +0200
+@@ -5,8 +5,8 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="helpid:10102" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="helpid:27173" toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="helpid:10104" toolbar:style="radio" />
+- <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:10104" toolbar:style="radio" />
++ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:Text" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+  <toolbar:toolbarseparator/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sal-strintern-speed-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sal-strintern-speed-fix.diff
@@ -0,0 +1,12 @@
+--- sal/rtl/source/hash.cxx
++++ sal/rtl/source/hash.cxx
+@@ -301,6 +301,9 @@
+     pHash->pData[n++] = NULL;
+     pHash->nEntries--;
+ 
++    if (n >= pHash->nSize)
++        n = 0;
++
+     while ((pHashStr = pHash->pData[n]) != NULL) {
+         pHash->pData[n] = NULL;
+         // FIXME: rather unsophisticated and N^2 in chain-length, but robust.
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/spellcheck-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/spellcheck-fix.diff
@@ -0,0 +1,15 @@
+Index: sw/source/ui/dialog/SwSpellDialogChildWindow.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/dialog/SwSpellDialogChildWindow.cxx,v
+retrieving revision 1.11.130.1
+diff -u -p -r1.11.130.1 SwSpellDialogChildWindow.cxx
+--- sw/source/ui/dialog/SwSpellDialogChildWindow.cxx	17 Jan 2008 16:08:49 -0000	1.11.130.1
++++ sw/source/ui/dialog/SwSpellDialogChildWindow.cxx	10 Apr 2008 08:17:11 -0000
+@@ -162,6 +162,7 @@ struct SpellState
+     SpellState() :
+         m_bInitialCall(true),
+         m_bLockFocus(false),
++        m_bLostFocus(false),
+         m_SpellStartPosition(SPELL_START_BODY),
+         m_bBodySpelled(false),
+         m_bOtherSpelled(false),
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cjk-character-units-imp.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cjk-character-units-imp.diff
@@ -0,0 +1,599 @@
+diff -uNr svtools/inc/ruler.hxx svtools/inc/ruler.hxx
+--- svtools/inc/ruler.hxx	2007-12-17 01:39:55.000000000 +0800
++++ svtools/inc/ruler.hxx	2007-12-17 11:12:34.000000000 +0800
+@@ -708,6 +708,10 @@
+     USHORT              mnExtraStyle;
+     USHORT              mnExtraClicks;
+     USHORT              mnExtraModifier;
++// Amelia
++    long                mnCharWidth;
++    long                mnLineHeight;
++
+     RulerExtra          meExtraType;
+     RulerType           meDragType;
+     MapUnit             meSourceUnit;
+@@ -887,6 +891,9 @@
+ 
+     //set text direction right-to-left
+     void                SetTextRTL(BOOL bRTL);
++
++    void                SetCharWidth( long nWidth ) { mnCharWidth = nWidth ; }
++    void                SetLineHeight( long nHeight ) { mnLineHeight = nHeight ; }
+ };
+ 
+ #endif  // _RULER_HXX
+diff -uNr svtools/source/control/ruler.cxx svtools/source/control/ruler.cxx
+--- svtools/source/control/ruler.cxx	2007-12-17 01:39:58.000000000 +0800
++++ svtools/source/control/ruler.cxx	2007-12-17 11:12:38.000000000 +0800
+@@ -487,6 +487,25 @@
+     long    nY;
+     BOOL    bNoTicks = FALSE;
+ 
++    //Amelia
++    long    nTickUnit ;
++    long    nTick2 ;
++    if ( mnUnitIndex == RULER_UNIT_CHAR )
++    {
++        nTick3 = mnCharWidth;
++        nTickCount = mnCharWidth;
++        nTickUnit = mnCharWidth;
++        nTick2 = mnCharWidth;
++    }
++    else if ( mnUnitIndex == RULER_UNIT_LINE )
++    {
++        nTick3 = mnLineHeight;
++        nTickCount = mnLineHeight;
++        nTickUnit = mnLineHeight;
++        nTick2 = mnLineHeight;
++    }
++    aPixSize = maVirDev.LogicToPixel( Size( nTick3, nTick3 ), maMapMode );
++
+     // Groessenvorberechnung
+     BOOL bVertRight = FALSE;
+ 	if ( mnWinStyle & WB_HORZ )
+@@ -507,7 +526,11 @@
+     long nMaxWidth = maVirDev.PixelToLogic( Size( mpData->nPageWidth, 0 ), maMapMode ).Width();
+     if ( nMaxWidth < 0 )
+         nMaxWidth *= -1;
+-    nMaxWidth /= aImplRulerUnitTab[mnUnitIndex].nTickUnit;
++// Amelia
++    if (( mnUnitIndex == RULER_UNIT_CHAR ) || ( mnUnitIndex == RULER_UNIT_LINE ))
++        nMaxWidth /= nTickUnit; 
++    else
++        nMaxWidth /= aImplRulerUnitTab[mnUnitIndex].nTickUnit;
+     UniString aNumStr( UniString::CreateFromInt32( nMaxWidth ) );
+     long nTxtWidth = GetTextWidth( aNumStr );
+     if ( (nTxtWidth*2) > nTickWidth )
+@@ -587,7 +610,11 @@
+                 // Tick3 - Ausgabe (Text)
+                 if ( !(nTick % nTick3) )
+                 {
+-                    aNumStr = UniString::CreateFromInt32( nTick / aImplRulerUnitTab[mnUnitIndex].nTickUnit );
++                    //aNumStr = UniString::CreateFromInt32( nTick / aImplRulerUnitTab[mnUnitIndex].nTickUnit );
++                    if ( ( mnUnitIndex == RULER_UNIT_CHAR ) || ( mnUnitIndex == RULER_UNIT_LINE ) )
++                        aNumStr = UniString::CreateFromInt32( nTick / nTickUnit );
++                    else 
++                        aNumStr = UniString::CreateFromInt32( nTick / aImplRulerUnitTab[mnUnitIndex].nTickUnit );
+                     nTxtWidth2 = GetTextWidth( aNumStr )/2;
+ 
+                     nX = nStart+n;
+@@ -614,7 +641,10 @@
+                 // Tick/Tick2 - Ausgabe (Striche)
+                 else
+                 {
+-                    if ( !(nTick % aImplRulerUnitTab[mnUnitIndex].nTick2) )
++		/// Amelia
++                    if ( ( mnUnitIndex != RULER_UNIT_CHAR ) && ( mnUnitIndex != RULER_UNIT_LINE ) )
++                        nTick2 = aImplRulerUnitTab[mnUnitIndex].nTick2;
++                    if ( !(nTick % nTick2 ) )
+                         nTickWidth = RULER_TICK2_WIDTH;
+                     else
+                         nTickWidth = RULER_TICK1_WIDTH;
+@@ -2824,6 +2854,12 @@
+             case FUNIT_PICA:
+                 mnUnitIndex = RULER_UNIT_PICA;
+                 break;
++            case FUNIT_CHAR:
++                mnUnitIndex = RULER_UNIT_CHAR;
++                break;
++            case FUNIT_LINE:
++                mnUnitIndex = RULER_UNIT_LINE;
++                break;
+             default:
+ #ifdef DBG_UTIL
+                 DBG_ERRORFILE( "Ruler::SetUnit() - Wrong Unit" );
+diff -uNr svx/inc/dlgutil.hxx svx/inc/dlgutil.hxx
+--- svx/inc/dlgutil.hxx	2007-12-17 01:40:27.000000000 +0800
++++ svx/inc/dlgutil.hxx	2007-12-17 11:13:02.000000000 +0800
+@@ -87,6 +87,7 @@
+ 				   FieldUnit eUnit, BOOL bAll = FALSE );
+ 
+ SVX_DLLPUBLIC FieldUnit GetModuleFieldUnit( const SfxItemSet* pSet = NULL );
++SVX_DLLPUBLIC  BOOL GetApplyCharUnit( const SfxItemSet* pSet = NULL );
+ 
+ // Metriken umrechnen
+ SVX_DLLPUBLIC long 		CalcToUnit( float nIn, SfxMapUnit eUnit );
+diff -uNr svx/source/dialog/dlgutil.cxx svx/source/dialog/dlgutil.cxx
+--- svx/source/dialog/dlgutil.cxx	2007-12-17 01:40:34.000000000 +0800
++++ svx/source/dialog/dlgutil.cxx	2007-12-17 11:13:12.000000000 +0800
+@@ -55,6 +55,10 @@
+ #include <sfx2/viewfrm.hxx>
+ #include <sfx2/objsh.hxx>
+ 
++#ifndef _SFXENUMITEM_HXX
++#include <svtools/eitem.hxx>
++#endif
++
+ #include <svx/dialogs.hrc>
+ 
+ #include "dlgutil.hxx"
+@@ -125,6 +129,9 @@
+ 	rField.SetUnit( eUnit );
+ 	switch( eUnit )
+ 	{
++		// Amelia : sets the step of "char" and "line" unit , they are same as FUNIT_MM
++		case FUNIT_CHAR:
++		case FUNIT_LINE:
+ 		case FUNIT_MM:
+ 			rField.SetSpinSize( 50 );
+ 			break;
+@@ -222,6 +229,36 @@
+ 	}
+ 	return eUnit;
+ }
++// -----------------------------------------------------------------------
++BOOL GetApplyCharUnit( const SfxItemSet* pSet )
++{
++	BOOL  bUseCharUnit = FALSE;
++	const SfxPoolItem* pItem = NULL;
++	if ( pSet && SFX_ITEM_SET == pSet->GetItemState( SID_ATTR_APPLYCHARUNIT, FALSE, &pItem ) )
++		bUseCharUnit = (BOOL)( (const SfxBoolItem*)pItem )->GetValue();
++	else
++	{
++		SfxViewFrame* pFrame = SfxViewFrame::Current();
++		SfxObjectShell* pSh = NULL;
++		if ( pFrame )
++		pSh = pFrame->GetObjectShell();
++ 		if ( pSh )  // #93209# the object shell is not always available during reload
++ 		{
++			SfxModule* pModule = pSh->GetModule();
++			if ( pModule )
++			{
++				const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_APPLYCHARUNIT );
++				if ( pItem )
++					bUseCharUnit = (BOOL)( (SfxBoolItem*)pItem )->GetValue();
++			}
++			else
++			{
++				DBG_ERRORFILE( "GetApplyCharUnit(): no module found" );
++			}
++		}
++	}
++	return bUseCharUnit;
++}
+ 
+ // -----------------------------------------------------------------------
+ void SetMetricValue( MetricField& rField, long nCoreValue, SfxMapUnit eUnit )
+diff -uNr svx/source/dialog/paragrph.cxx svx/source/dialog/paragrph.cxx
+--- svx/source/dialog/paragrph.cxx	2007-12-17 01:40:34.000000000 +0800
++++ svx/source/dialog/paragrph.cxx	2007-12-17 11:13:12.000000000 +0800
+@@ -482,11 +482,20 @@
+ 
+ 	// Metrik einstellen
+ 	FieldUnit eFUnit = GetModuleFieldUnit( &rSet );
++
++	BOOL bApplyCharUnit = sal_False ;
++	bApplyCharUnit = GetApplyCharUnit( &rSet );
++
++	if ( bApplyCharUnit )
++		eFUnit = FUNIT_CHAR;  // Amelia
+ 	SetFieldUnit( aLeftIndent, eFUnit );
+ 	SetFieldUnit( aRightIndent, eFUnit );
+ 	SetFieldUnit( aFLineIndent, eFUnit );
++	if ( bApplyCharUnit )
++		eFUnit = FUNIT_LINE;   // Amelia
+ 	SetFieldUnit( aTopDist, eFUnit );
+ 	SetFieldUnit( aBottomDist, eFUnit );
++	eFUnit = FUNIT_POINT;
+ 	SetFieldUnit( aLineDistAtMetricBox, eFUnit );
+ 
+     USHORT _nWhich = GetWhich( SID_ATTR_LRSPACE );
+diff -uNr sw/inc/swmodule.hxx sw/inc/swmodule.hxx
+--- sw/inc/swmodule.hxx	2007-12-17 01:41:35.000000000 +0800
++++ sw/inc/swmodule.hxx	2007-12-17 11:13:50.000000000 +0800
+@@ -197,6 +197,8 @@
+     //default page mode for text grid 
+     SW_DLLPUBLIC void ApplyDefaultPageMode(sal_Bool bIsSquaredPageMode);
+ 
++	void ApplyUserCharUnit(BOOL bApplyChar, BOOL bWeb);  // apply_char_unit
++
+ 	// ConfigItems erzeugen
+ 	SwModuleOptions*    GetModuleConfig()		{ return pModuleConfig;}
+ 	SW_DLLPUBLIC SwPrintOptions* 	GetPrtOptions(sal_Bool bWeb);
+diff -uNr sw/source/ui/app/appopt.cxx sw/source/ui/app/appopt.cxx
+--- sw/source/ui/app/appopt.cxx	2007-12-17 01:41:44.000000000 +0800
++++ sw/source/ui/app/appopt.cxx	2007-12-17 11:13:58.000000000 +0800
+@@ -205,6 +205,7 @@
+ 									FN_PARAM_WRTSHELL,		FN_PARAM_WRTSHELL,
+ 									FN_PARAM_ADDPRINTER, 	FN_PARAM_ADDPRINTER,
+ 									SID_ATTR_METRIC,		SID_ATTR_METRIC,
++									SID_ATTR_APPLYCHARUNIT, SID_ATTR_APPLYCHARUNIT,
+ 									SID_ATTR_DEFTABSTOP, 	SID_ATTR_DEFTABSTOP,
+ 									RES_BACKGROUND,			RES_BACKGROUND,
+ 									SID_HTML_MODE,			SID_HTML_MODE,
+@@ -437,6 +438,15 @@
+ 		const SfxUInt16Item* pMetricItem = (const SfxUInt16Item*)pItem;
+ 		::SetDfltMetric((FieldUnit)pMetricItem->GetValue(), !bTextDialog);
+ 	}
++
++	if( SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_APPLYCHARUNIT,
++													FALSE, &pItem ) )
++	{
++		SFX_APP()->SetOptions(rSet);
++		const SfxBoolItem* pCharItem = (const SfxBoolItem*)pItem;
++		::SetApplyCharUnit(pCharItem->GetValue(), !bTextDialog);
++	}
++
+     if( SFX_ITEM_SET == rSet.GetItemState(FN_HSCROLL_METRIC,
+ 													FALSE, &pItem ) )
+ 	{
+diff -uNr sw/source/ui/app/swmodul1.cxx sw/source/ui/app/swmodul1.cxx
+--- sw/source/ui/app/swmodul1.cxx	2007-12-17 01:41:44.000000000 +0800
++++ sw/source/ui/app/swmodul1.cxx	2007-12-17 11:13:58.000000000 +0800
+@@ -344,6 +344,63 @@
+ 		}
+ 
+ }
++
++/*-------------------------------------------------
++set the usrpref 's char unit attribute and set ruler
++'s unit as char if the "apply char unit" is checked
++--------------------------------------------------*/
++void SwModule::ApplyUserCharUnit(BOOL bApplyChar, BOOL bWeb)
++{
++	SwMasterUsrPref* pPref;
++	if(bWeb)
++	{
++		if(!pWebUsrPref)
++		GetUsrPref(sal_True);
++		pPref = pWebUsrPref;
++	}
++	else
++	{
++		if(!pUsrPref)
++		GetUsrPref(sal_False);
++		pPref = pUsrPref;
++	}
++	BOOL  bOldApplyCharUnit = pPref->IsApplyCharUnit();
++	BOOL    bHasChanged = FALSE;
++	if(bOldApplyCharUnit != bApplyChar)
++	{
++		pPref->SetApplyCharUnit(bApplyChar);
++		bHasChanged = TRUE;
++	}
++
++	if( !bHasChanged )
++		return;
++
++	FieldUnit eHScrollMetric = pPref->IsHScrollMetric() ? pPref->GetHScrollMetric() : pPref->GetMetric();
++	FieldUnit eVScrollMetric = pPref->IsVScrollMetric() ? pPref->GetVScrollMetric() : pPref->GetMetric();
++	if(bApplyChar)
++	{
++		eHScrollMetric = FUNIT_CHAR;
++		eVScrollMetric = FUNIT_LINE;
++	}
++	else
++	{
++		eHScrollMetric = FUNIT_CM;
++		eVScrollMetric = FUNIT_CM;
++	}
++	SwView* pTmpView = SwModule::GetFirstView();
++	// fuer alle MDI-Fenster das Lineal umschalten
++	while(pTmpView)
++	{
++		if(bWeb == (0 != PTR_CAST(SwWebView, pTmpView)))
++		{
++			pTmpView->ChangeVLinealMetric(eVScrollMetric);
++			pTmpView->ChangeTabMetric(eHScrollMetric);
++		}
++
++		pTmpView = SwModule::GetNextView(pTmpView);
++	}
++}
++
+ /*-----------------13.11.96 11.57-------------------
+ 
+ --------------------------------------------------*/
+diff -uNr sw/source/ui/config/optload.cxx sw/source/ui/config/optload.cxx
+--- sw/source/ui/config/optload.cxx	2007-12-17 01:41:54.000000000 +0800
++++ sw/source/ui/config/optload.cxx	2007-12-17 11:14:00.000000000 +0800
+@@ -260,6 +260,12 @@
+ 					(USHORT)aTabMF.Denormalize(aTabMF.GetValue(FUNIT_TWIP))));
+         bRet = TRUE;
+     }
++
++	if(aUseCharUnit.IsChecked() != aUseCharUnit.GetSavedValue())
++	{
++		rSet.Put(SfxBoolItem(SID_ATTR_APPLYCHARUNIT, aUseCharUnit.IsChecked()));
++		bRet = TRUE;
++	}
+     
+     sal_Bool bIsSquaredPageModeFlag = aUseSquaredPageMode.IsChecked();
+     if ( bIsSquaredPageModeFlag != aUseSquaredPageMode.GetSavedValue() )
+@@ -347,6 +353,17 @@
+ 		aUseSquaredPageMode.Check( bSquaredPageMode );
+    	 	aUseSquaredPageMode.SaveValue();
+ 	}
++
++	if(SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_APPLYCHARUNIT, FALSE, &pItem))
++	{
++		BOOL bUseCharUnit = ((const SfxBoolItem*)pItem)->GetValue();
++		aUseCharUnit.Check(bUseCharUnit);
++	}
++	else
++	{
++		aUseCharUnit.Check(pUsrPref->IsApplyCharUnit());
++	}
++	aUseCharUnit.SaveValue();
+ }
+ /*-----------------13.01.97 14.44-------------------
+ 	Metric des Deftabstops umschalten
+diff -uNr sw/source/ui/config/usrpref.cxx sw/source/ui/config/usrpref.cxx
+--- sw/source/ui/config/usrpref.cxx	2007-12-17 01:41:54.000000000 +0800
++++ sw/source/ui/config/usrpref.cxx	2007-12-17 11:14:00.000000000 +0800
+@@ -283,9 +283,10 @@
+         "Other/MeasureUnit",                //13
+         "Other/TabStop",                    //14
+         "Window/IsVerticalRulerRight",      //15
+-        "Other/IsSquaredPageMode"        //16
++        "Other/IsSquaredPageMode",        //16
++        "Other/ApplyCharUnit"               //17
+     };
+-    const int nCount = bWeb ? 14 : 17;
++    const int nCount = bWeb ? 14 : 18;
+     Sequence<OUString> aNames(nCount);
+ 	OUString* pNames = aNames.getArray();
+ 	for(int i = 0; i < nCount; i++)
+@@ -350,8 +351,9 @@
+             case 14: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(rParent.GetDefTab())); break;// "Other/TabStop",
+             case 15: bSet = rParent.IsVRulerRight(); break;// "Window/IsVerticalRulerRight",
+             case 16: bSet = rParent.IsSquaredPageMode(); break;// "Other/IsSquaredPageMode",
++            case 17: bSet = rParent.IsApplyCharUnit(); break;// "Other/IsApplyCharUnit",
+         }
+-        if(nProp < 8 || nProp == 10 || nProp == 16)
++        if(nProp < 8 || nProp == 10 || nProp == 16 || nProp == 17)
+ 			pValues[nProp].setValue(&bSet, ::getBooleanCppuType());
+ 	}
+ 	PutProperties(aNames, aValues);
+@@ -371,7 +373,7 @@
+ 		{
+ 			if(pValues[nProp].hasValue())
+ 			{
+-                sal_Bool bSet = nProp < 8 || nProp == 10 || nProp == 16? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
++                sal_Bool bSet = nProp < 8 || nProp == 10 || nProp == 16 || nProp == 17? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
+                 switch(nProp)
+ 				{
+                     case  0: rParent.SetCrossHair(bSet); break;// "Line/Guide",
+@@ -429,6 +431,7 @@
+ 					break;// "Other/TabStop",
+                     case 15: rParent.SetVRulerRight(bSet); break;// "Window/IsVerticalRulerRight",
+                     case 16: rParent.SetDefaultPageMode(bSet); break;// "Other/IsSquaredPageMode",
++                    case 17: rParent.SetApplyCharUnit(bSet); break;// "Other/ApplyUserChar"
+                 }
+ 			}
+ 		}
+diff -uNr sw/source/ui/inc/pggrid.hxx sw/source/ui/inc/pggrid.hxx
+--- sw/source/ui/inc/pggrid.hxx	2007-12-17 10:57:44.000000000 +0800
++++ sw/source/ui/inc/pggrid.hxx	2007-12-17 11:13:58.000000000 +0800
+@@ -92,7 +92,7 @@
+     FixedText       aColorFT;
+     ColorListBox    aColorLB;
+ 
+-    Window*         aControls[18];
++    Window*         aControls[20];
+ 
+     sal_Int32       m_nRubyUserValue;
+     sal_Bool        m_bRubyUserValue;
+diff -uNr sw/source/ui/inc/uitool.hxx sw/source/ui/inc/uitool.hxx
+--- sw/source/ui/inc/uitool.hxx	2007-12-17 01:41:47.000000000 +0800
++++ sw/source/ui/inc/uitool.hxx	2007-12-17 11:13:58.000000000 +0800
+@@ -90,6 +90,9 @@
+ SW_DLLPUBLIC FieldUnit	GetDfltMetric(BOOL bWeb);
+ void		SetDfltMetric(FieldUnit	eMetric, BOOL bWeb);
+ 
++SW_DLLPUBLIC BOOL HasCharUnit( BOOL bWeb );
++void SetApplyCharUnit(BOOL bApplyChar, BOOL bWeb);
++
+ // ListBox mit allen Zeichenvorlagen fuellen - ausser Standard!
+ SW_DLLPUBLIC void FillCharStyleListBox(ListBox& rToFill, SwDocShell* pDocSh, BOOL bSorted = FALSE, BOOL bWithDefault = FALSE);
+ 
+diff -uNr sw/source/ui/inc/usrpref.hxx sw/source/ui/inc/usrpref.hxx
+--- sw/source/ui/inc/usrpref.hxx	2007-12-17 01:41:46.000000000 +0800
++++ sw/source/ui/inc/usrpref.hxx	2007-12-17 11:13:58.000000000 +0800
+@@ -165,6 +165,7 @@
+     SwCursorConfig      aCursorConfig;
+     SwWebColorConfig*   pWebColorConfig;
+ 
++    sal_Bool bApplyCharUnit; // apply_char_unit
+ public:
+ 	SwMasterUsrPref(BOOL bWeb);
+ 	~SwMasterUsrPref();
+@@ -266,6 +267,17 @@
+                         aLayoutConfig.SetModified();
+                 }
+ 
++    sal_Bool    IsApplyCharUnit() const
++    {
++        return bApplyCharUnit;
++    }
++    void   SetApplyCharUnit(BOOL bSet, sal_Bool bNoModify = sal_False)
++    {
++        bApplyCharUnit = bSet;
++        if(!bNoModify)
++            aLayoutConfig.SetModified();
++    }
++
+     sal_Int32   GetDefTab() const { return nDefTab;}
+     void        SetDefTab( sal_Int32  nSet, sal_Bool bNoModify = sal_False )
+                 {
++diff -uNr sw/source/ui/misc/pggrid.cxx sw/source/ui/misc/pggrid.cxx
+--- sw/source/ui/misc/pggrid.cxx	2007-12-17 01:41:49.000000000 +0800
++++ sw/source/ui/misc/pggrid.cxx	2007-12-17 11:13:59.000000000 +0800
+@@ -149,7 +149,9 @@
+     aControls[14] =&aPrintCB;
+     aControls[15] =&aColorFT;
+     aControls[16] =&aColorLB;
+-    aControls[17] =0;
++    aControls[17] =&aLinesRangeFT;
++    aControls[18] =&aCharsRangeFT;
++    aControls[19] =0;
+ 
+     Link aLink = LINK(this, SwTextGridPage, CharorLineChangedHdl);
+     aCharsPerLineNF.SetUpHdl(aLink);
+@@ -346,6 +348,10 @@
+         aGridItem.SetPrintGrid(aPrintCB.IsChecked());
+         aGridItem.SetColor(aColorLB.GetSelectEntryColor());
+         rSet.Put(aGridItem);
++/// Amelia
++        SwView * pView = ::GetActiveView();
++        pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
++        pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
+ }
+ /* -----------------------------08.02.2002 10:54------------------------------
+ 
+@@ -450,6 +456,10 @@
+             long nHeight = static_cast< sal_Int32 >(m_aPageSize.Height() / aLinesPerPageNF.GetValue());
+             aTextSizeMF.SetValue(aTextSizeMF.Normalize(nHeight), FUNIT_TWIP);
+             aRubySizeMF.SetValue(0, FUNIT_TWIP);
++            String aMaxLinesFTStr = String::CreateFromAscii("( 1 - ");
++            aMaxLinesFTStr += String::CreateFromInt32(aLinesPerPageNF.GetValue());
++            aMaxLinesFTStr += String::CreateFromAscii(" )");
++            aLinesRangeFT.SetText( aMaxLinesFTStr );
+             
+             m_nRubyUserValue = nHeight;
+             m_bRubyUserValue = sal_True;
+@@ -458,6 +468,10 @@
+         {
+             long nWidth = static_cast< sal_Int32 >(m_aPageSize.Width() / aCharsPerLineNF.GetValue());
+             aCharWidthMF.SetValue(aCharWidthMF.Normalize(nWidth), FUNIT_TWIP);
++            String aMaxCharsFTStr = String::CreateFromAscii("( 1 - ");
++            aMaxCharsFTStr += String::CreateFromInt32(aCharsPerLineNF.GetValue());
++            aMaxCharsFTStr += String::CreateFromAscii(" )");
++            aCharsRangeFT.SetText( aMaxCharsFTStr );
+         }
+     }
+     GridModifyHdl(0);
+@@ -473,7 +487,6 @@
+         if (&aTextSizeMF == pField)
+     {
+         sal_Int32 nTextSize = static_cast< sal_Int32 >(aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)));
+-        aCharsPerLineNF.SetValue(m_aPageSize.Width() / nTextSize);
+         m_bRubyUserValue = sal_False;
+     }
+ 		//set maximum line per page
+@@ -491,14 +504,22 @@
+             sal_Int32 nTextSize = static_cast< sal_Int32 >(aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)));
+             aLinesPerPageNF.SetValue(m_aPageSize.Height() / nTextSize);
+             m_bRubyUserValue = sal_False;
++            String aRangesStr = String::CreateFromAscii("( 1 - ");
++            aRangesStr += String::CreateFromInt32( m_aPageSize.Height() / nTextSize );
++            aRangesStr += String::CreateFromAscii(" )");
++            aLinesRangeFT.SetText( aRangesStr );
+         }
+         else if (&aCharWidthMF == pField)
+         {
+             sal_Int32 nTextWidth = static_cast< sal_Int32 >(aCharWidthMF.Denormalize(aCharWidthMF.GetValue(FUNIT_TWIP)));
++            sal_Int32 nMaxChar = 45 ;
+             if (nTextWidth)
+-                aCharsPerLineNF.SetValue(m_aPageSize.Width() / nTextWidth); 
+-            else
+-                aCharsPerLineNF.SetValue( 45 );
++                nMaxChar = m_aPageSize.Width() / nTextWidth;
++            aCharsPerLineNF.SetValue( nMaxChar );
++            String aCharRangeStr = String::CreateFromAscii("( 1 - ");
++            aCharRangeStr += String::CreateFromInt32( nMaxChar );
++            aCharRangeStr += String::CreateFromAscii(" )");
++            aCharsRangeFT.SetText( aCharRangeStr );
+         }
+         //rubySize is disabled
+     }
+@@ -526,6 +547,7 @@
+ 	{
+ 		aCharsPerLineFT.Enable(sal_False);
+ 		aCharsPerLineNF.Enable(sal_False);
++		aCharsRangeFT.Enable(sal_False);
+ 		aCharWidthFT.Enable(sal_False);
+ 		aCharWidthMF.Enable(sal_False);
+ 	}
+diff -uNr sw/source/ui/shells/textsh1.cxx sw/source/ui/shells/textsh1.cxx
+--- sw/source/ui/shells/textsh1.cxx	2007-12-17 01:41:56.000000000 +0800
++++ sw/source/ui/shells/textsh1.cxx	2007-12-17 11:14:01.000000000 +0800
+@@ -807,6 +807,10 @@
+ 		{
+             FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, &GetView()));
+             SW_MOD()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, static_cast< UINT16 >(eMetric)));
++
++            BOOL bApplyCharUnit = ::HasCharUnit(0 != PTR_CAST(SwWebView, &GetView()));
++            SW_MOD()->PutItem(SfxBoolItem(SID_ATTR_APPLYCHARUNIT, bApplyCharUnit));
++
+             SfxItemSet aCoreSet( GetPool(),
+                             RES_PARATR_BEGIN,           RES_PARATR_END - 1,
+                             RES_FRMATR_BEGIN,           RES_FRMATR_END - 1,
+diff -uNr sw/source/ui/uiview/view.cxx sw/source/ui/uiview/view.cxx
+--- sw/source/ui/uiview/view.cxx	2007-12-17 01:41:57.000000000 +0800
++++ sw/source/ui/uiview/view.cxx	2007-12-17 11:35:56.000000000 +0800
+@@ -267,6 +267,7 @@
+ 
+ #include <unomid.h>
+ 
++
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -1062,9 +1063,21 @@
+     pVRuler->SetZoom( aZoomFract );
+     pHRuler->SetDoubleClickHdl(LINK( this, SwView, ExecRulerClick ));
+     FieldUnit eMetric = pUsrPref->GetHScrollMetric();
+-    pHRuler->SetUnit( eMetric );
++
++    BOOL bApplyCharUnit = pUsrPref->IsApplyCharUnit();
++    if ( bApplyCharUnit )
++        pHRuler->SetUnit( FUNIT_CHAR );
++    else
++        pHRuler->SetUnit( eMetric );
++
+     eMetric = pUsrPref->GetVScrollMetric();
+-    pVRuler->SetUnit( eMetric );
++    if ( bApplyCharUnit )
++        pVRuler->SetUnit(FUNIT_LINE);
++    else
++        pVRuler->SetUnit( eMetric );
++
++        pHRuler->SetCharWidth( 371 );  // default character width
++        pVRuler->SetLineHeight( 551 );  // default line height
+ 
+ 	// DocShell setzen
+ 	pDocSh->SetView( this );
+diff -uNr sw/source/ui/utlui/uitool.cxx sw/source/ui/utlui/uitool.cxx
+--- sw/source/ui/utlui/uitool.cxx	2007-12-17 01:41:51.000000000 +0800
++++ sw/source/ui/utlui/uitool.cxx	2007-12-17 11:14:00.000000000 +0800
+@@ -827,6 +827,19 @@
+ 	return sRet;
+ }
+ 
++/*----------------------------------------------------------------------------
++ * add a new function which can get and set the current "SID_ATTR_APPLYCHARUNIT" value
++ *---------------------------------------------------------------------------*/
++BOOL HasCharUnit( BOOL bWeb)
++{
++    return SW_MOD()->GetUsrPref(bWeb)->IsApplyCharUnit();
++}
++
++void SetApplyCharUnit(BOOL bApplyChar, BOOL bWeb)
++{
++    SW_MOD()->ApplyUserCharUnit(bApplyChar, bWeb);
++}
++
+ /*-- 26.01.2006 08:06:33---------------------------------------------------
+ 
+   -----------------------------------------------------------------------*/
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-openformula-sumif.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-openformula-sumif.diff
@@ -0,0 +1,96 @@
+Index: sc/source/core/tool/interpr1.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/tool/interpr1.cxx,v
+retrieving revision 1.53
+diff -u -r1.53 interpr1.cxx
+--- sc/source/core/tool/interpr1.cxx	1 Nov 2007 16:23:17 -0000	1.53
++++ sc/source/core/tool/interpr1.cxx	7 Jan 2008 19:58:56 -0000
+@@ -4165,31 +4165,34 @@
+         SCCOL nCol3 = 0;
+         SCROW nRow3 = 0;
+         SCTAB nTab3 = 0;
+-        SCCOL nCol4 = 0;
+-        SCROW nRow4 = 0;
+-        SCTAB nTab4;
++
+ 		if (nParamCount == 3)
+ 		{
++            // Save only the upperleft cell in case of cell range.  The geometry
++            // of the 3rd parameter is taken from the 1st parameter.
++
+ 			switch ( GetStackType() )
+ 			{
+ 				case svDoubleRef :
+-					PopDoubleRef( nCol3, nRow3, nTab3, nCol4, nRow4, nTab4 );
++                {
++                    SCCOL nColJunk = 0;
++                    SCROW nRowJunk = 0;
++                    SCTAB nTabJunk = 0;
++                    PopDoubleRef( nCol3, nRow3, nTab3, nColJunk, nRowJunk, nTabJunk );
++                    if ( nTabJunk != nTab3 )
++                    {
++                        SetIllegalParameter();
++                        return;
++                    }
++                }
+ 				break;
+ 				case svSingleRef :
+ 					PopSingleRef( nCol3, nRow3, nTab3 );
+-					nCol4 = nCol3;
+-					nRow4 = nRow3;
+-					nTab4 = nTab3;
+ 				break;
+ 				default:
+ 					SetIllegalParameter();
+ 					return ;
+ 			}
+-			if ( nTab3 != nTab4 )
+-			{
+-				SetIllegalParameter();
+-				return;
+-			}
+ 		}
+ 		String rString;
+         double fVal = 0.0;
+@@ -4273,20 +4276,31 @@
+ 			SetIllegalParameter();
+ 			return;
+ 		}
+-		if (nParamCount != 3)
++
++        if (nParamCount == 3)
++        {
++            // Make sure the calculated cell ranges will not fall outside the
++            // allowed ranges (to prevent crash).
++
++            SCCOL nColDelta = nCol2 - nCol1;
++            SCROW nRowDelta = nRow2 - nRow1;
++            if (nCol3 + nColDelta > MAXCOL)
++            {
++                SCCOL nNewDelta = MAXCOL - nCol3;
++                nCol2 = nCol1 + nNewDelta;
++            }
++
++            if (nRow3 + nRowDelta >= MAXROW)
++            {
++                SCROW nNewDelta = MAXROW - nRow3;
++                nRow2 = nRow1 + nNewDelta;
++            }
++        }
++        else
+ 		{
+ 			nCol3 = nCol1;
+ 			nRow3 = nRow1;
+ 			nTab3 = nTab1;
+-			nCol4 = nCol2;
+-			nRow4 = nRow2;
+-			nTab4 = nTab2;
+-		}
+-		else if (nCol4 - nCol3 != nCol2 - nCol1 ||
+-				 nRow4 - nRow3 != nRow2 - nRow1 || nCol1 > nCol2)
+-		{
+-			SetIllegalParameter();
+-			return;
+ 		}
+ 		if (nGlobalError == 0)
+ 		{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooowikipedia_writer.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooowikipedia_writer.diff
@@ -0,0 +1,102 @@
+--- officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu.orig	2007-08-10 19:12:58.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu	2007-09-12 15:16:21.239692000 +0200
+@@ -651,6 +651,31 @@
+ 					<value>true</value>
+ 				</prop>
+ 			</node>
++						<node oor:name="private:resource/toolbar/dataminer" oor:op="replace">
++				<prop oor:name="DockPos" oor:type="xs:string">
++					<value>1,1</value>
++				</prop>
++				<prop oor:name="Docked" oor:type="xs:boolean">
++					<value>true</value>
++				</prop>
++				<prop oor:name="DockingArea" oor:type="xs:int">
++					<value>0</value>
++				</prop>
++				<prop oor:name="UIName" oor:type="xs:string">
++					<value xml:lang="en-US">Dataminer</value>
++					<value xml:lang="de">Angabe Knappe</value>
++					<value xml:lang="hu">Adatbányász</value>
++				</prop>
++				<prop oor:name="Visible" oor:type="xs:boolean">
++					<value>true</value>
++				</prop>
++				<prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean">
++					<value>false</value>
++				</prop>
++				<prop oor:name="ContextSensitive" oor:type="xs:boolean">
++				    <value>false</value>
++				</prop>
++			</node>
+ 		</node>
+ 	</node>
+ </oor:component-data>
+--- officecfg/registry/data/org/openoffice/Office/UI/WriterWebWindowState.xcu.orig	2007-08-10 19:12:58.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/UI/WriterWebWindowState.xcu	2007-09-12 15:16:21.255317200 +0200
+@@ -581,6 +581,31 @@
+ 					<value>true</value>
+ 				</prop>
+ 			</node>
++						<node oor:name="private:resource/toolbar/dataminer" oor:op="replace">
++				<prop oor:name="DockPos" oor:type="xs:string">
++					<value>1,1</value>
++				</prop>
++				<prop oor:name="Docked" oor:type="xs:boolean">
++					<value>true</value>
++				</prop>
++				<prop oor:name="DockingArea" oor:type="xs:int">
++					<value>0</value>
++				</prop>
++				<prop oor:name="UIName" oor:type="xs:string">
++					<value xml:lang="en-US">Dataminer</value>
++					<value xml:lang="de">Angabe Knappe</value>
++					<value xml:lang="hu">Adatbányász</value>
++				</prop>
++				<prop oor:name="Visible" oor:type="xs:boolean">
++					<value>true</value>
++				</prop>
++				<prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean">
++					<value>false</value>
++				</prop>
++				<prop oor:name="ContextSensitive" oor:type="xs:boolean">
++				    <value>false</value>
++				</prop>
++			</node>
+ 		</node>
+ 	</node>
+ </oor:component-data>
+--- officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu.orig	2007-08-10 19:12:58.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu	2007-09-12 15:16:21.286567600 +0200
+@@ -657,6 +657,31 @@
+ 					<value>true</value>
+ 				</prop>
+ 			</node>
++						<node oor:name="private:resource/toolbar/dataminer" oor:op="replace">
++				<prop oor:name="DockPos" oor:type="xs:string">
++					<value>1,1</value>
++				</prop>
++				<prop oor:name="Docked" oor:type="xs:boolean">
++					<value>true</value>
++				</prop>
++				<prop oor:name="DockingArea" oor:type="xs:int">
++					<value>0</value>
++				</prop>
++				<prop oor:name="UIName" oor:type="xs:string">
++					<value xml:lang="en-US">Dataminer</value>
++					<value xml:lang="de">Angabe Knappe</value>
++					<value xml:lang="hu">Adatbányász</value>
++				</prop>
++				<prop oor:name="Visible" oor:type="xs:boolean">
++					<value>true</value>
++				</prop>
++				<prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean">
++					<value>false</value>
++				</prop>
++				<prop oor:name="ContextSensitive" oor:type="xs:boolean">
++				    <value>false</value>
++				</prop>
++			</node>
+ 		</node>
+ 	</node>
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/session-management.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/session-management.diff
@@ -0,0 +1,419 @@
+diff -rup vcl/inc/salsession.hxx vcl/inc/salsession.hxx
+--- vcl/inc/vcl/salsession.hxx	2005-09-09 13:22:55.000000000 +0200
++++ vcl/inc/vcl/salsession.hxx	2006-02-20 17:10:26.000000000 +0100
+@@ -109,11 +109,9 @@ public:
+     // query the session manager for a user interaction slot
+     virtual void queryInteraction() = 0;
+     // signal the session manager that we're done with user interaction
+-    virtual void interactionDone() = 0;
++    virtual void interactionDone( bool bCancelShutdown ) = 0;
+     // signal that we're done saving
+     virtual void saveDone() = 0;
+-    // try to cancel the sutdown in progress
+-    virtual bool cancelShutdown() = 0;
+ };
+ 
+ #endif
+diff -rup vcl/source/app/session.cxx vcl/source/app/session.cxx
+--- vcl/source/app/session.cxx	2005-09-09 13:41:36.000000000 +0200
++++ vcl/source/app/session.cxx	2006-02-20 17:10:19.000000000 +0100
+@@ -126,9 +126,8 @@ public:
+     virtual void SAL_CALL addSessionManagerListener( const Reference< XSessionManagerListener >& xListener ) throw( RuntimeException );
+     virtual void SAL_CALL removeSessionManagerListener( const Reference< XSessionManagerListener>& xListener ) throw( RuntimeException );
+     virtual void SAL_CALL queryInteraction( const Reference< XSessionManagerListener >& xListener ) throw( RuntimeException );
+-    virtual void SAL_CALL interactionDone( const Reference< XSessionManagerListener >& xListener ) throw( RuntimeException );
++    virtual void SAL_CALL interactionDone( const Reference< XSessionManagerListener >& xListener, sal_Bool bCancelShutdown ) throw( RuntimeException );
+     virtual void SAL_CALL saveDone( const Reference< XSessionManagerListener >& xListener ) throw( RuntimeException );
+-    virtual sal_Bool SAL_CALL cancelShutdown() throw( RuntimeException );
+ };
+ 
+ VCLSession* VCLSession::pOneInstance = NULL;
+@@ -208,7 +207,7 @@ void VCLSession::callInteractionGranted(
+         if( aListeners.empty() )
+         {
+             if( m_pSession )
+-                m_pSession->interactionDone();
++                m_pSession->interactionDone( false );
+             return;
+         }
+     }
+@@ -310,7 +309,7 @@ void SAL_CALL VCLSession::queryInteracti
+     }
+ }
+ 
+-void SAL_CALL VCLSession::interactionDone( const Reference< XSessionManagerListener >& xListener ) throw( RuntimeException )
++void SAL_CALL VCLSession::interactionDone( const Reference< XSessionManagerListener >& xListener, sal_Bool bCancelShutdown ) throw( RuntimeException )
+ {
+     osl::MutexGuard aGuard( m_aMutex );
+     int nRequested = 0, nDone = 0;
+@@ -329,7 +328,7 @@ void SAL_CALL VCLSession::interactionDon
+     {
+         m_bInteractionDone = true;
+         if( m_pSession )
+-            m_pSession->interactionDone();
++            m_pSession->interactionDone( bCancelShutdown );
+     }
+ }
+ 
+@@ -354,11 +353,6 @@ void SAL_CALL VCLSession::saveDone( cons
+     }
+ }
+ 
+-sal_Bool SAL_CALL VCLSession::cancelShutdown() throw( RuntimeException )
+-{
+-    return m_pSession ? (sal_Bool)m_pSession->cancelShutdown() : sal_False;
+-}
+-
+ // service implementation
+ 
+ OUString SAL_CALL vcl_session_getImplementationName()
+diff -rup vcl/unx/inc/sm.hxx vcl/unx/inc/sm.hxx
+--- vcl/unx/inc/sm.hxx	2006-03-14 12:28:47.000000000 +0100
++++ vcl/unx/inc/sm.hxx	2006-02-20 17:37:18.000000000 +0100
+@@ -44,7 +44,8 @@ class SessionManagerClient
+ {
+ 	static SmcConn			aSmcConnection;
+ 	static ByteString		aClientID;
+-    static bool			bDocSaveDone;
++    static bool			    bDocSaveDone;
++	static bool             bSaveDoneSent;
+ 
+ 	static void SaveYourselfProc(		SmcConn connection,
+ 										SmPointer client_data,
+@@ -73,8 +74,8 @@ public:
+ 
+     static bool checkDocumentsSaved();
+     static bool queryInteraction();
+-    static void saveDone();
+-    static void interactionDone();
++    static void saveDone( bool bSuccess = true );
++    static void interactionDone( bool bCancelShutdown = false );
+ 
+ 	static String getExecName();
+ 	static VCL_DLLPUBLIC const ByteString&  getSessionID();
+@@ -89,9 +90,8 @@ public:
+     virtual ~IceSalSession();
+     
+     virtual void queryInteraction();
+-    virtual void interactionDone();
++    virtual void interactionDone( bool bCancelShutdown );
+     virtual void saveDone();
+-    virtual bool cancelShutdown();
+ 
+     static void handleOldX11SaveYourself( SalFrame* pFrame );
+ };
+Only in vcl/unx/inc: sm.hxx.~1.9.~
+diff -rup vcl/unx/source/app/sm.cxx vcl/unx/source/app/sm.cxx
+--- vcl/unx/source/app/sm.cxx	2006-03-14 12:28:47.000000000 +0100
++++ vcl/unx/source/app/sm.cxx	2006-02-20 17:44:23.000000000 +0100
+@@ -129,9 +129,9 @@ void IceSalSession::queryInteraction()
+     }
+ }
+ 
+-void IceSalSession::interactionDone()
++void IceSalSession::interactionDone( bool bCancelShutdown )
+ {
+-    SessionManagerClient::interactionDone();
++    SessionManagerClient::interactionDone( bCancelShutdown );
+ }
+ 
+ void IceSalSession::saveDone()
+@@ -144,11 +144,6 @@ void IceSalSession::saveDone()
+     }
+ }
+ 
+-bool IceSalSession::cancelShutdown()
+-{
+-    return false;
+-}
+-
+ void IceSalSession::handleOldX11SaveYourself( SalFrame* pFrame )
+ {
+     // do this only once
+@@ -201,6 +196,7 @@ int					ICEConnectionObserver::nWakeupFi
+ // HACK
+ bool SessionManagerClient::bDocSaveDone = false;
+ 
++bool SessionManagerClient::bSaveDoneSent = false;
+ 
+ static SmProp*	pSmProps = NULL;
+ static SmProp**	ppSmProps = NULL;
+@@ -269,12 +265,18 @@ bool SessionManagerClient::checkDocument
+     return bDocSaveDone;
+ }
+ 
++struct SaveYourselfArgs {
++	bool bShutdown;
++	bool bFast;
++	int nInteractionStyle;
++} aSaveYourselfArg;
++
+ IMPL_STATIC_LINK( SessionManagerClient, SaveYourselfHdl, void*, EMPTYARG )
+ {
+     SMprintf( "posting save documents event shutdown = %s\n", (pThis!=0) ? "true" : "false" );
+     if( pOneInstance )
+     {
+-        SalSessionSaveRequestEvent aEvent( pThis != 0, false );
++        SalSessionSaveRequestEvent aEvent( aSaveYourselfArg.bShutdown, aSaveYourselfArg.nInteractionStyle == SmInteractStyleAny && !aSaveYourselfArg.bFast );
+         pOneInstance->CallCallback( &aEvent );        
+     }
+     else
+@@ -286,12 +288,13 @@ IMPL_STATIC_LINK( SessionManagerClient, 
+ IMPL_STATIC_LINK_NOINSTANCE( SessionManagerClient, InteractionHdl, void*, EMPTYARG )
+ {
+     SMprintf( "interaction link\n" );
+-    if( pOneInstance )
++ 
++	if( pOneInstance )
+     {
+         SalSessionInteractionEvent aEvent( true );
+         pOneInstance->CallCallback( &aEvent );
+     }
+-    
++
+     return 0;
+ }
+ 
+@@ -304,6 +307,9 @@ IMPL_STATIC_LINK( SessionManagerClient, 
+         pOneInstance->CallCallback( &aEvent );
+     }
+     
++ 	if( !bSaveDoneSent )
++ 		saveDone( false );
++
+     return 0;
+ }
+ 
+@@ -317,7 +317,7 @@ void SessionManagerClient::SaveYourselfP
+ 	int save_type,
+ 	Bool shutdown,
+ 	int interact_style,
+-	Bool
++	Bool fast
+ 	)
+ {
+     SMprintf( "Session: save yourself, save_type = %s, shutdown = %s, interact_style = %s, fast = %s\n",
+@@ -324,8 +330,9 @@ void SessionManagerClient::SaveYourselfP
+               interact_style == SmInteractStyleNone ? "SmInteractStyleNone" :
+               ( interact_style == SmInteractStyleErrors ? "SmInteractStyleErrors" :
+                 ( interact_style == SmInteractStyleAny ? "SmInteractStyleAny" : "<unknown>" ) ),
+-              false ? "true" : "false"
++              fast ? "true" : "false"
+               );
++	bSaveDoneSent = false;
+ 	BuildSmPropertyList();
+ #ifdef USE_SM_EXTENSION
+     bDocSaveDone = false;
+@@ -340,7 +347,12 @@ void SessionManagerClient::SaveYourselfP
+         SessionManagerClient::saveDone();
+         return;
+     }
+-    Application::PostUserEvent( STATIC_LINK( (void*)(shutdown ? 0xffffffff : 0x0), SessionManagerClient, SaveYourselfHdl ) );
++
++	aSaveYourselfArg.bShutdown = shutdown;
++	aSaveYourselfArg.nInteractionStyle = interact_style;
++	aSaveYourselfArg.bFast = fast;
++	Application::PostUserEvent( STATIC_LINK( NULL, SessionManagerClient, SaveYourselfHdl ) );
++
+     SMprintf( "waiting for save yourself event to be processed\n" );
+ #endif
+ }
+@@ -393,20 +405,21 @@ void SessionManagerClient::InteractProc(
+         Application::PostUserEvent( STATIC_LINK( NULL, SessionManagerClient, InteractionHdl ) );
+ }
+ 
+-void SessionManagerClient::saveDone()
++void SessionManagerClient::saveDone( bool bSuccess )
+ {
+     if( aSmcConnection )
+     {
+         ICEConnectionObserver::lock();
+-        SmcSetProperties( aSmcConnection, nSmProps, ppSmProps );
+-        SmcSaveYourselfDone( aSmcConnection, True );
++		if( bSuccess )
++			SmcSetProperties( aSmcConnection, nSmProps, ppSmProps );
++        SmcSaveYourselfDone( aSmcConnection, bSuccess );
+         SMprintf( "sent SaveYourselfDone\n" );
+-        bDocSaveDone = true;
++        bDocSaveDone = bSuccess;
++		bSaveDoneSent = true;
+         ICEConnectionObserver::unlock();
+     }
+ }
+ 
+-
+ void SessionManagerClient::open()
+ {
+ 	static SmcCallbacks aCallbacks;
+@@ -505,12 +518,12 @@ bool SessionManagerClient::queryInteract
+     return bRet;
+ }
+ 
+-void SessionManagerClient::interactionDone()
++void SessionManagerClient::interactionDone( bool bCancelShutdown )
+ {
+     if( aSmcConnection )
+     {
+         ICEConnectionObserver::lock();
+-        SmcInteractDone( aSmcConnection, False );
++        SmcInteractDone( aSmcConnection, bCancelShutdown );
+         ICEConnectionObserver::unlock();
+     }
+ }
+diff -rup offapi/com/sun/star/frame/XSessionManagerClient.idl offapi/com/sun/star/frame/XSessionManagerClient.idl
+--- offapi/com/sun/star/frame/XSessionManagerClient.idl	2005-09-08 03:25:36.000000000 +0200
++++ offapi/com/sun/star/frame/XSessionManagerClient.idl	2006-02-20 17:09:58.000000000 +0100
+@@ -88,7 +88,7 @@ module com {  module sun {  module star 
+ 
+         @see XSessionManagerListener
+         */
+-        [oneway] void interactionDone( [in] XSessionManagerListener xListener );
++        [oneway] void interactionDone( [in] XSessionManagerListener xListener, [in] boolean bCancelShutdown );
+ 
+         /** saveDone signals that a listener has processed a save request
+ 
+@@ -98,14 +98,6 @@ module com {  module sun {  module star 
+         @see XSessionManagerListener
+         */
+         [oneway] void saveDone( [in] XSessionManagerListener xListener );
+-
+-        /** Call cancelShutdown to try to cancel a desktop shutdown in progress
+-
+-        @returns
+-        <TRUE/> if shutdown was canceled,
+-        <FALSE/> else.
+-        */
+-        boolean cancelShutdown();
+     };
+ 
+ }; }; }; };
+diff -rup framework-m188/inc/services/sessionlistener.hxx framework/inc/services/sessionlistener.hxx
+--- framework-m188/inc/services/sessionlistener.hxx	2006-10-31 13:13:27.000000000 +0100
++++ framework/inc/services/sessionlistener.hxx	2006-10-31 18:14:09.000000000 +0100
+@@ -161,6 +161,10 @@ class SessionListener :   // interfaces
+ 
+         css::uno::Reference< css::frame::XSessionManagerClient > m_rSessionManager;
+ 
++        void _requestInteraction();
++        void _finishInteraction( sal_Bool bCancelShutdown );
++        void _saveAutorecovery( sal_Bool bSessionSave );
++
+         // restore handling
+         sal_Bool m_bRestored;
+  
+diff -rup framework-m188/source/services/sessionlistener.cxx framework/source/services/sessionlistener.cxx
+--- framework-m188/source/services/sessionlistener.cxx	2006-10-31 13:13:29.000000000 +0100
++++ framework/source/services/sessionlistener.cxx	2006-11-01 13:08:26.000000000 +0100
+@@ -249,38 +249,50 @@ sal_Bool SAL_CALL SessionListener::doRes
+     return m_bRestored;
+ }
+ 
++void SessionListener::_saveAutorecovery( sal_Bool bSessionSave )
++{
++	sal_Bool bDispatched = sal_False;
++	ResetableGuard aGuard(m_aLock);    
++	try 
++		{
++                        // ON session save
++			// xd create SERVICENAME_AUTORECOVERY -> XDispatch
++			// xd->dispatch("vnd.sun.star.autorecovery:/doSessionSave, async=true
++			// on stop event m_rSessionManager->saveDone(this);
++                        // ON autosave ( bSessionSave == false)
++			// xd->dispatch("vnd.sun.star.autorecovery:/doAutoSave, async=false
++
++			css::uno::Reference< XDispatch > xDispatch(m_xSMGR->createInstance(SERVICENAME_AUTORECOVERY), UNO_QUERY_THROW);
++			css::uno::Reference< XURLTransformer > xURLTransformer(m_xSMGR->createInstance(SERVICENAME_URLTRANSFORMER), UNO_QUERY_THROW);
++			URL aURL;
++			aURL.Complete = OUString::createFromAscii(bSessionSave
++                                                                  ? "vnd.sun.star.autorecovery:/doSessionSave"
++                                                                  : "vnd.sun.star.autorecovery:/doAutoSave");
++			xURLTransformer->parseStrict(aURL);
++                        if( bSessionSave )
++                            xDispatch->addStatusListener(this, aURL);
++			Sequence< PropertyValue > args(1);
++			args[0] = PropertyValue(OUString::createFromAscii("DispatchAsynchron"),-1,makeAny(bSessionSave),PropertyState_DIRECT_VALUE);
++			xDispatch->dispatch(aURL, args);
++			bDispatched = sal_True;
++			// on stop event set call m_rSessionManager->saveDone(this);            
++		} catch (com::sun::star::uno::Exception& e) {
++			OString aMsg = OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8);
++			OSL_ENSURE(sal_False, aMsg.getStr());
++			// save failed, but tell manager to go on if we havent yet dispatched the request
++			if (m_rSessionManager.is() && !bDispatched && bSessionSave)
++				m_rSessionManager->saveDone(this);
++		}
++}
+ 
+-void SAL_CALL SessionListener::doSave( sal_Bool bShutdown, sal_Bool /*bCancelable*/ )
++void SAL_CALL SessionListener::doSave( sal_Bool bShutdown, sal_Bool bCancelable )
+     throw (RuntimeException)
+ {
+     if (bShutdown)
+     {
+-        sal_Bool bDispatched = sal_False;
+-        ResetableGuard aGuard(m_aLock);    
+-        try 
+-        {
+-            // xd create SERVICENAME_AUTORECOVERY -> XDispatch
+-            // xd->dispatch("vnd.sun.star.autorecovery:/doSessionSave, async=true
+-            // on stop event m_rSessionManager->saveDone(this);
+-
+-            css::uno::Reference< XDispatch > xDispatch(m_xSMGR->createInstance(SERVICENAME_AUTORECOVERY), UNO_QUERY_THROW);
+-            css::uno::Reference< XURLTransformer > xURLTransformer(m_xSMGR->createInstance(SERVICENAME_URLTRANSFORMER), UNO_QUERY_THROW);
+-            URL aURL;
+-            aURL.Complete = OUString::createFromAscii("vnd.sun.star.autorecovery:/doSessionSave");
+-            xURLTransformer->parseStrict(aURL);
+-            xDispatch->addStatusListener(this, aURL);
+-            Sequence< PropertyValue > args(1);
+-            args[0] = PropertyValue(OUString::createFromAscii("DispatchAsynchron"),-1,makeAny(sal_True),PropertyState_DIRECT_VALUE);
+-            xDispatch->dispatch(aURL, args);
+-            bDispatched = sal_True;
+-            // on stop event set call m_rSessionManager->saveDone(this);            
+-        } catch (com::sun::star::uno::Exception& e) {
+-            OString aMsg = OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8);
+-            OSL_ENSURE(sal_False, aMsg.getStr());
+-            // save failed, but tell manager to go on if we havent yet dispatched the request
+-            if (m_rSessionManager.is() && !bDispatched)
+-                m_rSessionManager->saveDone(this);
+-        }
++        _saveAutorecovery( !bCancelable );
++        if (bCancelable)
++            _requestInteraction();
+     }
+     // we don't have anything to do so tell the session manager we're done
+     else if( m_rSessionManager.is() )
+@@ -289,12 +301,32 @@ void SAL_CALL SessionListener::doSave( s
+ 
+    
+ 
+-void SAL_CALL SessionListener::approveInteraction( sal_Bool /*bInteractionGranted*/ )
++void SAL_CALL SessionListener::approveInteraction( sal_Bool bInteractionGranted )
+     throw (RuntimeException)
+-{}
++{
++	if( bInteractionGranted ) {
++		bool bExit = GetpApp()->QueryExit();
++
++		if( m_rSessionManager.is() )
++			m_rSessionManager->saveDone( this );
++    
++		_finishInteraction( !bExit );
++	} else
++		_saveAutorecovery( sal_True );
++}
+ 
+ void SessionListener::shutdownCanceled()
+     throw (RuntimeException)
+ {}
+ 
++void SessionListener::_requestInteraction()
++{
++    m_rSessionManager->queryInteraction(Reference<XSessionManagerListener>(this));
++}
++  
++void SessionListener::_finishInteraction( sal_Bool bCancelShutdown )
++{
++    m_rSessionManager->interactionDone(Reference< XSessionManagerListener >(this), bCancelShutdown );
++}
++
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/writerperfect-testing.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/writerperfect-testing.diff
@@ -0,0 +1,4117 @@
+--- writerperfect/source/filter/DocumentCollector.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/DocumentCollector.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -39,6 +39,8 @@
+ 
+ #include "DocumentCollector.hxx"
+ #include "DocumentElement.hxx"
++#include "DocumentHandler.hxx"
++#include "InternalHandler.hxx"
+ #include "TextRunStyle.hxx"
+ #include "FontStyle.hxx"
+ #include "ListStyle.hxx"
+@@ -47,6 +49,7 @@
+ #include "TableStyle.hxx"
+ #include "FilterInternal.hxx"
+ #include "WriterProperties.hxx"
++#include "OdgExporter.hxx"
+ 
+ _WriterDocumentState::_WriterDocumentState() :
+ 	mbFirstElement(true),
+@@ -54,27 +57,40 @@
+ 	mbListElementOpenedAtCurrentLevel(false),
+ 	mbTableCellOpened(false),
+ 	mbHeaderRow(false),
+-	mbInNote(false)
++	mbInNote(false),
++	mbInTextBox(false),
++	mbInFrame(false)
+ {
+ }
+ 
+-DocumentCollector::DocumentCollector(WPSInputStream *pInput, DocumentHandler *pHandler) :
+-        mpInput(pInput),
+-        mpHandler(pHandler),
++_WriterListState::_WriterListState() :
++	mpCurrentListStyle(NULL),
++	miCurrentListLevel(0),
++	miLastListLevel(0),
++	miLastListNumber(0),
++	mbListContinueNumbering(false),
++	mbListElementParagraphOpened(false),
++	mbListElementOpened()
++{
++}
++
++DocumentCollector::DocumentCollector(WPXInputStream *pInput, DocumentHandlerInterface *pHandler) :
++	mpInput(pInput),
++	mpHandler(pHandler),
+ 	mbUsed(false),
++	mWriterDocumentStates(),
++	mWriterListStates(),
+ 	mfSectionSpaceAfter(0.0f),
+ 	miNumListStyles(0),
+ 	mpCurrentContentElements(&mBodyElements),
+ 	mpCurrentPageSpan(NULL),
+ 	miNumPageStyles(0),
+-	mpCurrentListStyle(NULL),
+-	miCurrentListLevel(0),
+-	miLastListLevel(0),
+-	miLastListNumber(0),
+-	mbListContinueNumbering(false),
+-	mbListElementOpened(false),
+-	mbListElementParagraphOpened(false)
++	miObjectNumber(0),
++	mbIsFlatXML(true),
++	mpPassword(NULL)
+ {
++	mWriterDocumentStates.push(WriterDocumentState());
++	mWriterListStates.push(WriterListState());
+ }
+ 
+ DocumentCollector::~DocumentCollector()
+@@ -91,18 +107,18 @@
+ 	mbUsed = true;
+ 
+ 	// parse & write
+-        // WLACH_REFACTORING: Remove these args..
+  	if (!parseSourceDocument(*mpInput))
+ 		return false;
+ 	if (!_writeTargetDocument(mpHandler))
+ 		return false;
+ 
++
+  	// clean up the mess we made
+  	WRITER_DEBUG_MSG(("WriterWordPerfect: Cleaning up our mess..\n"));
+ 
+ 	WRITER_DEBUG_MSG(("Destroying the body elements\n"));
+ 	for (std::vector<DocumentElement *>::iterator iterBody = mBodyElements.begin(); iterBody != mBodyElements.end(); iterBody++) {
+-		delete((*iterBody));
++		delete (*iterBody);
+ 		(*iterBody) = NULL;
+ 	}
+ 
+@@ -115,90 +131,113 @@
+ 
+ 	WRITER_DEBUG_MSG(("Destroying the rest of the styles elements\n"));
+ 	for (std::map<WPXString, ParagraphStyle *, ltstr>::iterator iterTextStyle = mTextStyleHash.begin(); iterTextStyle != mTextStyleHash.end(); iterTextStyle++) {
+-		delete iterTextStyle->second;
++		delete (iterTextStyle->second);
+ 	}
+ 	for (std::map<WPXString, SpanStyle *, ltstr>::iterator iterSpanStyle = mSpanStyleHash.begin(); iterSpanStyle != mSpanStyleHash.end(); iterSpanStyle++) {
+-		delete iterSpanStyle->second;
++		delete(iterSpanStyle->second);
+ 	}
+ 
+ 	for (std::map<WPXString, FontStyle *, ltstr>::iterator iterFont = mFontHash.begin(); iterFont != mFontHash.end(); iterFont++) {
+-		delete iterFont->second;
++		delete(iterFont->second);
+ 	}
+ 
+ 	for (std::vector<ListStyle *>::iterator iterListStyles = mListStyles.begin(); iterListStyles != mListStyles.end(); iterListStyles++) {
+-		delete (*iterListStyles);
++		delete(*iterListStyles);
+ 	}
+ 	for (std::vector<SectionStyle *>::iterator iterSectionStyles = mSectionStyles.begin(); iterSectionStyles != mSectionStyles.end(); iterSectionStyles++) {
+-		delete (*iterSectionStyles);
++		delete(*iterSectionStyles);
+ 	}
+ 	for (std::vector<TableStyle *>::iterator iterTableStyles = mTableStyles.begin(); iterTableStyles != mTableStyles.end(); iterTableStyles++) {
+-		delete (*iterTableStyles);
++		delete((*iterTableStyles));
+ 	}
+ 
+ 	for (std::vector<PageSpan *>::iterator iterPageSpans = mPageSpans.begin(); iterPageSpans != mPageSpans.end(); iterPageSpans++) {
+-		delete (*iterPageSpans);
++		delete(*iterPageSpans);
++	}
++	for (std::vector<DocumentElement *>::iterator iterFrameStyles = mFrameStyles.begin(); iterFrameStyles != mFrameStyles.end(); iterFrameStyles++) {
++		delete(*iterFrameStyles);
++	}
++	for (std::vector<DocumentElement *>::iterator iterFrameAutomaticStyles = mFrameAutomaticStyles.begin();
++		iterFrameAutomaticStyles != mFrameAutomaticStyles.end(); iterFrameAutomaticStyles++) {
++		delete(*iterFrameAutomaticStyles);
++	}
++	for (std::vector<DocumentElement *>::iterator iterMetaData = mMetaData.begin(); iterMetaData != mMetaData.end(); iterMetaData++) {
++		delete(*iterMetaData);
+ 	}
+ 
+  	return true;
+ }
+ 
+-void DocumentCollector::_writeDefaultStyles(DocumentHandler *pHandler)
++void DocumentCollector::_writeDefaultStyles(DocumentHandlerInterface *pHandler)
+ {
+-	TagOpenElement stylesOpenElement("office:styles");
+-	stylesOpenElement.write(pHandler);
++	TagOpenElement("office:styles").write(pHandler);
+ 
+ 	TagOpenElement defaultParagraphStyleOpenElement("style:default-style");
+ 	defaultParagraphStyleOpenElement.addAttribute("style:family", "paragraph");
+ 	defaultParagraphStyleOpenElement.write(pHandler);
+ 
+-	TagOpenElement defaultParagraphStylePropertiesOpenElement("style:properties");
+-	defaultParagraphStylePropertiesOpenElement.addAttribute("style:family", "paragraph");
+-	defaultParagraphStylePropertiesOpenElement.addAttribute("style:tab-stop-distance", "0.5inch");
++	TagOpenElement defaultParagraphStylePropertiesOpenElement("style:paragraph-properties");
++	defaultParagraphStylePropertiesOpenElement.addAttribute("style:tab-stop-distance", "0.5in");
+ 	defaultParagraphStylePropertiesOpenElement.write(pHandler);
+-	TagCloseElement defaultParagraphStylePropertiesCloseElement("style:properties");
++	TagCloseElement defaultParagraphStylePropertiesCloseElement("style:paragraph-properties");
+ 	defaultParagraphStylePropertiesCloseElement.write(pHandler);
+ 
+-	TagCloseElement defaultParagraphStyleCloseElement("style:default-style");
+-	defaultParagraphStyleCloseElement.write(pHandler);
++	pHandler->endElement("style:default-style");
+ 
+-	TagOpenElement standardStyleOpenElement("style:style");
+-        standardStyleOpenElement.addAttribute("style:name", "Standard");
+-        standardStyleOpenElement.addAttribute("style:family", "paragraph");
+-        standardStyleOpenElement.addAttribute("style:class", "text");
+-        standardStyleOpenElement.write(pHandler);
+-        TagCloseElement standardStyleCloseElement("style:style");
+-        standardStyleCloseElement.write(pHandler);
+-
+-        TagOpenElement textBodyStyleOpenElement("style:style");
+-        textBodyStyleOpenElement.addAttribute("style:name", "Text Body");
+-        textBodyStyleOpenElement.addAttribute("style:family", "paragraph");
+-        textBodyStyleOpenElement.addAttribute("style:parent-style-name", "Standard");
+-        textBodyStyleOpenElement.addAttribute("style:class", "text");
+-        textBodyStyleOpenElement.write(pHandler);
+-        TagCloseElement textBodyStyleCloseElement("style:style");
+-        textBodyStyleCloseElement.write(pHandler);
+-
+-        TagOpenElement tableContentsStyleOpenElement("style:style");
+-        tableContentsStyleOpenElement.addAttribute("style:name", "Table Contents");
+-        tableContentsStyleOpenElement.addAttribute("style:family", "paragraph");
+-        tableContentsStyleOpenElement.addAttribute("style:parent-style-name", "Text Body");
+-        tableContentsStyleOpenElement.addAttribute("style:class", "extra");
+-        tableContentsStyleOpenElement.write(pHandler);
+-        TagCloseElement tableContentsStyleCloseElement("style:style");
+-        tableContentsStyleCloseElement.write(pHandler);
+-
+-        TagOpenElement tableHeadingStyleOpenElement("style:style");
+-        tableHeadingStyleOpenElement.addAttribute("style:name", "Table Heading");
+-        tableHeadingStyleOpenElement.addAttribute("style:family", "paragraph");
+-        tableHeadingStyleOpenElement.addAttribute("style:parent-style-name", "Table Contents");
+-        tableHeadingStyleOpenElement.addAttribute("style:class", "extra");
+-        tableHeadingStyleOpenElement.write(pHandler);
+-        TagCloseElement tableHeadingStyleCloseElement("style:style");
+-        tableHeadingStyleCloseElement.write(pHandler);
++	TagOpenElement defaultTableRowStyleOpenElement("style:default-style");
++	defaultTableRowStyleOpenElement.addAttribute("style:family", "table-row");
++	defaultTableRowStyleOpenElement.write(pHandler);
++
++	TagOpenElement defaultTableRowPropertiesOpenElement("style:table-row-properties");
++	defaultTableRowPropertiesOpenElement.addAttribute("fo:keep-together", "auto");
++	defaultTableRowPropertiesOpenElement.write(pHandler);
++
++	pHandler->endElement("style:table-row-properties");
++	pHandler->endElement("style:default-style");
+ 
+-	TagCloseElement stylesCloseElement("office:styles");
+-	stylesCloseElement.write(pHandler);
++	TagOpenElement standardStyleOpenElement("style:style");
++	standardStyleOpenElement.addAttribute("style:name", "Standard");
++	standardStyleOpenElement.addAttribute("style:family", "paragraph");
++	standardStyleOpenElement.addAttribute("style:class", "text");
++	standardStyleOpenElement.write(pHandler);
++
++	pHandler->endElement("style:style");
++
++	TagOpenElement textBodyStyleOpenElement("style:style");
++	textBodyStyleOpenElement.addAttribute("style:name", "Text_Body");
++	textBodyStyleOpenElement.addAttribute("style:display-name", "Text Body");
++	textBodyStyleOpenElement.addAttribute("style:family", "paragraph");
++	textBodyStyleOpenElement.addAttribute("style:parent-style-name", "Standard");
++	textBodyStyleOpenElement.addAttribute("style:class", "text");
++	textBodyStyleOpenElement.write(pHandler);
++
++	pHandler->endElement("style:style");
++
++	TagOpenElement tableContentsStyleOpenElement("style:style");
++	tableContentsStyleOpenElement.addAttribute("style:name", "Table_Contents");
++	tableContentsStyleOpenElement.addAttribute("style:display-name", "Table Contents");
++	tableContentsStyleOpenElement.addAttribute("style:family", "paragraph");
++	tableContentsStyleOpenElement.addAttribute("style:parent-style-name", "Text_Body");
++	tableContentsStyleOpenElement.addAttribute("style:class", "extra");
++	tableContentsStyleOpenElement.write(pHandler);
++
++	pHandler->endElement("style:style");
++
++	TagOpenElement tableHeadingStyleOpenElement("style:style");
++	tableHeadingStyleOpenElement.addAttribute("style:name", "Table_Heading");
++	tableHeadingStyleOpenElement.addAttribute("style:display-name", "Table Heading");
++	tableHeadingStyleOpenElement.addAttribute("style:family", "paragraph");
++	tableHeadingStyleOpenElement.addAttribute("style:parent-style-name", "Table_Contents");
++	tableHeadingStyleOpenElement.addAttribute("style:class", "extra");
++	tableHeadingStyleOpenElement.write(pHandler);
++
++	pHandler->endElement("style:style");
++
++	for (std::vector<DocumentElement *>::const_iterator iter = mFrameStyles.begin();
++		iter != mFrameStyles.end(); iter++)
++		(*iter)->write(pHandler);
+ 
++	pHandler->endElement("office:styles");
+ }
+ 
+ // writes everything up to the automatic styles declarations..
+@@ -206,11 +245,9 @@
+ {
+ }
+ 
+-void DocumentCollector::_writeMasterPages(DocumentHandler *pHandler)
++void DocumentCollector::_writeMasterPages(DocumentHandlerInterface *pHandler)
+ {
+-        WPXPropertyList xBlankAttrList;
+-
+-	pHandler->startElement("office:master-styles", xBlankAttrList);
++	TagOpenElement("office:master-styles").write(mpHandler);
+ 	int pageNumber = 1;
+ 	for (unsigned int i=0; i<mPageSpans.size(); i++)
+ 	{
+@@ -222,99 +259,118 @@
+ 	pHandler->endElement("office:master-styles");
+ }
+ 
+-void DocumentCollector::_writePageMasters(DocumentHandler *pHandler)
++void DocumentCollector::_writePageLayouts(DocumentHandlerInterface *pHandler)
+ {
+ 	for (unsigned int i=0; i<mPageSpans.size(); i++)
+ 	{
+-		mPageSpans[i]->writePageMaster(i, pHandler);
++		mPageSpans[i]->writePageLayout(i, pHandler);
+ 	}
+ }
+ 
+-bool DocumentCollector::_writeTargetDocument(DocumentHandler *pHandler)
+-{        
++bool DocumentCollector::_writeTargetDocument(DocumentHandlerInterface *pHandler)
++{
+ 	WRITER_DEBUG_MSG(("WriterWordPerfect: Document Body: Printing out the header stuff..\n"));
+-	WPXPropertyList xBlankAttrList;
+ 
+ 	WRITER_DEBUG_MSG(("WriterWordPerfect: Document Body: Start Document\n"));
+ 	mpHandler->startDocument();
+ 
+ 	WRITER_DEBUG_MSG(("WriterWordPerfect: Document Body: preamble\n"));
+-        WPXPropertyList docContentPropList;
+-	docContentPropList.insert("xmlns:office", "http://openoffice.org/2000/office");
+-	docContentPropList.insert("xmlns:style", "http://openoffice.org/2000/style");
+-	docContentPropList.insert("xmlns:text", "http://openoffice.org/2000/text");
+-	docContentPropList.insert("xmlns:table", "http://openoffice.org/2000/table");
+-	docContentPropList.insert("xmlns:draw", "http://openoffice.org/2000/draw");
+-	docContentPropList.insert("xmlns:fo", "http://www.w3.org/1999/XSL/Format");
++	WPXPropertyList docContentPropList;
++	docContentPropList.insert("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
++	docContentPropList.insert("xmlns:meta", "urn:oasis:names:tc:opendocument:xmlns:meta:1.0");
++	docContentPropList.insert("xmlns:dc", "http://purl.org/dc/elements/1.1/");
++	docContentPropList.insert("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0");
++	docContentPropList.insert("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
++	docContentPropList.insert("xmlns:table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0");
++	docContentPropList.insert("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
++	docContentPropList.insert("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
+ 	docContentPropList.insert("xmlns:xlink", "http://www.w3.org/1999/xlink");
+ 	docContentPropList.insert("xmlns:number", "http://openoffice.org/2000/datastyle");
+-	docContentPropList.insert("xmlns:svg", "http://www.w3.org/2000/svg");
+-	docContentPropList.insert("xmlns:chart", "http://openoffice.org/2000/chart");
+-	docContentPropList.insert("xmlns:dr3d", "http://openoffice.org/2000/dr3d");
++	docContentPropList.insert("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
++	docContentPropList.insert("xmlns:chart", "urn:oasis:names:tc:opendocument:xmlns:chart:1.0");
++	docContentPropList.insert("xmlns:dr3d", "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0");
+ 	docContentPropList.insert("xmlns:math", "http://www.w3.org/1998/Math/MathML");
+-	docContentPropList.insert("xmlns:form", "http://openoffice.org/2000/form");
+-	docContentPropList.insert("xmlns:script", "http://openoffice.org/2000/script");
+-	docContentPropList.insert("office:class", "text");
++	docContentPropList.insert("xmlns:form", "urn:oasis:names:tc:opendocument:xmlns:form:1.0");
++	docContentPropList.insert("xmlns:script", "urn:oasis:names:tc:opendocument:xmlns:script:1.0");
++	docContentPropList.insert("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
+ 	docContentPropList.insert("office:version", "1.0");
+-        mpHandler->startElement("office:document-content", docContentPropList);
++	if (mbIsFlatXML)
++	{
++		docContentPropList.insert("office:mimetype", "application/vnd.oasis.opendocument.text");
++		mpHandler->startElement("office:document", docContentPropList);
++	}
++	else
++		mpHandler->startElement("office:document-content", docContentPropList);
++
++	// write out the metadata
++	TagOpenElement("office:meta").write(mpHandler);
++	for (std::vector<DocumentElement *>::const_iterator iterMetaData = mMetaData.begin(); iterMetaData != mMetaData.end(); iterMetaData++) {
++		(*iterMetaData)->write(mpHandler);
++	}
++	mpHandler->endElement("office:meta");
+ 
+ 	// write out the font styles
+-	mpHandler->startElement("office:font-decls", xBlankAttrList);
++	TagOpenElement("office:font-face-decls").write(mpHandler);
+ 	for (std::map<WPXString, FontStyle *, ltstr>::iterator iterFont = mFontHash.begin(); iterFont != mFontHash.end(); iterFont++) {
+ 		iterFont->second->write(mpHandler);
+ 	}
+-	TagOpenElement symbolFontOpen("style:font-decl");
++	TagOpenElement symbolFontOpen("style:font-face");
+ 	symbolFontOpen.addAttribute("style:name", "StarSymbol");
+-	symbolFontOpen.addAttribute("fo:font-family", "StarSymbol");
++	symbolFontOpen.addAttribute("svg:font-family", "StarSymbol");
+ 	symbolFontOpen.addAttribute("style:font-charset", "x-symbol");
+ 	symbolFontOpen.write(mpHandler);
+-        mpHandler->endElement("style:font-decl");
+-
+-	mpHandler->endElement("office:font-decls");
++	mpHandler->endElement("style:font-face");
+ 
++	mpHandler->endElement("office:font-face-decls");
+ 
+  	WRITER_DEBUG_MSG(("WriterWordPerfect: Document Body: Writing out the styles..\n"));
+ 
+ 	// write default styles
+ 	_writeDefaultStyles(mpHandler);
+ 
+-	mpHandler->startElement("office:automatic-styles", xBlankAttrList);
++	TagOpenElement("office:automatic-styles").write(mpHandler);
+ 
+-	for (std::map<WPXString, ParagraphStyle *, ltstr>::iterator iterTextStyle = mTextStyleHash.begin(); 
+-             iterTextStyle != mTextStyleHash.end(); iterTextStyle++) 
+-        {
++	for (std::vector<DocumentElement *>::const_iterator iterFrameAutomaticStyles = mFrameAutomaticStyles.begin();
++		iterFrameAutomaticStyles != mFrameAutomaticStyles.end(); iterFrameAutomaticStyles++)
++	{
++		(*iterFrameAutomaticStyles)->write(pHandler);
++	}
++
++	for (std::map<WPXString, ParagraphStyle *, ltstr>::const_iterator iterTextStyle = mTextStyleHash.begin(); 
++	     iterTextStyle != mTextStyleHash.end(); iterTextStyle++) 
++	{
+ 		// writing out the paragraph styles
+ 		if (strcmp((iterTextStyle->second)->getName().cstr(), "Standard")) 
+-                {
++		{
+ 			// don't write standard paragraph "no styles" style
+ 			(iterTextStyle->second)->write(pHandler);
+ 		}
+ 	}
+ 
+-        // span styles..
+-	for (std::map<WPXString, SpanStyle *, ltstr>::iterator iterSpanStyle = mSpanStyleHash.begin(); 
+-             iterSpanStyle != mSpanStyleHash.end(); iterSpanStyle++) 
+-        {
+-                (iterSpanStyle->second)->write(pHandler);
++	// span styles..
++	for (std::map<WPXString, SpanStyle *, ltstr>::const_iterator iterSpanStyle = mSpanStyleHash.begin(); 
++	     iterSpanStyle != mSpanStyleHash.end(); iterSpanStyle++) 
++	{
++		(iterSpanStyle->second)->write(pHandler);
+ 	}
+ 
+  	// writing out the sections styles
+-	for (std::vector<SectionStyle *>::iterator iterSectionStyles = mSectionStyles.begin(); iterSectionStyles != mSectionStyles.end(); iterSectionStyles++) {
++	for (std::vector<SectionStyle *>::const_iterator iterSectionStyles = mSectionStyles.begin(); iterSectionStyles != mSectionStyles.end(); iterSectionStyles++) {
+ 		(*iterSectionStyles)->write(pHandler);
+ 	}
+ 
+ 	// writing out the lists styles
+-	for (std::vector<ListStyle *>::iterator iterListStyles = mListStyles.begin(); iterListStyles != mListStyles.end(); iterListStyles++) {
++	for (std::vector<ListStyle *>::const_iterator iterListStyles = mListStyles.begin(); iterListStyles != mListStyles.end(); iterListStyles++) {
+ 		(*iterListStyles)->write(pHandler);
+ 	}
+ 
+  	// writing out the table styles
+-	for (std::vector<TableStyle *>::iterator iterTableStyles = mTableStyles.begin(); iterTableStyles != mTableStyles.end(); iterTableStyles++) {
++	for (std::vector<TableStyle *>::const_iterator iterTableStyles = mTableStyles.begin(); iterTableStyles != mTableStyles.end(); iterTableStyles++) {
+ 		(*iterTableStyles)->write(pHandler);
+ 	}
+ 
+ 	// writing out the page masters
+-	_writePageMasters(pHandler);
++	_writePageLayouts(pHandler);
+ 
+ 
+ 	pHandler->endElement("office:automatic-styles");
+@@ -323,15 +379,20 @@
+ 
+  	WRITER_DEBUG_MSG(("WriterWordPerfect: Document Body: Writing out the document..\n"));
+  	// writing out the document
+-	pHandler->startElement("office:body", xBlankAttrList);
++	TagOpenElement("office:body").write(mpHandler);
++	TagOpenElement("office:text").write(mpHandler);
+ 
+-	for (std::vector<DocumentElement *>::iterator iterBodyElements = mBodyElements.begin(); iterBodyElements != mBodyElements.end(); iterBodyElements++) {
++	for (std::vector<DocumentElement *>::const_iterator iterBodyElements = mBodyElements.begin(); iterBodyElements != mBodyElements.end(); iterBodyElements++) {
+ 		(*iterBodyElements)->write(pHandler);
+ 	}
+  	WRITER_DEBUG_MSG(("WriterWordPerfect: Document Body: Finished writing all doc els..\n"));
+ 
++	pHandler->endElement("office:text");
+ 	pHandler->endElement("office:body");
+-	pHandler->endElement("office:document-content");
++	if (mbIsFlatXML)
++		pHandler->endElement("office:document");
++	else
++		pHandler->endElement("office:document-content");
+ 
+ 	pHandler->endDocument();
+ 
+@@ -341,32 +402,32 @@
+ 
+ WPXString propListToStyleKey(const WPXPropertyList & xPropList)
+ {
+-        WPXString sKey;
+-        WPXPropertyList::Iter i(xPropList);
+-        for (i.rewind(); i.next(); )
+-        {
+-                WPXString sProp;
+-                sProp.sprintf("[%s:%s]", i.key(), i()->getStr().cstr());
+-                sKey.append(sProp);
+-        }
++	WPXString sKey;
++	WPXPropertyList::Iter i(xPropList);
++	for (i.rewind(); i.next(); )
++	{
++		WPXString sProp;
++		sProp.sprintf("[%s:%s]", i.key(), i()->getStr().cstr());
++		sKey.append(sProp);
++	}
+ 
+-        return sKey;
++	return sKey;
+ }
+ 
+ WPXString getParagraphStyleKey(const WPXPropertyList & xPropList, const WPXPropertyListVector & xTabStops)
+ {
+-        WPXString sKey = propListToStyleKey(xPropList);
+-        
+-        WPXString sTabStops;
+-        sTabStops.sprintf("[num-tab-stops:%i]", xTabStops.count());
+-        WPXPropertyListVector::Iter i(xTabStops);
+-        for (i.rewind(); i.next();)
+-        {
+-                sTabStops.append(propListToStyleKey(i()));
+-        }
+-        sKey.append(sTabStops);
++	WPXString sKey = propListToStyleKey(xPropList);
++
++	WPXString sTabStops;
++	sTabStops.sprintf("[num-tab-stops:%i]", xTabStops.count());
++	WPXPropertyListVector::Iter i(xTabStops);
++	for (i.rewind(); i.next();)
++	{
++		sTabStops.append(propListToStyleKey(i()));
++	}
++	sKey.append(sTabStops);
+ 
+-        return sKey;
++	return sKey;
+ }
+ 
+ // _allocateFontName: add a (potentially mapped) font style to the hash if it's not already there, do nothing otherwise
+@@ -379,11 +440,29 @@
+ 	}
+ }
+ 
++void DocumentCollector::setDocumentMetaData(const WPXPropertyList &propList)
++{
++        WPXPropertyList::Iter i(propList);
++        for (i.rewind(); i.next(); )
++        {
++                // filter out libwpd elements
++                if (strncmp(i.key(), "libwpd", 6) != 0 && strncmp(i.key(), "dcterms", 7) != 0)
++		{
++			mMetaData.push_back(new TagOpenElement(i.key()));
++			WPXString sStringValue(i()->getStr(), true);
++			mMetaData.push_back(new CharDataElement(sStringValue.cstr()));
++			mMetaData.push_back(new TagCloseElement(i.key()));
++		}
++        }
++
++}
++
+ void DocumentCollector::openPageSpan(const WPXPropertyList &propList)
+ {
+ 	PageSpan *pPageSpan = new PageSpan(propList);
+ 	mPageSpans.push_back(pPageSpan);
+ 	mpCurrentPageSpan = pPageSpan;
++	miNumPageStyles++;
+ }
+ 
+ void DocumentCollector::openHeader(const WPXPropertyList &propList)
+@@ -391,9 +470,9 @@
+ 	std::vector<DocumentElement *> * pHeaderFooterContentElements = new std::vector<DocumentElement *>;
+ 
+ 	if (propList["libwpd:occurence"]->getStr() == "even")
+-                mpCurrentPageSpan->setHeaderLeftContent(pHeaderFooterContentElements);
+-        else
+-                mpCurrentPageSpan->setHeaderContent(pHeaderFooterContentElements);
++		mpCurrentPageSpan->setHeaderLeftContent(pHeaderFooterContentElements);
++	else
++		mpCurrentPageSpan->setHeaderContent(pHeaderFooterContentElements);
+ 
+ 	mpCurrentContentElements = pHeaderFooterContentElements;
+ }
+@@ -408,9 +487,9 @@
+ 	std::vector<DocumentElement *> * pHeaderFooterContentElements = new std::vector<DocumentElement *>;
+ 
+ 	if (propList["libwpd:occurence"]->getStr() == "even")
+-                mpCurrentPageSpan->setFooterLeftContent(pHeaderFooterContentElements);
+-        else
+-                mpCurrentPageSpan->setFooterContent(pHeaderFooterContentElements);
++		mpCurrentPageSpan->setFooterLeftContent(pHeaderFooterContentElements);
++	else
++		mpCurrentPageSpan->setFooterContent(pHeaderFooterContentElements);
+ 
+ 	mpCurrentContentElements = pHeaderFooterContentElements;
+ }
+@@ -422,7 +501,7 @@
+ 
+ void DocumentCollector::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns)
+ {
+-        int iNumColumns = columns.count();
++	int iNumColumns = columns.count();
+ 	float fSectionMarginLeft = 0.0f;
+ 	float fSectionMarginRight = 0.0f;
+ 	if (propList["fo:margin-left"])
+@@ -432,38 +511,33 @@
+ 
+ 	if (iNumColumns > 1 || fSectionMarginLeft != 0 || fSectionMarginRight != 0)
+ 	{
+-		mfSectionSpaceAfter = propList["fo:margin-bottom"]->getFloat();
++		if (propList["fo:margin-bottom"])
++			mfSectionSpaceAfter = propList["fo:margin-bottom"]->getFloat();
++		else if (propList["libwpd:margin-bottom"])
++			mfSectionSpaceAfter =  propList["libwpd:margin-bottom"]->getFloat();
++
+ 		WPXString sSectionName;
+ 		sSectionName.sprintf("Section%i", mSectionStyles.size());
+-		
++
+ 		SectionStyle *pSectionStyle = new SectionStyle(propList, columns, sSectionName.cstr());
+ 		mSectionStyles.push_back(pSectionStyle);
+-		
++
+ 		TagOpenElement *pSectionOpenElement = new TagOpenElement("text:section");
+ 		pSectionOpenElement->addAttribute("text:style-name", pSectionStyle->getName());
+ 		pSectionOpenElement->addAttribute("text:name", pSectionStyle->getName());
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pSectionOpenElement));
++		mpCurrentContentElements->push_back(pSectionOpenElement);
+ 	}
+ 	else
+-		mWriterDocumentState.mbInFakeSection = true;
++		mWriterDocumentStates.top().mbInFakeSection = true;
+ }
+ 
+ void DocumentCollector::closeSection()
+ {
+-	if (!mWriterDocumentState.mbInFakeSection)
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:section")));
++	if (!mWriterDocumentStates.top().mbInFakeSection)
++		mpCurrentContentElements->push_back(new TagCloseElement("text:section"));
+ 	else
+-		mWriterDocumentState.mbInFakeSection = false;
++		mWriterDocumentStates.top().mbInFakeSection = false;
+ 
+-	// open as many paragraphs as needed to simulate section space after
+-	// WLACH_REFACTORING: disable this for now..
+-	#if 0
+-	for (float f=0.0f; f<mfSectionSpaceAfter; f+=1.0f) {
+-		vector<WPXTabStop> dummyTabStops;
+-		openParagraph(WPX_PARAGRAPH_JUSTIFICATION_LEFT, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, dummyTabStops, false, false);
+-		closeParagraph();
+-	}
+-	#endif
+ 	mfSectionSpaceAfter = 0.0f;
+ }
+ 
+@@ -471,11 +545,11 @@
+ {
+ 	// FIXMENOW: What happens if we open a footnote inside a table? do we then inherit the footnote's style
+ 	// from "Table Contents"
+-	
++
+ 	WPXPropertyList *pPersistPropList = new WPXPropertyList(propList);
+ 	ParagraphStyle *pStyle = NULL;
+ 
+-	if (mWriterDocumentState.mbFirstElement && mpCurrentContentElements == &mBodyElements)
++	if (mWriterDocumentStates.top().mbFirstElement && mpCurrentContentElements == &mBodyElements)
+ 	{
+ 		// we don't have to go through the fuss of determining if the paragraph style is 
+ 		// unique in this case, because if we are the first document element, then we
+@@ -487,31 +561,35 @@
+ 		sName.sprintf("FS");
+ 
+ 		WPXString sParagraphHashKey("P|FS");
+-		pPersistPropList->insert("style:master-page-name", "Page Style 1");
+-                pStyle = new ParagraphStyle(pPersistPropList, tabStops, sName);
++		pPersistPropList->insert("style:master-page-name", "Page_Style_1");
++		pStyle = new ParagraphStyle(pPersistPropList, tabStops, sName);
+ 		mTextStyleHash[sParagraphHashKey] = pStyle;
+-		mWriterDocumentState.mbFirstElement = false;
++		mWriterDocumentStates.top().mbFirstElement = false;
+  	}
+ 	else
+ 	{
+-		if (mWriterDocumentState.mbTableCellOpened)
++//		WPXString sPageStyleName;
++//		sPageStyleName.sprintf("Page_Style_%i", miNumPageStyles);
++//		pPersistPropList->insert("style:master-page-name", sPageStyleName);
++		if (mWriterDocumentStates.top().mbTableCellOpened)
+ 		{
+-			if (mWriterDocumentState.mbHeaderRow)
+-				pPersistPropList->insert("style:parent-style-name", "Table Heading");
++			if (mWriterDocumentStates.top().mbHeaderRow)
++				pPersistPropList->insert("style:parent-style-name", "Table_Heading");
+ 			else
+-				pPersistPropList->insert("style:parent-style-name", "Table Contents");
++				pPersistPropList->insert("style:parent-style-name", "Table_Contents");
+ 		}
+ 		else
+ 			pPersistPropList->insert("style:parent-style-name", "Standard");
+ 
+-                WPXString sKey = getParagraphStyleKey(*pPersistPropList, tabStops);
++		WPXString sKey = getParagraphStyleKey(*pPersistPropList, tabStops);
+ 
+-		if (mTextStyleHash.find(sKey) == mTextStyleHash.end()) {
++		if (mTextStyleHash.find(sKey) == mTextStyleHash.end())
++		{
+ 			WPXString sName;
+ 			sName.sprintf("S%i", mTextStyleHash.size()); 
+-			
++
+ 			pStyle = new ParagraphStyle(pPersistPropList, tabStops, sName);
+-	
++
+ 			mTextStyleHash[sKey] = pStyle;
+ 		}
+ 		else
+@@ -523,56 +601,56 @@
+ 	// create a document element corresponding to the paragraph, and append it to our list of document elements
+ 	TagOpenElement *pParagraphOpenElement = new TagOpenElement("text:p");
+ 	pParagraphOpenElement->addAttribute("text:style-name", pStyle->getName());
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pParagraphOpenElement));
++	mpCurrentContentElements->push_back(pParagraphOpenElement);
+ }
+ 
+ void DocumentCollector::closeParagraph()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:p")));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:p"));
+ }
+ 
+ void DocumentCollector::openSpan(const WPXPropertyList &propList)
+ {
+-        if (propList["style:font-name"])
+-                _allocateFontName(propList["style:font-name"]->getStr());
++	if (propList["style:font-name"])
++		_allocateFontName(propList["style:font-name"]->getStr());
+ 	WPXString sSpanHashKey = propListToStyleKey(propList);
+ 	WRITER_DEBUG_MSG(("WriterWordPerfect: Span Hash Key: %s\n", sSpanHashKey.cstr()));
+ 
+ 	// Get the style
+-        WPXString sName;
++	WPXString sName;
+ 	if (mSpanStyleHash.find(sSpanHashKey) == mSpanStyleHash.end())
+-        {
++	{
+ 		// allocate a new paragraph style
+ 		sName.sprintf("Span%i", mSpanStyleHash.size());
+-		SpanStyle *pStyle = new SpanStyle(sName.cstr(), propList);                
++		SpanStyle *pStyle = new SpanStyle(sName.cstr(), propList);
+ 
+ 		mSpanStyleHash[sSpanHashKey] = pStyle;
+ 	}
+ 	else 
+-        {
++	{
+ 		sName.sprintf("%s", mSpanStyleHash.find(sSpanHashKey)->second->getName().cstr());
+ 	}
+ 
+ 	// create a document element corresponding to the paragraph, and append it to our list of document elements
+ 	TagOpenElement *pSpanOpenElement = new TagOpenElement("text:span");
+ 	pSpanOpenElement->addAttribute("text:style-name", sName.cstr());
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pSpanOpenElement));
++	mpCurrentContentElements->push_back(pSpanOpenElement);
+ }
+ 
+ void DocumentCollector::closeSpan()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:span")));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:span"));
+ }
+ 
+ void DocumentCollector::defineOrderedListLevel(const WPXPropertyList &propList)
+ {
+-        int id = 0;
+-        if (propList["libwpd:id"])
+-                id = propList["libwpd:id"]->getInt();
++	int id = 0;
++	if (propList["libwpd:id"])
++		id = propList["libwpd:id"]->getInt();
+ 
+  	OrderedListStyle *pOrderedListStyle = NULL;
+-	if (mpCurrentListStyle && mpCurrentListStyle->getListID() == id)
+-		pOrderedListStyle = static_cast<OrderedListStyle *>(mpCurrentListStyle); // FIXME: using a dynamic cast here causes oo to crash?!
++	if (mWriterListStates.top().mpCurrentListStyle && mWriterListStates.top().mpCurrentListStyle->getListID() == id)
++		pOrderedListStyle = static_cast<OrderedListStyle *>(mWriterListStates.top().mpCurrentListStyle); // FIXME: using a dynamic cast here causes oo to crash?!
+ 
+ 	// this rather appalling conditional makes sure we only start a new list (rather than continue an old
+ 	// one) if: (1) we have no prior list OR (2) the prior list is actually definitively different
+@@ -580,168 +658,174 @@
+ 	// is starting a new list at level 1 (and only level 1)
+ 	if (pOrderedListStyle == NULL || pOrderedListStyle->getListID() != id  ||
+ 	    (propList["libwpd:level"] && propList["libwpd:level"]->getInt()==1 && 
+-             (propList["text:start-value"] && (unsigned int)(propList["text:start-value"]->getInt()) != (miLastListNumber+1))))
++	     (propList["text:start-value"] && (unsigned)propList["text:start-value"]->getInt() != (mWriterListStates.top().miLastListNumber+1))))
+ 	{
+ 		WRITER_DEBUG_MSG(("Attempting to create a new ordered list style (listid: %i)\n", id));
+ 		WPXString sName;
+ 		sName.sprintf("OL%i", miNumListStyles);
+ 		miNumListStyles++;
+-		pOrderedListStyle = new OrderedListStyle(sName.cstr(), propList["libwpd:id"]->getInt());
+-		mListStyles.push_back(static_cast<ListStyle *>(pOrderedListStyle));
+-		mpCurrentListStyle = static_cast<ListStyle *>(pOrderedListStyle);
+-		mbListContinueNumbering = false;
+-		miLastListNumber = 0;
++		pOrderedListStyle = new OrderedListStyle(sName.cstr(), id);
++		mListStyles.push_back(pOrderedListStyle);
++		mWriterListStates.top().mpCurrentListStyle = pOrderedListStyle;
++		mWriterListStates.top().mbListContinueNumbering = false;
++		mWriterListStates.top().miLastListNumber = 0;
+ 	}
+ 	else
+-		mbListContinueNumbering = true;
++		mWriterListStates.top().mbListContinueNumbering = true;
+ 
+ 	// Iterate through ALL list styles with the same WordPerfect list id and define a level if it is not already defined
+ 	// This solves certain problems with lists that start and finish without reaching certain levels and then begin again
+ 	// and reach those levels. See gradguide0405_PC.wpd in the regression suite
+ 	for (std::vector<ListStyle *>::iterator iterOrderedListStyles = mListStyles.begin(); iterOrderedListStyles != mListStyles.end(); iterOrderedListStyles++)
+ 	{
+-		if ((* iterOrderedListStyles)->getListID() == propList["libwpd:id"]->getInt())
++		if ((* iterOrderedListStyles)->getListID() == id)
+ 			(* iterOrderedListStyles)->updateListLevel((propList["libwpd:level"]->getInt() - 1), propList);
+ 	}
+ }
+ 
+ void DocumentCollector::defineUnorderedListLevel(const WPXPropertyList &propList)
+ {
+-        int id = 0;
+-        if (propList["libwpd:id"])
+-                id = propList["libwpd:id"]->getInt();
++	int id = 0;
++	if (propList["libwpd:id"])
++		id = propList["libwpd:id"]->getInt();
+ 
+  	UnorderedListStyle *pUnorderedListStyle = NULL;
+-	if (mpCurrentListStyle && mpCurrentListStyle->getListID() == id)
+-		pUnorderedListStyle = static_cast<UnorderedListStyle *>(mpCurrentListStyle); // FIXME: using a dynamic cast here causes oo to crash?!
++	if (mWriterListStates.top().mpCurrentListStyle && mWriterListStates.top().mpCurrentListStyle->getListID() == id)
++		pUnorderedListStyle = static_cast<UnorderedListStyle *>(mWriterListStates.top().mpCurrentListStyle); // FIXME: using a dynamic cast here causes oo to crash?!
+ 
+ 	if (pUnorderedListStyle == NULL) {
+ 		WRITER_DEBUG_MSG(("Attempting to create a new unordered list style (listid: %i)\n", id));
+ 		WPXString sName;
+ 		sName.sprintf("UL%i", miNumListStyles);
++		miNumListStyles++;
+ 		pUnorderedListStyle = new UnorderedListStyle(sName.cstr(), id);
+-		mListStyles.push_back(static_cast<ListStyle *>(pUnorderedListStyle));
+-		mpCurrentListStyle = static_cast<ListStyle *>(pUnorderedListStyle);
++		mListStyles.push_back(pUnorderedListStyle);
++		mWriterListStates.top().mpCurrentListStyle = pUnorderedListStyle;
+ 	}
+ 
+ 	// See comment in DocumentCollector::defineOrderedListLevel
+ 	for (std::vector<ListStyle *>::iterator iterUnorderedListStyles = mListStyles.begin(); iterUnorderedListStyles != mListStyles.end(); iterUnorderedListStyles++)
+ 	{
+-		if ((* iterUnorderedListStyles)->getListID() == propList["libwpd:id"]->getInt())
++		if ((* iterUnorderedListStyles)->getListID() == id)
+ 			(* iterUnorderedListStyles)->updateListLevel((propList["libwpd:level"]->getInt() - 1), propList);
+ 	}
+ }
+ 
+ void DocumentCollector::openOrderedListLevel(const WPXPropertyList & /* propList */)
+ {
+-	miCurrentListLevel++;
+-	TagOpenElement *pListLevelOpenElement = new TagOpenElement("text:ordered-list");
++	if (mWriterListStates.top().mbListElementParagraphOpened)
++	{
++		mpCurrentContentElements->push_back(new TagCloseElement("text:p"));
++		mWriterListStates.top().mbListElementParagraphOpened = false;
++	}
++	TagOpenElement *pListLevelOpenElement = new TagOpenElement("text:list");
+ 	_openListLevel(pListLevelOpenElement);
+ 
+-	if (mbListContinueNumbering) {
++	if (mWriterListStates.top().mbListContinueNumbering) {
+ 		pListLevelOpenElement->addAttribute("text:continue-numbering", "true");
+ 	}
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pListLevelOpenElement));
++	mpCurrentContentElements->push_back(pListLevelOpenElement);
+ }
+ 
+ void DocumentCollector::openUnorderedListLevel(const WPXPropertyList & /* propList */)
+ {
+-	miCurrentListLevel++;
+-	TagOpenElement *pListLevelOpenElement = new TagOpenElement("text:unordered-list");
++	if (mWriterListStates.top().mbListElementParagraphOpened)
++	{
++		mpCurrentContentElements->push_back(new TagCloseElement("text:p"));
++		mWriterListStates.top().mbListElementParagraphOpened = false;
++	}
++	TagOpenElement *pListLevelOpenElement = new TagOpenElement("text:list");
+ 	_openListLevel(pListLevelOpenElement);
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pListLevelOpenElement));
++	mpCurrentContentElements->push_back(pListLevelOpenElement);
+ }
+ 
+ void DocumentCollector::_openListLevel(TagOpenElement *pListLevelOpenElement)
+ {
+-  	if (!mbListElementOpened && miCurrentListLevel > 1)
+-  	{
+-  		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:list-item")));
+-  	}
+-	else if (mbListElementParagraphOpened)
++	if (!mWriterListStates.top().mbListElementOpened.empty() &&
++		!mWriterListStates.top().mbListElementOpened.top())
+ 	{
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:p")));
+-		mbListElementParagraphOpened = false;
++		mpCurrentContentElements->push_back(new TagOpenElement("text:list-item"));
++		mWriterListStates.top().mbListElementOpened.top() = true;
+ 	}
+ 
+-	if (miCurrentListLevel==1) {
+-		pListLevelOpenElement->addAttribute("text:style-name", mpCurrentListStyle->getName());
++	mWriterListStates.top().mbListElementOpened.push(false);
++	if (mWriterListStates.top().mbListElementOpened.size() == 1) {
++		pListLevelOpenElement->addAttribute("text:style-name", mWriterListStates.top().mpCurrentListStyle->getName());
+ 	}
+-
+-	mbListElementOpened = false;
+ }
+ 
+ void DocumentCollector::closeOrderedListLevel()
+ {
+-	_closeListLevel("ordered-list");
++	_closeListLevel();
+ }
+ 
+ void DocumentCollector::closeUnorderedListLevel()
+ {
+-	_closeListLevel("unordered-list");
++	_closeListLevel();
+ }
+ 
+-void DocumentCollector::_closeListLevel(const char *szListType)
++void DocumentCollector::_closeListLevel()
+ {
+-	if (mbListElementOpened)
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:list-item")));
+-
+-	miCurrentListLevel--;
++	if (mWriterListStates.top().mbListElementOpened.top())
++	{
++		mpCurrentContentElements->push_back(new TagCloseElement("text:list-item"));
++		mWriterListStates.top().mbListElementOpened.top() = false;
++	}
+ 
+-	WPXString sCloseElement;
+-	sCloseElement.sprintf("text:%s", szListType);
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement(sCloseElement.cstr())));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:list"));
+ 
+-	if (miCurrentListLevel > 0)
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:list-item")));
+-	mbListElementOpened = false;
++	if (!mWriterListStates.top().mbListElementOpened.empty())
++	{
++		mWriterListStates.top().mbListElementOpened.pop();
++	}
+ }
+ 
+ void DocumentCollector::openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops)
+ {
+-	miLastListLevel = miCurrentListLevel;
+-	if (miCurrentListLevel == 1)
+-		miLastListNumber++;
++	mWriterListStates.top().miLastListLevel = mWriterListStates.top().miCurrentListLevel;
++	if (mWriterListStates.top().miCurrentListLevel == 1)
++		mWriterListStates.top().miLastListNumber++;
+ 
+-	if (mbListElementOpened)
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:list-item")));
++	if (mWriterListStates.top().mbListElementOpened.top())
++	{
++		mpCurrentContentElements->push_back(new TagCloseElement("text:list-item"));
++		mWriterListStates.top().mbListElementOpened.top() = false;
++	}
+ 
+ 	ParagraphStyle *pStyle = NULL;
+ 
+ 	WPXPropertyList *pPersistPropList = new WPXPropertyList(propList);
+-	pPersistPropList->insert("style:list-style-name", mpCurrentListStyle->getName());
++	pPersistPropList->insert("style:list-style-name", mWriterListStates.top().mpCurrentListStyle->getName());
+ 	pPersistPropList->insert("style:parent-style-name", "Standard");
+ 
+-        WPXString sKey = getParagraphStyleKey(*pPersistPropList, tabStops);
++	WPXString sKey = getParagraphStyleKey(*pPersistPropList, tabStops);
+ 
+-        if (mTextStyleHash.find(sKey) == mTextStyleHash.end()) 
+-        {
+-                WPXString sName;
+-                sName.sprintf("S%i", mTextStyleHash.size()); 
+-		
+-                pStyle = new ParagraphStyle(pPersistPropList, tabStops, sName);
+-                
+-                mTextStyleHash[sKey] = pStyle;
+-        }
+-        else
+-        {
+-                pStyle = mTextStyleHash[sKey];
+-                delete pPersistPropList;
+-        }
++	if (mTextStyleHash.find(sKey) == mTextStyleHash.end()) 
++	{
++		WPXString sName;
++		sName.sprintf("S%i", mTextStyleHash.size()); 
+ 
+-	TagOpenElement *pOpenListElement = new TagOpenElement("text:list-item");
+-	TagOpenElement *pOpenListElementParagraph = new TagOpenElement("text:p");
++		pStyle = new ParagraphStyle(pPersistPropList, tabStops, sName);
++
++		mTextStyleHash[sKey] = pStyle;
++	}
++	else
++	{
++		pStyle = mTextStyleHash[sKey];
++		delete pPersistPropList;
++	}
++
++	mpCurrentContentElements->push_back(new TagOpenElement("text:list-item"));
+ 
++	TagOpenElement *pOpenListElementParagraph = new TagOpenElement("text:p");
+ 	pOpenListElementParagraph->addAttribute("text:style-name", pStyle->getName());
++	mpCurrentContentElements->push_back(pOpenListElementParagraph);
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pOpenListElement));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pOpenListElementParagraph));
+-		
+-	mbListElementOpened = true;
+-	mbListElementParagraphOpened = true;
+-	mbListContinueNumbering = false;
++	mWriterListStates.top().mbListElementOpened.top() = true;
++	mWriterListStates.top().mbListElementParagraphOpened = true;
++	mWriterListStates.top().mbListContinueNumbering = false;
+ }
+ 
+ void DocumentCollector::closeListElement()
+@@ -750,183 +834,234 @@
+ 	// could contain another list level in OOo's implementation of lists). that is done in the closeListLevel
+ 	// code (or when we open another list element)
+ 
+-	if (mbListElementParagraphOpened)
++	if (mWriterListStates.top().mbListElementParagraphOpened)
+ 	{
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:p")));
+-		mbListElementParagraphOpened = false;
++		mpCurrentContentElements->push_back(new TagCloseElement("text:p"));
++		mWriterListStates.top().mbListElementParagraphOpened = false;
+ 	}
+ }
+ 
+ void DocumentCollector::openFootnote(const WPXPropertyList &propList)
+ {
+-	TagOpenElement *pOpenFootNote = new TagOpenElement("text:footnote");
++	mWriterListStates.push(WriterListState());
++	TagOpenElement *pOpenFootNote = new TagOpenElement("text:note");
++	pOpenFootNote->addAttribute("text:note-class", "footnote");
+ 	if (propList["libwpd:number"])
+ 	{
+ 		WPXString tmpString("ftn");
+ 		tmpString.append(propList["libwpd:number"]->getStr());
+ 		pOpenFootNote->addAttribute("text:id", tmpString);
+ 	}
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pOpenFootNote));
++	mpCurrentContentElements->push_back(pOpenFootNote);
++
++	mpCurrentContentElements->push_back(new TagOpenElement("text:note-citation"));
++	if (propList["libwpd:number"])
++		mpCurrentContentElements->push_back(new CharDataElement(propList["libwpd:number"]->getStr().cstr()));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:note-citation"));
++
++	mpCurrentContentElements->push_back(new TagOpenElement("text:note-body"));
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:footnote-citation")));
+-        if (propList["libwpd:number"])
+-                mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new CharDataElement(propList["libwpd:number"]->getStr().cstr())));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:footnote-citation")));
+-
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:footnote-body")));
+-	
+-	mWriterDocumentState.mbInNote = true;
++	mWriterDocumentStates.top().mbInNote = true;
+ }
+ 
+ void DocumentCollector::closeFootnote()
+ {
+-	mWriterDocumentState.mbInNote = false;
++	mWriterDocumentStates.top().mbInNote = false;
++	if (mWriterListStates.size() > 1)
++		mWriterListStates.pop();
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:footnote-body")));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:footnote")));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:note-body"));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:note"));
+ }
+ 
+ void DocumentCollector::openEndnote(const WPXPropertyList &propList)
+ {
+-	TagOpenElement *pOpenEndNote = new TagOpenElement("text:endnote");
++	mWriterListStates.push(WriterListState());
++	TagOpenElement *pOpenEndNote = new TagOpenElement("text:note");
++	pOpenEndNote->addAttribute("text:note-class", "endnote");
+ 	if (propList["libwpd:number"])
+ 	{
+ 		WPXString tmpString("edn");
+ 		tmpString.append(propList["libwpd:number"]->getStr());
+ 		pOpenEndNote->addAttribute("text:id", tmpString);
+ 	}
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pOpenEndNote));
++	mpCurrentContentElements->push_back(pOpenEndNote);
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:endnote-citation")));
+-        if (propList["libwpd:number"])
+-                mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new CharDataElement(propList["libwpd:number"]->getStr().cstr())));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:endnote-citation")));
++	mpCurrentContentElements->push_back(new TagOpenElement("text:note-citation"));
++	if (propList["libwpd:number"])
++		mpCurrentContentElements->push_back(new CharDataElement(propList["libwpd:number"]->getStr().cstr()));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:note-citation"));
+ 
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:endnote-body")));
++	mpCurrentContentElements->push_back(new TagOpenElement("text:note-body"));
+ 
++	mWriterDocumentStates.top().mbInNote = true;
+ }
++
+ void DocumentCollector::closeEndnote()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:endnote-body")));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:endnote")));
++	mWriterDocumentStates.top().mbInNote = false;
++	if (mWriterListStates.size() > 1)
++		mWriterListStates.pop();
++
++	mpCurrentContentElements->push_back(new TagCloseElement("text:note-body"));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:note"));
+ }
+ 
+-void DocumentCollector::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns)
++void DocumentCollector::openComment(const WPXPropertyList & /* propList */)
+ {
+-	WPXString sTableName;
+-	sTableName.sprintf("Table%i", mTableStyles.size());
++	mWriterListStates.push(WriterListState());
++	mpCurrentContentElements->push_back(new TagOpenElement("office:annotation"));
+ 
+-	// FIXME: we base the table style off of the page's margin left, ignoring (potential) wordperfect margin
+-	// state which is transmitted inside the page. could this lead to unacceptable behaviour?
+-        // WLACH_REFACTORING: characterize this behaviour, probably should nip it at the bud within libwpd
+-	TableStyle *pTableStyle = new TableStyle(propList, columns, sTableName.cstr());
++	mWriterDocumentStates.top().mbInNote = true;
++}
++
++void DocumentCollector::closeComment()
++{
++	mWriterDocumentStates.top().mbInNote = false;
++	if (mWriterListStates.size() > 1)
++		mWriterListStates.pop();
+ 
+-	if (mWriterDocumentState.mbFirstElement && mpCurrentContentElements == &mBodyElements)
++	mpCurrentContentElements->push_back(new TagCloseElement("office:annotation"));
++}
++
++void DocumentCollector::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns)
++{
++	if (!mWriterDocumentStates.top().mbInNote)
+ 	{
+-		WPXString sMasterPageName("Page Style 1");
+-		pTableStyle->setMasterPageName(sMasterPageName);
+-		mWriterDocumentState.mbFirstElement = false;
+-	}
++		WPXString sTableName;
++		sTableName.sprintf("Table%i", mTableStyles.size());
++
++		// FIXME: we base the table style off of the page's margin left, ignoring (potential) wordperfect margin
++		// state which is transmitted inside the page. could this lead to unacceptable behaviour?
++		// WLACH_REFACTORING: characterize this behaviour, probably should nip it at the bud within libwpd
++		TableStyle *pTableStyle = new TableStyle(propList, columns, sTableName.cstr());
+ 
+-	mTableStyles.push_back(pTableStyle);
++		if (mWriterDocumentStates.top().mbFirstElement && mpCurrentContentElements == &mBodyElements)
++		{
++			WPXString sMasterPageName("Page_Style_1");
++			pTableStyle->setMasterPageName(sMasterPageName);
++			mWriterDocumentStates.top().mbFirstElement = false;
++		}
+ 
+-	mpCurrentTableStyle = pTableStyle;
++		mTableStyles.push_back(pTableStyle);
+ 
+-	TagOpenElement *pTableOpenElement = new TagOpenElement("table:table");
++		mpCurrentTableStyle = pTableStyle;
+ 
+-	pTableOpenElement->addAttribute("table:name", sTableName.cstr());
+-	pTableOpenElement->addAttribute("table:style-name", sTableName.cstr());
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pTableOpenElement));
++		TagOpenElement *pTableOpenElement = new TagOpenElement("table:table");
+ 
+-	for (int i=0; i<pTableStyle->getNumColumns(); i++) 
+-        {
+-		TagOpenElement *pTableColumnOpenElement = new TagOpenElement("table:table-column");
+-		WPXString sColumnStyleName;
+-		sColumnStyleName.sprintf("%s.Column%i", sTableName.cstr(), (i+1));
+-		pTableColumnOpenElement->addAttribute("table:style-name", sColumnStyleName.cstr());
+-		mpCurrentContentElements->push_back(pTableColumnOpenElement);
++		pTableOpenElement->addAttribute("table:name", sTableName.cstr());
++		pTableOpenElement->addAttribute("table:style-name", sTableName.cstr());
++		mpCurrentContentElements->push_back(pTableOpenElement);
+ 
+-		TagCloseElement *pTableColumnCloseElement = new TagCloseElement("table:table-column");
+-		mpCurrentContentElements->push_back(pTableColumnCloseElement);
++		for (int i=0; i<pTableStyle->getNumColumns(); i++) 
++		{
++			TagOpenElement *pTableColumnOpenElement = new TagOpenElement("table:table-column");
++			WPXString sColumnStyleName;
++			sColumnStyleName.sprintf("%s.Column%i", sTableName.cstr(), (i+1));
++			pTableColumnOpenElement->addAttribute("table:style-name", sColumnStyleName.cstr());
++			mpCurrentContentElements->push_back(pTableColumnOpenElement);
++
++			TagCloseElement *pTableColumnCloseElement = new TagCloseElement("table:table-column");
++			mpCurrentContentElements->push_back(pTableColumnCloseElement);
++		}
+ 	}
+ }
+ 
+ void DocumentCollector::openTableRow(const WPXPropertyList &propList)
+ {
+-	if (propList["libwpd:is-header-row"] && (propList["libwpd:is-header-row"]->getInt()))
++	if (!mWriterDocumentStates.top().mbInNote)
+ 	{
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("table:table-header-rows")));
+-		mWriterDocumentState.mbHeaderRow = true;
+-	}
++		if (propList["libwpd:is-header-row"] && (propList["libwpd:is-header-row"]->getInt()))
++		{
++			mpCurrentContentElements->push_back(new TagOpenElement("table:table-header-rows"));
++			mWriterDocumentStates.top().mbHeaderRow = true;
++		}
+ 
+-	WPXString sTableRowStyleName;
+-	sTableRowStyleName.sprintf("%s.Row%i", mpCurrentTableStyle->getName().cstr(), mpCurrentTableStyle->getNumTableRowStyles());
+-	TableRowStyle *pTableRowStyle = new TableRowStyle(propList, sTableRowStyleName.cstr());
+-	mpCurrentTableStyle->addTableRowStyle(pTableRowStyle);
+-	
+-	TagOpenElement *pTableRowOpenElement = new TagOpenElement("table:table-row");
+-	pTableRowOpenElement->addAttribute("table:style-name", sTableRowStyleName);
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pTableRowOpenElement));
++		WPXString sTableRowStyleName;
++		sTableRowStyleName.sprintf("%s.Row%i", mpCurrentTableStyle->getName().cstr(), mpCurrentTableStyle->getNumTableRowStyles());
++		TableRowStyle *pTableRowStyle = new TableRowStyle(propList, sTableRowStyleName.cstr());
++		mpCurrentTableStyle->addTableRowStyle(pTableRowStyle);
++
++		TagOpenElement *pTableRowOpenElement = new TagOpenElement("table:table-row");
++		pTableRowOpenElement->addAttribute("table:style-name", sTableRowStyleName);
++		mpCurrentContentElements->push_back(pTableRowOpenElement);
++	}
+ }
+ 
+ void DocumentCollector::closeTableRow()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("table:table-row")));
+-	if (mWriterDocumentState.mbHeaderRow)
++	if (!mWriterDocumentStates.top().mbInNote)
+ 	{
+-		mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("table:table-header-rows")));
+-		mWriterDocumentState.mbHeaderRow = false;
++		mpCurrentContentElements->push_back(new TagCloseElement("table:table-row"));
++		if (mWriterDocumentStates.top().mbHeaderRow)
++		{
++			mpCurrentContentElements->push_back(new TagCloseElement("table:table-header-rows"));
++			mWriterDocumentStates.top().mbHeaderRow = false;
++		}
+ 	}
+ }
+ 
+ void DocumentCollector::openTableCell(const WPXPropertyList &propList)
+ {
+-	WPXString sTableCellStyleName;
+-	sTableCellStyleName.sprintf( "%s.Cell%i", mpCurrentTableStyle->getName().cstr(), mpCurrentTableStyle->getNumTableCellStyles());
+-	TableCellStyle *pTableCellStyle = new TableCellStyle(propList, sTableCellStyleName.cstr());
+-	mpCurrentTableStyle->addTableCellStyle(pTableCellStyle);
+-
+-	TagOpenElement *pTableCellOpenElement = new TagOpenElement("table:table-cell");
+-	pTableCellOpenElement->addAttribute("table:style-name", sTableCellStyleName);
+-	if (propList["table:number-columns-spanned"])
+-                pTableCellOpenElement->addAttribute("table:number-columns-spanned", 
+-                                                    propList["table:number-columns-spanned"]->getStr().cstr());
+-        if (propList["table:number-rows-spanned"])
+-                pTableCellOpenElement->addAttribute("table:number-rows-spanned",
+-                                                    propList["table:number-rows-spanned"]->getStr().cstr());
+-	pTableCellOpenElement->addAttribute("table:value-type", "string");
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(pTableCellOpenElement));
++	if (!mWriterDocumentStates.top().mbInNote)
++	{
++		WPXString sTableCellStyleName;
++		sTableCellStyleName.sprintf( "%s.Cell%i", mpCurrentTableStyle->getName().cstr(), mpCurrentTableStyle->getNumTableCellStyles());
++		TableCellStyle *pTableCellStyle = new TableCellStyle(propList, sTableCellStyleName.cstr());
++		mpCurrentTableStyle->addTableCellStyle(pTableCellStyle);
++
++		TagOpenElement *pTableCellOpenElement = new TagOpenElement("table:table-cell");
++		pTableCellOpenElement->addAttribute("table:style-name", sTableCellStyleName);
++		if (propList["table:number-columns-spanned"])
++			pTableCellOpenElement->addAttribute("table:number-columns-spanned", 
++							    propList["table:number-columns-spanned"]->getStr().cstr());
++		if (propList["table:number-rows-spanned"])
++			pTableCellOpenElement->addAttribute("table:number-rows-spanned",
++							    propList["table:number-rows-spanned"]->getStr().cstr());
++		// pTableCellOpenElement->addAttribute("table:value-type", "string");
++		mpCurrentContentElements->push_back(pTableCellOpenElement);
+ 
+-	mWriterDocumentState.mbTableCellOpened = true;
++		mWriterDocumentStates.top().mbTableCellOpened = true;
++	}
+ }
+ 
+ void DocumentCollector::closeTableCell()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("table:table-cell")));
+-	mWriterDocumentState.mbTableCellOpened = false;
++	if (!mWriterDocumentStates.top().mbInNote)
++	{
++		mpCurrentContentElements->push_back(new TagCloseElement("table:table-cell"));
++		mWriterDocumentStates.top().mbTableCellOpened = false;
++	}
+ }
+ 
+ void DocumentCollector::insertCoveredTableCell(const WPXPropertyList & /* propList */)
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("table:covered-table-cell")));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("table:covered-table-cell")));
++	if (!mWriterDocumentStates.top().mbInNote)
++	{
++		mpCurrentContentElements->push_back(new TagOpenElement("table:covered-table-cell"));
++		mpCurrentContentElements->push_back(new TagCloseElement("table:covered-table-cell"));
++	}
+ }
+ 
+ void DocumentCollector::closeTable()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("table:table")));
++	if (!mWriterDocumentStates.top().mbInNote)
++	{
++		mpCurrentContentElements->push_back(new TagCloseElement("table:table"));
++	}
+ }
+ 
++
+ void DocumentCollector::insertTab()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:tab-stop")));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:tab-stop")));
++	mpCurrentContentElements->push_back(new TagOpenElement("text:tab"));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:tab"));
+ }
+ 
+ void DocumentCollector::insertLineBreak()
+ {
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagOpenElement("text:line-break")));
+-	mpCurrentContentElements->push_back(static_cast<DocumentElement *>(new TagCloseElement("text:line-break")));
++	mpCurrentContentElements->push_back(new TagOpenElement("text:line-break"));
++	mpCurrentContentElements->push_back(new TagCloseElement("text:line-break"));
+ }
+ 
+ void DocumentCollector::insertText(const WPXString &text)
+@@ -934,3 +1069,195 @@
+ 	DocumentElement *pText = new TextElement(text);
+ 	mpCurrentContentElements->push_back(pText);
+ }
++
++void DocumentCollector::openFrame(const WPXPropertyList &propList)
++{
++	mWriterListStates.push(WriterListState());
++
++	// First, let's create a Frame Style for this box
++	TagOpenElement *frameStyleOpenElement = new TagOpenElement("style:style");
++	WPXString frameStyleName;
++	frameStyleName.sprintf("GraphicFrame_%i", miObjectNumber);
++	frameStyleOpenElement->addAttribute("style:name", frameStyleName);
++	frameStyleOpenElement->addAttribute("style:family", "graphic");
++
++	mFrameStyles.push_back(frameStyleOpenElement);
++
++	TagOpenElement *frameStylePropertiesOpenElement = new TagOpenElement("style:graphic-properties");
++
++	if (propList["text:anchor-type"])
++		frameStylePropertiesOpenElement->addAttribute("text:anchor-type", propList["text:anchor-type"]->getStr());
++	else
++		frameStylePropertiesOpenElement->addAttribute("text:anchor-type","paragraph");
++
++	if (propList["text:anchor-page-number"])
++		frameStylePropertiesOpenElement->addAttribute("text:anchor-page-number", propList["text:anchor-page-number"]->getStr());
++
++	if (propList["svg:x"])
++		frameStylePropertiesOpenElement->addAttribute("svg:x", propList["svg:x"]->getStr());
++
++	if (propList["svg:y"])
++		frameStylePropertiesOpenElement->addAttribute("svg:y", propList["svg:y"]->getStr());
++
++	if (propList["svg:width"])
++		frameStylePropertiesOpenElement->addAttribute("svg:width", propList["svg:width"]->getStr());
++
++	if (propList["svg:height"])
++		frameStylePropertiesOpenElement->addAttribute("svg:height", propList["svg:height"]->getStr());
++
++	if (propList["style:rel-width"])
++		frameStylePropertiesOpenElement->addAttribute("style:rel-width", propList["style:rel-width"]->getStr());
++
++	if (propList["style:rel-height"])
++		frameStylePropertiesOpenElement->addAttribute("style:rel-height", propList["style:rel-height"]->getStr());
++
++	if (propList["fo:max-width"])
++		frameStylePropertiesOpenElement->addAttribute("fo:max-width", propList["fo:max-width"]->getStr());
++
++	if (propList["fo:max-height"])
++		frameStylePropertiesOpenElement->addAttribute("fo:max-height", propList["fo:max-height"]->getStr());
++
++	mFrameStyles.push_back(frameStylePropertiesOpenElement);
++
++	mFrameStyles.push_back(new TagCloseElement("style:graphic-properties"));
++
++	mFrameStyles.push_back(new TagCloseElement("style:style"));
++
++	// Now, let's create an automatic style for this frame
++	TagOpenElement *frameAutomaticStyleElement = new TagOpenElement("style:style");
++	WPXString frameAutomaticStyleName;
++	frameAutomaticStyleName.sprintf("fr%i", miObjectNumber);
++	frameAutomaticStyleElement->addAttribute("style:name", frameAutomaticStyleName);
++	frameAutomaticStyleElement->addAttribute("style:family", "graphic");
++	frameAutomaticStyleElement->addAttribute("style:parent-style-name", frameStyleName);
++
++	mFrameAutomaticStyles.push_back(frameAutomaticStyleElement);
++
++	TagOpenElement *frameAutomaticStylePropertiesElement = new TagOpenElement("style:graphic-properties");
++	if (propList["style:horizontal-pos"])
++		frameAutomaticStylePropertiesElement->addAttribute("style:horizontal-pos", propList["style:horizontal-pos"]->getStr());
++	else
++		frameAutomaticStylePropertiesElement->addAttribute("style:horizontal-pos", "left");
++
++	if (propList["style:horizontal-rel"])
++		frameAutomaticStylePropertiesElement->addAttribute("style:horizontal-rel", propList["style:horizontal-rel"]->getStr());
++	else
++		frameAutomaticStylePropertiesElement->addAttribute("style:horizontal-rel", "paragraph");
++
++	if (propList["style:vertical-pos"])
++		frameAutomaticStylePropertiesElement->addAttribute("style:vertical-pos", propList["style:vertical-pos"]->getStr());
++	else
++		frameAutomaticStylePropertiesElement->addAttribute("style:vertical-pos", "top");
++
++	if (propList["style:vertical-rel"])
++		frameAutomaticStylePropertiesElement->addAttribute("style:vertical-rel", propList["style:vertical-rel"]->getStr());
++	else
++		frameAutomaticStylePropertiesElement->addAttribute("style:vertical-rel", "page-content");
++
++	if (propList["fo:max-width"])
++		frameAutomaticStylePropertiesElement->addAttribute("fo:max-width", propList["fo:max-width"]->getStr());
++
++	if (propList["fo:max-height"])
++		frameAutomaticStylePropertiesElement->addAttribute("fo:max-height", propList["fo:max-height"]->getStr());
++
++	frameAutomaticStylePropertiesElement->addAttribute("draw:ole-draw-aspect", "1");
++
++	mFrameAutomaticStyles.push_back(frameAutomaticStylePropertiesElement);
++
++	mFrameAutomaticStyles.push_back(new TagCloseElement("style:graphic-properties"));
++
++	mFrameAutomaticStyles.push_back(new TagCloseElement("style:style"));
++
++	// And write the frame itself
++	TagOpenElement *drawFrameOpenElement = new TagOpenElement("draw:frame");
++
++	drawFrameOpenElement->addAttribute("draw:style-name", frameAutomaticStyleName);
++	WPXString objectName;
++	objectName.sprintf("Object%i", miObjectNumber++);
++	drawFrameOpenElement->addAttribute("draw:name", objectName);
++	if (propList["text:anchor-type"])
++		drawFrameOpenElement->addAttribute("text:anchor-type", propList["text:anchor-type"]->getStr());
++	else
++		drawFrameOpenElement->addAttribute("text:anchor-type","paragraph");
++
++	if (propList["text:anchor-page-number"])
++		drawFrameOpenElement->addAttribute("text:anchor-page-number", propList["text:anchor-page-number"]->getStr());
++
++	if (propList["svg:x"])
++		drawFrameOpenElement->addAttribute("svg:x", propList["svg:x"]->getStr());
++
++	if (propList["svg:y"])
++		drawFrameOpenElement->addAttribute("svg:y", propList["svg:y"]->getStr());
++
++	if (propList["svg:width"])
++		drawFrameOpenElement->addAttribute("svg:width", propList["svg:width"]->getStr());
++
++	if (propList["svg:height"])
++		drawFrameOpenElement->addAttribute("svg:height", propList["svg:height"]->getStr());
++
++	if (propList["style:rel-width"])
++		drawFrameOpenElement->addAttribute("style:rel-width", propList["style:rel-width"]->getStr());
++
++	if (propList["style:rel-height"])
++		drawFrameOpenElement->addAttribute("style:rel-height", propList["style:rel-height"]->getStr());
++
++	mpCurrentContentElements->push_back(drawFrameOpenElement);
++
++	mWriterDocumentStates.top().mbInFrame = true;
++}
++
++void DocumentCollector::closeFrame()
++{
++	if (mWriterListStates.size() > 1)
++		mWriterListStates.pop();
++
++	mpCurrentContentElements->push_back(new TagCloseElement("draw:frame"));
++
++	mWriterDocumentStates.top().mbInFrame = false;
++}
++
++void DocumentCollector::insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData *object)
++{
++	if (!object || !object->size())
++		return;
++	if (!mWriterDocumentStates.top().mbInFrame) // Embedded objects without a frame simply don't make sense for us
++		return;
++	if (!propList["libwpd:mimetype"] || !(propList["libwpd:mimetype"]->getStr() == "image/x-wpg"))
++		return;
++
++	std::vector<DocumentElement *> tmpContentElements;
++	InternalHandler tmpHandler(&tmpContentElements);
++	OdgExporter exporter(&tmpHandler, true);
++
++	if (libwpg::WPGraphics::parse(const_cast<WPXInputStream *>(object->getDataStream()), &exporter) && !tmpContentElements.empty())
++	{
++		mpCurrentContentElements->push_back(new TagOpenElement("draw:object"));
++		for (std::vector<DocumentElement *>::const_iterator iter = tmpContentElements.begin(); iter != tmpContentElements.end(); iter++)
++			mpCurrentContentElements->push_back(*iter);
++		mpCurrentContentElements->push_back(new TagCloseElement("draw:object"));
++	}
++}
++
++void DocumentCollector::openTextBox(const WPXPropertyList & /* propList */)
++{
++	if (!mWriterDocumentStates.top().mbInFrame) // Text box without a frame simply doesn't make sense for us
++		return;
++	mWriterListStates.push(WriterListState());
++	mWriterDocumentStates.push(WriterDocumentState());
++	mpCurrentContentElements->push_back(new TagOpenElement("draw:text-box"));
++	mWriterDocumentStates.top().mbInTextBox = true;
++	mWriterDocumentStates.top().mbFirstElement = false;
++}
++
++void DocumentCollector::closeTextBox()
++{
++	if (!mWriterDocumentStates.top().mbInTextBox)
++		return;
++	if (mWriterListStates.size() > 1)
++		mWriterListStates.pop();
++	if (mWriterDocumentStates.size() > 1)
++		mWriterDocumentStates.pop();
++
++	mpCurrentContentElements->push_back(new TagCloseElement("draw:text-box"));
++}
++
+--- writerperfect/source/filter/DocumentCollector.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/DocumentCollector.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -45,8 +45,9 @@
+ #include <stack>
+ #include <string.h>
+ 
++#include "DocumentHandlerInterface.hxx"
++
+ class DocumentElement;
+-class DocumentHandler;
+ class TagOpenElement;
+ class FontStyle;
+ class ListStyle;
+@@ -61,33 +62,50 @@
+ struct _WriterDocumentState
+ {
+ 	_WriterDocumentState();
+-
++		
+ 	bool mbFirstElement;
+ 	bool mbInFakeSection;
+ 	bool mbListElementOpenedAtCurrentLevel;
+ 	bool mbTableCellOpened;
+ 	bool mbHeaderRow;
+ 	bool mbInNote;
++	bool mbInTextBox;
++	bool mbInFrame;
++};
++
++// list state
++typedef struct _WriterListState WriterListState;
++struct _WriterListState
++{
++	_WriterListState();
++
++	ListStyle *mpCurrentListStyle;
++	unsigned int miCurrentListLevel;
++	unsigned int miLastListLevel;
++	unsigned int miLastListNumber;
++	bool mbListContinueNumbering;
++	bool mbListElementParagraphOpened;
++	std::stack<bool> mbListElementOpened;
+ };
+ 
+ enum WriterListType { unordered, ordered };
+ 
+ struct ltstr
+ {
+-  bool operator()(const WPXString & s1, const WPXString & s2) const
+-  {
+-    return strcmp(s1.cstr(), s2.cstr()) < 0;
+-  }
++	bool operator()(const WPXString & s1, const WPXString & s2) const
++	{
++		return strcmp(s1.cstr(), s2.cstr()) < 0;
++	}
+ };
+ 
+-class DocumentCollector : public WPXHLListenerImpl
++class DocumentCollector : public WPXDocumentInterface
+ {
+ public:
+-	DocumentCollector(WPSInputStream *pInput, DocumentHandler *pHandler);
++	DocumentCollector(WPXInputStream *pInput, DocumentHandlerInterface *pHandler);
+ 	virtual ~DocumentCollector();
+ 	bool filter();
+ 
+- 	virtual void setDocumentMetaData(const WPXPropertyList & /* propList */) {}
++ 	virtual void setDocumentMetaData(const WPXPropertyList &propList);
+ 	virtual void startDocument() {}
+ 	virtual void endDocument() {}
+ 
+@@ -126,6 +144,10 @@
+ 	virtual void closeFootnote();
+ 	virtual void openEndnote(const WPXPropertyList &propList);
+ 	virtual void closeEndnote();
++	virtual void openComment(const WPXPropertyList &propList);
++	virtual void closeComment();
++	virtual void openTextBox(const WPXPropertyList &propList);
++	virtual void closeTextBox();
+ 
+  	virtual void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns);
+  	virtual void openTableRow(const WPXPropertyList &propList);
+@@ -134,32 +156,40 @@
+ 	virtual void closeTableCell();
+ 	virtual void insertCoveredTableCell(const WPXPropertyList &propList);
+  	virtual void closeTable();
+-	virtual bool parseSourceDocument(WPSInputStream &input) = 0;
++
++	virtual void openFrame(const WPXPropertyList & propList);
++	virtual void closeFrame();
++	
++	virtual void insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData *object);
++
++	virtual bool parseSourceDocument(WPXInputStream &input) = 0;
+ 
+ protected:
+ 	void _resetDocumentState();
+-	bool _writeTargetDocument(DocumentHandler *pHandler);
++	bool _writeTargetDocument(DocumentHandlerInterface *pHandler);
+ 	void _writeBegin();
+-	void _writeDefaultStyles(DocumentHandler *pHandler);
+-	void _writeMasterPages(DocumentHandler *pHandler);
+-	void _writePageMasters(DocumentHandler *pHandler);
++	void _writeDefaultStyles(DocumentHandlerInterface *pHandler);
++	void _writeMasterPages(DocumentHandlerInterface *pHandler);
++	void _writePageLayouts(DocumentHandlerInterface *pHandler);
+ 	void _allocateFontName(const WPXString &);
+ 
+ private:
+ 	void _openListLevel(TagOpenElement *pListLevelOpenElement);
+-	void _closeListLevel(const char *szListType);
++	void _closeListLevel();
+ 
+-        WPSInputStream *mpInput;
+-        DocumentHandler *mpHandler;
++	WPXInputStream *mpInput;
++	DocumentHandlerInterface *mpHandler;
+ 	bool mbUsed; // whether or not it has been before (you can only use me once!)
+ 
+-	WriterDocumentState mWriterDocumentState;
++	std::stack<WriterDocumentState> mWriterDocumentStates;
++	
++	std::stack<WriterListState> mWriterListStates;
+ 
+ 	// paragraph styles
+ 	std::map<WPXString, ParagraphStyle *, ltstr> mTextStyleHash;
+ 
+-        // span styles
+-        std::map<WPXString, SpanStyle *, ltstr> mSpanStyleHash;
++	// span styles
++	std::map<WPXString, SpanStyle *, ltstr> mSpanStyleHash;
+ 
+ 	// font styles
+ 	std::map<WPXString, FontStyle *, ltstr> mFontHash;
+@@ -170,10 +200,18 @@
+ 
+ 	// table styles
+ 	std::vector<TableStyle *> mTableStyles;
++	
++	// frame styles
++	std::vector<DocumentElement *> mFrameStyles;
++	
++	std::vector<DocumentElement *> mFrameAutomaticStyles;
++	
++	// metadata
++	std::vector<DocumentElement *> mMetaData;
+ 
+ 	// list styles
+ 	unsigned int miNumListStyles;
+-
++	
+ 	// style elements
+ 	std::vector<DocumentElement *> mStylesElements;
+ 	// content elements
+@@ -186,18 +224,18 @@
+ 	PageSpan *mpCurrentPageSpan;
+ 	int miNumPageStyles;
+ 
+-	// list styles / state
+-	ListStyle *mpCurrentListStyle;
+-	unsigned int miCurrentListLevel;
+-	unsigned int miLastListLevel;
+-	unsigned int miLastListNumber;
++	// list styles
+ 	std::vector<ListStyle *> mListStyles;
+-	bool mbListContinueNumbering;
+-	bool mbListElementOpened;
+-	bool mbListElementParagraphOpened;
++	
++	// object state
++	unsigned miObjectNumber;
+ 
+ 	// table state
+ 	TableStyle *mpCurrentTableStyle;
++
++	const bool mbIsFlatXML;
++	
++	const char * mpPassword;
+ };
+ 
+ #endif
+--- writerperfect/source/filter/DocumentElement.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/DocumentElement.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -26,6 +26,7 @@
+  */
+ 
+ #include "DocumentElement.hxx"
++#include "DocumentHandler.hxx"
+ #include "FilterInternal.hxx"
+ #include <string.h>
+ 
+@@ -36,7 +37,7 @@
+ 	WRITER_DEBUG_MSG(("%s\n", msTagName.cstr()));
+ }
+ 
+-void TagOpenElement::write(DocumentHandler *pHandler) const
++void TagOpenElement::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	pHandler->startElement(getTagName().cstr(), maAttrList);
+ }
+@@ -51,14 +52,14 @@
+         maAttrList.insert(szAttributeName, sAttributeValue);
+ }
+ 
+-void TagCloseElement::write(DocumentHandler *pHandler) const
++void TagCloseElement::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	WRITER_DEBUG_MSG(("TagCloseElement: write (%s)\n", getTagName().cstr()));
+ 
+ 	pHandler->endElement(getTagName().cstr());
+ }
+ 
+-void CharDataElement::write(DocumentHandler *pHandler) const
++void CharDataElement::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	WRITER_DEBUG_MSG(("TextElement: write\n"));
+ 	pHandler->characters(msData);
+@@ -71,8 +72,10 @@
+ 
+ // write: writes a text run, appropriately converting spaces to <text:s>
+ // elements
+-void TextElement::write(DocumentHandler *pHandler) const
++void TextElement::write(DocumentHandlerInterface *pHandler) const
+ {
++	if (msTextBuf.len() <= 0)
++		return;
+ 	WPXPropertyList xBlankAttrList;
+         
+ 	WPXString sTemp;
+--- writerperfect/source/filter/DocumentElement.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/DocumentElement.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -21,36 +21,31 @@
+  *
+  */
+ 
+-/* "This product is not manufactured, approved, or supported by
++/* "This product is not manufactured, approved, or supported by 
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ 
+ #ifndef _DOCUMENTELEMENT_H
+ #define _DOCUMENTELEMENT_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+ #include <libwpd/WPXProperty.h>
+ #include <libwpd/WPXString.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ #include <vector>
+ 
+-#include "DocumentHandler.hxx"
++#include "DocumentHandlerInterface.hxx"
+ 
+ class DocumentElement
+ {
+-public:
++public:	
+ 	virtual ~DocumentElement() {}
+-	virtual void write(DocumentHandler *pHandler) const = 0;
++	virtual void write(DocumentHandlerInterface *pHandler) const = 0;
+ 	virtual void print() const {}
+ };
+ 
+ class TagElement : public DocumentElement
+ {
+ public:
++	virtual ~TagElement() {}
+ 	TagElement(const char *szTagName) : msTagName(szTagName) {}
+ 	const WPXString & getTagName() const { return msTagName; }
+ 	virtual void print() const;
+@@ -62,9 +57,9 @@
+ {
+ public:
+ 	TagOpenElement(const char *szTagName) : TagElement(szTagName) {}
+-	~TagOpenElement() {}
++	virtual ~TagOpenElement() {}
+ 	void addAttribute(const char *szAttributeName, const WPXString &sAttributeValue);
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 	virtual void print () const;
+ private:
+ 	WPXPropertyList maAttrList;
+@@ -74,14 +69,16 @@
+ {
+ public:
+ 	TagCloseElement(const char *szTagName) : TagElement(szTagName) {}
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual ~TagCloseElement() {}
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ };
+ 
+ class CharDataElement : public DocumentElement
+ {
+ public:
+ 	CharDataElement(const char *sData) : DocumentElement(), msData(sData) {}
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual ~CharDataElement() {}
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ private:
+ 	WPXString msData;
+ };
+@@ -90,10 +87,11 @@
+ {
+ public:
+ 	TextElement(const WPXString & sTextBuf);
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual ~TextElement() {}
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 
+ private:
+ 	WPXString msTextBuf;
+ };
+-
++ 
+ #endif
+--- writerperfect/source/filter/DocumentHandler.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/DocumentHandler.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -13,10 +13,12 @@
+ #pragma warning( pop )
+ #endif
+ 
++#include "DocumentHandlerInterface.hxx"
++
+ using com::sun::star::uno::Reference;
+ using com::sun::star::xml::sax::XDocumentHandler;
+ 
+-class DocumentHandler
++class DocumentHandler: public DocumentHandlerInterface
+ {
+ public:
+         DocumentHandler(Reference < XDocumentHandler > &xHandler);
+--- writerperfect/source/filter/DocumentHandlerInterface.hxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/DocumentHandlerInterface.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,45 @@
++/*
++ * Copyright (C) 2004 William Lachance (wlach@interlog.com)
++ * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++ * 02111-1307, USA.
++ *
++ *  Contributor(s): Martin Gallwey (gallwey@sun.com)
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#ifndef _DOCUMENTHANDLERINTERFACE_H
++#define _DOCUMENTHANDLERINTERFACE_H
++#include <libwpd/libwpd.h>
++#include <libwpd/WPXProperty.h>
++#include <libwpd/WPXString.h>
++
++class DocumentHandlerInterface
++{
++public:
++	DocumentHandlerInterface() {};
++	virtual ~DocumentHandlerInterface() {};
++	
++        virtual void startDocument() = 0;
++        virtual void endDocument() = 0;
++        virtual void startElement(const char *psName, const WPXPropertyList &xPropList) = 0;
++        virtual void endElement(const char *psName) = 0;
++        virtual void characters(const WPXString &sCharacters) = 0;
++};
++#endif
+--- writerperfect/source/filter/FontStyle.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/FontStyle.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -29,7 +29,7 @@
+ #include "DocumentElement.hxx"
+ 
+ FontStyle::FontStyle(const char *psName, const char *psFontFamily) : Style(psName),
+-	msFontFamily(psFontFamily),
++	msFontFamily(psFontFamily, true),
+ 	msFontPitch(IMP_DEFAULT_FONT_PITCH)
+ {
+ }
+@@ -38,13 +38,13 @@
+ {
+ }
+ 
+-void FontStyle::write(DocumentHandler *pHandler) const
++void FontStyle::write(DocumentHandlerInterface *pHandler) const
+ {        
+-	TagOpenElement styleOpen("style:font-decl");
++	TagOpenElement styleOpen("style:font-face");
+ 	styleOpen.addAttribute("style:name", getName());
+-	styleOpen.addAttribute("fo:font-family", msFontFamily);
+-	styleOpen.addAttribute("style:font-pitch", msFontPitch);
++	styleOpen.addAttribute("svg:font-family", msFontFamily);
++//	styleOpen.addAttribute("style:font-pitch", msFontPitch);
+ 	styleOpen.write(pHandler);
+-	TagCloseElement styleClose("style:font-decl");
++	TagCloseElement styleClose("style:font-face");
+ 	styleClose.write(pHandler);
+ }
+--- writerperfect/source/filter/FontStyle.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/FontStyle.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -21,28 +21,23 @@
+  *
+  */
+ 
+-/* "This product is not manufactured, approved, or supported by
++/* "This product is not manufactured, approved, or supported by 
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ #ifndef _FONTSTYLE_H
+ #define _FONTSTYLE_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ 
+ #include "Style.hxx"
+ #include "WriterProperties.hxx"
++#include "DocumentHandlerInterface.hxx"
+ 
+ class FontStyle : public Style
+ {
+ public:
+ 	FontStyle(const char *psName, const char *psFontFamily);
+ 	~FontStyle();
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 	const WPXString &getFontFamily() const { return msFontFamily; }
+ 
+ private:
+--- writerperfect/source/filter/GraphicsStyle.cxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/GraphicsStyle.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,40 @@
++/* GraphicsStyle:
++ *
++ * Copyright (C) 2007 Fridrich Strba .strba@bluewin.ch)
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
++ *
++ * For further information visit http://libwpd.sourceforge.net
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#include "GraphicsStyle.hxx"
++#include "WriterProperties.hxx"
++#include "DocumentElement.hxx"
++
++GraphicsStyle::GraphicsStyle(const char *psName) : Style(psName)
++{
++}
++
++GraphicsStyle::~GraphicsStyle() 
++{
++}
++
++void GraphicsStyle::write(DocumentHandlerInterface * /* pHandler */) const
++{        
++}
+--- writerperfect/source/filter/GraphicsStyle.hxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/GraphicsStyle.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,40 @@
++/* GraphicsStyle:
++ *
++ * Copyright (C) 2007 Fridrich Strba .strba@bluewin.ch)
++ * 
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
++ *
++ * For further information visit http://libwpd.sourceforge.net
++ *
++ */
++
++/* "This product is not manufactured, approved, or supported by 
++ * Corel Corporation or Corel Corporation Limited."
++ */
++#ifndef _GRAPHICSSTYLE_H
++#define _GRAPHICSSTYLE_H
++
++#include "Style.hxx"
++#include "WriterProperties.hxx"
++#include "DocumentHandlerInterface.hxx"
++
++class GraphicsStyle : public Style
++{
++public:
++	GraphicsStyle(const char *psName);
++	~GraphicsStyle();
++	virtual void write(DocumentHandlerInterface *pHandler) const;
++};
++#endif
+--- writerperfect/source/filter/InternalHandler.cxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/InternalHandler.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,54 @@
++/*
++ * Copyright (C) 2007 Fridrich Strba .strba@bluewin.ch)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++ * 02111-1307, USA.
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++ 
++#include "InternalHandler.hxx"
++
++#include <string.h>
++
++InternalHandler::InternalHandler(std::vector<DocumentElement *> *elements):
++	mpElements(elements)
++{
++}
++
++void InternalHandler::startElement(const char *psName, const WPXPropertyList &xPropList)
++{
++	TagOpenElement	*element = new TagOpenElement(psName);
++	WPXPropertyList::Iter i(xPropList);
++	for (i.rewind(); i.next(); )
++	{
++		// filter out libwpd elements
++		if (strncmp(i.key(), "libwpd", 6) != 0)
++			element->addAttribute(i.key(), i()->getStr());
++	}
++	mpElements->push_back(element);
++}
++
++void InternalHandler::endElement(const char *psName)
++{
++	mpElements->push_back(new TagCloseElement(psName));
++}
++
++void InternalHandler::characters(const WPXString &sCharacters)
++{
++	mpElements->push_back(new CharDataElement(sCharacters.cstr()));
++}
+--- writerperfect/source/filter/InternalHandler.hxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/InternalHandler.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,46 @@
++/*
++ * Copyright (C) 2007 Fridrich Strba .strba@bluewin.ch)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++ * 02111-1307, USA.
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++ 
++#ifndef _INTERNALHANDLER_H
++#define _INTERNALHANDLER_H
++#include <libwpd/libwpd.h>
++#include <libwpd/WPXProperty.h>
++#include <libwpd/WPXString.h>
++#include "DocumentElement.hxx"
++#include "DocumentHandlerInterface.hxx"
++
++class InternalHandler : public DocumentHandlerInterface
++{
++public:
++	InternalHandler(std::vector<DocumentElement *> *elements);
++	~InternalHandler() {};
++	
++	void startDocument() {};
++	void endDocument() {};
++	void startElement(const char *psName, const WPXPropertyList &xPropList);
++	void endElement(const char *psName);
++	void characters(const WPXString &sCharacters);
++private:
++	std::vector<DocumentElement *> *mpElements;
++};
++#endif
+--- writerperfect/source/filter/ListStyle.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/ListStyle.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -29,7 +29,7 @@
+ #include "DocumentElement.hxx"
+ 
+ OrderedListLevelStyle::OrderedListLevelStyle(const WPXPropertyList &xPropList) : 
+-        mPropList(xPropList)
++	mPropList(xPropList)
+ {
+ }
+ 
+@@ -41,34 +41,44 @@
+ 	    setListLevel(iLevel, new OrderedListLevelStyle(xPropList));
+ }
+ 
+-void OrderedListLevelStyle::write(DocumentHandler *pHandler, int iLevel) const
++void OrderedListLevelStyle::write(DocumentHandlerInterface *pHandler, int iLevel) const
+ {
+ 	WPXString sLevel;
+ 	sLevel.sprintf("%i", (iLevel+1));
+ 
+ 	TagOpenElement listLevelStyleOpen("text:list-level-style-number");
+ 	listLevelStyleOpen.addAttribute("text:level", sLevel);
+-	listLevelStyleOpen.addAttribute("text:style-name", "Numbering Symbols");
+-        if (mPropList["style:num-prefix"])
+-                listLevelStyleOpen.addAttribute("style:num-prefix", mPropList["style:num-prefix"]->getStr());
+-        if (mPropList["style:num-suffix"])
+-                listLevelStyleOpen.addAttribute("style:num-suffix", mPropList["style:num-suffix"]->getStr());
+-        if (mPropList["style:num-format"])
+-                listLevelStyleOpen.addAttribute("style:num-format", mPropList["style:num-format"]->getStr());
+-        if (mPropList["text:start-value"])
+-                listLevelStyleOpen.addAttribute("text:start-value", mPropList["text:start-value"]->getStr());
++	listLevelStyleOpen.addAttribute("text:style-name", "Numbering_Symbols");
++	if (mPropList["style:num-prefix"])
++	{
++		WPXString sEscapedString(mPropList["style:num-prefix"]->getStr(), true);
++		listLevelStyleOpen.addAttribute("style:num-prefix", sEscapedString);
++	}
++	if (mPropList["style:num-suffix"])
++	{
++		WPXString sEscapedString(mPropList["style:num-suffix"]->getStr(), true);
++		listLevelStyleOpen.addAttribute("style:num-suffix", sEscapedString);
++	}
++	if (mPropList["style:num-format"])
++		listLevelStyleOpen.addAttribute("style:num-format", mPropList["style:num-format"]->getStr());
++	if (mPropList["text:start-value"])
++		// odf as to the version 1.1 does require the text:start-value to be a positive integer, means > 0
++		if (mPropList["text:start-value"]->getInt() > 0)
++			listLevelStyleOpen.addAttribute("text:start-value", mPropList["text:start-value"]->getStr());
++		else
++			listLevelStyleOpen.addAttribute("text:start-value", "1");
+ 	listLevelStyleOpen.write(pHandler);
+ 
+-	TagOpenElement stylePropertiesOpen("style:properties");
+-        if (mPropList["text:space-before"])
+-                stylePropertiesOpen.addAttribute("text:space-before", mPropList["text:space-before"]->getStr());
+-	if (mPropList["text:min-label-width"])
++	TagOpenElement stylePropertiesOpen("style:list-level-properties");
++	if (mPropList["text:space-before"] && mPropList["text:space-before"]->getFloat() > 0.0f)
++		stylePropertiesOpen.addAttribute("text:space-before", mPropList["text:space-before"]->getStr());
++	if (mPropList["text:min-label-width"] && mPropList["text:min-label-width"]->getFloat() > 0.0f)
+ 		stylePropertiesOpen.addAttribute("text:min-label-width", mPropList["text:min-label-width"]->getStr());
+-	if (mPropList["text:min-label-distance"])
++	if (mPropList["text:min-label-distance"] && mPropList["text:min-label-distance"]->getFloat() > 0.0f)
+ 		stylePropertiesOpen.addAttribute("text:min-label-distance", mPropList["text:min-label-distance"]->getStr());
+ 	stylePropertiesOpen.write(pHandler);
+ 
+-	pHandler->endElement("style:properties");
++	pHandler->endElement("style:list-level-properties");
+ 	pHandler->endElement("text:list-level-style-number");
+ }
+ 
+@@ -85,29 +95,38 @@
+ 		setListLevel(iLevel, new UnorderedListLevelStyle(xPropList));
+ }
+ 
+-void UnorderedListLevelStyle::write(DocumentHandler *pHandler, int iLevel) const
++void UnorderedListLevelStyle::write(DocumentHandlerInterface *pHandler, int iLevel) const
+ {
+ 	WPXString sLevel;
+ 	sLevel.sprintf("%i", (iLevel+1));
+ 	TagOpenElement listLevelStyleOpen("text:list-level-style-bullet");
+ 	listLevelStyleOpen.addAttribute("text:level", sLevel);
+-	listLevelStyleOpen.addAttribute("text:style-name", "Bullet Symbols");
+-	listLevelStyleOpen.addAttribute("style:num-suffice", ".");
+-        if (mPropList["text:bullet-char"])
+-                listLevelStyleOpen.addAttribute("text:bullet-char", mPropList["text:bullet-char"]->getStr());
++	listLevelStyleOpen.addAttribute("text:style-name", "Bullet_Symbols");
++	if (mPropList["text:bullet-char"] && (mPropList["text:bullet-char"]->getStr().len()))
++	{
++		// The following is needed because the odf format does not accept bullet chars longer than one character
++		WPXString::Iter i(mPropList["text:bullet-char"]->getStr()); i.rewind();
++		WPXString sEscapedString(".");
++		if (i.next())
++			sEscapedString = WPXString(i(), true);
++		listLevelStyleOpen.addAttribute("text:bullet-char", sEscapedString);
++		
++	}
++	else
++		listLevelStyleOpen.addAttribute("text:bullet-char", ".");
+ 	listLevelStyleOpen.write(pHandler);
+ 
+-	TagOpenElement stylePropertiesOpen("style:properties");
+-        if (mPropList["text:space-before"])
+-                stylePropertiesOpen.addAttribute("text:space-before", mPropList["text:space-before"]->getStr());
+-	if (mPropList["text:min-label-width"])
++	TagOpenElement stylePropertiesOpen("style:list-level-properties");
++	if (mPropList["text:space-before"] && mPropList["text:space-before"]->getFloat() > 0.0f)
++		stylePropertiesOpen.addAttribute("text:space-before", mPropList["text:space-before"]->getStr());
++	if (mPropList["text:min-label-width"] && mPropList["text:min-label-width"]->getFloat() > 0.0f)
+ 		stylePropertiesOpen.addAttribute("text:min-label-width", mPropList["text:min-label-width"]->getStr());
+-	if (mPropList["text:min-label-distance"])
++	if (mPropList["text:min-label-distance"] && mPropList["text:min-label-distance"]->getFloat() > 0.0f)
+ 		stylePropertiesOpen.addAttribute("text:min-label-distance", mPropList["text:min-label-distance"]->getStr());
+ 	stylePropertiesOpen.addAttribute("style:font-name", "OpenSymbol");
+ 	stylePropertiesOpen.write(pHandler);
+ 
+-	pHandler->endElement("style:properties");
++	pHandler->endElement("style:list-level-properties");
+ 	pHandler->endElement("text:list-level-style-bullet");
+ }
+ 
+@@ -146,7 +165,7 @@
+ 		mppListLevels[iLevel] = iListLevelStyle;
+ }
+ 
+-void ListStyle::write(DocumentHandler *pHandler) const
++void ListStyle::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	TagOpenElement listStyleOpenElement("text:list-style");
+ 	listStyleOpenElement.addAttribute("style:name", getName());
+--- writerperfect/source/filter/ListStyle.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/ListStyle.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -21,23 +21,18 @@
+  *
+  */
+ 
+-/* "This product is not manufactured, approved, or supported by
++/* "This product is not manufactured, approved, or supported by 
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ #ifndef _LISTSTYLE_H
+ #define _LISTSTYLE_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ 
+ #define WP6_NUM_LIST_LEVELS 8 // see WP6FileStructure.h (we shouldn't need to reference this)
+ 
+ #include "Style.hxx"
+ #include "WriterProperties.hxx"
++#include "DocumentHandlerInterface.hxx"
+ 
+ class DocumentElement;
+ 
+@@ -45,14 +40,14 @@
+ {
+ public:
+ 	virtual ~ListLevelStyle() {};
+-	virtual void write(DocumentHandler *pHandler, int iLevel) const = 0;
++	virtual void write(DocumentHandlerInterface *pHandler, int iLevel) const = 0;
+ };
+ 
+ class OrderedListLevelStyle : public ListLevelStyle
+ {
+ public:
+ 	OrderedListLevelStyle(const WPXPropertyList &xPropList);
+-	void write(DocumentHandler *pHandler, int iLevel) const;
++	void write(DocumentHandlerInterface *pHandler, int iLevel) const;
+ private:
+         WPXPropertyList mPropList;
+ };
+@@ -61,7 +56,7 @@
+ {
+ public:
+ 	UnorderedListLevelStyle(const WPXPropertyList &xPropList);
+-	void write(DocumentHandler *pHandler, int iLevel) const;
++	void write(DocumentHandlerInterface *pHandler, int iLevel) const;
+ private:
+         WPXPropertyList mPropList;
+ };
+@@ -72,7 +67,7 @@
+ 	ListStyle(const char *psName, const int iListID);
+ 	virtual ~ListStyle();
+ 	virtual void updateListLevel(const int iLevel, const WPXPropertyList &xPropList) = 0;
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 	const int getListID() { return miListID; }
+ 	const bool isListLevelDefined(int iLevel) const;
+ 
+--- writerperfect/source/filter/makefile.mk	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/makefile.mk	2008-04-09 11:04:24.000000000 +0200
+@@ -12,24 +12,28 @@
+ INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
+ .ENDIF
+ 
+-.IF "$(SYSTEM_LIBWPS)" == "YES"
+-INCPRE+=$(LIBWPS_CFLAGS)
++.IF "$(SYSTEM_LIBWPG)" == "YES"
++INCPRE+=$(LIBWPG_CFLAGS)
+ .ELSE
+-INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpg
+ .ENDIF
+ 
++
+ # broken but ... necessary, internal include shafted ...
+ INCPRE+= -I..
+ 
+ SLOFILES= \
+-	$(SLO)$/DocumentElement.obj		\
+-	$(SLO)$/FontStyle.obj			\
+-	$(SLO)$/ListStyle.obj			\
+-	$(SLO)$/DocumentHandler.obj		\
+-	$(SLO)$/PageSpan.obj			\
+-	$(SLO)$/SectionStyle.obj		\
+-	$(SLO)$/TableStyle.obj			\
+-	$(SLO)$/TextRunStyle.obj 		\
+-	$(SLO)$/DocumentCollector.obj
++	$(SLO)$/DocumentCollector.obj \
++	$(SLO)$/DocumentElement.obj \
++	$(SLO)$/DocumentHandler.obj \
++	$(SLO)$/FontStyle.obj \
++	$(SLO)$/GraphicsStyle.obj \
++	$(SLO)$/InternalHandler.obj \
++	$(SLO)$/ListStyle.obj \
++	$(SLO)$/OdgExporter.obj \
++	$(SLO)$/PageSpan.obj \
++	$(SLO)$/SectionStyle.obj \
++	$(SLO)$/TableStyle.obj \
++	$(SLO)$/TextRunStyle.obj
+ 
+ .INCLUDE :  target.mk
+--- writerperfect/source/filter/OdgExporter.cxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/OdgExporter.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,615 @@
++/* libwpg
++ * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
++ * Copyright (C) 2006 Fridrich Strba .strba@bluewin.ch)
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the 
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
++ * Boston, MA  02111-1301 USA
++ *
++ * For further information visit http://libwpg.sourceforge.net
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#include "OdgExporter.hxx"
++#include "DocumentElement.hxx"
++#include "DocumentHandlerInterface.hxx"
++#include <locale.h>
++#include <string>
++
++OdgExporter::OdgExporter(DocumentHandlerInterface *pHandler, const bool isFlatXML):
++	mpHandler(pHandler),
++	mxFillRule(AlternatingFill),
++	miGradientIndex(1),
++	miDashIndex(1), 
++	miGraphicsStyleIndex(1),
++	mfWidth(0.0f),
++	mfHeight(0.0f),
++	mbIsFlatXML(isFlatXML)
++{
++}
++
++OdgExporter::~OdgExporter()
++{
++
++	for (std::vector<DocumentElement *>::iterator iterBody = mBodyElements.begin(); iterBody != mBodyElements.end(); iterBody++)
++	{
++		delete (*iterBody);
++		(*iterBody) = NULL;
++	}
++
++	for (std::vector<DocumentElement *>::iterator iterGraphicsAutomaticStyles = mGraphicsAutomaticStyles.begin();
++		iterGraphicsAutomaticStyles != mGraphicsAutomaticStyles.end(); iterGraphicsAutomaticStyles++)
++	{
++		delete((*iterGraphicsAutomaticStyles));
++	}
++
++	for (std::vector<DocumentElement *>::iterator iterGraphicsStrokeDashStyles = mGraphicsStrokeDashStyles.begin();
++		iterGraphicsStrokeDashStyles != mGraphicsStrokeDashStyles.end(); iterGraphicsStrokeDashStyles++)
++	{
++		delete((*iterGraphicsStrokeDashStyles));
++	}
++
++	for (std::vector<DocumentElement *>::iterator iterGraphicsGradientStyles = mGraphicsGradientStyles.begin();
++		iterGraphicsGradientStyles != mGraphicsGradientStyles.end(); iterGraphicsGradientStyles++)
++	{
++		delete((*iterGraphicsGradientStyles));
++	}
++}
++
++void OdgExporter::startGraphics(double width, double height)
++{
++	miGradientIndex = 1;
++	miDashIndex = 1;
++	miGraphicsStyleIndex = 1;
++	mfWidth = width;
++	mfHeight = height;
++
++	mpHandler->startDocument();
++	TagOpenElement tmpOfficeDocumentContent("office:document");
++	tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/");
++	tmpOfficeDocumentContent.addAttribute("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0");
++	tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office");
++	tmpOfficeDocumentContent.addAttribute("office:version", "1.0");
++	if (mbIsFlatXML)
++		tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/vnd.oasis.opendocument.graphics");	
++	tmpOfficeDocumentContent.write(mpHandler);
++	
++	TagOpenElement("office:settings").write(mpHandler);
++	
++	TagOpenElement configItemSetOpenElement("config:config-item-set");
++	configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings");
++	configItemSetOpenElement.write(mpHandler);
++	
++	TagOpenElement configItemOpenElement("config:config-item");
++
++	configItemOpenElement.addAttribute("config:name", "VisibleAreaTop");
++	configItemOpenElement.addAttribute("config:type", "int");
++	configItemOpenElement.write(mpHandler);
++	mpHandler->characters("0");
++	mpHandler->endElement("config:config-item");
++	
++	configItemOpenElement.addAttribute("config:name", "VisibleAreaLeft");
++	configItemOpenElement.addAttribute("config:type", "int");
++	configItemOpenElement.write(mpHandler);
++	mpHandler->characters("0");
++	mpHandler->endElement("config:config-item");
++	
++	configItemOpenElement.addAttribute("config:name", "VisibleAreaWidth");
++	configItemOpenElement.addAttribute("config:type", "int");
++	configItemOpenElement.write(mpHandler);
++	WPXString sWidth; sWidth.sprintf("%li", (unsigned long)(2540 * width));
++	mpHandler->characters(sWidth);
++	mpHandler->endElement("config:config-item");
++	
++	configItemOpenElement.addAttribute("config:name", "VisibleAreaHeight");
++	configItemOpenElement.addAttribute("config:type", "int");
++	configItemOpenElement.write(mpHandler);
++	WPXString sHeight; sHeight.sprintf("%li", (unsigned long)(2540 * height));
++	mpHandler->characters(sHeight);
++	mpHandler->endElement("config:config-item");
++	
++	mpHandler->endElement("config:config-item-set");
++	
++	mpHandler->endElement("office:settings");
++}
++
++void OdgExporter::endGraphics()
++{
++	TagOpenElement("office:styles").write(mpHandler);
++
++	for (std::vector<DocumentElement *>::const_iterator iterGraphicsStrokeDashStyles = mGraphicsStrokeDashStyles.begin();
++		iterGraphicsStrokeDashStyles != mGraphicsStrokeDashStyles.end(); iterGraphicsStrokeDashStyles++)
++	{
++		(*iterGraphicsStrokeDashStyles)->write(mpHandler);
++	}
++
++	for (std::vector<DocumentElement *>::const_iterator iterGraphicsGradientStyles = mGraphicsGradientStyles.begin();
++		iterGraphicsGradientStyles != mGraphicsGradientStyles.end(); iterGraphicsGradientStyles++)
++	{
++		(*iterGraphicsGradientStyles)->write(mpHandler);
++	}
++	
++	mpHandler->endElement("office:styles");
++	
++	TagOpenElement("office:automatic-styles").write(mpHandler);
++
++	// writing out the graphics automatic styles
++	for (std::vector<DocumentElement *>::iterator iterGraphicsAutomaticStyles = mGraphicsAutomaticStyles.begin();
++		iterGraphicsAutomaticStyles != mGraphicsAutomaticStyles.end(); iterGraphicsAutomaticStyles++)
++	{
++		(*iterGraphicsAutomaticStyles)->write(mpHandler);
++	}
++
++	TagOpenElement tmpStylePageLayoutOpenElement("style:page-layout");
++	tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0");
++	tmpStylePageLayoutOpenElement.write(mpHandler);
++
++	TagOpenElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in");
++	WPXString sValue;
++	sValue = doubleToString(mfWidth); sValue.append("in");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", sValue);
++	sValue = doubleToString(mfHeight); sValue.append("in");
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", sValue);
++	tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait");
++	tmpStylePageLayoutPropertiesOpenElement.write(mpHandler);
++
++	mpHandler->endElement("style:page-layout-properties");
++
++	mpHandler->endElement("style:page-layout");
++
++	TagOpenElement tmpStyleStyleOpenElement("style:style");
++	tmpStyleStyleOpenElement.addAttribute("style:name", "dp1");
++	tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page");
++	tmpStyleStyleOpenElement.write(mpHandler);
++
++	TagOpenElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties");
++	// tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border");
++	tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none");
++	tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler);
++
++	mpHandler->endElement("style:drawing-page-properties");
++
++	mpHandler->endElement("style:style");
++	
++	mpHandler->endElement("office:automatic-styles");
++
++
++	TagOpenElement("office:master-styles").write(mpHandler);
++
++	TagOpenElement tmpStyleMasterPageOpenElement("style:master-page");
++	tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default");
++	tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0");
++	tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1");
++	tmpStyleMasterPageOpenElement.write(mpHandler);
++
++	mpHandler->endElement("style:master-page");
++
++	mpHandler->endElement("office:master-styles");
++
++	TagOpenElement("office:body").write(mpHandler);
++
++	TagOpenElement("office:drawing").write(mpHandler);
++
++	TagOpenElement tmpDrawPageOpenElement("draw:page");
++	tmpDrawPageOpenElement.addAttribute("draw:name", "page1");
++	tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1");
++	tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default");
++	tmpDrawPageOpenElement.write(mpHandler);
++
++	for (std::vector<DocumentElement *>::const_iterator bodyIter = mBodyElements.begin();
++		bodyIter != mBodyElements.end(); bodyIter++)
++	{
++		(*bodyIter)->write(mpHandler);
++	}	
++
++	mpHandler->endElement("draw:page");
++	mpHandler->endElement("office:drawing");
++	mpHandler->endElement("office:body");
++	mpHandler->endElement("office:document");
++
++	mpHandler->endDocument();
++}
++
++void OdgExporter::setPen(const libwpg::WPGPen& pen)
++{
++	mxPen = pen;
++}
++
++void OdgExporter::setBrush(const libwpg::WPGBrush& brush)
++{
++	mxBrush = brush;
++}
++
++void OdgExporter::setFillRule(FillRule rule)
++{
++	mxFillRule = rule;
++}
++
++void OdgExporter::startLayer(unsigned int /* id */)
++{
++}
++
++void OdgExporter::endLayer(unsigned int)
++{
++}
++
++void OdgExporter::drawRectangle(const libwpg::WPGRect& rect, double rx, double /* ry */)
++{
++	writeGraphicsStyle();
++	TagOpenElement *pDrawRectElement = new TagOpenElement("draw:rect");
++	WPXString sValue;
++	sValue.sprintf("gr%i", miGraphicsStyleIndex-1);
++	pDrawRectElement->addAttribute("draw:style-name", sValue);
++	sValue = doubleToString(rect.x1); sValue.append("in");
++	pDrawRectElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(rect.y1); sValue.append("in");
++	pDrawRectElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(rect.x2-rect.x1); sValue.append("in");
++	pDrawRectElement->addAttribute("svg:width", sValue);
++	sValue = doubleToString(rect.y2-rect.y1); sValue.append("in");
++	pDrawRectElement->addAttribute("svg:height", sValue);
++	sValue = doubleToString(rx); sValue.append("in");
++	// FIXME: what to do when rx != ry ?
++	pDrawRectElement->addAttribute("draw:corner-radius", sValue);
++	mBodyElements.push_back(pDrawRectElement);
++	mBodyElements.push_back(new TagCloseElement("draw:rect"));	
++}
++
++void OdgExporter::drawEllipse(const libwpg::WPGPoint& center, double rx, double ry)
++{
++	writeGraphicsStyle();
++	TagOpenElement *pDrawEllipseElement = new TagOpenElement("draw:ellipse");
++	WPXString sValue;
++	sValue.sprintf("gr%i", miGraphicsStyleIndex-1);
++	pDrawEllipseElement->addAttribute("draw:style-name", sValue);
++	sValue = doubleToString(center.x-rx); sValue.append("in");
++	pDrawEllipseElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(center.y-ry); sValue.append("in");
++	pDrawEllipseElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(2 * rx); sValue.append("in");
++	pDrawEllipseElement->addAttribute("svg:width", sValue);
++	sValue = doubleToString(2 * ry); sValue.append("in");
++	pDrawEllipseElement->addAttribute("svg:height", sValue);
++	mBodyElements.push_back(pDrawEllipseElement);
++	mBodyElements.push_back(new TagCloseElement("draw:ellipse"));
++}
++
++void OdgExporter::drawPolygon(const libwpg::WPGPointArray& vertices)
++{
++	if(vertices.count() < 2)
++		return;
++
++	if(vertices.count() == 2)
++	{
++		const libwpg::WPGPoint& p1 = vertices[0];
++		const libwpg::WPGPoint& p2 = vertices[1];
++
++		writeGraphicsStyle();
++		TagOpenElement *pDrawLineElement = new TagOpenElement("draw:line");
++		WPXString sValue;
++		sValue.sprintf("gr%i", miGraphicsStyleIndex-1);
++		pDrawLineElement->addAttribute("draw:style-name", sValue);
++		pDrawLineElement->addAttribute("draw:text-style-name", "P1");
++		pDrawLineElement->addAttribute("draw:layer", "layout");
++		sValue = doubleToString(p1.x); sValue.append("in");
++		pDrawLineElement->addAttribute("svg:x1", sValue);
++		sValue = doubleToString(p1.y); sValue.append("in");
++		pDrawLineElement->addAttribute("svg:y1", sValue);
++		sValue = doubleToString(p2.x); sValue.append("in");
++		pDrawLineElement->addAttribute("svg:x2", sValue);
++		sValue = doubleToString(p2.y); sValue.append("in");
++		pDrawLineElement->addAttribute("svg:y2", sValue);
++		mBodyElements.push_back(pDrawLineElement);
++		mBodyElements.push_back(new TagCloseElement("draw:line"));
++	}
++	else
++	{
++		// draw as path
++		libwpg::WPGPath path;
++		path.moveTo(vertices[0]);
++		for(unsigned long ii = 1; ii < vertices.count(); ii++)
++			path.lineTo(vertices[ii]);
++		path.closed = true;
++		drawPath(path);
++	}
++}
++
++void OdgExporter::drawPath(const libwpg::WPGPath& path)
++{
++	if(path.count() == 0)
++		return;
++
++	// try to find the bounding box
++	// this is simple convex hull technique, the bounding box might not be
++	// accurate but that should be enough for this purpose
++	libwpg::WPGPoint p = path.element(0).point;
++	libwpg::WPGPoint q = path.element(0).point;
++	for(unsigned k = 0; k < path.count(); k++)
++	{
++		libwpg::WPGPathElement element = path.element(k);
++		p.x = (p.x > element.point.x) ? element.point.x : p.x; 
++		p.y = (p.y > element.point.y) ? element.point.y : p.y; 
++		q.x = (q.x < element.point.x) ? element.point.x : q.x; 
++		q.y = (q.y < element.point.y) ? element.point.y : q.y; 
++		if(element.type == libwpg::WPGPathElement::CurveToElement)
++		{
++			p.x = (p.x > element.extra1.x) ? element.extra1.x : p.x; 
++			p.y = (p.y > element.extra1.y) ? element.extra1.y : p.y; 
++			q.x = (q.x < element.extra1.x) ? element.extra1.x : q.x; 
++			q.y = (q.y < element.extra1.y) ? element.extra1.y : q.y; 
++			p.x = (p.x > element.extra2.x) ? element.extra2.x : p.x; 
++			p.y = (p.y > element.extra2.y) ? element.extra2.y : p.y; 
++			q.x = (q.x < element.extra2.x) ? element.extra2.x : q.x; 
++			q.y = (q.y < element.extra2.y) ? element.extra2.y : q.y; 
++		}
++	}
++	double vw = q.x - p.x;
++	double vh = q.y - p.y;
++		
++	writeGraphicsStyle();
++
++	TagOpenElement *pDrawPathElement = new TagOpenElement("draw:path");
++	WPXString sValue;
++	sValue.sprintf("gr%i", miGraphicsStyleIndex-1);
++	pDrawPathElement->addAttribute("draw:style-name", sValue);
++	pDrawPathElement->addAttribute("draw:text-style-name", "P1");
++	pDrawPathElement->addAttribute("draw:layer", "layout");
++	sValue = doubleToString(p.x); sValue.append("in");
++	pDrawPathElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(p.y); sValue.append("in");
++	pDrawPathElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(vw); sValue.append("in");
++	pDrawPathElement->addAttribute("svg:width", sValue);
++	sValue = doubleToString(vh); sValue.append("in");
++	pDrawPathElement->addAttribute("svg:height", sValue);
++	sValue.sprintf("%i %i %i %i", 0, 0, (unsigned)(vw*2540), (unsigned)(vh*2540));
++	pDrawPathElement->addAttribute("svg:viewBox", sValue);
++
++    sValue.clear();
++	for(unsigned i = 0; i < path.count(); i++)
++	{
++		libwpg::WPGPathElement element = path.element(i);
++		libwpg::WPGPoint point = element.point;
++        WPXString sElement;
++		switch(element.type)
++		{
++			// 2540 is 2.54*1000, 2.54 in = 1 inch
++			case libwpg::WPGPathElement::MoveToElement:
++			    sElement.sprintf("M%i %i", (unsigned)((point.x-p.x)*2540), (unsigned)((point.y-p.y)*2540));
++				break;
++				
++			case libwpg::WPGPathElement::LineToElement:
++			    sElement.sprintf("L%i %i", (unsigned)((point.x-p.x)*2540), (unsigned)((point.y-p.y)*2540));
++				break;
++			
++			case libwpg::WPGPathElement::CurveToElement:
++                sElement.sprintf("C%i %i %i %i %i %i", (unsigned)((element.extra1.x-p.x)*2540),
++                (int)((element.extra1.y-p.y)*2540), (unsigned)((element.extra2.x-p.x)*2540),
++                (int)((element.extra2.y-p.y)*2540), (unsigned)((point.x-p.x)*2540), (unsigned)((point.y-p.y)*2540));
++				break;
++			
++			default:
++				break;
++		}
++		sValue.append(sElement);
++	}
++    if(path.closed)
++		sValue.append(" Z");
++	pDrawPathElement->addAttribute("svg:d", sValue);
++	mBodyElements.push_back(pDrawPathElement);
++	mBodyElements.push_back(new TagCloseElement("draw:path"));
++}
++
++void OdgExporter::drawBitmap(const libwpg::WPGBitmap& bitmap)
++{
++	TagOpenElement *pDrawFrameElement = new TagOpenElement("draw:frame");
++	WPXString sValue;
++	sValue = doubleToString(bitmap.rect.x1); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(bitmap.rect.y1); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(bitmap.rect.height()); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:height", sValue);
++	sValue = doubleToString(bitmap.rect.width()); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:width", sValue);
++	mBodyElements.push_back(pDrawFrameElement);
++	
++	mBodyElements.push_back(new TagOpenElement("draw:image"));
++	
++	mBodyElements.push_back(new TagOpenElement("office:binary-data"));
++	
++	libwpg::WPGString base64Binary;
++	bitmap.generateBase64DIB(base64Binary);
++	mBodyElements.push_back(new CharDataElement(base64Binary.cstr()));
++	
++	mBodyElements.push_back(new TagCloseElement("office:binary-data"));
++	
++	mBodyElements.push_back(new TagCloseElement("draw:image"));
++	
++	mBodyElements.push_back(new TagCloseElement("draw:frame"));
++}
++
++void OdgExporter::drawImageObject(const libwpg::WPGBinaryData& binaryData)
++{
++	if (binaryData.mimeType.length() <= 0)
++		return;
++	TagOpenElement *pDrawFrameElement = new TagOpenElement("draw:frame");
++	WPXString sValue;
++	sValue = doubleToString(binaryData.rect.x1); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:x", sValue);
++	sValue = doubleToString(binaryData.rect.y1); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:y", sValue);
++	sValue = doubleToString(binaryData.rect.height()); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:height", sValue);
++	sValue = doubleToString(binaryData.rect.width()); sValue.append("in");
++	pDrawFrameElement->addAttribute("svg:width", sValue);
++	mBodyElements.push_back(pDrawFrameElement);
++	
++	mBodyElements.push_back(new TagOpenElement("draw:image"));
++	
++	mBodyElements.push_back(new TagOpenElement("office:binary-data"));
++	
++	libwpg::WPGString base64Binary = binaryData.getBase64Data();
++	mBodyElements.push_back(new CharDataElement(base64Binary.cstr()));
++	
++	mBodyElements.push_back(new TagCloseElement("office:binary-data"));
++	
++	mBodyElements.push_back(new TagCloseElement("draw:image"));
++	
++	mBodyElements.push_back(new TagCloseElement("draw:frame"));
++}
++
++void OdgExporter::writeGraphicsStyle()
++{
++	if(!mxPen.solid && (mxPen.dashArray.count() >=2 ) )
++	{
++		// ODG only supports dashes with the same length of spaces inbetween
++		// here we take the first space and assume everything else the same
++		// note that dash length is written in percentage ?????????????????
++		double distance = mxPen.dashArray.at(1);
++		TagOpenElement *pDrawStrokeDashElement = new TagOpenElement("draw:stroke-dash");
++		pDrawStrokeDashElement->addAttribute("draw:style", "rect");
++		WPXString sValue;
++		sValue.sprintf("Dash_%i", miDashIndex++);
++		pDrawStrokeDashElement->addAttribute("draw:name", sValue);
++		sValue = doubleToString(distance); sValue.append("in");
++		pDrawStrokeDashElement->addAttribute("draw:distance", sValue);
++		WPXString sName;
++		// We have to find out how to do this intelligently, since the ODF is allowing only
++		// two pairs draw:dots1 draw:dots1-length and draw:dots2 draw:dots2-length
++		for(unsigned i = 0; i < mxPen.dashArray.count()/2 && i < 2; i++)
++		{
++			sName.sprintf("draw:dots%i", i+1);
++			pDrawStrokeDashElement->addAttribute(sName.cstr(), "1");
++			sName.sprintf("draw:dots%i-length", i+1);
++			sValue = doubleToString(mxPen.dashArray.at(i*2)); sValue.append("in");
++			pDrawStrokeDashElement->addAttribute(sName.cstr(), sValue);
++		}
++		mGraphicsStrokeDashStyles.push_back(pDrawStrokeDashElement);
++		mGraphicsStrokeDashStyles.push_back(new TagCloseElement("draw:stroke-dash"));
++	}
++
++	if(mxBrush.style == libwpg::WPGBrush::Gradient)
++	{
++		TagOpenElement *pDrawGradientElement = new TagOpenElement("draw:gradient");
++		pDrawGradientElement->addAttribute("draw:style", "linear");
++		WPXString sValue;
++		sValue.sprintf("Gradient_%i", miGradientIndex++);
++		pDrawGradientElement->addAttribute("draw:name", sValue);
++
++		// ODG angle unit is 0.1 degree
++		double angle = -mxBrush.gradient.angle();
++		while(angle < 0)
++			angle += 360;
++		while(angle > 360)
++			angle -= 360;
++
++		sValue.sprintf("%i", (unsigned)(angle*10));
++		pDrawGradientElement->addAttribute("draw:angle", sValue);
++
++		libwpg::WPGColor startColor = mxBrush.gradient.stopColor(0);
++		libwpg::WPGColor stopColor = mxBrush.gradient.stopColor(1);
++		sValue.sprintf("#%.2x%.2x%.2x", (startColor.red & 0xff), (startColor.green & 0xff), (startColor.blue & 0xff));
++		pDrawGradientElement->addAttribute("draw:start-color", sValue);
++		sValue.sprintf("#%.2x%.2x%.2x", (stopColor.red & 0xff), (stopColor.green & 0xff), (stopColor.blue & 0xff));
++		pDrawGradientElement->addAttribute("draw:end-color", sValue);
++		pDrawGradientElement->addAttribute("draw:start-intensity", "100%");
++		pDrawGradientElement->addAttribute("draw:end-intensity", "100%");
++		pDrawGradientElement->addAttribute("draw:border", "0%");
++		mGraphicsGradientStyles.push_back(pDrawGradientElement);
++		mGraphicsGradientStyles.push_back(new TagCloseElement("draw:gradient"));
++	}
++
++	TagOpenElement *pStyleStyleElement = new TagOpenElement("style:style");
++	WPXString sValue;
++	sValue.sprintf("gr%i",  miGraphicsStyleIndex);
++	pStyleStyleElement->addAttribute("style:name", sValue);
++	pStyleStyleElement->addAttribute("style:family", "graphic");
++	pStyleStyleElement->addAttribute("style:parent-style-name", "standard");
++	mGraphicsAutomaticStyles.push_back(pStyleStyleElement);
++
++	TagOpenElement *pStyleGraphicsPropertiesElement = new TagOpenElement("style:graphic-properties");
++
++	if(mxPen.width > 0.0)
++	{
++		sValue = doubleToString(mxPen.width); sValue.append("in");
++		pStyleGraphicsPropertiesElement->addAttribute("svg:stroke-width", sValue);
++		sValue.sprintf("#%.2x%.2x%.2x", (mxPen.foreColor.red & 0xff),
++			(mxPen.foreColor.green & 0xff), (mxPen.foreColor.blue & 0xff));
++		pStyleGraphicsPropertiesElement->addAttribute("svg:stroke-color", sValue);
++
++		if(!mxPen.solid)
++		{
++			pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "dash");
++			sValue.sprintf("Dash_%i", miDashIndex-1);
++			pStyleGraphicsPropertiesElement->addAttribute("draw:stroke-dash", sValue);
++		}
++	}
++	else
++		pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "none");
++
++	if(mxBrush.style == libwpg::WPGBrush::NoBrush)
++		pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "none");
++
++	if(mxBrush.style == libwpg::WPGBrush::Solid)
++	{
++		pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "solid");
++		sValue.sprintf("#%.2x%.2x%.2x", (mxBrush.foreColor.red & 0xff),
++			(mxBrush.foreColor.green & 0xff), (mxBrush.foreColor.blue & 0xff));
++		pStyleGraphicsPropertiesElement->addAttribute("draw:fill-color", sValue);
++	}
++
++	if(mxBrush.style == libwpg::WPGBrush::Gradient)
++	{
++		pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "gradient");
++		sValue.sprintf("Gradient_%i", miGradientIndex-1);
++		pStyleGraphicsPropertiesElement->addAttribute("draw:fill-gradient-name", sValue);
++	}
++
++	mGraphicsAutomaticStyles.push_back(pStyleGraphicsPropertiesElement);
++	mGraphicsAutomaticStyles.push_back(new TagCloseElement("style:graphic-properties"));
++
++	mGraphicsAutomaticStyles.push_back(new TagCloseElement("style:style"));
++	miGraphicsStyleIndex++;
++}
++
++WPXString OdgExporter::doubleToString(const double value)
++{
++	WPXString tempString;
++	tempString.sprintf("%.4f", value);
++	std::string decimalPoint(localeconv()->decimal_point);
++	if ((decimalPoint.size() == 0) || (decimalPoint == "."))
++		return tempString;
++	std::string stringValue(tempString.cstr());
++	if (!stringValue.empty())
++	{
++		std::string::size_type pos;
++		while ((pos = stringValue.find(decimalPoint)) != std::string::npos)
++			stringValue.replace(pos,decimalPoint.size(),".");
++	}
++	return WPXString(stringValue.c_str());
++}
+--- writerperfect/source/filter/OdgExporter.hxx	1970-01-01 01:00:00.000000000 +0100
++++ writerperfect/source/filter/OdgExporter.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -0,0 +1,85 @@
++/* libwpg
++ * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the 
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
++ * Boston, MA  02111-1301 USA
++ *
++ * For further information visit http://libwpg.sourceforge.net
++ */
++
++/* "This product is not manufactured, approved, or supported by
++ * Corel Corporation or Corel Corporation Limited."
++ */
++
++#ifndef __ODGEXPORTER_HXX__
++#define __ODGEXPORTER_HXX__
++
++#include <iostream>
++#include <sstream>
++#include <string>
++
++#include <libwpd/WPXString.h>
++#include <libwpg/libwpg.h>
++#include "DocumentElement.hxx"
++#include "DocumentHandlerInterface.hxx"
++
++class OdgExporter : public libwpg::WPGPaintInterface {
++public:
++	OdgExporter(DocumentHandlerInterface *pHandler, const bool isFlatXML = false);
++	~OdgExporter();
++
++	void startGraphics(double width, double height);
++	void endGraphics();
++	void startLayer(unsigned int id);
++	void endLayer(unsigned int id);
++
++	void setPen(const libwpg::WPGPen& pen);
++	void setBrush(const libwpg::WPGBrush& brush);
++	void setFillRule(FillRule rule);
++
++	void drawRectangle(const libwpg::WPGRect& rect, double rx, double ry);
++	void drawEllipse(const libwpg::WPGPoint& center, double rx, double ry);
++	void drawPolygon(const libwpg::WPGPointArray& vertices);
++	void drawPath(const libwpg::WPGPath& path);
++	void drawBitmap(const libwpg::WPGBitmap& bitmap);
++	void drawImageObject(const libwpg::WPGBinaryData& binaryData);
++
++private:
++	void writeGraphicsStyle();
++	WPXString doubleToString(const double value);
++	
++	// body elements
++	std::vector <DocumentElement *> mBodyElements;
++
++	// graphics styles
++	std::vector<DocumentElement *> mGraphicsStrokeDashStyles;
++	std::vector<DocumentElement *> mGraphicsGradientStyles;
++	std::vector<DocumentElement *> mGraphicsAutomaticStyles;
++
++	DocumentHandlerInterface *mpHandler;
++
++	libwpg::WPGPen mxPen;
++	libwpg::WPGBrush mxBrush;
++	FillRule mxFillRule;
++	int miGradientIndex;
++	int miDashIndex;
++	int miGraphicsStyleIndex;
++	double mfWidth;
++	double mfHeight;
++
++	const bool mbIsFlatXML;
++};
++
++#endif // __ODGEXPORTER_HXX__
+--- writerperfect/source/filter/PageSpan.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/PageSpan.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -103,39 +103,38 @@
+          return 0.0f; 
+ }
+ 
+-void PageSpan::writePageMaster(const int iNum, DocumentHandler *pHandler) const
++void PageSpan::writePageLayout(const int iNum, DocumentHandlerInterface *pHandler) const
+ {
+         WPXPropertyList propList;
+         
+-	WPXString sPageMasterName; 
+-        sPageMasterName.sprintf("PM%i", iNum /* +2 */);
+-        propList.insert("style:name", sPageMasterName);
+-
+-	pHandler->startElement("style:page-master", propList);
++	WPXString sPageLayoutName; 
++        sPageLayoutName.sprintf("PM%i", iNum+2);
++        propList.insert("style:name", sPageLayoutName);
++	pHandler->startElement("style:page-layout", propList);
+ 
+ 	WPXPropertyList tempPropList = mxPropList;
+ 	if (!tempPropList["style:writing-mode"])
+ 		tempPropList.insert("style:writing-mode", WPXString("lr-tb"));
+ 	if (!tempPropList["style:footnote-max-height"])
+-		tempPropList.insert("style:footnote-max-height", WPXString("0inch"));
+-        pHandler->startElement("style:properties", tempPropList);
++		tempPropList.insert("style:footnote-max-height", WPXString("0in"));
++        pHandler->startElement("style:page-layout-properties", tempPropList);
+ 	
+ 	WPXPropertyList footnoteSepPropList;
+-	footnoteSepPropList.insert("style:width", WPXString("0.0071inch"));
+-	footnoteSepPropList.insert("style:distance-before-sep", WPXString("0.0398inch"));
+-	footnoteSepPropList.insert("style:distance-after-sep", WPXString("0.0398inch"));
++	footnoteSepPropList.insert("style:width", WPXString("0.0071in"));
++	footnoteSepPropList.insert("style:distance-before-sep", WPXString("0.0398in"));
++	footnoteSepPropList.insert("style:distance-after-sep", WPXString("0.0398in"));
+ 	footnoteSepPropList.insert("style:adjustment", WPXString("left"));
+ 	footnoteSepPropList.insert("style:rel-width", WPXString("25%"));
+ 	footnoteSepPropList.insert("style:color", WPXString("#000000"));
+ 	pHandler->startElement("style:footnote-sep", footnoteSepPropList);
+ 	
+ 	pHandler->endElement("style:footnote-sep");
+-        pHandler->endElement("style:properties");
+-        pHandler->endElement("style:page-master");
++        pHandler->endElement("style:page-layout-properties");
++        pHandler->endElement("style:page-layout");
+ }
+ 
+-void PageSpan::writeMasterPages(const int iStartingNum, const int iPageMasterNum, const bool bLastPageSpan, 
+-                                DocumentHandler *pHandler) const
++void PageSpan::writeMasterPages(const int iStartingNum, const int iPageLayoutNum, const bool bLastPageSpan, 
++                                DocumentHandlerInterface *pHandler) const
+ {
+ 	int iSpan = 0;
+ 	(bLastPageSpan) ? iSpan = 1 : iSpan = getSpan();
+@@ -143,38 +142,66 @@
+ 	for (int i=iStartingNum; i<(iStartingNum+iSpan); i++)
+ 	{
+ 		TagOpenElement masterPageOpen("style:master-page");
+-		WPXString sMasterPageName;
+-		sMasterPageName.sprintf("Page Style %i", i);
+-		WPXString sPageMasterName;
+-		sPageMasterName.sprintf("PM%i", iPageMasterNum /* +2 */);
++		WPXString sMasterPageName, sMasterPageDisplayName;
++		sMasterPageName.sprintf("Page_Style_%i", i);
++		sMasterPageDisplayName.sprintf("Page Style %i", i);
++		WPXString sPageLayoutName;
+ 		WPXPropertyList propList;
++		sPageLayoutName.sprintf("PM%i", iPageLayoutNum+2);
+                 propList.insert("style:name", sMasterPageName);
+-		propList.insert("style:page-master-name", sPageMasterName);
++		propList.insert("style:display-name", sMasterPageDisplayName);
++		propList.insert("style:page-layout-name", sPageLayoutName);
+ 		if (!bLastPageSpan)
+ 		{
+ 			WPXString sNextMasterPageName;
+-			sNextMasterPageName.sprintf("Page Style %i", (i+1));
++			sNextMasterPageName.sprintf("Page_Style_%i", (i+1));
+                         propList.insert("style:next-style-name", sNextMasterPageName);
+ 		}
+                 pHandler->startElement("style:master-page", propList);
+ 
+ 		if (mpHeaderContent)
++		{
+ 			_writeHeaderFooter("style:header", *mpHeaderContent, pHandler);
+-		if (mpHeaderLeftContent)
++			pHandler->endElement("style:header");
++			if (mpHeaderLeftContent)
++			{
++				_writeHeaderFooter("style:header-left", *mpHeaderLeftContent, pHandler);
++				pHandler->endElement("style:header-left");
++			}
++		}
++		else if (mpHeaderLeftContent)
++		{
++			TagOpenElement("style:header").write(pHandler);
++			pHandler->endElement("style:header");
+ 			_writeHeaderFooter("style:header-left", *mpHeaderLeftContent, pHandler);
++			pHandler->endElement("style:header-left");
++		}
++			
+ 		if (mpFooterContent)
++		{
+ 			_writeHeaderFooter("style:footer", *mpFooterContent, pHandler);
+-		if (mpFooterLeftContent)
++			pHandler->endElement("style:footer");
++			if (mpFooterLeftContent)
++			{
++				_writeHeaderFooter("style:footer-left", *mpFooterLeftContent, pHandler);
++				pHandler->endElement("style:footer-left");
++			}
++		}
++		else if (mpFooterLeftContent)
++		{
++			TagOpenElement("style:footer").write(pHandler);
++			pHandler->endElement("style:footer");
+ 			_writeHeaderFooter("style:footer-left", *mpFooterLeftContent, pHandler);
++			pHandler->endElement("style:footer-left");
++		}
+ 
+                 pHandler->endElement("style:master-page");
+ 	}
+-
+ }
+ 
+ void PageSpan::_writeHeaderFooter(const char *headerFooterTagName,
+ 				  const std::vector<DocumentElement *> & headerFooterContent,
+-				  DocumentHandler *pHandler) const
++				  DocumentHandlerInterface *pHandler) const
+ {
+ 	TagOpenElement headerFooterOpen(headerFooterTagName);
+ 	headerFooterOpen.write(pHandler);
+@@ -183,7 +210,4 @@
+ 	     iter++) {
+ 		(*iter)->write(pHandler);
+ 	}
+-	TagCloseElement headerFooterClose(headerFooterTagName);
+-	headerFooterClose.write(pHandler);
+ }
+-
+--- writerperfect/source/filter/PageSpan.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/PageSpan.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -26,25 +26,20 @@
+  */
+ #ifndef _PAGESPAN_H
+ #define _PAGESPAN_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ #include <vector>
+ 
++#include "DocumentHandlerInterface.hxx"
++
+ class DocumentElement;
+-class DocumentHandler;
+ 
+ class PageSpan
+ {
+ public:
+ 	PageSpan(const WPXPropertyList &xPropList);
+ 	virtual ~PageSpan();
+-	void writePageMaster(const int iNum, DocumentHandler *pHandler) const;
+-	void writeMasterPages(const int iStartingNum, const int iPageMasterNum, const bool bLastPageSpan, DocumentHandler *pHandler) const;
++	void writePageLayout(const int iNum, DocumentHandlerInterface *pHandler) const;
++	void writeMasterPages(const int iStartingNum, const int iPageLayoutNum, const bool bLastPageSpan, DocumentHandlerInterface *pHandler) const;
+ 	int getSpan() const;
+ 	float getMarginLeft() const;
+ 	float getMarginRight() const;
+@@ -56,7 +51,7 @@
+ 	void setFooterLeftContent(std::vector<DocumentElement *> * pFooterContent) { mpFooterLeftContent = pFooterContent; }
+ protected:
+ 	void _writeHeaderFooter(const char *headerFooterTagName, const std::vector<DocumentElement *> & headerFooterContent,
+-				DocumentHandler *pHandler) const;
++				DocumentHandlerInterface *pHandler) const;
+ private:
+         WPXPropertyList mxPropList;
+ 	std::vector<DocumentElement *> * mpHeaderContent;
+--- writerperfect/source/filter/SectionStyle.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/SectionStyle.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -33,7 +33,7 @@
+ 
+ #ifdef _MSC_VER
+ double rint(double x);
+-#endif /* _MSC_VER */
++#endif /* _WIN32 */
+ 
+ SectionStyle::SectionStyle(const WPXPropertyList &xPropList, 
+                            const WPXPropertyListVector &xColumns, 
+@@ -44,7 +44,7 @@
+ {
+ }
+ 
+-void SectionStyle::write(DocumentHandler *pHandler) const
++void SectionStyle::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	TagOpenElement styleOpen("style:style");
+ 	styleOpen.addAttribute("style:name", getName());
+@@ -53,15 +53,15 @@
+ 
+ 	// if the number of columns is <= 1, we will never come here. This is only an additional check
+ 	// style properties
+-	pHandler->startElement("style:properties", mPropList);
++	pHandler->startElement("style:section-properties", mPropList);
+ 
+ 	// column properties
+ 	WPXPropertyList columnProps;
+ 
+ 	if (mColumns.count() > 1)
+ 	{		
+-                columnProps.insert("fo:column-count", (int)mColumns.count());
+-                pHandler->startElement("style:columns", columnProps);
++		columnProps.insert("fo:column-count", (int)mColumns.count());
++ 		pHandler->startElement("style:columns", columnProps);
+ 	
+                 WPXPropertyListVector::Iter i(mColumns);
+                 for (i.rewind(); i.next();)
+@@ -80,7 +80,7 @@
+ 	pHandler->endElement("style:columns");
+ 
+ 		
+-	pHandler->endElement("style:properties");
++	pHandler->endElement("style:section-properties");
+ 
+ 	pHandler->endElement("style:style");
+ }
+--- writerperfect/source/filter/SectionStyle.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/SectionStyle.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -21,19 +21,13 @@
+  *
+  */
+ 
+-/* "This product is not manufactured, approved, or supported by
++/* "This product is not manufactured, approved, or supported by 
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ #ifndef _SECTIONSTYLE_H
+ #define _SECTIONSTYLE_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+ #include <libwpd/WPXPropertyListVector.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ 
+ #include "Style.hxx"
+ #include "WriterProperties.hxx"
+@@ -43,10 +37,10 @@
+ {
+ public:
+ 	SectionStyle(const WPXPropertyList &xPropList, const WPXPropertyListVector &xColumns, const char *psName);
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 
+ private:
+-        WPXPropertyList mPropList;
++	WPXPropertyList mPropList;
+ 	WPXPropertyListVector mColumns;
+ };
+ #endif
+--- writerperfect/source/filter/Style.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/Style.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -21,19 +21,13 @@
+  *
+  */
+ 
+-/* "This product is not manufactured, approved, or supported by
++/* "This product is not manufactured, approved, or supported by 
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ 
+ #ifndef _STYLE_H
+ #define _STYLE_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ #include "DocumentElement.hxx"
+ 
+ class TopLevelElementStyle
+@@ -54,7 +48,7 @@
+ 	Style(const WPXString &psName) : msName(psName) {}
+ 	virtual ~Style() {}
+ 
+-	virtual void write(DocumentHandler * /* pHandler */) const {};
++	virtual void write(DocumentHandlerInterface * /* pHandler */) const {};
+ 	const WPXString &getName() const { return msName; }
+ 
+  private:
+--- writerperfect/source/filter/TableStyle.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/TableStyle.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -27,7 +27,6 @@
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ #include <math.h>
+-#include <string.h>
+ #include "FilterInternal.hxx"
+ #include "TableStyle.hxx"
+ #include "DocumentElement.hxx"
+@@ -36,13 +35,15 @@
+ #include <minmax.h>
+ #endif
+ 
++#include <string.h>
++
+ TableCellStyle::TableCellStyle(const WPXPropertyList &xPropList, const char *psName) :
+ 	Style(psName),
+         mPropList(xPropList)
+ {
+ }
+ 
+-void TableCellStyle::write(DocumentHandler *pHandler) const
++void TableCellStyle::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	TagOpenElement styleOpen("style:style");
+ 	styleOpen.addAttribute("style:name", getName());
+@@ -58,9 +59,9 @@
+                 if (strlen(i.key()) > 2 && strncmp(i.key(), "fo", 2) == 0)
+                         stylePropList.insert(i.key(), i()->clone());
+         }
+-        stylePropList.insert("fo:padding", "0.0382inch");
+-        pHandler->startElement("style:properties", stylePropList);
+-	pHandler->endElement("style:properties");
++        stylePropList.insert("fo:padding", "0.0382in");
++        pHandler->startElement("style:table-cell-properties", stylePropList);
++	pHandler->endElement("style:table-cell-properties");
+ 
+ 	pHandler->endElement("style:style");	
+ }
+@@ -71,20 +72,21 @@
+ {
+ }
+ 
+-void TableRowStyle::write(DocumentHandler *pHandler) const
++void TableRowStyle::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	TagOpenElement styleOpen("style:style");
+ 	styleOpen.addAttribute("style:name", getName());
+ 	styleOpen.addAttribute("style:family", "table-row");
+ 	styleOpen.write(pHandler);
+ 	
+-        TagOpenElement stylePropertiesOpen("style:properties");
++        TagOpenElement stylePropertiesOpen("style:table-row-properties");
+         if (mPropList["style:min-row-height"])
+                 stylePropertiesOpen.addAttribute("style:min-row-height", mPropList["style:min-row-height"]->getStr());
+         else if (mPropList["style:row-height"])
+                 stylePropertiesOpen.addAttribute("style:row-height", mPropList["style:row-height"]->getStr());
++	stylePropertiesOpen.addAttribute("fo:keep-together", "auto");
+         stylePropertiesOpen.write(pHandler);
+-        pHandler->endElement("style:properties");
++        pHandler->endElement("style:table-row-properties");
+ 	
+ 	pHandler->endElement("style:style");		
+ }
+@@ -105,10 +107,9 @@
+ 		delete(*iterTableCellStyles);
+ 	for (TRSVIter iterTableRowStyles = mTableRowStyles.begin() ; iterTableRowStyles != mTableRowStyles.end(); iterTableRowStyles++)
+ 		delete(*iterTableRowStyles);
+-
+ }
+ 
+-void TableStyle::write(DocumentHandler *pHandler) const
++void TableStyle::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	TagOpenElement styleOpen("style:style");
+ 	styleOpen.addAttribute("style:name", getName());
+@@ -117,7 +118,7 @@
+ 		styleOpen.addAttribute("style:master-page-name", getMasterPageName()->cstr());
+ 	styleOpen.write(pHandler);
+ 
+-	TagOpenElement stylePropertiesOpen("style:properties");
++	TagOpenElement stylePropertiesOpen("style:table-properties");
+         if (mPropList["table:align"])
+                 stylePropertiesOpen.addAttribute("table:align", mPropList["table:align"]->getStr());
+ 	if (mPropList["fo:margin-left"])
+@@ -130,23 +131,23 @@
+ 		stylePropertiesOpen.addAttribute("fo:break-before", mPropList["fo:break-before"]->getStr());
+ 	stylePropertiesOpen.write(pHandler);
+ 
+-	pHandler->endElement("style:properties");
++	pHandler->endElement("style:table-properties");
+ 
+ 	pHandler->endElement("style:style");
+ 		
+ 	int i=1;
+-        WPXPropertyListVector::Iter j(mColumns);
++	WPXPropertyListVector::Iter j(mColumns);
+ 	for (j.rewind(); j.next();)
+ 	{
+-		TagOpenElement styleNestedOpen("style:style");
++		TagOpenElement styleOpen2("style:style");
+ 		WPXString sColumnName;
+ 		sColumnName.sprintf("%s.Column%i", getName().cstr(), i);
+-		styleNestedOpen.addAttribute("style:name", sColumnName);
+-		styleNestedOpen.addAttribute("style:family", "table-column");
+-		styleNestedOpen.write(pHandler);
++		styleOpen2.addAttribute("style:name", sColumnName);
++		styleOpen2.addAttribute("style:family", "table-column");
++		styleOpen2.write(pHandler);
+ 
+-                pHandler->startElement("style:properties", j());
+-		pHandler->endElement("style:properties");
++		pHandler->startElement("style:table-column-properties", j());
++		pHandler->endElement("style:table-column-properties");
+ 
+ 		pHandler->endElement("style:style");
+ 
+--- writerperfect/source/filter/TableStyle.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/TableStyle.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -22,57 +22,53 @@
+  *
+  */
+ 
+-/* "This product is not manufactured, approved, or supported by
++/* "This product is not manufactured, approved, or supported by 
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ #ifndef _TABLESTYLE_H
+ #define _TABLESTYLE_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ #include <vector>
+ 
+ #include "Style.hxx"
+ #include "WriterProperties.hxx"
++#include "DocumentHandlerInterface.hxx"
+ 
+ class DocumentElement;
+-class DocumentHandler;
+ 
+ class TableCellStyle : public Style
+ {
+ public:
++	virtual ~TableCellStyle() {};
+ 	TableCellStyle(const WPXPropertyList &xPropList, const char *psName);
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ private:
+-        WPXPropertyList mPropList;
++	WPXPropertyList mPropList;
+ };
+ 
+ class TableRowStyle : public Style
+ {
+ public:
++	virtual ~TableRowStyle() {};
+ 	TableRowStyle(const WPXPropertyList &propList, const char *psName);
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ private:
+-        WPXPropertyList mPropList;
++	WPXPropertyList mPropList;
+ };
+ 
+ class TableStyle : public Style, public TopLevelElementStyle
+ {
+ public:
+ 	TableStyle(const WPXPropertyList &xPropList, const WPXPropertyListVector &columns, const char *psName);
+-	~TableStyle();
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual ~TableStyle();
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 	const int getNumColumns() const { return mColumns.count(); }
+ 	void addTableCellStyle(TableCellStyle *pTableCellStyle) { mTableCellStyles.push_back(pTableCellStyle); }
+ 	int getNumTableCellStyles() { return mTableCellStyles.size(); }
+ 	void addTableRowStyle(TableRowStyle *pTableRowStyle) { mTableRowStyles.push_back(pTableRowStyle); }
+ 	int getNumTableRowStyles() { return mTableRowStyles.size(); }
+-private:
+-        WPXPropertyList mPropList;
++private:	
++	WPXPropertyList mPropList;
+ 	WPXPropertyListVector mColumns;
+ 	std::vector<TableCellStyle *> mTableCellStyles;
+ 	std::vector<TableRowStyle *> mTableRowStyles;
+--- writerperfect/source/filter/TextRunStyle.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/TextRunStyle.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -50,91 +50,95 @@
+ 	delete mpPropList;
+ }
+ 
+-void ParagraphStyle::write(DocumentHandler *pHandler) const
++void ParagraphStyle::write(DocumentHandlerInterface *pHandler) const
+ {
+ 	WRITER_DEBUG_MSG(("Writing a paragraph style..\n"));
+ 
+-        WPXPropertyList propList;
++	WPXPropertyList propList;
+ 	propList.insert("style:name", msName.cstr());
+ 	propList.insert("style:family", "paragraph");
+ 	propList.insert("style:parent-style-name", (*mpPropList)["style:parent-style-name"]->getStr());
+ 	if ((*mpPropList)["style:master-page-name"])
+ 		propList.insert("style:master-page-name", (*mpPropList)["style:master-page-name"]->getStr());
+-        pHandler->startElement("style:style", propList);
++	pHandler->startElement("style:style", propList);
+ 
+-        propList.clear();
+-	WPXPropertyList::Iter k((*mpPropList));
+-	for (k.rewind(); k.next(); )
+-	{
+-                if (strcmp(k.key(), "style:list-style-name") == 0)
+-                        propList.insert("style:list-style-name", k()->getStr());
+-		if (strcmp(k.key(), "fo:margin-left") == 0)
+-			propList.insert("fo:margin-left", k()->getStr());
+-		if (strcmp(k.key(), "fo:margin-right") == 0)
+-			propList.insert("fo:margin-right", k()->getStr());
+-		if (strcmp(k.key(), "fo:text-indent") == 0)
+-			propList.insert("fo:text-indent", k()->getStr());
+-		if (strcmp(k.key(), "fo:margin-top") == 0)
+-			propList.insert("fo:margin-top", k()->getStr());
+-		if (strcmp(k.key(), "fo:margin-bottom") == 0)
++	propList.clear();
++	WPXPropertyList::Iter i((*mpPropList));
++	for (i.rewind(); i.next(); )
++	{
++#if 0
++		if (strcmp(i.key(), "style:list-style-name") == 0)
++			propList.insert("style:list-style-name", i()->getStr());
++#endif
++		if (strcmp(i.key(), "fo:margin-left") == 0)
++			propList.insert("fo:margin-left", i()->getStr());
++		if (strcmp(i.key(), "fo:margin-right") == 0)
++			propList.insert("fo:margin-right", i()->getStr());
++		if (strcmp(i.key(), "fo:text-indent") == 0)
++			propList.insert("fo:text-indent", i()->getStr());
++		if (strcmp(i.key(), "fo:margin-top") == 0)
++			propList.insert("fo:margin-top", i()->getStr());
++		if (strcmp(i.key(), "fo:margin-bottom") == 0)
+ 		{
+-			if (k()->getFloat() > 0.0f)
+-				propList.insert("fo:margin-bottom", k()->getStr());
++			if (i()->getFloat() > 0.0f)
++				propList.insert("fo:margin-bottom", i()->getStr());
+ 			else
+ 				propList.insert("fo:margin-bottom", 0.0f);
+ 		}
+-		if (strcmp(k.key(), "fo:line-height") == 0)
+-			propList.insert("fo:line-height", k()->getStr());
+-		if (strcmp(k.key(), "fo:break-before") == 0) 
+-			propList.insert("fo:break-before", k()->getStr());
+-		if (strcmp(k.key(), "fo:text-align") == 0) 
+-			propList.insert("fo:text-align", k()->getStr());
+-                if (strcmp(k.key(), "fo:text-align-last") == 0)
+-                        propList.insert("fo:text-align-last", k()->getStr());
++		if (strcmp(i.key(), "fo:line-height") == 0)
++			propList.insert("fo:line-height", i()->getStr());
++		if (strcmp(i.key(), "fo:break-before") == 0) 
++			propList.insert("fo:break-before", i()->getStr());
++		if (strcmp(i.key(), "fo:text-align") == 0) 
++			propList.insert("fo:text-align", i()->getStr());
++		if (strcmp(i.key(), "fo:text-align-last") == 0)
++			propList.insert("fo:text-align-last", i()->getStr());
+ 	}
+ 	
+ 	propList.insert("style:justify-single-word", "false");
+-	pHandler->startElement("style:properties", propList);
++	pHandler->startElement("style:paragraph-properties", propList);
+ 
+-        if (mxTabStops.count() > 0) 
+-        {
+-                TagOpenElement tabListOpen("style:tab-stops");
+-                tabListOpen.write(pHandler);
+-                WPXPropertyListVector::Iter i(mxTabStops);
+-                for (i.rewind(); i.next();)
+-                {
+-                        TagOpenElement tabStopOpen("style:tab-stop");
+-                        
+-                        WPXPropertyList::Iter j(i());
+-                        for (j.rewind(); j.next(); )
+-                        {
+-                                tabStopOpen.addAttribute(j.key(), j()->getStr().cstr());			
+-                        }
+-                        tabStopOpen.write(pHandler);
+-                        pHandler->endElement("style:tab-stop");
+-                }
+-                pHandler->endElement("style:tab-stops");
+-        }
++	if (mxTabStops.count() > 0) 
++	{
++		TagOpenElement tabListOpen("style:tab-stops");
++		tabListOpen.write(pHandler);
++		WPXPropertyListVector::Iter i2(mxTabStops);
++		for (i2.rewind(); i2.next();)
++		{
++			if (i2()["style:position"] && i2()["style:position"]->getFloat() < 0)
++				continue;
++			TagOpenElement tabStopOpen("style:tab-stop");
++			
++			WPXPropertyList::Iter j(i2());
++			for (j.rewind(); j.next(); )
++			{
++				tabStopOpen.addAttribute(j.key(), j()->getStr().cstr());			
++			}
++			tabStopOpen.write(pHandler);
++			pHandler->endElement("style:tab-stop");
++		}
++		pHandler->endElement("style:tab-stops");
++	}
+ 
+-	pHandler->endElement("style:properties");
++	pHandler->endElement("style:paragraph-properties");
+ 	pHandler->endElement("style:style");
+ }
+ 
+ SpanStyle::SpanStyle(const char *psName, const WPXPropertyList &xPropList) :
+ 	Style(psName),
+-        mPropList(xPropList)
++	mPropList(xPropList)
+ {
+ }
+ 
+-void SpanStyle::write(DocumentHandler *pHandler) const 
++void SpanStyle::write(DocumentHandlerInterface *pHandler) const 
+ {
+ 	WRITER_DEBUG_MSG(("Writing a span style..\n"));
+-        WPXPropertyList styleOpenList;    
++	WPXPropertyList styleOpenList;    
+ 	styleOpenList.insert("style:name", getName());
+ 	styleOpenList.insert("style:family", "text");
+-        pHandler->startElement("style:style", styleOpenList);
++	pHandler->startElement("style:style", styleOpenList);
+ 
+-        WPXPropertyList propList(mPropList);    
++	WPXPropertyList propList(mPropList);    
+ 
+ 	if (mPropList["style:font-name"])
+ 	{
+@@ -144,8 +148,13 @@
+ 
+ 	if (mPropList["fo:font-size"])
+ 	{
+-		propList.insert("style:font-size-asian", mPropList["fo:font-size"]->getStr());
+-		propList.insert("style:font-size-complex", mPropList["fo:font-size"]->getStr());
++		if (mPropList["fo:font-size"]->getFloat() > 0.0f)
++		{
++			propList.insert("style:font-size-asian", mPropList["fo:font-size"]->getStr());
++			propList.insert("style:font-size-complex", mPropList["fo:font-size"]->getStr());
++		}
++		else
++			propList.remove("fo:font-size");
+ 	}
+ 	
+ 	if (mPropList["fo:font-weight"])
+@@ -160,8 +169,8 @@
+ 		propList.insert("style:font-style-complex", mPropList["fo:font-style"]->getStr());
+ 	}
+ 
+-        pHandler->startElement("style:properties", propList);
++	pHandler->startElement("style:text-properties", propList);
+ 
+-	pHandler->endElement("style:properties");
++	pHandler->endElement("style:text-properties");
+ 	pHandler->endElement("style:style");
+ }
+--- writerperfect/source/filter/TextRunStyle.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/TextRunStyle.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -29,26 +29,19 @@
+ 
+ #ifndef _TEXTRUNSTYLE_H
+ #define _TEXTRUNSTYLE_H
+-#if defined _MSC_VER
+-#pragma warning( push, 1 )
+-#endif
+ #include <libwpd/libwpd.h>
+-#if defined _MSC_VER
+-#pragma warning( pop )
+-#endif
+ 
+ #include "Style.hxx"
+ 
+ class TagOpenElement;
+ class DocumentElement;
+-class DocumentHandler;
+ 
+ class ParagraphStyle
+ {
+ public:
+ 	ParagraphStyle(WPXPropertyList *propList, const WPXPropertyListVector &tabStops, const WPXString &sName);
+ 	virtual ~ParagraphStyle();
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 	WPXString getName() const { return msName; }
+ private:
+ 	WPXPropertyList *mpPropList;
+@@ -61,7 +54,7 @@
+ {
+ public:
+ 	SpanStyle(const char *psName, const WPXPropertyList &xPropList);
+-	virtual void write(DocumentHandler *pHandler) const;
++	virtual void write(DocumentHandlerInterface *pHandler) const;
+ 
+ private:
+         WPXPropertyList mPropList;
+--- writerperfect/source/filter/WriterProperties.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/filter/WriterProperties.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -32,5 +32,4 @@
+ #define IMP_DEFAULT_FONT_NAME "Times New Roman"
+ #define IMP_DEFAULT_FONT_SIZE 12.0f
+ #define IMP_DEFAULT_FONT_PITCH "variable"
+-#define IMP_DEFAULT_FONT_COLOR (new RGBSColor(0x00,0x00,0x00,0x64))
+ #endif
+--- writerperfect/source/stream/WPXSvStream.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/stream/WPXSvStream.cxx	2008-04-09 11:06:19.000000000 +0200
+@@ -9,7 +9,7 @@
+ using namespace ::com::sun::star::io;
+ 
+ WPXSvInputStream::WPXSvInputStream( Reference< XInputStream > xStream ) :
+-		WPSInputStream(),
++		WPXInputStream(),
+ 		mxChildStorage(),
+ 		mxChildStream(),
+ 		mxStream(xStream),
+@@ -41,7 +41,7 @@
+ {
+ }
+ 
+-const uint8_t * WPXSvInputStream::read(size_t numBytes, size_t &numBytesRead)
++const unsigned char * WPXSvInputStream::read(size_t numBytes, size_t &numBytesRead)
+ {
+ 	numBytesRead = 0;
+ 
+@@ -52,7 +52,7 @@
+ 	if (numBytesRead == 0)
+ 		return 0;
+ 
+-	return (const uint8_t *)maData.getConstArray();
++	return (const unsigned char *)maData.getConstArray();
+ }
+ 
+ long WPXSvInputStream::tell()
+@@ -167,8 +167,3 @@
+ 	else
+ 		return 0;
+ }
+-
+-WPXInputStream * WPXSvInputStream::getDocumentOLEStream()
+-{
+-	return getDocumentOLEStream( "PerfectOffice_MAIN" );
+-}
+--- writerperfect/source/stream/WPXSvStream.h	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/stream/WPXSvStream.h	2008-04-09 11:04:24.000000000 +0200
+@@ -12,13 +12,12 @@
+ #if defined _MSC_VER
+ #pragma warning( push, 1 )
+ #endif
+-#include <libwps/WPSStream.h>
+-#include <libwpd/WPXStream.h>
++#include <libwpd-stream/WPXStream.h>
+ #if defined _MSC_VER
+ #pragma warning( pop )
+ #endif
+ 
+-class WPXSvInputStream : public WPSInputStream
++class WPXSvInputStream : public WPXInputStream
+ {
+ public:
+ 	WPXSvInputStream( ::com::sun::star::uno::Reference<
+@@ -26,10 +25,9 @@
+ 	virtual ~WPXSvInputStream();
+ 
+ 	virtual bool isOLEStream();
+-	virtual WPXInputStream * getDocumentOLEStream();
+ 	virtual WPXInputStream * getDocumentOLEStream(const char *name);
+ 
+-	virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
++	virtual const unsigned char *read(size_t numBytes, size_t &numBytesRead);
+ 	virtual int seek(long offset, WPX_SEEK_TYPE seekType);
+ 	virtual long tell();
+ 	virtual bool atEOS();
+--- writerperfect/source/wpdimp/makefile.mk	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpdimp/makefile.mk	2008-04-09 11:04:24.000000000 +0200
+@@ -10,12 +10,13 @@
+ INCPRE+=$(LIBWPD_CFLAGS)
+ .ELSE
+ INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd-stream
+ .ENDIF
+ 
+-.IF "$(SYSTEM_LIBWPS)" == "YES"
+-INCPRE+=$(LIBWPS_CFLAGS)
++.IF "$(SYSTEM_LIBWPG)" == "YES"
++INCPRE+=$(LIBWPG_CFLAGS)
+ .ELSE
+-INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpg
+ .ENDIF
+ 
+ # broken but ... necessary, internal include shafted ...
+--- writerperfect/source/wpdimp/WordPerfectCollector.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpdimp/WordPerfectCollector.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -35,7 +35,7 @@
+ #pragma warning( pop )
+ #endif
+ 
+-WordPerfectCollector::WordPerfectCollector(WPSInputStream *pInput, DocumentHandler *pHandler) :
++WordPerfectCollector::WordPerfectCollector(WPXInputStream *pInput, DocumentHandlerInterface *pHandler) :
+ 	DocumentCollector(pInput, pHandler)
+ {
+ }
+@@ -44,9 +44,9 @@
+ {
+ }
+ 
+-bool WordPerfectCollector::parseSourceDocument(WPSInputStream &input)
++bool WordPerfectCollector::parseSourceDocument(WPXInputStream &input)
+ {
+-        WPDResult result = WPDocument::parse(&input, static_cast<WPXHLListenerImpl *>(this));
++        WPDResult result = WPDocument::parse(&input, static_cast<WPXDocumentInterface *>(this), NULL);
+         if (result != WPD_OK)
+                 return false;
+ 
+--- writerperfect/source/wpdimp/WordPerfectCollector.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpdimp/WordPerfectCollector.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -30,12 +30,13 @@
+ #define _WORDPERFECTCOLLECTOR_HXX
+ 
+ #include "filter/DocumentCollector.hxx"
++#include "filter/DocumentHandlerInterface.hxx"
+ 
+ class WordPerfectCollector : public DocumentCollector
+ {
+ public:
+-	WordPerfectCollector(WPSInputStream *pInput, DocumentHandler *pHandler);
++	WordPerfectCollector(WPXInputStream *pInput, DocumentHandlerInterface *pHandler);
+ 	virtual ~WordPerfectCollector();
+-	bool parseSourceDocument(WPSInputStream &pInput);
++	bool parseSourceDocument(WPXInputStream &pInput);
+ };
+ #endif
+--- writerperfect/source/wpdimp/WordPerfectImportFilter.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpdimp/WordPerfectImportFilter.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -136,7 +136,7 @@
+ 	sFileName = OUStringToOString(sURL, RTL_TEXTENCODING_INFO_ASCII);
+ 
+ 	// An XML import service: what we push sax messages to..
+-	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLImporter" ) );
++	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLOasisImporter" ) );
+ 	uno::Reference < XDocumentHandler > xInternalHandler( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
+ 
+ 	// The XImporter sets up an empty target document for XDocumentHandler to write to.. 
+@@ -221,7 +221,7 @@
+ 	if (input.atEOS())
+         return ::rtl::OUString();
+ 
+-	confidence = WPDocument::isFileFormatSupported(&input, false);
++	confidence = WPDocument::isFileFormatSupported(&input);
+ 
+ 	if (confidence == WPD_CONFIDENCE_EXCELLENT)
+ 		sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "writer_WordPerfect_Document" ) );
+--- writerperfect/source/wpgimp/makefile.mk	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpgimp/makefile.mk	2008-04-09 11:04:24.000000000 +0200
+@@ -12,12 +12,6 @@
+ INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
+ .ENDIF
+ 
+-.IF "$(SYSTEM_LIBWPS)" == "YES"
+-INCPRE+=$(LIBWPS_CFLAGS)
+-.ELSE
+-INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwps
+-.ENDIF
+-
+ .IF "$(SYSTEM_LIBWPG)" == "YES"
+ INCPRE+=$(LIBWPG_CFLAGS)
+ .ELSE
+@@ -28,7 +22,6 @@
+ INCPRE+= -I..
+ 
+ SLOFILES= \
+-    $(SLO)$/OdgExporter.obj  \
+     $(SLO)$/WPGImportFilter.obj \
+ 	$(SLO)$/wpgimport_genericfilter.obj		
+ 
+--- writerperfect/source/wpgimp/WPGImportFilter.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpgimp/WPGImportFilter.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -75,7 +75,7 @@
+ #endif
+ 
+ #include "filter/DocumentHandler.hxx"
+-#include "OdgExporter.hxx"
++#include "filter/OdgExporter.hxx"
+ #include "WPGImportFilter.hxx"
+ #include "stream/WPXSvStream.h"
+ 
+@@ -148,16 +148,6 @@
+ 
+ 	WPXInputStream* input = new WPXSvInputStream( xInputStream );
+ 
+-	if (input->isOLEStream())
+-	{
+-		WPXInputStream* olestream = input->getDocumentOLEStream();
+-		if (olestream)
+-		{
+-			delete input;
+-			input = olestream;
+-		}
+-	}
+-
+ 	OdgExporter exporter(&xHandler);
+ 	bool tmpParseResult = libwpg::WPGraphics::parse(input, &exporter);
+ 	if (input)
+@@ -207,16 +197,6 @@
+     
+ 	WPXInputStream* input = new WPXSvInputStream( xInputStream );
+ 
+-	if (input->isOLEStream())
+-	{
+-		WPXInputStream* olestream = input->getDocumentOLEStream();
+-		if (olestream)
+-		{
+-			delete input;
+-			input = olestream;
+-		}
+-	}
+-
+ 	if (libwpg::WPGraphics::isSupported(input))
+ 		sTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM ( "draw_WordPerfect_Graphics" ) );
+ 
+--- writerperfect/source/wpsimp/MSWorksCollector.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpsimp/MSWorksCollector.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -29,7 +29,7 @@
+ #include "MSWorksCollector.hxx"
+ #include <libwps/WPSDocument.h>
+ 
+-MSWorksCollector::MSWorksCollector(WPSInputStream *pInput, DocumentHandler *pHandler) :
++MSWorksCollector::MSWorksCollector(WPXInputStream *pInput, DocumentHandlerInterface *pHandler) :
+ 	DocumentCollector(pInput, pHandler)
+ {
+ }
+@@ -38,9 +38,9 @@
+ {
+ }
+ 
+-bool MSWorksCollector::parseSourceDocument(WPSInputStream &input)
++bool MSWorksCollector::parseSourceDocument(WPXInputStream &input)
+ {
+-        WPSResult result = WPSDocument::parse(&input, static_cast<WPXHLListenerImpl *>(this));
++        WPSResult result = WPSDocument::parse(&input, static_cast<WPXDocumentInterface *>(this));
+         if (result != WPS_OK)
+                 return false;
+ 
+--- writerperfect/source/wpsimp/MSWorksCollector.hxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpsimp/MSWorksCollector.hxx	2008-04-09 11:04:24.000000000 +0200
+@@ -30,12 +30,13 @@
+ #define _MSWORKSCOLLECTOR_HXX
+ 
+ #include "filter/DocumentCollector.hxx"
++#include "filter/DocumentHandlerInterface.hxx"
+ 
+ class MSWorksCollector : public DocumentCollector
+ {
+ public:
+-	MSWorksCollector(WPSInputStream *pInput, DocumentHandler *pHandler);
++	MSWorksCollector(WPXInputStream *pInput, DocumentHandlerInterface *pHandler);
+ 	virtual ~MSWorksCollector();
+-	bool parseSourceDocument(WPSInputStream &input);
++	bool parseSourceDocument(WPXInputStream &input);
+ };
+ #endif
+--- writerperfect/source/wpsimp/MSWorksImportFilter.cxx	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/source/wpsimp/MSWorksImportFilter.cxx	2008-04-09 11:04:24.000000000 +0200
+@@ -127,7 +127,7 @@
+ 	sFileName = OUStringToOString(sURL, RTL_TEXTENCODING_INFO_ASCII);
+ 	
+ 	// An XML import service: what we push sax messages to..
+-	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLImporter" ) );
++	OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.XMLOasisImporter" ) );
+ 	Reference < XDocumentHandler > xInternalHandler( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
+ 
+ 	// The XImporter sets up an empty target document for XDocumentHandler to write to.. 
+--- writerperfect/util/makefile.mk	2008-04-09 11:04:01.000000000 +0200
++++ writerperfect/util/makefile.mk	2008-04-09 11:04:24.000000000 +0200
+@@ -53,7 +53,8 @@
+ 	$(CPPULIB) \
+ 	$(SALLIB) \
+ 	$(XMLOFFLIB) \
+-	$(LIBWPD)
++	$(LIBWPD) \
++	$(LIBWPG)
+ 
+ SHL1TARGET = wpft$(UPD)$(DLLPOSTFIX)
+ SHL1IMPLIB = i$(SHL1TARGET)
+@@ -82,7 +83,8 @@
+ 	$(SALLIB) \
+ 	$(XMLOFFLIB) \
+ 	$(LIBWPS) \
+-	$(LIBWPD)
++	$(LIBWPD) \
++	$(LIBWPG)
+ 
+ SHL2TARGET = msworks$(UPD)$(DLLPOSTFIX)
+ SHL2IMPLIB = i$(SHL2TARGET)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-config_office.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-config_office.diff
@@ -0,0 +1,204 @@
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.223
+retrieving revision 1.216.10.4
+diff -u -p -u -p -r1.223 -r1.216.10.4
+--- config_office/configure.in	25 Oct 2007 16:00:29 -0000	1.223
++++ config_office/configure.in	30 Oct 2007 15:10:26 -0000	1.216.10.4
+@@ -237,9 +237,6 @@ AC_ARG_ENABLE(binfilter,
+ AC_ARG_ENABLE(rpath,
+ [  --disable-rpath         Disable the use of relative paths in shared libraries
+ ],,)
+-AC_ARG_ENABLE(pasf,
+-[  --disable-pasf          disable support for sound using portaudio/sndfile
+-],,enable_pasf=yes)
+ AC_ARG_ENABLE(pam,
+ [  --disable-pam           Disable pam support.
+ ],,)
+@@ -260,9 +257,6 @@ AC_ARG_WITH(myspell-dicts,
+                           distributions where the myspell dictionaries are
+                           installed from other sources
+ ],,)
+-AC_ARG_WITH(nas,
+-[  --without-nas           Build without nas support
+-],,)
+ AC_ARG_WITH(system-libs,
+ [  --with-system-libs      Use libs already on system -- enables all
+                           --with-system-* flags except mozilla, python and
+@@ -362,15 +356,6 @@ AC_ARG_WITH(system-boost,
+ AC_ARG_WITH(system-vigra,
+ [  --with-system-vigra     Use vigra already on system
+ ],,)
+-AC_ARG_WITH(system-nas,
+-[  --with-system-nas       Use nas already on system
+-],,)
+-AC_ARG_WITH(system-sndfile,
+-[  --with-system-sndfile   Use sndfile already on system
+-],,)
+-AC_ARG_WITH(system-portaudio,
+-[  --with-system-portaudio Use portaudio already on system
+-],,)
+ AC_ARG_ENABLE(neon,
+ [  --disable-neon          Disable neon and the compilation of webdav binding
+ ],,)
+@@ -3931,107 +3916,6 @@ AC_SUBST(SYSTEM_XRENDER_HEADERS)
+ AC_SUBST(XRENDER_LINK)
+ 
+ dnl ===================================================================
+-dnl Check for system nas
+-dnl ===================================================================
+-AC_MSG_CHECKING([which nas to use])
+-if test -n "$with_nas"; then
+-    AC_MSG_RESULT([none])
+-elif test -n "$without_nas"; then
+-    ENABLE_NAS=""
+-elif test -n "$with_system_nas" -o -n "$with_system_libs" && \
+-	test "$with_system_nas" != "no"; then
+-    AC_MSG_RESULT([external])
+-    SYSTEM_NAS=YES
+-    AC_CHECK_HEADER(audio/audiolib.h, [ NAS_INCLUDES=/usr/include ],
+-        [
+-             CFLAGS=-I/usr/X11R6/include
+-             AC_CHECK_HEADER(audio/audiolib.h,
+-                 [ NAS_INCLUDES=/usr/X11R6/include ],
+-                 [ AC_MSG_ERROR(no. install nas) ], []
+-             )
+-        ], []
+-    )
+-    AC_CHECK_LIB(audio, AuOpenServer, [],
+-        [AC_MSG_ERROR(nas not found or functional)], [-L$XLIB -lXt])
+-    ENABLE_NAS=YES
+-else
+-    AC_MSG_RESULT([internal])
+-    SYSTEM_NAS=NO
+-    ENABLE_NAS=YES
+-    BUILD_TYPE="$BUILD_TYPE NAS"
+-    dnl ===================================================================
+-    dnl Check whether xmkmf program can be used, x systems only
+-    dnl ===================================================================
+-    if test "$_os" != "WINNT" && test "$_os" != "OSF1"; then
+-       AC_PATH_PROGS(XMKMF, xmkmf)
+-       if test -z "$XMKMF"; then
+-          AC_PATH_PROGS(XMKMF, xmkmf,, [/usr/X11R6/bin])
+-          if test -z "$XMKMF"; then
+-             AC_MSG_ERROR([xmkmf is needed to build nas])
+-          else
+-             PATHEXTRA="$PATHEXTRA:/usr/X11R6/bin"
+-             AC_MSG_WARN([adding /usr/X11R6/bin to the PATH (xmkmf is needed to build nas)])
+-             echo "adding /usr/X11R6/bin to the PATH (xmkmf is needed to build nas)" >> warn
+-             AC_SUBST(PATHEXTRA)
+-          fi
+-       fi
+-    fi
+-fi
+-AC_SUBST(SYSTEM_NAS)
+-AC_SUBST(NAS_INCLUDES)
+-AC_SUBST(ENABLE_NAS)
+-
+-AC_MSG_CHECKING([whether to enable portaudio/sndfile support])
+-if test "$_os" != "WINNT" && \
+-  test "$_os" != "SunOS" && \
+-  test -n "$enable_pasf" && test "$enable_pasf" != "no"; then
+-	AC_MSG_RESULT([yes])
+-   ENABLE_PASF=YES
+-  	AC_MSG_CHECKING([which sndfile to use])
+-	if test -n "$with_system_sndfile" -o -n "$with_system_libs" && \
+-		test "$with_system_sndfile" != "no"; then
+-	   AC_MSG_RESULT([external])
+-	   PKG_CHECK_MODULES(SNDFILE, sndfile)
+-	   SYSTEM_SNDFILE=YES
+-	else
+-           AC_MSG_RESULT([internal])
+-	   SYSTEM_SNDFILE=NO
+-       SNDFILE_LIBS=-lsndfile
+-	    BUILD_TYPE="$BUILD_TYPE SNDFILE"
+-	fi
+-
+-   PA_VER=18
+-	AC_MSG_CHECKING([which portaudio to use])
+-	if test -n "$with_system_portaudio" -o -n "$with_system_libs" && \
+-		test "$with_system_portaudio" != "no"; then
+-	   AC_MSG_RESULT(external)
+-	   AC_CHECK_HEADER(portaudio.h, [],
+-		[AC_MSG_ERROR(portaudio header not found. install portaudio)], [])
+-	   AC_CHECK_LIB(portaudio, Pa_Initialize, [],
+-		[AC_MSG_ERROR(portaudio library not found or functional)], [])
+-	   AC_MSG_CHECKING(portaudio version)
+-	   AC_TRY_LINK([#include <portaudio.h>], [
+-	 /* Pa_GetVersion() only exists in v19, so this fails to build with v18 */
+-        int v = Pa_GetVersion();
+-	   ], [PA_VER=19; AC_MSG_RESULT([OK, v$PA_VER])], [AC_MSG_RESULT([OK, v$PA_VER])])
+-      SYSTEM_PORTAUDIO=YES
+-	else
+-	   AC_MSG_RESULT([internal])
+-	   SYSTEM_PORTAUDIO=NO
+-	   BUILD_TYPE="$BUILD_TYPE PORTAUDIO"
+-	fi
+-else
+-	AC_MSG_RESULT([no])
+-fi
+-AC_SUBST(ENABLE_PASF)
+-AC_SUBST(PA_VER)
+-AC_SUBST(SYSTEM_PORTAUDIO)
+-AC_SUBST(SNDFILE_LIBS)
+-AC_SUBST(SNDFILE_CFLAGS)
+-AC_SUBST(SYSTEM_SNDFILE)
+-AC_SUBST(BUILD_TYPE)
+-
+-dnl ===================================================================
+ dnl Check for building neon
+ dnl ===================================================================
+ AC_MSG_CHECKING([whether to build neon])
+Index: config_office/set_soenv.in
+===================================================================
+RCS file: /cvs/tools/config_office/set_soenv.in,v
+retrieving revision 1.158
+retrieving revision 1.156.12.4
+diff -u -p -u -p -r1.158 -r1.156.12.4
+--- config_office/set_soenv.in	25 Oct 2007 15:45:36 -0000	1.158
++++ config_office/set_soenv.in	30 Oct 2007 15:09:59 -0000	1.156.12.4
+@@ -81,7 +81,7 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAV
+      $STAR_REGISTRY, $STAR_RESOURCEPATH, $DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH,
+      $MSPDB_PATH, $MIDL_PATH, $CSC_PATH,
+      $LD_LIBRARY_PATH, $PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB, 
+-     $SOLARINC, $LOCALINI, $PATHEXTRA, $FRAMEWORKSHOME, $COMEX, $PERL, 
++     $SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL, 
+      $COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME, 
+      $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $NO_HIDS, $TEMP, $COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS,
+      $WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB,
+@@ -1218,10 +1218,6 @@ elsif ($platform =~ m/darwin/)
+ 
+   # Append old PATH
+   $PATH             .= $ps.$oldPATH;
+-
+-  # append PATHEXTRA
+-  $PATHEXTRA         = "@PATHEXTRA@";                      
+-  $PATH             .= $PATHEXTRA;
+ }
+ else
+ {  AddWarning( "set_soenv", "$platform not configured for general environment paths" );
+@@ -1733,7 +1729,6 @@ ToFile( "SCPDEFS",           '@SCPDEFS@'
+ ToFile( "SOLAREXTRAINC",     $SOLAREXTRAINC,     "e" );
+ ToFile( "SOLAREXTRALIB",     $SOLAREXTRALIB,     "e" );
+ ToFile( "PATH",              $PATH,              "e" );
+-ToFile( "PATHEXTRA",         $PATHEXTRA,         "e" );
+ ToFile( "SOLARLIB",          $SOLARLIB,          "e" );
+ ToFile( "SOLARINC",          $SOLARINC,          "e" );
+ ToFile( "COMP_ENV",          $COMP_ENV,          "e" );
+@@ -1844,15 +1839,6 @@ ToFile( "CURL_CFLAGS",       "@CURL_CFLA
+ ToFile( "CURL_LIBS",         "@CURL_LIBS@",        "e" );
+ ToFile( "SYSTEM_BOOST",      "@SYSTEM_BOOST@",     "e" );
+ ToFile( "SYSTEM_VIGRA",      "@SYSTEM_VIGRA@",     "e" );
+-ToFile( "SYSTEM_NAS",        "@SYSTEM_NAS@",       "e" );
+-ToFile( "NAS_INCLUDES",      "@NAS_INCLUDES@",     "e" );
+-ToFile( "ENABLE_NAS",        "@ENABLE_NAS@",       "e" );
+-ToFile( "ENABLE_PASF",       "@ENABLE_PASF@",      "e" );
+-ToFile( "SYSTEM_SNDFILE",    "@SYSTEM_SNDFILE@",   "e" );
+-ToFile( "SNDFILE_CFLAGS",    "@SNDFILE_CFLAGS@",   "e" );
+-ToFile( "SNDFILE_LIBS",	     "@SNDFILE_LIBS@",	   "e" );
+-ToFile( "SYSTEM_PORTAUDIO",  "@SYSTEM_PORTAUDIO@", "e" );
+-ToFile( "PA_VER",            "@PA_VER@",           "e" );
+ ToFile( "SYSTEM_NEON",       "@SYSTEM_NEON@",      "e" );
+ ToFile( "NEON_VERSION",      "@NEON_VERSION@",     "e" );
+ ToFile( "NEON_LIBS",         "@NEON_LIBS@",        "e" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkoo-type.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkoo-type.diff
@@ -0,0 +1,25 @@
+--- solenv/bin/linkoo	2007-03-05 15:43:48.000000000 +0800
++++ solenv/bin/linkoo	2007-03-05 15:48:14.000000000 +0800
+@@ -273,6 +273,14 @@
+ }
+ 
+ # Hack for (renamed) types.rdb (types.db)
++sub link_oovbaapi_rdb()
++{
++    print "oovbaapi.rdb case:";
++    my $src  = "$OOO_BUILD/oovbaapi/$TARGET/ucr";
++    my $dest = "$OOO_INSTALL/program";
++    do_link ($src, $dest, 'oovbaapi.db', 'oovbaapi.rdb');
++    print "\n";
++}
+ sub link_types_rdb()
+ {
+     print "Types.rdb case:";
+@@ -350,6 +358,7 @@
+ scan_and_link_files ($OOO_BUILD, $installed_files, $TARGET);
+ link_iso_res();
+ link_types_rdb();
++link_oovbaapi_rdb();
+ link_soffice_bin_files();
+ 
+ if (!-f "$OOO_INSTALL/program/ooenv") {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autodoc-add-missing-stdio-h.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autodoc-add-missing-stdio-h.diff
@@ -0,0 +1,11 @@
+diff -rN -u old-openoffice.org-2.0.2/ooo-build/build/oob680-m5/autodoc/source/tools/filecoll.cxx new-openoffice.org-2.0.2/ooo-build/build/oob680-m5/autodoc/source/tools/filecoll.cxx
+--- autodoc/source/tools/filecoll.cxx	2006-06-03 12:52:05.000000000 +0200
++++ autodoc/source/tools/filecoll.cxx	2006-06-03 12:52:05.000000000 +0200
+@@ -40,6 +40,7 @@
+ // NOT FULLY DEFINED SERVICES
+ #include <cosv/ploc_dir.hxx>
+ 
++#include <stdio.h>
+ 
+ FileCollector::FileCollector( uintt i_nRoughNrOfFiles )
+     // :    aFoundFiles
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-gtk-accel-n354447.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-gtk-accel-n354447.diff
@@ -0,0 +1,22 @@
+Index: fpicker/source/office/OfficeFilePicker.src
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/office/OfficeFilePicker.src,v
+retrieving revision 1.5
+diff -u -r1.5 OfficeFilePicker.src
+--- fpicker/source/office/OfficeFilePicker.src	19 Apr 2007 12:06:02 -0000	1.5
++++ fpicker/source/office/OfficeFilePicker.src	17 Jan 2008 15:58:41 -0000
+@@ -42,12 +42,12 @@
+ 
+ String STR_SVT_FILEPICKER_PASSWORD
+ {
+-    Text [ en-US ] = "Save with password" ;
++    Text [ en-US ] = "Save with pass~word" ;
+ };
+ 
+ String STR_SVT_FILEPICKER_FILTER_OPTIONS
+ {
+-    Text [ en-US ] = "Edit filter settings";
++    Text [ en-US ] = "~Edit filter settings";
+ };
+ 
+ String STR_SVT_FILEPICKER_READONLY
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sd.diff
@@ -0,0 +1,4 @@
+--- sd/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sd/prj/tests.lst	2007-09-07 19:21:01.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: sd   sd\qa\unoapi                                       nmake - all sd_qa_unoapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-commit-patch-default-dev300.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-commit-patch-default-dev300.diff
@@ -0,0 +1,152 @@
+--- solenv/bin/cws-commit-patch	2006-12-01 17:23:55.000000000 +0100
++++ solenv/bin/cws-commit-patch	2008-03-25 18:49:02.000000000 +0100
+@@ -38,7 +38,7 @@ eval 'exec perl -wS $0 ${1+"$@"}'
+ 
+ use Cwd 'abs_path';
+ 
+-$default_mws = 'SRC680';
++$default_mws = 'DEV300';
+ 
+ sub usage()
+ {
+@@ -109,13 +109,20 @@ sub cws_add_modules($$$@)
+             print STDERR "Unable to open patch '$patch'.";
+             exit 1;
+         }
++        my $minus_name;
+         while (<$PATCH>) {
+-            if ( /^\+\+\+ ([^\/]*)/ ) {
++            if ( /^--- ([^\/]*)/ ) {
++                $minus_name = $1;
++            }
++            elsif ( /^\+\+\+ ([^\/]*)/ ) {
+                 if ( $1 ne "" ) {
+                     $modules{$1} = "add";
+                 }
++                elsif ( $minus_name ne "" ) {
++                    $modules{$minus_name} = "add";
++                }
+                 else {
+-                    print STDERR "Unable to guess module name ($1) from $patch.\n";
++                    print STDERR "Unable to guess module name from $patch.\n";
+                     close( $PATCH );
+                     exit 1;
+                 }
+@@ -183,10 +190,10 @@ sub apply_patches(@)
+     }
+ }
+ 
+-sub cvs_add_files(@)
++sub cvs_add_rm_files(@)
+ {
+     my ( @patches ) = @_;
+-    system( "echo '===== cvs_add_files =====' >> .log" );
++    system( "echo '===== cvs_add_rm_files =====' >> .log" );
+ 
+     my %modules = ();
+ 
+@@ -195,30 +202,48 @@ sub cvs_add_files(@)
+             print STDERR "Unable to open patch '$patch'.";
+             exit 1;
+         }
+-	my $file_add = "";
++        my $file_add = "";
++        my $file_rm = "";
+         while (<$PATCH>) {
+-            if ( /^\+\+\+ ([^\s]*)/ ) {
++            if ( /^--- ([^\s]*)/ ) {
++                if ( $1 ne "" ) {
++                    $file_rm = $1;
++                }
++            }
++            elsif ( /^\+\+\+ ([^\s]*)/ ) {
+                 if ( $1 ne "" ) {
+-		    $file_add = $1;
++                    $file_add = $1;
++                }
++            }
++            elsif ( /^\@\@ .* \+0,0 \@\@$/ && $file_rm ne "" ) {
++                if ( $file_rm =~ /^([^\/]+)\/(.*)/ ) {
++                    my $dir = $1;
++                    my $file = $2;
++
++                    if ( system( "cd $dir && cvs rm $file" ) != 0 ) {
++                        print STDERR "Unable to exec 'cd $dir && cvs rm $file'.\n";
++                        close( $PATCH );
++                        exit 1;
++                    }
+                 }
+             }
+             elsif ( /^\@\@ -0,0 / && $file_add ne "" ) {
+-		my @to_add = split( /\//, $file_add );
+-		my $current = "";
+-		for my $add ( @to_add ) {
+-		    $current .= "/" unless ( $current eq "" );
+-		    my $where_add_dir = $current;
+-		    $current .= $add;
+-
+-		    if ( ( -d "$current" && ! -d "$current/CVS" ) || ( -f "$current" ) ) {
+-			if ( system( "cd $where_add_dir && cvs add $add" ) != 0 ) {
+-			    print STDERR "Unable to exec 'cd $where_add_dir && cvs add $add'.\n";
+-			    close( $PATCH );
+-			    exit 1;
+-			}
+-		    }
+-		}
+-	    }
++                my @to_add = split( /\//, $file_add );
++                my $current = "";
++                for my $add ( @to_add ) {
++                    $current .= "/" unless ( $current eq "" );
++                    my $where_add_dir = $current;
++                    $current .= $add;
++
++                    if ( ( -d "$current" && ! -d "$current/CVS" ) || ( -f "$current" ) ) {
++                        if ( system( "cd $where_add_dir && cvs add $add" ) != 0 ) {
++                            print STDERR "Unable to exec 'cd $where_add_dir && cvs add $add'.\n";
++                            close( $PATCH );
++                            exit 1;
++                        }
++                    }
++                }
++            }
+         }
+         close( $PATCH );
+     }
+@@ -234,7 +259,7 @@ sub cws_commit($$$$$@)
+ 
+     apply_patches( @patches );
+ 
+-    cvs_add_files( @patches );
++    cvs_add_rm_files( @patches );
+ 
+     my @cws_modules = cws_modules( $mws, $cws );
+     my $commit_message = "#i$iz#\n" . $summary;
+@@ -261,10 +286,10 @@ if ( !defined( $ENV{'SOLARENV'} ) || $EN
+     $build_dir =~ s#/solenv/bin/[^/]*$##;
+     my $env_script = "";
+     if ( -f "$build_dir/LinuxIntelEnv.Set.sh" ) {
+-	$env_script = "$build_dir/LinuxIntelEnv.Set.sh";
++        $env_script = "$build_dir/LinuxIntelEnv.Set.sh";
+     }
+     elsif ( -f "$build_dir/LinuxX86-64Env.Set.sh" ) {
+-	$env_script = "$build_dir/LinuxX86-64Env.Set.sh";
++        $env_script = "$build_dir/LinuxX86-64Env.Set.sh";
+     }
+     else {
+         print STDERR "Unable to find '$build_dir/Linux(Intel|X86-64)Env.Set.sh'.\n";
+@@ -312,10 +337,10 @@ while (@ARGV) {
+     }
+     elsif ( $opt eq "-m" || $opt eq "--milestone" ) {
+         $milestone = shift @ARGV;
+-	if (! ( $milestone =~ m/^m/ ) ) {
+-	    $milestone = "m$milestone";
+-	    print "Re-writing milestone to $milestone\n";
+-	}
++        if (! ( $milestone =~ m/^m/ ) ) {
++            $milestone = "m$milestone";
++            print "Re-writing milestone to $milestone\n";
++        }
+     }
+     elsif ( $opt eq "-w" || $opt eq "--mws" ) {
+         $mws = shift @ARGV;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vba-sc-autoshapes-hyperlinks.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vba-sc-autoshapes-hyperlinks.diff
@@ -0,0 +1,1106 @@
+diff -rup ../src680_m217-dr55-applied/xmloff/inc/xmloff/shapeexport.hxx xmloff/inc/xmloff/shapeexport.hxx
+--- ../src680_m217-dr55-applied/xmloff/inc/xmloff/shapeexport.hxx	2007-07-03 11:16:16.000000000 +0100
++++ xmloff/inc/xmloff/shapeexport.hxx	2007-07-04 09:20:57.000000000 +0100
+@@ -231,11 +231,6 @@ private:
+ 	const rtl::OUString							msStartShape;
+ 	const rtl::OUString							msEndShape;
+ 	const rtl::OUString							msOnClick;
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-	const rtl::OUString							msOnAction;
+-	const rtl::OUString							msAction;
+-	const rtl::OUString							msURL;
+-#endif
+ 	const rtl::OUString							msEventType;
+ 	const rtl::OUString							msPresentation;
+ 	const rtl::OUString							msMacroName;
+diff -rup ../src680_m217-dr55-applied/xmloff/source/draw/eventimp.cxx xmloff/source/draw/eventimp.cxx
+--- ../src680_m217-dr55-applied/xmloff/source/draw/eventimp.cxx	2007-07-03 11:16:16.000000000 +0100
++++ xmloff/source/draw/eventimp.cxx	2007-07-04 14:30:58.000000000 +0100
+@@ -147,9 +147,6 @@ public:
+ 
+ 	sal_Bool mbValid;
+ 	sal_Bool mbScript;
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-    sal_Bool mbActionEvent;
+-#endif
+ 	ClickAction meClickAction;
+ 	XMLEffect meEffect;
+ 	XMLEffectDirection meDirection;
+@@ -161,9 +158,6 @@ public:
+ 	OUString msMacroName;
+ 	OUString msBookmark;
+ 	OUString msLanguage;
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-    OUString msHyperURL;
+-#endif
+ };
+ 
+ ///////////////////////////////////////////////////////////////////////
+@@ -222,18 +216,11 @@ TYPEINIT1( SdXMLEventContext, SvXMLImpor
+ 
+ SdXMLEventContext::SdXMLEventContext( SvXMLImport& rImp,  sal_uInt16 nPrfx, const OUString& rLocalName,  const Reference< XAttributeList >& xAttrList, const Reference< XShape >& rxShape )
+ :	SvXMLImportContext(rImp, nPrfx, rLocalName),
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-    mxShape( rxShape ), mbScript( sal_False ), mbActionEvent( sal_False ), meClickAction( ClickAction_NONE ),
+-#else
+     mxShape( rxShape ), mbScript( sal_False ), meClickAction( ClickAction_NONE ),
+-#endif
+ 	meEffect( EK_none ), meDirection( ED_none ), mnStartScale( 100 ),
+ 	meSpeed( AnimationSpeed_MEDIUM ), mnVerb(0), mbPlayFull( sal_False )
+ {
+     static const OUString sXMLClickName( RTL_CONSTASCII_USTRINGPARAM( "click" ) );
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-    static const OUString sXMLActionName( RTL_CONSTASCII_USTRINGPARAM( "action" ) );
+-#endif
+ 
+     if( nPrfx == XML_NAMESPACE_PRESENTATION && IsXMLToken( rLocalName, XML_EVENT_LISTENER ) )
+ 	{
+@@ -304,12 +291,7 @@ SdXMLEventContext::SdXMLEventContext( Sv
+ 				sEventName = sValue;
+ 				sal_uInt16 nScriptPrefix =
+ 					GetImport().GetNamespaceMap().GetKeyByAttrName( sValue, &sEventName );
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-                mbValid = XML_NAMESPACE_DOM == nScriptPrefix && ( sEventName == sXMLClickName || sEventName == sXMLActionName );
+-                mbActionEvent = mbValid && (sEventName == sXMLActionName);
+-#else
+                 mbValid = XML_NAMESPACE_DOM == nScriptPrefix && sEventName == sXMLClickName;
+-#endif
+ 			}
+ 			else if( IsXMLToken( aAttrLocalName, XML_LANGUAGE ) )
+ 			{
+@@ -338,12 +320,6 @@ SdXMLEventContext::SdXMLEventContext( Sv
+ 				{
+ 					msMacroName = sValue;
+ 				}
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-                else if ( mbActionEvent )
+-                {
+-                    msHyperURL = sValue;
+-                }
+-#endif
+ 				else
+ 				{
+ 					const rtl::OUString &rTmp =
+@@ -389,26 +365,6 @@ void SdXMLEventContext::EndElement()
+         OUString sAPIEventName;
+         uno::Sequence< beans::PropertyValue > aProperties;
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-        if( mbActionEvent )
+-        {
+-            sAPIEventName = OUString( RTL_CONSTASCII_USTRINGPARAM( "OnAction" ) );
+-            aProperties.realloc( 2 );
+-            beans::PropertyValue* pProperty = aProperties.getArray();
+-
+-            pProperty->Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "EventType" ) );
+-            pProperty->Handle = -1;
+-            pProperty->Value <<= OUString( RTL_CONSTASCII_USTRINGPARAM( "Action" ) );
+-            pProperty->State = beans::PropertyState_DIRECT_VALUE;
+-            ++pProperty;
+-            pProperty->Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) );
+-            pProperty->Handle = -1;
+-            pProperty->Value <<= msHyperURL;
+-            pProperty->State = beans::PropertyState_DIRECT_VALUE;
+-        }
+-        else
+-#endif
+-        {
+             sAPIEventName = OUString( RTL_CONSTASCII_USTRINGPARAM( "OnClick" ) );
+ 
+             if( mbScript )
+@@ -593,8 +549,6 @@ void SdXMLEventContext::EndElement()
+                     break;
+                 }
+             }
+-        }
+-
+         xEvents->replaceByName( sAPIEventName, uno::Any( aProperties ) );
+ 
+     } while(0);
+diff -rup ../src680_m217-dr55-applied/xmloff/source/draw/shapeexport2.cxx xmloff/source/draw/shapeexport2.cxx
+--- ../src680_m217-dr55-applied/xmloff/source/draw/shapeexport2.cxx	2007-07-03 11:16:16.000000000 +0100
++++ xmloff/source/draw/shapeexport2.cxx	2007-07-04 09:32:59.000000000 +0100
+@@ -371,9 +371,6 @@ const sal_Int32 FOUND_CLICKEVENTTYPE    
+ const sal_Int32 FOUND_MACRO             = 0x00000100;
+ const sal_Int32 FOUND_LIBRARY           = 0x00000200;
+ const sal_Int32 FOUND_ACTIONEVENTTYPE   = 0x00000400;
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-const sal_Int32 FOUND_URL               = 0x00000800;
+-#endif
+ 
+ } // namespace
+ 
+@@ -463,33 +460,6 @@ void XMLShapeExport::ImpExportEvents( co
+         }
+     }
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-    // extract properties from "OnAction" event -------------------------------
+-
+-    OUString aActionEventType;
+-    OUString aHyperURL;
+-
+-    uno::Sequence< beans::PropertyValue > aActionProperties;
+-    if( xEvents->hasByName( msOnAction ) && (xEvents->getByName( msOnAction ) >>= aActionProperties) )
+-    {
+-        const beans::PropertyValue* pProperty = aActionProperties.getConstArray();
+-        const beans::PropertyValue* pPropertyEnd = pProperty + aActionProperties.getLength();
+-        for( ; pProperty != pPropertyEnd; ++pProperty )
+-        {
+-            if( ( ( nFound & FOUND_ACTIONEVENTTYPE ) == 0 ) && pProperty->Name == msEventType )
+-            {
+-                if( pProperty->Value >>= aActionEventType )
+-                    nFound |= FOUND_ACTIONEVENTTYPE;
+-            }
+-            else if( ( ( nFound & FOUND_URL ) == 0 ) && ( pProperty->Name == msURL  ) )
+-            {
+-                if( pProperty->Value >>= aHyperURL )
+-                    nFound |= FOUND_URL;
+-            }
+-        }
+-    }
+-#endif
+-
+     // create the XML elements
+ 
+     if( aClickEventType == msPresentation )
+@@ -641,15 +611,9 @@ void XMLShapeExport::ImpExportEvents( co
+             SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_SCRIPT, XML_EVENT_LISTENER, sal_True, sal_True);
+         }
+     }
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-    else if( aClickEventType == msScript || aActionEventType == msAction )
+-    {
+-        if( nFound & ( FOUND_MACRO | FOUND_URL ) )
+-#else
+     else if( aClickEventType == msScript )
+     {
+         if( nFound & FOUND_MACRO )
+-#endif
+         {
+             SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True);
+             if ( nFound & FOUND_MACRO )
+@@ -664,18 +628,6 @@ void XMLShapeExport::ImpExportEvents( co
+ 
+                 SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_SCRIPT, XML_EVENT_LISTENER, sal_True, sal_True);
+             }
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-            if ( nFound & FOUND_URL )
+-            {
+-                OUString aEventQName(
+-                    mrExport.GetNamespaceMap().GetQNameByKey(
+-                            XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "action" ) ) ) );
+-                mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_EVENT_NAME, aEventQName );
+-                mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, aHyperURL );
+-
+-                SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_PRESENTATION, XML_EVENT_LISTENER, sal_True, sal_True);
+-            }
+-#endif
+         }
+     }
+ }
+diff -rup ../src680_m217-dr55-applied/xmloff/source/draw/shapeexport.cxx xmloff/source/draw/shapeexport.cxx
+--- ../src680_m217-dr55-applied/xmloff/source/draw/shapeexport.cxx	2007-07-03 11:16:16.000000000 +0100
++++ xmloff/source/draw/shapeexport.cxx	2007-07-04 09:31:09.000000000 +0100
+@@ -161,11 +161,6 @@ XMLShapeExport::XMLShapeExport(SvXMLExpo
+ 	msStartShape( RTL_CONSTASCII_USTRINGPARAM("StartShape") ),
+ 	msEndShape( RTL_CONSTASCII_USTRINGPARAM("EndShape") ),
+ 	msOnClick( RTL_CONSTASCII_USTRINGPARAM("OnClick") ),
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-	msOnAction( RTL_CONSTASCII_USTRINGPARAM("OnAction") ),
+-	msAction( RTL_CONSTASCII_USTRINGPARAM("Action") ),
+-	msURL( RTL_CONSTASCII_USTRINGPARAM("URL") ),
+-#endif
+ 	msEventType( RTL_CONSTASCII_USTRINGPARAM("EventType") ),
+ 	msPresentation( RTL_CONSTASCII_USTRINGPARAM("Presentation") ),
+ 	msMacroName( RTL_CONSTASCII_USTRINGPARAM("MacroName") ),
+diff -rup ../src680_m217-dr55-applied/sc/inc/sc.hrc sc/inc/sc.hrc
+--- ../src680_m217-dr55-applied/sc/inc/sc.hrc	2007-07-03 11:16:23.000000000 +0100
++++ sc/inc/sc.hrc	2007-07-04 09:34:32.000000000 +0100
+@@ -583,11 +583,9 @@
+ // #i59082# assign macro to shape
+ #define SID_ASSIGNMACRO                 (SC_VIEW_START + 95)
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+ // #i66550# hyperlinks in shapes
+ #define SID_DRAW_HLINK_EDIT             (SC_VIEW_START + 96)
+ #define SID_DRAW_HLINK_DELETE           (SC_VIEW_START + 97)
+-#endif
+ 
+ // NOTE: last valid ID is (SC_VIEW_START + 99)
+ 
+diff -rup ../src680_m217-dr55-applied/sc/inc/shapeuno.hxx sc/inc/shapeuno.hxx
+--- ../src680_m217-dr55-applied/sc/inc/shapeuno.hxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/inc/shapeuno.hxx	2007-07-04 12:14:31.000000000 +0100
+@@ -74,6 +74,7 @@ namespace com { namespace sun { namespac
+ class SdrObject;
+ struct SvEventDescription;
+ class ShapeUnoEventAccessImpl;
++class  ScMacroInfo;
+ 
+ //------------------------------------------------------------------------
+ 
+@@ -89,6 +90,7 @@ class ScShapeObj : public ::cppu::OWeakO
+ 					public ::com::sun::star::document::XEventsSupplier
+ {
+ private:
++friend  ScMacroInfo* lcl_getShapeHyperMacroInfo( ScShapeObj* pShape, BOOL bCreate );
+ 	::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > mxShapeAgg;
+     // cached pointers to avoid repeated queryAggregation calls:
+     ::com::sun::star::beans::XPropertySet*                                  pShapePropertySet;
+diff -rup ../src680_m217-dr55-applied/sc/inc/unonames.hxx sc/inc/unonames.hxx
+--- ../src680_m217-dr55-applied/sc/inc/unonames.hxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/inc/unonames.hxx	2007-07-04 10:06:31.000000000 +0100
+@@ -183,6 +183,8 @@
+ #define SC_UNONAME_ANCHOR           "Anchor"
+ #define SC_UNONAME_HORIPOS          "HoriOrientPosition"
+ #define SC_UNONAME_VERTPOS          "VertOrientPosition"
++//     #i66550 HLINK_FOR_SHAPES
++#define SC_UNONAME_HYPERLINK        "Hyperlink" 
+ 
+ //	other cell properties
+ #define SC_UNONAME_CHCOLHDR			"ChartColumnAsLabel"
+diff -rup ../src680_m217-dr55-applied/sc/inc/userdat.hxx sc/inc/userdat.hxx
+--- ../src680_m217-dr55-applied/sc/inc/userdat.hxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/inc/userdat.hxx	2007-07-04 09:35:53.000000000 +0100
+@@ -117,16 +117,12 @@ public:
+     void            SetMacro( const rtl::OUString& rMacro ) { maMacro = rMacro; }
+     const rtl::OUString& GetMacro() const { return maMacro; }
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+     void            SetHlink( const rtl::OUString& rHlink ) { maHlink = rHlink; }
+     const rtl::OUString& GetHlink() const { return maHlink; }
+-#endif
+ 
+ private:
+     rtl::OUString   maMacro;
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+     rtl::OUString   maHlink;
+-#endif
+ };
+ 
+ //-------------------------------------------------------------------------
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/excel/xiescher.cxx sc/source/filter/excel/xiescher.cxx
+--- ../src680_m217-dr55-applied/sc/source/filter/excel/xiescher.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/filter/excel/xiescher.cxx	2007-07-04 09:39:01.000000000 +0100
+@@ -1647,19 +1647,15 @@ SdrObject* XclImpDffManager::ProcessObj(
+     {
+         // macro name and hyperlink for drawing objects and pictures (not for controls and charts)
+         const String& rMacro = xDrawObj->GetMacroName();
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+         OUString aHlink = ReadHlinkProperty( rEscherStrm );
+         if( (rMacro.Len() > 0) || (aHlink.getLength() > 0) )
+-#else
+-        if( rMacro.Len() > 0 )
+-#endif
+         {
+             if( ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( xSdrObj.get(), TRUE ) )
+             {
++                if ( rMacro.Len() > 0 )
+                 pInfo->SetMacro( XclControlObjHelper::GetScMacroName( rMacro ) );
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
++                if ( aHlink.getLength() > 0 )
+                 pInfo->SetHlink( aHlink );
+-#endif
+             }
+         }
+     }
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/xml/xmlcelli.cxx sc/source/filter/xml/xmlcelli.cxx
+--- ../src680_m217-dr55-applied/sc/source/filter/xml/xmlcelli.cxx	2007-02-27 12:49:18.000000000 +0000
++++ sc/source/filter/xml/xmlcelli.cxx	2007-07-04 11:55:03.000000000 +0100
+@@ -164,6 +164,84 @@ ScMyImportAnnotation::~ScMyImportAnnotat
+     delete pOPO;
+ }
+ 
++//-------------------- #i66550 HLINK_FOR_SHAPES --------------------
++
++SvXMLImportContext*
++lcl_processShapeElement(  ScXMLImport& rImport, USHORT nPrfx, const ::rtl::OUString& rLName, const uno::Reference< xml::sax::XAttributeList>& xAttrList, uno::Reference< drawing::XShapes >& xShapes, rtl::OUString& rHLink )
++{
++	SvXMLImportContext* pContext = NULL;
++	table::CellAddress aCellPos = rImport.GetTables().GetRealCellPos();
++	if (xShapes.is())
++	{
++		if (aCellPos.Column > MAXCOL)
++			aCellPos.Column = MAXCOL;
++		if (aCellPos.Row > MAXROW)
++			aCellPos.Row = MAXROW;
++		XMLTableShapeImportHelper* pTableShapeImport = (XMLTableShapeImportHelper*)rImport.GetShapeImport().get();
++		pTableShapeImport->SetHlink( rHLink );
++		pTableShapeImport->SetOnTable(sal_False);
++		pTableShapeImport->SetCell(aCellPos);
++		pContext = rImport.GetShapeImport()->CreateGroupChildContext(
++			rImport, nPrfx, rLName, xAttrList, xShapes, sal_False);
++	}
++	return pContext;
++}
++
++class XMLShapeHyperLinkContext : public SvXMLImportContext
++{
++	::rtl::OUString sHLink;
++	ScXMLImport& rXMLImport;
++public:
++	XMLShapeHyperLinkContext( ScXMLImport& rImport, USHORT nPrfx, const ::rtl::OUString& rLName, const uno::Reference< xml::sax::XAttributeList>& xAttrList );
++
++	virtual ~XMLShapeHyperLinkContext(){}
++	virtual void EndElement(){}
++
++	SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
++		const ::rtl::OUString& rLocalName,
++		const uno::Reference<xml::sax::XAttributeList >& xAttrList );
++};
++
++XMLShapeHyperLinkContext::XMLShapeHyperLinkContext( ScXMLImport& rImport, USHORT nPrfx, const ::rtl::OUString& rLName, const ::com::sun::star::uno::Reference< xml::sax::XAttributeList>& xAttrList ) : SvXMLImportContext( rImport, nPrfx, rLName ), rXMLImport( rImport )
++{
++	// re-use the TableRowCell map ( I don't suppose it's worth implementing a new one )
++	const SvXMLTokenMap& rTokenMap = rXMLImport.GetShapeHyperlinkTokenMap();
++	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
++	for( sal_Int16 i=0; i < nAttrCount; i++ )
++	{
++		const OUString& rAttrName = xAttrList->getNameByIndex( i );
++		const OUString& rValue = xAttrList->getValueByIndex( i );
++
++		OUString aLocalName;
++		sal_uInt16 nPrefix = rXMLImport.GetNamespaceMap().GetKeyByAttrName( rAttrName, &aLocalName );
++		if ( rTokenMap.Get( nPrefix, aLocalName ) == XML_TOK_SHAPE_ATTR_HREF )
++		{
++			sHLink = rXMLImport.GetAbsoluteReference( rValue );
++			break;
++		}
++	}
++}
++
++
++SvXMLImportContext*
++XMLShapeHyperLinkContext::CreateChildContext( sal_uInt16 nPrefix,
++		const ::rtl::OUString& rLocalName,
++		const ::com::sun::star::uno::Reference<
++		::com::sun::star::xml::sax::XAttributeList > & xAttrList )
++{
++	SvXMLImportContext* pContext = NULL;
++	uno::Reference<drawing::XShapes> xShapes ( rXMLImport.GetTables().GetCurrentXShapes());
++	if ( xShapes.is() )
++	{
++		pContext = lcl_processShapeElement( rXMLImport, nPrefix, rLocalName, xAttrList, xShapes, sHLink );
++		if (pContext)
++			rXMLImport.ProgressBarIncrement(sal_False);
++	}
++	if ( !pContext )
++		pContext = new SvXMLImportContext( rXMLImport, nPrefix, rLocalName );
++	return pContext;
++}
++
+ //------------------------------------------------------------------
+ 
+ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
+@@ -589,23 +667,23 @@ SvXMLImportContext *ScXMLTableRowCellCon
+ 				rXMLImport, nPrefix, rLName, xAttrList, pCellRangeSource );
+ 		}
+ 		break;
++	// #i66550 HLINK_FOR_SHAPES
++	case XML_TOK_TABLE_ROW_CELL_DRAW_A:
++		{
++			pContext = new XMLShapeHyperLinkContext(
++				rXMLImport, nPrefix, rLName, xAttrList );
++		}
++		break;
+ 	}
+-
+ 	if (!pContext && !bTextP)
+ 	{
+-		com::sun::star::table::CellAddress aCellPos = rXMLImport.GetTables().GetRealCellPos();
++		// #i66550 HLINK_FOR_SHAPES
+ 		uno::Reference<drawing::XShapes> xShapes (rXMLImport.GetTables().GetCurrentXShapes());
+ 		if (xShapes.is())
+ 		{
+-			if (aCellPos.Column > MAXCOL)
+-				aCellPos.Column = MAXCOL;
+-			if (aCellPos.Row > MAXROW)
+-				aCellPos.Row = MAXROW;
+-			XMLTableShapeImportHelper* pTableShapeImport = (XMLTableShapeImportHelper*)rXMLImport.GetShapeImport().get();
+-			pTableShapeImport->SetOnTable(sal_False);
+-			pTableShapeImport->SetCell(aCellPos);
+-			pContext = rXMLImport.GetShapeImport()->CreateGroupChildContext(
+-				rXMLImport, nPrefix, rLName, xAttrList, xShapes);
++			rtl::OUString sBlank;
++			pContext = lcl_processShapeElement( rXMLImport, nPrefix, rLName, xAttrList, xShapes, sBlank );
++
+ 			if (pContext)
+ 			{
+ 				bIsEmpty = sal_False;
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlexprt.cxx
+--- ../src680_m217-dr55-applied/sc/source/filter/xml/xmlexprt.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/filter/xml/xmlexprt.cxx	2007-07-04 10:22:36.000000000 +0100
+@@ -2665,7 +2665,34 @@ void ScXMLExport::ExportShape(const uno:
+ 		}
+ 	}
+ 	if (!bIsChart)
++	{
++		// #i66550 HLINK_FOR_SHAPES
++		rtl::OUString sHlink;
++		uno::Reference< beans::XPropertySet > xProps( xShape, uno::UNO_QUERY );
++		if ( xProps.is() )
++			xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_HYPERLINK ) ) ) >>= sHlink;
++
++		std::auto_ptr< SvXMLElementExport > pDrawA;
++		// enlose shapes with <draw:a> element only if sHlink contains something
++		if ( sHlink.getLength() > 0 )
++		{
++			// need to get delete the attributes that are pre-loaded
++			// for the shape export ( otherwise they will become 	
++			// attributes of the draw:a element ) This *shouldn't* 
++			// affect performance adversely as there are only a 
++			// couple of attributes involved
++			uno::Reference< xml::sax::XAttributeList > xSaveAttribs( new  SvXMLAttributeList( GetAttrList() ) );
++			ClearAttrList();
++			// Add Hlink	
++			AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
++			AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, sHlink);
++			pDrawA.reset( new SvXMLElementExport( *this, XML_NAMESPACE_DRAW, XML_A, sal_False, sal_False ) );
++			// Attribute list has been cleared by previous operation
++			// re-add pre-loaded attributes
++			AddAttributeList( xSaveAttribs );
++		}
+ 		GetShapeExport()->exportShape(xShape, SEF_DEFAULT, pPoint);
++	}
+ 	IncrementProgressBar(sal_False);
+ }
+ 
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/xml/xmlimprt.cxx sc/source/filter/xml/xmlimprt.cxx
+--- ../src680_m217-dr55-applied/sc/source/filter/xml/xmlimprt.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/filter/xml/xmlimprt.cxx	2007-07-04 11:50:18.000000000 +0100
+@@ -274,6 +274,11 @@ uno::Reference< uno::XInterface > SAL_CA
+ }
+ 
+ //----------------------------------------------------------------------------
++// #i66550 HLINK_FOR_SHAPES
++static  __FAR_DATA SvXMLTokenMapEntry aShapeHyperlinkTokenMap[] =
++{
++	{ XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_SHAPE_ATTR_HREF },
++};
+ 
+ static __FAR_DATA SvXMLTokenMapEntry aDocTokenMap[] =
+ {
+@@ -485,6 +490,7 @@ static __FAR_DATA SvXMLTokenMapEntry aTa
+ 	{ XML_NAMESPACE_OFFICE,	XML_ANNOTATION, 		XML_TOK_TABLE_ROW_CELL_ANNOTATION			},
+ 	{ XML_NAMESPACE_TABLE,	XML_DETECTIVE,			XML_TOK_TABLE_ROW_CELL_DETECTIVE			},
+ 	{ XML_NAMESPACE_TABLE,	XML_CELL_RANGE_SOURCE,	XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE	},
++	{ XML_NAMESPACE_DRAW, XML_A, XML_TOK_TABLE_ROW_CELL_DRAW_A },
+ 	XML_TOKEN_MAP_END
+ };
+ 
+@@ -973,6 +979,14 @@ SvXMLImportContext *ScXMLDocContext_Impl
+ 
+ 	return pContext;
+ }
++// #i66550 HLINK_FOR_SHAPES
++const SvXMLTokenMap& ScXMLImport::GetShapeHyperlinkTokenMap()
++{
++	if( !pShapeHyperlinkTokenMap )
++		pShapeHyperlinkTokenMap = new SvXMLTokenMap( aShapeHyperlinkTokenMap );
++
++	return *pShapeHyperlinkTokenMap;
++}
+ 
+ const SvXMLTokenMap& ScXMLImport::GetDocElemTokenMap()
+ {
+@@ -1485,6 +1485,7 @@ ScXMLImport::ScXMLImport(
+ //	pScAutoStylePool(new SvXMLAutoStylePoolP),
+ //	pParaItemMapper( 0 ),
+ //	pI18NMap( new SvI18NMap ),
++	pShapeHyperlinkTokenMap( 0 ),
+ 	pDocElemTokenMap( 0 ),
+ 	pStylesElemTokenMap( 0 ),
+ 	pStylesAttrTokenMap( 0 ),
+@@ -1592,6 +1593,7 @@ ScXMLImport::~ScXMLImport() throw()
+ //	RemoveUnusedNumRules();
+ 
+ //	delete pI18NMap;
++	delete pShapeHyperlinkTokenMap;
+ 	delete pDocElemTokenMap;
+ 	delete pStylesElemTokenMap;
+ 	delete pStylesAttrTokenMap;
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/xml/xmlimprt.hxx sc/source/filter/xml/xmlimprt.hxx
+--- ../src680_m217-dr55-applied/sc/source/filter/xml/xmlimprt.hxx	2006-04-20 14:26:00.000000000 +0100
++++ sc/source/filter/xml/xmlimprt.hxx	2007-07-04 11:57:00.000000000 +0100
+@@ -94,6 +94,11 @@ class XMLNumberFormatAttributesExportHel
+ 
+ using namespace rtl;
+ 
++enum ScXMLShapeHlinkTokens // #i66550 HLINK_FOR_SHAPES
++{
++	XML_TOK_SHAPE_ATTR_HREF
++};
++
+ enum ScXMLDocTokens
+ {
+ 	XML_TOK_DOC_FONTDECLS,
+@@ -281,7 +286,8 @@ enum ScXMLTableRowCellTokens
+ 	XML_TOK_TABLE_ROW_CELL_TABLE,
+ 	XML_TOK_TABLE_ROW_CELL_ANNOTATION,
+ 	XML_TOK_TABLE_ROW_CELL_DETECTIVE,
+-	XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE
++	XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE,
++	XML_TOK_TABLE_ROW_CELL_DRAW_A,
+ };
+ 
+ enum ScXMLTableRowCellAttrTokens
+@@ -694,6 +700,7 @@ class ScXMLImport: public SvXMLImport
+ 
+ //	SvXMLImportItemMapper	*pParaItemMapper;// paragraph item import
+ //	SvI18NMap				*pI18NMap;			// name mapping for I18N
++	SvXMLTokenMap			*pShapeHyperlinkTokenMap;
+ 	SvXMLTokenMap			*pDocElemTokenMap;
+ 	SvXMLTokenMap			*pStylesElemTokenMap;
+ 	SvXMLTokenMap			*pStylesAttrTokenMap;
+@@ -854,6 +861,7 @@ public:
+ //	SvXMLImportContextRef			GetAutoStyles() const { return xAutoStyles; }
+ //	SvXMLImportContextRef			GetStyles() const { return xStyles; }
+ 
++	const SvXMLTokenMap& GetShapeHyperlinkTokenMap();
+ 	const SvXMLTokenMap& GetDocElemTokenMap();
+ 	const SvXMLTokenMap& GetStylesElemTokenMap();
+ 	const SvXMLTokenMap& GetStylesAttrTokenMap();
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/xml/XMLTableShapeImportHelper.cxx sc/source/filter/xml/XMLTableShapeImportHelper.cxx
+--- ../src680_m217-dr55-applied/sc/source/filter/xml/XMLTableShapeImportHelper.cxx	2007-05-22 21:03:11.000000000 +0100
++++ sc/source/filter/xml/XMLTableShapeImportHelper.cxx	2007-07-04 10:07:38.000000000 +0100
+@@ -82,7 +82,7 @@
+ #ifndef _COM_SUN_STAR_DRAWING_XSHAPES_HPP_
+ #include <com/sun/star/drawing/XShapes.hpp>
+ #endif
+-
++#include "unonames.hxx"
+ #define SC_LAYERID "LayerID"
+ 
+ using namespace ::com::sun::star;
+@@ -119,6 +119,13 @@ void XMLTableShapeImportHelper::finishSh
+ {
+ 	XMLShapeImportHelper::finishShape( rShape, xAttrList, rShapes );
+ 	static_cast<ScXMLImport&>(mrImporter).LockSolarMutex();
++	// #i66550 HLINK_FOR_SHAPES
++	if ( rShape.is() && sHlink.getLength() )
++	{
++		uno::Reference< beans::XPropertySet > xProp( rShape, uno::UNO_QUERY );
++		if ( xProp.is() )
++			xProp->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_HYPERLINK ) ), uno::Any( sHlink ) );
++	}
+ 	if (rShapes == static_cast<ScXMLImport&>(mrImporter).GetTables().GetCurrentXShapes())
+ 	{
+         if (!pAnnotationContext)
+diff -rup ../src680_m217-dr55-applied/sc/source/filter/xml/XMLTableShapeImportHelper.hxx sc/source/filter/xml/XMLTableShapeImportHelper.hxx
+--- ../src680_m217-dr55-applied/sc/source/filter/xml/XMLTableShapeImportHelper.hxx	2005-09-08 20:59:29.000000000 +0100
++++ sc/source/filter/xml/XMLTableShapeImportHelper.hxx	2007-07-04 11:51:42.000000000 +0100
+@@ -51,6 +51,7 @@ class XMLTableShapeImportHelper : public
+ 	::com::sun::star::table::CellAddress aStartCell;
+     ScXMLAnnotationContext* pAnnotationContext;
+ 	sal_Bool bOnTable;
++	::rtl::OUString sHlink; // #i66550 HLINK_FOR_SHAPES
+ 
+ public:
+ 
+@@ -61,8 +62,8 @@ public:
+     virtual void finishShape(com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& rShape,
+ 			const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList,
+ 			com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes);
+-
+-
++	// #i66550 HLINK_FOR_SHAPES
++	void SetHlink( const rtl::OUString& rHlink ) { sHlink = rHlink; }
+ 	void SetCell (const ::com::sun::star::table::CellAddress& rAddress) { aStartCell = rAddress; }
+ 	void SetOnTable (const sal_Bool bTempOnTable) { bOnTable = bTempOnTable; }
+     void SetAnnotation(ScXMLAnnotationContext* pAnnotation) { pAnnotationContext = pAnnotation; }
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/drawfunc/drawsh2.cxx sc/source/ui/drawfunc/drawsh2.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/drawfunc/drawsh2.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/drawfunc/drawsh2.cxx	2007-07-04 09:42:48.000000000 +0100
+@@ -209,24 +209,20 @@ void ScDrawShell::GetDrawFuncState( SfxI
+ 	BOOL bCanRename = FALSE;
+     if ( nMarkCount > 1 )
+     {
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+         // no hypelink options for a selected group
+         rSet.DisableItem( SID_DRAW_HLINK_EDIT );
+         rSet.DisableItem( SID_DRAW_HLINK_DELETE );
+         rSet.DisableItem( SID_OPEN_HYPERLINK );
+-#endif
+     }
+     else if ( nMarkCount == 1 )
+ 	{
+         SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+         ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( pObj );
+         if ( !pInfo || (pInfo->GetHlink().getLength() == 0) )
+         {
+             rSet.DisableItem( SID_DRAW_HLINK_DELETE );
+             rSet.DisableItem( SID_OPEN_HYPERLINK );
+         }
+-#endif
+         SdrLayerID nLayerID = pObj->GetLayer();
+         if ( nLayerID != SC_LAYER_INTERN )
+             bCanRename = TRUE;                          // #i51351# anything except internal objects can be renamed
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/drawfunc/drawsh5.cxx sc/source/ui/drawfunc/drawsh5.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/drawfunc/drawsh5.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/drawfunc/drawsh5.cxx	2007-07-04 13:52:29.000000000 +0100
+@@ -103,14 +103,12 @@ void ScDrawShell::GetHLinkState( SfxItem
+     if ( nMarkCount == 1 )              // URL-Button markiert ?
+     {
+         SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+         ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( pObj );
+         if ( pInfo && (pInfo->GetHlink().getLength() > 0) )
+         {
+             aHLinkItem.SetURL( pInfo->GetHlink() );
+             aHLinkItem.SetInsertMode(HLINK_FIELD);
+         }
+-#endif
+         SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pObj);
+         if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
+         {
+@@ -253,13 +251,11 @@ void ScDrawShell::ExecuteHLink( SfxReque
+                                     bDone = TRUE;
+                                 }
+                             }
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+                             else
+                             {
+                                 SetHlinkForObject( pObj, rURL );
+                                 bDone = TRUE;
+                             }
+-#endif
+                         }
+                     }
+ 
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/drawfunc/drawsh.cxx sc/source/ui/drawfunc/drawsh.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/drawfunc/drawsh.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/drawfunc/drawsh.cxx	2007-07-04 09:41:10.000000000 +0100
+@@ -218,7 +218,6 @@ void ScDrawShell::ExecDrawAttr( SfxReque
+ 			ExecuteTextAttrDlg( rReq );
+ 			break;
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+         case SID_DRAW_HLINK_EDIT:
+             if ( pSingleSelectedObj )
+                 pViewData->GetDispatcher().Execute( SID_HYPERLINK_DIALOG );
+@@ -246,7 +245,6 @@ void ScDrawShell::ExecDrawAttr( SfxReque
+                     ScGlobal::OpenURL( pInfo->GetHlink(), String::EmptyString() );
+             }
+             break;
+-#endif
+ 
+ 		case SID_ATTR_TRANSFORM:
+ 			{
+@@ -498,7 +496,6 @@ void ScDrawShell::ExecuteTextAttrDlg( Sf
+ 	delete( pDlg );
+ }
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+ void ScDrawShell::SetHlinkForObject( SdrObject* pObj, const rtl::OUString& rHlnk )
+ {
+     if ( pObj )
+@@ -508,5 +505,4 @@ void ScDrawShell::SetHlinkForObject( Sdr
+         lcl_setModified( GetObjectShell() );
+     }
+ }
+-#endif
+ 
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/drawfunc/fudraw.cxx sc/source/ui/drawfunc/fudraw.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/drawfunc/fudraw.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/drawfunc/fudraw.cxx	2007-07-04 09:44:58.000000000 +0100
+@@ -899,11 +899,7 @@ void FuDraw::ForcePointer(const MouseEve
+ 			SdrObjMacroHitRec aHitRec;	//! muss da noch irgendwas gesetzt werden ????
+ 			pViewShell->SetActivePointer( pObj->GetMacroPointer(aHitRec) );
+ 		}
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+         else if ( !bAlt && pInfo && ((pInfo->GetMacro().getLength() > 0) || (pInfo->GetHlink().getLength() > 0)) )
+-#else
+-        else if ( !bAlt && pInfo && (pInfo->GetMacro().getLength() > 0) )
+-#endif
+ 			pWindow->SetPointer( Pointer( POINTER_REFHAND ) );
+ 		else if ( IsDetectiveHit( aPnt ) )
+ 			pViewShell->SetActivePointer( Pointer( POINTER_DETECTIVE ) );
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/drawfunc/fusel.cxx sc/source/ui/drawfunc/fusel.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/drawfunc/fusel.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/drawfunc/fusel.cxx	2007-07-04 09:47:00.000000000 +0100
+@@ -210,7 +210,6 @@ BOOL __EXPORT FuSelection::MouseButtonDo
+                    }
+ 
+                    ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( pObj, TRUE );
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+                    // For interoperability favour links over macros if both are defined
+                    if ( pInfo->GetHlink().getLength() > 0 )
+                    {
+@@ -218,9 +217,6 @@ BOOL __EXPORT FuSelection::MouseButtonDo
+                        sURL = pInfo->GetHlink();
+                    }
+                    else if ( pInfo->GetMacro().getLength() > 0 )
+-#else
+-                   if ( pInfo->GetMacro().getLength() > 0 )
+-#endif
+                    {
+                        SfxObjectShell* pObjSh = SfxObjectShell::Current();
+                        if ( pObjSh && SfxApplication::IsXScriptURL( pInfo->GetMacro() ) )
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/drawfunc/objdraw.src sc/source/ui/drawfunc/objdraw.src
+--- ../src680_m217-dr55-applied/sc/source/ui/drawfunc/objdraw.src	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/drawfunc/objdraw.src	2007-07-04 12:55:13.000000000 +0100
+@@ -190,7 +190,6 @@
+         ITEM_FORMAT_PARA_DLG\
+     };
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+ #define MN_EDITLNK \
+     MenuItem\
+     {\
+@@ -206,7 +205,6 @@
+         HelpID = SID_DRAW_HLINK_DELETE ; \
+         Text [ en-US ] = "~Remove Hyperlink" ; \
+ 	};
+-#endif
+ 
+ #define MN_DRWTXTATTR \
+     MenuItem\
+@@ -1299,14 +1297,12 @@ Menu RID_POPUP_DRAW
+ 		MenuItem { Separator = TRUE ; };
+ 		 //------------------------------
+ 		ITEM_GROUP_MENU
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+ 		 //------------------------------
+ 		MenuItem { Separator = TRUE ; };
+ 		 //------------------------------
+ 		MN_EDITLNK
+ 		MN_DELLNK
+         MenuItem { ITEM_OPEN_HYPERLINK };
+-#endif
+ 	};
+ };
+ 
+@@ -1376,14 +1372,12 @@ Menu RID_POPUP_GRAPHIC
+ 		MenuItem { Separator = TRUE ; };
+ 		 //------------------------------
+ 		ITEM_GROUP_MENU
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+ 		 //------------------------------
+ 		MenuItem { Separator = TRUE ; };
+ 		 //------------------------------
+ 		MN_EDITLNK
+ 		MN_DELLNK
+         MenuItem { ITEM_OPEN_HYPERLINK };
+-#endif
+ 	};
+ };
+ 
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/inc/drawsh.hxx sc/source/ui/inc/drawsh.hxx
+--- ../src680_m217-dr55-applied/sc/source/ui/inc/drawsh.hxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/inc/drawsh.hxx	2007-07-04 09:48:36.000000000 +0100
+@@ -62,9 +62,7 @@ class ScDrawShell : public SfxShell
+ 
+     DECL_LINK( NameObjectHdl, AbstractSvxNameDialog* );
+ 
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+     void SetHlinkForObject( SdrObject* pObj, const rtl::OUString& rHlnk );
+-#endif
+ 
+ protected:
+ 	ScViewData*	GetViewData()	{ return pViewData; }
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/unoobj/shapeuno.cxx sc/source/ui/unoobj/shapeuno.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/unoobj/shapeuno.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/unoobj/shapeuno.cxx	2007-07-04 14:35:39.000000000 +0100
+@@ -77,6 +77,8 @@ const SfxItemPropertyMap* lcl_GetShapeMa
+         {MAP_CHAR_LEN(SC_UNONAME_HORIPOS), 0, &getCppuType((sal_Int32*)0), 0, 0 },
+ 		{MAP_CHAR_LEN(SC_UNONAME_IMAGEMAP),	0, &getCppuType((uno::Reference<container::XIndexContainer>*)0), 0, 0 },
+ 		{MAP_CHAR_LEN(SC_UNONAME_VERTPOS), 0, &getCppuType((sal_Int32*)0), 0, 0 },
++		// #i66550 HLINK_FOR_SHAPES
++		{MAP_CHAR_LEN(SC_UNONAME_HYPERLINK), 0, &getCppuType((rtl::OUString*)0), 0, 0 },
+         {0,0,0,0,0,0}
+ 	};
+ 	return aShapeMap_Impl;
+@@ -91,6 +93,14 @@ const SvEventDescription* ScShapeObj::Ge
+ 	};
+ 	return aMacroDescriptionsImpl;
+ }
++// #i66550 HLINK_FOR_SHAPES
++ScMacroInfo* lcl_getShapeHyperMacroInfo( ScShapeObj* pShape, BOOL bCreate = FALSE )
++{
++        if( pShape )
++            if( SdrObject* pObj = pShape->GetSdrObject() )
++                return ScDrawLayer::GetMacroInfo( pObj, bCreate );
++        return 0;
++}
+ 
+ //------------------------------------------------------------------------
+ 
+@@ -639,6 +649,13 @@ void SAL_CALL ScShapeObj::setPropertyVal
+             }
+         }
+     }
++	else if  ( aNameString.EqualsAscii( SC_UNONAME_HYPERLINK ) )
++	{
++                rtl::OUString sHlink;
++        	ScMacroInfo* pInfo = lcl_getShapeHyperMacroInfo(this, TRUE);
++        	if ( ( aValue >>= sHlink ) && pInfo )
++			pInfo->SetHlink( sHlink );
++	}
+ 	else
+ 	{
+         GetShapePropertySet();
+@@ -820,6 +837,13 @@ uno::Any SAL_CALL ScShapeObj::getPropert
+             }
+         }
+     }
++	else if ( aNameString.EqualsAscii( SC_UNONAME_HYPERLINK ) )
++	{
++		rtl::OUString sHlink;
++		if ( ScMacroInfo* pInfo = lcl_getShapeHyperMacroInfo(this) )
++			sHlink = pInfo->GetHlink();
++		aAny <<= sHlink;
++	}
+ 	else
+ 	{
+         GetShapePropertySet();
+@@ -1332,11 +1356,6 @@ SdrObject* ScShapeObj::GetSdrObject() co
+ }
+ 
+ #define SC_EVENTACC_ONCLICK     ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OnClick" ) )
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-#define SC_EVENTACC_ONACTION    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OnAction" ) )
+-#define SC_EVENTACC_URL         ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) )
+-#define SC_EVENTACC_ACTION      ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Action" ) )
+-#endif
+ #define SC_EVENTACC_SCRIPT      ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Script" ) )
+ #define SC_EVENTACC_EVENTTYPE   ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EventType" ) )
+ 
+@@ -1348,10 +1367,7 @@ private:
+ 
+     ScMacroInfo* getInfo( BOOL bCreate = FALSE )
+ 	{
+-        if( mpShape )
+-            if( SdrObject* pObj = mpShape->GetSdrObject() )
+-                return ScDrawLayer::GetMacroInfo( pObj, bCreate );
+-        return 0;
++		return lcl_getShapeHyperMacroInfo( mpShape, bCreate );
+ 	}
+ 
+ public:
+@@ -1377,11 +1393,7 @@ public:
+ 				isEventType = true;
+ 				continue;
+ 			}
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-            if ( isEventType && ((pProperties->Name == SC_EVENTACC_SCRIPT) || (pProperties->Name == SC_EVENTACC_URL)) )
+-#else
+             if ( isEventType && (pProperties->Name == SC_EVENTACC_SCRIPT) )
+-#endif
+ 			{
+                 rtl::OUString sValue;
+                 if ( pProperties->Value >>= sValue )
+@@ -1392,10 +1404,8 @@ public:
+                         break;
+                     if ( pProperties->Name == SC_EVENTACC_SCRIPT )
+                         pInfo->SetMacro( sValue );
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+                     else
+                         pInfo->SetHlink( sValue );
+-#endif
+                 }
+ 			}
+ 		}
+@@ -1418,19 +1428,6 @@ public:
+                 aProperties[ 1 ].Value <<= pInfo->GetMacro();
+             }
+         }
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-        else if( aName == SC_EVENTACC_ONACTION )
+-        {
+-            if ( pInfo && (pInfo->GetHlink().getLength() > 0) )
+-            {
+-                aProperties.realloc( 2 );
+-                aProperties[ 0 ].Name = SC_EVENTACC_EVENTTYPE;
+-                aProperties[ 0 ].Value <<= SC_EVENTACC_ACTION;
+-                aProperties[ 1 ].Name = SC_EVENTACC_URL;
+-                aProperties[ 1 ].Value <<= pInfo->GetHlink();
+-            }
+-        }
+-#endif
+         else
+         {
+             throw container::NoSuchElementException();
+@@ -1441,25 +1438,14 @@ public:
+ 
+     virtual uno::Sequence< rtl::OUString > SAL_CALL getElementNames() throw(uno::RuntimeException)
+ 	{
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-        uno::Sequence< rtl::OUString > aSeq( 2 );
+-#else
+         uno::Sequence< rtl::OUString > aSeq( 1 );
+-#endif
+         aSeq[ 0 ] = SC_EVENTACC_ONCLICK;
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-        aSeq[ 1 ] = SC_EVENTACC_ONACTION;
+-#endif
+         return aSeq;
+ 	}
+ 
+ 	virtual sal_Bool SAL_CALL hasByName( const rtl::OUString& aName ) throw(uno::RuntimeException)
+ 	{
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+-        return (aName == SC_EVENTACC_ONCLICK) || (aName == SC_EVENTACC_ONACTION);
+-#else
+         return aName == SC_EVENTACC_ONCLICK;
+-#endif
+ 	}
+ 
+ 	// XElementAccess
+diff -rup ../src680_m217-dr55-applied/sc/source/ui/view/gridwin5.cxx sc/source/ui/view/gridwin5.cxx
+--- ../src680_m217-dr55-applied/sc/source/ui/view/gridwin5.cxx	2007-07-03 11:16:23.000000000 +0100
++++ sc/source/ui/view/gridwin5.cxx	2007-07-04 13:53:00.000000000 +0100
+@@ -359,14 +359,12 @@ void ScGridWindow::RequestHelp(const Hel
+                                     if ( pDrView->PickObj(aMDPos, pHit, pPV, SDRSEARCH_DEEP ) )
+                                         pObj = pHit;
+                             }
+-#ifdef ISSUE66550_HLINK_FOR_SHAPES
+                             ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( pObj );
+                             if ( pInfo && (pInfo->GetHlink().getLength() > 0) )
+                             {
+                                 aPixRect = LogicToPixel(aVEvt.pObj->GetLogicRect());
+                                 aHelpText = pInfo->GetHlink();
+                             }
+-#endif
+                         }
+                     }
+                 }
+diff -rup ../src680_m217-dr55-applied/sc/sdi/drawsh.sdi sc/sdi/drawsh.sdi
+--- ../src680_m217-dr55-applied/sc/sdi/drawsh.sdi	2007-07-03 11:16:23.000000000 +0100
++++ sc/sdi/drawsh.sdi	2007-07-04 13:50:38.000000000 +0100
+@@ -233,9 +233,9 @@ interface TableDraw
+     SID_FONTWORK_CHARACTER_SPACING_DIALOG	[ ExecMethod = ExecDrawFunc ; StateMethod = GetDrawFuncState ; ]
+ 
+ // ISSUE66550_HLINK_FOR_SHAPES
+-//    SID_DRAW_HLINK_EDIT             [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; Export = FALSE; ]
+-//    SID_DRAW_HLINK_DELETE           [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; Export = FALSE; ]
+-//    SID_OPEN_HYPERLINK              [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; Export = FALSE; ]
++    SID_DRAW_HLINK_EDIT             [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; Export = FALSE; ]
++    SID_DRAW_HLINK_DELETE           [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; Export = FALSE; ]
++    SID_OPEN_HYPERLINK              [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawFuncState; Export = FALSE; ]
+ }
+ 
+ 
+diff -rup ../src680_m217-dr55-applied/sc/sdi/scalc.sdi sc/sdi/scalc.sdi
+--- ../src680_m217-dr55-applied/sc/sdi/scalc.sdi	2007-07-03 11:16:23.000000000 +0100
++++ sc/sdi/scalc.sdi	2007-07-04 13:51:45.000000000 +0100
+@@ -6327,55 +6327,55 @@ SfxVoidItem StandardFonts SID_STANDARD_F
+ 
+ //--------------------------------------------------------------------------
+ // ISSUE66550_HLINK_FOR_SHAPES
+-//SfxVoidItem EditShapeHyperlink SID_DRAW_HLINK_EDIT
+-//()
+-//[
+-//   /* flags: */
+-//   AutoUpdate = FALSE,
+-//   Cachable = Cachable,
+-//   FastCall = TRUE,
+-//   HasCoreId = FALSE,
+-//   HasDialog = TRUE,
+-//   ReadOnlyDoc = TRUE,
+-//   Toggle = FALSE,
+-//   Container = FALSE,
+-//   RecordAbsolute = FALSE,
+-//   RecordPerSet;
+-//   Synchron;
+-//
++SfxVoidItem EditShapeHyperlink SID_DRAW_HLINK_EDIT
++()
++[
++   /* flags: */
++   AutoUpdate = FALSE,
++   Cachable = Cachable,
++   FastCall = TRUE,
++   HasCoreId = FALSE,
++   HasDialog = TRUE,
++   ReadOnlyDoc = TRUE,
++   Toggle = FALSE,
++   Container = FALSE,
++   RecordAbsolute = FALSE,
++   RecordPerSet;
++   Synchron;
++
+ //   /* config: */
+-//   AccelConfig = TRUE,
+-//   MenuConfig = FALSE,
+-//   StatusBarConfig = FALSE,
+-//   ToolBoxConfig = FALSE,
+-//   GroupId = GID_DRAWING;
+-//]
++   AccelConfig = TRUE,
++   MenuConfig = FALSE,
++   StatusBarConfig = FALSE,
++   ToolBoxConfig = FALSE,
++   GroupId = GID_DRAWING;
++]
+ 
+ //--------------------------------------------------------------------------
+ // ISSUE66550_HLINK_FOR_SHAPES
+-//SfxVoidItem DeleteShapeHyperlink SID_DRAW_HLINK_DELETE
+-//()
+-//[
+-//   /* flags: */
+-//   AutoUpdate = TRUE,
+-//   Cachable = Cachable,
+-//   FastCall = TRUE,
+-//   HasCoreId = FALSE,
+-//   HasDialog = FALSE,
+-//   ReadOnlyDoc = TRUE,
+-//   Toggle = FALSE,
+-//   Container = FALSE,
+-//   RecordAbsolute = FALSE,
+-//   RecordPerSet;
+-//   Synchron;
+-//
+-//   /* config: */
+-//   AccelConfig = TRUE,
+-//   MenuConfig = FALSE,
+-//   StatusBarConfig = FALSE,
+-//   ToolBoxConfig = FALSE,
+-//   GroupId = GID_DRAWING;
+-//]
++SfxVoidItem DeleteShapeHyperlink SID_DRAW_HLINK_DELETE
++()
++[
++   /* flags: */
++   AutoUpdate = TRUE,
++   Cachable = Cachable,
++   FastCall = TRUE,
++   HasCoreId = FALSE,
++   HasDialog = FALSE,
++   ReadOnlyDoc = TRUE,
++   Toggle = FALSE,
++   Container = FALSE,
++   RecordAbsolute = FALSE,
++   RecordPerSet;
++   Synchron;
++
++   /* config: */
++   AccelConfig = TRUE,
++   MenuConfig = FALSE,
++   StatusBarConfig = FALSE,
++   ToolBoxConfig = FALSE,
++   GroupId = GID_DRAWING;
++]
+ 
+ //--------------------------------------------------------------------------
+ SfxVoidItem StandardTextAttributes SID_TEXT_STANDARD
+Index: offapi/com/sun/star/drawing/Shape.idl
+===================================================================
+RCS file: /cvs/api/offapi/com/sun/star/drawing/Shape.idl,v
+retrieving revision 1.18
+diff -u -p -r1.18 Shape.idl
+--- offapi/com/sun/star/drawing/Shape.idl	7 Sep 2005 23:48:02 -0000	1.18
++++ offapi/com/sun/star/drawing/Shape.idl	18 Jul 2007 19:29:56 -0000
+@@ -192,6 +192,10 @@ published service Shape
+                the z-order.
+        */
+        [optional, property] long NavigationOrder;
++
++	/** this property lets you get and set a hyperlink for this shape.
++	 */
++	[optional, property] string Hyperlink;
+ };
+ 
+ //=============================================================================
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-io.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-io.diff
@@ -0,0 +1,18 @@
+--- io/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ io/prj/tests.lst	2007-09-07 08:12:53.000000000 +0200
+@@ -0,0 +1,2 @@
++io   io\test\stm                                        nmake - all io_test_stm NULL
++io   io\test                                            nmake - all io_test NULL
+--- io/test/stm/datatest.cxx	2006-09-17 01:45:12.000000000 +0200
++++ io/test/stm/datatest.cxx	2007-09-07 11:12:59.000000000 +0200
+@@ -693,8 +693,8 @@ public:
+ 
+ 
+ private:
+-	void OObjectStreamTest::testObject( 	const Reference <XObjectOutputStream > &rOut, 
+-											const Reference <XObjectInputStream> &rIn );
++	void testObject( 	const Reference <XObjectOutputStream > &rOut, 
++						const Reference <XObjectInputStream> &rIn );
+ 
+ private:
+ };
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unit-sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unit-sc.diff
@@ -0,0 +1,244 @@
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ sc/qa/unit/ucalc.cxx	2008-02-21 11:02:00.000000000 +0000
+@@ -0,0 +1,131 @@
++// TODO ...
++//    Remove: Foo killed exception ! and re-test ...
++//    deliver.pl
++//          don't call regcomp if we don't have it.
++
++#include "sal/config.h"
++#include <comphelper/unitbootstrap.hxx>
++#include "vcl/svapp.hxx"
++#include <scdll.hxx>
++#include <document.hxx>
++#include <compiler.hxx>
++#include "cppunit/simpleheader.hxx"
++
++#define CATCH_FAIL(msg) \
++    catch (const css::uno::Exception &e) { \
++        t_print ("msg '%s'\n", rtl::OUStringToOString (e.Message, RTL_TEXTENCODING_UTF8).getStr()); \
++        CPPUNIT_FAIL( msg ); \
++        throw; \
++    }
++
++class Test: public CppUnit::TestFixture {
++    UnitBootstrap *mpUnitBootstrap;
++public:
++    Test();
++    virtual ~Test();
++
++    // per-test init/teardown
++    //    virtual void setUp();
++    //    virtual void tearDown();
++
++    // tests
++    void createDocument();
++    void testCompiler();
++
++    CPPUNIT_TEST_SUITE(Test);
++    CPPUNIT_TEST(createDocument);
++    CPPUNIT_TEST(testCompiler);
++    CPPUNIT_TEST_SUITE_END();
++
++private:
++};
++
++//void Test::setUp()
++Test::Test()
++{
++    fprintf (stderr, "Setup\n");
++    mpUnitBootstrap = new UnitBootstrap(getForwardString());
++
++    InitVCL (mpUnitBootstrap->getMSF());
++
++    ScDLL::Init();
++}
++
++//void Test::tearDown()
++Test::~Test()
++{
++    fprintf (stderr, "tear down\n");
++    DeInitVCL ();
++
++    delete mpUnitBootstrap;
++}
++
++static ScDocument *createSimpleDoc()
++{
++    ScDocument *doc = new ScDocument();
++    
++    rtl::OUString aTabName = rtl::OUString::createFromAscii ("foo");
++    CPPUNIT_ASSERT_MESSAGE ("failed to insert sheet",
++                            doc->InsertTab (0, aTabName));
++
++    return doc;
++}
++
++void Test::createDocument()
++{
++    ScDocument *doc = createSimpleDoc();
++    
++    double val = 1;
++    doc->SetValue (0, 0, 0, val);
++    doc->SetValue (0, 1, 0, val);
++    doc->SetString (0, 2, 0, rtl::OUString::createFromAscii ("=SUM(A1:A2)"));
++    doc->CalcAll();
++    double result;
++    doc->GetValue (0, 2, 0, result);
++    fprintf (stderr, "one plus one = %g\n", result);
++    CPPUNIT_ASSERT_MESSAGE ("calculation failed", result == 2.0);
++                    
++    delete doc;
++}
++
++void Test::testCompiler()
++{
++    ScDocument *doc = createSimpleDoc();
++    ScAddress aA1;
++    ScCompiler *pComp = new ScCompiler (doc, aA1);
++
++    static const struct {
++        const char           *pStr;
++        ScAddress::Convention eConv;
++        bool                  bValid;
++    } tests[] = {
++// OO.o style
++        { "=SUM(A1:A2)", ScAddress::CONV_OOO, true },
++        { "=SUM(A1:A2;A1:A2)", ScAddress::CONV_OOO, true },
++// R1C1 tests
++        { "=SUM(R1C1:R2C2)", ScAddress::CONV_XL_R1C1, true },
++        { "=SUM(R-1C-1:R-2C-2)", ScAddress::CONV_XL_R1C1, false },
++    };
++    
++    pComp->SetCompileEnglish (true);
++    for (unsigned int i = 0; i < sizeof (tests) / sizeof(tests[0]); i++)
++    {
++        ScTokenArray *pToks = pComp->CompileString
++            (rtl::OUString::createFromAscii (tests[i].pStr), tests[i].eConv);
++        if (!pToks->GetError() != !!tests[i].bValid)
++        {
++            t_print ("unexpected parsing %s with formula '%s'\n",
++                     tests[i].bValid ? "failure" : "success",
++                     tests[i].pStr);
++            CPPUNIT_ASSERT_MESSAGE ("unexpected parsing error", false);
++        }
++        delete pToks;
++    }
++    
++    delete pComp;
++    delete doc;
++}
++
++CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
++
++NOADDITIONAL;
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ sc/qa/unit/export.map	2007-11-23 13:57:51.000000000 +0000
+@@ -0,0 +1,7 @@
++UDK_3.0 {
++    global:
++        registerAllTestFunction;
++
++    local:
++        *;
++};
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ sc/qa/unit/makefile.mk	2008-02-22 18:24:04.000000000 +0000
+@@ -0,0 +1,97 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.2 $
++#
++#   last change: $Author: ihi $ $Date: 2007/11/23 13:58:12 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2007 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ := ..$/..
++PRJNAME := configmgr
++TARGET := qa_unit
++
++ENABLE_EXCEPTIONS := TRUE
++
++.INCLUDE: settings.mk
++
++DLLPRE = # no leading "lib" on .so files
++
++SHL1TARGET = $(TARGET)
++SHL1OBJS = $(SLO)$/ucalc.obj
++SHL1STDLIBS=       \
++	$(BASICLIB)	\
++	$(SFXLIB)		\
++	$(SVTOOLLIB)	\
++	$(SVLLIB)		\
++	$(SVXLIB)		\
++	$(GOODIESLIB)	\
++    $(BASEGFXLIB) \
++	$(VCLLIB)		\
++	$(CPPULIB)		\
++	$(CPPUHELPERLIB)	\
++	$(COMPHELPERLIB)	\
++	$(UCBHELPERLIB)	\
++	$(TKLIB)		\
++	$(VOSLIB)		\
++	$(SALLIB)		\
++	$(TOOLSLIB)	\
++	$(I18NUTILLIB) \
++	$(I18NISOLANGLIB) \
++	$(UNOTOOLSLIB) \
++	$(SOTLIB)		\
++	$(XMLOFFLIB)	\
++	$(DBTOOLSLIB)	\
++	$(AVMEDIALIB)	\
++	$(CPPUNITLIB) \
++	$(UNITBOOTSTRAPLIB)
++SHL1IMPLIB = i$(SHL1TARGET)
++SHL1LIBS=$(SLB)$/scalc3.lib $(SLB)$/scalc3c.lib 
++SHL1VERSIONMAP = export.map
++DEF1NAME = $(SHL1TARGET)
++
++.INCLUDE: target.mk
++
++ALLTAR: test
++
++USERDIR=$(OUT)$/unit
++
++$(USERDIR):
++    $(RM) -rf $(USERDIR)
++    $(COPY) $(COPYRECURSE) $(SOLARXMLDIR)$/unit-skel $(USERDIR)
++
++$(USERDIR)$/$(TARGET).rdb $(USERDIR)$/mergelist .ERRREMOVE: $(USERDIR)
++    echo "$(USERDIR)$/$(TARGET).rdb / $(SOLARBINDIR)$/types.rdb " > $(USERDIR)$/mergelist
++    $(FIND) $(SOLARLIBDIR) -name "unit-*.rdb" >> $(USERDIR)$/mergelist
++    regmerge @$(USERDIR)$/mergelist
++
++test .PHONY: $(SHL1TARGETN) $(USERDIR)$/$(TARGET).rdb
++    testshl2 $(SHL1TARGETN) -forward "$(USERDIR)$/$(TARGET).rdb#$(USERDIR)"
++    $(RM) -rf $(USERDIR)
++
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-jurt.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-jurt.diff
@@ -0,0 +1,13 @@
+--- jurt/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ jurt/prj/tests.lst	2007-09-07 09:56:57.000000000 +0200
+@@ -0,0 +1,10 @@
++#not necessary: ju   jurt\test                                          nmake - all ju_test NULL
++#does not work: ju   jurt\test\com\sun\star\comp\bridgefactory          nmake - all ju_test_com_sun_star_comp_bridgefactory NULL
++#does not work: ju   jurt\test\com\sun\star\comp\connections            nmake - all ju_test_com_sun_star_comp_connections NULL
++#does not work: ju   jurt\test\com\sun\star\lib\uno\bridges\java_remote nmake - all ju_test_com_sun_star_lib_uno_bridges_java_remote NULL
++#does not work: ju   jurt\test\com\sun\star\lib\uno\environments\java   nmake - all ju_test_com_sun_star_lib_uno_environments_java NULL
++#does not work: ju   jurt\test\com\sun\star\lib\uno\environments\remote nmake - all ju_test_com_sun_star_lib_uno_environments_remote NULL
++#does not work: ju   jurt\test\com\sun\star\lib\uno\protocols\urp       nmake - all ju_test_com_sun_star_lib_uno_protocols_urp NULL
++#does not work: ju   jurt\test\com\sun\star\lib\util                    nmake - all ju_test_com_sun_star_lib_util NULL
++#does not work: ju   jurt\test\com\sun\star\uno                         nmake - all ju_test_com_sun_star_uno NULL
++#does not work: ju   jurt\workbench\com\sun\star\comp\urlresolver       nmake - all ju_workbench_com_sun_star_comp_urlresolver NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/i87401-packagelist.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/i87401-packagelist.diff
@@ -0,0 +1,71 @@
+--- solenv/bin/modules/installer/packagelist.pm
++++ solenv/bin/modules/installer/packagelist.pm
+@@ -75,6 +75,8 @@
+ 	
+ 	@allpackages = ();
+ 	
++	my $moduleshash = get_module_hash($moduleslist);
++	
+ 	for ( my $i = 0; $i <= $#{$packagelist}; $i++ )
+ 	{
+ 		my $onepackage = ${$packagelist}[$i];
+@@ -91,7 +93,8 @@
+ 
+ 		push(@allmodules, $onegid);
+ 		
+-		get_children($moduleslist, $onegid, \@allmodules);
++		# get_children($moduleslist, $onegid, \@allmodules);
++		get_children_with_hash($moduleshash, $onegid, \@allmodules);
+ 		
+ 		$onepackage->{'allmodules'} = \@allmodules;
+ 
+@@ -101,6 +104,49 @@
+ 	return \@allpackages;
+ }
+ 
++###################################################
++# Creating a hash, that contains the module gids
++# as keys and the parentids as values
++###################################################
++
++sub get_module_hash
++{
++	my ($moduleslist) = @_;
++	
++	my %modulehash = ();
++	
++	for ( my $i = 0; $i <= $#{$moduleslist}; $i++ )
++	{
++		my $gid = ${$moduleslist}[$i]->{'gid'};
++		# Containing only modules with parent. Root modules can be ignored.
++		if ( ${$moduleslist}[$i]->{'ParentID'} ) { $modulehash{$gid} = ${$moduleslist}[$i]->{'ParentID'}; }
++	}
++	
++	return \%modulehash;
++}
++
++########################################################
++# Recursively defined procedure to order 
++# modules and directories
++########################################################
++
++sub get_children_with_hash
++{
++	my ($modulehash, $parentgid, $newitemorder) = @_;
++
++	foreach my $gid ( keys %{$modulehash} )
++	{
++		my $parent = $modulehash->{$gid};
++
++		if ( $parent eq $parentgid )
++		{
++			push(@{$newitemorder}, $gid);
++			my $parent = $gid;
++			get_children_with_hash($modulehash, $parent, $newitemorder);	# recursive!
++		}		
++	}
++}
++
+ ########################################################
+ # Recursively defined procedure to order 
+ # modules and directories
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ark-system-precompiled-java.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ark-system-precompiled-java.diff
@@ -0,0 +1,25 @@
+--- xmlhelp/source/com/sun/star/help/makefile.mk.ark	2006-03-01 23:44:21.000000000 +0100
++++ xmlhelp/source/com/sun/star/help/makefile.mk	2006-03-01 23:45:50.000000000 +0100
+@@ -121,21 +121,7 @@
+ 		-Djavax.xml.validation.SchemaFactory=org.apache.xerces.jaxp.validation.XMLSchemaFactory \
+ 		-Dorg.w3c.dom.DOMImplementationSourceList=org.apache.xerces.dom.DOMXSImplementationSourceImpl \
+ 		-Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser \
+-		-ldb.jar -lxmlsearch.jar -lxt.jar -lunoil.jar -ljurt.jar -lridl.jar -lxt-xmlsearch.jar
+-
+-.IF "$(SYSTEM_DB)"=="YES"
+-$(BIN)$/HelpLinker: $(LB)$/libdb.jar.a
+-
+-$(LB)$/libdb.jar.a:
+-	$(JAVABINCOMPILER) -c -O2 -findirect-dispatch -fjni $(DB_JAR) -o $(LB)$/libdb.jar.a
+-.ENDIF
+-
+-.IF "$(SYSTEM_XT)"=="YES"
+-$(BIN)$/HelpLinker: $(LB)$/libxt.jar.a
+-
+-$(LB)$/libxt.jar.a:
+-	$(JAVABINCOMPILER) -c -O2 -findirect-dispatch -fjni $(XT_JAR) -o $(LB)$/libxt.jar.a
+-.ENDIF
++		-ldb.jar -lxmlsearch.jar -lxt -lxercesImpl -lunoil.jar -ljurt.jar -lridl.jar -lxt-xmlsearch.jar
+ 
+ .ELSE
+ JARCLASSDIRS	= com
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/samba-hyperlinks-sc-sd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/samba-hyperlinks-sc-sd.diff
@@ -0,0 +1,68 @@
+--- sc/source/filter/excel/xecontent.cxx	2008-05-13 15:26:02.000000000 +0200
++++ sc/source/filter/excel/xecontent.cxx	2008-05-13 15:59:33.000000000 +0200
+@@ -350,12 +350,20 @@ XclExpHyperlink::XclExpHyperlink( const 
+     }
+ 
+     // file link or URL
+-    if( eProtocol == INET_PROT_FILE )
++    if( eProtocol == INET_PROT_FILE || eProtocol == INET_PROT_SMB )
+     {
+         sal_uInt16 nLevel;
+         bool bRel;
+         String aFileName( BuildFileName( nLevel, bRel, rUrl, rRoot ) );
+ 
++        if( eProtocol == INET_PROT_SMB )
++        {
++            // #n382718# (and #n261623#) Convert smb notation to '\\'
++            aFileName = aUrlObj.GetMainURL( INetURLObject::NO_DECODE );
++            aFileName = String( aFileName.GetBuffer() + 4 ); // skip the 'smb:' part
++            aFileName.SearchAndReplaceAll( '/', '\\' );
++        }
++
+         if( !bRel )
+             mnFlags |= EXC_HLINK_ABS;
+         mnFlags |= EXC_HLINK_BODY;
+--- sd/source/filter/pptin.cxx	2008-05-14 10:45:19.000000000 +0200
++++ sd/source/filter/pptin.cxx	2008-05-14 10:44:43.000000000 +0200
+@@ -437,6 +437,11 @@ sal_Bool ImplSdPPTImport::Import()
+ 										aPropItem >> pHyperlink->nInfo;
+ 										if ( !aPropItem.Read( pHyperlink->aTarget, VT_EMPTY ) )
+ 											break;
++
++										// #n382718# (and #n261623#) Convert '\\' notation to 'smb://'
++										INetURLObject aUrl( pHyperlink->aTarget, INET_PROT_FILE );
++										pHyperlink->aTarget = aUrl.GetMainURL( INetURLObject::NO_DECODE );
++
+ 										if ( !aPropItem.Read( pHyperlink->aSubAdress, VT_EMPTY ) )
+ 											break;
+ 										pHyperlink->nStartPos = pHyperlink->nEndPos = -1;
+--- sd/source/filter/eppt/epptso.cxx	2008-05-13 16:07:26.000000000 +0200
++++ sd/source/filter/eppt/epptso.cxx	2008-05-14 10:34:01.000000000 +0200
+@@ -3054,9 +3054,18 @@ void PPTWriter::ImplWriteTextStyleAtom( 
+ 							String aPageUrl;
+ 							String aEmpty;
+ 							String aFile( pFieldEntry->aFieldUrl );
++							String aTarget( pFieldEntry->aFieldUrl );
+ 							INetURLObject aUrl( pFieldEntry->aFieldUrl );
+ 							if ( INET_PROT_FILE == aUrl.GetProtocol() )
+ 								aFile = aUrl.PathToFileName();
++							else if ( INET_PROT_SMB == aUrl.GetProtocol() )
++							{
++								// #n382718# (and #n261623#) Convert smb notation to '\\'
++								aFile = aUrl.GetMainURL( INetURLObject::NO_DECODE );
++								aFile = String( aFile.GetBuffer() + 4 ); // skip the 'smb:' part
++								aFile.SearchAndReplaceAll( '/', '\\' );
++								aTarget = aFile;
++							}
+ 							else if ( pFieldEntry->aFieldUrl.GetChar( 0 ) == '#' )
+ 							{
+ 								String aPage( INetURLObject::decode( pFieldEntry->aFieldUrl, '%', INetURLObject::DECODE_WITH_CHARSET ) );
+@@ -3077,7 +3086,7 @@ void PPTWriter::ImplWriteTextStyleAtom( 
+ 							if ( aPageUrl.Len() )
+ 								nHyperId = ImplInsertBookmarkURL( aPageUrl, 1 | ( nPageIndex << 8 ) | ( 1 << 31 ), pFieldEntry->aRepresentation, aEmpty, aEmpty, aPageUrl );
+ 							else
+-								nHyperId = ImplInsertBookmarkURL( pFieldEntry->aFieldUrl, 2 | ( nHyperId << 8 ), aFile, pFieldEntry->aFieldUrl, aEmpty, aEmpty );
++								nHyperId = ImplInsertBookmarkURL( pFieldEntry->aFieldUrl, 2 | ( nHyperId << 8 ), aFile, aTarget, aEmpty, aEmpty );
+ 
+                             rOut << (sal_uInt32)( ( EPP_InteractiveInfo << 16 ) | 0xf ) << (sal_uInt32)24
+                                  << (sal_uInt32)( EPP_InteractiveInfoAtom << 16 ) << (sal_uInt32)16
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-dataform-suppor-vba.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-dataform-suppor-vba.diff
@@ -0,0 +1,12 @@
+diff -uNr sc/inc/scabstdlg.hxx sc/inc/scabstdlg.hxx
+--- sc/inc/scabstdlg.hxx	2007-09-18 15:45:23.000000000 +0800
++++ sc/inc/scabstdlg.hxx	2007-09-18 15:43:57.000000000 +0800
+@@ -310,7 +310,7 @@
+ class ScAbstractDialogFactory
+ {
+ public:
+-	static ScAbstractDialogFactory* 	Create();
++	SC_DLLPUBLIC static ScAbstractDialogFactory* 	Create();
+ 
+ 	virtual 	AbstractScImportAsciiDlg * CreateScImportAsciiDlg( Window* pParent, String aDatName, //add for ScImportAsciiDlg
+ 																	SvStream* pInStream, int nId,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-overwrite-char-font-attrs.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-overwrite-char-font-attrs.diff
@@ -0,0 +1,774 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/inc/attarray.hxx sc/inc/attarray.hxx
+--- sc.clean/inc/attarray.hxx	2008-05-18 01:44:42.000000000 -0400
++++ sc/inc/attarray.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -45,6 +45,7 @@
+ #endif
+ 
+ class ScDocument;
++class ScEditDataArray;
+ class ScMarkArray;
+ class ScPatternAttr;
+ class ScStyleSheet;
+@@ -135,9 +136,11 @@ public:
+ 							SCROW nStartRow, SCROW nEndRow, BOOL bLeft, SCCOL nDistRight );
+ 
+ 	void	SetPattern( SCROW nRow, const ScPatternAttr* pPattern, BOOL bPutToPool = FALSE );
+-	void	SetPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr* pPattern, BOOL bPutToPool = FALSE);
++	void	SetPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr* pPattern, 
++                            BOOL bPutToPool = FALSE, ScEditDataArray* pDataArray = NULL );
+ 	void	ApplyStyleArea( SCROW nStartRow, SCROW nEndRow, ScStyleSheet* pStyle );
+-	void	ApplyCacheArea( SCROW nStartRow, SCROW nEndRow, SfxItemPoolCache* pCache );
++	void	ApplyCacheArea( SCROW nStartRow, SCROW nEndRow, SfxItemPoolCache* pCache, 
++                            ScEditDataArray* pDataArray = NULL );
+ 	void	ApplyLineStyleArea( SCROW nStartRow, SCROW nEndRow,
+ 								const SvxBorderLine* pLine, BOOL bColorOnly );
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/inc/cell.hxx sc/inc/cell.hxx
+--- sc.clean/inc/cell.hxx	2008-05-18 01:44:42.000000000 -0400
++++ sc/inc/cell.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -39,6 +39,7 @@
+ #include <stddef.h>
+ 
+ #include <set>
++#include <vector>
+ 
+ #ifndef _SVMEMPOOL_HXX //autogen
+ #include <tools/mempool.hxx>
+@@ -61,6 +62,8 @@
+ #include <vcl/fontcvt.hxx>
+ #endif
+ 
++#include <boost/shared_ptr.hpp>
++
+ #define USE_MEMPOOL
+ #define TEXTWIDTH_DIRTY		0xffff
+ 
+@@ -76,6 +79,7 @@ class ScCodeArray;
+ class ScTokenArray;
+ class ScProgress;
+ class ScPostIt;
++class ScPatternAttr;
+ 
+ class ScMultipleReadHeader;
+ class ScMultipleWriteHeader;
+@@ -230,8 +234,57 @@ public:
+ 	const EditTextObject* GetData() const	{ return pData; }
+ 
+ 	void			Save( SvStream& rStream ) const;
++
++    /** Removes character attribute based on new pattern attributes. */
++    void            RemoveCharAttribs( const ScPatternAttr& rAttr );
+ };
+ 
++// ----------------------------------------------------------------------------
++
++class ScEditDataArray
++{
++public:
++    class Item
++    {
++    public:
++        explicit Item(SCTAB nTab, SCCOL nCol, SCROW nRow, 
++                      EditTextObject* pOldData, EditTextObject* pNewData);
++        ~Item();
++    
++        const EditTextObject* GetOldData() const;
++        const EditTextObject* GetNewData() const;
++        SCTAB GetTab() const;
++        SCCOL GetCol() const;
++        SCROW GetRow() const;
++    
++    private:
++        Item(); // disabled
++    
++    private:
++        ::boost::shared_ptr<EditTextObject> mpOldData;
++        ::boost::shared_ptr<EditTextObject> mpNewData;
++        SCTAB mnTab;
++        SCCOL mnCol;
++        SCROW mnRow;
++
++    };
++
++    ScEditDataArray();
++    ~ScEditDataArray();
++
++    void AddItem(SCTAB nTab, SCCOL nCol, SCROW nRow, 
++                 EditTextObject* pOldData, EditTextObject* pNewData);
++
++    const Item* First();
++    const Item* Next();
++
++private:
++    ::std::vector<Item>::const_iterator maIter;
++    ::std::vector<Item> maArray;
++};
++
++// ----------------------------------------------------------------------------
++
+ enum ScMatrixMode {
+ 	MM_NONE		 = 0,					// keine Matrixformel
+ 	MM_FORMULA	 = 1,					// Matrixformel
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/inc/column.hxx sc/inc/column.hxx
+--- sc.clean/inc/column.hxx	2008-05-18 01:44:42.000000000 -0400
++++ sc/inc/column.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -73,6 +73,7 @@ class ScAttrIterator;
+ class ScAttrArray;
+ class ScBaseCell;
+ class ScDocument;
++class ScEditDataArray;
+ class ScFormulaCell;
+ class ScMarkData;
+ class ScMultipleReadHeader;
+@@ -333,7 +334,8 @@ public:
+ 
+ 	void		ApplyAttr( SCROW nRow, const SfxPoolItem& rAttr );
+ 	void		ApplyPattern( SCROW nRow, const ScPatternAttr& rPatAttr );
+-	void		ApplyPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr& rPatAttr );
++	void		ApplyPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr& rPatAttr, 
++                                  ScEditDataArray* pDataArray = NULL );
+ 	void		SetPattern( SCROW nRow, const ScPatternAttr& rPatAttr, BOOL bPutToPool = FALSE );
+ 	void		SetPatternArea( SCROW nStartRow, SCROW nEndRow,
+ 								const ScPatternAttr& rPatAttr, BOOL bPutToPool = FALSE );
+@@ -365,7 +367,7 @@ public:
+ 
+ 	void		RemoveProtected( SCROW nStartRow, SCROW nEndRow );
+ 
+-	SCsROW		ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark );
++	SCsROW		ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = NULL );
+ 	void		DeleteSelection( USHORT nDelFlag, const ScMarkData& rMark );
+ 
+ 	void		ClearSelectionItems( const USHORT* pWhich, const ScMarkData& rMark );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/inc/document.hxx sc/inc/document.hxx
+--- sc.clean/inc/document.hxx	2008-05-18 01:44:42.000000000 -0400
++++ sc/inc/document.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -1130,7 +1130,8 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollec
+ 									const ScPatternAttr& rAttr );
+ 	void			ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow,
+ 										SCCOL nEndCol, SCROW nEndRow,
+-										const ScMarkData& rMark, const ScPatternAttr& rAttr );
++										const ScMarkData& rMark, const ScPatternAttr& rAttr,
++                                      ScEditDataArray* pDataArray = NULL );
+ 	void			ApplyPatternAreaTab( SCCOL nStartCol, SCROW nStartRow,
+ 											SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
+ 											const ScPatternAttr& rAttr );
+@@ -1197,7 +1198,8 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollec
+ 							SCCOL nVCol, SCROW nVRow, SCTAB nVTab,
+ 							const String& sValStr, double& nX);
+ 
+-	void			ApplySelectionPattern( const ScPatternAttr& rAttr, const ScMarkData& rMark );
++	void			ApplySelectionPattern( const ScPatternAttr& rAttr, const ScMarkData& rMark, 
++                                           ScEditDataArray* pDataArray = NULL );
+ 	void			DeleteSelection( USHORT nDelFlag, const ScMarkData& rMark );
+ 	void			DeleteSelectionTab( SCTAB nTab, USHORT nDelFlag, const ScMarkData& rMark );
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/inc/table.hxx sc/inc/table.hxx
+--- sc.clean/inc/table.hxx	2008-05-18 01:44:42.000000000 -0400
++++ sc/inc/table.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -77,6 +77,7 @@ class ScAutoFormatData;
+ class ScBaseCell;
+ class ScDocument;
+ class ScDrawLayer;
++class ScEditDataArray;
+ class ScFormulaCell;
+ class ScOutlineTable;
+ class ScPostIt;
+@@ -472,7 +473,8 @@ public:
+ 
+ 	void		ApplyAttr( SCCOL nCol, SCROW nRow, const SfxPoolItem& rAttr );
+ 	void		ApplyPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
+-	void		ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr& rAttr );
++	void		ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, 
++                                  const ScPatternAttr& rAttr, ScEditDataArray* pDataArray = NULL );
+ 	void		SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr, BOOL bPutToPool = FALSE )
+ 					{ aCol[rPos.Col()].SetPattern( rPos.Row(), rAttr, bPutToPool ); }
+ 	void		SetPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr, BOOL bPutToPool = FALSE );
+@@ -500,7 +502,7 @@ public:
+ 	BOOL		ApplyFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, INT16 nFlags );
+ 	BOOL		RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, INT16 nFlags );
+ 
+-	void		ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark );
++	void		ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = NULL );
+ 	void		DeleteSelection( USHORT nDelFlag, const ScMarkData& rMark );
+ 
+ 	void		ClearSelectionItems( const USHORT* pWhich, const ScMarkData& rMark );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/core/data/attarray.cxx sc/source/core/data/attarray.cxx
+--- sc.clean/source/core/data/attarray.cxx	2008-05-18 01:44:46.000000000 -0400
++++ sc/source/core/data/attarray.cxx	2008-05-18 01:52:28.000000000 -0400
+@@ -46,6 +46,7 @@
+ #include <svx/bolnitem.hxx>
+ #include <svx/frmdiritem.hxx>
+ #include <svx/shaditem.hxx>
++#include <svx/editobj.hxx>
+ #include <svtools/poolcach.hxx>
+ 
+ #ifndef _SVX_FONTITEM_HXX
+@@ -65,7 +66,7 @@
+ #include "markarr.hxx"
+ #include "rechead.hxx"
+ #include "globstr.hrc"
+-
++#include "cell.hxx"
+ 
+ #undef DBG_INVALIDATE
+ #define DBGOUTPUT(s) \
+@@ -310,7 +311,8 @@ void ScAttrArray::SetPattern( SCROW nRow
+ }
+ 
+ 
+-void ScAttrArray::SetPatternArea(SCROW nStartRow, SCROW nEndRow, const ScPatternAttr *pPattern, BOOL bPutToPool )
++void ScAttrArray::SetPatternArea(SCROW nStartRow, SCROW nEndRow, const ScPatternAttr *pPattern, 
++                                 BOOL bPutToPool, ScEditDataArray* pDataArray )
+ {
+ 	if (ValidRow(nStartRow) && ValidRow(nEndRow))
+ 	{
+@@ -480,6 +482,32 @@ void ScAttrArray::SetPatternArea(SCROW n
+                     pData[nInsert-1].nRow = nStartRow - 1;
+                 pData[nInsert].nRow = nEndRow;
+                 pData[nInsert].pPattern = pPattern;
++
++                // Remove character attributes from these cells if the pattern
++                // is applied during normal session.  We don't want to do this
++                // while importing document.
++                if (!pDocument->IsImportingXML())
++                {
++                    for (SCROW nRow = nStartRow; nRow <= nEndRow; ++nRow)
++                    {
++                        ScBaseCell* pCell;
++                        pDocument->GetCell(nCol, nRow, nTab, pCell);
++                        if (pCell && pCell->GetCellType() == CELLTYPE_EDIT)
++                        {
++                            EditTextObject* pOldData = NULL;
++                            ScEditCell* pEditCell = static_cast<ScEditCell*>(pCell);
++                            if (pDataArray)
++                                pOldData = pEditCell->GetData()->Clone();
++                            pEditCell->RemoveCharAttribs(*pPattern);
++                            if (pDataArray)
++                            {
++                                EditTextObject* pNewData = pEditCell->GetData()->Clone();
++                                pDataArray->AddItem(nTab, nCol, nRow, pOldData, pNewData);
++                            }
++                        }
++                    }
++                }
++
+                 nCount++;
+             }
+ 		}
+@@ -715,7 +743,7 @@ void ScAttrArray::ApplyLineStyleArea( SC
+ #undef SET_LINE
+ 
+ 
+-void ScAttrArray::ApplyCacheArea( SCROW nStartRow, SCROW nEndRow, SfxItemPoolCache* pCache )
++void ScAttrArray::ApplyCacheArea( SCROW nStartRow, SCROW nEndRow, SfxItemPoolCache* pCache, ScEditDataArray* pDataArray )
+ {
+ #ifdef DBG_UTIL
+ 	TestData();
+@@ -750,7 +778,7 @@ void ScAttrArray::ApplyCacheArea( SCROW 
+ 				{
+ 					if (nY1 < nStartRow) nY1=nStartRow;
+ 					if (nY2 > nEndRow) nY2=nEndRow;
+-					SetPatternArea( nY1, nY2, pNewPattern );
++					SetPatternArea( nY1, nY2, pNewPattern, false, pDataArray );
+ 					Search( nStart, nPos );
+ 				}
+ 				else
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/core/data/cell2.cxx sc/source/core/data/cell2.cxx
+--- sc.clean/source/core/data/cell2.cxx	2008-05-18 01:44:46.000000000 -0400
++++ sc/source/core/data/cell2.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -61,7 +61,8 @@
+ #include "editutil.hxx"
+ #include "chgtrack.hxx"
+ #include "indexmap.hxx"
+-
++#include "scitems.hxx"
++#include "patattr.hxx"
+ 
+ // STATIC DATA -----------------------------------------------------------
+ 
+@@ -201,6 +202,27 @@ void ScEditCell::Save( SvStream& rStream
+         pData->Store( rStream );
+ }
+ 
++void ScEditCell::RemoveCharAttribs( const ScPatternAttr& rAttr )
++{
++    const struct {
++        USHORT nAttrType; 
++        USHORT nCharType;
++    } AttrTypeMap[] = {
++        { ATTR_FONT,        EE_CHAR_FONTINFO },
++        { ATTR_FONT_HEIGHT, EE_CHAR_FONTHEIGHT },
++        { ATTR_FONT_COLOR,  EE_CHAR_COLOR }
++    };
++    USHORT nMapCount = sizeof(AttrTypeMap) / sizeof(AttrTypeMap[0]);
++
++    const SfxItemSet& rSet = rAttr.GetItemSet();
++    const SfxPoolItem* pItem;
++    for (USHORT i = 0; i < nMapCount; ++i)
++    {
++        if ( rSet.GetItemState(AttrTypeMap[i].nAttrType, false, &pItem) == SFX_ITEM_SET )
++            pData->RemoveCharAttribs(AttrTypeMap[i].nCharType);
++    }
++}
++
+ void ScEditCell::SetTextObject( const EditTextObject* pObject,
+             const SfxItemPool* pFromPool )
+ {
+@@ -236,6 +258,76 @@ void ScEditCell::SetTextObject( const Ed
+         pData = NULL;
+ }
+ 
++ScEditDataArray::ScEditDataArray()
++{
++}
++
++ScEditDataArray::~ScEditDataArray()
++{
++}
++
++void ScEditDataArray::AddItem(SCTAB nTab, SCCOL nCol, SCROW nRow, 
++                              EditTextObject* pOldData, EditTextObject* pNewData)
++{
++    maArray.push_back(Item(nTab, nCol, nRow, pOldData, pNewData));
++}
++
++const ScEditDataArray::Item* ScEditDataArray::First()
++{
++    maIter = maArray.begin();
++    if (maIter == maArray.end())
++        return NULL;
++    return &(*maIter++);
++}
++
++const ScEditDataArray::Item* ScEditDataArray::Next()
++{
++    if (maIter == maArray.end())
++        return NULL;
++    return &(*maIter++);
++}
++
++//---------------------------------------------------------------------
++
++ScEditDataArray::Item::Item(SCTAB nTab, SCCOL nCol, SCROW nRow, 
++                            EditTextObject* pOldData, EditTextObject* pNewData) :
++    mnTab(nTab),
++    mnCol(nCol),
++    mnRow(nRow)
++{
++    mpOldData.reset(pOldData);
++    mpNewData.reset(pNewData);
++}
++
++ScEditDataArray::Item::~Item()
++{
++}
++
++const EditTextObject* ScEditDataArray::Item::GetOldData() const
++{
++    return mpOldData.get();
++}
++
++const EditTextObject* ScEditDataArray::Item::GetNewData() const
++{
++    return mpNewData.get();
++}
++
++SCTAB ScEditDataArray::Item::GetTab() const
++{
++    return mnTab;
++}
++
++SCCOL ScEditDataArray::Item::GetCol() const
++{
++    return mnCol;
++}
++
++SCROW ScEditDataArray::Item::GetRow() const
++{
++    return mnRow;
++}
++
+ //---------------------------------------------------------------------
+ 
+ void ScFormulaCell::GetEnglishFormula( String& rFormula, BOOL bCompileXML,
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/core/data/column.cxx sc/source/core/data/column.cxx
+--- sc.clean/source/core/data/column.cxx	2008-05-18 01:44:46.000000000 -0400
++++ sc/source/core/data/column.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -370,7 +370,7 @@ ULONG ScColumn::GetNumberFormat( SCROW n
+ }
+ 
+ 
+-SCsROW ScColumn::ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark )
++SCsROW ScColumn::ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray )
+ {
+     SCROW nTop = 0;
+     SCROW nBottom = 0;
+@@ -381,7 +381,7 @@ SCsROW ScColumn::ApplySelectionCache( Sf
+ 		ScMarkArrayIter aMarkIter( rMark.GetArray() + nCol );
+ 		while (aMarkIter.Next( nTop, nBottom ))
+ 		{
+-			pAttrArray->ApplyCacheArea( nTop, nBottom, pCache );
++			pAttrArray->ApplyCacheArea( nTop, nBottom, pCache, pDataArray );
+ 			bFound = TRUE;
+ 		}
+ 	}
+@@ -455,11 +455,12 @@ void ScColumn::ApplyPattern( SCROW nRow,
+ }
+ 
+ 
+-void ScColumn::ApplyPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr& rPatAttr )
++void ScColumn::ApplyPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr& rPatAttr, 
++                                 ScEditDataArray* pDataArray )
+ {
+ 	const SfxItemSet* pSet = &rPatAttr.GetItemSet();
+ 	SfxItemPoolCache aCache( pDocument->GetPool(), pSet );
+-	pAttrArray->ApplyCacheArea( nStartRow, nEndRow, &aCache );
++	pAttrArray->ApplyCacheArea( nStartRow, nEndRow, &aCache, pDataArray );
+ }
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/core/data/document.cxx sc/source/core/data/document.cxx
+--- sc.clean/source/core/data/document.cxx	2008-05-18 01:44:46.000000000 -0400
++++ sc/source/core/data/document.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -3049,12 +3049,13 @@ void ScDocument::ApplyPattern( SCCOL nCo
+ void ScDocument::ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow,
+ 						SCCOL nEndCol, SCROW nEndRow,
+ 						const ScMarkData& rMark,
+-						const ScPatternAttr& rAttr )
++						const ScPatternAttr& rAttr,
++                        ScEditDataArray* pDataArray )
+ {
+ 	for (SCTAB i=0; i <= MAXTAB; i++)
+ 		if (pTab[i])
+ 			if (rMark.GetTableSelect(i))
+-				pTab[i]->ApplyPatternArea( nStartCol, nStartRow, nEndCol, nEndRow, rAttr );
++				pTab[i]->ApplyPatternArea( nStartCol, nStartRow, nEndCol, nEndRow, rAttr, pDataArray );
+ }
+ 
+ 
+@@ -4143,7 +4144,7 @@ void ScDocument::ApplyFrameAreaTab( cons
+ }
+ 
+ 
+-void ScDocument::ApplySelectionPattern( const ScPatternAttr& rAttr, const ScMarkData& rMark )
++void ScDocument::ApplySelectionPattern( const ScPatternAttr& rAttr, const ScMarkData& rMark, ScEditDataArray* pDataArray )
+ {
+ 	const SfxItemSet* pSet = &rAttr.GetItemSet();
+ 	BOOL bSet = FALSE;
+@@ -4160,7 +4161,7 @@ void ScDocument::ApplySelectionPattern( 
+ 			ScRange aRange;
+ 			rMark.GetMarkArea( aRange );
+ 			ApplyPatternArea( aRange.aStart.Col(), aRange.aStart.Row(),
+-							  aRange.aEnd.Col(), aRange.aEnd.Row(), rMark, rAttr );
++							  aRange.aEnd.Col(), aRange.aEnd.Row(), rMark, rAttr, pDataArray );
+ 		}
+ 		else
+ 		{
+@@ -4168,7 +4169,7 @@ void ScDocument::ApplySelectionPattern( 
+             for (SCTAB nTab=0; nTab<=MAXTAB; nTab++)
+                 if (pTab[nTab])
+                     if (rMark.GetTableSelect(nTab))
+-                        pTab[nTab]->ApplySelectionCache( &aCache, rMark );
++                        pTab[nTab]->ApplySelectionCache( &aCache, rMark, pDataArray );
+ 		}
+ 	}
+ }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/core/data/table2.cxx sc/source/core/data/table2.cxx
+--- sc.clean/source/core/data/table2.cxx	2008-05-18 01:44:46.000000000 -0400
++++ sc/source/core/data/table2.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -1657,14 +1657,14 @@ void ScTable::ApplyPattern( SCCOL nCol, 
+ 
+ 
+ void ScTable::ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
+-									 const ScPatternAttr& rAttr )
++									 const ScPatternAttr& rAttr, ScEditDataArray* pDataArray )
+ {
+ 	if (ValidColRow(nStartCol, nStartRow) && ValidColRow(nEndCol, nEndRow))
+ 	{
+ 		PutInOrder(nStartCol, nEndCol);
+ 		PutInOrder(nStartRow, nEndRow);
+ 		for (SCCOL i = nStartCol; i <= nEndCol; i++)
+-			aCol[i].ApplyPatternArea(nStartRow, nEndRow, rAttr);
++			aCol[i].ApplyPatternArea(nStartRow, nEndRow, rAttr, pDataArray);
+ 	}
+ }
+ 
+@@ -1872,10 +1872,11 @@ void ScTable::ApplyAttr( SCCOL nCol, SCR
+ }
+ 
+ 
+-void ScTable::ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark )
++void ScTable::ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark,
++                                   ScEditDataArray* pDataArray )
+ {
+ 	for (SCCOL i=0; i<=MAXCOL; i++)
+-		aCol[i].ApplySelectionCache( pCache, rMark );
++		aCol[i].ApplySelectionCache( pCache, rMark, pDataArray );
+ }
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/ui/inc/undoblk.hxx sc/source/ui/inc/undoblk.hxx
+--- sc.clean/source/ui/inc/undoblk.hxx	2008-05-18 01:44:43.000000000 -0400
++++ sc/source/ui/inc/undoblk.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -48,6 +48,10 @@
+ #include "spellparam.hxx"
+ #endif
+ 
++#include "cell.hxx"
++
++#include <boost/shared_ptr.hpp>
++
+ class ScDocShell;
+ class ScDocument;
+ class ScOutlineTable;
+@@ -360,9 +364,11 @@ public:
+ 
+ 	virtual String	GetComment() const;
+ 
++    ScEditDataArray*    GetDataArray();
+ private:
+ 	ScMarkData		aMarkData;
+ 	ScRange			aRange;
++    ScEditDataArray aDataArray; 
+ 	ScDocument*		pUndoDoc;
+ 	BOOL			bMulti;
+ 	ScPatternAttr*	pApplyPattern;
+@@ -370,6 +376,7 @@ private:
+ 	SvxBoxInfoItem*	pLineInner;
+ 
+ 	void			DoChange( const BOOL bUndo );
++    void            ChangeEditData( const bool bUndo );
+ };
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/ui/inc/undocell.hxx sc/source/ui/inc/undocell.hxx
+--- sc.clean/source/ui/inc/undocell.hxx	2008-05-18 01:44:43.000000000 -0400
++++ sc/source/ui/inc/undocell.hxx	2008-05-18 01:44:58.000000000 -0400
+@@ -43,6 +43,8 @@
+ #include "postit.hxx"
+ #endif
+ 
++#include <boost/shared_ptr.hpp>
++
+ class ScDocShell;
+ class ScBaseCell;
+ class ScPatternAttr;
+@@ -71,6 +73,11 @@ public:
+ 
+ 	virtual String	GetComment() const;
+ 
++    /** once the objects are passed to this class, their life-cycle is
++        managed by this class; the calling function must pass new'ed
++        objects to this method. */
++    void            SetEditData( EditTextObject* pOld, EditTextObject* pNew );
++
+ private:
+ 	SCCOL			nCol;
+ 	SCROW			nRow;
+@@ -78,9 +85,11 @@ private:
+ 	ScPatternAttr*	pOldPattern;
+ 	ScPatternAttr*	pNewPattern;
+ 	ScPatternAttr*	pApplyPattern;
++    ::boost::shared_ptr<EditTextObject> pOldEditData;
++    ::boost::shared_ptr<EditTextObject> pNewEditData;
+ 	BOOL			bIsAutomatic;
+ 
+-	void			DoChange( const ScPatternAttr* pWhichPattern ) const;
++	void			DoChange( const ScPatternAttr* pWhichPattern, const ::boost::shared_ptr<EditTextObject>& pEditData ) const;
+ };
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/ui/undo/makefile.mk sc/source/ui/undo/makefile.mk
+--- sc.clean/source/ui/undo/makefile.mk	2008-05-18 01:44:43.000000000 -0400
++++ sc/source/ui/undo/makefile.mk	2008-05-18 01:44:58.000000000 -0400
+@@ -89,6 +89,7 @@ SLOFILES =  \
+ 		$(SLO)$/undotab.obj
+ 
+ EXCEPTIONSFILES= \
++    $(SLO)$/undocell.obj \
+     $(SLO)$/undostyl.obj
+ 
+ # --- Tagets -------------------------------------------------------
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/ui/undo/undoblk3.cxx sc/source/ui/undo/undoblk3.cxx
+--- sc.clean/source/ui/undo/undoblk3.cxx	2008-05-18 01:44:43.000000000 -0400
++++ sc/source/ui/undo/undoblk3.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -473,6 +473,12 @@ String __EXPORT ScUndoSelectionAttr::Get
+ 	return ScGlobal::GetRscString( pLineOuter ? STR_UNDO_SELATTRLINES : STR_UNDO_SELATTR );
+ }
+ 
++//----------------------------------------------------------------------------
++
++ScEditDataArray* ScUndoSelectionAttr::GetDataArray()
++{
++    return &aDataArray;
++}
+ 
+ //----------------------------------------------------------------------------
+ 
+@@ -495,6 +501,8 @@ void ScUndoSelectionAttr::DoChange( cons
+ 	USHORT nExtFlags = 0;
+ 	pDocShell->UpdatePaintExt( nExtFlags, aEffRange );
+ 
++    ChangeEditData(bUndo);
++
+ 	if (bUndo)	// nur bei Undo
+ 	{
+ 		ScRange aCopyRange = aRange;
+@@ -519,6 +527,24 @@ void ScUndoSelectionAttr::DoChange( cons
+ 	ShowTable( aRange );
+ }
+ 
++void ScUndoSelectionAttr::ChangeEditData( const bool bUndo )
++{
++    ScDocument* pDoc = pDocShell->GetDocument();
++    for (const ScEditDataArray::Item* pItem = aDataArray.First(); pItem; pItem = aDataArray.Next())
++    {
++        ScBaseCell* pCell;
++        pDoc->GetCell(pItem->GetCol(), pItem->GetRow(), pItem->GetTab(), pCell);
++        if (!pCell || pCell->GetCellType() != CELLTYPE_EDIT)
++            continue;
++
++        ScEditCell* pEditCell = static_cast<ScEditCell*>(pCell);
++        if (bUndo)
++            pEditCell->SetData(pItem->GetOldData(), NULL);
++        else
++            pEditCell->SetData(pItem->GetNewData(), NULL);
++    }
++}
++
+ 
+ //----------------------------------------------------------------------------
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/ui/undo/undocell.cxx sc/source/ui/undo/undocell.cxx
+--- sc.clean/source/ui/undo/undocell.cxx	2008-05-18 01:44:43.000000000 -0400
++++ sc/source/ui/undo/undocell.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -66,6 +66,8 @@
+ #include "chgtrack.hxx"
+ #include "sc.hrc"
+ 
++using ::boost::shared_ptr;
++
+ // STATIC DATA -----------------------------------------------------------
+ 
+ TYPEINIT1(ScUndoCursorAttr, ScSimpleUndo);
+@@ -94,6 +96,8 @@ ScUndoCursorAttr::ScUndoCursorAttr( ScDo
+ 	nCol( nNewCol ),
+ 	nRow( nNewRow ),
+ 	nTab( nNewTab ),
++    pOldEditData( static_cast<EditTextObject*>(NULL) ),
++    pNewEditData( static_cast<EditTextObject*>(NULL) ),
+ 	bIsAutomatic( bAutomatic )
+ {
+ 	ScDocumentPool* pPool = pDocShell->GetDocument()->GetPool();
+@@ -118,9 +122,21 @@ String __EXPORT ScUndoCursorAttr::GetCom
+ 	return ScGlobal::GetRscString( nId );
+ }
+ 
+-void ScUndoCursorAttr::DoChange( const ScPatternAttr* pWhichPattern ) const
++void ScUndoCursorAttr::SetEditData( EditTextObject* pOld, EditTextObject* pNew )
+ {
+-	pDocShell->GetDocument()->SetPattern( nCol, nRow, nTab, *pWhichPattern, TRUE );
++    pOldEditData.reset(pOld);
++    pNewEditData.reset(pNew);
++}
++
++void ScUndoCursorAttr::DoChange( const ScPatternAttr* pWhichPattern, const shared_ptr<EditTextObject>& pEditData ) const
++{
++    ScDocument* pDoc = pDocShell->GetDocument();
++	pDoc->SetPattern( nCol, nRow, nTab, *pWhichPattern, TRUE );
++
++    ScBaseCell* pCell;
++    pDoc->GetCell(nCol, nRow, nTab, pCell);
++    if (pCell && pCell->GetCellType() == CELLTYPE_EDIT && pEditData.get())
++        static_cast<ScEditCell*>(pCell)->SetData(pEditData.get(), NULL);
+ 
+ 	ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+ 	if (pViewShell)
+@@ -146,7 +162,7 @@ void ScUndoCursorAttr::DoChange( const S
+ void __EXPORT ScUndoCursorAttr::Undo()
+ {
+ 	BeginUndo();
+-	DoChange(pOldPattern);
++	DoChange(pOldPattern, pOldEditData);
+ 
+ 	if ( bIsAutomatic )
+ 	{
+@@ -164,7 +180,7 @@ void __EXPORT ScUndoCursorAttr::Undo()
+ void __EXPORT ScUndoCursorAttr::Redo()
+ {
+ 	BeginRedo();
+-	DoChange(pNewPattern);
++	DoChange(pNewPattern, pNewEditData);
+ 	EndRedo();
+ }
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj --exclude='*.orig' sc.clean/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
+--- sc.clean/source/ui/view/viewfunc.cxx	2008-05-18 01:44:43.000000000 -0400
++++ sc/source/ui/view/viewfunc.cxx	2008-05-18 01:44:58.000000000 -0400
+@@ -1294,6 +1294,8 @@ void ScViewFunc::ApplySelectionPattern( 
+ 		SCROW nEndRow = aMarkRange.aEnd.Row();
+ 		SCTAB nEndTab = aMarkRange.aEnd.Tab();
+ 
++        ScUndoSelectionAttr* pUndoAttr = NULL;
++        ScEditDataArray* pEditDataArray = NULL;
+ 		if (bRecord)
+ 		{
+ 			ScRange aCopyRange = aMarkRange;
+@@ -1310,15 +1312,14 @@ void ScViewFunc::ApplySelectionPattern( 
+ 
+ 			aFuncMark.MarkToMulti();
+ 
+-			pDocSh->GetUndoManager()->AddUndoAction(
+-				new ScUndoSelectionAttr(
+-							pDocSh, aFuncMark,
+-							nStartCol, nStartRow, nStartTab,
+-							nEndCol, nEndRow, nEndTab,
+-							pUndoDoc, bMulti, &rAttr ) );
++            pUndoAttr = new ScUndoSelectionAttr(
++                pDocSh, aFuncMark, nStartCol, nStartRow, nStartTab,
++                nEndCol, nEndRow, nEndTab, pUndoDoc, bMulti, &rAttr );
++			pDocSh->GetUndoManager()->AddUndoAction(pUndoAttr);
++            pEditDataArray = pUndoAttr->GetDataArray();
+ 		}
+ 
+-		pDoc->ApplySelectionPattern( rAttr, aFuncMark );
++		pDoc->ApplySelectionPattern( rAttr, aFuncMark, pEditDataArray );
+ 
+ 		pDocSh->PostPaint( nStartCol, nStartRow, nStartTab,
+ 						   nEndCol,   nEndRow,   nEndTab,
+@@ -1332,6 +1333,19 @@ void ScViewFunc::ApplySelectionPattern( 
+ 		SCCOL nCol = pViewData->GetCurX();
+ 		SCROW nRow = pViewData->GetCurY();
+ 		SCTAB nTab = pViewData->GetTabNo();
++
++        ScBaseCell* pCell;
++        pDoc->GetCell(nCol, nRow, nTab, pCell);
++        EditTextObject* pOldEditData = NULL;
++        EditTextObject* pNewEditData = NULL;
++        if (pCell && pCell->GetCellType() == CELLTYPE_EDIT)
++        {
++            ScEditCell* pEditCell = static_cast<ScEditCell*>(pCell);
++            pOldEditData = pEditCell->GetData()->Clone();
++            pEditCell->RemoveCharAttribs(rAttr);
++            pNewEditData = pEditCell->GetData()->Clone();
++        }
++
+ 		ScPatternAttr* pOldPat = new ScPatternAttr(*pDoc->GetPattern( nCol, nRow, nTab ));
+ 
+ 		if (!bCursorOnly)
+@@ -1341,11 +1355,10 @@ void ScViewFunc::ApplySelectionPattern( 
+ 
+ 		if (bRecord)
+ 		{
+-			pDocSh->GetUndoManager()->AddUndoAction(
+-						new ScUndoCursorAttr( pDocSh,
+-											  nCol, nRow, nTab,
+-											  pOldPat, pNewPat, &rAttr,
+-											  FALSE ) );	// FALSE = nicht automatisch
++            ScUndoCursorAttr* pUndo = new ScUndoCursorAttr( 
++                pDocSh, nCol, nRow, nTab, pOldPat, pNewPat, &rAttr, false );
++            pUndo->SetEditData(pOldEditData, pNewEditData);
++			pDocSh->GetUndoManager()->AddUndoAction(pUndo);
+ 		}
+ 		delete pOldPat;		// wird im Undo kopiert (Pool)
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix_unixODBC.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix_unixODBC.diff
@@ -0,0 +1,11 @@
+--- unixODBC/inc/sqltypes.h.orig	2008-05-25 15:07:18.000000000 +0200
++++ unixODBC/inc/sqltypes.h	2008-05-25 15:08:05.000000000 +0200
+@@ -31,7 +31,7 @@
+ #endif
+ 
+ #ifndef SIZEOF_LONG
+-# if defined(__alpha__) || defined(__x86_64__) || defined(__ia64__)
++# if defined(__alpha__) || defined(__x86_64__) || defined(__ia64__) || defined(__ppc64__)
+ # define SIZEOF_LONG        8
+ #else
+ # define SIZEOF_LONG        4
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/plus-minus-sw-navigator.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/plus-minus-sw-navigator.diff
@@ -0,0 +1,219 @@
+--- sw/source/ui/utlui/content.cxx	2006-03-27 18:18:48.000000000 +0800
++++ sw/source/ui/utlui/content.cxx	2006-05-31 20:28:06.000000000 +0800
+@@ -1255,19 +1255,64 @@
+ 			SwContentType* pCntType = (SwContentType*)pParent->GetUserData();
+ 
+ 			sal_uInt16 nCount = pCntType->GetMemberCount();
+-			for(sal_uInt16 i = 0; i < nCount; i++)
+-			{
+-				const SwContent* pCnt = pCntType->GetMember(i);
+-				if(pCnt)
+-				{
+-					String sEntry = pCnt->GetName();
+-					if(!sEntry.Len())
++            /**************************************************************
++                Add for outline plus/minus
++            ***************************************************************/
++            if(pCntType->GetType() == CONTENT_TYPE_OUTLINE)
++            {
++                SvLBoxEntry* pChild = 0;
++                for(sal_uInt16 i = 0; i < nCount; i++)
++                {
++                    const SwContent* pCnt = pCntType->GetMember(i);
++                    if(pCnt)
++                    {
++                        sal_uInt16 nLevel = ((SwOutlineContent*)pCnt)->GetOutlineLevel();
++                        String sEntry = pCnt->GetName();
++                        if(!sEntry.Len())
++                            sEntry = sSpace;
++                        if(!pChild || (nLevel == 0))
++                            pChild = InsertEntry(sEntry, pParent,
++                                        sal_False, LIST_APPEND,(void*)pCnt);
++                        else
++                        {
++                            //back search parent.
++                            if(((SwOutlineContent*)pCntType->GetMember(i-1))->GetOutlineLevel() < nLevel)
++                                pChild = InsertEntry(sEntry, pChild,
++                                        sal_False, LIST_APPEND, (void*)pCnt);
++                            else
++                            {
++                                pChild = Prev(pChild);
++                                while(pChild &&
++                                        lcl_IsContent(pChild) &&
++                                        !(((SwOutlineContent*)pChild->GetUserData())->GetOutlineLevel() < nLevel)
++                                     )
++                                {
++                                    pChild = Prev(pChild);
++                                }
++                                if(pChild)
++                                    pChild = InsertEntry(sEntry, pChild,
++                                                sal_False, LIST_APPEND, (void*)pCnt);
++                            }
++                        }
++                    }
++                }
++            }
++            else
++            {
++			    for(sal_uInt16 i = 0; i < nCount; i++)
++			    {
++				    const SwContent* pCnt = pCntType->GetMember(i);
++				    if(pCnt)
++				    {
++					    String sEntry = pCnt->GetName();
++					    if(!sEntry.Len())
+ 						sEntry = sSpace;
+-					InsertEntry(sEntry, pParent,
+-							sal_False, LIST_APPEND, (void*)pCnt);
+-				}
++					    InsertEntry(sEntry, pParent,
++							    sal_False, LIST_APPEND, (void*)pCnt);
++				    }
+ 
+-			}
++			    }
++            }
+ 		}
+ 	}
+ }
+@@ -1278,7 +1323,7 @@
+ 
+ sal_Bool  SwContentTree::Expand( SvLBoxEntry* pParent )
+ {
+-	if(!bIsRoot)
++	if(!bIsRoot || ((SwContentType*)pParent->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE)
+ 	{
+ 		if(lcl_IsContentType(pParent))
+ 		{
+@@ -1291,6 +1336,19 @@
+ 			}
+ 			else
+ 				nHiddenBlock |= nOr;
++            if((pCntType->GetType() == CONTENT_TYPE_OUTLINE))
++            {
++                sal_Bool bBool = SvTreeListBox::Expand(pParent);
++                SvLBoxEntry* pChild = Next(pParent);
++                while(pChild && lcl_IsContent(pChild) && pParent->HasChilds())
++                {
++                    if(pChild->HasChilds())
++                        SvTreeListBox::Expand(pChild);
++                    pChild = Next(pChild);
++                }
++                return bBool;
++            }
++
+ 		}
+ 	}
+ 	return SvTreeListBox::Expand(pParent);
+@@ -1303,10 +1361,12 @@
+ sal_Bool  SwContentTree::Collapse( SvLBoxEntry* pParent )
+ {
+ 	sal_Bool bRet;
+-	if(!bIsRoot)
++	if(!bIsRoot || ((SwContentType*)pParent->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE)
+ 	{
+ 		if(lcl_IsContentType(pParent))
+ 		{
++            if(bIsRoot)
++                return bRet = sal_False;
+ 			SwContentType* pCntType = (SwContentType*)pParent->GetUserData();
+ 			sal_uInt16 nAnd = 1 << pCntType->GetType();
+ 			nAnd = ~nAnd;
+@@ -1321,7 +1381,8 @@
+ 			bRet = SvTreeListBox::Collapse(pParent);
+ 	}
+ 	else
+-		bRet = sal_False;
++//		bRet = sal_False;
++		bRet = SvTreeListBox::Collapse(pParent);
+ 	return bRet;
+ }
+ 
+@@ -1338,9 +1399,9 @@
+ 	DBG_ASSERT(pEntry, "kein aktueller Eintrag!")
+ 	if(pEntry)
+ 	{
+-		if(lcl_IsContentType(pEntry))
++		if(lcl_IsContentType(pEntry) && !pEntry->HasChilds())
+ 			RequestingChilds(pEntry);
+-		else if(bIsActive || bIsConstant)
++		else if(!lcl_IsContentType(pEntry) && (bIsActive || bIsConstant))
+ 		{
+ 			if(bIsConstant)
+ 			{
+@@ -1384,9 +1445,14 @@
+             nOldScrollPos = pVScroll->GetThumbPos();
+ 
+         sEntryName = GetEntryText(pOldSelEntry);
++        SvLBoxEntry* pParantEntry = pOldSelEntry;
++        while( GetParent(pParantEntry))
++        {
++            pParantEntry = GetParent(pParantEntry);
++        }
+ 		if(GetParent(pOldSelEntry))
+ 		{
+-			nEntryRelPos = (sal_uInt16)(GetModel()->GetAbsPos(pOldSelEntry) - GetModel()->GetAbsPos(GetParent(pOldSelEntry)));
++			nEntryRelPos = (sal_uInt16)(GetModel()->GetAbsPos(pOldSelEntry) - GetModel()->GetAbsPos(pParantEntry));
+ 		}
+ 	}
+ 	Clear();
+@@ -1479,19 +1545,24 @@
+ 			SvLBoxEntry* pParent = InsertEntry(
+ 					(*ppRootContentT)->GetName(), rImage, rImage,
+ 						0, sal_False, LIST_APPEND, *ppRootContentT);
+-
+-			for(sal_uInt16 i = 0; i < (*ppRootContentT)->GetMemberCount(); i++ )
++            if(nRootType != CONTENT_TYPE_OUTLINE)
+ 			{
+-				const SwContent* pCnt = (*ppRootContentT)->GetMember(i);
+-				if(pCnt)
+-				{
+-					String sEntry = pCnt->GetName();
+-					if(!sEntry.Len())
+-						sEntry = sSpace;
+-					InsertEntry( sEntry, pParent,
+-								sal_False, LIST_APPEND, (void*)pCnt);
+-				}
+-			}
++                SvLBoxEntry* pEntry;
++			    for(sal_uInt16 i = 0; i < (*ppRootContentT)->GetMemberCount(); i++ )
++			    {
++				    const SwContent* pCnt = (*ppRootContentT)->GetMember(i);
++				    if(pCnt)
++				    {
++					    String sEntry = pCnt->GetName();
++					    if(!sEntry.Len())
++						    sEntry = sSpace;
++					    InsertEntry( sEntry, pParent,
++						    		sal_False, LIST_APPEND, (void*)pCnt);
++				    }
++			    }
++            }
++            else
++                RequestingChilds(pParent);
+ 			Expand(pParent);
+ 			if( nRootType == CONTENT_TYPE_OUTLINE && bIsActive )
+ 			{
+@@ -1864,9 +1935,9 @@
+ 					// or if the visibility of objects (frames, sections, tables) has changed
+ 					// i.e. in header/footer
+ 					pArrType->FillMemberList(&bLevelOrVisibiblityChanged);
+-					if(bLevelOrVisibiblityChanged)
+-						bInvalidate = sal_True;
+ 					sal_uInt16 nChildCount = (sal_uInt16)GetChildCount(pEntry);
++                    if((nType == CONTENT_TYPE_OUTLINE) && bLevelOrVisibiblityChanged)
++                        bRepaint = sal_True;
+ 					if(bLevelOrVisibiblityChanged)
+ 						bInvalidate = sal_True;
+ 
+@@ -2759,6 +2830,10 @@
+ 		return sal_False;
+ 	sal_Bool bEnable = sal_False;
+ 	SvLBoxEntry* pParentEntry = GetParent(pEntry);
++    while(pParentEntry && (!lcl_IsContentType(pParentEntry)))
++    {
++        pParentEntry = GetParent(pParentEntry);
++    }
+ 	if(!bIsLastReadOnly && (!IsVisible() ||
+ 		(bIsRoot && nRootType == CONTENT_TYPE_OUTLINE && pParentEntry ||
+ 			lcl_IsContent(pEntry) && ((SwContentType*)pParentEntry->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE)))
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-inplace-deselection-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-inplace-deselection-fix.diff
@@ -0,0 +1,51 @@
+--- sd/source/ui/func/fusel.cxx	2008-04-10 22:25:23.000000000 +0200
++++ sd/source/ui/func/fusel.cxx	2008-05-10 16:26:03.000000000 +0200
+@@ -414,26 +418,29 @@
+                         }
+                     }
+ 
+-                    if ( !bReadOnly &&
+-                        bMarked                                                   &&
+-                        (!rMEvt.IsShift() || mpView->IsMarkedHit(aMDPos, nHitLog)))
+-                    {
+-                        /**********************************************************
+-                        * Objekt verschieben
+-                        **********************************************************/
+-                        aDragTimer.Start();
+-
+-                        pHdl=mpView->PickHandle(aMDPos);
+-                        if ( ! rMEvt.IsRight())
+-                            mpView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+-                    }
+-                    else
++                    if( !bDeactivateOLE )
+                     {
+-                        /**********************************************************
+-                        * Objekt selektieren
+-                        **********************************************************/
+-                        if ( ! rMEvt.IsRight())
+-                            mpView->BegMarkObj(aMDPos);
++                        if ( !bReadOnly &&
++                             bMarked                                                   &&
++                             (!rMEvt.IsShift() || mpView->IsMarkedHit(aMDPos, nHitLog)))
++                        {
++                            /**********************************************************
++                             * Objekt verschieben
++                             **********************************************************/
++                            aDragTimer.Start();
++
++                            pHdl=mpView->PickHandle(aMDPos);
++                            if ( ! rMEvt.IsRight())
++                                mpView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
++                        }
++                        else
++                        {
++                            /**********************************************************
++                             * Objekt selektieren
++                             **********************************************************/
++                            if ( ! rMEvt.IsRight())
++                                mpView->BegMarkObj(aMDPos);
++                        }
+                     }
+                 }
+             }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-win32-agfa-monotype-fonts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-win32-agfa-monotype-fonts.diff
@@ -0,0 +1,168 @@
+--- config_office/configure.in.OLD	2005-11-21 02:16:33.437250000 +0200
++++ config_office/configure.in	2005-11-23 05:12:58.296875000 +0200
+@@ -75,6 +75,11 @@
+                           distributions where AFM files or TrueType Fonts
+                           are known to be available.
+ ],,)
++AC_ARG_WITH(agfa-monotype-fonts,
++[  --without-agfa-monotype-fonts Remove proprietary Agfa Monotype fonts
++                                (even if present) in the openoffice.org installation
++                                set.
++],,with_agfa_monotype_fonts="yes")
+ AC_ARG_ENABLE(epm,
+ [  --disable-epm           OO.o includes self-packaging code, that requires
+                           epm, however epm is useless for large scale
+@@ -4317,6 +4322,18 @@
+ fi
+ AC_SUBST(WITH_FONTS)
+ 
++AC_MSG_CHECKING([whether to include Agfa Monotype fonts])
++if test "$with_agfa_monotype_fonts" != "no" -a -e ../agfa_monotype_fonts/download/agfa-monotype-fonts.tar.gz; then
++  AC_MSG_RESULT([yes])
++  WITH_AGFA_MONOTYPE_FONTS=YES
++  SCPDEFS="$SCPDEFS -DWITH_AGFA_MONOTYPE_FONTS"
++  BUILD_TYPE="$BUILD_TYPE AGFA_MONOTYPE_FONTS"
++else
++  AC_MSG_RESULT([no])
++  WITH_AGFA_MONOTYPE_FONTS=NO
++fi
++AC_SUBST(WITH_AGFA_MONOTYPE_FONTS)
++
+ dnl ===================================================================
+ dnl Test whether to include ppds
+ dnl ===================================================================
+--- agfa_monotype_fonts/makefile.mk.OLD	1970-01-01 02:00:00.000000000 +0200
++++ agfa_monotype_fonts/makefile.mk	2005-11-23 05:07:41.015625000 +0200
+@@ -0,0 +1,78 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision: 12161 $
++#
++#   last change: $Author: kyoshida $ $Date: 2008-04-14 16:29:07 -0500 (Mon, 14 Apr 2008) $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=.
++
++PRJNAME=agfa_monotype_fonts
++TARGET=agfa_monotype_fonts
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :	settings.mk
++
++# --- Files --------------------------------------------------------
++
++TARFILE_NAME=agfa-monotype-fonts
++TARFILE_ROOTDIR=agfa-monotype-fonts
++
++PATCH_FILE_NAME=
++
++
++CONFIGURE_DIR=
++CONFIGURE_ACTION=
++
++BUILD_DIR=
++BUILD_ACTION=
++BUILD_FLAGS=
++
++# --- Targets ------------------------------------------------------
++
++all: \
++	$(MISC)$/remove_build.flag \
++	ALLTAR
++
++.INCLUDE : set_ext.mk
++.INCLUDE : target.mk
++
++.IF "$(WITH_AGFA_MONOTYPE_FONTS)"!="NO"
++.INCLUDE : tg_ext.mk
++.ENDIF
++
++# Since you never know what will be in a patch (for example, it may already
++# patch at configure level), we remove the entire package directory if a patch
++# is newer.
++$(MISC)$/remove_build.flag : $(PATCH_FILE_NAME)
++	$(REMOVE_PACKAGE_COMMAND)
++	+$(TOUCH) $(MISC)$/remove_build.flag
+--- agfa_monotype_fonts/prj/d.lst.OLD	1970-01-01 02:00:00.000000000 +0200
++++ agfa_monotype_fonts/prj/d.lst	2005-11-23 04:52:41.531250000 +0200
+@@ -0,0 +1,2 @@
++mkdir: %_DEST%\pck%_EXT%
++..\%__SRC%\misc\build\agfa-monotype-fonts\*.ttf %_DEST%\pck%_EXT%\*.ttf
+--- agfa_monotype_fonts/prj/build.lst.OLD	1970-01-01 02:00:00.000000000 +0200
++++ agfa_monotype_fonts/prj/build.lst	2005-11-22 12:05:42.843750000 +0200
+@@ -0,0 +1,3 @@
++bs	agfa_monotype_fonts : solenv NULL
++bs	agfa_monotype_fonts		usr1	-	all	amt_mkout NULL
++bs	agfa_monotype_fonts		nmake	-	all	amt_fonts NULL
+--- scp2.clean/source/ooo/file_font_ooo.scp	2008-04-14 17:22:10.000000000 -0400
++++ scp2/source/ooo/file_font_ooo.scp	2008-04-14 17:23:29.000000000 -0400
+@@ -206,3 +206,31 @@ STD_FONT_FILE( gid_File_Fnt_LiberationSe
+ STD_FONT_FILE( gid_File_Fnt_LiberationSerif_BoldItalic, LiberationSerif-BoldItalic.ttf, Liberation Serif Bold Italic) 
+ #endif
+ #endif
++
++#ifdef WNT
++#ifdef WITH_AGFA_MONOTYPE_FONTS
++STD_FONTWIN_FILE( gid_File_Fnt_albw, albw.ttf, AlbanyAMT)
++STD_FONTWIN_FILE( gid_File_Fnt_albwb, albwb.ttf, AlbanyAMT Bold)
++STD_FONTWIN_FILE( gid_File_Fnt_albwbi, albwbi.ttf, AlbanyAMT Bold Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_albwi, albwi.ttf, AlbanyAMT Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_andybol, andybol_.ttf, AndyMT Bold)
++STD_FONTWIN_FILE( gid_File_Fnt_andyreg, andyreg_.ttf, AndyMT)
++STD_FONTWIN_FILE( gid_File_Fnt_ans, ans_____.ttf, Andale Sans)
++STD_FONTWIN_FILE( gid_File_Fnt_ansb, ansb____.ttf, Andale Sans Bold)
++STD_FONTWIN_FILE( gid_File_Fnt_ansbi, ansbi___.ttf, Andale Sans Bold Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_ansi, ansi____.ttf, Andale Sans Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_bl, bl______.ttf, BellMT)
++STD_FONTWIN_FILE( gid_File_Fnt_blb, blb_____.ttf, BellMT Bold)
++STD_FONTWIN_FILE( gid_File_Fnt_blbi, blbi____.ttf, BellMT Bold Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_bli, bli_____.ttf, BellMT Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_cumbwb, cumbwb__.ttf, CumberlandAMT Bold)
++STD_FONTWIN_FILE( gid_File_Fnt_cumbwbi, cumbwbi_.ttf, CumberlandAMT Bold Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_cumbwi, cumbwi__.ttf, CumberlandAMT Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_cumbwr, cumbwr__.ttf, CumberlandAMT)
++STD_FONTWIN_FILE( gid_File_Fnt_mtsorts, mtsorts_.ttf, Monotype Sorts)
++STD_FONTWIN_FILE( gid_File_Fnt_thowb, thowb___.ttf, ThorndaleAMT Bold)
++STD_FONTWIN_FILE( gid_File_Fnt_thowbi, thowbi__.ttf, ThorndaleAMT Bold Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_thowi, thowi___.ttf, ThorndaleAMT Italic)
++STD_FONTWIN_FILE( gid_File_Fnt_thowr, thowr___.ttf, ThorndaleAMT)
++#endif
++#endif
+--- postprocess/prj/build.lst	2005-11-23 05:56:34.703125000 +0200
++++ postprocess/prj/build.lst	2005-11-23 05:56:48.812500000 +0200
+@@ -1,4 +1,4 @@
+-po	postprocess	::	accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io JAVAINSTALLER2:javainstaller2 lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd ODK:sdk_oo setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools JFREEREPORT:jfreereport REPORTDESIGN:reportdesign SDEXT:sdext NULL
++po	postprocess	::	accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io JAVAINSTALLER2:javainstaller2 lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd ODK:sdk_oo setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts AGFA_MONOTYPE_FONTS:agfa_monotype_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools JFREEREPORT:jfreereport REPORTDESIGN:reportdesign SDEXT:sdext NULL
+ po	postprocess			    	usr1	-	all	po_mkout NULL
+ po	postprocess\checkxml		nmake	-	all	po_checkxml NULL
+ po	postprocess\checkdeliver	nmake	-	all	po_checkdlv NULL
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-slideshow.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-slideshow.diff
@@ -0,0 +1,4 @@
+--- slideshow/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ slideshow/prj/tests.lst	2007-09-07 13:06:23.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: pe   slideshow\test                                     nmake - all pe_test NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcc401-stlport45-include.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcc401-stlport45-include.diff
@@ -0,0 +1,19 @@
+--- stlport/STLport-4.5.patch.gcc401pch	2005-06-20 17:41:05.000000000 +0200
++++ stlport/STLport-4.5.patch	2005-06-22 21:11:48.581445640 +0200
+@@ -481,3 +481,16 @@
+  }
+ 
+ 
++--- misc/build/STLport-4.5/stlport/config/stl_gcc.h.gcc401	2005-06-22 21:05:26.985457048 +0200
+++++ misc/build/STLport-4.5/stlport/config/stl_gcc.h	2005-06-22 21:09:27.472897400 +0200
++@@ -373,3 +373,10 @@
++ #    undef _STLP_HAS_NATIVE_FLOAT_ABS
++ #    define _STLP_VENDOR_GLOBAL_CSTD       1
++ #endif
+++
+++// Setting _STLP_NATIVE_INCLUDE_PATH (brute force method to avoid a problem
+++// with gcc 4.0.1 (macros "i586-<distro>-linux" were expanded to "i586-<distro>-1 ")
+++#undef _STLP_NATIVE_INCLUDE_PATH
+++#undef _STLP_NATIVE_OLD_STREAMS_INCLUDE_PATH
+++#define _STLP_NATIVE_INCLUDE_PATH /usr/include/c++/__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__
+++#define _STLP_NATIVE_OLD_STREAMS_INCLUDE_PATH /usr/include/c++/__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__/backward
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-store-lck.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-store-lck.diff
@@ -0,0 +1,94 @@
+diff -u -r ../HEAD/build/src680-m211/store/source/filelckb.cxx store/source/filelckb.cxx
+--- store/source/filelckb.cxx	2007-06-11 11:57:42.000000000 +0100
++++ store/source/filelckb.cxx	2007-06-15 11:43:34.000000000 +0100
+@@ -332,6 +332,8 @@
+ 	 */
+ 	bool isValid (void) const { return (m_hFile != 0); }
+ 
++    bool isWriteable() { return m_bWriteable; }
++
+ 	/** Operation.
+ 	 */
+ 	storeError close (void);
+@@ -630,9 +632,16 @@
+ 	rnDone = 0;
+ 
+ 	// Acquire exclusive access.
+-	osl::MutexGuard aGuard (m_aMutex);
+ 	if (m_pImpl->isValid())
+-		return m_pImpl->readAt (nOffset, pBuffer, nBytes, rnDone);
++    {
++        bool bLock = m_pImpl->isWriteable();
++        if (bLock)
++            m_aMutex.acquire();
++        storeError nErr = m_pImpl->readAt (nOffset, pBuffer, nBytes, rnDone);
++        if (bLock)
++            m_aMutex.release();
++        return nErr;
++    }
+ 	else
+ 		return store_E_InvalidHandle;
+ }
+Only in store/source: filelckb.cxx~
+diff -u -r store/source/storbase.cxx store/source/storbase.cxx
+--- store/source/storbase.cxx	2007-06-11 11:57:42.000000000 +0100
++++ store/source/storbase.cxx	2007-06-15 12:17:13.000000000 +0100
+@@ -1754,13 +1754,14 @@
+  */
+ storeError OStorePageBIOS::load (OStorePageObject& rPage)
+ {
+-	// Acquire exclusive access.
+-	osl::MutexGuard aGuard (m_aMutex);
+-
+ 	// Check precond.
+ 	if (!m_xLockBytes.is())
+ 		return store_E_InvalidAccess;
+ 
++    bool bLock = m_bWriteable;
++    if (bLock) // Acquire exclusive access.
++        m_aMutex.acquire();
++
+ 	// Save PageDescriptor.
+ 	OStorePageData       &rData = rPage.getData();
+ 	OStorePageDescriptor  aDescr (rData.PageHeader ().m_aDescr);
+@@ -1771,7 +1772,7 @@
+ 	{
+ 		// Restore PageDescriptor.
+ 		rData.PageHeader ().m_aDescr = aDescr;
+-		return eErrCode;
++        goto err;
+ 	}
+ 
+ 	// Verify page.
+@@ -1780,7 +1781,7 @@
+ 	{
+ 		// Restore PageDescriptor.
+ 		rData.PageHeader ().m_aDescr = aDescr;
+-		return eErrCode;
++        goto err;
+ 	}
+ 
+ #ifdef OSL_BIGENDIAN
+@@ -1791,13 +1792,20 @@
+ 	// Verify PageDescriptor.
+ 	if (!((aDescr == rData.PageHeader ().m_aDescr) ||
+ 		  (aDescr <= rData.PageHeader ().m_aDescr)    ))
+-		return store_E_InvalidAccess;
++    {
++		eErrCode = store_E_InvalidAccess;
++        goto err;
++    }
+ 
+ 	// Mark page as clean.
+ 	rPage.clean();
+ 
+ 	// Done.
+-	return store_E_None;
++    eErrCode = store_E_None;
++ err:
++    if (bLock) // Release exclusive access.
++        m_aMutex.release();
++    return eErrCode;
+ }
+ 
+ /*
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-no-stack-protector.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-no-stack-protector.diff
@@ -0,0 +1,12 @@
+--- solenv/inc/settings.mk~	2006-09-04 11:34:27.400718000 +0200
++++ solenv/inc/settings.mk	2006-09-04 11:44:10.780718000 +0200
+@@ -1310,6 +1310,9 @@
+ INCPRE+=-I$(UNOUCROUT)
+ UNOUCRRDB*=$(SOLARBINDIR)$/types.rdb
+ 
++CFLAGS+= -fno-stack-protector
++CXXFLAGS+= -fno-stack-protector
++
+ # --- Compiler -----------------------------------------------------
+ .INCLUDE : rules.mk
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo64508.vcl.honourfontconfighinting.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo64508.vcl.honourfontconfighinting.diff
@@ -0,0 +1,1015 @@
+diff -ru vcl/inc/impfont.hxx vcl/inc/impfont.hxx
+--- vcl/inc/vcl/impfont.hxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/inc/vcl/impfont.hxx	2006-05-05 09:39:11.000000000 +0100
+@@ -155,6 +155,42 @@
+     bool    operator==( const ImplFontMetric& ) const;
+ };
+ 
++// ------------------
++// - ImplFontHints -
++// ------------------
++
++class ImplFontHints
++{
++public:
++    FontEmbeddedBitmap meEmbeddedBitmap; // whether the embedded bitmaps should be used
++    FontAntiAlias      meAntiAlias;      // whether the font should be antialiased
++    FontAutoHint       meAutoHint;       // whether the font should be autohinted
++    FontHinting        meHinting;        // whether the font should be hinted
++    FontHintStyle      meHintStyle;      // type of font hinting to be used
++public:
++    ImplFontHints() :
++        meEmbeddedBitmap(EMBEDDEDBITMAP_DONTKNOW), 
++        meAntiAlias(ANTIALIAS_DONTKNOW), 
++        meAutoHint(AUTOHINT_DONTKNOW), 
++        meHinting(HINTING_DONTKNOW), 
++        meHintStyle(HINT_FULL)
++    {}
++    ImplFontHints(FontEmbeddedBitmap eEmbeddedBitmap, FontAntiAlias eAntiAlias, 
++        FontAutoHint eAutoHint, FontHinting eHinting, FontHintStyle eHintStyle) :
++        meEmbeddedBitmap(eEmbeddedBitmap), 
++        meAntiAlias(eAntiAlias), 
++        meAutoHint(eAutoHint), 
++        meHinting(eHinting), 
++        meHintStyle(eHintStyle)
++    {}
++    FontAutoHint GetUseAutoHint() const { return meAutoHint; }
++    FontHintStyle GetHintStyle() const { return meHintStyle; }
++    bool DontUseEmbeddedBitmaps() const { return meEmbeddedBitmap == EMBEDDEDBITMAP_FALSE; }
++    bool DontUseAntiAlias() const { return meAntiAlias == ANTIALIAS_FALSE; }
++    bool DontUseHinting() const { return (meHinting == HINTING_FALSE) || (GetHintStyle() == HINT_NONE); }
++};
++
++
+ // -------------------
+ // - ImplFontCharMap -
+ // -------------------
+diff -ru vcl/inc/outdev.hxx vcl/inc/outdev.hxx
+--- vcl/inc/vcl/outdev.hxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/inc/vcl/outdev.hxx	2006-05-05 10:27:05.000000000 +0100
+@@ -106,6 +106,8 @@
+ class FontCharMap;
+ class SalLayout;
+ class ImplLayoutArgs;
++class ImplFontHints;
++class ImplFontAttributes;
+ class VirtualDevice;
+ 
+ namespace basegfx {
+@@ -566,6 +568,7 @@
+ 
+     SAL_DLLPRIVATE static FontEmphasisMark ImplGetEmphasisMarkStyle( const Font& rFont );
+     SAL_DLLPRIVATE static BOOL ImplIsUnderlineAbove( const Font& );
++    SAL_DLLPRIVATE void ImplGetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+ //#endif
+ 
+ protected:
+diff -ru vcl/inc/outfont.hxx vcl/inc/outfont.hxx
+--- vcl/inc/vcl/outfont.hxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/inc/vcl/outfont.hxx	2006-05-04 14:37:46.000000000 +0100
+@@ -118,8 +118,6 @@
+     bool               IsDeviceFont() const      { return mbDevice; }
+     bool               IsEmbeddable() const      { return mbEmbeddable; }
+     bool               IsSubsettable() const     { return mbSubsettable; }
+-    FontEmbeddedBitmap UseEmbeddedBitmap() const { return meEmbeddedBitmap; }
+-    FontAntiAlias      UseAntiAlias() const      { return meAntiAlias; }
+ 
+ public: // TODO: hide members behind accessor methods
+     String             maMapNames;       // List of family name aliass separated with ';'
+@@ -128,8 +126,6 @@
+     bool               mbDevice;         // true: built in font
+     bool               mbSubsettable;    // true: a subset of the font can be created
+     bool               mbEmbeddable;     // true: the font can be embedded
+-    FontEmbeddedBitmap meEmbeddedBitmap; // whether the embedded bitmaps should be used
+-    FontAntiAlias      meAntiAlias;      // whether the font should be antialiased
+ };
+ 
+ // ----------------
+diff -ru vcl/inc/salgdi.hxx vcl/inc/salgdi.hxx
+--- vcl/inc/vcl/salgdi.hxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/inc/vcl/salgdi.hxx	2006-05-05 10:40:08.000000000 +0100
+@@ -215,6 +215,8 @@
+     void                   ReleaseFonts() { SetFont( NULL, 0 ); }
+     // get the current font's metrics
+     virtual void			GetFontMetric( ImplFontMetricData* ) = 0;
++    virtual void 			GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const = 0;
++
+     // get kernign pairs of the current font
+     // return only PairCount if (pKernPairs == NULL)
+     virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs ) = 0;
+diff -ru vcl/inc/vclenum.hxx vcl/inc/vclenum.hxx
+--- vcl/inc/vcl/vclenum.hxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/inc/vcl/vclenum.hxx	2006-05-04 15:53:15.000000000 +0100
+@@ -289,6 +289,27 @@
+ 
+ #endif
+ 
++#ifndef ENUM_FONTAUTOHINT_DECLARED
++#define ENUM_FONTAUTOHINT_DECLARED
++
++enum FontAutoHint { AUTOHINT_DONTKNOW, AUTOHINT_FALSE, AUTOHINT_TRUE };
++
++#endif
++
++#ifndef ENUM_FONTHINTING_DECLARED
++#define ENUM_FONTHINTING_DECLARED
++
++enum FontHinting { HINTING_DONTKNOW, HINTING_FALSE, HINTING_TRUE };
++
++#endif
++
++#ifndef ENUM_FONTHINTSTYLE_DECLARED
++#define ENUM_FONTHINTSTYLE_DECLARED
++
++enum FontHintStyle { HINT_NONE, HINT_SLIGHT, HINT_MEDIUM, HINT_FULL };
++
++#endif
++
+ // ------------------------------------------------------------
+ 
+ #ifndef ENUM_KEYFUNCTYPE_DECLARED
+diff -ru vcl/source/gdi/outdev3.cxx vcl/source/gdi/outdev3.cxx
+--- vcl/source/gdi/outdev3.cxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/source/gdi/outdev3.cxx	2006-05-05 10:27:34.000000000 +0100
+@@ -7250,6 +7250,14 @@
+ 
+ // -----------------------------------------------------------------------
+ 
++void OutputDevice::ImplGetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints &rHints) const
++{
++    if ( mpGraphics )
++        mpGraphics->GetFontHints( rFontAttributes, nSize, rHints );
++}
++
++// -----------------------------------------------------------------------
++
+ FontMetric OutputDevice::GetFontMetric() const
+ {
+     DBG_TRACE( "OutputDevice::GetFontMetric()" );
+diff -ru vcl/source/glyphs/gcach_ftyp.hxx vcl/source/glyphs/gcach_ftyp.hxx
+--- vcl/source/glyphs/gcach_ftyp.hxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/source/glyphs/gcach_ftyp.hxx	2006-05-04 14:53:16.000000000 +0100
+@@ -93,10 +93,6 @@
+     int                   GetFaceNum() const        { return mnFaceNum; }
+     int                   GetSynthetic() const      { return mnSynthetic; }
+     sal_IntPtr            GetFontId() const         { return mnFontId; }
+-    bool                  DontUseAntiAlias() const  
+-        { return maDevFontAttributes.UseAntiAlias() == ANTIALIAS_FALSE; }
+-    bool                  DontUseEmbeddedBitmaps() const 
+-        { return maDevFontAttributes.UseEmbeddedBitmap() == EMBEDDEDBITMAP_FALSE; }
+     bool                  IsSymbolFont() const      { return maDevFontAttributes.IsSymbolFont(); }
+     const ImplFontAttributes& GetFontAttributes() const { return maDevFontAttributes; }
+ 
+@@ -212,6 +208,7 @@
+     int                         mnWidth;
+     int                         mnPrioEmbedded;
+     int                         mnPrioAntiAlias;
++    int                         mnPrioAutoHint;
+     FtFontInfo*                 mpFontInfo;
+     FT_Int                      mnLoadFlags;
+     double                      mfStretch;
+diff -ru vcl/unx/inc/pspgraphics.h vcl/unx/inc/pspgraphics.h
+--- vcl/unx/inc/pspgraphics.h	2006-05-04 08:55:40.000000000 +0100
++++ vcl/unx/inc/pspgraphics.h	2006-05-05 10:41:23.000000000 +0100
+@@ -121,6 +121,7 @@
+     virtual void			SetTextColor( SalColor nSalColor );
+     virtual USHORT          SetFont( ImplFontSelectData*, int nFallbackLevel );
+     virtual void			GetFontMetric( ImplFontMetricData* );
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+     virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+     virtual ImplFontCharMap* GetImplFontCharMap() const;
+     virtual void			GetDevFontList( ImplDevFontList* );
+diff -ru vcl/unx/inc/salgdi.h vcl/unx/inc/salgdi.h
+--- vcl/unx/inc/salgdi.h	2006-05-04 08:55:40.000000000 +0100
++++ vcl/unx/inc/salgdi.h	2006-05-05 10:41:12.000000000 +0100
+@@ -238,6 +238,7 @@
+     virtual void			SetTextColor( SalColor nSalColor );
+     virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
+     virtual void			GetFontMetric( ImplFontMetricData* );
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+     virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+     virtual ImplFontCharMap* GetImplFontCharMap() const;
+     virtual void			GetDevFontList( ImplDevFontList* );
+diff -ru vcl/unx/source/gdi/pspgraphics.cxx vcl/unx/source/gdi/pspgraphics.cxx
+--- vcl/unx/source/gdi/pspgraphics.cxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/unx/source/gdi/pspgraphics.cxx	2006-05-05 10:28:18.000000000 +0100
+@@ -862,6 +862,10 @@
+     }
+ }
+ 
++void PspGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const
++{
++}
++
+ void PspGraphics::GetFontMetric( ImplFontMetricData *pMetric )
+ {
+     const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
+@@ -1230,32 +1234,6 @@
+     aDFA.mePitch        = ToFontPitch (rInfo.m_ePitch);
+     aDFA.mbSymbolFlag   = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
+ 
+-    switch (rInfo.m_eEmbeddedbitmap)
+-    {
+-        default:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+-            break;
+-        case psp::fcstatus::istrue:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
+-            break;
+-        case psp::fcstatus::isfalse:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
+-            break;
+-    }
+-
+-    switch (rInfo.m_eAntialias)
+-    {
+-        default:
+-            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+-            break;
+-        case psp::fcstatus::istrue:
+-            aDFA.meAntiAlias = ANTIALIAS_TRUE;
+-            break;
+-        case psp::fcstatus::isfalse:
+-            aDFA.meAntiAlias = ANTIALIAS_FALSE;
+-            break;
+-    }
+-
+     // special case for the ghostscript fonts
+     if( aDFA.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
+         aDFA.maName = aDFA.maName.Copy( 4 );
+diff -ru vcl/unx/source/gdi/salgdi3.cxx vcl/unx/source/gdi/salgdi3.cxx
+--- vcl/unx/source/gdi/salgdi3.cxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/unx/source/gdi/salgdi3.cxx	2006-05-05 10:30:18.000000000 +0100
+@@ -1367,6 +1367,174 @@
+ 
+ // ----------------------------------------------------------------------------
+ 
++void X11SalGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const
++{
++    psp::FastPrintFontInfo aInfo;
++    // set family name
++    aInfo.m_aFamilyName = rFontAttributes.GetFamilyName();
++    // set italic
++    switch( rFontAttributes.GetSlant() )
++    {
++        case ITALIC_NONE:
++            aInfo.m_eItalic = psp::italic::Upright;
++            break;
++        case ITALIC_NORMAL:
++            aInfo.m_eItalic = psp::italic::Italic;
++            break;
++        case ITALIC_OBLIQUE:
++            aInfo.m_eItalic = psp::italic::Oblique;
++            break;
++        default:
++            aInfo.m_eItalic = psp::italic::Unknown;
++            break;
++
++    }
++    // set weight
++    switch( rFontAttributes.GetWeight() )
++    {
++        case WEIGHT_THIN:
++            aInfo.m_eWeight = psp::weight::Thin;
++            break;
++        case WEIGHT_ULTRALIGHT:
++            aInfo.m_eWeight = psp::weight::UltraLight;
++            break;
++        case WEIGHT_LIGHT:
++            aInfo.m_eWeight = psp::weight::Light;
++            break;
++        case WEIGHT_SEMILIGHT:
++            aInfo.m_eWeight = psp::weight::SemiLight;
++            break;
++        case WEIGHT_NORMAL:
++            aInfo.m_eWeight = psp::weight::Normal;
++            break;
++        case WEIGHT_MEDIUM:
++            aInfo.m_eWeight = psp::weight::Medium;
++            break;
++        case WEIGHT_SEMIBOLD:
++            aInfo.m_eWeight = psp::weight::SemiBold;
++            break;
++        case WEIGHT_BOLD:
++            aInfo.m_eWeight = psp::weight::Bold;
++            break;
++        case WEIGHT_ULTRABOLD:
++            aInfo.m_eWeight = psp::weight::UltraBold;
++            break;
++        case WEIGHT_BLACK:
++            aInfo.m_eWeight = psp::weight::Black;
++            break;
++        default:
++            aInfo.m_eWeight = psp::weight::Unknown;
++            break;
++    }
++    // set width
++    switch( rFontAttributes.GetWidthType() )
++    {
++        case WIDTH_ULTRA_CONDENSED:
++            aInfo.m_eWidth = psp::width::UltraCondensed;
++            break;
++        case WIDTH_EXTRA_CONDENSED:
++            aInfo.m_eWidth = psp::width::ExtraCondensed;
++            break;
++        case WIDTH_CONDENSED:
++            aInfo.m_eWidth = psp::width::Condensed;
++            break;
++        case WIDTH_SEMI_CONDENSED:
++            aInfo.m_eWidth = psp::width::SemiCondensed;
++            break;
++        case WIDTH_NORMAL:
++            aInfo.m_eWidth = psp::width::Normal;
++            break;
++        case WIDTH_SEMI_EXPANDED:
++            aInfo.m_eWidth = psp::width::SemiExpanded;
++            break;
++        case WIDTH_EXPANDED:
++            aInfo.m_eWidth = psp::width::Expanded;
++            break;
++        case WIDTH_EXTRA_EXPANDED:
++            aInfo.m_eWidth = psp::width::ExtraExpanded;
++            break;
++        case WIDTH_ULTRA_EXPANDED:
++            aInfo.m_eWidth = psp::width::UltraExpanded;
++            break;
++        default:
++            aInfo.m_eWidth = psp::width::Unknown;
++            break;
++    }
++
++    psp::FontConfigHints aHints(psp::PrintFontManager::get().getFontConfigHints(aInfo, nSize));
++
++    switch (aHints.m_eEmbeddedbitmap)
++    {
++        default: 
++            rFontHints.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
++            break;
++        case psp::fcstatus::istrue: 
++            rFontHints.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
++            break;
++        case psp::fcstatus::isfalse: 
++            rFontHints.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
++            break;
++    }
++
++    switch (aHints.m_eAntialias)
++    {
++        default: 
++            rFontHints.meAntiAlias = ANTIALIAS_DONTKNOW;
++            break;
++        case psp::fcstatus::istrue: 
++            rFontHints.meAntiAlias = ANTIALIAS_TRUE;
++            break;
++        case psp::fcstatus::isfalse: 
++            rFontHints.meAntiAlias = ANTIALIAS_FALSE;
++            break;
++    }
++
++    switch (aHints.m_eAutoHint)
++    {
++        default: 
++            rFontHints.meAutoHint = AUTOHINT_DONTKNOW;
++            break;
++        case psp::fcstatus::istrue: 
++            rFontHints.meAutoHint = AUTOHINT_TRUE;
++            break;
++        case psp::fcstatus::isfalse: 
++            rFontHints.meAutoHint = AUTOHINT_FALSE;
++            break;
++    }
++
++    switch (aHints.m_eHinting)
++    {
++        default: 
++            rFontHints.meHinting = HINTING_DONTKNOW;
++            break;
++        case psp::fcstatus::istrue: 
++            rFontHints.meHinting = HINTING_TRUE;
++            break;
++        case psp::fcstatus::isfalse: 
++            rFontHints.meHinting = HINTING_FALSE;
++            break;
++    }
++
++    switch (aHints.m_eHintStyle)
++    {
++        case psp::fchint::Nohint: 
++            rFontHints.meHintStyle = HINT_NONE;
++            break;
++        case psp::fchint::Slight: 
++            rFontHints.meHintStyle = HINT_SLIGHT;
++            break;
++        case psp::fchint::Medium: 
++            rFontHints.meHintStyle = HINT_MEDIUM;
++            break;
++        default: 
++        case psp::fchint::Full: 
++            rFontHints.meHintStyle = HINT_FULL;
++            break;
++    }
++}
++
++// ----------------------------------------------------------------------------
++
+ void
+ X11SalGraphics::GetFontMetric( ImplFontMetricData *pMetric )
+ {
+diff -ru vcl/unx/source/gdi/xlfd_extd.cxx vcl/unx/source/gdi/xlfd_extd.cxx
+--- vcl/unx/source/gdi/xlfd_extd.cxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/unx/source/gdi/xlfd_extd.cxx	2006-05-04 14:51:52.000000000 +0100
+@@ -114,9 +114,6 @@
+     mbSubsettable  = false;
+     mbEmbeddable   = false;
+ 
+-    meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+-    meAntiAlias = ANTIALIAS_DONTKNOW;
+-
+     mnQuality      = -1;
+ }
+ 
+diff -ru vcl/win/inc/salgdi.h vcl/win/inc/salgdi.h
+--- vcl/win/inc/salgdi.h	2006-05-04 08:55:40.000000000 +0100
++++ vcl/win/inc/salgdi.h	2006-05-05 10:40:44.000000000 +0100
+@@ -270,6 +270,7 @@
+     virtual USHORT         SetFont( ImplFontSelectData*, int nFallbackLevel );
+     // get the current font's etrics
+     virtual void			GetFontMetric( ImplFontMetricData* );
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nHints, ImplFontHints& rFontHints);
+     // get kernign pairs of the current font
+     // return only PairCount if (pKernPairs == NULL)
+     virtual ULONG			GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
+diff -ru vcl/win/source/gdi/salgdi3.cxx vcl/win/source/gdi/salgdi3.cxx
+--- vcl/win/source/gdi/salgdi3.cxx	2006-05-04 08:55:40.000000000 +0100
++++ vcl/win/source/gdi/salgdi3.cxx	2006-05-05 10:40:47.000000000 +0100
+@@ -1250,6 +1250,12 @@
+ 
+ // -----------------------------------------------------------------------
+ 
++void WinSalGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints)
++{
++}
++
++// -----------------------------------------------------------------------
++
+ void WinSalGraphics::GetFontMetric( ImplFontMetricData* pMetric )
+ {
+     if ( aSalShlData.mbWNT )
+diff -ru psprint/inc/psprint/fontmanager.hxx psprint/inc/psprint/fontmanager.hxx
+--- psprint/inc/psprint/fontmanager.hxx	2006-05-08 16:00:09.000000000 -0400
++++ psprint/inc/psprint/fontmanager.hxx	2006-05-08 16:01:09.000000000 -0400
+@@ -155,6 +155,33 @@
+ };
+ }
+ 
++namespace fchint
++{
++enum type {
++    Nohint = 0,
++    Slight = 1,
++    Medium = 2,
++    Full = 3
++};
++}
++
++struct FontConfigHints
++{
++    fcstatus::type m_eEmbeddedbitmap;
++    fcstatus::type m_eAntialias;
++    fcstatus::type m_eAutoHint;
++    fcstatus::type m_eHinting;
++    fchint::type m_eHintStyle;
++
++    FontConfigHints() :
++        m_eEmbeddedbitmap( fcstatus::isunset ),
++        m_eAntialias( fcstatus::isunset ),
++        m_eAutoHint( fcstatus::isunset ),
++        m_eHinting( fcstatus::isunset ),
++        m_eHintStyle( fchint::Full )
++        {}
++};
++
+ /*
+  *  the difference between FastPrintFontInfo and PrintFontInfo
+  *  is that the information in FastPrintFontInfo can usually
+@@ -180,8 +207,6 @@
+     weight::type            			m_eWeight;
+     pitch::type             			m_ePitch;
+     rtl_TextEncoding        			m_aEncoding;
+-    fcstatus::type                      m_eEmbeddedbitmap;
+-    fcstatus::type                      m_eAntialias;
+ 
+     FastPrintFontInfo() :
+             m_nID( 0 ),
+@@ -191,9 +216,7 @@
+             m_eWidth( width::Unknown ),
+             m_eWeight( weight::Unknown ),
+             m_ePitch( pitch::Unknown ),
+-            m_aEncoding( RTL_TEXTENCODING_DONTKNOW ),
+-            m_eEmbeddedbitmap( fcstatus::isunset ),
+-            m_eAntialias( fcstatus::isunset )
++            m_aEncoding( RTL_TEXTENCODING_DONTKNOW )
+     {}
+ };
+ 
+@@ -308,9 +331,6 @@
+         bool										m_bHaveVerticalSubstitutedGlyphs;
+         bool                                        m_bUserOverride;
+ 
+-        fcstatus::type                              m_eEmbeddedbitmap;
+-        fcstatus::type                              m_eAntialias;
+-
+         std::map< sal_Unicode, sal_Int32 >			m_aEncodingVector;
+         std::map< sal_Unicode, rtl::OString >		m_aNonEncoded;
+ 
+@@ -726,6 +746,7 @@
+     false else
+      */
+     bool matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale );
++    FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize);
+ 
+     String Substitute(const std::vector<String> &rNames, const std::vector<sal_Unicode> &rGlyphs, 
+         const ByteString &rLangAttrib, italic::type eItalic, weight::type eWeight, 
+diff -ru psprint/source/fontmanager/fontcache.cxx psprint/source/fontmanager/fontcache.cxx
+--- psprint/source/fontmanager/fontcache.cxx	2006-05-08 16:00:10.000000000 -0400
++++ psprint/source/fontmanager/fontcache.cxx	2006-05-08 16:00:32.000000000 -0400
+@@ -220,9 +220,9 @@
+                 aLine.Append( ';' );
+                 aLine.Append( (*it)->m_bUserOverride ? "1" : "0" );
+                 aLine.Append( ';' );
+-                aLine.Append( ByteString::CreateFromInt32( (*it)->m_eEmbeddedbitmap ) );
++                aLine.Append( ByteString::CreateFromInt32( 0 ) );
+                 aLine.Append( ';' );
+-                aLine.Append( ByteString::CreateFromInt32( (*it)->m_eAntialias ) );
++                aLine.Append( ByteString::CreateFromInt32( 0 ) );
+ 
+                 switch( (*it)->m_eType )
+                 {
+@@ -432,9 +432,6 @@
+                                     = atoi( pLine + nTokenPos[14] );
+                 pFont->m_bUserOverride
+                                     = (atoi( pLine + nTokenPos[15] ) != 0);
+-                pFont->m_eEmbeddedbitmap
+-                                    = (fcstatus::type)atoi(pLine+nTokenPos[16]);
+-                pFont->m_eAntialias = (fcstatus::type)atoi(pLine+nTokenPos[17]);
+                 int nStyleTokenNr = 18;
+                 switch( eType )
+                 {
+@@ -564,8 +561,6 @@
+     pTo->m_nYMax			= pFrom->m_nYMax;
+     pTo->m_bHaveVerticalSubstitutedGlyphs = pFrom->m_bHaveVerticalSubstitutedGlyphs;
+     pTo->m_bUserOverride    = pFrom->m_bUserOverride;
+-    pTo->m_eEmbeddedbitmap  = pFrom->m_eEmbeddedbitmap;
+-    pTo->m_eAntialias       = pFrom->m_eAntialias;
+ }
+ 
+ /*
+@@ -627,9 +622,7 @@
+         pRight->m_nXMax				!= pLeft->m_nXMax			||
+         pRight->m_nYMax				!= pLeft->m_nYMax			||
+         pRight->m_bHaveVerticalSubstitutedGlyphs != pLeft->m_bHaveVerticalSubstitutedGlyphs ||
+-        pRight->m_bUserOverride     != pLeft->m_bUserOverride   ||
+-        pRight->m_eEmbeddedbitmap   != pLeft->m_eEmbeddedbitmap ||
+-        pRight->m_eAntialias        != pLeft->m_eAntialias
++        pRight->m_bUserOverride     != pLeft->m_bUserOverride
+         )
+         return false;
+     std::list< int >::const_iterator lit, rit;
+diff -ru psprint/source/fontmanager/fontconfig.cxx psprint/source/fontmanager/fontconfig.cxx
+--- psprint/source/fontmanager/fontconfig.cxx	2006-05-08 16:00:10.000000000 -0400
++++ psprint/source/fontmanager/fontconfig.cxx	2006-05-08 16:03:34.000000000 -0400
+@@ -106,6 +106,7 @@
+     FcPattern*		(*m_pFcFontSetMatch)(FcConfig*,FcFontSet**, int, FcPattern*,FcResult*);    
+     FcBool			(*m_pFcConfigSubstitute)(FcConfig*,FcPattern*,FcMatchKind);
+     FcBool			(*m_pFcPatternAddInteger)(FcPattern*,const char*,int);
++    FcBool                    (*m_pFcPatternAddDouble)(FcPattern*,const char*,double);
+     FcBool                    (*m_pFcPatternAddBool)(FcPattern*,const char*,FcBool);
+     FcBool                    (*m_pFcPatternAddCharSet)(FcPattern*,const char*,const FcCharSet*);
+     FcBool			(*m_pFcPatternAddString)(FcPattern*,const char*,const FcChar8*);
+@@ -194,6 +195,8 @@
+     { return m_pFcConfigSubstitute( pConfig, pPattern, eKind ); }
+     FcBool FcPatternAddInteger( FcPattern* pPattern, const char* pObject, int nValue )
+     { return m_pFcPatternAddInteger( pPattern, pObject, nValue ); }
++    FcBool FcPatternAddDouble( FcPattern* pPattern, const char* pObject, double nValue )
++    { return m_pFcPatternAddDouble( pPattern, pObject, nValue ); }
+     FcBool FcPatternAddString( FcPattern* pPattern, const char* pObject, const FcChar8* pString )
+     { return m_pFcPatternAddString( pPattern, pObject, pString ); }
+     FcBool FcPatternAddBool( FcPattern* pPattern, const char* pObject, bool nValue )
+@@ -279,6 +282,8 @@
+         loadSymbol( "FcConfigSubstitute" );
+     m_pFcPatternAddInteger = (FcBool(*)(FcPattern*,const char*,int))
+         loadSymbol( "FcPatternAddInteger" );
++    m_pFcPatternAddDouble = (FcBool(*)(FcPattern*,const char*,double))
++        loadSymbol( "FcPatternAddDouble" );
+     m_pFcPatternAddBool = (FcBool(*)(FcPattern*,const char*,FcBool))
+         loadSymbol( "FcPatternAddBool" );
+     m_pFcPatternAddCharSet = (FcBool(*)(FcPattern*,const char*,const FcCharSet *))
+@@ -308,6 +313,7 @@
+             m_pFcDefaultSubstitute			&&
+             m_pFcConfigSubstitute			&&
+             m_pFcPatternAddInteger			&&
++            m_pFcPatternAddDouble                     &&
+             m_pFcPatternAddCharSet			&&
+             m_pFcPatternAddBool 			&&
+             m_pFcPatternAddString
+@@ -410,7 +416,7 @@
+             int weight = 0;
+             int spacing = 0;
+             int nCollectionEntry = -1;
+-            FcBool outline = false, embitmap = true, antialias = true;
++            FcBool outline = false;
+             
+             FcResult eFileRes	      = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FILE, 0, &file );
+             FcResult eFamilyRes	      = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FAMILY, 0, &family );
+@@ -420,8 +426,6 @@
+             FcResult eSpacRes	      = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SPACING, 0, &spacing );
+             FcResult eOutRes	      = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_OUTLINE, 0, &outline );
+             FcResult eIndexRes        = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_INDEX, 0, &nCollectionEntry );
+-            FcResult eEmbeddedBitmap  = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_EMBEDDED_BITMAP, 0, &embitmap );
+-            FcResult eAntialias       = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_ANTIALIAS, 0, &antialias );
+             
+             if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch )
+                 continue;
+@@ -559,15 +563,6 @@
+                 {
+                     pUpdate->m_aStyleName = OStringToOUString( OString( (sal_Char*)style ), RTL_TEXTENCODING_UTF8 );
+                 }
+-                if( eEmbeddedBitmap == FcResultMatch )
+-                {
+-                  pUpdate->m_eEmbeddedbitmap = embitmap ? fcstatus::istrue : fcstatus::isfalse;
+-                }
+-                if( eAntialias == FcResultMatch )
+-                {
+-                  pUpdate->m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
+-                }
+-
+                 
+                 // update font cache
+                 m_pFontCache->updateFontCacheEntry( pUpdate, false );
+@@ -751,6 +746,78 @@
+     return aName;
+ }
+ 
++#ifdef ENABLE_FONTCONFIG
++static void lcl_InfoToPattern( const FastPrintFontInfo& rInfo, FontCfgWrapper& rWrapper, FcPattern* pPattern )
++{
++    OString aFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
++    if( aFamily.getLength() )
++        rWrapper.FcPatternAddString( pPattern, FC_FAMILY, (FcChar8*)aFamily.getStr() );
++
++    addtopattern(rWrapper, pPattern, rInfo.m_eItalic, rInfo.m_eWeight, rInfo.m_eWidth, rInfo.m_ePitch);
++
++}
++#endif
++
++
++FontConfigHints PrintFontManager::getFontConfigHints( const FastPrintFontInfo& rInfo, int nSize)
++{
++    FontConfigHints aHints;
++#ifdef ENABLE_FONTCONFIG
++    FontCfgWrapper& rWrapper = FontCfgWrapper::get();
++    if( ! rWrapper.isValid() )
++        return aHints;
++
++    FcConfig* pConfig = rWrapper.getDefConfig();
++    FcPattern* pPattern = rWrapper.FcPatternCreate();
++
++    lcl_InfoToPattern( rInfo, rWrapper, pPattern );
++    rWrapper.FcPatternAddDouble( pPattern, FC_PIXEL_SIZE, nSize);
++
++    FcBool embitmap = true, antialias = true, autohint = true, hinting = true;
++    int hintstyle = FC_HINT_FULL;
++
++    rWrapper.FcConfigSubstitute( pConfig, pPattern, FcMatchFont );
++    rWrapper.FcDefaultSubstitute( pPattern );
++    FcResult eEmbeddedBitmap = rWrapper.FcPatternGetBool( pPattern, FC_EMBEDDED_BITMAP, 0, &embitmap );
++    FcResult eAntialias = rWrapper.FcPatternGetBool( pPattern, FC_ANTIALIAS, 0, &antialias );
++    FcResult eAutoHint = rWrapper.FcPatternGetBool( pPattern, FC_AUTOHINT, 0, &autohint );
++    FcResult eHinting = rWrapper.FcPatternGetBool( pPattern, FC_HINTING, 0, &hinting );
++    FcResult eHintStyle = rWrapper.FcPatternGetInteger( pPattern, FC_HINT_STYLE, 0, &hintstyle );
++    rWrapper.FcPatternDestroy(pPattern);
++ 
++    if( eEmbeddedBitmap == FcResultMatch )
++        aHints.m_eEmbeddedbitmap = embitmap ? fcstatus::istrue : fcstatus::isfalse;
++    if( eAntialias == FcResultMatch )
++        aHints.m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
++    if( eAutoHint == FcResultMatch )
++        aHints.m_eAutoHint = autohint ? fcstatus::istrue : fcstatus::isfalse;
++    if( eHinting == FcResultMatch )
++        aHints.m_eHinting = hinting ? fcstatus::istrue : fcstatus::isfalse;
++    if (eHintStyle != FcResultMatch)
++        aHints.m_eHintStyle = fchint::Full;
++    else
++    {
++        switch (hintstyle)
++        {
++            case FC_HINT_NONE:
++                aHints.m_eHintStyle = fchint::Nohint;
++                break;
++            case FC_HINT_SLIGHT:
++                aHints.m_eHintStyle = fchint::Slight;
++                break;
++            case FC_HINT_MEDIUM:
++                aHints.m_eHintStyle = fchint::Medium;
++                break;
++            case FC_HINT_FULL:
++            default:
++                aHints.m_eHintStyle = fchint::Full;
++                break;
++        }
++    }
++#endif
++    return aHints;
++}
++
+ bool PrintFontManager::matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale )
+ {
+ #ifdef ENABLE_FONTCONFIG
+@@ -777,11 +843,7 @@
+     if( aLangAttrib.getLength() )
+         rWrapper.FcPatternAddString( pPattern, FC_LANG, (FcChar8*)aLangAttrib.getStr() );
+ 
+-    OString aFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
+-    if( aFamily.getLength() )
+-        rWrapper.FcPatternAddString( pPattern, FC_FAMILY, (FcChar8*)aFamily.getStr() );
+-
+-    addtopattern(rWrapper, pPattern, rInfo.m_eItalic, rInfo.m_eWeight, rInfo.m_eWidth, rInfo.m_ePitch);
++    lcl_InfoToPattern( rInfo, rWrapper, pPattern );
+ 
+     rWrapper.FcConfigSubstitute( pConfig, pPattern, FcMatchPattern );
+     rWrapper.FcDefaultSubstitute( pPattern );
+diff -ru psprint/source/fontmanager/fontmanager.cxx psprint/source/fontmanager/fontmanager.cxx
+--- psprint/source/fontmanager/fontmanager.cxx	2006-05-08 16:00:10.000000000 -0400
++++ psprint/source/fontmanager/fontmanager.cxx	2006-05-08 16:00:32.000000000 -0400
+@@ -391,9 +391,7 @@
+         m_nXMax( 0 ),
+         m_nYMax( 0 ),
+         m_bHaveVerticalSubstitutedGlyphs( false ),
+-        m_bUserOverride( false ),
+-        m_eEmbeddedbitmap( fcstatus::isunset ),
+-        m_eAntialias( fcstatus::isunset )
++        m_bUserOverride( false )
+ {
+ }
+ 
+@@ -2761,8 +2759,6 @@
+     rInfo.m_eWeight         = pFont->m_eWeight;
+     rInfo.m_ePitch          = pFont->m_ePitch;
+     rInfo.m_aEncoding       = pFont->m_aEncoding;
+-    rInfo.m_eEmbeddedbitmap = pFont->m_eEmbeddedbitmap;
+-    rInfo.m_eAntialias      = pFont->m_eAntialias;
+     rInfo.m_aAliases.clear();
+     for( ::std::list< int >::iterator it = pFont->m_aAliases.begin(); it != pFont->m_aAliases.end(); ++it )
+         rInfo.m_aAliases.push_back( m_pAtoms->getString( ATOM_FAMILYNAME, *it ) );
+@@ -4006,8 +4002,6 @@
+         BuiltinFont* pFont = new BuiltinFont();
+         pFont->m_nDirectory = 0;
+         pFont->m_bUserOverride = false;
+-        pFont->m_eEmbeddedbitmap = fcstatus::isunset;
+-        pFont->m_eAntialias = fcstatus::isunset;
+         pFont->m_pMetrics = new PrintFontMetrics;
+         memset( pFont->m_pMetrics->m_aPages, 0xff, sizeof( pFont->m_pMetrics->m_aPages ) );
+         pFont->m_pMetrics->m_bKernPairsQueried = true;
+Index: source/glyphs/gcach_ftyp.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
+retrieving revision 1.139.12.2
+diff -u -r1.139.12.2 gcach_ftyp.cxx
+--- vcl/source/glyphs/gcach_ftyp.cxx	24 Jan 2007 15:08:39 -0000	1.139.12.2
++++ vcl/source/glyphs/gcach_ftyp.cxx	13 Apr 2007 11:33:47 -0000
+@@ -44,6 +44,7 @@
+ #include <vcl/impfont.hxx>
+ #include <vcl/bitmap.hxx>
+ #include <vcl/bmpacc.hxx>
++#include <vcl/virdev.hxx>
+ 
+ #include <tools/poly.hxx>
+ #include <basegfx/matrix/b2dhommatrix.hxx>
+@@ -616,9 +617,6 @@
+             aDFA.mbSubsettable= false;
+             aDFA.mbEmbeddable = false;
+ 
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+-            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+-
+             FT_Done_Face( aFaceFT );
+             AddFontFile( aCFileName, nFaceNum, ++mnNextFontId, aDFA, NULL );
+             ++nCount;
+@@ -698,6 +696,7 @@
+ :   ServerFont( rFSD ),
+     mnPrioEmbedded(nDefaultPrioEmbedded),
+     mnPrioAntiAlias(nDefaultPrioAntiAlias),
++    mnPrioAutoHint(nDefaultPrioAutoHint),
+     mpFontInfo( pFI ),
+     maFaceFT( NULL ),
+     maSizeFT( NULL ),
+@@ -830,42 +829,69 @@
+ 
+     mbArtItalic = (rFSD.meItalic != ITALIC_NONE && pFI->GetFontAttributes().GetSlant() == ITALIC_NONE);
+     mbArtBold = (rFSD.meWeight > WEIGHT_MEDIUM && pFI->GetFontAttributes().GetWeight() <= WEIGHT_MEDIUM);
++    mbUseGamma = false;
++    if (mbArtBold)
++    {
++	    //static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
++	    //static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
++	    //static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
++	    //static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
++	    //static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
++	    //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
++	    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
++	    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
++	    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
++		&& rFSD.mnHeight < 20)
++		mbUseGamma = true;
++    }
++
++    ImplFontHints aHints;
++    VirtualDevice vdev( 1 );
++    vdev.ImplGetFontHints( pFI->GetFontAttributes(), mnWidth, aHints );
++
++    FontAutoHint eHint = aHints.GetUseAutoHint();
++    if (eHint == AUTOHINT_DONTKNOW)
++        eHint = mbUseGamma ? AUTOHINT_TRUE : AUTOHINT_FALSE;
+ 
+-    //static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
+-    //static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
+-    //static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
+-    //static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
+-    //static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
+-    //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
+-    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
+-    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
+-    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
+-        && rFSD.mnHeight < 20)
+-        mbUseGamma = true;
+-    else
+-        mbUseGamma = false;
+-
+-    if (mbUseGamma)
++    if (eHint == AUTOHINT_TRUE)
+         mnLoadFlags |= FT_LOAD_FORCE_AUTOHINT;
+ 
+     if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
+         mnLoadFlags |= FT_LOAD_NO_HINTING;
+     mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
+ 
+-    if (mpFontInfo->DontUseAntiAlias())
+-        mnPrioAntiAlias = 0;
+-    if (mpFontInfo->DontUseEmbeddedBitmaps())
+-        mnPrioEmbedded = 0;
++    if (aHints.DontUseAntiAlias())
++      mnPrioAntiAlias = 0;
++    if (aHints.DontUseEmbeddedBitmaps())
++      mnPrioEmbedded = 0;
++    if (aHints.DontUseHinting())
++      mnPrioAutoHint = 0;
+ 
+ #if (FTVERSION >= 2005) || defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
+-    if( nDefaultPrioAutoHint <= 0 )
++    if( mnPrioAutoHint <= 0 )
+ #endif
+         mnLoadFlags |= FT_LOAD_NO_HINTING;
+ 
+-#ifdef FT_LOAD_TARGET_LIGHT
+-    // enable "light hinting" if available
++#if defined(FT_LOAD_TARGET_LIGHT) && defined(FT_LOAD_TARGET_NORMAL)
+     if( !(mnLoadFlags & FT_LOAD_NO_HINTING) && (nFTVERSION >= 2103))
+-        mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
++    {
++       mnLoadFlags |= FT_LOAD_TARGET_NORMAL;
++       switch (aHints.GetHintStyle())
++       {
++           case HINT_NONE:
++                mnLoadFlags |= FT_LOAD_NO_HINTING;
++                break;
++           case HINT_SLIGHT:
++                mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
++                break;
++           case HINT_MEDIUM:
++                break;
++           case HINT_FULL:
++           default:
++                break;
++       }
++    }
++
+ #endif
+ 
+     if( ((mnCos != 0) && (mnSin != 0)) || (mnPrioEmbedded <= 0) )
+@@ -1334,11 +1377,11 @@
+ #if (FTVERSION >= 2002)
+     // for 0/90/180/270 degree fonts enable autohinting even if not advisable
+     // non-hinted and non-antialiased bitmaps just look too ugly
+-    if( (mnCos==0 || mnSin==0) && (nDefaultPrioAutoHint > 0) )
++    if( (mnCos==0 || mnSin==0) && (mnPrioAutoHint > 0) )
+         nLoadFlags &= ~FT_LOAD_NO_HINTING;
+ #endif
+ 
+-    if( mnPrioEmbedded <= nDefaultPrioAutoHint )
++    if( mnPrioEmbedded <= mnPrioAutoHint )
+         nLoadFlags |= FT_LOAD_NO_BITMAP;
+ 
+     FT_Error rc = -1;
+@@ -1489,7 +1532,7 @@
+     // autohinting in FT<=2.0.4 makes antialiased glyphs look worse
+     nLoadFlags |= FT_LOAD_NO_HINTING;
+ #else
+-    if( (nGlyphFlags & GF_UNHINTED) || (nDefaultPrioAutoHint < mnPrioAntiAlias) )
++    if( (nGlyphFlags & GF_UNHINTED) || (mnPrioAutoHint < mnPrioAntiAlias) )
+         nLoadFlags |= FT_LOAD_NO_HINTING;
+ #endif
+ 
+Index: svppspgraphics.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svppspgraphics.cxx,v
+retrieving revision 1.2
+diff -u -r1.2 svppspgraphics.cxx
+--- vcl/unx/headless/svppspgraphics.cxx	24 Jul 2007 10:28:29 -0000	1.2
++++ vcl/unx/headless/svppspgraphics.cxx	15 Aug 2007 11:59:04 -0000
+@@ -1175,32 +1175,6 @@
+     aDFA.mePitch        = ToFontPitch (rInfo.m_ePitch);
+     aDFA.mbSymbolFlag   = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
+ 
+-    switch (rInfo.m_eEmbeddedbitmap)
+-    {
+-        default:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
+-            break;
+-        case psp::fcstatus::istrue:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
+-            break;
+-        case psp::fcstatus::isfalse:
+-            aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
+-            break;
+-    }
+-
+-    switch (rInfo.m_eAntialias)
+-    {
+-        default:
+-            aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+-            break;
+-        case psp::fcstatus::istrue:
+-            aDFA.meAntiAlias = ANTIALIAS_TRUE;
+-            break;
+-        case psp::fcstatus::isfalse:
+-            aDFA.meAntiAlias = ANTIALIAS_FALSE;
+-            break;
+-    }
+-
+     // special case for the ghostscript fonts
+     if( aDFA.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
+         aDFA.maName = aDFA.maName.Copy( 4 );
+@@ -1386,3 +1360,7 @@
+     return bRet && m_bSwallowFaxNo;
+ }
+ 
++void PspGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
++{
++}
++
+Index: svppspgraphics.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svppspgraphics.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 svppspgraphics.hxx
+--- vcl/unx/headless/svppspgraphics.hxx	24 Jul 2007 10:28:40 -0000	1.2
++++ vcl/unx/headless/svppspgraphics.hxx	15 Aug 2007 12:02:57 -0000
+@@ -201,6 +201,7 @@
+ 
+     virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
+     virtual bool            filterText( const String& rOrigText, String& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+ };
+ 
+ #endif // _SVP_PSPGRAPHICS_HXX
+Index: svpgdi.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpgdi.cxx,v
+retrieving revision 1.2
+diff -u -r1.2 svpgdi.cxx
+--- vcl/unx/headless/svpgdi.cxx	24 Jul 2007 10:27:28 -0000	1.2
++++ vcl/unx/headless/svpgdi.cxx	15 Aug 2007 12:06:47 -0000
+@@ -535,3 +535,7 @@
+ {
+     return FALSE;
+ }
++
++void SvpSalGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
++{
++}
+Index: svpgdi.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpgdi.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 svpgdi.hxx
+--- vcl/unx/headless/svpgdi.hxx	24 Jul 2007 10:27:38 -0000	1.2
++++ vcl/unx/headless/svpgdi.hxx	15 Aug 2007 12:07:36 -0000
+@@ -176,6 +176,8 @@
+     virtual void			invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags );
+ 
+     virtual BOOL			drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
++
++    virtual void                        GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
+ };
+ 
+ #endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scroll-accel-vcl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scroll-accel-vcl.diff
@@ -0,0 +1,102 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/inc/vcl/seleng.hxx vcl/inc/vcl/seleng.hxx
+--- vcl.clean/inc/vcl/seleng.hxx	2008-04-01 19:28:32.000000000 -0400
++++ vcl/inc/vcl/seleng.hxx	2008-04-03 17:57:26.000000000 -0400
+@@ -54,6 +54,7 @@ class CommandEvent;
+ // Timerticks
+ #define SELENG_DRAGDROP_TIMEOUT     400
+ #define SELENG_AUTOREPEAT_INTERVAL  50
++#define SELENG_AUTOREPEAT_INTERVAL_MAX 300
+ 
+ enum SelectionMode { NO_SELECTION, SINGLE_SELECTION, RANGE_SELECTION, MULTIPLE_SELECTION };
+ 
+@@ -103,6 +104,7 @@ private:
+     Timer               aWTimer; // erzeugt kuenstliche Mouse-Moves
+     MouseEvent          aLastMove;
+     SelectionMode       eSelMode;
++    ULONG               nUpdateInterval;
+     // Stufigkeit fuer Mausbewegungen waehrend einer Selektion
+     USHORT              nMouseSensitivity;
+     USHORT              nLockedMods;
+@@ -116,7 +118,8 @@ private:
+ public:
+ 
+                         SelectionEngine( Window* pWindow,
+-                                         FunctionSet* pFunctions = NULL );
++                                         FunctionSet* pFunctions = NULL,
++                                         ULONG nAutoRepeatInterval = SELENG_AUTOREPEAT_INTERVAL );
+                         ~SelectionEngine();
+ 
+     // TRUE: Event wurde von Selection-Engine verarbeitet.
+@@ -175,6 +178,8 @@ public:
+     BOOL                HasAnchor() const;
+     void                SetAnchor( BOOL bAnchor );
+ 
++    void                SetUpdateInterval( ULONG nInterval );
++
+ 	// wird im Ctor eingeschaltet
+ 	void				ExpandSelectionOnMouseMove( BOOL bExpand = TRUE )
+ 						{
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/source/window/seleng.cxx vcl/source/window/seleng.cxx
+--- vcl.clean/source/window/seleng.cxx	2008-04-01 19:28:36.000000000 -0400
++++ vcl/source/window/seleng.cxx	2008-04-03 18:24:56.000000000 -0400
+@@ -41,7 +41,7 @@
+ #include <vcl/seleng.hxx>
+ #include <tools/debug.hxx>
+ 
+-
++#include <stdio.h>
+ 
+ 
+ inline BOOL SelectionEngine::ShouldDeselect( BOOL bModifierKey1 ) const
+@@ -63,8 +63,10 @@ inline BOOL SelectionEngine::ShouldDesel
+ |*
+ *************************************************************************/
+ 
+-SelectionEngine::SelectionEngine( Window* pWindow, FunctionSet* pFuncSet ) :
+-                    pWin( pWindow )
++SelectionEngine::SelectionEngine( Window* pWindow, FunctionSet* pFuncSet, 
++                                  ULONG nAutoRepeatInterval ) :
++    pWin( pWindow ),
++    nUpdateInterval( nAutoRepeatInterval )
+ {
+     eSelMode = SINGLE_SELECTION;
+     pFunctionSet = pFuncSet;
+@@ -72,7 +74,7 @@ SelectionEngine::SelectionEngine( Window
+     nLockedMods = 0;
+ 
+     aWTimer.SetTimeoutHdl( LINK( this, SelectionEngine, ImpWatchDog ) );
+-    aWTimer.SetTimeout( SELENG_AUTOREPEAT_INTERVAL );
++    aWTimer.SetTimeout( nUpdateInterval );
+ }
+ 
+ /*************************************************************************
+@@ -397,7 +399,7 @@ BOOL SelectionEngine::SelMouseMove( cons
+     if( aWTimer.IsActive() && !aArea.IsInside( rMEvt.GetPosPixel() ))
+         return TRUE;
+ 
+-
++    aWTimer.SetTimeout( nUpdateInterval );
+     aWTimer.Start();
+     if ( eSelMode != SINGLE_SELECTION )
+     {
+@@ -493,3 +495,20 @@ void SelectionEngine::Command( const Com
+             nFlags &= ~SELENG_CMDEVT;
+     }
+ }
++
++void SelectionEngine::SetUpdateInterval( ULONG nInterval )
++{
++    if (nUpdateInterval == nInterval)
++        // no update needed.
++        return;
++
++    nUpdateInterval = nInterval;
++
++    if (aWTimer.IsActive())
++    {
++        // reset the timer right away on interval change.
++        aWTimer.Stop();
++        aWTimer.SetTimeout(nUpdateInterval);
++        aWTimer.Start();
++    }
++}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-save-password-minlength.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-save-password-minlength.diff
@@ -0,0 +1,144 @@
+--- sfx2/inc/sfx2/passwd.hxx.orig	2007-08-30 13:37:21.000000000 -0400
++++ sfx2/inc/sfx2/passwd.hxx	2007-08-30 15:00:41.000000000 -0400
+@@ -74,6 +74,7 @@
+ 	Edit			maPasswordED;
+ 	FixedText		maConfirmFT;
+ 	Edit			maConfirmED;
++    FixedText		maMinLengthFT;
+     FixedLine       maPasswordBox;
+ 
+ 	OKButton		maOKBtn;
+@@ -82,12 +83,16 @@
+ 
+ 	String			maConfirmStr;
+ 	USHORT			mnMinLen;
++    String			maMinLenPwdStr;
++    String			maEmptyPwdStr;
++    String			maMainPwdStr;
+ 	USHORT			mnExtras;
+ 
+ //#if 0 // _SOLAR__PRIVATE
+ 	DECL_DLLPRIVATE_LINK( EditModifyHdl, Edit* );
+ 	DECL_DLLPRIVATE_LINK( OKHdl, OKButton* );
+ //#endif
++    void			SetPasswdText();
+ 
+ public:
+ 	SfxPasswordDialog( Window* pParent, const String* pGroupText = NULL );
+--- sfx2/source/dialog/passwd.cxx.orig	2007-08-30 13:37:07.000000000 -0400
++++ sfx2/source/dialog/passwd.cxx	2007-08-30 14:05:12.000000000 -0400
+@@ -100,6 +100,7 @@
+ 	maPasswordED	( this, SfxResId( ED_PASSWD_PASSWORD ) ),
+ 	maConfirmFT		( this, SfxResId( FT_PASSWD_CONFIRM ) ),
+ 	maConfirmED		( this, SfxResId( ED_PASSWD_CONFIRM ) ),
++    maMinLengthFT	( this, SfxResId( FT_PASSWD_MINLEN ) ),
+ 	maPasswordBox	( this, SfxResId( GB_PASSWD_PASSWORD ) ),
+ 	maOKBtn			( this, SfxResId( BTN_PASSWD_OK ) ),
+ 	maCancelBtn		( this, SfxResId( BTN_PASSWD_CANCEL ) ),
+@@ -107,6 +108,9 @@
+ 	maConfirmStr	( 		SfxResId( STR_PASSWD_CONFIRM ) ),
+ 
+ 	mnMinLen		( 5 ),
++    maMinLenPwdStr	( SfxResId( STR_PASSWD_MIN_LEN ) ),
++    maEmptyPwdStr	( SfxResId( STR_PASSWD_EMPTY ) ),
++    maMainPwdStr    ( ),
+ 	mnExtras		( 0 )
+ 
+ {
+@@ -119,6 +123,25 @@
+ 
+ 	if ( pGroupText )
+ 		  maPasswordBox.SetText( *pGroupText );
++	
++//set the text to the pasword length
++	SetPasswdText();
++}
++
++// -----------------------------------------------------------------------
++
++void SfxPasswordDialog::SetPasswdText( )
++{
++//set the new string to the minimum password length
++	if( mnMinLen == 0 )
++		maMinLengthFT.SetText( maEmptyPwdStr );
++	else
++	{
++		maMainPwdStr = maMinLenPwdStr;
++		maMainPwdStr.SearchAndReplace( String::CreateFromAscii( "$(MINLEN)" ), String::CreateFromInt32((sal_Int32) mnMinLen ), 0);
++		maMinLengthFT.SetText( maMainPwdStr );
++		maMinLengthFT.Show();
++	}	
+ }
+ 
+ // -----------------------------------------------------------------------
+@@ -126,6 +149,7 @@
+ void SfxPasswordDialog::SetMinLen( USHORT nLen )
+ {
+ 	mnMinLen = nLen;
++	SetPasswdText();
+ 	EditModifyHdl( NULL );
+ }
+ 
+@@ -176,8 +200,10 @@
+ 			aPos = maUserED.GetPosPixel();
+ 			maPasswordED.SetPosPixel( aPos );
+ 
++			aPos = maConfirmFT.GetPosPixel();
+ 			maConfirmFT.SetPosPixel( aPwdPos1 );
+ 			maConfirmED.SetPosPixel( aPwdPos2 );
++			maMinLengthFT.SetPosPixel(aPos);
+ 		}
+ 
+ 		Size aBoxSize = maPasswordBox.GetSizePixel();
+===================================================================
+RCS file: /cvs/framework/sfx2/source/dialog/passwd.hrc,v
+retrieving revision 1.2
+diff -u -p -u -r1.2 passwd.hrc
+--- sfx2/source/dialog/passwd.hrc	7 Sep 2005 18:28:36 -0000	1.2
++++ sfx2/source/dialog/passwd.hrc	29 Jul 2006 11:50:09 -0000
+@@ -44,12 +44,15 @@
+ #define ED_PASSWD_PASSWORD 14
+ #define FT_PASSWD_CONFIRM 15
+ #define ED_PASSWD_CONFIRM 16
++#define FT_PASSWD_MINLEN 17
+ 
+ #define BTN_PASSWD_OK 20
+ #define BTN_PASSWD_CANCEL 21
+ #define BTN_PASSWD_HELP 22
+ 
+ #define STR_PASSWD_CONFIRM 30
++#define STR_PASSWD_MIN_LEN	31
++#define STR_PASSWD_EMPTY	32
+ 
+ #endif
+ 
+Index: sfx2/source/dialog/passwd.src
+===================================================================
+RCS file: /cvs/framework/sfx2/source/dialog/passwd.src,v
+retrieving revision 1.27
+diff -u -p -u -r1.27 passwd.src
+--- sfx2/source/dialog/passwd.src	23 Sep 2005 15:25:58 -0000	1.27
++++ sfx2/source/dialog/passwd.src	29 Jul 2006 11:50:09 -0000
+@@ -91,6 +91,22 @@ ModalDialog DLG_PASSWD
+ 		Pos = MAP_APPFONT( 57, 44 );
+ 		Size = MAP_APPFONT( 75, 12 );
+ 	};
++	
++	String STR_PASSWD_MIN_LEN
++	{
++		Text [ en-US ] = "(Minimum $(MINLEN) characters)" ;
++	};
++	String STR_PASSWD_EMPTY
++	{
++		Text [ en-US ] = "(The password can be empty)" ;
++	};
++	
++	FixedText FT_PASSWD_MINLEN
++	{
++		Pos = MAP_APPFONT(12, 65 );
++		Size = MAP_APPFONT( 126, 10 );
++	};
++	
+     FixedLine GB_PASSWD_PASSWORD
+ 	{
+ 		Pos = MAP_APPFONT( 6, 3 );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fix-ppt-linespacing-import-export.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fix-ppt-linespacing-import-export.diff
@@ -0,0 +1,133 @@
+diff -rup ../ooh680-m1/sd/source/filter/eppt/eppt.hxx sd/source/filter/eppt/eppt.hxx
+--- ../ooh680-m1/sd/source/filter/eppt/eppt.hxx	2006-12-12 17:39:02.000000000 +0100
++++ sd/source/filter/eppt/eppt.hxx	2008-02-04 17:13:48.000000000 +0100
+@@ -739,6 +739,7 @@ class ParagraphObj : public List, public
+ 
+ 		sal_uInt16								mnTextAdjust;
+ 		sal_Int16								mnLineSpacing;
++        sal_Bool								mbFixedLineSpacing;
+ 		sal_Int16								mnLineSpacingTop;
+ 		sal_Int16								mnLineSpacingBottom;
+         sal_Bool								mbForbiddenRules;
+diff -rup ../ooh680-m1/sd/source/filter/eppt/epptso.cxx sd/source/filter/eppt/epptso.cxx
+--- ../ooh680-m1/sd/source/filter/eppt/epptso.cxx	2007-08-02 20:22:59.000000000 +0200
++++ sd/source/filter/eppt/epptso.cxx	2008-02-04 17:16:29.000000000 +0100
+@@ -1428,7 +1428,7 @@ void PPTWriter::ImplWriteParagraphs( SvS
+             }
+             else
+             {
+-                if ( pPortion && pPortion->mnCharHeight > (sal_uInt16)( ((double)-nLineSpacing) * 0.001 * 72.0 / 2.54 ) ) // 1/100mm to point
++                if ( !pPara->mbFixedLineSpacing && pPortion && pPortion->mnCharHeight > (sal_uInt16)( ((double)-nLineSpacing) * 0.001 * 72.0 / 2.54 ) ) // 1/100mm to point
+                     nLineSpacing = nNormalSpacing;
+                 else
+                     nLineSpacing = (sal_Int16)( (double)nLineSpacing / 4.40972 );
+@@ -2858,11 +2858,15 @@ void ParagraphObj::ImplGetParagraphValue
+             = *( (::com::sun::star::style::LineSpacing*)mAny.getValue() );
+         switch ( aLineSpacing.Mode )
+         {
++            case ::com::sun::star::style::LineSpacingMode::FIX :
++                mnLineSpacing = (sal_Int16)(-( aLineSpacing.Height ) );
++                mbFixedLineSpacing = TRUE;
++                break;
+             case ::com::sun::star::style::LineSpacingMode::MINIMUM :
+             case ::com::sun::star::style::LineSpacingMode::LEADING :
+-            case ::com::sun::star::style::LineSpacingMode::FIX :
+                 mnLineSpacing = (sal_Int16)(-( aLineSpacing.Height ) );
+-            break;
++                mbFixedLineSpacing = FALSE;
++           break;
+ 
+             case ::com::sun::star::style::LineSpacingMode::PROP :
+             default:
+diff -rup ../ooh680-m1/sd/source/ui/dlg/paragr.cxx sd/source/ui/dlg/paragr.cxx
+--- ../ooh680-m1/sd/source/ui/dlg/paragr.cxx	2006-12-12 18:07:46.000000000 +0100
++++ sd/source/ui/dlg/paragr.cxx	2008-01-28 16:30:13.000000000 +0100
+@@ -53,6 +53,9 @@
+ #include <svx/flagsdef.hxx>
+ #include "paragr.hxx"
+ #include "sdresid.hxx"
++#ifndef _SFXINTITEM_HXX
++#include <svtools/intitem.hxx>
++#endif
+ 
+ /*************************************************************************
+ |*
+@@ -77,3 +80,17 @@ SdParagraphDlg::SdParagraphDlg( Window* 
+ 	AddTabPage( RID_SVXPAGE_ALIGN_PARAGRAPH );
+ 	AddTabPage( RID_SVXPAGE_TABULATOR );
+ }
++
++void SdParagraphDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
++{
++	SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
++	switch( nId )
++	{
++    case RID_SVXPAGE_STD_PARAGRAPH:
++        aSet.Put(SfxUInt32Item(SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST, MM50/2));
++        rPage.PageCreated(aSet);
++        break;
++    default:
++        break;
++    }
++}
+diff -rup ../ooh680-m1/sd/source/ui/inc/paragr.hxx sd/source/ui/inc/paragr.hxx
+--- ../ooh680-m1/sd/source/ui/inc/paragr.hxx	2005-09-09 07:48:22.000000000 +0200
++++ sd/source/ui/inc/paragr.hxx	2008-01-28 16:25:32.000000000 +0100
+@@ -53,6 +53,8 @@ class SdParagraphDlg : public SfxTabDial
+ private:
+ 	const SfxItemSet&	rOutAttrs;
+ 
++	virtual void	PageCreated( USHORT nId, SfxTabPage &rPage );
++
+ public:
+ 					SdParagraphDlg( Window* pParent, const SfxItemSet* pAttr );
+ 					~SdParagraphDlg() {};
+diff -rup ../ooh680-m1/svx/source/editeng/impedit3.cxx svx/source/editeng/impedit3.cxx
+--- ../ooh680-m1/svx/source/editeng/impedit3.cxx	2007-08-02 15:59:22.000000000 +0200
++++ svx/source/editeng/impedit3.cxx	2008-01-25 17:51:36.000000000 +0100
+@@ -1312,6 +1312,13 @@ sal_Bool ImpEditEngine::CreateLines( USH
+ 					pLine->SetHeight( nMinHeight, nTxtHeight );
+ 				}
+ 			}
++			else if ( rLSItem.GetLineSpaceRule() == SVX_LINE_SPACE_FIX )
++			{
++				sal_uInt16 nFixHeight = GetYValue( rLSItem.GetLineHeight() );
++				sal_uInt16 nTxtHeight = pLine->GetHeight();
++                pLine->SetMaxAscent( (sal_uInt16)(pLine->GetMaxAscent() + ( nFixHeight - nTxtHeight ) ) );
++                pLine->SetHeight( nFixHeight, nTxtHeight );
++			}
+ 			else if ( rLSItem.GetInterLineSpaceRule() == SVX_INTER_LINE_SPACE_PROP )
+ 			{
+ 				if ( nPara || IsFixedCellHeight() || pLine->GetStartPortion() ) // Nicht die aller erste Zeile
+@@ -1654,6 +1668,14 @@ void ImpEditEngine::CreateAndInsertEmpty
+ 				pTmpLine->SetHeight( nMinHeight, nTxtHeight );
+ 			}
+ 		}
++		else if ( rLSItem.GetLineSpaceRule() == SVX_LINE_SPACE_FIX )
++		{
++			sal_uInt16 nFixHeight = rLSItem.GetLineHeight();
++			sal_uInt16 nTxtHeight = pTmpLine->GetHeight();
++
++            pTmpLine->SetMaxAscent( (sal_uInt16)(pTmpLine->GetMaxAscent() + ( nFixHeight - nTxtHeight ) ) );
++            pTmpLine->SetHeight( nFixHeight, nTxtHeight );
++		}
+ 		else if ( rLSItem.GetInterLineSpaceRule() == SVX_INTER_LINE_SPACE_PROP )
+ 		{
+             USHORT nPara = GetParaPortions().GetPos( pParaPortion );
+diff -rup ../ooh680-m1/svx/source/svdraw/svdfppt.cxx svx/source/svdraw/svdfppt.cxx
+--- ../ooh680-m1/svx/source/svdraw/svdfppt.cxx	2008-01-08 10:24:29.000000000 +0100
++++ svx/source/svdraw/svdfppt.cxx	2008-02-04 12:10:08.000000000 +0100
+@@ -6326,9 +6326,11 @@ void PPTParagraphObj::ApplyTo( SfxItemSe
+ 		}
+ 		rSet.Put( SdrTextFixedCellHeightItem( TRUE ), SDRATTR_TEXT_USEFIXEDCELLHEIGHT );
+ 		SvxLineSpacingItem aItem( 200, EE_PARA_SBL );
+-		if ( nVal2 <= 0 )
++		if ( nVal2 <= 0 ) {
+ 			aItem.SetLineHeight( (UINT16)( rManager.ScalePoint( -nVal2 ) / 8 ) );
+-		else
++            aItem.GetLineSpaceRule() = SVX_LINE_SPACE_FIX;
++			aItem.GetInterLineSpaceRule() = SVX_INTER_LINE_SPACE_OFF;
++		} else
+ 		{
+             sal_uInt8 nPropLineSpace = (BYTE)nVal2;
+ 			aItem.SetPropLineSpace( nPropLineSpace );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-missing-initialization-m15.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-missing-initialization-m15.diff
@@ -0,0 +1,49 @@
+--- svx/inc/svx/svdfppt.hxx	10 May 2007 14:32:05 -0000	1.3
++++ svx/inc/svx/svdfppt.hxx	2 Apr 2008 08:48:35 -0000
+@@ -311,6 +311,7 @@ struct PptColorSchemeAtom
+ 
+ public:
+ 
++    PptColorSchemeAtom();
+     Color				GetColor( USHORT nNum ) const;
+ 
+     friend SvStream& operator>>(SvStream& rIn, PptColorSchemeAtom& rAtom);
+
+--- svx/source/svdraw/svdfppt.cxx	23 Jan 2008 14:49:02 -0000	1.154.182.2
++++ svx/source/svdraw/svdfppt.cxx	2 Apr 2008 08:49:28 -0000
+@@ -526,6 +526,11 @@ void PptNotesAtom::Clear()
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
++PptColorSchemeAtom::PptColorSchemeAtom()
++{
++    rtl_zeroMemory(aData,sizeof(aData));
++}
++
+ Color PptColorSchemeAtom::GetColor( USHORT nNum ) const
+ {
+ 	Color aRetval;
+@@ -678,6 +683,10 @@ SvStream& operator>>( SvStream& rIn, Ppt
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ PptSlidePersistEntry::PptSlidePersistEntry() :
++    aPersistAtom            (),
++    aSlideAtom              (),
++    aNotesAtom              (),
++    aColorScheme            (),
+     pStyleSheet				( NULL ),
+ 	pHeaderFooterEntry		( NULL ),
+ 	pSolverContainer		( NULL ),
+
+--- svx/source/inc/svdoimp.hxx	26 Nov 2007 14:51:11 -0000	1.11
++++ svx/source/inc/svdoimp.hxx	28 Mar 2008 19:15:52 -0000
+@@ -258,7 +258,8 @@ public:
+ 		basegfx::B2DPolyPolygon& rPoLi)
+ 	:	mrLineAttr(rAttr),
+ 		maAreaPolyPolygon(rPoPo),
+-		maLinePolyPolygon(rPoLi)
++		maLinePolyPolygon(rPoLi),
++       mbLineDraft(false)
+ 	{
+ 	}
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-lpsolve-rpath.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-lpsolve-rpath.diff
@@ -0,0 +1,16 @@
+--- solenv/inc/libs.mk-old 2006-07-28 01:06:26.000000000 +0000
++++ solenv/inc/libs.mk     2006-07-28 01:07:12.000000000 +0000
+@@ -254,7 +254,13 @@
+ .ELSE
+ JVMFWKLIB = -ljvmfwk
+ .ENDIF                  # "$(GUI)$(COM)"=="WNTGCC"
++.IF "$(SYSTEM_LPSOLVE)" == "YES"
++# FIXME. Even with -L/usr/lib/lp_solve -llpsolve55 the liblpsolve55.a from
++# /usr/lib gets picked and we get a static link...
++LPSOLVELIB = /usr/lib/lp_solve/liblpsolve55.so -Wl,-rpath=/usr/lib/lp_solve
++.ELSE
+ LPSOLVELIB = -llpsolve55
++.ENDIF
+
+ # #110743#
+ # For BinFilters, some libs were added.
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-text-move-fix-i59061.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-text-move-fix-i59061.diff
@@ -0,0 +1,24 @@
+Index: svx/source/editeng/editview.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/editeng/editview.cxx,v
+retrieving revision 1.49
+diff -u -r1.49 editview.cxx
+--- svx/source/editeng/editview.cxx	23 Nov 2007 16:43:08 -0000	1.49
++++ svx/source/editeng/editview.cxx	14 Jan 2008 20:36:52 -0000
+@@ -745,12 +745,13 @@
+ 	DBG_CHKTHIS( EditView, 0 );
+ 	DBG_CHKOBJ( pImpEditView->pEditEngine, EditEngine, 0 );
+     ESelection aSel = GetSelection();
+-    long nDest = aSel.nStartPara + nDiff;
++    Range aRange( aSel.nStartPara, aSel.nEndPara );
++    aRange.Justify();
++    long nDest = ( nDiff > 0  ? aRange.Max() : aRange.Min() ) + nDiff;
+     if ( nDiff > 0 )
+         nDest++;
+     DBG_ASSERT( ( nDest >= 0 ) && ( nDest <= pImpEditView->pEditEngine->GetParagraphCount() ), "MoveParagraphs - wrong Parameters!" );
+-    MoveParagraphs(
+-        Range( aSel.nStartPara, aSel.nEndPara ),
++    MoveParagraphs( aRange,
+         sal::static_int_cast< USHORT >( nDest ) );
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-rowsotrepeat.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-rowsotrepeat.diff
@@ -0,0 +1,11 @@
+--- sw/source/filter/ww8/ww8par2.cxx	28 Feb 2007 15:54:50 -0000	1.129
++++ sw/source/filter/ww8/ww8par2.cxx	27 May 2007 18:36:27 -0000
+@@ -2551,6 +2551,8 @@ void WW8TabDesc::UseSwTable()
+         GetSttNd()->FindTableNode();
+     ASSERT( pTblNd, "wo ist mein TabellenNode" );
+ 
++	if (nRowsToRepeat == USHORT( nRows))
++	  nRowsToRepeat = 1;
+     pTblNd->GetTable().SetRowsToRepeat( nRowsToRepeat );
+     // ggfs. Zusatz-Zellen einfuegen u.dgl.
+     AdjustNewBand();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcc4-visibility-sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcc4-visibility-sc.diff
@@ -0,0 +1,38 @@
+--- sc/inc/miscuno.hxx.old	2005-03-23 13:44:54.000000000 +0100
++++ sc/inc/miscuno.hxx	2005-08-02 19:38:06.000000000 +0200
+@@ -337,11 +337,11 @@
+ 												com::sun::star::beans::XPropertySet>& xProp,
+ 											const ::rtl::OUString& rName, long nDefault );
+ 
+-	static sal_Bool			GetBoolFromAny( const com::sun::star::uno::Any& aAny );
++	SC_DLLPUBLIC static sal_Bool			GetBoolFromAny( const com::sun::star::uno::Any& aAny );
+ 	static sal_Int16		GetInt16FromAny( const com::sun::star::uno::Any& aAny );
+ 	static sal_Int32		GetInt32FromAny( const com::sun::star::uno::Any& aAny );
+ 	static sal_Int32		GetEnumFromAny( const com::sun::star::uno::Any& aAny );
+-	static void				SetBoolInAny( com::sun::star::uno::Any& rAny, sal_Bool bValue );
++	SC_DLLPUBLIC static void				SetBoolInAny( com::sun::star::uno::Any& rAny, sal_Bool bValue );
+ };
+ 
+ 
+--- sc/inc/optutil.hxx.old	2000-11-02 20:08:15.000000000 +0100
++++ sc/inc/optutil.hxx	2005-08-02 19:32:54.000000000 +0200
+@@ -70,6 +70,10 @@
+ #include <tools/link.hxx>
+ #endif
+ 
++#ifndef INCLUDED_SCDLLAPI_H
++#include "scdllapi.h"
++#endif
++
+ 
+ class ScOptionsUtil
+ {
+@@ -80,7 +84,7 @@
+ 
+ //	ConfigItem for classes that use items from several sub trees
+ 
+-class ScLinkConfigItem : public utl::ConfigItem
++class SC_DLLPUBLIC ScLinkConfigItem : public utl::ConfigItem
+ {
+ 	Link	aCommitLink;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-pre-and-postprocess-during-save-load.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-pre-and-postprocess-during-save-load.diff
@@ -0,0 +1,291 @@
+Index: sfx2/source/doc/objstor.cxx
+===================================================================
+RCS file: /cvs/framework/sfx2/source/doc/objstor.cxx,v
+retrieving revision 1.181
+diff -u -r1.181 objstor.cxx
+--- sfx2/source/doc/objstor.cxx	4 Aug 2006 14:23:30 -0000	1.181
++++ sfx2/source/doc/objstor.cxx	12 Feb 2007 17:16:29 -0000
+@@ -200,6 +203,10 @@
+ #include <svtools/embedhlp.hxx>
+ #include <rtl/logfile.hxx>
+ #include <basic/modsizeexceeded.hxx>
++#include <com/sun/star/util/XMacroExpander.hpp>
++#include <osl/file.hxx>
++#include <osl/process.h>
++#include <osl/thread.hxx>
+ 
+ #include "app.hxx"
+ #include "objsh.hxx"
+@@ -245,6 +252,126 @@
+ 
+ namespace css = ::com::sun::star;
+ 
++class StatusThread : public osl::Thread
++{
++    oslFileHandle m_handle;
++
++public:
++    int volatile progressTicks;
++
++    StatusThread(oslFileHandle handle) :
++	osl::Thread(), m_handle(handle), progressTicks(0)
++	{	    
++	}
++
++
++    virtual void SAL_CALL run() {
++	sal_uInt64 nRead;
++	char buf[1024];
++	for(;;) {
++	    oslFileError err=osl_readFile(m_handle, buf, sizeof(buf)-1, &nRead);
++	    if (err!=osl_File_E_None || nRead<=0) {
++		break;
++	    }
++	    buf[nRead]=0;
++	    progressTicks++;
++	}
++    }
++    
++};
++
++static sal_Bool invokeExternalApp(String aAppName, ::rtl::OUString sourceParam, ::rtl::OUString targetParam, uno::Reference< ::com::sun::star::task::XStatusIndicator > xStatusIndicator)
++{
++		static const char EXPAND_WILDCARD_CONST[] ="vnd.sun.star.expand:";
++		static const char SOURCE_WILDCARD_CONST[]="%source%";
++		static const char TARGET_WILDCARD_CONST[]="%target%";
++		// get macro expansion
++		uno::Reference< XMultiServiceFactory> xMS(::comphelper::getProcessServiceFactory(), UNO_QUERY);
++		uno::Reference< beans::XPropertySet >  xProps(xMS, UNO_QUERY);
++		uno::Reference< XComponentContext > xContext(xProps->getPropertyValue(rtl::OUString::createFromAscii("DefaultContext")), UNO_QUERY);
++		uno::Reference< util::XMacroExpander > xExpander(xContext->getValueByName(::rtl::OUString::createFromAscii("/singletons/com.sun.star.util.theMacroExpander")), UNO_QUERY);
++
++		// parse preprocessing arguments
++		int c=aAppName.GetQuotedTokenCount('\"',',');
++		if (c<1) return sal_False;
++		rtl_uString **args=new rtl_uString*[c];
++		for(int i=0;i<c;i++) {
++			String aArg=aAppName.GetQuotedToken(i,'\"',',');
++			if (aArg.EqualsIgnoreCaseAscii(EXPAND_WILDCARD_CONST, 0, strlen(EXPAND_WILDCARD_CONST))) {
++				rtl::OUString argStr(aArg.GetBuffer()+strlen(EXPAND_WILDCARD_CONST));
++				aArg=xExpander->expandMacros(argStr);
++			} else if (aArg.EqualsIgnoreCaseAscii(SOURCE_WILDCARD_CONST, 0, strlen(SOURCE_WILDCARD_CONST))) {
++				aArg=sourceParam;
++			} else if (aArg.EqualsIgnoreCaseAscii(TARGET_WILDCARD_CONST, 0, strlen(TARGET_WILDCARD_CONST))) {
++				aArg=targetParam;
++			}
++			args[i]=rtl::OUString(aArg).pData;
++			rtl_uString_acquire(args[i]);
++		}
++
++		sal_Bool bOk=sal_False;
++
++#ifndef NDEBUG
++		for (int p=0;p<c;p++) {
++		    rtl::OString aOString = ::rtl::OUStringToOString (args[p], RTL_TEXTENCODING_UTF8);
++		    printf("args[%i]=\"%s\"\n", p, aOString.getStr());
++		}
++#endif
++		// invoke processing step
++		oslProcess pProcess=NULL;
++		oslFileHandle handle=NULL;
++		oslProcessError error=osl_executeProcess_WithRedirectedIO(
++			args[0],
++			args+1,
++			c-1,
++			/*osl_Process_NORMAL*/ osl_Process_HIDDEN,
++			0,
++			NULL,
++			NULL,
++			0,
++			&pProcess,
++			NULL,
++			&handle,
++			NULL
++			);	
++
++		if (error==osl_Process_E_None) {
++		    static const int MAXBARTICKS=1000;
++		        StatusThread statusThread(handle);
++			statusThread.create();
++			if (xStatusIndicator.is()) {
++			    xStatusIndicator->start(::rtl::OUString::createFromAscii("waiting for external application..."), MAXBARTICKS);
++			}
++			do {
++			    TimeValue wait = {1, 0};
++			    error=osl_joinProcessWithTimeout( pProcess, &wait);
++			    if (xStatusIndicator.is()) {
++				xStatusIndicator->setValue(statusThread.progressTicks%MAXBARTICKS);
++			    }
++			} while (error==osl_Process_E_TimedOut);
++			if (xStatusIndicator.is()) {
++			    xStatusIndicator->end();
++			}
++			if (error==osl_Process_E_None) {
++				oslProcessInfo aProcessInfo;
++				aProcessInfo.Size = sizeof(aProcessInfo);
++				error = osl_getProcessInfo( pProcess, osl_Process_EXITCODE, &aProcessInfo );
++				if (error==osl_Process_E_None && aProcessInfo.Code == 0) {
++					bOk=sal_True;
++				}
++			}
++			statusThread.join();
++		}
++		osl_freeProcessHandle(pProcess);
++
++		for(int i=0;i<c;i++) {
++			rtl_uString_release(args[i]);
++		}
++		delete[] args;
++		return bOk;
++}
++
++
+ //=========================================================================
+ void impl_addToModelCollection(const css::uno::Reference< css::frame::XModel >& xModel)
+ {
+@@ -832,7 +959,47 @@
+         	{
+             	pImp->nLoadedFlags = 0;
+ 				pImp->bModelInitialized = sal_False;
+-            	bOk = xStorage.is() && LoadOwnFormat( *pMed );
++				String aUserData=pFilter->GetUserData();
++				// check whether a prepocessing step is requested in the configuration
++				static const char PREPROCESS_CONST[]="Preprocess=<";
++				int pos=aUserData.Search(::rtl::OUString::createFromAscii(PREPROCESS_CONST).getStr(), 0);
++				int end=aUserData.Search( '>', pos+strlen(PREPROCESS_CONST));
++				if (pos!=STRING_NOTFOUND && end!=STRING_NOTFOUND) {
++					String aAppName(aUserData, pos+strlen(PREPROCESS_CONST), end-(pos+strlen(PREPROCESS_CONST)));
++
++					// setup status bar
++					SfxItemSet *pSet = pMed->GetItemSet();
++					const SfxUnoAnyItem *pItem=NULL;
++					SfxItemState ret=pSet->GetItemState( SID_PROGRESS_STATUSBAR_CONTROL, TRUE, (const SfxPoolItem**)&pItem);
++					uno::Reference< ::com::sun::star::task::XStatusIndicator > xStatusIndicator;
++					if (ret==SFX_ITEM_SET && pItem!=NULL)
++					{
++						pItem->GetValue() >>= xStatusIndicator;
++					}
++					// create a copy
++					SfxMedium myMed(*pMed, sal_False);
++					::utl::TempFile aTempFile;
++					myMed.SetName(aTempFile.GetURL(), sal_True);
++					myMed.SetPhysicalName_Impl(aTempFile.GetFileName());
++					myMed.ResetError();
++					myMed.CloseStorage();
++					myMed.CloseInStream();
++					myMed.SetTemporary(sal_True);
++
++					bOk = invokeExternalApp(aAppName, ::rtl::OUString(pMed->GetPhysicalName()), ::rtl::OUString(myMed.GetPhysicalName()), xStatusIndicator);
++
++					// load from copy
++					if (bOk) {
++						bOk = xStorage.is() && LoadOwnFormat( myMed );
++
++					} else {
++						// We process only errors from invokeExternalApp at this point
++						// The errors from the above LoadOwnFormat are processed later
++						SetError( ERRCODE_IO_CANTREAD );
++					}
++				} else {
++            		bOk = xStorage.is() && LoadOwnFormat( *pMed );
++				}
+             	if ( bOk )
+             	{
+ 					SfxDocumentInfo& rDocInfo = GetDocInfo();
+@@ -1212,6 +1379,7 @@
+ 
+ }
+ 
++
+ //-------------------------------------------------------------------------
+ 
+ sal_Bool SfxObjectShell::SaveTo_Impl
+@@ -1650,10 +1818,10 @@
+         // transfer data to its destinated location
+ 		// the medium commits the storage or the stream it is based on
+         RegisterTransfer( rMedium );
+-        bOk = rMedium.Commit();
+ 
+         if ( bOk && bScriptSignatureIsCopied )
+         {
++	                bOk = rMedium.Commit();
+ 			// if the script signature was copied it should be checked now
+ 			// usually it should be ok, so no additional actions will be done
+ 			// but if for any reasong ( f.e. binshell change ) it is broken it should be removed here
+@@ -1688,7 +1856,6 @@
+ 							if ( xTransact.is() )
+ 								xTransact->commit();
+ 
+-        					bOk = rMedium.Commit();
+ 						}
+ 					}
+ 				}
+@@ -1699,6 +1866,59 @@
+ 			}
+ 		}
+ 
++	uno::Reference< embed::XStorage > xNewTmpStorage;
++	if (bOk) {
++		String aUserData=pFilter->GetUserData();
++		// check whether a postprocessing step is requested in the configuration
++		static const char POSTPROCESS_CONST[]="Postprocess=<";
++		int pos=aUserData.Search(::rtl::OUString::createFromAscii(POSTPROCESS_CONST).getStr(), 0);
++		int end=aUserData.Search( '>', pos+strlen(POSTPROCESS_CONST));
++		if (pos!=STRING_NOTFOUND && end!=STRING_NOTFOUND) {
++			String aAppName(aUserData, pos+strlen(POSTPROCESS_CONST), end-(pos+strlen(POSTPROCESS_CONST)));
++
++			// setup status bar
++			SfxItemSet *pSet = rMedium.GetItemSet();
++			const SfxUnoAnyItem *pItem=NULL;
++			SfxItemState ret=pSet->GetItemState( SID_PROGRESS_STATUSBAR_CONTROL, TRUE, (const SfxPoolItem**)&pItem);
++			uno::Reference< ::com::sun::star::task::XStatusIndicator > xStatusIndicator;
++			if (ret==SFX_ITEM_SET && pItem!=NULL)
++			{
++				pItem->GetValue() >>= xStatusIndicator;
++			}
++			
++			// create copy
++			::rtl::OUString aTmpVersionURL = CreateTempCopyOfStorage_Impl( rMedium.GetStorage() );
++			rMedium.CloseAndRelease();
++
++			rtl::OUString aSourceFile;
++			osl::FileBase::getSystemPathFromFileURL(aTmpVersionURL, aSourceFile);
++			String aTargetFile(rMedium.GetPhysicalName());
++
++			// remove the current target file after it was copied
++			// the postprocess might crash and the unprocessed file would confuse users
++			String aTargetFileURL;
++			::utl::LocalFileHelper::ConvertPhysicalNameToURL( aTargetFile, aTargetFileURL );
++			osl_removeFile(::rtl::OUString(aTargetFileURL).pData);
++
++			bOk=invokeExternalApp(aAppName, aSourceFile, aTargetFile, xStatusIndicator);
++
++			if (bOk) {
++			    // create a new tmp storage
++			    xNewTmpStorage=::comphelper::OStorageHelper::GetStorageFromURL( aTmpVersionURL, embed::ElementModes::READWRITE );
++			    // it does not make sense to reopen the file if it was not saved correctly
++			    rMedium.ReOpen();
++			}
++		}
++	}
++
++	if (bOk) {
++	    bOk = rMedium.Commit();
++	}
++
++	if (bOk && xNewTmpStorage.is()) {
++	    rMedium.SetStorage_Impl(xNewTmpStorage);
++	}
++
+         if ( bOk )
+ 		{
+             // if the target medium is an alien format and the "old" medium was an own format and the "old" medium
+@@ -1729,7 +1949,7 @@
+ 			if ( bNeedsDisconnectionOnFail )
+ 				ConnectTmpStorage_Impl( pImp->m_xDocStorage, NULL );
+ 		}
+-	}
++    }
+ 
+     // unlock user interface
+     Lock_Impl( this, sal_False );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extras_configure.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extras_configure.diff
@@ -0,0 +1,99 @@
+--- config_office/configure.in.org	2007-11-17 16:00:31.000000000 +0100
++++ config_office/configure.in	2007-12-24 13:26:16.000000000 +0100
+@@ -681,6 +681,26 @@
+ 			                 (choices are oo, system, tcmalloc)
+ ],,)
+ 
++AC_ARG_WITH(extra-gallery,
++[  --with-extra-gallery    Add extra gallery content of OxygenOffice Professional.
++],,)
++
++AC_ARG_WITH(extra-template,
++[  --with-extra-template   Add extra temaplte content of OxygenOffice Professional.
++],,)
++
++AC_ARG_WITH(extra-sample,
++[  --with-extra-sample     Add extra sample content of OxygenOffice Professional.
++],,)
++
++AC_ARG_WITH(extra-font,
++[  --with-extra-font       Add extra font content of OxygenOffice Professional.
++],,)
++
++AC_ARG_WITH(extra-accessory,
++[  --with-extra-accessory       Add extra accessory content of OxygenOffice Professional.
++],,)
++
+ BUILD_TYPE="OOo EXT"
+ 
+ dnl ===================================================================
+@@ -5706,6 +5726,69 @@
+ AC_SUBST(ENABLE_STATIC_GTK)
+ 
+ dnl ===================================================================
++dnl Test whether to include extra gallery, template, sample, font
++dnl ===================================================================
++AC_MSG_CHECKING([whether to include extra gallery])
++if test "$with_extra_gallery" = "yes" ; then
++  AC_MSG_RESULT([yes])
++  WITH_EXTRA_GALLERY=YES
++  BUILD_TYPE="$BUILD_TYPE EXTRA_GALLERY"
++else
++  AC_MSG_RESULT([no])
++  WITH_EXTRA_GALLERY=NO
++  SCPDEFS="$SCPDEFS -DWITHOUT_EXTRA_GALLERY"
++fi
++AC_SUBST(WITH_EXTRA_GALLERY)
++
++AC_MSG_CHECKING([whether to include extra template])
++if test "$with_extra_template" = "yes" ; then
++  AC_MSG_RESULT([yes])
++  WITH_EXTRA_TEMPLATE=YES
++  BUILD_TYPE="$BUILD_TYPE EXTRA_TEMPLATE"
++else
++  AC_MSG_RESULT([no])
++  WITH_EXTRA_TEMPLATE=NO
++  SCPDEFS="$SCPDEFS -DWITHOUT_EXTRA_TEMPLATE"
++fi
++AC_SUBST(WITH_EXTRA_TEMPLATE)
++
++AC_MSG_CHECKING([whether to include extra sample])
++if test "$with_extra_sample" = "yes" ; then
++  AC_MSG_RESULT([yes])
++  WITH_EXTRA_SAMPLE=YES
++  BUILD_TYPE="$BUILD_TYPE EXTRA_SAMPLE"
++else
++  AC_MSG_RESULT([no])
++  WITH_EXTRA_SAMPLE=NO
++  SCPDEFS="$SCPDEFS -DWITHOUT_EXTRA_SAMPLE"
++fi
++AC_SUBST(WITH_EXTRA_SAMPLE)
++
++AC_MSG_CHECKING([whether to include extra font])
++if test "$with_extra_font" = "yes" ; then
++  AC_MSG_RESULT([yes])
++  WITH_EXTRA_FONT=YES
++  BUILD_TYPE="$BUILD_TYPE EXTRA_FONT"
++else
++  AC_MSG_RESULT([no])
++  WITH_EXTRA_FONT=NO
++  SCPDEFS="$SCPDEFS -DWITHOUT_EXTRA_FONT"
++fi
++AC_SUBST(WITH_EXTRA_FONT)
++
++AC_MSG_CHECKING([whether to include extra accessory])
++if test "$with_extra_accessory" = "yes" ; then
++  AC_MSG_RESULT([yes])
++  WITH_EXTRA_ACCESSORY=YES
++  BUILD_TYPE="$BUILD_TYPE EXTRA_ACCESSORY"
++else
++  AC_MSG_RESULT([no])
++  WITH_EXTRA_ACCESSORY=NO
++  SCPDEFS="$SCPDEFS -DWITHOUT_EXTRA_ACCESSORY"
++fi
++AC_SUBST(WITH_EXTRA_ACCESSORY)
++
++dnl ===================================================================
+ dnl Setting up the environment.
+ dnl ===================================================================
+ echo "********************************************************************"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-xinerama-64bit-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-xinerama-64bit-fix.diff
@@ -0,0 +1,21 @@
+diff -rup vcl/unx/source/app-orig/saldisp.cxx vcl/unx/source/app/saldisp.cxx
+--- vcl/unx/source/app-orig/saldisp.cxx	2008-04-15 11:49:38.000000000 +0200
++++ vcl/unx/source/app/saldisp.cxx	2008-04-15 11:50:44.000000000 +0200
+@@ -70,7 +70,7 @@
+ 
+ #ifdef USE_XINERAMA
+ #ifdef USE_XINERAMA_XORG
+-#if defined(X86) || defined(MACOSX)
++#if defined(X86) || defined(X86_64) || defined(MACOSX)
+ #include <X11/extensions/Xinerama.h>
+ #endif
+ #elif defined USE_XINERAMA_XSUN
+@@ -2723,7 +2723,7 @@ void SalDisplay::InitXinerama()
+         }
+     }
+ #elif defined(USE_XINERAMA_XORG)
+-#if defined( X86 ) || defined( MACOSX )
++#if defined( X86 ) || defined( X86_64 ) || defined( MACOSX )
+ if( XineramaIsActive( pDisp_ ) )
+ {
+     int nFramebuffers = 1;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix-boost-gcc33.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix-boost-gcc33.diff
@@ -0,0 +1,41 @@
+Index: boost-1.30.2.patch
+===================================================================
+RCS file: /cvs/external/boost/boost-1.30.2.patch,v
+retrieving revision 1.5
+diff -u -r1.5 boost-1.30.2.patch
+--- boost/boost-1.30.2.patch	12 Oct 2006 11:16:36 -0000	1.5
++++ boost/boost-1.30.2.patch	9 Jan 2007 16:56:14 -0000
+@@ -645,3 +645,33 @@
+ + #endif
+ + 
+   #endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
++--- misc/build/boost-1.30.2/boost/numeric/ublas/matrix_expression.hpp	2003-02-17 23:32:46.000000000 -0800
+++++ misc/build/boost-1.30.2/boost/numeric/ublas/matrix_expression.hpp	2007-01-09 08:50:53.000000000 -0800
++@@ -4949,10 +4949,12 @@
++             return e_;
++         }
++ 
+++#if __GNUC__ > 3
++         BOOST_UBLAS_INLINE
++         operator value_type () const {
++             return functor_type () (e_);
++         }
+++#endif
++ 
++     private:
++         expression_closure_type e_;
++--- misc/build/boost-1.30.2/boost/numeric/ublas/vector_expression.hpp	2003-02-17 23:32:47.000000000 -0800
+++++ misc/build/boost-1.30.2/boost/numeric/ublas/vector_expression.hpp	2007-01-09 08:52:26.000000000 -0800
++@@ -1774,10 +1774,12 @@
++             return functor_type () (e1_.begin (), e1_.end (), e2_.begin (), e2_.end (), sparse_bidirectional_iterator_tag ());
++         }
++ 
+++#if __GNUC__ > 3
++         BOOST_UBLAS_INLINE
++         operator value_type () const {
++             return evaluate (iterator_category ());
++         }
+++#endif
++ 
++     private:
++         expression1_closure_type e1_;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/desktop-disable-startup-registration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/desktop-disable-startup-registration.diff
@@ -0,0 +1,14 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=desktop.vpj desktop.clean/source/app/app.cxx desktop/source/app/app.cxx
+--- desktop.clean/source/app/app.cxx	2008-05-16 15:26:26.000000000 -0400
++++ desktop/source/app/app.cxx	2008-05-16 15:26:38.000000000 -0400
+@@ -1752,8 +1752,10 @@ void Desktop::Main()
+                 }
+             }
+         }
++#if 0
+         else if ( RegistrationPage::hasReminderDateCome() )
+             RegistrationPage::executeSingleMode();
++#endif
+ 
+         RTL_LOGFILE_CONTEXT_TRACE( aLog, "} FirstStartWizard" );
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-local-link.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-local-link.diff
@@ -0,0 +1,145 @@
+Index: cppuhelper/source/shlib.cxx
+===================================================================
+RCS file: /cvs/udk/cppuhelper/source/shlib.cxx,v
+retrieving revision 1.22
+diff -u -p -u -r1.22 shlib.cxx
+--- cppuhelper/source/shlib.cxx	8 Sep 2005 09:29:11 -0000	1.22
++++ cppuhelper/source/shlib.cxx	3 Apr 2006 09:50:34 -0000
+@@ -272,6 +272,117 @@ static OUString makeComponentPath(
+     return out;
+ }
+ 
++#ifdef LINUX
++
++// This is a temporary hack until we can add this per
++// shlib annotation to services.rdb.
++
++static bool
++lcl_isWellKnownInternal(const OString &rLibName)
++{
++	// These are loaded at startup ...
++	static const char *pLookup[] = {
++		"behelper.uno.so",
++		"configmgr2.uno.so",
++		"fsstorage.uno.so",
++		"gconfbe1.uno.so",
++		"i18npool.uno.so",
++		"introspection.uno.so",
++		"libanimcore.so",
++		"libevtatt.so",
++		"libfileacc.so",
++		"libgcc3_uno.so",
++		"liblocaledata_en.so",
++		"liblocaledata_es.so",
++		"liblocaledata_euro.so",
++		"liblocaledata_others.so",
++		"libmcnttype.so",
++		"libpackage2.so",
++		"libsrtrs1.so",
++		"libucb1.so",
++		"libucpfile1.so",
++		"libxstor.so",
++		"localebe1.uno.so",
++		"implreg.uno.so",
++		"nestedreg.uno.so",
++		"regtypeprov.uno.so",
++		"security.uno.so",
++		"servicemgr.uno.so",
++		"shlibloader.uno.so",
++		"simplereg.uno.so",
++		"typemgr.uno.so",
++		"reflection.uno.so",
++		"sax.uno.so",
++		"streams.uno.so",
++		"sysmgr1.uno.so",
++		"typeconverter.uno.so",
++		"ucpgvfs1.uno.so",
++		"uriproc.uno.so",
++		NULL
++	};
++
++	// Perhaps do some cunning binary search ?
++	for (int i = 0; pLookup[i] != NULL; i++)
++		if (rLibName.match (pLookup[i]))
++			return true;
++
++	return false;
++}
++
++// bootstrap.cxx
++OUString const & get_this_libpath();
++
++// Amusing hack to get 40% win on linking / startup speedup:
++// Rational: we load all of OO.o's exception symbols in a single, global
++// shlib once first of all (RTLD_GLOBAL). This allows us to load all
++// subsequent components RTLD_LOCAL, their vague linkage symbols will
++// resolve in the global scope.
++static bool
++lcl_isInternalLibrary(OUString const & rLibName, OUString const & rPath)
++{
++	if (getenv ("OOO_DISABLE_INTERNAL"))
++		return false;
++
++	bool bIsInternal = false;
++
++	// Is this an internal library ?
++	if (rPath.getLength() > 0 && rPath != get_this_libpath())
++	{
++	//	fprintf (stderr, "Lib path '%s' - not internal!\n",
++	//			 (const sal_Char *)rtl::OUStringToOString(rPath, RTL_TEXTENCODING_ASCII_US));
++		return false;
++	}
++
++	sal_Int32 nUpd = SUPD;
++	OUString aIntSuffix = OUString::valueOf(nUpd) + OUSTR("li.so");
++	if (rLibName.match (aIntSuffix))
++		bIsInternal = true;
++
++	if (!bIsInternal)
++		bIsInternal = lcl_isWellKnownInternal(
++			OUStringToOString(rLibName, RTL_TEXTENCODING_UTF8));
++
++	// If internal - load the exception type library RTLD_GLOBAL first
++	static bool bHaveLoadedExcepts = false;
++	if (bIsInternal && !bHaveLoadedExcepts)
++	{
++		rtl::OUString aExceptName = rtl::OUString::createFromAscii("libexlink") + aIntSuffix;
++		oslModule nExceptLib = osl_loadModule(aExceptName.pData, 
++											  SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL);
++		if (nExceptLib != NULL)
++			bHaveLoadedExcepts = true;
++		else
++			bIsInternal = false;
++	}
++
++//	fprintf (stderr, "Lib name '%s' %d %d\n",
++//		 (const sal_Char *)rtl::OUStringToOString(rLibName, RTL_TEXTENCODING_ASCII_US),
++//		 bIsInternal, bHaveLoadedExcepts);
++
++	return bIsInternal;
++}
++#endif
++
+ //==============================================================================
+ Reference< XInterface > SAL_CALL loadSharedLibComponentFactory(
+     OUString const & rLibName, OUString const & rPath,
+@@ -288,9 +396,17 @@ Reference< XInterface > SAL_CALL loadSha
+             aModulePath,
+             Reference< XInterface >() );
+     }
++
++	sal_Int32 nFlags = SAL_LOADMODULE_LAZY;
++#ifdef LINUX
++	if (!lcl_isInternalLibrary (rLibName, rPath))
++		nFlags |= SAL_LOADMODULE_GLOBAL;
++//  else - faster local only binding
++#else
++	nFlags |= SAL_LOADMODULE_GLOBAL;
++#endif
+     
+-    oslModule lib = osl_loadModule(
+-        aModulePath.pData, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL );
++    oslModule lib = osl_loadModule(aModulePath.pData, nFlags);
+     if (! lib)
+     {
+         throw loader::CannotActivateFactoryException(
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/warning-uninitialized-variables-tools-2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/warning-uninitialized-variables-tools-2.diff
@@ -0,0 +1,24 @@
+--- tools/source/inet/inetmime.cxx.old	2005-09-09 16:23:08.000000000 +0200
++++ tools/source/inet/inetmime.cxx	2005-11-28 20:06:21.000000000 +0100
+@@ -3051,7 +3051,9 @@
+ 	ByteString sDecoded;
+ 	while (p != pEnd)
+ 	{
+-		sal_uInt32 nCharacter;
++		// the value is initialized just to avoid warning: ‘nCharacter’ is used uninitialized in this function
++		// there seems to be a bug in gcc-4.1 because this value is used only if it is initialized
++		sal_uInt32 nCharacter=0;
+ 		if (translateUTF8Char(p, pEnd, eEncoding, nCharacter))
+ 			sDecoded += sal_Char(nCharacter);
+ 		else
+@@ -3478,7 +3480,9 @@
+ 			{
+ 				const sal_Char * pUTF8Begin = p - 1;
+ 				const sal_Char * pUTF8End = pUTF8Begin;
+-				sal_uInt32 nCharacter;
++				// the value is initialized just to avoid warning: ‘nCharacter’ is used uninitialized in this function
++				// there seems to be a bug in gcc-4.1 because this value is used only if it is initialized
++				sal_uInt32 nCharacter=0;
+ 				if (translateUTF8Char(pUTF8End, pEnd, RTL_TEXTENCODING_UCS4,
+ 									  nCharacter))
+ 				{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-partial-kio.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-partial-kio.diff
@@ -0,0 +1,189 @@
+--- fpicker/source/unx/kde/kdefilepicker.hxx	2005-03-03 15:38:55.741091637 +0100
++++ fpicker/source/unx/kde/kdefilepicker.hxx	2005-03-04 16:23:10.215148048 +0100
+@@ -96,6 +96,7 @@ protected:
+      *  (custom list boxes are under this check box, which looks ugly).
+      */
+     bool                        m_bIsSave;
++    bool                        m_bIsExecuting;
+ 
+     bool                        m_bCanNotifySelection;
+ 
+@@ -125,6 +126,12 @@ protected:
+     void                        setIsSave( bool bIsSave ) { m_bIsSave = bIsSave; }
+     bool                        isSave( void ) const { return m_bIsSave; }
+ 
++    void                        setIsExecuting( bool bIsExecuting ) { m_bIsExecuting = bIsExecuting; }
++    bool                        isExecuting( void ) const { return m_bIsExecuting; }
++
++    bool                        isSupportedProtocol( const QString &rProtocol ) const;
++    QString                     localCopy( const QString &rFileName ) const;
++
+     void                        setCanNotifySelection( bool bCanNotifySelection ) { m_bCanNotifySelection = bCanNotifySelection; }
+     bool                        canNotifySelection( void ) const { return m_bCanNotifySelection; }
+ 
+--- fpicker/source/unx/kde/kdefilepicker.cxx	2005-03-03 15:38:50.737956764 +0100
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2005-03-04 16:39:33.815625995 +0100
+@@ -79,8 +79,10 @@
+ #include <kdiroperator.h>
+ #include <kfiledialog.h>
+ #include <kfilefiltercombo.h>
++#include <kio/netaccess.h>
+ #include <klocale.h>
+ #include <kmessagebox.h>
++#include <ktempfile.h>
+ 
+ #include <algorithm>
+ #include <iostream>
+@@ -98,6 +100,7 @@ FileDialog::FileDialog( const QString &s
+       m_pPushButtons( new QVBox( m_pCombosAndButtons ) ),
+       m_pCheckBoxes( new QGrid( 2, m_pCustomWidget ) ),
+       m_bIsSave( false ),
++      m_bIsExecuting( false ),
+       m_bCanNotifySelection( true )
+ {
+     connect( this, SIGNAL( fileHighlighted( const QString & ) ),
+@@ -257,10 +260,16 @@ void FileDialog::customEvent( QCustomEve
+                         for ( KURL::List::const_iterator it = qList.begin(); it != qList.end(); ++it )
+                         {
+                             qString.append( " " );
+-                            QString qUrlStr = (*it).url();
++                            QString qUrlStr = addExtension( (*it).url() );
++
++                            if ( !isExecuting() && !isSupportedProtocol( KURL( qUrlStr ).protocol() ) )
++                                qUrlStr = localCopy( qUrlStr );
++
+                             if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
+                                 qUrlStr.replace( "file:/", "file:///" );
+-                            appendEscaped( qString, addExtension( qUrlStr ) );
++
++                            if ( !qUrlStr.isEmpty() )
++                                appendEscaped( qString, qUrlStr );
+                         }
+                     }
+                     else
+@@ -270,10 +279,16 @@ void FileDialog::customEvent( QCustomEve
+                         for ( KFileItemListIterator it( *pItems ); it.current(); ++it )
+                         {
+                             qString.append( " " );
+-                            QString qUrlStr = (*it)->url().url();
++                            QString qUrlStr = addExtension( (*it)->url().url() );
++
++                            if ( !isExecuting() && !isSupportedProtocol( KURL( qUrlStr ).protocol() ) )
++                                qUrlStr = localCopy( qUrlStr );
++
+                             if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
+                                 qUrlStr.replace( "file:/", "file:///" );
+-                            appendEscaped( qString, addExtension( qUrlStr ) );
++
++                            if ( !qUrlStr.isEmpty() )
++                                appendEscaped( qString, qUrlStr );
+                         }
+                     }
+ 
+@@ -322,18 +337,47 @@ void FileDialog::customEvent( QCustomEve
+                 {
+                     filterWidget->setEditable( false );
+                     QString qSelectedURL;
++                    setIsExecuting( true );
++                    bool bCanExit = false;
+                     do {
+                         setCanNotifySelection( true );
+                         exec();
++
+                         qSelectedURL = addExtension( selectedURL().url() );
+-                    } while ( isSave() &&
+-                              result() == QDialog::Accepted &&
+-                              ( qSelectedURL.startsWith( "file:" ) && QFile::exists( qSelectedURL.mid( 5 ) ) ) &&
+-                              KMessageBox::warningYesNo( 0,
+-                                  i18n( "A file named \"%1\" already exists. "
+-                                      "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
+-                                  i18n( "Overwrite File?" ),
+-                                  i18n( "Overwrite" ), KStdGuiItem::cancel() ) != KMessageBox::Yes );
++                        QString qProtocol( selectedURL().protocol() );
++
++                        if ( isSave() && result() == QDialog::Accepted )
++                        {
++                            if ( qSelectedURL.startsWith( "file:" ) )
++                            {
++                                bCanExit =
++                                    !QFile::exists( qSelectedURL.mid( 5 ) ) ||
++                                    ( KMessageBox::warningYesNo( 0,
++                                                                 i18n( "A file named \"%1\" already exists. "
++                                                                     "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
++                                                                 i18n( "Overwrite File?" ),
++                                                                 i18n( "Overwrite" ), KStdGuiItem::cancel() ) == KMessageBox::Yes );
++                            }
++                            else if ( !isSupportedProtocol( qProtocol ) )
++                            {
++                                KMessageBox::sorry( 0,
++                                        i18n( "Saving using protocol \"%1\" is not supported." ).arg( qProtocol ) );
++                                bCanExit = false;
++                            }
++                            else
++                                bCanExit = true;
++                        }
++                        else if ( !isSave() && result() == QDialog::Accepted && !isSupportedProtocol( qProtocol ) )
++                        {
++                            KMessageBox::information( 0,
++                                    i18n( "Protocol \"%1\" is supported only partially. "
++                                        "Local copy of the file will be created." ).arg( qProtocol ) );
++                            bCanExit = true;
++                        }
++                        else
++                            bCanExit = true;
++                    } while ( !bCanExit );
++                    setIsExecuting( false );
+ 
+                     if ( result() == QDialog::Accepted )
+                         sendCommand( "accept" );
+@@ -563,6 +607,50 @@ QString FileDialog::addExtension( const 
+         return rFileName + qExtension;
+ }
+ 
++bool FileDialog::isSupportedProtocol( const QString &rProtocol ) const
++{
++    // TODO Get this information directly from OOo
++    const char * pOOoProtocols[] = { "", "smb", "ftp", "http", "file", "mailto",
++        "vnd.sun.star.webdav", "news", "private", "vnd.sun.star.help",
++        "https", "slot", "macro", "javascript", "imap", "pop3", "data",
++        "cid", "out", "vnd.sun.star.wfs", "vnd.sun.star.hier", "vim",
++        ".uno", ".component", "vnd.sun.star.pkg", "ldap", "db",
++        "vnd.sun.star.cmd", "vnd.sun.star.script", "vnd.sun.star.odma",
++        "telnet",
++        NULL };
++
++    for ( const char **pIndex = pOOoProtocols; *pIndex != NULL; ++pIndex )
++    {
++        if ( rProtocol == *pIndex )
++            return true;
++    }
++
++    // TODO gnome-vfs bits here
++
++    return false;
++}
++
++QString FileDialog::localCopy( const QString &rFileName ) const
++{
++    int nExtensionPos = rFileName.findRev( '/' );
++    if ( nExtensionPos >= 0 )
++        nExtensionPos = rFileName.find( '.', nExtensionPos );
++    else
++        nExtensionPos = rFileName.find( '.' );
++
++    KTempFile qTempFile( QString::null, ( nExtensionPos < 0 )? QString(): rFileName.mid( nExtensionPos ) );
++    KURL qDestURL;
++    qDestURL.setPath( qTempFile.name() );
++
++    if ( !KIO::NetAccess::file_copy( rFileName, qDestURL, 0600, true, false, NULL ) )
++    {
++        KMessageBox::error( 0, KIO::NetAccess::lastErrorString() );
++        return QString::null;
++    }
++
++    return qDestURL.url();
++}
++
+ void FileDialog::fileHighlightedCommand( const QString & )
+ {
+     if ( canNotifySelection() )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/accept-underscores-in-hostnames.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/accept-underscores-in-hostnames.diff
@@ -0,0 +1,102 @@
+--- tools/source/fsys/urlobj.cxx
++++ tools/source/fsys/urlobj.cxx
+@@ -2365,7 +2365,7 @@ bool INetURLObject::parseHost(
+ 					aTheCanonic.append(sal_Unicode('['));
+ 					eState = STATE_IP6;
+ 				}
+-				else if (INetMIME::isAlpha(*p))
++				else if (INetMIME::isAlpha(*p) || *p == '_')
+ 					eState = STATE_TOPLABEL;
+ 				else if (INetMIME::isDigit(*p))
+ 				{
+@@ -2383,19 +2383,19 @@ bool INetURLObject::parseHost(
+ 					eState = STATE_LABEL_DOT;
+ 				else if (*p == '-')
+ 					eState = STATE_LABEL_HYPHEN;
+-				else if (!INetMIME::isAlphanumeric(*p))
++				else if (!INetMIME::isAlphanumeric(*p) && *p != '_')
+ 					goto done;
+ 				break;
+ 
+ 			case STATE_LABEL_HYPHEN:
+-				if (INetMIME::isAlphanumeric(*p))
++				if (INetMIME::isAlphanumeric(*p) || *p == '_')
+ 					eState = STATE_LABEL;
+ 				else if (*p != '-')
+ 					goto done;
+ 				break;
+ 
+ 			case STATE_LABEL_DOT:
+-				if (INetMIME::isAlpha(*p))
++				if (INetMIME::isAlpha(*p) || *p == '_')
+ 					eState = STATE_TOPLABEL;
+ 				else if (INetMIME::isDigit(*p))
+ 					eState = STATE_LABEL;
+@@ -2408,19 +2408,19 @@ bool INetURLObject::parseHost(
+ 					eState = STATE_TOPLABEL_DOT;
+ 				else if (*p == '-')
+ 					eState = STATE_TOPLABEL_HYPHEN;
+-				else if (!INetMIME::isAlphanumeric(*p))
++				else if (!INetMIME::isAlphanumeric(*p) && *p != '_')
+ 					goto done;
+ 				break;
+ 
+ 			case STATE_TOPLABEL_HYPHEN:
+-				if (INetMIME::isAlphanumeric(*p))
++				if (INetMIME::isAlphanumeric(*p) || *p == '_')
+ 					eState = STATE_TOPLABEL;
+ 				else if (*p != '-')
+ 					goto done;
+ 				break;
+ 
+ 			case STATE_TOPLABEL_DOT:
+-				if (INetMIME::isAlpha(*p))
++				if (INetMIME::isAlpha(*p) || *p == '_')
+ 					eState = STATE_TOPLABEL;
+ 				else if (INetMIME::isDigit(*p))
+ 					eState = STATE_LABEL;
+@@ -2442,7 +2442,7 @@ bool INetURLObject::parseHost(
+ 						eState = STATE_LABEL_DOT;
+ 				else if (*p == '-')
+ 					eState = STATE_LABEL_HYPHEN;
+-				else if (INetMIME::isAlpha(*p))
++				else if (INetMIME::isAlpha(*p) || *p == '_')
+ 					eState = STATE_LABEL;
+ 				else if (INetMIME::isDigit(*p))
+ 					if (nDigits < 3)
+@@ -2457,7 +2457,7 @@ bool INetURLObject::parseHost(
+ 				break;
+ 
+ 			case STATE_IP4_DOT:
+-				if (INetMIME::isAlpha(*p))
++				if (INetMIME::isAlpha(*p) || *p == '_')
+ 					eState = STATE_TOPLABEL;
+ 				else if (INetMIME::isDigit(*p))
+ 				{
+@@ -5311,7 +5311,7 @@
+ 		switch (eState)
+ 		{
+ 			case STATE_DOT:
+-				if (p != pEnd && INetMIME::isAlphanumeric(*p))
++				if (p != pEnd && (INetMIME::isAlphanumeric(*p) || *p == '_'))
+ 				{
+ 					++nLabels;
+ 					eState = STATE_LABEL;
+@@ -5324,7 +5324,7 @@
+ 
+ 			case STATE_LABEL:
+ 				if (p != pEnd)
+-					if (INetMIME::isAlphanumeric(*p))
++					if (INetMIME::isAlphanumeric(*p) || *p == '_')
+ 						break;
+ 					else if (*p == '.')
+ 					{
+@@ -5342,7 +5342,7 @@
+ 
+ 			case STATE_HYPHEN:
+ 				if (p != pEnd)
+-					if (INetMIME::isAlphanumeric(*p))
++					if (INetMIME::isAlphanumeric(*p) || *p == '_')
+ 					{
+ 						eState = STATE_LABEL;
+ 						break;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-gnome-vfs-lock-fix-xls.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-gnome-vfs-lock-fix-xls.diff
@@ -0,0 +1,40 @@
+--- sfx2/inc/sfx2/docfile.hxx	2007-04-10 15:12:47.000000000 +0200
++++ sfx2/inc/sfx2/docfile.hxx	2007-04-23 16:44:24.000000000 +0200
+@@ -229,7 +229,7 @@ public:
+ 	const INetURLObject& GetURLObject() const;
+ #endif
+     ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XContent > GetContent() const;
+-	const String&       GetPhysicalName() const;
++	const String&       GetPhysicalName( sal_Bool bForceCreateTempIfRemote = sal_True ) const;
+ 	void                SetTemporary( sal_Bool bTemp );
+     sal_Bool            IsTemporary() const;
+     sal_Bool            IsRemote();
+--- sfx2/source/doc/docfile.cxx	2007-04-10 15:12:47.000000000 +0200
++++ sfx2/source/doc/docfile.cxx	2007-04-23 16:44:36.000000000 +0200
+@@ -744,10 +744,13 @@ sal_Bool SfxMedium::CloseOutStream_Impl(
+ }
+ 
+ //------------------------------------------------------------------
+-const String& SfxMedium::GetPhysicalName() const
++const String& SfxMedium::GetPhysicalName( sal_Bool bForceCreateTempIfRemote ) const
+ {
+     if ( !aName.Len() && aLogicName.Len() )
+-        (( SfxMedium*)this)->CreateFileStream();
++    {
++        if ( bForceCreateTempIfRemote || !SupportsActiveStreaming_Impl( aLogicName ) )
++            (( SfxMedium*)this)->CreateFileStream();
++    }
+ 
+     // return the name then
+     return aName;
+--- sc/source/ui/docshell/docsh.cxx	2007-04-23 16:31:41.000000000 +0200
++++ sc/source/ui/docshell/docsh.cxx	2007-04-23 16:52:34.000000000 +0200
+@@ -1010,7 +1010,7 @@ BOOL __EXPORT ScDocShell::ConvertFrom( S
+ 	//	Alle Filter brauchen die komplette Datei am Stueck (nicht asynchron),
+ 	//	darum vorher per CreateFileStream dafuer sorgen, dass die komplette
+ 	//	Datei uebertragen wird.
+-	rMedium.GetPhysicalName();	//! CreateFileStream direkt rufen, wenn verfuegbar
++	rMedium.GetPhysicalName( sal_False );	//! CreateFileStream direkt rufen, wenn verfuegbar
+ 
+     SFX_ITEMSET_ARG( rMedium.GetItemSet(), pUpdateDocItem, SfxUInt16Item, SID_UPDATEDOCMODE, sal_False);
+     nCanUpdate = pUpdateDocItem ? pUpdateDocItem->GetValue() : com::sun::star::document::UpdateDocMode::NO_UPDATE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-no-style-dialog.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-no-style-dialog.diff
@@ -0,0 +1,16 @@
+Index: sfx2/source/appl/appreg.cxx
+===================================================================
+RCS file: /cvs/framework/sfx2/source/appl/appreg.cxx,v
+retrieving revision 1.7
+diff -u -p -u -r1.7 appreg.cxx
+--- sfx2/source/appl/appreg.cxx	11 Oct 2002 15:14:20 -0000	1.7
++++ sfx2/source/appl/appreg.cxx	9 Oct 2003 13:51:03 -0000
+@@ -110,7 +110,7 @@ void SfxApplication::Registrations_Impl(
+ 	SfxRecordingFloatWrapper_Impl::RegisterChildWindow();
+ 	SfxNavigatorWrapper::RegisterChildWindow();
+ 	SfxPartChildWnd_Impl::RegisterChildWindow();
+-	SfxTemplateDialogWrapper::RegisterChildWindow(TRUE);
++	SfxTemplateDialogWrapper::RegisterChildWindow();
+ 
+ 	// Controller
+ 	SfxToolBoxControl::RegisterControl(SID_REPEAT);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/accessories_build.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/accessories_build.diff
@@ -0,0 +1,54 @@
+--- extras/prj/build.lst.eredeti	2006-12-01 15:23:25.000000000 +0100
++++ extras/prj/build.lst	2007-12-24 14:50:16.000000000 +0100
+@@ -13,6 +13,51 @@
+ er      extras\source\gallery\sounds                            nmake   -       all     er_gsnds NULL
+ er      extras\source\gallery\www-back                          nmake   -       all     er_gwbck NULL
+ er      extras\source\gallery\www-graf                          nmake   -       all     er_gwgrf NULL
++er      extras\source\gallery\accessories                       nmake   -       all     er_gacce NULL
++er      extras\source\gallery\accessories\Draws\People          nmake   -       all     er_gadpe NULL
++er      extras\source\gallery\accessories\Photos\Buildings      nmake   -       all     er_gapbu NULL
++er      extras\source\gallery\accessories\Photos\Celebration    nmake   -       all     er_gapce NULL
++er      extras\source\gallery\accessories\Photos\Cities         nmake   -       all     er_gapci NULL
++er      extras\source\gallery\accessories\Photos\Fauna          nmake   -       all     er_gapfa NULL
++er      extras\source\gallery\accessories\Photos\Flowers        nmake   -       all     er_gapfl NULL
++er      extras\source\gallery\accessories\Photos\FoodsandDrinks nmake   -       all     er_gapfo NULL
++er      extras\source\gallery\accessories\Photos\Humans         nmake   -       all     er_gaphu NULL
++er      extras\source\gallery\accessories\Photos\Landscapes     nmake   -       all     er_gapla NULL
++er      extras\source\gallery\accessories\Photos\Objects        nmake   -       all     er_gapob NULL
++er      extras\source\gallery\accessories\Photos\Plants         nmake   -       all     er_gappl NULL
++er      extras\source\gallery\accessories\Photos\Space          nmake   -       all     er_gapsp NULL
++er      extras\source\gallery\accessories\Photos\Statues        nmake   -       all     er_gapst NULL
++er      extras\source\gallery\accessories\Photos\Travel         nmake   -       all     er_gaptr NULL
++er      extras\source\premium\templates\layout\lang             nmake   -       all     er_prtela NULL
++er      extras\source\premium\templates\presnt\lang             nmake   -       all     er_prtepr NULL
++er      extras\source\premium\templates\educate\lang            nmake   -       all     er_prteed NULL
++er      extras\source\premium\templates\finance\lang            nmake   -       all     er_prtefi NULL
++er      extras\source\premium\templates\forms\lang              nmake   -       all     er_prtefo NULL
++er      extras\source\premium\templates\labels\lang             nmake   -       all     er_prtelb NULL
++er      extras\source\premium\templates\misc\lang               nmake   -       all     er_prtemi NULL
++er      extras\source\premium\templates\officorr\lang           nmake   -       all     er_prteoc NULL
++er      extras\source\premium\templates\offimisc\lang           nmake   -       all     er_prteom NULL
++er      extras\source\premium\templates\personal\lang           nmake   -       all     er_prtepe NULL
++er      extras\source\premium\templates\lang                    nmake   -       all     er_prtemp NULL
++er      extras\source\premium\samples\advertisement\lang        nmake   -       all     er_prsaad NULL
++er      extras\source\premium\samples\documentation\lang        nmake   -       all     er_prsedo NULL
++er      extras\source\premium\samples\lang                      nmake   -       all     er_prsamp NULL
++er      extras\source\premium\templates-nonfree\layout\lang             nmake   -       all     er_prtelanf NULL
++er      extras\source\premium\templates-nonfree\presnt\lang             nmake   -       all     er_prteprnf NULL
++er      extras\source\premium\templates-nonfree\educate\lang            nmake   -       all     er_prteednf NULL
++er      extras\source\premium\templates-nonfree\finance\lang            nmake   -       all     er_prtefinf NULL
++er      extras\source\premium\templates-nonfree\forms\lang              nmake   -       all     er_prtefonf NULL
++er      extras\source\premium\templates-nonfree\labels\lang             nmake   -       all     er_prtelbnf NULL
++er      extras\source\premium\templates-nonfree\misc\lang               nmake   -       all     er_prteminf NULL
++er      extras\source\premium\templates-nonfree\officorr\lang           nmake   -       all     er_prteocnf NULL
++er      extras\source\premium\templates-nonfree\offimisc\lang           nmake   -       all     er_prteomnf NULL
++er      extras\source\premium\templates-nonfree\personal\lang           nmake   -       all     er_prtepenf NULL
++er      extras\source\premium\templates-nonfree\lang                    nmake   -       all     er_prtempnf NULL
++er      extras\source\premium\samples-nonfree\advertisement\lang        nmake   -       all     er_prsaadnf NULL
++er      extras\source\premium\samples-nonfree\documentation\lang        nmake   -       all     er_prsedonf NULL
++er      extras\source\premium\samples-nonfree\lang                      nmake   -       all     er_prsampnf NULL
++er      extras\source\gallery\accessories\Elements\Bullets2          nmake   -       all     er_gaeb2 NULL
++er      extras\source\gallery\accessories-nonfree                       nmake   -       all     er_gaccenf NULL
+ er	extras\source\misc_config				nmake	-	all	er_mcnf NULL
+ er	extras\source\palettes\lang				nmake	-	all	er_pall NULL
+ er	extras\source\palettes					nmake	-	all	er_palet NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cjk-character-units-rulers-sync-with-pggrid-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cjk-character-units-rulers-sync-with-pggrid-fix.diff
@@ -0,0 +1,105 @@
+diff -uNr svtools/inc/ruler.hxx svtools/inc/ruler.hxx
+--- svtools/inc/ruler.hxx	2007-12-26 14:54:40.000000000 +0800
++++ svtools/inc/ruler.hxx	2007-12-26 15:01:40.000000000 +0800
+@@ -894,6 +894,8 @@
+ 
+     void                SetCharWidth( long nWidth ) { mnCharWidth = nWidth ; }
+     void                SetLineHeight( long nHeight ) { mnLineHeight = nHeight ; }
++
++    void                DrawTicks();
+ };
+ 
+ #endif  // _RULER_HXX
+diff -uNr svtools/source/control/ruler.cxx svtools/source/control/ruler.cxx
+--- svtools/source/control/ruler.cxx	2007-12-26 14:54:42.000000000 +0800
++++ svtools/source/control/ruler.cxx	2007-12-26 15:01:48.000000000 +0800
+@@ -492,14 +492,14 @@
+     long    nTick2 ;
+     if ( mnUnitIndex == RULER_UNIT_CHAR )
+     {
+-        nTick3 = mnCharWidth;
++        nTick3 = mnCharWidth*2;
+         nTickCount = mnCharWidth;
+         nTickUnit = mnCharWidth;
+         nTick2 = mnCharWidth;
+     }
+     else if ( mnUnitIndex == RULER_UNIT_LINE )
+     {
+-        nTick3 = mnLineHeight;
++        nTick3 = mnLineHeight*2;
+         nTickCount = mnLineHeight;
+         nTickUnit = mnLineHeight;
+         nTick2 = mnLineHeight;
+@@ -3235,3 +3235,12 @@
+ USHORT              Ruler::GetIndentCount() const { return mpData->nIndents; }
+ const RulerIndent*  Ruler::GetIndents() const { return mpData->pIndents; }
+ 
++/* ---------------------------------------------------
++ *
++ * ---------------------------------------------------*/
++void Ruler::DrawTicks()
++{
++    mbFormat = TRUE;
++    ImplDraw();
++}
++
+diff -uNr sw/source/ui/inc/pggrid.hxx sw/source/ui/inc/pggrid.hxx
+--- sw/source/ui/inc/pggrid.hxx	2007-12-26 14:54:15.000000000 +0800
++++ sw/source/ui/inc/pggrid.hxx	2007-12-26 15:00:30.000000000 +0800
+@@ -99,6 +99,8 @@
+     Size            m_aPageSize;
+     sal_Bool        m_bVertical;
+ 	sal_Bool		m_bSquaredMode;
++    sal_Bool        m_bHRulerChanged;
++    sal_Bool        m_bVRulerChanged;
+ 
+     SwTextGridPage(Window *pParent, const SfxItemSet &rSet);
+     ~SwTextGridPage();
+diff -uNr sw/source/ui/misc/pggrid.cxx sw/source/ui/misc/pggrid.cxx
+--- sw/source/ui/misc/pggrid.cxx	2007-12-26 14:54:15.000000000 +0800
++++ sw/source/ui/misc/pggrid.cxx	2007-12-26 15:00:31.000000000 +0800
+@@ -128,7 +128,9 @@
+     m_bRubyUserValue(sal_False),
+     m_aPageSize(MM50, MM50),
+     m_bVertical(sal_False),
+-	m_bSquaredMode(sal_False)
++	m_bSquaredMode(sal_False),
++    m_bHRulerChanged( sal_False ),
++    m_bVRulerChanged( sal_False )
+ {
+     FreeResource();
+ 
+@@ -262,6 +264,12 @@
+         bRet = TRUE;
+     }
+ 
++    // draw ticks of ruler
++    SwView * pView = ::GetActiveView();
++    if ( m_bHRulerChanged )
++        pView->GetHLineal().DrawTicks();
++    if ( m_bVRulerChanged )
++        pView->GetVLineal().DrawTicks();
+     return bRet;
+ }
+ /*-- 06.02.2002 15:25:40---------------------------------------------------
+@@ -349,9 +357,17 @@
+         aGridItem.SetColor(aColorLB.GetSelectEntryColor());
+         rSet.Put(aGridItem);
+ /// Amelia
+-        SwView * pView = ::GetActiveView();
+-        pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
+-        pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
++        if ( aGridItem.GetGridType() != GRID_NONE )
++        {
++            SwView * pView = ::GetActiveView();
++            if ( aGridItem.GetGridType() == GRID_LINES_CHARS )
++            {
++                pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
++                m_bHRulerChanged = sal_True;
++            }
++            pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
++            m_bVRulerChanged = sal_True;
++        }
+ }
+ /* -----------------------------08.02.2002 10:54------------------------------
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/printing-bugfix-254573.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/printing-bugfix-254573.diff
@@ -0,0 +1,50 @@
+--- sd/source/ui/view/PrintManager.cxx.O	2007-05-18 18:46:10.000000000 +0200
++++ sd/source/ui/view/PrintManager.cxx	2007-05-18 18:54:58.000000000 +0200
+@@ -755,12 +755,14 @@ bool PrintManager::FitPageToPrinterWithD
+         SdOptionsPrintItem* pPrintOpts = NULL;
+         BOOL                bScalePage = TRUE;
+         BOOL                bTilePage = FALSE;
++        BOOL                bNotesPage = FALSE;
+         BOOL                bPrintBooklet = FALSE;
+ 
+         if( rOptions.GetItemState( ATTR_OPTIONS_PRINT, FALSE, (const SfxPoolItem**) &pPrintOpts ) == SFX_ITEM_SET )
+         {
+             bScalePage = pPrintOpts->GetOptionsPrint().IsPagesize();
+             bPrintBooklet = pPrintOpts->GetOptionsPrint().IsBooklet();
++            bNotesPage = pPrintOpts->GetOptionsPrint().IsNotes();
+             pPrintOpts->GetOptionsPrint().SetCutPage( FALSE );
+         }
+         else
+@@ -771,18 +773,30 @@ bool PrintManager::FitPageToPrinterWithD
+         Size    aPrintSize( pPrinter->GetOutputSize() );
+         long    nPageWidth = aPageSize.Width() - pPage->GetLftBorder() - pPage->GetRgtBorder();
+         long    nPageHeight = aPageSize.Height() - pPage->GetUppBorder() - pPage->GetLwrBorder();
++        long    nNotesPageWidth, nNotesPageHeight;
+         long    nPrintWidth = aPrintSize.Width();
+         long    nPrintHeight = aPrintSize.Height();
+         USHORT  nRet = RET_OK;
+ 
++        if( bNotesPage ) {
++            SdPage* pNotesPage = mrBase.GetDocument()->GetSdPage( 0, PK_NOTES );
++            Size aNotesPageSize = Size( pNotesPage->GetSize () );
++            nNotesPageWidth = aNotesPageSize.Width() - pNotesPage->GetLftBorder() - pNotesPage->GetRgtBorder();
++            nNotesPageHeight = aNotesPageSize.Height() - pNotesPage->GetUppBorder() - pNotesPage->GetLwrBorder();
++        }
++
+         // When necessary then show a dialog that asks the user how to fit
+         // the pages to be printed to the (smaller) printer pages.
+         if ( !bScalePage
+             && !bTilePage
+             && !bPrintBooklet
+-            && ( ( nPageWidth > nPrintWidth || nPageHeight > nPrintHeight )
++            && ( ( ( nPageWidth > nPrintWidth || nPageHeight > nPrintHeight )
+                 && ( nPageWidth > nPrintHeight || nPageHeight > nPrintWidth )
+-                )
++                   ) ||
++                 ( bNotesPage
++                   && ( nNotesPageWidth > nPrintWidth || nNotesPageHeight > nPrintHeight )
++                   && ( nNotesPageWidth > nPrintHeight || nNotesPageHeight > nPrintWidth ) )
++                 )
+             )
+         {
+             if (IsScreenFormat())
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-modal.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-modal.diff
@@ -0,0 +1,108 @@
+diff --git a/fpicker/source/unx/kde/kdefpmain.cxx b/fpicker/source/unx/kde/kdefpmain.cxx
+index eedda41..6506cfb 100644
+--- fpicker/source/unx/kde/kdefpmain.cxx
++++ fpicker/source/unx/kde/kdefpmain.cxx
+@@ -73,6 +73,12 @@
+ // Main
+ //////////////////////////////////////////////////////////////////////////
+ 
++static KCmdLineOptions sOptions[] =
++{
++    { "winid <argument>", I18N_NOOP("Window ID to which is the fpicker modal"), "0" },
++    KCmdLineLastOption
++};
++
+ int main( int argc, char* argv[] )
+ {
+     // we fake the name of the application to have "OpenOffice.org" in the
+@@ -87,12 +93,19 @@ int main( int argc, char* argv[] )
+     ::std::cerr << "kdefilepicker, an implementation of KDE file dialog for OOo." << ::std::endl
+         << "Type 'exit' and press Enter to finish." << ::std::endl;
+ 
++    KCmdLineArgs::addCmdLineOptions( sOptions );
+     KCmdLineArgs::init( argc, argv, &qAboutData );
+ 
+     KLocale::setMainCatalogue( "kdialog" );
+     
+     KApplication kApplication;
+-    //ModalityFilter qFilter( /*winid*/ 79691780 );
++
++    // Setup the modality
++    KCmdLineArgs *pArgs = KCmdLineArgs::parsedArgs();
++    long nWinId = atol( pArgs->getOption( "winid" ) );
++    pArgs->clear();
++
++    ModalityFilter qModalityFilter( nWinId );
+ 
+     FileDialog aFileDialog( NULL, QString(), NULL, "kdefiledialog" );
+     
+diff --git a/fpicker/source/unx/kde/kdemodalityfilter.cxx b/fpicker/source/unx/kde/kdemodalityfilter.cxx
+index b026f34..075fabe 100644
+--- fpicker/source/unx/kde/kdemodalityfilter.cxx
++++ fpicker/source/unx/kde/kdemodalityfilter.cxx
+@@ -91,8 +91,6 @@ bool ModalityFilter::eventFilter( QObject *pObject, QEvent *pEvent )
+         if ( pDlg != NULL && m_nWinId != 0 )
+         {
+             XSetTransientForHint( qt_xdisplay(), pDlg->winId(), m_nWinId );
+-            NETWinInfo aInfo( qt_xdisplay(), pDlg->winId(), qt_xrootwin(), NET::WMState );
+-            aInfo.setState( NET::Modal, NET::Modal );
+             m_nWinId = 0;
+         }
+     }
+diff --git a/fpicker/source/unx/kde_unx/UnxFilePicker.cxx b/fpicker/source/unx/kde_unx/UnxFilePicker.cxx
+index 9d3da56..4590b74 100644
+--- fpicker/source/unx/kde_unx/UnxFilePicker.cxx
++++ fpicker/source/unx/kde_unx/UnxFilePicker.cxx
+@@ -127,6 +127,11 @@
+ #include <UnxNotifyThread.hxx>
+ #endif
+ 
++#include <vcl/svapp.hxx>
++#include <vcl/sysdata.hxx>
++#include <vcl/syswin.hxx>
++#include <vcl/window.hxx>
++
+ #include <sys/wait.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+@@ -528,7 +533,7 @@ void SAL_CALL UnxFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUStri
+     sendCommand( aBuffer.makeStringAndClear() );
+ }
+ 
+-rtl::OUString SAL_CALL UnxFilePicker::getLabel(sal_Int16 nControlId) 
++rtl::OUString SAL_CALL UnxFilePicker::getLabel(sal_Int16 /*nControlId*/) 
+     throw ( uno::RuntimeException )
+ {
+     // FIXME getLabel() is not yet implemented
+@@ -784,10 +789,29 @@ void UnxFilePicker::initFilePicker()
+         }
+ #endif
+ 
+-        // FIXME: window id, etc.
++        // The executable name
+         const char *pFname = "kdefilepicker";
+ 
+-        execlp( pFname, pFname, NULL );
++        // ID of the main window
++        const int nIdLen = 20;
++        char pWinId[nIdLen] = "0";
++
++        // TODO pass here the real parent (not possible for system dialogs
++        // yet), and default to GetDefDialogParent() only when the real parent
++        // is NULL
++        Window *pParentWin = Application::GetDefDialogParent();
++        if ( pParentWin )
++        {
++            const SystemEnvData* pSysData = ((SystemWindow *)pParentWin)->GetSystemData();
++            if ( pSysData )
++            {
++                snprintf( pWinId, nIdLen, "%ld", pSysData->aWindow ); // unx only
++                pWinId[nIdLen-1] = 0;
++            }
++        }
++
++        // Execute the fpicker implementation
++        execlp( pFname, pFname, "--winid", pWinId, NULL );
+ 
+         // Error, finish the child
+         exit( -1 );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/config_office-gnome-vfs-lock.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/config_office-gnome-vfs-lock.diff
@@ -0,0 +1,40 @@
+--- config_office/configure.in	2007-03-22 16:54:38.000000000 +0100
++++ config_office/configure.in	2007-03-29 15:24:14.000000000 +0200
+@@ -5030,16 +5030,28 @@ dnl Gnome VFS check
+ dnl ===================================================================
+ 
+ ENABLE_GNOMEVFS=""
++GNOMEVFS_HAS_LOCKING=""
+ AC_MSG_CHECKING([whether to enable GNOME VFS support])
+ if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gnome_vfs" = "yes"; then
+     ENABLE_GNOMEVFS="TRUE"
+     AC_MSG_RESULT([yes])
+     PKG_CHECK_MODULES( GNOMEVFS, gnome-vfs-2.0 >= 2.6.0 )
+     PKG_CHECK_MODULES( GCONF, gconf-2.0 )
++
++    AC_LANG_SAVE
++    AC_LANG_CPLUSPLUS
++    save_CXXFLAGS=$CXXFLAGS
++    CXXFLAGS="$CXXFLAGS $GNOMEVFS_CFLAGS"
++    AC_CHECK_DECL(GNOME_VFS_OPEN_LOCKED,
++                  GNOMEVFS_HAS_LOCKING="YES",,
++                  [#include <libgnomevfs/gnome-vfs-handle.h>])
++    CXXFLAGS=$save_CXXFLAGS
++    AC_LANG_RESTORE
+ else
+     AC_MSG_RESULT([no])
+ fi
+ AC_SUBST(ENABLE_GNOMEVFS)
++AC_SUBST(GNOMEVFS_HAS_LOCKING)
+ 
+ dnl ===================================================================
+ dnl Check whether the gtk 2.0 libraries are available.
+--- config_office/set_soenv.in	2007-03-22 16:54:38.000000000 +0100
++++ config_office/set_soenv.in	2007-03-29 15:17:34.000000000 +0200
+@@ -1549,5 +1549,6 @@ ToFile( "DBUS_PACKAGE",      "@DBUS_PACK
+ ToFile( "ENABLE_CAIRO",      "@ENABLE_CAIRO@",     "e" );
+ ToFile( "ENABLE_GNOMEVFS",   "@ENABLE_GNOMEVFS@",  "e" );
++ToFile( "GNOMEVFS_HAS_LOCKING","@GNOMEVFS_HAS_LOCKING@",  "e" );
+ ToFile( "ENABLE_KDE",        "@ENABLE_KDE@",       "e" );
+ ToFile( "KDE_CFLAGS",        "@KDE_CFLAGS@",       "e" );
+ ToFile( "KDE_LIBS",          "@KDE_LIBS@",         "e" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/writerperfect-nocondensedparagraphs.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/writerperfect-nocondensedparagraphs.diff
@@ -0,0 +1,16 @@
+--- writerperfect/source/filter/TextRunStyle.cxx	2006/12/01 12:07:57	1.14
++++ writerperfect/source/filter/TextRunStyle.cxx	2007/03/08 23:09:09	1.15
+@@ -75,7 +75,12 @@
+ 		if (strcmp(k.key(), "fo:margin-top") == 0)
+ 			propList.insert("fo:margin-top", k()->getStr());
+ 		if (strcmp(k.key(), "fo:margin-bottom") == 0)
+-			propList.insert("fo:margin-bottom", k()->getStr());
++		{
++			if (k()->getFloat() > 0.0f)
++				propList.insert("fo:margin-bottom", k()->getStr());
++			else
++				propList.insert("fo:margin-bottom", 0.0f);
++		}
+ 		if (strcmp(k.key(), "fo:line-height") == 0)
+ 			propList.insert("fo:line-height", k()->getStr());
+ 		if (strcmp(k.key(), "fo:break-before") == 0) 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-evolution-database.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-evolution-database.diff
@@ -0,0 +1,30 @@
+--- extras/source/database/makefile.mk.bakj	2005-03-16 18:49:33.251075928 +0530
++++ extras/source/database/makefile.mk	2005-03-16 18:50:38.651285353 +0530
+@@ -72,8 +72,8 @@
+ 
+ ZIP1TARGET      = $(DATABASE_USER_TARGET)
+ 
+-ZIP1LIST        = biblio.odb
+-
++ZIP1LIST        = biblio.odb \
++		  evolocal.odb	
+ ZIP2TARGET      = $(DATABASE_USER_BIBLIO_TARGET)
+ 
+ ZIP2LIST        = biblio.dbf biblio.dbt
+--- officecfg/registry/data/org/openoffice/Office/DataAccess.xcu.bakj	2005-03-16 18:51:43.777536725 +0530
++++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu	2005-03-16 18:52:51.471404727 +0530
+@@ -187,6 +187,14 @@
+     </node>
+   </node>
+   <node oor:name="RegisteredNames">
++    <node oor:name="EvolutionLocal" oor:op="replace">
++		<prop oor:name="Location" oor:type="xs:string">
++			<value>$(userurl)/database/evolocal.odb</value>
++		</prop>
++		<prop oor:name="Name" oor:type="xs:string">
++			<value>EvolutionLocal</value>
++		</prop>
++	</node>
+     <node oor:name="Bibliography" oor:op="replace">
+ 		<prop oor:name="Location" oor:type="xs:string">
+ 			<value>$(userurl)/database/biblio.odb</value>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-quickstarter-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-quickstarter-fix.diff
@@ -0,0 +1,19 @@
+Index: sfx2/source/appl/shutdownicon.cxx
+===================================================================
+RCS file: /cvs/framework/sfx2/source/appl/shutdownicon.cxx,v
+retrieving revision 1.61
+diff -u -p -r1.61 shutdownicon.cxx
+--- sfx2/source/appl/shutdownicon.cxx	2 Nov 2007 13:13:41 -0000	1.61
++++ sfx2/source/appl/shutdownicon.cxx	17 Apr 2008 10:37:07 -0000
+@@ -531,9 +531,8 @@ IMPL_STATIC_LINK( ShutdownIcon, DialogCl
+         }
+     }
+ 
+-#ifdef WNT
+-        LeaveModalMode();
+-#endif
++    LeaveModalMode();
++
+     return 0;
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/installer-strip-optional.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/installer-strip-optional.diff
@@ -0,0 +1,18 @@
+--- solenv/bin/modules/installer/parameter.pm.old	2005-07-18 16:03:40.000000000 +0200
++++ solenv/bin/modules/installer/parameter.pm	2005-08-17 19:11:55.000000000 +0200
+@@ -98,6 +98,7 @@
+ -format: Package format
+ -debian: Create Debian packages for Linux
+ -dontunzip: do not unzip all files with flag ARCHIVE
++-dontstrip : do not strip binaries, keep the debugging symbols
+ -dontcallepm : do not call epm to create install sets (opt., non-Windows only)
+ -ispatchedepm : Usage of a patched (non-standard) epm (opt., non-Windows only)
+ -packagelist : file, containing a list of module gids (opt., non-Windows only)
+@@ -181,6 +182,7 @@
+ 		elsif ($param eq "-u") { $installer::globals::unpackpath = shift(@ARGV); }
+ 		elsif ($param eq "-i") { $installer::globals::rootpath = shift(@ARGV); }
+ 		elsif ($param eq "-dontcallepm") { $installer::globals::call_epm = 0; }
++		elsif ($param eq "-dontstrip") { $installer::globals::strip = 0; }
+ 		elsif ($param eq "-msitemplate") { $installer::globals::idttemplatepath = shift(@ARGV); }
+ 		elsif ($param eq "-msilanguage") { $installer::globals::idtlanguagepath = shift(@ARGV); }
+ 		elsif ($param eq "-patchinc") { $installer::globals::patchincludepath = shift(@ARGV); }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-fix-range-ref-window.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-fix-range-ref-window.diff
@@ -0,0 +1,22 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/miscdlgs/anyrefdg.cxx sc/source/ui/miscdlgs/anyrefdg.cxx
+--- sc.clean/source/ui/miscdlgs/anyrefdg.cxx	2008-03-20 17:57:30.000000000 -0400
++++ sc/source/ui/miscdlgs/anyrefdg.cxx	2008-03-20 18:04:43.000000000 -0400
+@@ -668,7 +668,7 @@ void ScAnyRefDlg::ShowSimpleReference( c
+ 			pTabViewShell->DoneRefMode( FALSE );
+ 			pTabViewShell->ClearHighlightRanges();
+ 
+-			if(aRangeList.Parse(rStr ,pDoc))
++			if(aRangeList.Parse(rStr ,pDoc, SCA_VALID, pDoc->GetAddressConvention()))
+ 			{
+ 				ScRange* pRangeEntry=aRangeList.First();
+ 
+@@ -699,7 +699,8 @@ void ScAnyRefDlg::ShowFormulaReference( 
+ 			SCTAB nTab = pViewData->GetTabNo();
+ 			ScAddress aPos( nCol, nRow, nTab );
+ 
+-			ScTokenArray* pScTokA=pRefComp->CompileString(rStr);
++            ScAddress::Convention eConv = pViewData->GetDocument()->GetAddressConvention();
++			ScTokenArray* pScTokA=pRefComp->CompileString(rStr, eConv);
+ 			//pRefComp->CompileTokenArray();
+ 
+ 			if(pTabViewShell!=NULL && pScTokA!=NULL)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-salhelper.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-salhelper.diff
@@ -0,0 +1,38 @@
+--- salhelper/prj/build.lst	2001-03-16 14:22:36.000000000 +0100
++++ salhelper/prj/build.lst	2007-09-07 21:30:14.000000000 +0200
+@@ -1,3 +1,3 @@
+-shp	salhelper	:	sal NULL
++shp	salhelper	:	sal testshl2 NULL
+ shp	salhelper		 	usr1	-	all	shp_mkout NULL
+ shp	salhelper\source 	nmake	-	all shp_source NULL
+--- salhelper/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ salhelper/prj/tests.lst	2007-09-07 14:38:11.000000000 +0200
+@@ -0,0 +1,6 @@
++shp  salhelper\qa                                       nmake - all shp_qa shp_source NULL
++
++# older tests:
++shp  salhelper\test\Symbols                             nmake - all shp_test_Symbols shp_source NULL
++#depends on cppu: shp  salhelper\test\dynamicloader                       nmake - all shp_test_dynamicloader shp_source NULL
++#depends on cppu: shp  salhelper\test\rtti                                nmake - all shp_test_rtti shp_source NULL
+--- salhelper/test/Symbols/loader.cxx	2001-04-19 17:12:00.000000000 +0200
++++ salhelper/test/Symbols/loader.cxx	2007-09-07 08:55:26.000000000 +0200
+@@ -1,6 +1,6 @@
+ 
+-#include  <salhelper/dynload.hxx>
+-#include <rtl/ustring>
++#include <salhelper/dynload.hxx>
++#include <rtl/ustring.hxx>
+ #include <stdio.h>
+ #include "samplelib.hxx"
+ 
+--- salhelper/test/dynamicloader/loader.cxx	2001-04-19 17:26:08.000000000 +0200
++++ salhelper/test/dynamicloader/loader.cxx	2007-09-07 21:37:19.000000000 +0200
+@@ -1,6 +1,6 @@
+ 
+-#include  <salhelper/dynload.hxx>
+-#include <rtl/ustring>
++#include <salhelper/dynload.hxx>
++#include <rtl/ustring.hxx>
+ #include <stdio.h>
+ #include "samplelib.hxx"
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linux-headers.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linux-headers.diff
@@ -0,0 +1,42 @@
+--- configmgr/source/treemgr/nodeimplobj.cxx.orig	2007-08-02 21:27:38.000000000 +0200
++++ configmgr/source/treemgr/nodeimplobj.cxx	2007-08-02 21:33:12.000000000 +0200
+@@ -66,6 +66,8 @@
+ #include "viewfactory.hxx"
+ #endif
+ 
++#include <exception>
++
+ namespace configmgr
+ {
+ 	namespace configuration
+--- configmgr/source/treemgr/setnodeimpl.cxx.orig	2007-08-02 21:31:12.000000000 +0200
++++ configmgr/source/treemgr/setnodeimpl.cxx	2007-08-02 21:32:47.000000000 +0200
+@@ -104,6 +104,8 @@
+ #define INCLUDED_VECTOR
+ #endif
+ 
++#include <exception>
++
+ namespace configmgr
+ {
+ 	namespace configuration
+--- psprint/source/printergfx/printerjob.cxx.orig	2007-08-02 22:07:05.000000000 +0200
++++ psprint/source/printergfx/printerjob.cxx	2007-08-02 22:09:48.000000000 +0200
+@@ -75,6 +75,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <unistd.h>
++#include <time.h>
+ #include <pwd.h>
+ #include <sal/alloca.h>
+ 
+--- dtrans/source/X11/X11_selection.cxx.orig	2007-08-02 22:11:07.000000000 +0200
++++ dtrans/source/X11/X11_selection.cxx	2007-08-02 22:11:23.000000000 +0200
+@@ -37,6 +37,7 @@
+ #include "precompiled_dtrans.hxx"
+ 
+ #include <unistd.h>
++#include <time.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <sys/time.h>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/go-oo-team.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/go-oo-team.diff
@@ -0,0 +1,89 @@
+Index: sw/source/ui/dochdl/dochdl.src
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/dochdl/dochdl.src,v
+retrieving revision 1.42
+diff -u -r1.42 dochdl.src
+--- sw/source/ui/dochdl/dochdl.src	26 Jun 2004 03:25:18 -0000	1.42
++++ sw/source/ui/dochdl/dochdl.src	4 Jan 2005 06:23:49 -0000
+@@ -149,3 +149,13 @@
+     Text = "Back row: Aidan Butler, Hans-Peter Burow, Caolan McNamara, Michael Brauer, Martin Maher, Gunnar Timm\nFront row: Thomas Lange, Oliver-Rainer Duesterhoeft, Henning Brinkmann, Andreas Martens, Oliver Specht, Frank Meies, Daniel Vogelheim";
+ };
+ 
++Bitmap BMP_GO_OO_TEAM_MUGSHOT
++{
++	File ="go-oo-team.bmp";
++};
++
++String STR_GO_OO_TEAM_NAMES
++{
++    TEXT = "From top left: Andreas, Bernhard, David, Dhananjay, Federico, Fong\nFridrich, Giuseppe, Hubert, Jakub, Jan, Jiao\nJody, Kai, Kohei, Martin, Matthias, Michael\nMike, Miklos, Noel, Petr, Radek, Rene\nSilvan, Tor, Volker, Yin, ZhangYun.\n";
++};
++
+Index: sw/source/ui/dochdl/gloshdl.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/dochdl/gloshdl.cxx,v
+retrieving revision 1.19
+diff -u -r1.19 gloshdl.cxx
+--- sw/source/ui/dochdl/gloshdl.cxx	4 Oct 2004 19:26:10 -0000	1.19
++++ sw/source/ui/dochdl/gloshdl.cxx	4 Jan 2005 06:25:50 -0000
+@@ -738,6 +738,41 @@
+ 					pWrtShell->EndAllAction();
+ 					pWrtShell->EndUndo( UNDO_INSGLOSSARY );
+ 				}
++				else if ( aShortName.EqualsAscii ( "GoOOTeam", 0, 14 ) )
++				{
++					String sGraphicName ( RTL_CONSTASCII_USTRINGPARAM ( "Go-oo Team photo" ) );
++					String sTeamCredits ( RTL_CONSTASCII_USTRINGPARAM ( "go-oo team credits" ) );
++					pWrtShell->StartUndo ( UNDO_INSGLOSSARY );
++					pWrtShell->StartAllAction();
++					if(pWrtShell->HasSelection())
++						pWrtShell->DelLeft();
++					Bitmap aBitmap ( SW_RES ( BMP_GO_OO_TEAM_MUGSHOT ) );
++					pWrtShell->Insert ( aEmptyStr, aEmptyStr, aBitmap);
++					pWrtShell->SetFlyName ( sGraphicName );
++					SwTxtFmtColl* pColl = pWrtShell->GetTxtCollFromPool ( RES_POOLCOLL_LABEL_ABB );
++					const IDocumentFieldsAccess* pIDFA = pWrtShell->getIDocumentFieldsAccess();
++					SwFieldType* pType = pIDFA->GetFldType( RES_SETEXPFLD, pColl->GetName(), false );
++					sal_uInt16 nId = pIDFA->GetFldTypes()->GetPos( pType );
++					pWrtShell->InsertLabel( LTYPE_OBJECT, aEmptyStr, aEmptyStr, aEmptyStr, FALSE, nId, aEmptyStr );
++					pWrtShell->SwFEShell::SetFlyName( sTeamCredits );
++					pWrtShell->SwFEShell::SelectObj ( Point ( ULONG_MAX, ULONG_MAX ) );
++					pWrtShell->EnterStdMode();
++					pWrtShell->EndPara ( TRUE );
++					String aTmp ( SW_RES ( STR_GO_OO_TEAM_NAMES ) );
++					pWrtShell->Insert ( aTmp );
++					SvxAdjustItem aAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST );
++					pWrtShell->SetAttr( aAdjustItem );
++					pWrtShell->SttPara ();
++					pWrtShell->SplitNode();
++					pWrtShell->Left(CRSR_SKIP_CHARS, FALSE, 1, FALSE );
++					SvxWeightItem aWeightItem ( WEIGHT_BOLD, RES_CHRATR_WEIGHT );
++					pWrtShell->Insert ( String ( RTL_CONSTASCII_USTRINGPARAM ( "The go-oo.org team!" ) ) );
++					pWrtShell->SttPara ( TRUE );
++					pWrtShell->SetAttr( aWeightItem);
++					pWrtShell->GotoFly ( sTeamCredits);
++					pWrtShell->EndAllAction();
++					pWrtShell->EndUndo( UNDO_INSGLOSSARY );
++				}
+ 				else
+ 				{
+ 					String aTmp( SW_RES(STR_NOGLOS1));
+Index: sw/inc/dochdl.hrc
+===================================================================
+RCS file: /cvs/sw/sw/inc/dochdl.hrc,v
+retrieving revision 1.2
+diff -u -r1.2 dochdl.hrc
+--- sw/inc/dochdl.hrc	10 May 2004 16:14:19 -0000	1.2
++++ sw/inc/dochdl.hrc	4 Jan 2005 06:27:14 -0000
+@@ -81,7 +81,10 @@
+ #define BMP_SW_TEAM_MUGSHOT			(RC_DOCHDL_BEGIN + 12)
+ #define STR_SW_TEAM_NAMES			(RC_DOCHDL_BEGIN + 13)
+ 
+-#define DOCHDL_ACT_END              STR_SW_TEAM_NAMES
++#define BMP_GO_OO_TEAM_MUGSHOT			(RC_DOCHDL_BEGIN + 14)
++#define STR_GO_OO_TEAM_NAMES			(RC_DOCHDL_BEGIN + 25)
++
++#define DOCHDL_ACT_END              STR_GO_OO_TEAM_NAMES
+ 
+ #if DOCHDL_ACT_END > RC_DOCHDL_END
+ #error Resource-Id Ueberlauf in #file, #line
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-dbrange-dynamic-resize.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-dbrange-dynamic-resize.diff
@@ -0,0 +1,350 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/dbcolect.hxx sc/inc/dbcolect.hxx
+--- sc.clean/inc/dbcolect.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/dbcolect.hxx	2008-03-05 11:52:43.000000000 -0500
+@@ -115,6 +115,7 @@ private:
+ 	ScQueryConnect  eQueryConnect[MAXQUERY];
+ 	BOOL			bIsAdvanced;		// TRUE if created by advanced filter
+ 	ScRange			aAdvSource;			// source range
++    SCROW           nDynamicEndRow;
+ 	// SubTotalParam
+ 	BOOL			bSubRemoveOnly;
+ 	BOOL			bSubReplace;
+@@ -165,9 +166,10 @@ public:
+ 			const String& GetName() const				{ return aName; }
+ 			void		GetName(String& rName) const	{ rName = aName; }
+ 			void		SetName(const String& rName)	{ aName = rName; }
+-			void		GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2) const;
+-			SC_DLLPUBLIC void		GetArea(ScRange& rRange) const;
++			void		GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2, bool bUseDynamicRange = false) const;
++			SC_DLLPUBLIC void		GetArea(ScRange& rRange, bool bUseDynamicRange = false) const;
+ 			void		SetArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
++            void        SetDynamicEndRow(SCROW nRow);
+ 			void		MoveTo(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
+ 			BOOL		IsByRow() const 				{ return bByRow; }
+ 			void		SetByRow(BOOL bByR) 			{ bByRow = bByR; }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/document.hxx sc/inc/document.hxx
+--- sc.clean/inc/document.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/document.hxx	2008-03-05 11:47:35.000000000 -0500
+@@ -864,7 +864,7 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollec
+ 	USHORT			GetErrCode( const ScAddress& ) const;
+ 
+ 	void			GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
+-									SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld );
++									SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld ) const;
+ 	BOOL			GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
+ 	BOOL			GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
+ 	BOOL			GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
+@@ -1381,6 +1381,9 @@ SC_DLLPUBLIC	SvNumberFormatter*	GetForma
+ 										SCTAB nTab, ScQueryParam& rQueryParam );
+ 	void 			GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab, String& rStr);
+ 
++    /** Update the dynamic end row position of a current data area. */
++    void            UpdateDynamicEndRow(ScDBData& rDBData) const;
++
+ 	BOOL			GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
+ 								TypedStrCollection& rStrings, bool bFilter = false );
+ 	SC_DLLPUBLIC BOOL			GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
+Only in sc/inc: document.hxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/global.hxx sc/inc/global.hxx
+--- sc.clean/inc/global.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/global.hxx	2008-03-05 00:52:49.000000000 -0500
+@@ -932,6 +932,8 @@ struct SC_DLLPUBLIC ScQueryParam
+ 	SCTAB			nDestTab;
+ 	SCCOL			nDestCol;
+ 	SCROW			nDestRow;
++    SCROW           nDynamicEndRow;
++    bool            bUseDynamicRange;
+ 
+ private:
+ 	SCSIZE			nEntryCount;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/table.hxx sc/inc/table.hxx
+--- sc.clean/inc/table.hxx	2008-03-03 11:24:44.000000000 -0500
++++ sc/inc/table.hxx	2008-03-05 00:52:16.000000000 -0500
+@@ -355,7 +355,7 @@ public:
+ 						SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
+ 
+ 	void		GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
+-								BOOL bIncludeOld );
++								BOOL bIncludeOld ) const;
+ 
+ 	SCSIZE	    GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
+ 										SCCOL nEndCol, SCROW nEndRow, ScDirection eDir );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
+--- sc.clean/source/core/data/documen3.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/documen3.cxx	2008-03-05 11:47:22.000000000 -0500
+@@ -1282,6 +1282,18 @@ BOOL ScDocument::HasRowHeader( SCCOL nSt
+ //	GetFilterEntries - Eintraege fuer AutoFilter-Listbox
+ //
+ 
++void ScDocument::UpdateDynamicEndRow(ScDBData& rDBData) const
++{
++    SCCOL nCol1, nCol2;
++    SCROW nRow1, nRow2;
++    SCTAB nTab;
++    rDBData.GetArea(nTab, nCol1, nRow1, nCol2, nRow2);
++    SCCOL nCol1a = nCol1, nCol2a = nCol2;
++    SCROW nRow1a = nRow1, nRow2a = nRow2;
++    GetDataArea(nTab, nCol1a, nRow1a, nCol2a, nRow2a, false);
++    rDBData.SetDynamicEndRow(nRow2a);
++}
++
+ BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedStrCollection& rStrings, bool bFilter )
+ {
+ 	if ( ValidTab(nTab) && pTab[nTab] && pDBCollection )
+@@ -1289,6 +1301,7 @@ BOOL ScDocument::GetFilterEntries( SCCOL
+ 		ScDBData* pDBData = pDBCollection->GetDBAtCursor(nCol, nRow, nTab, FALSE);	//!??
+ 		if (pDBData)
+ 		{
++            UpdateDynamicEndRow(*pDBData);
+ 			SCTAB nAreaTab;
+ 			SCCOL nStartCol;
+ 			SCROW nStartRow;
+@@ -1300,6 +1313,7 @@ BOOL ScDocument::GetFilterEntries( SCCOL
+ 
+ 			ScQueryParam aParam;
+ 			pDBData->GetQueryParam( aParam );
++            nEndRow = aParam.nDynamicEndRow;
+ 			rStrings.SetCaseSensitive( aParam.bCaseSens );
+ 
+             // return all filter entries, if a filter condition is connected with a boolean OR
+Only in sc/source/core/data: documen3.cxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/document.cxx sc/source/core/data/document.cxx
+--- sc.clean/source/core/data/document.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/document.cxx	2008-03-04 22:23:36.000000000 -0500
+@@ -584,7 +584,7 @@ BOOL ScDocument::GetTableArea( SCTAB nTa
+ //	zusammenhaengender Bereich
+ 
+ void ScDocument::GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
+-								SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld )
++								SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld ) const
+ {
+ 	if (VALIDTAB(nTab))
+ 		if (pTab[nTab])
+Only in sc/source/core/data: document.cxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/global2.cxx sc/source/core/data/global2.cxx
+--- sc.clean/source/core/data/global2.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/global2.cxx	2008-03-05 00:56:41.000000000 -0500
+@@ -295,7 +295,8 @@ ScQueryParam::ScQueryParam( const ScQuer
+ 		bHasHeader(r.bHasHeader), bByRow(r.bByRow), bInplace(r.bInplace), bCaseSens(r.bCaseSens),
+ 		bRegExp(r.bRegExp), bMixedComparison(r.bMixedComparison),
+         bDuplicate(r.bDuplicate), bDestPers(r.bDestPers),
+-		nDestTab(r.nDestTab), nDestCol(r.nDestCol), nDestRow(r.nDestRow)
++		nDestTab(r.nDestTab), nDestCol(r.nDestCol), nDestRow(r.nDestRow),
++        nDynamicEndRow(r.nDynamicEndRow), bUseDynamicRange(r.bUseDynamicRange)
+ {
+ 	nEntryCount = 0;
+ 
+@@ -321,6 +322,8 @@ void ScQueryParam::Clear()
+ 	nTab = SCTAB_MAX;
+ 	bHasHeader = bCaseSens = bRegExp = bMixedComparison = FALSE;
+ 	bInplace = bByRow = bDuplicate = bDestPers = TRUE;
++    nDynamicEndRow = 0;
++    bUseDynamicRange = false;
+ 
+ 	Resize( MAXQUERY );
+ 	for (USHORT i=0; i<MAXQUERY; i++)
+@@ -347,6 +350,8 @@ ScQueryParam& ScQueryParam::operator=( c
+ 	bDuplicate	= r.bDuplicate;
+ 	bByRow		= r.bByRow;
+ 	bDestPers	= r.bDestPers;
++    nDynamicEndRow = r.nDynamicEndRow;
++    bUseDynamicRange = r.bUseDynamicRange;
+ 
+ 	Resize( r.nEntryCount );
+ 	for (USHORT i=0; i<nEntryCount; i++)
+@@ -384,7 +389,9 @@ BOOL ScQueryParam::operator==( const ScQ
+ 		&& (bDestPers   == rOther.bDestPers)
+ 		&& (nDestTab	== rOther.nDestTab)
+ 		&& (nDestCol	== rOther.nDestCol)
+-		&& (nDestRow	== rOther.nDestRow) )
++		&& (nDestRow	== rOther.nDestRow)
++        && (nDynamicEndRow == rOther.nDynamicEndRow)
++        && (bUseDynamicRange == rOther.bUseDynamicRange) )
+ 	{
+ 		bEqual = TRUE;
+ 		for ( USHORT i=0; i<nUsed && bEqual; i++ )
+@@ -446,6 +453,7 @@ void ScQueryParam::MoveToDest()
+         nCol2 = sal::static_int_cast<SCCOL>( nCol2 + nDifX );
+         nRow2 = sal::static_int_cast<SCROW>( nRow2 + nDifY );
+         nTab  = sal::static_int_cast<SCTAB>( nTab  + nDifZ );
++        nDynamicEndRow = sal::static_int_cast<SCROW>( nDynamicEndRow + nDifY );
+ 		for (USHORT i=0; i<nEntryCount; i++)
+ 			pEntries[i].nField += nDifX;
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/table1.cxx sc/source/core/data/table1.cxx
+--- sc.clean/source/core/data/table1.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/table1.cxx	2008-03-04 22:23:36.000000000 -0500
+@@ -665,7 +665,7 @@ BOOL ScTable::GetDataStart( SCCOL& rStar
+ }
+ 
+ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
+-							BOOL bIncludeOld )
++							BOOL bIncludeOld ) const
+ {
+ 	BOOL bLeft       = FALSE;
+ 	BOOL bRight  = FALSE;
+Only in sc/source/core/data: table1.cxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/table3.cxx sc/source/core/data/table3.cxx
+--- sc.clean/source/core/data/table3.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/table3.cxx	2008-03-05 11:10:54.000000000 -0500
+@@ -1363,6 +1363,7 @@ SCSIZE ScTable::Query(ScQueryParam& rPar
+ 	BOOL* pSpecial = new BOOL[nEntryCount];
+     lcl_PrepareQuery( pDocument, this, aParam, pSpecial );
+ 
++    SCROW nEndRow = aParam.bUseDynamicRange ? aParam.nDynamicEndRow : aParam.nRow2;
+ 	if (!aParam.bInplace)
+ 	{
+ 		nOutRow = aParam.nDestRow + nHeader;
+@@ -1371,7 +1372,7 @@ SCSIZE ScTable::Query(ScQueryParam& rPar
+ 							aParam.nDestCol, aParam.nDestRow, aParam.nDestTab );
+ 	}
+ 
+-	for (SCROW j=aParam.nRow1 + nHeader; j<=aParam.nRow2; j++)
++	for (SCROW j=aParam.nRow1 + nHeader; j<=nEndRow; j++)
+ 	{
+ 		BOOL bResult;									// Filterergebnis
+ 		BOOL bValid = ValidQuery(j, aParam, pSpecial);
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/dbcolect.cxx sc/source/core/tool/dbcolect.cxx
+--- sc.clean/source/core/tool/dbcolect.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/tool/dbcolect.cxx	2008-03-05 11:52:55.000000000 -0500
+@@ -671,18 +671,20 @@ String ScDBData::GetOperations() const
+ 	return aVal;
+ }
+ 
+-void ScDBData::GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2) const
++void ScDBData::GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2, 
++                       bool bUseDynamicRange) const
+ {
+ 	rTab  = nTable;
+ 	rCol1 = nStartCol;
+ 	rRow1 = nStartRow;
+ 	rCol2 = nEndCol;
+-	rRow2 = nEndRow;
++	rRow2 = bUseDynamicRange ? nDynamicEndRow : nEndRow;
+ }
+ 
+-void ScDBData::GetArea(ScRange& rRange) const
++void ScDBData::GetArea(ScRange& rRange, bool bUseDynamicRange) const
+ {
+-	rRange = ScRange( nStartCol,nStartRow,nTable, nEndCol,nEndRow,nTable );
++    SCROW nNewEndRow = bUseDynamicRange ? nDynamicEndRow : nEndRow;
++	rRange = ScRange( nStartCol, nStartRow, nTable, nEndCol, nNewEndRow, nTable );
+ }
+ 
+ void ScDBData::SetArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
+@@ -694,6 +696,11 @@ void ScDBData::SetArea(SCTAB nTab, SCCOL
+ 	nEndRow   = nRow2;
+ }
+ 
++void ScDBData::SetDynamicEndRow(SCROW nRow)
++{
++    nDynamicEndRow = nRow;
++}
++
+ void ScDBData::MoveTo(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
+ {
+ 	USHORT i;
+@@ -799,6 +806,7 @@ void ScDBData::GetQueryParam( ScQueryPar
+ 	rQueryParam.nDestTab = nQueryDestTab;
+ 	rQueryParam.nDestCol = nQueryDestCol;
+ 	rQueryParam.nDestRow = nQueryDestRow;
++    rQueryParam.nDynamicEndRow = nDynamicEndRow;
+ 
+ 	rQueryParam.Resize( MAXQUERY );
+ 	for (SCSIZE i=0; i<MAXQUERY; i++)
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/filtdlg.cxx sc/source/ui/dbgui/filtdlg.cxx
+--- sc.clean/source/ui/dbgui/filtdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/filtdlg.cxx	2008-03-05 11:11:49.000000000 -0500
+@@ -403,7 +403,7 @@ void ScFilterDlg::UpdateValueList( USHOR
+ 			{
+ 				SCTAB nTab		 = nSrcTab;
+ 				SCROW nFirstRow = theQueryData.nRow1;
+-				SCROW nLastRow	 = theQueryData.nRow2;
++				SCROW nLastRow	 = theQueryData.bUseDynamicRange ? theQueryData.nDynamicEndRow : theQueryData.nRow2;
+ 
+ 				//	erstmal ohne die erste Zeile
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/dbfunc.hxx sc/source/ui/inc/dbfunc.hxx
+--- sc.clean/source/ui/inc/dbfunc.hxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/inc/dbfunc.hxx	2008-03-04 22:23:36.000000000 -0500
+@@ -85,7 +85,7 @@ public:
+ 	void			GotoDBArea( const String& rDBName );
+ 
+ 					// DB-Bereich vom Cursor
+-	ScDBData* 		GetDBData( BOOL bMarkArea = TRUE, ScGetDBMode eMode = SC_DB_MAKE );
++    ScDBData* 		GetDBData( bool bMarkArea = true, ScGetDBMode eMode = SC_DB_MAKE, bool bExpandRows = false );
+ 
+ 	void			NotifyCloseDbNameDlg( const ScDBCollection& rNewColl, const List& rDelAreaList );
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/dbfunc.cxx sc/source/ui/view/dbfunc.cxx
+--- sc.clean/source/ui/view/dbfunc.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/dbfunc.cxx	2008-03-05 11:47:22.000000000 -0500
+@@ -112,7 +112,7 @@ void ScDBFunc::GotoDBArea( const String&
+ 
+ //	aktuellen Datenbereich fuer Sortieren / Filtern suchen
+ 
+-ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode )
++ScDBData* ScDBFunc::GetDBData( bool bMark, ScGetDBMode eMode, bool bExpandRows )
+ {
+ 	ScDocShell* pDocSh = GetViewData()->GetDocShell();
+ 	ScDBData* pData = NULL;
+@@ -124,11 +124,20 @@ ScDBData* ScDBFunc::GetDBData( BOOL bMar
+ 					ScRange( GetViewData()->GetCurX(), GetViewData()->GetCurY(),
+ 							 GetViewData()->GetTabNo() ),
+ 					eMode, FALSE );
++    if (!pData)
++        return NULL;
+ 
+-	if ( pData && bMark )
++    if (bExpandRows)
++    {
++        // Dynamically expand rows to include any new data rows that are
++        // immediately below the original range.
++        GetViewData()->GetDocument()->UpdateDynamicEndRow(*pData);
++    }
++
++    if (bMark)
+ 	{
+ 		ScRange aFound;
+-		pData->GetArea(aFound);
++		pData->GetArea(aFound, bExpandRows);
+ 		MarkRange( aFound, FALSE );
+ 	}
+ 	return pData;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
+--- sc.clean/source/ui/view/gridwin.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/gridwin.cxx	2008-03-05 11:12:33.000000000 -0500
+@@ -1224,6 +1224,7 @@ void ScGridWindow::ExecFilter( ULONG nSe
+ 					pViewData->GetViewShell()->UpdateInputHandler();
+ 				}
+ 
++                aParam.bUseDynamicRange = true;
+ 				pViewData->GetView()->Query( aParam, NULL, TRUE );
+ 				pDBData->SetQueryParam( aParam );							// speichern
+ 			}
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/tabvwshc.cxx sc/source/ui/view/tabvwshc.cxx
+--- sc.clean/source/ui/view/tabvwshc.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/tabvwshc.cxx	2008-03-05 11:43:37.000000000 -0500
+@@ -195,8 +195,9 @@ SfxModelessDialog* ScTabViewShell::Creat
+ 									 SCITEM_QUERYDATA,
+ 									 SCITEM_QUERYDATA );
+ 
+-			ScDBData* pDBData = GetDBData();
++            ScDBData* pDBData = GetDBData(true, SC_DB_MAKE, true);
+ 			pDBData->GetQueryParam( aQueryParam );
++            aQueryParam.bUseDynamicRange = true;
+ 
+ 			ScQueryItem aItem( SCITEM_QUERYDATA, GetViewData(), &aQueryParam );
+ 			ScRange aAdvSource;
+@@ -220,8 +221,9 @@ SfxModelessDialog* ScTabViewShell::Creat
+ 									 SCITEM_QUERYDATA,
+ 									 SCITEM_QUERYDATA );
+ 
+-			ScDBData* pDBData = GetDBData();
++            ScDBData* pDBData = GetDBData(true, SC_DB_MAKE, true);
+ 			pDBData->GetQueryParam( aQueryParam );
++            aQueryParam.bUseDynamicRange = true;
+ 
+ 			aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
+ 									  GetViewData(),
+Only in sc/source/ui/view: tabvwshc.cxx.orig
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/internal-mesa-headers-slideshow.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/internal-mesa-headers-slideshow.diff
@@ -0,0 +1,8 @@
+--- slideshow/prj/build.lst	2008-03-17 12:43:53.000000000 +0100
++++ slideshow/prj/build.lst	2008-03-17 12:44:22.000000000 +0100
+@@ -1,4 +1,4 @@
+-pe	slideshow	:	tools sal cppu vcl comphelper cppuhelper offuh cppcanvas basegfx goodies unotools toolkit animations NULL
++pe	slideshow	:	tools sal cppu vcl comphelper cppuhelper offuh cppcanvas basegfx goodies unotools toolkit animations MESA:Mesa NULL
+ pe	slideshow								usr1	-	all	pe_mkout NULL
+ pe	slideshow\inc							nmake	-	all	pe_inc NULL
+ pe	slideshow\source\api					nmake	-	all	pe_api pe_inc NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-socket.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-socket.diff
@@ -0,0 +1,3609 @@
+diff --git a/automation/inc/automation/communi.hxx b/automation/inc/automation/communi.hxx
+index 1ff4a31..f83e80b 100644
+--- automation/inc/automation/communi.hxx
++++ automation/inc/automation/communi.hxx
+@@ -98,7 +98,7 @@ public:
+ class CommunicationLinkViaSocket : public SimpleCommunicationLinkViaSocket, public osl::Thread
+ {
+ public:
+-	CommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket );
++	CommunicationLinkViaSocket( CommunicationManager *pMan, osl::StreamSocket *pSocket );
+ 	virtual ~CommunicationLinkViaSocket();
+ 
+ 	virtual BOOL IsCommunicationError();
+@@ -164,7 +164,7 @@ protected:
+ 
+ private:
+ 	CommunicationManagerServerViaSocket* pMyServer;
+-	vos::OAcceptorSocket *pAcceptorSocket;
++	osl::AcceptorSocket *pAcceptorSocket;
+ 	ULONG nPortToListen;
+ 	USHORT nMaxConnections;
+ 	ULONG nAddConnectionEventId;
+@@ -193,7 +193,7 @@ private:
+ 	ByteString aHostToTalk;
+ 	ULONG nPortToTalk;
+ protected:
+-	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, vos::OConnectorSocket *pCS ){ return new CommunicationLinkViaSocket( pCM, pCS ); }
++	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, osl::ConnectorSocket *pCS ){ return new CommunicationLinkViaSocket( pCM, pCS ); }
+ };
+ 
+ #endif
+diff --git a/automation/inc/automation/simplecm.hxx b/automation/inc/automation/simplecm.hxx
+index c8486f1..73bd7cf 100644
+--- automation/inc/automation/simplecm.hxx
++++ automation/inc/automation/simplecm.hxx
+@@ -44,8 +44,8 @@
+ #ifndef _STREAM_HXX //autogen
+ #include <tools/stream.hxx>
+ #endif
+-#ifndef _VOS_SOCKET_HXX_ //autogen
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ #ifndef _TOOLS_DEBUG_HXX //autogen
+ #include <tools/debug.hxx>
+@@ -357,19 +357,19 @@ private:
+ 	ByteString aMyName;
+ 
+ 	TCPIO* pTCPIO;
+-	vos::OStreamSocket *pStreamSocket;
++	osl::StreamSocket *pStreamSocket;
+ 
+ protected:
+-	SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket );
++	SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, osl::StreamSocket *pSocket );
+ 	virtual ~SimpleCommunicationLinkViaSocket();
+ 
+-    vos::OStreamSocket* GetStreamSocket() { return pStreamSocket; }
+-    void SetStreamSocket( vos::OStreamSocket* pSocket );
++    osl::StreamSocket* GetStreamSocket() { return pStreamSocket; }
++    void SetStreamSocket( osl::StreamSocket* pSocket );
+ 
+ 	SvStream *pReceiveStream;
+ 	BOOL DoReceiveDataStream();				/// Recieve DataPacket from Socket
+ 	virtual BOOL SendHandshake( HandshakeType aHandshakeType, SvStream* pData = NULL);
+-	void SetFinalRecieveTimeout();
++	BOOL IsReceiveReady();
+ 	BOOL bIsRequestShutdownPending;
+ 	virtual void WaitForShutdown()=0;
+ 	void SetNewPacketAsCurrent();
+@@ -378,7 +378,7 @@ protected:
+ class SimpleCommunicationLinkViaSocketWithReceiveCallbacks : public SimpleCommunicationLinkViaSocket
+ {
+ public:
+-	SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, vos::OStreamSocket *pSocket );
++	SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, osl::StreamSocket *pSocket );
+ 	~SimpleCommunicationLinkViaSocketWithReceiveCallbacks();
+ 	virtual BOOL ReceiveDataStream();
+ protected:
+@@ -391,7 +391,7 @@ class CommonSocketFunctions
+ public:
+ 	BOOL DoStartCommunication( CommunicationManager *pCM, ICommunicationManagerClient *pCMC, ByteString aHost, ULONG nPort );
+ protected:
+-	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, vos::OConnectorSocket *pCS )=0;
++	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, osl::ConnectorSocket *pCS )=0;
+ };
+ 
+ class SingleCommunicationManagerClientViaSocket : public SingleCommunicationManager, public ICommunicationManagerClient, CommonSocketFunctions
+@@ -407,7 +407,7 @@ private:
+ 	ByteString aHostToTalk;
+ 	ULONG nPortToTalk;
+ protected:
+-	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, vos::OConnectorSocket *pCS ){ return new SimpleCommunicationLinkViaSocketWithReceiveCallbacks( pCM, pCS ); }
++	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, osl::ConnectorSocket *pCS ){ return new SimpleCommunicationLinkViaSocketWithReceiveCallbacks( pCM, pCS ); }
+ };
+ 
+ #endif
+diff --git a/automation/source/communi/communi.cxx b/automation/source/communi/communi.cxx
+index 63f1ebb..a280681 100644
+--- automation/source/communi/communi.cxx
++++ automation/source/communi/communi.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+ #endif
+-#ifndef _VOS_SOCKET_HXX_ //autogen
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ #ifndef _STREAM_HXX //autogen
+ #include <tools/stream.hxx>
+@@ -89,7 +89,7 @@ SV_IMPL_PTRARR_SORT( CommunicationLinkList, CommunicationLink* );
+ 
+ osl::Mutex *pMPostUserEvent=NULL;		// Notwendig, da nicht threadfest
+ 
+-CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket )
++CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, osl::StreamSocket *pSocket )
+ : SimpleCommunicationLinkViaSocket( pMan, pSocket )
+ , nConnectionClosedEventId( 0 )
+ , nDataReceivedEventId( 0 )
+@@ -153,7 +153,7 @@ BOOL CommunicationLinkViaSocket::ShutdownCommunication()
+ 
+ 		join();
+ 
+-        vos::OStreamSocket *pTempSocket = GetStreamSocket();
++        osl::StreamSocket *pTempSocket = GetStreamSocket();
+         SetStreamSocket( NULL );
+         delete pTempSocket;
+ 
+@@ -521,10 +521,10 @@ void CommunicationManagerServerAcceptThread::run()
+ 	if ( !nPortToListen )
+ 		return;
+ 
+-	pAcceptorSocket = new vos::OAcceptorSocket();
+-	vos::OInetSocketAddr Addr;
++	pAcceptorSocket = new osl::AcceptorSocket();
++	osl::SocketAddr Addr;
+ 	Addr.setPort( nPortToListen );
+-	pAcceptorSocket->setReuseAddr( 1 );
++	pAcceptorSocket->setOption( osl_Socket_OptionReuseAddr, 1 );
+ 	if ( !pAcceptorSocket->bind( Addr ) )
+ 	{
+ 		return;
+@@ -535,16 +535,16 @@ void CommunicationManagerServerAcceptThread::run()
+ 	}
+ 
+ 
+-	vos::OStreamSocket *pStreamSocket = NULL;
++	osl::StreamSocket *pStreamSocket = NULL;
+ 
+ 	while ( schedule() )
+ 	{
+-		pStreamSocket = new vos::OStreamSocket;
++		pStreamSocket = new osl::StreamSocket;
+ 		switch ( pAcceptorSocket->acceptConnection( *pStreamSocket ) )
+ 		{
+-		case vos::ISocketTypes::TResult_Ok:
++		case osl_Socket_Ok:
+ 			{
+-				pStreamSocket->setTcpNoDelay( 1 );
++				pStreamSocket->setOption( osl_Socket_OptionTcpNoDelay, 1 );
+ 
+ 				TimeValue sNochEins = {0, 100};
+ 				while ( schedule() && xmNewConnection.Is() )	// Solange die letzte Connection nicht abgeholt wurde warten wir
+@@ -558,17 +558,17 @@ void CommunicationManagerServerAcceptThread::run()
+ 				}
+ 			}
+ 			break;
+-		case vos::ISocketTypes::TResult_TimedOut:
++		case osl_Socket_TimedOut:
+ 			delete pStreamSocket;
+ 			pStreamSocket = NULL;
+ 			break;
+-		case vos::ISocketTypes::TResult_Error:
++		case osl_Socket_Error:
+ 			delete pStreamSocket;
+ 			pStreamSocket = NULL;
+ 			break;
+ 
+-		case vos::ISocketTypes::TResult_Interrupted:
+-		case vos::ISocketTypes::TResult_InProgress:
++		case osl_Socket_Interrupted:
++		case osl_Socket_InProgress:
+ 			break;  // -Wall not handled...
+ 		}
+ 	}
+diff --git a/automation/source/server/server.cxx b/automation/source/server/server.cxx
+index c85bff3..ecee839 100644
+--- automation/source/server/server.cxx
++++ automation/source/server/server.cxx
+@@ -69,7 +69,7 @@
+ #include <tools/config.hxx>
+ #endif
+ 
+-#include <vos/socket.hxx>
++#include <osl/socket.hxx>
+ 
+ #if 1
+ #ifndef _SVTOOLS_TTPROPS_HXX // handmade
+diff --git a/automation/source/server/statemnt.cxx b/automation/source/server/statemnt.cxx
+index 6c748cf..b8a7329 100644
+--- automation/source/server/statemnt.cxx
++++ automation/source/server/statemnt.cxx
+@@ -174,7 +174,7 @@
+ #ifndef _BASIC_DISPDEFS_HXX
+ #include <basic/dispdefs.hxx>
+ #endif
+-#include <vos/socket.hxx>
++#include <osl/socket.hxx>
+ #include <svtools/pickerhistory.hxx>
+ #include <com/sun/star/util/XCancellable.hpp>
+ 
+diff --git a/automation/source/simplecm/simplecm.cxx b/automation/source/simplecm/simplecm.cxx
+index 4aa883f..78e7f54 100644
+--- automation/source/simplecm/simplecm.cxx
++++ automation/source/simplecm/simplecm.cxx
+@@ -147,7 +147,7 @@ void CommunicationLink::SetApplication( const ByteString& aApp )
+ }
+ 
+ 
+-SimpleCommunicationLinkViaSocket::SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket )
++SimpleCommunicationLinkViaSocket::SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, osl::StreamSocket *pSocket )
+ : CommunicationLink( pMan )
+ , aCommunicationPartner()
+ , aMyName()
+@@ -169,7 +169,7 @@ SimpleCommunicationLinkViaSocket::~SimpleCommunicationLinkViaSocket()
+     pStreamSocket = NULL;
+ }
+ 
+-void SimpleCommunicationLinkViaSocket::SetStreamSocket( vos::OStreamSocket* pSocket )
++void SimpleCommunicationLinkViaSocket::SetStreamSocket( osl::StreamSocket* pSocket )
+ {
+     if ( pTCPIO )
+         pTCPIO->SetStreamSocket( pSocket );
+@@ -190,15 +190,6 @@ BOOL SimpleCommunicationLinkViaSocket::StopCommunication()
+ 	return TRUE;
+ }
+ 
+-void SimpleCommunicationLinkViaSocket::SetFinalRecieveTimeout()
+-{
+-	if ( !IsCommunicationError() )
+-	{
+-        TimeValue aTime = {30, 0};   // 30 seconds
+-	    pStreamSocket->setRecvTimeout( &aTime );
+-	}
+-}
+-
+ BOOL SimpleCommunicationLinkViaSocket::IsCommunicationError()
+ {
+ 	return !pStreamSocket;
+@@ -213,9 +204,9 @@ ByteString SimpleCommunicationLinkViaSocket::GetCommunicationPartner( CM_NameTyp
+ 			case CM_DOTTED:
+ 				{
+ 					rtl::OUString aDotted;
+-					vos::OSocketAddr *pPeerAdr = new vos::OSocketAddr;
++					osl::SocketAddr *pPeerAdr = new osl::SocketAddr;
+ 					pStreamSocket->getPeerAddr( *pPeerAdr );
+-					((vos::OInetSocketAddr*)pPeerAdr)->getDottedAddr( aDotted );
++					osl_getDottedInetAddrOfSocketAddr( pPeerAdr->getHandle(), &aDotted.pData );
+ 					delete pPeerAdr;
+ 					return ByteString( UniString(aDotted), RTL_TEXTENCODING_UTF8 );
+ 				}
+@@ -224,8 +215,7 @@ ByteString SimpleCommunicationLinkViaSocket::GetCommunicationPartner( CM_NameTyp
+ 				{
+ 					if ( !aCommunicationPartner.Len() )
+ 					{
+-						rtl::OUString aFQDN;
+-						pStreamSocket->getPeerHost( aFQDN );
++						rtl::OUString aFQDN( pStreamSocket->getPeerHost() );
+ 						aCommunicationPartner = ByteString( UniString(aFQDN), RTL_TEXTENCODING_UTF8 );
+ 					}
+ 					return aCommunicationPartner;
+@@ -245,9 +235,9 @@ ByteString SimpleCommunicationLinkViaSocket::GetMyName( CM_NameType eType )
+ 			case CM_DOTTED:
+ 				{
+ 					rtl::OUString aDotted;
+-					vos::OSocketAddr *pPeerAdr = new vos::OSocketAddr;
++					osl::SocketAddr *pPeerAdr = new osl::SocketAddr;
+ 					pStreamSocket->getLocalAddr( *pPeerAdr );
+-					((vos::OInetSocketAddr*)pPeerAdr)->getDottedAddr( aDotted );
++					osl_getDottedInetAddrOfSocketAddr( pPeerAdr->getHandle(), &aDotted.pData );
+ 					delete pPeerAdr;
+ 					return ByteString( UniString(aDotted), RTL_TEXTENCODING_UTF8 );
+ 				}
+@@ -256,8 +246,7 @@ ByteString SimpleCommunicationLinkViaSocket::GetMyName( CM_NameType eType )
+ 				{
+ 					if ( !aMyName.Len() )
+ 					{
+-						rtl::OUString aFQDN;
+-						pStreamSocket->getLocalHost( aFQDN );
++						rtl::OUString aFQDN( pStreamSocket->getLocalHost() );
+ 						aMyName = ByteString( UniString(aFQDN), RTL_TEXTENCODING_UTF8 );
+ 					}
+ 					return aMyName;
+@@ -318,6 +307,17 @@ void SimpleCommunicationLinkViaSocket::SetNewPacketAsCurrent()
+ 	nServiceHeaderType = pPacketHandler->GetReceiveHeaderType();
+ }
+ 
++BOOL SimpleCommunicationLinkViaSocket::IsReceiveReady()
++{
++	if ( !IsCommunicationError() )
++	{
++        TimeValue aTime = {30, 0};   // 30 seconds
++	    return pStreamSocket->isRecvReady( &aTime );
++	}
++
++    return FALSE;
++}
++
+ BOOL SimpleCommunicationLinkViaSocket::SendHandshake( HandshakeType aHandshakeType, SvStream* pData )
+ {
+ 	BOOL bWasError;
+@@ -363,7 +363,7 @@ BOOL SimpleCommunicationLinkViaSocket::SendHandshake( HandshakeType aHandshakeTy
+ 	return !bWasError;
+ }
+ 
+-SimpleCommunicationLinkViaSocketWithReceiveCallbacks::SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, vos::OStreamSocket *pSocket )
++SimpleCommunicationLinkViaSocketWithReceiveCallbacks::SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, osl::StreamSocket *pSocket )
+ : SimpleCommunicationLinkViaSocket( pMan, pSocket )
+ {
+ }
+@@ -377,8 +377,9 @@ SimpleCommunicationLinkViaSocketWithReceiveCallbacks::~SimpleCommunicationLinkVi
+ void SimpleCommunicationLinkViaSocketWithReceiveCallbacks::WaitForShutdown()
+ {
+ 	CommunicationLinkRef rHold(this);		// avoid deleting this link before the end of the method
+-	SetFinalRecieveTimeout();
+-    while ( pMyManager && !IsCommunicationError() )
++	const TimeValue aTime = {30, 0};   // 30 seconds
++
++    while ( pMyManager && !IsCommunicationError() && IsReceiveReady() )
+ 		ReceiveDataStream();
+ }
+ 
+@@ -407,7 +408,7 @@ BOOL SimpleCommunicationLinkViaSocketWithReceiveCallbacks::ShutdownCommunication
+ 	if ( GetStreamSocket() )
+ 		GetStreamSocket()->close();
+ 
+-    vos::OStreamSocket *pTempSocket = GetStreamSocket();
++    osl::StreamSocket *pTempSocket = GetStreamSocket();
+     SetStreamSocket( NULL );
+     delete pTempSocket;
+ 
+@@ -447,8 +448,7 @@ BOOL CommunicationManager::StartCommunication( ByteString aHost, ULONG nPort )
+ 
+ ByteString CommunicationManager::GetMyName( CM_NameType )
+ {
+-	rtl::OUString aHostname;
+-	vos::OSocketAddr::getLocalHostname( aHostname );
++	rtl::OUString aHostname( osl::SocketAddr::getLocalHostname() );
+ 	return ByteString( UniString(aHostname), RTL_TEXTENCODING_UTF8 );
+ }
+ 
+@@ -683,22 +683,19 @@ SingleCommunicationManagerClientViaSocket::SingleCommunicationManagerClientViaSo
+ 
+ BOOL CommonSocketFunctions::DoStartCommunication( CommunicationManager *pCM, ICommunicationManagerClient *pCMC, ByteString aHost, ULONG nPort )
+ {
+-	vos::OInetSocketAddr Addr;
+-	vos::OConnectorSocket *pConnSocket;
+-
+-	Addr.setAddr( rtl::OUString( UniString( aHost, RTL_TEXTENCODING_UTF8 ) ) );
+-	Addr.setPort( nPort );
++	osl::SocketAddr Addr( rtl::OUString( UniString( aHost, RTL_TEXTENCODING_UTF8 ) ), nPort );
++	osl::ConnectorSocket *pConnSocket;
+ 
+ 	TimeValue aTV;
+ 	aTV.Seconds = 10;		// Warte 10 Sekunden
+ 	aTV.Nanosec = 0;
+ 	do
+ 	{
+-		pConnSocket = new vos::OConnectorSocket();
+-		pConnSocket->setTcpNoDelay( 1 );
+-		if ( pConnSocket->connect( Addr, &aTV ) == vos::ISocketTypes::TResult_Ok )
++		pConnSocket = new osl::ConnectorSocket();
++		pConnSocket->setOption( osl_Socket_OptionTcpNoDelay, 1 );
++		if ( pConnSocket->connect( Addr, &aTV ) == osl_Socket_Ok )
+ 		{
+-			pConnSocket->setTcpNoDelay( 1 );
++			pConnSocket->setOption( osl_Socket_OptionTcpNoDelay, 1 );
+ 
+ 			pCM->CallConnectionOpened( CreateCommunicationLink( pCM, pConnSocket ) );
+ 			return TRUE;
+diff --git a/automation/source/simplecm/tcpio.cxx b/automation/source/simplecm/tcpio.cxx
+index ca640c7..1fa1c4d 100644
+--- automation/source/simplecm/tcpio.cxx
++++ automation/source/simplecm/tcpio.cxx
+@@ -71,7 +71,7 @@ comm_USHORT TCPIO::ReceiveBytes( void* pBuffer, comm_UINT32 nLen )
+ 
+ 
+ // helper
+-void TCPIO::SetStreamSocket( vos::OStreamSocket *pSocket )
++void TCPIO::SetStreamSocket( osl::StreamSocket *pSocket )
+ {
+     osl::MutexGuard aRGuard( aMSocketReadAccess );
+     osl::MutexGuard aWGuard( aMSocketWriteAccess );
+diff --git a/automation/source/simplecm/tcpio.hxx b/automation/source/simplecm/tcpio.hxx
+index e078875..71bd6c4 100644
+--- automation/source/simplecm/tcpio.hxx
++++ automation/source/simplecm/tcpio.hxx
+@@ -36,8 +36,8 @@
+ #ifndef TCPIO_HXX
+ #define TCPIO_HXX
+ 
+-#ifndef _VOS_SOCKET_HXX_ //autogen
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ 
+ #ifndef _OSL_MUTEX_HXX_
+@@ -49,14 +49,14 @@
+ class TCPIO : public ITransmiter, public IReceiver
+ {
+ private:
+-	vos::OStreamSocket *pStreamSocket;
++	osl::StreamSocket *pStreamSocket;
+     osl::Mutex aMSocketReadAccess;
+     osl::Mutex aMSocketWriteAccess;
+ 
+ public:
+ 
+ 	///
+-	TCPIO( vos::OStreamSocket *pSocket ):pStreamSocket( pSocket ){}
++	TCPIO( osl::StreamSocket *pSocket ):pStreamSocket( pSocket ){}
+ 	virtual ~TCPIO(){}
+ 
+ 	
+@@ -67,7 +67,7 @@ public:
+ 	virtual comm_USHORT ReceiveBytes( void* pBuffer, comm_UINT32 nLen );
+ 
+     // helper
+-	void SetStreamSocket( vos::OStreamSocket *pSocket );
++	void SetStreamSocket( osl::StreamSocket *pSocket );
+ 
+ };
+ 
+diff --git a/automation/source/testtool/httprequest.cxx b/automation/source/testtool/httprequest.cxx
+index 778be47..d13715a 100644
+--- automation/source/testtool/httprequest.cxx
++++ automation/source/testtool/httprequest.cxx
+@@ -39,8 +39,8 @@
+ #include <stdio.h>
+ #include "httprequest.hxx"
+ 
+-#ifndef _VOS_SOCKET_HXX_ //autogen
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ #ifndef _TOOLS_DEBUG_HXX //autogen
+ #include <tools/debug.hxx>
+@@ -91,25 +91,23 @@ BOOL HttpRequest::Execute()
+     Init();
+ 
+     // Open channel to standard redir host
+-	vos::OInetSocketAddr aConnectAddr;
++	osl::SocketAddr aConnectAddr;
+ 
+     if ( aProxyHost.Len() )
+     {
+-	    aConnectAddr.setAddr( rtl::OUString( UniString( aProxyHost, RTL_TEXTENCODING_UTF8 ) ) );
+-	    aConnectAddr.setPort( nProxyPort );
++		aConnectAddr = osl::SocketAddr( rtl::OUString( UniString( aProxyHost, RTL_TEXTENCODING_UTF8 ) ), nProxyPort );
+     }
+     else
+     {
+-	    aConnectAddr.setAddr( rtl::OUString( UniString( aRequestHost, RTL_TEXTENCODING_UTF8 ) ) );
+-	    aConnectAddr.setPort( nRequestPort );
++	    aConnectAddr = osl::SocketAddr( rtl::OUString( UniString( aRequestHost, RTL_TEXTENCODING_UTF8 ) ), nRequestPort );
+     }
+ 
+ 	TimeValue aTV;
+ 	aTV.Seconds = 10;		// Warte 10 Sekunden
+ 	aTV.Nanosec = 0;
+ 
+-    pOutSocket = new vos::OConnectorSocket();
+-	if ( pOutSocket->connect( aConnectAddr, &aTV ) == vos::ISocketTypes::TResult_Ok )
++    pOutSocket = new osl::ConnectorSocket();
++	if ( pOutSocket->connect( aConnectAddr, &aTV ) == osl_Socket_Ok )
+ 	{
+ //		pOutSocket->setTcpNoDelay( 1 );
+ 	}
+@@ -215,7 +213,7 @@ Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.0; Linux
+ Connection: close
+ Content-Type: text/xml; charset=ISO-8859-1
+   */
+-void HttpRequest::SendString( vos::OStreamSocket* pSocket , ByteString aText )
++void HttpRequest::SendString( osl::StreamSocket* pSocket , ByteString aText )
+ {
+     if ( nStatus == HTTP_REQUEST_PENDING )
+         pSocket->write( aText.GetBuffer(), aText.Len() );
+diff --git a/automation/source/testtool/httprequest.hxx b/automation/source/testtool/httprequest.hxx
+index b4c6ebe..802f5b7 100644
+--- automation/source/testtool/httprequest.hxx
++++ automation/source/testtool/httprequest.hxx
+@@ -49,10 +49,10 @@
+ #include <tools/stream.hxx>
+ #endif
+ 
+-namespace vos
++namespace osl
+ {
+-    class OStreamSocket;
+-    class OConnectorSocket;
++    class StreamSocket;
++    class ConnectorSocket;
+ }
+ 
+ class HttpRequest
+@@ -64,14 +64,14 @@ class HttpRequest
+     USHORT nProxyPort;
+ 
+     USHORT nStatus;
+-    vos::OConnectorSocket *pOutSocket;
++    osl::ConnectorSocket *pOutSocket;
+ 
+     ByteString aHeader;
+     USHORT nResultId;
+     ByteString aContentType;
+     SvMemoryStream* pStream;
+ 
+-    void SendString( vos::OStreamSocket* pSocket, ByteString aText );
++    void SendString( osl::StreamSocket* pSocket, ByteString aText );
+     BOOL IsItem( ByteString aItem, ByteString aLine );
+     void Init();
+ public:
+diff --git a/configmgr/inc/pch/precompiled_configmgr.hxx b/configmgr/inc/pch/precompiled_configmgr.hxx
+index 3502b7c..03e1410 100644
+--- configmgr/inc/pch/precompiled_configmgr.hxx
++++ configmgr/inc/pch/precompiled_configmgr.hxx
+@@ -245,7 +245,7 @@
+ #include "vos/pipe.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+-#include "vos/socket.hxx"
++#include "osl/socket.hxx"
+ #include "osl/thread.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+diff --git a/configmgr/workben/local_io/cfglocal.cxx b/configmgr/workben/local_io/cfglocal.cxx
+index b77089d..1a0df5b 100644
+--- configmgr/workben/local_io/cfglocal.cxx
++++ configmgr/workben/local_io/cfglocal.cxx
+@@ -41,8 +41,8 @@
+ #include <string.h>
+ #include <stdio.h>
+ 
+-#ifndef _VOS_SOCKET_HXX_
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ 
+ #ifndef _CONFIGMGR_MISC_ATTRIBUTES_HXX_
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index ed8e57f..10e4786 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -674,7 +674,7 @@
+ #include "osl/module.hxx"
+ #include "osl/mutex.hxx"
+ #include "osl/security.hxx"
+-#include "vos/socket.hxx"
++#include "osl/socket.hxx"
+ #include "osl/thread.hxx"
+ //---MARKER---
+ #endif
+diff --git a/sfx2/source/appl/appbas.cxx b/sfx2/source/appl/appbas.cxx
+index 6637ade..f3ccb55 100644
+--- sfx2/source/appl/appbas.cxx
++++ sfx2/source/appl/appbas.cxx
+@@ -150,8 +150,8 @@
+ #define ITEMID_SEARCH SID_SEARCH_ITEM
+ 
+ #include <sfx2/srchitem.hxx>
+-#ifndef _VOS_SOCKET_HXX_ //autogen
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ 
+ #define SFX_TYPEMAP
+diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
+index 75c16fd..1add69f 100644
+--- vcl/source/app/svmain.cxx
++++ vcl/source/app/svmain.cxx
+@@ -69,8 +69,8 @@
+ #ifndef _OSL_SIGNAL_H_
+ #include <osl/signal.h>
+ #endif
+-#ifndef _VOS_SOCKET_HXX
+-#include <vos/socket.hxx>
++#ifndef _OSL_SOCKET_HXX_
++#include <osl/socket.hxx>
+ #endif
+ #ifndef _TOOLS_H
+ #include <tools/tools.h>
+diff --git a/vcl/unx/source/app/osssound.cxx b/vcl/unx/source/app/osssound.cxx
+index cd7360a..cf4be9a 100644
+--- vcl/unx/source/app/osssound.cxx
++++ vcl/unx/source/app/osssound.cxx
+@@ -58,7 +58,6 @@
+ #include <osl/thread.h>
+ 
+ using namespace vcl_sal;
+-using namespace vos;
+ using namespace osl;
+ 
+ int						OSSSound::s_nDevice = -1;
+diff --git a/vcl/unx/source/app/rptpsound.cxx b/vcl/unx/source/app/rptpsound.cxx
+index bb0b7f1..d671d8d 100644
+--- vcl/unx/source/app/rptpsound.cxx
++++ vcl/unx/source/app/rptpsound.cxx
+@@ -52,22 +52,21 @@
+ #include <unistd.h>
+ 
+ using namespace vcl_sal;
+-using namespace vos;
+ using namespace psp;
+ 
+ BOOL						RPTPSound::s_bConnected			= FALSE;
+ BOOL						RPTPSound::s_bFailedOnce		= FALSE;
+-OConnectorSocket			RPTPSound::s_aConnector;
++osl::ConnectorSocket		RPTPSound::s_aConnector;
+ RPTPSound::RPTPSoundList	RPTPSound::s_aSounds;
+ 
+ int RPTPSound::getFileDescriptor()
+ {
+-	return *(int*)(oslSocket)s_aConnector;
++	return *(int*)s_aConnector.getHandle();
+ }
+ 
+ BOOL RPTPSound::connect()
+ {
+-	if( s_bConnected && s_aConnector.isValid() )
++	if( s_bConnected && ( s_aConnector.getHandle() != 0 ) )
+ 		return TRUE;
+ 
+ 	if( s_bFailedOnce )
+@@ -111,11 +110,10 @@ BOOL RPTPSound::connect()
+ 
+ 	::rtl::OUString aHost( sBuf, strlen(sBuf), gsl_getSystemTextEncoding() );
+ 
+-	OInetSocketAddr aAddr( OSocketAddr::resolveHostname( aHost ) );
+-	aAddr.setPort( nPort );
+-	s_aConnector = OConnectorSocket();
++    osl::SocketAddr aAddr( aHost, nPort );
++	s_aConnector = osl::ConnectorSocket();
+ 	TimeValue aTimeout = { 0, 100000 };
+-	if( s_aConnector.connect( aAddr, &aTimeout ) == ISocketTypes::TResult_Ok )
++	if( s_aConnector.connect( aAddr, &aTimeout ) == osl_Socket_Ok )
+ 	{
+ 		s_bConnected = TRUE;
+ 		readLine();
+diff --git a/vcl/unx/source/app/salimpsound.hxx b/vcl/unx/source/app/salimpsound.hxx
+index b13b65b..e80efce 100644
+--- vcl/unx/source/app/salimpsound.hxx
++++ vcl/unx/source/app/salimpsound.hxx
+@@ -38,7 +38,7 @@
+ #include <vsound.hxx>
+ 
+ #include <osl/mutex.hxx>
+-#include <vos/socket.hxx>
++#include <osl/socket.hxx>
+ 
+ #include <tools/list.hxx>
+ #include <tools/link.hxx>
+@@ -235,7 +235,7 @@ class RPTPSound : public VSound
+         DECLARE_LIST( RPTPSoundList, RPTPSound* )
+ 
+ 	static BOOL								s_bConnected;
+-	static vos::OConnectorSocket		s_aConnector;
++	static osl::ConnectorSocket				s_aConnector;
+ 	static RPTPSoundList						s_aSounds;
+ 	static BOOL								s_bFailedOnce;
+ 
+diff --git a/vos/inc/vos/process.hxx b/vos/inc/vos/process.hxx
+index 2440c5a..eb59c0c 100644
+--- vos/inc/vos/process.hxx
++++ vos/inc/vos/process.hxx
+@@ -45,9 +45,6 @@
+ #ifndef _VOS_OBJECT_HXX_
+ #   include <vos/object.hxx>
+ #endif
+-#ifndef _VOS_SOCKET_HXX_
+-#   include <vos/socket.hxx>
+-#endif
+ #ifndef _OSL_PROCESS_H_
+ #   include <osl/process.h>
+ #endif
+diff --git a/vos/inc/vos/socket.hxx b/vos/inc/vos/socket.hxx
+deleted file mode 100644
+index e84c8df..0000000
+--- vos/inc/vos/socket.hxx
++++ /dev/null
+@@ -1,1152 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: socket.hxx,v $
+- *
+- *  $Revision: 1.7 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:40:06 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_SOCKET_HXX_
+-#define _VOS_SOCKET_HXX_
+-
+-#ifndef _VOS_TYPES_HXX_
+-#   include <vos/types.hxx>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#   include <vos/object.hxx>
+-#endif
+-#ifndef _VOS_ISTREAM_HXX_
+-#   include <vos/istream.hxx>
+-#endif
+-#ifndef _VOS_REFERMCE_HXX_
+-#   include <vos/refernce.hxx>
+-#endif
+-#ifndef _VOS_REFOBJ_HXX_
+-#   include <vos/refobj.hxx>
+-#endif
+-#ifndef _RTL_USTRING_HXX_
+-#   include <rtl/ustring.hxx>
+-#endif
+-#ifndef _OSL_SOCKET_H_
+-#   include <osl/socket.h>
+-#endif
+-
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-/** Base data types
+-*/
+-class ISocketTypes
+-{
+-public:
+-
+-    ISocketTypes() { }
+-    virtual ~ISocketTypes() { }
+-
+-    /*
+-        Represents the address-family of a socket
+-    */
+-    enum TAddrFamily {
+-        TFamily_Inet = osl_Socket_FamilyInet,       /* IP */
+-        TFamily_Ipx  = osl_Socket_FamilyIpx,        /* Novell IPX/SPX */
+-        TFamily_Invalid = osl_Socket_FamilyInvalid
+-    };
+-
+-    /*
+-        represent a specific protocol within a address-family
+-    */
+-    enum TProtocol {
+-        TProtocol_Ip    = osl_Socket_ProtocolIp,        /* for all af_inet */
+-        TProtocol_Ipx   = osl_Socket_ProtocolIpx,       /* af_ipx datagram sockets (IPX) */
+-        TProtocol_Spx   = osl_Socket_ProtocolSpx,       /* af_ipx seqpacket or stream for SPX */
+-        TProtocol_SpxII = osl_Socket_ProtocolSpxII,     /* af_ipx seqpacket or stream for SPX II */
+-        TProtocol_Invalid = osl_Socket_ProtocolInvalid
+-    };
+-
+-    /*
+-        Represents the type of a socket
+-    */
+-    enum TSocketType {
+-        TType_Stream    = osl_Socket_TypeStream,
+-        TType_Dgram     = osl_Socket_TypeDgram,
+-        TType_Raw       = osl_Socket_TypeRaw,
+-        TType_Rdm       = osl_Socket_TypeRdm,
+-        TType_SeqPacket = osl_Socket_TypeSeqPacket,
+-        TType_Invalid = osl_Socket_TypeInvalid
+-    };
+-
+-    /*
+-        Represents socket-options
+-    */
+-    enum TSocketOption {
+-        TOption_Debug       = osl_Socket_OptionDebug,
+-        TOption_AcceptConn  = osl_Socket_OptionAcceptConn,
+-        TOption_ReuseAddr   = osl_Socket_OptionReuseAddr,
+-        TOption_KeepAlive   = osl_Socket_OptionKeepAlive,
+-        TOption_DontRoute   = osl_Socket_OptionDontRoute,
+-        TOption_Broadcast   = osl_Socket_OptionBroadcast,
+-        TOption_UseLoopback = osl_Socket_OptionUseLoopback,
+-        TOption_Linger      = osl_Socket_OptionLinger,
+-        TOption_OOBinLine   = osl_Socket_OptionOOBinLine,
+-        TOption_SndBuf      = osl_Socket_OptionSndBuf,
+-        TOption_RcvBuf      = osl_Socket_OptionRcvBuf,
+-        TOption_SndLowat    = osl_Socket_OptionSndLowat,
+-        TOption_RcvLowat    = osl_Socket_OptionRcvLowat,
+-        TOption_SndTimeo    = osl_Socket_OptionSndTimeo,
+-        TOption_RcvTimeo    = osl_Socket_OptionRcvTimeo,
+-        TOption_Error       = osl_Socket_OptionError,
+-        TOption_Type        = osl_Socket_OptionType,
+-        TOption_TcpNoDelay  = osl_Socket_OptionTcpNoDelay,
+-        TOption_Invalid     = osl_Socket_OptionInvalid
+-    };
+-
+-    /*
+-        Represents the different socket-option levels
+-    */
+-    enum TSocketOptionLevel {
+-        TLevel_Socket = osl_Socket_LevelSocket,
+-        TLevel_Tcp    = osl_Socket_LevelTcp,
+-        TLevel_Invalid = osl_Socket_LevelInvalid
+-    };
+-
+-    /*
+-        Represents flags to be used with send/recv-calls.
+-    */
+-    enum TSocketMsgFlag {
+-        TMsg_Normal    = osl_Socket_MsgNormal,
+-        TMsg_OOB       = osl_Socket_MsgOOB,
+-        TMsg_Peek      = osl_Socket_MsgPeek,
+-        TMsg_DontRoute = osl_Socket_MsgDontRoute,
+-        TMsg_MaxIOVLen = osl_Socket_MsgMaxIOVLen,
+-        TMsg_Invalid   = osl_Socket_MsgInvalid
+-    };
+-
+-    /*
+-        Used by shutdown to denote which end of the socket to "close".
+-    */
+-    enum TSocketDirection {
+-        TDirection_Read      = osl_Socket_DirRead,
+-        TDirection_Write     = osl_Socket_DirWrite,
+-        TDirection_ReadWrite = osl_Socket_DirReadWrite,
+-        TDirection_Invalid   = osl_Socket_DirInvalid
+-    };
+-
+-    enum TSocketError {
+-        E_None              = osl_Socket_E_None,              /* no error */
+-        E_NotSocket         = osl_Socket_E_NotSocket,         /* Socket operation on non-socket */
+-        E_DestAddrReq       = osl_Socket_E_DestAddrReq,       /* Destination address required */
+-        E_MsgSize           = osl_Socket_E_MsgSize,           /* Message too sal_Int32 */
+-        E_Prototype         = osl_Socket_E_Prototype,         /* Protocol wrong type for socket */
+-        E_NoProtocol        = osl_Socket_E_NoProtocol,        /* Protocol not available */
+-        E_ProtocolNoSupport = osl_Socket_E_ProtocolNoSupport, /* Protocol not supported */
+-        E_TypeNoSupport     = osl_Socket_E_TypeNoSupport,     /* Socket type not supported */
+-        E_OpNotSupport      = osl_Socket_E_OpNotSupport,      /* Operation not supported on socket */
+-        E_PfNoSupport       = osl_Socket_E_PfNoSupport,       /* Protocol family not supported */
+-        E_AfNoSupport       = osl_Socket_E_AfNoSupport,       /* Address family not supported by */
+-                                                              /* protocol family */
+-        E_AddrInUse         = osl_Socket_E_AddrInUse,         /* Address already in use */
+-        E_AddrNotAvail      = osl_Socket_E_AddrNotAvail,      /* Can't assign requested address */
+-        E_NetDown           = osl_Socket_E_NetDown,           /* Network is down */
+-        E_NetUnreachable    = osl_Socket_E_NetUnreachable,    /* Network is unreachable */
+-        E_NetReset          = osl_Socket_E_NetReset,          /* Network dropped connection because */
+-                                                              /* of reset */
+-        E_ConnAborted       = osl_Socket_E_ConnAborted,       /* Software caused connection abort */
+-        E_ConnReset         = osl_Socket_E_ConnReset,         /* Connection reset by peer */
+-        E_NoBufferSpace     = osl_Socket_E_NoBufferSpace,     /* No buffer space available */
+-        E_IsConnected       = osl_Socket_E_IsConnected,       /* Socket is already connected */
+-        E_NotConnected      = osl_Socket_E_NotConnected,      /* Socket is not connected */
+-        E_Shutdown          = osl_Socket_E_Shutdown,          /* Can't send after socket shutdown */
+-        E_TooManyRefs       = osl_Socket_E_TooManyRefs,       /* Too many references: can't splice */
+-        E_TimedOut          = osl_Socket_E_TimedOut,          /* Connection timed out */
+-        E_ConnRefused       = osl_Socket_E_ConnRefused,       /* Connection refused */
+-        E_HostDown          = osl_Socket_E_HostDown,          /* Host is down */
+-        E_HostUnreachable   = osl_Socket_E_HostUnreachable,   /* No route to host */
+-        E_WouldBlock        = osl_Socket_E_WouldBlock,        /* call would block on non-blocking socket */
+-        E_Already           = osl_Socket_E_Already,           /* operation already in progress */
+-        E_InProgress        = osl_Socket_E_InProgress,        /* operation now in progress */
+-
+-        E_Invalid = osl_Socket_E_InvalidError   /* unmapped error */
+-    };
+-
+-    enum TResult {
+-        TResult_Ok          = osl_Socket_Ok,          /* successful completion */
+-        TResult_Error       = osl_Socket_Error,       /* error occured, check osl_getLastSocketError() for details */
+-        TResult_TimedOut    = osl_Socket_TimedOut,    /* blocking operation timed out */
+-        TResult_Interrupted = osl_Socket_Interrupted, /* blocking operation was interrupted */
+-        TResult_InProgress  = osl_Socket_InProgress   /* nonblocking operation is in progress */
+-    };
+-};
+-
+-
+-/** Base class for socket addresses.
+-*/
+-class ISocketAddr : public vos::ISocketTypes
+-{
+-public:
+-    virtual ~ISocketAddr() { }
+-
+-
+-    virtual TAddrFamily SAL_CALL getFamily() const= 0;
+-    virtual TResult SAL_CALL getHostname(::rtl::OUString& strHostName) const= 0;
+-    virtual SAL_CALL operator oslSocketAddr() const= 0;
+-    virtual void SAL_CALL operator= (oslSocketAddr Addr)= 0;
+-    virtual sal_Bool SAL_CALL operator== (oslSocketAddr Addr)= 0;
+-};
+-
+-class OSocketAddr : public vos::ISocketAddr,
+-            public vos::OObject
+-
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OSocketAddr);
+-public:
+-
+-    /** Creates socket address of unknown type.
+-    */
+-    OSocketAddr();
+-
+-    /** Copy constructor.
+-    */
+-    OSocketAddr(const OSocketAddr& Addr);
+-
+-    /**
+-    */
+-    OSocketAddr(oslSocketAddr Addr);
+-
+-    /** destroys underlying oslSocketAddress
+-    */
+-    virtual ~OSocketAddr();
+-
+-    /** Queries the socket for its address family.
+-        @return the address family of the socket.
+-    */
+-    virtual TAddrFamily SAL_CALL getFamily() const;
+-
+-    /** Cast Object to the underlying oslSocketAddr.
+-    */
+-    virtual SAL_CALL operator oslSocketAddr() const;
+-
+-    /** Converts the address to a (human readable) domain-name.
+-        @return the hostname represented by the address.
+-        On failure returns the empty string.
+-    */
+-    virtual TResult SAL_CALL getHostname(::rtl::OUString& strHostName) const;
+-
+-    /** Get the hostname for the local interface.
+-        @return the hostname or an error.
+-    */
+-    static TResult SAL_CALL getLocalHostname(::rtl::OUString& strLocalHostName);
+-
+-    /** Tries to find an address for a host.
+-        @return A new created socket-address or 0 if the name could not be found.
+-    */
+-    static oslSocketAddr SAL_CALL resolveHostname(const ::rtl::OUString& strHostName);
+-
+-    /** Wraps itself around the osl Socket-Address.
+-        The object assumes ownership of the Addr, it
+-        will be destroyed by destructor(). If the socket is already attached to
+-        an oslSocketAddr, the existing one will be destroyed.
+-    */
+-    virtual void SAL_CALL operator= (oslSocketAddr Addr);
+-
+-    /** Compares to Addr
+-    */
+-    virtual sal_Bool SAL_CALL operator== (oslSocketAddr Addr);
+-
+-    /** Makes a copy of Addr.
+-    */
+-    OSocketAddr& SAL_CALL operator= (const OSocketAddr& Addr);
+-
+-
+-protected:
+-
+-    oslSocketAddr m_SockAddr;
+-};
+-
+-
+-/** Represents an internet-address.
+-*/
+-class OInetSocketAddr : public vos::OSocketAddr
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OInetSocketAddr);
+-public:
+-
+-    /** Creates an empty internet-address (INADDR_ANY).
+-    */
+-    OInetSocketAddr();
+-
+-    /** Wraps itself around the osl Socket-Address.
+-        The object assumes ownership of the Addr, it
+-        will be destroyed by ~OInetSocketAddr().
+-    */
+-    OInetSocketAddr(oslSocketAddr Addr);
+-
+-    /**
+-        Create a socket address either from a dotted decimal address
+-        (e.g. 141.99.128.50) or a hostname (e.g. www.stardiv.de).
+-    */
+-    OInetSocketAddr(const ::rtl::OUString& strAddrOrHostName, sal_Int32 Port);
+-
+-    /**
+-        Copy constructor.
+-    */
+-    OInetSocketAddr(const OInetSocketAddr& Addr);
+-
+-    /**
+-    */
+-    OInetSocketAddr(const OSocketAddr& Addr);
+-
+-
+-    virtual ~OInetSocketAddr();
+-
+-    /**
+-    */
+-    virtual void SAL_CALL operator= (oslSocketAddr Addr);
+-
+-    /**
+-    */
+-    virtual sal_Bool SAL_CALL operator== (oslSocketAddr Addr);
+-
+-    /**
+-    */
+-    OInetSocketAddr& SAL_CALL operator= (const OInetSocketAddr& Addr);
+-
+-    /**
+-    */
+-    OInetSocketAddr& SAL_CALL operator= (const OSocketAddr& Addr);
+-
+-    /**
+-        Tries to find the port associated with the given service/protocol-
+-        pair (e.g. "ftp"/"tcp").
+-        @return the port number in host-byte order or CVOS_PORT_NONE
+-        if no service/protocol pair could be found.
+-    */
+-    static sal_Int32 SAL_CALL getServicePort(const ::rtl::OUString& strServiceName,
+-                              const ::rtl::OUString& strProtocolName= ::rtl::OUString::createFromAscii( "tcp" ) );
+-
+-
+-    /** Delivers the port number of the address.
+-        @return the port in host-byte order or or OSL_INVALID_PORT on errors.
+-    */
+-    sal_Int32   SAL_CALL getPort() const;
+-
+-    /** Sets the port number of the address.
+-        @return False if the port couldn't be set
+-        (e.g because the address is not of family TFamily_Inet).
+-    */
+-    sal_Bool    SAL_CALL setPort(sal_Int32 Port);
+-
+-    /** @return the dotted-address-form (141.99.128.90) of this address.
+-        On failure returns the empty string.
+-    */
+-    TResult SAL_CALL getDottedAddr(::rtl::OUString& strDottedAddr) const;
+-
+-    /** Sets the host-part of the address from the dotted-address-form (141.99.128.90)
+-        or from a hostname.
+-        @param strDottedAddrOrHostname the address in dotted form or a hostname.
+-    */
+-    sal_Bool SAL_CALL setAddr(const ::rtl::OUString& strDottedAddrOrHostname);
+-
+-};
+-
+-/** Represents an IPX/SPX address.
+-*/
+-class OIpxSocketAddr :  public vos::OSocketAddr
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OIpxSocketAddr);
+-public:
+-
+-    typedef oslSocketIpxNetNumber  TIpxNetNumber;
+-    typedef oslSocketIpxNodeNumber TIpxNodeNumber;
+-
+-    /** Creates an empty ipx-address.
+-    */
+-    OIpxSocketAddr();
+-
+-    /** Wraps itself around the osl Socket-Address.
+-        The object assumes ownership of the Addr, it
+-        will be destroyed by the destructor.
+-    */
+-    OIpxSocketAddr(oslSocketAddr Addr);
+-
+-    /** Create an IPX/SPX socketaddress from native parameters.
+-    */
+-    OIpxSocketAddr(const ::rtl::OUString& strNetNumber,
+-                   const ::rtl::OUString& strNodeNumber,
+-                   sal_uInt32 SocketNumber);
+-
+-    /** Copy constructor.
+-    */
+-    OIpxSocketAddr(const OIpxSocketAddr& Addr);
+-
+-    /**
+-    */
+-    OIpxSocketAddr(const OSocketAddr& Addr);
+-
+-    virtual  ~OIpxSocketAddr();
+-
+-    /**
+-    */
+-    virtual void SAL_CALL operator= (oslSocketAddr Addr);
+-
+-    /**
+-    */
+-    virtual sal_Bool SAL_CALL operator== (oslSocketAddr Addr);
+-
+-    /**
+-    */
+-    OIpxSocketAddr& SAL_CALL operator= (const OIpxSocketAddr& Addr);
+-
+-    /**
+-    */
+-    OIpxSocketAddr& SAL_CALL operator= (const OSocketAddr& Addr);
+-
+-    /**
+-    */
+-    TResult SAL_CALL getNetNumber(TIpxNetNumber& NetNumber) const;
+-
+-    /**
+-    */
+-    TResult SAL_CALL getNodeNumber(TIpxNodeNumber& NodeNumber) const;
+-
+-    /**
+-    */
+-    sal_uInt32 SAL_CALL getSocketNumber() const;
+-
+-    /** Builds a human readable string in the format network.node:socket.
+-        The numbers are given in hexadecimal form.
+-    */
+-    void SAL_CALL getAddressString(::rtl::OUString& strAddressString) const;
+-};
+-
+-
+-/** Represents a socket.
+-*/
+-class OSocket : public vos::ISocketTypes,
+-                public vos::OReference,
+-                public vos::OObject
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OSocket);
+-
+-protected:
+-    typedef ORefObj<oslSocket> SockRef;
+-
+-    SockRef* m_pSockRef;
+-
+-    TimeValue* m_pSendTimeout;
+-    TimeValue* m_pRecvTimeout;
+-
+-public:
+-
+-    /** Does not create a socket. Use assignment operator to
+-        make this a useable socket.
+-    */
+-    OSocket();
+-
+-    /** Creates a socket.
+-        @param Family
+-        @param Type
+-        @param Protocol
+-    */
+-    OSocket(TSocketType Type,
+-            TAddrFamily Family = TFamily_Inet,
+-            TProtocol   Protocol = TProtocol_Ip);
+-
+-    /** Copy constructor.
+-    */
+-    OSocket(const OSocket& sock);
+-
+-    /** Creates socket as wrapper around the underlying oslSocket.
+-        @param Socket
+-    */
+-    OSocket(oslSocket Socket);
+-
+-    /** Destructor. Destroys the underlying oslSocket.
+-    */
+-    virtual ~OSocket();
+-
+-    /** Create a socket with the given attributes.
+-        If socket was already created, the old one will be discarded.
+-        @param Type
+-        @param Family
+-        @param Protocol
+-        @return True if socket was successfully created.
+-    */
+-    sal_Bool SAL_CALL create(TSocketType Type,
+-                   TAddrFamily Family = TFamily_Inet,
+-                   TProtocol   Protocol = TProtocol_Ip);
+-
+-    /** Assignment operator. If socket was already created, the old one will
+-        be discarded.
+-    */
+-    OSocket& SAL_CALL operator= (const OSocket& sock);
+-
+-    /** Allow cast to underlying oslSocket.
+-    */
+-    SAL_CALL operator oslSocket() const;
+-
+-    /** Checks if the socket is valid.
+-        @return True if the object represents a valid socket.
+-    */
+-    sal_Bool SAL_CALL isValid() const;
+-
+-    sal_Bool SAL_CALL operator==( const OSocket& rSocket )
+-    {
+-        return m_pSockRef == rSocket.m_pSockRef;
+-    }
+-
+-    /** Closes the socket.
+-    */
+-    virtual void SAL_CALL close();
+-
+-    /** Retrieves the address of the local interface of this socket.
+-        @param Addr [out] receives the address.
+-    */
+-    void SAL_CALL getLocalAddr(OSocketAddr& Addr) const;
+-
+-    /** Get the local port of the socket.
+-        @return the port number or OSL_INVALID_PORT on errors.
+-    */
+-    sal_Int32   SAL_CALL getLocalPort() const;
+-
+-    /** Get the hostname for the local interface.
+-        @return the hostname or an empty string ("").
+-    */
+-    TResult SAL_CALL getLocalHost(::rtl::OUString& strLocalHost) const;
+-
+-    /** Retrieves the address of the remote host of this socket.
+-        @param Addr [out] receives the address.
+-    */
+-    void SAL_CALL getPeerAddr(OSocketAddr& Addr) const;
+-
+-    /** Get the remote port of the socket.
+-        @return the port number or OSL_INVALID_PORT on errors.
+-    */
+-    sal_Int32   SAL_CALL getPeerPort() const;
+-
+-    /** Get the hostname for the remote interface.
+-        @return the hostname or an empty string ("").
+-    */
+-    TResult SAL_CALL getPeerHost(::rtl::OUString& strPeerHost) const;
+-
+-    /** Binds the socket to the specified (local) interface.
+-        @param LocalInterface Address of the Interface
+-        @return True if bind was successful.
+-    */
+-    sal_Bool SAL_CALL bind(const OSocketAddr& LocalInterface);
+-
+-
+-    /** Blocking send operations will unblock after the send-timeout.
+-        @return 0 for disables timeout else timeout value.
+-    */
+-    const TimeValue* SAL_CALL getSendTimeout() const
+-        { return m_pSendTimeout; }
+-
+-    /** Blocking receive operations will unblock after the send-timeout.
+-        @return 0 for disables timeout else timeout value.
+-    */
+-    const TimeValue* SAL_CALL getRecvTimeout() const
+-        { return m_pRecvTimeout; }
+-
+-    /** Blocking send operations will unblock after the send-timeout.
+-        @param time pTimeout == 0 disables timeout. pTimeout != 0 sets timeout value.
+-    */
+-    void SAL_CALL setSendTimeout(const TimeValue* pTimeout = 0);
+-
+-    /** Blocking receive operations will unblock after the send-timeout.
+-        @param time pTimeout == 0 disables timeout. pTimeout != 0 sets timeout value.
+-    */
+-    void SAL_CALL setRecvTimeout(const TimeValue* pTimeout = 0);
+-
+-    /** Checks if read operations will block.
+-        You can specify a timeout-value in seconds/nanoseconds that denotes
+-        how sal_Int32 the operation will block if the Socket is not ready.
+-        @return True if read operations (recv, recvFrom, accept) on the Socket
+-        will NOT block; False if it would block or if an error occured.
+-
+-        @param pTimeout if 0, the operation will block without a timeout. Otherwise
+-        the specified amout of time.
+-    */
+-    sal_Bool    SAL_CALL isRecvReady(const TimeValue* pTimeout = 0) const;
+-
+-    /** Checks if send operations will block.
+-        You can specify a timeout-value in seconds/nanoseconds that denotes
+-        how sal_Int32 the operation will block if the Socket is not ready.
+-        @return True if send operations (send, sendTo) on the Socket
+-        will NOT block; False if it would block or if an error occured.
+-
+-        @param pTimeout if 0, the operation will block without a timeout. Otherwise
+-        the specified amout of time.
+-    */
+-    sal_Bool    SAL_CALL isSendReady(const TimeValue* pTimeout = 0) const;
+-
+-    /** Checks if a request for out-of-band data will block.
+-        You can specify a timeout-value in seconds/nanoseconds that denotes
+-        how sal_Int32 the operation will block if the Socket has no pending OOB data.
+-
+-        @return True if OOB-request operations (recv with appropriate flags)
+-        on the Socket will NOT block; False if it would block or if an error occured.
+-
+-        @param pTimeout if 0, the operation will block without a timeout. Otherwise
+-        the specified amout of time.
+-    */
+-    sal_Bool    SAL_CALL isExceptionPending(const TimeValue* pTimeout = 0) const;
+-
+-    /** Retrieves option-attributes associated with the socket.
+-        @param Option The attribute to query.
+-        Valid values (depending on the Level) are:
+-        <ul>
+-        <li> TOption_Debug
+-        <li> TOption_AcceptConn
+-        <li> TOption_ReuseAddr
+-        <li> TOption_KeepAlive
+-        <li> TOption_DontRoute
+-        <li> TOption_Broadcast
+-        <li> TOption_UseLoopback
+-        <li> TOption_Linger
+-        <li> TOption_OOBinLine
+-        <li> TOption_SndBuf
+-        <li> TOption_RcvBuf
+-        <li> TOption_SndLowat
+-        <li> TOption_RcvLowat
+-        <li> TOption_SndTimeo
+-        <li> TOption_RcvTimeo
+-        <li> TOption_Error
+-        <li> TOption_Type
+-        <li> TOption_TcpNoDelay
+-        </ul>
+-        If not above mentioned otherwise, the options are only valid for
+-        level TLevel_Socket.
+-
+-        @param pBuffer The Buffer will be filled with the attribute.
+-
+-        @param BufferSize The size of pBuffer.
+-
+-        @param Level The option level. Valid values are:
+-        <ul>
+-        <li> TLevel_Socket : Socket Level
+-        <li> TLevel_Tcp    : Level of Transmission Control Protocol
+-        </ul>
+-
+-        @return The size of the attribute copied into pBuffer ot -1 if an error
+-        occured.
+-    */
+-    sal_Int32 SAL_CALL getOption(TSocketOption Option,
+-                      void* pBuffer,
+-                      sal_uInt32 BufferLen,
+-                      TSocketOptionLevel Level= TLevel_Socket) const;
+-
+-    /** Sets the sockets attributes.
+-
+-        @param Option denotes the option to modify.
+-        Valid values (depending on the Level) are:
+-        <ul>
+-        <li> TOption_Debug
+-        <li> TOption_AcceptConn
+-        <li> TOption_ReuseAddr
+-        <li> TOption_KeepAlive
+-        <li> TOption_DontRoute
+-        <li> TOption_Broadcast
+-        <li> TOption_UseLoopback
+-        <li> TOption_Linger
+-        <li> TOption_OOBinLine
+-        <li> TOption_SndBuf
+-        <li> TOption_RcvBuf
+-        <li> TOption_SndLowat
+-        <li> TOption_RcvLowat
+-        <li> TOption_SndTimeo
+-        <li> TOption_RcvTimeo
+-        <li> TOption_Error
+-        <li> TOption_Type
+-        <li> TOption_TcpNoDelay
+-        </ul>
+-        If not above mentioned otherwise, the options are only valid for
+-        level TLevel_Socket.
+-
+-        @param pBuffer Pointer to a Buffer which contains the attribute-value.
+-
+-        @param BufferSize contains the length of the Buffer.
+-
+-        @param Level selects the level for which an option should be changed.
+-        Valid values are:
+-        <ul>
+-        <li> TLevel_Socket : Socket Level
+-        <li> TLevel_Tcp    : Level of Transmission Control Protocol
+-        </ul>
+-
+-        @return True if the option could be changed.
+-    */
+-    sal_Bool SAL_CALL setOption(TSocketOption Option,
+-                      void* pBuffer,
+-                      sal_uInt32 BufferLen,
+-                      TSocketOptionLevel Level= TLevel_Socket) const;
+-
+-
+-    /** Enables/disables non-blocking mode of the socket.
+-        @param On If True, non-blocking mode will be switched on, if False
+-        socket will become a blocking socket, which is the default behaviour of a
+-        socket.
+-        @return True if mode could be set.
+-    */
+-    sal_Bool SAL_CALL enableNonBlockingMode(sal_Bool On= sal_True);
+-
+-    /** Query non-blocking mode of the socket.
+-    @return True if non-blocking mode is set.
+-    */
+-    sal_Bool SAL_CALL isNonBlockingMode() const;
+-
+-    /** Queries the socket for its type.
+-        @return one of:
+-        <ul>
+-        <li> TType_Stream
+-        <li> TType_Dgram
+-        <li> TType_Raw
+-        <li> TType_Rdm
+-        <li> TType_SeqPacket
+-        <li> TType_Invalid
+-        </ul>
+-    */
+-    TSocketType SAL_CALL getType() const;
+-
+-
+-    /** Gets and clears the error status of the socket.
+-        @returns the current error state.
+-    */
+-    sal_Int32   SAL_CALL clearError() const;
+-
+-    /** Enables/Disables debugging.
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setDebug(sal_Int32 opt = -1) const;
+-
+-    /** Allow the socket to be bound to an address that is already in use.
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setReuseAddr(sal_Int32 opt = -1) const;
+-
+-    /** Send keepalive-packets.
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setKeepAlive(sal_Int32 opt = -1) const;
+-
+-    /** Do not route: send directly to interface.
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setDontRoute(sal_Int32 opt = -1) const;
+-
+-
+-    /** Allow transmission of broadcast messages on the socket.
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setBroadcast(sal_Int32 opt = -1) const;
+-
+-    /** Receive out-of-band data in the normal data stream.
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setOobinline(sal_Int32 opt = -1) const;
+-
+-    /** Linger on close if unsent data is present.
+-        @param time values > 0 enable lingering with a timeout of time in seconds.
+-        If time is 0, lingering will be disabled. If time is -1 no changes will occur.
+-        @return the previous setting (0 == off, > 0 timeout-value in seconds).
+-    */
+-    sal_Int32   SAL_CALL setLinger(sal_Int32 time = -1) const;
+-
+-    /** Specify buffer size for sends.
+-        You might want to use getOption() to check if the size changes were
+-        really successful.
+-        @param size Size >= 0 sets the size, -1 won't change anything.
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setSendBufSize(sal_Int32 size =-1) const;
+-
+-    /** Specify buffer size for receives.
+-        You might want to use getOption() to check if the size changes were
+-        really successful.
+-        @param size Size >= 0 sets the size, -1 won't change anything.
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setRecvBufSize(sal_Int32 size =-1) const;
+-
+-    /** Disables the Nagle algorithm for send coalescing. (Do not
+-        collect data until a packet is full, instead send immediatly.
+-        This increases network traffic but might improve response-times.)
+-        @param opt 1 sets, 0 resets, -1 won't change anything
+-        @return the previous setting
+-    */
+-    sal_Int32   SAL_CALL setTcpNoDelay(sal_Int32 sz =-1) const;
+-
+-    /** Builds a string with the last error-message for the socket.
+-        @param pBuffer is filled with the error message.
+-        @param nSize the size of pBuffer. The message will be cut
+-        sal_Int16 if the buffer isn't large enough, but still remains
+-        a valid zero-terminated string.
+-    */
+-    void SAL_CALL getError(::rtl::OUString& strError) const;
+-
+-    /** Delivers a constant decribing the last error for the socket system.
+-        @return ENONE if no error occured, invalid_SocketError if
+-        an unknown (unmapped) error occured, otherwise an enum describing the
+-        error.
+-    */
+-    TSocketError SAL_CALL getError() const;
+-
+-};
+-
+-/** A socket to send or receive a stream of data.
+-*/
+-class OStreamSocket : public vos::OSocket,
+-                      public vos::IStream
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OStreamSocket);
+-public:
+-
+-    /** Creates an unattached socket. You must attach the socket to an oslSocket
+-        e.g. by using the operator=(oslSocket), before you can use the stream-
+-        functionality of the object.
+-    */
+-    OStreamSocket();
+-
+-
+-
+-    /** Creates socket as wrapper around the underlying oslSocket.
+-        @param Socket
+-    */
+-    OStreamSocket(oslSocket Socket);
+-
+-
+-    /** Copy constructor.
+-        @param Socket
+-    */
+-    OStreamSocket(const OStreamSocket& Socket);
+-
+-
+-    /**
+-    */
+-    OStreamSocket(const OSocket& Socket);
+-
+-    /** Destructor. Calls shutdown(readwrite) and close().
+-    */
+-    virtual ~OStreamSocket();
+-
+-    /** Closes the socket after calling shutdown.
+-    */
+-    virtual void SAL_CALL close();
+-
+-    /** Attaches the oslSocket to this object. If the object
+-        already was attached to an oslSocket, the old one will
+-        be closed and destroyed.
+-        @param Socket.
+-    */
+-    OStreamSocket& SAL_CALL operator=(oslSocket Socket);
+-
+-    /**
+-    */
+-    OStreamSocket& SAL_CALL operator=(const OSocket& Socket);
+-
+-    /**
+-    */
+-    OStreamSocket& SAL_CALL operator=(const OStreamSocket& Socket);
+-
+-    /** Retrieves n bytes from the stream and copies them into pBuffer.
+-        The method avoids incomplete reads due to packet boundaries.
+-        @param pBuffer receives the read data.
+-        @param n the number of bytes to read. pBuffer must be large enough
+-        to hold the n bytes!
+-        @return the number of read bytes. The number will only be smaller than
+-        n if an exceptional condition (e.g. connection closed) occurs.
+-    */
+-    virtual sal_Int32 SAL_CALL read(void* pBuffer, sal_uInt32 n) const;
+-
+-    /** Writes n bytes from pBuffer to the stream. The method avoids
+-        incomplete writes due to packet boundaries.
+-        @param pBuffer contains the data to be written.
+-        @param n the number of bytes to write.
+-        @return the number of written bytes. The number will only be smaller than
+-        n if an exceptional condition (e.g. connection closed) occurs.
+-    */
+-    virtual sal_Int32 SAL_CALL write(const void* pBuffer, sal_uInt32 n);
+-
+-    /** Checks if socket is closed.
+-        @return True if socket is closed.
+-    */
+-    virtual sal_Bool SAL_CALL isEof() const;
+-
+-    /** Tries to receives BytesToRead data from the connected socket,
+-
+-        @param pBuffer [out] Points to a buffer that will be filled with the received
+-        data.
+-        @param BytesToRead [in] The number of bytes to read. pBuffer must have at least
+-        this size.
+-        @param Flag [in] Modifier for the call. Valid values are:
+-        <ul>
+-        <li> TMsg_Normal
+-        <li> TMsg_OOB
+-        <li> TMsg_Peek
+-        <li> TMsg_DontRoute
+-        <li> TMsg_MaxIOVLen
+-        </ul>
+-
+-        @return the number of received bytes.
+-    */
+-    sal_Int32   SAL_CALL recv(void* pBuffer,
+-                 sal_uInt32 BytesToRead,
+-                 TSocketMsgFlag Flag= TMsg_Normal);
+-
+-
+-    /** Tries to sends BytesToSend data from the connected socket.
+-
+-        @param pBuffer [in] Points to a buffer that contains the send-data.
+-        @param BytesToSend [in] The number of bytes to send. pBuffer must have at least
+-        this size.
+-        @param Flag [in] Modifier for the call. Valid values are:
+-        <ul>
+-        <li> TMsg_Normal
+-        <li> TMsg_OOB
+-        <li> TMsg_Peek
+-        <li> TMsg_DontRoute
+-        <li> TMsg_MaxIOVLen
+-        </ul>
+-
+-        @return the number of transfered bytes.
+-    */
+-    sal_Int32 SAL_CALL send(const void* pBuffer,
+-                 sal_uInt32 BytesToSend,
+-                 TSocketMsgFlag Flag= TMsg_Normal);
+-
+-    /** Closes a connection in a controlled manner.
+-        @param Direction Says which "end" of the socket is to be closed.
+-    */
+-    sal_Bool SAL_CALL shutdown(TSocketDirection Direction= TDirection_ReadWrite);
+-protected:
+-
+-    /** Creates a socket. This constructor is used only by derived classes
+-        (e.g. OConnectorSocket).
+-        @param Family
+-        @param Protocol
+-        @param Type For some protocols it might be desirable to
+-                    use a different type than sock_stream (like sock_seqpacket).
+-                    Therefore we do not hide this parameter here.
+-    */
+-    OStreamSocket(TAddrFamily Family,
+-                  TProtocol   Protocol,
+-                  TSocketType Type= TType_Stream);
+-
+-
+-};
+-
+-
+-/** A socket to accept incoming connections.
+-*/
+-class OAcceptorSocket : public vos::OSocket
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OAcceptorSocket);
+-public:
+-
+-    /** Creates a socket that can accept connections.
+-        @param Type For some protocols it might be desirable to
+-                    use a different type than sock_stream (like sock_seqpacket).
+-                    Therefore we do not hide this parameter here.
+-    */
+-    OAcceptorSocket(TAddrFamily Family= TFamily_Inet,
+-                    TProtocol   Protocol= TProtocol_Ip,
+-                    TSocketType Type= TType_Stream);
+-
+-    /** Copy constructor.
+-    */
+-    OAcceptorSocket(const OAcceptorSocket& Socket);
+-
+-    /** Destructor. Closes the socket and destroys the underlying oslSocket.
+-    */
+-    virtual ~OAcceptorSocket();
+-
+-    /** Closes the socket. Also calls shutdown, needed to unblock
+-        accept on some systems.
+-    */
+-    virtual void SAL_CALL close();
+-
+-    /** Prepare a socket for the accept-call.
+-        @param MaxPendingConnections The maximum number of pending
+-        connections (waiting to be accepted) on this socket. If you use
+-        -1, a system default value is used.
+-        @return True if call was successful.
+-    */
+-    sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
+-
+-    /** Accepts incoming connections on the socket. You must
+-        precede this call with bind() and listen().
+-        @param Connection receives the incoming connection.
+-        @return result_ok: if a connection has been accepted,
+-                result_timeout: if m_RecvTimeout milliseconds passed without connect,
+-                result_error: on errors.
+-    */
+-    TResult SAL_CALL acceptConnection(OStreamSocket& Connection);
+-
+-    /** Accepts incoming connections on the socket. You must
+-        precede this call with bind() and listen().
+-        @param PeerAddr receives the address of the connecting entity
+-        (your communication partner).
+-        @param Connection receives the incoming connection.
+-        @return True if a connection has been accepted, False on errors.
+-        @return result_ok: if a connection has been accepted,
+-                result_timeout: if m_RecvTimeout milliseconds passed without connect,
+-                result_error: on errors.
+-    */
+-    TResult SAL_CALL acceptConnection(OStreamSocket&    Connection,
+-                             OSocketAddr& PeerAddr);
+-
+-};
+-
+-
+-/** A socket to initiate a conenction.
+-*/
+-class OConnectorSocket : public vos::OStreamSocket
+-{
+-    VOS_DECLARE_CLASSINFO(vos::OConnectorSocket);
+-public:
+-
+-    /** Creates a socket that can accept connections.
+-        @param Type For some protocols it might be desirable to
+-                    use a different type than sock_stream (like sock_seqpacket).
+-                    Therefore we do not hide this parameter here.
+-    */
+-    OConnectorSocket(TAddrFamily Family= TFamily_Inet,
+-                     TProtocol   Protocol= TProtocol_Ip,
+-                     TSocketType Type= TType_Stream);
+-
+-    /** Copy constructor. Doesn't duplicate oslSocket.
+-    */
+-    OConnectorSocket(const OConnectorSocket& Socket);
+-
+-    /** Destructor. Relies on ~OStreamSocket to close down connection gracefully.
+-    */
+-    virtual ~OConnectorSocket();
+-
+-    /** Connects the socket to a (remote) host.
+-        @param TargetHost The address of the target.
+-        @param msTimeout The timeout in milliseconds. Use -1 to block.
+-        @return result_ok if connected successfully,
+-                result_timeout on timeout,
+-                result_interrupted if unblocked forcefully (by close()),
+-                result_error if connect failed.
+-    */
+-    TResult SAL_CALL connect(const OSocketAddr& TargetHost, const TimeValue* pTimeout = 0);
+-};
+-
+-
+-/** A connectionless socket to send and receive datagrams.
+-*/
+-class ODatagramSocket : public vos::OSocket
+-{
+-    VOS_DECLARE_CLASSINFO(vos::ODatagramSocket);
+-public:
+-
+-    /** Creates a datagram socket.
+-        @param Type is sock_dgram by default.
+-    */
+-    ODatagramSocket(TAddrFamily Family= TFamily_Inet,
+-                    TProtocol   Protocol= TProtocol_Ip,
+-                    TSocketType Type= TType_Dgram);
+-
+-    /** Copy constructor.
+-    */
+-    ODatagramSocket(const ODatagramSocket& Socket);
+-
+-    /** Destructor. Closes the socket.
+-    */
+-    virtual ~ODatagramSocket();
+-
+-
+-    /** Tries to receives BufferSize data from the socket, if no error occurs.
+-
+-        @param pSenderAddr [out] You must provide pointer to a SocketAddr.
+-        It will be  filled with the address of the datagrams sender.
+-        If pSenderAddr is 0, it is ignored.
+-        @param pBuffer [out] Points to a buffer that will be filled with the received
+-        datagram.
+-        @param BufferSize [in] The size of pBuffer.
+-        @param Flag [in] Modifier for the call. Valid values are:
+-        <ul>
+-        <li> TMsg_Normal
+-        <li> TMsg_OOB
+-        <li> TMsg_Peek
+-        <li> TMsg_DontRoute
+-        <li> TMsg_MaxIOVLen
+-        </ul>
+-
+-        @return the number of received bytes.
+-    */
+-    sal_Int32   SAL_CALL recvFrom(void*  pBuffer,
+-                     sal_uInt32 BufferSize,
+-                     OSocketAddr* pSenderAddr= 0,
+-                     TSocketMsgFlag Flag= TMsg_Normal);
+-
+-    /** Tries to send one datagram with BytesToSend data to the given ReceiverAddr.
+-        Since we only send one packet, we don't need to concern ourselfes here with
+-        incomplete sends due to packet boundaries.
+-
+-        @param ReceiverAddr [in] A SocketAddr that contains
+-        the destination address for this send.
+-
+-        @param pBuffer [in] Points to a buffer that contains the send-data.
+-        @param BufferSize [in] The number of bytes to send. pBuffer must have at least
+-        this size.
+-        @param Flag [in] Modifier for the call. Valid values are:
+-        <ul>
+-        <li> TMsg_Normal
+-        <li> TMsg_OOB
+-        <li> TMsg_Peek
+-        <li> TMsg_DontRoute
+-        <li> TMsg_MaxIOVLen
+-        </ul>
+-
+-        @return the number of transfered bytes.
+-    */
+-    sal_Int32   SAL_CALL sendTo(const OSocketAddr& ReceiverAddr,
+-                   const void* pBuffer,
+-                   sal_uInt32 BufferSize,
+-                   TSocketMsgFlag Flag= TMsg_Normal);
+-};
+-
+-
+-
+-}
+-
+-#endif // _VOS_SOCKET_HXX_
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 0d2ae51..b258071 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -48,7 +48,6 @@ ENABLE_EXCEPTIONS=TRUE
+ SLOFILES= \
+ 				$(SLO)$/object.obj      \
+ 				$(SLO)$/refernce.obj    \
+-				$(SLO)$/socket.obj      \
+ 				$(SLO)$/thread.obj      \
+ 				$(SLO)$/stream.obj      \
+ 				$(SLO)$/timer.obj       \
+@@ -60,7 +59,6 @@ SLOFILES= \
+ OBJFILES= \
+ 				$(OBJ)$/object.obj      \
+ 				$(OBJ)$/refernce.obj    \
+-				$(OBJ)$/socket.obj      \
+ 				$(OBJ)$/thread.obj      \
+ 				$(OBJ)$/stream.obj      \
+ 				$(OBJ)$/timer.obj       \
+diff --git a/vos/source/socket.cxx b/vos/source/socket.cxx
+deleted file mode 100644
+index 5c25093..0000000
+--- vos/source/socket.cxx
++++ /dev/null
+@@ -1,1734 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: socket.cxx,v $
+- *
+- *  $Revision: 1.17 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/08/02 14:22:09 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#include <stdio.h>
+-
+-#include <rtl/memory.h>
+-
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-#include <vos/socket.hxx>
+-#include <osl/diagnose.h>
+-//#include <osl/tools.h>
+-
+-using namespace vos;
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OSocketAddr, vos), 
+-						VOS_NAMESPACE(OSocketAddr, vos), 
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-
+-/*****************************************************************************/
+-// OSocketAddr()
+-/*****************************************************************************/
+-OSocketAddr::OSocketAddr()
+-{
+-	m_SockAddr= 0;
+-}
+-
+-/*****************************************************************************/
+-// OSocketAddr()
+-/*****************************************************************************/
+-OSocketAddr::OSocketAddr(oslSocketAddr Addr)
+-{
+-	m_SockAddr= Addr;
+-}
+-
+-/*****************************************************************************/
+-// OSocketAddr()
+-/*****************************************************************************/
+-OSocketAddr::OSocketAddr(const OSocketAddr& Addr) :
+-ISocketAddr(), OObject()
+-{
+-	m_SockAddr= osl_copySocketAddr((oslSocketAddr)Addr);
+-}
+-
+-/*****************************************************************************/
+-// ~OSocketAddr()
+-/*****************************************************************************/
+-OSocketAddr::~OSocketAddr()
+-{
+-	osl_destroySocketAddr(m_SockAddr);
+-}
+-
+-
+-/*****************************************************************************/
+-// getFamily()
+-/*****************************************************************************/
+-OSocketAddr::TAddrFamily OSocketAddr::getFamily() const
+-{
+-	return (TAddrFamily)osl_getFamilyOfSocketAddr(m_SockAddr);
+-}
+-
+-/*****************************************************************************/
+-// operator oslSocketAddr ()
+-/*****************************************************************************/
+-OSocketAddr::operator oslSocketAddr() const
+-{
+-	return m_SockAddr;
+-}
+-
+-/*****************************************************************************/
+-// getHostname()
+-/*****************************************************************************/
+-OSocketAddr::TResult OSocketAddr::getHostname(rtl::OUString& rBuffer ) const
+-{
+-	return (TResult)osl_getHostnameOfSocketAddr(m_SockAddr, &rBuffer.pData );
+-}
+-
+-/*****************************************************************************/
+-// getLocalHostname()
+-/*****************************************************************************/
+-OSocketAddr::TResult OSocketAddr::getLocalHostname( rtl::OUString& pBuffer )
+-{
+-	return (TResult)osl_getLocalHostname( &pBuffer.pData );
+-}
+-
+-/*****************************************************************************/
+-// resolveHostname()
+-/*****************************************************************************/
+-oslSocketAddr OSocketAddr::resolveHostname(const rtl::OUString& ustrHostname)
+-{
+-	return osl_resolveHostname( ustrHostname.pData );
+-}
+-
+-/*****************************************************************************/
+-// operator= (oslSocketAddr Addr)
+-/*****************************************************************************/
+-void OSocketAddr::operator= (oslSocketAddr Addr)
+-{
+-	if(m_SockAddr) {
+-		osl_destroySocketAddr(m_SockAddr);
+-	}
+-
+-	m_SockAddr= Addr;
+-}
+-
+-/*****************************************************************************/
+-// operator== (oslSocketAddr Addr)
+-/*****************************************************************************/
+-sal_Bool OSocketAddr::operator== (oslSocketAddr Addr)
+-{
+-	return (osl_isEqualSocketAddr(m_SockAddr, Addr));
+-}
+-
+-/*****************************************************************************/
+-// operator=(const OSocketAddr& Addr)
+-/*****************************************************************************/
+-OSocketAddr& OSocketAddr::operator=(const OSocketAddr& Addr)
+-{
+-	if(m_SockAddr) {
+-		osl_destroySocketAddr(m_SockAddr);
+-	}
+-
+-	m_SockAddr= osl_copySocketAddr((oslSocketAddr)Addr);
+-
+-	return *this;
+-}
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OInetSocketAddr, vos), 
+-						VOS_NAMESPACE(OInetSocketAddr, vos), 
+-						VOS_NAMESPACE(OSocketAddr, vos), 0);
+-
+-
+-
+-/*****************************************************************************/
+-// OInetSocketAddr
+-// creates arbitrary inet-address (INADDR_ANY)
+-/*****************************************************************************/
+-OInetSocketAddr::OInetSocketAddr() 
+-{
+-	m_SockAddr= osl_createEmptySocketAddr(osl_Socket_FamilyInet);
+-}
+-
+-/*****************************************************************************/
+-// OInetSocketAddr
+-// uses the given oslSocketAddr as its own
+-/*****************************************************************************/
+-OInetSocketAddr::OInetSocketAddr(oslSocketAddr Addr) :
+-	OSocketAddr(Addr)
+-{
+-	OSL_ASSERT(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyInet);
+-}
+-
+-/*****************************************************************************/
+-// OInetSocketAddr
+-// Create a socket address either from a dotted decimal address
+-//(e.g. 141.99.128.50) or a hostname (e.g. www.stardiv.de).
+-/*****************************************************************************/
+-OInetSocketAddr::OInetSocketAddr(const rtl::OUString& ustrAddrOrHostname, sal_Int32 Port)
+-{
+-	// first try as dotted address.
+-	m_SockAddr= osl_createInetSocketAddr(ustrAddrOrHostname.pData, Port);
+-	
+-	// create failed, maybe it's an hostname
+-	if(m_SockAddr == 0)
+-	{
+-		m_SockAddr= osl_resolveHostname(ustrAddrOrHostname.pData);
+-
+-		// host found?
+-		if(m_SockAddr)
+-		{
+-			// set port will fail if addrtype is not osl_Socket_FamilyInet
+-			OSL_VERIFY(osl_setInetPortOfSocketAddr(m_SockAddr, Port));
+-		}
+-	}
+-}
+-
+-/*****************************************************************************/
+-// OInetSocketAddr(const OInetSocketAddr&)
+-/*****************************************************************************/
+-OInetSocketAddr::OInetSocketAddr(const OInetSocketAddr& sa) :
+-	OSocketAddr(sa)
+-{
+-	OSL_ASSERT(getFamily() == TFamily_Inet);
+-}   
+-
+-/*****************************************************************************/
+-// OInetSocketAddr(const OSocketAddr&)
+-/*****************************************************************************/
+-OInetSocketAddr::OInetSocketAddr(const OSocketAddr& sa) :
+-	OSocketAddr(sa)
+-{
+-	OSL_ASSERT(sa.getFamily() == TFamily_Inet);
+-}   
+-
+-/*****************************************************************************/
+-// ~OInetSocketAddr
+-/*****************************************************************************/
+-OInetSocketAddr::~OInetSocketAddr()
+-{
+-}
+-
+-/*****************************************************************************/
+-// operator= (oslSocketAddr Addr)
+-/*****************************************************************************/
+-void OInetSocketAddr::operator= (oslSocketAddr Addr)
+-{
+-	OSL_PRECOND(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyInet, 
+-				"oslSocketAddr not of type osl_Socket_FamilyInet!");
+-
+-	OSocketAddr::operator=(Addr);
+-}
+-
+-/*****************************************************************************/
+-// operator== (oslSocketAddr Addr)
+-/*****************************************************************************/
+-sal_Bool OInetSocketAddr::operator== (oslSocketAddr Addr)
+-{
+-	return (osl_isEqualSocketAddr(m_SockAddr, Addr));
+-}
+-
+-/*****************************************************************************/
+-// operator=(const OInetSocketAddr& Addr)
+-/*****************************************************************************/
+-OInetSocketAddr& OInetSocketAddr::operator=(const OInetSocketAddr& Addr)
+-{
+-	OSL_ASSERT(Addr.getFamily() == TFamily_Inet);
+-
+-	OSocketAddr::operator=(Addr);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator=(const OSocketAddr& Addr)
+-/*****************************************************************************/
+-OInetSocketAddr& OInetSocketAddr::operator=(const OSocketAddr& Addr)
+-{
+-	OSL_ASSERT(Addr.getFamily() == TFamily_Inet);
+-
+-	OSocketAddr::operator=(Addr);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// getServicePort()
+-/*****************************************************************************/
+-sal_Int32 OInetSocketAddr::getServicePort(const rtl::OUString& ustrServiceName, 
+-									const rtl::OUString& ustrProtocolName)
+-{
+-	return osl_getServicePort(ustrServiceName.pData, ustrProtocolName.pData);
+-}
+-
+-
+-/*****************************************************************************/
+-// getPort()
+-/*****************************************************************************/
+-sal_Int32 OInetSocketAddr::getPort () const
+-{
+-	return osl_getInetPortOfSocketAddr(m_SockAddr);
+-}
+-
+-
+-/*****************************************************************************/
+-// setPort()
+-/*****************************************************************************/
+-sal_Bool OInetSocketAddr::setPort (sal_Int32 Port)
+-{
+-	return osl_setInetPortOfSocketAddr(m_SockAddr, Port);
+-}
+-
+-
+-/*****************************************************************************/
+-// getDottedAddr()
+-/*****************************************************************************/
+-OSocketAddr::TResult OInetSocketAddr::getDottedAddr( rtl::OUString& pBuffer ) const
+-{
+-	return (TResult)osl_getDottedInetAddrOfSocketAddr(m_SockAddr, &pBuffer.pData );
+-}
+-
+-/*****************************************************************************/
+-// setAddr()
+-/*****************************************************************************/
+-sal_Bool OInetSocketAddr::setAddr(const rtl::OUString& ustrAddrOrHostname)
+-{
+-	sal_Int32 Port = 0;
+-	
+-	if(m_SockAddr) {
+-	
+-		// retrieve old port
+-		Port= getPort();
+-
+-		// free old address
+-		osl_destroySocketAddr(m_SockAddr);
+-		m_SockAddr= 0;
+-	} 
+-
+-	// first try as dotted address.
+-	m_SockAddr= osl_createInetSocketAddr(ustrAddrOrHostname.pData, Port);
+-	
+-	// create failed, maybe it's an hostname
+-	if(m_SockAddr == 0)
+-	{
+-
+-		m_SockAddr= osl_resolveHostname( ustrAddrOrHostname.pData );
+-
+-		// host found?
+-		if(m_SockAddr==0)
+-		{
+-			return sal_False;
+-		}
+-
+-		// set port will fail if addrtype is not osl_Socket_FamilyInet
+-		OSL_VERIFY(osl_setInetPortOfSocketAddr(m_SockAddr, Port));
+-
+-	}
+-
+-	return sal_True;
+-}
+-
+-///////////////////////////////////////////////////////////////////////////////
+-// OIpxSocketAddr
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OIpxSocketAddr, vos), 
+-						VOS_NAMESPACE(OIpxSocketAddr, vos), 
+-						VOS_NAMESPACE(OSocketAddr, vos), 0);
+-
+-
+-/*****************************************************************************/
+-// OIpxSocketAddr()
+-/*****************************************************************************/
+-OIpxSocketAddr::OIpxSocketAddr()
+-{
+-	m_SockAddr= osl_createEmptySocketAddr(osl_Socket_FamilyIpx);
+-}
+-
+-/*****************************************************************************/
+-// OIpxSocketAddr(oslSocketAddr)
+-/*****************************************************************************/
+-OIpxSocketAddr::OIpxSocketAddr(oslSocketAddr Addr) :
+-	OSocketAddr(Addr)
+-{
+-	OSL_ASSERT(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyIpx);
+-}
+-
+-/*****************************************************************************/
+-// OIpxSocketAddr()
+-/*****************************************************************************/
+-OIpxSocketAddr::OIpxSocketAddr(const rtl::OUString&,
+-							   const rtl::OUString&,
+-							   sal_uInt32 )
+-{
+-	// jbu : functionality removed from vos
+-}
+-
+-/*****************************************************************************/
+-// OIpxSocketAddr(OIpxSocketAddr&)
+-/*****************************************************************************/
+-OIpxSocketAddr::OIpxSocketAddr(const OIpxSocketAddr& sa) :
+-	OSocketAddr(sa)
+-{
+-	OSL_ASSERT(sa.getFamily() == TFamily_Ipx);
+-}
+-
+-
+-/*****************************************************************************/
+-// OIpxSocketAddr(OSocketAddr&)
+-/*****************************************************************************/
+-OIpxSocketAddr::OIpxSocketAddr(const OSocketAddr& sa) :
+-	OSocketAddr(sa)
+-{
+-	OSL_ASSERT(sa.getFamily() == TFamily_Ipx);
+-}
+-
+-/*****************************************************************************/
+-// ~OIpxSocketAddr()
+-/*****************************************************************************/
+-OIpxSocketAddr::~OIpxSocketAddr()
+-{
+-}
+-
+-
+-/*****************************************************************************/
+-// operator=()
+-/*****************************************************************************/
+-void OIpxSocketAddr::operator= (oslSocketAddr Addr)
+-{
+-	OSL_PRECOND(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyIpx, 
+-			"oslSocketAddr not of type osl_Socket_FamilyIpx!");
+-
+-	OSocketAddr::operator=(Addr);
+-}
+-
+-/*****************************************************************************/
+-// operator== (oslSocketAddr Addr)
+-/*****************************************************************************/
+-sal_Bool OIpxSocketAddr::operator== (oslSocketAddr Addr)
+-{
+-	return (osl_isEqualSocketAddr(m_SockAddr, Addr));
+-}
+-
+-/*****************************************************************************/
+-// operator=(const OIpxSocketAddr& Addr)
+-/*****************************************************************************/
+-OIpxSocketAddr& OIpxSocketAddr::operator=(const OIpxSocketAddr& Addr)
+-{
+-	OSL_ASSERT(Addr.getFamily() == TFamily_Ipx);
+-
+-	OSocketAddr::operator=(Addr);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator=(const OSocketAddr& Addr)
+-/*****************************************************************************/
+-OIpxSocketAddr& OIpxSocketAddr::operator=(const OSocketAddr& Addr)
+-{
+-	OSL_ASSERT(Addr.getFamily() == TFamily_Ipx);
+-
+-	OSocketAddr::operator=(Addr);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// getNetNumber()
+-/*****************************************************************************/
+-OSocketAddr::TResult OIpxSocketAddr::getNetNumber(TIpxNetNumber&) const
+-{
+-	// jbu : functionality removed from vos
+-	return (TResult)0;
+-}
+-
+-/*****************************************************************************/
+-// getNodeNumber()
+-/*****************************************************************************/
+-OSocketAddr::TResult OIpxSocketAddr::getNodeNumber(TIpxNodeNumber& ) const
+-{
+-	// jbu : functionality removed from vos
+-	return (TResult)0;
+-}
+-
+-/*****************************************************************************/
+-// getSocketNumber()
+-/*****************************************************************************/
+-sal_uInt32 OIpxSocketAddr::getSocketNumber() const
+-{
+-//  	return osl_getIpxSocketNumber(m_SockAddr);
+-	return (TResult)0;
+-}
+-
+-
+-/*****************************************************************************/
+-// getAddressString()
+-/*****************************************************************************/
+-//void OIpxSocketAddr::getAddressString(sal_Char* Buffer, sal_uInt32 Len) const
+-void OIpxSocketAddr::getAddressString( rtl::OUString& ) const
+-{
+-	// jbu : functionality removed from vos
+-}
+-
+-
+-///////////////////////////////////////////////////////////////////////////////
+-// Socket
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OSocket, vos), 
+-						VOS_NAMESPACE(OSocket, vos), 
+-						VOS_NAMESPACE(OObject, vos), 0);
+-
+-/*****************************************************************************/
+-// OSocket()
+-/*****************************************************************************/
+-OSocket::OSocket()
+-{
+-	m_pRecvTimeout = 0;
+-	m_pSendTimeout = 0;
+-
+-	m_pSockRef= 0;
+-}
+-
+-
+-/*****************************************************************************/
+-// OSocket()
+-/*****************************************************************************/
+-OSocket::OSocket(TSocketType Type, 
+-				 TAddrFamily Family, 
+-				 TProtocol   Protocol) 
+-{
+-	m_pRecvTimeout = 0;
+-	m_pSendTimeout = 0;
+-
+-	m_pSockRef= 
+-		new SockRef(osl_createSocket((oslAddrFamily)Family, 
+-									 (oslSocketType)Type, 
+-									 (oslProtocol)Protocol));
+-	
+-	OSL_POSTCOND(m_pSockRef != 0, "OSocket(): new failed.\n");
+-	OSL_POSTCOND((*m_pSockRef)(), "OSocket(): creation of socket failed!\n");
+-}
+-
+-/*****************************************************************************/
+-// OSocket()
+-/*****************************************************************************/
+-OSocket::OSocket(const OSocket& sock) :
+-ISocketTypes(), OReference(), OObject()
+-{
+-	m_pRecvTimeout = 0;
+-	m_pSendTimeout = 0;
+-	m_pSockRef=0;
+-    
+-	OSL_ASSERT(sock.m_pSockRef != 0);
+-
+-    if ( sock.m_pSockRef !=0 )
+-    {    
+-        m_pSockRef= sock.m_pSockRef;
+-
+-        setRecvTimeout(sock.m_pRecvTimeout);
+-        setSendTimeout(sock.m_pSendTimeout);
+-        
+-        m_pSockRef->acquire();
+-    }
+-}
+-
+-/*****************************************************************************/
+-// OSocket()
+-/*****************************************************************************/
+-OSocket::OSocket(oslSocket Socket)
+-{
+-	m_pRecvTimeout = 0;
+-	m_pSendTimeout = 0;
+-
+-	m_pSockRef = new SockRef(Socket);
+-}
+-
+-
+-/*****************************************************************************/
+-// ~OSocket()
+-/*****************************************************************************/
+-OSocket::~OSocket()
+-{
+-	close();
+-
+-	delete m_pRecvTimeout;
+-	delete m_pSendTimeout;
+-}
+-
+-
+-/*****************************************************************************/
+-// create
+-/*****************************************************************************/
+-sal_Bool OSocket::create(TSocketType Type, 
+-						TAddrFamily Family, 
+-						TProtocol   Protocol)
+-{
+-	// if this was a valid socket, decrease reference
+-	if ((m_pSockRef) && (m_pSockRef->release() == 0))
+-	{
+-		osl_releaseSocket((*m_pSockRef)());
+-		delete m_pSockRef;
+-		m_pSockRef= 0;
+-	}
+-
+-	m_pSockRef= 
+-		new SockRef(osl_createSocket((oslAddrFamily)Family, 
+-									 (oslSocketType)Type, 
+-									 (oslProtocol)Protocol));
+-
+-	OSL_POSTCOND(m_pSockRef != 0, "OSocket(): new failed.\n");
+-
+-	return (*m_pSockRef)() != 0;
+-}
+-
+-/*****************************************************************************/
+-// operator=
+-/*****************************************************************************/
+-OSocket& OSocket::operator= (const OSocket& sock)
+-{
+-	OSL_PRECOND(sock.m_pSockRef != 0, "OSocket::operator=: tried to assign an empty/invalid socket\n");
+-
+-	if (m_pSockRef == sock.m_pSockRef)
+-		return *this;
+-
+-	// if this was a valid socket, decrease reference
+-	if ((m_pSockRef) && (m_pSockRef->release() == 0))
+-	{
+-		osl_releaseSocket((*m_pSockRef)());
+-		delete m_pSockRef;
+-		m_pSockRef= 0;
+-	}
+-
+-	m_pSockRef= sock.m_pSockRef;
+-
+-	setRecvTimeout(sock.m_pRecvTimeout);
+-	setSendTimeout(sock.m_pSendTimeout);
+-
+-	m_pSockRef->acquire();
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator oslSocket()
+-/*****************************************************************************/
+-OSocket::operator oslSocket() const
+-{
+-	OSL_ASSERT(m_pSockRef);
+-	return (*m_pSockRef)();
+-}
+-
+-/*****************************************************************************/
+-// isValid()
+-/*****************************************************************************/
+-sal_Bool OSocket::isValid() const
+-{
+-	return m_pSockRef != 0 && (*m_pSockRef)() != 0;
+-}
+-
+-
+-/*****************************************************************************/
+-// close
+-/*****************************************************************************/
+-void OSocket::close()
+-{
+-	if (m_pSockRef && (*m_pSockRef)() && (m_pSockRef->release() == 0)) 
+-	{
+-		osl_releaseSocket((*m_pSockRef)());
+-		delete m_pSockRef;
+-	}
+-
+-	m_pSockRef= 0;
+-}
+-
+-/*****************************************************************************/
+-// getLocalAddr
+-/*****************************************************************************/
+-void OSocket::getLocalAddr(OSocketAddr& sa) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        sa= osl_getLocalAddrOfSocket((*m_pSockRef)());
+-    }
+-}
+-
+-/*****************************************************************************/
+-// getLocalPort
+-/*****************************************************************************/
+-sal_Int32 OSocket::getLocalPort() const 
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-	sal_Int32 Port= OSL_INVALID_PORT;
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {   
+-        oslSocketAddr Addr= osl_getLocalAddrOfSocket((*m_pSockRef)());
+-        
+-        if(Addr) 
+-        {
+-            Port= osl_getInetPortOfSocketAddr(Addr);
+-            osl_destroySocketAddr(Addr);
+-        }
+-    }
+-    
+-	return Port;
+-}
+-
+-/*****************************************************************************/
+-// getLocalHost
+-/*****************************************************************************/
+-OSocket::TResult OSocket::getLocalHost( rtl::OUString& pBuffer) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        oslSocketAddr Addr= osl_getLocalAddrOfSocket((*m_pSockRef)());
+-	
+-        if(Addr) 
+-        {
+-//	    	TResult Result= (TResult)osl_getHostnameOfSocketAddr(Addr, 
+-//														pBuffer, BufferSize);
+-            TResult Result= (TResult)osl_getHostnameOfSocketAddr(Addr, 
+-															 &pBuffer.pData );
+-	
+-            osl_destroySocketAddr(Addr);
+-
+-            return Result;
+-        }
+-    }
+-    
+-	return TResult_Error;
+-}
+-
+-/*****************************************************************************/
+-// getPeerAddr
+-/*****************************************************************************/
+-void OSocket::getPeerAddr(OSocketAddr& sa) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        sa= osl_getPeerAddrOfSocket((*m_pSockRef)());
+-    }
+-}
+-
+-/*****************************************************************************/
+-// getPeerPort
+-/*****************************************************************************/
+-sal_Int32 OSocket::getPeerPort() const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    sal_Int32 Port= OSL_INVALID_PORT;
+-    
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {   
+-        oslSocketAddr Addr= osl_getPeerAddrOfSocket((*m_pSockRef)());
+-
+-        if(Addr) 
+-        {
+-            Port= osl_getInetPortOfSocketAddr(Addr);
+-            osl_destroySocketAddr(Addr);
+-        }
+-    }
+-
+-	return Port;
+-}
+-
+-/*****************************************************************************/
+-// getPeerHost
+-/*****************************************************************************/
+-OSocket::TResult OSocket::getPeerHost( rtl::OUString& pBuffer ) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {
+-        oslSocketAddr Addr= osl_getPeerAddrOfSocket((*m_pSockRef)());
+-
+-        if(Addr) 
+-        {
+-//		    TResult Result= (TResult)osl_getHostnameOfSocketAddr(Addr, 
+-//														pBuffer, BufferSize);
+-            TResult Result= (TResult)osl_getHostnameOfSocketAddr(Addr, 
+-															 &pBuffer.pData );
+-
+-            osl_destroySocketAddr(Addr);
+-
+-            return Result;
+-        }
+-    }
+-
+-	return TResult_Error;
+-}
+-
+-/*****************************************************************************/
+-// bind
+-/*****************************************************************************/
+-sal_Bool OSocket::bind(const OSocketAddr& Addr)
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {
+-        return osl_bindAddrToSocket((*m_pSockRef)(), (oslSocketAddr)Addr);
+-    }
+-    
+-	return sal_False;
+-}
+-
+-
+-/*****************************************************************************/
+-// setSendTimeout
+-/*****************************************************************************/
+-void OSocket::setSendTimeout(const TimeValue* pTimeout)
+-{
+-	delete m_pSendTimeout;
+-
+-	if (pTimeout)
+-		m_pSendTimeout = new TimeValue(*pTimeout);
+-	else
+-		m_pSendTimeout = 0;
+-}
+-
+-/*****************************************************************************/
+-// setRecvTimeout
+-/*****************************************************************************/
+-void OSocket::setRecvTimeout(const TimeValue* pTimeout)
+-{
+-	delete m_pRecvTimeout;
+-
+-	if (pTimeout)
+-		m_pRecvTimeout = new TimeValue(*pTimeout);
+-	else
+-		m_pRecvTimeout = 0;
+-}
+-
+-/*****************************************************************************/
+-// isRecvReady
+-/*****************************************************************************/
+-sal_Bool OSocket::isRecvReady(const TimeValue* pTimeout) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return osl_isReceiveReady((*m_pSockRef)(), pTimeout);
+-    }
+-    
+-    return sal_False;
+-}
+-
+-/*****************************************************************************/
+-// isSendReady
+-/*****************************************************************************/
+-sal_Bool OSocket::isSendReady(const TimeValue* pTimeout) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {
+-        return osl_isSendReady((*m_pSockRef)(), pTimeout);
+-    }
+-
+-    return sal_False;
+-}
+-
+-/*****************************************************************************/
+-// isExceptionPending
+-/*****************************************************************************/
+-sal_Bool OSocket::isExceptionPending(const TimeValue* pTimeout) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return osl_isExceptionPending((*m_pSockRef)(), pTimeout);
+-    }
+-    
+-    return sal_False;
+-}
+-
+-
+-/*****************************************************************************/
+-// getOption
+-/*****************************************************************************/
+-sal_Int32 OSocket::getOption(TSocketOption Option, 
+-					   	   void* pBuffer,
+-					       sal_uInt32 BufferLen,
+-					       TSocketOptionLevel Level) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {
+-        return osl_getSocketOption((*m_pSockRef)(),
+-                                   (oslSocketOptionLevel)Level,
+-                                   (oslSocketOption)Option,
+-                                   pBuffer, 
+-                                   BufferLen);
+-    }
+-
+-    return sal_False;
+-}
+-
+-/*****************************************************************************/
+-// setOption
+-/*****************************************************************************/
+-sal_Bool OSocket::setOption(TSocketOption Option, 
+-						   void* pBuffer,
+-						   sal_uInt32 BufferLen,
+-						   TSocketOptionLevel Level) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return osl_setSocketOption((*m_pSockRef)(),
+-                                   (oslSocketOptionLevel)Level,
+-                                   (oslSocketOption)Option,
+-                                   pBuffer, 
+-                                   BufferLen);
+-    }
+-
+-    return sal_False;
+-}
+-
+-
+-/*****************************************************************************/
+-// enableNonBlockingMode
+-/*****************************************************************************/
+-sal_Bool OSocket::enableNonBlockingMode(sal_Bool On)
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return osl_enableNonBlockingMode((*m_pSockRef)(), On);
+-    }
+-
+-    return sal_False;
+-}
+-
+-/*****************************************************************************/
+-// isNonBlockingMode
+-/*****************************************************************************/
+-sal_Bool OSocket::isNonBlockingMode() const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return osl_isNonBlockingMode((*m_pSockRef)());
+-    }
+-
+-    return sal_False;
+-}
+-
+-/*****************************************************************************/
+-// getType
+-/*****************************************************************************/
+-OSocket::TSocketType OSocket::getType() const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return (TSocketType)osl_getSocketType((*m_pSockRef)());
+-    }
+-
+-    return TType_Invalid;
+-}
+-
+-/*****************************************************************************/
+-// clearError
+-/*****************************************************************************/
+-sal_Int32 OSocket::clearError() const
+-{
+-	sal_Int32 err = 0;
+-
+-	getOption(TOption_Error, &err, sizeof(err));
+-
+-	return err;
+-}
+-
+-/*****************************************************************************/
+-// setDebug
+-/*****************************************************************************/
+-sal_Int32 OSocket::setDebug(sal_Int32 opt) const
+-{
+-	sal_Int32 old= 0;
+-
+-	getOption(TOption_Debug, &old, sizeof(old));
+-	
+-	if (opt != -1)
+-		setOption(TOption_Debug, &opt, sizeof(opt));
+-  
+-	return old;
+-}
+-
+-/*****************************************************************************/
+-// setReuseAddr
+-/*****************************************************************************/
+-sal_Int32 OSocket::setReuseAddr(sal_Int32 opt) const
+-{
+-	sal_Int32 old = 0;
+-	
+-	getOption(TOption_ReuseAddr, &old, sizeof(old));
+-  
+-	if (opt != -1)
+-		setOption(TOption_ReuseAddr, &opt, sizeof(opt));
+-
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setKeepAlive
+-/*****************************************************************************/
+-sal_Int32 OSocket::setKeepAlive(sal_Int32 opt) const
+-{
+-	sal_Int32 old = 0;
+-	
+-	getOption(TOption_KeepAlive, &old, sizeof(old));
+-
+-	if (opt != -1)
+-		setOption(TOption_KeepAlive, &opt, sizeof(opt));
+-  
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setDontRoute
+-/*****************************************************************************/
+-sal_Int32 OSocket::setDontRoute(sal_Int32 opt) const
+-{
+-	sal_Int32 old = 0;
+-  
+-	getOption(TOption_DontRoute, &old, sizeof(old));
+-  
+-	if (opt != -1)
+-		setOption(TOption_DontRoute, &opt, sizeof(opt));
+-  
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setBroadcast
+-/*****************************************************************************/
+-sal_Int32 OSocket::setBroadcast(sal_Int32 opt) const
+-{
+-	sal_Int32 old = 0;
+-  
+-	getOption(TOption_Broadcast, &old, sizeof(old));
+-  
+-	if (opt != -1)
+-		setOption(TOption_Broadcast, &opt, sizeof(opt));
+-  
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setOobinline
+-/*****************************************************************************/
+-sal_Int32 OSocket::setOobinline(sal_Int32 opt) const
+-{
+-	sal_Int32 old = 0;
+-  
+-	getOption(TOption_OOBinLine, &old, sizeof(old));
+-  
+-	if (opt != -1)
+-		setOption(TOption_OOBinLine, &opt, sizeof(opt));
+-  
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setLinger
+-/*****************************************************************************/
+-sal_Int32 OSocket::setLinger(sal_Int32 time) const
+-{
+-	/* local decl. of linger-struct */
+-	struct SockLinger 
+-	{
+-		sal_Int32 m_onoff;    // option on/off
+-		sal_Int32 m_linger;   // linger time
+-	};
+-
+-
+-	SockLinger  old = { 0, 0 };
+-  
+-	getOption(TOption_Linger, &old, sizeof(old));
+-  
+-	if (time > 0) // enable linger with wait-times > 0 
+-	{
+-		SockLinger nw = { 1, time };
+-		setOption(TOption_Linger, &nw, sizeof(nw));
+-	}
+-	else if (time == 0) // disable linger with wait-time == 0
+-	{
+-		SockLinger nw = { 0, old.m_linger };
+-		setOption(TOption_Linger, &nw, sizeof(nw));
+-	}
+-
+-	// returns 0 if linger was off, else the linger-time
+-	return (old.m_onoff ? old.m_linger : 0);
+-}
+-
+-/*****************************************************************************/
+-// setSendBufSize
+-/*****************************************************************************/
+-sal_Int32 OSocket::setSendBufSize(sal_Int32 sz) const
+-{
+-	sal_Int32 old = 0;
+-
+-	getOption(TOption_SndBuf, &old, sizeof(old));
+-
+-	if (sz >= 0)
+-		setOption(TOption_SndBuf, &sz, sizeof(sz));
+-
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setRecvBufSize
+-/*****************************************************************************/
+-sal_Int32 OSocket::setRecvBufSize(sal_Int32 sz) const
+-{
+-	sal_Int32 old = 0;
+-	
+-	getOption(TOption_RcvBuf, &old, sizeof(old));
+-  
+-	if (sz >= 0)
+-		setOption(TOption_RcvBuf, &sz, sizeof(sz));
+-  
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// setTcpNoDelay
+-/*****************************************************************************/
+-sal_Int32 OSocket::setTcpNoDelay(sal_Int32 sz) const
+-{
+-	sal_Int32 old = 0;
+-	
+-	getOption(TOption_TcpNoDelay, &old, sizeof(old), TLevel_Tcp);
+-  
+-	if (sz >= 0)
+-		setOption(TOption_TcpNoDelay, &sz, sizeof(sz), TLevel_Tcp);
+-  
+-	return (old);
+-}
+-
+-/*****************************************************************************/
+-// getError
+-/*****************************************************************************/
+-//void OSocket::getError(sal_Char* pBuffer, sal_uInt32 nSize) const
+-void OSocket::getError( rtl::OUString& pBuffer ) const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());    
+-
+-    if (m_pSockRef && (*m_pSockRef)())
+-		osl_getLastSocketErrorDescription((*m_pSockRef)(), &pBuffer.pData );
+-	else
+-		osl_getLastSocketErrorDescription(NULL, &pBuffer.pData );
+-}
+-
+-/*****************************************************************************/
+-// getError
+-/*****************************************************************************/
+-OSocket::TSocketError OSocket::getError() const
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());    
+-
+-    if (m_pSockRef && (*m_pSockRef)())
+-		return (TSocketError)osl_getLastSocketError((*m_pSockRef)());
+-	else
+-		return (TSocketError)osl_getLastSocketError(NULL);
+-}
+-
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OAcceptorSocket, vos), 
+-						VOS_NAMESPACE(OAcceptorSocket, vos), 
+-						VOS_NAMESPACE(OSocket, vos), 0);
+-
+-
+-/*****************************************************************************/
+-// OAcceptorSocket
+-/*****************************************************************************/
+-OAcceptorSocket::OAcceptorSocket(TAddrFamily Family, 
+-								 TProtocol   Protocol,
+-								 TSocketType Type) :
+-	OSocket(Type, Family, Protocol)
+-{
+-}
+-
+-/*****************************************************************************/
+-// OAcceptorSocket
+-/*****************************************************************************/
+-OAcceptorSocket::OAcceptorSocket(const OAcceptorSocket& sock) :
+-	OSocket(sock)	
+-{
+-}
+-
+-/*****************************************************************************/
+-// ~OAcceptorSocket
+-/*****************************************************************************/
+-OAcceptorSocket::~OAcceptorSocket() 
+-{
+-	if (m_pSockRef && (*m_pSockRef)() && (m_pSockRef->release() == 0))
+-	{
+-        /* mfe: prepare for forthcoming api change */
+-		osl_closeSocket((*m_pSockRef)());        
+-		osl_releaseSocket((*m_pSockRef)());
+-		delete m_pSockRef;  
+-		m_pSockRef = 0;
+-	}
+-}
+-
+-/*****************************************************************************/
+-// close
+-/*****************************************************************************/
+-void OAcceptorSocket::close()
+-{
+-	if (m_pSockRef && (*m_pSockRef)() && (m_pSockRef->release() == 0))
+-	{
+-		osl_closeSocket((*m_pSockRef)());
+-	}
+-    
+-	m_pSockRef= 0;
+-}
+-
+-/*****************************************************************************/
+-// listen
+-/*****************************************************************************/
+-sal_Bool OAcceptorSocket::listen(sal_Int32 MaxPendingConnections)
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return osl_listenOnSocket((*m_pSockRef)(), MaxPendingConnections);
+-    }
+-    
+-    return sal_False;
+-}
+-
+-
+-/*****************************************************************************/
+-// acceptConnection
+-/*****************************************************************************/
+-OSocket::TResult OAcceptorSocket::acceptConnection(OStreamSocket& connection)
+-{
+-	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+-		return TResult_TimedOut;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-    OStreamSocket aSocket;
+-    
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        aSocket = osl_acceptConnectionOnSocket((*m_pSockRef)(), 0);
+-    }
+-	
+-	if( aSocket.isValid() )
+-    {
+-        connection = aSocket;
+-		return TResult_Ok;
+-    }
+-	else
+-    {    
+-		return TResult_Error;
+-    }
+-    
+-}
+-
+-/*****************************************************************************/
+-// acceptConnection
+-/*****************************************************************************/
+-OSocket::TResult OAcceptorSocket::acceptConnection(OStreamSocket& connection,
+-												   OSocketAddr& sa)
+-{
+-	oslSocketAddr PeerAddr = 0;
+-	oslSocket     Socket = 0;
+-
+-	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+-		return TResult_TimedOut;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        Socket= osl_acceptConnectionOnSocket((*m_pSockRef)(), &PeerAddr);
+-    }
+-	
+-	if (Socket)
+-	{
+-		sa= PeerAddr;
+-		connection= Socket;
+-		return TResult_Ok;
+-	} 
+-	else
+-	{
+-		return TResult_Error;
+-	}
+-}
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OStreamSocket, vos), 
+-						VOS_NAMESPACE(OStreamSocket, vos), 
+-						VOS_NAMESPACE(OSocket, vos), 0);
+-
+-
+-
+-/*****************************************************************************/
+-// OStreamSocket
+-/*****************************************************************************/
+-OStreamSocket::OStreamSocket()
+-{
+-}
+-
+-/*****************************************************************************/
+-// OStreamSocket
+-/*****************************************************************************/
+-OStreamSocket::OStreamSocket(TAddrFamily Family, 
+-							 TProtocol   Protocol,
+-							 TSocketType Type) :
+-	OSocket(Type, Family, Protocol)
+-{
+-}
+-
+-
+-/*****************************************************************************/
+-// OStreamSocket
+-/*****************************************************************************/
+-OStreamSocket::OStreamSocket(oslSocket Socket) :
+-	OSocket(Socket)
+-{
+-}
+-
+-/*****************************************************************************/
+-// OStreamSocket
+-// copy constructor
+-/*****************************************************************************/
+-OStreamSocket::OStreamSocket(const OStreamSocket& sock) :
+-	OSocket(sock), IStream()
+-{
+-}
+-
+-/*****************************************************************************/
+-// OStreamSocket
+-// copy constructor
+-/*****************************************************************************/
+-OStreamSocket::OStreamSocket(const OSocket& sock) :
+-	OSocket(sock)
+-{
+-}
+-
+-/*****************************************************************************/
+-// ~OStreamSocket
+-/*****************************************************************************/
+-OStreamSocket::~OStreamSocket()
+-{
+-}
+-
+-/*****************************************************************************/
+-// close
+-/*****************************************************************************/
+-void OStreamSocket::close()
+-{
+-	if (m_pSockRef && (*m_pSockRef)() && (m_pSockRef->release() == 0))
+-	{
+-		shutdown();
+-		osl_releaseSocket((*m_pSockRef)());
+-		delete m_pSockRef;
+-	}
+-
+-	m_pSockRef= 0;
+-}
+-
+-
+-/*****************************************************************************/
+-// operator=(oslSocket)
+-/*****************************************************************************/
+-OStreamSocket& OStreamSocket::operator=(oslSocket Socket)
+-{
+-	OSocket::operator=(Socket);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator=
+-/*****************************************************************************/
+-OStreamSocket& OStreamSocket::operator= (const OSocket& sock)
+-{
+-	OSocket::operator=(sock);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// operator=
+-/*****************************************************************************/
+-OStreamSocket& OStreamSocket::operator= (const OStreamSocket& sock)
+-{
+-	OSocket::operator=(sock);
+-
+-	return *this;
+-}
+-
+-/*****************************************************************************/
+-// read
+-/*****************************************************************************/
+-sal_Int32 OStreamSocket::read(void* pBuffer, sal_uInt32 n) const
+-{
+-	sal_uInt8 *Ptr = (sal_uInt8  *)pBuffer;
+-
+-	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+-		return 0;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+-    {
+-        return -1;    
+-    }
+-    
+-	/* loop until all desired bytes were read or an error occured */
+-	sal_uInt32 BytesRead= 0;
+-	sal_uInt32 BytesToRead= n;
+-	while (BytesToRead > 0)
+-	{
+-		sal_Int32 RetVal;
+-		RetVal= osl_receiveSocket((*m_pSockRef)(),
+-								   Ptr,
+-								   BytesToRead,
+-								   osl_Socket_MsgNormal);
+-
+-		/* error occured? */
+-		if(RetVal <= 0)
+-		{
+-			break;
+-		}
+-
+-		BytesToRead -= RetVal;
+-		BytesRead += RetVal;
+-		Ptr += RetVal;
+-
+-		/* wait for next available data or timeout */
+-		if ( BytesToRead > 0 && m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout))
+-			break;
+-
+-	}
+-
+-	return BytesRead;
+-}
+-
+-/*****************************************************************************/
+-// write
+-/*****************************************************************************/
+-sal_Int32 OStreamSocket::write(const void* pBuffer, sal_uInt32 n)
+-{
+-	sal_uInt8 *Ptr = (sal_uInt8 *)pBuffer;
+-
+-	if (m_pSendTimeout && ! isSendReady(m_pSendTimeout))
+-		return 0;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+-    {
+-        return -1;    
+-    }
+-    
+-	/* loop until all desired bytes were send or an error occured */
+-	sal_uInt32 BytesSend= 0;
+-	sal_uInt32 BytesToSend= n;
+-	while (BytesToSend > 0)
+-	{
+-		sal_Int32 RetVal;
+-
+-		RetVal= osl_sendSocket((*m_pSockRef)(),
+-								Ptr,
+-								BytesToSend,
+-								osl_Socket_MsgNormal);
+-
+-		/* error occured? */
+-		if(RetVal <= 0)
+-		{
+-			break;
+-		}
+-
+-		BytesToSend -= RetVal;
+-		BytesSend += RetVal;
+-		Ptr += RetVal;
+-
+-		/* wait till new data is available or timeout occures */
+-		if ( BytesToSend > 0 && m_pSendTimeout && ! isSendReady(m_pSendTimeout))
+-			break;
+-	}
+-
+-	return BytesSend;
+-}
+-
+-sal_Bool OStreamSocket::isEof() const
+-{
+-	return isValid();
+-	// BHO not enough
+-}
+-
+-/*****************************************************************************/
+-// recv
+-/*****************************************************************************/
+-sal_Int32 OStreamSocket::recv(void* pBuffer,
+-						    sal_uInt32 BytesToRead,
+-						    TSocketMsgFlag Flag)
+-{
+-	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout))
+-		return 0;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+-    {
+-        return -1;
+-    }
+-    
+-	return osl_receiveSocket((*m_pSockRef)(),
+-							 pBuffer,
+-							 BytesToRead,
+-							 (oslSocketMsgFlag)Flag);
+-}
+-
+-/*****************************************************************************/
+-// send
+-/*****************************************************************************/
+-sal_Int32 OStreamSocket::send(const void* pBuffer, 
+-						    sal_uInt32 BytesToSend, 
+-						    TSocketMsgFlag Flag)
+-{
+-	if (m_pSendTimeout && ! isSendReady(m_pSendTimeout)) 
+-		return 0;
+-	
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+-    {
+-        return -1;
+-    }
+-    
+-	return osl_sendSocket((*m_pSockRef)(), 
+-						  pBuffer, 
+-						  BytesToSend,
+-						  (oslSocketMsgFlag)Flag);
+-}
+-
+-/*****************************************************************************/
+-// shutdown
+-/*****************************************************************************/
+-sal_Bool OStreamSocket::shutdown(TSocketDirection Direction)
+-{
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {
+-        return osl_shutdownSocket((*m_pSockRef)(), (oslSocketDirection)Direction);
+-    }
+-    
+-    return sal_False;
+-}
+-
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OConnectorSocket, vos), 
+-						VOS_NAMESPACE(OConnectorSocket, vos), 
+-						VOS_NAMESPACE(OStreamSocket, vos), 0);
+-
+-
+-
+-/*****************************************************************************/
+-// OConnectorSocket
+-/*****************************************************************************/
+-OConnectorSocket::OConnectorSocket(TAddrFamily Family, 
+-								   TProtocol   Protocol,
+-								   TSocketType Type) :
+-	OStreamSocket(Family, Protocol, Type)
+-{
+-}
+-
+-/*****************************************************************************/
+-// OConnectorSocket
+-/*****************************************************************************/
+-OConnectorSocket::OConnectorSocket(const OConnectorSocket& sock) :
+-	OStreamSocket(sock)
+-{
+-}
+-
+-/*****************************************************************************/
+-// ~OConnectorSocket
+-/*****************************************************************************/
+-OConnectorSocket::~OConnectorSocket()
+-{
+-}
+-
+-/*****************************************************************************/
+-// connect
+-/*****************************************************************************/
+-OSocket::TResult OConnectorSocket::connect(const OSocketAddr& Addr, 
+-										   const TimeValue* pTimeout)
+-{
+-	
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( m_pSockRef && (*m_pSockRef)() )
+-    {    
+-        return (TResult)osl_connectSocketTo((*m_pSockRef)(),
+-                                            (oslSocketAddr)Addr,
+-                                            pTimeout);
+-    }
+-    
+-    return TResult_Error;
+-}
+-
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(ODatagramSocket, vos), 
+-						VOS_NAMESPACE(ODatagramSocket, vos), 
+-						VOS_NAMESPACE(OSocket, vos), 0);
+-
+-
+-/*****************************************************************************/
+-// ODatagramSocket
+-/*****************************************************************************/
+-ODatagramSocket::ODatagramSocket(TAddrFamily Family, 
+-								 TProtocol   Protocol,
+-								 TSocketType Type) :
+-	OSocket(Type, Family, Protocol)
+-{
+-}
+-
+-/*****************************************************************************/
+-// ODatagramSocket
+-/*****************************************************************************/
+-ODatagramSocket::ODatagramSocket(const ODatagramSocket& sock) :
+-	OSocket(sock)
+-{
+-}
+-
+-/*****************************************************************************/
+-// ~ODatagramSocket
+-/*****************************************************************************/
+-ODatagramSocket::~ODatagramSocket()
+-{
+-}
+-
+-
+-/*****************************************************************************/
+-// recvFrom
+-/*****************************************************************************/
+-sal_Int32 ODatagramSocket::recvFrom(void* pBuffer, 
+-					              sal_uInt32 BufferSize, 
+-					  			  OSocketAddr* pSenderAddr,
+-					  			  TSocketMsgFlag Flag)
+-{
+-
+-	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+-		return 0;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+-    {
+-        return -1;
+-    }
+-    
+-	sal_Int32 BytesRead;
+-
+-	if(pSenderAddr)
+-	{
+-		// we are interested in the senders address
+-		oslSocketAddr SenderAddr= osl_createEmptySocketAddr(osl_Socket_FamilyInet);
+-
+-		BytesRead=
+-			osl_receiveFromSocket((*m_pSockRef)(),
+-								   SenderAddr,
+-								   pBuffer,
+-								   BufferSize,
+-								   (oslSocketMsgFlag)Flag);
+-
+-		*pSenderAddr= SenderAddr;
+-	}
+-	else
+-	{
+-		// we don't want to know the senders address
+-
+-		BytesRead=
+-			osl_receiveFromSocket((*m_pSockRef)(),
+-								   0,
+-								   pBuffer,
+-								   BufferSize,
+-								   (oslSocketMsgFlag)Flag);
+-	}
+-
+-	return BytesRead;
+-}
+-
+-
+-/*****************************************************************************/
+-// sendTo
+-/*****************************************************************************/
+-sal_Int32 ODatagramSocket::sendTo(const OSocketAddr& ReceiverAddr, 
+-							    const void* pBuffer,
+-							    sal_uInt32 BufferSize, 
+-							    TSocketMsgFlag Flag)
+-{
+-	if (m_pSendTimeout && ! isSendReady(m_pSendTimeout)) 
+-		return 0;
+-
+-	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+-
+-    if ( ( m_pSockRef && (*m_pSockRef)() ) )
+-    {
+-        
+-        return osl_sendToSocket((*m_pSockRef)(), 
+-                                (oslSocketAddr)ReceiverAddr,
+-                                pBuffer, 
+-                                BufferSize,
+-                                (oslSocketMsgFlag)Flag);
+-    }
+-
+-    return -1;
+-}
+-
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/nsplugin-path.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/nsplugin-path.diff
@@ -0,0 +1,132 @@
+--- extensions/source/nsplugin/source/so_env.cxx.old	2007-04-04 17:42:47.000000000 +0200
++++ extensions/source/nsplugin/source/so_env.cxx	2007-04-04 18:30:55.000000000 +0200
+@@ -39,6 +39,7 @@
+ #ifdef UNIX
+ #include <sys/types.h>
+ #include <strings.h>
++#include <dlfcn.h>
+ #if defined(SOLARIS) && !defined(__GNUC__)
+ #include <varargs.h>
+ #else
+@@ -125,6 +126,96 @@ restoreUTF8(char *pPath)
+     return 0;
+ }
+ 
++#ifdef UNIX
++extern int nspluginOOoModuleHook (void** aResult);
++int nspluginOOoModuleHook (void** aResult)
++{
++	void *dl_handle;
++	void *thisp;
++
++	dl_handle = dlopen(NULL, RTLD_NOW);
++	if (!dl_handle)
++	{
++		fprintf (stderr, "Can't open myself '%s'\n", dlerror());
++		return 1;
++	}
++
++	Dl_info dl_info = { 0, };
++	if(!dladdr((void *)nspluginOOoModuleHook, &dl_info))
++	{
++		fprintf (stderr, "Can't find my own address '%s'\n", dlerror());
++		return 1;
++	}
++
++	if (!dl_info.dli_fname)
++	{
++		fprintf (stderr, "Can't find my own file name\n");
++		return 1;
++	}
++
++	char cwdstr[NPP_PATH_MAX];
++	if (!getcwd (cwdstr, sizeof(cwdstr)))
++	{
++		fprintf (stderr, "Can't get cwd\n");
++		return 1;
++	}
++
++	char libFileName[NPP_PATH_MAX];
++
++	if (dl_info.dli_fname[0] != '/')
++	{
++		if ((strlen(cwdstr) + 1 + strlen(dl_info.dli_fname)) >= NPP_PATH_MAX)
++		{
++			fprintf (stderr, "Plugin path too long\n");
++			return 1;
++		}
++		strcpy (libFileName, cwdstr);
++		strcat (libFileName, "/");
++		strcat (libFileName, dl_info.dli_fname);
++	}
++	else
++	{
++		if (strlen(dl_info.dli_fname) >= NPP_PATH_MAX)
++		{
++			fprintf (stderr, "Plugin path too long\n");
++			return 1;
++		}
++		strcpy (libFileName, dl_info.dli_fname);
++	}
++
++	char *clobber;
++	static char realFileName[NPP_PATH_MAX] = {0};
++#   define SEARCH_SUFFIX "/program/libnpsoplug"
++
++	if (!(clobber = strstr (libFileName, SEARCH_SUFFIX)))
++	{
++		ssize_t len = readlink(libFileName, realFileName, NPP_PATH_MAX-1);
++		if (len == -1)
++		{
++			fprintf (stderr, "Couldn't read link '%s'\n", libFileName);
++			return 1;
++		}
++		realFileName[len] = '\0';
++		if (!(clobber = strstr (realFileName, SEARCH_SUFFIX)))
++		{
++		        fprintf (stderr, "Couldn't find suffix in '%s'\n", realFileName);
++			return 1;
++		}
++		*clobber = '\0';
++	}
++	else
++	{
++		*clobber = '\0';
++		strcpy (realFileName, libFileName);
++	}
++	*aResult = realFileName;
++
++	fprintf (stderr, "OpenOffice path is '%s'\n", realFileName);
++   
++	return 0;
++}
++#endif
++
+ // *aResult points the static string holding "/opt/staroffice8"
+ int findReadSversion(void** aResult, int bWnt, const char* tag, const char* entry)
+ {
+@@ -137,9 +228,22 @@ int findReadSversion(void** aResult, int
+     // Filename of lnk file, eg. "soffice"
+     char lnkFileName[NPP_PATH_MAX] = {0};
+     char* pTempZero = NULL;
++
++    /* try to fetch a 'self' pointer */
++	if (!nspluginOOoModuleHook (aResult))
++	  return 0;
++
++    /* .. now in $HOME */
+     sprintf(lnkFileName, "%s/.mozilla/plugins/libnpsoplugin%s", getenv("HOME"), SAL_DLLEXTENSION);
+-    if ((0 > readlink(lnkFileName, realFileName, NPP_PATH_MAX)) ||
+-       (NULL == (pTempZero = strstr(realFileName, "/program/libnpsoplugin" SAL_DLLEXTENSION))))
++	ssize_t len = readlink(lnkFileName, realFileName, NPP_PATH_MAX-1);
++	if (-1 == len)
++	{
++        *realFileName = 0;
++        return -1;
++	}
++	realFileName[len] = '\0';
++
++	if (NULL == (pTempZero = strstr(realFileName, "/program/libnpsoplugin" SAL_DLLEXTENSION)))
+     {
+         *realFileName = 0;
+         return -1;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-ia64port01.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-ia64port01.diff
@@ -0,0 +1,4528 @@
+cvs diff: Diffing automation
+cvs diff: Diffing automation/inc
+cvs diff: Diffing automation/inc/automation
+cvs diff: Diffing automation/inc/pch
+cvs diff: Diffing automation/packimages
+cvs diff: Diffing automation/prj
+cvs diff: Diffing automation/source
+cvs diff: Diffing automation/source/app
+cvs diff: Diffing automation/source/communi
+cvs diff: Diffing automation/source/inc
+cvs diff: Diffing automation/source/miniapp
+cvs diff: Diffing automation/source/mozillaserver
+cvs diff: Diffing automation/source/server
+cvs diff: Diffing automation/source/simplecm
+cvs diff: Diffing automation/source/testtool
+Index: automation/source/testtool/objtest.cxx
+===================================================================
+RCS file: /cvs/util/automation/source/testtool/objtest.cxx,v
+retrieving revision 1.36
+retrieving revision 1.36.6.1
+diff -u -u -p -b -w -B -r1.36 -r1.36.6.1
+--- automation/source/testtool/objtest.cxx	26 Nov 2007 17:59:36 -0000	1.36
++++ automation/source/testtool/objtest.cxx	8 Jan 2008 08:25:51 -0000	1.36.6.1
+@@ -542,6 +542,8 @@ void TestToolObj::LoadIniFile()				// La
+     abGP.Append( "18" );  // Linux MIPS
+ #elif defined LINUX && defined ARM
+     abGP.Append( "19" );  // Linux ARM
++#elif defined LINUX && defined IA64
++    abGP.Append( "20" );  // Linux ia64
+ #else
+ #error ("unknown platform. please request an ID for your platform on qa/dev")
+ #endif
+cvs diff: Diffing automation/util
+cvs diff: Diffing automation/util/defs
+cvs diff: Diffing solenv
+cvs diff: Diffing solenv/bin
+cvs diff: Diffing solenv/bin/modules
+cvs diff: Diffing solenv/bin/modules/PCVSLib
+cvs diff: Diffing solenv/bin/modules/PCVSLib/lib
+cvs diff: Diffing solenv/bin/modules/PCVSLib/lib/PCVSLib
+cvs diff: Diffing solenv/bin/modules/PCVSLib/samples
+cvs diff: Diffing solenv/bin/modules/PCVSLib/t
+cvs diff: Diffing solenv/bin/modules/installer
+cvs diff: Diffing solenv/bin/modules/installer/windows
+cvs diff: Diffing solenv/bin/modules/packager
+cvs diff: Diffing solenv/bin/modules/par2script
+cvs diff: Diffing solenv/bin/modules/pre2par
+cvs diff: Diffing solenv/config
+cvs diff: Diffing solenv/inc
+Index: solenv/inc/unx.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unx.mk,v
+retrieving revision 1.35
+retrieving revision 1.35.92.1
+diff -u -u -p -b -w -B -r1.35 -r1.35.92.1
+--- solenv/inc/unx.mk	2 Nov 2007 15:20:22 -0000	1.35
++++ solenv/inc/unx.mk	4 Jan 2008 18:52:35 -0000	1.35.92.1
+@@ -131,6 +131,10 @@
+ .INCLUDE : unxlngr.mk
+ .ENDIF
+ 
++.IF "$(COM)$(OS)$(CPU)$(GLIBC)" == "GCCLINUXA2REDHAT60"
++.INCLUDE : unxlnga.mk
++.ENDIF
++
+ .IF "$(COM)$(OS)$(CPU)" == "ACCHPUXR"
+ .INCLUDE : unxhpxr.mk
+ .ENDIF
+Index: solenv/inc/unxlnga.mk
+===================================================================
+RCS file: solenv/inc/unxlnga.mk
+diff -N solenv/inc/unxlnga.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ solenv/inc/unxlnga.mk	26 Feb 2008 16:23:14 -0000	1.1.2.2
+@@ -0,0 +1,232 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++# mk file for unxlnga
++ASM=
++AFLAGS=
++
++SOLAR_JAVA*=
++JAVAFLAGSDEBUG=-g
++
++# filter for supressing verbose messages from linker
++#not needed at the moment
++#LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
++
++# _PTHREADS is needed for the stl
++CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DIA64 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
++
++# enable visibility define in "sal/types.h"
++.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE
++.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++
++# this is a platform with JAVA support
++.IF "$(SOLAR_JAVA)"!=""
++JAVADEF=-DSOLAR_JAVA
++.IF "$(debug)"==""
++JAVA_RUNTIME=-ljava
++.ELSE
++JAVA_RUNTIME=-ljava_g
++.ENDIF
++.ENDIF
++
++# architecture dependent flags for the C and C++ compiler that can be changed by
++# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
++ARCH_FLAGS*=
++
++# name of C++ Compiler
++CXX*=g++
++# name of C Compiler
++CC*=gcc
++.IF "$(SYSBASE)"!=""
++CFLAGS_SYSBASE:=-isystem $(SYSBASE)$/usr$/include
++CXX+:=$(CFLAGS_SYSBASE)
++CC+:=$(CFLAGS_SYSBASE)
++.ENDIF          # "$(SYSBASE)"!=""
++CFLAGS+=-Wreturn-type -fmessage-length=0 -c
++# flags to enable build with symbols; required for crashdump feature
++.IF "$(ENABLE_SYMBOLS)"=="SMALL"
++CFLAGSENABLESYMBOLS=-g1
++.ELSE
++CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
++
++.ENDIF
++.IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
++LINKFLAGS += -Wl,--hash-style=both
++.ELSE
++LINKFLAGS += -Wl,-zdynsort
++.ENDIF
++
++# flags for the C++ Compiler
++CFLAGSCC= -pipe $(ARCH_FLAGS)
++# Flags for enabling exception handling
++CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
++# Flags for disabling exception handling
++CFLAGS_NO_EXCEPTIONS=-fno-exceptions
++
++# -fpermissive should be removed as soon as possible
++CFLAGSCXX= -pipe $(ARCH_FLAGS)
++CFLAGSCXX+= -Wno-ctor-dtor-privacy
++CFLAGSCXX+= -fno-use-cxa-atexit
++PICSWITCH:=-fpic
++.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++CFLAGSCXX += -fvisibility-inlines-hidden
++.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++
++# Compiler flags for compiling static object in multi threaded environment with graphical user interface
++CFLAGSOBJGUIMT=
++# Compiler flags for compiling static object in multi threaded environment with character user interface
++CFLAGSOBJCUIMT=
++# Compiler flags for compiling shared object in multi threaded environment with graphical user interface
++CFLAGSSLOGUIMT=$(PICSWITCH)
++# Compiler flags for compiling shared object in multi threaded environment with character user interface
++CFLAGSSLOCUIMT=$(PICSWITCH)
++# Compiler flags for profiling
++CFLAGSPROF=
++# Compiler flags for debugging
++CFLAGSDEBUG=-g
++CFLAGSDBGUTIL=
++# Compiler flags for enabling optimizations
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
++CFLAGSOPT+=-Wuninitialized				# not supported without optimization
++.ELSE 	# "$(PRODUCT)"!=""
++CFLAGSOPT=   							# no optimizing for non products
++.ENDIF	# "$(PRODUCT)"!=""
++# Compiler flags for disabling optimizations
++CFLAGSNOOPT=-O0
++# Compiler flags for describing the output path
++CFLAGSOUTOBJ=-o
++
++# -Wshadow does not work for C with nested uses of pthread_cleanup_push:
++CFLAGSWARNCC=-Wall -Wextra -Wendif-labels
++CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \
++    -Wno-non-virtual-dtor
++CFLAGSWALLCC=$(CFLAGSWARNCC)
++CFLAGSWALLCXX=$(CFLAGSWARNCXX)
++CFLAGSWERRCC=-Werror
++
++# Once all modules on this platform compile without warnings, set
++# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
++# settings.mk):
++
++MODULES_WITH_WARNINGS := \
++    extensions \
++    soldep \
++    slideshow \
++    svtools \
++    svx
++
++# switches for dynamic and static linking
++STATIC		= -Wl,-Bstatic
++DYNAMIC		= -Wl,-Bdynamic
++
++# name of linker
++LINK*=$(CXX)
++LINKC*=$(CC)
++
++# default linker flags
++LINKFLAGSDEFS*=-Wl,-z,defs
++LINKFLAGSRUNPATH_URELIB=-Wl,-rpath,\''$$ORIGIN'\'
++LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\'
++    #TODO: drop $ORIGIN once no URE executable is also shipped in OOo
++LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
++LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
++LINKFLAGSRUNPATH_OXT=
++LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++
++# linker flags for linking applications
++LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
++LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
++
++# linker flags for linking shared libraries
++LINKFLAGSSHLGUI= -shared
++LINKFLAGSSHLCUI= -shared
++
++LINKFLAGSTACK=
++LINKFLAGSPROF=
++LINKFLAGSDEBUG=-g
++LINKFLAGSOPT=
++
++# linker flags for optimization (symbol hashtable)
++# for now, applied to symbol scoped libraries, only
++LINKFLAGSOPTIMIZE*=-Wl,-O1
++LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script
++
++SONAME_SWITCH=-Wl,-h
++
++# Sequence of libs does matter !
++
++STDLIBCPP=-lstdc++
++
++# default objectfilenames to link
++STDOBJVCL=$(L)$/salmain.o
++STDOBJGUI=
++STDSLOGUI=
++STDOBJCUI=
++STDSLOCUI=
++
++# libraries for linking applications
++STDLIBGUIMT+=-lX11 -ldl -lpthread -lm
++STDLIBCUIMT+=-ldl -lpthread -lm
++# libraries for linking shared libraries
++STDSHLGUIMT+=-lX11 -lXext -ldl -lpthread -lm
++STDSHLCUIMT+=-ldl -lpthread -lm
++
++LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive
++
++# name of library manager
++LIBMGR=ar
++LIBFLAGS=-r
++
++# tool for generating import libraries
++IMPLIB=
++IMPLIBFLAGS=
++
++MAPSYM=
++MAPSYMFLAGS=
++
++RC=irc
++RCFLAGS=-fo$@ $(RCFILES)
++RCLINK=
++RCLINKFLAGS=
++RCSETVERSION=
++
++# platform specific identifier for shared libs
++DLLPOSTFIX=la
++DLLPRE=lib
++DLLPOST=.so
++PCHPOST=.gch
++
+cvs diff: Diffing solenv/inc/startup
+cvs diff: Diffing solenv/inc/startup/AIX
+cvs diff: Diffing solenv/inc/startup/FREEBSD
+cvs diff: Diffing solenv/inc/startup/HPUX
+cvs diff: Diffing solenv/inc/startup/IRIX
+cvs diff: Diffing solenv/inc/startup/LINUX
+cvs diff: Diffing solenv/inc/startup/MACOSX
+cvs diff: Diffing solenv/inc/startup/NETBSD
+cvs diff: Diffing solenv/inc/startup/SOLARIS
+cvs diff: Diffing solenv/inc/startup/UNIX
+cvs diff: Diffing solenv/inc/startup/wnt
+cvs diff: Diffing solenv/prj
+cvs diff: Diffing solenv/src
+cvs diff: Diffing solenv/unxmacxp
+cvs diff: Diffing solenv/unxmacxp/inc
+cvs diff: Diffing tools
+cvs diff: Diffing tools/bootstrp
+cvs diff: Diffing tools/bootstrp/addexes
+cvs diff: Diffing tools/bootstrp/addexes2
+cvs diff: Diffing tools/inc
+cvs diff: Diffing tools/inc/bootstrp
+cvs diff: Diffing tools/inc/pch
+cvs diff: Diffing tools/inc/tools
+Index: tools/inc/tools/solar.h
+===================================================================
+RCS file: /cvs/util/tools/inc/tools/solar.h,v
+retrieving revision 1.5
+retrieving revision 1.5.44.2
+diff -u -u -p -b -w -B -r1.5 -r1.5.44.2
+--- tools/inc/tools/solar.h	2 Nov 2007 13:00:07 -0000	1.5
++++ tools/inc/tools/solar.h	21 Feb 2008 13:32:27 -0000	1.5.44.2
+@@ -388,6 +388,12 @@ template<typename T> inline T Abs(T a) {
+   #define __DLLEXTENSION "ls.so"
+ #elif defined LINUX && defined __x86_64__
+   #define __DLLEXTENSION "lx.so"
++#elif defined LINUX && defined MIPS
++  #define __DLLEXTENSION "lm.so"
++#elif defined LINUX && defined IA64
++  #define __DLLEXTENSION "la.so"
++#elif defined LINUX
++  #error unknown plattform
+ #elif defined FREEBSD && defined X86
+   #define __DLLEXTENSION "fi.so"
+ #elif defined FREEBSD && defined X86_64
+cvs diff: Diffing tools/prj
+cvs diff: Diffing tools/source
+cvs diff: Diffing tools/source/communi
+cvs diff: Diffing tools/source/datetime
+cvs diff: Diffing tools/source/debug
+cvs diff: Diffing tools/source/fsys
+cvs diff: Diffing tools/source/generic
+cvs diff: Diffing tools/source/inet
+cvs diff: Diffing tools/source/memtools
+cvs diff: Diffing tools/source/misc
+cvs diff: Diffing tools/source/rc
+cvs diff: Diffing tools/source/ref
+cvs diff: Diffing tools/source/solar
+cvs diff: Diffing tools/source/stream
+cvs diff: Diffing tools/source/string
+cvs diff: Diffing tools/source/testtoolloader
+cvs diff: Diffing tools/source/zcodec
+cvs diff: Diffing tools/test
+cvs diff: Diffing tools/unx
+cvs diff: Diffing tools/unx/source
+cvs diff: Diffing tools/unx/source/dll
+cvs diff: Diffing tools/util
+cvs diff: Diffing tools/util/defs
+cvs diff: Diffing tools/win
+cvs diff: Diffing tools/win/inc
+cvs diff: Diffing tools/win/source
+cvs diff: Diffing tools/win/source/dll
+cvs diff: Diffing tools/win/source/fastfsys
+cvs diff: Diffing tools/workben
+cvs diff: Diffing bridges
+cvs diff: Diffing bridges/inc
+cvs diff: Diffing bridges/inc/bridges
+cvs diff: Diffing bridges/inc/bridges/cpp_uno
+cvs diff: Diffing bridges/inc/bridges/cpp_uno/shared
+Index: bridges/inc/bridges/cpp_uno/shared/cppinterfaceproxy.hxx
+===================================================================
+RCS file: /cvs/udk/bridges/inc/bridges/cpp_uno/shared/cppinterfaceproxy.hxx,v
+retrieving revision 1.4
+retrieving revision 1.4.104.1
+diff -u -u -p -b -w -B -r1.4 -r1.4.104.1
+--- bridges/inc/bridges/cpp_uno/shared/cppinterfaceproxy.hxx	19 Jun 2006 23:38:14 -0000	1.4
++++ bridges/inc/bridges/cpp_uno/shared/cppinterfaceproxy.hxx	18 Feb 2008 10:40:36 -0000	1.4.104.1
+@@ -42,6 +42,7 @@
+ #include "typelib/typedescription.h"
+ #include "uno/dispatcher.h"
+ #include "uno/environment.h"
++#include "bridges/cpp_uno/shared/vtablefactory.hxx"
+ 
+ namespace com { namespace sun { namespace star { namespace uno {
+     class XInterface;
+@@ -102,7 +103,7 @@ private:
+     typelib_InterfaceTypeDescription * pTypeDescr;
+     rtl::OUString oid;
+ 
+-    void ** vtables[1];
++    VtableFactory::Slot * vtables[1];
+ 
+     friend void SAL_CALL freeCppInterfaceProxy(
+         uno_ExtEnvironment * pEnv, void * pInterface);
+Index: bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
+===================================================================
+RCS file: /cvs/udk/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx,v
+retrieving revision 1.5
+retrieving revision 1.5.116.1
+diff -u -u -p -b -w -B -r1.5 -r1.5.116.1
+--- bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx	2 May 2006 11:59:11 -0000	1.5
++++ bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx	18 Feb 2008 10:40:36 -0000	1.5.116.1
+@@ -50,6 +50,12 @@ namespace bridges { namespace cpp_uno { 
+  */
+ class VtableFactory {
+ public:
++    // This structure is not defined in the generic part, but instead has to be
++    // defined individually for each CPP--UNO bridge:
++    /** A vtable slot.
++     */
++    struct Slot;
++
+     /** A raw vtable block.
+      */
+     struct Block {
+@@ -99,7 +105,7 @@ public:
+     // defined individually for each CPP--UNO bridge:
+     /** Given a pointer to a block, turn it into a vtable pointer.
+      */
+-    static void ** mapBlockToVtable(void * block);
++    static Slot * mapBlockToVtable(void * block);
+ 
+ private:
+     class GuardedBlocks;
+@@ -133,11 +139,10 @@ private:
+     /** Initialize a raw vtable block.
+ 
+         @param block  the start address of the raw vtable block
+-        @return  a pointer to the first virtual function slot (minus any
+-        platform-specific ones, like a pointer to a destructor) within the given
+-        block
++        @param slotCount  the number of slots
++        @return  a pointer past the last vtable slot
+      */
+-    static void ** initializeBlock(void * block);
++    static Slot * initializeBlock(void * block, sal_Int32 slotCount);
+ 
+     // This function is not defined in the generic part, but instead has to be
+     // defined individually for each CPP--UNO bridge:
+@@ -145,8 +150,10 @@ private:
+         functions of a given interface type (and generate any necessary code
+         snippets for them).
+ 
+-        @param slots  points to the first vtable slot to be filled with the
+-        first virtual function local to the given type
++        @param slots  on input, points past the vtable slot to be filled with
++        the last virtual function local to the given type; on output, points to
++        the vtable slot filled with the first virtual function local to the
++        given type
+         @param code  points to the start of the area where code snippets can be
+         generated
+         @param type  the interface type description for which to generate vtable
+@@ -162,7 +169,7 @@ private:
+         @return  a pointer to the remaining code snippet area
+      */
+     static unsigned char * addLocalFunctions(
+-        void ** slots, unsigned char * code,
++        Slot ** slots, unsigned char * code,
+         typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+         sal_Int32 functionCount, sal_Int32 vtableOffset);
+ 
+cvs diff: Diffing bridges/inc/bridges/remote
+cvs diff: Diffing bridges/inc/pch
+cvs diff: Diffing bridges/prj
+Index: bridges/prj/build.lst
+===================================================================
+RCS file: /cvs/udk/bridges/prj/build.lst,v
+retrieving revision 1.44
+retrieving revision 1.44.8.1
+diff -u -u -p -b -w -B -r1.44 -r1.44.8.1
+--- bridges/prj/build.lst	26 Nov 2007 18:01:08 -0000	1.44
++++ bridges/prj/build.lst	4 Jan 2008 19:09:57 -0000	1.44.8.1
+@@ -18,6 +18,7 @@ br	bridges\source\cpp_uno\gcc3_linux_mip
+ br	bridges\source\cpp_uno\gcc3_linux_s390		nmake	-	u	br_gccl33 br_unotypes br_inc NULL
+ br	bridges\source\cpp_uno\gcc3_linux_sparc		nmake	-	u	br_gccl3s br_unotypes br_cppuno_shared br_inc NULL
+ br	bridges\source\cpp_uno\gcc3_linux_arm		nmake	-	u	br_gccl3r br_unotypes NULL
++br	bridges\source\cpp_uno\gcc3_linux_ia64		nmake	-	u	br_gccl3a br_unotypes NULL
+ br	bridges\source\cpp_uno\gcc3_macosx_intel			nmake	-	u	br_gcc3macoxi br_cppuno_shared br_unotypes br_inc NULL
+ br	bridges\source\cpp_uno\gcc3_macosx_powerpc			nmake	-	u	br_gcc3macoxp br_cppuno_shared br_unotypes br_inc NULL
+ br	bridges\source\cpp_uno\cc50_solaris_sparc			nmake	-	u	br_cc50sols br_unotypes br_cppuno_shared br_inc NULL
+cvs diff: Diffing bridges/source
+cvs diff: Diffing bridges/source/cpp_uno
+cvs diff: Diffing bridges/source/cpp_uno/cc50_solaris_intel
+Index: bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx,v
+retrieving revision 1.15
+retrieving revision 1.15.82.1
+diff -u -u -p -b -w -B -r1.15 -r1.15.82.1
+--- bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx	16 Sep 2006 15:43:28 -0000	1.15
++++ bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx	18 Feb 2008 11:14:12 -0000	1.15.82.1
+@@ -460,30 +460,37 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+-{
+-    return static_cast< void ** >(block) + 1;
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) {
++    return static_cast< Slot * >(block) + 1;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 3) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 3) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block) + 2;
+-    slots[-3] = 0; // RTTI
+-    slots[-2] = 0; // null
+-    slots[-1] = 0; // destructor
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block) + 2;
++    slots[-3].fn = 0; // RTTI
++    slots[-2].fn = 0; // null
++    slots[-1].fn = 0; // destructor
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -491,7 +498,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+@@ -501,13 +508,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, 0);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+cvs diff: Diffing bridges/source/cpp_uno/cc50_solaris_sparc
+Index: bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.42.1
+diff -u -u -p -b -w -B -r1.23 -r1.23.42.1
+--- bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx	14 Mar 2007 08:25:27 -0000	1.23
++++ bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx	18 Feb 2008 11:14:13 -0000	1.23.42.1
+@@ -456,30 +456,38 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 1;
++    return static_cast< Slot * >(block) + 1;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 3) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 3) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block) + 2;
+-    slots[-3] = 0; // RTTI
+-    slots[-2] = 0; // null
+-    slots[-1] = 0; // destructor
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block) + 2;
++    slots[-3].fn = 0; // RTTI
++    slots[-2].fn = 0; // null
++    slots[-1].fn = 0; // destructor
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -487,7 +495,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -499,13 +507,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_freebsd_intel
+Index: bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx,v
+retrieving revision 1.10
+retrieving revision 1.10.32.1
+diff -u -u -p -b -w -B -r1.10 -r1.10.32.1
+--- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx	5 Jul 2007 08:59:35 -0000	1.10
++++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx	18 Feb 2008 10:47:02 -0000	1.10.32.1
+@@ -421,29 +421,37 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -451,7 +459,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+@@ -461,7 +469,7 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(
+                     code, functionOffset++, vtableOffset,
+                     typelib_TypeClass_VOID);
+@@ -469,7 +477,7 @@ unsigned char * bridges::cpp_uno::shared
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_freebsd_x86-64
+Index: bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.82.1
+diff -u -u -p -b -w -B -r1.3 -r1.3.82.1
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx	16 Sep 2006 15:46:37 -0000	1.3
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx	18 Feb 2008 10:47:02 -0000	1.3.82.1
+@@ -465,35 +465,42 @@ unsigned char * codeSnippet( unsigned ch
+ }
+ 
+ //==================================================================================================
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable( void * block )
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-	return static_cast<void **>( block ) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ //==================================================================================================
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return ( slotCount + 2 ) * sizeof( void * ) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+ //==================================================================================================
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock( void * block )
+-{
+-	void ** slots = mapBlockToVtable( block );
+-	slots[-2] = 0;
+-	slots[-1] = 0;
+-
+-	return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ //==================================================================================================
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-	void ** slots, unsigned char * code,
++	Slot ** slots, unsigned char * code,
+ 	typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
+ 	sal_Int32 functionCount, sal_Int32 nVtableOffset )
+ {
++	(*slots) -= functionCount;
++	Slot * s = *slots;
++
+ 	for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos )
+ 	{
+ 		typelib_TypeDescription * pTD = 0;
+@@ -507,14 +514,14 @@ unsigned char * bridges::cpp_uno::shared
+ 				reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD );
+ 
+ 			// get method
+-			*slots++ = code;
++			(s++)->fn = code;
+ 			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+ 								x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) );
+ 
+ 			if ( ! pAttrTD->bReadOnly )
+ 			{
+ 				// set method
+-				*slots++ = code;
++				(s++)->fn = code;
+ 				code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false );
+ 			}
+ 		}
+@@ -523,7 +530,7 @@ unsigned char * bridges::cpp_uno::shared
+ 			typelib_InterfaceMethodTypeDescription *pMethodTD =
+ 				reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD );
+ 			
+-			*slots++ = code;
++			(s++)->fn = code;
+ 			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+ 								x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) );
+ 		}
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_arm
+Index: bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.6.1
+diff -u -u -p -b -w -B -r1.3 -r1.3.6.1
+--- bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx	12 Dec 2007 15:34:25 -0000	1.3
++++ bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx	18 Feb 2008 10:40:36 -0000	1.3.6.1
+@@ -447,29 +447,37 @@ namespace
+     }
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i)
+     {
+         typelib_TypeDescription * member = 0;
+@@ -479,7 +487,7 @@ unsigned char * bridges::cpp_uno::shared
+         {
+             case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+                 // Getter:
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(
+                     code, functionOffset++, vtableOffset,
+                     bridges::cpp_uno::shared::isSimpleType(
+@@ -491,14 +499,14 @@ unsigned char * bridges::cpp_uno::shared
+                     typelib_InterfaceAttributeTypeDescription * >(
+                         member)->bReadOnly)
+                 {
+-                    *slots++ = code;
++                    (s++)->fn = code;
+                     code = codeSnippet(
+                         code, functionOffset++, vtableOffset, true);
+                 }
+                 break;
+             case typelib_TypeClass_INTERFACE_METHOD:
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+ 
+                 typelib_InterfaceMethodTypeDescription *pMethodTD = 
+                     reinterpret_cast<
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_ia64
+Index: bridges/source/cpp_uno/gcc3_linux_ia64/call.s
+===================================================================
+RCS file: bridges/source/cpp_uno/gcc3_linux_ia64/call.s
+diff -N bridges/source/cpp_uno/gcc3_linux_ia64/call.s
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ bridges/source/cpp_uno/gcc3_linux_ia64/call.s	15 Feb 2008 17:36:55 -0000	1.1.2.2
+@@ -0,0 +1,20 @@
++/* ia64 support code for OpenOffice C++/UNO bridging
++ *
++ * Caolan McNamara <caolanm@redhat.com>
++ */
++	.text
++	.align 16
++	.global privateSnippetExecutor#
++	.proc privateSnippetExecutor#
++privateSnippetExecutor:
++	adds r15 = 8, gp	/* r15 now points to real gp value*/
++	;;
++	ld8 r14 = [gp]		/* load nOffsetAndIndex into a handy register */
++	ld8 gp = [r15]		/* load real gp value into gp */
++	;;
++	/* store the address where large structs are "returned" into a handy register */
++	mov r15 = r8
++	;;
++	br cpp_vtable_call#	/* call cpp_vtable_call which'll suck out r14 */
++	;;
++	.endp privateSnippetExecutor#
+Index: bridges/source/cpp_uno/gcc3_linux_ia64/cpp2uno.cxx
+===================================================================
+RCS file: bridges/source/cpp_uno/gcc3_linux_ia64/cpp2uno.cxx
+diff -N bridges/source/cpp_uno/gcc3_linux_ia64/cpp2uno.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ bridges/source/cpp_uno/gcc3_linux_ia64/cpp2uno.cxx	18 Feb 2008 10:40:37 -0000	1.1.2.3
+@@ -0,0 +1,692 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_bridges.hxx"
++
++#include <com/sun/star/uno/genfunc.hxx>
++#include <uno/data.h>
++#include <typelib/typedescription.hxx>
++
++#include "bridges/cpp_uno/shared/bridge.hxx"
++#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
++#include "bridges/cpp_uno/shared/types.hxx"
++#include "bridges/cpp_uno/shared/vtablefactory.hxx"
++
++#include "share.hxx"
++#include <stdio.h>
++
++extern "C" { extern void (*privateSnippetExecutor)(); }
++
++using namespace ::com::sun::star::uno;
++
++namespace
++{
++//==================================================================================================
++static typelib_TypeClass cpp2uno_call(
++	bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
++	const typelib_TypeDescription * pMemberTypeDescr,
++	typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
++	sal_Int32 nParams, typelib_MethodParameter * pParams, long r8, 
++        void ** gpreg, void ** fpreg, void ** ovrflw,
++	sal_Int64 * pRegisterReturn /* space for register return */ )
++{
++#ifdef CMC_DEBUG
++    fprintf(stderr, "as far as cpp2uno_call\n");
++#endif
++
++    int ng = 0; //number of gpr registers used 
++    int nf = 0; //number of fpr regsiters used
++       
++    // gpreg:  [ret *], this, [gpr params]
++    // fpreg:  [fpr params]
++    // ovrflw: [gpr or fpr params (properly aligned)]
++
++	// return
++	typelib_TypeDescription * pReturnTypeDescr = 0;
++	if (pReturnTypeRef)
++		TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
++	
++	void * pUnoReturn = 0;
++	void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
++	
++	if (pReturnTypeDescr)
++	{
++		if ( ia64::return_in_hidden_param( pReturnTypeRef ) ) // complex return via ptr passed as hidden parameter reg (pCppReturn)
++		{
++			pCppReturn = *(void **)gpreg;
++			gpreg++;
++			ng++;
++			
++			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
++						  ? alloca( pReturnTypeDescr->nSize )
++						  : pCppReturn); // direct way
++		}
++		else if ( ia64::return_via_r8_buffer( pReturnTypeRef ) ) // complex return via ptr passed in r8 
++		{
++			pCppReturn = (void *)r8;
++			
++			pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
++						  ? alloca( pReturnTypeDescr->nSize )
++						  : pCppReturn); // direct way
++		}
++
++		else
++			pUnoReturn = pRegisterReturn; // direct way for simple types
++	}
++	// pop this
++    gpreg++; 
++    ng++;
++
++	// stack space
++	OSL_ENSURE( sizeof(void *) == sizeof(sal_Int64), "### unexpected size!" );
++	// parameters
++	void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
++	void ** pCppArgs = pUnoArgs + nParams;
++	// indizes of values this have to be converted (interface conversion cpp<=>uno)
++	sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
++	// type descriptions for reconversions
++	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
++	
++	sal_Int32 nTempIndizes = 0;
++	bool bOverFlowUsed = false;
++	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
++	{
++		const typelib_MethodParameter & rParam = pParams[nPos];
++		typelib_TypeDescription * pParamTypeDescr = 0;
++		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
++
++#ifdef CMC_DEBUG
++		fprintf(stderr, "arg %d of %d\n", nPos, nParams);
++#endif
++
++		//I think it is impossible to get UNO to pass structs as parameters by copy
++		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) 
++		{
++#ifdef CMC_DEBUG
++			fprintf(stderr, "simple\n");
++#endif
++
++			switch (pParamTypeDescr->eTypeClass)
++			{
++				case typelib_TypeClass_FLOAT:
++					if (nf < ia64::MAX_SSE_REGS && ng < ia64::MAX_GPR_REGS)
++					{
++                        float tmp = (float) (*((double *)fpreg));
++                        (*((float *) fpreg)) = tmp;
++						pCppArgs[nPos] = pUnoArgs[nPos] = fpreg++;
++						nf++;
++                        gpreg++;
++                        ng++;
++					}
++					else
++                    {
++						pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
++                        bOverFlowUsed = true;
++                    }
++                    if (bOverFlowUsed) ovrflw++;
++					break;
++				case typelib_TypeClass_DOUBLE:
++					if (nf < ia64::MAX_SSE_REGS && ng < ia64::MAX_GPR_REGS)
++					{
++						pCppArgs[nPos] = pUnoArgs[nPos] = fpreg++;
++						nf++;
++                        gpreg++;
++                        ng++;
++					}
++					else
++                    {
++						pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
++                        bOverFlowUsed = true;
++                    }
++                    if (bOverFlowUsed) ovrflw++;
++					break;
++                case typelib_TypeClass_BYTE:
++                case typelib_TypeClass_BOOLEAN:
++                case typelib_TypeClass_CHAR:
++                case typelib_TypeClass_SHORT:
++                case typelib_TypeClass_UNSIGNED_SHORT:
++		        case typelib_TypeClass_ENUM:
++                case typelib_TypeClass_LONG:
++                case typelib_TypeClass_UNSIGNED_LONG:
++				default:
++					if (ng < ia64::MAX_GPR_REGS) 
++					{
++						pCppArgs[nPos] = pUnoArgs[nPos] = gpreg++;
++						ng++;
++					}
++					else
++                    {
++						pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
++                        bOverFlowUsed = true;
++                    }
++                    if (bOverFlowUsed) ovrflw++;
++					break;
++		        }
++
++		        // no longer needed
++				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++		}
++		else // ptr to complex value | ref
++		{
++#ifdef CMC_DEBUG
++			fprintf(stderr, "complex, ng is %d\n", ng);
++#endif
++            void *pCppStack; //temporary stack pointer
++
++			if (ng < ia64::MAX_GPR_REGS)
++			{ 
++		        pCppArgs[nPos] = pCppStack = *gpreg++;
++			    ng++;
++			}
++			else
++            {
++			    pCppArgs[nPos] = pCppStack = *ovrflw;
++                bOverFlowUsed = true;
++            }
++            if (bOverFlowUsed) ovrflw++;
++
++			if (! rParam.bIn) // is pure out
++			{
++				// uno out is unconstructed mem!
++				pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
++				pTempIndizes[nTempIndizes] = nPos;
++				// will be released at reconversion
++				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++			}
++			// is in/inout
++			else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
++			{
++				uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++										pCppStack, pParamTypeDescr,
++										pThis->getBridge()->getCpp2Uno() );
++				pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
++				// will be released at reconversion
++				ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++			}
++			else // direct way
++			{
++				pUnoArgs[nPos] = pCppStack;
++				// no longer needed
++				TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++			}
++		}
++	}
++
++#ifdef CMC_DEBUG
++	fprintf(stderr, "end of params\n");
++#endif
++	
++	// ExceptionHolder
++	uno_Any aUnoExc; // Any will be constructed by callee
++	uno_Any * pUnoExc = &aUnoExc;
++
++	// invoke uno dispatch call
++	(*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
++	
++	// in case an exception occured...
++	if (pUnoExc)
++	{
++		// destruct temporary in/inout params
++		for ( ; nTempIndizes--; )
++		{
++			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++			
++			if (pParams[nIndex].bIn) // is in/inout => was constructed
++				uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
++			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
++		}
++		if (pReturnTypeDescr)
++			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++		
++		CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); 
++                // has to destruct the any
++		// is here for dummy
++		return typelib_TypeClass_VOID;
++	}
++	else // else no exception occured...
++	{
++		// temporary params
++		for ( ; nTempIndizes--; )
++		{
++			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
++			
++			if (pParams[nIndex].bOut) // inout/out
++			{
++				// convert and assign
++				uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
++				uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
++										pThis->getBridge()->getUno2Cpp() );
++			}
++			// destroy temp uno param
++			uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
++			
++			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++		}
++		// return
++		if (pCppReturn) // has complex return
++		{
++			if (pUnoReturn != pCppReturn) // needs reconversion
++			{
++				uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
++										pThis->getBridge()->getUno2Cpp() );
++				// destroy temp uno return
++				uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
++			}
++			// complex return ptr is set to return reg
++			*(void **)pRegisterReturn = pCppReturn;
++		}
++		if (pReturnTypeDescr)
++		{
++			typelib_TypeClass eRet = ia64::return_via_r8_buffer(pReturnTypeRef) ? typelib_TypeClass_VOID : (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
++			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++			return eRet;
++		}
++		else
++			return typelib_TypeClass_VOID;
++	}
++}
++
++
++//==================================================================================================
++static typelib_TypeClass cpp_mediate(
++	sal_uInt64 nOffsetAndIndex,
++        void ** gpreg, void ** fpreg, long sp, long r8, 
++	sal_Int64 * pRegisterReturn /* space for register return */ )
++{
++    OSL_ENSURE( sizeof(sal_Int64)==sizeof(void *), "### unexpected!" );
++
++    sal_Int32 nVtableOffset = (nOffsetAndIndex >> 32);
++    sal_Int32 nFunctionIndex = (nOffsetAndIndex & 0xFFFFFFFF);
++
++    void ** ovrflw = (void**)(sp);
++	
++    // gpreg:  [ret *], this, [other gpr params]
++    // fpreg:  [fpr params]
++    // ovrflw: [gpr or fpr params (properly aligned)]
++
++    void * pThis;
++    if (nFunctionIndex & 0x80000000 )
++    {
++	nFunctionIndex &= 0x7fffffff;
++	pThis = gpreg[1];
++#ifdef CMC_DEBUG
++	fprintf(stderr, "pThis is gpreg[1]\n");
++#endif
++    }
++    else
++    {
++	pThis = gpreg[0];
++#ifdef CMC_DEBUG
++	fprintf(stderr, "pThis is gpreg[0]\n");
++#endif
++    }
++
++#ifdef CMC_DEBUG
++    fprintf(stderr, "pThis is %p\n", pThis);
++#endif
++    
++    pThis = static_cast< char * >(pThis) - nVtableOffset;
++
++#ifdef CMC_DEBUG
++    fprintf(stderr, "pThis is now %p\n", pThis);
++#endif
++
++    bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
++	    = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
++			pThis);
++
++    typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
++
++#ifdef CMC_DEBUG
++    fprintf(stderr, "indexes are %d %d\n", nFunctionIndex, pTypeDescr->nMapFunctionIndexToMemberIndex);
++#endif
++	
++	OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
++	if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
++	{
++		throw RuntimeException(
++            rtl::OUString::createFromAscii("illegal vtable index!"),
++            (XInterface *)pThis );
++	}
++	
++	// determine called method
++	sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
++	OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
++
++#ifdef CMC_DEBUG
++	fprintf(stderr, "members are %d %d\n", nMemberPos, pTypeDescr->nAllMembers);
++#endif
++
++	TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
++
++	typelib_TypeClass eRet;
++	switch (aMemberDescr.get()->eTypeClass)
++	{
++	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++	{
++		if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
++		{
++			// is GET method
++			eRet = cpp2uno_call(
++				pCppI, aMemberDescr.get(),
++				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
++				0, 0, // no params
++				r8, gpreg, fpreg, ovrflw, pRegisterReturn );
++		}
++		else
++		{
++			// is SET method
++			typelib_MethodParameter aParam;
++			aParam.pTypeRef =
++				((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
++			aParam.bIn		= sal_True;
++			aParam.bOut		= sal_False;
++			
++			eRet = cpp2uno_call(
++				pCppI, aMemberDescr.get(),
++				0, // indicates void return
++				1, &aParam,
++				r8, gpreg, fpreg, ovrflw, pRegisterReturn );
++		}
++		break;
++	}
++	case typelib_TypeClass_INTERFACE_METHOD:
++	{
++		// is METHOD
++		switch (nFunctionIndex)
++		{
++		case 1: // acquire()
++			pCppI->acquireProxy(); // non virtual call!
++			eRet = typelib_TypeClass_VOID;
++			break;
++		case 2: // release()
++			pCppI->releaseProxy(); // non virtual call!
++			eRet = typelib_TypeClass_VOID;
++			break;
++		case 0: // queryInterface() opt
++		{
++			typelib_TypeDescription * pTD = 0;
++			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
++			if (pTD)
++			{
++                XInterface * pInterface = 0;
++                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
++                    pCppI->getBridge()->getCppEnv(),
++                    (void **)&pInterface, pCppI->getOid().pData, 
++                    (typelib_InterfaceTypeDescription *)pTD );
++			
++                if (pInterface)
++                {
++                    ::uno_any_construct(
++                        reinterpret_cast< uno_Any * >( gpreg[0] ),
++                        &pInterface, pTD, cpp_acquire );
++                    pInterface->release();
++                    TYPELIB_DANGER_RELEASE( pTD );
++                    *(void **)pRegisterReturn = gpreg[0];
++                    eRet = typelib_TypeClass_ANY;
++                    break;
++                }
++                TYPELIB_DANGER_RELEASE( pTD );
++			}
++		} // else perform queryInterface()
++		default:
++			eRet = cpp2uno_call(
++				pCppI, aMemberDescr.get(),
++				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
++				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
++				((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
++				r8, gpreg, fpreg, ovrflw, pRegisterReturn );
++		}
++		break;
++	}
++	default:
++	{
++#ifdef CMC_DEBUG
++	    fprintf(stderr, "screwed\n");
++#endif
++
++		throw RuntimeException(
++            rtl::OUString::createFromAscii("no member description found!"),
++            (XInterface *)pThis );
++		// is here for dummy
++		eRet = typelib_TypeClass_VOID;
++	}
++	}
++
++#ifdef CMC_DEBUG
++        fprintf(stderr, "end of cpp_mediate\n");
++#endif
++    return eRet;
++}
++}
++
++extern "C" ia64::RegReturn cpp_vtable_call(
++    long in0, long in1, long in2, long in3, long in4, long in5, long in6, long in7,
++    long firstonstack
++    )
++{
++    register long r15 asm("r15");
++    long r8 = r15;
++
++    register long r14 asm("r14");
++    long nOffsetAndIndex = r14;
++
++    long sp = (long)&firstonstack;
++
++    sal_uInt64 gpreg[ia64::MAX_GPR_REGS];
++    gpreg[0] = in0;
++    gpreg[1] = in1;
++    gpreg[2] = in2;
++    gpreg[3] = in3;
++    gpreg[4] = in4;
++    gpreg[5] = in5;
++    gpreg[6] = in6;
++    gpreg[7] = in7;
++
++    double fpreg[ia64::MAX_SSE_REGS];
++    register double f8  asm("f8");  fpreg[0] =  f8;
++    register double f9  asm("f9");  fpreg[1] =  f9;
++    register double f10 asm("f10"); fpreg[2] = f10;
++    register double f11 asm("f11"); fpreg[3] = f11;
++    register double f12 asm("f12"); fpreg[4] = f12;
++    register double f13 asm("f13"); fpreg[5] = f13;
++    register double f14 asm("f14"); fpreg[6] = f14;
++    register double f15 asm("f15"); fpreg[7] = f15;
++
++#ifdef CMC_DEBUG
++	fprintf(stderr, "cpp_vtable_call called with %lx\n", nOffsetAndIndex);
++	fprintf(stderr, "adump is %lx %lx %lx %lx %lx %lx %lx %lx\n", in0, in1, in2, in3, in4, in5, in6, in7);
++	fprintf(stderr, "bdump is %f %f %f %f %f %f %f %f\n", f8, f9, f10, f11, f12, f13, f14, f15);
++#endif
++
++    volatile long nRegReturn[4] = { 0 };
++
++    typelib_TypeClass aType =
++        cpp_mediate( nOffsetAndIndex, (void**)gpreg, (void**)fpreg, sp, r8, (sal_Int64*)&nRegReturn[0]);
++
++    ia64::RegReturn ret;
++    switch( aType )
++    {
++        case typelib_TypeClass_VOID:
++            break;
++        case typelib_TypeClass_BOOLEAN:
++        case typelib_TypeClass_BYTE:
++        case typelib_TypeClass_CHAR:
++        case typelib_TypeClass_UNSIGNED_SHORT:
++        case typelib_TypeClass_SHORT:
++        case typelib_TypeClass_ENUM:
++        case typelib_TypeClass_UNSIGNED_LONG:
++        case typelib_TypeClass_LONG:
++        case typelib_TypeClass_UNSIGNED_HYPER:
++        case typelib_TypeClass_HYPER:
++            ret.r8 = nRegReturn[0];
++            break;
++        case typelib_TypeClass_FLOAT:
++            asm volatile("ldfs f8=%0" : : "m"((*((float*)&nRegReturn))) : "f8");
++            break;
++        case typelib_TypeClass_DOUBLE:
++            asm volatile("ldfd f8=%0" : : "m"((*((double*)&nRegReturn))) : "f8");
++            break;
++        case typelib_TypeClass_STRUCT:
++	case typelib_TypeClass_EXCEPTION:
++	{
++            ret.r8 = nRegReturn[0];
++            ret.r9 = nRegReturn[1];
++            ret.r10 = nRegReturn[2];
++            ret.r11 = nRegReturn[3];
++            break;
++	}
++        default:
++	    break;
++    }
++    return ret;
++}
++
++namespace
++{
++const int codeSnippetSize = 40;
++
++bridges::cpp_uno::shared::VtableFactory::Slot codeSnippet( unsigned char * code, sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset, 
++                              bool bHasHiddenParam )
++{
++#ifdef CMC_DEBUG
++    fprintf(stderr, "size is %d\n", codeSnippetSize);
++    fprintf(stderr,"in codeSnippet functionIndex is %x\n", nFunctionIndex);
++    fprintf(stderr,"in codeSnippet vtableOffset is %x\n", nVtableOffset);
++#endif
++
++    sal_uInt64 nOffsetAndIndex = ( ( (sal_uInt64) nVtableOffset ) << 32 ) | ( (sal_uInt64) nFunctionIndex );
++
++    if ( bHasHiddenParam )
++        nOffsetAndIndex |= 0x80000000;
++
++    long *raw = (long *)code;
++
++    bridges::cpp_uno::shared::VtableFactory::Slot* destination = (bridges::cpp_uno::shared::VtableFactory::Slot*)cpp_vtable_call;
++
++    raw[0] = (long)&privateSnippetExecutor;
++    raw[1] = (long)&raw[2];
++    raw[2] = nOffsetAndIndex;
++    raw[3] = destination->gp_value;
++
++    return *(bridges::cpp_uno::shared::VtableFactory::Slot*)(code);
++}
++}
++
++void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const *, unsigned char const *)
++{
++}
++
++bridges::cpp_uno::shared::VtableFactory::Slot * bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++{
++    return static_cast< Slot * >(block) + 2;
++}
++
++
++sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
++    sal_Int32 slotCount)
++{
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
++}
++
++bridges::cpp_uno::shared::VtableFactory::Slot* bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    Slot foo = {0,0};
++    slots[-2] = foo;
++    slots[-1] = foo;
++    return slots + slotCount;
++}
++
++unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
++    Slot ** in_slots, unsigned char * code,
++    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
++{
++    (*in_slots) -= functionCount;
++    Slot * slots = *in_slots;
++#ifdef CMC_DEBUG
++    fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
++    fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
++#endif
++
++    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
++        typelib_TypeDescription * member = 0;
++        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
++        OSL_ASSERT(member != 0);
++        switch (member->eTypeClass) {
++        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++            // Getter:
++            *slots++ = codeSnippet(
++                code, functionOffset++, vtableOffset,
++                ia64::return_in_hidden_param(
++                    reinterpret_cast<
++                    typelib_InterfaceAttributeTypeDescription * >(
++                        member)->pAttributeTypeRef));
++            code += codeSnippetSize;
++
++
++            // Setter:
++            if (!reinterpret_cast<
++                typelib_InterfaceAttributeTypeDescription * >(
++                    member)->bReadOnly)
++            {
++                *slots++ = codeSnippet(code, functionOffset++, vtableOffset, false);
++            	code += codeSnippetSize;
++            }
++            break;
++
++        case typelib_TypeClass_INTERFACE_METHOD:
++            *slots++ = codeSnippet(
++                code, functionOffset++, vtableOffset,
++                ia64::return_in_hidden_param(
++                    reinterpret_cast<
++                    typelib_InterfaceMethodTypeDescription * >(
++                        member)->pReturnTypeRef));
++            code += codeSnippetSize;
++            break;
++
++        default:
++            OSL_ASSERT(false);
++            break;
++        }
++        TYPELIB_DANGER_RELEASE(member);
++    }
++    return code;
++}
++
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx
+===================================================================
+RCS file: bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx
+diff -N bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx	15 Feb 2008 17:36:56 -0000	1.1.2.2
+@@ -0,0 +1,294 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_bridges.hxx"
++
++#include <stdio.h>
++#include <dlfcn.h>
++#include <cxxabi.h>
++#include <hash_map>
++
++#include <rtl/strbuf.hxx>
++#include <rtl/ustrbuf.hxx>
++#include <osl/diagnose.h>
++#include <osl/mutex.hxx>
++
++#include <com/sun/star/uno/genfunc.hxx>
++#include <typelib/typedescription.hxx>
++#include <uno/any2.h>
++
++#include "share.hxx"
++
++
++using namespace ::std;
++using namespace ::osl;
++using namespace ::rtl;
++using namespace ::com::sun::star::uno;
++using namespace ::__cxxabiv1;
++
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++void dummy_can_throw_anything( char const * )
++{
++}
++
++//==================================================================================================
++static OUString toUNOname( char const * p ) SAL_THROW( () )
++{
++#if OSL_DEBUG_LEVEL > 1
++    char const * start = p;
++#endif
++
++    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
++
++	OUStringBuffer buf( 64 );
++    OSL_ASSERT( 'N' == *p );
++    ++p; // skip N
++
++    while ('E' != *p)
++    {
++        // read chars count
++        long n = (*p++ - '0');
++        while ('0' <= *p && '9' >= *p)
++        {
++            n *= 10;
++            n += (*p++ - '0');
++        }
++        buf.appendAscii( p, n );
++        p += n;
++        if ('E' != *p)
++            buf.append( (sal_Unicode)'.' );
++    }
++
++#if OSL_DEBUG_LEVEL > 1
++    OUString ret( buf.makeStringAndClear() );
++    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
++    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
++    return ret;
++#else
++    return buf.makeStringAndClear();
++#endif
++}
++
++//==================================================================================================
++class RTTI
++{
++    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
++
++    Mutex m_mutex;
++	t_rtti_map m_rttis;
++    t_rtti_map m_generatedRttis;
++
++    void * m_hApp;
++
++public:
++    RTTI() SAL_THROW( () );
++    ~RTTI() SAL_THROW( () );
++
++    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
++};
++//__________________________________________________________________________________________________
++RTTI::RTTI() SAL_THROW( () )
++    : m_hApp( dlopen( 0, RTLD_LAZY ) )
++{
++}
++//__________________________________________________________________________________________________
++RTTI::~RTTI() SAL_THROW( () )
++{
++    dlclose( m_hApp );
++}
++
++//__________________________________________________________________________________________________
++type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
++{
++    type_info * rtti;
++
++    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
++
++    MutexGuard guard( m_mutex );
++    t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
++    if (iRttiFind == m_rttis.end())
++    {
++        // RTTI symbol
++        OStringBuffer buf( 64 );
++        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
++        sal_Int32 index = 0;
++        do
++        {
++            OUString token( unoName.getToken( 0, '.', index ) );
++            buf.append( token.getLength() );
++            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
++            buf.append( c_token );
++        }
++        while (index >= 0);
++        buf.append( 'E' );
++
++        OString symName( buf.makeStringAndClear() );
++        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
++
++        if (rtti)
++        {
++            pair< t_rtti_map::iterator, bool > insertion(
++                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
++            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
++        }
++        else
++        {
++            // try to lookup the symbol in the generated rtti map
++            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
++            if (iFind == m_generatedRttis.end())
++            {
++                // we must generate it !
++                // symbol and rtti-name is nearly identical,
++                // the symbol is prefixed with _ZTI
++                char const * rttiName = symName.getStr() +4;
++#if OSL_DEBUG_LEVEL > 1
++                fprintf( stderr,"generated rtti for %s\n", rttiName );
++#endif
++                if (pTypeDescr->pBaseTypeDescription)
++                {
++                    // ensure availability of base
++                    type_info * base_rtti = getRTTI(
++                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
++                    rtti = new __si_class_type_info(
++                        strdup( rttiName ), (__class_type_info *)base_rtti );
++                }
++                else
++                {
++                    // this class has no base class
++                    rtti = new __class_type_info( strdup( rttiName ) );
++                }
++
++                pair< t_rtti_map::iterator, bool > insertion(
++                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
++                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
++            }
++            else // taking already generated rtti
++            {
++                rtti = iFind->second;
++            }
++        }
++    }
++    else
++    {
++        rtti = iRttiFind->second;
++    }
++
++    return rtti;
++}
++
++//--------------------------------------------------------------------------------------------------
++static void deleteException( void * pExc )
++{
++    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
++    typelib_TypeDescription * pTD = 0;
++    OUString unoName( toUNOname( header->exceptionType->name() ) );
++    ::typelib_typedescription_getByName( &pTD, unoName.pData );
++    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
++    if (pTD)
++    {
++		::uno_destructData( pExc, pTD, cpp_release );
++		::typelib_typedescription_release( pTD );
++	}
++}
++
++//==================================================================================================
++void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
++{
++    void * pCppExc;
++    type_info * rtti;
++
++    {
++    // construct cpp exception object
++	typelib_TypeDescription * pTypeDescr = 0;
++	TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
++    OSL_ASSERT( pTypeDescr );
++    if (! pTypeDescr)
++        terminate();
++
++	pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
++	::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
++
++	// destruct uno exception
++	::uno_any_destruct( pUnoExc, 0 );
++    // avoiding locked counts
++    static RTTI * s_rtti = 0;
++    if (! s_rtti)
++    {
++        MutexGuard guard( Mutex::getGlobalMutex() );
++        if (! s_rtti)
++        {
++#ifdef LEAK_STATIC_DATA
++            s_rtti = new RTTI();
++#else
++            static RTTI rtti_data;
++            s_rtti = &rtti_data;
++#endif
++        }
++    }
++	rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
++    TYPELIB_DANGER_RELEASE( pTypeDescr );
++    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
++    if (! rtti)
++        terminate();
++    }
++
++	__cxa_throw( pCppExc, rtti, deleteException );
++}
++
++//==================================================================================================
++void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno )
++{
++    OSL_ENSURE( header, "### no exception header!!!" );
++    if (! header)
++        terminate();
++
++	typelib_TypeDescription * pExcTypeDescr = 0;
++    OUString unoName( toUNOname( header->exceptionType->name() ) );
++	::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
++    OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" );
++    if (! pExcTypeDescr)
++        terminate();
++
++    // construct uno exception any
++    ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
++    ::typelib_typedescription_release( pExcTypeDescr );
++}
++
++}
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: bridges/source/cpp_uno/gcc3_linux_ia64/makefile.mk
+===================================================================
+RCS file: bridges/source/cpp_uno/gcc3_linux_ia64/makefile.mk
+diff -N bridges/source/cpp_uno/gcc3_linux_ia64/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ bridges/source/cpp_uno/gcc3_linux_ia64/makefile.mk	4 Jan 2008 19:09:57 -0000	1.1.2.1
+@@ -0,0 +1,91 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..$/..
++
++PRJNAME=bridges
++TARGET=gcc3_uno
++LIBTARGET=no
++ENABLE_EXCEPTIONS=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++
++# --- Files --------------------------------------------------------
++
++.IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCLINUXAgcc3"
++
++.IF "$(cppu_no_leak)" == ""
++CFLAGS += -DLEAK_STATIC_DATA
++.ENDIF
++
++# In case someone enabled the non-standard -fomit-frame-pointer which does not
++# work with the .cxx sources in this directory:
++CFLAGSCXX += -fno-omit-frame-pointer
++
++NOOPTFILES= \
++	$(SLO)$/uno2cpp.obj \
++	$(SLO)$/cpp2uno.obj
++
++CFLAGSNOOPT=-O0
++
++SLOFILES= \
++	$(SLO)$/except.obj		\
++	$(SLO)$/cpp2uno.obj		\
++	$(SLO)$/uno2cpp.obj		\
++	$(SLO)$/call.obj
++
++SHL1TARGET= $(TARGET)
++
++SHL1DEF=$(MISC)$/$(SHL1TARGET).def
++SHL1IMPLIB=i$(TARGET)
++SHL1VERSIONMAP=..$/..$/bridge_exports.map
++
++SHL1OBJS= $(SLOFILES)
++SHL1LIBS = $(SLB)$/cpp_uno_shared.lib
++
++SHL1STDLIBS= \
++	$(CPPULIB)			\
++	$(SALLIB)
++
++.ENDIF
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :  target.mk
++
++$(SLO)$/%.obj: %.s
++    $(CC) -c -o $(SLO)$/$(@:b).o $< -fpic ; touch $@
+Index: bridges/source/cpp_uno/gcc3_linux_ia64/share.hxx
+===================================================================
+RCS file: bridges/source/cpp_uno/gcc3_linux_ia64/share.hxx
+diff -N bridges/source/cpp_uno/gcc3_linux_ia64/share.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ bridges/source/cpp_uno/gcc3_linux_ia64/share.hxx	18 Feb 2008 10:40:37 -0000	1.1.2.3
+@@ -0,0 +1,138 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "uno/mapping.h"
++
++#include <typeinfo>
++#include <exception>
++#include <cstddef>
++#include "bridges/cpp_uno/shared/vtablefactory.hxx"
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++  void dummy_can_throw_anything( char const * );
++
++
++// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
++
++struct _Unwind_Exception
++{
++    unsigned exception_class __attribute__((__mode__(__DI__)));
++    void * exception_cleanup;
++    unsigned private_1 __attribute__((__mode__(__word__)));
++    unsigned private_2 __attribute__((__mode__(__word__)));
++} __attribute__((__aligned__));
++
++struct __cxa_exception
++{ 
++    ::std::type_info *exceptionType;
++    void (*exceptionDestructor)(void *); 
++    
++    ::std::unexpected_handler unexpectedHandler;
++    ::std::terminate_handler terminateHandler;
++    
++    __cxa_exception *nextException;
++    
++    int handlerCount;
++    
++    int handlerSwitchValue;
++    const unsigned char *actionRecord;
++    const unsigned char *languageSpecificData;
++    void *catchTemp;
++    void *adjustedPtr;
++    
++    _Unwind_Exception unwindHeader;
++};    
++
++extern "C" void *__cxa_allocate_exception(
++    std::size_t thrown_size ) throw();
++extern "C" void __cxa_throw (
++    void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
++
++struct __cxa_eh_globals
++{
++    __cxa_exception *caughtExceptions;
++    unsigned int uncaughtExceptions;
++};
++extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
++
++// -----
++
++//==================================================================================================
++void raiseException(
++    uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
++//==================================================================================================
++void fillUnoException(
++    __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
++}
++
++namespace ia64
++{
++    enum ia64limits { MAX_GPR_REGS = 8, MAX_SSE_REGS = 8, MAX_REG_SLOTS = 8 };
++
++    bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef );
++    bool return_via_r8_buffer( typelib_TypeDescriptionReference *pTypeRef );
++
++    struct RegReturn
++    {
++        long r8;
++        long r9;
++        long r10;
++        long r11;
++    };
++}
++
++namespace bridges
++{
++    namespace cpp_uno
++    {
++        namespace shared
++        {
++            /*
++                http://www.swag.uwaterloo.ca/asx/ABI.html
++                On Itanium, function pointers are pairs: the function address followed
++                by the global pointer value that should be used when calling the
++                function (code address, gp value)
++            */
++            struct VtableFactory::Slot
++            {
++                sal_uInt64 code_address;
++                sal_uInt64 gp_value;
++            };
++        }
++    }
++}
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+Index: bridges/source/cpp_uno/gcc3_linux_ia64/uno2cpp.cxx
+===================================================================
+RCS file: bridges/source/cpp_uno/gcc3_linux_ia64/uno2cpp.cxx
+diff -N bridges/source/cpp_uno/gcc3_linux_ia64/uno2cpp.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ bridges/source/cpp_uno/gcc3_linux_ia64/uno2cpp.cxx	15 Feb 2008 19:22:43 -0000	1.1.2.3
+@@ -0,0 +1,673 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_bridges.hxx"
++
++#include <malloc.h>
++
++#include <com/sun/star/uno/genfunc.hxx>
++#include <uno/data.h>
++
++#include "bridges/cpp_uno/shared/bridge.hxx"
++#include "bridges/cpp_uno/shared/types.hxx"
++#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx"
++#include "bridges/cpp_uno/shared/vtables.hxx"
++
++#include "share.hxx"
++
++#include <stdio.h>
++#include <string.h>
++
++
++using namespace ::rtl;
++using namespace ::com::sun::star::uno;
++
++void MapReturn(const ia64::RegReturn &rRet, double dret, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn, sal_uInt64 *pRegisterReturn)
++{
++    switch (pReturnTypeDescr->eTypeClass)
++    {
++    case typelib_TypeClass_HYPER:
++    case typelib_TypeClass_UNSIGNED_HYPER:
++    case typelib_TypeClass_LONG:
++    case typelib_TypeClass_UNSIGNED_LONG:
++    case typelib_TypeClass_ENUM:
++            *pRegisterReturn = rRet.r8;
++            break;
++    case typelib_TypeClass_CHAR:
++    case typelib_TypeClass_SHORT:
++    case typelib_TypeClass_UNSIGNED_SHORT:
++            *pRegisterReturn = (unsigned short)rRet.r8;
++            break;
++    case typelib_TypeClass_BOOLEAN:
++    case typelib_TypeClass_BYTE:
++            *pRegisterReturn = (unsigned char)rRet.r8;
++            break;
++    case typelib_TypeClass_FLOAT:
++            *reinterpret_cast<float *>( pRegisterReturn ) = dret;
++	    break;
++    case typelib_TypeClass_DOUBLE:
++            *reinterpret_cast<double *>( pRegisterReturn ) = dret;
++            break;
++    case typelib_TypeClass_STRUCT:
++    case typelib_TypeClass_EXCEPTION:
++        {
++            sal_uInt32 nRetSize = pReturnTypeDescr->nSize;
++            if (bSimpleReturn && nRetSize <= 32 && nRetSize > 0)
++                memcpy(pRegisterReturn, (void*)&rRet, nRetSize);
++            break;
++        }
++    default:
++	break;
++    }
++}
++
++namespace ia64
++{ 
++    bool is_complex_struct( typelib_TypeDescriptionReference *pTypeRef )
++    {
++        if (pTypeRef->eTypeClass == typelib_TypeClass_STRUCT || pTypeRef->eTypeClass == typelib_TypeClass_EXCEPTION)
++	{
++            typelib_TypeDescription * pTypeDescr = 0;
++            TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef );
++
++            bool bRet = bridges::cpp_uno::shared::relatesToInterfaceType( pTypeDescr );
++            TYPELIB_DANGER_RELEASE( pTypeDescr );
++
++            return bRet;
++       }
++       return false;
++    }
++
++    bool return_via_r8_buffer( typelib_TypeDescriptionReference *pTypeRef )
++    {
++        if (pTypeRef->eTypeClass == typelib_TypeClass_STRUCT || pTypeRef->eTypeClass == typelib_TypeClass_EXCEPTION)
++	{
++            if (is_complex_struct( pTypeRef )) return false;
++
++            typelib_TypeDescription * pTypeDescr = 0;
++            TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef );
++
++            /* If the struct is larger than 32 bytes, then there is a buffer at r8 to stick the return value into  */
++            bool bRet = pTypeDescr->nSize > 32;
++            TYPELIB_DANGER_RELEASE( pTypeDescr );
++            return bRet;
++       }
++       return false;
++    }
++
++    bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef )
++    {
++        if (bridges::cpp_uno::shared::isSimpleType(pTypeRef))
++            return false;
++        else if (pTypeRef->eTypeClass == typelib_TypeClass_STRUCT || pTypeRef->eTypeClass == typelib_TypeClass_EXCEPTION)
++            return is_complex_struct( pTypeRef );
++        return true;
++    }
++
++
++}
++
++namespace
++{
++//==================================================================================================
++static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex, 
++	void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++        sal_uInt64 *pStack, sal_uInt32 nStack,
++        sal_uInt64 *pGPR, sal_uInt32 nGPR,
++        double *pFPR, sal_uInt32 nFPR)
++{
++    // Stack, if used, must be 16-bytes aligned
++    if ( nStack )
++        nStack = ( nStack + 1 ) & ~1;
++
++    // Should not happen, but...
++    if ( nFPR > ia64::MAX_SSE_REGS )
++        nFPR = ia64::MAX_SSE_REGS;
++    if ( nGPR > ia64::MAX_GPR_REGS )
++        nGPR = ia64::MAX_GPR_REGS;
++
++#ifdef CMC_DEBUG
++        // Let's figure out what is really going on here
++        {
++                fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
++                for ( unsigned int i = 0; i < nGPR; ++i )
++                        fprintf( stderr, "0x%lx, ", pGPR[i] );
++                fprintf( stderr, "\nFPR's (%d): ", nFPR );
++                for ( unsigned int i = 0; i < nFPR; ++i ) 
++                        fprintf( stderr, "0x%lx (%f), ", pFPR[i], pFPR[i] );
++                fprintf( stderr, "\nStack (%d): ", nStack );
++                for ( unsigned int i = 0; i < nStack; ++i )
++                        fprintf( stderr, "0x%lx, ", pStack[i] );
++                fprintf( stderr, "\n" );
++		fprintf( stderr, "pRegisterReturn is %p\n", pRegisterReturn);
++        }
++#endif
++
++    // Load parameters to stack, if necessary
++    sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca( nStack * 8 );
++    memcpy( stack, pStack, nStack * 8 );
++
++    // To get pointer to method
++    // a) get the address of the vtable
++    sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
++    // b) get the address from the vtable entry at offset, each entry is 16bytes,
++    // 8 for function pointer, and 8 for global pointer
++    pMethod += 16 * nVtableIndex;
++
++    typedef void (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
++    FunctionCall pFunc = (FunctionCall)pMethod;
++
++    switch (nFPR) //deliberate fall through
++    {
++        case 8:
++            asm volatile("ldfd f15=%0" : : "m"(pFPR[7]) : "f15");
++        case 7:
++            asm volatile("ldfd f14=%0" : : "m"(pFPR[6]) : "f14");
++        case 6:
++            asm volatile("ldfd f13=%0" : : "m"(pFPR[5]) : "f13");
++        case 5:
++            asm volatile("ldfd f12=%0" : : "m"(pFPR[4]) : "f12");
++        case 4:
++            asm volatile("ldfd f11=%0" : : "m"(pFPR[3]) : "f11");
++        case 3:
++            asm volatile("ldfd f10=%0" : : "m"(pFPR[2]) : "f10");
++        case 2:
++            asm volatile("ldfd f9=%0" : : "m"(pFPR[1]) : "f9");
++        case 1:
++            asm volatile("ldfd f8=%0" : : "m"(pFPR[0]) : "f8");
++        default:
++            break;
++    }
++
++    //stick the return area into r8 for big struct returning
++    asm volatile("ld8 r8=%0" : : "m"(pRegisterReturn) : "r8");
++
++    (*pFunc)(pGPR[0], pGPR[1], pGPR[2], pGPR[3], pGPR[4], pGPR[5], pGPR[6], pGPR[7]);
++
++    register double f8 asm("f8");
++    ia64::RegReturn ret;
++    {
++        register long r8 asm("r8"); ret.r8 = r8;
++        register long r9 asm("r9"); ret.r9 = r9;
++        register long r10 asm("r10"); ret.r10 = r10;
++        register long r11 asm("r11"); ret.r11 = r11;
++    }
++   
++    MapReturn(ret, f8, pReturnTypeDescr, bSimpleReturn, (sal_uInt64*)pRegisterReturn);
++}
++
++// Macros for easier insertion of values to registers or stack
++// pSV - pointer to the source
++// nr - order of the value [will be increased if stored to register]
++// pFPR, pGPR - pointer to the registers
++// pDS - pointer to the stack [will be increased if stored here]
++
++// The value in %xmm register is already prepared to be retrieved as a float,
++// thus we treat float and double the same
++#define INSERT_FLOAT( pSV, nfr, pFPR, ngr, pGPR, pDS, bOverflow ) \
++        if ( nfr < ia64::MAX_SSE_REGS && ngr < ia64::MAX_GPR_REGS ) \
++                pFPR[nfr++] = *reinterpret_cast<float *>( pSV ); \
++        if ( ngr < ia64::MAX_GPR_REGS ) \
++                pGPR[ngr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++        else \
++        	bOverFlow = true; \
++        if (bOverFlow) \
++                *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
++
++#define INSERT_DOUBLE( pSV, nfr, pFPR, ngr, pGPR, pDS, bOverflow ) \
++        if ( nfr < ia64::MAX_SSE_REGS && ngr < ia64::MAX_GPR_REGS ) \
++                pFPR[nfr++] = *reinterpret_cast<double *>( pSV ); \
++        if ( ngr < ia64::MAX_GPR_REGS ) \
++                pGPR[ngr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++        else \
++        	bOverFlow = true; \
++        if (bOverFlow) \
++                *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
++
++#define INSERT_INT64( pSV, nr, pGPR, pDS, bOverflow ) \
++        if ( nr < ia64::MAX_GPR_REGS ) \
++                pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++        else \
++		bOverFlow = true; \
++	if (bOverFlow) \
++                *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
++
++#define INSERT_INT32( pSV, nr, pGPR, pDS, bOverflow ) \
++        if ( nr < ia64::MAX_GPR_REGS ) \
++                pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
++        else \
++                bOverFlow = true; \
++        if (bOverFlow) \
++                *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
++
++#define INSERT_INT16( pSV, nr, pGPR, pDS, bOverflow ) \
++        if ( nr < ia64::MAX_GPR_REGS ) \
++                pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
++        else \
++                bOverFlow = true; \
++        if (bOverFlow) \
++                *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
++
++#define INSERT_INT8( pSV, nr, pGPR, pDS, bOverflow ) \
++        if ( nr < ia64::MAX_GPR_REGS ) \
++                pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
++        else \
++                bOverFlow = true; \
++        if (bOverFlow) \
++                *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
++
++//================================================================================================== 
++static void cpp_call(
++	bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
++	bridges::cpp_uno::shared::VtableSlot  aVtableSlot,
++	typelib_TypeDescriptionReference * pReturnTypeRef,
++	sal_Int32 nParams, typelib_MethodParameter * pParams,
++	void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
++{
++  	// max space for: [complex ret ptr], values|ptr ...
++  	sal_uInt64 * pStack = (sal_uInt64 *)alloca( (nParams+3) * sizeof(sal_Int64) );
++  	sal_uInt64 * pStackStart = pStack;
++
++	sal_uInt64 pGPR[ia64::MAX_GPR_REGS];
++	sal_uInt32 nGPR = 0;
++
++	double pFPR[ia64::MAX_SSE_REGS];
++	sal_uInt32 nFPR = 0;
++	
++	// return
++	typelib_TypeDescription * pReturnTypeDescr = 0;
++	TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
++	OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
++	
++	void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++
++        bool bOverFlow = false;
++
++	bool bSimpleReturn = true;
++	if (pReturnTypeDescr)
++	{
++#ifdef CMC_DEBUG
++		fprintf(stderr, "return type is %d\n", pReturnTypeDescr->eTypeClass);
++#endif
++		if ( ia64::return_in_hidden_param(pReturnTypeRef) || ia64::return_via_r8_buffer(pReturnTypeRef) )
++                        bSimpleReturn = false;
++
++                if ( bSimpleReturn )
++		{
++			pCppReturn = pUnoReturn; // direct way for simple types
++#ifdef CMC_DEBUG
++			fprintf(stderr, "simple return\n");
++#endif
++		}
++		else
++		{
++			// complex return via ptr
++			pCppReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
++			       ? alloca( pReturnTypeDescr->nSize ) : pUnoReturn);
++#ifdef CMC_DEBUG
++			fprintf(stderr, "pCppReturn/pUnoReturn is %lx/%lx", pCppReturn, pUnoReturn);
++#endif
++                        if (!ia64::return_via_r8_buffer(pReturnTypeRef))
++			    INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack, bOverFlow );
++		}
++	}
++	// push "this" pointer
++        void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
++
++#ifdef CMC_DEBUG
++	fprintf(stderr, "this pointer is %p\n", pAdjustedThisPtr);
++#endif
++	INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack, bOverFlow );
++
++        // Args 
++        void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++	// indizes of values this have to be converted (interface conversion cpp<=>uno)
++	sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
++	// type descriptions for reconversions
++	typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
++	
++	sal_Int32 nTempIndizes   = 0;
++
++#ifdef CMC_DEBUG
++	fprintf(stderr, "n params is %d\n", nParams);
++#endif
++	
++	for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
++	{
++		const typelib_MethodParameter & rParam = pParams[nPos];
++		typelib_TypeDescription * pParamTypeDescr = 0;
++		TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
++
++#ifdef CMC_DEBUG
++		fprintf(stderr, "param %d is %d %d %d\n", nPos, rParam.bOut, bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ),
++			pParamTypeDescr->eTypeClass);
++#endif
++		
++		if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
++		{
++//			uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
++			uno_copyAndConvertData( pCppArgs[nPos] = pStack, pUnoArgs[nPos], pParamTypeDescr,
++									pThis->getBridge()->getUno2Cpp() );
++		        switch (pParamTypeDescr->eTypeClass)
++                        {
++                        case typelib_TypeClass_HYPER:
++                        case typelib_TypeClass_UNSIGNED_HYPER:
++#ifdef CMC_DEBUG
++				fprintf(stderr, "hyper is %lx\n", *(unsigned long*)(pCppArgs[nPos]));
++#endif
++                                INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
++                                break;
++                        case typelib_TypeClass_LONG:
++                        case typelib_TypeClass_UNSIGNED_LONG:
++                        case typelib_TypeClass_ENUM:
++#ifdef CMC_DEBUG
++				fprintf(stderr, "long is %lx\n", *(unsigned int*)(pCppArgs[nPos]));
++#endif
++                                INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
++                                break;
++                        case typelib_TypeClass_SHORT:
++                        case typelib_TypeClass_CHAR:
++                        case typelib_TypeClass_UNSIGNED_SHORT:
++#ifdef CMC_DEBUG
++				fprintf(stderr, "short is %x\n", *(unsigned short*)(pCppArgs[nPos]));
++#endif
++                                INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
++                                break;
++                        case typelib_TypeClass_BOOLEAN:
++                        case typelib_TypeClass_BYTE:
++#ifdef CMC_DEBUG
++				fprintf(stderr, "byte is %x\n", *(unsigned char*)(pCppArgs[nPos]));
++#endif
++                                INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
++                                break;
++                        case typelib_TypeClass_FLOAT:
++#ifdef CMC_DEBUG
++				fprintf(stderr, "a float is %f\n", *(float*)(pCppArgs[nPos]));
++				fprintf(stderr, "b float is %f\n", *(double*)(pCppArgs[nPos]));
++#endif
++                                INSERT_FLOAT( pCppArgs[nPos], nFPR, pFPR, nGPR, pGPR, pStack, bOverFlow );
++				break;
++                        case typelib_TypeClass_DOUBLE:
++#ifdef CMC_DEBUG
++				fprintf(stderr, "double is %f\n", *(double*)(pCppArgs[nPos]));
++#endif
++                                INSERT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, nGPR, pGPR, pStack, bOverFlow );
++                                break;
++			default:
++				break;
++                        }
++
++                        // no longer needed
++                        TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++	
++		}
++		else // ptr to complex value | ref
++		{
++#ifdef CMC_DEBUG
++			fprintf(stderr, "complex type again %d\n", rParam.bIn);
++#endif
++                        if (! rParam.bIn) // is pure out
++                        {
++#ifdef CMC_DEBUG
++				fprintf(stderr, "complex size is %d\n", pParamTypeDescr->nSize );
++#endif
++                                // cpp out is constructed mem, uno out is not!
++                                uno_constructData(
++                                        pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++                                        pParamTypeDescr ); 
++                                pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
++                                // will be released at reconversion
++                                ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++                        }
++                        // is in/inout
++                        else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
++                        {
++#ifdef CMC_DEBUG
++				fprintf(stderr, "this one\n");
++#endif
++                                uno_copyAndConvertData(
++                                        pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++                                        pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
++
++                                pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
++                                // will be released at reconversion
++                                ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++                        }
++                        else // direct way
++                        {
++#ifdef CMC_DEBUG
++				fprintf(stderr, "that one, passing %lx through\n", pUnoArgs[nPos]);
++#endif
++                                pCppArgs[nPos] = pUnoArgs[nPos];
++                                // no longer needed
++                                TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++                        }
++                        INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack, bOverFlow );
++		}
++	}
++  
++	try
++	{
++               callVirtualMethod(
++                        pAdjustedThisPtr, aVtableSlot.index,
++                        pCppReturn, pReturnTypeDescr, bSimpleReturn, 
++                        pStackStart, ( pStack - pStackStart ),
++                        pGPR, nGPR,
++                        pFPR, nFPR );
++		// NO exception occured...
++		*ppUnoExc = 0;
++
++		// reconvert temporary params
++		for ( ; nTempIndizes--; )
++		{
++			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++			typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
++			
++			if (pParams[nIndex].bIn)
++			{
++				if (pParams[nIndex].bOut) // inout
++				{
++					uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
++					uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
++											pThis->getBridge()->getCpp2Uno() );
++				}
++			}
++			else // pure out
++			{
++				uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
++										pThis->getBridge()->getCpp2Uno() );
++			}
++			// destroy temp cpp param => cpp: every param was constructed
++			uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
++			
++			TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++		}
++		// return value
++		if (pCppReturn && pUnoReturn != pCppReturn)
++		{
++			uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
++									pThis->getBridge()->getCpp2Uno() );
++			uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
++		}
++	}
++ 	catch (...)
++ 	{
++  		// fill uno exception
++		fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, 
++                                  *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
++        
++		// temporary params
++		for ( ; nTempIndizes--; )
++		{
++			sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++			// destroy temp cpp param => cpp: every param was constructed
++			uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
++			TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
++		}
++		// return type
++		if (pReturnTypeDescr)
++			TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++	}
++}
++
++}
++
++namespace bridges { namespace cpp_uno { namespace shared {
++
++void unoInterfaceProxyDispatch(
++	uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
++	void * pReturn, void * pArgs[], uno_Any ** ppException )
++{
++	// is my surrogate
++        bridges::cpp_uno::shared::UnoInterfaceProxy * pThis 
++            = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
++	
++	switch (pMemberDescr->eTypeClass)
++	{
++	case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++	{
++
++        VtableSlot aVtableSlot(
++            getVtableSlot(
++                reinterpret_cast<
++                    typelib_InterfaceAttributeTypeDescription const * >(
++                        pMemberDescr)));
++
++		if (pReturn)
++		{
++			// dependent dispatch
++			cpp_call(
++				pThis, aVtableSlot,
++				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
++				0, 0, // no params
++				pReturn, pArgs, ppException );
++		}
++		else
++		{
++			// is SET
++			typelib_MethodParameter aParam;
++			aParam.pTypeRef =
++				((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
++			aParam.bIn		= sal_True;
++			aParam.bOut		= sal_False;
++
++			typelib_TypeDescriptionReference * pReturnTypeRef = 0;
++			OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
++			typelib_typedescriptionreference_new(
++				&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
++			
++			// dependent dispatch
++                        aVtableSlot.index += 1; //get then set method
++			cpp_call(
++				pThis, aVtableSlot,
++				pReturnTypeRef,
++				1, &aParam,
++				pReturn, pArgs, ppException );
++			
++			typelib_typedescriptionreference_release( pReturnTypeRef );
++		}
++		
++		break;
++	}
++	case typelib_TypeClass_INTERFACE_METHOD:
++	{
++
++        VtableSlot aVtableSlot(
++            getVtableSlot(
++                reinterpret_cast<
++                    typelib_InterfaceMethodTypeDescription const * >(
++                        pMemberDescr)));
++		switch (aVtableSlot.index)
++		{
++			// standard calls
++		case 1: // acquire uno interface
++			(*pUnoI->acquire)( pUnoI );
++			*ppException = 0;
++			break;
++		case 2: // release uno interface
++			(*pUnoI->release)( pUnoI );
++			*ppException = 0;
++			break;
++		case 0: // queryInterface() opt
++		{
++			typelib_TypeDescription * pTD = 0;
++			TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
++			if (pTD)
++			{
++                uno_Interface * pInterface = 0;
++                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
++                    pThis->pBridge->getUnoEnv(),
++                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
++			
++                if (pInterface)
++                {
++                    ::uno_any_construct(
++                        reinterpret_cast< uno_Any * >( pReturn ),
++                        &pInterface, pTD, 0 );
++                    (*pInterface->release)( pInterface );
++                    TYPELIB_DANGER_RELEASE( pTD );
++                    *ppException = 0;
++                    break;
++                }
++                TYPELIB_DANGER_RELEASE( pTD );
++            }
++		} // else perform queryInterface()
++		default:
++			// dependent dispatch
++			cpp_call(
++				pThis, aVtableSlot,
++				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
++				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
++				((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
++				pReturn, pArgs, ppException );
++		}
++		break;
++	}
++	default:
++	{
++		::com::sun::star::uno::RuntimeException aExc(
++			OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
++			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
++		
++		Type const & rExcType = ::getCppuType( &aExc );
++		// binary identical null reference
++		::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
++	}
++	}
++}
++
++} } }
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_intel
+Index: bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx,v
+retrieving revision 1.12
+retrieving revision 1.12.82.1
+diff -u -u -p -b -w -B -r1.12 -r1.12.82.1
+--- bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx	16 Sep 2006 15:47:26 -0000	1.12
++++ bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx	18 Feb 2008 10:40:37 -0000	1.12.82.1
+@@ -421,29 +421,36 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+-{
+-    return static_cast< void ** >(block) + 2;
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) {
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -451,7 +458,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+@@ -461,7 +468,7 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(
+                     code, functionOffset++, vtableOffset,
+                     typelib_TypeClass_VOID);
+@@ -469,7 +476,7 @@ unsigned char * bridges::cpp_uno::shared
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_mips
+Index: bridges/source/cpp_uno/gcc3_linux_mips/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_mips/cpp2uno.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.8.1
+diff -u -u -p -b -w -B -r1.3 -r1.3.8.1
+--- bridges/source/cpp_uno/gcc3_linux_mips/cpp2uno.cxx	22 Nov 2007 16:47:04 -0000	1.3
++++ bridges/source/cpp_uno/gcc3_linux_mips/cpp2uno.cxx	18 Feb 2008 10:40:37 -0000	1.3.8.1
+@@ -726,37 +726,38 @@ void bridges::cpp_uno::shared::VtableFac
+   sysmips(FLUSH_CACHE,0,0,0);
+ }
+ 
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
+ 
+-
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-  return reinterpret_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-     slots[-2] = 0; //null
+-     slots[-1] = 0; //destructor
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0; //null
++    slots[-1].fn = 0; //destructor
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-	void ** slots, unsigned char * code,
++	Slot ** slots, unsigned char * code,
+ 	typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-	sal_Int32
+-#ifdef BRDEBUG
+-       functionCount
+-#endif
+-    , sal_Int32 vtableOffset)
++	sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
+-
++   (*slots) -= functionCount;
++    Slot * s = *slots;
+ #ifdef BRDEBUG
+    fprintf(stderr, "in addLocalFunctions functionOffset is %d\n",functionOffset);
+    fprintf(stderr, "in addLocalFunctions vtableOffset is %d\n",vtableOffset);
+@@ -771,7 +772,7 @@ unsigned char * bridges::cpp_uno::shared
+ 	switch (member->eTypeClass) {
+ 	  case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+ 		// Getter:
+-		*slots++ = code;
++		(s++)->fn = code;
+ 		code = codeSnippet(
+ 			code, functionOffset++, vtableOffset,
+ 			bridges::cpp_uno::shared::isSimpleType(
+@@ -784,13 +785,13 @@ unsigned char * bridges::cpp_uno::shared
+ 			typelib_InterfaceAttributeTypeDescription * >(
+ 			  member)->bReadOnly)
+ 		{
+-		  *slots++ = code;
++		  (s++)->fn = code;
+ 		  code = codeSnippet(code, functionOffset++, vtableOffset, true);
+ 		}
+ 		break;
+ 
+ 	  case typelib_TypeClass_INTERFACE_METHOD:
+-		*slots++ = code;
++		(s++)->fn = code;
+ 		code = codeSnippet(
+ 			code, functionOffset++, vtableOffset,
+ 			bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_powerpc
+Index: bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx,v
+retrieving revision 1.10
+retrieving revision 1.10.4.1
+diff -u -u -p -b -w -B -r1.10 -r1.10.4.1
+--- bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx	4 Feb 2008 13:43:38 -0000	1.10
++++ bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx	18 Feb 2008 10:40:37 -0000	1.10.4.1
+@@ -660,32 +660,37 @@ void bridges::cpp_uno::shared::VtableFac
+   __asm__ volatile ( "sync;" "isync;" : : : "memory");
+ }
+ 
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
+ 
+-
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
+-
++     (*slots) -= functionCount;
++     Slot * s = *slots;
+   // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+   // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+   // fflush(stderr);
+@@ -697,7 +702,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -710,13 +715,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_powerpc64
+Index: bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.32.2
+diff -u -u -p -b -w -B -r1.2 -r1.2.32.2
+--- bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx	18 Jun 2007 16:34:57 -0000	1.2
++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx	18 Feb 2008 10:40:37 -0000	1.2.32.2
+@@ -135,7 +135,7 @@ static typelib_TypeClass cpp2uno_call(
+ 			{
+ 				case typelib_TypeClass_FLOAT:
+ 				case typelib_TypeClass_DOUBLE:
+-					if (nf < 13)
++					if (nf < ppc64::MAX_SSE_REGS)
+ 					{
+ 						if (pParamTypeDescr->eTypeClass == typelib_TypeClass_FLOAT)
+ 						{
+@@ -154,7 +154,7 @@ static typelib_TypeClass cpp2uno_call(
+ 					break;
+                 case typelib_TypeClass_BYTE:
+                 case typelib_TypeClass_BOOLEAN:
+-                    if (ng < 8)
++                    if (ng < ppc64::MAX_GPR_REGS)
+ 					{
+                         pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)gpreg) + (sizeof(void*)-1));
+                         ng++;
+@@ -170,7 +170,7 @@ static typelib_TypeClass cpp2uno_call(
+                 case typelib_TypeClass_CHAR:
+                 case typelib_TypeClass_SHORT:
+                 case typelib_TypeClass_UNSIGNED_SHORT:
+-                    if (ng < 8)
++                    if (ng < ppc64::MAX_GPR_REGS)
+ 					{
+                         pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)gpreg) + (sizeof(void*)-2));
+                         ng++;
+@@ -186,7 +186,7 @@ static typelib_TypeClass cpp2uno_call(
+ 		case typelib_TypeClass_ENUM:
+                 case typelib_TypeClass_LONG:
+                 case typelib_TypeClass_UNSIGNED_LONG:
+-                    if (ng < 8)
++                    if (ng < ppc64::MAX_GPR_REGS)
+ 					{
+                         pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)gpreg) + (sizeof(void*)-4));
+                         ng++;
+@@ -200,7 +200,7 @@ static typelib_TypeClass cpp2uno_call(
+                     if (bOverFlowUsed) ovrflw++;
+                     break;
+ 				default:
+-					if (ng < 8) 
++					if (ng < ppc64::MAX_GPR_REGS) 
+ 					{
+ 						pCppArgs[nPos] = pUnoArgs[nPos] = gpreg++;
+ 						ng++;
+@@ -224,7 +224,7 @@ static typelib_TypeClass cpp2uno_call(
+ #endif
+             void *pCppStack; //temporary stack pointer
+ 
+-			if (ng < 8)
++			if (ng < ppc64::MAX_GPR_REGS)
+ 			{ 
+ 		        pCppArgs[nPos] = pCppStack = *gpreg++;
+ 			    ng++;
+@@ -521,8 +521,8 @@ extern "C" void privateSnippetExecutor( 
+                 "mr     %0,    11\n\t"
+                 : "=r" (nOffsetAndIndex) : );
+ 
+-    sal_uInt64 gpreg[8];
+-    double fpreg[13];
++    sal_uInt64 gpreg[ppc64::MAX_GPR_REGS];
++    double fpreg[ppc64::MAX_SSE_REGS];
+ 
+     __asm__ __volatile__ (
+         "std 3,   0(%0)\t\n"
+@@ -645,31 +645,37 @@ void bridges::cpp_uno::shared::VtableFac
+   __asm__ volatile ( "sync;" "isync;" : : : "memory");
+ }
+ 
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
+ 
+-
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code, 
++    Slot ** slots, unsigned char * code, 
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++     (*slots) -= functionCount;
++     Slot * s = *slots;
+ #ifdef CMC_DEBUG
+     fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+     fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+@@ -682,7 +688,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -695,13 +701,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+Index: bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.32.1
+diff -u -u -p -b -w -B -r1.2 -r1.2.32.1
+--- bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx	18 Jun 2007 16:35:07 -0000	1.2
++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx	4 Jan 2008 19:09:58 -0000	1.2.32.1
+@@ -141,8 +141,8 @@ type_info * RTTI::getRTTI( typelib_Compo
+     OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
+ 
+     MutexGuard guard( m_mutex );
+-    t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
+-    if (iFind == m_rttis.end())
++    t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
++    if (iRttiFind == m_rttis.end())
+     {
+         // RTTI symbol
+         OStringBuffer buf( 64 );
+@@ -206,7 +206,7 @@ type_info * RTTI::getRTTI( typelib_Compo
+     }
+     else
+     {
+-        rtti = iFind->second;
++        rtti = iRttiFind->second;
+     }
+ 
+     return rtti;
+Index: bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.32.1
+diff -u -u -p -b -w -B -r1.2 -r1.2.32.1
+--- bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx	18 Jun 2007 16:35:29 -0000	1.2
++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx	4 Jan 2008 19:09:58 -0000	1.2.32.1
+@@ -97,3 +97,8 @@ void raiseException(
+ void fillUnoException(
+     __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
+ }
++
++namespace ppc64
++{
++	enum ppclimits { MAX_GPR_REGS = 8, MAX_SSE_REGS = 13 };
++}
+Index: bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.32.1
+diff -u -u -p -b -w -B -r1.2 -r1.2.32.1
+--- bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx	18 Jun 2007 16:35:40 -0000	1.2
++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx	4 Jan 2008 19:09:58 -0000	1.2.32.1
+@@ -55,11 +55,6 @@
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+ 
+-namespace ppc64
+-{
+-	enum ppclimits { MAX_GPR_REGS = 8, MAX_SSE_REGS = 13 };
+-}
+-
+ void MapReturn(long r3, double dret, typelib_TypeClass eTypeClass, void *pRegisterReturn)
+ {
+     switch (eTypeClass)
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_s390
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_sparc
+Index: bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx,v
+retrieving revision 1.12
+retrieving revision 1.12.66.1
+diff -u -u -p -b -w -B -r1.12 -r1.12.66.1
+--- bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx	22 Nov 2006 11:07:20 -0000	1.12
++++ bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx	18 Feb 2008 10:40:38 -0000	1.12.66.1
+@@ -493,29 +493,37 @@ unsigned char * codeSnippet(
+ 
+ } //end of namespace
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-     slots[-2] = 0; //null
+-     slots[-1] = 0; //destructor
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0; //null
++    slots[-1].fn = 0; //destructor
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /* functionCount */, sal_Int32 vTableOffset)
++    sal_Int32 functionCount, sal_Int32 vTableOffset)
+ {
++	(*slots) -= functionCount;
++	Slot * s = *slots;
+ 	for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -523,7 +531,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vTableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -535,13 +543,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vTableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vTableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_linux_x86-64
+Index: bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx,v
+retrieving revision 1.7
+retrieving revision 1.7.8.1
+diff -u -u -p -b -w -B -r1.7 -r1.7.8.1
+--- bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx	13 Nov 2007 14:18:07 -0000	1.7
++++ bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx	18 Feb 2008 10:40:38 -0000	1.7.8.1
+@@ -465,35 +465,41 @@ unsigned char * codeSnippet( unsigned ch
+ }
+ 
+ //==================================================================================================
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable( void * block )
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-	return static_cast<void **>( block ) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ //==================================================================================================
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return ( slotCount + 2 ) * sizeof( void * ) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+ //==================================================================================================
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock( void * block )
+-{
+-	void ** slots = mapBlockToVtable( block );
+-	slots[-2] = 0;
+-	slots[-1] = 0;
+-
+-	return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ //==================================================================================================
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-	void ** slots, unsigned char * code,
++	Slot ** slots, unsigned char * code,
+ 	typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
+-	sal_Int32 /* functionCount */, sal_Int32 nVtableOffset )
++	sal_Int32 functionCount, sal_Int32 nVtableOffset )
+ {
++	(*slots) -= functionCount;
++	Slot * s = *slots;
+ 	for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos )
+ 	{
+ 		typelib_TypeDescription * pTD = 0;
+@@ -507,14 +513,14 @@ unsigned char * bridges::cpp_uno::shared
+ 				reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD );
+ 
+ 			// get method
+-			*slots++ = code;
++			(s++)->fn = code;
+ 			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+ 								x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) );
+ 
+ 			if ( ! pAttrTD->bReadOnly )
+ 			{
+ 				// set method
+-				*slots++ = code;
++				(s++)->fn = code;
+ 				code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false );
+ 			}
+ 		}
+@@ -523,7 +529,7 @@ unsigned char * bridges::cpp_uno::shared
+ 			typelib_InterfaceMethodTypeDescription *pMethodTD =
+ 				reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD );
+ 			
+-			*slots++ = code;
++			(s++)->fn = code;
+ 			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+ 								x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) );
+ 		}
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_macosx_intel
+Index: bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx,v
+retrieving revision 1.5
+retrieving revision 1.5.82.1
+diff -u -u -p -b -w -B -r1.5 -r1.5.82.1
+--- bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx	16 Sep 2006 15:51:08 -0000	1.5
++++ bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx	18 Feb 2008 11:01:40 -0000	1.5.82.1
+@@ -450,29 +450,37 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -480,7 +488,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+@@ -490,7 +498,7 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(
+                     code, functionOffset++, vtableOffset,
+                     0 /* indicates VOID */);
+@@ -498,7 +506,7 @@ unsigned char * bridges::cpp_uno::shared
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_macosx_powerpc
+Index: bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx,v
+retrieving revision 1.9
+retrieving revision 1.9.54.1
+diff -u -u -p -b -w -B -r1.9 -r1.9.54.1
+--- bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx	18 Jan 2007 14:15:28 -0000	1.9
++++ bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx	18 Feb 2008 11:01:40 -0000	1.9.54.1
+@@ -655,30 +655,37 @@ void bridges::cpp_uno::shared::VtableFac
+   __asm__ volatile ( "sync;" "isync;" : : : "memory");
+ }
+ 
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /* functionCount */, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+ 
+   // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
+   // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
+@@ -691,7 +698,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -704,13 +711,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_netbsd_intel
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_os2_intel
+Index: bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.20.1
+diff -u -u -p -b -w -B -r1.3 -r1.3.20.1
+--- bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx	25 Sep 2007 09:33:55 -0000	1.3
++++ bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx	18 Feb 2008 11:07:00 -0000	1.3.20.1
+@@ -453,29 +453,37 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -483,7 +491,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -495,13 +503,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_os2_intel/defs
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_solaris_intel
+Index: bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx,v
+retrieving revision 1.6
+retrieving revision 1.6.82.1
+diff -u -u -p -b -w -B -r1.6 -r1.6.82.1
+--- bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx	16 Sep 2006 15:53:13 -0000	1.6
++++ bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx	18 Feb 2008 11:05:04 -0000	1.6.82.1
+@@ -452,29 +452,37 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -482,7 +490,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -494,13 +502,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/gcc3_solaris_sparc
+Index: bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx,v
+retrieving revision 1.6
+retrieving revision 1.6.82.1
+diff -u -u -p -b -w -B -r1.6 -r1.6.82.1
+--- bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx	16 Sep 2006 15:53:57 -0000	1.6
++++ bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx	18 Feb 2008 11:05:04 -0000	1.6.82.1
+@@ -491,29 +491,37 @@ unsigned char * codeSnippet(
+ 
+ } //end of namespace
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0; //null
+-    slots[-1] = 0; //destructor
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0; //null
++    slots[-1].fn = 0; //destructor
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vTableOffset)
+ {
++	(*slots) -= functionCount;
++	Slot * s = *slots;
+ 	for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -521,7 +529,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vTableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -533,13 +541,13 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(code, functionOffset++, vTableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vTableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+cvs diff: Diffing bridges/source/cpp_uno/mingw_intel
+Index: bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx,v
+retrieving revision 1.3
+retrieving revision 1.3.34.1
+diff -u -u -p -b -w -B -r1.3 -r1.3.34.1
+--- bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx	25 May 2007 10:53:46 -0000	1.3
++++ bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx	18 Feb 2008 11:16:17 -0000	1.3.34.1
+@@ -422,29 +422,37 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 2;
++    return static_cast< Slot * >(block) + 2;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-2] = 0;
+-    slots[-1] = 0;
+-    return slots;
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount)
++{
++    Slot * slots = mapBlockToVtable(block);
++    slots[-2].fn = 0;
++    slots[-1].fn = 0;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+-    sal_Int32 /*functionCount*/, sal_Int32 vtableOffset)
++    sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < type->nMembers; ++i) {
+         typelib_TypeDescription * member = 0;
+         TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
+@@ -452,7 +460,7 @@ unsigned char * bridges::cpp_uno::shared
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+@@ -462,7 +470,7 @@ unsigned char * bridges::cpp_uno::shared
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                (s++)->fn = code;
+                 code = codeSnippet(
+                     code, functionOffset++, vtableOffset,
+                     typelib_TypeClass_VOID);
+@@ -470,7 +478,7 @@ unsigned char * bridges::cpp_uno::shared
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            (s++)->fn = code;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+cvs diff: Diffing bridges/source/cpp_uno/msvc_win32_intel
+Index: bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx,v
+retrieving revision 1.17
+retrieving revision 1.17.82.1
+diff -u -u -p -b -w -B -r1.17 -r1.17.82.1
+--- bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx	16 Sep 2006 15:54:51 -0000	1.17
++++ bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx	18 Feb 2008 11:20:25 -0000	1.17.82.1
+@@ -442,18 +442,23 @@ unsigned char * codeSnippet(
+ 
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
++struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
++
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
+ {
+-    return static_cast< void ** >(block) + 1;
++    return static_cast< Slot * >(block) + 1;
+ }
+ 
+ sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
+     sal_Int32 slotCount)
+ {
+-    return (slotCount + 1) * sizeof (void *) + slotCount * codeSnippetSize;
++    return (slotCount + 1) * sizeof (Slot) + slotCount * codeSnippetSize;
+ }
+ 
+-void ** bridges::cpp_uno::shared::VtableFactory::initializeBlock(void * block) {
++bridges::cpp_uno::shared::VtableFactory::Slot *
++bridges::cpp_uno::shared::VtableFactory::initializeBlock(
++    void * block, sal_Int32 slotCount) {
+ 	struct Rtti {
+ 		sal_Int32 n0, n1, n2;
+ 		type_info * rtti;
+@@ -466,18 +471,20 @@ void ** bridges::cpp_uno::shared::Vtable
+     };
+     static Rtti rtti;
+ 
+-    void ** slots = mapBlockToVtable(block);
+-    slots[-1] = &rtti;
+-    return slots;
++    Slot * slots = mapBlockToVtable(block);
++    slots[-1].fn = &rtti;
++    return slots + slotCount;
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    Slot ** slots, unsigned char * code,
+     typelib_InterfaceTypeDescription const *, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
++    (*slots) -= functionCount;
++    Slot * s = *slots;
+     for (sal_Int32 i = 0; i < functionCount; ++i) {
+-        *slots++ = code;
++        (s++)->fn = code;
+         code = codeSnippet(code, functionOffset++, vtableOffset);
+     }
+     return code;
+cvs diff: Diffing bridges/source/cpp_uno/shared
+Index: bridges/source/cpp_uno/shared/vtablefactory.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/shared/vtablefactory.cxx,v
+retrieving revision 1.9
+retrieving revision 1.9.22.2
+diff -u -u -p -b -w -B -r1.9 -r1.9.22.2
+--- bridges/source/cpp_uno/shared/vtablefactory.cxx	20 Sep 2007 15:30:12 -0000	1.9
++++ bridges/source/cpp_uno/shared/vtablefactory.cxx	18 Feb 2008 10:40:38 -0000	1.9.22.2
+@@ -266,21 +266,19 @@ void VtableFactory::createVtables(
+             throw std::bad_alloc();
+         }
+         try {
+-            void ** slots = initializeBlock(block.start) + slotCount;
++            Slot * slots = initializeBlock(block.start, slotCount);
+             unsigned char * codeBegin =
+                 reinterpret_cast< unsigned char * >(slots);
+             unsigned char * code = codeBegin;
+-            sal_Int32 vtableOffset = blocks.size() * sizeof (void **);
++            sal_Int32 vtableOffset = blocks.size() * sizeof (Slot *);
+             for (typelib_InterfaceTypeDescription const * type2 = type;
+                  type2 != 0; type2 = type2->pBaseTypeDescription)
+             {
+-                sal_Int32 functionCount
+-                    = bridges::cpp_uno::shared::getLocalFunctions(type2);
+-                slots -= functionCount;
+                 code = addLocalFunctions(
+-                    slots, code, type2,
++                    &slots, code, type2,
+                     baseOffset.getFunctionOffset(type2->aBase.pTypeName),
+-                    functionCount, vtableOffset);
++                    bridges::cpp_uno::shared::getLocalFunctions(type2),
++                    vtableOffset);
+             }
+             flushCode(codeBegin, code);
+             blocks.push_back(block);
+cvs diff: Diffing bridges/source/jni_uno
+cvs diff: Diffing bridges/source/jni_uno/java
+cvs diff: Diffing bridges/source/jni_uno/java/com
+cvs diff: Diffing bridges/source/jni_uno/java/com/sun
+cvs diff: Diffing bridges/source/jni_uno/java/com/sun/star
+cvs diff: Diffing bridges/source/jni_uno/java/com/sun/star/bridges
+cvs diff: Diffing bridges/source/jni_uno/java/com/sun/star/bridges/jni_uno
+cvs diff: Diffing bridges/source/remote
+cvs diff: Diffing bridges/source/remote/context
+cvs diff: Diffing bridges/source/remote/idl
+cvs diff: Diffing bridges/source/remote/static
+cvs diff: Diffing bridges/source/remote/urp
+cvs diff: Diffing bridges/test
+cvs diff: Diffing bridges/test/com
+cvs diff: Diffing bridges/test/com/sun
+cvs diff: Diffing bridges/test/com/sun/star
+cvs diff: Diffing bridges/test/com/sun/star/lib
+cvs diff: Diffing bridges/test/com/sun/star/lib/uno
+cvs diff: Diffing bridges/test/com/sun/star/lib/uno/bridges
+cvs diff: Diffing bridges/test/com/sun/star/lib/uno/bridges/java_remote
+cvs diff: Diffing bridges/test/inter_libs_exc
+cvs diff: Diffing bridges/test/java_uno
+cvs diff: Diffing bridges/test/java_uno/acquire
+cvs diff: Diffing bridges/test/java_uno/any
+cvs diff: Diffing bridges/test/java_uno/equals
+cvs diff: Diffing bridges/test/java_uno/nativethreadpool
+cvs diff: Diffing bridges/test/performance
+cvs diff: Diffing bridges/unotypes
+cvs diff: Diffing config_office
+Index: config_office/set_soenv.in
+===================================================================
+RCS file: /cvs/tools/config_office/set_soenv.in,v
+retrieving revision 1.172
+retrieving revision 1.168.8.2
+diff -u -u -p -b -w -B -r1.172 -r1.168.8.2
+--- config_office/set_soenv.in	4 Feb 2008 12:56:11 -0000	1.172
++++ config_office/set_soenv.in	14 Feb 2008 09:47:05 -0000	1.168.8.2
+@@ -436,6 +436,18 @@ elsif ( $platform =~ m/linux-gnu/ ) 
+       $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
+       $JREEXTRALIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."xawt";
+    }
++   elsif ($platform =~ m/^ia64/)
++   {  print "Setting Linux ia64 specific values... ";
++      $outfile        = "LinuxIA64Env.Set";
++      $CPU            = "A";
++      $CPUNAME        = "IA64";
++      $CVER           = "C341";
++      $OUTPATH        = "unxlnga";
++      $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ia64";
++      $JREEXTRALIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ia64".$ds."xawt";
++      $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ia64".$ds."server";
++      $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ia64".$ds."native_threads";
++   }
+    elsif ($platform =~ m/^sparc/)
+  
+    {  print "Setting Linux Sparc specific values... ";
+cvs diff: Diffing config_office/guw
+cvs diff: Diffing jvmfwk
+cvs diff: Diffing jvmfwk/distributions
+cvs diff: Diffing jvmfwk/distributions/OpenOfficeorg
+cvs diff: Diffing jvmfwk/distributions/StarOffice
+cvs diff: Diffing jvmfwk/inc
+cvs diff: Diffing jvmfwk/inc/jvmfwk
+cvs diff: Diffing jvmfwk/inc/pch
+cvs diff: Diffing jvmfwk/plugins
+cvs diff: Diffing jvmfwk/plugins/sunmajor
+cvs diff: Diffing jvmfwk/plugins/sunmajor/javaenvsetup
+cvs diff: Diffing jvmfwk/plugins/sunmajor/pluginlib
+Index: jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
+===================================================================
+RCS file: /cvs/udk/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx,v
+retrieving revision 1.9
+retrieving revision 1.9.4.1
+diff -u -u -p -b -w -B -r1.9 -r1.9.4.1
+--- jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx	26 Nov 2007 18:04:40 -0000	1.9
++++ jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx	4 Jan 2008 19:05:43 -0000	1.9.4.1
+@@ -67,6 +67,8 @@ namespace jfw_plugin
+ #define JFW_PLUGIN_ARCH "amd64"
+ #elif defined ARM
+ #define JFW_PLUGIN_ARCH "arm"
++#elif defined IA64
++#define JFW_PLUGIN_ARCH "ia64"
+ #else // SPARC, INTEL, POWERPC, MIPS, ARM
+ #error unknown plattform
+ #endif // SPARC, INTEL, POWERPC, MIPS, ARM
+cvs diff: Diffing jvmfwk/prj
+cvs diff: Diffing jvmfwk/source
+cvs diff: Diffing sal
+cvs diff: Diffing sal/cpprt
+cvs diff: Diffing sal/inc
+cvs diff: Diffing sal/inc/internal
+cvs diff: Diffing sal/inc/osl
+cvs diff: Diffing sal/inc/pch
+cvs diff: Diffing sal/inc/rtl
+cvs diff: Diffing sal/inc/sal
+cvs diff: Diffing sal/inc/systools
+cvs diff: Diffing sal/inc/systools/win32
+cvs diff: Diffing sal/osl
+cvs diff: Diffing sal/osl/all
+cvs diff: Diffing sal/osl/os2
+cvs diff: Diffing sal/osl/os2/helpers
+cvs diff: Diffing sal/osl/unx
+cvs diff: Diffing sal/osl/unx/asm
+cvs diff: Diffing sal/osl/w32
+cvs diff: Diffing sal/prj
+cvs diff: Diffing sal/qa
+cvs diff: Diffing sal/qa/ByteSequence
+cvs diff: Diffing sal/qa/OStringBuffer
+cvs diff: Diffing sal/qa/helper
+cvs diff: Diffing sal/qa/helper/gcov
+cvs diff: Diffing sal/qa/inc
+cvs diff: Diffing sal/qa/osl
+cvs diff: Diffing sal/qa/osl/condition
+cvs diff: Diffing sal/qa/osl/file
+cvs diff: Diffing sal/qa/osl/module
+cvs diff: Diffing sal/qa/osl/mutex
+cvs diff: Diffing sal/qa/osl/pipe
+cvs diff: Diffing sal/qa/osl/process
+cvs diff: Diffing sal/qa/osl/profile
+cvs diff: Diffing sal/qa/osl/security
+cvs diff: Diffing sal/qa/osl/semaphore
+cvs diff: Diffing sal/qa/osl/socket
+cvs diff: Diffing sal/qa/osl/thread
+cvs diff: Diffing sal/qa/rtl
+cvs diff: Diffing sal/qa/rtl/alloc
+cvs diff: Diffing sal/qa/rtl/bootstrap
+cvs diff: Diffing sal/qa/rtl/cipher
+cvs diff: Diffing sal/qa/rtl/crc32
+cvs diff: Diffing sal/qa/rtl/digest
+cvs diff: Diffing sal/qa/rtl/doublelock
+cvs diff: Diffing sal/qa/rtl/locale
+cvs diff: Diffing sal/qa/rtl/logfile
+cvs diff: Diffing sal/qa/rtl/math
+cvs diff: Diffing sal/qa/rtl/ostring
+cvs diff: Diffing sal/qa/rtl/oustring
+cvs diff: Diffing sal/qa/rtl/oustringbuffer
+cvs diff: Diffing sal/qa/rtl/process
+cvs diff: Diffing sal/qa/rtl/random
+cvs diff: Diffing sal/qa/rtl/strings
+cvs diff: Diffing sal/qa/rtl/textenc
+cvs diff: Diffing sal/qa/rtl/uri
+cvs diff: Diffing sal/qa/rtl/uuid
+cvs diff: Diffing sal/qa/rtl_strings
+cvs diff: Diffing sal/qa/sal
+cvs diff: Diffing sal/qa/systools
+cvs diff: Diffing sal/qa/testHelperFunctions
+cvs diff: Diffing sal/rtl
+cvs diff: Diffing sal/rtl/source
+Index: sal/rtl/source/macro.hxx
+===================================================================
+RCS file: /cvs/porting/sal/rtl/source/macro.hxx,v
+retrieving revision 1.8
+retrieving revision 1.8.20.1
+diff -u -u -p -b -w -B -r1.8 -r1.8.20.1
+--- sal/rtl/source/macro.hxx	26 Nov 2007 18:05:15 -0000	1.8
++++ sal/rtl/source/macro.hxx	4 Jan 2008 19:04:40 -0000	1.8.20.1
+@@ -78,6 +78,8 @@ this is inserted for the case that the p
+ #define THIS_ARCH "MIPS"
+ #elif defined ARM
+ #define THIS_ARCH "ARM"
++#elif defined IA64
++#define THIS_ARCH "IA64"
+ #endif
+ 
+ #if ! defined THIS_ARCH
+cvs diff: Diffing sal/systools
+cvs diff: Diffing sal/systools/win32
+cvs diff: Diffing sal/systools/win32/delayload
+cvs diff: Diffing sal/systools/win32/guistdio
+cvs diff: Diffing sal/systools/win32/kill
+cvs diff: Diffing sal/systools/win32/onlineupdate
+cvs diff: Diffing sal/systools/win32/uwinapi
+cvs diff: Diffing sal/test
+cvs diff: Diffing sal/test/unloading
+cvs diff: Diffing sal/textenc
+cvs diff: Diffing sal/textenc/generate
+cvs diff: Diffing sal/typesconfig
+Index: sal/typesconfig/typesconfig.c
+===================================================================
+RCS file: /cvs/porting/sal/typesconfig/typesconfig.c,v
+retrieving revision 1.4
+retrieving revision 1.4.182.1
+diff -u -u -p -b -w -B -r1.4 -r1.4.182.1
+--- sal/typesconfig/typesconfig.c	24 Oct 2006 13:28:51 -0000	1.4
++++ sal/typesconfig/typesconfig.c	14 Feb 2008 09:28:39 -0000	1.4.182.1
+@@ -214,6 +214,16 @@ int check( TestFunc func, Type eT, void*
+ *************************************************************************/
+ int GetAtAddress( Type eT, void* p )
+ {
++#if defined(IA64) || defined(ARM32)
++  switch ( eT )
++  {
++  case t_char:		return *((char*)p);
++  case t_short:		if ((long)p % sizeof(short)) abort(); else return *((short*)p);
++  case t_int:		if ((long)p % sizeof(int)) abort(); else return *((int*)p);
++  case t_long:		if ((long)p % sizeof(long)) abort(); else return *((long*)p);
++  case t_double:	if ((long)p % sizeof(double)) abort(); else return *((double*)p);
++  }
++#else
+   switch ( eT )
+   {
+   case t_char:		return *((char*)p);
+@@ -222,6 +232,7 @@ int GetAtAddress( Type eT, void* p )
+   case t_long:		return *((long*)p);
+   case t_double:	return *((double*)p);
+   }
++#endif
+   abort();
+ }
+ 
+cvs diff: Diffing sal/util
+cvs diff: Diffing sal/workben
+cvs diff: Diffing sal/workben/clipboardwben
+cvs diff: Diffing sal/workben/clipboardwben/testcopy
+cvs diff: Diffing sal/workben/clipboardwben/testpaste
+cvs diff: Diffing sal/workben/clipboardwben/testviewer
+cvs diff: Diffing cppu
+cvs diff: Diffing cppu/inc
+cvs diff: Diffing cppu/inc/com
+cvs diff: Diffing cppu/inc/com/sun
+cvs diff: Diffing cppu/inc/com/sun/star
+cvs diff: Diffing cppu/inc/com/sun/star/uno
+cvs diff: Diffing cppu/inc/cppu
+cvs diff: Diffing cppu/inc/cppu/helper
+cvs diff: Diffing cppu/inc/cppu/helper/purpenv
+cvs diff: Diffing cppu/inc/pch
+cvs diff: Diffing cppu/inc/typelib
+cvs diff: Diffing cppu/inc/uno
+cvs diff: Diffing cppu/prj
+cvs diff: Diffing cppu/qa
+cvs diff: Diffing cppu/source
+cvs diff: Diffing cppu/source/AffineBridge
+cvs diff: Diffing cppu/source/UnsafeBridge
+cvs diff: Diffing cppu/source/cppu
+cvs diff: Diffing cppu/source/helper
+cvs diff: Diffing cppu/source/helper/purpenv
+cvs diff: Diffing cppu/source/threadpool
+cvs diff: Diffing cppu/source/typelib
+cvs diff: Diffing cppu/source/uno
+cvs diff: Diffing cppu/test
+Index: cppu/test/language_binding.idl
+===================================================================
+RCS file: /cvs/udk/cppu/test/language_binding.idl,v
+retrieving revision 1.3
+retrieving revision 1.3.130.1
+diff -u -u -p -b -w -B -r1.3 -r1.3.130.1
+--- cppu/test/language_binding.idl	8 Sep 2005 08:55:54 -0000	1.3
++++ cppu/test/language_binding.idl	16 Feb 2008 15:27:58 -0000	1.3.130.1
+@@ -71,6 +71,49 @@ struct TestSimple
+ 	test::TestEnum			   Enum;
+ };
+ /**
++ * equal to max size returned in registers on x86_64
++ */
++struct SmallStruct
++{
++	hyper					   a;
++	hyper					   b;
++};
++/**
++ * equal to max size returned in registers on ia64
++ */
++struct MediumStruct
++{
++	hyper					   a;
++	hyper					   b;
++	hyper					   c;
++	hyper					   d;
++};
++/**
++ * bigger than max size returned in registers on ia64
++ */
++struct BigStruct
++{
++	hyper					   a;
++	hyper					   b;
++	hyper					   c;
++	hyper					   d;
++	hyper					   e;
++	hyper					   f;
++	hyper					   g;
++	hyper					   h;
++};
++/**
++ * all floats, ia64 claims to handle them specially
++ */
++struct AllFloats
++{
++	float					   a;
++	float					   b;
++	float					   c;
++	float					   d;
++};
++
++/**
+  * complex c++ types
+  */
+ struct TestElement : test::TestSimple
+@@ -131,6 +174,26 @@ interface XLBTestBase : com::sun::star::
+ 							  [out] sequence<test::TestElement > aSequence,
+ 							  [out] test::TestData aStruct );
+ 	
++	/**
++	 * register return test 1
++	 */
++	test::SmallStruct echoSmallStruct( [in] test::SmallStruct aStruct );
++
++	/**
++	 * register return test 2
++	 */
++	test::MediumStruct echoMediumStruct( [in] test::MediumStruct aStruct );
++
++	/**
++	 * register return test 3
++	 */
++	test::BigStruct echoBigStruct( [in] test::BigStruct aStruct );
++
++	/**
++	 * register return test 4
++	 */
++	test::AllFloats echoAllFloats( [in] test::AllFloats aStruct );
++	
+ 	[attribute] boolean					 Bool;
+ 	[attribute] byte					 Byte;
+ 	[attribute] char					 Char;
+Index: cppu/test/test_di.cxx
+===================================================================
+RCS file: /cvs/udk/cppu/test/test_di.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.64.1
+diff -u -u -p -b -w -B -r1.19 -r1.19.64.1
+--- cppu/test/test_di.cxx	27 Oct 2006 12:16:06 -0000	1.19
++++ cppu/test/test_di.cxx	16 Feb 2008 15:27:58 -0000	1.19.64.1
+@@ -42,6 +42,7 @@
+ #include "precompiled_cppu.hxx"
+ 
+ #include <stdio.h>
++#include <string.h>
+ #include <rtl/ustring.hxx>
+ #include <osl/diagnose.h>
+ #include <osl/time.h>
+@@ -237,6 +238,15 @@ public:
+ 											   test::TestData& rStruct )
+ 		throw(com::sun::star::uno::RuntimeException);
+ 	
++	virtual test::SmallStruct echoSmallStruct(const test::SmallStruct& rStruct) throw(com::sun::star::uno::RuntimeException)
++		{ return rStruct; }
++	virtual test::MediumStruct echoMediumStruct(const test::MediumStruct& rStruct) throw(com::sun::star::uno::RuntimeException)
++		{ return rStruct; }
++	virtual test::BigStruct echoBigStruct(const test::BigStruct& rStruct) throw(com::sun::star::uno::RuntimeException)
++		{ return rStruct; }
++	virtual test::AllFloats echoAllFloats(const test::AllFloats& rStruct) throw(com::sun::star::uno::RuntimeException)
++		{ return rStruct; }
++	
+     virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
+ 		{ return _aData.Bool; }
+     virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException)
+@@ -493,7 +503,27 @@ static sal_Bool performTest(
+ 		aRet.Sequence = xLBT->getSequence();
+ 		aRet2 = xLBT->getStruct();
+ 		
+-		return (equals( aData, aRet ) && equals( aData, aRet2 ));
++	        OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) );
++		}
++		{
++			test::SmallStruct aIn(1, 2);
++			test::SmallStruct aOut = xLBT->echoSmallStruct(aIn);
++			OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::SmallStruct)) == 0 );
++		}
++		{
++			test::MediumStruct aIn(1, 2, 3, 4);
++			test::MediumStruct aOut = xLBT->echoMediumStruct(aIn);
++			OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::MediumStruct)) == 0 );
++		}
++		{
++			test::BigStruct aIn(1, 2, 3, 4, 5, 6, 7, 8);
++			test::BigStruct aOut = xLBT->echoBigStruct(aIn);
++			OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::BigStruct)) == 0 );
++		}
++		{
++			test::AllFloats aIn(1.1, 2.2, 3.3, 4.4);
++			test::AllFloats aOut = xLBT->echoAllFloats(aIn);
++			return( memcmp(&aIn, &aOut, sizeof(test::AllFloats)) == 0 );
+ 		}
+ 	}
+ 	return sal_False;
+Index: cppu/test/testcppu.cxx
+===================================================================
+RCS file: /cvs/udk/cppu/test/testcppu.cxx,v
+retrieving revision 1.34
+retrieving revision 1.34.56.1
+diff -u -u -p -b -w -B -r1.34 -r1.34.56.1
+--- cppu/test/testcppu.cxx	1 Dec 2006 17:27:07 -0000	1.34
++++ cppu/test/testcppu.cxx	16 Feb 2008 15:27:58 -0000	1.34.56.1
+@@ -80,6 +80,7 @@
+ #include <com/sun/star/beans/PropertyValue.hpp>
+ #include <test/XSimpleInterface.hpp>
+ #include <test/XLanguageBindingTest.hpp>
++#include <com/sun/star/registry/XSimpleRegistry.hpp>
+ 
+ using namespace test;
+ using namespace rtl;
+cvs diff: Diffing cppu/test/AffineBridge
+cvs diff: Diffing cppu/test/AntiEnvGuard
+cvs diff: Diffing cppu/test/EnvDcp
+cvs diff: Diffing cppu/test/EnvGuard
+cvs diff: Diffing cppu/test/EnvStack
+cvs diff: Diffing cppu/test/EnvStack_tester
+cvs diff: Diffing cppu/test/FreeReference
+cvs diff: Diffing cppu/test/Map
+cvs diff: Diffing cppu/test/ObjectFactory
+cvs diff: Diffing cppu/test/Shield
+cvs diff: Diffing cppu/test/UnsafeBridge
+cvs diff: Diffing cppu/test/alignment
+cvs diff: Diffing cppu/test/cascade_mapping
+cvs diff: Diffing cppu/test/env_substs
+cvs diff: Diffing cppu/test/env_tester
+cvs diff: Diffing cppu/test/mapping_tester
+cvs diff: Diffing cppu/test/purpenvhelper
+cvs diff: Diffing cppu/test/purpose_envs
+cvs diff: Diffing cppu/util
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-copy-on-merged-cells.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-copy-on-merged-cells.diff
@@ -0,0 +1,70 @@
+--- sc/source/ui/view/viewfun3.cxx.orig	2007-10-27 11:24:05.000000000 +0200
++++ sc/source/ui/view/viewfun3.cxx	2007-10-27 15:59:19.000000000 +0200
+@@ -982,18 +982,32 @@
+ 		return FALSE;
+ 	}
+ 
+-		//! Test auf Ueberlappung
+-		//! nur wirkliche Schnittmenge testen !!!!!!!
+-
+-	//	pDoc->HasCommonAttr( StartCol,nStartRow, nUndoEndCol,nUndoEndRow, nStartTab,
+-	//							pClipDoc, nClipStartX, nClipStartY );
++	ScDocFunc& rDocFunc = pDocSh->GetDocFunc(); 
++	if ( bRecord )
++	{
++		String aUndo = ScGlobal::GetRscString( pClipDoc->IsCutMode() ? STR_UNDO_MOVE : STR_UNDO_COPY );
++		pUndoMgr->EnterListAction( aUndo, aUndo );
++	}
+ 
+ 	if (bClipOver)
+         if (lcl_SelHasAttrib( pDoc, nStartCol,nStartRow, nUndoEndCol,nUndoEndRow, rMark, HASATTR_OVERLAPPED ))
+-        {        // "Cell merge not possible if cells already merged"
+-			ErrorMessage(STR_MSSG_PASTEFROMCLIP_1);
+-			delete pTransClip;
+-			return FALSE;
++        {       // "Cell merge are possible if we unmerge cells before insertion"
++			ScRange destRange( nStartCol, nStartRow, nStartTab, nUndoEndCol, nUndoEndRow, nEndTab );
++		    rDocFunc.UnmergeCells(destRange, bRecord, TRUE);
++			for (SCCOL i = nStartCol; i <= nUndoEndCol; i++)
++				for (SCCOL j = nStartRow; j <= nUndoEndRow; j++) 
++					{
++						ScRange rrRange (i, j, nEndTab);
++						pDoc->ExtendOverlapped(rrRange);
++						pDoc->ExtendMerge(rrRange);
++						// we can have merged range in the selection, 
++						// so we take only those which are in the way
++						if (rrRange.aStart.Col() < nStartCol || rrRange.aEnd.Col() > nEndCol || 
++							rrRange.aStart.Row() < nStartRow || rrRange.aEnd.Row() > nEndRow) 
++						{
++							rDocFunc.UnmergeCells(rrRange, bRecord, TRUE);
++						}
++					}
+ 		}
+ 
+ 	if ( !bCutMode )
+@@ -1085,7 +1099,7 @@
+ 
+ 	// skipped rows and merged cells don't mix
+ 	if ( !bIncludeFiltered && pClipDoc->HasClipFilteredRows() )
+-		pDocSh->GetDocFunc().UnmergeCells( aUserRange, FALSE, TRUE );
++		rDocFunc.UnmergeCells( aUserRange, FALSE, TRUE );
+ 
+     pDoc->ExtendMergeSel( nStartCol, nStartRow, nEndCol, nEndRow, rMark, TRUE );    // Refresh
+ 																					// und Bereich neu
+@@ -1183,6 +1197,8 @@
+ 		}
+ 		else
+ 			pUndoMgr->AddUndoAction( pUndo );
++
++		pUndoMgr->LeaveListAction();
+ 	}
+ 
+ 	USHORT nPaint = PAINT_GRID;
+@@ -1360,7 +1376,6 @@
+         const BOOL bRecord( pDoc->IsUndoEnabled());
+         ScDocument* pUndoDoc = NULL;
+         ScDocument* pRedoDoc = NULL;
+-        ScDocument* pRefUndoDoc = NULL;
+         ScRefUndoData* pUndoData = NULL;
+         SCTAB nTab = GetViewData()->GetTabNo();
+         SCTAB nStartTab = nTab;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/connectivity-source-drivers-mdb-mdb-map.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/connectivity-source-drivers-mdb-mdb-map.diff
@@ -0,0 +1,11 @@
+--- /dev/null	2005-03-20 01:06:14.000000000 +0530
++++ connectivity/source/drivers/mdb/mdb.map	2005-06-29 11:18:53.000000000 +0530
+@@ -0,0 +1,8 @@
++MDB_1_0 {
++	global:
++		component_getImplementationEnvironment;
++		component_writeInfo;
++		component_getFactory;
++	local:
++		*;
++};
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/layout-toolkit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/layout-toolkit.diff
@@ -0,0 +1,1534 @@
+Index: toolkit/inc/toolkit/awt/vclxcontainer.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/inc/toolkit/awt/vclxcontainer.hxx,v
+retrieving revision 1.3
+diff -u -p -u -r1.3 vclxcontainer.hxx
+--- toolkit/inc/toolkit/awt/vclxcontainer.hxx	9 Sep 2005 12:43:16 -0000	1.3
++++ toolkit/inc/toolkit/awt/vclxcontainer.hxx	8 Jun 2007 13:58:57 -0000
+@@ -89,6 +89,8 @@ public:	
+     void SAL_CALL setTabOrder( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > >& WindowOrder, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Tabs, sal_Bool GroupControl ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL setGroup( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > >& Windows ) throw(::com::sun::star::uno::RuntimeException);
+ 
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ 
+Index: toolkit/inc/toolkit/awt/vclxtopwindow.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/inc/toolkit/awt/vclxtopwindow.hxx,v
+retrieving revision 1.4
+diff -u -p -u -r1.4 vclxtopwindow.hxx
+--- toolkit/inc/toolkit/awt/vclxtopwindow.hxx	9 Sep 2005 12:46:57 -0000	1.4
++++ toolkit/inc/toolkit/awt/vclxtopwindow.hxx	8 Jun 2007 13:58:58 -0000
+@@ -89,6 +89,9 @@ public:	
+     void SAL_CALL toFront(  ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL toBack(  ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& xMenu ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ 
+Index: toolkit/inc/toolkit/awt/vclxwindow.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/inc/toolkit/awt/vclxwindow.hxx,v
+retrieving revision 1.24
+diff -u -p -u -r1.24 vclxwindow.hxx
+--- toolkit/inc/toolkit/awt/vclxwindow.hxx	9 Sep 2005 12:47:13 -0000	1.24
++++ toolkit/inc/toolkit/awt/vclxwindow.hxx	8 Jun 2007 13:58:58 -0000
+@@ -64,6 +64,7 @@
+ #ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_
+ #include <com/sun/star/beans/XPropertyChangeListener.hpp>
+ #endif
++#include <com/sun/star/beans/XPropertySetInfo.hpp>
+ #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_HPP_
+ #include <com/sun/star/accessibility/XAccessible.hpp>
+ #endif
+@@ -91,6 +92,9 @@
+ #include <tools/link.hxx>
+ #endif
+ 
++#include <stdarg.h>
++#include <list>
++
+ class Window;
+ class VclSimpleEvent;
+ class VclWindowEvent;
+@@ -102,6 +106,7 @@ struct SystemParentData;
+ //	class VCLXWINDOW
+ //	----------------------------------------------------
+ 
++class UnoPropertyArrayHelper;
+ class VCLXWindowImpl;
+ class TOOLKIT_DLLPUBLIC VCLXWindow :	public ::com::sun::star::awt::XWindow2,
+ 					public ::com::sun::star::awt::XVclWindowPeer,
+@@ -110,6 +115,7 @@ class TOOLKIT_DLLPUBLIC VCLXWindow :	pub
+ 					public ::com::sun::star::awt::XDockableWindow,
+ 					public ::com::sun::star::accessibility::XAccessible,
+ 					public ::com::sun::star::lang::XEventListener,
++					public ::com::sun::star::beans::XPropertySetInfo,
+ 					public VCLXDevice
+ {
+ private:
+@@ -132,14 +138,16 @@ private:
+ 	ULONG                           mnListenerLockLevel;
+ 	ULONG                           nDummy2;
+     VCLXWindowImpl*                 mpImpl;
+-	void*                           pDummy2;
++    UnoPropertyArrayHelper         *mpPropHelper;
+ 
+-	sal_Bool						mbDisposing;
+-	sal_Bool						mbDesignMode;
+-	sal_Bool						mbSynthesizingVCLEvent;
++	sal_Bool						mbDisposing : 1;
++	sal_Bool						mbDesignMode : 1;
++	sal_Bool						mbSynthesizingVCLEvent : 1;
++	sal_Bool						mbWithDefaultProps : 1;
+ 	sal_Bool						mbDrawingOntoParent;
+ 
+-
++    UnoPropertyArrayHelper *GetPropHelper();
++	
+ protected:
+ 	Size			ImplCalcWindowSize( const Size& rOutSz ) const;
+ 	DECL_LINK(      WindowEventListener, VclSimpleEvent* );
+@@ -152,8 +159,17 @@ protected:
+     BOOL            IsSynthesizingVCLEvent() const          { return mbSynthesizingVCLEvent; }
+     void 	    SetSystemParent_Impl( sal_Int64 nHandle );
+ 
++    // helper ...
++    static void     PushPropertyIds( std::list< sal_uInt16 > &aIds, int nFirstId, ...);
++    // for use in controls/
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds,
++                                        bool bWithDefaults = false );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds )
++        { return ImplGetPropertyIds( aIds, mbWithDefaultProps ); }
++
+ public:
+ 	VCLXWindow();
++	VCLXWindow( bool bWithDefaultProps );
+ 	~VCLXWindow();
+ 
+ 	virtual void	SetWindow( Window* pWindow );
+@@ -268,6 +281,10 @@ public:
+     sal_Bool SAL_CALL isEnabled(  ) throw (::com::sun::star::uno::RuntimeException);
+     sal_Bool SAL_CALL hasFocus(  ) throw (::com::sun::star::uno::RuntimeException);
+ 
++    // ::com::sun::star::beans::XPropertySetInfo
++    ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL getProperties(  ) throw (::com::sun::star::uno::RuntimeException);
++    ::com::sun::star::beans::Property SAL_CALL getPropertyByName( const ::rtl::OUString& aName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
++    ::sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& Name ) throw (::com::sun::star::uno::RuntimeException);
+ };
+ 
+ #endif // _TOOLKIT_AWT_VCLXWINDOW_HXX_
+Index: toolkit/inc/toolkit/awt/vclxwindows.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/inc/toolkit/awt/vclxwindows.hxx,v
+retrieving revision 1.36
+diff -u -p -u -r1.36 vclxwindows.hxx
+--- toolkit/inc/toolkit/awt/vclxwindows.hxx	18 Oct 2006 13:13:42 -0000	1.36
++++ toolkit/inc/toolkit/awt/vclxwindows.hxx	8 Jun 2007 13:58:58 -0000
+@@ -265,6 +265,10 @@ protected:
+         @see GetBitmap
+     */
+     virtual void    ImplSetNewImage();
++public:
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
++
+ };
+ 
+ //	----------------------------------------------------
+@@ -310,6 +314,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -330,6 +337,8 @@ public:
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
+ 
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ protected:
+     virtual void    ImplSetNewImage();
+ };
+@@ -387,6 +396,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -406,7 +418,6 @@ protected:
+     void            ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > CreateAccessibleContext();
+ 
+-
+ public:
+ 					VCLXRadioButton();
+ 
+@@ -442,6 +453,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -470,6 +484,9 @@ public:
+     void SAL_CALL setMessageText( const ::rtl::OUString& aText ) throw(::com::sun::star::uno::RuntimeException);
+     ::rtl::OUString SAL_CALL getMessageText(  ) throw(::com::sun::star::uno::RuntimeException);
+     sal_Int16 SAL_CALL execute(  ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ 
+@@ -504,6 +521,9 @@ public:
+ 
+ 	// ::com::sun::star::awt::XDevice,
+ 	::com::sun::star::awt::DeviceInfo SAL_CALL getInfo() throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -538,6 +558,9 @@ public:
+     ::com::sun::star::awt::Size SAL_CALL getMinimumSize(  ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::awt::Size SAL_CALL getPreferredSize(  ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const ::com::sun::star::awt::Size& rNewSize ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -553,7 +576,6 @@ protected:
+     void            ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > CreateAccessibleContext();
+ 
+-
+ public:
+ 					VCLXScrollBar();
+ 	// ::com::sun::star::uno::XInterface
+@@ -593,6 +615,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -658,6 +683,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -729,6 +757,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -787,6 +818,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -822,6 +856,9 @@ public:
+     void SAL_CALL first(  ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL last(  ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL enableRepeat( sal_Bool bRepeat ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -847,6 +884,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -890,6 +930,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -930,6 +973,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -972,6 +1018,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -1015,6 +1064,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -1048,6 +1100,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+Index: toolkit/inc/toolkit/controls/unocontrolmodel.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/inc/toolkit/controls/unocontrolmodel.hxx,v
+retrieving revision 1.7.46.1
+diff -u -p -u -r1.7.46.1 unocontrolmodel.hxx
+--- toolkit/inc/toolkit/controls/unocontrolmodel.hxx	14 Feb 2007 15:32:17 -0000	1.7.46.1
++++ toolkit/inc/toolkit/controls/unocontrolmodel.hxx	8 Jun 2007 13:58:58 -0000
+@@ -75,6 +75,8 @@
+ #include <cppuhelper/propshlp.hxx>
+ #include <cppuhelper/interfacecontainer.hxx>
+ 
++#include <list>
++
+ class ImplPropertyTable; 
+ 
+ //	----------------------------------------------------
+@@ -99,6 +101,7 @@ private:
+ 
+ protected:
+ 	void										ImplRegisterProperty( sal_uInt16 nPropType );
++	void										ImplRegisterProperties( const std::list< sal_uInt16 > &rIds );
+ 	void										ImplRegisterProperty( sal_uInt16 nPropId, const ::com::sun::star::uno::Any& rDefault );
+ 	::com::sun::star::uno::Sequence<sal_Int32>	ImplGetPropertyIds() const;
+ 	virtual void								ImplPropertyChanged( sal_uInt16 nPropId );
+@@ -193,8 +196,12 @@ public:	
+     void SAL_CALL setPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& PropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Values ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ };
+ 
+-
+-
++#define UNO_CONTROL_MODEL_REGISTER_PROPERTIES(a) \
++    do { \
++        std::list< sal_uInt16 > aIds; \
++        a::ImplGetPropertyIds( aIds ); \
++        ImplRegisterProperties( aIds ); \
++    } while (0)
+ 
+ #endif // _TOOLKIT_AWT_UNOCONTROLMODEL_HXX_
+ 
+Index: toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx,v
+retrieving revision 1.3
+diff -u -p -u -r1.3 unopropertyarrayhelper.hxx
+--- toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx	9 Sep 2005 12:59:45 -0000	1.3
++++ toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx	8 Jun 2007 13:58:58 -0000
+@@ -40,6 +40,8 @@
+ 
+ #include <tools/table.hxx>
+ 
++#include <list>
++
+ //	----------------------------------------------------
+ //	class UnoPropertyArrayHelper
+ //	----------------------------------------------------
+@@ -53,6 +55,7 @@ protected:
+ 
+ public:
+ 				UnoPropertyArrayHelper( const ::com::sun::star::uno::Sequence<sal_Int32>& rIDs );
++				UnoPropertyArrayHelper( const std::list< sal_uInt16 > &rIDs );
+ 	
+ 	// ::cppu::IPropertyArrayHelper
+ 	sal_Bool SAL_CALL fillPropertyMembersByHandle( ::rtl::OUString * pPropName, sal_Int16 * pAttributes, sal_Int32 nHandle );
+Index: toolkit/source/awt/vclxcontainer.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/awt/vclxcontainer.cxx,v
+retrieving revision 1.6
+diff -u -p -u -r1.6 vclxcontainer.cxx
+--- toolkit/source/awt/vclxcontainer.cxx	16 Sep 2006 12:13:10 -0000	1.6
++++ toolkit/source/awt/vclxcontainer.cxx	8 Jun 2007 13:58:58 -0000
+@@ -50,6 +50,12 @@
+ //	----------------------------------------------------
+ //	class VCLXContainer
+ //	----------------------------------------------------
++
++void VCLXContainer::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXContainer::VCLXContainer()
+ {
+ }
+Index: toolkit/source/awt/vclxtopwindow.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/awt/vclxtopwindow.cxx,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 vclxtopwindow.cxx
+--- toolkit/source/awt/vclxtopwindow.cxx	16 Sep 2006 12:15:39 -0000	1.8
++++ toolkit/source/awt/vclxtopwindow.cxx	8 Jun 2007 13:58:59 -0000
+@@ -67,6 +67,11 @@
+ //	class VCLXTopWindow
+ //	----------------------------------------------------
+ 
++void VCLXTopWindow::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    VCLXContainer::ImplGetPropertyIds( rIds );
++}
++
+ VCLXTopWindow::VCLXTopWindow(bool bWHWND)
+     : m_bWHWND(bWHWND)
+ {
+Index: toolkit/source/awt/vclxwindow.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/awt/vclxwindow.cxx,v
+retrieving revision 1.71.14.1
+diff -u -p -u -r1.71.14.1 vclxwindow.cxx
+--- toolkit/source/awt/vclxwindow.cxx	15 Jan 2007 15:52:05 -0000	1.71.14.1
++++ toolkit/source/awt/vclxwindow.cxx	8 Jun 2007 13:59:00 -0000
+@@ -148,6 +148,8 @@
+ #include <toolkit/helper/solarrelease.hxx>
+ #endif
+ 
++#include <toolkit/helper/unopropertyarrayhelper.hxx>
++#include <stdio.h>
+ using namespace ::com::sun::star;
+ 
+ using ::com::sun::star::uno::Reference;
+@@ -623,6 +625,40 @@ VCLXWindow::VCLXWindow()
+ 	  maTopWindowListeners( *this ),
+       mnListenerLockLevel( 0 ),
+       mpImpl( NULL ),
++	  mpPropHelper( NULL ),
++      mbDisposing( false ),
++      mbDesignMode( false ),
++      mbSynthesizingVCLEvent( false ),
++      mbWithDefaultProps( false ),
++      mbDrawingOntoParent( false )
++{
++	DBG_CTOR( VCLXWindow, 0 );
++
++    mpImpl = new VCLXWindowImpl( *this, GetMutex() );
++    mpImpl->acquire();
++
++    mbDisposing = sal_False;
++	mbDesignMode = sal_False;
++    mbSynthesizingVCLEvent = sal_False;
++}
++
++VCLXWindow::VCLXWindow( bool bWithDefaultProps )
++	: maEventListeners( *this ),
++	  maFocusListeners( *this ),
++	  maWindowListeners( *this ),
++	  maKeyListeners( *this ),
++	  maMouseListeners( *this ),
++	  maMouseMotionListeners( *this ),
++	  maPaintListeners( *this ),
++	  maContainerListeners( *this ),
++	  maTopWindowListeners( *this ),
++      mnListenerLockLevel( 0 ),
++      mpImpl( NULL ),
++	  mpPropHelper( NULL ),
++      mbDisposing( false ),
++      mbDesignMode( false ),
++      mbSynthesizingVCLEvent( false ),
++      mbWithDefaultProps( !!bWithDefaultProps ),
+       mbDrawingOntoParent( false )
+ {
+ 	DBG_CTOR( VCLXWindow, 0 );
+@@ -644,6 +647,8 @@ VCLXWindow::~VCLXWindow()
+ {
+ 	DBG_DTOR( VCLXWindow, 0 );
+ 
++    delete mpPropHelper;
++
+ 	if ( GetWindow() )
+     {
+         GetWindow()->RemoveEventListener( LINK( this, VCLXWindow, WindowEventListener ) );
+@@ -1178,6 +1183,7 @@ Size VCLXWindow::ImplCalcWindowSize( con
+ 										SAL_STATIC_CAST( ::com::sun::star::awt::XView*, this ),
+ 										SAL_STATIC_CAST( ::com::sun::star::accessibility::XAccessible*, this ),
+ 										SAL_STATIC_CAST( ::com::sun::star::lang::XEventListener*, this ),
++										SAL_STATIC_CAST( ::com::sun::star::beans::XPropertySetInfo*, this ),
+ 										SAL_STATIC_CAST( ::com::sun::star::awt::XWindow2*, this ),
+    										SAL_STATIC_CAST( ::com::sun::star::awt::XDockableWindow*, this ) );
+ 	return (aRet.hasValue() ? aRet : VCLXDevice::queryInterface( rType ));
+@@ -1196,6 +1202,7 @@ IMPL_XTYPEPROVIDER_START( VCLXWindow )
+ 	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains>* ) NULL ),
+ 	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>* ) NULL ),
+ 	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener>* ) NULL ),
++	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo>* ) NULL ),
+ 	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView>* ) NULL ),
+ 	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDockableWindow>* ) NULL ),
+ 	VCLXDevice::getTypes()
+@@ -1609,6 +1616,59 @@ namespace toolkit
+     }
+ }
+ 
++// Terminated by BASEPROPERTY_NOTFOUND (or 0)
++void VCLXWindow::PushPropertyIds( std::list< sal_uInt16 > &rIds,
++                                  int nFirstId, ...)
++{
++	va_list pVarArgs;
++	va_start( pVarArgs, nFirstId );
++
++	for ( int nId = nFirstId; nId != BASEPROPERTY_NOTFOUND;
++          nId = va_arg( pVarArgs, int ) )
++        rIds.push_back( nId );
++
++	va_end( pVarArgs );
++}
++
++void VCLXWindow::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds,
++                                     bool bWithDefaults )
++{
++    // These are common across ~all VCLXWindow derived classes
++    if( bWithDefaults )
++        PushPropertyIds( rIds,
++                         BASEPROPERTY_ALIGN,
++                         BASEPROPERTY_BACKGROUNDCOLOR,
++                         BASEPROPERTY_BORDER,
++                         BASEPROPERTY_BORDERCOLOR,
++                         BASEPROPERTY_DEFAULTCONTROL,
++                         BASEPROPERTY_ENABLED,
++                         BASEPROPERTY_FONTDESCRIPTOR,
++                         BASEPROPERTY_HELPTEXT,
++                         BASEPROPERTY_HELPURL,
++                         BASEPROPERTY_TEXT,
++                         BASEPROPERTY_PRINTABLE,
++                         BASEPROPERTY_TABSTOP,
++                         0);
++    
++    // lovely hack from:
++    // void UnoControlModel::ImplRegisterProperty( sal_uInt16 nPropId )
++    std::list< sal_uInt16 >::const_iterator iter;
++    for( iter = rIds.begin(); iter != rIds.end(); iter++) {
++        if( *iter == BASEPROPERTY_FONTDESCRIPTOR )
++        {
++            // some properties are not included in the FontDescriptor, but everytime
++            // when we have a FontDescriptor we want to have these properties too.
++            // => Easier to register the here, istead everywhere where I register the FontDescriptor...
++            
++            rIds.push_back( BASEPROPERTY_TEXTCOLOR );
++            rIds.push_back( BASEPROPERTY_TEXTLINECOLOR );
++            rIds.push_back( BASEPROPERTY_FONTRELIEF );
++            rIds.push_back( BASEPROPERTY_FONTEMPHASISMARK );
++            break;
++        }
++    }
++}
++
+ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+ 	::vos::OGuard aGuard( GetMutex() );
+@@ -2028,6 +2070,15 @@ void VCLXWindow::setProperty( const ::rt
+             case BASEPROPERTY_BORDERCOLOR:
+                 ::toolkit::setColorSettings( pWindow, Value, &StyleSettings::SetMonoColor, &StyleSettings::GetMonoColor);
+                 break;
++		    case BASEPROPERTY_DEFAULTCONTROL:
++			{
++			    rtl::OUString aName;
++				Value >>= aName;
++			    fprintf (stderr, " default control '%s'\n",
++						 rtl::OUStringToOString (aName,
++												 RTL_TEXTENCODING_UTF8).getStr());
++			    break;
++			}
+ 		}
+ 	}
+ }
+@@ -2621,3 +2672,34 @@ sal_Bool SAL_CALL VCLXWindow::hasFocus( 
+         return FALSE;
+ }
+ 
++// ::com::sun::star::beans::XPropertySetInfo
++
++UnoPropertyArrayHelper *
++VCLXWindow::GetPropHelper()
++{
++	::vos::OGuard aGuard( GetMutex() );
++    if (mpPropHelper == NULL)
++	{
++	    std::list< sal_uInt16 > aIDs;
++		GetPropertyIds( aIDs );
++		mpPropHelper = new UnoPropertyArrayHelper( aIDs );
++	}
++	return mpPropHelper;
++}
++
++::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL
++VCLXWindow::getProperties() throw (::com::sun::star::uno::RuntimeException)
++{
++    return GetPropHelper()->getProperties();
++}
++::com::sun::star::beans::Property SAL_CALL
++VCLXWindow::getPropertyByName( const ::rtl::OUString& rName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException)
++{
++    return GetPropHelper()->getPropertyByName( rName );
++}
++
++::sal_Bool SAL_CALL
++VCLXWindow::hasPropertyByName( const ::rtl::OUString& rName ) throw (::com::sun::star::uno::RuntimeException)
++{
++    return GetPropHelper()->hasPropertyByName( rName );
++}
+Index: toolkit/source/awt/vclxwindows.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/awt/vclxwindows.cxx,v
+retrieving revision 1.60
+diff -u -p -u -r1.60 vclxwindows.cxx
+--- toolkit/source/awt/vclxwindows.cxx	21 Nov 2006 17:02:58 -0000	1.60
++++ toolkit/source/awt/vclxwindows.cxx	8 Jun 2007 13:59:01 -0000
+@@ -280,6 +280,12 @@ namespace toolkit
+ //	----------------------------------------------------
+ //	class VCLXImageConsumer
+ //	----------------------------------------------------
++
++void VCLXImageConsumer::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
+ void VCLXImageConsumer::ImplSetNewImage()
+ {
+     OSL_PRECOND( GetWindow(), "VCLXImageConsumer::ImplSetNewImage: window is required to be not-NULL!" );
+@@ -452,6 +458,37 @@ void VCLXImageConsumer::setProperty( con
+ //--------------------------------------------------------------------
+ //	class VCLXButton
+ //	----------------------------------------------------
++
++void VCLXButton::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_DEFAULTBUTTON,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_GRAPHIC,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_IMAGEALIGN,
++                     BASEPROPERTY_IMAGEPOSITION,
++                     BASEPROPERTY_IMAGEURL,
++                     BASEPROPERTY_LABEL,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_PUSHBUTTONTYPE,
++                     BASEPROPERTY_REPEAT,
++                     BASEPROPERTY_REPEAT_DELAY,
++                     BASEPROPERTY_STATE,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_TOGGLE,
++                     BASEPROPERTY_FOCUSONCLICK,
++                     BASEPROPERTY_MULTILINE,
++                     BASEPROPERTY_ALIGN,
++                     BASEPROPERTY_VERTICALALIGN,
++                     0);
++    VCLXImageConsumer::ImplGetPropertyIds( rIds );
++}
++
+ VCLXButton::VCLXButton()
+     :maActionListeners( *this )
+     ,maItemListeners( *this )
+@@ -693,6 +730,26 @@ void VCLXButton::ProcessWindowEvent( con
+ //	----------------------------------------------------
+ //	class VCLXImageControl
+ //	----------------------------------------------------
++
++void VCLXImageControl::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_GRAPHIC,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_IMAGEURL,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_SCALEIMAGE,
++                     BASEPROPERTY_TABSTOP,
++                     0);
++    VCLXImageConsumer::ImplGetPropertyIds( rIds );
++}
++
+ VCLXImageControl::VCLXImageControl()
+ {
+ }
+@@ -785,6 +842,33 @@ void VCLXImageControl::setProperty( cons
+ //	----------------------------------------------------
+ //	class VCLXCheckBox
+ //	----------------------------------------------------
++
++
++void VCLXCheckBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_GRAPHIC,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_IMAGEPOSITION,
++                     BASEPROPERTY_IMAGEURL,
++                     BASEPROPERTY_LABEL,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_STATE,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_TRISTATE,
++                     BASEPROPERTY_VISUALEFFECT,
++                     BASEPROPERTY_MULTILINE,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_ALIGN,
++                     BASEPROPERTY_VERTICALALIGN,
++                     0);
++    VCLXImageConsumer::ImplGetPropertyIds( rIds );
++}
++
+ VCLXCheckBox::VCLXCheckBox() :  maActionListeners( *this ), maItemListeners( *this )
+ {
+ }
+@@ -1057,6 +1141,31 @@ void VCLXCheckBox::ProcessWindowEvent( c
+ //	----------------------------------------------------
+ //	class VCLXRadioButton
+ //	----------------------------------------------------
++void VCLXRadioButton::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_GRAPHIC,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_IMAGEPOSITION,
++                     BASEPROPERTY_IMAGEURL,
++                     BASEPROPERTY_LABEL,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_STATE,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_VISUALEFFECT,
++                     BASEPROPERTY_MULTILINE,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_ALIGN,
++                     BASEPROPERTY_VERTICALALIGN,
++                     0);
++    VCLXImageConsumer::ImplGetPropertyIds( rIds );
++}
++
++
+ VCLXRadioButton::VCLXRadioButton() : maItemListeners( *this ), maActionListeners( *this )
+ {
+ }
+@@ -1311,6 +1420,11 @@ void VCLXRadioButton::ImplClickedOrToggl
+ //	----------------------------------------------------
+ //	class VCLXSpinField
+ //	----------------------------------------------------
++void VCLXSpinField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    VCLXEdit::ImplGetPropertyIds( rIds );
++}
++
+ VCLXSpinField::VCLXSpinField() : maSpinListeners( *this )
+ {
+ }
+@@ -1438,6 +1552,31 @@ void VCLXSpinField::ProcessWindowEvent( 
+ //	----------------------------------------------------
+ //	class VCLXListBox
+ //	----------------------------------------------------
++void VCLXListBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_DROPDOWN,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_LINECOUNT,
++                     BASEPROPERTY_MULTISELECTION,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_SELECTEDITEMS,
++                     BASEPROPERTY_STRINGITEMLIST,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_ALIGN,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
++
+ VCLXListBox::VCLXListBox()
+ 	: maActionListeners( *this ),
+ 	  maItemListeners( *this )
+@@ -1995,6 +2134,12 @@ void VCLXListBox::ImplCallItemListeners(
+ //	----------------------------------------------------
+ //	class VCLXMessageBox
+ //	----------------------------------------------------
++
++void VCLXMessageBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    VCLXTopWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXMessageBox::VCLXMessageBox()
+ {
+ }
+@@ -2070,6 +2215,11 @@ sal_Int16 VCLXMessageBox::execute() thro
+ //	----------------------------------------------------
+ //	class VCLXDialog
+ //	----------------------------------------------------
++void VCLXDialog::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    VCLXTopWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXDialog::VCLXDialog()
+ {
+ }
+@@ -2178,6 +2328,27 @@ void SAL_CALL VCLXDialog::draw( sal_Int3
+ //	----------------------------------------------------
+ //	class VCLXFixedText
+ //	----------------------------------------------------
++void VCLXFixedText::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_ALIGN,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_LABEL,
++                     BASEPROPERTY_MULTILINE,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_VERTICALALIGN,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXFixedText::VCLXFixedText()
+ {
+ }
+@@ -2296,6 +2467,32 @@ short VCLXFixedText::getAlignment() thro
+ //	----------------------------------------------------
+ //	class VCLXScrollBar
+ //	----------------------------------------------------
++void VCLXScrollBar::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BLOCKINCREMENT,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_LINEINCREMENT,
++                     BASEPROPERTY_LIVE_SCROLL,
++                     BASEPROPERTY_ORIENTATION,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_REPEAT_DELAY,
++                     BASEPROPERTY_SCROLLVALUE,
++                     BASEPROPERTY_SCROLLVALUE_MAX,
++                     BASEPROPERTY_SCROLLVALUE_MIN,
++                     BASEPROPERTY_SYMBOL_COLOR,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_VISIBLESIZE,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXScrollBar::VCLXScrollBar() : maAdjustmentListeners( *this )
+ {
+ }
+@@ -2733,6 +2930,34 @@ void VCLXScrollBar::ProcessWindowEvent( 
+ //	class VCLXEdit
+ //	----------------------------------------------------
+ 
++void VCLXEdit::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_ALIGN, 
++                     BASEPROPERTY_BACKGROUNDCOLOR, 
++                     BASEPROPERTY_BORDER, 
++                     BASEPROPERTY_BORDERCOLOR, 
++                     BASEPROPERTY_DEFAULTCONTROL, 
++                     BASEPROPERTY_ECHOCHAR, 
++                     BASEPROPERTY_ENABLED, 
++                     BASEPROPERTY_FONTDESCRIPTOR, 
++                     BASEPROPERTY_HARDLINEBREAKS, 
++                     BASEPROPERTY_HELPTEXT, 
++                     BASEPROPERTY_HELPURL, 
++                     BASEPROPERTY_HSCROLL, 
++                     BASEPROPERTY_LINE_END_FORMAT, 
++                     BASEPROPERTY_MAXTEXTLEN, 
++                     BASEPROPERTY_MULTILINE, 
++                     BASEPROPERTY_PRINTABLE, 
++                     BASEPROPERTY_READONLY, 
++                     BASEPROPERTY_TABSTOP, 
++                     BASEPROPERTY_TEXT, 
++                     BASEPROPERTY_VSCROLL, 
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXEdit::VCLXEdit() : maTextListeners( *this )
+ {
+ }
+@@ -3075,6 +3300,33 @@ void VCLXEdit::ProcessWindowEvent( const
+ //	----------------------------------------------------
+ //	class VCLXComboBox
+ //	----------------------------------------------------
++
++void VCLXComboBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_AUTOCOMPLETE,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_DROPDOWN,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_LINECOUNT,
++                     BASEPROPERTY_MAXTEXTLEN,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_STRINGITEMLIST,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_TEXT,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     BASEPROPERTY_ALIGN,
++                     0);
++    VCLXEdit::ImplGetPropertyIds( rIds );
++}
++
+ VCLXComboBox::VCLXComboBox()
+ 	: maActionListeners( *this ), maItemListeners( *this )
+ {
+@@ -3451,6 +3703,14 @@ void VCLXComboBox::getColumnsAndLines( s
+ //	----------------------------------------------------
+ //	class VCLXFormattedSpinField
+ //	----------------------------------------------------
++void VCLXFormattedSpinField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    // Interestingly in the UnoControl API this is
++    // - not derived from XEdit ultimately, (correct ?) - so cut this here ...
++//    VCLXSpinField::ImplGetPropertyIds( rIds );
++    VCLXWindow::ImplGetPropertyIds( rIds );
++}
++
+ VCLXFormattedSpinField::VCLXFormattedSpinField()
+ {
+ }
+@@ -3548,6 +3808,38 @@ void VCLXFormattedSpinField::setProperty
+ //	----------------------------------------------------
+ //	class VCLXDateField
+ //	----------------------------------------------------
++
++void VCLXDateField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DATE,
++                     BASEPROPERTY_DATEMAX,
++                     BASEPROPERTY_DATEMIN,
++                     BASEPROPERTY_DATESHOWCENTURY,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_DROPDOWN,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_EXTDATEFORMAT,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_REPEAT,
++                     BASEPROPERTY_REPEAT_DELAY,
++                     BASEPROPERTY_SPIN,
++                     BASEPROPERTY_STRICTFORMAT,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_ENFORCE_FORMAT,
++                     BASEPROPERTY_TEXT,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
++}
++
+ VCLXDateField::VCLXDateField()
+ {
+ }
+@@ -3854,6 +4146,36 @@ sal_Bool VCLXDateField::isStrictFormat()
+ //	----------------------------------------------------
+ //	class VCLXTimeField
+ //	----------------------------------------------------
++
++void VCLXTimeField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_EXTTIMEFORMAT,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_REPEAT,
++                     BASEPROPERTY_REPEAT_DELAY,
++                     BASEPROPERTY_SPIN,
++                     BASEPROPERTY_STRICTFORMAT,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_TIME,
++                     BASEPROPERTY_TIMEMAX,
++                     BASEPROPERTY_TIMEMIN,
++                     BASEPROPERTY_ENFORCE_FORMAT,
++                     BASEPROPERTY_TEXT,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
++}
++
+ VCLXTimeField::VCLXTimeField()
+ {
+ }
+@@ -4121,6 +4443,37 @@ void VCLXTimeField::setProperty( const :
+ //	----------------------------------------------------
+ //	class VCLXNumericField
+ //	----------------------------------------------------
++
++void VCLXNumericField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DECIMALACCURACY,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_NUMSHOWTHOUSANDSEP,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_REPEAT,
++                     BASEPROPERTY_REPEAT_DELAY,
++                     BASEPROPERTY_SPIN,
++                     BASEPROPERTY_STRICTFORMAT,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_VALUEMAX_DOUBLE,
++                     BASEPROPERTY_VALUEMIN_DOUBLE,
++                     BASEPROPERTY_VALUESTEP_DOUBLE,
++                     BASEPROPERTY_VALUE_DOUBLE,
++                     BASEPROPERTY_ENFORCE_FORMAT,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
++}
++
+ VCLXNumericField::VCLXNumericField()
+ {
+ }
+@@ -4427,6 +4780,39 @@ void VCLXNumericField::setProperty( cons
+ //	----------------------------------------------------
+ //	class VCLXCurrencyField
+ //	----------------------------------------------------
++
++void VCLXCurrencyField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_CURRENCYSYMBOL,
++                     BASEPROPERTY_CURSYM_POSITION,
++                     BASEPROPERTY_DECIMALACCURACY,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_NUMSHOWTHOUSANDSEP,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_REPEAT,
++                     BASEPROPERTY_REPEAT_DELAY,
++                     BASEPROPERTY_SPIN,
++                     BASEPROPERTY_STRICTFORMAT,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_VALUEMAX_DOUBLE,
++                     BASEPROPERTY_VALUEMIN_DOUBLE,
++                     BASEPROPERTY_VALUESTEP_DOUBLE,
++                     BASEPROPERTY_VALUE_DOUBLE,
++                     BASEPROPERTY_ENFORCE_FORMAT,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
++}
++
+ VCLXCurrencyField::VCLXCurrencyField()
+ {
+ }
+@@ -4744,6 +5130,31 @@ void VCLXCurrencyField::setProperty( con
+ //	----------------------------------------------------
+ //	class VCLXPatternField
+ //	----------------------------------------------------
++
++void VCLXPatternField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_EDITMASK,
++                     BASEPROPERTY_ENABLED,
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_LITERALMASK,
++                     BASEPROPERTY_MAXTEXTLEN,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_STRICTFORMAT,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_TEXT,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
++}
++
+ VCLXPatternField::VCLXPatternField()
+ {
+ }
+Index: toolkit/source/controls/tkscrollbar.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/controls/tkscrollbar.cxx,v
+retrieving revision 1.7
+diff -u -p -u -r1.7 tkscrollbar.cxx
+--- toolkit/source/controls/tkscrollbar.cxx	16 Sep 2006 12:18:48 -0000	1.7
++++ toolkit/source/controls/tkscrollbar.cxx	8 Jun 2007 13:59:01 -0000
+@@ -53,6 +53,9 @@
+ #include <tools/debug.hxx>
+ #endif
+ 
++// for introspection
++#include <toolkit/awt/vclxwindows.hxx>
++
+ //........................................................................
+ namespace toolkit
+ {
+@@ -66,6 +69,7 @@ namespace toolkit
+ 	//--------------------------------------------------------------------
+     UnoControlScrollBarModel::UnoControlScrollBarModel()
+     {
++#ifdef VERIFY_PROPS
+ 	    ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	    ImplRegisterProperty( BASEPROPERTY_BLOCKINCREMENT );
+         ImplRegisterProperty( BASEPROPERTY_BORDER );
+@@ -85,6 +89,8 @@ namespace toolkit
+         ImplRegisterProperty( BASEPROPERTY_SYMBOL_COLOR );
+         ImplRegisterProperty( BASEPROPERTY_TABSTOP );
+         ImplRegisterProperty( BASEPROPERTY_VISIBLESIZE );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXScrollBar );
+     }
+ 
+ 	//--------------------------------------------------------------------
+Index: toolkit/source/controls/unocontrolmodel.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/controls/unocontrolmodel.cxx,v
+retrieving revision 1.52.22.1
+diff -u -p -u -r1.52.22.1 unocontrolmodel.cxx
+--- toolkit/source/controls/unocontrolmodel.cxx	14 Feb 2007 15:33:23 -0000	1.52.22.1
++++ toolkit/source/controls/unocontrolmodel.cxx	8 Jun 2007 13:59:02 -0000
+@@ -519,6 +520,32 @@ void UnoControlModel::ImplRegisterProper
+         ImplRegisterProperty( BASEPROPERTY_FONTRELIEF );
+         ImplRegisterProperty( BASEPROPERTY_FONTEMPHASISMARK );
+     }
++}
++
++void UnoControlModel::ImplRegisterProperties( const std::list< sal_uInt16 > &rIds )
++{
++#ifdef VERIFY_PROPS // just check we have the right answer ...
++    if (mpData->Count() > rIds.size()) { // NB. we may have a complete set ...
++        fprintf (stderr, "Property mismatch %d vs %d\n",
++                 (int)mpData->Count(), (int) rIds.size());
++        fscanf (stderr, "");
++    }
++    std::list< sal_uInt16 >::const_iterator iter;
++    for( iter = rIds.begin(); iter != rIds.end(); iter++)
++    {
++        if ( mpData->Get (*iter) == NULL )
++        {
++            rtl::OString aName = rtl::OUStringToOString( GetPropertyName( *iter ), RTL_TEXTENCODING_UTF8 );
++            fprintf( stderr, "   missing property %d (%s)\n", *iter, aName.getStr() );
++        }
++    }
++#else
++    std::list< sal_uInt16 >::const_iterator iter;
++    for( iter = rIds.begin(); iter != rIds.end(); iter++) {
++        if( !ImplHasProperty( *iter ) )
++            ImplRegisterProperty( *iter, ImplGetDefaultValue( *iter ) );
++    }
++#endif
+ }
+ 
+ // ::com::sun::star::uno::XInterface
+Index: toolkit/source/controls/unocontrols.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/controls/unocontrols.cxx,v
+retrieving revision 1.79.2.1
+diff -u -p -u -r1.79.2.1 unocontrols.cxx
+--- toolkit/source/controls/unocontrols.cxx	14 Feb 2007 15:33:38 -0000	1.79.2.1
++++ toolkit/source/controls/unocontrols.cxx	8 Jun 2007 13:59:02 -0000
+@@ -96,6 +96,9 @@
+ #include <toolkit/helper/imagealign.hxx>
+ #endif
+ 
++// for introspection
++#include <toolkit/awt/vclxwindows.hxx>
++
+ #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
+ #include <cppuhelper/typeprovider.hxx>
+ #endif
+@@ -186,6 +189,7 @@ static void lcl_knitImageComponents( con
+ //	----------------------------------------------------
+ UnoControlEditModel::UnoControlEditModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+@@ -207,6 +211,8 @@ UnoControlEditModel::UnoControlEditModel
+ 	ImplRegisterProperty( BASEPROPERTY_TEXT );
+ 	ImplRegisterProperty( BASEPROPERTY_VSCROLL );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXEdit );
+ }
+ 
+ ::rtl::OUString UnoControlEditModel::getServiceName( ) throw(::com::sun::star::uno::RuntimeException)
+@@ -845,6 +851,7 @@ void ImageConsumerControl::ImplSetPeerPr
+ //	----------------------------------------------------
+ UnoControlButtonModel::UnoControlButtonModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_DEFAULTBUTTON );
+ 	ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
+@@ -868,6 +875,8 @@ UnoControlButtonModel::UnoControlButtonM
+ 	ImplRegisterProperty( BASEPROPERTY_MULTILINE );
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
+ 	ImplRegisterProperty( BASEPROPERTY_VERTICALALIGN );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXButton );
+ 
+     osl_incrementInterlockedCount( &m_refCount );
+     {
+@@ -1062,6 +1071,7 @@ awt::Size UnoButtonControl::calcAdjusted
+ //	----------------------------------------------------
+ UnoControlImageControlModel::UnoControlImageControlModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -1074,6 +1084,8 @@ UnoControlImageControlModel::UnoControlI
+ 	ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
+ 	ImplRegisterProperty( BASEPROPERTY_SCALEIMAGE );
+ 	ImplRegisterProperty( BASEPROPERTY_TABSTOP );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXImageControl );
+ }
+ 
+ ::rtl::OUString UnoControlImageControlModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -1156,6 +1168,7 @@ awt::Size UnoImageControlControl::calcAd
+ //	----------------------------------------------------
+ UnoControlRadioButtonModel::UnoControlRadioButtonModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
+ 	ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ 	ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
+@@ -1173,6 +1186,8 @@ UnoControlRadioButtonModel::UnoControlRa
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
+ 	ImplRegisterProperty( BASEPROPERTY_VERTICALALIGN );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXRadioButton );
+ }
+ 
+ ::rtl::OUString UnoControlRadioButtonModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -1379,6 +1394,7 @@ awt::Size UnoRadioButtonControl::calcAdj
+ //	----------------------------------------------------
+ UnoControlCheckBoxModel::UnoControlCheckBoxModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
+ 	ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ 	ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
+@@ -1397,6 +1413,8 @@ UnoControlCheckBoxModel::UnoControlCheck
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
+ 	ImplRegisterProperty( BASEPROPERTY_VERTICALALIGN );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXCheckBox );
+ }
+ 
+ ::rtl::OUString UnoControlCheckBoxModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -1579,6 +1597,7 @@ awt::Size UnoCheckBoxControl::calcAdjust
+ //	----------------------------------------------------
+ UnoControlFixedTextModel::UnoControlFixedTextModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+@@ -1593,6 +1612,8 @@ UnoControlFixedTextModel::UnoControlFixe
+ 	ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
+ 	ImplRegisterProperty( BASEPROPERTY_TABSTOP );
+ 	ImplRegisterProperty( BASEPROPERTY_VERTICALALIGN );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXFixedText );
+ }
+ 
+ ::rtl::OUString UnoControlFixedTextModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -1789,6 +1810,7 @@ sal_Bool UnoGroupBoxControl::isTranspare
+ //	----------------------------------------------------
+ UnoControlListBoxModel::UnoControlListBoxModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -1806,6 +1828,8 @@ UnoControlListBoxModel::UnoControlListBo
+ 	ImplRegisterProperty( BASEPROPERTY_TABSTOP );
+ 	ImplRegisterProperty( BASEPROPERTY_READONLY );
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXListBox );
+ }
+ 
+ ::rtl::OUString UnoControlListBoxModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -2245,6 +2269,7 @@ void UnoListBoxControl::getColumnsAndLin
+ //	----------------------------------------------------
+ UnoControlComboBoxModel::UnoControlComboBoxModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_AUTOCOMPLETE );
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+@@ -2264,6 +2289,8 @@ UnoControlComboBoxModel::UnoControlCombo
+ 	ImplRegisterProperty( BASEPROPERTY_TEXT );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
+ 	ImplRegisterProperty( BASEPROPERTY_ALIGN );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXComboBox );
+ }
+ 
+ ::rtl::OUString UnoControlComboBoxModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -2601,6 +2628,7 @@ void UnoSpinFieldControl::enableRepeat( 
+ //	----------------------------------------------------
+ UnoControlDateFieldModel::UnoControlDateFieldModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -2625,6 +2653,8 @@ UnoControlDateFieldModel::UnoControlDate
+ 	ImplRegisterProperty( BASEPROPERTY_ENFORCE_FORMAT );
+ 	ImplRegisterProperty( BASEPROPERTY_TEXT );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXDateField );
+ }
+ 
+ ::rtl::OUString UnoControlDateFieldModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -2864,6 +2894,7 @@ sal_Bool UnoDateFieldControl::isStrictFo
+ //	----------------------------------------------------
+ UnoControlTimeFieldModel::UnoControlTimeFieldModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -2886,6 +2917,8 @@ UnoControlTimeFieldModel::UnoControlTime
+     ImplRegisterProperty( BASEPROPERTY_ENFORCE_FORMAT );
+     ImplRegisterProperty( BASEPROPERTY_TEXT );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXTimeField );
+ }
+ 
+ ::rtl::OUString UnoControlTimeFieldModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -3084,6 +3117,7 @@ sal_Bool UnoTimeFieldControl::isStrictFo
+ //	----------------------------------------------------
+ UnoControlNumericFieldModel::UnoControlNumericFieldModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -3107,6 +3141,8 @@ UnoControlNumericFieldModel::UnoControlN
+ 	ImplRegisterProperty( BASEPROPERTY_VALUE_DOUBLE );
+     ImplRegisterProperty( BASEPROPERTY_ENFORCE_FORMAT );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXNumericField );
+ }
+ 
+ ::rtl::OUString UnoControlNumericFieldModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -3302,6 +3338,7 @@ sal_Int16 UnoNumericFieldControl::getDec
+ //	----------------------------------------------------
+ UnoControlCurrencyFieldModel::UnoControlCurrencyFieldModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -3327,6 +3364,8 @@ UnoControlCurrencyFieldModel::UnoControl
+ 	ImplRegisterProperty( BASEPROPERTY_VALUE_DOUBLE );
+     ImplRegisterProperty( BASEPROPERTY_ENFORCE_FORMAT );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXCurrencyField );
+ }
+ 
+ ::rtl::OUString UnoControlCurrencyFieldModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+@@ -3525,6 +3564,7 @@ sal_Int16 UnoCurrencyFieldControl::getDe
+ //	----------------------------------------------------
+ UnoControlPatternFieldModel::UnoControlPatternFieldModel()
+ {
++#ifdef VERIFY_PROPS
+ 	ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDER );
+ 	ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
+@@ -3542,6 +3582,8 @@ UnoControlPatternFieldModel::UnoControlP
+ 	ImplRegisterProperty( BASEPROPERTY_TABSTOP );
+ 	ImplRegisterProperty( BASEPROPERTY_TEXT );
+ 	ImplRegisterProperty( BASEPROPERTY_HIDEINACTIVESELECTION );
++#endif
++    UNO_CONTROL_MODEL_REGISTER_PROPERTIES( VCLXPatternField );
+ }
+ 
+ ::rtl::OUString UnoControlPatternFieldModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+Index: toolkit/source/helper/unopropertyarrayhelper.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/toolkit/source/helper/unopropertyarrayhelper.cxx,v
+retrieving revision 1.5
+diff -u -p -u -r1.5 unopropertyarrayhelper.cxx
+--- toolkit/source/helper/unopropertyarrayhelper.cxx	12 Oct 2006 10:33:28 -0000	1.5
++++ toolkit/source/helper/unopropertyarrayhelper.cxx	8 Jun 2007 13:59:03 -0000
+@@ -51,6 +51,13 @@ UnoPropertyArrayHelper::UnoPropertyArray
+ 		maIDs.Insert( pIDs[n], (void*)1L );
+ }
+ 
++UnoPropertyArrayHelper::UnoPropertyArrayHelper( const std::list< sal_uInt16 > &rIDs )
++{
++    std::list< sal_uInt16 >::const_iterator iter;
++    for( iter = rIDs.begin(); iter != rIDs.end(); iter++)
++	  maIDs.Insert( *iter, (void*)1L);
++}
++
+ sal_Bool UnoPropertyArrayHelper::ImplHasProperty( sal_uInt16 nPropId ) const
+ {
+ 	if ( ( nPropId >= BASEPROPERTY_FONTDESCRIPTORPART_START ) && ( nPropId <= BASEPROPERTY_FONTDESCRIPTORPART_END ) )
+
+Index: source/helper/unowrapper.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/helper/unowrapper.cxx,v
+retrieving revision 1.32
+diff -u -p -u -r1.32 unowrapper.cxx
+--- toolkit/source/helper/unowrapper.cxx	6 Jul 2007 14:28:36 -0000	1.32
++++ toolkit/source/helper/unowrapper.cxx	16 Aug 2007 15:32:11 -0000
+@@ -139,7 +139,7 @@ using namespace ::com::sun::star;
+ 		// case WINDOW_SCROLLBARBOX:
+ 		// case WINDOW_PATTERNBOX:
+ 		// case WINDOW_CURRENCYBOX:
+-        default:                    return new VCLXWindow;
++        default:                    return new VCLXWindow( true );
+     }
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooocmcfixes46.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooocmcfixes46.diff
@@ -0,0 +1,22 @@
+--- vcl/source/glyphs/gcach_ftyp.cxx~	2008-06-16 21:00:08.000000000 +0200
++++ vcl/source/glyphs/gcach_ftyp.cxx	2008-06-16 21:01:50.000000000 +0200
+@@ -2235,7 +2235,7 @@
+     int nGlyphFlags;
+     SplitGlyphFlags( *this, nGlyphIndex, nGlyphFlags );
+ 
+-    FT_Int nLoadFlags = FT_LOAD_DEFAULT;
++    FT_Int nLoadFlags = FT_LOAD_DEFAULT | FT_LOAD_IGNORE_TRANSFORM;
+ 
+ #ifdef FT_LOAD_TARGET_LIGHT
+     // enable "light hinting" if available
+--- vcl/unx/source/gdi/salgdi3.cxx~	2008-06-16 20:59:00.000000000 +0200
++++ vcl/unx/source/gdi/salgdi3.cxx	2008-06-16 21:02:59.000000000 +0200
+@@ -998,7 +998,7 @@
+     Display* pDisplay = GetXDisplay();
+ 
+     cairo_surface_t *surface = rCairo.xlib_surface_create_with_xrender_format (pDisplay,
+-        hDrawable_, DefaultScreenOfDisplay(pDisplay), pVisualFormat, 1, 1);
++         hDrawable_, ScreenOfDisplay(pDisplay, m_nScreen), pVisualFormat, SAL_MAX_INT16, SAL_MAX_INT16);
+ 
+     /*
+      * It might be ideal to cache surface and cairo context between calls and
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/corporate-dictionary.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/corporate-dictionary.diff
@@ -0,0 +1,28 @@
+--- officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs	2005-04-04 18:09:25.000000000 +0530
++++ officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs	2005-08-04 14:17:21.066786557 +0530
+@@ -144,7 +144,7 @@
+ 						<desc>Specifies the custom dictionaries to be used. The Ignore list (IgnoreAllList (All)) is administered in the RAM only for the current spellcheck.</desc>
+ 						<label>Custom dictionaries</label>
+ 					</info>
+-					<value oor:separator=";">IgnoreAllList;soffice.dic;standard.dic;sun.dic</value>
++					<value oor:separator=";">IgnoreAllList;soffice.dic;standard.dic;Novell.dic;sun.dic;corporate.dic</value>
+ 				</prop>
+ 				<prop oor:name="IsUseDictionaryList" oor:type="xs:boolean">
+ 					<!-- OldLocation: NEW -->
+
+Index: extras/source/wordbook/makefile.mk
+===================================================================
+RCS file: /cvs/installation/extras/source/wordbook/makefile.mk,v
+retrieving revision 1.2
+diff -u -p -u -r1.2 makefile.mk
+--- extras/source/wordbook/makefile.mk	8 Sep 2005 21:20:19 -0000	1.2
++++ extras/source/wordbook/makefile.mk	16 Feb 2006 11:14:03 -0000
+@@ -47,7 +47,7 @@ TARGET=wordbookall
+ 
+ ZIP1TARGET      = $(WORDBOOK_ALL_TARGET)
+ 
+-ZIP1LIST        = sun.dic
++ZIP1LIST        = sun.dic Novell.dic
+ 
+ 
+ ZIP2TARGET      = $(WORDBOOK_USER_TARGET)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/jpegc.c.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/jpegc.c.diff
@@ -0,0 +1,96 @@
+--- svtools/source/filter.vcl/jpeg/jpegc.c.orig	2006-09-08 10:25:21.000000000 +0200
++++ svtools/source/filter.vcl/jpeg/jpegc.c	2007-11-02 17:40:10.000000000 +0100
+@@ -39,7 +39,8 @@
+ #include "jpeglib.h"
+ #include "jerror.h"
+ #include "jpeg.h"
+-
++#include "rtl/alloc.h"
++#include "osl/diagnose.h"
+ 
+ struct my_error_mgr
+ {
+@@ -86,6 +87,9 @@ void ReadJPEG( void* pJPEGReader, void* 
+     long                            nWidth;
+     long                            nHeight;
+     long                            nAlignedWidth;
++    JSAMPLE * range_limit;
++    HPBYTE pScanLineBuffer = NULL;
++    long nScanLineBufferComponents = 0;
+     // declare bDecompCreated volatile because of gcc
+     // warning: variable 'bDecompCreated' might be clobbered by `longjmp' or `vfork'
+ 	volatile long					bDecompCreated = 0;
+@@ -111,8 +115,12 @@ void ReadJPEG( void* pJPEGReader, void* 
+ 	cinfo.output_gamma = 1.0;
+ 	cinfo.raw_data_out = FALSE;
+ 	cinfo.quantize_colors = FALSE;
+-	if ( cinfo.jpeg_color_space != JCS_GRAYSCALE )
+-		cinfo.out_color_space = JCS_RGB;
++	if ( cinfo.jpeg_color_space == JCS_YCbCr )
++	    cinfo.out_color_space = JCS_RGB;
++	else if ( cinfo.jpeg_color_space == JCS_YCCK )
++	    cinfo.out_color_space = JCS_CMYK;
++
++	OSL_ASSERT(cinfo.out_color_space == JCS_CMYK || cinfo.out_color_space == JCS_GRAYSCALE || cinfo.out_color_space == JCS_RGB);
+ 
+     /* change scale for preview import */
+     if( nPreviewWidth || nPreviewHeight )
+@@ -156,6 +164,14 @@ void ReadJPEG( void* pJPEGReader, void* 
+     aCreateBitmapParam.bGray = cinfo.output_components == 1;
+ 	pDIB = CreateBitmap( pJPEGReader, &aCreateBitmapParam );
+     nAlignedWidth = aCreateBitmapParam.nAlignedWidth;
++    range_limit=cinfo.sample_range_limit;
++
++	if ( cinfo.out_color_space == JCS_CMYK )
++	{
++    		nScanLineBufferComponents = cinfo.output_width * 4;
++		pScanLineBuffer = rtl_allocateMemory( nScanLineBufferComponents );
++	}
++
+ 	if( pDIB )
+ 	{
+ 		if( aCreateBitmapParam.bTopDown )
+@@ -168,17 +184,37 @@ void ReadJPEG( void* pJPEGReader, void* 
+ 
+ 		for ( *pLines = 0; *pLines < nHeight; (*pLines)++ )
+ 		{
++		    if (pScanLineBuffer!=NULL) { // in other words cinfo.out_color_space == JCS_CMYK
++			int i;
++			int j;
++			jpeg_read_scanlines( &cinfo, (JSAMPARRAY) &pScanLineBuffer, 1 );
++			// convert CMYK to RGB
++			for( i=0, j=0; i < nScanLineBufferComponents; i+=4, j+=3 )
++			{
++			    int c_=255-pScanLineBuffer[i+0];
++			    int m_=255-pScanLineBuffer[i+1];
++			    int y_=255-pScanLineBuffer[i+2];
++			    int k_=255-pScanLineBuffer[i+3];
++			    pTmp[j+0]=range_limit[ 255L - ( c_ + k_ ) ];
++			    pTmp[j+1]=range_limit[ 255L - ( m_ + k_ ) ];
++			    pTmp[j+2]=range_limit[ 255L - ( y_ + k_ ) ];
++			}
++		    } else {
+ 			jpeg_read_scanlines( &cinfo, (JSAMPARRAY) &pTmp, 1 );
+-
+-			/* PENDING ??? */
+-			if ( cinfo.err->msg_code == 113 )
+-				break;
+-
+-			pTmp += nAlignedWidth;
++		    }
++		    /* PENDING ??? */
++		    if ( cinfo.err->msg_code == 113 )
++			break;
++		    
++		    pTmp += nAlignedWidth;
+ 		}
+ 	}
+ 
+ 	jpeg_finish_decompress( &cinfo );
++	if (pScanLineBuffer!=NULL) {
++	    rtl_freeMemory( pScanLineBuffer );
++	    pScanLineBuffer=NULL;
++	}
+ 
+ Exit:
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/makefile-idl-build.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/makefile-idl-build.diff
@@ -0,0 +1,19 @@
+--- config_office.bak/makefile.rc	2006-01-06 11:17:31.000000000 +0000
++++ config_office/makefile.rc	2006-08-08 13:43:04.000000000 +0100
+@@ -46,6 +46,16 @@ check_modules .PHONY :
+ 	@+echo Checking module list
+ 	@+perl $(SOLARENV)$/bin$/build.pl --checkmodules
+ 
++idl_offapi .SETDIR=offapi .PHONY :
++	@+perl $(SOLARENV)$/bin$/build.pl 
++	@+perl $(SOLARENV)$/bin$/deliver.pl 
++
++idl_offuh .SETDIR=offuh .PHONY :
++	@+perl $(SOLARENV)$/bin$/build.pl 
++	@+perl $(SOLARENV)$/bin$/deliver.pl 
++
++idl  : idl_offapi idl_offuh
++
+ # Only build when all modules available
+ build_instsetoo_native .SETDIR=instsetoo_native/prj : check_modules
+ 	@+perl $(SOLARENV)$/bin$/build.pl --all $(PROFULLSWITCH)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-status-bar-launch-navigator.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-status-bar-launch-navigator.diff
@@ -0,0 +1,51 @@
+? sc/sc.vpj
+Index: sc/source/ui/view/cellsh3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/cellsh3.cxx,v
+retrieving revision 1.22
+diff -u -r1.22 cellsh3.cxx
+--- sc/source/ui/view/cellsh3.cxx	22 May 2007 20:12:35 -0000	1.22
++++ sc/source/ui/view/cellsh3.cxx	5 Dec 2007 21:21:49 -0000
+@@ -934,15 +934,11 @@
+ 			DBG_ERROR("Execute von InputLine-Status");
+ 			break;
+ 
+-
+-		case SID_STATUS_DOCPOS:
+-			{
+-				//!	Navigator an-/ausschalten (wie im Writer) ???
+-				//!pViewData->GetDispatcher().Execute( SID_NAVIGATOR,
+-				//!						  SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD );
+-			}
+-			break;
+-
++        case SID_STATUS_DOCPOS:
++            // Launch navigator.
++            GetViewData()->GetDispatcher().Execute( 
++                SID_NAVIGATOR, SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD );
++            break;
+ 
+ 		case SID_MARKAREA:
+ 			// called from Basic at the hidden view to select a range in the visible view
+Index: sc/source/ui/view/tabvwsh3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/tabvwsh3.cxx,v
+retrieving revision 1.35
+diff -u -r1.35 tabvwsh3.cxx
+--- sc/source/ui/view/tabvwsh3.cxx	27 Sep 2007 13:56:50 -0000	1.35
++++ sc/source/ui/view/tabvwsh3.cxx	5 Dec 2007 21:21:49 -0000
+@@ -929,14 +929,6 @@
+ 			}
+ 			break;
+ 
+-		case SID_STATUS_DOCPOS:
+-			{
+-				//!	Navigator an-/ausschalten (wie im Writer) ???
+-				//!GetViewData()->GetDispatcher().Execute( SID_NAVIGATOR,
+-				//!						  SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD );
+-			}
+-			break;
+-
+ 		case FID_PROTECT_DOC:
+ 			{
+ 				ScDocument* 		pDoc = GetViewData()->GetDocument();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-shapes-default-word-wrap-enable.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-shapes-default-word-wrap-enable.diff
@@ -0,0 +1,11 @@
+--- svx/source/svdraw/svdattr.cxx.orig	2006-05-28 21:02:04.000000000 +0200
++++ svx/source/svdraw/svdattr.cxx	2006-05-28 20:47:25.000000000 +0200
+@@ -197,7 +197,7 @@ SdrItemPool::SdrItemPool(
+ 	mppLocalPoolDefaults[SDRATTR_CUSTOMSHAPE_ADJUSTMENT -SDRATTR_START]=new SdrCustomShapeAdjustmentItem;
+ 	mppLocalPoolDefaults[SDRATTR_XMLATTRIBUTES -SDRATTR_START]=new SvXMLAttrContainerItem( SDRATTR_XMLATTRIBUTES );
+ 	mppLocalPoolDefaults[SDRATTR_TEXT_USEFIXEDCELLHEIGHT -SDRATTR_START]=new SdrTextFixedCellHeightItem;
+-	mppLocalPoolDefaults[SDRATTR_TEXT_WORDWRAP		   -SDRATTR_START]=new SdrTextWordWrapItem;
++	mppLocalPoolDefaults[SDRATTR_TEXT_WORDWRAP		   -SDRATTR_START]=new SdrTextWordWrapItem( FALSE );
+ 	mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWSIZE	   -SDRATTR_START]=new SdrTextAutoGrowSizeItem;
+ 	mppLocalPoolDefaults[SDRATTR_EDGEKIND         -SDRATTR_START]=new SdrEdgeKindItem;
+ 	mppLocalPoolDefaults[SDRATTR_EDGENODE1HORZDIST-SDRATTR_START]=new SdrEdgeNode1HorzDistItem(nDefEdgeDist);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/officecfg-field-patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/officecfg-field-patch.diff
@@ -0,0 +1,18 @@
+diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+index c753f23..3675b36 100644
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs
+@@ -3979,6 +3979,13 @@ Dymamic border coloring means that when the mouse is hovered over a control, and
+ 						</info>
+ 						<value>true</value>
+ 					</prop>
++					<prop oor:name="ImportWWFieldsAsEnhancedFields" oor:type="xs:boolean">
++						<info>
++							<desc>Flag to control
++							use of enhanced fields.</desc>
++						</info>
++						<value>true</value>
++					</prop>
+ 				</group>
+ 				<group oor:name="Export">
+ 					<info>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svtools-field-patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svtools-field-patch.diff
@@ -0,0 +1,79 @@
+diff --git a/svtools/inc/fltrcfg.hxx b/svtools/inc/fltrcfg.hxx
+index e13565b..1f91edf 100644
+--- svtools/inc/fltrcfg.hxx
++++ svtools/inc/fltrcfg.hxx
+@@ -84,6 +84,9 @@ public:
+ 	sal_Bool IsWriter2WinWord() const;
+ 	void SetWriter2WinWord( sal_Bool bFlag );
+ 
++        sal_Bool IsUseEnhancedFields() const;
++        void SetUseEnhancedFields( sal_Bool  bFlag );
++
+ 	sal_Bool IsExcel2Calc() const;
+ 	void SetExcel2Calc( sal_Bool bFlag );
+ 	sal_Bool IsCalc2Excel() const;
+diff --git a/svtools/source/config/fltrcfg.cxx b/svtools/source/config/fltrcfg.cxx
+index 12611b9..451f578 100644
+--- svtools/source/config/fltrcfg.cxx
++++ svtools/source/config/fltrcfg.cxx
+@@ -72,6 +72,7 @@ using namespace com::sun::star::uno;
+ #define FILTERCFG_CALC_SAVE				0x2000
+ #define FILTERCFG_IMPRESS_LOAD			0x4000
+ #define FILTERCFG_IMPRESS_SAVE			0x8000
++#define FILTERCFG_USE_ENHANCED_FIELDS			0x10000
+ 
+ static SvtFilterOptions* pOptions=0;
+ 
+@@ -171,7 +172,7 @@ struct SvtFilterOptions_Impl
+ 					FILTERCFG_MATH_LOAD		| FILTERCFG_MATH_SAVE |
+ 					FILTERCFG_WRITER_LOAD	| FILTERCFG_WRITER_SAVE |
+ 					FILTERCFG_CALC_LOAD		| FILTERCFG_CALC_SAVE	|
+-					FILTERCFG_IMPRESS_LOAD	| FILTERCFG_IMPRESS_SAVE;
++					FILTERCFG_IMPRESS_LOAD	| FILTERCFG_IMPRESS_SAVE | FILTERCFG_USE_ENHANCED_FIELDS;
+ 		   Load();
+ 		}
+ 
+@@ -247,7 +248,7 @@ const Sequence<OUString>& SvtFilterOptions::GetPropertyNames()
+ 	static Sequence<OUString> aNames;
+ 	if(!aNames.getLength())
+ 	{
+-		int nCount = 8;
++		int nCount = 9;
+ 		aNames.realloc(nCount);
+ 		static const char* aPropNames[] =
+ 		{
+@@ -258,7 +259,8 @@ const Sequence<OUString>& SvtFilterOptions::GetPropertyNames()
+ 			"Export/MathToMathType",            //  4
+ 			"Export/WriterToWinWord",           //  5
+ 			"Export/ImpressToPowerPoint",       //  6
+-			"Export/CalcToExcel"            	//  7
++			"Export/CalcToExcel",            	//  7
++                        "Import/ImportWWFieldsAsEnhancedFields" // 8
+ 		};
+ 		OUString* pNames = aNames.getArray();
+ 		for(int i = 0; i < nCount; i++)
+@@ -280,6 +282,7 @@ static ULONG lcl_GetFlag(sal_Int32 nProp)
+ 		case  5: nFlag = FILTERCFG_WRITER_SAVE; break;
+ 		case  6: nFlag = FILTERCFG_IMPRESS_SAVE; break;
+ 		case  7: nFlag = FILTERCFG_CALC_SAVE; break;
++		case  8: nFlag =  FILTERCFG_USE_ENHANCED_FIELDS; break;
+ 		default: DBG_ERROR("illegal value");
+ 	}
+ 	return nFlag;
+@@ -453,6 +456,16 @@ void SvtFilterOptions::SetWriter2WinWord( BOOL bFlag )
+ 	SetModified();
+ }
+ 
++BOOL SvtFilterOptions::IsUseEnhancedFields() const
++{
++	return pImp->IsFlag( FILTERCFG_USE_ENHANCED_FIELDS );
++}
++
++void SvtFilterOptions::SetUseEnhancedFields( BOOL bFlag )
++{
++	pImp->SetFlag( FILTERCFG_USE_ENHANCED_FIELDS, bFlag );
++	SetModified();
++}
+ 
+ // -----------------------------------------------------------------------
+ BOOL SvtFilterOptions::IsExcel2Calc() const
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/2005-express-stl-remove.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/2005-express-stl-remove.diff
@@ -0,0 +1,150 @@
+--- canvas/source/tools/page.cxx	2006-09-17 04:26:19.000000000 +0100
++++ canvas/source/tools/page.cxx	2006-11-09 21:41:56.062500000 +0000
+@@ -96,7 +96,11 @@ namespace canvas
+ 		// currently be deleted. in either case, simply
+ 		// remove the reference from our internal storage.
+ 		FragmentContainer_t::iterator it(
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			remove(
++#else
+ 			std::remove(
++#endif
+ 				mpFragments.begin(),mpFragments.end(),pFragment));
+ 		mpFragments.erase(it,mpFragments.end());
+ 	}
+--- canvas/source/tools/pagemanager.cxx	2006-09-17 04:26:32.000000000 +0100
++++ canvas/source/tools/pagemanager.cxx	2006-11-09 21:43:24.765625000 +0000
+@@ -100,7 +100,11 @@ namespace canvas
+ 		// erase the reference to the given fragment from our
+ 		// internal container.
+ 		FragmentContainer_t::iterator it(
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			remove(
++#else
+ 			std::remove(
++#endif
+ 				maFragments.begin(),maFragments.end(),pFragment));
+ 		maFragments.erase(it,maFragments.end());
+ 
+--- dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx	2006-07-10 16:41:24.000000000 +0100
++++ dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx	2006-11-09 21:54:50.109375000 +0000
+@@ -83,7 +83,11 @@ namespace dbaui
+ 		void InsertConnection( OTableConnection* pConnection ) { m_vTableConnection.push_back(pConnection); }
+ 		void RemoveConnection( OTableConnection* pConnection ) 
+ 		{ 
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			m_vTableConnection.erase(remove(m_vTableConnection.begin(),m_vTableConnection.end(),pConnection),m_vTableConnection.end());
++#else
+ 			m_vTableConnection.erase(::std::remove(m_vTableConnection.begin(),m_vTableConnection.end(),pConnection),m_vTableConnection.end());
++#endif
+ 		}
+ 	};
+ 
+--- dbaccess/source/ui/querydesign/JoinController.cxx	2006-09-17 08:20:17.000000000 +0100
++++ dbaccess/source/ui/querydesign/JoinController.cxx	2006-11-09 21:52:57.781250000 +0000
+@@ -436,7 +436,11 @@ void OJoinController::SaveTabWinsPosSize
+ // -----------------------------------------------------------------------------
+ void OJoinController::removeConnectionData(const TTableConnectionData::value_type& _pData)
+ {
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++	m_vTableConnectionData.erase( remove(m_vTableConnectionData.begin(),m_vTableConnectionData.end(),_pData),m_vTableConnectionData.end());
++#else
+ 	m_vTableConnectionData.erase( ::std::remove(m_vTableConnectionData.begin(),m_vTableConnectionData.end(),_pData),m_vTableConnectionData.end());
++#endif
+ }
+ // -----------------------------------------------------------------------------
+ void OJoinController::describeSupportedFeatures()
+--- dbaccess/source/ui/querydesign/QueryTableView.cxx	2006-09-17 08:23:21.000000000 +0100
++++ dbaccess/source/ui/querydesign/QueryTableView.cxx	2006-11-09 21:57:24.671875000 +0000
+@@ -379,8 +379,11 @@ void OQueryTableView::ReSync()
+ 			pTabWin->clearListBox();
+ 			delete pTabWin;
+ 			arrInvalidTables.push_back(pData->GetAliasName());
+-
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			pTabWinDataList->erase( remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
++#else
+ 			pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
++#endif
+ 			continue;
+ 		}
+ 
+@@ -409,7 +412,11 @@ void OQueryTableView::ReSync()
+ 
+ 		if (bInvalid)
+ 		{	// nein -> Pech gehabt, die Connection faellt weg
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			pTabConnDataList->erase( remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter) ,pTabConnDataList->end());
++#else
+ 			pTabConnDataList->erase( ::std::remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter) ,pTabConnDataList->end());
++#endif
+ 			continue;
+ 		}
+ 
+@@ -961,7 +968,11 @@ void OQueryTableView::HideTabWin( OQuery
+ 
+ 		// die Daten zum TabWin muessen auch aus meiner Verantwortung entlassen werden
+ 		TTableWindowData* pTabWinDataList = m_pView->getController()->getTableWindowData();
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++		pTabWinDataList->erase( remove(pTabWinDataList->begin(),pTabWinDataList->end(),pTabWin->GetData()),pTabWinDataList->end());
++#else
+ 		pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),pTabWin->GetData()),pTabWinDataList->end());
++#endif
+ 			// NICHT loeschen, da ja das TabWin selber - das noch lebt - sie auch noch braucht
+ 			// Entweder geht es irgendwann wieder in meine Verantwortung ueber, (ueber ShowTabWin), dann fuege ich
+ 			// auch die Daten wieder ein, oder die Undo-Action, die im Augenblick die alleinige Verantwortung fuer das Fenster
+--- dbaccess/source/ui/relationdesign/RelationTableView.cxx	2006-09-17 08:28:33.000000000 +0100
++++ dbaccess/source/ui/relationdesign/RelationTableView.cxx	2006-11-09 22:15:03.406250000 +0000
+@@ -189,8 +189,11 @@ void ORelationTableView::ReSync()
+ 			pTabWin->clearListBox();
+ 			delete pTabWin;
+ 			arrInvalidTables.push_back(pData->GetTableName());
+-
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			pTabWinDataList->erase( remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
++#else
+ 			pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
++#endif
+ 			continue;
+ 		}
+ 
+@@ -220,7 +223,11 @@ void ORelationTableView::ReSync()
+ 
+ 			if (bInvalid)
+ 			{	// nein -> Pech gehabt, die Connection faellt weg
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++				pTabConnDataList->erase( remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter),pTabConnDataList->end() );
++#else
+ 				pTabConnDataList->erase( ::std::remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter),pTabConnDataList->end() );
++#endif
+ 				continue;
+ 			}
+ 		}
+--- svx/source/accessibility/AccessibleControlShape.cxx	2006-09-17 04:59:45.000000000 +0100
++++ svx/source/accessibility/AccessibleControlShape.cxx	2006-11-09 21:58:43.921875000 +0000
+@@ -520,7 +520,11 @@ Sequence< Type > SAL_CALL AccessibleCont
+ 		Type aThisRoundType = *pBegin;
+ 		if ( ++pBegin != pEnd )
+ 		{
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++			pEnd = remove( pBegin, pEnd, aThisRoundType );
++#else
+ 			pEnd = ::std::remove( pBegin, pEnd, aThisRoundType );
++#endif
+ 			// now all types between begin and (the old) end which equal aThisRoundType
+ 			// are moved behind the new end
+ 		}
+--- connectivity/source/drivers/odbc/OStatement.cxx	2006-09-17 04:07:43.000000000 +0100
++++ connectivity/source/drivers/odbc/OStatement.cxx	2006-11-09 21:44:59.703125000 +0000
+@@ -199,7 +199,11 @@ Sequence< Type > SAL_CALL OStatement_Bas
+ 	Sequence< Type > aOldTypes = OStatement_BASE::getTypes();
+ 	if ( m_pConnection && !m_pConnection->isAutoRetrievingEnabled() )
+ 	{
++#if defined(_MSC_VER) && (_MSC_VER > 1310)
++		remove(aOldTypes.getArray(),aOldTypes.getArray() + aOldTypes.getLength(),
++#else
+ 		::std::remove(aOldTypes.getArray(),aOldTypes.getArray() + aOldTypes.getLength(),
++#endif
+ 						::getCppuType( (const Reference< XGeneratedResultSet > *)0 ));
+ 		aOldTypes.realloc(aOldTypes.getLength() - 1);
+ 	}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-standard-filter-options.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-standard-filter-options.diff
@@ -0,0 +1,451 @@
+Index: sc/inc/global.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/global.hxx,v
+retrieving revision 1.49
+diff -u -p -r1.49 global.hxx
+--- sc/inc/global.hxx	6 Jul 2007 12:30:02 -0000	1.49
++++ sc/inc/global.hxx	9 Aug 2007 18:29:24 -0000
+@@ -817,7 +817,11 @@ enum ScQueryOp
+ 		SC_TOPVAL,
+ 		SC_BOTVAL,
+ 		SC_TOPPERC,
+-		SC_BOTPERC
++		SC_BOTPERC,
++		SC_CONTAINS,
++		SC_DOES_NOT_CONTAIN,
++		SC_BEGINS_WITH,
++		SC_ENDS_WITH
+ 	};
+ 
+ // -----------------------------------------------------------------------
+Index: sc/source/core/data/table3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table3.cxx,v
+retrieving revision 1.28
+diff -u -p -r1.28 table3.cxx
+--- sc/source/core/data/table3.cxx	5 Mar 2007 14:40:30 -0000	1.28
++++ sc/source/core/data/table3.cxx	9 Aug 2007 18:29:24 -0000
+@@ -40,6 +40,7 @@
+ 
+ // INCLUDE ---------------------------------------------------------------
+ 
++#include <i18nutil/unicode.hxx>
+ #include <rtl/math.hxx>
+ #include <unotools/textsearch.hxx>
+ #include <svtools/zforlist.hxx>
+@@ -925,6 +926,28 @@ BOOL ScTable::DoSubTotals( ScSubTotalPar
+ 	return bSpaceLeft;
+ }
+ 
++static BOOL HasNonWSInRange (const String& s, int start, int end)
++{
++	for (int i = start; i < end; ++i) {
++		if (!unicode::isSpace(s.GetChar(i)))
++			return TRUE;
++	}
++	return FALSE;
++}
++
++static BOOL IsMatch (BOOL bMatchWholeCell, ScQueryOp eOp, const String& s, int nMatchStart, int nMatchEnd)
++{
++	BOOL bBegin = HasNonWSInRange(s, 0, nMatchStart);
++	BOOL bEnd   = HasNonWSInRange(s, nMatchEnd, s.Len());
++
++	if (bMatchWholeCell && (bBegin || bEnd))
++		return FALSE;
++	else if (eOp == SC_BEGINS_WITH && bBegin)
++		return FALSE;
++	else if (eOp == SC_ENDS_WITH && bEnd)
++		return FALSE;
++	return TRUE;
++}
+ 
+ BOOL ScTable::ValidQuery(SCROW nRow, const ScQueryParam& rParam,
+         BOOL* pSpecial /* =NULL */ , ScBaseCell* pCell /* =NULL */ ,
+@@ -1018,13 +1041,22 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
+                 }
+ 			}
+ 		}
+-        else if ( (rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL) ||
++        else if ( (rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN || 
++		rEntry.eOp == SC_BEGINS_WITH || rEntry.eOp == SC_ENDS_WITH || 
++		rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL) ||
+                 (rEntry.bQueryByString && (pCell ? pCell->HasStringData() :
+                                            HasStringData(
+                                                static_cast<SCCOL>(rEntry.nField),
+                                                nRow))))
+ 		{	// by String
+ 			String	aCellStr;
++
++			// Contains and Does not contain is similar to EQUAL and NOT EQUAL
++			// but with bMatchWholeCell set to false
++			if( rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN ||
++				rEntry.eOp == SC_BEGINS_WITH || rEntry.eOp == SC_ENDS_WITH )
++				bMatchWholeCell = FALSE;
++
+             if ( pCell )
+             {
+                 if (pCell->GetCellType() != CELLTYPE_NOTE)
+@@ -1037,7 +1069,9 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
+                 GetInputString( static_cast<SCCOL>(rEntry.nField), nRow, aCellStr );
+ 
+             BOOL bRealRegExp = (rParam.bRegExp && ((rEntry.eOp == SC_EQUAL)
+-                || (rEntry.eOp == SC_NOT_EQUAL)));
++                || (rEntry.eOp == SC_NOT_EQUAL) || (rEntry.eOp == SC_CONTAINS) 
++				|| (rEntry.eOp == SC_DOES_NOT_CONTAIN) || (rEntry.eOp == SC_BEGINS_WITH)
++				|| (rEntry.eOp == SC_ENDS_WITH)));
+             BOOL bTestRegExp = (pbTestEqualCondition && rParam.bRegExp
+                 && ((rEntry.eOp == SC_LESS_EQUAL)
+                     || (rEntry.eOp == SC_GREATER_EQUAL)));
+@@ -1048,17 +1082,21 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
+                 BOOL bMatch = (BOOL) rEntry.GetSearchTextPtr( rParam.bCaseSens )
+ 					->SearchFrwrd( aCellStr, &nStart, &nEnd );
+ 				// from 614 on, nEnd is behind the found text
+-                if ( bMatch && bMatchWholeCell
+-						&& (nStart != 0 || nEnd != aCellStr.Len()) )
+-                    bMatch = FALSE;    // RegExp must match entire cell string
++                if ( bMatch )
++				{
++					bMatch = IsMatch(bMatchWholeCell, rEntry.eOp, aCellStr, nStart, nEnd);
++				}
+                 if ( bRealRegExp )
+-                    bOk = ((rEntry.eOp == SC_NOT_EQUAL) ? !bMatch : bMatch);
++                    bOk = ( ( rEntry.eOp == SC_NOT_EQUAL || 
++							rEntry.eOp == SC_DOES_NOT_CONTAIN ) ? !bMatch : bMatch );
+                 else
+                     bTestEqual = bMatch;
+             }
+             if ( !bRealRegExp )
+ 			{
+-				if ( rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL )
++				if ( rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL || 
++					 rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN ||
++					 rEntry.eOp == SC_BEGINS_WITH || rEntry.eOp == SC_ENDS_WITH )
+ 				{
+                     if ( !rEntry.bQueryByString && rEntry.pStr->Len() == 0 )
+                     {
+@@ -1067,8 +1105,6 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
+                         // don't find any string (isEqual would find empty string results in formula cells).
+                         bOk = FALSE;
+                     }
+-                    else if ( bMatchWholeCell )
+-                        bOk = pTransliteration->isEqual( aCellStr, *rEntry.pStr );
+ 					else
+ 					{
+                         ::com::sun::star::uno::Sequence< sal_Int32 > xOff;
+@@ -1078,9 +1114,14 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
+                         String aQuer( pTransliteration->transliterate(
+                             *rEntry.pStr, ScGlobal::eLnge, 0, rEntry.pStr->Len(),
+                             &xOff ) );
+-                        bOk = (aCell.Search( aQuer ) != STRING_NOTFOUND);
++						xub_StrLen nPos = aCell.Search( aQuer );
++                        bOk = ( nPos != STRING_NOTFOUND );
++						if ( bOk ) {
++							bOk = IsMatch(bMatchWholeCell, rEntry.eOp, aCell, nPos, nPos+aQuer.Len());
++						}
+ 					}
+-					if ( rEntry.eOp == SC_NOT_EQUAL )
++					if ( rEntry.eOp == SC_NOT_EQUAL || 
++						 rEntry.eOp == SC_DOES_NOT_CONTAIN )
+ 						bOk = !bOk;
+ 				}
+ 				else
+Index: sc/source/filter/excel/excimp8.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/excimp8.cxx,v
+retrieving revision 1.120
+diff -u -p -r1.120 excimp8.cxx
+--- sc/source/filter/excel/excimp8.cxx	17 Jul 2007 13:33:21 -0000	1.120
++++ sc/source/filter/excel/excimp8.cxx	10 Aug 2007 13:27:58 -0000
+@@ -454,6 +454,66 @@ void XclImpAutoFilterData::InsertQueryPa
+ 	}
+ }
+ 
++static void ExcelQueryToOooQuery( ScQueryEntry& rEntry, ScQueryParam& rParam )
++{
++	if( rEntry.pStr == NULL )
++		return;
++	if( rEntry.eOp != SC_EQUAL && rEntry.eOp != SC_NOT_EQUAL )
++		return;
++	xub_StrLen nLen = rEntry.pStr->Len();
++	if( nLen == 0 )
++		return;
++	BOOL bRegExp = FALSE;
++	for( int i = 0; i < nLen; ++i ) {
++		sal_Unicode c = rEntry.pStr->GetChar( i );
++		if( c == '*' ) {
++			if( rEntry.eOp == SC_NOT_EQUAL ) {
++				bRegExp = TRUE;
++				rEntry.eOp = SC_DOES_NOT_CONTAIN;
++			}
++			else if( rEntry.eOp == SC_DOES_NOT_CONTAIN )
++				; // ignore
++			else if( i == 0 )
++				rEntry.eOp = SC_ENDS_WITH;
++			else if( i == nLen-1 )
++				rEntry.eOp = rEntry.eOp == SC_ENDS_WITH ? SC_CONTAINS : SC_BEGINS_WITH;
++			else
++				bRegExp = TRUE;
++		}
++		else if( c == '?' )
++			bRegExp = TRUE;
++	}
++	if( rEntry.pStr->GetChar( 0 ) == '*' )
++		rEntry.pStr->Erase( 0, 1 );
++	nLen = rEntry.pStr->Len();
++	if( nLen > 0 && rEntry.pStr->GetChar( nLen-1 ) == '*' ) {
++		rEntry.pStr->Erase( nLen-1, 1 );
++		--nLen;
++	}
++	if( bRegExp ) {
++		rParam.bRegExp = TRUE;
++		for( int i = 0; i < nLen; ++i ) {
++			sal_Unicode c = rEntry.pStr->GetChar( i );
++			switch( c ) {
++				case '*':
++					rEntry.pStr->ReplaceAscii( i, 1, ".*" );
++					++i;
++					++nLen;
++					break;
++				case '.':
++					rEntry.pStr->InsertAscii( "\\", i );
++					++i;
++					++nLen;
++					break;
++				case '?':
++					rEntry.pStr->ReplaceAscii( i, 1, "." );
++					break;
++				default: break;
++			}
++		}
++	}
++}
++
+ void XclImpAutoFilterData::ReadAutoFilter( XclImpStream& rStrm )
+ {
+ 	UINT16 nCol, nFlags;
+@@ -491,14 +551,14 @@ void XclImpAutoFilterData::ReadAutoFilte
+ 		BOOL	bIgnore;
+ 
+ 		UINT8	nStrLen[ 2 ]	= { 0, 0 };
+-		String*	pEntryStr[ 2 ]	= { NULL, NULL };
++		ScQueryEntry *pQueryEntries[ 2 ] = { NULL, NULL };
+ 
+ 		for( nE = 0; nE < 2; nE++ )
+ 		{
+ 			if( nFirstEmpty < nCount )
+ 			{
+ 				ScQueryEntry& aEntry = aParam.GetEntry( nFirstEmpty );
+-				pEntryStr[ nE ] = aEntry.pStr;
++				pQueryEntries[ nE ] = &aEntry;
+ 				bIgnore = FALSE;
+ 
+ 				rStrm >> nType >> nOper;
+@@ -586,8 +646,10 @@ void XclImpAutoFilterData::ReadAutoFilte
+ 		}
+ 
+ 		for( nE = 0; nE < 2; nE++ )
+-			if( nStrLen[ nE ] && pEntryStr[ nE ] )
+-                pEntryStr[ nE ]->Assign( rStrm.ReadUniString( nStrLen[ nE ] ) );
++			if( nStrLen[ nE ] && pQueryEntries[ nE ] ) {
++				pQueryEntries[ nE ]->pStr->Assign ( rStrm.ReadUniString( nStrLen[ nE ] ) );
++				ExcelQueryToOooQuery( *pQueryEntries[ nE ], aParam );
++			}
+ 	}
+ }
+ 
+Index: sc/source/filter/excel/excrecds.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/excrecds.cxx,v
+retrieving revision 1.87
+diff -u -p -r1.87 excrecds.cxx
+--- sc/source/filter/excel/excrecds.cxx	22 May 2007 19:45:31 -0000	1.87
++++ sc/source/filter/excel/excrecds.cxx	9 Aug 2007 18:29:24 -0000
+@@ -630,13 +630,50 @@ BOOL XclExpAutofilter::AddCondition( ScQ
+ 	return TRUE;
+ }
+ 
+-BOOL XclExpAutofilter::AddEntry( const ScQueryEntry& rEntry )
++static String OooQueryToExcelQuery( const ScQueryEntry& rEntry, const ScQueryParam& rParam )
++{
++	String aStr (*rEntry.pStr);
++	BOOL bHaveRegex = rParam.bRegExp;
++	if( bHaveRegex ) {
++		xub_StrLen nLen = aStr.Len();
++		for( int i = 0; i < nLen; ++i ) {
++			sal_Unicode c = aStr.GetChar( i );
++			if( c == '.' ) {
++				if( i+1 < nLen && aStr.GetChar( i+1 ) == '*' ) {
++					aStr.ReplaceAscii( i, 2, "*" );
++					--nLen;
++				}
++				else
++					aStr.ReplaceAscii( i, 1, "?" );
++			}
++			else if( c == '\\' ) {
++				aStr.Erase( i, 1 );
++				--nLen;
++			}
++		}
++	}
++	if( rEntry.eOp == SC_ENDS_WITH || rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN )
++		aStr.InsertAscii( "*" , 0 );
++	if( rEntry.eOp == SC_BEGINS_WITH || rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN )
++		aStr.AppendAscii( "*" );
++	return aStr;
++}
++
++BOOL XclExpAutofilter::AddEntry( const ScQueryEntry& rEntry, const ScQueryParam& rParam )
+ {
+ 	BOOL	bConflict = FALSE;
+ 	String	sText;
+ 
+-	if( rEntry.pStr )
+-		sText.Assign( *rEntry.pStr );
++	ScQueryOp eOp = rEntry.eOp;
++	if( rEntry.pStr ) {
++		if (eOp != SC_BEGINS_WITH && eOp != SC_ENDS_WITH && 
++				eOp != SC_CONTAINS && eOp != SC_DOES_NOT_CONTAIN)
++			sText.Assign( *rEntry.pStr );
++		else {
++			sText.Assign( OooQueryToExcelQuery( rEntry, rParam ) );
++			eOp = eOp == SC_DOES_NOT_CONTAIN ? SC_NOT_EQUAL : SC_EQUAL;
++		}
++	}
+ 
+     BOOL bLen = sText.Len() > 0;
+ 
+@@ -655,7 +692,7 @@ BOOL XclExpAutofilter::AddEntry( const S
+ 
+ 		// top10 flags
+ 		UINT16 nNewFlags = 0x0000;
+-		switch( rEntry.eOp )
++		switch( eOp )
+ 		{
+ 			case SC_TOPVAL:
+ 				nNewFlags = (EXC_AFFLAG_TOP10 | EXC_AFFLAG_TOP10TOP);
+@@ -688,7 +725,7 @@ BOOL XclExpAutofilter::AddEntry( const S
+ 				UINT8 nType = bIsNum ? EXC_AFTYPE_DOUBLE : EXC_AFTYPE_STRING;
+ 				UINT8 nOper = EXC_AFOPER_NONE;
+ 
+-				switch( rEntry.eOp )
++				switch( eOp )
+ 				{
+ 					case SC_EQUAL:			nOper = EXC_AFOPER_EQUAL;			break;
+ 					case SC_LESS:			nOper = EXC_AFOPER_LESS;			break;
+@@ -801,7 +838,7 @@ ExcAutoFilterRecs::ExcAutoFilterRecs( co
+ 						bConflict = (nEntry == 1) && (rEntry.eConnect == SC_OR) &&
+ 									(nFirstField != rEntry.nField);
+ 					if( !bConflict )
+-                        bConflict = pFilter->AddEntry( rEntry );
++                        bConflict = pFilter->AddEntry( rEntry, aParam );
+ 				}
+ 			}
+ 
+Index: sc/source/filter/inc/excrecds.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/excrecds.hxx,v
+retrieving revision 1.49
+diff -u -p -r1.49 excrecds.hxx
+--- sc/source/filter/inc/excrecds.hxx	27 Feb 2007 12:32:42 -0000	1.49
++++ sc/source/filter/inc/excrecds.hxx	9 Aug 2007 18:29:25 -0000
+@@ -469,7 +469,7 @@ public:
+ 	inline BOOL				HasCondition() const	{ return !aCond[ 0 ].IsEmpty(); }
+     inline BOOL             HasTop10() const        { return ::get_flag( nFlags, EXC_AFFLAG_TOP10 ); }
+ 
+-    BOOL                    AddEntry( const ScQueryEntry& rEntry );
++    BOOL                    AddEntry( const ScQueryEntry& rEntry, const ScQueryParam& rParam );
+ };
+ 
+ // ----------------------------------------------------------------------------
+Index: sc/source/ui/src/filter.src
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/src/filter.src,v
+retrieving revision 1.57
+diff -u -p -r1.57 filter.src
+--- sc/source/ui/src/filter.src	19 Apr 2007 16:37:30 -0000	1.57
++++ sc/source/ui/src/filter.src	9 Aug 2007 18:29:26 -0000
+@@ -126,16 +126,20 @@ ModelessDialog RID_SCDLG_FILTER
+ 		DropDown = TRUE ;
+ 		stringlist [ en-US ] =
+ 		{
+-			< "=" ; Default ; > ;
++                        < "Equals" ; Default ; > ;
+ 			< "<" ; Default ; > ;
+ 			< ">" ; Default ; > ;
+ 			< "<=" ; Default ; > ;
+ 			< ">=" ; Default ; > ;
+-			< "<>" ; Default ; > ;
++                        < "Not equals" ; Default ; > ;
+ 			< "Largest" ; Default ; > ;
+ 			< "Smallest" ; Default ; > ;
+ 			< "Largest %" ; Default ; > ;
+ 			< "Smallest %" ; Default ; > ;
++			< "Contains" ; Default ; > ;
++			< "Does not Contain" ; Default ; > ;
++                        < "Begins with" ; Default ; > ;
++                        < "Ends with" ; Default ; > ;
+ 		};
+ 	};
+ 	ListBox LB_COND2
+@@ -147,16 +151,20 @@ ModelessDialog RID_SCDLG_FILTER
+ 		DropDown = TRUE ;
+ 		stringlist [ en-US ] =
+ 		{
+-			< "=" ; Default ; > ;
++                        < "Equals" ; Default ; > ;
+ 			< "<" ; Default ; > ;
+ 			< ">" ; Default ; > ;
+ 			< "<=" ; Default ; > ;
+ 			< ">=" ; Default ; > ;
+-			< "<>" ; Default ; > ;
++			< "Not equals" ; Default ; > ;
+ 			< "Largest" ; Default ; > ;
+ 			< "Smallest" ; Default ; > ;
+ 			< "Largest %" ; Default ; > ;
+ 			< "Smallest %" ; Default ; > ;
++			< "Contains" ; Default ; > ;
++			< "Does not Contain" ; Default ; > ;
++                        < "Begins with" ; Default ; > ;
++                        < "Ends with" ; Default ; > ;
+ 		};
+ 	};
+ 	ListBox LB_COND3
+@@ -168,16 +176,20 @@ ModelessDialog RID_SCDLG_FILTER
+ 		DropDown = TRUE ;
+ 		stringlist [ en-US ] =
+ 		{
+-			< "=" ; Default ; > ;
++                        < "Equals" ; Default ; > ;
+ 			< "<" ; Default ; > ;
+ 			< ">" ; Default ; > ;
+ 			< "<=" ; Default ; > ;
+ 			< ">=" ; Default ; > ;
+-			< "<>" ; Default ; > ;
++			< "Not equals" ; Default ; > ;
+ 			< "Largest" ; Default ; > ;
+ 			< "Smallest" ; Default ; > ;
+ 			< "Largest %" ; Default ; > ;
+ 			< "Smallest %" ; Default ; > ;
++			< "Contains" ; Default ; > ;
++			< "Does not Contain" ; Default ; > ;
++                        < "Begins with" ; Default ; > ;
++                        < "Ends with" ; Default ; > ;
+ 		};
+ 	};
+ 	ComboBox ED_VAL1
+Index: sc/util/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/util/makefile.mk,v
+retrieving revision 1.41
+diff -u -p -r1.41 makefile.mk
+--- sc/util/makefile.mk	22 May 2007 20:15:40 -0000	1.41
++++ sc/util/makefile.mk	9 Aug 2007 18:29:27 -0000
+@@ -98,6 +98,7 @@ SHL1STDLIBS=       \
+ 	$(VOSLIB)		\
+ 	$(SALLIB)		\
+ 	$(TOOLSLIB)	\
++	$(I18NUTILLIB) \
+ 	$(I18NISOLANGLIB) \
+ 	$(UNOTOOLSLIB) \
+ 	$(SOTLIB)		\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/addrbk-datasrc-ordering.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/addrbk-datasrc-ordering.diff
@@ -0,0 +1,22 @@
+--- sw/source/ui/dbui/dbtree.cxx.bak	2004-11-15 23:19:10.033357496 +0530
++++ sw/source/ui/dbui/dbtree.cxx	2004-11-15 23:21:26.098672424 +0530
+@@ -335,7 +335,7 @@
+     if(!pImpl->HasContext() && pImpl->GetWrtShell())
+ 		return;
+ 	SetSelectionMode(SINGLE_SELECTION);
+-	SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
++	SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
+ 	// Font nicht setzen, damit der Font des Controls uebernommen wird!
+ 	SetSpaceBetweenEntries(0);
+     SetNodeBitmaps( aImageList.GetImage(IMG_COLLAPSE),
+--- dbaccess/source/ui/browser/dbtreeview.cxx.bak	2004-11-15 23:16:54.607945288 +0530
++++ dbaccess/source/ui/browser/dbtreeview.cxx	2004-11-15 23:19:51.361074728 +0530
+@@ -91,7 +91,7 @@
+ {
+ 	DBG_CTOR(DBTreeView,NULL);
+ 
+-	m_pTreeListBox = new DBTreeListBox(this, _rxORB ,WB_HASLINES | WB_SORT | WB_HASBUTTONS | WB_HSCROLL |WB_HASBUTTONSATROOT,sal_True);
++	 m_pTreeListBox = new DBTreeListBox(this, _rxORB ,WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONS | WB_HSCROLL |WB_HASBUTTONSATROOT);
+ 	m_pTreeListBox->EnableCheckButton(NULL);
+ 	m_pTreeListBox->SetDragDropMode( 0 );
+ 	m_pTreeListBox->EnableInplaceEditing( sal_True );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-grey-alpha-unix-sal-bitmap.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-grey-alpha-unix-sal-bitmap.diff
@@ -0,0 +1,125 @@
+diff -rup /home/rodo/svn/ooo-build-1/build/ooh680-m8/vcl/unx/inc/salbmp.h vcl/unx/inc/salbmp.h
+--- /home/rodo/svn/ooo-build-1/build/ooh680-m8/vcl/unx/inc/salbmp.h	2008-03-03 11:01:10.000000000 +0100
++++ vcl/unx/inc/salbmp.h	2008-02-28 13:18:23.000000000 +0100
+@@ -74,7 +74,8 @@ private:
+                                                int nScreen,
+ 											   long nDrawableDepth,
+ 											   long nX, long nY,
+-											   long nWidth, long nHeight );
++											   long nWidth, long nHeight,
++                                               bool bGrey );
+ 
+ public:
+ 
+@@ -95,6 +96,7 @@ private:
+ 
+ 	BitmapBuffer*	mpDIB;
+ 	ImplSalDDB*		mpDDB;
++    bool            mbGrey;
+ 								
+ public:
+ 
+diff -rup /home/rodo/svn/ooo-build-1/build/ooh680-m8/vcl/unx/source/gdi/salbmp.cxx vcl/unx/source/gdi/salbmp.cxx
+--- /home/rodo/svn/ooo-build-1/build/ooh680-m8/vcl/unx/source/gdi/salbmp.cxx	2008-03-03 11:01:10.000000000 +0100
++++ vcl/unx/source/gdi/salbmp.cxx	2008-02-28 13:39:01.000000000 +0100
+@@ -97,7 +98,8 @@ ULONG				X11SalBitmap::mnCacheInstCount 
+ 
+ X11SalBitmap::X11SalBitmap() :
+ 	mpDIB( NULL ),
+-	mpDDB( NULL )
++	mpDDB( NULL ),
++    mbGrey( false )
+ {
+ }
+ 
+@@ -211,7 +213,8 @@ BitmapBuffer* X11SalBitmap::ImplCreateDI
+                                            int nScreen,
+                                            long nDrawableDepth,
+                                            long nX, long nY,
+-                                           long nWidth, long nHeight )
++                                           long nWidth, long nHeight,
++                                           bool bGrey )
+ {
+ 	BitmapBuffer* pDIB = NULL;
+ 
+@@ -322,6 +325,21 @@ BitmapBuffer* X11SalBitmap::ImplCreateDI
+ 				rPal[ 0 ] = Color( COL_BLACK );
+ 				rPal[ 1 ] = Color( COL_WHITE );
+ 			}
++            else if( pImage->depth == 8 && bGrey )
++            {
++				rPal.SetEntryCount( 256 );
++				pDstPal = &rPal;
++
++				for( USHORT i = 0; i < 256; i++ )
++				{
++					BitmapColor&	rBmpCol = rPal[ i ];
++
++					rBmpCol.SetRed( i );
++					rBmpCol.SetGreen( i );
++					rBmpCol.SetBlue( i );
++				}
++                
++            }
+ 			else if( aSrcBuf.mnBitCount <= 8 )
+ 			{
+ 				const SalColormap& rColMap = pSalDisp->GetColormap( nScreen );
+@@ -365,7 +383,8 @@ XImage*	X11SalBitmap::ImplCreateXImage( 
+                            mpDDB->ImplGetDepth(),
+                            0, 0, 
+                            mpDDB->ImplGetWidth(), 
+-                           mpDDB->ImplGetHeight() );
++                           mpDDB->ImplGetHeight(),
++                           mbGrey );
+ 	}
+ 
+ 	if( mpDIB && mpDIB->mnWidth && mpDIB->mnHeight )
+@@ -448,6 +467,20 @@ XImage*	X11SalBitmap::ImplCreateXImage( 
+ 				(*pPal)[ 0 ] = Color( COL_BLACK );
+ 				(*pPal)[ 1 ] = Color( COL_WHITE );
+ 			}
++            else if( pImage->depth == 8 && mbGrey )
++            {
++				pPal = new BitmapPalette( 256 );
++
++				for( USHORT i = 0; i < 256; i++ )
++				{
++					BitmapColor&	rBmpCol = (*pPal)[ i ];
++
++					rBmpCol.SetRed( i );
++					rBmpCol.SetGreen( i );
++					rBmpCol.SetBlue( i );
++				}
++                
++            }
+ 			else if( pImage->depth <= 8 )
+ 			{
+ 				const SalColormap& rColMap = pSalDisp->GetColormap( nScreen );
+@@ -612,7 +645,8 @@ ImplSalDDB* X11SalBitmap::ImplGetDDB( Dr
+                                                                         mpDDB->ImplGetDepth(),
+                                                                         0, 0, 
+                                                                         mpDDB->ImplGetWidth(), 
+-                                                                        mpDDB->ImplGetHeight() );
++                                                                        mpDDB->ImplGetHeight(),
++                                                                        mbGrey );
+ 			}
+ 
+ 			delete mpDDB, const_cast<X11SalBitmap*>(this)->mpDDB = NULL;
+@@ -775,6 +809,8 @@ bool X11SalBitmap::Create( const ::com::
+ 
+         if( xFastPropertySet->getFastPropertyValue(bMask ? 2 : 1) >>= args ) {
+             if( ( args[1] >>= pixmapHandle ) && ( args[2] >>= depth ) ) {
++
++                mbGrey = bMask;
+                 bool bSuccess = ImplCreateFromDrawable( pixmapHandle, 0, depth, 0, 0, (long) rSize.Width(), (long) rSize.Height() );
+                 bool bFreePixmap;
+                 if( bSuccess && (args[0] >>= bFreePixmap) && bFreePixmap )
+@@ -844,7 +882,7 @@ BitmapBuffer* X11SalBitmap::AcquireBuffe
+ 		mpDIB = ImplCreateDIB( mpDDB->ImplGetPixmap(),
+                                mpDDB->ImplGetScreen(),
+                                mpDDB->ImplGetDepth(),
+-							   0, 0, mpDDB->ImplGetWidth(), mpDDB->ImplGetHeight() );
++							   0, 0, mpDDB->ImplGetWidth(), mpDDB->ImplGetHeight(), mbGrey );
+ 	}
+ 
+ 	return mpDIB;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-field-checkbox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-field-checkbox.diff
@@ -0,0 +1,158 @@
+diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
+index afd816b..69f5bf4 100644
+--- sw/source/ui/docvw/edtwin.cxx
++++ sw/source/ui/docvw/edtwin.cxx
+@@ -4270,6 +4270,8 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
+                             {
+ 				ASSERT( aCntntAtPos.aFnd.pFldBookmark!=NULL, "where is my field ptr???");
+ 				if ( aCntntAtPos.aFnd.pFldBookmark!=NULL) {
++				    rView.ExecFieldPopup( aDocPt );
++
+ 				    SwFieldBookmark *fieldBM=const_cast<SwFieldBookmark *>(aCntntAtPos.aFnd.pFldBookmark);
+ 				    fieldBM->SetChecked(!fieldBM->IsChecked());
+ 				    rSh.CalcLayout(); // workaround; is there a better way to update/invalidate???
+diff --git a/sw/source/ui/inc/view.hxx b/sw/source/ui/inc/view.hxx
+index f936bc3..a19f836 100644
+--- sw/source/ui/inc/view.hxx
++++ sw/source/ui/inc/view.hxx
+@@ -484,6 +484,7 @@ public:
+ 	DECL_LINK( SpellError, LanguageType * );
+ 	BOOL 			ExecSpellPopup( const Point& rPt );
+ 
++        BOOL            ExecFieldPopup( const Point& rPt );
+     // SMARTTAGS
+     BOOL            ExecSmartTagPopup( const Point& rPt );
+ 
+diff --git a/sw/source/ui/uiview/viewling.cxx b/sw/source/ui/uiview/viewling.cxx
+index 957533f..5c8b34b 100644
+--- sw/source/ui/uiview/viewling.cxx
++++ sw/source/ui/uiview/viewling.cxx
+@@ -873,3 +873,128 @@ sal_Bool SwView::ExecSmartTagPopup( const Point& rPt )
+     return bRet;
+ }
+ 
++class SwFieldPopup : public PopupMenu
++{
++public:
++    SwFieldPopup()  {
++	InsertItem(1, ::rtl::OUString::createFromAscii("Hello"));
++    }
++};
++
++class SwFieldListBox : public ListBox
++{
++public:
++    SwFieldListBox(Window* pParent) : ListBox(pParent /*, WB_DROPDOWN*/) {
++    }
++
++protected:
++    virtual void LoseFocus() {
++	printf("ListBox: lose focus!!\n");
++	ListBox::LoseFocus();
++    }    
++
++    virtual void Select() {
++	printf("SELECT!!! IsTravelSelect=%i\n", IsTravelSelect());
++	ListBox::Select();
++    }
++};
++
++class SwFieldDialog : public Dialog
++{
++private:
++    SwFieldListBox aListBox;
++    Edit aText;
++
++    DECL_LINK( MyListBoxHandler, ListBox * );
++
++public:
++    SwFieldDialog(Window* parent) : Dialog(parent, WB_BORDER | WB_SYSTEMWINDOW | WB_NOSHADOW ), aListBox(this), aText(this, WB_RIGHT | WB_READONLY) {
++
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXY"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("Hello"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("World"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("Red"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("Green"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("Blue"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("Pink"));
++	aListBox.InsertEntry(::rtl::OUString::createFromAscii("Orange"));
++//	aListBox.SetPosPixel(Size(0, 0));
++	Size lbSize=aListBox.GetOptimalSize(WINDOWSIZE_PREFERRED);
++	aListBox.SetSizePixel(lbSize);
++	aListBox.SetSelectHdl( LINK( this, SwFieldDialog, MyListBoxHandler ) );
++	aListBox.Show();
++	aText.SetText(rtl::OUString::createFromAscii("Cancel"));
++	Size tSize=aText.GetOptimalSize(WINDOWSIZE_PREFERRED);
++	aText.SetSizePixel(Size(lbSize.Width(), tSize.Height()));
++	aText.SetPosPixel(Point(0, lbSize.Height()));     	
++	aText.Show();
++	SetSizePixel(Size(lbSize.Width(), lbSize.Height()+tSize.Height()));	
++//	SetSizePixel(Size(200, 200));
++    }
++
++protected:
++    /*
++    virtual void LoseFocus() {
++	printf("lose focus!!\n");
++	Dialog::LoseFocus();
++	printf("close:\n");
++	EndDialog(8);
++    }
++    */
++
++    virtual long PreNotify( NotifyEvent& rNEvt ) {
++	if (rNEvt.GetType() == EVENT_LOSEFOCUS && aListBox.GetImplWin()==rNEvt.GetWindow()) {
++	    EndDialog(8);
++	    return 1;	   
++	}
++	if (rNEvt.GetType() == EVENT_KEYINPUT) {
++	    printf("PreNotify::KEYINPUT\n");
++	}
++	return Dialog::PreNotify(rNEvt);
++    }
++};
++
++IMPL_LINK( SwFieldDialog, MyListBoxHandler, ListBox *, pBox )
++{
++    printf("### DROP DOWN SELECT... IsTravelSelect=%i\n", pBox->IsTravelSelect());
++    if (pBox->IsTravelSelect()) {
++	return 0;
++    } else {
++	EndDialog(9);
++	return 1;
++    }
++}
++
++
++BOOL SwView::ExecFieldPopup( const Point& rPt )
++{
++    sal_Bool bRet = sal_False;
++    const sal_Bool bOldViewLock = pWrtShell->IsViewLocked();
++    pWrtShell->LockView( sal_True );
++    pWrtShell->Push();
++
++    {
++	bRet=sal_True;
++	const Point aPixPos = GetEditWin().LogicToPixel( rPt );
++	printf("<execute>\n");	
++/*
++        SwFieldPopup aPopup;
++        aPopup.Execute( pEditWin, aPixPos );
++*/
++	SwFieldDialog aFldDlg(pEditWin);
++//	aFldDlg.SetPosPixel(pEditWin->OutputToScreenPixel(rPt));
++	aFldDlg.SetPosPixel(aPixPos);
++	printf("rPt.X=%li rPt.Y=%li\n", rPt.X(), rPt.Y());
++//	aFldDlg.SetPosPixel(Point(0,0));
++
++	short ret=aFldDlg.Execute();
++	printf("<ret value=\"%i\">\n", (int)ret);
++
++	printf("</execute>\n");
++    }
++
++    pWrtShell->Pop( sal_False );
++    pWrtShell->LockView( bOldViewLock );
++
++    return bRet;
++}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libxmlsec-findcerts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libxmlsec-findcerts.diff
@@ -0,0 +1,29 @@
+--- libxmlsec/xmlsec1-1.2.6.patch.orig	2007-11-22 15:19:54.000000000 +0100
++++ libxmlsec/xmlsec1-1.2.6.patch	2007-11-22 15:19:29.000000000 +0100
+@@ -17394,4 +17394,26 @@
+ ! XMLSEC_NSS_SOLIBS   	= smime3.lib nss3.lib nspr4.lib kernel32.lib user32.lib gdi32.lib
+   XMLSEC_NSS_ALIBS    	= smime3.lib ssl3.lib nss3.lib libnspr4_s.lib libplds4_s.lib libplc4_s.lib kernel32.lib user32.lib gdi32.lib
+   
+   XMLSEC_MSCRYPTO_SOLIBS  = kernel32.lib user32.lib gdi32.lib Crypt32.lib Advapi32.lib
++*** misc/xmlsec1-1.2.6/src/nss/x509.c	2007-03-16 12:51:38.000000000 -0400
++--- misc/build/xmlsec1-1.2.6/src/nss/x509.c	2007-03-19 11:23:22.000000000 -0400
++*************** xmlSecNssKeyDataX509VerifyAndExtractKey(
++*** 1365,1373 ****
++  		/*-
++  		 * I'll search key according to KeyReq.
++  		 */
++-         slot = cert->slot ;
++          if( ( keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate ) == xmlSecKeyDataTypePrivate ) {
++!             if( ( priKey = PK11_FindPrivateKeyFromCert( slot , cert , NULL ) ) == NULL ) {
++                  xmlSecError( XMLSEC_ERRORS_HERE ,
++                      xmlSecErrorsSafeString( xmlSecKeyDataGetName( data ) ) ,
++                      "PK11_FindPrivateKeyFromCert" ,
++--- 1365,1372 ----
++  		/*-
++  		 * I'll search key according to KeyReq.
++  		 */
++          if( ( keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate ) == xmlSecKeyDataTypePrivate ) {
++!             if( ( priKey = PK11_FindKeyByAnyCert( cert , NULL ) ) == NULL ) {
++                  xmlSecError( XMLSEC_ERRORS_HERE ,
++                      xmlSecErrorsSafeString( xmlSecKeyDataGetName( data ) ) ,
++                      "PK11_FindPrivateKeyFromCert" ,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/smoketest-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/smoketest-fix.diff
@@ -0,0 +1,31 @@
+Index: smoketestoo_native/smoketest.pl
+===================================================================
+RCS file: /cvs/installation/smoketestoo_native/smoketest.pl,v
+retrieving revision 1.27
+diff -u -p -u -r1.27 smoketest.pl
+--- smoketestoo_native/smoketest.pl	6 Dec 2007 17:17:22 -0000	1.27
++++ smoketestoo_native/smoketest.pl	18 Dec 2007 16:41:00 -0000
+@@ -589,12 +589,12 @@ sub doInstall {
+ 		if (defined ($ENV{EPM}) && ($ENV{EPM} eq 'NO')) { # do the install ourselves ...
+ # FIXME - this tool should work nicely without such hacks
+ # cut/paste from ooo-build/bin/ooinstall
+-		    my $instoo_dir = "$ENV{SOLARROOT}/instsetoo_native";
++		    my $instoo_dir = "$ENV{SRC_ROOT}/instsetoo_native";
+ 
+ 		    if ( $ENV{'SYSTEM_MOZILLA'} eq 'YES' ) {
+ 			$ENV{'LD_LIBRARY_PATH'} = "$ENV{'MOZ_LIB'}:$ENV{'LD_LIBRARY_PATH'}";
+ 		    }
+-		    $ENV{'PYTHONPATH'} = "$ENV{SOLARROOT}/instsetoo_native/$ENV{INPATH}/bin:$ENV{SOLARVERSION}/$ENV{INPATH}/lib";
++		    $ENV{'PYTHONPATH'} = "$ENV{SRC_ROOT}/instsetoo_native/$ENV{INPATH}/bin:$ENV{SOLARVERSION}/$ENV{INPATH}/lib";
+ 		    $ENV{OUT} = "../$ENV{INPATH}";
+ 		    $ENV{LOCAL_OUT} = "../$ENV{INPATH}";
+ 		    $ENV{LOCAL_COMMON_OUT} = "../$ENV{INPATH}";
+@@ -603,8 +603,6 @@ sub doInstall {
+ 		    createPath ($sane_destdir, $error_setup);  
+ 		    $Command = "cd $instoo_dir/util ; perl -w $ENV{SOLARENV}/bin/make_installer.pl " .
+ 			"-f openoffice.lst -l en-US -p OpenOffice " .
+-			"-packagelist ../inc_openoffice/unix/packagelist.txt " .
+-			"-addpackagelist ../inc_openoffice/unix/packagelist_language.txt " .
+ 			"-buildid \"smoketestoo\" -simple $sane_destdir";
+ # FIXME - this tool should work nicely without such evil
+ 		    execute_Command ($Command, $error_setup, $show_Message, $command_normal);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-hash-style.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-hash-style.diff
@@ -0,0 +1,80 @@
+--- config_office/configure.in.old	2006-11-30 21:09:12.000000000 +0100
++++ config_office/configure.in	2007-01-08 16:36:33.000000000 +0100
+@@ -1340,9 +1340,9 @@
+ fi
+
+ if test "$GCC" = "yes"; then
+-   AC_MSG_CHECKING( for --hash-style=both linker support )
++   AC_MSG_CHECKING( for --hash-style=gnu linker support )
+    hash_style_ldflags_save=$LDFLAGS
+-   LDFLAGS="$LDFLAGS -Wl,--hash-style=both"
++   LDFLAGS="$LDFLAGS -Wl,--hash-style=gnu"
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([
+    #include <stdio.h>
+    ],[
+--- icu/makefile.mk-old     2007-07-31 15:53:23.000000000 +0200
++++ icu/makefile.mk 2007-07-31 15:53:31.000000000 +0200
+@@ -86,7 +86,7 @@
+ .ENDIF                 # "$(OS)"=="SOLARIS"
+
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LDFLAGSADD += -Wl,--hash-style=both
++LDFLAGSADD += -Wl,--hash-style=gnu
+ .ENDIF
+
+ CONFIGURE_DIR=source
+--- stlport/makefile.mk-old     2007-07-31 15:54:11.000000000 +0200
++++ stlport/makefile.mk 2007-07-31 15:54:19.000000000 +0200
+@@ -155,7 +155,7 @@
+        BUILD_FLAGS+= -j$(MAXPROCESS)
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-CXX+= -Wl,--hash-style=both
++CXX+= -Wl,--hash-style=gnu
+ .ENDIF
+
+ .IF "$(COM)"=="C52"
+--- solenv/inc/unxlngi6.mk-old     2007-07-31 15:57:41.000000000 +0200
++++ solenv/inc/unxlngi6.mk 2007-07-31 15:57:47.000000000 +0200
+@@ -199,7 +199,7 @@
+ STDSHLCUIMT+=-ltcmalloc
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=gnu
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- solenv/inc/unxlngppc.mk-old    2007-07-31 15:57:47.000000000 +0200
++++ solenv/inc/unxlngppc.mk        2007-07-31 15:57:52.000000000 +0200
+@@ -78,7 +78,7 @@
+ CFLAGSENABLESYMBOLS=-g
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=gnu
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- solenv/inc/unxlngs.mk-old      2007-07-31 15:57:52.000000000 +0200
++++ solenv/inc/unxlngs.mk  2007-07-31 15:57:59.000000000 +0200
+@@ -80,7 +80,7 @@
+ CFLAGSENABLESYMBOLS=-g
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=gnu
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- solenv/inc/unxlngx6.mk-old     2007-07-31 15:57:59.000000000 +0200
++++ solenv/inc/unxlngx6.mk 2007-07-31 15:58:06.000000000 +0200
+@@ -84,7 +84,7 @@
+
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=gnu
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wmf-pattern-brush.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wmf-pattern-brush.diff
@@ -0,0 +1,246 @@
+diff -rup svtools-clean/source/filter.vcl/wmf/enhwmf.cxx svtools/source/filter.vcl/wmf/enhwmf.cxx
+--- svtools-clean/source/filter.vcl/wmf/enhwmf.cxx	2007-06-04 15:15:09.000000000 +0200
++++ svtools/source/filter.vcl/wmf/enhwmf.cxx	2007-06-04 17:12:21.000000000 +0200
+@@ -864,7 +1005,7 @@
+ 						Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
+ 						aBitmap.Crop( aCropRect );
+ 					}
+- 					aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop ), LIST_APPEND );
++ 					aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ), LIST_APPEND );
+ 				}
+ 			}
+ 			break;
+@@ -915,7 +1056,7 @@
+ 						Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) );
+ 						aBitmap.Crop( aCropRect );
+ 					}
+-					aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop ), LIST_APPEND );
++					aBmpSaveList.Insert( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ), LIST_APPEND );
+ 				}
+ 			}
+ 			break;
+@@ -1152,6 +1153,49 @@ BOOL EnhWMFReader::ReadEnhWMF()
+             }
+             break;
+ 
++            case EMR_CREATEDIBPATTERNBRUSHPT :
++            {
++                static int count = 0;
++				UINT32	nStart = pWMF->Tell() - 8;
++                Bitmap aBitmap;
++
++				*pWMF >> nIndex;
++
++				if ( ( nIndex & ENHMETA_STOCK_OBJECT ) == 0 )
++				{
++                    UINT32 usage, offBmi, cbBmi, offBits, cbBits;
++
++                    *pWMF >> usage;
++                    *pWMF >> offBmi;
++                    *pWMF >> cbBmi;
++                    *pWMF >> offBits;
++                    *pWMF >> cbBits;
++
++                    if ( offBmi )
++                    {
++                        UINT32	nSize = cbBmi + cbBits + 14;
++                        char*	pBuf = new char[ nSize ];
++
++                        SvMemoryStream aTmp( pBuf, nSize, STREAM_READ | STREAM_WRITE );
++                        aTmp.ObjectOwnsMemory( TRUE );
++                        aTmp << (BYTE)'B'
++                             << (BYTE)'M'
++                             << (UINT32)cbBits
++                             << (UINT16)0
++                             << (UINT16)0
++                             << (UINT32)cbBmi + 14;
++                        pWMF->Seek( nStart + offBmi );
++                        pWMF->Read( pBuf + 14, cbBmi );
++                        pWMF->Seek( nStart + offBits );
++                        pWMF->Read( pBuf + 14 + cbBmi, cbBits );
++                        aTmp.Seek( 0 );
++                        aBitmap.Read( aTmp, TRUE );
++                    }
++				}
++
++                pOut->CreateObject( nIndex, GDI_BRUSH, new WinMtfFillStyle( aBitmap ) );
++            }
++            break;
+ 
+ #ifdef WIN_MTF_ASSERT
+             default :                           WinMtfAssertHandler( "Unknown Meta Action" );       break;
+@@ -1171,7 +1215,6 @@ BOOL EnhWMFReader::ReadEnhWMF()
+ 			case EMR_ANGLEARC :     	        WinMtfAssertHandler( "AngleArc" );                  break;
+ 			case EMR_SETCOLORADJUSTMENT :       WinMtfAssertHandler( "SetColorAdjustment" );	    break;
+ 			case EMR_POLYDRAW16 :		        WinMtfAssertHandler( "PolyDraw16" );                break;
+-			case EMR_CREATEDIBPATTERNBRUSHPT :  WinMtfAssertHandler( "CreateDibPatternBrushPt" );   break;
+ 			case EMR_POLYTEXTOUTA : 		    WinMtfAssertHandler( "PolyTextOutA" );              break;
+ 			case EMR_POLYTEXTOUTW :			    WinMtfAssertHandler( "PolyTextOutW" );              break;
+ 			case EMR_CREATECOLORSPACE :         WinMtfAssertHandler( "CreateColorSpace" );	        break;
+diff -rup svtools-clean/source/filter.vcl/wmf/winmtf.cxx svtools/source/filter.vcl/wmf/winmtf.cxx
+--- svtools-clean/source/filter.vcl/wmf/winmtf.cxx	2007-06-04 15:15:09.000000000 +0200
++++ svtools/source/filter.vcl/wmf/winmtf.cxx	2007-06-04 17:09:48.000000000 +0200
+@@ -39,6 +39,7 @@
+ 
+ #include "winmtf.hxx"
+ #include <vcl/metaact.hxx>
++#include <vcl/graphictools.hxx>
+ #ifndef _SV_METRIC_HXX
+ #include <vcl/metric.hxx>
+ #endif
+@@ -1046,7 +1048,8 @@ void WinMtfOutput::UpdateFillStyle()
+ 	if (!( maLatestFillStyle == maFillStyle ) )
+ 	{
+ 		maLatestFillStyle = maFillStyle;
+-		mpGDIMetaFile->AddAction( new MetaFillColorAction( maFillStyle.aFillColor, !maFillStyle.bTransparent ) );
++        if (maFillStyle.aType == FillStyleSolid)
++            mpGDIMetaFile->AddAction( new MetaFillColorAction( maFillStyle.aFillColor, !maFillStyle.bTransparent ) );
+ 	}
+ }
+ 
+@@ -1374,7 +1377,35 @@ void WinMtfOutput::DrawPolygon( Polygon&
+ 			else
+ 			{
+ 				UpdateLineStyle();
+-				mpGDIMetaFile->AddAction( new MetaPolygonAction( rPolygon ) );
++
++                if (maLatestFillStyle.aType != FillStylePattern)
++                    mpGDIMetaFile->AddAction( new MetaPolygonAction( rPolygon ) );
++                else {
++                    SvtGraphicFill aFill = SvtGraphicFill( PolyPolygon( rPolygon ),
++                                                           Color(),
++                                                           0.0,
++                                                           SvtGraphicFill::fillNonZero,
++                                                           SvtGraphicFill::fillTexture,
++                                                           SvtGraphicFill::Transform(),
++                                                           true,
++                                                           SvtGraphicFill::hatchSingle,
++                                                           Color(),
++                                                           SvtGraphicFill::gradientLinear,
++                                                           Color(),
++                                                           Color(),
++                                                           0,
++                                                           Graphic (maLatestFillStyle.aBmp) );
++
++                    SvMemoryStream  aMemStm;
++
++                    aMemStm << aFill;
++
++                    mpGDIMetaFile->AddAction( new MetaCommentAction( "XPATHFILL_SEQ_BEGIN", 0,
++                                                            static_cast<const BYTE*>(aMemStm.GetData()),
++                                                            aMemStm.Seek( STREAM_SEEK_TO_END ) ) );
++                    mpGDIMetaFile->AddAction( new MetaCommentAction( "XPATHFILL_SEQ_END" ) );
++                }
++
+ 			}
+ 		}
+ 	}
+@@ -1717,7 +1747,7 @@ void WinMtfOutput::ResolveBitmapActions(
+ 			if ( ( nRasterOperation & 0xaa ) != ( ( nRasterOperation & 0x55 ) << 1 ) )
+ 				nUsed |= 4;		// destination is used
+ 
+-			if ( (nUsed & 1) && (( nUsed & 2 ) == 0) )
++			if ( (nUsed & 1) && (( nUsed & 2 ) == 0) && nWinRop != PATINVERT )
+ 			{	// patterns aren't well supported yet
+ 				sal_uInt32 nOldRop = SetRasterOp( ROP_OVERPAINT );	// in this case nRasterOperation is either 0 or 0xff
+ 				UpdateFillStyle();
+diff -rup svtools-clean/source/filter.vcl/wmf/winmtf.hxx svtools/source/filter.vcl/wmf/winmtf.hxx
+--- svtools-clean/source/filter.vcl/wmf/winmtf.hxx	2007-06-04 15:15:09.000000000 +0200
++++ svtools/source/filter.vcl/wmf/winmtf.hxx	2007-06-04 17:11:13.000000000 +0200
+@@ -390,10 +390,17 @@ struct WinMtfFontStyle
+ 
+ // -----------------------------------------------------------------------------
+ 
++typedef enum {
++    FillStyleSolid,
++    FillStylePattern
++} WinMtfFillStyleType;
++
+ struct WinMtfFillStyle
+ {
+-	Color	aFillColor;
+-	BOOL	bTransparent;
++	Color	            aFillColor;
++	BOOL	            bTransparent;
++    WinMtfFillStyleType aType;
++    Bitmap              aBmp;
+ 
+ 	WinMtfFillStyle() :
+ 		aFillColor	( Color( COL_BLACK ) ),
+@@ -403,16 +410,23 @@ struct WinMtfFillStyle
+ 
+ 	WinMtfFillStyle( const Color& rColor, BOOL bTrans = FALSE ) :
+ 		aFillColor	( rColor ),
+-		bTransparent( bTrans )
++		bTransparent( bTrans ),
++        aType       ( FillStyleSolid )
++	{
++	};
++
++	WinMtfFillStyle( Bitmap& rBmp ) :
++		aBmp ( rBmp ),
++        aType( FillStylePattern )
+ 	{
+ 	};
+ 
+ 	BOOL operator==( const WinMtfFillStyle& rStyle )
+-		{ return ( ( aFillColor == rStyle.aFillColor ) && ( bTransparent == rStyle.bTransparent ) ); };
++		{ return ( ( aFillColor == rStyle.aFillColor ) && ( bTransparent == rStyle.bTransparent ) && ( aType == rStyle.aType ) ); };
+ 	BOOL operator==( WinMtfFillStyle* pStyle )
+-		{ return ( ( aFillColor == pStyle->aFillColor ) && ( bTransparent == pStyle->bTransparent ) ); };
+-	void operator=( const WinMtfFillStyle& rStyle ) { aFillColor = rStyle.aFillColor; bTransparent = rStyle.bTransparent; };
+-	void operator=( WinMtfFillStyle* pStyle ) { aFillColor = pStyle->aFillColor; bTransparent = pStyle->bTransparent; };
++		{ return ( ( aFillColor == pStyle->aFillColor ) && ( bTransparent == pStyle->bTransparent ) && ( aType == pStyle->aType ) ); };
++	void operator=( const WinMtfFillStyle& rStyle ) { aFillColor = rStyle.aFillColor; bTransparent = rStyle.bTransparent; aBmp = rStyle.aBmp; aType = rStyle.aType; };
++	void operator=( WinMtfFillStyle* pStyle ) { aFillColor = pStyle->aFillColor; bTransparent = pStyle->bTransparent; aBmp = pStyle->aBmp; aType = pStyle->aType; };
+ };
+ 
+ // -----------------------------------------------------------------------------
+@@ -504,12 +518,13 @@ typedef ::boost::shared_ptr< SaveStruct 
+ 
+ struct BSaveStruct
+ {
+-	Bitmap		aBmp;
+-	Rectangle	aOutRect;
+-	UINT32		nWinRop;
++	Bitmap		    aBmp;
++	Rectangle	    aOutRect;
++	UINT32		    nWinRop;
++    WinMtfFillStyle aStyle;
+ 
+-				BSaveStruct( const Bitmap& rBmp, const Rectangle& rOutRect, UINT32 nRop ) :
+-					aBmp( rBmp ), aOutRect( rOutRect ), nWinRop( nRop ){};
++				BSaveStruct( const Bitmap& rBmp, const Rectangle& rOutRect, UINT32 nRop, WinMtfFillStyle& rStyle ) :
++					aBmp( rBmp ), aOutRect( rOutRect ), nWinRop( nRop ), aStyle ( rStyle ){};
+ };
+ 
+ // -----------------------------------------------------------------------------
+@@ -664,6 +679,7 @@ class WinMtfOutput
+ 		void				DeleteObject( INT32 nIndex );
+ 		void				SelectObject( INT32 nIndex );
+ 		CharSet				GetCharSet(){ return maFont.GetCharSet(); };
++        WinMtfFillStyle&    GetFillStyle () { return maFillStyle; }
+ 		void				SetFont( const Font& rFont );
+ 		const Font&			GetFont() const;
+ 		void				SetTextLayoutMode( const sal_uInt32 nLayoutMode );
+diff -rup svtools-clean/source/filter.vcl/wmf/winwmf.cxx svtools/source/filter.vcl/wmf/winwmf.cxx
+--- svtools-clean/source/filter.vcl/wmf/winwmf.cxx	2007-06-04 15:15:09.000000000 +0200
++++ svtools/source/filter.vcl/wmf/winwmf.cxx	2007-06-04 15:16:38.000000000 +0200
+@@ -570,7 +570,7 @@ void WMFReader::ReadRecordParams( USHORT
+                         aBmp.Crop( aCropRect );
+                     }
+ 					Rectangle aDestRect( aPoint, Size( nSxe, nSye ) );
+-				    aBmpSaveList.Insert( new BSaveStruct( aBmp, aDestRect, nWinROP ), LIST_APPEND );
++				    aBmpSaveList.Insert( new BSaveStruct( aBmp, aDestRect, nWinROP, pOut->GetFillStyle () ), LIST_APPEND );
+ 				}
+ 			}
+ 		}		
+@@ -620,7 +620,7 @@ void WMFReader::ReadRecordParams( USHORT
+                         Rectangle aCropRect( Point( nSx, nSy ), Size( nSxe, nSye ) );
+                         aBmp.Crop( aCropRect );
+                     }
+-				    aBmpSaveList.Insert( new BSaveStruct( aBmp, aDestRect, nWinROP ), LIST_APPEND );
++				    aBmpSaveList.Insert( new BSaveStruct( aBmp, aDestRect, nWinROP, pOut->GetFillStyle () ), LIST_APPEND );
+                 }
+ 			}
+ 		}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svtools-default-new-document.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svtools-default-new-document.diff
@@ -0,0 +1,11 @@
+--- svtools/source/contnr/templwin.cxx.bak	2005-08-12 12:00:28.000000000 +0530
++++ svtools/source/contnr/templwin.cxx	2005-08-12 15:40:53.766509184 +0530
+@@ -1650,7 +1650,7 @@
+ void SvtTemplateWindow::ReadViewSettings()
+ {
+ 	// defaults
+-	sal_Int32 nSelectedGroup	=	ICON_POS_TEMPLATES;
++	sal_Int32 nSelectedGroup	=	ICON_POS_NEWDOC;
+ 	sal_Int32 nSelectedView		=	TI_DOCTEMPLATE_DOCINFO;
+ 	double nSplitRatio			=	0.5;
+ 	::rtl::OUString sLastFolder;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-svtools.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-svtools.diff
@@ -0,0 +1,22 @@
+--- svtools/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ svtools/prj/tests.lst	2007-09-07 16:56:15.000000000 +0200
+@@ -0,0 +1,8 @@
++st   svtools\qa                                         nmake - all st_qa st_util NULL
++#does not build: st   svtools\qa\unoapi                                  nmake - all st_qa_unoapi st_util NULL
++
++# older tests:
++#does not link: st   svtools\source\config\test                         nmake - all st_source_config_test st_util NULL
++st   svtools\workben\cui                                nmake - all st_workben_cui st_util NULL
++st   svtools\workben                                    nmake - all st_workben st_util NULL
++st   svtools\workben\treecontrol                        nmake - all st_workben_treecontrol st_util NULL
+--- svtools/source/config/test/test.cxx	2007-06-27 23:18:32.000000000 +0200
++++ svtools/source/config/test/test.cxx	2007-09-07 12:33:00.000000000 +0200
+@@ -98,7 +98,7 @@
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+-#include <rtl/ustring>
++#include <rtl/ustring.hxx>
+ #endif
+ 
+ #ifndef _RTL_USTRBUF_HXX_
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-stlport51-oox-map.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-stlport51-oox-map.diff
@@ -0,0 +1,268 @@
+--- oox/source/ppt/animationspersist.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/animationspersist.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -110,7 +110,7 @@
+ 			// TODO
+ 			break;
+ 		case XML_sndTgt:
+-			aProperties[ NP_TARGET ] = makeAny(msValue);
++			aProperties[ int(NP_TARGET) ] = makeAny(msValue);
+ 			break;
+ 		case XML_spTgt:
+ 		{
+@@ -126,8 +126,8 @@
+ 				{
+ 					rTarget <<= xShape;
+ 					maShapeTarget.convert(rTarget, nSubType);
+-					aProperties[ NP_SUBITEM ] = makeAny( nSubType );
+-					aProperties[ NP_TARGET ] = rTarget;
++					aProperties[ int(NP_SUBITEM) ] = makeAny( nSubType );
++					aProperties[ int(NP_TARGET) ] = rTarget;
+ 				}
+ 			}
+ 			break;
+--- oox/source/ppt/timenodelistcontext.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/timenodelistcontext.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -511,8 +511,8 @@
+ 				if( aElement == mnElement )
+ 				{
+ 					NodePropertyMap & pProps(mpNode->getNodeProperties());
+-					pProps[ NP_DIRECTION ] = makeAny( mnDir == XML_cw );
+-					pProps[ NP_COLORINTERPOLATION ] = makeAny( mnColorSpace == XML_hsl ? AnimationColorSpace::HSL : AnimationColorSpace::RGB );
++					pProps[ int(NP_DIRECTION) ] = makeAny( mnDir == XML_cw );
++					pProps[ int(NP_COLORINTERPOLATION) ] = makeAny( mnColorSpace == XML_hsl ? AnimationColorSpace::HSL : AnimationColorSpace::RGB );
+ 					if( mbHasToClr )
+ 					{
+ 						mpNode->setTo( Any( mnToClr ) );
+@@ -633,7 +633,7 @@
+ 						nEnum = AnimationCalcMode::DISCRETE;
+ 						break;
+ 					}
+-					aProps[ NP_CALCMODE ] = makeAny(nEnum);
++					aProps[ int(NP_CALCMODE) ] = makeAny(nEnum);
+ 				}
+ 				OUString aStr;
+ 				aStr = xAttribs->getOptionalValue( XML_from );				
+@@ -680,11 +680,11 @@
+ 						}
+ 						else 
+ 						{
+-							aProps[ NP_FORMULA ] <<= iter->msFormula;
++							aProps[ int(NP_FORMULA) ] <<= iter->msFormula;
+ 						}
+ 					}
+-					aProps[ NP_VALUES ] <<= aValues;
+-					aProps[ NP_KEYTIMES ] <<= aKeyTimes;
++					aProps[ int(NP_VALUES) ] <<= aValues;
++					aProps[ int(NP_KEYTIMES) ] <<= aKeyTimes;
+ 				}
+ 			}
+ 
+--- oox/source/ppt/commontimenodecontext.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/commontimenodecontext.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -85,14 +85,14 @@
+ 		PropertyMap & aUserData = pNode->getUserData();
+ 
+ 		nInt = attribs.getInteger( XML_accel, 0 );
+-		aProps[ NP_ACCELERATION ] = makeAny( ( static_cast<double>(nInt) / 100000.0 ) );
++		aProps[ int(NP_ACCELERATION) ] = makeAny( ( static_cast<double>(nInt) / 100000.0 ) );
+ 		
+ 		if( attribs.hasAttribute( XML_afterEffect ) ) 
+ 		{
+ 			aUserData[ CREATE_OUSTRING( "after-effect" ) ] 
+ 				= makeAny( attribs.getBool( XML_afterEffect, false ) );
+ 		}
+-		aProps[ NP_AUTOREVERSE ] = makeAny( attribs.getBool( XML_autoRev, false ) );
++		aProps[ int(NP_AUTOREVERSE) ] = makeAny( attribs.getBool( XML_autoRev, false ) );
+ 		
+ 		// TODO
+ 		if( attribs.hasAttribute( XML_bldLvl ) ) 
+@@ -100,7 +100,7 @@
+ 			attribs.getInteger( XML_bldLvl, 0 );
+ 		}
+ 		nInt = attribs.getInteger( XML_decel, 0 );
+-		aProps[ NP_DECELERATE ] <<= ( static_cast<double>(nInt) / 100000.0 );
++		aProps[ int(NP_DECELERATE) ] <<= ( static_cast<double>(nInt) / 100000.0 );
+ 		// TODO
+ 		if( attribs.hasAttribute( XML_display ) ) 
+ 		{
+@@ -110,7 +110,7 @@
+ 		{
+ 			// ST_TLTime
+ 			double fDuration = static_cast<double>(attribs.getUnsignedInteger(  XML_dur, 0 ) ) / 1000.0;
+-			aProps[ NP_DURATION ] <<= makeAny( fDuration );
++			aProps[ int(NP_DURATION) ] <<= makeAny( fDuration );
+ 		}
+ 		// TODO
+ 		if( attribs.hasAttribute( XML_evtFilter ) )
+@@ -142,7 +142,7 @@
+ 					nEnum = AnimationFill::DEFAULT;
+ 					break;
+ 				}
+-				aProps[ NP_FILL ] <<=  (sal_Int16)nEnum;
++				aProps[ int(NP_FILL) ] <<=  (sal_Int16)nEnum;
+ 			}
+ 		}
+ 		if( attribs.hasAttribute( XML_grpId ) )
+@@ -244,13 +244,13 @@
+ 			// ST_TLTime
+ 			double fCount = (double)attribs.getUnsignedInteger( XML_repeatCount, 1000 ) / 1000.0;
+ 			/* see pptinanimation */
+-			aProps[ NP_REPEATCOUNT ] <<= (fCount < ((float)3.40282346638528860e+38)) ? makeAny( (double)fCount ) : makeAny( Timing_INDEFINITE );
++			aProps[ int(NP_REPEATCOUNT) ] <<= (fCount < ((float)3.40282346638528860e+38)) ? makeAny( (double)fCount ) : makeAny( Timing_INDEFINITE );
+ 		}
+ 		if( attribs.hasAttribute(  XML_repeatDur ) ) 
+ 		{
+ 			// ST_TLTime
+ 			double fDuration = (double)attribs.getUnsignedInteger( XML_repeatDur, 0 ) / 1000.0;
+-			aProps[ NP_REPEATDURATION ] <<= makeAny( fDuration );
++			aProps[ int(NP_REPEATDURATION) ] <<= makeAny( fDuration );
+ 		}
+ 		// ST_TLTimeNodeRestartType
+ 		nInt = xAttribs->getOptionalValueToken( XML_restart, 0 );
+@@ -273,7 +273,7 @@
+ 				nEnum =	AnimationRestart::DEFAULT;
+ 				break;
+ 			}
+-			aProps[ NP_RESTART ] <<= (sal_Int16)nEnum;
++			aProps[ int(NP_RESTART) ] <<= (sal_Int16)nEnum;
+ 		}
+ 		// ST_Percentage TODO
+ 		xAttribs->getOptionalValue( XML_spd /*"10000" */ );
+--- oox/source/ppt/timenode.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/timenode.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -143,7 +143,7 @@
+ 				maUserData.makeSequence(aUserDataSeq);
+ 				if( aUserDataSeq.getLength() )
+ 				{
+-					maNodeProperties[ NP_USERDATA ] = makeAny(aUserDataSeq);
++					maNodeProperties[ int(NP_USERDATA) ] = makeAny(aUserDataSeq);
+ 				}
+ 
+ 				Reference< XAnimate > xAnimate( xNode, UNO_QUERY );
+@@ -343,18 +343,18 @@
+ 
+ 	void TimeNode::setTo( const Any & aTo )
+ 	{
+-		maNodeProperties[ NP_TO ] = aTo;
++		maNodeProperties[ int(NP_TO) ] = aTo;
+ 	}
+ 
+ 
+ 	void TimeNode::setFrom( const Any & aFrom )
+ 	{
+-		maNodeProperties[ NP_FROM ] = aFrom;
++		maNodeProperties[ int(NP_FROM) ] = aFrom;
+ 	}
+ 
+ 	void TimeNode::setBy( const Any & aBy )
+ 	{
+-		maNodeProperties[ NP_BY ] = aBy;
++		maNodeProperties[ int(NP_BY) ] = aBy;
+ 	}
+ 
+ 
+--- oox/source/ppt/commonbehaviorcontext.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/commonbehaviorcontext.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -97,7 +97,7 @@
+ 					}
+ 					sAttributes.append( *iter );
+ 				}
+-				mpNode->getNodeProperties()[ NP_ATTRIBUTENAME ]
++				mpNode->getNodeProperties()[ int(NP_ATTRIBUTENAME) ]
+ 					= makeAny( sAttributes.makeStringAndClear() );
+ 			}
+ 			break;
+--- oox/source/ppt/timenodelistcontext.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/timenodelistcontext.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -328,7 +328,7 @@
+ 							}
+ 							break;
+ 						}
+-						mpNode->getNodeProperties()[ NP_COMMAND ] = makeAny((sal_Int16)nCommand);
++						mpNode->getNodeProperties()[ int(NP_COMMAND) ] = makeAny((sal_Int16)nCommand);
+ 						if( nCommand == EffectCommands::CUSTOM )
+ 						{
+ 							OSL_TRACE("OOX: CmdTimeNodeContext::endFastElement(), unknown command!");
+@@ -338,7 +338,7 @@
+ 						if( aParamValue.Value.hasValue() )
+ 						{
+ 							Sequence< NamedValue > aParamSeq( &aParamValue, 1 );
+-							mpNode->getNodeProperties()[ NP_PARAMETER ] = makeAny( aParamSeq );
++							mpNode->getNodeProperties()[ int(NP_PARAMETER) ] = makeAny( aParamSeq );
+ 						}
+ 					}
+ 					catch( RuntimeException& )
+@@ -701,7 +701,7 @@
+ 				AttributeList attribs( xAttribs );
+ 				// TODO what to do with mbZoomContents
+ 				mbZoomContents = attribs.getBool( XML_zoomContents, false );
+-				pNode->getNodeProperties()[ NP_TRANSFORMTYPE ] 
++				pNode->getNodeProperties()[ int(NP_TRANSFORMTYPE) ] 
+ 					= makeAny((sal_Int16)AnimationTransformType::SCALE);
+ 			}
+ 
+@@ -792,7 +792,7 @@
+ 			{
+ 				AttributeList attribs( xAttribs );
+ 
+-				pNode->getNodeProperties()[ NP_TRANSFORMTYPE ] 
++				pNode->getNodeProperties()[ int(NP_TRANSFORMTYPE) ] 
+ 					= makeAny((sal_Int16)AnimationTransformType::ROTATE);
+ 				// TODO make sure the units are OK
+ 				if(attribs.hasAttribute( XML_by ) ) 
+@@ -848,7 +848,7 @@
+ 											  const TimeNodePtr & pNode ) throw()
+ 			: TimeNodeContext( xHandler, aElement, xAttribs, pNode )
+ 			{
+-				pNode->getNodeProperties()[ NP_TRANSFORMTYPE ] 
++				pNode->getNodeProperties()[ int(NP_TRANSFORMTYPE) ] 
+ 					= makeAny((sal_Int16)AnimationTransformType::TRANSLATE);
+ 				
+ 				AttributeList attribs( xAttribs );
+@@ -868,7 +868,7 @@
+ 				OUString aStr = xAttribs->getOptionalValue( XML_path );
+ 				aStr = aStr.replace( 'E', ' ' );
+ 				aStr = aStr.trim();
+-				pNode->getNodeProperties()[ NP_PATH ] = makeAny(aStr);
++				pNode->getNodeProperties()[ int(NP_PATH) ] = makeAny(aStr);
+ 
+ 				// ST_TLAnimateMotionPathEditMode{ fixed, relative }
+ 				mnPathEditMode = xAttribs->getOptionalValueToken( XML_pathEditMode, 0 );
+--- oox/source/ppt/commontimenodecontext.cxx.orig	2007-07-24 19:57:08.000000000 +0200
++++ oox/source/ppt/commontimenodecontext.cxx	2007-07-24 19:57:08.000000000 +0200
+@@ -296,7 +296,7 @@
+ 			// TODO I don't know what to do with the other types...
+ 			if( maEndSyncValue.mnCondition == ( NMSP_PPT|XML_rtn ) )
+ 			{
+-				mpNode->getNodeProperties()[ NP_ENDSYNC ] <<= maEndSyncValue.maValue;
++				mpNode->getNodeProperties()[ int(NP_ENDSYNC) ] <<= maEndSyncValue.maValue;
+ 			}
+ 			// TODO push maStCondList and maEndCondList
+ 		}
+@@ -352,7 +352,7 @@
+ 					nEnum = TextAnimationType::BY_WORD;
+ 					break;
+ 				}
+-				mpNode->getNodeProperties()[ NP_ITERATETYPE ] <<= nEnum;
++				mpNode->getNodeProperties()[ int(NP_ITERATETYPE) ] <<= nEnum;
+ 			}
+ 			// in case of exception we ignore the whole tag.
+ 			AttributeList attribs( xAttribs );		
+@@ -367,7 +367,7 @@
+ 				AttributeList attribs( xAttribs );			
+ 				double fTime = attribs.getUnsignedInteger( XML_val, 0 );
+ 				// time in ms. property is in % TODO
+-				mpNode->getNodeProperties()[ NP_ITERATEINTERVAL ] <<= fTime;
++				mpNode->getNodeProperties()[ int(NP_ITERATEINTERVAL) ] <<= fTime;
+ 			}
+ 			break;
+ 		case NMSP_PPT|XML_tmPct:
+@@ -375,7 +375,7 @@
+ 			{
+ 				AttributeList attribs( xAttribs );			
+ 				double fPercent = (double)attribs.getUnsignedInteger( XML_val, 0 ) / 100000.0;
+-				mpNode->getNodeProperties()[ NP_ITERATEINTERVAL ] <<= fPercent;
++				mpNode->getNodeProperties()[ int(NP_ITERATEINTERVAL) ] <<= fPercent;
+ 			}
+ 			break;
+ 		default:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wizards-form-fit-french-localization.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wizards-form-fit-french-localization.diff
@@ -0,0 +1,11 @@
+--- wizards/com/sun/star/wizards/form/Finalizer.java.old	2006-04-07 14:41:55.000000000 +0200
++++ wizards/com/sun/star/wizards/form/Finalizer.java	2008-05-14 18:52:51.000000000 +0200
+@@ -75,7 +75,7 @@ public class Finalizer {
+         );
+         CurUnoDialog.insertLabel("lblProceed", 
+           new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"},
+-          new Object[] { UIConsts.INTEGERS[8], slblProceed, new Integer(97), new Integer(62),UIConsts.INTEGERS[8], new Short(curtabindex++), new Integer(154)}
++          new Object[] { UIConsts.INTEGERS[8], slblProceed, new Integer(97), new Integer(62),UIConsts.INTEGERS[8], new Short(curtabindex++), new Integer(185)}
+         );
+         XRadioButton optWorkWithForm = CurUnoDialog.insertRadioButton("optWorkWithForm", null,
+           new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width"},
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svtools-unsort-template-dialogentries.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svtools-unsort-template-dialogentries.diff
@@ -0,0 +1,167 @@
+Index: svtools/source/contnr/templwin.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/contnr/templwin.cxx,v
+retrieving revision 1.66
+diff -u -r1.66 templwin.cxx
+--- svtools/source/contnr/templwin.cxx	21 Apr 2005 11:40:46 -0000	1.66
++++ svtools/source/contnr/templwin.cxx	23 Aug 2005 08:38:10 -0000
+@@ -222,6 +222,7 @@
+ using namespace svtools;
+ 
+ extern ::rtl::OUString CreateExactSizeText_Impl( sal_Int64 nSize ); // fileview.cxx
++#define aSeparatorStr   "----------------------------------"
+ 
+ #define SPLITSET_ID			0
+ #define COLSET_ID			1
+@@ -708,7 +710,7 @@
+ 	Window( pParent, WB_DIALOGCONTROL | WB_TABSTOP | WB_BORDER | WB_3DLOOK ),
+ 
+ 	rParent				( *pParent ),
+-	aFileView			( this, SvtResId( CTRL_FILEVIEW ), FILEVIEW_SHOW_TITLE ),
++	aFileView			( this, SvtResId( CTRL_FILEVIEW ), FILEVIEW_SHOW_NONE ),
+ 	bIsTemplateFolder	( sal_False )
+ 
+ {
+@@ -766,9 +768,14 @@
+ 	for ( i = 0; i < nCount; ++i )
+ 	{
+ 		GetMenuEntry_Impl( aDynamicMenuEntries[i], aTitle, aURL, aTargetFrame, aImageURL );
+-
+-        if ( aURL == sSeparator || aURL == sSlotURL )
++		if( aURL == sSlotURL )
+ 			continue;
++		if( aURL == sSeparator )
++		{
++			String aSeparator( ASCII_STR( aSeparatorStr ) );
++			::rtl::OUString* pSeparator = new ::rtl::OUString( aSeparator );
++			aNewDocs.Insert( pSeparator, LIST_APPEND );
++		}
+ 		else
+ 		{
+ 			// title
+Index: svtools/source/contnr/fileview.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/contnr/fileview.cxx,v
+retrieving revision 1.62
+diff -u -r1.62 fileview.cxx
+--- svtools/source/contnr/fileview.cxx	13 Apr 2005 10:50:55 -0000	1.62
++++ svtools/source/contnr/fileview.cxx	23 Aug 2005 14:38:38 -0000
+@@ -211,6 +211,8 @@
+ 
+ DECLARE_LIST( StringList_Impl, OUString* )
+ 
++#define aSeparatorStr  "----------------------------------"
++
+ #define ROW_HEIGHT	17	// the height of a row has to be a little higher than the bitmap
+ #define QUICK_SEARCH_TIMEOUT    1500    // time in mSec before the quicksearch string will be reseted
+ 
+@@ -837,6 +840,7 @@
+     mbEnableDelete  	( sal_True )
+ 
+ {
++	sal_Bool bViewHeader = true;
+ 	Size aBoxSize = pParentWin->GetSizePixel();
+ 	mpHeaderBar = new HeaderBar( pParentWin, WB_BUTTONSTYLE | WB_BOTTOMBORDER );
+ 	mpHeaderBar->SetPosSizePixel( Point( 0, 0 ), mpHeaderBar->CalcWindowSizePixel() );
+@@ -849,6 +853,8 @@
+ 		mpHeaderBar->InsertItem( COLUMN_SIZE, String( SvtResId( STR_SVT_FILEVIEW_COLUMN_SIZE ) ), 80, nBits );
+ 		mpHeaderBar->InsertItem( COLUMN_DATE, String( SvtResId( STR_SVT_FILEVIEW_COLUMN_DATE ) ), 500, nBits );
+ 	}
++	if( ( nFlags & FILEVIEW_SHOW_NONE ) == FILEVIEW_SHOW_NONE )
++		bViewHeader = false;
+ 	else
+ 		mpHeaderBar->InsertItem( COLUMN_TITLE, String( SvtResId( STR_SVT_FILEVIEW_COLUMN_TITLE ) ), 600, nBits );
+ 
+@@ -860,7 +866,8 @@
+ 	SetEntryHeight( ROW_HEIGHT );
+ 
+ 	Show();
+-	mpHeaderBar->Show();
++	if( bViewHeader )
++		mpHeaderBar->Show();
+ 
+     maResetQuickSearch.SetTimeout( QUICK_SEARCH_TIMEOUT );
+     maResetQuickSearch.SetTimeoutHdl( LINK( this, ViewTabListBox_Impl, ResetQuickSearch_Impl ) );
+@@ -1209,6 +1216,7 @@
+ 
+ 	mpImp = new SvtFileView_Impl( this, nFlags, bOnlyFolder );
+     mpImp->mpView->ForbidEmptyText();
++	SetSortColumn( true );
+ 
+     long pTabs[] = { 5, 20, 180, 320, 400, 600 };
+ 	mpImp->mpView->SetTabs( &pTabs[0], MAP_PIXEL );
+@@ -1228,6 +1236,7 @@
+ {
+ 	mpImp = new SvtFileView_Impl( this, nFlags,
+                                   ( nFlags & FILEVIEW_ONLYFOLDER ) == FILEVIEW_ONLYFOLDER );
++	SetSortColumn( true );
+ 
+     if ( ( nFlags & FILEVIEW_SHOW_ALL ) == FILEVIEW_SHOW_ALL )
+ 	{
+@@ -1241,7 +1250,8 @@
+ 		long pTabs[] = { 2, 20, 600 };
+ 		mpImp->mpView->SetTabs( &pTabs[0], MAP_PIXEL );
+ 	}
+-
++	if ( ( nFlags & FILEVIEW_SHOW_NONE ) == FILEVIEW_SHOW_NONE )
++        SetSortColumn( false );
+ 	if ( ( nFlags & FILEVIEW_MULTISELECTION ) == FILEVIEW_MULTISELECTION )
+ 		mpImp->mpView->SetSelectionMode( MULTIPLE_SELECTION );
+ 
+@@ -1483,7 +1493,8 @@
+ 
+     mpImp->Clear();
+     mpImp->CreateVector_Impl( aContents );
+-    mpImp->SortFolderContent_Impl();
++	if( GetSortColumn() )
++	    mpImp->SortFolderContent_Impl();
+ 
+     mpImp->OpenFolder_Impl();
+ 
+@@ -2372,9 +2383,11 @@
+         pEntry->maDisplayText = aDisplayText;
+ 
+         // detect the image
+-        INetURLObject aObj( pEntry->maImageURL.getLength() ? pEntry->maImageURL : pEntry->maTargetURL );
+-		pEntry->maImage = SvFileInformationManager::GetImage( aObj, FALSE, isHighContrast( mpView ) );
+-
++		if( aValue != rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(aSeparatorStr) ) )
++		{
++        	INetURLObject aObj( pEntry->maImageURL.getLength() ? pEntry->maImageURL : pEntry->maTargetURL );
++			pEntry->maImage = SvFileInformationManager::GetImage( aObj, FALSE, isHighContrast( mpView ) );
++		}
+         maContent.push_back( pEntry );
+     }
+ }
+Index: svtools/inc/fileview.hxx
+===================================================================
+RCS file: /cvs/util/svtools/inc/fileview.hxx,v
+retrieving revision 1.17
+diff -u -r1.17 fileview.hxx
+--- svtools/inc/fileview.hxx	13 Apr 2005 10:08:32 -0000	1.17
++++ svtools/inc/fileview.hxx	23 Aug 2005 14:47:01 -0000
+@@ -97,6 +97,7 @@
+ #define FILEVIEW_SHOW_SIZE			0x0020
+ #define FILEVIEW_SHOW_DATE			0x0040
+ #define FILEVIEW_SHOW_ALL			0x0070
++#define FILEVIEW_SHOW_NONE			0x00A0
+ 
+ class ViewTabListBox_Impl;
+ class SvtFileView_Impl;
+@@ -130,6 +131,7 @@
+ {
+ private:
+     SvtFileView_Impl*       mpImp;
++	sal_Bool 				bSortColumn;
+ 
+ 	SVT_DLLPRIVATE void					OpenFolder( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aContents );
+ 
+@@ -155,6 +157,8 @@
+ 	void					SetSizePixel( const Size& rNewSize );
+     using Window::SetPosSizePixel;
+ 	virtual void			SetPosSizePixel( const Point& rNewPos, const Size& rNewSize );
++	void					SetSortColumn( sal_Bool bValue ) { bSortColumn = bValue; }
++	sal_Bool				GetSortColumn() { return bSortColumn; }
+ 
+     /** initialize the view with the content of a folder given by URL, and aply an immediate filter
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-module.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-module.diff
@@ -0,0 +1,615 @@
+diff --git a/basctl/source/basicide/unomodel.cxx b/basctl/source/basicide/unomodel.cxx
+index 75a153b..622f98b 100644
+--- basctl/source/basicide/unomodel.cxx
++++ basctl/source/basicide/unomodel.cxx
+@@ -51,7 +51,6 @@
+ #include <iderdll.hxx>
+ #include <basdoc.hxx>
+ 
+-using namespace ::vos;
+ using ::rtl::OUString;
+ using namespace ::cppu;
+ using namespace ::std;
+diff --git a/binfilter/bf_sc/source/core/tool/sc_callform.cxx b/binfilter/bf_sc/source/core/tool/sc_callform.cxx
+index a5815be..e393e19 100644
+--- binfilter/bf_sc/source/core/tool/sc_callform.cxx
++++ binfilter/bf_sc/source/core/tool/sc_callform.cxx
+@@ -40,16 +40,14 @@
+ 
+ // INCLUDE ---------------------------------------------------------------
+ 
+-#ifndef _VOS_MODULE_HXX_
+-#include <vos/module.hxx>
++#ifndef _OSL_MODULE_HXX_
++#include <osl/module.hxx>
+ #endif
+ 
+ #include "adiasync.hxx"
+ #include <tools/debug.hxx>
+ namespace binfilter {
+ 
+-using namespace ::vos;
+-
+ //------------------------------------------------------------------------
+ 
+ extern "C" {
+@@ -161,15 +159,15 @@ typedef void (CALLTYPE* FARPROC) ( void );
+ /*N*/ {
+ /*N*/ friend class ModuleCollection;
+ /*N*/ 	String		aName;
+-/*N*/ 	OModule*	pInstance;
++/*N*/ 	osl::Module*	pInstance;
+ /*N*/ public:
+-/*N*/ 	ModuleData(const String& rStr, OModule* pInst) : aName (rStr), pInstance (pInst) {}
+-/*N*/ 	ModuleData(const ModuleData& rData) : aName (rData.aName) {pInstance = new OModule(aName);}
++/*N*/ 	ModuleData(const String& rStr, osl::Module* pInst) : aName (rStr), pInstance (pInst) {}
++/*N*/ 	ModuleData(const ModuleData& rData) : aName (rData.aName) {pInstance = new osl::Module(aName);}
+ /*N*/ 	~ModuleData() { delete pInstance; }
+ /*N*/ 	virtual DataObject*	Clone() const { return new ModuleData(*this); }
+ /*N*/ 
+ /*N*/ 	const   String&			GetName() const { return aName; }
+-/*N*/ 			OModule*		GetInstance() const { return pInstance; }
++/*N*/ 			osl::Module*		GetInstance() const { return pInstance; }
+ /*N*/ 			void			FreeInstance() { delete pInstance; pInstance = 0; }
+ /*N*/ };
+ 
+@@ -217,7 +215,7 @@ typedef void (CALLTYPE* FARPROC) ( void );
+ /*N*/ BOOL FuncData::Call(void** ppParam)
+ /*N*/ {
+ /*N*/ 	BOOL bRet = FALSE;
+-/*N*/ 	OModule* pLib = pModuleData->GetInstance();
++/*N*/ 	osl::Module* pLib = pModuleData->GetInstance();
+ /*N*/ 	FARPROC fProc = (FARPROC)pLib->getSymbol(aFuncName);
+ /*N*/ 	if (fProc != NULL)
+ /*N*/ 	{
+diff --git a/binfilter/bf_sd/source/filter/sd_sdfilter.cxx b/binfilter/bf_sd/source/filter/sd_sdfilter.cxx
+index e007b24..5326ff2 100644
+--- binfilter/bf_sd/source/filter/sd_sdfilter.cxx
++++ binfilter/bf_sd/source/filter/sd_sdfilter.cxx
+@@ -39,7 +39,7 @@
+ 
+ #include <tools/debug.hxx>
+ #include <osl/file.hxx>
+-#include <vos/module.hxx>
++#include <osl/module.hxx>
+ #include <svtools/pathoptions.hxx>
+ #include <bf_sfx2/docfile.hxx>
+ #include <bf_sfx2/progress.hxx>
+@@ -106,11 +106,11 @@ SdFilter::~SdFilter()
+ 
+ // -----------------------------------------------------------------------------
+ 
+-::vos::OModule* SdFilter::OpenLibrary( const ::rtl::OUString& rLibraryName ) const
++::osl::Module* SdFilter::OpenLibrary( const ::rtl::OUString& rLibraryName ) const
+ {
+ 	::rtl::OUString	aDest;
+ 	::rtl::OUString	aNormalizedPath;
+-	::vos::OModule*	pRet;
++	::osl::Module*	pRet;
+ 	
+     if ( ::osl::FileBase::getFileURLFromSystemPath( SvtPathOptions().GetFilterPath(), aDest ) != ::osl::FileBase::E_None )
+         aDest = SvtPathOptions().GetFilterPath();
+@@ -118,7 +118,7 @@ SdFilter::~SdFilter()
+ 	aDest += ::rtl::OUString( ImplGetFullLibraryName( rLibraryName ) );
+ 	::osl::FileBase::getSystemPathFromFileURL( aDest, aNormalizedPath );
+ 
+-	if( !( pRet = new ::vos::OModule( aNormalizedPath ) )->isLoaded() )
++	if( !( pRet = new ::osl::Module( aNormalizedPath ) )->is() )
+ 		delete pRet, pRet = NULL;
+ 
+ 	return pRet;
+diff --git a/binfilter/bf_sd/source/ui/unoidl/sd_unovwcrs.cxx b/binfilter/bf_sd/source/ui/unoidl/sd_unovwcrs.cxx
+index 52ca4f3..b3531f5 100644
+--- binfilter/bf_sd/source/ui/unoidl/sd_unovwcrs.cxx
++++ binfilter/bf_sd/source/ui/unoidl/sd_unovwcrs.cxx
+@@ -48,7 +48,6 @@
+ #include <cppuhelper/implbase2.hxx>
+ namespace binfilter {
+ 
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::com::sun::star;
+ 
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+index 761e05d..5b5c016 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+@@ -123,7 +123,6 @@
+ #include <legacysmgr/legacy_binfilters_smgr.hxx>	//STRIP002 
+ #endif
+ 
+-using namespace ::vos;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::beans;
+diff --git a/binfilter/bf_starmath/source/starmath_unomodel.cxx b/binfilter/bf_starmath/source/starmath_unomodel.cxx
+index e567cf7..3f12fb9 100644
+--- binfilter/bf_starmath/source/starmath_unomodel.cxx
++++ binfilter/bf_starmath/source/starmath_unomodel.cxx
+@@ -118,7 +118,6 @@
+ #endif
+ 
+ namespace binfilter {
+-using namespace ::vos;
+ using namespace ::rtl;
+ using namespace ::cppu;
+ using namespace ::std;
+diff --git a/binfilter/inc/bf_sd/sdfilter.hxx b/binfilter/inc/bf_sd/sdfilter.hxx
+index 36d6dae..c27e70d 100644
+--- binfilter/inc/bf_sd/sdfilter.hxx
++++ binfilter/inc/bf_sd/sdfilter.hxx
+@@ -44,7 +44,7 @@
+ #ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATORSUPPLIER_HPP_
+ #include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
+ #endif
+-namespace vos { class OModule; }
++namespace osl { class Module; }
+ namespace binfilter {
+ 
+ // ------------
+@@ -76,7 +76,7 @@ protected:
+ 	sal_Bool					mbIsDraw : 1;
+ 	sal_Bool					mbShowProgress : 1;
+ 
+-	::vos::OModule*				OpenLibrary( const ::rtl::OUString& rLibraryName ) const;
++	::osl::Module*				OpenLibrary( const ::rtl::OUString& rLibraryName ) const;
+ 	void						CreateStatusIndicator();
+ 	void						CreateProgress();
+ 
+diff --git a/embeddedobj/source/msole/xdialogcreator.cxx b/embeddedobj/source/msole/xdialogcreator.cxx
+index 491a440..140cab8 100644
+--- embeddedobj/source/msole/xdialogcreator.cxx
++++ embeddedobj/source/msole/xdialogcreator.cxx
+@@ -61,7 +61,7 @@
+ 
+ #include <osl/thread.h>
+ #include <osl/file.hxx>
+-#include <vos/module.hxx>
++#include <osl/module.hxx>
+ #include <comphelper/classids.hxx>
+ 
+ #include "platform.h"
+@@ -206,7 +206,7 @@ embed::InsertedObjectInfo SAL_CALL MSOLEDialogObjectCreator::createInstanceByDia
+ 	io.dwFlags = IOF_SELECTCREATENEW | IOF_DISABLELINK;
+ 
+ 
+-	::vos::OModule aOleDlgLib;
++	::osl::Module aOleDlgLib;
+ 	if( !aOleDlgLib.load( ::rtl::OUString::createFromAscii( "oledlg" ) ) )
+ 		throw uno::RuntimeException();
+ 
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index c531290..8be503a 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -546,7 +546,7 @@
+ #include "osl/conditn.hxx"
+ #include "osl/diagnose.h"
+ #include "sal/macros.h"
+-#include "vos/module.hxx"
++#include "osl/module.hxx"
+ #include "osl/mutex.hxx"
+ #include "vos/pipe.hxx"
+ #include "rtl/ref.hxx"
+diff --git a/extensions/source/scanner/scanwin.cxx b/extensions/source/scanner/scanwin.cxx
+index cfa1f64..2744549 100644
+--- extensions/source/scanner/scanwin.cxx
++++ extensions/source/scanner/scanwin.cxx
+@@ -80,7 +80,7 @@
+ #include <tools/svwin.h>
+ #include <tools/stream.hxx>
+ #include <osl/mutex.hxx>
+-#include <vos/module.hxx>
++#include <osl/module.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/wrkwin.hxx>
+ #include <vcl/sysdata.hxx>
+@@ -143,7 +143,7 @@ class ImpTwain : public ::cppu::WeakImplHelper1< util::XCloseListener >
+ 	TW_IDENTITY									aSrcIdent;
+ 	Link										aNotifyLink;
+ 	DSMENTRYPROC								pDSM;
+-	vos::OModule*					pMod;
++	osl::Module*					pMod;
+ 	ULONG										nCurState;
+ 	HWND						                hTwainWnd;
+ 	HHOOK						                hTwainHook;
+@@ -326,7 +326,7 @@ void ImpTwain::ImplOpenSourceManager()
+ {
+ 	if( 1 == nCurState )
+ 	{
+-		pMod = new ::vos::OModule( ::rtl::OUString() );
++		pMod = new ::osl::Module( ::rtl::OUString() );
+ 
+ 		if( pMod->load( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( TWAIN_LIBNAME ) ) ) )
+ 		{
+diff --git a/extensions/source/scanner/twain.cxx b/extensions/source/scanner/twain.cxx
+index 27988f9..b2a1cbb 100644
+--- extensions/source/scanner/twain.cxx
++++ extensions/source/scanner/twain.cxx
+@@ -45,7 +45,7 @@
+ #ifdef OS2
+ #include <tools/svpm.h>
+ #endif // OS2
+-#include <vos/module.hxx>
++#include <osl/module.hxx>
+ #include <tools/stream.hxx>
+ #include <vcl/svapp.hxx>
+ #include <vcl/wrkwin.hxx>
+@@ -250,7 +250,7 @@ void ImpTwain::ImplOpenSourceManager()
+ {
+ 	if( 1 == nCurState )
+ 	{
+-		pMod = new vos::OModule();
++		pMod = new osl::Module();
+ 
+ 		if( pMod->load( TWAIN_LIBNAME ) )
+ 		{
+diff --git a/extensions/source/scanner/twain.hxx b/extensions/source/scanner/twain.hxx
+index 7b8dbdd..3036735 100644
+--- extensions/source/scanner/twain.hxx
++++ extensions/source/scanner/twain.hxx
+@@ -36,7 +36,7 @@
+ #ifndef _TWAIN_HXX
+ #define _TWAIN_HXX
+ 
+-#include <vos/module.hxx>
++#include <osl/module.hxx>
+ #include <vcl/bitmap.hxx>
+ #include "twain/twain.h"
+ 
+@@ -65,7 +65,7 @@ class ImpTwain
+ 	Link						aNotifyLink;
+ 	Bitmap						aBitmap;
+ 	DSMENTRYPROC				pDSM;
+-	vos::OModule*	pMod;
++	osl::Module*	pMod;
+ 	ULONG						nCurState;
+ 
+ 	void						ImplCreate();
+diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx
+index aca4622..9290435 100644
+--- sd/inc/pch/precompiled_sd.hxx
++++ sd/inc/pch/precompiled_sd.hxx
+@@ -919,7 +919,7 @@
+ #include "vcl/wrkwin.hxx"
+ 
+ #include "osl/diagnose.h"
+-#include "vos/module.hxx"
++#include "osl/module.hxx"
+ #include "osl/mutex.hxx"
+ #include "osl/thread.hxx"
+ //---MARKER---
+diff --git a/sd/source/filter/html/HtmlOptionsDialog.cxx b/sd/source/filter/html/HtmlOptionsDialog.cxx
+index 729247f..88aae88 100644
+--- sd/source/filter/html/HtmlOptionsDialog.cxx
++++ sd/source/filter/html/HtmlOptionsDialog.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _OSL_FILE_HXX_
+ #include <osl/file.hxx>
+ #endif
+-#ifndef _VOS_MODULE_HXX_
+-#include <vos/module.hxx>
++#ifndef _OSL_MODULE_HXX_
++#include <osl/module.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+diff --git a/sd/source/ui/unoidl/SdUnoOutlineView.cxx b/sd/source/ui/unoidl/SdUnoOutlineView.cxx
+index c2a233d..e62b633 100644
+--- sd/source/ui/unoidl/SdUnoOutlineView.cxx
++++ sd/source/ui/unoidl/SdUnoOutlineView.cxx
+@@ -57,7 +57,6 @@
+ #endif
+ 
+ using ::rtl::OUString;
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 54afe37..94de398 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -671,7 +671,7 @@
+ #include "vcl/unohelp.hxx"
+ #include "vcl/wintypes.hxx"
+ #include "osl/diagnose.h"
+-#include "vos/module.hxx"
++#include "osl/module.hxx"
+ #include "osl/mutex.hxx"
+ #include "vos/security.hxx"
+ #include "vos/socket.hxx"
+diff --git a/sfx2/inc/sfx2/docfac.hxx b/sfx2/inc/sfx2/docfac.hxx
+index 3a932da..495e7c6 100644
+--- sfx2/inc/sfx2/docfac.hxx
++++ sfx2/inc/sfx2/docfac.hxx
+@@ -55,8 +55,8 @@
+ #endif
+ 
+ // SFX_IMPL_MODULE_LIB
+-#ifndef _VOS_MODULE_HXX_
+-#include <vos/module.hxx>
++#ifndef _OSL_MODULE_HXX_
++#include <osl/module.hxx>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
+index 4ea4a18..b16db09 100644
+--- sfx2/source/appl/appmisc.cxx
++++ sfx2/source/appl/appmisc.cxx
+@@ -132,7 +132,6 @@
+ #include <sfx2/objface.hxx>
+ #include "helper.hxx"	// SfxContentHelper::Kill()
+ 
+-using namespace ::vos;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::beans;
+diff --git a/so3/source/inplace/outplace.cxx b/so3/source/inplace/outplace.cxx
+index f6c2511..a0772f1 100644
+--- binfilter/bf_so3/source/inplace/outplace.cxx
++++ binfilter/bf_so3/source/inplace/outplace.cxx
+@@ -65,7 +65,7 @@
+ #include <insdlg.hxx>
+ #include <outplace.hxx>
+ #include <viscache.hxx>
+-#include <vos/module.hxx>
++#include <osl/module.hxx>
+ #include <sot/formats.hxx>
+ #include <svtools/filter.hxx>
+ #include <sot/clsids.hxx>
+@@ -80,7 +80,6 @@
+ #endif
+ #include <svtools/wmf.hxx>
+ 
+-using namespace vos;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::datatransfer;
+ 
+diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
+index 97ca0a9..a8dd856 100644
+--- starmath/source/unomodel.cxx
++++ starmath/source/unomodel.cxx
+@@ -117,7 +117,6 @@
+ 
+ #include <smdll.hxx>
+ 
+-using namespace ::vos;
+ using namespace ::cppu;
+ using namespace ::std;
+ using namespace ::comphelper;
+diff --git a/svx/source/msfilter/msdffimp.cxx b/svx/source/msfilter/msdffimp.cxx
+index e149827..586e8c5 100644
+--- svx/source/msfilter/msdffimp.cxx
++++ svx/source/msfilter/msdffimp.cxx
+@@ -344,9 +344,6 @@
+ #ifndef _UCBHELPER_CONTENTBROKER_HXX_
+ #include <ucbhelper/contentbroker.hxx>
+ #endif
+-#ifndef _VOS_NO_NAMESPACE
+-using namespace vos;
+-#endif
+ 
+ #ifndef _ENHANCED_CUSTOMSHAPE_TYPE_NAMES_HXX
+ #include "../customshapes/EnhancedCustomShapeTypeNames.hxx"
+diff --git a/vos/inc/vos/module.hxx b/vos/inc/vos/module.hxx
+deleted file mode 100644
+index 3858886..0000000
+--- vos/inc/vos/module.hxx
++++ /dev/null
+@@ -1,93 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: module.hxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:37:08 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_MODULE_HXX_
+-#define _VOS_MODULE_HXX_
+-
+-#ifndef _VOS_OBJECT_HXX_
+-#   include <vos/object.hxx>
+-#endif
+-#ifndef _RTL_USTRING_HXX_
+-#   include <rtl/ustring.hxx>
+-#endif
+-#ifndef _OSL_MODULE_H_
+-#   include <osl/module.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-class OModule : public OObject
+-{
+-    VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OModule, vos));
+-
+-public:
+-
+-    /// default c'tor
+-    OModule();
+-
+-    /// this c'tor is a combination of the default c'tor and load()
+-    OModule(const ::rtl::OUString& strModuleName, sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT);
+-    virtual ~OModule();
+-
+-    /// loads the specified module
+-    sal_Bool SAL_CALL load(const ::rtl::OUString& strModuleName, sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT);
+-
+-    /// unloads the currently loaded module
+-    void SAL_CALL unload();
+-
+-    /// returns sal_True, if a module is loaded, sal_False otherwise
+-    sal_Bool SAL_CALL isLoaded();
+-
+-#if 0
+-    // not implemented yet
+-    // returns the name of the currently loaded module or an empty string if none.
+-    ::rtl::OUString SAL_CALL getModuleName();
+-#endif
+-
+-    /// returns a pointer to the specified Symbol if found, NULL otherwise
+-    void* SAL_CALL getSymbol(const ::rtl::OUString& strSymbolName);
+-
+-protected:
+-
+-    oslModule m_Module;
+-};
+-
+-}
+-
+-#endif
+-
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 1b010f5..61584e7 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -51,7 +51,6 @@ SLOFILES= \
+ 				$(SLO)$/socket.obj      \
+ 				$(SLO)$/thread.obj      \
+ 				$(SLO)$/stream.obj      \
+-				$(SLO)$/module.obj      \
+ 				$(SLO)$/timer.obj       \
+ 				$(SLO)$/process.obj     \
+ 				$(SLO)$/security.obj    \
+@@ -65,7 +64,6 @@ OBJFILES= \
+ 				$(OBJ)$/socket.obj      \
+ 				$(OBJ)$/thread.obj      \
+ 				$(OBJ)$/stream.obj      \
+-				$(OBJ)$/module.obj      \
+ 				$(OBJ)$/timer.obj       \
+ 				$(OBJ)$/process.obj     \
+ 				$(OBJ)$/security.obj    \
+diff --git a/vos/source/module.cxx b/vos/source/module.cxx
+deleted file mode 100644
+index 2da53f8..0000000
+--- vos/source/module.cxx
++++ /dev/null
+@@ -1,95 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: module.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:42:06 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <vos/module.hxx>
+-#include <osl/diagnose.h>
+-
+-using namespace vos;
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OModule, vos),
+-                        VOS_NAMESPACE(OModule, vos),
+-                        VOS_NAMESPACE(OObject, vos), 0);
+-
+-
+-OModule::OModule()
+-	:m_Module(0)
+-{
+-}
+-						
+-OModule::OModule(const rtl::OUString& ustrModuleName, sal_Int32 nRtldMode) : m_Module(0)
+-{
+-    if (ustrModuleName)
+-        load(ustrModuleName, nRtldMode);
+-}
+-
+-OModule::~OModule()
+-{
+-    if (m_Module)
+-        osl_unloadModule(m_Module);
+-}
+-
+-sal_Bool OModule::load(const rtl::OUString& ustrModuleName, sal_Int32 nRtldMode)
+-{
+-    OSL_ASSERT(ustrModuleName);
+-    
+-    unload();
+-    
+-    m_Module = osl_loadModule( ustrModuleName.pData, nRtldMode );
+-    
+-    return (m_Module != 0);
+-}
+-
+-void OModule::unload()
+-{
+-    if (m_Module)
+-    {
+-        osl_unloadModule(m_Module);
+-        m_Module = 0;
+-    }
+-}
+-
+-sal_Bool OModule::isLoaded()
+-{ 
+-	return m_Module != NULL; 
+-}
+-
+-void *OModule::getSymbol(const rtl::OUString& strSymbolName)
+-{
+-    OSL_ASSERT(strSymbolName);
+-    OSL_ASSERT(m_Module);
+-	return ( osl_getSymbol( m_Module, strSymbolName.pData ) );
+-}
+-
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-more-transitions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-more-transitions.diff
@@ -0,0 +1,666 @@
+diff -rup ../ooh680-m5.orig/slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- ../ooh680-m5.orig/slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-01-18 14:03:44.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-02-11 15:57:57.000000000 +0100
+@@ -146,6 +146,10 @@ private:    
+     /** Our Transition to be used.
+     */    
+     OGLTransitionImpl* pTransition;
++
++    /** whether we are running on ATI fglrx with bug related to textures
++     */
++    bool bBrokenTexturesATI;
+ };
+ 
+ void OGLTransitionerImpl::initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double)
+@@ -271,8 +275,11 @@ void OGLTransitionerImpl::initWindowFrom
+                                  vi,
+                                  0,
+                                  GL_TRUE);
+-
+     glXMakeCurrent( GLWin.dpy, GLWin.win, GLWin.ctx );
++
++    /* TODO: check for version once the bug in fglrx driver is fixed */
++    bBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
++
+     glEnable(GL_CULL_FACE);
+     glCullFace(GL_BACK);
+     glClearColor (0, 0, 0, 0);
+@@ -417,28 +417,48 @@ void OGLTransitionerImpl::GLInitSlides()
+     
+     glGenTextures(1, &GLleavingSlide);
+ 	glBindTexture(GL_TEXTURE_2D, GLleavingSlide);
+-	gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat , SlideSize.Width, SlideSize.Height, Format, GL_UNSIGNED_BYTE, &LeavingBytes[0]);
+-    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);//TRILINEAR FILTERING
+-	GLfloat largest_supported_anisotropy;
+-	glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &largest_supported_anisotropy);
+-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, largest_supported_anisotropy);//anistropic filtering (to make texturing not suck when looking at polygons from oblique angles)
+-	
++    if( pTransition && !bBrokenTexturesATI && !pTransition->mbUseMipMapLeaving) {
++        glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SlideSize.Width, SlideSize.Height, 0, Format, GL_UNSIGNED_BYTE, &LeavingBytes[0]);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
++    } else {
++        gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat, SlideSize.Width, SlideSize.Height, Format, GL_UNSIGNED_BYTE, &LeavingBytes[0]);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR); //TRILINEAR FILTERING
++
++        //anistropic filtering (to make texturing not suck when looking at polygons from oblique angles)
++        GLfloat largest_supported_anisotropy;
++        glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &largest_supported_anisotropy);
++        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, largest_supported_anisotropy);
++	}
+ 	OSL_ENSURE(glIsTexture(GLleavingSlide), "Can't generate Leaving slide textures in OpenGL");
+ 	
+ 	glDeleteTextures(1,&GLenteringSlide);
+ 	
+ 	glGenTextures(1, &GLenteringSlide);
+ 	glBindTexture(GL_TEXTURE_2D, GLenteringSlide);
+-	gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat , SlideSize.Width, SlideSize.Height, Format, GL_UNSIGNED_BYTE, &EnteringBytes[0]);
+-    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);//TRILINEAR FILTERING
+-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, largest_supported_anisotropy);//anistropic filtering (to make texturing not suck when looking at polygons from oblique angles)
+-	
++    if( pTransition && !bBrokenTexturesATI && !pTransition->mbUseMipMapEntering ) {
++        glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SlideSize.Width, SlideSize.Height, 0, Format, GL_UNSIGNED_BYTE, &EnteringBytes[0]);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
++    } else {
++        gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat, SlideSize.Width, SlideSize.Height, Format, GL_UNSIGNED_BYTE, &EnteringBytes[0]);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
++        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);//TRILINEAR FILTERING
++
++        //anistropic filtering (to make texturing not suck when looking at polygons from oblique angles)
++        GLfloat largest_supported_anisotropy;
++        glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &largest_supported_anisotropy);
++        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, largest_supported_anisotropy);
++	}
+ 	OSL_ENSURE( glIsTexture(GLenteringSlide), "Can't generate entering slide textures in OpenGL" );
+ }
+ 
+@@ -509,26 +529,32 @@ public:
+     // XTransitionFactory
+     virtual ::sal_Bool SAL_CALL hasTransition( ::sal_Int16 transitionType, ::sal_Int16 transitionSubType ) throw (uno::RuntimeException)
+     {
+-        if( transitionType != animations::TransitionType::MISCSHAPEWIPE )
++        if( transitionType == animations::TransitionType::MISCSHAPEWIPE ) {
++            switch( transitionSubType )
++                {
++                case animations::TransitionSubType::ACROSS:
++                case animations::TransitionSubType::CORNERSOUT:
++                case animations::TransitionSubType::CIRCLE:
++                case animations::TransitionSubType::FANOUTHORIZONTAL:
++                case animations::TransitionSubType::CORNERSIN:  
++                case animations::TransitionSubType::LEFTTORIGHT:
++                case animations::TransitionSubType::TOPTOBOTTOM:
++                case animations::TransitionSubType::TOPRIGHT:
++                case animations::TransitionSubType::TOPLEFT:
++                case animations::TransitionSubType::BOTTOMRIGHT:
++                case animations::TransitionSubType::BOTTOMLEFT:
++                case animations::TransitionSubType::TOPCENTER:
++                    return sal_True;
++
++                default:
++                    return sal_False;
++                }
++        } else if( transitionType == animations::TransitionType::FADE && transitionSubType == animations::TransitionSubType::CROSSFADE ) {
++            return sal_True;
++        } else if( transitionType == animations::TransitionType::IRISWIPE && transitionSubType == animations::TransitionSubType::DIAMOND ) {
++            return sal_True;
++        } else
+             return sal_False;
+-
+-        switch( transitionSubType )
+-        {
+-            case animations::TransitionSubType::ACROSS:
+-            case animations::TransitionSubType::CORNERSOUT:
+-            case animations::TransitionSubType::CIRCLE:
+-            case animations::TransitionSubType::FANOUTHORIZONTAL:
+-            case animations::TransitionSubType::CORNERSIN:  
+-            case animations::TransitionSubType::LEFTTORIGHT:
+-            case animations::TransitionSubType::TOPTOBOTTOM:
+-            case animations::TransitionSubType::TOPRIGHT:
+-            case animations::TransitionSubType::TOPLEFT:
+-            case animations::TransitionSubType::BOTTOMRIGHT:
+-                return sal_True;
+-
+-            default:
+-                return sal_False;
+-        }
+     }
+ 
+     virtual uno::Reference< presentation::XTransition > SAL_CALL createTransition( 
+@@ -539,44 +563,59 @@ public:
+         const uno::Reference< rendering::XBitmap >&           enteringBitmap, 
+         const geometry::RealPoint2D&                          slideOffset ) throw (uno::RuntimeException)
+     {
+-        if( transitionType != animations::TransitionType::MISCSHAPEWIPE )
+-            return uno::Reference< presentation::XTransition >();
++        OGLTransitionImpl* pTransition;
+ 
+-        OGLTransitionImpl* pTransition = new OGLTransitionImpl();
+-        switch( transitionSubType )
+-        {
+-            case animations::TransitionSubType::ACROSS:
+-                pTransition->makeNByMTileFlip(8,6);
+-                break;   
+-            case animations::TransitionSubType::CORNERSOUT:
+-                pTransition->makeOutsideCubeFaceToLeft();
+-                break;            
+-            case animations::TransitionSubType::CIRCLE:
+-                pTransition->makeRevolvingCircles(8,128);
+-                break;
+-            case animations::TransitionSubType::FANOUTHORIZONTAL:
+-                pTransition->makeHelix(20);
+-                break;
+-            case animations::TransitionSubType::CORNERSIN:  
+-                pTransition->makeInsideCubeFaceToLeft();
+-                break;
+-            case animations::TransitionSubType::LEFTTORIGHT:
+-                pTransition->makeFallLeaving();
+-                break;
+-            case animations::TransitionSubType::TOPTOBOTTOM:
+-                pTransition->makeTurnAround();
+-                break;
+-            case animations::TransitionSubType::TOPRIGHT:
+-                pTransition->makeTurnDown();
+-                break;
+-            case animations::TransitionSubType::TOPLEFT:
+-                pTransition->makeIris();
+-                break;
+-            case animations::TransitionSubType::BOTTOMRIGHT:
+-                pTransition->makeRochade();
+-                break;
+-            default:
+-                return uno::Reference< presentation::XTransition >();
++        if( transitionType == animations::TransitionType::MISCSHAPEWIPE ) {
++            pTransition = new OGLTransitionImpl();
++            switch( transitionSubType )
++                {
++                case animations::TransitionSubType::ACROSS:
++                    pTransition->makeNByMTileFlip(8,6);
++                    break;   
++                case animations::TransitionSubType::CORNERSOUT:
++                    pTransition->makeOutsideCubeFaceToLeft();
++                    break;            
++                case animations::TransitionSubType::CIRCLE:
++                    pTransition->makeRevolvingCircles(8,128);
++                    break;
++                case animations::TransitionSubType::FANOUTHORIZONTAL:
++                    pTransition->makeHelix(20);
++                    break;
++                case animations::TransitionSubType::CORNERSIN:  
++                    pTransition->makeInsideCubeFaceToLeft();
++                    break;
++                case animations::TransitionSubType::LEFTTORIGHT:
++                    pTransition->makeFallLeaving();
++                    break;
++                case animations::TransitionSubType::TOPTOBOTTOM:
++                    pTransition->makeTurnAround();
++                    break;
++                case animations::TransitionSubType::TOPRIGHT:
++                    pTransition->makeTurnDown();
++                    break;
++                case animations::TransitionSubType::TOPLEFT:
++                    pTransition->makeIris();
++                    break;
++                case animations::TransitionSubType::BOTTOMRIGHT:
++                    pTransition->makeRochade();
++                    break;
++                case animations::TransitionSubType::BOTTOMLEFT:
++                    pTransition->makeVenetianBlinds( true, 8 );
++                    break;
++                case animations::TransitionSubType::TOPCENTER:
++                    pTransition->makeVenetianBlinds( false, 6 );
++                    break;
++                default:
++                    return uno::Reference< presentation::XTransition >();
++                }
++        } else if( transitionType == animations::TransitionType::FADE && transitionSubType == animations::TransitionSubType::CROSSFADE ) {
++            pTransition = new OGLTransitionImpl();
++            pTransition->makeFadeSmoothly();
++        } else if( transitionType == animations::TransitionType::IRISWIPE && transitionSubType == animations::TransitionSubType::DIAMOND ) {
++            pTransition = new OGLTransitionImpl();
++            pTransition->makeDiamond();
++        } else {
++            return uno::Reference< presentation::XTransition >();
+         }
+ 
+         rtl::Reference<OGLTransitionerImpl> xRes(
+Only in slideshow/source/engine/OGLTrans: OGLTrans_TransitionerImpl.cxx.~1.3.2.1.~
+diff -rup ../ooh680-m5.orig/slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx
+--- ../ooh680-m5.orig/slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	2008-02-11 13:45:46.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	2008-02-08 15:37:31.000000000 +0100
+@@ -34,6 +34,7 @@
+  ************************************************************************/
+ #include "OGLTrans_TransitionImpl.hxx"
+ #include <GL/gl.h>
++#include <math.h>
+ 
+ void OGLTransitionImpl::clear()
+ {
+@@ -46,7 +47,7 @@ void OGLTransitionImpl::clear()
+         delete maSceneObjects[i];
+     maSceneObjects.clear();
+ 
+-    bReflectSlides = false;
++    mbReflectSlides = false;
+ }
+ 
+ OGLTransitionImpl::~OGLTransitionImpl()
+@@ -73,23 +74,25 @@ static void blendSlide( double depth )
+     double showHeight = -1 + depth*2;
+     GLfloat reflectionColor[] = {0, 0, 0, 0.25};
+ 
++    glDisable( GL_DEPTH_TEST );
+     glBegin( GL_QUADS );
+     glColor4fv( reflectionColor );
+-    glVertex3f( -1.01, -1.01, 0.001 );
++    glVertex3f( -1, -1, 0 );
+     glColor4f( 0, 0, 0, 1 );
+-    glVertex3f(-1.01,  showHeight, 0.001 );
+-    glVertex3f( 1.01,  showHeight, 0.001 );
++    glVertex3f(-1,  showHeight, 0 );
++    glVertex3f( 1,  showHeight, 0 );
+     glColor4fv( reflectionColor );
+-    glVertex3f( 1.01, -1.01, 0.001 );
++    glVertex3f( 1, -1, 0 );
+     glEnd();
+ 
+     glBegin( GL_QUADS );
+     glColor4f( 0, 0, 0, 1 );
+-    glVertex3f( -1.01, showHeight, 0.001 );
+-    glVertex3f( -1.01,  1.01, 0.001 );
+-    glVertex3f(  1.01,  1.01, 0.001 );
+-    glVertex3f(  1.01, showHeight, 0.001 );
++    glVertex3f( -1, showHeight, 0 );
++    glVertex3f( -1,  1, 0 );
++    glVertex3f(  1,  1, 0 );
++    glVertex3f(  1, showHeight, 0 );
+     glEnd();
++    glEnable( GL_DEPTH_TEST );
+ }
+ 
+ void OGLTransitionImpl::display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex,
+@@ -100,8 +103,13 @@ void OGLTransitionImpl::display( double 
+     SlideWidthScale = SlideWidth/DispWidth;
+     SlideHeightScale = SlideHeight/DispHeight;
+ 
++    if( mmPrepare ) {
++        clear();
++        (this->*mmPrepare)( nTime, SlideWidth, SlideHeight, DispWidth, DispHeight );
++    }
++
+     glPushMatrix();
+-    if ( bReflectSlides ) {
++    if ( mbReflectSlides ) {
+         double reflectionDepth = 0.3;
+         double surfaceLevel = -0.04;
+ 
+@@ -148,18 +156,28 @@ void OGLTransitionImpl::applyOverallOper
+         OverallOperations[i]->interpolate(nTime,SlideWidthScale,SlideHeightScale);
+ }
+ 
++void OGLTransitionImpl::displaySlide( double nTime, ::sal_Int32 glSlideTex, std::vector<Primitive>& primitives,
++                                      double SlideWidthScale, double SlideHeightScale )
++{
++   //TODO change to foreach
++    glBindTexture(GL_TEXTURE_2D, glSlideTex);
++
++    for(unsigned int i(0); i < primitives.size(); ++i)
++        primitives[i].display(nTime, SlideWidthScale, SlideHeightScale);
++}
++
+ void OGLTransitionImpl::displaySlides( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex,
+                                        double SlideWidthScale, double SlideHeightScale )
+ {
+-    applyOverallOperations( nTime, SlideWidthScale, SlideHeightScale );
+-    glEnable(GL_TEXTURE_2D);
+-    //TODO change to foreach
+-    glBindTexture(GL_TEXTURE_2D, glLeavingSlideTex);
+-    for(unsigned int i(0); i < maLeavingSlidePrimitives.size(); ++i)
+-        maLeavingSlidePrimitives[i].display(nTime,SlideWidthScale,SlideHeightScale);
+-    glBindTexture(GL_TEXTURE_2D, glEnteringSlideTex);
+-    for(unsigned int i(0); i < maEnteringSlidePrimitives.size(); ++i)
+-        maEnteringSlidePrimitives[i].display(nTime,SlideWidthScale,SlideHeightScale);
++    if( mmDisplaySlides )
++        (this->*mmDisplaySlides)( nTime, glLeavingSlideTex, glEnteringSlideTex, SlideWidthScale, SlideHeightScale );
++    else {
++        applyOverallOperations( nTime, SlideWidthScale, SlideHeightScale );
++
++        glEnable(GL_TEXTURE_2D);
++        displaySlide( nTime, glLeavingSlideTex, maLeavingSlidePrimitives, SlideWidthScale, SlideHeightScale );
++        displaySlide( nTime, glEnteringSlideTex, maEnteringSlidePrimitives, SlideWidthScale, SlideHeightScale );
++    }
+ }
+ 
+ void OGLTransitionImpl::displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
+@@ -300,6 +318,8 @@ void OGLTransitionImpl::makeFallLeaving(
+ 
+     Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(1,0,0),basegfx::B3DVector(0,-1,0), 90,true,0.0,1.0));
+     maLeavingSlidePrimitives.push_back(Slide);
++
++    mbUseMipMapEntering = false;
+ }
+ 
+ void OGLTransitionImpl::makeTurnAround()
+@@ -307,7 +327,7 @@ void OGLTransitionImpl::makeTurnAround()
+     clear();
+     Primitive Slide;
+ 
+-    bReflectSlides = true;
++    mbReflectSlides = true;
+     
+     Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
+     Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
+@@ -334,6 +354,8 @@ void OGLTransitionImpl::makeTurnDown()
+     Slide.Operations.push_back(new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(-1, 1, 0), -90, true, 0.0, 1.0));
+     Slide.Operations.push_back(new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(-1, 1, 0), 90, false, -1.0, 0.0));
+     maEnteringSlidePrimitives.push_back(Slide);
++
++    mbUseMipMapLeaving = false;
+ }
+ 
+ void OGLTransitionImpl::makeIris()
+@@ -345,8 +367,8 @@ void OGLTransitionImpl::makeIris()
+     Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1));
+     maEnteringSlidePrimitives.push_back (Slide);
+ 
+-    Slide.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0, 0.0001), false, -1, 0));
+-    Slide.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0, -0.0002), false, 0.5, 1));
++    Slide.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0,  0.000001), false, -1, 0));
++    Slide.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0, -0.000002), false, 0.5, 1));
+     maLeavingSlidePrimitives.push_back (Slide);
+ 
+ 
+@@ -399,6 +421,8 @@ void OGLTransitionImpl::makeIris()
+     }
+ 
+     maSceneObjects.push_back (pIris);
++
++    mbUseMipMapLeaving = mbUseMipMapEntering = false;
+ }
+ 
+ void OGLTransitionImpl::makeRochade()
+@@ -406,7 +430,7 @@ void OGLTransitionImpl::makeRochade()
+     clear();
+     Primitive Slide;
+     
+-    bReflectSlides = true;
++    mbReflectSlides = true;
+ 
+     double w, h;
+ 
+@@ -655,6 +679,13 @@ RotateAndScaleDepthByWidth::RotateAndSca
+     bInterpolate = bInter;
+ }
+ 
++RotateAndScaleDepthByHeight::RotateAndScaleDepthByHeight(const basegfx::B3DVector& Axis,const basegfx::B3DVector& Origin,double Angle, bool bInter, double T0, double T1):axis(Axis),origin(Origin),angle(Angle)
++{
++    nT0 = T0;
++    nT1 = T1;
++    bInterpolate = bInter;
++}
++
+ 
+ STranslate::STranslate(const basegfx::B3DVector& Vector, bool bInter, double T0, double T1):vector(Vector)
+ {
+@@ -714,6 +745,18 @@ void RotateAndScaleDepthByWidth::interpo
+     glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-SlideWidthScale*origin.getZ());
+ }
+ 
++void RotateAndScaleDepthByHeight::interpolate(double t,double SlideWidthScale,double SlideHeightScale)
++{
++    if(t <= nT0)
++        return;
++    if(!bInterpolate || t > nT1)
++        t = nT1;
++    t = intervalInter(t,nT0,nT1);
++    glTranslated(SlideWidthScale*origin.getX(),SlideHeightScale*origin.getY(),SlideHeightScale*origin.getZ());
++    glRotated(t*angle,axis.getX(),axis.getY(),axis.getZ());
++    glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-SlideHeightScale*origin.getZ());
++}
++
+ SEllipseTranslate::SEllipseTranslate(double dWidth, double dHeight, double dStartPosition, double dEndPosition, bool bInter, double T0, double T1)
+ {
+     nT0 = T0;
+@@ -766,6 +809,11 @@ RotateAndScaleDepthByWidth* RotateAndSca
+     return new RotateAndScaleDepthByWidth(*this);
+ }
+ 
++RotateAndScaleDepthByHeight* RotateAndScaleDepthByHeight::clone()
++{
++    return new RotateAndScaleDepthByHeight(*this);
++}
++
+ const Primitive& Primitive::operator=(const Primitive& rvalue)
+ {
+     for(unsigned int i( 0 ); i < rvalue.Operations.size(); ++i)
+@@ -833,3 +881,108 @@ void Primitive::pushTriangle(const baseg
+     Normals.push_back(basegfx::B3DVector(0,0,1));//all normals always face the screen when untransformed.
+     Normals.push_back(basegfx::B3DVector(0,0,1));//all normals always face the screen when untransformed.
+ }
++
++void OGLTransitionImpl::makeDiamond()
++{
++    mmPrepare = &OGLTransitionImpl::prepareDiamond;
++    mbUseMipMapLeaving = mbUseMipMapEntering = false;
++}
++
++void OGLTransitionImpl::prepareDiamond( double nTime, double /* SlideWidth */, double /* SlideHeight */, double /* DispWidth */, double /* DispHeight */ )
++{
++    Primitive Slide1, Slide2;
++
++    Slide1.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1));
++    Slide1.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1));
++    maEnteringSlidePrimitives.push_back (Slide1);
++
++    
++    if( nTime >= 0.5 ) {
++        double m = 1 - nTime;
++
++        Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (m,0), basegfx::B2DVector (0,m));
++        Slide2.pushTriangle (basegfx::B2DVector (nTime,0), basegfx::B2DVector (1,0), basegfx::B2DVector (1,m));
++        Slide2.pushTriangle (basegfx::B2DVector (1,nTime), basegfx::B2DVector (1,1), basegfx::B2DVector (nTime,1));
++        Slide2.pushTriangle (basegfx::B2DVector (0,nTime), basegfx::B2DVector (m,1), basegfx::B2DVector (0,1));
++    } else {
++        double l = 0.5 - nTime;
++        double h = 0.5 + nTime;
++
++        Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0.5,l));
++        Slide2.pushTriangle (basegfx::B2DVector (0.5,l), basegfx::B2DVector (1,0), basegfx::B2DVector (h,0.5));
++        Slide2.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (1,1), basegfx::B2DVector (h,0.5));
++        Slide2.pushTriangle (basegfx::B2DVector (h,0.5), basegfx::B2DVector (1,1), basegfx::B2DVector (0.5,h));
++        Slide2.pushTriangle (basegfx::B2DVector (0.5,h), basegfx::B2DVector (1,1), basegfx::B2DVector (0,1));
++        Slide2.pushTriangle (basegfx::B2DVector (l,0.5), basegfx::B2DVector (0.5,h), basegfx::B2DVector (0,1));
++        Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (l,0.5), basegfx::B2DVector (0,1));
++        Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (0.5,l), basegfx::B2DVector (l,0.5));
++    }
++    Slide2.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0, 0.00000001), false, -1, 0));
++    maLeavingSlidePrimitives.push_back (Slide2);
++}
++
++void OGLTransitionImpl::makeVenetianBlinds( bool vertical, int parts )
++{
++    static double t30 = tan( M_PI/6.0 );
++    double n, ln = 0;
++    double p = 1.0/parts;
++
++    for( int i=0; i<parts; i++ ) {
++        Primitive Slide;
++        n = (i + 1)/(double)parts;
++        if( vertical ) {
++            Slide.pushTriangle (basegfx::B2DVector (ln,0), basegfx::B2DVector (n,0), basegfx::B2DVector (ln,1));
++            Slide.pushTriangle (basegfx::B2DVector (n,0), basegfx::B2DVector (ln,1), basegfx::B2DVector (n,1));
++            Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0, 1, 0), basegfx::B3DVector(n + ln - 1, 0, -t30*p), -120, true, 0.0, 1.0));
++        } else {
++            Slide.pushTriangle (basegfx::B2DVector (0,ln), basegfx::B2DVector (1,ln), basegfx::B2DVector (0,n));
++            Slide.pushTriangle (basegfx::B2DVector (1,ln), basegfx::B2DVector (0,n), basegfx::B2DVector (1,n));
++            Slide.Operations.push_back(new RotateAndScaleDepthByHeight(basegfx::B3DVector(1, 0, 0), basegfx::B3DVector(0, 1 - n - ln, -t30*p), -120, true, 0.0, 1.0));
++        }
++        maLeavingSlidePrimitives.push_back (Slide);
++
++        if( vertical ) {
++            Slide.Operations.push_back(new SRotate(basegfx::B3DVector(0, 1, 0), basegfx::B3DVector(2*n - 1, 0, 0), -60, false, -1, 0));
++            Slide.Operations.push_back(new SRotate(basegfx::B3DVector(0, 1, 0), basegfx::B3DVector(n + ln - 1, 0, 0), 180, false, -1, 0));
++        } else {
++            Slide.Operations.push_back(new SRotate(basegfx::B3DVector(1, 0, 0), basegfx::B3DVector(0, 1 - 2*n, 0), -60, false, -1, 0));
++            Slide.Operations.push_back(new SRotate(basegfx::B3DVector(1, 0, 0), basegfx::B3DVector(0, 1 - n - ln, 0), 180, false, -1, 0));
++        }
++        maEnteringSlidePrimitives.push_back (Slide);
++        ln = n;
++    }
++}
++
++void OGLTransitionImpl::displaySlidesFadeSmoothly( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale )
++{
++    applyOverallOperations( nTime, SlideWidthScale, SlideHeightScale );
++
++    glDisable(GL_DEPTH_TEST);
++
++    displaySlide( nTime, glLeavingSlideTex, maLeavingSlidePrimitives, SlideWidthScale, SlideHeightScale );
++
++    glDisable(GL_LIGHTING);
++    glEnable(GL_BLEND);
++    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
++    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
++    glColor4f( 1, 1, 1, nTime );
++    displaySlide( nTime, glEnteringSlideTex, maEnteringSlidePrimitives, SlideWidthScale, SlideHeightScale );
++    glDisable(GL_BLEND);
++    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
++    glEnable(GL_LIGHTING);
++
++    glEnable(GL_DEPTH_TEST);
++}
++
++void OGLTransitionImpl::makeFadeSmoothly()
++{ 
++    Primitive Slide;
++
++    Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1));
++    Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1));
++    maLeavingSlidePrimitives.push_back (Slide);
++    maEnteringSlidePrimitives.push_back (Slide);
++
++    mmDisplaySlides = &OGLTransitionImpl::displaySlidesFadeSmoothly;
++    mbUseMipMapLeaving = mbUseMipMapEntering = false;
++}
+diff -rup ../ooh680-m5.orig/slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx
+--- ../ooh680-m5.orig/slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	2008-02-11 13:45:46.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	2008-02-08 12:27:43.000000000 +0100
+@@ -53,9 +53,14 @@ class OGLTransitionImpl
+ {
+ public:
+     OGLTransitionImpl() :
++        mbUseMipMapLeaving( true ),
++        mbUseMipMapEntering( true ),
+         maLeavingSlidePrimitives(),
+         maEnteringSlidePrimitives(),
+-        maSceneObjects()
++        maSceneObjects(),
++        mbReflectSlides( false ),
++        mmPrepare( NULL ),
++        mmDisplaySlides( NULL )
+     {}
+ 
+     ~OGLTransitionImpl();
+@@ -74,6 +79,17 @@ public:
+     void makeTurnDown();
+     void makeIris();
+     void makeRochade();
++    void makeVenetianBlinds( bool vertical, int parts );
++
++    /** 2D replacements
++     */
++    void makeDiamond();
++    void makeFadeSmoothly();
++
++    /** Whether to use mipmaping for slides textures
++     */
++    bool mbUseMipMapLeaving;
++    bool mbUseMipMapEntering;
+ 
+ private:
+     /** clears all the primitives and operations
+@@ -99,11 +115,27 @@ private:
+     /** Whether to reflect slides, the reflection happens on flat surface beneath the slides.
+      ** Now it only works with slides which keep their rectangular shape together.
+      */
+-    bool bReflectSlides;
++    bool mbReflectSlides;
++
++    /** When this method is not NULL, it is called in display method to prepare the slides, scene, etc.
++     ** We might later replace this by cleaner derived class.
++     */
++    void (OGLTransitionImpl::*mmPrepare)( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight );
++
++    /** When this method is not NULL, it is called in display method to display the slides.
++     ** We might later replace this by cleaner derived class.
++     */
++    void (OGLTransitionImpl::*mmDisplaySlides)( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale );
+ 
+     void displaySlides( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale );
++    void displaySlide( double nTime, ::sal_Int32 glSlideTex, std::vector<Primitive>& primitives, double SlideWidthScale, double SlideHeightScale );
+     void displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight);
+     void applyOverallOperations( double nTime, double SlideWidthScale, double SlideHeightScale );
++
++    /** various transitions helper methods
++     */
++    void prepareDiamond( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight );
++    void displaySlidesFadeSmoothly( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale );
+ };
+ 
+ class SceneObject
+@@ -410,5 +442,21 @@ private:
+ 	double angle;
+ };
+ 
++/** Same as SRotate, except the depth is scaled by the width of the slide divided by the height of the window.
++*/
++class RotateAndScaleDepthByHeight: public Operation
++{
++public:
++	void interpolate(double t,double SlideWidthScale,double SlideHeightScale);
++    RotateAndScaleDepthByHeight* clone();
++
++	RotateAndScaleDepthByHeight(const basegfx::B3DVector& Axis,const basegfx::B3DVector& Origin,double Angle,bool bInter, double T0, double T1);
++	~RotateAndScaleDepthByHeight(){}
++private:
++	basegfx::B3DVector axis;
++    basegfx::B3DVector origin;
++	double angle;
++};
++
+ #endif // INCLUDED_SLIDESHOW_TRANSITION_HXX_
+ 
+--- sd/xml-orig/transitions-ogl	2008-02-13 09:19:54.000000000 +0100
++++ sd/xml/transitions-ogl	2008-02-15 12:51:49.000000000 +0100
+@@ -30,4 +30,16 @@
+  <anim:par pres:preset-id="rochade">
+   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomRight"/>
+  </anim:par>
++ <anim:par pres:preset-id="venetian3dv">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomLeft"/>
++ </anim:par>
++ <anim:par pres:preset-id="venetian3dh">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topCenter"/>
++ </anim:par>
++ <anim:par pres:preset-id="static">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="rightCenter"/>
++ </anim:par>
++ <anim:par pres:preset-id="finedissolve">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomCenter"/>
++ </anim:par>
+  </anim:seq>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-export-shape-hlink-bindings.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-export-shape-hlink-bindings.diff
@@ -0,0 +1,203 @@
+diff -rup sc/source/filter/excel/xecontent.cxx sc/source/filter/excel/xecontent.cxx
+--- sc/source/filter/excel/xecontent.cxx	2007-05-22 20:46:39.000000000 +0100
++++ sc/source/filter/excel/xecontent.cxx	2007-08-30 15:18:29.000000000 +0100
+@@ -510,12 +510,17 @@ void XclExpHyperlink::WriteBody( XclExpS
+ {
+     sal_uInt16 nXclCol = static_cast< sal_uInt16 >( maScPos.Col() );
+     sal_uInt16 nXclRow = static_cast< sal_uInt16 >( maScPos.Row() );
+-    mxVarData->Seek( STREAM_SEEK_TO_BEGIN );
++    rStrm   << nXclRow << nXclRow << nXclCol << nXclCol;
++    WriteEmbeddedData( rStrm );
++}
+ 
+-    rStrm   << nXclRow << nXclRow << nXclCol << nXclCol
+-            << XclTools::maGuidStdLink
++void XclExpHyperlink::WriteEmbeddedData( XclExpStream& rStrm )
++{
++    rStrm << XclTools::maGuidStdLink
+             << sal_uInt32( 2 )
+             << mnFlags;
++
++    mxVarData->Seek( STREAM_SEEK_TO_BEGIN );
+     rStrm.CopyFromStream( *mxVarData );
+ }
+ 
+diff -rup sc/source/filter/excel/xlocx.cxx sc/source/filter/excel/xlocx.cxx
+--- sc/source/filter/excel/xlocx.cxx	2007-08-30 16:42:48.000000000 +0100
++++ sc/source/filter/excel/xlocx.cxx	2007-08-30 16:41:24.000000000 +0100
+@@ -117,6 +117,10 @@ using com::sun::star::uno::UNO_QUERY_THR
+ #ifndef SC_XEESCHER_HXX
+ #include "xeescher.hxx"
+ #endif
++#include "xecontent.hxx"
++#include <svx/flditem.hxx>
++#include "userdat.hxx"
++#include "drwlayer.hxx"
+ 
+ using ::rtl::OUString;
+ using ::com::sun::star::uno::Reference;
+@@ -554,3 +556,33 @@ ShapeInteractionHelper::CreateShapeObj(const X
+ {
+     return new XclExpShapeObj( rRoot, xShape );
+ }
++void
++ShapeInteractionHelper::PopulateShapeInteractionInfo(const XclExpRoot& rRoot, const Reference< XShape >& xShape, EscherExHostAppData& rHostAppData )
++{
++   try
++   {
++      SvMemoryStream* pMemStrm = NULL;
++      OUString sHyperLink;
++      OUString sMacro;
++      if ( ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( ::GetSdrObjectFromXShape( xShape ) ) )
++      {
++         sHyperLink = pInfo->GetHlink();      
++         sMacro = pInfo->GetMacro();
++      }
++      if (  sHyperLink.getLength() > 0 )
++      {
++         pMemStrm = new SvMemoryStream();
++         XclExpStream tmpStream( *pMemStrm, rRoot );
++         ScAddress dummyAddress;
++         SvxURLField aUrlField;
++         aUrlField.SetURL( sHyperLink );
++         XclExpHyperlink hExpHlink( rRoot, aUrlField, dummyAddress );
++         hExpHlink.WriteEmbeddedData( tmpStream );
++      }
++      if ( ( sHyperLink.getLength() > 0 ) || ( sMacro.getLength() > 0 ) )
++          rHostAppData.SetInteractionInfo( new InteractionInfo( pMemStrm, true ) );
++   }
++   catch( Exception& )
++   {
++   }
++}
+diff -rup sc/source/filter/inc/xecontent.hxx sc/source/filter/inc/xecontent.hxx
+--- sc/source/filter/inc/xecontent.hxx	2006-07-10 14:53:28.000000000 +0100
++++ sc/source/filter/inc/xecontent.hxx	2007-08-30 15:16:07.000000000 +0100
+@@ -133,6 +133,7 @@ public:
+     /** Returns the cell representation text or 0, if not available. */
+     inline const String* GetRepr() const { return mxRepr.get(); }
+ 
++    virtual void        WriteEmbeddedData( XclExpStream& rStrm );
+ private:
+     /** Builds file name from the passed file URL. Tries to convert to relative file name.
+         @param rnLevel  (out-param) The parent directory level.
+diff -rup sc/source/filter/inc/xlocx.hxx sc/source/filter/inc/xlocx.hxx
+--- sc/source/filter/inc/xlocx.hxx	2007-08-30 16:42:48.000000000 +0100
++++ sc/source/filter/inc/xlocx.hxx	2007-08-30 16:42:28.000000000 +0100
+@@ -170,12 +170,14 @@ private:
+ };
+ 
+ class XclExpShapeObj;
++class EscherExHostAppData;
+ 
+ class ShapeInteractionHelper
+ {
+ public:
+    static XclExpShapeObj* CreateShapeObj(const XclExpRoot& rRoot, const ::com::sun::star::uno::Reference<
+                             ::com::sun::star::drawing::XShape >& xShape );
++   static void PopulateShapeInteractionInfo( const XclExpRoot& rRoot, const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape, EscherExHostAppData& rHostAppData );
+ };
+ // ============================================================================
+ 
+diff -rup sc/source/filter/xcl97/xcl97esc.cxx sc/source/filter/xcl97/xcl97esc.cxx
+--- sc/source/filter/xcl97/xcl97esc.cxx	2007-08-30 16:42:48.000000000 +0100
++++ sc/source/filter/xcl97/xcl97esc.cxx	2007-08-30 16:09:45.000000000 +0100
+@@ -259,7 +259,8 @@ EscherExHostAppData* XclEscherEx::StartS
+             // #107540# ignore permanent note shapes
+             // #i12190# do not ignore callouts (do not filter by object type ID)
+             //pCurrXclObj = new XclObjAny( rRoot );   // just a metafile
+             pCurrXclObj = ShapeInteractionHelper::CreateShapeObj( rRoot, rShape );
++            ShapeInteractionHelper::PopulateShapeInteractionInfo( rRoot, rShape, *pCurrAppData );	
+         }
+ 	}
+ 	if ( pCurrXclObj )
+@@ -373,6 +376,7 @@ void XclEscherEx::DeleteCurrAppData()
+ 		delete pCurrAppData->GetClientAnchor();
+ //		delete pCurrAppData->GetClientData();
+ 		delete pCurrAppData->GetClientTextbox();
++		delete pCurrAppData->GetInteractionInfo();
+ 		delete pCurrAppData;
+ 	}
+ }
+diff -rup svx/source/msfilter/eschesdo.cxx svx/source/msfilter/eschesdo.cxx
+--- svx/source/msfilter/eschesdo.cxx	2007-06-27 19:33:27.000000000 +0100
++++ svx/source/msfilter/eschesdo.cxx	2007-08-30 16:16:48.000000000 +0100
+@@ -314,6 +314,19 @@ UINT32 ImplEESdrWriter::ImplWriteShape( 
+         // #i51348# shape name
+         if( aShapeName.Len() > 0 )
+             aPropOpt.AddOpt( ESCHER_Prop_wzName, aShapeName );
++        if ( InteractionInfo* pInteraction = mpHostAppData->GetInteractionInfo() )
++		{
++			const std::auto_ptr< SvMemoryStream >& pMemStrm = pInteraction->getHyperlinkRecord();
++			if ( pMemStrm.get() )
++			{
++				pMemStrm->ObjectOwnsMemory( FALSE );
++				sal_uInt8* pBuf = (sal_uInt8*) pMemStrm->GetData();
++				sal_uInt32 nSize = pMemStrm->Seek( STREAM_SEEK_TO_END );
++				aPropOpt.AddOpt( ESCHER_Prop_pihlShape, sal_False, nSize, pBuf, nSize );;       
++			}
++			if ( pInteraction->hasInteraction() )
++				aPropOpt.AddOpt( ESCHER_Prop_fPrint, 0x00080008 );       
++        }
+ 
+ 		if ( rObj.GetType().EqualsAscii( "drawing.Custom" ) )
+ 		{
+--- svx/inc/svx/escherex.hxx.b4	2007-09-27 15:42:25.000000000 +0100
++++ svx/inc/svx/escherex.hxx	2007-09-27 15:55:52.000000000 +0100
+@@ -77,7 +77,7 @@
+ #ifndef INCLUDED_SVXDLLAPI_H
+ #include "svx/svxdllapi.h"
+ #endif
+-
++#include <memory>
+ 		/*Record Name       FBT-Value   Instance                  Contents                                                          Wrd Exl PPt Ver*/
+ // In der Mickysoft-Doku heissen die msofbt... statt ESCHER_...
+ #define ESCHER_DggContainer      0xF000 /*                           per-document data 
+@@ -1273,6 +1273,19 @@ public:
+ 									const Rectangle& rRect ) = 0;
+ };
+ 
++class InteractionInfo
++{
++	bool 			mbHasInteraction;
++	std::auto_ptr<SvMemoryStream>		mpHyperlinkRecord;
++	InteractionInfo();
++public:
++	InteractionInfo( SvMemoryStream* pStream, bool bInteraction ) : mbHasInteraction( bInteraction )
++	{
++		mpHyperlinkRecord.reset( pStream );
++	}
++	bool	hasInteraction() { return mbHasInteraction; }
++	const std::auto_ptr< SvMemoryStream >&	getHyperlinkRecord() { return mpHyperlinkRecord; }
++};
+ 
+ class EscherExHostAppData
+ {
+@@ -1280,14 +1298,17 @@ private:
+ 		EscherExClientAnchor_Base*	pClientAnchor;
+ 		EscherExClientRecord_Base*	pClientData;
+ 		EscherExClientRecord_Base*	pClientTextbox;
++		InteractionInfo*		pInteractionInfo;
+ 		// ignore single shape if entire pages are written
+ 		BOOL						bDontWriteShape;
+ 
+ public:
+ 		EscherExHostAppData() : pClientAnchor(0), pClientData(0),
+-								pClientTextbox(0), bDontWriteShape(FALSE)
++								pClientTextbox(0), pInteractionInfo(0), bDontWriteShape(FALSE)
+ 		{}
+ 
++		void SetInteractionInfo( InteractionInfo* p )
++			{ pInteractionInfo = p; }
+ 		void SetClientAnchor( EscherExClientAnchor_Base* p )
+ 			{ pClientAnchor = p; }
+ 		void SetClientData( EscherExClientRecord_Base* p )
+@@ -1296,6 +1317,8 @@ public:
+ 			{ pClientTextbox = p; }
+ 		void SetDontWriteShape( BOOL b )
+ 			{ bDontWriteShape = b; }
++		InteractionInfo* GetInteractionInfo() const
++			{ return pInteractionInfo; }
+ 		EscherExClientAnchor_Base* GetClientAnchor() const
+ 			{ return pClientAnchor; }
+ 		EscherExClientRecord_Base* GetClientData() const
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wizards-private-protected-to-public.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wizards-private-protected-to-public.diff
@@ -0,0 +1,7227 @@
+--- wizards/com/sun/star/wizards/agenda/AgendaTemplate.java	2006-07-06 16:13:53.000000000 +0200
++++ wizards/com/sun/star/wizards/agenda/AgendaTemplate.java	2007-05-24 11:24:05.000000000 +0200
+@@ -206,7 +206,7 @@ public class AgendaTemplate extends Text
+     /**
+      * used to set the document title property (step 6).
+      */
+-    private Object docInfo;
++    public Object docInfo;
+     
+     /**
+      * loads the given template, and analyze its structure.
+@@ -234,7 +234,7 @@ public class AgendaTemplate extends Text
+      * @param url
+      * @return the template name without the "aw-" at the beginning.
+      */
+-    private String calcTemplateName(String url) {
++    public String calcTemplateName(String url) {
+         return FileAccess.connectURLs( FileAccess.getParentDir(url) ,FileAccess.getFilename(url).substring(3)); 
+     }
+     
+@@ -246,7 +246,7 @@ public class AgendaTemplate extends Text
+      * information (it is only actualized on save) the given list
+      * supplies this information.
+      */
+-    private void initializeData(List topicsData) {
++    public void initializeData(List topicsData) {
+         for (int i = 0; i < itemsTables.length; i++) {
+             try {
+                 itemsTables[i].write("");
+@@ -352,7 +352,7 @@ public class AgendaTemplate extends Text
+      * A cache is used in order to reuse the objects, instead of recreate them.
+      * This method fills the cache will all items objects (names and headings).
+      */
+-    private void initItemsCache() {
++    public void initItemsCache() {
+         itemsCache = new Hashtable(11);
+         
+         XMultiServiceFactory xmsf = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class,document);
+@@ -418,7 +418,7 @@ public class AgendaTemplate extends Text
+      * -locate the titles and actualize them
+      * -analyze the topics table
+      */
+-    private void initialize() 
++    public void initialize() 
+     {
+         /*
+          * Get the default locale of the document, and create the date and time formatters.
+@@ -473,7 +473,7 @@ public class AgendaTemplate extends Text
+      * locates the titles (name, location, date, time) and saves a reference to thier Text ranges.
+      *
+      */
+-    private void initializeTitles() {
++    public void initializeTitles() {
+         XTextRange item = null;
+         
+         XMultiServiceFactory xmsf = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class,document);
+@@ -505,12 +505,12 @@ public class AgendaTemplate extends Text
+         }
+     }
+     
+-    private void initializeTopics() 
++    public void initializeTopics() 
+     {
+         topics = new Topics();
+     }
+     
+-    private void initializeItems()  
++    public void initializeItems()  
+     {
+         _allItems = searchFillInItems();
+     }
+@@ -519,7 +519,7 @@ public class AgendaTemplate extends Text
+      * searches the document for items in the format "&gt;*&lt;"
+      * @return a vector containing the XTextRanges of the found items
+      */
+-    private List searchFillInItems() {
++    public List searchFillInItems() {
+         try {
+             XSearchable xSearchable = (XSearchable)UnoRuntime.queryInterface(XSearchable.class,document);
+             XSearchDescriptor sd = xSearchable.createSearchDescriptor();
+@@ -549,7 +549,7 @@ public class AgendaTemplate extends Text
+      * analyze the item sections in the template. delegates the analyze of each table to the
+      * ItemsTable class.
+      */
+-    private void initializeItemsSections() 
++    public void initializeItemsSections() 
+     {
+         String[] sections = getSections(document, TemplateConsts.SECTION_ITEMS);
+ 
+@@ -568,7 +568,7 @@ public class AgendaTemplate extends Text
+         
+     }
+     
+-    private String[] getSections(Object document, String s)
++    public String[] getSections(Object document, String s)
+     {
+         XTextSectionsSupplier xTextSectionsSupplier = (XTextSectionsSupplier) UnoRuntime.queryInterface(XTextSectionsSupplier.class, document);
+         String[] allSections = xTextSectionsSupplier.getTextSections().getElementNames();
+@@ -602,7 +602,7 @@ public class AgendaTemplate extends Text
+         
+     }
+     
+-    private synchronized void redrawTitle(String controlName) {
++    public synchronized void redrawTitle(String controlName) {
+         if (controlName.equals("txtTitle"))
+             writeTitle(teTitle, trTitle, agenda.cp_Title);
+         else if (controlName.equals("txtDate")) {
+@@ -615,13 +615,13 @@ public class AgendaTemplate extends Text
+     }
+     
+ 
+-    private void writeTitle( TextElement te, XTextRange tr, String text) {
++    public void writeTitle( TextElement te, XTextRange tr, String text) {
+         te.text = (text == null ? "" : text);
+         te.write(tr);
+     }
+-    private static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
++    public static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
+     
+-    private String getDateString(String d) {
++    public String getDateString(String d) {
+         if (d == null || d.equals("")) 
+             return "";
+         
+@@ -641,7 +641,7 @@ public class AgendaTemplate extends Text
+         return dateFormatter.convertNumberToString(dateFormat, daysDiff);
+     }
+     
+-    private String getTimeString(String s) {
++    public String getTimeString(String s) {
+         if (s == null || s.equals(""))
+             return "";
+         int time = new Integer(s).intValue();
+@@ -667,7 +667,7 @@ public class AgendaTemplate extends Text
+      * user specified not to display any items which it contains.
+      * When finishing the wizard removes this sections entireley from the document.
+      */ 
+-    private void deleteHiddenSections() {
++    public void deleteHiddenSections() {
+         XTextSectionsSupplier xTextSectionsSupplier = (XTextSectionsSupplier) UnoRuntime.queryInterface(XTextSectionsSupplier.class, document);
+         String[] allSections = xTextSectionsSupplier.getTextSections().getElementNames();
+         try {
+@@ -799,7 +799,7 @@ public class AgendaTemplate extends Text
+      * @param text the text to fill to the text range object.
+      * @param placeholder the placeholder text to use, if the text argument is empty (null or "")
+      */
+-    private void fillMinutesItem(XTextRange range, Object text, String placeholder) {
++    public void fillMinutesItem(XTextRange range, Object text, String placeholder) {
+         String paraStyle = (String)Helper.getUnoPropertyValue(range,"ParaStyleName");
+         range.setString((String)text);
+         Helper.setUnoPropertyValue(range,"ParaStyleName",paraStyle);
+@@ -1201,7 +1201,7 @@ public class AgendaTemplate extends Text
+          * @return the number of rows that have been added
+          * to the table. 0 or a negative number: no rows added.
+          */
+-        private int write2(int topic, PropertyValue[] data) throws Exception {
++        public int write2(int topic, PropertyValue[] data) throws Exception {
+             while (topic >= writtenTopics.size())
+                 writtenTopics.add(null);
+             
+@@ -1245,7 +1245,7 @@ public class AgendaTemplate extends Text
+          * (false would mean new rows must be added to the table in order to 
+          * be able to write this topic).
+          */
+-        private boolean isWritten(int topic) {
++        public boolean isWritten(int topic) {
+             return (writtenTopics.size() > topic && writtenTopics.get(topic) != null );
+         }
+         
+@@ -1381,7 +1381,7 @@ public class AgendaTemplate extends Text
+         /**
+          * reapply the format of the first (header) row.
+          */
+-        private void formatFirstRow() {
++        public void formatFirstRow() {
+             XTextTableCursor cursor = table.createCursorByCellName("A1");
+             formatTable(cursor,firstRowFormat, false );
+         }
+@@ -1389,7 +1389,7 @@ public class AgendaTemplate extends Text
+         /**
+          * reaply the format of the last row.
+          */
+-        private void formatLastRow() {
++        public void formatLastRow() {
+             XTextTableCursor cursor = table.createCursorByCellName("A1");
+             cursor.gotoEnd(false);
+             formatTable(cursor,lastRowFormat, true);
+@@ -1403,7 +1403,7 @@ public class AgendaTemplate extends Text
+          * @return a TextElement object which will write the given value
+          * to the given cell.
+          */
+-        private TextElement setItemText(int cell, Object value) {
++        public TextElement setItemText(int cell, Object value) {
+             if (cell >= 0) {
+                 TextElement te = ((TextElement)topicCells.get(cell));
+                 if (te != null)
+@@ -1423,7 +1423,7 @@ public class AgendaTemplate extends Text
+          * @param formats a List containing TableCellFormatter objects. Each will format one cell in the direction specified.
+          * @param reverse if true the cursor will move left, formatting in reverse order (used for the last row).
+          */
+-        private void formatTable(XTextTableCursor cursor, List formats, boolean reverse) {
++        public void formatTable(XTextTableCursor cursor, List formats, boolean reverse) {
+             for ( int i = 0; i < formats.size() ; i++ ) {
+                 ((TableCellFormatter)formats.get(i)).format(table.getCellByName(cursor.getRangeName()));
+                 if (reverse)
+@@ -1774,7 +1774,7 @@ class TableCellFormatter {
+         "TopBorderDistance"
+   };
+   
+-  private Object[] values = new Object[properties.length];
++  public Object[] values = new Object[properties.length];
+   
+   public TableCellFormatter(Object tableCell) {
+     for (int i = 0; i<properties.length; i++)
+--- wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java	2006-10-04 22:09:10.000000000 +0200
++++ wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java	2007-05-24 11:24:05.000000000 +0200
+@@ -89,14 +89,14 @@ public class AgendaWizardDialogImpl exte
+      * (live synchronized: when the user changes the gui,
+      * the data model changes, except for topics).
+      */
+-    private CGAgenda agenda;
++    public CGAgenda agenda;
+     
+     /**
+      * the topics control, a gui element which 
+      * manipulates the topics data according to the
+      * user's input. 
+      */
+-    private TopicsControl topicsControl;
++    public TopicsControl topicsControl;
+     
+     /**
+      * an array with two array memebers:
+@@ -105,7 +105,7 @@ public class AgendaWizardDialogImpl exte
+      * agendaTemplates[1] contains an array with
+      * corresponding URLs.
+      */
+-    private String[][] agendaTemplates;
++    public String[][] agendaTemplates;
+     
+     PathSelection myPathSelection;
+     
+@@ -196,7 +196,7 @@ public class AgendaWizardDialogImpl exte
+         
+     }
+     
+-    private class myPathSelectionListener implements XPathSelectionListener {
++    public class myPathSelectionListener implements XPathSelectionListener {
+         public void validatePath() {
+             if (myPathSelection.usedPathPicker) {
+                 filenameChanged = true;             
+@@ -215,7 +215,7 @@ public class AgendaWizardDialogImpl exte
+         myPathSelection.addSelectionListener(new myPathSelectionListener());
+     }
+     
+-    private void initializePaths() {
++    public void initializePaths() {
+         try {
+             sTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share", "/wizard");
+             sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user", "");
+@@ -225,7 +225,7 @@ public class AgendaWizardDialogImpl exte
+         }
+     }
+     
+-    private void checkSavePath() {
++    public void checkSavePath() {
+         if (agenda.cp_TemplatePath == null || 
+                 agenda.cp_TemplatePath.equals("") || 
+                 !getFileAccess().exists(FileAccess.getParentDir(agenda.cp_TemplatePath),false) ||
+@@ -247,7 +247,7 @@ public class AgendaWizardDialogImpl exte
+     /**
+      * bind controls to the agenda member (DataAware model)
+      */
+-    private void makeDA() {
++    public void makeDA() {
+         
+         setControlProperty("listPageDesign", "StringItemList", agendaTemplates[0]);
+         
+@@ -306,7 +306,7 @@ public class AgendaWizardDialogImpl exte
+ 
+     
+     /*
+-    private void initializePaths() {
++    public void initializePaths() {
+         try {
+             
+             sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user");
+@@ -366,7 +366,7 @@ public class AgendaWizardDialogImpl exte
+     }
+     
+     
+-    private FileAccess fileAccess1;
++    public FileAccess fileAccess1;
+     /** convenience method.
+      *  instead of creating a FileAccess object every time
+      *  it is needed, I have a FileAccess object memeber.
+@@ -374,7 +374,7 @@ public class AgendaWizardDialogImpl exte
+      *  then be reused...
+      * @return the FileAccess memeber object.
+      */
+-    private FileAccess getFileAccess() {
++    public FileAccess getFileAccess() {
+         if (fileAccess1 == null)
+             try {
+                 fileAccess1 = new FileAccess(xMSF);
+@@ -390,7 +390,7 @@ public class AgendaWizardDialogImpl exte
+      * If it is so, one needs not warn the user
+      * upon overwrite, since she was already warned. 
+      */
+-    private boolean filenameChanged = false;
++    public boolean filenameChanged = false;
+     
+     /**
+      * last page, "browse" ("...") button was clicked...
+@@ -426,7 +426,7 @@ public class AgendaWizardDialogImpl exte
+      * The path displayed is a translated, user-friendly, platform dependant path.
+      * @param url the new save url.
+      */
+-    private void setFilename(String url) {
++    public void setFilename(String url) {
+         try {
+             String path = getFileAccess().getPath(url,"");
+             Helper.setUnoPropertyValue( getModel(myPathSelection.xSaveTextBox), "Text", path);
+@@ -561,7 +561,7 @@ public class AgendaWizardDialogImpl exte
+         running = false;
+     }
+     
+-    private void closeDocument() {
++    public void closeDocument() {
+         try {
+             //xComponent.dispose();                       
+             XCloseable xCloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, agendaTemplate.xFrame);
+@@ -581,9 +581,9 @@ public class AgendaWizardDialogImpl exte
+      * this class is used to redraw an item's table when
+      * the user clicks one of the checkboxes in step 3 or 4.
+      */
+-    private class RedrawListener implements DataAware.Listener {
++    public class RedrawListener implements DataAware.Listener {
+         
+-        private String itemName;
++        public String itemName;
+         
+         public RedrawListener(String itemName_) {
+             itemName = itemName_;
+--- wizards/com/sun/star/wizards/agenda/AgendaWizardDialog.java	2006-04-07 14:28:30.000000000 +0200
++++ wizards/com/sun/star/wizards/agenda/AgendaWizardDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -123,16 +123,16 @@ public abstract class AgendaWizardDialog
+   //Resources Object
+   AgendaWizardDialogResources resources;
+   
+-  private String[] PROPS_LIST = new String[] {"Dropdown", "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_LABEL_B = new String[] {"FontDescriptor", "Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_CHECK = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_BUTTON = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_X = new String[] {"Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_TEXTAREA = new String[] {"Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_TEXT = new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private String[] PROPS_IMAGE = new String[] {"Border", "Height", "HelpURL", "ImageURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Width"};
++  public String[] PROPS_LIST = new String[] {"Dropdown", "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public String[] PROPS_LABEL_B = new String[] {"FontDescriptor", "Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public String[] PROPS_CHECK = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width"};
++  public String[] PROPS_BUTTON = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public String[] PROPS_X = new String[] {"Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public String[] PROPS_TEXTAREA = new String[] {"Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public String[] PROPS_TEXT = new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public String[] PROPS_IMAGE = new String[] {"Border", "Height", "HelpURL", "ImageURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Width"};
+   
+-  private static final Short NO_BORDER = new Short((short)0);
++  public static final Short NO_BORDER = new Short((short)0);
+   
+   public AgendaWizardDialog(XMultiServiceFactory xmsf) {
+     super(xmsf,HID);
+--- wizards/com/sun/star/wizards/agenda/CallWizard.java	2006-04-07 14:29:12.000000000 +0200
++++ wizards/com/sun/star/wizards/agenda/CallWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -140,12 +140,12 @@ public class CallWizard {
+         /**
+          * The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.agenda.CallWizard";
++        public static final String __serviceName = "com.sun.star.wizards.agenda.CallWizard";
+ 
+         /**
+          * The service manager, that gives access to all registered services.
+          */
+-        private XMultiServiceFactory xmultiservicefactory;
++        public XMultiServiceFactory xmultiservicefactory;
+ 
+         /**
+          * This method is a member of the interface for initializing an object directly
+--- wizards/com/sun/star/wizards/agenda/TopicsControl.java	2006-04-07 14:29:42.000000000 +0200
++++ wizards/com/sun/star/wizards/agenda/TopicsControl.java	2007-05-24 11:24:05.000000000 +0200
+@@ -141,18 +141,18 @@ public class TopicsControl extends Contr
+      * topic text box.
+      * When pressing tab on this one a scroll down *may* be performed.
+      */
+-    private Object firstTopic;
++    public Object firstTopic;
+     /**
+      * the first time box.
+      * When pressing shift-tab on this control, a scroll up *may* be performed.
+      */
+-    private Object lastTime;
++    public Object lastTime;
+     
+     /**
+      * is used when constructing to track the tab index
+      * of the created control rows.
+      */
+-    private int tabIndex = 520;
++    public int tabIndex = 520;
+     
+     /**
+      * create a new TopicControl. Since this is used specifically for the
+@@ -214,14 +214,14 @@ public class TopicsControl extends Contr
+     /**
+      * Implementation of the parent class...
+      */
+-    protected void initializeScrollFields() {}
++    public void initializeScrollFields() {}
+  
+     
+     /**
+      * initializes the data of the control.
+      * @param agenda
+      */
+-    protected void initializeScrollFields(CGAgenda agenda)
++    public void initializeScrollFields(CGAgenda agenda)
+     {
+         // create a row for each topic with the given values....
+         for (int i = 0; i < agenda.cp_Topics.getSize(); i++) {
+@@ -241,7 +241,7 @@ public class TopicsControl extends Contr
+      * The control has always a blank row at the 
+      * end, which enables the user to enter data...
+      */
+-    protected void insertRowAtEnd() {
++    public void insertRowAtEnd() {
+         int l = scrollfields.size(); 
+         registerControlGroup( newRow(l), l );
+         setTotalFieldCount(l+1);
+@@ -269,7 +269,7 @@ public class TopicsControl extends Contr
+      * overrides the parent class method to also enable the
+      * row whenever data is written to it.
+      */
+-    protected void fillupControls(int guiRow) {
++    public void fillupControls(int guiRow) {
+         super.fillupControls(guiRow);
+         ((ControlRow) ControlGroupVector.get( guiRow )).setEnabled(true);
+     }
+@@ -278,7 +278,7 @@ public class TopicsControl extends Contr
+     /**
+      * remove the last row
+      */
+-    protected void removeLastRow() {
++    public void removeLastRow() {
+         int l = scrollfields.size(); 
+         
+         // if we should scroll up...
+@@ -315,7 +315,7 @@ public class TopicsControl extends Contr
+      * This is done by this method.
+      * @param control
+      */
+-    private void focusGained(XControl control) {
++    public void focusGained(XControl control) {
+         try {
+             //calculate in which row we are...
+             String name = (String)Helper.getUnoPropertyValue(UnoDialog2.getModel(control),"Name");
+@@ -335,7 +335,7 @@ public class TopicsControl extends Contr
+      * enable or disable the buttons according to the
+      * current row we are in.
+      */
+-    private void enableButtons() {
++    public void enableButtons() {
+         UnoDialog2.setEnabled( getAD().btnInsert , (lastFocusRow < scrollfields.size() - 1  ? Boolean.TRUE : Boolean.FALSE ) );
+         UnoDialog2.setEnabled( getAD().btnRemove , (lastFocusRow < scrollfields.size() - 1  ? Boolean.TRUE : Boolean.FALSE ) );
+         UnoDialog2.setEnabled( getAD().btnUp , (lastFocusRow > 0  ? Boolean.TRUE : Boolean.FALSE ) );
+@@ -357,7 +357,7 @@ public class TopicsControl extends Contr
+      * the template controller (live preview in background).
+      * @return the parent dialog, casted to AgendaWizardDialog.
+      */
+-    private AgendaWizardDialog getAD() {
++    public AgendaWizardDialog getAD() {
+         return (AgendaWizardDialog)this.CurUnoDialog;
+     }
+     
+@@ -375,11 +375,11 @@ public class TopicsControl extends Contr
+         rowDown(lastFocusRow - nscrollvalue, lastFocusControl);
+     }
+     
+-    private void lockDoc() {
++    public void lockDoc() {
+         //((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.xTextDocument.lockControllers();
+     }
+     
+-    private void unlockDoc() {
++    public void unlockDoc() {
+         //((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.xTextDocument.unlockControllers();
+     }
+     
+@@ -454,7 +454,7 @@ public class TopicsControl extends Contr
+      * @param i the index of the new row 
+      * @return
+      */
+-    private PropertyValue[] newRow(int i) {
++    public PropertyValue[] newRow(int i) {
+         PropertyValue[] pv = new PropertyValue[4];
+         pv[0] = Properties.createProperty(LABEL + i, "" + (i + 1) + ".");
+         pv[1] = Properties.createProperty(TOPIC + i, "" );
+@@ -469,7 +469,7 @@ public class TopicsControl extends Contr
+      * It uses the child-class ControlRow. (see below).
+      * @see ControlRow 
+      */
+-    protected void insertControlGroup(int _index, int npos)
++    public void insertControlGroup(int _index, int npos)
+     {
+         ControlRow oControlRow = new ControlRow((AgendaWizardDialog)CurUnoDialog, iCompPosX, npos, _index, tabIndex);
+         ControlGroupVector.addElement(oControlRow);
+@@ -482,7 +482,7 @@ public class TopicsControl extends Contr
+      * As far as I know it is never called.
+      * @see ControlRow 
+      */
+-    protected void setControlGroupVisible(int _index, boolean _bIsVisible)
++    public void setControlGroupVisible(int _index, boolean _bIsVisible)
+     {
+         ((ControlRow)ControlGroupVector.get(_index)).setVisible(_bIsVisible);
+     
+@@ -496,7 +496,7 @@ public class TopicsControl extends Contr
+      * @param row the index number of the row to check.
+      * @return true if empty. false if not.
+      */
+-    protected boolean isRowEmpty(int row) {
++    public boolean isRowEmpty(int row) {
+         PropertyValue[] data = getTopicData(row );
+         
+         // now - is this row empty?
+@@ -510,7 +510,7 @@ public class TopicsControl extends Contr
+     /**
+      * is used for data tracking.
+      */
+-    private Object[] oldData;
++    public Object[] oldData;
+     
+     /**
+      * update the preview document and 
+@@ -632,7 +632,7 @@ public class TopicsControl extends Contr
+      * sets focus to the given control.
+      * @param textControl
+      */
+-    private void focus(Object textControl) {
++    public void focus(Object textControl) {
+         ((XWindow)UnoRuntime.queryInterface(XWindow.class,textControl)).setFocus();
+         XTextComponent xTextComponent = (XTextComponent)UnoRuntime.queryInterface(XTextComponent.class,textControl);
+         String text = xTextComponent.getText();
+@@ -744,7 +744,7 @@ public class TopicsControl extends Contr
+      * @param row1 one can figure out what this parameter is...
+      * @param row2 one can figure out what this parameter is...
+      */
+-    private void switchRows( int row1, int row2) {
++    public void switchRows( int row1, int row2) {
+         PropertyValue[] o1 = (PropertyValue[]) scrollfields.get(row1 + nscrollvalue);
+         PropertyValue[] o2 = (PropertyValue[]) scrollfields.get(row2 + nscrollvalue);
+         
+@@ -788,7 +788,7 @@ public class TopicsControl extends Contr
+      * should be gotten.
+      * @return the selection object.
+      */
+-    private Selection getSelection(Object control) {
++    public Selection getSelection(Object control) {
+         return ((XTextComponent)UnoRuntime.queryInterface(XTextComponent.class,control)).getSelection();
+     }
+     
+@@ -806,7 +806,7 @@ public class TopicsControl extends Contr
+      * @param eventSource helps to detect the control's column to set the selection to.
+      * @param s the selection object to set.
+      */
+-    private void setSelection(int guiRow, Object eventSource, Selection s) {
++    public void setSelection(int guiRow, Object eventSource, Selection s) {
+         ControlRow cr = (ControlRow)ControlGroupVector.get(guiRow);
+         Object control = getControl(cr, eventSource);
+         ((XWindow)UnoRuntime.queryInterface(XWindow.class,control)).setFocus();
+@@ -821,7 +821,7 @@ public class TopicsControl extends Contr
+      * @param column the column number.
+      * @return the control...
+      */
+-    private Object getControl( ControlRow cr, int column) {
++    public Object getControl( ControlRow cr, int column) {
+         switch ( column ) {
+             case 0 : return cr.label;
+             case 1 : return cr.textbox;
+@@ -839,7 +839,7 @@ public class TopicsControl extends Contr
+      * @param control a control indicating a column.
+      * @return
+      */
+-    private Object getControl(ControlRow cr, Object control) {
++    public Object getControl(ControlRow cr, Object control) {
+         int column = getColumn(control);
+         return getControl(cr,column);
+     }
+@@ -849,7 +849,7 @@ public class TopicsControl extends Contr
+      * @param control
+      * @return
+      */
+-    private int getColumn(Object control) {
++    public int getColumn(Object control) {
+         String name = (String)Helper.getUnoPropertyValue(UnoDialog2.getModel(control),"Name");
+         if (name.startsWith( TOPIC ))
+             return 1;
+@@ -867,7 +867,7 @@ public class TopicsControl extends Contr
+      * updates the given row in the preview document.
+      * @param row
+      */
+-    private void updateDocumentRow( int row ) {
++    public void updateDocumentRow( int row ) {
+         updateDocumentRow( row , (PropertyValue[])scrollfields.get(row));
+     }
+ 
+@@ -876,7 +876,7 @@ public class TopicsControl extends Contr
+      * @param row
+      * @param data
+      */
+-    private void updateDocumentRow( int row , PropertyValue[] data) {
++    public void updateDocumentRow( int row , PropertyValue[] data) {
+         try {
+             ((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.topics.write(row, data);
+         }
+@@ -893,7 +893,7 @@ public class TopicsControl extends Contr
+      * @param column the column to update (a gui column, not a document column).
+      * @param data the data of the entire row.
+      */
+-    private void updateDocumentCell( int row , int column, PropertyValue[] data) {
++    public void updateDocumentCell( int row , int column, PropertyValue[] data) {
+         try {
+             ((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.topics.writeCell(row, column, data);
+         }
+@@ -907,7 +907,7 @@ public class TopicsControl extends Contr
+      * the preview document to show the number of rows
+      * according to the data model.
+      */
+-    private void reduceDocumentToTopics() {
++    public void reduceDocumentToTopics() {
+         try {
+             ((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.topics.reduceDocumentTo(scrollfields.size()-1);
+         }
+@@ -927,19 +927,19 @@ public class TopicsControl extends Contr
+     /**
+      * A static member used for the child-class ControlRow (GUI Constant)
+      */
+-    private static Integer I_12 = new Integer(12);
++    public static Integer I_12 = new Integer(12);
+     /**
+      * A static member used for the child-class ControlRow (GUI Constant)
+      */
+-    private static Integer I_8 = new Integer(8);
++    public static Integer I_8 = new Integer(8);
+     /**
+      * A static member used for the child-class ControlRow (GUI Constant)
+      */
+-    private static final String[] LABEL_PROPS = new String[] {"Height",  "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++    public static final String[] LABEL_PROPS = new String[] {"Height",  "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+     /**
+      * A static member used for the child-class ControlRow (GUI Constant)
+      */
+-    private static final String[] TEXT_PROPS = new String[] {"Height",  "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++    public static final String[] TEXT_PROPS = new String[] {"Height",  "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+     
+     /**
+      * 
+@@ -1122,7 +1122,7 @@ public class TopicsControl extends Contr
+          * @param control
+          * @return an int columnd number of the given control (0 to 3).
+          */
+-        private int getColumn(Object control) {
++        public int getColumn(Object control) {
+             if ( control == textbox )
+                 return 1;
+             else if ( control == combobox )
+@@ -1135,16 +1135,16 @@ public class TopicsControl extends Contr
+                 throw new IllegalArgumentException("Control is not part of this ControlRow");
+         }
+         
+-        private boolean isMoveDown(KeyEvent e) {
++        public boolean isMoveDown(KeyEvent e) {
+             return ( e.KeyCode == Key.DOWN ) && ( e.Modifiers == KeyModifier.MOD1 );
+         }
+-        private boolean isMoveUp(KeyEvent e) {
++        public boolean isMoveUp(KeyEvent e) {
+             return ( e.KeyCode == Key.UP ) && ( e.Modifiers == KeyModifier.MOD1 );
+         }
+-        private boolean isDown(KeyEvent e) {
++        public boolean isDown(KeyEvent e) {
+             return ( e.KeyCode == Key.DOWN ) && ( e.Modifiers == 0 );
+         }
+-        private boolean isUp(KeyEvent e) {
++        public boolean isUp(KeyEvent e) {
+             return ( e.KeyCode == Key.UP ) && ( e.Modifiers == 0 );
+         }
+         
+--- wizards/com/sun/star/wizards/common/ConfigGroup.java	2006-04-07 14:30:01.000000000 +0200
++++ wizards/com/sun/star/wizards/common/ConfigGroup.java	2007-05-24 11:24:05.000000000 +0200
+@@ -55,7 +55,7 @@ public class ConfigGroup implements Conf
+                 }
+     }
+ 
+-    private void writeField(Field field, Object configView, String prefix) throws Exception {
++    public void writeField(Field field, Object configView, String prefix) throws Exception {
+         String propertyName = field.getName().substring(prefix.length());
+         //System.out.println("Going to save:" + propertyName);
+         Class fieldType = field.getType();
+@@ -103,7 +103,7 @@ public class ConfigGroup implements Conf
+                 }
+     }
+ 
+-    private void readField(Field field, Object configView, String prefix) throws Exception {
++    public void readField(Field field, Object configView, String prefix) throws Exception {
+         String propertyName = field.getName().substring(prefix.length());
+ 
+         Class fieldType = field.getType();
+--- wizards/com/sun/star/wizards/common/ConfigSet.java	2006-04-07 14:30:30.000000000 +0200
++++ wizards/com/sun/star/wizards/common/ConfigSet.java	2007-05-24 11:24:05.000000000 +0200
+@@ -46,9 +46,9 @@ import org.w3c.dom.*;
+  * @author  rpiterman
+  */
+ public class ConfigSet implements ConfigNode, XMLProvider, ListModel {
+-    private Class childClass;
+-    private Map childrenMap = new HashMap();
+-    private List childrenList = new Vector();
++    public Class childClass;
++    public Map childrenMap = new HashMap();
++    public List childrenList = new Vector();
+     public Object root;
+ 
+     /**
+@@ -59,10 +59,10 @@ public class ConfigSet implements Config
+      * subclasses can change this field in the constructor
+      * to avoid this "deletion" of nulls.
+      */
+-    protected boolean noNulls = true;
++    public boolean noNulls = true;
+ 
+     /** Utility field used by event firing mechanism. */
+-    private javax.swing.event.EventListenerList listenerList = null;
++    public javax.swing.event.EventListenerList listenerList = null;
+ 
+     public ConfigSet(Class childType) {
+         childClass = childType;
+@@ -96,7 +96,7 @@ public class ConfigSet implements Config
+         fireListDataListenerIntervalAdded(i, i);
+     }
+ 
+-    protected Object createChild() throws InstantiationException, IllegalAccessException {
++    public Object createChild() throws InstantiationException, IllegalAccessException {
+         return childClass.newInstance();
+     }
+ 
+@@ -255,7 +255,7 @@ public class ConfigSet implements Config
+      * @param event The event to be fired
+      *
+      */
+-    private void fireListDataListenerIntervalAdded(int i0, int i1) {
++    public void fireListDataListenerIntervalAdded(int i0, int i1) {
+         ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, i0, i1);
+         if (listenerList == null)
+             return;
+@@ -272,7 +272,7 @@ public class ConfigSet implements Config
+      * @param event The event to be fired
+      *
+      */
+-    private void fireListDataListenerIntervalRemoved(int i0, int i1) {
++    public void fireListDataListenerIntervalRemoved(int i0, int i1) {
+         ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, i0, i1);
+         if (listenerList == null)
+             return;
+@@ -289,7 +289,7 @@ public class ConfigSet implements Config
+      * @param event The event to be fired
+      *
+      */
+-    private void fireListDataListenerContentsChanged(int i0, int i1) {
++    public void fireListDataListenerContentsChanged(int i0, int i1) {
+         ListDataEvent event = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, i0, i1);
+         if (listenerList == null)
+             return;
+--- wizards/com/sun/star/wizards/common/FileAccess.java	2006-07-13 14:13:13.000000000 +0200
++++ wizards/com/sun/star/wizards/common/FileAccess.java	2007-05-24 11:24:05.000000000 +0200
+@@ -623,7 +623,7 @@ public class FileAccess {
+         return url;
+     }
+ 
+-    private static String filename(String name, String ext, int i) {
++    public static String filename(String name, String ext, int i) {
+         return name + (i == 0 ? "" : String.valueOf(i)) + (ext.equals("") ? "" : "." + ext);
+     }
+     
+--- wizards/com/sun/star/wizards/common/Helper.java	2006-04-07 14:31:28.000000000 +0200
++++ wizards/com/sun/star/wizards/common/Helper.java	2007-05-24 11:24:05.000000000 +0200
+@@ -236,14 +236,14 @@ public class Helper {
+         }
+     }
+ 
+-    private static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
++    public static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
+ 
+     public static class DateUtils {
+ 
+-        private long docNullTime;
+-        private XNumberFormatter formatter;
+-        private XNumberFormatsSupplier formatSupplier;
+-        private Calendar calendar;
++        public long docNullTime;
++        public XNumberFormatter formatter;
++        public XNumberFormatsSupplier formatSupplier;
++        public Calendar calendar;
+ 
+         public DateUtils(XMultiServiceFactory xmsf, Object document) throws Exception {
+             XMultiServiceFactory docMSF = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class,document);
+@@ -279,7 +279,7 @@ public class Helper {
+             return formatter;
+         }
+ 
+-        private long getTimeInMillis(){
++        public long getTimeInMillis(){
+             java.util.Date dDate = calendar.getTime();
+             return dDate.getTime();
+         }
+--- wizards/com/sun/star/wizards/common/NumberFormatter.java	2006-12-01 17:29:09.000000000 +0100
++++ wizards/com/sun/star/wizards/common/NumberFormatter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -61,8 +61,8 @@ public class NumberFormatter {
+     public XNumberFormats xNumberFormats;
+     public XNumberFormatTypes xNumberFormatTypes;
+     public XPropertySet xNumberFormatSettings;
+-    private boolean bNullDateCorrectionIsDefined = false;
+-    private Locale aLocale; 
++    public boolean bNullDateCorrectionIsDefined = false;
++    public Locale aLocale; 
+     
+     
+     public NumberFormatter(XMultiServiceFactory _xMSF, XNumberFormatsSupplier _xNumberFormatsSupplier, Locale _aLocale) throws Exception{
+--- wizards/com/sun/star/wizards/common/SystemDialog.java	2006-04-07 14:33:46.000000000 +0200
++++ wizards/com/sun/star/wizards/common/SystemDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -107,7 +107,7 @@ public class SystemDialog {
+     
+     
+     
+-    private String subst(String path) {
++    public String subst(String path) {
+         try {
+             //System.out.println("SystemDialog.subst:");
+             //System.out.println(path);
+@@ -178,7 +178,7 @@ public class SystemDialog {
+             return null;
+     }
+ 
+-    private boolean execute(XExecutableDialog execDialog) {
++    public boolean execute(XExecutableDialog execDialog) {
+         return execDialog.execute() == 1;
+     }
+ 
+@@ -227,7 +227,7 @@ public class SystemDialog {
+      * @param filterName
+      * @return
+      */
+-    private String getFilterUIName(String filterName) {
++    public String getFilterUIName(String filterName) {
+         String prodName = Configuration.getProductName(xMSF);
+         String[][] s = new String[][] { { getFilterUIName_(filterName)}
+         };
+@@ -240,7 +240,7 @@ public class SystemDialog {
+      * @param filterName
+      * @return the UI localized name of the given filter name.
+      */
+-    private String getFilterUIName_(String filterName) {
++    public String getFilterUIName_(String filterName) {
+         try {
+             Object oFactory = xMSF.createInstance("com.sun.star.document.FilterFactory");
+             Object oObject = Helper.getUnoObjectbyName(oFactory, filterName);
+--- wizards/com/sun/star/wizards/common/UCB.java	2006-04-07 14:34:11.000000000 +0200
++++ wizards/com/sun/star/wizards/common/UCB.java	2007-05-24 11:24:05.000000000 +0200
+@@ -24,8 +24,8 @@ import com.sun.star.uno.UnoRuntime;
+  * It should be always: dir,filename.
+  */
+ public class UCB {
+-    private Object ucb;
+-    private FileAccess fa;
++    public Object ucb;
++    public FileAccess fa;
+     
+     public UCB(XMultiServiceFactory xmsf) throws Exception {
+         String[] keys = new String[2];
+--- wizards/com/sun/star/wizards/db/BlindtextCreator.java	2006-07-06 16:14:10.000000000 +0200
++++ wizards/com/sun/star/wizards/db/BlindtextCreator.java	2007-05-24 11:24:05.000000000 +0200
+@@ -96,7 +96,7 @@ public class BlindtextCreator {
+         return PartBlindText;
+     }
+ 
+-    private static int getMaxFieldCount(boolean bIsCurLandscape) {
++    public static int getMaxFieldCount(boolean bIsCurLandscape) {
+         if (bIsCurLandscape == true)
+             return 5;
+         else
+--- wizards/com/sun/star/wizards/db/ColumnPropertySet.java	2006-04-07 14:35:08.000000000 +0200
++++ wizards/com/sun/star/wizards/db/ColumnPropertySet.java	2007-05-24 11:24:05.000000000 +0200
+@@ -49,8 +49,8 @@ import com.sun.star.wizards.db.TypeInspe
+ public class ColumnPropertySet {
+     TypeInspector oTypeInspector;
+     public XPropertySet xPropertySet;
+-    private int nType;
+-    private String sTypeName = "";
++    public int nType;
++    public String sTypeName = "";
+     
+     
+     public ColumnPropertySet(TypeInspector _oTypeInspector, XPropertySet _xPropertySet){
+@@ -127,7 +127,7 @@ public class ColumnPropertySet {
+     }}
+     
+         
+-    private int getPrecision(){
++    public int getPrecision(){
+     try{
+         return ((Integer) xPropertySet.getPropertyValue("Precision")).intValue();
+     } catch (Exception e) {
+@@ -116,7 +116,7 @@ public class ColumnPropertySet {
+     }}
+         
+         
+-    private void setType(int _nType, String _sTypeName, Integer precision){
++    public void setType(int _nType, String _sTypeName, Integer precision){
+         if (_sTypeName.equals(""))
+             sTypeName = oTypeInspector.getDefaultTypeName(nType);
+         else
+@@ -127,7 +127,7 @@ public class ColumnPropertySet {
+     }
+     
+     
+-    private void assignPropertyValue(String _spropname, Object _oValue){
++    public void assignPropertyValue(String _spropname, Object _oValue){
+         try {
+             if (_spropname.equals("Type")){
+                 nType = ((Integer) _oValue).intValue();
+@@ -160,7 +160,7 @@ public class ColumnPropertySet {
+     }
+     
+ 
+-    private int getType(){
++    public int getType(){
+         return nType;
+     }
+ }
+--- wizards/com/sun/star/wizards/db/CommandMetaData.java	2006-12-01 17:29:23.000000000 +0100
++++ wizards/com/sun/star/wizards/db/CommandMetaData.java	2007-05-24 11:24:05.000000000 +0200
+@@ -64,15 +64,15 @@ public class CommandMetaData extends DBM
+     public String[] NumericFieldNames = new String[] {};
+     public String[] NonAggregateFieldNames;
+     public int[] FieldTypes;
+-    private int CommandType;
+-    private String Command;
++    public int CommandType;
++    public String Command;
+     boolean bCatalogAtStart = true;
+     String sCatalogSep = "";
+     String sIdentifierQuote = "";
+     boolean bCommandComposerAttributesalreadyRetrieved = false;
+ 
+ 
+-    private XIndexAccess xIndexKeys;
++    public XIndexAccess xIndexKeys;
+ 
+     public CommandMetaData(XMultiServiceFactory xMSF, Locale _aLocale, NumberFormatter oNumberFormatter) {
+         super(xMSF, _aLocale, oNumberFormatter);
+--- wizards/com/sun/star/wizards/db/CommandName.java	2006-04-07 14:35:38.000000000 +0200
++++ wizards/com/sun/star/wizards/db/CommandName.java	2007-05-24 11:24:05.000000000 +0200
+@@ -38,17 +38,17 @@ import com.sun.star.uno.Exception;
+ import com.sun.star.wizards.common.JavaTools;
+ 
+ public class CommandName{
+-    protected CommandMetaData oCommandMetaData;
+-    protected String CatalogName = "";
+-    protected String SchemaName = "";
+-    protected String TableName = "";
+-    protected String DisplayName = "";
+-    protected String ComposedName = "";
+-    protected String AliasName = "";
+-    protected boolean bCatalogAtStart;
+-    protected String sCatalogSep;
+-    protected String sIdentifierQuote;
+-    protected boolean baddQuotation = true;
++    public CommandMetaData oCommandMetaData;
++    public String CatalogName = "";
++    public String SchemaName = "";
++    public String TableName = "";
++    public String DisplayName = "";
++    public String ComposedName = "";
++    public String AliasName = "";
++    public boolean bCatalogAtStart;
++    public String sCatalogSep;
++    public String sIdentifierQuote;
++    public boolean baddQuotation = true;
+ 
+     
+     public CommandName(CommandMetaData _CommandMetaData, String _DisplayName){
+@@ -82,7 +82,7 @@ public class CommandName{
+     }}
+     
+     
+-    private void setComposedCommandName(String _DisplayName) {
++    public void setComposedCommandName(String _DisplayName) {
+     try{
+         if (this.setMetaDataAttributes()){
+             this.DisplayName = _DisplayName;
+@@ -139,7 +139,7 @@ public class CommandName{
+     }
+ 
+     
+-    private boolean setMetaDataAttributes(){
++    public boolean setMetaDataAttributes(){
+     try {
+         bCatalogAtStart = oCommandMetaData.xDBMetaData.isCatalogAtStart();
+         sCatalogSep = oCommandMetaData.xDBMetaData.getCatalogSeparator();
+--- wizards/com/sun/star/wizards/db/DBMetaData.java	2006-12-01 17:29:36.000000000 +0100
++++ wizards/com/sun/star/wizards/db/DBMetaData.java	2007-05-24 11:24:05.000000000 +0200
+@@ -95,16 +95,16 @@ public class DBMetaData {
+ 
+     public XNameAccess xTableNames;
+     public XNameAccess xQueryNames;
+-    private XInteractionHandler oInteractionHandler;
+-    private XNameAccess xNameAccess;
+-    private XInterface xDatabaseContext;
++    public XInteractionHandler oInteractionHandler;
++    public XNameAccess xNameAccess;
++    public XInterface xDatabaseContext;
+     public XDatabaseMetaData xDBMetaData;
+     public XDataSource xDataSource;
+     public XOfficeDatabaseDocument xModel;
+-    private XCompletedConnection xCompleted;
++    public XCompletedConnection xCompleted;
+     public XPropertySet xDataSourcePropertySet;
+-    private int[] nDataTypes = null;
+-    private XWindowPeer xWindowPeer;
++    public int[] nDataTypes = null;
++    public XWindowPeer xWindowPeer;
+     public String[] DataSourceNames;
+     public String[] CommandNames;
+     public String[] TableNames = new String[] {};
+@@ -126,17 +126,17 @@ public class DBMetaData {
+     int iMaxColumnsInTable;
+     int iMaxColumnNameLength = -1;
+     int iMaxTableNameLength = -1;
+-    private boolean bPasswordIsRequired;
+-    private boolean bFormatKeysareset = false;
++    public boolean bPasswordIsRequired;
++    public boolean bFormatKeysareset = false;
+     final int NOLIMIT = 9999999;
+     final int RID_DB_COMMON = 1000;
+     final int INVALID = 9999999;
+     public TypeInspector oTypeInspector;
+-    private PropertyValue[] aInfoPropertyValues = null;
+-    private boolean bisSQL92CheckEnabled = false;
+-    private NumberFormatter oNumberFormatter = null;
+-    private long lDateCorrection = INVALID;
+-    private boolean bdisposeConnection = false;
++    public PropertyValue[] aInfoPropertyValues = null;
++    public boolean bisSQL92CheckEnabled = false;
++    public NumberFormatter oNumberFormatter = null;
++    public long lDateCorrection = INVALID;
++    public boolean bdisposeConnection = false;
+ 
+     public DBMetaData(XMultiServiceFactory xMSF) {
+         getInterfaces(xMSF);
+@@ -393,13 +393,13 @@ public class DBMetaData {
+         return iMaxColumnsInGroupBy;
+     }
+ 
+-    private void setMaxColumnsInSelect() throws SQLException {
++    public void setMaxColumnsInSelect() throws SQLException {
+         iMaxColumnsInSelect = xDBMetaData.getMaxColumnsInSelect();
+         if (iMaxColumnsInSelect == 0)
+             iMaxColumnsInSelect = this.NOLIMIT;
+     }
+ 
+-    private void setMaxColumnsInGroupBy() throws SQLException {
++    public void setMaxColumnsInGroupBy() throws SQLException {
+         iMaxColumnsInGroupBy = xDBMetaData.getMaxColumnsInGroupBy();
+         if (iMaxColumnsInGroupBy == 0)
+             iMaxColumnsInGroupBy = this.NOLIMIT;
+@@ -414,7 +414,7 @@ public class DBMetaData {
+     }
+ 
+ 
+-    private void getDataSourceObjects() throws Exception{
++    public void getDataSourceObjects() throws Exception{
+     try {
+         xDBMetaData = DBConnection.getMetaData();
+         XChild xChild = (XChild) UnoRuntime.queryInterface(XChild.class, DBConnection);
+@@ -452,7 +452,7 @@ public class DBMetaData {
+     }
+ 
+ 
+-    private void setDataSourceByName(String _DataSourceName, boolean bgetInterfaces) {
++    public void setDataSourceByName(String _DataSourceName, boolean bgetInterfaces) {
+         try {
+             this.DataSourceName = _DataSourceName;
+             Object oDataSource = xNameAccess.getByName(DataSourceName);
+@@ -534,13 +534,13 @@ public class DBMetaData {
+     }
+ 
+ 
+-    private boolean getConnection(String _DataSourceName) {
++    public boolean getConnection(String _DataSourceName) {
+         setDataSourceByName(_DataSourceName, true);
+         return getConnection(xDataSource);
+     }
+ 
+ 
+-    private boolean getConnection(com.sun.star.sdbc.XConnection _DBConnection){
++    public boolean getConnection(com.sun.star.sdbc.XConnection _DBConnection){
+     try {
+         this.DBConnection = _DBConnection;
+         this.ConnectionTools = (XConnectionTools)UnoRuntime.queryInterface( XConnectionTools.class, this.DBConnection );
+@@ -552,7 +552,7 @@ public class DBMetaData {
+     }}
+ 
+ 
+-    private boolean getConnection(XDataSource xDataSource){
++    public boolean getConnection(XDataSource xDataSource){
+     Resource oResource = new Resource(xMSF, "Database", "dbw");
+     try {
+         int iMsg = 0;
+@@ -793,7 +793,7 @@ public class DBMetaData {
+     }
+ 
+ 
+-    private String[] StringsFromResultSet(XResultSet _xResultSet, int _icol){
++    public String[] StringsFromResultSet(XResultSet _xResultSet, int _icol){
+         String[] sColValues = null;
+         try {
+             XRow xRow = (XRow) UnoRuntime.queryInterface(XRow.class, _xResultSet);
+--- wizards/com/sun/star/wizards/db/FieldColumn.java	2006-12-01 17:29:49.000000000 +0100
++++ wizards/com/sun/star/wizards/db/FieldColumn.java	2007-05-24 11:24:05.000000000 +0200
+@@ -57,12 +57,12 @@ public class FieldColumn {
+     public boolean bIsNumberFormat;
+     public XPropertySet m_xColPropertySet;
+     public int iType;
+-    protected int iDateFormatKey;
+-    protected int iDateTimeFormatKey;
+-    protected int iNumberFormatKey;
+-    protected int iTextFormatKey;
+-    protected int iTimeFormatKey;
+-    protected int iLogicalFormatKey;
++    public int iDateFormatKey;
++    public int iDateTimeFormatKey;
++    public int iNumberFormatKey;
++    public int iTextFormatKey;
++    public int iTimeFormatKey;
++    public int iLogicalFormatKey;
+ 
+     public FieldColumn(CommandMetaData oCommandMetaData, String _DisplayFieldName) {
+         DisplayFieldName = _DisplayFieldName;
+@@ -100,7 +100,7 @@ public class FieldColumn {
+     }
+ 
+     
+-    private String getFieldName(String _DisplayFieldName, String _CommandName){
++    public String getFieldName(String _DisplayFieldName, String _CommandName){
+     	return _DisplayFieldName.substring(_CommandName.length()+1, _DisplayFieldName.length());
+     }
+         
+@@ -109,7 +109,7 @@ public class FieldColumn {
+         return _sCommandName + "." + _sFieldName;
+     }
+     
+-    private void setFormatKeys(CommandMetaData oCommandMetaData, XNameAccess _xColumns){
++    public void setFormatKeys(CommandMetaData oCommandMetaData, XNameAccess _xColumns){
+     try {
+         m_xColPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, _xColumns.getByName(FieldName));
+         ColIndex = JavaTools.FieldInList(_xColumns.getElementNames(), FieldName) + 1;
+@@ -188,7 +188,7 @@ public class FieldColumn {
+         return bIsBoolean;
+     }
+ 
+-    private Object getTyperelatedFieldData() {
++    public Object getTyperelatedFieldData() {
+         try {
+             FieldType = AnyConverter.toInt(m_xColPropertySet.getPropertyValue("Type"));
+             switch (FieldType) {
+@@ -298,7 +298,7 @@ public class FieldColumn {
+         }
+     }
+ 
+-    private void getTextFieldWidth(int iWidth) {
++    public void getTextFieldWidth(int iWidth) {
+         int iNewWidth = iWidth;
+         try {
+             FieldWidth = AnyConverter.toInt(m_xColPropertySet.getPropertyValue("Precision"));
+--- wizards/com/sun/star/wizards/db/RecordParser.java	2006-12-01 17:30:14.000000000 +0100
++++ wizards/com/sun/star/wizards/db/RecordParser.java	2007-05-24 11:24:05.000000000 +0200
+@@ -77,7 +77,7 @@ public class RecordParser extends QueryM
+         getInterfaces();
+     }
+ 
+-    private void getInterfaces() {
++    public void getInterfaces() {
+         try {
+             xRowSet = (XInterface) xMSF.createInstance("com.sun.star.sdb.RowSet");
+             xRowSetColumnsSupplier = (XColumnsSupplier) UnoRuntime.queryInterface(XColumnsSupplier.class, xRowSet);
+@@ -90,7 +90,7 @@ public class RecordParser extends QueryM
+         }
+     }
+ 
+-    private Object getColumnStringValue(int ColIndex) {
++    public Object getColumnStringValue(int ColIndex) {
+         try {
+             com.sun.star.uno.Type CurType;
+             Object oAny;
+@@ -104,7 +104,7 @@ public class RecordParser extends QueryM
+         }
+     }
+ 
+-    private Object getColumnDoubleValue(int ColIndex, boolean bisDate) {
++    public Object getColumnDoubleValue(int ColIndex, boolean bisDate) {
+         try {
+             Double DblValue;
+             if (bisDate)
+@@ -239,7 +239,7 @@ public class RecordParser extends QueryM
+     }}
+ 
+     
+-    private FieldColumn[] getFieldColumnList(String[] _FieldNames) {
++    public FieldColumn[] getFieldColumnList(String[] _FieldNames) {
+         FieldColumn[] LocFieldColumns = new FieldColumn[_FieldNames.length];
+         for (int i = 0; i < _FieldNames.length; i++) {
+             LocFieldColumns[i] = super.getFieldColumnByFieldName(_FieldNames[i]);
+--- wizards/com/sun/star/wizards/db/RelationController.java	2006-04-07 14:36:44.000000000 +0200
++++ wizards/com/sun/star/wizards/db/RelationController.java	2007-05-24 11:24:05.000000000 +0200
+@@ -55,15 +55,15 @@ import com.sun.star.wizards.common.JavaT
+  * Window - Preferences - Java - Code Style - Code Templates
+  */
+ public class RelationController extends CommandName {
+-    private int  PKTABLE_CAT = 1;
+-    private int  PKTABLE_SCHEM = 2;
+-    private int  PKTABLE_NAME = 3;
+-    private int  PKCOLUMN_NAME = 4;
++    public int  PKTABLE_CAT = 1;
++    public int  PKTABLE_SCHEM = 2;
++    public int  PKTABLE_NAME = 3;
++    public int  PKCOLUMN_NAME = 4;
+ 
+-    private int  FKTABLE_CAT = 5;
+-    private int  FKTABLE_SCHEM = 6;
+-    private int  FKTABLE_NAME = 7;
+-    private int  FKCOLUMN_NAME = 8;
++    public int  FKTABLE_CAT = 5;
++    public int  FKTABLE_SCHEM = 6;
++    public int  FKTABLE_NAME = 7;
++    public int  FKCOLUMN_NAME = 8;
+     
+     public RelationController(CommandMetaData _CommandMetaData, String _CatalogName, String _SchemaName, String _TableName, boolean _baddQuotation){
+         super(_CommandMetaData, _CatalogName, _SchemaName, _TableName, _baddQuotation);
+@@ -97,7 +97,7 @@ public class RelationController extends 
+     return sReferencedTableNames;
+     }
+ 
+-    private Object getCatalogName(CommandName _oCommandName){
++    public Object getCatalogName(CommandName _oCommandName){
+         String sLocCatalog = _oCommandName.getCatalogName(); 
+         if (sLocCatalog.equals(""))
+             return null;
+--- wizards/com/sun/star/wizards/db/SQLQueryComposer.java	2006-07-06 16:16:25.000000000 +0200
++++ wizards/com/sun/star/wizards/db/SQLQueryComposer.java	2007-05-24 11:24:05.000000000 +0200
+@@ -86,7 +86,7 @@ public class SQLQueryComposer {
+         }
+     }
+ 
+-	private boolean addtoSelectClause(String DisplayFieldName) throws SQLException {
++	public boolean addtoSelectClause(String DisplayFieldName) throws SQLException {
+         if (bincludeGrouping){
+             if (CurDBMetaData.xDBMetaData.supportsGroupByUnrelated()) {
+                 if (CurDBMetaData.GroupFieldNames != null) {
+@@ -165,7 +165,7 @@ public class SQLQueryComposer {
+         }
+     }
+ 
+-    private void appendSortingCriterion(int _SortIndex, boolean _baddAliasFieldNames ) throws SQLException{
++    public void appendSortingCriterion(int _SortIndex, boolean _baddAliasFieldNames ) throws SQLException{
+   		XPropertySet xColumn = CurDBMetaData.getColumnObjectByFieldName(CurDBMetaData.SortFieldNames[_SortIndex][0], _baddAliasFieldNames);
+     	boolean bascend = (CurDBMetaData.SortFieldNames[_SortIndex][1] == "ASC");
+         xQueryComposer.appendOrderByColumn(xColumn, bascend);
+@@ -203,7 +203,7 @@ public class SQLQueryComposer {
+         this.CurDBMetaData = _oDBMetaData;
+     }
+ 
+-    private PropertyValue[][] replaceConditionsByAlias(PropertyValue _filterconditions[][]) {
++    public PropertyValue[][] replaceConditionsByAlias(PropertyValue _filterconditions[][]) {
+         for (int n = 0; n < _filterconditions.length; n++) {
+             for (int m = 0; m < _filterconditions[n].length; m++) {
+                 _filterconditions[n][m].Name = getComposedAliasFieldName(_filterconditions[n][m].Name);
+@@ -256,7 +256,7 @@ public class SQLQueryComposer {
+     }
+ 
+ 
+-    private String getComposedAliasFieldName(String _fieldname){
++    public String getComposedAliasFieldName(String _fieldname){
+         FieldColumn CurFieldColumn = CurDBMetaData.getFieldColumnByDisplayName(_fieldname);
+         CommandName curComposedCommandName = getComposedCommandByDisplayName(CurFieldColumn.getCommandName());
+         String curAliasName = curComposedCommandName.getAliasName();
+@@ -264,7 +264,7 @@ public class SQLQueryComposer {
+     }
+ 
+ 
+-    private CommandName getComposedCommandByAliasName(String _AliasName) {
++    public CommandName getComposedCommandByAliasName(String _AliasName) {
+         if (composedCommandNames != null) {
+             CommandName curComposedName;
+             for (int i = 0; i < composedCommandNames.size(); i++) {
+@@ -307,7 +307,7 @@ public class SQLQueryComposer {
+     }
+ 
+ 
+-    private String quoteName(String _sname){
++    public String quoteName(String _sname){
+         return CommandName.quoteName(_sname, CurDBMetaData.getIdentifierQuote());
+     }
+ 
+--- wizards/com/sun/star/wizards/db/TableDescriptor.java	2006-12-01 17:30:27.000000000 +0100
++++ wizards/com/sun/star/wizards/db/TableDescriptor.java	2007-05-24 11:24:05.000000000 +0200
+@@ -74,28 +74,28 @@ import com.sun.star.wizards.common.Prope
+ public class TableDescriptor extends CommandMetaData  implements XContainerListener{
+     XDataDescriptorFactory xTableDataDescriptorFactory;
+     XPropertySet xPropTableDataDescriptor;
+-    private XNameAccess xNameAccessColumns;
+-    private XIndexAccess xIndexAccessKeys;
++    public XNameAccess xNameAccessColumns;
++    public XIndexAccess xIndexAccessKeys;
+     
+     public XDataDescriptorFactory xColumnDataDescriptorFactory;
+     XContainer xTableContainer;
+     XAppend xTableAppend;
+     XDrop   xTableDrop;
+-    private XAppend xKeyAppend;
+-    private XDrop xKeyDrop;
+-    private String[] sTableFilters = null;
+-    private Vector columncontainer;
+-    private Vector keycolumncontainer;
++    public XAppend xKeyAppend;
++    public XDrop xKeyDrop;
++    public String[] sTableFilters = null;
++    public Vector columncontainer;
++    public Vector keycolumncontainer;
+     public XHierarchicalNameAccess xTableHierarchicalNameAccess;
+-    private CommandName ComposedTableName;
+-    private XAppend xKeyColAppend;
+-    private XColumnsSupplier xKeyColumnSupplier;
+-    private XPropertySet xKey;
+-    private boolean bIDFieldisInserted = false;
+-    private String IDFieldName = "";
+-    private String sColumnAlreadyExistsMessage = "";
+-    private WizardDialog oUnoDialog;
+-    private XWindow xWindow;
++    public CommandName ComposedTableName;
++    public XAppend xKeyColAppend;
++    public XColumnsSupplier xKeyColumnSupplier;
++    public XPropertySet xKey;
++    public boolean bIDFieldisInserted = false;
++    public String IDFieldName = "";
++    public String sColumnAlreadyExistsMessage = "";
++    public WizardDialog oUnoDialog;
++    public XWindow xWindow;
+         
+         /**
+          * @param xMSF
+@@ -109,7 +109,7 @@ public class TableDescriptor extends Com
+         }
+ 
+         
+-        private class ColumnDescriptor{
++        public class ColumnDescriptor{
+             String Name;
+             XPropertySet xColPropertySet;
+ 
+@@ -144,7 +144,7 @@ public class TableDescriptor extends Com
+         }
+         
+         
+-        private void removePrimaryKeys(){
++        public void removePrimaryKeys(){
+            if (keycolumncontainer.size() > 0){
+                 for (int i = (keycolumncontainer.size()-1); i >= 0 ; i--){
+                     keycolumncontainer.remove(i);
+@@ -272,7 +272,7 @@ public class TableDescriptor extends Com
+         }
+         
+         
+-        private boolean removeAllColumnsFromDescriptor(String _tablename){
++        public boolean removeAllColumnsFromDescriptor(String _tablename){
+             try {
+                 xPropTableDataDescriptor.setPropertyValue("Name", "");
+                 if ((xKeyDrop != null) && (xIndexAccessKeys != null)){
+@@ -311,7 +311,7 @@ public class TableDescriptor extends Com
+         }
+         
+         
+-        private void assignTableProperty(String _spropname, String _svalue){
++        public void assignTableProperty(String _spropname, String _svalue){
+             if (_svalue != null){
+                 if (!_svalue.equals("")){
+                     try {
+@@ -415,7 +415,7 @@ public class TableDescriptor extends Com
+         }
+         
+         
+-        private boolean hasByName(String _fieldname){
++        public boolean hasByName(String _fieldname){
+             try {
+                 if (columncontainer.size() > 0){
+                     for (int i = 0; i < columncontainer.size(); i++){
+@@ -432,7 +432,7 @@ public class TableDescriptor extends Com
+         }
+ 
+ 
+-        private ColumnDescriptor getColumnDescriptorByName(String _fieldname){
++        public ColumnDescriptor getColumnDescriptorByName(String _fieldname){
+             try {
+                 if (this.columncontainer.size() > 0){
+                     for (int i = 0; i < columncontainer.size(); i++){
+@@ -458,7 +458,7 @@ public class TableDescriptor extends Com
+         }
+ 
+         
+-        private XPropertySet getByIndex(int _index){
++        public XPropertySet getByIndex(int _index){
+             try {
+                 if (columncontainer.size() > _index){
+                     ColumnDescriptor oColumnDescriptor = (ColumnDescriptor) columncontainer.get(_index);
+--- wizards/com/sun/star/wizards/db/TypeInspector.java	2006-04-07 14:37:27.000000000 +0200
++++ wizards/com/sun/star/wizards/db/TypeInspector.java	2007-05-24 11:24:05.000000000 +0200
+@@ -51,15 +51,15 @@ import com.sun.star.wizards.common.JavaT
+ 
+ 
+ public class TypeInspector{
+-    private String[] sDataTypeNames;
+-    private int[] nDataTypeInfos;
+-    private int[] nPrecisionInfos;
+-    private int[] nNullableInfos;
+-    private int[] nSearchables;
+-    private boolean[] bisAutoIncrementableInfos;
+-    private int[] nMinScaleInfos;
+-    private int[] nMaxScaleInfos;
+-    private int[] nNumericFallBackList  = new int[]{DataType.INTEGER, DataType.FLOAT, DataType.REAL, DataType.DOUBLE, DataType.NUMERIC, DataType.DECIMAL};
++    public String[] sDataTypeNames;
++    public int[] nDataTypeInfos;
++    public int[] nPrecisionInfos;
++    public int[] nNullableInfos;
++    public int[] nSearchables;
++    public boolean[] bisAutoIncrementableInfos;
++    public int[] nMinScaleInfos;
++    public int[] nMaxScaleInfos;
++    public int[] nNumericFallBackList  = new int[]{DataType.INTEGER, DataType.FLOAT, DataType.REAL, DataType.DOUBLE, DataType.NUMERIC, DataType.DECIMAL};
+     final int INVALID = 999999;     
+     XResultSet xResultSet;
+     
+@@ -177,7 +177,7 @@ public class TypeInspector{
+     }
+ 
+     
+-    private int getDataTypeIndex(XPropertySet _xColPropertySet, boolean _bCheckNumericAttributes){
++    public int getDataTypeIndex(XPropertySet _xColPropertySet, boolean _bCheckNumericAttributes){
+         try {
+             int nPrecision = -1;
+             int nScale = -1;
+--- wizards/com/sun/star/wizards/document/Control.java	2006-04-07 14:37:39.000000000 +0200
++++ wizards/com/sun/star/wizards/document/Control.java	2007-05-24 11:24:05.000000000 +0200
+@@ -69,8 +69,8 @@ public class Control extends Shape{
+     XNamed xNamed;
+     final int SOMAXTEXTSIZE = 50;
+     int icontroltype;
+-    protected XNameContainer xFormName;
+-    protected final int IIMGFIELDWIDTH = 2000;
++    public XNameContainer xFormName;
++    public final int IIMGFIELDWIDTH = 2000;
+         
+         
+     public Control(){
+@@ -169,7 +169,7 @@ public class Control extends Shape{
+     }
+     
+ 
+-    private void setDefaultValue(Object DatabaseField){
++    public void setDefaultValue(Object DatabaseField){
+         oDefaultValue = Helper.getUnoPropertyValue(DatabaseField, "DefaultValue");
+     }
+ 
+--- wizards/com/sun/star/wizards/document/DatabaseControl.java	2006-12-01 17:30:40.000000000 +0100
++++ wizards/com/sun/star/wizards/document/DatabaseControl.java	2007-05-24 11:24:05.000000000 +0200
+@@ -56,10 +56,10 @@ import com.sun.star.wizards.db.FieldColu
+  * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+  */
+ public class DatabaseControl extends Control {
+-    protected int ifieldtype;
+-    private int iMemofieldwidth = IIMGFIELDWIDTH;
+-    private int iMemofieldheight = -1;
+-    private FieldColumn m_FieldColumn;
++    public int ifieldtype;
++    public int iMemofieldwidth = IIMGFIELDWIDTH;
++    public int iMemofieldheight = -1;
++    public FieldColumn m_FieldColumn;
+ 
+ 
+     public DatabaseControl(GridControl _oGridControl, FieldColumn _curfieldcolumn){
+@@ -77,7 +77,7 @@ public class DatabaseControl extends Con
+     }
+ 
+ 
+-    private void createGridColumn(GridControl _oGridControl, FieldColumn _curfieldcolumn, int _fieldtype, String _columntitle){
++    public void createGridColumn(GridControl _oGridControl, FieldColumn _curfieldcolumn, int _fieldtype, String _columntitle){
+     try {
+         ifieldtype = _fieldtype;
+         String suniqueName = Desktop.getUniqueName(_oGridControl.xNameAccess, _curfieldcolumn.FieldName);
+@@ -121,7 +121,7 @@ public class DatabaseControl extends Con
+     }}
+ 
+ 
+-    private String getGridColumnName(){
++    public String getGridColumnName(){
+         for (int i = 0; i < FormHandler.oControlData.length; i++){
+             if (FormHandler.oControlData[i].DataType == this.ifieldtype)
+                 return FormHandler.oControlData[i].GridColumnName;
+--- wizards/com/sun/star/wizards/document/FormHandler.java	2006-04-07 14:38:16.000000000 +0200
++++ wizards/com/sun/star/wizards/document/FormHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -78,7 +78,7 @@ public class FormHandler {
+     public XMultiServiceFactory xMSFDoc;
+     public XMultiServiceFactory xMSF;
+     public XDrawPage xDrawPage;
+-    private XDrawPageSupplier xDrawPageSupplier;
++    public XDrawPageSupplier xDrawPageSupplier;
+     public String[] sModelServices = new String[8];
+     public XNameContainer xNamedForm;
+     public static ControlData[] oControlData;
+--- wizards/com/sun/star/wizards/document/OfficeDocument.java	2006-04-07 14:38:48.000000000 +0200
++++ wizards/com/sun/star/wizards/document/OfficeDocument.java	2007-05-24 11:24:05.000000000 +0200
+@@ -72,8 +72,8 @@ import com.sun.star.util.XCloseable;
+ import com.sun.star.util.XModifiable;
+ 
+ public class OfficeDocument {
+-    private XWindowPeer xWindowPeer;
+-    private XMultiServiceFactory xMSF;
++    public XWindowPeer xWindowPeer;
++    public XMultiServiceFactory xMSF;
+     
+ 
+     /** Creates a new instance of OfficeDocument */
+--- wizards/com/sun/star/wizards/document/Shape.java	2006-07-06 16:16:43.000000000 +0200
++++ wizards/com/sun/star/wizards/document/Shape.java	2007-05-24 11:24:05.000000000 +0200
+@@ -56,11 +56,11 @@ import com.sun.star.wizards.common.JavaT
+  */
+ public class Shape {
+     public XShape xShape;
+-    protected FormHandler oFormHandler; 
++    public FormHandler oFormHandler; 
+     public XServiceInfo xServiceInfo;   
+-    protected Point aPoint; 
+-    protected Size aSize;
+-    protected XControlShape xControlShape;
++    public Point aPoint; 
++    public Size aSize;
++    public XControlShape xControlShape;
+     public XMultiServiceFactory xMSF;
+     public XShapes xShapes;
+ 
+@@ -91,7 +91,7 @@ public class Shape {
+     }
+     
+ 
+-    private void createShape(String sServiceName){
++    public void createShape(String sServiceName){
+     try {
+         xMSF = oFormHandler.xMSFDoc;
+         Object oShape = xMSF.createInstance(sServiceName);
+--- wizards/com/sun/star/wizards/fax/CallWizard.java	2006-04-07 14:39:55.000000000 +0200
++++ wizards/com/sun/star/wizards/fax/CallWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -102,12 +102,12 @@ public class CallWizard {
+         /**
+          * The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.fax.CallWizard";
++        public static final String __serviceName = "com.sun.star.wizards.fax.CallWizard";
+ 
+         /**
+          * The service manager, that gives access to all registered services.
+          */
+-        private XMultiServiceFactory xmultiservicefactory;
++        public XMultiServiceFactory xmultiservicefactory;
+ 
+         /**
+          * This method is a member of the interface for initializing an object directly
+--- wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.java	2006-10-04 22:09:22.000000000 +0200
++++ wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.java	2007-05-24 11:24:05.000000000 +0200
+@@ -54,7 +54,7 @@ public class FaxWizardDialogImpl extends
+     String sPath;
+     boolean bEditTemplate;
+     boolean bSaveSuccess = false;
+-    private boolean filenameChanged = false;
++    public boolean filenameChanged = false;
+     
+     final static int RM_TYPESTYLE = 1;
+     final static int RM_ELEMENTS = 2;
+@@ -256,7 +256,7 @@ public class FaxWizardDialogImpl extends
+         setCurrentRoadmapItemID((short) 1);
+     }
+     
+-    private class myPathSelectionListener implements XPathSelectionListener {
++    public class myPathSelectionListener implements XPathSelectionListener {
+         public void validatePath() {
+             if (myPathSelection.usedPathPicker) {
+                 filenameChanged = true;             
+@@ -274,7 +274,7 @@ public class FaxWizardDialogImpl extends
+         myPathSelection.addSelectionListener(new myPathSelectionListener());
+     }
+     
+-    private void insertIcons() {
++    public void insertIcons() {
+         try {
+             Object oGS = xMSF.createInstance("com.sun.star.graphic.GraphicProvider");
+             XGraphicProvider xGraphicProvider = (XGraphicProvider) UnoRuntime.queryInterface(XGraphicProvider.class, oGS);
+@@ -292,12 +292,12 @@ public class FaxWizardDialogImpl extends
+         
+     }
+     
+-    private void updateUI() {
++    public void updateUI() {
+         UnoDataAware.updateUI(mainDA);
+         UnoDataAware.updateUI(faxDA);
+     }
+     
+-    private void initializePaths() {
++    public void initializePaths() {
+         try {
+             sTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share", "/wizard");
+             sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user", "");
+@@ -349,7 +349,7 @@ public class FaxWizardDialogImpl extends
+         setControlProperty("lstCommunicationType", "StringItemList", resources.CommunicationLabels);
+     }
+     
+-    private void setDefaultForGreetingAndSalutationAndCommunication() {
++    public void setDefaultForGreetingAndSalutationAndCommunication() {
+         XTextComponent xTextComponent;
+         xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation);
+         if (xTextComponent.getText().equals("")) {
+@@ -664,7 +664,7 @@ public class FaxWizardDialogImpl extends
+     public void lstGreetingTextChanged() {      
+     }
+     
+-    private void setPossibleFooter(boolean bState) {
++    public void setPossibleFooter(boolean bState) {
+         setControlProperty("chkUseFooter", "Enabled", new Boolean(bState));
+         if (!bState) {
+             chkUseFooter.setState((short) 0);
+@@ -672,12 +672,12 @@ public class FaxWizardDialogImpl extends
+         chkUseFooterItemChanged();
+     }
+ 
+-    private void enableSenderReceiver() {
++    public void enableSenderReceiver() {
+         XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
+         Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE);
+     }
+     
+-    private void disableSenderReceiver() {
++    public void disableSenderReceiver() {
+         XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
+         Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE);
+     }
+--- wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.java	2006-04-07 14:40:52.000000000 +0200
++++ wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.java	2007-05-24 11:24:05.000000000 +0200
+@@ -13,10 +13,10 @@ public class FaxWizardDialogResources ex
+     final static int RID_FAXWIZARDROADMAP_START = 3300;
+     final static int RID_RID_COMMON_START = 500;
+     
+-    protected String[] RoadmapLabels = new String[7];
+-    protected String[] SalutationLabels = new String[4];
+-    protected String[] GreetingLabels = new String[4];
+-    protected String[] CommunicationLabels = new String[3];
++    public String[] RoadmapLabels = new String[7];
++    public String[] SalutationLabels = new String[4];
++    public String[] GreetingLabels = new String[4];
++    public String[] CommunicationLabels = new String[3];
+     
+     String resOverwriteWarning;
+     String resTemplateDescription;
+@@ -115,32 +115,32 @@ public class FaxWizardDialogResources ex
+         loadCommonResources();
+     }
+     
+-    private void loadCommonResources() {
++    public void loadCommonResources() {
+         resOverwriteWarning = getResText(RID_RID_COMMON_START + 19);
+         resTemplateDescription = getResText(RID_RID_COMMON_START + 20);
+     }
+     
+-    private void loadRoadmapResources() {
++    public void loadRoadmapResources() {
+         for (int i = 1; i < 6; i++) {
+             RoadmapLabels[i] = getResText(RID_FAXWIZARDROADMAP_START + i);
+         }
+     }
+     
+-    private void loadSalutationResources() {
++    public void loadSalutationResources() {
+         for (int i = 1; i < 5; i++) {
+             SalutationLabels[i - 1] = getResText(RID_FAXWIZARDSALUTATION_START
+                     + i);
+         }
+     }
+     
+-    private void loadGreetingResources() {
++    public void loadGreetingResources() {
+         for (int i = 1; i < 5; i++) {
+             GreetingLabels[i - 1] = getResText(RID_FAXWIZARDGREETING_START
+                     + i);
+         }
+     }
+     
+-    private void loadCommunicationResources() {
++    public void loadCommunicationResources() {
+         for (int i = 1; i < 4; i++) {
+             CommunicationLabels[i - 1] = getResText(RID_FAXWIZARDCOMMUNICATION_START
+                     + i);
+--- wizards/com/sun/star/wizards/form/CallFormWizard.java	2006-04-07 14:41:10.000000000 +0200
++++ wizards/com/sun/star/wizards/form/CallFormWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -117,11 +117,11 @@ public class CallFormWizard {
+ 
+         /** The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.form.CallFormWizard";
++        public static final String __serviceName = "com.sun.star.wizards.form.CallFormWizard";
+ 
+         /** The service manager, that gives access to all registered services.
+          */
+-        private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
++        public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
+ 
+         /** This method is a member of the interface for initializing an object
+          * directly after its creation.
+--- wizards/com/sun/star/wizards/form/FieldLinker.java	2006-04-07 14:41:41.000000000 +0200
++++ wizards/com/sun/star/wizards/form/FieldLinker.java	2007-05-24 11:24:05.000000000 +0200
+@@ -78,7 +78,7 @@ public class FieldLinker extends DBLimit
+     }
+ 
+     
+-    protected void insertControlGroup(int i){
++    public void insertControlGroup(int i){
+     try {
+         if (i == 0){
+             lblSlaveFields = new XFixedText[rowcount];
+@@ -117,7 +117,7 @@ public class FieldLinker extends DBLimit
+     }}
+     
+ 
+-    protected void enableNextControlRow(int curindex) {
++    public void enableNextControlRow(int curindex) {
+         setMaxSelIndex();
+         boolean bDoEnable = ((lstSlaveFields[curindex].getSelectedItemPos() > 0) && (lstMasterFields[curindex].getSelectedItemPos() > 0));
+         if (!bDoEnable)
+@@ -127,7 +127,7 @@ public class FieldLinker extends DBLimit
+     }
+     
+     
+-    protected void setMaxSelIndex(){
++    public void setMaxSelIndex(){
+         MaxSelIndex = -1;
+         for (int i = 0; i < rowcount; i++) {
+             if ((lstSlaveFields[i].getSelectedItemPos() > 0) && (lstMasterFields[i].getSelectedItemPos() > 0))
+@@ -136,7 +136,7 @@ public class FieldLinker extends DBLimit
+     }
+     
+     
+-    protected void toggleControlRow(int i, boolean bDoEnable){
++    public void toggleControlRow(int i, boolean bDoEnable){
+         if (i < rowcount) {
+             Helper.setUnoPropertyValue(UnoDialog.getModel(lblSlaveFields[i]), "Enabled", new Boolean(bDoEnable));
+             Helper.setUnoPropertyValue(UnoDialog.getModel(lstSlaveFields[i]), "Enabled", new Boolean(bDoEnable));
+@@ -150,7 +150,7 @@ public class FieldLinker extends DBLimit
+     }
+     
+     
+-    protected void updateFromNextControlRow(int curindex){
++    public void updateFromNextControlRow(int curindex){
+         short iNextMasterItemPos = lstMasterFields[curindex + 1].getSelectedItemPos();
+         short iNextSlaveItemPos = lstSlaveFields[curindex + 1].getSelectedItemPos();
+ 
+--- wizards/com/sun/star/wizards/form/FormConfiguration.java	2006-04-07 14:42:18.000000000 +0200
++++ wizards/com/sun/star/wizards/form/FormConfiguration.java	2007-05-24 11:24:05.000000000 +0200
+@@ -176,7 +176,7 @@ public class FormConfiguration {
+         CurUnoDialog.enablefromStep(FormWizard.SOSUBFORMFIELDSPAGE, false);                 
+     }
+ 
+-    private void toggleRelationsListbox(){
++    public void toggleRelationsListbox(){
+         boolean bdoenable = bsupportsRelations &&  this.optOnExistingRelation.getState() && (chkcreateSubForm.getState() == 1);
+         Helper.setUnoPropertyValue(UnoDialog.getModel(lblRelations), "Enabled", new Boolean(bdoenable));
+         Helper.setUnoPropertyValue(UnoDialog.getModel(lstRelations), "Enabled", new Boolean(bdoenable));                
+--- wizards/com/sun/star/wizards/form/FormControlArranger.java	2006-08-22 16:19:36.000000000 +0200
++++ wizards/com/sun/star/wizards/form/FormControlArranger.java	2007-05-24 11:24:05.000000000 +0200
+@@ -58,8 +58,8 @@ public class FormControlArranger {
+     XMultiServiceFactory xMSF;
+     public DatabaseControl[] DBControlList = null;
+     public Control[] LabelControlList = null;
+-    private XStatusIndicator xProgressBar;
+-    private FieldColumn[] FieldColumns; 
++    public XStatusIndicator xProgressBar;
++    public FieldColumn[] FieldColumns; 
+     DatabaseControl curDBControl;
+     Control curLabelControl;
+     int icurArrangement;
+@@ -110,7 +110,7 @@ public class FormControlArranger {
+     
+     // Note: on all Controls except for the checkbox the Label has to be set
+     // a bit under the DBControl because its Height is also smaller 
+-    private int getLabelDiffHeight(int _index){
++    public int getLabelDiffHeight(int _index){
+         if (curDBControl != null){
+             if (curDBControl.getControlType() == FormHandler.SOCHECKBOX)
+                 return getCheckBoxDiffHeight(_index);
+@@ -124,7 +124,7 @@ public class FormControlArranger {
+     }
+     
+     
+-    private int getCheckBoxDiffHeight(int LastIndex){
++    public int getCheckBoxDiffHeight(int LastIndex){
+         if ((LastIndex < DBControlList.length)){
+             if (DBControlList[LastIndex].getControlType() == FormHandler.SOCHECKBOX){
+                 return (int)((oFormHandler.getDBRefHeight() - DBControlList[LastIndex].getDBHeight())/2);
+@@ -134,7 +134,7 @@ public class FormControlArranger {
+     }
+ 
+     
+-    private boolean isReducable(int _index){
++    public boolean isReducable(int _index){
+         boolean bisreducable = false;
+         int ntype = this.FieldColumns[_index].FieldType;
+         switch(ntype)
+@@ -176,7 +176,7 @@ public class FormControlArranger {
+     }
+         
+     
+-    private int getControlGroupWidth(){
++    public int getControlGroupWidth(){
+         if (nDBWidth > nTCWidth)
+             return nDBWidth;
+         else
+@@ -184,7 +184,7 @@ public class FormControlArranger {
+     }
+     
+ 
+-    private void checkJustifiedPosition(int a){
++    public void checkJustifiedPosition(int a){
+         int nBaseWidth = nFormWidth + cXOffset;
+         int nLeftDist = nMaxColRightX - nBaseWidth;
+         int nRightDist = nBaseWidth - (DBControlList[a].getPosition().X - this.cHoriDistance);
+@@ -226,7 +226,7 @@ public class FormControlArranger {
+     }
+ 
+ 
+-    private int getCorrWidth(int StartIndex , int EndIndex , int nDist, int Widthfactor ){ 
++    public int getCorrWidth(int StartIndex , int EndIndex , int nDist, int Widthfactor ){ 
+     int ShapeCount; 
+         if (Widthfactor > 0){
+             // shapes are made wide
+@@ -247,7 +247,7 @@ public class FormControlArranger {
+      * @param nDist
+      * @param WidthFactor is either '+1' or '-1' and determines whether the control shapes widths are to be made smaller or larger
+      */
+-    private void adjustLineWidth(int StartIndex , int EndIndex , int nDist, int WidthFactor ){
++    public void adjustLineWidth(int StartIndex , int EndIndex , int nDist, int WidthFactor ){
+         int CorrWidth = getCorrWidth(StartIndex, EndIndex, nDist, WidthFactor);
+         int iLocTCPosX = cXOffset;
+         for (int i = StartIndex; i <= EndIndex; i++){
+@@ -284,7 +284,7 @@ public class FormControlArranger {
+ 
+     
+ 
+-    private void checkOuterPoints(int nXPos, int nWidth, int nYPos, int nHeight, boolean bIsDBField){
++    public void checkOuterPoints(int nXPos, int nWidth, int nYPos, int nHeight, boolean bIsDBField){
+         int nColRightX;
+         if (icurArrangement == FormWizard.SOTOPJUSTIFIED){
+             if (bIsDBField){
+@@ -352,14 +352,14 @@ public class FormControlArranger {
+     }
+     
+ 
+-    private void initializeControlColumn(int LastIndex){
++    public void initializeControlColumn(int LastIndex){
+         bIsFirstRun = true;
+         StartA = LastIndex + 1;
+         a = 0;
+     }
+ 
+ 
+-    private void resetPosSizes(int LastIndex){
++    public void resetPosSizes(int LastIndex){
+         int nYRefPos = nYDBPos;
+         switch (icurArrangement){
+             case FormWizard.SOCOLUMNARLEFT:
+@@ -418,7 +418,7 @@ public class FormControlArranger {
+ 
+ 
+ 
+-    private void repositionColumnarLeftControls(int LastIndex ){
++    public void repositionColumnarLeftControls(int LastIndex ){
+         bIsFirstRun = true;
+         for (int i = StartA; i <= LastIndex; i++){
+             if (i == StartA){
+@@ -432,7 +432,7 @@ public class FormControlArranger {
+     }
+ 
+ 
+-    private void resetDBShape(Shape _curDBControl, int iXPos){
++    public void resetDBShape(Shape _curDBControl, int iXPos){
+         int nYDBPos = _curDBControl.getPosition().Y;
+         nDBWidth = _curDBControl.getSize().Width;
+         nDBHeight = _curDBControl.getSize().Height;
+@@ -440,7 +440,7 @@ public class FormControlArranger {
+     }
+ 
+ 
+-    private void initializePosSizes(){
++    public void initializePosSizes(){
+         this.nMaxDBYPos = 0;
+         nXTCPos = cXOffset;
+         nTCWidth = 2000;
+@@ -460,7 +460,7 @@ public class FormControlArranger {
+     }
+ 
+ 
+-    private void insertLabel(int i, int _iAlign){
++    public void insertLabel(int i, int _iAlign){
+     try {
+         if (bControlsareCreated){
+             LabelControlList[i].setPosition(new Point(nXTCPos, nYTCPos));
+@@ -510,7 +510,7 @@ public class FormControlArranger {
+     }}
+ 
+ 
+-    private void insertDBControl(int i ){
++    public void insertDBControl(int i ){
+     try {
+         Point aPoint = new Point(nXDBPos, nYDBPos);
+         if (bControlsareCreated)
+@@ -541,7 +541,7 @@ public class FormControlArranger {
+     }}
+ 
+ 
+-    private int assignFieldLength(int _fieldlength){
++    public int assignFieldLength(int _fieldlength){
+         if (_fieldlength >= 65535)
+             return  -1;
+         else
+--- wizards/com/sun/star/wizards/form/FormDocument.java	2007-04-16 18:52:19.000000000 +0200
++++ wizards/com/sun/star/wizards/form/FormDocument.java	2007-05-24 11:24:05.000000000 +0200
+@@ -66,16 +66,16 @@ public class FormDocument extends TextDo
+     public TextStyleHandler oTextStyleHandler;
+     public XPropertySet xPropPageStyle;
+     public final int SOSYMBOLMARGIN = 2000;
+-    private final int SOFORMGAP = 2000;
++    public final int SOFORMGAP = 2000;
+     public Vector oControlForms = new Vector();
+     public CommandMetaData oMainFormDBMetaData;
+     public CommandMetaData oSubFormDBMetaData;
+-    private boolean bhasSubForm;
+-    private UIControlArranger curUIControlArranger;
++    public boolean bhasSubForm;
++    public UIControlArranger curUIControlArranger;
+     public StyleApplier curStyleApplier;
+     public String[][] LinkFieldNames;
+     public XModel xModel;
+-    private String sMsgEndAutopilot;
++    public String sMsgEndAutopilot;
+     int MainFormStandardHeight;
+     int nPageWidth;
+     int nPageHeight;
+@@ -88,7 +88,7 @@ public class FormDocument extends TextDo
+     final static String SOMAINFORM = "MainForm";
+     final static String SOSUBFORM = "SubForm";
+ 
+-    private final static PropertyValue MODULE_IDENTIFIER = new PropertyValue( "ModuleIdentifier", -1, "com.sun.star.sdb.FormDesign", com.sun.star.beans.PropertyState.DIRECT_VALUE );
++    public final static PropertyValue MODULE_IDENTIFIER = new PropertyValue( "ModuleIdentifier", -1, "com.sun.star.sdb.FormDesign", com.sun.star.beans.PropertyState.DIRECT_VALUE );
+ 
+     public FormDocument(XMultiServiceFactory xMSF, Resource oResource) {
+     super(xMSF, new PropertyValue[]{ MODULE_IDENTIFIER }, true, null);
+@@ -121,11 +121,11 @@ public class FormDocument extends TextDo
+         this.curStyleApplier = _curStyleApplier;
+     }
+ 
+-    private String getDataSourceName(){
++    public String getDataSourceName(){
+         return this.oMainFormDBMetaData.DataSourceName;
+     }
+ 
+-    private void adjustPageStyle(){
++    public void adjustPageStyle(){
+     try {
+         int nMargin;
+         totfieldcount = getTotFieldCount();
+@@ -183,14 +183,14 @@ public class FormDocument extends TextDo
+     }
+ 
+ 
+-    private int getTotFieldCount(){
++    public int getTotFieldCount(){
+ 		nMainFormFieldCount = oMainFormDBMetaData.getFieldNames().length;
+ 		totfieldcount = nMainFormFieldCount + oSubFormDBMetaData.getFieldNames().length;
+         return totfieldcount;
+     }
+ 
+ 
+-    private Size getMainFormSize(int _curArrangement){
++    public Size getMainFormSize(int _curArrangement){
+         int nMainFormHeight = nFormHeight;
+         if (bhasSubForm){
+             if (_curArrangement == FormWizard.SOGRID)
+@@ -206,7 +206,7 @@ public class FormDocument extends TextDo
+     }
+ 
+ 
+-    private Size getSubFormSize(){
++    public Size getSubFormSize(){
+ //      int nSubFormHeight = (int) ((double)nFormHeight/2) - SOFORMGAP;
+ //      int nSubFormFieldCount = this.oSubFormDBMetaData.FieldNames.length;
+ //      int totfieldcount = oMainFormDBMetaData.FieldNames.length + nSubFormFieldCount;
+@@ -215,14 +215,14 @@ public class FormDocument extends TextDo
+         return aSubFormSize;
+     }
+ 
+-    private Point getSubFormPoint(){
++    public Point getSubFormPoint(){
+         ControlForm curMainControlForm = ((ControlForm) oControlForms.get(0));
+         return new Point(curMainControlForm.aStartPoint.X,
+                         (curMainControlForm.aStartPoint.Y + curMainControlForm.getFormSize().Height +  SOFORMGAP));
+     }
+ 
+ 
+-    private void adjustMainFormSize(Short _NBorderType){
++    public void adjustMainFormSize(Short _NBorderType){
+         ControlForm oMainControlForm = (ControlForm) oControlForms.get(0);
+         oMainControlForm.setFormSize(getMainFormSize(oMainControlForm.curArrangement));
+         if (oMainControlForm.curArrangement == FormWizard.SOGRID)
+@@ -235,7 +235,7 @@ public class FormDocument extends TextDo
+     }
+ 
+ 
+-    private void adjustSubFormPosSize(Short _NBorderType){
++    public void adjustSubFormPosSize(Short _NBorderType){
+         ControlForm oMainControlForm = (ControlForm) oControlForms.get(0);
+         ControlForm oSubControlForm = (ControlForm) oControlForms.get(1);
+         oSubControlForm.setFormSize(new Size(nFormWidth, (int)nFormHeight - oMainControlForm.getFormSize().Height));
+@@ -313,7 +313,7 @@ public class FormDocument extends TextDo
+         FormDocument oFormDocument;
+         String Name;
+         Point aStartPoint;
+-        private Size aFormSize;
++        public Size aFormSize;
+         CommandMetaData oDBMetaData;
+         XPropertySet xPropertySet;
+ 
+@@ -385,7 +385,7 @@ public class FormDocument extends TextDo
+             return aFormSize;
+         }
+ 
+-        private Size getAvailableFormSize(){
++        public Size getAvailableFormSize(){
+             if (this.Name.equals(SOMAINFORM))
+                 setFormSize(getMainFormSize(curArrangement));
+             else
+@@ -399,13 +399,13 @@ public class FormDocument extends TextDo
+         }
+ 
+ 
+-        private void setStartPoint(Point _aPoint){
++        public void setStartPoint(Point _aPoint){
+             aStartPoint = _aPoint;
+             if (oFormController != null)
+                 oFormController.setStartPoint(_aPoint);
+         }
+ 
+-        private int getActualFormHeight(){
++        public int getActualFormHeight(){
+             if (curArrangement == FormWizard.SOGRID)
+                 return oGridControl.xShape.getSize().Height;
+             else
+@@ -413,7 +413,7 @@ public class FormDocument extends TextDo
+         }
+ 
+ 
+-        private int getEntryPointY(){
++        public int getEntryPointY(){
+             if (curArrangement == FormWizard.SOGRID)
+                 return oGridControl.xShape.getPosition().Y;
+             else
+@@ -421,7 +421,7 @@ public class FormDocument extends TextDo
+         }
+ 
+ 
+-        private void setFormProperties(PropertyValue[] _aPropertySetList, CommandMetaData _oDBMetaData){
++        public void setFormProperties(PropertyValue[] _aPropertySetList, CommandMetaData _oDBMetaData){
+         try {
+             xPropertySet.setPropertyValue("DataSourceName", getDataSourceName());
+             xPropertySet.setPropertyValue("Command", _oDBMetaData.getCommandName());
+@@ -448,7 +448,7 @@ public class FormDocument extends TextDo
+             return curArrangement;
+         }
+ 
+-        private void insertGridControl(Short _NBorderType){
++        public void insertGridControl(Short _NBorderType){
+         try {
+ 			curArrangement = FormWizard.SOGRID;
+ 			if (Name.equals(SOMAINFORM))
+--- wizards/com/sun/star/wizards/form/FormWizard.java	2007-04-16 18:52:35.000000000 +0200
++++ wizards/com/sun/star/wizards/form/FormWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -99,7 +99,7 @@ public class FormWizard extends WizardDi
+     }
+ 
+ 
+-    protected void enterStep(int nOldStep, int nNewStep) {
++    public void enterStep(int nOldStep, int nNewStep) {
+     try {
+         if ((nOldStep < SOCONTROLPAGE) && (nNewStep >= SOCONTROLPAGE)){
+             curFormDocument.initialize(curDBCommandFieldSelection.isModified(), curFormConfiguration.hasSubForm(), curSubFormFieldSelection.isModified(), getBorderType());
+@@ -138,11 +138,11 @@ public class FormWizard extends WizardDi
+         e.printStackTrace(System.out);
+     }}
+ 
+-    protected Short getBorderType(){
++    public Short getBorderType(){
+     	return curStyleApplier.getBorderType();
+     }
+ 
+-    protected void leaveStep(int nOldStep, int nNewStep){
++    public void leaveStep(int nOldStep, int nNewStep){
+          switch (nOldStep){
+             case SOMAINPAGE:
+ //				curFormDocument.oMainFormDBMetaData.setFieldNames(curDBCommandFieldSelection.getSelectedFieldNames());
+@@ -325,7 +325,7 @@ public class FormWizard extends WizardDi
+ 
+ 
+     public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
+-         protected int ID;
++         public int ID;
+ 
+          public int getID(){
+              return ID;
+@@ -368,7 +368,7 @@ public class FormWizard extends WizardDi
+          public void moveItemUp(String item){
+          }
+ 
+-         private boolean toggleSubFormSteps(){
++         public boolean toggleSubFormSteps(){
+             curSubFormFieldSelection.setModified(true);
+             boolean benable = curSubFormFieldSelection.getSelectedFieldNames().length > 0;
+             enablefromStep(SOFIELDLINKERPAGE, benable);
+@@ -377,7 +377,7 @@ public class FormWizard extends WizardDi
+             return benable;
+          }
+ 
+-        private void toggleMainFormSteps(){
++        public void toggleMainFormSteps(){
+             curDBCommandFieldSelection.setModified(true);
+             boolean benable = curDBCommandFieldSelection.getSelectedFieldNames().length > 0;
+             enablefromStep(SOSUBFORMPAGE, benable);
+--- wizards/com/sun/star/wizards/form/StyleApplier.java	2006-07-13 14:14:43.000000000 +0200
++++ wizards/com/sun/star/wizards/form/StyleApplier.java	2007-05-24 11:24:05.000000000 +0200
+@@ -155,7 +155,7 @@ public class StyleApplier{
+ */  
+     
+     
+-    private void setStyles(){   
++    public void setStyles(){   
+     try {
+         Object oRootNode = Configuration.getConfigurationRoot(xMSF, "org.openoffice.Office.FormWizard/FormWizard/Styles", false);
+         XNameAccess xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, oRootNode);
+@@ -172,7 +172,7 @@ public class StyleApplier{
+     }}
+     
+     
+-    private short getStyleIndex(){
++    public short getStyleIndex(){
+     try {
+         short[] SelFields = (short[]) AnyConverter.toArray(Helper.getUnoPropertyValue(UnoDialog.getModel(lstStyles), "SelectedItems"));
+         if (SelFields != null)
+@@ -266,7 +266,7 @@ public class StyleApplier{
+     }   
+     
+     
+-    private int getStyleColor(String[] _sDataList, String _sHeader, String _sPropertyDescription){
++    public int getStyleColor(String[] _sDataList, String _sHeader, String _sPropertyDescription){
+         int iColor = -1;
+         int index = JavaTools.FieldInList(_sDataList, _sHeader);
+         if (index > -1){
+@@ -292,7 +292,7 @@ public class StyleApplier{
+     }
+ 
+     
+-    private int[] getStyleColors(String _filename){
++    public int[] getStyleColors(String _filename){
+         String sFilePath = this.StylesPath + "/" + _filename;
+         int[] oStylePropList = new int[6];
+         String[] sData = FileAccess.getDataFromTextFile(xMSF, sFilePath);
+@@ -307,7 +307,7 @@ public class StyleApplier{
+     
+     
+         
+-    private void setDBControlColors(XPropertySet xPropertySet, int[] _iStyleColors){
++    public void setDBControlColors(XPropertySet xPropertySet, int[] _iStyleColors){
+         try {
+             if (xPropertySet.getPropertySetInfo().hasPropertyByName("TextColor")){
+                 if (_iStyleColors[SODBTEXTCOLOR] > -1)
+--- wizards/com/sun/star/wizards/form/UIControlArranger.java	2006-07-06 16:20:53.000000000 +0200
++++ wizards/com/sun/star/wizards/form/UIControlArranger.java	2007-05-24 11:24:05.000000000 +0200
+@@ -116,7 +116,7 @@ public class UIControlArranger {
+     }
+ 
+ 
+-    private class LayoutRenderer implements ImageList.ImageRenderer {
++    public class LayoutRenderer implements ImageList.ImageRenderer {
+         public Object[] getImageUrls(Object listitem) {
+             
+             int ResId = UIConsts.RID_IMG_FORM + (2 * ((Integer)listitem).intValue());
+@@ -168,14 +168,14 @@ public class UIControlArranger {
+     }}
+ 
+ 
+-    private void enableAlignControlGroup(boolean _bEnableAlignControlGroup){
++    public void enableAlignControlGroup(boolean _bEnableAlignControlGroup){
+         Helper.setUnoPropertyValue(UnoDialog.getModel(flnLabelPlacement), "Enabled", new Boolean(_bEnableAlignControlGroup));
+         Helper.setUnoPropertyValue(UnoDialog.getModel(optAlignLeft), "Enabled", new Boolean(_bEnableAlignControlGroup));
+         Helper.setUnoPropertyValue(UnoDialog.getModel(optAlignRight), "Enabled", new Boolean(_bEnableAlignControlGroup));
+     }
+ 
+     
+-    private class ArrangeImageList implements XItemListener{
++    public class ArrangeImageList implements XItemListener{
+         int formindex;
+         ImageList ilLayouts = new ImageList();
+         
+--- wizards/com/sun/star/wizards/letter/CallWizard.java	2006-04-07 14:46:03.000000000 +0200
++++ wizards/com/sun/star/wizards/letter/CallWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -102,12 +102,12 @@ public class CallWizard {
+         /**
+          * The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.letter.CallWizard";
++        public static final String __serviceName = "com.sun.star.wizards.letter.CallWizard";
+ 
+         /**
+          * The service manager, that gives access to all registered services.
+          */
+-        private XMultiServiceFactory xmultiservicefactory;
++        public XMultiServiceFactory xmultiservicefactory;
+ 
+         /**
+          * This method is a member of the interface for initializing an object directly
+--- wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java	2006-10-04 22:09:46.000000000 +0200
++++ wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java	2007-05-24 11:24:05.000000000 +0200
+@@ -67,7 +67,7 @@ public class LetterWizardDialogImpl exte
+     String sPath;
+     boolean bEditTemplate;
+     boolean bSaveSuccess = false;
+-    private boolean filenameChanged = false;
++    public boolean filenameChanged = false;
+ 
+     LetterDocument.BusinessPaperObject BusCompanyLogo = null;
+     LetterDocument.BusinessPaperObject BusCompanyAddress = null;
+@@ -674,19 +674,19 @@ public class LetterWizardDialogImpl exte
+         chkUseFooterItemChanged();
+     }
+ 
+-    private void setPossibleFooter(boolean bState) {
++    public void setPossibleFooter(boolean bState) {
+         setControlProperty("chkUseFooter", "Enabled", new Boolean(bState));
+         chkUseFooterItemChanged();
+     }
+ 
+-    private void setPossibleAddressReceiver(boolean bState) {
++    public void setPossibleAddressReceiver(boolean bState) {
+         if (myLetterDoc.hasElement("Sender Address Repeated")) {        
+             setControlProperty("chkUseAddressReceiver", "Enabled", new Boolean(bState));
+             chkUseAddressReceiverItemChanged();
+         }
+     }
+ 
+-    private void setPossibleLogo(boolean bState) {
++    public void setPossibleLogo(boolean bState) {
+         if (myLetterDoc.hasElement("Company Logo")) {
+             setControlProperty("chkUseLogo", "Enabled", new Boolean(bState));
+             chkUseLogoItemChanged();
+@@ -751,7 +751,7 @@ public class LetterWizardDialogImpl exte
+         setControlProperty("lstGreeting", "Enabled", new Boolean(chkUseGreeting.getState() != 0));
+     }
+     
+-    private void setDefaultForGreetingAndSalutation() {
++    public void setDefaultForGreetingAndSalutation() {
+         XTextComponent xTextComponent;
+         xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation);
+         if (xTextComponent.getText().equals("")) {
+@@ -783,7 +783,7 @@ public class LetterWizardDialogImpl exte
+         }
+     }
+     
+-    private int getOfficeLinguistic() {
++    public int getOfficeLinguistic() {
+         int oL = 0;
+         boolean found = false;
+         String OfficeLinguistic = Configuration.getOfficeLinguistic(xMSF);
+@@ -807,7 +807,7 @@ public class LetterWizardDialogImpl exte
+         return oL;
+     }
+     
+-    private void setPossibleSenderData(boolean bState) {
++    public void setPossibleSenderData(boolean bState) {
+         setControlProperty("optSenderDefine", "Enabled", new Boolean(bState));
+         setControlProperty("optSenderPlaceholder", "Enabled", new Boolean(bState));
+         setControlProperty("lblSenderAddress", "Enabled", new Boolean(bState));
+@@ -824,17 +824,17 @@ public class LetterWizardDialogImpl exte
+         }
+     }
+     
+-    private void enableSenderReceiver() {
++    public void enableSenderReceiver() {
+         XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
+         Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE);
+     }
+     
+-    private void disableSenderReceiver() {
++    public void disableSenderReceiver() {
+         XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
+         Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE);
+     }
+         
+-    private void enableBusinessPaper() {
++    public void enableBusinessPaper() {
+         XInterface BPaperItem = getRoadmapItemByID(RM_BUSINESSPAPER);
+         Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE);
+         chkPaperCompanyLogoItemChanged();
+@@ -843,7 +843,7 @@ public class LetterWizardDialogImpl exte
+         chkCompanyReceiverItemChanged();
+     }
+ 
+-    private void disableBusinessPaper() {
++    public void disableBusinessPaper() {
+         XInterface BPaperItem = getRoadmapItemByID(RM_BUSINESSPAPER);
+         Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE);
+         if (BusCompanyLogo != null) {
+@@ -1010,7 +1010,7 @@ public class LetterWizardDialogImpl exte
+         setControlProperty("lstLetterNorm", "StringItemList", LanguageLabels);
+     }
+     
+-    private CGLetter getCurrentLetter() {
++    public CGLetter getCurrentLetter() {
+         switch (myConfig.cp_LetterType) {
+             case 0 : return myConfig.cp_BusinessLetter;
+             case 1 : return myConfig.cp_PrivateOfficialLetter;
+@@ -1019,7 +1019,7 @@ public class LetterWizardDialogImpl exte
+         }
+     }
+ 
+-    private void initializePaths() {
++    public void initializePaths() {
+         try {
+             sTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share", "/wizard");
+             sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user", "");
+@@ -1105,7 +1105,7 @@ public class LetterWizardDialogImpl exte
+         setCurrentRoadmapItemID((short) 1);
+     }
+     
+-    private class myPathSelectionListener implements XPathSelectionListener {
++    public class myPathSelectionListener implements XPathSelectionListener {
+         public void validatePath() {
+             if (myPathSelection.usedPathPicker) {
+                 filenameChanged = true;             
+@@ -1186,7 +1186,7 @@ public class LetterWizardDialogImpl exte
+ 
+     }
+     
+-    private void updateUI() {
++    public void updateUI() {
+         UnoDataAware.updateUI(mainDA);
+         UnoDataAware.updateUI(letterDA);
+         UnoDataAware.updateUI(businessDA);          
+--- wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.java	2006-04-07 14:48:00.000000000 +0200
++++ wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.java	2007-05-24 11:24:05.000000000 +0200
+@@ -14,10 +14,10 @@ public class LetterWizardDialogResources
+     final static int RID_LETTERWIZARDLANGUAGE_START = 3110;
+     final static int RID_RID_COMMON_START = 500;
+ 
+-    protected String[] RoadmapLabels = new String[7];
+-    protected String[] SalutationLabels = new String[3];
+-    protected String[] GreetingLabels = new String[3];
+-    protected String[] LanguageLabels = new String[16];
++    public String[] RoadmapLabels = new String[7];
++    public String[] SalutationLabels = new String[3];
++    public String[] GreetingLabels = new String[3];
++    public String[] LanguageLabels = new String[16];
+     
+     String resOverwriteWarning;
+     String resTemplateDescription;
+@@ -148,24 +148,24 @@ public class LetterWizardDialogResources
+         loadCommonResources();
+     }
+     
+-    private void loadCommonResources() {
++    public void loadCommonResources() {
+         resOverwriteWarning = getResText(RID_RID_COMMON_START + 19);
+         resTemplateDescription = getResText(RID_RID_COMMON_START + 20);
+     }
+ 
+-    private void loadRoadmapResources() {
++    public void loadRoadmapResources() {
+         for (int i = 1; i < 7; i++) {
+             RoadmapLabels[i] = getResText(RID_LETTERWIZARDROADMAP_START + i);
+         }
+     }
+     
+-    private void loadSalutationResources() {
++    public void loadSalutationResources() {
+         for (int i = 1; i < 4; i++) {
+             SalutationLabels[i-1] = getResText(RID_LETTERWIZARDSALUTATION_START + i);
+         }
+     }
+     
+-    private void loadGreetingResources() {
++    public void loadGreetingResources() {
+         for (int i = 1; i < 4; i++) {
+             GreetingLabels[i-1] = getResText(RID_LETTERWIZARDGREETING_START + i);
+         }
+--- wizards/com/sun/star/wizards/query/CallQueryWizard.java	2006-04-07 14:48:29.000000000 +0200
++++ wizards/com/sun/star/wizards/query/CallQueryWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -106,11 +106,11 @@ public class CallQueryWizard {
+ 
+         /** The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.query.CallQueryWizard";
++        public static final String __serviceName = "com.sun.star.wizards.query.CallQueryWizard";
+ 
+         /** The service manager, that gives access to all registered services.
+          */
+-        private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
++        public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
+ 
+         /** This method is a member of the interface for initializing an object
+          * directly after its creation.
+--- wizards/com/sun/star/wizards/query/Finalizer.java	2006-07-10 18:05:08.000000000 +0200
++++ wizards/com/sun/star/wizards/query/Finalizer.java	2007-05-24 11:24:05.000000000 +0200
+@@ -91,7 +91,7 @@ public class Finalizer {
+     /* TODO: The title textbox always has to be updated when
+         a new Table has been selected if it is clear that the user has not made any input meanwhile
+     */
+-    protected String initialize() {
++    public String initialize() {
+         try {
+             String sCurQueryName = AnyConverter.toString(Helper.getUnoPropertyValue(UnoDialog.getModel(txtTitle), "Text"));
+             if (sCurQueryName != null) {
+@@ -112,7 +112,7 @@ public class Finalizer {
+         }
+     }
+ 
+-    private String getTitle() {
++    public String getTitle() {
+         return (String) Helper.getUnoPropertyValue(UnoDialog.getModel(txtTitle), "Text");
+     }
+ 
+--- wizards/com/sun/star/wizards/query/QuerySummary.java	2006-07-06 16:21:09.000000000 +0200
++++ wizards/com/sun/star/wizards/query/QuerySummary.java	2007-05-24 11:24:05.000000000 +0200
+@@ -46,10 +46,10 @@ public class QuerySummary extends QueryM
+     String sSummary;
+     Resource oResource;
+     XMultiServiceFactory xMSF;
+-    private String sSeparator;
+-    private String sReturnChar;
+-    private String sAnd;
+-    private String sOr; 
++    public String sSeparator;
++    public String sReturnChar;
++    public String sAnd;
++    public String sOr; 
+ 
+ 
+     public QuerySummary(XMultiServiceFactory _xMSF, Resource _oResource) {
+@@ -103,7 +103,7 @@ public class QuerySummary extends QueryM
+     }
+ 
+ 
+-    private String combineFilterNameFraction(PropertyValue[][] _filterconditions, int _InitResID, int _AlternativeResID) {
++    public String combineFilterNameFraction(PropertyValue[][] _filterconditions, int _InitResID, int _AlternativeResID) {
+         if (_filterconditions != null) {
+             if (_filterconditions.length > 0) {
+                 String sconditions = "";
+@@ -129,7 +129,7 @@ public class QuerySummary extends QueryM
+         return oResource.getResText(_AlternativeResID);
+     }
+ 
+-    private String combineFieldNameFraction() {
++    public String combineFieldNameFraction() {
+         String CurString = "";
+         String sReturn = oResource.getResText(RID_QUERY + 50);
+         String BaseString = oResource.getResText(RID_QUERY + 92);
+@@ -150,7 +150,7 @@ public class QuerySummary extends QueryM
+     }
+ 
+ 
+-    private String appendClauseSeparator(String _basestring, String _suffix, int _i, int _fieldcount) {
++    public String appendClauseSeparator(String _basestring, String _suffix, int _i, int _fieldcount) {
+         if (_i < _fieldcount - 1)
+             _basestring += _suffix;
+         return _basestring;
+@@ -167,7 +167,7 @@ public class QuerySummary extends QueryM
+         return oResource.getResText(_AlternativeResID);
+     }
+ 
+-    protected String ArrayFieldsToString(int _InitResID, String[] _FieldNames) {
++    public String ArrayFieldsToString(int _InitResID, String[] _FieldNames) {
+         String sReturn = oResource.getResText(_InitResID);
+         int FieldCount = _FieldNames.length;
+         for (int i = 0; i < FieldCount; i++) {
+--- wizards/com/sun/star/wizards/query/QueryWizard.java	2006-12-01 17:31:08.000000000 +0100
++++ wizards/com/sun/star/wizards/query/QueryWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -246,7 +246,7 @@ public class QueryWizard extends WizardD
+     }
+ 
+ 
+-    protected void enterStep(int nOldStep, int nNewStep) {
++    public void enterStep(int nOldStep, int nNewStep) {
+     try {
+         if (nOldStep <= SOGROUPSELECTIONPAGE && nNewStep > SOGROUPSELECTIONPAGE) {
+             if (CurDBMetaData.xDBMetaData.supportsGroupBy()) {
+@@ -286,7 +286,7 @@ public class QueryWizard extends WizardD
+     }}
+ 
+ 
+-    protected void leaveStep(int nOldStep, int nNewStep) {
++    public void leaveStep(int nOldStep, int nNewStep) {
+         switch (nOldStep) {
+             case SOFIELDSELECTIONPAGE :
+ 		CurDBMetaData.reorderFieldColumns(CurDBCommandFieldSelection.getSelectedFieldNames());
+@@ -333,7 +333,7 @@ public class QueryWizard extends WizardD
+         }
+     }
+ 
+-    private void searchForOutdatedFields() {
++    public void searchForOutdatedFields() {
+         String[] GroupCompNames;
+ 		String[] sFieldNames = CurDBMetaData.getFieldNames();
+ 		CurDBMetaData.SortFieldNames = JavaTools.removeOutdatedFields(CurDBMetaData.SortFieldNames, sFieldNames);
+@@ -341,7 +341,7 @@ public class QueryWizard extends WizardD
+ 		CurDBMetaData.AggregateFieldNames = JavaTools.removeOutdatedFields(CurDBMetaData.AggregateFieldNames, sFieldNames);
+     }
+ 
+-    private void enableWizardSteps(String[] NewItems) {
++    public void enableWizardSteps(String[] NewItems) {
+         boolean bEnabled = NewItems.length > 0;
+         setControlProperty("btnWizardNext", "Enabled", new Boolean(bEnabled));
+         setControlProperty("btnWizardFinish", "Enabled", new Boolean(bEnabled));
+@@ -350,7 +350,7 @@ public class QueryWizard extends WizardD
+ 
+ 
+     public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener {
+-        protected int ID;
++        public int ID;
+ 
+         public int getID() {
+             return ID;
+--- wizards/com/sun/star/wizards/report/CallReportWizard.java	2006-04-07 14:50:10.000000000 +0200
++++ wizards/com/sun/star/wizards/report/CallReportWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -154,11 +154,11 @@ public class CallReportWizard {
+ 
+         /** The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.report.CallReportWizard";
++        public static final String __serviceName = "com.sun.star.wizards.report.CallReportWizard";
+ 
+         /** The service manager, that gives access to all registered services.
+          */
+-        private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
++        public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
+ 
+         /** This method is a member of the interface for initializing an object
+          * directly after its creation.
+--- wizards/com/sun/star/wizards/report/Dataimport.java	2007-04-16 18:52:49.000000000 +0200
++++ wizards/com/sun/star/wizards/report/Dataimport.java	2007-05-24 11:24:05.000000000 +0200
+@@ -181,7 +181,7 @@ public class Dataimport extends UnoDialo
+     }
+ 
+ 
+-    private void addTextSectionCopies(){
++    public void addTextSectionCopies(){
+         CurReportDocument.setLayoutSectionsVisible(false);
+         XTextCursor xTextCursor = ReportDocument.createTextCursor(CurReportDocument.xTextDocument.getText());
+         xTextCursor.gotoStart(false);
+@@ -198,7 +198,7 @@ public class Dataimport extends UnoDialo
+     }
+ 
+ 
+-    private void renameTableofLastSection(String _snewname){
++    public void renameTableofLastSection(String _snewname){
+         XTextTable xTextTable = CurReportDocument.oTextTableHandler.getlastTextTable();
+         XNamed xNamedTable = (XNamed) UnoRuntime.queryInterface(XNamed.class, xTextTable);
+         xNamedTable.setName(_snewname);
+--- wizards/com/sun/star/wizards/report/DBColumn.java	2006-12-01 17:31:22.000000000 +0100
++++ wizards/com/sun/star/wizards/report/DBColumn.java	2007-05-24 11:24:05.000000000 +0200
+@@ -74,11 +74,11 @@ public class DBColumn {
+     public int ValColumn = 1;
+     public int ValRow = 0;
+     public FieldColumn CurDBField;
+-    private XTextTable xTextTable;
+-    private XTableColumns xTableColumns;
+-    private XCellRange xCellRange;
++    public XTextTable xTextTable;
++    public XTableColumns xTableColumns;
++    public XCellRange xCellRange;
+     public XNamed xTableName;
+-    private boolean bIsGroupColumn;
++    public boolean bIsGroupColumn;
+     TextDocument oTextDocument;
+     RecordParser CurDBMetaData;
+     RecordTable CurRecordTable;
+@@ -101,7 +101,7 @@ public class DBColumn {
+ 
+     
+ 
+-    private void initializeRecordTableMembers(RecordTable _CurRecordTable, TextTableHandler _oTextTableHandler, RecordParser _CurDBMetaData, int i, boolean _bForce) throws Exception{
++    public void initializeRecordTableMembers(RecordTable _CurRecordTable, TextTableHandler _oTextTableHandler, RecordParser _CurDBMetaData, int i, boolean _bForce) throws Exception{
+         this.oTextTableHandler = _oTextTableHandler;
+         this.CurDBMetaData = _CurDBMetaData;
+         this.CurRecordTable = _CurRecordTable;
+@@ -119,7 +119,7 @@ public class DBColumn {
+         }
+     }
+ 
+-    private boolean assignCells(int _nColumn, boolean _bforce){
++    public boolean assignCells(int _nColumn, boolean _bforce){
+     try {
+         XCell xCell = CurRecordTable.xCellRange.getCellByPosition(_nColumn,0);
+         XTextRange xTextCell = (XTextRange) UnoRuntime.queryInterface(XTextRange.class, xCell);
+@@ -190,7 +190,7 @@ public class DBColumn {
+     }
+ 
+ 
+-    private void  getTableColumns(String TableName){
++    public void  getTableColumns(String TableName){
+     try {
+         XNameAccess xAllTextTables = oTextTableHandler.xTextTablesSupplier.getTextTables();
+         if (xAllTextTables.hasByName(TableName) == true){
+@@ -248,7 +248,7 @@ public class DBColumn {
+             bAlignLeft = true;
+     }
+ 
+-    private boolean checkforLeftAlignment(){
++    public boolean checkforLeftAlignment(){
+         bAlignLeft = ((CurDBField.bIsNumberFormat) && (ValColumn == xTableColumns.getCount()-1));
+         return bAlignLeft;
+     }
+@@ -356,7 +356,7 @@ public class DBColumn {
+         exception.printStackTrace(System.out);
+     }}
+ 
+-    private boolean isNameCell(XTextCursor xCellCursor, String CurFieldName, String CompString){
++    public boolean isNameCell(XTextCursor xCellCursor, String CurFieldName, String CompString){
+     try{
+         xCellCursor.gotoStart(false);
+         XTextRange xTextRange = xCellCursor.getEnd();
+--- wizards/com/sun/star/wizards/report/GroupFieldHandler.java	2006-12-01 17:31:49.000000000 +0100
++++ wizards/com/sun/star/wizards/report/GroupFieldHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -103,7 +103,7 @@ static final short MAXSELFIELDS = 4;
+     }
+ 
+     
+-    protected void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex) {
++    public void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex) {
+         super.toggleListboxButtons(iFieldsSelIndex, iSelFieldsSelIndex);
+         int iSelCount = xSelFieldsListBox.getItemCount();
+         if (iSelCount >= MAXSELFIELDS){
+@@ -120,7 +120,7 @@ static final short MAXSELFIELDS = 4;
+         
+     }    
+ 
+-    protected class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
++    public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
+         
+         public void moveItemDown(String Selitem){
+             CurReportDocument.refreshGroupFields(xSelFieldsListBox.getItems());
+--- wizards/com/sun/star/wizards/report/RecordTable.java	2006-04-07 14:51:32.000000000 +0200
++++ wizards/com/sun/star/wizards/report/RecordTable.java	2007-05-24 11:24:05.000000000 +0200
+@@ -53,7 +53,7 @@ public class RecordTable{
+     public XNamed xTableName;
+     public XCellRange xCellRange;
+     public XTextTable xTextTable;
+-    private TextTableHandler oTextTableHandler;
++    public TextTableHandler oTextTableHandler;
+     public XTableColumns xTableColumns;
+     public XTableRows xTableRows;
+ 
+--- wizards/com/sun/star/wizards/report/ReportDocument.java	2007-04-16 18:53:23.000000000 +0200
++++ wizards/com/sun/star/wizards/report/ReportDocument.java	2007-05-24 11:24:05.000000000 +0200
+@@ -62,20 +62,20 @@ import com.sun.star.wizards.document.For
+ 
+ 
+ class ReportDocument extends com.sun.star.wizards.text.TextDocument implements Comparator{
+-    private Object ReportPageStyle;
+-    private Object FirstPageStyle;
+-    private int PageWidth;
+-    private Rectangle PosSize;
+-    private String ReportFolderName;
++    public Object ReportPageStyle;
++    public Object FirstPageStyle;
++    public int PageWidth;
++    public Rectangle PosSize;
++    public String ReportFolderName;
+     public Vector DBColumnsVector;
+-    private RecordTable CurRecordTable;
++    public RecordTable CurRecordTable;
+     public RecordParser CurDBMetaData;
+-    private String sMsgTableNotExisting;
+-    private String sMsgCommonReportError;
+-    private String ContentTemplatePath;
+-    private String LayoutTemplatePath;
+-    private String sMsgInvalidTextField;
+-    private String sMsgEndAutopilot;
++    public String sMsgTableNotExisting;
++    public String sMsgCommonReportError;
++    public String ContentTemplatePath;
++    public String LayoutTemplatePath;
++    public String sMsgInvalidTextField;
++    public String sMsgEndAutopilot;
+     public boolean bIsCurLandscape;
+     public TextTableHandler oTextTableHandler;
+     public TextSectionHandler oTextSectionHandler;
+@@ -522,7 +522,7 @@ class ReportDocument extends com.sun.sta
+     }
+ 
+ 
+-    private DBColumn getDBColumnByName(String _FieldName){
++    public DBColumn getDBColumnByName(String _FieldName){
+     	for (int i = 0; i < DBColumnsVector.size(); i++){
+     		DBColumn oDBColumn = (DBColumn) DBColumnsVector.get(i);
+     		if (oDBColumn.CurDBField.FieldName.equals(_FieldName))
+@@ -567,7 +567,7 @@ class ReportDocument extends com.sun.sta
+         }
+     }
+ 
+-    private String[] getLayoutTextTableNames(){
++    public String[] getLayoutTextTableNames(){
+         int GroupCount = CurDBMetaData.GroupFieldNames.length;
+         String[] sLayoutTableNames = new String[GroupCount + 1];
+         for (int i = 0; i < GroupCount; i++){
+--- wizards/com/sun/star/wizards/report/ReportLayouter.java	2006-12-01 17:32:17.000000000 +0100
++++ wizards/com/sun/star/wizards/report/ReportLayouter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -64,7 +64,7 @@ public class ReportLayouter {
+     ReportDocument CurReportDocument;
+     public String[][] LayoutFiles;
+     public String[][] ContentFiles;
+-    private Desktop.OfficePathRetriever curofficepath;
++    public Desktop.OfficePathRetriever curofficepath;
+     Object imgOrientation;  
+ 
+     public ReportLayouter(ReportDocument _CurReportDocument, UnoDialog _CurUnoDialog) {
+--- wizards/com/sun/star/wizards/report/ReportWizard.java	2007-04-16 18:53:41.000000000 +0200
++++ wizards/com/sun/star/wizards/report/ReportWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -122,7 +122,7 @@ public class ReportWizard extends Wizard
+     }
+ 
+ 
+-    protected void enterStep(int nOldStep, int nNewStep){
++    public void enterStep(int nOldStep, int nNewStep){
+         if ((nOldStep >= SOTEMPLATEPAGE) && (nNewStep < SOTEMPLATEPAGE)){
+             CurReportDocument.oTextSectionHandler.removeTextSectionbyName("RecordSection");
+             CurReportDocument.oTextTableHandler.removeTextTablebyName("Tbl_RecordSection");
+@@ -152,7 +152,7 @@ public class ReportWizard extends Wizard
+         }
+     }
+ 
+-    protected void leaveStep(int nOldStep, int nNewStep){
++    public void leaveStep(int nOldStep, int nNewStep){
+ 
+          switch (nOldStep){
+             case SOMAINPAGE:
+@@ -191,7 +191,7 @@ public class ReportWizard extends Wizard
+     }
+ 
+ 
+-    private boolean executeQuery(){
++    public boolean executeQuery(){
+         boolean bQueryCreated = false;
+         if (this.CurDBCommandFieldSelection.getSelectedCommandType() == CommandType.TABLE){
+             bQueryCreated = CurDBMetaData.oSQLQueryComposer.setQueryCommand(sMsgWizardName, this.xWindow, false, false);
+@@ -441,7 +441,7 @@ public class ReportWizard extends Wizard
+ 
+ 
+ 
+-    private void enableWizardSteps(String[] NewItems){
++    public void enableWizardSteps(String[] NewItems){
+         boolean bEnabled = NewItems.length > 0;
+         setControlProperty("btnWizardNext", "Enabled", new Boolean(bEnabled));
+         setControlProperty("btnWizardFinish", "Enabled", new Boolean(bEnabled));
+@@ -473,14 +473,14 @@ public class ReportWizard extends Wizard
+     }
+ 
+ 
+-    private void toggleSortingPage(){
++    public void toggleSortingPage(){
+         int nCommandType = this.CurDBCommandFieldSelection.getSelectedCommandType();
+         super.setStepEnabled(SOSORTPAGE, (nCommandType == CommandType.TABLE));
+     }
+ 
+ 
+     public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
+-         protected int ID;
++         public int ID;
+ 
+          public int getID(){
+              return ID;
+--- wizards/com/sun/star/wizards/table/CallTableWizard.java	2006-04-07 14:53:13.000000000 +0200
++++ wizards/com/sun/star/wizards/table/CallTableWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -106,11 +106,11 @@ public class CallTableWizard {
+ 
+         /** The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.table.CallTableWizard";
++        public static final String __serviceName = "com.sun.star.wizards.table.CallTableWizard";
+ 
+         /** The service manager, that gives access to all registered services.
+          */
+-        private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
++        public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
+ 
+         /** This method is a member of the interface for initializing an object
+          * directly after its creation.
+--- wizards/com/sun/star/wizards/table/CGCategory.java	2006-04-07 14:52:47.000000000 +0200
++++ wizards/com/sun/star/wizards/table/CGCategory.java	2007-05-24 11:24:05.000000000 +0200
+@@ -57,8 +57,8 @@ public class CGCategory{
+     
+     public String Name;
+     public int Index;
+-    private String[] Tables;
+-    private final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
++    public String[] Tables;
++    public final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
+     XMultiServiceFactory xMSF;
+     XNameAccess xNameAccessTablesNode;
+     XNameAccess xNameAccessCurBusinessNode;
+--- wizards/com/sun/star/wizards/table/CGTable.java	2006-04-07 14:53:00.000000000 +0200
++++ wizards/com/sun/star/wizards/table/CGTable.java	2007-05-24 11:24:05.000000000 +0200
+@@ -52,8 +52,8 @@ public class CGTable{
+     XNameAccess xNameAccessTableNode;
+     public String Index;
+     public String Name;
+-    private Object oconfigView;
+-    private final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
++    public Object oconfigView;
++    public final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
+ 
+ 
+     public CGTable(XMultiServiceFactory _xMSF){
+--- wizards/com/sun/star/wizards/table/FieldDescription.java	2006-04-07 14:53:34.000000000 +0200
++++ wizards/com/sun/star/wizards/table/FieldDescription.java	2007-05-24 11:24:05.000000000 +0200
+@@ -53,20 +53,20 @@ import com.sun.star.wizards.common.Prope
+ 
+ public class FieldDescription{
+     int category;
+-    private String tablename = "";
++    public String tablename = "";
+ //  String fieldname;
+-    private String keyname;
+-    private XNameAccess xNameAccessTableNode;
+-    private XPropertySet xPropertySet;
+-    private Vector aPropertyValues;
++    public String keyname;
++    public XNameAccess xNameAccessTableNode;
++    public XPropertySet xPropertySet;
++    public Vector aPropertyValues;
+ //  PropertyValue[] aPropertyValues;
+-    private Integer Type;
+-    private Integer Scale;
+-    private Integer Precision;
+-    private Boolean DefaultValue;
+-    private String Name;
+-    private XMultiServiceFactory xMSF;
+-    private Locale aLocale;
++    public Integer Type;
++    public Integer Scale;
++    public Integer Precision;
++    public Boolean DefaultValue;
++    public String Name;
++    public XMultiServiceFactory xMSF;
++    public Locale aLocale;
+         
+     public FieldDescription(XMultiServiceFactory _xMSF, Locale _aLocale, ScenarioSelector _curscenarioselector, String _fieldname, String _keyname, int _nmaxcharCount){
+         xMSF = _xMSF;
+@@ -115,7 +115,7 @@ public class FieldDescription{
+     }
+ 
+         
+-    private boolean propertyexists(String _propertyname){
++    public boolean propertyexists(String _propertyname){
+     boolean bexists = false;
+     try {
+         if (xPropertySet.getPropertySetInfo().hasPropertyByName(_propertyname)){
+--- wizards/com/sun/star/wizards/table/FieldFormatter.java	2006-07-06 16:27:28.000000000 +0200
++++ wizards/com/sun/star/wizards/table/FieldFormatter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -304,7 +304,7 @@ public class FieldFormatter  implements 
+         return false;
+     }
+ 
+-    private void updateColumnDescriptor(String _ColumnName, XPropertySet _xColumn){
++    public void updateColumnDescriptor(String _ColumnName, XPropertySet _xColumn){
+         updateColumnofColumnDescriptor();
+         XPropertySet xNewPropertySet = curTableDescriptor.clonePropertySet(_ColumnName, _xColumn);
+         if (xNewPropertySet != null)
+--- wizards/com/sun/star/wizards/table/PrimaryKeyHandler.java	2006-07-06 16:28:21.000000000 +0200
++++ wizards/com/sun/star/wizards/table/PrimaryKeyHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -163,7 +163,7 @@ public class PrimaryKeyHandler implement
+     }
+ 
+ 
+-    private boolean isAutoPrimeKeyAutoIncrementationsupported(){
++    public boolean isAutoPrimeKeyAutoIncrementationsupported(){
+         TypeInspector.TypeInfo aAutoPrimeTypeInfo;
+         aAutoPrimeTypeInfo = curTableDescriptor.oTypeInspector.findAutomaticPrimaryKeyType();
+         return aAutoPrimeTypeInfo.bisAutoIncrementable;
+@@ -216,7 +216,7 @@ public class PrimaryKeyHandler implement
+     }
+ 
+ 
+-    private boolean isAutoIncrementatable(String _fieldname){
++    public boolean isAutoIncrementatable(String _fieldname){
+     boolean bisAutoIncrementable = false;
+     try {
+         XPropertySet xColPropertySet = curTableDescriptor.getByName(_fieldname);
+@@ -274,7 +274,7 @@ public class PrimaryKeyHandler implement
+     }}
+ 
+ 
+-    private void toggleAutomaticAutoValueCheckBox(){
++    public void toggleAutomaticAutoValueCheckBox(){
+     try {
+         boolean bisAutomaticMode = AnyConverter.toBoolean(Helper.getUnoPropertyValue(UnoDialog.getModel(optAddAutomatically), "Enabled"));
+         boolean bdoenable = bAutoPrimaryKeysupportsAutoIncrmentation && optAddAutomatically.getState() && bisAutomaticMode;
+@@ -283,7 +283,7 @@ public class PrimaryKeyHandler implement
+         e.printStackTrace(System.out);
+     }}
+ 
+-    private void toggleSinglePrimeKeyFields(boolean _bdoenable){
++    public void toggleSinglePrimeKeyFields(boolean _bdoenable){
+         Helper.setUnoPropertyValue(UnoDialog.getModel(lblPrimeFieldName), "Enabled", new Boolean(_bdoenable));
+         Helper.setUnoPropertyValue(UnoDialog.getModel(lstSinglePrimeKey), "Enabled", new Boolean(_bdoenable));
+         Helper.setUnoPropertyValue(UnoDialog.getModel(chkApplyAutoValueExisting), "Enabled", new Boolean(_bdoenable));
+@@ -292,7 +292,7 @@ public class PrimaryKeyHandler implement
+     }
+ 
+ 
+-    private void toggleSeveralPrimeKeyFields(){
++    public void toggleSeveralPrimeKeyFields(){
+         boolean bdoEnable = (this.optUseSeveral.getState());
+         curPrimaryKeySelection.toggleListboxControls(new Boolean(bdoEnable));
+     }
+--- wizards/com/sun/star/wizards/table/ScenarioSelector.java	2006-07-06 16:28:47.000000000 +0200
++++ wizards/com/sun/star/wizards/table/ScenarioSelector.java	2007-05-24 11:24:05.000000000 +0200
+@@ -81,10 +81,10 @@ public class ScenarioSelector extends Fi
+     CGCategory oCGCategory;
+     CGTable oCGTable;
+     String SELECTCATEGORY = "selectCategory";
+-    private int curcategory;
++    public int curcategory;
+     public boolean bcolumnnameislimited;
+-    private int imaxcolumnchars;
+-    private String[] fieldnames;
++    public int imaxcolumnchars;
++    public String[] fieldnames;
+     String smytable;
+     Locale aLocale;
+     XMultiServiceFactory xMSF;
+@@ -267,7 +267,7 @@ public class ScenarioSelector extends Fi
+     }
+     
+     
+-     protected int ID;
++     public int ID;
+         
+      public int getID(){
+          return ID;
+--- wizards/com/sun/star/wizards/table/TableWizard.java	2006-07-06 16:29:40.000000000 +0200
++++ wizards/com/sun/star/wizards/table/TableWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -74,7 +74,7 @@ public class TableWizard extends WizardD
+     public static final int SOFIELDSFORMATPAGE = 2;
+     public static final int SOPRIMARYKEYPAGE = 3;
+     public static final int SOFINALPAGE = 4;
+-    private String sMsgColumnAlreadyExists = "";
++    public String sMsgColumnAlreadyExists = "";
+ 
+     String WizardHeaderText[] = new String[8];
+ 
+@@ -93,7 +93,7 @@ public class TableWizard extends WizardD
+     }
+ 
+ 
+-    protected void leaveStep(int nOldStep, int nNewStep){
++    public void leaveStep(int nOldStep, int nNewStep){
+          switch (nOldStep){
+             case SOMAINPAGE:
+                 curScenarioSelector.addColumnsToDescriptor();
+@@ -114,7 +114,7 @@ public class TableWizard extends WizardD
+     }
+ 
+ 
+-    protected void enterStep(int nOldStep, int nNewStep) {
++    public void enterStep(int nOldStep, int nNewStep) {
+         switch (nNewStep){
+             case SOMAINPAGE:
+                 break;
+@@ -279,7 +279,7 @@ public class TableWizard extends WizardD
+     }
+ 
+ 
+-    private void callFormWizard(){
++    public void callFormWizard(){
+     try {
+         Object oFormWizard = this.xMSF.createInstance("com.sun.star.wizards.form.CallFormWizard");
+         PropertyValue[] aProperties  = new PropertyValue[4];
+@@ -354,7 +354,7 @@ public class TableWizard extends WizardD
+     }
+ 
+ 
+-    private void toggleWizardSteps(int _startStep, boolean _benable){
++    public void toggleWizardSteps(int _startStep, boolean _benable){
+         super.setStepEnabled(SOFIELDSFORMATPAGE, _benable);
+         super.setStepEnabled(SOPRIMARYKEYPAGE, _benable);
+         super.setStepEnabled(SOFINALPAGE, _benable);
+--- wizards/com/sun/star/wizards/text/TextDocument.java	2007-04-16 18:53:54.000000000 +0200
++++ wizards/com/sun/star/wizards/text/TextDocument.java	2007-05-24 11:24:05.000000000 +0200
+@@ -173,7 +173,7 @@ public class TextDocument {
+     }
+ 
+ 
+-    private void init() {
++    public void init() {
+         xWindowPeer = (XWindowPeer) UnoRuntime.queryInterface(XWindowPeer.class, xFrame.getComponentWindow());
+         xMSFDoc = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
+         xNumberFormatsSupplier = (XNumberFormatsSupplier) UnoRuntime.queryInterface(XNumberFormatsSupplier.class, xTextDocument);
+@@ -184,7 +184,7 @@ public class TextDocument {
+         xText = xTextDocument.getText();
+     }
+ 
+-    private void showStatusIndicator() {
++    public void showStatusIndicator() {
+         XStatusIndicatorFactory xStatusIndicatorFactory = (XStatusIndicatorFactory) UnoRuntime.queryInterface(XStatusIndicatorFactory.class, xFrame);
+         xProgressBar = xStatusIndicatorFactory.createStatusIndicator();
+         xProgressBar.start("", 100);
+--- wizards/com/sun/star/wizards/text/TextFieldHandler.java	2006-04-07 14:55:39.000000000 +0200
++++ wizards/com/sun/star/wizards/text/TextFieldHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -66,7 +66,7 @@ import com.sun.star.wizards.common.Helpe
+ public class TextFieldHandler {
+ 
+     public XTextFieldsSupplier xTextFieldsSupplier;
+-    private XMultiServiceFactory xMSFDoc;
++    public XMultiServiceFactory xMSFDoc;
+ 
+ 
+     /** Creates a new instance of TextFieldHandler */
+@@ -129,7 +129,7 @@ public class TextFieldHandler {
+ 
+ 
+ 
+-    private XDependentTextField[] getTextFieldsByProperty(String _PropertyName, Object _aPropertyValue, String _TypeName) throws Exception{
++    public XDependentTextField[] getTextFieldsByProperty(String _PropertyName, Object _aPropertyValue, String _TypeName) throws Exception{
+     try {
+         XDependentTextField[] xDependentFields;
+         Vector xDependentVector = new Vector();
+--- wizards/com/sun/star/wizards/text/TextSectionHandler.java	2006-12-01 17:32:44.000000000 +0100
++++ wizards/com/sun/star/wizards/text/TextSectionHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -54,9 +54,9 @@ import com.sun.star.wizards.common.Helpe
+ public class TextSectionHandler {
+ 
+     public XTextSectionsSupplier xTextSectionsSupplier;
+-    private XMultiServiceFactory xMSFDoc;
+-    private XTextDocument xTextDocument;
+-    private XText xText;
++    public XMultiServiceFactory xMSFDoc;
++    public XTextDocument xTextDocument;
++    public XText xText;
+ 
+     /** Creates a new instance of TextSectionHandler */
+     public TextSectionHandler(XMultiServiceFactory xMSF, XTextDocument xTextDocument) {
+--- wizards/com/sun/star/wizards/text/TextStyleHandler.java	2006-04-07 14:57:02.000000000 +0200
++++ wizards/com/sun/star/wizards/text/TextStyleHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -51,8 +51,8 @@ import com.sun.star.uno.UnoRuntime;
+ 
+ public class TextStyleHandler {
+     public XStyleFamiliesSupplier xStyleFamiliesSupplier;
+-    private XMultiServiceFactory xMSFDoc;
+-    private XTextDocument xTextDocument;
++    public XMultiServiceFactory xMSFDoc;
++    public XTextDocument xTextDocument;
+ 
+     /** Creates a new instance of TextStyleHandler */
+     public TextStyleHandler(com.sun.star.lang.XMultiServiceFactory xMSF, XTextDocument xTextDocument) {
+--- wizards/com/sun/star/wizards/text/TextTableHandler.java	2006-12-01 17:32:58.000000000 +0100
++++ wizards/com/sun/star/wizards/text/TextTableHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -63,9 +63,9 @@ public class TextTableHandler {
+     public XMultiServiceFactory xMSFDoc;
+     public XTextDocument xTextDocument;
+     public XSimpleText xSimpleText;
+-    private XText xText;
+-    private NumberFormatter oNumberFormatter;
+-    private Locale aCharLocale;
++    public XText xText;
++    public NumberFormatter oNumberFormatter;
++    public Locale aCharLocale;
+     
+     
+ 
+--- wizards/com/sun/star/wizards/text/ViewHandler.java	2006-07-06 16:31:57.000000000 +0200
++++ wizards/com/sun/star/wizards/text/ViewHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -54,11 +54,11 @@ import com.sun.star.view.XViewSettingsSu
+ import com.sun.star.wizards.common.Helper;
+ 
+ public class ViewHandler {
+-    private XTextViewCursorSupplier xTextViewCursorSupplier;
+-    private XMultiServiceFactory xMSFDoc;
+-    private XTextDocument xTextDocument;
+-    private XStyleFamiliesSupplier xStyleFamiliesSupplier;
+-    private XViewSettingsSupplier xViewSettingsSupplier;
++    public XTextViewCursorSupplier xTextViewCursorSupplier;
++    public XMultiServiceFactory xMSFDoc;
++    public XTextDocument xTextDocument;
++    public XStyleFamiliesSupplier xStyleFamiliesSupplier;
++    public XViewSettingsSupplier xViewSettingsSupplier;
+ 
+     /** Creates a new instance of View */
+     public ViewHandler(XMultiServiceFactory xMSF, XTextDocument xTextDocument) {
+--- wizards/com/sun/star/wizards/ui/AggregateComponent.java	2006-04-07 15:21:29.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/AggregateComponent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -164,7 +164,7 @@ public class AggregateComponent extends 
+     }
+     
+     
+-    protected void insertControlGroup(int i, int ypos){
++    public void insertControlGroup(int i, int ypos){
+         if (i == 0){
+             int BaseID = 2300;          
+             soptDetailQuery = CurUnoDialog.oResource.getResText(BaseID + 11);
+@@ -183,7 +183,7 @@ public class AggregateComponent extends 
+     }
+ 
+ 
+-    protected void setControlGroupVisible(int _index, boolean _bIsVisible){
++    public void setControlGroupVisible(int _index, boolean _bIsVisible){
+         ControlRow oControlRow = (ControlRow) ControlRowVector.elementAt(_index);
+         oControlRow.setVisible(_bIsVisible);
+         if (_index >= (this.CurDBMetaData.AggregateFieldNames.length))
+@@ -191,7 +191,7 @@ public class AggregateComponent extends 
+     }
+         
+     
+-    protected void addRow(){
++    public void addRow(){
+         int fieldcount = super.getTotalFieldCount();
+         registerControlGroupAtIndex(fieldcount);
+         if ( fieldcount < super.getBlockIncrementation()){
+@@ -211,7 +211,7 @@ public class AggregateComponent extends 
+     }
+ 
+     
+-    protected void removeRow(){
++    public void removeRow(){
+         int fieldcount = super.getTotalFieldCount();
+         if ( fieldcount > 0){
+             ControlRow oControlRow;
+@@ -229,7 +229,7 @@ public class AggregateComponent extends 
+     }
+ 
+     
+-    protected void toggleButtons(){
++    public void toggleButtons(){
+         ControlRow curcontrolrow = null;
+         boolean biscomplete = true;
+         CurDBMetaData.Type = getQueryType();
+@@ -256,7 +256,7 @@ public class AggregateComponent extends 
+     }
+ 
+     
+-    private boolean isAggregateComponentEnabled(){
++    public boolean isAggregateComponentEnabled(){
+         return(CurDBMetaData.Type == QueryMetaData.QueryType.SOSUMMARYQUERY);
+     }
+     
+@@ -279,7 +279,7 @@ public class AggregateComponent extends 
+     }
+ 
+     
+-    private void togglefollowingDialogSteps(){
++    public void togglefollowingDialogSteps(){
+         boolean benabletherest = true;
+         boolean benableGroupPage = isGroupingpossible();
+         CurUnoDialog.setStepEnabled(UIConsts.SOGROUPSELECTIONPAGE, benableGroupPage);
+@@ -291,7 +291,7 @@ public class AggregateComponent extends 
+     }
+     
+         
+-    private void hideControlRowsfromindex(int _index){
++    public void hideControlRowsfromindex(int _index){
+         if (_index < this.ControlRowVector.size()){
+             for (int i = _index; i < ControlRowVector.size();i++){
+                 ControlRow oControlRow = (ControlRow) ControlRowVector.elementAt(i);
+@@ -369,7 +369,7 @@ public class AggregateComponent extends 
+     }
+ 
+ 
+-    protected void initializeScrollFields(){
++    public void initializeScrollFields(){
+         ControlRow curControlRow;
+         if (CurDBMetaData.AggregateFieldNames != null){
+             for (int i = 0; i < this.getBlockIncrementation(); i++){
+@@ -382,7 +382,7 @@ public class AggregateComponent extends 
+     }
+     
+ 
+-    private void registerControlGroupAtIndex(int _index){
++    public void registerControlGroupAtIndex(int _index){
+         short[] iselfunctionlist = new short[]{};
+         short[] iselfieldslist = new short[]{};
+         PropertyValue[] currowproperties = new PropertyValue[2];
+@@ -398,18 +398,18 @@ public class AggregateComponent extends 
+     }
+ 
+ 
+-    private String getFunctionControlName(int _index){
++    public String getFunctionControlName(int _index){
+         String namesuffix = "_" + String.valueOf(_index + 1);
+         return "lstfunctions" + namesuffix;
+     }
+ 
+-    private String getFieldsControlName(int _index){
++    public String getFieldsControlName(int _index){
+         String namesuffix = "_" + String.valueOf(_index + 1);
+         return "lstFieldnames" + namesuffix;
+     }
+ 
+ 
+-    private boolean hasonlycompletefunctions(){
++    public boolean hasonlycompletefunctions(){
+         int maxfieldcount = super.getCurFieldCount();
+         if (maxfieldcount > 0){
+             ControlRow curcontrolrow = (ControlRow) this.ControlRowVector.elementAt(maxfieldcount-1);
+@@ -421,12 +421,12 @@ public class AggregateComponent extends 
+ 
+ 
+ 
+-    protected class ControlRow{
+-        private XListBox xFieldListBox;
+-        private XListBox xFunctionListBox;
+-        private int index;
++    public class ControlRow{
++        public XListBox xFieldListBox;
++        public XListBox xFunctionListBox;
++        public int index;
+             
+-        protected ControlRow(int _index, int ypos, int _curHelpID){
++        public ControlRow(int _index, int ypos, int _curHelpID){
+         try{            
+             this.index = _index;
+             xFunctionListBox = CurUnoDialog.insertListBox(getFunctionControlName(index), 1, null, new ItemListenerImpl(),
+@@ -445,40 +445,40 @@ public class AggregateComponent extends 
+         }}
+         
+         
+-        private String getSelectedFieldName(){
++        public String getSelectedFieldName(){
+             return xFieldListBox.getSelectedItem();
+         }
+ 
+ 
+-        private String getSelectedFunction(){
++        public String getSelectedFunction(){
+             return xFunctionListBox.getSelectedItem();
+         }
+ 
+ 
+-        private void setVisible(boolean _bvisible){
++        public void setVisible(boolean _bvisible){
+             CurUnoDialog.setControlVisible(getFunctionControlName(index), _bvisible);
+             CurUnoDialog.setControlVisible(getFieldsControlName(index), _bvisible);
+         }
+     
+     
+-        private void insertFieldNames(){
++        public void insertFieldNames(){
+             Helper.setUnoPropertyValue(UnoDialog.getModel(xFieldListBox), "StringItemList", CurDBMetaData.NumericFieldNames);
+         }
+         
+-        private boolean isComplete(){
++        public boolean isComplete(){
+             boolean bfieldnameisselected = (Helper.getUnoArrayPropertyValue(UnoDialog.getModel(xFieldListBox), "SelectedItems") != null);
+             boolean bfunctionisselected = (Helper.getUnoArrayPropertyValue(UnoDialog.getModel(xFunctionListBox), "SelectedItems") != null);
+             return (bfieldnameisselected && bfunctionisselected);
+         }
+         
+         
+-        private void settovoid(){
++        public void settovoid(){
+             CurUnoDialog.deselectListBox(xFieldListBox);
+             CurUnoDialog.deselectListBox(xFunctionListBox);                     
+         }
+         
+         
+-        protected class ItemListenerImpl implements com.sun.star.awt.XItemListener{
++        public class ItemListenerImpl implements com.sun.star.awt.XItemListener{
+     
+             public void itemStateChanged(com.sun.star.awt.ItemEvent EventObject){
+             try{
+--- wizards/com/sun/star/wizards/ui/CommandFieldSelection.java	2006-04-07 15:21:48.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/CommandFieldSelection.java	2007-05-24 11:24:05.000000000 +0200
+@@ -117,7 +117,7 @@ public class CommandFieldSelection exten
+     }
+ 
+ 
+-    private void insertControls(CommandMetaData _CurDBMetaData, boolean _bgetQueries, String _reslblTables){
++    public void insertControls(CommandMetaData _CurDBMetaData, boolean _bgetQueries, String _reslblTables){
+         try {
+             this.AppendMode = !_bgetQueries;
+             this.bgetQueries = _bgetQueries;
+@@ -151,7 +151,7 @@ public class CommandFieldSelection exten
+     }
+     
+     
+-    private String getCommandPrefix(int _nCommandType){
++    public String getCommandPrefix(int _nCommandType){
+         if (_nCommandType == CommandType.TABLE)
+             return getTablePrefix();
+         else if (_nCommandType == CommandType.QUERY)
+@@ -169,7 +169,7 @@ public class CommandFieldSelection exten
+         return sTablePrefix;
+     }
+ 
+-    private short getselectedItemPos(){
++    public short getselectedItemPos(){
+         short[] iSelPoses = ((short[]) Helper.getUnoPropertyValue(UnoDialog.getModel(xTableListBox), "SelectedItems"));
+         if (iSelPoses.length > 0)
+             return iSelPoses[0];
+@@ -229,7 +229,7 @@ public class CommandFieldSelection exten
+      * @return
+      * @throws com.sun.star.wizards.common.TerminateWizardException
+      */
+-    private short fillupCommandListBox() throws com.sun.star.wizards.common.TerminateWizardException {
++    public short fillupCommandListBox() throws com.sun.star.wizards.common.TerminateWizardException {
+         short[] iSelArray = new short[0];
+         boolean bgetFields = false;
+         String[] ContentList = new String[0];
+@@ -261,7 +261,7 @@ public class CommandFieldSelection exten
+         return iSelPos;
+     }
+ 
+-    private String[] setPrefixinArray(String[] _ContentList, String _sprefix, int _startindex, int _nlen) {
++    public String[] setPrefixinArray(String[] _ContentList, String _sprefix, int _startindex, int _nlen) {
+         for (int i = _startindex; i < _startindex + _nlen; i++)
+             _ContentList[i] = _sprefix + _ContentList[i];
+         return _ContentList;
+--- wizards/com/sun/star/wizards/ui/ControlScroller.java	2006-04-07 15:22:07.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/ControlScroller.java	2007-05-24 11:24:05.000000000 +0200
+@@ -46,35 +46,35 @@ import com.sun.star.wizards.common.*;
+ import java.util.*;
+ 
+ public abstract class ControlScroller {
+-    protected WizardDialog CurUnoDialog;
+-    protected XMultiServiceFactory xMSF;
+-    private Object oImgControl;
+-    protected int ncurfieldcount;
+-    protected int nblockincrement;
+-    private int nlineincrement;
+-    protected int nscrollvalue = 0;
+-    protected int ntotfieldcount;
++    public WizardDialog CurUnoDialog;
++    public XMultiServiceFactory xMSF;
++    public Object oImgControl;
++    public int ncurfieldcount;
++    public int nblockincrement;
++    public int nlineincrement;
++    public int nscrollvalue = 0;
++    public int ntotfieldcount;
+     XScrollBar xScrollBar;
+-    protected Vector scrollfields;
+-    protected Integer ICompPosX;
+-    protected int iCompPosX;
+-    protected Integer ICompPosY;
+-    protected int iCompPosY;
+-    protected Integer ICompWidth;
+-    protected int iCompWidth;
+-    protected Integer ICompHeight;
+-    protected int iCompHeight;
+-    protected int iStartPosY;
+-    protected short curtabindex;
++    public Vector scrollfields;
++    public Integer ICompPosX;
++    public int iCompPosX;
++    public Integer ICompPosY;
++    public int iCompPosY;
++    public Integer ICompWidth;
++    public int iCompWidth;
++    public Integer ICompHeight;
++    public int iCompHeight;
++    public int iStartPosY;
++    public short curtabindex;
+     int iStep;
+-    protected Integer IStep;
+-    protected int linedistance;
++    public Integer IStep;
++    public int linedistance;
+     int iScrollBarWidth = 10;
+     int SORELFIRSTPOSY = 3;
+-    protected int curHelpIndex;
++    public int curHelpIndex;
+     String sIncSuffix;
+-    protected Vector ControlGroupVector = new Vector();
+-    protected PeerConfig oTitlePeerConfig;
++    public Vector ControlGroupVector = new Vector();
++    public PeerConfig oTitlePeerConfig;
+ 
+     class AdjustmentListenerImpl implements com.sun.star.awt.XAdjustmentListener {
+ 
+@@ -98,7 +98,7 @@ public abstract class ControlScroller {
+      * @author bc93774
+      */
+     // TODO add parameters for tabindices and helpindex
+-    protected ControlScroller(WizardDialog _CurUnoDialog, XMultiServiceFactory _xMSF, int _iStep, int _iCompPosX, int _iCompPosY, int _iCompWidth, int _nblockincrement, int _nlinedistance, int _firsthelpindex) {
++    public ControlScroller(WizardDialog _CurUnoDialog, XMultiServiceFactory _xMSF, int _iStep, int _iCompPosX, int _iCompPosY, int _iCompWidth, int _nblockincrement, int _nlinedistance, int _firsthelpindex) {
+         this.xMSF = _xMSF;
+         this.nblockincrement = _nblockincrement;
+         this.CurUnoDialog = _CurUnoDialog;
+@@ -139,7 +139,7 @@ public abstract class ControlScroller {
+         CurUnoDialog.getPeerConfiguration().setPeerProperties(oImgControl, new String[] { "MouseTransparent" }, new Boolean[] { Boolean.TRUE });
+     }
+ 
+-    protected void setScrollBarOrientationHorizontal() {
++    public void setScrollBarOrientationHorizontal() {
+         Helper.setUnoPropertyValue(xScrollBar, "Orientation", new Integer(ScrollBarOrientation.HORIZONTAL));
+     }
+ 
+@@ -147,7 +147,7 @@ public abstract class ControlScroller {
+      * @author bc93774
+      * @param _ntotfieldcount: The number of fields that are to be administered by the ControlScroller
+      */
+-    protected void initialize(int _ntotfieldcount) {
++    public void initialize(int _ntotfieldcount) {
+         try {
+             boolean bisVisible;
+             ntotfieldcount = _ntotfieldcount;
+@@ -164,7 +164,7 @@ public abstract class ControlScroller {
+         }
+     }
+ 
+-    protected void fillupControls(boolean binitialize) {
++    public void fillupControls(boolean binitialize) {
+         int newindex;
+         PropertyValue[] oldproperties;
+         PropertyValue[] newproperties;
+@@ -179,7 +179,7 @@ public abstract class ControlScroller {
+ 
+     }
+     
+-    protected void fillupControls(int guiRow) {
++    public void fillupControls(int guiRow) {
+         PropertyValue[] nameProps = (PropertyValue[]) scrollfields.get(guiRow);
+         PropertyValue[] valueProps = (PropertyValue[]) scrollfields.get(guiRow + nscrollvalue);
+         for (int n = 0; n < nameProps.length; n++) {
+@@ -191,34 +191,34 @@ public abstract class ControlScroller {
+     }       
+         
+ 
+-    protected void setScrollValue(int _nscrollvalue) {
++    public void setScrollValue(int _nscrollvalue) {
+         if (_nscrollvalue >= 0) {
+             Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("ScrollValue"), new Integer(_nscrollvalue));
+             scrollControls();
+         }
+     }
+ 
+-    protected void setScrollValue(int _nscrollvalue, int _ntotfieldcount) {
++    public void setScrollValue(int _nscrollvalue, int _ntotfieldcount) {
+         setTotalFieldCount(_ntotfieldcount);
+         setScrollValue(_nscrollvalue);
+     }
+ 
+-    protected int getTotalFieldCount() {
++    public int getTotalFieldCount() {
+         return ntotfieldcount;
+     }
+ 
+-    protected int getCurFieldCount() {
++    public int getCurFieldCount() {
+         return ncurfieldcount;
+     }
+ 
+-    private void setCurFieldCount() {
++    public void setCurFieldCount() {
+         if (ntotfieldcount > nblockincrement)
+             ncurfieldcount = nblockincrement;
+         else
+             ncurfieldcount = ntotfieldcount;
+     }
+ 
+-    protected void setTotalFieldCount(int _ntotfieldcount) {
++    public void setTotalFieldCount(int _ntotfieldcount) {
+         this.ntotfieldcount = _ntotfieldcount;
+         setCurFieldCount();
+         if (ntotfieldcount > nblockincrement)
+@@ -227,12 +227,12 @@ public abstract class ControlScroller {
+             Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), "Enabled", Boolean.FALSE);
+     }
+ 
+-    protected void toggleComponent(boolean _bdoenable) {
++    public void toggleComponent(boolean _bdoenable) {
+         boolean bdoenable = _bdoenable && (ntotfieldcount > nblockincrement);
+         CurUnoDialog.setControlProperty("TitleScrollBar" + sIncSuffix, "Enabled", new Boolean(bdoenable));
+     }
+ 
+-    protected void toggleControls(boolean _bdoenable) {
++    public void toggleControls(boolean _bdoenable) {
+         for (int n = 0; n < scrollfields.size(); n++) {
+             PropertyValue[] curproperties = (PropertyValue[]) scrollfields.elementAt(n);
+             for (int m = 0; m < curproperties.length; m++) {
+@@ -243,30 +243,30 @@ public abstract class ControlScroller {
+ 
+     }
+ 
+-    protected int getScrollValue() {
++    public int getScrollValue() {
+         return nscrollvalue;
+     }
+ 
+-    protected void setLineIncrementation(int _nlineincrement) {
++    public void setLineIncrementation(int _nlineincrement) {
+         this.nlineincrement = _nlineincrement;
+         Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("LineIncrement"), new Integer(nlineincrement));
+ 
+     }
+ 
+-    protected int getLineIncrementation() {
++    public int getLineIncrementation() {
+         return nlineincrement;
+     }
+ 
+-    protected void setBlockIncrementation(int _nblockincrement) {
++    public void setBlockIncrementation(int _nblockincrement) {
+         this.nblockincrement = _nblockincrement;
+         Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] { "Enabled", "BlockIncrement", "ScrollValueMax" }, new Object[] { new Boolean(ntotfieldcount > nblockincrement), new Integer(nblockincrement), new Integer(ntotfieldcount - nblockincrement)});
+     }
+ 
+-    protected int getBlockIncrementation() {
++    public int getBlockIncrementation() {
+         return nblockincrement;
+     }
+ 
+-    private void scrollControls() {
++    public void scrollControls() {
+         try {
+             scrollRowsInfo();
+             nscrollvalue = ((Integer) Helper.getUnoPropertyValue(UnoDialog.getModel(xScrollBar), "ScrollValue")).intValue();
+@@ -278,7 +278,7 @@ public abstract class ControlScroller {
+         }
+     }
+ 
+-    protected void scrollRowsInfo() {
++    public void scrollRowsInfo() {
+         int cols = 
+             scrollfields.size() > 0 
+                 ?   ((PropertyValue[])scrollfields.get(0)).length
+@@ -297,7 +297,7 @@ public abstract class ControlScroller {
+      * @return the propertyValue object corresponding to 
+      * this control.
+      */
+-    protected PropertyValue fieldInfo(int guiRow, int column) {
++    public PropertyValue fieldInfo(int guiRow, int column) {
+         if (guiRow + nscrollvalue < scrollfields.size()) {
+             PropertyValue pv = fieldInfo ( 
+                 ((PropertyValue[]) scrollfields.elementAt(guiRow + nscrollvalue )) [column],
+@@ -311,7 +311,7 @@ public abstract class ControlScroller {
+         else return null;
+     }
+ 
+-    protected PropertyValue fieldInfo(PropertyValue valueProp, PropertyValue nameProp) {
++    public PropertyValue fieldInfo(PropertyValue valueProp, PropertyValue nameProp) {
+         if (CurUnoDialog.xDlgNameAccess.hasByName(nameProp.Name))
+             valueProp.Value = getControlData(nameProp.Name);
+         else
+@@ -319,11 +319,11 @@ public abstract class ControlScroller {
+         return valueProp;
+     }
+ 
+-    protected void unregisterControlGroup(int _index) {
++    public void unregisterControlGroup(int _index) {
+         scrollfields.remove(_index);
+     }
+ 
+-    protected void registerControlGroup(PropertyValue[] _currowproperties, int _i) {
++    public void registerControlGroup(PropertyValue[] _currowproperties, int _i) {
+         if (_i == 0)
+             scrollfields.removeAllElements();
+         if (_i >= scrollfields.size())
+@@ -332,11 +332,11 @@ public abstract class ControlScroller {
+             scrollfields.setElementAt(_currowproperties, _i);
+     }
+ 
+-    protected PropertyValue[] getControlGroupInfo(int _i) {
++    public PropertyValue[] getControlGroupInfo(int _i) {
+         return (PropertyValue[]) scrollfields.elementAt(_i);
+     }
+ 
+-    protected void setControlData(String controlname, Object newvalue) {
++    public void setControlData(String controlname, Object newvalue) {
+         Object oControlModel = UnoDialog.getModel(CurUnoDialog.xDlgContainer.getControl(controlname));
+         String propertyname = UnoDialog.getDisplayProperty(oControlModel);
+         if (propertyname != "") {
+@@ -344,7 +344,7 @@ public abstract class ControlScroller {
+         }
+     }
+ 
+-    protected Object getControlData(String controlname) {
++    public Object getControlData(String controlname) {
+         Object oControlModel = UnoDialog.getModel(CurUnoDialog.xDlgContainer.getControl(controlname));
+         String propertyname = UnoDialog.getDisplayProperty(oControlModel);
+         if (propertyname != "")  
+@@ -353,7 +353,7 @@ public abstract class ControlScroller {
+             return null;
+     }
+ 
+-    protected PropertyValue[][] getScrollFieldValues() {
++    public PropertyValue[][] getScrollFieldValues() {
+         scrollRowsInfo();
+         PropertyValue[] curproperties;
+         PropertyValue[][] retproperties;
+@@ -370,7 +370,7 @@ public abstract class ControlScroller {
+         }
+     }
+ 
+-    protected abstract void initializeScrollFields();
++    public abstract void initializeScrollFields();
+ 
+     /** inserts a group of controls into the component. The group may either be a row or a column of controls 
+      *  The controls should be put on Step 99 (means made invisible at first). All the controlrows that are needed are than
+@@ -379,9 +379,9 @@ public abstract class ControlScroller {
+      * @param i: The index of the control group
+      * @param npos: Can be an x coordinate or an y coordinate which depends on the orientation of the scrollbar
+      */
+-    protected abstract void insertControlGroup(int _index, int npos);
++    public abstract void insertControlGroup(int _index, int npos);
+ 
+-    protected abstract void setControlGroupVisible(int _index, boolean _bIsVisible);
++    public abstract void setControlGroupVisible(int _index, boolean _bIsVisible);
+     
+     
+ }
+--- wizards/com/sun/star/wizards/ui/DBLimitedFieldSelection.java	2006-04-07 15:22:31.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/DBLimitedFieldSelection.java	2007-05-24 11:24:05.000000000 +0200
+@@ -45,20 +45,20 @@ import com.sun.star.wizards.common.JavaT
+  * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+  */
+ public abstract class DBLimitedFieldSelection {
+-    protected XMultiServiceFactory xMSF;
+-    protected WizardDialog CurUnoDialog;
+-    protected String sNoField;
+-    protected Integer IStep;
+-    protected Integer ICompPosX;
+-    protected Integer ICompPosY;
+-    protected Integer ICompWidth;
+-    protected final int rowcount = 4;   
+-    protected final int MAXSELINDEX = rowcount - 1;
+-    protected short curtabindex;
+-    protected int iCurPosY;
+-    protected int FirstHelpIndex;
+-    protected int iCompPosX;
+-    protected int MaxSelIndex;
++    public XMultiServiceFactory xMSF;
++    public WizardDialog CurUnoDialog;
++    public String sNoField;
++    public Integer IStep;
++    public Integer ICompPosX;
++    public Integer ICompPosY;
++    public Integer ICompWidth;
++    public final int rowcount = 4;   
++    public final int MAXSELINDEX = rowcount - 1;
++    public short curtabindex;
++    public int iCurPosY;
++    public int FirstHelpIndex;
++    public int iCompPosX;
++    public int MaxSelIndex;
+     
+     
+     public DBLimitedFieldSelection(WizardDialog _CurUnoDialog, int iStep, int _iCompPosX, int iCompPosY, int iCompWidth, int _FirstHelpIndex){
+@@ -80,18 +80,18 @@ public abstract class DBLimitedFieldSele
+     }
+     
+     
+-    protected abstract void insertControlGroup(int index);
++    public abstract void insertControlGroup(int index);
+     
+-    protected abstract void toggleControlRow(int CurIndex, boolean bDoEnable);
++    public abstract void toggleControlRow(int CurIndex, boolean bDoEnable);
+     
+-    protected abstract void enableNextControlRow(int CurIndex);
++    public abstract void enableNextControlRow(int CurIndex);
+ 
+-    protected abstract void updateFromNextControlRow(int CurIndex);
++    public abstract void updateFromNextControlRow(int CurIndex);
+     
+-    protected abstract void setMaxSelIndex();
++    public abstract void setMaxSelIndex();
+     
+     
+-    protected void moveupSelectedItems(int CurIndex, boolean bDoEnable){    
++    public void moveupSelectedItems(int CurIndex, boolean bDoEnable){    
+         short iNextItemPos;
+         if ((bDoEnable == false) && (MAXSELINDEX > CurIndex)) {
+             for (int i = CurIndex; i < MAXSELINDEX; i++) {
+@@ -104,7 +104,7 @@ public abstract class DBLimitedFieldSele
+     }
+ 
+     
+-    protected String[] addNoneFieldItemToList(String[] _FieldNames){
++    public String[] addNoneFieldItemToList(String[] _FieldNames){
+         int FieldCount = _FieldNames.length;
+         String[] ViewFieldNames = new String[FieldCount + 1];
+         ViewFieldNames[0] = sNoField;
+@@ -114,7 +114,7 @@ public abstract class DBLimitedFieldSele
+     }
+ 
+ 
+-    protected void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String[] _SelFieldNames, int curindex){
++    public void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String[] _SelFieldNames, int curindex){
+         short[] SelList = null;     
+         Helper.setUnoPropertyValue(UnoDialog.getModel(xListBox),"StringItemList", _AllFieldNames);
+         if (_SelFieldNames != null){
+@@ -134,7 +134,7 @@ public abstract class DBLimitedFieldSele
+     }
+     
+         
+-    protected void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String _SelFieldName){
++    public void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String _SelFieldName){
+         Helper.setUnoPropertyValue(UnoDialog.getModel(xListBox),"StringItemList", _AllFieldNames);
+         short[] SelList = null;
+         int index = JavaTools.FieldInList(_AllFieldNames, _SelFieldName);
+--- wizards/com/sun/star/wizards/ui/DocumentPreview.java	2006-04-07 15:22:57.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/DocumentPreview.java	2007-05-24 11:24:05.000000000 +0200
+@@ -56,22 +56,22 @@ public class DocumentPreview  {
+     /**
+      * The window in which the preview is showed.
+      */
+-    private XWindow xWindow;
++    public XWindow xWindow;
+     /**
+      * The frame service which is used to show the preview
+      */
+-    private XFrame xFrame;
++    public XFrame xFrame;
+     /**
+      * The content component of the frame.
+      */
+-    private XComponent xComponent;
++    public XComponent xComponent;
+ 
+-    private XControl xControl;
++    public XControl xControl;
+ 
+-    private int step;
++    public int step;
+ 
+-    private PropertyValue[] loadArgs;
+-    private String url;
++    public PropertyValue[] loadArgs;
++    public String url;
+ 
+     public static final int PREVIEW_MODE = 1;
+ 
+@@ -91,7 +91,7 @@ public class DocumentPreview  {
+         createPreviewFrame(xmsf, xControl);
+     }
+ 
+-    protected XComponent setDocument(String url_, String[] propNames, Object[] propValues) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
++    public XComponent setDocument(String url_, String[] propNames, Object[] propValues) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
+         url = url_;
+ 
+         Properties ps = new Properties();
+@@ -102,7 +102,7 @@ public class DocumentPreview  {
+         return setDocument(url, ps.getProperties());
+     }
+ 
+-    protected XComponent setDocument(String url, PropertyValue[] lArgs) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
++    public XComponent setDocument(String url, PropertyValue[] lArgs) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
+         loadArgs = lArgs;
+         XComponentLoader xCompLoader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, xFrame);
+         xFrame.activate();
+@@ -116,7 +116,7 @@ public class DocumentPreview  {
+         setDocument(url, loadArgs);
+     }
+ 
+-    private void closeFrame() throws CloseVetoException {
++    public void closeFrame() throws CloseVetoException {
+         if (xFrame != null)
+              ((XCloseable) UnoRuntime.queryInterface(XCloseable.class, xFrame)).close(false);
+     }
+--- wizards/com/sun/star/wizards/ui/event/AbstractListener.java	2006-04-07 15:30:35.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/AbstractListener.java	2007-05-24 11:24:05.000000000 +0200
+@@ -54,7 +54,7 @@ import java.util.Hashtable;
+  * @author  rpiterman
+  */
+ public class AbstractListener {
+-    private Hashtable mHashtable = new Hashtable();
++    public Hashtable mHashtable = new Hashtable();
+ 
+     /** Creates a new instance of AbstractListener */
+     public AbstractListener() {
+--- wizards/com/sun/star/wizards/ui/event/DataAwareFields.java	2006-04-07 15:31:36.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/DataAwareFields.java	2007-05-24 11:24:05.000000000 +0200
+@@ -47,8 +47,8 @@ import com.sun.star.uno.Any;
+  * @see com.sun.star.wizards.ui.event.DataAware.Value 
+  */
+ public class DataAwareFields {
+-    private static final String TRUE = "true";
+-    private static final String FALSE = "false";
++    public static final String TRUE = "true";
++    public static final String FALSE = "false";
+ 
+     /**
+      * returns a Value Object which sets and gets values
+@@ -90,7 +90,7 @@ public class DataAwareFields {
+      * an abstract implementation of DataAware.Value to access
+      * object memebers (fields) usign reflection.
+      */
+-    private static abstract class FieldValue implements DataAware.Value {
++    public static abstract class FieldValue implements DataAware.Value {
+         Field field;
+ 
+         public FieldValue(Field field_) {
+@@ -103,8 +103,8 @@ public class DataAwareFields {
+ 
+     }
+ 
+-    private static class BooleanFieldValue extends FieldValue {
+-        private Class convertTo;
++    public static class BooleanFieldValue extends FieldValue {
++        public Class convertTo;
+ 
+         public BooleanFieldValue(Field f, Class convertTo_) {
+             super(f);
+@@ -143,8 +143,8 @@ public class DataAwareFields {
+ 
+     }
+ 
+-    private static class IntFieldValue extends FieldValue {
+-        private Class convertTo;
++    public static class IntFieldValue extends FieldValue {
++        public Class convertTo;
+ 
+         public IntFieldValue(Field f, Class convertTo_) {
+             super(f);
+@@ -182,8 +182,8 @@ public class DataAwareFields {
+         }
+ 
+     }
+-    private static class DoubleFieldValue extends FieldValue {
+-        private Class convertTo;
++    public static class DoubleFieldValue extends FieldValue {
++        public Class convertTo;
+ 
+         public DoubleFieldValue(Field f, Class convertTo_) {
+             super(f);
+@@ -220,8 +220,8 @@ public class DataAwareFields {
+         }
+     }
+ 
+-    private static class ConvertedStringValue extends FieldValue {
+-        private Class convertTo;
++    public static class ConvertedStringValue extends FieldValue {
++        public Class convertTo;
+ 
+         public ConvertedStringValue(Field f, Class convertTo_) {
+             super(f);
+@@ -264,7 +264,7 @@ public class DataAwareFields {
+         }
+     }
+ 
+-    private static class SimpleFieldValue extends FieldValue {
++    public static class SimpleFieldValue extends FieldValue {
+ 
+         public SimpleFieldValue(Field f) {
+             super(f);
+@@ -300,7 +300,7 @@ public class DataAwareFields {
+         }
+     }
+ 
+-    private static double toDouble(Object value) {
++    public static double toDouble(Object value) {
+         if (value instanceof Boolean)
+             return ((Boolean) value).booleanValue() ? 1 : 0;
+         else if (value instanceof Number)
+@@ -313,7 +313,7 @@ public class DataAwareFields {
+             throw new IllegalArgumentException("Can't convert value to double." + value.getClass().getName());
+     }
+ 
+-    private static boolean toBoolean(Object value) {
++    public static boolean toBoolean(Object value) {
+         if (value instanceof Boolean)
+             return ((Boolean) value).booleanValue();
+         else if (value instanceof Number)
+@@ -326,15 +326,15 @@ public class DataAwareFields {
+             throw new IllegalArgumentException("Can't convert value to boolean." + value.getClass().getName());
+     }
+ 
+-    private static int toInt(boolean b) {
++    public static int toInt(boolean b) {
+         return b ? 1 : 0;
+     }
+ 
+-    private static short[] toShortArray(double i) {
++    public static short[] toShortArray(double i) {
+         return new short[] {(short) i };
+     }
+ 
+-    private static Number toNumber(double i, Class c) {
++    public static Number toNumber(double i, Class c) {
+         if (c.equals(Integer.class))
+             return new Integer((int) i);
+         else if (c.equals(Short.class))
+--- wizards/com/sun/star/wizards/ui/event/DataAware.java	2006-04-07 15:31:17.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/DataAware.java	2007-05-24 11:24:05.000000000 +0200
+@@ -56,26 +56,26 @@ import java.util.Iterator;
+  * Data Object.
+  */
+ public abstract class DataAware {
+-    protected static Class[] EMPTY_ARRAY = new Class[0];
++    public static Class[] EMPTY_ARRAY = new Class[0];
+ 
+     /**
+      * this is the data object.
+      */
+-    protected Object dataObject;
++    public Object dataObject;
+     //protected Method setMethod;
+     //protected Method getMethod;
+     /**
+      * A Value Object knows how to get/set a value
+      * from/to the data object.
+      */
+-    protected Value value;
++    public Value value;
+     
+     /**
+      * creates a DataAware object for the given data object and Value object.
+      * @param dataObject_
+      * @param value_
+      */
+-    protected DataAware(Object dataObject_, Value value_) {
++    public DataAware(Object dataObject_, Value value_) {
+         dataObject = dataObject_;
+         value = value_;
+         //getMethod = createGetMethod(dataPropName, dataObject);
+@@ -115,7 +115,7 @@ public abstract class DataAware {
+      * another kind of Data is needed.
+      * @param newValue the new value to set to the DataObject.
+      */
+-    protected void setToData(Object newValue) {
++    public void setToData(Object newValue) {
+         value.set(newValue,getDataObject());
+     }
+ 
+@@ -125,7 +125,7 @@ public abstract class DataAware {
+      * the value object.
+      * @return the current value of the data object.
+      */
+-    protected Object getFromData() {
++    public Object getFromData() {
+         return value.get(getDataObject());
+     }
+     
+@@ -133,13 +133,13 @@ public abstract class DataAware {
+      * sets the given value to the UI control
+      * @param newValue the value to set to the ui control.
+      */
+-    protected abstract void setToUI(Object newValue);
++    public abstract void setToUI(Object newValue);
+ 
+     /**
+      * gets the current value from the UI control.
+      * @return the current value from the UI control.
+      */
+-    protected abstract Object getFromUI();
++    public abstract Object getFromUI();
+ 
+     /**
+      * updates the UI control according to the
+@@ -162,7 +162,7 @@ public abstract class DataAware {
+      * enables
+      * @param currentValue
+      */
+-    protected void enableControls(Object currentValue) {
++    public void enableControls(Object currentValue) {
+     }
+ 
+     /**
+@@ -189,7 +189,7 @@ public abstract class DataAware {
+      * @param b second object to compare.
+      * @return true if both are null or both are equal.
+      */
+-    protected boolean equals(Object a, Object b) {
++    public boolean equals(Object a, Object b) {
+         if (a == null && b == null)
+             return true;
+         if (a == null || b == null)
+@@ -275,11 +275,11 @@ public abstract class DataAware {
+         /**
+          * the get method of the JavaBean-style property
+          */
+-        private Method getMethod;
++        public Method getMethod;
+         /**
+          * the set method of the JavaBean-style property
+          */
+-        private Method setMethod;
++        public Method setMethod;
+ 
+         /**
+          * creates a PropertyValue for the property with
+@@ -299,7 +299,7 @@ public abstract class DataAware {
+          * @param obj the object which contains the property.
+          * @return the get method reflection object.
+          */
+-        protected Method createGetMethod(String propName, Object obj) {
++        public Method createGetMethod(String propName, Object obj) {
+             Method m = null;
+             try { //try to get a "get" method.
+                 m = obj.getClass().getMethod("get" + propName, EMPTY_ARRAY);
+@@ -333,7 +333,7 @@ public abstract class DataAware {
+         
+         }
+ 
+-        protected Method createSetMethod(String propName, Object obj, Class paramClass) {
++        public Method createSetMethod(String propName, Object obj, Class paramClass) {
+             Method m = null;
+             try {
+                 m = obj.getClass().getMethod("set" + propName, new Class[] { paramClass });
+--- wizards/com/sun/star/wizards/ui/event/ListModelBinder.java	2006-04-07 15:32:33.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/ListModelBinder.java	2007-05-24 11:24:05.000000000 +0200
+@@ -47,10 +47,10 @@ import com.sun.star.wizards.common.Helpe
+ 
+  * */
+ public class ListModelBinder implements ListDataListener {
+-    private XListBox unoList;
+-    private Object unoListModel;
+-    private ListModel listModel;
+-    private Renderer renderer = new Renderer() {
++    public XListBox unoList;
++    public Object unoListModel;
++    public ListModel listModel;
++    public Renderer renderer = new Renderer() {
+         public String render(Object item) {
+             if (item == null)
+                 return "";
+@@ -82,32 +82,32 @@ public class ListModelBinder implements 
+         setSelectedItems(selected);
+     }
+ 
+-    protected void update(short i) {
++    public void update(short i) {
+         remove(i, i);
+         insert(i);
+     }
+ 
+-    protected void remove(short i1, short i2) {
++    public void remove(short i1, short i2) {
+         unoList.removeItems((short) i1, (short) (i2 - i1 + 1));
+     }
+ 
+-    protected void insert(short i) {
++    public void insert(short i) {
+         unoList.addItem(getItemString(i), i);
+     }
+ 
+-    protected String getItemString(short i) {
++    public String getItemString(short i) {
+         return getItemString(listModel.getElementAt((int) i));
+     }
+ 
+-    protected String getItemString(Object item) {
++    public String getItemString(Object item) {
+         return renderer.render(item);
+     }
+ 
+-    protected short[] getSelectedItems() {
++    public short[] getSelectedItems() {
+         return (short[]) Helper.getUnoPropertyValue(unoListModel, "SelectedItems");
+     }
+ 
+-    protected void setSelectedItems(short[] selected) {
++    public void setSelectedItems(short[] selected) {
+         Helper.setUnoPropertyValue(unoListModel, "SelectedItems", selected);
+     }
+ 
+--- wizards/com/sun/star/wizards/ui/event/RadioDataAware.java	2006-04-07 15:33:15.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/RadioDataAware.java	2007-05-24 11:24:05.000000000 +0200
+@@ -44,7 +44,7 @@ import com.sun.star.uno.UnoRuntime;
+  * Window>Preferences>Java>Code Generation>Code and Comments
+  */
+ public class RadioDataAware extends DataAware {
+-    protected XRadioButton[] radioButtons;
++    public XRadioButton[] radioButtons;
+ 
+     public RadioDataAware(Object data, Value value, Object[] radioButs) {
+         super(data, value);
+@@ -56,7 +56,7 @@ public class RadioDataAware extends Data
+     /* (non-Javadoc)
+      * @see com.sun.star.wizards.ui.DataAware#setToUI(java.lang.Object)
+      */
+-    protected void setToUI(Object value) {
++    public void setToUI(Object value) {
+         int selected = ((Number) value).intValue();
+         if (selected == -1)
+             for (int i = 0; i < radioButtons.length; i++)
+@@ -68,7 +68,7 @@ public class RadioDataAware extends Data
+     /* (non-Javadoc)
+      * @see com.sun.star.wizards.ui.DataAware#getFromUI()
+      */
+-    protected Object getFromUI() {
++    public Object getFromUI() {
+         for (int i = 0; i < radioButtons.length; i++)
+             if (radioButtons[i].getState())
+                 return new Integer(i);
+--- wizards/com/sun/star/wizards/ui/event/SimpleDataAware.java	2006-04-07 15:33:39.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/SimpleDataAware.java	2007-05-24 11:24:05.000000000 +0200
+@@ -37,9 +37,9 @@ package com.sun.star.wizards.ui.event;
+ 
+ public class SimpleDataAware extends DataAware {
+ 
+-    protected Object control;
+-    protected Object[] disableObjects = new Object[0];
+-    protected Value controlValue;
++    public Object control;
++    public Object[] disableObjects = new Object[0];
++    public Value controlValue;
+ 
+     public SimpleDataAware(Object dataObject, Value value, Object control_, Value controlValue_ ) {
+         super(dataObject, value);
+@@ -48,14 +48,14 @@ public class SimpleDataAware extends Dat
+     }
+ 
+     /*
+-    protected void enableControls(Object value) {
++    public void enableControls(Object value) {
+         Boolean b = getBoolean(value);
+         for (int i = 0; i<disableObjects.length; i++)
+             UIHelper.setEnabled(disableObjects[i],b);
+     }
+     */
+ 
+-    protected void setToUI(Object value) {
++    public void setToUI(Object value) {
+         controlValue.set(value,control);
+     }
+ 
+@@ -85,7 +85,7 @@ public class SimpleDataAware extends Dat
+     }
+     */
+ 
+-    protected Object getFromUI() {
++    public Object getFromUI() {
+         return controlValue.get(control);
+     }
+ 
+--- wizards/com/sun/star/wizards/ui/event/TaskEvent.java	2006-04-07 15:34:39.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/TaskEvent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -49,7 +49,7 @@ public class TaskEvent extends EventObje
+     public static final int SUBTASK_NAME_CHANGED = 4;
+     public static final int TASK_FAILED = 5;
+     
+-    private int type;
++    public int type;
+     
+     /**
+      * general constructor-
+--- wizards/com/sun/star/wizards/ui/event/Task.java	2006-04-07 15:34:04.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/Task.java	2007-05-24 11:24:05.000000000 +0200
+@@ -43,13 +43,13 @@ import java.util.Vector;
+  * Window>Preferences>Java>Code Generation>Code and Comments
+  */
+ public class Task {
+-    private int successfull = 0;
+-    private int failed = 0;
++    public int successfull = 0;
++    public int failed = 0;
+     
+-    private int max = 0;
+-    private String taskName;
+-    private List listeners = new Vector();
+-    private String subtaskName;
++    public int max = 0;
++    public String taskName;
++    public List listeners = new Vector();
++    public String subtaskName;
+     
+     
+     public Task(String taskName_ , String subtaskName_, int max_) {
+@@ -102,35 +102,35 @@ public class Task {
+         listeners.remove(tl);
+     }
+     
+-    protected void fireTaskStatusChanged() {
++    public void fireTaskStatusChanged() {
+         TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STATUS_CHANGED);
+         
+         for (int i = 0; i<listeners.size(); i++)
+           ((TaskListener)listeners.get(i)).taskStatusChanged(te);
+     }
+     
+-    protected void fireTaskStarted() {  
++    public void fireTaskStarted() {  
+         TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STARTED);
+         
+         for (int i = 0; i<listeners.size(); i++)
+           ((TaskListener)listeners.get(i)).taskStarted(te);
+     }
+     
+-    protected void fireTaskFailed() {   
++    public void fireTaskFailed() {   
+             TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FAILED);
+         
+             for (int i = 0; i<listeners.size(); i++)
+               ((TaskListener)listeners.get(i)).taskFinished(te);
+         }
+     
+-    protected void fireTaskFinished() {
++    public void fireTaskFinished() {
+         TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FINISHED);
+         
+         for (int i = 0; i<listeners.size(); i++)
+           ((TaskListener)listeners.get(i)).taskFinished(te);
+     }
+     
+-    protected void fireSubtaskNameChanged() {
++    public void fireSubtaskNameChanged() {
+         TaskEvent te = new TaskEvent(this, TaskEvent.SUBTASK_NAME_CHANGED);
+     
+         for (int i = 0; i<listeners.size(); i++)
+--- wizards/com/sun/star/wizards/ui/event/UnoDataAware.java	2006-04-07 15:35:48.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/event/UnoDataAware.java	2007-05-24 11:24:05.000000000 +0200
+@@ -52,13 +52,13 @@ import com.sun.star.wizards.common.Helpe
+  */
+ public class UnoDataAware extends DataAware {
+ 
+-    protected Object unoControl;
+-    protected Object unoModel;
+-    protected String unoPropName;
+-    protected Object[] disableObjects = new Object[0];
+-    protected boolean inverse = false;
++    public Object unoControl;
++    public Object unoModel;
++    public String unoPropName;
++    public Object[] disableObjects = new Object[0];
++    public boolean inverse = false;
+ 
+-    protected UnoDataAware(Object dataObject, Value value, Object unoObject_, String unoPropName_) {
++    public UnoDataAware(Object dataObject, Value value, Object unoObject_, String unoPropName_) {
+         super(dataObject, value);
+         unoControl = unoObject_;
+         unoModel = getModel(unoControl);
+@@ -69,7 +69,7 @@ public class UnoDataAware extends DataAw
+         inverse = i;
+     }
+ 
+-    protected void enableControls(Object value) {
++    public void enableControls(Object value) {
+         Boolean b = getBoolean(value);
+         if (inverse)
+             b = b.booleanValue() ? Boolean.FALSE : Boolean.TRUE;
+@@ -77,12 +77,12 @@ public class UnoDataAware extends DataAw
+             setEnabled(disableObjects[i], b);
+     }
+ 
+-    protected void setToUI(Object value) {
++    public void setToUI(Object value) {
+         //System.out.println("Settings uno property : "+ Helper.getUnoPropertyValue(this.unoModel,"Name") + "<-" +stringof(value));
+         Helper.setUnoPropertyValue(unoModel, unoPropName, value);
+     }
+     
+-    private String stringof(Object value) {
++    public String stringof(Object value) {
+         if (value.getClass().isArray()) {
+             StringBuffer sb = new StringBuffer("[");
+             for (int i = 0 ; i<((short[])value).length; i++)
+@@ -106,7 +106,7 @@ public class UnoDataAware extends DataAw
+      * @param value
+      * @return
+      */
+-    protected Boolean getBoolean(Object value) {
++    public Boolean getBoolean(Object value) {
+         if (value == null)
+             return Boolean.FALSE;
+         if (value instanceof Boolean)
+@@ -125,11 +125,11 @@ public class UnoDataAware extends DataAw
+         disableObjects = controls;
+     }
+ 
+-    protected Object getFromUI() {
++    public Object getFromUI() {
+         return Helper.getUnoPropertyValue(unoModel, unoPropName);
+     }
+ 
+-    private static UnoDataAware attachTextControl(Object data, String prop, Object unoText, final Listener listener, String unoProperty, boolean field, Object value) {
++    public static UnoDataAware attachTextControl(Object data, String prop, Object unoText, final Listener listener, String unoProperty, boolean field, Object value) {
+         XTextComponent text = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, unoText);
+         final UnoDataAware uda = new UnoDataAware(data,
+             field 
+--- wizards/com/sun/star/wizards/ui/FieldSelection.java	2006-12-01 17:49:43.000000000 +0100
++++ wizards/com/sun/star/wizards/ui/FieldSelection.java	2007-05-24 11:24:05.000000000 +0200
+@@ -49,9 +49,9 @@ public class FieldSelection {
+     public XFieldSelectionListener xFieldSelection;
+     public int maxfieldcount = 10000000;
+     public String sIncSuffix;
+-    protected Integer IStep;
+-    protected int FirstHelpIndex;
+-    protected short curtabindex;
++    public Integer IStep;
++    public int FirstHelpIndex;
++    public short curtabindex;
+     String[] AllFieldNames;
+     public Integer ListBoxWidth;
+     public Integer SelListBoxPosX;
+@@ -266,7 +266,7 @@ public class FieldSelection {
+     }
+ 
+     // Todo: If Value is getting smaller than zero -> throw exception
+-    private Integer[] getYButtonPositions(int ButtonCount) {
++    public Integer[] getYButtonPositions(int ButtonCount) {
+         Integer[] YPosArray;
+         if (ButtonCount > 0) {
+             YPosArray = new Integer[ButtonCount];
+@@ -287,7 +287,7 @@ public class FieldSelection {
+     }
+ 
+ 
+-    private void changeSelectionOrder(int iNeighbor) {
++    public void changeSelectionOrder(int iNeighbor) {
+         short[] iSelIndices = xSelFieldsListBox.getSelectedItemsPos();
+         // Todo: we are assuming that the array starts with the lowest index. Verfy this assumption!!!!!
+         if (iSelIndices.length == 1) {
+@@ -329,7 +329,7 @@ public class FieldSelection {
+ 
+     // Enable or disable the buttons used for moving the available
+     // fields between the two list boxes.
+-    protected void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex) {
++    public void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex) {
+         try {
+             boolean bmoveUpenabled = false;
+             boolean bmoveDownenabled = false;
+@@ -357,7 +357,7 @@ public class FieldSelection {
+     }
+ 
+ 
+-    protected void toggleMoveButtons(boolean _btoggleMoveAll, boolean _btoggleMoveSelected) {
++    public void toggleMoveButtons(boolean _btoggleMoveAll, boolean _btoggleMoveSelected) {
+         boolean btoggleMoveAll = (((xFieldsListBox.getItemCount() + xSelFieldsListBox.getItemCount()) < maxfieldcount) && (_btoggleMoveAll));
+         boolean btoggleMoveSelected = (((xFieldsListBox.getSelectedItems().length + xSelFieldsListBox.getItemCount()) < maxfieldcount) && (_btoggleMoveSelected));
+         CurUnoDialog.setControlProperty("cmdMoveAll" + sIncSuffix, "Enabled", new Boolean(btoggleMoveAll));
+--- wizards/com/sun/star/wizards/ui/FilterComponent.java	2006-12-01 17:49:56.000000000 +0100
++++ wizards/com/sun/star/wizards/ui/FilterComponent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -70,18 +70,18 @@ public class FilterComponent{
+     public String[] FieldNames;
+     XRadioButton optMatchAll;
+     XRadioButton optMatchAny;
+-    private String soptMatchAll;
+-    private String soptMatchAny;
+-    private String[] sHeadLines;
+-    private String slblFieldNames;
+-    private String slblOperators;
+-    private String slblValue;
++    public String soptMatchAll;
++    public String soptMatchAny;
++    public String[] sHeadLines;
++    public String slblFieldNames;
++    public String slblOperators;
++    public String slblValue;
+     WizardDialog CurUnoDialog;
+-    private int BaseID = 2300;
+-    private String sIncSuffix;
+-    private ControlRow[] oControlRows;
+-    private Vector FilterNames;
+-    private String sDuplicateCondition;
++    public int BaseID = 2300;
++    public String sIncSuffix;
++    public ControlRow[] oControlRows;
++    public Vector FilterNames;
++    public String sDuplicateCondition;
+     final int SOLSTFIELDNAME = 3;
+     final int SOLSTOPERATOR = 4;
+     final int SOTXTVALUE = 5;
+@@ -201,7 +201,7 @@ public class FilterComponent{
+     }
+ 
+ 
+-    private void togglefollowingControlRow(String _scurName){
++    public void togglefollowingControlRow(String _scurName){
+         String sNameSuffix = sIncSuffix + "_" + _scurName.substring(_scurName.length() - 1, _scurName.length());
+         int Index = Integer.valueOf(_scurName.substring(_scurName.length() - 1, _scurName.length())).intValue();
+         if (Index < oControlRows.length)
+@@ -209,7 +209,7 @@ public class FilterComponent{
+     }
+ 
+ 
+-    private String getControlName(Object _oSourceevent){
++    public String getControlName(Object _oSourceevent){
+     try {
+         XControl xControl = (XControl) UnoRuntime.queryInterface(XControl.class, _oSourceevent);
+         XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xControl.getModel());
+@@ -315,7 +315,7 @@ public class FilterComponent{
+         }
+     }
+ 
+-    private int getfilterstate() {
++    public int getfilterstate() {
+         boolean bisany = true;
+         bisany = (this.optMatchAny.getState()) == true;
+         if (bisany)
+@@ -325,7 +325,7 @@ public class FilterComponent{
+         return ifilterstate;
+     }
+ 
+-    private void addfiltercondition(int _index, String _curFieldName, Object _curValue, int _curOperator) {
++    public void addfiltercondition(int _index, String _curFieldName, Object _curValue, int _curOperator) {
+         try {
+             String ValString = String.valueOf(_curValue);
+             PropertyValue oPropertyValue = Properties.createProperty(_curFieldName, ValString, _curOperator);
+@@ -341,7 +341,7 @@ public class FilterComponent{
+         }
+     }
+ 
+-    private int getFilterCount() {
++    public int getFilterCount() {
+         int a = 0;
+         for (int i = 0; i < RowCount; i++)
+             if (oControlRows[i].isEnabled() && oControlRows[i].isComplete())
+@@ -432,11 +432,11 @@ public class FilterComponent{
+ 
+ 
+         class ControlRow {
+-            protected XInterface[] ControlElements = new XInterface[6];
+-            private boolean bEnabled;
++            public XInterface[] ControlElements = new XInterface[6];
++            public boolean bEnabled;
+             String[] FieldNames;
+ 
+-            protected ControlRow(int iCompPosY, int Index, boolean _bEnabled, int _firstRowHelpID) {
++            public ControlRow(int iCompPosY, int Index, boolean _bEnabled, int _firstRowHelpID) {
+             try {
+                 String sCompSuffix = sIncSuffix + "_" + String.valueOf(Index + 1);
+                 this.bEnabled = _bEnabled;
+@@ -487,7 +487,7 @@ public class FilterComponent{
+             }
+ 
+ 
+-            protected void setCondition(PropertyValue _filtercondition) {
++            public void setCondition(PropertyValue _filtercondition) {
+             try {
+                 int ikey;
+                 XListBox xFieldsListBox = (XListBox) UnoRuntime.queryInterface(XListBox.class, ControlElements[SOLSTFIELDNAME]);
+@@ -514,22 +514,22 @@ public class FilterComponent{
+             }}
+ 
+ 
+-            protected void setFieldNames(String[] _FieldNames) {
++            public void setFieldNames(String[] _FieldNames) {
+                 Helper.setUnoPropertyValue(UnoDialog.getModel(ControlElements[SOLSTFIELDNAME]), "StringItemList", _FieldNames);
+                 FieldNames = _FieldNames;
+             }
+ 
+-            protected boolean isEnabled() {
++            public boolean isEnabled() {
+                 return bEnabled;
+             }
+ 
+-            protected void settovoid() {
++            public void settovoid() {
+                 CurUnoDialog.deselectListBox(ControlElements[SOLSTFIELDNAME]);
+                 CurUnoDialog.deselectListBox(ControlElements[SOLSTOPERATOR]);
+                 Helper.setUnoPropertyValue(UnoDialog.getModel(ControlElements[SOTXTVALUE]), "EffectiveValue", com.sun.star.uno.Any.VOID);
+             }
+ 
+-            protected void setEnabled(boolean _bEnabled) {
++            public void setEnabled(boolean _bEnabled) {
+                 for (int i = 0; i < ControlElements.length; i++)
+                     Helper.setUnoPropertyValue(UnoDialog.getModel(ControlElements[i]), "Enabled", new Boolean(_bEnabled));
+                 bEnabled = _bEnabled;
+@@ -548,7 +548,7 @@ public class FilterComponent{
+                         CurUnoDialog.deselectListBox(ControlElements[SOLSTOPERATOR]);
+             }
+ 
+-            protected String getSelectedFieldName() {
++            public String getSelectedFieldName() {
+                 try {
+                     short[] SelFields = (short[]) AnyConverter.toArray(Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOLSTFIELDNAME]), "SelectedItems"));
+                     return FieldNames[SelFields[0]];
+@@ -559,7 +559,7 @@ public class FilterComponent{
+             }
+ 
+             // TODO: check if it is really useful to match the indices of the listbox the API constants
+-            protected short getSelectedOperator() {
++            public short getSelectedOperator() {
+                 try {
+                     short[] SelFields = (short[]) AnyConverter.toArray(Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOLSTOPERATOR]), "SelectedItems"));
+                     return SelFields[0];
+@@ -570,7 +570,7 @@ public class FilterComponent{
+             }
+ 
+             // TODO make a difference between Text and Numbers
+-            protected Object getValue() {
++            public Object getValue() {
+                 try {
+                     return (Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOTXTVALUE]), "EffectiveValue"));
+                 } catch (Exception exception) {
+@@ -579,7 +579,7 @@ public class FilterComponent{
+                 }
+             }
+ 
+-            protected Object getText() {
++            public Object getText() {
+                 try {
+                     return (Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOTXTVALUE]), "Text"));
+                 } catch (Exception exception) {
+@@ -588,7 +588,7 @@ public class FilterComponent{
+                 }
+             }
+             
+-            protected String getDateTimeString(boolean bgetDate) {
++            public String getDateTimeString(boolean bgetDate) {
+             try {
+                 double dblValue = ((Double) getValue()).doubleValue();
+                 NumberFormatter oNumberFormatter = oQueryMetaData.getNumberFormatter();
+--- wizards/com/sun/star/wizards/ui/ImageList.java	2006-04-07 15:24:04.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/ImageList.java	2007-05-24 11:24:05.000000000 +0200
+@@ -55,54 +55,54 @@ import javax.swing.event.ListDataListene
+  */
+     public class ImageList implements XItemEventBroadcaster, ListDataListener{
+ 
+-    private XControl imgContainer;
+-    private XFixedText lblImageText;
+-    private XFixedText grbxSelectedImage;
+-    private XButton btnBack;
+-    private XButton btnNext;
+-    private XFixedText lblCounter;
+-    private XControl images[];
+-    private boolean benabled = true;
+-    private UnoDialog2 oUnoDialog;
+-    private Size gap = new Size(4, 4);
+-    private int cols = 4;
+-    private int rows = 3;
+-    private Size imageSize = new Size(20, 20);
+-    private Size pos;
+-    private Size selectionGap = new Size(2, 2);
+-    private boolean showButtons = true;
+-    private Short step;
+-    private final static Short NO_BORDER = new Short((short) 0);
+-    private boolean refreshOverNull = true;
+-    private int imageTextLines = 1;
++    public XControl imgContainer;
++    public XFixedText lblImageText;
++    public XFixedText grbxSelectedImage;
++    public XButton btnBack;
++    public XButton btnNext;
++    public XFixedText lblCounter;
++    public XControl images[];
++    public boolean benabled = true;
++    public UnoDialog2 oUnoDialog;
++    public Size gap = new Size(4, 4);
++    public int cols = 4;
++    public int rows = 3;
++    public Size imageSize = new Size(20, 20);
++    public Size pos;
++    public Size selectionGap = new Size(2, 2);
++    public boolean showButtons = true;
++    public Short step;
++    public final static Short NO_BORDER = new Short((short) 0);
++    public boolean refreshOverNull = true;
++    public int imageTextLines = 1;
+ 
+-    private boolean rowSelect = false;
++    public boolean rowSelect = false;
+     public int tabIndex;
+     public Boolean scaleImages = Boolean.TRUE;
+     public String name = "il";
+ 
+-    private int selected = -1;
+-    private int pageStart = 0;
++    public int selected = -1;
++    public int pageStart = 0;
+     public int helpURL = 0;
+ 
+-    private CommonListener uiEventListener = new CommonListener();
+-    private ImageRenderer renderer;
+-    private ListModel listModel;
++    public CommonListener uiEventListener = new CommonListener();
++    public ImageRenderer renderer;
++    public ListModel listModel;
+     public Renderer counterRenderer = new SimpleCounterRenderer();
+ 
+-    private Object dialogModel;
++    public Object dialogModel;
+ 
+-    private ImageKeyListener imageKeyListener;
++    public ImageKeyListener imageKeyListener;
+ 
+-    private static final Integer BACKGROUND_COLOR = new Integer(16777216);  //new Integer(SystemColor.window.getRGB() + 16777216);
++    public static final Integer BACKGROUND_COLOR = new Integer(16777216);  //new Integer(SystemColor.window.getRGB() + 16777216);
+ 
+-    private final static Short HIDE_PAGE = new Short((short) 99);
+-    private final static Integer TRANSPARENT = new Integer(-1);
+-    private final static int LINE_HEIGHT = 8;
++    public final static Short HIDE_PAGE = new Short((short) 99);
++    public final static Integer TRANSPARENT = new Integer(-1);
++    public final static int LINE_HEIGHT = 8;
+ 
+     //private MethodInvocation METHOD_MOUSE_ENTER_IMAGE;
+     //private MethodInvocation METHOD_MOUSE_EXIT_IMAGE;
+-    private MethodInvocation METHOD_MOUSE_PRESSED;
++    public MethodInvocation METHOD_MOUSE_PRESSED;
+ 
+     /** Getter for property imageSize.
+      * @return Value of property imageSize.
+@@ -211,12 +211,12 @@ import javax.swing.event.ListDataListene
+ 
+     }
+ 
+-    private Integer _imageHeight, _imageWidth;
+-    private final static String[] IMAGE_PROPS = new String[] { "Border", "BackgroundColor", "Height", "HelpURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Tabstop", "Width" };
++    public Integer _imageHeight, _imageWidth;
++    public final static String[] IMAGE_PROPS = new String[] { "Border", "BackgroundColor", "Height", "HelpURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Tabstop", "Width" };
+     //used for optimization
+-    private Short tabIndex_;
++    public Short tabIndex_;
+ 
+-    private XControl createImage(UnoDialog2 dialog, int row, int col) {
++    public XControl createImage(UnoDialog2 dialog, int row, int col) {
+         String imageName = name + "_image" + (row * cols + col);
+         XControl image = dialog.insertImage(imageName, IMAGE_PROPS, new Object[] { NO_BORDER, BACKGROUND_COLOR, _imageHeight, "HID:" + helpURL++, new Integer(imagePosX(col)), new Integer(imagePosY(row)), scaleImages, step, tabIndex_ , Boolean.FALSE, _imageWidth });
+ 
+@@ -230,15 +230,15 @@ import javax.swing.event.ListDataListene
+         return image;
+     }
+ 
+-    private int imagePosX(int col) {
++    public int imagePosX(int col) {
+         return pos.Width + col * (imageSize.Width + gap.Width) + gap.Width;
+     }
+ 
+-    private int imagePosY(int row) {
++    public int imagePosY(int row) {
+         return pos.Height + row * (imageSize.Height + gap.Height) + gap.Height;
+     }
+ 
+-    private void refreshImages() {
++    public void refreshImages() {
+         if (showButtons)
+             refreshCounterText();
+         hideSelection();
+@@ -262,11 +262,11 @@ import javax.swing.event.ListDataListene
+         refreshSelection();
+     }
+ 
+-    private void refreshCounterText() {
++    public void refreshCounterText() {
+         Helper.setUnoPropertyValue(getModel(lblCounter), "Label", counterRenderer.render(new Counter(pageStart + 1, pageEnd(), listModel.getSize())));
+     }
+ 
+-    private int pageEnd() {
++    public int pageEnd() {
+         int i = pageStart + cols * rows;
+         if (i > listModel.getSize() - 1)
+             return listModel.getSize();
+@@ -274,25 +274,25 @@ import javax.swing.event.ListDataListene
+             return i;
+     }
+ 
+-    private void refreshSelection() {
++    public void refreshSelection() {
+         if (selected < pageStart || selected >= (pageStart + rows * cols))
+             hideSelection();
+         else
+             moveSelection(getImageIndexFor(selected));
+     }
+ 
+-    private void hideSelection() {
++    public void hideSelection() {
+         Helper.setUnoPropertyValue(getModel(grbxSelectedImage), "Step", HIDE_PAGE);
+         setVisible(grbxSelectedImage, false);
+     }
+ 
+-    private final static String[] MOVE_SELECTION = new String[] { "PositionX", "PositionY", "Step" };
+-    private Object[] MOVE_SELECTION_VALS = new Object[3];
++    public final static String[] MOVE_SELECTION = new String[] { "PositionX", "PositionY", "Step" };
++    public Object[] MOVE_SELECTION_VALS = new Object[3];
+ 
+     /** Utility field holding list of ItemListeners. */
+-    private transient java.util.ArrayList itemListenerList;
++    public transient java.util.ArrayList itemListenerList;
+ 
+-    private void moveSelection(int image) {
++    public void moveSelection(int image) {
+         //System.out.println(image);
+         setVisible(grbxSelectedImage, false);
+ 
+@@ -316,7 +316,7 @@ import javax.swing.event.ListDataListene
+     }
+         
+ 
+-    private void setVisible(Object control, boolean visible) {
++    public void setVisible(Object control, boolean visible) {
+         ((XWindow) UnoRuntime.queryInterface(XWindow.class, control)).setVisible(visible);
+     }
+ 
+@@ -325,7 +325,7 @@ import javax.swing.event.ListDataListene
+      * @param i
+      * @return the Object in the list model corresponding to the given image index.
+      */
+-    private Object getObjectFor(int i) {
++    public Object getObjectFor(int i) {
+         int ii = getIndexFor(i);
+         if (listModel.getSize() <= ii)
+             return null;
+@@ -338,11 +338,11 @@ import javax.swing.event.ListDataListene
+      * @param i
+      * @return the index in the listModel for the given image index.
+      */
+-    private int getIndexFor(int i) {
++    public int getIndexFor(int i) {
+         return pageStart + i;
+     }
+ 
+-    private int getImageIndexFor(int i) {
++    public int getImageIndexFor(int i) {
+         return i - pageStart;
+     }
+ 
+@@ -398,7 +398,7 @@ import javax.swing.event.ListDataListene
+      * @param event The event to be fired
+      *
+      */
+-    private void fireItemSelected() {
++    public void fireItemSelected() {
+ //      java.awt.event.ItemEvent event = new java.awt.event.ItemEvent(this, 0, 
+ //          getSelectedObject(), java.awt.event.ItemEvent.SELECTED);
+         java.util.ArrayList list;
+@@ -576,7 +576,7 @@ import javax.swing.event.ListDataListene
+ 
+     }
+ 
+-    private void refreshImageText() {
++    public void refreshImageText() {
+         Object item = selected >= 0 ? getListModel().getElementAt(selected) : null;
+         Helper.setUnoPropertyValue(getModel(lblImageText), "Label", " " + renderer.render(item));
+     }
+@@ -610,16 +610,16 @@ import javax.swing.event.ListDataListene
+         setPageStart(i);
+     }
+ 
+-    private void enableButtons() {
++    public void enableButtons() {
+         enable(btnNext, new Boolean(pageStart + rows * cols < listModel.getSize()));
+         enable(btnBack, new Boolean(pageStart > 0));
+     }
+ 
+-    private void enable(Object control, Boolean enable) {
++    public void enable(Object control, Boolean enable) {
+         Helper.setUnoPropertyValue(getModel(control), "Enabled", enable);
+     }
+ 
+-    private Object getModel(Object control) {
++    public Object getModel(Object control) {
+         return ((XControl) UnoRuntime.queryInterface(XControl.class, control)).getModel();
+     }
+ 
+@@ -641,13 +641,13 @@ import javax.swing.event.ListDataListene
+     }
+ */
+ 
+-    private void setBorder(Object control, Short border) {
++    public void setBorder(Object control, Short border) {
+         Helper.setUnoPropertyValue(getModel(control), "Border", border);
+         //XWindowPeer peer = ((XControl)UnoRuntime.queryInterface(XControl.class,control)).getPeer();
+         //peer.invalidate(InvalidateStyle.CHILDREN);
+     }
+ 
+-    private int getImageFromEvent(Object event) {
++    public int getImageFromEvent(Object event) {
+         Object image = ((EventObject) event).Source;
+         String controlName = (String) Helper.getUnoPropertyValue(getModel(image), "Name");
+         return Integer.valueOf(controlName.substring(6  + name.length())).intValue();
+@@ -680,7 +680,7 @@ import javax.swing.event.ListDataListene
+         public Object[] getImageUrls(Object listItem);
+     }
+ 
+-    private static class SimpleCounterRenderer implements Renderer {
++    public static class SimpleCounterRenderer implements Renderer {
+         public String render(Object counter) {
+             return "" + ((Counter) counter).start + ".." + ((Counter) counter).end + "/" + ((Counter) counter).max;
+         }
+@@ -722,7 +722,7 @@ import javax.swing.event.ListDataListene
+     
+     
+     
+-    private class ImageKeyListener implements XKeyListener {
++    public class ImageKeyListener implements XKeyListener {
+ 
+         /* (non-Javadoc)
+          * @see com.sun.star.awt.XKeyListener#keyPressed(com.sun.star.awt.KeyEvent)
+@@ -739,17 +739,17 @@ import javax.swing.event.ListDataListene
+                 changeFocus(image,newImage);
+         }
+         
+-        private boolean isFocusable(int image) {
++        public boolean isFocusable(int image) {
+             return (image >= 0) && (getIndexFor(image) < listModel.getSize());
+         }
+         
+-        private void changeFocus(int oldFocusImage, int newFocusImage) {
++        public void changeFocus(int oldFocusImage, int newFocusImage) {
+             focus(newFocusImage);
+             defocus(oldFocusImage);
+         }
+         
+         
+-        private final int getKeyMove(KeyEvent ke, int row, int col) {
++        public final int getKeyMove(KeyEvent ke, int row, int col) {
+             switch (ke.KeyCode) {
+                 case Key.UP : 
+                     if (row > 0) return 0 - getCols();
+@@ -769,7 +769,7 @@ import javax.swing.event.ListDataListene
+             return 0;
+         }
+         
+-        private void select(KeyEvent ke) {
++        public void select(KeyEvent ke) {
+             setSelected(getIndexFor(getImageFromEvent(ke)));
+         }
+         
+@@ -780,14 +780,14 @@ import javax.swing.event.ListDataListene
+         
+     }
+     
+-    private final void focus(int image) {   
++    public final void focus(int image) {   
+         Helper.setUnoPropertyValue(images[image].getModel(),"Tabstop",
+             Boolean.TRUE );
+         XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,images[image]); 
+         xWindow.setFocus();
+     }
+     
+-    private final void defocus(int image) {
++    public final void defocus(int image) {
+         Helper.setUnoPropertyValue(UnoDialog.getModel(images[image]),"Tabstop",
+             Boolean.FALSE);
+         
+--- wizards/com/sun/star/wizards/ui/PathSelection.java	2006-04-07 15:24:26.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/PathSelection.java	2007-05-24 11:24:05.000000000 +0200
+@@ -22,8 +22,8 @@ public class PathSelection {
+     public XPathSelectionListener xAction;
+     public XTextComponent xSaveTextBox;
+ 
+-    private final int CMDSELECTPATH = 1;
+-    private final int TXTSAVEPATH = 1;
++    public final int CMDSELECTPATH = 1;
++    public final int TXTSAVEPATH = 1;
+ 
+     public static class DialogTypes {
+         public static final int FOLDER = 0;
+--- wizards/com/sun/star/wizards/ui/SortingComponent.java	2006-04-07 15:25:20.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/SortingComponent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -115,7 +115,7 @@ public class SortingComponent {
+         }
+     }
+ 
+-    private boolean getResources() {
++    public boolean getResources() {
+         sSortHeader[0] = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 20);
+         sSortHeader[1] = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 21);
+         sSortHeader[2] = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 51);
+@@ -151,7 +151,7 @@ public class SortingComponent {
+         }
+     }
+ 
+-    private void setMaxSortIndex() {
++    public void setMaxSortIndex() {
+         MaxSortIndex = -1;
+         for (int i = 0; i <= MAXSORTCRITERIAINDEX; i++) {
+             if (xSortListBox[i].getSelectedItemPos() > 0)
+@@ -181,7 +181,7 @@ public class SortingComponent {
+         }
+     }
+     
+-    private void enableNextSortListBox(int CurIndex) {
++    public void enableNextSortListBox(int CurIndex) {
+         try {
+             setMaxSortIndex();
+             boolean bDoEnable = (xSortListBox[CurIndex].getSelectedItemPos() != 0);
+@@ -245,7 +245,7 @@ public class SortingComponent {
+     }
+ 
+     //  The following code can be reactivated in a future version when task #100799 will be fixed
+-    private void moveupSortItems(int CurIndex, boolean bDoEnable) {
++    public void moveupSortItems(int CurIndex, boolean bDoEnable) {
+         short iNextItemPos;
+         if ((bDoEnable == false) && (MAXSORTCRITERIAINDEX > CurIndex)) {
+             for (int i = CurIndex; i < MAXSORTCRITERIAINDEX; i++) {
+@@ -264,7 +264,7 @@ public class SortingComponent {
+             toggleSortListBox(CurIndex + 1, bDoEnable);
+     }
+ 
+-    private void toggleSortListBox(int CurIndex, boolean bDoEnable) {
++    public void toggleSortListBox(int CurIndex, boolean bDoEnable) {
+         try {
+             if (CurIndex < xSortListBox.length) {
+                 CurUnoDialog.setControlProperty("lblSort" + new Integer(CurIndex + 1).toString(), "Enabled", new Boolean(bDoEnable));
+--- wizards/com/sun/star/wizards/ui/TitlesComponent.java	2006-07-10 18:41:27.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/TitlesComponent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -60,7 +60,7 @@ public class TitlesComponent extends Con
+         CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblColumnTitles", new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "Width" }, new Object[] { new Integer(8), _slblColumnTitles, new Integer(90), new Integer(iCompPosY - 10), IStep, new Integer(152)});
+     }
+ 
+-    protected void insertControlGroup(int i, int ypos) {
++    public void insertControlGroup(int i, int ypos) {
+         iLabelPosX = iCompPosX + iRelLabelPosXDist;
+         ControlRow oControlRow = new ControlRow(i, ypos);
+         ControlGroupVector.addElement(oControlRow);
+@@ -68,7 +68,7 @@ public class TitlesComponent extends Con
+     }
+ 
+ 
+-    protected void setControlGroupVisible(int _index, boolean _bIsVisible){
++    public void setControlGroupVisible(int _index, boolean _bIsVisible){
+         CurUnoDialog.setControlVisible(getColumnName(_index), _bIsVisible);
+         CurUnoDialog.setControlVisible(getTitleName(_index), _bIsVisible);
+     }
+@@ -104,17 +104,17 @@ public class TitlesComponent extends Con
+     }
+ 
+ 
+-    private String getColumnName(int _index) {
++    public String getColumnName(int _index) {
+         return SOLABELPREFIX + Integer.toString(_index + 1);
+     }
+ 
+ 
+-    private String getTitleName(int _index) {
++    public String getTitleName(int _index) {
+         return SOTITLEPREFIX + Integer.toString(_index + 1);
+     }
+ 
+ 
+-    protected void initializeScrollFields() {
++    public void initializeScrollFields() {
+         for (int i = 0; i < fieldnames.length; i++) {
+             PropertyValue[] currowproperties = new PropertyValue[2];
+             currowproperties[0] = Properties.createProperty(getColumnName(i), fieldnames[i], i);
+@@ -124,7 +124,7 @@ public class TitlesComponent extends Con
+     }
+ 
+ 
+-    private void adjustPosSizes() {
++    public void adjustPosSizes() {
+         String sLongestFieldName = JavaTools.getlongestArrayItem(fieldnames);
+         Size aSize = CurUnoDialog.getpreferredLabelSize(getColumnName(0), sLongestFieldName);
+         double dblMAPConversion = CurUnoDialog.getMAPConversionFactor(getColumnName(0));
+@@ -152,7 +152,7 @@ public class TitlesComponent extends Con
+     }
+ 
+ 
+-    private void setFieldTitles() {
++    public void setFieldTitles() {
+         fieldtitles = new String[fieldnames.length];
+         for (int i = 0; i < fieldnames.length; i++) {
+             if (this.fieldtitleset.containsKey(fieldnames[i])) {
+@@ -190,13 +190,13 @@ public class TitlesComponent extends Con
+     }
+ 
+ 
+-    private void refreshtitleset() {
++    public void refreshtitleset() {
+         for (int i = 0; i < fieldnames.length; i++)
+             fieldtitleset.put(fieldnames[i], fieldtitles[i]);
+     }
+ 
+ 
+-    private int getFieldNameWidth(int iMAPControlWidth, double dblMAPConversion) {
++    public int getFieldNameWidth(int iMAPControlWidth, double dblMAPConversion) {
+         int iFieldNameWidth = (int) (1.15 * ((double) (iMAPControlWidth)) / dblMAPConversion);
+         double dblAvailableWidth = (double) (iCompWidth - iScrollBarWidth - iRelLabelPosXDist);
+         if (iFieldNameWidth > (0.5 * (dblAvailableWidth)))
+--- wizards/com/sun/star/wizards/ui/UnoDialog.java	2006-04-07 15:26:42.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/UnoDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -72,9 +72,9 @@ public class UnoDialog implements EventN
+     public Hashtable ControlList;
+     public Resource oResource;
+     public XWindowPeer xWindowPeer = null;
+-    protected PeerConfig oPeerConfig;
++    public PeerConfig oPeerConfig;
+ 
+-    protected AbstractListener guiEventListener;
++    public AbstractListener guiEventListener;
+ 
+     public UnoDialog(XMultiServiceFactory xMSF, String[] PropertyNames, Object[] PropertyValues) {
+         try {
+@@ -453,7 +453,7 @@ public class UnoDialog implements EventN
+      * @param the name of the control
+      * @param iStep  change the step if you want to make the control invisible
+      */
+-    private void setControlVisible(String controlname, int iStep) {
++    public void setControlVisible(String controlname, int iStep) {
+         try {
+             int iCurStep = AnyConverter.toInt(getControlProperty(controlname, "Step"));
+             setControlProperty(controlname, "Step", new Integer(iStep));
+@@ -832,7 +832,7 @@ public class UnoDialog implements EventN
+     }
+ 
+ 
+-    private Boolean BisHighContrastModeActivated = null;
++    public Boolean BisHighContrastModeActivated = null;
+ 
+     public boolean isHighContrastModeActivated(){
+         if (xVclWindowPeer != null){
+--- wizards/com/sun/star/wizards/ui/UnoDialog2.java	2006-04-07 15:27:13.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/UnoDialog2.java	2007-05-24 11:24:05.000000000 +0200
+@@ -58,7 +58,7 @@ public class UnoDialog2 extends UnoDialo
+     /**
+      * Override this method to return another listener.
+      */
+-    protected AbstractListener createListener() {
++    public AbstractListener createListener() {
+         return new CommonListener();
+     }
+ 
+@@ -182,7 +182,7 @@ public class UnoDialog2 extends UnoDialo
+      * This method is used for creating Edit, Currency, Date, Formatted, Pattern, File
+      * and Time edit components.
+      */
+-    private Object insertEditField(String sName, String sTextChanged, Object eventTarget, String sModelClass, String[] sPropNames, Object[] oPropValues, Class type) {
++    public Object insertEditField(String sName, String sTextChanged, Object eventTarget, String sModelClass, String[] sPropNames, Object[] oPropValues, Class type) {
+         XTextComponent xField = (XTextComponent) insertControlModel2(sModelClass, sName, sPropNames, oPropValues, XTextComponent.class);
+         if (sTextChanged != null) {
+             xField.addTextListener((XTextListener) guiEventListener);
+@@ -287,7 +287,7 @@ public class UnoDialog2 extends UnoDialo
+         return xDlgContainer.getControl(componentName);
+     }
+ 
+-    private void setControlPropertiesDebug(Object model, String[] names, Object[] values) {
++    public void setControlPropertiesDebug(Object model, String[] names, Object[] values) {
+         for (int i = 0; i<names.length; i++) {
+             System.out.println("   Settings: " + names[i]);
+             Helper.setUnoPropertyValue(model,names[i],values[i]);
+--- wizards/com/sun/star/wizards/ui/WizardDialog.java	2006-07-06 16:32:56.000000000 +0200
++++ wizards/com/sun/star/wizards/ui/WizardDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -56,29 +56,29 @@ import com.sun.star.lang.IllegalArgument
+ import com.sun.star.beans.*;
+ 
+ public abstract class WizardDialog extends UnoDialog2 implements VetoableChangeListener, XTerminateListener, XCompletion{
+-    private static final String NEXT_ACTION_PERFORMED = "gotoNextAvailableStep";
+-    private static final String BACK_ACTION_PERFORMED = "gotoPreviousAvailableStep";
+-    private static final String FINISH_ACTION_PERFORMED = "finishWizard_1";
+-    private static final String CANCEL_ACTION_PERFORMED = "cancelWizard_1";
+-    private static final String HELP_ACTION_PERFORMED = "callHelp";
++    public static final String NEXT_ACTION_PERFORMED = "gotoNextAvailableStep";
++    public static final String BACK_ACTION_PERFORMED = "gotoPreviousAvailableStep";
++    public static final String FINISH_ACTION_PERFORMED = "finishWizard_1";
++    public static final String CANCEL_ACTION_PERFORMED = "cancelWizard_1";
++    public static final String HELP_ACTION_PERFORMED = "callHelp";
+     public VetoableChangeSupport vetos = new VetoableChangeSupport(this);
+-    private String[] sRightPaneHeaders;
+-    private int iButtonWidth = 50;
+-    private int nNewStep = 1;
+-    private int nOldStep = 1;
+-    private int nMaxStep = 1;
+-    protected XItemListener RoadmapItemListener;
+-    protected XControl xRoadmapControl;
++    public String[] sRightPaneHeaders;
++    public int iButtonWidth = 50;
++    public int nNewStep = 1;
++    public int nOldStep = 1;
++    public int nMaxStep = 1;
++    public XItemListener RoadmapItemListener;
++    public XControl xRoadmapControl;
+     XItemEventBroadcaster xRoadmapBroadcaster;
+     String[] sRMItemLabels;
+-    private Object oRoadmap;
+-    private Object oRoadmapControl;
+-    private XSingleServiceFactory xSSFRoadmap;
++    public Object oRoadmap;
++    public Object oRoadmapControl;
++    public XSingleServiceFactory xSSFRoadmap;
+     public XIndexContainer xIndexContRoadmap;
+-    private Resource oWizardResource;
++    public Resource oWizardResource;
+     public String sMsgEndAutopilot;
+-    private int hid;
+-    private boolean bTerminateListenermustberemoved = true;
++    public int hid;
++    public boolean bTerminateListenermustberemoved = true;
+ 
+ 
+     /** Creates a new instance of WizardDialog
+@@ -285,7 +285,7 @@ public abstract class WizardDialog exten
+         return switchToStep();
+     }
+ 
+-    private boolean switchToStep() {
++    public boolean switchToStep() {
+         leaveStep(nOldStep, nNewStep);
+         if (nNewStep != nOldStep) {
+             if (nNewStep == nMaxStep) {
+@@ -302,13 +302,13 @@ public abstract class WizardDialog exten
+         return false;
+     }
+ 
+-    protected void leaveStep(int nOldStep, int nNewStep) {
++    public void leaveStep(int nOldStep, int nNewStep) {
+     }
+ 
+-    protected void enterStep(int nOldStep, int nNewStep) {
++    public void enterStep(int nOldStep, int nNewStep) {
+     }
+ 
+-    protected void changeToStep(int nNewStep) {
++    public void changeToStep(int nNewStep) {
+         Helper.setUnoPropertyValue(xDialogModel, "Step", new Integer(nNewStep));
+         setCurrentRoadmapItemID((short) (nNewStep));
+         enableNextButton(getNextAvailableStep() > 0);
+@@ -397,7 +397,7 @@ public abstract class WizardDialog exten
+         }
+     }
+ 
+-    protected void insertRoadMapItems(String[] items, int[] steps, boolean[] enabled) {
++    public void insertRoadMapItems(String[] items, int[] steps, boolean[] enabled) {
+         for (int i = 0; i < items.length; i++)
+             insertRoadmapItem(i, enabled[i], items[i], steps[i]);
+     }
+@@ -484,7 +484,7 @@ public abstract class WizardDialog exten
+     }
+ 
+     //TODO discuss with rp
+-    protected int getNextAvailableStep() {
++    public int getNextAvailableStep() {
+         if (isRoadmapComplete())
+             for (int i = nNewStep + 1; i <= nMaxStep; i++)
+                 if (isStepEnabled(i))
+@@ -559,7 +559,7 @@ public abstract class WizardDialog exten
+         }
+     }   
+ 
+-    private boolean wizardClosed = false;
++    public boolean wizardClosed = false;
+     /**
+      * called by the cancel button and
+      * by the window hidden event.
+--- wizards/com/sun/star/wizards/web/AbstractErrorHandler.java	2006-04-07 15:36:10.000000000 +0200
++++ wizards/com/sun/star/wizards/web/AbstractErrorHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -51,7 +51,7 @@ public abstract class AbstractErrorHandl
+     XMultiServiceFactory xmsf;
+     XWindowPeer peer;
+     
+-    protected AbstractErrorHandler(XMultiServiceFactory xmsf, XWindowPeer peer_) {
++    public AbstractErrorHandler(XMultiServiceFactory xmsf, XWindowPeer peer_) {
+         this.xmsf = xmsf;
+         peer=peer_;
+     }
+@@ -96,7 +96,7 @@ public abstract class AbstractErrorHandl
+      * @param errorType
+      * @return true if the ok/yes button is clicked, false otherwise.
+      */
+-    protected boolean showMessage(String message, int errorType) {
++    public boolean showMessage(String message, int errorType) {
+         return showMessage(xmsf,peer, message,errorType);
+     }
+     
+@@ -133,7 +133,7 @@ public abstract class AbstractErrorHandl
+      * @param errorType
+      * @return
+      */
+-    private static int getTrueFor(int errorType) {
++    public static int getTrueFor(int errorType) {
+         switch (errorType) {
+             case ErrorHandler.ERROR_FATAL :
+             case ErrorHandler.ERROR_PROCESS_FATAL :
+@@ -162,7 +162,7 @@ public abstract class AbstractErrorHandl
+      * @param errorType
+      * @return the Uno attributes for each error type. 
+      */
+-    private static int getAttributeFor(int errorType) {
++    public static int getAttributeFor(int errorType) {
+         switch (errorType) {
+             case ErrorHandler.ERROR_FATAL :
+                 return VclWindowPeerAttribute.OK;
+@@ -193,7 +193,7 @@ public abstract class AbstractErrorHandl
+      * @param errorType
+      * @return the uno service name for each error type
+      */
+-    private static String getServiceNameFor(int errorType) {
++    public static String getServiceNameFor(int errorType) {
+         switch (errorType) {
+             case ErrorHandler.ERROR_FATAL :
+                 return "errorbox";
+@@ -229,7 +229,7 @@ public abstract class AbstractErrorHandl
+      * @return a Strings which will be displayed in the message box,
+      * and which describes the error, and the needed action from the user.
+      */
+-    protected abstract String getMessageFor(Exception ex, Object arg, int ix, int type);
++    public abstract String getMessageFor(Exception ex, Object arg, int ix, int type);
+     
+ }
+ 
+--- wizards/com/sun/star/wizards/web/BackgroundsDialog.java	2006-04-07 15:36:34.000000000 +0200
++++ wizards/com/sun/star/wizards/web/BackgroundsDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -54,9 +54,9 @@ import com.sun.star.wizards.web.data.CGS
+  */
+ public class BackgroundsDialog extends ImageListDialog {
+ 
+-    private FileAccess fileAccess;
+-    private SystemDialog sd;
+-    private CGSettings settings;
++    public FileAccess fileAccess;
++    public SystemDialog sd;
++    public CGSettings settings;
+ 
+     /**
+      * @param xmsf
+@@ -115,7 +115,7 @@ public class BackgroundsDialog extends I
+      * @param s
+      * @return
+      */
+-    private int add(String s) {
++    public int add(String s) {
+         
+         //first i check the item does not already exists in the list...
+         for (int i = 0; i<il.getListModel().getSize(); i++)
+@@ -146,8 +146,8 @@ public class BackgroundsDialog extends I
+      * @author rpiterman
+      *
+      */
+-    private class BGRenderer implements ImageList.ImageRenderer {
+-            private int cut;
++    public class BGRenderer implements ImageList.ImageRenderer {
++            public int cut;
+     
+             public BGRenderer(int cut_) {
+                 cut = cut_;
+@@ -177,7 +177,7 @@ public class BackgroundsDialog extends I
+      * if it is a file, it adds the file to the list. 
+      * @author rpiterman
+      */
+-    private class Model extends DefaultListModel {
++    public class Model extends DefaultListModel {
+     
+        /**
+         * constructor. </br>
+@@ -208,7 +208,7 @@ public class BackgroundsDialog extends I
+          * This is what this method does...
+          * @param imageName
+          */
+-       private void remove(String imageName) {
++       public void remove(String imageName) {
+            try {
+                Object conf = Configuration.getConfigurationRoot(xMSF,WebWizardConst.CONFIG_PATH + "/BackgroundImages",true);
+                Configuration.removeNode(conf,imageName);
+@@ -224,7 +224,7 @@ public class BackgroundsDialog extends I
+          * otherwise (if it is a file) adds the file to the list.
+          * @param url
+          */
+-        private void addDir(String url) {
++        public void addDir(String url) {
+            if (fileAccess.isDirectory(url))
+                add(fileAccess.listFiles(url,false));
+            else
+@@ -236,7 +236,7 @@ public class BackgroundsDialog extends I
+          * the list
+          * @param filenames
+          */
+-        private void add(String[] filenames) {
++        public void add(String[] filenames) {
+            for (int i = 0; i<filenames.length; i++)
+             add(filenames[i]);
+        }
+@@ -247,7 +247,7 @@ public class BackgroundsDialog extends I
+          * (case insensitive) 
+          * @param filename image url.
+          */
+-       private void add(String filename) {
++       public void add(String filename) {
+            String lcase = filename.toLowerCase();
+                if (lcase.endsWith("jpg") ||
+                    lcase.endsWith("jpeg") ||
+--- wizards/com/sun/star/wizards/web/CallWizard.java	2006-10-04 22:09:58.000000000 +0200
++++ wizards/com/sun/star/wizards/web/CallWizard.java	2007-05-24 11:24:05.000000000 +0200
+@@ -117,7 +117,7 @@ public class CallWizard {
+             }
+         }
+ 
+-        private static WebWizard webWizard = null;
++        public static WebWizard webWizard = null;
+         /**
+          * Execute Wizard
+          *
+@@ -164,12 +164,12 @@ public class CallWizard {
+         /**
+          * The service name, that must be used to get an instance of this service.
+          */
+-        private static final String __serviceName = "com.sun.star.wizards.web.CallWizard";
++        public static final String __serviceName = "com.sun.star.wizards.web.CallWizard";
+ 
+         /**
+          * The service manager, that gives access to all registered services.
+          */
+-        private XMultiServiceFactory xmultiservicefactory;
++        public XMultiServiceFactory xmultiservicefactory;
+ 
+         /**
+          * This method is a member of the interface for initializing an object directly
+--- wizards/com/sun/star/wizards/web/data/CGContent.java	2006-04-07 15:45:57.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGContent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -50,7 +50,7 @@ public class CGContent         extends C
+    
+   public CGContent() {
+       /*cp_Documents = new ConfigSet(CGDocument.class) {
+-        protected DefaultListModel createChildrenList() {
++        public DefaultListModel createChildrenList() {
+             return cp_Contents.getChildrenList();
+         }
+       };*/
+--- wizards/com/sun/star/wizards/web/data/CGDesign.java	2006-04-07 15:46:19.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGDesign.java	2007-05-24 11:24:05.000000000 +0200
+@@ -60,10 +60,10 @@ public class CGDesign extends ConfigGrou
+      
+      
+         
+-     private final String TRUE = "true";
+-     private final String FALSE = null;
++     public final String TRUE = "true";
++     public final String FALSE = null;
+      
+-     private String styleName;
++     public String styleName;
+      
+         
+      public Node createDOM(Node parent) {
+@@ -73,8 +73,8 @@ public class CGDesign extends ConfigGrou
+                  
+      }
+      
+-    private static final Short SHORT_TRUE = new Short((short)1);
+-    private static final Short SHORT_FALSE = new Short((short)0);
++    public static final Short SHORT_TRUE = new Short((short)1);
++    public static final Short SHORT_FALSE = new Short((short)0);
+     
+      
+     public short[] getStyle() {
+--- wizards/com/sun/star/wizards/web/data/CGDocument.java	2006-04-07 15:46:40.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGDocument.java	2007-05-24 11:24:05.000000000 +0200
+@@ -231,7 +231,7 @@ public class CGDocument extends ConfigSe
+      * Analyzes a type-detection string, returned from the TypeDetection service,
+      * and sets the appType, isSOOpenable and isSODocument memebres.
+      */
+-    private void analyzeFileType(PropertyValue[] mediaDesc) {
++    public void analyzeFileType(PropertyValue[] mediaDesc) {
+         
+         if (mediaDesc == null) {
+         }
+@@ -261,7 +261,7 @@ public class CGDocument extends ConfigSe
+      * @return one of the constants in the interface TypeDetection.
+      * 
+      */
+-    private String getDocType(String media) {
++    public String getDocType(String media) {
+         if (media.equals("")) return TypeDetection.NO_TYPE;
+         
+         if (media.startsWith("writer")) {
+@@ -299,30 +299,30 @@ public class CGDocument extends ConfigSe
+     }
+     
+     
+-    private String updateDate() {
++    public String updateDate() {
+         if ( this.updateDate == null )
+             return "";
+         return getSettings().formatter.formatCreated(this.updateDate);
+     }
+     
+-    private String createDate() {
++    public String createDate() {
+         if ( this.createDate == null )
+             return "";
+         return getSettings().formatter.formatCreated(this.createDate);
+     }
+     
+-    private String sizeKB() {
++    public String sizeKB() {
+         if (sizeBytes == -1) 
+             return "";
+         else return getSettings().formatter.formatFileSize(sizeBytes);
+     }
+     
+-    private String pages() {
++    public String pages() {
+         return pages == -1 ?  ""
+          : JavaTools.replaceSubString(pagesTemplate() , "" + pages , "%NUMBER" ); 
+     }
+     
+-    private String pagesTemplate() {
++    public String pagesTemplate() {
+         int pagesType = ((CGExporter)getSettings().cp_Exporters.getElement(cp_Exporter)).cp_PageType;
+         switch (pagesType) {
+             case PAGE_TYPE_UNKNOWN :
+@@ -335,18 +335,18 @@ public class CGDocument extends ConfigSe
+         }
+     }
+     
+-    private String getTargetTypeName(CGExporter exp) {
++    public String getTargetTypeName(CGExporter exp) {
+         return (exp.targetTypeName.equals("")) 
+             ? (String) Properties.getPropertyValue(mediaDescriptor,"UIName") 
+             : exp.targetTypeName;
+     }
+     
+-    private String getIcon(CGExporter exporter) {
++    public String getIcon(CGExporter exporter) {
+         return exporter.cp_Icon.equals("") ? 
+             getIcon(this.appType) : exporter.cp_Icon;
+     }
+     
+-    private String getIcon(String appType) {
++    public String getIcon(String appType) {
+         //System.out.println("Getting Icon for: " + appType);
+         return appType+".gif";
+     }
+@@ -374,7 +374,7 @@ public class CGDocument extends ConfigSe
+      * @see getExporter()
+      * @return
+      */
+-    private short getExporterIndex() {
++    public short getExporterIndex() {
+         if (cp_Exporter==null)
+           return 0;
+         Object exporter = getSettings().cp_Exporters.getElement(cp_Exporter);
+--- wizards/com/sun/star/wizards/web/data/CGGeneralInfo.java	2006-04-07 15:47:24.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGGeneralInfo.java	2007-05-24 11:24:05.000000000 +0200
+@@ -76,7 +76,7 @@ public class CGGeneralInfo     extends C
+         cp_UpdateDate = i.intValue();
+     }
+ 
+-    private int currentDate() {
++    public int currentDate() {
+         DateTime dt = JavaTools.getDateTime(System.currentTimeMillis());
+         //System.out.println();
+         return dt.Day + dt.Month * 100 + dt.Year * 10000;
+--- wizards/com/sun/star/wizards/web/data/CGLayout.java	2006-04-07 15:47:48.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGLayout.java	2007-05-24 11:24:05.000000000 +0200
+@@ -46,9 +46,9 @@ public class CGLayout extends ConfigSetI
+     public String cp_Name;
+     public String cp_FSName;
+     
+-    private Map templates;
++    public Map templates;
+     
+-    private void createTemplates(XMultiServiceFactory xmsf) throws Exception {
++    public void createTemplates(XMultiServiceFactory xmsf) throws Exception {
+         
+         templates = new Hashtable(3);
+         
+--- wizards/com/sun/star/wizards/web/data/CGPublish.java	2006-04-07 15:48:10.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGPublish.java	2007-05-24 11:24:05.000000000 +0200
+@@ -91,7 +91,7 @@ public class CGPublish extends ConfigGro
+         }
+     }
+     
+-    private String ftpURL() {
++    public String ftpURL() {
+         return "ftp://" + cp_Username + 
+           ((password!=null && password.length()>0) ? ":" + password : "")
+           + "@" + cp_URL.substring(7);
+--- wizards/com/sun/star/wizards/web/data/CGSession.java	2006-04-07 15:48:28.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGSession.java	2007-05-24 11:24:05.000000000 +0200
+@@ -70,7 +70,7 @@ public class CGSession   extends ConfigS
+         return root;
+     }
+     
+-    private String getScreenSize() {
++    public String getScreenSize() {
+         switch (cp_Design.cp_OptimizeDisplaySize) {
+             case 0 : return "640";
+             case 1 : return "800";
+--- wizards/com/sun/star/wizards/web/data/CGSettings.java	2006-07-13 14:29:06.000000000 +0200
++++ wizards/com/sun/star/wizards/web/data/CGSettings.java	2007-05-24 11:24:05.000000000 +0200
+@@ -52,8 +52,8 @@ public class CGSettings    extends Confi
+     public CGSession       cp_DefaultSession    = new CGSession();
+     public String          cp_LastSavedSession;
+ 
+-    private Map exportersMap = new Hashtable();
+-    private XMultiServiceFactory xmsf;
++    public Map exportersMap = new Hashtable();
++    public XMultiServiceFactory xmsf;
+ 
+     String[] resources;
+     public Formatter formatter;
+@@ -80,7 +80,7 @@ public class CGSettings    extends Confi
+     }
+ 
+ 
+-    private static final CGExporter[] EMPTY_ARRAY_1 = new CGExporter[0];
++    public static final CGExporter[] EMPTY_ARRAY_1 = new CGExporter[0];
+ 
+     public CGExporter[] getExporters(String mime) {
+         CGExporter[] exps = (CGExporter[])exportersMap.get(mime);
+@@ -89,7 +89,7 @@ public class CGSettings    extends Confi
+         return exps;
+     }
+ 
+-    private CGExporter[] createExporters(String mime) {
++    public CGExporter[] createExporters(String mime) {
+         Object[] exporters = cp_Exporters.items();
+         Vector v = new Vector();
+         for (int i = 0; i<exporters.length; i++)
+@@ -114,7 +114,7 @@ public class CGSettings    extends Confi
+         calcExportersTargetTypeNames(xmsf);
+     }
+ 
+-    private void calcExportersTargetTypeNames(XMultiServiceFactory xmsf) throws Exception {
++    public void calcExportersTargetTypeNames(XMultiServiceFactory xmsf) throws Exception {
+         Object typeDetect = xmsf.createInstance("com.sun.star.document.TypeDetection");
+         XNameAccess xNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class,typeDetect);
+         for (int i = 0; i < cp_Exporters.getSize(); i++)
+@@ -122,7 +122,7 @@ public class CGSettings    extends Confi
+     }
+ 
+ 
+-    private void calcExporterTargetTypeName(XNameAccess xNameAccess, CGExporter exporter)
++    public void calcExporterTargetTypeName(XNameAccess xNameAccess, CGExporter exporter)
+         throws  NoSuchElementException,
+                 WrappedTargetException
+     {
+@@ -147,9 +147,9 @@ public class CGSettings    extends Confi
+     }
+ 
+     public class Formatter {
+-        private long docNullTime;
+-        private int dateFormat, numberFormat;
+-        private DateUtils dateUtils;
++        public long docNullTime;
++        public int dateFormat, numberFormat;
++        public DateUtils dateUtils;
+ 
+         public Formatter(XMultiServiceFactory xmsf, Object document ) throws Exception {
+             dateUtils = new DateUtils(xmsf, document);
+--- wizards/com/sun/star/wizards/web/export/AbstractExporter.java	2006-04-07 15:50:25.000000000 +0200
++++ wizards/com/sun/star/wizards/web/export/AbstractExporter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -32,10 +32,10 @@ import com.sun.star.wizards.web.data.Typ
+  * @author  rpiterman
+  */
+ public abstract class AbstractExporter implements Exporter {
+-    protected CGExporter exporter;
+-    protected FileAccess fileAccess;
++    public CGExporter exporter;
++    public FileAccess fileAccess;
+     
+-    protected void storeToURL(Object officeDocument, Properties props, String targetUrl, String filterName, PropertyValue[] filterData) 
++    public void storeToURL(Object officeDocument, Properties props, String targetUrl, String filterName, PropertyValue[] filterData) 
+        throws IOException {
+         
+          props = new Properties();
+@@ -49,24 +49,24 @@ public abstract class AbstractExporter i
+          xs.storeToURL(targetUrl, o);
+      }
+     
+-     protected void storeToURL(Object officeDocument, String targetUrl, String filterName, PropertyValue[] filterData) 
++     public void storeToURL(Object officeDocument, String targetUrl, String filterName, PropertyValue[] filterData) 
+          throws IOException {
+         
+          storeToURL(officeDocument, new Properties(), targetUrl, filterName, filterData);
+      }
+     
+-     protected void storeToURL(Object officeDocument, String targetUrl, String filterName ) 
++     public void storeToURL(Object officeDocument, String targetUrl, String filterName ) 
+              throws IOException {
+         
+          storeToURL(officeDocument, new Properties(), targetUrl, filterName, new PropertyValue[0]);
+          
+      }
+ 
+-    protected String getArgument(String name, CGExporter p) {
++    public String getArgument(String name, CGExporter p) {
+             return ((CGArgument)p.cp_Arguments.getElement(name)).cp_Value;
+     }
+     
+-    protected Object openDocument(CGDocument doc, XMultiServiceFactory xmsf) 
++    public Object openDocument(CGDocument doc, XMultiServiceFactory xmsf) 
+         throws com.sun.star.io.IOException 
+     {
+         Object document = null;
+@@ -90,7 +90,7 @@ public abstract class AbstractExporter i
+         return document;
+     }
+ 
+-    protected void closeDocument(Object doc,XMultiServiceFactory xmsf) {
++    public void closeDocument(Object doc,XMultiServiceFactory xmsf) {
+         /*OfficeDocument.dispose(
+             xmsf,
+             (XComponent) UnoRuntime.queryInterface(XComponent.class, doc));*/
+@@ -103,7 +103,7 @@ public abstract class AbstractExporter i
+         }
+     }
+     
+-    private void pageCount(CGDocument doc, Object document) {
++    public void pageCount(CGDocument doc, Object document) {
+         if (doc.appType.equals(TypeDetection.WRITER_DOC)) 
+             doc.pages = TextDocument.getPageCount(document);
+         else if (doc.appType.equals(TypeDetection.IMPRESS_DOC))
+@@ -116,7 +116,7 @@ public abstract class AbstractExporter i
+         exporter = exporter_;
+     }
+     
+-    protected FileAccess getFileAccess(XMultiServiceFactory xmsf) {
++    public FileAccess getFileAccess(XMultiServiceFactory xmsf) {
+         if ( fileAccess == null )
+             try {
+                 fileAccess = new FileAccess(xmsf);
+@@ -125,7 +125,7 @@ public abstract class AbstractExporter i
+         return fileAccess;
+     }
+     
+-    protected void calcFileSize(CGDocument doc, String url, XMultiServiceFactory xmsf) {
++    public void calcFileSize(CGDocument doc, String url, XMultiServiceFactory xmsf) {
+         /*if the exporter exports to a
+          * binary format, get the size of the destination.
+          */     
+--- wizards/com/sun/star/wizards/web/export/ConfiguredExporter.java	2006-04-07 15:51:00.000000000 +0200
++++ wizards/com/sun/star/wizards/web/export/ConfiguredExporter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -33,7 +33,7 @@ public class ConfiguredExporter extends 
+         }
+     }
+         
+-    private Object cast(String s) {
++    public Object cast(String s) {
+         String s1 = s.substring(1);
+         char c = s.charAt(0);
+         switch (c) {
+--- wizards/com/sun/star/wizards/web/export/FilterExporter.java	2006-04-11 13:09:44.000000000 +0200
++++ wizards/com/sun/star/wizards/web/export/FilterExporter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -49,8 +49,8 @@ import com.sun.star.wizards.web.data.CGE
+  */
+ public class FilterExporter extends AbstractExporter  { 
+     
+-    protected String filterName;
+-    protected Properties props = new Properties();
++    public String filterName;
++    public Properties props = new Properties();
+     
+     /* (non-Javadoc)
+      * @see com.sun.star.wizards.web.export.Exporter#export(java.lang.Object, java.io.File, com.sun.star.wizards.web.data.CGSettings, com.sun.star.lang.XMultiServiceFactory)
+--- wizards/com/sun/star/wizards/web/export/ImpressHTMLExporter.java	2006-04-07 15:52:31.000000000 +0200
++++ wizards/com/sun/star/wizards/web/export/ImpressHTMLExporter.java	2007-05-24 11:24:05.000000000 +0200
+@@ -48,9 +48,9 @@ import com.sun.star.wizards.web.data.CGS
+  */
+ public class ImpressHTMLExporter extends ConfiguredExporter {
+     
+-    private static final Integer SMALL_IMAGE = new Integer(512);
+-    private static final Integer MEDIUM_IMAGE = new Integer(640);
+-    private static final Integer LARGE_IMAGE = new Integer(800);
++    public static final Integer SMALL_IMAGE = new Integer(512);
++    public static final Integer MEDIUM_IMAGE = new Integer(640);
++    public static final Integer LARGE_IMAGE = new Integer(800);
+     
+     public boolean export(CGDocument source, String targetDirectory ,XMultiServiceFactory xmsf, Task task)  throws IOException {
+         
+@@ -84,12 +84,12 @@ public class ImpressHTMLExporter extends
+         
+     }
+     
+-    private String getHomepageURL(CGSession session) {
++    public String getHomepageURL(CGSession session) {
+         return "../" + 
+              ( exporter.cp_OwnDirectory ? "../index.html" : "index.html" ) ; 
+     }
+     
+-    private Integer getImageWidth(CGSession session) {
++    public Integer getImageWidth(CGSession session) {
+         switch (session.cp_Design.cp_OptimizeDisplaySize) {
+             case 0 : return SMALL_IMAGE;
+             case 1 : return MEDIUM_IMAGE;
+@@ -98,7 +98,7 @@ public class ImpressHTMLExporter extends
+         return MEDIUM_IMAGE;
+     }
+     
+-    private CGSession getSession(CGDocument doc) {
++    public CGSession getSession(CGDocument doc) {
+         return doc.getSettings().cp_DefaultSession;
+     }
+ 
+--- wizards/com/sun/star/wizards/web/ExtensionVerifier.java	2006-04-07 15:37:46.000000000 +0200
++++ wizards/com/sun/star/wizards/web/ExtensionVerifier.java	2007-05-24 11:24:05.000000000 +0200
+@@ -46,7 +46,7 @@ import com.sun.star.wizards.common.UCB;
+  *
+  */
+ public class ExtensionVerifier implements UCB.Verifier {
+-    private String extension;
++    public String extension;
+ 
+     public ExtensionVerifier(String extension_) {
+         extension="." + extension_;
+--- wizards/com/sun/star/wizards/web/FTPDialog.java	2006-04-07 15:38:11.000000000 +0200
++++ wizards/com/sun/star/wizards/web/FTPDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -85,84 +85,84 @@ public class FTPDialog extends UnoDialog
+      * status-display. "unknown" is the status when the user first 
+      * opens the dialog, or changes the servername/username/password.
+      */
+-    private final static int STATUS_UNKONWN= 0;
++    public final static int STATUS_UNKONWN= 0;
+     /**
+      * A Constant used for the setLabel(int) method to change the
+      * status-display. (connection established)
+      */
+-    private final static int STATUS_OK = 1;
++    public final static int STATUS_OK = 1;
+     /**
+      * A Constant used for the setLabel(int) method to change the
+      * status-display.
+      */
+-    private final static int STATUS_USER_PWD_WRONG = 2;
++    public final static int STATUS_USER_PWD_WRONG = 2;
+     /**
+      * A Constant used for the setLabel(int) method to change the
+      * status-display.
+      */
+-    private final static int STATUS_SERVER_NOT_FOUND = 3;
++    public final static int STATUS_SERVER_NOT_FOUND = 3;
+     /**
+      * A Constant used for the setLabel(int) method to change the
+      * status-display.
+      */
+-    private final static int STATUS_NO_RIGHTS = 4;
++    public final static int STATUS_NO_RIGHTS = 4;
+     /**
+      * A Constant used for the setLabel(int) method to change the
+      * status-display.
+      */
+-    private final static int STATUS_HOST_UNREACHABLE = 5;
++    public final static int STATUS_HOST_UNREACHABLE = 5;
+     /**
+      * A Constant used for the setLabel(int) method to change the
+      * status-display.
+      */
+-    private final static int STATUS_CONNECTING = 6;
++    public final static int STATUS_CONNECTING = 6;
+ 
+     /**
+      * The icon url for error
+      */ 
+-    private final static String ICON_ERROR = "ftperror.gif";
++    public final static String ICON_ERROR = "ftperror.gif";
+     /**
+      * The icon url for ok (connection ok)
+      */ 
+-    private final static String ICON_OK = "ftpconnected.gif";
++    public final static String ICON_OK = "ftpconnected.gif";
+     /**
+      * The icon url for unknown - this is the status when
+      * the user first opens the dialog
+      */ 
+-    private final static String ICON_UNKNOWN= "ftpunknown.gif";
++    public final static String ICON_UNKNOWN= "ftpunknown.gif";
+     /**
+      * The icon url for an icon representing the "connecting" state. 
+      */ 
+-    private final static String ICON_CONNECTING = "ftpconnecting.gif";
++    public final static String ICON_CONNECTING = "ftpconnecting.gif";
+     
+ 
+     //GUI Components as Class members.
+     //Fixed Line
+-    private XControl ln1;
+-    private XFixedText lblFTPAddress;
+-    private XTextComponent txtHost;
+-    private XFixedText lblUsername;
+-    private XTextComponent txtUsername;
+-    private XFixedText lblPassword;
+-    private XTextComponent txtPassword;
++    public XControl ln1;
++    public XFixedText lblFTPAddress;
++    public XTextComponent txtHost;
++    public XFixedText lblUsername;
++    public XTextComponent txtUsername;
++    public XFixedText lblPassword;
++    public XTextComponent txtPassword;
+     //Fixed Line
+-    private XControl ln2;
+-    private XButton btnTestConnection;
+-    private XControl imgStatus;
+-    private XFixedText lblStatus;
++    public XControl ln2;
++    public XButton btnTestConnection;
++    public XControl imgStatus;
++    public XFixedText lblStatus;
+     //Fixed Line
+-    private XControl ln3;
+-    private XTextComponent txtDir;
+-    private XButton btnDir;
+-    private XButton btnOK;
+-    private XButton btnCancel;
+-    private XButton btnHelp;
++    public XControl ln3;
++    public XTextComponent txtDir;
++    public XButton btnDir;
++    public XButton btnOK;
++    public XButton btnCancel;
++    public XButton btnHelp;
+     //Font Descriptors as Class members.
+ 
+     //Resources Object
+-    private FTPDialogResources resources;
++    public FTPDialogResources resources;
+ 
+-    private List dataAware = new Vector();
++    public List dataAware = new Vector();
+ 
+     public String username = "";
+     public String password = "";
+@@ -173,18 +173,18 @@ public class FTPDialog extends UnoDialog
+     /**
+      * The ftp directory.
+      */
+-    private String dir = "";
++    public String dir = "";
+ 
+     /**
+      * the ftp publish object which contains the
+      * data for this dialog.
+      */
+-    private CGPublish publish;
+-    private UCB ucb;
++    public CGPublish publish;
++    public UCB ucb;
+     /**
+      * used for the status images url.
+      */
+-    private String imagesDirectory;
++    public String imagesDirectory;
+     
+     /**
+      * constructor.
+@@ -291,7 +291,7 @@ public class FTPDialog extends UnoDialog
+     /**
+      * Make hostname, username and password text fields data aware.
+      */
+-    private void configure() {
++    public void configure() {
+         dataAware.add(UnoDataAware.attachEditControl(this, "host", txtHost, null,true));
+         dataAware.add(UnoDataAware.attachEditControl(this, "username", txtUsername, null, true));
+         dataAware.add(UnoDataAware.attachEditControl(this, "password", txtPassword, null, true));
+@@ -330,7 +330,7 @@ public class FTPDialog extends UnoDialog
+      * directory text fields.
+      * is called uppon initialization.
+      */
+-    private void updateUI() {
++    public void updateUI() {
+         DataAware.updateUI(dataAware);
+         setDir(dir);
+     }
+@@ -341,7 +341,7 @@ public class FTPDialog extends UnoDialog
+      * @param ftpUrl
+      * @return
+      */
+-    private String extractHost(String ftpUrl) {
++    public String extractHost(String ftpUrl) {
+         if (ftpUrl == null || ftpUrl.length() < 6)
+             return "";
+ 
+@@ -358,7 +358,7 @@ public class FTPDialog extends UnoDialog
+      * @param ftpUrl
+      * @return the directory portion of the ftp-url
+      */
+-    private String extractDir(String ftpUrl) {
++    public String extractDir(String ftpUrl) {
+         if (ftpUrl == null || ftpUrl.length() < 6)
+             return "/";
+ 
+@@ -375,7 +375,7 @@ public class FTPDialog extends UnoDialog
+      * according to the status of the hostname, username, password text fields.
+      * If one of these fields is empty, the button is disabled.
+      */
+-    private void enableTestButton() {
++    public void enableTestButton() {
+         setEnabled(btnTestConnection, !(isEmpty(host) || isEmpty(username) || isEmpty(password)));
+ 
+     }
+@@ -383,7 +383,7 @@ public class FTPDialog extends UnoDialog
+      * @param s
+      * @return true if the string is null or "".
+      */
+-    private final boolean isEmpty(String s) {
++    public final boolean isEmpty(String s) {
+         return (s==null) || (s.equals(""));
+     }
+ 
+@@ -399,18 +399,18 @@ public class FTPDialog extends UnoDialog
+      * return the host name without the "ftp://"
+      * @return
+      */
+-    private String host() {
++    public String host() {
+         return host(host);
+     }
+ 
+-    private static String host(String s) {
++    public static String host(String s) {
+         return (s.startsWith("ftp://") ? s.substring(6) : s);
+     } 
+ 
+     /**
+      * @return the full ftp url including username, password and directory portion.
+      */
+-    private String getFullUrl() {
++    public String getFullUrl() {
+         return getAcountUrl() + dir;
+     }
+     
+@@ -469,7 +469,7 @@ public class FTPDialog extends UnoDialog
+      * @param acountUrl
+      * @throws Exception
+      */
+-    private void connect(String acountUrl) throws Exception {
++    public void connect(String acountUrl) throws Exception {
+         Object content = ucb.getContent(acountUrl);
+ 
+         //list files in the content.
+@@ -543,7 +543,7 @@ public class FTPDialog extends UnoDialog
+      * @param status one opf the private status-constants.
+      * if this param is not one of them, an "unknown error" status is displayed.
+      */
+-    private void setLabel(int status) {
++    public void setLabel(int status) {
+         switch (status) {
+             //not connected yet
+             case STATUS_UNKONWN:
+@@ -582,13 +582,13 @@ public class FTPDialog extends UnoDialog
+      * @param label
+      * @param color
+      */
+-    private void setLabel(String label, String image) {
++    public void setLabel(String label, String image) {
+         Helper.setUnoPropertyValue(getModel(lblStatus), "Label", label);
+         Helper.setUnoPropertyValue(getModel(imgStatus), "ImageURL", imageUrl(image));
+     }
+     
+ 
+-    private String imageUrl(String s) {
++    public String imageUrl(String s) {
+         String t = imagesDirectory + s;
+         //System.out.println(t);
+         return t;
+--- wizards/com/sun/star/wizards/web/IconsDialog.java	2006-07-13 14:20:31.000000000 +0200
++++ wizards/com/sun/star/wizards/web/IconsDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -53,14 +53,14 @@ import com.sun.star.wizards.web.data.CGI
+  */
+ public class IconsDialog extends ImageListDialog implements ImageList.ImageRenderer, ListModel {
+ 
+-    private ConfigSet set;
++    public ConfigSet set;
+     String htmlexpDirectory;
+     /**
+      * this icons filename prefixes are used to display the icons.
+      */
+-    private String[] icons = new String[] 
++    public String[] icons = new String[] 
+          {"firs","prev","next","last","nav","text","up","down"};
+-    private Integer[] objects;
++    public Integer[] objects;
+     
+     
+     /**
+@@ -169,23 +169,23 @@ public class IconsDialog extends ImageLi
+     }
+     
+ 
+-    private int getIconsetNum(int i) {
++    public int getIconsetNum(int i) {
+         return i / icons.length;
+     }
+         
+-    private int getIconNum(int i) {
++    public int getIconNum(int i) {
+         return i % icons.length;
+     } 
+     
+-    private String getIconsetPref(int iconset) {
++    public String getIconsetPref(int iconset) {
+         return getIconset(iconset).cp_FNPrefix;
+     }
+         
+-    private String getIconsetPostfix(int iconset) {
++    public String getIconsetPostfix(int iconset) {
+         return getIconset(iconset).cp_FNPostfix;
+     }
+         
+-    private CGIconSet getIconset(int i ) {
++    public CGIconSet getIconset(int i ) {
+         return (CGIconSet)set.getElementAt(i); 
+     }
+ 
+--- wizards/com/sun/star/wizards/web/ImageListDialog.java	2006-04-07 15:39:48.000000000 +0200
++++ wizards/com/sun/star/wizards/web/ImageListDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -74,44 +74,44 @@ import com.sun.star.wizards.ui.ImageList
+  */
+ public abstract class ImageListDialog  extends UnoDialog2 implements UIConsts  {
+   
+-  private String[] resources;
++  public String[] resources;
+   
+-  private final static int RES_TITLE = 0;
+-  private final static int RES_LABEL = 1;
+-  private final static int RES_OK = 2;
+-  private final static int RES_CANCEL = 3;
+-  private final static int RES_HELP = 4;
+-  private final static int RES_DESELECT = 5;
+-  private final static int RES_OTHER = 6;
+-  private final static int RES_COUNTER = 7;
++  public final static int RES_TITLE = 0;
++  public final static int RES_LABEL = 1;
++  public final static int RES_OK = 2;
++  public final static int RES_CANCEL = 3;
++  public final static int RES_HELP = 4;
++  public final static int RES_DESELECT = 5;
++  public final static int RES_OTHER = 6;
++  public final static int RES_COUNTER = 7;
+   
+     //GUI Components as Class members.
+-  private XButton btnOK;
+-  private XButton btnCancel;
+-  private XButton btnHelp;
+-  private XButton btnOther;
+-  private XButton btnDeselect;
+-  
+-  private static final String START = "%START";
+-  private static final String END = "%END";
+-  private static final String TOTAL= "%TOTAL";
++  public XButton btnOK;
++  public XButton btnCancel;
++  public XButton btnHelp;
++  public XButton btnOther;
++  public XButton btnDeselect;
++  
++  public static final String START = "%START";
++  public static final String END = "%END";
++  public static final String TOTAL= "%TOTAL";
+   
+-  protected int cutFilename = 0;
++  public int cutFilename = 0;
+   
+-  protected boolean showDeselectButton = true;
+-  protected boolean showOtherButton = true;
++  public boolean showDeselectButton = true;
++  public boolean showOtherButton = true;
+   
+-  private XFixedText lblTitle;
++  public XFixedText lblTitle;
+   //Font Descriptors as Class members.
+-  private FontDescriptor fontDescriptor1 = new FontDescriptor();
++  public FontDescriptor fontDescriptor1 = new FontDescriptor();
+   
+-  protected ImageList il;
++  public ImageList il;
+   
+   //private FileAccess fileAccess;
+   
+-  private Object result;
++  public Object result;
+   
+-  private int hid;
++  public int hid;
+   
+   /**
+    * 
+@@ -138,7 +138,7 @@ public abstract class ImageListDialog  e
+    * This method should be called by subclasses after setting
+    * the il ImageList member properties 
+    */
+-  protected void build() { 
++  public void build() { 
+     //set dialog properties...
+     
+     int ilWidth = (il.getImageSize().Width + il.getGap().Width) * il.getCols()+ il.getGap().Width;
+--- wizards/com/sun/star/wizards/web/LogTaskListener.java	2006-04-07 15:40:07.000000000 +0200
++++ wizards/com/sun/star/wizards/web/LogTaskListener.java	2007-05-24 11:24:05.000000000 +0200
+@@ -17,7 +17,7 @@ import com.sun.star.wizards.ui.event.Tas
+  */
+ public class LogTaskListener implements TaskListener, ErrorHandler {
+     
+-    private PrintStream out;
++    public PrintStream out;
+     
+     public LogTaskListener(PrintStream os) {
+         out = os;
+--- wizards/com/sun/star/wizards/web/ProcessErrorHandler.java	2006-04-07 15:40:55.000000000 +0200
++++ wizards/com/sun/star/wizards/web/ProcessErrorHandler.java	2007-05-24 11:24:05.000000000 +0200
+@@ -54,9 +54,9 @@ public class ProcessErrorHandler extends
+                 ProcessErrors 
+ {
+     
+-    private static final String FILENAME= "%FILENAME";
+-    private static final String URL = "%URL";
+-    private static final String ERROR = "%ERROR";
++    public static final String FILENAME= "%FILENAME";
++    public static final String URL = "%URL";
++    public static final String ERROR = "%ERROR";
+   
+     
+     WebWizardDialogResources resources;
+@@ -66,7 +66,7 @@ public class ProcessErrorHandler extends
+         resources = res;
+     }
+ 
+-    protected String getMessageFor(Exception ex, Object obj, int ix, int errType) {
++    public String getMessageFor(Exception ex, Object obj, int ix, int errType) {
+ 
+         switch (ix) {
+ 
+--- wizards/com/sun/star/wizards/web/Process.java	2006-07-17 16:13:08.000000000 +0200
++++ wizards/com/sun/star/wizards/web/Process.java	2007-05-24 11:24:05.000000000 +0200
+@@ -98,25 +98,25 @@ import com.sun.star.wizards.web.export.E
+  */
+ public class Process implements WebWizardConst, ProcessErrors {
+     
+-    private static final int TASKS_PER_DOC = 5;
+-    private static final int TASKS_PER_XSL = 2;
+-    private static final int TASKS_PER_PUBLISH = 2;
++    public static final int TASKS_PER_DOC = 5;
++    public static final int TASKS_PER_XSL = 2;
++    public static final int TASKS_PER_PUBLISH = 2;
+ 
+-    private static final int TASKS_IN_PREPARE = 1;
+-    private static final int TASKS_IN_EXPORT = 2;
+-    private static final int TASKS_IN_GENERATE = 2;
+-    private static final int TASKS_IN_PUBLISH = 2;
+-    private static final int TASKS_IN_FINISHUP = 1;
++    public static final int TASKS_IN_PREPARE = 1;
++    public static final int TASKS_IN_EXPORT = 2;
++    public static final int TASKS_IN_GENERATE = 2;
++    public static final int TASKS_IN_PUBLISH = 2;
++    public static final int TASKS_IN_FINISHUP = 1;
+ 
+-    private CGSettings settings;
+-    private XMultiServiceFactory xmsf;
++    public CGSettings settings;
++    public XMultiServiceFactory xmsf;
+     
+-    private ErrorHandler errorHandler;
++    public ErrorHandler errorHandler;
+     
+     
+-    private String tempDir;
+-    private FileAccess fileAccess;
+-    private UCB ucb;
++    public String tempDir;
++    public FileAccess fileAccess;
++    public UCB ucb;
+     
+     public Task myTask;
+     
+@@ -124,9 +124,9 @@ public class Process implements WebWizar
+      * This is a cache for exporters, so I do not need to 
+      * instanciate the same exporter more than once. 
+      */
+-    private Map exporters = new Hashtable(3);
++    public Map exporters = new Hashtable(3);
+     
+-    private boolean result;
++    public boolean result;
+     
+     public Process(
+         CGSettings settings, 
+@@ -152,7 +152,7 @@ public class Process implements WebWizar
+      * @return to how many destinations should the
+      * generated site be published. 
+      */
+-    private int countPublish() {
++    public int countPublish() {
+         int count = 0;
+         ConfigSet publishers = settings.cp_DefaultSession.cp_Publishing;
+         for (int i = 0; i<publishers.getSize(); i++)
+@@ -165,7 +165,7 @@ public class Process implements WebWizar
+      * @return the number of task steps that this
+      * session should have
+      */
+-    private int getTaskSteps() {
++    public int getTaskSteps() {
+         int docs = settings.cp_DefaultSession.cp_Content.cp_Documents.getSize();
+         int xsl = 0;
+         try {
+@@ -224,7 +224,7 @@ public class Process implements WebWizar
+      * @param task
+      * @return true should continue
+      */
+-    private boolean createTempDir(Task task) {
++    public boolean createTempDir(Task task) {
+ 
+         tempDir = fileAccess.createNewDir(getSOTempDir(xmsf), "wwiztemp");
+         if (tempDir == null) {
+@@ -256,7 +256,7 @@ public class Process implements WebWizar
+      * delete the temporary directory
+      * @return true should continue
+      */ 
+-    private boolean cleanup(Task task) {
++    public boolean cleanup(Task task) {
+         
+         task.setSubtaskName(TASK_FINISH);
+         boolean b = fileAccess.delete(tempDir);
+@@ -340,7 +340,7 @@ public class Process implements WebWizar
+      * @param task task tracking.
+      * @return true if should continue
+      */
+-    private boolean publish(String dir, Task task ) {
++    public boolean publish(String dir, Task task ) {
+         task.setSubtaskName(TASK_PUBLISH_PREPARE);
+         ConfigSet set = settings.cp_DefaultSession.cp_Publishing;
+         try {
+@@ -388,7 +388,7 @@ public class Process implements WebWizar
+      * @param task task tracking
+      * @return true if should continue
+      */
+-    private boolean publish(String dir,CGPublish publish,UCB copy,Task task) {
++    public boolean publish(String dir,CGPublish publish,UCB copy,Task task) {
+         try {
+             //copy.deleteDirContent(publish.url);
+             task.advance(true);
+@@ -540,7 +540,7 @@ public class Process implements WebWizar
+      * @param task
+      * @return
+      */
+-    private boolean export(Task task) {
++    public boolean export(Task task) {
+ 
+         return export(settings.cp_DefaultSession.cp_Content, tempDir, task);
+ 
+@@ -556,7 +556,7 @@ public class Process implements WebWizar
+      * @param task
+      * @return true if should continue
+      */
+-    private boolean export(CGContent content, String dir, Task task) {
++    public boolean export(CGContent content, String dir, Task task) {
+         int toPerform = 1;
+         String contentDir = dir;
+     
+@@ -630,7 +630,7 @@ public class Process implements WebWizar
+      * @param task task tracking
+      * @return true if should continue
+      */
+-    private boolean export(CGDocument doc, String dir,Task task) {
++    public boolean export(CGDocument doc, String dir,Task task) {
+         
+         //first I check if the document was already validated...
+         if (!doc.valid)
+@@ -728,7 +728,7 @@ public class Process implements WebWizar
+      * @param errType error type
+      * @return the interaction result
+      */
+-    private boolean error(Exception ex, Object arg1, int arg2, int errType) {
++    public boolean error(Exception ex, Object arg1, int arg2, int errType) {
+         result = false;
+         return errorHandler.error(ex,arg1,arg2,errType);
+     }
+@@ -740,7 +740,7 @@ public class Process implements WebWizar
+      * @param task the task to advance
+      * @param count the number of steps to advance
+      */
+-    private void failTask(Task task, int count) {
++    public void failTask(Task task, int count) {
+         while (count-- > 0)
+           task.advance(false);
+     }
+@@ -755,7 +755,7 @@ public class Process implements WebWizar
+      * @throws IllegalAccessException
+      * @throws InstantiationException
+      */
+-    private Exporter createExporter(CGExporter export)
++    public Exporter createExporter(CGExporter export)
+         throws  ClassNotFoundException,
+                 IllegalAccessException,
+                 InstantiationException
+@@ -776,7 +776,7 @@ public class Process implements WebWizar
+      * @throws IllegalAccessException thrown when using Class.forName(string)
+      * @throws InstantiationException thrown when using Class.forName(string)
+      */
+-    private Exporter getExporter(CGExporter export) 
++    public Exporter getExporter(CGExporter export) 
+         throws  ClassNotFoundException,
+                 IllegalAccessException,
+                 InstantiationException
+--- wizards/com/sun/star/wizards/web/status/ErrorLog.java	2006-04-07 15:52:52.000000000 +0200
++++ wizards/com/sun/star/wizards/web/status/ErrorLog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -17,7 +17,7 @@ import java.util.Vector;
+  */
+ public class ErrorLog implements ErrorReporter {
+     
+-    private List errors = new Vector();
++    public List errors = new Vector();
+ 
+     public void error(Exception ex, Object obj, String s) {
+       errors.add(new Err(ex,obj,s));
+--- wizards/com/sun/star/wizards/web/status/LogTaskListener.java	2006-04-07 15:53:08.000000000 +0200
++++ wizards/com/sun/star/wizards/web/status/LogTaskListener.java	2007-05-24 11:24:05.000000000 +0200
+@@ -16,7 +16,7 @@ import java.io.PrintStream;
+  */
+ public class LogTaskListener implements TaskListener {
+     
+-    private PrintStream out;
++    public PrintStream out;
+     
+     public LogTaskListener(PrintStream os) {
+         out = os;
+--- wizards/com/sun/star/wizards/web/status/TaskEvent.java	2006-04-07 15:53:41.000000000 +0200
++++ wizards/com/sun/star/wizards/web/status/TaskEvent.java	2007-05-24 11:24:05.000000000 +0200
+@@ -21,7 +21,7 @@ public class TaskEvent extends EventObje
+     public static final int TASK_STATUS_CHANGED = 3;
+     public static final int SUBTASK_NAME_CHANGED = 4;
+     
+-    private int type;
++    public int type;
+     
+     /**
+      * general constructor-
+--- wizards/com/sun/star/wizards/web/status/Task.java	2006-04-07 15:53:27.000000000 +0200
++++ wizards/com/sun/star/wizards/web/status/Task.java	2007-05-24 11:24:05.000000000 +0200
+@@ -16,13 +16,13 @@ import java.util.Vector;
+  * Window>Preferences>Java>Code Generation>Code and Comments
+  */
+ public class Task {
+-    private int successfull = 0;
+-    private int failed = 0;
++    public int successfull = 0;
++    public int failed = 0;
+     
+-    private int max = 0;
+-    private String taskName;
+-    private List listeners = new Vector();
+-    private String subtaskName;
++    public int max = 0;
++    public String taskName;
++    public List listeners = new Vector();
++    public String subtaskName;
+     
+     
+     public Task(String taskName_ , String subtaskName_, int max_) {
+@@ -71,28 +71,28 @@ public class Task {
+         listeners.remove(tl);
+     }
+     
+-    protected void fireTaskStatusChanged() {
++    public void fireTaskStatusChanged() {
+         TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STATUS_CHANGED);
+         
+         for (int i = 0; i<listeners.size(); i++)
+           ((TaskListener)listeners.get(i)).taskStatusChanged(te);
+     }
+     
+-    protected void fireTaskStarted() {  
++    public void fireTaskStarted() {  
+         TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STARTED);
+         
+         for (int i = 0; i<listeners.size(); i++)
+           ((TaskListener)listeners.get(i)).taskStarted(te);
+     }
+     
+-    protected void fireTaskFinished() {
++    public void fireTaskFinished() {
+         TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FINISHED);
+         
+         for (int i = 0; i<listeners.size(); i++)
+           ((TaskListener)listeners.get(i)).taskFinished(te);
+     }
+     
+-    protected void fireSubtaskNameChanged() {
++    public void fireSubtaskNameChanged() {
+             TaskEvent te = new TaskEvent(this, TaskEvent.SUBTASK_NAME_CHANGED);
+         
+             for (int i = 0; i<listeners.size(); i++)
+--- wizards/com/sun/star/wizards/web/StatusDialog.java	2006-04-07 15:42:03.000000000 +0200
++++ wizards/com/sun/star/wizards/web/StatusDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -59,20 +59,20 @@ public class StatusDialog extends UnoDia
+ 
+     public static final int STANDARD_WIDTH = 240;
+ 
+-    private XProgressBar progressBar;
+-    private XFixedText lblTaskName;
+-    private XFixedText lblCounter;
+-    private XButton btnCancel;
+-
+-    private String[] res;
+-    private Renderer renderer;
+-    private boolean enableBreak = false;
+-    private boolean closeOnFinish = true;
+-    private MethodInvocation finishedMethod;
++    public XProgressBar progressBar;
++    public XFixedText lblTaskName;
++    public XFixedText lblCounter;
++    public XButton btnCancel;
++
++    public String[] res;
++    public Renderer renderer;
++    public boolean enableBreak = false;
++    public boolean closeOnFinish = true;
++    public MethodInvocation finishedMethod;
+ 
+-    private UnoDialog parent;
++    public UnoDialog parent;
+ 
+-    private boolean finished;
++    public boolean finished;
+ 
+     /**
+      * Note on the argument resource:
+@@ -120,12 +120,12 @@ public class StatusDialog extends UnoDia
+ 
+     }
+ 
+-    private void initProgressBar(Task t) {
++    public void initProgressBar(Task t) {
+         progressBar.setRange(0,t.getMax());
+         progressBar.setValue(0);
+     }
+ 
+-    private void setStatus(int status) {
++    public void setStatus(int status) {
+         if (finished) return;
+         progressBar.setValue(status);
+         xReschedule.reschedule();
+@@ -141,7 +141,7 @@ public class StatusDialog extends UnoDia
+      * change the max property of the status bar
+      * @param max
+      */
+-    private void setMax(int max) {
++    public void setMax(int max) {
+         if (finished) return;
+         Helper.setUnoPropertyValue(getModel(progressBar),"ProgressValueMax", new Integer(max));
+     }
+--- wizards/com/sun/star/wizards/web/StylePreview.java	2006-07-13 14:28:39.000000000 +0200
++++ wizards/com/sun/star/wizards/web/StylePreview.java	2007-05-24 11:24:05.000000000 +0200
+@@ -49,7 +49,7 @@ import com.sun.star.wizards.web.data.CGS
+  * of the user.
+  */
+ public class StylePreview {
+-    private FileAccess fileAccess;
++    public FileAccess fileAccess;
+     /**
+      * the destination html url.
+      */
+@@ -57,7 +57,7 @@ public class StylePreview {
+     /** 
+      * the destination css url
+      */
+-    private String cssFilename;
++    public String cssFilename;
+     /**
+      * destination directory
+      */
+@@ -65,11 +65,11 @@ public class StylePreview {
+     /**
+      * destination background file url
+      */
+-    private String backgroundFilename;
++    public String backgroundFilename;
+     /**
+      * web wizard work directory
+      */
+-    private String wwRoot;
++    public String wwRoot;
+     
+     
+     /**
+@@ -133,7 +133,7 @@ public class StylePreview {
+      * @return the url of the new directory.
+      * @throws Exception
+      */
+-    private String createTempDir(XMultiServiceFactory xmsf) throws Exception {
++    public String createTempDir(XMultiServiceFactory xmsf) throws Exception {
+         String tempPath = FileAccess.getOfficePath(xmsf,"Temp","", "") ;
+         String s = fileAccess.createNewDir(tempPath, "wwiz");
+         fileAccess.createNewDir(s,"images");
+@@ -144,7 +144,7 @@ public class StylePreview {
+      * deletes/removes the temporary directroy.
+      * @throws Exception
+      */
+-    private void removeTempDir() throws Exception {
++    public void removeTempDir() throws Exception {
+         fileAccess.delete(tempDir);
+     }
+ 
+--- wizards/com/sun/star/wizards/web/TOCPreview.java	2006-04-07 15:42:38.000000000 +0200
++++ wizards/com/sun/star/wizards/web/TOCPreview.java	2007-05-24 11:24:05.000000000 +0200
+@@ -71,15 +71,15 @@ import com.sun.star.wizards.web.data.CGS
+  */
+  
+ public class TOCPreview {
+-    private String tempDir = null;
+-    private XMultiServiceFactory xmsf;
+-    private FileAccess fileAccess;
+-    private WebWizardDialogResources resources;
+-    private URL openHyperlink;
+-    private XDispatch xDispatch;
+-    private PropertyValue[] loadArgs;
+-    private UCB ucb;
+-    private XFrame xFrame;
++    public String tempDir = null;
++    public XMultiServiceFactory xmsf;
++    public FileAccess fileAccess;
++    public WebWizardDialogResources resources;
++    public URL openHyperlink;
++    public XDispatch xDispatch;
++    public PropertyValue[] loadArgs;
++    public UCB ucb;
++    public XFrame xFrame;
+     
+     /**
+      * @param xmsf_
+@@ -122,7 +122,7 @@ public class TOCPreview {
+     }
+ 
+ 
+-    private PropertyValue[] loadArgs(String url) {
++    public PropertyValue[] loadArgs(String url) {
+         PropertyValue pv = new PropertyValue();
+         pv.Name = "URL";
+         pv.Value = url;
+--- wizards/com/sun/star/wizards/web/WebWizardDialog.java	2006-04-07 15:44:51.000000000 +0200
++++ wizards/com/sun/star/wizards/web/WebWizardDialog.java	2007-05-24 11:24:05.000000000 +0200
+@@ -192,17 +192,17 @@ public abstract class WebWizardDialog  e
+   FontDescriptor fontDescriptor7 = new FontDescriptor();
+   
+   //private static String[] PROPNAMES_LBL_NOFOCUS =     new String[] {"Height", "Label", "Name", "PositionX", "PositionY", "Step", "Width"};
+-  private static String[] PROPNAMES_LBL =           new String[] { "Height", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
+-  private static String[] PROPNAMES_CHKBOX =        new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width" };
+-  private static String[] PROPNAMES_BUTTON =        new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };  
+-  private static String[] PROPNAMES_TXT =           new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };  
+-  private static String[] PROPNAMES_TXT_2 =         new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "ReadOnly", "Step", "TabIndex", "Width" };
+-  private static String[] PROPNAMES_TITLE =         new String[] { "FontDescriptor", "Height", "Label", "MultiLine", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
++  public static String[] PROPNAMES_LBL =           new String[] { "Height", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
++  public static String[] PROPNAMES_CHKBOX =        new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width" };
++  public static String[] PROPNAMES_BUTTON =        new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };  
++  public static String[] PROPNAMES_TXT =           new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };  
++  public static String[] PROPNAMES_TXT_2 =         new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "ReadOnly", "Step", "TabIndex", "Width" };
++  public static String[] PROPNAMES_TITLE =         new String[] { "FontDescriptor", "Height", "Label", "MultiLine", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
+   
+-  private static Integer INTEGER_91 = new Integer(91);
+-  private static Integer INTEGER_97 = new Integer(97);
+-  private static Integer INTEGER_103 = new Integer(103);
+-  private static Integer INTEGER_169 = new Integer(169);
++  public static Integer INTEGER_91 = new Integer(91);
++  public static Integer INTEGER_97 = new Integer(97);
++  public static Integer INTEGER_103 = new Integer(103);
++  public static Integer INTEGER_169 = new Integer(169);
+   
+   
+     //Resources Object
+@@ -668,7 +668,7 @@ public abstract class WebWizardDialog  e
+    * @author rpiterman
+    
+    */
+-  private class LayoutRenderer implements ImageList.ImageRenderer {
++  public class LayoutRenderer implements ImageList.ImageRenderer {
+ 
+     public Object[] getImageUrls(Object listItem) {
+         Object[] oResIds = null;
+--- wizards/com/sun/star/wizards/web/WWD_Events.java	2006-04-07 15:42:59.000000000 +0200
++++ wizards/com/sun/star/wizards/web/WWD_Events.java	2007-05-24 11:24:05.000000000 +0200
+@@ -70,7 +70,7 @@ import com.sun.star.wizards.web.data.CGS
+  */
+ public abstract class WWD_Events extends WWD_Startup {
+ 
+-    private static final short[] EMPTY_SHORT_ARRAY = new short[0];
++    public static final short[] EMPTY_SHORT_ARRAY = new short[0];
+     
+     
+     /**
+@@ -78,7 +78,7 @@ public abstract class WWD_Events extends
+      * If "" - it means the current session is the default one (empty)
+      * If a session is loaded, this will be the name of the loaded session.
+      */
+-    protected String currentSession = "";
++    public String currentSession = "";
+     
+     /**
+      * He - my constructor !
+@@ -102,14 +102,14 @@ public abstract class WWD_Events extends
+      *  *******************************************************
+      * *********************************************************/
+ 
+-    protected void leaveStep(int nOldStep, int nNewStep) {
++    public void leaveStep(int nOldStep, int nNewStep) {
+         if (nOldStep == 1 && nNewStep == 2) {
+             // 1. check if the selected session is the same as the current one.
+         }
+     }
+ 
+     
+-    protected void enterStep(int old, int newStep) {
++    public void enterStep(int old, int newStep) {
+         if ((old == 1)) {
+             String sessionToLoad = "";
+             short[] s = (short[]) Helper.getUnoPropertyValue(getModel(lstLoadSettings), "SelectedItems");
+@@ -255,7 +255,7 @@ public abstract class WWD_Events extends
+         return selectedDoc;
+     }
+ 
+-    private static String[] EMPTY_STRING_ARRAY = new String[0];
++    public static String[] EMPTY_STRING_ARRAY = new String[0];
+ 
+     /*  public void loadSessionSelected() {
+             UIHelper.setEnabled(btnLoadSession,true);
+@@ -384,7 +384,7 @@ public abstract class WWD_Events extends
+      * invoked when the user clicks "Choose backgrounds" button.
+      */
+ 
+-    private ImageListDialog bgDialog;
++    public ImageListDialog bgDialog;
+ 
+     /**
+      * the user clicked the "backgrounds" button
+@@ -416,7 +416,7 @@ public abstract class WWD_Events extends
+         refreshStylePreview();
+     }
+ 
+-    private IconsDialog iconsDialog;
++    public IconsDialog iconsDialog;
+ 
+     /**
+      * is called when the user clicks "Icon sets" button.
+@@ -458,7 +458,7 @@ public abstract class WWD_Events extends
+      * sets the publishing url of either a local/zip or ftp publisher.
+      * updates the ui....
+      */
+-    private CGPublish setPublishUrl(String publisher, String url, int number) {
++    public CGPublish setPublishUrl(String publisher, String url, int number) {
+         if (url == null)
+             return null;
+         CGPublish p = getPublisher(publisher);
+@@ -474,7 +474,7 @@ public abstract class WWD_Events extends
+      * (the text box url)
+      * @param number
+      */
+-    private void updatePublishUI(int number) {
++    public void updatePublishUI(int number) {
+         ((DataAware) pubAware.get(number)).updateUI();
+         ((DataAware) pubAware.get(number + 1)).updateUI();
+         checkPublish();
+@@ -507,7 +507,7 @@ public abstract class WWD_Events extends
+      * @param pub
+      * @return true if OK was pressed, otherwise false.
+      */
+-    private boolean showFTPDialog(CGPublish pub) {
++    public boolean showFTPDialog(CGPublish pub) {
+         try {
+             return getFTPDialog(pub).execute(this) == 1;
+         } catch (Exception ex) {
+@@ -527,7 +527,7 @@ public abstract class WWD_Events extends
+         getPublisher(ZIP_PUBLISHER).overwriteApproved = true;
+     }
+ 
+-    private TOCPreview docPreview;
++    public TOCPreview docPreview;
+ 
+     
+     /**
+@@ -554,7 +554,7 @@ public abstract class WWD_Events extends
+      * be replaced.
+      * @return true if "create" should continue. false if "create" should abort.
+      */
+-    private boolean publishTargetApproved() {
++    public boolean publishTargetApproved() {
+         boolean result = true;
+         // 1. check local publish target
+         
+@@ -717,7 +717,7 @@ public abstract class WWD_Events extends
+     /*
+      * return false if "create" should be aborted. true if everything is fine.
+      */
+-    private boolean saveSession() {
++    public boolean saveSession() {
+         try {
+             Object node = null;
+             String name = getSessionSaveName();
+@@ -778,7 +778,7 @@ public abstract class WWD_Events extends
+         }
+     }
+ 
+-    private String targetStringFor(String publisher) {
++    public String targetStringFor(String publisher) {
+         CGPublish p = getPublisher(publisher);
+         if (p.cp_Publish)
+                 return "\n" + getFileAccess().getPath(p.cp_URL,null);
+@@ -811,8 +811,8 @@ public abstract class WWD_Events extends
+         xDialog.endExecute();
+     }
+ 
+-    private Process process;
+-    private boolean exitOnCreate = true;
++    public Process process;
++    public boolean exitOnCreate = true;
+     
+     /**
+      * the user clicks the finish/create button.
+@@ -858,7 +858,7 @@ public abstract class WWD_Events extends
+      * popped up when clicking "Create". 
+      *
+      */
+-    private void finishWizard2() {      
++    public void finishWizard2() {      
+         
+         CGPublish p = getPublisher(LOCAL_PUBLISHER);
+         p.url = p.cp_URL;
+@@ -956,7 +956,7 @@ public abstract class WWD_Events extends
+      * of the last steps' checkboxes.
+      * @author rp143992
+      */
+-    private class Create implements XKeyListener {
++    public class Create implements XKeyListener {
+         long time = 0;
+         int count = 0;
+         
+@@ -1029,7 +1029,7 @@ public abstract class WWD_Events extends
+     }
+     
+     public class LoadDocs {
+-        private XControl xC;
++        public XControl xC;
+         String[] files;
+         Task task;
+         
+--- wizards/com/sun/star/wizards/web/WWD_General.java	2006-04-07 15:43:18.000000000 +0200
++++ wizards/com/sun/star/wizards/web/WWD_General.java	2007-05-24 11:24:05.000000000 +0200
+@@ -55,22 +55,22 @@ import com.sun.star.wizards.web.data.CGS
+ public abstract class WWD_General extends WebWizardDialog {
+     
+     
+-    private FileAccess fileAccess;
++    public FileAccess fileAccess;
+     
+-    private SystemDialog docAddDialog, folderDialog, favIconDialog, zipDialog;
++    public SystemDialog docAddDialog, folderDialog, favIconDialog, zipDialog;
+     
+-    protected FTPDialog ftpDialog;
++    public FTPDialog ftpDialog;
+     
+-    protected CGSettings settings;
++    public CGSettings settings;
+     
+     
+     /**
+      * true if proxies are on, which means, ftp is disabled.
+      */
+-    protected boolean proxies;
+-    private XStringSubstitution xStringSubstitution ;
++    public boolean proxies;
++    public XStringSubstitution xStringSubstitution ;
+     
+-    protected StatusDialog getStatusDialog() {
++    public StatusDialog getStatusDialog() {
+     
+         StatusDialog statusDialog = new StatusDialog(xMSF, StatusDialog.STANDARD_WIDTH,  resources.resLoadingSession , false , new String[] { resources.prodName, "", "", "", "", "" }, "HID:"+ HID0_STATUS_DIALOG);
+         try {
+@@ -96,7 +96,7 @@ public abstract class WWD_General extend
+      */
+ 
+     
+-    protected SystemDialog getDocAddDialog() {
++    public SystemDialog getDocAddDialog() {
+         //if (docAddDialog == null) {
+             docAddDialog = SystemDialog.createOpenDialog(xMSF);
+             for (int i = 0; i < settings.cp_Filters.getSize(); i++) {
+@@ -113,7 +113,7 @@ public abstract class WWD_General extend
+         return docAddDialog;
+     }
+     
+-    protected SystemDialog getZipDialog() {
++    public SystemDialog getZipDialog() {
+         if (zipDialog==null) {
+             zipDialog = SystemDialog.createStoreDialog(xMSF);
+             zipDialog.addFilter(resources.resZipFiles,"*.zip",true); 
+@@ -121,7 +121,7 @@ public abstract class WWD_General extend
+         return zipDialog;
+     }
+     
+-    protected FTPDialog getFTPDialog(CGPublish pub) {
++    public FTPDialog getFTPDialog(CGPublish pub) {
+         if (ftpDialog == null) {
+             try {
+                 ftpDialog = new FTPDialog(xMSF,pub);
+@@ -135,14 +135,14 @@ public abstract class WWD_General extend
+     }
+     
+     
+-    protected String showFolderDialog(String title, String description,String dir) {
++    public String showFolderDialog(String title, String description,String dir) {
+         if (folderDialog == null)
+             folderDialog = SystemDialog.createFolderDialog(xMSF);
+         return folderDialog.callFolderDialog(title,description,dir);
+     }
+     
+     
+-    protected FileAccess getFileAccess() {
++    public FileAccess getFileAccess() {
+         if (fileAccess == null)
+           try {
+             fileAccess = new FileAccess(xMSF);
+@@ -160,7 +160,7 @@ public abstract class WWD_General extend
+      * @param s
+      * @return
+      */
+-    protected CGDocument getDoc(short[] s) {
++    public CGDocument getDoc(short[] s) {
+         if (s.length==0)
+           return null;
+         else if (settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() <= s[0])
+@@ -172,7 +172,7 @@ public abstract class WWD_General extend
+      * how many documents are in the list?
+      * @return the number of documents in the docs list.
+      */
+-    protected int getDocsCount() {
++    public int getDocsCount() {
+         return settings.cp_DefaultSession.cp_Content.cp_Documents.getSize(); 
+     }
+     
+@@ -181,7 +181,7 @@ public abstract class WWD_General extend
+      * fills the export listbox.
+      * @param listContent
+      */
+-    protected void fillExportList(Object[] listContent) {
++    public void fillExportList(Object[] listContent) {
+         ListModelBinder.fillList(lstDocTargetType,listContent,null);
+     }
+     
+@@ -190,14 +190,14 @@ public abstract class WWD_General extend
+      * @param name one of the WebWizardConst constants : FTP 
+      * @return
+      */
+-    protected CGPublish getPublisher(String name) {
++    public CGPublish getPublisher(String name) {
+         return (CGPublish)settings.cp_DefaultSession.cp_Publishing.getElement(name);
+     }
+     
+     /**
+      * @return true if the checkbox "save session" is checked.
+      */
+-    protected boolean isSaveSession() {
++    public boolean isSaveSession() {
+         return (((Number)Helper.getUnoPropertyValue(
+             getModel(chkSaveSettings),"State")).intValue()==1);
+     }
+@@ -205,7 +205,7 @@ public abstract class WWD_General extend
+     /**
+      * @return the name to save the session (step 7)
+      */
+-    protected String getSessionSaveName() {
++    public String getSessionSaveName() {
+         return (String)Helper.getUnoPropertyValue(
+             getModel(cbSaveSettings),"Text");
+     }
+@@ -216,7 +216,7 @@ public abstract class WWD_General extend
+      * enables or disables the 'next' and the 'create' button.
+      *
+      */
+-    protected void checkSteps() {
++    public void checkSteps() {
+         /* first I check the document list.
+          * If it is empty, then step3 and on are disabled.
+          */
+@@ -229,7 +229,7 @@ public abstract class WWD_General extend
+      * enables/disables the steps 3 to 7)
+      * @param enabled true = enabled, false = disabled.
+      */
+-    private void enableSteps(boolean enabled) {
++    public void enableSteps(boolean enabled) {
+         
+         if (!enabled && !isStepEnabled(3))
+           return;
+@@ -254,7 +254,7 @@ public abstract class WWD_General extend
+      * create button.
+      * @return
+      */
+-    protected boolean checkDocList() {
++    public boolean checkDocList() {
+         if (settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() == 0) {
+             enableSteps(false);
+             return false;
+@@ -283,7 +283,7 @@ public abstract class WWD_General extend
+      * active, returns true if the url is not empty...
+      * if the url is empty, throws an exception
+      */ 
+-    private boolean checkPublish(String s, Object text, String property) {
++    public boolean checkPublish(String s, Object text, String property) {
+         CGPublish p = getPublisher(s);
+         if (p.cp_Publish) {
+             String url = (String)Helper.getUnoPropertyValue(getModel(text),property);
+@@ -304,7 +304,7 @@ public abstract class WWD_General extend
+      * which are chosen are legal.
+      * If proxies are on, ftp publisher is ignored.
+      */
+-    private boolean checkPublish_() {
++    public boolean checkPublish_() {
+         try {
+             return (checkPublish(LOCAL_PUBLISHER, txtLocalDir, "Text")
+                 | ( !proxies && checkPublish(FTP_PUBLISHER, lblFTP, "Label")) 
+@@ -330,7 +330,7 @@ public abstract class WWD_General extend
+      * shows a message box "Unexpected Error... " :-)
+      * @param ex
+      */
+-    protected void unexpectedError(Exception ex) {
++    public void unexpectedError(Exception ex) {
+         ex.printStackTrace();
+         XWindowPeer peer = xControl.getPeer();
+         AbstractErrorHandler.showMessage(xMSF,peer,resources.resErrUnexpected, ErrorHandler.ERROR_PROCESS_FATAL);
+@@ -341,7 +341,7 @@ public abstract class WWD_General extend
+      * @param path a path, which might contain OOo path variables. 
+      * @return the path, after substituing path variables.
+      */
+-    protected String substitute(String path) {
++    public String substitute(String path) {
+         try {
+             return xStringSubstitution.substituteVariables(path,false);
+         }
+--- wizards/com/sun/star/wizards/web/WWD_Startup.java	2006-07-13 14:28:54.000000000 +0200
++++ wizards/com/sun/star/wizards/web/WWD_Startup.java	2007-05-24 11:24:05.000000000 +0200
+@@ -135,27 +135,27 @@ public abstract class WWD_Startup extend
+      * We did not implement the live-preview document,
+      * so this became obsolete.
+      */
+-    protected DataAware.Listener refresh;
++    public DataAware.Listener refresh;
+     /**
+      * Is called whenever a field is changed which
+      * could affect the "create" button enable state,
+      * like publishing-checkboxes, save-session check- and textbox.
+      */
+-    protected DataAware.Listener checkPublish = new CheckPublish();
++    public DataAware.Listener checkPublish = new CheckPublish();
+ 
+     /**
+      * The Vector containing DataAware objects
+      * which relay on the selected document
+      * as DataObject (or Model).
+      */
+-    protected List docAware = new Vector();
++    public List docAware = new Vector();
+     /**
+      * The Vector containing DataAware objects
+      * which relay on the session's generalInfo
+      * Object (CGSession.cp_GeneralInfo) as
+      * DataObject (or model).
+      */
+-    protected List genAware = new Vector();
++    public List genAware = new Vector();
+     /**
+      * The vector containing DataAware objectscm25npd ..
+      * which relay on the session's Design Object
+@@ -163,7 +163,7 @@ public abstract class WWD_Startup extend
+      * (or model).
+      *
+      */
+-    protected List designAware = new Vector();
++    public List designAware = new Vector();
+     /**
+      * A Vector containig the DataAware objects
+      * which relay on Publishing Objects.
+@@ -172,7 +172,7 @@ public abstract class WWD_Startup extend
+      * on a <b>different</b> CGPublish object,
+      * So they are handled with more care.
+      */
+-    protected List pubAware = new Vector(3);
++    public List pubAware = new Vector(3);
+ 
+     /**
+      * The DataAware object which handles
+@@ -180,35 +180,35 @@ public abstract class WWD_Startup extend
+      * This will call the set/getDocument() method
+      * implemented in WWD_General.
+      */
+-    protected UnoDataAware docListDA;
++    public UnoDataAware docListDA;
+     /**
+      * DataAware object which synchronizes the session
+      * name in step 7 with the CGSession.cp_Name
+      */
+-    protected UnoDataAware sessionNameDA;
++    public UnoDataAware sessionNameDA;
+ 
+     /**
+      * Binds a ListModel to the UnoControlListBox.
+      */
+-    protected ListModelBinder docsBinder;
++    public ListModelBinder docsBinder;
+ 
+     /**
+      *  a DocumentPreview object is
+      * the UI OO Document preview
+      * in the Dialog
+      */
+-    protected DocumentPreview dpStylePreview;
++    public DocumentPreview dpStylePreview;
+     /**
+      * An Object that implements the
+      * File-copy and refresh of the
+      * style preview
+      */
+-    protected StylePreview stylePreview;
++    public StylePreview stylePreview;
+ 
+     /**
+      * the currently selected document.
+      */
+-    protected short[] selectedDoc = new short[0];
++    public short[] selectedDoc = new short[0];
+ 
+     /**
+      * If ftp proxies are on, ftp is disabled, and
+@@ -224,7 +224,7 @@ public abstract class WWD_Startup extend
+      * The backgroundDoc memeber contains the TextDocument
+      * instance used for that purpose.
+      */
+-    protected XFrame myFrame;
++    public XFrame myFrame;
+ 
+ 
+     /* ******************************************
+@@ -312,7 +312,7 @@ public abstract class WWD_Startup extend
+      * @return true if (http) proxies are on.
+      * @throws Exception
+      */
+-    private boolean getOOProxies() throws Exception {
++    public boolean getOOProxies() throws Exception {
+         Object node = Configuration.getConfigurationRoot(xMSF,"org.openoffice.Inet/Settings",false);
+         int i = Configuration.getInt("ooInetProxyType",node);
+         //System.out.println("WWD:Startup:getOOProxies:" + i);
+@@ -333,7 +333,7 @@ public abstract class WWD_Startup extend
+      * The combobox text in step 7 will be updated
+      * automatically when updateUI() is called.
+      */
+-    protected void setSaveSessionName(CGSession session) {
++    public void setSaveSessionName(CGSession session) {
+         int max = 0;
+         int len = resources.resSessionName.length();
+         // traverse between the sessions and find the one that
+@@ -349,7 +349,7 @@ public abstract class WWD_Startup extend
+     }
+ 
+ 
+-    private int max(int i1, int i2) {
++    public int max(int i1, int i2) {
+         if (i1 > i2)
+             return i1;
+         else
+@@ -361,7 +361,7 @@ public abstract class WWD_Startup extend
+      * like MaxStep, Complete, Interactive-
+      * Disables the finbihButton.
+      */
+-    private void addRoadMapItems() {
++    public void addRoadMapItems() {
+         insertRoadMapItems(new String[] { resources.resStep1, resources.resStep2, resources.resStep3, resources.resStep4, resources.resStep5, resources.resStep6, resources.resStep7  }, new int[] { 1, 2, 3, 4, 5, 6, 7 }, new boolean[] { true, true, false, false, false, false, false });
+ 
+         setRoadmapInteractive(true);
+@@ -380,7 +380,7 @@ public abstract class WWD_Startup extend
+      * the state of the corresponding data objects.
+      *
+      */
+-    private void updateUI() {
++    public void updateUI() {
+         DataAware.updateUI(designAware);
+         DataAware.updateUI(genAware);
+         DataAware.updateUI(pubAware);
+@@ -388,7 +388,7 @@ public abstract class WWD_Startup extend
+         checkPublish();
+     }
+ 
+-    private XFrame getFrame(Object model) {
++    public XFrame getFrame(Object model) {
+         XModel xmodel = (XModel)UnoRuntime.queryInterface(XModel.class,model);
+         return xmodel.getCurrentController().getFrame();
+     }
+@@ -431,7 +431,7 @@ public abstract class WWD_Startup extend
+     /**
+      * initializes the style preview.
+      */
+-    private void addStylePreview() {
++    public void addStylePreview() {
+         try {
+             dpStylePreview = new DocumentPreview(xMSF, imgPreview);
+             stylePreview = new StylePreview(xMSF, settings.workPath);
+@@ -446,7 +446,7 @@ public abstract class WWD_Startup extend
+     /**
+      * Loads the web wizard settings from the registry.
+      */
+-    private void loadSettings(Object document) {
++    public void loadSettings(Object document) {
+         try {
+             // instanciate
+             String[] settingsResources = new String[] {
+@@ -495,7 +495,7 @@ public abstract class WWD_Startup extend
+     }
+ 
+ 
+-    protected void prepareSessionLists() {
++    public void prepareSessionLists() {
+         // now copy the sessions list...
+         Object[] sessions = settings.cp_SavedSessions.items();
+         settings.savedSessions.clear();
+@@ -514,7 +514,7 @@ public abstract class WWD_Startup extend
+      * Also set the selected "load" session to the last session
+      * which was saved.
+      */
+-    private void fillLists() {
++    public void fillLists() {
+         // fill the saved session list.
+         ListModelBinder.fillList(lstLoadSettings, settings.cp_SavedSessions.items(), null);
+ 
+@@ -530,7 +530,7 @@ public abstract class WWD_Startup extend
+ 
+     }
+ 
+-    protected void selectSession() {
++    public void selectSession() {
+         int selectedSession = 0;
+         if (settings.cp_LastSavedSession != null  && !settings.cp_LastSavedSession.equals("")) {
+ 
+@@ -564,7 +564,7 @@ public abstract class WWD_Startup extend
+      * textbox, no buttons though), a DataObject's JavaBean Property,
+      * or class member.
+      */
+-    private void makeDataAware() {
++    public void makeDataAware() {
+         //page 1
+         new ListModelBinder(lstLoadSettings, settings.cp_SavedSessions);
+ 
+@@ -641,7 +641,7 @@ public abstract class WWD_Startup extend
+      * @param checkbox
+      * @param textbox
+      */
+-    private void pubAware(String publish, Object checkbox, Object textbox, boolean isLabel) {
++    public void pubAware(String publish, Object checkbox, Object textbox, boolean isLabel) {
+         Object p = settings.cp_DefaultSession.cp_Publishing.getElement(publish);
+         UnoDataAware uda = UnoDataAware.attachCheckBox(p, "cp_Publish", checkbox, checkPublish, true);
+         uda.setInverse(true);
+@@ -671,7 +671,7 @@ public abstract class WWD_Startup extend
+      * and ??? times for each document in the session.
+      *
+      */
+-    protected void mount(CGSession session, Task task, boolean refreshStyle, XControl xC ) {
++    public void mount(CGSession session, Task task, boolean refreshStyle, XControl xC ) {
+         /* This checks the documents. If the user
+          * chooses to cancel, the session is not loaded.
+          */
+@@ -718,7 +718,7 @@ public abstract class WWD_Startup extend
+      * @param data the CGPublish object
+      * @param i the number of the object (0 = local, 1 = ftp, 2 = zip)
+      */
+-    private void mount(Object data, int i) {
++    public void mount(Object data, int i) {
+         ((DataAware) pubAware.get(i * 2)).setDataObject(data, true);
+         ((DataAware) pubAware.get(i * 2 + 1)).setDataObject(data, true);
+     }
+@@ -728,7 +728,7 @@ public abstract class WWD_Startup extend
+      * @param root the CGContent object
+      * that contains the documents (a ListModel)
+      */
+-    private void mount(CGContent root) {
++    public void mount(CGContent root) {
+         ListModelBinder.fillList(lstDocuments, root.cp_Documents.items(), null);
+         docsBinder.setListModel(root.cp_Documents);
+         disableDocUpDown();
+@@ -741,7 +741,7 @@ public abstract class WWD_Startup extend
+      * @param data
+      * @param list
+      */
+-    protected void mount(Object data, List list) {
++    public void mount(Object data, List list) {
+         for (int i = 0; i < list.size(); i++)
+              ((DataAware) list.get(i)).setDataObject(data, true);
+     }
+@@ -757,7 +757,7 @@ public abstract class WWD_Startup extend
+      * displayed, using the Task object to monitor progress.
+      * @return true if the document is ok (a file exists in the given url).
+      */
+-    protected boolean checkDocument(CGDocument doc, Task task, XControl xC) {
++    public boolean checkDocument(CGDocument doc, Task task, XControl xC) {
+         try {
+             doc.validate(xMSF, task);
+             return true;
+@@ -803,7 +803,7 @@ public abstract class WWD_Startup extend
+      * @param content
+      * @param task
+      */
+-    private void checkContent(CGContent content, Task task, XControl xC) {
++    public void checkContent(CGContent content, Task task, XControl xC) {
+         for (int i = 0; i < content.cp_Documents.getSize(); i++)
+             if (!checkDocument((CGDocument) content.cp_Documents.getElementAt(i), task, xC))
+                 // I use here 'i--' since, when the document is removed
+@@ -819,7 +819,7 @@ public abstract class WWD_Startup extend
+      * changes the "create" button enable state accordingly.
+      * @author rpiterman
+      */
+-    private class CheckPublish implements DataAware.Listener {
++    public class CheckPublish implements DataAware.Listener {
+         public void eventPerformed(Object event) {
+             checkPublish();
+         }
+@@ -832,7 +832,7 @@ public abstract class WWD_Startup extend
+      * down disabled and so on...)
+      *
+      */
+-    protected void disableDocUpDown() {
++    public void disableDocUpDown() {
+         try {
+             setEnabled(btnDocUp, selectedDoc.length == 0 ? Boolean.FALSE : (selectedDoc[0] == 0 ? Boolean.FALSE : Boolean.TRUE));
+             setEnabled(btnDocDown, selectedDoc.length == 0 ? Boolean.FALSE : (selectedDoc[0] + 1 < settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() ? Boolean.TRUE : Boolean.FALSE));
+@@ -884,7 +884,7 @@ public abstract class WWD_Startup extend
+     }
+ 
+ 
+-    private class StylesComparator implements Comparator {
++    public class StylesComparator implements Comparator {
+ 
+         /* (non-Javadoc)
+          * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-vcl-m14.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-vcl-m14.diff
@@ -0,0 +1,6882 @@
+Index: vcl/aqua/inc/salinst.h
+===================================================================
+RCS file: /cvs/gsl/vcl/aqua/inc/salinst.h,v
+retrieving revision 1.13
+retrieving revision 1.12.56.2
+diff -u -p -u -p -r1.13 -r1.12.56.2
+--- vcl/aqua/inc/salinst.h	9 Oct 2007 15:09:54 -0000	1.13
++++ vcl/aqua/inc/salinst.h	16 Oct 2007 08:32:39 -0000	1.12.56.2
+@@ -126,7 +126,6 @@ public:
+     virtual void			GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+     virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String             GetDefaultPrinter();
+-    virtual SalSound*			CreateSalSound();
+     virtual SalTimer*			CreateSalTimer();
+     virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+#Index: vcl/aqua/inc/salsound.h
+#===================================================================
+#RCS file: vcl/aqua/inc/salsound.h
+#diff -N vcl/aqua/inc/salsound.h
+#--- vcl/aqua/inc/salsound.h	5 Jul 2007 15:57:25 -0000	1.3
+#+++ /dev/null	1 Jan 1970 00:00:00 -0000
+#@@ -1,109 +0,0 @@
+#-/*************************************************************************
+#-*
+#-*  OpenOffice.org - a multi-platform office productivity suite
+#-*
+#-*  $RCSfile: salsound.h,v $
+#-*
+#-*  $Revision: 1.4 $
+#-*
+#-*  last change: $Author: kz $ $Date: 2007/10/09 15:11:21 $
+#-*
+#-*  The Contents of this file are made available subject to
+#-*  the terms of GNU Lesser General Public License Version 2.1.
+#-*
+#-*
+#-*    GNU Lesser General Public License Version 2.1
+#-*    =============================================
+#-*    Copyright 2005 by Sun Microsystems, Inc.
+#-*    901 San Antonio Road, Palo Alto, CA 94303, USA
+#-*
+#-*    This library is free software; you can redistribute it and/or
+#-*    modify it under the terms of the GNU Lesser General Public
+#-*    License version 2.1, as published by the Free Software Foundation.
+#-*
+#-*    This library is distributed in the hope that it will be useful,
+#-*    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#-*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#-*    Lesser General Public License for more details.
+#-*
+#-*    You should have received a copy of the GNU Lesser General Public
+#-*    License along with this library; if not, write to the Free Software
+#-*    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+#-*    MA  02111-1307  USA
+#-*
+#-************************************************************************/
+#-
+#-#ifndef _SV_SALSOUND_H
+#-#define _SV_SALSOUND_H
+#-
+#-//#ifndef _SV_WINCOMP_HXX
+#-//#include <wincomp.hxx>
+#-//#endif
+#-
+#-#ifndef _GEN_HXX
+#-#include <tools/gen.hxx>
+#-#endif
+#-#ifndef _STRING_HXX
+#-#include <tools/string.hxx>
+#-#endif
+#-
+#-#ifndef _SV_SV_H
+#-#include <vcl/sv.h>
+#-#endif
+#-
+#-#include <osl/module.h>
+#-
+#-#ifndef _SV_SALFRAME_HXX
+#-#include <vcl/salframe.hxx>
+#-#endif
+#-#ifndef _SV_SALSTYPE_HXX
+#-#include <vcl/salstype.hxx>
+#-#endif
+#-#ifndef _SV_SALSOUND_HXX
+#-#include <vcl/salsound.hxx>
+#-#endif
+#-
+#-// ------------
+#-// - SalSound -
+#-// ------------
+#-
+#-class AquaSalSound : public SalSound
+#-{
+#-private:
+#-//	static oslModule	mhMCILib;
+#-	static ULONG		mnSoundState;
+#-	SALSOUNDPROC		mpProc;
+#-//	static void*		mpMCIFnc;
+#-//	ULONG				mnStartTime;
+#-//	ULONG				mnPlayLen;
+#-//	HWND				mhSoundWnd;
+#-//	UINT				mnDeviceId;
+#-	bool				mbLoop;
+#-	bool				mbPaused;
+#-    
+#-public:
+#-    void				ImplSetError( int nMciErr );
+#-	void				ImplNotify( SoundNotification eNotification, ULONG nError );
+#-    
+#-public:
+#-        AquaSalSound();
+#-    virtual ~AquaSalSound();
+#-    
+#-    virtual bool		IsValid();
+#-    virtual bool		Init( const String&	rSoundName,
+#-                              ULONG&		rSoundLen );
+#-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+#-	virtual void		Stop();
+#-	virtual void		Pause();
+#-	virtual void		Continue();
+#-    virtual bool		IsLoopMode() const;
+#-	virtual bool		IsPlaying() const;
+#-    virtual bool		IsPaused() const;
+#-    
+#-    
+#-	bool				ImplCreate();
+#-	void				ImplDestroy();
+#-	static void 		Release();
+#-};
+#-
+#-#endif // _SV_SALSOUND_H
+#Index: vcl/aqua/inc/salsound.hxx
+#===================================================================
+#RCS file: vcl/aqua/inc/salsound.hxx
+#diff -N vcl/aqua/inc/salsound.hxx
+#--- vcl/aqua/inc/salsound.hxx	27 Jun 2007 19:50:41 -0000	1.6
+#+++ /dev/null	1 Jan 1970 00:00:00 -0000
+#@@ -1,88 +0,0 @@
+#-/*************************************************************************
+#- *
+#- *  OpenOffice.org - a multi-platform office productivity suite
+#- *
+#- *  $RCSfile: salsound.hxx,v $
+#- *
+#- *  $Revision: 1.7 $
+#- *
+#- *  last change: $Author: kz $ $Date: 2007/10/09 15:11:34 $
+#- *
+#- *  The Contents of this file are made available subject to
+#- *  the terms of GNU Lesser General Public License Version 2.1.
+#- *
+#- *
+#- *    GNU Lesser General Public License Version 2.1
+#- *    =============================================
+#- *    Copyright 2005 by Sun Microsystems, Inc.
+#- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+#- *
+#- *    This library is free software; you can redistribute it and/or
+#- *    modify it under the terms of the GNU Lesser General Public
+#- *    License version 2.1, as published by the Free Software Foundation.
+#- *
+#- *    This library is distributed in the hope that it will be useful,
+#- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#- *    Lesser General Public License for more details.
+#- *
+#- *    You should have received a copy of the GNU Lesser General Public
+#- *    License along with this library; if not, write to the Free Software
+#- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+#- *    MA  02111-1307  USA
+#- *
+#- ************************************************************************/
+#-
+#-#ifndef _SV_SALSOUND_HXX
+#-#define _SV_SALSOUND_HXX
+#-
+#-#ifndef _GEN_HXX
+#-#include <tools/gen.hxx>
+#-#endif
+#-#ifndef _STRING_HXX
+#-#include <tools/string.hxx>
+#-#endif
+#-
+#-#ifndef _SV_SV_H
+#-#include <vcl/sv.h>
+#-#endif
+#-
+#-#ifndef _SV_SALFRAME_HXX
+#-#include <vcl/salframe.hxx>
+#-#endif
+#-#ifndef _SV_SALSTYPE_HXX
+#-#include <vcl/salstype.hxx>
+#-#endif
+#-
+#-// ------------
+#-// - SalSound -
+#-// ------------
+#-
+#-class SalSound
+#-{
+#-private:
+#-	static ULONG		mnSoundState;
+#-	SALSOUNDPROC		mpProc;
+#-	void*				mpInst;
+#-	BOOL				mbLoop;
+#-	BOOL				mbPaused;
+#-
+#-public:
+#-						SalSound();
+#-						~SalSound();
+#-
+#-	BOOL				Create();
+#-	static void 		Release();
+#-	static BOOL 		IsValid() { return( SOUND_STATE_VALID == SalSound::mnSoundState ); }
+#-
+#-	BOOL				Init( SalFrame* pFrame, const String& rSoundName, ULONG& rSoundLen );
+#-	BOOL				Init( SalFrame* pFrame, const BYTE* pSound, ULONG nDataLen, ULONG& rSoundLen );
+#-	void				Play( ULONG nStartTime, ULONG nPlayTime, BOOL bLoop );
+#-	void				Stop();
+#-	void				Pause();
+#-
+#-	void				SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
+#-							{ mpInst = pInst; mpProc = pProc; }
+#-};
+#-
+#-#endif // _SV_SALSOUND_HXX
+Index: vcl/aqua/source/app/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/aqua/source/app/makefile.mk,v
+retrieving revision 1.14
+retrieving revision 1.14.56.1
+diff -u -p -u -p -r1.14 -r1.14.56.1
+--- vcl/aqua/source/app/makefile.mk	5 Jul 2007 08:18:05 -0000	1.14
++++ vcl/aqua/source/app/makefile.mk	31 Aug 2007 09:44:56 -0000	1.14.56.1
+Index: vcl/aqua/source/app/salinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/aqua/source/app/salinst.cxx,v
+retrieving revision 1.40
+retrieving revision 1.38.10.3
+@@ -61,7 +61,6 @@
+             $(SLO)$/vclnsapp.obj        \
+                        $(SLO)$/saltimer.obj            \
+                        $(SLO)$/salnstimer.obj          \
+-                       $(SLO)$/salsound.obj            \
+                        $(SLO)$/salsys.obj
+
+ .ENDIF         # "$(GUIBASE)"!="aqua"
+diff -u -p -u -p -r1.40 -r1.38.10.3
+--- vcl/aqua/source/app/salinst.cxx	9 Oct 2007 15:12:57 -0000	1.40
++++ vcl/aqua/source/app/salinst.cxx	16 Oct 2007 08:32:33 -0000	1.38.10.3
+@@ -938,13 +938,6 @@ void* AquaSalInstance::GetConnectionIden
+ 
+ // -----------------------------------------------------------------------
+ 
+-SalSound* AquaSalInstance::CreateSalSound()
+-{
+-    return new AquaSalSound();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+ SalTimer* AquaSalInstance::CreateSalTimer()
+ {
+     return new AquaSalTimer();
+Index: vcl/inc/vcl/salinst.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/salinst.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.136.1
+diff -u -p -u -p -r1.2 -r1.2.136.1
+--- vcl/inc/vcl/salinst.hxx	11 Apr 2007 18:07:19 -0000	1.2
++++ vcl/inc/vcl/salinst.hxx	31 Aug 2007 09:44:56 -0000	1.2.136.1
+@@ -60,7 +60,6 @@ struct ImplJobSetup;
+ class SalGraphics;
+ class SalFrame;
+ class SalObject;
+-class SalSound;
+ class SalOpenGL;
+ class SalMenu;
+ class SalMenuItem;
+@@ -136,8 +135,6 @@ public:
+     virtual void				DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) = 0;
+     virtual String             GetDefaultPrinter() = 0;
+ 
+-    // SalSound
+-    virtual SalSound*			CreateSalSound() = 0;
+     // SalTimer
+     virtual SalTimer*			CreateSalTimer() = 0;
+     // SalOpenGL
+Index: vcl/inc/vcl/salsound.hxx
+===================================================================
+RCS file: vcl/inc/vcl/salsound.hxx
+diff -N vcl/inc/vcl/salsound.hxx
+--- vcl/inc/vcl/salsound.hxx	11 Apr 2007 18:08:49 -0000	1.2
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,97 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.hxx,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: vg $ $Date: 2007/04/11 18:08:49 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_HXX
+-#define _SV_SALSOUND_HXX
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-#ifndef _SV_SV_H
+-#include <vcl/sv.h>
+-#endif
+-#ifndef _VCL_DLLAPI_H
+-#include <vcl/dllapi.h>
+-#endif
+-
+-#ifndef _STRING_HXX
+-#include <tools/string.hxx>
+-#endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-
+-class VCL_DLLPUBLIC SalSound
+-{
+-	// for notification
+-	void*					m_pInst;
+-	SALSOUNDPROC			m_aPROC;
+-public:
+-    SalSound() : m_pInst( NULL ), m_aPROC( NULL ) {}
+-    virtual ~SalSound();
+-
+-    // checks whether sound system is ready for input and hence
+-    // SalSound can be initialized
+-    virtual bool		IsValid() = 0;
+-    // initialize with sound file name, returns success and // FIXME: rSoundLen ?
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen ) = 0;
+-    // play the sound, start at nStartTime (ms), play for nPlayTime (ms),
+-	// loop = true/false
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop ) = 0;
+-    // stop playing
+-	virtual void		Stop() = 0;
+-    // pause playing
+-	virtual void		Pause() = 0;
+-    // continue a paused play
+-	virtual void		Continue() = 0;
+-    // is looping ?
+-    virtual bool		IsLoopMode() const = 0;
+-    // is playing ?
+-	virtual bool		IsPlaying() const = 0;
+-    // is paused ?
+-    virtual bool		IsPaused() const = 0;
+-
+-    // register a callback to be called when state changes
+-	void		SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
+-    { m_pInst = pInst; m_aPROC = pProc; }
+-    void		CallNotifyProc( SoundNotification eNotification, ULONG nError )
+-    {
+-        if( m_aPROC )
+-            m_aPROC( m_pInst, eNotification, nError );
+-    }
+-};
+-
+-#endif
+Index: vcl/inc/vcl/salstype.hxx
+===================================================================
+RCS file: vcl/inc/vcl/salstype.hxx
+diff -N vcl/inc/vcl/salstype.hxx
+--- vcl/inc/vcl/salstype.hxx	11 Apr 2007 18:08:58 -0000	1.2
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,92 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salstype.hxx,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: vg $ $Date: 2007/04/11 18:08:58 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSTYPE_HXX
+-#define _SV_SALSTYPE_HXX
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-
+-// -----------------
+-// - Sound defines -
+-// -----------------
+-
+-#define SOUND_PLAYALL			(0xFFFFFFFFUL)
+-
+-// -----------------
+-// - State defines -
+-// -----------------
+-
+-#define SOUND_STATE_UNLOADED	(0x00000000UL)
+-#define SOUND_STATE_INVALID		(0x00000001UL)
+-#define	SOUND_STATE_VALID		(0x00000002UL)
+-
+-// ---------------------
+-// - SoundNotification -
+-// ---------------------
+-
+-enum SoundNotification 
+-{
+-	SOUND_NOTIFY_NOTHING, 
+-	SOUND_NOTIFY_SUCCESS,
+-	SOUND_NOTIFY_ABORTED,
+-	SOUND_NOTIFY_ERROR 
+-};
+-
+-// ---------------
+-// - SoundErrors -
+-// ---------------
+-
+-#define SOUNDERR_SUCCESS                (0x00000000UL)
+-#define SOUNDERR_GENERAL_ERROR          (0x00000001UL)
+-#define SOUNDERR_CANNOT_LOAD_DRIVER     (0x00000003UL)
+-#define SOUNDERR_DEVICE_LOCKED          (0x00000004UL)
+-#define SOUNDERR_SOUND_NOT_FOUND        (0x00000005UL)
+-#define SOUNDERR_HARDWARE_ERROR         (0x00000006UL)
+-#define SOUNDERR_OUT_OF_MEMORY          (0x00000007UL)
+-#define SOUNDERR_UNSUPPORTED_FUNCTION   (0x00000008UL)
+-#define SOUNDERR_DEVICE_NOT_FOUND       (0x00000009UL)
+-#define SOUNDERR_DEVICE_NOT_READY       (0x0000000aUL)
+-#define SOUNDERR_CANNOT_READ_SOUND      (0x0000000bUL)
+-#define SOUNDERR_INVALID_FILE           (0x0000000cUL)
+-
+-// ------------------
+-// - Sound-Callback	-
+-// ------------------
+-
+-typedef void (*SALSOUNDPROC)( void* pInst, SoundNotification eNotification, ULONG nError );
+-
+-#endif // _SV_SALSTYPE_HXX
+Index: vcl/inc/vcl/settings.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/settings.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.86.1
+diff -u -p -u -p -r1.3 -r1.3.86.1
+--- vcl/inc/vcl/settings.hxx	4 Jun 2007 14:57:34 -0000	1.3
++++ vcl/inc/vcl/settings.hxx	31 Aug 2007 09:44:56 -0000	1.3.86.1
+@@ -1019,55 +1019,6 @@ public:
+                                         { return !(*this == rSet); }
+ };
+ 
+-// -----------------
+-// - ImplSoundData -
+-// -----------------
+-
+-class ImplSoundData
+-{
+-    friend class SoundSettings;
+-
+-                                    ImplSoundData();
+-                                    ImplSoundData( const ImplSoundData& rData );
+-
+-private:
+-    ULONG                           mnRefCount;
+-    ULONG                           mnOptions;
+-};
+-
+-// -----------------
+-// - SoundSettings -
+-// -----------------
+-
+-#define SOUND_OPTION_ON             ((ULONG)0x00000001)
+-#define SOUND_OPTION_NOTIFYBEEP     ((ULONG)0x00000002)
+-#define SOUND_OPTION_WARNINGBEEP    ((ULONG)0x00000004)
+-#define SOUND_OPTION_ERRORBEEP      ((ULONG)0x00000008)
+-
+-class VCL_DLLPUBLIC SoundSettings
+-{
+-    void                            CopyData();
+-
+-private:
+-    ImplSoundData*                  mpData;
+-
+-public:
+-                                    SoundSettings();
+-                                    SoundSettings( const SoundSettings& rSet );
+-                                    ~SoundSettings();
+-
+-    void                            SetOptions( ULONG nOptions )
+-                                        { CopyData(); mpData->mnOptions = nOptions; }
+-    ULONG                           GetOptions() const
+-                                        { return mpData->mnOptions; }
+-
+-    const SoundSettings&            operator =( const SoundSettings& rSet );
+-
+-    BOOL                            operator ==( const SoundSettings& rSet ) const;
+-    BOOL                            operator !=( const SoundSettings& rSet ) const
+-                                        { return !(*this == rSet); }
+-};
+-
+ // ------------------------
+ // - ImplNotificationData -
+ // ------------------------
+@@ -1193,7 +1144,6 @@ private:
+     KeyboardSettings                        maKeyboardSettings;
+     StyleSettings                           maStyleSettings;
+     MiscSettings                            maMiscSettings;
+-    SoundSettings                           maSoundSettings;
+     NotificationSettings                    maNotificationSettings;
+     HelpSettings                            maHelpSettings;
+     ::com::sun::star::lang::Locale          maLocale;
+@@ -1272,11 +1222,6 @@ public:
+     const MiscSettings&                     GetMiscSettings() const
+                                                 { return mpData->maMiscSettings; }
+ 
+-    void                                    SetSoundSettings( const SoundSettings& rSet )
+-                                                { CopyData(); mpData->maSoundSettings = rSet; }
+-    const SoundSettings&                    GetSoundSettings() const
+-                                                { return mpData->maSoundSettings; }
+-
+     void                                    SetNotificationSettings( const NotificationSettings& rSet )
+                                                 { CopyData(); mpData->maNotificationSettings = rSet; }
+     const NotificationSettings&             GetNotificationSettings() const
+Index: vcl/inc/vcl/sound.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/sound.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.136.1
+diff -u -p -u -p -r1.2 -r1.2.136.1
+--- vcl/inc/vcl/sound.hxx	11 Apr 2007 18:11:10 -0000	1.2
++++ vcl/inc/vcl/sound.hxx	31 Aug 2007 09:44:56 -0000	1.2.136.1
+@@ -53,14 +53,9 @@
+ #ifndef _TIME_HXX
+ #include <tools/time.hxx>
+ #endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+ 
+ class Window;
+ class Timer;
+-class SalSound;
+-class RMSound;
+ 
+ // ---------
+ // - Sound -
+@@ -68,70 +63,8 @@ class RMSound;
+ 
+ class VCL_DLLPUBLIC Sound
+ {
+-private:
+-
+-	SalSound*			mpSound;
+-	XubString			maSoundName;
+-	Window* 			mpWindow;
+-	BYTE*				mpSoundData_NOTUSED;
+-	ULONG				mnDataLen;
+-	ULONG				mnSoundLen;
+-	ULONG				mnStartTime;
+-	ULONG				mnPlayTime;
+-	ULONG				mnErrorCode;
+-	SoundNotification	meNotification;
+-	BOOL				mbPlaying;
+-	BOOL				mbLoopMode;
+-    Link                maNotifyHdl;
+-	void*				mpExtraData;
+-
+-private:
+-
+-                        Sound( const Sound& rSound );
+-    Sound&              operator=( const Sound& rSound );
+-
+-//#if 0 // _SOLAR__PRIVATE
+ public:
+-	SAL_DLLPRIVATE void	ImplNotify( SoundNotification eNotification, ULONG nError );
+-//#endif // __PRIVATE
+-
+-public:
+-                        Sound( Window* pWindow = NULL );
+-    virtual             ~Sound();
+-
+-    virtual void        Notify();
+-
+-	void				SetWindow( Window* pWindow ) { mpWindow = pWindow; }
+-	Window* 			GetWindow() const { return mpWindow; }
+-	BOOL				SetSoundName( const XubString& rSoundName );
+-	const XubString& 	GetSoundName() const { return maSoundName; }
+-	ULONG				GetSoundLen() const { return mnSoundLen; }
+-
+-    void				Play();
+-	void				Stop();
+-	void				Pause();
+-    BOOL                IsPlaying() const { return mbPlaying; }
+-
+-	void				SetStartTime( ULONG nStartTime = 0 );
+-	ULONG				GetStartTime() const { return mnStartTime; }
+-	void				SetPlayTime( ULONG nPlayTime = SOUND_PLAYALL );
+-	ULONG				GetPlayTime() const { return mnPlayTime; }
+-	void				SetLoopMode( BOOL bLoop );
+-	BOOL				IsLoopMode() const { return mbLoopMode; }
+-
+-    void                ClearError();
+-    ULONG               GetLastError() const { return mnErrorCode; }
+-    SoundNotification   GetNotification() const { return meNotification; }
+-
+-    void                SetNotifyHdl( const Link& rLink ) { maNotifyHdl = rLink; }
+-    const Link&         GetNotifyHdl() const { return maNotifyHdl; }
+-
+     static void         Beep( SoundType eType = SOUND_DEFAULT, Window* pWindow = NULL );
+-
+-	static void			SetSoundPath( const XubString& rSoundPath );
+-	static const XubString&	GetSoundPath();
+-
+-    static BOOL         IsSoundFile( const XubString& rSoundPath );
+ };
+ 
+ #endif // _SV_SOUND_HXX
+Index: vcl/prj/build.lst
+===================================================================
+RCS file: /cvs/gsl/vcl/prj/build.lst,v
+retrieving revision 1.55
+retrieving revision 1.54.20.2
+diff -u -p -u -p -r1.55 -r1.54.20.2
+--- vcl/prj/build.lst	20 Sep 2007 16:24:09 -0000	1.55
++++ vcl/prj/build.lst	4 Oct 2007 22:03:55 -0000	1.54.20.2
+@@ -1,4 +1,4 @@
+-vc	vcl	:	BOOST:boost NAS:nas FREETYPE:freetype psprint rsc sot ucbhelper unotools ICU:icu i18npool unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx basebmp SNDFILE:sndfile PORTAUDIO:portaudio tools transex3 icc NULL
++vc	vcl	:	BOOST:boost FREETYPE:freetype psprint rsc sot ucbhelper unotools ICU:icu i18npool unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx basebmp tools transex3 icc NULL
+ vc	vcl										usr1	-	all	vc_mkout NULL
+ vc	vcl\inc									nmake	-	all	vc_inc NULL
+ vc	vcl\source\glyphs						nmake	-	all	vc_glyphs vc_inc NULL
+Index: vcl/source/app/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/makefile.mk,v
+retrieving revision 1.21
+retrieving revision 1.21.158.1
+diff -u -p -u -p -r1.21 -r1.21.158.1
+--- vcl/source/app/makefile.mk	6 Feb 2007 14:18:13 -0000	1.21
++++ vcl/source/app/makefile.mk	31 Aug 2007 09:44:57 -0000	1.21.158.1
+@@ -48,10 +48,6 @@ ENABLE_EXCEPTIONS=TRUE
+ 
+ CDEFS+=-DDLLPOSTFIX=$(DLLPOSTFIX)
+ 
+-.IF "$(SYSTEM_NAS)"=="YES"
+-CFLAGS+=-I$(NAS_INCLUDES)
+-.ENDIF
+-
+ # --- Files --------------------------------------------------------
+ 
+ SLOFILES=	$(SLO)$/dbggui.obj		\
+Index: vcl/source/app/salvtables.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/salvtables.cxx,v
+retrieving revision 1.9
+retrieving revision 1.8.22.2
+diff -u -p -u -p -r1.9 -r1.8.22.2
+--- vcl/source/app/salvtables.cxx	9 Oct 2007 15:19:13 -0000	1.9
++++ vcl/source/app/salvtables.cxx	16 Oct 2007 08:32:24 -0000	1.8.22.2
+@@ -41,7 +41,6 @@
+ #include <vcl/salvd.hxx>
+ #include <vcl/salprn.hxx>
+ #include <vcl/saltimer.hxx>
+-#include <vcl/salsound.hxx>
+ #include <vcl/salogl.hxx>
+ #include <vcl/salimestatus.hxx>
+ #include <vcl/salsys.hxx>
+@@ -61,10 +60,6 @@ SalInstance::~SalInstance()
+ {
+ }
+ 
+-SalSound::~SalSound()
+-{
+-}
+-
+ SalTimer::~SalTimer()
+ {
+ }
+Index: vcl/source/app/settings.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/settings.cxx,v
+retrieving revision 1.72
+retrieving revision 1.72.20.1
+diff -u -p -u -p -r1.72 -r1.72.20.1
+--- vcl/source/app/settings.cxx	24 Jul 2007 10:04:42 -0000	1.72
++++ vcl/source/app/settings.cxx	31 Aug 2007 09:44:57 -0000	1.72.20.1
+@@ -1311,98 +1311,6 @@ BOOL MiscSettings::GetEnableLocalizedDec
+     return mpData->mbEnableLocalizedDecimalSep;
+ }
+ 
+-
+-
+-// =======================================================================
+-
+-ImplSoundData::ImplSoundData()
+-{
+-    mnRefCount                  = 1;
+-    mnOptions                   = 0;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-ImplSoundData::ImplSoundData( const ImplSoundData& rData )
+-{
+-    mnRefCount                  = 1;
+-    mnOptions                   = rData.mnOptions;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-SoundSettings::SoundSettings()
+-{
+-    mpData = new ImplSoundData();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-SoundSettings::SoundSettings( const SoundSettings& rSet )
+-{
+-    DBG_ASSERT( rSet.mpData->mnRefCount < 0xFFFFFFFE, "SoundSettings: RefCount overflow" );
+-
+-    // shared Instance Daten uebernehmen und Referenzcounter erhoehen
+-    mpData = rSet.mpData;
+-    mpData->mnRefCount++;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-SoundSettings::~SoundSettings()
+-{
+-    // Daten loeschen, wenn letzte Referenz
+-    if ( mpData->mnRefCount == 1 )
+-        delete mpData;
+-    else
+-        mpData->mnRefCount--;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-const SoundSettings& SoundSettings::operator =( const SoundSettings& rSet )
+-{
+-    DBG_ASSERT( rSet.mpData->mnRefCount < 0xFFFFFFFE, "SoundSettings: RefCount overflow" );
+-
+-    // Zuerst Referenzcounter erhoehen, damit man sich selbst zuweisen kann
+-    rSet.mpData->mnRefCount++;
+-
+-    // Daten loeschen, wenn letzte Referenz
+-    if ( mpData->mnRefCount == 1 )
+-        delete mpData;
+-    else
+-        mpData->mnRefCount--;
+-
+-    mpData = rSet.mpData;
+-
+-    return *this;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void SoundSettings::CopyData()
+-{
+-    // Falls noch andere Referenzen bestehen, dann kopieren
+-    if ( mpData->mnRefCount != 1 )
+-    {
+-        mpData->mnRefCount--;
+-        mpData = new ImplSoundData( *mpData );
+-    }
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-BOOL SoundSettings::operator ==( const SoundSettings& rSet ) const
+-{
+-    if ( mpData == rSet.mpData )
+-        return TRUE;
+-
+-    if ( (mpData->mnOptions             == rSet.mpData->mnOptions) )
+-        return TRUE;
+-    else
+-        return FALSE;
+-}
+-
+ // =======================================================================
+ 
+ ImplNotificationData::ImplNotificationData()
+@@ -1625,7 +1533,6 @@ ImplAllSettingsData::ImplAllSettingsData
+     maKeyboardSettings( rData.maKeyboardSettings ),
+     maStyleSettings( rData.maStyleSettings ),
+     maMiscSettings( rData.maMiscSettings ),
+-    maSoundSettings( rData.maSoundSettings ),
+     maNotificationSettings( rData.maNotificationSettings ),
+     maHelpSettings( rData.maHelpSettings ),
+     maLocale( rData.maLocale ),
+@@ -1795,16 +1702,6 @@ ULONG AllSettings::Update( ULONG nFlags,
+         }
+     }
+ 
+-    if ( nFlags & SETTINGS_SOUND )
+-    {
+-        if ( mpData->maSoundSettings != rSet.mpData->maSoundSettings )
+-        {
+-            CopyData();
+-            mpData->maSoundSettings = rSet.mpData->maSoundSettings;
+-            nChangeFlags |= SETTINGS_SOUND;
+-        }
+-    }
+-
+     if ( nFlags & SETTINGS_NOTIFICATION )
+     {
+         if ( mpData->maNotificationSettings != rSet.mpData->maNotificationSettings )
+@@ -1876,9 +1773,6 @@ ULONG AllSettings::GetChangeFlags( const
+     if ( mpData->maMiscSettings != rSet.mpData->maMiscSettings )
+         nChangeFlags |= SETTINGS_MISC;
+ 
+-    if ( mpData->maSoundSettings != rSet.mpData->maSoundSettings )
+-        nChangeFlags |= SETTINGS_SOUND;
+-
+     if ( mpData->maNotificationSettings != rSet.mpData->maNotificationSettings )
+         nChangeFlags |= SETTINGS_NOTIFICATION;
+ 
+@@ -1909,7 +1803,6 @@ BOOL AllSettings::operator ==( const All
+          (mpData->maKeyboardSettings        == rSet.mpData->maKeyboardSettings)     &&
+          (mpData->maStyleSettings           == rSet.mpData->maStyleSettings)        &&
+          (mpData->maMiscSettings            == rSet.mpData->maMiscSettings)         &&
+-         (mpData->maSoundSettings           == rSet.mpData->maSoundSettings)        &&
+          (mpData->maNotificationSettings    == rSet.mpData->maNotificationSettings) &&
+          (mpData->maHelpSettings            == rSet.mpData->maHelpSettings)         &&
+          (mpData->mnSystemUpdate            == rSet.mpData->mnSystemUpdate)         &&
+Index: vcl/source/app/sound.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/sound.cxx,v
+retrieving revision 1.14
+retrieving revision 1.14.60.1
+diff -u -p -u -p -r1.14 -r1.14.60.1
+--- vcl/source/app/sound.cxx	27 Jun 2007 20:02:09 -0000	1.14
++++ vcl/source/app/sound.cxx	31 Aug 2007 09:44:57 -0000	1.14.60.1
+@@ -48,9 +48,6 @@
+ #ifndef _SV_SVSYS_HXX
+ #include <svsys.h>
+ #endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+ #ifndef _SV_SALFRAME_HXX
+ #include <vcl/salframe.hxx>
+ #endif
+@@ -63,9 +60,6 @@
+ #ifndef _SV_WINDOW_HXX
+ #include <vcl/window.hxx>
+ #endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+ #ifndef _SV_SALBTYPE_HXX
+ #include <vcl/salbtype.hxx>
+ #endif
+@@ -76,194 +70,6 @@
+ #include <vcl/salinst.hxx>
+ #endif
+ 
+-
+-
+-// ----------------------
+-// - SalSound-Callback	-
+-// ----------------------
+-
+-void SalSoundProc( void* pInst, SoundNotification eNotification, ULONG nError )
+-{
+-	( (Sound*) pInst )->ImplNotify( eNotification, nError );
+-}
+-
+-// ---------
+-// - Sound -
+-// ---------
+-
+-Sound::Sound( Window* pWindow ) :
+-			mpWindow		( pWindow ),
+-			mnDataLen		( 0UL ),
+-			mnSoundLen		( 0UL ),
+-			mnStartTime		( 0UL ),
+-			mnPlayTime		( SOUND_PLAYALL ),
+-			mnErrorCode		( 0UL ),
+-			meNotification	( SOUND_NOTIFY_SUCCESS ),
+-			mbPlaying		( FALSE ),
+-			mbLoopMode		( FALSE )
+-{
+-	mpSound = ImplGetSVData()->mpDefInst->CreateSalSound();
+-
+-	if( mpSound->IsValid() )
+-		mpSound->SetNotifyProc( this, SalSoundProc );
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-Sound::~Sound()
+-{
+-	delete mpSound;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::ImplNotify( SoundNotification eNotification, ULONG nError )
+-{
+-	meNotification = eNotification;
+-	mbPlaying = FALSE;
+-
+-	if( SOUND_NOTIFY_ERROR == meNotification )
+-		mnErrorCode = nError;
+-
+-	Notify();
+-
+-	if( maNotifyHdl.IsSet() )
+-		maNotifyHdl.Call( this );
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Notify()
+-{
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-BOOL Sound::SetSoundName( const XubString& rSoundName )
+-{
+-	BOOL bRet( FALSE );
+-
+-	if( !rSoundName.Len() )
+-	{
+-		mnDataLen = 0UL;
+-		mnSoundLen = 0UL;
+-		mnStartTime = 0UL;
+-		mnPlayTime = SOUND_PLAYALL;
+-		mnErrorCode = 0UL;
+-		meNotification = SOUND_NOTIFY_SUCCESS;
+-		mbPlaying = FALSE;
+-		mbLoopMode = FALSE;
+-		bRet = TRUE;
+-
+-		mpSound->Init( rSoundName, mnSoundLen );
+-	}
+-	else if( mpSound->IsValid() )
+-	{
+-		INetURLObject	aSoundURL( rSoundName );
+-		String			aSoundName, aTmp;
+-        BOOL            bValidName( FALSE );
+-
+-        // #106654# Accept only local sound files
+-		if( aSoundURL.GetProtocol() == INET_PROT_FILE )
+-		{
+-			utl::LocalFileHelper::ConvertURLToPhysicalName( aSoundURL.GetMainURL( INetURLObject::NO_DECODE ), aSoundName );
+-            bValidName = TRUE;
+-		}
+-		else if( aSoundURL.GetProtocol() == INET_PROT_NOT_VALID &&
+-                 ::utl::LocalFileHelper::ConvertPhysicalNameToURL( rSoundName, aTmp ) )
+-        {
+-            aSoundName = rSoundName;
+-            bValidName = TRUE;
+-        }
+-		else
+-		{
+-            // no valid sound file name
+-			aSoundName = String();
+-
+-            // #106654# Don't set bRet to true for invalid sound file
+-            // names, but init with empty string, anyway
+-		    mpSound->Init( aSoundName, mnSoundLen );
+-		}
+-
+-        if( bValidName )
+-		    bRet = mpSound->Init( aSoundName, mnSoundLen );
+-	}
+-
+-	maSoundName = rSoundName;
+-
+-	// if sound could not be initialized, but we've gotten _no_
+-	// notification ==> create common error notification
+-	if( !bRet && !mnErrorCode )
+-		ImplNotify( SOUND_NOTIFY_ERROR, SOUNDERR_GENERAL_ERROR );
+-
+-	return bRet;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetStartTime( ULONG nStartTime ) 
+-{
+-	mnStartTime = nStartTime;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetPlayTime( ULONG nPlayTime )
+-{
+-	mnPlayTime = nPlayTime; 
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetLoopMode( BOOL bLoop ) 
+-{
+-	mbLoopMode = bLoop; 
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::ClearError() 
+-{
+-	mnErrorCode = 0; 
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Play()
+-{
+-	BOOL bRet;
+-
+-	if( mpSound->IsValid() && !mnErrorCode )
+-	{
+-		mpSound->Play( mnStartTime, mnPlayTime, mbLoopMode );
+-        mbPlaying = TRUE;
+-	}
+-	else
+-		bRet = FALSE;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Stop()
+-{
+-	mbPlaying = FALSE;
+-	
+-	if( mpSound->IsValid() )
+-		mpSound->Stop();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Pause()
+-{
+-	mbPlaying = FALSE;
+-	
+-	if( mpSound->IsValid() )
+-		mpSound->Pause();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+ void Sound::Beep( SoundType eType, Window* pWindow )
+ {
+     if( !pWindow )
+@@ -274,62 +80,3 @@ void Sound::Beep( SoundType eType, Windo
+     else
+         pWindow->ImplGetFrame()->Beep( eType );
+ }
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetSoundPath( const XubString& )
+-{
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-const XubString& Sound::GetSoundPath()
+-{
+-	return ImplGetSVEmptyStr();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-BOOL Sound::IsSoundFile( const XubString& rSoundPath )
+-{
+-    BOOL bRet = FALSE;
+-
+-    if( rSoundPath.Len() )
+-    {
+-		INetURLObject	aSoundURL( rSoundPath );
+-		String			aSoundName;
+-
+-		if( aSoundURL.GetProtocol() != INET_PROT_NOT_VALID )
+-			aSoundName = aSoundURL.GetMainURL( INetURLObject::NO_DECODE );
+-		else if( !::utl::LocalFileHelper::ConvertPhysicalNameToURL( rSoundPath, aSoundName ) )
+-			aSoundName.Erase();
+-
+-        if( aSoundName.Len() )
+-        {
+-            SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aSoundName, STREAM_READ );
+-
+-            if( pIStm )
+-            {
+-                sal_Char aData[ 12 ];
+-
+-                if( ( pIStm->Read( aData, 12 ) == 12 ) && !pIStm->GetError() )
+-                {
+-                    // check for WAV
+-                    bRet = ( aData[ 0 ] == 'R' && aData[ 1 ] == 'I' && aData[ 2 ] == 'F' && aData[ 3 ] == 'F' &&
+-                             aData[ 8 ] == 'W' && aData[ 9 ] == 'A' && aData[ 10 ] == 'V' && aData[ 11 ] == 'E' );
+-                }
+-
+-                delete pIStm;
+-            }
+-
+-            if( !bRet )
+-            {
+-                // check it the hard way
+-                Sound aTestSound;
+-                bRet = aTestSound.SetSoundName( rSoundPath );
+-            }
+-        }
+-    }
+-
+-    return bRet;
+-}
+Index: vcl/source/app/svmain.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/svmain.cxx,v
+retrieving revision 1.70
+retrieving revision 1.70.22.1
+diff -u -p -u -p -r1.70 -r1.70.22.1
+--- vcl/source/app/svmain.cxx	24 Jul 2007 10:05:33 -0000	1.70
++++ vcl/source/app/svmain.cxx	31 Aug 2007 09:44:57 -0000	1.70.22.1
+@@ -57,9 +57,6 @@
+ #ifndef _SV_SALINST_HXX
+ #include <vcl/salinst.hxx>
+ #endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+ #ifndef _SV_SALOGL_HXX
+ #include <vcl/salogl.hxx>
+ #endif
+Index: vcl/unx/gtk/window/gtkframe.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
+retrieving revision 1.71
+retrieving revision 1.67.12.3
+diff -u -p -u -p -r1.71 -r1.67.12.3
+--- vcl/unx/gtk/window/gtkframe.cxx	9 Oct 2007 15:21:04 -0000	1.71
++++ vcl/unx/gtk/window/gtkframe.cxx	16 Oct 2007 08:32:30 -0000	1.67.12.3
+@@ -2154,9 +2154,17 @@ void GtkSalFrame::UpdateSettings( AllSet
+         ReleaseGraphics( pGraphics );
+ }
+ 
+-void GtkSalFrame::Beep( SoundType /*eType*/ )
++void GtkSalFrame::Beep( SoundType eType )
+ {
+-    gdk_display_beep( getGdkDisplay() );
++    switch( eType )
++    {
++        case SOUND_DEFAULT:
++        case SOUND_ERROR:
++            gdk_display_beep( getGdkDisplay() );
++            break;
++        default:
++            break;
++    }
+ }
+ 
+ const SystemEnvData* GtkSalFrame::GetSystemData() const
+Index: vcl/unx/headless/svpdummies.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpdummies.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpdummies.cxx	24 Jul 2007 10:26:21 -0000	1.2
++++ vcl/unx/headless/svpdummies.cxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -46,44 +46,6 @@ void SvpSalOpenGL::OGLExit( SalGraphics*
+ void SvpSalOpenGL::StartScene( SalGraphics* ) {}
+ void SvpSalOpenGL::StopScene() {}
+ 
+-// SalSound
+-SvpSalSound::~SvpSalSound() {}
+-bool SvpSalSound::IsValid() { return true; }
+-bool SvpSalSound::Init( const String&, ULONG& rSoundLen )
+-{
+-    rSoundLen = 0;
+-    return true;
+-}
+-void SvpSalSound::Play( ULONG, ULONG, bool bLoop )
+-{
+-    m_bPlaying = true;
+-    m_bLooping = bLoop;
+-}
+-void SvpSalSound::Stop()
+-{
+-    m_bPlaying = m_bLooping = false;
+-}
+-void SvpSalSound::Pause()
+-{
+-    m_bPaused = true;
+-}
+-void SvpSalSound::Continue()
+-{
+-    m_bPaused = false;
+-}
+-bool SvpSalSound::IsLoopMode() const
+-{
+-    return m_bLooping;
+-}
+-bool SvpSalSound::IsPlaying() const
+-{
+-    return m_bPlaying;
+-}
+-bool SvpSalSound::IsPaused() const
+-{
+-    return m_bPaused;
+-}
+-
+ // SalObject
+ SvpSalObject::SvpSalObject()
+ {
+Index: vcl/unx/headless/svpdummies.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpdummies.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpdummies.hxx	24 Jul 2007 10:26:33 -0000	1.2
++++ vcl/unx/headless/svpdummies.hxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -36,7 +36,6 @@
+ #ifndef _SVP_SVPDUMMIES_HXX
+ 
+ #include <vcl/salogl.hxx>
+-#include <vcl/salsound.hxx>
+ #include <vcl/salobj.hxx>
+ #include <vcl/sysdata.hxx>
+ #include <vcl/salimestatus.hxx>
+@@ -59,28 +58,6 @@ public:					
+ 	virtual void		StopScene();
+ };
+ 
+-class SvpSalSound : public SalSound
+-{
+-    bool m_bPlaying;
+-    bool m_bLooping;
+-    bool m_bPaused;
+-public:
+-    SvpSalSound() : m_bPlaying( false ), m_bLooping( false ), m_bPaused( false ) {}
+-	virtual ~SvpSalSound();
+-	
+-    // overload all pure virtual methods
+-    virtual bool		IsValid();
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen );
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+-	virtual void		Stop();
+-	virtual void		Pause();
+-	virtual void		Continue();
+-    virtual bool		IsLoopMode() const;
+-	virtual bool		IsPlaying() const;
+-    virtual bool		IsPaused() const;
+-};
+-
+ class SvpSalObject : public SalObject
+ {
+ public:
+Index: vcl/unx/headless/svpinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpinst.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpinst.cxx	24 Jul 2007 10:27:49 -0000	1.2
++++ vcl/unx/headless/svpinst.cxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -269,11 +269,6 @@ void SvpSalInstance::DestroyVirtualDevic
+     delete pDevice;
+ }
+ 
+-SalSound* SvpSalInstance::CreateSalSound()
+-{
+-    return new SvpSalSound();
+-}
+-
+ SalTimer* SvpSalInstance::CreateSalTimer()
+ {
+     return new SvpSalTimer( this );
+Index: vcl/unx/headless/svpinst.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpinst.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpinst.hxx	24 Jul 2007 10:27:59 -0000	1.2
++++ vcl/unx/headless/svpinst.hxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -166,8 +166,6 @@ public:
+     virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String          GetDefaultPrinter();
+ 
+-    // SalSound
+-    virtual SalSound*		CreateSalSound();
+     // SalTimer
+     virtual SalTimer*		CreateSalTimer();
+     // SalOpenGL
+Index: vcl/unx/inc/postx.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/postx.h,v
+retrieving revision 1.5
+retrieving revision 1.5.408.1
+diff -u -p -u -p -r1.5 -r1.5.408.1
+--- vcl/unx/inc/postx.h	19 Jun 2006 19:46:31 -0000	1.5
++++ vcl/unx/inc/postx.h	31 Aug 2007 09:44:57 -0000	1.5.408.1
+@@ -69,9 +69,6 @@
+ #undef InitializeToken
+ #undef NextRequest
+ 
+-/* Network Audio System */
+-#undef Sound
+-
+ #ifdef KeyPress
+ #if KeyPress != 2
+ Error KeyPress must be Equal 2
+Index: vcl/unx/inc/prex.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/prex.h,v
+retrieving revision 1.15
+retrieving revision 1.15.116.1
+diff -u -p -u -p -r1.15 -r1.15.116.1
+--- vcl/unx/inc/prex.h	26 Apr 2007 10:40:23 -0000	1.15
++++ vcl/unx/inc/prex.h	31 Aug 2007 09:44:57 -0000	1.15.116.1
+@@ -51,9 +51,6 @@
+ #define Region		XLIB_Region
+ #define Boolean		XLIB_Boolean
+ 
+-/* fuer Network Audio System */
+-#define Sound		XLIB_Sound
+-
+ #if defined __cplusplus
+ extern "C" {
+ #endif
+Index: vcl/unx/inc/salinst.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/salinst.h,v
+retrieving revision 1.14
+retrieving revision 1.14.60.1
+diff -u -p -u -p -r1.14 -r1.14.60.1
+--- vcl/unx/inc/salinst.h	27 Jun 2007 20:41:36 -0000	1.14
++++ vcl/unx/inc/salinst.h	31 Aug 2007 09:44:57 -0000	1.14.60.1
+@@ -108,7 +108,6 @@ public:
+     virtual void				DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String             GetDefaultPrinter();
+ 
+-    virtual SalSound*			CreateSalSound();
+     virtual SalTimer*			CreateSalTimer();
+     virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+Index: vcl/unx/inc/salsound.h
+===================================================================
+RCS file: vcl/unx/inc/salsound.h
+diff -N vcl/unx/inc/salsound.h
+--- vcl/unx/inc/salsound.h	27 Jun 2007 20:42:40 -0000	1.5
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,93 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.h,v $
+- *
+- *  $Revision: 1.5 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:42:40 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_H
+-#define _SV_SALSOUND_H
+-
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-namespace vcl_sal { class VSound; }
+-
+-class X11SalSound : public SalSound
+-{
+-// public for VSound sub classes
+-public:
+-	// the real sound
+-	vcl_sal::VSound*		m_pVSound;
+-	
+-	// the sound to play
+-	ByteString				m_aSoundFile;
+-	
+-	// state data
+-	bool					m_bLoop;
+-	bool					m_bPlaying;
+-	bool					m_bPaused;
+-	
+-	ULONG					m_nStartTime;
+-	ULONG					m_nPlayTime;
+-	
+-	static ULONG			s_nSoundState;
+-	
+-	void changeStateStop();
+-	void changeStatePause();
+-	void changeStateCont();
+-	void changeStatePlay();
+-	void setError( ULONG );
+-public:
+-    X11SalSound();
+-	virtual ~X11SalSound();
+-	
+-    // overload all pure virtual methods
+-    virtual bool		IsValid();
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen );
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+-	virtual void		Stop();
+-	virtual void		Pause();
+-	virtual void		Continue();
+-    virtual bool		IsLoopMode() const;
+-	virtual bool		IsPlaying() const;
+-    virtual bool		IsPaused() const;
+-	
+-	static void Release();
+-};
+-
+-#endif // _SV_SALSOUND_HXX
+Index: vcl/unx/source/app/audioconvert.cxx
+===================================================================
+RCS file: vcl/unx/source/app/audioconvert.cxx
+diff -N vcl/unx/source/app/audioconvert.cxx
+--- vcl/unx/source/app/audioconvert.cxx	17 Sep 2006 12:31:15 -0000	1.3
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,166 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: audioconvert.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:31:15 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#include <vsound.hxx>
+-
+-using namespace vcl_sal;
+-
+-#include <sunconvert.cxx>
+-
+-AudioConverter::~AudioConverter()
+-{
+-}
+-
+-class G721ToULawConverter : public AudioConverter
+-{
+-	g72x_state		m_aState;
+-public:
+-	G721ToULawConverter();
+-	virtual ~G721ToULawConverter();
+-
+-	virtual void reset();
+-	virtual char* convert( char* In, int nBytesIn, int& nBytesOut );
+-};
+-
+-G721ToULawConverter::G721ToULawConverter()
+-{
+-	reset();
+-}
+-
+-G721ToULawConverter::~G721ToULawConverter()
+-{
+-}
+-
+-void G721ToULawConverter::reset()
+-{
+-	g72x_init_state( &m_aState );
+-}
+-
+-char* G721ToULawConverter::convert(
+-	char* pBuffer,
+-	int nBytesIn,
+-	int& nBytesOut )
+-{
+-	char* pRet = new char[ nBytesOut = nBytesIn*2 ];
+-	for( int m=0; m < nBytesOut; m++ )
+-		pRet[ m ] = (g721_decoder(
+-			m & 1 ? pBuffer[ m/2 ] >> 4 : pBuffer[ m/2 ] & 0x0f,
+-			AUDIO_ENCODING_ULAW,
+-			&m_aState ) & 0xff);
+-
+-	return pRet;
+-}
+-
+-AudioConverter* AudioConverter::createG721ToULawConverter()
+-{
+-	return new G721ToULawConverter;
+-}
+-
+-
+-class INT8ToUINT16Converter : public AudioConverter
+-{
+-public:
+-	INT8ToUINT16Converter() {}
+-	virtual ~INT8ToUINT16Converter();
+-
+-	virtual void reset();
+-	virtual char* convert( char* In, int nBytesIn, int& nBytesOut );
+-};
+-
+-INT8ToUINT16Converter::~INT8ToUINT16Converter()
+-{
+-}
+-
+-void INT8ToUINT16Converter::reset()
+-{
+-}
+-
+-char* INT8ToUINT16Converter::convert( char* pBuffer, int nBytesIn, int& nBytesOut )
+-{
+-	unsigned short* pShorts = new unsigned short[ nBytesIn ];
+-	nBytesOut = 2*nBytesIn;
+-
+-	for( int i=0; i < nBytesIn; i++ )
+-	{
+-		signed char cByte = pBuffer[ i ];
+-		int nValue = cByte;
+-		nValue += 128;
+-		pShorts[ i ] = 257*nValue;
+-	} 
+-	return (char*)pShorts;
+-}
+-
+-AudioConverter* AudioConverter::createINT8ToUINT16Converter()
+-{
+-	return new INT8ToUINT16Converter();
+-}
+-
+-class SwapINT16Converter : public AudioConverter
+-{
+-public:
+-	SwapINT16Converter() {}
+-	virtual ~SwapINT16Converter();
+-
+-	virtual void reset();
+-	virtual char* convert( char* In, int nBytesIn, int& nBytesOut );
+-};
+-
+-SwapINT16Converter::~SwapINT16Converter()
+-{
+-}
+-
+-void SwapINT16Converter::reset()
+-{
+-}
+-
+-char* SwapINT16Converter::convert( char* In, int nBytesIn, int& nBytesOut )
+-{
+-	char* pRet = new char[ nBytesOut = nBytesIn ];
+-
+-	for( int i = 0; i < nBytesIn; i+=2 )
+-	{
+-		pRet[ i   ] = In[ i+1 ];
+-		pRet[ i+1 ] = In[ i ];
+-	}
+-	return pRet;
+-}
+-
+-AudioConverter* AudioConverter::createSwapINT16Converter()
+-{
+-	return new SwapINT16Converter();
+-}
+Index: vcl/unx/source/app/devaudiosound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/devaudiosound.cxx
+diff -N vcl/unx/source/app/devaudiosound.cxx
+--- vcl/unx/source/app/devaudiosound.cxx	27 Jun 2007 20:45:27 -0000	1.15
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,547 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: devaudiosound.cxx,v $
+- *
+- *  $Revision: 1.15 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:45:27 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#include <vcl/svapp.hxx>
+-
+-#ifdef USE_DEVAUDIO
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <stdio.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <sys/ioctl.h>
+-#include <sys/audioio.h>
+-#include <errno.h>
+-
+-#ifndef _SAL_TYPES_H_
+-#include <sal/types.h>
+-#endif
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace osl;
+-
+-int									DevAudioSound::s_nDevice = -1;
+-DevAudioDataList					DevAudioSound::s_aDataList;
+-osl::Mutex							DevAudioSound::s_aProtector;
+-DevAudioSoundList					DevAudioSound::s_aSounds;
+-
+-static const char* getAudioDevName()
+-{
+-    static const char* pDev = NULL;
+-    if( ! pDev )
+-    {
+-        pDev = getenv( "AUDIODEV" );
+-        if( ! pDev || ! *pDev )
+-            pDev = "/dev/audio";
+-    }
+-    return pDev;
+-}
+-
+-BOOL DevAudioSound::open()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice == -1 )
+-	{
+-		s_nDevice = ::open( getAudioDevName(), O_WRONLY | O_NDELAY );
+-		if( s_nDevice == -1 )
+-		{
+-			SalDbgAssert( "ERROR: could not open %s, errno=%d\n", getAudioDevName(), errno );
+-			return FALSE;
+-		}
+-#if OSL_DEBUG_LEVEL > 1
+-		audio_device_t aDevice;
+-		if( ! ioctl( s_nDevice, AUDIO_GETDEV, &aDevice ) )
+-		  SalDbgAssert( "\nopened %s of type:\nName: %s\nVersion: %s\nConfig: %s\n\n",
+-			   getAudioDevName(), aDevice.name, aDevice.version, aDevice.config );
+-#endif
+-	}
+-	else
+-	{
+-		// sadly there is no documented reset control for /dev/audio
+-		// ioctl( s_nDevice, SNDCTL_DSP_RESET, 0 );
+-	}
+-	return TRUE;
+-}
+-
+-void DevAudioSound::close()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice != -1 )
+-	{
+-	  ioctl( s_nDevice, AUDIO_DRAIN, NULL );
+-		::close( s_nDevice );
+-	}
+-	s_nDevice = -1;
+-}
+-
+-BOOL DevAudioSound::startSound( DevAudioData* pData )
+-{
+-	if( pData && pData->m_pSound && pData->m_pSound->m_pBuffer &&
+-		s_nDevice >= 0 )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer, ".snd", 4 ) )
+-			return startAU( pData );
+-		else if( ! strncmp( pData->m_pSound->m_pBuffer, "RIFF", 4 ) )
+-			return startRIFF( pData );
+-	}
+-	return FALSE;
+-}
+-
+-BOOL DevAudioSound::startAU( DevAudioData* pData )
+-{
+-	char* pBuffer = pData->m_pSound->m_pBuffer;
+-	ULONG nDataOffset	= readBELong( pBuffer + 4 );
+-	ULONG nDataLen		= readBELong( pBuffer + 8 );
+-	ULONG nEncoding		= readBELong( pBuffer + 12 );
+-	ULONG nSampleRate	= readBELong( pBuffer + 16 );
+-	ULONG nChannels		= readBELong( pBuffer + 20 );
+-
+-	if( nDataLen == ~0 )
+-		nDataLen = pData->m_pSound->m_aStat.st_size - nDataOffset;
+-
+-	pData->m_nDataLen	= nDataLen;
+-	pData->m_nStartPos	= nDataOffset;
+-	pData->m_nEndPos	= pData->m_nStartPos + pData->m_nDataLen;
+-
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-
+-	audio_info_t aAudioInfo;
+-	AUDIO_INITINFO( &aAudioInfo );
+-
+-	aAudioInfo.play.gain 			= 127;
+-	aAudioInfo.play.channels		= nChannels;
+-	aAudioInfo.play.sample_rate		= nSampleRate;
+-	switch( nEncoding )
+-	{
+-		case 1:
+-			aAudioInfo.play.encoding = AUDIO_ENCODING_ULAW;
+-			break;
+-		case 2:
+-			aAudioInfo.play.precision	= 8;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-			break;
+-		case 3:
+-			aAudioInfo.play.precision	= 16;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-			break;
+-		case 23:
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_ULAW;
+-			pData->m_pConverter = AudioConverter::createG721ToULawConverter();
+-			break;
+-		default:
+-			SalDbgAssert( "au format %d unsupported\n", nEncoding );
+-			return FALSE;
+-	};
+-
+-	if( ioctl( s_nDevice, AUDIO_SETINFO, &aAudioInfo ) )
+-	{
+-		SalDbgAssert( "ERROR: ioctl AUDIO_SETINFO failed\n" );
+-		return FALSE;
+-	}
+-
+-	SalDbgAssert( "playing %d data bytes at %d bytes/s in format %d on %d channels \n", pData->m_nDataLen, nSampleRate, nEncoding, nChannels );
+-	return TRUE;
+-}
+-
+-BOOL DevAudioSound::startRIFF( DevAudioData* pData )
+-{
+-	int nPos = findChunk( pData, "fmt " );
+-	if( nPos == -1 )
+-		return FALSE;
+-
+-	int nFormat		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 8 );
+-	int nChannels	= readLEShort( pData->m_pSound->m_pBuffer + nPos + 10 );
+-	int nSampleRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 12 );
+-	int nByteRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 16 );
+-	int nAlign		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 20 );
+-	SalDbgAssert( "format is tag = %x, channels = %d, samplesPerSec = %d, avgBytesPerSec = %d, blockAlign = %d\n", nFormat, nChannels, nSampleRate, nByteRate, nAlign );
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-
+-	int nBitsPerSample = 0;
+-	switch( nFormat )
+-	{
+-		default:
+-			SalDbgAssert( "unknown format\n" );
+-			return FALSE;
+-		case 1:
+-			nBitsPerSample = readLEShort( pData->m_pSound->m_pBuffer + nPos + 22 );
+-			break;
+-	}
+-
+-	nPos = findChunk( pData, "data" );
+-	if( nPos == -1 )
+-	{
+-		SalDbgAssert( "ERROR: no \"data\" chunk found\n" );
+-		return FALSE;
+-	}
+-
+-	pData->m_nDataLen = readLEInt( pData->m_pSound->m_pBuffer + nPos + 4 );
+-	pData->m_nStartPos = nPos+8;
+-	pData->m_nEndPos = pData->m_nStartPos + pData->m_nDataLen;
+-
+-	audio_info_t aAudioInfo;
+-	AUDIO_INITINFO( &aAudioInfo );
+-
+-	aAudioInfo.play.gain 			= 127;
+-	aAudioInfo.play.channels		= nChannels;
+-	aAudioInfo.play.sample_rate		= nSampleRate;
+-	switch( nBitsPerSample )
+-	{
+-		case 8:
+-#if defined SOLARIS && defined SPARC
+-			aAudioInfo.play.precision	= 16;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-			pData->m_pConverter = AudioConverter::createINT8ToUINT16Converter();
+-#else
+-			aAudioInfo.play.precision	= 8;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-#endif
+-			break;
+-		case 16:
+-			aAudioInfo.play.precision	= 16;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-#ifdef SPARC
+-			pData->m_pConverter = AudioConverter::createSwapINT16Converter();
+-#endif
+-			break;
+-		default:
+-			SalDbgAssert( "%d bits per sample is not usable\n", nBitsPerSample );
+-			return FALSE;
+-	};
+-
+-	if( ioctl( s_nDevice, AUDIO_SETINFO, &aAudioInfo ) )
+-	{
+-		SalDbgAssert( "ERROR: ioctl AUDIO_SETINFO failed\n" );
+-		return FALSE;
+-	}
+-
+-	SalDbgAssert( "playing %d data bytes at %d bytes/s in %d bits quality on %d channels \n", pData->m_nDataLen, nSampleRate, nBitsPerSample, nChannels );
+-	return TRUE;
+-}
+-
+-int DevAudioSound::findChunk( DevAudioData* pData, const char* pChunk )
+-{
+-	if( !pData || ! pData->m_pSound || ! pData->m_pSound->m_pBuffer )
+-		return -1;
+-
+-	int nPos = 12;
+-	while( nPos < pData->m_pSound->m_aStat.st_size )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer+nPos, pChunk, 4 ) )
+-			return nPos;
+-
+-		// get LSB int length
+-		nPos += readLEInt( pData->m_pSound->m_pBuffer+nPos+4 ) + 8;
+-	}
+-	return -1;
+-}
+-
+-short int DevAudioSound::readLEShort( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	short int nRet = *pBuffer++;
+-	nRet |= *pBuffer << 8;
+-
+-	return nRet;
+-}
+-
+-ULONG DevAudioSound::readBELong( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	ULONG nRet	 = *pBuffer++ << 24;
+-	nRet		|= *pBuffer++ << 16;
+-	nRet		|= *pBuffer++ << 8;
+-	nRet		|= *pBuffer;
+-
+-	return nRet;
+-}
+-
+-int DevAudioSound::readLEInt( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	int nRet = *pBuffer++;
+-	nRet |= (int)(*pBuffer++) << 8;
+-	nRet |= (int)(*pBuffer++) << 16;
+-	nRet |= (int)(*pBuffer++) << 24;
+-
+-	return nRet;
+-}
+-
+-static oslThread aThreadWorker= NULL;
+-extern "C" {
+-    void SAL_CALL DevAudioThreadWorker(void*)
+-    {
+-        DevAudioSound::run();
+-    }
+-}
+-
+-void DevAudioSound::run()
+-{
+-	SalDbgAssert( "DevAudioWorker::run\n" );
+-	DevAudioData* pData;
+-    if( open() )
+-    {
+-        do
+-        {
+-            ResettableMutexGuard aGuard( s_aProtector );
+-            pData = s_aDataList.Count() ? s_aDataList.GetObject( 0 ) : NULL;
+-            if( ! pData )
+-                break;
+-
+-            bool bDataValid = true;
+-            if( startSound( pData ) )
+-            {
+-                pData->m_nCurPos = pData->m_nStartPos;
+-                while( pData->m_nCurPos < pData->m_nEndPos )
+-                {
+-                    int nBytes = 4096;
+-
+-                    char* pBuffer = pData->m_pSound->m_pBuffer;
+-
+-                    if( pData->m_nCurPos + nBytes > pData->m_nEndPos )
+-                        nBytes = pData->m_nEndPos - pData->m_nCurPos;
+-
+-                    if( pData->m_pConverter )
+-                    {
+-                        int nBytesOut;
+-                        char* pConvBuffer = pData->m_pConverter->convert( pBuffer + pData->m_nCurPos, nBytes, nBytesOut );
+-                        write( s_nDevice, pConvBuffer, nBytesOut );
+-                        delete pConvBuffer;
+-                    }
+-                    else
+-                    {
+-                        nBytes = write( s_nDevice,
+-                                        pBuffer + pData->m_nCurPos, nBytes );
+-                    }
+-                    pData->m_nCurPos += nBytes;
+-
+-                    aGuard.clear();
+-                    TimeValue aVal;
+-                    aVal.Seconds = 0;
+-                    aVal.Nanosec = 50000000;
+-                    osl_waitThread( &aVal );
+-                    aGuard.reset();
+-
+-                    if( s_aDataList.GetObject( 0 ) != pData )
+-                    {
+-                        bDataValid = false;
+-                        break;
+-                    }
+-                }
+-                if( bDataValid )
+-                {
+-                    if( pData->m_pSound->m_pSalSound->m_bLoop )
+-                        pData->m_pSound->play();
+-                    else
+-                    {
+-                        // /dev/audio does not seem to have a mechanism to request
+-                        // wether the device is actually playing. Therefore
+-                        // we need to synchronzie before signaling sound stop
+-                        ioctl( s_nDevice, AUDIO_DRAIN, NULL );
+-                        Application::PostUserEvent( LINK( pData->m_pSound, DevAudioSound, notifyStopHdl ), NULL );
+-                    }
+-                }
+-            }
+-            else
+-				Application::PostUserEvent( LINK( pData->m_pSound, DevAudioSound, notifyErrorHdl ), (void*)SOUNDERR_INVALID_FILE );
+-
+-            s_aDataList.Remove( pData );
+-            delete pData;
+-        } while( pData );
+-        close();
+-    }
+-
+-    MutexGuard aGuard( s_aProtector );
+-    osl_destroyThread( aThreadWorker );
+-    aThreadWorker = NULL;
+-}
+-
+-void DevAudioSound::append( DevAudioSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	s_aDataList.Insert( new DevAudioData( pSound ), LIST_APPEND );
+-	if( ! aThreadWorker )
+-        aThreadWorker = osl_createThread( DevAudioThreadWorker, NULL );
+-}
+-
+-void DevAudioSound::remove( DevAudioSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	DevAudioData* pData;
+-	for( int i = s_aDataList.Count()-1; i >= 0; i-- )
+-	{
+-		pData = s_aDataList.GetObject( i );
+-		if( pData->m_pSound == pSound )
+-		{
+-			s_aDataList.Remove( i );
+-			if( i > 0 )
+-				delete pData;
+-		}
+-	}
+-}
+-
+-DevAudioSound::DevAudioSound( ::X11SalSound* pSound ) :
+-		VSound( pSound )
+-{
+-	initBuffer();
+-	s_aSounds.Insert( this );
+-}
+-
+-DevAudioSound::~DevAudioSound()
+-{
+-	stop();
+-	if( m_pBuffer )
+-		releaseBuffer();
+-	s_aSounds.Remove( this );
+-}
+-
+-BOOL DevAudioSound::isValid()
+-{
+-	if( ! m_pBuffer )
+-		return FALSE;
+-
+-    if( s_nDevice == -1 )
+-    {
+-        int nTryOpen = ::open( getAudioDevName(), O_WRONLY | O_NDELAY );
+-        if( nTryOpen == -1 )
+-            return FALSE;
+-        ::close( nTryOpen );
+-    }
+-
+-	// check for valid file format
+-	if( ! strncmp( "RIFF", m_pBuffer, 4 ) )
+-	{
+-		DevAudioData aData( this );
+-
+-		// check for data chunk
+-		if( findChunk( &aData, "data" ) == -1 )
+-			goto failed;
+-		int nPos = findChunk( &aData, "fmt " );
+-		if( nPos == -1 )
+-			goto failed;
+-
+-		int nFormat		= readLEShort( m_pBuffer + nPos + 8 );
+-		int nChannels	= readLEShort( m_pBuffer + nPos + 10 );
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		// check formats
+-		// playable is MS-PCM only at now
+-		if( nFormat != 1 )
+-			goto failed;
+-		return TRUE;
+-	}
+-	else if( ! strncmp( ".snd", m_pBuffer, 4 ) )
+-	{
+-		ULONG nEncoding		= readBELong( m_pBuffer + 12 );
+-		ULONG nChannels		= readBELong( m_pBuffer + 20 );
+-
+-		// check for playable encodings
+-		if( nEncoding != 1 && nEncoding != 2 && nEncoding != 3 && nEncoding != 23 )
+-			goto failed;
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		return TRUE;
+-	}
+-  failed:
+-	releaseBuffer();
+-	return FALSE;
+-}
+-
+-void DevAudioSound::play()
+-{
+-	if( ! m_pBuffer )
+-		return;
+-
+-	append( this );
+-	m_pSalSound->m_bPlaying	= TRUE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void DevAudioSound::stop()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPlaying	= FALSE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void DevAudioSound::pause()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPaused = TRUE;
+-}
+-
+-void DevAudioSound::cont()
+-{
+-	play();
+-}
+-
+-IMPL_LINK( DevAudioSound, notifyStopHdl, void*, EMPTYARG )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->changeStateStop();
+-	}
+-	return 0;
+-}
+-
+-IMPL_LINK( DevAudioSound, notifyErrorHdl, void*, nError )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->setError( (ULONG)nError );
+-	}
+-	return 0;
+-}
+-
+-#endif
+Index: vcl/unx/source/app/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/app/makefile.mk,v
+retrieving revision 1.28
+retrieving revision 1.28.16.1
+diff -u -p -u -p -r1.28 -r1.28.16.1
+--- vcl/unx/source/app/makefile.mk	31 Jul 2007 13:01:37 -0000	1.28
++++ vcl/unx/source/app/makefile.mk	31 Aug 2007 09:44:58 -0000	1.28.16.1
+@@ -69,13 +69,7 @@ SLOFILES=\
+ 			$(SLO)$/soicon.obj			\
+ 			$(SLO)$/sm.obj				\
+ 			$(SLO)$/keysymnames.obj		\
+-			$(SLO)$/wmadaptor.obj		\
+-			$(SLO)$/salsound2.obj		\
+-			$(SLO)$/osssound.obj		\
+-			$(SLO)$/devaudiosound.obj		\
+-			$(SLO)$/audioconvert.obj		\
+-			$(SLO)$/rptpsound.obj		\
+-			$(SLO)$/nassound.obj		
++			$(SLO)$/wmadaptor.obj
+ 
+ EXCEPTIONSFILES=\
+ 			$(SLO)$/wmadaptor.obj		\
+@@ -87,22 +81,6 @@ EXCEPTIONSFILES=\
+             $(SLO)$/salsys.obj
+ 
+ 
+-.IF "$(ENABLE_NAS)" != ""
+-CDEFS+=-DUSE_NAS
+-.ENDIF
+-
+-.IF "$(ENABLE_PASF)" != ""
+-CDEFS+=-DUSE_PASF -DPA_VER=$(PA_VER)
+-SLOFILES+=$(SLO)$/pasfsound.obj
+-.IF "$(SYSTEM_SNDFILE)" == "YES"
+-CDEFS+=-DSYSTEM_SNDFILE
+-CFLAGS+=$(SNDFILE_CFLAGS)
+-.ENDIF
+-.IF "$(SYSTEM_PORTAUDIO)" == "YES"
+-CDEFS+=-DSYSTEM_PORTAUDIO
+-.ENDIF
+-.ENDIF
+-
+ .IF "$(USE_XINERAMA)" != "NO"
+ CDEFS+=-DUSE_XINERAMA
+ .IF "$(USE_XINERAMA_VERSION)" == "Xorg"
+Index: vcl/unx/source/app/nassound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/nassound.cxx
+diff -N vcl/unx/source/app/nassound.cxx
+--- vcl/unx/source/app/nassound.cxx	17 Sep 2006 12:33:50 -0000	1.10
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,278 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: nassound.cxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:33:50 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#include <salimpsound.hxx>
+-#include <salsound.h>
+-
+-#ifdef USE_NAS
+-
+-#define INT8 AU_INT8
+-#include <audio/audiolib.h>
+-#include <audio/soundlib.h>
+-#undef INT8
+-
+-#include <salunx.h>
+-#include <saldata.hxx>
+-#include <saldisp.hxx>
+-
+-#include <unistd.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-
+-BOOL						NASSound::s_bFailedOnce = FALSE;
+-NASSound::NASSoundList		NASSound::s_aSounds;
+-void*						NASSound::s_pServer = NULL;
+-
+-void NASSound::callback( void*, void*, void* event, void* pThis )
+-{
+-	SalDbgAssert( "NASSound::callback called\n" );
+-
+-	NASSound* pSound = (NASSound*)pThis;
+-	if( s_aSounds.GetPos( pSound ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		AuEvent* pEvent = (AuEvent*)event;
+-		SalDbgAssert( "   on event type %d\n", pEvent->type );
+-		if( pSound->m_pSalSound &&
+-			pEvent->type == AuEventTypeElementNotify )
+-		{
+-			switch( pEvent->auelementnotify.cur_state )
+-			{
+-				case AuStateStop:
+-				{
+-					pSound->m_nFlowID = 0;
+-					pSound->m_pSalSound->changeStateStop();
+-					break;
+-				}
+-				case AuStatePause:
+-					pSound->m_pSalSound->changeStatePause();
+-					break;
+-				case AuStateStart:
+-					pSound->m_pSalSound->changeStateCont();
+-					break;
+-				default:
+-					break;
+-			}
+-		}
+-	}
+-	else
+-		SalDbgAssert( "NASSound %p is adressed in callback but unknown !\n", pSound );
+-}
+-
+-BOOL NASSound::connect()
+-{
+-	if( ! s_pServer && ! s_bFailedOnce )
+-	{
+-		char* pServerMessage = NULL;
+-		s_pServer = AuOpenServer( NULL, 0, NULL, 0, NULL, &pServerMessage );
+-		if( ! s_pServer )
+-		{
+-			SalDbgAssert( "AuOpenServer failed: %s\n",
+-						  pServerMessage ?
+-						  pServerMessage : "<unknown reason>" );
+-			AuFree( pServerMessage );
+-			s_bFailedOnce = TRUE;
+-		}
+-		else
+-		{
+-			GetX11SalData()->GetLib()->Insert( AuServerConnectionNumber( (AuServer*)s_pServer ),
+-											NULL,
+-											(YieldFunc)pending,
+-											(YieldFunc)queued,
+-											(YieldFunc)handleEvents );
+-			SalDbgAssert( "AudioConnectionNumber is %d, DisplayConnectionNumber is %d\n",
+-						  AuServerConnectionNumber( (AuServer*)s_pServer ),
+-						  ConnectionNumber( GetX11SalData()->GetDisplay()->GetDisplay() ) );
+-		}
+-	}
+-	return s_pServer ? TRUE : FALSE;
+-}
+-
+-void NASSound::disconnect()
+-{
+-	if( s_pServer )
+-	{
+-		GetX11SalData()->GetLib()->Remove( AuServerConnectionNumber( (AuServer*)s_pServer ) );
+-		AuCloseServer( (AuServer*)s_pServer );
+-		s_pServer = NULL;
+-	}
+-}
+-
+-int NASSound::pending( int, void* )
+-{
+-	return s_pServer ? AuEventsQueued( (AuServer*)s_pServer, AuEventsQueuedAlready ) : 0;
+-}
+-
+-int NASSound::queued( int fd, void* pDummy )
+-{
+-	return pending( fd, pDummy );
+-}
+-
+-int NASSound::handleEvents( int, void* )
+-{
+-	if( s_pServer )
+-	{
+-		for( int i = pending(0,0); i && s_pServer; i-- )
+-		{
+-			AuEvent aEvent;
+-			AuNextEvent( (AuServer*)s_pServer, AuTrue, &aEvent );
+-			AuDispatchEvent( (AuServer*)s_pServer, &aEvent );
+-		}
+-	}
+-	return 1;
+-}
+-
+-NASSound::NASSound( ::X11SalSound* pSalSound ) :
+-		VSound( pSalSound ),
+-		m_nFlowID( 0 )
+-{
+-	s_aSounds.Insert( this );
+-}
+-
+-NASSound::~NASSound()
+-{
+-	s_aSounds.Remove( this );
+-	if( s_aSounds.Count() < 1 )
+-		disconnect();
+-}
+-
+-void NASSound::play()
+-{
+-	BOOL bStarted = FALSE;
+-
+-	if( ! s_pServer )
+-		connect();
+-	
+-	if( s_pServer && m_pSalSound )
+-	{
+-		AuFlowID aID;
+-		AuStatus aStatus;
+-		if( AuSoundPlayFromFile( (AuServer*)s_pServer,
+-								 m_pSalSound->m_aSoundFile.GetBuffer(),
+-								 AuNone,
+-								 AuFixedPointFromSum( 1, 0 ),
+-								 (void(*)(AuServer*,AuEventHandlerRec*,AuEvent*,void*))callback,
+-								 (AuPointer)this,
+-								 &aID,
+-								 NULL,
+-								 NULL,
+-								 &aStatus )
+-			)
+-		{
+-			SalDbgAssert( "AuSoundPlayFromFile yields flow id %d and status %d\n",
+-						  aID, aStatus );
+-
+- 			AuElementState aState;
+- 			aState.flow = aID;
+- 			aState.element_num = 0;
+- 			for( int n = 0; n < 20 && ! bStarted; n++ )
+- 			{
+-                TimeValue aVal;
+-                aVal.Seconds = 0;
+-                aVal.Nanosec = 20000000;
+-                osl_waitThread( &aVal );
+- 				AuHandleEvents( (AuServer*)s_pServer );
+-
+- 				int nStates = 1;
+- 				AuElementState* pState =
+- 					AuGetElementStates( (AuServer*)s_pServer,
+- 										&nStates,
+- 										&aState,
+- 										&aStatus );
+- 				if( pState )
+- 				{
+- 					if( pState->state == AuStateStart )
+- 						bStarted = TRUE;
+- 					AuFreeElementStates( (AuServer*)s_pServer,
+- 										 1, pState );
+- 				}
+- 				else
+- 				{
+- 					SalDbgAssert( "AuGetElementStates failed\n" );
+- 					break;
+- 				}
+- 			}
+-
+-            if ( bStarted )
+-			    SalDbgAssert( "   sound started\n" );
+-            else
+-			    SalDbgAssert( "   sound failed to start\n" );
+-
+-			m_pSalSound->m_bPlaying = bStarted;
+-			if( bStarted )
+-				m_nFlowID = aID;
+-		}
+-	}
+-
+-	if( ! bStarted && m_pSalSound )
+-		m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-}
+-
+-void NASSound::stop()
+-{
+-  	if( s_pServer && m_nFlowID )
+-	{
+-  		AuStopFlow( (AuServer*)s_pServer, m_nFlowID, NULL );
+-		m_nFlowID = 0;
+-	}
+-}
+-
+-void NASSound::pause()
+-{
+-  	if( s_pServer && m_nFlowID )
+-  		AuPauseFlow( (AuServer*)s_pServer, m_nFlowID, NULL );
+-}
+-
+-void NASSound::cont()
+-{
+-  	if( s_pServer && m_nFlowID )
+-  		AuStartFlow( (AuServer*)s_pServer, m_nFlowID, NULL );
+-}
+-
+-BOOL NASSound::isValid()
+-{
+-	if( ! m_pSalSound )
+-		return FALSE;
+-	if( ! s_pServer )
+-		connect();
+-	if( ! s_pServer )
+-		return FALSE;
+-
+-	return access( m_pSalSound->m_aSoundFile.GetBuffer(), R_OK ) ? FALSE : TRUE;
+-}
+-
+-#endif
+Index: vcl/unx/source/app/osssound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/osssound.cxx
+diff -N vcl/unx/source/app/osssound.cxx
+--- vcl/unx/source/app/osssound.cxx	27 Jun 2007 20:46:05 -0000	1.10
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,521 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: osssound.cxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:46:05 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#include <vcl/svapp.hxx>
+-
+-#ifdef USE_OSS
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <stdio.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <sys/ioctl.h>
+-#ifdef LINUX
+-#include <linux/soundcard.h>
+-#else
+-#include <sys/soundcard.h>
+-#endif
+-#include <errno.h>
+-#include <osl/thread.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace osl;
+-
+-int						OSSSound::s_nDevice = -1;
+-OSSSound::OSSDataList	OSSSound::s_aDataList;
+-Mutex					OSSSound::s_aProtector;
+-OSSSound::OSSSoundList	OSSSound::s_aSounds;
+-
+-BOOL OSSSound::open()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice == -1 )
+-	{
+-		s_nDevice = ::open( "/dev/dsp", O_WRONLY );
+-		if( s_nDevice == -1 )
+-		{
+-			SalDbgAssert( "ERROR: could not open /dev/dsp, errno=%d\n", errno );
+-			return FALSE;
+-		}
+-	}
+-	else
+-	{
+-		ioctl( s_nDevice, SNDCTL_DSP_RESET, 0 );
+-	}
+-	return TRUE;
+-}
+-
+-void OSSSound::close()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice != -1 )
+-		::close( s_nDevice );
+-	s_nDevice = -1;
+-}
+-
+-BOOL OSSSound::startSound( OSSData* pData )
+-{
+-	if( pData && pData->m_pSound && pData->m_pSound->m_pBuffer &&
+-		s_nDevice >= 0 )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer, ".snd", 4 ) )
+-			return startAU( pData );
+-		else if( ! strncmp( pData->m_pSound->m_pBuffer, "RIFF", 4 ) )
+-			return startRIFF( pData );
+-	}
+-	return FALSE;
+-}
+-
+-BOOL OSSSound::startAU( OSSData* pData )
+-{
+-	char* pBuffer = pData->m_pSound->m_pBuffer;
+-	ULONG nDataOffset	= readBELong( pBuffer + 4 );
+-	ULONG nDataLen		= readBELong( pBuffer + 8 );
+-	ULONG nEncoding		= readBELong( pBuffer + 12 );
+-	ULONG nSampleRate	= readBELong( pBuffer + 16 );
+-	ULONG nChannels		= readBELong( pBuffer + 20 );
+-
+-	if( nDataLen == 0xffffffff )
+-		nDataLen = pData->m_pSound->m_aStat.st_size - nDataOffset;
+-
+-	pData->m_nDataLen	= nDataLen;
+-	pData->m_nStartPos	= nDataOffset;
+-	pData->m_nEndPos	= pData->m_nStartPos + pData->m_nDataLen;
+-
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-
+-	int nSystemFormat;
+-	switch( nEncoding )
+-	{
+-		case 1: nSystemFormat = AFMT_MU_LAW;break;
+-		case 2: nSystemFormat = AFMT_U8;break;
+-		case 3: nSystemFormat = AFMT_S16_BE;break;
+-		default:
+-			SalDbgAssert( "au format %d unsupported\n", nEncoding );
+-			return FALSE;
+-	};
+-
+-	int nRealFormat = nSystemFormat;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SETFMT, &nRealFormat )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SETFMT failed\n" );
+-		return FALSE;
+-	}
+-	int nRealChannels = nChannels-1;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_STEREO, &nRealChannels )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_STEREO failed\n" );
+-		return FALSE;
+-	}
+-	if( nRealChannels != sal::static_int_cast<int>(nChannels-1) )
+-	{
+-		SalDbgAssert( "could not set %d channels\n", nChannels );
+-		return FALSE;
+-	}
+-
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SPEED, &nSampleRate ) == -1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SPEED failed\n" );
+-		return FALSE;
+-	}
+-	SalDbgAssert( "playing %d data bytes at %d bytes in format %d quality/s on %d channels \n", pData->m_nDataLen, nSampleRate, nEncoding, nChannels );
+-	return TRUE;
+-}
+-
+-BOOL OSSSound::startRIFF( OSSData* pData )
+-{
+-	int nPos = findChunk( pData, "fmt " );
+-	if( nPos == -1 )
+-		return FALSE;
+-	
+-	int nFormat		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 8 );
+-	int nChannels	= readLEShort( pData->m_pSound->m_pBuffer + nPos + 10 );
+-	int nSampleRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 12 );
+-	int nByteRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 16 );
+-	int nAlign		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 20 );
+-	SalDbgAssert( "format is tag = %x, channels = %d, samplesPerSec = %d, avgBytesPerSec = %d, blockAlign = %d\n", nFormat, nChannels, nSampleRate, nByteRate, nAlign );
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-	
+-	int nBitsPerSample = 0;
+-	switch( nFormat )
+-	{
+-		default:
+-			SalDbgAssert( "unknown format\n" );
+-			return FALSE;
+-			break;
+-		case 1:
+-			nBitsPerSample = readLEShort( pData->m_pSound->m_pBuffer + nPos + 22 );
+-			break;
+-	}
+-	
+-	nPos = findChunk( pData, "data" );
+-	if( nPos == -1 )
+-	{
+-		SalDbgAssert( "ERROR: no \"data\" chunk found\n" );
+-		return FALSE;
+-	}
+-	
+-	pData->m_nDataLen = readLEInt( pData->m_pSound->m_pBuffer + nPos + 4 );
+-	pData->m_nStartPos = nPos+8;
+-	pData->m_nEndPos = pData->m_nStartPos + pData->m_nDataLen;
+-	
+-	int nSystemFormat;
+-	switch( nBitsPerSample )
+-	{
+-		case 8:  nSystemFormat = AFMT_U8; break;
+-		case 16: nSystemFormat = AFMT_S16_LE; break;
+-		default:
+-			SalDbgAssert( "%d bits per sample is not usable\n", nBitsPerSample );
+-			return FALSE;
+-	}
+-	
+-	int nRealFormat = nSystemFormat;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SETFMT, &nRealFormat )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SETFMT failed\n" );
+-		return FALSE;
+-	}
+-	
+-	int nRealChannels = nChannels-1;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_STEREO, &nRealChannels )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_STEREO failed\n" );
+-		return FALSE;
+-	}
+-	if( nRealChannels != nChannels-1 )
+-	{
+-		SalDbgAssert( "could not set %d channels\n", nChannels );
+-		return FALSE;
+-	}
+-	
+-	
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SPEED, &nSampleRate ) == -1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SPEED failed\n" );
+-		return FALSE;
+-	}
+-	
+-	SalDbgAssert( "playing %d data bytes at %d bytes in %d bits quality/s on %d channels \n", pData->m_nDataLen, nSampleRate, nBitsPerSample, nChannels );
+-	return TRUE;
+-}
+-
+-int OSSSound::findChunk( OSSData* pData, const char* pChunk )
+-{
+-	if( !pData || ! pData->m_pSound || ! pData->m_pSound->m_pBuffer )
+-		return -1;
+-
+-	int nPos = 12;
+-	while( nPos < pData->m_pSound->m_aStat.st_size )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer+nPos, pChunk, 4 ) )
+-			return nPos;
+-
+-		// get LSB int length
+-		nPos += readLEInt( pData->m_pSound->m_pBuffer+nPos+4 ) + 8;
+-	}
+-	return -1;
+-}
+-
+-short int OSSSound::readLEShort( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	short int nRet = *pBuffer++;
+-	nRet |= *pBuffer << 8;
+-
+-	return nRet;
+-}
+-
+-ULONG OSSSound::readBELong( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	ULONG nRet	 = *pBuffer++ << 24;
+-	nRet		|= *pBuffer++ << 16;
+-	nRet		|= *pBuffer++ << 8;
+-	nRet		|= *pBuffer;
+-
+-	return nRet;
+-}
+-
+-int OSSSound::readLEInt( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	int nRet = *pBuffer++;
+-	nRet |= (int)(*pBuffer++) << 8;
+-	nRet |= (int)(*pBuffer++) << 16;
+-	nRet |= (int)(*pBuffer++) << 24;
+-
+-	return nRet;
+-}
+-
+-static oslThread aThreadWorker= NULL;
+-extern "C" {
+-    void SAL_CALL OSSThreadWorker(void*)
+-    {
+-        OSSSound::run();
+-    }
+-}
+-
+-void OSSSound::run()
+-{
+-	SalDbgAssert( "OSSWorker::run\n" );
+-	OSSData* pData;
+-    do
+-    {
+-        ResettableMutexGuard aGuard( s_aProtector );
+-        pData = s_aDataList.Count() ? s_aDataList.GetObject( 0 ) : NULL;
+-        if( ! pData )
+-            break;
+-        
+-        if( open() )
+-        {
+-            
+-            bool bDataValid = true;
+-            if( startSound( pData ) )
+-            {
+-                pData->m_nCurPos = pData->m_nStartPos;
+-                while( pData->m_nCurPos < pData->m_nEndPos )
+-                {
+-                    audio_buf_info info;
+-                    ioctl( s_nDevice, SNDCTL_DSP_GETOSPACE, &info );
+-                    if( info.bytes > 0 )
+-                    {
+-                        int nBytes = info.bytes;
+-                        if( pData->m_nCurPos + nBytes > pData->m_nEndPos )
+-                            nBytes = pData->m_nEndPos - pData->m_nCurPos;
+-                        nBytes = write( s_nDevice,
+-                                        pData->m_pSound->m_pBuffer + pData->m_nCurPos,
+-                                        nBytes );
+-                        if( nBytes > 0 )
+-                            pData->m_nCurPos += nBytes;
+-                    }
+-                    aGuard.clear();
+-                    TimeValue aVal;
+-                    aVal.Seconds = 0;
+-                    aVal.Nanosec = 20000000;
+-                    osl_waitThread( &aVal );
+-                    aGuard.reset();
+-                    if( s_aDataList.GetObject( 0 ) != pData )
+-                    {
+-                        ioctl( s_nDevice, SNDCTL_DSP_RESET, 0);
+-                        bDataValid = false;
+-                        break;
+-                    }
+-                }
+-                close();
+-                if( bDataValid )
+-                {
+-                    if( pData->m_pSound->m_pSalSound->m_bLoop )
+-                        pData->m_pSound->play();
+-                    else
+-                        Application::PostUserEvent( LINK( pData->m_pSound, OSSSound, notifyStopHdl ), NULL );
+-                }
+-            }
+-            else
+-				Application::PostUserEvent( LINK( pData->m_pSound, OSSSound, notifyErrorHdl ), (void*)SOUNDERR_INVALID_FILE );
+-        }
+-        s_aDataList.Remove( pData );
+-        delete pData;
+-    } while( pData );
+-
+-    MutexGuard aGuard( s_aProtector );
+-    osl_destroyThread( aThreadWorker );
+-    aThreadWorker = NULL;
+-}
+-
+-void OSSSound::append( OSSSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	OSSData* pNew = new OSSData;
+-
+-	pNew->m_pSound		= pSound;
+-	pNew->m_nDataLen	= 0;
+-	pNew->m_nStartPos	= 0;
+-	pNew->m_nEndPos		= 0;
+-	pNew->m_nType		= 0;
+-
+-	s_aDataList.Insert( pNew, LIST_APPEND );
+-	if( ! aThreadWorker )
+-        aThreadWorker = osl_createThread( OSSThreadWorker, NULL );
+-}
+-
+-void OSSSound::remove( OSSSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	OSSData* pData;
+-	for( int i = s_aDataList.Count()-1; i >= 0; i-- )
+-	{
+-		pData = s_aDataList.GetObject( i );
+-		if( pData->m_pSound == pSound )
+-		{
+-			s_aDataList.Remove( i );
+-			if( i > 0 )
+-				delete pData;
+-		}
+-	}
+-}
+-
+-OSSSound::OSSSound( ::X11SalSound* pSound ) :
+-		VSound( pSound )
+-{
+-	initBuffer();
+-	s_aSounds.Insert( this );
+-}
+-
+-OSSSound::~OSSSound()
+-{
+-	stop();
+- 	if( m_pBuffer )
+- 		releaseBuffer();
+-	s_aSounds.Remove( this );
+-}
+-
+-BOOL OSSSound::isValid()
+-{
+-    if( ! m_pBuffer )
+-        return FALSE;
+-
+-    if( s_nDevice == -1 )
+-    {
+-        int nTryOpen = ::open( "/dev/dsp", O_WRONLY | O_NONBLOCK );
+-        if( nTryOpen == -1 )
+-            return FALSE;
+-        ::close( nTryOpen );
+-    }
+-	
+-	// check for valid file format
+-	if( ! strncmp( "RIFF", m_pBuffer, 4 ) )
+-	{
+-		OSSData aData;
+-		aData.m_pSound = this;
+-
+-		// check for data chunk
+-		if( findChunk( &aData, "data" ) == -1 )
+-			goto failed;
+-		int nPos = findChunk( &aData, "fmt " );
+-		if( nPos == -1 )
+-			goto failed;
+-		
+-		int nFormat		= readLEShort( m_pBuffer + nPos + 8 );
+-		int nChannels	= readLEShort( m_pBuffer + nPos + 10 );
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		// check formats
+-		// playable is MS-PCM only at now
+-		if( nFormat != 1 )
+-			goto failed;
+-		return TRUE;
+-	}
+-	else if( ! strncmp( ".snd", m_pBuffer, 4 ) )
+-	{
+-		ULONG nEncoding		= readBELong( m_pBuffer + 12 );
+-		ULONG nChannels		= readBELong( m_pBuffer + 20 );
+-
+-		// check for playable encodings
+-		if( nEncoding != 1 && nEncoding != 2 && nEncoding != 3 )
+-			goto failed;
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		return TRUE;
+-	}
+-  failed:
+-	releaseBuffer();
+-	return FALSE;
+-}
+-
+-void OSSSound::play()
+-{
+-	if( ! m_pBuffer )
+-		return;
+-
+-	append( this );
+-	m_pSalSound->m_bPlaying	= TRUE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void OSSSound::stop()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPlaying	= FALSE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void OSSSound::pause()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPaused = TRUE;
+-}
+-
+-void OSSSound::cont()
+-{
+-	play();
+-}
+-
+-IMPL_LINK( OSSSound, notifyStopHdl, void*, EMPTYARG )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->changeStateStop();
+-	}
+-	return 0;
+-}
+-
+-IMPL_LINK( OSSSound, notifyErrorHdl, void*, nError )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->setError( (ULONG)nError );
+-	}
+-	return 0;
+-}
+-
+-#endif
+Index: vcl/unx/source/app/pasfsound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/pasfsound.cxx
+diff -N vcl/unx/source/app/pasfsound.cxx
+--- vcl/unx/source/app/pasfsound.cxx	31 Jul 2007 13:01:50 -0000	1.7
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,345 +0,0 @@
+-/*************************************************************************
+-*
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: pasfsound.cxx,v $
+- *
+- *  $Revision: 1.7 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/07/31 13:01:50 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+-************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#ifdef USE_PASF
+-
+-#define _SV_PASFSOUND_CXX
+-
+-// Replacement SalSound Implementation that makes use of PortAudio to abstract away
+-// hardware differences, and LibSndFile to convert and access sound formats
+-// This implementation should work with little or no modification for Linux
+-// SGI, Solaris, MacOSX, Linux (all arches), FreeBSD, and even WIN
+-
+-#include <saldata.hxx>
+-#include <vcl/salinst.hxx>
+-
+-
+-#include <stdio.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace osl;
+-using namespace rtl;
+-
+-extern "C"
+-{
+-    
+-    /* callback that takes data from sound file and converts it and loads it */
+-#if PA_VER == 18
+-    static int pasf_in_out_callback (void *inputBuffer, void * outputBuffer,
+-    unsigned long framesPerBuffer, PaTimestamp outTime, void * userData )
+-#else
+-    static int pasf_in_out_callback (const void *inputBuffer, void *outputBuffer,
+-    unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *outTime, PaStreamCallbackFlags cbFlags, void *userData )
+-#endif
+-    {	
+-        PASFAudioData*	paudio_data;
+-        unsigned int	read_count, bufoff, bytecnt; 
+-        float*          buffer  = (float *) outputBuffer;
+-        
+-        /* prevent warnings for unused variables */
+-#if PA_VER > 18
+-        cbFlags = cbFlags;
+-#endif
+-        inputBuffer = inputBuffer;
+-        outTime = outTime;
+-        
+-        /* get all other info needed from audio_data structure passed in as userData */
+-        paudio_data = (PASFAudioData*) userData;
+-        
+-        read_count = sf_readf_float (paudio_data->sndfile, buffer, framesPerBuffer);
+-        if (read_count < framesPerBuffer) 
+-        {	
+-	        /* fill in the remainder of the buffer with zeros */
+-            /* convert read_count of frames to offset into float* buffer */
+-	        bufoff = read_count * paudio_data->sfinfo.channels;
+-            bytecnt = (framesPerBuffer - read_count) * paudio_data->sfinfo.channels * sizeof(float);
+-            memset (&(buffer [read_count]), 0, bytecnt) ;
+-        }
+-        
+-        /* now check if we reached end of file or preset stopping point */
+-        if ((read_count == 0) || ((paudio_data->stop_frame > 0) 
+-            && (paudio_data->frame_count > paudio_data->stop_frame))) 
+-        {
+-            if (paudio_data->loop_count > 0) paudio_data->loop_count--;
+-            
+-            /* if need to loop again, seek back to start frame and reset frame count */
+-            if ((paudio_data->loop_count > 0) || (paudio_data->loop_count == -1)) 
+-            {
+-                sf_seek(paudio_data->sndfile, paudio_data->start_frame, SEEK_SET);
+-                paudio_data->frame_count = paudio_data->start_frame;
+-            } else {
+-                paudio_data->done_playing = 1 ;
+-            }
+-        } 
+-        
+-        paudio_data->frame_count = paudio_data->frame_count + framesPerBuffer;
+-        return paNoError;
+-    } 
+-}
+-
+-
+-
+-PASFSound::PASFSound( ::X11SalSound* pSound) : 
+-VSound( pSound ), 
+-m_pStream( NULL ), 
+-m_pData( NULL )
+-{
+-    m_pData = new PASFAudioData();
+-    if ( ! (m_pData) ) return;
+-    
+-    // open the sound file and get info on desired channels and sample rate
+-    if (! (m_pData->sndfile = sf_open (m_pSalSound->m_aSoundFile.GetBuffer(), SFM_READ, &(m_pData->sfinfo)))) 
+-    {	
+-        // fprintf(stderr,"Error opening sound file %s\n", m_aSoundFile.GetBuffer()); fflush(stderr);
+-        m_pData->sndfile = NULL;
+-        return;
+-    }
+-    
+-    // check for valid number of channels to prevent problems later
+-    if (m_pData->sfinfo.channels < 1 || m_pData->sfinfo.channels > 2) 
+-    {	
+-        // fprintf(stderr, "Error incorrect number of channels %d.\n", m_pData->sfinfo.channels) ; fflush(stderr);
+-        sf_close(m_pData->sndfile);
+-        m_pData->sndfile = NULL;
+-        return;
+-    }
+-    
+-    
+-    // store information on desired settings and input buffer format away
+-    m_pData->format = paFloat32;
+-    m_pData->bufsize = PASF_BUFFER_LEN;
+-    
+-    // Using the default output device for this
+-#if PA_VER == 18
+-    m_pData->device = Pa_GetDefaultOutputDeviceID();
+-#else
+-    m_pData->device = Pa_GetDefaultOutputDevice();
+-#endif
+-    
+-    // the size of a frame in bytes is the number of channels of data * the size of the 
+-    // underlying data type type being used to store data for each for each channel
+-    // (we are using paFloat32 as input to PaOpenDefaultStream )
+-    
+-    unsigned int bytesPerFrame = m_pData->sfinfo.channels * sizeof(float);
+-    unsigned int framesPerBuffer = (unsigned int) (m_pData->bufsize / bytesPerFrame); 
+-    
+-    // Open an audio I/O stream for output only on the default output device
+-    PaError err = Pa_OpenDefaultStream(
+-    &m_pStream,
+-    0,                             // no input channels == no input device
+-    m_pData->sfinfo.channels,      // get desired output channels from file
+-    m_pData->format,               // 32 bit floating point format for each item
+-    m_pData->sfinfo.samplerate,    // get desired sampling rate from file
+-    framesPerBuffer,               // frames per buffer
+-#if PA_VER == 18
+-    0,                             // number of buffers, if zero then use optimal number as determined by Pa
+-#endif
+-    pasf_in_out_callback,          // call back to load data into the stream
+-    m_pData );                     // pass along m_pData pointer so that callback can get access to info
+-    
+-    if( err != paNoError ) {
+-        m_pStream = NULL;
+-        sf_close(m_pData->sndfile);
+-        m_pData->sndfile = NULL;
+-    } 
+-}
+-
+-
+-PASFSound::~PASFSound()
+-{
+-    // if stream exists, stop and close it
+-    if (m_pStream) 
+-    { 
+-	    Pa_StopStream( m_pStream );
+-	    Pa_CloseStream( m_pStream );
+-        m_pStream = NULL;
+-    }
+-    // clean up the PASFAudioData structure, close any open sound files
+-    if ( m_pData ) 
+-    {
+-	    if (m_pData->sndfile) 
+-        {
+-            sf_close(m_pData->sndfile);
+-            m_pData->sndfile = NULL;
+-	    }
+-        delete m_pData;
+-	    m_pData = NULL;
+-	}
+-    m_pSalSound = NULL;
+-}
+-
+-
+-void PASFSound::play()
+-{
+-    int nErr = 1;
+-    BOOL bLoop = m_pSalSound->m_bLoop;
+-    ULONG nStartTime = m_pSalSound->m_nStartTime;
+-    ULONG nPlayTime =  m_pSalSound->m_nPlayTime;
+-    
+-    // if ready to go
+-    if ((m_pData) && (m_pStream)) 
+-    { 
+-        // set the player controls
+-        
+-        // if looping set the loop count (use -1 for infinity)
+-        m_pData->loop_count = 1;
+-        if ( bLoop ) m_pData->loop_count = -1;
+-        
+-        // convert StartTime to frame count and seek to starting frame in sound file
+-        m_pData->start_frame = 0;
+-        if (nStartTime > 0) 
+-        {
+-            m_pData->start_frame = (unsigned long)( (double)nStartTime * m_pData->sfinfo.samplerate / 1000.0 );
+-            sf_seek(m_pData->sndfile, m_pData->start_frame, SEEK_SET);
+-        }
+-        
+-        // set the frames number to play until (use 0 to indicate play until the end)
+-        m_pData->stop_frame = 0;
+-        if (nPlayTime != SOUND_PLAYALL) 
+-        {
+-            ULONG nEndTime = nStartTime + nPlayTime;
+-            m_pData->stop_frame = (unsigned long)( (double)nEndTime * m_pData->sfinfo.samplerate / 1000.0 );
+-        }
+-        
+-        // set set the total frame_count to the starting frame number
+-        m_pData->frame_count = m_pData->start_frame;
+-        m_pData->done_playing = 0;
+-        
+-        // FIXME?: In Play but already playing will be ignored (no error) is that right?
+-        nErr = 0;
+-        if (!(m_pSalSound->m_bPlaying)) 
+-        {            
+-            PaError err = Pa_StartStream( m_pStream );
+-            if( err != paNoError)  nErr = 1;
+-        }  
+-    }
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStatePlay();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-}
+-
+-
+-
+-void PASFSound::stop()
+-{
+-    int nErr = 1;
+-	if ( m_pStream ) 
+-    { 
+-        // stop and close the stream
+-        PaError err = Pa_StopStream( m_pStream );
+-        PaError err1 = Pa_CloseStream( m_pStream );
+-        if( (err == paNoError) && (err1 == paNoError) ) nErr = 0;
+-        m_pStream = NULL;
+-    }    
+-    
+-    // close the sound file sound since another file can be loaded after stop 
+-    if ((m_pData) && (!(m_pStream))) {
+-	    if (m_pData->sndfile) 
+-        {
+-            sf_close(m_pData->sndfile);
+-            m_pData->sndfile = NULL;
+-        }
+-    }
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStateStop();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-    
+-}
+-
+-
+-
+-void PASFSound::pause()
+-{
+-    int nErr = 1;
+-	if (m_pStream ) {
+-        PaError err = Pa_StopStream( m_pStream );
+-        if( err == paNoError ) nErr = 0;
+-	}
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStatePause();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-}
+-
+-
+-
+-void PASFSound::cont()
+-{
+-    int nErr = 1;
+-    if (m_pSalSound->m_bPaused) { 
+-        if (m_pStream) {
+-            PaError err = Pa_StartStream( m_pStream );
+-            if( err == paNoError ) nErr = 0;
+-        }
+-    }    
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStateCont();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-}
+-
+-
+-
+-BOOL PASFSound::isValid()
+-{
+-    if ((m_pData) && (m_pStream)) return TRUE;
+-    return FALSE;
+-}
+-
+-
+-
+-#endif
+-
+Index: vcl/unx/source/app/rptpsound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/rptpsound.cxx
+diff -N vcl/unx/source/app/rptpsound.cxx
+--- vcl/unx/source/app/rptpsound.cxx	17 Sep 2006 12:34:30 -0000	1.17
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,392 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: rptpsound.cxx,v $
+- *
+- *  $Revision: 1.17 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:34:30 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#if defined(SOLARIS) || defined(MACOSX)
+-#include <poll.h>
+-#else
+-#include <sys/poll.h>
+-#endif
+-
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#include <salunx.h>
+-#include <saldata.hxx>
+-#include <saldisp.hxx>
+-#include <psprint/strhelper.hxx>
+-#include <string.h>
+-#include <unistd.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace psp;
+-
+-BOOL						RPTPSound::s_bConnected			= FALSE;
+-BOOL						RPTPSound::s_bFailedOnce		= FALSE;
+-OConnectorSocket			RPTPSound::s_aConnector;
+-RPTPSound::RPTPSoundList	RPTPSound::s_aSounds;
+-
+-int RPTPSound::getFileDescriptor()
+-{
+-	return *(int*)(oslSocket)s_aConnector;
+-}
+-
+-BOOL RPTPSound::connect()
+-{
+-	if( s_bConnected && s_aConnector.isValid() )
+-		return TRUE;
+-
+-	if( s_bFailedOnce )
+-		return FALSE;
+-
+-	s_bConnected = FALSE;
+-
+-	static const char* env = getenv( "AUDIOSERVER" );
+-	static const char* portenv = env ? strchr( env, ':' ) : NULL;
+-	static char sBuf[1024];
+-
+-	if( ! env && GetX11SalData() && GetX11SalData()->GetDisplay() &&
+-		DisplayString( GetX11SalData()->GetDisplay()->GetDisplay() ) )
+-	{
+-		env = strdup( DisplayString( GetX11SalData()->GetDisplay()->GetDisplay() ) );
+-		portenv = strchr( env, ':' );
+-	}
+-
+-	int nPort = portenv ? atoi( portenv+1 ) : 5556;
+-	nPort = nPort ? nPort : 5556;
+-
+-	strncpy( sBuf, "uninitialized", 14 );
+-	if( env && portenv )
+-	{
+-		if( portenv != env )
+-		{
+-			strncpy( sBuf, env, portenv - env );
+-			sBuf[ portenv - env ] = 0;
+-		}
+-		else
+-			strncpy( sBuf, "localhost", 10 );
+-	}
+-	else
+-		strncpy( sBuf, "localhost", 10 );
+-
+-	SalDbgAssert( "resolving \"%s\", env = \"%s\", portenv = \"%s\"\n",
+-				  sBuf,
+-				  env ? env : "<unset>",
+-				  portenv ? portenv : "<unset>"
+-				  );
+-
+-	::rtl::OUString aHost( sBuf, strlen(sBuf), gsl_getSystemTextEncoding() );
+-
+-	OInetSocketAddr aAddr( OSocketAddr::resolveHostname( aHost ) );
+-	aAddr.setPort( nPort );
+-	s_aConnector = OConnectorSocket();
+-	TimeValue aTimeout = { 0, 100000 };
+-	if( s_aConnector.connect( aAddr, &aTimeout ) == ISocketTypes::TResult_Ok )
+-	{
+-		s_bConnected = TRUE;
+-		readLine();
+-		sendCommand( "set notify=done,pause,continue" );
+-		GetX11SalData()->GetLib()->Insert( getFileDescriptor(),
+-				               			   NULL,
+-                                           (YieldFunc)pending,
+-                                           (YieldFunc)queued,
+-                                           (YieldFunc)handleEvents );
+-	}
+-	else
+-	{
+-		SalDbgAssert( "RPTPSound::connect to \"%s\" on port %d failed\n", sBuf, nPort );
+-		s_bFailedOnce = TRUE;
+-	}
+-	return s_bConnected;
+-}
+-
+-void RPTPSound::disconnect()
+-{
+-	if( s_bConnected )
+-	{
+-		s_bConnected = FALSE;
+-		GetX11SalData()->GetLib()->Remove( getFileDescriptor() );
+-		s_aConnector.write( "quit\r\n", 6 );
+-		s_aConnector.close();
+-		SalDbgAssert( "RPTPSound::disconnect\n" );
+-	}
+-}
+-
+-int RPTPSound::pending( int nFD, void* )
+-{
+-	struct pollfd aPollfd;
+-	aPollfd.fd			= nFD;
+-	aPollfd.events		= POLLIN;
+-
+-	poll( &aPollfd, 1, 0 );
+-
+-	return aPollfd.revents & POLLIN ? 1 : 0;
+-}
+-
+-int RPTPSound::queued( int nFD, void* pObj )
+-{
+-	return pending( nFD, pObj );
+-}
+-
+-int RPTPSound::handleEvents( int, void* )
+-{
+-	SalDbgAssert( "RPTPSound::handleEvents\n" );
+-	ByteString aLine = readLine();
+-	int nPos;
+-	if( aLine.GetChar( 0 ) == '@' &&
+-		( nPos = aLine.Search( "event=" ) ) != STRING_NOTFOUND )
+-	{
+-		ULONG nID = ~0;
+-		RPTPSound* pSound = NULL;
+-
+-		ByteString aEvent = aLine.Copy( nPos+6 );
+-		aEvent = GetCommandLineToken( 0, aEvent );
+-		aEvent.ToLowerAscii();
+-
+-		if( ( nPos = aLine.Search( "id=#" ) ) != STRING_NOTFOUND )
+-		{
+-			nID = aLine.Copy( nPos+4 ).ToInt32();
+-			pSound = getSoundById( nID );
+-		}
+-
+-		if( pSound && pSound->m_pSalSound )
+-		{
+-			if( aEvent == "done" )
+-			{
+-				if( pSound->m_pSalSound->m_bLoop )
+-					pSound->play();
+-				else
+-					pSound->m_pSalSound->changeStateStop();
+-			}
+-			else if( aEvent == "pause" )
+-				pSound->m_pSalSound->changeStatePause();
+-			else if( aEvent == "continue" )
+-				pSound->m_pSalSound->changeStateCont();
+-		}
+-	}
+-	return 0;
+-}
+-
+-ByteString RPTPSound::readLine()
+-{
+-	static char pAnswerBuffer[ 1024 ];
+-
+-	if( ! s_bConnected && ! connect() )
+-		return ByteString();
+-
+-	memset( pAnswerBuffer, 0, sizeof( pAnswerBuffer ) );
+-	if( s_aConnector.read( pAnswerBuffer, 1 ) == 1 )
+-	{
+-		unsigned int nTimes = 0;
+-		unsigned int nPos = 1;
+-		while( nTimes < 1000 && nPos < sizeof( pAnswerBuffer )-1 )
+-		{
+-			while( s_aConnector.recv( pAnswerBuffer + nPos, 1 ) == 1 &&
+-				   nPos < sizeof( pAnswerBuffer )-1 )
+-			{
+-				nPos++;
+-				if( pAnswerBuffer[ nPos-2 ] == '\r' &&
+-					pAnswerBuffer[ nPos-1 ] == '\n' )
+-				{
+-					pAnswerBuffer[ nPos-2 ] = 0;
+-					goto doreturn;
+-				}
+-			}
+-            TimeValue aVal;
+-            aVal.Seconds = 0;
+-            aVal.Nanosec = 1000000;
+-            osl_waitThread( &aVal );
+-		}
+-	}
+-  doreturn:
+-	SalDbgAssert( "read line \"%s\"\n", pAnswerBuffer );
+-	return ByteString( pAnswerBuffer );
+-}
+-
+-ByteString RPTPSound::sendCommand( const ByteString& rCommand )
+-{
+-	if( ! s_bConnected && ! connect() )
+-		return ByteString();
+-
+-	SalDbgAssert( "RPTPSound::sendCommand( \"%s\" )\n", rCommand.GetBuffer() );
+-	
+-	ByteString aCommand( rCommand );
+-	aCommand += "\r\n";
+-	s_aConnector.write( aCommand.GetBuffer(), aCommand.Len() );
+-	return readLine();
+-}
+-
+-RPTPSound* RPTPSound::getSoundById( ULONG nID )
+-{
+-	for( unsigned int i = 0; i < s_aSounds.Count(); i++ )
+-	{
+-		RPTPSound* pSound = s_aSounds.GetObject( i );
+-		if( pSound->m_nID == nID )
+-			return pSound;
+-	}
+-	return NULL;
+-}
+-
+-ULONG RPTPSound::getMaxId()
+-{
+-	ULONG nID = 0;
+-	for( unsigned int i = 0; i < s_aSounds.Count(); i++ )
+-	{
+-		RPTPSound* pSound = s_aSounds.GetObject( i );
+-		if( pSound->m_nID > nID )
+-			nID = pSound->m_nID;
+-	}
+-	return nID;
+-}
+-
+-RPTPSound::RPTPSound( X11SalSound* pSalSound ) :
+-		VSound( pSalSound ),
+-		m_nID( 0 )
+-{
+-	s_aSounds.Insert( this );
+-}
+-
+-RPTPSound::~RPTPSound()
+-{
+-	s_aSounds.Remove( this );
+-	m_pSalSound = NULL;
+-	stop();
+-	if( s_aSounds.Count() == 0 )
+-		disconnect();
+-}
+-
+-void RPTPSound::play()
+-{
+-	if( ! m_pSalSound )
+-		return;
+-
+-	ByteString aCommand( "find sound=" );
+-
+-	aCommand += m_pSalSound->m_aSoundFile;
+-	ByteString aAnswer = sendCommand( aCommand );
+-	if( ! aAnswer.Len() || ! s_bConnected )
+-	{
+-		m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-		return;
+-	}
+-	if( aAnswer.GetChar( 0 ) != '+' )
+-	{
+-		// the sound is not on the server
+-		// try to put it (does not really work with rplayd 3.3.0)
+-		aCommand = "put";
+-		
+-		initBuffer();
+-
+-		if( ! m_pBuffer )
+-		{
+-			m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-			return;
+-		}
+-
+-		aCommand += " sound=";
+-		aCommand += m_pSalSound->m_aSoundFile;
+-		aCommand += " size=";
+-		aCommand += ByteString::CreateFromInt64((ULONG)m_aStat.st_size);
+-		
+-		aAnswer = sendCommand( aCommand );
+-		
+-		if( aAnswer.GetChar( 0 ) == '+' )
+-			s_aConnector.write( m_pBuffer, m_aStat.st_size );
+-		// if this fails proceed anyway, because at least rplayd 3.3.0
+-		// does not seem to grok the "put" command
+-
+-		releaseBuffer();
+-	}
+-
+-	aCommand = "play ";
+-	aCommand += m_pSalSound->m_aSoundFile;
+-	aAnswer = sendCommand( aCommand );
+-	if( aAnswer.GetChar( 0 ) == '+' )
+-	{
+-		int nPos = aAnswer.Search( "id=#" );
+-		if( nPos != STRING_NOTFOUND )
+-			m_nID = aAnswer.Copy( nPos+4 ).ToInt32();
+-	}
+-	else
+-		m_pSalSound->setError( SOUNDERR_DEVICE_NOT_READY );
+-
+-	SalDbgAssert( "RPTPSound::play() yields id %d\n", m_nID );
+-}
+-
+-void RPTPSound::stop()
+-{
+-	ByteString aAnswer;
+-	if( m_nID )
+-	{
+-		ByteString aCommand( "stop id=#" );
+-		aCommand += ByteString::CreateFromInt64(m_nID);
+-		aAnswer = sendCommand( aCommand );
+-	}
+-	if( aAnswer.GetChar( 0 ) != '+' && m_pSalSound)
+-		m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-}
+-
+-void RPTPSound::pause()
+-{
+-	if( m_nID )
+-	{
+-		ByteString aCommand( "pause id=#" );
+-		aCommand += ByteString::CreateFromInt64(m_nID);
+-		sendCommand( aCommand );
+-	}
+-}
+-
+-void RPTPSound::cont()
+-{
+-	if( m_nID )
+-	{
+-		ByteString aCommand( "continue id=#" );
+-		aCommand += ByteString::CreateFromInt64(m_nID);
+-		sendCommand( aCommand );
+-	}
+-}
+-
+-BOOL RPTPSound::isValid()
+-{
+-	if( ! s_bConnected )
+-		connect();
+-	if( ! s_bConnected )
+-		return FALSE;
+-
+-	return stat( m_pSalSound->m_aSoundFile.GetBuffer(), &m_aStat ) ? FALSE : TRUE;
+-}
+-
+Index: vcl/unx/source/app/salimpsound.hxx
+===================================================================
+RCS file: vcl/unx/source/app/salimpsound.hxx
+diff -N vcl/unx/source/app/salimpsound.hxx
+--- vcl/unx/source/app/salimpsound.hxx	31 Jul 2007 13:02:03 -0000	1.10
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,305 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salimpsound.hxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/07/31 13:02:03 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-#ifndef _VCL_SALIMPSOUND_HXX
+-#define _VCL_SALIMPSOUND_HXX
+-
+-#include <vsound.hxx>
+-
+-#include <osl/mutex.hxx>
+-#include <vos/socket.hxx>
+-
+-#include <tools/list.hxx>
+-#include <tools/link.hxx>
+-#include <tools/gen.hxx>
+-#include <tools/string.hxx>
+-
+-#include <vcl/sv.h>
+-#include <vcl/salstype.hxx>
+-
+-#include <unistd.h>
+-#include <sys/stat.h>
+-
+-#ifdef USE_PASF
+-#ifdef SYSTEM_PORTAUDIO
+-#include <portaudio.h>
+-#else
+-#include <portaudio/portaudio.h>
+-#endif
+-#ifdef SYSTEM_SNDFILE
+-#include <sndfile.h>
+-#else
+-#include <sndfile/sndfile.h>
+-#endif
+-#endif
+-
+-namespace vcl_sal {
+-
+-// OSS can only be used on local displays
+-
+-#ifdef USE_OSS
+-	class OSSSound : public VSound
+-	{
+-		// thread implementation
+-		struct OSSData
+-		{
+-			OSSSound*	m_pSound;
+-			long		m_nDataLen;
+-			long		m_nStartPos;
+-			long		m_nEndPos;
+-			long		m_nCurPos;
+-			int			m_nType;
+-		};
+-		DECLARE_LIST( OSSDataList, OSSData* )
+-		DECLARE_LIST( OSSSoundList, OSSSound* )
+-
+-		static int						s_nDevice;
+-		static OSSDataList				s_aDataList;
+-		static osl::Mutex				s_aProtector;
+-		static OSSSoundList			s_aSounds;
+-
+-		// static methods
+-		static BOOL 		open();
+-		static void 		close();
+-		static void 		append( OSSSound* );
+-		static void 		remove( OSSSound* );
+-		static BOOL		startSound( OSSData* pData );
+-		static BOOL		startAU( OSSData* pData );
+-		static BOOL		startRIFF( OSSData* pData );
+-		static int			findChunk( OSSData* pData, const char* pChunk );
+-		static short int	readLEShort( const char* );
+-		static int			readLEInt( const char* );
+-		static ULONG		readBELong( const char* );
+-
+-		DECL_LINK( notifyStopHdl, void* );
+-		DECL_LINK( notifyErrorHdl, void* );
+-	protected:
+-		virtual BOOL isValid();
+-	public:
+-		OSSSound( ::X11SalSound* pSalSound );
+-		virtual ~OSSSound();
+-
+-		virtual void play();
+-		virtual void stop();
+-		virtual void pause();
+-		virtual void cont();
+-
+-		static void run(); // thread worker
+-	};
+-#endif
+-
+-// DEVAUDIO can only be used on local displays
+-
+-#ifdef USE_DEVAUDIO
+-	class DevAudioSound;
+-	struct DevAudioData
+-	{
+-		DevAudioSound*	m_pSound;
+-		AudioConverter*	m_pConverter;
+-		long			m_nDataLen;
+-		long			m_nStartPos;
+-		long			m_nEndPos;
+-		long			m_nCurPos;
+-		int				m_nType;
+-
+-		DevAudioData( DevAudioSound* pSound ) :
+-				m_pSound( pSound ), m_pConverter( NULL ), m_nDataLen( 0 ),
+-				m_nStartPos( 0 ), m_nEndPos( 0 ), m_nCurPos( 0 ), m_nType( 0 )
+-			{}
+-		~DevAudioData()
+-			{ if( m_pConverter ) delete m_pConverter; }
+-	};
+-	DECLARE_LIST( DevAudioDataList, DevAudioData* )
+-	DECLARE_LIST( DevAudioSoundList, DevAudioSound* )
+-
+-	class DevAudioSound : public VSound
+-	{
+-		// thread implementation
+-
+-		static int						s_nDevice;
+-		static DevAudioDataList		s_aDataList;
+-		static osl::Mutex				s_aProtector;
+-		static DevAudioSoundList		s_aSounds;
+-
+-		// static methods
+-		static BOOL 		open();
+-		static void 		close();
+-		static void 		append( DevAudioSound* );
+-		static void 		remove( DevAudioSound* );
+-		static BOOL			startSound( DevAudioData* pData );
+-		static BOOL			startAU( DevAudioData* pData );
+-		static BOOL			startRIFF( DevAudioData* pData );
+-		static int			findChunk( DevAudioData* pData, const char* pChunk );
+-		static short int	readLEShort( const char* );
+-		static int			readLEInt( const char* );
+-		static ULONG		readBELong( const char* );
+-
+-		DECL_LINK( notifyStopHdl, void* );
+-		DECL_LINK( notifyErrorHdl, void* );
+-	protected:
+-		virtual BOOL isValid();
+-	public:
+-		DevAudioSound( ::X11SalSound* pSalSound );
+-		virtual ~DevAudioSound();
+-
+-		virtual void play();
+-		virtual void stop();
+-		virtual void pause();
+-		virtual void cont();
+-
+-		static void run();
+-	};
+-#endif
+-
+-
+-// Portaudio / libsndfile can only be used on local displays
+-
+-#ifdef USE_PASF
+-#define PASF_BUFFER_LEN  (8192)
+-
+-typedef struct
+-{       
+-#if PA_VER == 18
+-    PaDeviceID       device;
+-#else
+-    PaDeviceIndex    device;
+-#endif
+-    PaSampleFormat   format;
+-    unsigned int     bufsize;
+-    SNDFILE          *sndfile;
+-    SF_INFO          sfinfo;
+-    int              loop_count;
+-    unsigned long    start_frame;
+-    unsigned long    stop_frame;
+-    unsigned long    frame_count;
+-    int              done_playing;
+-} PASFAudioData ;
+-
+-
+-class PASFSound : public VSound
+-{
+-	private:	
+-    PaStream*                    m_pStream;
+-    PASFAudioData*               m_pData;
+-    
+-	protected:
+-    virtual BOOL isValid();
+-    
+-	public:
+-    PASFSound( ::X11SalSound* pSalSound );
+-    virtual ~PASFSound();
+-    
+-    virtual void play();
+-    virtual void stop();
+-    virtual void pause();
+-    virtual void cont();
+-    
+-};
+-#endif
+-
+-
+-
+-class RPTPSound : public VSound
+-{
+-        DECLARE_LIST( RPTPSoundList, RPTPSound* )
+-
+-	static BOOL								s_bConnected;
+-	static NAMESPACE_VOS(OConnectorSocket)		s_aConnector;
+-	static RPTPSoundList						s_aSounds;
+-	static BOOL								s_bFailedOnce;
+-
+-	static BOOL			connect();
+-	static void			disconnect();
+-	static ByteString	readLine();
+-	static ByteString	sendCommand( const ByteString& rCommand );
+-
+-	static int getFileDescriptor();
+-	static RPTPSound* getSoundById( ULONG );
+-	static ULONG      getMaxId();
+-
+-	// SalYieldEntry
+-	static int pending( int, void* );
+-	static int queued( int, void* );
+-	static int handleEvents( int, void* );
+-
+-	ULONG			m_nID;
+-  protected:
+-	virtual BOOL isValid();
+-  public:
+-  RPTPSound( ::X11SalSound* pSalSound );
+-
+-	virtual	~RPTPSound();
+-
+-	virtual void play();
+-	virtual void stop();
+-	virtual void pause();
+-	virtual void cont();
+-};
+-
+-
+-#ifdef USE_NAS
+-	class NASSound : public VSound
+-	{
+-		DECLARE_LIST( NASSoundList, NASSound* )
+-		
+-		static NASSoundList				s_aSounds;
+-		static void*					s_pServer;
+-		static BOOL						s_bFailedOnce;
+-
+-		static BOOL	connect();
+-		static void disconnect();
+-
+-		static void callback( void*, void*, void*, void* );
+-		// SalYieldEntry
+-		static int pending( int, void* );
+-		static int queued( int, void* );
+-		static int handleEvents( int, void* );
+-
+-		ULONG	m_nFlowID;
+-	protected:
+-		virtual BOOL isValid();
+-	public:
+-		NASSound( ::X11SalSound* pSalSound );
+-
+-		virtual	~NASSound();
+-
+-		virtual void play();
+-		virtual void stop();
+-		virtual void pause();
+-		virtual void cont();
+-	};
+-#endif
+-}
+-
+-#endif
+Index: vcl/unx/source/app/salinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/app/salinst.cxx,v
+retrieving revision 1.32
+retrieving revision 1.32.60.1
+diff -u -p -u -p -r1.32 -r1.32.60.1
+--- vcl/unx/source/app/salinst.cxx	27 Jun 2007 20:47:09 -0000	1.32
++++ vcl/unx/source/app/salinst.cxx	31 Aug 2007 09:44:58 -0000	1.32.60.1
+@@ -75,9 +75,6 @@
+ #ifndef _SV_SALOGL_H
+ #include <salogl.h>
+ #endif
+-#ifndef _SV_SALSOUND_H
+-#include <salsound.h>
+-#endif
+ 
+ // -------------------------------------------------------------------------
+ //
+@@ -145,9 +142,6 @@ extern "C"
+ 
+ X11SalInstance::~X11SalInstance()
+ {
+-    // deinitialize global sound resources
+-    X11SalSound::Release();
+-
+     // release (possibly open) OpenGL context
+     X11SalOpenGL::Release();
+ 
+@@ -323,9 +317,3 @@ SalOpenGL* X11SalInstance::CreateSalOpen
+ {
+     return new X11SalOpenGL( pGraphics );
+ }
+-
+-SalSound* X11SalInstance::CreateSalSound()
+-{
+-    return new X11SalSound();
+-}
+-
+Index: vcl/unx/source/app/salsound2.cxx
+===================================================================
+RCS file: vcl/unx/source/app/salsound2.cxx
+diff -N vcl/unx/source/app/salsound2.cxx
+--- vcl/unx/source/app/salsound2.cxx	27 Jun 2007 20:47:22 -0000	1.11
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,334 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound2.cxx,v $
+- *
+- *  $Revision: 1.11 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:47:22 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#include <sys/stat.h>
+-#include <sys/mman.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-
+-#include <salunx.h>
+-#include <saldata.hxx>
+-#include <saldisp.hxx>
+-
+-#include <salsound.h>
+-#include <vcl/salstype.hxx>
+-#include <salimpsound.hxx>
+-
+-using namespace vcl_sal;
+-
+-ULONG X11SalSound::s_nSoundState = SOUND_STATE_UNLOADED;
+-
+-X11SalSound::X11SalSound() :
+-		m_pVSound( NULL ),
+-		m_bLoop( false ),
+-		m_bPlaying( false ),
+-		m_bPaused( false ),
+-		m_nStartTime( 0 ),
+-		m_nPlayTime( SOUND_PLAYALL )
+-{
+-	SalDbgAssert( "X11SalSound::X11SalSound()\n" );
+-    #ifdef USE_PASF
+-    // initialize the portaudio library (typically just once)
+-    if (s_nSoundState == SOUND_STATE_UNLOADED) 
+-    {
+-        PaError err = Pa_Initialize();  
+-        if( err == paNoError )
+-            s_nSoundState = SOUND_STATE_VALID;
+-    }
+-    if (s_nSoundState != SOUND_STATE_VALID )
+-        s_nSoundState = SOUND_STATE_INVALID;
+-    #else
+-    s_nSoundState = SOUND_STATE_VALID;
+-    #endif
+-}
+-
+-X11SalSound::~X11SalSound()
+-{
+-	SalDbgAssert( "X11SalSound::~X11SalSound()\n" );
+-	if( m_pVSound )
+-		delete m_pVSound;
+-}
+-
+-void X11SalSound::Release()
+-{
+-#ifdef USE_PASF
+-        // terminate the portaudio library
+-        if ( s_nSoundState == SOUND_STATE_VALID ) Pa_Terminate();
+-#endif
+-        s_nSoundState = SOUND_STATE_UNLOADED;
+-}
+-
+-bool X11SalSound::IsValid()
+-{
+-  return (X11SalSound::s_nSoundState == SOUND_STATE_VALID);
+-}
+-
+-
+-bool X11SalSound::Init( const String& rSoundName, ULONG& rSoundLen )
+-{
+-    
+-    // FIXME: NULL file names are passed in
+-    // This can happen before play of previous sound has completed and this disrupts things
+-    // simpy ignore this for now
+-    if (! (rSoundName.Len()))
+-        return false;
+-    
+-	if( m_pVSound )
+-		delete m_pVSound;
+-
+-    #ifdef MACOSX
+-	m_aSoundFile = ByteString( rSoundName, RTL_TEXTENCODING_UTF8 );
+-    #else
+-	m_aSoundFile = ByteString( rSoundName, osl_getThreadTextEncoding() );
+-    #endif
+-	SalDbgAssert( "X11SalSound::Init( \"%s\", %d )\n", m_aSoundFile.GetBuffer(), rSoundLen );
+-    
+-	m_pVSound = ( !m_aSoundFile.Len() || access( m_aSoundFile.GetBuffer(), R_OK ) ) ? NULL : VSound::createVSound( this );
+-    
+-	return m_pVSound ? true : false;
+-}
+-
+-void X11SalSound::Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop )
+-{
+-	SalDbgAssert( "SalSound::Play( %d, %d, %s )\n", nStartTime, nPlayTime, bLoop ? "TRUE" : "FALSE" );
+-	if( m_bPlaying && m_pVSound )
+-		m_pVSound->stop();
+-    
+-	m_bLoop			= bLoop;
+-	m_nStartTime	= nStartTime;
+-	m_nPlayTime		= nPlayTime;
+-    
+-	if( m_pVSound )
+-		m_pVSound->play();
+-}
+-
+-void X11SalSound::Stop()
+-{
+-	SalDbgAssert( "X11SalSound::Stop()\n" );
+-	if( m_bPlaying && m_pVSound )
+-		m_pVSound->stop();
+-}
+-
+-void X11SalSound::Pause()
+-{
+-	if( m_bPlaying && m_pVSound )
+-		m_pVSound->pause();
+-}
+-
+-void X11SalSound::Continue()
+-{
+-	if( m_bPaused && m_pVSound )
+-		m_pVSound->cont();
+-}
+-
+-bool X11SalSound::IsLoopMode() const
+-{
+-    return m_bLoop;
+-}
+-
+-bool X11SalSound::IsPlaying() const
+-{
+-    return m_bPlaying;
+-}
+-
+-bool X11SalSound::IsPaused() const
+-{
+-    return m_bPaused;
+-}
+-
+-// --------------------------------------------------
+-
+-void VSound::initBuffer()
+-{
+-	if( stat( m_pSalSound->m_aSoundFile.GetBuffer(), &m_aStat ) )
+-	{
+-		SalDbgAssert( "could not stat \"%s\"\n", m_pSalSound->m_aSoundFile.GetBuffer() );
+-		return;
+-	}
+-	int nFile;
+-	if( ( nFile = ::open( m_pSalSound->m_aSoundFile.GetBuffer(), O_RDONLY ) ) == -1 )
+-	{
+-		SalDbgAssert( "could not open %s\n", m_pSalSound->m_aSoundFile.GetBuffer() );
+-		return;
+-	}
+-
+-	m_pBuffer = (char *)mmap( NULL, m_aStat.st_size, PROT_READ, MAP_SHARED, nFile, 0 );
+-	::close( nFile );
+-	if( m_pBuffer == MAP_FAILED )
+-	{
+-		SalDbgAssert( "could not mmap %s\n", m_pSalSound->m_aSoundFile.GetBuffer() );
+-		m_pBuffer = NULL;
+-		return;
+-	}
+-}
+-
+-void VSound::releaseBuffer()
+-{
+-	if( m_pBuffer )
+-	{
+-		munmap( m_pBuffer, m_aStat.st_size );
+-		m_pBuffer = NULL;
+-	}
+-}
+-
+-
+-VSound* VSound::createVSound( X11SalSound* pX11SalSound )
+-{
+-	struct stat aStat;
+-	if( stat( pX11SalSound->m_aSoundFile.GetBuffer(), & aStat ) )
+-		return NULL;
+-
+-	VSound* pRet = NULL;
+-
+-	if( GetX11SalData()->GetDisplay()->IsLocal() )
+-    {
+-        #ifdef USE_PASF
+-        {
+-            pRet = new PASFSound( pX11SalSound );
+-            if( pRet && ! pRet->isValid() )
+-            {
+-                delete pRet;
+-                pRet = NULL;
+-            }
+-            else
+-                SalDbgAssert( "got an PASFSound\n" );
+-        }
+-        #endif
+-
+-        #ifdef USE_OSS
+-        if( ! pRet )
+-        {
+-            pRet = new OSSSound( pX11SalSound );
+-            if( pRet && ! pRet->isValid() )
+-            {
+-                delete pRet;
+-                pRet = NULL;
+-            }
+-            else
+-                SalDbgAssert( "got an OSSSound\n" );
+-        }
+-        #endif
+-
+-        #ifdef USE_DEVAUDIO
+-        if( ! pRet )
+-        {
+-            pRet = new DevAudioSound( pX11SalSound );
+-            if( pRet && ! pRet->isValid() )
+-            {
+-                delete pRet;
+-                pRet = NULL;
+-            }
+-            else
+-                SalDbgAssert( "got an DevAudioSound\n" );
+-        }
+-        #endif
+-    }
+-    
+-#ifdef USE_NAS
+-	if( ! pRet )
+-	{
+-		pRet = new NASSound( pX11SalSound );
+-		if( pRet && ! pRet->isValid() )
+-		{
+-			delete pRet;
+-			pRet = NULL;
+-		}
+-		else
+-			SalDbgAssert( "got an AUSound\n" );
+-	}
+-#endif
+-
+-	if( ! pRet )
+-	{
+-		pRet = new RPTPSound( pX11SalSound );
+-		if( pRet && ! pRet->isValid() )
+-		{
+-			delete pRet;
+-			pRet = NULL;
+-		}
+-		else
+-			SalDbgAssert( "got an RPTPSound\n" );
+-	}
+-	return pRet;
+-}
+-
+-
+-void X11SalSound::changeStatePlay()
+-{
+-	SalDbgAssert( "SalSound(%p)::changeStatePlay()\n", this );
+-
+-	m_bPlaying	= TRUE;
+-	m_bPaused 	= FALSE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::changeStateStop()
+-{
+-	SalDbgAssert( "X11SalSound(%p)::changeStateStop()\n", this );
+-
+-	m_bPlaying	= FALSE;
+-	m_bPaused 	= FALSE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::changeStatePause()
+-{
+-	SalDbgAssert( "X11SalSound(%p)::changeStatePause()\n", this );
+-
+-	m_bPlaying	= TRUE;
+-	m_bPaused	= TRUE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::changeStateCont()
+-{
+-	SalDbgAssert( "X11SalSound(%p)::changeStateCont()\n", this );
+-
+-	m_bPlaying	= TRUE;
+-	m_bPaused	= FALSE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::setError( ULONG nError )
+-{
+-    CallNotifyProc( SOUND_NOTIFY_ERROR, nError );
+-}
+-
+Index: vcl/unx/source/app/sunconvert.cxx
+===================================================================
+RCS file: vcl/unx/source/app/sunconvert.cxx
+diff -N vcl/unx/source/app/sunconvert.cxx
+--- vcl/unx/source/app/sunconvert.cxx	17 Sep 2006 12:36:39 -0000	1.6
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,1330 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: sunconvert.cxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:36:39 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#ifndef _G72X_H
+-#define	_G72X_H
+-
+-#define	AUDIO_ENCODING_ULAW	(1)	/* ISDN u-law */
+-#define	AUDIO_ENCODING_ALAW	(2)	/* ISDN A-law */
+-#define	AUDIO_ENCODING_LINEAR	(3)	/* PCM 2's-complement (0-center) */
+-
+-/*
+- * The following is the definition of the state structure
+- * used by the G.721/G.723 encoder and decoder to preserve their internal
+- * state between successive calls.  The meanings of the majority
+- * of the state structure fields are explained in detail in the
+- * CCITT Recommendation G.721.  The field names are essentially indentical
+- * to variable names in the bit level description of the coding algorithm
+- * included in this Recommendation.
+- */
+-struct g72x_state {
+-	long yl;	/* Locked or steady state step size multiplier. */
+-	short yu;	/* Unlocked or non-steady state step size multiplier. */
+-	short dms;	/* Short term energy estimate. */
+-	short dml;	/* Long term energy estimate. */
+-	short ap;	/* Linear weighting coefficient of 'yl' and 'yu'. */
+-
+-	short a[2];	/* Coefficients of pole portion of prediction filter. */
+-	short b[6];	/* Coefficients of zero portion of prediction filter. */
+-	short pk[2];	/*
+-			 * Signs of previous two samples of a partially
+-			 * reconstructed signal.
+-			 */
+-	short dq[6];	/*
+-			 * Previous 6 samples of the quantized difference
+-			 * signal represented in an internal floating point
+-			 * format.
+-			 */
+-	short sr[2];	/*
+-			 * Previous 2 samples of the quantized difference
+-			 * signal represented in an internal floating point
+-			 * format.
+-			 */
+-	char td;	/* delayed tone detect, new in 1988 version */
+-};
+-
+-/* External function definitions. */
+-
+-extern void g72x_init_state(struct g72x_state *);
+-extern int g721_encoder(
+-		int sample,
+-		int in_coding,
+-		struct g72x_state *state_ptr);
+-extern int g721_decoder(
+-		int code,
+-		int out_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_24_encoder(
+-		int sample,
+-		int in_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_24_decoder(
+-		int code,
+-		int out_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_40_encoder(
+-		int sample,
+-		int in_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_40_decoder(
+-		int code,
+-		int out_coding,
+-		struct g72x_state *state_ptr);
+-
+-#endif /* !_G72X_H */
+-/*
+- * g711.c
+- *
+- * u-law, A-law and linear PCM conversions.
+- */
+-#define	SIGN_BIT	(0x80)		/* Sign bit for a A-law byte. */
+-#define	QUANT_MASK	(0xf)		/* Quantization field mask. */
+-#define	NSEGS		(8)		/* Number of A-law segments. */
+-#define	SEG_SHIFT	(4)		/* Left shift for segment number. */
+-#define	SEG_MASK	(0x70)		/* Segment field mask. */
+-
+-static short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF,
+-			    0xFFF, 0x1FFF, 0x3FFF, 0x7FFF};
+-
+-/* copy from CCITT G.711 specifications */
+-unsigned char _u2a[128] = {			/* u- to A-law conversions */
+-	1,	1,	2,	2,	3,	3,	4,	4,
+-	5,	5,	6,	6,	7,	7,	8,	8,
+-	9,	10,	11,	12,	13,	14,	15,	16,
+-	17,	18,	19,	20,	21,	22,	23,	24,
+-	25,	27,	29,	31,	33,	34,	35,	36,
+-	37,	38,	39,	40,	41,	42,	43,	44,
+-	46,	48,	49,	50,	51,	52,	53,	54,
+-	55,	56,	57,	58,	59,	60,	61,	62,
+-	64,	65,	66,	67,	68,	69,	70,	71,
+-	72,	73,	74,	75,	76,	77,	78,	79,
+-	81,	82,	83,	84,	85,	86,	87,	88,
+-	89,	90,	91,	92,	93,	94,	95,	96,
+-	97,	98,	99,	100,	101,	102,	103,	104,
+-	105,	106,	107,	108,	109,	110,	111,	112,
+-	113,	114,	115,	116,	117,	118,	119,	120,
+-	121,	122,	123,	124,	125,	126,	127,	128};
+-
+-unsigned char _a2u[128] = {			/* A- to u-law conversions */
+-	1,	3,	5,	7,	9,	11,	13,	15,
+-	16,	17,	18,	19,	20,	21,	22,	23,
+-	24,	25,	26,	27,	28,	29,	30,	31,
+-	32,	32,	33,	33,	34,	34,	35,	35,
+-	36,	37,	38,	39,	40,	41,	42,	43,
+-	44,	45,	46,	47,	48,	48,	49,	49,
+-	50,	51,	52,	53,	54,	55,	56,	57,
+-	58,	59,	60,	61,	62,	63,	64,	64,
+-	65,	66,	67,	68,	69,	70,	71,	72,
+-	73,	74,	75,	76,	77,	78,	79,	79,
+-	80,	81,	82,	83,	84,	85,	86,	87,
+-	88,	89,	90,	91,	92,	93,	94,	95,
+-	96,	97,	98,	99,	100,	101,	102,	103,
+-	104,	105,	106,	107,	108,	109,	110,	111,
+-	112,	113,	114,	115,	116,	117,	118,	119,
+-	120,	121,	122,	123,	124,	125,	126,	127};
+-
+-static int
+-search(
+-	int		val,
+-	short		*table,
+-	int		size)
+-{
+-	int		i;
+-
+-	for (i = 0; i < size; i++) {
+-		if (val <= *table++)
+-			return (i);
+-	}
+-	return (size);
+-}
+-
+-/*
+- * linear2alaw() - Convert a 16-bit linear PCM value to 8-bit A-law
+- *
+- * linear2alaw() accepts an 16-bit integer and encodes it as A-law data.
+- *
+- *		Linear Input Code	Compressed Code
+- *	------------------------	---------------
+- *	0000000wxyza			000wxyz
+- *	0000001wxyza			001wxyz
+- *	000001wxyzab			010wxyz
+- *	00001wxyzabc			011wxyz
+- *	0001wxyzabcd			100wxyz
+- *	001wxyzabcde			101wxyz
+- *	01wxyzabcdef			110wxyz
+- *	1wxyzabcdefg			111wxyz
+- *
+- * For further information see John C. Bellamy's Digital Telephony, 1982,
+- * John Wiley & Sons, pps 98-111 and 472-476.
+- */
+-unsigned char
+-linear2alaw(
+-	int		pcm_val)	/* 2's complement (16-bit range) */
+-{
+-	int		mask;
+-	int		seg;
+-	unsigned char	aval;
+-
+-	if (pcm_val >= 0) {
+-		mask = 0xD5;		/* sign (7th) bit = 1 */
+-	} else {
+-		mask = 0x55;		/* sign bit = 0 */
+-		pcm_val = -pcm_val - 8;
+-	}
+-
+-	/* Convert the scaled magnitude to segment number. */
+-	seg = search(pcm_val, seg_end, 8);
+-
+-	/* Combine the sign, segment, and quantization bits. */
+-
+-	if (seg >= 8)		/* out of range, return maximum value. */
+-		return (0x7F ^ mask);
+-	else {
+-		aval = seg << SEG_SHIFT;
+-		if (seg < 2)
+-			aval |= (pcm_val >> 4) & QUANT_MASK;
+-		else
+-			aval |= (pcm_val >> (seg + 3)) & QUANT_MASK;
+-		return (aval ^ mask);
+-	}
+-}
+-
+-/*
+- * alaw2linear() - Convert an A-law value to 16-bit linear PCM
+- *
+- */
+-int
+-alaw2linear(
+-	unsigned char	a_val)
+-{
+-	int		t;
+-	int		seg;
+-
+-	a_val ^= 0x55;
+-
+-	t = (a_val & QUANT_MASK) << 4;
+-	seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
+-	switch (seg) {
+-	case 0:
+-		t += 8;
+-		break;
+-	case 1:
+-		t += 0x108;
+-		break;
+-	default:
+-		t += 0x108;
+-		t <<= seg - 1;
+-	}
+-	return ((a_val & SIGN_BIT) ? t : -t);
+-}
+-
+-#define	BIAS		(0x84)		/* Bias for linear code. */
+-
+-/*
+- * linear2ulaw() - Convert a linear PCM value to u-law
+- *
+- * In order to simplify the encoding process, the original linear magnitude
+- * is biased by adding 33 which shifts the encoding range from (0 - 8158) to
+- * (33 - 8191). The result can be seen in the following encoding table:
+- *
+- *	Biased Linear Input Code	Compressed Code
+- *	------------------------	---------------
+- *	00000001wxyza			000wxyz
+- *	0000001wxyzab			001wxyz
+- *	000001wxyzabc			010wxyz
+- *	00001wxyzabcd			011wxyz
+- *	0001wxyzabcde			100wxyz
+- *	001wxyzabcdef			101wxyz
+- *	01wxyzabcdefg			110wxyz
+- *	1wxyzabcdefgh			111wxyz
+- *
+- * Each biased linear code has a leading 1 which identifies the segment
+- * number. The value of the segment number is equal to 7 minus the number
+- * of leading 0's. The quantization interval is directly available as the
+- * four bits wxyz.  * The trailing bits (a - h) are ignored.
+- *
+- * Ordinarily the complement of the resulting code word is used for
+- * transmission, and so the code word is complemented before it is returned.
+- *
+- * For further information see John C. Bellamy's Digital Telephony, 1982,
+- * John Wiley & Sons, pps 98-111 and 472-476.
+- */
+-unsigned char
+-linear2ulaw(
+-	int		pcm_val)	/* 2's complement (16-bit range) */
+-{
+-	int		mask;
+-	int		seg;
+-	unsigned char	uval;
+-
+-	/* Get the sign and the magnitude of the value. */
+-	if (pcm_val < 0) {
+-		pcm_val = BIAS - pcm_val;
+-		mask = 0x7F;
+-	} else {
+-		pcm_val += BIAS;
+-		mask = 0xFF;
+-	}
+-
+-	/* Convert the scaled magnitude to segment number. */
+-	seg = search(pcm_val, seg_end, 8);
+-
+-	/*
+-	 * Combine the sign, segment, quantization bits;
+-	 * and complement the code word.
+-	 */
+-	if (seg >= 8)		/* out of range, return maximum value. */
+-		return (0x7F ^ mask);
+-	else {
+-		uval = (seg << 4) | ((pcm_val >> (seg + 3)) & 0xF);
+-		return (uval ^ mask);
+-	}
+-
+-}
+-
+-/*
+- * ulaw2linear() - Convert a u-law value to 16-bit linear PCM
+- *
+- * First, a biased linear code is derived from the code word. An unbiased
+- * output can then be obtained by subtracting 33 from the biased code.
+- *
+- * Note that this function expects to be passed the complement of the
+- * original code word. This is in keeping with ISDN conventions.
+- */
+-int
+-ulaw2linear(
+-	unsigned char	u_val)
+-{
+-	int		t;
+-
+-	/* Complement to obtain normal u-law value. */
+-	u_val = ~u_val;
+-
+-	/*
+-	 * Extract and bias the quantization bits. Then
+-	 * shift up by the segment number and subtract out the bias.
+-	 */
+-	t = ((u_val & QUANT_MASK) << 3) + BIAS;
+-	t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT;
+-
+-	return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS));
+-}
+-
+-/* A-law to u-law conversion */
+-unsigned char
+-alaw2ulaw(
+-	unsigned char	aval)
+-{
+-	aval &= 0xff;
+-	return ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) :
+-	    (0x7F ^ _a2u[aval ^ 0x55]));
+-}
+-
+-/* u-law to A-law conversion */
+-unsigned char
+-ulaw2alaw(
+-	unsigned char	uval)
+-{
+-	uval &= 0xff;
+-	return ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) :
+-	    (0x55 ^ (_u2a[0x7F ^ uval] - 1)));
+-}
+-/*
+- * g72x.c
+- *
+- * Common routines for G.721 and G.723 conversions.
+- */
+-
+-static short power2[15] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80,
+-			0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000};
+-
+-/*
+- * quan()
+- *
+- * quantizes the input val against the table of size short integers.
+- * It returns i if table[i - 1] <= val < table[i].
+- *
+- * Using linear search for simple coding.
+- */
+-static int
+-quan(
+-	int		val,
+-	short		*table,
+-	int		size)
+-{
+-	int		i;
+-
+-	for (i = 0; i < size; i++)
+-		if (val < *table++)
+-			break;
+-	return (i);
+-}
+-
+-/*
+- * fmult()
+- *
+- * returns the integer product of the 14-bit integer "an" and
+- * "floating point" representation (4-bit exponent, 6-bit mantessa) "srn".
+- */
+-static int
+-fmult(
+-	int		an,
+-	int		srn)
+-{
+-	short		anmag, anexp, anmant;
+-	short		wanexp, wanmant;
+-	short		retval;
+-
+-	anmag = (an > 0) ? an : ((-an) & 0x1FFF);
+-	anexp = quan(anmag, power2, 15) - 6;
+-	anmant = (anmag == 0) ? 32 :
+-	    (anexp >= 0) ? anmag >> anexp : anmag << -anexp;
+-	wanexp = anexp + ((srn >> 6) & 0xF) - 13;
+-
+-	wanmant = (anmant * (srn & 077) + 0x30) >> 4;
+-	retval = (wanexp >= 0) ? ((wanmant << wanexp) & 0x7FFF) :
+-	    (wanmant >> -wanexp);
+-
+-	return (((an ^ srn) < 0) ? -retval : retval);
+-}
+-
+-/*
+- * g72x_init_state()
+- *
+- * This routine initializes and/or resets the g72x_state structure
+- * pointed to by 'state_ptr'.
+- * All the initial state values are specified in the CCITT G.721 document.
+- */
+-void
+-g72x_init_state(
+-	struct g72x_state *state_ptr)
+-{
+-	int		cnta;
+-
+-	state_ptr->yl = 34816;
+-	state_ptr->yu = 544;
+-	state_ptr->dms = 0;
+-	state_ptr->dml = 0;
+-	state_ptr->ap = 0;
+-	for (cnta = 0; cnta < 2; cnta++) {
+-		state_ptr->a[cnta] = 0;
+-		state_ptr->pk[cnta] = 0;
+-		state_ptr->sr[cnta] = 32;
+-	}
+-	for (cnta = 0; cnta < 6; cnta++) {
+-		state_ptr->b[cnta] = 0;
+-		state_ptr->dq[cnta] = 32;
+-	}
+-	state_ptr->td = 0;
+-}
+-
+-/*
+- * predictor_zero()
+- *
+- * computes the estimated signal from 6-zero predictor.
+- *
+- */
+-int
+-predictor_zero(
+-	struct g72x_state *state_ptr)
+-{
+-	int		i;
+-	int		sezi;
+-
+-	sezi = fmult(state_ptr->b[0] >> 2, state_ptr->dq[0]);
+-	for (i = 1; i < 6; i++)			/* ACCUM */
+-		sezi += fmult(state_ptr->b[i] >> 2, state_ptr->dq[i]);
+-	return (sezi);
+-}
+-/*
+- * predictor_pole()
+- *
+- * computes the estimated signal from 2-pole predictor.
+- *
+- */
+-int
+-predictor_pole(
+-	struct g72x_state *state_ptr)
+-{
+-	return (fmult(state_ptr->a[1] >> 2, state_ptr->sr[1]) +
+-	    fmult(state_ptr->a[0] >> 2, state_ptr->sr[0]));
+-}
+-/*
+- * step_size()
+- *
+- * computes the quantization step size of the adaptive quantizer.
+- *
+- */
+-int
+-step_size(
+-	struct g72x_state *state_ptr)
+-{
+-	int		y;
+-	int		dif;
+-	int		al;
+-
+-	if (state_ptr->ap >= 256)
+-		return (state_ptr->yu);
+-	else {
+-		y = state_ptr->yl >> 6;
+-		dif = state_ptr->yu - y;
+-		al = state_ptr->ap >> 2;
+-		if (dif > 0)
+-			y += (dif * al) >> 6;
+-		else if (dif < 0)
+-			y += (dif * al + 0x3F) >> 6;
+-		return (y);
+-	}
+-}
+-
+-/*
+- * quantize()
+- *
+- * Given a raw sample, 'd', of the difference signal and a
+- * quantization step size scale factor, 'y', this routine returns the
+- * ADPCM codeword to which that sample gets quantized.  The step
+- * size scale factor division operation is done in the log base 2 domain
+- * as a subtraction.
+- */
+-int
+-quantize(
+-	int		d,	/* Raw difference signal sample */
+-	int		y,	/* Step size multiplier */
+-	short		*table,	/* quantization table */
+-	int		size)	/* table size of short integers */
+-{
+-	short		dqm;	/* Magnitude of 'd' */
+-	short		exp;	/* Integer part of base 2 log of 'd' */
+-	short		mant;	/* Fractional part of base 2 log */
+-	short		dl;	/* Log of magnitude of 'd' */
+-	short		dln;	/* Step size scale factor normalized log */
+-	int		i;
+-
+-	/*
+-	 * LOG
+-	 *
+-	 * Compute base 2 log of 'd', and store in 'dl'.
+-	 */
+-	dqm = abs(d);
+-	exp = quan(dqm >> 1, power2, 15);
+-	mant = ((dqm << 7) >> exp) & 0x7F;	/* Fractional portion. */
+-	dl = (exp << 7) + mant;
+-
+-	/*
+-	 * SUBTB
+-	 *
+-	 * "Divide" by step size multiplier.
+-	 */
+-	dln = dl - (y >> 2);
+-
+-	/*
+-	 * QUAN
+-	 *
+-	 * Obtain codword i for 'd'.
+-	 */
+-	i = quan(dln, table, size);
+-	if (d < 0)			/* take 1's complement of i */
+-		return ((size << 1) + 1 - i);
+-	else if (i == 0)		/* take 1's complement of 0 */
+-		return ((size << 1) + 1); /* new in 1988 */
+-	else
+-		return (i);
+-}
+-/*
+- * reconstruct()
+- *
+- * Returns reconstructed difference signal 'dq' obtained from
+- * codeword 'i' and quantization step size scale factor 'y'.
+- * Multiplication is performed in log base 2 domain as addition.
+- */
+-int
+-reconstruct(
+-	int		sign,	/* 0 for non-negative value */
+-	int		dqln,	/* G.72x codeword */
+-	int		y)	/* Step size multiplier */
+-{
+-	short		dql;	/* Log of 'dq' magnitude */
+-	short		dex;	/* Integer part of log */
+-	short		dqt;
+-	short		dq;	/* Reconstructed difference signal sample */
+-
+-	dql = dqln + (y >> 2);	/* ADDA */
+-
+-	if (dql < 0) {
+-		return ((sign) ? -0x8000 : 0);
+-	} else {		/* ANTILOG */
+-		dex = (dql >> 7) & 15;
+-		dqt = 128 + (dql & 127);
+-		dq = (dqt << 7) >> (14 - dex);
+-		return ((sign) ? (dq - 0x8000) : dq);
+-	}
+-}
+-
+-
+-/*
+- * update()
+- *
+- * updates the state variables for each output code
+- */
+-void
+-update(
+-	int		code_size,	/* distinguish 723_40 with others */
+-	int		y,		/* quantizer step size */
+-	int		wi,		/* scale factor multiplier */
+-	int		fi,		/* for long/short term energies */
+-	int		dq,		/* quantized prediction difference */
+-	int		sr,		/* reconstructed signal */
+-	int		dqsez,		/* difference from 2-pole predictor */
+-	struct g72x_state *state_ptr)	/* coder state pointer */
+-{
+-	int		cnt;
+-	short		mag, exp;	/* Adaptive predictor, FLOAT A */
+-	short		a2p = 0;		/* LIMC */
+-	short		a1ul;		/* UPA1 */
+-	short		pks1;	/* UPA2 */
+-	short		fa1;
+-	char		tr;		/* tone/transition detector */
+-	short		ylint, thr2, dqthr;
+-	short  		ylfrac, thr1;
+-	short		pk0;
+-
+-	pk0 = (dqsez < 0) ? 1 : 0;	/* needed in updating predictor poles */
+-
+-	mag = dq & 0x7FFF;		/* prediction difference magnitude */
+-	/* TRANS */
+-	ylint = state_ptr->yl >> 15;	/* exponent part of yl */
+-	ylfrac = (state_ptr->yl >> 10) & 0x1F;	/* fractional part of yl */
+-	thr1 = (32 + ylfrac) << ylint;		/* threshold */
+-	thr2 = (ylint > 9) ? 31 << 10 : thr1;	/* limit thr2 to 31 << 10 */
+-	dqthr = (thr2 + (thr2 >> 1)) >> 1;	/* dqthr = 0.75 * thr2 */
+-	if (state_ptr->td == 0)		/* signal supposed voice */
+-		tr = 0;
+-	else if (mag <= dqthr)		/* supposed data, but small mag */
+-		tr = 0;			/* treated as voice */
+-	else				/* signal is data (modem) */
+-		tr = 1;
+-
+-	/*
+-	 * Quantizer scale factor adaptation.
+-	 */
+-
+-	/* FUNCTW & FILTD & DELAY */
+-	/* update non-steady state step size multiplier */
+-	state_ptr->yu = y + ((wi - y) >> 5);
+-
+-	/* LIMB */
+-	if (state_ptr->yu < 544)	/* 544 <= yu <= 5120 */
+-		state_ptr->yu = 544;
+-	else if (state_ptr->yu > 5120)
+-		state_ptr->yu = 5120;
+-
+-	/* FILTE & DELAY */
+-	/* update steady state step size multiplier */
+-	state_ptr->yl += state_ptr->yu + ((-state_ptr->yl) >> 6);
+-
+-	/*
+-	 * Adaptive predictor coefficients.
+-	 */
+-	if (tr == 1) {			/* reset a's and b's for modem signal */
+-		state_ptr->a[0] = 0;
+-		state_ptr->a[1] = 0;
+-		state_ptr->b[0] = 0;
+-		state_ptr->b[1] = 0;
+-		state_ptr->b[2] = 0;
+-		state_ptr->b[3] = 0;
+-		state_ptr->b[4] = 0;
+-		state_ptr->b[5] = 0;
+-		// TODO WHat is the correct value of a2p
+-		a2p = 0;
+-	} else {			/* update a's and b's */
+-		pks1 = pk0 ^ state_ptr->pk[0];		/* UPA2 */
+-
+-		/* update predictor pole a[1] */
+-		a2p = state_ptr->a[1] - (state_ptr->a[1] >> 7);
+-		if (dqsez != 0) {
+-			fa1 = (pks1) ? state_ptr->a[0] : -state_ptr->a[0];
+-			if (fa1 < -8191)	/* a2p = function of fa1 */
+-				a2p -= 0x100;
+-			else if (fa1 > 8191)
+-				a2p += 0xFF;
+-			else
+-				a2p += fa1 >> 5;
+-
+-			if (pk0 ^ state_ptr->pk[1])
+-				/* LIMC */
+-				if (a2p <= -12160)
+-					a2p = -12288;
+-				else if (a2p >= 12416)
+-					a2p = 12288;
+-				else
+-					a2p -= 0x80;
+-			else if (a2p <= -12416)
+-				a2p = -12288;
+-			else if (a2p >= 12160)
+-				a2p = 12288;
+-			else
+-				a2p += 0x80;
+-		}
+-
+-		/* TRIGB & DELAY */
+-		state_ptr->a[1] = a2p;
+-
+-		/* UPA1 */
+-		/* update predictor pole a[0] */
+-		state_ptr->a[0] -= state_ptr->a[0] >> 8;
+-		if (dqsez != 0)
+-			if (pks1 == 0)
+-				state_ptr->a[0] += 192;
+-			else
+-				state_ptr->a[0] -= 192;
+-
+-		/* LIMD */
+-		a1ul = 15360 - a2p;
+-		if (state_ptr->a[0] < -a1ul)
+-			state_ptr->a[0] = -a1ul;
+-		else if (state_ptr->a[0] > a1ul)
+-			state_ptr->a[0] = a1ul;
+-
+-		/* UPB : update predictor zeros b[6] */
+-		for (cnt = 0; cnt < 6; cnt++) {
+-			if (code_size == 5)		/* for 40Kbps G.723 */
+-				state_ptr->b[cnt] -= state_ptr->b[cnt] >> 9;
+-			else			/* for G.721 and 24Kbps G.723 */
+-				state_ptr->b[cnt] -= state_ptr->b[cnt] >> 8;
+-			if (dq & 0x7FFF) {			/* XOR */
+-				if ((dq ^ state_ptr->dq[cnt]) >= 0)
+-					state_ptr->b[cnt] += 128;
+-				else
+-					state_ptr->b[cnt] -= 128;
+-			}
+-		}
+-	}
+-
+-	for (cnt = 5; cnt > 0; cnt--)
+-		state_ptr->dq[cnt] = state_ptr->dq[cnt-1];
+-	/* FLOAT A : convert dq[0] to 4-bit exp, 6-bit mantissa f.p. */
+-	if (mag == 0) {
+-		state_ptr->dq[0] = (dq >= 0) ? 0x20 : 0xFC20;
+-	} else {
+-		exp = quan(mag, power2, 15);
+-		state_ptr->dq[0] = (dq >= 0) ?
+-		    (exp << 6) + ((mag << 6) >> exp) :
+-		    (exp << 6) + ((mag << 6) >> exp) - 0x400;
+-	}
+-
+-	state_ptr->sr[1] = state_ptr->sr[0];
+-	/* FLOAT B : convert sr to 4-bit exp., 6-bit mantissa f.p. */
+-	if (sr == 0) {
+-		state_ptr->sr[0] = 0x20;
+-	} else if (sr > 0) {
+-		exp = quan(sr, power2, 15);
+-		state_ptr->sr[0] = (exp << 6) + ((sr << 6) >> exp);
+-	} else if (sr > -32768) {
+-		mag = -sr;
+-		exp = quan(mag, power2, 15);
+-		state_ptr->sr[0] =  (exp << 6) + ((mag << 6) >> exp) - 0x400;
+-	} else
+-		state_ptr->sr[0] = 0xFC20;
+-
+-	/* DELAY A */
+-	state_ptr->pk[1] = state_ptr->pk[0];
+-	state_ptr->pk[0] = pk0;
+-
+-	/* TONE */
+-	if (tr == 1)		/* this sample has been treated as data */
+-		state_ptr->td = 0;	/* next one will be treated as voice */
+-	else if (a2p < -11776)	/* small sample-to-sample correlation */
+-		state_ptr->td = 1;	/* signal may be data */
+-	else				/* signal is voice */
+-		state_ptr->td = 0;
+-
+-	/*
+-	 * Adaptation speed control.
+-	 */
+-	state_ptr->dms += (fi - state_ptr->dms) >> 5;		/* FILTA */
+-	state_ptr->dml += (((fi << 2) - state_ptr->dml) >> 7);	/* FILTB */
+-
+-	if (tr == 1)
+-		state_ptr->ap = 256;
+-	else if (y < 1536)					/* SUBTC */
+-		state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
+-	else if (state_ptr->td == 1)
+-		state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
+-	else if (abs((state_ptr->dms << 2) - state_ptr->dml) >=
+-	    (state_ptr->dml >> 3))
+-		state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
+-	else
+-		state_ptr->ap += (-state_ptr->ap) >> 4;
+-}
+-
+-/*
+- * tandem_adjust(sr, se, y, i, sign)
+- *
+- * At the end of ADPCM decoding, it simulates an encoder which may be receiving
+- * the output of this decoder as a tandem process. If the output of the
+- * simulated encoder differs from the input to this decoder, the decoder output
+- * is adjusted by one level of A-law or u-law codes.
+- *
+- * Input:
+- *	sr	decoder output linear PCM sample,
+- *	se	predictor estimate sample,
+- *	y	quantizer step size,
+- *	i	decoder input code,
+- *	sign	sign bit of code i
+- *
+- * Return:
+- *	adjusted A-law or u-law compressed sample.
+- */
+-int
+-tandem_adjust_alaw(
+-	int		sr,	/* decoder output linear PCM sample */
+-	int		se,	/* predictor estimate sample */
+-	int		y,	/* quantizer step size */
+-	int		i,	/* decoder input code */
+-	int		sign,
+-	short		*qtab)
+-{
+-	unsigned char	sp;	/* A-law compressed 8-bit code */
+-	short		dx;	/* prediction error */
+-	char		id;	/* quantized prediction error */
+-	int		sd;	/* adjusted A-law decoded sample value */
+-	int		im;	/* biased magnitude of i */
+-	int		imx;	/* biased magnitude of id */
+-
+-	if (sr <= -32768)
+-		sr = -1;
+-	sp = linear2alaw((sr >> 1) << 3);	/* short to A-law compression */
+-	dx = (alaw2linear(sp) >> 2) - se;	/* 16-bit prediction error */
+-	id = quantize(dx, y, qtab, sign - 1);
+-
+-	if (id == i) {			/* no adjustment on sp */
+-		return (sp);
+-	} else {			/* sp adjustment needed */
+-		/* ADPCM codes : 8, 9, ... F, 0, 1, ... , 6, 7 */
+-		im = i ^ sign;		/* 2's complement to biased unsigned */
+-		imx = id ^ sign;
+-
+-		if (imx > im) {		/* sp adjusted to next lower value */
+-			if (sp & 0x80) {
+-				sd = (sp == 0xD5) ? 0x55 :
+-				    ((sp ^ 0x55) - 1) ^ 0x55;
+-			} else {
+-				sd = (sp == 0x2A) ? 0x2A :
+-				    ((sp ^ 0x55) + 1) ^ 0x55;
+-			}
+-		} else {		/* sp adjusted to next higher value */
+-			if (sp & 0x80)
+-				sd = (sp == 0xAA) ? 0xAA :
+-				    ((sp ^ 0x55) + 1) ^ 0x55;
+-			else
+-				sd = (sp == 0x55) ? 0xD5 :
+-				    ((sp ^ 0x55) - 1) ^ 0x55;
+-		}
+-		return (sd);
+-	}
+-}
+-
+-int
+-tandem_adjust_ulaw(
+-	int		sr,	/* decoder output linear PCM sample */
+-	int		se,	/* predictor estimate sample */
+-	int		y,	/* quantizer step size */
+-	int		i,	/* decoder input code */
+-	int		sign,
+-	short		*qtab)
+-{
+-	unsigned char	sp;	/* u-law compressed 8-bit code */
+-	short		dx;	/* prediction error */
+-	char		id;	/* quantized prediction error */
+-	int		sd;	/* adjusted u-law decoded sample value */
+-	int		im;	/* biased magnitude of i */
+-	int		imx;	/* biased magnitude of id */
+-
+-	if (sr <= -32768)
+-		sr = 0;
+-	sp = linear2ulaw(sr << 2);	/* short to u-law compression */
+-	dx = (ulaw2linear(sp) >> 2) - se;	/* 16-bit prediction error */
+-	id = quantize(dx, y, qtab, sign - 1);
+-	if (id == i) {
+-		return (sp);
+-	} else {
+-		/* ADPCM codes : 8, 9, ... F, 0, 1, ... , 6, 7 */
+-		im = i ^ sign;		/* 2's complement to biased unsigned */
+-		imx = id ^ sign;
+-		if (imx > im) {		/* sp adjusted to next lower value */
+-			if (sp & 0x80)
+-				sd = (sp == 0xFF) ? 0x7E : sp + 1;
+-			else
+-				sd = (sp == 0) ? 0 : sp - 1;
+-
+-		} else {		/* sp adjusted to next higher value */
+-			if (sp & 0x80)
+-				sd = (sp == 0x80) ? 0x80 : sp - 1;
+-			else
+-				sd = (sp == 0x7F) ? 0xFE : sp + 1;
+-		}
+-		return (sd);
+-	}
+-}
+-/*
+- * g721.c
+- *
+- * Description:
+- *
+- * g721_encoder(), g721_decoder()
+- *
+- * These routines comprise an implementation of the CCITT G.721 ADPCM
+- * coding algorithm.  Essentially, this implementation is identical to
+- * the bit level description except for a few deviations which
+- * take advantage of work station attributes, such as hardware 2's
+- * complement arithmetic and large memory.  Specifically, certain time
+- * consuming operations such as multiplications are replaced
+- * with lookup tables and software 2's complement operations are
+- * replaced with hardware 2's complement.
+- *
+- * The deviation from the bit level specification (lookup tables)
+- * preserves the bit level performance specifications.
+- *
+- * As outlined in the G.721 Recommendation, the algorithm is broken
+- * down into modules.  Each section of code below is preceded by
+- * the name of the module which it is implementing.
+- *
+- */
+-
+-static short qtab_721[7] = {-124, 80, 178, 246, 300, 349, 400};
+-/*
+- * Maps G.721 code word to reconstructed scale factor normalized log
+- * magnitude values.
+- */
+-static short	_dqlntab_721[16] = {-2048, 4, 135, 213, 273, 323, 373, 425,
+-				425, 373, 323, 273, 213, 135, 4, -2048};
+-
+-/* Maps G.721 code word to log of scale factor multiplier. */
+-static short	_witab_721[16] = {-12, 18, 41, 64, 112, 198, 355, 1122,
+-				1122, 355, 198, 112, 64, 41, 18, -12};
+-/*
+- * Maps G.721 code words to a set of values whose long and short
+- * term averages are computed and then compared to give an indication
+- * how stationary (steady state) the signal is.
+- */
+-static short	_fitab_721[16] = {0, 0, 0, 0x200, 0x200, 0x200, 0x600, 0xE00,
+-				0xE00, 0x600, 0x200, 0x200, 0x200, 0, 0, 0};
+-
+-/*
+- * g721_encoder()
+- *
+- * Encodes the input vale of linear PCM, A-law or u-law data sl and returns
+- * the resulting code. -1 is returned for unknown input coding value.
+- */
+-int
+-g721_encoder(
+-	int		sl,
+-	int		in_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, se, sez;		/* ACCUM */
+-	short		d;			/* SUBTA */
+-	short		sr;			/* ADDB */
+-	short		y;			/* MIX */
+-	short		dqsez;			/* ADDC */
+-	short		dq, i;
+-
+-	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+-	case AUDIO_ENCODING_ALAW:
+-		sl = alaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_ULAW:
+-		sl = ulaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_LINEAR:
+-		sl >>= 2;			/* 14-bit dynamic range */
+-		break;
+-	default:
+-		return (-1);
+-	}
+-
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	se = (sezi + predictor_pole(state_ptr)) >> 1;	/* estimated signal */
+-
+-	d = sl - se;				/* estimation difference */
+-
+-	/* quantize the prediction difference */
+-	y = step_size(state_ptr);		/* quantizer step size */
+-	i = quantize(d, y, qtab_721, 7);	/* i = ADPCM code */
+-
+-	dq = reconstruct(i & 8, _dqlntab_721[i], y);	/* quantized est diff */
+-
+-	sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq;	/* reconst. signal */
+-
+-	dqsez = sr + sez - se;			/* pole prediction diff. */
+-
+-	update(4, y, _witab_721[i] << 5, _fitab_721[i], dq, sr, dqsez, state_ptr);
+-
+-	return (i);
+-}
+-
+-/*
+- * g721_decoder()
+- *
+- * Description:
+- *
+- * Decodes a 4-bit code of G.721 encoded data of i and
+- * returns the resulting linear PCM, A-law or u-law value.
+- * return -1 for unknown out_coding value.
+- */
+-int
+-g721_decoder(
+-	int		i,
+-	int		out_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, sei, sez, se;	/* ACCUM */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dq;
+-	short		dqsez;
+-
+-	i &= 0x0f;			/* mask to get proper bits */
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	y = step_size(state_ptr);	/* dynamic quantizer step size */
+-
+-	dq = reconstruct(i & 0x08, _dqlntab_721[i], y); /* quantized diff. */
+-
+-	sr = (dq < 0) ? (se - (dq & 0x3FFF)) : se + dq;	/* reconst. signal */
+-
+-	dqsez = sr - se + sez;			/* pole prediction diff. */
+-
+-	update(4, y, _witab_721[i] << 5, _fitab_721[i], dq, sr, dqsez, state_ptr);
+-
+-	switch (out_coding) {
+-	case AUDIO_ENCODING_ALAW:
+-		return (tandem_adjust_alaw(sr, se, y, i, 8, qtab_721));
+-	case AUDIO_ENCODING_ULAW:
+-		return (tandem_adjust_ulaw(sr, se, y, i, 8, qtab_721));
+-	case AUDIO_ENCODING_LINEAR:
+-		return (sr << 2);	/* sr was 14-bit dynamic range */
+-	default:
+-		return (-1);
+-	}
+-}
+-/*
+- * g723_24.c
+- *
+- * Description:
+- *
+- * g723_24_encoder(), g723_24_decoder()
+- *
+- * These routines comprise an implementation of the CCITT G.723 24 Kbps
+- * ADPCM coding algorithm.  Essentially, this implementation is identical to
+- * the bit level description except for a few deviations which take advantage
+- * of workstation attributes, such as hardware 2's complement arithmetic.
+- *
+- */
+-
+-/*
+- * Maps G.723_24 code word to reconstructed scale factor normalized log
+- * magnitude values.
+- */
+-static short	_dqlntab_723_24[8] = {-2048, 135, 273, 373, 373, 273, 135, -2048};
+-
+-/* Maps G.723_24 code word to log of scale factor multiplier. */
+-static short	_witab_723_24[8] = {-128, 960, 4384, 18624, 18624, 4384, 960, -128};
+-
+-/*
+- * Maps G.723_24 code words to a set of values whose long and short
+- * term averages are computed and then compared to give an indication
+- * how stationary (steady state) the signal is.
+- */
+-static short	_fitab_723_24[8] = {0, 0x200, 0x400, 0xE00, 0xE00, 0x400, 0x200, 0};
+-
+-static short qtab_723_24[3] = {8, 218, 331};
+-
+-/*
+- * g723_24_encoder()
+- *
+- * Encodes a linear PCM, A-law or u-law input sample and returns its 3-bit code.
+- * Returns -1 if invalid input coding value.
+- */
+-int
+-g723_24_encoder(
+-	int		sl,
+-	int		in_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sei, sezi, se, sez;	/* ACCUM */
+-	short		d;			/* SUBTA */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dqsez;			/* ADDC */
+-	short		dq, i;
+-
+-	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+-	case AUDIO_ENCODING_ALAW:
+-		sl = alaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_ULAW:
+-		sl = ulaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_LINEAR:
+-		sl >>= 2;		/* sl of 14-bit dynamic range */
+-		break;
+-	default:
+-		return (-1);
+-	}
+-
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	d = sl - se;			/* d = estimation diff. */
+-
+-	/* quantize prediction difference d */
+-	y = step_size(state_ptr);	/* quantizer step size */
+-	i = quantize(d, y, qtab_723_24, 3);	/* i = ADPCM code */
+-	dq = reconstruct(i & 4, _dqlntab_723_24[i], y); /* quantized diff. */
+-
+-	sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconstructed signal */
+-
+-	dqsez = sr + sez - se;		/* pole prediction diff. */
+-
+-	update(3, y, _witab_723_24[i], _fitab_723_24[i], dq, sr, dqsez, state_ptr);
+-
+-	return (i);
+-}
+-
+-/*
+- * g723_24_decoder()
+- *
+- * Decodes a 3-bit CCITT G.723_24 ADPCM code and returns
+- * the resulting 16-bit linear PCM, A-law or u-law sample value.
+- * -1 is returned if the output coding is unknown.
+- */
+-int
+-g723_24_decoder(
+-	int		i,
+-	int		out_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, sei, sez, se;	/* ACCUM */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dq;
+-	short		dqsez;
+-
+-	i &= 0x07;			/* mask to get proper bits */
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	y = step_size(state_ptr);	/* adaptive quantizer step size */
+-	dq = reconstruct(i & 0x04, _dqlntab_723_24[i], y); /* unquantize pred diff */
+-
+-	sr = (dq < 0) ? (se - (dq & 0x3FFF)) : (se + dq); /* reconst. signal */
+-
+-	dqsez = sr - se + sez;			/* pole prediction diff. */
+-
+-	update(3, y, _witab_723_24[i], _fitab_723_24[i], dq, sr, dqsez, state_ptr);
+-
+-	switch (out_coding) {
+-	case AUDIO_ENCODING_ALAW:
+-		return (tandem_adjust_alaw(sr, se, y, i, 4, qtab_723_24));
+-	case AUDIO_ENCODING_ULAW:
+-		return (tandem_adjust_ulaw(sr, se, y, i, 4, qtab_723_24));
+-	case AUDIO_ENCODING_LINEAR:
+-		return (sr << 2);	/* sr was of 14-bit dynamic range */
+-	default:
+-		return (-1);
+-	}
+-}
+-/*
+- * g723_40.c
+- *
+- * Description:
+- *
+- * g723_40_encoder(), g723_40_decoder()
+- *
+- * These routines comprise an implementation of the CCITT G.723 40Kbps
+- * ADPCM coding algorithm.  Essentially, this implementation is identical to
+- * the bit level description except for a few deviations which
+- * take advantage of workstation attributes, such as hardware 2's
+- * complement arithmetic.
+- *
+- * The deviation from the bit level specification (lookup tables),
+- * preserves the bit level performance specifications.
+- *
+- * As outlined in the G.723 Recommendation, the algorithm is broken
+- * down into modules.  Each section of code below is preceded by
+- * the name of the module which it is implementing.
+- *
+- */
+-
+-/*
+- * Maps G.723_40 code word to ructeconstructed scale factor normalized log
+- * magnitude values.
+- */
+-static short	_dqlntab_723_40[32] = {-2048, -66, 28, 104, 169, 224, 274, 318,
+-				358, 395, 429, 459, 488, 514, 539, 566,
+-				566, 539, 514, 488, 459, 429, 395, 358,
+-				318, 274, 224, 169, 104, 28, -66, -2048};
+-
+-/* Maps G.723_40 code word to log of scale factor multiplier. */
+-static short	_witab_723_40[32] = {448, 448, 768, 1248, 1280, 1312, 1856, 3200,
+-			4512, 5728, 7008, 8960, 11456, 14080, 16928, 22272,
+-			22272, 16928, 14080, 11456, 8960, 7008, 5728, 4512,
+-			3200, 1856, 1312, 1280, 1248, 768, 448, 448};
+-
+-/*
+- * Maps G.723_40 code words to a set of values whose long and short
+- * term averages are computed and then compared to give an indication
+- * how stationary (steady state) the signal is.
+- */
+-static short	_fitab_723_40[32] = {0, 0, 0, 0, 0, 0x200, 0x200, 0x200,
+-			0x200, 0x200, 0x400, 0x600, 0x800, 0xA00, 0xC00, 0xC00,
+-			0xC00, 0xC00, 0xA00, 0x800, 0x600, 0x400, 0x200, 0x200,
+-			0x200, 0x200, 0x200, 0, 0, 0, 0, 0};
+-
+-static short qtab_723_40[15] = {-122, -16, 68, 139, 198, 250, 298, 339,
+-				378, 413, 445, 475, 502, 528, 553};
+-
+-/*
+- * g723_40_encoder()
+- *
+- * Encodes a 16-bit linear PCM, A-law or u-law input sample and retuens
+- * the resulting 5-bit CCITT G.723 40Kbps code.
+- * Returns -1 if the input coding value is invalid.
+- */
+-int
+-g723_40_encoder(
+-	int		sl,
+-	int		in_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sei, sezi, se, sez;	/* ACCUM */
+-	short		d;			/* SUBTA */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dqsez;			/* ADDC */
+-	short		dq, i;
+-
+-	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+-	case AUDIO_ENCODING_ALAW:
+-		sl = alaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_ULAW:
+-		sl = ulaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_LINEAR:
+-		sl >>= 2;		/* sl of 14-bit dynamic range */
+-		break;
+-	default:
+-		return (-1);
+-	}
+-
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	d = sl - se;			/* d = estimation difference */
+-
+-	/* quantize prediction difference */
+-	y = step_size(state_ptr);	/* adaptive quantizer step size */
+-	i = quantize(d, y, qtab_723_40, 15);	/* i = ADPCM code */
+-
+-	dq = reconstruct(i & 0x10, _dqlntab_723_40[i], y);	/* quantized diff */
+-
+-	sr = (dq < 0) ? se - (dq & 0x7FFF) : se + dq; /* reconstructed signal */
+-
+-	dqsez = sr + sez - se;		/* dqsez = pole prediction diff. */
+-
+-	update(5, y, _witab_723_40[i], _fitab_723_40[i], dq, sr, dqsez, state_ptr);
+-
+-	return (i);
+-}
+-
+-/*
+- * g723_40_decoder()
+- *
+- * Decodes a 5-bit CCITT G.723 40Kbps code and returns
+- * the resulting 16-bit linear PCM, A-law or u-law sample value.
+- * -1 is returned if the output coding is unknown.
+- */
+-int
+-g723_40_decoder(
+-	int		i,
+-	int		out_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, sei, sez, se;	/* ACCUM */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dq;
+-	short		dqsez;
+-
+-	i &= 0x1f;			/* mask to get proper bits */
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	y = step_size(state_ptr);	/* adaptive quantizer step size */
+-	dq = reconstruct(i & 0x10, _dqlntab_723_40[i], y);	/* estimation diff. */
+-
+-	sr = (dq < 0) ? (se - (dq & 0x7FFF)) : (se + dq); /* reconst. signal */
+-
+-	dqsez = sr - se + sez;		/* pole prediction diff. */
+-
+-	update(5, y, _witab_723_40[i], _fitab_723_40[i], dq, sr, dqsez, state_ptr);
+-
+-	switch (out_coding) {
+-	case AUDIO_ENCODING_ALAW:
+-		return (tandem_adjust_alaw(sr, se, y, i, 0x10, qtab_723_40));
+-	case AUDIO_ENCODING_ULAW:
+-		return (tandem_adjust_ulaw(sr, se, y, i, 0x10, qtab_723_40));
+-	case AUDIO_ENCODING_LINEAR:
+-		return (sr << 2);	/* sr was of 14-bit dynamic range */
+-	default:
+-		return (-1);
+-	}
+-}
+Index: vcl/unx/source/app/vsound.hxx
+===================================================================
+RCS file: vcl/unx/source/app/vsound.hxx
+diff -N vcl/unx/source/app/vsound.hxx
+--- vcl/unx/source/app/vsound.hxx	19 Jun 2006 19:52:31 -0000	1.11
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,118 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: vsound.hxx,v $
+- *
+- *  $Revision: 1.11 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/19 19:52:31 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-#ifndef _VCL_VSOUND_HXX
+-#define _VCL_VSOUND_HXX
+-
+-#if (defined(LINUX)) || defined(FREEBSD)
+-#define USE_OSS
+-#endif
+-
+-#ifdef SOLARIS
+-#define USE_DEVAUDIO
+-#endif
+-
+-#if STLPORT_VERSION>=321
+-#include <cstdarg>
+-#endif
+-#include <sys/stat.h>
+-#include <tools/string.hxx>
+-
+-class X11SalSound;
+-
+-namespace vcl_sal {
+-	class VSound
+-	{
+-        protected:
+-		VSound( ::X11SalSound* pSound ) : m_pSalSound( pSound ), m_pBuffer( NULL ) {}
+-        
+-		// instance data
+-		::X11SalSound*			m_pSalSound;
+-		// pointer to mmaped file
+-		char*		m_pBuffer;
+-		struct stat m_aStat;
+-        
+-        void initBuffer();
+-        void releaseBuffer();
+-        
+-		virtual BOOL isValid() = 0;
+-        public:
+-		virtual ~VSound() {}
+-        
+-		virtual void play() = 0;
+-		virtual void stop() = 0;
+-		virtual void pause() = 0;
+-		virtual void cont() = 0;
+-        
+-		static VSound* createVSound( X11SalSound* );
+-	};
+-    
+-    
+-    // a class to convert bytestreams from one codec to another
+-    class AudioConverter
+-    {
+-        public:
+-        virtual ~AudioConverter();
+-        
+-        virtual void reset() = 0;
+-        // the returned memory should be deleted by user
+-        virtual char* convert( char* pBuffer, int nBytesIn, int& nBytesOut ) = 0;
+-        
+-        // conversion from G721 encoded data
+-        // input is G721 conforming byte buffer (actually nibble buffer)
+-        // output is uLaw encoded byte buffer
+-        static AudioConverter* createG721ToULawConverter();
+-        
+-        static AudioConverter* createINT8ToUINT16Converter();
+-        static AudioConverter* createSwapINT16Converter();
+-    };
+-}
+-
+-#if OSL_DEBUG_LEVEL > 1
+-#include <stdarg.h>
+-#include <stdio.h>
+-inline void SalDbgAssert( const char* pFmt, ... )
+-{
+-	va_list ap;
+-	va_start( ap, pFmt );
+-	vfprintf( stderr, pFmt, ap );
+-	va_end( ap );
+-}
+-#else
+-inline void SalDbgAssert( const char*, ... )
+-{
+-}
+-#endif
+-
+-#endif
+Index: vcl/util/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/util/makefile.mk,v
+retrieving revision 1.100
+retrieving revision 1.98.10.3
+diff -u -p -u -p -r1.100 -r1.98.10.3
+--- vcl/util/makefile.mk	15 Oct 2007 13:07:51 -0000	1.100
++++ vcl/util/makefile.mk	23 Oct 2007 09:05:48 -0000	1.98.10.3
+@@ -300,25 +300,6 @@ SHL2STDLIBS += $(XINERAMALIBS)
+ SHL2STDLIBS+=`pkg-config --libs xrender`
+ .ENDIF
+ 
+-
+-.IF "$(ENABLE_PASF)" != ""
+-SHL2STDLIBS += $(SNDFILELIB) -lportaudio
+-.IF "$(OS)"=="MACOSX"
+-SHL2STDLIBS += -framework CoreAudio -framework AudioToolbox
+-.ENDIF # "$(OS)"=="MACOSX"
+-.ENDIF # "$(ENABLE_PASF)"!=""
+-
+-.IF "$(ENABLE_NAS)" != ""
+-SHL2STDLIBS += -laudio
+-.IF "$(XAU_LIBS)" != ""
+-SHL2STDLIBS += $(XAU_LIBS)
+-.ENDIF
+-.IF "$(OS)"=="SOLARIS"
+-# needed by libaudio.a
+-SHL2STDLIBS += -ldl -lnsl -lsocket
+-.ENDIF # SOLARIS
+-.ENDIF
+-
+ .IF "$(GUIBASE)"=="unx"
+ 
+ .IF "$(WITH_LIBSN)"=="YES"
+Index: vcl/win/inc/saldata.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/win/inc/saldata.hxx,v
+retrieving revision 1.28
+retrieving revision 1.28.60.1
+diff -u -p -u -p -r1.28 -r1.28.60.1
+--- vcl/win/inc/saldata.hxx	27 Jun 2007 20:53:03 -0000	1.28
++++ vcl/win/inc/saldata.hxx	31 Aug 2007 09:44:58 -0000	1.28.60.1
+@@ -297,10 +297,6 @@ int ImplSalWICompareAscii( const wchar_t
+ #define SAL_MSG_CREATEOBJECT        (WM_USER+116)
+ // wParam == 0; lParam == pObject;
+ #define SAL_MSG_DESTROYOBJECT       (WM_USER+117)
+-// wParam == 0; lParam == this; lResult == bRet
+-#define SAL_MSG_CREATESOUND         (WM_USER+118)
+-// wParam == 0; lParam == this
+-#define SAL_MSG_DESTROYSOUND        (WM_USER+119)
+ // wParam == hWnd; lParam == 0; lResult == hDC
+ #define SAL_MSG_GETDC               (WM_USER+120)
+ // wParam == hWnd; lParam == 0
+Index: vcl/win/inc/salinst.h
+===================================================================
+RCS file: /cvs/gsl/vcl/win/inc/salinst.h,v
+retrieving revision 1.13
+retrieving revision 1.13.60.1
+diff -u -p -u -p -r1.13 -r1.13.60.1
+--- vcl/win/inc/salinst.h	27 Jun 2007 20:53:41 -0000	1.13
++++ vcl/win/inc/salinst.h	31 Aug 2007 09:44:58 -0000	1.13.60.1
+@@ -83,7 +83,6 @@ public:
+     virtual void			GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+     virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String             GetDefaultPrinter();
+-    virtual SalSound*			CreateSalSound();
+     virtual SalTimer*			CreateSalTimer();
+     virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+Index: vcl/win/inc/salsound.h
+===================================================================
+RCS file: vcl/win/inc/salsound.h
+diff -N vcl/win/inc/salsound.h
+--- vcl/win/inc/salsound.h	27 Jun 2007 20:55:12 -0000	1.5
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,108 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.h,v $
+- *
+- *  $Revision: 1.5 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:55:12 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_H
+-#define _SV_SALSOUND_H
+-
+-#ifndef _SV_WINCOMP_HXX
+-#include <wincomp.hxx>
+-#endif
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-#ifndef _STRING_HXX
+-#include <tools/string.hxx>
+-#endif
+-
+-#ifndef _SV_SV_H
+-#include <vcl/sv.h>
+-#endif
+-
+-#include <osl/module.h>
+-
+-#ifndef _SV_SALFRAME_HXX
+-#include <vcl/salframe.hxx>
+-#endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-class WinSalSound : public SalSound
+-{
+-private:
+-	static oslModule	mhMCILib;
+-	static ULONG		mnSoundState;
+-	static void*		mpMCIFnc;
+-	ULONG				mnStartTime;
+-	ULONG				mnPlayLen;
+-	HWND				mhSoundWnd;
+-	UINT				mnDeviceId;
+-	bool				mbLoop;
+-	bool				mbPaused;
+-
+-public:
+-	void				ImplSetError( DWORD nMciErr );
+-	void				ImplNotify( SoundNotification eNotification, ULONG nError );
+-
+-public:
+-    WinSalSound();
+-    virtual ~WinSalSound();
+-    
+-    virtual bool		IsValid();
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen );
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+-	virtual void		Stop();
+-	virtual void		Pause();
+-	virtual void		Continue();
+-    virtual bool		IsLoopMode() const;
+-	virtual bool		IsPlaying() const;
+-    virtual bool		IsPaused() const;
+-
+-
+-	bool				ImplCreate();
+-	void				ImplDestroy();
+-	static void 		Release();
+-};
+-
+-#endif // _SV_SALSOUND_H
+Index: vcl/win/inc/salsound.hxx
+===================================================================
+RCS file: vcl/win/inc/salsound.hxx
+diff -N vcl/win/inc/salsound.hxx
+--- vcl/win/inc/salsound.hxx	27 Jun 2007 20:55:24 -0000	1.3
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,104 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:55:24 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_HXX
+-#define _SV_SALSOUND_HXX
+-
+-#ifndef _SV_WINCOMP_HXX
+-#include <wincomp.hxx>
+-#endif
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-#ifndef _STRING_HXX
+-#include <tools/string.hxx>
+-#endif
+-
+-#ifndef _SV_SV_H
+-#include <vcl/sv.h>
+-#endif
+-
+-#ifndef _SV_SALFRAME_HXX
+-#include <vcl/salframe.hxx>
+-#endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-class SalSound
+-{
+-private:
+-	static HINSTANCE	mhMCILib;
+-	static ULONG		mnSoundState;
+-	static void*		mpMCIFnc;
+-	SALSOUNDPROC		mpProc;
+-	void*				mpInst;
+-	ULONG				mnStartTime;
+-	ULONG				mnPlayLen;
+-	HWND				mhSoundWnd;
+-	UINT				mnDeviceId;
+-	BOOL				mbLoop;
+-	BOOL				mbPaused;
+-
+-public:
+-	void				ImplSetError( DWORD nMciErr );
+-	void				ImplNotify( SoundNotification eNotification, ULONG nError );
+-
+-public:
+-						SalSound();
+-						~SalSound();
+-
+-	BOOL				ImplCreate();
+-	BOOL				Create();
+-	void				ImplDestroy();
+-	static void 		Release();
+-	static BOOL 		IsValid() { return( SOUND_STATE_VALID == SalSound::mnSoundState ); }
+-
+-	BOOL				Init( SalFrame* pFrame, const String& rSoundName, ULONG& rSoundLen );
+-	BOOL				Init( SalFrame* pFrame, const BYTE* pSound, ULONG nDataLen, ULONG& rSoundLen );
+-	void				Play( ULONG nStartTime, ULONG nPlayTime, BOOL bLoop );
+-	void				Stop();
+-	void				Pause();
+-
+-	void				SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
+-							{ mpInst = pInst; mpProc = pProc; }
+-};
+-
+-#endif // _SV_SALSOUND_HXX
+Index: vcl/win/source/app/MAKEFILE.MK
+===================================================================
+RCS file: /cvs/gsl/vcl/win/source/app/MAKEFILE.MK,v
+retrieving revision 1.8
+retrieving revision 1.8.160.1
+diff -u -p -u -p -r1.8 -r1.8.160.1
+--- vcl/win/source/app/MAKEFILE.MK	6 Feb 2007 14:20:03 -0000	1.8
++++ vcl/win/source/app/MAKEFILE.MK	31 Aug 2007 09:44:58 -0000	1.8.160.1
+@@ -56,7 +56,6 @@ SLOFILES=   $(SLO)$/salshl.obj      \
+             $(SLO)$/saldata.obj     \
+             $(SLO)$/salinst.obj     \
+             $(SLO)$/saltimer.obj    \
+-            $(SLO)$/salsound.obj    \
+             $(SLO)$/salinfo.obj
+ 
+ # --- Targets ------------------------------------------------------
+Index: vcl/win/source/app/salinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/win/source/app/salinst.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.12.1
+diff -u -p -u -p -r1.39 -r1.39.12.1
+--- vcl/win/source/app/salinst.cxx	2 Aug 2007 18:29:24 -0000	1.39
++++ vcl/win/source/app/salinst.cxx	31 Aug 2007 09:44:58 -0000	1.39.12.1
+@@ -77,9 +77,6 @@
+ #ifndef _SV_SALTIMER_H
+ #include <saltimer.h>
+ #endif
+-#ifndef _SV_SALSOUND_H
+-#include <salsound.h>
+-#endif
+ #ifndef _SV_SALATYPE_HXX
+ #include <vcl/salatype.hxx>
+ #endif
+@@ -873,14 +870,6 @@ LRESULT CALLBACK SalComWndProc( HWND hWn
+ 			delete (SalObject*)lParam;
+ 			rDef = FALSE;
+ 			break;
+-		case SAL_MSG_CREATESOUND:
+-			nRet = ((WinSalSound*)lParam)->ImplCreate();
+-			rDef = FALSE;
+-			break;
+-		case SAL_MSG_DESTROYSOUND:
+-			((WinSalSound*)lParam)->ImplDestroy();
+-			rDef = FALSE;
+-			break;
+ 		case SAL_MSG_GETDC:
+ 			nRet = (LRESULT)GetDCEx( (HWND)wParam, 0, DCX_CACHE );
+ 			rDef = FALSE;
+@@ -1120,13 +1109,6 @@ SalTimer* WinSalInstance::CreateSalTimer
+ 
+ // -----------------------------------------------------------------------
+ 
+-SalSound* WinSalInstance::CreateSalSound()
+-{
+-	return new WinSalSound();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+ SalOpenGL* WinSalInstance::CreateSalOpenGL( SalGraphics* pGraphics )
+ {
+ 	return new WinSalOpenGL( pGraphics );
+Index: vcl/win/source/app/salsound.cxx
+===================================================================
+RCS file: vcl/win/source/app/salsound.cxx
+diff -N vcl/win/source/app/salsound.cxx
+--- vcl/win/source/app/salsound.cxx	26 Mar 2007 14:40:21 -0000	1.9
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,527 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.cxx,v $
+- *
+- *  $Revision: 1.9 $
+- *
+- *  last change: $Author: vg $ $Date: 2007/03/26 14:40:21 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#define INCLUDE_MMSYSTEM
+-
+-// ------------
+-// - Includes -
+-// ------------
+-
+-#ifndef _SVWIN_H
+-#include <tools/svwin.h>
+-#endif
+-
+-#ifndef _SV_SALDATA_HXX
+-#include <saldata.hxx>
+-#endif
+-#ifndef _SV_SALINST_H
+-#include <salinst.h>
+-#endif
+-#ifndef _SV_SALSOUND_H
+-#include <salsound.h>
+-#endif
+-
+-// ---------
+-// - Names -
+-// ---------
+-
+-#define SOUND_LIBNAME		"WINMM.DLL"
+-#define SOUND_PROCNAMEA 	"mciSendCommandA"
+-#define SOUND_PROCNAMEW 	"mciSendCommandW"
+-#define SOUND_WINDOWCLASSA	"SALSOUNDWND"
+-#define SOUND_WINDOWCLASSW	L"SALSOUNDWND"
+-
+-// ------------
+-// - Fnc cast -
+-// ------------
+-
+-#define __MCI_CALL __stdcall
+-
+-#define MCIFNC ((DWORD( __MCI_CALL * )( UINT, UINT, DWORD, DWORD )) WinSalSound::mpMCIFnc)
+-
+-// -----------------
+-// - Statics init. -
+-// -----------------
+-
+-oslModule	WinSalSound::mhMCILib = 0;
+-ULONG		WinSalSound::mnSoundState = SOUND_STATE_UNLOADED;
+-void*		WinSalSound::mpMCIFnc = NULL;
+-
+-// -------------------
+-// - Window-Callback -
+-// -------------------
+-
+-void ImplSalHandleMCINotify( HWND hWnd, WPARAM nPar1, LPARAM )
+-{
+-	SoundNotification	eNotification = SOUND_NOTIFY_SUCCESS;
+-	BOOL				bNotify = TRUE;
+-
+-	switch ( nPar1 )
+-	{
+-		case( MCI_NOTIFY_SUCCESSFUL ):
+-			eNotification = SOUND_NOTIFY_SUCCESS;
+-			break;
+-
+-		case( MCI_NOTIFY_ABORTED ):
+-			eNotification = SOUND_NOTIFY_ABORTED;
+-			break;
+-
+-		case( MCI_NOTIFY_FAILURE ):
+-			eNotification = SOUND_NOTIFY_ERROR;
+-			break;
+-
+-		default:
+-			bNotify = FALSE;
+-	}
+-
+-	if ( bNotify )
+-		((WinSalSound*)GetWindowLong( hWnd, 0 ) )->ImplNotify( eNotification, 0 );
+-}
+-
+-LRESULT CALLBACK SalSoundWndProcA( HWND hWnd, UINT nMsg, WPARAM nPar1, LPARAM nPar2 )
+-{
+-	if ( MM_MCINOTIFY == nMsg )
+-		ImplSalHandleMCINotify( hWnd, nPar1, nPar2 );
+-	return DefWindowProcA( hWnd, nMsg, nPar1, nPar2 );
+-}
+-
+-LRESULT CALLBACK SalSoundWndProcW( HWND hWnd, UINT nMsg, WPARAM nPar1, LPARAM nPar2 )
+-{
+-	if ( MM_MCINOTIFY == nMsg )
+-		ImplSalHandleMCINotify( hWnd, nPar1, nPar2 );
+-	return DefWindowProcW( hWnd, nMsg, nPar1, nPar2 );
+-}
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-WinSalSound::WinSalSound() :
+-	mhSoundWnd		( 0 ),
+-	mnDeviceId		( 0 ),
+-	mbLoop			( FALSE ),
+-	mbPaused		( FALSE )
+-{
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-WinSalSound::~WinSalSound()
+-{
+-	Stop();
+-
+-	if ( mnDeviceId )
+-	{
+-		// close device
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD) mhSoundWnd;
+-		MCIFNC( mnDeviceId, MCI_CLOSE, MCI_WAIT, (DWORD)&aGenericParams );
+-	}
+-
+-	// Call Destroy in the main thread, because Create is also called in
+-	// the main thread and if we don't call this also in the main thread
+-	// windows doesn't destroy the window
+-	WinSalInstance* pInst = GetSalData()->mpFirstInstance;
+-	if ( pInst )
+-	{
+-		ImplSendMessage( pInst->mhComWnd, SAL_MSG_DESTROYSOUND,
+-						 0, (LPARAM)this );
+-	}
+-	else
+-		ImplDestroy();
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::ImplSetError( DWORD nMciErr )
+-{
+-	struct aMapper { DWORD nMci; ULONG nSv; };
+-
+-	ULONG			nError = SOUNDERR_GENERAL_ERROR;
+-	static aMapper	aErrArr[] =
+-	{
+-		{ 0, SOUNDERR_SUCCESS },
+-		{ MCIERR_CANNOT_LOAD_DRIVER, SOUNDERR_CANNOT_LOAD_DRIVER },
+-		{ MCIERR_DEVICE_LOCKED, SOUNDERR_DEVICE_LOCKED },
+-		{ MCIERR_DEVICE_NOT_INSTALLED, SOUNDERR_DEVICE_NOT_FOUND },
+-		{ MCIERR_DEVICE_NOT_READY, SOUNDERR_DEVICE_NOT_READY },
+-		{ MCIERR_DEVICE_TYPE_REQUIRED, SOUNDERR_DEVICE_NOT_FOUND },
+-		{ MCIERR_DRIVER, SOUNDERR_CANNOT_LOAD_DRIVER },
+-		{ MCIERR_DRIVER_INTERNAL, SOUNDERR_CANNOT_LOAD_DRIVER  },
+-		{ MCIERR_EXTENSION_NOT_FOUND, SOUNDERR_SOUND_NOT_FOUND },
+-		{ MCIERR_FILE_NOT_FOUND, SOUNDERR_SOUND_NOT_FOUND },
+-		{ MCIERR_FILE_READ, SOUNDERR_CANNOT_READ_SOUND },
+-		{ MCIERR_FILENAME_REQUIRED, SOUNDERR_SOUND_NOT_FOUND },
+-		{ MCIERR_HARDWARE, SOUNDERR_HARDWARE_ERROR },
+-		{ MCIERR_INVALID_DEVICE_NAME, SOUNDERR_DEVICE_NOT_FOUND },
+-		{ MCIERR_INVALID_FILE, SOUNDERR_INVALID_FILE },
+-		{ MCIERR_OUT_OF_MEMORY, SOUNDERR_OUT_OF_MEMORY },
+-		{ MCIERR_UNSUPPORTED_FUNCTION, SOUNDERR_UNSUPPORTED_FUNCTION }
+-	};
+-
+-	for ( USHORT n=0; n < (sizeof( aErrArr ) / sizeof( aMapper ) ); n++ )
+-	{
+-		if ( aErrArr[ n ].nMci == nMciErr )
+-		{
+-			nError = aErrArr[ n ].nSv;
+-			break;
+-		}
+-	}
+-
+-	if ( nError )
+-		ImplNotify( SOUND_NOTIFY_ERROR, nError );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::ImplNotify( SoundNotification eNotification, ULONG nError )
+-{
+-	if ( mbLoop && (SOUND_NOTIFY_SUCCESS == eNotification) && !nError )
+-		Play( mnStartTime, mnPlayLen, TRUE );
+-
+-    CallNotifyProc( eNotification, nError );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::ImplCreate()
+-{
+-	SalData*	pData = GetSalData();
+-	bool		bRet = FALSE;
+-
+-	if ( SOUND_STATE_UNLOADED == WinSalSound::mnSoundState )
+-	{
+-		// load library and init fncpointer
+-		if ( aSalShlData.mbWNT )
+-		{
+-            OUString aLibraryName( RTL_CONSTASCII_USTRINGPARAM( SOUND_LIBNAME ) );
+-            OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( SOUND_PROCNAMEW ) );
+-            if ( (WinSalSound::mhMCILib = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT )) != 0 &&
+-				 (WinSalSound::mpMCIFnc = (void*)osl_getSymbol( WinSalSound::mhMCILib, queryFuncName.pData )) != 0 )
+-			{
+-				WNDCLASSEXW aWndClass;
+-
+-				memset( &aWndClass, 0, sizeof( aWndClass ) );
+-				aWndClass.cbSize		= sizeof( aWndClass );
+-				aWndClass.lpfnWndProc	= SalSoundWndProcW;
+-				aWndClass.cbWndExtra	= sizeof( SalSound* );
+-				aWndClass.hInstance 	= pData->mhInst;
+-				aWndClass.lpszClassName = SOUND_WINDOWCLASSW;
+-				if ( RegisterClassExW( &aWndClass ) )
+-				{
+-					WinSalSound::mnSoundState = SOUND_STATE_VALID;
+-					bRet = TRUE;
+-				}
+-			}
+-		}
+-		else
+-		{
+-            OUString aLibraryName( RTL_CONSTASCII_USTRINGPARAM( SOUND_LIBNAME ) );
+-            OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( SOUND_PROCNAMEA ) );
+-            if ( (WinSalSound::mhMCILib = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT )) != 0 &&
+-				 (WinSalSound::mpMCIFnc = (void*)osl_getSymbol( WinSalSound::mhMCILib, queryFuncName.pData )) != 0 )
+-			{
+-				WNDCLASSEXA aWndClass;
+-
+-				memset( &aWndClass, 0, sizeof( aWndClass ) );
+-				aWndClass.cbSize		= sizeof( aWndClass );
+-				aWndClass.lpfnWndProc	= SalSoundWndProcA;
+-				aWndClass.cbWndExtra	= sizeof( SalSound* );
+-				aWndClass.hInstance 	= pData->mhInst;
+-				aWndClass.lpszClassName = SOUND_WINDOWCLASSA;
+-				if ( RegisterClassExA( &aWndClass ) )
+-				{
+-					WinSalSound::mnSoundState = SOUND_STATE_VALID;
+-					bRet = TRUE;
+-				}
+-			}
+-		}
+-
+-		if ( !bRet )
+-		{
+-			if ( WinSalSound::mhMCILib )
+-            {
+-				osl_unloadModule( WinSalSound::mhMCILib );
+-                WinSalSound::mhMCILib = NULL;
+-            }
+-
+-			WinSalSound::mnSoundState = SOUND_STATE_INVALID;
+-			ImplNotify( SOUND_NOTIFY_ERROR, SOUNDERR_CANNOT_LOAD_DRIVER );
+-		}
+-	}
+-	else if ( SOUND_STATE_VALID == WinSalSound::mnSoundState )
+-		bRet = TRUE;
+-
+-	if ( bRet )
+-	{
+-		// Create message window
+-		if ( aSalShlData.mbWNT )
+-		{
+-			mhSoundWnd = CreateWindowExW( 0, SOUND_WINDOWCLASSW, L"", 0, 0, 0, 0, 0,
+-										  HWND_DESKTOP, NULL, pData->mhInst, 0 );
+-		}
+-		else
+-		{
+-			mhSoundWnd = CreateWindowExA( 0, SOUND_WINDOWCLASSA, "", 0, 0, 0, 0, 0,
+-										  HWND_DESKTOP, NULL, pData->mhInst, 0 );
+-		}
+-		SetWindowLong( mhSoundWnd, 0, (LONG)this );
+-	}
+-	else
+-		mhSoundWnd = 0;
+-
+-	return bRet;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsValid()
+-{
+-	// Call Create in the main thread, because in the other case the
+-	// Sound stop, if the calling thread dies.
+-	WinSalInstance* pInst = GetSalData()->mpFirstInstance;
+-	if ( pInst )
+-	{
+-		return (BOOL)ImplSendMessage( pInst->mhComWnd, SAL_MSG_CREATESOUND,
+-									  0, (LPARAM)this );
+-	}
+-	else
+-		return ImplCreate();
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::ImplDestroy()
+-{
+-	if ( mhSoundWnd )
+-		DestroyWindow( mhSoundWnd );
+-	mhSoundWnd = 0;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Release()
+-{
+-	// free library
+-	if ( WinSalSound::mhMCILib )
+-    {
+-		osl_unloadModule( WinSalSound::mhMCILib );
+-        WinSalSound::mhMCILib = NULL;
+-    }
+-
+-	WinSalSound::mnSoundState = SOUND_STATE_UNLOADED;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::Init( const XubString& rSoundName, ULONG& rSoundLen )
+-{
+-	DWORD nMciErr = 0;
+-	rSoundLen = 0;
+-
+-	// clear old device
+-	if ( mnDeviceId )
+-	{
+-		Stop();
+-
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD) mhSoundWnd;
+-		nMciErr = MCIFNC( mnDeviceId, MCI_CLOSE, MCI_WAIT, (DWORD) &aGenericParams );
+-		mnDeviceId = 0;
+-	}
+-
+-	if ( rSoundName.Len() )
+-	{
+-		UINT nDeviceId;
+-		if ( aSalShlData.mbWNT )
+-		{
+-			MCI_OPEN_PARMSW aOpenParams;
+-			aOpenParams.dwCallback = (DWORD)mhSoundWnd;
+-			aOpenParams.lpstrElementName =  reinterpret_cast<LPCWSTR>(rSoundName.GetBuffer());
+-			aOpenParams.wDeviceID = 0;
+-			aOpenParams.lpstrDeviceType = 0;
+-			aOpenParams.lpstrAlias = 0;
+-			nMciErr = MCIFNC( 0, MCI_OPEN, MCI_WAIT | MCI_OPEN_ELEMENT, (DWORD)&aOpenParams );
+-			nDeviceId = aOpenParams.wDeviceID;
+-		}
+-		else
+-		{
+-			ByteString aSoundName( ImplSalGetWinAnsiString( rSoundName, TRUE ) );
+-			MCI_OPEN_PARMSA aOpenParams;
+-			aOpenParams.dwCallback = (DWORD)mhSoundWnd;
+-			aOpenParams.lpstrElementName = aSoundName.GetBuffer();
+-			aOpenParams.wDeviceID = 0;
+-			aOpenParams.lpstrDeviceType = 0;
+-			aOpenParams.lpstrAlias = 0;
+-			nMciErr = MCIFNC( 0, MCI_OPEN, MCI_WAIT | MCI_OPEN_ELEMENT, (DWORD)&aOpenParams );
+-			nDeviceId = aOpenParams.wDeviceID;
+-		}
+-
+-		if ( !nMciErr )
+-		{
+-			// set time format
+-			MCI_SET_PARMS aSetParams;
+-			mnDeviceId = nDeviceId;
+-			aSetParams.dwTimeFormat = MCI_FORMAT_MILLISECONDS;
+-			nMciErr = MCIFNC( mnDeviceId, MCI_SET, MCI_WAIT | MCI_SET_TIME_FORMAT, (DWORD)&aSetParams );
+-
+-			if ( !nMciErr )
+-			{
+-				// get length of sound
+-				MCI_STATUS_PARMS aStatus;
+-				aStatus.dwItem = MCI_STATUS_LENGTH;
+-				nMciErr = MCIFNC( mnDeviceId, MCI_STATUS, MCI_WAIT | MCI_STATUS_ITEM, (DWORD)&aStatus );
+-
+-				if ( !nMciErr )
+-					rSoundLen = (ULONG)aStatus.dwReturn;
+-			}
+-		}
+-	}
+-
+-	if ( nMciErr )
+-		ImplSetError( nMciErr );
+-
+-	return (nMciErr ? false : true);
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Play( ULONG nStartTime, ULONG nPlayLen, bool bLoop )
+-{
+-	if ( mnDeviceId )
+-	{
+-		DWORD nMciErr = 0;
+-
+-		if ( !mbPaused )
+-		{
+-			MCI_SEEK_PARMS aSeekParams;
+-			aSeekParams.dwCallback = (DWORD) mhSoundWnd;
+-			aSeekParams.dwTo = 0;
+-			nMciErr = MCIFNC( mnDeviceId, MCI_SEEK,MCI_WAIT | MCI_TO, (DWORD) &aSeekParams );
+-		}
+-
+-		mnStartTime = nStartTime;
+-		mnPlayLen = nPlayLen;
+-		mbLoop = bLoop;
+-		mbPaused = false;
+-
+-		if( !nMciErr )
+-		{
+-			MCI_PLAY_PARMS	aPlayParams;
+-			DWORD			nFlags = MCI_NOTIFY;
+-
+-			aPlayParams.dwCallback = (DWORD)mhSoundWnd;
+-
+-			if ( nStartTime )
+-			{
+-				aPlayParams.dwFrom = nStartTime;
+-				nFlags |= MCI_FROM;
+-			}
+-
+-			if ( nPlayLen != SOUND_PLAYALL )
+-			{
+-				aPlayParams.dwTo = nStartTime + nPlayLen;
+-				nFlags |= MCI_TO;
+-			}
+-
+-			nMciErr = MCIFNC( mnDeviceId, MCI_PLAY, nFlags, (DWORD) &aPlayParams );
+-
+-			if ( !nMciErr )
+-				mbPaused = FALSE;
+-		}
+-
+-		if ( nMciErr )
+-			ImplSetError( nMciErr );
+-	}
+-	else
+-		ImplSetError( MCIERR_INVALID_FILE );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Stop()
+-{
+-	if ( mnDeviceId )
+-	{
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD)mhSoundWnd;
+-		mbLoop = mbPaused = false;
+-		MCIFNC( mnDeviceId, MCI_STOP, MCI_WAIT, (DWORD) &aGenericParams );
+-	}
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Pause()
+-{
+-	if ( mnDeviceId )
+-	{
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD)mhSoundWnd;
+-		mbPaused = true;
+-		MCIFNC( mnDeviceId, MCI_PAUSE, MCI_WAIT, (DWORD) &aGenericParams );
+-	}
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Continue()
+-{
+-    Play( 0, 0, mbLoop );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsLoopMode() const
+-{
+-    return mbLoop;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsPlaying() const
+-{
+-    return !mbPaused;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsPaused() const
+-{
+-    return mbPaused;
+-}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-pagein-sort.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-pagein-sort.diff
@@ -0,0 +1,183 @@
+Index: desktop/source/pagein/pagein.c
+===================================================================
+RCS file: /cvs/framework/desktop/source/pagein/pagein.c,v
+retrieving revision 1.4
+diff -u -p -u -r1.4 pagein.c
+--- desktop/source/pagein/pagein.c	21 Nov 2006 17:29:36 -0000	1.4
++++ desktop/source/pagein/pagein.c	31 Aug 2007 15:51:04 -0000
+@@ -39,6 +39,22 @@
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
++#include <sys/types.h>
++#include <dirent.h>
++
++int verbosity = 0;
++
++typedef struct {
++    char *name;
++    ino_t inode;
++} FileEntry;
++
++typedef struct {
++    FileEntry *data;
++    long       len;
++    long       alloc;
++} Files;
+ 
+ /* do_pagein */
+ static int do_pagein (const char * filename, size_t * size)
+@@ -56,20 +72,42 @@ static int do_pagein (const char * filen
+ 	}
+ 
+ 	if (size)
+-	{
+-		*size = image.m_size;
+-	}
+-
++		*size += image.m_size;
++    
+ cleanup_and_leave:
+ 	file_image_close (&image);
+ 	return (result);
+ }
+ 
++static void queue_pagein (Files *files, const char * filename)
++{
++    if (files->alloc <= files->len) {
++        files->alloc = files->alloc ? files->alloc * 2 : 16;
++        files->data = realloc (files->data, sizeof (FileEntry) * files->alloc);
++    }
++    files->data[files->len].name = strdup (filename);
++    files->data[files->len].inode = 0;
++    files->len++;
++}
++
++static int compare_inode (const void *ap, const void *bp)
++{
++    ino_t a = ((FileEntry *)ap)->inode;
++    ino_t b = ((FileEntry *)bp)->inode;
++    if (a == b)
++        return 0;
++    if (a > b)
++        return 1;
++    else
++        return -1;
++}
++
+ /* main */
+-int  main (int argc, char **argv)
++int main (int argc, char **argv)
+ {
+-	int    i, v = 0;
+-	size_t nfiles = 0, nbytes = 0;
++	int i;
++    size_t total_bytes = 0;
++    Files files = { NULL, 0, 0 };
+ 
+ 	if (argc < 2)
+ 	{
+@@ -82,8 +120,7 @@ int  main (int argc, char **argv)
+ 
+ 	for (i = 1; i < argc; i++)
+ 	{
+-		FILE   * fp = 0;
+-		size_t   k  = 0;
++		FILE *fp = NULL;
+ 
+ 		if (argv[i][0] == '-')
+ 		{
+@@ -93,8 +130,8 @@ int  main (int argc, char **argv)
+ 			{
+ 				case 'v':
+ 					/* verbosity level */
+-					for (v += 1, j += 1; argv[i][j]; j++)
+-						v += (argv[i][j] == 'v');
++					for (verbosity += 1, j += 1; argv[i][j]; j++)
++						verbosity += (argv[i][j] == 'v');
+ 					break;
+ 				case 'L':
+ 					/* search path */
+@@ -119,18 +156,12 @@ int  main (int argc, char **argv)
+ 				fprintf (stderr, "fopen: %s\n", strerror(errno));
+ 				continue;
+ 			}
++            if (verbosity > 1)
++                fprintf (stderr, "read names from '%s'\n", argv[i]);
+ 			while (fgets (path, sizeof(path), fp) != 0)
+ 			{
+-				path[strlen(path) - 1] = '\0', k = 0;
+-				if (do_pagein (path, &k) == 0)
+-				{
+-					/* accumulate total size */
+-					nbytes += k;
+-				}
+-
+-				if (v >= 2)
+-					fprintf (stderr, "pagein(\"%s\") = %d bytes\n", path, (int) k);
+-				nfiles += 1;
++				path[strlen(path) - 1] = '\0';
++				queue_pagein (&files, path);
+ 			}
+ 			fclose (fp);
+ 		}
+@@ -139,19 +170,46 @@ int  main (int argc, char **argv)
+ 			if (fp != 0)
+ 				fclose (fp);
+ 
+-			if (do_pagein (argv[i], &k) == 0)
+-			{
+-				/* accumulate total size */
+-				nbytes += k;
+-			}
+-
+-			if (v >= 2)
+-				fprintf (stderr, "pagein(\"%s\") = %d bytes\n", argv[i], (int) k);
+-			nfiles += 1;
++			queue_pagein (&files, argv[i]);
+ 		}
+ 	}
+ 
+-	if (v >= 1)
+-		fprintf (stderr, "Total: %d files (%d bytes)\n", (int) nfiles, (int) nbytes);
+-	return (0);
++    if (files.len > 0)
++    {
++        DIR *dir = opendir (".");
++        struct dirent *item;
++
++        /* Read inode data */
++        while ((item = readdir (dir)) != NULL)
++        {
++            for (i = 0; i < files.len; i++)
++            {
++                if (!strcmp (files.data[i].name, item->d_name))
++                {   /* XSI ext'n ? */
++                    files.data[i].inode = item->d_ino;
++                    break;
++                }
++            }
++        }
++
++        /* sort by inode - good proxy for on-disk location */
++        qsort (files.data, files.len, sizeof (FileEntry), compare_inode);
++
++        if (verbosity > 0)
++        {
++            fprintf (stderr, "sorted files:\n");
++            for (i = 0; i < files.len; i++)
++                fprintf (stderr, "\t(0x%.8ld) '%s'\n",
++                         (long)files.data[i].inode, files.data[i].name);
++        }
++    }
++
++    for (i = 0; i < files.len; i++)
++        do_pagein (files.data[i].name, &total_bytes);
++
++    if (verbosity >= 1)
++        fprintf (stderr, "Total: %d files (%d bytes)\n",
++                 (int) files.len, (int) total_bytes);
++
++	return 0;
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-section-import-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-section-import-fix.diff
@@ -0,0 +1,15 @@
+--- sw_save/source/filter/ww8/ww8par.cxx	2007-11-26 18:30:58.000000000 +0100
++++ sw/source/filter/ww8/ww8par.cxx	2008-02-26 03:55:14.000000000 +0100
+@@ -2768,8 +2728,10 @@
+             else if (!nInTable)
+             {
+                 // Always insert a txtnode for a column break, e.g. ##
+-                AppendTxtNode(*pPaM->GetPoint());
+-                rDoc.Insert(*pPaM, SvxFmtBreakItem(SVX_BREAK_COLUMN_BEFORE, RES_BREAK), 0);
++		SwCntntNode *pCntNd=pPaM->GetCntntNode();
++		if (pCntNd!=NULL && pCntNd->Len()>0) // if par is empty not break is needed                
++		    AppendTxtNode(*pPaM->GetPoint());
++		rDoc.Insert(*pPaM, SvxFmtBreakItem(SVX_BREAK_COLUMN_BEFORE, RES_BREAK), 0);
+             }
+             break;
+         case 0x7:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cjk-character-units-fix-376788.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cjk-character-units-fix-376788.diff
@@ -0,0 +1,220 @@
+--- sw/source/ui/app/swmodul1.cxx	2008-04-14 14:05:13.000000000 +0800
++++ sw/source/ui/app/swmodul1.cxx	2008-04-17 13:51:11.000000000 +0800
+@@ -91,6 +91,9 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
++#ifndef _SVTOOLS_CJKOPTIONS_HXX
++#include <svtools/cjkoptions.hxx>
++#endif
+ #ifndef _SWMODULE_HXX
+ #include <swmodule.hxx>
+ #endif
+@@ -384,10 +387,15 @@ void SwModule::ApplyUserCharUnit(BOOL bA
+ 	}
+ 	else
+ 	{
+-		if ( eHScrollMetric == FUNIT_CHAR )
+-			eHScrollMetric == FUNIT_CM;
+-		if ( eVScrollMetric == FUNIT_LINE )
+-			eVScrollMetric == FUNIT_CM;
++		SvtCJKOptions aCJKOptions;
++		if ( !aCJKOptions.IsAsianTypographyEnabled() && ( eHScrollMetric == FUNIT_CHAR ))
++			eHScrollMetric = FUNIT_INCH;
++		else if ( eHScrollMetric == FUNIT_CHAR )
++			eHScrollMetric = FUNIT_CM;
++		if ( !aCJKOptions.IsAsianTypographyEnabled() && ( eVScrollMetric == FUNIT_LINE ))
++			eVScrollMetric = FUNIT_INCH;
++		else if ( eVScrollMetric == FUNIT_LINE )
++			eVScrollMetric = FUNIT_CM;
+ 	}
+ 	SwView* pTmpView = SwModule::GetFirstView();
+ 	// fuer alle MDI-Fenster das Lineal umschalten
+--- sw/source/ui/config/optload.cxx	2008-04-14 14:05:13.000000000 +0800
++++ sw/source/ui/config/optload.cxx	2008-04-17 14:07:36.000000000 +0800
+@@ -163,7 +163,6 @@ SwLoadOptPage::SwLoadOptPage( Window* pP
+ 			case FUNIT_POINT:
+ 			case FUNIT_PICA:
+ 			case FUNIT_INCH:
+-			case FUNIT_CHAR:
+ 			{
+ 				// nur diese Metriken benutzen
+ 				USHORT nPos = aMetricLB.InsertEntry( sMetric );
+@@ -265,9 +264,12 @@ BOOL __EXPORT SwLoadOptPage::FillItemSet
+         bRet = TRUE;
+     }
+ 
+-	if(aUseCharUnit.IsChecked() != aUseCharUnit.GetSavedValue())
++	sal_Bool bIsUseCharUnitFlag = aUseCharUnit.IsChecked();
++	SvtCJKOptions aCJKOptions;
++        bIsUseCharUnitFlag = bIsUseCharUnitFlag && aCJKOptions.IsAsianTypographyEnabled();
++	if( bIsUseCharUnitFlag != aUseCharUnit.GetSavedValue())
+ 	{
+-		rSet.Put(SfxBoolItem(SID_ATTR_APPLYCHARUNIT, aUseCharUnit.IsChecked()));
++		rSet.Put(SfxBoolItem(SID_ATTR_APPLYCHARUNIT, bIsUseCharUnitFlag ));
+ 		bRet = TRUE;
+ 	}
+ 
+--- sw/source/ui/misc/pggrid.cxx	2008-04-15 15:27:38.000000000 +0800
++++ sw/source/ui/misc/pggrid.cxx	2008-04-11 16:28:19.000000000 +0800
+@@ -365,9 +365,9 @@ void SwTextGridPage::PutGridItem(SfxItem
+                 m_bHRulerChanged = sal_True;
+             }
+             m_bVRulerChanged = sal_True;
++            pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
++            pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
+         }
+-        pView->GetHLineal().SetCharWidth((long)(aCharWidthMF.GetValue(FUNIT_TWIP)/56.7));
+-        pView->GetVLineal().SetLineHeight((long)(aTextSizeMF.GetValue(FUNIT_TWIP)/56.7));
+ }
+ /* -----------------------------08.02.2002 10:54------------------------------
+ 
+--- sw/source/ui/uiview/view.cxx	2008-04-14 14:05:13.000000000 +0800
++++ sw/source/ui/uiview/view.cxx	2008-04-17 17:27:49.000000000 +0800
+@@ -1068,16 +1068,40 @@ SwView::SwView( SfxViewFrame *_pFrame, S
+ 
+     BOOL bApplyCharUnit = pUsrPref->IsApplyCharUnit();
+     SvtCJKOptions aCJKOptions;
+-    if ( aCJKOptions.IsAsianTypographyEnabled() && bApplyCharUnit )
+-        pHRuler->SetUnit( FUNIT_CHAR );
++    if ( aCJKOptions.IsAsianTypographyEnabled() )
++    {
++        if ( bApplyCharUnit )
++            eMetric = FUNIT_CHAR;
++        else
++        {
++            if ( eMetric == FUNIT_CHAR )
++                eMetric = FUNIT_CM;
++        }
++    }
+     else
+-        pHRuler->SetUnit( eMetric );
++    {
++        if ( eMetric == FUNIT_CHAR )
++            eMetric = FUNIT_INCH;
++    }
++    pHRuler->SetUnit( eMetric );
+ 
+     eMetric = pUsrPref->GetVScrollMetric();
+-    if ( aCJKOptions.IsAsianTypographyEnabled() && bApplyCharUnit )
+-        pVRuler->SetUnit(FUNIT_LINE);
++    if ( aCJKOptions.IsAsianTypographyEnabled() )
++    {
++        if ( bApplyCharUnit )
++            eMetric = FUNIT_LINE;
++        else
++        {
++            if ( eMetric == FUNIT_LINE )
++                eMetric = FUNIT_CM;
++        }
++    }
+     else
+-        pVRuler->SetUnit( eMetric );
++    {
++        if ( eMetric == FUNIT_LINE )
++            eMetric = FUNIT_INCH;
++    }
++    pVRuler->SetUnit( eMetric );
+ 
+         pHRuler->SetCharWidth( 371 );  // default character width
+         pVRuler->SetLineHeight( 551 );  // default line height
+--- svx/source/dialog/paragrph.cxx	2008-04-15 15:27:38.000000000 +0800
++++ svx/source/dialog/paragrph.cxx	2008-04-17 18:11:00.000000000 +0800
+@@ -106,6 +106,9 @@
+ #include <svtools/eitem.hxx> //add CHINA001
+ #include <sfx2/request.hxx> //add CHINA001
+ #include <svtools/intitem.hxx> //add CHINA001
++#ifndef _SVTOOLS_CJKOPTIONS_HXX
++#include <svtools/cjkoptions.hxx>
++#endif
+ 
+ // static ----------------------------------------------------------------
+ 
+@@ -485,18 +488,26 @@ void SvxStdParagraphTabPage::Reset( cons
+ 
+ 	BOOL bApplyCharUnit = sal_False ;
+ 	bApplyCharUnit = GetApplyCharUnit( &rSet );
++	
++	SvtCJKOptions aCJKOptions;
++ 	if(aCJKOptions.IsAsianTypographyEnabled() && bApplyCharUnit )
++		eFUnit = FUNIT_CHAR;
+ 
+-	if ( bApplyCharUnit )
+-		eFUnit = FUNIT_CHAR;  // Amelia
+ 	SetFieldUnit( aLeftIndent, eFUnit );
+ 	SetFieldUnit( aRightIndent, eFUnit );
+ 	SetFieldUnit( aFLineIndent, eFUnit );
+-	if ( bApplyCharUnit )
+-		eFUnit = FUNIT_LINE;   // Amelia
+-	SetFieldUnit( aTopDist, eFUnit );
+-	SetFieldUnit( aBottomDist, eFUnit );
+-	eFUnit = FUNIT_POINT;
+-	SetFieldUnit( aLineDistAtMetricBox, eFUnit );
++	if ( eFUnit == FUNIT_CHAR )
++	{
++		SetFieldUnit( aTopDist, FUNIT_LINE );
++		SetFieldUnit( aBottomDist, FUNIT_LINE );
++		SetFieldUnit( aLineDistAtMetricBox, FUNIT_POINT );
++	}
++	else
++	{
++		SetFieldUnit( aTopDist, eFUnit );
++		SetFieldUnit( aBottomDist, eFUnit );
++		SetFieldUnit( aLineDistAtMetricBox, eFUnit );
++	}
+ 
+     USHORT _nWhich = GetWhich( SID_ATTR_LRSPACE );
+     SfxItemState eItemState = rSet.GetItemState( _nWhich );
+@@ -588,7 +599,10 @@ void SvxStdParagraphTabPage::Reset( cons
+ 			else
+ 			{
+ 				aTopDist.SetRelative();
+-				SetFieldUnit( aTopDist, eFUnit );
++				if ( eFUnit == FUNIT_CHAR )
++					SetFieldUnit( aTopDist, FUNIT_LINE );
++				else
++					SetFieldUnit( aTopDist, eFUnit );
+ 				SetMetricValue( aTopDist, rOldItem.GetUpper(), eUnit );
+ 			}
+ 
+@@ -600,7 +614,10 @@ void SvxStdParagraphTabPage::Reset( cons
+ 			else
+ 			{
+ 				aBottomDist.SetRelative();
+-				SetFieldUnit( aBottomDist, eFUnit );
++				if ( eFUnit == FUNIT_CHAR )
++					SetFieldUnit( aBottomDist, FUNIT_LINE );
++				else
++					SetFieldUnit( aBottomDist, eFUnit );
+ 				SetMetricValue( aBottomDist, rOldItem.GetLower(), eUnit );
+ 			}
+ 		}
+--- svtools/source/control/ruler.cxx	2008-04-15 15:27:38.000000000 +0800
++++ svtools/source/control/ruler.cxx	2008-04-11 16:28:19.000000000 +0800
+@@ -284,6 +284,8 @@ void Ruler::ImplInit( WinBits nWinBits )
+     mnExtraStyle    = 0;                    // Style des Extra-Feldes
+     mnExtraClicks   = 0;                    // Click-Anzahl fuer Extra-Feld
+     mnExtraModifier = 0;                    // Modifier-Tasten beim Click im Extrafeld
++    mnCharWidth     = 371;
++    mnLineHeight    = 551;
+     mbCalc          = TRUE;                 // Muessen Pagebreiten neu berechnet werden
+     mbFormat        = TRUE;                 // Muss neu ausgegeben werden
+     mbDrag          = FALSE;                // Sind wir im Drag-Modus
+@@ -492,6 +494,8 @@ void Ruler::ImplDrawTicks( long nMin, lo
+     long    nTick2 ;
+     if ( mnUnitIndex == RULER_UNIT_CHAR )
+     {
++        if ( mnCharWidth == 0 )
++            mnCharWidth = 371;
+         nTick3 = mnCharWidth*2;
+         nTickCount = mnCharWidth;
+         nTickUnit = mnCharWidth;
+@@ -499,6 +503,8 @@ void Ruler::ImplDrawTicks( long nMin, lo
+     }
+     else if ( mnUnitIndex == RULER_UNIT_LINE )
+     {
++        if ( mnLineHeight == 0 )
++            mnLineHeight = 551;
+         nTick3 = mnLineHeight*2;
+         nTickCount = mnLineHeight;
+         nTickUnit = mnLineHeight;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libxmlsec-system-nss.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libxmlsec-system-nss.diff
@@ -0,0 +1,2659 @@
+--- libxmlsec.orig/xmlsec1-1.2.6.patch	2007-07-18 14:11:10.000000000 +0200
++++ libxmlsec/xmlsec1-1.2.6.patch	2007-07-18 14:24:48.000000000 +0200
+@@ -20,370 +20,6 @@
+ *** misc/xmlsec1-1.2.6/configure	Thu Aug 26 08:00:34 2004
+ --- misc/build/xmlsec1-1.2.6/configure	Fri May 11 14:47:19 2007
+ ***************
+-*** 463,469 ****
+-  # include <unistd.h>
+-  #endif"
+-  
+-! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os XMLSEC_VERSION XMLSEC_PACKAGE XMLSEC_VERSION_SAFE XMLSEC_VERSION_MAJOR XMLSEC_VERSION_MINOR XMLSEC_VERSION_SUBMINOR XMLSEC_VERSION_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL RM CP MV TAR HELP2MAN MAN2HTML U ANSI2KNR INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL PKG_CONFIG_ENABLED PKG_CONFIG LIBXML_CFLAGS LIBXML_LIBS LIBXML262_CFLAGS LIBXML262_LIBS LIBXML_CONFIG LIBXML_MIN_VERSION LIBXSLT_CFLAGS LIBXSLT_LIBS XMLSEC_NO_LIBXSLT LIBXSLT_CONFIG LIBXSLT_MIN_VERSION OPENSSL_CFLAGS OPENSSL_LIBS OPENSSL097_CFLAGS OPENSSL097_LIBS XMLSEC_NO_OPENSSL_TRUE XMLSEC_NO_OPENSSL_FALSE XMLSEC_NO_OPENSSL OPENSSL_CRYPTO_LIB OPENSSL_MIN_VERSION GNUTLS_CFLAGS GNUTLS_LIBS XMLSEC_NO_GNUTLS_TRUE XMLSEC_NO_GNUTLS_FALSE XMLSEC_NO_GNUTLS GNUTLS_CRYPTO_LIB GNUTLS_MIN_VERSION NSS_CFLAGS NSS_LIBS XMLSEC_NO_NSS_TRUE XMLSEC_NO_NSS_FALSE XMLSEC_NO_NSS NSS_CRYPTO_LIB NSS_MIN_VERSION NSPR_MIN_VERSION MOZILLA_MIN_VERSION XMLSEC_NO_SHA1_TRUE XMLSEC_NO_SHA1_FALSE XMLSEC_NO_SHA1 XMLSEC_NO_RIPEMD160_TRUE XMLSEC_NO_RIPEMD160_FALSE XMLSEC_NO_RIPEMD160 XMLSEC_NO_HMAC_TRUE XMLSEC_NO_HMAC_FALSE XMLSEC_NO_HMAC XMLSEC_NO_DSA_TRUE XMLSEC_NO_DSA_FALSE XMLSEC_NO_DSA XMLSEC_NO_RSA_TRUE XMLSEC_NO_RSA_FALSE XMLSEC_NO_RSA XMLSEC_NO_X509_TRUE XMLSEC_NO_X509_FALSE XMLSEC_NO_X509 XMLSEC_NO_DES_TRUE XMLSEC_NO_DES_FALSE XMLSEC_NO_DES XMLSEC_NO_AES_TRUE XMLSEC_NO_AES_FALSE XMLSEC_NO_AES XMLSEC_NO_XMLDSIG_TRUE XMLSEC_NO_XMLDSIG_FALSE XMLSEC_NO_XMLDSIG XMLSEC_NO_XMLENC_TRUE XMLSEC_NO_XMLENC_FALSE XMLSEC_NO_XMLENC XMLSEC_NO_XKMS_TRUE XMLSEC_NO_XKMS_FALSE XMLSEC_NO_XKMS XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE XMLSEC_NO_CRYPTO_DYNAMIC_LOADING XMLSEC_DL_INCLUDES XMLSEC_DL_LIBS XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING XMLSEC_DOCDIR XMLSEC_STATIC_BINARIES XMLSEC_CORE_CFLAGS XMLSEC_CORE_LIBS XMLSEC_LIBDIR XMLSEC_OPENSSL_CFLAGS XMLSEC_OPENSSL_LIBS XMLSEC_GNUTLS_CFLAGS XMLSEC_GNUTLS_LIBS XMLSEC_NSS_CFLAGS XMLSEC_NSS_LIBS XMLSEC_CFLAGS XMLSEC_LIBS XMLSEC_DEFINES XMLSEC_APP_DEFINES XMLSEC_CRYPTO XMLSEC_CRYPTO_LIST XMLSEC_CRYPTO_DISABLED_LIST XMLSEC_CRYPTO_LIB XMLSEC_CRYPTO_CFLAGS XMLSEC_CRYPTO_LIBS XMLSEC_CRYPTO_PC_FILES_LIST LIBOBJS LTLIBOBJS'
+-  ac_subst_files=''
+-  
+-  # Initialize some variables set by options.
+---- 463,469 ----
+-  # include <unistd.h>
+-  #endif"
+-  
+-! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os XMLSEC_VERSION XMLSEC_PACKAGE XMLSEC_VERSION_SAFE XMLSEC_VERSION_MAJOR XMLSEC_VERSION_MINOR XMLSEC_VERSION_SUBMINOR XMLSEC_VERSION_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL RM CP MV TAR HELP2MAN MAN2HTML U ANSI2KNR INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL PKG_CONFIG_ENABLED PKG_CONFIG LIBXML_CFLAGS LIBXML_LIBS LIBXML262_CFLAGS LIBXML262_LIBS LIBXML_CONFIG LIBXML_MIN_VERSION LIBXSLT_CFLAGS LIBXSLT_LIBS XMLSEC_NO_LIBXSLT LIBXSLT_CONFIG LIBXSLT_MIN_VERSION OPENSSL_CFLAGS OPENSSL_LIBS OPENSSL097_CFLAGS OPENSSL097_LIBS XMLSEC_NO_OPENSSL_TRUE XMLSEC_NO_OPENSSL_FALSE XMLSEC_NO_OPENSSL OPENSSL_CRYPTO_LIB OPENSSL_MIN_VERSION GNUTLS_CFLAGS GNUTLS_LIBS XMLSEC_NO_GNUTLS_TRUE XMLSEC_NO_GNUTLS_FALSE XMLSEC_NO_GNUTLS GNUTLS_CRYPTO_LIB GNUTLS_MIN_VERSION NSS_CFLAGS NSS_LIBS XMLSEC_NO_NSS_TRUE XMLSEC_NO_NSS_FALSE XMLSEC_NO_NSS NSS_CRYPTO_LIB NSS_MIN_VERSION NSPR_MIN_VERSION MOZILLA_MIN_VERSION MSCRYPTO_CFLAGS MSCRYPTO_LIBS XMLSEC_NO_SHA1_TRUE XMLSEC_NO_SHA1_FALSE XMLSEC_NO_SHA1 XMLSEC_NO_RIPEMD160_TRUE XMLSEC_NO_RIPEMD160_FALSE XMLSEC_NO_RIPEMD160 XMLSEC_NO_HMAC_TRUE XMLSEC_NO_HMAC_FALSE XMLSEC_NO_HMAC XMLSEC_NO_DSA_TRUE XMLSEC_NO_DSA_FALSE XMLSEC_NO_DSA XMLSEC_NO_RSA_TRUE XMLSEC_NO_RSA_FALSE XMLSEC_NO_RSA XMLSEC_NO_X509_TRUE XMLSEC_NO_X509_FALSE XMLSEC_NO_X509 XMLSEC_NO_DES_TRUE XMLSEC_NO_DES_FALSE XMLSEC_NO_DES XMLSEC_NO_AES_TRUE XMLSEC_NO_AES_FALSE XMLSEC_NO_AES XMLSEC_NO_XMLDSIG_TRUE XMLSEC_NO_XMLDSIG_FALSE XMLSEC_NO_XMLDSIG XMLSEC_NO_XMLENC_TRUE XMLSEC_NO_XMLENC_FALSE XMLSEC_NO_XMLENC XMLSEC_NO_XKMS_TRUE XMLSEC_NO_XKMS_FALSE XMLSEC_NO_XKMS XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE XMLSEC_NO_CRYPTO_DYNAMIC_LOADING XMLSEC_DL_INCLUDES XMLSEC_DL_LIBS XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING XMLSEC_DOCDIR XMLSEC_STATIC_BINARIES XMLSEC_CORE_CFLAGS XMLSEC_CORE_LIBS XMLSEC_LIBDIR XMLSEC_OPENSSL_CFLAGS XMLSEC_OPENSSL_LIBS XMLSEC_GNUTLS_CFLAGS XMLSEC_GNUTLS_LIBS XMLSEC_NSS_CFLAGS XMLSEC_NSS_LIBS XMLSEC_CFLAGS XMLSEC_LIBS XMLSEC_DEFINES XMLSEC_APP_DEFINES XMLSEC_CRYPTO XMLSEC_CRYPTO_LIST XMLSEC_CRYPTO_DISABLED_LIST XMLSEC_CRYPTO_LIB XMLSEC_CRYPTO_CFLAGS XMLSEC_CRYPTO_LIBS XMLSEC_CRYPTO_PC_FILES_LIST LIBOBJS LTLIBOBJS'
+-  ac_subst_files=''
+-  
+-  # Initialize some variables set by options.
+-***************
+-*** 1072,1077 ****
+---- 1072,1078 ----
+-    --with-nss=PFX          nss location
+-    --with-nspr=PFX         nspr location (needed for NSS)
+-    --with-mozilla-ver=VER  mozilla version (alt to --with-nss, --with-nspr)
+-+   --with-mscrypto         try to use mscrypto
+-    --with-html-dir=PATH    path to installed docs
+-  
+-  Some influential environment variables:
+-***************
+-*** 2045,2052 ****
+-  
+-  ac_ext=c
+-  ac_cpp='$CPP $CPPFLAGS'
+-! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-  ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-  if test -n "$ac_tool_prefix"; then
+-    # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+---- 2046,2053 ----
+-  
+-  ac_ext=c
+-  ac_cpp='$CPP $CPPFLAGS'
+-! ac_compile='$CC -c $ADDCFLAGS $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-! ac_link='$CC -o conftest$ac_exeext $ADDCFLAGS $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-  ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-  if test -n "$ac_tool_prefix"; then
+-    # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-***************
+-*** 2698,2712 ****
+-    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
+-  echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+---- 2699,2713 ----
+-    CFLAGS=$ac_save_CFLAGS
+-  elif test $ac_cv_prog_cc_g = yes; then
+-    if test "$GCC" = yes; then
+-!     CFLAGS="$ADDCFLAGS -g -O2"
+-    else
+-!     CFLAGS="$ADDCFLAGS -g"
+-    fi
+-  else
+-    if test "$GCC" = yes; then
+-!     CFLAGS="$ADDCFLAGS -O2"
+-    else
+-!     CFLAGS="$ADDCFLAGS"
+-    fi
+-  fi
+-  echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+-***************
+-*** 6350,6360 ****
+-        lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-  
+-!     beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-  
+-!     mingw* | pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic='-DDLL_EXPORT'
+---- 6351,6361 ----
+-        lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-  
+-!     beos* | cygwin* | mingw* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-  
+-!     pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic='-DDLL_EXPORT'
+-***************
+-*** 6409,6415 ****
+-        fi
+-        ;;
+-  
+-!     mingw* | pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic='-DDLL_EXPORT'
+---- 6410,6416 ----
+-        fi
+-        ;;
+-  
+-!     pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic='-DDLL_EXPORT'
+-***************
+-*** 6752,6758 ****
+-        export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  
+-        if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+-  	# If the export-symbols file already is a .def file (1st line
+-  	# is EXPORTS), use it as is; otherwise, prepend...
+-  	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+---- 6753,6759 ----
+-        export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  
+-        if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--exclude-libs,ALL ${wl}--out-implib,$lib'
+-  	# If the export-symbols file already is a .def file (1st line
+-  	# is EXPORTS), use it as is; otherwise, prepend...
+-  	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+-***************
+-*** 7778,7784 ****
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+---- 7779,7785 ----
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+-***************
+-*** 9046,9052 ****
+-        ;;
+-      esac
+-      output_verbose_link_cmd='echo'
+-!     archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
+-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+---- 9047,9053 ----
+-        ;;
+-      esac
+-      output_verbose_link_cmd='echo'
+-!     archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name @executable_path/$soname $verstring'
+-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+-***************
+-*** 10088,10094 ****
+-      enable_shared_with_static_runtimes_CXX=yes
+-  
+-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!       archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+-        # If the export-symbols file already is a .def file (1st line
+-        # is EXPORTS), use it as is; otherwise, prepend...
+-        archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+---- 10089,10095 ----
+-      enable_shared_with_static_runtimes_CXX=yes
+-  
+-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!       archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--exclude-libs,ALL ${wl}--out-implib,$lib'
+-        # If the export-symbols file already is a .def file (1st line
+-        # is EXPORTS), use it as is; otherwise, prepend...
+-        archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+-***************
+-*** 10816,10825 ****
+-        # like `-m68040'.
+-        lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-!     beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-!     mingw* | os2* | pw32*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+---- 10817,10826 ----
+-        # like `-m68040'.
+-        lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-!     beos* | cygwin* | mingw* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-!     os2* | pw32*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+-***************
+-*** 11497,11503 ****
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+---- 11498,11504 ----
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+-***************
+-*** 13259,13269 ****
+-        lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-  
+-!     beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-  
+-!     mingw* | pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+---- 13260,13270 ----
+-        lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-  
+-!     beos* | cygwin* | mingw* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-  
+-!     pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+-***************
+-*** 13661,13667 ****
+-        export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  
+-        if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!         archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+-  	# If the export-symbols file already is a .def file (1st line
+-  	# is EXPORTS), use it as is; otherwise, prepend...
+-  	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+---- 13662,13668 ----
+-        export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  
+-        if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!         archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--exclude-libs,ALL ${wl}--out-implib,$lib'
+-  	# If the export-symbols file already is a .def file (1st line
+-  	# is EXPORTS), use it as is; otherwise, prepend...
+-  	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+-***************
+-*** 14667,14673 ****
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+---- 14668,14674 ----
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+-***************
+-*** 15607,15617 ****
+-        lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-  
+-!     beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-  
+-!     mingw* | pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+---- 15608,15618 ----
+-        lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+-        ;;
+-  
+-!     beos* | cygwin* | mingw* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+-        # PIC is the default for these OSes.
+-        ;;
+-  
+-!     pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+-***************
+-*** 15666,15672 ****
+-        fi
+-        ;;
+-  
+-!     mingw* | pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+---- 15667,15673 ----
+-        fi
+-        ;;
+-  
+-!     pw32* | os2*)
+-        # This hack is so that the source file can tell whether it is being
+-        # built for inclusion in a dll (and should export symbols for example).
+-        lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+-***************
+-*** 16009,16015 ****
+-        export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  
+-        if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!         archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+-  	# If the export-symbols file already is a .def file (1st line
+-  	# is EXPORTS), use it as is; otherwise, prepend...
+-  	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+---- 16010,16016 ----
+-        export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+-  
+-        if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+-!         archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--exclude-libs,ALL ${wl}--out-implib,$lib'
+-  	# If the export-symbols file already is a .def file (1st line
+-  	# is EXPORTS), use it as is; otherwise, prepend...
+-  	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+-***************
+-*** 17035,17041 ****
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+---- 17036,17042 ----
+-    ;;
+-  
+-  freebsd*)
+-!   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
+-    version_type=freebsd-$objformat
+-    case $version_type in
+-      freebsd-elf*)
+-***************
+ *** 24598,24604 ****
+   fi
+   
+@@ -392,7 +28,7 @@
+   LIBXML_CFLAGS=""
+   LIBXML_LIBS=""
+   LIBXML_FOUND="no"
+---- 24599,24605 ----
++--- 24598,24604 ----
+   fi
+   
+   LIBXML_MIN_VERSION="2.4.2"
+@@ -414,7 +50,7 @@
+   NSS_CRYPTO_LIB="$PACKAGE-nss"
+   NSS_FOUND="no"
+   
+---- 25679,25704 ----
++--- 25678,25703 ----
+   
+   XMLSEC_NO_NSS="1"
+   MOZILLA_MIN_VERSION="1.4"
+@@ -425,7 +61,7 @@
+   NSPR_MIN_VERSION="4.0"
+   NSS_CFLAGS=""
+   NSS_LIBS=""
+-!  
++! 
+ ! case $host_os in
+ ! cygwin* | mingw* | pw32*)
+ !   NSS_LIBS_LIST="-lnss3 -lsmime3"
+@@ -466,27 +102,27 @@
+               echo "$as_me:$LINENO: result: $NSS_LIBS" >&5
+   echo "${ECHO_T}$NSS_LIBS" >&6
+           else
+---- 25781,25803 ----
++--- 25780,25802 ----
+     else
+        PKG_CONFIG_MIN_VERSION=0.9.0
+        if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+-!         echo "$as_me:$LINENO: checking for $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION" >&5
+-! echo $ECHO_N "checking for $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION... $ECHO_C" >&6
++!         echo "$as_me:$LINENO: checking for nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" >&5
++! echo $ECHO_N "checking for nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION... $ECHO_C" >&6
+   
+-!         if $PKG_CONFIG --exists "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION" ; then
++!         if $PKG_CONFIG --exists "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" ; then
+               echo "$as_me:$LINENO: result: yes" >&5
+   echo "${ECHO_T}yes" >&6
+               succeeded=yes
+   
+               echo "$as_me:$LINENO: checking NSS_CFLAGS" >&5
+   echo $ECHO_N "checking NSS_CFLAGS... $ECHO_C" >&6
+-!             NSS_CFLAGS=`$PKG_CONFIG --cflags "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION"`
++!             NSS_CFLAGS=`$PKG_CONFIG --cflags "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION"`
+               echo "$as_me:$LINENO: result: $NSS_CFLAGS" >&5
+   echo "${ECHO_T}$NSS_CFLAGS" >&6
+   
+               echo "$as_me:$LINENO: checking NSS_LIBS" >&5
+   echo $ECHO_N "checking NSS_LIBS... $ECHO_C" >&6
+-!             NSS_LIBS=`$PKG_CONFIG --libs "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION"`
++!             NSS_LIBS=`$PKG_CONFIG --libs "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION"`
+               echo "$as_me:$LINENO: result: $NSS_LIBS" >&5
+   echo "${ECHO_T}$NSS_LIBS" >&6
+           else
+@@ -499,15 +135,122 @@
+   
+           fi
+   
+---- 25805,25811 ----
++--- 25804,25810 ----
+               NSS_LIBS=""
+               ## If we have a custom action on failure, don't print errors, but
+               ## do set a variable so people can do so.
+-!             NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION"`
++!             NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION"`
+   
+           fi
+   
+ ***************
++*** 25808,25813 ****
++--- 25822,25925 ----
++       NSS_FOUND=no
++    fi
++  
+++         if test "z$NSS_FOUND" = "zno" ; then
+++ 
+++   succeeded=no
+++ 
+++   if test -z "$PKG_CONFIG"; then
+++     # Extract the first word of "pkg-config", so it can be a program name with args.
+++ set dummy pkg-config; ac_word=$2
+++ echo "$as_me:$LINENO: checking for $ac_word" >&5
+++ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+++ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+++   echo $ECHO_N "(cached) $ECHO_C" >&6
+++ else
+++   case $PKG_CONFIG in
+++   [\\/]* | ?:[\\/]*)
+++   ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+++   ;;
+++   *)
+++   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+++ for as_dir in $PATH
+++ do
+++   IFS=$as_save_IFS
+++   test -z "$as_dir" && as_dir=.
+++   for ac_exec_ext in '' $ac_executable_extensions; do
+++   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+++     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+++     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+++     break 2
+++   fi
+++ done
+++ done
+++ 
+++   test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+++   ;;
+++ esac
+++ fi
+++ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+++ 
+++ if test -n "$PKG_CONFIG"; then
+++   echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+++ echo "${ECHO_T}$PKG_CONFIG" >&6
+++ else
+++   echo "$as_me:$LINENO: result: no" >&5
+++ echo "${ECHO_T}no" >&6
+++ fi
+++ 
+++   fi
+++ 
+++   if test "$PKG_CONFIG" = "no" ; then
+++      echo "*** The pkg-config script could not be found. Make sure it is"
+++      echo "*** in your path, or set the PKG_CONFIG environment variable"
+++      echo "*** to the full path to pkg-config."
+++      echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+++   else
+++      PKG_CONFIG_MIN_VERSION=0.9.0
+++      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+++         echo "$as_me:$LINENO: checking for $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION" >&5
+++ echo $ECHO_N "checking for $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION... $ECHO_C" >&6
+++ 
+++         if $PKG_CONFIG --exists "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION" ; then
+++             echo "$as_me:$LINENO: result: yes" >&5
+++ echo "${ECHO_T}yes" >&6
+++             succeeded=yes
+++ 
+++             echo "$as_me:$LINENO: checking NSS_CFLAGS" >&5
+++ echo $ECHO_N "checking NSS_CFLAGS... $ECHO_C" >&6
+++             NSS_CFLAGS=`$PKG_CONFIG --cflags "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION"`
+++             echo "$as_me:$LINENO: result: $NSS_CFLAGS" >&5
+++ echo "${ECHO_T}$NSS_CFLAGS" >&6
+++ 
+++             echo "$as_me:$LINENO: checking NSS_LIBS" >&5
+++ echo $ECHO_N "checking NSS_LIBS... $ECHO_C" >&6
+++             NSS_LIBS=`$PKG_CONFIG --libs "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION"`
+++             echo "$as_me:$LINENO: result: $NSS_LIBS" >&5
+++ echo "${ECHO_T}$NSS_LIBS" >&6
+++         else
+++             NSS_CFLAGS=""
+++             NSS_LIBS=""
+++             ## If we have a custom action on failure, don't print errors, but
+++             ## do set a variable so people can do so.
+++             NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION"`
+++ 
+++         fi
+++ 
+++ 
+++ 
+++      else
+++         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+++         echo "*** See http://www.freedesktop.org/software/pkgconfig"
+++      fi
+++   fi
+++ 
+++   if test $succeeded = yes; then
+++      NSS_FOUND=yes
+++   else
+++      NSS_FOUND=no
+++   fi
+++ 
+++     fi
++  fi
++  
++  if test "z$NSS_FOUND" = "zno" ; then
++***************
+ *** 25817,25824 ****
+           ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
+       fi
+@@ -517,7 +260,7 @@
+   
+       echo "$as_me:$LINENO: checking for nspr libraries >= $NSPR_MIN_VERSION" >&5
+   echo $ECHO_N "checking for nspr libraries >= $NSPR_MIN_VERSION... $ECHO_C" >&6
+---- 25832,25839 ----
++--- 25929,25936 ----
+           ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
+       fi
+   
+@@ -527,27 +270,24 @@
+       echo "$as_me:$LINENO: checking for nspr libraries >= $NSPR_MIN_VERSION" >&5
+   echo $ECHO_N "checking for nspr libraries >= $NSPR_MIN_VERSION... $ECHO_C" >&6
+ ***************
+-*** 25853,25860 ****
++*** 25853,25859 ****
+   	done
+   
+   	for dir in $ac_nss_lib_dir ; do
+ !     	    if test -f $dir/libnspr4.so ; then
+-! 		        	if test "z$dir" = "z/usr/lib" ; then
++  		        	if test "z$dir" = "z/usr/lib" ; then
+               	    NSPR_LIBS="$NSPR_LIBS_LIST"
+       		else
+-      		    if test "z$with_gnu_ld" = "zyes" ; then
+---- 25868,25878 ----
++--- 25965,25973 ----
+   	done
+   
+   	for dir in $ac_nss_lib_dir ; do
+ !             case $host_os in
+ !             cygwin* | mingw* | pw32*)
+ !     	      if test -f $dir/libnspr4.so -o -f $dir/libnspr4.dylib -o -f $dir/libnspr4.a ; then
+-! 		dnl do not add -L/usr/lib because compiler does it anyway
+-!         	if test "z$dir" = "z/usr/lib" ; then
++  		        	if test "z$dir" = "z/usr/lib" ; then
+               	    NSPR_LIBS="$NSPR_LIBS_LIST"
+       		else
+-      		    if test "z$with_gnu_ld" = "zyes" ; then
+ ***************
+ *** 25865,25871 ****
+   		fi
+@@ -557,7 +297,7 @@
+   	done
+       fi
+   
+---- 25883,25908 ----
++--- 25979,26003 ----
+   		fi
+   		NSPR_LIBS_FOUND="yes"
+   		break
+@@ -566,8 +306,7 @@
+ ! 
+ !             *)
+ !     	      if test -f $dir/libnspr4.so -o -f $dir/libnspr4.dylib ; then
+-! 		dnl do not add -L/usr/lib because compiler does it anyway
+-!         	if test "z$dir" = "z/usr/lib" ; then
++! 		        	if test "z$dir" = "z/usr/lib" ; then
+ !             	    NSPR_LIBS="$NSPR_LIBS_LIST"
+ !     		else
+ !     		    if test "z$with_gnu_ld" = "zyes" ; then
+@@ -585,27 +324,24 @@
+       fi
+   
+ ***************
+-*** 25939,25946 ****
++*** 25939,25945 ****
+           done
+   
+           for dir in $ac_nss_lib_dir ; do
+ !     	    if test -f $dir/libnss3.so ; then
+-!         	    		if test "z$dir" = "z/usr/lib" ; then
++          	    		if test "z$dir" = "z/usr/lib" ; then
+           	    NSS_LIBS="$NSS_LIBS_LIST"
+                   else
+-              	    if test "z$with_gnu_ld" = "zyes" ; then
+---- 25976,25986 ----
++--- 26071,26079 ----
+           done
+   
+           for dir in $ac_nss_lib_dir ; do
+ !             case $host_os in
+ !             cygwin* | mingw* | pw32*)
+ !     	      if test -f $dir/libnss3.so -o -f $dir/libnss3.dylib -o -f $dir/libnss3.a ; then
+-!         	dnl do not add -L/usr/lib because compiler does it anyway
+-!     		if test "z$dir" = "z/usr/lib" ; then
++          	    		if test "z$dir" = "z/usr/lib" ; then
+           	    NSS_LIBS="$NSS_LIBS_LIST"
+                   else
+-              	    if test "z$with_gnu_ld" = "zyes" ; then
+ ***************
+ *** 25951,25957 ****
+   		fi
+@@ -615,7 +351,7 @@
+   	done
+       fi
+   
+---- 25991,26016 ----
++--- 26085,26109 ----
+   		fi
+       		NSS_LIBS_FOUND="yes"
+       		break
+@@ -624,8 +360,7 @@
+ ! 
+ !             *)
+ !     	      if test -f $dir/libnss3.so -o -f $dir/libnss3.dylib ; then
+-!         	dnl do not add -L/usr/lib because compiler does it anyway
+-!     		if test "z$dir" = "z/usr/lib" ; then
++!         	    		if test "z$dir" = "z/usr/lib" ; then
+ !         	    NSS_LIBS="$NSS_LIBS_LIST"
+ !                 else
+ !             	    if test "z$with_gnu_ld" = "zyes" ; then
+@@ -642,1906 +377,6 @@
+   	done
+       fi
+   
+-***************
+-*** 26037,26042 ****
+---- 26096,26204 ----
+-  
+-  
+-  
+-+ MSCRYPTO_CFLAGS=""
+-+ MSCRYPTO_LIBS=""
+-+ MSCRYPTO_FOUND="no"
+-+ 
+-+ 
+-+ # Check whether --with-mscrypto or --without-mscrypto was given.
+-+ if test "${with_mscrypto+set}" = set; then
+-+   withval="$with_mscrypto"
+-+ 
+-+ fi;
+-+ if test "z$with_mscrypto" = "zno" ; then
+-+     echo "$as_me:$LINENO: checking for MSCRYPTO libraries" >&5
+-+ echo $ECHO_N "checking for MSCRYPTO libraries... $ECHO_C" >&6
+-+     echo "$as_me:$LINENO: result: no" >&5
+-+ echo "${ECHO_T}no" >&6
+-+     MSCRYPTO_FOUND="without"
+-+ else
+-+     ac_mscrypto_lib_dir="${PSDK_HOME}/lib"
+-+     ac_mscrypto_inc_dir="${SOLARVERSION}/${INPATH}/inc${UPDMINOREXT}/external/mingw/include ${COMPATH}/include ${COMPATH}/include/w32api"
+-+         echo "$as_me:$LINENO: checking for mscrypto libraries" >&5
+-+ echo $ECHO_N "checking for mscrypto libraries... $ECHO_C" >&6
+-+     MSCRYPTO_INCLUDES_FOUND="no"
+-+     MSCRYPTO_LIBS_FOUND="no"
+-+     WINCRYPT_H=""
+-+ 
+-+ 	for dir in $ac_mscrypto_inc_dir ; do
+-+ 	    if test -f $dir/wincrypt.h ; then
+-+             	    MSCRYPTO_CFLAGS="$MSCRYPTO_CFLAGS -I$dir"
+-+     		MSCRYPTO_INCLUDES_FOUND="yes"
+-+     		WINCRYPT_H="$dir/wincrypt.h"
+-+     		break
+-+     	    fi
+-+         done
+-+ 
+-+         for dir in $ac_mscrypto_lib_dir ; do
+-+     	    if test -f $dir/crypt32.lib ; then
+-+             	    if test "z$with_gnu_ld" = "zyes" ; then
+-+     			MSCRYPTO_LIBS="-Wl,-rpath-link -Wl,$dir -L$dir $dir/crypt32.lib"
+-+             	    else
+-+         		MSCRYPTO_LIBS="-L$dir $dir/crypt32.lib"
+-+ 		    fi
+-+     		MSCRYPTO_LIBS_FOUND="yes"
+-+     		break
+-+ 	    fi
+-+ 	done
+-+ 
+-+     if test "z$MSCRYPTO_INCLUDES_FOUND" = "zyes" -a "z$MSCRYPTO_LIBS_FOUND" = "zyes" ; then
+-+        OLD_CPPFLAGS=$CPPFLAGS
+-+        CPPFLAGS="$MSCRYPTO_CFLAGS"
+-+        cat >conftest.$ac_ext <<_ACEOF
+-+ /* confdefs.h.  */
+-+ _ACEOF
+-+ cat confdefs.h >>conftest.$ac_ext
+-+ cat >>conftest.$ac_ext <<_ACEOF
+-+ /* end confdefs.h.  */
+-+ 
+-+           #include <wincrypt.h>
+-+           #if defined(_WINCRYPT_H) || defined(__WINCRYPT_H__)
+-+              yes
+-+           #endif
+-+ 
+-+ _ACEOF
+-+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-+   $EGREP "yes" >/dev/null 2>&1; then
+-+ 
+-+ 	    MSCRYPTO_FOUND=yes
+-+ 
+-+ else
+-+ 
+-+ 	    MSCRYPTO_FOUND=no
+-+ 
+-+ fi
+-+ rm -f conftest*
+-+ 
+-+ 	CPPFLAGS="$OLD_CPPFLAGS"
+-+     fi
+-+ 
+-+     if test "z$MSCRYPTO_FOUND" = "zyes" ; then
+-+ 	echo "$as_me:$LINENO: result: yes" >&5
+-+ echo "${ECHO_T}yes" >&6
+-+     else
+-+ 	echo "$as_me:$LINENO: result: no" >&5
+-+ echo "${ECHO_T}no" >&6
+-+     fi
+-+ 
+-+ fi
+-+ 
+-+ if test "z$MSCRYPTO_FOUND" = "zyes" ; then
+-+     MSCRYPTO_CFLAGS="$MSCRYPTO_CFLAGS -DXMLSEC_CRYPTO_MSCRYPTO=1"
+-+ 
+-+         if test "z$XMLSEC_CRYPTO" = "z" ;  then
+-+ 	XMLSEC_CRYPTO="mscrypto"
+-+ 	XMLSEC_CRYPTO_LIB="$PACKAGE-mscrypto"
+-+ 	XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS"
+-+ 	XMLSEC_CRYPTO_LIBS="$MSCRYPTO_LIBS"
+-+     fi
+-+     XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST mscrypto"
+-+ else
+-+     XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST mscrypto"
+-+ fi
+-+ 
+-+ 
+-+ 
+-  echo "$as_me:$LINENO: checking for crypto library" >&5
+-  echo $ECHO_N "checking for crypto library... $ECHO_C" >&6
+-  if test "z$XMLSEC_CRYPTO" = "z" ;  then
+-***************
+-*** 26604,26610 ****
+-  done
+-  
+-  
+-!                                                                                                                                                                 ac_config_files="$ac_config_files include/xmlsec/version.h Makefile include/Makefile include/xmlsec/Makefile include/xmlsec/private/Makefile src/Makefile apps/Makefile docs/Makefile docs/api/Makefile man/Makefile xmlsec1Conf.sh:xmlsecConf.sh.in xmlsec1-config:xmlsec-config.in xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1.spec:xmlsec.spec.in"
+-  cat >confcache <<\_ACEOF
+-  # This file is a shell script that caches the results of configure
+-  # tests run on this system so they can be shared between configure
+---- 26766,26772 ----
+-  done
+-  
+-  
+-!                                                                                                                                                                 ac_config_files="$ac_config_files include/xmlsec/version.h Makefile include/Makefile include/xmlsec/Makefile include/xmlsec/private/Makefile src/Makefile apps/Makefile docs/Makefile docs/api/Makefile man/Makefile xmlsec1Conf.sh:xmlsecConf.sh.in xmlsec1-config:xmlsec-config.in xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1-mscrypto.pc:xmlsec-mscrypto.pc.in xmlsec1.spec:xmlsec.spec.in"
+-  cat >confcache <<\_ACEOF
+-  # This file is a shell script that caches the results of configure
+-  # tests run on this system so they can be shared between configure
+-***************
+-*** 27521,27526 ****
+---- 27683,27690 ----
+-  s,@NSS_MIN_VERSION@,$NSS_MIN_VERSION,;t t
+-  s,@NSPR_MIN_VERSION@,$NSPR_MIN_VERSION,;t t
+-  s,@MOZILLA_MIN_VERSION@,$MOZILLA_MIN_VERSION,;t t
+-+ s,@MSCRYPTO_CFLAGS@,$MSCRYPTO_CFLAGS,;t t
+-+ s,@MSCRYPTO_LIBS@,$MSCRYPTO_LIBS,;t t
+-  s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
+-  s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
+-  s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
+-***************
+-*** 29231,29236 ****
+---- 29395,29402 ----
+-  s,@NSS_MIN_VERSION@,$NSS_MIN_VERSION,;t t
+-  s,@NSPR_MIN_VERSION@,$NSPR_MIN_VERSION,;t t
+-  s,@MOZILLA_MIN_VERSION@,$MOZILLA_MIN_VERSION,;t t
+-+ s,@MSCRYPTO_CFLAGS@,$MSCRYPTO_CFLAGS,;t t
+-+ s,@MSCRYPTO_LIBS@,$MSCRYPTO_LIBS,;t t
+-  s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
+-  s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
+-  s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
+-***************
+-*** 30941,30946 ****
+---- 31107,31114 ----
+-  s,@NSS_MIN_VERSION@,$NSS_MIN_VERSION,;t t
+-  s,@NSPR_MIN_VERSION@,$NSPR_MIN_VERSION,;t t
+-  s,@MOZILLA_MIN_VERSION@,$MOZILLA_MIN_VERSION,;t t
+-+ s,@MSCRYPTO_CFLAGS@,$MSCRYPTO_CFLAGS,;t t
+-+ s,@MSCRYPTO_LIBS@,$MSCRYPTO_LIBS,;t t
+-  s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
+-  s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
+-  s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
+-***************
+-*** 32653,32658 ****
+---- 32821,34544 ----
+-  s,@NSS_MIN_VERSION@,$NSS_MIN_VERSION,;t t
+-  s,@NSPR_MIN_VERSION@,$NSPR_MIN_VERSION,;t t
+-  s,@MOZILLA_MIN_VERSION@,$MOZILLA_MIN_VERSION,;t t
+-+ s,@MSCRYPTO_CFLAGS@,$MSCRYPTO_CFLAGS,;t t
+-+ s,@MSCRYPTO_LIBS@,$MSCRYPTO_LIBS,;t t
+-+ s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
+-+ s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
+-+ s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
+-+ s,@XMLSEC_NO_RIPEMD160_TRUE@,$XMLSEC_NO_RIPEMD160_TRUE,;t t
+-+ s,@XMLSEC_NO_RIPEMD160_FALSE@,$XMLSEC_NO_RIPEMD160_FALSE,;t t
+-+ s,@XMLSEC_NO_RIPEMD160@,$XMLSEC_NO_RIPEMD160,;t t
+-+ s,@XMLSEC_NO_HMAC_TRUE@,$XMLSEC_NO_HMAC_TRUE,;t t
+-+ s,@XMLSEC_NO_HMAC_FALSE@,$XMLSEC_NO_HMAC_FALSE,;t t
+-+ s,@XMLSEC_NO_HMAC@,$XMLSEC_NO_HMAC,;t t
+-+ s,@XMLSEC_NO_DSA_TRUE@,$XMLSEC_NO_DSA_TRUE,;t t
+-+ s,@XMLSEC_NO_DSA_FALSE@,$XMLSEC_NO_DSA_FALSE,;t t
+-+ s,@XMLSEC_NO_DSA@,$XMLSEC_NO_DSA,;t t
+-+ s,@XMLSEC_NO_RSA_TRUE@,$XMLSEC_NO_RSA_TRUE,;t t
+-+ s,@XMLSEC_NO_RSA_FALSE@,$XMLSEC_NO_RSA_FALSE,;t t
+-+ s,@XMLSEC_NO_RSA@,$XMLSEC_NO_RSA,;t t
+-+ s,@XMLSEC_NO_X509_TRUE@,$XMLSEC_NO_X509_TRUE,;t t
+-+ s,@XMLSEC_NO_X509_FALSE@,$XMLSEC_NO_X509_FALSE,;t t
+-+ s,@XMLSEC_NO_X509@,$XMLSEC_NO_X509,;t t
+-+ s,@XMLSEC_NO_DES_TRUE@,$XMLSEC_NO_DES_TRUE,;t t
+-+ s,@XMLSEC_NO_DES_FALSE@,$XMLSEC_NO_DES_FALSE,;t t
+-+ s,@XMLSEC_NO_DES@,$XMLSEC_NO_DES,;t t
+-+ s,@XMLSEC_NO_AES_TRUE@,$XMLSEC_NO_AES_TRUE,;t t
+-+ s,@XMLSEC_NO_AES_FALSE@,$XMLSEC_NO_AES_FALSE,;t t
+-+ s,@XMLSEC_NO_AES@,$XMLSEC_NO_AES,;t t
+-+ s,@XMLSEC_NO_XMLDSIG_TRUE@,$XMLSEC_NO_XMLDSIG_TRUE,;t t
+-+ s,@XMLSEC_NO_XMLDSIG_FALSE@,$XMLSEC_NO_XMLDSIG_FALSE,;t t
+-+ s,@XMLSEC_NO_XMLDSIG@,$XMLSEC_NO_XMLDSIG,;t t
+-+ s,@XMLSEC_NO_XMLENC_TRUE@,$XMLSEC_NO_XMLENC_TRUE,;t t
+-+ s,@XMLSEC_NO_XMLENC_FALSE@,$XMLSEC_NO_XMLENC_FALSE,;t t
+-+ s,@XMLSEC_NO_XMLENC@,$XMLSEC_NO_XMLENC,;t t
+-+ s,@XMLSEC_NO_XKMS_TRUE@,$XMLSEC_NO_XKMS_TRUE,;t t
+-+ s,@XMLSEC_NO_XKMS_FALSE@,$XMLSEC_NO_XKMS_FALSE,;t t
+-+ s,@XMLSEC_NO_XKMS@,$XMLSEC_NO_XKMS,;t t
+-+ s,@XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE@,$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE,;t t
+-+ s,@XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE@,$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE,;t t
+-+ s,@XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@,$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING,;t t
+-+ s,@XMLSEC_DL_INCLUDES@,$XMLSEC_DL_INCLUDES,;t t
+-+ s,@XMLSEC_DL_LIBS@,$XMLSEC_DL_LIBS,;t t
+-+ s,@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@,$XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE,;t t
+-+ s,@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@,$XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE,;t t
+-+ s,@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@,$XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING,;t t
+-+ s,@XMLSEC_DOCDIR@,$XMLSEC_DOCDIR,;t t
+-+ s,@XMLSEC_STATIC_BINARIES@,$XMLSEC_STATIC_BINARIES,;t t
+-+ s,@XMLSEC_CORE_CFLAGS@,$XMLSEC_CORE_CFLAGS,;t t
+-+ s,@XMLSEC_CORE_LIBS@,$XMLSEC_CORE_LIBS,;t t
+-+ s,@XMLSEC_LIBDIR@,$XMLSEC_LIBDIR,;t t
+-+ s,@XMLSEC_OPENSSL_CFLAGS@,$XMLSEC_OPENSSL_CFLAGS,;t t
+-+ s,@XMLSEC_OPENSSL_LIBS@,$XMLSEC_OPENSSL_LIBS,;t t
+-+ s,@XMLSEC_GNUTLS_CFLAGS@,$XMLSEC_GNUTLS_CFLAGS,;t t
+-+ s,@XMLSEC_GNUTLS_LIBS@,$XMLSEC_GNUTLS_LIBS,;t t
+-+ s,@XMLSEC_NSS_CFLAGS@,$XMLSEC_NSS_CFLAGS,;t t
+-+ s,@XMLSEC_NSS_LIBS@,$XMLSEC_NSS_LIBS,;t t
+-+ s,@XMLSEC_CFLAGS@,$XMLSEC_CFLAGS,;t t
+-+ s,@XMLSEC_LIBS@,$XMLSEC_LIBS,;t t
+-+ s,@XMLSEC_DEFINES@,$XMLSEC_DEFINES,;t t
+-+ s,@XMLSEC_APP_DEFINES@,$XMLSEC_APP_DEFINES,;t t
+-+ s,@XMLSEC_CRYPTO@,$XMLSEC_CRYPTO,;t t
+-+ s,@XMLSEC_CRYPTO_LIST@,$XMLSEC_CRYPTO_LIST,;t t
+-+ s,@XMLSEC_CRYPTO_DISABLED_LIST@,$XMLSEC_CRYPTO_DISABLED_LIST,;t t
+-+ s,@XMLSEC_CRYPTO_LIB@,$XMLSEC_CRYPTO_LIB,;t t
+-+ s,@XMLSEC_CRYPTO_CFLAGS@,$XMLSEC_CRYPTO_CFLAGS,;t t
+-+ s,@XMLSEC_CRYPTO_LIBS@,$XMLSEC_CRYPTO_LIBS,;t t
+-+ s,@XMLSEC_CRYPTO_PC_FILES_LIST@,$XMLSEC_CRYPTO_PC_FILES_LIST,;t t
+-+ s,@LIBOBJS@,$LIBOBJS,;t t
+-+ s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+-+ CEOF
+-+ 
+-+ _ACEOF
+-+ 
+-+   cat >>$CONFIG_STATUS <<\_ACEOF
+-+   # 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_lines=48
+-+   ac_sed_frag=1 # Number of current file.
+-+   ac_beg=1 # First line for current file.
+-+   ac_end=$ac_max_sed_lines # 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" $tmp/subs.sed >$tmp/subs.frag
+-+     else
+-+       sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-+     fi
+-+     if test ! -s $tmp/subs.frag; then
+-+       ac_more_lines=false
+-+     else
+-+       # The purpose of the label and of the branching condition is to
+-+       # speed up the sed processing (if there are no `@' at all, there
+-+       # is no need to browse any of the substitutions).
+-+       # These are the two extra sed commands mentioned above.
+-+       (echo ':t
+-+   /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+-+       if test -z "$ac_sed_cmds"; then
+-+ 	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+-+       else
+-+ 	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+-+       fi
+-+       ac_sed_frag=`expr $ac_sed_frag + 1`
+-+       ac_beg=$ac_end
+-+       ac_end=`expr $ac_end + $ac_max_sed_lines`
+-+     fi
+-+   done
+-+   if test -z "$ac_sed_cmds"; then
+-+     ac_sed_cmds=cat
+-+   fi
+-+ fi # test -n "$CONFIG_FILES"
+-+ 
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+-+   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-+   case $ac_file in
+-+   - | *:- | *:-:* ) # input from stdin
+-+ 	cat >$tmp/stdin
+-+ 	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-+ 	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-+   *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-+ 	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-+   * )   ac_file_in=$ac_file.in ;;
+-+   esac
+-+ 
+-+   # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+-+   ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-+ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$ac_file" : 'X\(//\)[^/]' \| \
+-+ 	 X"$ac_file" : 'X\(//\)$' \| \
+-+ 	 X"$ac_file" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$ac_file" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+   { if $as_mkdir_p; then
+-+     mkdir -p "$ac_dir"
+-+   else
+-+     as_dir="$ac_dir"
+-+     as_dirs=
+-+     while test ! -d "$as_dir"; do
+-+       as_dirs="$as_dir $as_dirs"
+-+       as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-+ 	 X"$as_dir" : 'X\(//\)$' \| \
+-+ 	 X"$as_dir" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$as_dir" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+     done
+-+     test ! -n "$as_dirs" || mkdir $as_dirs
+-+   fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-+ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-+    { (exit 1); exit 1; }; }; }
+-+ 
+-+   ac_builddir=.
+-+ 
+-+ if test "$ac_dir" != .; then
+-+   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-+   # A "../" for each directory in $ac_dir_suffix.
+-+   ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-+ else
+-+   ac_dir_suffix= ac_top_builddir=
+-+ fi
+-+ 
+-+ case $srcdir in
+-+   .)  # No --srcdir option.  We are building in place.
+-+     ac_srcdir=.
+-+     if test -z "$ac_top_builddir"; then
+-+        ac_top_srcdir=.
+-+     else
+-+        ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-+     fi ;;
+-+   [\\/]* | ?:[\\/]* )  # Absolute path.
+-+     ac_srcdir=$srcdir$ac_dir_suffix;
+-+     ac_top_srcdir=$srcdir ;;
+-+   *) # Relative path.
+-+     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-+     ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-+ esac
+-+ 
+-+ # Do not use `cd foo && pwd` to compute absolute paths, because
+-+ # the directories may not exist.
+-+ case `pwd` in
+-+ .) ac_abs_builddir="$ac_dir";;
+-+ *)
+-+   case "$ac_dir" in
+-+   .) ac_abs_builddir=`pwd`;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-+   *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-+   esac;;
+-+ esac
+-+ case $ac_abs_builddir in
+-+ .) ac_abs_top_builddir=${ac_top_builddir}.;;
+-+ *)
+-+   case ${ac_top_builddir}. in
+-+   .) ac_abs_top_builddir=$ac_abs_builddir;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-+   *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-+   esac;;
+-+ esac
+-+ case $ac_abs_builddir in
+-+ .) ac_abs_srcdir=$ac_srcdir;;
+-+ *)
+-+   case $ac_srcdir in
+-+   .) ac_abs_srcdir=$ac_abs_builddir;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-+   *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-+   esac;;
+-+ esac
+-+ case $ac_abs_builddir in
+-+ .) ac_abs_top_srcdir=$ac_top_srcdir;;
+-+ *)
+-+   case $ac_top_srcdir in
+-+   .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-+   *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-+   esac;;
+-+ esac
+-+ 
+-+ 
+-+   case $INSTALL in
+-+   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+-+   *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+-+   esac
+-+ 
+-+   if test x"$ac_file" != x-; then
+-+     { echo "$as_me:$LINENO: creating $ac_file" >&5
+-+ echo "$as_me: creating $ac_file" >&6;}
+-+     rm -f "$ac_file"
+-+   fi
+-+   # Let's still pretend it is `configure' which instantiates (i.e., don't
+-+   # use $as_me), people would be surprised to read:
+-+   #    /* config.h.  Generated by config.status.  */
+-+   if test x"$ac_file" = x-; then
+-+     configure_input=
+-+   else
+-+     configure_input="$ac_file.  "
+-+   fi
+-+   configure_input=$configure_input"Generated from `echo $ac_file_in |
+-+ 				     sed 's,.*/,,'` by configure."
+-+ 
+-+   # First look for the input files in the build tree, otherwise in the
+-+   # src tree.
+-+   ac_file_inputs=`IFS=:
+-+     for f in $ac_file_in; do
+-+       case $f in
+-+       -) echo $tmp/stdin ;;
+-+       [\\/$]*)
+-+ 	 # Absolute (can't be DOS-style, as IFS=:)
+-+ 	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-+ echo "$as_me: error: cannot find input file: $f" >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ 	 echo "$f";;
+-+       *) # Relative
+-+ 	 if test -f "$f"; then
+-+ 	   # Build tree
+-+ 	   echo "$f"
+-+ 	 elif test -f "$srcdir/$f"; then
+-+ 	   # Source tree
+-+ 	   echo "$srcdir/$f"
+-+ 	 else
+-+ 	   # /dev/null tree
+-+ 	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-+ echo "$as_me: error: cannot find input file: $f" >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ 	 fi;;
+-+       esac
+-+     done` || { (exit 1); exit 1; }
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<_ACEOF
+-+   sed "$ac_vpsub
+-+ $extrasub
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ :t
+-+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+-+ s,@configure_input@,$configure_input,;t t
+-+ s,@srcdir@,$ac_srcdir,;t t
+-+ s,@abs_srcdir@,$ac_abs_srcdir,;t t
+-+ s,@top_srcdir@,$ac_top_srcdir,;t t
+-+ s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+-+ s,@builddir@,$ac_builddir,;t t
+-+ s,@abs_builddir@,$ac_abs_builddir,;t t
+-+ s,@top_builddir@,$ac_top_builddir,;t t
+-+ s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+-+ s,@INSTALL@,$ac_INSTALL,;t t
+-+ " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+-+   rm -f $tmp/stdin
+-+   if test x"$ac_file" != x-; then
+-+     mv $tmp/out $ac_file
+-+   else
+-+     cat $tmp/out
+-+     rm -f $tmp/out
+-+   fi
+-+ 
+-+ done
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ 
+-+ #
+-+ # CONFIG_HEADER section.
+-+ #
+-+ 
+-+ # 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=' '
+-+ ac_dD=',;t'
+-+ # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+-+ ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
+-+ ac_uB='$,\1#\2define\3'
+-+ ac_uC=' '
+-+ ac_uD=',;t'
+-+ 
+-+ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+-+   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-+   case $ac_file in
+-+   - | *:- | *:-:* ) # input from stdin
+-+ 	cat >$tmp/stdin
+-+ 	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-+ 	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-+   *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-+ 	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-+   * )   ac_file_in=$ac_file.in ;;
+-+   esac
+-+ 
+-+   test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+-+ echo "$as_me: creating $ac_file" >&6;}
+-+ 
+-+   # First look for the input files in the build tree, otherwise in the
+-+   # src tree.
+-+   ac_file_inputs=`IFS=:
+-+     for f in $ac_file_in; do
+-+       case $f in
+-+       -) echo $tmp/stdin ;;
+-+       [\\/$]*)
+-+ 	 # Absolute (can't be DOS-style, as IFS=:)
+-+ 	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-+ echo "$as_me: error: cannot find input file: $f" >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ 	 # Do quote $f, to prevent DOS paths from being IFS'd.
+-+ 	 echo "$f";;
+-+       *) # Relative
+-+ 	 if test -f "$f"; then
+-+ 	   # Build tree
+-+ 	   echo "$f"
+-+ 	 elif test -f "$srcdir/$f"; then
+-+ 	   # Source tree
+-+ 	   echo "$srcdir/$f"
+-+ 	 else
+-+ 	   # /dev/null tree
+-+ 	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-+ echo "$as_me: error: cannot find input file: $f" >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ 	 fi;;
+-+       esac
+-+     done` || { (exit 1); exit 1; }
+-+   # Remove the trailing spaces.
+-+   sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+-+ 
+-+ _ACEOF
+-+ 
+-+ # Transform confdefs.h into two sed scripts, `conftest.defines' and
+-+ # `conftest.undefs', that substitutes the proper values into
+-+ # config.h.in to produce config.h.  The first handles `#define'
+-+ # templates, and the second `#undef' templates.
+-+ # 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.
+-+ rm -f conftest.defines conftest.undefs
+-+ # Using a here document instead of a string reduces the quoting nightmare.
+-+ # Putting comments in sed scripts is not portable.
+-+ #
+-+ # `end' is used to avoid that the second main sed command (meant for
+-+ # 0-ary CPP macros) applies to n-ary macro definitions.
+-+ # See the Autoconf documentation for `clear'.
+-+ cat >confdef2sed.sed <<\_ACEOF
+-+ s/[\\&,]/\\&/g
+-+ s,[\\$`],\\&,g
+-+ t clear
+-+ : clear
+-+ s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+-+ t end
+-+ s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+-+ : end
+-+ _ACEOF
+-+ # If some macros were called several times there might be several times
+-+ # the same #defines, which is useless.  Nevertheless, we may not want to
+-+ # sort them, since we want the *last* AC-DEFINE to be honored.
+-+ uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+-+ sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+-+ rm -f confdef2sed.sed
+-+ 
+-+ # 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.undefs <<\_ACEOF
+-+ s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+-+ _ACEOF
+-+ 
+-+ # Break up conftest.defines because some shells have a limit on the size
+-+ # of here documents, and old seds have small limits too (100 cmds).
+-+ echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+-+ echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+-+ echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+-+ echo '  :' >>$CONFIG_STATUS
+-+ rm -f conftest.tail
+-+ while grep . conftest.defines >/dev/null
+-+ do
+-+   # Write a limited-size here document to $tmp/defines.sed.
+-+   echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+-+   # Speed up: don't consider the non `#define' lines.
+-+   echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
+-+   # Work around the forget-to-reset-the-flag bug.
+-+   echo 't clr' >>$CONFIG_STATUS
+-+   echo ': clr' >>$CONFIG_STATUS
+-+   sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+-+   echo 'CEOF
+-+   sed -f $tmp/defines.sed $tmp/in >$tmp/out
+-+   rm -f $tmp/in
+-+   mv $tmp/out $tmp/in
+-+ ' >>$CONFIG_STATUS
+-+   sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+-+   rm -f conftest.defines
+-+   mv conftest.tail conftest.defines
+-+ done
+-+ rm -f conftest.defines
+-+ echo '  fi # grep' >>$CONFIG_STATUS
+-+ echo >>$CONFIG_STATUS
+-+ 
+-+ # Break up conftest.undefs because some shells have a limit on the size
+-+ # of here documents, and old seds have small limits too (100 cmds).
+-+ echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+-+ rm -f conftest.tail
+-+ while grep . conftest.undefs >/dev/null
+-+ do
+-+   # Write a limited-size here document to $tmp/undefs.sed.
+-+   echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+-+   # Speed up: don't consider the non `#undef'
+-+   echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
+-+   # Work around the forget-to-reset-the-flag bug.
+-+   echo 't clr' >>$CONFIG_STATUS
+-+   echo ': clr' >>$CONFIG_STATUS
+-+   sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+-+   echo 'CEOF
+-+   sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+-+   rm -f $tmp/in
+-+   mv $tmp/out $tmp/in
+-+ ' >>$CONFIG_STATUS
+-+   sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+-+   rm -f conftest.undefs
+-+   mv conftest.tail conftest.undefs
+-+ done
+-+ rm -f conftest.undefs
+-+ 
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+   # Let's still pretend it is `configure' which instantiates (i.e., don't
+-+   # use $as_me), people would be surprised to read:
+-+   #    /* config.h.  Generated by config.status.  */
+-+   if test x"$ac_file" = x-; then
+-+     echo "/* Generated by configure.  */" >$tmp/config.h
+-+   else
+-+     echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+-+   fi
+-+   cat $tmp/in >>$tmp/config.h
+-+   rm -f $tmp/in
+-+   if test x"$ac_file" != x-; then
+-+     if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+-+       { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+-+ echo "$as_me: $ac_file is unchanged" >&6;}
+-+     else
+-+       ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-+ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$ac_file" : 'X\(//\)[^/]' \| \
+-+ 	 X"$ac_file" : 'X\(//\)$' \| \
+-+ 	 X"$ac_file" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$ac_file" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+       { if $as_mkdir_p; then
+-+     mkdir -p "$ac_dir"
+-+   else
+-+     as_dir="$ac_dir"
+-+     as_dirs=
+-+     while test ! -d "$as_dir"; do
+-+       as_dirs="$as_dir $as_dirs"
+-+       as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-+ 	 X"$as_dir" : 'X\(//\)$' \| \
+-+ 	 X"$as_dir" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$as_dir" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+     done
+-+     test ! -n "$as_dirs" || mkdir $as_dirs
+-+   fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-+ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-+    { (exit 1); exit 1; }; }; }
+-+ 
+-+       rm -f $ac_file
+-+       mv $tmp/config.h $ac_file
+-+     fi
+-+   else
+-+     cat $tmp/config.h
+-+     rm -f $tmp/config.h
+-+   fi
+-+ # Compute $ac_file's index in $config_headers.
+-+ _am_stamp_count=1
+-+ for _am_header in $config_headers :; do
+-+   case $_am_header in
+-+     $ac_file | $ac_file:* )
+-+       break ;;
+-+     * )
+-+       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+-+   esac
+-+ done
+-+ echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+-+ $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X$ac_file : 'X\(//\)[^/]' \| \
+-+ 	 X$ac_file : 'X\(//\)$' \| \
+-+ 	 X$ac_file : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X$ac_file |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`/stamp-h$_am_stamp_count
+-+ done
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ 
+-+ #
+-+ # CONFIG_COMMANDS section.
+-+ #
+-+ for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+-+   ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+-+   ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-+   ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+-+ $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+-+ 	 X"$ac_dest" : 'X\(//\)$' \| \
+-+ 	 X"$ac_dest" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$ac_dest" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+   { if $as_mkdir_p; then
+-+     mkdir -p "$ac_dir"
+-+   else
+-+     as_dir="$ac_dir"
+-+     as_dirs=
+-+     while test ! -d "$as_dir"; do
+-+       as_dirs="$as_dir $as_dirs"
+-+       as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-+ 	 X"$as_dir" : 'X\(//\)$' \| \
+-+ 	 X"$as_dir" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$as_dir" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+     done
+-+     test ! -n "$as_dirs" || mkdir $as_dirs
+-+   fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-+ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-+    { (exit 1); exit 1; }; }; }
+-+ 
+-+   ac_builddir=.
+-+ 
+-+ if test "$ac_dir" != .; then
+-+   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-+   # A "../" for each directory in $ac_dir_suffix.
+-+   ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-+ else
+-+   ac_dir_suffix= ac_top_builddir=
+-+ fi
+-+ 
+-+ case $srcdir in
+-+   .)  # No --srcdir option.  We are building in place.
+-+     ac_srcdir=.
+-+     if test -z "$ac_top_builddir"; then
+-+        ac_top_srcdir=.
+-+     else
+-+        ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-+     fi ;;
+-+   [\\/]* | ?:[\\/]* )  # Absolute path.
+-+     ac_srcdir=$srcdir$ac_dir_suffix;
+-+     ac_top_srcdir=$srcdir ;;
+-+   *) # Relative path.
+-+     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-+     ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-+ esac
+-+ 
+-+ # Do not use `cd foo && pwd` to compute absolute paths, because
+-+ # the directories may not exist.
+-+ case `pwd` in
+-+ .) ac_abs_builddir="$ac_dir";;
+-+ *)
+-+   case "$ac_dir" in
+-+   .) ac_abs_builddir=`pwd`;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-+   *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-+   esac;;
+-+ esac
+-+ case $ac_abs_builddir in
+-+ .) ac_abs_top_builddir=${ac_top_builddir}.;;
+-+ *)
+-+   case ${ac_top_builddir}. in
+-+   .) ac_abs_top_builddir=$ac_abs_builddir;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-+   *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-+   esac;;
+-+ esac
+-+ case $ac_abs_builddir in
+-+ .) ac_abs_srcdir=$ac_srcdir;;
+-+ *)
+-+   case $ac_srcdir in
+-+   .) ac_abs_srcdir=$ac_abs_builddir;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-+   *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-+   esac;;
+-+ esac
+-+ case $ac_abs_builddir in
+-+ .) ac_abs_top_srcdir=$ac_top_srcdir;;
+-+ *)
+-+   case $ac_top_srcdir in
+-+   .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-+   [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-+   *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-+   esac;;
+-+ esac
+-+ 
+-+ 
+-+   { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+-+ echo "$as_me: executing $ac_dest commands" >&6;}
+-+   case $ac_dest in
+-+     depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+-+   # Strip MF so we end up with the name of the file.
+-+   mf=`echo "$mf" | sed -e 's/:.*$//'`
+-+   # Check whether this is an Automake generated Makefile or not.
+-+   # We used to match only the files named `Makefile.in', but
+-+   # some people rename them; so instead we look at the file content.
+-+   # Grep'ing the first line is not enough: some people post-process
+-+   # each Makefile.in and add a new line on top of each file to say so.
+-+   # So let's grep whole file.
+-+   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+-+     dirpart=`(dirname "$mf") 2>/dev/null ||
+-+ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$mf" : 'X\(//\)[^/]' \| \
+-+ 	 X"$mf" : 'X\(//\)$' \| \
+-+ 	 X"$mf" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$mf" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+   else
+-+     continue
+-+   fi
+-+   grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+-+   # Extract the definition of DEP_FILES from the Makefile without
+-+   # running `make'.
+-+   DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+-+   test -z "$DEPDIR" && continue
+-+   # When using ansi2knr, U may be empty or an underscore; expand it
+-+   U=`sed -n 's/^U = //p' < "$mf"`
+-+   test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+-+   # We invoke sed twice because it is the simplest approach to
+-+   # changing $(DEPDIR) to its actual value in the expansion.
+-+   for file in `sed -n '
+-+     /^DEP_FILES = .*\\\\$/ {
+-+       s/^DEP_FILES = //
+-+       :loop
+-+ 	s/\\\\$//
+-+ 	p
+-+ 	n
+-+ 	/\\\\$/ b loop
+-+       p
+-+     }
+-+     /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+-+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+-+     # Make sure the directory exists.
+-+     test -f "$dirpart/$file" && continue
+-+     fdir=`(dirname "$file") 2>/dev/null ||
+-+ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$file" : 'X\(//\)[^/]' \| \
+-+ 	 X"$file" : 'X\(//\)$' \| \
+-+ 	 X"$file" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$file" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+     { if $as_mkdir_p; then
+-+     mkdir -p $dirpart/$fdir
+-+   else
+-+     as_dir=$dirpart/$fdir
+-+     as_dirs=
+-+     while test ! -d "$as_dir"; do
+-+       as_dirs="$as_dir $as_dirs"
+-+       as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-+ 	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-+ 	 X"$as_dir" : 'X\(//\)$' \| \
+-+ 	 X"$as_dir" : 'X\(/\)' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X"$as_dir" |
+-+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-+   	  /^X\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+     done
+-+     test ! -n "$as_dirs" || mkdir $as_dirs
+-+   fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+-+ echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+-+    { (exit 1); exit 1; }; }; }
+-+ 
+-+     # echo "creating $dirpart/$file"
+-+     echo '# dummy' > "$dirpart/$file"
+-+   done
+-+ done
+-+  ;;
+-+   esac
+-+ done
+-+ _ACEOF
+-+ 
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ 
+-+ { (exit 0); exit 0; }
+-+ _ACEOF
+-+ chmod +x $CONFIG_STATUS
+-+ ac_clean_files=$ac_clean_files_save
+-+ 
+-+ 
+-+ # configure is writing to config.log, and then calls config.status.
+-+ # config.status does its own redirection, appending to config.log.
+-+ # Unfortunately, on DOS this fails, as config.log is still kept open
+-+ # by configure, so config.status won't be able to write to it; its
+-+ # output is simply discarded.  So we exec the FD to /dev/null,
+-+ # effectively closing config.log, so it can be properly (re)opened and
+-+ # appended to by config.status.  When coming back to configure, we
+-+ # need to make the FD available again.
+-+ if test "$no_create" != yes; then
+-+   ac_cs_success=:
+-+   ac_config_status_args=
+-+   test "$silent" = yes &&
+-+     ac_config_status_args="$ac_config_status_args --quiet"
+-+   exec 5>/dev/null
+-+   $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+-+   exec 5>>config.log
+-+   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+-+   # would make configure fail if this is the last instruction.
+-+   $ac_cs_success || { (exit 1); exit 1; }
+-+ fi
+-+ 
+-+ fi
+-+ 
+-+ if test "z$MSCRYPTO_FOUND" = "zyes" ; then
+-+                     ac_config_files="$ac_config_files include/xmlsec/mscrypto/Makefile src/mscrypto/Makefile"
+-+ cat >confcache <<\_ACEOF
+-+ # 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, see configure's option --config-cache.
+-+ # It is not useful on other systems.  If it contains results you don't
+-+ # want to keep, you may remove or edit it.
+-+ #
+-+ # config.status only pays attention to the cache file if you give it
+-+ # the --recheck option to rerun configure.
+-+ #
+-+ # `ac_cv_env_foo' variables (set or unset) will be overridden when
+-+ # loading this file, other *unset* `ac_cv_foo' will be assigned the
+-+ # following values.
+-+ 
+-+ _ACEOF
+-+ 
+-+ # 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 \
+-+ 	"s/'/'\\\\''/g;
+-+ 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+-+       ;;
+-+     *)
+-+       # `set' quotes correctly as required by POSIX, so do not add quotes.
+-+       sed -n \
+-+ 	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-+       ;;
+-+     esac;
+-+ } |
+-+   sed '
+-+      t clear
+-+      : clear
+-+      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+-+      t end
+-+      /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+-+      : end' >>confcache
+-+ if diff $cache_file confcache >/dev/null 2>&1; then :; else
+-+   if test -w $cache_file; then
+-+     test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+-+     cat confcache >$cache_file
+-+   else
+-+     echo "not updating unwritable cache $cache_file"
+-+   fi
+-+ fi
+-+ rm -f confcache
+-+ 
+-+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+-+ # Let make expand exec_prefix.
+-+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+-+ 
+-+ # VPATH may cause trouble with some makes, so we remove $(srcdir),
+-+ # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+-+ # trailing colons and then remove the whole line if VPATH becomes empty
+-+ # (actually we leave an empty line to preserve line numbers).
+-+ if test "x$srcdir" = x.; then
+-+   ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+-+ s/:*\$(srcdir):*/:/;
+-+ s/:*\${srcdir}:*/:/;
+-+ s/:*@srcdir@:*/:/;
+-+ s/^\([^=]*=[	 ]*\):*/\1/;
+-+ s/:*$//;
+-+ s/^[^=]*=[	 ]*$//;
+-+ }'
+-+ fi
+-+ 
+-+ DEFS=-DHAVE_CONFIG_H
+-+ 
+-+ ac_libobjs=
+-+ ac_ltlibobjs=
+-+ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+-+   # 1. Remove the extension, and $U if already installed.
+-+   ac_i=`echo "$ac_i" |
+-+ 	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+-+   # 2. Add them.
+-+   ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+-+   ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+-+ done
+-+ LIBOBJS=$ac_libobjs
+-+ 
+-+ LTLIBOBJS=$ac_ltlibobjs
+-+ 
+-+ 
+-+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"AMDEP\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${INSTALL_LTDL_TRUE}" && test -z "${INSTALL_LTDL_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"INSTALL_LTDL\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"INSTALL_LTDL\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${CONVENIENCE_LTDL_TRUE}" && test -z "${CONVENIENCE_LTDL_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"CONVENIENCE_LTDL\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"CONVENIENCE_LTDL\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_OPENSSL_TRUE}" && test -z "${XMLSEC_NO_OPENSSL_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_OPENSSL\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_OPENSSL\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_GNUTLS_TRUE}" && test -z "${XMLSEC_NO_GNUTLS_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_GNUTLS\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_GNUTLS\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_NSS_TRUE}" && test -z "${XMLSEC_NO_NSS_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_NSS\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_NSS\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_SHA1_TRUE}" && test -z "${XMLSEC_NO_SHA1_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_SHA1\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_SHA1\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_RIPEMD160_TRUE}" && test -z "${XMLSEC_NO_RIPEMD160_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_RIPEMD160\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_RIPEMD160\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_HMAC_TRUE}" && test -z "${XMLSEC_NO_HMAC_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_HMAC\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_HMAC\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_DSA_TRUE}" && test -z "${XMLSEC_NO_DSA_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_DSA\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_DSA\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_RSA_TRUE}" && test -z "${XMLSEC_NO_RSA_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_RSA\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_RSA\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_X509_TRUE}" && test -z "${XMLSEC_NO_X509_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_X509\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_X509\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_DES_TRUE}" && test -z "${XMLSEC_NO_DES_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_DES\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_DES\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_AES_TRUE}" && test -z "${XMLSEC_NO_AES_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_AES\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_AES\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_XMLDSIG_TRUE}" && test -z "${XMLSEC_NO_XMLDSIG_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_XMLDSIG\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_XMLDSIG\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_XMLENC_TRUE}" && test -z "${XMLSEC_NO_XMLENC_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_XMLENC\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_XMLENC\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_XKMS_TRUE}" && test -z "${XMLSEC_NO_XKMS_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_XKMS\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_XKMS\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE}" && test -z "${XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_CRYPTO_DYNAMIC_LOADING\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_CRYPTO_DYNAMIC_LOADING\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ if test -z "${XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE}" && test -z "${XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE}"; then
+-+   { { echo "$as_me:$LINENO: error: conditional \"XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&5
+-+ echo "$as_me: error: conditional \"XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING\" was never defined.
+-+ Usually this means the macro was only invoked conditionally." >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ fi
+-+ 
+-+ : ${CONFIG_STATUS=./config.status}
+-+ ac_clean_files_save=$ac_clean_files
+-+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-+ { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+-+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+-+ cat >$CONFIG_STATUS <<_ACEOF
+-+ #! $SHELL
+-+ # Generated by $as_me.
+-+ # Run this file to recreate the current configuration.
+-+ # Compiler output produced by configure, useful for debugging
+-+ # configure, is in config.log if it exists.
+-+ 
+-+ debug=false
+-+ ac_cs_recheck=false
+-+ ac_cs_silent=false
+-+ SHELL=\${CONFIG_SHELL-$SHELL}
+-+ _ACEOF
+-+ 
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ ## --------------------- ##
+-+ ## M4sh Initialization.  ##
+-+ ## --------------------- ##
+-+ 
+-+ # Be Bourne compatible
+-+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-+   emulate sh
+-+   NULLCMD=:
+-+   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-+   # is contrary to our usage.  Disable this feature.
+-+   alias -g '${1+"$@"}'='"$@"'
+-+ elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-+   set -o posix
+-+ fi
+-+ DUALCASE=1; export DUALCASE # for MKS sh
+-+ 
+-+ # Support unset when possible.
+-+ if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+-+   as_unset=unset
+-+ else
+-+   as_unset=false
+-+ fi
+-+ 
+-+ 
+-+ # Work around bugs in pre-3.0 UWIN ksh.
+-+ $as_unset ENV MAIL MAILPATH
+-+ PS1='$ '
+-+ PS2='> '
+-+ PS4='+ '
+-+ 
+-+ # NLS nuisances.
+-+ for as_var in \
+-+   LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-+   LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-+   LC_TELEPHONE LC_TIME
+-+ do
+-+   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-+     eval $as_var=C; export $as_var
+-+   else
+-+     $as_unset $as_var
+-+   fi
+-+ done
+-+ 
+-+ # Required to use basename.
+-+ if expr a : '\(a\)' >/dev/null 2>&1; then
+-+   as_expr=expr
+-+ else
+-+   as_expr=false
+-+ fi
+-+ 
+-+ if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-+   as_basename=basename
+-+ else
+-+   as_basename=false
+-+ fi
+-+ 
+-+ 
+-+ # Name of the executable.
+-+ as_me=`$as_basename "$0" ||
+-+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-+ 	 X"$0" : 'X\(//\)$' \| \
+-+ 	 X"$0" : 'X\(/\)$' \| \
+-+ 	 .     : '\(.\)' 2>/dev/null ||
+-+ echo X/"$0" |
+-+     sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-+   	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+-+   	  /^X\/\(\/\).*/{ s//\1/; q; }
+-+   	  s/.*/./; q'`
+-+ 
+-+ 
+-+ # PATH needs CR, and LINENO needs CR and PATH.
+-+ # Avoid depending upon Character Ranges.
+-+ as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-+ as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-+ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-+ as_cr_digits='0123456789'
+-+ as_cr_alnum=$as_cr_Letters$as_cr_digits
+-+ 
+-+ # The user is always right.
+-+ if test "${PATH_SEPARATOR+set}" != set; then
+-+   echo "#! /bin/sh" >conf$$.sh
+-+   echo  "exit 0"   >>conf$$.sh
+-+   chmod +x conf$$.sh
+-+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-+     PATH_SEPARATOR=';'
+-+   else
+-+     PATH_SEPARATOR=:
+-+   fi
+-+   rm -f conf$$.sh
+-+ fi
+-+ 
+-+ 
+-+   as_lineno_1=$LINENO
+-+   as_lineno_2=$LINENO
+-+   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-+   test "x$as_lineno_1" != "x$as_lineno_2" &&
+-+   test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-+   # Find who we are.  Look in the path if we contain no path at all
+-+   # relative or not.
+-+   case $0 in
+-+     *[\\/]* ) as_myself=$0 ;;
+-+     *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-+ for as_dir in $PATH
+-+ do
+-+   IFS=$as_save_IFS
+-+   test -z "$as_dir" && as_dir=.
+-+   test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-+ done
+-+ 
+-+        ;;
+-+   esac
+-+   # We did not find ourselves, most probably we were run as `sh COMMAND'
+-+   # in which case we are not to be found in the path.
+-+   if test "x$as_myself" = x; then
+-+     as_myself=$0
+-+   fi
+-+   if test ! -f "$as_myself"; then
+-+     { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+-+ echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+-+    { (exit 1); exit 1; }; }
+-+   fi
+-+   case $CONFIG_SHELL in
+-+   '')
+-+     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-+ for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-+ do
+-+   IFS=$as_save_IFS
+-+   test -z "$as_dir" && as_dir=.
+-+   for as_base in sh bash ksh sh5; do
+-+ 	 case $as_dir in
+-+ 	 /*)
+-+ 	   if ("$as_dir/$as_base" -c '
+-+   as_lineno_1=$LINENO
+-+   as_lineno_2=$LINENO
+-+   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-+   test "x$as_lineno_1" != "x$as_lineno_2" &&
+-+   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-+ 	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-+ 	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-+ 	     CONFIG_SHELL=$as_dir/$as_base
+-+ 	     export CONFIG_SHELL
+-+ 	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-+ 	   fi;;
+-+ 	 esac
+-+        done
+-+ done
+-+ ;;
+-+   esac
+-+ 
+-+   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-+   # uniformly replaced by the line number.  The first 'sed' inserts a
+-+   # line-number line before each line; the second 'sed' does the real
+-+   # work.  The second script uses 'N' to pair each line-number line
+-+   # with the numbered line, and appends trailing '-' during
+-+   # substitution so that $LINENO is not a special case at line end.
+-+   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-+   # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-+   sed '=' <$as_myself |
+-+     sed '
+-+       N
+-+       s,$,-,
+-+       : loop
+-+       s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-+       t loop
+-+       s,-$,,
+-+       s,^['$as_cr_digits']*\n,,
+-+     ' >$as_me.lineno &&
+-+   chmod +x $as_me.lineno ||
+-+     { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+-+ echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+-+    { (exit 1); exit 1; }; }
+-+ 
+-+   # Don't try to exec as it changes $[0], causing all sort of problems
+-+   # (the dirname of $[0] is not the place where we might find the
+-+   # original and so on.  Autoconf is especially sensible to this).
+-+   . ./$as_me.lineno
+-+   # Exit status is that of the last command.
+-+   exit
+-+ }
+-+ 
+-+ 
+-+ case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-+   *c*,-n*) ECHO_N= ECHO_C='
+-+ ' ECHO_T='	' ;;
+-+   *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-+   *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-+ esac
+-+ 
+-+ if expr a : '\(a\)' >/dev/null 2>&1; then
+-+   as_expr=expr
+-+ else
+-+   as_expr=false
+-+ fi
+-+ 
+-+ rm -f conf$$ conf$$.exe conf$$.file
+-+ echo >conf$$.file
+-+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+-+   # We could just check for DJGPP; but this test a) works b) is more generic
+-+   # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-+   if test -f conf$$.exe; then
+-+     # Don't use ln at all; we don't have any links
+-+     as_ln_s='cp -p'
+-+   else
+-+     as_ln_s='ln -s'
+-+   fi
+-+ elif ln conf$$.file conf$$ 2>/dev/null; then
+-+   as_ln_s=ln
+-+ else
+-+   as_ln_s='cp -p'
+-+ fi
+-+ rm -f conf$$ conf$$.exe conf$$.file
+-+ 
+-+ if mkdir -p . 2>/dev/null; then
+-+   as_mkdir_p=:
+-+ else
+-+   test -d ./-p && rmdir ./-p
+-+   as_mkdir_p=false
+-+ fi
+-+ 
+-+ as_executable_p="test -f"
+-+ 
+-+ # Sed expression to map a string onto a valid CPP name.
+-+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+-+ 
+-+ # Sed expression to map a string onto a valid variable name.
+-+ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-+ 
+-+ 
+-+ # IFS
+-+ # We need space, tab and new line, in precisely that order.
+-+ as_nl='
+-+ '
+-+ IFS=" 	$as_nl"
+-+ 
+-+ # CDPATH.
+-+ $as_unset CDPATH
+-+ 
+-+ exec 6>&1
+-+ 
+-+ # Open the log real soon, to keep \$[0] and so on meaningful, and to
+-+ # report actual input values of CONFIG_FILES etc. instead of their
+-+ # values after options handling.  Logging --version etc. is OK.
+-+ exec 5>>config.log
+-+ {
+-+   echo
+-+   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+-+ ## Running $as_me. ##
+-+ _ASBOX
+-+ } >&5
+-+ cat >&5 <<_CSEOF
+-+ 
+-+ This file was extended by $as_me, which was
+-+ generated by GNU Autoconf 2.59.  Invocation command line was
+-+ 
+-+   CONFIG_FILES    = $CONFIG_FILES
+-+   CONFIG_HEADERS  = $CONFIG_HEADERS
+-+   CONFIG_LINKS    = $CONFIG_LINKS
+-+   CONFIG_COMMANDS = $CONFIG_COMMANDS
+-+   $ $0 $@
+-+ 
+-+ _CSEOF
+-+ echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+-+ echo >&5
+-+ _ACEOF
+-+ 
+-+ # Files that config.status was made for.
+-+ if test -n "$ac_config_files"; then
+-+   echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+-+ fi
+-+ 
+-+ if test -n "$ac_config_headers"; then
+-+   echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+-+ fi
+-+ 
+-+ if test -n "$ac_config_links"; then
+-+   echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+-+ fi
+-+ 
+-+ if test -n "$ac_config_commands"; then
+-+   echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+-+ fi
+-+ 
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ 
+-+ ac_cs_usage="\
+-+ \`$as_me' instantiates files from templates according to the
+-+ current configuration.
+-+ 
+-+ Usage: $0 [OPTIONS] [FILE]...
+-+ 
+-+   -h, --help       print this help, then exit
+-+   -V, --version    print version number, then exit
+-+   -q, --quiet      do not print progress messages
+-+   -d, --debug      don't remove temporary files
+-+       --recheck    update $as_me by reconfiguring in the same conditions
+-+   --file=FILE[:TEMPLATE]
+-+ 		   instantiate the configuration file FILE
+-+   --header=FILE[:TEMPLATE]
+-+ 		   instantiate the configuration header FILE
+-+ 
+-+ Configuration files:
+-+ $config_files
+-+ 
+-+ Configuration headers:
+-+ $config_headers
+-+ 
+-+ Configuration commands:
+-+ $config_commands
+-+ 
+-+ Report bugs to <bug-autoconf@gnu.org>."
+-+ _ACEOF
+-+ 
+-+ cat >>$CONFIG_STATUS <<_ACEOF
+-+ ac_cs_version="\\
+-+ config.status
+-+ configured by $0, generated by GNU Autoconf 2.59,
+-+   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+-+ 
+-+ Copyright (C) 2003 Free Software Foundation, Inc.
+-+ This config.status script is free software; the Free Software Foundation
+-+ gives unlimited permission to copy, distribute and modify it."
+-+ srcdir=$srcdir
+-+ INSTALL="$INSTALL"
+-+ _ACEOF
+-+ 
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ # If no file are specified by the user, then we need to provide default
+-+ # value.  By we need to know if files were specified by the user.
+-+ ac_need_defaults=:
+-+ while test $# != 0
+-+ do
+-+   case $1 in
+-+   --*=*)
+-+     ac_option=`expr "x$1" : 'x\([^=]*\)='`
+-+     ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+-+     ac_shift=:
+-+     ;;
+-+   -*)
+-+     ac_option=$1
+-+     ac_optarg=$2
+-+     ac_shift=shift
+-+     ;;
+-+   *) # This is not an option, so the user has probably given explicit
+-+      # arguments.
+-+      ac_option=$1
+-+      ac_need_defaults=false;;
+-+   esac
+-+ 
+-+   case $ac_option in
+-+   # Handling of the options.
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+-+     ac_cs_recheck=: ;;
+-+   --version | --vers* | -V )
+-+     echo "$ac_cs_version"; exit 0 ;;
+-+   --he | --h)
+-+     # Conflict between --help and --header
+-+     { { echo "$as_me:$LINENO: error: ambiguous option: $1
+-+ Try \`$0 --help' for more information." >&5
+-+ echo "$as_me: error: ambiguous option: $1
+-+ Try \`$0 --help' for more information." >&2;}
+-+    { (exit 1); exit 1; }; };;
+-+   --help | --hel | -h )
+-+     echo "$ac_cs_usage"; exit 0 ;;
+-+   --debug | --d* | -d )
+-+     debug=: ;;
+-+   --file | --fil | --fi | --f )
+-+     $ac_shift
+-+     CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+-+     ac_need_defaults=false;;
+-+   --header | --heade | --head | --hea )
+-+     $ac_shift
+-+     CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+-+     ac_need_defaults=false;;
+-+   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-+   | -silent | --silent | --silen | --sile | --sil | --si | --s)
+-+     ac_cs_silent=: ;;
+-+ 
+-+   # This is an error.
+-+   -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+-+ Try \`$0 --help' for more information." >&5
+-+ echo "$as_me: error: unrecognized option: $1
+-+ Try \`$0 --help' for more information." >&2;}
+-+    { (exit 1); exit 1; }; } ;;
+-+ 
+-+   *) ac_config_targets="$ac_config_targets $1" ;;
+-+ 
+-+   esac
+-+   shift
+-+ done
+-+ 
+-+ ac_configure_extra_args=
+-+ 
+-+ if $ac_cs_silent; then
+-+   exec 6>/dev/null
+-+   ac_configure_extra_args="$ac_configure_extra_args --silent"
+-+ fi
+-+ 
+-+ _ACEOF
+-+ cat >>$CONFIG_STATUS <<_ACEOF
+-+ if \$ac_cs_recheck; then
+-+   echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+-+   exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+-+ fi
+-+ 
+-+ _ACEOF
+-+ 
+-+ cat >>$CONFIG_STATUS <<_ACEOF
+-+ #
+-+ # INIT-COMMANDS section.
+-+ #
+-+ 
+-+ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+-+ 
+-+ _ACEOF
+-+ 
+-+ 
+-+ 
+-+ cat >>$CONFIG_STATUS <<\_ACEOF
+-+ for ac_config_target in $ac_config_targets
+-+ do
+-+   case "$ac_config_target" in
+-+   # Handling of arguments.
+-+   "include/xmlsec/version.h" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/version.h" ;;
+-+   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+-+   "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+-+   "include/xmlsec/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/Makefile" ;;
+-+   "include/xmlsec/private/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/private/Makefile" ;;
+-+   "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+-+   "apps/Makefile" ) CONFIG_FILES="$CONFIG_FILES apps/Makefile" ;;
+-+   "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+-+   "docs/api/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/api/Makefile" ;;
+-+   "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
+-+   "xmlsec1Conf.sh" ) CONFIG_FILES="$CONFIG_FILES xmlsec1Conf.sh:xmlsecConf.sh.in" ;;
+-+   "xmlsec1-config" ) CONFIG_FILES="$CONFIG_FILES xmlsec1-config:xmlsec-config.in" ;;
+-+   "xmlsec1-openssl.pc" ) CONFIG_FILES="$CONFIG_FILES xmlsec1-openssl.pc:xmlsec-openssl.pc.in" ;;
+-+   "xmlsec1-gnutls.pc" ) CONFIG_FILES="$CONFIG_FILES xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in" ;;
+-+   "xmlsec1-nss.pc" ) CONFIG_FILES="$CONFIG_FILES xmlsec1-nss.pc:xmlsec-nss.pc.in" ;;
+-+   "xmlsec1.spec" ) CONFIG_FILES="$CONFIG_FILES xmlsec1.spec:xmlsec.spec.in" ;;
+-+   "include/xmlsec/openssl/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/openssl/Makefile" ;;
+-+   "src/openssl/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/openssl/Makefile" ;;
+-+   "include/xmlsec/gnutls/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/gnutls/Makefile" ;;
+-+   "src/gnutls/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/gnutls/Makefile" ;;
+-+   "include/xmlsec/nss/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/nss/Makefile" ;;
+-+   "src/nss/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/nss/Makefile" ;;
+-+   "include/xmlsec/mscrypto/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/xmlsec/mscrypto/Makefile" ;;
+-+   "src/mscrypto/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/mscrypto/Makefile" ;;
+-+   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+-+   "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+-+   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+-+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+-+    { (exit 1); exit 1; }; };;
+-+   esac
+-+ done
+-+ 
+-+ # If the user did not use the arguments to specify the items to instantiate,
+-+ # then the envvar interface is used.  Set only those that are not.
+-+ # We use the long form for the default assignment because of an extremely
+-+ # bizarre bug on SunOS 4.1.3.
+-+ if $ac_need_defaults; then
+-+   test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+-+   test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+-+   test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+-+ fi
+-+ 
+-+ # Have a temporary directory for convenience.  Make it in the build tree
+-+ # simply because there is no reason to put it here, and in addition,
+-+ # creating and moving files from /tmp can sometimes cause problems.
+-+ # Create a temporary directory, and hook for its removal unless debugging.
+-+ $debug ||
+-+ {
+-+   trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+-+   trap '{ (exit 1); exit 1; }' 1 2 13 15
+-+ }
+-+ 
+-+ # Create a (secure) tmp directory for tmp files.
+-+ 
+-+ {
+-+   tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+-+   test -n "$tmp" && test -d "$tmp"
+-+ }  ||
+-+ {
+-+   tmp=./confstat$$-$RANDOM
+-+   (umask 077 && mkdir $tmp)
+-+ } ||
+-+ {
+-+    echo "$me: cannot create a temporary directory in ." >&2
+-+    { (exit 1); exit 1; }
+-+ }
+-+ 
+-+ _ACEOF
+-+ 
+-+ cat >>$CONFIG_STATUS <<_ACEOF
+-+ 
+-+ #
+-+ # CONFIG_FILES section.
+-+ #
+-+ 
+-+ # No need to generate the scripts if there are no CONFIG_FILES.
+-+ # This happens for instance when ./config.status config.h
+-+ if test -n "\$CONFIG_FILES"; then
+-+   # Protect against being on the right side of a sed subst in config.status.
+-+   sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+-+    s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+-+ s,@SHELL@,$SHELL,;t t
+-+ s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+-+ s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+-+ s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+-+ s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+-+ s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+-+ s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+-+ s,@exec_prefix@,$exec_prefix,;t t
+-+ s,@prefix@,$prefix,;t t
+-+ s,@program_transform_name@,$program_transform_name,;t t
+-+ s,@bindir@,$bindir,;t t
+-+ s,@sbindir@,$sbindir,;t t
+-+ s,@libexecdir@,$libexecdir,;t t
+-+ s,@datadir@,$datadir,;t t
+-+ s,@sysconfdir@,$sysconfdir,;t t
+-+ s,@sharedstatedir@,$sharedstatedir,;t t
+-+ s,@localstatedir@,$localstatedir,;t t
+-+ s,@libdir@,$libdir,;t t
+-+ s,@includedir@,$includedir,;t t
+-+ s,@oldincludedir@,$oldincludedir,;t t
+-+ s,@infodir@,$infodir,;t t
+-+ s,@mandir@,$mandir,;t t
+-+ s,@build_alias@,$build_alias,;t t
+-+ s,@host_alias@,$host_alias,;t t
+-+ s,@target_alias@,$target_alias,;t t
+-+ s,@DEFS@,$DEFS,;t t
+-+ s,@ECHO_C@,$ECHO_C,;t t
+-+ s,@ECHO_N@,$ECHO_N,;t t
+-+ s,@ECHO_T@,$ECHO_T,;t t
+-+ s,@LIBS@,$LIBS,;t t
+-+ s,@build@,$build,;t t
+-+ s,@build_cpu@,$build_cpu,;t t
+-+ s,@build_vendor@,$build_vendor,;t t
+-+ s,@build_os@,$build_os,;t t
+-+ s,@host@,$host,;t t
+-+ s,@host_cpu@,$host_cpu,;t t
+-+ s,@host_vendor@,$host_vendor,;t t
+-+ s,@host_os@,$host_os,;t t
+-+ s,@XMLSEC_VERSION@,$XMLSEC_VERSION,;t t
+-+ s,@XMLSEC_PACKAGE@,$XMLSEC_PACKAGE,;t t
+-+ s,@XMLSEC_VERSION_SAFE@,$XMLSEC_VERSION_SAFE,;t t
+-+ s,@XMLSEC_VERSION_MAJOR@,$XMLSEC_VERSION_MAJOR,;t t
+-+ s,@XMLSEC_VERSION_MINOR@,$XMLSEC_VERSION_MINOR,;t t
+-+ s,@XMLSEC_VERSION_SUBMINOR@,$XMLSEC_VERSION_SUBMINOR,;t t
+-+ s,@XMLSEC_VERSION_INFO@,$XMLSEC_VERSION_INFO,;t t
+-+ s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+-+ s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+-+ s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+-+ s,@CYGPATH_W@,$CYGPATH_W,;t t
+-+ s,@PACKAGE@,$PACKAGE,;t t
+-+ s,@VERSION@,$VERSION,;t t
+-+ s,@ACLOCAL@,$ACLOCAL,;t t
+-+ s,@AUTOCONF@,$AUTOCONF,;t t
+-+ s,@AUTOMAKE@,$AUTOMAKE,;t t
+-+ s,@AUTOHEADER@,$AUTOHEADER,;t t
+-+ s,@MAKEINFO@,$MAKEINFO,;t t
+-+ s,@AMTAR@,$AMTAR,;t t
+-+ s,@install_sh@,$install_sh,;t t
+-+ s,@STRIP@,$STRIP,;t t
+-+ s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
+-+ s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+-+ s,@mkdir_p@,$mkdir_p,;t t
+-+ s,@AWK@,$AWK,;t t
+-+ s,@SET_MAKE@,$SET_MAKE,;t t
+-+ s,@am__leading_dot@,$am__leading_dot,;t t
+-+ s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
+-+ s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
+-+ s,@MAINT@,$MAINT,;t t
+-+ s,@CC@,$CC,;t t
+-+ s,@CFLAGS@,$CFLAGS,;t t
+-+ s,@LDFLAGS@,$LDFLAGS,;t t
+-+ s,@CPPFLAGS@,$CPPFLAGS,;t t
+-+ s,@ac_ct_CC@,$ac_ct_CC,;t t
+-+ s,@EXEEXT@,$EXEEXT,;t t
+-+ s,@OBJEXT@,$OBJEXT,;t t
+-+ s,@DEPDIR@,$DEPDIR,;t t
+-+ s,@am__include@,$am__include,;t t
+-+ s,@am__quote@,$am__quote,;t t
+-+ s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+-+ s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+-+ s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+-+ s,@CCDEPMODE@,$CCDEPMODE,;t t
+-+ s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+-+ s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+-+ s,@EGREP@,$EGREP,;t t
+-+ s,@LN_S@,$LN_S,;t t
+-+ s,@ECHO@,$ECHO,;t t
+-+ s,@AR@,$AR,;t t
+-+ s,@ac_ct_AR@,$ac_ct_AR,;t t
+-+ s,@RANLIB@,$RANLIB,;t t
+-+ s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+-+ s,@CPP@,$CPP,;t t
+-+ s,@CXX@,$CXX,;t t
+-+ s,@CXXFLAGS@,$CXXFLAGS,;t t
+-+ s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+-+ s,@CXXDEPMODE@,$CXXDEPMODE,;t t
+-+ s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
+-+ s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
+-+ s,@CXXCPP@,$CXXCPP,;t t
+-+ s,@F77@,$F77,;t t
+-+ s,@FFLAGS@,$FFLAGS,;t t
+-+ s,@ac_ct_F77@,$ac_ct_F77,;t t
+-+ s,@LIBTOOL@,$LIBTOOL,;t t
+-+ s,@RM@,$RM,;t t
+-+ s,@CP@,$CP,;t t
+-+ s,@MV@,$MV,;t t
+-+ s,@TAR@,$TAR,;t t
+-+ s,@HELP2MAN@,$HELP2MAN,;t t
+-+ s,@MAN2HTML@,$MAN2HTML,;t t
+-+ s,@U@,$U,;t t
+-+ s,@ANSI2KNR@,$ANSI2KNR,;t t
+-+ s,@INSTALL_LTDL_TRUE@,$INSTALL_LTDL_TRUE,;t t
+-+ s,@INSTALL_LTDL_FALSE@,$INSTALL_LTDL_FALSE,;t t
+-+ s,@CONVENIENCE_LTDL_TRUE@,$CONVENIENCE_LTDL_TRUE,;t t
+-+ s,@CONVENIENCE_LTDL_FALSE@,$CONVENIENCE_LTDL_FALSE,;t t
+-+ s,@LIBADD_DL@,$LIBADD_DL,;t t
+-+ s,@PKG_CONFIG_ENABLED@,$PKG_CONFIG_ENABLED,;t t
+-+ s,@PKG_CONFIG@,$PKG_CONFIG,;t t
+-+ s,@LIBXML_CFLAGS@,$LIBXML_CFLAGS,;t t
+-+ s,@LIBXML_LIBS@,$LIBXML_LIBS,;t t
+-+ s,@LIBXML262_CFLAGS@,$LIBXML262_CFLAGS,;t t
+-+ s,@LIBXML262_LIBS@,$LIBXML262_LIBS,;t t
+-+ s,@LIBXML_CONFIG@,$LIBXML_CONFIG,;t t
+-+ s,@LIBXML_MIN_VERSION@,$LIBXML_MIN_VERSION,;t t
+-+ s,@LIBXSLT_CFLAGS@,$LIBXSLT_CFLAGS,;t t
+-+ s,@LIBXSLT_LIBS@,$LIBXSLT_LIBS,;t t
+-+ s,@XMLSEC_NO_LIBXSLT@,$XMLSEC_NO_LIBXSLT,;t t
+-+ s,@LIBXSLT_CONFIG@,$LIBXSLT_CONFIG,;t t
+-+ s,@LIBXSLT_MIN_VERSION@,$LIBXSLT_MIN_VERSION,;t t
+-+ s,@OPENSSL_CFLAGS@,$OPENSSL_CFLAGS,;t t
+-+ s,@OPENSSL_LIBS@,$OPENSSL_LIBS,;t t
+-+ s,@OPENSSL097_CFLAGS@,$OPENSSL097_CFLAGS,;t t
+-+ s,@OPENSSL097_LIBS@,$OPENSSL097_LIBS,;t t
+-+ s,@XMLSEC_NO_OPENSSL_TRUE@,$XMLSEC_NO_OPENSSL_TRUE,;t t
+-+ s,@XMLSEC_NO_OPENSSL_FALSE@,$XMLSEC_NO_OPENSSL_FALSE,;t t
+-+ s,@XMLSEC_NO_OPENSSL@,$XMLSEC_NO_OPENSSL,;t t
+-+ s,@OPENSSL_CRYPTO_LIB@,$OPENSSL_CRYPTO_LIB,;t t
+-+ s,@OPENSSL_MIN_VERSION@,$OPENSSL_MIN_VERSION,;t t
+-+ s,@GNUTLS_CFLAGS@,$GNUTLS_CFLAGS,;t t
+-+ s,@GNUTLS_LIBS@,$GNUTLS_LIBS,;t t
+-+ s,@XMLSEC_NO_GNUTLS_TRUE@,$XMLSEC_NO_GNUTLS_TRUE,;t t
+-+ s,@XMLSEC_NO_GNUTLS_FALSE@,$XMLSEC_NO_GNUTLS_FALSE,;t t
+-+ s,@XMLSEC_NO_GNUTLS@,$XMLSEC_NO_GNUTLS,;t t
+-+ s,@GNUTLS_CRYPTO_LIB@,$GNUTLS_CRYPTO_LIB,;t t
+-+ s,@GNUTLS_MIN_VERSION@,$GNUTLS_MIN_VERSION,;t t
+-+ s,@NSS_CFLAGS@,$NSS_CFLAGS,;t t
+-+ s,@NSS_LIBS@,$NSS_LIBS,;t t
+-+ s,@XMLSEC_NO_NSS_TRUE@,$XMLSEC_NO_NSS_TRUE,;t t
+-+ s,@XMLSEC_NO_NSS_FALSE@,$XMLSEC_NO_NSS_FALSE,;t t
+-+ s,@XMLSEC_NO_NSS@,$XMLSEC_NO_NSS,;t t
+-+ s,@NSS_CRYPTO_LIB@,$NSS_CRYPTO_LIB,;t t
+-+ s,@NSS_MIN_VERSION@,$NSS_MIN_VERSION,;t t
+-+ s,@NSPR_MIN_VERSION@,$NSPR_MIN_VERSION,;t t
+-+ s,@MOZILLA_MIN_VERSION@,$MOZILLA_MIN_VERSION,;t t
+-+ s,@MSCRYPTO_CFLAGS@,$MSCRYPTO_CFLAGS,;t t
+-+ s,@MSCRYPTO_LIBS@,$MSCRYPTO_LIBS,;t t
+-  s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
+-  s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
+-  s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
+-***************
+-*** 34368,34373 ****
+---- 36254,36261 ----
+-  s,@NSS_MIN_VERSION@,$NSS_MIN_VERSION,;t t
+-  s,@NSPR_MIN_VERSION@,$NSPR_MIN_VERSION,;t t
+-  s,@MOZILLA_MIN_VERSION@,$MOZILLA_MIN_VERSION,;t t
+-+ s,@MSCRYPTO_CFLAGS@,$MSCRYPTO_CFLAGS,;t t
+-+ s,@MSCRYPTO_LIBS@,$MSCRYPTO_LIBS,;t t
+-  s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
+-  s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
+-  s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
+ *** misc/xmlsec1-1.2.6/configure.in	Thu Aug 26 04:49:24 2004
+ --- misc/build/xmlsec1-1.2.6/configure.in	Fri May 11 14:47:19 2007
+ ***************
+@@ -2603,7 +438,7 @@
+   NSS_FOUND="no"
+   
+ ***************
+-*** 521,527 ****
++*** 521,529 ****
+       AC_MSG_RESULT(no)
+       NSS_FOUND="without"
+   elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
+@@ -2611,14 +446,25 @@
+   	[NSS_FOUND=yes],
+   	[NSS_FOUND=no])
+   fi
+---- 535,541 ----
++  
++  if test "z$NSS_FOUND" = "zno" ; then 
++--- 535,550 ----
+       AC_MSG_RESULT(no)
+       NSS_FOUND="without"
+   elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
+-!     PKG_CHECK_MODULES(NSS, $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION,
++!     dnl try system nspr and nss
++!     PKG_CHECK_MODULES(NSS, nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION,
+   	[NSS_FOUND=yes],
+   	[NSS_FOUND=no])
+++     dnl fallback to the mozilla nspr and nss
+++     if test "z$NSS_FOUND" = "zno" ; then
+++ 	PKG_CHECK_MODULES(NSS, $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR-nss >= $MOZILLA_MIN_VERSION,
+++             [NSS_FOUND=yes],
+++             [NSS_FOUND=no])
+++     fi
+   fi
++  
++  if test "z$NSS_FOUND" = "zno" ; then 
+ ***************
+ *** 534,541 ****
+           ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
+@@ -2629,7 +475,7 @@
+   
+       AC_MSG_CHECKING(for nspr libraries >= $NSPR_MIN_VERSION)
+       NSPR_INCLUDES_FOUND="no"
+---- 548,555 ----
++--- 555,562 ----
+           ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
+       fi
+   
+@@ -2647,7 +493,7 @@
+   		dnl do not add -L/usr/lib because compiler does it anyway
+           	if test "z$dir" = "z/usr/lib" ; then
+               	    NSPR_LIBS="$NSPR_LIBS_LIST"
+---- 584,592 ----
++--- 591,599 ----
+   	done
+   	
+   	for dir in $ac_nss_lib_dir ; do
+@@ -2666,7 +512,7 @@
+   	done
+       fi
+   
+---- 599,624 ----
++--- 606,631 ----
+   		fi
+   		NSPR_LIBS_FOUND="yes"
+   		break
+@@ -2702,7 +548,7 @@
+           	dnl do not add -L/usr/lib because compiler does it anyway
+       		if test "z$dir" = "z/usr/lib" ; then
+           	    NSS_LIBS="$NSS_LIBS_LIST"
+---- 676,684 ----
++--- 683,691 ----
+           done
+          
+           for dir in $ac_nss_lib_dir ; do
+@@ -2721,7 +567,7 @@
+   	done
+       fi
+   
+---- 691,716 ----
++--- 698,723 ----
+   		fi
+       		NSS_LIBS_FOUND="yes"
+       		break
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkwarn-officecfg-disable-msgbox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkwarn-officecfg-disable-msgbox.diff
@@ -0,0 +1,18 @@
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs	2008-05-08 07:04:27.000000000 +0200
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2008-05-07 10:32:49.000000000 +0200
+@@ -5456,6 +5456,15 @@
+ 				</info>
+ 				<value>true</value>
+ 			</prop>
++			<prop oor:name="ShowLinkWarningDialog" oor:type="xs:boolean">
++				<info>
++					<author>THB</author>
++					<desc>Determines if a warning dialog should be
++					displayed when a user checks the link checkbox in
++					the insert graphics dialog.</desc>
++				</info>
++				<value>true</value>
++			</prop>
+ 			<prop oor:name="DisableUICustomization" oor:type="xs:boolean">
+ 				<info>
+ 					<author>RSiddhartha</author>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-template-category-labels.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-template-category-labels.diff
@@ -0,0 +1,18 @@
+--- sfx2/source/doc/doctempl.src.old	2007-06-28 01:21:07.000000000 +0200
++++ sfx2/source/doc/doctempl.src	2007-08-24 16:25:12.000000000 +0200
+@@ -51,6 +51,7 @@ StringArray TEMPLATE_SHORT_NAMES_ARY
+ 		< "layout" ; > ;
+ 		< "presnt" ; > ;
+ 		< "misc" ; > ;
++		< "labels" ; > ;
+ 	};
+ };
+ 
+@@ -68,6 +69,7 @@ StringArray TEMPLATE_LONG_NAMES_ARY
+         < "Presentation Backgrounds" ; > ;
+         < "Presentations" ; > ;
+         < "Miscellaneous" ; > ;
++        < "Labels" ; > ;
+     };
+ 
+ 	};
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo61812.svx.a11ycrash.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo61812.svx.a11ycrash.diff
@@ -0,0 +1,22 @@
+Index: source/outliner/outliner.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/outliner/outliner.cxx,v
+retrieving revision 1.69
+diff -u -r1.69 outliner.cxx
+--- svx/source/outliner/outliner.cxx	12 Oct 2006 13:02:06 -0000	1.69
++++ svx/source/outliner/outliner.cxx	9 Nov 2006 15:01:03 -0000
+@@ -1964,9 +1964,12 @@
+     EBulletInfo aInfo;
+ 
+     aInfo.nParagraph = nPara;
+-    aInfo.bVisible = ImplHasBullet( nPara );
+ 
+-    const SvxNumberFormat* pFmt = ImplGetBullet( nPara );
++    DBG_ASSERT(pParaList && pParaList->GetParagraphCount() > nPara, "Paragraph out of range\n");
++
++    aInfo.bVisible = (pParaList && pParaList->GetParagraphCount() > nPara) ? ImplHasBullet( nPara ) : false;
++
++    const SvxNumberFormat* pFmt = (pParaList && pParaList->GetParagraphCount() > nPara) ? ImplGetBullet( nPara ) : 0;
+     aInfo.nType = pFmt ? pFmt->GetNumberingType() : 0;
+ 
+     if( pFmt )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svtools-adjust-sheet-tabcolor.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svtools-adjust-sheet-tabcolor.diff
@@ -0,0 +1,36 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=svtools.vpj svtools.clean/source/control/tabbar.cxx svtools/source/control/tabbar.cxx
+--- svtools.clean/source/control/tabbar.cxx	2008-05-02 23:19:10.000000000 -0400
++++ svtools/source/control/tabbar.cxx	2008-05-02 23:22:27.000000000 -0400
+@@ -518,6 +518,32 @@ void TabBar::ImplGetColors( Color& rFace
+     else
+         rSelectTextColor = rStyleSettings.GetWindowTextColor();
+ 
++    // Make sure the normal tab color is darker or brighter enough than the
++    // selected tab color.
++
++    int nDelta = abs(rSelectColor.GetRed() - rFaceColor.GetRed()) + 
++        abs(rSelectColor.GetGreen() - rFaceColor.GetGreen()) + 
++        abs(rSelectColor.GetBlue() - rFaceColor.GetBlue());
++
++    if (nDelta < 80)
++    {
++        // There isn't enough contrast between the two colors.
++        if ( rFaceColor.IsDark() )
++        {
++            double fRate = 1.0 + 2.0*(80.0 - nDelta)/80.0;
++            rFaceColor.SetRed( rFaceColor.GetRed()*fRate );
++            rFaceColor.SetGreen( rFaceColor.GetGreen()*fRate );
++            rFaceColor.SetBlue( rFaceColor.GetBlue()*fRate );
++        }
++        else
++        {
++            double fRate = 1.0 - 0.12*(80.0 - nDelta)/80.0;
++            rFaceColor.SetRed( rFaceColor.GetRed()*fRate );
++            rFaceColor.SetGreen( rFaceColor.GetGreen()*fRate );
++            rFaceColor.SetBlue( rFaceColor.GetBlue()*fRate );
++        }
++    }
++
+     // Bei 3D-Tabs wird Selektions- und Face-Farbe umgedreht, da die
+     // selektierten Tabs in 3D erscheinen sollen
+     if ( mnWinStyle & WB_3DTAB )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-cmcfixes47-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-cmcfixes47-sw.diff
@@ -0,0 +1,17 @@
+Index: sw/source/filter/ww8/ww8par6.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/filter/ww8/ww8par6.cxx,v
+retrieving revision 1.184
+retrieving revision 1.184.6.1
+diff -u -u -p -B -r1.184 -r1.184.6.1
+--- sw/source/filter/ww8/ww8par6.cxx	4 Jun 2008 09:53:53 -0000	1.184
++++ sw/source/filter/ww8/ww8par6.cxx	12 Jun 2008 10:17:40 -0000	1.184.6.1
+@@ -910,7 +910,7 @@ void wwSectionManager::CreateSep(const l
+     if (aNewSection.maSep.nfcPgn > 4)
+         aNewSection.maSep.nfcPgn = 0;
+ 
+-    aNewSection.maSep.fUnlocked = eVer <= ww::eWW2 ? ReadBSprm(pSep, (eVer <= ww::eWW7 ? 139 : 0x3006), 0 ) : 0;
++    aNewSection.maSep.fUnlocked = eVer > ww::eWW2 ? ReadBSprm(pSep, (eVer <= ww::eWW7 ? 139 : 0x3006), 0 ) : 0;
+ 
+     // sprmSFBiDi
+     aNewSection.maSep.fBiDi = eVer >= ww::eWW8 ? ReadBSprm(pSep, 0x3228, 0) : 0;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/recovery-report.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/recovery-report.diff
@@ -0,0 +1,11 @@
+--- officecfg/registry/schema/org/openoffice/Office/Recovery.xcs	11 Nov 2005 12:43:23 +0100	1.6
++++ officecfg/registry/schema/org/openoffice/Office/Recovery.xcs	18 Nov 2005 00:27:31 +0100	
+@@ -117,7 +117,7 @@
+                 <info>
+                     <desc>Specifies if the crash reporter should be enabled or disabled.</desc>
+                 </info>
+-                <value>true</value>
++                <value>false</value>
+             </prop>
+         </group>
+         <group oor:name="AutoSave">
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cygwin-make-ver.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cygwin-make-ver.diff
@@ -0,0 +1,13 @@
+--- config_office/configure.in.patched	2006-08-09 11:39:50.373000000 +0100
++++ config_office/configure.in	2006-08-09 11:44:06.841750000 +0100
+@@ -1232,6 +1232,10 @@
+            break
+       fi
+ done
++$GNUMAKE --version 2> /dev/null | grep ' 3.81'  2>&1 > /dev/null
++if test $? -eq 0;  then
++  AC_MSG_ERROR("gmake 3.81 cannot build mozilla - please use 3.80")
++fi
+ AC_MSG_RESULT($GNUMAKE)
+ 
+ AC_MSG_CHECKING([the GNU make version])
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wpsimport-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wpsimport-filter.diff
@@ -0,0 +1,49 @@
+--- filter/source/config/fragments/fcfg_writer.mk	13 Jul 2006 09:12:35 -0000	1.9
++++ filter/source/config/fragments/fcfg_writer.mk	18 Dec 2006 13:22:05 -0000	1.9.90.1
+@@ -46,6 +46,7 @@ T4_WRITER = \
+     writer_StarOffice_XML_Writer \
+     $(T4_WRITER_BINFILTER) \
+     writer_WordPerfect_Document \
++    writer_MS_Works_Document \
+     writer_Text \
+     writer_Text_encoded \
+     writer_JustSystem_Ichitaro_10 \
+@@ -79,6 +80,7 @@ F4_WRITER = \
+ 	StarOffice_XML__Writer_ \
+ 	$(F4_WRITER_BINFILTER) \
+ 	WordPerfect \
++	MS_Works \
+ 	Text \
+ 	Text__encoded_ \
+ 	writer_JustSystem_Ichitaro_10 \
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/config/fragments/filters/MS_Works.xcu	30 Jan 2007 14:12:47 -0000	1.1.2.2
+@@ -0,0 +1,13 @@
++	<node oor:name="MS_Works" oor:op="replace">
++		<prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.MSWorksImportFilter</value></prop>
++		<prop oor:name="UserData"><value>WPS</value></prop>
++		<prop oor:name="UIName">
++			<value xml:lang="x-default">Microsoft Works Document</value>
++		</prop>
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>writer_MS_Works_Document</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
++	</node>
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ filter/source/config/fragments/types/writer_MS_Works_Document.xcu	18 Dec 2006 13:22:06 -0000	1.1.2.1
+@@ -0,0 +1,12 @@
++	<node oor:name="writer_MS_Works_Document" oor:op="replace" >
++		<prop oor:name="DetectService"><value>com.sun.star.comp.Writer.MSWorksImportFilter</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>wps</value></prop>
++		<prop oor:name="MediaType"/>
++		<prop oor:name="Preferred"><value>true</value></prop>
++		<prop oor:name="PreferredFilter"><value>MS_Works</value></prop>
++		<prop oor:name="UIName">
++			<value>Microsoft Works Document</value>
++		</prop>
++		<prop oor:name="ClipboardFormat"/>
++	</node>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium_macro_target.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium_macro_target.diff
@@ -0,0 +1,9 @@
+--- wizards/util/target.pmk.orig	2006-05-17 09:41:52.000000000 +0200
++++ wizards/util/target.pmk	2006-07-02 13:54:45.125000000 +0200
+@@ -45,4 +45,6 @@
+ STANDARD_ALL_TARGET             = basicsrvstandard
+ LAUNCHER_ALL_TARGET             = basicsrvlauncher
+ TUTORIALS_ALL_TARGET            = basicsrvtutorials
++PREMIUM_ALL_TARGET              = basicsrvpremium
++OOOWIKIPEDIA_ALL_TARGET              = basicsrvooowikipedia
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-process.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-process.diff
@@ -0,0 +1,1982 @@
+diff --git a/automation/source/testtool/tcommuni.cxx b/automation/source/testtool/tcommuni.cxx
+index a93f2d9..463f81f 100644
+--- automation/source/testtool/tcommuni.cxx
++++ automation/source/testtool/tcommuni.cxx
+@@ -49,9 +49,6 @@
+ #ifndef _DEBUG_HXX //autogen
+ #include <tools/debug.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #include <vcl/timer.hxx>
+ 
+ #ifndef _BASIC_TTRESHLP_HXX
+diff --git a/basic/inc/basic/process.hxx b/basic/inc/basic/process.hxx
+index 425a30d..7a3de64 100644
+--- basic/inc/basic/process.hxx
++++ basic/inc/basic/process.hxx
+@@ -40,8 +40,8 @@
+ #include <tools/string.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #include <map>
+@@ -52,9 +52,12 @@ typedef Environment::value_type EnvironmentVariable;
+ class Process
+ {
+ 	// Interne Member und Methoden
+-	NAMESPACE_VOS(OArgumentList) *pArgumentList;
+-	NAMESPACE_VOS(OEnvironment) *pEnvList;
+-	NAMESPACE_VOS(OProcess) *pProcess;
++	sal_uInt32                  m_nArgumentCount;
++	rtl_uString               **m_pArgumentList;
++	sal_uInt32                  m_nEnvCount;
++	rtl_uString               **m_pEnvList;
++	rtl::OUString               m_aProcessName;
++	oslProcess                  m_pProcess;
+ 	BOOL ImplIsRunning();
+ 	long ImplGetExitCode();
+ 	BOOL bWasGPF;
+diff --git a/basic/inc/pch/precompiled_basic.hxx b/basic/inc/pch/precompiled_basic.hxx
+index 70f4753..dc841a6 100644
+--- basic/inc/pch/precompiled_basic.hxx
++++ basic/inc/pch/precompiled_basic.hxx
+@@ -286,7 +286,6 @@
+ #include "vos/diagnose.hxx"
+ #include "vos/macros.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ 
+ #include "xmlscript/xmldlg_imexp.hxx"
+ #include "xmlscript/xmllib_imexp.hxx"
+diff --git a/basic/source/app/process.cxx b/basic/source/app/process.cxx
+index 8ff69f1..6cb5b25 100644
+--- basic/source/app/process.cxx
++++ basic/source/app/process.cxx
+@@ -72,30 +72,47 @@
+ 
+ // Konstruktor f�r den Process
+ Process::Process()
+-: pArgumentList( NULL )
+-, pEnvList( NULL )
+-, pProcess( NULL )
++: m_nArgumentCount( 0 )
++, m_pArgumentList( NULL )
++, m_nEnvCount( 0 )
++, m_pEnvList( NULL )
++, m_aProcessName()
++, m_pProcess( NULL )
+ , bWasGPF( FALSE )
+ , bHasBeenStarted( FALSE )
+ {
+ }
+ 
++#define FREE_USTRING_LIST( count, list ) \
++    if ( count && list ) \
++    { \
++        for ( int i = 0; i < count; ++i ) \
++        { \
++            rtl_uString_release( list[i] ); \
++            list[i] = NULL; \
++        } \
++        delete[] list; \
++    } \
++    count = 0; \
++    list = NULL;
++
+ // Destruktor
+ Process::~Process()
+ {
+-//    delete pArgumentList;
+-//    delete pEnvList;
+-	delete pProcess;
++    FREE_USTRING_LIST( m_nArgumentCount, m_pArgumentList );
++    FREE_USTRING_LIST( m_nEnvCount, m_pEnvList );
++    if ( m_pProcess )
++        osl_freeProcessHandle( m_pProcess );
+ }
+ 
+ 
+ BOOL Process::ImplIsRunning()
+ {
+-	if ( pProcess && bHasBeenStarted )
++	if ( m_pProcess && bHasBeenStarted )
+ 	{
+-		NAMESPACE_VOS(OProcess::TProcessInfo) aProcessInfo;
+-		pProcess->getInfo( NAMESPACE_VOS(OProcess::TData_ExitCode), &aProcessInfo );
+-		if ( !(aProcessInfo.Fields & NAMESPACE_VOS(OProcess::TData_ExitCode)) )
++		oslProcessInfo m_pProcessInfo;
++		osl_getProcessInfo( m_pProcess, osl_Process_EXITCODE, &m_pProcessInfo );
++		if ( !(m_pProcessInfo.Fields & osl_Process_EXITCODE) )
+ 			return TRUE;
+ 		else
+ 			return FALSE;
+@@ -106,13 +123,13 @@ BOOL Process::ImplIsRunning()
+ 
+ long Process::ImplGetExitCode()
+ {
+-	if ( pProcess )
++	if ( m_pProcess )
+ 	{
+-		NAMESPACE_VOS(OProcess::TProcessInfo) aProcessInfo;
+-		pProcess->getInfo( NAMESPACE_VOS(OProcess::TData_ExitCode), &aProcessInfo );
+-		if ( !(aProcessInfo.Fields & NAMESPACE_VOS(OProcess::TData_ExitCode)) )
++		oslProcessInfo m_pProcessInfo;
++		osl_getProcessInfo( m_pProcess, osl_Process_EXITCODE, &m_pProcessInfo );
++		if ( !(m_pProcessInfo.Fields & osl_Process_EXITCODE) )
+ 			SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+-		return aProcessInfo.Code;
++		return m_pProcessInfo.Code;
+ 	}
+ 	else
+ 		SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+@@ -125,63 +142,67 @@ long Process::ImplGetExitCode()
+ // Die Methoden:
+ void Process::SetImage( const String &aAppPath, const String &aAppParams, const Environment *pEnv )
+ { // Imagedatei des Executables
+-	if ( pProcess && ImplIsRunning() )
+-		SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
+-	else
+-	{
+-		delete pArgumentList; pArgumentList = NULL;
+-		delete pEnvList; pEnvList = NULL;
+-		delete pProcess; pProcess = NULL;
++    if ( m_pProcess && ImplIsRunning() )
++        SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
++    else
++    {
++        FREE_USTRING_LIST( m_nArgumentCount, m_pArgumentList );
++        FREE_USTRING_LIST( m_nEnvCount, m_pEnvList );
++        osl_freeProcessHandle( m_pProcess );
++        m_pProcess = NULL;
+ 
+-		xub_StrLen i, nCount = aAppParams.GetQuotedTokenCount( CUniString("\"\"" ), ' ' );
+-		::rtl::OUString *pParamList = new ::rtl::OUString[nCount];
++        xub_StrLen i, nCount = aAppParams.GetQuotedTokenCount( CUniString("\"\"" ), ' ' );
++        ::rtl::OUString *pParamList = new ::rtl::OUString[nCount];
+ 
+         xub_StrLen nParamCount = 0;
+-		for ( i = 0 ; i < nCount ; i++ )
+-		{
+-			::rtl::OUString aTemp = ::rtl::OUString(aAppParams.GetQuotedToken( i, CUniString("\"\"''" ), ' ' ));
+-			if ( aTemp.getLength() )
++        for ( i = 0 ; i < nCount ; i++ )
++        {
++            ::rtl::OUString aTemp = ::rtl::OUString(aAppParams.GetQuotedToken( i, CUniString("\"\"''" ), ' ' ));
++            if ( aTemp.getLength() )
+             {
+-				pParamList[nParamCount] = aTemp;
++                pParamList[nParamCount] = aTemp;
+                 nParamCount++;
+             }
+-		}
+-		pArgumentList = new NAMESPACE_VOS(OArgumentList)( pParamList, nCount );
+-
++        }
++        m_nArgumentCount = nParamCount;
++        m_pArgumentList = new rtl_uString*[m_nArgumentCount];
++        for ( i = 0 ; i < m_nArgumentCount ; i++ )
++        {
++            m_pArgumentList[i] = NULL;
++            rtl_uString_assign( &(m_pArgumentList[i]), pParamList[i].pData );
++        }
++        delete [] pParamList;
+ 
+-        ::rtl::OUString *pEnvArray = NULL;
+         if ( pEnv )
+         {
+-		    pEnvArray = new ::rtl::OUString[pEnv->size()];
++            m_nEnvCount = pEnv->size();
++            m_pEnvList = new rtl_uString*[m_nEnvCount];
+ 
+-            xub_StrLen nEnvCount = 0;
++            xub_StrLen m_nEnvCount = 0;
+             Environment::const_iterator aIter = pEnv->begin();
+-		    while ( aIter != pEnv->end() )
+-		    {
+-			    ::rtl::OUString aTemp = ::rtl::OUString( (*aIter).first );
++            while ( aIter != pEnv->end() )
++            {
++                ::rtl::OUString aTemp = ::rtl::OUString( (*aIter).first );
+                 aTemp += ::rtl::OUString::createFromAscii( "=" );
+-			    aTemp += ::rtl::OUString( (*aIter).second );
+-			    pEnvArray[nEnvCount] = aTemp;
+-                nEnvCount++;
++                aTemp += ::rtl::OUString( (*aIter).second );
++                m_pEnvList[m_nEnvCount] = NULL;
++                rtl_uString_assign( &(m_pEnvList[m_nEnvCount]), aTemp.pData );
++                m_nEnvCount++;
+                 aIter++;
+-		    }
+-		    pEnvList = new NAMESPACE_VOS(OEnvironment)( pEnvArray, nEnvCount );
++            }
+         }
+ 
+         ::rtl::OUString aNormalizedAppPath;
+-		osl::FileBase::getFileURLFromSystemPath( ::rtl::OUString(aAppPath), aNormalizedAppPath );
+-		pProcess = new NAMESPACE_VOS(OProcess)( aNormalizedAppPath );
+-		bHasBeenStarted = FALSE;
+-
+-        delete [] pParamList;
+-        delete [] pEnvArray;
+-	}
++        osl::FileBase::getFileURLFromSystemPath( ::rtl::OUString(aAppPath), aNormalizedAppPath );
++        m_aProcessName = aNormalizedAppPath;
++        bHasBeenStarted = FALSE;
++    }
+ }
+ 
+ BOOL Process::Start()
+ { // Programm wird gestartet
+ 	BOOL bSuccess=FALSE;
+-	if ( pProcess && !ImplIsRunning() )
++	if ( m_pProcess && !ImplIsRunning() )
+ 	{
+ 		bWasGPF = FALSE;
+ #ifdef WNT
+@@ -190,23 +211,18 @@ BOOL Process::Start()
+ 		try
+ 		{
+ #endif
+-            if ( pEnvList )
+-            {
+-                bSuccess = pProcess->execute( (NAMESPACE_VOS(OProcess)::TProcessOption)
+-						    ( NAMESPACE_VOS(OProcess)::TOption_SearchPath
+-						    /*| NAMESPACE_VOS(OProcess)::TOption_Detached*/
+-						    /*| NAMESPACE_VOS(OProcess)::TOption_Wait*/ ),
+-						    *pArgumentList, 
+-						    *pEnvList ) == NAMESPACE_VOS(OProcess)::E_None;
+-            }
+-            else
+-            {
+-                bSuccess = pProcess->execute( (NAMESPACE_VOS(OProcess)::TProcessOption)
+-						    ( NAMESPACE_VOS(OProcess)::TOption_SearchPath
+-						    /*| NAMESPACE_VOS(OProcess)::TOption_Detached*/
+-						    /*| NAMESPACE_VOS(OProcess)::TOption_Wait*/ ),
+-						    *pArgumentList ) == NAMESPACE_VOS(OProcess)::E_None;
+-            }
++            bSuccess = osl_executeProcess(
++                    m_aProcessName.pData,
++                    m_pArgumentList,
++                    m_nArgumentCount,
++                    osl_Process_SEARCHPATH
++                    /*| osl_Process_DETACHED*/
++                    /*| osl_Process_WAIT*/,
++                    NULL,
++                    NULL,
++                    m_pEnvList,
++                    m_nEnvCount,
++                    &m_pProcess ) == osl_Process_E_None;
+ #ifdef WNT
+ 		}
+ 		catch( ... ) 
+@@ -244,7 +260,7 @@ BOOL Process::WasGPF()
+ BOOL Process::Terminate()
+ {
+     if ( ImplIsRunning() )
+-        return pProcess->terminate() == vos::OProcess::E_None;
++        return osl_terminateProcess( m_pProcess ) == osl_Process_E_None;
+     return TRUE;
+ }
+ 
+diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
+index c4566ce..be85839 100644
+--- basic/source/runtime/methods.cxx
++++ basic/source/runtime/methods.cxx
+@@ -43,8 +43,8 @@
+ #ifndef _SBXVAR_HXX
+ #include <basic/sbxvar.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _SV_SVAPP_HXX //autogen
+ #include <vcl/svapp.hxx>
+@@ -3282,8 +3282,7 @@ RTLFUNC(Shell)
+ 	}
+ 	else
+ 	{
+-		USHORT nOptions = NAMESPACE_VOS(OProcess)::TOption_SearchPath|
+-						  NAMESPACE_VOS(OProcess)::TOption_Detached;
++		oslProcessOption nOptions = osl_Process_SEARCHPATH | osl_Process_DETACHED;
+ 		String aCmdLine = rPar.Get(1)->GetString();
+ 		// Zusaetzliche Parameter anhaengen, es muss eh alles geparsed werden
+ 		if( nArgCount >= 4 )
+@@ -3361,13 +3360,13 @@ RTLFUNC(Shell)
+ 			switch( nWinStyle )
+ 			{
+ 				case 2:
+-					nOptions |= NAMESPACE_VOS(OProcess)::TOption_Minimized;
++					nOptions |= osl_Process_MINIMIZED;
+ 					break;
+ 				case 3:
+-					nOptions |= NAMESPACE_VOS(OProcess)::TOption_Maximized;
++					nOptions |= osl_Process_MAXIMIZED;
+ 					break;
+ 				case 10:
+-					nOptions |= NAMESPACE_VOS(OProcess)::TOption_FullScreen;
++					nOptions |= osl_Process_FULLSCREEN;
+ 					break;
+ 			}
+ 
+@@ -3375,62 +3374,51 @@ RTLFUNC(Shell)
+ 			if( nArgCount >= 5 )
+ 				bSync = rPar.Get(4)->GetBool();
+ 			if( bSync )
+-				nOptions |= NAMESPACE_VOS(OProcess)::TOption_Wait;
++				nOptions |= osl_Process_WAIT;
+ 		}
+-		NAMESPACE_VOS(OProcess)::TProcessOption eOptions =
+-			(NAMESPACE_VOS(OProcess)::TProcessOption)nOptions;
+-
+ 
+ 		// #72471 Parameter aufbereiten
+ 		std::list<String>::const_iterator iter = aTokenList.begin();
+ 		const String& rStr = *iter;
+ 		::rtl::OUString aOUStrProg( rStr.GetBuffer(), rStr.Len() );
+-		String aOUStrProgUNC = getFullPathUNC( aOUStrProg );
++		::rtl::OUString aOUStrProgUNC( getFullPathUNC( aOUStrProg ) );
+ 
+ 		iter++;
+ 
+ 		USHORT nParamCount = sal::static_int_cast< USHORT >(
+             aTokenList.size() - 1 );
+-		::rtl::OUString* pArgumentList = NULL;
+-		//const char** pParamList = NULL;
++		rtl_uString** pParamList = NULL;
+ 		if( nParamCount )
+ 		{
+-			pArgumentList = new ::rtl::OUString[ nParamCount ];
+-			//pParamList = new const char*[ nParamCount ];
+-			USHORT iList = 0;
+-			while( iter != aTokenList.end() )
++			pParamList = new rtl_uString*[ nParamCount ];
++			for ( int iList = 0; iter != aTokenList.end(); ++iList, ++iter )
+ 			{
+ 				const String& rParamStr = (*iter);
+-				pArgumentList[iList++] = ::rtl::OUString( rParamStr.GetBuffer(), rParamStr.Len() );
+-				//pParamList[iList++] = (*iter).GetStr();
+-				iter++;
++				const ::rtl::OUString aTempStr( rParamStr.GetBuffer(), rParamStr.Len() );
++
++				pParamList[iList] = NULL;
++				rtl_uString_assign( &(pParamList[iList]), aTempStr.pData );
+ 			}
+ 		}
+ 
+-		//const char* pParams = aParams.Len() ? aParams.GetStr() : 0;
+-		NAMESPACE_VOS(OProcess)* pApp;
+-		pApp = new NAMESPACE_VOS(OProcess)( aOUStrProgUNC );
+-		BOOL bSucc;
+-		if( nParamCount == 0 )
+-		{
+-			bSucc = pApp->execute( eOptions ) == NAMESPACE_VOS(OProcess)::E_None;
+-		}
+-		else
++		oslProcess pApp;
++		BOOL bSucc = osl_executeProcess(
++					aOUStrProgUNC.pData,
++					pParamList,
++					nParamCount,
++					nOptions,
++					NULL,
++					NULL,
++					NULL, 0,
++					&pApp ) == osl_Process_E_None;
++
++		osl_freeProcessHandle( pApp );
++		for ( int i = 0; i < nParamCount; ++i )
+ 		{
+-		    NAMESPACE_VOS(OArgumentList) aArgList( pArgumentList, nParamCount );
+-			bSucc = pApp->execute( eOptions, aArgList ) == NAMESPACE_VOS(OProcess)::E_None;
++			rtl_uString_release( pParamList[i] );
++			pParamList[i] = NULL;
+ 		}
+-
+-		/*
+-		if( nParamCount == 0 )
+-			pApp = new NAMESPACE_VOS(OProcess)( pProg );
+-		else
+-			pApp = new NAMESPACE_VOS(OProcess)( pProg, pParamList, nParamCount );
+-		BOOL bSucc = pApp->execute( eOptions ) == NAMESPACE_VOS(OProcess)::E_None;
+-		*/
+-
+-		delete pApp;
+-		delete[] pArgumentList;
++		delete[] pParamList;
+ 		if( !bSucc )
+ 			StarBASIC::Error( SbERR_FILE_NOT_FOUND );
+ 		else
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appmain.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appmain.cxx
+index 40371ca..3645b2c 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appmain.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appmain.cxx
+@@ -57,7 +57,6 @@
+ #include <svtools/itempool.hxx>
+ #include <svtools/urihelper.hxx>
+ #include <svtools/helpopt.hxx>
+-#include <vos/process.hxx>
+ 
+ #include "appimp.hxx"
+ #include "sfxtypes.hxx"
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+index 80c52fd..b4660c8 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appmisc.cxx
+@@ -39,9 +39,6 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX //autogen
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _XCEPTION_HXX_
+ #include <vos/xception.hxx>
+ #endif
+diff --git a/binfilter/bf_sfx2/source/bastyp/sfx2_fltfnc.cxx b/binfilter/bf_sfx2/source/bastyp/sfx2_fltfnc.cxx
+index 62fe691..14b2e85 100644
+--- binfilter/bf_sfx2/source/bastyp/sfx2_fltfnc.cxx
++++ binfilter/bf_sfx2/source/bastyp/sfx2_fltfnc.cxx
+@@ -51,7 +51,6 @@
+ #include <sal/types.h>
+ #include <com/sun/star/uno/Reference.h>
+ #include <com/sun/star/ucb/XContent.hpp>
+-#include <vos/process.hxx>
+ 
+ 
+ #include <rtl/logfile.hxx>
+@@ -59,7 +58,6 @@
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::ucb;
+ using namespace ::rtl;
+-using namespace ::vos;
+ 
+ #ifndef _SVTOOLS_CTYPEITM_HXX
+ #include <svtools/ctypeitm.hxx>
+diff --git a/comphelper/source/misc/regpathhelper.cxx b/comphelper/source/misc/regpathhelper.cxx
+index 3911cd2..4faa9ba 100644
+--- comphelper/source/misc/regpathhelper.cxx
++++ comphelper/source/misc/regpathhelper.cxx
+@@ -47,8 +47,8 @@
+ #ifndef _OSL_THREAD_H_
+ #include <osl/thread.h>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _RTL_TEXTENC_H
+ #include <rtl/textenc.h>
+@@ -60,7 +60,6 @@
+ #include <rtl/uri.hxx>
+ #endif
+ 
+-using namespace vos;
+ using namespace osl;
+ using namespace rtl;
+ 
+@@ -88,13 +87,12 @@ namespace comphelper
+  */
+ static sal_Bool retrievePortalUserDir( OUString *pDirectory )
+ {
+-	OStartupInfo startInfo;
+-	sal_uInt32 nArgs = startInfo.getCommandArgCount();
++	sal_uInt32 nArgs = osl_getCommandArgCount();
+ 	sal_Bool bIsPortalUser = sal_False;
+ 	OUString sArg;
+ 	while( nArgs > 0 )
+   	{
+-		if ( !startInfo.getCommandArg(--nArgs, sArg) )
++		if ( !osl_getCommandArg(--nArgs, &sArg.pData) )
+ 	  	{
+ 	    	if ( sArg.indexOf(OUString::createFromAscii("-userid")) == 0 )
+ 	    	{
+@@ -211,8 +209,7 @@ OUString getPathToSystemRegistry()
+ 	FILE  	 *f=NULL;
+  
+ 	// search in the directory of the executable 	
+-    OStartupInfo info;
+-	if( OStartupInfo::E_None == info.getExecutableFile(uBuffer) )
++	if( osl_Process_E_None == osl_getExecutableFile(&uBuffer.pData) )
+ 	{
+ 		sal_uInt32 	lastIndex = uBuffer.lastIndexOf(PATH_DELEMITTER);
+ 		if (lastIndex > 0)
+diff --git a/connectivity/inc/pch/precompiled_connectivity.hxx b/connectivity/inc/pch/precompiled_connectivity.hxx
+index b79a411..12e3d55 100644
+--- connectivity/inc/pch/precompiled_connectivity.hxx
++++ connectivity/inc/pch/precompiled_connectivity.hxx
+@@ -332,7 +332,6 @@
+ #include "unotools/sharedunocomponent.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ #include "vos/ref.hxx"
+ #include "vos/ref.hxx"		
+ #include "vos/refernce.hxx"
+diff --git a/connectivity/source/drivers/evoab/LConnection.cxx b/connectivity/source/drivers/evoab/LConnection.cxx
+index 63f9cc3..e0d8f3b 100644
+--- connectivity/source/drivers/evoab/LConnection.cxx
++++ connectivity/source/drivers/evoab/LConnection.cxx
+@@ -69,8 +69,8 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _TOOLS_DEBUG_HXX
+ #include <tools/debug.hxx>
+@@ -158,18 +158,30 @@ void OEvoabConnection::construct(const ::rtl::OUString& url,const Sequence< Prop
+ 	::rtl::OUString aArg2 = ::rtl::OUString::createFromAscii(OEvoabDriver::getEVOAB_CLI_ARG_OUTPUT_FILE_PREFIX());
+ 	aArg2 += aWorkingDirPath;
+ 	aArg2 += getDriver()->getEvoFolderListFileName();
+-	OArgumentList aArgs(2,&aArg1,&aArg2);
++
++	const sal_uInt32 nArgsCount = 2;
++	rtl_uString *pArgs[nArgsCount] = { aArg1.pData, aArg2.pData };
+ 
+ 	EVO_TRACE_STRING("OEvoabConnection::construct()::aCLICommand = %s\n", aCLICommand );
+ 	EVO_TRACE_STRING("OEvoabConnection::construct()::aWorkingDirPath = %s\n", aWorkingDirPath );
+ 	EVO_TRACE_STRING("OEvoabConnection::construct()::aArg1 = %s\n", aArg1 );
+ 	EVO_TRACE_STRING("OEvoabConnection::construct()::aArg2 = %s\n", aArg2 );
+-	OProcess aApp( aCLICommand,aWorkingDirPath);
+-    OSL_VERIFY_EQUALS(
+-        aApp.execute( (OProcess::TProcessOption)(OProcess::TOption_Hidden | OProcess::TOption_Wait | OProcess::TOption_SearchPath),aArgs),
+-        OProcess::E_None,
+-        "Error at execute evolution-addressbook-export to get VCards");
+ 
++	oslProcess aProcess;
++	if ( osl_Process_E_None != osl_executeProcess(
++				aCLICommand.pData,
++				pArgs,
++				nArgsCount,
++				osl_Process_HIDDEN | osl_Process_WAIT | osl_Process_SEARCHPATH,
++				NULL,
++				aWorkingDirPath.pData,
++				NULL, 0,
++				&aProcess ) )
++	{
++		OSL_TRACE("Error at execute evolution-addressbook-export to get VCards");
++		::dbtools::throwGenericSQLException(
++				::rtl::OUString::createFromAscii("Error at execute evolution-addressbook-export to get VCards"),NULL);
++	}
+ 
+ 	Sequence<PropertyValue> aDriverParam;
+ 	::std::vector<PropertyValue> aParam;
+diff --git a/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx b/connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+index 2e3430b..5ca44bd 100644
+--- connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
++++ connectivity/source/drivers/evoab/LDatabaseMetaData.cxx
+@@ -90,9 +90,6 @@
+ #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
+ #include "connectivity/CommonTools.hxx"
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _OSL_PROCESS_H_
+ #include <osl/process.h>
+ #endif
+@@ -511,7 +508,8 @@ Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getTables(
+ 			aArg2 += ::rtl::OUString(pOEvoabConnection->getExtension());
+ 			::rtl::OUString aArg3 = ::rtl::OUString::createFromAscii(pOEvoabConnection->getDriver()->getEVOAB_CLI_ARG_OUTPUT_FORMAT());
+ 
+-			OArgumentList aArgs(3,&aArg1,&aArg2,&aArg3);
++			const sal_uInt32 nArgsCount = 3;
++			rtl_uString *pArgs[nArgsCount] = { aArg1.pData, aArg2.pData, aArg3.pData };
+ 
+ 			EVO_TRACE_STRING( "OEvoabDatabaseMetaData::getTables()::aCLICommand = %s\n", aCLICommand );
+ 			EVO_TRACE_STRING( "OEvoabDatabaseMetaData::getTables()::aWorkingDir = %s\n", aWorkingDir );
+@@ -519,11 +517,20 @@ Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getTables(
+ 			EVO_TRACE_STRING( "OEvoabDatabaseMetaData::getTables()::aArg2 = %s\n", aArg2 );
+ 			EVO_TRACE_STRING( "OEvoabDatabaseMetaData::getTables()::aArg3 = %s\n", aArg3 );
+ 
+-			OProcess aApp( aCLICommand,aWorkingDir);
+-            OSL_VERIFY_EQUALS(
+-                aApp.execute( (OProcess::TProcessOption)(OProcess::TOption_Hidden | OProcess::TOption_Wait | OProcess::TOption_SearchPath),aArgs),
+-                OProcess::E_None,
+-                "Error at execute evolution-addressbook-exporter to get VCards" );
++			oslProcess aProcess;
++			if ( osl_Process_E_None != osl_executeProcess(
++						aCLICommand.pData,
++						pArgs,
++						nArgsCount,
++						osl_Process_HIDDEN | osl_Process_WAIT | osl_Process_SEARCHPATH,
++						NULL,
++						aWorkingDir.pData,
++						NULL, 0,
++						&aProcess ) )
++			{
++				OSL_TRACE("Error at execute evolution-addressbook-export to get VCards");
++				throw SQLException();
++			}
+ 
+ 			bMoreData = pFolderList->next();
+ 		}
+diff --git a/connectivity/source/drivers/evoab2/NConnection.cxx b/connectivity/source/drivers/evoab2/NConnection.cxx
+index ec949a0..39f427a 100644
+--- connectivity/source/drivers/evoab2/NConnection.cxx
++++ connectivity/source/drivers/evoab2/NConnection.cxx
+@@ -69,9 +69,6 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _TOOLS_DEBUG_HXX
+ #include <tools/debug.hxx>
+ #endif
+diff --git a/connectivity/source/drivers/jdbc/Object.cxx b/connectivity/source/drivers/jdbc/Object.cxx
+index 1312174..b509d34 100644
+--- connectivity/source/drivers/jdbc/Object.cxx
++++ connectivity/source/drivers/jdbc/Object.cxx
+@@ -51,9 +51,6 @@
+ #ifndef _CONNECTIVITY_JAVA_SQL_SQLEXCEPTION_HXX_
+ #include "java/sql/SQLException.hxx"
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+ #endif
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index 681b6c6..7a07c50 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -196,6 +196,9 @@
+ #ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+ #include <toolkit/unohlp.hxx>
+ #endif
++#ifndef _VOS_MUTEX_HXX_
++#include <vos/mutex.hxx>
++#endif
+ #ifndef _VOS_SECURITY_HXX_
+ #include <vos/security.hxx>
+ #endif
+@@ -454,8 +457,7 @@ void FatalError(OUString const & aMessage)
+ 
+     if (!aProductKey.getLength())
+     {
+-        ::vos::OStartupInfo aInfo;
+-        aInfo.getExecutableFile( aProductKey );
++        osl_getExecutableFile( &aProductKey.pData );
+ 
+         sal_uInt32     lastIndex = aProductKey.lastIndexOf('/');
+         if ( lastIndex > 0 )
+@@ -488,7 +490,7 @@ CommandLineArgs* Desktop::GetCommandLineArgs()
+         ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+         if ( !pArgs )
+ 	{
+-            ::vos::OExtCommandLine aArgs;
++            ::salhelper::ExtCommandLine aArgs;
+             pArgs = new CommandLineArgs( aArgs );
+ 	}
+     }
+@@ -739,9 +741,8 @@ void Desktop::HandleBootstrapPathErrors( ::utl::Bootstrap::Status aBootstrapStat
+         ::rtl::OUString        aUserInstallURL;
+         ::rtl::OUString        aProductKey;
+         ::rtl::OUString        aTemp;
+-        ::vos::OStartupInfo aInfo;
+ 
+-        aInfo.getExecutableFile( aProductKey );
++        osl_getExecutableFile( &aProductKey.pData );
+         sal_uInt32     lastIndex = aProductKey.lastIndexOf('/');
+         if ( lastIndex > 0 )
+             aProductKey = aProductKey.copy( lastIndex+1 );
+@@ -2394,9 +2395,8 @@ void Desktop::OpenClients()
+     else
+     {
+         OUString            aIniName;
+-        ::vos::OStartupInfo aInfo;
+ 
+-        aInfo.getExecutableFile( aIniName );
++        osl_getExecutableFile( &aIniName.pData );
+         sal_uInt32     lastIndex = aIniName.lastIndexOf('/');
+         if ( lastIndex > 0 )
+         {
+diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
+index e8e06b6..a9094f4 100644
+--- desktop/source/app/appinit.cxx
++++ desktop/source/app/appinit.cxx
+@@ -90,9 +90,6 @@
+ #ifndef _OSL_MODULE_H_
+ #include <osl/module.h>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _RTL_URI_HXX_
+ #include <rtl/uri.hxx>
+ #endif
+@@ -139,6 +136,8 @@
+ #include <svtools/internaloptions.hxx>
+ #endif
+ 
++#include <vos/security.hxx>
++
+ 
+ #define	DEFINE_CONST_OUSTRING(CONSTASCII)		OUString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
+ 
+diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
+index 5658050..6df3c51 100644
+--- desktop/source/app/cmdlineargs.cxx
++++ desktop/source/app/cmdlineargs.cxx
+@@ -63,7 +63,7 @@ namespace {
+ 
+ class ExtCommandLineSupplier: public CommandLineArgs::Supplier {
+ public:
+-    explicit ExtCommandLineSupplier(vos::OExtCommandLine & commandLine):
++    explicit ExtCommandLineSupplier(salhelper::ExtCommandLine & commandLine):
+         m_commandLine(commandLine), m_count(commandLine.getCommandArgCount()),
+         m_index(0) {}
+ 
+@@ -82,7 +82,7 @@ public:
+     }
+ 
+ private:
+-    vos::OExtCommandLine & m_commandLine;
++    salhelper::ExtCommandLine & m_commandLine;
+     sal_uInt32 m_count;
+     sal_uInt32 m_index;
+ };
+@@ -124,7 +124,7 @@ CommandLineArgs::CommandLineArgs()
+ }
+ 
+ // intialize class with command line parameters from process environment
+-CommandLineArgs::CommandLineArgs( ::vos::OExtCommandLine& aExtCmdLine )
++CommandLineArgs::CommandLineArgs( ::salhelper::ExtCommandLine& aExtCmdLine )
+ {
+ 	ResetParamValues();
+     ExtCommandLineSupplier s( aExtCmdLine );
+diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
+index 83f1c67..59da386 100644
+--- desktop/source/app/cmdlineargs.hxx
++++ desktop/source/app/cmdlineargs.hxx
+@@ -39,13 +39,12 @@
+ #ifndef _RTL_USTRING_HXX_
+ #include <rtl/ustring.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+ 
++#include <salhelper/extcommandline.hxx>
++
+ 
+ namespace desktop
+ {
+@@ -115,7 +114,7 @@ class CommandLineArgs
+ 		};
+ 
+ 		CommandLineArgs();
+-		CommandLineArgs( ::vos::OExtCommandLine& aExtCmdLine );
++		CommandLineArgs( ::salhelper::ExtCommandLine& aExtCmdLine );
+ 		CommandLineArgs( Supplier& supplier );
+ 
+ 		// generic methods to access parameter
+diff --git a/desktop/source/app/intro.cxx b/desktop/source/app/intro.cxx
+index 428cb27..368fe3c 100644
+--- desktop/source/app/intro.cxx
++++ desktop/source/app/intro.cxx
+@@ -41,7 +41,6 @@
+ 
+ #include <tools/stream.hxx>
+ #include <tools/urlobj.hxx>
+-#include <vos/process.hxx>
+ #include <rtl/logfile.hxx>
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
+index f1dce4d..01f7cff 100644
+--- desktop/source/app/officeipcthread.cxx
++++ desktop/source/app/officeipcthread.cxx
+@@ -42,8 +42,8 @@
+ #include <memory>
+ #include <stdio.h>
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _UTL_BOOTSTRAP_HXX
+ #include <unotools/bootstrap.hxx>
+@@ -310,7 +310,6 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
+ 	::rtl::OUString aUserInstallPath;
+     ::rtl::OUString aDummy;
+ 
+-	::vos::OStartupInfo aInfo;
+ 	OfficeIPCThread* pThread = new OfficeIPCThread;
+ 
+ 	pThread->maPipeIdent = OUString( RTL_CONSTASCII_USTRINGPARAM( "SingleOfficeIPC_" ) );
+@@ -334,7 +333,7 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
+ 
+     OUString            aIniName;
+     
+-    aInfo.getExecutableFile( aIniName );
++    osl_getExecutableFile( &aIniName.pData );
+     sal_uInt32     lastIndex = aIniName.lastIndexOf('/');
+     if ( lastIndex > 0 )
+     {
+@@ -416,7 +415,7 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
+ 
+ 		sal_Bool bWaitBeforeClose = sal_False;
+ 		ByteString aArguments(RTL_CONSTASCII_STRINGPARAM(ARGUMENT_PREFIX));
+-        ULONG nCount = aInfo.getCommandArgCount();
++        ULONG nCount = osl_getCommandArgCount();
+ 
+         sal_Bool    bPrintTo = sal_False;
+         OUString    aPrintToCmd( RTL_CONSTASCII_USTRINGPARAM( "-pt" ));
+@@ -438,7 +437,7 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
+ 
+             for( ULONG i=0; i < nCount; i++ )
+ 			{
+-				aInfo.getCommandArg( i, aDummy );
++				osl_getCommandArg( i, &aDummy.pData );
+ 				// Make absolute pathes from relative ones!
+ 				// It's neccessary to use current working directory of THESE office instance and not of
+ 				// currently running once, which get these information by using pipe.
+diff --git a/desktop/source/app/userinstall.cxx b/desktop/source/app/userinstall.cxx
+index 5de05f7..1d0a9f8 100644
+--- desktop/source/app/userinstall.cxx
++++ desktop/source/app/userinstall.cxx
+@@ -68,9 +68,6 @@
+ #ifndef _VOS_REF_HXX_
+ #include <vos/ref.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ 
+ #ifndef _TOOLS_RESMGR_HXX_
+ #include <tools/resmgr.hxx>
+diff --git a/desktop/source/offacc/acceptor.cxx b/desktop/source/offacc/acceptor.cxx
+index 552173f..3d5a927 100644
+--- desktop/source/offacc/acceptor.cxx
++++ desktop/source/offacc/acceptor.cxx
+@@ -41,9 +41,6 @@
+ #ifndef _UTL_BOOTSTRAP_HXX
+ #include <unotools/bootstrap.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _URLOBJ_HXX
+ #include <tools/urlobj.hxx>
+ #endif
+diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx
+index 4bd6d70..538e5b6 100644
+--- desktop/source/splash/splash.cxx
++++ desktop/source/splash/splash.cxx
+@@ -42,8 +42,8 @@
+ #ifndef _UTL_BOOTSTRAP_HXX
+ #include <unotools/bootstrap.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _URLOBJ_HXX
+ #include <tools/urlobj.hxx>
+@@ -58,6 +58,8 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
++#include <vos/mutex.hxx>
++
+ #include <com/sun/star/registry/XRegistryKey.hpp>
+ #include <rtl/logfile.hxx>
+ #include <rtl/ustrbuf.hxx>
+@@ -294,7 +296,7 @@ OUString implReadBootstrapKey( const ::rtl::Bootstrap& _rIniFile, const OUString
+ void SplashScreen::loadConfig()
+ {
+     // detect execute path
+-    ::vos::OStartupInfo().getExecutableFile( _sExecutePath );
++    osl_getExecutableFile( &_sExecutePath.pData );
+     sal_uInt32 nLastIndex = _sExecutePath.lastIndexOf( '/' );
+     if ( nLastIndex > 0 )
+         _sExecutePath = _sExecutePath.copy( 0, nLastIndex + 1 );
+diff --git a/desktop/unx/splash/unxsplash.cxx b/desktop/unx/splash/unxsplash.cxx
+index ca20334..fb43de4 100644
+--- desktop/unx/splash/unxsplash.cxx
++++ desktop/unx/splash/unxsplash.cxx
+@@ -38,8 +38,8 @@
+ #ifndef _UTL_BOOTSTRAP_HXX
+ #include <unotools/bootstrap.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _URLOBJ_HXX
+ #include <tools/urlobj.hxx>
+@@ -126,11 +126,10 @@ void SAL_CALL
+ UnxSplashScreen::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& aArguments )
+     throw ( RuntimeException )
+ {
+-    ::vos::OStartupInfo aInfo;
+-    for ( sal_uInt32 i = 0; i < aInfo.getCommandArgCount(); i++ )
++    for ( sal_uInt32 i = 0; i < osl_getCommandArgCount(); i++ )
+     {
+         rtl::OUString aArg;
+-        if ( aInfo.getCommandArg( i, aArg ) )
++        if ( osl_getCommandArg( i, &aArg.pData ) )
+             break;
+         if ( aArg.matchIgnoreAsciiCaseAsciiL( PIPE_ARG, sizeof( PIPE_ARG ) - 1, 0 ) )
+         {
+diff --git a/framework/inc/commands.h b/framework/inc/commands.h
+index fd916e2..338da78 100644
+--- framework/inc/commands.h
++++ framework/inc/commands.h
+@@ -44,8 +44,8 @@
+ #include <macros/generic.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _RTL_USTRING_HXX_
+@@ -77,12 +77,11 @@ sal_Bool c_existCommand( const ::rtl::OUString& sSearchCommand )
+ {
+ 	// Set default return value if search failed or unknown commands are searched.
+ 	sal_Bool			bState			= sal_False							;
+-	::vos::OStartupInfo	aCommandLine										;
+-	sal_uInt32			nCount			= aCommandLine.getCommandArgCount()	;
++	sal_uInt32			nCount			= osl_getCommandArgCount()	;
+ 	::rtl::OUString		sCommand											;
+ 	for( sal_uInt32 nCommand=0; nCommand<nCount; ++nCommand )
+ 	{
+-		if( aCommandLine.getCommandArg( nCommand, sCommand ) == ::vos::OStartupInfo::E_None )
++		if( osl_getCommandArg( nCommand, &sCommand.pData ) == osl_Process_E_None )
+ 		{
+ 			if( sCommand == sSearchCommand )
+ 			{
+diff --git a/framework/inc/pch/precompiled_framework.hxx b/framework/inc/pch/precompiled_framework.hxx
+index 866c978..d612d92 100644
+--- framework/inc/pch/precompiled_framework.hxx
++++ framework/inc/pch/precompiled_framework.hxx
+@@ -494,7 +494,6 @@
+ #include "vcl/wintypes.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ #include "vos/ref.hxx"
+ #include "vos/thread.hxx"
+ #include "vos/timer.hxx"
+diff --git a/framework/source/application/framework.cxx b/framework/source/application/framework.cxx
+index 97a7508..a945d7d 100644
+--- framework/source/application/framework.cxx
++++ framework/source/application/framework.cxx
+@@ -144,8 +144,8 @@
+ #include <vcl/wrkwin.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ //_________________________________________________________________________________________________________________
+@@ -245,13 +245,12 @@ void FrameWork::impl_analyzeCommandArguments()
+ 	m_bUsePlugIn = sal_False;	// depends from "/plugin"
+ 
+ 	// Then step over all given arguments and search for supported one.
+-	OStartupInfo	aInfo		;
+ 	OUString		sArgument	;
+-	sal_uInt32		nCount		= aInfo.getCommandArgCount();
++	sal_uInt32		nCount		= osl_getCommandArgCount();
+ 	for ( sal_uInt32 nArgument=0; nArgument<nCount; ++nArgument )
+ 	{
+ 		// If extraction of current argument successfull ...
+-		if ( aInfo.getCommandArg( nArgument, sArgument ) == osl_Process_E_None )
++		if ( osl_getCommandArg( nArgument, &sArgument.pData ) == osl_Process_E_None )
+ 		{
+ 			// ... search for matching with supported values.
+ 			if ( sArgument == COMMANDARGUMENT_PLUGIN )
+diff --git a/framework/source/application/login.cxx b/framework/source/application/login.cxx
+index dff7b1b..7669515 100644
+--- framework/source/application/login.cxx
++++ framework/source/application/login.cxx
+@@ -88,8 +88,8 @@
+ #include <com/sun/star/uno/Reference.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+@@ -307,12 +307,10 @@ void LoginApplication::Main()
+ //*****************************************************************************************************************
+ void LoginApplication::impl_parseCommandline()
+ {
+-	// Use vos::OStartupInfo for access to command line.
+ 	// Step over all arguments, search for supported ones and try to get his values.
+ 	// Set it on our member. Caller of this method must control setted values.
+-	OStartupInfo aInfo;
+ 
+-	sal_uInt32	nCount		=	aInfo.getCommandArgCount()	;
++	sal_uInt32	nCount		=	osl_getCommandArgCount()	;
+ 	sal_uInt32	nArgument	=	0							;
+ 	OUString	sArgument									;
+     OUString    sValue                                      ;
+@@ -329,7 +327,7 @@ void LoginApplication::impl_parseCommandline()
+ 	{
+ 		// .. but work with valid ones only!
+ 		// Don't check values here. Caller of this method must decide between wrong and allowed values!
+-		aInfo.getCommandArg( nArgument, sArgument );
++		osl_getCommandArg( nArgument, &sArgument.pData );
+ 
+ 		//_____________________________________________________________________________________________________
+         // Look for "-f=<temp. file name>"
+diff --git a/framework/source/services/substitutepathvars.cxx b/framework/source/services/substitutepathvars.cxx
+index b38b79b..d3fe64e 100644
+--- framework/source/services/substitutepathvars.cxx
++++ framework/source/services/substitutepathvars.cxx
+@@ -100,8 +100,8 @@
+ #include <osl/socket.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef INCLUDED_I18NPOOL_MSLANGID_HXX
+@@ -1245,8 +1245,7 @@ void SubstitutePathVariables::SetPredefinedPathVariables( PredefinedPathVariable
+ 	// Detect the program directory
+ 	// Set $(prog), $(progpath), $(progurl)
+     rtl::OUString aProgName;
+-    ::vos::OStartupInfo aInfo;
+-    aInfo.getExecutableFile( aProgName );
++    osl_getExecutableFile( &aProgName.pData );
+     sal_Int32 lastIndex = aProgName.lastIndexOf('/');
+     if ( lastIndex >= 0 )
+     {
+diff --git a/framework/source/threadhelp/lockhelper.cxx b/framework/source/threadhelp/lockhelper.cxx
+index abad431..5896951 100644
+--- framework/source/threadhelp/lockhelper.cxx
++++ framework/source/threadhelp/lockhelper.cxx
+@@ -62,8 +62,8 @@
+ //	other includes
+ //_________________________________________________________________________________________________________________
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_HXX_
++#include <osl/process.h>
+ #endif
+ 
+ //_________________________________________________________________________________________________________________
+@@ -551,9 +551,9 @@ ELockType& LockHelper::implts_getLockType()
+         {
+             static ELockType eType = FALLBACK_LOCKTYPE;
+ 
+-            ::vos::OStartupInfo aEnvironment;
++            ::rtl::OUString     aEnvVar( ENVVAR_LOCKTYPE );
+             ::rtl::OUString     sValue      ;
+-            if( aEnvironment.getEnvironment( ENVVAR_LOCKTYPE, sValue ) == ::vos::OStartupInfo::E_None )
++            if( osl_getEnvironment( aEnvVar.pData, &sValue.pData ) == osl_Process_E_None )
+             {
+                 eType = (ELockType)(sValue.toInt32());
+             }
+diff --git a/framework/test/threadtest.cxx b/framework/test/threadtest.cxx
+index 64f3b95..434eecb 100644
+--- framework/test/threadtest.cxx
++++ framework/test/threadtest.cxx
+@@ -84,8 +84,8 @@
+ #include <rtl/random.h>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _VOS_THREAD_HXX_
+@@ -742,16 +742,15 @@ void TestApplication::Main()
+ 	// Parse command line.
+ 	// Attention: All parameter are required and must exist!
+ 	// syntax: "threadtest.exe <testcount> <threadcount> <loops> <owner>"
+-	OStartupInfo	aInfo		;
+ 	OUString		sArgument	;
+ 	sal_Int32		nArgument	;
+-	sal_Int32		nCount		= aInfo.getCommandArgCount();
++	sal_Int32		nCount		= osl_getCommandArgCount();
+ 
+ 	LOG_ASSERT2( nCount!=4 ,"TestApplication::Main()" , "Wrong argument line detected!")
+ 
+ 	for( nArgument=0; nArgument<nCount; ++nArgument )
+ 	{
+-		aInfo.getCommandArg( nArgument, sArgument );
++		osl_getCommandArg( nArgument, &sArgument.pData );
+ 		if( nArgument== 0 )	nTestCount	=sArgument.toInt32();
+ 		if( nArgument== 1 )	nThreadCount=sArgument.toInt32();
+ 		if( nArgument== 2 )	nLoops		=sArgument.toInt32();
+diff --git a/framework/test/threadtest/threadtest.cxx b/framework/test/threadtest/threadtest.cxx
+index 2ec3072..b463d1d 100644
+--- framework/test/threadtest/threadtest.cxx
++++ framework/test/threadtest/threadtest.cxx
+@@ -84,8 +84,8 @@
+ #include <rtl/random.h>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _VOS_THREAD_HXX_
+@@ -741,16 +741,15 @@ void TestApplication::Main()
+ 	// Parse command line.
+ 	// Attention: All parameter are required and must exist!
+ 	// syntax: "threadtest.exe <testcount> <threadcount> <loops> <owner>"
+-	OStartupInfo	aInfo		;
+ 	OUString		sArgument	;
+ 	sal_Int32		nArgument	;
+-	sal_Int32		nCount		= aInfo.getCommandArgCount();
++	sal_Int32		nCount		= osl_getCommandArgCount();
+ 
+ 	LOG_ASSERT2( nCount!=4 ,"TestApplication::Main()" , "Wrong argument line detected!")
+ 
+ 	for( nArgument=0; nArgument<nCount; ++nArgument )
+ 	{
+-		aInfo.getCommandArg( nArgument, sArgument );
++		osl_getCommandArg( nArgument, &sArgument.pData );
+ 		if( nArgument== 0 )	nTestCount	=sArgument.toInt32();
+ 		if( nArgument== 1 )	nThreadCount=sArgument.toInt32();
+ 		if( nArgument== 2 )	nLoops		=sArgument.toInt32();
+diff --git a/framework/test/typecfg/cfgview.cxx b/framework/test/typecfg/cfgview.cxx
+index e435ab4..127cd12 100644
+--- framework/test/typecfg/cfgview.cxx
++++ framework/test/typecfg/cfgview.cxx
+@@ -92,8 +92,8 @@
+ #include <comphelper/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+@@ -300,15 +300,14 @@ void CFGView::impl_printSyntax()
+ *//*-*************************************************************************************************************/
+ void CFGView::impl_parseCommandLine( AppMember& rMember )
+ {
+-    ::vos::OStartupInfo aInfo                                   ;
+     ::rtl::OUString     sArgument                               ;
+     sal_Int32           nArgument   = 0                         ;
+-    sal_Int32           nCount      = aInfo.getCommandArgCount();
++    sal_Int32           nCount      = osl_getCommandArgCount()  ;
+     sal_Int32           nMinCount   = 0                         ;
+ 
+ 	while( nArgument<nCount )
+ 	{
+-		aInfo.getCommandArg( nArgument, sArgument );
++		osl_getCommandArg( nArgument, &sArgument.pData );
+ 
+ 		//_____________________________________________________________________________________________________
+         // look for "-dir="
+diff --git a/framework/test/typecfg/typecfg.cxx b/framework/test/typecfg/typecfg.cxx
+index a7dae47..e25bb7a 100644
+--- framework/test/typecfg/typecfg.cxx
++++ framework/test/typecfg/typecfg.cxx
+@@ -84,8 +84,8 @@
+ #include <comphelper/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+@@ -201,14 +201,13 @@ void TypeApplication::Main()
+ //*****************************************************************************************************************
+ void TypeApplication::impl_parseCommandLine()
+ {
+-	OStartupInfo	aInfo		;
+ 	OUString		sArgument	;
+ 	sal_Int32		nArgument	= 0							;
+-	sal_Int32		nCount		= aInfo.getCommandArgCount();
++	sal_Int32		nCount		= osl_getCommandArgCount()  ;
+ 
+ 	while( nArgument<nCount )
+ 	{
+-		aInfo.getCommandArg( nArgument, sArgument );
++		osl_getCommandArg( nArgument, &sArgument.pData );
+ 
+ 		if( sArgument == ARGUMENT_GENERATE_CFGVIEW )
+ 		{
+diff --git a/framework/test/typecfg/xml2xcd.cxx b/framework/test/typecfg/xml2xcd.cxx
+index e13ab4d..bd4940e 100644
+--- framework/test/typecfg/xml2xcd.cxx
++++ framework/test/typecfg/xml2xcd.cxx
+@@ -89,8 +89,8 @@
+ #include <unotools/processfactory.hxx>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+@@ -378,15 +378,14 @@ void XCDGenerator::impl_printSyntax()
+ *//*-*************************************************************************************************************/
+ void XCDGenerator::impl_parseCommandLine( AppMember& rMember )
+ {
+-    ::vos::OStartupInfo aInfo                                   ;
+     ::rtl::OUString     sArgument                               ;
+     sal_Int32           nArgument   = 0                         ;
+-    sal_Int32           nCount      = aInfo.getCommandArgCount();
++    sal_Int32           nCount      = osl_getCommandArgCount()  ;
+     sal_Int32           nMinCount   = 0                         ;
+ 
+ 	while( nArgument<nCount )
+ 	{
+-		aInfo.getCommandArg( nArgument, sArgument );
++		osl_getCommandArg( nArgument, sArgument );
+ /*OBSOLETE
+ 		//_____________________________________________________________________________________________________
+         // look for "-fis=..."
+diff --git a/salhelper/inc/salhelper/extcommandline.hxx b/salhelper/inc/salhelper/extcommandline.hxx
+new file mode 100644
+index 0000000..76bbc66
+--- /dev/null
++++ salhelper/inc/salhelper/extcommandline.hxx
+@@ -0,0 +1,82 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef _SALHELPER_EXTCOMMANDLINE_HXX_
++#define _SALHELPER_EXTCOMMANDLINE_HXX_
++
++#include <vector>
++
++#include <rtl/ustring.hxx>
++
++namespace salhelper {
++
++/* ExtCommandLine
++ *
++ * Expands command line parameters that start with '@' so that it loads the
++ * content from files.
++ */
++class ExtCommandLine
++{
++public:
++
++    /** Constructor.
++    */
++    ExtCommandLine();
++
++    /** Destructor
++    */
++    ~ExtCommandLine();
++
++    /** @return the number of extended command line arguments.
++     */
++    sal_uInt32 SAL_CALL getCommandArgCount() const;
++
++    /** get the nArg-th extended command argument
++        @param nArg [in] the number of extended argument to return.
++        @param strCommandArg [out] the string that receives the argument.
++        @return sal_True   if the nArg-th argument has been retriveded successfully
++        @return sal_False  on all other cases
++    */
++    sal_Bool SAL_CALL getCommandArg( sal_uInt32 nArg, ::rtl::OUString& aCommandArg ) const;
++
++private:
++    void init();
++    
++    static ::std::vector< ::rtl::OUString > *s_pExtArgVector;
++};
++
++} // namespace salhelper
++
++#endif // _SALHELPER_EXTCOMMANDLINE_HXX_
+diff --git a/salhelper/prj/d.lst b/salhelper/prj/d.lst
+index 718a980..14f233d 100644
+--- salhelper/prj/d.lst
++++ salhelper/prj/d.lst
+@@ -2,6 +2,7 @@ mkdir: %_DEST%\inc%_EXT%\salhelper
+ 
+ ..\inc\salhelper\condition.hxx %_DEST%\inc%_EXT%\salhelper\condition.hxx
+ ..\inc\salhelper\dynload.hxx %_DEST%\inc%_EXT%\salhelper\dynload.hxx
++..\inc\salhelper\extcommandline.hxx %_DEST%\inc%_EXT%\salhelper\extcommandline.hxx
+ ..\inc\salhelper\future.hxx %_DEST%\inc%_EXT%\salhelper\future.hxx
+ ..\inc\salhelper\futurequeue.hxx %_DEST%\inc%_EXT%\salhelper\futurequeue.hxx
+ ..\inc\salhelper\monitor.hxx %_DEST%\inc%_EXT%\salhelper\monitor.hxx
+diff --git a/salhelper/source/extcommandline.cxx b/salhelper/source/extcommandline.cxx
+new file mode 100644
+index 0000000..da6dab9
+--- /dev/null
++++ salhelper/source/extcommandline.cxx
+@@ -0,0 +1,125 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include <salhelper/extcommandline.hxx>
++
++#include <osl/file.hxx>
++#include <osl/mutex.hxx>
++#include <osl/process.h>
++
++using namespace salhelper;
++
++::std::vector< ::rtl::OUString > *ExtCommandLine::s_pExtArgVector = NULL;
++
++ExtCommandLine::ExtCommandLine() 
++{
++    if ( !s_pExtArgVector )
++        init();
++}
++
++ExtCommandLine::~ExtCommandLine()
++{
++}
++
++sal_uInt32 SAL_CALL ExtCommandLine::getCommandArgCount() const
++{
++    if ( !s_pExtArgVector )
++        return 0;
++
++    return s_pExtArgVector->size();
++}
++
++
++sal_Bool SAL_CALL ExtCommandLine::getCommandArg( sal_uInt32 nArg, ::rtl::OUString& strCommandArg ) const
++{
++    if ( !s_pExtArgVector || nArg >= s_pExtArgVector->size() )
++    {
++        return sal_False;
++    }
++
++    strCommandArg = (*s_pExtArgVector)[nArg];
++
++    return sal_True;
++}
++
++void ExtCommandLine::init()
++{
++    static ::osl::Mutex sMutex;
++    ::osl::MutexGuard aMutexGuard( sMutex );
++    
++    if ( !s_pExtArgVector )
++        s_pExtArgVector = new ::std::vector< ::rtl::OUString >();
++
++    sal_uInt32 nIndex=0;
++    sal_uInt32 nArgs = osl_getCommandArgCount();
++
++    for ( nIndex = 0 ; nIndex < nArgs ; ++nIndex )
++    {
++        ::rtl::OUString aString;
++        osl_getCommandArg( nIndex, &aString.pData );
++        
++        if ( aString[0] == (sal_Unicode) '@' )
++        {
++            ::rtl::OUString aFileName = aString.copy( 1 );
++            ::osl::File aFile( aFileName );
++            ::rtl::ByteSequence aSeq;
++
++            ::osl::FileBase::RC aErr = aFile.open( OpenFlag_Read );
++
++            if ( aErr != ::osl::FileBase::E_None )
++            {
++                break;
++            }
++
++            do
++            {
++                aErr = aFile.readLine( aSeq );
++                if ( aSeq.getLength() != 0 )
++                {
++                    ::rtl::OUString newString( (sal_Char*)aSeq.getArray(), aSeq.getLength(), RTL_TEXTENCODING_ASCII_US );
++                    s_pExtArgVector->push_back( newString );
++                }
++            }
++            while ( aErr == ::osl::FileBase::E_None && aSeq.getLength() > 0 );
++
++			aFile.close();
++			aFile.remove( aFileName );
++        }
++        else
++        {
++            s_pExtArgVector->push_back( aString );
++        }
++    }
++}
+diff --git a/salhelper/source/gcc3.map b/salhelper/source/gcc3.map
+index 4ea4f6f..3968981 100644
+--- salhelper/source/gcc3.map
++++ salhelper/source/gcc3.map
+@@ -70,4 +70,11 @@ UDK_3.1 {
+         _ZN9salhelper15ConditionWaiter8timedoutD2Ev;
+         # _ZTIN9salhelper15ConditionWaiter8timedoutE;
+         # _ZTSN9salhelper15ConditionWaiter8timedoutE;
++
++	_ZN9salhelper14ExtCommandLineC1Ev;
++	_ZN9salhelper14ExtCommandLineC2Ev;
++	_ZN9salhelper14ExtCommandLineD1Ev;
++	_ZN9salhelper14ExtCommandLineD2Ev;
++	_ZNK9salhelper14ExtCommandLine13getCommandArgEjRN3rtl8OUStringE;
++	_ZNK9salhelper14ExtCommandLine18getCommandArgCountEv;
+ } UDK_3_0_0;
+diff --git a/salhelper/source/makefile.mk b/salhelper/source/makefile.mk
+index 379df6c..0cbb6b7 100644
+--- salhelper/source/makefile.mk
++++ salhelper/source/makefile.mk
+@@ -54,6 +54,7 @@ UNIXVERSIONNAMES=UDK
+ SLOFILES=	\
+ 	$(SLO)$/condition.obj \
+ 	$(SLO)$/dynload.obj \
++	$(SLO)$/extcommandline.obj \
+ 	$(SLO)$/simplereferenceobject.obj
+ 
+ # SCO: the linker does know about weak symbols, but we can't ignore multiple defined symbols
+diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx
+index 6bd60d7..39199ec 100644
+--- sd/inc/pch/precompiled_sd.hxx
++++ sd/inc/pch/precompiled_sd.hxx
+@@ -921,7 +921,6 @@
+ #include "vos/diagnose.hxx"
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ #include "vos/thread.hxx"
+ #include "vos/xception.hxx"
+ //---MARKER---
+diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx
+index 85b4a2c..d2347a4 100644
+--- sd/source/ui/func/fusel.cxx
++++ sd/source/ui/func/fusel.cxx
+@@ -39,9 +39,6 @@
+ 
+ #include "fusel.hxx"
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _SB_SBSTAR_HXX //autogen
+ #include <basic/sbstar.hxx>
+ #endif
+diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx
+index 44af1a9..b7fd834 100644
+--- sd/source/ui/slideshow/slideshowimpl.cxx
++++ sd/source/ui/slideshow/slideshowimpl.cxx
+@@ -50,9 +50,6 @@
+ #include <com/sun/star/util/XURLTransformer.hpp>
+ #include <com/sun/star/frame/XDispatch.hpp>
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ 
+ #ifndef _AEITEM_HXX
+ #include <svtools/aeitem.hxx>
+@@ -117,6 +114,8 @@
+ #include "canvas/elapsedtime.hxx"
+ #include "canvas/prioritybooster.hxx"
+ 
++#include <vos/mutex.hxx>
++
+ // TODO(Q3): This breaks encapsulation. Either export
+ // these strings from avmedia, or provide an XManager
+ // factory there
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 0341725..1a8eb44 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -673,7 +673,6 @@
+ #include "vos/diagnose.hxx"
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ #include "vos/security.hxx"
+ #include "vos/socket.hxx"
+ #include "vos/thread.hxx"
+diff --git a/sfx2/source/appl/app.cxx b/sfx2/source/appl/app.cxx
+index f45e539..9137647 100644
+--- sfx2/source/appl/app.cxx
++++ sfx2/source/appl/app.cxx
+@@ -46,9 +46,6 @@
+ #include <sfx2/app.hxx>
+ #include <sfx2/frame.hxx>
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _TOOLS_SIMPLERESMGR_HXX_
+ #include <tools/simplerm.hxx>
+ #endif
+diff --git a/sfx2/source/appl/appmain.cxx b/sfx2/source/appl/appmain.cxx
+index 4609e7c..b9a989c 100644
+--- sfx2/source/appl/appmain.cxx
++++ sfx2/source/appl/appmain.cxx
+@@ -62,7 +62,6 @@
+ #include <svtools/itempool.hxx>
+ #include <svtools/urihelper.hxx>
+ #include <svtools/helpopt.hxx>
+-#include <vos/process.hxx>
+ #include <framework/sfxhelperfunctions.hxx>
+ #include <rtl/ustring.hxx>
+ #include <com/sun/star/uno/Exception.hpp>
+diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
+index 8d01b78..a620071 100644
+--- sfx2/source/appl/appmisc.cxx
++++ sfx2/source/appl/appmisc.cxx
+@@ -42,9 +42,6 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX //autogen
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _XCEPTION_HXX_
+ #include <vos/xception.hxx>
+ #endif
+diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
+index 558fe5e..b5a7d56 100644
+--- sfx2/source/appl/appserv.cxx
++++ sfx2/source/appl/appserv.cxx
+@@ -171,7 +171,6 @@
+ #endif // INCLUDED_SVTOOLS_MISCOPT_HXX
+ #include <tools/shl.hxx>
+ #include <unotools/bootstrap.hxx>
+-#include <vos/process.hxx>
+ #include <rtl/bootstrap.hxx>
+ 
+ #include <com/sun/star/script/provider/XScriptProviderFactory.hpp>
+diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
+index 1bb8ecb..aa5f62f 100644
+--- sfx2/source/bastyp/fltfnc.cxx
++++ sfx2/source/bastyp/fltfnc.cxx
+@@ -196,7 +196,6 @@
+ #include <com/sun/star/uno/Reference.hxx>
+ #include <com/sun/star/ucb/XContent.hpp>
+ #include <rtl/ustring.hxx>
+-#include <vos/process.hxx>
+ #include <svtools/pathoptions.hxx>
+ #include <svtools/moduleoptions.hxx>
+ #include <comphelper/mediadescriptor.hxx>
+@@ -208,7 +207,6 @@ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::ucb;
+ using namespace ::com::sun::star::document;
+ using namespace ::com::sun::star::beans;
+-using namespace ::vos;
+ 
+ #ifndef _SVTOOLS_CTYPEITM_HXX
+ #include <svtools/ctypeitm.hxx>
+diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
+index 02f671f..785be00 100644
+--- svtools/inc/pch/precompiled_svtools.hxx
++++ svtools/inc/pch/precompiled_svtools.hxx
+@@ -431,7 +431,6 @@
+ #include <vcl/unohelp.hxx>
+ 
+ #include <vos/mutex.hxx>
+-#include <vos/process.hxx>
+ #include <vos/ref.hxx>
+ #include <vos/refernce.hxx>
+ #include <vos/security.hxx>
+diff --git a/svtools/source/config/defaultoptions.cxx b/svtools/source/config/defaultoptions.cxx
+index 763c779..eea5a7c 100644
+--- svtools/source/config/defaultoptions.cxx
++++ svtools/source/config/defaultoptions.cxx
+@@ -64,7 +64,6 @@
+ #include <osl/mutex.hxx>
+ #endif
+ 
+-#include <vos/process.hxx>
+ #include <unotools/localfilehelper.hxx>
+ #ifndef INCLUDED_RTL_INSTANCE_HXX
+ #include <rtl/instance.hxx>
+diff --git a/svtools/source/config/pathoptions.cxx b/svtools/source/config/pathoptions.cxx
+index e7d5e0d..4c3c7dc 100644
+--- svtools/source/config/pathoptions.cxx
++++ svtools/source/config/pathoptions.cxx
+@@ -75,7 +75,6 @@
+ #endif
+ 
+ #include <unotools/ucbhelper.hxx>
+-#include <vos/process.hxx>
+ #include <comphelper/processfactory.hxx>
+ 
+ #ifndef _COM_SUN_STAR_BEANS_XFASTPROPERTYSET_HPP_
+diff --git a/svtools/source/misc1/svtdata.cxx b/svtools/source/misc1/svtdata.cxx
+index f19d792..1a18d77 100644
+--- svtools/source/misc1/svtdata.cxx
++++ svtools/source/misc1/svtdata.cxx
+@@ -44,9 +44,6 @@
+ #ifndef _SHL_HXX
+ #include <tools/shl.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ 
+ #ifndef _SVTOOLS_SVTDATA_HXX
+ #include <svtools/svtdata.hxx>
+diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx
+index d2876d9..7b5beee 100644
+--- tools/inc/pch/precompiled_tools.hxx
++++ tools/inc/pch/precompiled_tools.hxx
+@@ -93,7 +93,6 @@
+ 
+ #include "vos/macros.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ #include "vos/signal.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+diff --git a/tools/source/testtoolloader/testtoolloader.cxx b/tools/source/testtoolloader/testtoolloader.cxx
+index a1a1b51..f9ebd9a 100644
+--- tools/source/testtoolloader/testtoolloader.cxx
++++ tools/source/testtoolloader/testtoolloader.cxx
+@@ -47,8 +47,8 @@
+ #ifndef _RTL_LOGFILE_HXX_
+ #include <rtl/logfile.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _SOLAR_H
+ #include "tools/solar.h"
+@@ -72,16 +72,14 @@ static oslModule	aTestToolModule	= 0;
+ 
+ sal_uInt32 GetCommandLineParamCount()
+ {
+-	NAMESPACE_VOS( OStartupInfo ) aStartInfo;
+-	return aStartInfo.getCommandArgCount();
++	return osl_getCommandArgCount();
+ }
+ 
+ String GetCommandLineParam( sal_uInt32 nParam )
+ {
+-	NAMESPACE_VOS( OStartupInfo ) aStartInfo;
+ 	::rtl::OUString aParam;
+-	NAMESPACE_VOS( OStartupInfo )::TStartupError eError = aStartInfo.getCommandArg( nParam, aParam );
+-	if ( eError == NAMESPACE_VOS( OStartupInfo )::E_None )
++	oslProcessError eError = osl_getCommandArg( nParam, &aParam.pData );
++	if ( eError == osl_Process_E_None )
+ 		return String( aParam );
+ 	else
+ 	{
+@@ -116,7 +114,7 @@ void InitTestToolLib()
+ 	OUString	aFuncName( RTL_CONSTASCII_USTRINGPARAM( "CreateRemoteControl" ));
+ 	OUString	aModulePath;
+ 
+-	::vos::OStartupInfo().getExecutableFile( aModulePath );
++	osl_getExecutableFile( &aModulePath.pData );
+ 	sal_uInt32 	lastIndex = aModulePath.lastIndexOf('/');
+ 	if ( lastIndex > 0 )
+ 		aModulePath = aModulePath.copy( 0, lastIndex+1 );
+diff --git a/ucb/inc/pch/precompiled_ucb.hxx b/ucb/inc/pch/precompiled_ucb.hxx
+index 931acaf..846d0dc 100644
+--- ucb/inc/pch/precompiled_ucb.hxx
++++ ucb/inc/pch/precompiled_ucb.hxx
+@@ -184,7 +184,6 @@
+ 
+ #include "vos/diagnose.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/process.hxx"
+ #include "vos/ref.hxx"
+ #include "vos/refernce.hxx"
+ //---MARKER---
+diff --git a/ucb/workben/ucb/ucbdemo.cxx b/ucb/workben/ucb/ucbdemo.cxx
+index 9749a42..40ef4ee 100644
+--- ucb/workben/ucb/ucbdemo.cxx
++++ ucb/workben/ucb/ucbdemo.cxx
+@@ -45,9 +45,6 @@
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ 
+ #ifndef _CPPUHELPER_WEAK_HXX_
+ #include <cppuhelper/weak.hxx>
+diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
+index 8aefaf8..d5c8d34 100644
+--- vcl/source/app/svapp.cxx
++++ vcl/source/app/svapp.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _SV_SALSYS_HXX
+ #include <vcl/salsys.hxx>
+ #endif
+-#ifndef _VOS_PROCESS_HXX
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ #ifndef _VOS_MUTEX_HXX
+ #include <vos/mutex.hxx>
+@@ -395,17 +395,15 @@ void Application::DeInit()
+ 
+ USHORT Application::GetCommandLineParamCount()
+ {
+-    vos::OStartupInfo aStartInfo;
+-    return (USHORT)aStartInfo.getCommandArgCount();
++    return (USHORT)osl_getCommandArgCount();
+ }
+ 
+ // -----------------------------------------------------------------------
+ 
+ XubString Application::GetCommandLineParam( USHORT nParam )
+ {
+-    vos::OStartupInfo   aStartInfo;
+     rtl::OUString       aParam;
+-    aStartInfo.getCommandArg( nParam, aParam );
++    osl_getCommandArg( nParam, &aParam.pData );
+     return XubString( aParam );
+ }
+ 
+@@ -425,10 +423,9 @@ const XubString& Application::GetAppFileName()
+     static String aAppFileName;
+     if( !aAppFileName.Len() )
+     {
+-        vos::OStartupInfo   aStartInfo;
+         ::rtl::OUString		aExeFileName;
+ 
+-        aStartInfo.getExecutableFile( aExeFileName );
++        osl_getExecutableFile( &aExeFileName.pData );
+ 
+         // convert path to native file format
+         rtl::OUString aNativeFileName;
+diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
+index cb49c99..eafed42 100644
+--- vcl/source/app/svmain.cxx
++++ vcl/source/app/svmain.cxx
+@@ -139,7 +139,9 @@
+ #include <vcl/xconnection.hxx>
+ #endif
+ 
+-#include <vos/process.hxx>
++#include <vos/mutex.hxx>
++
++#include <osl/process.h>
+ #include <osl/file.hxx>
+ 
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+@@ -374,7 +376,6 @@ BOOL InitVCL( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XM
+     // Main-Thread-Id merken
+     pSVData->mnMainThreadId = ::vos::OThread::getCurrentIdentifier();
+ 
+-    vos::OStartupInfo   aStartInfo;
+     rtl::OUString       aExeFileName;
+ 
+ 
+@@ -397,7 +398,7 @@ BOOL InitVCL( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XM
+ 
+     // Den AppFileName gleich holen und absolut machen, bevor das
+     // WorkingDirectory sich aendert...
+-    aStartInfo.getExecutableFile( aExeFileName );
++    osl_getExecutableFile( &aExeFileName.pData );
+ 
+     // convert path to native file format
+     rtl::OUString aNativeFileName;
+diff --git a/vcl/test/dndtest.cxx b/vcl/test/dndtest.cxx
+index 93ae07c..0b5469f 100755
+--- vcl/test/dndtest.cxx
++++ vcl/test/dndtest.cxx
+@@ -89,8 +89,8 @@
+ #include <com/sun/star/datatransfer/dnd/XDragGestureListener.hpp>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
+ #endif
+ 
+ #include <stdio.h>
+@@ -203,18 +203,17 @@ public:
+ void MyApp::Main()
+ {
+ 	OUString aRegistry;
+-	OStartupInfo aInfo;
+ 
+-	for( sal_Int32 n = 0, nmax = aInfo.getCommandArgCount(); n < nmax; n++ )
++	for( sal_Int32 n = 0, nmax = osl_getCommandArgCount(); n < nmax; n++ )
+ 	{
+ 		OUString aArg;
+ 
+-		aInfo.getCommandArg( n, aArg );
++		osl_getCommandArg( n, &aArg.pData );
+ 		
+ 		if( aArg.compareTo( OUString::createFromAscii( "-r" ), 2 ) == 0 )
+ 		{
+ 			if ( n + 1 < nmax )
+-				aInfo.getCommandArg( ++n, aRegistry );
++				osl_getCommandArg( ++n, &aRegistry.pData );
+ 		}
+ 	}
+ 
+diff --git a/vcl/unx/kde/kdedata.cxx b/vcl/unx/kde/kdedata.cxx
+index 1b9bc3f..7c642e6 100644
+--- vcl/unx/kde/kdedata.cxx
++++ vcl/unx/kde/kdedata.cxx
+@@ -77,9 +77,6 @@
+ #include "i18n_xkb.hxx"
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _VOS_MUTEX_HXX
+ #include <vos/mutex.hxx>
+ #endif
+@@ -155,17 +152,16 @@ void KDEXLib::Init()
+ 
+     m_nFakeCmdLineArgs = 1;
+ 	USHORT nIdx;
+-	vos::OExtCommandLine aCommandLine;
+-	int nParams = aCommandLine.getCommandArgCount();
++	int nParams = osl_getCommandArgCount();
+ 	rtl::OString aDisplay;
+ 	rtl::OUString aParam, aBin;
+ 
+ 	for ( nIdx = 0; nIdx < nParams; ++nIdx ) 
+ 	{
+-		aCommandLine.getCommandArg( nIdx, aParam );
++		osl_getCommandArg( nIdx, &aParam.pData );
+ 		if ( !m_pFreeCmdLineArgs && aParam.equalsAscii( "-display" ) && nIdx + 1 < nParams )
+ 		{
+-			aCommandLine.getCommandArg( nIdx + 1, aParam );
++			osl_getCommandArg( nIdx + 1, &aParam.pData );
+ 			aDisplay = rtl::OUStringToOString( aParam, osl_getThreadTextEncoding() );
+ 
+ 			m_nFakeCmdLineArgs = 3;
+diff --git a/vcl/unx/source/app/saldata.cxx b/vcl/unx/source/app/saldata.cxx
+index 4a29665..aaaaa97 100644
+--- vcl/unx/source/app/saldata.cxx
++++ vcl/unx/source/app/saldata.cxx
+@@ -64,9 +64,6 @@
+ #include <unistd.h>
+ #endif
+ 
+-#ifndef _VOS_PROCESS_HXX_
+-#include <vos/process.hxx>
+-#endif
+ #ifndef _VOS_MUTEX_HXX
+ #include <vos/mutex.hxx>
+ #endif
+@@ -432,16 +429,15 @@ void SalXLib::Init()
+ 	Display *pDisp = NULL;
+ 
+ 	// is there a -display command line parameter?
+-	vos::OExtCommandLine aCommandLine;
+-	sal_uInt32 nParams = aCommandLine.getCommandArgCount();
++	sal_uInt32 nParams = osl_getCommandArgCount();
+ 	rtl::OUString aParam;
+ 	rtl::OString aDisplay;
+ 	for (USHORT i=0; i<nParams; i++) 
+ 	{
+-		aCommandLine.getCommandArg(i, aParam);
++		osl_getCommandArg(i, &aParam.pData);
+ 		if (aParam.equalsAscii("-display"))
+ 		{
+-			aCommandLine.getCommandArg(i+1, aParam);
++			osl_getCommandArg(i+1, &aParam.pData);
+ 			aDisplay = rtl::OUStringToOString(
+ 				   aParam, osl_getThreadTextEncoding());
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-sheet-gridline-toggle.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-sheet-gridline-toggle.diff
@@ -0,0 +1,503 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=officecfg.vpj officecfg.clean/registry/data/org/openoffice/Office/UI/CalcCommands.xcu officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+--- officecfg.clean/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2008-02-20 15:04:18.000000000 -0500
++++ officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2008-02-21 11:25:19.000000000 -0500
+@@ -1439,6 +1439,14 @@
+                     <value xml:lang="en-US">E-mail as ~OpenDocument Spreadsheet...</value>
+                 </prop>
+             </node>
++            <node oor:name=".uno:ToggleSheetGrid" oor:op="replace">
++                <prop oor:name="Label" oor:type="xs:string">
++                    <value xml:lang="en-US">Toggle Grid Lines for Current Sheet</value>
++                </prop>
++                <prop oor:name="Properties" oor:type="xs:int">
++                    <value>1</value>
++                </prop>
++            </node>
+         </node>
+ 		<node oor:name="Popups">
+ 			<node oor:name=".uno:AuditMenu" oor:op="replace">
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/document.hxx sc/inc/document.hxx
+--- sc.clean/inc/document.hxx	2008-02-05 11:16:54.000000000 -0500
++++ sc/inc/document.hxx	2008-02-20 00:41:43.000000000 -0500
+@@ -162,6 +162,7 @@ class ScAutoNameCache;
+ class ScTemporaryChartLock;
+ class ScLookupCache;
+ struct ScLookupCacheMapImpl;
++struct ScTableViewOptions;
+ 
+ namespace com { namespace sun { namespace star {
+     namespace lang {
+@@ -1703,6 +1704,8 @@ public:
+                     /// an ID unique to each document instance
+     sal_uInt32      GetDocumentID() const;
+ 
++    ScTableViewOptions* GetTableViewOptions( SCTAB nTab ) const;
++
+     void            InvalidateStyleSheetUsage()
+                         { bStyleSheetUsageInvalid = TRUE; }
+ 	void GetSortParam( ScSortParam& rParam, SCTAB nTab );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/sc.hrc sc/inc/sc.hrc
+--- sc.clean/inc/sc.hrc	2008-02-05 11:16:54.000000000 -0500
++++ sc/inc/sc.hrc	2008-02-20 18:35:44.000000000 -0500
+@@ -821,6 +821,7 @@
+ #define FID_TAB_APPEND			(TAB_POPUP_START+5)
+ #define FID_TAB_INDEX			(TAB_POPUP_START+6)
+ #define FID_TAB_RTL				(TAB_POPUP_START+7)
++#define FID_TAB_TOGGLE_GRID     (TAB_POPUP_START+8)
+ 
+ #define TAB_POPUP_END			(DATA_MENU_END + 20)
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/table.hxx sc/inc/table.hxx
+--- sc.clean/inc/table.hxx	2008-02-05 11:16:54.000000000 -0500
++++ sc/inc/table.hxx	2008-02-20 00:30:49.000000000 -0500
+@@ -37,6 +37,7 @@
+ #define SC_TABLE_HXX
+ 
+ #include <vector>
++#include <memory>
+ 
+ #ifndef _GEN_HXX //autogen
+ #include <tools/gen.hxx>
+@@ -89,6 +90,7 @@ class ScIndexMap;
+ struct RowInfo;
+ struct ScFunctionData;
+ struct ScLineFlags;
++struct ScTableViewOptions;
+ class CollatorWrapper;
+ 
+ 
+@@ -166,6 +168,8 @@ private:
+ 	USHORT			nScenarioFlags;
+ 	BOOL			bActiveScenario;
+ 
++    ::std::auto_ptr<ScTableViewOptions> pViewOptions;
++
+ friend class ScDocument;					// fuer FillInfo
+ friend class ScDocumentIterator;
+ friend class ScValueIterator;
+@@ -183,6 +187,7 @@ public:
+ 							BOOL bColInfo = TRUE, BOOL bRowInfo = TRUE );
+ 				~ScTable();
+ 
++    ScTableViewOptions* GetViewOptions();
+ 	ScOutlineTable*	GetOutlineTable()				{ return pOutlineTable; }
+ 
+ 	ULONG		GetCellCount() const;
+Only in sc/inc: tabviewoptions.hxx
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/ViewSettingsSequenceDefines.hxx sc/inc/ViewSettingsSequenceDefines.hxx
+--- sc.clean/inc/ViewSettingsSequenceDefines.hxx	2008-02-05 11:16:54.000000000 -0500
++++ sc/inc/ViewSettingsSequenceDefines.hxx	2008-02-21 00:06:54.000000000 -0500
+@@ -69,7 +69,7 @@
+ // this are the defines for the position of the settings in the
+ // TableViewSettingsSequence
+ 
+-#define SC_TABLE_VIEWSETTINGS_COUNT         14
++#define SC_TABLE_VIEWSETTINGS_COUNT         15
+ 
+ #define SC_CURSOR_X							0
+ #define SC_CURSOR_Y							1
+@@ -85,6 +85,7 @@
+ #define SC_TABLE_ZOOM_TYPE                  11
+ #define SC_TABLE_ZOOM_VALUE                 12
+ #define SC_TABLE_PAGE_VIEW_ZOOM_VALUE       13
++#define SC_TABLE_SHOWGRID                   14
+ 
+ #define SC_CURSORPOSITIONX					"CursorPositionX"
+ #define SC_CURSORPOSITIONY					"CursorPositionY"
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/sdi/docsh.sdi sc/sdi/docsh.sdi
+--- sc.clean/sdi/docsh.sdi	2008-02-05 11:16:54.000000000 -0500
++++ sc/sdi/docsh.sdi	2008-02-20 18:33:41.000000000 -0500
+@@ -68,6 +68,7 @@ interface TableSelection
+ 	FID_DELETE_TABLE	[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ 	FID_TAB_RENAME		[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ 	FID_TAB_RTL			[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
++    FID_TAB_TOGGLE_GRID [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ 
+ 	SID_TABLE_ACTIVATE	[ ExecMethod = Execute; ]
+ }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/sdi/scalc.sdi sc/sdi/scalc.sdi
+--- sc.clean/sdi/scalc.sdi	2008-02-05 11:16:54.000000000 -0500
++++ sc/sdi/scalc.sdi	2008-02-20 18:05:05.000000000 -0500
+@@ -7706,3 +7706,28 @@ SfxBoolItem SheetRightToLeft FID_TAB_RTL
+ 	GroupId = GID_FORMAT;
+ ]
+ 
++//--------------------------------------------------------------------------
++SfxBoolItem ToggleSheetGrid FID_TAB_TOGGLE_GRID
++
++[
++	/* flags: */
++	AutoUpdate = FALSE,
++	Cachable = Cachable,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = FALSE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	/* config: */
++	AccelConfig = TRUE,
++	MenuConfig = TRUE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = TRUE,
++	GroupId = GID_FORMAT;
++]
++
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/documen2.cxx sc/source/core/data/documen2.cxx
+--- sc.clean/source/core/data/documen2.cxx	2008-02-05 11:16:59.000000000 -0500
++++ sc/source/core/data/documen2.cxx	2008-02-20 00:46:26.000000000 -0500
+@@ -277,6 +277,13 @@ sal_uInt32 ScDocument::GetDocumentID() c
+     return nCrc;
+ }
+ 
++ScTableViewOptions* ScDocument::GetTableViewOptions( SCTAB nTab ) const
++{
++    if (ValidTab(nTab) && pTab[nTab])
++        return pTab[nTab]->GetViewOptions();
++
++    return NULL;
++}
+ 
+ void ScDocument::StartChangeTracking()
+ {
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/makefile.mk sc/source/core/data/makefile.mk
+--- sc.clean/source/core/data/makefile.mk	2008-02-05 11:16:59.000000000 -0500
++++ sc/source/core/data/makefile.mk	2008-02-20 01:16:25.000000000 -0500
+@@ -113,7 +113,8 @@ SLOFILES =  \
+ 	$(SLO)$/table6.obj \
+ 	$(SLO)$/userdat.obj \
+ 	$(SLO)$/validat.obj \
+-	$(SLO)$/postit.obj
++	$(SLO)$/postit.obj \
++	$(SLO)$/tabviewoptions.obj
+ 
+ EXCEPTIONSFILES= \
+     $(SLO)$/autonamecache.obj \
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/table1.cxx sc/source/core/data/table1.cxx
+--- sc.clean/source/core/data/table1.cxx	2008-02-05 11:16:59.000000000 -0500
++++ sc/source/core/data/table1.cxx	2008-02-20 00:33:00.000000000 -0500
+@@ -119,6 +119,7 @@
+ #include "progress.hxx"
+ #include "hints.hxx"		// fuer Paint-Broadcast
+ #include "prnsave.hxx"
++#include "tabviewoptions.hxx"
+ 
+ // STATIC DATA -----------------------------------------------------------
+ 
+@@ -158,7 +159,8 @@ ScTable::ScTable( ScDocument* pDoc, SCTA
+ 	pScenarioRanges( NULL ),
+ 	aScenarioColor( COL_LIGHTGRAY ),
+ 	nScenarioFlags( 0 ),
+-	bActiveScenario( FALSE )
++	bActiveScenario( FALSE ),
++    pViewOptions( NULL )
+ {
+ 
+ 	if (bColInfo)
+@@ -228,6 +230,13 @@ ScTable::~ScTable()
+ 	DestroySortCollator();
+ }
+ 
++ScTableViewOptions* ScTable::GetViewOptions()
++{
++    if (!pViewOptions.get())
++        pViewOptions.reset(new ScTableViewOptions);
++    return pViewOptions.get();
++}
++
+ void ScTable::GetName( String& rName ) const
+ {
+ 	rName = aName;
+Only in sc/source/core/data: tabviewoptions.cxx
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/filter/excel/xeview.cxx sc/source/filter/excel/xeview.cxx
+--- sc.clean/source/filter/excel/xeview.cxx	2008-02-05 11:16:59.000000000 -0500
++++ sc/source/filter/excel/xeview.cxx	2008-02-20 12:40:45.000000000 -0500
+@@ -57,6 +57,8 @@
+ #include "xestyle.hxx"
+ #endif
+ 
++#include "tabviewoptions.hxx"
++
+ // Workbook view settings records =============================================
+ 
+ XclExpWindow1::XclExpWindow1( const XclExpRoot& rRoot ) :
+@@ -249,11 +251,14 @@ XclExpTabViewSettings::XclExpTabViewSett
+ 
+     const ScViewOptions& rViewOpt = GetDoc().GetViewOptions();
+     maData.mbShowFormulas   = rViewOpt.GetOption( VOPT_FORMULAS );
+-    maData.mbShowGrid       = rViewOpt.GetOption( VOPT_GRID );
+     maData.mbShowHeadings   = rViewOpt.GetOption( VOPT_HEADER );
+     maData.mbShowZeros      = rViewOpt.GetOption( VOPT_NULLVALS );
+     maData.mbShowOutline    = rViewOpt.GetOption( VOPT_OUTLINER );
+ 
++    // Save per-sheet view options.
++    const ScTableViewOptions* pTabViewOpt = GetDoc().GetTableViewOptions(nScTab);
++    maData.mbShowGrid = pTabViewOpt->mbDisplayGrid;
++
+     // *** sheet options: cursor, selection, splits, grid color, zoom ***
+ 
+     if( const ScExtTabSettings* pTabSett = GetExtDocOptions().GetTabSettings( nScTab ) )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/filter/excel/xiview.cxx sc/source/filter/excel/xiview.cxx
+--- sc.clean/source/filter/excel/xiview.cxx	2008-02-05 11:16:59.000000000 -0500
++++ sc/source/filter/excel/xiview.cxx	2008-02-20 12:28:11.000000000 -0500
+@@ -60,6 +60,8 @@
+ #include "xistyle.hxx"
+ #endif
+ 
++#include "tabviewoptions.hxx"
++
+ // Document view settings =====================================================
+ 
+ XclImpDocViewSettings::XclImpDocViewSettings( const XclImpRoot& rRoot ) :
+@@ -295,12 +297,16 @@ void XclImpTabViewSettings::Finalize()
+         // set Excel sheet settings globally at Calc document, take settings from displayed sheet
+         ScViewOptions aViewOpt( rDoc.GetViewOptions() );
+         aViewOpt.SetOption( VOPT_FORMULAS, maData.mbShowFormulas );
+-        aViewOpt.SetOption( VOPT_GRID,     maData.mbShowGrid );
+         aViewOpt.SetOption( VOPT_HEADER,   maData.mbShowHeadings );
+         aViewOpt.SetOption( VOPT_NULLVALS, maData.mbShowZeros );
+         aViewOpt.SetOption( VOPT_OUTLINER, maData.mbShowOutline );
+         rDoc.SetViewOptions( aViewOpt );
+     }
++
++    // Store sheet view options.
++
++    ScTableViewOptions* pTabViewOptions = rDoc.GetTableViewOptions(nScTab);
++    pTabViewOptions->mbDisplayGrid = maData.mbShowGrid;
+ }
+ 
+ // ============================================================================
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/gridwin4.cxx sc/source/ui/view/gridwin4.cxx
+--- sc.clean/source/ui/view/gridwin4.cxx	2008-02-05 11:16:56.000000000 -0500
++++ sc/source/ui/view/gridwin4.cxx	2008-02-21 10:13:46.000000000 -0500
+@@ -79,6 +79,7 @@
+ #include "inputopt.hxx"
+ #include "fillinfo.hxx"
+ #include "sc.hrc"
++#include "tabviewoptions.hxx"
+ 
+ #ifndef _SV_VIRDEV_HXX
+ #include <vcl/virdev.hxx>
+@@ -564,7 +565,13 @@ void ScGridWindow::Draw( SCCOL nX1, SCRO
+ 	aOutputData.SetEditObject( GetEditObject() );
+ 	aOutputData.SetViewShell( pViewData->GetViewShell() );
+ 
+-	BOOL bGrid = rOpts.GetOption( VOPT_GRID );
++    BOOL bGrid = rOpts.GetOption( VOPT_GRID );
++    if (bGrid)
++    {
++        const ScTableViewOptions* pTabOptions = pDoc->GetTableViewOptions(nTab);
++        bGrid = pTabOptions->mbDisplayGrid;
++    }
++
+ 	BOOL bPage = rOpts.GetOption( VOPT_PAGEBREAKS );
+ 
+ 	if ( eMode == SC_UPDATE_CHANGED )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/tabvwshf.cxx sc/source/ui/view/tabvwshf.cxx
+--- sc.clean/source/ui/view/tabvwshf.cxx	2008-02-05 11:16:56.000000000 -0500
++++ sc/source/ui/view/tabvwshf.cxx	2008-02-20 23:48:40.000000000 -0500
+@@ -42,6 +42,8 @@
+ 
+ #include "scitems.hxx"
+ #include <sfx2/request.hxx>
++#include <sfx2/bindings.hxx>
++#include <sfx2/viewfrm.hxx>
+ #include <basic/sbstar.hxx>
+ #include <svtools/languageoptions.hxx>
+ #include <svtools/stritem.hxx>
+@@ -59,7 +61,7 @@
+ //CHINA001 #include "strindlg.hxx"
+ //CHINA001 #include "mvtabdlg.hxx"
+ #include "docfunc.hxx"
+-
++#include "tabviewoptions.hxx"
+ 
+ #include "scabstdlg.hxx" //CHINA001
+ 
+@@ -685,6 +687,17 @@ void ScTabViewShell::ExecuteTable( SfxRe
+ 			}
+ 			break;
+ 
++        case FID_TAB_TOGGLE_GRID:
++            {
++                ScTableViewOptions* pViewOpt = pDoc->GetTableViewOptions(nCurrentTab);
++                pViewOpt->mbDisplayGrid = !pViewOpt->mbDisplayGrid;
++                SfxBindings& rBindings = GetViewFrame()->GetBindings();
++                rBindings.Invalidate( FID_TAB_TOGGLE_GRID );
++                PaintGrid();
++                rReq.Done();
++            }
++            break;
++
+ 		default:
+ 			DBG_ERROR("Unbekannte Message bei ViewShell");
+ 			break;
+@@ -800,6 +813,13 @@ void ScTabViewShell::GetStateTable( SfxI
+ 						rSet.Put( SfxBoolItem( nWhich, pDoc->IsLayoutRTL( nTab ) ) );
+ 				}
+ 				break;
++
++            case FID_TAB_TOGGLE_GRID:
++                {
++                    const ScTableViewOptions* pTabViewOptions = pDoc->GetTableViewOptions(nTab);
++                    rSet.Put( SfxBoolItem(nWhich, pTabViewOptions->mbDisplayGrid) );
++                }
++                break;
+ 		}
+ 		nWhich = aIter.NextWhich();
+ 	}
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
+--- sc.clean/source/ui/view/viewdata.cxx	2008-02-05 11:16:56.000000000 -0500
++++ sc/source/ui/view/viewdata.cxx	2008-02-21 00:17:16.000000000 -0500
+@@ -73,6 +73,7 @@
+ #include "miscuno.hxx"
+ #include "unonames.hxx"
+ #include "inputopt.hxx"
++#include "tabviewoptions.hxx"
+ 
+ #ifndef _XMLOFF_XMLUCONV_HXX
+ #include <xmloff/xmluconv.hxx>
+@@ -137,7 +138,7 @@ ScViewDataTable::~ScViewDataTable()
+ {
+ }
+ 
+-void ScViewDataTable::WriteUserDataSequence(uno::Sequence <beans::PropertyValue>& rSettings, const ScViewData& /*rViewData*/, SCTAB /*nTab*/)
++void ScViewDataTable::WriteUserDataSequence(uno::Sequence <beans::PropertyValue>& rSettings, const ScViewData& rViewData, SCTAB nTab)
+ {
+ 	rSettings.realloc(SC_TABLE_VIEWSETTINGS_COUNT);
+ 	beans::PropertyValue* pSettings = rSettings.getArray();
+@@ -180,6 +180,10 @@ void ScViewDataTable::WriteUserDataSeque
+         pSettings[SC_TABLE_ZOOM_VALUE].Value <<= nZoomValue;
+         pSettings[SC_TABLE_PAGE_VIEW_ZOOM_VALUE].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_PAGEVIEWZOOMVALUE));
+         pSettings[SC_TABLE_PAGE_VIEW_ZOOM_VALUE].Value <<= nPageZoomValue;
++
++        const ScTableViewOptions* pTabViewOpt = rViewData.GetDocument()->GetTableViewOptions(nTab);
++        pSettings[SC_TABLE_SHOWGRID].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNO_SHOWGRID));
++        pSettings[SC_TABLE_SHOWGRID].Value <<= static_cast<sal_Bool>(pTabViewOpt->mbDisplayGrid);
+ 	}
+ }
+
+@@ -287,6 +292,12 @@ void ScViewDataTable::ReadUserDataSequen
+             aPageZoomX = aPageZoomY = aZoom;
+             rHasZoom = true;
+         }
++        else if (sName.compareToAscii(SC_UNO_SHOWGRID) == 0)
++        {
++            bool bShowGrid = true;
++            aSettings[i].Value >>= bShowGrid;
++            rViewData.GetDocument()->GetTableViewOptions(nTab)->mbDisplayGrid = bShowGrid;
++        }
+         else if (sName.compareToAscii(SC_TABLESELECTED) == 0)
+         {
+             bool bSelected = false;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/uiconfig/scalc/toolbar/formatobjectbar.xml sc/uiconfig/scalc/toolbar/formatobjectbar.xml
+--- sc.clean/uiconfig/scalc/toolbar/formatobjectbar.xml	2008-02-05 11:16:54.000000000 -0500
++++ sc/uiconfig/scalc/toolbar/formatobjectbar.xml	2008-02-21 11:32:04.000000000 -0500
+@@ -50,4 +50,6 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:26268"  toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:26236"  toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:26237"  toolbar:visible="false" />
++ <toolbar:toolbarseparator/>
++ <toolbar:toolbaritem xlink:href=".uno:ToggleSheetGrid" toolbar:helpid="helpid:26237"  toolbar:visible="true" />
+ </toolbar:toolbar>
+--- /dev/null	2007-03-30 11:25:40.000000000 -0400
++++ sc/inc/tabviewoptions.hxx	2008-02-20 01:15:22.000000000 -0500
+@@ -0,0 +1,50 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: table.hxx,v $
++ *
++ *  $Revision: 1.32 $
++ *
++ *  last change: $Author: vg $ $Date: 2007/09/21 09:22:40 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2008 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef SC_TAB_VIEW_OPTIONS_HXX
++#define SC_TAB_VIEW_OPTIONS_HXX
++
++/** This class stores a set of persistent sheet view options that are saved
++    with the document.  This class is still work in progress, thus will
++    likely grow with more options in future. */
++struct ScTableViewOptions
++{
++    bool mbDisplayGrid;
++
++    ScTableViewOptions();
++};
++
++
++#endif
+--- /dev/null	2007-03-30 11:25:40.000000000 -0400
++++ sc/source/core/data/tabviewoptions.cxx	2008-02-20 16:04:37.000000000 -0500
+@@ -0,0 +1,41 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: table.hxx,v $
++ *
++ *  $Revision: 1.32 $
++ *
++ *  last change: $Author: vg $ $Date: 2007/09/21 09:22:40 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2008 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "tabviewoptions.hxx"
++
++ScTableViewOptions::ScTableViewOptions() :
++    mbDisplayGrid(true)
++{
++}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-date-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-date-fix.diff
@@ -0,0 +1,40 @@
+Index: svtools/source/numbers/zforfind.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/numbers/zforfind.cxx,v
+retrieving revision 1.47
+diff -u -p -r1.47 zforfind.cxx
+--- svtools/source/numbers/zforfind.cxx	27 Jun 2007 21:56:34 -0000	1.47
++++ svtools/source/numbers/zforfind.cxx	21 Feb 2008 23:01:27 -0000
+@@ -1120,9 +1120,16 @@ input for the following reasons:
+                         switch (DateFmt)
+                         {
+                             case MDY:
+-                            case YMD:
+-                                pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
++                            case YMD: {
++                                USHORT nDay = ImplGetDay(0);
++                                USHORT nYear = ImplGetYear(0);
++                                if (nDay == 0 || nDay > 32) {
++                                    pCal->setValue( CalendarFieldIndex::YEAR, nYear);
++                                }
++                                else
++                                    pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
+                                 break;
++                            }
+                             case DMY:
+                                 pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
+                                 break;
+@@ -1543,6 +1550,13 @@ BOOL ImpSvNumberInputScan::ScanStartStri
+         }
+     }
+ 
++    // skip any trailing '-' or '/' chars
++    if (nPos < rString.Len())
++    {
++        while (SkipChar ('-', rString, nPos) || SkipChar ('/', rString, nPos)) {
++            // do nothing
++        }
++    }
+     if (nPos < rString.Len())                       // not everything consumed
+     {
+         // Does input StartString equal StartString of format?
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-resmgr.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-resmgr.diff
@@ -0,0 +1,72 @@
+--- fpicker/source/unx/kde_unx/UnxFilePicker.cxx	2005-05-23 16:40:20.093844000 +0200
++++ fpicker/source/unx/kde_unx/UnxFilePicker.cxx	2005-05-26 10:49:11.305359078 +0200
+@@ -107,8 +107,8 @@
+ #include <FPServiceInfo.hxx>
+ #endif
+ 
+-#ifndef _SVTOOLS_SVTDATA_HXX
+-#include <svtools/svtdata.hxx>
++#ifndef _TOOLS_RESMGR_HXX
++#include <tools/resmgr.hxx>
+ #endif
+ 
+ #ifndef _SVTOOLS_HRC
+@@ -178,7 +178,8 @@ UnxFilePicker::UnxFilePicker( const uno:
+           m_nFilePickerWrite( -1 ),
+           m_nFilePickerRead( -1 ),
+           m_pNotifyThread( NULL ),
+-          m_pCommandThread( NULL )
++          m_pCommandThread( NULL ),
++          m_pResMgr( CREATEVERSIONRESMGR( fps_office ) )
+ {	
+ }
+ 
+@@ -211,6 +212,8 @@ UnxFilePicker::~UnxFilePicker()
+     
+     if ( m_nFilePickerRead >= 0 )
+         close( m_nFilePickerRead );
++
++    delete m_pResMgr, m_pResMgr = NULL;
+ }
+ 
+ void SAL_CALL UnxFilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
+@@ -970,7 +973,7 @@ void UnxFilePicker::sendAppendControlCom
+         aBuffer.appendAscii( " ", 1 );
+         appendEscaped( aBuffer, aType );
+         aBuffer.appendAscii( " ", 1 );
+-        appendEscaped( aBuffer, String( SvtResId( nTitleId ) ) );
++        appendEscaped( aBuffer, m_pResMgr? String( ResId( nTitleId, *m_pResMgr ) ): String() );
+ 
+         sendCommand( aBuffer.makeStringAndClear() );
+     }
+--- fpicker/source/unx/kde_unx/UnxFilePicker.hxx	2005-05-23 16:40:20.094844000 +0200
++++ fpicker/source/unx/kde_unx/UnxFilePicker.hxx	2005-05-26 10:40:18.652234700 +0200
+@@ -114,6 +114,7 @@
+ 
+ class UnxFilePickerCommandThread;
+ class UnxFilePickerNotifyThread;
++class ResMgr;
+ 
+ class UnxFilePickerDummy
+ {
+@@ -145,6 +146,8 @@ protected:
+     UnxFilePickerNotifyThread  *m_pNotifyThread;
+     UnxFilePickerCommandThread *m_pCommandThread;
+ 
++    ResMgr                     *m_pResMgr;
++
+ public:
+     UnxFilePicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
+     virtual ~UnxFilePicker();
+--- fpicker/source/unx/kde_unx/makefile.mk	2004-06-15 10:52:55.099580592 +0200
++++ fpicker/source/unx/kde_unx/makefile.mk	2004-06-15 10:52:55.099580592 +0200
+@@ -95,8 +95,7 @@ DEF1EXPORTFILE=	exports.dxp
+ 		$(CPPUHELPERLIB)\
+ 		$(SALLIB)\
+ 		$(VCLLIB)\
+-		$(TOOLSLIB)\
+-		$(SVTOOLLIB)
++		$(TOOLSLIB)
+ 
+ SHL1OBJS=$(SLOFILES)
+ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/redirect-extensions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/redirect-extensions.diff
@@ -0,0 +1,48 @@
+Index: dbaccess/source/ui/dlg/ExtensionNotPresent.cxx
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/ui/dlg/ExtensionNotPresent.cxx,v
+retrieving revision 1.2
+diff -u -p -u -r1.2 ExtensionNotPresent.cxx
+--- dbaccess/source/ui/dlg/ExtensionNotPresent.cxx	6 Jul 2007 08:11:17 -0000	1.2
++++ dbaccess/source/ui/dlg/ExtensionNotPresent.cxx	27 Feb 2008 12:26:24 -0000
+@@ -205,7 +205,7 @@ IMPL_LINK( OExtensionNotPresentDialog, D
+         if (suDownloadURL.getLength() == 0)
+         {
+             // fallback
+-            suDownloadURL = UNISTRING("http://extensions.services.openoffice.org");
++            suDownloadURL = UNISTRING("http://extensions.go-oo.org");
+         }
+         
+         // open such URL in a browser
+Index: officecfg/registry/schema/org/openoffice/Office/ReportDesign.xcs
+===================================================================
+RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/ReportDesign.xcs,v
+retrieving revision 1.4
+diff -u -p -u -r1.4 ReportDesign.xcs
+--- officecfg/registry/schema/org/openoffice/Office/ReportDesign.xcs	2 Aug 2007 14:17:57 -0000	1.4
++++ officecfg/registry/schema/org/openoffice/Office/ReportDesign.xcs	27 Feb 2008 12:27:25 -0000
+@@ -61,7 +61,7 @@
+                         <author>LLA</author>
+                         <desc>Direct download URL to the Sun(tm) Report Builder extension.</desc>
+                     </info>
+-                    <value>http://extensions.services.openoffice.org</value>
++                    <value>http://extensions.go-oo.org</value>
+                 </prop>
+                 <prop oor:name="Name" oor:type="xs:string">
+                     <info>
+Index: officecfg/registry/data/org/openoffice/Office/ExtensionManager.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/ExtensionManager.xcu,v
+retrieving revision 1.3
+diff -u -p -u -r1.3 ExtensionManager.xcu
+--- officecfg/registry/data/org/openoffice/Office/ExtensionManager.xcu	31 Jul 2007 16:46:47 -0000	1.3
++++ officecfg/registry/data/org/openoffice/Office/ExtensionManager.xcu	27 Feb 2008 12:28:25 -0000
+@@ -39,7 +39,7 @@
+ <oor:component-data oor:name="ExtensionManager" oor:package="org.openoffice.Office" xmlns:oor="http://openoffice.org/2001/registry">
+   <node oor:name="ExtensionRepositories">
+     <prop oor:name="WebsiteLink">
+-      <value>http://extensions.services.openoffice.org/getmore?cid=920794</value>
++      <value>http://extensions.go-oo.org/getmore?cid=920794</value>
+     </prop>
+   </node>
+ </oor:component-data> 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-datapilot-autoformat.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-datapilot-autoformat.diff
@@ -0,0 +1,412 @@
+diff -u -r ../../../sc.bak/inc/dpobject.hxx sc/inc/dpobject.hxx
+--- ../../../sc.bak/inc/dpobject.hxx	2004-12-22 14:05:07.000000000 +0530
++++ sc/inc/dpobject.hxx	2005-01-11 13:20:14.887574368 +0530
+@@ -142,6 +142,7 @@
+ 	ScDPOutput*				pOutput;
+ 	BOOL					bSettingsChanged;
+ 	BOOL					bAlive;			// FALSE if only used to hold settings
++	USHORT                                  nAutoFormatIndex;
+ 	BOOL					bAllowMove;
+ 	BOOL					bInfoValid;		// affects: nHeaderRows
+ 	long					nHeaderRows;	// page fields plus filter button
+@@ -172,6 +173,9 @@
+ 	void				SetOutRange(const ScRange& rRange);
+ 	const ScRange&		GetOutRange() const		{ return aOutRange; }
+ 
++	void 			SetAutoFormatIndex (const USHORT nIndex);
++	const USHORT		GetAutoFormatIndex ()	{ if (this == NULL) return 65535; else return nAutoFormatIndex; }
++
+ 	void				SetSheetDesc(const ScSheetSourceDesc& rDesc);
+ 	void				SetImportDesc(const ScImportSourceDesc& rDesc);
+ 	void				SetServiceData(const ScDPServiceDesc& rDesc);
+diff -u -r ../../../sc.bak/inc/sc.hrc sc/inc/sc.hrc
+--- ../../../sc.bak/inc/sc.hrc	2004-12-22 14:05:07.000000000 +0530
++++ sc/inc/sc.hrc	2005-01-11 13:19:28.850573056 +0530
+@@ -1608,6 +1608,7 @@
+ #define RID_SCDLG_DPDATEGROUP           (SC_DIALOGS_START + 136)
+ #define RID_SCDLG_DPSHOWDETAIL          (SC_DIALOGS_START + 137)
+ 
++#define SID_PIVOT_AFMT					(SC_DIALOGS_START + 133)
+ #define SC_DIALOGS_END          (SC_DIALOGS_START + 150)
+ 
+ #ifndef STD_MASKCOLOR
+diff -u -r ../../../sc.bak/sdi/pivotsh.sdi sc/sdi/pivotsh.sdi
+--- ../../../sc.bak/sdi/pivotsh.sdi	2004-12-22 14:05:07.000000000 +0530
++++ sc/sdi/pivotsh.sdi	2005-01-11 13:19:28.000000000 +0530
+@@ -65,6 +65,7 @@
+ 	SID_PIVOT_RECALC	[ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ 	SID_PIVOT_KILL		[ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+         SID_DP_FILTER           [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
++	SID_PIVOT_AFMT		[ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ }
+ 
+ shell ScPivotShell
+diff -u -r ../../../sc.bak/sdi/scalc.sdi sc/sdi/scalc.sdi
+--- ../../../sc.bak/sdi/scalc.sdi	2004-12-22 14:05:07.000000000 +0530
++++ sc/sdi/scalc.sdi	2005-01-11 13:19:28.000000000 +0530
+@@ -1906,6 +1906,31 @@
+ 	GroupId = GID_DATA;
+ ]
+ 
++SfxVoidItem AutoFormatPivotTable SID_PIVOT_AFMT
++()
++[
++        /* flags: */
++        AutoUpdate = FALSE,
++        Cachable = Cachable,
++        FastCall = FALSE,
++        HasCoreId = FALSE,
++        HasDialog = FALSE,
++        ReadOnlyDoc = TRUE,
++        Toggle = FALSE,
++        Container = FALSE,
++        RecordAbsolute = FALSE,
++        RecordPerSet;
++        Synchron;
++                                                                                                                             
++        /* config: */
++        AccelConfig = FALSE,
++        MenuConfig = TRUE,
++        StatusBarConfig = FALSE,
++        ToolBoxConfig = FALSE,
++        GroupId = GID_DATA;
++]
++
++
+ //--------------------------------------------------------------------------
+ SfxVoidItem DeletePrintArea SID_DELETE_PRINTAREA
+ ()
+diff -u -r ../../../sc.bak/source/core/data/dpobject.cxx sc/source/core/data/dpobject.cxx
+--- ../../../sc.bak/source/core/data/dpobject.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/core/data/dpobject.cxx	2005-01-11 13:19:28.863571080 +0530
+@@ -151,6 +151,7 @@
+ 	pImpDesc( NULL ),
+ 	pServDesc( NULL ),
+ 	pOutput( NULL ),
++	nAutoFormatIndex( 65535 ),
+ 	bSettingsChanged( FALSE ),
+ 	bAlive( FALSE ),
+ 	bAllowMove( FALSE ),
+@@ -166,6 +167,7 @@
+ 	aTableName( r.aTableName ),
+ 	aTableTag( r.aTableTag ),
+ 	aOutRange( r.aOutRange ),
++	nAutoFormatIndex( r.nAutoFormatIndex ),
+ 	pSheetDesc( NULL ),
+ 	pImpDesc( NULL ),
+ 	pServDesc( NULL ),
+@@ -245,6 +247,11 @@
+ 	InvalidateData();		// re-init source from SaveData
+ }
+ 
++void ScDPObject::SetAutoFormatIndex(const USHORT nIndex)
++{
++	nAutoFormatIndex	= nIndex;
++}
++
+ void ScDPObject::SetOutRange(const ScRange& rRange)
+ {
+ 	aOutRange = rRange;
+diff -u -r ../../../sc.bak/source/ui/docshell/dbdocfun.cxx sc/source/ui/docshell/dbdocfun.cxx
+--- ../../../sc.bak/source/ui/docshell/dbdocfun.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/ui/docshell/dbdocfun.cxx	2005-01-11 13:54:59.264700880 +0530
+@@ -1376,6 +1376,36 @@
+ 	delete pNewUndoDoc;
+ 	delete pUndoDPObj;
+ 
++	if (const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() != 65535)
++	{
++		ScViewData* pViewData = rDocShell.GetViewData();
++  		ScDocument* pDoc = pViewData->GetDocument();
++		rDocShell.GetViewData()->GetViewShell()->GetDBData( TRUE, SC_DB_OLD );
++		const ScMarkData& rMark1 = pViewData->GetMarkData();
++		SCCOL nStartCol;
++		SCROW nStartRow;
++		SCTAB nStartTab;
++		SCCOL nEndCol;
++		SCROW nEndRow;
++		SCTAB nEndTab;
++
++		rDocShell.GetViewData()->GetSimpleArea( nStartCol,nStartRow,nStartTab,nEndCol,nEndRow,nEndTab );
++		ScRange Outrange = pNewObj->GetOutRange();
++		if (( (Outrange.aStart.Col() <= nStartCol) && (nStartCol <= Outrange.aEnd.Col() )&& (nStartTab == Outrange.aStart.Tab()))
++			&& ( (Outrange.aStart.Row() <= nStartRow) && (nStartRow <= Outrange.aEnd.Row() )) )
++			{
++		
++			if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
++				rDocShell.GetViewData()->GetViewShell()->MarkDataArea( TRUE );
++			//FIXME: Autoformat even when clicked from a non-dp cell.
++			pViewData->MoveNextRow();		
++			rDocShell.GetViewData()->GetViewShell()->AutoFormat( const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex());
++			rDocShell.GetViewData()->GetViewShell()->AutoFormatPivotTable( const_cast<ScDPObject *>(pNewObj), const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() );		
++			pViewData->MovePrevRow();
++			}
++	}
++
++
+ 	if (bDone)
+ 		aModificator.SetDocumentModified();
+ 
+diff -u -r ../../../sc.bak/source/ui/inc/dbfunc.hxx sc/source/ui/inc/dbfunc.hxx
+--- ../../../sc.bak/source/ui/inc/dbfunc.hxx	2004-12-22 14:05:07.000000000 +0530
++++ sc/source/ui/inc/dbfunc.hxx	2005-01-11 13:21:00.515637848 +0530
+@@ -117,6 +117,8 @@
+ 									const ScDPObject& rSource, BOOL bApi = FALSE );
+ 	void			DeletePivotTable();
+ 	void			RecalcPivotTable();
++        void                    AutoFormatPivotTable(USHORT nIndex);
++        void            	AutoFormatPivotTable(ScDPObject*        pDPObj, USHORT nIndex);
+ 
+     BOOL            HasSelectionForDateGroup( ScDPNumGroupInfo& rOldInfo, sal_Int32& rParts );
+     BOOL            HasSelectionForNumGroup( ScDPNumGroupInfo& rOldInfo );
+diff -u -r ../../../sc.bak/source/ui/inc/viewdata.hxx sc/source/ui/inc/viewdata.hxx
+--- ../../../sc.bak/source/ui/inc/viewdata.hxx	2004-12-22 14:05:07.000000000 +0530
++++ sc/source/ui/inc/viewdata.hxx	2005-01-11 13:21:48.324369816 +0530
+@@ -331,6 +331,9 @@
+ 
+ 	BOOL			GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& rStartTab,
+ 									SCCOL& rEndCol, SCROW& rEndRow, SCTAB& rEndTab );
++        void                    MoveNextRow();
++        void                    MovePrevRow();
++
+ 	BOOL			GetSimpleArea( ScRange& rRange );
+ 	void			GetMultiArea( ScRangeListRef& rRange );
+ 
+diff -u -r ../../../sc.bak/source/ui/miscdlgs/makefile.mk sc/source/ui/miscdlgs/makefile.mk
+--- ../../../sc.bak/source/ui/miscdlgs/makefile.mk	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/ui/miscdlgs/makefile.mk	2005-01-11 14:43:07.477625776 +0530
+@@ -136,7 +136,9 @@
+ 	$(SLO)$/highred.obj			\
+ 	$(SLO)$/simpref.obj			\
+ 	$(SLO)$/redcom.obj			\
+-	$(SLO)$/warnbox.obj
++	$(SLO)$/warnbox.obj			\
++	$(SLO)$/scuiautofmt.obj			\
++	$(SLO)$/strindlg.obj            
+ 
+ # --- Tagets -------------------------------------------------------
+ 
+diff -u -r ../../../sc.bak/source/ui/src/popup.src sc/source/ui/src/popup.src
+--- ../../../sc.bak/source/ui/src/popup.src	2004-12-22 14:05:07.000000000 +0530
++++ sc/source/ui/src/popup.src	2005-01-11 13:25:54.836894216 +0530
+@@ -318,6 +318,84 @@ Menu RID_POPUP_PIVOT
+ 			Text [ en-US ] = "~Start..." ;
+ 		};
+ 		MenuItem
++                {
++                        Identifier = SID_PIVOT_AFMT ;
++                        HelpId = SID_PIVOT_AFMT ;
++			Text [ en-US ] = "~AutoFormat..." ; 
++                        Text [ de ] = "A~utoFormat" ;
++			Text [ af ] = "OutoFormateer..." ;
++			Text [ ar ] = "تنسيق تلقائي..." ;
++			Text [ as-IN ] = "স্বয়ংক্ৰিয় ফৰমেট ..." ;
++			Text [ be-BY ] = "Аўта-фармат..." ;
++			Text [ bg ] = "Автоформат..." ;
++			Text [ br ] = "EmVentrezhañ..." ;
++			Text [ bs ] = "AutoFormat..." ;
++			Text [ ca ] = "Formatació automàtica..." ;
++			Text [ cs ] = "Automatický formát..." ;
++			Text [ cy ] = "AwtoFformat..." ;
++			Text [ da ] = "Autoformat..." ;
++			Text [ el ] = "Αυτόματη μορφοποίηση..." ;
++			Text [ en-GB ] = "AutoFormat..." ;
++			Text [ en-ZA ] = "AutoFormat..." ;
++			Text [ eo ] = "Aŭtomate Formati..." ;
++			Text [ es ] = "Formateado automático..." ;
++			Text [ et ] = "Automaatvormindus..." ;
++			Text [ fa ] = "قالب‌بندی خودکار..." ;
++			Text [ fi ] = "Automaattinen muotoilu..." ;
++			Text [ fr ] = "AutoFormat..." ;
++			Text [ ga ] = "UathFhormáidigh..." ;
++			Text [ gu ] = "આપોઆપબંધારણ..." ;
++			Text [ gu-IN ] = "આપોઆપબંધારણ..." ;
++			Text [ hi-IN ] = "स्वचालित ढंग से रचना..." ;
++			Text [ hr ] = "SamoOblikovanje..." ;
++			Text [ hu ] = "Automatikus formázás..." ;
++			Text [ it ] = "Formattazione automatica..." ;
++			Text [ ja ] = "オートフォーマット..." ;
++			Text [ ka ] = "ავტო-ფორმატირება..." ;
++			Text [ km ] = "ទ្រង់ទ្រាយ​ស្វ័យប្រវត្តិ..." ;
++			Text [ ko ] = "자동 서식..." ;
++			Text [ ku ] = "TeşekirinaBixweber..." ;
++			Text [ lt ] = "Automatinis formatavimas..." ;
++			Text [ mk ] = "Автоматско форматирање..." ;
++			Text [ ml-IN ] = "സ്വയം രൂപപ്പെടുത്തുക..." ;
++			Text [ mr-IN ] = "स्वंयचलित रचना..." ;
++			Text [ nb ] = "Autoformatering..." ;
++			Text [ nl ] = "AutoOpmaak..." ;
++			Text [ nn ] = "Autoformatering..." ;
++			Text [ nr ] = "Fometha ngokuzenzakalela..." ;
++			Text [ ns ] = "Fomate ye e Itiragalelago..." ;
++			Text [ or-IN ] = "ସ୍ବଯଂଚାଳିତଫର୍ମାଟ..." ;
++			Text [ pa-IN ] = "ਸਵੈ-ਫਾਰਮਿਟ..." ;
++			Text [ pl ] = "Autoformatowanie..." ;
++			Text [ pt ] = "Formatação automática..." ;
++			Text [ pt-BR ] = "AutoFormatar..." ;
++			Text [ ru ] = "Автоформат..." ;
++			Text [ rw ] = "Nyamwihamiterere..." ;
++			Text [ sh-YU ] = "Automatsko formatiranje..." ;
++			Text [ sk ] = "Automatický formát..." ;
++			Text [ sl ] = "Samooblikovanje..." ;
++			Text [ sr-CS ] = "Аутоматско форматирање..." ;
++			Text [ ss ] = "Kutifomethekela..." ;
++			Text [ st ] = "Fomate e iketsahallang..." ;
++			Text [ sv ] = "Autoformat..." ;
++			Text [ sw-TZ ] = "AutoFormat..." ;
++			Text [ ta ] = "தானியக்க வடிவம்..." ;
++			Text [ ta-IN ] = "தானியக்க வடிவம்..." ;
++			Text [ te-IN ] = "స్వయంరూపలావణ్యం..." ;
++			Text [ tg ] = "Автоформат..." ;
++			Text [ th ] = "AutoFormat..." ;
++			Text [ tr ] = "Otomatik Biçimlendirme..." ;
++			Text [ ts ] = "Fomati yo tiendlekela hi yoxe..." ;
++			Text [ uk ] = "Автоформат..." ;
++			Text [ ur-IN ] = "خودکارطریقہ..." ;
++			Text [ ve ] = "OthoFomathi..." ;
++			Text [ vi ] = "Tự định dạng..." ;
++			Text [ xh ] = "Ulungiselelo Oluzenzekelayo..." ;
++			Text [ zh-CN ] = "自动格式..." ;
++			Text [ zh-TW ] = "自動格式..." ;
++			Text [ zu ] = "Isakhiwo esizenzekelayo..." ;
++		};
++		MenuItem
+ 		{
+ 			Identifier = SID_PIVOT_RECALC ;
+ 			HelpId = SID_PIVOT_RECALC ;
+diff -u -r ../../../sc.bak/source/ui/view/dbfunc3.cxx sc/source/ui/view/dbfunc3.cxx
+--- ../../../sc.bak/source/ui/view/dbfunc3.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/ui/view/dbfunc3.cxx	2005-01-11 13:19:28.894566368 +0530
+@@ -1794,7 +1794,29 @@
+ 	else		// "Keine Operationen auszufuehren"
+ 		ErrorMessage(STR_MSSG_REPEATDB_0);
+ }
++void ScDBFunc::AutoFormatPivotTable(USHORT nIndex)
++{
++	ScDocShell* pDocSh  = GetViewData()->GetDocShell();
++	ScDocument* pDoc	= GetViewData()->GetDocument();
+ 
++	//	old pivot not used any more
++
++	ScDPObject*	pDPObj	= pDoc->GetDPAtCursor( GetViewData()->GetCurX(),
++												  GetViewData()->GetCurY(),
++												  GetViewData()->GetTabNo() );
++	if ( pDPObj )
++	{
++		pDPObj->SetAutoFormatIndex(nIndex);
++	}
++	else
++		ErrorMessage(STR_PIVOT_NOTFOUND);
++
++}
++
++void ScDBFunc::AutoFormatPivotTable(ScDPObject*	pDPObj, USHORT nIndex)
++{
++	pDPObj->SetAutoFormatIndex(nIndex);
++}
+ 
+ 
+ 
+diff -u -r ../../../sc.bak/source/ui/view/pivotsh.cxx sc/source/ui/view/pivotsh.cxx
+--- ../../../sc.bak/source/ui/view/pivotsh.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/ui/view/pivotsh.cxx	2005-01-11 13:46:00.779563064 +0530
+@@ -88,6 +88,12 @@
+ #include "uiitems.hxx"
+ //CHINA001 #include "pfiltdlg.hxx"
+ #include "scabstdlg.hxx" //CHINA001
++
++#include "autoform.hxx"
++#include "scuiautofmt.hxx"
++#include "editable.hxx"
++
++
+ //------------------------------------------------------------------------
+ 
+ #define ScPivotShell
+@@ -125,13 +131,56 @@
+ {
+ 	switch ( rReq.GetSlot() )
+ 	{
+-		case SID_PIVOT_RECALC:
+-			pViewShell->RecalcPivotTable();
+-			break;
++		case SID_PIVOT_AFMT:
++			{
++			ScViewData* pViewData = pViewShell->GetViewData();
++
++			pViewShell->GetDBData( TRUE, SC_DB_OLD );
++			const ScMarkData& rMark1 = pViewData->GetMarkData();
++			if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
++				pViewShell->MarkDataArea( TRUE );
++			
++			Window* pDlgParent = pViewShell->GetDialogParent();
++			
++			pViewData->MoveNextRow();
++				
++			ScGlobal::ClearAutoFormat();
++			ScAutoFormatData* pNewEntry = pViewShell->CreateAutoFormatData();
++			ScAutoFormatDlg*  pDlg		= new ScAutoFormatDlg(
++													pDlgParent,
++													ScGlobal::GetAutoFormat(),
++				                                                               pNewEntry,
++                            				                                   pViewShell->GetViewData()->GetDocument() );
++
++			if ( pDlg->Execute() == RET_OK )
++			{
++				ScEditableTester aTester( pViewShell );
++				if ( !aTester.IsEditable() )
++				{
++					pViewShell->ErrorMessage(aTester.GetMessageId());
++				}
++				else
++				{
++					/* AutoFormat and Store the index */
++					pViewShell->AutoFormat( pDlg->GetIndex() );
++					pViewShell->AutoFormatPivotTable( pDlg->GetIndex() );
++				}
++			}
++			delete pDlg;
++			delete pNewEntry;
+ 
++
++			//pViewShell->DeletePivotTable();
++			//pViewShell->RecalcPivotTable();
++			break;
++			}
+ 		case SID_PIVOT_KILL:
+ 			pViewShell->DeletePivotTable();
+ 			break;
++		case SID_PIVOT_RECALC:
++			//pViewShell->DeletePivotTable();
++			pViewShell->RecalcPivotTable();
++			break;
+ 
+         case SID_DP_FILTER:
+         {
+diff -u -r ../../../sc.bak/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
+--- ../../../sc.bak/source/ui/view/viewdata.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/ui/view/viewdata.cxx	2005-01-11 13:23:56.430894664 +0530
+@@ -654,6 +654,23 @@
+ 	aLogicMode.SetScaleY( GetZoomY() );
+ }
+ 
++
++void ScViewData::MoveNextRow()
++{
++      ScRange aMarkRange;
++      aMarkData.GetMarkArea(aMarkRange);
++      aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() +1, aMarkRange.aStart.Tab());
++      aMarkData.SetMarkArea(aMarkRange);
++}
++
++void ScViewData::MovePrevRow()
++{
++      ScRange aMarkRange;
++      aMarkData.GetMarkArea(aMarkRange);
++      aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() -1, aMarkRange.aStart.Tab());
++      aMarkData.SetMarkArea(aMarkRange);
++}
++
+ BOOL ScViewData::GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& rStartTab,
+ 								SCCOL& rEndCol, SCROW& rEndRow, SCTAB& rEndTab )
+ {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-missing-initialization.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-missing-initialization.diff
@@ -0,0 +1,37 @@
+--- svx/inc/svx/svdfppt.hxx	10 May 2007 14:32:05 -0000	1.3
++++ svx/inc/svx/svdfppt.hxx	2 Apr 2008 08:48:35 -0000
+@@ -311,6 +311,7 @@ struct PptColorSchemeAtom
+ 
+ public:
+ 
++    PptColorSchemeAtom();
+     Color				GetColor( USHORT nNum ) const;
+ 
+     friend SvStream& operator>>(SvStream& rIn, PptColorSchemeAtom& rAtom);
+
+--- svx/source/svdraw/svdfppt.cxx	23 Jan 2008 14:49:02 -0000	1.154.182.2
++++ svx/source/svdraw/svdfppt.cxx	2 Apr 2008 08:49:28 -0000
+@@ -526,6 +526,11 @@ void PptNotesAtom::Clear()
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
++PptColorSchemeAtom::PptColorSchemeAtom()
++{
++    rtl_zeroMemory(aData,sizeof(aData));
++}
++
+ Color PptColorSchemeAtom::GetColor( USHORT nNum ) const
+ {
+ 	Color aRetval;
+@@ -678,6 +683,10 @@ SvStream& operator>>( SvStream& rIn, Ppt
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ PptSlidePersistEntry::PptSlidePersistEntry() :
++    aPersistAtom            (),
++    aSlideAtom              (),
++    aNotesAtom              (),
++    aColorScheme            (),
+     pStyleSheet				( NULL ),
+ 	pHeaderFooterEntry		( NULL ),
+ 	pSolverContainer		( NULL ),
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-testshl2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-testshl2.diff
@@ -0,0 +1,27 @@
+--- testshl2/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ testshl2/prj/tests.lst	2007-09-07 09:08:29.000000000 +0200
+@@ -0,0 +1,8 @@
++t2   testshl2\workben\codegen                           nmake - all t2_workben_codegen NULL
++t2   testshl2\workben\codegen\w32                       nmake - all t2_workben_codegen_w32 NULL
++t2   testshl2\workben                                   nmake - all t2_workben NULL
++t2   testshl2\workben\dlltest                           nmake - all t2_workben_dlltest NULL
++#does not build t2   testshl2\workben\examples                          nmake - all t2_workben_examples NULL
++t2   testshl2\workben\getopt                            nmake - all t2_workben_getopt t2_tstu NULL
++t2   testshl2\workben\skeleton                          nmake - all t2_workben_skeleton t2_tstu NULL
++#depends on offapi t2   testshl2\workben\uno                               nmake - all t2_workben_uno NULL
+--- testshl2/workben/examples/testshl_test.cxx	2006-09-17 05:49:44.000000000 +0200
++++ testshl2/workben/examples/testshl_test.cxx	2007-09-07 09:05:08.000000000 +0200
+@@ -146,10 +146,10 @@ void usage()
+ #include <cppunit/TestFixture.h>
+ #include <cppunit/TestCaller.h>
+ #include <cppunit/TestSuite.h>
+-#include <cppunit/TestResult.h>
+-#include <cppunit/TestResultCollector.h> 
+ #include <cppunit/TestAssert.h>
+-#include <cppunit/TextTestResult.h>
++#include <cppunit/result/TestResult.h>
++#include <cppunit/result/TestResultCollector.h> 
++#include <cppunit/result/TextTestResult.h>
+ 
+ namespace CppunitTest
+ {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-extensions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-extensions.diff
@@ -0,0 +1,32 @@
+--- extensions/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ extensions/prj/tests.lst	2007-09-07 18:46:39.000000000 +0200
+@@ -0,0 +1,16 @@
++ex   extensions\qa\complex\extensions                   nmake - all ex_qa_complex_extensions NULL
++ex   extensions\qa\integration\extensions               nmake - all ex_qa_integration_extensions NULL
++#does not build: ex   extensions\qa\unoapi                               nmake - all ex_qa_unoapi NULL
++
++# older tests:
++ex   extensions\source\update\feed\test                 nmake - all ex_source_update_feed_test NULL
++ex   extensions\test\ole\OleClient                      nmake - w   ex_test_ole_OleClient NULL
++ex   extensions\test\ole\OleConverterVar1               nmake - w   ex_test_ole_OleConverterVar1 NULL
++ex   extensions\test\ole\cpnt                           nmake - w   ex_test_ole_cpnt NULL
++ex   extensions\test\ole\cppToUno                       nmake - w   ex_test_ole_cppToUno NULL
++ex   extensions\test\ole\cpptest                        nmake - w   ex_test_ole_cpptest NULL
++ex   extensions\test\ole\unloading                      nmake - w   ex_test_ole_unloading NULL
++#does not build: ex   extensions\test\pgp                                nmake - all ex_test_pgp NULL
++#does not build: ex   extensions\test\sax                                nmake - all ex_test_sax NULL
++#does not build: ex   extensions\test\stm                                nmake - all ex_test_stm NULL
++#does not build: ex   extensions\workben                                 nmake - all ex_workben NULL
+--- extensions/source/update/feed/test/updatefeedtest.cxx	2006-12-13 16:19:19.000000000 +0100
++++ extensions/source/update/feed/test/updatefeedtest.cxx	2007-09-07 13:34:06.000000000 +0200
+@@ -65,8 +65,8 @@ namespace xml = ::com::sun::star::xml;
+ 
+ SAL_IMPLEMENT_MAIN()
+ {
+-    (void) argv;
+-	(void) argc;
++    //(void) argv;
++	//(void) argc;
+ 
+     if( osl_getCommandArgCount() != 1 )
+     {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-insert-inmerged-range.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-insert-inmerged-range.diff
@@ -0,0 +1,337 @@
+? sc/sc.vpj
+Index: sc/inc/attarray.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/attarray.hxx,v
+retrieving revision 1.8
+diff -u -r1.8 attarray.hxx
+--- sc/inc/attarray.hxx	8 Sep 2005 17:22:53 -0000	1.8
++++ sc/inc/attarray.hxx	16 Oct 2007 00:43:54 -0000
+@@ -186,8 +186,6 @@
+ 							SCROW nStartRow, SCROW nEndRow ) const;
+ 	BOOL	IsAllEqual( const ScAttrArray& rOther, SCROW nStartRow, SCROW nEndRow ) const;
+ 
+-	BOOL	TestInsertCol( SCROW nStartRow, SCROW nEndRow) const;
+-	BOOL	TestInsertRow( SCSIZE nSize ) const;
+ 	void	InsertRow( SCROW nStartRow, SCSIZE nSize );
+ 	void	DeleteRow( SCROW nStartRow, SCSIZE nSize );
+ 	void	DeleteRange( SCSIZE nStartIndex, SCSIZE nEndIndex );
+Index: sc/inc/column.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/column.hxx,v
+retrieving revision 1.18
+diff -u -r1.18 column.hxx
+--- sc/inc/column.hxx	25 Jan 2007 11:02:48 -0000	1.18
++++ sc/inc/column.hxx	16 Oct 2007 00:43:54 -0000
+@@ -209,8 +209,6 @@
+ 									SCROW nEndRow = MAXROW ) const;
+ 	BOOL		IsAllAttrEqual( const ScColumn& rCol, SCROW nStartRow, SCROW nEndRow ) const;
+ 
+-	BOOL		TestInsertCol( SCROW nStartRow, SCROW nEndRow) const;
+-	BOOL		TestInsertRow( SCSIZE nSize ) const;
+ 	void		InsertRow( SCROW nStartRow, SCSIZE nSize );
+ 	void		DeleteRow( SCROW nStartRow, SCSIZE nSize );
+ 	void		DeleteRange( SCSIZE nStartIndex, SCSIZE nEndIndex, USHORT nDelFlag );
+Index: sc/source/core/data/attarray.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/attarray.cxx,v
+retrieving revision 1.23
+diff -u -r1.23 attarray.cxx
+--- sc/source/core/data/attarray.cxx	27 Feb 2007 11:59:23 -0000	1.23
++++ sc/source/core/data/attarray.cxx	16 Oct 2007 00:43:55 -0000
+@@ -2016,57 +2016,6 @@
+ 	return bEqual;
+ }
+ 
+-
+-BOOL ScAttrArray::TestInsertCol( SCROW nStartRow, SCROW nEndRow) const
+-{
+-	//	horizontal zusammengefasste duerfen nicht herausgeschoben werden
+-	//	(ob die ganze Zusammenfassung betroffen ist, ist hier nicht zu erkennen)
+-
+-	BOOL bTest = TRUE;
+-	if (!IsEmpty())
+-	{
+-		SCSIZE nIndex = 0;
+-		if ( nStartRow > 0 )
+-			Search( nStartRow, nIndex );
+-
+-		for ( ; nIndex < nCount; nIndex++ )
+-		{
+-			if ( ((const ScMergeFlagAttr&)pData[nIndex].pPattern->
+-						GetItem(ATTR_MERGE_FLAG)).IsHorOverlapped() )
+-			{
+-				bTest = FALSE;						// darf nicht herausgeschoben werden
+-				break;
+-			}
+-			if ( pData[nIndex].nRow >= nEndRow )	// Ende des Bereichs
+-				break;
+-		}
+-	}
+-	return bTest;
+-}
+-
+-
+-BOOL ScAttrArray::TestInsertRow( SCSIZE nSize ) const
+-{
+-	//	wenn die erste herausgeschobene Zeile vertikal ueberlappt ist,
+-	//	wuerde eine kaputte Zusammenfassung uebrigbleiben
+-
+-	if (pData)
+-	{
+-		//	MAXROW + 1 - nSize	= erste herausgeschobene Zeile
+-
+-		SCSIZE nFirstLost = nCount-1;
+-        while ( nFirstLost && pData[nFirstLost-1].nRow >= sal::static_int_cast<SCROW>(MAXROW + 1 - nSize) )
+-			--nFirstLost;
+-
+-		if ( ((const ScMergeFlagAttr&)pData[nFirstLost].pPattern->
+-							GetItem(ATTR_MERGE_FLAG)).IsVerOverlapped() )
+-			return FALSE;
+-	}
+-
+-	return TRUE;
+-}
+-
+-
+ void ScAttrArray::InsertRow( SCROW nStartRow, SCSIZE nSize )
+ {
+ 	if (!pData)
+Index: sc/source/core/data/column.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/column.cxx,v
+retrieving revision 1.23
+diff -u -r1.23 column.cxx
+--- sc/source/core/data/column.cxx	6 Sep 2007 14:17:53 -0000	1.23
++++ sc/source/core/data/column.cxx	16 Oct 2007 00:43:55 -0000
+@@ -1218,59 +1218,6 @@
+ 	}
+ }
+ 
+-
+-BOOL ScColumn::TestInsertCol( SCROW nStartRow, SCROW nEndRow) const
+-{
+-	if (!IsEmpty())
+-	{
+-		BOOL bTest = TRUE;
+-		if (pItems)
+-			for (SCSIZE i=0; (i<nCount) && bTest; i++)
+-				bTest = ((pItems[i].nRow < nStartRow) && (pItems[i].nRow > nEndRow))
+-						|| !CellVisible(pItems[i].pCell);
+-
+-		//	AttrArray testet nur zusammengefasste
+-
+-		if ((bTest) && (pAttrArray))
+-			bTest = pAttrArray->TestInsertCol(nStartRow, nEndRow);
+-
+-		//!		rausgeschobene Attribute bei Undo beruecksichtigen
+-
+-		return bTest;
+-	}
+-	else
+-		return TRUE;
+-}
+-
+-
+-BOOL ScColumn::TestInsertRow( SCSIZE nSize ) const
+-{
+-    //  AttrArray only looks for merged cells
+-
+-	if ( pItems && nCount )
+-        return ( nSize <= sal::static_int_cast<SCSIZE>(MAXROW) &&
+-                 pItems[nCount-1].nRow <= MAXROW-(SCROW)nSize && pAttrArray->TestInsertRow( nSize ) );
+-	else
+-		return pAttrArray->TestInsertRow( nSize );
+-
+-#if 0
+-	//!		rausgeschobene Attribute bei Undo beruecksichtigen
+-
+-	if ( nSize > static_cast<SCSIZE>(MAXROW) )
+-		return FALSE;
+-
+-	SCSIZE nVis = nCount;
+-	while ( nVis && !CellVisible(pItems[nVis-1].pCell) )
+-		--nVis;
+-
+-	if ( nVis )
+-		return ( pItems[nVis-1].nRow <= MAXROW-nSize );
+-	else
+-		return TRUE;
+-#endif
+-}
+-
+-
+ void ScColumn::InsertRow( SCROW nStartRow, SCSIZE nSize )
+ {
+ 	pAttrArray->InsertRow( nStartRow, nSize );
+Index: sc/source/core/data/table2.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table2.cxx,v
+retrieving revision 1.37
+diff -u -r1.37 table2.cxx
+--- sc/source/core/data/table2.cxx	27 Feb 2007 12:09:28 -0000	1.37
++++ sc/source/core/data/table2.cxx	16 Oct 2007 00:43:56 -0000
+@@ -118,9 +118,6 @@
+ 	if ( nStartCol==0 && nEndCol==MAXCOL && pOutlineTable )
+ 		bTest = pOutlineTable->TestInsertRow(nSize);
+ 
+-	for (SCCOL i=nStartCol; (i<=nEndCol) && bTest; i++)
+-		bTest = aCol[i].TestInsertRow( nSize );
+-
+ 	return bTest;
+ }
+ 
+@@ -184,9 +181,6 @@
+ 	if ( nSize > static_cast<SCSIZE>(MAXCOL) )
+ 		bTest = FALSE;
+ 
+-	for (SCCOL i=MAXCOL; (i+static_cast<SCCOL>(nSize)>MAXCOL) && bTest; i--)
+-		bTest = aCol[i].TestInsertCol(nStartRow, nEndRow);
+-
+ 	return bTest;
+ }
+ 
+Index: sc/source/ui/docshell/docfunc.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/docshell/docfunc.cxx,v
+retrieving revision 1.66
+diff -u -r1.66 docfunc.cxx
+--- sc/source/ui/docshell/docfunc.cxx	27 Jun 2007 12:45:25 -0000	1.66
++++ sc/source/ui/docshell/docfunc.cxx	16 Oct 2007 00:43:56 -0000
+@@ -59,6 +59,7 @@
+ #endif
+ 
+ #include <list>
++#include <queue>
+ 
+ #include "docfunc.hxx"
+ 
+@@ -1271,7 +1272,6 @@
+ 	if (eCmd==INS_CELLSRIGHT)
+ 		nMergeTestEndX = MAXCOL;
+ 
+-	BOOL bCanDo = TRUE;
+ 	BOOL bNeedRefresh = FALSE;
+ 
+ 	SCCOL nEditTestEndX = (eCmd==INS_INSCOLS) ? MAXCOL : nMergeTestEndX;
+@@ -1284,44 +1284,6 @@
+ 		return FALSE;
+ 	}
+ 
+-	if (pDoc->HasAttrib( nMergeTestStartX,nMergeTestStartY,nTab,
+-							nMergeTestEndX,nMergeTestEndY,nTab,
+-							HASATTR_MERGED | HASATTR_OVERLAPPED ))
+-	{
+-		if (eCmd==INS_CELLSRIGHT)
+-			bNeedRefresh = TRUE;
+-
+-		SCCOL nMergeStartX = nMergeTestStartX;
+-		SCROW nMergeStartY = nMergeTestStartY;
+-		SCCOL nMergeEndX   = nMergeTestEndX;
+-		SCROW nMergeEndY   = nMergeTestEndY;
+-
+-		pDoc->ExtendMerge( nMergeStartX, nMergeStartY, nMergeEndX, nMergeEndY, nTab );
+-		pDoc->ExtendOverlapped( nMergeStartX, nMergeStartY, nMergeEndX, nMergeEndY, nTab );
+-		if ( nMergeStartX != nMergeTestStartX || nMergeStartY != nMergeTestStartY ||
+-			 nMergeEndX   != nMergeTestEndX   || nMergeEndY   != nMergeTestEndY )
+-			bCanDo = FALSE;
+-
+-		//!		? nur Start testen ?
+-
+-		if (!bCanDo)
+-			if ( eCmd==INS_INSCOLS || eCmd==INS_INSROWS )
+-				if ( nMergeStartX == nMergeTestStartX && nMergeStartY == nMergeTestStartY )
+-				{
+-					bCanDo = TRUE;
+-//					bNeedRefresh = TRUE;
+-				}
+-	}
+-
+-	if (!bCanDo)
+-	{
+-		//!			auf Verschieben (Drag&Drop) zurueckfuehren !!!
+-		//	"Kann nicht in zusammengefasste Bereiche einfuegen"
+-		if (!bApi)
+-			rDocShell.ErrorMessage(STR_MSSG_INSERTCELLS_0);
+-		return FALSE;
+-	}
+-
+ 	//
+ 	//		ausfuehren
+ 	//
+@@ -1342,6 +1304,30 @@
+ 		pDoc->BeginDrawUndo();
+ 	}
+ 
++    // #i8302 : we unmerge overwhelming ranges, before insertion
++    // all the actions are put in the same ListAction
++    String aUndo = ScGlobal::GetRscString( STR_UNDO_RESIZEMATRIX );
++    if (bRecord)
++      rDocShell.GetUndoManager()->EnterListAction( aUndo, aUndo );
++
++    std::queue<ScRange> qRange;
++    for (SCCOL i = nStartCol; i <= nEndCol; i++)
++        for (SCCOL j = nStartRow; j <= nEndRow; j++) 
++        {
++            ScRange rrRange (i, j, nTab);
++            pDoc->ExtendOverlapped(rrRange);
++            pDoc->ExtendMerge(rrRange);
++            // we can have merged range in the selection, 
++            // so we take only those which are in the way
++            if (rrRange.aStart.Col() < nStartCol || rrRange.aEnd.Col() > nEndCol || 
++                rrRange.aStart.Row() < nStartRow || rrRange.aEnd.Row() > nEndRow) 
++            {
++                qRange.push(rrRange);
++                UnmergeCells(rrRange, TRUE, TRUE);
++            }
++        }
++
++
+ 	switch (eCmd)
+ 	{
+ 		case INS_CELLSDOWN:
+@@ -1370,6 +1356,7 @@
+ 			nPaintEndX = MAXCOL;
+ 			nPaintFlags |= PAINT_TOP;
+ 			break;
++		case INS_NONE:
+ 		default:
+ 			DBG_ERROR("Falscher Code beim Einfuegen");
+ 			bSuccess = FALSE;
+@@ -1378,6 +1365,28 @@
+ 
+ 	if ( bSuccess )
+ 	{
++        // #i8302 : we remerge overwhelming ranges, with the new part inserted
++        while( !qRange.empty() ) 
++        {
++            ScRange rrRange = qRange.front();
++            switch (eCmd)
++            {
++                case INS_CELLSDOWN:
++                case INS_INSROWS:
++                    rrRange.aEnd.IncRow(static_cast<SCsCOL>(nEndRow-nStartRow+1));
++                    break;
++                case INS_CELLSRIGHT:
++                case INS_INSCOLS:
++                    rrRange.aEnd.IncCol(static_cast<SCsCOL>(nEndCol-nStartCol+1));
++                    break;
++                case INS_NONE:
++                default:
++                    break;
++            }
++            MergeCells(rrRange, FALSE, TRUE, TRUE, FALSE);
++            qRange.pop();
++        }
++
+ 		if ( bRecord )
+ 		{
+ 			rDocShell.GetUndoManager()->AddUndoAction(
+@@ -1416,6 +1425,8 @@
+ 								 nPaintEndX,   nPaintEndY,   nEndTab,
+ 								 nPaintFlags,  nExtFlags);
+ 		aModificator.SetDocumentModified();
++        if (bRecord)
++            rDocShell.GetUndoManager()->LeaveListAction();
+ 
+ //!		pDocSh->UpdateOle(GetViewData());	// muss an der View bleiben
+ //!		CellContentChanged();				// muss an der View bleiben
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/javaversion.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/javaversion.diff
@@ -0,0 +1,40 @@
+--- setup_native/source/java/javaversion.dat.orig	2008-03-23 11:21:38.656250000 +0100
++++ setup_native/source/java/javaversion.dat	2008-03-23 11:22:30.078125000 +0100
+@@ -34,26 +34,26 @@
+ #*************************************************************************
+ 
+ # GUI String in the installer ("Java Runtime Environment (${JAVAVERSION})")
+-JAVAVERSION=Java 6 Update 4
++JAVAVERSION=Java 6 Update 5
+ 
+ # Windows (scp2 and downloadtemplate.nsi)
+-WINDOWSJAVAFILENAME=jre-6u4-windows-i586-p.exe
+-WINDOWSJAVAREGISTRYENTRY=1.6.0_04
++WINDOWSJAVAFILENAME=jre-6u5-windows-i586-p.exe
++WINDOWSJAVAREGISTRYENTRY=1.6.0_05
+ 
+ # Linux (scp2)
+-LINUXJAVAFILENAME=jre-6u4-linux-i586.rpm
++LINUXJAVAFILENAME=jre-6u5-linux-i586.rpm
+ # Linux (rpmUnit.xml, rpm -qp <filename> )
+-LINUXJAVANAME=jre-1.6.0_04-fcs
++LINUXJAVANAME=jre-1.6.0_05-fcs
+ 
+ # Solaris Sparc (scp2)
+-SOLSJAVARTPACKED=SUNWj6rt_1_6_0_04_sparc.tar.gz
+-SOLSJAVACFGPACKED=SUNWj6cfg_1_6_0_04_sparc.tar.gz
+-SOLSJAVAMANPACKED=SUNWj6man_1_6_0_04_sparc.tar.gz
++SOLSJAVARTPACKED=SUNWj6rt_1_6_0_05_sparc.tar.gz
++SOLSJAVACFGPACKED=SUNWj6cfg_1_6_0_05_sparc.tar.gz
++SOLSJAVAMANPACKED=SUNWj6man_1_6_0_05_sparc.tar.gz
+ 
+ # Solaris x86 (scp2)
+-SOLIJAVARTPACKED=SUNWj6rt_1_6_0_04_x86.tar.gz
+-SOLIJAVACFGPACKED=SUNWj6cfg_1_6_0_04_x86.tar.gz
+-SOLIJAVAMANPACKED=SUNWj6man_1_6_0_04_x86.tar.gz
++SOLIJAVARTPACKED=SUNWj6rt_1_6_0_05_x86.tar.gz
++SOLIJAVACFGPACKED=SUNWj6cfg_1_6_0_05_x86.tar.gz
++SOLIJAVAMANPACKED=SUNWj6man_1_6_0_05_x86.tar.gz
+ 
+ # Solaris (pkgUnix.xml, needs only to be changed in major changes)
+ SOLARISJAVART=SUNWj6rt
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-print-lines.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-print-lines.diff
@@ -0,0 +1,18 @@
+Index: sc/source/core/data/column2.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/column2.cxx,v
+retrieving revision 1.29
+diff -u -p -r1.29 column2.cxx
+--- sc/source/core/data/column2.cxx	10 May 2007 16:43:22 -0000	1.29
++++ sc/source/core/data/column2.cxx	8 Jan 2008 10:43:24 -0000
+@@ -1803,6 +1803,10 @@ BOOL ScColumn::IsEmpty() const
+ 
+ BOOL ScColumn::IsEmptyBlock(SCROW nStartRow, SCROW nEndRow) const
+ {
++	Rectangle aRect;
++	if (pAttrArray->HasLines(nStartRow, nEndRow, aRect, TRUE, TRUE))
++		return FALSE;
++
+ 	if ( nCount == 0 || !pItems )
+ 		return TRUE;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-cellsuno-avoid-early-destruction.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-cellsuno-avoid-early-destruction.diff
@@ -0,0 +1,14 @@
+--- sc/source/ui/unoobj/cellsuno.cxx.old	2008-05-26 19:41:53.000000000 +0200
++++ sc/source/ui/unoobj/cellsuno.cxx	2008-05-28 16:28:53.000000000 +0200
+@@ -1531,9 +1531,10 @@ void ScCellRangesBase::Notify( SfxBroadc
+         if ( aRanges.UpdateReference( rRef.GetMode(), pDoc, rRef.GetRange(),
+ 									rRef.GetDx(), rRef.GetDy(), rRef.GetDz() ) )
+         {
++            uno::Reference<uno::XInterface> xInterface((cppu::OWeakObject*)this, uno::UNO_QUERY);
+             if (rRef.GetMode() == URM_INSDEL &&
+                 aRanges.Count() == 1 &&
+-                ScTableSheetObj::getImplementation( (cppu::OWeakObject*)this ))
++                ScTableSheetObj::getImplementation( xInterface ))
+             {
+                 // #101755#; the range size of a sheet does not change
+                 ScRange* pR = aRanges.First();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-store.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-store.diff
@@ -0,0 +1,4 @@
+--- store/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ store/prj/tests.lst	2007-09-07 09:10:57.000000000 +0200
+@@ -0,0 +1 @@
++#does not build s8   store\workben                                      nmake - all s8_workben NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layoutdialogs-toolkit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layoutdialogs-toolkit.diff
@@ -0,0 +1,12433 @@
+cvs diff: Diffing toolkit
+cvs diff: Diffing toolkit/doc
+cvs diff: Diffing toolkit/doc/layout
+Index: toolkit/doc/layout/ChangeLog
+===================================================================
+RCS file: /cvs/gsl/toolkit/doc/layout/ChangeLog,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/doc/layout/ChangeLog	6 Mar 2008 11:34:46 -0000	1.2
++++ toolkit/doc/layout/ChangeLog	20 Mar 2008 11:56:24 -0000	1.2.6.1
+@@ -1,3 +1,300 @@
++2008-03-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxwindow.cxx: Fix compile warning.
++
++2008-03-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* util/makefile.mk: Revert obsolete VERSION addition.
++
++2008-03-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/controls/dialogcontrol.cxx,
++	source/controls/unocontrol.cxx, source/helper/tkresmgr.cxx,
++	util/defs/wntmsci11: Revert weird initial patch.
++
++2008-03-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO: Doc update.
++
++2008-03-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, source/awt/vclxbutton.cxx,
++	source/vclcompat/wbutton.cxx, workben/layout/recover.xml: Implement
++	MoreButton.  TODO: images.
++
++2008-03-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/vclcompat/wbutton.cxx: Remove redraw cruft, rename
++	redrawAlready to redraw.
++
++2008-03-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, source/vclcompat/wbutton.cxx: Step
++	towards cleaner redraw.
++
++2008-03-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, source/awt/vclxbutton.cxx,
++	source/awt/vclxbutton.hxx, source/layout/helper.cxx,
++	source/vclcompat/wbutton.cxx, workben/layout/recover.cxx,
++	workben/layout/recover.hxx: Extract AdvancedButton implementation
++	from recover.cxx into new widget.
++
++2008-03-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/recover.cxx, workben/layout/recover.hxx,
++	workben/layout/recover.xml: Update recover dialog, make
++	advanced/simple switching work.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/zoom.cxx: In test mode, enable everything.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/localize.sdf: Manually add new translatable strings
++	and translations for de, nl.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/zoom.xml: Update zoom to have hbox of Zoom factor
++	and View layout alongside each other.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/zoom.cxx, workben/layout/zoom.hxx,
++	workben/layout/zoom.xml: Merge upstream's zoom.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/vclcompat/wbutton.cxx, source/vclcompat/wrapper.hxx: 
++	Nitpick, debugging aid.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/vclcompat/wrapper.cxx: Implement
++	FixedLine.IsEnabled().
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* util/makefile.mk: Build lib name fix.
++
++2008-03-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, source/vclcompat/wcontainer.cxx,
++	workben/layout/recover.cxx, workben/layout/recover.hxx,
++	workben/layout/recover.xml: Complete VBox/HBox wrappers.  Not use
++	them in recover, spacing still wrong.
++
++2008-03-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, workben/layout/recover.cxx,
++	workben/layout/recover.hxx, workben/layout/recover.xml: More
++	recovery dialog mockuping.
++
++2008-03-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/layout/box-base.cxx: Implement visibility of
++	elements/containers better.
++
++2008-03-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, source/layout/helper.cxx,
++	source/layout/import.cxx, source/layout/proplist.cxx,
++	source/vclcompat/wbutton.cxx, source/vclcompat/wfield.cxx,
++	source/vclcompat/wrapper.cxx, source/vclcompat/wrapper.hxx: 
++	Implement FixedImage.  Needed for recovery dialog.
++
++2008-02-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/layout/box-base.hxx, workben/layout/editor.cxx: Give
++	ChildData virtual distructor.
++
++2008-02-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, source/layout/helper.cxx,
++	source/vclcompat/makefile.mk, source/vclcompat/wrapper.cxx,
++	util/makefile.mk, workben/layout/makefile.mk,
++	workben/layout/recover.cxx, workben/layout/recover.hxx,
++	workben/layout/recover.xml, workben/layout/test.cxx: Stab at new
++	recover dialog.
++
++2008-02-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/editor.cxx: Do not clear fresh container.  Disable
++	debug printing.
++
++2008-02-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, workben/layout/localize.sdf: Fix localize.sdf for
++	wordcount.
++
++2008-02-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-pre.hxx, source/layout/dialogbuttonhbox.cxx: Fix
++	ID for displaying dialogs.
++
++2008-02-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, workben/layout/localize.sdf,
++	workben/layout/wordcount.xml, workben/layout/zoom.xml: Add strings
++	for all languages.
++
++2008-02-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, source/awt/vclxsplitter.cxx,
++	source/awt/vclxsplitter.hxx, source/awt/vclxtabcontrol.cxx,
++	source/awt/vclxtabcontrol.hxx, source/layout/box-base.cxx,
++	source/layout/box-base.hxx, source/layout/box.cxx,
++	source/layout/box.hxx, source/layout/container.cxx,
++	source/layout/dialogbuttonhbox.cxx,
++	source/layout/dialogbuttonhbox.hxx, source/layout/factory.cxx,
++	source/layout/flow.cxx, source/layout/helper.cxx,
++	source/layout/import.hxx, source/layout/makefile.mk,
++	source/layout/proplist.cxx, source/layout/root.cxx,
++	source/layout/table.cxx, source/layout/table.hxx,
++	source/layout/timer.cxx, source/vclcompat/wcontainer.cxx,
++	source/vclcompat/wfield.cxx, source/vclcompat/wrapper.cxx: Clean-up
++	code duplication from layout: new Box_Base class implements
++	addChild, removeChild, getChildren, getChildProperties for Box,
++	Table, VCLXSplitter, VCLXTabControl.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, source/layout/root.cxx: Document more fixmes.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, source/layout/proplist.cxx: Remove m237
++	workaround.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/layout/helper.cxx: More comment cleanups.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxtabcontrol.cxx, source/layout/box.cxx,
++	source/layout/container.cxx, source/vclcompat/wrapper.cxx: 
++	Commented-out code cleanups.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, inc/layout/layoutcore.hxx,
++	source/awt/forward.hxx, source/awt/vclxbutton.cxx,
++	source/awt/vclxbutton.hxx, source/awt/vclxdialog.cxx,
++	source/awt/vclxdialog.hxx, source/awt/vclxfixedline.cxx,
++	source/awt/vclxfixedline.hxx, source/awt/vclxscroller.cxx,
++	source/awt/vclxscroller.hxx, source/awt/vclxsplitter.cxx,
++	source/awt/vclxsplitter.hxx, source/awt/vclxtabcontrol.cxx,
++	source/awt/vclxtabcontrol.hxx, source/layout/bin.cxx,
++	source/layout/bin.hxx, source/layout/box.cxx,
++	source/layout/box.hxx, source/layout/container.cxx,
++	source/layout/container.hxx, source/layout/dialogbuttonhbox.cxx,
++	source/layout/dialogbuttonhbox.hxx, source/layout/factory.cxx,
++	source/layout/factory.hxx, source/layout/flow.cxx,
++	source/layout/flow.hxx, source/layout/helper.cxx,
++	source/layout/helper.hxx, source/layout/import.cxx,
++	source/layout/import.hxx, source/layout/makefile.mk,
++	source/layout/precompiled_xmlscript.hxx,
++	source/layout/proplist.cxx, source/layout/proplist.hxx,
++	source/layout/root.cxx, source/layout/root.hxx,
++	source/layout/table.cxx, source/layout/table.hxx,
++	source/layout/timer.cxx, source/layout/timer.hxx,
++	source/layout/translate.cxx, source/layout/translate.hxx,
++	source/vclcompat/makefile.mk, source/vclcompat/wbutton.cxx,
++	source/vclcompat/wcontainer.cxx, source/vclcompat/wfield.cxx,
++	source/vclcompat/wrapper.cxx, source/vclcompat/wrapper.hxx,
++	workben/layout/editor.cxx, workben/layout/editor.hxx,
++	workben/layout/makefile.mk, workben/layout/simple-paragraph.cxx,
++	workben/layout/simple-paragraph.hxx, workben/layout/test.cxx,
++	workben/layout/uno.hxx, workben/layout/zoom_def.hxx: Add licence
++	headers.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/layout/meekfile.mk: Junk meekfile.mk
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO: Update TODO.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/toolkit/awt/vclxwindows.hxx, source/awt/vclxwindow.cxx,
++	source/awt/vclxwindows.cxx: Move VCLXScrollBar's getMinimumSize()
++	from VCLXWindow's switch to method.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/toolkit/awt/vclxwindows.hxx, source/awt/vclxwindow.cxx,
++	source/awt/vclxwindows.cxx: Move VCLXMessageBox's getMinimumSize()
++	from VCLXWindow's switch to method.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, inc/toolkit/awt/vclxtopwindow.hxx,
++	source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
++	source/awt/vclxtopwindow.cxx: Remove code duplication from
++	VCLXDialog.
++
++2008-02-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxdialog.cxx, source/vclcompat/wbutton.cxx,
++	source/vclcompat/wcontainer.cxx, source/vclcompat/wrapper.hxx: 
++	Comment cleanup.
++
++2008-02-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, source/layout/helper.hxx,
++	workben/layout/editor.cxx, workben/layout/wordcountdialog.cxx: Fix
++	remaining SUN warnings.
++
++2008-02-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/awt/vclxfixedline.hxx,
++	source/layout/byteseq.cxx, source/layout/helper.hxx,
++	source/layout/import.cxx, source/layout/makefile.mk,
++	source/layout/proplist.cxx, source/layout/translate.hxx,
++	source/vclcompat/wbutton.cxx, source/vclcompat/wcontainer.cxx,
++	source/vclcompat/wfield.cxx, source/vclcompat/wrapper.cxx,
++	source/vclcompat/wrapper.hxx, workben/layout/editor.cxx: Fix some
++	sunstudio12 warnings.
++
++2008-02-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* doc/layout/TODO, source/awt/makefile.mk,
++	source/awt/vclxbutton.cxx, source/awt/vclxbutton.hxx,
++	source/awt/vclxproxy.cxx, source/awt/vclxproxy.hxx,
++	source/layout/helper.cxx: Junk VCLXProxy.
++
++2008-02-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/toolkit/awt/vclxwindows.hxx,
++	inc/toolkit/helper/listenermultiplexer.hxx,
++	source/awt/vclxbutton.cxx, source/awt/vclxbutton.hxx,
++	source/awt/vclxtabcontrol.cxx, source/awt/vclxtabcontrol.hxx,
++	source/layout/helper.cxx: Hello world on AWTVCLXCancelButton() label
++	and images.
++
++2008-02-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* .gitignore, source/awt/forward.hxx, source/awt/makefile.mk,
++	source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
++	source/awt/vclxfixedline.cxx, source/awt/vclxfixedline.hxx,
++	source/awt/vclxscroller.cxx, source/awt/vclxscroller.hxx,
++	source/awt/vclxsplitter.cxx, source/awt/vclxsplitter.hxx,
++	source/awt/vclxtabcontrol.cxx, source/awt/vclxtabcontrol.hxx,
++	source/layout/makefile.mk, workben/layout/localize-de.sdf,
++	workben/layout/localize-nl.sdf: Cleanup of includes, namespace in
++	headers in awt.
++
+ 2008-02-11  Jan Nieuwenhuizen <janneke@gnu.org>
+ 
+ 	* prj/build.lst: Have workspace depend on util, fixes parallel build
+Index: toolkit/doc/layout/TODO
+===================================================================
+RCS file: /cvs/gsl/toolkit/doc/layout/TODO,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/doc/layout/TODO	6 Mar 2008 11:35:44 -0000	1.2
++++ toolkit/doc/layout/TODO	20 Mar 2008 11:56:24 -0000	1.2.6.1
+@@ -1,14 +1,32 @@
+ -*-outline-*-
+ 
+ * CWS
+-** 3.0 feature freeze: March 6
++** Move everything & development into new layout-dialogs CWS
++
+ ** cleanups
+-*** remove stuff
+-**** vclxproxy -> move into source/awt widgets 
+-**** toplevel dialog/container?
++*** layout/import.hxx: what's this generator stuff?
++#if 0
++// generator
++class Widget
++*** root.hxx:
++/*
++  TODO: (ricardo) I think we should cut on LayoutRoot, stripping out its widget
++  proxy interface (just make it return the root widget).
++
++*** root.cxx:
++LayoutWidget::~LayoutWidget()
++{
++    /* should we dispose of the references...? */
++    // at least of its children... Or should root?
++*** root.cxx:
++LayoutRoot::~LayoutRoot()
++{
++// TODO: we want to delete the top level LayoutWidget...
++
+ 
+ * portability
+-** --enable-layout does not compile on Sun
++** --enable-layout does not compile on Sun?
++[SunStudio12 on Linux works...]
+ 
+ TODO: Try not including layout-pre.hxx twice, but use
+ layout-pre-header.hxx and layout-pre-source.hxx (both include an
+@@ -36,20 +54,40 @@ un-multiple-inclusion-shielded layout-pr
+     aUserEdit . Disable ( ) ;
+     return 0 ;
+     }
+-** LayoutDialogs compilation errors on Windows (--disable-layout?)
++
++** LayoutDialogs compilation errors on Windows
+ in VCL headers there, need to include more headers to also get stuff like HWND defined.
+ 
+ * code
+ ** features
++*** Symbols on MoreButton/AdvancedButton?
++
++*** support more widgets (as necessary)
++**** see toolkit/source/awt/vclxtoolkit.cxx and svtools/source/uno/unoiface.cxx
++**** SubDialog
++**** Pull-down menu
++**** embed custom widget
++**** embed old .src TAB
++**** have a LAYOUT TAB be embedded in an old .src dialog
++**** FileControl?
++**** roadmap?
++**** datefield?
++**** patternfield?
++**** patternbox?
++**** dockingarea?
++**** errorbox?
++**** groupbox?
++**** menubutton?
++**** messbox?
++**** simpleanimation?
++
+ *** support cnt:cnt:? 
+ *** support using label (verb) on yes/ok no/cancel buttons for some platforms
+ but keep using yes/no on Windows, eg?
+-*** remove -DTEST_LAYOUT=1 from util/makefile.mk
++*** remove -DTEST_LAYOUT=1 from util/makefile.mk?
+ 
+ ** fixes
+ *** mpRadioGroup HACK --> use radiogroup property
+-*** toolkit/source/awt/vclxwindow.cxx
+-   empty-out VCLXWindow::getMinimumSize
+ *** missing properties
+ 	'title' -> 'Set Zoom'
+ Missing prop Title
+@@ -62,9 +100,14 @@ Missing prop Default
+ *** Remove magic constants
+ fHorAlign = fVerAlign = 0.5; --> float const [CENTER?] = 0.5;
+ 
+-*** remove stuff?
++** include full translations
++*** zoom
++grep zoom.src svx/source/dialog/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "janneke\\vc\\layout-cws\\toolkit\\workben\\layout\\zoom.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/FL_\(ZOOM\)_label/FL_\1_text/' -e 's/\t_label/\tRID_SVXDLG_ZOOM_title/'
++**** done, except for View Layout update: no strings in localize.sdf yet,
++     must redo.
++*** wordcount
++grep wordcountdialog.src sw/source/ui/dialog/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "janneke\\vc\\layout-cws\\toolkit\\workben\\layout\\workben.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/FL_\([A-Z]*\)_label/FL_\1_text/' -e 's/\t_label/\tDLG_WORDCOUNT_title/'s
+ 
+-*** box.hxx: use vbox/hbox polymorphism instead of if (mbHorizontal)
+ 
+ * i18n
+     + forget java property files nonsense
+@@ -102,13 +145,26 @@ m1'''': c93389f7
+ ** Zoom dialog
+ *** list of radio buttons indented: workben/zoom-indent.xml ?
+ ** Word Count dialog
+-** 'Format' dialog
++** Recover dialog (redesign)
++** pivotfilter dialog (Kohei?)
++** paragraph dialog
++
++
+ TODO
+ 
+ 
+ * play with / improve Ricardo's editor
+ ** broken after new uno registration
+-	+ this is not meant to be a production level tool, but still,
++
++   it barfs on
++   
++    void selectedWidget( Widget *pWidget )
++    {
++        clear();
++
++   it looks like a window is deleted twice.
++
++** this is not meant to be a production level tool, but still,
+ 	  it can be improved I think :-)
+ 
+ * improve Kohei's converter (poke him on IRC (afternoons) about this)
+cvs diff: Diffing toolkit/inc
+cvs diff: Diffing toolkit/inc/layout
+Index: toolkit/inc/layout/layout-post.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/layout/layout-post.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/inc/layout/layout-post.hxx	6 Mar 2008 11:37:06 -0000	1.2
++++ toolkit/inc/layout/layout-post.hxx	20 Mar 2008 11:56:24 -0000	1.2.6.1
+@@ -1,18 +1,65 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _LAYOUT_POST_HXX
+ #define _LAYOUT_POST_HXX
+ 
+ #if ENABLE_LAYOUT
+ 
++#undef AdvancedButton
++#undef Box
+ #undef Button
+ #undef CancelButton
++#undef CheckBox
++#undef Container
++#undef FixedImage
+ #undef FixedInfo
+ #undef FixedLine
+ #undef FixedText
+ #undef HelpButton
++#undef HBox
+ #undef MetricField
++#undef MoreButton
++#undef MultiLineEdit
+ #undef OKButton
++#undef ProgressBar
++#undef PushButton
+ #undef RadioButton
+ #undef SfxModalDialog
++#undef Table
++#undef VBox
+ 
+ #undef Window
+ 
+Index: toolkit/inc/layout/layout-pre.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/layout/layout-pre.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/inc/layout/layout-pre.hxx	6 Mar 2008 11:37:18 -0000	1.2
++++ toolkit/inc/layout/layout-pre.hxx	20 Mar 2008 11:56:25 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _LAYOUT_PRE_HXX
+ #define _LAYOUT_PRE_HXX
+ 
+@@ -13,16 +48,28 @@
+ //typedef layout::Dialog SfxModalDialog;
+ //typedef layout::FixedLine FixedLine;
+ 
++#define AdvancedButton layout::AdvancedButton
++#define Box layout::Box
+ #define Button layout::Button
+ #define CancelButton layout::CancelButton
++#define CheckBox layout::CheckBox
++#define Container layout::Container
++#define FixedImage layout::FixedImage
+ #define FixedInfo layout::FixedInfo
+ #define FixedLine layout::FixedLine
+ #define FixedText layout::FixedText
++#define HBox layout::HBox
+ #define HelpButton layout::HelpButton
+ #define MetricField layout::MetricField
++#define MoreButton layout::MoreButton
++#define MultiLineEdit layout::MultiLineEdit
+ #define OKButton layout::OKButton
++#define ProgressBar layout::ProgressBar
++#define PushButton layout::PushButton
+ #define RadioButton layout::RadioButton
+ #define SfxModalDialog layout::Dialog
++#define Table layout::Table
++#define VBox layout::VBox
+ 
+ /* FIXME: why are we defaulting to layout::Window?
+    /home/janneke/vc/ooo-build/build/hack/sw/source/ui/dialog/wordcountdialog.cxx:87: error: no matching function for call to 'layout::Dialog::Dialog(Window*&, const char [14], const char [7])'
+@@ -41,20 +88,29 @@
+  * but is not scalable. */
+ #ifdef _LAYOUT_POST_HXX
+ 
+-#ifdef _SVX_ZOOM_CXX
++#ifdef _SVX_RECOVER_CXX
+ #undef SfxModalDialog
+-#define SfxModalDialog( pParent, SVX_RES_RID ) layout::Dialog( pParent, "zoom.xml", "dialog" )
+-#define _SVX_ZOOM_HRC
+-#endif /* _SVX_ZOOM_CXX */
++// 3rd parameter must match ID in <modaldialog> "RID_SVXDLG_RECOVER", localize.sdf
++#define SfxModalDialog( pParent, SVX_RES_RID ) layout::Dialog( pParent, "recover.xml", "RID_SVXDLG_RECOVER" )
++//#define _SVX_RECOVER_HRC
++#endif /* _SVX_RECOVER_CXX */
+ 
+ #ifdef SW_WORDCOUNTDIALOG_HXX
+ #undef SfxModalDialog
+-#define SfxModalDialog( pParent, SW_RES_RID ) layout::Dialog( pParent, "wordcount.xml", "dialog" )
++// 3rd parameter must match ID in <modaldialog> "DLG_WORDCOUNT", localize.sdf
++#define SfxModalDialog( pParent, SW_RES_RID ) layout::Dialog( pParent, "wordcount.xml", "DLG_WORDCOUNT" )
+ #define SW_WORDCOUNTDIALOG_HRC
+ #endif /* SW_WORDCOUNTDIALOG_HXX */
+ 
++#ifdef _SVX_ZOOM_CXX
++#undef SfxModalDialog
++// 3rd parameter must match ID in <modaldialog> "RID_SVXDLG_ZOOM", localize.sdf
++#define SfxModalDialog( pParent, SVX_RES_RID ) layout::Dialog( pParent, "zoom.xml", "RID_SVXDLG_ZOOM" )
++#define _SVX_ZOOM_HRC
+ #endif /* _SVX_ZOOM_CXX */
+ 
++#endif /* _LAYOUT_POST_HXX */
++
+ #else /* !ENABLE_LAYOUT */
+ 
+ #define LAYOUT_PRE_POST
+Index: toolkit/inc/layout/layout.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/layout/layout.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/inc/layout/layout.hxx	6 Mar 2008 11:37:31 -0000	1.2
++++ toolkit/inc/layout/layout.hxx	28 Mar 2008 09:51:22 -0000	1.2.6.2
+@@ -1,10 +1,44 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _LAYOUT_HXX
+ #define _LAYOUT_HXX
+ 
+-#if ENABLE_LAYOUT
+-
+ #include <com/sun/star/uno/XInterface.hpp>
+ #include <com/sun/star/awt/XLayoutContainer.hpp>
++#include <com/sun/star/util/Color.hpp>
+ #include <tools/link.hxx>
+ #include <tools/string.hxx>
+ 
+@@ -16,6 +50,7 @@
+ #include <toolkit/dllapi.h>
+ 
+ class Window;
++class Image;
+ 
+ namespace layout
+ {
+@@ -28,32 +63,22 @@ class TOOLKIT_DLLPUBLIC Context
+ {
+     ContextImpl *pImpl;
+ public:
+-    Context( const char *pPath );
++    Context( char const* pPath );
+     ~Context();
+-    PeerHandle GetPeerHandle( const char *pId, sal_uInt32 nId = 0 ) const;
++    PeerHandle GetPeerHandle( char const* pId, sal_uInt32 nId = 0 ) const;
+     void setToplevel( PeerHandle xToplevel );
+     PeerHandle getToplevel();
+     PeerHandle getRoot();
+ };
+ 
+-class ImageImpl;
+-class TOOLKIT_DLLPUBLIC Image
+-{
+-    ImageImpl *pImpl;
+-public:
+-    Image( const char *pName );
+-    ~Image();
+-    ImageImpl &getImpl() const { return *pImpl; }
+-};
+-
+ // make declaring wrappers easier ...
+ #define DECL_CONSTRUCTORS(t,par,defaultWinBit) \
+     protected:                                 \
+         explicit t( WindowImpl *pImpl ) : \
+             par( pImpl ) {} \
+-        const char *GetUnoName() const; \
++        char const* GetUnoName() const; \
+     public: \
+-        t( Context *pCtx, const char *pId, sal_uInt32 nId = 0 ); \
++        t( Context *pCtx, char const* pId, sal_uInt32 nId = 0 ); \
+         t( Window *pParent, WinBits nStyle = defaultWinBit )
+ #define DECL_GET_IMPL(t) \
+         inline t##Impl &getImpl() const
+@@ -61,12 +86,12 @@ public:
+ // follows the VCL inheritance hierarchy ...
+ 
+ class WindowImpl;
+-class TOOLKIT_DLLPUBLIC TOOLKIT_DLLPUBLIC Window
++class TOOLKIT_DLLPUBLIC Window
+ {
+ protected:
+     WindowImpl *mpImpl;
+     static PeerHandle CreatePeer( Window *pParent, WinBits nStyle,
+-                                  const char *pName);
++                                  char const* pName);
+ public:
+     PeerHandle GetPeer();
+     Context *getContext();
+@@ -91,7 +116,7 @@ class TOOLKIT_DLLPUBLIC Control : public
+     DECL_GET_IMPL( Control );
+     DECL_CONSTRUCTORS( Control, Window, 0 );
+ public:
+-// void SetText( const String& rStr ); - can't do this here ...
++// void SetText( String const& rStr ); - can't do this here ...
+ };
+ 
+ class FixedLineImpl;
+@@ -100,6 +125,8 @@ class TOOLKIT_DLLPUBLIC FixedLine : publ
+     friend class FixedLineImpl;
+     DECL_GET_IMPL( FixedLine );
+     DECL_CONSTRUCTORS( FixedLine, Control, WB_HORZ );
++public:
++    bool IsEnabled();
+ };
+ 
+ class FixedTextImpl;
+@@ -109,7 +136,17 @@ class TOOLKIT_DLLPUBLIC FixedText : publ
+     DECL_GET_IMPL( FixedText );
+     DECL_CONSTRUCTORS( FixedText, Control, 0 );
+ public:
+-    void SetText( const String& rStr );
++    void SetText( String const& rStr );
++};
++
++class FixedImageImpl;
++class TOOLKIT_DLLPUBLIC FixedImage : public Control
++{
++    friend class FixedImageImpl;
++    DECL_GET_IMPL( FixedImage );
++    DECL_CONSTRUCTORS( FixedImage, Control, 0 );
++public:
++    void setImage( ::Image const& );
+ };
+ 
+ class FixedInfoImpl;
+@@ -120,6 +157,16 @@ class TOOLKIT_DLLPUBLIC FixedInfo : publ
+     DECL_CONSTRUCTORS( FixedInfo, FixedText, 0 );
+ };
+ 
++class ImageImpl;
++class TOOLKIT_DLLPUBLIC Image
++{
++    ImageImpl *pImpl;
++public:
++    Image( char const* pName );
++    ~Image();
++    ImageImpl &getImpl() const { return *pImpl; }
++};
++
+ class ButtonImpl;
+ class TOOLKIT_DLLPUBLIC Button : public Control
+ {
+@@ -127,11 +174,11 @@ class TOOLKIT_DLLPUBLIC Button : public 
+     DECL_GET_IMPL( Button );
+     DECL_CONSTRUCTORS( Button, Control, 0 );
+ public:
+-    void SetText( const String& rStr );
++    void SetText( String const& rStr );
+     BOOL SetModeImage( const Image& rImage );
+     void SetImageAlign( ImageAlign eAlign );
+ 
+-    void SetClickHdl( const Link& rLink );
++    void SetClickHdl( Link const& rLink );
+     virtual void Click() /* pure virtual? */;
+ };
+ 
+@@ -145,7 +192,7 @@ public:
+     BOOL IsChecked() const;
+ 
+     void Toggle();
+-    void SetToggleHdl( const Link& rLink );
++    void SetToggleHdl( Link const& rLink );
+ };
+ 
+ class TOOLKIT_DLLPUBLIC OKButton : public PushButton
+@@ -185,6 +232,27 @@ class TOOLKIT_DLLPUBLIC HelpButton : pub
+     DECL_CONSTRUCTORS( HelpButton, PushButton, 0 );
+ };
+ 
++class AdvancedButtonImpl;
++class TOOLKIT_DLLPUBLIC AdvancedButton : public PushButton
++{
++    DECL_CONSTRUCTORS( AdvancedButton, PushButton, 0 );
++    DECL_GET_IMPL( AdvancedButton );
++    
++    void AddAdvanced( Window* w );
++    void AddSimple( Window* w );
++    void RemoveAdvanced( Window* w );
++    void RemoveSimple( Window* w );
++};
++
++class MoreButtonImpl;
++class TOOLKIT_DLLPUBLIC MoreButton : public AdvancedButton
++{
++    DECL_CONSTRUCTORS( MoreButton, AdvancedButton, 0 );
++    DECL_GET_IMPL( MoreButton );
++    void AddWindow( Window* w );
++    void RemoveWindow( Window* w );
++};
++
+ class RadioButtonImpl;
+ class TOOLKIT_DLLPUBLIC RadioButton : public Button
+ {
+@@ -195,11 +263,11 @@ public:
+     BOOL IsChecked() const;
+ 
+     void Toggle();
+-    void SetToggleHdl( const Link& rLink );
++    void SetToggleHdl( Link const& rLink );
+ };
+ 
+ class CheckBoxImpl;
+-class TOOLKIT_DLLPUBLIC TOOLKIT_DLLPUBLIC CheckBox : public Button
++class TOOLKIT_DLLPUBLIC CheckBox : public Button
+ {
+     DECL_GET_IMPL( CheckBox );
+     DECL_CONSTRUCTORS( CheckBox, Button, 0 );
+@@ -208,7 +276,7 @@ public:
+     BOOL IsChecked() const;
+ 
+     void Toggle();
+-    void SetToggleHdl( const Link& rLink );
++    void SetToggleHdl( Link const& rLink );
+ };
+ 
+ class EditImpl;
+@@ -217,9 +285,9 @@ class TOOLKIT_DLLPUBLIC Edit : public Co
+     DECL_GET_IMPL( Edit );
+     DECL_CONSTRUCTORS( Edit, Control, WB_BORDER );
+ public:
+-    void SetText( const XubString& rStr ) const;
++    void SetText( XubString const& rStr ) const;
+     XubString GetText() const;
+-    void SetModifyHdl( const Link& rLink );
++    void SetModifyHdl( Link const& rLink );
+ };
+ 
+ class MultiLineEditImpl;
+@@ -267,7 +335,7 @@ class TOOLKIT_DLLPUBLIC NumericField : p
+ {
+     DECL_GET_IMPL( NumericField );
+ public:
+-    NumericField( Context *pCtx, const char *pId, sal_uInt32 nId = 0 );
++    NumericField( Context *pCtx, char const* pId, sal_uInt32 nId = 0 );
+     NumericField( Window *pParent, WinBits nStyle );
+ };
+ 
+@@ -294,7 +362,7 @@ class TOOLKIT_DLLPUBLIC MetricField : pu
+ {
+     DECL_GET_IMPL( MetricField );
+ public:
+-    MetricField( Context *pCtx, const char *pId, sal_uInt32 nId = 0 );
++    MetricField( Context *pCtx, char const* pId, sal_uInt32 nId = 0 );
+     MetricField( Window *pParent, WinBits nStyle );
+ };
+ 
+@@ -307,17 +375,17 @@ class TOOLKIT_DLLPUBLIC ComboBox : publi
+     DECL_CONSTRUCTORS( ComboBox, Edit, 0 );
+ 
+ public:
+-    USHORT InsertEntry( const XubString& rStr, USHORT nPos = COMBOBOX_APPEND );
+-    void RemoveEntry( const XubString& rStr );
++    USHORT InsertEntry( XubString const& rStr, USHORT nPos = COMBOBOX_APPEND );
++    void RemoveEntry( XubString const& rStr );
+     void RemoveEntry( USHORT nPos );
+     void Clear();
+ 
+-    USHORT GetEntryPos( const XubString& rStr ) const;
++    USHORT GetEntryPos( XubString const& rStr ) const;
+     XubString GetEntry( USHORT nPos ) const;
+     USHORT GetEntryCount() const;
+ 
+-    void SetClickHdl( const Link& rLink );
+-    void SetSelectHdl( const Link& rLink );
++    void SetClickHdl( Link const& rLink );
++    void SetSelectHdl( Link const& rLink );
+ };
+ 
+ #define LISTBOX_APPEND               ((USHORT)0xFFFF)
+@@ -328,25 +396,25 @@ class TOOLKIT_DLLPUBLIC ListBox : public
+     DECL_GET_IMPL( ListBox );
+     DECL_CONSTRUCTORS( ListBox, Control, WB_BORDER );
+ public:
+-    USHORT InsertEntry( const XubString& rStr, USHORT nPos = LISTBOX_APPEND );
++    USHORT InsertEntry( XubString const& rStr, USHORT nPos = LISTBOX_APPEND );
+ 
+-    void RemoveEntry( const XubString& rStr );
++    void RemoveEntry( XubString const& rStr );
+     void RemoveEntry( USHORT nPos );
+     void Clear();
+ 
+-    USHORT GetEntryPos( const XubString& rStr ) const;
++    USHORT GetEntryPos( XubString const& rStr ) const;
+     XubString GetEntry( USHORT nPos ) const;
+     USHORT GetEntryCount() const;
+ 
+-    void SelectEntry( const XubString& rStr, BOOL bSelect = TRUE );
++    void SelectEntry( XubString const& rStr, BOOL bSelect = TRUE );
+     void SelectEntryPos( USHORT nPos, BOOL bSelect = TRUE );
+ 
+     USHORT GetSelectEntryCount() const;
+     XubString GetSelectEntry( USHORT nSelIndex = 0 ) const;
+     USHORT GetSelectEntryPos( USHORT nSelIndex = 0 ) const;
+ 
+-    void SetSelectHdl( const Link& rLink );
+-    void SetClickHdl( const Link& rLink );
++    void SetSelectHdl( Link const& rLink );
++    void SetClickHdl( Link const& rLink );
+ };
+ 
+ class DialogImpl;
+@@ -356,11 +424,24 @@ class TOOLKIT_DLLPUBLIC Dialog : public 
+     void SetParent( Window *pParent );
+     void SetParent( ::Window *pParent );
+ public:
+-    Dialog( Window *pOptParent, const char *pXMLPath, const char *pId, sal_uInt32 nId = 0 );
+-    Dialog( ::Window *pOptParent, const char *pXMLPath, const char *pId, sal_uInt32 nId = 0 );
++    Dialog( Window *pOptParent, char const* pXMLPath, char const* pId, sal_uInt32 nId = 0 );
++    Dialog( ::Window *pOptParent, char const* pXMLPath, char const* pId, sal_uInt32 nId = 0 );
+     short Execute();
+     void EndDialog( long nResult = 0 );
+-    void SetText( const String& rStr );
++    void SetText( String const& rStr );
++};
++
++class ProgressBarImpl;
++class TOOLKIT_DLLPUBLIC ProgressBar : public Control
++{
++    DECL_GET_IMPL( ProgressBar );
++    DECL_CONSTRUCTORS( ProgressBar, Control, WB_BORDER );
++public:
++    void SetForegroundColor( css::util::Color color );
++    void SetBackgroundColor( css::util::Color color );
++    void SetValue( sal_Int32 i );
++    void SetRange( sal_Int32 min, sal_Int32 max );
++    sal_Int32 GetValue();
+ };
+ 
+ // -----------------------------------------------------------------
+@@ -371,9 +452,9 @@ class TOOLKIT_DLLPUBLIC Container
+ {
+ protected:
+     css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
+-    Container( const rtl::OUString &rName, sal_Int32 nBorder );
++    Container( rtl::OUString const& rName, sal_Int32 nBorder );
+ public:
+-    Container( const Context *pCtx, const char *pId );
++    Container( Context const* pCtx, char const* pId );
+ 
+     void Add( Window *pWindow );
+     void Add( Container *pContainer );
+@@ -385,6 +466,8 @@ public:
+     // besides we would need to keep track of children, uh
+ 
+     void ShowAll( bool bVisible );
++    void Show();
++    void Hide();
+ 
+     css::uno::Reference< css::awt::XLayoutContainer > getImpl()
+     { return mxContainer; }
+@@ -395,8 +478,7 @@ class TOOLKIT_DLLPUBLIC Table : public C
+ protected:
+     Table( sal_Int32 nBorder, sal_Int32 nColumns );
+ public:
+-    Table( const Context *pCtx, const char *pId )
+-        : Container( pCtx, pId ) {}
++    Table( Context const* pCtx, char const* pId );
+     void Add( Window *pWindow, bool bXExpand, bool bYExpand,
+               sal_Int32 nXSpan = 1, sal_Int32 nYSpan = 1 );
+     void Add( Container *pContainer, bool bXExpand, bool bYExpand,
+@@ -410,10 +492,9 @@ private:
+ class TOOLKIT_DLLPUBLIC Box : public Container
+ {
+ protected:
+-    Box( const rtl::OUString &rName, sal_Int32 nBorder, bool bHomogeneous );
++    Box( rtl::OUString const& rName, sal_Int32 nBorder, bool bHomogeneous );
+ public:
+-    Box( const Context *pCtx, const char *pId )
+-        : Container( pCtx, pId ) {}
++    Box( Context const* pCtx, char const* pId );
+     void Add( Window *pWindow, bool bExpand, bool bFill, sal_Int32 nPadding);
+     void Add( Container *pContainer, bool bExpand, bool bFill, sal_Int32 nPadding);
+ 
+@@ -425,18 +506,16 @@ private:
+ class TOOLKIT_DLLPUBLIC HBox : public Box
+ {
+ public:
+-    HBox( sal_Int32 nBorder, bool bHomogeneous )
+-        : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "hbox" ) ), nBorder, bHomogeneous ) {}
++    HBox( Context const* pCtx, char const* pId );
++    HBox( sal_Int32 nBorder, bool bHomogeneous );
+ };
+ class TOOLKIT_DLLPUBLIC VBox : public Box
+ {
+ public:
+-    VBox( sal_Int32 nBorder, bool bHomogeneous )
+-        : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "vbox" ) ), nBorder, bHomogeneous ) {}
++    VBox( Context const* pCtx, char const* pId );
++    VBox( sal_Int32 nBorder, bool bHomogeneous );
+ };
+ 
+ } // end namespace layout
+ 
+-#endif /* ENABLE_LAYOUT */
+-
+ #endif /* _LAYOUT_HXX */
+Index: toolkit/inc/layout/layoutcore.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/layout/layoutcore.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/inc/layout/layoutcore.hxx	6 Mar 2008 11:37:48 -0000	1.2
++++ toolkit/inc/layout/layoutcore.hxx	26 Mar 2008 13:11:40 -0000	1.2.6.2
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _LAYOUT_CORE_HXX_
+ #define _LAYOUT_CORE_HXX_
+ 
+@@ -33,15 +68,15 @@ css::uno::Reference< css::graphic::XGrap
+ namespace prophlp
+ {
+ // can we set properties on this handle ?
+-bool canHandleProps( const css::uno::Reference< css::uno::XInterface > &xRef );
++bool TOOLKIT_DLLPUBLIC canHandleProps( const css::uno::Reference< css::uno::XInterface > &xRef );
+ // if so which properties ?
+-css::uno::Reference< css::beans::XPropertySetInfo > queryPropertyInfo(
++css::uno::Reference< css::beans::XPropertySetInfo > TOOLKIT_DLLPUBLIC queryPropertyInfo(
+     const css::uno::Reference< css::uno::XInterface > &xRef );
+ // set / get ...
+-void setProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
++void TOOLKIT_DLLPUBLIC setProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
+                   const rtl::OUString &rName,
+                   css::uno::Any aValue );
+-css::uno::Any getProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
++css::uno::Any TOOLKIT_DLLPUBLIC getProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
+                            const rtl::OUString &rName );
+ } // namespace prophlp
+ } // namespace layoutimpl
+cvs diff: Diffing toolkit/inc/pch
+cvs diff: Diffing toolkit/inc/toolkit
+cvs diff: Diffing toolkit/inc/toolkit/awt
+Index: toolkit/inc/toolkit/awt/vclxtopwindow.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/toolkit/awt/vclxtopwindow.hxx,v
+retrieving revision 1.5
+retrieving revision 1.5.30.4
+diff -p -u -u -p -b -w -B -r1.5 -r1.5.30.4
+--- toolkit/inc/toolkit/awt/vclxtopwindow.hxx	14 Jan 2008 12:55:06 -0000	1.5
++++ toolkit/inc/toolkit/awt/vclxtopwindow.hxx	28 Mar 2008 13:04:27 -0000	1.5.30.4
+@@ -54,26 +54,56 @@
+ #include <osl/mutex.hxx>
+ #endif
+ 
++#include <cppuhelper/implbase2.hxx>
++
+ #include <toolkit/awt/vclxcontainer.hxx>
+ 
++typedef ::cppu::ImplHelper2 < ::com::sun::star::awt::XTopWindow,
++                              ::com::sun::star::awt::XSystemDependentWindowPeer
++                              > VCLXTopWindow_XBase;
++
++class TOOLKIT_DLLPUBLIC VCLXTopWindow_Base: public VCLXTopWindow_XBase
++{
++protected:
++  	::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar> mxMenuBar;
++
++	virtual ::vos::IMutex& GetMutexImpl() = 0;
++    virtual Window* GetWindowImpl() = 0;
++	virtual TopWindowListenerMultiplexer& GetTopWindowListenersImpl() = 0;
++
++public:
++    virtual ~VCLXTopWindow_Base();
++
++    // ::com::sun::star::awt::XSystemDependentWindowPeer
++    ::com::sun::star::uno::Any SAL_CALL getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XTopWindow
++    void SAL_CALL addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL toFront() throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL toBack() throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& xMenu ) throw(::com::sun::star::uno::RuntimeException);
++};
++
+ //	----------------------------------------------------
+ //	class VCLXTopWindow
+ //	----------------------------------------------------
+ 
+-class VCLXTopWindow :	public ::com::sun::star::awt::XTopWindow,
+-            public ::com::sun::star::awt::XSystemDependentWindowPeer,
++class VCLXTopWindow: public VCLXTopWindow_Base,
+ 						public VCLXContainer
+ {
+ private:
+-	::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar> mxMenuBar;
+     bool m_bWHWND;
++
++protected:
++    virtual vos::IMutex& GetMutexImpl();
++    virtual Window* GetWindowImpl();
++    virtual TopWindowListenerMultiplexer& GetTopWindowListenersImpl();
++
+ public:	
+ 	VCLXTopWindow(bool bWHWND = false);
+ 	~VCLXTopWindow();
+ 	
+-	// ::com::sun::star::awt::XSystemDependendtWindowPeer
+-    ::com::sun::star::uno::Any SAL_CALL getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException);
+-    
+ 	// ::com::sun::star::uno::XInterface
+     ::com::sun::star::uno::Any	SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+ 	void						SAL_CALL acquire() throw()	{ OWeakObject::acquire(); }
+@@ -83,13 +113,6 @@ public:	
+ 	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >	SAL_CALL getTypes() throw(::com::sun::star::uno::RuntimeException);
+ 	::com::sun::star::uno::Sequence< sal_Int8 >						SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
+ 
+-	// ::com::sun::star::awt::XTopWindow
+-    void SAL_CALL addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL toFront(  ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL toBack(  ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& xMenu ) throw(::com::sun::star::uno::RuntimeException);
+-
+     static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+     virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+Index: toolkit/inc/toolkit/awt/vclxwindows.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/toolkit/awt/vclxwindows.hxx,v
+retrieving revision 1.39
+retrieving revision 1.39.26.2
+diff -p -u -u -p -b -w -B -r1.39 -r1.39.26.2
+--- toolkit/inc/toolkit/awt/vclxwindows.hxx	29 Jan 2008 15:03:47 -0000	1.39
++++ toolkit/inc/toolkit/awt/vclxwindows.hxx	28 Mar 2008 14:54:34 -0000	1.39.26.2
+@@ -491,6 +491,9 @@ public:
+     ::rtl::OUString SAL_CALL getMessageText(  ) throw(::com::sun::star::uno::RuntimeException);
+     sal_Int16 SAL_CALL execute(  ) throw(::com::sun::star::uno::RuntimeException);
+ 
++    // ::com::sun::star::awt::XLayoutConstrains
++    ::com::sun::star::awt::Size SAL_CALL getMinimumSize() throw(::com::sun::star::uno::RuntimeException);
++
+     static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+     virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+@@ -710,6 +713,10 @@ public:
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
+ 
++    // ::com::sun::star::awt::XLayoutConstrains
++    ::com::sun::star::awt::Size SAL_CALL getMinimumSize() throw(::com::sun::star::uno::RuntimeException);
++    static ::com::sun::star::awt::Size SAL_CALL implGetMinimumSize( Window* p ) throw(::com::sun::star::uno::RuntimeException);
++
+     static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+     virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+cvs diff: Diffing toolkit/inc/toolkit/controls
+cvs diff: Diffing toolkit/inc/toolkit/helper
+cvs diff: Diffing toolkit/prj
+Index: toolkit/prj/build.lst
+===================================================================
+RCS file: /cvs/gsl/toolkit/prj/build.lst,v
+retrieving revision 1.5
+retrieving revision 1.5.6.1
+diff -p -u -u -p -b -w -B -r1.5 -r1.5.6.1
+--- toolkit/prj/build.lst	6 Mar 2008 11:38:23 -0000	1.5
++++ toolkit/prj/build.lst	26 Mar 2008 13:45:00 -0000	1.5.6.1
+@@ -9,4 +9,3 @@ ti	toolkit\source\controls\tree			nmake	
+ ti	toolkit\source\layout    nmake	-	all	ti_layout NULL
+ ti	toolkit\source\vclcompat nmake	-	all	ti_vclcompat NULL
+ ti	toolkit\util							nmake	-	all	ti_util ti_awt ti_controls ti_layout ti_helper ti_tree ti_vclcompat NULL
+-ti	toolkit\workben\layout   nmake	-	all	ti_layout_workben ti_util NULL
+Index: toolkit/prj/d.lst
+===================================================================
+RCS file: /cvs/gsl/toolkit/prj/d.lst,v
+retrieving revision 1.23
+retrieving revision 1.23.4.3
+diff -p -u -u -p -b -w -B -r1.23 -r1.23.4.3
+--- toolkit/prj/d.lst	6 Mar 2008 11:38:39 -0000	1.23
++++ toolkit/prj/d.lst	28 Mar 2008 11:17:42 -0000	1.23.4.3
+@@ -50,14 +50,5 @@ mkdir: %_DEST%\inc%_EXT%\toolkit\control
+ 
+ mkdir: %_DEST%\inc%_EXT%\layout
+ ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+-..\%__SRC%\lib\layout.lib %_DEST%\lib%_EXT%\tklayout.lib
+-..\%__SRC%\bin\layout*.dll %_DEST%\bin%_EXT%\tklayout*.dll
+-..\%__SRC%\misc\layout*.map %_DEST%\bin%_EXT%\tklayout*.map
+-
+-..\%__SRC%\lib\*.xml %_DEST%\lib%_EXT%\*.xml
+-mkdir: %_DEST%\lib%_EXT%\de
+-..\%__SRC%\lib\de\*.xml %_DEST%\lib%_EXT%\de\*.xml
+-mkdir: %_DEST%\lib%_EXT%\nl
+-..\%__SRC%\lib\nl\*.xml %_DEST%\lib%_EXT%\nl\*.xml
+ 
+ ..\inc\layout\*.hxx %_DEST%\inc%_EXT%\layout\*.hxx
+cvs diff: Diffing toolkit/qa
+cvs diff: Diffing toolkit/qa/complex
+cvs diff: Diffing toolkit/qa/complex/toolkit
+cvs diff: Diffing toolkit/qa/complex/toolkit/interface_tests
+cvs diff: Diffing toolkit/qa/unoapi
+cvs diff: Diffing toolkit/qa/unoapi/testdocuments
+cvs diff: Diffing toolkit/source
+cvs diff: Diffing toolkit/source/awt
+Index: toolkit/source/awt/forward.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/forward.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/awt/forward.hxx	6 Mar 2008 11:38:52 -0000	1.2
++++ toolkit/source/awt/forward.hxx	20 Mar 2008 11:56:25 -0000	1.2.6.1
+@@ -1,9 +1,42 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef AWT_FORWARD_HXX
+ #define AWT_FORWARD_HXX
+ 
+-#ifndef _COMPHELPER_UNO3_HXX_
+ #include <comphelper/uno3.hxx>
+-#endif
+ 
+ #define IMPLEMENT_FORWARD_XTYPEPROVIDER1( classname, baseclass ) \
+     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL classname::getTypes(  ) throw (::com::sun::star::uno::RuntimeException) \
+Index: toolkit/source/awt/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/makefile.mk,v
+retrieving revision 1.33
+retrieving revision 1.33.6.2
+diff -p -u -u -p -b -w -B -r1.33 -r1.33.6.2
+--- toolkit/source/awt/makefile.mk	6 Mar 2008 11:39:07 -0000	1.33
++++ toolkit/source/awt/makefile.mk	28 Mar 2008 09:40:05 -0000	1.33.6.2
+@@ -47,6 +47,9 @@ ENABLE_EXCEPTIONS=TRUE
+ 
+ # --- Files --------------------------------------------------------
+ 
++# FIXME: This is bad, hmkay
++CFLAGS+= -I$(PRJ)/source
++
+ .IF "$(GUIBASE)"=="aqua"
+ OBJCXXFLAGS=-x objective-c++ -fobjc-exceptions
+ CFLAGSCXX+=$(OBJCXXFLAGS)
+@@ -72,25 +75,17 @@ SLOFILES=   \
+ 			$(SLO)$/vclxspinbutton.obj                  \
+ 			$(SLO)$/xsimpleanimation.obj                \
+ 			$(SLO)$/xthrobber.obj						\
+-			$(SLO)$/asynccallback.obj
+-
+-SRS1NAME=$(TARGET)
+-SRC1FILES=\
+-            xthrobber.src
+-
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-
+-SECOND_BUILD=layout
+-layout_SLOFILES=\
++			$(SLO)$/asynccallback.obj\
+ 	$(SLO)/vclxbutton.obj\
+ 	$(SLO)/vclxdialog.obj\
+ 	$(SLO)/vclxfixedline.obj\
+-	$(SLO)/vclxproxy.obj\
+ 	$(SLO)/vclxscroller.obj\
+ 	$(SLO)/vclxsplitter.obj\
+ 	$(SLO)/vclxtabcontrol.obj
+ 
+-.ENDIF # ENABLE_LAYOUT == TRUE
++SRS1NAME=$(TARGET)
++SRC1FILES=\
++            xthrobber.src
+ 
+ # --- Targets ------------------------------------------------------
+ 
+Index: toolkit/source/awt/vclxbutton.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxbutton.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/awt/vclxbutton.cxx	6 Mar 2008 11:39:31 -0000	1.2
++++ toolkit/source/awt/vclxbutton.cxx	28 Mar 2008 09:40:05 -0000	1.2.6.2
+@@ -1,15 +1,56 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "vclxbutton.hxx"
+ 
+-#include "layoutcore.hxx"
++#include "layout/layoutcore.hxx"
+ #include <com/sun/star/awt/ImagePosition.hpp>
+ #include <vcl/button.hxx>
+ 
+ namespace css = com::sun::star;
+ 
+-IconButton::IconButton( css::uno::Reference< css::uno::XInterface > xButton,
+-                        rtl::OUString aDefaultLabel, const char *pGraphName )
+-    : VCLXProxy( xButton )
++namespace layoutimpl
+ {
++
++VCLXIconButton::VCLXIconButton( Window *p, rtl::OUString aDefaultLabel, char const *pGraphName )
++    : VCLXButton()
++{
++    /* FIXME: before Window is set, setLabel, setProperty->setImage
++     * are silent no-ops.  */
++    p->SetComponentInterface( this );
++
+     setLabel( aDefaultLabel );
+     setProperty( rtl::OUString::createFromAscii( "Graphic" ),
+                  css::uno::Any( layoutimpl::loadGraphic( pGraphName ) ) );
+@@ -21,110 +62,73 @@ IconButton::IconButton( css::uno::Refere
+ 
+ // FIXME: l10n/i18n of Reset & Apply
+ 
+-VCLXOKButton::VCLXOKButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_OK ),
++VCLXOKButton::VCLXOKButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_OK ),
+                   "res/commandimagelist/sc_ok.png" )
+ {
+ }
+ 
+-VCLXCancelButton::VCLXCancelButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_CANCEL ),
+-//    : IconButton( xButton, rtl::OUString::createFromAscii( "~Cancel " ),
++VCLXCancelButton::VCLXCancelButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_CANCEL ),
++//    : VCLXIconButton( xButton, rtl::OUString::createFromAscii( "~Cancel " ),
+                   "res/commandimagelist/sc_cancel.png" )
+ {
+ }
+ 
+-VCLXYesButton::VCLXYesButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_YES ),
++VCLXYesButton::VCLXYesButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_YES ),
+                   "res/commandimagelist/sc_yes.png" )
+ {
+ }
+ 
+-VCLXNoButton::VCLXNoButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_NO ),
++VCLXNoButton::VCLXNoButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_NO ),
+                   "res/commandimagelist/sc_no.png" )
+ {
+ }
+ 
+-VCLXRetryButton::VCLXRetryButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_RETRY ),
++VCLXRetryButton::VCLXRetryButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_RETRY ),
+                   "res/commandimagelist/sc_retry.png" )
+ {
+ }
+ 
+-VCLXIgnoreButton::VCLXIgnoreButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_IGNORE ),
++VCLXIgnoreButton::VCLXIgnoreButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_IGNORE ),
+                   "res/commandimagelist/sc_ignore.png" )
+ {
+ }
+ 
+-VCLXResetButton::VCLXResetButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, rtl::OUString::createFromAscii( "~Reset " ),
++VCLXResetButton::VCLXResetButton( Window *p )
++    : VCLXIconButton( p, rtl::OUString::createFromAscii( "~Reset " ),
+                   "res/commandimagelist/sc_reset.png" )
+ {
+ }
+ 
+-VCLXApplyButton::VCLXApplyButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, rtl::OUString::createFromAscii( "Apply" ),
++VCLXApplyButton::VCLXApplyButton( Window *p )
++    : VCLXIconButton( p, rtl::OUString::createFromAscii( "Apply" ),
+                   "res/commandimagelist/sc_apply.png" )
+ {
+ }
+ 
+-VCLXHelpButton::VCLXHelpButton( css::uno::Reference< css::uno::XInterface > xButton )
+-    : IconButton( xButton, Button::GetStandardText( BUTTON_HELP ),
++VCLXHelpButton::VCLXHelpButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_HELP ),
+                   "res/commandimagelist/sc_help.png" )
+ {
+ }
+ 
+-namespace layoutimpl
++VCLXMoreButton::VCLXMoreButton( Window *p )
++    : VCLXIconButton( p, Button::GetStandardText( BUTTON_MORE ),
++//    : VCLXIconButton( p, rtl::OUString::createFromAscii( "More " ),
++                  "res/commandimagelist/sc_more.png" )
+ {
+-css::uno::Reference< css::awt::XLayoutConstrains >
+-createInternalWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
+-                      css::uno::Reference< css::uno::XInterface > xParent,
+-                      const rtl::OUString &rName, long nProps )
+-{
+-    css::uno::Reference< css::awt::XLayoutConstrains > xRef, xWrapped;
+-    bool bOK = false;
+-    bool bCancel = false;
+-    bool bYes = false;
+-    bool bNo = false;
+-    bool bRetry = false;
+-    bool bIgnore = false;
+-    bool bReset = false;
+-    bool bApply = false;
+-    bool bHelp = false;
+-    if ( ( bOK = rName.equalsAscii( "okbutton" ) )
+-         || ( bCancel = rName.equalsAscii( "cancelbutton" ) )
+-         || ( bYes = rName.equalsAscii( "yesbutton" ) )
+-         || ( bNo = rName.equalsAscii( "nobutton" ) )
+-         || ( bRetry = rName.equalsAscii( "retrybutton" ) )
+-         || ( bIgnore = rName.equalsAscii( "ignorebutton" ) )
+-         || ( bReset = rName.equalsAscii( "resetbutton" ) )
+-         || ( bApply = rName.equalsAscii( "applybutton" ) )
+-         || ( bHelp = rName.equalsAscii( "helpbutton" ) ) )
+-    {
+-        xWrapped = createWidget( xToolkit, xParent,
+-                                 rtl::OUString::createFromAscii( "pushbutton" ),
+-                                 nProps );
+-        if ( bOK )
+-            xRef = new VCLXOKButton( xWrapped );
+-        if ( bCancel )
+-            xRef = new VCLXCancelButton( xWrapped );
+-        if ( bYes )
+-            xRef = new VCLXYesButton( xWrapped );
+-        if ( bNo )
+-            xRef = new VCLXNoButton( xWrapped );
+-        if ( bRetry )
+-            xRef = new VCLXRetryButton( xWrapped );
+-        if ( bIgnore )
+-            xRef = new VCLXIgnoreButton( xWrapped );
+-        if ( bReset )
+-            xRef = new VCLXResetButton( xWrapped );
+-        if ( bApply )
+-            xRef = new VCLXApplyButton( xWrapped );
+-        if ( bHelp )
+-            xRef = new VCLXHelpButton( xWrapped );
+     }
+-    return xRef;
++
++VCLXAdvancedButton::VCLXAdvancedButton( Window *p )
++//    : VCLXIconButton( p, Button::GetStandardText( BUTTON_ADVANCED ),
++    : VCLXIconButton( p, rtl::OUString::createFromAscii( "Advanced " ),
++                  "res/commandimagelist/sc_advanced.png" )
++{
+ }
+-};
++
++} // namespace layoutimpl
+Index: toolkit/source/awt/vclxbutton.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxbutton.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/awt/vclxbutton.hxx	6 Mar 2008 11:39:43 -0000	1.2
++++ toolkit/source/awt/vclxbutton.hxx	26 Mar 2008 13:32:17 -0000	1.2.6.2
+@@ -1,69 +1,122 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUT_AWT_VCLXBUTTON_HXX
+ #define LAYOUT_AWT_VCLXBUTTON_HXX
+ 
+-#include "vclxproxy.hxx"
++#include <toolkit/awt/vclxwindows.hxx>
+ 
+ /* Replacements for broken toolkit/ impls. of ok, cancel, help button, etc. */
+ 
+-class IconButton : public VCLXProxy
++namespace layoutimpl
++{
++
++class VCLXIconButton : public VCLXButton
+ {
+-protected:
+-    IconButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton,
+-                rtl::OUString aDefaultLabel, const char *pGraphName );
++public:
++    VCLXIconButton( Window* p, rtl::OUString aDefaultLabel, const char *pGraphName );
++    void Show ();
+ };
+ 
+-class VCLXOKButton : public IconButton
++class VCLXOKButton : public VCLXIconButton
+ {
+ public:
+-    VCLXOKButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXOKButton( Window *p );
+ };
+ 
+-class VCLXCancelButton : public IconButton
++class VCLXCancelButton : public VCLXIconButton
+ {
+ public:
+-    VCLXCancelButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXCancelButton( Window *p );
+ };
+ 
+-class VCLXYesButton : public IconButton
++class VCLXYesButton : public VCLXIconButton
+ {
+ public:
+-    VCLXYesButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXYesButton( Window *p );
+ };
+ 
+-class VCLXNoButton : public IconButton
++class VCLXNoButton : public VCLXIconButton
+ {
+ public:
+-    VCLXNoButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXNoButton( Window *p );
+ };
+ 
+-class VCLXRetryButton : public IconButton
++class VCLXRetryButton : public VCLXIconButton
+ {
+ public:
+-    VCLXRetryButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXRetryButton( Window *p );
+ };
+ 
+-class VCLXIgnoreButton : public IconButton
++class VCLXIgnoreButton : public VCLXIconButton
+ {
+ public:
+-    VCLXIgnoreButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXIgnoreButton( Window *p );
+ };
+ 
+-class VCLXResetButton : public IconButton
++class VCLXResetButton : public VCLXIconButton
+ {
+ public:
+-    VCLXResetButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXResetButton( Window *p );
+ };
+ 
+-class VCLXApplyButton : public IconButton
++class VCLXApplyButton : public VCLXIconButton
+ {
+ public:
+-    VCLXApplyButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXApplyButton( Window *p );
+ };
+ 
+-class VCLXHelpButton : public IconButton
++class VCLXHelpButton : public VCLXIconButton
+ {
+ public:
+-    VCLXHelpButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++    VCLXHelpButton( Window *p );
+ };
+ 
++// TODO.  Reuse vcl/Morebutton, or make AdvancedButton reuse me?
++class VCLXMoreButton : public VCLXIconButton
++{
++public:
++    VCLXMoreButton( Window *p );
++};
++
++class VCLXAdvancedButton : public VCLXIconButton
++{
++public:
++    VCLXAdvancedButton( Window *p );
++};
++
++} // namespace layoutimpl
++
+ #endif // LAYOUT_AWT_VCLXBUTTON_HXX
+Index: toolkit/source/awt/vclxdialog.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxdialog.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.5
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.5
+--- toolkit/source/awt/vclxdialog.cxx	6 Mar 2008 11:39:55 -0000	1.2
++++ toolkit/source/awt/vclxdialog.cxx	28 Mar 2008 13:45:13 -0000	1.2.6.5
+@@ -1,64 +1,81 @@
+-#include "vclxdialog.hxx"
+-
+-#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
+-#include "toolkit/helper/property.hxx"
+-#endif
+-#ifndef _COM_SUN_STAR_AWT_SCROLLBARORIENTATION_HPP_
+-#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+-#endif
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
+ 
++#include "vclxdialog.hxx"
+ 
+-#ifndef _TOOLS_DEBUG_HXX
+-#include <tools/debug.hxx>
+-#endif
+-
+-#include <vcl/msgbox.hxx>
+-#include <vcl/wrkwin.hxx>
+-#include <vcl/syswin.hxx>
+-#include <vcl/menu.hxx>
+-#include <vcl/dialog.hxx>
++#include <com/sun/star/awt/PosSize.hpp>
++#include <com/sun/star/awt/SystemDependentXWindow.hpp>
++#include <com/sun/star/lang/SystemDependent.hpp>
+ 
+-#include <vcl/svapp.hxx>
+-#include <vcl/syschild.hxx>
+-#include <vcl/sysdata.hxx>
+ #include <cppuhelper/typeprovider.hxx>
+ 
+ #include <toolkit/awt/vclxmenu.hxx>
+ #include <toolkit/helper/macros.hxx>
++#include <toolkit/helper/property.hxx>
+ 
+-#include <com/sun/star/lang/SystemDependent.hpp>
+-#include <com/sun/star/awt/SystemDependentXWindow.hpp>
++#ifdef WNT
++#include <tools/prewin.h>
++#include <windows.h>
++#include <tools/postwin.h>
++#endif
+ 
+-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+-#include <toolkit/helper/vclunohelper.hxx>
++#ifdef QUARTZ
++#include "premac.h"
++#include <Cocoa/Cocoa.h>
++#include "postmac.h"
+ #endif
+ 
+-#include <com/sun/star/awt/PosSize.hpp>
++#include <vcl/dialog.hxx>
++#include <vcl/msgbox.hxx>
++#include <vcl/svapp.hxx>
++#include <vcl/sysdata.hxx>
++#include <vcl/wrkwin.hxx>
+ 
+-#include "../layout/timer.hxx"
++#include "forward.hxx"
+ 
+-using namespace toolkit;
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+ 
+-using namespace ::com::sun::star::uno;
+-using namespace ::com::sun::star::awt;
+-using namespace ::com::sun::star::lang;
+-using namespace ::com::sun::star::beans;
+-using namespace ::com::sun::star;
+-
+-//====================================================================
+-//= VCLXDialog
+-//====================================================================
+ DBG_NAME( VCLXDialog )
+-//--------------------------------------------------------------------
++
+ VCLXDialog::VCLXDialog()
+ : VCLXWindow()
+     , VCLXDialog_Base()
+     , Bin()
+-    , bRealized( false ), bResizeSafeguard( false )
++    , bRealized( false )
++    , bResizeSafeguard( false )
+ {
+     DBG_CTOR( VCLXDialog, NULL );
+ 
+@@ -66,25 +83,36 @@ VCLXDialog::VCLXDialog()
+           assert(mxLayoutUnit.is());*/
+ }
+ 
+-//--------------------------------------------------------------------
+ VCLXDialog::~VCLXDialog()
+ {
+     DBG_DTOR( VCLXDialog, NULL );
+ }
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXDialog, VCLXWindow, Bin, VCLXDialog_Base )
++vos::IMutex& VCLXDialog::GetMutexImpl()
++{
++    return VCLXWindow::GetMutex();
++}
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXDialog, VCLXWindow, VCLXDialog_Base )
++Window* VCLXDialog::GetWindowImpl()
++{
++    return VCLXWindow::GetWindow();
++}
+ 
+-//--------------------------------------------------------------------
+-void SAL_CALL VCLXDialog::dispose( ) throw(RuntimeException)
++TopWindowListenerMultiplexer& VCLXDialog::GetTopWindowListenersImpl()
++{
++    return VCLXWindow::GetTopWindowListeners();
++}
++
++IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXDialog, VCLXWindow, Bin, VCLXDialog_Base );
++
++IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXDialog, VCLXWindow, VCLXDialog_Base );
++
++void SAL_CALL VCLXDialog::dispose() throw(::com::sun::star::uno::RuntimeException)
+ {
+     {
+         ::vos::OGuard aGuard( GetMutex() );
+ 
+-        EventObject aDisposeEvent;
++        ::com::sun::star::lang::EventObject aDisposeEvent;
+         aDisposeEvent.Source = *this;
+ //            maTabListeners.disposeAndClear( aDisposeEvent );
+     }
+@@ -100,32 +128,31 @@ void VCLXDialog::resizedCb()
+ void SAL_CALL VCLXDialog::allocateArea( const css::awt::Rectangle &rArea )
+     throw (css::uno::RuntimeException)
+ {
+-    awt::Size reqSize = Bin::getMinimumSize();
++    ::com::sun::star::awt::Size reqSize = Bin::getMinimumSize();
+     reqSize.Height = getHeightForWidth( rArea.Width );
+ 
+     if ( !bRealized )
+     {
+-        setPosSize( 0, 0, reqSize.Width, reqSize.Height, PosSize::SIZE );
++        setPosSize( 0, 0, reqSize.Width, reqSize.Height, ::com::sun::star::awt::PosSize::SIZE );
+         bRealized = true;
+         setVisible( true );
+     }
+     else
+     {
+-        awt::Size curSize = getSize();
++        ::com::sun::star::awt::Size curSize = getSize();
+         if ( reqSize.Width > curSize.Width )
+-            setPosSize( 0, 0, reqSize.Width, 0, PosSize::WIDTH );
++            setPosSize( 0, 0, reqSize.Width, 0, ::com::sun::star::awt::PosSize::WIDTH );
+         if ( reqSize.Height > curSize.Height )
+-            setPosSize( 0, 0, 0, reqSize.Height, PosSize::HEIGHT );
++            setPosSize( 0, 0, 0, reqSize.Height, ::com::sun::star::awt::PosSize::HEIGHT );
+     }
+ 
+-    awt::Size size = getSize();
++    ::com::sun::star::awt::Size size = getSize();
+     maAllocation.Width = size.Width;
+     maAllocation.Height = size.Height;
+ 
+     Bin::allocateArea( maAllocation );
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXDialog::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
+     ::vos::OClearableGuard aGuard( GetMutex() );
+@@ -141,143 +168,42 @@ void VCLXDialog::ProcessWindowEvent( con
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+-void SAL_CALL VCLXDialog::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
++void SAL_CALL VCLXDialog::setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any &Value ) throw(::com::sun::star::uno::RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+ 
+     if ( GetWindow() )
+     {
+-        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++/*        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+         switch ( nPropertyId )
+         {
+             default:
++*/
+                 VCLXWindow::setProperty( PropertyName, Value );
+-        }
++/*        }
++*/
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+-Any SAL_CALL VCLXDialog::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
++::com::sun::star::uno::Any SAL_CALL VCLXDialog::getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+ 
+-    Any aReturn;
++    ::com::sun::star::uno::Any aReturn;
+     if ( GetWindow() )
+     {
++/*
+         sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+         switch ( nPropertyId )
+         {
+             default:
++*/
+                 aReturn = VCLXWindow::getProperty( PropertyName );
+-        }
+-    }
+-    return aReturn;
+-}
+-
+-//---------------------------------------------------------------------
+-
+-::com::sun::star::uno::Any VCLXDialog::getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    ::com::sun::star::uno::Any aRet;
+-    Window* pWindow = VCLXWindow::GetWindow();
+-    if ( pWindow )
+-    {
+-        const SystemEnvData* pSysData = ((SystemWindow *)pWindow)->GetSystemData();
+-        if ( pSysData )
+-        {
+-#if (defined WNT)
+-            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_WIN32 )
+-            {
+-                aRet <<= (sal_Int32)pSysData->hWnd;
+-            }
+-#elif (defined OS2)
+-            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_OS2 )
+-            {
+-                aRet <<= (sal_Int32)pSysData->hWnd;
+-            }
+-#elif (defined QUARTZ)
+-            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_MAC )
+-            {
+-                aRet <<= (sal_IntPtr)pSysData->rWindow;
+-            }
+-#elif (defined UNX)
+-            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW )
+-            {
+-                ::com::sun::star::awt::SystemDependentXWindow aSD;
+-                aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay));
+-                aSD.WindowHandle = pSysData->aWindow;
+-                aRet <<= aSD;
+-            }
+-#endif
+-        }
+-    }
+-    return aRet;
+-}
+-
+-
+-void VCLXDialog::addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-#if 1
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    GetTopWindowListeners().addInterface( rxListener );
+-#else
+-#endif
+-}
+-
+-void VCLXDialog::removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-#if 1
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    GetTopWindowListeners().removeInterface( rxListener );
+-#endif
+-}
+-
+-void VCLXDialog::toFront(  ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    Window* pWindow = GetWindow();
+-    if ( pWindow )
+-        ((WorkWindow*)pWindow)->ToTop( TOTOP_RESTOREWHENMIN );
+-}
+-
+-void VCLXDialog::toBack(  ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-/* Not possible in VCL...
+-
+-   ::vos::OGuard aGuard( GetMutex() );
+-
+-   Window* pWindow = GetWindow();
+-   if ( pWindow )
+-   {
+-   ((WorkWindow*)pWindow)->ToBack();
++/*
+    }
+ */
+ }
+-
+-void VCLXDialog::setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& /*rxMenu*/ ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-#if 0
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    SystemWindow* pWindow = (SystemWindow*) GetWindow();
+-    if ( pWindow )
+-    {
+-        pWindow->SetMenuBar( NULL );
+-        if ( rxMenu.is() )
+-        {
+-            VCLXMenu* pMenu = VCLXMenu::GetImplementation( rxMenu );
+-            if ( pMenu && !pMenu->IsPopupMenu() )
+-                pWindow->SetMenuBar( (MenuBar*) pMenu->GetMenu() );
+-        }
+-    }
+-    mxMenuBar = rxMenu;
+-#endif
++    return aReturn;
+ }
+ 
+ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star::uno::RuntimeException)
+@@ -350,6 +276,4 @@ void VCLXDialog::endExecute() throw(::co
+     endDialog( 0 );
+ }
+ 
+-//........................................................................
+-} // namespace toolkit
+-//........................................................................
++} // namespace layoutimpl
+Index: toolkit/source/awt/vclxdialog.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxdialog.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/awt/vclxdialog.hxx	6 Mar 2008 11:40:06 -0000	1.2
++++ toolkit/source/awt/vclxdialog.hxx	28 Mar 2008 13:19:45 -0000	1.2.6.3
+@@ -1,59 +1,70 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUT_AWT_VCLXDIALOG_HXX
+ #define LAYOUT_AWT_VCLXDIALOG_HXX
+ 
+-#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
+-#include <toolkit/awt/vclxwindow.hxx>
+-#endif
+-#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
+-#include <toolkit/helper/listenermultiplexer.hxx>
+-#endif
+-#ifndef _CPPUHELPER_IMPLBASE3_HXX_
+-#include <cppuhelper/implbase3.hxx>
+-#endif
+-#ifndef _COMPHELPER_UNO3_HXX_
+-#include <comphelper/uno3.hxx>
+-#endif
+-
++#include <com/sun/star/awt/XDialog2.hpp>
+ #include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
+ #include <com/sun/star/awt/XTopWindow.hpp>
+-#include <com/sun/star/awt/XMenuBar.hpp>
+-#include <com/sun/star/awt/XDialog2.hpp>
+-
+-#include <com/sun/star/awt/XSimpleTabController.hpp>
+-#include "../layout/bin.hxx"
+-
+-#include <com/sun/star/awt/MaxChildrenException.hpp>
+-#include <com/sun/star/beans/XPropertySet.hpp>
+-
+-#include "forward.hxx"
+-
+-using namespace toolkit;
++#include <comphelper/uno3.hxx>
++#include <layout/bin.hxx>
++#include <toolkit/awt/vclxtopwindow.hxx>
+ 
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+ 
+-//====================================================================
+-//= VCLXDialog
+-//====================================================================
+-
+-typedef ::cppu::ImplHelper3 < ::com::sun::star::awt::XTopWindow,
+-                              ::com::sun::star::awt::XSystemDependentWindowPeer,
+-                              ::com::sun::star::awt::XDialog2
+-                              >   VCLXDialog_Base;
++typedef ::cppu::ImplHelper1 < ::com::sun::star::awt::XDialog2 > VCLXDialog_Base;
+ 
+ class VCLXDialog :public VCLXWindow
++                 ,public VCLXTopWindow_Base
+                  ,public VCLXDialog_Base
+                  ,public Bin
+ {
+-public:
+-    VCLXDialog();
++private:
++    bool bRealized, bResizeSafeguard;
++    css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
+ 
+-    // ::com::sun::star::awt::XDialog2
+-    void SAL_CALL endDialog( sal_Int32 nResult ) throw(::com::sun::star::uno::RuntimeException);
++    VCLXDialog( const VCLXDialog& );            // never implemented
++    VCLXDialog& operator=( const VCLXDialog& ); // never implemented
+ 
+ protected:
++    vos::IMutex& GetMutexImpl();
++    Window* GetWindowImpl();
++    TopWindowListenerMultiplexer& GetTopWindowListenersImpl();
++
+     ~VCLXDialog( );
+ 
+     // XInterface
+@@ -72,16 +83,6 @@ protected:
+     // VCLXWindow
+     void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
+ 
+-    // ::com::sun::star::awt::XSystemDependendtWindowPeer
+-    ::com::sun::star::uno::Any SAL_CALL getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException);
+-
+-    // ::com::sun::star::awt::XTopWindow
+-    void SAL_CALL addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL toFront(  ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL toBack(  ) throw(::com::sun::star::uno::RuntimeException);
+-    void SAL_CALL setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& xMenu ) throw(::com::sun::star::uno::RuntimeException);
+-
+     // ::com::sun::star::awt::XDialog
+     void SAL_CALL setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star::uno::RuntimeException);
+     ::rtl::OUString SAL_CALL getTitle(  ) throw(::com::sun::star::uno::RuntimeException);
+@@ -99,16 +100,15 @@ protected:
+     }
+     virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ 
+-private:
+-    VCLXDialog( const VCLXDialog& );            // never implemented
+-    VCLXDialog& operator=( const VCLXDialog& ); // never implemented
+-    bool bRealized, bResizeSafeguard;
+ 
+-    css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
++public:
++    VCLXDialog();
++
++    // ::com::sun::star::awt::XDialog2
++    void SAL_CALL endDialog( sal_Int32 nResult ) throw(::com::sun::star::uno::RuntimeException);
++
+ };
+ 
+-//........................................................................
+ } // namespace layoutimpl
+-//........................................................................
+ 
+ #endif /*LAYOUT_AWT_VCLXDIALOG_HXX*/
+Index: toolkit/source/awt/vclxfixedline.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxfixedline.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.4
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.4
+--- toolkit/source/awt/vclxfixedline.cxx	6 Mar 2008 11:40:27 -0000	1.2
++++ toolkit/source/awt/vclxfixedline.cxx	28 Mar 2008 13:45:13 -0000	1.2.6.4
+@@ -1,24 +1,50 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "vclxfixedline.hxx"
+-#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
+-#include "toolkit/helper/property.hxx"
+-#endif
+ 
+-#ifndef _TOOLS_DEBUG_HXX
++#include <com/sun/star/awt/PosSize.hpp>
++#include <toolkit/helper/property.hxx>
++#include <toolkit/helper/vclunohelper.hxx>
+ #include <tools/debug.hxx>
+-#endif
+ #include <vcl/fixed.hxx>
+ 
+-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+-#include <toolkit/helper/vclunohelper.hxx>
+-#endif
+-
+-#include <com/sun/star/awt/PosSize.hpp>
++#include "forward.hxx"
+ 
+-using namespace toolkit;
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+@@ -26,30 +52,21 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star;
+ 
+-//====================================================================
+-//= VCLXFixedLine
+-//====================================================================
+ DBG_NAME( VCLXFixedLine )
+-//--------------------------------------------------------------------
++
+ VCLXFixedLine::VCLXFixedLine()
+ : VCLXWindow()
+ {
+     DBG_CTOR( VCLXFixedLine, NULL );
+ }
+ 
+-//--------------------------------------------------------------------
+ VCLXFixedLine::~VCLXFixedLine()
+ {
+     DBG_DTOR( VCLXFixedLine, NULL );
+ }
+ 
+-//--------------------------------------------------------------------
+-//    IMPLEMENT_FORWARD_XINTERFACE1( VCLXFixedLine, VCLXWindow )
+-
+-//--------------------------------------------------------------------
+-IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXFixedLine, VCLXWindow )
++IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXFixedLine, VCLXWindow );
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXFixedLine::dispose( ) throw(RuntimeException)
+ {
+     {
+@@ -62,44 +79,45 @@ void SAL_CALL VCLXFixedLine::dispose( ) 
+     VCLXWindow::dispose();
+ }
+ 
+-//--------------------------------------------------------------------
+ ::com::sun::star::awt::Size SAL_CALL VCLXFixedLine::getMinimumSize()
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+     return awt::Size( 8, 8 );
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXFixedLine::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
+     ::vos::OClearableGuard aGuard( GetMutex() );
+-
++/*
+     switch ( _rVclWindowEvent.GetId() )
+     {
+         default:
+             aGuard.clear();
++*/
+             VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++/*
+             break;
+     }
++*/
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXFixedLine::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+ 
+     if ( GetWindow() )
+     {
++/*
+         sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+         switch ( nPropertyId )
+         {
+             default:
++*/
+                 VCLXWindow::setProperty( PropertyName, Value );
+-        }
++//        }
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ Any SAL_CALL VCLXFixedLine::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+@@ -107,16 +125,16 @@ Any SAL_CALL VCLXFixedLine::getProperty(
+     Any aReturn;
+     if ( GetWindow() )
+     {
++/*
+         sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+         switch ( nPropertyId )
+         {
+             default:
++*/
+                 aReturn = VCLXWindow::getProperty( PropertyName );
+-        }
++  //      }
+     }
+     return aReturn;
+ }
+ 
+-//........................................................................
+-} // namespace toolkit
+-//........................................................................
++} // namespace layoutimpl
+Index: toolkit/source/awt/vclxfixedline.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxfixedline.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/awt/vclxfixedline.hxx	6 Mar 2008 11:40:39 -0000	1.2
++++ toolkit/source/awt/vclxfixedline.hxx	28 Mar 2008 13:14:17 -0000	1.2.6.2
+@@ -1,36 +1,50 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUT_AWT_VCLXFIXEDLINE_HXX
+ #define LAYOUT_AWT_VCLXFIXEDLINE_HXX
+ 
+-#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
+-#include <toolkit/awt/vclxwindow.hxx>
+-#endif
+-#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
+-#include <toolkit/helper/listenermultiplexer.hxx>
+-#endif
+-#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+-#include <cppuhelper/implbase1.hxx>
+-#endif
+-#ifndef _COMPHELPER_UNO3_HXX_
+ #include <comphelper/uno3.hxx>
+-#endif
+-
+-#include <com/sun/star/beans/XPropertySet.hpp>
+-
+-#include "forward.hxx"
++#include <toolkit/awt/vclxwindow.hxx>
+ 
+ /* We just provide our own FixedLine, because default has no width... */
+ 
+ class FixedLine;
+-using namespace toolkit;
+ 
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+-
+-//====================================================================
+-//= VCLXFixedLine
+-//====================================================================
+ 
+ class VCLXFixedLine :public VCLXWindow
+ {
+@@ -64,8 +78,6 @@ private:
+     VCLXFixedLine& operator=( const VCLXFixedLine& ); // never implemented
+ };
+ 
+-//........................................................................
+-} // namespacetoolkit
+-//........................................................................
++} // namespace layoutimpl
+ 
+ #endif /*LAYOUT_AWT_VCLXFIXEDLINE_HXX*/
+Index: toolkit/source/awt/vclxproxy.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxproxy.cxx
+diff -N toolkit/source/awt/vclxproxy.cxx
+--- toolkit/source/awt/vclxproxy.cxx	6 Mar 2008 11:40:52 -0000	1.2
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,448 +0,0 @@
+-#include "vclxproxy.hxx"
+-
+-namespace css = com::sun::star;
+-
+-// This is a generic proxy class - override it to wrap &
+-// extend these interfaces
+-// Warning: this is of course not complete ...
+-
+-VCLXProxy::VCLXProxy( css::uno::Reference< css::uno::XInterface > xObject )
+-    : mxDevice( xObject, css::uno::UNO_QUERY )
+-    , mxTypeProvider( xObject, css::uno::UNO_QUERY )
+-    , mxUnoTunnel( xObject, css::uno::UNO_QUERY )
+-    , mxComponent( xObject, css::uno::UNO_QUERY )
+-    , mxWindow( xObject, css::uno::UNO_QUERY )
+-    , mxWindow2( xObject, css::uno::UNO_QUERY )
+-    , mxWindowPeer( xObject, css::uno::UNO_QUERY )
+-    , mxVclWindowPeer( xObject, css::uno::UNO_QUERY )
+-    , mxLayoutConstrains( xObject, css::uno::UNO_QUERY )
+-    , mxView( xObject, css::uno::UNO_QUERY )
+-    , mxDockableWindow( xObject, css::uno::UNO_QUERY )
+-    , mxAccessible( xObject, css::uno::UNO_QUERY )
+-    , mxEventListener( xObject, css::uno::UNO_QUERY )
+-    , mxPropertySetInfo( xObject, css::uno::UNO_QUERY )
+-    , mxItemEventBroadcaster( xObject, css::uno::UNO_QUERY )
+-    , mxImageConsumer( xObject, css::uno::UNO_QUERY )
+-    , mxButton( xObject, css::uno::UNO_QUERY )
+-    , mxToggleButton( xObject, css::uno::UNO_QUERY )
+-{
+-}
+-
+-css::uno::Any SAL_CALL
+-VCLXProxy::queryInterface( const css::uno::Type & rType ) throw (css::uno::RuntimeException)
+-{
+-    css::uno::Any aRet;
+-
+-#define QI(t,memb) \
+-    if (!aRet.hasValue() && memb.is() && rType == t::static_type()) \
+-        aRet = css::uno::Any( css::uno::Reference< t >( static_cast<t *>(this) ) )
+-
+-    // VCLXDevice
+-    QI( css::awt::XDevice, mxDevice );
+-    QI( css::lang::XTypeProvider, mxTypeProvider );
+-    QI( css::lang::XUnoTunnel, mxUnoTunnel );
+-
+-    // VCLXWindow
+-    if (!aRet.hasValue() && mxComponent.is() &&
+-        rType == css::lang::XComponent::static_type())
+-        aRet = css::uno::Any( css::uno::Reference< css::lang::XComponent >( static_cast<css::awt::XWindow *>(this) ) );
+-
+-    QI( css::awt::XWindow, mxWindow );
+-    QI( css::awt::XWindow2, mxWindow2 );
+-    QI( css::awt::XWindowPeer, mxWindowPeer );
+-    QI( css::awt::XVclWindowPeer, mxVclWindowPeer );
+-    QI( css::awt::XLayoutConstrains, mxLayoutConstrains );
+-    QI( css::awt::XView, mxView );
+-    QI( css::awt::XDockableWindow, mxDockableWindow );
+-    QI( css::accessibility::XAccessible, mxAccessible );
+-    QI( css::lang::XEventListener, mxEventListener );
+-
+-    QI( css::beans::XPropertySetInfo, mxPropertySetInfo );
+-    QI( css::awt::XItemEventBroadcaster, mxItemEventBroadcaster );
+-    // VCLXImageConsumer
+-    QI( css::awt::XImageConsumer, mxImageConsumer );
+-    // VCLXButton
+-    QI( css::awt::XButton, mxButton );
+-    QI( css::awt::XToggleButton, mxToggleButton );
+-#undef QI
+-
+-    if ( !aRet.hasValue() )
+-        aRet = OWeakObject::queryInterface( rType );
+-    return aRet;
+-}
+-
+-
+-// Tons of boilerplate ... urgh [!]
+-
+-// lang::XComponent
+-void VCLXProxy::dispose() throw (css::uno::RuntimeException)
+-{
+-    mxComponent->dispose();
+-}
+-void VCLXProxy::addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxComponent->addEventListener( xListener );
+-}
+-void VCLXProxy::removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) throw (css::uno::RuntimeException)
+-{
+-    mxComponent->removeEventListener( aListener );
+-}
+-
+-// awt::XWindowPeer
+-css::uno::Reference< css::awt::XToolkit > VCLXProxy::getToolkit() throw (css::uno::RuntimeException)
+-{
+-    return mxWindowPeer->getToolkit();
+-}
+-void VCLXProxy::setPointer( const css::uno::Reference< css::awt::XPointer >& Pointer ) throw (css::uno::RuntimeException)
+-{
+-    mxWindowPeer->setPointer( Pointer );
+-}
+-void VCLXProxy::setBackground( ::sal_Int32 Color ) throw (css::uno::RuntimeException)
+-{
+-    mxWindowPeer->setBackground( Color );
+-}
+-void VCLXProxy::invalidate( ::sal_Int16 Flags ) throw (css::uno::RuntimeException)
+-{
+-    mxWindowPeer->invalidate( Flags );
+-}
+-void VCLXProxy::invalidateRect( const css::awt::Rectangle& Rect, ::sal_Int16 Flags ) throw (css::uno::RuntimeException)
+-{
+-    mxWindowPeer->invalidateRect( Rect, Flags );
+-}
+-
+-// awt::XDevice
+-css::uno::Reference< css::awt::XGraphics > VCLXProxy::createGraphics() throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->createGraphics();
+-}
+-css::uno::Reference< css::awt::XDevice > VCLXProxy::createDevice( ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->createDevice( nWidth, nHeight );
+-}
+-css::awt::DeviceInfo VCLXProxy::getInfo() throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->getInfo();
+-}
+-css::uno::Sequence< css::awt::FontDescriptor > VCLXProxy::getFontDescriptors() throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->getFontDescriptors();
+-}
+-css::uno::Reference< css::awt::XFont > VCLXProxy::getFont( const css::awt::FontDescriptor& aDescriptor ) throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->getFont( aDescriptor );
+-}
+-css::uno::Reference< css::awt::XBitmap > VCLXProxy::createBitmap( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->createBitmap( nX, nY, nWidth, nHeight );
+-}
+-css::uno::Reference< css::awt::XDisplayBitmap > VCLXProxy::createDisplayBitmap( const css::uno::Reference< css::awt::XBitmap >& Bitmap ) throw (css::uno::RuntimeException)
+-{
+-    return mxDevice->createDisplayBitmap( Bitmap );
+-}
+-
+-// lang::XTypeProvider
+-css::uno::Sequence< css::uno::Type > VCLXProxy::getTypes() throw (css::uno::RuntimeException)
+-{
+-    return mxTypeProvider->getTypes();
+-}
+-css::uno::Sequence< ::sal_Int8 > VCLXProxy::getImplementationId() throw (css::uno::RuntimeException)
+-{
+-    return mxTypeProvider->getImplementationId();
+-}
+-
+-// lang::XUnoTunnel
+-::sal_Int64 VCLXProxy::getSomething( const css::uno::Sequence< ::sal_Int8 >& aIdentifier ) throw (css::uno::RuntimeException)
+-{
+-    return mxUnoTunnel->getSomething( aIdentifier );
+-}
+-
+-// awt::XWindow2
+-void VCLXProxy::setOutputSize( const css::awt::Size& aSize ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow2->setOutputSize( aSize );
+-}
+-css::awt::Size VCLXProxy::getOutputSize() throw (css::uno::RuntimeException)
+-{
+-    return mxWindow2->getOutputSize();
+-}
+-::sal_Bool VCLXProxy::isVisible() throw (css::uno::RuntimeException)
+-{
+-    return mxWindow2->isVisible();
+-}
+-::sal_Bool VCLXProxy::isActive() throw (css::uno::RuntimeException)
+-{
+-    return mxWindow2->isActive();
+-}
+-::sal_Bool VCLXProxy::isEnabled() throw (css::uno::RuntimeException)
+-{
+-    return mxWindow2->isEnabled();
+-}
+-::sal_Bool VCLXProxy::hasFocus() throw (css::uno::RuntimeException)
+-{
+-    return mxWindow2->hasFocus();
+-}
+-
+-// awt::XWindow
+-void VCLXProxy::setPosSize( ::sal_Int32 X, ::sal_Int32 Y, ::sal_Int32 Width, ::sal_Int32 Height, ::sal_Int16 Flags ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->setPosSize( X, Y, Width, Height, Flags );
+-}
+-css::awt::Rectangle VCLXProxy::getPosSize() throw (css::uno::RuntimeException)
+-{
+-    return mxWindow->getPosSize();
+-}
+-void VCLXProxy::setVisible( ::sal_Bool Visible ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->setVisible( Visible );
+-}
+-void VCLXProxy::setEnable( ::sal_Bool Enable ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->setEnable( Enable );
+-}
+-void VCLXProxy::setFocus() throw (css::uno::RuntimeException)
+-{
+-    mxWindow->setFocus();
+-}
+-void VCLXProxy::addWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->addWindowListener( xListener );
+-}
+-void VCLXProxy::removeWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->removeWindowListener( xListener );
+-}
+-void VCLXProxy::addFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->addFocusListener( xListener );
+-}
+-void VCLXProxy::removeFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->removeFocusListener( xListener );
+-}
+-void VCLXProxy::addKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->addKeyListener( xListener );
+-}
+-void VCLXProxy::removeKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->removeKeyListener( xListener );
+-}
+-void VCLXProxy::addMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->addMouseListener( xListener );
+-}
+-void VCLXProxy::removeMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->removeMouseListener( xListener );
+-}
+-void VCLXProxy::addMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->addMouseMotionListener( xListener );
+-}
+-void VCLXProxy::removeMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->removeMouseMotionListener( xListener );
+-}
+-void VCLXProxy::addPaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->addPaintListener( xListener );
+-}
+-void VCLXProxy::removePaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxWindow->removePaintListener( xListener );
+-}
+-
+-// awt::XVclWindowPeer
+-::sal_Bool VCLXProxy::isChild( const css::uno::Reference< css::awt::XWindowPeer >& Peer ) throw (css::uno::RuntimeException)
+-{
+-    return mxVclWindowPeer->isChild( Peer );
+-}
+-void VCLXProxy::setDesignMode( ::sal_Bool bOn ) throw (css::uno::RuntimeException)
+-{
+-    mxVclWindowPeer->setDesignMode( bOn );
+-}
+-::sal_Bool VCLXProxy::isDesignMode() throw (css::uno::RuntimeException)
+-{
+-    return mxVclWindowPeer->isDesignMode();
+-}
+-void VCLXProxy::enableClipSiblings( ::sal_Bool bClip ) throw (css::uno::RuntimeException)
+-{
+-    mxVclWindowPeer->enableClipSiblings( bClip );
+-}
+-void VCLXProxy::setForeground( ::sal_Int32 Color ) throw (css::uno::RuntimeException)
+-{
+-    mxVclWindowPeer->setForeground( Color );
+-}
+-void VCLXProxy::setControlFont( const css::awt::FontDescriptor& aFont ) throw (css::uno::RuntimeException)
+-{
+-    mxVclWindowPeer->setControlFont( aFont );
+-}
+-void VCLXProxy::getStyles( ::sal_Int16 nType, css::awt::FontDescriptor& Font, ::sal_Int32& ForegroundColor, ::sal_Int32& BackgroundColor ) throw (css::uno::RuntimeException)
+-{
+-    mxVclWindowPeer->getStyles( nType, Font, ForegroundColor, BackgroundColor );
+-}
+-void VCLXProxy::setProperty( const ::rtl::OUString& PropertyName, const css::uno::Any& Value ) throw (css::uno::RuntimeException)
+-{
+-    mxVclWindowPeer->setProperty( PropertyName, Value );
+-}
+-css::uno::Any VCLXProxy::getProperty( const ::rtl::OUString& PropertyName ) throw (css::uno::RuntimeException)
+-{
+-    return mxVclWindowPeer->getProperty( PropertyName );
+-}
+-
+-// awt::XLayoutConstrains
+-css::awt::Size VCLXProxy::getMinimumSize() throw (css::uno::RuntimeException)
+-{
+-    return mxLayoutConstrains->getMinimumSize();
+-}
+-css::awt::Size VCLXProxy::getPreferredSize() throw (css::uno::RuntimeException)
+-{
+-    return mxLayoutConstrains->getPreferredSize();
+-}
+-css::awt::Size VCLXProxy::calcAdjustedSize( const css::awt::Size& aNewSize ) throw (css::uno::RuntimeException)
+-{
+-    return mxLayoutConstrains->calcAdjustedSize( aNewSize );
+-}
+-
+-// awt::XView
+-::sal_Bool VCLXProxy::setGraphics( const css::uno::Reference< css::awt::XGraphics >& aDevice ) throw (css::uno::RuntimeException)
+-{
+-    return mxView->setGraphics( aDevice );
+-}
+-css::uno::Reference< css::awt::XGraphics > VCLXProxy::getGraphics() throw (css::uno::RuntimeException)
+-{
+-    return mxView->getGraphics();
+-}
+-css::awt::Size VCLXProxy::getSize() throw (css::uno::RuntimeException)
+-{
+-    return mxView->getSize();
+-}
+-void VCLXProxy::draw( ::sal_Int32 nX, ::sal_Int32 nY ) throw (css::uno::RuntimeException)
+-{
+-    mxView->draw( nX, nY );
+-}
+-void VCLXProxy::setZoom( float fZoomX, float fZoomY ) throw (css::uno::RuntimeException)
+-{
+-    mxView->setZoom( fZoomX, fZoomY );
+-}
+-
+-// awt::XDockableWindow
+-void VCLXProxy::addDockableWindowListener( const css::uno::Reference< css::awt::XDockableWindowListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->addDockableWindowListener( xListener );
+-}
+-void VCLXProxy::removeDockableWindowListener( const css::uno::Reference< css::awt::XDockableWindowListener >& xListener ) throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->removeDockableWindowListener( xListener );
+-}
+-void VCLXProxy::enableDocking( ::sal_Bool bEnable ) throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->enableDocking( bEnable );
+-}
+-::sal_Bool VCLXProxy::isFloating() throw (css::uno::RuntimeException)
+-{
+-    return mxDockableWindow->isFloating();
+-}
+-void VCLXProxy::setFloatingMode( ::sal_Bool bFloating ) throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->setFloatingMode( bFloating );
+-}
+-void VCLXProxy::lock() throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->lock();
+-}
+-void VCLXProxy::unlock() throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->unlock();
+-}
+-::sal_Bool VCLXProxy::isLocked() throw (css::uno::RuntimeException)
+-{
+-    return mxDockableWindow->isLocked();
+-}
+-void VCLXProxy::startPopupMode( const css::awt::Rectangle& WindowRect ) throw (css::uno::RuntimeException)
+-{
+-    mxDockableWindow->startPopupMode( WindowRect );
+-}
+-::sal_Bool VCLXProxy::isInPopupMode() throw (css::uno::RuntimeException)
+-{
+-    return mxDockableWindow->isInPopupMode();
+-}
+-
+-// accessibility::XAccessible
+-css::uno::Reference< css::accessibility::XAccessibleContext > VCLXProxy::getAccessibleContext() throw (css::uno::RuntimeException)
+-{
+-    return mxAccessible->getAccessibleContext();
+-}
+-
+-// lang::XEventListener
+-void VCLXProxy::disposing( const css::lang::EventObject& Source ) throw (css::uno::RuntimeException)
+-{
+-    mxEventListener->disposing( Source );
+-}
+-
+-// beans::XPropertySetInfo
+-css::uno::Sequence< css::beans::Property > VCLXProxy::getProperties() throw (css::uno::RuntimeException)
+-{
+-    return mxPropertySetInfo->getProperties();
+-}
+-css::beans::Property VCLXProxy::getPropertyByName( const ::rtl::OUString& aName ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException)
+-{
+-    return mxPropertySetInfo->getPropertyByName( aName );
+-}
+-::sal_Bool VCLXProxy::hasPropertyByName( const ::rtl::OUString& Name ) throw (css::uno::RuntimeException)
+-{
+-    return mxPropertySetInfo->hasPropertyByName( Name );
+-}
+-
+-// awt::XImageConsumer
+-void VCLXProxy::init( ::sal_Int32 Width, ::sal_Int32 Height ) throw (css::uno::RuntimeException)
+-{
+-    mxImageConsumer->init( Width, Height );
+-}
+-void VCLXProxy::setColorModel( ::sal_Int16 BitCount, const css::uno::Sequence< ::sal_Int32 >& RGBAPal, ::sal_Int32 RedMask, ::sal_Int32 GreenMask, ::sal_Int32 BlueMask, ::sal_Int32 AlphaMask ) throw (css::uno::RuntimeException)
+-{
+-    mxImageConsumer->setColorModel( BitCount, RGBAPal, RedMask, GreenMask, BlueMask, AlphaMask );
+-}
+-void VCLXProxy::setPixelsByBytes( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const css::uno::Sequence< ::sal_Int8 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (css::uno::RuntimeException)
+-{
+-    mxImageConsumer->setPixelsByBytes( nX, nY, nWidth, nHeight, aProducerData, nOffset, nScanSize );
+-}
+-void VCLXProxy::setPixelsByLongs( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const css::uno::Sequence< ::sal_Int32 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (css::uno::RuntimeException)
+-{
+-    mxImageConsumer->setPixelsByLongs( nX, nY, nWidth, nHeight, aProducerData, nOffset, nScanSize );
+-}
+-void VCLXProxy::complete( ::sal_Int32 Status, const css::uno::Reference< css::awt::XImageProducer >& xProducer ) throw (css::uno::RuntimeException)
+-{
+-    mxImageConsumer->complete( Status, xProducer );
+-}
+-
+-// awt::XButton
+-void VCLXProxy::addActionListener( const css::uno::Reference< css::awt::XActionListener >& l ) throw (css::uno::RuntimeException)
+-{
+-    mxButton->addActionListener( l );
+-}
+-void VCLXProxy::removeActionListener( const css::uno::Reference< css::awt::XActionListener >& l ) throw (css::uno::RuntimeException)
+-{
+-    mxButton->removeActionListener( l );
+-}
+-void VCLXProxy::setLabel( const ::rtl::OUString& Label ) throw (css::uno::RuntimeException)
+-{
+-    if ( mxButton.is() )
+-        mxButton->setLabel( Label );
+-}
+-void VCLXProxy::setActionCommand( const ::rtl::OUString& Command ) throw (css::uno::RuntimeException)
+-{
+-    mxButton->setActionCommand( Command );
+-}
+-
+-// awt::XItemEventBroadcaster
+-void VCLXProxy::addItemListener( const css::uno::Reference< css::awt::XItemListener >& l ) throw (css::uno::RuntimeException)
+-{
+-    if ( mxItemEventBroadcaster.is() )
+-        mxItemEventBroadcaster->addItemListener( l );
+-}
+-void VCLXProxy::removeItemListener( const css::uno::Reference< css::awt::XItemListener >& l ) throw (css::uno::RuntimeException)
+-{
+-    if ( mxItemEventBroadcaster.is() )
+-        mxItemEventBroadcaster->removeItemListener( l );
+-}
+Index: toolkit/source/awt/vclxproxy.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxproxy.hxx
+diff -N toolkit/source/awt/vclxproxy.hxx
+--- toolkit/source/awt/vclxproxy.hxx	6 Mar 2008 11:41:03 -0000	1.2
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,204 +0,0 @@
+-#ifndef LAYOUT_AWT_VCLXPROXY_HXX
+-#define LAYOUT_AWT_VCLXPROXY_HXX
+-
+-#include <com/sun/star/awt/XDevice.hpp>
+-#include <com/sun/star/lang/XTypeProvider.hpp>
+-#include <com/sun/star/lang/XUnoTunnel.hpp>
+-
+-#include <com/sun/star/awt/XWindow.hpp>
+-#include <com/sun/star/awt/XWindow2.hpp>
+-#include <com/sun/star/awt/XVclWindowPeer.hpp>
+-#include <com/sun/star/awt/XLayoutConstrains.hpp>
+-#include <com/sun/star/awt/XView.hpp>
+-#include <com/sun/star/awt/XPointer.hpp>
+-#include <com/sun/star/awt/XGraphics.hpp>
+-#include <com/sun/star/beans/XPropertyChangeListener.hpp>
+-#include <com/sun/star/beans/XPropertySetInfo.hpp>
+-#include <com/sun/star/accessibility/XAccessible.hpp>
+-#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+-#include <com/sun/star/awt/XDockableWindow.hpp>
+-
+-#include <com/sun/star/awt/XImageConsumer.hpp>
+-#include <com/sun/star/awt/XButton.hpp>
+-#include <com/sun/star/awt/XToggleButton.hpp>
+-
+-#include <cppuhelper/weak.hxx>
+-
+-// This is a generic proxy class - override it to wrap &
+-// extend these interfaces
+-// Warning: this is of course not complete ...
+-class VCLXProxy :
+-    // VCLXDevice
+-    public com::sun::star::awt::XDevice,
+-    public com::sun::star::lang::XTypeProvider,
+-    public com::sun::star::lang::XUnoTunnel,
+-    // VCLXWindow
+-    public com::sun::star::awt::XWindow2,
+-    public com::sun::star::awt::XVclWindowPeer,
+-    public com::sun::star::awt::XLayoutConstrains,
+-    public com::sun::star::awt::XView,
+-    public com::sun::star::awt::XDockableWindow,
+-    public com::sun::star::accessibility::XAccessible,
+-    public com::sun::star::lang::XEventListener,
+-    public com::sun::star::beans::XPropertySetInfo,
+-    // VCLXImageConsumer
+-    public com::sun::star::awt::XImageConsumer,
+-    // VCLXButton
+-    public com::sun::star::awt::XButton,
+-    public com::sun::star::awt::XToggleButton,
+-    public ::cppu::OWeakObject
+-{
+-    // VCLXDevice
+-    com::sun::star::uno::Reference< com::sun::star::awt::XDevice > mxDevice;
+-    com::sun::star::uno::Reference< com::sun::star::lang::XTypeProvider > mxTypeProvider;
+-    com::sun::star::uno::Reference< com::sun::star::lang::XUnoTunnel > mxUnoTunnel;
+-
+-    // VCLXWindow
+-    com::sun::star::uno::Reference< com::sun::star::lang::XComponent > mxComponent;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XWindow > mxWindow;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XWindow2 > mxWindow2;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer > mxWindowPeer;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XVclWindowPeer > mxVclWindowPeer;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XLayoutConstrains > mxLayoutConstrains;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XView > mxView;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XDockableWindow > mxDockableWindow;
+-    com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible > mxAccessible;
+-    com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > mxEventListener;
+-    com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > mxPropertySetInfo;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XItemEventBroadcaster > mxItemEventBroadcaster;
+-
+-    // VCLXImageConsumer
+-    com::sun::star::uno::Reference< com::sun::star::awt::XImageConsumer > mxImageConsumer;
+-
+-    // VCLXButton
+-    com::sun::star::uno::Reference< com::sun::star::awt::XButton > mxButton;
+-    com::sun::star::uno::Reference< com::sun::star::awt::XToggleButton > mxToggleButton;
+-
+-public:
+-    VCLXProxy( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xObject );
+-
+-    // XInterface
+-    virtual void SAL_CALL acquire() throw() { ::cppu::OWeakObject::acquire(); }
+-    virtual void SAL_CALL release() throw() { ::cppu::OWeakObject::release(); }
+-    virtual com::sun::star::uno::Any SAL_CALL queryInterface( const com::sun::star::uno::Type & rType ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // lang::XComponent
+-    virtual void SAL_CALL dispose() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XWindowPeer
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XToolkit > SAL_CALL getToolkit() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setPointer( const com::sun::star::uno::Reference< com::sun::star::awt::XPointer >& Pointer ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setBackground( ::sal_Int32 Color ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL invalidate( ::sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL invalidateRect( const com::sun::star::awt::Rectangle& Rect, ::sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XDevice
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XGraphics > SAL_CALL createGraphics() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XDevice > SAL_CALL createDevice( ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::awt::DeviceInfo SAL_CALL getInfo() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Sequence< com::sun::star::awt::FontDescriptor > SAL_CALL getFontDescriptors() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XFont > SAL_CALL getFont( const com::sun::star::awt::FontDescriptor& aDescriptor ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XBitmap > SAL_CALL createBitmap( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XDisplayBitmap > SAL_CALL createDisplayBitmap( const com::sun::star::uno::Reference< com::sun::star::awt::XBitmap >& Bitmap ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // lang::XTypeProvider
+-    virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException);
+-
+-    // lang::XUnoTunnel
+-    virtual ::sal_Int64 SAL_CALL getSomething( const com::sun::star::uno::Sequence< ::sal_Int8 >& aIdentifier ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XWindow2
+-    virtual void SAL_CALL setOutputSize( const com::sun::star::awt::Size& aSize ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::awt::Size SAL_CALL getOutputSize() throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isVisible() throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isActive() throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isEnabled() throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL hasFocus() throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XWindow
+-    virtual void SAL_CALL setPosSize( ::sal_Int32 X, ::sal_Int32 Y, ::sal_Int32 Width, ::sal_Int32 Height, ::sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::awt::Rectangle SAL_CALL getPosSize() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setVisible( ::sal_Bool Visible ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setEnable( ::sal_Bool Enable ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setFocus() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addFocusListener( const com::sun::star::uno::Reference< com::sun::star::awt::XFocusListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeFocusListener( const com::sun::star::uno::Reference< com::sun::star::awt::XFocusListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addKeyListener( const com::sun::star::uno::Reference< com::sun::star::awt::XKeyListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeKeyListener( const com::sun::star::uno::Reference< com::sun::star::awt::XKeyListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addMouseListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeMouseListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addMouseMotionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseMotionListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeMouseMotionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseMotionListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL addPaintListener( const com::sun::star::uno::Reference< com::sun::star::awt::XPaintListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removePaintListener( const com::sun::star::uno::Reference< com::sun::star::awt::XPaintListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XVclWindowPeer
+-    virtual ::sal_Bool SAL_CALL isChild( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer >& Peer ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setDesignMode( ::sal_Bool bOn ) throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isDesignMode() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL enableClipSiblings( ::sal_Bool bClip ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setForeground( ::sal_Int32 Color ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setControlFont( const com::sun::star::awt::FontDescriptor& aFont ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL getStyles( ::sal_Int16 nType, com::sun::star::awt::FontDescriptor& Font, ::sal_Int32& ForegroundColor, ::sal_Int32& BackgroundColor ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const com::sun::star::uno::Any& Value ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XLayoutConstrains
+-    virtual com::sun::star::awt::Size SAL_CALL getMinimumSize() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::awt::Size SAL_CALL getPreferredSize() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const com::sun::star::awt::Size& aNewSize ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XView
+-    virtual ::sal_Bool SAL_CALL setGraphics( const com::sun::star::uno::Reference< com::sun::star::awt::XGraphics >& aDevice ) throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::uno::Reference< com::sun::star::awt::XGraphics > SAL_CALL getGraphics() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::awt::Size SAL_CALL getSize() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL draw( ::sal_Int32 nX, ::sal_Int32 nY ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setZoom( float fZoomX, float fZoomY ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XDockableWindow
+-    virtual void SAL_CALL addDockableWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XDockableWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeDockableWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XDockableWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL enableDocking( ::sal_Bool bEnable ) throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isFloating() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setFloatingMode( ::sal_Bool bFloating ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL lock() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL unlock() throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isLocked() throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL startPopupMode( const com::sun::star::awt::Rectangle& WindowRect ) throw (com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL isInPopupMode() throw (com::sun::star::uno::RuntimeException);
+-
+-    // accessibility::XAccessible
+-    virtual com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() throw (com::sun::star::uno::RuntimeException);
+-
+-    // lang::XEventListener
+-    virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // beans::XPropertySetInfo
+-    virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property > SAL_CALL getProperties() throw (com::sun::star::uno::RuntimeException);
+-    virtual com::sun::star::beans::Property SAL_CALL getPropertyByName( const ::rtl::OUString& aName ) throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::uno::RuntimeException);
+-    virtual ::sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& Name ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XImageConsumer
+-    virtual void SAL_CALL init( ::sal_Int32 Width, ::sal_Int32 Height ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setColorModel( ::sal_Int16 BitCount, const com::sun::star::uno::Sequence< ::sal_Int32 >& RGBAPal, ::sal_Int32 RedMask, ::sal_Int32 GreenMask, ::sal_Int32 BlueMask, ::sal_Int32 AlphaMask ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setPixelsByBytes( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const com::sun::star::uno::Sequence< ::sal_Int8 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setPixelsByLongs( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const com::sun::star::uno::Sequence< ::sal_Int32 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL complete( ::sal_Int32 Status, const com::sun::star::uno::Reference< com::sun::star::awt::XImageProducer >& xProducer ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XButton
+-    virtual void SAL_CALL addActionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XActionListener >& l ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeActionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XActionListener >& l ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setLabel( const ::rtl::OUString& Label ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL setActionCommand( const ::rtl::OUString& Command ) throw (com::sun::star::uno::RuntimeException);
+-
+-    // awt::XItemEventBroadcaster
+-    virtual void SAL_CALL addItemListener( const com::sun::star::uno::Reference< com::sun::star::awt::XItemListener >& l ) throw (com::sun::star::uno::RuntimeException);
+-    virtual void SAL_CALL removeItemListener( const com::sun::star::uno::Reference< com::sun::star::awt::XItemListener >& l ) throw (com::sun::star::uno::RuntimeException);
+-};
+-
+-#endif // LAYOUT_AWT_VCLXPROXY_HXX
+Index: toolkit/source/awt/vclxscroller.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxscroller.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.4
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.4
+--- toolkit/source/awt/vclxscroller.cxx	6 Mar 2008 11:41:15 -0000	1.2
++++ toolkit/source/awt/vclxscroller.cxx	28 Mar 2008 13:45:13 -0000	1.2.6.4
+@@ -1,32 +1,52 @@
+-#include "vclxscroller.hxx"
+-#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
+-#include "toolkit/helper/property.hxx"
+-#endif
+-#ifndef _COM_SUN_STAR_AWT_SCROLLBARORIENTATION_HPP_
+-#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+-#endif
+-
+-#ifndef _TOOLS_DEBUG_HXX
+-#include <tools/debug.hxx>
+-#endif
+-#include <vcl/scrbar.hxx>
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
+ 
+-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+-#include <toolkit/helper/vclunohelper.hxx>
+-#endif
++#include "vclxscroller.hxx"
+ 
++#include <assert.h>
+ #include <com/sun/star/awt/PosSize.hpp>
+-
++#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+ #include <sal/macros.h>
+-#include <assert.h>
++#include <toolkit/helper/property.hxx>
++#include <tools/debug.hxx>
++#include <vcl/scrbar.hxx>
+ 
+-//#include <vcl/fixed.h>
++#include "forward.hxx"
+ 
+-using namespace toolkit;
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+@@ -34,11 +54,8 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star;
+ 
+-//====================================================================
+-//= VCLXScroller
+-//====================================================================
+ DBG_NAME( VCLXScroller )
+-//--------------------------------------------------------------------
++
+ VCLXScroller::VCLXScroller( )
+ : VCLXWindow()
+     , Bin()
+@@ -47,19 +64,15 @@ VCLXScroller::VCLXScroller( )
+     mpHorScrollBar = mpVerScrollBar = 0;
+ }
+ 
+-//--------------------------------------------------------------------
+ VCLXScroller::~VCLXScroller()
+ {
+     DBG_DTOR( VCLXScroller, NULL );
+ }
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_2_FORWARD_XINTERFACE1( VCLXScroller, VCLXWindow, Container )
++IMPLEMENT_2_FORWARD_XINTERFACE1( VCLXScroller, VCLXWindow, Container );
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXScroller, VCLXWindow )
++IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXScroller, VCLXWindow );
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXScroller::dispose( ) throw(RuntimeException)
+ {
+     {
+@@ -73,7 +86,6 @@ void SAL_CALL VCLXScroller::dispose( ) t
+     VCLXWindow::dispose();
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXScroller::ensureScrollBars()
+ {
+ 
+@@ -96,7 +108,6 @@ void VCLXScroller::ensureScrollBars()
+ 
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXScroller::allocateArea(
+     const ::com::sun::star::awt::Rectangle &rArea )
+     throw (::com::sun::star::uno::RuntimeException)
+@@ -128,7 +139,6 @@ void SAL_CALL VCLXScroller::allocateArea
+         allocateChildAt( mxChild, childRect );
+ }
+ 
+-//--------------------------------------------------------------------
+ #define MAX_CHILD_REQ 40
+ ::com::sun::star::awt::Size SAL_CALL VCLXScroller::getMinimumSize()
+     throw(::com::sun::star::uno::RuntimeException)
+@@ -144,37 +154,42 @@ void SAL_CALL VCLXScroller::allocateArea
+     return maRequisition;
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXScroller::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
++/*
+     ::vos::OClearableGuard aGuard( GetMutex() );
+ 
+     switch ( _rVclWindowEvent.GetId() )
+     {
+         default:
+             aGuard.clear();
++*/
+             VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++/*
+             break;
+     }
++*/
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXScroller::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+ 
+     if ( GetWindow() )
+     {
++/*
+         sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+         switch ( nPropertyId )
+         {
+             default:
++*/
+                 VCLXWindow::setProperty( PropertyName, Value );
++/*
+         }
++*/
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ Any SAL_CALL VCLXScroller::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+@@ -182,12 +197,15 @@ Any SAL_CALL VCLXScroller::getProperty( 
+     Any aReturn;
+     if ( GetWindow() )
+     {
++/*
+         sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+         switch ( nPropertyId )
+         {
+             default:
++*/
+                 aReturn = VCLXWindow::getProperty( PropertyName );
+-        }
++
++//        }
+     }
+     return aReturn;
+ }
+@@ -199,6 +217,4 @@ IMPL_LINK( VCLXScroller, ScrollHdl, Scro
+     return 0;
+ }
+ 
+-//........................................................................
+-} // namespace toolkit
+-//........................................................................
++} // namespace layoutimpl
+Index: toolkit/source/awt/vclxscroller.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxscroller.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/awt/vclxscroller.hxx	6 Mar 2008 11:41:26 -0000	1.2
++++ toolkit/source/awt/vclxscroller.hxx	28 Mar 2008 13:14:18 -0000	1.2.6.2
+@@ -1,37 +1,50 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUT_AWT_VCLXSCROLLER_HXX
+ #define LAYOUT_AWT_VCLXSCROLLER_HXX
+ 
+-#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
+-#include <toolkit/awt/vclxwindow.hxx>
+-#endif
+-#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
+-#include <toolkit/helper/listenermultiplexer.hxx>
+-#endif
+-#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+-#include <cppuhelper/implbase1.hxx>
+-#endif
+-#ifndef _COMPHELPER_UNO3_HXX_
+ #include <comphelper/uno3.hxx>
+-#endif
+-#include "../layout/bin.hxx"
+-
+-#include <com/sun/star/awt/MaxChildrenException.hpp>
+-#include <com/sun/star/beans/XPropertySet.hpp>
+-
+-#include "forward.hxx"
++#include <layout/bin.hxx>
++#include <toolkit/awt/vclxwindow.hxx>
+ 
+ class ScrollBar;
+ class FixedImage;
+-using namespace toolkit;
+ 
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+-
+-//====================================================================
+-//= VCLXScroller
+-//====================================================================
+ 
+ class VCLXScroller :public VCLXWindow
+                    ,public Bin
+@@ -77,8 +90,6 @@ private:
+     DECL_LINK( ScrollHdl, ScrollBar* );
+ };
+ 
+-//........................................................................
+-} // namespacetoolkit
+-//........................................................................
++} // namespace layoutimpl
+ 
+ #endif /*LAYOUT_AWT_VCLXSCROLLER_HXX*/
+Index: toolkit/source/awt/vclxsplitter.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxsplitter.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/awt/vclxsplitter.cxx	6 Mar 2008 11:41:41 -0000	1.2
++++ toolkit/source/awt/vclxsplitter.cxx	27 Mar 2008 13:08:18 -0000	1.2.6.3
+@@ -1,27 +1,51 @@
+-#include "vclxsplitter.hxx"
+-#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
+-#include "toolkit/helper/property.hxx"
+-#endif
+-
+-#ifndef _TOOLS_DEBUG_HXX
+-#include <tools/debug.hxx>
+-#endif
+-#include <vcl/split.hxx>
+-
+-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+-#include <toolkit/helper/vclunohelper.hxx>
+-#endif
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
+ 
+-#include <com/sun/star/awt/PosSize.hpp>
++#include "vclxsplitter.hxx"
+ 
+ #include <assert.h>
++#include <com/sun/star/awt/PosSize.hpp>
+ #include <sal/macros.h>
++#include <toolkit/helper/property.hxx>
++#include <toolkit/helper/vclunohelper.hxx>
++#include <vcl/split.hxx>
++
++#include "forward.hxx"
+ 
+-using namespace toolkit;
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+@@ -29,26 +53,37 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star;
+ 
+-class SplitterChildProps : public PropHelper
+-{
+-public:
+-    SplitterChildProps( VCLXSplitter::ChildData *pData )
++VCLXSplitter::ChildProps::ChildProps( VCLXSplitter::ChildData *pData )
+     {
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "Shrink" ),
+                  ::getCppuType( static_cast< const rtl::OUString* >( NULL ) ),
+-                 &(pData->bShrink) );
++             &(pData->mbShrink) );
++}
++
++VCLXSplitter::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    : Box_Base::ChildData( xChild )
++    , mbShrink( false )
++{
++}
++
++VCLXSplitter::ChildData*
++VCLXSplitter::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
++{
++    return new ChildData( xChild );
++}
++
++VCLXSplitter::ChildProps*
++VCLXSplitter::createChildProps( Box_Base::ChildData *pData )
++{
++    return new ChildProps( static_cast<VCLXSplitter::ChildData*> ( pData ) );
+     }
+-    PROPHELPER_SET_INFO
+-};
+ 
+-//====================================================================
+-//= VCLXSplitter
+-//====================================================================
+-DBG_NAME( VCLXSplitter )
+-//--------------------------------------------------------------------
++
++DBG_NAME( VCLXSplitter );
++
+ VCLXSplitter::VCLXSplitter( bool bHorizontal )
+ : VCLXWindow()
+-    , Container()
++  , Box_Base()
+ {
+     DBG_CTOR( VCLXSplitter, NULL );
+     mnHandleRatio = 0.5;
+@@ -57,19 +92,25 @@ VCLXSplitter::VCLXSplitter( bool bHorizo
+     mpSplitter = NULL;
+ }
+ 
+-//--------------------------------------------------------------------
+ VCLXSplitter::~VCLXSplitter()
+ {
+     DBG_DTOR( VCLXSplitter, NULL );
+ }
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_2_FORWARD_XINTERFACE1( VCLXSplitter, VCLXWindow, Container )
++IMPLEMENT_2_FORWARD_XINTERFACE1( VCLXSplitter, VCLXWindow, Container );
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXSplitter, VCLXWindow )
++IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXSplitter, VCLXWindow );
++
++VCLXSplitter::ChildData*
++VCLXSplitter::getChild( int i )
++{
++    if ( maChildren.size() && i == 0 )
++        return static_cast<VCLXSplitter::ChildData*>( maChildren.front() );
++    else if ( maChildren.size() > 1 && i == 1 )
++        return static_cast<VCLXSplitter::ChildData*>( maChildren.back() );
++    return 0;
++}
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXSplitter::dispose( ) throw(RuntimeException)
+ {
+     {
+@@ -83,7 +124,6 @@ void SAL_CALL VCLXSplitter::dispose( ) t
+     VCLXWindow::dispose();
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXSplitter::ensureSplitter()
+ {
+     if ( !mpSplitter )
+@@ -94,86 +134,15 @@ void VCLXSplitter::ensureSplitter()
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXSplitter::addChild(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
+     throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException)
+ {
+-    ChildData *pData;
+-    if ( ! maChildren[ 0 ].xChild.is() )
+-        pData = &maChildren[ 0 ];
+-    else if ( ! maChildren[ 1 ].xChild.is() )
+-        pData = &maChildren[ 1 ];
+-    else
++    if ( maChildren.size() == 2 )
+         throw css::awt::MaxChildrenException();
+-
+-    if ( xChild.is() )
+-    {
+-        pData->xChild = xChild;
+-        setChildParent( xChild );
+-        queueResize();
+-    }
++    Box_Base::addChild( xChild );
+ }
+ 
+-//--------------------------------------------------------------------
+-void SAL_CALL VCLXSplitter::removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
+-    throw (::com::sun::star::uno::RuntimeException)
+-{
+-    ChildData *pData = 0;
+-    if ( maChildren[ 0 ].xChild == xChild )
+-        pData = &maChildren[ 0 ];
+-    else if ( maChildren[ 1 ].xChild == xChild )
+-        pData = &maChildren[ 1 ];
+-
+-    if ( pData )
+-    {
+-        pData->xChild = uno::Reference< awt::XLayoutConstrains >();
+-        unsetChildParent( xChild );
+-        queueResize();
+-    }
+-}
+-
+-//--------------------------------------------------------------------
+-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
+-                                 < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL VCLXSplitter::getChildren()
+-    throw (::com::sun::star::uno::RuntimeException)
+-{
+-    int childLen = (maChildren[ 0 ].xChild.is() ? 1: 0) +
+-        (maChildren[ 1 ].xChild.is() ? 1: 0);
+-    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > childrenSeq( childLen );
+-    int i = 0;
+-    if ( maChildren[ 0 ].xChild.is() )
+-        childrenSeq[ i++ ] = maChildren[ 0 ].xChild;
+-    if ( maChildren[ 1 ].xChild.is() )
+-        childrenSeq[ i++ ] = maChildren[ 1 ].xChild;
+-    return childrenSeq;
+-}
+-
+-//--------------------------------------------------------------------
+-uno::Reference< beans::XPropertySet > SAL_CALL
+-VCLXSplitter::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw (uno::RuntimeException)
+-{
+-    ChildData *pData = 0;
+-    if ( maChildren[ 0 ].xChild == xChild )
+-        pData = &maChildren[ 0 ];
+-    else if ( maChildren[ 1 ].xChild == xChild )
+-        pData = &maChildren[ 1 ];
+-
+-    if ( pData )
+-    {
+-        if ( !pData->xProps.is() )
+-        {
+-            PropHelper *pProps = new SplitterChildProps( pData );
+-            pProps->setChangeListener( this );
+-            pData->xProps = pProps;
+-        }
+-        return pData->xProps;
+-    }
+-    return uno::Reference< beans::XPropertySet >();
+-}
+-
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXSplitter::allocateArea(
+     const ::com::sun::star::awt::Rectangle &rArea )
+     throw (::com::sun::star::uno::RuntimeException)
+@@ -203,7 +172,7 @@ void SAL_CALL VCLXSplitter::allocateArea
+     int leftWidth = splitPos;
+     int rightWidth = width - splitPos;
+ 
+-    if ( maChildren[ 0 ].xChild.is() )
++    if ( getChild( 0 ) && getChild( 0 )->mxChild.is() )
+     {
+         awt::Rectangle childRect( 0, 0, rArea.Width, rArea.Height );
+ 
+@@ -211,9 +180,9 @@ void SAL_CALL VCLXSplitter::allocateArea
+             childRect.Width = leftWidth - 2;
+         else
+             childRect.Height = leftWidth - 2;
+-        allocateChildAt( maChildren[ 0 ].xChild, childRect );
++        allocateChildAt( getChild( 0 )->mxChild, childRect );
+     }
+-    if ( maChildren[ 1 ].xChild.is() )
++    if ( getChild( 0 ) && getChild( 0 )->mxChild.is() )
+     {
+         awt::Rectangle childRect( 0, 0, rArea.Width, rArea.Height );
+ 
+@@ -227,11 +196,10 @@ void SAL_CALL VCLXSplitter::allocateArea
+             childRect.Y += leftWidth + splitLen + 2;
+             childRect.Height = rightWidth;
+         }
+-        allocateChildAt( maChildren[ 1 ].xChild, childRect );
++        allocateChildAt( getChild( 1 )->mxChild, childRect );
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ ::com::sun::star::awt::Size SAL_CALL VCLXSplitter::getMinimumSize()
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+@@ -240,9 +208,9 @@ void SAL_CALL VCLXSplitter::allocateArea
+     awt::Size size( mbHorizontal ? 2 : 0, mbHorizontal ? 0 : 2 );
+     for( unsigned int i = 0; i < 2; i++ )
+     {
+-        if ( maChildren[ i ].xChild.is() )
++        if ( getChild( i ) && getChild( i )->mxChild.is() )
+         {
+-            awt::Size childSize = maChildren[ i ].xChild->getMinimumSize();
++            awt::Size childSize = getChild( i )->mxChild->getMinimumSize();
+             if ( mbHorizontal )
+             {
+                 size.Width += childSize.Width;
+@@ -260,51 +228,19 @@ void SAL_CALL VCLXSplitter::allocateArea
+     return size;
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXSplitter::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
+-    ::vos::OClearableGuard aGuard( GetMutex() );
+-    switch ( _rVclWindowEvent.GetId() )
+-    {
+-        default:
+-            aGuard.clear();
+             VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
+-            break;
+-    }
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXSplitter::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    if ( GetWindow() )
+-    {
+-        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+-        switch ( nPropertyId )
+-        {
+-            default:
+                 VCLXWindow::setProperty( PropertyName, Value );
+         }
+-    }
+-}
+ 
+-//--------------------------------------------------------------------
+ Any SAL_CALL VCLXSplitter::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    Any aReturn;
+-    if ( GetWindow() )
+-    {
+-        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+-        switch ( nPropertyId )
+-        {
+-            default:
+-                aReturn = VCLXWindow::getProperty( PropertyName );
+-        }
+-    }
+-    return aReturn;
++    return VCLXWindow::getProperty( PropertyName );
+ }
+ 
+ IMPL_LINK( VCLXSplitter, HandleMovedHdl, Splitter *, pSplitter )
+@@ -314,6 +250,4 @@ IMPL_LINK( VCLXSplitter, HandleMovedHdl,
+     return 0;
+ }
+ 
+-//........................................................................
+-} // namespace toolkit
+-//........................................................................
++} // namespace layoutimpl
+Index: toolkit/source/awt/vclxsplitter.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxsplitter.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.4
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.4
+--- toolkit/source/awt/vclxsplitter.hxx	6 Mar 2008 11:41:52 -0000	1.2
++++ toolkit/source/awt/vclxsplitter.hxx	28 Mar 2008 13:45:13 -0000	1.2.6.4
+@@ -1,40 +1,59 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUT_AWT_VCLXSPLITTER_HXX
+ #define LAYOUT_AWT_VCLXSPLITTER_HXX
+ 
+-#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
+-#include <toolkit/awt/vclxwindow.hxx>
+-#endif
+-#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
+-#include <toolkit/helper/listenermultiplexer.hxx>
+-#endif
+-#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+-#include <cppuhelper/implbase1.hxx>
+-#endif
+-#ifndef _COMPHELPER_UNO3_HXX_
+-#include <comphelper/uno3.hxx>
+-#endif
+-#include "../layout/container.hxx"
+-
+ #include <com/sun/star/awt/MaxChildrenException.hpp>
+ #include <com/sun/star/beans/XPropertySet.hpp>
+-
+-#include "forward.hxx"
++#include <comphelper/uno3.hxx>
++#include <layout/box-base.hxx>
++#include <toolkit/awt/vclxwindow.hxx>
+ 
+ class Splitter;
+-using namespace toolkit;
+ 
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+-
+-//====================================================================
+-//= VCLXSplitter
+-//====================================================================
+ 
+ class VCLXSplitter :public VCLXWindow
+-                   ,public Container
++                   ,public Box_Base
+ {
++private:
++    VCLXSplitter( const VCLXSplitter& );            // never implemented
++    VCLXSplitter& operator=( const VCLXSplitter& ); // never implemented
++
+ public:
+     VCLXSplitter( bool bHorizontal );
+ 
+@@ -54,12 +73,6 @@ protected:
+     virtual void SAL_CALL addChild(
+         const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
+         throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException);
+-    virtual void SAL_CALL removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
+-        throw (::com::sun::star::uno::RuntimeException);
+-
+-    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
+-                                             < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL getChildren()
+-        throw (::com::sun::star::uno::RuntimeException);
+ 
+     virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea )
+         throw (::com::sun::star::uno::RuntimeException);
+@@ -67,10 +80,6 @@ protected:
+     virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
+         throw(::com::sun::star::uno::RuntimeException);
+ 
+-    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
+-        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException);
+-
+     // unimplemented:
+     virtual sal_Bool SAL_CALL hasHeightForWidth()
+         throw(css::uno::RuntimeException)
+@@ -86,21 +95,25 @@ protected:
+     // VCLXWindow
+     void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
+ 
+-private:
+-    VCLXSplitter( const VCLXSplitter& );            // never implemented
+-    VCLXSplitter& operator=( const VCLXSplitter& ); // never implemented
+-
++public:
+     // Maps page ids to child references
+-    friend class SplitterChildProps;
+-    struct ChildData
++    struct ChildData : public Box_Base::ChildData
+     {
+-        sal_Bool bShrink;
++        sal_Bool mbShrink;
++        ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++    };
+ 
+-        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
+-        css::uno::Reference< css::beans::XPropertySet >    xProps;
+-        bool isVisible();
++    struct ChildProps : public Box_Base::ChildProps
++    {
++        ChildProps( VCLXSplitter::ChildData *pData );
+     };
+-    ChildData maChildren[ 2 ];  // some may be null
++
++protected:
++
++    ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++    ChildProps *createChildProps( Box_Base::ChildData* pData );
++
++    ChildData* getChild( int i );
+ 
+     float mnHandleRatio;
+     bool mbHandlePressed;
+@@ -111,8 +124,6 @@ private:
+     void ensureSplitter();
+ };
+ 
+-//........................................................................
+-} // namespacetoolkit
+-//........................................................................
++} // namespace layoutimpl
+ 
+ #endif /*LAYOUT_AWT_VCLXSPLITTER_HXX*/
+Index: toolkit/source/awt/vclxtabcontrol.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxtabcontrol.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/awt/vclxtabcontrol.cxx	6 Mar 2008 11:42:06 -0000	1.2
++++ toolkit/source/awt/vclxtabcontrol.cxx	27 Mar 2008 13:08:18 -0000	1.2.6.3
+@@ -1,33 +1,51 @@
+-#include "vclxtabcontrol.hxx"
+-
+-#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
+-#include "toolkit/helper/property.hxx"
+-#endif
+-#ifndef _COM_SUN_STAR_AWT_SCROLLBARORIENTATION_HPP_
+-#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+-#endif
+-
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
+ 
+-#ifndef _TOOLS_DEBUG_HXX
+-#include <tools/debug.hxx>
+-#endif
+-#ifndef _SV_TABCTRL_HXX
+-#include <vcl/tabctrl.hxx>
+-#endif
+-
+-#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+-#include <toolkit/helper/vclunohelper.hxx>
+-#endif
++#include "vclxtabcontrol.hxx"
+ 
+-#include <vcl/tabpage.hxx>
+ #include <com/sun/star/awt/PosSize.hpp>
+ #include <sal/macros.h>
++#include <toolkit/helper/property.hxx>
++#include <toolkit/helper/vclunohelper.hxx>
++#include <vcl/tabctrl.hxx>
++#include <vcl/tabpage.hxx>
++
++#include "forward.hxx"
+ 
+-using namespace toolkit;
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+@@ -35,46 +53,51 @@ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star;
+ 
+-class TabChildProps : public PropHelper
+-{
+-public:
+-    TabChildProps( VCLXTabControl::ChildData *pData )
++VCLXTabControl::ChildProps::ChildProps( VCLXTabControl::ChildData *pData )
+     {
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "Title" ),
+                  ::getCppuType( static_cast< const rtl::OUString* >( NULL ) ),
+-                 &(pData->aTitle) );
++             &(pData->maTitle) );
+     }
+-    PROPHELPER_SET_INFO
+-};
+ 
+-//====================================================================
+-//= VCLXTabControl
+-//====================================================================
+-DBG_NAME( VCLXTabControl )
+-//--------------------------------------------------------------------
++VCLXTabControl::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    : Box_Base::ChildData( xChild )
++    , maTitle()
++{
++}
++
++VCLXTabControl::ChildData*
++VCLXTabControl::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
++{
++    return new ChildData( xChild );
++}
++
++VCLXTabControl::ChildProps*
++VCLXTabControl::createChildProps( Box_Base::ChildData *pData )
++{
++    return new ChildProps( static_cast<VCLXTabControl::ChildData*> ( pData ) );
++}
++
++DBG_NAME( VCLXTabControl );
++
+ VCLXTabControl::VCLXTabControl()
+ : VCLXWindow()
+     , VCLXTabControl_Base()
+-    , Container()
++  , Box_Base()
++  , mnNextTabId( 1 )
+ {
+     DBG_CTOR( VCLXTabControl, NULL );
+-    mnNextTabId = 1;
+-    mnChildrenNb = 0;
+ }
+ 
+-//--------------------------------------------------------------------
+ VCLXTabControl::~VCLXTabControl()
+ {
+     DBG_DTOR( VCLXTabControl, NULL );
+ }
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXTabControl, VCLXWindow, Container, VCLXTabControl_Base )
++IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXTabControl, VCLXWindow, Container, VCLXTabControl_Base );
+ 
+-//--------------------------------------------------------------------
+-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Base )
++IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Base );
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::dispose( ) throw(RuntimeException)
+ {
+     {
+@@ -87,23 +110,21 @@ void SAL_CALL VCLXTabControl::dispose( )
+ 
+     VCLXWindow::dispose();
+ }
+-/*
+-//--------------------------------------------------------------------
++
++#if 0
+ void SAL_CALL VCLXTabControl::addTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException)
+ {
+ if ( listener.is() )
+ maTabListeners.addInterface( listener );
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::removeTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException)
+ {
+ if ( listener.is() )
+ maTabListeners.removeInterface( listener );
+ }
+-*/
++#endif
+ 
+-//--------------------------------------------------------------------
+ TabControl *VCLXTabControl::getTabControl() const throw (RuntimeException)
+ {
+     TabControl *pTabControl = static_cast< TabControl* >( GetWindow() );
+@@ -112,48 +133,42 @@ TabControl *VCLXTabControl::getTabContro
+     throw RuntimeException();
+ }
+ 
+-//--------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXTabControl::insertTab() throw (RuntimeException)
+ {
+     TabControl *pTabControl = getTabControl();
+-    int id = mnNextTabId++;
++    USHORT id = sal::static_int_cast< USHORT >( mnNextTabId++ );
+     rtl::OUString title (RTL_CONSTASCII_USTRINGPARAM( "" ) );
+     pTabControl->InsertPage( id, title.getStr(), TAB_APPEND );
+     pTabControl->SetTabPage( id, new TabPage( pTabControl ) );
+     return id;
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::removeTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException)
+ {
+     TabControl *pTabControl = getTabControl();
+-    if ( pTabControl->GetTabPage( ID ) == NULL )
++    if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
+         throw IndexOutOfBoundsException();
+-    pTabControl->RemovePage( ID );
++    pTabControl->RemovePage( sal::static_int_cast< USHORT >( ID ) );
+ }
+ 
+-
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::activateTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException)
+ {
+     TabControl *pTabControl = getTabControl();
+-    if ( pTabControl->GetTabPage( ID ) == NULL )
++    if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
+         throw IndexOutOfBoundsException();
+-    pTabControl->SelectTabPage( ID );
++    pTabControl->SelectTabPage( sal::static_int_cast< USHORT >( ID ) );
+ }
+ 
+-//--------------------------------------------------------------------
+ sal_Int32 SAL_CALL VCLXTabControl::getActiveTabID() throw (RuntimeException)
+ {
+     return getTabControl()->GetCurPageId( );
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::addTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    std::list< ::com::sun::star::uno::Reference
+-        < ::com::sun::star::awt::XTabListener > >::const_iterator it;
+-    for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
++    for ( std::list< ::com::sun::star::uno::Reference
++              < ::com::sun::star::awt::XTabListener > >::const_iterator it
++              = mxTabListeners.begin(); it != mxTabListeners.end(); it++ )
+     {
+         if ( *it == xListener )
+             // already added
+@@ -162,12 +177,11 @@ void SAL_CALL VCLXTabControl::addTabList
+     mxTabListeners.push_back( xListener );
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::removeTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+ {
+-    std::list< ::com::sun::star::uno::Reference
+-        < ::com::sun::star::awt::XTabListener > >::iterator it;
+-    for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
++    for ( std::list< ::com::sun::star::uno::Reference
++              < ::com::sun::star::awt::XTabListener > >::iterator it
++              = mxTabListeners.begin(); it != mxTabListeners.end(); it++ )
+     {
+         if ( *it == xListener )
+         {
+@@ -177,11 +191,10 @@ void SAL_CALL VCLXTabControl::removeTabL
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedValue >& Properties ) throw (RuntimeException, IndexOutOfBoundsException)
+ {
+     TabControl *pTabControl = getTabControl();
+-    if ( pTabControl->GetTabPage( ID ) == NULL )
++    if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
+         throw IndexOutOfBoundsException();
+ 
+     for( int i = 0; i < Properties.getLength(); i++ )
+@@ -192,17 +205,16 @@ void SAL_CALL VCLXTabControl::setTabProp
+         if ( name  == rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ) )
+         {
+             rtl::OUString title = value.get<rtl::OUString>();
+-            pTabControl->SetPageText( ID, title.getStr() );
++            pTabControl->SetPageText( sal::static_int_cast< USHORT >( ID ), title.getStr() );
+         }
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
+     throw (IndexOutOfBoundsException, RuntimeException)
+ {
+     TabControl *pTabControl = getTabControl();
+-    if ( pTabControl->GetTabPage( ID ) == NULL )
++    if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
+         throw IndexOutOfBoundsException();
+ 
+ #define ADD_PROP( seq, i, name, val ) {                                \
+@@ -213,21 +225,19 @@ Sequence< NamedValue > SAL_CALL VCLXTabC
+     }
+ 
+     Sequence< NamedValue > props( 2 );
+-    ADD_PROP( props, 0, "Title", rtl::OUString( pTabControl->GetPageText( ID ) ) );
+-    ADD_PROP( props, 1, "Position", pTabControl->GetPagePos( ID ) );
++    ADD_PROP( props, 0, "Title", rtl::OUString( pTabControl->GetPageText( sal::static_int_cast< USHORT >( ID ) ) ) );
++    ADD_PROP( props, 1, "Position", pTabControl->GetPagePos( sal::static_int_cast< USHORT >( ID ) ) );
+ #undef ADD_PROP
+     return props;
+ }
+ 
+-//--------------------------------------------------------------------
+-
+ // TODO: draw tab border here
+ void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException)
+ {
+     ::vos::OGuard aGuard( GetMutex() );
+ 
+     TabControl *pTabControl = getTabControl();
+-    TabPage *pTabPage = pTabControl->GetTabPage( getActiveTabID() );
++    TabPage *pTabPage = pTabControl->GetTabPage( sal::static_int_cast< USHORT >(  getActiveTabID() ) );
+     if ( pTabPage )
+     {
+         ::Point aPos( nX, nY );
+@@ -243,93 +253,28 @@ void SAL_CALL VCLXTabControl::draw( sal_
+     VCLXWindow::draw( nX, nY );
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::addChild(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
+     throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException)
+ {
+-    unsigned int id = insertTab();
+-    if ( maChildren.size() < id )
+-        maChildren.resize( id, 0 );
+-    mnChildrenNb++;
+-
+-    if ( xChild.is() )
+-    {
+-        ChildData *pData = new ChildData();
+-        pData->xChild = xChild;
+-        maChildren[ id-1 ] = pData;
+-
+-        setChildParent( xChild );
+-        queueResize();
++    mIdMap[ xChild ] = insertTab();
++    Box_Base::addChild( xChild );
+     }
+-}
+-
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
+     throw (::com::sun::star::uno::RuntimeException)
+ {
+-    for( unsigned i = 0; i < maChildren.size(); i++)
+-    {
+-        if ( maChildren[ i ] && maChildren[ i ]->xChild == xChild )
+-        {
+-            removeTab( i );
+-            delete maChildren[ i ];
+-            maChildren[ i ] = NULL;
+-            mnChildrenNb--;
+-
+-            unsetChildParent( xChild );
+-            queueResize();
+-            break;
+-        }
+-    }
++    removeTab( mIdMap[xChild] );
++    mIdMap[ xChild ] = -1;
++    Box_Base::removeChild( xChild );
+ }
+ 
+-//--------------------------------------------------------------------
+-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
+-                                 < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL VCLXTabControl::getChildren()
+-    throw (::com::sun::star::uno::RuntimeException)
+-{
+-    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > childrenSeq( mnChildrenNb );
+-    for( unsigned si = 0, ci = 0; ci < maChildren.size(); ci++)
+-    {
+-        if ( maChildren[ ci ] && maChildren[ ci ]->xChild.is() )
+-            childrenSeq[si++] = maChildren[ ci ]->xChild;
+-    }
+-    return childrenSeq;
+-}
+-
+-//--------------------------------------------------------------------
+-uno::Reference< beans::XPropertySet > SAL_CALL
+-VCLXTabControl::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw (uno::RuntimeException)
+-{
+-    std::vector< ChildData * >::iterator iter;
+-    for( iter = maChildren.begin(); iter != maChildren.end(); iter++)
+-    {
+-        if ( (*iter)->xChild == xChild )
+-        {
+-            if ( !(*iter)->xProps.is() )
+-            {
+-                // FIXME: make me safe !
+-                PropHelper *pProps = new TabChildProps( *iter );
+-                pProps->setChangeListener( this );
+-                (*iter)->xProps = pProps;
+-            }
+-            return (*iter)->xProps;
+-        }
+-    }
+-    return uno::Reference< beans::XPropertySet >();
+-}
+-
+-// TEMP:
+ static void setChildrenVisible( uno::Reference < awt::XLayoutConstrains > xChild, bool visible )
+ {
+     uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY);
+     if ( xWin.is() )
+     {
+         xWin->setVisible( visible );
+-//xWin->setPosSize( 0, 0, 5, 5, PosSize::POSSIZE );
+     }
+ 
+     uno::Reference < awt::XLayoutContainer > xCont( xChild, uno::UNO_QUERY );
+@@ -343,7 +288,6 @@ static void setChildrenVisible( uno::Ref
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::allocateArea(
+     const ::com::sun::star::awt::Rectangle &rArea )
+     throw (::com::sun::star::uno::RuntimeException)
+@@ -362,12 +306,13 @@ void SAL_CALL VCLXTabControl::allocateAr
+ 
+     // FIXME: we can save cycles by setting visibility more sensibly. Having
+     // it here does makes it easier when changing tabs (just needs a recalc())
+-    for( unsigned int i = 0; i < maChildren.size(); i++ )
++    unsigned i = 0;
++    for ( std::list<Box_Base::ChildData *>::const_iterator it
++              = maChildren.begin(); it != maChildren.end(); it++, i++ )
+     {
+-        if ( !maChildren[ i ] )
+-            continue;
++        ChildData *child = static_cast<VCLXTabControl::ChildData*> ( *it );
+         ::com::sun::star::uno::Reference
+-              < ::com::sun::star::awt::XLayoutConstrains > xChild( maChildren[ i ]->xChild );
++              < ::com::sun::star::awt::XLayoutConstrains > xChild( child->mxChild );
+         if ( xChild.is() )
+         {
+             uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY );
+@@ -384,8 +329,8 @@ void SAL_CALL VCLXTabControl::allocateAr
+ 
+             if ( active )
+             {
+-                ::Rectangle label_rect = pTabControl->GetTabBounds( i+1 );
+-                ::Rectangle page_rect = pTabControl->GetTabPageBounds( i+1 );
++                ::Rectangle label_rect = pTabControl->GetTabBounds( sal::static_int_cast< USHORT >( i+1 ) );
++                ::Rectangle page_rect = pTabControl->GetTabPageBounds( sal::static_int_cast< USHORT >( i+1 ) );
+ 
+                 awt::Rectangle childRect;
+                 childRect.X = page_rect.Left();
+@@ -399,7 +344,6 @@ void SAL_CALL VCLXTabControl::allocateAr
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ ::com::sun::star::awt::Size SAL_CALL VCLXTabControl::getMinimumSize()
+     throw(::com::sun::star::uno::RuntimeException)
+ {
+@@ -411,15 +355,17 @@ void SAL_CALL VCLXTabControl::allocateAr
+         return size;
+ 
+     // calculate size to accomodate all children
+-    for( unsigned int i = 0; i < maChildren.size(); i++ )
++    unsigned i = 0;
++    for ( std::list<Box_Base::ChildData *>::const_iterator it
++              = maChildren.begin(); it != maChildren.end(); it++, i++ )
+     {
+-        ChildData *pChild = maChildren[ i ];
+-        if ( pChild && pChild->xChild.is() )
++        ChildData *child = static_cast<VCLXTabControl::ChildData*> ( *it );
++        if ( child->mxChild.is() )
+         {
+             // set the title prop here...
+-            pTabControl->SetPageText( i+1, pChild->aTitle.getStr() );
++            pTabControl->SetPageText( sal::static_int_cast< USHORT >( i+1 ), child->maTitle.getStr() );
+ 
+-            awt::Size childSize( pChild->xChild->getMinimumSize() );
++            awt::Size childSize( child->mxChild->getMinimumSize() );
+             childrenSize.Width = SAL_MAX( childSize.Width, childrenSize.Width );
+             childrenSize.Height = SAL_MAX( childSize.Height, childrenSize.Height );
+         }
+@@ -431,7 +377,6 @@ void SAL_CALL VCLXTabControl::allocateAr
+     return size;
+ }
+ 
+-//--------------------------------------------------------------------
+ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
+     ::vos::OClearableGuard aGuard( GetMutex() );
+@@ -450,9 +395,9 @@ void VCLXTabControl::ProcessWindowEvent(
+         case VCLEVENT_TABPAGE_PAGETEXTCHANGED:
+         {
+             ULONG page = (ULONG) _rVclWindowEvent.GetData();
+-            std::list< ::com::sun::star::uno::Reference
+-                < ::com::sun::star::awt::XTabListener > >::iterator it;
+-            for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
++            for ( std::list< ::com::sun::star::uno::Reference
++                      < ::com::sun::star::awt::XTabListener > >::iterator it
++                      = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
+             {
+                 ::com::sun::star::uno::Reference
+                     < ::com::sun::star::awt::XTabListener > listener = *it;
+@@ -475,7 +420,7 @@ void VCLXTabControl::ProcessWindowEvent(
+                     case VCLEVENT_TABPAGE_REMOVEDALL:
+                         for( int i = 1; i < mnNextTabId; i++)
+                         {
+-                            if ( pTabControl->GetTabPage( i ) )
++                            if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( i ) ) )
+                                 listener->removed( i );
+                         }
+                         break;
+@@ -493,40 +438,14 @@ void VCLXTabControl::ProcessWindowEvent(
+     }
+ }
+ 
+-//--------------------------------------------------------------------
+ void SAL_CALL VCLXTabControl::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    if ( GetWindow() )
+-    {
+-        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+-        switch ( nPropertyId )
+-        {
+-            default:
+                 VCLXWindow::setProperty( PropertyName, Value );
+         }
+-    }
+-}
+ 
+-//--------------------------------------------------------------------
+ Any SAL_CALL VCLXTabControl::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+ {
+-    ::vos::OGuard aGuard( GetMutex() );
+-
+-    Any aReturn;
+-    if ( GetWindow() )
+-    {
+-        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+-        switch ( nPropertyId )
+-        {
+-            default:
+-                aReturn = VCLXWindow::getProperty( PropertyName );
+-        }
+-    }
+-    return aReturn;
++    return VCLXWindow::getProperty( PropertyName );
+ }
+ 
+-//........................................................................
+-} // namespace toolkit
+-//........................................................................
++} // namespace layoutimpl
+Index: toolkit/source/awt/vclxtabcontrol.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxtabcontrol.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.5
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.5
+--- toolkit/source/awt/vclxtabcontrol.hxx	6 Mar 2008 11:42:19 -0000	1.2
++++ toolkit/source/awt/vclxtabcontrol.hxx	28 Mar 2008 13:45:13 -0000	1.2.6.5
+@@ -1,46 +1,58 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef LAYOUT_AWT_VCLXTABCONTROLLER_HXX
+ #define LAYOUT_AWT_VCLXTABCONTROLLER_HXX
+ 
+-#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
+-#include <toolkit/awt/vclxwindow.hxx>
+-#endif
+-#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
+-#include <toolkit/helper/listenermultiplexer.hxx>
+-#endif
+-#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+-#include <cppuhelper/implbase1.hxx>
+-#endif
+-#ifndef _COMPHELPER_UNO3_HXX_
+-#include <comphelper/uno3.hxx>
+-#endif
+-#ifndef _COM_SUN_STAR_AWT_XSIMPLETABCONTROLLER_HPP_
+ #include <com/sun/star/awt/XSimpleTabController.hpp>
+-#endif
+-#include "../layout/container.hxx"
+-
+-#include <com/sun/star/awt/MaxChildrenException.hpp>
+-#include <com/sun/star/beans/XPropertySet.hpp>
+-
+-#include "forward.hxx"
++#include <comphelper/uno3.hxx>
++#include <layout/box-base.hxx>
++#include <map>
++#include <toolkit/awt/vclxwindow.hxx>
+ 
+ class TabControl;
+-using namespace toolkit;
+ 
+-//........................................................................
+ namespace layoutimpl
+ {
+-//........................................................................
+-
+-//====================================================================
+-//= VCLXTabControl
+-//====================================================================
+ 
+ typedef ::cppu::ImplHelper1 <   ::com::sun::star::awt::XSimpleTabController
+                                 >   VCLXTabControl_Base;
+ 
+ class VCLXTabControl :public VCLXWindow
+                      ,public VCLXTabControl_Base
+-                     ,public Container
++                     ,public Box_Base
+ {
+ public:
+     VCLXTabControl();
+@@ -57,7 +69,7 @@ protected:
+     // XComponent
+     void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
+ 
+-    virtual SAL_CALL void draw( sal_Int32 nX, sal_Int32 nY ) throw        (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL draw( sal_Int32 nX, sal_Int32 nY ) throw        (::com::sun::star::uno::RuntimeException);
+ 
+     // XSimpleTabController
+     virtual ::sal_Int32 SAL_CALL insertTab() throw (::com::sun::star::uno::RuntimeException);
+@@ -79,20 +91,12 @@ protected:
+     virtual void SAL_CALL removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
+         throw (::com::sun::star::uno::RuntimeException);
+ 
+-    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
+-                                             < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL getChildren()
+-        throw (::com::sun::star::uno::RuntimeException);
+-
+     virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea )
+         throw (::com::sun::star::uno::RuntimeException);
+ 
+     virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
+         throw(::com::sun::star::uno::RuntimeException);
+ 
+-    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
+-        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException);
+-
+     // unimplemented:
+     virtual sal_Bool SAL_CALL hasHeightForWidth()
+         throw(css::uno::RuntimeException)
+@@ -108,35 +112,40 @@ protected:
+     // VCLXWindow
+     void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
+ 
+-private:
+-    VCLXTabControl( const VCLXTabControl& );            // never implemented
+-    VCLXTabControl& operator=( const VCLXTabControl& ); // never implemented
+ 
+     // Each tab page needs an unique id.
+     int mnNextTabId;
+ 
++public:
+     // Maps page ids to child references
+-    friend class TabChildProps;
+-    struct ChildData
++    struct ChildData : public Box_Base::ChildData
++    {
++        rtl::OUString maTitle;
++        ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++    };
++
++    struct ChildProps : public Box_Base::ChildProps
+     {
+-        rtl::OUString aTitle;
+-        css::awt::Size aRequisition;
+-        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
+-        css::uno::Reference< css::beans::XPropertySet >    xProps;
+-        bool isVisible();
++        ChildProps( VCLXTabControl::ChildData *pData );
+     };
+-    std::vector< ChildData * > maChildren;  // some may be null
+-    int mnChildrenNb;
+ 
++protected:
++    ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++    ChildProps *createChildProps( Box_Base::ChildData* pData );
++
++
++    std::map< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >, sal_Int32 > mIdMap;
+     // FIXME: we might want to use a Multiplexer
+     std::list< ::com::sun::star::uno::Reference
+                < ::com::sun::star::awt::XTabListener > > mxTabListeners;
+ 
+     inline TabControl *getTabControl( ) const throw (::com::sun::star::uno::RuntimeException);
++
++private:
++    VCLXTabControl( const VCLXTabControl& );            // never implemented
++    VCLXTabControl& operator=( const VCLXTabControl& ); // never implemented
+ };
+ 
+-//........................................................................
+-} // namespacetoolkit
+-//........................................................................
++} // namespace layoutimpl
+ 
+ #endif /*LAYOUT_AWT_VCLXTABCONTROLLER_HXX*/
+Index: toolkit/source/awt/vclxtopwindow.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxtopwindow.cxx,v
+retrieving revision 1.12
+retrieving revision 1.12.30.3
+diff -p -u -u -p -b -w -B -r1.12 -r1.12.30.3
+--- toolkit/source/awt/vclxtopwindow.cxx	14 Jan 2008 12:57:00 -0000	1.12
++++ toolkit/source/awt/vclxtopwindow.cxx	28 Mar 2008 13:04:07 -0000	1.12.30.3
+@@ -69,6 +69,106 @@
+ 
+ #include <tools/debug.hxx>
+ 
++VCLXTopWindow_Base::~VCLXTopWindow_Base()
++{
++}
++
++::com::sun::star::uno::Any VCLXTopWindow_Base::getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException)
++{
++	::vos::OGuard aGuard( GetMutexImpl() );
++
++	// TODO, check the process id
++	::com::sun::star::uno::Any aRet;
++	Window* pWindow = GetWindowImpl();
++	if ( pWindow )
++	{
++		const SystemEnvData* pSysData = ((SystemWindow *)pWindow)->GetSystemData();
++		if( pSysData )
++		{
++#if (defined WNT)
++			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_WIN32 )
++			{
++				 aRet <<= (sal_Int32)pSysData->hWnd;
++			}
++#elif (defined OS2)
++			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_OS2 )
++			{
++				 aRet <<= (sal_Int32)pSysData->hWnd;
++			}
++#elif (defined QUARTZ)
++			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_MAC )
++			{
++				 aRet <<= (sal_IntPtr)pSysData->pView;
++			}
++#elif (defined UNX)
++			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW )
++			{
++				::com::sun::star::awt::SystemDependentXWindow aSD;
++				aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay));
++				aSD.WindowHandle = pSysData->aWindow;
++				aRet <<= aSD;
++			}
++#endif
++		}
++	}
++	return aRet;
++}
++
++void VCLXTopWindow_Base::addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
++{
++	::vos::OGuard aGuard( GetMutexImpl() );
++
++	GetTopWindowListenersImpl().addInterface( rxListener );
++}
++
++void VCLXTopWindow_Base::removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
++{
++	::vos::OGuard aGuard( GetMutexImpl() );
++
++	GetTopWindowListenersImpl().removeInterface( rxListener );
++}
++
++void VCLXTopWindow_Base::toFront(  ) throw(::com::sun::star::uno::RuntimeException)
++{
++	::vos::OGuard aGuard( GetMutexImpl() );
++
++	Window* pWindow = GetWindowImpl();
++	if ( pWindow )
++		((WorkWindow*)pWindow)->ToTop( TOTOP_RESTOREWHENMIN );
++}
++
++void VCLXTopWindow_Base::toBack(  ) throw(::com::sun::star::uno::RuntimeException)
++{
++#if 0 // Not possible in VCL...
++
++	::vos::OGuard aGuard( GetMutexImpl() );
++
++	Window* pWindow = GetWindowImpl();
++	if ( pWindow )
++	{
++		((WorkWindow*)pWindow)->ToBack();
++	}
++#endif
++}
++
++void VCLXTopWindow_Base::setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& rxMenu ) throw(::com::sun::star::uno::RuntimeException)
++{
++	::vos::OGuard aGuard( GetMutexImpl() );
++	
++	SystemWindow* pWindow = (SystemWindow*) GetWindowImpl();
++	if ( pWindow )
++	{
++		pWindow->SetMenuBar( NULL );
++		if ( rxMenu.is() )
++		{
++			VCLXMenu* pMenu = VCLXMenu::GetImplementation( rxMenu );
++			if ( pMenu && !pMenu->IsPopupMenu() )
++				pWindow->SetMenuBar( (MenuBar*) pMenu->GetMenu() );
++		}
++	}
++	mxMenuBar = rxMenu;
++}
++
+ //	----------------------------------------------------
+ //	class VCLXTopWindow
+ //	----------------------------------------------------
+@@ -87,6 +187,21 @@ VCLXTopWindow::~VCLXTopWindow()
+ {
+ }
+ 
++vos::IMutex& VCLXTopWindow::GetMutexImpl()
++{
++    return VCLXContainer::GetMutex();
++}
++
++Window* VCLXTopWindow::GetWindowImpl()
++{
++    return VCLXContainer::GetWindow();
++}
++
++TopWindowListenerMultiplexer& VCLXTopWindow::GetTopWindowListenersImpl()
++{
++    return VCLXContainer::GetTopWindowListeners();
++}
++
+ // ::com::sun::star::uno::XInterface
+ ::com::sun::star::uno::Any VCLXTopWindow::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
+ {
+@@ -177,104 +292,3 @@ VCLXTopWindow::~VCLXTopWindow()
+         return (*pCollection).getTypes();
+     }
+ }
+-
+-::com::sun::star::uno::Any VCLXTopWindow::getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-	::vos::OGuard aGuard( GetMutex() );
+-
+-	// TODO, check the process id
+-	::com::sun::star::uno::Any aRet;
+-	Window* pWindow = GetWindow();
+-	if ( pWindow )
+-	{
+-		const SystemEnvData* pSysData = ((SystemWindow *)pWindow)->GetSystemData();
+-		if( pSysData )
+-		{
+-#if (defined WNT)
+-			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_WIN32 )
+-			{
+-				 aRet <<= (sal_Int32)pSysData->hWnd;
+-			}
+-#elif (defined OS2)
+-			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_OS2 )
+-			{
+-				 aRet <<= (sal_Int32)pSysData->hWnd;
+-			}
+-#elif (defined QUARTZ)
+-			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_MAC )
+-			{
+-				 aRet <<= (sal_IntPtr)pSysData->pView;
+-			}
+-#elif (defined UNX)
+-			if( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW )
+-			{
+-				::com::sun::star::awt::SystemDependentXWindow aSD;
+-				aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay));
+-				aSD.WindowHandle = pSysData->aWindow;
+-				aRet <<= aSD;
+-			}
+-#endif
+-		}
+-	}
+-	return aRet;
+-}
+-
+-
+-void VCLXTopWindow::addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-	::vos::OGuard aGuard( GetMutex() );
+-
+-	GetTopWindowListeners().addInterface( rxListener );
+-}
+-
+-void VCLXTopWindow::removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-	::vos::OGuard aGuard( GetMutex() );
+-
+-	GetTopWindowListeners().removeInterface( rxListener );
+-}
+-
+-void VCLXTopWindow::toFront(  ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-	::vos::OGuard aGuard( GetMutex() );
+-
+-	Window* pWindow = GetWindow();
+-	if ( pWindow )
+-		((WorkWindow*)pWindow)->ToTop( TOTOP_RESTOREWHENMIN );
+-}
+-
+-void VCLXTopWindow::toBack(  ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-/* Not possible in VCL...
+-
+-	::vos::OGuard aGuard( GetMutex() );
+-
+-	Window* pWindow = GetWindow();
+-	if ( pWindow )
+-	{
+-		((WorkWindow*)pWindow)->ToBack();
+-	}
+-*/
+-}
+-
+-void VCLXTopWindow::setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& rxMenu ) throw(::com::sun::star::uno::RuntimeException)
+-{
+-	::vos::OGuard aGuard( GetMutex() );
+-	
+-	SystemWindow* pWindow = (SystemWindow*) GetWindow();
+-	if ( pWindow )
+-	{
+-		pWindow->SetMenuBar( NULL );
+-		if ( rxMenu.is() )
+-		{
+-			VCLXMenu* pMenu = VCLXMenu::GetImplementation( rxMenu );
+-			if ( pMenu && !pMenu->IsPopupMenu() )
+-				pWindow->SetMenuBar( (MenuBar*) pMenu->GetMenu() );
+-		}
+-	}
+-	mxMenuBar = rxMenu;
+-}
+-
+-
+-
+-
+Index: toolkit/source/awt/vclxwindow.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxwindow.cxx,v
+retrieving revision 1.85
+retrieving revision 1.85.26.1
+diff -p -u -u -p -b -w -B -r1.85 -r1.85.26.1
+--- toolkit/source/awt/vclxwindow.cxx	29 Jan 2008 15:05:41 -0000	1.85
++++ toolkit/source/awt/vclxwindow.cxx	20 Mar 2008 11:56:26 -0000	1.85.26.1
+@@ -82,6 +82,7 @@
+ #ifndef _TOOLKIT_AWT_VCLXPOINTER_HXX_
+ #include <toolkit/awt/vclxpointer.hxx>
+ #endif
++#include <toolkit/awt/vclxwindows.hxx>
+ #ifndef _TOOLKIT_HELPER_MACROS_HXX_
+ #include <toolkit/helper/macros.hxx>
+ #endif
+@@ -532,8 +533,10 @@ void VCLXWindowImpl::processEvent( const
+         }
+     }
+     else
++    {
+         DBG_ERROR( "VCLXWindowImpl::processEvent: what kind of event *is* this (3)?" );
+ }
++}
+ 
+ //--------------------------------------------------------------------
+ void SAL_CALL VCLXWindowImpl::acquire()
+@@ -2330,14 +2333,6 @@ void VCLXWindow::setProperty( const ::rt
+ 		WindowType nWinType = GetWindow()->GetType();
+ 		switch ( nWinType )
+ 		{
+-			case WINDOW_MESSBOX:
+-			case WINDOW_INFOBOX:
+-			case WINDOW_WARNINGBOX:
+-			case WINDOW_ERRORBOX:
+-			case WINDOW_QUERYBOX:
+-				aSz = Size( 250, 100 );
+-			break;
+-
+ 			case WINDOW_CONTROL:
+ 				aSz.Width() = GetWindow()->GetTextWidth( GetWindow()->GetText() )+2*12;
+ 				aSz.Height() = GetWindow()->GetTextHeight()+2*6;
+@@ -2354,12 +2349,7 @@ void VCLXWindow::setProperty( const ::rt
+ 				aSz.Height() = GetWindow()->GetTextHeight()+2*2;
+ 			break;
+ 			case WINDOW_SCROLLBARBOX:
+-			case WINDOW_SCROLLBAR:
+-			{
+-				long n = GetWindow()->GetSettings().GetStyleSettings().GetScrollBarSize();
+-				aSz = Size( n, n );
+-			}
+-			break;
++                return VCLXScrollBar::implGetMinimumSize( GetWindow() );
+ 			default:
+ 				aSz = GetWindow()->GetOptimalSize( WINDOWSIZE_MINIMUM );
+ 		}
+Index: toolkit/source/awt/vclxwindows.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxwindows.cxx,v
+retrieving revision 1.67
+retrieving revision 1.67.26.1
+diff -p -u -u -p -b -w -B -r1.67 -r1.67.26.1
+--- toolkit/source/awt/vclxwindows.cxx	29 Jan 2008 15:05:57 -0000	1.67
++++ toolkit/source/awt/vclxwindows.cxx	20 Mar 2008 11:56:27 -0000	1.67.26.1
+@@ -2188,7 +2188,11 @@ sal_Int16 VCLXMessageBox::execute() thro
+ 	return pBox ? pBox->Execute() : 0;
+ }
+ 
+-
++::com::sun::star::awt::Size SAL_CALL VCLXMessageBox::getMinimumSize() throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++    return ::com::sun::star::awt::Size( 250, 100 );
++}
+ 
+ //	----------------------------------------------------
+ //	class VCLXDialog
+@@ -3337,6 +3341,19 @@ void VCLXScrollBar::ProcessWindowEvent( 
+ 	}
+ }
+ 
++::com::sun::star::awt::Size SAL_CALL VCLXScrollBar::implGetMinimumSize( Window* p ) throw(::com::sun::star::uno::RuntimeException)
++{
++    long n = p->GetSettings().GetStyleSettings().GetScrollBarSize();
++    return ::com::sun::star::awt::Size( n, n );
++}
++
++::com::sun::star::awt::Size SAL_CALL VCLXScrollBar::getMinimumSize() throw(::com::sun::star::uno::RuntimeException)
++{
++	::vos::OGuard aGuard( GetMutex() );
++    return implGetMinimumSize( GetWindow() );
++}
++
++
+ //	----------------------------------------------------
+ //	class VCLXEdit
+ //	----------------------------------------------------
+cvs diff: Diffing toolkit/source/controls
+cvs diff: Diffing toolkit/source/controls/tree
+cvs diff: Diffing toolkit/source/helper
+Index: toolkit/source/helper/registerservices.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/helper/registerservices.cxx,v
+retrieving revision 1.18
+retrieving revision 1.18.26.1
+diff -p -u -u -p -b -w -B -r1.18 -r1.18.26.1
+--- toolkit/source/helper/registerservices.cxx	29 Jan 2008 15:07:36 -0000	1.18
++++ toolkit/source/helper/registerservices.cxx	28 Mar 2008 09:40:51 -0000	1.18.26.1
+@@ -267,6 +267,8 @@ extern ::com::sun::star::uno::Reference<
+ extern sal_Bool SAL_CALL comp_AsyncCallback_component_writeInfo( void * serviceManager, void * registryKey );
+ extern void * SAL_CALL comp_AsyncCallback_component_getFactory( const char * implName, void * serviceManager, void * registryKey );
+ 
++extern sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * serviceManager, void * registryKey );
++extern void * SAL_CALL comp_Layout_component_getFactory( const char * implName, void * serviceManager, void * registryKey );
+ 
+ extern "C"
+ {
+@@ -347,7 +349,9 @@ TOOLKIT_DLLPUBLIC sal_Bool SAL_CALL comp
+ 		registerServices( xRegistryKey, "UnoThrobberControl", szServiceName_UnoThrobberControl );
+         registerServices( xRegistryKey, "UnoFixedHyperlinkControl", szServiceName_UnoControlFixedHyperlink );
+         registerServices( xRegistryKey, "UnoControlFixedHyperlinkModel", szServiceName_UnoControlFixedHyperlinkModel );
++
+         comp_AsyncCallback_component_writeInfo( _pServiceManager, _pRegistryKey );
++        comp_Layout_component_writeInfo( _pServiceManager, _pRegistryKey );
+ 
+         return sal_True;
+ 	}
+@@ -430,6 +434,10 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL compone
+ 
+     	if ( rtl_str_compare( sImplementationName, "com.sun.star.awt.comp.AsyncCallback" ) == 0 )
+             return comp_AsyncCallback_component_getFactory( sImplementationName, _pServiceManager, _pRegistryKey );
++
++
++		if( pRet == 0 )
++			pRet = comp_Layout_component_getFactory( sImplementationName, _pServiceManager, _pRegistryKey );
+ 	}
+ 	return pRet;
+ }
+cvs diff: Diffing toolkit/source/layout
+Index: toolkit/source/layout/bin.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/bin.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/bin.cxx	6 Mar 2008 11:42:48 -0000	1.2
++++ toolkit/source/layout/bin.cxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "bin.hxx"
+ 
+ #include <sal/macros.h>
+Index: toolkit/source/layout/bin.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/bin.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/bin.hxx	6 Mar 2008 11:43:00 -0000	1.2
++++ toolkit/source/layout/bin.hxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ /* A few simple binary containers */
+ 
+ #ifndef CORE_BIN_HXX
+Index: toolkit/source/layout/box-base.cxx
+===================================================================
+RCS file: toolkit/source/layout/box-base.cxx
+diff -N toolkit/source/layout/box-base.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/box-base.cxx	21 Mar 2008 07:47:07 -0000	1.1.2.1
+@@ -0,0 +1,174 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
++#include "box.hxx"
++
++#include <tools/debug.hxx>
++#include <sal/macros.h>
++
++#include <com/sun/star/awt/XWindow2.hpp>
++
++// fixed point precision for distributing error
++#define FIXED_PT 16
++
++namespace layoutimpl
++{
++
++using namespace css;
++
++Box_Base::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    : mxChild( xChild )
++    , mxProps()
++    , maRequisition()
++{
++}
++
++static bool isVisible( uno::Reference< awt::XLayoutConstrains > xWidget )
++{
++    if ( !xWidget.is() )
++    {
++        DBG_ERROR( "FIXME: invalid child !" );
++        return true;
++    }
++
++    uno::Reference< awt::XWindow2 > xWindow( xWidget, uno::UNO_QUERY );
++    if ( xWindow.is() && !xWindow->isVisible() )
++        return false;
++
++    uno::Reference< awt::XLayoutContainer > xContainer( xWidget, uno::UNO_QUERY );
++    if ( xContainer.is() )
++    {
++        uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aChildren
++            = xContainer->getChildren();
++
++        // FIXME: <flow> workaround: empty visible containers always visible:
++        if ( !aChildren.getLength() )
++            return true;
++
++        for ( int i = 0; i < aChildren.getLength(); i++ )
++            if ( isVisible( aChildren[i] ) )
++                return true;
++        return false; // this would kill flow without workaround above
++    }
++
++    return true;
++}
++    
++bool Box_Base::ChildData::isVisible()
++{
++    // FIXME: call the 'isVisible' method on it ?
++    return layoutimpl::isVisible( mxChild );
++}
++
++void SAL_CALL
++Box_Base::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException, awt::MaxChildrenException)
++{
++    if ( xChild.is() )
++    {
++        ChildData *pData = createChild( xChild );
++        maChildren.push_back( pData );
++        setChildParent( xChild );
++        queueResize();
++    }
++}
++
++Box_Base::ChildData*
++Box_Base::removeChildData( std::list< ChildData* > lst, css::uno::Reference< css::awt::XLayoutConstrains > const& xChild )
++{
++    for ( std::list< ChildData* >::iterator it = lst.begin();
++          it != lst.end(); it++ )
++    {
++        if ( (*it)->mxChild == xChild )
++        {
++            lst.erase( it );
++            return *it;
++        }
++    }
++    return 0;
++}
++
++void SAL_CALL
++Box_Base::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    if ( ChildData* p = removeChildData( maChildren, xChild ) )
++    {
++        delete p;
++        unsetChildParent( xChild );
++        queueResize();
++    }
++    else
++    {
++        DBG_ERROR( "Box_Base: removeChild: no such child" );
++    }
++}
++
++uno::Sequence< uno::Reference < awt::XLayoutConstrains > > SAL_CALL
++Box_Base::getChildren()
++    throw (uno::RuntimeException)
++{
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
++    unsigned int index = 0;
++    for ( std::list< ChildData* >::iterator it = maChildren.begin();
++          it != maChildren.end(); it++, index++ )
++        children[index] = ( *it )->mxChild;
++
++    return children;
++}
++
++uno::Reference< beans::XPropertySet > SAL_CALL
++Box_Base::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    
++    for ( std::list< ChildData * >::iterator it = maChildren.begin();
++          it != maChildren.end(); it++)
++    {
++        if ( ( *it )->mxChild == xChild )
++        {
++            if ( !( *it )->mxProps.is() )
++            {
++                PropHelper *pProps = createChildProps( *it );
++                pProps->setChangeListener( this );
++                ( *it )->mxProps = pProps;
++            }
++            return (*it)->mxProps;
++        }
++    }
++    return uno::Reference< beans::XPropertySet >();
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/box-base.hxx
+===================================================================
+RCS file: toolkit/source/layout/box-base.hxx
+diff -N toolkit/source/layout/box-base.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/box-base.hxx	28 Mar 2008 13:44:29 -0000	1.1.2.2
+@@ -0,0 +1,94 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
++#ifndef CORE_BOX_BASE_HXX
++#define CORE_BOX_BASE_HXX
++
++#include "container.hxx"
++
++#include <list>
++
++namespace layoutimpl
++{
++
++class Box_Base : public Container
++{
++public:
++    // Children properties
++    struct ChildData
++    {
++        css::uno::Reference< css::awt::XLayoutConstrains > mxChild;
++        css::uno::Reference< css::beans::XPropertySet > mxProps;
++        css::awt::Size maRequisition;
++        virtual bool isVisible();
++        
++        ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++        virtual ~ChildData() { };
++    };
++
++    struct ChildProps: public PropHelper
++    {
++        //ChildProps( ChildProps* );
++        PROPHELPER_SET_INFO
++    };
++
++protected:
++    std::list< ChildData* > maChildren;
++
++
++    virtual ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild ) = 0;
++    virtual ChildProps *createChildProps( ChildData* pData ) = 0;
++    
++    ChildData *removeChildData( std::list< ChildData *>, css::uno::Reference< css::awt::XLayoutConstrains > const& Child );
++    
++public:
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Sequence< css::uno::Reference
++                                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (css::uno::RuntimeException);
++    
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++};
++
++} //  namespace layoutimpl
++
++#endif /* CORE_BOX__BASE HXX */
+Index: toolkit/source/layout/box.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/box.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/box.cxx	6 Mar 2008 11:43:11 -0000	1.2
++++ toolkit/source/layout/box.cxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "box.hxx"
+ 
+ #include <tools/debug.hxx>
+@@ -11,36 +46,41 @@ namespace layoutimpl
+ 
+ using namespace css;
+ 
+-class BoxChildProps : public PropHelper
+-{
+-public:
+-    BoxChildProps( Box::ChildData *pData )
++Box::ChildProps::ChildProps( Box::ChildData *pData )
+     {
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "Expand" ),
+                  ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
+-                 &(pData->bExpand) );
++             &(pData->mbExpand) );
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "Fill" ),
+                  ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
+-                 &(pData->bFill) );
++             &(pData->mbFill) );
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "Padding" ),
+                  ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
+-                 &(pData->nPadding) );
++             &(pData->mnPadding) );
+     }
+-    PROPHELPER_SET_INFO
+-};
+ 
+-bool Box::ChildData::isVisible()
++Box::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    : Box_Base::ChildData( xChild )
++    , mnPadding( 0 )
++    , mbExpand( true )
++    , mbFill( true )
+ {
+-    // FIXME: call the 'isVisible' method on it ?
+-    if ( !xChild.is() )
++}
++
++Box::ChildData*
++Box::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
+     {
+-        DBG_ERROR( "FIXME: invalid child !" );
++    return new ChildData( xChild );
+     }
+-    return xChild.is();
++
++Box::ChildProps*
++Box::createChildProps( Box_Base::ChildData *pData )
++{
++    return new ChildProps( static_cast<Box::ChildData*> ( pData ) );
+ }
+ 
+ Box::Box( bool horizontal )
+-    : Container()
++    : Box_Base()
+     , mnSpacing( 0 )
+     , mbHomogeneous( false )
+     , mbHorizontal( horizontal )
+@@ -54,119 +94,28 @@ Box::Box( bool horizontal )
+     mbHasFlowChildren = false;
+ }
+ 
+-Box::ChildData *
+-Box::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
+-{
+-    ChildData *p = new ChildData();
+-
+-    p->nPadding = 0;
+-    p->bExpand = true;
+-    p->bFill = true;
+-    p->xChild = xChild;
+-    return p;
+-}
+-
+-void SAL_CALL
+-Box::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw (uno::RuntimeException, awt::MaxChildrenException)
+-{
+-    if ( xChild.is() )
+-    {
+-        ChildData *pData = createChild( xChild );
+-        maChildren.push_back( pData );
+-        setChildParent( xChild );
+-        queueResize();
+-    }
+-}
+-
+-Box::ChildData *
+-Box::removeChildData( std::list< ChildData *> lst, css::uno::Reference< css::awt::XLayoutConstrains > const& xChild )
+-{
+-    for( std::list< ChildData * >::iterator it = lst.begin();
+-         it != lst.end(); it++ )
+-    {
+-        if ( (*it)->xChild == xChild )
+-        {
+-            lst.erase( it );
+-            return *it;
+-        }
+-    }
+-    return 0;
+-}
+-
+-void SAL_CALL
+-Box::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw (uno::RuntimeException)
+-{
+-    if ( ChildData *p = removeChildData( maChildren, xChild ) )
+-    {
+-        // CHECK: BoxChildProps leaks?
+-        delete p;
+-        unsetChildParent( xChild );
+-        queueResize();
+-    }
+-    else
+-    {
+-        DBG_ERROR( "Box: removeChild: no such child" );
+-    }
+-}
+-
+-uno::Sequence< uno::Reference < awt::XLayoutConstrains > > SAL_CALL
+-Box::getChildren()
+-    throw (uno::RuntimeException)
+-{
+-    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
+-    unsigned int i = 0;
+-    for( std::list< ChildData * >::iterator it = maChildren.begin();
+-         it != maChildren.end(); it++, i++ )
+-        children[i] = (*it)->xChild;
+-
+-    return children;
+-}
+-
+-uno::Reference< beans::XPropertySet > SAL_CALL
+-Box::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw (uno::RuntimeException)
+-{
+-    std::list< ChildData * >::iterator iter;
+-    for( iter = maChildren.begin(); iter != maChildren.end(); iter++)
+-    {
+-        if ( (*iter)->xChild == xChild )
+-        {
+-            if ( !(*iter)->xProps.is() )
+-            {
+-                // FIXME: make me safe !
+-                PropHelper *pProps = new BoxChildProps( *iter );
+-                pProps->setChangeListener( this );
+-                (*iter)->xProps = pProps;
+-            }
+-            return (*iter)->xProps;
+-        }
+-    }
+-    return uno::Reference< beans::XPropertySet >();
+-}
+-
+ awt::Size
+ Box::calculateSize( long nWidth )
+ {
+     int nVisibleChildren = 0;
+     // primary vs secundary axis (instead of a X and Y)
+-    int nPrimSize = 0, nSecSize = 0;
++    int nPrimSize = 0;
++    int nSecSize = 0;
+     int nFlowMinWidth = 0;  // in case the box only has flow children
+ 
+     mbHasFlowChildren = false;
+ 
+-    std::list<ChildData *>::const_iterator it;
+-    for( it = maChildren.begin(); it != maChildren.end(); it++ )
++    for ( std::list<Box_Base::ChildData *>::const_iterator it
++              = maChildren.begin(); it != maChildren.end(); it++ )
+     {
+-        ChildData *child = *it;
++        ChildData *child = static_cast<Box::ChildData*> ( *it );
+         if ( !child->isVisible() )
+             continue;
+ 
+-        uno::Reference< awt::XLayoutContainer > xChildCont( child->xChild, uno::UNO_QUERY );
++        uno::Reference< awt::XLayoutContainer > xChildCont( child->mxChild, uno::UNO_QUERY );
+         bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
+ 
+-        awt::Size aChildSize = child->aRequisition = child->xChild->getMinimumSize();
++        awt::Size aChildSize = child->maRequisition = child->mxChild->getMinimumSize();
+ 
+         if ( !mbHorizontal /*vertical*/ && bFlow )
+         {
+@@ -176,7 +125,7 @@ Box::calculateSize( long nWidth )
+         }
+         else
+         {
+-            int size = primDim( aChildSize ) + child->nPadding * 2;
++            int size = primDim( aChildSize ) + child->mnPadding * 2;
+             if ( mbHomogeneous )
+                 nPrimSize = SAL_MAX( nPrimSize, size );
+             else
+@@ -198,13 +147,14 @@ Box::calculateSize( long nWidth )
+     {
+         if ( nWidth == 0 )
+             nWidth = nSecSize ? nSecSize : nFlowMinWidth;
+-        for( it = maChildren.begin(); it != maChildren.end(); it++ )
++        for ( std::list<Box_Base::ChildData *>::const_iterator it
++                  = maChildren.begin(); it != maChildren.end(); it++ )
+         {
+-            ChildData *child = *it;
++            ChildData *child = static_cast<Box::ChildData*> ( *it );
+             if ( !child->isVisible() )
+                 continue;
+ 
+-            uno::Reference< awt::XLayoutContainer > xChildCont( child->xChild, uno::UNO_QUERY );
++            uno::Reference< awt::XLayoutContainer > xChildCont( child->mxChild, uno::UNO_QUERY );
+             bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
+ 
+             if ( bFlow )
+@@ -248,14 +198,14 @@ Box::allocateArea( const awt::Rectangle 
+     maAllocation = newArea;
+     int nVisibleChildren = 0, nExpandChildren = 0;
+ 
+-    std::list<ChildData *>::const_iterator it;
+-    for( it = maChildren.begin(); it != maChildren.end(); it++ )
++    for ( std::list<Box_Base::ChildData *>::const_iterator it
++              = maChildren.begin(); it != maChildren.end(); it++ )
+     {
+-        ChildData *child = *it;
++        ChildData *child = static_cast<Box::ChildData*> ( *it );
+         if ( child->isVisible() )
+         {
+             nVisibleChildren++;
+-            if ( child->bExpand )
++            if ( child->mbExpand )
+                 nExpandChildren++;
+         }
+     }
+@@ -285,9 +235,10 @@ Box::allocateArea( const awt::Rectangle 
+     int nStartPoint = primDim( newPoint ) + mnBorderWidth;
+     int nBoxSecSize = SAL_MAX( 1, secDim( newSize ) - mnBorderWidth * 2 );
+ 
+-    for( it = maChildren.begin(); it != maChildren.end(); it++ )
++    for ( std::list<Box_Base::ChildData *>::const_iterator it
++              = maChildren.begin(); it != maChildren.end(); it++ )
+     {
+-        ChildData *child = *it;
++        ChildData *child = static_cast<Box::ChildData*> ( *it );
+         if ( !child->isVisible() )
+             continue;
+ 
+@@ -298,26 +249,26 @@ Box::allocateArea( const awt::Rectangle 
+             nBoxPrimSize = nExtraSpace;
+         else
+         {
+-            uno::Reference< awt::XLayoutContainer > xChildCont( child->xChild, uno::UNO_QUERY );
++            uno::Reference< awt::XLayoutContainer > xChildCont( child->mxChild, uno::UNO_QUERY );
+             bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
+             if ( !mbHorizontal && bFlow )
+                 nBoxPrimSize = xChildCont->getHeightForWidth( newArea.Width );
+             else
+-                nBoxPrimSize = primDim( child->aRequisition );
+-            nBoxPrimSize += child->nPadding;
+-            if ( child->bExpand )
++                nBoxPrimSize = primDim( child->maRequisition );
++            nBoxPrimSize += child->mnPadding;
++            if ( child->mbExpand )
+                 nBoxPrimSize += nExtraSpace;
+         }
+ 
+-        nChildPrimPoint = nStartPoint + child->nPadding;
++        nChildPrimPoint = nStartPoint + child->mnPadding;
+         nChildSecPoint = secDim( newPoint ) + mnBorderWidth;
+ 
+         nChildSecSize = nBoxSecSize;
+-        if ( child->bFill )
+-            nChildPrimSize = SAL_MAX( 1, nBoxPrimSize - child->nPadding);
++        if ( child->mbFill )
++            nChildPrimSize = SAL_MAX( 1, nBoxPrimSize - child->mnPadding);
+         else
+         {
+-            nChildPrimSize = primDim( child->aRequisition );
++            nChildPrimSize = primDim( child->maRequisition );
+             nChildPrimPoint += (nBoxPrimSize - nChildPrimSize) / 2;
+ 
+             nChildSecPoint += (nBoxSecSize - nChildSecSize) / 2;
+@@ -329,9 +280,9 @@ Box::allocateArea( const awt::Rectangle 
+         area.Width = mbHorizontal ? nChildPrimSize : nChildSecSize;
+         area.Height = mbHorizontal ? nChildSecSize : nChildPrimSize;
+ 
+-        allocateChildAt( child->xChild, area );
++        allocateChildAt( child->mxChild, area );
+ 
+-        nStartPoint += nBoxPrimSize + mnSpacing + child->nPadding;
++        nStartPoint += nBoxPrimSize + mnSpacing + child->mnPadding;
+     }
+ }
+ 
+Index: toolkit/source/layout/box.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/box.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/layout/box.hxx	6 Mar 2008 11:43:24 -0000	1.2
++++ toolkit/source/layout/box.hxx	28 Mar 2008 13:44:29 -0000	1.2.6.2
+@@ -1,57 +1,78 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_BOX_HXX
+ #define CORE_BOX_HXX
+ 
+-#include "container.hxx"
++#include "box-base.hxx"
+ 
+ #include <com/sun/star/awt/Point.hpp>
+ 
+-#include <list>
+-
+ namespace layoutimpl
+ {
+ 
+-class Box : public Container
++class Box : public Box_Base
+ {
+-    friend class BoxChildProps;
+ protected:
+     // Box properties (i.e. affect all children)
+     sal_Int32 mnSpacing;
+     sal_Bool mbHomogeneous;
+     sal_Bool mbHorizontal;  // false for Vertical
++    bool mbHasFlowChildren;
+ 
++public:
+     // Children properties
+-    struct ChildData
++    struct ChildData : public Box_Base::ChildData
+     {
+-      sal_Int32 nPadding;
+-      sal_Bool  bExpand, bFill;
+-      css::awt::Size aRequisition;
+-      css::uno::Reference< css::awt::XLayoutConstrains > xChild;
+-      css::uno::Reference< css::beans::XPropertySet > xProps;
+-      bool isVisible();
++        sal_Int32 mnPadding;
++        sal_Bool mbExpand;
++        sal_Bool mbFill;
++        ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
+     };
+-    std::list< ChildData * > maChildren;
+-    bool mbHasFlowChildren;
+-
+-public:
+-    Box( bool horizontal );
+-
+-    static ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
+ 
+-    ChildData *removeChildData( std::list< ChildData *>, css::uno::Reference< css::awt::XLayoutConstrains > const& Child );
+-
+-    // css::awt::XLayoutContainer
+-    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
+-    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException);
++    struct ChildProps : public Box_Base::ChildProps
++    {
++        ChildProps( ChildData *pData );
++    };
+ 
+-    virtual css::uno::Sequence< css::uno::Reference
+-                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
+-        throw (css::uno::RuntimeException);
++protected:
++    ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++    ChildProps *createChildProps( Box_Base::ChildData* pData );
+ 
+-    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
+-        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException);
++public:
++    Box( bool horizontal );
+ 
+     virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
+         throw (css::uno::RuntimeException);
+Index: toolkit/source/layout/byteseq.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/byteseq.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.4
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.4
+--- toolkit/source/layout/byteseq.cxx	6 Mar 2008 11:43:43 -0000	1.2
++++ toolkit/source/layout/byteseq.cxx	28 Mar 2008 09:46:07 -0000	1.2.6.4
+@@ -33,43 +33,50 @@
+  *
+  ************************************************************************/
+ 
+-/* We do not link to xmlscript, because that would introduce an extra
+-   toolkit dependency.  */
+-#include <xml_helper/xml_byteseq.cxx>
+-
+-#include <stdio.h>
+ #include <com/sun/star/io/XInputStream.hpp>
+-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#include <osl/file.hxx>
++#include <comphelper/oslfile2streamwrap.hxx>
++
++using osl::File;
++using osl::FileBase;
++using namespace ::com::sun::star;
+ 
+ namespace layoutimpl
+ {
+ 
+-uno::Reference< io::XInputStream >
+-getFileAsStream( const uno::Reference< lang::XMultiServiceFactory > &xFactory,
+-                 const rtl::OUString &rName );
+-
+-uno::Reference< io::XInputStream >
+-getFileAsStream( const uno::Reference< lang::XMultiServiceFactory > & /* xFactory */,
+-                 const rtl::OUString &rName )
++uno::Reference< io::XInputStream > getFileAsStream( const rtl::OUString &rName )
+ {
+-    rtl::OString fname = rtl::OUStringToOString( rName, RTL_TEXTENCODING_UTF8 );
+-    // create the input stream
+-    FILE *f = ::fopen( fname, "rb" );
+-    if (f)
++    rtl::OUString sFileURL;
++    FileBase::getFileURLFromSystemPath( rName, sFileURL );
++    File * blobFile = new File(sFileURL);
++    File::RC errorCode = blobFile->open(OpenFlag_Read);
++
++    uno::Reference<io::XInputStream> xResult;
++    switch (errorCode)
+     {
+-        ::fseek( f, 0 ,SEEK_END );
+-        int nLength = ::ftell( f );
+-        ::fseek( f, 0, SEEK_SET );
+-
+-        ByteSequence bytes( nLength );
+-        ::fread( bytes.getArray(), nLength, 1, f );
+-        ::fclose( f );
++    case osl::File::E_None: // got it
++        xResult.set( new comphelper::OSLInputStreamWrapper(blobFile,true) );
++        break;
++
++    case osl::File::E_NOENT: // no file => no stream
++        delete blobFile;
++        break;
++
++    default:
++        delete blobFile;
++/*            {
++            rtl::OUStringBuffer sMsg;
++            sMsg.appendAscii("Cannot open output file \"");
++            sMsg.append(aURL);
++            sMsg.appendAscii("\" : ");
++            sMsg.append(configmgr::FileHelper::createOSLErrorString(errorCode));
+ 
+-        return new xmlscript::BSeqInputStream( bytes );
++            throw io::IOException(sMsg.makeStringAndClear(),NULL);
++        }   
++*/
+     }
+ 
+-    throw Exception( OUString( RTL_CONSTASCII_USTRINGPARAM("### Cannot read file!") ),
+-                     Reference< XInterface >() );
++    return xResult;
+ }
+ 
+ } // namespace layoutimpl
+Index: toolkit/source/layout/container.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/container.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/container.cxx	6 Mar 2008 11:43:57 -0000	1.2
++++ toolkit/source/layout/container.cxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "container.hxx"
+ 
+ #include <com/sun/star/awt/XWindow.hpp>
+@@ -131,9 +166,6 @@ void Container::propertiesChanged()
+         DBG_ERROR( "Properties listener: error container doesn't have parent" );
+     }
+ 
+-    // ask parent to be re-calculated
+-// FIXME: thats wrongg actually. We just need to do a "queueResize();"
+-    
+     if ( mxLayoutUnit.is() && mxParent.is() )
+         mxLayoutUnit->queueResize( mxParent );
+ }
+Index: toolkit/source/layout/container.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/container.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/container.hxx	6 Mar 2008 11:44:10 -0000	1.2
++++ toolkit/source/layout/container.hxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_CONTAINER_HXX
+ #define CORE_CONTAINER_HXX
+ 
+Index: toolkit/source/layout/dialogbuttonhbox.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/dialogbuttonhbox.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/dialogbuttonhbox.cxx	6 Mar 2008 11:44:23 -0000	1.2
++++ toolkit/source/layout/dialogbuttonhbox.cxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,11 +1,45 @@
+-#include "dialogbuttonhbox.hxx"
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
+ 
++#include <awt/vclxbutton.hxx>
+ #include <tools/debug.hxx>
+ #include <toolkit/awt/vclxwindows.hxx>
+ #include <vcl/button.hxx>
+ 
++#include "dialogbuttonhbox.hxx"
+ #include "flow.hxx"
+-#include "../awt/vclxbutton.hxx"
+ #include "proplist.hxx"
+ 
+ #if TEST_LAYOUT && !defined( DBG_UTIL )
+@@ -129,23 +163,23 @@ DialogButtonHBox::removeChild( uno::Refe
+     if ( !xChild.is ())
+         return;
+ 
+-    ChildData *p = 0;
++    Box_Base::ChildData *p = 0;
+ 
+-    if ( mpAction && mpAction->xChild == xChild )
++    if ( mpAction && mpAction->mxChild == xChild )
+         p = mpAction;
+-    else if ( mpAffirmative && mpAffirmative->xChild == xChild )
++    else if ( mpAffirmative && mpAffirmative->mxChild == xChild )
+         p = mpAffirmative;
+-    else if ( mpAlternate && mpAlternate->xChild == xChild )
++    else if ( mpAlternate && mpAlternate->mxChild == xChild )
+         p = mpAlternate;
+-    else if ( mpApply && mpApply->xChild == xChild )
++    else if ( mpApply && mpApply->mxChild == xChild )
+         p = mpApply;
+-    else if ( mpCancel && mpCancel->xChild == xChild )
++    else if ( mpCancel && mpCancel->mxChild == xChild )
+         p = mpCancel;
+-    else if ( mpFlow && mpFlow->xChild == xChild )
++    else if ( mpFlow && mpFlow->mxChild == xChild )
+         p = mpFlow;
+-    else if ( mpReset && mpReset->xChild == xChild )
++    else if ( mpReset && mpReset->mxChild == xChild )
+         p = mpReset;
+-    else if ( mpHelp && mpHelp->xChild == xChild )
++    else if ( mpHelp && mpHelp->mxChild == xChild )
+         p = mpHelp;
+     else
+         p = removeChildData( maOther, xChild );
+@@ -166,7 +200,7 @@ DialogButtonHBox::removeChild( uno::Refe
+ void
+ DialogButtonHBox::gnomeOrdering()
+ {
+-    std::list< ChildData * > ordered;
++    std::list< Box_Base::ChildData * > ordered;
+     if ( mpHelp )
+         ordered.push_back( mpHelp );
+     if ( mpReset )
+@@ -190,7 +224,7 @@ DialogButtonHBox::gnomeOrdering()
+ void
+ DialogButtonHBox::kdeOrdering()
+ {
+-    std::list< ChildData * > ordered;
++    std::list< Box_Base::ChildData * > ordered;
+     if ( mpHelp )
+         ordered.push_back( mpHelp );
+     if ( mpReset )
+@@ -214,7 +248,7 @@ DialogButtonHBox::kdeOrdering()
+ void
+ DialogButtonHBox::macosOrdering()
+ {
+-    std::list< ChildData * > ordered;
++    std::list< Box_Base::ChildData * > ordered;
+     if ( mpHelp )
+         ordered.push_back( mpHelp );
+     if ( mpReset )
+@@ -240,7 +274,7 @@ DialogButtonHBox::macosOrdering()
+ void
+ DialogButtonHBox::windowsOrdering()
+ {
+-    std::list< ChildData * > ordered;
++    std::list< Box_Base::ChildData * > ordered;
+     if ( mpReset )
+         ordered.push_back( mpReset );
+     if ( mpReset && mpFlow )
+Index: toolkit/source/layout/dialogbuttonhbox.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/dialogbuttonhbox.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/dialogbuttonhbox.hxx	6 Mar 2008 11:44:34 -0000	1.2
++++ toolkit/source/layout/dialogbuttonhbox.hxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_DIALOGBUTTONHBOX_HXX
+ #define CORE_DIALOGBUTTONHBOX_HXX
+ 
+@@ -38,7 +73,7 @@ private:
+     ChildData *mpHelp;
+     ChildData *mpReset;
+ 
+-    std::list< ChildData *> maOther;
++    std::list< Box_Base::ChildData *> maOther;
+ };
+ 
+ } // namespace layoutimpl
+Index: toolkit/source/layout/factory.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/factory.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/layout/factory.cxx	6 Mar 2008 11:44:46 -0000	1.2
++++ toolkit/source/layout/factory.cxx	28 Mar 2008 09:48:25 -0000	1.2.6.2
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "factory.hxx"
+ 
+ #include <com/sun/star/registry/XRegistryKey.hpp>
+@@ -9,17 +44,7 @@
+ using namespace ::com::sun::star;
+ using namespace layoutimpl;
+ 
+-extern "C"
+-{
+-
+-    TOOLKIT_DLLPUBLIC void 
+-    SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+-    {
+-        *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+-    }
+-
+-    TOOLKIT_DLLPUBLIC void * SAL_CALL
+-    component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
++void * SAL_CALL comp_Layout_component_getFactory( const char * pImplName, void * pServiceManager, void * /*registryKey*/ )
+     {
+         void * pRet = 0;
+ 
+@@ -40,8 +65,7 @@ extern "C"
+         return pRet;
+     }
+ 
+-    TOOLKIT_DLLPUBLIC sal_Bool SAL_CALL
+-    component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
++sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * /*serviceManager*/, void * pRegistryKey )
+     {
+         if ( pRegistryKey )
+         {
+@@ -61,13 +85,13 @@ extern "C"
+                 return sal_True;
+             }
+             catch (registry::InvalidRegistryException &)
+-            {   OSL_ENSURE( sal_False, "### InvalidRegistryException!" );   }
++        {
++            OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
++        }
+         }
+         return sal_False;
+     }
+ 
+-} // extern "C"
+-
+ // Component registration
+ ::rtl::OUString SAL_CALL LayoutFactory::impl_staticGetImplementationName()
+ {
+Index: toolkit/source/layout/factory.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/factory.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/factory.hxx	6 Mar 2008 11:44:57 -0000	1.2
++++ toolkit/source/layout/factory.hxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef FACTORY_HXX_
+ #define FACTORY_HXX_
+ 
+Index: toolkit/source/layout/flow.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/flow.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/flow.cxx	6 Mar 2008 11:45:11 -0000	1.2
++++ toolkit/source/layout/flow.cxx	20 Mar 2008 11:56:27 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "flow.hxx"
+ 
+ #include <sal/macros.h>
+Index: toolkit/source/layout/flow.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/flow.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/layout/flow.hxx	6 Mar 2008 11:45:24 -0000	1.2
++++ toolkit/source/layout/flow.hxx	28 Mar 2008 13:44:29 -0000	1.2.6.2
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_FLOW_HXX
+ #define CORE_FLOW_HXX
+ 
+@@ -15,6 +50,7 @@ protected:
+     sal_Int32 mnSpacing;
+     sal_Bool mbHomogeneous;
+ 
++public:
+     // Children properties
+     struct ChildData
+     {
+@@ -23,6 +59,8 @@ protected:
+         css::uno::Reference< css::beans::XPropertySet >    xProps;
+         bool isVisible();
+     };
++
++protected:
+     std::list< ChildData * > maChildren;
+     long mnEachWidth;  // on homogeneous, the width of every child
+ 
+Index: toolkit/source/layout/helper.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/helper.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/layout/helper.cxx	6 Mar 2008 11:45:38 -0000	1.2
++++ toolkit/source/layout/helper.cxx	28 Mar 2008 09:49:53 -0000	1.2.6.3
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "helper.hxx"
+ 
+ #include <assert.h>
+@@ -8,7 +43,7 @@
+ #include <tools/debug.hxx>
+ 
+ #include "proplist.hxx"
+-#include "layoutcore.hxx"
++#include "layout/layoutcore.hxx"
+ 
+ #if TEST_LAYOUT && !defined( DBG_UTIL )
+ #include <stdio.h>
+@@ -143,6 +178,7 @@ createToolkitWidget( uno::Reference< awt
+     uno::Reference< awt::XWindowPeer > xWinPeer;
+     try
+     {
++        DBG_ERROR1("Asking toolkit: %s\n", OUSTRING_CSTR( desc.WindowServiceName ) );
+         xWinPeer = xToolkit->createWindow( desc );
+         if ( !xWinPeer.is() )
+             throw uno::RuntimeException(
+@@ -150,9 +186,9 @@ createToolkitWidget( uno::Reference< awt
+                 uno::Reference< uno::XInterface >() );
+         xPeer = uno::Reference< awt::XLayoutConstrains >( xWinPeer, uno::UNO_QUERY );
+     }
+-    catch( uno::Exception &ex )
++    catch( uno::Exception & )
+     {
+-        DBG_ERROR1( "Warning:  %s is not a recognized type", OUSTRING_CSTR( rName ) );
++        DBG_ERROR1( "Warning: %s is not a recognized type\n", OUSTRING_CSTR( rName ) );
+         return uno::Reference< awt::XLayoutConstrains >();
+     }
+ 
+@@ -182,10 +218,6 @@ createWidget( uno::Reference< awt::XTool
+     if ( xPeer.is() )
+         return xPeer;
+ 
+-    xPeer = createInternalWidget( xToolkit, xParent, rName, nProps );
+-    if ( xPeer.is() )
+-        return xPeer;
+-
+ #if FIXED_INFO
+     OUString tName = rName;
+     // FIXME
+@@ -314,19 +346,23 @@ PropHelper::queryInterface( const ::com:
+ 
+ } // namespace layoutimpl
+ 
+-#include "../awt/vclxdialog.hxx"
+-#include "../awt/vclxfixedline.hxx"
+-#include "../awt/vclxproxy.hxx"
+-#include "../awt/vclxscroller.hxx"
+-#include "../awt/vclxsplitter.hxx"
+-#include "../awt/vclxtabcontrol.hxx"
++#include <awt/vclxbutton.hxx>
++#include <awt/vclxdialog.hxx>
++#include <awt/vclxfixedline.hxx>
++#include <awt/vclxscroller.hxx>
++#include <awt/vclxsplitter.hxx>
++#include <awt/vclxtabcontrol.hxx>
+ #include <toolkit/awt/vclxtoolkit.hxx>
+ #include <toolkit/awt/vclxwindow.hxx>
++#include <vcl/button.hxx>
+ #include <vcl/dialog.hxx>
+ #include <vcl/fixed.hxx>
+ #include <vcl/tabctrl.hxx>
+ #include <vcl/tabpage.hxx>
+ 
++
++///#include <svtools/prgsbar.hxx>
++
+ namespace layoutimpl
+ {
+ 
+@@ -346,10 +382,7 @@ uno::Reference< awt::XLayoutConstrains >
+     if ( aName.equalsAscii( "dialog" ) )
+     {
+         if ( pParent == NULL )
+-            // DIALOG_NO_PARENT == 0xffff
+-            // it would crash otherwise
+-// FIXME: check for crash
+-            pParent = DIALOG_NO_PARENT; /*DIALOG_NO_PARENT == 0xffff ?! :P*/
++            pParent = DIALOG_NO_PARENT;
+         pNewWindow = new Dialog( pParent,
+                                  ImplGetWinBits( WindowAttributes, 0 ) );
+         pNewComp = new layoutimpl::VCLXDialog();
+@@ -394,6 +427,61 @@ uno::Reference< awt::XLayoutConstrains >
+         pNewWindow = new FixedLine( pParent, nStyle );
+         pNewComp = new layoutimpl::VCLXFixedLine();
+     }
++    else if ( aName.equalsAscii( "okbutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXOKButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "cancelbutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXCancelButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "yesbutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXYesButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "nobutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXNoButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "retrybutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXRetryButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "ignorebutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXIgnoreButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "resetbutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXResetButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "applybutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXApplyButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "helpbutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXHelpButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "morebutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXMoreButton( pNewWindow );
++    }
++    else if ( aName.equalsAscii( "advancedbutton" ) )
++    {
++        pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXAdvancedButton( pNewWindow );
++    }
+ 
+     if ( !pNewWindow )
+         return xRef;
+Index: toolkit/source/layout/helper.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/helper.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/layout/helper.hxx	6 Mar 2008 11:45:51 -0000	1.2
++++ toolkit/source/layout/helper.hxx	27 Mar 2008 13:07:56 -0000	1.2.6.3
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef HELPER_HXX
+ #define HELPER_HXX
+ 
+@@ -62,6 +97,7 @@ public:
+         throw(css::lang::IllegalArgumentException);
+     virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
+                                                             const css::uno::Any& rValue ) throw (css::uno::Exception);
++    using OPropertySetHelper::getFastPropertyValue;
+     virtual void SAL_CALL getFastPropertyValue( css::uno::Any& rValue,
+                                                 sal_Int32 nHandle ) const;
+ 
+Index: toolkit/source/layout/import.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/import.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/layout/import.cxx	6 Mar 2008 11:46:13 -0000	1.2
++++ toolkit/source/layout/import.cxx	28 Mar 2008 09:49:53 -0000	1.2.6.2
+@@ -1,13 +1,52 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "import.hxx"
+ 
+ #include <com/sun/star/awt/XButton.hpp>
+ #include <com/sun/star/awt/XDialog2.hpp>
++#include <vcl/image.hxx>
+ #include <tools/debug.hxx>
+ 
+ #include "root.hxx"
+ #include "helper.hxx"
+ #include "dialogbuttonhbox.hxx"
+ 
++// Hmm...
++#include "layout/layout.hxx"
++#include "layout/layoutcore.hxx"
+ 
+ #define XMLNS_LAYOUT_URI    "http://openoffice.org/2007/layout"
+ #define XMLNS_CONTAINER_URI "http://openoffice.org/2007/layout/container"
+@@ -71,14 +110,21 @@ SAL_THROW (())
+         DBG_ERROR( "Fatal error: top node isn't a dialog" );
+     }
+ 
+-    bool bOrdering;
++#if 0
++    // Hack moved to proplist.cxx
++    OUString aGraphic;
++    if ( findAndRemove( "graphic", aProps, aGraphic ) )
++        //if ( layout::FixedImage *i = dynamic_cast<layout::FixedImage *> ( mpWidget->getPeer().get() ) )
++        // FIXME: huh? XImageProducer::complete( XImageConsumer )
++        //i->setImage( Image( loadGraphic( OUSTRING_CSTR( aGraphic ) ) ) );
++        mpWidget->setProperty( OUString::createFromAscii( "graphic" ),
++                               loadGraphic( OUSTRING_CSTR( aGraphic ) ) );
++#endif
++
+     OUString aOrdering;
+-    bOrdering = findAndRemove( "ordering", aProps, aOrdering );
++    if ( findAndRemove( "ordering", aProps, aOrdering ) )
+     if ( DialogButtonHBox *b = dynamic_cast<DialogButtonHBox *> ( mpWidget->getPeer().get() ) )
+-    {
+-        if ( bOrdering )
+             b->setOrdering ( aOrdering );
+-    }
+ 
+ #ifdef IMPORT_RADIOGROUP
+     bool bSetRadioGroup, bSetTitle;
+@@ -201,7 +247,6 @@ uno::Reference< xml::input::XElement > I
+         throw xml::sax::SAXException(
+             OUString( RTL_CONSTASCII_USTRINGPARAM( "invalid namespace!" ) ),
+             uno::Reference< uno::XInterface >(), uno::Any() );
+-    else
+         return new ToplevelElement( rLocalName, xAttributes, this );
+ }
+ 
+Index: toolkit/source/layout/import.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/import.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/import.hxx	6 Mar 2008 11:46:38 -0000	1.2
++++ toolkit/source/layout/import.hxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef IMPORT_HXX
+ #define IMPORT_HXX
+ 
+@@ -87,7 +122,8 @@ private:
+             {
+                 mxSelectedRadio->setState( false );
+                 // the only radio button selected would be the one that fired the event
+-                for( RadioButtonsList::iterator it = mxRadios.begin(); it != mxRadios.end(); it++ )
++                for ( RadioButtonsList::iterator it = mxRadios.begin();
++                      it != mxRadios.end(); it++ )
+                     if ( (*it)->getState() )
+                     {
+                         mxSelectedRadio = *it;
+Index: toolkit/source/layout/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/makefile.mk,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/layout/makefile.mk	6 Mar 2008 11:46:52 -0000	1.2
++++ toolkit/source/layout/makefile.mk	28 Mar 2008 09:49:53 -0000	1.2.6.2
+@@ -1,39 +1,56 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++#     MA  02110-1301  USA
++#
++#*************************************************************************
++
+ PRJ=..$/..
+ PRJNAME=toolkit
+ TARGET=layoutcore
+ ENABLE_EXCEPTIONS=true
+-TARGETTYPE=GUI
++
++# --- Settings -----------------------------------------------------
+ 
+ .INCLUDE : settings.mk
+ .INCLUDE : $(PRJ)$/util$/makefile.pmk
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
++# --- Files --------------------------------------------------------
+ 
+-.IF "$(COMNAME)" == "gcc3"
+-CFLAGS+=-I../$(PRJ)/xmlscript/source
+-CFLAGS+=-Wall -Wno-non-virtual-dtor
+-.ENDIF
+-
+-##CFLAGS += -DENABLE_LAYOUT=1
+-
+-CXXFILES= \
+-	bin.cxx \
+-	box.cxx \
+-	byteseq.cxx \
+-	container.cxx \
+-	dialogbuttonhbox.cxx \
+-	factory.cxx \
+-	flow.cxx \
+-	helper.cxx \
+-	import.cxx \
+-	proplist.cxx \
+-	root.cxx \
+-	table.cxx \
+-	timer.cxx \
+-	translate.cxx
++# FIXME: This is bad, hmkay
++CFLAGS+= -I$(PRJ)/source
+ 
+ SLOFILES= \
+ 	$(SLO)$/bin.obj \
++	$(SLO)$/box-base.obj \
+ 	$(SLO)$/box.obj \
+ 	$(SLO)$/byteseq.obj \
+ 	$(SLO)$/container.obj \
+@@ -48,6 +65,6 @@ SLOFILES= \
+ 	$(SLO)$/timer.obj \
+ 	$(SLO)$/translate.obj
+ 
+-.ENDIF # ENABLE_LAYOUT == "TRUE"
++# --- Targets ------------------------------------------------------
+ 
+ .INCLUDE : target.mk
+Index: toolkit/source/layout/precompiled_xmlscript.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/precompiled_xmlscript.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/precompiled_xmlscript.hxx	6 Mar 2008 11:47:03 -0000	1.2
++++ toolkit/source/layout/precompiled_xmlscript.hxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ /*
+   xmlscript/source/xml_helper/xml_byteseq.cxx compile helper.
+ 
+Index: toolkit/source/layout/proplist.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/proplist.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/layout/proplist.cxx	6 Mar 2008 11:47:20 -0000	1.2
++++ toolkit/source/layout/proplist.cxx	28 Mar 2008 09:49:54 -0000	1.2.6.3
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "proplist.hxx"
+ 
+ #include <rtl/ustrbuf.hxx>
+@@ -8,6 +43,8 @@
+ #include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+ #include <tools/debug.hxx>
+ 
++#include "layout/layoutcore.hxx"
++
+ #if TEST_LAYOUT && !defined( DBG_UTIL )
+ #include <stdio.h>
+ #undef DBG_ERROR
+@@ -85,8 +122,14 @@ getProperty( const uno::Reference< uno::
+ 
+ /* Given a string and a type, it converts the string to the type, and returns
+    it encapsulated in Any. */
+-uno::Any anyFromString( const OUString &value, const uno::Type &type )
++uno::Any anyFromString( OUString const& value, uno::Type const& type )
+ {
++    sal_Int16 radix = 10;
++    OUString intval = value;
++    if ( value.getLength() > 2 && value[0] == '0' && value[1] == 'x' )
++        intval = value.copy( 2 ), radix = 16;
++    else if ( value.getLength() > 1 && value[0] == '#' )
++        intval = value.copy( 1 ), radix = 16;
+     switch ( type.getTypeClass() )
+     {
+         case uno::TypeClass_CHAR:
+@@ -98,21 +141,21 @@ uno::Any anyFromString( const OUString &
+                 return uno::makeAny( false );
+             break;  // ends switch, throws exception
+         case uno::TypeClass_BYTE:
+-            return uno::makeAny( ( sal_uInt8 ) value.toInt32() );
++            return uno::makeAny( ( sal_uInt8 ) intval.toInt32( radix ) );
+         case uno::TypeClass_SHORT:
+-            return uno::makeAny( ( sal_Int16 ) value.toInt32() );
++            return uno::makeAny( ( sal_Int16 ) intval.toInt32( radix ) );
+         case uno::TypeClass_UNSIGNED_SHORT:
+-            return uno::makeAny( ( sal_uInt16 ) value.toInt32() );
++            return uno::makeAny( ( sal_uInt16 ) intval.toInt32( radix ) );
+         case uno::TypeClass_ENUM:
+-            return uno::makeAny( ( sal_Int16 ) value.toInt32() );
++            return uno::makeAny( ( sal_Int16 ) intval.toInt32( radix ) );
+         case uno::TypeClass_LONG:
+-            return uno::makeAny( ( sal_Int32 ) value.toInt32() );
++            return uno::makeAny( ( sal_Int32 ) intval.toInt32( radix ) );
+         case uno::TypeClass_UNSIGNED_LONG:
+-            return uno::makeAny( ( sal_uInt32 ) value.toInt32() );
++            return uno::makeAny( ( sal_uInt32 ) intval.toInt32( radix ) );
+         case uno::TypeClass_HYPER:
+-            return uno::makeAny( ( sal_Int64 ) value.toInt64() );
++            return uno::makeAny( ( sal_Int64 ) intval.toInt64( radix ) );
+         case uno::TypeClass_UNSIGNED_HYPER:
+-            return uno::makeAny( ( sal_uInt16 ) value.toInt64() );
++            return uno::makeAny( ( sal_uInt16 ) intval.toInt64( radix ) );
+         case uno::TypeClass_FLOAT:
+             return uno::makeAny( value.toFloat() );
+         case uno::TypeClass_DOUBLE:
+@@ -120,9 +163,9 @@ uno::Any anyFromString( const OUString &
+         case uno::TypeClass_STRING:
+             return uno::makeAny( value );
+         case uno::TypeClass_CONSTANT:
+-            if ( value.getLength() > 2 && value[0] == '0' && value[1] == 'x' )
+-                return uno::makeAny( value.copy( 2 ).toInt32( 16 ) );
+-            return uno::makeAny( value.toInt32() );
++            return uno::makeAny( intval.toInt32( radix ) );
++        case uno::TypeClass_INTERFACE:
++            return uno::makeAny( loadGraphic( OUSTRING_CSTR( value ) ) );
+         case uno::TypeClass_SEQUENCE:
+         {
+             sal_Int32 i = 0;
+@@ -163,10 +206,9 @@ uno::Any anyFromString( const OUString &
+ 
+             return uno::makeAny( seq );
+         }
+-        break;
+ 
+         default:
+-            DBG_ERROR1( "ERROR: unknown property type of value: `%s'", OUSTRING_CSTR( value ) );
++            DBG_ERROR1( "ERROR: unknown property type of value: `%s'\n", OUSTRING_CSTR( value ) );
+             break;
+     }
+     throw uno::RuntimeException();
+@@ -212,7 +254,7 @@ setProperties( uno::Reference< uno::XInt
+ {
+     if ( !prophlp::canHandleProps( xPeer ) )
+     {
+-        DBG_ERROR( "Error: setProperties - bad handle ignoring props:" );
++        DBG_ERROR( "Error: setProperties - bad handle ignoring props:\n" );
+         PropList::const_iterator cur;
+         for( cur = rProps.begin(); cur != rProps.end(); cur++ )
+         {
+@@ -233,6 +275,7 @@ setProperty( uno::Reference< uno::XInter
+ {
+     OUString unoAttr = toUnoNaming( attr );
+ 
++    OSL_TRACE( "setting %s=%s\n", OUSTRING_CSTR( attr ), OUSTRING_CSTR( value ) );
+     // get a Property object
+     beans::Property prop;
+     try
+@@ -241,15 +284,15 @@ setProperty( uno::Reference< uno::XInter
+             = prophlp::queryPropertyInfo( xPeer );
+         prop = xInfo->getPropertyByName( unoAttr );
+     }
+-    catch( beans::UnknownPropertyException &ex )
++    catch( beans::UnknownPropertyException & )
+     {
+-        DBG_ERROR1( "Warning: unknown attribute: `%s'", OUSTRING_CSTR( unoAttr ) );
++        DBG_ERROR1( "Warning: unknown attribute: `%s'\n", OUSTRING_CSTR( unoAttr ) );
+         return;
+     }
+ 
+     if ( prop.Name.getLength() <= 0 )
+     {
+-        DBG_ERROR1( "Warning: missing prop: `%s'", OUSTRING_CSTR( unoAttr ) );
++        DBG_ERROR1( "Warning: missing prop: `%s'\n", OUSTRING_CSTR( unoAttr ) );
+         return;
+     }
+ 
+@@ -259,9 +302,9 @@ setProperty( uno::Reference< uno::XInter
+     {
+         any = anyFromString( value, prop.Type );
+     }
+-    catch( uno::RuntimeException &ex )
++    catch( uno::RuntimeException & )
+     {
+-        DBG_ERROR5( "Warning: %s( %s )( %s ) attribute is of type %s( rejected: %s )", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ), OUSTRING_CSTR( prop.Name ),  OUSTRING_CSTR( prop.Type.getTypeName() ), OUSTRING_CSTR( value ) );
++        DBG_ERROR5( "Warning: %s( %s )( %s ) attribute is of type %s( rejected: %s )\n", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ), OUSTRING_CSTR( prop.Name ),  OUSTRING_CSTR( prop.Type.getTypeName() ), OUSTRING_CSTR( value ) );
+         return;
+     }
+ 
+@@ -272,7 +315,7 @@ setProperty( uno::Reference< uno::XInter
+     }
+     catch( ... )
+     {
+-        DBG_ERROR2( "Warning: cannot set attribute %s to %s ", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ) );
++        DBG_ERROR2( "Warning: cannot set attribute %s to %s \n", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ) );
+     }
+ }
+ 
+@@ -301,8 +344,7 @@ static const AttributesMap attribsMap[] 
+     { "left",         awt::VclWindowPeerAttribute::LEFT,         false },
+     { "moveable",     awt::WindowAttribute::MOVEABLE,            true },
+     { "noborder",     awt::VclWindowPeerAttribute::NOBORDER,     false },
+-// Comment-out for <= m237
+-//    { "nolabel",      awt::VclWindowPeerAttribute::NOLABEL,      false },
++    { "nolabel",      awt::VclWindowPeerAttribute::NOLABEL,      false },
+     { "optimumsize",  awt::WindowAttribute::OPTIMUMSIZE,         false },
+     { "readonly",     awt::VclWindowPeerAttribute::READONLY,     false },
+     { "right",        awt::VclWindowPeerAttribute::RIGHT,        false },
+Index: toolkit/source/layout/proplist.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/proplist.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/proplist.hxx	6 Mar 2008 11:47:31 -0000	1.2
++++ toolkit/source/layout/proplist.hxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_PROPLIST_HXX
+ #define CORE_PROPLIST_HXX
+ 
+Index: toolkit/source/layout/root.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/root.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.7
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.7
+--- toolkit/source/layout/root.cxx	6 Mar 2008 11:47:44 -0000	1.2
++++ toolkit/source/layout/root.cxx	3 Apr 2008 08:03:18 -0000	1.2.6.7
+@@ -1,6 +1,49 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "root.hxx"
+ 
+ #include <assert.h>
++#include <stdio.h>
++
++#include <com/sun/star/awt/WindowAttribute.hpp>
++#include <com/sun/star/awt/XMessageBox.hpp>
++#include <com/sun/star/awt/MessageBoxButtons.hpp>
++#include <com/sun/star/frame/XDesktop.hpp>
++#include <com/sun/star/awt/XMessageBoxFactory.hpp>
++#include <com/sun/star/xml/sax/SAXParseException.hpp>
+ #include <com/sun/star/xml/sax/XParser.hpp>
+ 
+ #include "helper.hxx"
+@@ -42,6 +86,37 @@ LayoutRoot::~LayoutRoot()
+     }
+ }
+ 
++void ShowMessageBox( uno::Reference< lang::XMultiServiceFactory > const& xFactory, uno::Reference< awt::XToolkit > xToolkit, OUString const& aTitle, OUString const& aMessage )
++{
++    uno::Reference< uno::XInterface > iDesktop = xFactory->createInstance
++        ( OUString::createFromAscii( "com.sun.star.frame.Desktop" ) );
++    uno::Reference< frame::XDesktop > xDesktop ( iDesktop, uno::UNO_QUERY );
++    uno::Reference< frame::XFrame > xFrame ( xDesktop->getCurrentFrame() );
++    uno::Reference< awt::XWindow > xContainerWindow( xFrame->getContainerWindow() );
++    uno::Reference< awt::XWindowPeer > xWindowPeer( xContainerWindow, uno::UNO_QUERY_THROW );
++    uno::Reference< awt::XMessageBoxFactory > xMessageBoxFactory( xToolkit, uno::UNO_QUERY );
++
++    awt::Rectangle aRectangle;
++    uno::Reference< awt::XMessageBox > xMessageBox
++        = xMessageBoxFactory->createMessageBox
++        ( xWindowPeer, aRectangle, OUString::createFromAscii( "errorbox" ),
++          awt::MessageBoxButtons::BUTTONS_OK, aTitle, aMessage );
++
++    if ( xMessageBox.is() )
++        xMessageBox->execute();
++    //FIXME: exceptions not caught and printed at top level??
++    //else
++    printf( "%s\n", OUSTRING_CSTR( aMessage ) );
++}
++
++void LayoutRoot::error( OUString const& message )
++{
++    ShowMessageBox( mxFactory, mxToolkit,
++                    OUString::createFromAscii( "Fatal error" ),
++                    message );
++    throw uno::RuntimeException( message, uno::Reference< uno::XInterface >() );
++}
++
+ // XInitialization
+ void SAL_CALL LayoutRoot::initialize( const uno::Sequence< uno::Any >& aArguments )
+     throw ( uno::Exception,
+@@ -66,36 +141,36 @@ void SAL_CALL LayoutRoot::initialize( co
+ 
+     uno::Reference< xml::sax::XParser > xParser
+         ( mxFactory->createInstance(
+-            OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.sax.Parser" ) ) ),
++            OUString::createFromAscii( "com.sun.star.xml.sax.Parser" ) ),
+           uno::UNO_QUERY );
+     OSL_ASSERT( xParser.is() );
+     if (! xParser.is())
+     {
+         throw uno::RuntimeException(
+-            OUString( RTL_CONSTASCII_USTRINGPARAM( "cannot create sax-parser component" ) ),
++            OUString::createFromAscii( "cannot create sax-parser component" ),
+             uno::Reference< uno::XInterface >() );
+     }
+ 
+-    OUString aXMLFile = readRightTranslation( aXMLName );
+-
+-    uno::Reference< io::XInputStream > xStream = getFileAsStream( mxFactory,
+-                                                                  aXMLFile );
+-
+-    // error handler, entity resolver omitted
+-
+     // FIXME: quite possibly we want to pass this in ...
+     uno::Reference< awt::XToolkit > xToolkit;
+ 
+     mxToolkit = uno::Reference< awt::XToolkit >(
+         mxFactory->createInstance(
+-            OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
++            OUString::createFromAscii( "com.sun.star.awt.Toolkit" ) ),
+         uno::UNO_QUERY );
+ 
+     if ( !mxToolkit.is() )
+         throw uno::RuntimeException(
+-            OUString( RTL_CONSTASCII_USTRINGPARAM( "failed to create toolkit!" ) ),
++            OUString::createFromAscii( "failed to create toolkit!" ),
+             uno::Reference< uno::XInterface >() );
+ 
++    OUString aXMLFile = readRightTranslation( aXMLName );
++    uno::Reference< io::XInputStream > xStream = getFileAsStream( aXMLFile );
++    if (! xStream.is() )
++        error( OUString::createFromAscii( "Installation problem: cannot find XML file:" ) + aXMLName );
++
++    // error handler, entity resolver omitted
++
+     ImportContext *pCtx = new ImportContext( *this );
+ 
+     uno::Reference< xml::input::XRoot > xRoot( pCtx );
+@@ -103,17 +178,31 @@ void SAL_CALL LayoutRoot::initialize( co
+     aArgs[0] <<= xRoot;
+     uno::Reference< xml::sax::XDocumentHandler > xDocHandler
+         (mxFactory->createInstanceWithArguments
+-         ( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.input.SaxDocumentHandler" ) ),
++         ( OUString::createFromAscii( "com.sun.star.xml.input.SaxDocumentHandler" ),
+           aArgs ), uno::UNO_QUERY );
+ 
++    if (! xDocHandler.is() )
++        error( OUString::createFromAscii( "cannot find SAx handler for document type of:") + aXMLName );
++        
+     xParser->setDocumentHandler( xDocHandler );
+ 
+     xml::sax::InputSource source;
+     source.aInputStream = xStream;
+-    source.sSystemId = OUString( RTL_CONSTASCII_USTRINGPARAM( "virtual file" ) );
++    source.sSystemId = OUString::createFromAscii( "virtual file" );
+ 
++    try
++    {
+     xParser->parseStream( source );
+ }
++    catch ( xml::sax::SAXParseException& e )
++    {
++        OUString c = OUString::createFromAscii( ":" );
++        error( aXMLName
++               + c + OUString::valueOf( e.LineNumber )
++               + c + OUString::valueOf( e.ColumnNumber )
++               + c + OUString::createFromAscii( "Sax parse error" ) );
++    }
++}
+ 
+ // XLayoutContainer
+ uno::Reference< awt::XLayoutContainer > LayoutRoot::getLayoutContainer() throw (uno::RuntimeException)
+@@ -249,7 +338,7 @@ LayoutWidget *LayoutRoot::create( OUStri
+     return pWidget;
+ }
+ 
+-/*
++#if 0
+   uno::Reference< awt::XLayoutConstrains > LayoutRoot::getToplevel()
+   {
+   if ( mpToplevel )
+@@ -265,7 +354,7 @@ LayoutWidget *LayoutRoot::create( OUStri
+   rRef = i->second;
+   return rRef;
+   }
+-*/
++#endif
+ 
+ LayoutWidget::LayoutWidget( uno::Reference< awt::XToolkit > xToolkit,
+                             uno::Reference< awt::XLayoutContainer > xParent,
+Index: toolkit/source/layout/root.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/root.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/layout/root.hxx	6 Mar 2008 11:47:56 -0000	1.2
++++ toolkit/source/layout/root.hxx	28 Mar 2008 14:55:40 -0000	1.2.6.3
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_ROOT_HXX
+ #define CORE_ROOT_HXX
+ 
+@@ -19,9 +54,7 @@ namespace layoutimpl
+ 
+ namespace css = ::com::sun::star;
+ 
+-css::uno::Reference< css::io::XInputStream >
+-getFileAsStream( const css::uno::Reference< css::lang::XMultiServiceFactory > &xFactory,
+-                 const rtl::OUString &rName );
++css::uno::Reference< css::io::XInputStream > getFileAsStream( const rtl::OUString &rName );
+ 
+ /* Interface generation code -- to hook to a parser. */
+ 
+@@ -61,6 +94,8 @@ protected:
+     LayoutWidget *mpToplevel;
+     css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
+ 
++    void error( rtl::OUString const& message );
++
+ public:
+     LayoutRoot( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
+     virtual ~LayoutRoot();
+@@ -74,7 +109,7 @@ public:
+     }
+ 
+     // get XLayoutContainer
+-    virtual css::uno::Reference< css::awt::XLayoutContainer > getLayoutContainer() throw (css::uno::RuntimeException);
++    virtual css::uno::Reference< css::awt::XLayoutContainer > SAL_CALL getLayoutContainer() throw (css::uno::RuntimeException);
+ 
+     // XInitialization
+     virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) throw (css::uno::Exception, css::uno::RuntimeException);
+Index: toolkit/source/layout/table.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/table.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/table.cxx	6 Mar 2008 11:48:10 -0000	1.2
++++ toolkit/source/layout/table.cxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include <table.hxx>
+ 
+ #include <sal/macros.h>
+@@ -15,117 +50,73 @@ namespace layoutimpl
+ 
+ using namespace com::sun::star;
+ 
+-class TableChildProps : public PropHelper
+-{
+-public:
+-    TableChildProps( Table::ChildData *pData )
++Table::ChildProps::ChildProps( Table::ChildData *pData )
+     {
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "XExpand" ),
+                  ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
+-                 &( pData->bExpand[ 0 ] ) );
++             &( pData->mbExpand[ 0 ] ) );
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "YExpand" ),
+                  ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
+-                 &( pData->bExpand[ 1 ] ) );
++             &( pData->mbExpand[ 1 ] ) );
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "ColSpan" ),
+                  ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
+-                 &( pData->nColSpan ) );
++             &( pData->mnColSpan ) );
+         addProp( RTL_CONSTASCII_USTRINGPARAM( "RowSpan" ),
+                  ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
+-                 &( pData->nRowSpan ) );
++             &( pData->mnRowSpan ) );
+     }
+-    PROPHELPER_SET_INFO
+-};
+ 
+ bool Table::ChildData::isVisible()
+ {
+-    if ( !xChild.is() || nColSpan < 1 || nRowSpan < 1 )
+-        return false;
+-    return xChild.is();
++    return Box_Base::ChildData::isVisible()
++        && ( mnColSpan > 0 ) && ( mnRowSpan > 0 );
+ }
+ 
+ Table::Table()
+-    : Container()
++    : Box_Base()
++    , mnColsLen( 1 )// another default value could be 0xffff for infinite columns( = 1 row )
+ {
+-    // another default value could be 0xffff for infinite columns( = 1 row )
+-    mnColsLen = 1;
+     addProp( RTL_CONSTASCII_USTRINGPARAM( "Columns" ),
+              ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
+              &mnColsLen );
+ }
+ 
+-void SAL_CALL
+-Table::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw( uno::RuntimeException, awt::MaxChildrenException )
+-{
+-    if ( xChild.is() )
++Table::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    : Box_Base::ChildData( xChild )
++//    , mbExpand( { 0, 1 } )
++    , mnColSpan( 1 )
++    , mnRowSpan( 1 )
++    , mnLeftCol( 0 )
++    , mnRightCol( 0 )
++    , mnTopRow( 0 )
++    , mnBottomRow( 0 )
+     {
+-        ChildData *pData = new ChildData();
+-        pData->bExpand[ 0 ] = pData->bExpand[ 1 ] = true;
+-        pData->nColSpan = pData->nRowSpan = 1;
+-        pData->xChild = xChild;
+-        maChildren.push_back( pData );
+-
+-        setChildParent( xChild );
+-        queueResize();
+-
+-        // cause of flicker
+-        allocateChildAt( xChild, awt::Rectangle( 0,0,0,0 ) );
+-    }
++    mbExpand[ 0 ] = 0;
++    mbExpand[ 1 ] = 1;
+ }
+ 
+-void SAL_CALL
+-Table::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw( uno::RuntimeException )
+-{
+-    for( std::list< ChildData * >::iterator it = maChildren.begin();
+-         it != maChildren.end(); it++ )
+-    {
+-        if ( ( *it )->xChild == xChild )
++Table::ChildData*
++Table::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
+         {
+-            delete *it;
+-            maChildren.erase( it );
+-
+-            unsetChildParent( xChild );
+-            queueResize();
+-            break;
+-        }
+-    }
+-    DBG_ERROR( "Table error: trying to remove child that doesn't exist" );
++    return new ChildData( xChild );
+ }
+ 
+-uno::Sequence< uno::Reference < awt::XLayoutConstrains > > SAL_CALL
+-Table::getChildren()
+-    throw( uno::RuntimeException )
++Table::ChildProps*
++Table::createChildProps( Box_Base::ChildData *pData )
+ {
+-    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
+-    unsigned int i = 0;
+-    for( std::list< ChildData * >::iterator it = maChildren.begin();
+-         it != maChildren.end(); it++, i++ )
+-        children[i] =( *it )->xChild;
+-
+-    return children;
++    return new ChildProps( static_cast<Table::ChildData*> ( pData ) );
+ }
+ 
+-uno::Reference< beans::XPropertySet > SAL_CALL
+-Table::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
+-    throw( uno::RuntimeException )
+-{
+-    std::list< ChildData * >::iterator iter;
+-    for( iter = maChildren.begin(); iter != maChildren.end(); iter++ )
+-    {
+-        if ( ( *iter )->xChild == xChild )
++void SAL_CALL
++Table::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw( uno::RuntimeException, awt::MaxChildrenException )
+         {
+-            if ( !( *iter )->xProps.is() )
++    if ( xChild.is() )
+             {
+-                // FIXME: make me safe !
+-                PropHelper *pProps = new TableChildProps( *iter );
+-                pProps->setChangeListener( this );
+-( *iter )->xProps = pProps;
+-            }
+-            return( *iter )->xProps;
+-        }
++        Box_Base::addChild( xChild );
++        // cause of flicker
++        allocateChildAt( xChild, awt::Rectangle( 0,0,0,0 ) );
+     }
+-    return uno::Reference< beans::XPropertySet >();
+ }
+ 
+ awt::Size SAL_CALL
+@@ -138,15 +129,16 @@ Table::getMinimumSize() throw( uno::Runt
+         // temporary 1D representation of the table
+         std::vector< ChildData *> aTable;
+ 
+-        int col = 0, row = 0;
+-        for( std::list<ChildData *>::iterator it = maChildren.begin();
+-             it != maChildren.end(); it++ )
++        int col = 0;
++        int row = 0;
++        for ( std::list<Box_Base::ChildData *>::iterator it
++                  = maChildren.begin(); it != maChildren.end(); it++ )
+         {
+-            ChildData *child = *it;
++            ChildData *child = static_cast<Table::ChildData*> ( *it );
+             if ( !child->isVisible() )
+                 continue;
+ 
+-            while ( col + SAL_MIN( child->nColSpan, mnColsLen ) > mnColsLen )
++            while ( col + SAL_MIN( child->mnColSpan, mnColsLen ) > mnColsLen )
+             {
+                 col = 0;
+                 row++;
+@@ -159,21 +151,21 @@ Table::getMinimumSize() throw( uno::Runt
+                 row = i / mnColsLen;
+             }
+ 
+-            child->nLeftCol = col;
+-            child->nRightCol = SAL_MIN( col + child->nColSpan, mnColsLen );
+-            child->nTopRow = row;
+-            child->nBottomRow = row + child->nRowSpan;
++            child->mnLeftCol = col;
++            child->mnRightCol = SAL_MIN( col + child->mnColSpan, mnColsLen );
++            child->mnTopRow = row;
++            child->mnBottomRow = row + child->mnRowSpan;
+ 
+-            col += child->nColSpan;
++            col += child->mnColSpan;
+ 
+-            unsigned int start = child->nLeftCol +( child->nTopRow*mnColsLen );
+-            unsigned int end =( child->nRightCol-1 ) +( ( child->nBottomRow-1 )*mnColsLen );
++            unsigned int start = child->mnLeftCol +( child->mnTopRow*mnColsLen );
++            unsigned int end =( child->mnRightCol-1 ) +( ( child->mnBottomRow-1 )*mnColsLen );
+             if ( aTable.size() < end+1 )
+                 aTable.resize( end+1, NULL );
+             for( unsigned int i = start; i < end; i++ )
+                 aTable[ i ] = child;
+ 
+-            nRowsLen = SAL_MAX( nRowsLen, child->nBottomRow );
++            nRowsLen = SAL_MAX( nRowsLen, child->mnBottomRow );
+         }
+     }
+ 
+@@ -186,51 +178,52 @@ Table::getMinimumSize() throw( uno::Runt
+         aGroup.resize( g == 0 ? mnColsLen : nRowsLen );
+ 
+         // 2.1 base sizes on one-column/row children
+-        for( std::list<ChildData *>::iterator it = maChildren.begin();
+-             it != maChildren.end(); it++ )
++        for ( std::list<Box_Base::ChildData *>::iterator it
++                  = maChildren.begin(); it != maChildren.end(); it++ )
+         {
+-            ChildData *child = *it;
++            ChildData *child = static_cast<Table::ChildData*> ( *it );
+             if ( !child->isVisible() )
+                 continue;
+-            const int nFirstAttach = g == 0 ? child->nLeftCol : child->nTopRow;
+-            const int nLastAttach  = g == 0 ? child->nRightCol : child->nBottomRow;
++            const int nFirstAttach = g == 0 ? child->mnLeftCol : child->mnTopRow;
++            const int nLastAttach  = g == 0 ? child->mnRightCol : child->mnBottomRow;
+ 
+             if ( nFirstAttach == nLastAttach-1 )
+             {
+-                child->aRequisition = child->xChild->getMinimumSize();
++                child->maRequisition = child->mxChild->getMinimumSize();
+                 int attach = nFirstAttach;
+-                int child_size = g == 0 ? child->aRequisition.Width
+-                    : child->aRequisition.Height;
+-                aGroup[ attach ].nSize = SAL_MAX( aGroup[ attach ].nSize, child_size );
+-                if ( child->bExpand[ g ] )
+-                    aGroup[ attach ].bExpand = true;
++                int child_size = g == 0 ? child->maRequisition.Width
++                    : child->maRequisition.Height;
++                aGroup[ attach ].mnSize = SAL_MAX( aGroup[ attach ].mnSize,
++                                                   child_size );
++                if ( child->mbExpand[ g ] )
++                    aGroup[ attach ].mbExpand = true;
+             }
+         }
+ 
+         // 2.2 make sure multiple-columns/rows children fit
+-        for( std::list<ChildData *>::iterator it = maChildren.begin();
+-             it != maChildren.end(); it++ )
++        for ( std::list<Box_Base::ChildData *>::iterator it
++                  = maChildren.begin(); it != maChildren.end(); it++ )
+         {
+-            ChildData *child = *it;
++            ChildData *child = static_cast<Table::ChildData*> ( *it );
+             if ( !child->isVisible() )
+                 continue;
+-            const int nFirstAttach = g == 0 ? child->nLeftCol : child->nTopRow;
+-            const int nLastAttach  = g == 0 ? child->nRightCol : child->nBottomRow;
++            const int nFirstAttach = g == 0 ? child->mnLeftCol : child->mnTopRow;
++            const int nLastAttach  = g == 0 ? child->mnRightCol : child->mnBottomRow;
+ 
+             if ( nFirstAttach != nLastAttach-1 )
+             {
+-                child->aRequisition = child->xChild->getMinimumSize();
++                child->maRequisition = child->mxChild->getMinimumSize();
+                 int size = 0;
+                 int expandables = 0;
+                 for( int i = nFirstAttach; i < nLastAttach; i++ )
+                 {
+-                    size += aGroup[ i ].nSize;
+-                    if ( aGroup[ i ].bExpand )
++                    size += aGroup[ i ].mnSize;
++                    if ( aGroup[ i ].mbExpand )
+                         expandables++;
+                 }
+ 
+-                int child_size = g == 0 ? child->aRequisition.Width
+-                    : child->aRequisition.Height;
++                int child_size = g == 0 ? child->maRequisition.Width
++                    : child->maRequisition.Height;
+                 int extra = child_size - size;
+                 if ( extra > 0 )
+                 {
+@@ -240,8 +233,8 @@ Table::getMinimumSize() throw( uno::Runt
+                         extra /= nLastAttach - nFirstAttach;
+ 
+                     for( int i = nFirstAttach; i < nLastAttach; i++ )
+-                        if ( expandables == 0 || aGroup[ i ].bExpand )
+-                            aGroup[ i ].nSize += extra;
++                        if ( expandables == 0 || aGroup[ i ].mbExpand )
++                            aGroup[ i ].mnSize += extra;
+                 }
+             }
+         }
+@@ -253,15 +246,15 @@ Table::getMinimumSize() throw( uno::Runt
+     for( std::vector<GroupData>::iterator it = maCols.begin();
+          it != maCols.end(); it++ )
+     {
+-        maRequisition.Width += it->nSize;
+-        if ( it->bExpand )
++        maRequisition.Width += it->mnSize;
++        if ( it->mbExpand )
+             mnColExpandables++;
+     }
+     for( std::vector<GroupData>::iterator it = maRows.begin();
+          it != maRows.end(); it++ )
+     {
+-        maRequisition.Height += it->nSize;
+-        if ( it->bExpand )
++        maRequisition.Height += it->mnSize;
++        if ( it->mbExpand )
+             mnRowExpandables++;
+     }
+ 
+@@ -282,10 +275,10 @@ Table::allocateArea( const awt::Rectangl
+     nExtraSize[ 0 ] /= mnColExpandables ? mnColExpandables : mnColsLen;
+     nExtraSize[ 1 ] /= mnRowExpandables ? mnRowExpandables : maRows.size();
+ 
+-    for( std::list<ChildData *>::const_iterator it = maChildren.begin();
+-         it != maChildren.end(); it++ )
++    for ( std::list<Box_Base::ChildData *>::const_iterator it
++              = maChildren.begin(); it != maChildren.end(); it++ )
+     {
+-        ChildData *child = *it;
++        ChildData *child = static_cast<Table::ChildData*> ( *it );
+         if ( !child->isVisible() )
+             continue;
+ 
+@@ -294,13 +287,13 @@ Table::allocateArea( const awt::Rectangl
+         for( int g = 0; g < 2; g++ )
+         {
+             std::vector< GroupData > &aGroup = g == 0 ? maCols : maRows;
+-            const int nFirstAttach = g == 0 ? child->nLeftCol : child->nTopRow;
+-            const int nLastAttach  = g == 0 ? child->nRightCol : child->nBottomRow;
++            const int nFirstAttach = g == 0 ? child->mnLeftCol : child->mnTopRow;
++            const int nLastAttach  = g == 0 ? child->mnRightCol : child->mnBottomRow;
+ 
+             for( int i = 0; i < nFirstAttach; i++ )
+             {
+-                int gSize = aGroup[ i ].nSize;
+-                if ( aGroup[ i ].bExpand )
++                int gSize = aGroup[ i ].mnSize;
++                if ( aGroup[ i ].mbExpand )
+                     gSize += nExtraSize[ g ];
+                 if ( g == 0 )
+                     rChildArea.X += gSize;
+@@ -309,8 +302,8 @@ Table::allocateArea( const awt::Rectangl
+             }
+             for( int i = nFirstAttach; i < nLastAttach; i++ )
+             {
+-                int gSize = aGroup[ i ].nSize;
+-                if ( aGroup[ i ].bExpand )
++                int gSize = aGroup[ i ].mnSize;
++                if ( aGroup[ i ].mbExpand )
+                     gSize += nExtraSize[ g ];
+                 if ( g == 0 )
+                     rChildArea.Width  += gSize;
+@@ -319,7 +312,7 @@ Table::allocateArea( const awt::Rectangl
+             }
+         }
+ 
+-        allocateChildAt( child->xChild, rChildArea );
++        allocateChildAt( child->mxChild, rChildArea );
+     }
+ }
+ 
+Index: toolkit/source/layout/table.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/table.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/layout/table.hxx	6 Mar 2008 11:48:23 -0000	1.2
++++ toolkit/source/layout/table.hxx	28 Mar 2008 13:44:29 -0000	1.2.6.2
+@@ -1,61 +1,94 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef TABLE_HXX
+ #define TABLE_HXX
+ 
+-#include "container.hxx"
+-
+-#include <list>
++#include "box-base.hxx"
+ 
+ namespace layoutimpl
+ {
+ 
+-class Table : public Container
++class Table : public Box_Base
+ {
+-    friend class TableChildProps;
+-protected:
+-    // Table properties
+-    sal_Int32 mnColsLen;
+-
++public:
+     // Children properties
+-    struct ChildData
++    struct ChildData : public Box_Base::ChildData
+     {
+-        sal_Bool  bExpand[ 2 ];
+-        sal_Int32 nColSpan, nRowSpan;
+-        css::awt::Size aRequisition;
+-        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
+-        css::uno::Reference< css::beans::XPropertySet >    xProps;
++        sal_Bool mbExpand[ 2 ];
++        sal_Int32 mnColSpan;
++        sal_Int32 mnRowSpan;
++        int mnLeftCol;
++        int mnRightCol;
++        int mnTopRow;
++        int mnBottomRow;
++
++        ChildData( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
+         bool isVisible();
++    };
+ 
+-        // automatically calculated
+-        int nLeftCol, nRightCol, nTopRow, nBottomRow;
++    struct ChildProps : public Box_Base::ChildProps
++    {
++        ChildProps( ChildData *pData );
+     };
+-    std::list< ChildData * > maChildren;
++
++protected:
+ 
+     // a group of children; either a column or a row
+     struct GroupData
+     {
+-        sal_Bool bExpand;
+-        int nSize;  // request size (width or height)
+-        GroupData() : bExpand( false ), nSize( 0 ) {}
++        sal_Bool mbExpand;
++        int mnSize;  // request size (width or height)
++        GroupData() : mbExpand( false ), mnSize( 0 ) {}
+     };
+-    std::vector< GroupData > maCols, maRows;
++
++    // Table properties
++    sal_Int32 mnColsLen;
++    std::vector< GroupData > maCols;
++    std::vector< GroupData > maRows;
+     int mnColExpandables, mnRowExpandables;
+ 
++    ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++    ChildProps *createChildProps( Box_Base::ChildData* pData );
++
+ public:
+     Table();
+ 
+     // css::awt::XLayoutContainer
+     virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+         throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
+-    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException);
+-
+-    virtual css::uno::Sequence< css::uno::Reference
+-                                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
+-        throw (css::uno::RuntimeException);
+-
+-    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
+-        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+-        throw (css::uno::RuntimeException);
+ 
+     virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
+         throw (css::uno::RuntimeException);
+Index: toolkit/source/layout/timer.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/timer.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/timer.cxx	6 Mar 2008 11:48:36 -0000	1.2
++++ toolkit/source/layout/timer.cxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "timer.hxx"
+ 
+ #include <vector>
+Index: toolkit/source/layout/timer.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/timer.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/timer.hxx	6 Mar 2008 11:48:47 -0000	1.2
++++ toolkit/source/layout/timer.hxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_TIMER_HXX
+ #define CORE_TIMER_HXX
+ 
+Index: toolkit/source/layout/translate.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/translate.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/translate.cxx	6 Mar 2008 11:48:59 -0000	1.2
++++ toolkit/source/layout/translate.cxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "translate.hxx"
+ 
+ #include <list>
+Index: toolkit/source/layout/translate.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/layout/translate.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/layout/translate.hxx	6 Mar 2008 11:49:12 -0000	1.2
++++ toolkit/source/layout/translate.hxx	20 Mar 2008 11:56:28 -0000	1.2.6.1
+@@ -1,12 +1,48 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef CORE_TRANSLATE_HXX
+ #define CORE_TRANSLATE_HXX
+ 
+ namespace rtl {
+ class OUString;
+-}; // rtl
++} // namespace rtl
++
+ namespace layoutimpl
+ {
+ ::rtl::OUString readRightTranslation( ::rtl::OUString const& aXMLName );
+-}; // layoutimpl
++} // namespace layoutimpl
+ 
+ #endif /* CORE_TRANSLATE_HXX */
+cvs diff: Diffing toolkit/source/vclcompat
+Index: toolkit/source/vclcompat/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/vclcompat/makefile.mk,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/vclcompat/makefile.mk	6 Mar 2008 11:49:25 -0000	1.2
++++ toolkit/source/vclcompat/makefile.mk	28 Mar 2008 09:50:42 -0000	1.2.6.2
+@@ -1,25 +1,52 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++#     MA  02110-1301  USA
++#
++#*************************************************************************
++
+ PRJ=..$/..
+ PRJNAME=toolkit
+ TARGET=vclcompat
+ ENABLE_EXCEPTIONS=true
+-TARGETTYPE=GUI
++
++# --- Settings -----------------------------------------------------
+ 
+ .INCLUDE : settings.mk
+ .INCLUDE : $(PRJ)$/util$/makefile.pmk
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
++# --- Files --------------------------------------------------------
+ 
+-.IF "$(COMNAME)" == "gcc3"
+-CFLAGS+=-Wall -Wno-non-virtual-dtor
+-.ENDIF
+-
+-##CFLAGS += -DENABLE_LAYOUT
+-
+-CXXFILES= \
+-	wrapper.cxx \
+-	wbutton.cxx \
+-	wcontainer.cxx \
+-	wfield.cxx
++# FIXME: This is bad, hmkay
++CFLAGS+= -I$(PRJ)/source
+ 
+ SLOFILES= \
+ 	$(SLO)$/wrapper.obj \
+@@ -27,6 +54,6 @@ SLOFILES= \
+ 	$(SLO)$/wcontainer.obj \
+ 	$(SLO)$/wfield.obj
+ 
+-.ENDIF # ENABLE_LAYOUT == "TRUE"
++# --- Targets ------------------------------------------------------
+ 
+ .INCLUDE : target.mk
+Index: toolkit/source/vclcompat/wbutton.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/vclcompat/wbutton.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/vclcompat/wbutton.cxx	6 Mar 2008 11:49:41 -0000	1.2
++++ toolkit/source/vclcompat/wbutton.cxx	28 Mar 2008 09:50:42 -0000	1.2.6.3
+@@ -1,11 +1,50 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "wrapper.hxx"
+ 
++#include <com/sun/star/awt/PosSize.hpp>
+ #include <com/sun/star/awt/XActionListener.hpp>
+ #include <com/sun/star/awt/XButton.hpp>
+ #include <com/sun/star/awt/XCheckBox.hpp>
+ #include <com/sun/star/awt/XRadioButton.hpp>
++#include <com/sun/star/graphic/XGraphic.hpp>
+ #include <cppuhelper/implbase1.hxx>
+ #include <toolkit/awt/vclxwindow.hxx>
++#include <toolkit/helper/convert.hxx>
++#include <vcl/button.hxx>
+ #include <vcl/event.hxx>
+ #include <vcl/msgbox.hxx>
+ #include <vcl/svapp.hxx>
+@@ -13,18 +52,40 @@
+ 
+ #include <list>
+ 
+-#include "layoutcore.hxx"
++#include "layout/layoutcore.hxx"
+ 
+ using namespace ::com::sun::star;
+ 
+ namespace layout
+ {
+ 
+-// Window/Control/Button
+-//class TOOLKIT_DLLPUBLIC ButtonImpl : public ControlImpl,
+-class ButtonImpl : public ControlImpl,
+-                   public ::cppu::WeakImplHelper1< awt::XActionListener >,
+-                   public ::cppu::WeakImplHelper1< awt::XItemListener >
++class ImageImpl
++{
++  public:
++    css::uno::Reference< css::graphic::XGraphic > mxGraphic;
++    ImageImpl( const char *pName )
++        : mxGraphic( layoutimpl::loadGraphic( pName ) )
++    {
++        if ( !mxGraphic.is() )
++        {
++            DBG_ERROR1( "ERROR: failed to load image: `%s'\n", pName );
++        }
++    }
++};
++
++Image::Image( const char *pName )
++    : pImpl( new ImageImpl( pName ) )
++{
++}
++
++Image::~Image()
++{
++    delete pImpl;
++}
++
++class ButtonImpl : public ControlImpl
++                 , public ::cppu::WeakImplHelper1< awt::XActionListener >
++                 , public ::cppu::WeakImplHelper1< awt::XItemListener >
+ {
+     Link maClickHdl;
+   protected:
+@@ -107,10 +168,9 @@ void Button::Click()
+ {
+ }
+ 
+-DECL_GET_IMPL_IMPL( Button )
++DECL_GET_IMPL_IMPL( Button );
+ DECL_CONSTRUCTOR_IMPLS( Button, Control, "button" );
+ 
+-// Window/Control/Button/PushButton
+ class PushButtonImpl : public ButtonImpl
+ {
+   public:
+@@ -163,13 +223,12 @@ void PushButton::SetToggleHdl( const Lin
+     getImpl().SetToggleHdl( rLink );
+ }
+ 
+-DECL_GET_IMPL_IMPL( PushButton )
++DECL_GET_IMPL_IMPL( PushButton );
+ DECL_CONSTRUCTOR_IMPLS( PushButton, Button, "pushbutton" );
+ 
+  // HACK: put every radio button into a group :/
+ static std::list< RadioButtonImpl*> mpRadioGroup;
+ 
+-// Window/Control/Button/RadioButton
+ class RadioButtonImpl : public ButtonImpl
+ {
+ public:
+@@ -210,19 +269,11 @@ public:
+     static void unsetOthersGroup( RadioButtonImpl* current )
+     {
+         // set all others to false
+-        for( std::list< RadioButtonImpl*>::iterator it = mpRadioGroup.begin();
+-                 it != mpRadioGroup.end(); it++ )
+-        {
+-#if 0 // BREAKS in OOo
+-            if ( *it != current )
+-                (*it)->Check( false );
+-#else
+-            if ( *it != current && (*it)->IsChecked() )
++        for ( std::list< RadioButtonImpl*>::iterator i = mpRadioGroup.begin();
++              i != mpRadioGroup.end(); i++ )
+             {
+-                (*it)->Check( false );
+-                return;
+-            }
+-#endif
++            if ( *i != current )
++                ( *i )->Check( false );
+         }
+     }
+ 
+@@ -269,10 +320,22 @@ void RadioButton::SetToggleHdl( const Li
+     getImpl().SetToggleHdl( rLink );
+ }
+ 
+-DECL_GET_IMPL_IMPL( RadioButton )
++DECL_GET_IMPL_IMPL( RadioButton );
++#if 1
+ DECL_CONSTRUCTOR_IMPLS( RadioButton, Button, "radiobutton" );
++#else //debugging aid
++RadioButton::RadioButton( Context *pCtx, const char *pId, sal_uInt32 nId )
++    : Button( new RadioButtonImpl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) )
++{
++    printf( "%s: name=%s\n", __PRETTY_FUNCTION__, pId );
++}
++
++RadioButton::RadioButton( Window *pParent, WinBits nBits )
++    : Button( new RadioButtonImpl( pParent->getContext(), Window::CreatePeer( pParent, nBits, "radiobutton" ), this ) )
++{
++}
++#endif
+ 
+-// Window/Control/Button/CheckBox
+ class CheckBoxImpl : public ButtonImpl
+ {
+   public:
+@@ -302,7 +365,7 @@ BOOL CheckBox::IsChecked() const
+ {
+     if ( !getImpl().mxCheckBox.is() )
+         return FALSE;
+-    return getImpl().mxCheckBox->getState();
++    return getImpl().mxCheckBox->getState() != 0;
+ }
+ 
+ void CheckBox::SetToggleHdl( const Link& rLink )
+@@ -310,10 +373,9 @@ void CheckBox::SetToggleHdl( const Link&
+     getImpl().SetToggleHdl( rLink );
+ }
+ 
+-DECL_GET_IMPL_IMPL( CheckBox )
++DECL_GET_IMPL_IMPL( CheckBox );
+ DECL_CONSTRUCTOR_IMPLS( CheckBox, Button, "checkbox" );
+ 
+-// Window/Control/Button/PushButton/etc
+ #define BUTTON_IMPL(t, parent, response) \
+     class t##Impl : public parent##Impl \
+     { \
+@@ -358,25 +420,167 @@ DECL_CONSTRUCTOR_IMPLS( ResetButton, Pus
+ DECL_CONSTRUCTOR_IMPLS( ApplyButton, PushButton, "applybutton" );  /* Deprecated? */
+ DECL_CONSTRUCTOR_IMPLS( HelpButton, PushButton, "helpbutton" );
+ 
++class AdvancedButtonImpl : public PushButtonImpl
++{
++protected:
++    bool bAdvancedMode;
++    std::list< Window*> maAdvanced;
++    std::list< Window*> maSimple;
++    rtl::OUString mSimpleLabel;
++    rtl::OUString mAdvancedLabel;
+ 
+-ImageImpl::ImageImpl( const char *pName )
+-    : mxGraphic( layoutimpl::loadGraphic( pName ) )
++    Window* Remove( std::list< Window*> lst, Window* w )
+ {
+-    if ( !mxGraphic.is() )
++        for ( std::list< Window*>::iterator it = maAdvanced.begin();
++              it != maAdvanced.end(); it++ )
++            if ( *it == w )
+     {
+-        DBG_ERROR1( "ERROR: failed to load image: `%s'", pName );
++                lst.erase( it );
++                return *it;
++            }
++        return 0;
+     }
++    void redraw()
++    {
++        uno::Reference <awt::XWindow> ref( mxWindow, uno::UNO_QUERY );
++        ::Window* window = VCLXWindow::GetImplementation( ref )->GetWindow();
++        ::Window* parent = window->GetParent();
++
++        ::Rectangle r = Rectangle( parent->GetPosPixel(),
++                                   parent->GetSizePixel() );
+ 
++        parent->Invalidate( r, INVALIDATE_CHILDREN | INVALIDATE_NOCHILDREN );
++        parent->SetPosSizePixel( 0, 0, r.nRight - r.nLeft, r.nBottom - r.nTop,
++                                 awt::PosSize::SIZE );
+ }
+ 
+-Image::Image( const char *pName )
+-    : pImpl( new ImageImpl( pName ) )
++public:
++    AdvancedButtonImpl( Context *pCtx, PeerHandle const& xPeer, Window *pWindow )
++        : PushButtonImpl( pCtx, xPeer, pWindow )
++        , bAdvancedMode( false )
++          // TODO: i18n
++          // Button::GetStandardText( BUTTON_ADVANCED );
++          // Button::GetStandardText( BUTTON_SIMPLE );
++        , mSimpleLabel( rtl::OUString::createFromAscii( "Advanced..." ) )
++        , mAdvancedLabel( rtl::OUString::createFromAscii( "Simple..." ) )
+ {
+ }
++    void Click()
++    {
++        bAdvancedMode = !bAdvancedMode;
++        if ( bAdvancedMode )
++            advancedMode();
++        else
++            simpleMode();
++    }
++    void advancedMode()
++    {
++        // TODO: set symbol/image?
++        // SYMBOL_PAGEUP, SYMBOL_PAGEDOWN
++#if 0
++        // How to set images from here?
++        // XImageConsumer looks like a disaster
++        // Should move all this switching functionality to VCLXAdvancedButton?
++        /biek/home/janneke/vc/layout-cws/default_images/res/commandimagelist/
++            sc_arrowshapes_down.png
++            sch_flowchartshapes.flowchart-extract.png
++            sch_flowchartshapes.flowchart-merge.png
++#endif        
++        mxButton->setLabel( mAdvancedLabel );
++        for ( std::list< Window*>::iterator it = maAdvanced.begin();
++              it != maAdvanced.end(); it++ )
++            ( *it )->Show();
++        for ( std::list< Window*>::iterator it = maSimple.begin();
++              it != maSimple.end(); it++ )
++            ( *it )->Hide();
+ 
+-Image::~Image()
++        redraw();
++    }
++
++    void simpleMode()
+ {
+-    delete pImpl;
++        mxButton->setLabel( mSimpleLabel );
++        for ( std::list< Window*>::iterator it = maAdvanced.begin();
++              it != maAdvanced.end(); it++ )
++            ( *it )->Hide();
++        for ( std::list< Window*>::iterator it = maSimple.begin();
++              it != maSimple.end(); it++ )
++            ( *it )->Show();
++
++        redraw();
++    }
++    void AddAdvanced( Window* w )
++    {
++        maAdvanced.push_back( w );
++        if ( !bAdvancedMode )
++            w->Hide();
++    }
++    void AddSimple( Window* w )
++    {
++        maSimple.push_back( w );
++        if ( bAdvancedMode )
++            w->Hide();
++    }
++    void RemoveAdvanced( Window* w )
++    {
++        Remove( maAdvanced, w );
++    }
++    void RemoveSimple( Window* w )
++    {
++        Remove( maSimple, w );
++    }
++};
++
++void AdvancedButton::AddAdvanced( Window* w )
++{
++    getImpl().AddAdvanced( w );
++}
++
++void AdvancedButton::AddSimple( Window* w )
++{
++    getImpl().AddSimple( w );
++}
++
++void AdvancedButton::RemoveAdvanced( Window* w )
++{
++    getImpl().RemoveAdvanced( w );
++}
++
++void AdvancedButton::RemoveSimple( Window* w )
++{
++    getImpl().RemoveSimple( w );
++}
++
++DECL_CONSTRUCTOR_IMPLS( AdvancedButton, PushButton, "advancedbutton" );
++DECL_GET_IMPL_IMPL( AdvancedButton );
++
++
++class MoreButtonImpl : public AdvancedButtonImpl
++{
++public:
++    MoreButtonImpl( Context *pCtx, PeerHandle const& xPeer, Window *pWindow )
++        : AdvancedButtonImpl( pCtx, xPeer, pWindow)
++    {
++        mAdvancedLabel = ::Button::GetStandardText( BUTTON_LESS );
++        mSimpleLabel = ::Button::GetStandardText( BUTTON_MORE );
++    }
++    void AddWindow( Window* w ) { AddAdvanced( w ); }
++    void RemoveWindow( Window* w ) { RemoveAdvanced( w ); }
++};
++
++// TODO
++//BUTTON_IMPL( MoreButton, PushButton, 0 );
++DECL_CONSTRUCTOR_IMPLS( MoreButton, AdvancedButton, "morebutton" );
++DECL_GET_IMPL_IMPL( MoreButton );
++
++void MoreButton::AddWindow( Window* w )
++{
++    getImpl().AddWindow( w );
++}
++
++void MoreButton::RemoveWindow( Window* w )
++{
++    getImpl().RemoveWindow( w );
+ }
+ 
+-}; // namespace layout
++} // namespace layout
+Index: toolkit/source/vclcompat/wcontainer.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/vclcompat/wcontainer.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/source/vclcompat/wcontainer.cxx	6 Mar 2008 11:49:54 -0000	1.2
++++ toolkit/source/vclcompat/wcontainer.cxx	28 Mar 2008 09:50:42 -0000	1.2.6.2
+@@ -1,6 +1,41 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "wrapper.hxx"
+ 
+-#include "layoutcore.hxx"
++#include "layout/layoutcore.hxx"
+ #include <com/sun/star/awt/XLayoutRoot.hpp>
+ #include <com/sun/star/awt/XLayoutContainer.hpp>
+ 
+@@ -13,8 +48,7 @@ using namespace ::com::sun::star;
+ namespace layout
+ {
+ 
+-// Container
+-Container::Container( const Context *pCtx, const char *pId )
++Container::Container( Context const* pCtx, char const* pId )
+     : mxContainer( pCtx->GetPeerHandle( pId ), uno::UNO_QUERY )
+ {
+     if ( !mxContainer.is() )
+@@ -23,7 +57,7 @@ Container::Container( const Context *pCt
+     }
+ }
+ 
+-Container::Container( const rtl::OUString &rName, sal_Int32 nBorder )
++Container::Container( rtl::OUString const& rName, sal_Int32 nBorder )
+ {
+     mxContainer = layoutimpl::createContainer( rName );
+ 
+@@ -106,7 +140,16 @@ void Container::ShowAll( bool bShow )
+     inner::setChildrenVisible( mxContainer, bShow );
+ }
+ 
+-// Container/Table
++void Container::Show()
++{
++    ShowAll( true );
++}
++
++void Container::Hide()
++{
++    ShowAll( false );
++}
++
+ Table::Table( sal_Int32 nBorder, sal_Int32 nColumns )
+     : Container( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "table" ) ), nBorder )
+ {
+@@ -153,8 +196,7 @@ void Table::setProps( uno::Reference< aw
+                               uno::Any( nYSpan ) );
+ }
+ 
+-// Container/Box
+-Box::Box( const rtl::OUString &rName, sal_Int32 nBorder, bool bHomogeneous )
++Box::Box( rtl::OUString const& rName, sal_Int32 nBorder, bool bHomogeneous )
+     : Container( rName, nBorder )
+ {
+     uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
+@@ -199,4 +241,36 @@ void Box::setProps( uno::Reference< awt:
+                               uno::Any( nPadding ) );
+ }
+ 
+-}; // end namespace layout
++Table::Table( Context const* pCtx, char const* pId )
++    : Container( pCtx, pId )
++{
++}
++
++Box::Box( Context const* pCtx, char const* pId )
++    : Container( pCtx, pId )
++{
++}
++
++HBox::HBox( sal_Int32 nBorder, bool bHomogeneous )
++    : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "hbox" ) ),
++           nBorder, bHomogeneous )
++{
++}
++
++HBox::HBox( Context const* pCtx, char const* pId )
++    : Box( pCtx, pId )
++{
++}
++
++VBox::VBox( sal_Int32 nBorder, bool bHomogeneous )
++    : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "vbox" ) ),
++           nBorder, bHomogeneous )
++{
++}
++
++VBox::VBox( Context const* pCtx, char const* pId )
++    : Box( pCtx, pId )
++{
++}
++
++} // namespace layout
+Index: toolkit/source/vclcompat/wfield.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/vclcompat/wfield.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/vclcompat/wfield.cxx	6 Mar 2008 11:50:09 -0000	1.2
++++ toolkit/source/vclcompat/wfield.cxx	27 Mar 2008 13:08:19 -0000	1.2.6.3
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "wrapper.hxx"
+ 
+ #include <comphelper/processfactory.hxx>
+@@ -72,7 +107,7 @@ void Edit::SetModifyHdl( const Link& rLi
+ }
+ 
+ DECL_CONSTRUCTOR_IMPLS( Edit, Control, "edit" );
+-DECL_GET_IMPL_IMPL( Edit )
++DECL_GET_IMPL_IMPL( Edit );
+ 
+ // Window/Control/Edit/MultiLineEdit
+ class MultiLineEditImpl : public EditImpl
+@@ -85,14 +120,16 @@ public:
+ };
+ 
+ DECL_CONSTRUCTOR_IMPLS( MultiLineEdit, Edit, "multilineedit" );
+-DECL_GET_IMPL_IMPL( MultiLineEdit )
++DECL_GET_IMPL_IMPL( MultiLineEdit );
+ 
+ // Window/Control/Edit/SpinField
+ class SpinFieldImpl : public EditImpl
+ {
+   public:
+     SpinFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
+-        : EditImpl( pCtx, xPeer, pWindow ) {}
++        : EditImpl( pCtx, xPeer, pWindow )
++    {
++    }
+ };
+ 
+ DECL_CONSTRUCTOR_IMPLS( SpinField, Edit, "spinfield" );
+@@ -102,7 +139,9 @@ class NumericFieldImpl : public SpinFiel
+ {
+   public:
+     NumericFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
+-        : SpinFieldImpl( pCtx, xPeer, pWindow ) {}
++        : SpinFieldImpl( pCtx, xPeer, pWindow )
++    {
++    }
+ };
+ 
+ // Window/Control/Edit/SpinField/MetricField
+@@ -110,12 +149,14 @@ class MetricFieldImpl : public SpinField
+ {
+   public:
+     MetricFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
+-        : SpinFieldImpl( pCtx, xPeer, pWindow ) {}
++        : SpinFieldImpl( pCtx, xPeer, pWindow )
++    {
++    }
+ };
+ 
+-DECL_GET_IMPL_IMPL( SpinField )
+-DECL_GET_IMPL_IMPL( NumericField )
+-DECL_GET_IMPL_IMPL( MetricField )
++DECL_GET_IMPL_IMPL( SpinField );
++DECL_GET_IMPL_IMPL( NumericField );
++DECL_GET_IMPL_IMPL( MetricField );
+ 
+ // FormatterBase
+ class FormatterBaseImpl
+@@ -124,7 +165,9 @@ class FormatterBaseImpl
+     PeerHandle mxPeer;
+   public:
+     explicit FormatterBaseImpl( const PeerHandle &xPeer )
+-        : mxPeer( xPeer ) {};
++        : mxPeer( xPeer )
++    {
++    };
+ };
+ 
+ class NumericFormatterImpl : public FormatterBaseImpl
+@@ -133,13 +176,15 @@ class NumericFormatterImpl : public Form
+     uno::Reference< awt::XCurrencyField > mxField;
+     explicit NumericFormatterImpl( const PeerHandle &xPeer )
+         : FormatterBaseImpl( xPeer )
+-        , mxField( xPeer, uno::UNO_QUERY ) {}
++        , mxField( xPeer, uno::UNO_QUERY )
++    {
++    }
+ 
+     // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
+     double valueToDouble( sal_Int64 nValue )
+     {
+         sal_Int16 nDigits = mxField->getDecimalDigits();
+-        double n = nValue;
++        double n = (double)nValue;
+         for ( sal_uInt16 d = 0; d < nDigits; d++ )
+             n /= 10;
+         return n;
+@@ -160,7 +205,9 @@ class MetricFormatterImpl : public Forma
+     uno::Reference< awt::XMetricField > mxField;
+     explicit MetricFormatterImpl( const PeerHandle &xPeer )
+         : FormatterBaseImpl( xPeer )
+-        , mxField( xPeer, uno::UNO_QUERY ) {}
++        , mxField( xPeer, uno::UNO_QUERY )
++    {
++    }
+ };
+ 
+ // NumericFormatter
+@@ -204,7 +251,9 @@ DECL_CONSTRUCTOR_IMPLS_2( NumericField, 
+ // MetricFormatter
+ 
+ MetricFormatter::MetricFormatter( FormatterBaseImpl *pImpl )
+-    : FormatterBase( pImpl ) {}
++    : FormatterBase( pImpl )
++{
++}
+ MetricFormatterImpl& MetricFormatter::getFormatImpl() const
+ {    return *( static_cast<MetricFormatterImpl *>( mpFormatImpl ) );   }
+ 
+@@ -276,7 +325,7 @@ public:
+         for( unsigned int i = 0; aItems.getLength(); i++ )
+         {
+             if ( aItems[ i ] == rKey )
+-                return i;
++                return sal::static_int_cast< USHORT >( i );
+         }
+         return COMBOBOX_ENTRY_NOTFOUND;
+     }
+@@ -382,7 +431,7 @@ void ComboBox::SetSelectHdl( const Link&
+ }
+ 
+ DECL_CONSTRUCTOR_IMPLS( ComboBox, Edit, "combobox" );
+-DECL_GET_IMPL_IMPL( ComboBox )
++DECL_GET_IMPL_IMPL( ComboBox );
+ 
+ // Window/Control/ListBox
+ class ListBoxImpl : public ControlImpl,
+@@ -426,7 +475,7 @@ public:
+         for( unsigned int i = 0; aItems.getLength(); i++ )
+         {
+             if ( aItems[ i ] == rKey )
+-                return i;
++                return sal::static_int_cast< USHORT >( i );
+         }
+         return LISTBOX_ENTRY_NOTFOUND;
+     }
+@@ -448,7 +497,7 @@ public:
+ 
+     USHORT GetSelectEntryCount() const
+     {
+-        return mxListBox->getSelectedItems().getLength();
++        return sal::static_int_cast< USHORT >( mxListBox->getSelectedItems().getLength() );
+     }
+ 
+     USHORT GetSelectEntryPos( USHORT nSelIndex ) const
+@@ -577,6 +626,6 @@ void ListBox::SetClickHdl( const Link& r
+ }
+ 
+ DECL_CONSTRUCTOR_IMPLS( ListBox, Control, "listbox" );
+-DECL_GET_IMPL_IMPL( ListBox )
++DECL_GET_IMPL_IMPL( ListBox );
+ 
+-}; // end namespace layout
++} // namespace layout
+Index: toolkit/source/vclcompat/wrapper.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/vclcompat/wrapper.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/source/vclcompat/wrapper.cxx	6 Mar 2008 11:50:23 -0000	1.2
++++ toolkit/source/vclcompat/wrapper.cxx	28 Mar 2008 09:50:42 -0000	1.2.6.3
+@@ -1,16 +1,54 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "wrapper.hxx"
+ 
++#include <com/sun/star/graphic/XGraphic.hpp>
+ #include <com/sun/star/awt/XFixedText.hpp>
+ #include <com/sun/star/awt/XDialog2.hpp>
++#include <com/sun/star/awt/XProgressBar.hpp>
+ #include <com/sun/star/awt/WindowAttribute.hpp>
+ #include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+ #include <comphelper/processfactory.hxx>
+ #include <vcl/window.hxx>
+ #include <toolkit/awt/vclxwindow.hxx>
+ 
+-#include "layoutcore.hxx"
+-#include "../layout/factory.hxx"
+-#include "../layout/root.hxx"
++#include <layout/layoutcore.hxx>
++#include <layout/factory.hxx>
++#include <layout/root.hxx>
++#include <vcl/image.hxx>
+ 
+ using namespace ::com::sun::star;
+ 
+@@ -239,10 +277,10 @@ WinBits Window::GetStyle()
+     {
+         if ( toolkitVclPropsMap[ i ].propName )
+         {
+-            short nValue;
++            short nValue = 0;
+             if ( toolkitVclPropsMap[ i ].isBoolean )
+             {
+-                bool bValue;
++                bool bValue = false;
+                 mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= bValue;
+                 nValue = bValue ? 1 : 0;
+             }
+@@ -284,55 +322,6 @@ PeerHandle Window::CreatePeer( Window *p
+ 
+     return layoutimpl::createWidget( getToolkit(), pParent->GetPeer(),
+                                      rtl::OUString::createFromAscii( pName ), nWinAttrbs );
+-
+-
+-#if 0
+-    awt::WindowDescriptor desc;
+-
+-    // debugging help ...
+-    desc.Bounds.X = 0;
+-    desc.Bounds.Y = 0;
+-    desc.Bounds.Width = 300;
+-    desc.Bounds.Height = 200;
+-
+-    desc.ParentIndex = 0;
+-    // FIXME: this code should be shared with
+-    // toolkit/source/awt/vclxtoolkit.cxx (ImplGetWinBits)
+-    desc.WindowAttributes = 0;
+-    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
+-        if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
+-            desc.WindowAttributes |= toolkitVclPropsMap[ i ].initAttr;
+-    desc.WindowServiceName = rtl::OUString( pName, strlen( pName ),
+-                                            RTL_TEXTENCODING_ASCII_US );
+-
+-    // FIXME: we really want to walk up the peer hierarchy
+-    // and get the top-level that this requires.
+-    if ( pParent != NULL )
+-    {
+-        PeerHandle hdl = pParent->GetPeer();
+-        desc.Parent = uno::Reference< awt::XWindowPeer >( hdl, uno::UNO_QUERY );
+-    }
+-
+-    PeerHandle xPeer = getToolkit()->createWindow( desc );
+-
+-    // not all WinBits have an equivalent attribute, some are available through
+-    // properties though
+-    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
+-        if ( nStyle & toolkitVclPropsMap[ i ].vclStyle &&
+-            !toolkitVclPropsMap[ i ].initAttr &&
+-            toolkitVclPropsMap[ i ].propName )
+-        {
+-            uno::Any aValue;
+-            if ( toolkitVclPropsMap[ i ].isBoolean )
+-                aValue = uno::makeAny( (bool) toolkitVclPropsMap[ i ].enableProp );
+-            else
+-                aValue = uno::makeAny( (short) toolkitVclPropsMap[ i ].enableProp );
+-            layoutimpl::prophlp::setProperty( xPeer,
+-                                              rtl::OUString::createFromAscii( toolkitVclPropsMap[ i ].propName ), aValue );
+-        }
+-
+-    return xPeer;
+-#endif
+ }
+ 
+ void Window::Enable( bool bEnable )
+@@ -419,6 +408,12 @@ public:
+ DECL_CONSTRUCTOR_IMPLS( FixedLine, Control, "hfixedline" );
+ DECL_GET_IMPL_IMPL( FixedLine )
+ 
++bool FixedLine::IsEnabled()
++{
++    //FIXME
++    return true;
++}
++
+ class FixedTextImpl : public ControlImpl
+ {
+ public:
+@@ -456,6 +451,123 @@ public:
+ };
+ 
+ DECL_CONSTRUCTOR_IMPLS( FixedInfo, FixedText, "fixedinfo" );
+-DECL_GET_IMPL_IMPL( FixedInfo )
++DECL_GET_IMPL_IMPL( FixedInfo );
++
++class ProgressBarImpl : public ControlImpl
++{
++public:
++    uno::Reference< awt::XProgressBar > mxProgressBar;
++    ProgressBarImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ControlImpl( pCtx, xPeer, pWindow )
++        , mxProgressBar( xPeer, uno::UNO_QUERY )
++    {
++    }
++
++    virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
++        throw (css::uno::RuntimeException)
++    {
++        mxProgressBar.clear();
++    }
++};
++
++
++class FixedImageImpl: public ControlImpl
++{
++public:
++    uno::Reference< graphic::XGraphic > mxGraphic;
++    FixedImageImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow)
++//                    const char *pName )
++        : ControlImpl( pCtx, xPeer, pWindow )
++          //, mxGraphic( layoutimpl::loadGraphic( pName ) )
++        , mxGraphic( xPeer, uno::UNO_QUERY )
++    {
++        if ( !mxGraphic.is() )
++        {
++            DBG_ERROR( "ERROR: failed to load image: `%s'" /*, pName*/ );
++        }
++#if 0
++        else
++            getImpl().mxGraphic->...();
++#endif
++    }
++};
++
++DECL_CONSTRUCTOR_IMPLS( FixedImage, Control, "fixedimage" );
++DECL_GET_IMPL_IMPL( FixedImage )
++
++void FixedImage::setImage( ::Image const& i )
++{
++    (void) i;
++    if ( !getImpl().mxGraphic.is() )
++        return;
++    //FIXME: hack moved to proplist
++    //getImpl().mxGraphic = 
++}
++
++#if 0
++
++    FixedImage::FixedImage( const char *pName )
++    : pImpl( new FixedImageImpl( pName ) )
++{
++}
++
++FixedImage::~FixedImage()
++{
++    delete pImpl;
++}
++
++#endif
++
++    
++DECL_CONSTRUCTOR_IMPLS( ProgressBar, Control, "ProgressBar" );
++#if 0
++ProgressBar::ProgressBar( Context *pCtx, const char *pId, sal_uInt32 nId )
++    : Control( new ProgressBarImpl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) )
++{
++}
++ProgressBar::ProgressBar( Window *pParent, WinBits nBits)
++//    : Control( new ProgressBarImpl( pParent->getContext(), Window::CreatePeer( pParent, nBits, "ProgressBar" ), this ) )
++    : Control( new ProgressBarImpl( pParent->getContext(), Window::CreatePeer( pParent, nBits, "progressbar" ), this ) )
++{
++}
++#endif
++
++DECL_GET_IMPL_IMPL( ProgressBar )
++
++
++void ProgressBar::SetForegroundColor( css::util::Color color )
++{
++    if ( !getImpl().mxProgressBar.is() )
++        return;
++    getImpl().mxProgressBar->setForegroundColor( color );
++}
++
++void ProgressBar::SetBackgroundColor( css::util::Color color )
++{
++    if ( !getImpl().mxProgressBar.is() )
++        return;
++    getImpl().mxProgressBar->setBackgroundColor( color );
++}
++
++void ProgressBar::SetValue( sal_Int32 i )
++{
++    if ( !getImpl().mxProgressBar.is() )
++        return;
++    getImpl().mxProgressBar->setValue( i );
++}
++
++void ProgressBar::SetRange( sal_Int32 min, sal_Int32 max )
++{
++    if ( !getImpl().mxProgressBar.is() )
++        return;
++    getImpl().mxProgressBar->setRange( min, max );
++}
++
++sal_Int32 ProgressBar::GetValue()
++{
++    if ( !getImpl().mxProgressBar.is() )
++        return 0;
++    return getImpl().mxProgressBar->getValue();
++}
+ 
+-}; // end namespace layout
++} // namespace layout
+Index: toolkit/source/vclcompat/wrapper.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/vclcompat/wrapper.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/source/vclcompat/wrapper.hxx	6 Mar 2008 11:50:35 -0000	1.2
++++ toolkit/source/vclcompat/wrapper.hxx	20 Mar 2008 11:56:29 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef WRAPPER_HXX
+ #define WRAPPER_HXX
+ 
+@@ -5,7 +40,6 @@
+ #include <com/sun/star/uno/Reference.hxx>
+ #include <com/sun/star/awt/XWindow.hpp>
+ #include <com/sun/star/awt/XVclWindowPeer.hpp>
+-#include <com/sun/star/graphic/XGraphic.hpp>
+ 
+ #include <cstring>
+ 
+@@ -13,7 +47,7 @@ namespace css = com::sun::star;
+ 
+ namespace layout
+ {
+-// Window
++
+ class WindowImpl
+ {
+   public:
+@@ -63,7 +97,6 @@ class WindowImpl
+     }
+ };
+ 
+-// Window/Control
+ class ControlImpl : public WindowImpl
+ {
+   public:
+@@ -71,14 +104,6 @@ class ControlImpl : public WindowImpl
+         : WindowImpl( pCtx, xPeer, pWindow ) {}
+ };
+ 
+-class ImageImpl
+-{
+-  public:
+-    css::uno::Reference< css::graphic::XGraphic > mxGraphic;
+-    ImageImpl( const char *pName );
+-};
+-
+-// Window/Control/Edit
+ inline WindowImpl &Window::getImpl() const
+ { return *(static_cast< WindowImpl * >( mpImpl )); }
+ 
+@@ -110,6 +135,6 @@ inline WindowImpl &Window::getImpl() con
+     { \
+     }
+ 
+-}; // end namespace layout
++} // namespace layout
+ 
+ #endif // WRAPPER_HXX
+cvs diff: Diffing toolkit/src2xml
+cvs diff: Diffing toolkit/src2xml/source
+Index: toolkit/src2xml/source/src2xml.py
+===================================================================
+RCS file: /cvs/gsl/toolkit/src2xml/source/src2xml.py,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/src2xml/source/src2xml.py	6 Mar 2008 11:54:56 -0000	1.2
++++ toolkit/src2xml/source/src2xml.py	4 Apr 2008 09:13:34 -0000	1.2.6.1
+@@ -183,7 +183,11 @@ def post_process (s):
+     s = s.replace (' def-button="true"', ' default="true"')
+     return s
+ 
+-XML_HEADER = '<?xml version="1.0" encoding="UTF-8"?>\n'
++XML_HEADER = '''<?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated XML files are generated from this template by
++     transex3/layout/tralay.  !-->
++'''
+ 
+ def do_one_file (file_name, options):
+     str = XML_HEADER
+cvs diff: Diffing toolkit/test
+cvs diff: Diffing toolkit/test/accessibility
+cvs diff: Diffing toolkit/test/accessibility/ov
+cvs diff: Diffing toolkit/test/accessibility/tools
+cvs diff: Diffing toolkit/util
+Index: toolkit/util/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/util/makefile.mk,v
+retrieving revision 1.23
+retrieving revision 1.23.6.3
+diff -p -u -u -p -b -w -B -r1.23 -r1.23.6.3
+--- toolkit/util/makefile.mk	6 Mar 2008 11:55:35 -0000	1.23
++++ toolkit/util/makefile.mk	28 Mar 2008 09:39:07 -0000	1.23.6.3
+@@ -57,7 +57,10 @@ LIB1TARGET= $(SLB)$/$(TARGET).lib
+ LIB1FILES=	$(SLB)$/awt.lib \
+ 			$(SLB)$/tree.lib \
+ 			$(SLB)$/controls.lib \
+-			$(SLB)$/helper.lib
++			$(SLB)$/helper.lib\
++			$(SLB)$/layoutcore.lib \
++			$(SLB)$/vclcompat.lib
++
+ SHL1TARGET= tk$(VERSION)$(DLLPOSTFIX)
+ SHL1IMPLIB= itk
+ SHL1USE_EXPORTS=ordinal
+@@ -103,31 +106,5 @@ RES1FILELIST=$(SRS)$/awt.srs
+ RESLIB1NAME=$(TARGET)
+ RESLIB1SRSFILES=$(RES1FILELIST)
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-
+-TARGET2 = tklayout
+-LIB2FILES= \
+-	$(SLB)$/layout_awt.lib \
+-	$(SLB)$/layoutcore.lib \
+-	$(SLB)$/vclcompat.lib
+-
+-LIB2TARGET= $(SLB)$/$(TARGET2).lib
+-SHL2TARGET= $(TARGET2)$(UPD)$(DLLPOSTFIX)
+-SHL2IMPLIB= $(TARGET2)
+-
+-SHL2LIBS= $(LIB2TARGET)
+-
+-SHL2STDLIBS=  \
+-	$(UNOTOOLSLIB) \
+-	$(TKLIB) \
+-	$(TOOLSLIB) \
+-	$(COMPHELPERLIB) \
+-	$(VCLLIB) \
+-	$(CPPULIB) \
+-	$(CPPUHELPERLIB) \
+-	$(SALLIB) \
+-
+-.ENDIF # ENABLE_LAYOUT == "TRUE"
+-
+ # --- Footer -------------------------------------------------------------
+ .INCLUDE :	target.mk
+Index: toolkit/util/makefile.pmk
+===================================================================
+RCS file: /cvs/gsl/toolkit/util/makefile.pmk,v
+retrieving revision 1.4
+retrieving revision 1.4.6.2
+diff -p -u -u -p -b -w -B -r1.4 -r1.4.6.2
+--- toolkit/util/makefile.pmk	6 Mar 2008 11:55:48 -0000	1.4
++++ toolkit/util/makefile.pmk	28 Mar 2008 09:39:07 -0000	1.4.6.2
+@@ -43,7 +43,4 @@ CFLAGS += -xldscope=hidden
+ 
+ # FIXME: sprinkle some TOOLKIT_DLLPUBLIC
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-CFLAGS+=-I$(PRJ)/inc/layout
+ CFLAGS+=-DENABLE_LAYOUT=1 -DTEST_LAYOUT=1
+-.ENDIF # ENABLE_LAYOUT == TRUE
+cvs diff: Diffing toolkit/util/defs
+cvs diff: Diffing toolkit/workben
+cvs diff: Diffing toolkit/workben/layout
+Index: toolkit/workben/layout/editor.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/editor.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.4
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.4
+--- toolkit/workben/layout/editor.cxx	6 Mar 2008 11:58:21 -0000	1.2
++++ toolkit/workben/layout/editor.cxx	28 Mar 2008 09:53:22 -0000	1.2.6.4
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include "editor.hxx"
+ 
+ #undef NDEBUG
+@@ -29,7 +64,7 @@ using rtl::OUString;
+ //#define FILEDLG
+ 
+ // somewhat of a hack unfortunately ...
+-#include "layoutcore.hxx"
++#include "layout/layoutcore.hxx"
+ #include "root.hxx"
+ #include "helper.hxx"
+ 
+@@ -73,7 +108,7 @@ namespace layoutimpl {
+                       const rtl::OUString &rName, long nProps, bool bToplevel );
+ 
+     uno::Any anyFromString (const rtl::OUString &value, const uno::Type &type);
+-};
++}
+ 
+ using namespace layout;
+ using namespace layoutimpl;
+@@ -117,7 +152,7 @@ static rtl::OUString anyToString (uno::A
+ }
+ 
+ static inline long anyToNatural (uno::Any value)
+-{ return anyToString( value ).toInt64(); }
++{ return sal::static_int_cast<long>(anyToString( value ).toInt64()); }
+ static inline double anyToDecimal (uno::Any value)
+ { return anyToString( value ).toDouble(); }
+ 
+@@ -211,7 +246,9 @@ public:
+                 beans::Property prop = it.next();
+                 rtl::OUString name( prop.Name );
+                 rtl::OUString value( getProperty( name, WINDOW_PROPERTY ) );
++#if DEBUG_PRINT
+ fprintf(stderr, "original property: %s = %s\n", OUSTRING_CSTR(name), OUSTRING_CSTR(value));
++#endif
+                 std::pair< rtl::OUString, rtl::OUString > pair( name, value );
+                 maOriProps.push_back( pair );
+             }
+@@ -439,7 +476,9 @@ fprintf(stderr, "original property: %s =
+         for ( PropList::const_iterator it = props.begin(); it != props.end(); it++ )
+             if ( it->first.equalsIgnoreAsciiCase( propName ) )
+                 return it->second;
++#if DEBUG_PRINT
+ fprintf(stderr, "Serious error: property '%s' not found\n", OUSTRING_CSTR(propName));
++#endif
+         return rtl::OUString();
+     }
+ 
+@@ -486,10 +525,14 @@ fprintf(stderr, "Serious error: property
+         rtl::OUString oriValue = getOriginalProperty( propName, rKind );
+         rtl::OUString newValue = getProperty( propName, rKind );
+         bool isTouched = oriValue != newValue;
++#if DEBUG_PRINT
+ fprintf(stderr, "is property '%s' touched? %s  (%s vs %s)\n", OUSTRING_CSTR(propName), isTouched ? "yes" : "no", OUSTRING_CSTR(oriValue), OUSTRING_CSTR(newValue));
++#endif
+         return isTouched;
+     }
+ 
++    using LayoutWidget::setProperty;
++    
+     void setProperty( rtl::OUString rPropName, PropertyKind rKind, uno::Any rValue )
+     {
+         switch ( rKind ) {
+@@ -717,7 +760,7 @@ namespace FlatLayout
+             nRet++;
+         return nRet;
+     }
+-};
++}
+ 
+ //** PropertiesList widget
+ 
+@@ -743,7 +786,9 @@ class PropertiesList : public layout::Ta
+ 
+             virtual ~AnyWidget()
+             {
++#if DEBUG_PRINT
+                 fprintf(stderr, "~AnyWidget\n");
++#endif
+             }
+ 
+             void save( uno::Any aValue )
+@@ -756,7 +801,7 @@ void checkProperty()
+ {
+                 bool flag = mpWidget->isPropertyTouched( maPropName, maPropKind );
+ 
+-                if ( mpFlag && mpFlag->IsChecked() != flag )
++                if ( mpFlag && mpFlag->IsChecked() != (BOOL)flag )
+                 {
+                     CheckFlag( flag, true );
+                 }
+@@ -950,7 +995,9 @@ printf("Remove mpEdit and expand\n");
+ 
+             virtual void store()
+             {
++#if DEBUG_PRINT
+ fprintf(stderr, "store number: %ld\n", rtl::OUString( GetText() ).toInt64());
++#endif
+                 save( uno::makeAny( rtl::OUString( GetText() ).toInt64() ) );
+             }
+         };
+@@ -982,7 +1029,9 @@ fprintf(stderr, "store number: %ld\n", r
+ 
+             virtual ~AnyCheckBox()
+             {
++#if DEBUG_PRINT
+                 fprintf(stderr, "~AnyCheckBox\n");
++#endif
+             }
+ 
+             virtual layout::Window *getWindow()
+@@ -990,8 +1039,10 @@ fprintf(stderr, "store number: %ld\n", r
+ 
+             virtual void load()
+             {
++#if DEBUG_PRINT
+ fprintf(stderr, "loading boolean value\n");
+-                Check( getValue().toInt64() );
++#endif
++                Check( getValue().toInt64() != 0 );
+                 setLabel();
+                 checkProperty();
+             }
+@@ -1022,7 +1073,7 @@ fprintf(stderr, "loading boolean value\n
+ 
+             virtual void load()
+             {
+-                SelectEntryPos( getValue().toInt32() );
++                SelectEntryPos( sal::static_int_cast< USHORT >( getValue().toInt32() ) );
+                 checkProperty();
+             }
+ 
+@@ -1108,7 +1159,9 @@ fprintf(stderr, "loading boolean value\n
+ 
+             ~PropertyEntry()
+             {
++#if DEBUG_PRINT
+             fprintf(stderr, "REMOVING label, flag and value\n");
++#endif
+                 delete mpLabel;
+                 delete mpFlag;
+                 delete mpValue;
+@@ -1224,7 +1277,7 @@ private:
+             rtl::OUString name( prop.Name );
+             if ( toIgnore( name ) )
+                 continue;
+-            sal_uInt16 type = prop.Type.getTypeClass();
++            sal_uInt16 type = static_cast< sal_uInt16 >( prop.Type.getTypeClass() );
+ 
+             PropertyEntry *propEntry = PropertyEntry::construct(
+                 pWidget, name, rKind, type, mpParentWindow );
+@@ -1262,6 +1317,7 @@ public:
+ 
+     void clear()
+     {
++        ///FIXME: crash
+         Container::Clear();        
+ 
+         for ( std::list< PropertyEntry* >::iterator it = maPropertiesList.begin();
+@@ -1283,26 +1339,34 @@ IMPL_LINK( PropertiesList::PropertyEntry
+ 
+ IMPL_LINK( PropertiesList::PropertyEntry::AnyWidget, FlagToggledHdl, layout::CheckBox *, pCheck )
+ {
++#if DEBUG_PRINT
+ fprintf(stderr, "Property flag pressed -- is: %d\n", pCheck->IsChecked());
++#endif
+     if ( !mbBlockFlagCallback )
+     {
+         bool checked = pCheck->IsChecked();
+         if ( !checked )  // revert
+ {
++#if DEBUG_PRINT
+ fprintf(stderr, "revert\n");
++#endif
+             load();
+ }
+         else
+         {
++#if DEBUG_PRINT
+ fprintf(stderr, "user can't dirty the flag!\n");
++#endif
+             // User can't flag the property as dirty
+             // Actually, we may want to allow the designer to force a property to be stored.
+             // Could be useful when the default value of some new property wasn't yet decided...
+             CheckFlag( false, true );
+         }
+     }
++#if DEBUG_PRINT
+ else
+ fprintf(stderr, "Property flag pressed -- BLOCKED\n");
++#endif
+     return 0;
+ }
+ 
+@@ -1392,14 +1456,16 @@ public:
+         itemSelected( LISTBOX_ENTRY_NOTFOUND );
+     }
+ 
+-    ~SortListBox()
++    virtual ~SortListBox();
++};
++
++SortListBox::~SortListBox()
+     {
+         delete mpListBox;
+         delete mpUpButton;
+         delete mpDownButton;
+         delete mpRemoveButton;
+     }
+-};
+ 
+ IMPL_LINK( SortListBox, UpPressedHdl, layout::Button *, pBtn )
+ {
+@@ -1463,10 +1529,7 @@ public:
+         mpRootWidget = new Widget( xWidget, "root" );
+     }
+ 
+-    ~LayoutTree()
+-    {
+-        delete mpRootWidget;
+-    }
++    virtual ~LayoutTree();
+ 
+     Widget *getWidget( int nPos )
+     {
+@@ -1489,7 +1552,7 @@ public:
+         if ( pos == -1 )
+             // if asked to select hidden root, select visible root
+             pos = 0;
+-        mpListBox->SelectEntryPos( pos );
++        mpListBox->SelectEntryPos( sal::static_int_cast< USHORT >( pos ) );
+     }
+ 
+     void rebuild()
+@@ -1622,6 +1685,11 @@ protected:
+     }
+ };
+ 
++LayoutTree::~LayoutTree()
++{
++    delete mpRootWidget;
++}
++
+ //** EditorImpl
+ 
+ class EditorImpl : public LayoutTree::Listener
+@@ -1656,7 +1724,7 @@ public:
+     EditorImpl( layout::Dialog *dialog,
+         // we should probable open this channel (or whatever its called) ourselves
+                 uno::Reference< lang::XMultiServiceFactory > xMSF );
+-    ~EditorImpl();
++    virtual ~EditorImpl();
+ 
+     void loadFile( const rtl::OUString &aTestFile );
+ };
+@@ -1669,7 +1737,9 @@ EditorImpl::EditorImpl( layout::Dialog *
+     //dialog->getContext()->getRoot(), uno::UNO_QUERY )
+     // dialog->GetPeer(), uno::UNO_QUERY )
+ {
++#if DEBUG_PRINT
+ fprintf (stderr, "EditorImpl()\n");
++#endif
+     // framework
+     mxToolkit = uno::Reference< awt::XToolkit >(
+         mxFactory->createInstance(
+@@ -1678,7 +1748,9 @@ fprintf (stderr, "EditorImpl()\n");
+     assert( mxToolkit.is() );
+ 
+     // custom widgets
++#if DEBUG_PRINT
+ fprintf (stderr, "custom widgets\n");
++#endif
+     mpPropertiesList = new PropertiesList( dialog );
+ 
+     mpLayoutTree = new LayoutTree( dialog );
+@@ -1755,7 +1827,10 @@ mxMSF->createInstance
+             uno::Reference< uno::XInterface >() );
+     }
+ 
++#if DEBUG_PRINT
+ fprintf( stderr, "TEST: initing root\n" );
++#endif
++
+     uno::Reference< lang::XInitialization > xInit( xRoot, uno::UNO_QUERY );
+     if ( !xInit.is() )
+     {
+@@ -1764,12 +1839,18 @@ fprintf( stderr, "TEST: initing root\n" 
+             uno::Reference< uno::XInterface >() );
+     }
+ 
++#if DEBUG_PRINT
+ fprintf( stderr, "TEST: running parser\n" );
++#endif
+     uno::Sequence< uno::Any > aParams( 1 );
+     aParams[0] <<= aTestFile;
++#if DEBUG_PRINT
+ fprintf( stderr, "TEST: do it\n" );
++#endif
+     xInit->initialize( aParams );
++#if DEBUG_PRINT
+ fprintf( stderr, "TEST: file loaded\n" );
++#endif
+ 
+     mpLayoutTree->rebuild();
+ }
+@@ -1829,7 +1910,9 @@ IMPL_LINK( EditorImpl, CreateWidgetHdl, 
+ IMPL_LINK( EditorImpl, ImportButtonHdl, layout::PushButton *, pBtn )
+ {
+     (void) pBtn;
++#if DEBUG_PRINT
+ fprintf(stderr, "IMPORT!\n");
++#endif
+ #ifdef FILEDLG
+     pImportDialog->Execute();
+ #endif
+@@ -1840,10 +1923,12 @@ fprintf(stderr, "IMPORT!\n");
+ #ifdef FILEDLG
+ IMPL_LINK( EditorImpl, ImportDialogHdl, FileDialog *, pDialog )
+ {
++    UniString path = pDialog->GetPath();
+ //fprintf(stderr, "Executing import dialog!\n");
+ 
+-    UniString path = pDialog->GetPath();
++#if DEBUG_PRINT
+ fprintf(stderr, "got import file: %s\n",rtl::OUStringToOString( path, RTL_TEXTENCODING_ASCII_US ).getStr() );
++#endif
+ 
+     return 0;
+ }
+Index: toolkit/workben/layout/editor.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/editor.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/editor.hxx	6 Mar 2008 11:58:33 -0000	1.2
++++ toolkit/workben/layout/editor.hxx	20 Mar 2008 11:56:31 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef EDITOR_HXX
+ #define EDITOR_HXX
+ 
+Index: toolkit/workben/layout/localize.sdf
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/localize.sdf,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/localize.sdf	6 Mar 2008 11:59:54 -0000	1.2
++++ toolkit/workben/layout/localize.sdf	20 Mar 2008 11:56:31 -0000	1.2.6.1
+@@ -1,6 +1,585 @@
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	dialog_title				0	en-US	Set Zoom				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	en-US	Word Count				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	en-US	Current selection				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	en-US	Words:				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FI_CURRENTWORD_label				0	en-US	0				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	en-US	Characters:				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FI_CURRENTCHARACTER_label				0	en-US	00				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	en-US	Whole document				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	en-US	Words:				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FI_DOCWORD_label				0	en-US	000				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	en-US	Characters:				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FI_DOCCHARACTER_label				0	en-US	0000				20080227 16:28:34
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	af	Huidige seleksie				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ar	التحديد الحالي				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	as-IN	বর্তমানৰ বাছনী				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	be-BY	Пазначанае				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	bg	Текущ избор				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	br	Diuz oberiat				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	bs	Trenutni izbor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ca	Selecció actual				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	cs	Současný výběr				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	cy	Dewis presennol				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	da	Aktuel markering				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	de	Aktuelle Auswahl				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	dz	ད་ལྟོའི་སེལ་འཐུ།				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	el	Τρέχουσα επιλογή				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	en-GB	Current selection				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	en-ZA	Current selection				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	eo	Aktuala elekto				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	es	Selección actual				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	et	Aktiivne valik				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	fa	انتخاب فعلی				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	fi	Nykyinen valinta				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	fr	Sélection active				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ga	Roghnúchán reatha				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	gl	Selección actual				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	gu	હાલની પસંદગી				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	gu-IN	હાલની પસંદગી				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	he	הבחירה הנוכחית				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	hi-IN	मौजूदा चयन				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	hr	Trenutni odabir				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	hu	Aktuális kijelölés				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	it	Selezione				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ja	現在の選択				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ka	მიმდინარე მონიშვნა				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	km	ការ​ជ្រើស​បច្ចុប្បន្ន				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ko	현재 선택 사항				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ku	Hilbijartina derbazbar				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	lt	Šiuo ~metu pažymėta sritis				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	mk	Тековен избор				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ml-IN	നിലവിലുള്ള തെരഞ്ഞെടുപ്പ്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	mr-IN	वर्तमान निवड				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nb	Gjeldende utvalg				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ne	हालको चयन				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nl	Huidige selectie				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nn	Gjeldande utval				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nr	Ikhetho lanje				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ns	Kgetho ya gona bjale				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	or-IN	ଚଳିତ ମନୋନଯନ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pa-IN	ਮੌਜੂਦਾ ਚੋਣ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pl	Zaznaczenie				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pt	Selecção actual				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pt-BR	Seleção atual				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ru	Текущее выделение				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	rw	ihitamo rigezweho				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sh	Tekući odeljak				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sk	Súčasný výber				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sl	Trenutna izbira				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sr	Текући одељак				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ss	Kukhetsa kwanyalo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	st	Kgetho ya jwale				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sv	Aktuell markering				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sw-TZ	Current selection				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ta	நடப்பு தேர்த்தெடுத்தல்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ta-IN	நடப்பு தேர்த்தெடுத்தல்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	te-IN	ప్రస్ధుత ఎంపిక				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	tg	Интихоби ҷорӣ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	th	การเลือกปัจจุบัน				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ti-ER	ህሉው ምርጫ 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	tr	Geçerli seçim				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ts	Ku hlawula ka sweswi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	uk	Поточний вибір				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ur-IN	حالیہ انتخاب 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	uz	Joriy tanlov				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ve	Khetho ino				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	vi	Vùng chọn hiện tái				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	xh	Ukukhetha kwangoku				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	zh-CN	当前选定内容				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	zh-TW	目前的選取				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	zu	Lokho okukhethile manje				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	af	Hele dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ar	المستند بالكامل				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	as-IN	সম্পূৰ্ণ ডকুমেন্ট				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	be-BY	Дакумент цалкам				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	bg	Целият документ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	br	Teul a-bezh				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	bs	Cijeli dokumenat				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ca	Tot el document				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	cs	Celý dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	cy	Dogfen gyfan				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	da	Hele dokumentet				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	de	Gesamtes Dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	dz	ཡིག་ཆ་ཧྲིལ་བུམ།				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	el	Ολόκληρο το έγγραφο				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	en-GB	Whole document				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	en-ZA	Whole document				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	eo	Tuta dokumento				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	es	Documento completo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	et	Terve dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	fa	سراسر نوشتار				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	fi	Koko asiakirja				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	fr	Document entier				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ga	An cháipéis iomlán				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	gl	Documento completo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	gu	પુરૂ દસ્તાવેજ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	gu-IN	પુરૂ દસ્તાવેજ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	he	כל המסמך				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	hi-IN	पूर्ण दस्तावेज				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	hr	Cijeli dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	hu	Teljes dokumentum				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	it	Intero documento				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ja	ドキュメント全体				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ka	სრული დოკუმენტი				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	km	ឯកសារ​ទាំងមូល				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ko	전체 문서				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ku	Li hemû belgeyê				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	lt	Visas dokumentas				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	mk	Цел документ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ml-IN	മുഴുവന് ഡോക്കുമെന്റും				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	mr-IN	संपूर्ण दस्तऍवज				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	nb	Hele dokumentet				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ne	संपूर्ण कागजात				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	nl	Heel document				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	nn	Heile dokumentet				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	nr	Idokhumente yoke				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ns	Tokumente ka moka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	or-IN	ସଂପୂର୍ଣ୍ଣ ଦଲିଲ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	pa-IN	ਪੂਰਾ ਦਸਤਾਵੇਜ਼				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	pl	Cały dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	pt	Todo o documento				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	pt-BR	Documento inteiro				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ru	Весь документ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	rw	Inyandiko yose				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	sh	Ceo dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	sk	Celý dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	sl	Celoten dokument				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	sr	Цео документ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ss	Idokhumenti yonkhe				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	st	Tokomane kaofela				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	sv	Hela dokumentet				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	sw-TZ	Whole document				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ta	முழு ஆவணம்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ta-IN	முழு ஆவணம்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	te-IN	పత్రమంత				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	tg	Тамоми ҳуҷҷат				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	th	ทั้งเอกสาร				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ti-ER	ምሉእ ሰነድ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	tr	Tüm belge				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ts	Dokumente hinkwayo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	uk	Весь документ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ur-IN	پوری دستاویز				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	uz	Butun hujjat				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	ve	Ḽiṅwalo ḽoṱhe				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	vi	Toàn tài liệu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	xh	Uxwebhu luphelele				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	zh-CN	整篇文档				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	zh-TW	整份文件				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FL_DOC_text				0	zu	Lonke ifayela				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	af	Karakters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ar	محارف:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	as-IN	আখৰবোৰ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	be-BY	Знакі:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	bg	Знаци:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	br	Arouezennoù :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	bs	Znakovi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ca	Caràcters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	cs	Znaky:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	cy	Nodau:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	da	Tegn:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	de	Zeichen:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	dz	ཡིག་འབྲུ་ཚུ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	el	Χαρακτήρες:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	en-GB	Characters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	en-ZA	Characters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	eo	Signoj:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	es	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	et	Märke:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	fa	نویسه‌ها:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	fi	Merkit:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	fr	Caractères :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ga	Carachtair:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	gl	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	gu	અક્ષરો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	gu-IN	અક્ષરો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	he	תווים:‏				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	hi-IN	संप्रतीक:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	hr	Znakova:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	hu	Karakterek száma:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	it	Caratteri:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ja	文字数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ka	ასოები:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	km	តួអក្សរ ៖				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ko	문자:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ku	Tîp:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	lt	Rašmenys:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	mk	Знаци:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ml-IN	അക്ഷരങ്ങള്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	mr-IN	अक्षरे:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nb	Tegn:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ne	क्यारेक्टरहरू:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nl	Tekens:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nn	Teikn:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nr	Amakharektha:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ns	Ditlhaka:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	or-IN	ଅକ୍ଷରଗୁଡିକ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pa-IN	ਅੱਖਰ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pl	Znaki:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pt	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pt-BR	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ru	Символы:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	rw	Inyuguti:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sh	Znakova:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sk	Znaky:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sl	Znaki:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sr	Знакова:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ss	Tinhlavu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	st	Ditlhaku:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sv	Tecken:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sw-TZ	Viwambo:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ta	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ta-IN	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	te-IN	అక్షరములు:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	tg	Рамзҳо:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	th	อักขระ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ti-ER	ፊደላት				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	tn	Didiragatsi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	tr	Karakter:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ts	Swivumbeko:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	uk	Символи:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	uz	Belgilar:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ve	Zwiteṅwa:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	vi	Ký tự :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	xh	Imibhalo enjengoonobumba:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	zh-CN	字符数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	zh-TW	字元：				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	zu	Izimpawu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	af	Woorde:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ar	كلمات:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	as-IN	শব্দবোৰ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	be-BY	Словы:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	bg	Думи:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	br	Gerioù :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	bs	Riječi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ca	Paraules:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	cs	Slova:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	cy	Geiriau:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	da	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	de	Wörter:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	dz	མིང་ཚིག་ཚུ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	el	Λέξεις:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	en-GB	Words:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	en-ZA	Words:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	eo	Vortoj:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	es	Palabras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	et	Sõnu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	fa	کلمات:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	fi	Sanat:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	fr	Mots :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ga	Focail:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	gl	Palabras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	gu	શબ્દો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	gu-IN	શબ્દો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	he	מילים				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	hi-IN	शब्द:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	hr	Riječi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	hu	Szavak száma:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	it	Parole:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ja	単語数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ka	სიტყვები:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	km	ពាក្យ ៖				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ko	단어:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ku	Peyv:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	lt	Žodžiai				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	mk	Зборови:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ml-IN	വാക്കുകള്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	mr-IN	शब्द:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nb	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ne	शब्दहरू:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nl	Woorden:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nn	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nr	Amagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ns	Mantšu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	or-IN	ଶବ୍ଦଗୁଡିକ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pa-IN	ਸ਼ਬਦ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pl	Wyrazy:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pt	Palavras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pt-BR	Palavras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ru	Слова:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	rw	Amagambo:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sh	Reči:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sk	Slová:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sl	Število besed:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sr	Речи:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ss	Emagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	st	Mantswe:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sv	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sw-TZ	Words:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ta	சொற்கள்:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ta-IN	சொற்கள்:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	te-IN	పదాలు:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	tg	Калимаҳо:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	th	คำ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ti-ER	ቃላት				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	tr	Kelime:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ts	Marito:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	uk	Слова				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	uz	Soʻzlar:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ve	Maipfi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	vi	Từ :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	xh	Amagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	zh-CN	字数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	zh-TW	文字：				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	zu	Amagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	af	Karakters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ar	محارف:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	as-IN	আখৰবোৰ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	be-BY	Знакі:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	bg	Знаци:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	br	Arouezennoù :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	bs	Znakovi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ca	Caràcters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	cs	Znaky:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	cy	Nodau:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	da	Tegn:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	de	Zeichen:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	dz	ཡིག་འབྲུ་ཚུ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	el	Χαρακτήρες:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	en-GB	Characters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	en-ZA	Characters:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	eo	Signoj:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	es	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	et	Märke:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	fa	نویسه‌ها:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	fi	Merkit:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	fr	Caractères :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ga	Carachtair:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	gl	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	gu	અક્ષરો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	gu-IN	અક્ષરો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	he	תווים:‏				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	hi-IN	संप्रतीक:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	hr	Znakova:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	hu	Karakterek száma:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	it	Caratteri:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ja	文字数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ka	ასოები:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	km	តួអក្សរ ៖				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ko	문자:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ku	Tîp:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	lt	Rašmenys:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	mk	Знаци:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ml-IN	അക്ഷരങ്ങള്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	mr-IN	अक्षरे:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nb	Tegn:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ne	क्यारेक्टरहरू:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nl	Tekens:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nn	Teikn:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nr	Amakharektha:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ns	Ditlhaka:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	or-IN	ଅକ୍ଷରଗୁଡିକ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pa-IN	ਅੱਖਰ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pl	Znaki:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pt	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pt-BR	Caracteres:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ru	Символы:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	rw	Inyuguti:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sh	Znakova:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sk	Znaky:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sl	Znaki:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sr	Знакова:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ss	Tinhlavu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	st	Ditlhaku:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sv	Tecken:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sw-TZ	Viwambo:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ta	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ta-IN	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	te-IN	అక్షరములు:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	tg	Рамзҳо:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	th	อักขระ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ti-ER	ፊደላት				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	tn	Didiragatsi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	tr	Karakter:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ts	Swivumbeko:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	uk	Символи:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	uz	Belgilar:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ve	Zwiteṅwa:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	vi	Ký tự :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	xh	Imibhalo enjengoonobumba:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	zh-CN	字符数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	zh-TW	字元：				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	zu	Izimpawu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	af	Woorde:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ar	كلمات:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	as-IN	শব্দবোৰ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	be-BY	Словы:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	bg	Думи:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	br	Gerioù :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	bs	Riječi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ca	Paraules:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	cs	Slova:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	cy	Geiriau:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	da	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	de	Wörter:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	dz	མིང་ཚིག་ཚུ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	el	Λέξεις:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	en-GB	Words:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	en-ZA	Words:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	eo	Vortoj:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	es	Palabras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	et	Sõnu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	fa	کلمات:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	fi	Sanat:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	fr	Mots :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ga	Focail:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	gl	Palabras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	gu	શબ્દો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	gu-IN	શબ્દો:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	he	מילים				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	hi-IN	शब्द:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	hr	Riječi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	hu	Szavak száma:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	it	Parole:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ja	単語数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ka	სიტყვები:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	km	ពាក្យ ៖				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ko	단어:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ku	Peyv:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	lt	Žodžiai				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	mk	Зборови:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ml-IN	വാക്കുകള്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	mr-IN	शब्द:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nb	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ne	शब्दहरू:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nl	Woorden:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nn	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nr	Amagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ns	Mantšu:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	or-IN	ଶବ୍ଦଗୁଡିକ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pa-IN	ਸ਼ਬਦ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pl	Wyrazy:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pt	Palavras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pt-BR	Palavras:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ru	Слова:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	rw	Amagambo:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sh	Reči:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sk	Slová:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sl	Število besed:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sr	Речи:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ss	Emagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	st	Mantswe:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sv	Ord:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sw-TZ	Words:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ta	சொற்கள்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ta-IN	சொற்கள்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	te-IN	పదాలు:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	tg	Калимаҳо:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	th	คำ:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ti-ER	ቃላት				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	tr	Kelime:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ts	Marito:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	uk	Слова				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	uz	Soʻzlar:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ve	Maipfi:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	vi	Từ :				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	xh	Amagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	zh-CN	字数:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	zh-TW	文字：				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	zu	Amagama:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	af	Woordtelling				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ar	عدد الكلمات				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	as-IN	শব্দ গণনা 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	be-BY	Колькасць словаў				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	bg	Брой думи				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	br	Stadegoù				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	bs	Broj riječi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ca	Recompte de paraules				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	cs	Počet slov				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	cy	Cyfrif Geiriau				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	da	Ordoptælling				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	de	Wortanzahl				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	dz	མིང་ཚིག་གྱངས་ཁ་རྐྱབས།				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	el	Αρίθμηση λέξεων				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	en-GB	Word Count				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	en-ZA	Word Count				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	eo	Vortnombro				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	es	Contar palabras				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	et	Sõnade loendamine				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	fa	تعداد کلمات				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	fi	Sanamäärä				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	fr	Statistiques				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ga	Líon na bhFocal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	gl	Contaxe de palabras!				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	gu	શબ્દની ગણતરી				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	gu-IN	શબ્દની ગણતરી				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	he	סה‏"כ מילים				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	hi-IN	शब्द गणना				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	hr	Brojanje riječi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	hu	Szavak száma				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	it	Conteggio parole				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ja	ワードカウント				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ka	სიტყვათა რაოდენობა				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	km	ចំនួន​ពាក្យ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ko	단어 개수				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ku	Hijmartina Peyvan				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	lt	Statistika				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	mk	Броење зборови				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ml-IN	വാക്കുകളുടെ എണ്ണം				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	mr-IN	शब्द गणना				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nb	Ordtelling				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ne	शब्द गणना				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nl	Woorden tellen				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nn	Ordteljing				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nr	Bala Amagama				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ns	Palo ya Mantšu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	or-IN	ଶବ୍ଦ ଗଣନା				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pa-IN	ਸ਼ਬਦ ਗਿਣਤੀ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pl	Licznik słów				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pt	Contar palavras				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pt-BR	Contagem de palavras				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ru	Количество слов				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	rw	Kubara amagambo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sh	Broj reči				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sk	Počet slov				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sl	Štetje besed				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sr	Број речи				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ss	Kubalwa kwemagama				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	st	Palo ya Mantswe				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sv	Räkna ord				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sw-TZ	Word Count				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ta	சொல் எண்ணிக்கை				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ta-IN	சொல் எண்ணிக்கை				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	te-IN	పదాల లెక్క				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	tg	Шумораи калимаҳо				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	th	นับคำ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ti-ER	ምቑጻር ቃላት				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	tr	Kelime Sayısı				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ts	Ku hlayela marito				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	uk	Кількість слів				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ur-IN	  الفاظ شمار				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	uz	Soʻzlar soni				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ve	Mbalo ya Maipfi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	vi	Tổng số từ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	xh	Ubalo Lwamagama				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	zh-CN	字数统计				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	zh-TW	字數				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	zu	Inani Lamagama				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	en-US	Zoom & View Layout				20080215 15:20:14
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-US	Zoom factor				20080215 15:20:14
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-US	Whole Page				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_AUTOMATIC_label				0	en-US	~Automatic				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_SINGLE_label				0	en-US	~Single page				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_COLUMNS_label				0	en-US	~Columns				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	ED_COLUMNS_text				0	en-US	1				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	CHK_BOOK_label				0	en-US	~Book mode				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_VIEWLAYOUT_text				0	en-US	View layout				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_AUTOMATIC_label				0	de	~Automatisch				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_SINGLE_label				0	de	~Einzelne Seite				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_COLUMNS_label				0	de	~Spalten				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	ED_COLUMNS_text				0	de	1				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	CHK_BOOK_label				0	de	~Buch Modus				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_VIEWLAYOUT_text				0	de	Ansichtlayout				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	de	Maßstab & Ansichtlayout				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_AUTOMATIC_label				0	nl	~Automatisch				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_SINGLE_label				0	nl	~Enkele pagina				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_COLUMNS_label				0	nl	~Kolommen				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	ED_COLUMNS_text				0	nl	1				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	CHK_BOOK_label				0	nl	~Boek modus				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_VIEWLAYOUT_text				0	nl	Beeldopmaak				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nl	Zoom & Beeldopmaak				2002-02-02 02:02:02
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-US	Page Width				20080215 15:20:14
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-US	Optimal				20080215 15:20:14
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_200_label				0	en-US	200 %				20080215 15:20:14
+@@ -10,27 +589,464 @@ layout	janneke\vc\layout-cws\toolkit\wor
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_50_label				0	en-US	50 %				20080215 15:20:14
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	en-US	Variable				20080215 15:20:14
+ layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	ED_USER_text				0	en-US	100%				20080215 15:20:14
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	dialog_title				0	de	Maßstab				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	FL_ZOOM_text				0	de	Zoomfaktor				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	de	Ganze Seite				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	de	Seiten~breite Width				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_OPTIMAL_label				0	de	Optimal				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_200_label				0	de	200 %				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_150_label				0	de	15~0 %				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_100_label				0	de	100 %				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_75_label				0	de	75 %				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_50_label				0	de	50 %				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_USER_label				0	de	Stufenlos				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	ED_USER_text				0	de	100%				20080215 15:19:24
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	dialog_title				0	nl	In- en uitzoomen				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	FL_ZOOM_text				0	nl	Zoomfactor				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nl	H~ele pagina				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nl	Paginabreedte				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nl	Optimaal				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_200_label				0	nl	200 %				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_150_label				0	nl	15~0 %				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_100_label				0	nl	100 %				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_75_label				0	nl	75 %				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_50_label				0	nl	50 %				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_USER_label				0	nl	Variabel				20080215 15:19:27
+-layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	ED_USER_text				0	nl	100%				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	af	Zoemfaktor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ar	عامل تكبير/تصغير				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	as-IN	জুম কাৰক				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	be-BY	Маштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	bg	Мащаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	br	Parenn				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	bs	Faktor povećanja				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ca	Factor de l'escala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	cs	Faktor zvětšení				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	cy	Ffactor chwyddo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	da	Zoomfaktor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	de	Zoomfaktor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	dz	ཆ་རྐྱེན་རྒྱས་ཟུམ།				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	el	Συντελεστής εστίασης				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-GB	Zoom factor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-ZA	Zoom factor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	eo	Zoma faktoro				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	es	Escala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	et	Suurendusaste				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	fa	عامل زوم				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	fi	Zoom-kerroin				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	fr	Facteur				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ga	Fachtóir súmála				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	gl	Factor de zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	gu	ઝુમનો અવયવ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	gu-IN	ઝુમનો અવયવ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	he	גורם זום				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	hi-IN	जूम कारक				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	hr	Faktor uvećanja				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	hu	Nagyítás mértéke				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	it	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ja	ズーム率				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ka	მაშტაბირების ფაქტორი				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	km	កត្តា​ពង្រីក				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ko	확대/축소				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ku	Rêjeya Nêzîkirinê				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	lt	Mastelio parinkimas				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	mk	Фактор на зумирање				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ml-IN	സൂം ഘടകം				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	mr-IN	झूम गुणक				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nb	Skaleringsfaktor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ne	जुम खण्ड				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nl	Zoomfactor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nn	Skaleringsfaktor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	nr	Ifektha yokukhulisa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ns	Godiša ntlha				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	or-IN	ଜୁମ୍ ଫ୍ଯାକଟର				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pa-IN	ਅਕਾਰ ਗੁਣਾਂਕ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pl	Powiększenie				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pt	Factor de zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	pt-BR	Fator de zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ru	Масштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	rw	Igikubisho cy'ihindurangano				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sh	Faktor uvećanja				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sk	Faktor zväčšenia				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sl	Faktor povečave				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sr	Фактор увећања				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ss	Ifektha yaZumu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	st	Zoom factore				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sv	Zoomfaktor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	sw-TZ	Kiwango tutushi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ta	Zoom factor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ta-IN	Zoom factor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	te-IN	జూమ్ కారకం				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	tg	Коэффитсиенти масштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	th	Zoom factor				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	tn	Siana lebaka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	tr	Yakınlaştırma oranı				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ts	Xivumbi xa ku kurisa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	uk	Коефіцієнт масштабування				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ur-IN	زوم  فیكٹر				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	uz	Kattalashtirish darajasi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	ve	Fekhitha ya Zumu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	vi	Hệ số thu phóng				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	xh	Umba wokwandisa unciphisa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	zh-CN	显示比例				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	zh-TW	顯示比例				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	zu	Ingxenye yokusondeza				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	af	Zoem				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ar	تكبير/تصغير				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	as-IN	জুম				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	be-BY	Маштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	bg	Мащаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	br	Zoum				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	bs	Uvećaj				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ca	Escala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	cs	Lupa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	cy	Chwyddo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	da	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	dz	རྒྱས་ཟུམ།				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	el	Εστίαση				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	en-GB	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	en-ZA	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	eo	Zomi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	es	Escala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	et	Suurendus				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	fa	زوم				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	fi	Zoomaus				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	fr	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ga	Súmáil				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	gl	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	gu	નાનુમોટુ કરવુ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	gu-IN	નાનુમોટુ કરવુ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	he	זום				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	hi-IN	जूम				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	hr	Uvećaj/umanji				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	hu	Nagyítás				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	it	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ja	ズーム				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ka	მაშტაბი				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	km	ពង្រីក​				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ko	배율				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ku	Mezinkirin				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	lt	Mastelis				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	mk	Зумирање				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ml-IN	സൂം				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	mr-IN	झूम करा				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nb	Skaler				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ne	जुम				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nn	Skaler				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	nr	Khula msinyana				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ns	Godiša				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	or-IN	ଜୁମ୍				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pa-IN	ਜ਼ੂਮ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pl	Skala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pt	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	pt-BR	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ru	Масштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	rw	Ihindurangano				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sh	Uveličanje				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sk	Lupa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sl	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sr	Увеличање				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ss	Zumu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	st	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sv	Skala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	sw-TZ	Tutusha				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ta	கிட்டப்பார்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ta-IN	கிட்டப்பார்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	te-IN	జూమ్				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	tg	Масштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	th	Zoom				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	tn	Siana				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	tr	Yakınlaştır				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ts	Ku kurisa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	uk	Масштаб				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ur-IN	 زوم				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	uz	Kattalashtirish				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	ve	Zumu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	vi	Thu/phóng				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	xh	Ukwandisa unciphise				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	zh-CN	显示比例				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	zh-TW	顯示比例				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	RID_SVXDLG_ZOOM_title				0	zu	Sondeza				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	af	~Optimale				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ar	الأمثل~				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	be-BY	Аптымальна				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	bg	~Оптимален				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	br	~Gwellek				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	bs	~Optimalno				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ca	Ò~ptim				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	cs	Optimální				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	cy	~Gorau				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	da	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	de	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	dz	གང་དྲག(~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	el	Βέ~λτιστα				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-GB	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-ZA	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	eo	Optimuma				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	es	Ó~ptimo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	et	Optimaalne				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	fa	~بهینه				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	fi	O~ptimaalinen				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	fr	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ga	~Optamach				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	gl	~Ideal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	gu	શ્રેષ્ઠ (~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	gu-IN	શ્રેષ્ઠ (~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	he	מיטבי				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	hi-IN	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	hr	~Optimalno				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	hu	~Optimális				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	it	~Ottimale				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ja	最適(~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ka	~ოფტიმალური				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	km	ប្រសើរ​បំផុត 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ko	최적(~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ku	D~înamik				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	lt	~Optimalus				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	mk	~Оптимално				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nb	~Best mulig				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ne	इष्टतम				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nl	~Optimaal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nn	~Best mogleg				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nr	~Ngaletha ipumelelo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ns	~Kgolo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	or-IN	ଅପଟିମାଲ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pa-IN	ਅਨੁਕੂਲ(~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pl	~Optymalny				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pt	~Optimizado				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	pt-BR	~Ideal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ru	Оптимально				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	rw	Gihamye				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sh	~Optimalan				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sk	~Optimálny				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sl	~Optimalno				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sr	~Оптималан				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ss	~Kwekugcina				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	st	~E fetisisang				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sv	Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	sw-TZ	Sadifu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ta	~சிறப்பு				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ta-IN	~சிறப்பு				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	te-IN	అనుకూలమైన				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	tg	Оптималӣ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	th	เ~หมาะที่สุด				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	tn	~Nepagetse				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	tr	En Uygun				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ts	~Mpimo wa le makumu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	uk	Оптимальний				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ur-IN	مناسب				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	uz	~Optimal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	ve	~Oputimala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	vi	Tối ư~u				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	xh	~Okufaneleke ncam				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	zh-CN	最佳(~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	zh-TW	最合適(~O)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	zu	~Okuthandwayo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	af	~Bladsybreedte				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ar	~عرض الصفحة				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	as-IN	পৃষ্ঠাৰ প্রস্থ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	be-BY	Шырыня старонкі				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	bg	~Ширина на страницата				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	br	~Led pajenn				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	bs	Širina ~stranice				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ca	~Ample de pàgina				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	cs	Šířka stránky				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	cy	~Lled tudalen				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	da	Side~bredde				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	de	Seiten~breite				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	dz	ཤོག་ལེབ་ཀྱི་རྒྱ་ཚད།(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	el	Πλάτος σελίδας				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-GB	~Page Width				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-ZA	~Page Width				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	eo	Pagxa largxo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	es	~Ancho de página				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	et	Lehekülje laius				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	fa	~عرض صفحه				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	fi	~Sivun leveys				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	fr	~Largeur de page				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ga	Leithead ~Leathanaigh				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	gl	Largura de ~páxina				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	gu	પાનું પહોળાઈ(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	gu-IN	પાનું પહોળાઈ(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	he	רוחב עמוד				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	hi-IN	पृष्ठ चौड़ाई (~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	hr	~Širina stranice				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	hu	~Oldalszélesség				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	it	Larg~h. pagina				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ja	ページ幅(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ka	~გვერდის სიგანე				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	km	ទទឹង​ទំព័រ 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ko	페이지 너비(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	lt	~Puslapio plotis				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	mk	Ширина на ~страница				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ml-IN	പേജിന്റെ വീതി				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	mr-IN	~पृष्ठाची रुंदी				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nb	~Sidebredde				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ne	पृष्ठ चौडाइ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nl	~Paginabreedte				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nn	~Sidebreidd				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nr	~Ububanzi bekhasi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ns	~Bophara bja Letlakala				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	or-IN	ପୃଷ୍ଠାର ଓସାର				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pa-IN	ਸਫ਼ਾ ਚੌੜਾਈ(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pl	Szerokość ~strony				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pt	~Largura da página				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	pt-BR	Largura da ~página				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ru	По ширине страницы				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	rw	Ubugari bw'Urupapuro				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sh	~Širina strane				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sk	Šírka ~strany				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sl	Širina s~trani				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sr	~Ширина стране				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ss	~Bubanti belipheji				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	st	~Bophara ba Leqephe				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sv	Sidbredd				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	sw-TZ	Upana Ukurasa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ta	பக்க அகலம்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ta-IN	பக்க அகலம்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	te-IN	పుటము యొక్క వెడెల్పు				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	tg	Ба бари саҳифа				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	th	ความกว้างของ~หน้า				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	tn	~Tsebe Bophara				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	tr	Sayfa Genişliği				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ts	~Ku anama ka pheji				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	uk	~Page Width				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ur-IN	صفحہ کی چوڑائی				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	uz	Betning ~eni				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	ve	~Vhuphara ha Siatari				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	vi	Độ ~rộng trang				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	xh	~Ububanzi Bekhasi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	zh-CN	页面宽度(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	zh-TW	頁面寬度(~P)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	zu	Ububanzi be~khasi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	af	~Veranderlike				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ar	م~تغير				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	as-IN	চলক				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	be-BY	Зменная				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	bg	~Променлив				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	br	~All				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	bs	~Promjenljivo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ca	~Variable				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	cs	Proměnný				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	cy	~Newidiol				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	da	~Variabel				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	de	~Stufenlos				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	dz	འགྱུར་ཅན།(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	el	Προ~σαρμογή				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	en-GB	~Variable				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	en-ZA	~Variable				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	eo	Variablo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	es	~Variable				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	et	Kohandatud				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	fa	~متغیر				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	fi	~Vaihtuva				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	fr	~Autre				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ga	~Luaineach				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	gl	~Variable				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	gu	ચલ(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	gu-IN	ચલ(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	he	משתנה				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	hi-IN	चर (~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	hr	~Varijabilno				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	hu	~Egyéb:				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	it	~Variabile				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ja	任意(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ka	~ცვლადი				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	km	អថេរ 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ko	가변(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ku	~Guherbar				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	lt	~Kitoks				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	mk	Променли~во				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ml-IN	വെരിയബിള്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	mr-IN	~वेरीयेबल				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	nb	~Tilpass				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ne	चल				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	nl	~Variabel				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	nn	~Tilpass				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	nr	~Kwehlukano-gama				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ns	~Fetogago				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	or-IN	ପରିବର୍ତ୍ତନଶୀଳ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	pa-IN	ਮੁੱਲ(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	pl	~Inne				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	pt	~Variável				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	pt-BR	~Variável				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ru	Произвольно				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	rw	Bihinduka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	sh	~Promenljiv				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	sk	~Premenný				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	sl	~Spremenljivo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	sr	~Променљив				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ss	~Kugucugucuka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	st	~Variebole				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	sv	~Steglös				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	sw-TZ	Kibadili				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ta	மாறுவது				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ta-IN	மாறுவது				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	te-IN	చరరాశి				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	tg	~Тағирёбанда				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	th	~ตัวแปร				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	tn	~Farologane				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	tr	Değişken				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ts	~Lexi cincacincaka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	uk	Змінний				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ur-IN	تغیر				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	uz	Oʻz~garuvchan				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	ve	~Variebulu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	vi	~Biến đổi				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	xh	~Iziguquguquki				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	zh-CN	无级缩放(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	zh-TW	無級縮放(~V)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	zu	~Okushintshayo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	af	~Hele bladsy				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ar	~صفحة كاملة				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	as-IN	সম্পূর্ণ পৃষ্ঠা				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	be-BY	Старонка цалкам				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	bg	~Цяла страница				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	br	Pajenn a-bezh				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	bs	~Cijela stranica				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ca	~Tota la pàgina				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	cs	Celá stránka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	cy	~Tudalen Gyfan				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	da	H~ele siden				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	de	~Ganze Seite				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	dz	ཤོག་ལེབ་ཧྲིལ་བུ།(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	el	Ολόκληρη σελίδα				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-GB	~Entire Page				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-ZA	~Entire Page				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	eo	Integra pagxo				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	es	~Toda la página				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	et	Terve lehekülg				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	fa	~سراسر صفحه				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	fi	~Koko sivu				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	fr	Page entière				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ga	L~eathanach ar fad				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	gl	Páxina completa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	gu	આખુ પાનું(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	gu-IN	આખુ પાનું(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	he	עמוד שלם				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	hi-IN	सम्पूर्ण पृष्ठ (~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	hr	~Cijela stranica				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	hu	~Teljes oldal				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	it	~Pagina intera				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ja	ページ全体(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ka	~მთლიანი გვერდი				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	km	ទំព័រទាំងមូល 				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ko	전체 페이지(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	lt	~Visas puslapis				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	mk	~Цела страница				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ml-IN	മുഴുവന് പേജ്				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	mr-IN	~संपूर्ण पृष्ठ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nb	~Hele siden				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ne	सम्पूर्ण पृष्ठ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nl	H~ele pagina				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nn	~Heile sida				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nr	~Ikhasi Loke				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ns	~Letlakala Ka moka				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	or-IN	ସମଗ୍ର ପୃଷ୍ଠା				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pa-IN	ਮੁਕੰਮਲ ਸਫ਼ਾ(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pl	~Cała strona				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pt	~Página inteira				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	pt-BR	Página int~eira				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ru	Вся страница				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	rw	Paji yose				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sh	~Cela strana				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sk	~Celá strana				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sl	~Cela stran				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sr	~Цела страна				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ss	~Lonkhe lipheji				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	st	~Leqephe kaofela				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sv	Hela sidan				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	sw-TZ	Ukurasa Mzima				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ta	முழுப்பக்கம்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ta-IN	முழுப்பக்கம்				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	te-IN	పుటము మొత్తము				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	tg	Ба тамомми саҳифа				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	th	~ทั้งหน้า				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	tn	~Yotlhe Tsebe				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	tr	Tüm Sayfa				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ts	~Pheji hinkwaro				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	uk	~Entire Page				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ur-IN	پوراصفحہ				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	uz	Bu~tun bet				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	ve	~Siatari Lothe				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	vi	~Toàn trang				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	xh	~Ikhasi Liphelele				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	zh-CN	整页(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	zh-TW	整頁(~E)				2002-02-02 02:02:02
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	zu	Ikhasi ~lonke				2002-02-02 02:02:02
+Index: toolkit/workben/layout/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/makefile.mk,v
+retrieving revision 1.2
+retrieving revision 1.2.6.4
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.4
+--- toolkit/workben/layout/makefile.mk	6 Mar 2008 12:00:06 -0000	1.2
++++ toolkit/workben/layout/makefile.mk	28 Mar 2008 14:55:41 -0000	1.2.6.4
+@@ -1,3 +1,38 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++#     MA  02110-1301  USA
++#
++#*************************************************************************
++
+ PRJ=../..
+ PRJNAME=toolkit
+ TARGET=test
+@@ -24,12 +59,14 @@ CFLAGS+=-Wall -Wno-non-virtual-dtor
+ 
+ CXXFILES=\
+ 	editor.cxx \
++	recover.cxx \
+ 	wordcountdialog.cxx \
+ 	test.cxx \
+ 	zoom.cxx
+ 
+ OBJFILES=\
+ 	$(OBJ)$/editor.obj \
++	$(OBJ)$/recover.obj \
+ 	$(OBJ)$/test.obj \
+ 	$(OBJ)$/wordcountdialog.obj \
+ 	$(OBJ)$/zoom.obj
+@@ -44,41 +81,36 @@ APP1STDLIBS= \
+ 		$(CPPUHELPERLIB)		\
+ 		$(SALLIB)			\
+ 		$(XMLSCRIPTLIB)			\
+-		$(LAYOUTLIB)\
+ 		$(TKLIB)
+ 
+-all: svtools ALLTAR
++svtools = $(INCCOM)/svtools
++all: $(svtools) ALLTAR
+ 
+ .INCLUDE :  target.mk
+ 
+-# FIXME: move this rule and .xml files into sw/svx trees,
+-#        install into xml directory instead of lib.
+-ALLTAR: \
+-    $(DLLDEST)$/wordcount.xml\
+-    $(DLLDEST)$/zoom.xml\
+-    $(DLLDEST)$/de/wordcount.xml\
+-    $(DLLDEST)$/de/zoom.xml\
+-    $(DLLDEST)$/nl/wordcount.xml\
+-    $(DLLDEST)$/nl/zoom.xml
++XML_FILES=\
++	recover.xml\
++	wordcount.xml\
++	zoom.xml\
+ 
+ TRALAY=tralay
+-$(WITH_LANG:f:t"/%.xml ")/%.xml: %.xml
+-	$(TRALAY) -m localize.sdf -o . -l $(WITH_LANG:f:t" -l ") $<
+-	rm -rf en-US
++XML_LANGS=$(alllangiso)
+ 
+-$(DLLDEST)$/%.xml: %.xml
+-# modes, INSTALL?
+-	-$(MKDIR) $(@:d)
+-	$(COPY) $< $@
++#ALL_XMLS=$(foreach,i,$(XML_LANGS) $(foreach,j,$(XML_FILES) $i/$j))
++ALLTAR: $(foreach,i,$(XML_FILES) en-US/$i)
++
++$(XML_LANGS:f:t"/%.xml ")/%.xml: %.xml
++	$(TRALAY) -m localize.sdf -o . -l $(XML_LANGS:f:t" -l ") $<
++	rm -rf en-US
+ 
+-svtools:
++$(svtools):
+ 	# FIXME: there's a bug in svtools layout or usage
+ 	# Include files are in svtools/inc, but are referenced as <svtools/..>
+ 	# They probably should be in svtools/inc/svtools
+ 	# This means that include files can only be included after svtools
+ 	# is built, which would mean a circular dependency,
+ 	# because svtools depends on toolkit.
+-	ln -sf ../$(PRJ)/svtools/inc svtools
++	ln -sf ..$/$(PRJ)$/svtools$/inc $(INCCOM)$/svtools
+ 
+ dist .PHONY :
+ 	$(SHELL) ./un-test.sh zoom.cxx > ../$(PRJ)/svx/source/dialog/zoom.cxx
+Index: toolkit/workben/layout/more.xml
+===================================================================
+RCS file: toolkit/workben/layout/more.xml
+diff -N toolkit/workben/layout/more.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/more.xml	20 Mar 2008 11:56:31 -0000	1.1.2.1
+@@ -0,0 +1,19 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="RID_SVXDLG_MORE" _title="Test More" optimumsize="true"
++	     help-id="SID_ATTR_RESTORE"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox spacing="5" border="5" width="640">
++	<fixedtext id="FT_ONE" _label="One"/>
++	<fixedtext id="FT_TWO" _label="Two"/>
++	<hbox border="5">
++	    <flow/>
++	    <morebutton id="PB_MORE" cnt:expand="false" _label="More..."/>
++	</hbox>
++	<fixedtext id="FT_THREE" _label="Three"/>
++	<fixedtext id="FT_FOUR" _label="Four"/>
++    </vbox>
++</modaldialog>
++
+Index: toolkit/workben/layout/recover.cxx
+===================================================================
+RCS file: toolkit/workben/layout/recover.cxx
+diff -N toolkit/workben/layout/recover.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/recover.cxx	20 Mar 2008 11:56:31 -0000	1.1.2.1
+@@ -0,0 +1,111 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifdef SVX_DLLIMPLEMENTATION
++#undef SVX_DLLIMPLEMENTATION
++#endif
++
++#if TEST_LAYOUT
++#include <cstdio>
++#endif /* TEST_LAYOUT */
++#include <com/sun/star/awt/XDialog2.hpp>
++#include <tools/shl.hxx>
++#include <svtools/itemset.hxx>
++#include <svtools/itempool.hxx>
++#include <sfx2/objsh.hxx>
++#include <vcl/msgbox.hxx>
++#include <toolkit/awt/vclxwindow.hxx>
++
++
++#include <com/sun/star/awt/PosSize.hpp> //redrawAlready
++
++using namespace com::sun::star;
++
++#define _SVX_RECOVER_CXX
++
++#include "recover.hxx"
++
++#include <layout/layout-pre.hxx>
++
++#if TEST_LAYOUT
++SvxRecoverDialog::SvxRecoverDialog( Window* pParent )
++#else /* !TEST_LAYOUT */
++SvxRecoverDialog::SvxRecoverDialog( Window* pParent, const SfxItemSet& rCoreSet )
++#endif /* !TEST_LAYOUT */
++: SfxModalDialog( pParent, SVX_RES( RID_SVXDLG_RECOVER ) )
++
++    , aHeaderImage( this, SVX_RES( FI_HEADER ) )
++    , aHeaderText( this, SVX_RES( FT_HEADER ) )
++    , aHeaderLine( this, SVX_RES( FL_HEADER ) )
++    , aRecoverText( this, SVX_RES( FT_RECOVER ) )
++    , aTextAdvanced( this, SVX_RES( FT_ADVANCED ) )
++
++	, aCheckBoxDoc( this, SVX_RES( CB_DOC ) )
++	, aImageDoc( this, SVX_RES( FI_DOC ) )
++	, aTextDoc( this, SVX_RES( FT_DOC ) )
++
++	, aCheckBoxSheet( this, SVX_RES( CB_SHEET ) )
++	, aImageSheet( this, SVX_RES( FI_SHEET ) )
++	, aTextSheet( this, SVX_RES( FT_SHEET ) )
++
++	, aCheckBoxDraw( this, SVX_RES( CB_DRAW ) )
++	, aImageDraw( this, SVX_RES( FI_DRAW ) )
++	, aTextDraw( this, SVX_RES( FT_DRAW ) )
++
++	, aCheckBoxPresent( this, SVX_RES( CB_PRESENT ) )
++	, aImagePresent( this, SVX_RES( FI_PRESENT ) )
++	, aTextPresent( this, SVX_RES( FT_PRESENT ) )
++
++	, aButtonAdvanced( this, SVX_RES( PB_ADVANCED ) )
++
++    , aProgressText( this, SVX_RES( FT_PROGRESS ) )
++    , aProgressBar( this, SVX_RES( PB_RECOVER ) )
++	, aCheckBoxLogFile( this, SVX_RES( CH_LOGFILE ) )
++    , aOKBtn( this, SVX_RES( BTN_OK ) )
++	, aCancelBtn( this, SVX_RES( BTN_CANCEL ) )
++	, aHelpBtn( this, SVX_RES( BTN_HELP ) )
++{
++    aButtonAdvanced.AddAdvanced( &aTextAdvanced );
++    aButtonAdvanced.AddAdvanced( &aCheckBoxDoc );
++    aButtonAdvanced.AddAdvanced( &aCheckBoxSheet );
++    aButtonAdvanced.AddAdvanced( &aCheckBoxDraw );
++    aButtonAdvanced.AddAdvanced( &aCheckBoxPresent );
++    aButtonAdvanced.AddAdvanced( &aCheckBoxLogFile );
++}
++
++
++SvxRecoverDialog::~SvxRecoverDialog()
++{
++}
+Index: toolkit/workben/layout/recover.hxx
+===================================================================
+RCS file: toolkit/workben/layout/recover.hxx
+diff -N toolkit/workben/layout/recover.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/recover.hxx	20 Mar 2008 11:56:32 -0000	1.1.2.1
+@@ -0,0 +1,87 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef _SVX_RECOVER_HXX
++#define _SVX_RECOVER_HXX
++
++#include <layout/layout.hxx>
++#include <vcl/button.hxx>
++#include <vcl/field.hxx>
++#include <vcl/fixed.hxx>
++#include <box.hxx>
++#include <layout/layout-pre.hxx>
++
++class SvxRecoverDialog : public SfxModalDialog
++{
++private:
++    FixedImage aHeaderImage;
++    FixedText aHeaderText;
++    FixedLine aHeaderLine;
++    FixedText aRecoverText;
++    FixedText aTextAdvanced;
++
++	CheckBox aCheckBoxDoc;
++    FixedImage aImageDoc;
++    FixedText aTextDoc;
++	CheckBox aCheckBoxSheet;
++    FixedImage aImageSheet;
++    FixedText aTextSheet;
++	CheckBox aCheckBoxDraw;
++    FixedImage aImageDraw;
++    FixedText aTextDraw;
++	CheckBox aCheckBoxPresent;
++    FixedImage aImagePresent;
++    FixedText aTextPresent;
++	AdvancedButton aButtonAdvanced;
++
++    FixedText aProgressText;
++    ProgressBar aProgressBar;
++	CheckBox aCheckBoxLogFile;
++	OKButton aOKBtn;
++	CancelButton aCancelBtn;
++	HelpButton aHelpBtn;
++
++public:
++#if TEST_LAYOUT
++	SvxRecoverDialog( Window* pParent );
++#else /* !TEST_LAYOUT */
++	SvxRecoverDialog( Window* pParent, const SfxItemSet& rCoreSet );
++#endif /* !TEST_LAYOUT */
++	~SvxRecoverDialog();
++};
++
++#include <layout/layout-post.hxx>
++
++#endif
++
+Index: toolkit/workben/layout/recover.xml
+===================================================================
+RCS file: toolkit/workben/layout/recover.xml
+diff -N toolkit/workben/layout/recover.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/recover.xml	4 Apr 2008 09:13:34 -0000	1.1.2.2
+@@ -0,0 +1,67 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated xml files are generated from this template by
++     transex3/layout/tralay.  !-->
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="RID_SVXDLG_RECOVER" _title="OpenOffice.org Document Restore -- questions to sigi(at)novell.com--" optimumsize="true"
++	     help-id="SID_ATTR_RESTORE"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox spacing="5" border="5" width="640">
++        <hbox spacing="5" cnt:expand="false">
++	    <fixedimage id="FI_HEADER" cnt:expand="false" graphic="res/commandimagelist/sc_apply.png" />
++	    <fixedtext id="FT_HEADER" _label="OpenOffice.org Document Restore"/>
++	</hbox>
++	<fixedline id="FL_HEADER"/>
++	<!-- mockup: fixedtext multiline=true" does not work? 
++	<multilineedit id="MLE_RECOVER" has_border="false" foobar="x" _text="At least one document was found that was not stored safely to the media.  Uncheck any documents you do not want to restore (information may be lost)."/>
++	<fixedtext id="FT_RECOVER" has_border="false" multi-line="true" font-word-line-mode="true" word-break="true"  _label="At least one document was found that was not stored safely to the media.  Uncheck any documents you do not want to restore (information may be lost).
++LINE TEST"/>
++	!-->
++	<fixedtext id="FT_RECOVER" has_border="false" multi-line="true" font-word-line-mode="true" _label="At least one document was not stored safely and must be recovered."/>
++	<fixedtext id="FT_ADVANCED" has_border="false" multi-line="true" font-word-line-mode="true" word-break="true"  _label="Uncheck any documents you do not want to restore (information may be lost)."/>
++	<vbox cnt:fill="true" cnt:expand="true" cnt:padding="20" border="20" spacing="20">
++	    <hbox>
++		<checkbox id="CB_DOC" state="1" cnt:expand="false" scale="false"/>
++		<fixedimage id="FI_DOC" cnt:v-align="0.5" image-align="0.5" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_insertdoc.png"/>
++		<fixedtext id="FT_DOC" _label="My document"/>
++	    </hbox>
++	    <hbox>
++		<checkbox id="CB_SHEET" state="1" cnt:expand="false" scale="false" /> 
++		<fixedimage id="FI_SHEET" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_inserttable.png" />
++		<fixedtext id="FT_SHEET" _label="My spreadsheet"/>
++	    </hbox>
++	    <hbox>
++		<checkbox id="CB_DRAW" state="1" cnt:expand="false" scale="false"/>
++		<fixedimage id="FI_DRAW" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_insertdraw.png" />
++		<fixedtext id="FT_DRAW" _label="My drawing"/>
++	    </hbox>
++	    <hbox>
++		<checkbox id="CB_PRESENT" state="1" cnt:expand="false" scale="false" />
++		<fixedimage id="FI_PRESENT" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_insertvideo.png" />
++		<fixedtext id="FT_PRESENT" _label="My presentation"/>
++	    </hbox>
++	    <hbox border="5">
++		<flow/>
++		<advancedbutton id="PB_ADVANCED" cnt:expand="false" _label="Advanced..."/>
++	    </hbox>
++	</vbox>
++	<vbox>
++	    <fixedtext id="FT_PROGRESS" _label="Restore progress (idle)"/>
++	    <hbox height="40" cnt:expand="true">
++		<progressbar cnt:expand="true" cnt:fill="true" id="PB_RECOVER" has_border="true" border="10" fill-color="#ccccff" background-color="#ffffff" progress-value-min="0" progress-value-max="100" progress-value="50" />
++		<!-- FIXME: cannot set progress bar's height, use space as strut... !--> 
++		<fixedtext label="" height="10" cnt:expand="false" cnt:fill="false"/>
++	    </hbox>
++	</vbox>
++	<checkbox id="CH_LOGFILE" _label="Open additional text document to display the restore logfile"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton id="BTN_OK" _label="Restore"/>
++	    <cancelbutton id="BTN_CANCEL" />
++	    <helpbutton id="BTN_HELP"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
++
+Index: toolkit/workben/layout/simple-paragraph.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/simple-paragraph.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/simple-paragraph.cxx	6 Mar 2008 12:04:37 -0000	1.2
++++ toolkit/workben/layout/simple-paragraph.cxx	20 Mar 2008 11:56:32 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifdef SVX_DLLIMPLEMENTATION
+ #undef SVX_DLLIMPLEMENTATION
+ #endif
+Index: toolkit/workben/layout/simple-paragraph.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/simple-paragraph.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/simple-paragraph.hxx	6 Mar 2008 12:04:48 -0000	1.2
++++ toolkit/workben/layout/simple-paragraph.hxx	20 Mar 2008 11:56:32 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _SVX_SIMPLE_PARAGRAPH_HXX
+ #define _SVX_SIMPLE_PARAGRAPH_HXX
+ 
+Index: toolkit/workben/layout/test.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/test.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/workben/layout/test.cxx	6 Mar 2008 12:06:00 -0000	1.2
++++ toolkit/workben/layout/test.cxx	26 Mar 2008 13:46:01 -0000	1.2.6.2
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #include <vcl/svapp.hxx>
+ //#include <transex3/vosapp.hxx>
+ 
+@@ -25,6 +61,9 @@
+ #include "zoom.hxx"
+ #undef _LAYOUT_POST_HXX
+ 
++#include "recover.hxx"
++#undef _LAYOUT_POST_HXX
++
+ //#undef SW_WORDCOUNTDIALOG_HXX
+ #include <layout/layout-pre.hxx>
+ 
+@@ -161,7 +200,7 @@ void LayoutTest::IInit()
+ 
+ void LayoutTest::ParseCommandLine()
+ {
+-    for ( int i = 0; i < GetCommandLineParamCount(); i++ )
++    for ( sal_uInt16 i = 0; i < GetCommandLineParamCount(); i++ )
+     {
+         OUString aParam = OUString( GetCommandLineParam( i ) );
+         if ( aParam.equalsAscii( "-h" ) || aParam.equalsAscii( "--help" ) )
+@@ -220,6 +259,11 @@ void TestDialog( OUString const& name )
+         SwWordCountDialog words ( 0 );
+         RunDialog( words );
+     }
++    else if ( name.equalsAscii( "recover" ) )
++    {
++        SvxRecoverDialog recover ( 0 );
++        RunDialog( recover );
++    }
+ }
+ 
+ void LayoutTest::RunFiles()
+Index: toolkit/workben/layout/uno.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/uno.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/uno.hxx	6 Mar 2008 12:06:47 -0000	1.2
++++ toolkit/workben/layout/uno.hxx	20 Mar 2008 11:56:32 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _LAYOUT_UNO_HXX
+ #define _LAYOUT_UNO_HXX
+ 
+Index: toolkit/workben/layout/wordcount.xml
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/wordcount.xml,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/workben/layout/wordcount.xml	6 Mar 2008 12:07:20 -0000	1.2
++++ toolkit/workben/layout/wordcount.xml	4 Apr 2008 09:13:34 -0000	1.2.6.2
+@@ -1,9 +1,12 @@
+ <?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated xml files are generated from this template by
++     transex3/layout/tralay.  !-->
+ 
+ <modaldialog xmlns="http://openoffice.org/2007/layout"
+              xmlns:cnt="http://openoffice.org/2007/layout/container"
+              help-id="HID_DLG_WORDCOUNT"
+-             id="dialog"
++             id="DLG_WORDCOUNT"
+              sizeable="true" moveable="true" optimumsize="true"
+              has_border="true" sv-look="true" _title="Word Count">
+     <vbox border="5" spacing="5">
+Index: toolkit/workben/layout/wordcountdialog.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/wordcountdialog.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.3
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.3
+--- toolkit/workben/layout/wordcountdialog.cxx	6 Mar 2008 12:07:32 -0000	1.2
++++ toolkit/workben/layout/wordcountdialog.cxx	27 Mar 2008 13:08:19 -0000	1.2.6.3
+@@ -96,7 +96,15 @@ SwWordCountDialog::~SwWordCountDialog()
+ /*-- 06.04.2004 16:05:57---------------------------------------------------
+ 
+   -----------------------------------------------------------------------*/
+-void  SwWordCountDialog::SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc)
++void  SwWordCountDialog::SetValues(const SwDocStat& 
++#if !TEST_LAYOUT
++                                   rCurrent,
++#endif
++                                   , const SwDocStat&
++#if !TEST_LAYOUT
++                                   rDoc
++#endif
++                                   )
+ {
+ #if !TEST_LAYOUT
+     aCurrentWordFI.SetText(     String::CreateFromInt32(rCurrent.nWord ));
+Index: toolkit/workben/layout/zoom.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/zoom.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/zoom.cxx	6 Mar 2008 12:09:02 -0000	1.2
++++ toolkit/workben/layout/zoom.cxx	20 Mar 2008 11:56:32 -0000	1.2.6.1
+@@ -87,8 +87,42 @@ struct SvxZoomItem
+         fprintf( stderr, "Zoom factor: %d\n", int( n ) );
+     }
+ };
++#define SfxPoolItem LAYOUT_SfxPoolItem
++class LAYOUT_SfxPoolItem
++{
++};
++struct SvxViewLayoutItem : public LAYOUT_SfxPoolItem
++{
++    bool IsBookMode()
++    {
++        return false;
++    }
++    USHORT GetValue()
++    {
++        return 0;
++    }
++
++    void SetValue( int n )
++    {
++        fprintf( stderr, "Zoom factor: %d\n", int( n ) );
++    }
++    void SetBookMode( bool )
++    {
++    }
++#if 0 // needed for real SfxPoolItem
++    int operator==( const SfxPoolItem& ) const
++    {
++        return 0;
++    }
++    SfxPoolItem* Clone( SfxItemPool* ) const
++    {
++        return 0;
++    }
++#endif
++};
+ #else /* !TEST_LAYOUT */
+ #include <svx/zoomitem.hxx>
++#include <svx/viewlayoutitem.hxx>
+ #include <svx/dialmgr.hxx>
+ #endif /* !TEST_LAYOUT */
+ 
+@@ -113,16 +147,8 @@ static USHORT pRanges[] =
+ 
+ USHORT SvxZoomDialog::GetFactor() const
+ {
+-	if ( a200Btn.IsChecked() )
+-		return 200;
+-	if ( a150Btn.IsChecked() )
+-		return 150;
+ 	if ( a100Btn.IsChecked() )
+ 		return 100;
+-	if ( a75Btn.IsChecked() )
+-		return 75;
+-	if ( a50Btn.IsChecked() )
+-		return 50;
+ 	if ( aUserBtn.IsChecked() )
+ 		return (USHORT)aUserEdit.GetValue();
+ 	else
+@@ -140,31 +166,11 @@ void SvxZoomDialog::SetFactor( USHORT nN
+ 
+ 	if ( !nBtnId )
+ 	{
+-		if ( nNewFactor == 200 )
+-		{
+-			a200Btn.Check();
+-			a200Btn.GrabFocus();
+-		}
+-		else if ( nNewFactor == 150 )
+-		{
+-			a150Btn.Check();
+-			a150Btn.GrabFocus();
+-		}
+-		else if ( nNewFactor == 100 )
++        if ( nNewFactor == 100 )
+ 		{
+ 			a100Btn.Check();
+ 			a100Btn.GrabFocus();
+ 		}
+-		else if ( nNewFactor == 75 )
+-		{
+-			a75Btn.Check();
+-			a75Btn.GrabFocus();
+-		}
+-		else if ( nNewFactor == 50 )
+-		{
+-			a50Btn.Check();
+-			a50Btn.GrabFocus();
+-		}
+ 		else
+ 		{
+ 			aUserBtn.Check();
+@@ -270,16 +276,21 @@ SvxZoomDialog::SvxZoomDialog( Window* pP
+ 	SfxModalDialog( pParent, SVX_RES( RID_SVXDLG_ZOOM ) ),
+ 
+     aZoomFl         ( this, SVX_RES( FL_ZOOM ) ),
++    aOptimalBtn     ( this, SVX_RES( BTN_OPTIMAL ) ),
+     aWholePageBtn   ( this, SVX_RES( BTN_WHOLE_PAGE ) ),
+     aPageWidthBtn   ( this, SVX_RES( BTN_PAGE_WIDTH ) ),
+-    aOptimalBtn     ( this, SVX_RES( BTN_OPTIMAL ) ),
+-    a200Btn         ( this, SVX_RES( BTN_200 ) ),
+-	a150Btn         ( this, SVX_RES( BTN_150 ) ),
+ 	a100Btn         ( this, SVX_RES( BTN_100 ) ),
+-	a75Btn          ( this, SVX_RES( BTN_75 ) ),
+-	a50Btn          ( this, SVX_RES( BTN_50 ) ),
+     aUserBtn        ( this, SVX_RES( BTN_USER ) ),
+ 	aUserEdit       ( this, SVX_RES( ED_USER ) ),
++
++    aViewLayoutFl   ( this, SVX_RES( FL_VIEWLAYOUT ) ),
++    aAutomaticBtn   ( this, SVX_RES( BTN_AUTOMATIC ) ),
++    aSingleBtn      ( this, SVX_RES( BTN_SINGLE ) ),
++    aColumnsBtn     ( this, SVX_RES( BTN_COLUMNS ) ),
++    aColumnsEdit    ( this, SVX_RES( ED_COLUMNS ) ),
++    aBookModeChk    ( this, SVX_RES( CHK_BOOK ) ),
++
++    aBottomFl       ( this, SVX_RES( FL_BOTTOM ) ),
+     aOKBtn          ( this, SVX_RES( BTN_ZOOM_OK ) ),
+ 	aCancelBtn      ( this, SVX_RES( BTN_ZOOM_CANCEL ) ),
+ 	aHelpBtn	    ( this, SVX_RES( BTN_ZOOM_HELP ) ),
+@@ -292,15 +303,23 @@ SvxZoomDialog::SvxZoomDialog( Window* pP
+ 
+ {
+ 	Link aLink = LINK( this, SvxZoomDialog, UserHdl );
+-	a200Btn.SetClickHdl( aLink );
+-	a150Btn.SetClickHdl( aLink );
+ 	a100Btn.SetClickHdl( aLink );
+-	a75Btn.SetClickHdl( aLink );
+-	a50Btn.SetClickHdl( aLink );
+ 	aOptimalBtn.SetClickHdl( aLink );
+ 	aPageWidthBtn.SetClickHdl( aLink );
+ 	aWholePageBtn.SetClickHdl( aLink );
+ 	aUserBtn.SetClickHdl( aLink );
++
++    Link aViewLayoutLink = LINK( this, SvxZoomDialog, ViewLayoutUserHdl );
++    aAutomaticBtn.SetClickHdl( aViewLayoutLink );
++    aSingleBtn.SetClickHdl( aViewLayoutLink );
++    aColumnsBtn.SetClickHdl( aViewLayoutLink );
++
++    Link aViewLayoutSpinLink = LINK( this, SvxZoomDialog, ViewLayoutSpinHdl );
++    aColumnsEdit.SetModifyHdl( aViewLayoutSpinLink );
++
++    Link aViewLayoutCheckLink = LINK( this, SvxZoomDialog, ViewLayoutCheckHdl );
++    aBookModeChk.SetClickHdl( aViewLayoutCheckLink );
++
+ 	aOKBtn.SetClickHdl( LINK( this, SvxZoomDialog, OKHdl ) );
+ 	aUserEdit.SetModifyHdl( LINK( this, SvxZoomDialog, SpinHdl ) );
+ 
+@@ -341,9 +360,9 @@ SvxZoomDialog::SvxZoomDialog( Window* pP
+ 	if ( rItem.ISA(SvxZoomItem) )
+ 	{
+ 		const SvxZoomItem& rZoomItem = (const SvxZoomItem&)rItem;
+-        USHORT nZoom = rZoomItem.GetValue();
+-		SvxZoomType eType = rZoomItem.GetType();
+-		USHORT nValSet = rZoomItem.GetValueSet();
++        const USHORT nZoom = rZoomItem.GetValue();
++        const SvxZoomType eType = rZoomItem.GetType();
++        const USHORT nValSet = rZoomItem.GetValueSet();
+ 		USHORT nBtnId = 0;
+ 
+ 		switch ( eType )
+@@ -363,17 +382,8 @@ SvxZoomDialog::SvxZoomDialog( Window* pP
+                 break;
+ 		}
+ 
+-		// ggf. Buttons disablen
+-		if ( !(SVX_ZOOM_ENABLE_50 & nValSet) )
+-			a50Btn.Disable();
+-		if ( !(SVX_ZOOM_ENABLE_75 & nValSet) )
+-			a75Btn.Disable();
+ 		if ( !(SVX_ZOOM_ENABLE_100 & nValSet) )
+ 			a100Btn.Disable();
+-		if ( !(SVX_ZOOM_ENABLE_150 & nValSet) )
+-			a150Btn.Disable();
+-		if ( !(SVX_ZOOM_ENABLE_200 & nValSet) )
+-			a200Btn.Disable();
+ 		if ( !(SVX_ZOOM_ENABLE_OPTIMAL & nValSet) )
+ 			aOptimalBtn.Disable();
+ 		if ( !(SVX_ZOOM_ENABLE_PAGEWIDTH & nValSet) )
+@@ -384,9 +394,56 @@ SvxZoomDialog::SvxZoomDialog( Window* pP
+ 	}
+ 	else
+ 	{
+-        USHORT nZoom = ( (const SfxUInt16Item&)rItem ).GetValue();
++        const USHORT nZoom = ( (const SfxUInt16Item&)rItem ).GetValue();
+         SetFactor( nZoom );
+ 	}
++
++    const SfxPoolItem* pViewLayoutItem = 0;
++    if ( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_VIEWLAYOUT, FALSE, &pViewLayoutItem ) )
++    {
++        const USHORT nColumns = static_cast<const SvxViewLayoutItem*>(pViewLayoutItem)->GetValue();
++        const bool bBookMode  = static_cast<const SvxViewLayoutItem*>(pViewLayoutItem)->IsBookMode();
++
++        if ( 0 == nColumns )
++        {
++            aAutomaticBtn.Check();
++            aColumnsEdit.SetValue( 2 );
++            aColumnsEdit.Disable();
++            aBookModeChk.Disable();
++        }
++        else if ( 1 == nColumns)
++        {
++            aSingleBtn.Check();
++            aColumnsEdit.SetValue( 2 );
++            aColumnsEdit.Disable();
++            aBookModeChk.Disable();
++        }
++        else
++        {
++            aColumnsBtn.Check();
++            if ( !bBookMode )
++            {
++                aColumnsEdit.SetValue( nColumns );
++                if ( 0 != nColumns % 2 )
++                    aBookModeChk.Disable();
++            }
++            else
++            {
++                aColumnsEdit.SetValue( nColumns );
++                aBookModeChk.Check();
++            }
++        }
++    }
++    else
++    {
++        // hide view layout related controls:
++        aViewLayoutFl.Disable();
++        aAutomaticBtn.Disable();
++        aSingleBtn.Disable();
++        aColumnsBtn.Disable();
++        aColumnsEdit.Disable();
++        aBookModeChk.Disable();
++    }
+ #endif /* !TEST_LAYOUT */
+ 
+ 	FreeResource();
+@@ -438,17 +495,82 @@ IMPL_LINK( SvxZoomDialog, SpinHdl, Metri
+ 
+ // -----------------------------------------------------------------------
+ 
++IMPL_LINK( SvxZoomDialog, ViewLayoutUserHdl, RadioButton *, pBtn )
++{
++    bModified |= TRUE;
++
++    if ( pBtn == &aAutomaticBtn )
++    {
++        aColumnsEdit.Disable();
++        aBookModeChk.Disable();
++    }
++    else if ( pBtn == &aSingleBtn )
++    {
++        aColumnsEdit.Disable();
++        aBookModeChk.Disable();
++    }
++    else if ( pBtn == &aColumnsBtn )
++    {
++        aColumnsEdit.Enable();
++        aColumnsEdit.GrabFocus();
++        if ( 0 == aColumnsEdit.GetValue() % 2 )
++            aBookModeChk.Enable();
++    }
++    else
++    {
++        DBG_ERROR( "Wrong Button" );
++        return 0;
++    }
++
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxZoomDialog, ViewLayoutSpinHdl, MetricField *, pEdt )
++{
++    if ( pEdt == &aColumnsEdit && !aColumnsBtn.IsChecked() )
++        return 0;
++
++    if ( 0 == aColumnsEdit.GetValue() % 2 )
++        aBookModeChk.Enable();
++    else
++    {
++        aBookModeChk.Check( sal_False );
++        aBookModeChk.Disable();
++    }
++
++    bModified |= TRUE;
++
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxZoomDialog, ViewLayoutCheckHdl, CheckBox *, pChk )
++{
++    if ( pChk == &aBookModeChk && !aColumnsBtn.IsChecked() )
++        return 0;
++
++    bModified |= TRUE;
++
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
+ IMPL_LINK( SvxZoomDialog, OKHdl, Button *, pBtn )
+ {
+ 	if ( bModified || &aOKBtn != pBtn )
+ 	{
+ #if TEST_LAYOUT
+-		SvxZoomItem aItem;
++		SvxZoomItem aZoomItem;
++		SvxViewLayoutItem aViewLayoutItem;
+ #else /* !TEST_LAYOUT */
+-		SvxZoomItem aItem( SVX_ZOOM_PERCENT, 0,
+-						   rSet.GetPool()->GetWhich( SID_ATTR_ZOOM ) );
+-
++        SvxZoomItem aZoomItem( SVX_ZOOM_PERCENT, 0, rSet.GetPool()->GetWhich( SID_ATTR_ZOOM ) );
++        SvxViewLayoutItem aViewLayoutItem( 0, false, rSet.GetPool()->GetWhich( SID_ATTR_VIEWLAYOUT ) );
+ #endif /* !TEST_LAYOUT */
++
+ 		if ( &aOKBtn == pBtn )
+ 		{
+ 			USHORT nFactor = GetFactor();
+@@ -456,14 +578,30 @@ IMPL_LINK( SvxZoomDialog, OKHdl, Button 
+ 			if ( SPECIAL_FACTOR == nFactor )
+ 			{
+ 				if ( aOptimalBtn.IsChecked() )
+-					aItem.SetType( SVX_ZOOM_OPTIMAL );
++                    aZoomItem.SetType( SVX_ZOOM_OPTIMAL );
+ 				else if ( aPageWidthBtn.IsChecked() )
+-					aItem.SetType( SVX_ZOOM_PAGEWIDTH );
++                    aZoomItem.SetType( SVX_ZOOM_PAGEWIDTH );
+ 				else if ( aWholePageBtn.IsChecked() )
+-					aItem.SetType( SVX_ZOOM_WHOLEPAGE );
++                    aZoomItem.SetType( SVX_ZOOM_WHOLEPAGE );
+ 			}
+ 			else
+-				aItem.SetValue( nFactor );
++                aZoomItem.SetValue( nFactor );
++
++            if ( aAutomaticBtn.IsChecked() )
++            {
++                aViewLayoutItem.SetValue( 0 );
++                aViewLayoutItem.SetBookMode( false );
++            }
++            if ( aSingleBtn.IsChecked() )
++            {
++                aViewLayoutItem.SetValue( 1 );
++                aViewLayoutItem.SetBookMode( false );
++            }
++            else if ( aColumnsBtn.IsChecked() )
++            {
++                aViewLayoutItem.SetValue( static_cast<USHORT>(aColumnsEdit.GetValue()) );
++                aViewLayoutItem.SetBookMode( aBookModeChk.IsChecked() );
++            }
+ 		}
+ 		else
+ 		{
+@@ -472,7 +610,11 @@ IMPL_LINK( SvxZoomDialog, OKHdl, Button 
+ 		}
+ #if !TEST_LAYOUT
+ 		pOutSet = new SfxItemSet( rSet );
+-		pOutSet->Put( aItem );
++        pOutSet->Put( aZoomItem );
++
++        // don't set attribute in case the whole viewlayout stuff is disabled:
++        if ( aViewLayoutFl.IsEnabled() )
++            pOutSet->Put( aViewLayoutItem );
+ 
+ 		// Wert aus dem UserEdit "uber den Dialog hinaus merken
+ 		SfxObjectShell* pSh = SfxObjectShell::Current();
+Index: toolkit/workben/layout/zoom.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/zoom.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/zoom.hxx	6 Mar 2008 12:09:14 -0000	1.2
++++ toolkit/workben/layout/zoom.hxx	20 Mar 2008 11:56:32 -0000	1.2.6.1
+@@ -77,16 +77,21 @@ class SvxZoomDialog : public SfxModalDia
+ {
+ private:
+     FixedLine           aZoomFl;
++    RadioButton         aOptimalBtn;
+ 	RadioButton 		aWholePageBtn;
+ 	RadioButton 		aPageWidthBtn;
+-	RadioButton 		aOptimalBtn;
+-    RadioButton         a200Btn;
+-	RadioButton 		a150Btn;
+ 	RadioButton 		a100Btn;
+-	RadioButton 		a75Btn;
+-	RadioButton 		a50Btn;
+     RadioButton         aUserBtn;
+ 	MetricField 		aUserEdit;
++
++    FixedLine           aViewLayoutFl;
++    RadioButton         aAutomaticBtn;
++    RadioButton         aSingleBtn;
++    RadioButton         aColumnsBtn;
++    MetricField         aColumnsEdit;
++    CheckBox            aBookModeChk;
++
++    FixedLine           aBottomFl;
+ 	OKButton  			aOKBtn;
+ 	CancelButton		aCancelBtn;
+ 	HelpButton			aHelpBtn;
+@@ -100,6 +105,9 @@ private:
+ #ifdef _SVX_ZOOM_CXX
+ 	DECL_LINK( UserHdl, RadioButton* );
+ 	DECL_LINK( SpinHdl, MetricField* );
++    DECL_LINK( ViewLayoutUserHdl, RadioButton* );
++    DECL_LINK( ViewLayoutSpinHdl, MetricField* );
++    DECL_LINK( ViewLayoutCheckHdl, CheckBox* );
+ 	DECL_LINK( OKHdl, Button* );
+ #endif
+ 
+Index: toolkit/workben/layout/zoom.xml
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/zoom.xml,v
+retrieving revision 1.2
+retrieving revision 1.2.6.2
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.2
+--- toolkit/workben/layout/zoom.xml	6 Mar 2008 12:09:26 -0000	1.2
++++ toolkit/workben/layout/zoom.xml	4 Apr 2008 09:13:34 -0000	1.2.6.2
+@@ -1,20 +1,21 @@
+ <?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated xml files are generated from this template by
++     transex3/layout/tralay.  !-->
+ 
+ <modaldialog xmlns="http://openoffice.org/2007/layout"
+              xmlns:cnt="http://openoffice.org/2007/layout/container"
+-             id="dialog" _title="Set Zoom" optimumsize="true"
++             id="RID_SVXDLG_ZOOM" _title="Zoom &amp; View Layout" optimumsize="true"
+ 	     help-id="SID_ATTR_ZOOM"
+              has_border="true" sizeable="true" moveable="true">
+     <vbox spacing="5" border="5">
++	<hbox spacing="0" border="0">
++	    <vbox spacing="5" border="5">
+ 	<fixedline id="FL_ZOOM" _text="Zoom factor" cnt:expand="true"/>
++		<radiobutton radiogroup="zoom" id="BTN_OPTIMAL"   _label="Optimal"/>
+ 	<radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
+ 	<radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" _label="Page Width"/>
+-	<radiobutton radiogroup="zoom" id="BTN_OPTIMAL"   _label="Optimal"/>
+-	<radiobutton radiogroup="zoom" id="BTN_200"   _label="200 %"/>
+-	<radiobutton radiogroup="zoom" id="BTN_150"   _label="15~0 %"/>
+ 	<radiobutton radiogroup="zoom" id="BTN_100"   _label="100 %"/>
+-	<radiobutton radiogroup="zoom" id="BTN_75"    _label="75 %"/>
+-	<radiobutton radiogroup="zoom" id="BTN_50"    _label="50 %"/>
+ 	<hbox cnt:expand="false" cnt:fill="true">
+ 	    <align cnt:expand="false" cnt:fill="true">
+ 		<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" _label="Variable"/>
+@@ -26,6 +27,27 @@
+ 			 right="true"
+ 			 cnt:expand="false"/>
+ 	</hbox>
++	    </vbox>
++	    <vbox spacing="5" border="5">
++		<fixedline id="FL_VIEWLAYOUT" _text="View layout" cnt:expand="true"/>
++		<radiobutton radiogroup="zoom" id="BTN_AUTOMATIC" _label="~Automatic"/>
++		<radiobutton radiogroup="zoom" id="BTN_SINGLE"    _label="~Single page"/>
++		<hbox cnt:expand="false" cnt:fill="true">
++		    <align cnt:expand="false" cnt:fill="true">
++			<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_COLUMNS" _label="~Columns"/>
++		    </align>
++		    <flow cnt:padding="10" cnt:expand="false"/>
++		    <metricfield id="ED_COLUMNS" value-step="1"
++				 repeat="true" has_border="true" spin="true"
++				 _text="100%"
++				 right="true"
++				 spin-value-min="1"
++				 spin-value="1"
++				 cnt:expand="false"/>
++		</hbox>
++		<hbox><flow cnt:expand="false" cnt:padding="10"/><checkbox id="CHK_BOOK" _label="~Book mode"/></hbox>
++	    </vbox>
++	</hbox>
+         <fixedline cnt:padding="1" id="FL_BOTTOM"/>
+ 	<dialogbuttonhbox border="5" spacing="5">
+ 	    <flow/>
+Index: toolkit/workben/layout/zoom_def.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/workben/layout/zoom_def.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.6.1
+diff -p -u -u -p -b -w -B -r1.2 -r1.2.6.1
+--- toolkit/workben/layout/zoom_def.hxx	6 Mar 2008 12:09:37 -0000	1.2
++++ toolkit/workben/layout/zoom_def.hxx	20 Mar 2008 11:56:32 -0000	1.2.6.1
+@@ -1,3 +1,38 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++ *    MA  02110-1301  USA
++ *
++ ************************************************************************/
++
+ #ifndef _SVX_ZOOM_DEF_HXX
+ #define _SVX_ZOOM_DEF_HXX
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xmlsecurity-no-moz.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xmlsecurity-no-moz.diff
@@ -0,0 +1,25 @@
+--- xmlsecurity/source/xmlsec/makefile.mk	7 Nov 2007 10:06:47 -0000	1.10
++++ xmlsecurity/source/xmlsec/makefile.mk	7 Mar 2008 14:37:05 -0000
+@@ -45,6 +45,11 @@ ENABLE_EXCEPTIONS = TRUE
+ .INCLUDE :  settings.mk
+ .INCLUDE :	$(PRJ)$/util$/target.pmk
+ 
++.IF "$(WITH_MOZILLA)" == "NO"
++@all:
++	@echo "No mozilla -> no nss -> no libxmlsec -> no xmlsecurity..."
++.ENDIF
++
+ .IF "$(SYSTEM_LIBXML)" == "YES"
+ CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
+ .ENDIF
+@@ -53,10 +58,6 @@ CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
+ CDEFS += -DXMLSEC_CRYPTO_MSCRYPTO -DXMLSEC_NO_XSLT
+ .ELSE
+ CDEFS += -DXMLSEC_CRYPTO_NSS -DXMLSEC_NO_XSLT
+-.IF "$(WITH_MOZILLA)" == "NO"
+-@all:
+-	@echo "No mozilla -> no nss -> no libxmlsec -> no xmlsecurity.."
+-.ENDIF
+ .ENDIF
+ 
+ # --- Files --------------------------------------------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-change-record-dnd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-change-record-dnd.diff
@@ -0,0 +1,45 @@
+diff -u -r ../src680-m79.bak/sc/source/ui/docshell/dbdocimp.cxx sc/source/ui/docshell/dbdocimp.cxx
+--- ../src680-m79.bak/sc/source/ui/docshell/dbdocimp.cxx	2005-03-09 10:21:05.000000000 +0530
++++ sc/source/ui/docshell/dbdocimp.cxx	2005-03-14 16:43:44.251843333 +0530
+@@ -100,6 +100,7 @@
+ #include "dbdocutl.hxx"
+ #include "editable.hxx"
+ #include "hints.hxx"
++#include "chgtrack.hxx"
+ 
+ using namespace com::sun::star;
+ 
+@@ -249,6 +250,8 @@
+         const SbaSelectionList* pSelection, BOOL bRecord, BOOL bAddrInsert )
+ {
+ 	ScDocument* pDoc = rDocShell.GetDocument();
++	ScChangeTrack *pChangeTrack = NULL;
++	ScRange aChangedRange;
+ 
+ 	if (bRecord && !pDoc->IsUndoEnabled())
+ 		bRecord = FALSE;
+@@ -523,11 +526,9 @@
+ 			nErrStringId = aTester.GetMessageId();
+ 			bSuccess = FALSE;
+ 		}
+-		else if ( pDoc->GetChangeTrack() != NULL )
+-		{
+-			nErrStringId = STR_PROTECTIONERR;
+-			bSuccess = FALSE;
+-		}
++		else if ( (pChangeTrack = pDoc->GetChangeTrack()) != NULL )
++			aChangedRange = ScRange(rParam.nCol1, rParam.nRow1, nTab,
++						nEndCol+nFormulaCols, nEndRow, nTab );
+ 	}
+ 
+ 	if ( bSuccess && bMoveCells )
+@@ -742,6 +743,9 @@
+ 
+ 	delete pImportDoc;
+ 
++	if (bSuccess && pChangeTrack)
++		pChangeTrack->AppendInsert ( aChangedRange );
++
+ 	return bSuccess;
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-accept-uri-list-drop.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-accept-uri-list-drop.diff
@@ -0,0 +1,24 @@
+Index: sdview2.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/view/sdview2.cxx,v
+retrieving revision 1.49
+diff -u -p -r1.49 sdview2.cxx
+--- sd/source/ui/view/sdview2.cxx	1 Feb 2006 18:41:00 -0000	1.49
++++ sd/source/ui/view/sdview2.cxx	13 Jun 2006 16:39:10 -0000
+@@ -683,6 +683,7 @@ sal_Int8 View::AcceptDrop( const AcceptD
+                     const BOOL  bString = rTargetHelper.IsDropFormatSupported( FORMAT_STRING );
+                     const BOOL  bRTF = rTargetHelper.IsDropFormatSupported( FORMAT_RTF );
+                     const BOOL  bFile = rTargetHelper.IsDropFormatSupported( FORMAT_FILE );
++                    const BOOL  bFileList = rTargetHelper.IsDropFormatSupported( FORMAT_FILE_LIST );
+ 
+ 					if( mpDropMarker )
+ 					{
+@@ -693,7 +694,7 @@ sal_Int8 View::AcceptDrop( const AcceptD
+ 	    			if( bBookmark && bFile && ( nDropAction & DND_ACTION_MOVE ) && ( !mpViewSh || mpViewSh->GetSlideShow() ) )
+ 		    			bBookmark = FALSE;
+ 
+-				    if( bDrawing || bGraphic || bMtf || bBitmap || bBookmark || bFile || bXFillExchange || bSBAFormat || bEditEngine || bString || bRTF )
++				    if( bDrawing || bGraphic || bMtf || bBitmap || bBookmark || bFile || bXFillExchange || bSBAFormat || bEditEngine || bString || bRTF || bFileList )
+ 					    nRet = nDropAction;
+                 }
+     		}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-vcl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-vcl.diff
@@ -0,0 +1,16 @@
+--- vcl/prj/build.lst	2007-07-24 12:40:56.000000000 +0200
++++ vcl/prj/build.lst	2007-09-07 12:01:35.000000000 +0200
+@@ -37,4 +37,3 @@
+ vc	vcl\mac\source\src						nmake	-m	vc__srcm vc_inc NULL
+ vc	vcl\util								nmake	-	all	vc_util vc__plug.u vc__appa.u vc__appm.m vc__appu.u vc__appw.w vc__appp.p vc__gdia.u vc__gdim.m vc__gdiu.u vc__gdiw.w vc__gdip.p vc__srcm.m vc__srcw.w vc__srcp.p vc__wina.u vc__winm.m vc__winu.u vc__winw.w vc__winp.p vc__gtka.u vc__gtky.u vc__gtkw.u vc__gtkg.u vc__kde.u vc__hl.u vc_app vc_ctrl vc_gdi vc_hlp vc_src vc_win vc_glyphs vc_components NULL
+ vc  vcl\util\linksvp                        nmake   -   u   vc_lsvp vc_util NULL
+-vc	vcl\workben								nmake	-	all	vc_wrkb vc_util vc_salmain NULL
+--- vcl/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ vcl/prj/tests.lst	2007-09-07 16:27:10.000000000 +0200
+@@ -0,0 +1,6 @@
++#does not build: vc   vcl\qa\complex\memCheck                            nmake - all vc_qa_complex_memCheck NULL
++#does not build: vc   vcl\qa\complex\persistent_window_states            nmake - all vc_qa_complex_persistent_window_states NULL
++
++# older tests:
++vc   vcl\test                                           nmake - all vc_test vc_util NULL
++vc   vcl\workben                                        nmake - all vc_workben vc_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ark-experimental-gcj-use-ecj.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ark-experimental-gcj-use-ecj.diff
@@ -0,0 +1,115 @@
+--- solenv/bin/deliver.pl.ark	2006-04-30 15:41:17.000000000 +0200
++++ solenv/bin/deliver.pl	2006-04-30 15:46:00.000000000 +0200
+@@ -771,7 +771,7 @@ sub cachejar {
+             return;
+         }
+         my $to = $todir."lib".$lib.".so";
+-        my $JAVALINKER = "$ENV{JAVACOMPILER} -shared -fPIC -Wl,-Bsymbolic -O2 -findirect-dispatch -fjni -o";
++        my $JAVALINKER = "$ENV{JAVABINCOMPILER} -shared -fPIC -Wl,-Bsymbolic -O2 -findirect-dispatch -fjni -o";
+         print "CACHEJAR: $file -> $to with $ENV{GCJ_DATABASE}\n";
+         print "Caching 1/2: $JAVALINKER $to $file\n";
+         system("$JAVALINKER $to $file");
+--- solenv/inc/settings.mk.ark	2006-04-30 15:32:26.000000000 +0200
++++ solenv/inc/settings.mk	2006-04-30 15:50:23.000000000 +0200
+@@ -189,7 +189,9 @@ JAVADOC=javadoc -J-Xmx120m
+ JAVAC=$(JAVACOMPILER)
+ JAVAI=$(JAVAINTERPRETER)
+ .IF "$(JAVACACHE)" != ""
++.IF "$(JAVACOMPILER)" == "gcj"
+ JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C
++.ENDIF
+ JAVAI+=-Dgnu.gcj.precompiled.db.path=$(GCJ_DATABASE)
+ .ENDIF
+ 
+--- config_office/configure.in.ark	2006-04-30 15:34:43.000000000 +0200
++++ config_office/configure.in	2006-04-30 15:46:00.000000000 +0200
+@@ -2170,8 +2170,19 @@ dnl ====================================
+ dnl Checks for javac
+ dnl ===================================================================
+ if test "$SOLAR_JAVA" != ""; then
++    javabincompiler=""
+     if test "$JDK" = "gcj"; then 
+-        javacompiler=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g" | $SED -e "s/java/javac/g"`
++        javabincompiler=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g" | $SED -e "s/java/javac/g"`
++        javacompiler="javac"
++        if test -z "$with_jdk_home"; then
++            AC_PATH_PROG(JAVABINCOMPILER, $javabincompiler)
++        else
++            _javac_path="$with_jdk_home/bin/$javabincompiler"
++            dnl Check if there is a java compiler at all.
++            if test -x "$_gcj_path"; then
++                JAVABINCOMPILER=$_gcj_path
++            fi
++        fi
+     else
+         javacompiler="javac"
+     fi
+@@ -2278,7 +2289,7 @@ fi
+ dnl ===================================================================
+ dnl Check for optional gcj-dbtool, use if compiler is gcj
+ dnl ===================================================================
+-if test `$JAVACOMPILER --version 2>&1 | grep -c "gcj"` -gt 0; then
++if test `$JAVAINTERPRETER --version 2>&1 | grep -c "gcj"` -gt 0; then
+    if test `echo $WITH_JAVA | grep -c "gij"` -eq 0; then
+       javacache="gcj-dbtool"
+    else
+@@ -2301,6 +2312,7 @@ fi
+ AC_SUBST(JAVA_HOME)
+ AC_SUBST(JDK)
+ AC_SUBST(JAVAINTERPRETER)
++AC_SUBST(JAVABINCOMPILER)
+ AC_SUBST(JAVACOMPILER)
+ AC_SUBST(JAVACACHE)
+ AC_SUBST(JAVADOC)
+@@ -4803,12 +4815,7 @@ cat > conftest.xml << EOF
+     </project>
+ EOF
+   oldJAVA_HOME=$JAVA_HOME
+-  if test "$JDK" = "gcj"; then
+-    JAVA_HOME=; export JAVA_HOME
+-    ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2"
+-  else
+-    ant_cmd="$ANT -buildfile conftest.xml 1>&2"
+-  fi
++  ant_cmd="$ANT -buildfile conftest.xml 1>&2"
+   AC_TRY_EVAL(ant_cmd)
+   if test $? = 0 && test -f ./conftest.class ; then
+     AC_MSG_RESULT([Ant works]) 
+--- config_office/set_soenv.in.ark	2006-04-30 15:34:43.000000000 +0200
++++ config_office/set_soenv.in	2006-04-30 15:46:00.000000000 +0200
+@@ -1673,6 +1673,7 @@ if ( '@JDK@' ne '' )
+    ToFile( "JDK",             "@JDK@",           "e" );
+    ToFile( "JAVAINTERPRETER", "@JAVAINTERPRETER@","e" );
+    ToFile( "JAVACOMPILER",    "@JAVACOMPILER@",  "e" );
++   ToFile( "JAVABINCOMPILER", "@JAVABINCOMPILER@",  "e" );
+    ToFile( "JAVADOC",         "@JAVADOC@",       "e" );
+ }
+ if ( $platform =~ m/darwin/ )
+--- xmlhelp/source/com/sun/star/help/makefile.mk.ark	2006-04-30 15:41:17.000000000 +0200
++++ xmlhelp/source/com/sun/star/help/makefile.mk	2006-04-30 15:46:00.000000000 +0200
+@@ -124,7 +124,7 @@ JAVACLASSFILES += \
+ .IF "$(JDK)"=="gcj"
+ 
+ $(BIN)$/HelpLinker:
+-	$(JAVACOMPILER) --main=com.sun.star.help.HelpLinker -o $(BIN)$/HelpLinker \
++	$(JAVABINCOMPILER) --main=com.sun.star.help.HelpLinker -o $(BIN)$/HelpLinker \
+ 		-O2 -Wl,-Bsymbolic -findirect-dispatch -fjni -fno-assert -Wno-deprecated \
+ 		$(JAVACPS) $(CLASSPATH) $(JAVAFILES) $(SOLARLIB) -L$(LB) \
+ 		-Djavax.xml.datatype.DatatypeFactory=org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl \
+@@ -139,14 +139,14 @@ $(BIN)$/HelpLinker:
+ $(BIN)$/HelpLinker: $(LB)$/libdb.jar.a
+ 
+ $(LB)$/libdb.jar.a:
+-	$(JAVACOMPILER) -c -O2 -findirect-dispatch -fjni $(DB_JAR) -o $(LB)$/libdb.jar.a
++	$(JAVABINCOMPILER) -c -O2 -findirect-dispatch -fjni $(DB_JAR) -o $(LB)$/libdb.jar.a
+ .ENDIF
+ 
+ .IF "$(SYSTEM_XT)"=="YES"
+ $(BIN)$/HelpLinker: $(LB)$/libxt.jar.a
+ 
+ $(LB)$/libxt.jar.a:
+-	$(JAVACOMPILER) -c -O2 -findirect-dispatch -fjni $(XT_JAR) -o $(LB)$/libxt.jar.a
++	$(JAVABINCOMPILER) -c -O2 -findirect-dispatch -fjni $(XT_JAR) -o $(LB)$/libxt.jar.a
+ .ENDIF
+ 
+ .ELSE
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-common-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-common-scp2.diff
@@ -0,0 +1,27 @@
+--- scp2/source/ooo/file_library_ooo.scp	2004-11-15 11:46:49.141039128 +0100
++++ scp2/source/ooo/file_library_ooo.scp	2004-11-15 11:49:31.741320128 +0100
+@@ -649,6 +649,24 @@ File gid_File_Lib_Fps_Gnome
+ #endif
+ #endif
+ #endif
++#ifdef ENABLE_KDE
++#ifndef MACOSX
++File gid_File_Lib_Fps_Kde
++    TXT_FILE_BODY;
++    Styles = (PACKED,UNO_COMPONENT);
++    RegistryID = gid_Starregistry_Services_Rdb;
++    Dir = gid_Dir_Program;
++    Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde.uno);
++    Regmergefile = "fps-kde-ucd.txt";
++End
++File gid_File_Bin_KdeFilePicker
++    BIN_FILE_BODY;
++    Styles = (PACKED);
++    Dir = gid_Dir_Program;
++    Name = "kdefilepicker";
++End
++#endif
++#endif
+ #endif
+ 
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svg-import.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svg-import.diff
@@ -0,0 +1,1529 @@
+--- filter/prj/build.lst	30 Oct 2006 08:51:08 -0000	1.25
++++ filter/prj/build.lst	19 Jun 2007 07:19:44 -0000
+@@ -1,4 +1,4 @@
+-fl	filter	:	svtools unotools goodies xmloff cppu tools cppuhelper sal svx javaunohelper jvmaccess XALAN:xalan LIBXSLT:libxslt NULL
++fl	filter	:	svtools unotools goodies xmloff cppu tools cppuhelper sal svx javaunohelper jvmaccess XALAN:xalan LIBXSLT:libxslt LIBSVG:libsvg NULL
+ fl	filter									usr1	-	all	fl_mkout			NULL
+ fl	filter\prj								get		-	all	fl_prj				NULL
+ fl	filter\inc								nmake	-	all	fl_inc				NULL
+--- filter/source/config/fragments/fcfg_drawgraphics.mk	2005-03-21 12:45:41.000000000 +0100
++++ filter/source/config/fragments/fcfg_drawgraphics.mk	2007-06-14 11:55:42.000000000 +0200
+@@ -54,6 +54,7 @@ F4_DRAWGRAPHICS = \
+     SGF___StarOffice_Writer_SGF \
+     SGV___StarDraw_2_0 \
+     SVM___StarView_Metafile \
++    SVG___Scalable_Vector_Graphics \
+     TGA___Truevision_TARGA \
+     TIF___Tag_Image_File \
+     WMF___MS_Windows_Metafile \
+--- filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	2007-06-14 11:55:42.000000000 +0200
+@@ -0,0 +1,13 @@
++	<node oor:name="SVG - Scalable Vector Graphics" oor:op="replace">
++		<prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop>
++		<prop oor:name="UserData"><value></value></prop>
++		<prop oor:name="UIName">
++			<value xml:lang="x-default">SVG - Scalable Vector Graphics</value>
++		</prop>
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
++	</node>
+--- filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	20 Jul 2005 11:40:16 -0000	1.6
++++ filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	14 Jun 2007 14:41:57 -0000
+@@ -1,12 +1,12 @@
+ 	<node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace" >
+-		<prop oor:name="DetectService"/>
++		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ 		<prop oor:name="URLPattern"/>
+ 		<prop oor:name="Extensions"><value>svg</value></prop>
+ 		<prop oor:name="MediaType"><value>image/svg+xml</value></prop>
+-		<prop oor:name="Preferred"><value>false</value></prop>
+-		<prop oor:name="PreferredFilter"/>
++		<prop oor:name="Preferred"><value>true</value></prop>
++		<prop oor:name="PreferredFilter"><value>SVG - Scalable Vector Graphics</value></prop>
+ 		<prop oor:name="UIName">
+ 			<value>SVG - Scalable Vector Graphics</value>
+ 		</prop>
+-		<prop oor:name="ClipboardFormat"/>
++		<prop oor:name="ClipboardFormat"><value>doctype:xmlns="http://www.w3.org/2000/svg"</value></prop>
+ 	</node>
+--- filter/source/svg/exports.map	2003-04-15 16:36:54.000000000 +0200
++++ filter/source/svg/exports.map	2007-06-14 11:55:42.000000000 +0200
+@@ -1,4 +1,4 @@
+-PDFFILTER_1_0 {
++SVGFILTER_1_0 {
+         global:
+                 component_getImplementationEnvironment;
+                 component_getFactory;
+@@ -6,4 +6,4 @@ PDFFILTER_1_0 {
+ 
+         local:
+                 *;
+-}; 
+\ Chybí znak konce řádku na konci souboru
++}; 
+--- filter/source/svg/makefile.mk	2007-02-06 14:53:59.000000000 +0100
++++ filter/source/svg/makefile.mk	2007-06-14 13:56:27.000000000 +0200
+@@ -42,17 +42,62 @@
+ # --- Settings ----------------------------------
+ 
+ .INCLUDE :  	settings.mk
++.INCLUDE :	libs.mk
++
++.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" || "$(GUI)$(COM)"=="WNTGCC"
++
++.IF "$(SYSTEM_LIBSVG)" == "YES"
++LIBSVG=$(LIBSVG_LIBS)
++.ELSE
++LIBSVG=-lsvglib
++.ENDIF
++
++JPEG=$(JPEG3RDLIB)
++
++.IF "$(SYSTEM_LIBXML)" == "YES"
++LIBXML=$(LIBXML_LIBS)
++.ELSE
++LIBXML=-lxml2
++.ENDIF
++
++.ELSE
++
++LIBSVG=$(LIBPRE) svglib.lib
++JPEG=$(LIBPRE) jpeglib.lib
++LIBXML=-lxml2
++
++.ENDIF
++
++.IF "$(SYSTEM_JPEG)" != "YES"
++INCPRE+=$(SOLARVER)$/$(INPATH)$/inc$/external
++.ENDIF
++
++.IF "$(SYSTEM_LIBXML)" == "YES"
++INCPRE+=$(LIBXML_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(INPATH)$/inc$/external
++.ENDIF
++
++.IF "$(SYSTEM_LIBSVG)" == "YES"
++INCPRE+=$(LIBSVG_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(INPATH)/inc$/libsvg
++.ENDIF
++
++
++#cheesy and does not work with anything that is not *nix
++LIBPNG=`pkg-config --libs libpng`
++INCPRE+=$(`pkg-config --cflags libpng`)
+ 
+ # --- Types -------------------------------------
+ 
+ SLOFILES=	$(SLO)$/svguno.obj			\
+ 			$(SLO)$/svgfilter.obj		\
++			$(SLO)$/svgimport.obj		\
+ 			$(SLO)$/svgexport.obj		\
+ 			$(SLO)$/svgfontexport.obj	\
+-			$(SLO)$/svgwriter.obj	
+-.IF "$(SOLAR_JAVA)"!=""
+-SLOFILES+=		$(SLO)$/svgimport.obj
+-.ENDIF
++			$(SLO)$/svgreader.obj		\
++			$(SLO)$/svgwriter.obj
+ 
+ # --- Library -----------------------------------
+ 
+@@ -61,20 +106,19 @@
+ SHL1STDLIBS=\
+ 	$(SVXLIB)			\
+ 	$(XMLOFFLIB)		\
+-	$(GOODIESLIB)		\
++	$(BASEGFXLIB)		\
+ 	$(VCLLIB)			\
+ 	$(UNOTOOLSLIB)		\
+ 	$(TOOLSLIB)			\
+ 	$(COMPHELPERLIB)	\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+-	$(SALLIB) 
+-
+-.IF "$(SOLAR_JAVA)"!=""
+-SHL1STDLIBS+=\
+-	$(JVMACCESSLIB)
+-.ENDIF
+-
++	$(SALLIB)			\
++	$(LIBSVG)			\
++	$(LIBXML)			\
++	$(JPEG)				\
++	$(LIBPNG)			\
++	$(ZLIB3RDLIB)
+ 
+ SHL1DEPN=
+ SHL1IMPLIB=	i$(SHL1TARGET)
+--- filter/source/svg/SOTranscoder.java	2005-09-08 23:54:21.000000000 +0200
++++ filter/source/svg/SOTranscoder.java	1970-01-01 01:00:00.000000000 +0100
+@@ -1,53 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: SOTranscoder.java,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: rt $ $Date: 2005/09/08 21:54:21 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-import java.io.*;
+-import org.apache.batik.transcoder.image.PNGTranscoder;
+-import org.apache.batik.transcoder.TranscoderInput;
+-import org.apache.batik.transcoder.TranscoderOutput;
+-
+-public class SOTranscoder
+-{
+-    public static void main(String [] args) throws Exception 
+-	{
+-        PNGTranscoder	aTranscoder = new PNGTranscoder();
+-        OutputStream	aOStm = new FileOutputStream( args[ 1 ] );
+-
+-        aTranscoder.transcode( new TranscoderInput( new File( args[ 0 ] ).toURL().toString() ), new TranscoderOutput( aOStm ) );
+-
+-        aOStm.flush();
+-        aOStm.close();
+-    }
+-}
+--- filter/source/svg/svgfilter.cxx	2007-06-14 11:52:22.000000000 +0200
++++ filter/source/svg/svgfilter.cxx	2007-06-14 11:55:42.000000000 +0200
+@@ -96,12 +96,9 @@ sal_Bool SAL_CALL SVGFilter::filter( con
+     if( pFocusWindow )
+     	pFocusWindow->EnterWait();
+ 
+-#ifdef SOLAR_JAVA
+     if( mxDstDoc.is() )
+         bRet = implImport( rDescriptor );
+-    else
+-#endif
+-    if( mxSrcDoc.is() )
++    else if( mxSrcDoc.is() )
+ 	{
+ 		uno::Reference< frame::XDesktop > xDesktop( mxMSF->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.frame.Desktop" ) ), 
+ 													uno::UNO_QUERY);
+@@ -169,13 +166,11 @@ void SAL_CALL SVGFilter::setSourceDocume
+ 
+ // -----------------------------------------------------------------------------
+ 
+-#ifdef SOLAR_JAVA
+ void SAL_CALL SVGFilter::setTargetDocument( const Reference< XComponent >& xDoc ) 
+ 	throw (::com::sun::star::lang::IllegalArgumentException, RuntimeException)
+ {
+ 	mxDstDoc = xDoc;
+ }
+-#endif
+ 
+ // -----------------------------------------------------------------------------
+ 
+--- filter/source/svg/svgfilter.hxx	2006-12-01 15:30:42.000000000 +0100
++++ filter/source/svg/svgfilter.hxx	2007-06-14 11:55:42.000000000 +0200
+@@ -57,11 +57,9 @@
+ #ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
+ #include <com/sun/star/document/XFilter.hpp>
+ #endif
+-#ifdef SOLAR_JAVA
+ #ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_
+ #include <com/sun/star/document/XImporter.hpp>
+ #endif
+-#endif // SOLAR_JAVA
+ #ifndef _COM_SUN_STAR_DOCUMENT_XEXPORTER_HPP_
+ #include <com/sun/star/document/XExporter.hpp>
+ #endif
+@@ -77,18 +75,9 @@
+ #ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
+ #include <com/sun/star/lang/XComponent.hpp>
+ #endif
+-#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+-#include <cppuhelper/implbase1.hxx>
+-#endif
+-#ifdef SOLAR_JAVA
+ #ifndef _CPPUHELPER_IMPLBASE5_HXX_
+ #include <cppuhelper/implbase5.hxx>
+ #endif
+-#else // !SOLAR_JAVA
+-#ifndef _CPPUHELPER_IMPLBASE4_HXX_
+-#include <cppuhelper/implbase4.hxx>
+-#endif
+-#endif
+ #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ #endif
+@@ -113,9 +102,6 @@
+ #ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_
+ #include <com/sun/star/frame/XDesktop.hpp>
+ #endif
+-#include <com/sun/star/java/XJavaVM.hpp>
+-#include <com/sun/star/java/XJavaThreadRegister_11.hpp>
+-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ 
+ #include <hash_map>
+ #include <osl/diagnose.h>
+@@ -137,14 +123,12 @@
+ #include <svx/svdobj.hxx>
+ #include <xmloff/xmlexp.hxx>
+ 
+-#include "svgfilter.hxx"
+ #include "svgscript.hxx"
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::beans;
+-using namespace ::com::sun::star::java;
+ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::presentation;
+ using namespace ::com::sun::star::document;
+@@ -231,18 +215,11 @@ class SVGFontExport;
+ class SVGActionWriter;
+ class EditFieldInfo;
+ 
+-#ifdef SOLAR_JAVA
+ class SVGFilter : public cppu::WeakImplHelper5 < XFilter,
+ 											     XImporter,
+                                                  XExporter,
+ 												 XInitialization,
+ 												 XServiceInfo >
+-#else // !SOLAR_JAVA
+-class SVGFilter : public cppu::WeakImplHelper4 < XFilter,
+-                                                 XExporter,
+-                                                 XInitialization,
+-                                                 XServiceInfo >
+-#endif
+ {
+ 	typedef ::std::hash_map< Reference< XInterface >, ObjectRepresentation, HashReferenceXInterface > ObjectMap;
+ 
+@@ -259,15 +236,11 @@ private:
+ 
+ 	ObjectMap*							mpObjects;
+ 	Reference< XComponent >				mxSrcDoc;
+-#ifdef SOLAR_JAVA
+ 	Reference< XComponent >				mxDstDoc;
+-#endif
+ 	Reference< XDrawPage > 				mxDefaultPage;
+ 	Link								maOldFieldHdl;
+ 
+-#ifdef SOLAR_JAVA
+     sal_Bool                            implImport( const Sequence< PropertyValue >& rDescriptor ) throw (RuntimeException);
+-#endif
+ 
+     sal_Bool                            implExport( const Sequence< PropertyValue >& rDescriptor ) throw (RuntimeException);
+     Reference< XDocumentHandler >       implCreateExportDocumentHandler( const Reference< XOutputStream >& rxOStm );
+@@ -306,10 +279,8 @@ protected:
+     virtual sal_Bool SAL_CALL filter( const Sequence< PropertyValue >& rDescriptor ) throw(RuntimeException);
+     virtual void SAL_CALL cancel( ) throw (RuntimeException);
+ 
+-#ifdef SOLAR_JAVA
+ 	// XImporter
+     virtual void SAL_CALL setTargetDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
+-#endif
+ 
+ 	// XExporter
+     virtual void SAL_CALL setSourceDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
+--- filter/source/svg/svgimport.cxx	2006-12-01 15:31:12.000000000 +0100
++++ filter/source/svg/svgimport.cxx	2007-06-14 11:55:42.000000000 +0200
+@@ -37,8 +37,409 @@
+ #include "precompiled_filter.hxx"
+ 
+ #include "svgfilter.hxx" 
++#include "svgreader.hxx" 
++
++#include <svg.h>
++
+ #include "rtl/ref.hxx"
+-#include "jvmaccess/virtualmachine.hxx"
++
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++
++#include <iostream>
++
++// ----------------------------------------------
++// libsvg callbacks
++static svg_status_t impl_BeginGroup( void *closure, double opacity )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    pReader->BeginGroup();
++    // FIXME set opacity?
++    
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_BeginElement( void *closure )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    pReader->BeginElement();
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_EndElement( void *closure )
++{
++    // nothing to do...
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_EndGroup( void *closure, double opacity )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    // FIXME set opacity?
++
++    return pReader->EndGroup()? SVG_STATUS_SUCCESS: SVG_STATUS_PARSE_ERROR;
++}
++
++static svg_status_t impl_MoveTo( void *closure, double x, double y )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "move_to\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_LineTo( void *closure, double x, double y )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "line_to\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_CurveTo( void *closure,
++        double x1, double y1,
++        double x2, double y2,
++        double x3, double y3 )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "curve_to\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_QuadraticCurveTo( void *closure,
++        double x1, double y1,
++        double x2, double y2 )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "quadratic_curve_to\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_ArcTo( void *closure,
++        double rx,
++        double ry,
++        double x_axis_rotation,
++        int    large_arc_flag,
++        int    sweep_flag,
++        double x,
++        double y )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "arc_to\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_ClosePath( void *closure )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "close_path\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetColor( void *closure, const svg_color_t *color )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_color\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFillOpacity( void *closure, double fill_opacity )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_fill_opacity\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFillPaint( void *closure, const svg_paint_t *paint )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    pReader->CurrentAttr().SetFillPaint( paint );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFillRule( void *closure, svg_fill_rule_t fill_rule )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_fill_rule\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFontFamily( void *closure, const char *family )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_font_family\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFontSize( void *closure, double size )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_font_size\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFontStyle( void *closure, svg_font_style_t font_style )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_font_style\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetFontWeight( void *closure, unsigned int font_weight )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_font_weight\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetOpacity( void *closure, double opacity )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_opacity\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeDashArray( void *closure, double *dash_array, int num_dashes )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_stroke_dash_array\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeDashOffset( void *closure, svg_length_t *offset )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_stroke_dash_offset\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeLineCap( void *closure, svg_stroke_line_cap_t line_cap )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_stroke_line_cap\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeLineJoin( void *closure, svg_stroke_line_join_t line_join )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    
++    pReader->CurrentAttr().SetStrokeLineJoin( line_join );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeMiterLimit( void *closure, double limit )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_stroke_miter_limit\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeOpacity( void *closure, double stroke_opacity )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_stroke_opacity\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokePaint( void *closure, const svg_paint_t *paint )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    
++    pReader->CurrentAttr().SetStrokePaint( paint );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetStrokeWidth( void *closure, svg_length_t *width )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    
++    pReader->CurrentAttr().SetStrokeWidth( width );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetTextAnchor( void *closure, svg_text_anchor_t text_anchor )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "set_text_anchor\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_Transform( void *closure,
++        double a, double b,
++        double c, double d,
++        double e, double f )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    
++    pReader->CurrentAttr().Transform( a, b, c, d, e, f );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_ApplyViewBox( void *closure,
++        svg_view_box_t view_box,
++        svg_length_t *width,
++        svg_length_t *height )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "apply_view_box\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_SetViewportDimension( void *closure,
++			    	     svg_length_t *width,
++			    	     svg_length_t *height )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    pReader->SetViewportDimension( width, height );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_RenderLine( void *closure,
++        svg_length_t *x1,
++        svg_length_t *y1,
++        svg_length_t *x2,
++        svg_length_t *y2 )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "render_line\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_RenderPath( void *closure )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "render_path\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_RenderEllipse( void *closure,
++        svg_length_t *cx,
++        svg_length_t *cy,
++        svg_length_t *rx,
++        svg_length_t *ry )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    return pReader->Ellipse( cx, cy, rx, ry )? SVG_STATUS_SUCCESS: SVG_STATUS_PARSE_ERROR;
++}
++
++static svg_status_t impl_RenderRect( void *closure,
++        svg_length_t *x,
++        svg_length_t *y,
++        svg_length_t *width,
++        svg_length_t *height,
++        svg_length_t *rx,
++        svg_length_t *ry )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++
++    return pReader->Rect( x, y, width, height, rx, ry )? SVG_STATUS_SUCCESS: SVG_STATUS_PARSE_ERROR;
++}
++
++static svg_status_t impl_RenderText( void *closure,
++        svg_length_t *x,
++        svg_length_t *y,
++        const char   *utf8 )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "render_text\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_status_t impl_RenderImage( void *closure,
++        unsigned char *data,
++        unsigned int data_width,
++        unsigned int data_height,
++        svg_length_t *x,
++        svg_length_t *y,
++        svg_length_t *width,
++        svg_length_t *height )
++{
++    SVGReader *pReader = static_cast<SVGReader*>( closure );
++    fprintf( stderr, "render_image\n" );
++
++    return SVG_STATUS_SUCCESS;
++}
++
++static svg_render_engine_t aRenderEngine =
++{
++    impl_BeginGroup,
++    impl_BeginElement,
++    impl_EndElement,
++    impl_EndGroup,
++
++    impl_MoveTo,
++    impl_LineTo,
++    impl_CurveTo,
++    impl_QuadraticCurveTo,
++    impl_ArcTo,
++    impl_ClosePath,
++
++    impl_SetColor,
++    impl_SetFillOpacity,
++    impl_SetFillPaint,
++    impl_SetFillRule,
++    impl_SetFontFamily,
++    impl_SetFontSize,
++    impl_SetFontStyle,
++    impl_SetFontWeight,
++    impl_SetOpacity,
++    impl_SetStrokeDashArray,
++    impl_SetStrokeDashOffset,
++    impl_SetStrokeLineCap,
++    impl_SetStrokeLineJoin,
++    impl_SetStrokeMiterLimit,
++    impl_SetStrokeOpacity,
++    impl_SetStrokePaint,
++    impl_SetStrokeWidth,
++    impl_SetTextAnchor,
++
++    impl_Transform,
++    impl_ApplyViewBox,
++    impl_SetViewportDimension,
++    
++    impl_RenderLine,
++    impl_RenderPath,
++    impl_RenderEllipse,
++    impl_RenderRect,
++    impl_RenderText,
++    impl_RenderImage
++};
++
+ // -------------
+ // - SVGFilter -
+ // -------------
+@@ -46,6 +447,105 @@
+ sal_Bool SVGFilter::implImport( const Sequence< PropertyValue >& rDescriptor )
+ 	throw (RuntimeException)
+ {
++    // get the filename
++    rtl::OUString						aFileName;
++    sal_Int32							nLength = rDescriptor.getLength();
++    const PropertyValue*				pValue = rDescriptor.getConstArray();
++    sal_Bool							bRet = sal_False;
++
++    for( sal_Int32 i = 0 ; ( i < nLength ) && !aFileName.getLength(); i++)
++    {
++        if( pValue[ i ].Name.equalsAscii( "URL" ) )
++            pValue[ i ].Value >>= aFileName;
++    }
++    
++    if ( aFileName.getLength() && !aFileName.compareToAscii( "file://", 7 ) )
++        aFileName = aFileName.copy( 7 );
++    else
++        return sal_False; // FIXME cannot handle non-local files now...
++
++    std::cerr << "SVGFilter::implImport(); parsing " << aFileName << std::endl;
++
++    // access to the document
++    Reference< XDrawPagesSupplier > xDrawPagesSupplier( mxDstDoc, UNO_QUERY );
++    if ( !xDrawPagesSupplier.is() )
++        return sal_False;
++
++    Reference< XDrawPages > xDrawPages( xDrawPagesSupplier->getDrawPages() );
++    if ( !xDrawPages.is() || !xDrawPages->getCount() )
++        return sal_False;
++
++    Reference< XDrawPage > xDrawPage;
++    if ( !( xDrawPages->getByIndex( 0 ) >>= xDrawPage ) )
++        return sal_False;
++
++    Reference< XShapes > xShapes( xDrawPage, UNO_QUERY );
++
++    // parse the file
++    svg_t *pSvg;
++    SVGReader aReader( Reference< XMultiServiceFactory >( mxDstDoc, UNO_QUERY ), xShapes );
++
++    if ( svg_create( &pSvg ) != SVG_STATUS_SUCCESS )
++        return sal_False;
++
++    // FIXME be able to read from a stream instead of a filename
++    if ( svg_parse( pSvg, rtl::OUStringToOString( aFileName, RTL_TEXTENCODING_UTF8 ).getStr() ) != SVG_STATUS_SUCCESS )
++        return sal_False;
++
++    if ( svg_render( pSvg, &aRenderEngine, &aReader ) != SVG_STATUS_SUCCESS )
++        return sal_False;
++    
++    if ( svg_destroy( pSvg ) != SVG_STATUS_SUCCESS )
++        return sal_False;
++
++    /*
++    Reference< XPropertySet > xPagePropSet( xDrawPage, UNO_QUERY );
++
++    Reference< XShape >       xShape( Reference< XMultiServiceFactory >( mxDstDoc, UNO_QUERY )->createInstance(
++                rtl::OUString::createFromAscii( "com.sun.star.drawing.RectangleShape" ) ), UNO_QUERY );
++
++    if ( !xPagePropSet.is() || !xShapes.is() || !xShape.is() )
++        return sal_False;
++
++    Reference< XPropertySet > xPropSet( xShape, UNO_QUERY );
++    sal_Int32                 nPageWidth = 0, nPageHeight = 0;
++
++    if ( !xPropSet.is() ||
++         !( xPagePropSet->getPropertyValue( rtl::OUString::createFromAscii( "Width" ) ) >>= nPageWidth ) ||
++         !( xPagePropSet->getPropertyValue( rtl::OUString::createFromAscii( "Height" ) ) >>= nPageHeight ) )
++        return sal_False;
++
++    xShapes->add( xShape );
++
++    ::com::sun::star::awt::Point	aPos;
++    ::com::sun::star::awt::Size		aSize;
++//    GraphicObject					aGraphObj;
++//    String							aGraphURL( RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.GraphicObject:" ) );
++    Any								aValue;
++//    Size							aGraphicSize;
++    const MapMode					aTargetMapMode( MAP_100TH_MM );
++
++//    if( aGraphObj.GetPrefMapMode().GetMapUnit() == MAP_PIXEL )
++//        aGraphicSize = Application::GetDefaultDevice()->PixelToLogic( aGraphObj.GetPrefSize(), aTargetMapMode );
++//    else
++//        aGraphicSize = OutputDevice::LogicToLogic( aGraphObj.GetPrefSize(), aGraphObj.GetPrefMapMode(), aTargetMapMode );
++
++//    aGraphURL += String( aGraphObj.GetUniqueID(), RTL_TEXTENCODING_ASCII_US );
++//    aValue <<= rtl::OUString( aGraphURL );
++//    xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "GraphicURL" ) ), aValue );
++
++    aPos.X = 0;//( nPageWidth - aGraphicSize.Width() ) >> 1;
++    aPos.Y = 0;//( nPageHeight - aGraphicSize.Height() ) >> 1;
++
++    aSize.Width = 10000;//aGraphicSize.Width();
++    aSize.Height = 10000;//aGraphicSize.Height();
++
++    xShape->setPosition( aPos );
++    xShape->setSize( aSize );
++*/
++    return sal_True;
++
++#if 0
+     Reference< XMultiServiceFactory >	xServiceFactory( ::comphelper::getProcessServiceFactory() ) ;
+ 	rtl::OUString							aTmpFileName;
+ 	String								aFileName;
+@@ -192,5 +692,6 @@ sal_Bool SVGFilter::implImport( const Se
+         }            
+     }
+     return bRet;
++#endif
+ }
+     
+--- filter/source/svg/svgreader.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/svgreader.cxx	2007-06-14 13:54:23.000000000 +0200
+@@ -0,0 +1,496 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "svgreader.hxx"
++
++#include <unotools/processfactory.hxx>
++
++#include <iostream>
++
++using namespace ::com::sun::star;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::drawing;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::uno;
++using namespace ::basegfx;
++
++// consts //
++
++const double USER_UNIT = 10.0; // FIXME? 10.0 considered a nice magic value ;-)
++
++// forward declarations //
++
++// return svg_length_t in 100th's of mm
++sal_Int32 ToInt( const svg_length_t *length );
++
++// shapes & properties names //
++
++static const rtl::OUString RECTANGLE_SHAPE(        RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.RectangleShape" ) );
++static const rtl::OUString ELLIPSE_SHAPE(          RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.EllipseShape" ) );
++static const rtl::OUString SHAPE_COLLECTION(       RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.ShapeCollection" ) );
++
++static const rtl::OUString PROPERTY_CORNER_RADIUS( RTL_CONSTASCII_USTRINGPARAM( "CornerRadius" ) );
++
++static const rtl::OUString PROPERTY_LINE_STYLE(    RTL_CONSTASCII_USTRINGPARAM( "LineStyle" ) );
++static const rtl::OUString PROPERTY_LINE_COLOR(    RTL_CONSTASCII_USTRINGPARAM( "LineColor" ) );
++static const rtl::OUString PROPERTY_LINE_WIDTH(    RTL_CONSTASCII_USTRINGPARAM( "LineWidth" ) );
++static const rtl::OUString PROPERTY_LINE_JOINT(    RTL_CONSTASCII_USTRINGPARAM( "LineJoint" ) );
++
++static const rtl::OUString PROPERTY_FILL_STYLE(    RTL_CONSTASCII_USTRINGPARAM( "FillStyle" ) );
++static const rtl::OUString PROPERTY_FILL_COLOR(    RTL_CONSTASCII_USTRINGPARAM( "FillColor" ) );
++
++static const rtl::OUString PROPERTY_TRANSFORMATION(RTL_CONSTASCII_USTRINGPARAM( "Transformation" ) );
++
++// SVGAttributes //
++
++SVGAttributes::SVGAttributes()
++{
++}
++
++SVGAttributes& SVGAttributes::operator=( const SVGAttributes &rAttr )
++{
++    m_aLineStyle = rAttr.m_aLineStyle;
++    m_aLineColor = rAttr.m_aLineColor;
++    m_aLineWidth = rAttr.m_aLineWidth;
++    m_aLineJoint = rAttr.m_aLineJoint;
++
++    m_aFillStyle = rAttr.m_aFillStyle;
++    m_aFillColor = rAttr.m_aFillColor;
++
++    m_aTransform = rAttr.m_aTransform;
++
++    return *this;
++}
++
++void SVGAttributes::ApplyProperties( Reference< XPropertySet > &xPropertySet )
++{
++    if ( !xPropertySet.is() )
++        return;
++
++#define APPLY_PROPERTY( name, value ) \
++    if ( !!value && xPropertySet->getPropertySetInfo()->hasPropertyByName( name ) ) \
++    { \
++        xPropertySet->setPropertyValue( name, makeAny( *value ) ); \
++    }
++
++    APPLY_PROPERTY( PROPERTY_LINE_STYLE, m_aLineStyle );
++    APPLY_PROPERTY( PROPERTY_LINE_COLOR, m_aLineColor );
++    APPLY_PROPERTY( PROPERTY_LINE_WIDTH, m_aLineWidth );
++    APPLY_PROPERTY( PROPERTY_LINE_JOINT, m_aLineJoint );
++
++    APPLY_PROPERTY( PROPERTY_FILL_STYLE, m_aFillStyle );
++    APPLY_PROPERTY( PROPERTY_FILL_COLOR, m_aFillColor );
++
++#undef APPLY_PROPERTY
++}
++
++void SVGAttributes::ApplyTransformation( Reference< XPropertySet > &xPropertySet,
++        sal_Int32 nX, sal_Int32 nY,
++        sal_Int32 nWidth, sal_Int32 nHeight,
++        sal_Int32 nCenterX, sal_Int32 nCenterY )
++{
++    // shouldn't happen, but to be safe...
++    if ( nWidth == 0 )
++        nWidth = 1;
++    if ( nHeight == 0 )
++        nHeight = 1;
++
++    B2DHomMatrix aTransform;
++    aTransform.scale( nWidth, nHeight );
++    aTransform.translate( nX, nY );
++
++    if ( !!m_aTransform )
++        aTransform *= *m_aTransform;
++
++    /*if ( nCenterX != 0 || nCenterY != 0 )
++    {
++        fprintf( stderr, "Center: %d, %d\n", -nCenterX, -nCenterY );
++        Vector2D aCorrection( -nCenterX, -nCenterY );
++        aCorrection *= *m_aTransform;
++
++        Matrix3D aCorrectionMatrix;
++        aCorrectionMatrix.Translate( aCorrection );
++
++        fprintf( stderr, "Correction: %f, %f\n", aCorrection.X(), aCorrection.Y() );
++
++        aTransform *= aCorrectionMatrix;
++    }*/
++
++    HomogenMatrix3 aMatrix(
++            HomogenMatrixLine3( aTransform.get( 0, 0 ), aTransform.get( 0, 1 ), aTransform.get( 0, 2 ) ),
++            HomogenMatrixLine3( aTransform.get( 1, 0 ), aTransform.get( 1, 1 ), aTransform.get( 1, 2 ) ),
++            HomogenMatrixLine3( aTransform.get( 2, 0 ), aTransform.get( 2, 1 ), aTransform.get( 2, 2 ) ) );
++    
++    fprintf( stderr, "m_aTransform:\n  %f, %f, %f\n  %f, %f, %f\n  %f, %f, %f\n",
++            aTransform.get( 0, 0 ), aTransform.get( 0, 1 ), aTransform.get( 0, 2 ),
++            aTransform.get( 1, 0 ), aTransform.get( 1, 1 ), aTransform.get( 1, 2 ),
++            aTransform.get( 2, 0 ), aTransform.get( 2, 1 ), aTransform.get( 2, 2 ) );
++
++    fprintf( stderr, "Matrix:\n  %f, %f, %f\n  %f, %f, %f\n  %f, %f, %f\n",
++            aMatrix.Line1.Column1, aMatrix.Line1.Column2, aMatrix.Line1.Column3,
++            aMatrix.Line2.Column1, aMatrix.Line2.Column2, aMatrix.Line2.Column3,
++            aMatrix.Line3.Column1, aMatrix.Line3.Column2, aMatrix.Line3.Column3 );
++
++    xPropertySet->setPropertyValue( PROPERTY_TRANSFORMATION, makeAny( aMatrix ) );
++}
++
++void SVGAttributes::SetStrokePaint( const svg_paint_t *paint )
++{
++    if ( !paint )
++        return;
++
++    switch ( paint->type )
++    {
++        case SVG_PAINT_TYPE_NONE:
++            m_aLineStyle = boost::optional<LineStyle>(LineStyle_NONE);
++            break;
++
++        case SVG_PAINT_TYPE_COLOR:
++            m_aLineStyle = boost::optional<LineStyle>(LineStyle_SOLID);
++            m_aLineColor = boost::optional<sal_Int32>(( svg_color_get_red(   &(paint->p.color) ) << 16 ) +
++                           ( svg_color_get_green( &(paint->p.color) ) << 8 ) +
++                             svg_color_get_blue(  &(paint->p.color) ));
++            break;
++
++        case SVG_PAINT_TYPE_GRADIENT:
++            fprintf( stderr, "TODO paint type: GRADIENT\n" );
++            break;
++
++        case SVG_PAINT_TYPE_PATTERN:
++            fprintf( stderr, "TODO paint type: PATTERN\n" );
++            break;
++
++        default:
++            fprintf( stderr, "Unknown paint type\n" );
++    }
++}
++
++void SVGAttributes::SetStrokeWidth( const svg_length_t *width )
++{
++    m_aLineWidth = boost::optional<sal_Int32>(ToInt( width ));
++}
++
++void SVGAttributes::SetStrokeLineJoin( svg_stroke_line_join_t line_join )
++{
++    switch ( line_join )
++    {
++        case SVG_STROKE_LINE_JOIN_BEVEL: m_aLineJoint = boost::optional<LineJoint>(LineJoint_BEVEL); break;
++        case SVG_STROKE_LINE_JOIN_MITER: m_aLineJoint = boost::optional<LineJoint>(LineJoint_MITER); break;
++        case SVG_STROKE_LINE_JOIN_ROUND: m_aLineJoint = boost::optional<LineJoint>(LineJoint_ROUND); break;
++        default:
++            fprintf( stderr, "Unknown line join type\n" );
++    }
++}
++
++void SVGAttributes::SetFillPaint( const svg_paint_t *paint )
++{
++    if ( !paint )
++        return;
++
++    switch ( paint->type )
++    {
++        case SVG_PAINT_TYPE_NONE:
++            m_aFillStyle = boost::optional<FillStyle>(FillStyle_NONE);
++            break;
++
++        case SVG_PAINT_TYPE_COLOR:
++            m_aFillStyle = boost::optional<FillStyle>(FillStyle_SOLID);
++            m_aFillColor = boost::optional<sal_Int32>(( svg_color_get_red(   &(paint->p.color) ) << 16 ) +
++                           ( svg_color_get_green( &(paint->p.color) ) << 8 ) +
++                             svg_color_get_blue(  &(paint->p.color) ));
++            break;
++
++        case SVG_PAINT_TYPE_GRADIENT:
++            fprintf( stderr, "TODO paint type: GRADIENT\n" );
++            break;
++
++        case SVG_PAINT_TYPE_PATTERN:
++            fprintf( stderr, "TODO paint type: PATTERN\n" );
++            break;
++
++        default:
++            fprintf( stderr, "Unknown paint type\n" );
++    }
++}
++
++void SVGAttributes::Transform( double a, double b, double c, double d, double e, double f )
++{
++    fprintf( stderr, "abcdef: %f, %f, %f, %f, %f, %f\n",
++             a, b, c, d, e, f );
++
++    B2DHomMatrix aTransform;
++    aTransform.set( 0, 0, a );   aTransform.set( 0, 1, c );   aTransform.set( 0, 2, e*USER_UNIT );
++    aTransform.set( 1, 0, b );   aTransform.set( 1, 1, d );   aTransform.set( 1, 2, f*USER_UNIT );
++    aTransform.set( 2, 0, 0.0 ); aTransform.set( 2, 1, 0.0 ); aTransform.set( 2, 2, 1.0 );
++
++    if ( !!m_aTransform )
++        *m_aTransform *= aTransform;
++    else
++        m_aTransform = boost::optional<B2DHomMatrix>(aTransform);
++#if 0
++    Vector2D aTRScale;
++    double   fTRShear;
++    double   fTRRotate;
++    Vector2D aTRTranslate;
++    aTransform.DecomposeAndCorrect( aTRScale, fTRShear, fTRRotate, aTRTranslate );
++
++    fprintf( stderr, "Scale == ( %f, %f ), Shear == %f, Rotate == %f, Translate == ( %f, %f )\n",
++            aTRScale[0], aTRScale[1],
++            fTRShear,
++            fTRRotate,
++            aTRTranslate[0], aTRTranslate[1] );
++
++    m_aTransform =
++        HomogenMatrix3( HomogenMatrixLine3( a, c, e*USER_UNIT ),
++                        HomogenMatrixLine3( b, d, f*USER_UNIT ),
++                        HomogenMatrixLine3( 0.0, 0.0, 1.0 ) );
++
++//#if 0
++    Matrix3D aMatrix;
++    aMatrix.Rotate( 10.0 );
++    aMatrix.Translate( 100000.0, 50000.0 );
++
++    m_aTransform =
++        HomogenMatrix3( HomogenMatrixLine3( aMatrix[0][0], aMatrix[0][1], aMatrix[0][2] ),
++                        HomogenMatrixLine3( aMatrix[1][0], aMatrix[1][1], aMatrix[1][2] ),
++                        HomogenMatrixLine3( aMatrix[2][0], aMatrix[2][1], aMatrix[2][2] ) );
++#endif
++}
++
++// SVGGroup //
++
++SVGGroup::SVGGroup( const SVGAttributes &rAttr )
++    : m_aAttr( rAttr ),
++      m_xShapes( utl::getProcessServiceFactory()->createInstance( SHAPE_COLLECTION ), UNO_QUERY )
++{
++}
++
++Reference< XShapeGroup > SVGGroup::AsShapeGroup(const Reference< XShapeGrouper > &xShapeGrouper )
++{
++    return xShapeGrouper->group( m_xShapes );
++}
++
++void SVGGroup::Add( const Reference< XShape >& xShape )
++{
++    m_xShapes->add( xShape );
++}
++
++// SVGReader //
++
++SVGReader::SVGReader( const Reference< XMultiServiceFactory >& xServiceFactory,
++                      const Reference< XShapes >& xShapes )
++    : m_xServiceFactory( xServiceFactory ),
++      m_xShapes( xShapes ),
++      m_bReadingElement( false ),
++      m_aViewportSize( 1, 1 )
++{
++}
++
++SVGAttributes& SVGReader::CurrentAttr()
++{
++    if ( m_bReadingElement || m_aGroups.empty() )
++        return m_aElementAttr;
++    else
++        return m_aGroups.top().Attr();
++}
++
++void SVGReader::BeginElement()
++{
++    m_bReadingElement = true;
++
++    if ( m_aGroups.empty() )
++        m_aElementAttr = SVGAttributes();
++    else
++        m_aElementAttr = m_aGroups.top().Attr();
++}
++
++void SVGReader::BeginGroup()
++{
++    m_bReadingElement = false;
++
++    if ( m_aGroups.empty() )
++        m_aGroups.push( SVGGroup() );
++    else
++        m_aGroups.push( SVGGroup( m_aGroups.top().Attr() ) );
++}
++
++bool SVGReader::EndGroup()
++{
++    if ( m_aGroups.empty() )
++        return false; // error
++
++    Reference< XShapeGrouper > xShapeGrouper( m_xShapes, UNO_QUERY );
++
++    // group the shapes
++    Reference< XShape > xShape( m_aGroups.top().AsShapeGroup( xShapeGrouper ), UNO_QUERY );
++    m_aGroups.pop();
++
++    if ( m_aGroups.empty() )
++    {
++        sal_Int32 nPageWidth = 0, nPageHeight = 0;
++                                        
++        // get the page size
++        Reference< XPropertySet> xPagePropertySet( m_xShapes, UNO_QUERY );
++        xPagePropertySet->getPropertyValue( rtl::OUString::createFromAscii( "Width" ) ) >>= nPageWidth;
++        xPagePropertySet->getPropertyValue( rtl::OUString::createFromAscii( "Height" ) ) >>= nPageHeight;
++        
++        xShape->setSize( m_aViewportSize );
++//        xShape->setPosition( awt::Point( ( nPageWidth - m_aViewportSize.Width )/2,
++//                                         ( nPageHeight - m_aViewportSize.Height )/2 ) );
++
++        m_xShapes->add( xShape );
++    }
++    else
++        m_aGroups.top().Add( xShape );
++
++    return true;
++}
++
++void SVGReader::SetViewportDimension( svg_length_t *width, svg_length_t *height )
++{
++    m_aViewportSize = awt::Size( std::max( sal_Int32(1), ToInt( width ) ),
++                                 std::max( sal_Int32(1), ToInt( height ) ) );
++}
++
++bool SVGReader::Rect( svg_length_t *x, svg_length_t *y,
++        svg_length_t *width, svg_length_t *height,
++        svg_length_t *rx, svg_length_t *ry )
++{
++    if ( m_aGroups.empty() )
++        return false; // error
++
++    sal_Int32 nWidth  = ToInt( width );
++    sal_Int32 nHeight = ToInt( height );
++
++    if ( nWidth <= 0 || nHeight <= 0 )
++        return true; // no shape rendered
++
++    // create the shape
++    Reference< XPropertySet > xPropertySet;
++    CreateShape( RECTANGLE_SHAPE, xPropertySet );
++
++    // position, size, shear and rotate
++    m_aElementAttr.ApplyTransformation( xPropertySet,
++            ToInt( x ), ToInt( y ), nWidth, nHeight );
++    
++    // corner radius
++    sal_Int32 nRX = ToInt( rx );
++    sal_Int32 nRY = ToInt( ry );
++    if ( nRX != 0 || nRY != 0 )
++    {
++        if ( nRX == nRY || nRY == 0 )
++            xPropertySet->setPropertyValue( PROPERTY_CORNER_RADIUS, makeAny( nRX ) );
++        else if ( nRX == 0 )
++            xPropertySet->setPropertyValue( PROPERTY_CORNER_RADIUS, makeAny( nRY ) );
++        else
++        {
++            /* FIXME temporary! */
++            xPropertySet->setPropertyValue( PROPERTY_CORNER_RADIUS, makeAny( ( nRX + nRY )/2 ) );
++            fprintf( stderr, "Rect(): FIXME nRX != nRY - convert to a path according to the SVG spec.\n" );
++        }
++    }
++
++    return true;
++}
++
++bool SVGReader::Ellipse( svg_length_t *cx, svg_length_t *cy,
++        svg_length_t *rx, svg_length_t *ry )
++{
++    if ( m_aGroups.empty() )
++        return false; // error
++
++    sal_Int32 nX = ToInt( cx );
++    sal_Int32 nY = ToInt( cy );
++    sal_Int32 nRadiusX = ToInt( rx );
++    sal_Int32 nRadiusY = ToInt( ry );
++
++    if ( nRadiusX < 0 || nRadiusY < 0 )
++        return false; // error
++
++    if ( nRadiusX == 0 || nRadiusY == 0 )
++        return true; // no shape rendered
++
++    // create the shape
++    Reference< XPropertySet > xPropertySet;
++    CreateShape( ELLIPSE_SHAPE, xPropertySet );
++
++    Reference< XShape > xShape( xPropertySet, UNO_QUERY );
++    fprintf( stderr, "Position (before):\n  %d, %d\n", xShape->getPosition().X, xShape->getPosition().Y );
++            
++    // position, size, shear and rotate
++    m_aElementAttr.ApplyTransformation( xPropertySet,
++            nX, nY, 2*nRadiusX, 2*nRadiusY,
++            nRadiusX, nRadiusY);
++
++    fprintf( stderr, "Position (after):\n  %d, %d\n", xShape->getPosition().X, xShape->getPosition().Y );
++    
++    return true;
++}
++
++void SVGReader::CreateShape( const rtl::OUString & rServiceName,
++        Reference< XPropertySet > &xPropertySet )
++{
++    Reference< XShape > xShape( m_xServiceFactory->createInstance( rServiceName ), UNO_QUERY );
++
++    // add to the document and to the top group
++    m_xShapes->add( xShape );
++    m_aGroups.top().Add( xShape );
++
++    // properties for this shape
++    xPropertySet = Reference< XPropertySet>::query( xShape );
++    m_aElementAttr.ApplyProperties( xPropertySet );
++}
++
++sal_Int32 ToInt( const svg_length_t *length )
++{
++    if ( !length )
++        return 0;
++
++    switch ( length->unit )
++    {
++        case SVG_LENGTH_UNIT_CM: return sal_Int32( length->value * 1000.0 );
++        case SVG_LENGTH_UNIT_EM: fprintf( stderr, "TODO: legth type EM not implemented.\n" ); return 1000;
++        case SVG_LENGTH_UNIT_EX: fprintf( stderr, "TODO: legth type EX not implemented.\n" ); return 1000;
++        case SVG_LENGTH_UNIT_IN: return sal_Int32( length->value * 2540.0 );
++        case SVG_LENGTH_UNIT_MM: return sal_Int32( length->value * 100.0 );
++        case SVG_LENGTH_UNIT_PC: fprintf( stderr, "TODO: legth type PC not implemented.\n" ); return 1000;
++        case SVG_LENGTH_UNIT_PCT: fprintf( stderr, "TODO: legth type PCT not implemented.\n" ); return 1000;
++        case SVG_LENGTH_UNIT_PT: fprintf( stderr, "TODO: legth type PT not implemented.\n" ); return 1000;
++        case SVG_LENGTH_UNIT_PX: return sal_Int32( length->value * USER_UNIT );
++        default: fprintf( stderr, "Unknown length type\n" );
++    }
++
++    return 0;
++}
+--- filter/source/svg/svgreader.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/svgreader.hxx	2007-06-14 13:41:09.000000000 +0200
+@@ -0,0 +1,146 @@
++ /*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef SVGREADER_HXX
++#define SVGREADER_HXX
++
++#include <com/sun/star/beans/XPropertySet.hpp>
++#include <com/sun/star/drawing/FillStyle.hpp>
++#include <com/sun/star/drawing/HomogenMatrix3.hpp>
++#include <com/sun/star/drawing/LineDash.hpp>
++#include <com/sun/star/drawing/LineJoint.hpp>
++#include <com/sun/star/drawing/LineStyle.hpp>
++#include <com/sun/star/drawing/XShapeGroup.hpp>
++#include <com/sun/star/drawing/XShapeGrouper.hpp>
++#include <com/sun/star/drawing/XShapes.hpp>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#include <com/sun/star/uno/XInterface.hpp>
++#include <com/sun/star/util/Color.hpp>
++
++#include <basegfx/matrix/b2dhommatrix.hxx>
++
++#include <svg.h>
++
++#include <stack>
++#include <boost/optional.hpp>
++
++class SVGAttributes
++{
++    // TODO more attributes...
++    boost::optional< ::com::sun::star::drawing::LineStyle >      m_aLineStyle;
++    boost::optional< ::com::sun::star::util::Color >             m_aLineColor;
++    boost::optional< sal_Int32 >                                 m_aLineWidth;
++    boost::optional< ::com::sun::star::drawing::LineJoint >      m_aLineJoint;
++
++    boost::optional< ::com::sun::star::drawing::FillStyle >      m_aFillStyle;
++    boost::optional< ::com::sun::star::util::Color >             m_aFillColor;
++    
++    boost::optional< ::basegfx::B2DHomMatrix >                   m_aTransform;
++
++public:
++    SVGAttributes();
++
++    SVGAttributes&          operator=( const SVGAttributes &rAttr );
++
++    void                    ApplyProperties( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &xPropertySet );
++    void                    ApplyTransformation( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &xPropertySet,
++                                                 sal_Int32 nX, sal_Int32 nY,
++                                                 sal_Int32 nWidth, sal_Int32 nHeight,
++                                                 sal_Int32 nCenterX = 0, sal_Int32 nCenterY = 0 );
++
++    void                    SetStrokePaint( const svg_paint_t *paint );
++    void                    SetStrokeWidth( const svg_length_t *width );
++    void                    SetStrokeLineJoin( svg_stroke_line_join_t line_join );
++
++    void                    SetFillPaint( const svg_paint_t *paint );
++
++    void                    Transform( double a, double b, double c, double d, double e, double f );
++};
++
++class SVGGroup
++{
++    SVGAttributes           m_aAttr;
++
++    ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes > m_xShapes;
++
++public:
++    SVGGroup( const SVGAttributes &rAttr = SVGAttributes() );
++
++    SVGAttributes&          Attr() { return m_aAttr; }
++    ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapeGroup > AsShapeGroup( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapeGrouper >& xShapeGrouper );
++
++    void                    Add( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape );
++};
++
++class SVGReader
++{
++    // service factory - for construction of the shapes
++    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceFactory;
++    // xshapes - store the result here
++    ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >           m_xShapes;
++    
++    // are we reading an element at the moment; or a group?
++    bool                    m_bReadingElement;
++
++    std::stack< SVGGroup >  m_aGroups;
++    SVGAttributes           m_aElementAttr;
++
++    ::com::sun::star::awt::Size m_aViewportSize;
++    
++    // TODO lines/curves/arcs list for paths
++public:
++    SVGReader( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
++               const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xShapes );
++
++    SVGAttributes&          CurrentAttr();
++
++    void                    BeginElement();
++    void                    BeginGroup();
++    bool                    EndGroup();
++
++    void                    SetViewportDimension( svg_length_t *width, svg_length_t *height );
++
++    bool                    Rect( svg_length_t *x, svg_length_t *y,
++                                  svg_length_t *width, svg_length_t *height,
++                                  svg_length_t *rx, svg_length_t *ry );
++    bool                    Ellipse( svg_length_t *cx, svg_length_t *cy,
++                                     svg_length_t *rx, svg_length_t *ry );
++
++protected:
++    void                    CreateShape( const ::rtl::OUString & rServiceName,
++                                         ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &xPropertySet );
++};
++
++#endif // SVGREADER_HXX
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-scp2.diff
@@ -0,0 +1,273 @@
+cvs diff: Diffing scp2
+cvs diff: Diffing scp2/inc
+cvs diff: Diffing scp2/macros
+cvs diff: Diffing scp2/prj
+Index: scp2/prj/build.lst
+===================================================================
+RCS file: /cvs/installation/scp2/prj/build.lst,v
+retrieving revision 1.25
+retrieving revision 1.25.36.1
+diff -p -u -u -p -b -w -B -r1.25 -r1.25.36.1
+--- scp2/prj/build.lst	4 Jan 2008 17:06:26 -0000	1.25
++++ scp2/prj/build.lst	12 Feb 2008 11:48:34 -0000	1.25.36.1
+@@ -12,6 +12,7 @@ cp    scp2\source\graphicfilter   nmake    -    all    cp_graphicfilter cp_langm
+ cp    scp2\source\impress         nmake    -    all    cp_impress cp_langmacros NULL
+ cp    scp2\source\javafilter      nmake    -    all    cp_javafilter cp_langmacros NULL
+ cp    scp2\source\kde             nmake    -    all    cp_kde cp_langmacros NULL
++cp    scp2\source\layout          nmake    -    all    cp_layout cp_langmacros NULL
+ cp    scp2\source\lingu           nmake    -    all    cp_lingu cp_langmacros NULL
+ cp    scp2\source\math            nmake    -    all    cp_math cp_langmacros NULL
+ cp    scp2\source\ooo             nmake    -    all    cp_ooo cp_langmacros NULL
+@@ -26,4 +27,4 @@ cp    scp2\source\winexplorerext  nmake    -    all    cp_winexplorerext cp_lang
+ cp    scp2\source\ure             nmake    -    all    cp_ure cp_langmacros NULL
+ cp    scp2\source\onlineupdate    nmake    -    all    cp_update cp_langmacros NULL
+ cp    scp2\source\ooo_wo_ure      nmake    -    all    cp_ooo_wo_ure cp_langmacros NULL
+-cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
++cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
+cvs diff: Diffing scp2/source
+cvs diff: Diffing scp2/source/activex
+cvs diff: Diffing scp2/source/base
+cvs diff: Diffing scp2/source/calc
+cvs diff: Diffing scp2/source/canvas
+cvs diff: Diffing scp2/source/crashrep
+cvs diff: Diffing scp2/source/draw
+cvs diff: Diffing scp2/source/gnome
+cvs diff: Diffing scp2/source/graphicfilter
+cvs diff: Diffing scp2/source/impress
+cvs diff: Diffing scp2/source/javafilter
+cvs diff: Diffing scp2/source/kde
+cvs diff: Diffing scp2/source/layout
+Index: scp2/source/layout/layout.scp
+===================================================================
+RCS file: scp2/source/layout/layout.scp
+diff -N scp2/source/layout/layout.scp
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ scp2/source/layout/layout.scp	12 Feb 2008 11:50:07 -0000	1.1.2.2
+@@ -0,0 +1,117 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++File gid_File_Lib_Layout
++    TXT_FILE_BODY;
++    Styles = (PACKED,UNO_COMPONENT);
++    RegistryID = gid_Starregistry_Services_Rdb;
++    Dir = gid_Dir_Program;
++  #ifdef UNX
++    Name = STRING(CONCAT4(libtklayout,OFFICEUPD,DLLPOSTFIX,UNXSUFFIX));
++  #else
++    Name = STRING(CONCAT4(tklayout,OFFICEUPD,DLLPOSTFIX,.dll));
++  #endif
++End
++
++Directory gid_Dir_Share_Layout
++    ParentID = gid_Dir_Share;
++    DosName = "layout";
++End
++
++File gid_File_Xml_Wordcount
++   TXT_FILE_BODY;
++   Dir = gid_Dir_Share_Layout;
++   Name = "wordcount.xml";
++   Styles = (PACKED);
++End
++
++File gid_File_Xml_Zoom
++   TXT_FILE_BODY;
++   Dir = gid_Dir_Share_Layout;
++   Name = "zoom.xml";
++   Styles = (PACKED);
++End
++
++Directory gid_Dir_Share_Layout_De
++    ParentID = gid_Dir_Share_Layout;
++    DosName = "de";
++End
++
++File gid_File_Xml_Wordcount_De
++   TXT_FILE_BODY;
++   Dir = gid_Dir_Share_Layout_De;
++   Name = "de/wordcount.xml";
++   Styles = (PACKED);
++End
++
++File gid_File_Xml_Zoom_De
++   TXT_FILE_BODY;
++   Dir = gid_Dir_Share_Layout_De;
++   Name = "de/zoom.xml";
++   Styles = (PACKED);
++End
++
++Directory gid_Dir_Share_Layout_Nl
++    ParentID = gid_Dir_Share_Layout;
++    DosName = "nl";
++End
++
++File gid_File_Xml_Wordcount_Nl
++   TXT_FILE_BODY;
++   Dir = gid_Dir_Share_Layout_Nl;
++   Name = "nl/wordcount.xml";
++   Styles = (PACKED);
++End
++
++File gid_File_Xml_Zoom_Nl
++   TXT_FILE_BODY;
++   Dir = gid_Dir_Share_Layout_Nl;
++   Name = "nl/zoom.xml";
++   Styles = (PACKED);
++End
++
++//  Do we need this?
++//  Must MODULE_OPTIONAL_LAYOUT be registered somewhere?
++//
++// Module gid_Module_Layout
++//    MOD_NAME_DESC (MODULE_OPTIONAL_LAYOUT);
++//    ParentID = gid_Module_Optional;
++//    Files = (gid_File_Lib_Layout,gid_File_Xml_Wordcount,gid_File_Xml_Zoom);
++//    Minimal = NO;
++//    Default = YES;
++//    Styles = ();
++// End
+Index: scp2/source/layout/makefile.mk
+===================================================================
+RCS file: scp2/source/layout/makefile.mk
+diff -N scp2/source/layout/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ scp2/source/layout/makefile.mk	12 Feb 2008 11:49:32 -0000	1.1.2.1
+@@ -0,0 +1,58 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJPCH=
++
++PRJNAME=scp2
++TARGET=layout
++TARGETTYPE=CUI
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :	settings.mk
++
++SCP_PRODUCT_TYPE=osl
++
++PARFILES=
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++PARFILES+= layout.par
++.ENDIF # ENABLE_LAYOUT == TRUE
++
++# --- File ---------------------------------------------------------
++
++.INCLUDE :  target.mk
+cvs diff: Diffing scp2/source/lingu
+cvs diff: Diffing scp2/source/math
+cvs diff: Diffing scp2/source/onlineupdate
+cvs diff: Diffing scp2/source/ooo
+cvs diff: Diffing scp2/source/ooo_wo_ure
+cvs diff: Diffing scp2/source/python
+cvs diff: Diffing scp2/source/quickstart
+cvs diff: Diffing scp2/source/sdkoo
+cvs diff: Diffing scp2/source/templates
+cvs diff: Diffing scp2/source/testtool
+cvs diff: Diffing scp2/source/ure
+cvs diff: Diffing scp2/source/winexplorerext
+cvs diff: Diffing scp2/source/writer
+cvs diff: Diffing scp2/source/xsltfilter
+cvs diff: Diffing scp2/util
+Index: scp2/util/makefile.mk
+===================================================================
+RCS file: /cvs/installation/scp2/util/makefile.mk,v
+retrieving revision 1.43
+retrieving revision 1.43.36.1
+diff -p -u -u -p -b -w -B -r1.43 -r1.43.36.1
+--- scp2/util/makefile.mk	4 Jan 2008 17:13:28 -0000	1.43
++++ scp2/util/makefile.mk	12 Feb 2008 11:48:34 -0000	1.43.36.1
+@@ -172,6 +172,10 @@ SCP1FILES += \
+ SCP1FILES += cairocanvas.par
+ .ENDIF
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++SCP1FILES += layout.par
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ .IF "$(BUILD_SPECIAL)"!=""
+ SCP1FILES += \
+              module_onlineupdate.par   \
+@@ -303,6 +307,10 @@ SCP2FILES += \
+ SCP2FILES += \
+              vclcanvas.par
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++SCP2FILES += layout.par
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ .IF "$(BUILD_SPECIAL)"!=""
+ SCP2FILES += \
+              module_onlineupdate.par   \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-connectivity.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-connectivity.diff
@@ -0,0 +1,10 @@
+--- connectivity/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ connectivity/prj/tests.lst	2007-09-07 17:04:56.000000000 +0200
+@@ -0,0 +1,7 @@
++cn   connectivity\qa\connectivity\tools                 nmake - all cn_qa_connectivity_tools NULL
++#does not build: cn   connectivity\qa\drivers\dbase                      nmake - all cn_qa_drivers_dbase NULL
++
++# older tests:
++#does not build: cn   connectivity\workben\iniParser                     nmake - all cn_workben_iniParser NULL
++#does not build: cn   connectivity\workben\little                        nmake - all cn_workben_little NULL
++#does not build: cn   connectivity\workben\testmoz                       nmake - all cn_workben_testmoz NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-filters-fill-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-filters-fill-fix.diff
@@ -0,0 +1,51 @@
+diff -u -r ../../../sc.bak/source/core/data/table4.cxx sc/source/core/data/table4.cxx
+--- ../../../sc.bak/source/core/data/table4.cxx	2004-12-22 14:05:08.000000000 +0530
++++ sc/source/core/data/table4.cxx	2005-01-07 12:21:07.726010848 +0530
+@@ -1296,6 +1296,8 @@
+ 				{
+ 					for (rInner = nIMin; rInner <= nIMax; rInner++)
+ 					{
++                                                if (pDocument->RowFiltered( rInner, nTab))
++                                                        continue;
+ 						ULONG nInd = nActFormCnt;
+ 						FillFormula(nInd, bFirst, (ScFormulaCell*)pSrcCell,
+ 							static_cast<SCCOL>(nCol), nRow, (rInner == nIEnd) );
+@@ -1307,6 +1309,8 @@
+ 				{
+ 					for (rInner = nIMin; rInner <= nIMax; rInner++)
+ 					{
++                                                if (pDocument->RowFiltered( rInner, nTab))
++                                                        continue;
+ 						aCol[nCol].Insert(static_cast<SCROW>(nRow), pSrcCell->Clone(pDocument));
+ 					}
+ 					nProgress += nIMax - nIMin + 1;
+Index: sc/inc/document.hxx
+===================================================================
+--- sc/inc/document.hxx.orig	2004-11-26 13:35:38.064526880 +0000
++++ sc/inc/document.hxx	2004-11-26 17:10:55.795733240 +0000
+@@ -508,6 +508,8 @@ public:
+ 	ULONG			GetWeightedCount() const;	// Formeln und Edit staerker gewichtet
+ 	ULONG			GetCodeCount() const;		// RPN-Code in Formeln
+ 	DECL_LINK( GetUserDefinedColor, USHORT * );
++	BOOL 		RowFiltered( USHORT nRow, USHORT nTab ) const;	// FillInfo
++	BOOL		ColFiltered( USHORT nCol, USHORT nTab ) const;	// FillInfo
+ 																// Numberformatter
+ 
+ public:
+@@ -1698,6 +1700,16 @@ inline BOOL ScDocument::RowHidden( USHOR
+     return pTab[nTab]->pRowHeight->GetValue(nRow);
+ }
+ 
++inline BOOL ScDocument::ColFiltered( USHORT nCol, USHORT nTab ) const
++{
++	return ( pTab[nTab]->pColFlags[nCol] & CR_FILTERED) != 0;
++}
++
++inline BOOL ScDocument::RowFiltered( USHORT nRow, USHORT nTab ) const
++{
++	return pTab[nTab]->IsFiltered(nRow);
++}
++ 
+ #endif
+ 
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-not-locking-servers.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-not-locking-servers.diff
@@ -0,0 +1,142 @@
+diff --git a/ucb/source/ucp/webdav/NeonSession.cxx b/ucb/source/ucp/webdav/NeonSession.cxx
+index f1ddbf0..6407df0 100644
+--- ucb/source/ucp/webdav/NeonSession.cxx
++++ ucb/source/ucp/webdav/NeonSession.cxx
+@@ -213,6 +213,12 @@ static sal_uInt16 makeStatusCode( const rtl::OUString & rStatusText )
+     return sal_uInt16( rStatusText.copy( 0, nPos ).toInt32() );
+ }
+ 
++static sal_uInt16 getStatusCode( HttpSession *pSession )
++{
++    rtl::OUString aText = rtl::OUString::createFromAscii( ne_get_error( pSession ) );
++    return makeStatusCode( aText );
++}
++
+ // -------------------------------------------------------------------
+ struct NeonRequestContext
+ {
+@@ -1405,14 +1411,7 @@ void NeonSession::LOCK( ucb::Lock & rLock,
+ 
+     m_aEnv = rEnv;
+ 
+-    if ( !Lockit( rLock, true ) )
+-    {
+-        ucbhelper::cancelCommandExecution( ucb::IOErrorCode_LOCKING_VIOLATION,
+-                uno::Sequence< uno::Any >( 0 ), // FIXME more info about the file?
+-                rEnv.m_xEnv,
+-                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "a locking error occured" ) ),
+-                uno::Reference< ucb::XCommandProcessor >() );
+-    }
++    Lockit( rLock, true );
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -1428,14 +1427,7 @@ void NeonSession::UNLOCK( ucb::Lock & rLock,
+ 
+     m_aEnv = rEnv;
+ 
+-    if ( !Lockit( rLock, false ) )
+-    {
+-        ucbhelper::cancelCommandExecution( ucb::IOErrorCode_LOCKING_VIOLATION,
+-                uno::Sequence< uno::Any >( 0 ), // FIXME more info about the file?
+-                rEnv.m_xEnv,
+-                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "a locking error occured" ) ),
+-                uno::Reference< ucb::XCommandProcessor >() );
+-    }
++    Lockit( rLock, false );
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -1475,7 +1467,7 @@ void NeonSession::HandleError( int nError )
+         case NE_ERROR:        // Generic error
+         {
+             rtl::OUString aText = rtl::OUString::createFromAscii(
+-		ne_get_error( m_pHttpSession ) );
++                    ne_get_error( m_pHttpSession ) );
+             throw DAVException( DAVException::DAV_HTTP_ERROR,
+                                 aText,
+                                 makeStatusCode( aText ) );
+@@ -1532,7 +1524,7 @@ void NeonSession::HandleError( int nError )
+     }
+ }
+ 
+-sal_Bool NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
++void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ 	throw ( DAVException )
+ {
+     osl::Guard< osl::Mutex > theGuard( m_aMutex );
+@@ -1587,21 +1579,35 @@ sal_Bool NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+         ne_lockstore_add( m_NeonLockStore, theLock );
+     }
+ 
+-    int theRetVal;
+     if ( bLockit )
+     {
+-        theRetVal = ne_lock( m_pHttpSession, theLock );
+-
+-        if ( theRetVal != NE_OK )
+-            return sal_False;
++        int nRet = ne_lock( m_pHttpSession, theLock );
+ 
+-        uno::Sequence< rtl::OUString > aTokens( 1 );
+-        aTokens[0] = rtl::OUString::createFromAscii( theLock->token );
+-        rLock.LockTokens = aTokens;
++        if ( nRet == NE_OK )
++        {
++            uno::Sequence< rtl::OUString > aTokens( 1 );
++            aTokens[0] = rtl::OUString::createFromAscii( theLock->token );
++            rLock.LockTokens = aTokens;
+ 
+ #if OSL_DEBUG_LEVEL > 0
+-        fprintf( stderr, "WebDAV: locked the URL, the token is: %s\n", theLock->token );
++            fprintf( stderr, "WebDAV: locked the URL, the token is: %s\n", theLock->token );
++#endif
++        }
++        else if ( ( nRet == NE_ERROR ) && ( getStatusCode( m_pHttpSession ) == SC_LOCKED ) )
++        {
++            ucbhelper::cancelCommandExecution( ucb::IOErrorCode_LOCKING_VIOLATION,
++                    uno::Sequence< uno::Any >( 0 ), // FIXME more info about the file?
++                    m_aEnv.m_xEnv,
++                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "a locking error occured" ) ),
++                    uno::Reference< ucb::XCommandProcessor >() );
++        }
++        else
++        {
++#if OSL_DEBUG_LEVEL > 0
++            fprintf( stderr, "WebDAV: failed to lock the file, status code is: %d\n", getStatusCode( m_pHttpSession ) );
+ #endif
++            ne_lockstore_remove( m_NeonLockStore, theLock );
++        }
+     }
+     else
+     {
+@@ -1614,14 +1620,10 @@ sal_Bool NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ #if OSL_DEBUG_LEVEL > 0
+             fprintf( stderr, "WebDAV: going to unlock the URL, the token is: %s\n", theLock->token );
+ #endif
+-        }
+ 
+-        theRetVal = ne_unlock( m_pHttpSession, theLock );
++            ne_unlock( m_pHttpSession, theLock );
++        }
+     }
+-
+-    HandleError( theRetVal );
+-
+-    return sal_True;
+ }
+ 
+ // -------------------------------------------------------------------
+diff --git a/ucb/source/ucp/webdav/NeonSession.hxx b/ucb/source/ucp/webdav/NeonSession.hxx
+index f35468a..4f1798f 100644
+--- ucb/source/ucp/webdav/NeonSession.hxx
++++ ucb/source/ucp/webdav/NeonSession.hxx
+@@ -253,7 +253,7 @@ class NeonSession : public DAVSession
+ 
+         const ucbhelper::InternetProxyServer & getProxySettings() const;
+ 
+-		sal_Bool Lockit( com::sun::star::ucb::Lock & rLock, bool bLockit )
++		void Lockit( com::sun::star::ucb::Lock & rLock, bool bLockit )
+ 			throw ( DAVException );
+ 
+         // low level GET implementation, used by public GET implementations
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooop-win32-installer-branding.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooop-win32-installer-branding.diff
@@ -0,0 +1,91 @@
+--- instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
++++ instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
+@@ -379,7 +379,7 @@
+ en-US = "Cancel"
+ 
+ [OOO_CONTROL_124]
+-en-US = "Build contributed in collaboration with the community by Sun Microsystems, Inc. For credits, see: http://www.openoffice.org/welcome/credits.html"
++en-US = "Build contributed in collaboration with the community by OxygenOffice Professional Team. For credits, see: http://www.openoffice.org/welcome/credits.html"
+ 
+ [OOO_CONTROL_125]
+ en-US = "&Next >"
+--- instsetoo_native/util/makefile.mk.old	2006-01-16 15:10:22.000000000 +0200
++++ instsetoo_native/util/makefile.mk	2006-01-17 12:58:26.000000000 +0200
+@@ -372,10 +372,17 @@
+ 	$(RM) $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
+ 	$(RM) $(MSISDKOOTEMPLATEDIR)$/Binary$/Image.bmp
+ 	$(RM) $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSIOFFICETEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSILANGPACKTEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSISDKOOTEMPLATEDIR)$/Binary$/Image.bmp
+-	$(COPY) $(PRJ)$/res$/nologoinstall.bmp $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_ooop.bmp $(MSIOFFICETEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_ooop.bmp $(MSILANGPACKTEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_ooop.bmp $(MSISDKOOTEMPLATEDIR)$/Binary$/Image.bmp
++	$(COPY) $(PRJ)$/res$/nologoinstall_ooop.bmp $(MSIURETEMPLATEDIR)$/Binary$/Image.bmp
++	$(RM) $(MSIOFFICETEMPLATEDIR)$/Binary$/Banner.bmp
++	$(RM) $(MSILANGPACKTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(RM) $(MSISDKOOTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(RM) $(MSIURETEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_ooop.bmp $(MSIOFFICETEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_ooop.bmp $(MSILANGPACKTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_ooop.bmp $(MSISDKOOTEMPLATEDIR)$/Binary$/Banner.bmp
++	$(COPY) $(PRJ)$/res$/banner_ooop.bmp $(MSIURETEMPLATEDIR)$/Binary$/Banner.bmp
+ 
+ 
+dummy line to avoid confusing diff-mode
+--- instsetoo_native/util/openoffice.lst.old	2006-01-17 12:23:31.000000000 +0200
++++ instsetoo_native/util/openoffice.lst	2006-01-17 14:24:08.000000000 +0200
+@@ -29,9 +29,9 @@
+ 			USE_FILEVERSION 1
+ 			LIBRARYVERSION 8.3.0
+ 			PATCHCODEFILE ooo_patchcodes.txt
+-			DOWNLOADBANNER	ooobanner.bmp
+-			DOWNLOADBITMAP	ooobitmap.bmp
+-			DOWNLOADSETUPICO	ooosetup.ico
++			DOWNLOADBANNER	ooobanner_ooop.bmp
++			DOWNLOADBITMAP	ooobitmap_ooop.bmp
++			DOWNLOADSETUPICO	ooosetup.ico
+ 			RELATIVE_PATHES_IN_DDF 1
+ 		}
+ 		active			1
+@@ -76,9 +76,9 @@
+ 			LIBRARYVERSION 8.3.0
+ 			PATCHCODEFILE ooo_patchcodes.txt
+ 			JAVAPRODUCT 1
+-			DOWNLOADBANNER	ooobanner.bmp
+-			DOWNLOADBITMAP	ooobitmap.bmp
+-			DOWNLOADSETUPICO	ooosetup.ico
++			DOWNLOADBANNER	ooobanner_ooop.bmp
++			DOWNLOADBITMAP	ooobitmap_ooop.bmp
++			DOWNLOADSETUPICO	ooosetup.ico
+ 			RELATIVE_PATHES_IN_DDF 1
+ 		}
+ 		active			1
+@@ -122,9 +122,9 @@
+ 			LIBRARYVERSION 8.3.0
+ 			PATCHCODEFILE ooo_patchcodes.txt
+ 			CODEFILENAME codes_ooodev.txt
+-			DOWNLOADBANNER	ooobanner.bmp
+-			DOWNLOADBITMAP	ooobitmap.bmp
+-			DOWNLOADSETUPICO	ooosetup.ico
++			DOWNLOADBANNER	ooobanner_ooop.bmp
++			DOWNLOADBITMAP	ooobitmap_ooop.bmp
++			DOWNLOADSETUPICO	ooosetup.ico
+ 			LOCALUSERDIR $ORIGIN/..
+ 			RELATIVE_PATHES_IN_DDF 1
+ 		}
+@@ -150,9 +150,9 @@
+             PACKAGEREVISION 1
+             LICENSENAME LGPL
+             NOVERSIONINDIRNAME 1
+-            DOWNLOADBANNER urebanner.bmp
+-            DOWNLOADBITMAP urebitmap.bmp
+-            DOWNLOADSETUPICO ooosetup.ico
++            DOWNLOADBANNER urebanner.bmp
++            DOWNLOADBITMAP urebitmap.bmp
++            DOWNLOADSETUPICO ooosetup.ico
+             DONTUSESTARTMENUFOLDER 1
+             RELATIVE_PATHES_IN_DDF 1
+         }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/goodies-eps-filter-unix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/goodies-eps-filter-unix.diff
@@ -0,0 +1,37 @@
+diff -rup goodies/source/filter.vcl/eps.orig/eps.cxx goodies/source/filter.vcl/eps/eps.cxx
+--- goodies/source/filter.vcl/eps.orig/eps.cxx	2007-11-26 12:08:53.000000000 +0100
++++ goodies/source/filter.vcl/eps/eps.cxx	2007-11-26 17:38:34.000000000 +0100
+@@ -317,7 +317,11 @@ BOOL PSWriter::WritePS( const Graphic& r
+ 	// default values for the dialog options
+ 	mnLevel = 2;
+ 	mbGrayScale = FALSE;
++#ifdef UNX // don't compress by default on unix as ghostscript is unable to read LZW compressed eps
++	mbCompression = FALSE;
++#else
+ 	mbCompression = TRUE;
++#endif
+ 	mnTextMode = 0;			// default0 : export glyph outlines
+ 
+ 	// try to get the dialog selection
+@@ -335,12 +339,20 @@ BOOL PSWriter::WritePS( const Graphic& r
+ 	        String aVersionStr( RTL_CONSTASCII_USTRINGPARAM( "Version" ) );
+         	String aColorStr( RTL_CONSTASCII_USTRINGPARAM( "ColorFormat" ) );   
+ 	        String aComprStr( RTL_CONSTASCII_USTRINGPARAM( "CompressionMode" ) );
++#ifdef UNX // don't put binary tiff preview ahead of postscript code by default on unix as ghostscript is unable to read it
++			mnPreview = pFilterConfigItem->ReadInt32( aPreviewStr, 0 );
++#else
+ 			mnPreview = pFilterConfigItem->ReadInt32( aPreviewStr, 1 );
++#endif
+ 			mnLevel = pFilterConfigItem->ReadInt32( aVersionStr, 2 );
+ 			if ( mnLevel != 1 )
+ 				mnLevel = 2;
+ 			mbGrayScale = pFilterConfigItem->ReadInt32( aColorStr, 1 ) == 2;
+-			mbCompression = pFilterConfigItem->ReadInt32( aComprStr, 1 ) == 1;	
++#ifdef UNX // don't compress by default on unix as ghostscript is unable to read LZW compressed eps
++			mbCompression = pFilterConfigItem->ReadInt32( aComprStr, 0 ) != 0;
++#else
++			mbCompression = pFilterConfigItem->ReadInt32( aComprStr, 1 ) == 1;
++#endif
+         	String sTextMode( RTL_CONSTASCII_USTRINGPARAM( "TextMode" ) );
+ 			mnTextMode = pFilterConfigItem->ReadInt32( sTextMode, 0 );
+ 			if ( mnTextMode > 2 )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-hindi-numbers.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-hindi-numbers.diff
@@ -0,0 +1,92 @@
+--- sw/source/filter/ww8/ww8par.cxx.old	2008-04-07 12:11:28.000000000 +0200
++++ sw/source/filter/ww8/ww8par.cxx	2008-04-07 14:07:39.000000000 +0200
+@@ -2483,14 +2483,6 @@ sal_Unicode Custom8BitToUnicode(rtl_Text
+         return cChar;
+ }
+ 
+-sal_Unicode SwWW8ImplReader::TranslateToHindiNumbers(sal_Unicode nChar)
+-{
+-    if (nChar >= 0x0030 && nChar <= 0x0039)
+-        return nChar + 0x0630;
+-
+-    return nChar;
+-}
+-
+ // Returnwert: true for no Sonderzeichen
+ bool SwWW8ImplReader::ReadPlainChars(WW8_CP& rPos, long nEnd, long nCpOfs)
+ {
+@@ -2573,11 +2565,6 @@ bool SwWW8ImplReader::ReadPlainChars(WW8
+         }
+         else
+             *pWork = Custom8BitToUnicode(hConverter, nBCode);
+-
+-        if (nIdctHint == 2)
+-        {
+-            *pWork = TranslateToHindiNumbers(*pWork);
+-        }
+     }
+ 
+     if (nL2)
+@@ -3279,8 +3266,7 @@ SwWW8ImplReader::SwWW8ImplReader(BYTE nV
+ 	pAuthorInfos(0),
+ 	sBaseURL(rBaseURL),
+     mbNewDoc(bNewDoc),
+-	nDropCap(0),
+-    nIdctHint(0)
++	nDropCap(0)
+ {
+     pStrm->SetNumberFormatInt( NUMBERFORMAT_INT_LITTLEENDIAN );
+     nWantedVersion = nVersionPara;
+--- sw/source/filter/ww8/ww8par.hxx.old	2008-04-07 12:11:28.000000000 +0200
++++ sw/source/filter/ww8/ww8par.hxx	2008-04-07 14:07:39.000000000 +0200
+@@ -1118,8 +1118,6 @@ private:
+     bool bDropCap;
+     int nDropCap;
+ 
+-    int nIdctHint;
+-
+ //---------------------------------------------
+ 
+     const SprmReadInfo& GetSprmReadInfo(USHORT nId) const;
+@@ -1156,7 +1154,6 @@ private:
+     bool ReadChar(long nPosCp, long nCpOfs);
+     bool ReadPlainChars(WW8_CP& rPos, long nEnd, long nCpOfs);
+     bool ReadChars(WW8_CP& rPos, WW8_CP nNextAttr, long nTextEnd, long nCpOfs);
+-    sal_Unicode TranslateToHindiNumbers(sal_Unicode);
+ 
+     void SetDocumentGrid(SwFrmFmt &rFmt, const wwSection &rSection);
+ 
+@@ -1478,7 +1475,6 @@ public:     // eigentlich private, geht 
+     void Read_DontAddEqual(USHORT , const BYTE *pData, short nLen);
+     void Read_LineSpace(        USHORT, const BYTE*, short nLen );
+     void Read_Justify(USHORT, const BYTE*, short nLen);
+-    void Read_IdctHint(USHORT, const BYTE*, short nLen);
+     bool IsRightToLeft();
+     void Read_RTLJustify(USHORT, const BYTE*, short nLen);
+     void Read_Hyphenation(      USHORT, const BYTE* pData, short nLen );
+--- sw/source/filter/ww8/ww8par6.cxx.old	2008-04-07 12:11:25.000000000 +0200
++++ sw/source/filter/ww8/ww8par6.cxx	2008-04-07 14:07:39.000000000 +0200
+@@ -4245,14 +4245,6 @@ void SwWW8ImplReader::Read_UL( USHORT nI
+     NewAttr( aUL );
+ }
+ 
+-void SwWW8ImplReader::Read_IdctHint( USHORT, const BYTE* pData, short nLen )
+-{
+-    if (nLen < 0)
+-        nIdctHint = 0;
+-    else    
+-        nIdctHint = *pData;
+-}
+-
+ void SwWW8ImplReader::Read_Justify( USHORT, const BYTE* pData, short nLen )
+ {
+     if( nLen < 0 )
+@@ -5870,7 +5862,7 @@ const wwSprmDispatcher *GetWW8SprmDispat
+                                                      //word;
+         {0x486E, &SwWW8ImplReader::Read_Language},   //"sprmCRgLid1" chp.rglid[1];
+                                                      //LID: for Far East text;word;
+-        {0x286F, &SwWW8ImplReader::Read_IdctHint},   //"sprmCIdctHint" chp.idctHint;
++        {0x286F, 0},                                 //"sprmCIdctHint" chp.idctHint;
+                                                      //IDCT: byte;
+         {0x2E00, 0},                                 //"sprmPicBrcl" pic.brcl;brcl
+                                                      //(see PIC structure
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-symbol-font-n383812.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-symbol-font-n383812.diff
@@ -0,0 +1,70 @@
+diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
+index 5c7118b..2281099 100644
+--- sw/source/core/txtnode/fntcache.cxx
++++ sw/source/core/txtnode/fntcache.cxx
+@@ -563,9 +563,14 @@ static sal_Char __READONLY_DATA sStandardString[] = "Dies ist der Teststring";
+ 				// Font wird nun nochmals auf dem Drucker eingestellt.
+ 				Font aFnt1 = pOut->GetFontMetric();
+ 				Font aFnt2( *pPrtFont );
+-				aFnt2.SetCharSet( aFnt1.GetCharSet() );
+-				aFnt2.SetFamily( aFnt1.GetFamily() );
+-				aFnt2.SetPitch( aFnt1.GetPitch() );
++
++				if (RTL_TEXTENCODING_DONTKNOW == pPrtFont->GetCharSet())
++				    aFnt2.SetCharSet( aFnt1.GetCharSet() );
++				if (FAMILY_DONTKNOW  == pPrtFont->GetFamily())
++				    aFnt2.SetFamily( aFnt1.GetFamily() );
++				if (PITCH_DONTKNOW   == pPrtFont->GetPitch())
++				    aFnt2.SetPitch( aFnt1.GetPitch() );
++
+ 				pPrt->SetFont( aFnt2 );
+ 				aMet = pPrt->GetFontMetric( );
+ 			}
+diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
+index 460b16b..b32dcc1 100644
+--- vcl/source/gdi/outdev3.cxx
++++ vcl/source/gdi/outdev3.cxx
+@@ -2846,6 +2846,17 @@ bool ImplFontCache::IFSD_Equal::operator()(const ImplFontSelectData& rA, const I
+     if( rA.maStyleName != rB.maStyleName)
+         return false;
+ 
++    // Symbol fonts may recode from one type to another So they are only
++    // safely equivalent for equal targets
++    if (
++        (rA.mpFontData && rA.mpFontData->IsSymbolFont()) ||
++        (rB.mpFontData && rB.mpFontData->IsSymbolFont())
++       )
++    {
++        if (rA.maTargetName != rB.maTargetName)
++            return false;
++    }
++
+     return true;
+ }
+ 
+diff --git a/vcl/source/glyphs/gcach_ftyp.cxx b/vcl/source/glyphs/gcach_ftyp.cxx
+index c03597d..b12c369 100644
+--- vcl/source/glyphs/gcach_ftyp.cxx
++++ vcl/source/glyphs/gcach_ftyp.cxx
+@@ -931,11 +931,21 @@ int FreetypeServerFont::GetEmUnits() const
+ void FreetypeServerFont::FetchFontMetric( ImplFontMetricData& rTo, long& rFactor ) const
+ {
+     static_cast<ImplFontAttributes&>(rTo) = mpFontInfo->GetFontAttributes();
++
+     rTo.mbScalableFont  = true;
+     rTo.mbDevice        = true;
+     rTo.mbKernableFont  = (FT_HAS_KERNING( maFaceFT ) != 0) || mpFontInfo->HasExtraKerning();
+     rTo.mnOrientation = GetFontSelData().mnOrientation;
+ 
++    //Always consider [star]symbol as symbol fonts
++    if (
++         (rTo.GetFamilyName().EqualsAscii("OpenSymbol")) ||
++         (rTo.GetFamilyName().EqualsAscii("StarSymbol"))
++       )
++    {
++        rTo.mbSymbolFlag = true;
++    }
++
+     if( maSizeFT )
+         pFTActivateSize( maSizeFT );
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libhnj-lib-use-_pic.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libhnj-lib-use-_pic.diff
@@ -0,0 +1,16 @@
+Index: lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
+===================================================================
+RCS file: /cvs/whiteboard/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk,v
+retrieving revision 1.8
+diff -u -u -r1.8 makefile.mk
+--- lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk	17 Jun 2005 09:21:29 -0000	1.8
++++ lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk	8 Aug 2005 20:42:23 -0000
+@@ -42,7 +42,7 @@
+ 
+ .IF "$(GUI)"=="UNX"
+ .IF "$(SYSTEM_HYPH)" == "YES"
+-HNJLIB=$(HYPHEN_LIB)
++HNJLIB=-lhnj_pic
+ .ELSE
+ HNJLIB=-lhnj
+ .ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/writer-default-as-optimal-page-wrap.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/writer-default-as-optimal-page-wrap.diff
@@ -0,0 +1,16 @@
+Index: source/core/doc/poolfmt.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/core/doc/poolfmt.cxx,v
+retrieving revision 1.25.108.1
+diff -u -r1.25.108.1 poolfmt.cxx
+--- sw/source/core/doc/poolfmt.cxx	9 Jan 2004 14:31:26 -0000	1.25.108.1
++++ sw/source/core/doc/poolfmt.cxx	24 Oct 2004 14:25:15 -0000
+@@ -1516,7 +1516,7 @@
+ 			aSet.Put( SwFmtAnchor( FLY_AT_CNTNT ));
+             aSet.Put( SwFmtHoriOrient( 0, text::HoriOrientation::CENTER, text::RelOrientation::FRAME ));
+             aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::TOP, text::RelOrientation::FRAME ));
+-			aSet.Put( SwFmtSurround( SURROUND_NONE ));
++			aSet.Put( SwFmtSurround( SURROUND_IDEAL ));
+ 		}
+ 		break;
+ 	case RES_POOLFRM_FORMEL:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix-gcc-4.3-compiler-error.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix-gcc-4.3-compiler-error.diff
@@ -0,0 +1,14 @@
+--- sc/source/core/tool/makefile.mk.old	2008-03-12 15:58:49.000000000 +0100
++++ sc/source/core/tool/makefile.mk	2008-03-12 18:37:14.000000000 +0100
+@@ -58,6 +58,11 @@ CDEFS += -DSC_INFO_OSVERSION=\"$(OS)\"
+ CDEFS += -DSC_INFO_OSVERSION=$(EMQ)"$(OS)$(EMQ)"
+ .ENDIF
+ 
++# temporary hack to avoid internal compiler error with gcc-4.3
++.IF "$(CPUNAME)"=="X86_64" && "$(COMID)"=="gcc3" && "$(CCNUMVER)">="000300040000"
++CFLAGSCXX += -O1
++.ENDIF
++
+ # --- Files --------------------------------------------------------
+ 
+ SLOFILES =  \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-filter.diff
@@ -0,0 +1,16 @@
+Index: filter/source/config/fragments/types/wav_Wave_Audio_File.xcu
+===================================================================
+RCS file: /cvs/framework/filter/source/config/fragments/types/wav_Wave_Audio_File.xcu,v
+retrieving revision 1.5
+retrieving revision 1.5.368.1
+diff -u -p -u -p -r1.5 -r1.5.368.1
+--- filter/source/config/fragments/types/wav_Wave_Audio_File.xcu	20 Jul 2005 11:41:12 -0000	1.5
++++ filter/source/config/fragments/types/wav_Wave_Audio_File.xcu	10 Aug 2007 10:50:41 -0000	1.5.368.1
+@@ -7,6 +7,6 @@
+ 			<value>Wave Audio File</value>
+ 		</prop>
+ 		<prop oor:name="ClipboardFormat"/>
+-        <prop oor:name="DetectService"/>
++        <prop oor:name="DetectService"><value>com.sun.star.comp.framework.SoundHandler</value></prop>
+         <prop oor:name="PreferredFilter"/>
+ 	</node>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_build_accessories.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_build_accessories.diff
@@ -0,0 +1,9 @@
+--- scp2/prj/build.lst.orig	2007-10-15 14:55:31.000000000 +0200
++++ scp2/prj/build.lst	2007-12-24 14:59:45.000000000 +0100
+@@ -25,4 +25,5 @@
+ cp    scp2\source\ure             nmake    -    all    cp_ure cp_langmacros NULL
+ cp    scp2\source\onlineupdate    nmake    -    all    cp_update cp_langmacros NULL
+ cp    scp2\source\ooo_wo_ure      nmake    -    all    cp_ooo_wo_ure cp_langmacros NULL
+-cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_extensions cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure NULL
++cp    scp2\source\accessories     nmake    -    all    cp_accessories cp_langmacros NULL
++cp    scp2\util                   nmake    -    all    cp_util cp_activex cp_calc cp_canvas cp_crashrep cp_draw cp_extensions cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_layout cp_lingu cp_math cp_ooo cp_python cp_quickstart cp_testtool cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_ure cp_sdkoo cp_update cp_ooo_wo_ure cp_accessories NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/moz-solaris11-makefiles.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/moz-solaris11-makefiles.diff
@@ -0,0 +1,129 @@
+--- moz/makefile.mk 25 May 2007 11:37:09 -0000      1.12
++++ moz/makefile.mk 5 Nov 2007 16:35:11 -0000
+@@ -84,7 +84,9 @@
+ LIBGLIB_VC71_ZIPFILE_NAME*=vc71-glib-1.2.10-bin.zip
+ WINTOOLS_ZIPFILE_NAME*=wintools.zip
+ 
+-ADDITIONAL_FILES=mailnews$/addrbook$/src$/nsAbMD5sum.cpp
++ADDITIONAL_FILES=mailnews$/addrbook$/src$/nsAbMD5sum.cpp \
++       security$/coreconf$/SunOS5.11.mk \
++       security$/coreconf$/SunOS5.11_i86pc.mk
+ 
+ CONFIGURE_DIR=
+ MOZILLA_CONFIGURE_FLAGS= $(SYSBASE_X11) --disable-tests \
+--- moz/mozilla-source-1.7.5.patch	5 Jul 2007 09:04:04 -0000	1.15
++++ moz/mozilla-source-1.7.5.patch	5 Nov 2007 16:30:03 -0000
+@@ -8174,6 +8174,113 @@
+   ifdef BUILD_OPT
+               OPTIMIZER       = -O2
+   endif
++*** misc/mozilla/security/coreconf/SunOS5.11.mk	Mon Nov  5 17:15:43 2007
++--- misc/build/mozilla/security/coreconf/SunOS5.11.mk	Mon Nov  5 17:14:30 2007
++***************
++*** 1 ****
++! dummy
++--- 1,44 ----
++! #
++! # The contents of this file are subject to the Mozilla Public
++! # License Version 1.1 (the "License"); you may not use this file
++! # except in compliance with the License. You may obtain a copy of
++! # the License at http://www.mozilla.org/MPL/
++! # 
++! # Software distributed under the License is distributed on an "AS
++! # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
++! # implied. See the License for the specific language governing
++! # rights and limitations under the License.
++! # 
++! # The Original Code is the Netscape security libraries.
++! # 
++! # The Initial Developer of the Original Code is Netscape
++! # Communications Corporation.  Portions created by Netscape are 
++! # Copyright (C) 1994-2000 Netscape Communications Corporation.  All
++! # Rights Reserved.
++! # 
++! # Contributor(s):
++! # 
++! # Alternatively, the contents of this file may be used under the
++! # terms of the GNU General Public License Version 2 or later (the
++! # "GPL"), in which case the provisions of the GPL are applicable 
++! # instead of those above.  If you wish to allow use of your 
++! # version of this file only under the terms of the GPL and not to
++! # allow others to use your version of this file under the MPL,
++! # indicate your decision by deleting the provisions above and
++! # replace them with the notice and other provisions required by
++! # the GPL.  If you do not delete the provisions above, a recipient
++! # may use your version of this file under either the MPL or the
++! # GPL.
++! #
++! # Config stuff for SunOS5.11
++! #
++! 
++! SOL_CFLAGS += -D_SVID_GETTOD
++! 
++! include $(CORE_DEPTH)/coreconf/SunOS5.mk
++! 
++! ifeq ($(OS_RELEASE),5.11)
++! 	OS_DEFINES += -DSOLARIS2_11
++! endif
++! 
++! OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
++*** misc/mozilla/security/coreconf/SunOS5.11_i86pc.mk	Mon Nov  5 17:15:43 2007
++--- misc/build/mozilla/security/coreconf/SunOS5.11_i86pc.mk	Mon Nov  5 17:14:23 2007
++***************
++*** 1 ****
++! dummy
++--- 1,51 ----
++! #
++! # The contents of this file are subject to the Mozilla Public
++! # License Version 1.1 (the "License"); you may not use this file
++! # except in compliance with the License. You may obtain a copy of
++! # the License at http://www.mozilla.org/MPL/
++! # 
++! # Software distributed under the License is distributed on an "AS
++! # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
++! # implied. See the License for the specific language governing
++! # rights and limitations under the License.
++! # 
++! # The Original Code is the Netscape security libraries.
++! # 
++! # The Initial Developer of the Original Code is Netscape
++! # Communications Corporation.  Portions created by Netscape are 
++! # Copyright (C) 1994-2000 Netscape Communications Corporation.  All
++! # Rights Reserved.
++! # 
++! # Contributor(s):
++! # 
++! # Alternatively, the contents of this file may be used under the
++! # terms of the GNU General Public License Version 2 or later (the
++! # "GPL"), in which case the provisions of the GPL are applicable 
++! # instead of those above.  If you wish to allow use of your 
++! # version of this file only under the terms of the GPL and not to
++! # allow others to use your version of this file under the MPL,
++! # indicate your decision by deleting the provisions above and
++! # replace them with the notice and other provisions required by
++! # the GPL.  If you do not delete the provisions above, a recipient
++! # may use your version of this file under either the MPL or the
++! # GPL.
++! #
++! # Config stuff for Solaris 11 on x86
++! # 
++! 
++! SOL_CFLAGS	= -D_SVID_GETTOD
++! 
++! include $(CORE_DEPTH)/coreconf/SunOS5.mk
++! 
++! ifeq ($(USE_64),1)
++!     CPU_ARCH		= x86_64
++! else
++!     CPU_ARCH		= x86
++!     OS_DEFINES		+= -Di386
++! endif
++! 
++! ifeq ($(OS_RELEASE),5.11_i86pc)
++! 	OS_DEFINES += -DSOLARIS2_11
++! endif
++! 
++! OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc
+ *** misc/mozilla/security/coreconf/SunOS5.mk	Fri Oct 15 19:52:29 2004
+ --- misc/build/mozilla/security/coreconf/SunOS5.mk	Thu Mar 29 14:27:09 2007
+ ***************
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-security.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-security.diff
@@ -0,0 +1,611 @@
+diff --git a/binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx b/binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx
+index 6b50346..2a352b6 100644
+--- binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx
++++ binfilter/bf_sfx2/source/appl/sfx2_appinit.cxx
+@@ -82,8 +82,8 @@
+ #ifndef _RTL_USTRBUF_HXX_
+ #include <rtl/ustrbuf.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ #ifndef _UCBHELPER_CONFIGURATIONKEYS_HXX_
+ #include <ucbhelper/configurationkeys.hxx>
+diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
+index c78329f..b08b8de 100644
+--- desktop/source/app/app.cxx
++++ desktop/source/app/app.cxx
+@@ -199,8 +199,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
+index a9094f4..bef1689 100644
+--- desktop/source/app/appinit.cxx
++++ desktop/source/app/appinit.cxx
+@@ -136,7 +136,7 @@
+ #include <svtools/internaloptions.hxx>
+ #endif
+ 
+-#include <vos/security.hxx>
++#include <osl/security.hxx>
+ 
+ 
+ #define	DEFINE_CONST_OUSTRING(CONSTASCII)		OUString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
+@@ -144,7 +144,6 @@
+ #define DESKTOP_TEMPDIRNAME						"soffice.tmp"
+ 
+ using namespace rtl;
+-using namespace vos;
+ using namespace desktop;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+@@ -169,7 +168,7 @@ static bool configureUcb(bool bServer, rtl::OUString const & rPortalConnect)
+ 	}
+ 
+ 	rtl::OUString aPipe;
+-	vos::OSecurity().getUserIdent(aPipe);
++	osl::Security().getUserIdent(aPipe);
+ 
+ 	rtl::OUStringBuffer aPortal;
+ 	if (rPortalConnect.getLength() != 0)
+diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
+index 95efc2c..e621e73 100644
+--- desktop/source/app/officeipcthread.cxx
++++ desktop/source/app/officeipcthread.cxx
+@@ -111,7 +111,7 @@ namespace desktop
+ String GetURL_Impl( const String& rName );
+ 
+ OfficeIPCThread*	OfficeIPCThread::pGlobalOfficeIPCThread = 0;
+-namespace { struct Security : public rtl::Static<OSecurity, Security> {}; }
++namespace { struct Security : public rtl::Static<osl::Security, Security> {}; }
+ ::osl::Mutex*		OfficeIPCThread::pOfficeIPCThreadMutex = 0;
+ 
+ 
+@@ -375,7 +375,7 @@ OfficeIPCThread::Status OfficeIPCThread::EnableOfficeIPCThread()
+ 	PipeMode nPipeMode = PIPEMODE_DONTKNOW;
+ 	do
+ 	{
+-		OSecurity &rSecurity = Security::get();
++		osl::Security &rSecurity = Security::get();
+ 		// Try to create pipe
+ 		if ( pThread->maPipe.create( pThread->maPipeIdent.getStr(), OPipe::TOption_Create, rSecurity ))
+ 		{
+diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
+index ec6ed08..65cc8b5 100644
+--- desktop/source/app/officeipcthread.hxx
++++ desktop/source/app/officeipcthread.hxx
+@@ -46,8 +46,8 @@
+ #ifndef _VOS_PIPE_HXX_
+ #include <vos/pipe.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ #ifndef _THREAD_HXX_
+ #include <osl/thread.hxx>
+diff --git a/desktop/source/app/userinstall.cxx b/desktop/source/app/userinstall.cxx
+index fb952b1..54578f3 100644
+--- desktop/source/app/userinstall.cxx
++++ desktop/source/app/userinstall.cxx
+@@ -62,8 +62,8 @@
+ #include <osl/diagnose.h>
+ #endif
+ 
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ #ifndef _RTL_REF_HXX_
+ #include <rtl/ref.hxx>
+diff --git a/sal/typesconfig/core b/sal/typesconfig/core
+index 97fe99e..e8e58ab 100644
+Binary files a/sal/typesconfig/core and b/sal/typesconfig/core differ
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 94de398..ed8e57f 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -673,7 +673,7 @@
+ #include "osl/diagnose.h"
+ #include "osl/module.hxx"
+ #include "osl/mutex.hxx"
+-#include "vos/security.hxx"
++#include "osl/security.hxx"
+ #include "vos/socket.hxx"
+ #include "osl/thread.hxx"
+ //---MARKER---
+diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
+index 5f4455f..57231b3 100644
+--- sfx2/source/appl/appinit.cxx
++++ sfx2/source/appl/appinit.cxx
+@@ -90,8 +90,8 @@
+ #ifndef _RTL_USTRBUF_HXX_
+ #include <rtl/ustrbuf.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ #ifndef _UCBHELPER_CONFIGURATIONKEYS_HXX_
+ #include <ucbhelper/configurationkeys.hxx>
+diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
+index 5b4f7cf..6974d12 100644
+--- sfx2/source/dialog/filedlghelper.cxx
++++ sfx2/source/dialog/filedlghelper.cxx
+@@ -144,8 +144,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ 
+ #ifndef _SV_CVTGRF_HXX
+@@ -2568,7 +2568,7 @@ void FileDialogHelper::SetDisplayDirectory( const String& _rPath )
+         if ( sFolder.getLength() == 0 )
+         {
+             // _rPath is not a valid path -> fallback to home directory
+-            vos::OSecurity aSecurity;
++            osl::Security aSecurity;
+             aSecurity.getHomeDir( sFolder );
+         }
+         mpImp->displayFolder( sFolder );
+diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
+index 8324445..f8e7c08 100644
+--- svtools/inc/pch/precompiled_svtools.hxx
++++ svtools/inc/pch/precompiled_svtools.hxx
+@@ -433,7 +433,7 @@
+ #include <osl/mutex.hxx>
+ #include <rtl/ref.hxx>
+ #include <salhelper/simplereferenceobject.hxx>
+-#include <vos/security.hxx>
++#include <osl/security.hxx>
+ #include <osl/thread.hxx>
+ #include <vos/timer.hxx>
+ 
+diff --git a/svtools/source/dialogs/filedlg2.cxx b/svtools/source/dialogs/filedlg2.cxx
+index d748d7b..002c782 100644
+--- svtools/source/dialogs/filedlg2.cxx
++++ svtools/source/dialogs/filedlg2.cxx
+@@ -61,8 +61,8 @@
+ #include <vcl/msgbox.hxx>
+ #endif
+ 
+-#ifndef _VOS_SECURITY_HXX_
+-#include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#include <osl/security.hxx>
+ #endif
+ 
+ #ifndef _COM_SUN_STAR_I18N_XCOLLATOR_HPP_
+@@ -373,7 +373,7 @@ IMPL_LINK( ImpPathDialog, ClickHdl, Button*, pBtn )
+ 	if ( pBtn == pHomeBtn )
+ 	{
+ 		::rtl::OUString aHomeDir;
+-		vos::OSecurity aSecurity;
++		osl::Security aSecurity;
+ 		if ( aSecurity.getHomeDir( aHomeDir ) )
+ 		{
+ 			DirEntry aFile ( aHomeDir );
+diff --git a/vos/inc/vos/pipe.hxx b/vos/inc/vos/pipe.hxx
+index 7a1f8ac..3067a42 100644
+--- vos/inc/vos/pipe.hxx
++++ vos/inc/vos/pipe.hxx
+@@ -55,8 +55,8 @@
+ #ifndef _VOS_REFOBJ_HXX_
+ #   include <vos/refobj.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#   include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#   include <osl/security.hxx>
+ #endif
+ #ifndef _RTL_USTRING_HXX_
+ #   include <rtl/ustring.hxx>
+@@ -123,7 +123,7 @@ public:
+         @param Security
+     */
+     OPipe(const ::rtl::OUString& strName, TPipeOption Options,
+-          const vos::OSecurity& rSecurity);
++          const osl::Security& rSecurity);
+ 
+     /** Copy constructor.
+     */
+@@ -154,7 +154,7 @@ public:
+         @return True if socket was successfully created.
+     */
+     sal_Bool SAL_CALL create(const ::rtl::OUString& strName, TPipeOption Options,
+-                   const vos::OSecurity& rSecurity);
++                   const osl::Security& rSecurity);
+ 
+     /** Assignment operator. If pipe was already created, the old one will
+         be discarded.
+diff --git a/vos/inc/vos/process.hxx b/vos/inc/vos/process.hxx
+index d8db5b6..2440c5a 100644
+--- vos/inc/vos/process.hxx
++++ vos/inc/vos/process.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _RTL_USTRING_HXX_
+ #   include <rtl/ustring.hxx>
+ #endif
+-#ifndef _VOS_SECURITY_HXX_
+-#   include <vos/security.hxx>
++#ifndef _OSL_SECURITY_HXX_
++#   include <osl/security.hxx>
+ #endif
+ #ifndef _VOS_OBJECT_HXX_
+ #   include <vos/object.hxx>
+@@ -211,7 +211,7 @@ public:
+         @see OStartupInfo::acceptIOResource
+     */
+     TProcessError SAL_CALL execute(TProcessOption Options,
+-                          const OSecurity &Security,
++                          const osl::Security &Security,
+                           const OArgumentList& aArgumentList = OArgumentList(),
+                           const OEnvironment&  aEnvironment  = OEnvironment()
+                          );
+diff --git a/vos/inc/vos/security.hxx b/vos/inc/vos/security.hxx
+deleted file mode 100644
+index 8f41fd9..0000000
+--- vos/inc/vos/security.hxx
++++ /dev/null
+@@ -1,135 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: security.hxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:39:33 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_SECURITY_HXX_
+-#define _VOS_SECURITY_HXX_
+-
+-#ifndef _VOS_OBJECT_HXX_
+-#   include <vos/object.hxx>
+-#endif
+-#ifndef _RTL_USTRING_HXX_
+-#   include <rtl/ustring.hxx>
+-#endif
+-#ifndef _OSL_SECURITY_H_
+-#   include <osl/security.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-/** capsulate security informations for one user.
+-    A object of this class is used to execute a process with the rights an
+-    security options of a scecified user.
+-    @see OProcess::executeProcess
+-    @author  Bernd Hofner
+-    @version 1.0
+-
+-*/
+-class OSecurity : public OObject
+-{
+-    VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OSecurity, vos));
+-
+-public:
+-    /// constructor
+-    OSecurity();
+-    /// destructor
+-    virtual ~OSecurity();
+-    /** get the security information for one user.
+-        The underlying operating system is asked for this information.
+-        @param strName [in] denotes the name of the user
+-        @param strPasswd [in] denotes the password of this user
+-        @return True, if the specified user is known by the underlying operating system,
+-        otherwise False
+-    */
+-    sal_Bool SAL_CALL logonUser(const ::rtl::OUString& strName,
+-                                const ::rtl::OUString& strPasswd);
+-    /** get the security information for one user.
+-        This method will try to login the user at the denoted file server.
+-        If a network resource named \\server\username exists and this resource
+-        could be connected by this user, the methos will return true and getHomeDir
+-        will return \\server\username.
+-        @param strName [in] denotes the name of the user
+-        @param strPasswd [in] denotes the password of this user
+-        @return True, if the specified user is known by file server and the
+-        could be connected, otherwise False
+-    */
+-    sal_Bool SAL_CALL logonUser(const ::rtl::OUString& strName,
+-                                const ::rtl::OUString& strPasswd,
+-                                const ::rtl::OUString& strFileServer);
+-
+-    /** get the ident of the logged in user.
+-        @param strName [out] is the buffer which returns the name
+-        @param max [in] is the size of this buffer
+-        @return True, if any user is successfuly logged in, otherwise False
+-    */
+-    sal_Bool SAL_CALL getUserIdent(::rtl::OUString& strIdent) const;
+-
+-    /** get the name of the logged in user.
+-        @param strName [out] is the buffer which returns the name
+-        @param max [in] is the size of this buffer
+-        @return True, if any user is successfuly logged in, otherwise False
+-    */
+-    sal_Bool SAL_CALL getUserName(::rtl::OUString& strName) const;
+-
+-    /** get the home directory of the logged in user.
+-        @param strDirectory [out] is the buffer which returns the directory name
+-        @param max [in] is the size of this buffer
+-        @return True, if any user is successfuly logged in, otherwise False
+-    */
+-    sal_Bool SAL_CALL getHomeDir(::rtl::OUString& strDirectory) const;
+-
+-    /** get the directory for configuration data of the logged in user.
+-        @param strDirectory [out] is the buffer which returns the directory name
+-        @param max [in] is the size of this buffer
+-        @return True, if any user is successfuly logged in, otherwise False
+-    */
+-    sal_Bool SAL_CALL getConfigDir(::rtl::OUString& strDirectory) const;
+-
+-    /** Query if the user who is logged inhas administrator rigths.
+-        @return True, if the user has administrator rights, otherwise false.
+-    */
+-    sal_Bool SAL_CALL isAdministrator() const;
+-
+-    virtual SAL_CALL operator oslSecurity() const;
+-
+-protected:
+-
+-    oslSecurity m_oslSecurity;
+-};
+-
+-}
+-
+-#endif  // _VOS_SECURITY_HXX_
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+index 61584e7..0d2ae51 100644
+--- vos/source/makefile.mk
++++ vos/source/makefile.mk
+@@ -53,7 +53,6 @@ SLOFILES= \
+ 				$(SLO)$/stream.obj      \
+ 				$(SLO)$/timer.obj       \
+ 				$(SLO)$/process.obj     \
+-				$(SLO)$/security.obj    \
+ 				$(SLO)$/pipe.obj
+ 
+ 
+@@ -66,7 +65,6 @@ OBJFILES= \
+ 				$(OBJ)$/stream.obj      \
+ 				$(OBJ)$/timer.obj       \
+ 				$(OBJ)$/process.obj     \
+-				$(OBJ)$/security.obj    \
+ 				$(OBJ)$/pipe.obj
+ 
+ .ENDIF
+diff --git a/vos/source/pipe.cxx b/vos/source/pipe.cxx
+index d280fae..1669b80 100644
+--- vos/source/pipe.cxx
++++ vos/source/pipe.cxx
+@@ -76,12 +76,12 @@ OPipe::OPipe( const rtl::OUString& strName, TPipeOption Options)
+ 
+ OPipe::OPipe( const rtl::OUString& strName,
+ 			  TPipeOption Options,
+-			  const OSecurity& rSecurity)
++			  const osl::Security& rSecurity)
+ {
+ 	m_pPipeRef= 
+ 		new PipeRef(osl_createPipe(strName.pData, 
+ 								   (oslPipeOptions)Options, 
+-								   (oslSecurity)rSecurity));
++								   rSecurity.getHandle()));
+ 	
+ 	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+ 	OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
+@@ -146,7 +146,7 @@ sal_Bool OPipe::create( const rtl::OUString& strName, TPipeOption Options )
+ /*****************************************************************************/
+ sal_Bool OPipe::create( const rtl::OUString& strName,
+ 						TPipeOption Options,
+-						const vos::OSecurity& rSecurity ) 
++						const osl::Security& rSecurity ) 
+ {
+ 	// if this was a valid pipe, decrease reference
+ 	if ((m_pPipeRef) && (m_pPipeRef->release() == 0))
+@@ -159,7 +159,7 @@ sal_Bool OPipe::create( const rtl::OUString& strName,
+ 	m_pPipeRef= 
+ 		new PipeRef(osl_createPipe(strName.pData, 
+ 								   (oslPipeOptions)Options, 
+-								   (oslSecurity)rSecurity));
++								   rSecurity.getHandle()));
+ 
+ 	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+ 
+diff --git a/vos/source/process.cxx b/vos/source/process.cxx
+index ac6a509..3872bbc 100644
+--- vos/source/process.cxx
++++ vos/source/process.cxx
+@@ -296,7 +296,7 @@ OProcess::TProcessError OProcess::execute(TProcessOption Options,
+ 
+ 
+ OProcess::TProcessError OProcess::execute( TProcessOption Options,
+-										   const OSecurity &Security,
++										   const osl::Security &Security,
+ 										   const OArgumentList& aArgumentList,
+ 										   const OEnvironment&  aEnvironment )
+ {
+@@ -304,7 +304,7 @@ OProcess::TProcessError OProcess::execute( TProcessOption Options,
+ 								              aArgumentList.m_aVec,
+ 											  aArgumentList.n_Args,
+ 											  Options, 
+-								              Security,
++								              Security.getHandle(),
+ 								              m_strDirectory.pData,
+ 								              aEnvironment.m_aVec,
+ 											  aEnvironment.n_Vars,
+diff --git a/vos/source/security.cxx b/vos/source/security.cxx
+deleted file mode 100644
+index cb33330..0000000
+--- vos/source/security.cxx
++++ /dev/null
+@@ -1,124 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: security.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:43:47 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <vos/security.hxx>
+-#include <osl/diagnose.h>
+-
+-using namespace vos;
+-
+-/////////////////////////////////////////////////////////////////////////////
+-// Object super class
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OSecurity, vos), VOS_NAMESPACE(OSecurity, vos), VOS_NAMESPACE(OObject, vos), 0);
+-
+-OSecurity::OSecurity()
+-{
+-	m_oslSecurity = osl_getCurrentSecurity();
+-}
+-
+-OSecurity::~OSecurity()
+-{
+-    osl_freeSecurityHandle(m_oslSecurity);
+-}
+-
+-sal_Bool OSecurity::logonUser(const rtl::OUString& strName,
+-							  const rtl::OUString& strPasswd)
+-{
+-    osl_freeSecurityHandle(m_oslSecurity);
+-	
+-    m_oslSecurity = NULL;
+-    
+-	return (osl_loginUser( strName.pData, strPasswd.pData, &m_oslSecurity) 
+-	        == osl_Security_E_None);
+-}
+-
+-
+-sal_Bool OSecurity::logonUser( const rtl::OUString& strName,
+-							   const rtl::OUString& strPasswd,
+-							   const rtl::OUString& strFileServer )
+-{
+-    osl_freeSecurityHandle(m_oslSecurity);
+-	
+-    m_oslSecurity = NULL;
+-	
+-    return (osl_loginUserOnFileServer(strName.pData, strPasswd.pData, strFileServer.pData, &m_oslSecurity) 
+-	        == osl_Security_E_None);
+-}
+-
+-
+-sal_Bool OSecurity::getUserIdent( rtl::OUString& strIdent) const
+-{
+-	OSL_ASSERT(m_oslSecurity);
+-	
+-    return osl_getUserIdent( m_oslSecurity, &strIdent.pData );
+-}
+-
+-
+-sal_Bool OSecurity::getUserName( rtl::OUString& strName ) const
+-{
+-	OSL_ASSERT(m_oslSecurity);
+-
+-    return osl_getUserName( m_oslSecurity, &strName.pData );
+-}
+-
+-
+-sal_Bool OSecurity::getHomeDir( rtl::OUString& strDirectory) const
+-{
+-	OSL_ASSERT(m_oslSecurity);
+-	
+-    return osl_getHomeDir(m_oslSecurity, &strDirectory.pData );
+-}
+-
+-
+-sal_Bool OSecurity::getConfigDir( rtl::OUString& strDirectory ) const
+-{
+-	OSL_ASSERT(m_oslSecurity);
+-	
+-    return osl_getConfigDir( m_oslSecurity, &strDirectory.pData );
+-}
+-
+-sal_Bool OSecurity::isAdministrator() const
+-{
+-	OSL_ASSERT(m_oslSecurity);
+-
+-    return osl_isAdministrator(m_oslSecurity);
+-}
+-
+-OSecurity::operator oslSecurity() const
+-{
+-    return m_oslSecurity;
+-}
+-
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-dynamic-screens-fix-m14.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-dynamic-screens-fix-m14.diff
@@ -0,0 +1,469 @@
+--- config_office/configure.in.before	2008-04-28 10:31:26.000000000 +0200
++++ config_office/configure.in	2008-04-28 10:32:01.000000000 +0200
+@@ -274,6 +274,9 @@
+ AC_ARG_ENABLE(xrender-link,
+ [  --enable-xrender-link   link with libXrender instead of dynamically open it
+ ],,)
++AC_ARG_ENABLE(randr,
++[  --disable-randr          disable RandR support in the vcl project
++],,enable_randr=yes)
+ AC_ARG_WITH(myspell-dicts,
+ [  --without-myspell-dicts Removes myspell dictionaries from openoffice.org
+                           installation set, for people building for specific
+@@ -838,6 +841,7 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=yes
++        test_randr=yes
+ 		_os=SunOS
+ 
+ 		dnl ===========================================================
+@@ -865,6 +869,7 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=yes
++        test_randr=yes
+ 		if getconf GNU_LIBPTHREAD_VERSION |grep -q NPTL; then
+ 			PTHREAD_CFLAGS="-DNPTL"
+ 		fi
+@@ -884,6 +889,7 @@
+ 		test_gtk=yes
+ 		build_cairo=no
+ 		build_gstreamer=no
++        test_randr=no
+ 		_os=Darwin
+       if test "$enable_systray" = "yes" && test "$enable_gtk" != "no"; then
+          AC_MSG_WARN([Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray])
+@@ -894,6 +900,7 @@
+ 	os2*)
+ 		test_x=no
+ 		test_cups=no
++        test_randr=no
+ 		test_gtk=no
+ 		_os=OS2
+ 		;;
+@@ -903,6 +910,7 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=yes
++        test_randr=yes
+ 		AC_MSG_CHECKING([the FreeBSD operating system release])
+ 		if test -n "$with_os_version"; then
+ 			OSVERSION="$with_os_version"
+@@ -926,6 +934,7 @@
+ 		;;
+ 	osf)
+ 		test_cups=no
++        test_randr=no
+ 		_os=OSF1
+ 		;;
+ 	netbsd)
+@@ -934,16 +943,19 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=no
++        test_randr=yes
+ 		PTHREAD_CFLAGS="-pthread"
+ 		PTHREAD_LIBS="-pthread -lpthread"
+ 		_os=NetBSD
+ 		;;
+ 	irix*)
+ 		test_cups=no
++        test_randr=no
+ 		_os=IRIX
+ 		;;
+ 	aix*)
+ 		test_cups=no
++        test_randr=no
+ 	   PTHREAD_LIBS=-pthread
+ 		echo "AIX is an alpha port --- Use at own risk" >> warn
+ 		_os=AIX
+@@ -1123,6 +1135,19 @@
+ AC_SUBST(ENABLE_FONTCONFIG)
+ 
+ dnl ===================================================================
++dnl Build options
++dnl ===================================================================
++AC_MSG_CHECKING([whether to enable RandR support])
++if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then
++   ENABLE_RANDR="TRUE"
++   AC_MSG_RESULT([yes])
++else
++   ENABLE_RANDR=""
++   AC_MSG_RESULT([no])
++fi
++AC_SUBST(ENABLE_RANDR)
++
++dnl ===================================================================
+ dnl Disable legacy binary file formats filters
+ dnl ===================================================================
+ AC_MSG_CHECKING([whether to enable filters for legacy binary file formats (StarOffice 5.2)])
+@@ -1915,7 +1940,15 @@
+ fi
+ 
+ dnl ===================================================================
++dnl Check if X11/extensions/Xrandr.h is available 
++dnl ===================================================================
++if test "$test_randr" = "yes" -a "$ENABLE_RANDR" = "TRUE" ; then
++    AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
++                    [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
++fi
++
++dnl ===================================================================
+ dnl Check if PAM/pam_appl.h is available on Linux or FreeBSD
+ dnl ===================================================================
+ if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "GNU"; then
+
+--- vcl/unx/gtk/app/gtkdata.cxx	29 Jan 2008 16:20:56 -0000	1.36
++++ vcl/unx/gtk/app/gtkdata.cxx	7 Mar 2008 16:59:00 -0000	1.36.16.1
+@@ -191,6 +191,7 @@ GdkFilterReturn GtkSalDisplay::filterGdk
+             }
+         }
+         X11SalObject::Dispatch( pEvent );
++        pDisplay->processRandREvent( pEvent );
+     }
+ 
+     return aFilterReturn;
+--- vcl/unx/inc/saldisp.hxx	27 Feb 2008 10:32:35 -0000	1.44
++++ vcl/unx/inc/saldisp.hxx	12 Mar 2008 09:39:09 -0000	1.43.16.2
+@@ -418,6 +418,9 @@ protected:	
+     void			DestroyFontCache();
+     virtual long	Dispatch( XEvent *pEvent ) = 0;
+     void			InitXinerama();
++    void            InitRandR( XLIB_Window aRoot ) const;
++    void            DeInitRandR();
++    int             processRandREvent( XEvent* );
+ 
+     void			doDestruct();
+ public:
+--- vcl/unx/source/app/makefile.mk	7 Mar 2008 17:12:23 -0000	1.30
++++ vcl/unx/source/app/makefile.mk	1 Apr 2008 10:31:13 -0000	1.29.16.3
+@@ -64,6 +64,7 @@ SLOFILES=\
+ 			$(SLO)$/saldata.obj			\
+ 			$(SLO)$/saltimer.obj		\
+ 			$(SLO)$/saldisp.obj			\
++			$(SLO)$/randrwrapper.obj	\
+ 			$(SLO)$/salinst.obj			\
+ 			$(SLO)$/salsys.obj			\
+ 			$(SLO)$/soicon.obj			\
+@@ -81,6 +82,12 @@ EXCEPTIONSFILES=\
+             $(SLO)$/salsys.obj
+ 
+ 
++.IF "$(ENABLE_RANDR)" != ""
++.IF "$(OS)" != "SOLARIS"
++CDEFS+=-DUSE_RANDR
++.ENDIF
++.ENDIF
++
+ .IF "$(USE_XINERAMA)" != "NO"
+ CDEFS+=-DUSE_XINERAMA
+ .IF "$(USE_XINERAMA_VERSION)" == "Xorg"
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ vcl/unx/source/app/randrwrapper.cxx	15 Mar 2008 14:29:42 -0000	1.1.2.2
+@@ -0,0 +1,250 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifdef USE_RANDR
++
++#include "prex.h"
++#include <X11/extensions/Xrandr.h>
++#include "postx.h"
++
++#include "osl/module.h"
++#include "rtl/ustring.hxx"
++
++namespace
++{
++class RandRWrapper
++{
++    oslModule m_pRandRLib;
++    
++    // function pointers
++    Bool(*m_pXRRQueryExtension)(Display*,int*,int*);
++    Status(*m_pXRRQueryVersion)(Display*,int*,int*);
++    XRRScreenConfiguration*(*m_pXRRGetScreenInfo)(Display*,Drawable);
++    void(*m_pXRRFreeScreenConfigInfo)(XRRScreenConfiguration*);
++    void(*m_pXRRSelectInput)(Display*,XLIB_Window,int);
++    int(*m_pXRRUpdateConfiguration)(XEvent*);
++    XRRScreenSize*(*m_pXRRSizes)(Display*,int,int*);
++    XRRScreenSize*(*m_pXRRConfigSizes)(XRRScreenConfiguration*,int*);
++    SizeID(*m_pXRRConfigCurrentConfiguration)(XRRScreenConfiguration*,Rotation*);
++    
++    bool m_bValid;
++    
++    void initFromModule();
++    
++    RandRWrapper(Display*);
++    ~RandRWrapper();
++public:
++    static RandRWrapper& get(Display*);
++    static void releaseWrapper();
++    
++    Bool XRRQueryExtension(Display* i_pDisp, int* o_event_base, int* o_error_base )
++    {
++        Bool bRet = False;
++        if( m_bValid )
++            bRet = m_pXRRQueryExtension( i_pDisp, o_event_base, o_error_base );
++        return bRet;
++    }
++    Status XRRQueryVersion( Display* i_pDisp, int* o_major, int* o_minor )
++    {
++        return m_bValid ? m_pXRRQueryVersion( i_pDisp, o_major, o_minor ) : 0;
++    }
++    XRRScreenConfiguration* XRRGetScreenInfo( Display* i_pDisp, Drawable i_aDrawable )
++    {
++        return m_bValid ? m_pXRRGetScreenInfo( i_pDisp, i_aDrawable ) : NULL;
++    }
++    void XRRFreeScreenConfigInfo( XRRScreenConfiguration* i_pConfig )
++    {
++        if( m_bValid )
++            m_pXRRFreeScreenConfigInfo( i_pConfig );
++    }
++    void XRRSelectInput( Display* i_pDisp, XLIB_Window i_window, int i_nMask )
++    {
++        if( m_bValid )
++            m_pXRRSelectInput( i_pDisp, i_window, i_nMask );
++    }
++    int XRRUpdateConfiguration( XEvent* i_pEvent )
++    {
++        return m_bValid ? m_pXRRUpdateConfiguration( i_pEvent ) : 0;
++    }
++    XRRScreenSize* XRRSizes( Display* i_pDisp, int i_screen, int* o_nscreens )
++    {
++        return m_bValid ? m_pXRRSizes( i_pDisp, i_screen, o_nscreens ) : NULL;
++    }
++    XRRScreenSize* XRRConfigSizes( XRRScreenConfiguration* i_pConfig, int* o_nSizes )
++    {
++        return m_bValid ? m_pXRRConfigSizes( i_pConfig, o_nSizes ) : NULL;
++    }
++    SizeID XRRConfigCurrentConfiguration( XRRScreenConfiguration* i_pConfig, Rotation* o_pRot )
++    {
++        return m_bValid ? m_pXRRConfigCurrentConfiguration( i_pConfig, o_pRot ) : 0;
++    }
++};
++}
++
++void RandRWrapper::initFromModule()
++{
++    m_pXRRQueryExtension = (Bool(*)(Display*,int*,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRQueryExtension" );
++    m_pXRRQueryVersion = (Status(*)(Display*,int*,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRQueryVersion" );
++    m_pXRRGetScreenInfo = (XRRScreenConfiguration*(*)(Display*,Drawable))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRGetScreenInfo" );
++    m_pXRRFreeScreenConfigInfo = (void(*)(XRRScreenConfiguration*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRFreeScreenConfigInfo" );
++    m_pXRRSelectInput = (void(*)(Display*,XLIB_Window,int))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRSelectInput" );
++    m_pXRRUpdateConfiguration = (int(*)(XEvent*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRUpdateConfiguration" );
++    m_pXRRSizes = (XRRScreenSize*(*)(Display*,int,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRSizes" );
++    m_pXRRConfigSizes = (XRRScreenSize*(*)(XRRScreenConfiguration*,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRConfigSizes" );
++    m_pXRRConfigCurrentConfiguration = (SizeID(*)(XRRScreenConfiguration*,Rotation*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRConfigCurrentConfiguration" );
++    
++    m_bValid = m_pXRRQueryExtension             &&
++               m_pXRRQueryVersion               &&
++               m_pXRRGetScreenInfo              &&
++               m_pXRRFreeScreenConfigInfo       &&
++               m_pXRRSelectInput                &&
++               m_pXRRUpdateConfiguration        &&
++               m_pXRRSizes                      &&
++               m_pXRRConfigSizes                &&
++               m_pXRRConfigCurrentConfiguration
++               ;
++}
++
++RandRWrapper::RandRWrapper( Display* pDisplay ) :
++        m_pRandRLib( NULL ),
++        m_pXRRQueryExtension( NULL ),
++        m_pXRRQueryVersion( NULL ),
++        m_pXRRGetScreenInfo( NULL ),
++        m_pXRRFreeScreenConfigInfo( NULL ),
++        m_pXRRSelectInput( NULL ),
++        m_pXRRUpdateConfiguration( NULL ),
++        m_pXRRSizes( NULL ),
++        m_pXRRConfigSizes( NULL ),
++        m_pXRRConfigCurrentConfiguration( NULL ),
++        m_bValid( false )
++{
++    // first try in process space (e.g. gtk links that ?)
++    initFromModule();
++    if( ! m_bValid )
++    {
++        rtl::OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( "libXrandr.so.2" ) );
++        m_pRandRLib = osl_loadModule( aLibName.pData, SAL_LOADMODULE_DEFAULT );
++        initFromModule();
++    }
++    if( m_bValid )
++    {
++        int nEventBase = 0, nErrorBase = 0;
++        if( ! m_pXRRQueryExtension( pDisplay, &nEventBase, &nErrorBase ) )
++            m_bValid = false;
++    }
++}
++
++RandRWrapper::~RandRWrapper()
++{
++    if( m_pRandRLib )
++        osl_unloadModule( m_pRandRLib );
++}
++
++static RandRWrapper* pWrapper = NULL;
++
++RandRWrapper& RandRWrapper::get( Display* i_pDisplay )
++{
++    if( ! pWrapper )
++        pWrapper = new RandRWrapper( i_pDisplay );
++    return *pWrapper;
++}
++
++void RandRWrapper::releaseWrapper()
++{
++    delete pWrapper;
++    pWrapper = NULL;
++}
++
++#endif
++
++#include "saldisp.hxx"
++
++void SalDisplay::InitRandR( XLIB_Window aRoot ) const
++{
++    #ifdef USE_RANDR
++    RandRWrapper::get( GetDisplay() ).XRRSelectInput( GetDisplay(), aRoot, RRScreenChangeNotifyMask );
++    #else
++    (void)aRoot;
++    #endif
++}
++
++void SalDisplay::DeInitRandR()
++{
++    #ifdef USE_RANDR
++    RandRWrapper::releaseWrapper();
++    #endif
++}
++
++int SalDisplay::processRandREvent( XEvent* pEvent )
++{
++    int nRet = 0;
++    #ifdef USE_RANDR
++    if( pWrapper )
++    {
++        nRet = pWrapper->XRRUpdateConfiguration( pEvent );
++        if( nRet == 1 && pEvent->type != ConfigureNotify) // this should then be a XRRScreenChangeNotifyEvent
++        {
++            // update screens
++            for( size_t i = 0; i < m_aScreens.size(); i++ )
++            {
++                if( m_aScreens[i].m_bInit )
++                {
++                    XRRScreenConfiguration *pConfig = NULL;
++                    XRRScreenSize *pSizes = NULL;
++                    int nSizes = 0;
++                    Rotation nRot = 0;
++                    SizeID nId = 0;
++                
++                    pConfig = pWrapper->XRRGetScreenInfo( GetDisplay(), m_aScreens[i].m_aRoot );
++                    nId = pWrapper->XRRConfigCurrentConfiguration( pConfig, &nRot );
++                    pSizes = pWrapper->XRRConfigSizes( pConfig, &nSizes );
++                    XRRScreenSize *pTargetSize = pSizes + nId;
++                
++                    m_aScreens[i].m_aSize = Size( pTargetSize->width, pTargetSize->height );
++    
++                    pWrapper->XRRFreeScreenConfigInfo( pConfig );
++
++                    #if OSL_DEBUG_LEVEL > 1
++                    fprintf( stderr, "screen %d changed to size %dx%d\n", i, pTargetSize->width, pTargetSize->height );
++                    #endif
++                }
++            }
++        }
++    }
++    #else
++    (void)pEvent;
++    #endif
++    return nRet;
++}
+--- vcl/unx/source/app/saldisp.cxx	29 Jan 2008 16:22:34 -0000	1.93
++++ vcl/unx/source/app/saldisp.cxx	31 Mar 2008 16:44:44 -0000	1.93.16.2
+@@ -70,7 +70,7 @@
+ 
+ #ifdef USE_XINERAMA
+ #ifdef USE_XINERAMA_XORG
+-#if defined(X86) || defined(MACOSX)
++#if defined(X86) || defined(X86_64) || defined(MACOSX)
+ #include <X11/extensions/Xinerama.h>
+ #endif
+ #elif defined USE_XINERAMA_XSUN
+@@ -715,6 +715,9 @@ SalX11Display::~SalX11Display()
+ 		XCloseDisplay( pDisp_ );
+ 		pDisp_ = NULL;
+ 	}
++    // don't do this in doDestruct since RandR extension adds hooks into Display
++    // that is XCloseDisplay still needs the RandR library if it was used
++    DeInitRandR();
+ }
+ 
+ void SalDisplay::initScreen( int nScreen ) const
+@@ -743,6 +746,9 @@ void SalDisplay::initScreen( int nScreen
+     rSD.m_aRoot = RootWindow( pDisp_, nScreen );
+     rSD.m_aVisual = SalVisual( &aVI );
+     rSD.m_aColormap = SalColormap( this, aColMap, nScreen );
++    
++    // we're interested in configure notification of root windows
++    InitRandR( rSD.m_aRoot );
+ 
+     // - - - - - - - - - - Reference Window/Default Drawable - -
+     XSetWindowAttributes aXWAttributes;
+@@ -2416,10 +2422,13 @@ long SalX11Display::Dispatch( XEvent *pE
+ 			return pFrame->Dispatch( pEvent );
+ 		}
+     }
+-
++    
+ 	// dispatch to salobjects
+ 	X11SalObject::Dispatch( pEvent );
+ 
++    // is this perhaps a root window that changed size ?
++    processRandREvent( pEvent );
++
+     return 0;
+ }
+ 
+@@ -2688,7 +2833,7 @@ void SalDisplay::InitXinerama()
+         }
+     }
+ #elif defined(USE_XINERAMA_XORG)
+-#if defined( X86 ) || defined( MACOSX )
++#if defined(X86) || defined(X86_64) || defined(MACOSX)
+ if( XineramaIsActive( pDisp_ ) )
+ {
+     int nFramebuffers = 1;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/hebrew-culmus.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/hebrew-culmus.diff
@@ -0,0 +1,35 @@
+--- officecfg/registry/data/org/openoffice/VCL.xcu	2007-11-26 10:26:37.000000000 +0000
++++ officecfg.patched/registry/data/org/openoffice/VCL.xcu	2007-11-26 16:34:00.000000000 +0000
+@@ -468,25 +468,25 @@
+     </node>
+     <node oor:name="he" oor:op="replace">
+      <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
+-        <value>tahoma;nachlieli;lucidagrande;lucidasans;supplement;Andale Sans UI;arialunicodems;lucidasansunicode;interfaceuser;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;supplement;Andale Sans UI;arialunicodems;lucidasansunicode;interfaceuser;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
+      </prop>
+       <prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace">
+-        <value>lucidasans;arialunicodems;lucidasansunicode;tahoma;nachlieli;lucidagrande;clearlyu;lucida;sansserif</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;lucidasans;arialunicodems;lucidasansunicode;tahoma;nachlieli;lucidagrande;clearlyu;lucida;sansserif</value>
+       </prop>
+      <prop oor:name="CTL_DISPLAY" oor:type="xs:string" oor:op="replace">
+-        <value>tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
+      </prop>
+      <prop oor:name="CTL_HEADING" oor:type="xs:string" oor:op="replace">
+-        <value>tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
+      </prop>
+      <prop oor:name="CTL_PRESENTATION" oor:type="xs:string" oor:op="replace">
+-        <value>tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
+      </prop>
+      <prop oor:name="CTL_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+-        <value>tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
+      </prop>
+      <prop oor:name="CTL_TEXT" oor:type="xs:string" oor:op="replace">
+-        <value>tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
++        <value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value>
+      </prop>
+     </node>
+     <node oor:name="th" oor:op="replace">
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vba-attribute.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vba-attribute.diff
@@ -0,0 +1,95 @@
+Index: basic/source/comp/dim.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/dim.cxx,v
+retrieving revision 1.10.32.3
+diff -u -p -u -r1.10.32.3 dim.cxx
+--- basic/source/comp/dim.cxx	17 Feb 2004 12:59:22 -0000	1.10.32.3
++++ basic/source/comp/dim.cxx	29 Apr 2004 15:44:09 -0000
+@@ -794,6 +794,24 @@ void SbiParser::Declare()
+ 	}
+ }
+ 
++void SbiParser::Attribute()
++{
++	// TODO: Need to implement the method as an attributed object.
++	while( Next() != EQ )
++	{
++		String aSym( GetSym() );
++		if( Next() != DOT) 
++			break;
++	}
++	
++	if( eCurTok != EQ )
++		Error( SbERR_SYNTAX );
++	else
++		SbiExpression aValue( this );
++
++	// Don't generate any code - just discard it.
++}
++
+ // Aufruf einer SUB oder FUNCTION
+ 
+ void SbiParser::Call()
+Index: basic/source/comp/parser.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/parser.cxx,v
+retrieving revision 1.5.32.1
+diff -u -p -u -r1.5.32.1 parser.cxx
+--- basic/source/comp/parser.cxx	20 Jan 2004 09:59:25 -0000	1.5.32.1
++++ basic/source/comp/parser.cxx	29 Apr 2004 15:44:09 -0000
+@@ -83,6 +83,7 @@ struct SbiStatement {
+ #define	N	FALSE
+ 
+ static SbiStatement StmntTable [] = {
++{ ATTRIBUTE, &SbiParser::Attribute, Y, Y, }, // ATTRIBUTE
+ { CALL,		&SbiParser::Call,   	N, Y, }, // CALL
+ { CLOSE,	&SbiParser::Close,		N, Y, }, // CLOSE
+ { _CONST_,	&SbiParser::Dim, 		Y, Y, }, // CONST
+Index: basic/source/comp/token.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/token.cxx,v
+retrieving revision 1.4.44.1
+diff -u -p -u -r1.4.44.1 token.cxx
+--- basic/source/comp/token.cxx	20 Jan 2004 10:00:20 -0000	1.4.44.1
++++ basic/source/comp/token.cxx	29 Apr 2004 15:44:09 -0000
+@@ -89,6 +89,7 @@ static TokenTable aTokTable_Basic [] = {
+ 	{ ANY,		"Any" },
+ 	{ APPEND,	"Append" },
+ 	{ AS,		"As" },
++	{ ATTRIBUTE,"Attribute" },
+ 	{ BASE,		"Base" },
+ 	{ BINARY,	"Binary" },
+ 	{ TBOOLEAN,	"Boolean" },
+
+Index: basic/source/inc/parser.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/parser.hxx,v
+retrieving revision 1.1.1.1.134.1
+diff -u -p -u -r1.1.1.1.134.1 parser.hxx
+--- basic/source/inc/parser.hxx	20 Jan 2004 10:00:40 -0000	1.1.1.1.134.1
++++ basic/source/inc/parser.hxx	4 May 2004 09:08:36 -0000
+@@ -136,6 +136,7 @@ public:
+ 	void BadSyntax();				// Falsches SbiToken
+ 	void NoIf();					// ELSE/ELSE IF ohne IF
+ 	void Assign();					// LET
++	void Attribute();				// Attribute
+ 	void Call();					// CALL
+ 	void Close();					// CLOSE
+ 	void Declare();					// DECLARE
+
+Index: basic/source/inc/token.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/token.hxx,v
+retrieving revision 1.2.44.1
+diff -u -p -u -r1.2.44.1 token.hxx
+--- basic/source/inc/token.hxx	20 Jan 2004 10:02:31 -0000	1.2.44.1
++++ basic/source/inc/token.hxx	4 May 2004 09:08:36 -0000
+@@ -108,7 +108,7 @@ enum SbiToken {
+ 	IF, _IN_, INPUT,
+ 	LET, LINE, LINEINPUT, LOCAL, LOOP, LPRINT, LSET,
+ 	NAME, NEW, NEXT,
+-	ON, OPEN, OPTION, IMPLEMENTS,
++	ON, OPEN, OPTION, ATTRIBUTE, IMPLEMENTS,
+ 	PRINT, PRIVATE, PROPERTY, PUBLIC,
+ 	REDIM, REM, RESUME, RETURN, RSET,
+ 	SELECT, SET, SHARED, STATIC, STEP, STOP, SUB,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-toolkit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-toolkit.diff
@@ -0,0 +1,24420 @@
+cvs diff: Diffing toolkit
+cvs diff: Diffing toolkit/doc
+cvs diff: Diffing toolkit/doc/layout
+Index: toolkit/doc/layout/ChangeLog
+===================================================================
+RCS file: toolkit/doc/layout/ChangeLog
+diff -N toolkit/doc/layout/ChangeLog
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/ChangeLog	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,989 @@
++2008-02-11  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* prj/build.lst: Have workspace depend on util, fixes parallel build
++	(thanks kendy, Fridrich).
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/ooo-patch: Update ooo-patch.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/ooo-patch: Add transex3 to ooo-patch.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/ooo-patch: Add transex3 to ooo-patch & update.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/ooo-patch: Add transex3 patch export.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/de/wordcount.xml, workben/de/zoom.xml,
++	workben/nl/wordcount.xml, workben/nl/zoom.xml: Remove
++	hand-translated xml files.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, source/core/proplist.cxx: Grok translatable attributes with
++	_ prefix.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add en-US,de,nl populated localize.sdf for zoom and wordcount.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk: Add compile time tralay translation rule.
++
++2008-02-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/de/wordcount.xml, workben/de/zoom.xml,
++	workben/nl/wordcount.xml, workben/nl/zoom.xml,
++	workben/wordcount.xml, workben/zoom.xml: Prefix translatable
++	attributes with _.
++
++2008-02-04  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, source/core/import.cxx, source/core/import.hxx,
++	source/core/proplist.cxx, source/core/proplist.hxx,
++	source/core/root.cxx, source/core/root.hxx, workben/zoom-1.xml,
++	workben/zoom-2.xml: Support Ivo Hinkelmann's move label/text/title
++	attribute to CONTENT transex3 hack.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/nl/zoom.xml, workben/zoom.xml: Remove unnecessary ~.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* prj/d.lst, workben/de/wordcount.xml, workben/de/zoom.xml,
++	workben/makefile.mk: Add manually translated de/zoom.xml and
++	de/wordcount.xml.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/ooo-patch: Update patch info.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/translate.cxx: Remove #if 0'ed fopen code in
++	fileExists.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/test.cxx: Remove test code.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, prj/d.lst, workben/makefile.mk, workben/ooo-patch: Install
++	nl/*xml files.
++
++2008-01-10  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, source/core/makefile.mk, source/core/root.cxx,
++	source/core/translate.cxx, source/core/translate.hxx,
++	workben/nl/wordcount.xml, workben/nl/zoom.xml, workben/test.cxx: 
++	Implement read-right translation, cheat nl translations for zoom and
++	wordcount.
++
++2008-01-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk: Check for ENABLE_LAYOUT == "TRUE" (was: !=
++	"").  Disables harder, esp. on Sun.
++
++2008-01-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Add comment about Sun build problems.
++
++2008-01-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk: [!ENABLE_LAYOUT]: Do not compile anything in
++	workben.  Also remove unnecessary not portable compiler flags.
++
++2008-01-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Put gcc flags inside GCC conditional.
++
++2008-01-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxbutton.cxx: Use plain sc_BUTTON.png names for
++	standard buttons.
++
++2008-01-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx: Remove zoom.src part from zoom-combobox patch.
++
++2008-01-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/ooo-patch: Update to m1.
++
++2008-01-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/ooo-patch: Update and add i18n TODO.
++
++2008-01-04  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, source/awt/vclxbutton.cxx: Fix l10n for default buttons.
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/ooo-patch: Update for ooo-build svn up.
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/dialogbuttonhbox.cxx, source/core/helper.cxx,
++	source/core/proplist.cxx, util/makefile.pmk, workben/makefile.mk: 
++	TEST_LAYOUT cleanups and fixes.
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : [!TEST_LAYOUT]: Read *.xml from BASE_INSTALLATION/share/layout
++	only.
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wrapper.cxx: Cleanups.
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.xml: Update zoom.xml: in m241 FieldTypes:FUNIT_CUSTOM
++	== 13 (was: 11).
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/dialogbuttons-ok.xml, workben/dialogbuttons-reset.xml,
++	workben/dialogbuttons-save.xml, workben/dialogbuttons-yes.xml: 
++	Remove some cruft from xml.
++
++2007-12-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/box.cxx, source/core/box.hxx,
++	source/core/container.cxx, source/core/dialogbuttonhbox.cxx,
++	source/core/dialogbuttonhbox.hxx, workben/shutdown.xml: Allow other
++	pushbuttons in dialogbuttonhbox too, sort as Action type.
++
++2007-12-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/ooo-patch: Add ooo-patch: facilitate export to ooo-build.
++
++2007-12-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, source/core/box.cxx, source/core/container.cxx,
++	workben/adjust.xml, workben/align.xml, workben/wordcount-tight.xml,
++	workben/wordcount.xml, workben/zoom-indent.xml, workben/zoom.xml: 
++	Default to border=0, padding=0.  Clean xml files.
++
++2007-12-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, inc/layout/layout.hxx, source/awt/vclxbutton.cxx,
++	source/awt/vclxbutton.hxx, source/awt/vclxdialog.cxx,
++	source/core/dialogbuttonhbox.cxx, source/core/dialogbuttonhbox.hxx,
++	source/wrapper/wbutton.cxx, source/wrapper/wcontainer.cxx,
++	workben/dialogbuttons-ok.xml, workben/dialogbuttons-reset.xml,
++	workben/dialogbuttons-save.xml, workben/dialogbuttons-yes.xml,
++	workben/dialogbuttons.xml, workben/editor.cxx, workben/makefile.mk: 
++	Implement more buttons: Yes, No, Retry, Ignore, Reset, Apply.
++
++2007-12-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-12-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/editor.cxx, workben/test.cxx: More whitespace nits.
++
++2007-12-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/box.hxx, source/core/dialogbuttonhbox.cxx,
++	source/core/dialogbuttonhbox.hxx: Refactor dialogbuttonhbox.
++
++2007-12-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* apinotes.txt, doc/apinotes.txt, doc/notes.txt, notes.txt: Move
++	documentation to doc/.
++
++2007-12-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/table.cxx, workben/editor.cxx, workben/test.cxx,
++	workben/uno.hxx: More whitespace fixes.
++
++2007-12-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/dialogbuttonhbox.cxx: Comments and whitespace fixes.
++
++2007-12-18  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* README, TODO, source/awt/vclxbutton.hxx, source/core/box.hxx,
++	source/core/dialogbuttonhbox.cxx, source/core/dialogbuttonhbox.hxx,
++	source/core/helper.cxx, source/core/import.cxx,
++	source/core/makefile.mk, source/core/proplist.cxx,
++	workben/dialogbuttons.xml, workben/wordcount.xml, workben/zoom.xml: 
++	Implement dialog button ordering.
++
++2007-12-18  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxbutton.hxx, source/core/box.hxx,
++	source/core/helper.cxx, source/core/makefile.mk,
++	source/wrapper/wrapper.hxx, workben/editor.cxx, workben/test.cxx,
++	workben/zoom.xml: First attempt at AlertHBox.
++
++2007-12-17  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-12-17  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Merge lilypond.org:vc/layout.git/
++
++2007-12-17  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/wrapper/wrapper.cxx: Implement
++	Dialog::SetParent, add Dialog (::Window *) constructor.
++
++2007-12-17  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Merge lilypond.org:vc/layout.git/
++
++2007-12-17  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Bugfix: update install inc/layout/*.
++
++2007-12-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Apply Michael's TODO patch.
++
++2007-12-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/helper.cxx, source/core/helper.hxx,
++	source/core/proplist.cxx, source/core/proplist.hxx: Move
++	OUSTRING_CSTR define and debugging compile fix & feature.
++
++2007-12-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/timer.cxx: Remove commented-out include.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/editor.cxx, workben/uno.hxx: Add includes for m9.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Major cleanup of includes and header namespace pollution.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, inc/layout/layout-post.hxx, inc/layout/layout.hxx,
++	source/api/com/sun/star/awt/MaxChildrenException.idl,
++	source/api/com/sun/star/awt/XDialog2.idl,
++	source/api/com/sun/star/awt/XLayoutFlow.idl,
++	source/api/com/sun/star/awt/XLayoutFlowContainer.idl,
++	source/api/com/sun/star/awt/XLayoutRoot.idl,
++	source/awt/vclxbutton.cxx, source/awt/vclxbutton.hxx,
++	source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
++	source/awt/vclxfixedline.cxx, source/awt/vclxfixedline.hxx,
++	source/awt/vclxproxy.cxx, source/awt/vclxproxy.hxx,
++	source/awt/vclxscroller.cxx, source/awt/vclxscroller.hxx,
++	source/awt/vclxsplitter.cxx, source/awt/vclxsplitter.hxx,
++	source/awt/vclxtabcontrol.cxx, source/awt/vclxtabcontrol.hxx,
++	source/core/bin.cxx, source/core/bin.hxx, source/core/box.cxx,
++	source/core/box.hxx, source/core/byteseq.cxx,
++	source/core/container.cxx, source/core/container.hxx,
++	source/core/factory.cxx, source/core/factory.hxx,
++	source/core/flow.cxx, source/core/flow.hxx,
++	source/core/globals.hxx, source/core/helper.cxx,
++	source/core/helper.hxx, source/core/import.cxx,
++	source/core/import.hxx, source/core/root.cxx, source/core/root.hxx,
++	source/core/table.cxx, source/core/table.hxx,
++	source/core/timeout.cxx, source/inc/layoutcore.hxx,
++	source/wrapper/wbutton.cxx, source/wrapper/wcontainer.cxx,
++	source/wrapper/wfield.cxx, source/wrapper/wimpl.hxx,
++	source/wrapper/wrapper.cxx: Whitespace and layout cleanups.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxdialog.hxx, source/core/byteseq.cxx,
++	source/core/import.hxx, source/core/root.cxx,
++	source/wrapper/wfield.cxx, source/wrapper/wimpl.hxx,
++	source/wrapper/wrapper.cxx: Cleanup: have braces on separate lines.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/uno.hxx, workben/uno.hxx: Move uno.hxx to workben, no
++	need to export it.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/uno.hxx, source/awt/vclxbutton.cxx,
++	source/awt/vclxdialog.cxx, source/awt/vclxfixedline.cxx,
++	source/awt/vclxproxy.cxx, source/awt/vclxscroller.cxx,
++	source/awt/vclxsplitter.cxx, source/awt/vclxtabcontrol.cxx,
++	source/core/bin.cxx, source/core/box.cxx, source/core/byteseq.cxx,
++	source/core/container.cxx, source/core/container.hxx,
++	source/core/flow.cxx, source/core/globals.hxx,
++	source/core/helper.cxx, source/core/import.cxx,
++	source/core/import.hxx, source/core/root.cxx,
++	source/core/table.cxx, source/core/timeout.cxx,
++	source/wrapper/wbutton.cxx, source/wrapper/wcontainer.cxx,
++	source/wrapper/wfield.cxx, source/wrapper/wimpl.hxx,
++	source/wrapper/wrapper.cxx: Use DBG_ERROR* instead of printing to
++	console.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/box.cxx, source/core/container.cxx,
++	source/core/container.hxx, source/core/helper.cxx,
++	source/core/import.cxx, source/core/table.cxx: Use DBG_ERROR instead
++	of printf for errors.
++
++2007-11-28  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, prj/build.lst: Fix dependency/concurrent make problem.
++
++2007-11-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.cxx: Update wordcountdialog.cxx from sw
++	tree.
++
++2007-11-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Move postprocessing to src2xml.
++
++2007-11-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Move src2xml postprocessing from run-s2x to src2xml.py.
++
++2007-11-27  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* src2xml/source/globals.py: src2xml: write progress to stderr,
++	allows progress while using stdout output.
++
++2007-11-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* prj/build.lst, prj/d.lst, workben/makefile.mk: Install xml files
++	too.  Thanks Fridrich!
++
++2007-11-23  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-23  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Put Ok/Help buttons in homogenous hbox.
++
++2007-11-23  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add extra hbox/vbox pairs to reduce cnt:padding duplication.
++
++2007-11-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : More layout-pre.hxx cpp hacks to make zoom and wordcount diffs
++	smaller.
++
++2007-11-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk, workben/un-test.sh: Add un-test.sh to remove
++	TEST_LAYOUT code and dist into OO.o.
++
++2007-11-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx: Remove misguided NON_LAYOUT_COMPILE_FIXES and
++	whitespace nits.
++
++2007-11-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk, workben/pytt, workben/run-s2x,
++	workben/un-test.sh, workben/zoom.cxx: Add un-test.sh script and dist
++	target to `distribute' dialog code to OO.o.
++
++2007-11-21  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, inc/layout/layout-post.hxx, inc/layout/layout-pre.hxx,
++	inc/layout/layout.hxx, source/awt/makefile.mk,
++	source/core/makefile.mk, source/wrapper/makefile.mk,
++	workben/makefile.mk, workben/wordcountdialog.cxx,
++	workben/wordcountdialog.hxx, workben/zoom.cxx, workben/zoom.hxx: 
++	Rename USE_LAYOUT -> ENABLE_LAYOUT.  Make zoom, wordcount diffs bits
++	smaller.
++
++2007-11-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add <layout/layout-pre.hxx> <layout/layout-post.hxx> cpp
++	hacking.
++
++2007-11-20  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/run-s2x: Remove all geometry attributes.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/helper.cxx: Disable "fixedinfo" workaround.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcount.xml: Remove misguided "fixedinfo" from
++	wordcount.xml.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* .gitignore: Ingore pyc files.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcount-plain.xml, workben/wordcount-tight.xml,
++	workben/zoom-plain.xml: Add plain postprocessed output from src2xml.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Comment-out #include statements from .src files.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx, workben/zoom.xml: Use stringize to make zoom.cxx
++	diff smaller.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcount.xml, workben/wordcountdialog.cxx: Use stringize
++	to make wordcount diff smaller.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/test.cxx: Fix standalone .xml loading for test.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/run-s2x: Add run-s2x: make .xml from src2xml
++	compilable for zoom, wordcount.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, source/core/helper.cxx: Small fixedline doco fix.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcount.xml, workben/wordcountdialog.hxx: Use
++	"fixedinfo" rather than "fixedtext" in wordcountdialog.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Use "fixedtext" to when asked to create "fixedinfo".
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/wrapper/wrapper.cxx: Implement
++	FixedInfo.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* cenarios, source/awt/vclxdialog.cxx, source/core/root.cxx,
++	source/wrapper/wimpl.hxx, source/wrapper/wrapper.cxx: Cleanups.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/uno.hxx, source/core/factory.cxx,
++	source/core/makefile.mk, source/core/root.cxx,
++	source/core/root.hxx, source/wrapper/makefile.mk,
++	source/wrapper/wrapper.cxx, workben/makefile.mk: Remove
++	[!LAYOUT_FACTORY] branch.
++
++2007-11-19  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/Documento por Gravar 1: Remove Documento por Gravar 1.
++
++2007-11-16  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.xml: Tweak.
++
++2007-11-16  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : [LAYOUT_FACTORY]: Add LayoutFactory and register that for Layout
++	Serviceinfo instead of LayoutRoot.
++
++2007-11-16  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* README: Update README.
++
++2007-11-16  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Also grok TypeClass_ENUM.  Set unit=11 (custom) on zoom
++	metricfield.
++
++2007-11-16  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.cxx: Typo in workben/wordcountdialog.
++	Fixes Document word count display.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcount.xml, workben/wordcountdialog.cxx,
++	workben/wordcountdialog.xml: Rename wordcountdialog.xml to
++	wordcount.xml, compile fixes from sw/...
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/import.cxx, source/core/import.hxx: Indentation fixes.
++	Move ~ElementBase destructor to cxx file.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/test.cxx: Bugfix for test default --test argument.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.xml: Wordcountdialog default text tweak.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/root.cxx, source/core/root.hxx,
++	source/wrapper/wrapper.cxx: Remove LAYOUT_WEAK and other hackerish
++	feeble attempts at second init bug.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : More attempts at tackling second init bug.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Lost of handwaving to try to destroy LayoutRoot.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/import.hxx: Add destructor for WidgetElement.
++
++2007-11-15  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Fix indentation of import.cxx.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO, workben/zoom-margin.xml, workben/zoom.xml: Tweak zoom
++	dialog.  Add zoom-margin.xml.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.xml: Tweak wordcountdialog till it looks
++	nice.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.cxx: Typo.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.xml: Import workben/wordcountdialog.xml
++	straight from src2xml.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : src2xml/source/src2xml.py: also grok -I option, do not print
++	progress.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.xml: Use modaldialog for zoom.xml.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.xml, workben/zoom_def.hxx: Oops, add
++	zoom_def.hxx and wordcountdialog.xml.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/test.cxx: Refactor test program, also run wordcountdialog.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/test.cxx: Prune unused headers.
++
++2007-11-14  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx, workben/zoom.hxx: Make zoom diff even smaller,
++	import from svx.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk, workben/wordcountdialog.cxx,
++	workben/wordcountdialog.hxx: Make wordcountdialog compilable under
++	test and add to makefile.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/wordcountdialog.cxx, workben/wordcountdialog.hxx: Import
++	wordcountdialog.cxx, wordcountdialog.hxx.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, inc/layout/uno.hxx,
++	source/awt/globals.hxx, source/awt/vclxdialog.cxx,
++	source/awt/vclxdialog.hxx, source/awt/vclxfixedline.cxx,
++	source/awt/vclxfixedline.hxx, source/awt/vclxproxy.cxx,
++	source/awt/vclxscroller.cxx, source/awt/vclxscroller.hxx,
++	source/awt/vclxsplitter.cxx, source/awt/vclxsplitter.hxx,
++	source/awt/vclxtabcontrol.cxx, source/awt/vclxtabcontrol.hxx,
++	source/core/bin.cxx, source/core/bin.hxx, source/core/box.cxx,
++	source/core/box.hxx, source/core/byteseq.cxx,
++	source/core/container.cxx, source/core/container.hxx,
++	source/core/factory.cxx, source/core/flow.cxx,
++	source/core/flow.hxx, source/core/globals.hxx,
++	source/core/helper.cxx, source/core/helper.hxx,
++	source/core/import.cxx, source/core/import.hxx,
++	source/core/root.cxx, source/core/root.hxx, source/core/table.cxx,
++	source/core/table.hxx, source/core/timeout.cxx,
++	source/core/timeout.hxx, source/inc/layoutcore.hxx,
++	source/wrapper/wbutton.cxx, source/wrapper/wcontainer.cxx,
++	source/wrapper/wfield.cxx, source/wrapper/wrapper.cxx,
++	workben/editor.cxx, workben/editor.hxx, workben/paragraph.cxx,
++	workben/paragraph.hxx, workben/simple-paragraph.cxx,
++	workben/simple-paragraph.hxx, workben/test.cxx: Replace TAB -> 4
++	spaces.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/helper.cxx, source/wrapper/wbutton.cxx,
++	source/wrapper/wimpl.hxx, source/wrapper/wrapper.cxx: Add debug
++	printing, ~ContextImpl.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.xml: Add space in custom-unit-text.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Remove core/dialog.hxx, core/dialog.cxx.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Make RadioButton hack more complete:
++	remove buttons from RadioButtonGroup too.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wimpl.hxx: Make WindowImpl hierarchy virtual from
++	top.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.xml: Add Id for FixedLine.  Fixes warning.
++
++2007-11-13  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx: Fix comment.  Import from svx.
++
++2007-11-12  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Replace XDialog2, VCXDialog, Dialog Cancel/Help/Ok by EndDialog
++	( BUTTONID_* )
++
++2007-11-12  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Actually return the result of a dialog.
++
++2007-11-12  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx, workben/zoom.hxx: Update zoom code from svx
++	module with TEST_LAYOUT switches.
++
++2007-11-12  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/makefile.mk: Also set -DTEST_LAYOUT in makefile.
++
++2007-11-12  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Workaround for radiobutton-unset
++	inside OOo.
++
++2007-11-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/test.cxx: Add comment about using WeakImplHelper1 for
++	standalone run.
++
++2007-11-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/uno.hxx: Compile fix for using WeakImplHelper1 in
++	UnoBootstrapLayout.
++
++2007-11-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Rename UnoBootstrapSucks to UnoBootstrapLayout and move to
++	uno.hxx header.
++
++2007-11-09  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Rename #define LAYOUT to USE_LAYOUT.
++
++2007-11-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : In-tree compile fixes for -DLAYOUT=1.
++
++2007-11-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.hxx: Make diff with svx/source/dialog/zoom.hxx
++	minimal.
++
++2007-11-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add FixedLine member to SvxZoomDialog.
++
++2007-11-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, workben/editor.cxx: Do not set namespace in
++	header.
++
++2007-11-08  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Make diff for zoom.cxx with svx/source/dialog/zoom.cxx minimal.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Use #if 0 rather than #if 1 and add
++	comment, easier to catch.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxdialog.cxx: Use BUTTONID_CANCEL, BUTTONID_OK from
++	msgbox.hxx rather than ERRCODE.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx: Remove debugging code.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/api/com/sun/star/awt/XDialog2.idl,
++	source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
++	source/wrapper/wbutton.cxx, source/wrapper/wrapper.cxx: Implement Ok
++	and Help alongside Cancel in XDialog2, VCLXDialog, OKButton.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add workben/paragraph.*
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Use 'has_border' instead of 'border' for awt attributes.  Also
++	put back fullsize, optimumsize, show properties.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/core/box.cxx: Spacing nits.
++
++2007-11-07  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Add Ricardo's suggestion for actual dialog.
++
++2007-11-05  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Make Window (top of layout hierarchy) virtual.
++
++2007-11-05  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Tweaks to zoom dialog.
++
++2007-11-05  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Remove debugging code and add explicit
++	casts for mpWindow in callbacks.
++
++2007-10-31  Michael Meeks <michael@t60p.(none)>
++
++	* source/wrapper/wbutton.cxx: raw mpWindow static casting fix
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add Kohei's converter under src2xml.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* .gitignore: Ignore more.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Only print debugging if pointers are
++	wrong.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* workben/zoom.cxx: Debug print.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/api/makefile.mk, source/awt/makefile.mk,
++	source/core/makefile.mk, source/wrapper/makefile.mk,
++	util/makefile.mk, workben/makefile.mk: Unification of .mk files.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Add mpWindow != &OKbutton debug code and crude fix.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Revert introduction of XDialog2."
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/api/makefile.mk, source/awt/vclxdialog.hxx,
++	source/core/dialog.cxx, source/core/dialog.hxx,
++	source/core/globals.hxx, source/core/import.cxx,
++	source/core/import.hxx, source/core/makefile.mk,
++	source/wrapper/wrapper.cxx, workben/test.cxx: Revert introduction of
++	XDialog2.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Revert
++	338f4229e321fa79ab3564504d1546e5010c0b0b.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/api/com/sun/star/awt/XDialog2.idl: Spacing nit.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Add GetImplementation to VCLXProxy."
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Add Click and LINK (Click) to IconButton."
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Update TODO.
++
++2007-10-30  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Implement non-dummy HelpButton.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Oops, add XDialog2 to archive.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Implement cancel in vclxdialog.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Implement default callback to ButtonImpl using XButton.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Set click handler in Button instead of ButtonImpl, add
++	debug printing."
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Attempt at using DialogImpl to hold button Click
++	handler."
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Pass a Button instead of ButtonImpl to default click
++	handler."
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Revert "Use Dialog as the Click link handler."
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/wrapper/wbutton.cxx: Use Dialog as
++	the Click link handler.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Pass a Button instead of ButtonImpl to default click handler.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Attempt at using DialogImpl to hold button Click handler.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Set click handler in Button instead of ButtonImpl, add debug
++	printing.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wbutton.cxx: Add non-dummy implementation of
++	CancelButtonImpl.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxdialog.cxx: Add comment about XDialog2::cancel's
++	pure virtualness.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/wrapper/wrapper.cxx: Add debug print to
++	layout::Dialog::Cancel.
++
++2007-10-29  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : if(0)'ed code that sets default handler for ButtonImpl.
++
++2007-10-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxbutton.cxx, source/awt/vclxbutton.hxx: Add Click
++	and LINK (Click) to IconButton.
++
++2007-10-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* source/awt/vclxproxy.cxx, source/awt/vclxproxy.hxx: Add
++	GetImplementation to VCLXProxy.
++
++2007-10-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* inc/layout/layout.hxx, source/api/makefile.mk,
++	source/awt/vclxdialog.cxx, source/awt/vclxdialog.hxx,
++	source/core/dialog.cxx, source/core/dialog.hxx,
++	source/core/globals.hxx, source/core/import.cxx,
++	source/core/import.hxx, source/core/makefile.mk,
++	source/wrapper/wrapper.cxx, workben/test.cxx: Add XDialog2 with
++	dummy Cancel interface. Use it instead of XDialog.
++
++2007-10-26  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* TODO: Add Michael's bug list, with progress.
++
++2007-10-25  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* : Silence non-virtual-destructor warnings the proper way.
++
++2007-10-24  Jan Nieuwenhuizen <janneke@gnu.org>
++
++	* ChangeLog: Put marker in ChangeLog to say it's discontinued.
+Index: toolkit/doc/layout/ChangeLog.0
+===================================================================
+RCS file: toolkit/doc/layout/ChangeLog.0
+diff -N toolkit/doc/layout/ChangeLog.0
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/ChangeLog.0	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,546 @@
++2007-10-24  Jan Nieuwenhuizen  <janneke@gnu.org>
++
++	* Discontinued for now.  Generate from git log.
++
++2007-10-22  Jan Nieuwenhuizen  <janneke@gnu.org>
++
++	* source/awt/vclxsplitter.hxx:
++	* source/awt/vclxtabcontrol.hxx:
++	* source/core/bin.cxx:
++	* source/core/bin.hxx:
++	* source/core/box.cxx:
++	* source/core/box.hxx:
++	* source/core/container.hxx:
++	* source/core/flow.cxx:
++	* source/core/flow.hxx:
++	* source/core/table.hxx (getHeightForWidth): Use sal_Int32 instead of
++	LONG.  Fixes compile on x86_64.
++
++	* source/awt/vclxsplitter.cxx: 
++	* source/awt/vclxscroller.cxx: 
++	* source/awt/vclxdialog.cxx: Use %d, as INT is used here,
++	not LONG.  Fixes compile warnings on x86_64.
++
++	* workben/refresh: FIXME: filter-out flood of
++
++	    class <> has virtual functions but non-virtual destructor
++
++	  for now, to make other messages visible.
++
++	* Resolve conflicts.
++
++2007-10-19  Jan Nieuwenhuizen  <janneke@gnu.org>
++
++	* workben/test.cxx (MyApp::Main): Display usage () upon -h, --help.
++
++	* workben/refresh: Append "$@" so that refresh --inst FOO works.
++
++	* README: New file.
++
++	* workben/refresh: Softcode outdir.  Fixes running on x86_64.
++
++	* workben/makefile.mk (APP1STDLIBS): Softcode layout library name.
++	Fixes linking on x86_64.
++
++	* workben/zoom.cxx: Another <c..> include.  Fixes compiling test
++	on x86_64.
++
++2007-10-18  Jan Nieuwenhuizen  <janneke@gnu.org>	 
++							 
++	* .gitignore: Ingore x86_64 output dir too.	 
++							 
++	* source/wrapper/wimpl.hxx: 			 
++	* source/core/timeout.cxx: 			 	
++	* source/core/deck.cxx: 			 
++	* source/core/byteseq.cxx: 			 
++	* source/core/bin.cxx: Add some <c..> includes.	 
++							 
++2007-10-22  Jan Nieuwenhuizen  <janneke@gnu.org>
++
++	* Remove two empty files.
++
++	* Deleted      workben/editor_pre
++	* Deleted      workben/output
++
++	* Incorporate http://www.alunos.dcc.fc.up.pt/~c0607045/trash/openoffice/layout.tgz
++
++	* Modified     source/core/box.cxx
++	* Modified     source/core/table.cxx
++	* Modified     source/wrapper/wcontainer.cxx
++	* Modified     workben/editor.cxx
++	* Modified     workben/flow.xml
++	* Added        cenarios
++	* Added        source/Documento por Gravar 1
++	* Added        source/api/com/sun/star/awt/XLayoutFlow.idl
++	* Added        source/api/com/sun/star/awt/XLayoutFlowContainer.idl
++	* Added        source/awt/non-interactable-containers.xml
++	* Added        source/awt/vclxfactory.cxx
++	* Added        source/awt/vclxfiledialog.cxx
++	* Added        source/awt/vclxfiledialog.hxx
++	* Added        source/awt/vclxline.cxx
++	* Added        source/awt/vclxline.hxx
++	* Added        source/awt/vclxpane.cxx
++	* Added        source/awt/vclxpane.hxx
++	* Added        source/awt/vclxradiobutton.cxx
++	* Added        source/awt/vclxradiobutton.hxx
++	* Added        source/gtk/vclxcommon.cxx
++	* Added        source/gtk/vclxcommon.hxx
++	* Added        source/gtk/vclxcontainer.cxx
++	* Added        source/gtk/vclxcontainer.hxx
++	* Added        source/gtk/vclxdialog.cxx
++	* Added        source/gtk/vclxdialog.hxx
++	* Added        source/gtk/vclxwidget.cxx
++	* Added        source/gtk/vclxwidget.hxx
++	* Added        workben/adjust.xml
++	* Added        workben/editor-normal.xml
++	* Added        workben/editor_pre
++	* Added        workben/flow-container.xml
++	* Added        workben/output
++	* Added        workben/test.xml
++
++2007-08-20  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wimpl.hxx (wrapperGone): fix ordering
++	issue.
++
++	* workben/editor.cxx (PropertiesList::destruct): bin,
++	use virtual destructors.
++
++	* source/core/visualcnt.cxx: set only size, not
++	position too.
++
++2007-08-20  Michael Meeks  <michael.meeks@novell.com>
++
++	* merge Ricardo's nice work ...
++
++2007-08-20  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/box.cxx (getMinimumSize): calculate size
++	correctly wrt. 2x padding.
++
++2007-08-17  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/helper.cxx (findAndRemove): rename
++	border -> 'has_border' to not conflict with container /
++	widget prop of same name.
++
++	* workben/*.xml: rename all border attributes. 
++
++	* source/core/box.hxx: bin bogus mnBorderWidth - use
++	the container instead.
++
++	* source/core/helper.cxx: rename 'border' to 
++	'has_border' so container borders work.
++	(anyFromString): fix type of LONG, add unsigned types &
++	re-order into TypeClass.idl sequence.
++
++	* source/awt/vclxbutton.cxx (IconButton): center
++	labels, somehow setting a graphic changes the behavior
++	of widgets with no align set.
++
++2007-08-16  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wcontainer.cxx (Clear): get condition
++	right.
++
++	* source/core/container.cxx (setParent): cope with null
++	parents by not throwing.
++
++	* workben/editor.cxx: add Alignment ... and adapt to new
++	property code - so we get container properties.
++
++	* source/core/helper.cxx (setProperties): adapt to new
++	layoutimpl::prophlp helpers.
++	(canHandleProps, queryPropertyInfo, setProperty, getProperty):
++	impl.
++
++2007-08-16  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/*.cxx: calm down debug.
++
++	* source/core/align.cxx, box.cxx: add PROPHELPER_SET_INFO
++	to the child props too ... (doh).
++
++	* source/core/helper.hxx (PROPHELPER_SET_INFO): impl. this
++	as a macro, comment it heavily.
++	* source/core/container.hxx, box.hxx, align.hxx, bin.hxx: add
++	the macro back cf. 2007-06-07 ...
++
++	* source/core/import.cxx, source/wrapper/wimpl.hxx: calm the
++	churning debug problem down: finally can see the important
++	messages.
++
++	* workben/editor.cxx (EditorDialog): add 'maDelete' member &
++	rename 'engine->mpEngine'
++
++	* source/awt/vclxbutton.cxx (IconButton, VCLXCancelButton),
++	(VCLXHelpButton): impl.
++
++	* source/core/import.cxx (handleCornerCases): bin.
++
++2007-08-16  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/awt/vclxproxy.cxx (queryInterface): fixup.
++
++	* source/awt/vclxbutton.cxx: impl OKButton stub.
++
++	* source/awt/vclxproxy.cxx: gut-wrenching manual cut/paste
++	proxy creation: urgh.
++
++	* source/core/import.cxx (handleCornerCases): bin okbutton
++	corner case.
++
++2007-08-15  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/helper.cxx (setProperties): add debug for
++	dropped properties.
++
++	* source/core/container.cxx (queryInterface, acquire,
++	release): unwind nightmarish UNO lifecycle evil: not
++	implementing acquire/release is a spectacularly bad
++	idea: trashed memory gets accessed by the next queryinterface.
++
++2007-08-15  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wrapper.cxx (GetPeer): bin debug.
++	(Clear): impl. for Ricardo.
++
++	* workben/editor.cxx (naturalSize): impl. and call post
++	construction, so we size to the total size with the added
++	widgets.
++
++	* source/core/root.hxx: remember to declare we impl.
++	XLayoutConstrains.
++
++	* workben/editor.cxx (getDepth, makeListEntryName): impl.
++	& cleanup code.
++
++	* workben/editor.hxx (class EditorEngine): bin maIdentList.
++
++2007-08-15  Michael Meeks  <michael.meeks@novell.com>
++
++	* workben/editor.cxx (PropertyEntry): show the
++	widgets post construction: now appears to work
++	as nicely, if not better than before.
++
++	* source/wrapper/wcontainer.cxx (Container): add
++	warning if no peer to associate with is found.
++	(Container): actually assign mxContainer.
++
++	* source/wrapper/wbutton.cxx (SetImageAlign): impl.
++	SetImageAlign, and use it to align-left the images.
++
++	* workben/test.cxx (InitUCB): enable this.
++	(Main): set more magic environment variables: 'magic'!
++
++2007-08-14  Michael Meeks  <michael.meeks@novell.com>
++
++	* workben/test.cxx: attempt to defeat stupid configmgr
++	bootstrapping evilness.
++
++	* workben/test.cxx (UnoBootstrapSucks): log component
++	instantiations, and exception text - caught config mgr.
++	not being happy.
++
++	* source/inc/layoutcore.hxx: impl. - a header for
++	sharing code from core -> wrapper.
++
++	* source/wrapper/wbutton.cxx (ImageImpl): impl.
++	and add SetImageMode method.
++
++	* source/core/helper.cxx (loadGraphic): impl.
++
++	* inc/layout/layout.hxx: add lstbox.h for
++	LISTBOX_ENTRY_NOT_FOUND & fix editor with this.
++
++	* source/core/helper.cxx (createWidget): merge
++	conflicts.
++
++2007-08-09  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/awt/vclxtabcontrol.?xx, source/awt/makefile.mk,
++	* utils/makefile.mk: import TabControl.
++
++	* source/core/*.cxx: put in 'layoutimpl' namespace.
++
++	* source/core/import.cxx (WidgetElement): handle
++	corner cases again.
++
++2007-08-09  Michael Meeks  <michael.meeks@novell.com>
++
++	* doc/stats.ods: statistics on widget impl. & attribute
++	priorities.
++
++	* source/core/helper.cxx (createWidget): re-enable
++	handleCornerCases.
++
++	* source/core/import.cxx (handleCornerCases):
++	un-comment handle-corner-cases.
++
++2007-08-09  Ricardo Cruz  <rpmcruz@alunos.dcc.fc.up.pt>
++
++	* latest work.
++
++2007-07-30  Michael Meeks  <michael.meeks@novell.com>
++
++	* doc/vcl.txt: add notes on how fallback awt peer
++	creation happens.
++
++	* doc/awt-props.ods: try to bring some sanity to the
++	cut/paste frenzy in the awt properties.
++
++	* source/core/import.cxx (ToplevelElement): switch back
++	to the new pseudo-'root' 'XLayoutContainer' approach that
++	is cleaner & simpler.
++
++2007-07-30  Michael Meeks  <michael.meeks@novell.com>
++
++	* workben/editor.cxx (createWidget): fix variable naming
++	_name -> pName; fix createContainer call signature.
++
++	* source/core/deck.cxx (setVisible): switch to queueRecalc.
++
++	* source/core/root.cxx (getChildren, removeChild): impl.
++
++	* source/core/container.cxx (getSingleChild): impl.
++	helper & upd. callers.
++
++	* Resolve conflicts with Ricardo.
++
++2007-07-26  Ricardo Cruz  <rpmcruz@alunos.dcc.fc.up.pt>
++
++	* Added SVLXTabControl that offers XWindow and XLayoutContainer
++	interfaces for the VCL TabControl.
++	But its allocateSize() isn't being called (though sometimes it
++	is), so multi tabs are broken.
++    
++	* Touched a bit XLayoutContainer interface: added getChildren()
++	and removeChildren(). And got rid of clearChildren().
++	SPECIFICATION: setParent() must be called on child when added
++	or removed to a container -- in case child implements XChild
++	-- pass null to remove.
++    
++2007-07-25  Michael Meeks  <michael.meeks@novell.com>
++
++	* notes.txt, doc/metricfield.txt, doc/oldnotes.txt:
++	move some of my cruft out of notes.txt
++
++	* source/core/root.cxx: made LayoutRoot implement
++	XLayoutConstrains and XLayoutContainer (a simple bin).
++
++	* source/core/timeout.cxx: do idle sizing via the
++	toplevel.
++
++	* source/core/import.cxx (~ToplevelElement): simplify
++	toplevel sizing. Tie LayoutRoot to the toplevel window:
++	ok for now.
++
++2007-07-25  Michael Meeks  <michael.meeks@novell.com>
++
++	* workben/zoom.xml: update variously.
++
++	* source/core/timeout.cxx: add evil hack using VCL
++	idle handler to layout idly (not that we do re-layout
++	yet).
++
++	* source/core/container.cxx (allocateChildAt): calm
++	down debug spew.
++
++	* source/wrapper: move fields pieces from wrapper.cxx
++	to 'wfields.cxx'.
++
++	* NB. The code now depends on recent toolkit/ changes in
++	HEAD ooo-build.
++
++2007-07-13  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/*.cxx: propagate a Context* pointer
++	through to all wrapper instances; ready to implement
++	OKButton / CancelButton etc.
++
++	* source/wrapper/wbutton.cxx: split from
++	* source/wrapper/wrapper.cxx: here.
++
++	* source/core/import.cxx (handleCornerCases): impl.
++	and call - the ok/help/cancel buttons are -so- lame in
++	awt, we need to emulate them in the wrapper.
++
++2007-07-12  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wrapper.cxx (GetPeerHandle): switch
++	to just 1 impl, with an optional nId argument too,
++	in case we need it.
++	
++	* inc/layout/layout.hxx, source/wrapper/impl.hxx,
++	* source/wrapper/wrap_container.cxx,
++	* source/wrapper/wrapper.cxx: impl. new 'Box'
++	container type, also allow explicit widget
++	instantiation.
++
++	* workben/editor.cxx: re-work to use a sequence of
++	PushButtons instead of create<N> thing.
++
++2007-07-06  Ricardo Cruz  <rpmcruz@alunos.dcc.fc.up.pt>
++
++	* a bunch of stuff touched (in special workben/editor.hxx and cxx):
++	Sorry, will try to take better care of the ChangeLog in
++	the future...
++
++    Made a first layout editor. Added temporary calls recalc()
++    and clearChildren() to the XLayoutContainer interface. :P
++    Quite hacky overall; but its already more functional than
++    was targetting for the milestone, and will be cleaning it up...
++    
++    Committed part of koehin's patch: the ListBox wrapper.
++
++2007-06-22  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wrapper.cxx: impl. NumericFormatter -
++	we still need MetricField to implement a (mis-named)
++	XCurrencyField interface though ...
++
++2007-06-22  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wrapper.cxx (WindowImpl): add
++	get/setProperty helpers.
++	(PushButton::[Is]Check[ed]): impl.
++
++	* source/core/*: some debug calming action.
++
++	* source/wrapper/wrapper.cxx (::Dialog): get toplevel
++	widget correctly.
++	(GetPeerHandle): calm debug.
++
++2007-06-21  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/wrapper/wrapper.cxx (Dialog::SetText),
++
++	* source/core/import.cxx (startRootElement): check
++	the namespace & allow non-framewindow toplevels.
++	(WidgetElement): !pParent -> WindowClass_TOP.
++
++	* workben/zoom.xml: add 'group' attributes, hmm. Not
++	working that well for some reaosn.
++
++	* source/wrapper/wrapper.cxx (ButtonImpl::SetClickHdl)
++	don't add the action listener until we need to to preserve
++	VCL's semantics.
++
++2007-06-20  Ricardo Cruz   <rpmcruz@alunos.dcc.fc.up.pt>
++
++	* source/core/import.h/cxx: added support for radio groups.
++	As agreed, a group is specified by an id. So, the xml
++	would be:  <radio group="pizza" value="margarita" /> ...
++
++2007-06-20  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/import.cxx (WidgetElement): filter out 'id'
++	property and add into mrRoot.
++
++	* source/core/helper.cxx (setProperties): remove 'id' bits.
++
++2007-06-20  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/byteseq.cxx: add - gross hack, to go later.
++	* source/core/root.cxx: upd. to use it.
++
++	* workben/test.cxx: move much of the file reading /
++	stream handling evil into the core & initialize via UNO.
++
++	* workben/*: remove LAYOUT_API_TEST conditionals ...
++
++2007-06-20  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/core/root.[ch]xx: start of XLayoutRoot impl.
++	
++	* source/core/factory.cxx: UNO component registration fun.
++
++	* workben/test.cxx: turn off zoomy bits if
++	LAYOUT_API_TEST is not set.
++
++	* source/wrapper/wrapper.cxx: impl. first cut at
++	wrapping logic; get a few things in order.
++
++2007-06-19  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/*: move to source/core/*
++
++	* source/wrapper: add.
++
++	* prj/build.lst: upd.
++
++2007-06-19  Michael Meeks  <michael.meeks@novell.com>
++
++	* workben/zoom.[ch]xx: import cut/paste of
++	svx/source/dialog/zoom.[ch]xx - hack out svx dependencies
++	and port to:
++
++	* inc/layout/layout.hxx: new 'layout' wrapper API
++
++2007-06-08  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/helper.hxx: move ChildProps
++	* source/helper.hxx: to here, rename to PropHelper,
++	add include guards etc.
++
++	* source/import.?xx: substantial clean up.
++	
++	* workben/*.xml: switch namespace
++
++2007-06-07  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/container.cxx: remove static singleton setting
++	'getPropertSetInfo' method, and make it abstract.
++	* source/bin.cxx, source/box.cxx: implement here, so we
++	get different SetInfo for each.
++
++	* source/vbox.cxx (convertFastPropertyValue): impl. properly.
++
++	* source/import.cxx (ChildElement::startChildElement): pass
++	the right child attributes.
++	(addChildWidget): actually set properties on the container's
++	child not the widget itself.
++
++2007-06-06  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/makefile.mk,
++	* source/import.cxx: rename from newimport.cxx
++
++	* source/newimport.cxx (getPropAsInt): bin, obsolete.
++	(addChildWidget): add setProperties call for child props.
++	(windowResized): do size request before allocate.
++
++2007-06-06  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/newimport.cxx (getAttributeProps): re-factor & split.
++	(findAndRemove): this.
++
++	* source/helper.cxx (setProperties, toUnoNaming, anyFromString): 
++	split from newimport.cxx.
++
++	* source/newimport.cxx (~ToplevelElement): add, so we
++	show the dialog post sizing.
++
++	* workben/*.xml: remove 'show' attribute on toplevels.
++
++2007-06-06  Michael Meeks  <michael.meeks@novell.com>
++
++	* source/newimport.cxx: add hacks (missing Ricardo's
++	hierarchy parsing), to whack all children in 1 hbox.
++	We have layout at last.
++
++	* source/vbox.cxx (allocateChildAt): get PosSize flags right.
++
++	* source/newimport.cxx (startRootElement): upd.
++	(ResizeListener): impl.
++
++	* source/newimport.hxx (class ToplevelElement): add.
++
++2007-06-05  Michael Meeks  <michael.meeks@novell.com>
++
++	* workben/layout.xml: add nested vbox.
++	
++	* workben/layout-flat.xml: flat xml
++	
++	* start a ChangeLog
++
+Index: toolkit/doc/layout/README
+===================================================================
+RCS file: toolkit/doc/layout/README
+diff -N toolkit/doc/layout/README
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/README	15 Feb 2008 09:56:40 -0000	1.1.2.2
+@@ -0,0 +1,26 @@
++Layout engine for OpenOffice.org  -  Work in Progress
++
++Simple dialogs have been ported now: zoom and wordcount.
++
++Code lives in "layout" CWS.
++
++* Ceckout layout cws.
++
++* Configure using --enable-layout.
++
++* dmake all
++
++* dmake install DESTDIR=$(pwd)/ooo-layout/
++
++* Source refresh in workben/layout, do something like
++
++    cd toolkit/workben/layout && . ./refresh --inst .../ooo-layout/
++
++Integration into OOo:
++
++* After instaling, run
++
++  cd ooo-cvs/program
++  ./soffice.bin
++
++  Start a [Writer] document and choose View/Zoom or Extra/Word count.
+Index: toolkit/doc/layout/TODO
+===================================================================
+RCS file: toolkit/doc/layout/TODO
+diff -N toolkit/doc/layout/TODO
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/TODO	15 Feb 2008 14:28:40 -0000	1.1.2.4
+@@ -0,0 +1,161 @@
++-*-outline-*-
++
++* CWS
++** 3.0 feature freeze: March 6
++** cleanups
++*** remove stuff
++**** vclxproxy -> move into source/awt widgets 
++**** toplevel dialog/container?
++
++* portability
++** --enable-layout does not compile on Sun
++
++TODO: Try not including layout-pre.hxx twice, but use
++layout-pre-header.hxx and layout-pre-source.hxx (both include an
++un-multiple-inclusion-shielded layout-pre.hxx).
++
++"/export/home/fstrba/devel-cvs/ooo-build/build/ooh680-m1/layout/workben/zoom.cxx", line 412: Error: layout is not a member of layout.
++"/export/home/fstrba/devel-cvs/ooo-build/build/ooh680-m1/layout/workben/zoom.cxx", line 412: Error: Formal argument 1 of type layout::RadioButton* in call to SvxZoomDialog::UserHdl(layout::RadioButton*) is being passed RadioButton*.
++"/export/home/fstrba/devel-cvs/ooo-build/build/ooh680-m1/layout/workben/zoom.cxx", line 431: Error: layout is not a member of layout.
++"/export/home/fstrba/devel-cvs/ooo-build/build/ooh680-m1/layout/workben/zoom.cxx", line 431: Error: Formal argument 1 of type layout::MetricField* in call to SvxZoomDialog::SpinHdl(layout::MetricField*) is being passed MetricField*.
++"/export/home/fstrba/devel-cvs/ooo-build/build/ooh680-m1/layout/workben/zoom.cxx", line 441: Error: layout is not a member of layout.
++"/export/home/fstrba/devel-cvs/ooo-build/build/ooh680-m1/layout/workben/zoom.cxx", line 441: Error: Formal argument 1 of type layout::Button* in call to SvxZoomDialog::OKHdl(layout::Button*) is being passed Button*.
++6 Error(s) detected.
++
++    #412
++    ( ( layout :: layout :: RadioButton * ) pCaller ) ; } long SvxZoomDialog :: UserHdl ( layout :: RadioButton * pBtn )
++    {
++    fprintf ( ( & __iob [ 2 ] ) , "SvxZoomDialog::UserHdl\n" ) ;
++    bModified |= 1 ;
++    if ( pBtn == & aUserBtn )
++    {
++    aUserEdit . Enable ( ) ;
++    aUserEdit . GrabFocus ( ) ;
++    }
++    else
++    aUserEdit . Disable ( ) ;
++    return 0 ;
++    }
++** LayoutDialogs compilation errors on Windows (--disable-layout?)
++in VCL headers there, need to include more headers to also get stuff like HWND defined.
++
++* code
++** features
++*** support cnt:cnt:? 
++*** support using label (verb) on yes/ok no/cancel buttons for some platforms
++but keep using yes/no on Windows, eg?
++*** remove -DTEST_LAYOUT=1 from util/makefile.mk
++
++** fixes
++*** mpRadioGroup HACK --> use radiogroup property
++*** toolkit/source/awt/vclxwindow.cxx
++   empty-out VCLXWindow::getMinimumSize
++*** missing properties
++	'title' -> 'Set Zoom'
++Missing prop Title
++Missing prop ValueStep
++Missing prop Radiogroup
++Missing prop Default
++*** bug in wordcountdialog: right alignment of numbers `jump' when resizing
++       the dialog.  the 0 and 00 are never exactly aligned.
++*** look into code duplication: source/core/*.
++*** Remove magic constants
++fHorAlign = fVerAlign = 0.5; --> float const [CENTER?] = 0.5;
++
++*** remove stuff?
++
++*** box.hxx: use vbox/hbox polymorphism instead of if (mbHorizontal)
++
++* i18n
++    + forget java property files nonsense
++	- dump old wiki pointers into layout/doc for reference
++    + share code with vcl/source/gdi/impimagetree.cxx
++    + 'layout.zip'?
++    + support multiple translatable attributes
++    + ? rewrite tralay from scratch (in python, perl, c++?) ?
++
++
++* distributing: [LayoutDialogs]
++git diff 5db78fc5 layout scp2 > layout-dialogs-layout.diff
++git diff 5db78fc5 |grep -v gitignore | grep 'git a'|grep -Ev 'a/(layout|scp2)/'|sed -e's@.*git a/@@' -e 's@/.*@@' | sort -u | tr '\n' ' '
++git diff 5db78fc5 $(git diff 5db78fc5 |grep -v gitignore | grep 'git a'| grep -Ev 'a/(layout|scp2)/' | sed -e's@.*git a/@@' -e 's@/.*@@' | sort -u | tr '\n' ' ') > layout-dialogs.diff
++
++Soo...
++
++m237: fc105178
++
++#git diff  offapi toolkit > layout-dialogs-offapi-toolkit.diff
++
++git diff fc105178 layout | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-layout.diff
++git diff fc105178 config_office scp2 | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-config_office-scp2.diff
++git diff fc105178 svx sw | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-svx-sw.diff
++
++m241: 5e9b2546
++m241': b8e24264
++m241'': 53ddc663
++m1: fbde8234
++m1': d1f42c99
++m1'': 1a8dec5c
++m1'''': c93389f7
++
++* porting
++** Zoom dialog
++*** list of radio buttons indented: workben/zoom-indent.xml ?
++** Word Count dialog
++** 'Format' dialog
++TODO
++
++
++* play with / improve Ricardo's editor
++** broken after new uno registration
++	+ this is not meant to be a production level tool, but still,
++	  it can be improved I think :-)
++
++* improve Kohei's converter (poke him on IRC (afternoons) about this)
++
++** current hack: workben/run-s2x
++
++   . Imported into layout
++
++	+ Kohei wrote the start of a nice script to convert ugly,
++	  obsolete resource files to nice new XML files ;-)
++		+ unfortunately it is buggy.
++		+ see ooo-build/scratch/layout-src2xml/*
++		+ we should move this into the git repo.
++	+ bug to fix: case problems in XML
++		+ XML produced has wrong case items, and names are
++		  different to those we (and AWT) expects ->
++		  de-stdlycapsise
++		+ cf. layout/source/core/helper.cxx:
++			toUnoNaming, anyFromString
++			setProperties
++			+ NB. we want to have nice 'clean' looking non-stdlycaps XML
++		+ also toolkit/source/awt/vclxwindows.cxx /ImplGetPropertyIds/
++		+ also toolkit/source/helper/property.cxx
++	+ bug to fix: property name problems
++		+ often the resource name strings (cf. legacy resource
++		  compiler in rsc/) don't match the awt toolkit properties
++		+ ie. need to map Label="foo" to Text="foo" (or whatever).
++
++* OLD notes
++
+++ Before OOoCon
++    + editor polish
++	+ cut / paste
++	+ export xml
++	+ "import .src"
++	[ use native VCL menus ... ]
++    + dialogs:
++	+ porting 'Format' dialog.
++	+ wrapper code - improving ...
++    + XML fixes
++	+ "load" command for shared fragments
++    + slides:
++	+ UNO object hierarchy for a given window ...
++
+++ Later
++    + dual-compile code under VCL & 'layout' and compare
++      event ordering (eg.).
++	+ test-tool
++    + scrolled-pane impl.
++
+Index: toolkit/doc/layout/apinotes.txt
+===================================================================
+RCS file: toolkit/doc/layout/apinotes.txt
+diff -N toolkit/doc/layout/apinotes.txt
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/apinotes.txt	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,76 @@
++Notes on API wrapper pieces ...
++
++SvxZoomDialog::SvxZoomDialog( Window* pParent, const SfxItemSet& rCoreSet ) :
++	Dialog( pParent, SVX_RES( RID_SVXDLG_ZOOM ) ),
++
++What do we do ?
++	+ lots of potential VCL/Svx/Sfx etc. top-levels ...
++
++	+ Create the window & the 1st member: 'FooHandle' ?
++	    + Multiply inherited ?
++	+ object from where ?
++
++	+ Default:
++	    + a pseudo-Dialog / wrapper ...
++	    + load using layout (etc.)
++		+ register an SID table ?
++		    + necessary ?
++		+ SIDs ? - post it ...
++
++
++	+ [ Otherwise ... hook up via a helper /
++	    constructor member ... ]
++
++* Fixed:
++    + OKButton / CancelButton
++	+ don't chain to PushButton::Click
++	    + if there is no ClickHdl set ... [ !urgh! ...]
++
++    * FIXME:
++	other widgets ...
++	* How do we cope ? *
++	....
++	    + priorities ? Layout ?
++	    + de-coupling ?
++	    + native widgets ?
++	    + hmm...
++	+ custom widgets ?
++	    + 'OKButton' ... (?) :-)
++	    + 'CancelButton'
++	    + 'HelpButton' ...
++	+ a VCL hack ...
++	    + create an 'addLayout()' method ?
++	    + [ like cl's ? ]
++	+ implement this ...
++
++** Lifecycle ?
++    + how do we track the 'Impl'
++      vs. the pImpl vs. (etc.)
++	+ held by mutual references ?
++
++    + pointer to the widget itself passed in ? 
++	+ MI ?
++    + when the widget dies - just NULL the
++      listener's back-ptr ?
++
++    + Locking [!?] - how / why / what / who ?
++	+ urgh ...
++	+ threading bits ...
++
++    + SID table (?) ...
++	+ [ necessary ? - just use the SID name as the XML attr ? ]
++	+ LAYOUT_ID(a) -> "#a" - stringified ...
++
++** FIXME:
++    + we need a decent MetricField implementation
++	+ it is more than a SpinField
++	+ need to move the 'Border' property down (etc.)
++	+ re-arrange the properties to be next to the impls.
++	  in awt ...
++
++    + fix the 
++
++XCurrencyField (huh)
++    needs implementing for VCLXMetricField (non-existent) ...
++    copy the code from XCurrencyField ? make a sub-class there ?
++
+Index: toolkit/doc/layout/metricfield.txt
+===================================================================
+RCS file: toolkit/doc/layout/metricfield.txt
+diff -N toolkit/doc/layout/metricfield.txt
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/metricfield.txt	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,57 @@
++** MetricField:
++    + in vcl: 
++class VCL_DLLPUBLIC CurrencyField : public SpinField, public CurrencyFormatter
++class VCL_DLLPUBLIC CurrencyFormatter : public NumericFormatter
++class VCL_DLLPUBLIC MetricFormatter : public NumericFormatter
++class VCL_DLLPUBLIC NumericFormatter : public FormatterBase
++
++MetricFormatter - very simple sal_Int64 wrapping ...
++    + no doubles ...
++    + *Could* replicate this with the same interface:
++	+ prolly easier / better to add an XMetricField interface.
++
++vcl's MetricField - itself does a load of (double) casting ...
++    + to get the value it wants :-)
++    + Urgh ! ...
++
++** Can we just twist VCLXCurrencyField to this purpose ?
++    + what differences would we want ?
++    + LongCurrencyFormatter -> 'MetricFormatter' ...
++
++** Interesting !
++    + VCLXCurrencyField is based on 'LongCurrencyField' not CurrencyField ...
++	+ this is really based on 'BigInt' [ curious ] - so even more precision loss.
++
++    + So ... cut/paste VCLXCurencyField -> VCLXMetricField 
++
++	    + Look at 'VCLXNumericField' interface ...
++		+ Use 'XNumericField' instead (?)
++		    + why does this just not "just work" ?
++
++    + The 'MetricField' (is also a MetricFormatter)
++	+ MetricFormatter [ unusually ] has 'Unit' support
++	    + API grep shows:
++		+ a) requires 'fieldunit'
++		+ b) has "UserValue"
++		+ c) => new IDL interface required ...
++		+ sub-set / expand NumericField ?
++
++	    + add 'CustomConvert' ?
++	    + add '[SG]etFirst'/Last
++	    + Properties:
++	        + 'Unit' 
++		+ 'CustomUnitText'
++	    + 'spin-size' -> 'value-step'
++	    + 'BaseValue' ...
++	    + sal_Int64 ... [!?] ...
++	    + CorrectedValue
++	    + Want properties for the UI designer (?)
++		+ move that stuff out into there ?
++    + FIXME:
++	+ rationalise the 'Modify' event crud ...
++	    + share the code in a base-class ...
++
++    + Wrapper:
++        + need to have static methods 'ConvertDoubleValue' etc.
++	+ also 'ConvertValue' etc.
++	+ GetCorrectedValue - never used ...
+Index: toolkit/doc/layout/notes.txt
+===================================================================
+RCS file: toolkit/doc/layout/notes.txt
+diff -N toolkit/doc/layout/notes.txt
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/notes.txt	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,117 @@
++--- How layout / hierarchy should work ---
++
++On-screen:
++
+++-------------------+
++| Label:   [Entry]  |
++| - - - - - - - - - |                  |
++|             [ Ok ]|
+++-------------------+
++
++AWT Window hierarcy:
++	Window
++		+ Label
++		+ Entry
++		+ Ok
++
++	ie. unchanged, and backwards compatible - a flat
++representation.
++
++Toolkit Hierachy
++
++	WindowContainer [Bin?]
++		+ Vbox
++			+ HBox
++				+ Label
++				+ Entry
++		+ Alignment
++			+ Ok
++
++	the layout process would happen inside the toolkit code
++(perhaps eventually genericisd itself), and the result from the
++(re-)layout process would be a set of SetPosition/SetSize calls made
++to VCL.
++
++--- code pointers ---
++
++** AWT interfaces:
++    + offapi/com/sun/star/awt/* - eg. XButton.idl
++	+ 'XLayoutConstrains.idl' [ published & mis-named ! ]
++
++    + We can build 'Layout' into the AWT at the toolkit level
++	+ this should be fairly easy, and wouldn't touch VCL much.
++
++** Toolkit (awt) implementation:
++    + toolkit/source/awt/vclxwindows.cxx:
++	+ much of the implementation lurks in here ...
++    + The size information is in 'vclxwindows.cxx' ...
++
++    + toolkit/source/helper/unowrapper.cxx
++	+ factories / code to associate UNO peers with VCL windows
++	+ pWindow->
++
++--- Tests ---
++
++Integration tests:
++    cf. http://www.openoffice.org/issues/show_bug.cgi?id=78747
++
++
++--- more thoughts ---
++
++** Extra Design constraints: [!?]
++	+ accessibility
++	+ QA test-tool-age ... - tests ~will need re-write (unfortunately)
++
++* New functionality we would like:
++	+ ShowAll (vs. Show/Hide) && HideAll ...
++
++Necessary to re- build && deliver svtools/ having delivered toolkit ...
++    rm unxlngi6.pro/slo/textwindowaccessibility.* # first ...
++
++** Layout containers:
++    + XIndexAccess ? - sorted container (?)
++
++* Consider 'XLayoutRoot' top-level ...
++    + inherit from XNameContainer - widgets by name / id ...
++    + hack a VCL dialog ?
++	+ we need a handle we can pass back of some form:
++	+ XWindowPeer getPeer() ... [ can use that I guess ? ]
++    + also need a service interface ?
++	+ or parameters passed as Anys ? [ugh]
++
++* Decided
++    + use 'layout' by itself & small patches
++      to toolkit/ in ooo-build.
++
++* TODO:
++    + need a 'queueResize' method ...
++	+ trigger on show/hide ...
++    + allocateSize should take an awt::Rectangle ...
++    + impl. XLayoutRoot
++    + special cases:
++        + radio-button-group
++	+ notebook
++
++* svx/source/dialog/zoom*
++
++Michael's Todo:
++    + handle MetricField: 'unit' enum etc. - introspection ? or ...
++    + make OK/Cancel buttons function as they should ...
++    + merge layout-svtools.diff into CWS as last step before inclusion ...
++    + FixedLine:
++	+ get sizing right ...
++	+ hook up new virtual methods into toolkit/ (m225) - i#80754
++	+ copy the crud from toolkit's custom vclxwindows.cxx
++	  "calcMinimumSize" logic ...
++    + get ok/help/cancel buttons working ...
++
++    + fix / rationalise property adding in toolkit ...
++	+ simplify it with the new VCLWindow base :-)
++	+ simplify it ...
++	    + spreadsheet ...
++	+ VCLXImageConsumer - can't be instantiated itself
++             anyway ! -> bin the 'true' & just add all these
++	     props unconditionally ...	
++
++    + switch construction attributes into their own xmlns to
++      avoid treading on other properties ...
+Index: toolkit/doc/layout/oldnotes.txt
+===================================================================
+RCS file: toolkit/doc/layout/oldnotes.txt
+diff -N toolkit/doc/layout/oldnotes.txt
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/oldnotes.txt	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,224 @@
++* Obsolete notes ...
++
++** Form XML format:
++
++    + from the basic editor:
++
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
++<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog1" dlg:left="204" dlg:top="148" dlg:width="136" dlg:height="115" dlg:closeable="true" dlg:moveable="true">
++  <dlg:bulletinboard>
++    <dlg:button dlg:id="OkButtonName" dlg:tab-index="0" dlg:left="86" dlg:top="92" dlg:width="44" dlg:height="19" dlg:value="OkButtonLabel"/>
++    <dlg:titledbox dlg:id="FrameControl1" dlg:tab-index="1" dlg:left="4" dlg:top="7" dlg:width="68" dlg:height="41">
++      <dlg:title dlg:value="FrameControl1"/>
++    </dlg:titledbox>
++    <dlg:scrollbar dlg:id="ScrollBar1" dlg:tab-index="2" dlg:left="82" dlg:top="10" dlg:width="45" dlg:height="24"/>
++    <dlg:scrollbar dlg:id="ScrollBar2" dlg:tab-index="3" dlg:left="107" dlg:top="43" dlg:width="21" dlg:height="37" dlg:align="vertical"/>
++    <dlg:timefield dlg:id="TimeField1" dlg:tab-index="4" dlg:left="4" dlg:top="92" dlg:width="28" dlg:height="19"/>
++    <dlg:text dlg:id="Label1" dlg:tab-index="5" dlg:left="22" dlg:top="61" dlg:width="44" dlg:height="15" dlg:value="Label1"/>
++  </dlg:bulletinboard>
++</dlg:window>
++
++    + code to read this & generate UIs is in:
++	+ DTD: xmlscript/dtd/dialog.dtd
++	+ xmlscript/source/xmldlg_imexp/imp_share.hxx, line 674
++	+ xmlscript/source/misc/unoservices.cxx
++		xmlscript/source/xmlflat_imexp/xmlbas_import.cxx (?)
++		"com.sun.star.comp.xmlscript.XMLBasicImporter"
++	+ the dialog piece seems separate ?
++		"importDialogModel" ...
++	+ cf. the interesting test code ...
++	+ cd xmlscript/test
++	  dmake
++	  ../unxlngi6.pro/bin/imexp /opt/OOInstall ./test.xml
++	    + generates & renders a dialog ...
++
++	+ This code has ~all we need to get a simple impl.
++	    + compatibility wrappers [!]
++
++    // first create model:
++    Reference< container::XNameContainer > xModel( xContext->getServiceManager()->createInstanceWithContext(
++	OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ), xContext ), UNO_QUERY );
++    // NB. xmldlg_addfunc.cxx not xmldlg_import.cxx [!?] ;-)
++    ::xmlscript::importDialogModel( ::xmlscript::createInputStream( bytes ),
++				    xModel, xContext );
++
++    // second create view of model:
++    Reference< awt::XControl > xDlg( xMSF->createInstance(
++	OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialog" ) ) ), UNO_QUERY );
++    xDlg->setModel( Reference< awt::XControlModel >::query( xModel ) );
++
++    // third - associate toolkit / peer ...
++    Reference< awt::XToolkit> xToolkit( xMSF->createInstance(
++	OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.ExtToolkit" ) ) ), UNO_QUERY );
++    xDlg->createPeer( xToolkit, 0 );
++
++    // fourth - execute [ nasty ... ]
++    Reference< awt::XDialog > xD( xDlg, UNO_QUERY );
++    xD->execute();
++
++
++** Basic dialog editor:
++
++    + basctl/source/dlged/dlged.cxx
++	+ dialog editor (?)
++    + basctl/source/basicide/basobj3.cxx
++    + basctl/source/basicide/basides3.cxx
++	+ BasicIDEShell:CreateDlgWin ...
++
++
++** FIXME:
++	+ createPeer - when called is always passed
++	  the toplevel [ it seems ... ]
++	+ we need to pass a container instead ...
++		+ or have some separate hint / method ?
++		+ or call the 'setChild' inside the model
++		  construction bits ? [!?]
++
++UnoControlContainer::addingControl:
++	+ only caller to 'setContext'
++		+ sets the 'Parent' for peers ...
++
++Dialog is an UnoControlContainer ...
++	+ hmm ...
++	+ 'XControlContainer'
++		+ perhaps just what we need ... [!]
++	+ our VBox should be one ...
++
++	+ Other things: tab widgets are 'UnoControlContainers' ...
++		+ finally remembered: xml foo ...
++		+ 
++
++
++	+ FIXME: it -seems- that we don't store
++		 much hierarchy in the model [ any ? ]
++		+ UnoControlModel -> ?
++
++	+ UnoControlDialogModel - has an XNameContainer ...
++		+ but ... only the UnoControl-Dialog-Model has this ...
++
++
++	+ Wow - even the percieved hierarchy:
++		+ 'exportDialogModel'
++			+ achieved by 'getElementNames'
++				-> flat set of names ... [urgh]
++
++	+ So - we need to add more structure:
++		+ XNameContainers ...
++			+ that we insert into [!?]
++		+ we also need to retain order for packing.
++
++	+ need a list of sillies to reverse / revert (?) ...
++
++	+ back-compat:
++		+ kill bogus nesting eg. radiogroup ...
++			[ have a group/tag instead - or hierarchical names ? ]
++		+ ditto for 'titledbox' ...
++		+ menulists - seem rather unrelated / bogus anyway.
++		+ Add into toplevel & child ...
++
++    + copy Dialog bits into unocontrolcontainer.cxx ...
++	+ re-using unocontrolcontainer ...
++
++
++** FIXME:
++    + we need property introspection on the awt widgets:
++	+ but they have no property interfaces [!] -
++	    interestingly the UnoControl's don't either
++	    only the UnoControlModel foo ...
++	+ unocontrols.cxx:
++	    Uno
++    + source/helper/property.cxx
++	+ has all the type information ...
++	+ but no information on what properties are
++	  valid for a type ... - implicit in the UnoControlModel's
++	  code ...
++	    + ImplGetPropertyInfos ...
++
++    + add to vclxwindow.cxx:
++	+ inc/toolkit/helper/property.hxx
++	+ 'getProperties' static ...
++
++** It seems that things like UnoControlComboBoxModel are missing
++   some derived properties: EchoChar (etc.)
++    UnoControlDateFieldModel - missing ... EchoChar too (?) - deliberate ?
++    + query these ... [!?]
++
++layout container - start child 'combobox'
++   missing property 46 (EchoChar)
++   missing property 48 (HardLineBreaks)
++   missing property 12 (HScroll)
++   missing property 104 (LineEndFormat)
++   missing property 10 (MultiLine)
++   missing property 13 (VScroll)
++
++    + add regression test:
++	+ count number of properties ...
++
++
++TODO:
++	add 'XPropertySetInfo' to VCLXWindow:
++	    + trivial to implement :-)
++	    + hook it to Ricardo's parser ... [!] :-)
++
++* xmlscript
++	+ xmldlg_import.cxx - 
++	+ xml_helper/xml_impctx.cxx - foo ...
++
++
++* plan:
++	+ hard-code container hooks into the xmlscript/ parser ...
++	+ create a layout object in toolkit/
++		+ populate it with good things ...
++
++	+ coupling to toolkit - widget instantiation: how ...
++		+ ComponentInfos
++			+ vclxtoolkit.cxx:
++		+ has a 'hook function' for 'fnSvtCreateWindow'
++		  for SVT widgets :-) [ grotesque ;-]
++			+ [ wow - fetched by dlopen! ;-]
++
++	+ A little app - a-la solver: using awt (?)
++		+ XMessageBoxFactory ...
++		+ XToolkit:
++			+ CreateWindow ...
++		+ ** how does the xml code generate these guys ? **
++
++	+ what APIs does the xmlimporter use ? not 'createWindow' seemingly.
++
+++ existing xml import uses: property bag a -lot-:
++	Reference< beans::XPropertySet > xProps(
++	        _pImport->_xDialogModel, UNO_QUERY_THROW );
++	* we do _xDialogModel->insertByName (new any<XControlModel>())
++		+ to build hierarchy ( cf. ~ControlImportContext )
++
++	DialogImport:
++		css::uno::Reference< css::container::XNameContainer > _xDialogModel;
++
++	Reference< container::XNameContainer > xModel( xContext->getServiceManager()->createInstanceWithContext(
++			OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ), xContext ), UNO_QUERY );
++
++	toolkit/source/controls/dialogcontrol.cxx
++		+ UnoControlButtonModel (eg.)
++		+ service 'UnoControlModel' ...
++
++	+ poke at 'titledbox' or 'radiogroup' to see how containment works there ...
++		+ how will child widget properties work ?
++		+ bug with a 'vbox' inside a 'titledbox' ...
++	+ titledbox - acts as a container (interesting)
++		- offsetting child positions
++	+ how will pseudo-containers eg. "radiogroup" cope ?
++
++	+ propose new syntax: [ with child properties a-la glade ]:
++
++	<hbox id="baa" flange="true">
++		<child padding="0" expand="false" fill="false">
++			<radio id="foo" value="..."/>
++		</child>
++		<radio id="foo" value="..."/>
++	</hbox>
++	
++	+ if 'child' element omitted - default properties used ...
++	+ if multiple elements in same 'child' set: all have the same props.
++
++
+Index: toolkit/doc/layout/vcl.txt
+===================================================================
+RCS file: toolkit/doc/layout/vcl.txt
+diff -N toolkit/doc/layout/vcl.txt
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/doc/layout/vcl.txt	13 Feb 2008 08:56:21 -0000	1.1.2.1
+@@ -0,0 +1,20 @@
++* How do very basic vcl widgets get peers:
++
++    + toolkit/awt/ VCLXToolkit::ImplCreateWindow
++	+ calls GetComponentInterface (sal_True) - if no comp. iface.
++
++    + vcl's Window:
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > GetComponentInterface( BOOL bCreate = TRUE );
++
++    + vcl/inc/vcl/unowrap.hxx:
++	// Window
++	virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer> GetWindowInterface( Window* pWindow, sal_Bool bCreate ) = 0;
++	virtual void				SetWindowInterface( Window* pWindow, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xIFace ) = 0;
++
++    + from svapp.cxx Application::SetUnoWrapper
++	-> toolkit/awt 'ToolkitWorkerFunction' ( extern C / dlopen linkage )
++
++    + from toolkit/source/helper/unowrapper.cxx:
++	-> CreateXWindow -> 'return new VCLXWindow' 
++	    ** FIXME: we need love in here too:
++		+ METRICBOX eg.
+\ No newline at end of file
+cvs diff: Diffing toolkit/inc
+cvs diff: Diffing toolkit/inc/layout
+Index: toolkit/inc/layout/layout-post.hxx
+===================================================================
+RCS file: toolkit/inc/layout/layout-post.hxx
+diff -N toolkit/inc/layout/layout-post.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/inc/layout/layout-post.hxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,30 @@
++#ifndef _LAYOUT_POST_HXX
++#define _LAYOUT_POST_HXX
++
++#if ENABLE_LAYOUT
++
++#undef Button
++#undef CancelButton
++#undef FixedInfo
++#undef FixedLine
++#undef FixedText
++#undef HelpButton
++#undef MetricField
++#undef OKButton
++#undef RadioButton
++#undef SfxModalDialog
++
++#undef Window
++
++#undef SVX_RES
++#define SVX_RES(i)        ResId(i,DIALOG_MGR())
++
++#undef SW_RES
++#define SW_RES(i)               ResId(i,SWDIALOG_MGR())
++
++/* Allow re-inclusion for cxx file. */
++#undef _LAYOUT_PRE_HXX
++
++#endif /* ENABLE_LAYOUT */
++
++#endif /* _LAYOUT_POST_HXX */
+Index: toolkit/inc/layout/layout-pre.hxx
+===================================================================
+RCS file: toolkit/inc/layout/layout-pre.hxx
+diff -N toolkit/inc/layout/layout-pre.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/inc/layout/layout-pre.hxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,64 @@
++#ifndef _LAYOUT_PRE_HXX
++#define _LAYOUT_PRE_HXX
++
++#if ENABLE_LAYOUT
++
++//#if !LAYOUT
++//#define LAYOUT 1
++//#endif
++//#define LAYOUT_NS layout
++
++// TWBN, but find that SfxModalDialog and FixedLine are already defined, eg compiling
++// dlgfact.cxx
++//typedef layout::Dialog SfxModalDialog;
++//typedef layout::FixedLine FixedLine;
++
++#define Button layout::Button
++#define CancelButton layout::CancelButton
++#define FixedInfo layout::FixedInfo
++#define FixedLine layout::FixedLine
++#define FixedText layout::FixedText
++#define HelpButton layout::HelpButton
++#define MetricField layout::MetricField
++#define OKButton layout::OKButton
++#define RadioButton layout::RadioButton
++#define SfxModalDialog layout::Dialog
++
++/* FIXME: why are we defaulting to layout::Window?
++   /home/janneke/vc/ooo-build/build/hack/sw/source/ui/dialog/wordcountdialog.cxx:87: error: no matching function for call to 'layout::Dialog::Dialog(Window*&, const char [14], const char [7])'
++   ../../../../layout/inc/layout/layout.hxx:304: note: candidates are: layout::Dialog::Dialog(layout::Window*, const char*, const char*, sal_uInt32)
++   ../../../../layout/inc/layout/layout.hxx:300: note:                 layout::Dialog::Dialog(const layout::Dialog&)
++*/
++
++#define Window ::Window
++
++#undef SVX_RES
++#define SVX_RES(x) #x
++#undef SW_RES
++#define SW_RES(x) #x
++
++/* Hmm.  This hack makes zoom.cxx, wordcountdialog.cxx diffs smaller
++ * but is not scalable. */
++#ifdef _LAYOUT_POST_HXX
++
++#ifdef _SVX_ZOOM_CXX
++#undef SfxModalDialog
++#define SfxModalDialog( pParent, SVX_RES_RID ) layout::Dialog( pParent, "zoom.xml", "dialog" )
++#define _SVX_ZOOM_HRC
++#endif /* _SVX_ZOOM_CXX */
++
++#ifdef SW_WORDCOUNTDIALOG_HXX
++#undef SfxModalDialog
++#define SfxModalDialog( pParent, SW_RES_RID ) layout::Dialog( pParent, "wordcount.xml", "dialog" )
++#define SW_WORDCOUNTDIALOG_HRC
++#endif /* SW_WORDCOUNTDIALOG_HXX */
++
++#endif /* _SVX_ZOOM_CXX */
++
++#else /* !ENABLE_LAYOUT */
++
++#define LAYOUT_PRE_POST
++
++#endif /* !ENABLE_LAYOUT */
++
++#endif /* _LAYOUT_PRE_HXX */
+Index: toolkit/inc/layout/layout.hxx
+===================================================================
+RCS file: toolkit/inc/layout/layout.hxx
+diff -N toolkit/inc/layout/layout.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/inc/layout/layout.hxx	12 Feb 2008 11:05:46 -0000	1.1.2.2
+@@ -0,0 +1,442 @@
++#ifndef _LAYOUT_HXX
++#define _LAYOUT_HXX
++
++#if ENABLE_LAYOUT
++
++#include <com/sun/star/uno/XInterface.hpp>
++#include <com/sun/star/awt/XLayoutContainer.hpp>
++#include <tools/link.hxx>
++#include <tools/string.hxx>
++
++// FIXME: eventually wrap FieldUnit
++#include <vcl/fldunit.hxx>
++// FIXME: eventually wrap this too ...
++#include <vcl/wintypes.hxx>
++
++#include <toolkit/dllapi.h>
++
++class Window;
++
++namespace layout
++{
++
++namespace css = ::com::sun::star;
++
++typedef css::uno::Reference< css::uno::XInterface > PeerHandle;
++class ContextImpl;
++class TOOLKIT_DLLPUBLIC Context
++{
++    ContextImpl *pImpl;
++public:
++    Context( const char *pPath );
++    ~Context();
++    PeerHandle GetPeerHandle( const char *pId, sal_uInt32 nId = 0 ) const;
++    void setToplevel( PeerHandle xToplevel );
++    PeerHandle getToplevel();
++    PeerHandle getRoot();
++};
++
++class ImageImpl;
++class TOOLKIT_DLLPUBLIC Image
++{
++    ImageImpl *pImpl;
++public:
++    Image( const char *pName );
++    ~Image();
++    ImageImpl &getImpl() const { return *pImpl; }
++};
++
++// make declaring wrappers easier ...
++#define DECL_CONSTRUCTORS(t,par,defaultWinBit) \
++    protected:                                 \
++        explicit t( WindowImpl *pImpl ) : \
++            par( pImpl ) {} \
++        const char *GetUnoName() const; \
++    public: \
++        t( Context *pCtx, const char *pId, sal_uInt32 nId = 0 ); \
++        t( Window *pParent, WinBits nStyle = defaultWinBit )
++#define DECL_GET_IMPL(t) \
++        inline t##Impl &getImpl() const
++
++// follows the VCL inheritance hierarchy ...
++
++class WindowImpl;
++class TOOLKIT_DLLPUBLIC TOOLKIT_DLLPUBLIC Window
++{
++protected:
++    WindowImpl *mpImpl;
++    static PeerHandle CreatePeer( Window *pParent, WinBits nStyle,
++                                  const char *pName);
++public:
++    PeerHandle GetPeer();
++    Context *getContext();
++    DECL_GET_IMPL( Window );
++    explicit Window( WindowImpl *pImpl );
++    virtual ~Window();
++
++    void Enable( bool bEnable = true );
++    inline void Disable() { Enable( false ); }
++    void Show( BOOL bVisible = TRUE );
++    inline void Hide() { Show( FALSE ); }
++    void GrabFocus();
++    void FreeResource() {}
++
++    WinBits GetStyle();
++    void SetStyle( WinBits nStyle );
++};
++
++class ControlImpl;
++class TOOLKIT_DLLPUBLIC Control : public Window
++{
++    DECL_GET_IMPL( Control );
++    DECL_CONSTRUCTORS( Control, Window, 0 );
++public:
++// void SetText( const String& rStr ); - can't do this here ...
++};
++
++class FixedLineImpl;
++class TOOLKIT_DLLPUBLIC FixedLine : public Control
++{
++    friend class FixedLineImpl;
++    DECL_GET_IMPL( FixedLine );
++    DECL_CONSTRUCTORS( FixedLine, Control, WB_HORZ );
++};
++
++class FixedTextImpl;
++class TOOLKIT_DLLPUBLIC FixedText : public Control
++{
++    friend class FixedTextImpl;
++    DECL_GET_IMPL( FixedText );
++    DECL_CONSTRUCTORS( FixedText, Control, 0 );
++public:
++    void SetText( const String& rStr );
++};
++
++class FixedInfoImpl;
++class TOOLKIT_DLLPUBLIC FixedInfo : public FixedText
++{
++    friend class FixedInfoImpl;
++    DECL_GET_IMPL( FixedInfo );
++    DECL_CONSTRUCTORS( FixedInfo, FixedText, 0 );
++};
++
++class ButtonImpl;
++class TOOLKIT_DLLPUBLIC Button : public Control
++{
++    friend class ButtonImpl;
++    DECL_GET_IMPL( Button );
++    DECL_CONSTRUCTORS( Button, Control, 0 );
++public:
++    void SetText( const String& rStr );
++    BOOL SetModeImage( const Image& rImage );
++    void SetImageAlign( ImageAlign eAlign );
++
++    void SetClickHdl( const Link& rLink );
++    virtual void Click() /* pure virtual? */;
++};
++
++class PushButtonImpl;
++class TOOLKIT_DLLPUBLIC PushButton : public Button
++{
++    DECL_GET_IMPL( PushButton );
++    DECL_CONSTRUCTORS( PushButton, Button, 0 );
++public:
++    void Check( BOOL bCheck = TRUE );
++    BOOL IsChecked() const;
++
++    void Toggle();
++    void SetToggleHdl( const Link& rLink );
++};
++
++class TOOLKIT_DLLPUBLIC OKButton : public PushButton
++{
++    DECL_CONSTRUCTORS( OKButton, PushButton, WB_DEFBUTTON );
++};
++class TOOLKIT_DLLPUBLIC CancelButton : public PushButton
++{
++    DECL_CONSTRUCTORS( CancelButton, PushButton, 0 );
++};
++class TOOLKIT_DLLPUBLIC YesButton : public PushButton
++{
++    DECL_CONSTRUCTORS( YesButton, PushButton, WB_DEFBUTTON );
++};
++class TOOLKIT_DLLPUBLIC NoButton : public PushButton
++{
++    DECL_CONSTRUCTORS( NoButton, PushButton, 0 );
++};
++class TOOLKIT_DLLPUBLIC RetryButton : public PushButton
++{
++    DECL_CONSTRUCTORS( RetryButton, PushButton, 0 );
++};
++class TOOLKIT_DLLPUBLIC IgnoreButton : public PushButton
++{
++    DECL_CONSTRUCTORS( IgnoreButton, PushButton, 0 );
++};
++class TOOLKIT_DLLPUBLIC ResetButton : public PushButton
++{
++    DECL_CONSTRUCTORS( ResetButton, PushButton, 0 );
++};
++class TOOLKIT_DLLPUBLIC ApplyButton : public PushButton
++{
++    DECL_CONSTRUCTORS( ApplyButton, PushButton, 0 );
++};
++class TOOLKIT_DLLPUBLIC HelpButton : public PushButton
++{
++    DECL_CONSTRUCTORS( HelpButton, PushButton, 0 );
++};
++
++class RadioButtonImpl;
++class TOOLKIT_DLLPUBLIC RadioButton : public Button
++{
++    DECL_GET_IMPL( RadioButton );
++    DECL_CONSTRUCTORS( RadioButton, Button, 0 );
++public:
++    void Check( BOOL bCheck = TRUE );
++    BOOL IsChecked() const;
++
++    void Toggle();
++    void SetToggleHdl( const Link& rLink );
++};
++
++class CheckBoxImpl;
++class TOOLKIT_DLLPUBLIC TOOLKIT_DLLPUBLIC CheckBox : public Button
++{
++    DECL_GET_IMPL( CheckBox );
++    DECL_CONSTRUCTORS( CheckBox, Button, 0 );
++public:
++    void Check( BOOL bCheck = TRUE );
++    BOOL IsChecked() const;
++
++    void Toggle();
++    void SetToggleHdl( const Link& rLink );
++};
++
++class EditImpl;
++class TOOLKIT_DLLPUBLIC Edit : public Control
++{
++    DECL_GET_IMPL( Edit );
++    DECL_CONSTRUCTORS( Edit, Control, WB_BORDER );
++public:
++    void SetText( const XubString& rStr ) const;
++    XubString GetText() const;
++    void SetModifyHdl( const Link& rLink );
++};
++
++class MultiLineEditImpl;
++class TOOLKIT_DLLPUBLIC MultiLineEdit : public Edit
++{
++    DECL_GET_IMPL( MultiLineEdit );
++    DECL_CONSTRUCTORS( MultiLineEdit, Edit, WB_LEFT|WB_BORDER );
++};
++
++class SpinFieldImpl;
++class TOOLKIT_DLLPUBLIC SpinField : public Edit
++{
++    DECL_GET_IMPL( SpinField );
++    DECL_CONSTRUCTORS( SpinField, Edit, 0 );
++};
++
++class FormatterBaseImpl;
++class TOOLKIT_DLLPUBLIC FormatterBase
++{
++protected:
++    FormatterBaseImpl *mpFormatImpl;
++    FormatterBase( FormatterBaseImpl *pFormatImpl )
++        : mpFormatImpl( pFormatImpl ) {}
++};
++
++class NumericFormatterImpl;
++class TOOLKIT_DLLPUBLIC NumericFormatter : public FormatterBase
++{
++protected:
++    explicit NumericFormatter( FormatterBaseImpl *pImpl );
++    NumericFormatterImpl &getFormatImpl() const;
++public:
++    void SetMin( sal_Int64 nNewMin );
++    void SetMax( sal_Int64 nNewMax );
++    void SetFirst( sal_Int64 nNewFirst );
++    void SetLast( sal_Int64 nNewLast );
++    void SetSpinSize( sal_Int64 nNewSize );
++
++    void SetValue( sal_Int64 nNewValue );
++    sal_Int64 GetValue() const;
++};
++
++class NumericFieldImpl;
++class TOOLKIT_DLLPUBLIC NumericField : public SpinField, public NumericFormatter
++{
++    DECL_GET_IMPL( NumericField );
++public:
++    NumericField( Context *pCtx, const char *pId, sal_uInt32 nId = 0 );
++    NumericField( Window *pParent, WinBits nStyle );
++};
++
++class MetricFormatterImpl;
++// Different inheritance to save code
++class TOOLKIT_DLLPUBLIC MetricFormatter : public FormatterBase
++{
++  protected:
++    explicit MetricFormatter( FormatterBaseImpl *pImpl );
++    MetricFormatterImpl &getFormatImpl() const;
++public:
++    void SetMin( sal_Int64 nNewMin, FieldUnit nUnit = FUNIT_NONE );
++    void SetMax( sal_Int64 nNewMax, FieldUnit nUnit = FUNIT_NONE );
++    void SetFirst( sal_Int64 nNewFirst, FieldUnit nUnit = FUNIT_NONE );
++    void SetLast( sal_Int64 nNewLast, FieldUnit nUnit = FUNIT_NONE );
++    void SetValue( sal_Int64 nNewValue, FieldUnit nUnit = FUNIT_NONE );
++    sal_Int64 GetValue( FieldUnit nUnit = FUNIT_NONE ) const;
++
++    void SetSpinSize( sal_Int64 nNewSize );
++};
++
++class MetricFieldImpl;
++class TOOLKIT_DLLPUBLIC MetricField : public SpinField, public MetricFormatter
++{
++    DECL_GET_IMPL( MetricField );
++public:
++    MetricField( Context *pCtx, const char *pId, sal_uInt32 nId = 0 );
++    MetricField( Window *pParent, WinBits nStyle );
++};
++
++#define COMBOBOX_APPEND            ((USHORT)0xFFFF)
++#define COMBOBOX_ENTRY_NOTFOUND    ((USHORT)0xFFFF)
++class ComboBoxImpl;
++class TOOLKIT_DLLPUBLIC ComboBox : public Edit
++{
++    DECL_GET_IMPL( ComboBox );
++    DECL_CONSTRUCTORS( ComboBox, Edit, 0 );
++
++public:
++    USHORT InsertEntry( const XubString& rStr, USHORT nPos = COMBOBOX_APPEND );
++    void RemoveEntry( const XubString& rStr );
++    void RemoveEntry( USHORT nPos );
++    void Clear();
++
++    USHORT GetEntryPos( const XubString& rStr ) const;
++    XubString GetEntry( USHORT nPos ) const;
++    USHORT GetEntryCount() const;
++
++    void SetClickHdl( const Link& rLink );
++    void SetSelectHdl( const Link& rLink );
++};
++
++#define LISTBOX_APPEND               ((USHORT)0xFFFF)
++#define LISTBOX_ENTRY_NOTFOUND       ((USHORT)0xFFFF)
++class ListBoxImpl;
++class TOOLKIT_DLLPUBLIC ListBox : public Control
++{
++    DECL_GET_IMPL( ListBox );
++    DECL_CONSTRUCTORS( ListBox, Control, WB_BORDER );
++public:
++    USHORT InsertEntry( const XubString& rStr, USHORT nPos = LISTBOX_APPEND );
++
++    void RemoveEntry( const XubString& rStr );
++    void RemoveEntry( USHORT nPos );
++    void Clear();
++
++    USHORT GetEntryPos( const XubString& rStr ) const;
++    XubString GetEntry( USHORT nPos ) const;
++    USHORT GetEntryCount() const;
++
++    void SelectEntry( const XubString& rStr, BOOL bSelect = TRUE );
++    void SelectEntryPos( USHORT nPos, BOOL bSelect = TRUE );
++
++    USHORT GetSelectEntryCount() const;
++    XubString GetSelectEntry( USHORT nSelIndex = 0 ) const;
++    USHORT GetSelectEntryPos( USHORT nSelIndex = 0 ) const;
++
++    void SetSelectHdl( const Link& rLink );
++    void SetClickHdl( const Link& rLink );
++};
++
++class DialogImpl;
++class TOOLKIT_DLLPUBLIC Dialog : public Context, public Window
++{
++    DECL_GET_IMPL( Dialog );
++    void SetParent( Window *pParent );
++    void SetParent( ::Window *pParent );
++public:
++    Dialog( Window *pOptParent, const char *pXMLPath, const char *pId, sal_uInt32 nId = 0 );
++    Dialog( ::Window *pOptParent, const char *pXMLPath, const char *pId, sal_uInt32 nId = 0 );
++    short Execute();
++    void EndDialog( long nResult = 0 );
++    void SetText( const String& rStr );
++};
++
++// -----------------------------------------------------------------
++//                 layout container / helper wrappers
++// -----------------------------------------------------------------
++
++class TOOLKIT_DLLPUBLIC Container
++{
++protected:
++    css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
++    Container( const rtl::OUString &rName, sal_Int32 nBorder );
++public:
++    Container( const Context *pCtx, const char *pId );
++
++    void Add( Window *pWindow );
++    void Add( Container *pContainer );
++
++    void Remove( Window *pWindow );
++    void Remove( Container *pContainer );
++    void Clear();
++    // we can't really do a GetChildren() as they don't have a common class,
++    // besides we would need to keep track of children, uh
++
++    void ShowAll( bool bVisible );
++
++    css::uno::Reference< css::awt::XLayoutContainer > getImpl()
++    { return mxContainer; }
++};
++
++class TOOLKIT_DLLPUBLIC Table : public Container
++{
++protected:
++    Table( sal_Int32 nBorder, sal_Int32 nColumns );
++public:
++    Table( const Context *pCtx, const char *pId )
++        : Container( pCtx, pId ) {}
++    void Add( Window *pWindow, bool bXExpand, bool bYExpand,
++              sal_Int32 nXSpan = 1, sal_Int32 nYSpan = 1 );
++    void Add( Container *pContainer, bool bXExpand, bool bYExpand,
++              sal_Int32 nXSpan = 1, sal_Int32 nYSpan = 1 );
++
++private:
++    void setProps( css::uno::Reference< css::awt::XLayoutConstrains > xChild,
++                   bool bXExpand, bool bYExpand, sal_Int32 nXSpan, sal_Int32 nYSpan );
++};
++
++class TOOLKIT_DLLPUBLIC Box : public Container
++{
++protected:
++    Box( const rtl::OUString &rName, sal_Int32 nBorder, bool bHomogeneous );
++public:
++    Box( const Context *pCtx, const char *pId )
++        : Container( pCtx, pId ) {}
++    void Add( Window *pWindow, bool bExpand, bool bFill, sal_Int32 nPadding);
++    void Add( Container *pContainer, bool bExpand, bool bFill, sal_Int32 nPadding);
++
++private:
++    void setProps( css::uno::Reference< css::awt::XLayoutConstrains > xChild,
++                   bool bXExpand, bool bYExpand, sal_Int32 nPadding );
++};
++
++class TOOLKIT_DLLPUBLIC HBox : public Box
++{
++public:
++    HBox( sal_Int32 nBorder, bool bHomogeneous )
++        : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "hbox" ) ), nBorder, bHomogeneous ) {}
++};
++class TOOLKIT_DLLPUBLIC VBox : public Box
++{
++public:
++    VBox( sal_Int32 nBorder, bool bHomogeneous )
++        : Box( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "vbox" ) ), nBorder, bHomogeneous ) {}
++};
++
++} // end namespace layout
++
++#endif /* ENABLE_LAYOUT */
++
++#endif /* _LAYOUT_HXX */
+Index: toolkit/inc/layout/layoutcore.hxx
+===================================================================
+RCS file: toolkit/inc/layout/layoutcore.hxx
+diff -N toolkit/inc/layout/layoutcore.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/inc/layout/layoutcore.hxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,49 @@
++#ifndef _LAYOUT_CORE_HXX_
++#define _LAYOUT_CORE_HXX_
++
++#include <com/sun/star/awt/XToolkit.hpp>
++#include <com/sun/star/graphic/XGraphic.hpp>
++#include <com/sun/star/awt/XLayoutContainer.hpp>
++#include <com/sun/star/awt/XLayoutConstrains.hpp>
++
++#include <layout/layout.hxx>
++
++namespace layoutimpl
++{
++
++namespace css = layout::css;
++
++css::uno::Reference< css::awt::XLayoutContainer >
++createContainer( const rtl::OUString &rName );
++
++css::uno::Reference< css::awt::XLayoutConstrains >
++createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++              css::uno::Reference< css::uno::XInterface > xParent,
++              const rtl::OUString &rName, long nProps );
++
++css::uno::Reference< css::awt::XLayoutConstrains >
++createInternalWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++                      css::uno::Reference< css::uno::XInterface > xParent,
++                      const rtl::OUString &rName, long nProps );
++
++css::uno::Reference< css::graphic::XGraphic > loadGraphic( const char *pName );
++
++// Helpers - unfortunately VCLXWindows don't implement XPropertySet
++// but containers do - these helpers help us to hide this
++namespace prophlp
++{
++// can we set properties on this handle ?
++bool canHandleProps( const css::uno::Reference< css::uno::XInterface > &xRef );
++// if so which properties ?
++css::uno::Reference< css::beans::XPropertySetInfo > queryPropertyInfo(
++    const css::uno::Reference< css::uno::XInterface > &xRef );
++// set / get ...
++void setProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
++                  const rtl::OUString &rName,
++                  css::uno::Any aValue );
++css::uno::Any getProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
++                           const rtl::OUString &rName );
++} // namespace prophlp
++} // namespace layoutimpl
++
++#endif // _LAYOUT_CORE_HXX_
+cvs diff: Diffing toolkit/inc/pch
+cvs diff: Diffing toolkit/inc/toolkit
+cvs diff: Diffing toolkit/inc/toolkit/awt
+Index: toolkit/inc/toolkit/awt/vclxtoolkit.hxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/inc/toolkit/awt/vclxtoolkit.hxx,v
+retrieving revision 1.18
+retrieving revision 1.18.162.1
+diff -p -u -u -p -b -w -B -r1.18 -r1.18.162.1
+--- toolkit/inc/toolkit/awt/vclxtoolkit.hxx	1 Dec 2006 15:08:56 -0000	1.18
++++ toolkit/inc/toolkit/awt/vclxtoolkit.hxx	14 Feb 2008 15:50:38 -0000	1.18.162.1
+@@ -83,6 +83,10 @@
+ #include <vcl/wintypes.hxx>
+ #endif
+ 
++#include <toolkit/dllapi.h>
++
++TOOLKIT_DLLPUBLIC WinBits ImplGetWinBits( sal_uInt32 nComponentAttribs, sal_uInt16 nCompType );
++
+ class Window;
+ class VCLXWindow;
+ class VclSimpleEvent;
+cvs diff: Diffing toolkit/inc/toolkit/controls
+cvs diff: Diffing toolkit/inc/toolkit/helper
+cvs diff: Diffing toolkit/prj
+Index: toolkit/prj/build.lst
+===================================================================
+RCS file: /cvs/gsl/toolkit/prj/build.lst,v
+retrieving revision 1.4
+retrieving revision 1.4.84.2
+diff -p -u -u -p -b -w -B -r1.4 -r1.4.84.2
+--- toolkit/prj/build.lst	27 Jun 2007 12:21:24 -0000	1.4
++++ toolkit/prj/build.lst	13 Feb 2008 15:25:48 -0000	1.4.84.2
+@@ -6,4 +6,7 @@ ti	toolkit\source\helper					nmake	-	all
+ ti	toolkit\source\awt						nmake	-	all	ti_awt  ti_inc NULL
+ ti	toolkit\source\controls					nmake	-	all	ti_controls  ti_inc NULL
+ ti	toolkit\source\controls\tree			nmake	-	all	ti_tree  NULL
+-ti	toolkit\util							nmake	-	all	ti_util ti_awt ti_controls ti_helper ti_tree NULL
++ti	toolkit\source\layout    nmake	-	all	ti_layout NULL
++ti	toolkit\source\vclcompat nmake	-	all	ti_vclcompat NULL
++ti	toolkit\util							nmake	-	all	ti_util ti_awt ti_controls ti_layout ti_helper ti_tree ti_vclcompat NULL
++ti	toolkit\workben\layout   nmake	-	all	ti_layout_workben ti_util NULL
+Index: toolkit/prj/d.lst
+===================================================================
+RCS file: /cvs/gsl/toolkit/prj/d.lst,v
+retrieving revision 1.21.66.1
+retrieving revision 1.21.66.1.2.1
+diff -p -u -u -p -b -w -B -r1.21.66.1 -r1.21.66.1.2.1
+--- toolkit/prj/d.lst	24 Jan 2008 15:28:50 -0000	1.21.66.1
++++ toolkit/prj/d.lst	12 Feb 2008 11:06:35 -0000	1.21.66.1.2.1
+@@ -48,3 +48,16 @@ mkdir: %_DEST%\inc%_EXT%\toolkit\control
+ ..\inc\toolkit\helper\vclunohelper.hxx %_DEST%\inc%_EXT%\toolkit\unohlp.hxx
+ ..\inc\toolkit\dllapi.h %_DEST%\inc%_EXT%\toolkit\dllapi.h
+ 
++mkdir: %_DEST%\inc%_EXT%\layout
++..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
++..\%__SRC%\lib\layout.lib %_DEST%\lib%_EXT%\tklayout.lib
++..\%__SRC%\bin\layout*.dll %_DEST%\bin%_EXT%\tklayout*.dll
++..\%__SRC%\misc\layout*.map %_DEST%\bin%_EXT%\tklayout*.map
++
++..\%__SRC%\lib\*.xml %_DEST%\lib%_EXT%\*.xml
++mkdir: %_DEST%\lib%_EXT%\de
++..\%__SRC%\lib\de\*.xml %_DEST%\lib%_EXT%\de\*.xml
++mkdir: %_DEST%\lib%_EXT%\nl
++..\%__SRC%\lib\nl\*.xml %_DEST%\lib%_EXT%\nl\*.xml
++
++..\inc\layout\*.hxx %_DEST%\inc%_EXT%\layout\*.hxx
+cvs diff: Diffing toolkit/qa
+cvs diff: Diffing toolkit/qa/complex
+cvs diff: Diffing toolkit/qa/complex/toolkit
+cvs diff: Diffing toolkit/qa/complex/toolkit/interface_tests
+cvs diff: Diffing toolkit/qa/unoapi
+cvs diff: Diffing toolkit/qa/unoapi/testdocuments
+cvs diff: Diffing toolkit/source
+cvs diff: Diffing toolkit/source/awt
+Index: toolkit/source/awt/forward.hxx
+===================================================================
+RCS file: toolkit/source/awt/forward.hxx
+diff -N toolkit/source/awt/forward.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/forward.hxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,41 @@
++#ifndef AWT_FORWARD_HXX
++#define AWT_FORWARD_HXX
++
++#ifndef _COMPHELPER_UNO3_HXX_
++#include <comphelper/uno3.hxx>
++#endif
++
++#define IMPLEMENT_FORWARD_XTYPEPROVIDER1( classname, baseclass ) \
++    ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL classname::getTypes(  ) throw (::com::sun::star::uno::RuntimeException) \
++    { return baseclass::getTypes(); } \
++    IMPLEMENT_GET_IMPLEMENTATION_ID( classname )
++
++#define IMPLEMENT_2_FORWARD_XINTERFACE1( classname, refcountbase1, refcountbase2 ) \
++    void SAL_CALL classname::acquire() throw() { refcountbase1::acquire(); refcountbase2::acquire(); } \
++    void SAL_CALL classname::release() throw() { refcountbase1::release(); refcountbase2::release(); } \
++    ::com::sun::star::uno::Any SAL_CALL classname::queryInterface( const ::com::sun::star::uno::Type& _rType ) throw (::com::sun::star::uno::RuntimeException) \
++    { \
++        ::com::sun::star::uno::Any aReturn = refcountbase1::queryInterface( _rType ); \
++        if ( !aReturn.hasValue() ) \
++        { \
++            aReturn = refcountbase2::queryInterface( _rType ); \
++        } \
++        return aReturn; \
++    }
++
++#define IMPLEMENT_2_FORWARD_XINTERFACE2( classname, refcountbase1, refcountbase2, baseclass3 ) \
++    void SAL_CALL classname::acquire() throw() { refcountbase1::acquire(); refcountbase2::acquire(); } \
++    void SAL_CALL classname::release() throw() { refcountbase1::release(); refcountbase2::release(); } \
++    ::com::sun::star::uno::Any SAL_CALL classname::queryInterface( const ::com::sun::star::uno::Type& _rType ) throw (::com::sun::star::uno::RuntimeException) \
++    { \
++        ::com::sun::star::uno::Any aReturn = refcountbase1::queryInterface( _rType ); \
++        if ( !aReturn.hasValue() ) \
++        { \
++            aReturn = refcountbase2::queryInterface( _rType ); \
++            if ( !aReturn.hasValue() ) \
++                aReturn = baseclass3::queryInterface( _rType ); \
++        } \
++        return aReturn; \
++    }
++
++#endif /*AWT_FORWARD_HXX*/
+Index: toolkit/source/awt/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/makefile.mk,v
+retrieving revision 1.32
+retrieving revision 1.32.28.1
+diff -p -u -u -p -b -w -B -r1.32 -r1.32.28.1
+--- toolkit/source/awt/makefile.mk	7 Dec 2007 11:39:34 -0000	1.32
++++ toolkit/source/awt/makefile.mk	11 Feb 2008 15:13:37 -0000	1.32.28.1
+@@ -78,6 +78,20 @@ SRS1NAME=$(TARGET)
+ SRC1FILES=\
+             xthrobber.src
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++SECOND_BUILD=layout
++layout_SLOFILES=\
++	$(SLO)/vclxbutton.obj\
++	$(SLO)/vclxdialog.obj\
++	$(SLO)/vclxfixedline.obj\
++	$(SLO)/vclxproxy.obj\
++	$(SLO)/vclxscroller.obj\
++	$(SLO)/vclxsplitter.obj\
++	$(SLO)/vclxtabcontrol.obj
++
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ # --- Targets ------------------------------------------------------
+ 
+ .INCLUDE :	target.mk
+Index: toolkit/source/awt/non-interactable-containers.xml
+===================================================================
+RCS file: toolkit/source/awt/non-interactable-containers.xml
+diff -N toolkit/source/awt/non-interactable-containers.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/non-interactable-containers.xml	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,15 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Interactable Containers" optimumsize="true"
++             border="true" sizeable="true" moveable="true">
++	<hbox>
++		<table columns="3" cnt:title="Page 1">
++			<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++			<pushbutton cnt:y-expand="false" label="1,2" />
++			<pushbutton cnt:y-expand="false" label="1,3" />
++			<pushbutton cnt:col-span="2" label="2,1" />
++		</table>
++	</hbox>
++</dialog>
+Index: toolkit/source/awt/vclxbutton.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxbutton.cxx
+diff -N toolkit/source/awt/vclxbutton.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxbutton.cxx	18 Feb 2008 15:24:45 -0000	1.1.2.2
+@@ -0,0 +1,130 @@
++#include "vclxbutton.hxx"
++
++#include "layoutcore.hxx"
++#include <com/sun/star/awt/ImagePosition.hpp>
++#include <vcl/button.hxx>
++
++namespace css = com::sun::star;
++
++IconButton::IconButton( css::uno::Reference< css::uno::XInterface > xButton,
++                        rtl::OUString aDefaultLabel, const char *pGraphName )
++    : VCLXProxy( xButton )
++{
++    setLabel( aDefaultLabel );
++    setProperty( rtl::OUString::createFromAscii( "Graphic" ),
++                 css::uno::Any( layoutimpl::loadGraphic( pGraphName ) ) );
++    setProperty( rtl::OUString::createFromAscii( "ImagePosition" ),
++                 css::uno::Any( css::awt::ImagePosition::LeftCenter ) );
++    setProperty( rtl::OUString::createFromAscii( "Align" ),
++                 css::uno::Any( (sal_Int16) 1 /* magic - center */ ) );
++}
++
++// FIXME: l10n/i18n of Reset & Apply
++
++VCLXOKButton::VCLXOKButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_OK ),
++                  "res/commandimagelist/sc_ok.png" )
++{
++}
++
++VCLXCancelButton::VCLXCancelButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_CANCEL ),
++//    : IconButton( xButton, rtl::OUString::createFromAscii( "~Cancel " ),
++                  "res/commandimagelist/sc_cancel.png" )
++{
++}
++
++VCLXYesButton::VCLXYesButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_YES ),
++                  "res/commandimagelist/sc_yes.png" )
++{
++}
++
++VCLXNoButton::VCLXNoButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_NO ),
++                  "res/commandimagelist/sc_no.png" )
++{
++}
++
++VCLXRetryButton::VCLXRetryButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_RETRY ),
++                  "res/commandimagelist/sc_retry.png" )
++{
++}
++
++VCLXIgnoreButton::VCLXIgnoreButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_IGNORE ),
++                  "res/commandimagelist/sc_ignore.png" )
++{
++}
++
++VCLXResetButton::VCLXResetButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, rtl::OUString::createFromAscii( "~Reset " ),
++                  "res/commandimagelist/sc_reset.png" )
++{
++}
++
++VCLXApplyButton::VCLXApplyButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, rtl::OUString::createFromAscii( "Apply" ),
++                  "res/commandimagelist/sc_apply.png" )
++{
++}
++
++VCLXHelpButton::VCLXHelpButton( css::uno::Reference< css::uno::XInterface > xButton )
++    : IconButton( xButton, Button::GetStandardText( BUTTON_HELP ),
++                  "res/commandimagelist/sc_help.png" )
++{
++}
++
++namespace layoutimpl
++{
++css::uno::Reference< css::awt::XLayoutConstrains >
++createInternalWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++                      css::uno::Reference< css::uno::XInterface > xParent,
++                      const rtl::OUString &rName, long nProps )
++{
++    css::uno::Reference< css::awt::XLayoutConstrains > xRef, xWrapped;
++    bool bOK = false;
++    bool bCancel = false;
++    bool bYes = false;
++    bool bNo = false;
++    bool bRetry = false;
++    bool bIgnore = false;
++    bool bReset = false;
++    bool bApply = false;
++    bool bHelp = false;
++    if ( ( bOK = rName.equalsAscii( "okbutton" ) )
++         || ( bCancel = rName.equalsAscii( "cancelbutton" ) )
++         || ( bYes = rName.equalsAscii( "yesbutton" ) )
++         || ( bNo = rName.equalsAscii( "nobutton" ) )
++         || ( bRetry = rName.equalsAscii( "retrybutton" ) )
++         || ( bIgnore = rName.equalsAscii( "ignorebutton" ) )
++         || ( bReset = rName.equalsAscii( "resetbutton" ) )
++         || ( bApply = rName.equalsAscii( "applybutton" ) )
++         || ( bHelp = rName.equalsAscii( "helpbutton" ) ) )
++    {
++        xWrapped = createWidget( xToolkit, xParent,
++                                 rtl::OUString::createFromAscii( "pushbutton" ),
++                                 nProps );
++        if ( bOK )
++            xRef = new VCLXOKButton( xWrapped );
++        if ( bCancel )
++            xRef = new VCLXCancelButton( xWrapped );
++        if ( bYes )
++            xRef = new VCLXYesButton( xWrapped );
++        if ( bNo )
++            xRef = new VCLXNoButton( xWrapped );
++        if ( bRetry )
++            xRef = new VCLXRetryButton( xWrapped );
++        if ( bIgnore )
++            xRef = new VCLXIgnoreButton( xWrapped );
++        if ( bReset )
++            xRef = new VCLXResetButton( xWrapped );
++        if ( bApply )
++            xRef = new VCLXApplyButton( xWrapped );
++        if ( bHelp )
++            xRef = new VCLXHelpButton( xWrapped );
++    }
++    return xRef;
++}
++};
+Index: toolkit/source/awt/vclxbutton.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxbutton.hxx
+diff -N toolkit/source/awt/vclxbutton.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxbutton.hxx	18 Feb 2008 15:24:45 -0000	1.1.2.2
+@@ -0,0 +1,69 @@
++#ifndef LAYOUT_AWT_VCLXBUTTON_HXX
++#define LAYOUT_AWT_VCLXBUTTON_HXX
++
++#include "vclxproxy.hxx"
++
++/* Replacements for broken toolkit/ impls. of ok, cancel, help button, etc. */
++
++class IconButton : public VCLXProxy
++{
++protected:
++    IconButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton,
++                rtl::OUString aDefaultLabel, const char *pGraphName );
++};
++
++class VCLXOKButton : public IconButton
++{
++public:
++    VCLXOKButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXCancelButton : public IconButton
++{
++public:
++    VCLXCancelButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXYesButton : public IconButton
++{
++public:
++    VCLXYesButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXNoButton : public IconButton
++{
++public:
++    VCLXNoButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXRetryButton : public IconButton
++{
++public:
++    VCLXRetryButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXIgnoreButton : public IconButton
++{
++public:
++    VCLXIgnoreButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXResetButton : public IconButton
++{
++public:
++    VCLXResetButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXApplyButton : public IconButton
++{
++public:
++    VCLXApplyButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++class VCLXHelpButton : public IconButton
++{
++public:
++    VCLXHelpButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
++};
++
++#endif // LAYOUT_AWT_VCLXBUTTON_HXX
+Index: toolkit/source/awt/vclxdialog.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxdialog.cxx
+diff -N toolkit/source/awt/vclxdialog.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxdialog.cxx	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,355 @@
++#include "vclxdialog.hxx"
++
++#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
++#include "toolkit/helper/property.hxx"
++#endif
++#ifndef _COM_SUN_STAR_AWT_SCROLLBARORIENTATION_HPP_
++#include <com/sun/star/awt/ScrollBarOrientation.hpp>
++#endif
++
++
++#ifndef _TOOLS_DEBUG_HXX
++#include <tools/debug.hxx>
++#endif
++
++#include <vcl/msgbox.hxx>
++#include <vcl/wrkwin.hxx>
++#include <vcl/syswin.hxx>
++#include <vcl/menu.hxx>
++#include <vcl/dialog.hxx>
++
++#include <vcl/svapp.hxx>
++#include <vcl/syschild.hxx>
++#include <vcl/sysdata.hxx>
++#include <cppuhelper/typeprovider.hxx>
++
++#include <toolkit/awt/vclxmenu.hxx>
++#include <toolkit/helper/macros.hxx>
++
++#include <com/sun/star/lang/SystemDependent.hpp>
++#include <com/sun/star/awt/SystemDependentXWindow.hpp>
++
++#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
++#include <toolkit/helper/vclunohelper.hxx>
++#endif
++
++#include <com/sun/star/awt/PosSize.hpp>
++
++#include "../layout/timer.hxx"
++
++using namespace toolkit;
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::awt;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star;
++
++//====================================================================
++//= VCLXDialog
++//====================================================================
++DBG_NAME( VCLXDialog )
++//--------------------------------------------------------------------
++VCLXDialog::VCLXDialog()
++: VCLXWindow()
++    , VCLXDialog_Base()
++    , Bin()
++    , bRealized( false ), bResizeSafeguard( false )
++{
++    DBG_CTOR( VCLXDialog, NULL );
++
++/*        mxLayoutUnit = uno::Reference< awt::XLayoutUnit >( new LayoutUnit() );
++          assert(mxLayoutUnit.is());*/
++}
++
++//--------------------------------------------------------------------
++VCLXDialog::~VCLXDialog()
++{
++    DBG_DTOR( VCLXDialog, NULL );
++}
++
++//--------------------------------------------------------------------
++IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXDialog, VCLXWindow, Bin, VCLXDialog_Base )
++
++//--------------------------------------------------------------------
++IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXDialog, VCLXWindow, VCLXDialog_Base )
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXDialog::dispose( ) throw(RuntimeException)
++{
++    {
++        ::vos::OGuard aGuard( GetMutex() );
++
++        EventObject aDisposeEvent;
++        aDisposeEvent.Source = *this;
++//            maTabListeners.disposeAndClear( aDisposeEvent );
++    }
++
++    VCLXWindow::dispose();
++}
++
++void VCLXDialog::resizedCb()
++{
++    queueResize();
++}
++
++void SAL_CALL VCLXDialog::allocateArea( const css::awt::Rectangle &rArea )
++    throw (css::uno::RuntimeException)
++{
++    awt::Size reqSize = Bin::getMinimumSize();
++    reqSize.Height = getHeightForWidth( rArea.Width );
++
++    if ( !bRealized )
++    {
++        setPosSize( 0, 0, reqSize.Width, reqSize.Height, PosSize::SIZE );
++        bRealized = true;
++        setVisible( true );
++    }
++    else
++    {
++        awt::Size curSize = getSize();
++        if ( reqSize.Width > curSize.Width )
++            setPosSize( 0, 0, reqSize.Width, 0, PosSize::WIDTH );
++        if ( reqSize.Height > curSize.Height )
++            setPosSize( 0, 0, 0, reqSize.Height, PosSize::HEIGHT );
++    }
++
++    awt::Size size = getSize();
++    maAllocation.Width = size.Width;
++    maAllocation.Height = size.Height;
++
++    Bin::allocateArea( maAllocation );
++}
++
++//--------------------------------------------------------------------
++void VCLXDialog::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
++{
++    ::vos::OClearableGuard aGuard( GetMutex() );
++
++    switch ( _rVclWindowEvent.GetId() )
++    {
++        case VCLEVENT_WINDOW_RESIZE:
++            resizedCb();
++        default:
++            aGuard.clear();
++            VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++            break;
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXDialog::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                VCLXWindow::setProperty( PropertyName, Value );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++Any SAL_CALL VCLXDialog::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Any aReturn;
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                aReturn = VCLXWindow::getProperty( PropertyName );
++        }
++    }
++    return aReturn;
++}
++
++//---------------------------------------------------------------------
++
++::com::sun::star::uno::Any VCLXDialog::getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*ProcessId*/, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    ::com::sun::star::uno::Any aRet;
++    Window* pWindow = VCLXWindow::GetWindow();
++    if ( pWindow )
++    {
++        const SystemEnvData* pSysData = ((SystemWindow *)pWindow)->GetSystemData();
++        if ( pSysData )
++        {
++#if (defined WNT)
++            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_WIN32 )
++            {
++                aRet <<= (sal_Int32)pSysData->hWnd;
++            }
++#elif (defined OS2)
++            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_OS2 )
++            {
++                aRet <<= (sal_Int32)pSysData->hWnd;
++            }
++#elif (defined QUARTZ)
++            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_MAC )
++            {
++                aRet <<= (sal_IntPtr)pSysData->rWindow;
++            }
++#elif (defined UNX)
++            if ( SystemType == ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW )
++            {
++                ::com::sun::star::awt::SystemDependentXWindow aSD;
++                aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay));
++                aSD.WindowHandle = pSysData->aWindow;
++                aRet <<= aSD;
++            }
++#endif
++        }
++    }
++    return aRet;
++}
++
++
++void VCLXDialog::addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
++{
++#if 1
++    ::vos::OGuard aGuard( GetMutex() );
++
++    GetTopWindowListeners().addInterface( rxListener );
++#else
++#endif
++}
++
++void VCLXDialog::removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException)
++{
++#if 1
++    ::vos::OGuard aGuard( GetMutex() );
++
++    GetTopWindowListeners().removeInterface( rxListener );
++#endif
++}
++
++void VCLXDialog::toFront(  ) throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Window* pWindow = GetWindow();
++    if ( pWindow )
++        ((WorkWindow*)pWindow)->ToTop( TOTOP_RESTOREWHENMIN );
++}
++
++void VCLXDialog::toBack(  ) throw(::com::sun::star::uno::RuntimeException)
++{
++/* Not possible in VCL...
++
++   ::vos::OGuard aGuard( GetMutex() );
++
++   Window* pWindow = GetWindow();
++   if ( pWindow )
++   {
++   ((WorkWindow*)pWindow)->ToBack();
++   }
++*/
++}
++
++void VCLXDialog::setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& /*rxMenu*/ ) throw(::com::sun::star::uno::RuntimeException)
++{
++#if 0
++    ::vos::OGuard aGuard( GetMutex() );
++
++    SystemWindow* pWindow = (SystemWindow*) GetWindow();
++    if ( pWindow )
++    {
++        pWindow->SetMenuBar( NULL );
++        if ( rxMenu.is() )
++        {
++            VCLXMenu* pMenu = VCLXMenu::GetImplementation( rxMenu );
++            if ( pMenu && !pMenu->IsPopupMenu() )
++                pWindow->SetMenuBar( (MenuBar*) pMenu->GetMenu() );
++        }
++    }
++    mxMenuBar = rxMenu;
++#endif
++}
++
++void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Window* pWindow = GetWindow();
++    if ( pWindow )
++        pWindow->SetText( Title );
++}
++
++::rtl::OUString VCLXDialog::getTitle() throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    ::rtl::OUString aTitle;
++    Window* pWindow = GetWindow();
++    if ( pWindow )
++        aTitle = pWindow->GetText();
++    return aTitle;
++}
++
++sal_Int16 VCLXDialog::execute() throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    sal_Int16 nRet = 0;
++    if ( GetWindow() )
++    {
++        Dialog* pDlg = (Dialog*) GetWindow();
++        Window* pParent = pDlg->GetWindow( WINDOW_PARENTOVERLAP );
++        Window* pOldParent = NULL;
++        if ( pParent && !pParent->IsReallyVisible() )
++        {
++            pOldParent = pDlg->GetParent();
++            Window* pFrame = pDlg->GetWindow( WINDOW_FRAME );
++            if ( pFrame != pDlg )
++                pDlg->SetParent( pFrame );
++        }
++        nRet = pDlg->Execute();
++        if ( pOldParent )
++            pDlg->SetParent( pOldParent );
++    }
++    return nRet;
++}
++
++void VCLXDialog::endDialog( sal_Int32 nResult ) throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    if ( nResult == BUTTONID_HELP )
++    {
++        // UGH: c&p button.cxx
++        ::Window* pFocusWin = Application::GetFocusWindow();
++        if ( !pFocusWin )
++            pFocusWin = GetWindow();
++
++        HelpEvent aEvt( pFocusWin->GetPointerPosPixel(), HELPMODE_CONTEXT );
++        pFocusWin->RequestHelp( aEvt );
++        return;
++    }
++
++    Dialog* pDlg = (Dialog*) GetWindow();
++    if ( pDlg )
++        pDlg->EndDialog( nResult );
++}
++
++void VCLXDialog::endExecute() throw(::com::sun::star::uno::RuntimeException)
++{
++    endDialog( 0 );
++}
++
++//........................................................................
++} // namespace toolkit
++//........................................................................
+Index: toolkit/source/awt/vclxdialog.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxdialog.hxx
+diff -N toolkit/source/awt/vclxdialog.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxdialog.hxx	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,114 @@
++#ifndef LAYOUT_AWT_VCLXDIALOG_HXX
++#define LAYOUT_AWT_VCLXDIALOG_HXX
++
++#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
++#include <toolkit/awt/vclxwindow.hxx>
++#endif
++#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
++#include <toolkit/helper/listenermultiplexer.hxx>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE3_HXX_
++#include <cppuhelper/implbase3.hxx>
++#endif
++#ifndef _COMPHELPER_UNO3_HXX_
++#include <comphelper/uno3.hxx>
++#endif
++
++#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
++#include <com/sun/star/awt/XTopWindow.hpp>
++#include <com/sun/star/awt/XMenuBar.hpp>
++#include <com/sun/star/awt/XDialog2.hpp>
++
++#include <com/sun/star/awt/XSimpleTabController.hpp>
++#include "../layout/bin.hxx"
++
++#include <com/sun/star/awt/MaxChildrenException.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include "forward.hxx"
++
++using namespace toolkit;
++
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++//====================================================================
++//= VCLXDialog
++//====================================================================
++
++typedef ::cppu::ImplHelper3 < ::com::sun::star::awt::XTopWindow,
++                              ::com::sun::star::awt::XSystemDependentWindowPeer,
++                              ::com::sun::star::awt::XDialog2
++                              >   VCLXDialog_Base;
++
++class VCLXDialog :public VCLXWindow
++                 ,public VCLXDialog_Base
++                 ,public Bin
++{
++public:
++    VCLXDialog();
++
++    // ::com::sun::star::awt::XDialog2
++    void SAL_CALL endDialog( sal_Int32 nResult ) throw(::com::sun::star::uno::RuntimeException);
++
++protected:
++    ~VCLXDialog( );
++
++    // XInterface
++    DECLARE_XINTERFACE()
++
++    // XTypeProvider
++    DECLARE_XTYPEPROVIDER()
++
++    // XComponent
++    void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
++
++    // VclWindowPeer
++    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    // VCLXWindow
++    void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
++
++    // ::com::sun::star::awt::XSystemDependendtWindowPeer
++    ::com::sun::star::uno::Any SAL_CALL getWindowHandle( const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XTopWindow
++    void SAL_CALL addTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL removeTopWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindowListener >& rxListener ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL toFront(  ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL toBack(  ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL setMenuBar( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >& xMenu ) throw(::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XDialog
++    void SAL_CALL setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star::uno::RuntimeException);
++    ::rtl::OUString SAL_CALL getTitle(  ) throw(::com::sun::star::uno::RuntimeException);
++    sal_Int16 SAL_CALL execute(  ) throw(::com::sun::star::uno::RuntimeException);
++    void SAL_CALL endExecute() throw(::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XLayoutContainer
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++
++    void resizedCb();
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &/*aIds*/ )
++    {
++    }
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
++
++private:
++    VCLXDialog( const VCLXDialog& );            // never implemented
++    VCLXDialog& operator=( const VCLXDialog& ); // never implemented
++    bool bRealized, bResizeSafeguard;
++
++    css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
++};
++
++//........................................................................
++} // namespace layoutimpl
++//........................................................................
++
++#endif /*LAYOUT_AWT_VCLXDIALOG_HXX*/
+Index: toolkit/source/awt/vclxfixedline.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxfixedline.cxx
+diff -N toolkit/source/awt/vclxfixedline.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxfixedline.cxx	19 Feb 2008 13:36:27 -0000	1.1.2.2
+@@ -0,0 +1,122 @@
++#include "vclxfixedline.hxx"
++#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
++#include "toolkit/helper/property.hxx"
++#endif
++
++#ifndef _TOOLS_DEBUG_HXX
++#include <tools/debug.hxx>
++#endif
++#include <vcl/fixed.hxx>
++
++#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
++#include <toolkit/helper/vclunohelper.hxx>
++#endif
++
++#include <com/sun/star/awt/PosSize.hpp>
++
++using namespace toolkit;
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::awt;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star;
++
++//====================================================================
++//= VCLXFixedLine
++//====================================================================
++DBG_NAME( VCLXFixedLine )
++//--------------------------------------------------------------------
++VCLXFixedLine::VCLXFixedLine()
++: VCLXWindow()
++{
++    DBG_CTOR( VCLXFixedLine, NULL );
++}
++
++//--------------------------------------------------------------------
++VCLXFixedLine::~VCLXFixedLine()
++{
++    DBG_DTOR( VCLXFixedLine, NULL );
++}
++
++//--------------------------------------------------------------------
++//    IMPLEMENT_FORWARD_XINTERFACE1( VCLXFixedLine, VCLXWindow )
++
++//--------------------------------------------------------------------
++IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXFixedLine, VCLXWindow )
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXFixedLine::dispose( ) throw(RuntimeException)
++{
++    {
++        ::vos::OGuard aGuard( GetMutex() );
++
++        EventObject aDisposeEvent;
++        aDisposeEvent.Source = *this;
++    }
++
++    VCLXWindow::dispose();
++}
++
++//--------------------------------------------------------------------
++::com::sun::star::awt::Size SAL_CALL VCLXFixedLine::getMinimumSize()
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    return awt::Size( 8, 8 );
++}
++
++//--------------------------------------------------------------------
++void VCLXFixedLine::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
++{
++    ::vos::OClearableGuard aGuard( GetMutex() );
++
++    switch ( _rVclWindowEvent.GetId() )
++    {
++        default:
++            aGuard.clear();
++            VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++            break;
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXFixedLine::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                VCLXWindow::setProperty( PropertyName, Value );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++Any SAL_CALL VCLXFixedLine::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Any aReturn;
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                aReturn = VCLXWindow::getProperty( PropertyName );
++        }
++    }
++    return aReturn;
++}
++
++//........................................................................
++} // namespace toolkit
++//........................................................................
+Index: toolkit/source/awt/vclxfixedline.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxfixedline.hxx
+diff -N toolkit/source/awt/vclxfixedline.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxfixedline.hxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,71 @@
++#ifndef LAYOUT_AWT_VCLXFIXEDLINE_HXX
++#define LAYOUT_AWT_VCLXFIXEDLINE_HXX
++
++#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
++#include <toolkit/awt/vclxwindow.hxx>
++#endif
++#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
++#include <toolkit/helper/listenermultiplexer.hxx>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE1_HXX_
++#include <cppuhelper/implbase1.hxx>
++#endif
++#ifndef _COMPHELPER_UNO3_HXX_
++#include <comphelper/uno3.hxx>
++#endif
++
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include "forward.hxx"
++
++/* We just provide our own FixedLine, because default has no width... */
++
++class FixedLine;
++using namespace toolkit;
++
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++//====================================================================
++//= VCLXFixedLine
++//====================================================================
++
++class VCLXFixedLine :public VCLXWindow
++{
++public:
++    VCLXFixedLine();
++
++protected:
++    ~VCLXFixedLine( );
++
++    // XInterface
++//        DECLARE_XINTERFACE()
++
++    // XTypeProvider
++    DECLARE_XTYPEPROVIDER()
++
++    // XComponent
++    void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
++        throw(::com::sun::star::uno::RuntimeException);
++
++    // VclWindowPeer
++    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    // VCLXWindow
++    void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
++
++private:
++    VCLXFixedLine( const VCLXFixedLine& );            // never implemented
++    VCLXFixedLine& operator=( const VCLXFixedLine& ); // never implemented
++};
++
++//........................................................................
++} // namespacetoolkit
++//........................................................................
++
++#endif /*LAYOUT_AWT_VCLXFIXEDLINE_HXX*/
+Index: toolkit/source/awt/vclxproxy.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxproxy.cxx
+diff -N toolkit/source/awt/vclxproxy.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxproxy.cxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,448 @@
++#include "vclxproxy.hxx"
++
++namespace css = com::sun::star;
++
++// This is a generic proxy class - override it to wrap &
++// extend these interfaces
++// Warning: this is of course not complete ...
++
++VCLXProxy::VCLXProxy( css::uno::Reference< css::uno::XInterface > xObject )
++    : mxDevice( xObject, css::uno::UNO_QUERY )
++    , mxTypeProvider( xObject, css::uno::UNO_QUERY )
++    , mxUnoTunnel( xObject, css::uno::UNO_QUERY )
++    , mxComponent( xObject, css::uno::UNO_QUERY )
++    , mxWindow( xObject, css::uno::UNO_QUERY )
++    , mxWindow2( xObject, css::uno::UNO_QUERY )
++    , mxWindowPeer( xObject, css::uno::UNO_QUERY )
++    , mxVclWindowPeer( xObject, css::uno::UNO_QUERY )
++    , mxLayoutConstrains( xObject, css::uno::UNO_QUERY )
++    , mxView( xObject, css::uno::UNO_QUERY )
++    , mxDockableWindow( xObject, css::uno::UNO_QUERY )
++    , mxAccessible( xObject, css::uno::UNO_QUERY )
++    , mxEventListener( xObject, css::uno::UNO_QUERY )
++    , mxPropertySetInfo( xObject, css::uno::UNO_QUERY )
++    , mxItemEventBroadcaster( xObject, css::uno::UNO_QUERY )
++    , mxImageConsumer( xObject, css::uno::UNO_QUERY )
++    , mxButton( xObject, css::uno::UNO_QUERY )
++    , mxToggleButton( xObject, css::uno::UNO_QUERY )
++{
++}
++
++css::uno::Any SAL_CALL
++VCLXProxy::queryInterface( const css::uno::Type & rType ) throw (css::uno::RuntimeException)
++{
++    css::uno::Any aRet;
++
++#define QI(t,memb) \
++    if (!aRet.hasValue() && memb.is() && rType == t::static_type()) \
++        aRet = css::uno::Any( css::uno::Reference< t >( static_cast<t *>(this) ) )
++
++    // VCLXDevice
++    QI( css::awt::XDevice, mxDevice );
++    QI( css::lang::XTypeProvider, mxTypeProvider );
++    QI( css::lang::XUnoTunnel, mxUnoTunnel );
++
++    // VCLXWindow
++    if (!aRet.hasValue() && mxComponent.is() &&
++        rType == css::lang::XComponent::static_type())
++        aRet = css::uno::Any( css::uno::Reference< css::lang::XComponent >( static_cast<css::awt::XWindow *>(this) ) );
++
++    QI( css::awt::XWindow, mxWindow );
++    QI( css::awt::XWindow2, mxWindow2 );
++    QI( css::awt::XWindowPeer, mxWindowPeer );
++    QI( css::awt::XVclWindowPeer, mxVclWindowPeer );
++    QI( css::awt::XLayoutConstrains, mxLayoutConstrains );
++    QI( css::awt::XView, mxView );
++    QI( css::awt::XDockableWindow, mxDockableWindow );
++    QI( css::accessibility::XAccessible, mxAccessible );
++    QI( css::lang::XEventListener, mxEventListener );
++
++    QI( css::beans::XPropertySetInfo, mxPropertySetInfo );
++    QI( css::awt::XItemEventBroadcaster, mxItemEventBroadcaster );
++    // VCLXImageConsumer
++    QI( css::awt::XImageConsumer, mxImageConsumer );
++    // VCLXButton
++    QI( css::awt::XButton, mxButton );
++    QI( css::awt::XToggleButton, mxToggleButton );
++#undef QI
++
++    if ( !aRet.hasValue() )
++        aRet = OWeakObject::queryInterface( rType );
++    return aRet;
++}
++
++
++// Tons of boilerplate ... urgh [!]
++
++// lang::XComponent
++void VCLXProxy::dispose() throw (css::uno::RuntimeException)
++{
++    mxComponent->dispose();
++}
++void VCLXProxy::addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxComponent->addEventListener( xListener );
++}
++void VCLXProxy::removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) throw (css::uno::RuntimeException)
++{
++    mxComponent->removeEventListener( aListener );
++}
++
++// awt::XWindowPeer
++css::uno::Reference< css::awt::XToolkit > VCLXProxy::getToolkit() throw (css::uno::RuntimeException)
++{
++    return mxWindowPeer->getToolkit();
++}
++void VCLXProxy::setPointer( const css::uno::Reference< css::awt::XPointer >& Pointer ) throw (css::uno::RuntimeException)
++{
++    mxWindowPeer->setPointer( Pointer );
++}
++void VCLXProxy::setBackground( ::sal_Int32 Color ) throw (css::uno::RuntimeException)
++{
++    mxWindowPeer->setBackground( Color );
++}
++void VCLXProxy::invalidate( ::sal_Int16 Flags ) throw (css::uno::RuntimeException)
++{
++    mxWindowPeer->invalidate( Flags );
++}
++void VCLXProxy::invalidateRect( const css::awt::Rectangle& Rect, ::sal_Int16 Flags ) throw (css::uno::RuntimeException)
++{
++    mxWindowPeer->invalidateRect( Rect, Flags );
++}
++
++// awt::XDevice
++css::uno::Reference< css::awt::XGraphics > VCLXProxy::createGraphics() throw (css::uno::RuntimeException)
++{
++    return mxDevice->createGraphics();
++}
++css::uno::Reference< css::awt::XDevice > VCLXProxy::createDevice( ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (css::uno::RuntimeException)
++{
++    return mxDevice->createDevice( nWidth, nHeight );
++}
++css::awt::DeviceInfo VCLXProxy::getInfo() throw (css::uno::RuntimeException)
++{
++    return mxDevice->getInfo();
++}
++css::uno::Sequence< css::awt::FontDescriptor > VCLXProxy::getFontDescriptors() throw (css::uno::RuntimeException)
++{
++    return mxDevice->getFontDescriptors();
++}
++css::uno::Reference< css::awt::XFont > VCLXProxy::getFont( const css::awt::FontDescriptor& aDescriptor ) throw (css::uno::RuntimeException)
++{
++    return mxDevice->getFont( aDescriptor );
++}
++css::uno::Reference< css::awt::XBitmap > VCLXProxy::createBitmap( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (css::uno::RuntimeException)
++{
++    return mxDevice->createBitmap( nX, nY, nWidth, nHeight );
++}
++css::uno::Reference< css::awt::XDisplayBitmap > VCLXProxy::createDisplayBitmap( const css::uno::Reference< css::awt::XBitmap >& Bitmap ) throw (css::uno::RuntimeException)
++{
++    return mxDevice->createDisplayBitmap( Bitmap );
++}
++
++// lang::XTypeProvider
++css::uno::Sequence< css::uno::Type > VCLXProxy::getTypes() throw (css::uno::RuntimeException)
++{
++    return mxTypeProvider->getTypes();
++}
++css::uno::Sequence< ::sal_Int8 > VCLXProxy::getImplementationId() throw (css::uno::RuntimeException)
++{
++    return mxTypeProvider->getImplementationId();
++}
++
++// lang::XUnoTunnel
++::sal_Int64 VCLXProxy::getSomething( const css::uno::Sequence< ::sal_Int8 >& aIdentifier ) throw (css::uno::RuntimeException)
++{
++    return mxUnoTunnel->getSomething( aIdentifier );
++}
++
++// awt::XWindow2
++void VCLXProxy::setOutputSize( const css::awt::Size& aSize ) throw (css::uno::RuntimeException)
++{
++    mxWindow2->setOutputSize( aSize );
++}
++css::awt::Size VCLXProxy::getOutputSize() throw (css::uno::RuntimeException)
++{
++    return mxWindow2->getOutputSize();
++}
++::sal_Bool VCLXProxy::isVisible() throw (css::uno::RuntimeException)
++{
++    return mxWindow2->isVisible();
++}
++::sal_Bool VCLXProxy::isActive() throw (css::uno::RuntimeException)
++{
++    return mxWindow2->isActive();
++}
++::sal_Bool VCLXProxy::isEnabled() throw (css::uno::RuntimeException)
++{
++    return mxWindow2->isEnabled();
++}
++::sal_Bool VCLXProxy::hasFocus() throw (css::uno::RuntimeException)
++{
++    return mxWindow2->hasFocus();
++}
++
++// awt::XWindow
++void VCLXProxy::setPosSize( ::sal_Int32 X, ::sal_Int32 Y, ::sal_Int32 Width, ::sal_Int32 Height, ::sal_Int16 Flags ) throw (css::uno::RuntimeException)
++{
++    mxWindow->setPosSize( X, Y, Width, Height, Flags );
++}
++css::awt::Rectangle VCLXProxy::getPosSize() throw (css::uno::RuntimeException)
++{
++    return mxWindow->getPosSize();
++}
++void VCLXProxy::setVisible( ::sal_Bool Visible ) throw (css::uno::RuntimeException)
++{
++    mxWindow->setVisible( Visible );
++}
++void VCLXProxy::setEnable( ::sal_Bool Enable ) throw (css::uno::RuntimeException)
++{
++    mxWindow->setEnable( Enable );
++}
++void VCLXProxy::setFocus() throw (css::uno::RuntimeException)
++{
++    mxWindow->setFocus();
++}
++void VCLXProxy::addWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->addWindowListener( xListener );
++}
++void VCLXProxy::removeWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->removeWindowListener( xListener );
++}
++void VCLXProxy::addFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->addFocusListener( xListener );
++}
++void VCLXProxy::removeFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->removeFocusListener( xListener );
++}
++void VCLXProxy::addKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->addKeyListener( xListener );
++}
++void VCLXProxy::removeKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->removeKeyListener( xListener );
++}
++void VCLXProxy::addMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->addMouseListener( xListener );
++}
++void VCLXProxy::removeMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->removeMouseListener( xListener );
++}
++void VCLXProxy::addMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->addMouseMotionListener( xListener );
++}
++void VCLXProxy::removeMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->removeMouseMotionListener( xListener );
++}
++void VCLXProxy::addPaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->addPaintListener( xListener );
++}
++void VCLXProxy::removePaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxWindow->removePaintListener( xListener );
++}
++
++// awt::XVclWindowPeer
++::sal_Bool VCLXProxy::isChild( const css::uno::Reference< css::awt::XWindowPeer >& Peer ) throw (css::uno::RuntimeException)
++{
++    return mxVclWindowPeer->isChild( Peer );
++}
++void VCLXProxy::setDesignMode( ::sal_Bool bOn ) throw (css::uno::RuntimeException)
++{
++    mxVclWindowPeer->setDesignMode( bOn );
++}
++::sal_Bool VCLXProxy::isDesignMode() throw (css::uno::RuntimeException)
++{
++    return mxVclWindowPeer->isDesignMode();
++}
++void VCLXProxy::enableClipSiblings( ::sal_Bool bClip ) throw (css::uno::RuntimeException)
++{
++    mxVclWindowPeer->enableClipSiblings( bClip );
++}
++void VCLXProxy::setForeground( ::sal_Int32 Color ) throw (css::uno::RuntimeException)
++{
++    mxVclWindowPeer->setForeground( Color );
++}
++void VCLXProxy::setControlFont( const css::awt::FontDescriptor& aFont ) throw (css::uno::RuntimeException)
++{
++    mxVclWindowPeer->setControlFont( aFont );
++}
++void VCLXProxy::getStyles( ::sal_Int16 nType, css::awt::FontDescriptor& Font, ::sal_Int32& ForegroundColor, ::sal_Int32& BackgroundColor ) throw (css::uno::RuntimeException)
++{
++    mxVclWindowPeer->getStyles( nType, Font, ForegroundColor, BackgroundColor );
++}
++void VCLXProxy::setProperty( const ::rtl::OUString& PropertyName, const css::uno::Any& Value ) throw (css::uno::RuntimeException)
++{
++    mxVclWindowPeer->setProperty( PropertyName, Value );
++}
++css::uno::Any VCLXProxy::getProperty( const ::rtl::OUString& PropertyName ) throw (css::uno::RuntimeException)
++{
++    return mxVclWindowPeer->getProperty( PropertyName );
++}
++
++// awt::XLayoutConstrains
++css::awt::Size VCLXProxy::getMinimumSize() throw (css::uno::RuntimeException)
++{
++    return mxLayoutConstrains->getMinimumSize();
++}
++css::awt::Size VCLXProxy::getPreferredSize() throw (css::uno::RuntimeException)
++{
++    return mxLayoutConstrains->getPreferredSize();
++}
++css::awt::Size VCLXProxy::calcAdjustedSize( const css::awt::Size& aNewSize ) throw (css::uno::RuntimeException)
++{
++    return mxLayoutConstrains->calcAdjustedSize( aNewSize );
++}
++
++// awt::XView
++::sal_Bool VCLXProxy::setGraphics( const css::uno::Reference< css::awt::XGraphics >& aDevice ) throw (css::uno::RuntimeException)
++{
++    return mxView->setGraphics( aDevice );
++}
++css::uno::Reference< css::awt::XGraphics > VCLXProxy::getGraphics() throw (css::uno::RuntimeException)
++{
++    return mxView->getGraphics();
++}
++css::awt::Size VCLXProxy::getSize() throw (css::uno::RuntimeException)
++{
++    return mxView->getSize();
++}
++void VCLXProxy::draw( ::sal_Int32 nX, ::sal_Int32 nY ) throw (css::uno::RuntimeException)
++{
++    mxView->draw( nX, nY );
++}
++void VCLXProxy::setZoom( float fZoomX, float fZoomY ) throw (css::uno::RuntimeException)
++{
++    mxView->setZoom( fZoomX, fZoomY );
++}
++
++// awt::XDockableWindow
++void VCLXProxy::addDockableWindowListener( const css::uno::Reference< css::awt::XDockableWindowListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->addDockableWindowListener( xListener );
++}
++void VCLXProxy::removeDockableWindowListener( const css::uno::Reference< css::awt::XDockableWindowListener >& xListener ) throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->removeDockableWindowListener( xListener );
++}
++void VCLXProxy::enableDocking( ::sal_Bool bEnable ) throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->enableDocking( bEnable );
++}
++::sal_Bool VCLXProxy::isFloating() throw (css::uno::RuntimeException)
++{
++    return mxDockableWindow->isFloating();
++}
++void VCLXProxy::setFloatingMode( ::sal_Bool bFloating ) throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->setFloatingMode( bFloating );
++}
++void VCLXProxy::lock() throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->lock();
++}
++void VCLXProxy::unlock() throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->unlock();
++}
++::sal_Bool VCLXProxy::isLocked() throw (css::uno::RuntimeException)
++{
++    return mxDockableWindow->isLocked();
++}
++void VCLXProxy::startPopupMode( const css::awt::Rectangle& WindowRect ) throw (css::uno::RuntimeException)
++{
++    mxDockableWindow->startPopupMode( WindowRect );
++}
++::sal_Bool VCLXProxy::isInPopupMode() throw (css::uno::RuntimeException)
++{
++    return mxDockableWindow->isInPopupMode();
++}
++
++// accessibility::XAccessible
++css::uno::Reference< css::accessibility::XAccessibleContext > VCLXProxy::getAccessibleContext() throw (css::uno::RuntimeException)
++{
++    return mxAccessible->getAccessibleContext();
++}
++
++// lang::XEventListener
++void VCLXProxy::disposing( const css::lang::EventObject& Source ) throw (css::uno::RuntimeException)
++{
++    mxEventListener->disposing( Source );
++}
++
++// beans::XPropertySetInfo
++css::uno::Sequence< css::beans::Property > VCLXProxy::getProperties() throw (css::uno::RuntimeException)
++{
++    return mxPropertySetInfo->getProperties();
++}
++css::beans::Property VCLXProxy::getPropertyByName( const ::rtl::OUString& aName ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException)
++{
++    return mxPropertySetInfo->getPropertyByName( aName );
++}
++::sal_Bool VCLXProxy::hasPropertyByName( const ::rtl::OUString& Name ) throw (css::uno::RuntimeException)
++{
++    return mxPropertySetInfo->hasPropertyByName( Name );
++}
++
++// awt::XImageConsumer
++void VCLXProxy::init( ::sal_Int32 Width, ::sal_Int32 Height ) throw (css::uno::RuntimeException)
++{
++    mxImageConsumer->init( Width, Height );
++}
++void VCLXProxy::setColorModel( ::sal_Int16 BitCount, const css::uno::Sequence< ::sal_Int32 >& RGBAPal, ::sal_Int32 RedMask, ::sal_Int32 GreenMask, ::sal_Int32 BlueMask, ::sal_Int32 AlphaMask ) throw (css::uno::RuntimeException)
++{
++    mxImageConsumer->setColorModel( BitCount, RGBAPal, RedMask, GreenMask, BlueMask, AlphaMask );
++}
++void VCLXProxy::setPixelsByBytes( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const css::uno::Sequence< ::sal_Int8 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (css::uno::RuntimeException)
++{
++    mxImageConsumer->setPixelsByBytes( nX, nY, nWidth, nHeight, aProducerData, nOffset, nScanSize );
++}
++void VCLXProxy::setPixelsByLongs( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const css::uno::Sequence< ::sal_Int32 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (css::uno::RuntimeException)
++{
++    mxImageConsumer->setPixelsByLongs( nX, nY, nWidth, nHeight, aProducerData, nOffset, nScanSize );
++}
++void VCLXProxy::complete( ::sal_Int32 Status, const css::uno::Reference< css::awt::XImageProducer >& xProducer ) throw (css::uno::RuntimeException)
++{
++    mxImageConsumer->complete( Status, xProducer );
++}
++
++// awt::XButton
++void VCLXProxy::addActionListener( const css::uno::Reference< css::awt::XActionListener >& l ) throw (css::uno::RuntimeException)
++{
++    mxButton->addActionListener( l );
++}
++void VCLXProxy::removeActionListener( const css::uno::Reference< css::awt::XActionListener >& l ) throw (css::uno::RuntimeException)
++{
++    mxButton->removeActionListener( l );
++}
++void VCLXProxy::setLabel( const ::rtl::OUString& Label ) throw (css::uno::RuntimeException)
++{
++    if ( mxButton.is() )
++        mxButton->setLabel( Label );
++}
++void VCLXProxy::setActionCommand( const ::rtl::OUString& Command ) throw (css::uno::RuntimeException)
++{
++    mxButton->setActionCommand( Command );
++}
++
++// awt::XItemEventBroadcaster
++void VCLXProxy::addItemListener( const css::uno::Reference< css::awt::XItemListener >& l ) throw (css::uno::RuntimeException)
++{
++    if ( mxItemEventBroadcaster.is() )
++        mxItemEventBroadcaster->addItemListener( l );
++}
++void VCLXProxy::removeItemListener( const css::uno::Reference< css::awt::XItemListener >& l ) throw (css::uno::RuntimeException)
++{
++    if ( mxItemEventBroadcaster.is() )
++        mxItemEventBroadcaster->removeItemListener( l );
++}
+Index: toolkit/source/awt/vclxproxy.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxproxy.hxx
+diff -N toolkit/source/awt/vclxproxy.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxproxy.hxx	18 Feb 2008 15:24:45 -0000	1.1.2.2
+@@ -0,0 +1,204 @@
++#ifndef LAYOUT_AWT_VCLXPROXY_HXX
++#define LAYOUT_AWT_VCLXPROXY_HXX
++
++#include <com/sun/star/awt/XDevice.hpp>
++#include <com/sun/star/lang/XTypeProvider.hpp>
++#include <com/sun/star/lang/XUnoTunnel.hpp>
++
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/awt/XWindow2.hpp>
++#include <com/sun/star/awt/XVclWindowPeer.hpp>
++#include <com/sun/star/awt/XLayoutConstrains.hpp>
++#include <com/sun/star/awt/XView.hpp>
++#include <com/sun/star/awt/XPointer.hpp>
++#include <com/sun/star/awt/XGraphics.hpp>
++#include <com/sun/star/beans/XPropertyChangeListener.hpp>
++#include <com/sun/star/beans/XPropertySetInfo.hpp>
++#include <com/sun/star/accessibility/XAccessible.hpp>
++#include <com/sun/star/accessibility/XAccessibleContext.hpp>
++#include <com/sun/star/awt/XDockableWindow.hpp>
++
++#include <com/sun/star/awt/XImageConsumer.hpp>
++#include <com/sun/star/awt/XButton.hpp>
++#include <com/sun/star/awt/XToggleButton.hpp>
++
++#include <cppuhelper/weak.hxx>
++
++// This is a generic proxy class - override it to wrap &
++// extend these interfaces
++// Warning: this is of course not complete ...
++class VCLXProxy :
++    // VCLXDevice
++    public com::sun::star::awt::XDevice,
++    public com::sun::star::lang::XTypeProvider,
++    public com::sun::star::lang::XUnoTunnel,
++    // VCLXWindow
++    public com::sun::star::awt::XWindow2,
++    public com::sun::star::awt::XVclWindowPeer,
++    public com::sun::star::awt::XLayoutConstrains,
++    public com::sun::star::awt::XView,
++    public com::sun::star::awt::XDockableWindow,
++    public com::sun::star::accessibility::XAccessible,
++    public com::sun::star::lang::XEventListener,
++    public com::sun::star::beans::XPropertySetInfo,
++    // VCLXImageConsumer
++    public com::sun::star::awt::XImageConsumer,
++    // VCLXButton
++    public com::sun::star::awt::XButton,
++    public com::sun::star::awt::XToggleButton,
++    public ::cppu::OWeakObject
++{
++    // VCLXDevice
++    com::sun::star::uno::Reference< com::sun::star::awt::XDevice > mxDevice;
++    com::sun::star::uno::Reference< com::sun::star::lang::XTypeProvider > mxTypeProvider;
++    com::sun::star::uno::Reference< com::sun::star::lang::XUnoTunnel > mxUnoTunnel;
++
++    // VCLXWindow
++    com::sun::star::uno::Reference< com::sun::star::lang::XComponent > mxComponent;
++    com::sun::star::uno::Reference< com::sun::star::awt::XWindow > mxWindow;
++    com::sun::star::uno::Reference< com::sun::star::awt::XWindow2 > mxWindow2;
++    com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer > mxWindowPeer;
++    com::sun::star::uno::Reference< com::sun::star::awt::XVclWindowPeer > mxVclWindowPeer;
++    com::sun::star::uno::Reference< com::sun::star::awt::XLayoutConstrains > mxLayoutConstrains;
++    com::sun::star::uno::Reference< com::sun::star::awt::XView > mxView;
++    com::sun::star::uno::Reference< com::sun::star::awt::XDockableWindow > mxDockableWindow;
++    com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible > mxAccessible;
++    com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > mxEventListener;
++    com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > mxPropertySetInfo;
++    com::sun::star::uno::Reference< com::sun::star::awt::XItemEventBroadcaster > mxItemEventBroadcaster;
++
++    // VCLXImageConsumer
++    com::sun::star::uno::Reference< com::sun::star::awt::XImageConsumer > mxImageConsumer;
++
++    // VCLXButton
++    com::sun::star::uno::Reference< com::sun::star::awt::XButton > mxButton;
++    com::sun::star::uno::Reference< com::sun::star::awt::XToggleButton > mxToggleButton;
++
++public:
++    VCLXProxy( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xObject );
++
++    // XInterface
++    virtual void SAL_CALL acquire() throw() { ::cppu::OWeakObject::acquire(); }
++    virtual void SAL_CALL release() throw() { ::cppu::OWeakObject::release(); }
++    virtual com::sun::star::uno::Any SAL_CALL queryInterface( const com::sun::star::uno::Type & rType ) throw (com::sun::star::uno::RuntimeException);
++
++    // lang::XComponent
++    virtual void SAL_CALL dispose() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XWindowPeer
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XToolkit > SAL_CALL getToolkit() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setPointer( const com::sun::star::uno::Reference< com::sun::star::awt::XPointer >& Pointer ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setBackground( ::sal_Int32 Color ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL invalidate( ::sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL invalidateRect( const com::sun::star::awt::Rectangle& Rect, ::sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XDevice
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XGraphics > SAL_CALL createGraphics() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XDevice > SAL_CALL createDevice( ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::awt::DeviceInfo SAL_CALL getInfo() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Sequence< com::sun::star::awt::FontDescriptor > SAL_CALL getFontDescriptors() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XFont > SAL_CALL getFont( const com::sun::star::awt::FontDescriptor& aDescriptor ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XBitmap > SAL_CALL createBitmap( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XDisplayBitmap > SAL_CALL createDisplayBitmap( const com::sun::star::uno::Reference< com::sun::star::awt::XBitmap >& Bitmap ) throw (com::sun::star::uno::RuntimeException);
++
++    // lang::XTypeProvider
++    virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException);
++
++    // lang::XUnoTunnel
++    virtual ::sal_Int64 SAL_CALL getSomething( const com::sun::star::uno::Sequence< ::sal_Int8 >& aIdentifier ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XWindow2
++    virtual void SAL_CALL setOutputSize( const com::sun::star::awt::Size& aSize ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::awt::Size SAL_CALL getOutputSize() throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isVisible() throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isActive() throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isEnabled() throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL hasFocus() throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XWindow
++    virtual void SAL_CALL setPosSize( ::sal_Int32 X, ::sal_Int32 Y, ::sal_Int32 Width, ::sal_Int32 Height, ::sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::awt::Rectangle SAL_CALL getPosSize() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setVisible( ::sal_Bool Visible ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setEnable( ::sal_Bool Enable ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setFocus() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addFocusListener( const com::sun::star::uno::Reference< com::sun::star::awt::XFocusListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeFocusListener( const com::sun::star::uno::Reference< com::sun::star::awt::XFocusListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addKeyListener( const com::sun::star::uno::Reference< com::sun::star::awt::XKeyListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeKeyListener( const com::sun::star::uno::Reference< com::sun::star::awt::XKeyListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addMouseListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeMouseListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addMouseMotionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseMotionListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeMouseMotionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseMotionListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL addPaintListener( const com::sun::star::uno::Reference< com::sun::star::awt::XPaintListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removePaintListener( const com::sun::star::uno::Reference< com::sun::star::awt::XPaintListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XVclWindowPeer
++    virtual ::sal_Bool SAL_CALL isChild( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer >& Peer ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setDesignMode( ::sal_Bool bOn ) throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isDesignMode() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL enableClipSiblings( ::sal_Bool bClip ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setForeground( ::sal_Int32 Color ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setControlFont( const com::sun::star::awt::FontDescriptor& aFont ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL getStyles( ::sal_Int16 nType, com::sun::star::awt::FontDescriptor& Font, ::sal_Int32& ForegroundColor, ::sal_Int32& BackgroundColor ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const com::sun::star::uno::Any& Value ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XLayoutConstrains
++    virtual com::sun::star::awt::Size SAL_CALL getMinimumSize() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::awt::Size SAL_CALL getPreferredSize() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::awt::Size SAL_CALL calcAdjustedSize( const com::sun::star::awt::Size& aNewSize ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XView
++    virtual ::sal_Bool SAL_CALL setGraphics( const com::sun::star::uno::Reference< com::sun::star::awt::XGraphics >& aDevice ) throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::uno::Reference< com::sun::star::awt::XGraphics > SAL_CALL getGraphics() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::awt::Size SAL_CALL getSize() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL draw( ::sal_Int32 nX, ::sal_Int32 nY ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setZoom( float fZoomX, float fZoomY ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XDockableWindow
++    virtual void SAL_CALL addDockableWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XDockableWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeDockableWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XDockableWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL enableDocking( ::sal_Bool bEnable ) throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isFloating() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setFloatingMode( ::sal_Bool bFloating ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL lock() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL unlock() throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isLocked() throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL startPopupMode( const com::sun::star::awt::Rectangle& WindowRect ) throw (com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL isInPopupMode() throw (com::sun::star::uno::RuntimeException);
++
++    // accessibility::XAccessible
++    virtual com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() throw (com::sun::star::uno::RuntimeException);
++
++    // lang::XEventListener
++    virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw (com::sun::star::uno::RuntimeException);
++
++    // beans::XPropertySetInfo
++    virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property > SAL_CALL getProperties() throw (com::sun::star::uno::RuntimeException);
++    virtual com::sun::star::beans::Property SAL_CALL getPropertyByName( const ::rtl::OUString& aName ) throw (com::sun::star::beans::UnknownPropertyException, com::sun::star::uno::RuntimeException);
++    virtual ::sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& Name ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XImageConsumer
++    virtual void SAL_CALL init( ::sal_Int32 Width, ::sal_Int32 Height ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setColorModel( ::sal_Int16 BitCount, const com::sun::star::uno::Sequence< ::sal_Int32 >& RGBAPal, ::sal_Int32 RedMask, ::sal_Int32 GreenMask, ::sal_Int32 BlueMask, ::sal_Int32 AlphaMask ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setPixelsByBytes( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const com::sun::star::uno::Sequence< ::sal_Int8 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setPixelsByLongs( ::sal_Int32 nX, ::sal_Int32 nY, ::sal_Int32 nWidth, ::sal_Int32 nHeight, const com::sun::star::uno::Sequence< ::sal_Int32 >& aProducerData, ::sal_Int32 nOffset, ::sal_Int32 nScanSize ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL complete( ::sal_Int32 Status, const com::sun::star::uno::Reference< com::sun::star::awt::XImageProducer >& xProducer ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XButton
++    virtual void SAL_CALL addActionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XActionListener >& l ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeActionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XActionListener >& l ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setLabel( const ::rtl::OUString& Label ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setActionCommand( const ::rtl::OUString& Command ) throw (com::sun::star::uno::RuntimeException);
++
++    // awt::XItemEventBroadcaster
++    virtual void SAL_CALL addItemListener( const com::sun::star::uno::Reference< com::sun::star::awt::XItemListener >& l ) throw (com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeItemListener( const com::sun::star::uno::Reference< com::sun::star::awt::XItemListener >& l ) throw (com::sun::star::uno::RuntimeException);
++};
++
++#endif // LAYOUT_AWT_VCLXPROXY_HXX
+Index: toolkit/source/awt/vclxscroller.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxscroller.cxx
+diff -N toolkit/source/awt/vclxscroller.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxscroller.cxx	8 Feb 2008 18:44:42 -0000	1.1.2.1
+@@ -0,0 +1,204 @@
++#include "vclxscroller.hxx"
++#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
++#include "toolkit/helper/property.hxx"
++#endif
++#ifndef _COM_SUN_STAR_AWT_SCROLLBARORIENTATION_HPP_
++#include <com/sun/star/awt/ScrollBarOrientation.hpp>
++#endif
++
++#ifndef _TOOLS_DEBUG_HXX
++#include <tools/debug.hxx>
++#endif
++#include <vcl/scrbar.hxx>
++
++#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
++#include <toolkit/helper/vclunohelper.hxx>
++#endif
++
++#include <com/sun/star/awt/PosSize.hpp>
++
++#include <sal/macros.h>
++#include <assert.h>
++
++//#include <vcl/fixed.h>
++
++using namespace toolkit;
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::awt;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star;
++
++//====================================================================
++//= VCLXScroller
++//====================================================================
++DBG_NAME( VCLXScroller )
++//--------------------------------------------------------------------
++VCLXScroller::VCLXScroller( )
++: VCLXWindow()
++    , Bin()
++{
++    DBG_CTOR( VCLXScroller, NULL );
++    mpHorScrollBar = mpVerScrollBar = 0;
++}
++
++//--------------------------------------------------------------------
++VCLXScroller::~VCLXScroller()
++{
++    DBG_DTOR( VCLXScroller, NULL );
++}
++
++//--------------------------------------------------------------------
++IMPLEMENT_2_FORWARD_XINTERFACE1( VCLXScroller, VCLXWindow, Container )
++
++//--------------------------------------------------------------------
++IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXScroller, VCLXWindow )
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXScroller::dispose( ) throw(RuntimeException)
++{
++    {
++        ::vos::OGuard aGuard( GetMutex() );
++
++        EventObject aDisposeEvent;
++        aDisposeEvent.Source = *this;
++//            maTabListeners.disposeAndClear( aDisposeEvent );
++    }
++
++    VCLXWindow::dispose();
++}
++
++//--------------------------------------------------------------------
++void VCLXScroller::ensureScrollBars()
++{
++
++    if ( !mpVerScrollBar )
++    {
++        mpVerScrollBar = new ScrollBar( GetWindow() , WB_VERT );
++        mpVerScrollBar->SetLineSize( 4 );
++        mpVerScrollBar->SetPageSize( 15 );
++        mpVerScrollBar->Show();
++        mpVerScrollBar->SetScrollHdl( LINK( this, VCLXScroller, ScrollHdl ) );
++    }
++    if ( !mpHorScrollBar )
++    {
++        mpHorScrollBar = new ScrollBar( GetWindow() , WB_HORZ );
++        mpHorScrollBar->SetLineSize( 4 );
++        mpHorScrollBar->SetPageSize( 15 );
++        mpHorScrollBar->Show();
++        mpHorScrollBar->SetScrollHdl( LINK( this, VCLXScroller, ScrollHdl ) );
++    } //        mpContent = new FixedImage( this, ImplGetWinBits( WindowAttributes, 0 ) );
++
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXScroller::allocateArea(
++    const ::com::sun::star::awt::Rectangle &rArea )
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    ensureScrollBars();        // shouldn't be needed
++
++    maAllocation = rArea;
++    setPosSize( rArea.X, rArea.Y, rArea.Width, rArea.Height, PosSize::POSSIZE );
++
++    mpHorScrollBar->SetRangeMin( 0 );
++    mpHorScrollBar->SetRangeMax( SAL_MAX( maChildRequisition.Width - rArea.Width, 0 ) );
++    mpVerScrollBar->SetRangeMin( 0 );
++    mpVerScrollBar->SetRangeMax( SAL_MAX( maChildRequisition.Height - rArea.Height, 0 ) );
++
++    int thumbX = mpHorScrollBar->GetThumbPos();
++    int thumbY = mpVerScrollBar->GetThumbPos();
++    int thumbWidth = mpVerScrollBar->GetSizePixel().getWidth();
++    int thumbHeight = mpHorScrollBar->GetSizePixel().getHeight();
++
++    mpHorScrollBar->SetPosSizePixel( rArea.X, rArea.Y + rArea.Height - thumbHeight - 2,
++                                     rArea.Width - thumbWidth, thumbHeight );
++    mpVerScrollBar->SetPosSizePixel( rArea.X + rArea.Width - thumbWidth - 2, rArea.Y-2,
++                                     thumbWidth, rArea.Height - thumbHeight );
++
++    awt::Rectangle childRect( rArea.X - thumbX, rArea.Y - thumbY,
++                              SAL_MAX( maChildRequisition.Width, rArea.Width ) - thumbWidth - 4,
++                              SAL_MAX( maChildRequisition.Height, rArea.Height ) - thumbHeight - 4 );
++    if ( mxChild.is() )
++        allocateChildAt( mxChild, childRect );
++}
++
++//--------------------------------------------------------------------
++#define MAX_CHILD_REQ 40
++::com::sun::star::awt::Size SAL_CALL VCLXScroller::getMinimumSize()
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    ensureScrollBars();
++    assert( mpHorScrollBar && mpVerScrollBar );
++    awt::Size childSize = Bin::getMinimumSize();
++    int thumbWidth = mpVerScrollBar->GetSizePixel().getWidth();
++    int thumbHeight = mpHorScrollBar->GetSizePixel().getHeight();
++    maRequisition = awt::Size(
++        SAL_MIN( MAX_CHILD_REQ, childSize.Width ) + thumbWidth,
++        SAL_MIN( MAX_CHILD_REQ, childSize.Height ) + thumbHeight );
++    return maRequisition;
++}
++
++//--------------------------------------------------------------------
++void VCLXScroller::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
++{
++    ::vos::OClearableGuard aGuard( GetMutex() );
++
++    switch ( _rVclWindowEvent.GetId() )
++    {
++        default:
++            aGuard.clear();
++            VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++            break;
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXScroller::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                VCLXWindow::setProperty( PropertyName, Value );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++Any SAL_CALL VCLXScroller::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Any aReturn;
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                aReturn = VCLXWindow::getProperty( PropertyName );
++        }
++    }
++    return aReturn;
++}
++
++IMPL_LINK( VCLXScroller, ScrollHdl, ScrollBar *, pScrollBar )
++{
++    (void) pScrollBar;
++    forceRecalc();
++    return 0;
++}
++
++//........................................................................
++} // namespace toolkit
++//........................................................................
+Index: toolkit/source/awt/vclxscroller.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxscroller.hxx
+diff -N toolkit/source/awt/vclxscroller.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxscroller.hxx	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,84 @@
++#ifndef LAYOUT_AWT_VCLXSCROLLER_HXX
++#define LAYOUT_AWT_VCLXSCROLLER_HXX
++
++#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
++#include <toolkit/awt/vclxwindow.hxx>
++#endif
++#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
++#include <toolkit/helper/listenermultiplexer.hxx>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE1_HXX_
++#include <cppuhelper/implbase1.hxx>
++#endif
++#ifndef _COMPHELPER_UNO3_HXX_
++#include <comphelper/uno3.hxx>
++#endif
++#include "../layout/bin.hxx"
++
++#include <com/sun/star/awt/MaxChildrenException.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include "forward.hxx"
++
++class ScrollBar;
++class FixedImage;
++using namespace toolkit;
++
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++//====================================================================
++//= VCLXScroller
++//====================================================================
++
++class VCLXScroller :public VCLXWindow
++                   ,public Bin
++{
++public:
++    VCLXScroller( );
++
++protected:
++    ~VCLXScroller( );
++
++    // XInterface
++    DECLARE_XINTERFACE()
++
++    // XTypeProvider
++    DECLARE_XTYPEPROVIDER()
++
++    // XComponent
++    void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XLayoutContainer
++    virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea )
++        throw (::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
++        throw(::com::sun::star::uno::RuntimeException);
++
++    // VclWindowPeer
++    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    // VCLXWindow
++    void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
++
++private:
++    VCLXScroller( const VCLXScroller& );            // never implemented
++    VCLXScroller& operator=( const VCLXScroller& ); // never implemented
++
++    // because the underlying window is only setup-ed after construction, init
++    // scrollbars at play-time
++    void ensureScrollBars();
++
++    FixedImage *mpContent;  // dummy
++    ScrollBar *mpHorScrollBar, *mpVerScrollBar;
++    DECL_LINK( ScrollHdl, ScrollBar* );
++};
++
++//........................................................................
++} // namespacetoolkit
++//........................................................................
++
++#endif /*LAYOUT_AWT_VCLXSCROLLER_HXX*/
+Index: toolkit/source/awt/vclxsplitter.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxsplitter.cxx
+diff -N toolkit/source/awt/vclxsplitter.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxsplitter.cxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,319 @@
++#include "vclxsplitter.hxx"
++#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
++#include "toolkit/helper/property.hxx"
++#endif
++
++#ifndef _TOOLS_DEBUG_HXX
++#include <tools/debug.hxx>
++#endif
++#include <vcl/split.hxx>
++
++#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
++#include <toolkit/helper/vclunohelper.hxx>
++#endif
++
++#include <com/sun/star/awt/PosSize.hpp>
++
++#include <assert.h>
++#include <sal/macros.h>
++
++using namespace toolkit;
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::awt;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star;
++
++class SplitterChildProps : public PropHelper
++{
++public:
++    SplitterChildProps( VCLXSplitter::ChildData *pData )
++    {
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "Shrink" ),
++                 ::getCppuType( static_cast< const rtl::OUString* >( NULL ) ),
++                 &(pData->bShrink) );
++    }
++    PROPHELPER_SET_INFO
++};
++
++//====================================================================
++//= VCLXSplitter
++//====================================================================
++DBG_NAME( VCLXSplitter )
++//--------------------------------------------------------------------
++VCLXSplitter::VCLXSplitter( bool bHorizontal )
++: VCLXWindow()
++    , Container()
++{
++    DBG_CTOR( VCLXSplitter, NULL );
++    mnHandleRatio = 0.5;
++    mbHandlePressed = false;
++    mbHorizontal = bHorizontal;
++    mpSplitter = NULL;
++}
++
++//--------------------------------------------------------------------
++VCLXSplitter::~VCLXSplitter()
++{
++    DBG_DTOR( VCLXSplitter, NULL );
++}
++
++//--------------------------------------------------------------------
++IMPLEMENT_2_FORWARD_XINTERFACE1( VCLXSplitter, VCLXWindow, Container )
++
++//--------------------------------------------------------------------
++IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXSplitter, VCLXWindow )
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXSplitter::dispose( ) throw(RuntimeException)
++{
++    {
++        ::vos::OGuard aGuard( GetMutex() );
++
++        EventObject aDisposeEvent;
++        aDisposeEvent.Source = *this;
++//            maTabListeners.disposeAndClear( aDisposeEvent );
++    }
++
++    VCLXWindow::dispose();
++}
++
++//--------------------------------------------------------------------
++void VCLXSplitter::ensureSplitter()
++{
++    if ( !mpSplitter )
++    {
++        mpSplitter = new Splitter( GetWindow() , mbHorizontal ? WB_HORZ : WB_VERT );
++        mpSplitter->Show();
++        mpSplitter->SetEndSplitHdl( LINK( this, VCLXSplitter, HandleMovedHdl ) );
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXSplitter::addChild(
++    const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
++    throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException)
++{
++    ChildData *pData;
++    if ( ! maChildren[ 0 ].xChild.is() )
++        pData = &maChildren[ 0 ];
++    else if ( ! maChildren[ 1 ].xChild.is() )
++        pData = &maChildren[ 1 ];
++    else
++        throw css::awt::MaxChildrenException();
++
++    if ( xChild.is() )
++    {
++        pData->xChild = xChild;
++        setChildParent( xChild );
++        queueResize();
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXSplitter::removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    ChildData *pData = 0;
++    if ( maChildren[ 0 ].xChild == xChild )
++        pData = &maChildren[ 0 ];
++    else if ( maChildren[ 1 ].xChild == xChild )
++        pData = &maChildren[ 1 ];
++
++    if ( pData )
++    {
++        pData->xChild = uno::Reference< awt::XLayoutConstrains >();
++        unsetChildParent( xChild );
++        queueResize();
++    }
++}
++
++//--------------------------------------------------------------------
++::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
++                                 < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL VCLXSplitter::getChildren()
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    int childLen = (maChildren[ 0 ].xChild.is() ? 1: 0) +
++        (maChildren[ 1 ].xChild.is() ? 1: 0);
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > childrenSeq( childLen );
++    int i = 0;
++    if ( maChildren[ 0 ].xChild.is() )
++        childrenSeq[ i++ ] = maChildren[ 0 ].xChild;
++    if ( maChildren[ 1 ].xChild.is() )
++        childrenSeq[ i++ ] = maChildren[ 1 ].xChild;
++    return childrenSeq;
++}
++
++//--------------------------------------------------------------------
++uno::Reference< beans::XPropertySet > SAL_CALL
++VCLXSplitter::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    ChildData *pData = 0;
++    if ( maChildren[ 0 ].xChild == xChild )
++        pData = &maChildren[ 0 ];
++    else if ( maChildren[ 1 ].xChild == xChild )
++        pData = &maChildren[ 1 ];
++
++    if ( pData )
++    {
++        if ( !pData->xProps.is() )
++        {
++            PropHelper *pProps = new SplitterChildProps( pData );
++            pProps->setChangeListener( this );
++            pData->xProps = pProps;
++        }
++        return pData->xProps;
++    }
++    return uno::Reference< beans::XPropertySet >();
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXSplitter::allocateArea(
++    const ::com::sun::star::awt::Rectangle &rArea )
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    ensureSplitter();  // shouldn't be needed...
++    getMinimumSize();
++    int splitDiff;
++    if ( mbHorizontal )
++        splitDiff = rArea.Width - maAllocation.Width;
++    else
++        splitDiff = rArea.Height - maAllocation.Height;
++
++    assert(mpSplitter);
++    if ( splitDiff )
++        mpSplitter->SetSplitPosPixel( mpSplitter->GetSplitPosPixel() + splitDiff/2 );
++
++    maAllocation = rArea;
++    int width = mbHorizontal ? rArea.Width : rArea.Height;
++    int splitLen = 2;
++    int splitPos = mpSplitter->GetSplitPosPixel();
++    setPosSize( rArea.X, rArea.Y, rArea.Width, rArea.Height, PosSize::POSSIZE );
++    if ( mbHorizontal )
++        mpSplitter->SetPosSizePixel( splitPos, 0, splitLen, rArea.Height, PosSize::POSSIZE );
++    else
++        mpSplitter->SetPosSizePixel( 0, splitPos, rArea.Width, splitLen, PosSize::POSSIZE );
++    mpSplitter->SetDragRectPixel( ::Rectangle( 0, 0, rArea.Width, rArea.Height ) );
++    int leftWidth = splitPos;
++    int rightWidth = width - splitPos;
++
++    if ( maChildren[ 0 ].xChild.is() )
++    {
++        awt::Rectangle childRect( 0, 0, rArea.Width, rArea.Height );
++
++        if ( mbHorizontal )
++            childRect.Width = leftWidth - 2;
++        else
++            childRect.Height = leftWidth - 2;
++        allocateChildAt( maChildren[ 0 ].xChild, childRect );
++    }
++    if ( maChildren[ 1 ].xChild.is() )
++    {
++        awt::Rectangle childRect( 0, 0, rArea.Width, rArea.Height );
++
++        if ( mbHorizontal )
++        {
++            childRect.X += leftWidth + splitLen + 2;
++            childRect.Width = rightWidth;
++        }
++        else
++        {
++            childRect.Y += leftWidth + splitLen + 2;
++            childRect.Height = rightWidth;
++        }
++        allocateChildAt( maChildren[ 1 ].xChild, childRect );
++    }
++}
++
++//--------------------------------------------------------------------
++::com::sun::star::awt::Size SAL_CALL VCLXSplitter::getMinimumSize()
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    ensureSplitter();
++
++    awt::Size size( mbHorizontal ? 2 : 0, mbHorizontal ? 0 : 2 );
++    for( unsigned int i = 0; i < 2; i++ )
++    {
++        if ( maChildren[ i ].xChild.is() )
++        {
++            awt::Size childSize = maChildren[ i ].xChild->getMinimumSize();
++            if ( mbHorizontal )
++            {
++                size.Width += childSize.Width;
++                size.Height = SAL_MAX( size.Height, childSize.Height );
++            }
++            else
++            {
++                size.Width = SAL_MAX( size.Width, childSize.Width );
++                size.Height += childSize.Height;
++            }
++        }
++    }
++
++    maRequisition = size;
++    return size;
++}
++
++//--------------------------------------------------------------------
++void VCLXSplitter::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
++{
++    ::vos::OClearableGuard aGuard( GetMutex() );
++    switch ( _rVclWindowEvent.GetId() )
++    {
++        default:
++            aGuard.clear();
++            VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++            break;
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXSplitter::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                VCLXWindow::setProperty( PropertyName, Value );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++Any SAL_CALL VCLXSplitter::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Any aReturn;
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                aReturn = VCLXWindow::getProperty( PropertyName );
++        }
++    }
++    return aReturn;
++}
++
++IMPL_LINK( VCLXSplitter, HandleMovedHdl, Splitter *, pSplitter )
++{
++    (void) pSplitter;
++    forceRecalc();
++    return 0;
++}
++
++//........................................................................
++} // namespace toolkit
++//........................................................................
+Index: toolkit/source/awt/vclxsplitter.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxsplitter.hxx
+diff -N toolkit/source/awt/vclxsplitter.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxsplitter.hxx	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,118 @@
++#ifndef LAYOUT_AWT_VCLXSPLITTER_HXX
++#define LAYOUT_AWT_VCLXSPLITTER_HXX
++
++#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
++#include <toolkit/awt/vclxwindow.hxx>
++#endif
++#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
++#include <toolkit/helper/listenermultiplexer.hxx>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE1_HXX_
++#include <cppuhelper/implbase1.hxx>
++#endif
++#ifndef _COMPHELPER_UNO3_HXX_
++#include <comphelper/uno3.hxx>
++#endif
++#include "../layout/container.hxx"
++
++#include <com/sun/star/awt/MaxChildrenException.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include "forward.hxx"
++
++class Splitter;
++using namespace toolkit;
++
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++//====================================================================
++//= VCLXSplitter
++//====================================================================
++
++class VCLXSplitter :public VCLXWindow
++                   ,public Container
++{
++public:
++    VCLXSplitter( bool bHorizontal );
++
++protected:
++    ~VCLXSplitter( );
++
++    // XInterface
++    DECLARE_XINTERFACE()
++
++    // XTypeProvider
++    DECLARE_XTYPEPROVIDER()
++
++    // XComponent
++    void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XLayoutContainer
++    virtual void SAL_CALL addChild(
++        const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
++        throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
++        throw (::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
++                                             < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea )
++        throw (::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
++        throw(::com::sun::star::uno::RuntimeException);
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    // unimplemented:
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException)
++    { return false; }
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ )
++    throw(css::uno::RuntimeException)
++    { return maRequisition.Height; }
++
++    // VclWindowPeer
++    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    // VCLXWindow
++    void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
++
++private:
++    VCLXSplitter( const VCLXSplitter& );            // never implemented
++    VCLXSplitter& operator=( const VCLXSplitter& ); // never implemented
++
++    // Maps page ids to child references
++    friend class SplitterChildProps;
++    struct ChildData
++    {
++        sal_Bool bShrink;
++
++        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
++        css::uno::Reference< css::beans::XPropertySet >    xProps;
++        bool isVisible();
++    };
++    ChildData maChildren[ 2 ];  // some may be null
++
++    float mnHandleRatio;
++    bool mbHandlePressed;
++
++    DECL_LINK( HandleMovedHdl, Splitter* );
++    bool mbHorizontal;
++    Splitter *mpSplitter;
++    void ensureSplitter();
++};
++
++//........................................................................
++} // namespacetoolkit
++//........................................................................
++
++#endif /*LAYOUT_AWT_VCLXSPLITTER_HXX*/
+Index: toolkit/source/awt/vclxtabcontrol.cxx
+===================================================================
+RCS file: toolkit/source/awt/vclxtabcontrol.cxx
+diff -N toolkit/source/awt/vclxtabcontrol.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxtabcontrol.cxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,532 @@
++#include "vclxtabcontrol.hxx"
++
++#ifndef _TOOLKIT_HELPER_PROPERTY_HXX_
++#include "toolkit/helper/property.hxx"
++#endif
++#ifndef _COM_SUN_STAR_AWT_SCROLLBARORIENTATION_HPP_
++#include <com/sun/star/awt/ScrollBarOrientation.hpp>
++#endif
++
++
++#ifndef _TOOLS_DEBUG_HXX
++#include <tools/debug.hxx>
++#endif
++#ifndef _SV_TABCTRL_HXX
++#include <vcl/tabctrl.hxx>
++#endif
++
++#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
++#include <toolkit/helper/vclunohelper.hxx>
++#endif
++
++#include <vcl/tabpage.hxx>
++#include <com/sun/star/awt/PosSize.hpp>
++#include <sal/macros.h>
++
++using namespace toolkit;
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::awt;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star;
++
++class TabChildProps : public PropHelper
++{
++public:
++    TabChildProps( VCLXTabControl::ChildData *pData )
++    {
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "Title" ),
++                 ::getCppuType( static_cast< const rtl::OUString* >( NULL ) ),
++                 &(pData->aTitle) );
++    }
++    PROPHELPER_SET_INFO
++};
++
++//====================================================================
++//= VCLXTabControl
++//====================================================================
++DBG_NAME( VCLXTabControl )
++//--------------------------------------------------------------------
++VCLXTabControl::VCLXTabControl()
++: VCLXWindow()
++    , VCLXTabControl_Base()
++    , Container()
++{
++    DBG_CTOR( VCLXTabControl, NULL );
++    mnNextTabId = 1;
++    mnChildrenNb = 0;
++}
++
++//--------------------------------------------------------------------
++VCLXTabControl::~VCLXTabControl()
++{
++    DBG_DTOR( VCLXTabControl, NULL );
++}
++
++//--------------------------------------------------------------------
++IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXTabControl, VCLXWindow, Container, VCLXTabControl_Base )
++
++//--------------------------------------------------------------------
++IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Base )
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::dispose( ) throw(RuntimeException)
++{
++    {
++        ::vos::OGuard aGuard( GetMutex() );
++
++        EventObject aDisposeEvent;
++        aDisposeEvent.Source = *this;
++//            maTabListeners.disposeAndClear( aDisposeEvent );
++    }
++
++    VCLXWindow::dispose();
++}
++/*
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::addTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException)
++{
++if ( listener.is() )
++maTabListeners.addInterface( listener );
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::removeTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException)
++{
++if ( listener.is() )
++maTabListeners.removeInterface( listener );
++}
++*/
++
++//--------------------------------------------------------------------
++TabControl *VCLXTabControl::getTabControl() const throw (RuntimeException)
++{
++    TabControl *pTabControl = static_cast< TabControl* >( GetWindow() );
++    if ( pTabControl )
++        return pTabControl;
++    throw RuntimeException();
++}
++
++//--------------------------------------------------------------------
++sal_Int32 SAL_CALL VCLXTabControl::insertTab() throw (RuntimeException)
++{
++    TabControl *pTabControl = getTabControl();
++    int id = mnNextTabId++;
++    rtl::OUString title (RTL_CONSTASCII_USTRINGPARAM( "" ) );
++    pTabControl->InsertPage( id, title.getStr(), TAB_APPEND );
++    pTabControl->SetTabPage( id, new TabPage( pTabControl ) );
++    return id;
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::removeTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException)
++{
++    TabControl *pTabControl = getTabControl();
++    if ( pTabControl->GetTabPage( ID ) == NULL )
++        throw IndexOutOfBoundsException();
++    pTabControl->RemovePage( ID );
++}
++
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::activateTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException)
++{
++    TabControl *pTabControl = getTabControl();
++    if ( pTabControl->GetTabPage( ID ) == NULL )
++        throw IndexOutOfBoundsException();
++    pTabControl->SelectTabPage( ID );
++}
++
++//--------------------------------------------------------------------
++sal_Int32 SAL_CALL VCLXTabControl::getActiveTabID() throw (RuntimeException)
++{
++    return getTabControl()->GetCurPageId( );
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::addTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
++{
++    std::list< ::com::sun::star::uno::Reference
++        < ::com::sun::star::awt::XTabListener > >::const_iterator it;
++    for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
++    {
++        if ( *it == xListener )
++            // already added
++            return;
++    }
++    mxTabListeners.push_back( xListener );
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::removeTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
++{
++    std::list< ::com::sun::star::uno::Reference
++        < ::com::sun::star::awt::XTabListener > >::iterator it;
++    for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
++    {
++        if ( *it == xListener )
++        {
++            mxTabListeners.erase( it );
++            break;
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedValue >& Properties ) throw (RuntimeException, IndexOutOfBoundsException)
++{
++    TabControl *pTabControl = getTabControl();
++    if ( pTabControl->GetTabPage( ID ) == NULL )
++        throw IndexOutOfBoundsException();
++
++    for( int i = 0; i < Properties.getLength(); i++ )
++    {
++        const rtl::OUString &name = Properties[i].Name;
++        const Any &value = Properties[i].Value;
++
++        if ( name  == rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ) )
++        {
++            rtl::OUString title = value.get<rtl::OUString>();
++            pTabControl->SetPageText( ID, title.getStr() );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
++    throw (IndexOutOfBoundsException, RuntimeException)
++{
++    TabControl *pTabControl = getTabControl();
++    if ( pTabControl->GetTabPage( ID ) == NULL )
++        throw IndexOutOfBoundsException();
++
++#define ADD_PROP( seq, i, name, val ) {                                \
++        NamedValue value;                                                  \
++        value.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( name ) ); \
++        value.Value = makeAny( val );                                      \
++        seq[i] = value;                                                    \
++    }
++
++    Sequence< NamedValue > props( 2 );
++    ADD_PROP( props, 0, "Title", rtl::OUString( pTabControl->GetPageText( ID ) ) );
++    ADD_PROP( props, 1, "Position", pTabControl->GetPagePos( ID ) );
++#undef ADD_PROP
++    return props;
++}
++
++//--------------------------------------------------------------------
++
++// TODO: draw tab border here
++void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    TabControl *pTabControl = getTabControl();
++    TabPage *pTabPage = pTabControl->GetTabPage( getActiveTabID() );
++    if ( pTabPage )
++    {
++        ::Point aPos( nX, nY );
++        ::Size  aSize = pTabPage->GetSizePixel();
++
++        OutputDevice* pDev = VCLUnoHelper::GetOutputDevice( GetViewGraphics() );
++        aPos  = pDev->PixelToLogic( aPos );
++        aSize = pDev->PixelToLogic( aSize );
++
++        pTabPage->Draw( pDev, aPos, aSize, 0 );
++    }
++
++    VCLXWindow::draw( nX, nY );
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::addChild(
++    const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
++    throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException)
++{
++    unsigned int id = insertTab();
++    if ( maChildren.size() < id )
++        maChildren.resize( id, 0 );
++    mnChildrenNb++;
++
++    if ( xChild.is() )
++    {
++        ChildData *pData = new ChildData();
++        pData->xChild = xChild;
++        maChildren[ id-1 ] = pData;
++
++        setChildParent( xChild );
++        queueResize();
++    }
++}
++
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    for( unsigned i = 0; i < maChildren.size(); i++)
++    {
++        if ( maChildren[ i ] && maChildren[ i ]->xChild == xChild )
++        {
++            removeTab( i );
++            delete maChildren[ i ];
++            maChildren[ i ] = NULL;
++            mnChildrenNb--;
++
++            unsetChildParent( xChild );
++            queueResize();
++            break;
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
++                                 < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL VCLXTabControl::getChildren()
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > childrenSeq( mnChildrenNb );
++    for( unsigned si = 0, ci = 0; ci < maChildren.size(); ci++)
++    {
++        if ( maChildren[ ci ] && maChildren[ ci ]->xChild.is() )
++            childrenSeq[si++] = maChildren[ ci ]->xChild;
++    }
++    return childrenSeq;
++}
++
++//--------------------------------------------------------------------
++uno::Reference< beans::XPropertySet > SAL_CALL
++VCLXTabControl::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    std::vector< ChildData * >::iterator iter;
++    for( iter = maChildren.begin(); iter != maChildren.end(); iter++)
++    {
++        if ( (*iter)->xChild == xChild )
++        {
++            if ( !(*iter)->xProps.is() )
++            {
++                // FIXME: make me safe !
++                PropHelper *pProps = new TabChildProps( *iter );
++                pProps->setChangeListener( this );
++                (*iter)->xProps = pProps;
++            }
++            return (*iter)->xProps;
++        }
++    }
++    return uno::Reference< beans::XPropertySet >();
++}
++
++// TEMP:
++static void setChildrenVisible( uno::Reference < awt::XLayoutConstrains > xChild, bool visible )
++{
++    uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY);
++    if ( xWin.is() )
++    {
++        xWin->setVisible( visible );
++//xWin->setPosSize( 0, 0, 5, 5, PosSize::POSSIZE );
++    }
++
++    uno::Reference < awt::XLayoutContainer > xCont( xChild, uno::UNO_QUERY );
++    if ( xCont.is())
++    {
++        uno::Sequence< uno::Reference < awt::XLayoutConstrains > > children = xCont->getChildren();
++        for( int i = 0; i < children.getLength(); i++ )
++        {
++            setChildrenVisible( children[i], visible );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::allocateArea(
++    const ::com::sun::star::awt::Rectangle &rArea )
++    throw (::com::sun::star::uno::RuntimeException)
++{
++    maAllocation = rArea;
++
++    TabControl *pTabControl = getTabControl();
++
++// FIXME: this is wrong. We just want to set tab controls pos/size for the tabs menu,
++// otherwise, it gets events that should go to children (I guess we could solve this
++// by making the tabcontrol as the actual XWindow parent of its children, when importing...)
++// Not sure about TabPage drawing... That doesn't work on gtk+; just ignoring that.
++// LATER: Nah, the proper fix is to get the XWindow hierarchy straight.
++
++    setPosSize( rArea.X, rArea.Y, rArea.Width, rArea.Height, PosSize::POSSIZE );
++
++    // FIXME: we can save cycles by setting visibility more sensibly. Having
++    // it here does makes it easier when changing tabs (just needs a recalc())
++    for( unsigned int i = 0; i < maChildren.size(); i++ )
++    {
++        if ( !maChildren[ i ] )
++            continue;
++        ::com::sun::star::uno::Reference
++              < ::com::sun::star::awt::XLayoutConstrains > xChild( maChildren[ i ]->xChild );
++        if ( xChild.is() )
++        {
++            uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY );
++            bool active = (i+1 == (unsigned) getActiveTabID());
++
++            // HACK: since our layout:: container don't implement XWindow, we have no easy
++            // way to set them invisible; lets just set all their children as such :P
++#if 0
++            if ( xWin.is() )
++                xWin->setVisible( active );
++#else
++            setChildrenVisible( xChild, active );
++#endif
++
++            if ( active )
++            {
++                ::Rectangle label_rect = pTabControl->GetTabBounds( i+1 );
++                ::Rectangle page_rect = pTabControl->GetTabPageBounds( i+1 );
++
++                awt::Rectangle childRect;
++                childRect.X = page_rect.Left();
++                childRect.Y = SAL_MAX( label_rect.Bottom(), page_rect.Top() );
++                childRect.Width = page_rect.Right() - page_rect.Left();
++                childRect.Height = page_rect.Bottom() - childRect.Y;
++
++                allocateChildAt( xChild, childRect );
++            }
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++::com::sun::star::awt::Size SAL_CALL VCLXTabControl::getMinimumSize()
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    awt::Size size = VCLXWindow::getMinimumSize();
++    awt::Size childrenSize( 0, 0 );
++
++    TabControl* pTabControl = static_cast< TabControl* >( GetWindow() );
++    if ( !pTabControl )
++        return size;
++
++    // calculate size to accomodate all children
++    for( unsigned int i = 0; i < maChildren.size(); i++ )
++    {
++        ChildData *pChild = maChildren[ i ];
++        if ( pChild && pChild->xChild.is() )
++        {
++            // set the title prop here...
++            pTabControl->SetPageText( i+1, pChild->aTitle.getStr() );
++
++            awt::Size childSize( pChild->xChild->getMinimumSize() );
++            childrenSize.Width = SAL_MAX( childSize.Width, childrenSize.Width );
++            childrenSize.Height = SAL_MAX( childSize.Height, childrenSize.Height );
++        }
++    }
++
++    size.Width += childrenSize.Width;
++    size.Height += childrenSize.Height + 20;
++    maRequisition = size;
++    return size;
++}
++
++//--------------------------------------------------------------------
++void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
++{
++    ::vos::OClearableGuard aGuard( GetMutex() );
++    TabControl* pTabControl = static_cast< TabControl* >( GetWindow() );
++    if ( !pTabControl )
++        return;
++
++    switch ( _rVclWindowEvent.GetId() )
++    {
++        case VCLEVENT_TABPAGE_ACTIVATE:
++            forceRecalc();
++        case VCLEVENT_TABPAGE_DEACTIVATE:
++        case VCLEVENT_TABPAGE_INSERTED:
++        case VCLEVENT_TABPAGE_REMOVED:
++        case VCLEVENT_TABPAGE_REMOVEDALL:
++        case VCLEVENT_TABPAGE_PAGETEXTCHANGED:
++        {
++            ULONG page = (ULONG) _rVclWindowEvent.GetData();
++            std::list< ::com::sun::star::uno::Reference
++                < ::com::sun::star::awt::XTabListener > >::iterator it;
++            for( it = mxTabListeners.begin(); it != mxTabListeners.end(); it++)
++            {
++                ::com::sun::star::uno::Reference
++                    < ::com::sun::star::awt::XTabListener > listener = *it;
++
++                switch ( _rVclWindowEvent.GetId() )
++                {
++
++                    case VCLEVENT_TABPAGE_ACTIVATE:
++                        listener->activated( page );
++                        break;
++                    case VCLEVENT_TABPAGE_DEACTIVATE:
++                        listener->deactivated( page );
++                        break;
++                    case VCLEVENT_TABPAGE_INSERTED:
++                        listener->inserted( page );
++                        break;
++                    case VCLEVENT_TABPAGE_REMOVED:
++                        listener->removed( page );
++                        break;
++                    case VCLEVENT_TABPAGE_REMOVEDALL:
++                        for( int i = 1; i < mnNextTabId; i++)
++                        {
++                            if ( pTabControl->GetTabPage( i ) )
++                                listener->removed( i );
++                        }
++                        break;
++                    case VCLEVENT_TABPAGE_PAGETEXTCHANGED:
++                        listener->changed( page, getTabProps( page ) );
++                        break;
++                }
++            }
++            break;
++        }
++        default:
++            aGuard.clear();
++            VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
++            break;
++    }
++}
++
++//--------------------------------------------------------------------
++void SAL_CALL VCLXTabControl::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                VCLXWindow::setProperty( PropertyName, Value );
++        }
++    }
++}
++
++//--------------------------------------------------------------------
++Any SAL_CALL VCLXTabControl::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
++{
++    ::vos::OGuard aGuard( GetMutex() );
++
++    Any aReturn;
++    if ( GetWindow() )
++    {
++        sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
++        switch ( nPropertyId )
++        {
++            default:
++                aReturn = VCLXWindow::getProperty( PropertyName );
++        }
++    }
++    return aReturn;
++}
++
++//........................................................................
++} // namespace toolkit
++//........................................................................
+Index: toolkit/source/awt/vclxtabcontrol.hxx
+===================================================================
+RCS file: toolkit/source/awt/vclxtabcontrol.hxx
+diff -N toolkit/source/awt/vclxtabcontrol.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/awt/vclxtabcontrol.hxx	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,142 @@
++#ifndef LAYOUT_AWT_VCLXTABCONTROLLER_HXX
++#define LAYOUT_AWT_VCLXTABCONTROLLER_HXX
++
++#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_
++#include <toolkit/awt/vclxwindow.hxx>
++#endif
++#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_
++#include <toolkit/helper/listenermultiplexer.hxx>
++#endif
++#ifndef _CPPUHELPER_IMPLBASE1_HXX_
++#include <cppuhelper/implbase1.hxx>
++#endif
++#ifndef _COMPHELPER_UNO3_HXX_
++#include <comphelper/uno3.hxx>
++#endif
++#ifndef _COM_SUN_STAR_AWT_XSIMPLETABCONTROLLER_HPP_
++#include <com/sun/star/awt/XSimpleTabController.hpp>
++#endif
++#include "../layout/container.hxx"
++
++#include <com/sun/star/awt/MaxChildrenException.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include "forward.hxx"
++
++class TabControl;
++using namespace toolkit;
++
++//........................................................................
++namespace layoutimpl
++{
++//........................................................................
++
++//====================================================================
++//= VCLXTabControl
++//====================================================================
++
++typedef ::cppu::ImplHelper1 <   ::com::sun::star::awt::XSimpleTabController
++                                >   VCLXTabControl_Base;
++
++class VCLXTabControl :public VCLXWindow
++                     ,public VCLXTabControl_Base
++                     ,public Container
++{
++public:
++    VCLXTabControl();
++
++protected:
++    ~VCLXTabControl( );
++
++    // XInterface
++    DECLARE_XINTERFACE()
++
++    // XTypeProvider
++    DECLARE_XTYPEPROVIDER()
++
++    // XComponent
++    void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
++
++    virtual SAL_CALL void draw( sal_Int32 nX, sal_Int32 nY ) throw        (::com::sun::star::uno::RuntimeException);
++
++    // XSimpleTabController
++    virtual ::sal_Int32 SAL_CALL insertTab() throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeTab( ::sal_Int32 ID ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL setTabProps( ::sal_Int32 ID, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& Properties ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > SAL_CALL getTabProps( ::sal_Int32 ID ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL activateTab( ::sal_Int32 ID ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
++    virtual ::sal_Int32 SAL_CALL getActiveTabID(  ) throw (::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL addTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& Listener ) throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL removeTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& Listener ) throw (::com::sun::star::uno::RuntimeException);
++
++    // ::com::sun::star::awt::XLayoutContainer
++    virtual void SAL_CALL addChild(
++        const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
++        throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child )
++        throw (::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference
++                                             < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea )
++        throw (::com::sun::star::uno::RuntimeException);
++
++    virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
++        throw(::com::sun::star::uno::RuntimeException);
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    // unimplemented:
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException)
++    { return false; }
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ )
++    throw(css::uno::RuntimeException)
++    { return maRequisition.Height; }
++
++    // VclWindowPeer
++    virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    // VCLXWindow
++    void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
++
++private:
++    VCLXTabControl( const VCLXTabControl& );            // never implemented
++    VCLXTabControl& operator=( const VCLXTabControl& ); // never implemented
++
++    // Each tab page needs an unique id.
++    int mnNextTabId;
++
++    // Maps page ids to child references
++    friend class TabChildProps;
++    struct ChildData
++    {
++        rtl::OUString aTitle;
++        css::awt::Size aRequisition;
++        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
++        css::uno::Reference< css::beans::XPropertySet >    xProps;
++        bool isVisible();
++    };
++    std::vector< ChildData * > maChildren;  // some may be null
++    int mnChildrenNb;
++
++    // FIXME: we might want to use a Multiplexer
++    std::list< ::com::sun::star::uno::Reference
++               < ::com::sun::star::awt::XTabListener > > mxTabListeners;
++
++    inline TabControl *getTabControl( ) const throw (::com::sun::star::uno::RuntimeException);
++};
++
++//........................................................................
++} // namespacetoolkit
++//........................................................................
++
++#endif /*LAYOUT_AWT_VCLXTABCONTROLLER_HXX*/
+Index: toolkit/source/awt/vclxtoolkit.cxx
+===================================================================
+RCS file: /cvs/gsl/toolkit/source/awt/vclxtoolkit.cxx,v
+retrieving revision 1.68
+retrieving revision 1.68.6.1
+diff -p -u -u -p -b -w -B -r1.68 -r1.68.6.1
+--- toolkit/source/awt/vclxtoolkit.cxx	29 Jan 2008 15:05:25 -0000	1.68
++++ toolkit/source/awt/vclxtoolkit.cxx	14 Feb 2008 15:50:38 -0000	1.68.6.1
+@@ -273,7 +273,7 @@ namespace css = ::com::sun::star;
+ #define SYSTEM_DEPENDENT_TYPE ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW
+ #endif
+ 
+-WinBits ImplGetWinBits( sal_uInt32 nComponentAttribs, sal_uInt16 nCompType )
++TOOLKIT_DLLPUBLIC WinBits ImplGetWinBits( sal_uInt32 nComponentAttribs, sal_uInt16 nCompType )
+ {
+ 	WinBits nWinBits = 0;
+ 
+cvs diff: Diffing toolkit/source/controls
+cvs diff: Diffing toolkit/source/controls/tree
+cvs diff: Diffing toolkit/source/helper
+cvs diff: Diffing toolkit/source/layout
+Index: toolkit/source/layout/bin.cxx
+===================================================================
+RCS file: toolkit/source/layout/bin.cxx
+diff -N toolkit/source/layout/bin.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/bin.cxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,159 @@
++#include "bin.hxx"
++
++#include <sal/macros.h>
++
++namespace layoutimpl
++{
++
++using namespace css;
++
++/* Bin */
++
++Bin::Bin() : Container()
++{
++}
++
++void SAL_CALL
++Bin::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException, awt::MaxChildrenException)
++{
++    if ( mxChild.is() )
++        throw awt::MaxChildrenException();
++    if ( xChild.is() )
++    {
++        mxChild = xChild;
++        setChildParent( xChild );
++        queueResize();
++    }
++}
++
++void SAL_CALL
++Bin::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    if ( xChild == mxChild )
++    {
++        mxChild = uno::Reference< awt::XLayoutConstrains >();
++        unsetChildParent( xChild );
++        queueResize();
++    }
++}
++
++uno::Sequence< uno::Reference< awt::XLayoutConstrains > > SAL_CALL
++Bin::getChildren()
++    throw (uno::RuntimeException)
++{
++    return getSingleChild (mxChild);
++}
++
++void SAL_CALL
++Bin::allocateArea( const awt::Rectangle &rArea )
++    throw (uno::RuntimeException)
++{
++    maAllocation = rArea;
++    if ( mxChild.is() )
++        allocateChildAt( mxChild, rArea );
++}
++
++awt::Size SAL_CALL
++Bin::getMinimumSize()
++    throw(uno::RuntimeException)
++{
++    if ( mxChild.is() )
++        return maRequisition = maChildRequisition = mxChild->getMinimumSize();
++    return maRequisition = awt::Size( 0, 0 );
++}
++
++uno::Reference< beans::XPropertySet > SAL_CALL
++Bin::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& )
++    throw (uno::RuntimeException)
++{
++    return uno::Reference< beans::XPropertySet >();
++}
++
++sal_Bool SAL_CALL
++Bin::hasHeightForWidth()
++    throw(uno::RuntimeException)
++{
++    uno::Reference< awt::XLayoutContainer > xChildCont( mxChild, uno::UNO_QUERY );
++    if ( xChildCont.is() )
++        return xChildCont->hasHeightForWidth();
++    return false;
++}
++
++sal_Int32 SAL_CALL
++Bin::getHeightForWidth( sal_Int32 nWidth )
++    throw(uno::RuntimeException)
++{
++    uno::Reference< awt::XLayoutContainer > xChildCont( mxChild, uno::UNO_QUERY );
++    if ( xChildCont.is() )
++        return xChildCont->getHeightForWidth( nWidth );
++    return maRequisition.Height;
++}
++
++/* Align */
++
++Align::Align() : Bin()
++{
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Halign" ),
++             ::getCppuType( static_cast< const float* >( NULL ) ),
++             &fHorAlign );
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Valign" ),
++             ::getCppuType( static_cast< const float* >( NULL ) ),
++             &fVerAlign );
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Hfill" ),
++             ::getCppuType( static_cast< const float* >( NULL ) ),
++             &fHorFill );
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Vfill" ),
++             ::getCppuType( static_cast< const float* >( NULL ) ),
++             &fVerFill );
++
++    fHorAlign = fVerAlign = 0.5;
++    fHorFill = fVerFill = 0;
++}
++
++void SAL_CALL
++Align::allocateArea( const awt::Rectangle &rArea )
++    throw (uno::RuntimeException)
++{
++    maAllocation = rArea;
++    if ( !mxChild.is() )
++        return;
++
++    awt::Rectangle aChildArea;
++    aChildArea.Width = SAL_MIN( rArea.Width, maChildRequisition.Width );
++    aChildArea.Width += (sal_Int32) SAL_MAX(
++        0, (rArea.Width - maChildRequisition.Width) * fHorFill );
++    aChildArea.Height = SAL_MIN( rArea.Height, maChildRequisition.Height );
++    aChildArea.Height += (sal_Int32) SAL_MAX(
++        0, (rArea.Height - maChildRequisition.Height) * fVerFill );
++
++    aChildArea.X = rArea.X + (sal_Int32)( (rArea.Width - aChildArea.Width) * fHorAlign );
++    aChildArea.Y = rArea.Y + (sal_Int32)( (rArea.Height - aChildArea.Height) * fVerAlign );
++
++    allocateChildAt( mxChild, aChildArea );
++}
++
++/* MinSize */
++
++MinSize::MinSize() : Bin()
++{
++    mnMinWidth = mnMinHeight = 0;
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "MinWidth" ),
++             ::getCppuType( static_cast< const long* >( NULL ) ),
++             &mnMinWidth );
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "MinHeight" ),
++             ::getCppuType( static_cast< const long* >( NULL ) ),
++             &mnMinHeight );
++}
++
++awt::Size SAL_CALL MinSize::getMinimumSize()
++    throw(uno::RuntimeException)
++{
++    Bin::getMinimumSize();
++    maRequisition.Width = SAL_MAX( maRequisition.Width, mnMinWidth );
++    maRequisition.Height = SAL_MAX( maRequisition.Height, mnMinHeight );
++    return maRequisition;
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/bin.hxx
+===================================================================
+RCS file: toolkit/source/layout/bin.hxx
+diff -N toolkit/source/layout/bin.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/bin.hxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,89 @@
++/* A few simple binary containers */
++
++#ifndef CORE_BIN_HXX
++#define CORE_BIN_HXX
++
++#include "container.hxx"
++
++namespace layoutimpl
++{
++
++class Bin : public Container
++{
++protected:
++    // Child
++    css::awt::Size maChildRequisition;
++    css::uno::Reference< css::awt::XLayoutConstrains > mxChild;
++
++public:
++    Bin();
++    virtual ~Bin() {}
++
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Sequence< css::uno::Reference
++                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (css::uno::RuntimeException);
++
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
++        throw(css::uno::RuntimeException);
++
++    // css::awt::XLayoutConstrains
++    virtual css::awt::Size SAL_CALL getMinimumSize()
++        throw(css::uno::RuntimeException);
++
++    PROPHELPER_SET_INFO
++};
++
++// Align gives control over child position on the allocated space.
++class Align : public Bin
++{
++    friend class AlignChildProps;
++protected:
++    // properties
++    float fHorAlign, fVerAlign;
++    float fHorFill, fVerFill;
++
++public:
++    Align();
++
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++
++    PROPHELPER_SET_INFO
++};
++
++// Makes child request its or a specified size, whatever is larger.
++class MinSize : public Bin
++{
++protected:
++    // properties
++    long mnMinWidth, mnMinHeight;
++
++public:
++    MinSize();
++
++    // css::awt::XLayoutContainer
++    virtual css::awt::Size SAL_CALL getMinimumSize()
++        throw(css::uno::RuntimeException);
++
++    PROPHELPER_SET_INFO
++};
++
++} //  namespace layoutimpl
++
++#endif /*CORE_BIN_HXX*/
+Index: toolkit/source/layout/box.cxx
+===================================================================
+RCS file: toolkit/source/layout/box.cxx
+diff -N toolkit/source/layout/box.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/box.cxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,338 @@
++#include "box.hxx"
++
++#include <tools/debug.hxx>
++#include <sal/macros.h>
++
++// fixed point precision for distributing error
++#define FIXED_PT 16
++
++namespace layoutimpl
++{
++
++using namespace css;
++
++class BoxChildProps : public PropHelper
++{
++public:
++    BoxChildProps( Box::ChildData *pData )
++    {
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "Expand" ),
++                 ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
++                 &(pData->bExpand) );
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "Fill" ),
++                 ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
++                 &(pData->bFill) );
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "Padding" ),
++                 ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++                 &(pData->nPadding) );
++    }
++    PROPHELPER_SET_INFO
++};
++
++bool Box::ChildData::isVisible()
++{
++    // FIXME: call the 'isVisible' method on it ?
++    if ( !xChild.is() )
++    {
++        DBG_ERROR( "FIXME: invalid child !" );
++    }
++    return xChild.is();
++}
++
++Box::Box( bool horizontal )
++    : Container()
++    , mnSpacing( 0 )
++    , mbHomogeneous( false )
++    , mbHorizontal( horizontal )
++{
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Homogeneous" ),
++             ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
++             &mbHomogeneous );
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Spacing" ),
++             ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++             &mnSpacing );
++    mbHasFlowChildren = false;
++}
++
++Box::ChildData *
++Box::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
++{
++    ChildData *p = new ChildData();
++
++    p->nPadding = 0;
++    p->bExpand = true;
++    p->bFill = true;
++    p->xChild = xChild;
++    return p;
++}
++
++void SAL_CALL
++Box::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException, awt::MaxChildrenException)
++{
++    if ( xChild.is() )
++    {
++        ChildData *pData = createChild( xChild );
++        maChildren.push_back( pData );
++        setChildParent( xChild );
++        queueResize();
++    }
++}
++
++Box::ChildData *
++Box::removeChildData( std::list< ChildData *> lst, css::uno::Reference< css::awt::XLayoutConstrains > const& xChild )
++{
++    for( std::list< ChildData * >::iterator it = lst.begin();
++         it != lst.end(); it++ )
++    {
++        if ( (*it)->xChild == xChild )
++        {
++            lst.erase( it );
++            return *it;
++        }
++    }
++    return 0;
++}
++
++void SAL_CALL
++Box::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    if ( ChildData *p = removeChildData( maChildren, xChild ) )
++    {
++        // CHECK: BoxChildProps leaks?
++        delete p;
++        unsetChildParent( xChild );
++        queueResize();
++    }
++    else
++    {
++        DBG_ERROR( "Box: removeChild: no such child" );
++    }
++}
++
++uno::Sequence< uno::Reference < awt::XLayoutConstrains > > SAL_CALL
++Box::getChildren()
++    throw (uno::RuntimeException)
++{
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
++    unsigned int i = 0;
++    for( std::list< ChildData * >::iterator it = maChildren.begin();
++         it != maChildren.end(); it++, i++ )
++        children[i] = (*it)->xChild;
++
++    return children;
++}
++
++uno::Reference< beans::XPropertySet > SAL_CALL
++Box::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException)
++{
++    std::list< ChildData * >::iterator iter;
++    for( iter = maChildren.begin(); iter != maChildren.end(); iter++)
++    {
++        if ( (*iter)->xChild == xChild )
++        {
++            if ( !(*iter)->xProps.is() )
++            {
++                // FIXME: make me safe !
++                PropHelper *pProps = new BoxChildProps( *iter );
++                pProps->setChangeListener( this );
++                (*iter)->xProps = pProps;
++            }
++            return (*iter)->xProps;
++        }
++    }
++    return uno::Reference< beans::XPropertySet >();
++}
++
++awt::Size
++Box::calculateSize( long nWidth )
++{
++    int nVisibleChildren = 0;
++    // primary vs secundary axis (instead of a X and Y)
++    int nPrimSize = 0, nSecSize = 0;
++    int nFlowMinWidth = 0;  // in case the box only has flow children
++
++    mbHasFlowChildren = false;
++
++    std::list<ChildData *>::const_iterator it;
++    for( it = maChildren.begin(); it != maChildren.end(); it++ )
++    {
++        ChildData *child = *it;
++        if ( !child->isVisible() )
++            continue;
++
++        uno::Reference< awt::XLayoutContainer > xChildCont( child->xChild, uno::UNO_QUERY );
++        bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
++
++        awt::Size aChildSize = child->aRequisition = child->xChild->getMinimumSize();
++
++        if ( !mbHorizontal /*vertical*/ && bFlow )
++        {
++            if ( nFlowMinWidth == 0 || nFlowMinWidth > aChildSize.Width )
++                nFlowMinWidth = aChildSize.Width;
++            mbHasFlowChildren = true;
++        }
++        else
++        {
++            int size = primDim( aChildSize ) + child->nPadding * 2;
++            if ( mbHomogeneous )
++                nPrimSize = SAL_MAX( nPrimSize, size );
++            else
++                nPrimSize += size;
++
++            nSecSize = SAL_MAX( nSecSize, secDim( aChildSize ) );
++        }
++        nVisibleChildren++;
++    }
++
++    if ( nVisibleChildren )
++    {
++        if ( mbHomogeneous )
++            nPrimSize *= nVisibleChildren;
++        nPrimSize += (nVisibleChildren - 1) * mnSpacing;
++    }
++
++    if ( mbHasFlowChildren )
++    {
++        if ( nWidth == 0 )
++            nWidth = nSecSize ? nSecSize : nFlowMinWidth;
++        for( it = maChildren.begin(); it != maChildren.end(); it++ )
++        {
++            ChildData *child = *it;
++            if ( !child->isVisible() )
++                continue;
++
++            uno::Reference< awt::XLayoutContainer > xChildCont( child->xChild, uno::UNO_QUERY );
++            bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
++
++            if ( bFlow )
++                nPrimSize += xChildCont->getHeightForWidth( nWidth );
++        }
++    }
++
++    nPrimSize += mnBorderWidth * 2;
++    nSecSize += mnBorderWidth * 2;
++    return awt::Size( mbHorizontal ? nPrimSize : nSecSize,
++                      mbHorizontal ? nSecSize : nPrimSize );
++}
++
++awt::Size SAL_CALL
++Box::getMinimumSize() throw(uno::RuntimeException)
++{
++    maRequisition = calculateSize();
++    return maRequisition;
++}
++
++sal_Bool SAL_CALL
++Box::hasHeightForWidth()
++    throw(uno::RuntimeException)
++{
++    return mbHasFlowChildren;
++}
++
++sal_Int32 SAL_CALL
++Box::getHeightForWidth( sal_Int32 nWidth )
++    throw(uno::RuntimeException)
++{
++    if ( hasHeightForWidth() )
++        return calculateSize( nWidth ).Height;
++    return maRequisition.Height;
++}
++
++void SAL_CALL
++Box::allocateArea( const awt::Rectangle &newArea )
++    throw (uno::RuntimeException)
++{
++    maAllocation = newArea;
++    int nVisibleChildren = 0, nExpandChildren = 0;
++
++    std::list<ChildData *>::const_iterator it;
++    for( it = maChildren.begin(); it != maChildren.end(); it++ )
++    {
++        ChildData *child = *it;
++        if ( child->isVisible() )
++        {
++            nVisibleChildren++;
++            if ( child->bExpand )
++                nExpandChildren++;
++        }
++    }
++    if ( !nVisibleChildren )
++        return;
++
++    // split rectangle for dimension helpers
++    awt::Point newPoint( newArea.X, newArea.Y );
++    awt::Size newSize( newArea.Width, newArea.Height );
++
++    int nExtraSpace;
++    if ( mbHomogeneous )
++        nExtraSpace = ( ( primDim( newSize ) - mnBorderWidth * 2 -
++                          ( nVisibleChildren - 1 ) * mnSpacing )) / nVisibleChildren;
++    else if ( nExpandChildren )
++    {
++        int reqSize = primDim( maRequisition );
++        if ( !mbHorizontal && hasHeightForWidth() )
++            reqSize = getHeightForWidth( newArea.Width );
++        nExtraSpace = ( primDim( newSize ) - reqSize ) / nExpandChildren;
++    }
++    else
++        nExtraSpace = 0;
++
++    int nChildPrimPoint, nChildSecPoint, nChildPrimSize, nChildSecSize;
++
++    int nStartPoint = primDim( newPoint ) + mnBorderWidth;
++    int nBoxSecSize = SAL_MAX( 1, secDim( newSize ) - mnBorderWidth * 2 );
++
++    for( it = maChildren.begin(); it != maChildren.end(); it++ )
++    {
++        ChildData *child = *it;
++        if ( !child->isVisible() )
++            continue;
++
++        awt::Point aChildPos;
++        int nBoxPrimSize;  // of the available box space
++
++        if ( mbHomogeneous )
++            nBoxPrimSize = nExtraSpace;
++        else
++        {
++            uno::Reference< awt::XLayoutContainer > xChildCont( child->xChild, uno::UNO_QUERY );
++            bool bFlow = xChildCont.is() && xChildCont->hasHeightForWidth();
++            if ( !mbHorizontal && bFlow )
++                nBoxPrimSize = xChildCont->getHeightForWidth( newArea.Width );
++            else
++                nBoxPrimSize = primDim( child->aRequisition );
++            nBoxPrimSize += child->nPadding;
++            if ( child->bExpand )
++                nBoxPrimSize += nExtraSpace;
++        }
++
++        nChildPrimPoint = nStartPoint + child->nPadding;
++        nChildSecPoint = secDim( newPoint ) + mnBorderWidth;
++
++        nChildSecSize = nBoxSecSize;
++        if ( child->bFill )
++            nChildPrimSize = SAL_MAX( 1, nBoxPrimSize - child->nPadding);
++        else
++        {
++            nChildPrimSize = primDim( child->aRequisition );
++            nChildPrimPoint += (nBoxPrimSize - nChildPrimSize) / 2;
++
++            nChildSecPoint += (nBoxSecSize - nChildSecSize) / 2;
++        }
++
++        awt::Rectangle area;
++        area.X = mbHorizontal ? nChildPrimPoint : nChildSecPoint;
++        area.Y = mbHorizontal ? nChildSecPoint : nChildPrimPoint;
++        area.Width = mbHorizontal ? nChildPrimSize : nChildSecSize;
++        area.Height = mbHorizontal ? nChildSecSize : nChildPrimSize;
++
++        allocateChildAt( child->xChild, area );
++
++        nStartPoint += nBoxPrimSize + mnSpacing + child->nPadding;
++    }
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/box.hxx
+===================================================================
+RCS file: toolkit/source/layout/box.hxx
+diff -N toolkit/source/layout/box.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/box.hxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,91 @@
++#ifndef CORE_BOX_HXX
++#define CORE_BOX_HXX
++
++#include "container.hxx"
++
++#include <com/sun/star/awt/Point.hpp>
++
++#include <list>
++
++namespace layoutimpl
++{
++
++class Box : public Container
++{
++    friend class BoxChildProps;
++protected:
++    // Box properties (i.e. affect all children)
++    sal_Int32 mnSpacing;
++    sal_Bool mbHomogeneous;
++    sal_Bool mbHorizontal;  // false for Vertical
++
++    // Children properties
++    struct ChildData
++    {
++      sal_Int32 nPadding;
++      sal_Bool  bExpand, bFill;
++      css::awt::Size aRequisition;
++      css::uno::Reference< css::awt::XLayoutConstrains > xChild;
++      css::uno::Reference< css::beans::XPropertySet > xProps;
++      bool isVisible();
++    };
++    std::list< ChildData * > maChildren;
++    bool mbHasFlowChildren;
++
++public:
++    Box( bool horizontal );
++
++    static ChildData *createChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild );
++
++    ChildData *removeChildData( std::list< ChildData *>, css::uno::Reference< css::awt::XLayoutConstrains > const& Child );
++
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Sequence< css::uno::Reference
++                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++
++    virtual css::awt::Size SAL_CALL getMinimumSize()
++        throw(css::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
++        throw(css::uno::RuntimeException);
++
++    // helper: mix of getMinimumSize() and getHeightForWidth()
++    css::awt::Size calculateSize( long nWidth = 0 );
++
++    PROPHELPER_SET_INFO
++
++private:
++    /* Helpers to deal with the joint Box directions. */
++    inline int primDim (const css::awt::Size &size)
++    { if (mbHorizontal) return size.Width; else return size.Height; }
++    inline int secDim (const css::awt::Size &size)
++    { if (mbHorizontal) return size.Height; else return size.Width; }
++    inline int primDim (const css::awt::Point &point)
++    { if (mbHorizontal) return point.X; else return point.Y; }
++    inline int secDim (const css::awt::Point &point)
++    { if (mbHorizontal) return point.Y; else return point.X; }
++};
++
++struct VBox : public Box
++{ VBox() : Box (false) {} };
++
++struct HBox : public Box
++{ HBox() : Box (true) {} };
++
++} //  namespace layoutimpl
++
++#endif /*CORE_BOX_HXX*/
+Index: toolkit/source/layout/byteseq.cxx
+===================================================================
+RCS file: toolkit/source/layout/byteseq.cxx
+diff -N toolkit/source/layout/byteseq.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/byteseq.cxx	15 Feb 2008 09:56:40 -0000	1.1.2.2
+@@ -0,0 +1,75 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++/* We do not link to xmlscript, because that would introduce an extra
++   toolkit dependency.  */
++#include <xml_helper/xml_byteseq.cxx>
++
++#include <stdio.h>
++#include <com/sun/star/io/XInputStream.hpp>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++
++namespace layoutimpl
++{
++
++uno::Reference< io::XInputStream >
++getFileAsStream( const uno::Reference< lang::XMultiServiceFactory > &xFactory,
++                 const rtl::OUString &rName );
++
++uno::Reference< io::XInputStream >
++getFileAsStream( const uno::Reference< lang::XMultiServiceFactory > & /* xFactory */,
++                 const rtl::OUString &rName )
++{
++    rtl::OString fname = rtl::OUStringToOString( rName, RTL_TEXTENCODING_UTF8 );
++    // create the input stream
++    FILE *f = ::fopen( fname, "rb" );
++    if (f)
++    {
++        ::fseek( f, 0 ,SEEK_END );
++        int nLength = ::ftell( f );
++        ::fseek( f, 0, SEEK_SET );
++
++        ByteSequence bytes( nLength );
++        ::fread( bytes.getArray(), nLength, 1, f );
++        ::fclose( f );
++
++        return new xmlscript::BSeqInputStream( bytes );
++    }
++
++    throw Exception( OUString( RTL_CONSTASCII_USTRINGPARAM("### Cannot read file!") ),
++                     Reference< XInterface >() );
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/container.cxx
+===================================================================
+RCS file: toolkit/source/layout/container.cxx
+diff -N toolkit/source/layout/container.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/container.cxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,141 @@
++#include "container.hxx"
++
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/awt/PosSize.hpp>
++#include <tools/debug.hxx>
++
++namespace layoutimpl {
++
++using namespace css;
++
++Container::Container()
++    : Container_Base()
++    , PropHelper()
++    , mnBorderWidth( 0 )
++{
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Border" ),
++             ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++             &mnBorderWidth );
++    setChangeListener( this );
++}
++
++uno::Any
++Container::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
++{
++    uno::Any aRet = Container_Base::queryInterface( rType );
++    return aRet.hasValue() ? aRet : PropHelper::queryInterface( rType );
++}
++
++void
++Container::allocateChildAt( const uno::Reference< awt::XLayoutConstrains > &xChild,
++                            const awt::Rectangle &rArea )
++    throw( uno::RuntimeException )
++{
++    uno::Reference< awt::XLayoutContainer > xCont( xChild, uno::UNO_QUERY );
++    if ( xCont.is() )
++        xCont->allocateArea( rArea );
++    else
++    {
++        uno::Reference< awt::XWindow > xWindow( xChild, uno::UNO_QUERY );
++        if ( xWindow.is() )
++            xWindow->setPosSize( rArea.X, rArea.Y, rArea.Width, rArea.Height,
++                                 awt::PosSize::POSSIZE );
++        else
++        {
++            DBG_ERROR( "Error: non-sizeable child" );
++        }
++    }
++}
++
++uno::Sequence< uno::Reference< awt::XLayoutConstrains > >
++Container::getSingleChild ( uno::Reference< awt::XLayoutConstrains >const &xChildOrNil )
++{
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aSeq( ( xChildOrNil.is() ? 1 : 0 ) );
++    if ( xChildOrNil.is() )
++        aSeq[0] = xChildOrNil;
++    return aSeq;
++}
++
++void
++Container::queueResize()
++{
++    if ( mxLayoutUnit.is() )
++        mxLayoutUnit->queueResize( uno::Reference< awt::XLayoutContainer >( this ) );
++}
++
++void
++Container::setChildParent( const uno::Reference< awt::XLayoutConstrains >& xChild )
++{
++    uno::Reference< awt::XLayoutContainer > xContChild( xChild, uno::UNO_QUERY );
++    if ( xContChild.is() )
++    {
++        xContChild->setParent( uno::Reference< awt::XLayoutContainer >( this ) );
++#if 0
++        assert( !mxLayoutUnit.is() );
++        xContChild->setLayoutUnit( mxLayoutUnit );
++#endif
++    }
++}
++
++void
++Container::unsetChildParent( const uno::Reference< awt::XLayoutConstrains >& xChild )
++{
++    uno::Reference< awt::XLayoutContainer > xContChild( xChild, uno::UNO_QUERY );
++    if ( xContChild.is() )
++    {
++        xContChild->setParent( uno::Reference< awt::XLayoutContainer >() );
++#if 0
++        xContChild->setLayoutUnit( uno::Reference< awt::XLayoutUnit >() );
++#endif
++    }
++}
++
++#if 0
++std::string
++Container::getLabel()  // debug label
++{
++    std::string depth;
++    uno::Reference< awt::XLayoutContainer > xContainer( this );
++    while ( xContainer.is() )
++    {
++        int node = 0;  // child nb
++        uno::Reference< awt::XLayoutContainer > xParent = xContainer->getContainerParent();
++        if ( xParent.is() )
++        {
++
++            uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aChildren;
++            aChildren = xParent->getChildren();
++            for( node = 0; node < aChildren.getLength(); node++ )
++                if ( aChildren[ node ] == xContainer )
++                    break;
++        }
++
++        char str[ 8 ];
++        snprintf( str, 8, "%d", node );
++        if ( depth.empty() )
++            depth = std::string( str );
++        else
++            depth = std::string( str ) + ":" + depth;
++
++        xContainer = xParent;
++    }
++
++    return std::string( getName() ) + " (" + depth + ")";
++}
++#endif
++
++void Container::propertiesChanged()
++{
++    if ( !mxParent.is() )
++    {
++        DBG_ERROR( "Properties listener: error container doesn't have parent" );
++    }
++
++    // ask parent to be re-calculated
++// FIXME: thats wrongg actually. We just need to do a "queueResize();"
++    
++    if ( mxLayoutUnit.is() && mxParent.is() )
++        mxLayoutUnit->queueResize( mxParent );
++}
++
++}
+Index: toolkit/source/layout/container.hxx
+===================================================================
+RCS file: toolkit/source/layout/container.hxx
+diff -N toolkit/source/layout/container.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/container.hxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,109 @@
++#ifndef CORE_CONTAINER_HXX
++#define CORE_CONTAINER_HXX
++
++#include "helper.hxx"
++
++#include <cppuhelper/implbase2.hxx>
++#include <com/sun/star/awt/MaxChildrenException.hpp>
++
++namespace layoutimpl
++{
++namespace css = ::com::sun::star;
++
++typedef ::cppu::WeakImplHelper2< css::awt::XLayoutContainer,
++                                 css::awt::XLayoutConstrains > Container_Base;
++
++class Container : public Container_Base, public PropHelper, public PropHelper::Listener
++{
++    friend class ChildProps;
++protected:
++    // Widget properties
++    css::uno::Reference< css::awt::XLayoutContainer > mxParent;
++    css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
++    css::awt::Size maRequisition;
++    css::awt::Rectangle maAllocation;
++
++    // Container properties
++    sal_Int32 mnBorderWidth;
++
++    // Utilities
++    void allocateChildAt( const css::uno::Reference< css::awt::XLayoutConstrains > &xChild,
++                          const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++    static css::uno::Sequence< css::uno::Reference< css::awt::XLayoutConstrains > >
++    getSingleChild (const css::uno::Reference< css::awt::XLayoutConstrains > &xChildOrNil);
++    void setChildParent( const css::uno::Reference< css::awt::XLayoutConstrains >& xChild );
++    void unsetChildParent( const css::uno::Reference< css::awt::XLayoutConstrains >& xChild );
++
++    void queueResize();
++    void forceRecalc() { allocateArea( maAllocation ); }
++
++public:
++    Container();
++    virtual ~Container() {}
++
++    // XInterface
++    virtual void SAL_CALL acquire() throw() { PropHelper::acquire(); }
++    virtual void SAL_CALL release() throw() { PropHelper::release(); }
++    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
++
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException, css::awt::MaxChildrenException) = 0;
++    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException) = 0;
++
++    virtual css::uno::Sequence< css::uno::Reference
++                                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (css::uno::RuntimeException) = 0;
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException) = 0;
++
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException) = 0;
++
++    void SAL_CALL setLayoutUnit( const css::uno::Reference< css::awt::XLayoutUnit > &xUnit )
++        throw(css::uno::RuntimeException)
++    { mxLayoutUnit = xUnit; }
++    css::uno::Reference< css::awt::XLayoutUnit > SAL_CALL getLayoutUnit()
++        throw(css::uno::RuntimeException)
++    { return mxLayoutUnit; }
++
++    css::awt::Size SAL_CALL getRequestedSize() throw(css::uno::RuntimeException)
++    { return maRequisition; }
++    com::sun::star::awt::Rectangle SAL_CALL getAllocatedArea() throw(css::uno::RuntimeException)
++    { return maAllocation; }
++
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException) = 0;
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
++        throw(css::uno::RuntimeException) = 0;
++
++    // css::awt::XLayoutContainer: css::container::XChild
++    css::uno::Reference< css::uno::XInterface > SAL_CALL getParent()
++        throw (css::uno::RuntimeException)
++    { return mxParent; }
++    void SAL_CALL setParent( const css::uno::Reference< css::uno::XInterface > &xParent )
++        throw (css::uno::RuntimeException)
++    { mxParent = css::uno::Reference< css::awt::XLayoutContainer >( xParent, css::uno::UNO_QUERY ); }
++
++    // css::awt::XLayoutConstrains
++    virtual css::awt::Size SAL_CALL getMinimumSize()
++        throw(css::uno::RuntimeException) = 0;
++    // (not properly implemented in toolkit, ignore it.)
++    css::awt::Size SAL_CALL getPreferredSize()
++        throw(css::uno::RuntimeException) { return getMinimumSize(); } // TODO: use this for flow?
++    css::awt::Size SAL_CALL calcAdjustedSize( const css::awt::Size& rNewSize )
++        throw(css::uno::RuntimeException) { return rNewSize; }
++
++PROPHELPER_SET_INFO
++
++protected:
++    void propertiesChanged();
++};
++
++} //  namespace layoutimpl
++
++#endif /*CORE_CONTAINER_HXX*/
+Index: toolkit/source/layout/dialogbuttonhbox.cxx
+===================================================================
+RCS file: toolkit/source/layout/dialogbuttonhbox.cxx
+diff -N toolkit/source/layout/dialogbuttonhbox.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/dialogbuttonhbox.cxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,264 @@
++#include "dialogbuttonhbox.hxx"
++
++#include <tools/debug.hxx>
++#include <toolkit/awt/vclxwindows.hxx>
++#include <vcl/button.hxx>
++
++#include "flow.hxx"
++#include "../awt/vclxbutton.hxx"
++#include "proplist.hxx"
++
++#if TEST_LAYOUT && !defined( DBG_UTIL )
++#include <stdio.h>
++#undef DBG_ERROR
++#define DBG_ERROR printf
++#undef DBG_ERROR1
++#define DBG_ERROR1 printf
++#undef DBG_ERROR2
++#define DBG_ERROR2 printf
++#endif /* TEST_LAYOUT && !DBG_UTIL */
++
++namespace layoutimpl
++{
++
++using namespace css;
++
++//FIXME: how to set platform-dependant variables?
++DialogButtonHBox::Ordering const DialogButtonHBox::DEFAULT_ORDERING =
++#if defined( MACOSX )
++    DialogButtonHBox::MacOS;
++#elif defined( SAL_W32 )
++DialogButtonHBox::WINDOWS;
++#elif defined( ENABLE_KDE )
++DialogButtonHBox::KDE;
++#else /* !MACOSX && !SAL_W32 && !ENABLE_KDE */
++DialogButtonHBox::GNOME;
++#endif /* !MACOSX && !SAL_W32 && !ENABLE_KDE */
++
++DialogButtonHBox::DialogButtonHBox()
++    : HBox()
++    , mnOrdering( DEFAULT_ORDERING )
++    , mFlow()
++    , mpAction( 0 )
++    , mpAffirmative( 0 )
++    , mpAlternate( 0 )
++    , mpApply( 0 )
++    , mpCancel( 0 )
++    , mpFlow( createChild( uno::Reference< awt::XLayoutConstrains > ( &mFlow ) ) )
++    , mpHelp( 0 )
++    , mpReset( 0 )
++{
++    mbHomogeneous = true;
++}
++
++void
++DialogButtonHBox::setOrdering( rtl::OUString const& ordering )
++{
++    if ( ordering.equalsIgnoreAsciiCaseAscii( "GNOME" ) )
++        mnOrdering = GNOME;
++    else if ( ordering.equalsIgnoreAsciiCaseAscii( "KDE" ) )
++        mnOrdering = KDE;
++    else if ( ordering.equalsIgnoreAsciiCaseAscii( "MacOS" ) )
++        mnOrdering = MACOS;
++    else if ( ordering.equalsIgnoreAsciiCaseAscii( "Windows" ) )
++        mnOrdering = WINDOWS;
++    else
++    {
++        DBG_ERROR1( "DialogButtonHBox: no such ordering: %s", OUSTRING_CSTR( ordering ) );
++    }
++}
++
++void
++DialogButtonHBox::addChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    throw ( uno::RuntimeException, awt::MaxChildrenException )
++{
++    if ( !xChild.is() )
++        return;
++
++    ChildData *p = createChild( xChild );
++
++#define IS_BUTTON(t) dynamic_cast<VCLX##t##Button *>( xChild.get () )
++
++    /* Sort Retry as Action */
++    if ( !mpAction && IS_BUTTON( Retry ) )
++        mpAction = p;
++    else if ( !mpAffirmative && IS_BUTTON( OK ) )
++        mpAffirmative = p;
++    else if ( !mpAffirmative && IS_BUTTON( Yes ) )
++        mpAffirmative = p;
++    else if ( !mpAlternate && IS_BUTTON( No ) )
++        mpAlternate = p;
++    /* Sort Ignore as Alternate */
++    else if ( !mpAlternate && IS_BUTTON( Ignore ) )
++        mpAlternate = p;
++    else if ( !mpApply && IS_BUTTON( Apply ) )
++        mpApply = p;
++    else if ( !mpCancel && IS_BUTTON( Cancel ) )
++        mpCancel = p;
++    /* Let the user overwrite Flow */
++    else if ( /* !mpFlow && */ dynamic_cast<Flow *>( xChild.get () ) )
++        mpFlow = p;
++    else if ( !mpHelp && IS_BUTTON( Help ) )
++        mpHelp = p;
++    else if ( !mpReset && IS_BUTTON( Reset ) )
++        mpReset = p;
++    else
++        maOther.push_back( p );
++    orderChildren();
++    setChildParent( xChild );
++    queueResize();
++}
++
++void
++DialogButtonHBox::orderChildren()
++{
++    if ( mnOrdering == WINDOWS )
++        windowsOrdering();
++    else if ( mnOrdering == MACOS )
++        macosOrdering();
++    else if ( mnOrdering == KDE )
++        kdeOrdering();
++    else if ( 1 || mnOrdering == GNOME )
++        gnomeOrdering();
++}
++
++void SAL_CALL
++DialogButtonHBox::removeChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
++    throw ( uno::RuntimeException)
++{
++    if ( !xChild.is ())
++        return;
++
++    ChildData *p = 0;
++
++    if ( mpAction && mpAction->xChild == xChild )
++        p = mpAction;
++    else if ( mpAffirmative && mpAffirmative->xChild == xChild )
++        p = mpAffirmative;
++    else if ( mpAlternate && mpAlternate->xChild == xChild )
++        p = mpAlternate;
++    else if ( mpApply && mpApply->xChild == xChild )
++        p = mpApply;
++    else if ( mpCancel && mpCancel->xChild == xChild )
++        p = mpCancel;
++    else if ( mpFlow && mpFlow->xChild == xChild )
++        p = mpFlow;
++    else if ( mpReset && mpReset->xChild == xChild )
++        p = mpReset;
++    else if ( mpHelp && mpHelp->xChild == xChild )
++        p = mpHelp;
++    else
++        p = removeChildData( maOther, xChild );
++
++    if ( p )
++    {
++        delete p;
++        unsetChildParent( xChild );
++        orderChildren();
++        queueResize();
++    }
++    else
++    {
++        DBG_ERROR( "DialogButtonHBox: removeChild: no such child" );
++    }
++}
++
++void
++DialogButtonHBox::gnomeOrdering()
++{
++    std::list< ChildData * > ordered;
++    if ( mpHelp )
++        ordered.push_back( mpHelp );
++    if ( mpReset )
++        ordered.push_back( mpReset );
++    if ( mpFlow && ( mpHelp || mpReset ) )
++        ordered.push_back( mpFlow );
++    ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
++    if ( mpAction )
++        ordered.push_back( mpAction );
++    if ( mpApply )
++        ordered.push_back( mpApply );
++    if ( mpAlternate )
++        ordered.push_back( mpAlternate );
++    if ( mpCancel )
++        ordered.push_back( mpCancel );
++    if ( mpAffirmative )
++        ordered.push_back( mpAffirmative );
++    maChildren = ordered;
++}
++
++void
++DialogButtonHBox::kdeOrdering()
++{
++    std::list< ChildData * > ordered;
++    if ( mpHelp )
++        ordered.push_back( mpHelp );
++    if ( mpReset )
++        ordered.push_back( mpReset );
++    if ( mpFlow && ( mpHelp || mpReset ) )
++        ordered.push_back( mpFlow );
++    ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
++    if ( mpAction )
++        ordered.push_back( mpAction );
++    if ( mpAffirmative )
++        ordered.push_back( mpAffirmative );
++    if ( mpApply )
++        ordered.push_back( mpApply );
++    if ( mpAlternate )
++        ordered.push_back( mpAlternate );
++    if ( mpCancel )
++        ordered.push_back( mpCancel );
++    maChildren = ordered;
++}
++
++void
++DialogButtonHBox::macosOrdering()
++{
++    std::list< ChildData * > ordered;
++    if ( mpHelp )
++        ordered.push_back( mpHelp );
++    if ( mpReset )
++        ordered.push_back( mpReset );
++    if ( mpApply )
++        ordered.push_back( mpApply );
++    if ( mpAction )
++        ordered.push_back( mpAction );
++    ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
++    if ( mpFlow ) // Always flow? && ( maOther.size () || mpHelp || mpReset || mpAction ) )
++        ordered.push_back( mpFlow );
++    if ( mpAlternate )
++        ordered.push_back( mpAlternate );
++    if ( mpFlow && mpAlternate )
++        ordered.push_back( mpFlow );
++    if ( mpCancel )
++        ordered.push_back( mpCancel );
++    if ( mpAffirmative )
++        ordered.push_back( mpAffirmative );
++    maChildren = ordered;
++}
++
++void
++DialogButtonHBox::windowsOrdering()
++{
++    std::list< ChildData * > ordered;
++    if ( mpReset )
++        ordered.push_back( mpReset );
++    if ( mpReset && mpFlow )
++        ordered.push_back( mpFlow );
++    if ( mpAffirmative )
++        ordered.push_back( mpAffirmative );
++    if ( mpAlternate )
++        ordered.push_back( mpAlternate );
++    if ( mpAction )
++        ordered.push_back( mpAction );
++    if ( mpCancel )
++        ordered.push_back( mpCancel );
++    if ( mpApply )
++        ordered.push_back( mpApply );
++    ordered.insert( ordered.end(), maOther.begin(), maOther.end() );
++    if ( mpHelp )
++        ordered.push_back( mpHelp );
++    maChildren = ordered;
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/dialogbuttonhbox.hxx
+===================================================================
+RCS file: toolkit/source/layout/dialogbuttonhbox.hxx
+diff -N toolkit/source/layout/dialogbuttonhbox.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/dialogbuttonhbox.hxx	8 Feb 2008 18:44:43 -0000	1.1.2.1
+@@ -0,0 +1,46 @@
++#ifndef CORE_DIALOGBUTTONHBOX_HXX
++#define CORE_DIALOGBUTTONHBOX_HXX
++
++#include "box.hxx"
++#include "flow.hxx"
++
++namespace layoutimpl
++{
++
++class DialogButtonHBox : public HBox
++{
++public:
++    DialogButtonHBox();
++
++    void setOrdering( rtl::OUString const& ordering );
++    void SAL_CALL addChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild ) throw ( css::uno::RuntimeException, css::awt::MaxChildrenException );
++    void SAL_CALL removeChild( css::uno::Reference< css::awt::XLayoutConstrains > const& xChild ) throw ( css::uno::RuntimeException );
++
++private:
++    enum Ordering { PLATFORM, GNOME, KDE, MACOS, WINDOWS };
++
++    void orderChildren();
++    void gnomeOrdering();
++    void kdeOrdering();
++    void macosOrdering();
++    void windowsOrdering();
++
++    static Ordering const DEFAULT_ORDERING;
++    Ordering mnOrdering;
++    Flow mFlow;
++
++    ChildData *mpAction; /* [..]?, [Retry?] */
++    ChildData *mpAffirmative; /* OK, Yes, Save */
++    ChildData *mpAlternate; /* NO, [Ignore?], Don't save, Quit without saving */
++    ChildData *mpApply; /* Deprecated? */
++    ChildData *mpCancel; /* Cancel, Close */
++    ChildData *mpFlow;
++    ChildData *mpHelp;
++    ChildData *mpReset;
++
++    std::list< ChildData *> maOther;
++};
++
++} // namespace layoutimpl
++
++#endif /* CORE_DIALOGBUTTONHBOX_HXX */
+Index: toolkit/source/layout/factory.cxx
+===================================================================
+RCS file: toolkit/source/layout/factory.cxx
+diff -N toolkit/source/layout/factory.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/factory.cxx	12 Feb 2008 11:05:46 -0000	1.1.2.2
+@@ -0,0 +1,134 @@
++#include "factory.hxx"
++
++#include <com/sun/star/registry/XRegistryKey.hpp>
++#include <com/sun/star/registry/InvalidRegistryException.hpp>
++#include <cppuhelper/factory.hxx>
++
++#include "root.hxx"
++
++using namespace ::com::sun::star;
++using namespace layoutimpl;
++
++extern "C"
++{
++
++    TOOLKIT_DLLPUBLIC void 
++    SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
++    {
++        *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++    }
++
++    TOOLKIT_DLLPUBLIC void * SAL_CALL
++    component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
++    {
++        void * pRet = 0;
++
++        ::rtl::OUString aImplName( ::rtl::OUString::createFromAscii( pImplName ) );
++        uno::Reference< lang::XSingleServiceFactory > xFactory;
++
++        if ( pServiceManager && aImplName.equals( LayoutFactory::impl_staticGetImplementationName() ) )
++            xFactory = ::cppu::createOneInstanceFactory( reinterpret_cast< lang::XMultiServiceFactory*>( pServiceManager ),
++                                                         LayoutFactory::impl_staticGetImplementationName(),
++                                                         LayoutFactory::impl_staticCreateSelfInstance,
++                                                         LayoutFactory::impl_staticGetSupportedServiceNames() );
++        if ( xFactory.is() )
++        {
++            xFactory->acquire();
++            pRet = xFactory.get();
++        }
++
++        return pRet;
++    }
++
++    TOOLKIT_DLLPUBLIC sal_Bool SAL_CALL
++    component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
++    {
++        if ( pRegistryKey )
++        {
++            try
++            {
++                uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
++                uno::Reference< registry::XRegistryKey >  xNewKey;
++
++                xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
++                                           LayoutFactory::impl_staticGetImplementationName() +
++                                           ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") )  );
++
++                const uno::Sequence< ::rtl::OUString > aServices = LayoutFactory::impl_staticGetSupportedServiceNames();
++                for( sal_Int32 i = 0; i < aServices.getLength(); i++ )
++                    xNewKey->createKey( aServices.getConstArray()[i] );
++
++                return sal_True;
++            }
++            catch (registry::InvalidRegistryException &)
++            {   OSL_ENSURE( sal_False, "### InvalidRegistryException!" );   }
++        }
++        return sal_False;
++    }
++
++} // extern "C"
++
++// Component registration
++::rtl::OUString SAL_CALL LayoutFactory::impl_staticGetImplementationName()
++{
++    return ::rtl::OUString::createFromAscii( "com.sun.star.comp.awt.Layout" );
++}
++
++uno::Sequence< ::rtl::OUString > SAL_CALL LayoutFactory::impl_staticGetSupportedServiceNames()
++{
++    uno::Sequence< ::rtl::OUString > aRet(2);
++    aRet[0] = ::rtl::OUString::createFromAscii("com.sun.star.awt.Layout");
++    aRet[1] = ::rtl::OUString::createFromAscii("com.sun.star.comp.awt.Layout");
++    return aRet;
++}
++
++uno::Reference< uno::XInterface > SAL_CALL LayoutFactory::impl_staticCreateSelfInstance(
++    const uno::Reference< lang::XMultiServiceFactory >& xServiceManager )
++{
++    return uno::Reference< uno::XInterface >( *new LayoutFactory( xServiceManager ) );
++}
++
++// XServiceInfo
++::rtl::OUString SAL_CALL LayoutFactory::getImplementationName()
++    throw ( uno::RuntimeException )
++{
++    return impl_staticGetImplementationName();
++}
++
++uno::Sequence< ::rtl::OUString > SAL_CALL LayoutFactory::getSupportedServiceNames()
++    throw ( uno::RuntimeException )
++{
++    return impl_staticGetSupportedServiceNames();
++}
++
++sal_Bool SAL_CALL LayoutFactory::supportsService( const ::rtl::OUString& ServiceName )
++    throw ( uno::RuntimeException )
++{
++    uno::Sequence< ::rtl::OUString > aSeq = impl_staticGetSupportedServiceNames();
++    for( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
++        if ( ServiceName.compareTo( aSeq[i] ) == 0 )
++            return sal_True;
++
++    return sal_False;
++}
++
++// XSingleServiceFactory
++uno::Reference< uno::XInterface > SAL_CALL LayoutFactory::createInstance()
++    throw ( uno::Exception,
++            uno::RuntimeException )
++{
++    return uno::Reference< uno::XInterface >(
++        static_cast< OWeakObject* >( new LayoutRoot( m_xFactory ) ),
++        uno::UNO_QUERY );
++}
++
++uno::Reference< uno::XInterface > SAL_CALL LayoutFactory::createInstanceWithArguments(
++    const uno::Sequence< uno::Any >& aArguments )
++    throw ( uno::Exception,
++            uno::RuntimeException )
++{
++    uno::Reference< uno::XInterface > layout = createInstance();
++    uno::Reference< lang::XInitialization > xInit( layout, uno::UNO_QUERY );
++    xInit->initialize( aArguments );
++    return layout;
++}
+Index: toolkit/source/layout/factory.hxx
+===================================================================
+RCS file: toolkit/source/layout/factory.hxx
+diff -N toolkit/source/layout/factory.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/factory.hxx	12 Feb 2008 11:05:46 -0000	1.1.2.2
+@@ -0,0 +1,47 @@
++#ifndef FACTORY_HXX_
++#define FACTORY_HXX_
++
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#include <cppuhelper/implbase2.hxx>
++#include <toolkit/dllapi.h>
++
++namespace layoutimpl
++{
++class Layout;
++}
++
++class TOOLKIT_DLLPUBLIC LayoutFactory : public ::cppu::WeakImplHelper2< ::com::sun::star::lang::XSingleServiceFactory,
++                                                      ::com::sun::star::lang::XServiceInfo >
++{
++    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
++
++public:
++    LayoutFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory )
++        : m_xFactory( xFactory )
++    {
++        OSL_ENSURE( xFactory.is(), "No service manager is provided!\n" );
++    }
++
++    static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
++    impl_staticGetSupportedServiceNames();
++
++    static ::rtl::OUString SAL_CALL impl_staticGetImplementationName();
++
++    static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
++    impl_staticCreateSelfInstance(
++        const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
++
++
++    // XSingleServiceFactory
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance() throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++
++    // XServiceInfo
++    virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
++
++};
++
++#endif /* FACTORY_HXX */
+Index: toolkit/source/layout/flow.cxx
+===================================================================
+RCS file: toolkit/source/layout/flow.cxx
+diff -N toolkit/source/layout/flow.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/flow.cxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,176 @@
++#include "flow.hxx"
++
++#include <sal/macros.h>
++
++namespace layoutimpl
++{
++
++using namespace css;
++
++bool Flow::ChildData::isVisible()
++{
++    return xChild.is();
++}
++
++Flow::Flow()
++    : Container()
++    , mnSpacing( 0 )
++    , mbHomogeneous( false )
++{
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Homogeneous" ),
++             ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
++             &mbHomogeneous );
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Spacing" ),
++             ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++             &mnSpacing );
++}
++
++void SAL_CALL
++Flow::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw (uno::RuntimeException, css::awt::MaxChildrenException)
++{
++    if ( xChild.is() )
++    {
++        ChildData *pData = new ChildData();
++        pData->xChild = xChild;
++        maChildren.push_back( pData );
++
++        setChildParent( xChild );
++        queueResize();
++    }
++}
++
++void SAL_CALL
++Flow::removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& xChild )
++    throw (css::uno::RuntimeException)
++{
++    for( std::list< ChildData * >::iterator it = maChildren.begin();
++         it != maChildren.end(); it++ )
++    {
++        if ( (*it)->xChild == xChild )
++        {
++            delete *it;
++            maChildren.erase( it );
++
++            unsetChildParent( xChild );
++            queueResize();
++            break;
++        }
++    }
++}
++
++css::uno::Sequence< css::uno::Reference < css::awt::XLayoutConstrains > > SAL_CALL
++Flow::getChildren()
++    throw (css::uno::RuntimeException)
++{
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
++    unsigned int i = 0;
++    for( std::list< ChildData * >::iterator it = maChildren.begin();
++         it != maChildren.end(); it++, i++ )
++        children[i] = (*it)->xChild;
++
++    return children;
++}
++
++uno::Reference< beans::XPropertySet > SAL_CALL
++Flow::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& /*xChild*/ )
++    throw (uno::RuntimeException)
++{
++    return uno::Reference< beans::XPropertySet >();
++}
++
++css::awt::Size
++Flow::calculateSize( long nMaxWidth )
++{
++    long nNeedHeight = 0;
++
++    std::list<ChildData *>::const_iterator it;
++    mnEachWidth = 0;
++    // first pass, for homogeneous property
++    for (it = maChildren.begin(); it != maChildren.end(); it++)
++    {
++        if ( !(*it)->isVisible() )
++            continue;
++        (*it)->aRequisition = (*it)->xChild->getMinimumSize();
++        if ( mbHomogeneous )
++            mnEachWidth = SAL_MAX( mnEachWidth, (*it)->aRequisition.Width );
++    }
++
++    long nRowWidth = 0, nRowHeight = 0;
++    for (it = maChildren.begin(); it != maChildren.end(); it++)
++    {
++        if ( !(*it)->isVisible() )
++            continue;
++
++        awt::Size aChildSize = (*it)->aRequisition;
++        if ( mbHomogeneous )
++            aChildSize.Width = mnEachWidth;
++
++        if ( nMaxWidth && nRowWidth > 0 && nRowWidth + aChildSize.Width > nMaxWidth )
++        {
++            nRowWidth = 0;
++            nNeedHeight += nRowHeight;
++            nRowHeight = 0;
++        }
++        nRowHeight = SAL_MAX( nRowHeight, aChildSize.Height );
++        nRowWidth += aChildSize.Width;
++    }
++    nNeedHeight += nRowHeight;
++
++    return awt::Size( nRowWidth, nNeedHeight );
++}
++
++awt::Size SAL_CALL
++Flow::getMinimumSize() throw(uno::RuntimeException)
++{
++    return maRequisition = calculateSize( 0 );
++}
++
++sal_Bool SAL_CALL
++Flow::hasHeightForWidth()
++    throw(css::uno::RuntimeException)
++{
++    return true;
++}
++
++sal_Int32 SAL_CALL
++Flow::getHeightForWidth( sal_Int32 nWidth )
++    throw(css::uno::RuntimeException)
++{
++    return calculateSize( nWidth ).Height;
++}
++
++void SAL_CALL
++Flow::allocateArea( const css::awt::Rectangle &rArea )
++    throw (css::uno::RuntimeException)
++{
++    maAllocation = rArea;
++
++    std::list<ChildData *>::const_iterator it;
++    long nX = 0, nY = 0, nRowHeight = 0;
++    for (it = maChildren.begin(); it != maChildren.end(); it++)
++    {
++        ChildData *child = *it;
++        if ( !child->isVisible() )
++            continue;
++
++        awt::Size aChildSize( child->aRequisition );
++        if ( mbHomogeneous )
++            aChildSize.Width = mnEachWidth;
++
++        if ( nX > 0 && nX + aChildSize.Width > rArea.Width )
++        {
++            nX = 0;
++            nY += nRowHeight;
++            nRowHeight = 0;
++        }
++        nRowHeight = SAL_MAX( nRowHeight, aChildSize.Height );
++
++        allocateChildAt( child->xChild,
++                         awt::Rectangle( rArea.X + nX, rArea.Y + nY, aChildSize.Width, aChildSize.Height ) );
++
++        nX += aChildSize.Width;
++    }
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/flow.hxx
+===================================================================
+RCS file: toolkit/source/layout/flow.hxx
+diff -N toolkit/source/layout/flow.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/flow.hxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,65 @@
++#ifndef CORE_FLOW_HXX
++#define CORE_FLOW_HXX
++
++#include "container.hxx"
++
++#include <list>
++
++namespace layoutimpl
++{
++
++class Flow : public Container
++{
++protected:
++    // Box properties (i.e. affect all children)
++    sal_Int32 mnSpacing;
++    sal_Bool mbHomogeneous;
++
++    // Children properties
++    struct ChildData
++    {
++        css::awt::Size aRequisition;
++        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
++        css::uno::Reference< css::beans::XPropertySet >    xProps;
++        bool isVisible();
++    };
++    std::list< ChildData * > maChildren;
++    long mnEachWidth;  // on homogeneous, the width of every child
++
++public:
++    Flow();
++
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Sequence< css::uno::Reference
++                                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++
++    virtual css::awt::Size SAL_CALL getMinimumSize()
++        throw(css::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
++        throw(css::uno::RuntimeException);
++
++PROPHELPER_SET_INFO
++
++private:
++    // shared between getMinimumSize() and getHeightForWidth()
++    css::awt::Size calculateSize( long nMaxWidth );
++};
++
++} //  namespace layoutimpl
++
++#endif /*FLOW_CORE_HXX*/
+Index: toolkit/source/layout/helper.cxx
+===================================================================
+RCS file: toolkit/source/layout/helper.cxx
+diff -N toolkit/source/layout/helper.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/helper.cxx	14 Feb 2008 15:50:38 -0000	1.1.2.2
+@@ -0,0 +1,436 @@
++#include "helper.hxx"
++
++#include <assert.h>
++#include <list>
++#include <com/sun/star/awt/WindowAttribute.hpp>
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
++#include <tools/debug.hxx>
++
++#include "proplist.hxx"
++#include "layoutcore.hxx"
++
++#if TEST_LAYOUT && !defined( DBG_UTIL )
++#include <stdio.h>
++#undef DBG_ERROR
++#define DBG_ERROR printf
++#undef DBG_ERROR1
++#define DBG_ERROR1 printf
++#undef DBG_ERROR2
++#define DBG_ERROR2 printf
++#endif /* TEST_LAYOUT && !DBG_UTIL */
++
++namespace layoutimpl
++{
++using namespace com::sun::star;
++using rtl::OUString;
++
++uno::Reference< awt::XWindowPeer >
++getParent( uno::Reference< uno::XInterface > xRef )
++{
++    do
++    {
++        uno::Reference< awt::XWindowPeer > xPeer( xRef, uno::UNO_QUERY );
++        if ( xPeer.is() )
++            return xPeer;
++
++        uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
++        if ( xCont.is() )
++            xRef = xCont->getParent();
++    }
++    while ( xRef.is() );
++
++    return uno::Reference< awt::XWindowPeer >();
++}
++
++#if 0
++static uno::Reference< awt::XWindowPeer >
++getToplevel( uno::Reference< uno::XInterface > xRef )
++{
++    uno::Reference< awt::XWindowPeer > xTop, i;
++    while ( ( i = uno::Reference< awt::XWindowPeer >( xRef, uno::UNO_QUERY ) ).is() )
++    {
++        xTop = i;
++
++        uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
++        if ( xCont.is() )
++            xRef = xCont->getParent();
++        else
++            xRef = uno::Reference< awt::XWindowPeer >();
++    }
++
++    return xTop;
++}
++#endif
++
++}
++
++#include "dialogbuttonhbox.hxx"
++#include "bin.hxx"
++#include "box.hxx"
++#include "table.hxx"
++#include "flow.hxx"
++
++namespace layoutimpl
++{
++
++static uno::Reference< awt::XLayoutConstrains > ImplCreateWindow(
++    uno::Reference< uno::XInterface > xParent,
++    OUString aName, long WindowAttributes );
++
++uno::Reference< awt::XLayoutContainer >
++createContainer( const OUString &rName )
++{
++    uno::Reference< awt::XLayoutContainer > xPeer;
++
++    if ( rName.equalsAscii( "hbox" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new HBox() );
++    else if ( rName.equalsAscii( "vbox" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new VBox() );
++    else if ( rName.equalsAscii( "table" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new Table() );
++    else if ( rName.equalsAscii( "flow" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new Flow() );
++    else if ( rName.equalsAscii( "bin" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new Bin() );
++    else if ( rName.equalsAscii( "min-size" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new MinSize() );
++    else if ( rName.equalsAscii( "align" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new Align() );
++    else if ( rName.equalsAscii( "dialogbuttonhbox" ) )
++        xPeer = uno::Reference< awt::XLayoutContainer >( new DialogButtonHBox() );
++
++    return xPeer;
++}
++
++static uno::Reference< awt::XLayoutConstrains >
++createToolkitWidget( uno::Reference< awt::XToolkit > xToolkit,
++                     uno::Reference< uno::XInterface > xParent,
++                     const OUString &rName, long nProps )
++{
++    uno::Reference< awt::XLayoutConstrains > xPeer;
++    bool bToplevel = !xParent.is();
++
++    // UNO Control Widget
++    awt::WindowDescriptor desc;
++    if ( bToplevel )
++        desc.Type = awt::WindowClass_TOP;
++    else
++    {
++        desc.Type = awt::WindowClass_SIMPLE;
++
++        // top container -- a wrapper for framewindow -- is de-coupled
++        // from awt::XWindowPeer. So, getParent() fails at it.
++//            uno::Reference< awt::XWindowPeer > xWinParent = getParent( xParent );
++
++        uno::Reference< awt::XWindowPeer > xWinParent( xParent, uno::UNO_QUERY );
++
++        assert( xParent.is() );
++        assert( xWinParent.is() );
++        desc.Parent = xWinParent;
++    }
++
++    desc.ParentIndex = 0;
++    // debugging help ...
++    desc.Bounds.X = 0;
++    desc.Bounds.Y = 0;
++    desc.Bounds.Width = 300;
++    desc.Bounds.Height = 200;
++
++    desc.WindowAttributes = nProps;
++    desc.WindowServiceName = rName;
++
++    uno::Reference< awt::XWindowPeer > xWinPeer;
++    try
++    {
++        xWinPeer = xToolkit->createWindow( desc );
++        if ( !xWinPeer.is() )
++            throw uno::RuntimeException(
++                OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot create peer" ) ),
++                uno::Reference< uno::XInterface >() );
++        xPeer = uno::Reference< awt::XLayoutConstrains >( xWinPeer, uno::UNO_QUERY );
++    }
++    catch( uno::Exception &ex )
++    {
++        DBG_ERROR1( "Warning:  %s is not a recognized type", OUSTRING_CSTR( rName ) );
++        return uno::Reference< awt::XLayoutConstrains >();
++    }
++
++    // default to visible, let then people change it on properties
++    if ( ! bToplevel )
++    {
++        uno::Reference< awt::XWindow> xWindow( xPeer, uno::UNO_QUERY );
++        if ( xWindow.is() )
++            xWindow->setVisible( true );
++    }
++    return xPeer;
++}
++
++uno::Reference< awt::XLayoutConstrains >
++createWidget( uno::Reference< awt::XToolkit > xToolkit,
++              uno::Reference< uno::XInterface > xParent,
++              const OUString &rName, long nProps )
++{
++    uno::Reference< awt::XLayoutConstrains > xPeer;
++
++    xPeer = uno::Reference< awt::XLayoutConstrains >(
++        createContainer( rName ), uno::UNO_QUERY );
++    if ( xPeer.is() )
++        return xPeer;
++
++    xPeer = ImplCreateWindow( xParent, rName, nProps );
++    if ( xPeer.is() )
++        return xPeer;
++
++    xPeer = createInternalWidget( xToolkit, xParent, rName, nProps );
++    if ( xPeer.is() )
++        return xPeer;
++
++#if FIXED_INFO
++    OUString tName = rName;
++    // FIXME
++    if ( rName.equalsAscii( "fixedinfo" ) )
++        tName = OUString::createFromAscii( "fixedtext" );
++    xPeer = createToolkitWidget( xToolkit, xParent, tName, nProps );
++#else
++    xPeer = createToolkitWidget( xToolkit, xParent, rName, nProps );
++#endif
++    return xPeer;
++}
++
++PropHelper::PropHelper() : LockHelper()
++                         , cppu::OPropertySetHelper( maBrdcstHelper )
++                         , pHelper( NULL )
++{
++}
++
++void
++PropHelper::addProp (const char *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
++                     uno::Type aType, void *pPtr)
++{
++    // this sucks rocks for effiency ...
++    PropDetails aDetails;
++    aDetails.aName = rtl::OUString::intern( pName, nNameLen, e );
++    aDetails.aType = aType;
++    aDetails.pValue = pPtr;
++    maDetails.push_back( aDetails );
++}
++
++cppu::IPropertyArrayHelper & SAL_CALL
++PropHelper::getInfoHelper()
++{
++    if ( ! pHelper )
++    {
++        uno::Sequence< beans::Property > aProps( maDetails.size() );
++        for( unsigned int i = 0; i < maDetails.size(); i++)
++        {
++            aProps[i].Name = maDetails[i].aName;
++            aProps[i].Type = maDetails[i].aType;
++            aProps[i].Handle = i;
++            aProps[i].Attributes = 0;
++        }
++        pHelper = new cppu::OPropertyArrayHelper( aProps, false /* fixme: faster ? */ );
++
++    }
++    return *pHelper;
++}
++
++sal_Bool SAL_CALL
++PropHelper::convertFastPropertyValue(
++    uno::Any & rConvertedValue,
++    uno::Any & rOldValue,
++    sal_Int32 nHandle,
++    const uno::Any& rValue )
++    throw (lang::IllegalArgumentException)
++{
++    OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
++
++    // FIXME: no Any::getValue ...
++    getFastPropertyValue( rOldValue, nHandle );
++    if ( rOldValue != rValue )
++    {
++        rConvertedValue = rValue;
++        return sal_True; // changed
++    }
++    else
++    {
++        rConvertedValue.clear();
++        rOldValue.clear();
++    }
++    return sal_False;
++}
++
++
++void SAL_CALL
++PropHelper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
++                                              const uno::Any& rValue )
++    throw (uno::Exception)
++{
++    OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
++
++    const PropDetails &rInfo = maDetails[ nHandle ];
++
++    uno_type_assignData( rInfo.pValue, rInfo.aType.getTypeLibType(),
++                         rValue.pData, rValue.pType,
++                         0, 0, 0 );
++
++    if ( mpListener )
++        mpListener->propertiesChanged();
++}
++
++void SAL_CALL
++PropHelper::getFastPropertyValue( uno::Any& rValue,
++                                  sal_Int32 nHandle ) const
++{
++    OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
++    const PropDetails &rInfo = maDetails[ nHandle ];
++#if 0
++    switch ( rInfo.aType.getTypeClass() )
++    {
++#define MAP(classtype,ctype)                        \
++        case uno::TypeClass_##classtype:       \
++            rValue <<= *(ctype *)(rInfo.pValue);    \
++        break
++        MAP( DOUBLE, double );
++        MAP( SHORT, sal_Int16 );
++        MAP( LONG,  sal_Int32 );
++        MAP( UNSIGNED_SHORT, sal_uInt16 );
++        MAP( UNSIGNED_LONG, sal_uInt32 );
++        MAP( STRING, ::rtl::OUString );
++        default:
++            DBG_ERROR( "ERROR: unknown type to map!" );
++            break;
++    }
++#undef MAP
++#endif
++    rValue.setValue( rInfo.pValue, rInfo.aType );
++}
++
++::com::sun::star::uno::Any
++PropHelper::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
++{
++    return OPropertySetHelper::queryInterface( rType );
++}
++
++} // namespace layoutimpl
++
++#include "../awt/vclxdialog.hxx"
++#include "../awt/vclxfixedline.hxx"
++#include "../awt/vclxproxy.hxx"
++#include "../awt/vclxscroller.hxx"
++#include "../awt/vclxsplitter.hxx"
++#include "../awt/vclxtabcontrol.hxx"
++#include <toolkit/awt/vclxtoolkit.hxx>
++#include <toolkit/awt/vclxwindow.hxx>
++#include <vcl/dialog.hxx>
++#include <vcl/fixed.hxx>
++#include <vcl/tabctrl.hxx>
++#include <vcl/tabpage.hxx>
++
++namespace layoutimpl
++{
++
++uno::Reference< awt::XLayoutConstrains > ImplCreateWindow(
++    uno::Reference< uno::XInterface > xParent,
++    OUString aName, long WindowAttributes )
++{
++    VCLXWindow *pNewComp = NULL;
++    Window     *pNewWindow = NULL;
++    Window     *pParent = NULL;
++    uno::Reference< awt::XLayoutConstrains > xRef;
++
++    VCLXWindow* pParentComponent = VCLXWindow::GetImplementation( xParent );
++    if ( pParentComponent )
++        pParent = pParentComponent->GetWindow();
++
++    if ( aName.equalsAscii( "dialog" ) )
++    {
++        if ( pParent == NULL )
++            // DIALOG_NO_PARENT == 0xffff
++            // it would crash otherwise
++// FIXME: check for crash
++            pParent = DIALOG_NO_PARENT; /*DIALOG_NO_PARENT == 0xffff ?! :P*/
++        pNewWindow = new Dialog( pParent,
++                                 ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXDialog();
++
++        WindowAttributes ^= awt::WindowAttribute::SHOW;
++    }
++    else if ( aName.equalsAscii( "modaldialog" ) )
++    {
++        if ( pParent == NULL )
++            pParent = DIALOG_NO_PARENT;
++        pNewWindow = new ModalDialog( pParent,
++                                      ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXDialog();
++
++        WindowAttributes ^= awt::WindowAttribute::SHOW;
++    }
++    else if ( aName.equalsAscii( "tabcontrol" ) )
++    {
++        pNewWindow = new TabControl( pParent,
++                                     ImplGetWinBits( WindowAttributes, WINDOW_TABCONTROL ) );
++        pNewComp = new layoutimpl::VCLXTabControl();
++    }
++    else if ( aName.equalsAscii( "scroller" ) )
++    {
++        // used FixedImage because I just want some empty non-intrusive widget
++        pNewWindow = new FixedImage( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXScroller();
++    }
++    else if ( aName.equalsAscii( "hsplitter" ) || aName.equalsAscii( "vsplitter" ) )
++    {
++        pNewWindow = new FixedImage( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
++        pNewComp = new layoutimpl::VCLXSplitter( aName.equalsAscii( "hsplitter" ) );
++    }
++    else if ( aName.equalsAscii( "hfixedline" ) || aName.equalsAscii( "vfixedline" ) )
++    {
++        WinBits nStyle = ImplGetWinBits( WindowAttributes, 0 );
++        nStyle ^= WB_HORZ;
++        if ( aName.equalsAscii( "hfixedline" ) )
++            nStyle |= WB_HORZ;
++        else
++            nStyle |= WB_VERT;
++        pNewWindow = new FixedLine( pParent, nStyle );
++        pNewComp = new layoutimpl::VCLXFixedLine();
++    }
++
++    if ( !pNewWindow )
++        return xRef;
++
++    pNewWindow->SetCreatedWithToolkit( sal_True );
++    pNewComp->SetCreatedWithToolkit( TRUE );
++    xRef = pNewComp;
++    pNewWindow->SetComponentInterface( pNewComp );
++    if ( WindowAttributes & awt::WindowAttribute::SHOW )
++        pNewWindow->Show();
++
++    return xRef;
++}
++
++} // namespace layoutimpl
++
++// Avoid polluting the rest of the code with vcl linkage pieces ...
++
++#include <vcl/imagerepository.hxx>
++#include <vcl/bitmapex.hxx>
++#include <vcl/graph.hxx>
++
++namespace layoutimpl
++{
++
++uno::Reference< graphic::XGraphic > loadGraphic( const char *pName )
++{
++    BitmapEx aBmp;
++
++    OUString aStr( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US );
++    if ( aStr.compareToAscii( ".uno:" ) == 0 )
++        aStr = aStr.copy( 5 ).toAsciiLowerCase();
++
++    if ( !vcl::ImageRepository::loadImage( OUString::createFromAscii( pName ), aBmp, true ) )
++        return uno::Reference< graphic::XGraphic >();
++
++    return Graphic( aBmp ).GetXGraphic();
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/helper.hxx
+===================================================================
+RCS file: toolkit/source/layout/helper.hxx
+diff -N toolkit/source/layout/helper.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/helper.hxx	12 Feb 2008 11:05:46 -0000	1.1.2.2
+@@ -0,0 +1,123 @@
++#ifndef HELPER_HXX
++#define HELPER_HXX
++
++#include <toolkit/dllapi.h>
++#include <vector>
++
++#include <com/sun/star/awt/XLayoutConstrains.hpp>
++#include <com/sun/star/awt/XLayoutContainer.hpp>
++#include <com/sun/star/awt/XVclWindowPeer.hpp>
++#include <com/sun/star/xml/input/XRoot.hpp>
++#include <cppuhelper/implbase1.hxx>
++#include <cppuhelper/propshlp.hxx>
++#include <rtl/ustring.hxx>
++
++namespace layoutimpl
++{
++
++namespace css = ::com::sun::star;
++
++/* ChildProps -- a helper to set child properties for the XLayoutContainer interface. */
++
++class LockHelper
++{
++public:
++    osl::Mutex               maGuard;
++    cppu::OBroadcastHelper maBrdcstHelper;
++    LockHelper() : maBrdcstHelper( maGuard )
++    {
++    }
++};
++
++class PropHelper : public LockHelper
++                 , public cppu::OPropertySetHelper
++                 , public cppu::OWeakObject
++{
++    cppu::OPropertyArrayHelper *pHelper;
++
++    struct PropDetails
++    {
++        rtl::OUString  aName;
++        css::uno::Type aType;
++        void          *pValue;
++    };
++    std::vector< PropDetails > maDetails;
++
++protected:
++    void addProp( char const *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
++                  css::uno::Type aType, void *pPtr );
++
++public:
++    PropHelper();
++
++    // com::sun::star::uno::XInterface
++    void SAL_CALL acquire() throw() { OWeakObject::acquire(); }
++    void SAL_CALL release() throw() { OWeakObject::release(); }
++    ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
++
++    // cppu::OPropertySetHelper
++    virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
++    virtual sal_Bool SAL_CALL convertFastPropertyValue( css::uno::Any &,
++                                                        css::uno::Any &, sal_Int32 nHandle, const css::uno::Any & )
++        throw(css::lang::IllegalArgumentException);
++    virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
++                                                            const css::uno::Any& rValue ) throw (css::uno::Exception);
++    virtual void SAL_CALL getFastPropertyValue( css::uno::Any& rValue,
++                                                sal_Int32 nHandle ) const;
++
++    // you -must- use this macro in sub-classes that define new properties.
++    // NB. 'static' ...
++    // com::sun::star::beans::XMultiPropertySet
++#define PROPHELPER_SET_INFO \
++    css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL \
++    getPropertySetInfo() throw(css::uno::RuntimeException) \
++    { \
++        static css::uno::Reference< css::beans::XPropertySetInfo > xInfo( \
++            createPropertySetInfo( getInfoHelper() ) ); \
++        return xInfo; \
++    }
++    PROPHELPER_SET_INFO
++
++    struct Listener
++    {
++        virtual void propertiesChanged() = 0;
++    };
++    void setChangeListener( Listener *pListener )
++    {
++        mpListener = pListener;
++    }
++
++protected:
++    Listener *mpListener;
++};
++
++css::uno::Any anyFromString (const rtl::OUString &value, const css::uno::Type &type);
++
++// The native widgets wrapper hierarchy may not reflect that of the layout
++// hierarchy as some containers don't have an associated native widget.
++// Use this function to get the native parent of the given peer.
++css::uno::Reference< css::awt::XWindowPeer >
++getParent( css::uno::Reference< css::uno::XInterface > xPeer );
++
++
++struct WidgetFactory
++{
++    virtual css::uno::Reference< css::awt::XLayoutConstrains >
++    createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++                  css::uno::Reference< css::uno::XInterface > xParent,
++                  const rtl::OUString &rName, long nProps );
++};
++
++// A local factory method - should use UNO services in due course
++css::uno::Reference< css::awt::XLayoutConstrains > TOOLKIT_DLLPUBLIC
++createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++              css::uno::Reference< css::uno::XInterface > xParent,
++              const rtl::OUString &rName, long nProps );
++
++// Factory for containers (not visible ones)
++css::uno::Reference< css::awt::XLayoutContainer >
++createContainer( const rtl::OUString &rName );
++
++} // namespace layoutimpl
++
++#endif /* HELPER_HXX */
+Index: toolkit/source/layout/import.cxx
+===================================================================
+RCS file: toolkit/source/layout/import.cxx
+diff -N toolkit/source/layout/import.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/import.cxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,208 @@
++#include "import.hxx"
++
++#include <com/sun/star/awt/XButton.hpp>
++#include <com/sun/star/awt/XDialog2.hpp>
++#include <tools/debug.hxx>
++
++#include "root.hxx"
++#include "helper.hxx"
++#include "dialogbuttonhbox.hxx"
++
++
++#define XMLNS_LAYOUT_URI    "http://openoffice.org/2007/layout"
++#define XMLNS_CONTAINER_URI "http://openoffice.org/2007/layout/container"
++
++namespace layoutimpl
++{
++using namespace css;
++
++using ::rtl::OUString;
++
++ElementBase::~ElementBase()
++SAL_THROW( () )
++{
++    //delete mpImport;
++    //mpImport = 0;
++}
++
++//** parser
++WidgetElement::WidgetElement ( sal_Int32 nUid, const OUString &rName,
++                               uno::Reference <xml::input::XAttributes> const &attributes,
++                               ElementBase *pParent,
++                               ImportContext *pImport)
++SAL_THROW (())
++: ElementBase( nUid, rName, attributes, pParent, pImport )
++{
++    OUString name = rName.toAsciiLowerCase();
++
++    PropList aProps;
++    propsFromAttributes( attributes, aProps, pImport->XMLNS_LAYOUT_UID );
++
++    OUString aId;
++    findAndRemove( "id", aProps, aId );
++    OUString aLang;
++    findAndRemove( "xml-lang", aProps, aLang );
++
++    {
++//DEBUG
++        uno::Reference< awt::XLayoutConstrains > xParent;
++        if ( pParent )
++            xParent = ((WidgetElement *) pParent)->mpWidget->getPeer();
++
++
++        mpWidget = pImport->mrRoot.create( aId, name,
++                                           getAttributeProps( aProps ), uno::Reference< awt::XLayoutContainer >( xParent, uno::UNO_QUERY ) );
++
++    }
++
++    // TODO: handle with non-existing widgets
++
++    mpWidget->setProperties( aProps );
++
++    uno::Reference< awt::XDialog2 > xDialog( mpWidget->getPeer(), uno::UNO_QUERY );
++    if ( xDialog.is() )
++    {
++        OUString aTitle;
++        if ( findAndRemove( "title", aProps, aTitle ) )
++            xDialog->setTitle( aTitle );
++    } // DEBUG:
++    else if ( pParent == NULL )
++    {
++        DBG_ERROR( "Fatal error: top node isn't a dialog" );
++    }
++
++    bool bOrdering;
++    OUString aOrdering;
++    bOrdering = findAndRemove( "ordering", aProps, aOrdering );
++    if ( DialogButtonHBox *b = dynamic_cast<DialogButtonHBox *> ( mpWidget->getPeer().get() ) )
++    {
++        if ( bOrdering )
++            b->setOrdering ( aOrdering );
++    }
++
++#ifdef IMPORT_RADIOGROUP
++    bool bSetRadioGroup, bSetTitle;
++    OUString aRadioGroup, aTitle;
++    bSetRadioGroup = findAndRemove( "radiogroup", aProps, aRadioGroup );
++    bSetTitle = findAndRemove( "title", aProps, aTitle );
++
++    setProperties( mxPeer, aProps );
++
++    // we need to add radio buttons to the group after their properties are
++    // set, so we can check if they should be the one selected by default or not.
++    // And the state changed event isn't fired when changing properties.
++    if ( bSetRadioGroup )
++    {
++        static int i = 0;
++        i++;
++        uno::Reference< awt::XRadioButton > xRadio( mxPeer, uno::UNO_QUERY );
++        if ( xRadio.is() )
++            pImport->mxRadioGroups.addItem( aRadioGroup, xRadio );
++    }
++    if ( bSetTitle )
++    {
++        uno::Reference< awt::XDialog2 > xDialog( mxPeer, uno::UNO_QUERY );
++        if ( xDialog.is() )
++            xDialog->setTitle( aTitle );
++    }
++#endif
++}
++
++WidgetElement::~WidgetElement()
++{
++    //delete mpWidget;
++    //mpWidget = 0;
++}
++
++uno::Reference <xml::input::XElement>
++WidgetElement::startChildElement ( sal_Int32 nUid, OUString const &name,
++                                   uno::Reference <xml::input::XAttributes> const &attributes )
++    throw( xml::sax::SAXException, uno::RuntimeException )
++{
++    // Adding a child to the widget
++    WidgetElement *pChild = new WidgetElement ( nUid, name, attributes, this, mpImport );
++
++    if ( !mpWidget->addChild( pChild->mpWidget ) )
++    {
++        DBG_ERROR2( "ERROR: cannot add %s to container %s, container full", OUSTRING_CSTR( name ), OUSTRING_CSTR( getLocalName() ) );
++        throw xml::sax::SAXException();
++    }
++
++    PropList aProps;
++    propsFromAttributes( attributes, aProps, mpImport->XMLNS_CONTAINER_UID );
++    mpWidget->setChildProperties( pChild->mpWidget, aProps );
++
++    return pChild;
++}
++
++// Support Ivo Hinkelmann's move label/text/title attribute to CONTENT
++// transex3 hack.
++void SAL_CALL
++WidgetElement::characters( OUString const& rChars )
++    throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++{
++    if ( mpWidget && rChars.trim().getLength() )
++    {
++        uno::Reference< awt::XDialog2 > xDialog( mpWidget->getPeer(), uno::UNO_QUERY );
++        uno::Reference< awt::XButton > xButton( mpWidget->getPeer(), uno::UNO_QUERY );
++        if ( xDialog.is() )
++            xDialog->setTitle( rChars );
++        else if ( xButton.is() )
++            mpWidget->setProperty( OUString::createFromAscii( "label" ), rChars );
++        else
++            mpWidget->setProperty( OUString::createFromAscii( "text" ), rChars );
++    }
++}
++// ---- ElementBase ----
++
++ElementBase::ElementBase( sal_Int32 nUid, OUString const & rLocalName,
++                          uno::Reference< xml::input::XAttributes > const & xAttributes,
++                          ElementBase* pParent,
++                          ImportContext* pImport )
++SAL_THROW(())
++: mpImport( pImport )
++    , mpParent( pParent )
++    , mnUid( nUid )
++    , maLocalName( rLocalName )
++    , mxAttributes( xAttributes )
++{
++}
++
++// ---- ImportContext ----
++
++void ImportContext::startDocument(
++    uno::Reference< xml::input::XNamespaceMapping > const & xNamespaceMapping )
++    throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    XMLNS_LAYOUT_UID = xNamespaceMapping->getUidByUri(
++        OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_LAYOUT_URI ) ) );
++    XMLNS_CONTAINER_UID = xNamespaceMapping->getUidByUri(
++        OUString( RTL_CONSTASCII_USTRINGPARAM( XMLNS_CONTAINER_URI ) ) );
++}
++
++ToplevelElement::ToplevelElement (OUString const &rName,
++                                  uno::Reference <xml::input::XAttributes> const &xAttributes,
++                                  ImportContext *pImport)
++SAL_THROW(())
++: WidgetElement( 0, rName, xAttributes, NULL, pImport )
++{
++}
++
++ToplevelElement::~ToplevelElement()
++{
++}
++
++uno::Reference< xml::input::XElement > ImportContext::startRootElement(
++    sal_Int32 nUid, OUString const & rLocalName,
++    uno::Reference< xml::input::XAttributes > const & xAttributes )
++    throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    if (XMLNS_LAYOUT_UID != nUid)
++        throw xml::sax::SAXException(
++            OUString( RTL_CONSTASCII_USTRINGPARAM( "invalid namespace!" ) ),
++            uno::Reference< uno::XInterface >(), uno::Any() );
++    else
++        return new ToplevelElement( rLocalName, xAttributes, this );
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/import.hxx
+===================================================================
+RCS file: toolkit/source/layout/import.hxx
+diff -N toolkit/source/layout/import.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/import.hxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,283 @@
++#ifndef IMPORT_HXX
++#define IMPORT_HXX
++
++#include <map>
++#include <list>
++#include <hash_map>
++
++#include <com/sun/star/xml/input/XRoot.hpp>
++#include <cppuhelper/implbase1.hxx>
++
++namespace layoutimpl
++{
++class LayoutRoot;
++class LayoutWidget;
++namespace css = ::com::sun::star;
++
++/* blocks under IMPORT_RADIOGROUP are marked for deletion.
++   The use of it is to synchronize radio buttons into groups.
++   But toolkit doesn't fire toggle events when toggled from the code.
++   Another approach is to implement our own XRadioButton from our
++   internal toolkit. We could have some singleton where they would
++   register... We would need to add another attribute...
++*/
++
++#ifdef IMPORT_RADIOGROUP
++#include <com/sun/star/awt/XRadioButton.hpp>
++class RadioGroups
++{
++public:
++    RadioGroups()
++    {
++    }
++
++    void addItem( rtl::OUString id, css::uno::Reference< css::awt::XRadioButton > xRadio )
++        throw (css::uno::RuntimeException)
++    {
++        if ( ! xRadio.is() )
++            throw css::uno::RuntimeException();
++
++        css::uno::Reference< RadioGroup > group;
++        RadioGroupsMap::iterator it = mxRadioGroups.find( id );
++        if ( it == mxRadioGroups.end() )
++        {
++            group = css::uno::Reference< RadioGroup > ( new RadioGroup() );
++            mxRadioGroups [id] = group;
++        }
++        else
++            group = it->second;
++        group->addItem( xRadio );
++    }
++
++private:
++    class RadioGroup : public ::cppu::WeakImplHelper1< css::awt::XItemListener >
++    {
++    public:
++        RadioGroup()
++        {
++        }
++
++        void addItem( css::uno::Reference< css::awt::XRadioButton > xRadio )
++        {
++            if ( ! mxSelectedRadio.is() )
++            {
++                xRadio->setState( true );
++                mxSelectedRadio = xRadio;
++            }
++            else if ( xRadio->getState() )
++            {
++                mxSelectedRadio->setState( false );
++                mxSelectedRadio = xRadio;
++            }
++
++            xRadio->addItemListener( this );
++            mxRadios.push_back (xRadio);
++        }
++
++    private:
++        typedef std::list< css::uno::Reference< css::awt::XRadioButton > > RadioButtonsList;
++        RadioButtonsList mxRadios;
++        css::uno::Reference< css::awt::XRadioButton > mxSelectedRadio;
++
++        // awt::XItemListener
++        void itemStateChanged( const com::sun::star::awt::ItemEvent& e)
++            throw (css::uno::RuntimeException)
++        {
++            if ( e.Selected )
++            {
++                mxSelectedRadio->setState( false );
++                // the only radio button selected would be the one that fired the event
++                for( RadioButtonsList::iterator it = mxRadios.begin(); it != mxRadios.end(); it++ )
++                    if ( (*it)->getState() )
++                    {
++                        mxSelectedRadio = *it;
++                        break;
++                    }
++            }
++        }
++
++        // lang::XEventListener
++        void SAL_CALL disposing( const css::lang::EventObject& )
++            throw (css::uno::RuntimeException)
++        {
++        }
++    };
++
++    // each RadioGroup will stay alive after RadioGroups die with the ImportContext
++    // because they are referenced by every XRadioButton through the listener
++    typedef std::map< rtl::OUString, css::uno::Reference< RadioGroup > > RadioGroupsMap;
++    RadioGroupsMap mxRadioGroups;
++};
++#endif
++
++#if 0
++// generator
++class Widget
++{
++public:
++    Widget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++            css::uno::Reference< css::awt::XWindow > xToplevel,
++            rtl::OUString unoName, long attrbs );
++    virtual ~Widget();
++
++    virtual void setProperties( const PropList &rProps );
++
++    virtual bool addChild( Widget *pChild );
++    virtual void setChildProperties( Widget *pChild, const PropList &rProps );
++
++    inline css::uno::Reference< css::awt::XLayoutConstrains > getPeer()
++    { return mxWidget; }
++
++    inline css::uno::Reference< css::awt::XLayoutConstrains > getContainer()
++    { return mxContainer; }
++
++protected:
++    css::uno::Reference< css::awt::XLayoutConstrains > mxWidget;
++    css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
++};
++
++class Root
++{
++public:
++    Root( css::uno::Reference< css::awt::XToolkit > xToolkit )
++        : mxToolkit( xToolkit ) {}
++    ~Root();
++
++    virtual Widget *create( rtl::OUString id, const rtl::OUString unoName, long attrbs );
++
++    css::uno::Reference< css::awt::XLayoutConstrains > getById( rtl::OUString id );
++    inline css::uno::Reference< css::awt::XLayoutConstrains > getToplevel();
++
++protected:
++    css::uno::Reference< css::awt::XToolkit > mxToolkit;
++    Widget *mpToplevel;
++
++    typedef std::hash_map< rtl::OUString, css::uno::Reference< css::awt::XLayoutConstrains >,
++                           rtl::OUStringHash > ItemHash;
++    ItemHash maItems;
++};
++#endif
++
++// parser
++class ImportContext : public ::cppu::WeakImplHelper1< css::xml::input::XRoot >
++{
++public:
++    sal_Int32 XMLNS_LAYOUT_UID, XMLNS_CONTAINER_UID;
++    LayoutRoot &mrRoot; // switch to XNameContainer ref ?
++#ifdef IMPORT_RADIOGROUP
++    RadioGroups mxRadioGroups;
++#endif
++
++    inline ImportContext( LayoutRoot &rRoot ) SAL_THROW( () )
++        : mrRoot( rRoot ) {}
++    virtual ~ImportContext() {}
++
++    // XRoot
++    virtual void SAL_CALL startDocument(
++        css::uno::Reference< css::xml::input::XNamespaceMapping >
++        const & xNamespaceMapping )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException);
++    virtual void SAL_CALL endDocument()
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++    virtual void SAL_CALL processingInstruction(
++        ::rtl::OUString const & /* rTarget */, ::rtl::OUString const & /* rData */ )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++    virtual void SAL_CALL setDocumentLocator(
++        css::uno::Reference< css::xml::sax::XLocator > const & /* xLocator */ )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++    virtual css::uno::Reference< css::xml::input::XElement >
++    SAL_CALL startRootElement(
++        sal_Int32 nUid, ::rtl::OUString const & rLocalName,
++        css::uno::Reference<css::xml::input::XAttributes > const & xAttributes )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException);
++};
++
++class ElementBase : public ::cppu::WeakImplHelper1< css::xml::input::XElement >
++{
++protected:
++    ImportContext *mpImport;
++/* TODO: check if all this memebers are needed. */
++    ElementBase   *mpParent;
++    sal_Int32      mnUid;
++
++    ::rtl::OUString maLocalName;
++    css::uno::Reference< css::xml::input::XAttributes > mxAttributes;
++public:
++    ElementBase(
++        sal_Int32 nUid, ::rtl::OUString const & rLocalName,
++        css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
++        ElementBase * pParent, ImportContext * pImport )
++    SAL_THROW( () );
++    virtual ~ElementBase() SAL_THROW(());
++
++    // XElement
++    virtual css::uno::Reference<css::xml::input::XElement> SAL_CALL getParent()
++        throw (css::uno::RuntimeException)
++    { return static_cast< css::xml::input::XElement * >( mpParent ); }
++    virtual ::rtl::OUString SAL_CALL getLocalName() throw (css::uno::RuntimeException)
++    { return maLocalName; }
++    virtual sal_Int32 SAL_CALL getUid() throw (css::uno::RuntimeException)
++    { return mnUid; }
++    virtual css::uno::Reference< css::xml::input::XAttributes >
++    SAL_CALL getAttributes() throw (css::uno::RuntimeException)
++    { return mxAttributes; }
++
++    virtual void SAL_CALL ignorableWhitespace(
++        ::rtl::OUString const & /* rWhitespaces */ )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++    virtual void SAL_CALL characters( ::rtl::OUString const & /* rChars */ )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++    virtual void SAL_CALL processingInstruction(
++        ::rtl::OUString const & /* Target */, ::rtl::OUString const & /* Data */ )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++
++    virtual css::uno::Reference< css::xml::input::XElement >
++    SAL_CALL startChildElement(
++        sal_Int32 nUid, ::rtl::OUString const & rLocalName,
++        css::uno::Reference<css::xml::input::XAttributes > const & xAttributes )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException) = 0;
++    virtual void SAL_CALL endElement()
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException)
++    { /* ignore */ }
++};
++
++class WidgetElement : public ElementBase
++{
++protected:
++    LayoutWidget *mpWidget;
++
++public:
++    WidgetElement( sal_Int32 nUid, rtl::OUString const &name,
++                   css::uno::Reference< css::xml::input::XAttributes > const &attributes,
++                   ElementBase *parent, ImportContext *import ) SAL_THROW (());
++
++    ~WidgetElement();
++
++
++    virtual css::uno::Reference< css::xml::input::XElement> SAL_CALL
++    startChildElement (sal_Int32 id, rtl::OUString const &name,
++                       css::uno::Reference< css::xml::input::XAttributes > const &attributes)
++        throw( css::xml::sax::SAXException, css::uno::RuntimeException );
++    virtual void SAL_CALL characters( ::rtl::OUString const & /* rChars */ )
++        throw (css::xml::sax::SAXException, css::uno::RuntimeException);
++};
++
++class ToplevelElement : public WidgetElement
++{
++public:
++    ToplevelElement( rtl::OUString const &name,
++                     css::uno::Reference< css::xml::input::XAttributes > const &attributes,
++                     ImportContext *import ) SAL_THROW (());
++    ~ToplevelElement();
++};
++
++
++} // namespace layoutimpl
++
++#endif /* IMPORT_HXX */
+Index: toolkit/source/layout/makefile.mk
+===================================================================
+RCS file: toolkit/source/layout/makefile.mk
+diff -N toolkit/source/layout/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/makefile.mk	15 Feb 2008 09:56:41 -0000	1.1.2.3
+@@ -0,0 +1,53 @@
++PRJ=..$/..
++PRJNAME=toolkit
++TARGET=layoutcore
++ENABLE_EXCEPTIONS=true
++TARGETTYPE=GUI
++
++.INCLUDE : settings.mk
++.INCLUDE : $(PRJ)$/util$/makefile.pmk
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++.IF "$(COMNAME)" == "gcc3"
++CFLAGS+=-I../$(PRJ)/xmlscript/source
++CFLAGS+=-Wall -Wno-non-virtual-dtor
++.ENDIF
++
++##CFLAGS += -DENABLE_LAYOUT=1
++
++CXXFILES= \
++	bin.cxx \
++	box.cxx \
++	byteseq.cxx \
++	container.cxx \
++	dialogbuttonhbox.cxx \
++	factory.cxx \
++	flow.cxx \
++	helper.cxx \
++	import.cxx \
++	proplist.cxx \
++	root.cxx \
++	table.cxx \
++	timer.cxx \
++	translate.cxx
++
++SLOFILES= \
++	$(SLO)$/bin.obj \
++	$(SLO)$/box.obj \
++	$(SLO)$/byteseq.obj \
++	$(SLO)$/container.obj \
++	$(SLO)$/dialogbuttonhbox.obj \
++	$(SLO)$/factory.obj \
++	$(SLO)$/flow.obj \
++	$(SLO)$/helper.obj \
++	$(SLO)$/import.obj \
++	$(SLO)$/proplist.obj \
++	$(SLO)$/root.obj \
++	$(SLO)$/table.obj \
++	$(SLO)$/timer.obj \
++	$(SLO)$/translate.obj
++
++.ENDIF # ENABLE_LAYOUT == "TRUE"
++
++.INCLUDE : target.mk
+Index: toolkit/source/layout/precompiled_xmlscript.hxx
+===================================================================
+RCS file: toolkit/source/layout/precompiled_xmlscript.hxx
+diff -N toolkit/source/layout/precompiled_xmlscript.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/precompiled_xmlscript.hxx	15 Feb 2008 09:56:41 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++/*
++  xmlscript/source/xml_helper/xml_byteseq.cxx compile helper.
++
++  Avoid introducing a toolkit dependency on xmlscript.
++
++  It would be nice to modify xml_byteseq.cxx making it friendlier
++  to include.
++*/
+Index: toolkit/source/layout/proplist.cxx
+===================================================================
+RCS file: toolkit/source/layout/proplist.cxx
+diff -N toolkit/source/layout/proplist.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/proplist.cxx	12 Feb 2008 11:05:46 -0000	1.1.2.2
+@@ -0,0 +1,423 @@
++#include "proplist.hxx"
++
++#include <rtl/ustrbuf.hxx>
++#include <toolkit/dllapi.h>
++#include <com/sun/star/awt/WindowAttribute.hpp>
++#include <com/sun/star/beans/XPropertySet.hpp>
++#include <com/sun/star/awt/XVclWindowPeer.hpp>
++#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
++#include <tools/debug.hxx>
++
++#if TEST_LAYOUT && !defined( DBG_UTIL )
++#include <stdio.h>
++#undef DBG_ERROR
++#define DBG_ERROR printf
++#undef DBG_ERROR1
++#define DBG_ERROR1 printf
++#undef DBG_ERROR2
++#define DBG_ERROR2 printf
++#endif /* TEST_LAYOUT && !DBG_UTIL */
++
++namespace layoutimpl
++{
++
++using namespace com::sun::star;
++using rtl::OString;
++using rtl::OUString;
++using rtl::OUStringBuffer;
++
++namespace prophlp
++{
++
++bool TOOLKIT_DLLPUBLIC
++canHandleProps( const uno::Reference< uno::XInterface > &xPeer )
++{
++    uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
++    if ( xPropSet.is() )
++        return true;
++    uno::Reference< beans::XPropertySetInfo > xInfo( xPeer, uno::UNO_QUERY );
++    uno::Reference< awt::XVclWindowPeer> xVclPeer( xPeer, uno::UNO_QUERY );
++    return xInfo.is() && xVclPeer.is();
++}
++
++uno::Reference< beans::XPropertySetInfo > TOOLKIT_DLLPUBLIC
++queryPropertyInfo(
++    const uno::Reference< uno::XInterface > &xPeer )
++{
++    uno::Reference< beans::XPropertySetInfo > xInfo( xPeer, uno::UNO_QUERY );
++    if ( !xInfo.is() )
++    {
++        uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
++        if ( xPropSet.is() )
++            xInfo = xPropSet->getPropertySetInfo();
++    }
++    return xInfo;
++}
++
++void TOOLKIT_DLLPUBLIC
++setProperty( const uno::Reference< uno::XInterface > &xPeer,
++                  const OUString &rName, uno::Any aValue )
++{
++    uno::Reference< awt::XVclWindowPeer> xVclPeer( xPeer, uno::UNO_QUERY );
++    if ( xVclPeer.is() )
++        xVclPeer->setProperty( rName, aValue );
++    else
++    {
++        uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
++        xPropSet->setPropertyValue( rName, aValue );
++    }
++}
++
++uno::Any TOOLKIT_DLLPUBLIC
++getProperty( const uno::Reference< uno::XInterface > &xPeer,
++                      const OUString &rName )
++{
++    uno::Reference< awt::XVclWindowPeer> xVclPeer( xPeer, uno::UNO_QUERY );
++    if ( xVclPeer.is() )
++        return xVclPeer->getProperty( rName );
++
++    uno::Reference< beans::XPropertySet > xPropSet( xPeer, uno::UNO_QUERY );
++    return xPropSet->getPropertyValue( rName );
++}
++
++} // namespace prophlp
++
++
++/* Given a string and a type, it converts the string to the type, and returns
++   it encapsulated in Any. */
++uno::Any anyFromString( const OUString &value, const uno::Type &type )
++{
++    switch ( type.getTypeClass() )
++    {
++        case uno::TypeClass_CHAR:
++            return uno::makeAny( value.toChar() );
++        case uno::TypeClass_BOOLEAN:
++            if ( value == OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) ) )
++                return uno::makeAny( true );
++            else if ( value == OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) ) )
++                return uno::makeAny( false );
++            break;  // ends switch, throws exception
++        case uno::TypeClass_BYTE:
++            return uno::makeAny( ( sal_uInt8 ) value.toInt32() );
++        case uno::TypeClass_SHORT:
++            return uno::makeAny( ( sal_Int16 ) value.toInt32() );
++        case uno::TypeClass_UNSIGNED_SHORT:
++            return uno::makeAny( ( sal_uInt16 ) value.toInt32() );
++        case uno::TypeClass_ENUM:
++            return uno::makeAny( ( sal_Int16 ) value.toInt32() );
++        case uno::TypeClass_LONG:
++            return uno::makeAny( ( sal_Int32 ) value.toInt32() );
++        case uno::TypeClass_UNSIGNED_LONG:
++            return uno::makeAny( ( sal_uInt32 ) value.toInt32() );
++        case uno::TypeClass_HYPER:
++            return uno::makeAny( ( sal_Int64 ) value.toInt64() );
++        case uno::TypeClass_UNSIGNED_HYPER:
++            return uno::makeAny( ( sal_uInt16 ) value.toInt64() );
++        case uno::TypeClass_FLOAT:
++            return uno::makeAny( value.toFloat() );
++        case uno::TypeClass_DOUBLE:
++            return uno::makeAny( value.toDouble() );
++        case uno::TypeClass_STRING:
++            return uno::makeAny( value );
++        case uno::TypeClass_CONSTANT:
++            if ( value.getLength() > 2 && value[0] == '0' && value[1] == 'x' )
++                return uno::makeAny( value.copy( 2 ).toInt32( 16 ) );
++            return uno::makeAny( value.toInt32() );
++        case uno::TypeClass_SEQUENCE:
++        {
++            sal_Int32 i = 0;
++            bool escaped = false, first = true;
++            OUString item, token;
++            std::list< OUString > values;
++            do
++            {
++                token = value.getToken( 0, ':', i );
++
++                if ( !token.getLength() && !escaped )
++                {
++                    escaped = true;
++                    item += OUString( ':' );
++                }
++                else if ( escaped )
++                {
++                    escaped = false;
++                    item += token;
++                }
++                else
++                {
++                    if ( !first )
++                        values.push_back( item );
++                    item = token;
++                }
++                first = false;
++            }
++            while ( i >= 0 );
++            if ( item.getLength() )
++                values.push_back( item );
++
++            uno::Sequence< OUString > seq( values.size() );
++            i = 0;
++            for( std::list< OUString >::const_iterator it = values.begin();
++                 it != values.end(); it++, i++ )
++                seq[ i ] = *it;
++
++            return uno::makeAny( seq );
++        }
++        break;
++
++        default:
++            DBG_ERROR1( "ERROR: unknown property type of value: `%s'", OUSTRING_CSTR( value ) );
++            break;
++    }
++    throw uno::RuntimeException();
++}
++
++/* Converts the XML naming scheme to UNO's, for legacy compatibility
++   (so, ergo, "one-two-three-four" -> "OneTwoThreeFour"). */
++static OUString toUnoNaming ( OUString const &string )
++{
++    OUStringBuffer buffer( string.getLength() );
++    sal_Unicode *str = string.pData->buffer;
++    bool capitalize = true;
++
++    for ( int i = 0; i < string.getLength(); i++ )
++    {
++        if ( i == 0 && str[0] == '_' )
++            /* Skip translate-me prefix.  */
++            continue;
++        if ( str[i] == '-' )
++            capitalize = true;
++        else
++        {
++            if ( capitalize && str[i] >= 'a' && str[i] <= 'z' )
++                buffer.append( (sal_Unicode ) ( str[i] - 'a' + 'A' ) );
++            else
++                buffer.append( (sal_Unicode ) str[i] );
++            capitalize = false;
++        }
++    }
++
++    return buffer.makeStringAndClear();
++}
++
++/*
++ * convert incoming XML style property names, to AWT style property names.
++ * convert the values based on introspection information.
++ * apply to either an XPropertySet or an XPropertySetInfo | XVclWindowPeer
++ * aggregate.
++ */
++void
++setProperties( uno::Reference< uno::XInterface > const& xPeer,
++               PropList const& rProps )
++{
++    if ( !prophlp::canHandleProps( xPeer ) )
++    {
++        DBG_ERROR( "Error: setProperties - bad handle ignoring props:" );
++        PropList::const_iterator cur;
++        for( cur = rProps.begin(); cur != rProps.end(); cur++ )
++        {
++            OString attr = OUStringToOString( cur->first, RTL_TEXTENCODING_UTF8 );
++            OString value = OUStringToOString( cur->second, RTL_TEXTENCODING_UTF8 );
++        }
++        return;
++    }
++
++    PropList::const_iterator cur;
++    for( cur = rProps.begin(); cur != rProps.end(); cur++ )
++        setProperty( xPeer, cur->first, cur->second );
++}
++
++void
++setProperty( uno::Reference< uno::XInterface > const& xPeer,
++             OUString const& attr, OUString const& value )
++{
++    OUString unoAttr = toUnoNaming( attr );
++
++    // get a Property object
++    beans::Property prop;
++    try
++    {
++        uno::Reference< beans::XPropertySetInfo > xInfo
++            = prophlp::queryPropertyInfo( xPeer );
++        prop = xInfo->getPropertyByName( unoAttr );
++    }
++    catch( beans::UnknownPropertyException &ex )
++    {
++        DBG_ERROR1( "Warning: unknown attribute: `%s'", OUSTRING_CSTR( unoAttr ) );
++        return;
++    }
++
++    if ( prop.Name.getLength() <= 0 )
++    {
++        DBG_ERROR1( "Warning: missing prop: `%s'", OUSTRING_CSTR( unoAttr ) );
++        return;
++    }
++
++    // encapsulates value in an uno::Any
++    uno::Any any;
++    try
++    {
++        any = anyFromString( value, prop.Type );
++    }
++    catch( uno::RuntimeException &ex )
++    {
++        DBG_ERROR5( "Warning: %s( %s )( %s ) attribute is of type %s( rejected: %s )", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ), OUSTRING_CSTR( prop.Name ),  OUSTRING_CSTR( prop.Type.getTypeName() ), OUSTRING_CSTR( value ) );
++        return;
++    }
++
++    // sets value on property
++    try
++    {
++        prophlp::setProperty( xPeer, unoAttr, any );
++    }
++    catch( ... )
++    {
++        DBG_ERROR2( "Warning: cannot set attribute %s to %s ", OUSTRING_CSTR( unoAttr ), OUSTRING_CSTR( value ) );
++    }
++}
++
++
++
++
++struct AttributesMap
++{
++    const char *name;
++    long value;
++    bool windowAttr;
++};
++static const AttributesMap attribsMap[] =
++{
++    { "autohscroll",  awt::VclWindowPeerAttribute::AUTOHSCROLL,  false },
++    { "autovscroll",  awt::VclWindowPeerAttribute::AUTOVSCROLL,  false },
++    { "center",       awt::VclWindowPeerAttribute::CENTER,       false },
++    { "clipchildren", awt::VclWindowPeerAttribute::CLIPCHILDREN, false },
++    { "closeable",    awt::WindowAttribute::CLOSEABLE,           true },
++    { "defbutton",    awt::VclWindowPeerAttribute::DEFBUTTON,    false },
++    { "dropdown",     awt::VclWindowPeerAttribute::DROPDOWN,     false },
++    { "fullsize",     awt::WindowAttribute::FULLSIZE,            true  }, //FIXME?
++    { "group",        awt::VclWindowPeerAttribute::GROUP,        false },
++    { "has_border",   awt::WindowAttribute::BORDER,              true },
++    { "hscroll",      awt::VclWindowPeerAttribute::HSCROLL,      false },
++    { "left",         awt::VclWindowPeerAttribute::LEFT,         false },
++    { "moveable",     awt::WindowAttribute::MOVEABLE,            true },
++    { "noborder",     awt::VclWindowPeerAttribute::NOBORDER,     false },
++// Comment-out for <= m237
++//    { "nolabel",      awt::VclWindowPeerAttribute::NOLABEL,      false },
++    { "optimumsize",  awt::WindowAttribute::OPTIMUMSIZE,         false },
++    { "readonly",     awt::VclWindowPeerAttribute::READONLY,     false },
++    { "right",        awt::VclWindowPeerAttribute::RIGHT,        false },
++    { "show",         awt::WindowAttribute::SHOW,                true },
++    { "sizeable",     awt::WindowAttribute::SIZEABLE,            true },
++    { "sort",         awt::VclWindowPeerAttribute::SORT,         false },
++    { "spin",         awt::VclWindowPeerAttribute::SPIN,         false },
++    { "vscroll",      awt::VclWindowPeerAttribute::VSCROLL,      false },
++
++    // cutting on OK, YES_NO_CANCEL and related obscure attributes...
++};
++static const int attribsMapLen = sizeof( attribsMap ) / sizeof( AttributesMap );
++
++#if 0
++long getAttribute( const OUString &rName, bool bTopWindow )
++{
++
++    int min = 0, max = attribsMapLen - 1, mid, cmp;
++    do
++    {
++        mid = min +( max - min )/2;
++        cmp = rName.compareToAscii( attribsMap[ mid ].name );
++        if ( cmp > 0 )
++            min = mid+1;
++        else if ( cmp < 0 )
++            max = mid-1;
++        else
++        {
++            if ( bTopWindow || attribsMap[ mid ].value )
++                return attribsMap[ mid ].windowAttr;
++            return 0;
++        }
++    }
++    while ( min <= max );
++    return 0;
++}
++#endif
++
++void propsFromAttributes( const uno::Reference<xml::input::XAttributes> & xAttributes,
++                          PropList &rProps, sal_Int32 nNamespace )
++{
++
++
++    sal_Int32 nAttrs = xAttributes->getLength();
++    for( sal_Int32 i = 0; i < nAttrs; i++ )
++    {
++        if ( nNamespace != xAttributes->getUidByIndex( i ) )
++            continue;
++
++        std::pair< OUString, OUString > aElem
++            ( xAttributes->getLocalNameByIndex( i ),
++              xAttributes->getValueByIndex( i ) );
++
++        if ( aElem.first.getLength() > 0 ) // namespace bits ..
++            rProps.push_back( aElem );
++    }
++}
++
++bool
++findAndRemove( const char *pAttr, PropList &rProps, OUString &rValue )
++{
++    PropList::iterator cur;
++    OUString aName = OUString::createFromAscii( pAttr );
++
++    for( cur = rProps.begin(); cur != rProps.end(); cur++ )
++    {
++        if ( cur->first.equalsIgnoreAsciiCase( aName ) )
++        {
++            rValue = cur->second;
++            rProps.erase( cur );
++            return true;
++        }
++    }
++    rValue = OUString();
++    return false;
++}
++
++long
++getAttributeProps( PropList &rProps )
++{
++    long nAttrs = 0;
++    OUString aValue;
++
++    OUString trueStr( RTL_CONSTASCII_USTRINGPARAM( "true" ) );
++
++    if ( findAndRemove( "show", rProps, aValue ) &&
++         aValue.equalsIgnoreAsciiCase(
++             OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) ) ) )
++        ;
++    else
++        nAttrs |= awt::WindowAttribute::SHOW;
++
++    for( int i = 0; i < attribsMapLen; i++ )
++    {
++        if ( findAndRemove( attribsMap[i].name, rProps, aValue ) )
++        {
++            if ( aValue.equalsIgnoreAsciiCase( trueStr ) )
++                nAttrs |= attribsMap[i].value;
++        }
++    }
++
++    if ( findAndRemove( "align", rProps, aValue ) )
++    {
++        sal_Int32 nVal = aValue.toInt32();
++
++        if ( nVal == 0 /* PROPERTY_ALIGN_LEFT */ )
++            nAttrs |= awt::VclWindowPeerAttribute::LEFT;
++        else if ( nVal == 1 /* PROPERTY_ALIGN_CENTER */ )
++            nAttrs |= awt::VclWindowPeerAttribute::CENTER;
++        else if ( nVal == 2 )
++            nAttrs |= awt::VclWindowPeerAttribute::RIGHT;
++    }
++
++    return nAttrs;
++}
++
++}
++
+Index: toolkit/source/layout/proplist.hxx
+===================================================================
+RCS file: toolkit/source/layout/proplist.hxx
+diff -N toolkit/source/layout/proplist.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/proplist.hxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,34 @@
++#ifndef CORE_PROPLIST_HXX
++#define CORE_PROPLIST_HXX
++
++#include <list>
++#include <com/sun/star/xml/input/XAttributes.hpp>
++
++#include <rtl/ustring.hxx>
++
++namespace layoutimpl
++{
++
++namespace css = ::com::sun::star;
++
++typedef std::list< std::pair< rtl::OUString, rtl::OUString > > PropList;
++
++void propsFromAttributes( const css::uno::Reference<css::xml::input::XAttributes> & xAttributes,
++                          PropList &rProps, sal_Int32 nNamespace );
++
++void setProperties( css::uno::Reference< css::uno::XInterface > const& xPeer,
++                    PropList const& rProps);
++
++void setProperty( css::uno::Reference< css::uno::XInterface > const& xPeer,
++                  rtl::OUString const& attr, rtl::OUString const& value );
++
++long getAttributeProps( PropList &rProps );
++bool findAndRemove( const char *pAttr, PropList &rProps, rtl::OUString &rValue);
++
++}
++
++// Convert a rtl::OUString to a byte string.
++#define OUSTRING_CSTR( str ) \
++    rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr()
++
++#endif // CORE_PROPLIST_HXX
+Index: toolkit/source/layout/root.cxx
+===================================================================
+RCS file: toolkit/source/layout/root.cxx
+diff -N toolkit/source/layout/root.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/root.cxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,329 @@
++#include "root.hxx"
++
++#include <assert.h>
++#include <com/sun/star/xml/sax/XParser.hpp>
++
++#include "helper.hxx"
++#include "import.hxx"
++#include "timer.hxx"
++#include "translate.hxx"
++
++namespace layoutimpl
++{
++
++using namespace css;
++using ::rtl::OUString;
++
++LayoutRoot::LayoutRoot( const uno::Reference< lang::XMultiServiceFactory >& xFactory )
++    : mbDisposed( sal_False )
++    , mxFactory( xFactory )
++    , mpListeners( NULL )
++    , mpToplevel( NULL )
++{
++    if ( !xFactory.is() )
++        throw uno::RuntimeException();
++    mxLayoutUnit = uno::Reference< awt::XLayoutUnit >( new LayoutUnit() );
++}
++
++LayoutRoot::~LayoutRoot()
++{
++// TODO: we want to delete the top level LayoutWidget...
++    ::osl::MutexGuard aGuard( maMutex );
++    if ( !mbDisposed )
++    {
++        try
++        {
++            m_refCount++; // inhibit multiple destruction
++            dispose();
++        }
++        catch( uno::Exception& )
++        {
++        }
++    }
++}
++
++// XInitialization
++void SAL_CALL LayoutRoot::initialize( const uno::Sequence< uno::Any >& aArguments )
++    throw ( uno::Exception,
++            uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++
++    if ( mbDisposed )
++        throw lang::DisposedException();
++
++    if ( mxContainer.is() ) // only 1 init ...
++        throw uno::Exception();
++
++    if ( !aArguments.getLength() )
++        throw lang::IllegalArgumentException();
++
++    OSL_ENSURE( aArguments.getLength() == 1, "Wrong arg count\n" );
++
++    OUString aXMLName;
++    if ( !( aArguments[0] >>= aXMLName ) )
++        throw lang::IllegalArgumentException();
++
++    uno::Reference< xml::sax::XParser > xParser
++        ( mxFactory->createInstance(
++            OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.sax.Parser" ) ) ),
++          uno::UNO_QUERY );
++    OSL_ASSERT( xParser.is() );
++    if (! xParser.is())
++    {
++        throw uno::RuntimeException(
++            OUString( RTL_CONSTASCII_USTRINGPARAM( "cannot create sax-parser component" ) ),
++            uno::Reference< uno::XInterface >() );
++    }
++
++    OUString aXMLFile = readRightTranslation( aXMLName );
++
++    uno::Reference< io::XInputStream > xStream = getFileAsStream( mxFactory,
++                                                                  aXMLFile );
++
++    // error handler, entity resolver omitted
++
++    // FIXME: quite possibly we want to pass this in ...
++    uno::Reference< awt::XToolkit > xToolkit;
++
++    mxToolkit = uno::Reference< awt::XToolkit >(
++        mxFactory->createInstance(
++            OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
++        uno::UNO_QUERY );
++
++    if ( !mxToolkit.is() )
++        throw uno::RuntimeException(
++            OUString( RTL_CONSTASCII_USTRINGPARAM( "failed to create toolkit!" ) ),
++            uno::Reference< uno::XInterface >() );
++
++    ImportContext *pCtx = new ImportContext( *this );
++
++    uno::Reference< xml::input::XRoot > xRoot( pCtx );
++    uno::Sequence < uno::Any > aArgs( 1 );
++    aArgs[0] <<= xRoot;
++    uno::Reference< xml::sax::XDocumentHandler > xDocHandler
++        (mxFactory->createInstanceWithArguments
++         ( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.input.SaxDocumentHandler" ) ),
++          aArgs ), uno::UNO_QUERY );
++
++    xParser->setDocumentHandler( xDocHandler );
++
++    xml::sax::InputSource source;
++    source.aInputStream = xStream;
++    source.sSystemId = OUString( RTL_CONSTASCII_USTRINGPARAM( "virtual file" ) );
++
++    xParser->parseStream( source );
++}
++
++// XLayoutContainer
++uno::Reference< awt::XLayoutContainer > LayoutRoot::getLayoutContainer() throw (uno::RuntimeException)
++{
++    return uno::Reference< awt::XLayoutContainer >();
++}
++
++// local helper ...
++void LayoutRoot::addItem( const OUString &rName,
++                          const uno::Reference< awt::XLayoutConstrains > &xRef )
++{
++    maItems[ rName ] = xRef;
++}
++
++// XNameAccess
++uno::Any SAL_CALL LayoutRoot::getByName( const OUString &rName )
++    throw ( container::NoSuchElementException,
++            lang::WrappedTargetException,
++            uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++    if ( mbDisposed )
++        throw lang::DisposedException();
++
++    uno::Reference< awt::XLayoutConstrains > xItem;
++    ItemHash::iterator i = maItems.find( rName );
++    if ( i != maItems.end() )
++        xItem = i->second;
++    return uno::makeAny( xItem );
++}
++
++sal_Bool SAL_CALL LayoutRoot::hasByName( const OUString &rName )
++    throw (uno::RuntimeException)
++{
++    ::osl::MutexGuard aGuard( maMutex );
++    if ( mbDisposed ) throw lang::DisposedException();
++
++    ItemHash::iterator i = maItems.find( rName );
++    return i != maItems.end();
++}
++
++uno::Sequence< OUString > SAL_CALL LayoutRoot::getElementNames()
++    throw ( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++    if ( mbDisposed ) throw lang::DisposedException();
++
++    uno::Sequence< OUString > aNames( maItems.size() );
++    sal_Int32 nPos = 0;
++
++    for( ItemHash::const_iterator i = maItems.begin();
++         i != maItems.end(); i++ )
++        aNames[ nPos++ ] = i->first;
++
++    return aNames;
++}
++
++uno::Type SAL_CALL LayoutRoot::getElementType()
++    throw ( uno::RuntimeException )
++{
++    return getCppuType( ( const uno::Reference< awt::XLayoutConstrains >* )NULL );
++}
++
++sal_Bool SAL_CALL LayoutRoot::hasElements()
++    throw ( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++
++    if ( mbDisposed ) throw lang::DisposedException();
++
++    return maItems.size() > 0;
++}
++
++// XComponent
++void SAL_CALL LayoutRoot::dispose()
++    throw ( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++
++    if ( mbDisposed ) throw lang::DisposedException();
++
++    if ( mpListeners )
++    {
++
++        lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >(this) );
++        mpListeners->disposeAndClear( aSource );
++        delete mpListeners;
++        mpListeners = NULL;
++    }
++
++    maItems.clear();
++    mbDisposed = sal_True;
++}
++
++void SAL_CALL LayoutRoot::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
++    throw ( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++
++    if ( mbDisposed ) throw lang::DisposedException();
++
++    if ( !mpListeners )
++        mpListeners = new ::cppu::OInterfaceContainerHelper( maMutex );
++    mpListeners->addInterface( xListener );
++}
++
++void SAL_CALL LayoutRoot::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
++    throw ( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( maMutex );
++
++    if ( mbDisposed ) throw lang::DisposedException();
++
++    if ( mpListeners )
++        mpListeners->removeInterface( xListener );
++}
++
++// builder
++
++LayoutWidget *LayoutRoot::create( OUString id, const OUString unoName, long attrbs,uno::Reference< awt::XLayoutContainer > xParent )
++{
++    LayoutWidget *pWidget = new LayoutWidget( mxToolkit, xParent, unoName, attrbs );
++    if ( !mpToplevel )
++    {
++        mpToplevel = pWidget;
++        mxWindow = uno::Reference< awt::XWindow >( pWidget->getPeer(), uno::UNO_QUERY );
++        mxContainer = pWidget->mxContainer;
++    }
++    if ( pWidget->mxContainer.is() )
++        pWidget->mxContainer->setLayoutUnit( mxLayoutUnit );
++    if ( id.getLength() )
++        maItems[ id ] = pWidget->getPeer();
++    return pWidget;
++}
++
++/*
++  uno::Reference< awt::XLayoutConstrains > LayoutRoot::getToplevel()
++  {
++  if ( mpToplevel )
++  return mpToplevel->getPeer();
++  return uno::Reference< awt::XLayoutConstrains > ();
++  }
++
++  uno::Reference< awt::XLayoutConstrains > LayoutRoot::getById( OUString id )
++  {
++  uno::Reference< awt::XLayoutConstrains > rRef = 0;
++  ItemHash::iterator i = maItems.find( id );
++  if ( i != maItems.end() )
++  rRef = i->second;
++  return rRef;
++  }
++*/
++
++LayoutWidget::LayoutWidget( uno::Reference< awt::XToolkit > xToolkit,
++                            uno::Reference< awt::XLayoutContainer > xParent,
++                            OUString unoName, long attrbs )
++{
++    while ( xParent.is() && !uno::Reference< awt::XWindow >( xParent, uno::UNO_QUERY ).is() )
++    {
++        uno::Reference< awt::XLayoutContainer > xContainer( xParent, uno::UNO_QUERY );
++        assert( xContainer.is() );
++        xParent = uno::Reference< awt::XLayoutContainer >( xContainer->getParent(), uno::UNO_QUERY );
++    }
++
++    mxWidget = createWidget( xToolkit, xParent, unoName, attrbs );
++    assert( mxWidget.is() );
++    mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
++}
++
++LayoutWidget::~LayoutWidget()
++{
++    /* should we dispose of the references...? */
++    // at least of its children... Or should root?
++}
++
++bool LayoutWidget::addChild( LayoutWidget *pChild )
++{
++    if ( !mxContainer.is() )
++        return false;
++
++    try
++    {
++        mxContainer->addChild( pChild->mxWidget );
++    }
++    catch( awt::MaxChildrenException ex )
++    {
++        return false;
++    }
++    return true;
++}
++
++void LayoutWidget::setProperties( PropList const& rProps )
++{
++    ::layoutimpl::setProperties( mxWidget, rProps );
++}
++
++void LayoutWidget::setProperty( OUString const& attr, OUString const& value )
++{
++    ::layoutimpl::setProperty( mxWidget, attr, value );
++}
++
++void LayoutWidget::setChildProperties( LayoutWidget *pChild,
++                                       PropList const& rProps )
++{
++    uno::Reference< beans::XPropertySet > xChildPeer;
++    xChildPeer = mxContainer->getChildProperties( pChild->mxWidget );
++
++    if ( xChildPeer.is() )
++        ::layoutimpl::setProperties( xChildPeer, rProps );
++}
++
++} // namespace layoutimpl
++
+Index: toolkit/source/layout/root.hxx
+===================================================================
+RCS file: toolkit/source/layout/root.hxx
+diff -N toolkit/source/layout/root.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/root.hxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,127 @@
++#ifndef CORE_ROOT_HXX
++#define CORE_ROOT_HXX
++
++#include <hash_map>
++
++#include <com/sun/star/awt/XLayoutRoot.hpp>
++#include <com/sun/star/awt/XToolkit.hpp>
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/io/XInputStream.hpp>
++#include <com/sun/star/lang/XComponent.hpp>
++#include <com/sun/star/lang/XInitialization.hpp>
++#include <cppuhelper/implbase3.hxx>
++#include <cppuhelper/interfacecontainer.h>
++
++#include "proplist.hxx"
++
++namespace layoutimpl
++{
++
++namespace css = ::com::sun::star;
++
++css::uno::Reference< css::io::XInputStream >
++getFileAsStream( const css::uno::Reference< css::lang::XMultiServiceFactory > &xFactory,
++                 const rtl::OUString &rName );
++
++/* Interface generation code -- to hook to a parser. */
++
++/*
++  TODO: (ricardo) I think we should cut on LayoutRoot, stripping out its widget
++  proxy interface (just make it return the root widget). Would even make it easier
++  if there was interest to support multiple toplevel widgets in the same file.
++
++  We also need to make sure the code gets diposed well... There is no need to keep
++  these objects around after initialization...
++*/
++
++
++class LayoutWidget;
++
++class LayoutRoot : public ::cppu::WeakImplHelper3<
++    css::awt::XLayoutRoot,
++    css::lang::XInitialization,
++    css::lang::XComponent>
++{
++protected:
++    ::osl::Mutex maMutex;
++
++    typedef std::hash_map< rtl::OUString,
++                           css::uno::Reference< css::awt::XLayoutConstrains >,
++                           ::rtl::OUStringHash > ItemHash;
++    ItemHash maItems;
++
++    sal_Bool mbDisposed;
++    css::uno::Reference< css::lang::XMultiServiceFactory > mxFactory;
++    ::cppu::OInterfaceContainerHelper *mpListeners;
++
++    css::uno::Reference< css::awt::XWindow >          mxWindow;
++    css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
++
++    css::uno::Reference< css::awt::XToolkit > mxToolkit;
++    LayoutWidget *mpToplevel;
++    css::uno::Reference< css::awt::XLayoutUnit > mxLayoutUnit;
++
++public:
++    LayoutRoot( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
++    virtual ~LayoutRoot();
++
++    void addItem( const rtl::OUString &rName,
++                  const css::uno::Reference< css::awt::XLayoutConstrains > &xRef );
++
++    void setWindow(    css::uno::Reference< css::awt::XLayoutConstrains > xPeer )
++    {
++        mxWindow = css::uno::Reference< css::awt::XWindow >( xPeer, css::uno::UNO_QUERY );
++    }
++
++    // get XLayoutContainer
++    virtual css::uno::Reference< css::awt::XLayoutContainer > getLayoutContainer() throw (css::uno::RuntimeException);
++
++    // XInitialization
++    virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) throw (css::uno::Exception, css::uno::RuntimeException);
++
++    // XNameAccess
++    virtual css::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException);
++    virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw (css::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException);
++    virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException);
++
++    // XComponent
++    virtual void SAL_CALL dispose() throw (css::uno::RuntimeException);
++    virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw (css::uno::RuntimeException);
++    virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) throw (css::uno::RuntimeException);
++
++    // generator
++    virtual LayoutWidget *create( rtl::OUString id, const rtl::OUString unoName, long attrbs, css::uno::Reference< css::awt::XLayoutContainer > xParent );
++};
++
++class LayoutWidget
++{
++    friend class LayoutRoot;
++
++public:
++    LayoutWidget() {}
++    LayoutWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++                  css::uno::Reference< css::awt::XLayoutContainer > xToplevel,
++                  rtl::OUString unoName, long attrbs );
++    virtual ~LayoutWidget();
++
++    virtual void setProperties( const PropList &rProps );
++    virtual void setProperty( rtl::OUString const& attr, rtl::OUString const& value );
++
++    virtual bool addChild( LayoutWidget *pChild );
++    virtual void setChildProperties( LayoutWidget *pChild, const PropList &rProps );
++
++    inline css::uno::Reference< css::awt::XLayoutConstrains > getPeer()
++    { return mxWidget; }
++    inline css::uno::Reference< css::awt::XLayoutContainer > getContainer()
++    { return mxContainer; }
++
++protected:
++    css::uno::Reference< css::awt::XLayoutConstrains > mxWidget;
++    css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
++};
++
++} // namespace layoutimpl
++
++#endif // CORE_ROOT_HXX
+Index: toolkit/source/layout/table.cxx
+===================================================================
+RCS file: toolkit/source/layout/table.cxx
+diff -N toolkit/source/layout/table.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/table.cxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,326 @@
++#include <table.hxx>
++
++#include <sal/macros.h>
++#include <osl/mutex.hxx>
++#include <cppuhelper/propshlp.hxx>
++#include <cppuhelper/interfacecontainer.h>
++#include <com/sun/star/awt/PosSize.hpp>
++#include <tools/debug.hxx>
++
++// fixed point precision for distributing error
++#define FIXED_PT 16
++
++namespace layoutimpl
++{
++
++using namespace com::sun::star;
++
++class TableChildProps : public PropHelper
++{
++public:
++    TableChildProps( Table::ChildData *pData )
++    {
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "XExpand" ),
++                 ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
++                 &( pData->bExpand[ 0 ] ) );
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "YExpand" ),
++                 ::getCppuType( static_cast< const sal_Bool* >( NULL ) ),
++                 &( pData->bExpand[ 1 ] ) );
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "ColSpan" ),
++                 ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++                 &( pData->nColSpan ) );
++        addProp( RTL_CONSTASCII_USTRINGPARAM( "RowSpan" ),
++                 ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++                 &( pData->nRowSpan ) );
++    }
++    PROPHELPER_SET_INFO
++};
++
++bool Table::ChildData::isVisible()
++{
++    if ( !xChild.is() || nColSpan < 1 || nRowSpan < 1 )
++        return false;
++    return xChild.is();
++}
++
++Table::Table()
++    : Container()
++{
++    // another default value could be 0xffff for infinite columns( = 1 row )
++    mnColsLen = 1;
++    addProp( RTL_CONSTASCII_USTRINGPARAM( "Columns" ),
++             ::getCppuType( static_cast< const sal_Int32* >( NULL ) ),
++             &mnColsLen );
++}
++
++void SAL_CALL
++Table::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw( uno::RuntimeException, awt::MaxChildrenException )
++{
++    if ( xChild.is() )
++    {
++        ChildData *pData = new ChildData();
++        pData->bExpand[ 0 ] = pData->bExpand[ 1 ] = true;
++        pData->nColSpan = pData->nRowSpan = 1;
++        pData->xChild = xChild;
++        maChildren.push_back( pData );
++
++        setChildParent( xChild );
++        queueResize();
++
++        // cause of flicker
++        allocateChildAt( xChild, awt::Rectangle( 0,0,0,0 ) );
++    }
++}
++
++void SAL_CALL
++Table::removeChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw( uno::RuntimeException )
++{
++    for( std::list< ChildData * >::iterator it = maChildren.begin();
++         it != maChildren.end(); it++ )
++    {
++        if ( ( *it )->xChild == xChild )
++        {
++            delete *it;
++            maChildren.erase( it );
++
++            unsetChildParent( xChild );
++            queueResize();
++            break;
++        }
++    }
++    DBG_ERROR( "Table error: trying to remove child that doesn't exist" );
++}
++
++uno::Sequence< uno::Reference < awt::XLayoutConstrains > > SAL_CALL
++Table::getChildren()
++    throw( uno::RuntimeException )
++{
++    uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
++    unsigned int i = 0;
++    for( std::list< ChildData * >::iterator it = maChildren.begin();
++         it != maChildren.end(); it++, i++ )
++        children[i] =( *it )->xChild;
++
++    return children;
++}
++
++uno::Reference< beans::XPropertySet > SAL_CALL
++Table::getChildProperties( const uno::Reference< awt::XLayoutConstrains >& xChild )
++    throw( uno::RuntimeException )
++{
++    std::list< ChildData * >::iterator iter;
++    for( iter = maChildren.begin(); iter != maChildren.end(); iter++ )
++    {
++        if ( ( *iter )->xChild == xChild )
++        {
++            if ( !( *iter )->xProps.is() )
++            {
++                // FIXME: make me safe !
++                PropHelper *pProps = new TableChildProps( *iter );
++                pProps->setChangeListener( this );
++( *iter )->xProps = pProps;
++            }
++            return( *iter )->xProps;
++        }
++    }
++    return uno::Reference< beans::XPropertySet >();
++}
++
++awt::Size SAL_CALL
++Table::getMinimumSize() throw( uno::RuntimeException )
++{
++    int nRowsLen = 0;
++
++    // 1. layout the table -- adjust to cope with row-spans...
++    {
++        // temporary 1D representation of the table
++        std::vector< ChildData *> aTable;
++
++        int col = 0, row = 0;
++        for( std::list<ChildData *>::iterator it = maChildren.begin();
++             it != maChildren.end(); it++ )
++        {
++            ChildData *child = *it;
++            if ( !child->isVisible() )
++                continue;
++
++            while ( col + SAL_MIN( child->nColSpan, mnColsLen ) > mnColsLen )
++            {
++                col = 0;
++                row++;
++
++                unsigned int i = col +( row*mnColsLen );
++                while ( aTable.size() > i && !aTable[ i ] )
++                    i++;
++
++                col = i % mnColsLen;
++                row = i / mnColsLen;
++            }
++
++            child->nLeftCol = col;
++            child->nRightCol = SAL_MIN( col + child->nColSpan, mnColsLen );
++            child->nTopRow = row;
++            child->nBottomRow = row + child->nRowSpan;
++
++            col += child->nColSpan;
++
++            unsigned int start = child->nLeftCol +( child->nTopRow*mnColsLen );
++            unsigned int end =( child->nRightCol-1 ) +( ( child->nBottomRow-1 )*mnColsLen );
++            if ( aTable.size() < end+1 )
++                aTable.resize( end+1, NULL );
++            for( unsigned int i = start; i < end; i++ )
++                aTable[ i ] = child;
++
++            nRowsLen = SAL_MAX( nRowsLen, child->nBottomRow );
++        }
++    }
++
++    // 2. calculate columns/rows sizes
++    for( int g = 0; g < 2; g++ )
++    {
++        std::vector< GroupData > &aGroup = g == 0 ? maCols : maRows;
++
++        aGroup.clear();
++        aGroup.resize( g == 0 ? mnColsLen : nRowsLen );
++
++        // 2.1 base sizes on one-column/row children
++        for( std::list<ChildData *>::iterator it = maChildren.begin();
++             it != maChildren.end(); it++ )
++        {
++            ChildData *child = *it;
++            if ( !child->isVisible() )
++                continue;
++            const int nFirstAttach = g == 0 ? child->nLeftCol : child->nTopRow;
++            const int nLastAttach  = g == 0 ? child->nRightCol : child->nBottomRow;
++
++            if ( nFirstAttach == nLastAttach-1 )
++            {
++                child->aRequisition = child->xChild->getMinimumSize();
++                int attach = nFirstAttach;
++                int child_size = g == 0 ? child->aRequisition.Width
++                    : child->aRequisition.Height;
++                aGroup[ attach ].nSize = SAL_MAX( aGroup[ attach ].nSize, child_size );
++                if ( child->bExpand[ g ] )
++                    aGroup[ attach ].bExpand = true;
++            }
++        }
++
++        // 2.2 make sure multiple-columns/rows children fit
++        for( std::list<ChildData *>::iterator it = maChildren.begin();
++             it != maChildren.end(); it++ )
++        {
++            ChildData *child = *it;
++            if ( !child->isVisible() )
++                continue;
++            const int nFirstAttach = g == 0 ? child->nLeftCol : child->nTopRow;
++            const int nLastAttach  = g == 0 ? child->nRightCol : child->nBottomRow;
++
++            if ( nFirstAttach != nLastAttach-1 )
++            {
++                child->aRequisition = child->xChild->getMinimumSize();
++                int size = 0;
++                int expandables = 0;
++                for( int i = nFirstAttach; i < nLastAttach; i++ )
++                {
++                    size += aGroup[ i ].nSize;
++                    if ( aGroup[ i ].bExpand )
++                        expandables++;
++                }
++
++                int child_size = g == 0 ? child->aRequisition.Width
++                    : child->aRequisition.Height;
++                int extra = child_size - size;
++                if ( extra > 0 )
++                {
++                    if ( expandables )
++                        extra /= expandables;
++                    else
++                        extra /= nLastAttach - nFirstAttach;
++
++                    for( int i = nFirstAttach; i < nLastAttach; i++ )
++                        if ( expandables == 0 || aGroup[ i ].bExpand )
++                            aGroup[ i ].nSize += extra;
++                }
++            }
++        }
++    }
++
++    // 3. Sum everything up
++    mnColExpandables =( mnRowExpandables = 0 );
++    maRequisition.Width =( maRequisition.Height = 0 );
++    for( std::vector<GroupData>::iterator it = maCols.begin();
++         it != maCols.end(); it++ )
++    {
++        maRequisition.Width += it->nSize;
++        if ( it->bExpand )
++            mnColExpandables++;
++    }
++    for( std::vector<GroupData>::iterator it = maRows.begin();
++         it != maRows.end(); it++ )
++    {
++        maRequisition.Height += it->nSize;
++        if ( it->bExpand )
++            mnRowExpandables++;
++    }
++
++    return maRequisition;
++}
++
++void SAL_CALL
++Table::allocateArea( const awt::Rectangle &rArea )
++    throw( uno::RuntimeException )
++{
++    maAllocation = rArea;
++    if ( maCols.size() == 0 || maRows.size() == 0 )
++        return;
++
++    int nExtraSize[ 2 ] = { SAL_MAX( rArea.Width - maRequisition.Width, 0 ),
++                            SAL_MAX( rArea.Height - maRequisition.Height, 0 ) };
++    // split it
++    nExtraSize[ 0 ] /= mnColExpandables ? mnColExpandables : mnColsLen;
++    nExtraSize[ 1 ] /= mnRowExpandables ? mnRowExpandables : maRows.size();
++
++    for( std::list<ChildData *>::const_iterator it = maChildren.begin();
++         it != maChildren.end(); it++ )
++    {
++        ChildData *child = *it;
++        if ( !child->isVisible() )
++            continue;
++
++        awt::Rectangle rChildArea( rArea.X, rArea.Y, 0, 0 );
++
++        for( int g = 0; g < 2; g++ )
++        {
++            std::vector< GroupData > &aGroup = g == 0 ? maCols : maRows;
++            const int nFirstAttach = g == 0 ? child->nLeftCol : child->nTopRow;
++            const int nLastAttach  = g == 0 ? child->nRightCol : child->nBottomRow;
++
++            for( int i = 0; i < nFirstAttach; i++ )
++            {
++                int gSize = aGroup[ i ].nSize;
++                if ( aGroup[ i ].bExpand )
++                    gSize += nExtraSize[ g ];
++                if ( g == 0 )
++                    rChildArea.X += gSize;
++                else
++                    rChildArea.Y += gSize;
++            }
++            for( int i = nFirstAttach; i < nLastAttach; i++ )
++            {
++                int gSize = aGroup[ i ].nSize;
++                if ( aGroup[ i ].bExpand )
++                    gSize += nExtraSize[ g ];
++                if ( g == 0 )
++                    rChildArea.Width  += gSize;
++                else
++                    rChildArea.Height += gSize;
++            }
++        }
++
++        allocateChildAt( child->xChild, rChildArea );
++    }
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/table.hxx
+===================================================================
+RCS file: toolkit/source/layout/table.hxx
+diff -N toolkit/source/layout/table.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/table.hxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,79 @@
++#ifndef TABLE_HXX
++#define TABLE_HXX
++
++#include "container.hxx"
++
++#include <list>
++
++namespace layoutimpl
++{
++
++class Table : public Container
++{
++    friend class TableChildProps;
++protected:
++    // Table properties
++    sal_Int32 mnColsLen;
++
++    // Children properties
++    struct ChildData
++    {
++        sal_Bool  bExpand[ 2 ];
++        sal_Int32 nColSpan, nRowSpan;
++        css::awt::Size aRequisition;
++        css::uno::Reference< css::awt::XLayoutConstrains > xChild;
++        css::uno::Reference< css::beans::XPropertySet >    xProps;
++        bool isVisible();
++
++        // automatically calculated
++        int nLeftCol, nRightCol, nTopRow, nBottomRow;
++    };
++    std::list< ChildData * > maChildren;
++
++    // a group of children; either a column or a row
++    struct GroupData
++    {
++        sal_Bool bExpand;
++        int nSize;  // request size (width or height)
++        GroupData() : bExpand( false ), nSize( 0 ) {}
++    };
++    std::vector< GroupData > maCols, maRows;
++    int mnColExpandables, mnRowExpandables;
++
++public:
++    Table();
++
++    // css::awt::XLayoutContainer
++    virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
++    virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Sequence< css::uno::Reference
++                                < css::awt::XLayoutConstrains > > SAL_CALL getChildren()
++        throw (css::uno::RuntimeException);
++
++    virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties(
++        const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
++        throw (css::uno::RuntimeException);
++
++    virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
++        throw (css::uno::RuntimeException);
++
++    virtual css::awt::Size SAL_CALL getMinimumSize()
++        throw(css::uno::RuntimeException);
++
++    // unimplemented:
++    virtual sal_Bool SAL_CALL hasHeightForWidth()
++        throw(css::uno::RuntimeException)
++    { return false; }
++    virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ )
++    throw(css::uno::RuntimeException)
++    { return maRequisition.Height; }
++
++    PROPHELPER_SET_INFO
++};
++
++} //  namespace layoutimpl
++
++#endif /*TABLE_HXX*/
+Index: toolkit/source/layout/timer.cxx
+===================================================================
+RCS file: toolkit/source/layout/timer.cxx
+diff -N toolkit/source/layout/timer.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/timer.cxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,121 @@
++#include "timer.hxx"
++
++#include <vector>
++#include <list>
++#include <vcl/timer.hxx>
++#include <com/sun/star/awt/XLayoutContainer.hpp>
++
++namespace layoutimpl
++{
++using namespace ::com::sun::star;
++
++class AllocateTimer : public Timer
++{
++    typedef std::list< uno::Reference< awt::XLayoutContainer > > ContainerList;
++    ContainerList mxContainers;
++    uno::Reference< awt::XLayoutContainer > mxLastAdded;
++
++public:
++    AllocateTimer()
++    {
++        // timer set to 0 -- just process it as soon as it gets idle
++        SetTimeout( 0 );
++    }
++
++    static inline bool isParentOf( uno::Reference< awt::XLayoutContainer > xParent,
++                                   uno::Reference< awt::XLayoutContainer > xWidget )
++    {
++        while ( xWidget.is() )
++        {
++            if ( xWidget == xParent )
++                return true;
++            xWidget = uno::Reference< awt::XLayoutContainer >( xWidget->getParent(), uno::UNO_QUERY );
++        }
++        return false;
++    }
++
++    static inline void eraseChildren( ContainerList::iterator &it, ContainerList &list )
++    {
++        ContainerList::iterator jt = list.begin();
++        while ( jt != list.end() )
++        {
++            if ( it != jt && isParentOf( *it, *jt ) )
++                jt = list.erase( jt );
++            else
++                jt++;
++        }
++    }
++
++    static inline bool isContainerDamaged( uno::Reference< awt::XLayoutContainer > xContainer )
++    {
++        uno::Reference< awt::XLayoutConstrains > xConstrains( xContainer, uno::UNO_QUERY );
++        awt::Size lastReq( xContainer->getRequestedSize() );
++        awt::Size curReq( xConstrains->getMinimumSize() );
++        return lastReq.Width != curReq.Width || lastReq.Height != curReq.Height;
++    }
++
++    void add( const uno::Reference< awt::XLayoutContainer > &xContainer )
++    {
++        // small optimization
++        if ( mxLastAdded == xContainer )
++            return;
++        mxLastAdded = xContainer;
++
++        mxContainers.push_back( xContainer );
++    }
++
++    virtual void Timeout()
++    {
++        mxLastAdded = uno::Reference< awt::XLayoutContainer >();
++
++        // 1. remove duplications and children
++        for( ContainerList::iterator it = mxContainers.begin();
++             it != mxContainers.end(); it++ )
++            eraseChildren( it, mxContainers );
++
++        // 2. check damage extent
++        for( ContainerList::iterator it = mxContainers.begin();
++             it != mxContainers.end(); it++ )
++        {
++            uno::Reference< awt::XLayoutContainer > xContainer = *it;
++            while ( xContainer->getParent().is() && isContainerDamaged( xContainer ) )
++            {
++                xContainer = uno::Reference< awt::XLayoutContainer >(
++                    xContainer->getParent(), uno::UNO_QUERY );
++            }
++
++            if ( *it != xContainer )
++            {
++                // 2.2 replace it with parent
++                *it = xContainer;
++
++                // 2.3 remove children of new parent
++                eraseChildren( it, mxContainers );
++            }
++        }
++
++        // 3. force re-calculations
++        for( ContainerList::iterator it = mxContainers.begin();
++             it != mxContainers.end(); it++ )
++            (*it)->allocateArea( (*it)->getAllocatedArea() );
++    }
++};
++
++static void AddResizeTimeout( const uno::Reference< awt::XLayoutContainer > &xCont )
++{
++    static AllocateTimer timer;
++    timer.add( xCont );
++    timer.Start();
++}
++
++LayoutUnit::LayoutUnit() : LayoutUnit_Base()
++{
++}
++
++void SAL_CALL LayoutUnit::queueResize( const uno::Reference< awt::XLayoutContainer > &xContainer )
++    throw( uno::RuntimeException )
++{
++    AddResizeTimeout( xContainer );
++}
++
++}
+Index: toolkit/source/layout/timer.hxx
+===================================================================
+RCS file: toolkit/source/layout/timer.hxx
+diff -N toolkit/source/layout/timer.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/timer.hxx	8 Feb 2008 18:44:44 -0000	1.1.2.1
+@@ -0,0 +1,22 @@
++#ifndef CORE_TIMER_HXX
++#define CORE_TIMER_HXX
++
++#include <com/sun/star/awt/XLayoutUnit.hpp>
++#include <cppuhelper/implbase1.hxx>
++
++namespace layoutimpl
++{
++
++typedef ::cppu::WeakImplHelper1< com::sun::star::awt::XLayoutUnit > LayoutUnit_Base;
++
++class LayoutUnit : public LayoutUnit_Base
++{
++public:
++    LayoutUnit();
++    void SAL_CALL queueResize( const com::sun::star::uno::Reference< com::sun::star::awt::XLayoutContainer > &xContainer )
++        throw( com::sun::star::uno::RuntimeException );
++};
++
++}
++
++#endif /*CORE_TIMER_HXX*/
+Index: toolkit/source/layout/translate.cxx
+===================================================================
+RCS file: toolkit/source/layout/translate.cxx
+diff -N toolkit/source/layout/translate.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/translate.cxx	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,107 @@
++#include "translate.hxx"
++
++#include <list>
++#if TEST_LAYOUT
++#include <stdio.h>
++#endif
++
++#include <osl/process.h>
++#include <unotools/bootstrap.hxx>
++#include <unotools/localfilehelper.hxx>
++#include <unotools/ucbhelper.hxx>
++#include <vcl/svapp.hxx>
++
++#include "proplist.hxx"
++
++namespace layoutimpl
++{
++namespace css = ::com::sun::star;
++using namespace css;
++using ::rtl::OUString;
++using ::utl::LocalFileHelper;
++using ::utl::UCBContentHelper;
++using ::utl::Bootstrap;
++
++static std::list<OUString>
++getLocaleSubdirList( lang::Locale const& rLocale )
++{
++    std::list<OUString> aSubdirs;
++    aSubdirs.push_front( OUString::createFromAscii( "." ) );
++    aSubdirs.push_front( OUString::createFromAscii( "en_US" ) );
++    if ( rLocale.Language.getLength() )
++        aSubdirs.push_front( rLocale.Language );
++    if ( rLocale.Country.getLength() )
++    {
++        OUString aLocaleCountry = rLocale.Language
++            + OUString::createFromAscii( "_" )
++            + rLocale.Country;
++        aSubdirs.push_front( aLocaleCountry );
++        if ( rLocale.Variant.getLength() )
++            aSubdirs.push_front( aLocaleCountry
++                                 + OUString::createFromAscii( "." )
++                                 + rLocale.Variant );
++    }
++    return aSubdirs;
++}
++
++static bool
++fileExists( String const& aFile )
++{
++    String aUrl;
++    LocalFileHelper::ConvertPhysicalNameToURL( aFile, aUrl );
++    return UCBContentHelper::Exists( aUrl );
++}
++
++static OUString
++getFirstExisting( OUString const& aDir, std::list<OUString> const& aSubDirs,
++                  OUString const& aXMLName )
++{
++    static OUString const aSlash = OUString::createFromAscii( "/" );
++    String aResult;
++    for ( std::list<OUString>::const_iterator i = aSubDirs.begin();
++          i != aSubDirs.end(); i++ )
++    {
++        String aFile = aDir + aSlash + *i + aSlash + aXMLName;
++#if TEST_LAYOUT
++        printf( "testing: %s\n", OUSTRING_CSTR( aFile ) );
++#endif
++        if ( fileExists( aFile ) )
++            return aFile;
++    }
++    return OUString();
++}
++
++/*  FIXME: IWBN to share code with impimagetree.cxx, also for reading
++  from zip files.  */
++OUString
++readRightTranslation( OUString const& aXMLName )
++{
++    String aXMLFile;
++    std::list<OUString> aSubdirs
++        = getLocaleSubdirList( Application::GetSettings().GetUILocale() );
++#if TEST_LAYOUT // read from cwd first
++    OUString aCurrentWorkingUrl;
++    osl_getProcessWorkingDir( &aCurrentWorkingUrl.pData );
++    String aCurrentWorkingDir;
++    LocalFileHelper::ConvertURLToPhysicalName( aCurrentWorkingUrl, aCurrentWorkingDir );
++    aXMLFile = getFirstExisting( aCurrentWorkingDir, aSubdirs, aXMLName );
++    if ( aXMLFile.Len() )
++        ;
++    else
++#endif /* TEST_LAYOUT */
++    {
++        OUString aShareUrl;
++        Bootstrap::locateSharedData( aShareUrl );
++        OUString aXMLUrl = aShareUrl + OUString::createFromAscii( "/layout" );
++        String aXMLDir;
++        LocalFileHelper::ConvertURLToPhysicalName( aXMLUrl, aXMLDir );
++        aXMLFile = getFirstExisting( aXMLDir, aSubdirs, aXMLName );
++    }
++
++#if TEST_LAYOUT
++    printf( "FOUND:%s\n", OUSTRING_CSTR ( OUString (aXMLFile) ) );
++#endif /* TEST_LAYOUT */
++    return aXMLFile;
++}
++
++} // namespace layoutimpl
+Index: toolkit/source/layout/translate.hxx
+===================================================================
+RCS file: toolkit/source/layout/translate.hxx
+diff -N toolkit/source/layout/translate.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/layout/translate.hxx	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,12 @@
++#ifndef CORE_TRANSLATE_HXX
++#define CORE_TRANSLATE_HXX
++
++namespace rtl {
++class OUString;
++}; // rtl
++namespace layoutimpl
++{
++::rtl::OUString readRightTranslation( ::rtl::OUString const& aXMLName );
++}; // layoutimpl
++
++#endif /* CORE_TRANSLATE_HXX */
+cvs diff: Diffing toolkit/source/vclcompat
+Index: toolkit/source/vclcompat/makefile.mk
+===================================================================
+RCS file: toolkit/source/vclcompat/makefile.mk
+diff -N toolkit/source/vclcompat/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/vclcompat/makefile.mk	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,32 @@
++PRJ=..$/..
++PRJNAME=toolkit
++TARGET=vclcompat
++ENABLE_EXCEPTIONS=true
++TARGETTYPE=GUI
++
++.INCLUDE : settings.mk
++.INCLUDE : $(PRJ)$/util$/makefile.pmk
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++.IF "$(COMNAME)" == "gcc3"
++CFLAGS+=-Wall -Wno-non-virtual-dtor
++.ENDIF
++
++##CFLAGS += -DENABLE_LAYOUT
++
++CXXFILES= \
++	wrapper.cxx \
++	wbutton.cxx \
++	wcontainer.cxx \
++	wfield.cxx
++
++SLOFILES= \
++	$(SLO)$/wrapper.obj \
++	$(SLO)$/wbutton.obj \
++	$(SLO)$/wcontainer.obj \
++	$(SLO)$/wfield.obj
++
++.ENDIF # ENABLE_LAYOUT == "TRUE"
++
++.INCLUDE : target.mk
+Index: toolkit/source/vclcompat/wbutton.cxx
+===================================================================
+RCS file: toolkit/source/vclcompat/wbutton.cxx
+diff -N toolkit/source/vclcompat/wbutton.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/vclcompat/wbutton.cxx	12 Feb 2008 11:05:46 -0000	1.1.2.2
+@@ -0,0 +1,382 @@
++#include "wrapper.hxx"
++
++#include <com/sun/star/awt/XActionListener.hpp>
++#include <com/sun/star/awt/XButton.hpp>
++#include <com/sun/star/awt/XCheckBox.hpp>
++#include <com/sun/star/awt/XRadioButton.hpp>
++#include <cppuhelper/implbase1.hxx>
++#include <toolkit/awt/vclxwindow.hxx>
++#include <vcl/event.hxx>
++#include <vcl/msgbox.hxx>
++#include <vcl/svapp.hxx>
++#include <vcl/window.hxx>
++
++#include <list>
++
++#include "layoutcore.hxx"
++
++using namespace ::com::sun::star;
++
++namespace layout
++{
++
++// Window/Control/Button
++//class TOOLKIT_DLLPUBLIC ButtonImpl : public ControlImpl,
++class ButtonImpl : public ControlImpl,
++                   public ::cppu::WeakImplHelper1< awt::XActionListener >,
++                   public ::cppu::WeakImplHelper1< awt::XItemListener >
++{
++    Link maClickHdl;
++  protected:
++    // we add toggle hooks here to cut on code
++    Link maToggleHdl;
++  public:
++    uno::Reference< awt::XButton > mxButton;
++    ButtonImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ControlImpl( pCtx, xPeer, pWindow )
++        , mxButton( xPeer, uno::UNO_QUERY )
++    {
++        mxButton->addActionListener( this );
++    }
++
++    ~ButtonImpl()
++    {
++    }
++
++    virtual void Click() { /* make me pure virtual? */ };
++
++    void SetClickHdl( const Link& rLink )
++    {
++        maClickHdl = rLink;
++        if ( !rLink )
++            mxButton->removeActionListener( this );
++        else
++            mxButton->addActionListener( this );
++    }
++
++    virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
++        throw (css::uno::RuntimeException)
++    { mxButton.clear(); }
++
++    virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        if ( !maClickHdl )
++            Click();
++        else
++            maClickHdl.Call( static_cast<Window *>( mpWindow ) );
++    }
++
++    virtual  // HACK: doesn't need to be virtual... remove in future...
++    void SAL_CALL itemStateChanged( const css::awt::ItemEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
++    }
++
++    BOOL SetModeImage( css::uno::Reference< css::graphic::XGraphic > xGraph )
++    {
++        setProperty( "Graphic", uno::Any( xGraph ) );
++        return true;
++    }
++};
++
++void Button::SetText( const String& rStr )
++{
++    if ( !getImpl().mxButton.is() )
++        return;
++    getImpl().mxButton->setLabel( rStr );
++}
++
++void Button::SetClickHdl( const Link& rLink )
++{
++    getImpl().SetClickHdl( rLink );
++}
++
++BOOL Button::SetModeImage( const Image& rImage )
++{
++    return getImpl().SetModeImage( rImage.getImpl().mxGraphic );
++}
++
++void Button::SetImageAlign( ImageAlign eAlign )
++{
++    getImpl().setProperty( "ImageAlign", uno::Any( (sal_Int16) eAlign ) );
++}
++
++void Button::Click()
++{
++}
++
++DECL_GET_IMPL_IMPL( Button )
++DECL_CONSTRUCTOR_IMPLS( Button, Control, "button" );
++
++// Window/Control/Button/PushButton
++class PushButtonImpl : public ButtonImpl
++{
++  public:
++    PushButtonImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ButtonImpl( pCtx, xPeer, pWindow ) {}
++
++    void SetToggleHdl( const Link& rLink )
++    {
++        // XButton doesn't have an explicit event for Toggle. Anyway, it is a
++        // superset of the clicks: all clicks, and explicit toggles
++        maToggleHdl = rLink;
++        if ( !rLink )
++            mxButton->removeActionListener( this );
++        else
++            mxButton->addActionListener( this );
++    }
++
++    virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& rEvent )
++        throw (css::uno::RuntimeException)
++    {
++        ButtonImpl::actionPerformed( rEvent );
++        fireToggle();
++    }
++
++    inline void fireToggle()
++    {
++        maToggleHdl.Call(  static_cast<Window *>( mpWindow ) );
++    }
++};
++
++void PushButton::Check( BOOL bCheck )
++{
++    getImpl().setProperty( "State", uno::Any( (sal_Int16) !!bCheck ) );
++    // XButton doesn't have explicit toggle event
++    getImpl().fireToggle();
++}
++
++BOOL PushButton::IsChecked() const
++{
++    return !!( getImpl().getProperty( "State" ).get< sal_Int16 >() );
++}
++
++void PushButton::Toggle()
++{
++    Check( true );
++}
++
++void PushButton::SetToggleHdl( const Link& rLink )
++{
++    getImpl().SetToggleHdl( rLink );
++}
++
++DECL_GET_IMPL_IMPL( PushButton )
++DECL_CONSTRUCTOR_IMPLS( PushButton, Button, "pushbutton" );
++
++ // HACK: put every radio button into a group :/
++static std::list< RadioButtonImpl*> mpRadioGroup;
++
++// Window/Control/Button/RadioButton
++class RadioButtonImpl : public ButtonImpl
++{
++public:
++    uno::Reference< awt::XRadioButton > mxRadioButton;
++    RadioButtonImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ButtonImpl( pCtx, xPeer, pWindow )
++        , mxRadioButton( xPeer, uno::UNO_QUERY )
++    {
++        // TEMP:
++        mpRadioGroup.push_back( this );
++        mxRadioButton->addItemListener( this );
++    }
++
++    ~RadioButtonImpl()
++    {
++        //mxRadioButton->removeItemListener( this );
++        mpRadioGroup.pop_front();
++    }
++
++    void Check( BOOL bCheck )
++    {
++        if ( !mxRadioButton.is() )
++            return;
++        mxRadioButton->setState( !!bCheck );
++        fireToggle();
++
++        if ( bCheck )
++            unsetOthersGroup( this );
++    }
++
++    BOOL IsChecked()
++    {
++        if ( !mxRadioButton.is() )
++            return FALSE;
++        return mxRadioButton->getState();
++    }
++
++    static void unsetOthersGroup( RadioButtonImpl* current )
++    {
++        // set all others to false
++        for( std::list< RadioButtonImpl*>::iterator it = mpRadioGroup.begin();
++                 it != mpRadioGroup.end(); it++ )
++        {
++#if 0 // BREAKS in OOo
++            if ( *it != current )
++                (*it)->Check( false );
++#else
++            if ( *it != current && (*it)->IsChecked() )
++            {
++                (*it)->Check( false );
++                return;
++            }
++#endif
++        }
++    }
++
++    void SetToggleHdl( const Link& rLink )
++    {
++        maToggleHdl = rLink;
++#if 0
++        if ( !rLink )
++            mxRadioButton->removeItemListener( this );
++        else
++            mxRadioButton->addItemListener( this );
++#endif
++    }
++
++    inline void fireToggle()
++    {
++        maToggleHdl.Call(  static_cast<Window *>( mpWindow ) );
++    }
++
++//HACK: temp
++    virtual void SAL_CALL itemStateChanged( const css::awt::ItemEvent& rEvent )
++        throw (css::uno::RuntimeException)
++    {
++        if ( !!maToggleHdl )
++        ButtonImpl::itemStateChanged( rEvent );
++
++        if ( IsChecked() )
++            unsetOthersGroup( this );
++    }
++};
++
++void RadioButton::Check( BOOL bCheck )
++{
++    getImpl().Check( bCheck );
++}
++
++BOOL RadioButton::IsChecked() const
++{
++    return getImpl().IsChecked();
++}
++
++void RadioButton::SetToggleHdl( const Link& rLink )
++{
++    getImpl().SetToggleHdl( rLink );
++}
++
++DECL_GET_IMPL_IMPL( RadioButton )
++DECL_CONSTRUCTOR_IMPLS( RadioButton, Button, "radiobutton" );
++
++// Window/Control/Button/CheckBox
++class CheckBoxImpl : public ButtonImpl
++{
++  public:
++    uno::Reference< awt::XCheckBox > mxCheckBox;
++    CheckBoxImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ButtonImpl( pCtx, xPeer, pWindow )
++        , mxCheckBox( xPeer, uno::UNO_QUERY ) {}
++
++    void SetToggleHdl( const Link& rLink )
++    {
++        maToggleHdl = rLink;
++        if ( !rLink )
++            mxCheckBox->removeItemListener( this );
++        else
++            mxCheckBox->addItemListener( this );
++    }
++};
++
++void CheckBox::Check( BOOL bCheck )
++{
++    if ( !getImpl().mxCheckBox.is() )
++        return;
++    getImpl().mxCheckBox->setState( !!bCheck );
++}
++
++BOOL CheckBox::IsChecked() const
++{
++    if ( !getImpl().mxCheckBox.is() )
++        return FALSE;
++    return getImpl().mxCheckBox->getState();
++}
++
++void CheckBox::SetToggleHdl( const Link& rLink )
++{
++    getImpl().SetToggleHdl( rLink );
++}
++
++DECL_GET_IMPL_IMPL( CheckBox )
++DECL_CONSTRUCTOR_IMPLS( CheckBox, Button, "checkbox" );
++
++// Window/Control/Button/PushButton/etc
++#define BUTTON_IMPL(t, parent, response) \
++    class t##Impl : public parent##Impl \
++    { \
++    public: \
++        t##Impl( Context *pCtx, PeerHandle const& xPeer, Window *pWindow ) \
++            : parent##Impl( pCtx, xPeer, pWindow ) \
++        { \
++        } \
++        void Click() \
++        { \
++            Dialog *d = static_cast<Dialog *>( mpCtx ); \
++            d->EndDialog( response ); \
++        } \
++    }
++
++/* Common button types currently unavailable in OOo: */
++/* mpReset */
++/* mpApply */
++/* mpAction */
++#define RET_RESET 6
++#define RET_APPLY 7
++#define BUTTONID_RESET RET_RESET
++#define BUTTONID_APPLY RET_APPLY
++
++BUTTON_IMPL( OKButton, PushButton, BUTTONID_OK );
++BUTTON_IMPL( CancelButton, PushButton, BUTTONID_CANCEL );
++BUTTON_IMPL( YesButton, PushButton, BUTTONID_YES );
++BUTTON_IMPL( NoButton, PushButton, BUTTONID_NO );
++BUTTON_IMPL( RetryButton, PushButton, BUTTONID_RETRY );
++BUTTON_IMPL( IgnoreButton, PushButton, BUTTONID_IGNORE );
++BUTTON_IMPL( ResetButton, PushButton, BUTTONID_RESET );
++BUTTON_IMPL( ApplyButton, PushButton, BUTTONID_APPLY ); /* Deprecated? */
++BUTTON_IMPL( HelpButton, PushButton, BUTTONID_HELP );
++
++DECL_CONSTRUCTOR_IMPLS( OKButton, PushButton, "okbutton" );
++DECL_CONSTRUCTOR_IMPLS( CancelButton, PushButton, "cancelbutton" );
++DECL_CONSTRUCTOR_IMPLS( YesButton, PushButton, "yesbutton" );
++DECL_CONSTRUCTOR_IMPLS( NoButton, PushButton, "nobutton" );
++DECL_CONSTRUCTOR_IMPLS( RetryButton, PushButton, "retrybutton" );
++DECL_CONSTRUCTOR_IMPLS( IgnoreButton, PushButton, "ignorebutton" );
++DECL_CONSTRUCTOR_IMPLS( ResetButton, PushButton, "resetbutton" );
++DECL_CONSTRUCTOR_IMPLS( ApplyButton, PushButton, "applybutton" );  /* Deprecated? */
++DECL_CONSTRUCTOR_IMPLS( HelpButton, PushButton, "helpbutton" );
++
++
++ImageImpl::ImageImpl( const char *pName )
++    : mxGraphic( layoutimpl::loadGraphic( pName ) )
++{
++    if ( !mxGraphic.is() )
++    {
++        DBG_ERROR1( "ERROR: failed to load image: `%s'", pName );
++    }
++
++}
++
++Image::Image( const char *pName )
++    : pImpl( new ImageImpl( pName ) )
++{
++}
++
++Image::~Image()
++{
++    delete pImpl;
++}
++
++}; // namespace layout
+Index: toolkit/source/vclcompat/wcontainer.cxx
+===================================================================
+RCS file: toolkit/source/vclcompat/wcontainer.cxx
+diff -N toolkit/source/vclcompat/wcontainer.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/vclcompat/wcontainer.cxx	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,202 @@
++#include "wrapper.hxx"
++
++#include "layoutcore.hxx"
++#include <com/sun/star/awt/XLayoutRoot.hpp>
++#include <com/sun/star/awt/XLayoutContainer.hpp>
++
++#include <comphelper/processfactory.hxx>
++
++#include <tools/debug.hxx>
++
++using namespace ::com::sun::star;
++
++namespace layout
++{
++
++// Container
++Container::Container( const Context *pCtx, const char *pId )
++    : mxContainer( pCtx->GetPeerHandle( pId ), uno::UNO_QUERY )
++{
++    if ( !mxContainer.is() )
++    {
++        DBG_ERROR1( "Error: failed to associate container with '%s'", pId );
++    }
++}
++
++Container::Container( const rtl::OUString &rName, sal_Int32 nBorder )
++{
++    mxContainer = layoutimpl::createContainer( rName );
++
++    uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
++    xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Border" ) ),
++                              uno::Any( nBorder ) );
++}
++
++void Container::Add( Window *pChild )
++{
++    if ( pChild )
++    {
++        uno::Reference< awt::XLayoutConstrains > xChild( pChild->GetPeer(), uno::UNO_QUERY );
++        mxContainer->addChild( xChild );
++    }
++}
++
++void Container::Add( Container *pChild )
++{
++    if ( pChild )
++    {
++        uno::Reference< awt::XLayoutConstrains > xChild( pChild->getImpl(), uno::UNO_QUERY );
++        mxContainer->addChild( xChild );
++    }
++}
++
++void Container::Remove( Window *pChild )
++{
++    if ( pChild )
++    {
++        uno::Reference< awt::XLayoutConstrains > xChild( pChild->GetPeer(), uno::UNO_QUERY );
++        mxContainer->removeChild( xChild );
++    }
++}
++
++void Container::Remove( Container *pChild )
++{
++    if ( pChild )
++    {
++        uno::Reference< awt::XLayoutConstrains > xChild( pChild->getImpl(), uno::UNO_QUERY );
++        mxContainer->removeChild( xChild );
++    }
++}
++
++void Container::Clear()
++{
++    css::uno::Sequence< css::uno::Reference < css::awt::XLayoutConstrains > > children;
++    children = mxContainer->getChildren();
++    for( int i = 0; i < children.getLength(); i++ )
++        mxContainer->removeChild( children[ i ] );
++}
++
++void Container::ShowAll( bool bShow )
++{
++    struct inner
++    {
++        static void setChildrenVisible( uno::Reference < awt::XLayoutContainer > xCont,
++                                        bool bVisible )  /* auxiliary */
++        {
++            if ( xCont.is() )
++            {
++                uno::Sequence< uno::Reference < awt::XLayoutConstrains > > aChildren;
++                aChildren = xCont->getChildren();
++                for( int i = 0; i < aChildren.getLength(); i++ )
++                {
++                    uno::Reference < awt::XLayoutConstrains > xChild( aChildren[ i ] );
++
++                    uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY);
++                    if ( xWin.is() )
++                        xWin->setVisible( bVisible );
++
++                    uno::Reference < awt::XLayoutContainer > xChildCont(
++                        xChild, uno::UNO_QUERY );
++                    setChildrenVisible( xChildCont, bVisible );
++                }
++            }
++        }
++    };
++
++    inner::setChildrenVisible( mxContainer, bShow );
++}
++
++// Container/Table
++Table::Table( sal_Int32 nBorder, sal_Int32 nColumns )
++    : Container( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "table" ) ), nBorder )
++{
++    uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
++    xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Columns" ) ),
++                              uno::Any( nColumns ) );
++}
++
++void Table::Add( Window *pWindow, bool bXExpand, bool bYExpand,
++                 sal_Int32 nXSpan, sal_Int32 nYSpan )
++{
++    if ( !pWindow )
++        return;
++    WindowImpl &rImpl = pWindow->getImpl();
++    uno::Reference< awt::XLayoutConstrains > xChild( rImpl.mxWindow,
++                                                     uno::UNO_QUERY );
++    mxContainer->addChild( xChild );
++    setProps( xChild, bXExpand, bYExpand, nXSpan, nYSpan );
++}
++
++void Table::Add( Container *pContainer, bool bXExpand, bool bYExpand,
++                 sal_Int32 nXSpan, sal_Int32 nYSpan )
++{
++    if ( !pContainer )
++        return;
++    uno::Reference< awt::XLayoutConstrains > xChild( pContainer->getImpl(),
++                                                     uno::UNO_QUERY );
++    mxContainer->addChild( xChild );
++    setProps( xChild, bXExpand, bYExpand, nXSpan, nYSpan );
++}
++
++void Table::setProps( uno::Reference< awt::XLayoutConstrains > xChild,
++                      bool bXExpand, bool bYExpand, sal_Int32 nXSpan, sal_Int32 nYSpan )
++{
++    uno::Reference< beans::XPropertySet > xProps
++        ( mxContainer->getChildProperties( xChild ), uno::UNO_QUERY_THROW );
++    xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "XExpand" ) ),
++                              uno::Any( bXExpand ) );
++    xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "YExpand" ) ),
++                              uno::Any( bYExpand ) );
++    xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "ColSpan" ) ),
++                              uno::Any( nXSpan ) );
++    xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "RowSpan" ) ),
++                              uno::Any( nYSpan ) );
++}
++
++// Container/Box
++Box::Box( const rtl::OUString &rName, sal_Int32 nBorder, bool bHomogeneous )
++    : Container( rName, nBorder )
++{
++    uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
++    xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "Homogeneous" ) ),
++                              uno::Any( bHomogeneous ) );
++}
++
++void Box::Add( Window *pWindow, bool bExpand, bool bFill, sal_Int32 nPadding)
++{
++    if ( !pWindow )
++        return;
++    WindowImpl &rImpl = pWindow->getImpl();
++    uno::Reference< awt::XLayoutConstrains > xChild( rImpl.mxWindow,
++                                                     uno::UNO_QUERY );
++
++    mxContainer->addChild( xChild );
++    setProps( xChild, bExpand, bFill, nPadding );
++}
++
++void Box::Add( Container *pContainer, bool bExpand, bool bFill, sal_Int32 nPadding)
++{
++    if ( !pContainer )
++        return;
++
++    uno::Reference< awt::XLayoutConstrains > xChild( pContainer->getImpl(),
++                                                     uno::UNO_QUERY );
++    mxContainer->addChild( xChild );
++    setProps( xChild, bExpand, bFill, nPadding );
++}
++
++void Box::setProps( uno::Reference< awt::XLayoutConstrains > xChild,
++                    bool bExpand, bool bFill, sal_Int32 nPadding )
++{
++    uno::Reference< beans::XPropertySet > xProps
++        ( mxContainer->getChildProperties( xChild ), uno::UNO_QUERY_THROW );
++
++    xProps->setPropertyValue( rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM( "Expand" ) ),
++                              uno::Any( bExpand ) );
++    xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Fill" ) ),
++                              uno::Any( bFill ) );
++    xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Padding" ) ),
++                              uno::Any( nPadding ) );
++}
++
++}; // end namespace layout
+Index: toolkit/source/vclcompat/wfield.cxx
+===================================================================
+RCS file: toolkit/source/vclcompat/wfield.cxx
+diff -N toolkit/source/vclcompat/wfield.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/vclcompat/wfield.cxx	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,582 @@
++#include "wrapper.hxx"
++
++#include <comphelper/processfactory.hxx>
++#include <com/sun/star/awt/XMetricField.hpp>
++#include <com/sun/star/awt/XCurrencyField.hpp>
++#include <com/sun/star/awt/XTextComponent.hpp>
++#include <com/sun/star/awt/XListBox.hpp>
++#include <com/sun/star/awt/XComboBox.hpp>
++#include <cppuhelper/implbase1.hxx>
++#include <com/sun/star/awt/XActionListener.hpp>
++#include <com/sun/star/awt/XItemListener.hpp>
++
++using namespace ::com::sun::star;
++
++namespace layout
++{
++
++class EditImpl : public ControlImpl,
++                 public ::cppu::WeakImplHelper1< awt::XTextListener >
++{
++    Link maModifyHdl;
++  public:
++    uno::Reference< awt::XTextComponent > mxEdit;
++    EditImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ControlImpl( pCtx, xPeer, pWindow )
++        ,  mxEdit( xPeer, uno::UNO_QUERY )
++    {
++    }
++
++    virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
++        throw (css::uno::RuntimeException)
++    {
++        SetModifyHdl( Link() );
++        mxEdit.clear();
++    }
++
++    void SetModifyHdl( const Link& rLink )
++    {
++        if ( !mxEdit.is() )
++            return;
++        maModifyHdl = rLink;
++        if ( !rLink )
++            mxEdit->removeTextListener( this );
++        else
++            mxEdit->addTextListener( this );
++    }
++
++    void SAL_CALL textChanged( const css::awt::TextEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        maModifyHdl.Call( mpWindow );
++    }
++};
++
++void Edit::SetText( const XubString& rStr ) const
++{
++    if ( !getImpl().mxEdit.is() )
++        return;
++    getImpl().mxEdit->setText( rStr );
++}
++
++XubString Edit::GetText() const
++{
++    if ( !getImpl().mxEdit.is() )
++        return XubString();
++    return XubString( getImpl().mxEdit->getText());
++}
++
++void Edit::SetModifyHdl( const Link& rLink )
++{
++    getImpl().SetModifyHdl( rLink );
++}
++
++DECL_CONSTRUCTOR_IMPLS( Edit, Control, "edit" );
++DECL_GET_IMPL_IMPL( Edit )
++
++// Window/Control/Edit/MultiLineEdit
++class MultiLineEditImpl : public EditImpl
++{
++public:
++    MultiLineEditImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : EditImpl( pCtx, xPeer, pWindow )
++    {
++    }
++};
++
++DECL_CONSTRUCTOR_IMPLS( MultiLineEdit, Edit, "multilineedit" );
++DECL_GET_IMPL_IMPL( MultiLineEdit )
++
++// Window/Control/Edit/SpinField
++class SpinFieldImpl : public EditImpl
++{
++  public:
++    SpinFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : EditImpl( pCtx, xPeer, pWindow ) {}
++};
++
++DECL_CONSTRUCTOR_IMPLS( SpinField, Edit, "spinfield" );
++
++// Window/Control/Edit/SpinField/NumericField
++class NumericFieldImpl : public SpinFieldImpl
++{
++  public:
++    NumericFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : SpinFieldImpl( pCtx, xPeer, pWindow ) {}
++};
++
++// Window/Control/Edit/SpinField/MetricField
++class MetricFieldImpl : public SpinFieldImpl
++{
++  public:
++    MetricFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : SpinFieldImpl( pCtx, xPeer, pWindow ) {}
++};
++
++DECL_GET_IMPL_IMPL( SpinField )
++DECL_GET_IMPL_IMPL( NumericField )
++DECL_GET_IMPL_IMPL( MetricField )
++
++// FormatterBase
++class FormatterBaseImpl
++{
++  protected:
++    PeerHandle mxPeer;
++  public:
++    explicit FormatterBaseImpl( const PeerHandle &xPeer )
++        : mxPeer( xPeer ) {};
++};
++
++class NumericFormatterImpl : public FormatterBaseImpl
++{
++  public:
++    uno::Reference< awt::XCurrencyField > mxField;
++    explicit NumericFormatterImpl( const PeerHandle &xPeer )
++        : FormatterBaseImpl( xPeer )
++        , mxField( xPeer, uno::UNO_QUERY ) {}
++
++    // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
++    double valueToDouble( sal_Int64 nValue )
++    {
++        sal_Int16 nDigits = mxField->getDecimalDigits();
++        double n = nValue;
++        for ( sal_uInt16 d = 0; d < nDigits; d++ )
++            n /= 10;
++        return n;
++    } // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
++    sal_Int64 doubleToValue( double nValue )
++    {
++        sal_Int16 nDigits = mxField->getDecimalDigits();
++        double n = nValue;
++        for ( sal_uInt16 d = 0; d < nDigits; d++ )
++            n *= 10;
++        return (sal_Int64) n;
++    }
++};
++
++class MetricFormatterImpl : public FormatterBaseImpl
++{
++  public:
++    uno::Reference< awt::XMetricField > mxField;
++    explicit MetricFormatterImpl( const PeerHandle &xPeer )
++        : FormatterBaseImpl( xPeer )
++        , mxField( xPeer, uno::UNO_QUERY ) {}
++};
++
++// NumericFormatter
++
++NumericFormatter::NumericFormatter( FormatterBaseImpl *pImpl )
++    : FormatterBase( pImpl )
++{
++}
++
++NumericFormatterImpl& NumericFormatter::getFormatImpl() const
++{
++    return *( static_cast<NumericFormatterImpl *>( mpFormatImpl ) );
++}
++
++#define SET_IMPL(vclmethod, idlmethod) \
++    void NumericFormatter::vclmethod( sal_Int64 nValue ) \
++    { \
++        if ( !getFormatImpl().mxField.is() ) \
++            return; \
++        getFormatImpl().mxField->idlmethod( getFormatImpl().valueToDouble( nValue ) ); \
++    }
++
++SET_IMPL( SetMin, setMin )
++SET_IMPL( SetMax, setMax )
++SET_IMPL( SetLast, setLast )
++SET_IMPL( SetFirst, setFirst )
++SET_IMPL( SetValue, setValue )
++SET_IMPL( SetSpinSize, setSpinSize )
++
++sal_Int64 NumericFormatter::GetValue() const
++{
++    if ( !getFormatImpl().mxField.is() )
++        return 0;
++    return getFormatImpl().doubleToValue( getFormatImpl().mxField->getValue() );
++}
++
++#undef SET_IMPL
++
++DECL_CONSTRUCTOR_IMPLS_2( NumericField, SpinField, NumericFormatter, "numericfield" );
++
++// MetricFormatter
++
++MetricFormatter::MetricFormatter( FormatterBaseImpl *pImpl )
++    : FormatterBase( pImpl ) {}
++MetricFormatterImpl& MetricFormatter::getFormatImpl() const
++{    return *( static_cast<MetricFormatterImpl *>( mpFormatImpl ) );   }
++
++#define MetricUnitVclToUno(a) ((sal_uInt16)(a))
++
++#define SET_IMPL(vclmethod, idlmethod) \
++    void MetricFormatter::vclmethod( sal_Int64 nValue, FieldUnit nUnit ) \
++    { \
++        if ( !getFormatImpl().mxField.is() ) \
++            return; \
++        getFormatImpl().mxField->idlmethod( nValue, MetricUnitVclToUno( nUnit ) ); \
++    }
++
++SET_IMPL( SetMin, setMin )
++SET_IMPL( SetMax, setMax )
++SET_IMPL( SetLast, setLast )
++SET_IMPL( SetFirst, setFirst )
++SET_IMPL( SetValue, setValue )
++
++#undef SET_IMPL
++
++void MetricFormatter::SetSpinSize( sal_Int64 nValue )
++{
++    if ( !getFormatImpl().mxField.is() )
++        return;
++    getFormatImpl().mxField->setSpinSize( nValue );
++}
++
++sal_Int64 MetricFormatter::GetValue( FieldUnit nUnit ) const
++{
++    if ( !getFormatImpl().mxField.is() )
++        return 0;
++    return getFormatImpl().mxField->getValue( MetricUnitVclToUno( nUnit ) );
++}
++
++DECL_CONSTRUCTOR_IMPLS_2( MetricField, SpinField, MetricFormatter, "metricfield" );
++
++// Window/Control/Edit/ComboBox
++class ComboBoxImpl : public EditImpl,
++                     public ::cppu::WeakImplHelper1< awt::XActionListener >,
++                     public ::cppu::WeakImplHelper1< awt::XItemListener >
++{
++    Link maClickHdl, maSelectHdl;
++public:
++    uno::Reference< awt::XComboBox > mxComboBox;
++    ComboBoxImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : EditImpl( pCtx, xPeer, pWindow ),
++        mxComboBox( xPeer, uno::UNO_QUERY )
++    {
++    }
++
++    USHORT InsertEntry(const XubString& rStr, USHORT nPos)
++    {
++        if ( nPos == COMBOBOX_APPEND )
++            nPos = GetEntryCount();
++        mxComboBox->addItem( rtl::OUString( rStr ), nPos );
++        return nPos;
++    }
++
++    void RemoveEntry( USHORT nPos )
++    {
++        mxComboBox->removeItems( nPos, 1 );
++    }
++
++    USHORT GetEntryPos( const XubString& rStr ) const
++    {
++        uno::Sequence< rtl::OUString> aItems( mxComboBox->getItems() );
++        rtl::OUString rKey( rStr );
++        for( unsigned int i = 0; aItems.getLength(); i++ )
++        {
++            if ( aItems[ i ] == rKey )
++                return i;
++        }
++        return COMBOBOX_ENTRY_NOTFOUND;
++    }
++
++    XubString GetEntry( USHORT nPos ) const
++    {
++        return XubString( mxComboBox->getItem( nPos ) );
++    }
++
++    USHORT GetEntryCount() const
++    {
++        return mxComboBox->getItemCount();
++    }
++
++    void SetClickHdl( const Link& rLink )
++    {
++        maClickHdl = rLink;
++        if ( !rLink )
++            mxComboBox->removeActionListener( this );
++        else
++            mxComboBox->addActionListener( this );
++    }
++
++    void SetSelectHdl( const Link& rLink )
++    {
++        maSelectHdl = rLink;
++        if ( !rLink )
++            mxComboBox->removeItemListener( this );
++        else
++            mxComboBox->addItemListener( this );
++    }
++
++    virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
++        throw (css::uno::RuntimeException)
++    {
++        mxComboBox.clear();
++    }
++
++    virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
++        if ( !pComboBox )
++            return;
++        maClickHdl.Call( pComboBox );
++    }
++
++    virtual void SAL_CALL itemStateChanged( const css::awt::ItemEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
++        if ( !pComboBox )
++            return;
++        maSelectHdl.Call( pComboBox );
++    }
++};
++
++USHORT ComboBox::InsertEntry( const XubString &rStr, USHORT nPos )
++{
++    return getImpl().InsertEntry( rStr, nPos );
++}
++
++void ComboBox::RemoveEntry( const XubString& rStr )
++{
++    getImpl().RemoveEntry( GetEntryPos( rStr ) );
++}
++
++void ComboBox::RemoveEntry( USHORT nPos )
++{
++    getImpl().RemoveEntry( nPos );
++}
++
++void ComboBox::Clear()
++{
++    uno::Sequence< rtl::OUString> aNoItems;
++    getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
++}
++
++USHORT ComboBox::GetEntryPos( const XubString& rStr ) const
++{
++    return getImpl().GetEntryPos( rStr );
++}
++
++XubString ComboBox::GetEntry( USHORT nPos ) const
++{
++    rtl::OUString rItem = getImpl().mxComboBox->getItem( nPos );
++    return XubString( rItem );
++}
++
++USHORT ComboBox::GetEntryCount() const
++{
++    return getImpl().GetEntryCount();
++}
++
++void ComboBox::SetClickHdl( const Link& rLink )
++{
++    getImpl().SetClickHdl( rLink );
++}
++
++void ComboBox::SetSelectHdl( const Link& rLink )
++{
++    getImpl().SetSelectHdl( rLink );
++}
++
++DECL_CONSTRUCTOR_IMPLS( ComboBox, Edit, "combobox" );
++DECL_GET_IMPL_IMPL( ComboBox )
++
++// Window/Control/ListBox
++class ListBoxImpl : public ControlImpl,
++                    public ::cppu::WeakImplHelper1< awt::XActionListener >,
++                    public ::cppu::WeakImplHelper1< awt::XItemListener >
++{
++    Link maClickHdl, maSelectHdl;
++public:
++    uno::Reference< awt::XListBox > mxListBox;
++    ListBoxImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ControlImpl( pCtx, xPeer, pWindow ),
++        mxListBox( xPeer, uno::UNO_QUERY )
++    {
++    }
++
++    USHORT InsertEntry(const XubString& rStr, USHORT nPos)
++    {
++        if ( nPos == LISTBOX_APPEND )
++            nPos = mxListBox->getItemCount();
++        mxListBox->addItem( rtl::OUString( rStr ), nPos );
++        return nPos;
++    }
++
++    void RemoveEntry( USHORT nPos )
++    {
++        mxListBox->removeItems( nPos, 1 );
++    }
++
++    USHORT RemoveEntry(const XubString& rStr, USHORT nPos)
++    {
++        if ( nPos == LISTBOX_APPEND )
++            nPos = mxListBox->getItemCount();
++        mxListBox->addItem( rtl::OUString( rStr ), nPos );
++        return nPos;
++    }
++
++    USHORT GetEntryPos( const XubString& rStr ) const
++    {
++        uno::Sequence< rtl::OUString> aItems( mxListBox->getItems() );
++        rtl::OUString rKey( rStr );
++        for( unsigned int i = 0; aItems.getLength(); i++ )
++        {
++            if ( aItems[ i ] == rKey )
++                return i;
++        }
++        return LISTBOX_ENTRY_NOTFOUND;
++    }
++
++    XubString GetEntry( USHORT nPos ) const
++    {
++        return mxListBox->getItem( nPos );
++    }
++
++    USHORT GetEntryCount() const
++    {
++        return mxListBox->getItemCount();
++    }
++
++    void SelectEntryPos( USHORT nPos, BOOL bSelect )
++    {
++        mxListBox->selectItemPos( nPos, bSelect );
++    }
++
++    USHORT GetSelectEntryCount() const
++    {
++        return mxListBox->getSelectedItems().getLength();
++    }
++
++    USHORT GetSelectEntryPos( USHORT nSelIndex ) const
++    {
++        USHORT nSelected = 0;
++        if ( mxListBox->isMutipleMode() )
++        {
++            uno::Sequence< short > aItems( mxListBox->getSelectedItemsPos() );
++            if ( nSelIndex < aItems.getLength() )
++                nSelected = aItems[ nSelIndex ];
++        }
++        else
++            nSelected = mxListBox->getSelectedItemPos();
++        return nSelected;
++    }
++
++    void SetClickHdl( const Link& rLink )
++    {
++        maClickHdl = rLink;
++        if ( !rLink )
++            mxListBox->removeActionListener( this );
++        else
++            mxListBox->addActionListener( this );
++    }
++
++    void SetSelectHdl( const Link& rLink )
++    {
++        maSelectHdl = rLink;
++        if ( !rLink )
++            mxListBox->removeItemListener( this );
++        else
++            mxListBox->addItemListener( this );
++    }
++
++    virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
++        throw (css::uno::RuntimeException)
++    {
++        mxListBox.clear();
++    }
++
++    void SAL_CALL actionPerformed( const css::awt::ActionEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        maClickHdl.Call( mpWindow );
++    }
++
++    void SAL_CALL itemStateChanged( const css::awt::ItemEvent& /* rEvent */ )
++        throw (css::uno::RuntimeException)
++    {
++        ListBox* pListBox = static_cast<ListBox*>( mpWindow );
++        if ( !pListBox )
++            return;
++        maSelectHdl.Call( pListBox );
++    }
++};
++
++USHORT ListBox::InsertEntry(const XubString& rStr, USHORT nPos)
++{
++    return getImpl().InsertEntry(rStr, nPos);
++}
++
++void ListBox::RemoveEntry( USHORT nPos )
++{
++    return getImpl().RemoveEntry( nPos );
++}
++
++void ListBox::RemoveEntry( const XubString& rStr )
++{
++    return getImpl().RemoveEntry( GetEntryPos( rStr ) );
++}
++
++void ListBox::Clear()
++{
++    uno::Sequence< rtl::OUString> aNoItems;
++    getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
++}
++
++USHORT ListBox::GetEntryPos( const XubString& rStr ) const
++{
++    return getImpl().GetEntryPos( rStr );
++}
++
++XubString ListBox::GetEntry( USHORT nPos ) const
++{
++    return getImpl().GetEntry( nPos );
++}
++
++USHORT ListBox::GetEntryCount() const
++{
++    return getImpl().GetEntryCount();
++}
++
++void ListBox::SelectEntryPos( USHORT nPos, BOOL bSelect )
++{
++    getImpl().SelectEntryPos( nPos, bSelect );
++}
++
++void ListBox::SelectEntry( const XubString& rStr, BOOL bSelect )
++{
++    SelectEntryPos( GetEntryPos( rStr ), bSelect );
++}
++
++USHORT ListBox::GetSelectEntryCount() const
++{
++    return getImpl().GetSelectEntryCount();
++}
++
++USHORT ListBox::GetSelectEntryPos( USHORT nSelIndex ) const
++{
++    return getImpl().GetSelectEntryPos( nSelIndex );
++}
++
++XubString ListBox::GetSelectEntry( USHORT nSelIndex ) const
++{
++    return GetEntry( GetSelectEntryPos( nSelIndex ) );
++}
++
++void ListBox::SetSelectHdl( const Link& rLink )
++{
++    getImpl().SetSelectHdl( rLink );
++}
++
++void ListBox::SetClickHdl( const Link& rLink )
++{
++    getImpl().SetClickHdl( rLink );
++}
++
++DECL_CONSTRUCTOR_IMPLS( ListBox, Control, "listbox" );
++DECL_GET_IMPL_IMPL( ListBox )
++
++}; // end namespace layout
+Index: toolkit/source/vclcompat/wrapper.cxx
+===================================================================
+RCS file: toolkit/source/vclcompat/wrapper.cxx
+diff -N toolkit/source/vclcompat/wrapper.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/vclcompat/wrapper.cxx	11 Feb 2008 15:13:37 -0000	1.1.2.2
+@@ -0,0 +1,461 @@
++#include "wrapper.hxx"
++
++#include <com/sun/star/awt/XFixedText.hpp>
++#include <com/sun/star/awt/XDialog2.hpp>
++#include <com/sun/star/awt/WindowAttribute.hpp>
++#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
++#include <comphelper/processfactory.hxx>
++#include <vcl/window.hxx>
++#include <toolkit/awt/vclxwindow.hxx>
++
++#include "layoutcore.hxx"
++#include "../layout/factory.hxx"
++#include "../layout/root.hxx"
++
++using namespace ::com::sun::star;
++
++namespace layout
++{
++
++// Context bits ...
++class ContextImpl
++{
++    uno::Reference< awt::XLayoutRoot > mxRoot;
++    uno::Reference< container::XNameAccess > mxNameAccess;
++    PeerHandle mxTopLevel;
++
++public:
++    ContextImpl( char const *pPath )
++    {
++        uno::Sequence< uno::Any > aParams( 1 );
++        aParams[0] <<= rtl::OUString( pPath, strlen( pPath ), RTL_TEXTENCODING_UTF8 );
++
++        uno::Reference< lang::XSingleServiceFactory > xFactory(
++            comphelper::createProcessComponent(
++                rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
++            uno::UNO_QUERY );
++        if ( !xFactory.is() )
++        {
++            throw uno::RuntimeException(
++                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Layout engine not installed" ) ),
++                uno::Reference< uno::XInterface >() );
++        }
++        mxRoot = uno::Reference< awt::XLayoutRoot >(
++            xFactory->createInstanceWithArguments( aParams ),
++            uno::UNO_QUERY );
++
++        mxNameAccess = uno::Reference< container::XNameAccess >( mxRoot, uno::UNO_QUERY );
++    }
++
++    ~ContextImpl()
++    {
++    }
++
++    PeerHandle getByName( const rtl::OUString &rName )
++    {
++        uno::Any val = mxNameAccess->getByName( rName );
++        PeerHandle xRet;
++        val >>= xRet;
++        return xRet;
++    }
++    PeerHandle getTopLevel()                 { return mxTopLevel; }
++    void setTopLevel( PeerHandle xToplevel ) { mxTopLevel = xToplevel; }
++    PeerHandle getRoot()                     { return mxRoot; }
++};
++
++Context::Context( const char *pPath )
++    : pImpl( new ContextImpl( pPath ) )
++{
++}
++Context::~Context()
++{
++    delete pImpl;
++    pImpl = NULL;
++}
++
++void Context::setToplevel( PeerHandle xToplevel )
++{
++    pImpl->setTopLevel( xToplevel );
++}
++
++PeerHandle Context::getToplevel()
++{
++    return pImpl->getTopLevel();
++}
++PeerHandle Context::getRoot()
++{
++     return pImpl->getRoot();
++}
++
++PeerHandle Context::GetPeerHandle( const char *pId, sal_uInt32 nId ) const
++{
++    PeerHandle xHandle;
++    xHandle = pImpl->getByName( rtl::OUString( pId, strlen( pId ), RTL_TEXTENCODING_UTF8 ) );
++    if ( !xHandle.is() )
++    {
++        DBG_ERROR1( "Failed to fetch widget '%s'", pId );
++    }
++
++    if ( nId != 0 )
++    {
++        rtl::OString aStr = rtl::OString::valueOf( (sal_Int32) nId );
++        xHandle = GetPeerHandle( aStr, 0 );
++    }
++    return xHandle;
++}
++
++// Window/Dialog
++class DialogImpl : public WindowImpl
++{
++public:
++    uno::Reference< awt::XDialog2 > mxDialog;
++    DialogImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : WindowImpl( pCtx, xPeer, pWindow )
++        , mxDialog( xPeer, uno::UNO_QUERY )
++    {
++    }
++};
++
++// Accessors
++DECL_GET_IMPL_IMPL( Control )
++DECL_GET_IMPL_IMPL( Dialog )
++
++Window::Window( WindowImpl *pImpl )
++: mpImpl( pImpl )
++{
++}
++
++Window::~Window()
++{
++    /* likely to be an UNO object - with floating references */
++    mpImpl->wrapperGone();
++    mpImpl = NULL;
++}
++
++Context *Window::getContext()
++{
++    return this && mpImpl ? mpImpl->mpCtx : NULL;
++}
++
++PeerHandle Window::GetPeer()
++{
++    if (!mpImpl)
++        return PeerHandle();
++    return mpImpl->mxWindow;
++}
++
++struct ToolkitVclPropsMap
++{
++    WinBits vclStyle;
++    long initAttr;
++    const char *propName;
++
++    // the value to give the prop to enable/disable it -- not the most brilliant
++    // type declaration and storage, but does the work... properties are
++    // either a boolean or a short since they are either a directly wrappers for
++    // a WinBit, or aggregates related (like Align for WB_LEFT, _RIGHT and _CENTER).
++    bool isBoolean;
++    short enableProp, disableProp;
++};
++
++#define TYPE_BOOL  true
++#define TYPE_SHORT false
++#define NOTYPE     0
++static const ToolkitVclPropsMap toolkitVclPropsMap[] =
++{
++    { WB_BORDER,    awt::WindowAttribute::BORDER,    "Border", TYPE_SHORT, 1, 0 },
++    { WB_NOBORDER,    awt::VclWindowPeerAttribute::NOBORDER,    "Border", TYPE_SHORT, 0, 1 },
++    { WB_SIZEABLE,    awt::WindowAttribute::SIZEABLE,    NULL, NOTYPE, 0, 0 },
++    { WB_MOVEABLE,    awt::WindowAttribute::MOVEABLE,    NULL, NOTYPE, 0, 0 },
++    { WB_CLOSEABLE,    awt::WindowAttribute::CLOSEABLE,    NULL, NOTYPE, 0, 0 },
++
++    { WB_HSCROLL,    awt::VclWindowPeerAttribute::HSCROLL,    NULL, NOTYPE, 0, 0 },
++    { WB_VSCROLL,    awt::VclWindowPeerAttribute::VSCROLL,    NULL, NOTYPE, 0, 0 },
++    { WB_LEFT,    awt::VclWindowPeerAttribute::LEFT,    "Align", TYPE_SHORT, 0, 0 },
++    { WB_CENTER,    awt::VclWindowPeerAttribute::CENTER,    "Align", TYPE_SHORT, 1, 0 },
++    { WB_RIGHT,    awt::VclWindowPeerAttribute::RIGHT,    "Align", TYPE_SHORT, 2, 0 },
++    { WB_SPIN,    awt::VclWindowPeerAttribute::SPIN,    NULL, NOTYPE, 0, 0 },
++    { WB_SORT,    awt::VclWindowPeerAttribute::SORT,    NULL, NOTYPE, 0, 0 },
++    { WB_DROPDOWN,    awt::VclWindowPeerAttribute::DROPDOWN,    "Dropdown",    TYPE_BOOL, 1, 0 },
++    { WB_DEFBUTTON,    awt::VclWindowPeerAttribute::DEFBUTTON,    "DefaultButton", TYPE_BOOL, 1, 0 },
++    { WB_READONLY,    awt::VclWindowPeerAttribute::READONLY,    NULL, NOTYPE, 0, 0 },
++    { WB_CLIPCHILDREN,    awt::VclWindowPeerAttribute::CLIPCHILDREN,    NULL, NOTYPE, 0, 0 },
++    { WB_GROUP,    awt::VclWindowPeerAttribute::GROUP,    NULL, NOTYPE, 0, 0 },
++
++    { WB_OK,    awt::VclWindowPeerAttribute::OK,    NULL, NOTYPE, 0, 0 },
++    { WB_OK_CANCEL,    awt::VclWindowPeerAttribute::OK_CANCEL,    NULL, NOTYPE, 0, 0 },
++    { WB_YES_NO,    awt::VclWindowPeerAttribute::YES_NO,    NULL, NOTYPE, 0, 0 },
++    { WB_YES_NO_CANCEL,    awt::VclWindowPeerAttribute::YES_NO_CANCEL,    NULL, NOTYPE, 1, 0 },
++    { WB_RETRY_CANCEL,    awt::VclWindowPeerAttribute::RETRY_CANCEL,    NULL, NOTYPE, 1, 0 },
++    { WB_DEF_OK,    awt::VclWindowPeerAttribute::DEF_OK,    NULL, NOTYPE, 0, 0 },
++    { WB_DEF_CANCEL,    awt::VclWindowPeerAttribute::DEF_CANCEL,    NULL, NOTYPE, 1, 0 },
++    { WB_DEF_RETRY,    awt::VclWindowPeerAttribute::DEF_RETRY,    NULL, NOTYPE, 0, 0 },
++    { WB_DEF_YES,    awt::VclWindowPeerAttribute::DEF_YES,    NULL, NOTYPE, 0, 0 },
++    { WB_DEF_NO,    awt::VclWindowPeerAttribute::DEF_NO,    NULL, NOTYPE, 0, 0 },
++
++    { WB_AUTOHSCROLL, awt::VclWindowPeerAttribute::AUTOHSCROLL, "AutoHScroll", TYPE_BOOL, 1, 0 },
++    { WB_AUTOVSCROLL, awt::VclWindowPeerAttribute::AUTOVSCROLL, "AutoVScroll",    TYPE_BOOL, 1, 0 },
++
++    { WB_WORDBREAK,    0,    "MultiLine", TYPE_BOOL, 1, 0 },
++    { WB_NOPOINTERFOCUS,    0,    "FocusOnClick", TYPE_BOOL, 1, 0 },
++    { WB_TOGGLE,    0,    "Toggle", TYPE_BOOL, 1, 0 },
++    { WB_REPEAT,    0,    "Repeat", TYPE_BOOL, 1, 0 },
++    { WB_NOHIDESELECTION,    0,    "HideInactiveSelection", TYPE_BOOL, 1, 0 },
++};
++#undef TYPE_BOOL
++#undef TYPE_SHORT
++#undef NOTYPE
++
++static const int toolkitVclPropsMapLen =
++    sizeof( toolkitVclPropsMap ) / sizeof( ToolkitVclPropsMap );
++
++void Window::SetStyle( WinBits nStyle )
++{
++    uno::Reference< awt::XVclWindowPeer > xPeer = mpImpl->mxVclPeer;
++    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
++    {
++        if ( toolkitVclPropsMap[ i ].propName )
++        {
++            short nValue;
++            if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
++                nValue = toolkitVclPropsMap[ i ].enableProp;
++            else
++                nValue = toolkitVclPropsMap[ i ].disableProp;
++            uno::Any aValue;
++            if ( toolkitVclPropsMap[ i ].isBoolean )
++                aValue = uno::makeAny( (bool) nValue );
++            else
++                aValue = uno::makeAny( (short) nValue );
++            mpImpl->setProperty( toolkitVclPropsMap[ i ].propName, aValue );
++        }
++    }
++}
++
++WinBits Window::GetStyle()
++{
++    uno::Reference< awt::XVclWindowPeer > xPeer = mpImpl->mxVclPeer;
++    WinBits ret = 0;
++    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
++    {
++        if ( toolkitVclPropsMap[ i ].propName )
++        {
++            short nValue;
++            if ( toolkitVclPropsMap[ i ].isBoolean )
++            {
++                bool bValue;
++                mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= bValue;
++                nValue = bValue ? 1 : 0;
++            }
++            else
++                mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= nValue;
++            if ( nValue == toolkitVclPropsMap[ i ].enableProp )
++                ret |= toolkitVclPropsMap[i].vclStyle;
++        }
++    }
++    return ret;
++}
++
++/* Unpleasant way to get an xToolkit pointer ... */
++uno::Reference< awt::XToolkit > getToolkit()
++{
++    static uno::Reference< awt::XToolkit > xToolkit;
++    if (!xToolkit.is())
++    {
++        // Urgh ...
++        xToolkit = uno::Reference< awt::XToolkit >(
++            ::comphelper::getProcessServiceFactory()->createInstance(
++                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
++            uno::UNO_QUERY );
++        if ( !xToolkit.is() )
++            throw uno::RuntimeException(
++                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "failed to create toolkit!") ),
++                uno::Reference< uno::XInterface >() );
++    }
++    return xToolkit;
++}
++
++PeerHandle Window::CreatePeer( Window *pParent, WinBits nStyle, const char *pName)
++{
++
++    long nWinAttrbs = 0;
++    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
++        if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
++            nWinAttrbs |= toolkitVclPropsMap[ i ].initAttr;
++
++    return layoutimpl::createWidget( getToolkit(), pParent->GetPeer(),
++                                     rtl::OUString::createFromAscii( pName ), nWinAttrbs );
++
++
++#if 0
++    awt::WindowDescriptor desc;
++
++    // debugging help ...
++    desc.Bounds.X = 0;
++    desc.Bounds.Y = 0;
++    desc.Bounds.Width = 300;
++    desc.Bounds.Height = 200;
++
++    desc.ParentIndex = 0;
++    // FIXME: this code should be shared with
++    // toolkit/source/awt/vclxtoolkit.cxx (ImplGetWinBits)
++    desc.WindowAttributes = 0;
++    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
++        if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
++            desc.WindowAttributes |= toolkitVclPropsMap[ i ].initAttr;
++    desc.WindowServiceName = rtl::OUString( pName, strlen( pName ),
++                                            RTL_TEXTENCODING_ASCII_US );
++
++    // FIXME: we really want to walk up the peer hierarchy
++    // and get the top-level that this requires.
++    if ( pParent != NULL )
++    {
++        PeerHandle hdl = pParent->GetPeer();
++        desc.Parent = uno::Reference< awt::XWindowPeer >( hdl, uno::UNO_QUERY );
++    }
++
++    PeerHandle xPeer = getToolkit()->createWindow( desc );
++
++    // not all WinBits have an equivalent attribute, some are available through
++    // properties though
++    for( int i = 0; i < toolkitVclPropsMapLen; i++ )
++        if ( nStyle & toolkitVclPropsMap[ i ].vclStyle &&
++            !toolkitVclPropsMap[ i ].initAttr &&
++            toolkitVclPropsMap[ i ].propName )
++        {
++            uno::Any aValue;
++            if ( toolkitVclPropsMap[ i ].isBoolean )
++                aValue = uno::makeAny( (bool) toolkitVclPropsMap[ i ].enableProp );
++            else
++                aValue = uno::makeAny( (short) toolkitVclPropsMap[ i ].enableProp );
++            layoutimpl::prophlp::setProperty( xPeer,
++                                              rtl::OUString::createFromAscii( toolkitVclPropsMap[ i ].propName ), aValue );
++        }
++
++    return xPeer;
++#endif
++}
++
++void Window::Enable( bool bEnable )
++{
++    if ( !getImpl().mxWindow.is() )
++        return;
++    getImpl().mxWindow->setEnable( bEnable );
++}
++
++void Window::Show( BOOL bVisible )
++{
++    if ( !getImpl().mxWindow.is() )
++        return;
++    getImpl().mxWindow->setVisible( bVisible );
++}
++
++void Window::GrabFocus()
++{
++    if ( !getImpl().mxWindow.is() )
++        return;
++    getImpl().mxWindow->setFocus();
++}
++
++Dialog::Dialog( Window *pParent, const char *pXMLPath, const char *pId, sal_uInt32 nId )
++    : Context( pXMLPath )
++    , Window( new DialogImpl( this, Context::GetPeerHandle( pId, nId ), this ) )
++{
++    if ( pParent )
++        SetParent( pParent );
++}
++
++Dialog::Dialog( ::Window *pParent, const char *pXMLPath, const char *pId, sal_uInt32 nId )
++    : Context( pXMLPath )
++    , Window( new DialogImpl( this, Context::GetPeerHandle( pId, nId ), this ) )
++{
++    if ( pParent )
++        SetParent( pParent );
++}
++
++void Dialog::SetParent( ::Window *pParent )
++{
++    uno::Reference <awt::XWindow> ref( GetPeer(), uno::UNO_QUERY );
++    ::Window *window = VCLXWindow::GetImplementation( ref )->GetWindow();
++    window->SetParent( pParent );
++}
++
++void Dialog::SetParent( Window *pParent )
++{
++    uno::Reference <awt::XWindow> parentRef( pParent->GetPeer(), uno::UNO_QUERY );
++    ::Window *parentWindow = VCLXWindow::GetImplementation( parentRef )->GetWindow();
++    SetParent( parentWindow );
++}
++
++short Dialog::Execute()
++{
++    if ( !getImpl().mxDialog.is() )
++        return -1;
++    return getImpl().mxDialog->execute();
++}
++
++void Dialog::EndDialog( long nResult )
++{
++    if ( !getImpl().mxDialog.is() )
++        return;
++    getImpl().mxDialog->endDialog( nResult );
++}
++
++void Dialog::SetText( const String& rStr )
++{
++    if ( !getImpl().mxDialog.is() )
++        return;
++    getImpl().mxDialog->setTitle( rStr );
++}
++
++class FixedLineImpl : public ControlImpl
++{
++public:
++    FixedLineImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ControlImpl( pCtx, xPeer, pWindow )
++    {
++    }
++};
++
++DECL_CONSTRUCTOR_IMPLS( FixedLine, Control, "hfixedline" );
++DECL_GET_IMPL_IMPL( FixedLine )
++
++class FixedTextImpl : public ControlImpl
++{
++public:
++    uno::Reference< awt::XFixedText > mxFixedText;
++    FixedTextImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : ControlImpl( pCtx, xPeer, pWindow )
++        , mxFixedText( xPeer, uno::UNO_QUERY )
++    {
++    }
++
++    virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
++        throw (css::uno::RuntimeException)
++    {
++        mxFixedText.clear();
++    }
++};
++
++DECL_CONSTRUCTOR_IMPLS( FixedText, Control, "fixedtext" );
++DECL_GET_IMPL_IMPL( FixedText )
++
++void FixedText::SetText( const String& rStr )
++{
++    if ( !getImpl().mxFixedText.is() )
++        return;
++    getImpl().mxFixedText->setText( rStr );
++}
++
++class FixedInfoImpl : public FixedTextImpl
++{
++public:
++    FixedInfoImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : FixedTextImpl( pCtx, xPeer, pWindow )
++    {
++    }
++};
++
++DECL_CONSTRUCTOR_IMPLS( FixedInfo, FixedText, "fixedinfo" );
++DECL_GET_IMPL_IMPL( FixedInfo )
++
++}; // end namespace layout
+Index: toolkit/source/vclcompat/wrapper.hxx
+===================================================================
+RCS file: toolkit/source/vclcompat/wrapper.hxx
+diff -N toolkit/source/vclcompat/wrapper.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/source/vclcompat/wrapper.hxx	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,115 @@
++#ifndef WRAPPER_HXX
++#define WRAPPER_HXX
++
++#include <layout/layout.hxx>
++#include <com/sun/star/uno/Reference.hxx>
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/awt/XVclWindowPeer.hpp>
++#include <com/sun/star/graphic/XGraphic.hpp>
++
++#include <cstring>
++
++namespace css = com::sun::star;
++
++namespace layout
++{
++// Window
++class WindowImpl
++{
++  public:
++    Window  *mpWindow;
++    Context *mpCtx;
++    css::uno::Reference< css::awt::XWindow >        mxWindow;
++    css::uno::Reference< css::awt::XVclWindowPeer > mxVclPeer;
++
++    WindowImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : mpWindow ( pWindow )
++        , mpCtx ( pCtx )
++        , mxWindow ( xPeer, css::uno::UNO_QUERY )
++        , mxVclPeer( xPeer, css::uno::UNO_QUERY )
++    {
++    }
++
++    virtual ~WindowImpl()
++    {
++    }
++
++    void wrapperGone()
++    {
++        mpWindow = NULL;
++        mpCtx = NULL;
++        if ( mxWindow.is() )
++        {
++            css::uno::Reference< css::lang::XComponent > xComp( mxWindow, css::uno::UNO_QUERY );
++            mxWindow.clear();
++            if ( xComp.is() )
++                xComp->dispose();
++        }
++    }
++
++    css::uno::Any getProperty( const char *pName )
++    {
++        if ( !this || !mxVclPeer.is() )
++            return css::uno::Any();
++        return mxVclPeer->getProperty
++            ( rtl::OUString( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US ) );
++    }
++    void setProperty( const char *pName, css::uno::Any aAny )
++    {
++        if ( !this || !mxVclPeer.is() )
++            return;
++        mxVclPeer->setProperty
++            ( rtl::OUString( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US ), aAny );
++    }
++};
++
++// Window/Control
++class ControlImpl : public WindowImpl
++{
++  public:
++    ControlImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
++        : WindowImpl( pCtx, xPeer, pWindow ) {}
++};
++
++class ImageImpl
++{
++  public:
++    css::uno::Reference< css::graphic::XGraphic > mxGraphic;
++    ImageImpl( const char *pName );
++};
++
++// Window/Control/Edit
++inline WindowImpl &Window::getImpl() const
++{ return *(static_cast< WindowImpl * >( mpImpl )); }
++
++// Helpers for defining boiler-plate constructors ...
++// Could in-line in top-level but not with safe static_casts.
++#define DECL_GET_IMPL_IMPL(t) \
++    inline t##Impl &t::getImpl() const \
++    { \
++        return *(static_cast<t##Impl *>(mpImpl)); \
++    }
++#define DECL_CONSTRUCTOR_IMPLS(t,par,unoName) \
++    t::t( Context *pCtx, const char *pId, sal_uInt32 nId ) \
++        : par( new t##Impl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) ) \
++    { \
++    } \
++    t::t( Window *pParent, WinBits nBits) \
++        : par( new t##Impl( pParent->getContext(), Window::CreatePeer( pParent, nBits, unoName ), this ) ) \
++    { \
++    }
++#define DECL_CONSTRUCTOR_IMPLS_2(t,win_par,other_par,unoName) \
++    t::t( Context *pCtx, const char *pId, sal_uInt32 nId ) \
++        : win_par( new t##Impl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) ) \
++        , other_par( new other_par##Impl( Window::GetPeer() ) ) \
++    { \
++    } \
++    t::t( Window *pParent, WinBits nBits) \
++        : win_par( new t##Impl( pParent->getContext(), Window::CreatePeer( pParent, nBits, unoName ), this ) ) \
++        , other_par( new other_par##Impl( Window::GetPeer() ) ) \
++    { \
++    }
++
++}; // end namespace layout
++
++#endif // WRAPPER_HXX
+cvs diff: Diffing toolkit/src2xml
+Index: toolkit/src2xml/README
+===================================================================
+RCS file: toolkit/src2xml/README
+diff -N toolkit/src2xml/README
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/README	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,16 @@
++SRC2XML: Convert OO.o resource to Layout XML.
++
++This directory contains a Python script to convert OO.o's existing dialog
++resource files into XML layout files.
++
++The main executable file is located in ./source/src2xml.py.  Run
++
++   source/src2xml.py --help
++
++for more information.
++
++See also: source/dryrunall.sh and ../workben/run-s2x
++
++
++Author: Kohei Yoshida  <kyoshida@novell.com>
++Modifications: Jan Nieuwenhuizen  <jnieuwenhuizen@novell.com>
+Index: toolkit/src2xml/dryrunall.sh
+===================================================================
+RCS file: toolkit/src2xml/dryrunall.sh
+diff -N toolkit/src2xml/dryrunall.sh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/dryrunall.sh	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,2 @@
++#! /bin/bash
++source/src2xml.py --dry-run --includes-from=include.lst $(cat src.lst) "$@"
+Index: toolkit/src2xml/include-sc.lst
+===================================================================
+RCS file: toolkit/src2xml/include-sc.lst
+diff -N toolkit/src2xml/include-sc.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/include-sc.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++../../solver/680/unxlngi6.pro/inc
++../../sc
++../../sc/inc
++../../sc/addin/inc
++../../sc/source/ui/inc
++../../sc/source/core/inc
++../../sc/source/filter/inc
++../../sc/unxlngi6.pro/inc
+Index: toolkit/src2xml/include-sd.lst
+===================================================================
+RCS file: toolkit/src2xml/include-sd.lst
+diff -N toolkit/src2xml/include-sd.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/include-sd.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,6 @@
++../../solver/680/unxlngi6.pro/inc
++../../sd
++../../sd/inc
++../../sd/source/ui/inc
++../../sd/source/ui/slidesorter/inc
++../../sd/unxlngi6.pro/inc
+Index: toolkit/src2xml/include-sw.lst
+===================================================================
+RCS file: toolkit/src2xml/include-sw.lst
+diff -N toolkit/src2xml/include-sw.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/include-sw.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,5 @@
++../../solver/680/unxlngi6.pro/inc
++../../sw/source/ui/inc
++../../sw/source/core/inc
++../../sw/source/filter/inc
++../../sw/unxlngi6.pro/inc
+Index: toolkit/src2xml/include.lst
+===================================================================
+RCS file: toolkit/src2xml/include.lst
+diff -N toolkit/src2xml/include.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/include.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,305 @@
++../../solver/680/unxlngi6.pro/inc
++../../io/inc
++../../io/unxlngi6.pro/inc
++../../sc/inc
++../../sc/addin/inc
++../../sc/source/ui/inc
++../../sc/source/core/inc
++../../sc/source/filter/inc
++../../sc/unxlngi6.pro/inc
++../../sd/inc
++../../sd/source/ui/inc
++../../sd/source/ui/slidesorter/inc
++../../sd/unxlngi6.pro/inc
++../../sw/inc
++../../sw/source/ui/inc
++../../sw/source/core/inc
++../../sw/source/filter/inc
++../../sw/unxlngi6.pro/inc
++../../xt/unxlngi6.pro/inc
++../../agg/inc
++../../icu/unxlngi6.pro/inc
++../../idl/inc
++../../idl/unxlngi6.pro/inc
++../../jut/unxlngi6.pro/inc
++../../nas/unxlngi6.pro/inc
++../../odk/inc
++../../sal/qa/inc
++../../sal/inc
++../../sal/unxlngi6.pro/inc
++../../sax/unxlngi6.pro/inc
++../../sch/inc
++../../sch/source/ui/inc
++../../sch/unxlngi6.pro/inc
++../../sj2/inc
++../../sj2/source/inc
++../../sj2/unxlngi6.pro/inc
++../../rsc/inc
++../../rsc/unxlngi6.pro/inc
++../../so3/inc
++../../so3/unxlngi6.pro/inc
++../../sot/inc
++../../sot/unxlngi6.pro/inc
++../../svx/inc
++../../svx/source/inc
++../../svx/source/unodialogs/inc
++../../svx/unxlngi6.pro/inc
++../../ucb/inc
++../../ucb/source/inc
++../../ucb/unxlngi6.pro/inc
++../../udm/inc
++../../udm/source/inc
++../../vcl/inc
++../../vcl/unx/inc
++../../vcl/unx/source/inc
++../../vcl/win/inc
++../../vcl/aqua/inc
++../../vcl/unxlngi6.pro/inc
++../../ure/unxlngi6.pro/inc
++../../uui/unxlngi6.pro/inc
++../../vos/inc
++../../vos/unxlngi6.pro/inc
++../../dbaccess/inc
++../../dbaccess/source/ui/inc
++../../dbaccess/source/inc
++../../dbaccess/source/core/inc
++../../dbaccess/source/sdbtools/inc
++../../dbaccess/unxlngi6.pro/inc
++../../transex3/inc
++../../transex3/unxlngi6.pro/inc
++../../bean/unxlngi6.pro/inc
++../../cosv/inc
++../../cosv/source/inc
++../../cppu/inc
++../../cppu/unxlngi6.pro/inc
++../../idlc/inc
++../../idlc/unxlngi6.pro/inc
++../../o3tl/inc
++../../o3tl/unxlngi6.pro/inc
++../../jurt/unxlngi6.pro/inc
++../../sane/inc
++../../scp2/inc
++../../scp2/unxlngi6.pro/inc
++../../sfx2/inc
++../../sfx2/source/inc
++../../sfx2/unxlngi6.pro/inc
++../../stoc/inc
++../../stoc/unxlngi6.pro/inc
++../../framework/inc
++../../framework/source/inc
++../../framework/unxlngi6.pro/inc
++../../desktop/inc
++../../desktop/source/inc
++../../desktop/source/deployment/inc
++../../desktop/source/deployment/registry/inc
++../../desktop/unxlngi6.pro/inc
++../../external/unxlngi6.pro/inc
++../../xml2cmp/source/inc
++../../xml2cmp/unxlngi6.pro/inc
++../../xmlhelp/inc
++../../xmlhelp/unxlngi6.pro/inc
++../../soltools/inc
++../../soltools/testSHL/inc
++../../soltools/unxlngi6.pro/inc
++../../unixODBC/inc
++../../basic/inc
++../../basic/source/inc
++../../basic/unxlngi6.pro/inc
++../../boost/unxlngi6.pro/inc
++../../XmlSearch/unxlngi6.pro/inc
++../../fondu/unxlngi6.pro/inc
++../../forms/inc
++../../forms/source/inc
++../../forms/source/solar/inc
++../../forms/unxlngi6.pro/inc
++../../ridljar/unxlngi6.pro/inc
++../../offuh/unxlngi6.pro/inc
++../../pyuno/inc
++../../pyuno/unxlngi6.pro/inc
++../../shell/inc
++../../shell/unxlngi6.pro/inc
++../../store/inc
++../../store/unxlngi6.pro/inc
++../../sysui/unxlngi6.pro/inc
++../../tools/inc
++../../tools/win/inc
++../../tools/unxlngi6.pro/inc
++../../twain/inc
++../../unoil/unxlngi6.pro/inc
++../../cppcanvas/inc
++../../cppcanvas/source/inc
++../../cppcanvas/unxlngi6.pro/inc
++../../sandbox/unxlngi6.pro/inc
++../../eventattacher/unxlngi6.pro/inc
++../../unotools/inc
++../../unotools/unxlngi6.pro/inc
++../../scaddins/unxlngi6.pro/inc
++../../javaunohelper/inc
++../../javaunohelper/unxlngi6.pro/inc
++../../configmgr/inc
++../../configmgr/source/inc
++../../configmgr/unxlngi6.pro/inc
++../../hwpfilter/inc
++../../hwpfilter/unxlngi6.pro/inc
++../../libxmlsec/unxlngi6.pro/inc
++../../jvmaccess/inc
++../../jvmaccess/unxlngi6.pro/inc
++../../comphelper/inc
++../../comphelper/unxlngi6.pro/inc
++../../helpcontent2/unxlngi6.pro/inc
++../../animations/inc
++../../animations/unxlngi6.pro/inc
++../../fileaccess/unxlngi6.pro/inc
++../../i18npool/inc
++../../i18npool/unxlngi6.pro/inc
++../../i18nutil/inc
++../../i18nutil/unxlngi6.pro/inc
++../../accessibility/inc
++../../accessibility/unxlngi6.pro/inc
++../../testshl2/inc
++../../testshl2/source/inc
++../../testshl2/unxlngi6.pro/inc
++../../lpsolve/unxlngi6.pro/inc
++../../setup_native/inc
++../../setup_native/unxlngi6.pro/inc
++../../embedserv/source/inc
++../../psprint_config/unxlngi6.pro/inc
++../../basctl/inc
++../../basctl/source/inc
++../../basctl/unxlngi6.pro/inc
++../../cpputools/unxlngi6.pro/inc
++../../stlport/unxlngi6.pro/inc
++../../canvas/inc
++../../canvas/unxlngi6.pro/inc
++../../embeddedobj/inc
++../../embeddedobj/source/inc
++../../embeddedobj/unxlngi6.pro/inc
++../../chart2/inc
++../../chart2/source/inc
++../../chart2/source/view/inc
++../../chart2/source/model/inc
++../../chart2/source/controller/inc
++../../chart2/unxlngi6.pro/inc
++../../scsolver/source/inc
++../../scsolver/unxlngi6.pro/inc
++../../automation/inc
++../../automation/source/inc
++../../automation/unxlngi6.pro/inc
++../../portaudio/unxlngi6.pro/inc
++../../svtools/inc
++../../svtools/unx/inc
++../../svtools/source/inc
++../../svtools/unxlngi6.pro/inc
++../../dtrans/inc
++../../dtrans/source/inc
++../../dtrans/unxlngi6.pro/inc
++../../x11_extensions/inc
++../../fpicker/inc
++../../fpicker/unxlngi6.pro/inc
++../../filter/inc
++../../filter/unxlngi6.pro/inc
++../../extras/unxlngi6.pro/inc
++../../writerperfect/unxlngi6.pro/inc
++../../toolkit/inc
++../../toolkit/unxlngi6.pro/inc
++../../officecfg/unxlngi6.pro/inc
++../../unodevtools/inc
++../../unodevtools/unxlngi6.pro/inc
++../../cppuhelper/inc
++../../cppuhelper/unxlngi6.pro/inc
++../../jvmfwk/inc
++../../jvmfwk/unxlngi6.pro/inc
++../../layout/inc
++../../layout/unxlngi6.pro/inc
++../../linguistic/inc
++../../linguistic/unxlngi6.pro/inc
++../../libegg/inc
++../../libegg/unxlngi6.pro/inc
++../../libwpd/unxlngi6.pro/inc
++../../libwpg/unxlngi6.pro/inc
++../../libwps/unxlngi6.pro/inc
++../../lingucomponent/inc
++../../lingucomponent/unxlngi6.pro/inc
++../../np_sdk/unxlngi6.pro/inc
++../../offapi/unxlngi6.pro/inc
++../../xmlsecurity/inc
++../../xmlsecurity/unxlngi6.pro/inc
++../../padmin/unxlngi6.pro/inc
++../../goodies/inc
++../../goodies/unxlngi6.pro/inc
++../../regexp/inc
++../../regexp/unxlngi6.pro/inc
++../../ucbhelper/inc
++../../ucbhelper/unxlngi6.pro/inc
++../../berkeleydb/unxlngi6.pro/inc
++../../UnoControls/inc
++../../UnoControls/source/inc
++../../UnoControls/unxlngi6.pro/inc
++../../msfontextract/unxlngi6.pro/inc
++../../solenv/inc
++../../solenv/unxmacxp/inc
++../../solver/680/unxlngi6.pro/inc
++../../postprocess/unxlngi6.pro/inc
++../../udkapi/unxlngi6.pro/inc
++../../unoxml/unxlngi6.pro/inc
++../../starmath/inc
++../../starmath/unxlngi6.pro/inc
++../../mdbtools/unxlngi6.pro/inc
++../../basebmp/inc
++../../basegfx/inc
++../../basegfx/source/inc
++../../basegfx/unxlngi6.pro/inc
++../../xmerge/inc
++../../xmerge/source/inc
++../../xmerge/unxlngi6.pro/inc
++../../xmloff/inc
++../../xmloff/unxlngi6.pro/inc
++../../oovbaapi/unxlngi6.pro/inc
++../../package/inc
++../../package/unxlngi6.pro/inc
++../../extensions/inc
++../../extensions/source/inc
++../../extensions/source/plugin/inc
++../../extensions/unxlngi6.pro/inc
++../../codemaker/inc
++../../codemaker/unxlngi6.pro/inc
++../../salhelper/inc
++../../salhelper/unxlngi6.pro/inc
++../../rdbmaker/inc
++../../rdbmaker/unxlngi6.pro/inc
++../../instsetoo_native/unxlngi6.pro/inc
++../../autodoc/inc
++../../autodoc/source/ary/inc
++../../autodoc/source/inc
++../../autodoc/source/display/inc
++../../autodoc/source/parser_i/inc
++../../autodoc/source/parser/inc
++../../avmedia/inc
++../../avmedia/source/inc
++../../avmedia/unxlngi6.pro/inc
++../../lotuswordpro/unxlngi6.pro/inc
++../../remotebridges/unxlngi6.pro/inc
++../../slideshow/inc
++../../slideshow/source/inc
++../../slideshow/unxlngi6.pro/inc
++../../connectivity/inc
++../../connectivity/source/inc
++../../connectivity/unxlngi6.pro/inc
++../../readlicense_oo/unxlngi6.pro/inc
++../../scripting/inc
++../../scripting/source/inc
++../../scripting/unxlngi6.pro/inc
++../../wizards/unxlngi6.pro/inc
++../../xmlscript/inc
++../../xmlscript/source/inc
++../../xmlscript/unxlngi6.pro/inc
++../../bridges/inc
++../../bridges/unxlngi6.pro/inc
++../../testtools/inc
++../../testtools/unxlngi6.pro/inc
++../../registry/inc
++../../registry/unxlngi6.pro/inc
++../../cli_ure/inc
++../../cli_ure/unxlngi6.pro/inc
++../../psprint/inc
++../../psprint/unxlngi6.pro/inc
+\ No newline at end of file
+Index: toolkit/src2xml/sc.sh
+===================================================================
+RCS file: toolkit/src2xml/sc.sh
+diff -N toolkit/src2xml/sc.sh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/sc.sh	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,3 @@
++#!/bin/bash
++
++source/src2xml.py --include-path=$(tr '\n' ':' < include-sc.lst) --dry-run $(cat src-sc.lst) "$@"
+Index: toolkit/src2xml/sd.sh
+===================================================================
+RCS file: toolkit/src2xml/sd.sh
+diff -N toolkit/src2xml/sd.sh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/sd.sh	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,3 @@
++#!/bin/bash
++
++source/src2xml.py --include-path=$(tr '\n' ':' < include-sd.lst) --dry-run $(cat src-sd.lst) "$@"
+Index: toolkit/src2xml/src-sc.lst
+===================================================================
+RCS file: toolkit/src2xml/src-sc.lst
+diff -N toolkit/src2xml/src-sc.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/src-sc.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,57 @@
++../../sc/util/hidother.src
++../../sc/addin/datefunc/dfa.src
++../../sc/addin/rot13/rot13.src
++../../sc/source/ui/src/crnrdlg.src
++../../sc/source/ui/src/hdrcont.src
++../../sc/source/ui/src/solvrdlg.src
++../../sc/source/ui/src/miscdlgs.src
++../../sc/source/ui/src/tabopdlg.src
++../../sc/source/ui/src/popup.src
++../../sc/source/ui/src/autofmt.src
++../../sc/source/ui/src/toolbox.src
++../../sc/source/ui/src/opredlin.src
++../../sc/source/ui/src/namedlg.src
++../../sc/source/ui/src/sortdlg.src
++../../sc/source/ui/src/textdlgs.src
++../../sc/source/ui/src/optdlg.src
++../../sc/source/ui/src/scwarngs.src
++../../sc/source/ui/src/scfuncs.src
++../../sc/source/ui/src/filter.src
++../../sc/source/ui/src/simpref.src
++../../sc/source/ui/src/attrdlg.src
++../../sc/source/ui/src/sc.src
++../../sc/source/ui/src/globstr.src
++../../sc/source/ui/src/scstring.src
++../../sc/source/ui/src/dbnamdlg.src
++../../sc/source/ui/src/subtdlg.src
++../../sc/source/ui/src/pseudo.src
++../../sc/source/ui/src/condfrmt.src
++../../sc/source/ui/src/chartdlg.src
++../../sc/source/ui/src/scerrors.src
++../../sc/source/ui/dbgui/outline.src
++../../sc/source/ui/dbgui/pvfundlg.src
++../../sc/source/ui/dbgui/scendlg.src
++../../sc/source/ui/dbgui/pivot.src
++../../sc/source/ui/dbgui/dpgroupdlg.src
++../../sc/source/ui/dbgui/dapitype.src
++../../sc/source/ui/dbgui/imoptdlg.src
++../../sc/source/ui/dbgui/consdlg.src
++../../sc/source/ui/dbgui/validate.src
++../../sc/source/ui/dbgui/asciiopt.src
++../../sc/source/ui/drawfunc/objdraw.src
++../../sc/source/ui/drawfunc/drformsh.src
++../../sc/source/ui/styleui/scstyles.src
++../../sc/source/ui/styleui/styledlg.src
++../../sc/source/ui/formdlg/parawin.src
++../../sc/source/ui/formdlg/dwfunctr.src
++../../sc/source/ui/formdlg/formdlgs.src
++../../sc/source/ui/navipi/navipi.src
++../../sc/source/ui/miscdlgs/acredlin.src
++../../sc/source/ui/miscdlgs/highred.src
++../../sc/source/ui/miscdlgs/linkarea.src
++../../sc/source/ui/miscdlgs/instbdlg.src
++../../sc/source/ui/pagedlg/pagedlg.src
++../../sc/source/ui/pagedlg/tphf.src
++../../sc/source/ui/pagedlg/hfedtdlg.src
++../../sc/source/ui/docshell/tpstat.src
++../../sc/source/core/src/compiler.src
+Index: toolkit/src2xml/src-sd.lst
+===================================================================
+RCS file: toolkit/src2xml/src-sd.lst
+diff -N toolkit/src2xml/src-sd.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/src-sd.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,124 @@
++../../sd/util/hidother.src
++../../sd/source/ui/app/tbxids_tmpl.src
++../../sd/source/ui/app/popup2_tmpl.src
++../../sd/source/ui/app/popup.src
++../../sd/source/ui/app/toolbox.src
++../../sd/source/ui/app/menuids2_tmpl.src
++../../sd/source/ui/app/sdstring.src
++../../sd/source/ui/app/menu_tmpl.src
++../../sd/source/ui/app/strings.src
++../../sd/source/ui/app/menuids_tmpl.src
++../../sd/source/ui/app/accel_tmpl.src
++../../sd/source/ui/app/tbx_ww.src
++../../sd/source/ui/app/accelids_tmpl.src
++../../sd/source/ui/app/menuportal_tmpl.src
++../../sd/source/ui/app/menuids3_tmpl.src
++../../sd/source/ui/app/app.src
++../../sd/source/ui/app/res_bmp.src
++../../sd/source/ui/app/pseudo.src
++../../sd/source/ui/app/menuids4_tmpl.src
++../../sd/source/ui/app/toolbox2_tmpl.src
++../../sd/source/ui/dlg/headerfooterdlg.src
++../../sd/source/ui/dlg/dlgfield.src
++../../sd/source/ui/dlg/sdobjpal.src
++../../sd/source/ui/dlg/morphdlg.src
++../../sd/source/ui/dlg/PaneDockingWindow.src
++../../sd/source/ui/dlg/dlgsnap.src
++../../sd/source/ui/dlg/tpoption.src
++../../sd/source/ui/dlg/present.src
++../../sd/source/ui/dlg/sdpreslt.src
++../../sd/source/ui/dlg/dlgass.src
++../../sd/source/ui/dlg/tpaction.src
++../../sd/source/ui/dlg/prntopts.src
++../../sd/source/ui/dlg/prltempl.src
++../../sd/source/ui/dlg/custsdlg.src
++../../sd/source/ui/dlg/inspagob.src
++../../sd/source/ui/dlg/paragr.src
++../../sd/source/ui/dlg/dlgpage.src
++../../sd/source/ui/dlg/vectdlg.src
++../../sd/source/ui/dlg/dlgolbul.src
++../../sd/source/ui/dlg/copydlg.src
++../../sd/source/ui/dlg/dlg_char.src
++../../sd/source/ui/dlg/printdlg.src
++../../sd/source/ui/dlg/ins_page.src
++../../sd/source/ui/dlg/animobjs.src
++../../sd/source/ui/dlg/ins_paste.src
++../../sd/source/ui/dlg/tabtempl.src
++../../sd/source/ui/dlg/LayerDialog.src
++../../sd/source/ui/dlg/masterlayoutdlg.src
++../../sd/source/ui/dlg/navigatr.src
++../../sd/source/ui/dlg/brkdlg.src
++../../sd/source/ui/slidesorter/shell/SlideSorterChildWindow.src
++../../sd/source/ui/notes/NotesChildWindow.src
++../../sd/source/ui/toolpanel/ToolPanelChildWindow.src
++../../sd/source/ui/animations/CustomAnimationCreateDialog.src
++../../sd/source/ui/animations/CustomAnimationDialog.src
++../../sd/source/ui/animations/CustomAnimation.src
++../../sd/source/ui/animations/CustomAnimationSchemesPane.src
++../../sd/source/ui/animations/SlideTransitionPane.src
++../../sd/source/ui/animations/AnimationSchemesPane.src
++../../sd/source/ui/animations/CustomAnimationPane.src
++../../sd/source/ui/accessibility/accessibility.src
++../../sd/source/ui/slideshow/slideshow.src
++../../sd/source/core/glob.src
++../../sd/source/filter/html/pubdlg.src
++../../sd/unxlngi6.pro/inc/menu.src
++../../sd/unxlngi6.pro/inc/menuids2.src
++../../sd/unxlngi6.pro/inc/menuids3.src
++../../sd/unxlngi6.pro/inc/menuids4.src
++../../sd/unxlngi6.pro/inc/popup2.src
++../../sd/unxlngi6.pro/inc/toolbox2.src
++../../sd/unxlngi6.pro/inc/accel.src
++../../sd/unxlngi6.pro/inc/menuids.src
++../../sd/unxlngi6.pro/inc/menuportal.src
++../../sd/unxlngi6.pro/inc/accelids.src
++../../sd/unxlngi6.pro/inc/tbxids.src
++../../sd/unxlngi6.pro/misc/app/popup.src
++../../sd/unxlngi6.pro/misc/app/toolbox.src
++../../sd/unxlngi6.pro/misc/app/sdstring.src
++../../sd/unxlngi6.pro/misc/app/strings.src
++../../sd/unxlngi6.pro/misc/app/tbx_ww.src
++../../sd/unxlngi6.pro/misc/app/app.src
++../../sd/unxlngi6.pro/misc/app/res_bmp.src
++../../sd/unxlngi6.pro/misc/app/pseudo.src
++../../sd/unxlngi6.pro/misc/dlg/headerfooterdlg.src
++../../sd/unxlngi6.pro/misc/dlg/dlgfield.src
++../../sd/unxlngi6.pro/misc/dlg/morphdlg.src
++../../sd/unxlngi6.pro/misc/dlg/PaneDockingWindow.src
++../../sd/unxlngi6.pro/misc/dlg/dlgsnap.src
++../../sd/unxlngi6.pro/misc/dlg/tpoption.src
++../../sd/unxlngi6.pro/misc/dlg/present.src
++../../sd/unxlngi6.pro/misc/dlg/sdpreslt.src
++../../sd/unxlngi6.pro/misc/dlg/dlgass.src
++../../sd/unxlngi6.pro/misc/dlg/tpaction.src
++../../sd/unxlngi6.pro/misc/dlg/prntopts.src
++../../sd/unxlngi6.pro/misc/dlg/prltempl.src
++../../sd/unxlngi6.pro/misc/dlg/custsdlg.src
++../../sd/unxlngi6.pro/misc/dlg/inspagob.src
++../../sd/unxlngi6.pro/misc/dlg/paragr.src
++../../sd/unxlngi6.pro/misc/dlg/dlgpage.src
++../../sd/unxlngi6.pro/misc/dlg/vectdlg.src
++../../sd/unxlngi6.pro/misc/dlg/dlgolbul.src
++../../sd/unxlngi6.pro/misc/dlg/copydlg.src
++../../sd/unxlngi6.pro/misc/dlg/dlg_char.src
++../../sd/unxlngi6.pro/misc/dlg/printdlg.src
++../../sd/unxlngi6.pro/misc/dlg/ins_page.src
++../../sd/unxlngi6.pro/misc/dlg/animobjs.src
++../../sd/unxlngi6.pro/misc/dlg/ins_paste.src
++../../sd/unxlngi6.pro/misc/dlg/tabtempl.src
++../../sd/unxlngi6.pro/misc/dlg/LayerDialog.src
++../../sd/unxlngi6.pro/misc/dlg/masterlayoutdlg.src
++../../sd/unxlngi6.pro/misc/dlg/navigatr.src
++../../sd/unxlngi6.pro/misc/dlg/brkdlg.src
++../../sd/unxlngi6.pro/misc/core/glob.src
++../../sd/unxlngi6.pro/misc/html/pubdlg.src
++../../sd/unxlngi6.pro/misc/notes/NotesChildWindow.src
++../../sd/unxlngi6.pro/misc/accessibility/accessibility.src
++../../sd/unxlngi6.pro/misc/animui/CustomAnimationCreateDialog.src
++../../sd/unxlngi6.pro/misc/animui/CustomAnimationDialog.src
++../../sd/unxlngi6.pro/misc/animui/CustomAnimation.src
++../../sd/unxlngi6.pro/misc/animui/CustomAnimationSchemesPane.src
++../../sd/unxlngi6.pro/misc/animui/SlideTransitionPane.src
++../../sd/unxlngi6.pro/misc/animui/AnimationSchemesPane.src
++../../sd/unxlngi6.pro/misc/animui/CustomAnimationPane.src
++../../sd/unxlngi6.pro/misc/slideshow/slideshow.src
+Index: toolkit/src2xml/src-sw.lst
+===================================================================
+RCS file: toolkit/src2xml/src-sw.lst
+diff -N toolkit/src2xml/src-sw.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/src-sw.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,121 @@
++../../sw/sdi/swslots.src
++../../sw/util/hidother.src
++../../sw/source/ui/app/mn.src
++../../sw/source/ui/app/app.src
++../../sw/source/ui/app/error.src
++../../sw/source/ui/web/web.src
++../../sw/source/ui/dbui/addresslistdialog.src
++../../sw/source/ui/dbui/customizeaddresslistdialog.src
++../../sw/source/ui/dbui/mailmergewizard.src
++../../sw/source/ui/dbui/mmlayoutpage.src
++../../sw/source/ui/dbui/dbui.src
++../../sw/source/ui/dbui/createaddresslistdialog.src
++../../sw/source/ui/dbui/mmoutputpage.src
++../../sw/source/ui/dbui/dbtablepreviewdialog.src
++../../sw/source/ui/dbui/mmmergepage.src
++../../sw/source/ui/dbui/dbinsdlg.src
++../../sw/source/ui/dbui/selectdbtabledialog.src
++../../sw/source/ui/dbui/mmoutputtypepage.src
++../../sw/source/ui/dbui/mailmergechildwindow.src
++../../sw/source/ui/dbui/mmpreparemergepage.src
++../../sw/source/ui/dbui/mmdocselectpage.src
++../../sw/source/ui/dbui/mmgreetingspage.src
++../../sw/source/ui/dbui/mmaddressblockpage.src
++../../sw/source/ui/misc/linenum.src
++../../sw/source/ui/misc/outline.src
++../../sw/source/ui/misc/glosbib.src
++../../sw/source/ui/misc/pgfnote.src
++../../sw/source/ui/misc/redlndlg.src
++../../sw/source/ui/misc/glossary.src
++../../sw/source/ui/misc/numberingtypelistbox.src
++../../sw/source/ui/misc/autocorr.src
++../../sw/source/ui/misc/insfnote.src
++../../sw/source/ui/misc/srtdlg.src
++../../sw/source/ui/misc/num.src
++../../sw/source/ui/misc/pggrid.src
++../../sw/source/ui/misc/bookmark.src
++../../sw/source/ui/misc/docfnote.src
++../../sw/source/ui/misc/insrule.src
++../../sw/source/ui/docvw/docvw.src
++../../sw/source/ui/docvw/access.src
++../../sw/source/ui/fldui/javaedit.src
++../../sw/source/ui/fldui/fldref.src
++../../sw/source/ui/fldui/fldtdlg.src
++../../sw/source/ui/fldui/fldfunc.src
++../../sw/source/ui/fldui/flddok.src
++../../sw/source/ui/fldui/flddinf.src
++../../sw/source/ui/fldui/inpdlg.src
++../../sw/source/ui/fldui/flddb.src
++../../sw/source/ui/fldui/changedb.src
++../../sw/source/ui/fldui/fldvar.src
++../../sw/source/ui/fldui/DropDownFieldDialog.src
++../../sw/source/ui/fldui/fldui.src
++../../sw/source/ui/fmtui/tmpdlg.src
++../../sw/source/ui/fmtui/fmtui.src
++../../sw/source/ui/index/cnttab.src
++../../sw/source/ui/index/multmrk.src
++../../sw/source/ui/index/idxmrk.src
++../../sw/source/ui/lingu/olmenu.src
++../../sw/source/ui/table/colwd.src
++../../sw/source/ui/table/rowht.src
++../../sw/source/ui/table/tautofmt.src
++../../sw/source/ui/table/splittbl.src
++../../sw/source/ui/table/chartins.src
++../../sw/source/ui/table/tabledlg.src
++../../sw/source/ui/table/split.src
++../../sw/source/ui/table/convert.src
++../../sw/source/ui/table/insrc.src
++../../sw/source/ui/table/table.src
++../../sw/source/ui/table/mergetbl.src
++../../sw/source/ui/table/instable.src
++../../sw/source/ui/utlui/utlui.src
++../../sw/source/ui/utlui/initui.src
++../../sw/source/ui/utlui/navipi.src
++../../sw/source/ui/utlui/attrdesc.src
++../../sw/source/ui/utlui/gloslst.src
++../../sw/source/ui/utlui/poolfmt.src
++../../sw/source/ui/utlui/unotools.src
++../../sw/source/ui/wrtsh/wrtsh.src
++../../sw/source/ui/chrdlg/chardlg.src
++../../sw/source/ui/chrdlg/swbreak.src
++../../sw/source/ui/chrdlg/ccoll.src
++../../sw/source/ui/chrdlg/paradlg.src
++../../sw/source/ui/chrdlg/drpcps.src
++../../sw/source/ui/chrdlg/chrdlg.src
++../../sw/source/ui/chrdlg/numpara.src
++../../sw/source/ui/config/mailconfigpage.src
++../../sw/source/ui/config/optcomp.src
++../../sw/source/ui/config/optdlg.src
++../../sw/source/ui/config/optload.src
++../../sw/source/ui/config/redlopt.src
++../../sw/source/ui/dialog/abstract.src
++../../sw/source/ui/dialog/docstdlg.src
++../../sw/source/ui/dialog/ascfldlg.src
++../../sw/source/ui/dialog/dialog.src
++../../sw/source/ui/dialog/regionsw.src
++../../sw/source/ui/dialog/wordcountdialog.src
++../../sw/source/ui/dochdl/dochdl.src
++../../sw/source/ui/dochdl/selglos.src
++../../sw/source/ui/envelp/mailmrge.src
++../../sw/source/ui/envelp/envelp.src
++../../sw/source/ui/envelp/labprt.src
++../../sw/source/ui/envelp/envlop.src
++../../sw/source/ui/envelp/label.src
++../../sw/source/ui/envelp/envfmt.src
++../../sw/source/ui/envelp/labfmt.src
++../../sw/source/ui/envelp/envprt.src
++../../sw/source/ui/smartmenu/stmenu.src
++../../sw/source/ui/frmdlg/frmpage.src
++../../sw/source/ui/frmdlg/cption.src
++../../sw/source/ui/frmdlg/column.src
++../../sw/source/ui/frmdlg/wrap.src
++../../sw/source/ui/frmdlg/frmui.src
++../../sw/source/ui/globdoc/globdoc.src
++../../sw/source/ui/ribbar/tbxanchr.src
++../../sw/source/ui/ribbar/workctrl.src
++../../sw/source/ui/ribbar/inputwin.src
++../../sw/source/ui/ribbar/tblctrl.src
++../../sw/source/ui/shells/shells.src
++../../sw/source/ui/uiview/pview.src
++../../sw/source/ui/uiview/view.src
++../../sw/source/core/undo/undo.src
+Index: toolkit/src2xml/src.lst
+===================================================================
+RCS file: toolkit/src2xml/src.lst
+diff -N toolkit/src2xml/src.lst
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/src.lst	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,696 @@
++../../sc/util/hidother.src
++../../sc/addin/datefunc/dfa.src
++../../sc/addin/rot13/rot13.src
++../../sc/source/ui/src/crnrdlg.src
++../../sc/source/ui/src/hdrcont.src
++../../sc/source/ui/src/solvrdlg.src
++../../sc/source/ui/src/miscdlgs.src
++../../sc/source/ui/src/tabopdlg.src
++../../sc/source/ui/src/popup.src
++../../sc/source/ui/src/autofmt.src
++../../sc/source/ui/src/toolbox.src
++../../sc/source/ui/src/opredlin.src
++../../sc/source/ui/src/namedlg.src
++../../sc/source/ui/src/sortdlg.src
++../../sc/source/ui/src/textdlgs.src
++../../sc/source/ui/src/optdlg.src
++../../sc/source/ui/src/scwarngs.src
++../../sc/source/ui/src/scfuncs.src
++../../sc/source/ui/src/filter.src
++../../sc/source/ui/src/simpref.src
++../../sc/source/ui/src/attrdlg.src
++../../sc/source/ui/src/sc.src
++../../sc/source/ui/src/globstr.src
++../../sc/source/ui/src/scstring.src
++../../sc/source/ui/src/dbnamdlg.src
++../../sc/source/ui/src/subtdlg.src
++../../sc/source/ui/src/pseudo.src
++../../sc/source/ui/src/condfrmt.src
++../../sc/source/ui/src/scerrors.src
++../../sc/source/ui/dbgui/outline.src
++../../sc/source/ui/dbgui/pvfundlg.src
++../../sc/source/ui/dbgui/scendlg.src
++../../sc/source/ui/dbgui/pivot.src
++../../sc/source/ui/dbgui/dpgroupdlg.src
++../../sc/source/ui/dbgui/dapitype.src
++../../sc/source/ui/dbgui/imoptdlg.src
++../../sc/source/ui/dbgui/consdlg.src
++../../sc/source/ui/dbgui/validate.src
++../../sc/source/ui/dbgui/asciiopt.src
++../../sc/source/ui/drawfunc/objdraw.src
++../../sc/source/ui/drawfunc/drformsh.src
++../../sc/source/ui/styleui/scstyles.src
++../../sc/source/ui/styleui/styledlg.src
++../../sc/source/ui/formdlg/parawin.src
++../../sc/source/ui/formdlg/dwfunctr.src
++../../sc/source/ui/formdlg/formdlgs.src
++../../sc/source/ui/navipi/navipi.src
++../../sc/source/ui/miscdlgs/acredlin.src
++../../sc/source/ui/miscdlgs/highred.src
++../../sc/source/ui/miscdlgs/linkarea.src
++../../sc/source/ui/miscdlgs/instbdlg.src
++../../sc/source/ui/pagedlg/pagedlg.src
++../../sc/source/ui/pagedlg/tphf.src
++../../sc/source/ui/pagedlg/hfedtdlg.src
++../../sc/source/ui/docshell/tpstat.src
++../../sc/source/core/src/compiler.src
++../../sd/util/hidother.src
++../../sd/source/ui/app/tbxids_tmpl.src
++../../sd/source/ui/app/popup2_tmpl.src
++../../sd/source/ui/app/popup.src
++../../sd/source/ui/app/toolbox.src
++../../sd/source/ui/app/menuids2_tmpl.src
++../../sd/source/ui/app/sdstring.src
++../../sd/source/ui/app/menu_tmpl.src
++../../sd/source/ui/app/strings.src
++../../sd/source/ui/app/menuids_tmpl.src
++../../sd/source/ui/app/accel_tmpl.src
++../../sd/source/ui/app/tbx_ww.src
++../../sd/source/ui/app/accelids_tmpl.src
++../../sd/source/ui/app/menuportal_tmpl.src
++../../sd/source/ui/app/menuids3_tmpl.src
++../../sd/source/ui/app/app.src
++../../sd/source/ui/app/res_bmp.src
++../../sd/source/ui/app/pseudo.src
++../../sd/source/ui/app/menuids4_tmpl.src
++../../sd/source/ui/app/toolbox2_tmpl.src
++../../sd/source/ui/dlg/headerfooterdlg.src
++../../sd/source/ui/dlg/dlgfield.src
++../../sd/source/ui/dlg/sdobjpal.src
++../../sd/source/ui/dlg/morphdlg.src
++../../sd/source/ui/dlg/PaneDockingWindow.src
++../../sd/source/ui/dlg/dlgsnap.src
++../../sd/source/ui/dlg/tpoption.src
++../../sd/source/ui/dlg/present.src
++../../sd/source/ui/dlg/sdpreslt.src
++../../sd/source/ui/dlg/dlgass.src
++../../sd/source/ui/dlg/tpaction.src
++../../sd/source/ui/dlg/prntopts.src
++../../sd/source/ui/dlg/prltempl.src
++../../sd/source/ui/dlg/custsdlg.src
++../../sd/source/ui/dlg/inspagob.src
++../../sd/source/ui/dlg/paragr.src
++../../sd/source/ui/dlg/dlgpage.src
++../../sd/source/ui/dlg/vectdlg.src
++../../sd/source/ui/dlg/dlgolbul.src
++../../sd/source/ui/dlg/copydlg.src
++../../sd/source/ui/dlg/dlg_char.src
++../../sd/source/ui/dlg/printdlg.src
++../../sd/source/ui/dlg/animobjs.src
++../../sd/source/ui/dlg/ins_paste.src
++../../sd/source/ui/dlg/tabtempl.src
++../../sd/source/ui/dlg/LayerDialog.src
++../../sd/source/ui/dlg/masterlayoutdlg.src
++../../sd/source/ui/dlg/navigatr.src
++../../sd/source/ui/dlg/brkdlg.src
++../../sd/source/ui/slidesorter/shell/SlideSorterChildWindow.src
++../../sd/source/ui/notes/NotesChildWindow.src
++../../sd/source/ui/toolpanel/ToolPanelChildWindow.src
++../../sd/source/ui/animations/CustomAnimationCreateDialog.src
++../../sd/source/ui/animations/CustomAnimationDialog.src
++../../sd/source/ui/animations/CustomAnimation.src
++../../sd/source/ui/animations/CustomAnimationSchemesPane.src
++../../sd/source/ui/animations/SlideTransitionPane.src
++../../sd/source/ui/animations/AnimationSchemesPane.src
++../../sd/source/ui/animations/CustomAnimationPane.src
++../../sd/source/ui/accessibility/accessibility.src
++../../sd/source/ui/slideshow/slideshow.src
++../../sd/source/core/glob.src
++../../sd/source/filter/html/pubdlg.src
++../../sw/sdi/swslots.src
++../../sw/util/hidother.src
++../../sw/source/ui/app/mn.src
++../../sw/source/ui/app/app.src
++../../sw/source/ui/app/error.src
++../../sw/source/ui/web/web.src
++../../sw/source/ui/dbui/addresslistdialog.src
++../../sw/source/ui/dbui/customizeaddresslistdialog.src
++../../sw/source/ui/dbui/mailmergewizard.src
++../../sw/source/ui/dbui/mmlayoutpage.src
++../../sw/source/ui/dbui/dbui.src
++../../sw/source/ui/dbui/createaddresslistdialog.src
++../../sw/source/ui/dbui/mmoutputpage.src
++../../sw/source/ui/dbui/dbtablepreviewdialog.src
++../../sw/source/ui/dbui/mmmergepage.src
++../../sw/source/ui/dbui/dbinsdlg.src
++../../sw/source/ui/dbui/selectdbtabledialog.src
++../../sw/source/ui/dbui/mmoutputtypepage.src
++../../sw/source/ui/dbui/mailmergechildwindow.src
++../../sw/source/ui/dbui/mmpreparemergepage.src
++../../sw/source/ui/dbui/mmdocselectpage.src
++../../sw/source/ui/dbui/mmgreetingspage.src
++../../sw/source/ui/dbui/mmaddressblockpage.src
++../../sw/source/ui/misc/linenum.src
++../../sw/source/ui/misc/outline.src
++../../sw/source/ui/misc/glosbib.src
++../../sw/source/ui/misc/pgfnote.src
++../../sw/source/ui/misc/redlndlg.src
++../../sw/source/ui/misc/glossary.src
++../../sw/source/ui/misc/numberingtypelistbox.src
++../../sw/source/ui/misc/autocorr.src
++../../sw/source/ui/misc/insfnote.src
++../../sw/source/ui/misc/srtdlg.src
++../../sw/source/ui/misc/num.src
++../../sw/source/ui/misc/pggrid.src
++../../sw/source/ui/misc/bookmark.src
++../../sw/source/ui/misc/docfnote.src
++../../sw/source/ui/misc/insrule.src
++../../sw/source/ui/docvw/docvw.src
++../../sw/source/ui/docvw/access.src
++../../sw/source/ui/fldui/javaedit.src
++../../sw/source/ui/fldui/fldref.src
++../../sw/source/ui/fldui/fldtdlg.src
++../../sw/source/ui/fldui/fldfunc.src
++../../sw/source/ui/fldui/flddok.src
++../../sw/source/ui/fldui/flddinf.src
++../../sw/source/ui/fldui/inpdlg.src
++../../sw/source/ui/fldui/flddb.src
++../../sw/source/ui/fldui/changedb.src
++../../sw/source/ui/fldui/fldvar.src
++../../sw/source/ui/fldui/DropDownFieldDialog.src
++../../sw/source/ui/fldui/fldui.src
++../../sw/source/ui/fmtui/tmpdlg.src
++../../sw/source/ui/fmtui/fmtui.src
++../../sw/source/ui/index/cnttab.src
++../../sw/source/ui/index/multmrk.src
++../../sw/source/ui/index/idxmrk.src
++../../sw/source/ui/lingu/olmenu.src
++../../sw/source/ui/table/colwd.src
++../../sw/source/ui/table/rowht.src
++../../sw/source/ui/table/tautofmt.src
++../../sw/source/ui/table/splittbl.src
++../../sw/source/ui/table/chartins.src
++../../sw/source/ui/table/tabledlg.src
++../../sw/source/ui/table/split.src
++../../sw/source/ui/table/convert.src
++../../sw/source/ui/table/insrc.src
++../../sw/source/ui/table/table.src
++../../sw/source/ui/table/mergetbl.src
++../../sw/source/ui/table/instable.src
++../../sw/source/ui/utlui/utlui.src
++../../sw/source/ui/utlui/initui.src
++../../sw/source/ui/utlui/navipi.src
++../../sw/source/ui/utlui/attrdesc.src
++../../sw/source/ui/utlui/gloslst.src
++../../sw/source/ui/utlui/poolfmt.src
++../../sw/source/ui/utlui/unotools.src
++../../sw/source/ui/wrtsh/wrtsh.src
++../../sw/source/ui/chrdlg/chardlg.src
++../../sw/source/ui/chrdlg/swbreak.src
++../../sw/source/ui/chrdlg/ccoll.src
++../../sw/source/ui/chrdlg/paradlg.src
++../../sw/source/ui/chrdlg/drpcps.src
++../../sw/source/ui/chrdlg/chrdlg.src
++../../sw/source/ui/chrdlg/numpara.src
++../../sw/source/ui/config/mailconfigpage.src
++../../sw/source/ui/config/optcomp.src
++../../sw/source/ui/config/optdlg.src
++../../sw/source/ui/config/optload.src
++../../sw/source/ui/config/redlopt.src
++../../sw/source/ui/dialog/abstract.src
++../../sw/source/ui/dialog/docstdlg.src
++../../sw/source/ui/dialog/ascfldlg.src
++../../sw/source/ui/dialog/dialog.src
++../../sw/source/ui/dialog/regionsw.src
++../../sw/source/ui/dialog/wordcountdialog.src
++../../sw/source/ui/dochdl/dochdl.src
++../../sw/source/ui/dochdl/selglos.src
++../../sw/source/ui/envelp/mailmrge.src
++../../sw/source/ui/envelp/envelp.src
++../../sw/source/ui/envelp/labprt.src
++../../sw/source/ui/envelp/envlop.src
++../../sw/source/ui/envelp/label.src
++../../sw/source/ui/envelp/envfmt.src
++../../sw/source/ui/envelp/labfmt.src
++../../sw/source/ui/envelp/envprt.src
++../../sw/source/ui/smartmenu/stmenu.src
++../../sw/source/ui/frmdlg/frmpage.src
++../../sw/source/ui/frmdlg/cption.src
++../../sw/source/ui/frmdlg/column.src
++../../sw/source/ui/frmdlg/wrap.src
++../../sw/source/ui/frmdlg/frmui.src
++../../sw/source/ui/globdoc/globdoc.src
++../../sw/source/ui/ribbar/tbxanchr.src
++../../sw/source/ui/ribbar/workctrl.src
++../../sw/source/ui/ribbar/inputwin.src
++../../sw/source/ui/ribbar/tblctrl.src
++../../sw/source/ui/shells/shells.src
++../../sw/source/ui/uiview/pview.src
++../../sw/source/ui/uiview/view.src
++../../sw/source/core/undo/undo.src
++../../sch/util/hidother.src
++../../sch/source/ui/app/res_hc_bmp.src
++../../sch/source/ui/app/menu_tmpl.src
++../../sch/source/ui/app/strings.src
++../../sch/source/ui/app/menuids_tmpl.src
++../../sch/source/ui/app/app.src
++../../sch/source/ui/app/res_bmp.src
++../../sch/source/ui/dlg/axisgrid.src
++../../sch/source/ui/dlg/attrib2.src
++../../sch/source/ui/dlg/attrib3.src
++../../sch/source/ui/dlg/attrib4.src
++../../sch/source/ui/dlg/tpappopt.src
++../../sch/source/ui/dlg/tplabel.src
++../../sch/source/ui/dlg/attrib.src
++../../sch/source/ui/dlg/title.src
++../../sch/source/ui/dlg/lightdlg.src
++../../sch/source/ui/dlg/viewdlg.src
++../../sch/source/ui/dlg/dgrdata.src
++../../sch/source/ui/dlg/dlggraut.src
++../../sch/source/ui/dlg/tpscaley.src
++../../sch/source/ui/dlg/datdescr.src
++../../sch/source/ui/dlg/legend.src
++../../sch/source/ui/dlg/diagrtyp.src
++../../sch/source/ui/dlg/datstat.src
++../../sch/source/core/glob.src
++../../so3/src/svuidlg.src
++../../so3/src/formats.src
++../../so3/src/nocode.src
++../../so3/util/hidother.src
++../../so3/workben/ddetest/ddetest.src
++../../so3/workben/paintdlg.src
++../../so3/workben/svser.src
++../../so3/workben/paint.src
++../../svx/util/hidother.src
++../../svx/source/src/app.src
++../../svx/source/form/fmstring.src
++../../svx/source/form/filtnav.src
++../../svx/source/form/fmexpl.src
++../../svx/source/form/fmsearch.src
++../../svx/source/form/tbxform.src
++../../svx/source/form/formshell.src
++../../svx/source/form/datanavi.src
++../../svx/source/intro/ooo.src
++../../svx/source/intro/iso.src
++../../svx/source/items/svxitems.src
++../../svx/source/items/svxerr.src
++../../svx/source/editeng/editeng.src
++../../svx/source/accessibility/accessibility.src
++../../svx/source/mnuctrls/mnuctrls.src
++../../svx/source/engine3d/float3d.src
++../../svx/source/engine3d/string3d.src
++../../svx/source/dialog/textanim.src
++../../svx/source/dialog/hyperdlg.src
++../../svx/source/dialog/textattr.src
++../../svx/source/dialog/tabarea.src
++../../svx/source/dialog/rubydialog.src
++../../svx/source/dialog/frmdirlbox.src
++../../svx/source/dialog/chardlg.src
++../../svx/source/dialog/numfmt.src
++../../svx/source/dialog/doclinkdialog.src
++../../svx/source/dialog/treeopt.src
++../../svx/source/dialog/page.src
++../../svx/source/dialog/opthtml.src
++../../svx/source/dialog/frmsel.src
++../../svx/source/dialog/ruler.src
++../../svx/source/dialog/optgdlg.src
++../../svx/source/dialog/fontwork.src
++../../svx/source/dialog/backgrnd.src
++../../svx/source/dialog/SpellDialog.src
++../../svx/source/dialog/labdlg.src
++../../svx/source/dialog/charmap.src
++../../svx/source/dialog/zoom.src
++../../svx/source/dialog/border.src
++../../svx/source/dialog/svuidlg.src
++../../svx/source/dialog/impgrf.src
++../../svx/source/dialog/dlgname.src
++../../svx/source/dialog/test.src
++../../svx/source/dialog/selector.src
++../../svx/source/dialog/optupdt.src
++../../svx/source/dialog/numpages.src
++../../svx/source/dialog/thesdlg.src
++../../svx/source/dialog/tabline.src
++../../svx/source/dialog/srchdlg.src
++../../svx/source/dialog/contdlg.src
++../../svx/source/dialog/paragrph.src
++../../svx/source/dialog/commonlingui.src
++../../svx/source/dialog/sdstring.src
++../../svx/source/dialog/optmemory.src
++../../svx/source/dialog/grfflt.src
++../../svx/source/dialog/langbox.src
++../../svx/source/dialog/bbdlg.src
++../../svx/source/dialog/hangulhanjadlg.src
++../../svx/source/dialog/txenctab.src
++../../svx/source/dialog/connpooloptions.src
++../../svx/source/dialog/dbregister.src
++../../svx/source/dialog/macropg.src
++../../svx/source/dialog/fontsubs.src
++../../svx/source/dialog/align.src
++../../svx/source/dialog/hyprlink.src
++../../svx/source/dialog/imapdlg.src
++../../svx/source/dialog/dlgctrl.src
++../../svx/source/dialog/tabstpge.src
++../../svx/source/dialog/readonlyimage.src
++../../svx/source/dialog/docrecovery.src
++../../svx/source/dialog/hlmarkwn.src
++../../svx/source/dialog/internationaloptions.src
++../../svx/source/dialog/optjava.src
++../../svx/source/dialog/language.src
++../../svx/source/dialog/hdft.src
++../../svx/source/dialog/lingu.src
++../../svx/source/dialog/grfpage.src
++../../svx/source/dialog/iconcdlg.src
++../../svx/source/dialog/swframeposstrings.src
++../../svx/source/dialog/connect.src
++../../svx/source/dialog/bmpmask.src
++../../svx/source/dialog/postdlg.src
++../../svx/source/dialog/checklbx.src
++../../svx/source/dialog/autocdlg.src
++../../svx/source/dialog/measure.src
++../../svx/source/dialog/cfg.src
++../../svx/source/dialog/scriptdlg.src
++../../svx/source/dialog/langtab.src
++../../svx/source/dialog/srchxtra.src
++../../svx/source/dialog/ctredlin.src
++../../svx/source/dialog/passwd.src
++../../svx/source/dialog/transfrm.src
++../../svx/source/dialog/optfltr.src
++../../svx/source/dialog/prtqry.src
++../../svx/source/dialog/eventdlg.src
++../../svx/source/dialog/hyphen.src
++../../svx/source/dialog/swpossizetabpage.src
++../../svx/source/dialog/dstribut.src
++../../svx/source/svxlink/linkmgr.src
++../../svx/source/fmcomp/gridctrl.src
++../../svx/source/fmcomp/showcols.src
++../../svx/source/outliner/outliner.src
++../../svx/source/unodraw/unodraw.src
++../../svx/source/svdraw/svdstr.src
++../../svx/source/stbctrls/stbctrls.src
++../../svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.src
++../../svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.src
++../../svx/source/toolbars/fontworkbar.src
++../../svx/source/toolbars/extrusionbar.src
++../../svx/source/options/optlingu.src
++../../svx/source/options/optasian.src
++../../svx/source/options/optdict.src
++../../svx/source/options/optinet2.src
++../../svx/source/options/optspell.src
++../../svx/source/options/optsave.src
++../../svx/source/options/optgrid.src
++../../svx/source/options/multipat.src
++../../svx/source/options/optcolor.src
++../../svx/source/options/optpath.src
++../../svx/source/options/optctl.src
++../../svx/source/options/optaccessibility.src
++../../svx/source/options/optjsearch.src
++../../svx/source/options/optgenrl.src
++../../svx/source/gallery2/gallery.src
++../../svx/source/gallery2/galtheme.src
++../../svx/source/tbxctrls/extrusioncontrols.src
++../../svx/source/tbxctrls/tbcontrl.src
++../../svx/source/tbxctrls/fontworkgallery.src
++../../svx/source/tbxctrls/lboxctrl.src
++../../svx/source/tbxctrls/linectrl.src
++../../svx/source/tbxctrls/tbxdraw.src
++../../svx/source/tbxctrls/grafctrl.src
++../../svx/source/tbxctrls/colrctrl.src
++../../vcl/source/src/menu.src
++../../vcl/source/src/stdtext.src
++../../vcl/source/src/images.src
++../../vcl/source/src/helptext.src
++../../vcl/source/src/btntext.src
++../../vcl/source/src/units.src
++../../uui/source/passworderrs.src
++../../uui/source/logindlg.src
++../../uui/source/passworddlg.src
++../../uui/source/ids.src
++../../uui/source/masterpassworddlg.src
++../../uui/source/passcrtdlg.src
++../../uui/source/cookiedg.src
++../../uui/source/fltdlg.src
++../../uui/source/masterpasscrtdlg.src
++../../dbaccess/util/hidother.src
++../../dbaccess/source/ui/app/app.src
++../../dbaccess/source/ui/dlg/indexdialog.src
++../../dbaccess/source/ui/dlg/RelationDlg.src
++../../dbaccess/source/ui/dlg/queryfilter.src
++../../dbaccess/source/ui/dlg/AdvancedPageDlg.src
++../../dbaccess/source/ui/dlg/queryorder.src
++../../dbaccess/source/ui/dlg/dbadmin.src
++../../dbaccess/source/ui/dlg/dsselect.src
++../../dbaccess/source/ui/dlg/paramdialog.src
++../../dbaccess/source/ui/dlg/CollectionView.src
++../../dbaccess/source/ui/dlg/sqlmessage.src
++../../dbaccess/source/ui/dlg/UserAdmin.src
++../../dbaccess/source/ui/dlg/ConnectionPage.src
++../../dbaccess/source/ui/dlg/dlgattr.src
++../../dbaccess/source/ui/dlg/AutoControls.src
++../../dbaccess/source/ui/dlg/dlgsave.src
++../../dbaccess/source/ui/dlg/UserAdminDlg.src
++../../dbaccess/source/ui/dlg/directsql.src
++../../dbaccess/source/ui/dlg/dlgsize.src
++../../dbaccess/source/ui/dlg/AdabasStat.src
++../../dbaccess/source/ui/dlg/dbfindex.src
++../../dbaccess/source/ui/dlg/dbadminsetup.src
++../../dbaccess/source/ui/dlg/AdabasStatDlg.src
++../../dbaccess/source/ui/dlg/adtabdlg.src
++../../dbaccess/source/ui/dlg/dbadmin2.src
++../../dbaccess/source/ui/uno/dbinteraction.src
++../../dbaccess/source/ui/misc/WizardPages.src
++../../dbaccess/source/ui/misc/dbumiscres.src
++../../dbaccess/source/ui/control/undosqledit.src
++../../dbaccess/source/ui/control/TableGrantCtrl.src
++../../dbaccess/source/ui/control/tabletree.src
++../../dbaccess/source/ui/imagelists/dbimagelists.src
++../../dbaccess/source/ui/relationdesign/relation.src
++../../dbaccess/source/ui/tabledesign/table.src
++../../dbaccess/source/ui/querydesign/querydlg.src
++../../dbaccess/source/ui/querydesign/query.src
++../../dbaccess/source/ui/browser/bcommon.src
++../../dbaccess/source/ui/browser/sbagrid.src
++../../dbaccess/source/ui/browser/sbabrw.src
++../../dbaccess/source/core/resource/strings.src
++../../dbaccess/source/sdbtools/resource/sdbt_strings.src
++../../sfx2/util/hidother.src
++../../sfx2/source/doc/sfxbasemodel.src
++../../sfx2/source/doc/doctempl.src
++../../sfx2/source/doc/doc.src
++../../sfx2/source/doc/secmacrowarnings.src
++../../sfx2/source/doc/new.src
++../../sfx2/source/doc/docvor.src
++../../sfx2/source/doc/graphhelp.src
++../../sfx2/source/doc/doctdlg.src
++../../sfx2/source/appl/dde.src
++../../sfx2/source/appl/newhelp.src
++../../sfx2/source/appl/sfx.src
++../../sfx2/source/appl/app.src
++../../sfx2/source/menu/menu.src
++../../sfx2/source/view/view.src
++../../sfx2/source/bastyp/fltfnc.src
++../../sfx2/source/bastyp/bastyp.src
++../../sfx2/source/config/config.src
++../../sfx2/source/dialog/recfloat.src
++../../sfx2/source/dialog/templdlg.src
++../../sfx2/source/dialog/newstyle.src
++../../sfx2/source/dialog/dinfdlg.src
++../../sfx2/source/dialog/alienwarn.src
++../../sfx2/source/dialog/dinfedt.src
++../../sfx2/source/dialog/printopt.src
++../../sfx2/source/dialog/srchdlg.src
++../../sfx2/source/dialog/mailwindow.src
++../../sfx2/source/dialog/dialog.src
++../../sfx2/source/dialog/macropg.src
++../../sfx2/source/dialog/versdlg.src
++../../sfx2/source/dialog/mgetempl.src
++../../sfx2/source/dialog/filedlghelper.src
++../../sfx2/source/dialog/cfg.src
++../../sfx2/source/dialog/passwd.src
++../../framework/util/hidother.src
++../../framework/source/classes/resource.src
++../../desktop/util/hidother.src
++../../desktop/source/app/desktop.src
++../../desktop/source/deployment/gui/dp_gui_dependencydialog.src
++../../desktop/source/deployment/gui/dp_gui_backend.src
++../../desktop/source/deployment/gui/dp_gui_versionboxes.src
++../../desktop/source/deployment/gui/dp_gui_updatedialog.src
++../../desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
++../../desktop/source/deployment/gui/dp_gui_dialog.src
++../../desktop/source/deployment/misc/dp_misc.src
++../../desktop/source/deployment/manager/dp_manager.src
++../../desktop/source/deployment/unopkg/unopkg.src
++../../desktop/source/deployment/registry/sfwk/dp_sfwk.src
++../../desktop/source/deployment/registry/component/dp_component.src
++../../desktop/source/deployment/registry/dp_registry.src
++../../desktop/source/deployment/registry/configuration/dp_configuration.src
++../../desktop/source/deployment/registry/script/dp_script.src
++../../desktop/source/deployment/registry/package/dp_package.src
++../../desktop/source/migration/migration.src
++../../desktop/source/migration/wizard.src
++../../basic/source/app/basic.src
++../../basic/source/app/ttmsg.src
++../../basic/source/app/svtmsg.src
++../../basic/source/app/testtool.src
++../../basic/source/app/basmsg.src
++../../basic/source/sbx/format.src
++../../basic/source/classes/sb.src
++../../basic/workben/basmgr.src
++../../forms/source/resource/xforms.src
++../../forms/source/resource/strings.src
++../../scaddins/source/datefunc/datefunc.src
++../../scaddins/source/analysis/analysis_deffuncnames.src
++../../scaddins/source/analysis/analysis.src
++../../scaddins/source/analysis/analysis_funcnames.src
++../../basctl/util/hidother.src
++../../basctl/source/dlged/dlgresid.src
++../../basctl/source/dlged/managelang.src
++../../basctl/source/basicide/tbxctl.src
++../../basctl/source/basicide/moptions.src
++../../basctl/source/basicide/macrodlg.src
++../../basctl/source/basicide/objdlg.src
++../../basctl/source/basicide/basidesh.src
++../../basctl/source/basicide/moduldlg.src
++../../basctl/source/basicide/brkdlg.src
++../../chart2/source/controller/menu/ContextMenu.src
++../../chart2/source/controller/menu/MainMenu.src
++../../chart2/source/controller/dialogs/tp_DataLabel.src
++../../chart2/source/controller/dialogs/Strings_ChartTypes.src
++../../chart2/source/controller/dialogs/dlg_InsertTitle.src
++../../chart2/source/controller/dialogs/Strings.src
++../../chart2/source/controller/dialogs/tp_SeriesStatistic.src
++../../chart2/source/controller/dialogs/dlg_InsertDataLabel.src
++../../chart2/source/controller/dialogs/Strings_Statistic.src
++../../chart2/source/controller/dialogs/dlg_InsertLegend.src
++../../chart2/source/controller/dialogs/dlg_RotateDiagram.src
++../../chart2/source/controller/dialogs/tp_PointGeometry.src
++../../chart2/source/controller/dialogs/dlg_ObjectProperties.src
++../../chart2/source/controller/dialogs/Bitmaps_HC.src
++../../chart2/source/controller/dialogs/tp_TitleRotation.src
++../../chart2/source/controller/dialogs/dlg_ChartType.src
++../../chart2/source/controller/dialogs/Bitmaps.src
++../../chart2/source/controller/dialogs/dlg_InsertStatistic.src
++../../chart2/source/controller/dialogs/Strings_Scale.src
++../../chart2/source/controller/dialogs/tp_LegendPosition.src
++../../chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src
++../../chart2/source/controller/dialogs/tp_AxisLabel.src
++../../chart2/source/controller/dialogs/tp_SeriesToAxis.src
++../../chart2/source/controller/dialogs/tp_Scale.src
++../../scsolver/source/ui/scsolver.src
++../../automation/source/miniapp/servres.src
++../../svtools/util/hidother.src
++../../svtools/bmpmaker/bmp.src
++../../svtools/source/uno/unoifac2.src
++../../svtools/source/java/javaerror.src
++../../svtools/source/java/patchjavaerror.src
++../../svtools/source/misc/imagemgr.src
++../../svtools/source/misc/iniman.src
++../../svtools/source/misc/config.src
++../../svtools/source/misc/errtxt.src
++../../svtools/source/misc/ehdl.src
++../../svtools/source/misc/helpagent.src
++../../svtools/source/control/ctrlbox.src
++../../svtools/source/control/ctrltool.src
++../../svtools/source/control/calendar.src
++../../svtools/source/control/filectrl.src
++../../svtools/source/dialogs/colrdlg.src
++../../svtools/source/dialogs/addresstemplate.src
++../../svtools/source/dialogs/prnsetup.src
++../../svtools/source/dialogs/formats.src
++../../svtools/source/dialogs/filedlg2.src
++../../svtools/source/dialogs/so3res.src
++../../svtools/source/dialogs/printdlg.src
++../../svtools/source/dialogs/logindlg.src
++../../svtools/source/dialogs/wizardmachine.src
++../../svtools/source/misc1/mediatyp.src
++../../svtools/source/brwbox/editbrowsebox.src
++../../svtools/source/contnr/fileview.src
++../../svtools/source/contnr/svcontnr.src
++../../svtools/source/contnr/templwin.src
++../../svtools/source/items1/cstitem.src
++../../svtools/source/filter.vcl/filter/dlgepng.src
++../../svtools/source/filter.vcl/filter/dlgexpor.src
++../../svtools/source/filter.vcl/filter/dlgejpg.src
++../../svtools/source/filter.vcl/filter/strings.src
++../../svtools/source/Accessibility/accessiblelistboxentry.src
++../../svtools/source/productregistration/registrationdlg.src
++../../svtools/source/plugapp/commtest.src
++../../svtools/source/plugapp/testtool.src
++../../fpicker/source/office/OfficeFilePicker.src
++../../fpicker/source/office/iodlg.src
++../../filter/source/pdf/impdialog.src
++../../filter/source/pdf/pdf.src
++../../filter/source/t602/t602filter.src
++../../filter/source/flash/impswfdialog.src
++../../filter/source/xsltdialog/xmlfiltertabdialog.src
++../../filter/source/xsltdialog/xmlfiltersettingsdialog.src
++../../filter/source/xsltdialog/xmlfileview.src
++../../filter/source/xsltdialog/xmlfilterdialogstrings.src
++../../filter/source/xsltdialog/hidother.src
++../../filter/source/xsltdialog/xmlfiltertabpagexslt.src
++../../filter/source/xsltdialog/xmlfiltertestdialog.src
++../../filter/source/xsltdialog/xmlfiltertabpagebasic.src
++../../toolkit/source/awt/accessiblestrings.src
++../../toolkit/source/awt/xthrobber.src
++../../xmlsecurity/source/dialogs/warnings.src
++../../xmlsecurity/source/dialogs/macrosecurity.src
++../../xmlsecurity/source/dialogs/certificatechooser.src
++../../xmlsecurity/source/dialogs/digitalsignaturesdialog.src
++../../xmlsecurity/source/dialogs/certificateviewer.src
++../../xmlsecurity/source/component/warnbox.src
++../../padmin/source/rtsetup.src
++../../padmin/source/padialog.src
++../../goodies/source/inv/strings.src
++../../goodies/source/inv/gegner.src
++../../goodies/source/filter.vcl/eps/epsstr.src
++../../goodies/source/filter.vcl/eps/dlgeps.src
++../../goodies/source/filter.vcl/egif/dlgegif.src
++../../goodies/source/filter.vcl/egif/egifstr.src
++../../goodies/source/filter.vcl/epbm/dlgepbm.src
++../../goodies/source/filter.vcl/epbm/epbmstr.src
++../../goodies/source/filter.vcl/epgm/dlgepgm.src
++../../goodies/source/filter.vcl/epgm/epgmstr.src
++../../goodies/source/filter.vcl/eppm/dlgeppm.src
++../../goodies/source/filter.vcl/eppm/eppmstr.src
++../../goodies/source/filter.vcl/epict/dlgepct.src
++../../goodies/source/filter.vcl/epict/epictstr.src
++../../goodies/source/filter.vcl/eos2met/dlgeos2.src
++../../goodies/source/filter.vcl/eos2met/eos2mstr.src
++../../ucbhelper/workben/ucbexplorer/ucbexplorer.src
++../../starmath/util/hidother.src
++../../starmath/source/commands.src
++../../starmath/source/symbol.src
++../../starmath/source/menu_tmpl.src
++../../starmath/source/smres.src
++../../extensions/qa/complex/extensions/orl_de.src
++../../extensions/qa/complex/extensions/orl_en-US.src
++../../extensions/util/hidother.src
++../../extensions/source/bibliography/menu.src
++../../extensions/source/bibliography/toolbar.src
++../../extensions/source/bibliography/datman.src
++../../extensions/source/bibliography/sections.src
++../../extensions/source/bibliography/hidother.src
++../../extensions/source/bibliography/bib.src
++../../extensions/source/scanner/grid.src
++../../extensions/source/scanner/sanedlg.src
++../../extensions/source/dbpilots/dbpilots.src
++../../extensions/source/dbpilots/gridpages.src
++../../extensions/source/dbpilots/listcombopages.src
++../../extensions/source/dbpilots/groupboxpages.src
++../../extensions/source/dbpilots/commonpagesdbp.src
++../../extensions/source/abpilot/abspilot.src
++../../extensions/source/update/ui/updatecheckui.src
++../../extensions/source/propctrlr/taborder.src
++../../extensions/source/propctrlr/listselectiondlg.src
++../../extensions/source/propctrlr/formlinkdialog.src
++../../extensions/source/propctrlr/fontdialog.src
++../../extensions/source/propctrlr/selectlabeldialog.src
++../../extensions/source/propctrlr/pcrmiscres.src
++../../extensions/source/propctrlr/formres.src
++../../extensions/source/propctrlr/newdatatype.src
++../../extensions/source/propctrlr/propres.src
++../../extensions/source/preload/preload.src
++../../extensions/workben/testresource.src
++../../avmedia/util/hidother.src
++../../avmedia/source/framework/mediacontrol.src
++../../avmedia/source/viewer/mediawindow.src
++../../connectivity/source/resource/conn_shared_res.src
++../../connectivity/source/drivers/hsqldb/hsqlui.src
++../../scripting/source/runtimemgr/ScriptExecDialog.src
++../../wizards/util/hidother.src
++../../wizards/source/euro/euro.src
++../../wizards/source/imagelists/imagelists.src
++../../wizards/source/webwizard/webwizar.src
++../../wizards/source/template/template.src
++../../wizards/source/schedule/schedule.src
++../../wizards/source/importwizard/importwi.src
++../../wizards/source/formwizard/dbwizres.src
+Index: toolkit/src2xml/sw.sh
+===================================================================
+RCS file: toolkit/src2xml/sw.sh
+diff -N toolkit/src2xml/sw.sh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/sw.sh	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,3 @@
++#! /bin/bash
++
++source/src2xml.py --include-path=$(tr '\n' ':' < include-sw.lst) --dry-run $(cat src-sw.lst) "$@"
+cvs diff: Diffing toolkit/src2xml/source
+Index: toolkit/src2xml/source/boxer.py
+===================================================================
+RCS file: toolkit/src2xml/source/boxer.py
+diff -N toolkit/src2xml/source/boxer.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/boxer.py	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,71 @@
++
++from globals import *
++
++
++class DlgLayoutBuilder(object):
++    def __init__ (self, dlgnode):
++        self.dlgnode = dlgnode
++        self.rows = {}
++
++    def addWidget (self, elem):
++        x, y = int(elem.getAttr('x')), int(elem.getAttr('y'))
++        if self.rows.has_key(y):
++            self.rows[y][x] = elem
++        else:
++            self.rows[y] = {}
++            self.rows[y][x] = elem
++
++    def build (self):
++        root = Element('vbox')
++        ys = self.rows.keys()
++        ys.sort()
++        for y in ys:
++            xs = self.rows[y].keys()
++            xs.sort()
++
++            if len(xs) == 1:
++                root.appendChild(self.rows[y][xs[0]])
++                continue
++
++            hbox = Element('hbox')
++            root.appendChild(hbox)
++            for x in xs:
++                elem = self.rows[y][x]
++                hbox.appendChild(elem)
++
++        return root
++
++
++class Boxer(object):
++    def __init__ (self, root):
++        self.root = root
++
++    def layout (self):
++
++        newroot = RootNode()
++        for dlgnode in self.root.children:
++            newdlgnode = self.__walkDlgNode(dlgnode)
++            newroot.children.append(newdlgnode)
++
++        return newroot
++
++    def __walkDlgNode (self, dlgnode):
++
++        newnode = Element(dlgnode.name)
++        newnode.clone(dlgnode)
++        newnode.setAttr("xmlns", "http://openoffice.org/2007/layout")
++        newnode.setAttr("xmlns:cnt", "http://openoffice.org/2007/layout/container")
++        mx = DlgLayoutBuilder(newnode)
++
++        # Each dialog node is expected to have a flat list of widgets.
++        for widget in dlgnode.children:
++            if widget.hasAttr('x') and widget.hasAttr('y'):
++                mx.addWidget(widget)
++            else:
++                newnode.appendChild(widget)
++
++        vbox = mx.build()
++        if len(vbox.children) > 0:
++            newnode.appendChild(vbox)
++
++        return newnode
+Index: toolkit/src2xml/source/expression.py
+===================================================================
+RCS file: toolkit/src2xml/source/expression.py
+diff -N toolkit/src2xml/source/expression.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/expression.py	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,111 @@
++
++import sys
++import globals
++
++def toString (node):
++
++    if node == None:
++        return ''
++
++    chars = '('
++
++    if type(node.left) == type(0):
++        chars += "%d"%node.left
++    else:
++        chars += toString(node.left)
++
++    chars += node.op
++
++    if type(node.right) == type(0):
++        chars += "%d"%node.right
++    else:
++        chars += toString(node.right)
++
++    chars += ")"
++
++    return chars
++
++class Node(object):
++    def __init__ (self):
++        self.left = None
++        self.right = None
++        self.parent = None
++        self.op = None
++
++class ExpParser(object):
++
++    def __init__ (self, tokens):
++        self.tokens = tokens
++
++    def jumpToRoot (self):
++        while self.ptr.parent != None:
++            self.ptr = self.ptr.parent
++
++    def build (self):
++        self.ptr = Node()
++
++        for token in self.tokens:
++
++            if token in '+-':
++                if self.ptr.left == None:
++                    raise globals.ParseError ('')
++                if self.ptr.right == None:
++                    self.ptr.op = token
++                else:
++                    self.jumpToRoot()
++                    self.ptr.parent = Node()
++                    self.ptr.parent.left = self.ptr
++                    self.ptr = self.ptr.parent
++                    self.ptr.op = token
++
++            elif token in '*/':
++                if self.ptr.left == None:
++                    raise globals.ParseError ('')
++                elif self.ptr.right == None:
++                    self.ptr.op = token
++                else:
++                    num = self.ptr.right
++                    self.ptr.right = Node()
++                    self.ptr.right.parent = self.ptr
++                    self.ptr.right.left = num
++                    self.ptr.right.op = token
++                    self.ptr = self.ptr.right
++
++            elif token == '(':
++                if self.ptr.left == None:
++                    self.ptr.left = Node()
++                    self.ptr.left.parent = self.ptr
++                    self.ptr = self.ptr.left
++                elif self.ptr.right == None:
++                    self.ptr.right = Node()
++                    self.ptr.right.parent = self.ptr
++                    self.ptr = self.ptr.right
++                else:
++                    raise globals.ParseError ('')
++
++            elif token == ')':
++                if self.ptr.left == None:
++                    raise globals.ParseError ('')
++                elif self.ptr.right == None:
++                    raise globals.ParseError ('')
++                elif self.ptr.parent == None:
++                    pass
++                else:
++                    self.ptr = self.ptr.parent
++
++            else:
++                num = int(token)
++                if self.ptr.left == None:
++                    self.ptr.left = num
++                elif self.ptr.right == None:
++                    self.ptr.right = num
++                else:
++                    raise globals.ParseError ('')
++
++    def dumpTree (self):
++        self.jumpToRoot()
++        print toString(self.ptr)
++
++
++
++
+Index: toolkit/src2xml/source/expression_test.py
+===================================================================
+RCS file: toolkit/src2xml/source/expression_test.py
+diff -N toolkit/src2xml/source/expression_test.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/expression_test.py	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,23 @@
++#!/usr/bin/env python
++
++import sys
++import expression
++
++def run (exp):
++    tokens = exp.split()
++    expparser = expression.ExpParser(tokens)
++    expparser.build()
++    expparser.dumpTree()
++
++def main ():
++    run("6 + 34")
++    run("6 + 34 - 10")
++    run("6 + 34 - 10 + 200")
++    run("6 + 34 - 10 * 200")
++    run("6 + 34 - 10 * 200 + 18")
++    run("6 + 34 - 10 * 200 + 18 / 2")
++
++    run("6 * ( ( 10 + 2 ) - 10 ) * 33")
++
++if __name__ == '__main__':
++    main()
+Index: toolkit/src2xml/source/globals.py
+===================================================================
+RCS file: toolkit/src2xml/source/globals.py
+diff -N toolkit/src2xml/source/globals.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/globals.py	13 Feb 2008 08:56:22 -0000	1.1.2.1
+@@ -0,0 +1,115 @@
++import sys
++
++class ParseError (Exception): 
++    pass
++
++def error (msg, exit=0):
++    sys.stderr.write (msg)
++    if exit:
++        sys.exit (exit)
++
++def progress (msg):
++    sys.stderr.write(msg)
++
++
++def removeQuote (text):
++    """Remove quotes from a literal.
++"""
++    if len(text) >= 2 and text[0] == text[len(text)-1] == '"':
++        text = text[1:-1]
++    return text
++
++
++class Macro(object):
++    def __init__ (self, name):
++        self.name = name
++        self.tokens = []
++        self.vars = {}
++
++
++class Node(object):
++    def __init__ (self):
++        self.children = []
++
++    def appendChild (self, childnode):
++        self.children.append(childnode)
++        childnode.parent = self
++
++    def getChildren (self):
++        return self.children
++
++
++class RootNode(Node):
++    def __init__ (self):
++        Node.__init__(self)
++
++    def dump (self):
++        chars = ''
++        for child in self.getChildren():
++            chars += child.dump()
++        return chars
++
++
++class Element(Node):
++
++    INDENT = "    "
++
++    def __init__ (self, name, rid = None):
++        Node.__init__(self)
++        self.name = name
++        self.parent = None
++#        print "name: " + self.name - stats ...
++
++        # The following attributes are copied when 'clone'ed.
++        self.rid = rid
++        self.attrs = {}
++
++    def dump (self, level = 0):
++        chars = ''
++        chars += "\n" + Element.INDENT*level
++        chars += '<%s'%self.name
++
++        if self.rid != None:
++            self.setAttr("rid", self.rid)
++
++        chars += self.__dumpAttrs()
++
++        if len(self.children) == 0:
++            chars += '/>'
++        else:
++            chars += '>'
++            for child in self.getChildren():
++                chars += child.dump(level+1)
++    
++            chars += "\n"+Element.INDENT*level
++            chars += "</%s>"%self.name
++
++        return chars
++
++    def hasAttr (self, name):
++        return self.attrs.has_key(name)
++
++    def getAttr (self, name):
++        return self.attrs[name]
++
++    def setAttr (self, name, value):
++        if type(value) == type(0):
++            value = "%d"%value
++        self.attrs[name] = removeQuote(value)
++#        print "attr: " + self.name + "." + name - stats ...
++        return
++
++    def clone (self, elem):
++        keys = elem.attrs.keys()
++        for key in keys:
++            self.attrs[key] = elem.attrs[key]
++        self.rid = elem.rid
++
++    def __dumpAttrs (self):
++        text = ''
++        keys = self.attrs.keys()
++        keys.sort()
++        for key in keys:
++            value = self.attrs[key]
++            text += ' %s="%s"'%(key, value)
++        return text
+Index: toolkit/src2xml/source/macroexpander_test.py
+===================================================================
+RCS file: toolkit/src2xml/source/macroexpander_test.py
+diff -N toolkit/src2xml/source/macroexpander_test.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/macroexpander_test.py	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,71 @@
++#!/usr/bin/env python
++
++import srclexer, srcparser, globals
++
++class TestCase:
++
++    @staticmethod
++    def run (tokens, defines):
++        mcExpander = srcparser.MacroExpander(tokens, defines)
++        mcExpander.debug = True
++        mcExpander.expand()
++        tokens = mcExpander.getTokens()
++        print tokens
++
++    @staticmethod
++    def simpleNoArgs ():
++        tokens = ['FUNC_FOO', '(', 'left', ',', 'right', ')']
++        defines = {}
++        macro = globals.Macro('FUNC_FOO')
++        macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
++        defines['FUNC_FOO'] = macro
++        TestCase.run(tokens, defines)
++
++    @staticmethod
++    def simpleArgs ():
++        tokens = ['FUNC_FOO', '(', 'left', ',', 'right', ')']
++        defines = {}
++        macro = globals.Macro('FUNC_FOO')
++        macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
++        macro.vars['X'] = 0
++        macro.vars['Y'] = 1
++        defines['FUNC_FOO'] = macro
++        TestCase.run(tokens, defines)
++
++    @staticmethod
++    def multiTokenArgs ():
++        tokens = ['FUNC_FOO', '(', 'left1', 'left2', 'left3', ',', 'right', ')']
++        defines = {}
++        macro = globals.Macro('FUNC_FOO')
++        macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
++        macro.vars['X'] = 0
++        macro.vars['Y'] = 1
++        defines['FUNC_FOO'] = macro
++        TestCase.run(tokens, defines)
++
++    @staticmethod
++    def nestedTokenArgs ():
++        tokens = ['FUNC_BAA', '(', 'left', ',', 'right', ')']
++        defines = {}
++        macro = globals.Macro('FUNC_FOO')
++        macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
++        macro.vars['X'] = 0
++        macro.vars['Y'] = 1
++        defines['FUNC_FOO'] = macro
++        macro = globals.Macro('FUNC_BAA')
++        macro.tokens = ['FUNC_FOO']
++        defines['FUNC_BAA'] = macro
++        TestCase.run(tokens, defines)
++
++def main ():
++    print "simple expansion with no arguments"
++    TestCase.simpleNoArgs()
++    print "simple argument expansion"
++    TestCase.simpleArgs()
++    print "multi-token argument expansion"
++    TestCase.multiTokenArgs()
++    print "nested argument expansion"
++    TestCase.nestedTokenArgs()
++
++if __name__ ==  '__main__':
++    main()
+Index: toolkit/src2xml/source/macroparser.py
+===================================================================
+RCS file: toolkit/src2xml/source/macroparser.py
+diff -N toolkit/src2xml/source/macroparser.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/macroparser.py	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,130 @@
++
++import sys
++from globals import *
++import srclexer
++
++class MacroParser(object):
++
++    def __init__ (self, buf):
++        self.buffer = buf
++        self.macro = None
++        self.debug = False
++
++    def parse (self):
++        """
++A macro with arguments must have its open paren immediately following 
++its name without any whitespace.
++"""
++        if self.debug:
++            print "-"*68
++            print "parsing '%s'"%self.buffer
++
++        i = 0
++        bufSize = len(self.buffer)
++        name, buf = '', ''
++        while i < bufSize:
++            c = self.buffer[i]
++            if c in [' ', "\t"] and len(name) == 0:
++                # This is a simple macro with no arguments.
++                name = buf
++                vars = []
++                content = self.buffer[i:]
++                self.setMacro(name, vars, content)
++                return
++            elif c == '(' and len(name) == 0:
++                # This one has arguments.
++                name = buf
++                buf = self.buffer[i:]
++                vars, content = self.parseArgs(buf)
++                self.setMacro(name, vars, content)
++                return
++            else:
++                buf += c
++                i += 1
++
++    def parseArgs (self, buffer):
++        """Parse arguments.
++
++The buffer is expected to be formatted like '(a, b, c)' where the first 
++character is the open paren.
++"""
++        scope = 0
++        buf = ''
++        vars = []
++        content = ''
++        bufSize = len(buffer)
++        i = 0
++        while i < bufSize:
++            c = buffer[i]
++            if c == '(':
++                scope += 1
++            elif c == ')':
++                scope -= 1
++                if len(buf) > 0:
++                    vars.append(buf)
++                if scope == 0:
++                    break
++            elif c == ',':
++                if len(buf) == 0:
++                    raise globals.ParseError ('')
++                vars.append(buf)
++                buf = ''
++            elif c in " \t" and scope > 0:
++                pass
++            else:
++                buf += c
++
++            i += 1
++
++        if scope > 0:
++            raise globals.ParseError ('')
++
++        return vars, buffer[i+1:]
++
++
++    def setMacro (self, name, vars, content):
++        if self.debug:
++            print "-"*68
++            print "name: %s"%name
++            for var in vars:
++                print "var: %s"%var
++            if len(vars) == 0:
++                print "no vars"
++            print "content: '%s'"%content
++
++        if len(content) > 0:
++            self.macro = Macro(name)
++            for i in xrange(0, len(vars)):
++                self.macro.vars[vars[i]] = i
++
++            # tokinize it using lexer.
++            mclexer = srclexer.SrcLexer(content)
++            mclexer.expandHeaders = False
++            mclexer.inMacroDefine = True
++            mclexer.tokenize()
++            self.macro.tokens = mclexer.getTokens()
++            if self.debug:
++                print self.macro.tokens
++            
++            if not self.isValidMacro(self.macro):
++                self.macro = None
++
++        if self.debug:
++            if self.macro != None:
++                print "macro registered!"
++            else:
++                print "macro not registered"
++
++    def isValidMacro (self, macro):
++
++        n = len(macro.tokens)
++        if n == 0:
++            return False
++        elif len(macro.name) > 4 and macro.name[1:4] == 'ID_':
++            # We don't want to expand macros like HID_, SID_, WID_, etc.
++            return False
++        return True
++
++
++    def getMacro (self):
++        return self.macro
+Index: toolkit/src2xml/source/macroparser_test.py
+===================================================================
+RCS file: toolkit/src2xml/source/macroparser_test.py
+diff -N toolkit/src2xml/source/macroparser_test.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/macroparser_test.py	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,20 @@
++#!/usr/bin/env python
++
++import macroparser
++
++def runParser (buf):
++    mparser = macroparser.MacroParser(buf)
++    mparser.debug = True
++    mparser.parse()
++
++def main ():
++    buf = 'FOO   (asdfsdaf)'
++    runParser(buf)
++    buf = 'FOO (x, y)  (x) + (y)'
++    runParser(buf)
++    buf = 'FOO(x, y)  (x) + (y)'
++    runParser(buf)
++
++
++if __name__ == '__main__':
++    main()
+Index: toolkit/src2xml/source/src2xml.py
+===================================================================
+RCS file: toolkit/src2xml/source/src2xml.py
+diff -N toolkit/src2xml/source/src2xml.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/src2xml.py	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,219 @@
++#!/usr/bin/env python
++
++import getopt
++import os
++import re
++import sys
++#
++from srclexer import SrcLexer
++from srcparser import SrcParser
++from boxer import Boxer
++# FIXME
++from globals import *
++
++def option_parser ():
++    import optparse
++    p = optparse.OptionParser ()
++
++    p.usage = '''src2xml.py [OPTION]... SRC-FILE...'''
++
++    examples = '''
++Examples:
++  src2xml.py --output-dir=. --post-process --ignore-includes zoom.src
++  src2xml.py --dry-run -I svx/inc -I svx/source/dialog zoom.src
++'''
++
++    def format_examples (self):
++        return examples
++    
++    if 'epilog' in  p.__dict__:
++        p.formatter.format_epilog = format_examples
++        p.epilog = examples
++    else:
++        p.formatter.format_description = format_examples
++        p.description = examples
++
++    p.description = '''OOo SRC To Layout XML Converter.
++
++Convert OO.o's existing dialog resource files into XML layout files.
++'''
++
++    p.add_option ('-l', '--debug-lexer', action='store_true',
++                  dest='debug_lexer', default=False,
++                  help='debug lexer')
++
++    p.add_option ('-p', '--debug-parser', action='store_true',
++                  dest='debug_parser', default=False,
++                  help='debug parser')
++
++    p.add_option ('-m', '--debug-macro', action='store_true',
++                  dest='debug_macro', default=False,
++                  help='debug macro')
++
++    p.add_option ('-n', '--dry-run', action='store_true',
++                  dest='dry_run', default=False,
++                  help='dry run')
++
++    p.add_option ('-k', '--keep-going', action='store_true',
++                  dest='keep_going', default=False,
++                  help='continue after error')
++
++    p.add_option ('-i', '--ignore-includes', action='store_true',
++                  dest='ignore_includes', default=False,
++                  help='ignore #include directives')
++
++    p.add_option ('-I', '--include-dir', action='append',
++                  dest='include_path',
++                  default=[],
++                  metavar='DIR',
++                  help='append DIR to include path')
++
++    def from_file (option, opt_str, value, parser):
++        lst = getattr (parser.values, option.dest)
++        lst += file (value).read ().split ('\n')
++        setattr (parser.values, option.dest, lst)
++
++    def from_path (option, opt_str, value, parser):
++        lst = getattr (parser.values, option.dest)
++        lst += value.split (':')
++        setattr (parser.values, option.dest, lst)
++
++    # Junk me?
++    p.add_option ('--includes-from-file', action='callback', callback=from_file,
++                  dest='include_path',
++                  default=[],
++                  type='string',
++                  metavar='FILE',
++                  help='append directory list from FILE to include path')
++
++    p.add_option ('--include-path', action='callback', callback=from_path,
++                  dest='include_path',
++                  type='string',
++                  default=[],
++                  metavar='PATH',
++                  help='append PATH to include path')
++
++    p.add_option ('--only-expand-macros', action='store_true',
++                  dest='only_expand_macros', default=False,
++                  help='FIXME: better to say what NOT to expand?')
++
++    p.add_option ('-o', '--output-dir', action='store',
++                  dest='output_dir', default=None,
++                  metavar='DIR',
++                  help='Output to DIR')
++
++    p.add_option ('-s', '--post-process', action='store_true',
++                  dest='post_process', default=False,
++                  help='post process output for use in Layout')
++
++    p.add_option ('--stop-on-header', action='store_true',
++                  dest='stopOnHeader', default=False,
++                  help='FIXME: remove this?')
++
++    return p
++
++
++def convert (file_name, options):
++    progress ("parsing %(file_name)s ..." % locals ())
++    fullpath = os.path.abspath(file_name)
++    if not os.path.isfile(fullpath):
++        error("no such file", exit=True)
++
++    ##options.include_path.append (os.path.dirname (fullpath))
++
++    input = file (fullpath, 'r').read()
++    lexer = SrcLexer(input, fullpath)
++    lexer.expandHeaders = not options.ignore_includes
++    lexer.includeDirs = options.include_path
++    lexer.stopOnHeader = options.stopOnHeader
++    lexer.debugMacro = options.debug_macro
++#     lexer.debug = True
++    if options.debug_lexer:
++        lexer.debug = True
++        lexer.tokenize()
++        progress ("-"*68 + "\n")
++        progress ("** token dump\n")
++        lexer.dumpTokens()
++        progress ("** end of token dump\n")
++        return
++
++    # Tokenize it using lexer
++    lexer.tokenize()
++
++    parser = SrcParser(lexer.getTokens(), lexer.getDefines())
++    parser.only_expand_macros = options.only_expand_macros
++    if options.debug_parser:
++        parser.debug = True
++        root = parser.parse()
++        print root.dump()
++        return
++
++    # Parse the tokens.
++    root = parser.parse()
++
++    # Box it, and return the XML tree.
++    root = Boxer(root).layout()
++    output = root.dump()
++    if not options.dry_run:
++        progress ("\n")
++    return output
++
++def dry_one_file (file_name, options):
++    try:
++        str = convert(file_name, options)
++        progress ("  SUCCESS\n")
++    except Exception, e:
++        if options.keep_going:
++            progress ("  FAILED\n")
++        else:
++            import traceback
++            print traceback.format_exc (None)
++            raise e
++
++def post_process (s):
++    """Make output directly usable by layout module."""
++    s = re.sub ('(</?)([a-z]+)-([a-z]+)-([a-z]+)', r'\1\2\3\4', s)
++    s = re.sub ('(</?)([a-z]+)-([a-z]+)', r'\1\2\3', s)
++    s = re.sub ('(<(radiobutton|(fixed(info|text)))[^>]*) text=', r'\1 label=', s)
++    s = re.sub (' (height|width|x|y)="[0-9]*"', '', s)
++
++    s = s.replace ('<modaldialog', '<modaldialog sizeable="true"')
++    s = s.replace (' rid=', ' id=')
++    s = s.replace (' border="true"', ' has_border="true"')
++    s = s.replace (' def-button="true"', ' default="true"')
++    return s
++
++XML_HEADER = '<?xml version="1.0" encoding="UTF-8"?>\n'
++
++def do_one_file (file_name, options):
++    str = XML_HEADER
++    str += convert(file_name, options)
++    str += '\n'
++
++    if options.post_process:
++        str = post_process (str)
++    h = sys.stdout
++    if options.output_dir:
++        base = os.path.basename (file_name)
++        root, ext = os.path.splitext (base)
++        out_name = options.output_dir + '/' + root + '.xml'
++        progress ("writing %(out_name)s ..." % locals ())
++        h = file (out_name, 'w')
++    h.write (str)
++    h.flush ()
++    progress ("\n")
++
++def main ():
++    p = option_parser ()
++    (options, files) = option_parser ().parse_args ()
++    if not files:
++        p.error ("no input files")
++
++    for f in files:
++        if options.dry_run:
++            dry_one_file (f, options)
++        else:
++            do_one_file (f, options)
++        
++if __name__ == '__main__':
++    main ()
+Index: toolkit/src2xml/source/srclexer.py
+===================================================================
+RCS file: toolkit/src2xml/source/srclexer.py
+diff -N toolkit/src2xml/source/srclexer.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/srclexer.py	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,488 @@
++import sys, os.path
++from globals import *
++import macroparser
++
++class EOF(Exception):
++    def __init__ (self):
++        pass
++
++    def str (self):
++        return "end of file"
++
++class BOF(Exception):
++    def __init__ (self):
++        pass
++
++    def str (self):
++        return "beginning of file"
++
++
++def removeHeaderQuotes (orig):
++    if len(orig) <= 2:
++        return orig
++    elif orig[0] == orig[-1] == '"':
++        return orig[1:-1]
++    elif orig[0] == '<' and orig[-1] == '>':
++        return orig[1:-1]
++
++    return orig
++
++
++def dumpTokens (tokens, toError=False):
++
++    scope = 0
++    indent = "    "
++    line = ''
++    chars = ''
++    
++    for token in tokens:
++        if token in '{<':
++            if len(line) > 0:
++                chars += indent*scope + line + "\n"
++                line = ''
++            chars += indent*scope + token + "\n"
++            scope += 1
++
++        elif token in '}>':
++            if len(line) > 0:
++                chars += indent*scope + line + "\n"
++                line = ''
++            scope -= 1
++            chars += indent*scope + token
++
++        elif token == ';':
++            if len(line) > 0:
++                chars += indent*scope + line + ";\n"
++                line = ''
++            else:
++                chars += ";\n"
++        elif len(token) > 0:
++            line += token + ' '
++
++    if len(line) > 0:
++        chars += line
++    chars += "\n"
++    if toError:
++        sys.stderr.write(chars)
++    else:
++        sys.stdout.write(chars)
++
++
++class HeaderData(object):
++    def __init__ (self):
++        self.defines = {}
++        self.tokens = []
++
++
++class SrcLexer(object):
++    """Lexicographical analyzer for .src format.
++
++The role of a lexer is to parse the source file and break it into 
++appropriate tokens.  Such tokens are later passed to a parser to
++build the syntax tree.
++"""
++    headerCache = {}
++
++    VISIBLE = 0
++    INVISIBLE_PRE = 1
++    INVISIBLE_POST = 2
++
++    def __init__ (self, chars, filepath = None):
++        self.filepath = filepath
++        self.parentLexer = None
++        self.chars = chars
++        self.bufsize = len(self.chars)
++
++        # TODO: use parameters for this
++        # Properties that can be copied.
++        self.headerDict = dict ()
++        self.debug = False
++        self.debugMacro = False
++        self.includeDirs = list ()
++        self.expandHeaders = True
++        self.inMacroDefine = False
++        self.stopOnHeader = False
++
++    def copyProperties (self, other):
++        """Copy properties from another instance of SrcLexer."""
++
++        # TODO: use parameters for this
++        self.headerDict = other.headerDict
++        self.debug = other.debug
++        self.debugMacro = other.debugMacro
++        self.includeDirs = other.includeDirs[:]
++        self.expandHeaders = other.expandHeaders
++        self.inMacroDefine = other.inMacroDefine
++        self.stopOnHeader = other.stopOnHeader
++
++    def init (self):
++        self.firstNonBlank = ''
++        self.token = ''
++        self.tokens = []
++        self.defines = {}
++        self.visibilityStack = []
++
++    def getTokens (self):
++        return self.tokens
++
++    def getDefines (self):
++        return self.defines
++
++    def nextPos (self, i):
++        while True:
++            i += 1
++            try:
++                c = self.chars[i]
++            except IndexError:
++                raise EOF
++
++            if ord(c) in [0x0D]:
++                continue
++            break
++        return i
++
++    def prevPos (self, i):
++        while True:
++            i -= 1
++            try:
++                c = self.chars[i]
++            except IndexError:
++                raise BOF
++
++            if ord(c) in [0x0D]:
++                continue
++            break
++        return i
++
++    def isCodeVisible (self):
++        if len(self.visibilityStack) == 0:
++            return True
++        for item in self.visibilityStack:
++            if item != SrcLexer.VISIBLE:
++                return False
++        return True
++        
++    def tokenize (self):
++        self.init()
++
++        i = 0
++        while True:
++            c = self.chars[i]
++
++            if self.firstNonBlank == '' and not c in [' ', "\n", "\t"]:
++                # Store the first non-blank in a line.
++                self.firstNonBlank = c
++            elif c == "\n":
++                self.firstNonBlank = ''
++
++            if c == '#':
++                i = self.pound(i)
++            elif c == '/':
++                i = self.slash(i)
++            elif c == "\n":
++                i = self.lineBreak(i)
++            elif c == '"':
++                i = self.doubleQuote(i)
++            elif c in [' ', "\t"]:
++                i = self.blank(i)
++            elif c in ";()[]{}<>,=+-*":
++                # Any outstanding single-character token.
++                i = self.anyToken(i, c)
++            elif self.isCodeVisible():
++                self.token += c
++
++            try:
++                i = self.nextPos(i)
++            except EOF:
++                break
++
++        if len(self.token):
++            self.tokens.append(self.token)
++
++        if not self.parentLexer and self.debug:
++            progress ("-"*68 + "\n")
++            progress ("All defines found in this translation unit:\n")
++            keys = self.defines.keys()
++            keys.sort()
++            for key in keys:
++                progress ("@ %s\n"%key)
++
++    def dumpTokens (self, toError=False):
++        dumpTokens(self.tokens, toError)
++
++
++    def maybeAddToken (self):
++        if len(self.token) > 0:
++            self.tokens.append(self.token)
++            self.token = ''
++
++
++    #--------------------------------------------------------------------
++    # character handlers
++
++    def blank (self, i):
++        if not self.isCodeVisible():
++            return i
++
++        self.maybeAddToken()
++        return i
++
++
++    def pound (self, i):
++
++        if self.inMacroDefine:
++            return i
++
++        if not self.firstNonBlank == '#':
++            return i
++
++        self.maybeAddToken()
++        # We are in preprocessing mode.
++
++        # Get the macro command name '#<command> .....'
++
++        command, define, buf = '', '', ''
++        firstNonBlank = False
++        while True:
++            try:
++                i = self.nextPos(i)
++                c = self.chars[i]
++                if c == '\\' and self.chars[self.nextPos(i)] == "\n":
++                    i = self.nextPos(i)
++                    continue
++            except EOF:
++                break
++
++            if c == "\n":
++                if len(buf) > 0 and len(command) == 0:
++                    command = buf
++                i = self.prevPos(i)
++                break
++            elif c in [' ', "\t"]:
++                if not firstNonBlank:
++                    # Ignore any leading blanks after the '#'.
++                    continue
++
++                if len(command) == 0:
++                    command = buf
++                    buf = ''
++                else:
++                    buf += ' '
++            elif c == '(':
++                if len(buf) > 0 and len(command) == 0:
++                    command = buf
++                buf += c
++            else:
++                if not firstNonBlank:
++                    firstNonBlank = True
++                buf += c
++
++        if command == 'define':
++            self.handleMacroDefine(buf)
++        elif command == 'include':
++            self.handleMacroInclude(buf)
++        elif command == 'ifdef':
++            defineName = buf.strip()
++            if self.defines.has_key(defineName):
++                self.visibilityStack.append(SrcLexer.VISIBLE)
++            else:
++                self.visibilityStack.append(SrcLexer.INVISIBLE_PRE)
++
++        elif command == 'ifndef':
++            defineName = buf.strip()
++            if self.defines.has_key(defineName):
++                self.visibilityStack.append(SrcLexer.INVISIBLE_PRE)
++            else:
++                self.visibilityStack.append(SrcLexer.VISIBLE)
++
++        elif command == 'if':
++            if self.evalCodeVisibility(buf):
++                self.visibilityStack.append(SrcLexer.VISIBLE)
++            else:
++                self.visibilityStack.append(SrcLexer.INVISIBLE_PRE)
++
++        elif command == 'elif':
++            if len(self.visibilityStack) == 0:
++                raise ParseError ('')
++
++            if self.visibilityStack[-1] == SrcLexer.VISIBLE:
++                self.visibilityStack[-1] = SrcLexer.INVISIBLE_POST
++            elif self.visibilityStack[-1] == SrcLexer.INVISIBLE_PRE:
++                # Evaluate only if the current visibility is false.
++                if self.evalCodeVisibility(buf):
++                    self.visibilityStack[-1] = SrcLexer.VISIBLE
++
++        elif command == 'else':
++            if len(self.visibilityStack) == 0:
++                raise ParseError ('')
++
++            if self.visibilityStack[-1] == SrcLexer.VISIBLE:
++                self.visibilityStack[-1] = SrcLexer.INVISIBLE_POST
++            if self.visibilityStack[-1] == SrcLexer.INVISIBLE_PRE:
++                self.visibilityStack[-1] = SrcLexer.VISIBLE
++
++        elif command == 'endif':
++            if len(self.visibilityStack) == 0:
++                raise ParseError ('')
++            self.visibilityStack.pop()
++
++        elif command == 'undef':
++            pass
++        elif command in ['error', 'pragma']:
++            pass
++        else:
++            print "'%s' '%s'"%(command, buf)
++            print self.filepath
++            sys.exit(0)
++
++        return i
++
++
++    def evalCodeVisibility (self, buf):
++        try:
++            return eval(buf)
++        except:
++            return True
++        
++    def handleMacroDefine (self, buf):
++
++        mparser = macroparser.MacroParser(buf)
++        mparser.debug = self.debugMacro
++        mparser.parse()
++        macro = mparser.getMacro()
++        if macro:
++            self.defines[macro.name] = macro
++
++    def handleMacroInclude (self, buf):
++
++        # Strip excess string if any.
++        pos = buf.find(' ')
++        if pos >= 0:
++            buf = buf[:pos]
++        headerSub = removeHeaderQuotes(buf)
++
++        if not self.expandHeaders:
++            # We don't want to expand headers.  Bail out.
++            if self.debug:
++                progress ("%s ignored\n"%headerSub)
++            return
++
++        defines = {}
++        headerPath = None
++        for includeDir in self.includeDirs:
++            hpath = includeDir + '/' + headerSub
++            if os.path.isfile(hpath) and hpath != self.filepath:
++                headerPath = hpath
++                break
++
++        if not headerPath:
++            error("included header file " + headerSub + " not found\n", self.stopOnHeader)
++            return
++        
++        if self.debug:
++            progress ("%s found\n"%headerPath)
++
++        if headerPath in self.headerDict:
++            if self.debug:
++                progress ("%s already included\n"%headerPath)
++            return
++
++        if SrcLexer.headerCache.has_key(headerPath):
++            if self.debug:
++                progress ("%s in cache\n"%headerPath)
++            for key in SrcLexer.headerCache[headerPath].defines.keys():
++                self.defines[key] = SrcLexer.headerCache[headerPath].defines[key]
++            return
++
++        chars = open(headerPath, 'r').read()
++        mclexer = SrcLexer(chars, headerPath)
++        mclexer.copyProperties(self)
++        mclexer.parentLexer = self
++        mclexer.tokenize()
++        hdrData = HeaderData()
++        hdrData.tokens = mclexer.getTokens()
++        headerDefines = mclexer.getDefines()
++        for key in headerDefines.keys():
++            defines[key] = headerDefines[key]
++            hdrData.defines[key] = headerDefines[key]
++
++        self.headerDict[headerPath] = True
++        SrcLexer.headerCache[headerPath] = hdrData
++
++        # Update the list of headers that have already been expaneded.
++        for key in mclexer.headerDict.keys():
++            self.headerDict[key] = True
++
++        if self.debug:
++            progress ("defines found in header %s:\n"%headerSub)
++            for key in defines.keys():
++                progress ("  '%s'\n"%key)
++
++        for key in defines.keys():
++            self.defines[key] = defines[key]
++
++
++    def slash (self, i):
++        if not self.isCodeVisible():
++            return i
++
++        if i < self.bufsize - 1 and self.chars[i+1] == '/':
++            # Parse line comment.
++            line = ''
++            i += 2
++            while i < self.bufsize:
++                c = self.chars[i]
++                if ord(c) in [0x0A, 0x0D]:
++                    return i - 1
++                line += c
++                i += 1
++            self.token = ''
++        elif i < self.bufsize - 1 and self.chars[i+1] == '*':
++            comment = ''
++            i += 2
++            while i < self.bufsize:
++                c = self.chars[i]
++                if c == '/' and self.chars[i-1] == '*':
++                    return i
++                comment += c
++                i += 1
++        else:
++            return self.anyToken(i, '/')
++
++        return i
++
++
++    def lineBreak (self, i):
++        if not self.isCodeVisible():
++            return i
++
++        self.maybeAddToken()
++
++        return i
++
++
++    def doubleQuote (self, i):
++        if not self.isCodeVisible():
++            return i
++
++        literal = ''
++        i += 1
++        while i < self.bufsize:
++            c = self.chars[i]
++            if c == '"':
++                self.tokens.append('"'+literal+'"')
++                break
++            literal += c
++            i += 1
++
++        return i
++
++
++    def anyToken (self, i, token):
++        if not self.isCodeVisible():
++            return i
++
++        self.maybeAddToken()
++        self.token = token
++        self.maybeAddToken()
++        return i
+Index: toolkit/src2xml/source/srcparser.py
+===================================================================
+RCS file: toolkit/src2xml/source/srcparser.py
+diff -N toolkit/src2xml/source/srcparser.py
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/src2xml/source/srcparser.py	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,416 @@
++import sys
++from globals import *
++import srclexer
++
++# simple name translation map
++postTransMap = {"ok-button": "okbutton", 
++                "cancel-button": "cancelbutton",
++                "help-button": "helpbutton"}
++
++def transName (name):
++    """Translate a mixed-casing name to dash-separated name.
++
++Translate a mixed-casing name (e.g. MyLongName) to a dash-separated name
++(e.g. my-long-name).
++"""
++    def isUpper (c):
++        return c >= 'A' and c <= 'Z'
++
++    newname = ''
++    parts = []
++    buf = ''
++    for c in name:
++        if isUpper(c) and len(buf) > 1:
++            parts.append(buf)
++            buf = c
++        else:
++            buf += c
++
++    if len(buf) > 0:
++        parts.append(buf)
++
++    first = True
++    for part in parts:
++        if first:
++            first = False
++        else:
++            newname += '-'
++        newname += part.lower()
++
++    # special-case mapping ...
++    if 0: #postTransMap.has_key(newname):
++        newname = postTransMap[newname]
++
++    return newname
++
++
++def transValue (value):
++    """Translate certain values.
++
++Examples of translated values include TRUE -> true, FALSE -> false.
++"""
++    if value.lower() in ["true", "false"]:
++        value = value.lower()
++    return value
++
++
++def renameAttribute (name, elemName):
++
++    # TODO: all manner of evil special cases ...
++    if elemName == 'metric-field' and name == 'spin-size':
++        return 'step-size'
++
++    return name
++
++
++class Statement(object):
++    """Container to hold information for a single statement.
++
++Each statement consists of the left-hand-side token(s), and right-hand-side
++tokens, separated by a '=' token.  This class stores the information on the
++left-hand-side tokens.
++"""
++    def __init__ (self):
++        self.leftTokens = []
++        self.leftScope = None
++
++
++class MacroExpander(object):
++    def __init__ (self, tokens, defines):
++        self.tokens = tokens
++        self.defines = defines
++
++    def expand (self):
++        self.pos = 0
++        while self.pos < len(self.tokens):
++            self.expandToken()
++
++    def expandToken (self):
++        token = self.tokens[self.pos]
++        if not self.defines.has_key(token):
++            self.pos += 1
++            return
++
++        macro = self.defines[token]
++        nvars = len(macro.vars.keys())
++        if nvars == 0:
++            # Simple expansion
++            self.tokens[self.pos:self.pos+1] = macro.tokens
++            return
++        else:
++            # Expansion with arguments.
++            values, lastPos = self.parseValues()
++            newtokens = []
++            for mtoken in macro.tokens:
++                if macro.vars.has_key(mtoken):
++                    # variable
++                    pos = macro.vars[mtoken]
++                    valtokens = values[pos]
++                    for valtoken in valtokens:
++                        newtokens.append(valtoken)
++                else:
++                    # not a variable
++                    newtokens.append(mtoken)
++
++            self.tokens[self.pos:self.pos+lastPos+1] = newtokens
++
++
++    def parseValues (self):
++        """Parse tokens to get macro function variable values.
++
++Be aware that there is an implicit quotes around the text between the open 
++paren, the comma(s), and the close paren.  For instance, if a macro is defined 
++as FOO(a, b) and is used as FOO(one two three, and four), then the 'a' must be 
++replaced with 'one two three', and the 'b' replaced with 'and four'.  In other 
++words, whitespace does not end a token.  
++
++"""
++        values = []
++        i = 1
++        scope = 0
++        value = []
++        while True:
++            try:
++                tk = self.tokens[self.pos+i]
++            except IndexError:
++                progress ("error parsing values (%d)\n"%i)
++                for j in xrange(0, i):
++                    print self.tokens[self.pos+j],
++                print ''
++                srclexer.dumpTokens(self.tokens)
++                srclexer.dumpTokens(self.newtokens)
++                print "tokens expanded so far:"
++                for tk in self.expandedTokens:
++                    print "-"*20
++                    print tk
++                    srclexer.dumpTokens(self.defines[tk].tokens)
++                sys.exit(1)
++            if tk == '(':
++                value = []
++                scope += 1
++            elif tk == ',':
++                values.append(value)
++                value = []
++            elif tk == ')':
++                scope -= 1
++                values.append(value)
++                value = []
++                if scope == 0:
++                    break
++                else:
++                    raise ParseError ('')
++            else:
++                value.append(tk)
++            i += 1
++
++        return values, i
++
++    def getTokens (self):
++        return self.tokens
++
++
++class SrcParser(object):
++
++    def __init__ (self, tokens, defines = None):
++        self.tokens = tokens
++        self.defines = defines
++        self.debug = False
++        self.onlyExpandMacros = False
++
++    def init (self):
++        self.elementStack = [RootNode()]
++        self.stmtData = Statement()
++        self.tokenBuf = []
++        self.leftTokens = []
++
++        # Expand defined macros.
++        if self.debug:
++            progress ("-"*68+"\n")
++            for key in self.defines.keys():
++                progress ("define: %s\n"%key)
++
++        self.expandMacro()
++        self.tokenSize = len(self.tokens)
++
++    def expandMacro (self):
++        macroExp = MacroExpander(self.tokens, self.defines)
++        macroExp.expand()
++        self.tokens = macroExp.getTokens()
++        if self.onlyExpandMacros:
++            srclexer.dumpTokens(self.tokens)
++            sys.exit(0)
++
++    def parse (self):
++        """Parse it!
++
++This is the main loop for the parser.  This is where it all begins and ends.
++"""
++        self.init()
++
++        i = 0
++        while i < self.tokenSize:
++            tk = self.tokens[i]
++            if tk == '{':
++                i = self.openBrace(i)
++            elif tk == '}':
++                i = self.closeBrace(i)
++            elif tk == ';':
++                i = self.semiColon(i)
++            elif tk == '=':
++                i = self.assignment(i)
++            else:
++                self.tokenBuf.append(tk)
++
++            i += 1
++
++        return self.elementStack[0]
++
++    #-------------------------------------------------------------------------
++    # Token Handlers
++
++    """
++Each token handler takes the current token position and returns the position 
++of the last token processed.  For the most part, the current token position 
++and the last processed token are one and the same, in which case the handler 
++can simply return the position value it receives without incrementing it.  
++
++If you need to read ahead to process more tokens than just the current token, 
++make sure that the new token position points to the last token that has been 
++processed, not the next token that has not yet been processed.  This is 
++because the main loop increments the token position when it returns from the 
++handler.
++""" 
++
++    # assignment token '='
++    def assignment (self, i):
++        self.leftTokens = self.tokenBuf[:]
++        if self.stmtData.leftScope == None:
++            # Keep track of lhs data in case of compound statement.
++            self.stmtData.leftTokens = self.tokenBuf[:]
++            self.stmtData.leftScope = len(self.elementStack) - 1
++
++        self.tokenBuf = []
++        return i
++    
++    # open brace token '{'
++    def openBrace (self, i):
++        bufSize = len(self.tokenBuf)
++        leftSize = len(self.leftTokens)
++        obj = None
++        if bufSize == 0 and leftSize > 0:
++            # Name = { ...
++            obj = Element(self.leftTokens[0])
++
++        elif bufSize > 0 and leftSize == 0:
++            # Type Name { ...
++            wgtType = self.tokenBuf[0]
++            wgtRID = None
++            if bufSize >= 2:
++                wgtRID = self.tokenBuf[1]
++            obj = Element(wgtType, wgtRID)
++
++        else:
++            # LeftName = Name { ...
++            obj = Element(self.leftTokens[0])
++            obj.setAttr("type", self.tokenBuf[0])
++
++        obj.name = transName(obj.name)
++
++        if obj.name == 'string-list':
++            i = self.parseStringList(i)
++        elif obj.name == 'filter-list':
++            i = self.parseFilterList(i, obj)
++        else:
++            self.elementStack[-1].appendChild(obj)
++            self.elementStack.append(obj)
++
++        self.tokenBuf = []
++        self.leftTokens = []
++
++        return i
++
++    # close brace token '}'
++    def closeBrace (self, i):
++        if len(self.tokenBuf) > 0:
++            if self.debug:
++                print self.tokenBuf
++            raise ParseError ('')
++        self.elementStack.pop()
++        return i
++
++    # semi colon token ';'
++    def semiColon (self, i):
++        stackSize = len(self.elementStack)
++        scope = stackSize - 1
++        if len(self.tokenBuf) == 0:
++            pass
++        elif scope == 0:
++            # We are not supposed to have any statment in global scope.  
++            # Just ignore this statement.
++            pass
++        else:
++            # Statement within a scope.  Import it as an attribute for the 
++            # current element.
++            elem = self.elementStack[-1]
++
++            name = "none"
++            if len(self.leftTokens) > 0:
++                # Use the leftmost token as the name for now.  If we need to
++                # do more complex parsing of lhs, add more code here.
++                name = self.leftTokens[0]
++                name = transName(name)
++
++            if name == 'pos':
++                i = self.parsePosAttr(i)
++            elif name == 'size':
++                i = self.parseSizeAttr(i)
++            elif len (self.tokenBuf) == 1:
++                # Simple value
++                value = transValue(self.tokenBuf[0])
++                name = renameAttribute(name, elem.name)
++                elem.setAttr(name, value)
++
++            if not self.stmtData.leftScope == None and self.stmtData.leftScope < scope:
++                # This is a nested scope within a statement.  Do nothing for now.
++                pass
++
++        if self.stmtData.leftScope == scope:
++            # end of (nested) statement.
++            self.stmtData.leftScope = None
++
++        self.tokenBuf = []
++        self.leftTokens = []
++
++        return i
++
++    def parseStringList (self, i):
++
++        i += 1
++        while i < self.tokenSize:
++            tk = self.tokens[i]
++            if tk == '}':
++                break
++            i += 1
++
++        return i
++
++    def parseFilterList (self, i, obj):
++        self.elementStack[-1].appendChild(obj)
++        self.elementStack.append(obj)
++
++        return i
++
++    def parsePosAttr (self, i):
++
++        # MAP_APPFONT ( 6 , 5 )
++        elem = self.elementStack[-1]
++        x, y = self.parseMapAppfont(self.tokenBuf)
++        elem.setAttr("x", x)
++        elem.setAttr("y", y)
++
++        return i
++
++    def parseSizeAttr (self, i):
++
++        # MAP_APPFONT ( 6 , 5 )
++        elem = self.elementStack[-1]
++        width, height = self.parseMapAppfont(self.tokenBuf)
++        elem.setAttr("width", width)
++        elem.setAttr("height", height)
++
++        return i
++
++    def parseMapAppfont (self, tokens):
++        values = []
++        scope = 0
++        val = ''
++        for tk in tokens:
++            if tk == '(':
++                scope += 1
++                if scope == 1:
++                    val = ''
++                else:
++                    val += tk
++            elif tk == ')':
++                scope -= 1
++                if scope == 0:
++                    if len(val) == 0:
++                        raise ParseError ('')
++                    values.append(val)
++                    break
++                else:
++                    val += tk
++            elif tk == ',':
++                if len(val) == 0:
++                    raise ParseError ('')
++                values.append(val)
++                val = ''
++            elif scope > 0:
++                val += tk
++
++        if len(values) != 2:
++            raise ParseError ('')
++
++        return eval(values[0]), eval(values[1])
++
++
+cvs diff: Diffing toolkit/test
+cvs diff: Diffing toolkit/test/accessibility
+cvs diff: Diffing toolkit/test/accessibility/ov
+cvs diff: Diffing toolkit/test/accessibility/tools
+cvs diff: Diffing toolkit/util
+Index: toolkit/util/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/toolkit/util/makefile.mk,v
+retrieving revision 1.21
+retrieving revision 1.21.84.3
+diff -p -u -u -p -b -w -B -r1.21 -r1.21.84.3
+--- toolkit/util/makefile.mk	27 Jun 2007 15:17:08 -0000	1.21
++++ toolkit/util/makefile.mk	12 Feb 2008 15:54:55 -0000	1.21.84.3
+@@ -104,5 +104,31 @@ RES1FILELIST=$(SRS)$/awt.srs
+ RESLIB1NAME=$(TARGET)
+ RESLIB1SRSFILES=$(RES1FILELIST)
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++TARGET2 = tklayout
++LIB2FILES= \
++	$(SLB)$/layout_awt.lib \
++	$(SLB)$/layoutcore.lib \
++	$(SLB)$/vclcompat.lib
++
++LIB2TARGET= $(SLB)$/$(TARGET2).lib
++SHL2TARGET= $(TARGET2)$(UPD)$(DLLPOSTFIX)
++SHL2IMPLIB= $(TARGET2)
++
++SHL2LIBS= $(LIB2TARGET)
++
++SHL2STDLIBS=  \
++	$(UNOTOOLSLIB) \
++	$(TKLIB) \
++	$(TOOLSLIB) \
++	$(COMPHELPERLIB) \
++	$(VCLLIB) \
++	$(CPPULIB) \
++	$(CPPUHELPERLIB) \
++	$(SALLIB) \
++
++.ENDIF # ENABLE_LAYOUT == "TRUE"
++
+ # --- Footer -------------------------------------------------------------
+ .INCLUDE :	target.mk
+Index: toolkit/util/makefile.pmk
+===================================================================
+RCS file: /cvs/gsl/toolkit/util/makefile.pmk,v
+retrieving revision 1.3
+retrieving revision 1.3.316.2
+diff -p -u -u -p -b -w -B -r1.3 -r1.3.316.2
+--- toolkit/util/makefile.pmk	9 Sep 2005 13:25:33 -0000	1.3
++++ toolkit/util/makefile.pmk	12 Feb 2008 11:05:46 -0000	1.3.316.2
+@@ -40,3 +40,10 @@ CFLAGS += -fvisibility=hidden
+ .ELIF "$(COMNAME)" == "sunpro5" && "$(CCNUMVER)" >= "00050005"
+ CFLAGS += -xldscope=hidden
+ .ENDIF
++
++# FIXME: sprinkle some TOOLKIT_DLLPUBLIC
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++CFLAGS+=-I$(PRJ)/inc/layout
++CFLAGS+=-DENABLE_LAYOUT=1 -DTEST_LAYOUT=1
++.ENDIF # ENABLE_LAYOUT == TRUE
+cvs diff: Diffing toolkit/util/defs
+cvs diff: Diffing toolkit/workben
+cvs diff: Diffing toolkit/workben/layout
+Index: toolkit/workben/layout/.cvsignore
+===================================================================
+RCS file: toolkit/workben/layout/.cvsignore
+diff -N toolkit/workben/layout/.cvsignore
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/.cvsignore	13 Feb 2008 08:56:23 -0000	1.1.2.1
+@@ -0,0 +1,3 @@
++de
++en-US
++nl
+\ No newline at end of file
+Index: toolkit/workben/layout/adjust.xml
+===================================================================
+RCS file: toolkit/workben/layout/adjust.xml
+diff -N toolkit/workben/layout/adjust.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/adjust.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,44 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++	id="window1" title="Text Editor" optimumsize="true"
++	has_border="true" sizeable="true" moveable="true">
++    <vbox>
++	<!-- Ver Top -->
++	<hbox>
++	    <align v-align="0" h-align="0" v-fill="0" h-fill="0">
++		<pushbutton label="Top Left" />
++	    </align>
++	    <align>
++		<pushbutton label="Top Middle" v-align="0" h-align="0.5" v-fill="0" h-fill="0" />
++	    </align>
++	    <align>
++		<pushbutton label="Top Right" v-align="0" h-align="1" v-fill="0" h-fill="0" />
++	    </align>
++	</hbox>
++	<!-- Ver Middle -->
++	<hbox>
++	    <align>
++		<pushbutton label="Middle Left" v-align="0.5" h-align="0" v-fill="0" h-fill="0" />
++	    </align>
++	    <align>
++		<pushbutton label="Middle Middle" v-align="0.5" h-align="0.5" v-fill="0" h-fill="0" />
++	    </align>
++	    <align>
++		<pushbutton label="Middle Right" v-align="0.5" h-align="1" v-fill="0" h-fill="0" />
++	    </align>
++	</hbox>
++	<!-- Ver Bottom -->
++	<hbox>
++	    <align>
++		<pushbutton label="Bottom Left" v-align="1" h-align="0" v-fill="0" h-fill="0" />
++	    </align>
++	    <align>
++		<pushbutton label="Bottom Middle" v-align="1" h-align="0.5" v-fill="0" h-fill="0" />
++	    </align>
++	    <align>
++		<pushbutton label="Bottom Right" v-align="1" h-align="1" v-fill="0" h-fill="0" />
++	    </align>
++	</hbox>
++    </vbox>
++</dialog>
+Index: toolkit/workben/layout/align.xml
+===================================================================
+RCS file: toolkit/workben/layout/align.xml
+diff -N toolkit/workben/layout/align.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/align.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,44 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        title="Align Test" optimumsize="true" has_border="true" sizeable="true" moveable="true">
++    <vbox>
++	<!-- Ver Top -->
++	<hbox>
++	    <align halign="0" valign="0">
++		<pushbutton label="Top Left" />
++	    </align>
++	    <align halign="0.5" valign="0">
++		<pushbutton label="Top Middle"  />
++	    </align>
++	    <align halign="1" valign="0">
++		<pushbutton label="Top Right"  />
++	    </align>
++	</hbox>
++	<!-- Ver Middle -->
++	<hbox>
++	    <align halign="0" valign="0.5">
++		<pushbutton label="Middle Left" />
++	    </align>
++	    <align halign="0.5" valign="0.5">
++		<pushbutton label="Middle Middle" />
++	    </align>
++	    <align halign="1" valign="0.5">
++		<pushbutton label="Middle Right" />
++	    </align>
++	</hbox>
++	<!-- Ver Bottom -->
++	<hbox>
++	    <align halign="0" valign="1">
++		<pushbutton label="Bottom Left" />
++	    </align>
++	    <align halign="0.5" valign="1">
++		<pushbutton label="Bottom Middle" />
++	    </align>
++	    <align halign="1" valign="1">
++		<pushbutton label="Bottom Right" />
++	    </align>
++	</hbox>
++    </vbox>
++</dialog>
+Index: toolkit/workben/layout/boxtest.xml
+===================================================================
+RCS file: toolkit/workben/layout/boxtest.xml
+diff -N toolkit/workben/layout/boxtest.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/boxtest.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,32 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        title="Box Test" optimumsize="true" has_border="true" sizeable="true" moveable="true">
++	<vbox>
++		<hbox cnt:expand="false" cnt:fill="false">
++			<pushbutton label="XML Left"
++			            cnt:expand="false" cnt:fill="false"/>
++	        <pushbutton label="XML Middle"
++	                            cnt:expand="true" cnt:fill="false"/>
++	        <pushbutton label="XML Right"
++	                            cnt:expand="true" cnt:fill="true"/>
++	        </hbox>
++		<hbox cnt:expand="true" cnt:fill="false">
++			<pushbutton label="XML Left"
++			            cnt:expand="false" cnt:fill="false"/>
++	                <pushbutton label="XML Middle"
++	                            cnt:expand="true" cnt:fill="false"/>
++	                <pushbutton label="XML Right"
++	                            cnt:expand="true" cnt:fill="true"/>
++	        </hbox>
++		<hbox cnt:expand="true" cnt:fill="true">
++			<pushbutton label="XML Left"
++			            cnt:expand="false" cnt:fill="false"/>
++	                <pushbutton label="XML Middle"
++	                            cnt:expand="true" cnt:fill="false"/>
++	                <pushbutton label="XML Right"
++	                            cnt:expand="true" cnt:fill="true"/>
++	        </hbox>
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/dialogbuttons-ok.xml
+===================================================================
+RCS file: toolkit/workben/layout/dialogbuttons-ok.xml
+diff -N toolkit/workben/layout/dialogbuttons-ok.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/dialogbuttons-ok.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,49 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" title="Dialog Button Ordering" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox border="5" spacing="5">
++	<fixedline text="Platform default"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="GNOME"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="gnome">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="KDE"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="kde">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="MacOS"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="macos">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="Windows"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="windows">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/dialogbuttons-reset.xml
+===================================================================
+RCS file: toolkit/workben/layout/dialogbuttons-reset.xml
+diff -N toolkit/workben/layout/dialogbuttons-reset.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/dialogbuttons-reset.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,54 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" title="Dialog Button Ordering" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox border="5" spacing="5">
++	<fixedline text="Platform default"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	    <resetbutton/>
++	</dialogbuttonhbox>
++	<fixedline text="GNOME"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="gnome">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	    <resetbutton/>
++	</dialogbuttonhbox>
++	<fixedline text="KDE"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="kde">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	    <resetbutton/>
++	</dialogbuttonhbox>
++	<fixedline text="MacOS"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="macos">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	    <resetbutton/>
++	</dialogbuttonhbox>
++	<fixedline text="Windows"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="windows">
++	    <flow/>
++	    <okbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Alternate"/>
++	    <resetbutton/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/dialogbuttons-save.xml
+===================================================================
+RCS file: toolkit/workben/layout/dialogbuttons-save.xml
+diff -N toolkit/workben/layout/dialogbuttons-save.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/dialogbuttons-save.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,49 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" title="Dialog Button Ordering" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox border="5" spacing="5">
++	<fixedline text="Platform default"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <yesbutton label="~Save"/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Don't save"/>
++	</dialogbuttonhbox>
++	<fixedline text="GNOME"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="gnome">
++	    <flow/>
++	    <yesbutton label="~Save"/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Don't save"/>
++	</dialogbuttonhbox>
++	<fixedline text="KDE"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="kde">
++	    <flow/>
++	    <yesbutton label="~Save"/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Don't save"/>
++	</dialogbuttonhbox>
++	<fixedline text="MacOS"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="macos">
++	    <flow/>
++	    <yesbutton label="~Save"/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Don't save"/>
++	</dialogbuttonhbox>
++	<fixedline text="Windows"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="windows">
++	    <flow/>
++	    <yesbutton label="~Save"/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton label="~Don't save"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/dialogbuttons-yes.xml
+===================================================================
+RCS file: toolkit/workben/layout/dialogbuttons-yes.xml
+diff -N toolkit/workben/layout/dialogbuttons-yes.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/dialogbuttons-yes.xml	8 Feb 2008 18:44:45 -0000	1.1.2.1
+@@ -0,0 +1,49 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" title="Dialog Button Ordering" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox border="5" spacing="5">
++	<fixedline text="Platform default"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <yesbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton xlabel="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="GNOME"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="gnome">
++	    <flow/>
++	    <yesbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton xlabel="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="KDE"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="kde">
++	    <flow/>
++	    <yesbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton xlabel="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="MacOS"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="macos">
++	    <flow/>
++	    <yesbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton xlabel="~Alternate"/>
++	</dialogbuttonhbox>
++	<fixedline text="Windows"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="windows">
++	    <flow/>
++	    <yesbutton/>
++	    <cancelbutton/>
++	    <helpbutton/>
++	    <nobutton xlabel="~Alternate"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/editor-normal.xml
+===================================================================
+RCS file: toolkit/workben/layout/editor-normal.xml
+diff -N toolkit/workben/layout/editor-normal.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/editor-normal.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,53 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<!-- Would be cool to have others Editor layouts (e.g. Glade-like with
++     a window for each function). -->
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        id="dialog" title="Layout Editor" sizeable="true" >
++	<vbox>
++		<hbox>
++			<min-size min-width="120" cnt:expand="false">
++				<vbox>
++					<fixedtext label="Layout:" cnt:expand="false" />
++					<hbox>
++						<listbox id="layout-tree" has_border="true" />
++						<vbox cnt:expand="false">
++							<pushbutton id="layout-up-button" cnt:expand="false" />
++							<pushbutton id="layout-down-button" cnt:expand="false" />
++							<fixedtext cnt:expand="true" />
++							<pushbutton id="layout-remove-button" cnt:expand="false" />
++						</vbox>
++					</hbox>
++				</vbox>
++			</min-size>
++			<min-size min-width="120">
++				<vbox>
++					<fixedtext label="Preview:" cnt:expand="false" />
++					<vbox border="50">
++						<bin id="preview-box" />
++					</vbox>
++				</vbox>
++			</min-size>
++			<min-size min-width="120" cnt:expand="false">
++				<vbox>
++					<fixedtext label="Properties:" cnt:expand="false" />
++					<table id="properties-box" columns="3" />
++				</vbox>
++			</min-size>
++		</hbox>
++		<hfixedline cnt:expand="false" />
++		<vbox cnt:expand="false">
++			<fixedtext label="Create widgets:" cnt:expand="false" />
++			<flow id="create-widget" homogeneous="true" spacing="2" />
++			<fixedtext label="Create containers:" cnt:expand="false" />
++			<flow id="create-container" homogeneous="true" spacing="2" />
++		</vbox>
++		<hbox cnt:expand="false">
++			<vbox><fixedline /><fixedline /><fixedline /><fixedline /></vbox>
++<!--			<pushbutton id="import-button" label="Import..." cnt:expand="false"/>-->
++			<pushbutton id="export-button" label="Export (stdout)" cnt:expand="false"/>
++		</hbox>
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/editor.cxx
+===================================================================
+RCS file: toolkit/workben/layout/editor.cxx
+diff -N toolkit/workben/layout/editor.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/editor.cxx	11 Feb 2008 15:13:38 -0000	1.1.2.2
+@@ -0,0 +1,1876 @@
++#include "editor.hxx"
++
++#undef NDEBUG
++#include <assert.h>
++#include <stdio.h>
++
++#include <vector>
++#include <list>
++#include <rtl/strbuf.hxx>
++#include <rtl/ustrbuf.hxx>
++
++using namespace layout::css;
++
++using rtl::OUString;
++
++#include <com/sun/star/awt/XWindow.hpp>
++#include <com/sun/star/awt/XWindowPeer.hpp>
++#include <com/sun/star/awt/XVclWindowPeer.hpp>
++#include <com/sun/star/awt/XLayoutConstrains.hpp>
++#include <com/sun/star/awt/XLayoutContainer.hpp>
++#include <com/sun/star/awt/WindowAttribute.hpp>
++
++#include <com/sun/star/awt/XToolkit.hpp>
++#include <toolkit/helper/property.hxx>
++
++#include <vcl/lstbox.h>
++
++// FIXME:
++//#define FILEDLG
++
++// somewhat of a hack unfortunately ...
++#include "layoutcore.hxx"
++#include "root.hxx"
++#include "helper.hxx"
++
++//** Utilities
++
++#define OUSTRING_CSTR( str ) \
++    rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr()
++
++// TODO: automatically generated
++struct WidgetSpec {
++    const char *pLabel, *pName, *pIconName;
++    bool bIsContainer; };
++static const WidgetSpec WIDGETS_SPECS[] = {
++    { "Label",         "fixedtext"   , "sc_label.png",        false },
++    { "Button",        "pushbutton"  , "sc_pushbutton.png",   false },
++    { "Radio Button",  "radiobutton" , "sc_radiobutton.png",  false },
++    { "Check Box",     "checkbox"    , "sc_checkbox.png",     false },
++    { "Line Edit",     "edit"        , "sc_edit.png",         false },
++    { "Numeric Field", "numericfield", "sc_numericfield.png", false },
++    { "List Box                  ", "listbox"     , NULL,                  false },
++    // containers
++    { "Hor Box",       "hbox"        , NULL,                  true  },
++    { "Ver Box",       "vbox"        , NULL,                  true  },
++    { "Table",         "table"       , NULL,                  true  },
++    { "Alignment",     "align"       , NULL,                  true  },
++    { "Tab Control",   "tabcontrol"  , NULL,                  true  },
++    { "Hor Splitter",  "hsplitter"   , NULL,                  true  },
++    { "Ver Splitter",  "vsplitter"   , NULL,                  true  },
++    { "Scroller",      "scroller"    , NULL,                  true  },
++};
++const int WIDGETS_SPECS_LEN = sizeof (WIDGETS_SPECS) / sizeof (WidgetSpec);
++
++// TEMP: from helper
++namespace layoutimpl {
++
++    typedef std::list< std::pair< rtl::OUString, rtl::OUString > > PropList;
++
++    css::uno::Reference< css::awt::XLayoutConstrains >
++        createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
++                      css::uno::Reference< css::uno::XInterface > xParent,
++                      const rtl::OUString &rName, long nProps, bool bToplevel );
++
++    uno::Any anyFromString (const rtl::OUString &value, const uno::Type &type);
++};
++
++using namespace layout;
++using namespace layoutimpl;
++namespace css = ::com::sun::star;
++
++static rtl::OUString anyToString (uno::Any value)
++{
++    try
++    {
++        switch (value.getValueTypeClass()) {
++            case uno::TypeClass_STRING:
++                return value.get<rtl::OUString>();
++            case uno::TypeClass_CONSTANT:
++                return rtl::OUString::valueOf (value.get<sal_Int32>());
++            case uno::TypeClass_LONG:
++                return rtl::OUString::valueOf (value.get<sal_Int64>());
++            case uno::TypeClass_SHORT:
++                // FIXME: seems broken
++                return rtl::OUString::valueOf ((sal_Int32) value.get<short>());
++
++            case uno::TypeClass_FLOAT:
++                return rtl::OUString::valueOf (value.get<float>());
++            case uno::TypeClass_DOUBLE:
++                return rtl::OUString::valueOf (value.get<double>());
++
++            case uno::TypeClass_BOOLEAN:
++            {
++                bool val = value.get<sal_Bool>();
++                return rtl::OUString( val ? "1" : "0", 1, RTL_TEXTENCODING_ASCII_US );
++/*                if ( val )
++                    return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) );
++                else
++                    return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) );*/
++            }
++            default:
++                break;
++        }
++    }
++    catch(...) {}
++    return rtl::OUString();
++}
++
++static inline long anyToNatural (uno::Any value)
++{ return anyToString( value ).toInt64(); }
++static inline double anyToDecimal (uno::Any value)
++{ return anyToString( value ).toDouble(); }
++
++/* XLayoutContainer/XLayoutConstrains are a bit of a hasle to work with.
++   Let's wrap them. */
++class Widget : public layoutimpl::LayoutWidget {
++friend class EditorRoot;
++
++    Widget *mpParent;
++    std::vector< Widget *> maChildren;
++    bool mbForeign;
++
++    rtl::OUString mrId;
++    rtl::OUString mrLabel, mrUnoName;
++
++// TODO: store original properties. And some property handling methods.
++    long mnOriAttrbs;
++    layoutimpl::PropList maOriProps, maOriChildProps;
++
++public:
++
++    // to be used to wrap the root
++    Widget( uno::Reference< awt::XLayoutConstrains > xImport, const char *label )
++    : mpParent( 0 ), mbForeign( true )
++    {
++        mxWidget = xImport;
++        mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
++
++        mrLabel = rtl::OUString( label, strlen( label ), RTL_TEXTENCODING_UTF8  );
++
++#if 0  /* obsolete */
++        // FIXME: this code is meant to import a XML file. Just use the importer,
++        // then pass the root widget. But information like the ID string is lost.
++        // So, this needs to be more closely tight to the importer.
++        uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aChildren;
++        for ( int i = 0; i < aChildren.getLength(); i++ )
++        {
++            Widget *pChild = new Widget( aChildren[ i ], "---" );
++            maChildren.push_back( pChild );
++            pChild->mpParent = this;
++        }
++#endif
++    }
++
++    Widget( rtl::OUString id, uno::Reference< awt::XToolkit > xToolkit,
++            uno::Reference< awt::XLayoutContainer > xParent,
++            rtl::OUString unoName, long nAttrbs )
++    : mpParent( 0 ), mbForeign( false ), mrId( id ),
++      mnOriAttrbs( nAttrbs )
++    {
++    while ( xParent.is() && !uno::Reference< awt::XWindow >( xParent, uno::UNO_QUERY ).is() )
++    {
++        uno::Reference< awt::XLayoutContainer > xContainer( xParent, uno::UNO_QUERY );
++        assert( xContainer.is() );
++        xParent = uno::Reference< awt::XLayoutContainer >( xContainer->getParent(), uno::UNO_QUERY );
++    }
++
++        mxWidget = layoutimpl::createWidget( xToolkit, xParent, unoName, nAttrbs );
++        assert( mxWidget.is() );
++        mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
++
++        mrLabel = mrUnoName = unoName;
++        // try to get a nicer label for the widget
++        for ( int i = 0; i < WIDGETS_SPECS_LEN; i++ )
++            if ( unoName.equalsAscii( WIDGETS_SPECS[ i ].pName ) )
++            {
++                const char *label = WIDGETS_SPECS[ i ].pLabel;
++                mrLabel = rtl::OUString( label, strlen( label ), RTL_TEXTENCODING_UTF8  );
++                break;
++            }
++
++        // set default Text property
++        // TODO: disable editing of text fields, check boxes selected, etc...
++#if 0
++        uno::Reference< awt::XVclWindowPeer> xVclPeer( mxWidget, uno::UNO_QUERY )
++        if ( xVclPeer.is() ) // XVclWindowPeer ignores missing / incorrect properties 
++
++//FIXME: it looks odd on widgets like NumericField seeing text which is deleted
++// when you interact with it... We can avoid it for those widgets, by doing a getProp
++// of "Text" and check if it is empty or not.
++
++            xVclPeer->setProperty( rtl::OUString::createFromAscii( "Text" ),
++                uno::makeAny( rtl::OUString::createFromAscii( "new widget" ) ) );
++#endif
++
++        // store original properties
++        {
++            PropertyIterator it( this, WINDOW_PROPERTY );
++            while ( it.hasNext() )
++            {
++                beans::Property prop = it.next();
++                rtl::OUString name( prop.Name );
++                rtl::OUString value( getProperty( name, WINDOW_PROPERTY ) );
++fprintf(stderr, "original property: %s = %s\n", OUSTRING_CSTR(name), OUSTRING_CSTR(value));
++                std::pair< rtl::OUString, rtl::OUString > pair( name, value );
++                maOriProps.push_back( pair );
++            }
++        }
++
++    }
++
++    ~Widget()
++    {
++        for ( std::vector< Widget *>::const_iterator it = maChildren.begin();
++             it != maChildren.end(); it++ )
++            delete *it;
++        if ( !mbForeign )
++        {
++            uno::Reference< lang::XComponent > xComp( mxWidget, uno::UNO_QUERY );
++            if ( xComp.is() )
++                // some widgets, like our containers, don't implement this interface...
++                xComp->dispose();
++        }
++    }
++
++    uno::Reference< awt::XLayoutConstrains > impl()
++    {
++        return mxWidget;
++    }
++
++    // LayoutWidget
++    virtual bool addChild( LayoutWidget *pChild )
++    {
++        return addChild( static_cast< Widget * >( pChild ) );
++    }
++
++    virtual void setProperties( const PropList &rProps )
++    {
++//        maOriProps = rProps;
++        LayoutWidget::setProperties( rProps );
++    }
++
++    virtual void setChildProperties( LayoutWidget *pChild, const PropList &rProps )
++    {
++        maOriChildProps = rProps;        
++        LayoutWidget::setChildProperties( pChild, rProps );
++    }
++
++    // tree travel
++    Widget *up()
++    {
++        return mpParent;
++    }
++
++    Widget *down()
++    {
++        if ( maChildren.empty() )
++            return NULL;
++        return maChildren.front();
++    }
++
++    Widget *next()
++    {
++        if ( mpParent )
++        {
++            int pos = mpParent->getChildPos( this );
++            return mpParent->getChild( pos+1 );
++        }
++        return NULL;
++    }
++
++    Widget *prev()
++    {
++        if ( mpParent )
++        {
++            int pos = mpParent->getChildPos( this );
++            return mpParent->getChild( pos-1 );
++        }
++        return NULL;
++    }
++
++    // handle
++    bool addChild( Widget *pChild, int pos = 0xffff )
++    {
++        if ( !mxContainer.is() )
++            return false;
++
++        uno::Sequence< uno::Reference < awt::XLayoutConstrains > > aChildren;
++        aChildren = mxContainer->getChildren();
++        int nChildrenLen = aChildren.getLength();
++
++        // ugly, but let's check if the container is next to full...
++        try {
++            mxContainer->addChild( pChild->mxWidget );
++        }
++        catch( awt::MaxChildrenException ex ) {
++            return false;
++        }
++
++        if ( pos < nChildrenLen )
++        {  // if its on the middle, we need to make space for it
++            mxContainer->removeChild( pChild->mxWidget );
++            for ( int i = pos; i < nChildrenLen; i++ )
++                mxContainer->removeChild( aChildren[ i ] );
++            mxContainer->addChild( pChild->mxWidget );
++            for ( int i = pos; i < nChildrenLen; i++ )
++                mxContainer->addChild( aChildren[ i ] );
++            maChildren.insert( maChildren.begin()+pos, pChild );
++        }
++        else
++            maChildren.push_back( pChild );
++
++        assert( pChild->mpParent == NULL );
++        pChild->mpParent = this;
++
++        // store container props
++        {
++            pChild->maOriChildProps.clear();
++            PropertyIterator it( pChild, CONTAINER_PROPERTY );
++            while ( it.hasNext() )
++            {
++                beans::Property prop = it.next();
++                rtl::OUString name( prop.Name );
++                rtl::OUString value( pChild->getProperty( name, CONTAINER_PROPERTY ) );
++                std::pair< rtl::OUString, rtl::OUString > pair( name, value );
++                pChild->maOriChildProps.push_back( pair );
++            }
++        }
++
++        return true;
++    }
++
++    bool removeChild( Widget *pChild )
++    {
++        if ( !mxContainer.is() || pChild->mpParent != this )
++            return false;
++
++        mxContainer->removeChild( pChild->mxWidget );
++
++        unsigned int pos = getChildPos( pChild );
++        if ( pos < maChildren.size() )
++            maChildren.erase( maChildren.begin()+pos );
++        pChild->mpParent = NULL;
++
++        return true;
++    }
++
++    bool swapWithChild( Widget *pChild )
++    {
++        if ( !pChild->isContainer() )
++            return false;
++
++        // remove all child's childrens, and try to add them here
++        removeChild( pChild );
++
++        // keep a copy for failure
++        std::vector< Widget *> aChildren = maChildren;
++        std::vector< Widget *> aChildChildren = pChild->maChildren;
++
++        for ( std::vector< Widget *>::const_iterator it = aChildChildren.begin();
++             it != aChildChildren.end(); it++ )
++            pChild->removeChild( *it );
++
++        for ( std::vector< Widget *>::const_iterator it = aChildChildren.begin();
++             it != aChildChildren.end(); it++ )
++            if ( !addChild( *it ) )
++            {    // failure
++                for ( std::vector< Widget *>::const_iterator jt = aChildChildren.begin();
++                     jt != it; jt++ )
++                    removeChild( *jt );
++                for ( std::vector< Widget *>::const_iterator jt = aChildChildren.begin();
++                     jt != aChildChildren.end(); jt++ )
++                    pChild->addChild( *jt );
++                return false;
++            }
++
++        Widget *pParent = up();
++
++        if ( pParent )
++        {
++            pParent->removeChild( this );
++            pParent->addChild( pChild );
++        }
++        pChild->addChild( this );
++        return true;
++    }
++
++    unsigned int getChildPos( Widget *pChild )
++    {
++        int i = 0;
++        for ( std::vector< Widget *>::const_iterator it = maChildren.begin();
++             it != maChildren.end(); it++, i++ )
++            if ( *it == pChild )
++                break;
++        return i;
++    }
++
++    Widget *getChild( int pos )
++    {
++        if ( pos >= 0 && pos < (signed) maChildren.size() )
++            return *(maChildren.begin() + pos);
++        return NULL;
++    }
++
++    bool isContainer()
++    { return mxContainer.is(); }
++    unsigned int getChildrenLen()
++    { return maChildren.size(); }
++
++    rtl::OUString getLabel() const
++    { return mrLabel; }
++    rtl::OUString getUnoName() const
++    { return mrUnoName; }
++
++    int getDepth()
++    {
++        int depth = 0;
++        for ( Widget *pWidget = mpParent; pWidget; pWidget = pWidget->mpParent )
++            depth++;
++        return depth;
++    }
++
++    enum PropertyKind {
++        WINDOW_PROPERTY, CONTAINER_PROPERTY, WINBITS_PROPERTY
++    };
++
++    static rtl::OUString findProperty( const PropList &props, rtl::OUString propName )
++    {
++        for ( PropList::const_iterator it = props.begin(); it != props.end(); it++ )
++            if ( it->first.equalsIgnoreAsciiCase( propName ) )
++                return it->second;
++fprintf(stderr, "Serious error: property '%s' not found\n", OUSTRING_CSTR(propName));
++        return rtl::OUString();
++    }
++
++    rtl::OUString getOriginalProperty( rtl::OUString rPropName, PropertyKind rKind )
++    {
++        rtl::OUString rValue;
++        switch ( rKind ) {
++            case WINDOW_PROPERTY:
++                rValue = findProperty( maOriProps, rPropName );
++                break;
++            case CONTAINER_PROPERTY:
++                rValue = findProperty( maOriChildProps, rPropName );
++                break;
++            case WINBITS_PROPERTY:
++                // TODO
++                break;
++        }
++
++        return rValue;
++    }
++
++    rtl::OUString getProperty( rtl::OUString rPropName, PropertyKind rKind )
++    {
++        rtl::OUString rValue;
++        switch ( rKind ) {
++            case WINDOW_PROPERTY:
++                rValue = anyToString( layoutimpl::prophlp::getProperty( mxWidget, rPropName ) );
++                break;
++            case CONTAINER_PROPERTY:
++                if ( mpParent )
++                    rValue = anyToString( layoutimpl::prophlp::getProperty(
++                        mpParent->mxContainer->getChildProperties( mxWidget ), rPropName ) );
++                break;
++            case WINBITS_PROPERTY:
++                // TODO
++                break;
++        }
++
++        return rValue;
++    }
++
++    bool isPropertyTouched( rtl::OUString propName, PropertyKind rKind )
++    {
++        rtl::OUString oriValue = getOriginalProperty( propName, rKind );
++        rtl::OUString newValue = getProperty( propName, rKind );
++        bool isTouched = oriValue != newValue;
++fprintf(stderr, "is property '%s' touched? %s  (%s vs %s)\n", OUSTRING_CSTR(propName), isTouched ? "yes" : "no", OUSTRING_CSTR(oriValue), OUSTRING_CSTR(newValue));
++        return isTouched;
++    }
++
++    void setProperty( rtl::OUString rPropName, PropertyKind rKind, uno::Any rValue )
++    {
++        switch ( rKind ) {
++            case WINDOW_PROPERTY:
++                layoutimpl::prophlp::setProperty( mxWidget, rPropName, rValue );
++                break;
++            case CONTAINER_PROPERTY:
++                if ( mpParent )
++                    layoutimpl::prophlp::setProperty(
++                        mpParent->mxContainer->getChildProperties( mxWidget ), rPropName, rValue );
++                break;
++            case WINBITS_PROPERTY:
++                // TODO
++                break;
++        }
++    }
++
++    struct PropertyIterator {
++        friend class Widget;
++        PropertyKind mrKind;
++        uno::Sequence< beans::Property > maProps;
++        int nPropIt;
++
++        PropertyIterator( Widget *pWidget, PropertyKind rKind )
++        : mrKind( rKind ), nPropIt( 0 )
++        {
++            switch ( rKind )
++            {
++                case WINDOW_PROPERTY:
++                    if ( layoutimpl::prophlp::canHandleProps( pWidget->mxWidget ) )
++                    {
++                        uno::Reference< beans::XPropertySetInfo > xInfo
++                            = layoutimpl::prophlp::queryPropertyInfo( pWidget->mxWidget );
++                        if ( !xInfo.is() )
++                            return;
++
++                        maProps = xInfo->getProperties();
++                    }
++                    break;
++                case CONTAINER_PROPERTY:
++                    if ( pWidget->mpParent )
++                    {
++                        uno::Reference< beans::XPropertySet >xParentSet(
++                            pWidget->mpParent->mxContainer->getChildProperties( pWidget->mxWidget ) );
++                        if ( xParentSet.is())
++                        {
++                            uno::Reference< beans::XPropertySetInfo > xInfo( xParentSet->getPropertySetInfo() );
++                            if ( xInfo.is() )
++                                maProps = xInfo->getProperties();
++                        }
++                    }
++                    break;
++                case WINBITS_PROPERTY:
++                    // TODO
++                    break;
++            }
++        }
++
++        bool hasNext()
++        {
++            return nPropIt < maProps.getLength();
++        }
++
++        beans::Property next()
++        {
++/*            rtl::OUString propName, propValue;
++            propName = maProps[ nPropIt ];
++            propValue = getProperty( propName, mrKind, false);
++            nPropIt++;
++            return std::pair< rtl::OUString, rtl::OUString > propPair( propName, propValue );*/
++            return maProps[ nPropIt++ ];
++        }
++    };
++};
++
++class EditorRoot : public layoutimpl::LayoutRoot {
++    Widget *mpParent;
++
++public:
++    EditorRoot( const uno::Reference< lang::XMultiServiceFactory >& xFactory,
++                Widget *pParent )
++    : layoutimpl::LayoutRoot( xFactory ), mpParent( pParent )
++    {
++    }
++
++    // generation
++    virtual layoutimpl::LayoutWidget *create( rtl::OUString id, const rtl::OUString unoName,
++        long attrbs, uno::Reference< awt::XLayoutContainer > xParent )
++    {
++        if ( unoName.compareToAscii( "dialog" ) == 0 )
++            return mpParent;
++
++        // TODO: go through specs to map unoName to a more human-readable label
++        Widget *pWidget = new Widget( id, mxToolkit, xParent, unoName, attrbs );
++        if ( !mxWindow.is() )
++            mxWindow = uno::Reference< awt::XWindow >( pWidget->getPeer(), uno::UNO_QUERY );
++
++        if ( pWidget->mxContainer.is() )
++            pWidget->mxContainer->setLayoutUnit( mpParent->mxContainer->getLayoutUnit() );
++
++        return pWidget;
++    }
++};
++
++/* Working with the layout in 1D, as if it was a flat list. */
++namespace FlatLayout
++{
++    Widget *next( Widget *pWidget )
++    {
++        Widget *pNext;
++        pNext = pWidget->down();
++        if ( pNext ) return pNext;
++        pNext = pWidget->next();
++        if ( pNext ) return pNext;
++        for ( Widget *pUp = pWidget->up(); pUp != NULL; pUp = pUp->up() )
++            if ( (pNext = pUp->next()) != NULL )
++                return pNext;
++        return NULL;
++    }
++
++/*
++    Widget *prev( Widget *pWidget )
++    {
++        Widget *pPrev;
++        pPrev = pWidget->prev();
++        if ( !pPrev )
++            return pWidget->up();
++
++        Widget *pBottom = pPrev->down();
++        if ( pBottom )
++        {
++            while ( pBottom->down() || pBottom->next() )
++            {
++                for ( Widget *pNext = pBottom->next(); pNext; pNext = pNext->next() )
++                    pBottom = pNext;
++                Widget *pDown = pBottom->down();
++                if ( pDown )
++                    pBottom = pDown;
++            }
++            return pBottom;
++        }
++        return pPrev;
++    }
++*/
++
++    bool moveWidget( Widget *pWidget, bool up /*or down*/ )
++    {
++        // Keep child parent&pos for in case of failure
++        Widget *pOriContainer = pWidget->up();
++        unsigned int oriChildPos = pOriContainer->getChildPos( pWidget );
++
++        // Get parent&sibling before removing it, since relations get cut
++        Widget *pSibling = up ? pWidget->prev() : pWidget->next();
++        Widget *pContainer = pWidget->up();
++        if ( !pContainer )
++            return false;
++
++        // try to swap with parent or child
++        // We need to allow for this at least for the root node...
++        if ( !pSibling )
++        {
++            if ( up )
++            {
++                if ( pContainer->swapWithChild( pWidget ) )
++                    return true;
++            }
++            else
++            {
++// TODO: this is a nice feature, but we probably want to do it explicitely...
++#if 0
++                if ( pWidget->down() && pWidget->swapWithChild( pWidget->down() ) )
++                    return true;
++#endif
++            }
++        }
++
++        pContainer->removeChild( pWidget );
++
++        // if has up sibling -- append to it, else swap with it
++        if ( pSibling )
++        {
++            if ( pSibling->addChild( pWidget, up ? 0xffff : 0 ) )
++                return true;
++
++            unsigned int childPos = pContainer->getChildPos( pSibling );
++            if ( pContainer->addChild( pWidget, childPos + (up ? 0 : 1) ) )
++                return true;  // should always be succesful
++        }
++        // go through parents -- try to get prepended to them
++        else
++        {
++            for ( ; pContainer && pContainer->up(); pContainer = pContainer->up() )
++            {
++                unsigned int childPos = pContainer->up()->getChildPos( pContainer );
++                if ( pContainer->up()->addChild( pWidget, childPos + (up ? 0 : 1) ) )
++                    return true;
++            }
++        }
++
++        // failed -- try to get it to its old position
++        if ( !pOriContainer->addChild( pWidget, oriChildPos ) )
++        {
++            // a parent should never reject a child back. but if it ever
++            // happens, just kill it, we don't run an orphanate here ;P
++            delete pWidget;
++            return true;
++        }
++        return false;
++    }
++
++    // NOTE: root is considered to be number -1
++    Widget *get( Widget *pRoot, int nb )
++    {
++        Widget *it;
++        for ( it = pRoot; it != NULL && nb >= 0; it = next( it ) )
++            nb--;
++        return it;
++    }
++
++    int get( Widget *pRoot, Widget *pWidget )
++    {
++        int nRet = -1;
++        Widget *it;
++        for ( it = pRoot; it != NULL && it != pWidget; it = next( it ) )
++            nRet++;
++        return nRet;
++    }
++};
++
++//** PropertiesList widget
++
++class PropertiesList : public layout::Table
++{
++    class PropertyEntry
++    {
++        friend class PropertiesList;
++
++        /* wrapper between the widget and Any */
++        struct AnyWidget
++        {
++            DECL_LINK( ApplyPropertyHdl, layout::Window* );
++            DECL_LINK( FlagToggledHdl, layout::CheckBox* );
++
++            AnyWidget( Widget *pWidget, rtl::OUString aPropName, Widget::PropertyKind aPropKind )
++            : mpWidget( pWidget ), maPropName( aPropName ), maPropKind( aPropKind )
++            {
++                mpFlag = 0;
++                mbBlockFlagCallback = false;
++                bFirstGet = true;
++            }
++
++            virtual ~AnyWidget()
++            {
++                fprintf(stderr, "~AnyWidget\n");
++            }
++
++            void save( uno::Any aValue )
++            {
++                mpWidget->setProperty( maPropName, maPropKind, aValue );
++                checkProperty();
++            }
++
++void checkProperty()
++{
++                bool flag = mpWidget->isPropertyTouched( maPropName, maPropKind );
++
++                if ( mpFlag && mpFlag->IsChecked() != flag )
++                {
++                    CheckFlag( flag, true );
++                }
++}
++
++            void CheckFlag( bool bValue, bool bBlockCallback )
++            {
++                if ( bBlockCallback )
++                    mbBlockFlagCallback = true;
++                mpFlag->Check( bValue );
++                mbBlockFlagCallback = false;
++            }
++
++            bool bFirstGet;  // HACK
++            rtl::OUString getValue()
++            {
++//                return mpWidget->getOriProperty( maPropName );
++                rtl::OUString value;
++                if ( bFirstGet )    // king of ugliness
++                    value = mpWidget->getProperty( maPropName, maPropKind );
++                else
++                    value = mpWidget->getOriginalProperty( maPropName, maPropKind );
++                bFirstGet = false;
++                return value;
++            }
++
++            // FIXME: wrapper should have a base class for this...
++            virtual layout::Window *getWindow() = 0;
++            virtual layout::Container *getContainer() { return NULL; }
++
++            virtual void load() = 0;
++            virtual void store() = 0;
++
++            Widget *mpWidget;
++            rtl::OUString maPropName;
++            Widget::PropertyKind maPropKind;
++            layout::CheckBox *mpFlag;
++            bool mbBlockFlagCallback;
++        };
++
++        struct AnyEdit : public AnyWidget, layout::HBox
++        {
++            layout::Edit *mpEdit;
++            bool mbMultiLine;
++            layout::PushButton *mpExpand;
++            DECL_LINK( ExpandEditHdl, layout::PushButton* );
++
++            // so we can create widgets (like transforming the Edit into a
++            // MultiLineEdit)
++            layout::Window *mpWinParent;
++
++            AnyEdit( Widget *pWidget, rtl::OUString aPropName,
++                     Widget::PropertyKind aPropKind, layout::Window *pWinParent )
++            : AnyWidget( pWidget, aPropName, aPropKind ), layout::HBox( 0, false ), mpWinParent( pWinParent )
++            {
++                mpEdit = NULL;
++                mpExpand = new layout::PushButton( pWinParent, WB_TOGGLE );
++                mpExpand->SetToggleHdl( LINK( this, AnyEdit, ExpandEditHdl ) );
++                setAsMultiLine( false );
++
++                load();
++            }
++
++            virtual ~AnyEdit()
++            {
++                delete mpEdit;
++                delete mpExpand;
++            }
++
++            virtual layout::Window *getWindow()
++            { return NULL; }
++            virtual layout::Container *getContainer()
++            { return this; }
++
++            void setAsMultiLine( bool bMultiLine )
++            {
++                Clear();
++                XubString text;
++                if ( mpEdit )
++                {
++                    text = mpEdit->GetText();
++printf("Remove mpEdit and expand\n");
++                    Remove( mpEdit );
++                    Remove( mpExpand );
++                    delete mpEdit;
++                }
++
++                if ( bMultiLine )
++                {
++                    mpEdit = new layout::Edit( mpWinParent, WB_BORDER );
++                    mpExpand->SetText( String::CreateFromAscii( "-" ) );
++                }
++                else
++                {
++                    mpEdit = new layout::Edit( mpWinParent, WB_BORDER );
++                    mpExpand->SetText( String::CreateFromAscii( "+" ) );
++                }
++
++                mpEdit->SetText( text );
++                mpEdit->SetModifyHdl( LINK( this, AnyEdit, ApplyPropertyHdl ) );
++
++                Add( mpEdit, true, true, 0 );
++                Add( mpExpand, false, true, 0 );
++
++                mbMultiLine = bMultiLine;
++            }
++
++#if 0
++            // TODO: make this global... We'll likely need it for export...
++            struct Translate {
++                const char *ori, *dest;
++            };
++            static rtl::OUString stringReplace( rtl::OUString _str,
++                                                Translate *trans )
++            {
++                const sal_Unicode *str = _str.getStr();
++                rtl::OUStringBuffer buf;
++                int i, j, k;
++                for ( i = 0; i < _str.getLength(); i++ )
++                {
++                    for ( j = 0; trans[ j ].ori; j++ )
++                    {
++                        const char *ori = trans[ j ].ori;
++                        for ( k = 0; ori[ k ] && i+k < _str.getLength(); k++ )
++                            if ( ori[ k ] != str[ i+k ] )
++                                break;
++                        if ( !ori[ k ] )
++                        {
++                            // found substring
++                            buf.appendAscii( trans[ j ].dest );
++                            i += k;
++                            continue;
++                        }
++                    }
++                    buf.append( str[ i ] );
++                }
++                return buf.makeStringAndClear();
++            }
++#endif
++
++            virtual void load()
++            {
++#if 0
++                // replace end of lines by "\\n" strings
++                Translate trans[] = {
++                    { "\\", "\\\\" }, { "\n", "\\n" }, { 0, 0 }
++                }; 
++                rtl::OUString str = anyToString( getValue() );
++                str = stringReplace( str, trans );
++                SetText( str );
++#endif
++                mpEdit->SetText( getValue() );
++                checkProperty();
++            }
++
++            virtual void store()
++            {
++#if 0
++                // replace "\\n" strings by actual end of lines
++                Translate trans[] = {
++                    { "\\\\", "\\"  }, { "\\n", "\n" },
++                    { "\\", "" }, { 0, 0 }
++                }; 
++                rtl::OUString str = GetText();
++                str = stringReplace( str, trans );
++                save( uno::makeAny( str ) );
++#endif
++                save( uno::makeAny( (rtl::OUString) mpEdit->GetText() ) );
++            }
++        };
++
++        struct AnyInteger : public AnyWidget, NumericField
++        {
++            AnyInteger( Widget *pWidget, rtl::OUString aPropName,
++                        Widget::PropertyKind aPropKind, Window *pWinParent )
++            : AnyWidget( pWidget, aPropName, aPropKind ), NumericField( pWinParent, WB_SPIN|WB_BORDER )
++            {
++                load();
++                SetModifyHdl( LINK( this, AnyInteger, ApplyPropertyHdl ) );
++            }
++
++            virtual Window *getWindow()
++            { return this; }
++
++            virtual void load()
++            {
++                OUString text = getValue();
++                SetText( text.getStr() );
++                checkProperty();
++            }
++
++            virtual void store()
++            {
++fprintf(stderr, "store number: %ld\n", rtl::OUString( GetText() ).toInt64());
++                save( uno::makeAny( rtl::OUString( GetText() ).toInt64() ) );
++            }
++        };
++
++        struct AnyFloat : public AnyInteger
++        {
++            AnyFloat( Widget *pWidget, rtl::OUString aPropName,
++                      Widget::PropertyKind aPropKind, Window *pWinParent )
++            : AnyInteger( pWidget, aPropName, aPropKind, pWinParent )
++            {}
++
++            virtual void store()
++            {
++                save( uno::makeAny( rtl::OUString( GetText() ).toDouble() ) );
++            }
++        };
++
++        struct AnyCheckBox : public AnyWidget, layout::CheckBox
++        {
++            AnyCheckBox( Widget *pWidget, rtl::OUString aPropName,
++                         Widget::PropertyKind aPropKind, layout::Window *pWinParent )
++            : AnyWidget( pWidget, aPropName, aPropKind ), layout::CheckBox( pWinParent )
++            {
++                // adding some whitespaces to make the hit area larger
++//                SetText( String::CreateFromAscii( "" ) );
++                load();
++                SetToggleHdl( LINK( this, AnyWidget, ApplyPropertyHdl ) );
++            }
++
++            virtual ~AnyCheckBox()
++            {
++                fprintf(stderr, "~AnyCheckBox\n");
++            }
++
++            virtual layout::Window *getWindow()
++            { return this; }
++
++            virtual void load()
++            {
++fprintf(stderr, "loading boolean value\n");
++                Check( getValue().toInt64() );
++                setLabel();
++                checkProperty();
++            }
++
++            virtual void store()
++            {
++                save( uno::makeAny( IsChecked() ) );
++                setLabel();
++            }
++
++            void setLabel()
++            {
++                SetText( String::CreateFromAscii( IsChecked() ? "true" : "false" ) );
++            }            
++        };
++
++        struct AnyListBox : public AnyWidget, layout::ListBox
++        {
++            AnyListBox( Widget *pWidget, rtl::OUString aPropName,
++                        Widget::PropertyKind aPropKind, Window *pWinParent )
++            : AnyWidget( pWidget, aPropName, aPropKind ), layout::ListBox( pWinParent, WB_DROPDOWN )
++            {
++                SetSelectHdl( LINK( this, AnyWidget, ApplyPropertyHdl ) );
++            }
++
++            virtual layout::Window *getWindow()
++            { return this; }
++
++            virtual void load()
++            {
++                SelectEntryPos( getValue().toInt32() );
++                checkProperty();
++            }
++
++            virtual void store()
++            {
++                save( uno::makeAny( (short) GetSelectEntryPos() ) );
++            }
++        };
++
++        struct AnyAlign : public AnyListBox
++        {
++            AnyAlign( Widget *pWidget, rtl::OUString aPropName,
++                      Widget::PropertyKind aPropKind, Window *pWinParent )
++            : AnyListBox( pWidget, aPropName, aPropKind, pWinParent )
++            {
++                InsertEntry( XubString::CreateFromAscii( "Left" ) );
++                InsertEntry( XubString::CreateFromAscii( "Center" ) );
++                InsertEntry( XubString::CreateFromAscii( "Right" ) );
++                load();
++            }
++        };
++
++        /* AnyListBox and AnyComboBox different in that a ComboBox allows the user
++           to add other options, operating in strings, instead of constants.
++           (its more like a suggestive AnyEdit) */
++        struct AnyComboBox : public AnyWidget, layout::ComboBox
++        {
++            AnyComboBox( Widget *pWidget, rtl::OUString aPropName,
++                         Widget::PropertyKind aPropKind, Window *pWinParent )
++            : AnyWidget( pWidget, aPropName, aPropKind ), layout::ComboBox( pWinParent, WB_DROPDOWN )
++            {
++                SetModifyHdl( LINK( this, AnyComboBox, ApplyPropertyHdl ) );
++            }
++
++            virtual layout::Window *getWindow()
++            { return this; }
++
++            virtual void load()
++            {
++                SetText( getValue() );
++                checkProperty();
++            }
++
++            virtual void store()
++            {
++                save( uno::makeAny( (rtl::OUString) GetText() ) );
++            }
++        };
++
++        struct AnyFontStyle : public AnyComboBox
++        {
++            AnyFontStyle( Widget *pWidget, rtl::OUString aPropName,
++                          Widget::PropertyKind aPropKind, Window *pWinParent )
++            : AnyComboBox( pWidget, aPropName, aPropKind, pWinParent )
++            {
++                InsertEntry( XubString::CreateFromAscii( "Bold" ) );
++                InsertEntry( XubString::CreateFromAscii( "Italic" ) );
++                InsertEntry( XubString::CreateFromAscii( "Bold Italic" ) );
++                InsertEntry( XubString::CreateFromAscii( "Fett" ) );
++                load();
++            }
++        };
++
++        layout::FixedText *mpLabel;
++        layout::CheckBox *mpFlag;
++        AnyWidget *mpValue;
++
++        public:
++            PropertyEntry( layout::Window *pWinParent, AnyWidget *pAnyWidget )
++            {
++                mpLabel = new layout::FixedText( pWinParent );
++                {
++                    // append ':' to aPropName
++                    rtl::OUStringBuffer buf( pAnyWidget->maPropName );
++                    buf.append( sal_Unicode (':') );
++                    mpLabel->SetText( buf.makeStringAndClear() );
++                }
++                mpValue = pAnyWidget;
++                mpFlag = new layout::CheckBox( pWinParent );
++                mpFlag->SetToggleHdl( LINK( mpValue, AnyWidget, FlagToggledHdl ) );
++                mpValue->mpFlag = mpFlag;
++            }
++
++            ~PropertyEntry()
++            {
++            fprintf(stderr, "REMOVING label, flag and value\n");
++                delete mpLabel;
++                delete mpFlag;
++                delete mpValue;
++            }
++
++            // Use this factory rather than the constructor -- check for NULL
++            static PropertyEntry *construct( Widget *pWidget, rtl::OUString aPropName,
++                                             Widget::PropertyKind aPropKind, sal_uInt16 nType,
++                                             layout::Window *pWinParent )
++            {
++                AnyWidget *pAnyWidget;
++                switch (nType) {
++                    case uno::TypeClass_STRING:
++                        if ( aPropName.compareToAscii( "FontStyleName" ) == 0 )
++                        {
++                            pAnyWidget = new AnyFontStyle( pWidget, aPropName, aPropKind, pWinParent );
++                            break;
++                        }
++                        pAnyWidget = new AnyEdit( pWidget, aPropName, aPropKind, pWinParent );
++                        break;
++                    case uno::TypeClass_SHORT:
++                        if ( aPropName.compareToAscii( "Align" ) == 0 )
++                        {
++                            pAnyWidget = new AnyAlign( pWidget, aPropName, aPropKind, pWinParent );
++                            break;
++                        }
++                        // otherwise, treat as any other number...
++                    case uno::TypeClass_LONG:
++                    case uno::TypeClass_UNSIGNED_LONG:
++                        pAnyWidget = new AnyInteger( pWidget, aPropName, aPropKind, pWinParent );
++                        break;
++                    case uno::TypeClass_FLOAT:
++                    case uno::TypeClass_DOUBLE:
++                        pAnyWidget = new AnyFloat( pWidget, aPropName, aPropKind, pWinParent );
++                        break;
++                    case uno::TypeClass_BOOLEAN:
++                        pAnyWidget = new AnyCheckBox( pWidget, aPropName, aPropKind, pWinParent );
++                        break;
++                    default:
++                        return NULL;
++                }
++                return new PropertyEntry( pWinParent, pAnyWidget );
++            }
++        };
++
++    layout::Window *mpParentWindow;
++
++    std::list< PropertyEntry* > maPropertiesList;
++    layout::FixedLine *mpSeparator;
++
++    // some properties are obscure, or simply don't make sense in this
++    // context. Let's just ignore them.
++    // Maybe we could offer them in an expander or something...
++    static bool toIgnore( rtl::OUString prop )
++    {
++        // binary search -- keep the list sorted alphabetically
++        static char const *toIgnoreList[] = {
++            "DefaultControl", "FocusOnClick", "FontCharWidth", "FontCharset",
++            "FontEmphasisMark", "FontFamily", "FontHeight", "FontKerning", "FontName",
++            "FontOrientation", "FontPitch", "FontRelief", "FontSlant", "FontStrikeout",
++            "FontType", "FontWordLineMode", "HelpText", "HelpURL", "MultiLine",
++            "Printable", "Repeat", "RepeatDelay", "Tabstop"
++        };
++
++#if 0
++        // checks list sanity -- enable this when you add some entries...
++        for ( unsigned int i = 1; i < sizeof( toIgnoreList )/sizeof( char * ); i++ )
++        {
++            if ( strcmp(toIgnoreList[i-1], toIgnoreList[i]) >= 0 )
++            {
++                printf("ignore list not ordered properly: "
++                       "'%s' should come before '%s'\n",
++                       toIgnoreList[i], toIgnoreList[i-1]);
++                exit(-1);
++            }
++        }
++#endif
++
++        int min = 0, max = sizeof( toIgnoreList )/sizeof( char * ) - 1, mid, cmp;
++        do {
++            mid = min + (max - min)/2;
++            cmp = prop.compareToAscii( toIgnoreList[ mid ] );
++            if ( cmp > 0 )
++                min = mid+1;
++            else if ( cmp < 0 )
++                max = mid-1;
++            else
++                return true;
++        } while ( min <= max );
++        return false;
++   }
++
++public:
++    PropertiesList( layout::Dialog *dialog )
++    : layout::Table( dialog, "properties-box" )
++    , mpParentWindow( dialog ), mpSeparator( 0 )
++    {
++    }
++
++    ~PropertiesList()
++    {
++        clear();
++    }
++
++private:
++    // auxiliary, add properties from the peer to the list
++    void addProperties( Widget *pWidget, Widget::PropertyKind rKind )
++    {
++        Widget::PropertyIterator it( pWidget, rKind );
++        while ( it.hasNext() )
++        {
++            beans::Property prop = it.next();
++            rtl::OUString name( prop.Name );
++            if ( toIgnore( name ) )
++                continue;
++            sal_uInt16 type = prop.Type.getTypeClass();
++
++            PropertyEntry *propEntry = PropertyEntry::construct(
++                pWidget, name, rKind, type, mpParentWindow );
++
++            if ( propEntry )
++            {
++                Add( propEntry->mpLabel, false, false );
++                // HACK: one of these will return Null...
++                Add( propEntry->mpValue->getWindow(), true, false );
++                Add( propEntry->mpValue->getContainer(), true, false );
++
++                Add( propEntry->mpFlag, false, false );
++                maPropertiesList.push_back( propEntry );
++            }
++        }
++    }
++
++public:
++    void selectedWidget( Widget *pWidget )
++    {
++        clear();
++        if ( !pWidget )
++            return;
++
++        addProperties( pWidget, Widget::CONTAINER_PROPERTY );
++
++        mpSeparator = new layout::FixedLine( mpParentWindow );
++        // TODO: we may want to have to separate list widgets here...
++        Add( mpSeparator, false, false, 3, 1 );
++
++        addProperties( pWidget, Widget::WINDOW_PROPERTY );
++
++        ShowAll( true );
++    }
++
++    void clear()
++    {
++        Container::Clear();        
++
++        for ( std::list< PropertyEntry* >::iterator it = maPropertiesList.begin();
++             it != maPropertiesList.end(); it++)
++            delete *it;
++        maPropertiesList.clear();
++
++        delete mpSeparator;
++        mpSeparator = NULL;
++    }
++};
++
++IMPL_LINK( PropertiesList::PropertyEntry::AnyWidget, ApplyPropertyHdl, layout::Window *, pWin )
++{
++    (void) pWin;
++    store();
++    return 0;
++}
++
++IMPL_LINK( PropertiesList::PropertyEntry::AnyWidget, FlagToggledHdl, layout::CheckBox *, pCheck )
++{
++fprintf(stderr, "Property flag pressed -- is: %d\n", pCheck->IsChecked());
++    if ( !mbBlockFlagCallback )
++    {
++        bool checked = pCheck->IsChecked();
++        if ( !checked )  // revert
++{
++fprintf(stderr, "revert\n");
++            load();
++}
++        else
++        {
++fprintf(stderr, "user can't dirty the flag!\n");
++            // User can't flag the property as dirty
++            // Actually, we may want to allow the designer to force a property to be stored.
++            // Could be useful when the default value of some new property wasn't yet decided...
++            CheckFlag( false, true );
++        }
++    }
++else
++fprintf(stderr, "Property flag pressed -- BLOCKED\n");
++    return 0;
++}
++
++IMPL_LINK( PropertiesList::PropertyEntry::AnyEdit, ExpandEditHdl, layout::PushButton *, pBtn )
++{
++    setAsMultiLine( pBtn->IsChecked() );
++    return 0;
++}
++
++//** SortListBox auxiliary widget
++
++class SortListBox
++{        // For a manual sort ListBox; asks for a ListBox and Up/Down/Remove
++         // buttons to wrap
++DECL_LINK( ItemSelectedHdl, layout::ListBox* );
++DECL_LINK( UpPressedHdl, layout::Button* );
++DECL_LINK( DownPressedHdl, layout::Button* );
++DECL_LINK( RemovePressedHdl, layout::Button* );
++layout::PushButton *mpUpButton, *mpDownButton, *mpRemoveButton;
++
++protected:
++layout::ListBox *mpListBox;
++
++    virtual void upPressed( USHORT nPos )
++    {
++        XubString str = mpListBox->GetSelectEntry();
++        mpListBox->RemoveEntry( nPos );
++        nPos = mpListBox->InsertEntry( str, nPos-1 );
++        mpListBox->SelectEntryPos( nPos );
++    }
++
++    virtual void downPressed( USHORT nPos )
++    {
++        XubString str = mpListBox->GetSelectEntry();
++        mpListBox->RemoveEntry( nPos );
++        nPos = mpListBox->InsertEntry( str, nPos+1 );
++        mpListBox->SelectEntryPos( nPos );
++    }
++
++    virtual void removePressed( USHORT nPos )
++    {
++        mpListBox->RemoveEntry( nPos );
++    }
++
++    virtual void itemSelected( USHORT nPos )
++    {
++        // if we had some XLayoutContainer::canAdd() or maxChildren() function
++        // we could make a function to check if we can move selected and enable/
++        // /disable the move buttons as appropriate
++
++        if ( nPos == LISTBOX_ENTRY_NOTFOUND )
++        {
++            mpUpButton->Disable();
++            mpDownButton->Disable();
++            mpRemoveButton->Disable();
++        }
++        else
++        {
++            mpUpButton->Enable();
++            mpDownButton->Enable();
++            mpRemoveButton->Enable();
++        }
++    }
++
++public:
++    SortListBox( layout::ListBox *pListBox, layout::PushButton *pUpButton, layout::PushButton *pDownButton,
++                 layout::PushButton *pRemoveButton )
++    : mpUpButton( pUpButton), mpDownButton( pDownButton), mpRemoveButton( pRemoveButton ),
++      mpListBox( pListBox )
++    {
++        mpListBox->SetSelectHdl( LINK( this, SortListBox, ItemSelectedHdl ) );
++
++        mpUpButton->SetModeImage( layout::Image ( "res/commandimagelist/lc_moveup.png" ) );
++        mpUpButton->SetImageAlign( IMAGEALIGN_LEFT );
++        mpUpButton->SetClickHdl( LINK( this, SortListBox, UpPressedHdl ) );
++
++        mpDownButton->SetModeImage( layout::Image ( "res/commandimagelist/lc_movedown.png" ) );
++        mpDownButton->SetImageAlign( IMAGEALIGN_LEFT );
++        mpDownButton->SetClickHdl( LINK( this, SortListBox, DownPressedHdl ) );
++
++        // "res/commandimagelist/lch_delete.png", "res/commandimagelist/lc_delete.png"
++        mpRemoveButton->SetModeImage( layout::Image ( "res/commandimagelist/sc_closedoc.png" ) );
++        mpRemoveButton->SetImageAlign( IMAGEALIGN_LEFT );
++        mpRemoveButton->SetClickHdl( LINK( this, SortListBox, RemovePressedHdl ) );
++
++        // fire an un-select event
++        itemSelected( LISTBOX_ENTRY_NOTFOUND );
++    }
++
++    ~SortListBox()
++    {
++        delete mpListBox;
++        delete mpUpButton;
++        delete mpDownButton;
++        delete mpRemoveButton;
++    }
++};
++
++IMPL_LINK( SortListBox, UpPressedHdl, layout::Button *, pBtn )
++{
++    (void) pBtn;
++    USHORT pos = mpListBox->GetSelectEntryPos();
++    if ( pos > 0 && pos != LISTBOX_ENTRY_NOTFOUND )
++        upPressed( pos );
++    return 0;
++}
++
++IMPL_LINK( SortListBox, DownPressedHdl, layout::Button *, pBtn )
++{
++    (void) pBtn;
++    USHORT pos = mpListBox->GetSelectEntryPos();
++    if ( pos < mpListBox->GetEntryCount() && pos != LISTBOX_ENTRY_NOTFOUND )
++        downPressed( pos );
++    return 0;
++}
++
++IMPL_LINK( SortListBox, RemovePressedHdl, layout::Button *, pBtn )
++{
++    (void) pBtn;
++    USHORT pos = mpListBox->GetSelectEntryPos();
++    if ( pos != LISTBOX_ENTRY_NOTFOUND )
++        removePressed( pos );
++    return 0;
++}
++
++IMPL_LINK( SortListBox, ItemSelectedHdl, layout::ListBox *, pList )
++{
++    (void) pList;
++    USHORT pos = mpListBox->GetSelectEntryPos();
++    itemSelected( pos );
++    return 0;
++}
++
++//** LayoutTree widget
++
++class LayoutTree : public SortListBox
++{
++public:
++    struct Listener
++    {
++        virtual void widgetSelected( Widget *pWidget ) = 0;
++    };
++
++private:
++    Listener *mpListener;
++
++public:
++    Widget *mpRootWidget;
++
++    LayoutTree( layout::Dialog *dialog )
++    : SortListBox( new layout::ListBox( dialog, "layout-tree" ),
++                   new layout::PushButton( dialog, "layout-up-button" ),
++                   new layout::PushButton( dialog, "layout-down-button" ),
++                   new layout::PushButton( dialog, "layout-remove-button" ) )
++    {
++        layout::PeerHandle handle = dialog->GetPeerHandle( "preview-box" );
++        uno::Reference< awt::XLayoutConstrains > xWidget( handle, uno::UNO_QUERY );
++        mpRootWidget = new Widget( xWidget, "root" );
++    }
++
++    ~LayoutTree()
++    {
++        delete mpRootWidget;
++    }
++
++    Widget *getWidget( int nPos )
++    {
++        if ( nPos != LISTBOX_ENTRY_NOTFOUND )
++            return FlatLayout::get( mpRootWidget, nPos );
++        return NULL;
++    }
++
++    Widget *getSelectedWidget()
++    {
++        Widget *pWidget = getWidget( mpListBox->GetSelectEntryPos() );
++        if ( !pWidget )  // return root, if none selected
++            pWidget = mpRootWidget;
++        return pWidget;
++    }
++
++    void selectWidget( Widget *pWidget )
++    {
++        int pos = FlatLayout::get( mpRootWidget, pWidget );
++        if ( pos == -1 )
++            // if asked to select hidden root, select visible root
++            pos = 0;
++        mpListBox->SelectEntryPos( pos );
++    }
++
++    void rebuild()
++    {
++        struct inner
++        {
++            // pads a string with whitespaces
++            static rtl::OUString padString( rtl::OUString name, int depth )
++            {
++                rtl::OStringBuffer aBuf( depth * 4 + name.getLength() + 2 );
++                for (int i = 0; i < depth; i++)
++                    aBuf.append( "    " );
++                aBuf.append( rtl::OUStringToOString( name, RTL_TEXTENCODING_ASCII_US ) );
++                return rtl::OUString( aBuf.getStr(), aBuf.getLength(),
++                                      RTL_TEXTENCODING_UTF8 );
++            }
++        };
++
++        mpListBox->Clear();
++        for ( Widget *i = FlatLayout::next( mpRootWidget ); i; i = FlatLayout::next( i ) )
++            mpListBox->InsertEntry( inner::padString( i->getLabel(), i->getDepth()-1 ) );
++
++        // any selection, no longer is. ListBox doesn't fire the event on this case;
++        // force it.
++        itemSelected( LISTBOX_ENTRY_NOTFOUND );
++    }
++
++    void setListener( Listener *pListener )
++    { mpListener = pListener; }
++
++    // print in XML format...
++
++static rtl::OUString toXMLNaming (const rtl::OUString &string)
++{
++    rtl::OUStringBuffer buffer (string.getLength());
++    sal_Unicode *str = string.pData->buffer;
++    for (int i = 0; i < string.getLength(); i++) {
++        if ( str[i] >= 'A' && str[i] <= 'Z' )
++        {
++            if ( i > 0 )
++                buffer.append ((sal_Unicode) '-');
++            buffer.append ((sal_Unicode) (str[i] - 'A' + 'a'));
++        }
++        else
++            buffer.append ((sal_Unicode) str[i]);
++    }
++
++    return buffer.makeStringAndClear();
++}
++
++    void print()
++    {
++        printf("\t\tExport:\n");
++        printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
++               "<dialog xmlns=\"http://openoffice.org/2007/layout\"\n"
++               "        xmlns:cnt=\"http://openoffice.org/2007/layout/container\"\n"
++               "        id=\"dialog\" title=\"Unnamed\" sizeable=\"true\" >\n");
++
++        for ( Widget *i = FlatLayout::next( mpRootWidget ); i; i = FlatLayout::next( i ) )
++        {
++            for ( int d = i->getDepth(); d > 0; d-- )
++                printf("    ");
++            printf("<%s ", OUSTRING_CSTR( i->getUnoName() ) );
++
++            for ( int kind = 0; kind < 2; kind++ )
++            {
++                Widget::PropertyKind wKind = kind == 0 ? Widget::WINDOW_PROPERTY
++                                                          : Widget::CONTAINER_PROPERTY;
++                Widget::PropertyIterator it( i, wKind );
++                while ( it.hasNext() )
++                {
++                    beans::Property prop = it.next();
++                    if ( !i->isPropertyTouched( prop.Name, wKind ) )
++                        continue;
++
++                    rtl::OUString value = i->getProperty( prop.Name, wKind );
++                    if ( prop.Type.getTypeClass() == uno::TypeClass_BOOLEAN )
++                    {
++                        if ( value.compareToAscii( "0" ) )
++                             value = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("false") );
++                        else
++                             value = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("true") );
++                    }
++
++                    if ( value.getLength() > 0 )
++                        printf("%s%s=\"%s\" ",
++                            kind == 0 ? "" : "cnt:",
++                            OUSTRING_CSTR( toXMLNaming( prop.Name ) ), OUSTRING_CSTR( value )
++                        );
++
++                }
++            }
++            printf("/>\n");
++        }
++        printf("</dialog>\n");
++    }
++
++protected:
++    virtual void upPressed( USHORT nPos )
++    {
++        Widget *pWidget = getWidget( nPos );
++        if ( FlatLayout::moveWidget( pWidget, true ) )
++            rebuild();
++        selectWidget( pWidget );
++    }
++
++    virtual void downPressed( USHORT nPos )
++    {
++        Widget *pWidget = getWidget( nPos );
++        if ( FlatLayout::moveWidget( pWidget, false ) )
++            rebuild();
++        selectWidget( pWidget );
++    }
++
++    virtual void removePressed( USHORT nPos )
++    {
++        Widget *pWidget = getWidget( nPos );
++        if ( pWidget )
++        {
++            pWidget->up()->removeChild( pWidget );
++            delete pWidget;
++            rebuild();
++        }
++    }
++
++    virtual void itemSelected( USHORT nPos )
++    {
++        mpListener->widgetSelected( getWidget( nPos ) );
++        SortListBox::itemSelected( nPos );
++    }
++};
++
++//** EditorImpl
++
++class EditorImpl : public LayoutTree::Listener
++{
++    void createWidget( const char *unoName );
++
++    PropertiesList *mpPropertiesList;
++    LayoutTree *mpLayoutTree;
++
++    layout::PushButton *pImportButton, *pExportButton;
++#ifdef FILEDLG
++    FileDialog *pImportDialog;
++#endif
++    DECL_LINK( ImportButtonHdl, layout::PushButton* );
++    DECL_LINK( ExportButtonHdl, layout::PushButton* );
++#ifdef FILEDLG
++    DECL_LINK( ImportDialogHdl, FileDialog* );
++#endif
++
++    // framework stuff
++    uno::Reference< lang::XMultiServiceFactory > mxFactory;
++    uno::Reference< awt::XToolkit > mxToolkit;
++    uno::Reference< awt::XWindow > mxToplevel;
++
++    virtual void widgetSelected( Widget *pWidget );
++    DECL_LINK( CreateWidgetHdl, layout::Button* );
++
++    std::list< layout::PushButton *> maCreateButtons;
++
++public:
++
++    EditorImpl( layout::Dialog *dialog,
++        // we should probable open this channel (or whatever its called) ourselves
++                uno::Reference< lang::XMultiServiceFactory > xMSF );
++    ~EditorImpl();
++
++    void loadFile( const rtl::OUString &aTestFile );
++};
++
++EditorImpl::EditorImpl( layout::Dialog *dialog,
++                        uno::Reference< lang::XMultiServiceFactory > xFactory )
++    : mxFactory( xFactory )
++    , mxToplevel( dialog->GetPeerHandle( "dialog" ), uno::UNO_QUERY )
++    // FIXME: any of these should work
++    //dialog->getContext()->getRoot(), uno::UNO_QUERY )
++    // dialog->GetPeer(), uno::UNO_QUERY )
++{
++fprintf (stderr, "EditorImpl()\n");
++    // framework
++    mxToolkit = uno::Reference< awt::XToolkit >(
++        mxFactory->createInstance(
++            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
++        uno::UNO_QUERY );
++    assert( mxToolkit.is() );
++
++    // custom widgets
++fprintf (stderr, "custom widgets\n");
++    mpPropertiesList = new PropertiesList( dialog );
++
++    mpLayoutTree = new LayoutTree( dialog );
++    mpLayoutTree->setListener( this );
++
++/*    if ( xImport.is() )
++    mpLayoutTree->getWidget( -1 )->addChild( new Widget( xImport, "import" ) );*/
++
++    // create buttons
++    layout::Container aWidgets( dialog, "create-widget" );
++    layout::Container aContainers( dialog, "create-container" );
++    for ( int i = 0; i < WIDGETS_SPECS_LEN; i++ )
++    {
++        layout::PushButton *pBtn = new layout::PushButton( (layout::Window *) dialog );
++        pBtn->SetText( rtl::OUString::createFromAscii( WIDGETS_SPECS[ i ].pLabel ) );
++        pBtn->SetClickHdl( LINK( this, EditorImpl, CreateWidgetHdl ) );
++        if ( WIDGETS_SPECS[ i ].pIconName != NULL )
++        {
++            rtl::OString aPath ("res/commandimagelist/");
++            aPath += WIDGETS_SPECS[ i ].pIconName;
++            layout::Image aImg( aPath );
++            pBtn->SetModeImage( aImg );
++            pBtn->SetImageAlign( IMAGEALIGN_LEFT );
++        }
++        pBtn->Show();
++        maCreateButtons.push_back( pBtn );
++        layout::Container *pBox = WIDGETS_SPECS[ i ].bIsContainer ? &aContainers : &aWidgets;
++        pBox->Add( pBtn );
++    }
++
++#ifdef FILEDLG
++fprintf(stderr,"creating file dialog\n");
++    pImportDialog = new FileDialog( NULL/*(layout::Window *) dialog*/, 0 );
++fprintf(stderr,"connecting it\n");
++    pImportDialog->SetFileSelectHdl( LINK( this, EditorImpl, ImportDialogHdl ) );
++fprintf(stderr,"done file dialog\n");
++#endif
++
++/*    pImportButton = new layout::PushButton( dialog, "import-button" );
++    pImportButton->SetClickHdl( LINK( this, EditorImpl, ImportButtonHdl ) );*/
++    pExportButton = new layout::PushButton( dialog, "export-button" );
++    pExportButton->SetClickHdl( LINK( this, EditorImpl, ExportButtonHdl ) );
++}
++
++EditorImpl::~EditorImpl()
++{
++    delete mpPropertiesList;
++    delete mpLayoutTree;
++    for ( std::list< layout::PushButton * >::const_iterator i = maCreateButtons.begin();
++         i != maCreateButtons.end(); i++)
++        delete *i;
++    delete pImportButton;
++    delete pExportButton;
++#ifdef FILEDLG
++    delete pImportDialog;
++#endif
++}
++
++void EditorImpl::loadFile( const rtl::OUString &aTestFile )
++{
++fprintf( stderr, "TEST: layout instance\n" );
++    uno::Reference< awt::XLayoutRoot > xRoot
++        ( new EditorRoot( mxFactory, mpLayoutTree->mpRootWidget ) );
++
++/*
++mxMSF->createInstance
++                ( ::rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
++          uno::UNO_QUERY );
++*/
++    if ( !xRoot.is() )
++    {
++        throw uno::RuntimeException(
++            OUString( RTL_CONSTASCII_USTRINGPARAM("could not create awt Layout component!") ),
++            uno::Reference< uno::XInterface >() );
++    }
++
++fprintf( stderr, "TEST: initing root\n" );
++    uno::Reference< lang::XInitialization > xInit( xRoot, uno::UNO_QUERY );
++    if ( !xInit.is() )
++    {
++        throw uno::RuntimeException(
++            OUString( RTL_CONSTASCII_USTRINGPARAM("Layout has no XInitialization!") ),
++            uno::Reference< uno::XInterface >() );
++    }
++
++fprintf( stderr, "TEST: running parser\n" );
++    uno::Sequence< uno::Any > aParams( 1 );
++    aParams[0] <<= aTestFile;
++fprintf( stderr, "TEST: do it\n" );
++    xInit->initialize( aParams );
++fprintf( stderr, "TEST: file loaded\n" );
++
++    mpLayoutTree->rebuild();
++}
++
++void EditorImpl::createWidget( const char *name )
++{
++    Widget *pWidget = mpLayoutTree->getSelectedWidget();
++
++    Widget *pChild = new Widget( rtl::OUString(), mxToolkit, uno::Reference< awt::XLayoutContainer >( mxToplevel, uno::UNO_QUERY ), rtl::OUString::createFromAscii( name ), awt::WindowAttribute::SHOW );
++    if ( !pWidget->addChild( pChild ) )
++    {
++        delete pChild;
++        // we may want to popup an error message
++    }
++    else
++    {
++        mpLayoutTree->rebuild();
++        mpLayoutTree->selectWidget( pWidget );
++    }
++}
++
++void EditorImpl::widgetSelected( Widget *pWidget )
++{
++    // we know can't add widget to a non-container, so let's disable the create
++    // buttons then. Would be nice to have a method to check if a container is
++    // full as well...
++    if ( !pWidget || pWidget->isContainer() )
++    {
++        for ( std::list< layout::PushButton *>::const_iterator it = maCreateButtons.begin();
++             it != maCreateButtons.end(); it++)
++            (*it)->Enable();
++    }
++    else
++    {
++        for ( std::list< layout::PushButton *>::const_iterator it = maCreateButtons.begin();
++             it != maCreateButtons.end(); it++)
++            (*it)->Disable();
++    }
++
++    mpPropertiesList->selectedWidget( pWidget );
++}
++
++IMPL_LINK( EditorImpl, CreateWidgetHdl, layout::Button *, pBtn )
++{
++    int i = 0;
++    for ( std::list< layout::PushButton *>::const_iterator it = maCreateButtons.begin();
++         it != maCreateButtons.end(); it++, i++ )
++    {
++        if ( pBtn == *it )
++            break;
++    }
++    assert( i < WIDGETS_SPECS_LEN );
++    createWidget( WIDGETS_SPECS[i].pName );
++    return 0;
++}
++
++IMPL_LINK( EditorImpl, ImportButtonHdl, layout::PushButton *, pBtn )
++{
++    (void) pBtn;
++fprintf(stderr, "IMPORT!\n");
++#ifdef FILEDLG
++    pImportDialog->Execute();
++#endif
++
++    return 0;
++}
++
++#ifdef FILEDLG
++IMPL_LINK( EditorImpl, ImportDialogHdl, FileDialog *, pDialog )
++{
++//fprintf(stderr, "Executing import dialog!\n");
++
++    UniString path = pDialog->GetPath();
++fprintf(stderr, "got import file: %s\n",rtl::OUStringToOString( path, RTL_TEXTENCODING_ASCII_US ).getStr() );
++
++    return 0;
++}
++#endif
++
++IMPL_LINK( EditorImpl, ExportButtonHdl, layout::PushButton *, pBtn )
++{
++    (void) pBtn;
++    mpLayoutTree->print();
++    return 0;
++}
++
++//** Editor, the Dialog
++
++Editor::Editor( uno::Reference< lang::XMultiServiceFactory > xFactory,
++                rtl::OUString aFile )
++    : layout::Dialog( (Window*) (NULL), "editor.xml", "dialog" )
++    , mpImpl( new EditorImpl( this, xFactory ) )
++{
++    if ( aFile.getLength() )
++        mpImpl->loadFile( aFile );
++
++    // parent:
++    FreeResource();
++}
++
++Editor::~Editor()
++{
++    delete mpImpl;
++}
+Index: toolkit/workben/layout/editor.hxx
+===================================================================
+RCS file: toolkit/workben/layout/editor.hxx
+diff -N toolkit/workben/layout/editor.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/editor.hxx	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,21 @@
++#ifndef EDITOR_HXX
++#define EDITOR_HXX
++
++#include <layout/layout.hxx>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++
++class EditorImpl;
++
++class Editor : public layout::Dialog
++{
++EditorImpl *mpImpl;
++
++public:
++    Editor( com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > xMSF,
++            rtl::OUString aFile );
++    ~Editor();
++
++    void loadFile( const rtl::OUString &aTestFile );
++};
++
++#endif /*EDITOR_HXX*/
+Index: toolkit/workben/layout/editor.xml
+===================================================================
+RCS file: toolkit/workben/layout/editor.xml
+diff -N toolkit/workben/layout/editor.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/editor.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,52 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<!-- Normal skin -->
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        id="dialog" title="Layout Editor" sizeable="true">
++	<vbox>
++		<hbox>
++			<min-size min-width="120" cnt:expand="false">
++				<vbox>
++					<fixedtext label="Layout:" cnt:expand="false" />
++					<hbox>
++						<listbox id="layout-tree" has_border="true" />
++						<vbox cnt:expand="false">
++							<pushbutton id="layout-up-button" cnt:expand="false" />
++							<pushbutton id="layout-down-button" cnt:expand="false" />
++							<fixedtext cnt:expand="true" />
++							<pushbutton id="layout-remove-button" cnt:expand="false" />
++						</vbox>
++					</hbox>
++				</vbox>
++			</min-size>
++			<min-size min-width="120">
++				<vbox>
++					<fixedtext label="Preview:" cnt:expand="false" />
++					<vbox border="50">
++						<bin id="preview-box" />
++					</vbox>
++				</vbox>
++			</min-size>
++			<min-size min-width="120" cnt:expand="false">
++				<vbox>
++					<fixedtext label="Properties:" cnt:expand="false" />
++					<table id="properties-box" columns="3" />
++				</vbox>
++			</min-size>
++		</hbox>
++		<hfixedline cnt:expand="false" />
++		<vbox cnt:expand="false">
++			<fixedtext label="Create widgets:" cnt:expand="false" />
++			<flow id="create-widget" homogeneous="true" spacing="2" />
++			<fixedtext label="Create containers:" cnt:expand="false" />
++			<flow id="create-container" homogeneous="true" spacing="2" />
++		</vbox>
++		<hbox cnt:expand="false">
++			<vbox><fixedline /><fixedline /><fixedline /><fixedline /></vbox>
++<!--			<pushbutton id="import-button" label="Import..." cnt:expand="false"/>-->
++			<pushbutton id="export-button" label="Export (stdout)" cnt:expand="false"/>
++		</hbox>
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/flow-container.xml
+===================================================================
+RCS file: toolkit/workben/layout/flow-container.xml
+diff -N toolkit/workben/layout/flow-container.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/flow-container.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,48 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Interactable Containers" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++	<vbox>
++			<table columns="3" cnt:title="Page 1">
++				<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++				<pushbutton cnt:y-expand="false" label="1,2" />
++				<pushbutton cnt:y-expand="false" label="1,3" />
++				<pushbutton cnt:col-span="2" label="2,1" />
++			</table>
++		<flow>
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<table columns="3" cnt:title="Page 1">
++				<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++				<pushbutton cnt:y-expand="false" label="1,2" />
++				<pushbutton cnt:y-expand="false" label="1,3" />
++				<pushbutton cnt:col-span="2" label="2,1" />
++			</table>
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++		</flow>
++		<hbox cnt:expand="false">
++			<align>
++				<okbutton cnt:hfill="0" cnt:halign="0" />
++			</align>
++			<align>
++				<okbutton cnt:hfill="0" cnt:halign="0.3" />
++			</align>
++			<align>
++				<okbutton cnt:hfill="0" cnt:halign="0.5" />
++			</align>
++			<align>
++				<okbutton cnt:hfill="0" cnt:halign="0.7" />
++			</align>
++			<align>
++				<okbutton cnt:hfill="0" cnt:halign="1" />
++			</align>
++		</hbox>
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/flow.xml
+===================================================================
+RCS file: toolkit/workben/layout/flow.xml
+diff -N toolkit/workben/layout/flow.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/flow.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,17 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        title="Flowing" optimumsize="true" has_border="true" sizeable="true" moveable="true">
++	<vbox spacing="5">
++		<flow>
++			<pushbutton label="Button 1" />
++			<pushbutton label="Button 2" />
++			<pushbutton label="Button 3" />
++			<pushbutton label="Button 4" />
++			<pushbutton label="Button 5" />
++			<pushbutton label="Button 6" />
++			<pushbutton label="Button 7" />
++		</flow>
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/interactable-containers.xml
+===================================================================
+RCS file: toolkit/workben/layout/interactable-containers.xml
+diff -N toolkit/workben/layout/interactable-containers.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/interactable-containers.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,49 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Interactable Containers" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++	<hsplitter>
++			<scroller>
++				<vbox>
++					<pushbutton label="Some Label" />
++					<edit has_border="true" text="Some Text" />
++					<listbox has_border="true" string-item-list="Item One:Item Two:Item Three:Item Four:Item Five:Item Six:Item Seven" />
++					<combobox has_border="true" string-item-list="Item One:Item Two:Item Three" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++					<pushbutton label="Some Label" />
++				</vbox>
++			</scroller>
++		<vsplitter>
++			<pushbutton label="Corner" />
++			<tabcontrol>
++				<table columns="3" cnt:title="Page 1">
++					<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++					<pushbutton cnt:y-expand="false" label="1,2" />
++					<pushbutton cnt:y-expand="false" label="1,3" />
++					<pushbutton cnt:col-span="2" label="2,1" />
++				</table>
++				<vbox cnt:title="Page 2">
++					<pushbutton label="1" />
++					<pushbutton label="2" />
++					<pushbutton label="3" />
++					<pushbutton label="4" />
++				</vbox>
++				<pushbutton label="Content 3" cnt:title="Page 3" />
++				<pushbutton label="Content 4" cnt:title="Page 4" />
++				<pushbutton label="Content 5" cnt:title="Page 5" />
++			</tabcontrol>
++		</vscroll>
++	</hsplitter>
++</dialog>
+Index: toolkit/workben/layout/layout-flat.xml
+===================================================================
+RCS file: toolkit/workben/layout/layout-flat.xml
+diff -N toolkit/workben/layout/layout-flat.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/layout-flat.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,14 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<framewindow  xmlns="http://openoffice.org/2007/layout"
++    id="window1" title="Test-Dialog" optimumsize="true"
++    has_border="true" sizeable="true" moveable="true"
++    width="800" height="300">
++        <pushbutton label="XML Left" toggle="true" show="true"
++	x="10" y="10" width="400" height="200"/>
++        <pushbutton label="XML Right" toggle="true" show="true"
++	x="420" y="10" width="400" height="200"/>
++	<checkbox label="XML cool ?" enabled="true" show="true"
++	 state="1" tristate="true" align="1"
++	 x="10" y="210" width="800" height="100"/>
++</framewindow>
+\ No newline at end of file
+Index: toolkit/workben/layout/layout.xml
+===================================================================
+RCS file: toolkit/workben/layout/layout.xml
+diff -N toolkit/workben/layout/layout.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/layout.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,15 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="window1" title="Test-Dialog" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++	<hbox border="20" spacing="10" homogeneous="true">
++		<pushbutton label="XML Left"
++		            cnt:expand="true" cnt:fill="true" />
++		<pushbutton label="XML Center"
++		            cnt:expand="true" cnt:fill="false" />
++		<pushbutton label="XML Right"
++		            cnt:expand="false" cnt:fill="false" />
++	</hbox>
++</dialog>
+Index: toolkit/workben/layout/localize.sdf
+===================================================================
+RCS file: toolkit/workben/layout/localize.sdf
+diff -N toolkit/workben/layout/localize.sdf
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/localize.sdf	15 Feb 2008 14:28:40 -0000	1.1.2.3
+@@ -0,0 +1,36 @@
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	dialog_title				0	en-US	Set Zoom				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	FL_ZOOM_text				0	en-US	Zoom factor				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	en-US	Whole Page				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	en-US	Page Width				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_OPTIMAL_label				0	en-US	Optimal				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_200_label				0	en-US	200 %				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_150_label				0	en-US	15~0 %				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_100_label				0	en-US	100 %				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_75_label				0	en-US	75 %				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_50_label				0	en-US	50 %				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	BTN_USER_label				0	en-US	Variable				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\zoom.xml	0	layout	ED_USER_text				0	en-US	100%				20080215 15:20:14
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	dialog_title				0	de	Maßstab				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	FL_ZOOM_text				0	de	Zoomfaktor				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	de	Ganze Seite				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	de	Seiten~breite Width				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_OPTIMAL_label				0	de	Optimal				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_200_label				0	de	200 %				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_150_label				0	de	15~0 %				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_100_label				0	de	100 %				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_75_label				0	de	75 %				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_50_label				0	de	50 %				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	BTN_USER_label				0	de	Stufenlos				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\de\zoom.xml	0	layout	ED_USER_text				0	de	100%				20080215 15:19:24
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	dialog_title				0	nl	In- en uitzoomen				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	FL_ZOOM_text				0	nl	Zoomfactor				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_WHOLE_PAGE_label				0	nl	H~ele pagina				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_PAGE_WIDTH_label				0	nl	Paginabreedte				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_OPTIMAL_label				0	nl	Optimaal				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_200_label				0	nl	200 %				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_150_label				0	nl	15~0 %				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_100_label				0	nl	100 %				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_75_label				0	nl	75 %				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_50_label				0	nl	50 %				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	BTN_USER_label				0	nl	Variabel				20080215 15:19:27
++layout	janneke\vc\layout-cws\toolkit\workben\layout\nl\zoom.xml	0	layout	ED_USER_text				0	nl	100%				20080215 15:19:27
+Index: toolkit/workben/layout/makefile.mk
+===================================================================
+RCS file: toolkit/workben/layout/makefile.mk
+diff -N toolkit/workben/layout/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/makefile.mk	18 Feb 2008 15:23:56 -0000	1.1.2.5
+@@ -0,0 +1,95 @@
++PRJ=../..
++PRJNAME=toolkit
++TARGET=test
++TARGETTYPE=GUI
++LIBTARGET=NO
++ENABLE_EXCEPTIONS=TRUE
++
++.INCLUDE :  settings.mk
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++CFLAGS += -I$(PRJ)/source/layout
++
++# Allow zoom and wordcount to be built without depending on svx,sv,sfx2
++CFLAGS += -I../$(PRJ)/svx/inc -I../$(PRJ)/svtools/inc -I../$(PRJ)/sfx2/inc
++
++.INCLUDE : $(PRJ)$/util$/makefile.pmk
++
++CFLAGS += -DENABLE_LAYOUT=1 -DTEST_LAYOUT=1
++
++.IF "$(COMNAME)" == "gcc3"
++CFLAGS+=-Wall -Wno-non-virtual-dtor
++.ENDIF
++
++CXXFILES=\
++	editor.cxx \
++	wordcountdialog.cxx \
++	test.cxx \
++	zoom.cxx
++
++OBJFILES=\
++	$(OBJ)$/editor.obj \
++	$(OBJ)$/test.obj \
++	$(OBJ)$/wordcountdialog.obj \
++	$(OBJ)$/zoom.obj
++
++APP1TARGET=$(TARGET)
++APP1OBJS=$(OBJFILES)
++APP1STDLIBS= \
++		$(TOOLSLIB)			\
++		$(COMPHELPERLIB)		\
++		$(VCLLIB)			\
++		$(CPPULIB)			\
++		$(CPPUHELPERLIB)		\
++		$(SALLIB)			\
++		$(XMLSCRIPTLIB)			\
++		$(LAYOUTLIB)\
++		$(TKLIB)
++
++all: svtools ALLTAR
++
++.INCLUDE :  target.mk
++
++# FIXME: move this rule and .xml files into sw/svx trees,
++#        install into xml directory instead of lib.
++ALLTAR: \
++    $(DLLDEST)$/wordcount.xml\
++    $(DLLDEST)$/zoom.xml\
++    $(DLLDEST)$/de/wordcount.xml\
++    $(DLLDEST)$/de/zoom.xml\
++    $(DLLDEST)$/nl/wordcount.xml\
++    $(DLLDEST)$/nl/zoom.xml
++
++TRALAY=tralay
++$(WITH_LANG:f:t"/%.xml ")/%.xml: %.xml
++	$(TRALAY) -m localize.sdf -o . -l $(WITH_LANG:f:t" -l ") $<
++	rm -rf en-US
++
++$(DLLDEST)$/%.xml: %.xml
++# modes, INSTALL?
++	-$(MKDIR) $(@:d)
++	$(COPY) $< $@
++
++svtools:
++	# FIXME: there's a bug in svtools layout or usage
++	# Include files are in svtools/inc, but are referenced as <svtools/..>
++	# They probably should be in svtools/inc/svtools
++	# This means that include files can only be included after svtools
++	# is built, which would mean a circular dependency,
++	# because svtools depends on toolkit.
++	ln -sf ../$(PRJ)/svtools/inc svtools
++
++dist .PHONY :
++	$(SHELL) ./un-test.sh zoom.cxx > ../$(PRJ)/svx/source/dialog/zoom.cxx
++	$(SHELL) ./un-test.sh zoom.hxx > ../$(PRJ)/svx/source/dialog/zoom.hxx
++	touch ../$(PRJ)/svx/source/dialog/dlgfact.cxx
++	$(SHELL) ./un-test.sh wordcountdialog.cxx > ../$(PRJ)/sw/source/ui/dialog/wordcountdialog.cxx
++	$(SHELL) ./un-test.sh wordcountdialog.hxx > ../$(PRJ)/sw/source/ui/inc/wordcountdialog.hxx
++	touch ../$(PRJ)/sw/source/ui/dialog/swdlgfact.cxx
++	# FIXME: broken setup
++	ln -sf ../inc/wordcountdialog.hxx ../$(PRJ)/sw/source/ui/dialog/wordcountdialog.hxx 
++
++.ELSE # ENABLE_LAYOUT != TRUE
++all .PHONY:
++.ENDIF # ENABLE_LAYOUT != TRUE
+Index: toolkit/workben/layout/non-interactable-containers.xml
+===================================================================
+RCS file: toolkit/workben/layout/non-interactable-containers.xml
+diff -N toolkit/workben/layout/non-interactable-containers.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/non-interactable-containers.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,41 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Interactable Containers" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++	<vbox spacing="10">
++			<table columns="3" cnt:title="Page 1">
++				<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++				<pushbutton cnt:y-expand="false" label="1,2" />
++				<pushbutton cnt:y-expand="false" label="1,3" />
++				<pushbutton cnt:col-span="2" label="2,1" />
++			</table>
++		<hfixedline/>
++		<flow cnt:expand="false">
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<table columns="3" cnt:title="Page 1">
++				<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++				<pushbutton cnt:y-expand="false" label="1,2" />
++				<pushbutton cnt:y-expand="false" label="1,3" />
++				<pushbutton cnt:col-span="2" label="2,1" />
++			</table>
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++			<pushbutton label="label" />
++		</flow>
++		<hfixedline/>
++		<hbox cnt:expand="false">
++<!--			<align>
++				<okbutton cnt:hfill="0.2" cnt:halign="0.2" />
++			</align>
++			<align>
++				<okbutton cnt:hfill="0.8" cnt:halign="0.2" />
++			</align>-->
++		</hbox>
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/numeric.xml
+===================================================================
+RCS file: toolkit/workben/layout/numeric.xml
+diff -N toolkit/workben/layout/numeric.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/numeric.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,10 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<framewindow xmlns="http://openoffice.org/2007/layout"
++              xmlns:cnt="http://openoffice.org/2007/layout/container"
++              id="window1" title="Test-Dialog" optimumsize="true"
++              has_border="true" sizeable="true" moveable="true">
++                <vbox>
++			<numericfield text="5" spin="true" enforce-format="false" value-min="5.3" value-max="17.8"/>
++                        <pushbutton />
++                </vbox>
++</framewindow>
+Index: toolkit/workben/layout/ooo-patch
+===================================================================
+RCS file: toolkit/workben/layout/ooo-patch
+diff -N toolkit/workben/layout/ooo-patch
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/ooo-patch	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,7 @@
++#! /bin/sh
++commit=${1-3249db59} # m5
++
++git diff $commit layout | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-layout.diff
++git diff $commit config_office scp2 | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-config_office-scp2.diff
++git diff $commit svx sw | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-svx-sw.diff
++git diff $commit transex3 | sed 's@^\([+-]\{3\}\) \(a\|b\)/@\1 @' > layout-dialogs-transex3.diff
+Index: toolkit/workben/layout/paragraph.cxx
+===================================================================
+RCS file: toolkit/workben/layout/paragraph.cxx
+diff -N toolkit/workben/layout/paragraph.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/paragraph.cxx	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,2422 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#ifdef SVX_DLLIMPLEMENTATION
++#undef SVX_DLLIMPLEMENTATION
++#endif
++
++#ifndef _SFXSTYLE_HXX
++#include <svtools/style.hxx>
++#endif
++#ifndef _SFXAPP_HXX //autogen
++#include <sfx2/app.hxx>
++#endif
++#ifndef _SFX_OBJSH_HXX //autogen
++#include <sfx2/objsh.hxx>
++#endif
++#ifndef _SV_MNEMONIC_HXX
++#include <vcl/mnemonic.hxx>
++#endif
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++#define _SVX_PARAGRPH_CXX   0
++
++
++
++
++#ifndef _SVTOOLS_LANGUAGEOPTIONS_HXX
++#include <svtools/languageoptions.hxx>
++#endif
++#include <svx/dialogs.hrc>
++#include "paragraph.hrc"
++#include "paragraph.hxx"
++#include <svx/frmdiritem.hxx>
++
++#include <svx/lspcitem.hxx>
++#include <svx/adjitem.hxx>
++#include <svx/orphitem.hxx>
++#include <svx/widwitem.hxx>
++#include <svx/tstpitem.hxx>
++#include <svx/pmdlitem.hxx>
++#include <svx/spltitem.hxx>
++#include <svx/hyznitem.hxx>
++#include <svx/ulspitem.hxx>
++#include <svx/lrspitem.hxx>
++#include <svx/brkitem.hxx>
++#include <svx/keepitem.hxx>
++#include <svx/dialmgr.hxx>
++#ifndef _SVX_PARAVERTALIGNITEM_HXX
++#include <svx/paravertalignitem.hxx>
++#endif
++#include <svtools/eitem.hxx> //add CHINA001
++#include <sfx2/request.hxx> //add CHINA001
++#include <svtools/intitem.hxx> //add CHINA001
++
++// static ----------------------------------------------------------------
++
++static USHORT pStdRanges[] =
++{
++    SID_ATTR_PARA_LINESPACE,        // 10033
++    SID_ATTR_PARA_LINESPACE,
++    SID_ATTR_LRSPACE,                // 10048 -
++    SID_ATTR_ULSPACE,                // 10049
++    SID_ATTR_PARA_REGISTER,            // 10413
++    SID_ATTR_PARA_REGISTER,
++    0
++};
++
++static USHORT pAlignRanges[] =
++{
++    SID_ATTR_PARA_ADJUST,            // 10027
++    SID_ATTR_PARA_ADJUST,
++    0
++};
++
++static USHORT pExtRanges[] =
++{
++    SID_ATTR_PARA_PAGEBREAK,        // 10037 -
++    SID_ATTR_PARA_WIDOWS,            // 10041
++    SID_ATTR_PARA_MODEL,            // 10065 -
++    SID_ATTR_PARA_KEEP,                // 10066
++    0
++};
++
++// define ----------------------------------------------------------------
++
++#define MAX_DURCH 5670      // 10 cm ist sinnvoll als maximaler Durchschuss
++                            // laut BP
++#define FIX_DIST_DEF 283    // Standard-Fix-Abstand 0,5cm
++
++// enum ------------------------------------------------------------------
++
++enum LineSpaceList
++{
++    LLINESPACE_1    = 0,
++    LLINESPACE_15   = 1,
++    LLINESPACE_2    = 2,
++    LLINESPACE_PROP = 3,
++    LLINESPACE_MIN  = 4,
++    LLINESPACE_DURCH= 5,
++    LLINESPACE_FIX     = 6,
++    LLINESPACE_END
++};
++
++// C-Funktion ------------------------------------------------------------
++
++void SetLineSpace_Impl( SvxLineSpacingItem&, int, long lValue = 0 );
++
++void SetLineSpace_Impl( SvxLineSpacingItem& rLineSpace,
++                        int eSpace, long lValue )
++{
++    switch ( eSpace )
++    {
++        case LLINESPACE_1:
++            rLineSpace.GetLineSpaceRule() = SVX_LINE_SPACE_AUTO;
++            rLineSpace.GetInterLineSpaceRule() = SVX_INTER_LINE_SPACE_OFF;
++            break;
++
++        case LLINESPACE_15:
++            rLineSpace.GetLineSpaceRule() = SVX_LINE_SPACE_AUTO;
++            rLineSpace.SetPropLineSpace( 150 );
++            break;
++
++        case LLINESPACE_2:
++            rLineSpace.GetLineSpaceRule() = SVX_LINE_SPACE_AUTO;
++            rLineSpace.SetPropLineSpace( 200 );
++            break;
++
++        case LLINESPACE_PROP:
++            rLineSpace.GetLineSpaceRule() = SVX_LINE_SPACE_AUTO;
++            rLineSpace.SetPropLineSpace( (BYTE)lValue );
++            break;
++
++        case LLINESPACE_MIN:
++            rLineSpace.SetLineHeight( (USHORT)lValue );
++            rLineSpace.GetInterLineSpaceRule() = SVX_INTER_LINE_SPACE_OFF;
++            break;
++
++        case LLINESPACE_DURCH:
++            rLineSpace.GetLineSpaceRule() = SVX_LINE_SPACE_AUTO;
++            rLineSpace.SetInterLineSpace( (USHORT)lValue );
++            break;
++
++        case LLINESPACE_FIX:
++            rLineSpace.SetLineHeight((USHORT)lValue);
++            rLineSpace.GetLineSpaceRule() = SVX_LINE_SPACE_FIX;
++            rLineSpace.GetInterLineSpaceRule() = SVX_INTER_LINE_SPACE_OFF;
++        break;
++    }
++}
++
++
++USHORT GetHtmlMode_Impl(const SfxItemSet& rSet)
++{
++    USHORT nHtmlMode = 0;
++    const SfxPoolItem* pItem = 0;
++    SfxObjectShell* pShell;
++    if(SFX_ITEM_SET == rSet.GetItemState(SID_HTML_MODE, FALSE, &pItem) ||
++        ( 0 != (pShell = SfxObjectShell::Current()) &&
++                    0 != (pItem = pShell->GetItem(SID_HTML_MODE))))
++    {
++        nHtmlMode = ((SfxUInt16Item*)pItem)->GetValue();
++    }
++    return nHtmlMode;
++
++}
++
++// class SvxStdParagraphTabPage ------------------------------------------
++
++IMPL_LINK( SvxStdParagraphTabPage, ELRLoseFocusHdl, Edit *, EMPTYARG )
++{
++//! if ( aLeftIndent.IsRelativeMode() )
++//!     return 0; //!!!
++
++    SfxItemPool* pPool = GetItemSet().GetPool();
++    DBG_ASSERT( pPool, "Wo ist der Pool" );
++    FieldUnit eUnit =
++        MapToFieldUnit( pPool->GetMetric( GetWhich( SID_ATTR_LRSPACE ) ) );
++
++    sal_Int64 nL = aLeftIndent.Denormalize( aLeftIndent.GetValue( eUnit ) );
++    sal_Int64 nR = aRightIndent.Denormalize( aRightIndent.GetValue( eUnit ) );
++    String aTmp = aFLineIndent.GetText();
++
++    // Erstzeilen Einzug
++    if( aLeftIndent.GetMin() < 0 )
++        aFLineIndent.SetMin( -99999, FUNIT_MM );
++    else
++        aFLineIndent.SetMin( aFLineIndent.Normalize( -nL ), eUnit );
++
++    // Check nur fuer konkrete Breite (Shell)
++    sal_Int64 nTmp = nWidth - nL - nR - MM50;
++    aFLineIndent.SetMax( aFLineIndent.Normalize( nTmp ), eUnit );
++
++    if ( !aTmp.Len() )
++        aFLineIndent.SetEmptyFieldValue();
++    // Maximum Links Rechts
++    aTmp = aLeftIndent.GetText();
++    nTmp = nWidth - nR - MM50;
++    aLeftIndent.SetMax( aLeftIndent.Normalize( nTmp ), eUnit );
++
++    if ( !aTmp.Len() )
++        aLeftIndent.SetEmptyFieldValue();
++    aTmp = aRightIndent.GetText();
++    nTmp = nWidth - nL - MM50;
++    aRightIndent.SetMax( aRightIndent.Normalize( nTmp ), eUnit );
++
++    if ( !aTmp.Len() )
++        aRightIndent.SetEmptyFieldValue();
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++SfxTabPage* SvxStdParagraphTabPage::Create( Window* pParent,
++                                            const SfxItemSet& rSet)
++{
++    return new SvxStdParagraphTabPage( pParent, rSet );
++}
++
++// -----------------------------------------------------------------------
++
++BOOL SvxStdParagraphTabPage::FillItemSet( SfxItemSet& rOutSet )
++{
++    SfxItemState eState = SFX_ITEM_UNKNOWN;
++    const SfxPoolItem* pOld = 0;
++    SfxItemPool* pPool = rOutSet.GetPool();
++    DBG_ASSERT( pPool, "Wo ist der Pool" );
++
++    BOOL bModified = FALSE;
++    USHORT nWhich;
++    USHORT nPos = aLineDist.GetSelectEntryPos();
++
++    if ( LISTBOX_ENTRY_NOTFOUND != nPos &&
++         ( nPos != aLineDist.GetSavedValue() ||
++           aLineDistAtPercentBox.IsValueModified() ||
++           aLineDistAtMetricBox.IsValueModified() ) )
++    {
++        nWhich = GetWhich( SID_ATTR_PARA_LINESPACE );
++        SfxMapUnit eUnit = pPool->GetMetric( nWhich );
++        SvxLineSpacingItem aSpacing(
++            (const SvxLineSpacingItem&)GetItemSet().Get( nWhich ) );
++
++        switch ( nPos )
++        {
++            case LLINESPACE_1:
++            case LLINESPACE_15:
++            case LLINESPACE_2:
++                SetLineSpace_Impl( aSpacing, nPos );
++                break;
++
++            case LLINESPACE_PROP:
++                SetLineSpace_Impl( aSpacing, nPos,
++                                   static_cast<long>(aLineDistAtPercentBox.Denormalize(
++                                   aLineDistAtPercentBox.GetValue() )) );
++                break;
++
++            case LLINESPACE_MIN:
++            case LLINESPACE_DURCH:
++            case LLINESPACE_FIX:
++                SetLineSpace_Impl( aSpacing, nPos,
++                    GetCoreValue( aLineDistAtMetricBox, eUnit ) );
++            break;
++
++            default:
++                DBG_ERROR( "unbekannter Type fuer Zeilenabstand." );
++                break;
++        }
++        eState = GetItemSet().GetItemState( nWhich );
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_LINESPACE );
++
++        if ( !pOld || !( *(const SvxLineSpacingItem*)pOld == aSpacing ) ||
++             SFX_ITEM_DONTCARE == eState )
++        {
++            rOutSet.Put( aSpacing );
++            bModified |= TRUE;
++        }
++    }
++
++    if ( aTopDist.IsValueModified() || aBottomDist.IsValueModified() )
++    {
++        nWhich = GetWhich( SID_ATTR_ULSPACE );
++        SfxMapUnit eUnit = pPool->GetMetric( nWhich );
++        pOld = GetOldItem( rOutSet, SID_ATTR_ULSPACE );
++        SvxULSpaceItem aMargin( nWhich );
++
++        if ( bRelativeMode )
++        {
++            DBG_ASSERT( GetItemSet().GetParent(), "No ParentSet" );
++
++            const SvxULSpaceItem& rOldItem =
++                (const SvxULSpaceItem&)GetItemSet().GetParent()->Get( nWhich );
++
++            if ( aTopDist.IsRelative() )
++                aMargin.SetUpper( rOldItem.GetUpper(),
++                                  (USHORT)aTopDist.GetValue() );
++            else
++                aMargin.SetUpper( (USHORT)GetCoreValue( aTopDist, eUnit ) );
++
++            if ( aBottomDist.IsRelative() )
++                aMargin.SetLower( rOldItem.GetLower(),
++                                  (USHORT)aBottomDist.GetValue() );
++            else
++                aMargin.SetLower( (USHORT)GetCoreValue( aBottomDist, eUnit ) );
++
++        }
++        else
++        {
++            aMargin.SetUpper( (USHORT)GetCoreValue( aTopDist, eUnit ) );
++            aMargin.SetLower( (USHORT)GetCoreValue( aBottomDist, eUnit ) );
++        }
++        eState = GetItemSet().GetItemState( nWhich );
++
++        if ( !pOld || !( *(const SvxULSpaceItem*)pOld == aMargin ) ||
++             SFX_ITEM_DONTCARE == eState )
++        {
++            rOutSet.Put( aMargin );
++            bModified |= TRUE;
++        }
++    }
++    FASTBOOL bNullTab = FALSE;
++
++    if ( aLeftIndent.IsValueModified() ||
++         aFLineIndent.IsValueModified() ||
++         aRightIndent.IsValueModified()
++         ||     aAutoCB.GetSavedValue() != aAutoCB.IsChecked() )
++    {
++        nWhich = GetWhich( SID_ATTR_LRSPACE );
++        SfxMapUnit eUnit = pPool->GetMetric( nWhich );
++        SvxLRSpaceItem aMargin( nWhich );
++        pOld = GetOldItem( rOutSet, SID_ATTR_LRSPACE );
++
++        if ( bRelativeMode )
++        {
++            DBG_ASSERT( GetItemSet().GetParent(), "No ParentSet" );
++
++            const SvxLRSpaceItem& rOldItem =
++                (const SvxLRSpaceItem&)GetItemSet().GetParent()->Get( nWhich );
++
++            if ( aLeftIndent.IsRelative() )
++                aMargin.SetTxtLeft( rOldItem.GetTxtLeft(),
++                                    (USHORT)aLeftIndent.GetValue() );
++            else
++                aMargin.SetTxtLeft( GetCoreValue( aLeftIndent, eUnit ) );
++
++            if ( aRightIndent.IsRelative() )
++                aMargin.SetRight( rOldItem.GetRight(),
++                                  (USHORT)aRightIndent.GetValue() );
++            else
++                aMargin.SetRight( GetCoreValue( aRightIndent, eUnit ) );
++
++            if ( aFLineIndent.IsRelative() )
++                aMargin.SetTxtFirstLineOfst( rOldItem.GetTxtFirstLineOfst(),
++                                             (USHORT)aFLineIndent.GetValue() );
++            else
++                aMargin.SetTxtFirstLineOfst(
++                    (USHORT)GetCoreValue( aFLineIndent, eUnit ) );
++        }
++        else
++        {
++            aMargin.SetTxtLeft( GetCoreValue( aLeftIndent, eUnit ) );
++            aMargin.SetRight( GetCoreValue( aRightIndent, eUnit ) );
++            aMargin.SetTxtFirstLineOfst(
++                (USHORT)GetCoreValue( aFLineIndent, eUnit ) );
++        }
++        aMargin.SetAutoFirst(aAutoCB.IsChecked());
++        if ( aMargin.GetTxtFirstLineOfst() < 0 )
++            bNullTab = TRUE;
++        eState = GetItemSet().GetItemState( nWhich );
++
++        if ( !pOld || !( *(const SvxLRSpaceItem*)pOld == aMargin ) ||
++             SFX_ITEM_DONTCARE == eState )
++        {
++            rOutSet.Put( aMargin );
++            bModified |= TRUE;
++        }
++    }
++
++    if ( bNullTab )
++    {
++        MapUnit eUnit = (MapUnit)pPool->GetMetric( GetWhich( SID_ATTR_TABSTOP ) );
++        if ( MAP_100TH_MM != eUnit )
++        {
++
++            // negativer Erstzeileneinzug -> ggf. Null Default-Tabstop setzen
++            USHORT _nWhich = GetWhich( SID_ATTR_TABSTOP );
++            const SfxItemSet& rInSet = GetItemSet();
++
++            if ( rInSet.GetItemState( _nWhich ) >= SFX_ITEM_AVAILABLE )
++            {
++                const SvxTabStopItem& rTabItem =
++                    (const SvxTabStopItem&)rInSet.Get( _nWhich );
++                SvxTabStopItem aNullTab( rTabItem );
++                SvxTabStop aNull( 0, SVX_TAB_ADJUST_DEFAULT );
++                aNullTab.Insert( aNull );
++                rOutSet.Put( aNullTab );
++            }
++        }
++    }
++    if( aRegisterCB.IsVisible())
++    {
++        const SfxBoolItem* pBoolItem = (SfxBoolItem*)GetOldItem(
++                            rOutSet, SID_ATTR_PARA_REGISTER);
++        SfxBoolItem* pRegItem = (SfxBoolItem*)pBoolItem->Clone();
++        USHORT _nWhich = GetWhich( SID_ATTR_PARA_REGISTER );
++        BOOL bSet = pRegItem->GetValue();
++
++        if(aRegisterCB.IsChecked() != bSet )
++        {
++            pRegItem->SetValue(!bSet);
++            rOutSet.Put(*pRegItem);
++            bModified |= TRUE;
++        }
++        else if ( SFX_ITEM_DEFAULT == GetItemSet().GetItemState( _nWhich, FALSE ) )
++            rOutSet.ClearItem(_nWhich);
++        delete pRegItem;
++    }
++
++    return bModified;
++}
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::Reset( const SfxItemSet& rSet )
++{
++    SfxItemPool* pPool = rSet.GetPool();
++    DBG_ASSERT( pPool, "Wo ist der Pool?" );
++    String aEmpty;
++
++    // Metrik einstellen
++    FieldUnit eFUnit = GetModuleFieldUnit( &rSet );
++    SetFieldUnit( aLeftIndent, eFUnit );
++    SetFieldUnit( aRightIndent, eFUnit );
++    SetFieldUnit( aFLineIndent, eFUnit );
++    SetFieldUnit( aTopDist, eFUnit );
++    SetFieldUnit( aBottomDist, eFUnit );
++    SetFieldUnit( aLineDistAtMetricBox, eFUnit );
++
++    USHORT _nWhich = GetWhich( SID_ATTR_LRSPACE );
++    SfxItemState eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        SfxMapUnit eUnit = pPool->GetMetric( _nWhich );
++
++        if ( bRelativeMode )
++        {
++            const SvxLRSpaceItem& rOldItem =
++                (const SvxLRSpaceItem&)rSet.Get( _nWhich );
++
++            if ( rOldItem.GetPropLeft() != 100 )
++            {
++                aLeftIndent.SetRelative( TRUE );
++                aLeftIndent.SetValue( rOldItem.GetPropLeft() );
++            }
++            else
++            {
++                aLeftIndent.SetRelative();
++                SetFieldUnit( aLeftIndent, eFUnit );
++                SetMetricValue( aLeftIndent, rOldItem.GetTxtLeft(), eUnit );
++            }
++
++            if ( rOldItem.GetPropRight() != 100 )
++            {
++                aRightIndent.SetRelative( TRUE );
++                aRightIndent.SetValue( rOldItem.GetPropRight() );
++            }
++            else
++            {
++                aRightIndent.SetRelative();
++                SetFieldUnit( aRightIndent, eFUnit );
++                SetMetricValue( aRightIndent, rOldItem.GetRight(), eUnit );
++            }
++
++            if ( rOldItem.GetPropTxtFirstLineOfst() != 100 )
++            {
++                aFLineIndent.SetRelative( TRUE );
++                aFLineIndent.SetValue( rOldItem.GetPropTxtFirstLineOfst() );
++            }
++            else
++            {
++                aFLineIndent.SetRelative();
++                aFLineIndent.SetMin(-9999);
++                SetFieldUnit( aFLineIndent, eFUnit );
++                SetMetricValue( aFLineIndent, rOldItem.GetTxtFirstLineOfst(),
++                                eUnit );
++            }
++            aAutoCB.Check(rOldItem.IsAutoFirst());
++        }
++        else
++        {
++            const SvxLRSpaceItem& rSpace =
++                (const SvxLRSpaceItem&)rSet.Get( _nWhich );
++
++            SetMetricValue( aLeftIndent, rSpace.GetTxtLeft(), eUnit );
++            SetMetricValue( aRightIndent, rSpace.GetRight(), eUnit );
++            SetMetricValue( aFLineIndent, rSpace.GetTxtFirstLineOfst(), eUnit );
++            aAutoCB.Check(rSpace.IsAutoFirst());
++        }
++        AutoHdl_Impl(&aAutoCB);
++    }
++    else
++    {
++        aLeftIndent.SetEmptyFieldValue();
++        aRightIndent.SetEmptyFieldValue();
++        aFLineIndent.SetEmptyFieldValue();
++    }
++
++    _nWhich = GetWhich( SID_ATTR_ULSPACE );
++    eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        SfxMapUnit eUnit = pPool->GetMetric( _nWhich );
++
++        if ( bRelativeMode )
++        {
++            const SvxULSpaceItem& rOldItem =
++                (const SvxULSpaceItem&)rSet.Get( _nWhich );
++
++            if ( rOldItem.GetPropUpper() != 100 )
++            {
++                aTopDist.SetRelative( TRUE );
++                aTopDist.SetValue( rOldItem.GetPropUpper() );
++            }
++            else
++            {
++                aTopDist.SetRelative();
++                SetFieldUnit( aTopDist, eFUnit );
++                SetMetricValue( aTopDist, rOldItem.GetUpper(), eUnit );
++            }
++
++            if ( rOldItem.GetPropLower() != 100 )
++            {
++                aBottomDist.SetRelative( TRUE );
++                aBottomDist.SetValue( rOldItem.GetPropLower() );
++            }
++            else
++            {
++                aBottomDist.SetRelative();
++                SetFieldUnit( aBottomDist, eFUnit );
++                SetMetricValue( aBottomDist, rOldItem.GetLower(), eUnit );
++            }
++        }
++        else
++        {
++            const SvxULSpaceItem& rTopMargin =
++                (const SvxULSpaceItem&)rSet.Get( _nWhich );
++            SetMetricValue( aTopDist, rTopMargin.GetUpper(), eUnit );
++            SetMetricValue( aBottomDist, rTopMargin.GetLower(), eUnit );
++        }
++    }
++    else
++    {
++        aTopDist.SetEmptyFieldValue();
++        aBottomDist.SetEmptyFieldValue();
++    }
++
++    _nWhich = GetWhich( SID_ATTR_PARA_LINESPACE );
++    eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++        SetLineSpacing_Impl( (const SvxLineSpacingItem &)rSet.Get( _nWhich ) );
++    else
++        aLineDist.SetNoSelection();
++
++
++    _nWhich = GetWhich( SID_ATTR_PARA_REGISTER );
++    eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++        aRegisterCB.Check( ((const SfxBoolItem &)rSet.Get( _nWhich )).GetValue());
++    aRegisterCB.SaveValue();
++    USHORT nHtmlMode = GetHtmlMode_Impl(rSet);
++    if(nHtmlMode & HTMLMODE_ON)
++    {
++        aRegisterCB.Hide();
++        aRegisterFL.Hide();
++        aAutoCB.Hide();
++        if(!(nHtmlMode & HTMLMODE_SOME_STYLES)) // IE oder SW
++        {
++            aRightLabel.Disable();
++            aRightIndent.Disable();
++            aTopDist.Disable();  //HTML3.2 und NS 3.0
++            aBottomDist.Disable();
++            if(!(nHtmlMode & HTMLMODE_FIRSTLINE)) //NS 3.0
++            {
++                aFLineIndent.Disable();
++                aFLineLabel.Disable();
++            }
++        }
++    }
++
++    ELRLoseFocusHdl( NULL );
++    aAutoCB.SaveValue();
++    aLineDist.SaveValue();
++}
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::EnableRelativeMode()
++{
++    DBG_ASSERT( GetItemSet().GetParent(), "RelativeMode, but no parent-set!" );
++
++    aLeftIndent.EnableRelativeMode( 0, 999 );
++    aFLineIndent.EnableRelativeMode( 0, 999 );
++    aRightIndent.EnableRelativeMode( 0, 999 );
++    aTopDist.EnableRelativeMode( 0, 999 );
++    aBottomDist.EnableRelativeMode( 0, 999 );
++    bRelativeMode = TRUE;
++}
++
++// -----------------------------------------------------------------------
++
++int SvxStdParagraphTabPage::DeactivatePage( SfxItemSet* _pSet )
++{
++    ELRLoseFocusHdl( NULL );
++
++    if ( _pSet )
++        FillItemSet( *_pSet );
++    return LEAVE_PAGE;
++}
++
++// -----------------------------------------------------------------------
++
++SvxStdParagraphTabPage::SvxStdParagraphTabPage( Window* pParent,
++                                                const SfxItemSet& rAttr ) :
++
++    SfxTabPage( pParent, SVX_RES( RID_SVXPAGE_STD_PARAGRAPH ), rAttr ),
++
++    aLeftLabel              ( this, SVX_RES( FT_LEFTINDENT ) ),
++    aLeftIndent             ( this, SVX_RES( ED_LEFTINDENT ) ),
++    aRightLabel             ( this, SVX_RES( FT_RIGHTINDENT ) ),
++    aRightIndent            ( this, SVX_RES( ED_RIGHTINDENT ) ),
++    
++    aFLineLabel             ( this, SVX_RES( FT_FLINEINDENT ) ),
++    aFLineIndent            ( this, SVX_RES( ED_FLINEINDENT ) ),
++    aAutoCB                 ( this, SVX_RES( CB_AUTO ) ),
++    aIndentFrm              ( this, SVX_RES( FL_INDENT ) ),
++    aTopLabel               ( this, SVX_RES( FT_TOPDIST ) ),
++    aTopDist                ( this, SVX_RES( ED_TOPDIST ) ),
++    aBottomLabel            ( this, SVX_RES( FT_BOTTOMDIST ) ),
++    aBottomDist             ( this, SVX_RES( ED_BOTTOMDIST ) ),
++    aDistFrm                ( this, SVX_RES( FL_DIST ) ),
++    aLineDist               ( this, SVX_RES( LB_LINEDIST ) ),
++    aLineDistAtLabel        ( this, SVX_RES( FT_LINEDIST ) ),
++    aLineDistAtPercentBox   ( this, SVX_RES( ED_LINEDISTPERCENT ) ),
++    aLineDistAtMetricBox    ( this, SVX_RES( ED_LINEDISTMETRIC ) ),
++    aLineDistFrm            ( this, SVX_RES( FL_LINEDIST ) ),
++    sAbsDist                ( SVX_RES(ST_LINEDIST_ABS) ),
++    aExampleWin             ( this, SVX_RES( WN_EXAMPLE ) ),
++    aRegisterCB             ( this, SVX_RES( CB_REGISTER ) ),
++    aRegisterFL             ( this, SVX_RES( FL_REGISTER ) ),
++    pActLineDistFld ( &aLineDistAtPercentBox ),
++    nAbst           ( MAX_DURCH ),
++    nWidth          ( 11905 /*567 * 50*/ ),
++    nMinFixDist(0L),
++
++    bRelativeMode   ( FALSE ),
++    bNegativeIndents(FALSE)
++
++{
++    // diese Page braucht ExchangeSupport
++    SetExchangeSupport();
++
++    aLineDistAtMetricBox.Hide();
++    FreeResource();
++    Init_Impl();
++    aFLineIndent.SetMin(-9999);    // wird default auf 0 gesetzt
++}
++
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::EnableNegativeMode()
++{
++    aLeftIndent.SetMin(-9999);
++    aRightIndent.SetMin(-9999);
++#if SUPD>629
++    aRightIndent.EnableNegativeMode();
++    aLeftIndent.EnableNegativeMode();
++#endif
++    bNegativeIndents = TRUE;
++}
++
++// -----------------------------------------------------------------------
++
++USHORT* SvxStdParagraphTabPage::GetRanges()
++{
++    return pStdRanges;
++}
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::SetLineSpacing_Impl
++(
++    const SvxLineSpacingItem &rAttr
++)
++{
++    SfxMapUnit eUnit = GetItemSet().GetPool()->GetMetric( rAttr.Which() );
++
++    switch( rAttr.GetLineSpaceRule() )
++    {
++        case SVX_LINE_SPACE_AUTO:
++        {
++            SvxInterLineSpace eInter = rAttr.GetInterLineSpaceRule();
++
++            switch( eInter )
++            {
++                // Default einzeilig
++                case SVX_INTER_LINE_SPACE_OFF:
++                    aLineDist.SelectEntryPos( LLINESPACE_1 );
++                    break;
++
++                // Default einzeilig
++                case SVX_INTER_LINE_SPACE_PROP:
++                    if ( 100 == rAttr.GetPropLineSpace() )
++                    {
++                        aLineDist.SelectEntryPos( LLINESPACE_1 );
++                        break;
++                    }
++                    // 1.5zeilig
++                    if ( 150 == rAttr.GetPropLineSpace() )
++                    {
++                        aLineDist.SelectEntryPos( LLINESPACE_15 );
++                        break;
++                    }
++                    // 2zeilig
++                    if ( 200 == rAttr.GetPropLineSpace() )
++                    {
++                        aLineDist.SelectEntryPos( LLINESPACE_2 );
++                        break;
++                    }
++                    // eingestellter Prozentwert
++                    aLineDistAtPercentBox.
++                        SetValue( aLineDistAtPercentBox.Normalize(
++                                        rAttr.GetPropLineSpace() ) );
++                    aLineDist.SelectEntryPos( LLINESPACE_PROP );
++                    break;
++
++                case SVX_INTER_LINE_SPACE_FIX:
++                    SetMetricValue( aLineDistAtMetricBox,
++                                    rAttr.GetInterLineSpace(), eUnit );
++                    aLineDist.SelectEntryPos( LLINESPACE_DURCH );
++                    break;
++                default: ;//prevent warning
++            }
++        }
++        break;
++        case SVX_LINE_SPACE_FIX:
++            SetMetricValue(aLineDistAtMetricBox, rAttr.GetLineHeight(), eUnit);
++            aLineDist.SelectEntryPos( LLINESPACE_FIX );
++        break;
++
++        case SVX_LINE_SPACE_MIN:
++            SetMetricValue(aLineDistAtMetricBox, rAttr.GetLineHeight(), eUnit);
++            aLineDist.SelectEntryPos( LLINESPACE_MIN );
++            break;
++        default: ;//prevent warning
++    }
++    LineDistHdl_Impl( &aLineDist );
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxStdParagraphTabPage, LineDistHdl_Impl, ListBox *, pBox )
++{
++    switch( pBox->GetSelectEntryPos() )
++    {
++        case LLINESPACE_1:
++        case LLINESPACE_15:
++        case LLINESPACE_2:
++            aLineDistAtLabel.Enable(FALSE);
++            pActLineDistFld->Enable(FALSE);
++            pActLineDistFld->SetText( String() );
++            break;
++
++        case LLINESPACE_DURCH:
++            // Setzen eines sinnvollen Defaults?
++            // MS Begrenzen min(10, aPageSize)
++            aLineDistAtPercentBox.Hide();
++            pActLineDistFld = &aLineDistAtMetricBox;
++            aLineDistAtMetricBox.SetMin(0);
++
++
++            if ( !aLineDistAtMetricBox.GetText().Len() )
++                aLineDistAtMetricBox.SetValue(
++                    aLineDistAtMetricBox.Normalize( 1 ) );
++            aLineDistAtPercentBox.Hide();
++            pActLineDistFld->Show();
++            pActLineDistFld->Enable();
++            aLineDistAtLabel.Enable();
++            break;
++
++        case LLINESPACE_MIN:
++            aLineDistAtPercentBox.Hide();
++            pActLineDistFld = &aLineDistAtMetricBox;
++            aLineDistAtMetricBox.SetMin(0);
++
++            if ( !aLineDistAtMetricBox.GetText().Len() )
++                aLineDistAtMetricBox.SetValue(
++                    aLineDistAtMetricBox.Normalize( 10 ), FUNIT_TWIP );
++            aLineDistAtPercentBox.Hide();
++            pActLineDistFld->Show();
++            pActLineDistFld->Enable();
++            aLineDistAtLabel.Enable();
++            break;
++
++        case LLINESPACE_PROP:
++            aLineDistAtMetricBox.Hide();
++            pActLineDistFld = &aLineDistAtPercentBox;
++
++            if ( !aLineDistAtPercentBox.GetText().Len() )
++                aLineDistAtPercentBox.SetValue(
++                    aLineDistAtPercentBox.Normalize( 100 ), FUNIT_TWIP );
++            aLineDistAtMetricBox.Hide();
++            pActLineDistFld->Show();
++            pActLineDistFld->Enable();
++            aLineDistAtLabel.Enable();
++            break;
++        case LLINESPACE_FIX:
++        {
++            aLineDistAtPercentBox.Hide();
++            pActLineDistFld = &aLineDistAtMetricBox;
++            sal_Int64 nTemp = aLineDistAtMetricBox.GetValue();
++            aLineDistAtMetricBox.SetMin(aLineDistAtMetricBox.Normalize(nMinFixDist), FUNIT_TWIP);
++
++            // wurde der Wert beim SetMin veraendert, dann ist es Zeit
++            // fuer den default
++            if ( aLineDistAtMetricBox.GetValue() != nTemp )
++                SetMetricValue( aLineDistAtMetricBox,
++                                    FIX_DIST_DEF, SFX_MAPUNIT_TWIP ); // fix gibt's nur im Writer
++            aLineDistAtPercentBox.Hide();
++            pActLineDistFld->Show();
++            pActLineDistFld->Enable();
++            aLineDistAtLabel.Enable();
++        }
++        break;
++    }
++    UpdateExample_Impl( TRUE );
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK_INLINE_START( SvxStdParagraphTabPage, ModifyHdl_Impl, SvxRelativeField *, EMPTYARG )
++{
++    UpdateExample_Impl();
++    return 0;
++}
++IMPL_LINK_INLINE_END( SvxStdParagraphTabPage, ModifyHdl_Impl, SvxRelativeField *, EMPTYARG )
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::Init_Impl()
++{
++    aLineDist.SetSelectHdl(
++        LINK( this, SvxStdParagraphTabPage, LineDistHdl_Impl ) );
++
++    Link aLink = LINK( this, SvxStdParagraphTabPage, ELRLoseFocusHdl );
++    aFLineIndent.SetLoseFocusHdl( aLink );
++    aLeftIndent.SetLoseFocusHdl( aLink );
++    aRightIndent.SetLoseFocusHdl( aLink );
++
++    aLink = LINK( this, SvxStdParagraphTabPage, ModifyHdl_Impl );
++    aFLineIndent.SetModifyHdl( aLink );
++    aLeftIndent.SetModifyHdl( aLink );
++    aRightIndent.SetModifyHdl( aLink );
++    aTopDist.SetModifyHdl( aLink );
++    aBottomDist.SetModifyHdl( aLink );
++
++    aAutoCB.SetClickHdl( LINK( this, SvxStdParagraphTabPage, AutoHdl_Impl ));
++    SfxItemPool* pPool = GetItemSet().GetPool();
++    DBG_ASSERT( pPool, "Wo ist der Pool" );
++    FieldUnit eUnit =
++        MapToFieldUnit( pPool->GetMetric( GetWhich( SID_ATTR_LRSPACE ) ) );
++
++    aTopDist.SetMax( aTopDist.Normalize( nAbst ), eUnit );
++    aBottomDist.SetMax( aBottomDist.Normalize( nAbst ), eUnit );
++    aLineDistAtMetricBox.SetMax(
++        aLineDistAtMetricBox.Normalize( nAbst ), eUnit );
++}
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::UpdateExample_Impl( BOOL bAll )
++{
++    aExampleWin.SetFirstLineOfst(
++        (short)aFLineIndent.Denormalize( aFLineIndent.GetValue( FUNIT_TWIP ) ) );
++    aExampleWin.SetLeftMargin(
++        static_cast<long>(aLeftIndent.Denormalize( aLeftIndent.GetValue( FUNIT_TWIP ) ) ) );
++    aExampleWin.SetRightMargin(
++        static_cast<long>(aRightIndent.Denormalize( aRightIndent.GetValue( FUNIT_TWIP ) ) ) );
++    aExampleWin.SetUpper(
++        (USHORT)aTopDist.Denormalize( aTopDist.GetValue( FUNIT_TWIP ) ) );
++    aExampleWin.SetLower(
++        (USHORT)aBottomDist.Denormalize( aBottomDist.GetValue( FUNIT_TWIP ) ) );
++
++
++
++    USHORT nPos = aLineDist.GetSelectEntryPos();
++
++    switch ( nPos )
++    {
++        case LLINESPACE_1:
++        case LLINESPACE_15:
++        case LLINESPACE_2:
++            aExampleWin.SetLineSpace( (SvxPrevLineSpace)nPos );
++            break;
++
++        case LLINESPACE_PROP:
++            aExampleWin.SetLineSpace( (SvxPrevLineSpace)nPos,
++                (USHORT)aLineDistAtPercentBox.Denormalize(
++                aLineDistAtPercentBox.GetValue() ) );
++            break;
++
++        case LLINESPACE_MIN:
++        case LLINESPACE_DURCH:
++        case LLINESPACE_FIX:
++            aExampleWin.SetLineSpace( (SvxPrevLineSpace)nPos,
++                (USHORT)GetCoreValue( aLineDistAtMetricBox, SFX_MAPUNIT_TWIP ) );
++            break;
++    }
++    aExampleWin.Draw( bAll );
++}
++
++// -----------------------------------------------------------------------
++
++void SvxStdParagraphTabPage::EnableRegisterMode()
++{
++    aRegisterCB.Show();
++    aRegisterFL.Show();
++}
++
++/*-----------------16.01.97 19.54-------------------
++
++--------------------------------------------------*/
++IMPL_LINK( SvxStdParagraphTabPage, AutoHdl_Impl, CheckBox*, pBox )
++{
++    BOOL bEnable = !pBox->IsChecked();
++    aFLineLabel .Enable(bEnable);
++    aFLineIndent.Enable(bEnable);
++    return 0;
++}
++
++/*-----------------16.01.97 18.00-------------------
++
++--------------------------------------------------*/
++void SvxStdParagraphTabPage::SetPageWidth( USHORT nPageWidth )
++{
++    nWidth = nPageWidth;
++}
++/*-----------------16.01.97 18.01-------------------
++
++--------------------------------------------------*/
++void SvxStdParagraphTabPage::SetMaxDistance( USHORT nMaxDist )
++{
++    nAbst = nMaxDist;
++}
++
++/*-----------------17.01.97 08.11-------------------
++
++--------------------------------------------------*/
++void SvxStdParagraphTabPage::EnableAutoFirstLine()
++{
++    aAutoCB.Show();
++}
++
++/*-----------------11.06.97 11.48-------------------
++    absoluter Zeilenabstand
++--------------------------------------------------*/
++void    SvxStdParagraphTabPage::EnableAbsLineDist(long nMinTwip)
++{
++    aLineDist.InsertEntry(sAbsDist);
++    nMinFixDist = nMinTwip;
++}
++
++//addd CHINA001 begin
++void    SvxStdParagraphTabPage::PageCreated(SfxAllItemSet aSet)
++{
++
++/* CHINA001 different bit represent call to different method of SvxStdParagraphTabPage
++                        0x0001 --->EnableRelativeMode()
++                        0x0002 --->EnableRegisterMode()
++                        0x0004 --->EnableAutoFirstLine()
++                        0x0008 --->EnableNegativeMode()
++
++
++            */
++    SFX_ITEMSET_ARG    (&aSet,pPageWidthItem,SfxUInt16Item,SID_SVXSTDPARAGRAPHTABPAGE_PAGEWIDTH,sal_False);
++    SFX_ITEMSET_ARG    (&aSet,pFlagSetItem,SfxUInt32Item,SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET,sal_False);
++    SFX_ITEMSET_ARG    (&aSet,pLineDistItem,SfxUInt32Item,SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST,sal_False);
++
++    if (pPageWidthItem)
++        SetPageWidth(pPageWidthItem->GetValue());
++
++    if (pFlagSetItem )
++        if (( 0x0001 & pFlagSetItem->GetValue())== 0x0001 )
++            EnableRelativeMode();
++
++    if (pFlagSetItem)
++        if (( 0x0002 & pFlagSetItem->GetValue())== 0x0002 )
++                EnableRegisterMode();
++
++    if (pFlagSetItem)
++        if ( ( 0x0004 & pFlagSetItem->GetValue())== 0x0004 )
++            EnableAutoFirstLine();
++
++    if(pLineDistItem)
++        EnableAbsLineDist(pLineDistItem->GetValue());
++
++    if (pFlagSetItem)
++        if    (( 0x0008 & pFlagSetItem->GetValue()) == 0x0008 )
++                EnableNegativeMode();
++
++}
++//end of CHINA001
++
++#define LASTLINEPOS_DEFAULT        0
++#define LASTLINEPOS_LEFT        1
++
++#define LASTLINECOUNT_OLD        3
++#define LASTLINECOUNT_NEW        4
++
++// class SvxParaAlignTabPage ------------------------------------------------
++
++/*-----------------16.01.97 19.34-------------------
++
++--------------------------------------------------*/
++SvxParaAlignTabPage::SvxParaAlignTabPage( Window* pParent, const SfxItemSet& rSet )
++    : SfxTabPage(pParent, SVX_RES( RID_SVXPAGE_ALIGN_PARAGRAPH ),rSet),
++    aAlignFrm           ( this, SVX_RES( FL_ALIGN ) ),
++    aLeft               ( this, SVX_RES( BTN_LEFTALIGN ) ),
++    aRight                ( this, SVX_RES( BTN_RIGHTALIGN ) ),
++    aCenter                ( this, SVX_RES( BTN_CENTERALIGN ) ),
++    aJustify            ( this, SVX_RES( BTN_JUSTIFYALIGN ) ),
++    aLastLineFT         ( this, SVX_RES( FT_LASTLINE ) ),
++    aLastLineLB            ( this, SVX_RES( LB_LASTLINE ) ),
++    aExpandCB            ( this, SVX_RES( CB_EXPAND ) ),
++    aSnapToGridCB        ( this, SVX_RES( CB_SNAP ) ),
++    aExampleWin            ( this, SVX_RES( WN_EXAMPLE ) ),
++
++    aVertAlignFL        ( this, SVX_RES( FL_VERTALIGN ) ),
++    aVertAlignFT        ( this, SVX_RES( FT_VERTALIGN ) ),
++    aVertAlignLB        ( this, SVX_RES( LB_VERTALIGN ) ),
++
++    aPropertiesFL        ( this, SVX_RES( FL_PROPERTIES    )),
++    aTextDirectionFT    ( this, SVX_RES( FT_TEXTDIRECTION )),
++    aTextDirectionLB    ( this, SVX_RES( LB_TEXTDIRECTION ))
++{
++    SvtLanguageOptions aLangOptions;
++    USHORT nLastLinePos = LASTLINEPOS_DEFAULT;
++
++    if ( aLangOptions.IsAsianTypographyEnabled() )
++    {
++        String sLeft(SVX_RES(ST_LEFTALIGN_ASIAN));
++        aLeft.SetText(sLeft);
++        aRight.SetText(String(SVX_RES(ST_RIGHTALIGN_ASIAN)));
++        sLeft = MnemonicGenerator::EraseAllMnemonicChars( sLeft );
++
++        if ( aLastLineLB.GetEntryCount() == LASTLINECOUNT_OLD )
++        {
++            aLastLineLB.RemoveEntry( 0 );
++            aLastLineLB.InsertEntry( sLeft, 0 );
++        }
++        else
++            nLastLinePos = LASTLINEPOS_LEFT;
++    }
++    // remove "Default" or "Left" entry, depends on CJKOptions
++    if ( aLastLineLB.GetEntryCount() == LASTLINECOUNT_NEW )
++        aLastLineLB.RemoveEntry( nLastLinePos );
++
++    FreeResource();
++    Link aLink = LINK( this, SvxParaAlignTabPage, AlignHdl_Impl );
++    aLeft.SetClickHdl( aLink );
++    aRight.SetClickHdl( aLink );
++    aCenter.SetClickHdl( aLink );
++    aJustify.SetClickHdl( aLink );
++    aLastLineLB.SetSelectHdl( LINK( this, SvxParaAlignTabPage, LastLineHdl_Impl ) );
++    aTextDirectionLB.SetSelectHdl( LINK( this, SvxParaAlignTabPage, TextDirectionHdl_Impl ) );
++
++    USHORT nHtmlMode = GetHtmlMode_Impl(rSet);
++    if(!(nHtmlMode & HTMLMODE_ON) || (0 != (nHtmlMode & HTMLMODE_SOME_STYLES)) )
++    {
++        if( aLangOptions.IsCTLFontEnabled() )
++        {
++            aTextDirectionLB.InsertEntryValue( SVX_RESSTR( RID_SVXSTR_FRAMEDIR_LTR ), FRMDIR_HORI_LEFT_TOP );
++            aTextDirectionLB.InsertEntryValue( SVX_RESSTR( RID_SVXSTR_FRAMEDIR_RTL ), FRMDIR_HORI_RIGHT_TOP );
++            aTextDirectionLB.InsertEntryValue( SVX_RESSTR( RID_SVXSTR_FRAMEDIR_SUPER ), FRMDIR_ENVIRONMENT );
++
++            aPropertiesFL.Show();
++            aTextDirectionFT.Show();
++            aTextDirectionLB.Show();
++        }
++    }
++}
++
++/*-----------------16.01.97 19.33-------------------
++
++--------------------------------------------------*/
++SvxParaAlignTabPage::~SvxParaAlignTabPage()
++{
++}
++
++/*-----------------16.01.97 19.33-------------------
++
++--------------------------------------------------*/
++int SvxParaAlignTabPage::DeactivatePage( SfxItemSet* _pSet )
++{
++    if ( _pSet )
++        FillItemSet( *_pSet );
++    return LEAVE_PAGE;
++}
++
++/*-----------------16.01.97 19.33-------------------
++
++--------------------------------------------------*/
++SfxTabPage*    SvxParaAlignTabPage::Create( Window* pParent, const SfxItemSet& rSet )
++{
++    return new SvxParaAlignTabPage(pParent, rSet);
++}
++
++/*-----------------16.01.97 19.33-------------------
++
++--------------------------------------------------*/
++USHORT*    SvxParaAlignTabPage::GetRanges()
++{
++    return pAlignRanges;
++
++}
++
++/*-----------------16.01.97 19.33-------------------
++
++--------------------------------------------------*/
++BOOL SvxParaAlignTabPage::FillItemSet( SfxItemSet& rOutSet )
++{
++    BOOL bModified = FALSE;
++
++    FASTBOOL bAdj = FALSE, bChecked = FALSE;
++    SvxAdjust eAdjust = SVX_ADJUST_LEFT;
++
++    if ( aLeft.IsChecked() )
++    {
++        eAdjust = SVX_ADJUST_LEFT;
++        bAdj = !aLeft.GetSavedValue();
++        bChecked = TRUE;
++    }
++    else if ( aRight.IsChecked() )
++    {
++        eAdjust = SVX_ADJUST_RIGHT;
++        bAdj = !aRight.GetSavedValue();
++        bChecked = TRUE;
++    }
++    else if ( aCenter.IsChecked() )
++    {
++        eAdjust = SVX_ADJUST_CENTER;
++        bAdj = !aCenter.GetSavedValue();
++        bChecked = TRUE;
++    }
++    else if ( aJustify.IsChecked() )
++    {
++        eAdjust = SVX_ADJUST_BLOCK;
++        bAdj = !aJustify.GetSavedValue() ||
++            aExpandCB.IsChecked() != aExpandCB.GetSavedValue() ||
++            aLastLineLB.GetSelectEntryPos() != aLastLineLB.GetSavedValue();
++        bChecked = TRUE;
++    }
++    USHORT _nWhich = GetWhich( SID_ATTR_PARA_ADJUST );
++
++    if ( bAdj )
++    {
++        const SvxAdjustItem* pOld =
++            (const SvxAdjustItem*)GetOldItem( rOutSet, SID_ATTR_PARA_ADJUST );
++        SvxAdjust eOneWord = aExpandCB.IsChecked() ? SVX_ADJUST_BLOCK
++                                                   : SVX_ADJUST_LEFT;
++        USHORT nLBPos = aLastLineLB.GetSelectEntryPos();
++        SvxAdjust eLastBlock = SVX_ADJUST_LEFT;
++
++        if ( 1 == nLBPos )
++            eLastBlock = SVX_ADJUST_CENTER;
++        else if ( 2 == nLBPos )
++            eLastBlock = SVX_ADJUST_BLOCK;
++
++        FASTBOOL bNothingWasChecked =
++            !aLeft.GetSavedValue() && !aRight.GetSavedValue() &&
++            !aCenter.GetSavedValue() && !aJustify.GetSavedValue();
++
++        if ( !pOld || pOld->GetAdjust() != eAdjust ||
++             pOld->GetOneWord() != eOneWord ||
++             pOld->GetLastBlock() != eLastBlock ||
++             ( bChecked && bNothingWasChecked ) )
++        {
++            bModified |= TRUE;
++            SvxAdjustItem aAdj(
++                (const SvxAdjustItem&)GetItemSet().Get( _nWhich ) );
++            aAdj.SetAdjust( eAdjust );
++            aAdj.SetOneWord( eOneWord );
++            aAdj.SetLastBlock( eLastBlock );
++            rOutSet.Put( aAdj );
++        }
++    }
++    if(aSnapToGridCB.IsChecked() != aSnapToGridCB.GetSavedValue())
++    {
++        rOutSet.Put(SvxParaGridItem(aSnapToGridCB.IsChecked(), GetWhich( SID_ATTR_PARA_SNAPTOGRID )));
++        bModified = TRUE;
++    }
++    if(aVertAlignLB.GetSavedValue() != aVertAlignLB.GetSelectEntryPos())
++    {
++        rOutSet.Put(SvxParaVertAlignItem(aVertAlignLB.GetSelectEntryPos(), GetWhich( SID_PARA_VERTALIGN )));
++        bModified = TRUE;
++    }
++
++    if( aTextDirectionLB.IsVisible() )
++    {
++        SvxFrameDirection eDir = aTextDirectionLB.GetSelectEntryValue();
++        if( eDir != aTextDirectionLB.GetSavedValue() )
++        {
++            rOutSet.Put( SvxFrameDirectionItem( eDir, GetWhich( SID_ATTR_FRAMEDIRECTION ) ) );
++            bModified = TRUE;
++        }
++    }
++
++    return bModified;
++}
++
++/*-----------------16.01.97 19.33-------------------
++
++--------------------------------------------------*/
++void SvxParaAlignTabPage::Reset( const SfxItemSet& rSet )
++{
++    USHORT _nWhich = GetWhich( SID_ATTR_PARA_ADJUST );
++    SfxItemState eItemState = rSet.GetItemState( _nWhich );
++
++    USHORT nLBSelect = 0;
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        const SvxAdjustItem& rAdj = (const SvxAdjustItem&)rSet.Get( _nWhich );
++
++        switch ( rAdj.GetAdjust() /*!!! VB fragen rAdj.GetLastBlock()*/ )
++        {
++            case SVX_ADJUST_LEFT: aLeft.Check(); break;
++
++            case SVX_ADJUST_RIGHT: aRight.Check(); break;
++
++            case SVX_ADJUST_CENTER: aCenter.Check(); break;
++
++            case SVX_ADJUST_BLOCK: aJustify.Check(); break;
++            default: ; //prevent warning
++        }
++        BOOL bEnable = aJustify.IsChecked();
++        aLastLineFT.Enable(bEnable);
++        aLastLineLB.Enable(bEnable);
++        aExpandCB  .Enable(bEnable);
++
++        aExpandCB.Check(SVX_ADJUST_BLOCK == rAdj.GetOneWord());
++        switch(rAdj.GetLastBlock())
++        {
++            case SVX_ADJUST_LEFT:  nLBSelect = 0; break;
++
++            case SVX_ADJUST_CENTER: nLBSelect = 1;  break;
++
++            case SVX_ADJUST_BLOCK: nLBSelect = 2;  break;
++            default: ; //prevent warning
++        }
++    }
++    else
++    {
++        aLeft.Check( FALSE );
++        aRight.Check( FALSE );
++        aCenter.Check( FALSE );
++        aJustify.Check( FALSE );
++    }
++    aLastLineLB.SelectEntryPos(nLBSelect);
++
++    USHORT nHtmlMode = GetHtmlMode_Impl(rSet);
++    if(nHtmlMode & HTMLMODE_ON)
++    {
++        aLastLineLB.Hide();
++        aLastLineFT.Hide();
++        aExpandCB.Hide();
++        if(!(nHtmlMode & HTMLMODE_FULL_STYLES|HTMLMODE_FIRSTLINE) )
++            aJustify.Disable();
++        aSnapToGridCB.Show(FALSE);
++    }
++    _nWhich = GetWhich(SID_ATTR_PARA_SNAPTOGRID);
++    eItemState = rSet.GetItemState( _nWhich );
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        const SvxParaGridItem& rSnap = (const SvxParaGridItem&)rSet.Get( _nWhich );
++        aSnapToGridCB.Check(rSnap.GetValue());
++    }
++
++    _nWhich = GetWhich( SID_PARA_VERTALIGN );
++    eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        aVertAlignLB.Show();
++        aVertAlignFL.Show();
++        aVertAlignFT.Show();
++
++        const SvxParaVertAlignItem& rAlign = (const SvxParaVertAlignItem&)rSet.Get( _nWhich );
++        aVertAlignLB.SelectEntryPos(rAlign.GetValue());
++    }
++
++    _nWhich = GetWhich( SID_ATTR_FRAMEDIRECTION );
++    //text direction
++    if( SFX_ITEM_AVAILABLE <= rSet.GetItemState( _nWhich ) )
++    {
++        const SvxFrameDirectionItem& rFrameDirItem = ( const SvxFrameDirectionItem& ) rSet.Get( _nWhich );
++        aTextDirectionLB.SelectEntryValue( (SvxFrameDirection)rFrameDirItem.GetValue() );
++        aTextDirectionLB.SaveValue();
++    }
++
++    aSnapToGridCB.SaveValue();
++    aVertAlignLB.SaveValue();
++    aLeft.SaveValue();
++    aRight.SaveValue();
++    aCenter.SaveValue();
++    aJustify.SaveValue();
++    aLastLineLB.SaveValue();
++    aExpandCB.SaveValue();
++
++    UpdateExample_Impl(TRUE);
++}
++
++/*-----------------17.01.97 08.06-------------------
++
++--------------------------------------------------*/
++IMPL_LINK( SvxParaAlignTabPage, AlignHdl_Impl, RadioButton*, EMPTYARG )
++{
++    BOOL bJustify = aJustify.IsChecked();
++    aLastLineFT.Enable(bJustify);
++    aLastLineLB.Enable(bJustify);
++    aExpandCB.Enable(bJustify);
++    UpdateExample_Impl(FALSE);
++    return 0;
++}
++
++IMPL_LINK( SvxParaAlignTabPage, LastLineHdl_Impl, ListBox*, EMPTYARG )
++{
++    UpdateExample_Impl(FALSE);
++    return 0;
++}
++
++IMPL_LINK( SvxParaAlignTabPage, TextDirectionHdl_Impl, ListBox*, EMPTYARG )
++{
++    SvxFrameDirection eDir = aTextDirectionLB.GetSelectEntryValue();
++    switch ( eDir )
++    {
++        // check the default alignment for this text direction
++        case FRMDIR_HORI_LEFT_TOP :        aLeft.Check( TRUE ); break;
++        case FRMDIR_HORI_RIGHT_TOP :    aRight.Check( TRUE ); break;
++        case FRMDIR_ENVIRONMENT :        /* do nothing */ break;
++        default:
++        {
++            DBG_ERRORFILE( "SvxParaAlignTabPage::TextDirectionHdl_Impl(): other directions not supported" );
++        }
++    }
++
++    return 0;
++}
++
++/*-----------------16.01.97 19.34-------------------
++
++--------------------------------------------------*/
++void    SvxParaAlignTabPage::UpdateExample_Impl( BOOL bAll )
++{
++    if ( aLeft.IsChecked() )
++        aExampleWin.SetAdjust( SVX_ADJUST_LEFT );
++    else if ( aRight.IsChecked() )
++        aExampleWin.SetAdjust( SVX_ADJUST_RIGHT );
++    else if ( aCenter.IsChecked() )
++        aExampleWin.SetAdjust( SVX_ADJUST_CENTER );
++    else if ( aJustify.IsChecked() )
++    {
++        aExampleWin.SetAdjust( SVX_ADJUST_BLOCK );
++        SvxAdjust eLastBlock = SVX_ADJUST_LEFT;
++        USHORT nLBPos = aLastLineLB.GetSelectEntryPos();
++        if(nLBPos == 1)
++            eLastBlock = SVX_ADJUST_CENTER;
++        else if(nLBPos == 2)
++            eLastBlock = SVX_ADJUST_BLOCK;
++        aExampleWin.SetLastLine( eLastBlock );
++    }
++
++    aExampleWin.Draw( bAll );
++}
++/*-----------------17.01.97 08.04-------------------
++    Erweiterungen fuer den Blocksatz einschalten
++--------------------------------------------------*/
++void SvxParaAlignTabPage::EnableJustifyExt()
++{
++    aLastLineFT.Show();
++    aLastLineLB.Show();
++    aExpandCB  .Show();
++    SvtLanguageOptions aCJKOptions;
++    if(aCJKOptions.IsAsianTypographyEnabled())
++        aSnapToGridCB.Show();
++
++}
++//add CHINA001 begin
++void SvxParaAlignTabPage::PageCreated (SfxAllItemSet aSet)
++{
++    SFX_ITEMSET_ARG    (&aSet,pBoolItem,SfxBoolItem,SID_SVXPARAALIGNTABPAGE_ENABLEJUSTIFYEXT,sal_False);
++    if (pBoolItem)
++        if(pBoolItem->GetValue())
++            EnableJustifyExt();
++}
++//end of CHINA001
++// class SvxExtParagraphTabPage ------------------------------------------
++
++SfxTabPage* SvxExtParagraphTabPage::Create( Window* pParent,
++                                            const SfxItemSet& rSet )
++{
++    return new SvxExtParagraphTabPage( pParent, rSet );
++}
++
++// -----------------------------------------------------------------------
++
++BOOL SvxExtParagraphTabPage::FillItemSet( SfxItemSet& rOutSet )
++{
++    BOOL bModified = FALSE;
++    USHORT _nWhich = GetWhich( SID_ATTR_PARA_HYPHENZONE );
++    const TriState eHyphenState = aHyphenBox.GetState();
++    const SfxPoolItem* pOld = GetOldItem( rOutSet, SID_ATTR_PARA_HYPHENZONE );
++
++    if ( eHyphenState != aHyphenBox.GetSavedValue()     ||
++         aExtHyphenBeforeBox.IsValueModified()                ||
++         aExtHyphenAfterBox.IsValueModified()            ||
++         aMaxHyphenEdit.IsValueModified() )
++    {
++        SvxHyphenZoneItem aHyphen(
++            (const SvxHyphenZoneItem&)GetItemSet().Get( _nWhich ) );
++        aHyphen.SetHyphen( eHyphenState == STATE_CHECK );
++
++        if ( eHyphenState == STATE_CHECK )
++        {
++            aHyphen.GetMinLead() = (BYTE)aExtHyphenBeforeBox.GetValue();
++            aHyphen.GetMinTrail() = (BYTE)aExtHyphenAfterBox.GetValue();
++        }
++        aHyphen.GetMaxHyphens() = (BYTE)aMaxHyphenEdit.GetValue();
++
++        if ( !pOld ||
++            !( *(SvxHyphenZoneItem*)pOld == aHyphen ) ||
++                eHyphenState != aHyphenBox.GetSavedValue())
++        {
++            rOutSet.Put( aHyphen );
++            bModified |= TRUE;
++        }
++    }
++
++    if (aPagenumEdit.IsEnabled() && aPagenumEdit.IsValueModified())
++    {
++        SfxUInt16Item aPageNum( SID_ATTR_PARA_PAGENUM,
++                                (USHORT)aPagenumEdit.GetValue() );
++
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_PAGENUM );
++
++        if ( !pOld || ( (const SfxUInt16Item*)pOld )->GetValue() != aPageNum.GetValue() )
++        {
++            rOutSet.Put( aPageNum );
++            bModified |= TRUE;
++        }
++    }
++
++    // Seitenumbruch
++
++    TriState eState = aApplyCollBtn.GetState();
++    FASTBOOL bIsPageModel = FALSE;
++
++    _nWhich = GetWhich( SID_ATTR_PARA_MODEL );
++    String sPage;
++    if ( eState != aApplyCollBtn.GetSavedValue() ||
++         ( STATE_CHECK == eState &&
++           aApplyCollBox.GetSelectEntryPos() != aApplyCollBox.GetSavedValue() ) )
++    {
++        if ( eState == STATE_CHECK )
++        {
++            sPage = aApplyCollBox.GetSelectEntry();
++            bIsPageModel = 0 != sPage.Len();
++        }
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_MODEL );
++
++        if ( !pOld || ( (const SvxPageModelItem*)pOld )->GetValue() != sPage )
++        {
++            rOutSet.Put( SvxPageModelItem( sPage, FALSE, _nWhich ) );
++            bModified |= TRUE;
++        }
++        else
++            bIsPageModel = FALSE;
++    }
++    else if(STATE_CHECK == eState && aApplyCollBtn.IsEnabled())
++        bIsPageModel = TRUE;
++    else
++        rOutSet.Put( SvxPageModelItem( sPage, FALSE, _nWhich ) );
++
++    _nWhich = GetWhich( SID_ATTR_PARA_PAGEBREAK );
++
++    if ( bIsPageModel )
++        // wird PageModel eingeschaltet, dann immer PageBreak ausschalten
++        rOutSet.Put( SvxFmtBreakItem( SVX_BREAK_NONE, _nWhich ) );
++    else
++    {
++        eState = aPageBreakBox.GetState();
++        SfxItemState eModelState = GetItemSet().GetItemState(SID_ATTR_PARA_MODEL, FALSE);
++
++        if ( (eModelState == SFX_ITEM_SET && STATE_CHECK == aPageBreakBox.GetState()) ||
++             eState != aPageBreakBox.GetSavedValue()                ||
++             aBreakTypeLB.GetSelectEntryPos() != aBreakTypeLB.GetSavedValue()   ||
++             aBreakPositionLB.GetSelectEntryPos() != aBreakPositionLB.GetSavedValue() )
++        {
++            const SvxFmtBreakItem rOldBreak(
++                    (const SvxFmtBreakItem&)GetItemSet().Get( _nWhich ));
++            SvxFmtBreakItem aBreak(rOldBreak.GetBreak(), rOldBreak.Which());
++
++            switch ( eState )
++            {
++                case STATE_CHECK:
++                {
++                    BOOL bBefore = aBreakPositionLB.GetSelectEntryPos() == 0;
++
++                    if ( aBreakTypeLB.GetSelectEntryPos() == 0 )
++                    {
++                        if ( bBefore )
++                            aBreak.SetValue( SVX_BREAK_PAGE_BEFORE );
++                        else
++                            aBreak.SetValue( SVX_BREAK_PAGE_AFTER );
++                    }
++                    else
++                    {
++                        if ( bBefore )
++                            aBreak.SetValue( SVX_BREAK_COLUMN_BEFORE );
++                        else
++                            aBreak.SetValue( SVX_BREAK_COLUMN_AFTER );
++                    }
++                    break;
++                }
++
++                case STATE_NOCHECK:
++                    aBreak.SetValue( SVX_BREAK_NONE );
++                    break;
++                default: ; //prevent warning
++            }
++            pOld = GetOldItem( rOutSet, SID_ATTR_PARA_PAGEBREAK );
++
++            if ( eState != aPageBreakBox.GetSavedValue()                ||
++                    !pOld || !( *(const SvxFmtBreakItem*)pOld == aBreak ) )
++            {
++                bModified |= TRUE;
++                rOutSet.Put( aBreak );
++            }
++        }
++    }
++
++
++    // Absatztrennung
++    _nWhich = GetWhich( SID_ATTR_PARA_SPLIT );
++    eState = aKeepTogetherBox.GetState();
++
++    if ( eState != aKeepTogetherBox.GetSavedValue() )
++    {
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_SPLIT );
++
++        if ( !pOld || ( (const SvxFmtSplitItem*)pOld )->GetValue() !=
++                      ( eState == STATE_NOCHECK ) )
++        {
++            rOutSet.Put( SvxFmtSplitItem( eState == STATE_NOCHECK, _nWhich ) );
++            bModified |= TRUE;
++        }
++    }
++
++    // Absaetze zusammenhalten
++    _nWhich = GetWhich( SID_ATTR_PARA_KEEP );
++    eState = aKeepParaBox.GetState();
++
++    if ( eState != aKeepParaBox.GetSavedValue() )
++    {
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_KEEP );
++
++        // hat sich der Status geaendert, muss immer geputtet werden
++        rOutSet.Put( SvxFmtKeepItem( eState == STATE_CHECK, _nWhich ) );
++        bModified |= TRUE;
++    }
++
++    // Witwen und Waisen
++    _nWhich = GetWhich( SID_ATTR_PARA_WIDOWS );
++    eState = aWidowBox.GetState();
++
++    if ( eState != aWidowBox.GetSavedValue() ||
++         aWidowRowNo.IsValueModified() )
++    {
++        SvxWidowsItem rItem( eState == STATE_CHECK ?
++                             (BYTE)aWidowRowNo.GetValue() : 0, _nWhich );
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_WIDOWS );
++
++        if ( eState != aWidowBox.GetSavedValue() || !pOld || !( *(const SvxWidowsItem*)pOld == rItem ) )
++        {
++            rOutSet.Put( rItem );
++            bModified |= TRUE;
++        }
++    }
++
++    _nWhich = GetWhich( SID_ATTR_PARA_ORPHANS );
++    eState = aOrphanBox.GetState();
++
++    if ( eState != aOrphanBox.GetSavedValue() ||
++         aOrphanRowNo.IsValueModified() )
++    {
++        SvxOrphansItem rItem( eState == STATE_CHECK ?
++                             (BYTE)aOrphanRowNo.GetValue() : 0, _nWhich );
++        pOld = GetOldItem( rOutSet, SID_ATTR_PARA_ORPHANS );
++
++        if ( eState != aOrphanBox.GetSavedValue() ||
++                !pOld ||
++                    !( *(const SvxOrphansItem*)pOld == rItem ) )
++        {
++            rOutSet.Put( rItem );
++            bModified |= TRUE;
++        }
++    }
++
++    return bModified;
++}
++
++// -----------------------------------------------------------------------
++
++void SvxExtParagraphTabPage::Reset( const SfxItemSet& rSet )
++{
++    USHORT _nWhich = GetWhich( SID_ATTR_PARA_HYPHENZONE );
++    SfxItemState eItemState = rSet.GetItemState( _nWhich );
++
++    BOOL bItemAvailable = eItemState >= SFX_ITEM_AVAILABLE;
++    BOOL bIsHyphen = FALSE;
++    if( !bHtmlMode && bItemAvailable )
++    {
++        const SvxHyphenZoneItem& rHyphen =
++            (const SvxHyphenZoneItem&)rSet.Get( _nWhich );
++        aHyphenBox.EnableTriState( FALSE );
++
++        bIsHyphen = rHyphen.IsHyphen();
++        aHyphenBox.SetState( bIsHyphen ? STATE_CHECK : STATE_NOCHECK );
++
++        aExtHyphenBeforeBox.SetValue( rHyphen.GetMinLead() );
++        aExtHyphenAfterBox.SetValue( rHyphen.GetMinTrail() );
++        aMaxHyphenEdit.SetValue( rHyphen.GetMaxHyphens() );
++    }
++    else
++    {
++        aHyphenBox.SetState( STATE_DONTKNOW );
++    }
++    BOOL bEnable = bItemAvailable && bIsHyphen;
++    aExtHyphenBeforeBox.Enable(bEnable);
++    aExtHyphenAfterBox.Enable(bEnable);
++    aBeforeText.Enable(bEnable);
++    aAfterText.Enable(bEnable);
++    aMaxHyphenLabel.Enable(bEnable);
++    aMaxHyphenEdit.Enable(bEnable);
++
++    _nWhich = GetWhich( SID_ATTR_PARA_PAGENUM );
++
++    if ( rSet.GetItemState(_nWhich) >= SFX_ITEM_AVAILABLE )
++    {
++        const USHORT nPageNum =
++            ( (const SfxUInt16Item&)rSet.Get( _nWhich ) ).GetValue();
++        aPagenumEdit.SetValue( nPageNum );
++    }
++
++    if ( bPageBreak )
++    {
++        // zuerst PageModel behandeln
++        _nWhich = GetWhich( SID_ATTR_PARA_MODEL );
++        BOOL bIsPageModel = FALSE;
++        eItemState = rSet.GetItemState( _nWhich );
++
++        if ( eItemState >= SFX_ITEM_SET )
++        {
++            aApplyCollBtn.EnableTriState( FALSE );
++
++            const SvxPageModelItem& rModel =
++                (const SvxPageModelItem&)rSet.Get( _nWhich );
++            String aStr( rModel.GetValue() );
++
++            if ( aStr.Len() &&
++                 aApplyCollBox.GetEntryPos( aStr ) != LISTBOX_ENTRY_NOTFOUND )
++            {
++                aApplyCollBox.SelectEntry( aStr );
++                aApplyCollBtn.SetState( STATE_CHECK );
++                bIsPageModel = TRUE;
++
++                aPageBreakBox.Enable();
++                aPageBreakBox.EnableTriState( FALSE );
++                aBreakTypeFT.Enable();
++                aBreakTypeLB.Enable();
++                aBreakPositionFT.Enable();
++                aBreakPositionLB.Enable();
++                aApplyCollBtn.Enable();
++                aPageBreakBox.SetState( STATE_CHECK );
++
++                //select page break
++                aBreakTypeLB.SelectEntryPos(0);
++                //select break before
++                aBreakPositionLB.SelectEntryPos(0);
++            }
++            else
++            {
++                aApplyCollBox.SetNoSelection();
++                aApplyCollBtn.SetState( STATE_NOCHECK );
++            }
++        }
++        else if ( SFX_ITEM_DONTCARE == eItemState )
++        {
++            aApplyCollBtn.EnableTriState( TRUE );
++            aApplyCollBtn.SetState( STATE_DONTKNOW );
++            aApplyCollBox.SetNoSelection();
++        }
++        else
++        {
++            aApplyCollBtn.Enable(FALSE);
++            aApplyCollBox.Enable(FALSE);
++            aPagenumEdit.Enable(FALSE);
++            aPagenumText.Enable(FALSE);
++        }
++//!!!    ApplyCollClickHdl_Impl( &aApplyCollBtn );
++
++        if ( !bIsPageModel )
++        {
++            _nWhich = GetWhich( SID_ATTR_PARA_PAGEBREAK );
++            eItemState = rSet.GetItemState( _nWhich );
++
++            if ( eItemState >= SFX_ITEM_AVAILABLE )
++            {
++                const SvxFmtBreakItem& rPageBreak =
++                    (const SvxFmtBreakItem&)rSet.Get( _nWhich );
++
++                SvxBreak eBreak = (SvxBreak)rPageBreak.GetValue();
++
++                // PageBreak nicht ueber CTRL-RETURN,
++                // dann kann CheckBox frei gegeben werden
++                aPageBreakBox.Enable();
++                aPageBreakBox.EnableTriState( FALSE );
++                aBreakTypeFT.Enable();
++                aBreakTypeLB.Enable();
++                aBreakPositionFT.Enable();
++                aBreakPositionLB.Enable();
++
++                aPageBreakBox.SetState( STATE_CHECK );
++
++                BOOL _bEnable =     eBreak != SVX_BREAK_NONE &&
++                                eBreak != SVX_BREAK_COLUMN_BEFORE &&
++                                eBreak != SVX_BREAK_COLUMN_AFTER;
++                aApplyCollBtn.Enable(_bEnable);
++                if(!_bEnable)
++                {
++                    aApplyCollBox.Enable(_bEnable);
++                    aPagenumEdit.Enable(_bEnable);
++                }
++
++                if ( eBreak == SVX_BREAK_NONE )
++                    aPageBreakBox.SetState( STATE_NOCHECK );
++
++                USHORT nType = 0; // selection position in break type ListBox : Page
++                USHORT nPosition = 0; //  selection position in break position ListBox : Before
++                switch ( eBreak )
++                {
++                    case SVX_BREAK_PAGE_BEFORE:
++                        break;
++                    case SVX_BREAK_PAGE_AFTER:
++                        nPosition = 1;
++                        break;
++                    case SVX_BREAK_COLUMN_BEFORE:
++                        nType = 1;
++                        break;
++                    case SVX_BREAK_COLUMN_AFTER:
++                        nType = 1;
++                        nPosition = 1;
++                        break;
++                    default: ;//prevent warning
++                }
++                aBreakTypeLB.SelectEntryPos(nType);
++                aBreakPositionLB.SelectEntryPos(nPosition);
++            }
++            else if ( SFX_ITEM_DONTCARE == eItemState )
++                aPageBreakBox.SetState( STATE_DONTKNOW );
++            else
++            {
++                aPageBreakBox.Enable(FALSE);
++                aBreakTypeFT.Enable(FALSE);
++                aBreakTypeLB.Enable(FALSE);
++                aBreakPositionFT.Enable(FALSE);
++                aBreakPositionLB.Enable(FALSE);
++            }
++        }
++
++        PageBreakPosHdl_Impl( &aBreakPositionLB );
++        PageBreakHdl_Impl( &aPageBreakBox );
++    }
++
++    _nWhich = GetWhich( SID_ATTR_PARA_KEEP );
++    eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        aKeepParaBox.EnableTriState( FALSE );
++        const SvxFmtKeepItem& rKeep =
++            (const SvxFmtKeepItem&)rSet.Get( _nWhich );
++
++        if ( rKeep.GetValue() )
++            aKeepParaBox.SetState( STATE_CHECK );
++        else
++            aKeepParaBox.SetState( STATE_NOCHECK );
++    }
++    else if ( SFX_ITEM_DONTCARE == eItemState )
++        aKeepParaBox.SetState( STATE_DONTKNOW );
++    else
++        aKeepParaBox.Enable(FALSE);
++
++    _nWhich = GetWhich( SID_ATTR_PARA_SPLIT );
++    eItemState = rSet.GetItemState( _nWhich );
++
++    if ( eItemState >= SFX_ITEM_AVAILABLE )
++    {
++        const SvxFmtSplitItem& rSplit =
++            (const SvxFmtSplitItem&)rSet.Get( _nWhich );
++        aKeepTogetherBox.EnableTriState( FALSE );
++
++        if ( !rSplit.GetValue() )
++            aKeepTogetherBox.SetState( STATE_CHECK );
++        else
++        {
++            aKeepTogetherBox.SetState( STATE_NOCHECK );
++
++            // Witwen und Waisen
++            aWidowBox.Enable();
++            _nWhich = GetWhich( SID_ATTR_PARA_WIDOWS );
++            SfxItemState eTmpState = rSet.GetItemState( _nWhich );
++
++            if ( eTmpState >= SFX_ITEM_AVAILABLE )
++            {
++                const SvxWidowsItem& rWidow =
++                    (const SvxWidowsItem&)rSet.Get( _nWhich );
++                aWidowBox.EnableTriState( FALSE );
++                const USHORT nLines = rWidow.GetValue();
++
++                BOOL _bEnable = nLines > 0;
++                aWidowRowNo.SetValue( aWidowRowNo.Normalize( nLines ) );
++                aWidowBox.SetState( _bEnable ? STATE_CHECK : STATE_NOCHECK);
++                aWidowRowNo.Enable(_bEnable);
++                aWidowRowLabel.Enable(_bEnable);
++
++            }
++            else if ( SFX_ITEM_DONTCARE == eTmpState )
++                aWidowBox.SetState( STATE_DONTKNOW );
++            else
++                aWidowBox.Enable(FALSE);
++
++            aOrphanBox.Enable();
++            _nWhich = GetWhich( SID_ATTR_PARA_ORPHANS );
++            eTmpState = rSet.GetItemState( _nWhich );
++
++            if ( eTmpState >= SFX_ITEM_AVAILABLE )
++            {
++                const SvxOrphansItem& rOrphan =
++                    (const SvxOrphansItem&)rSet.Get( _nWhich );
++                const USHORT nLines = rOrphan.GetValue();
++                aOrphanBox.EnableTriState( FALSE );
++
++                BOOL _bEnable = nLines > 0;
++                aOrphanBox.SetState( _bEnable ? STATE_CHECK : STATE_NOCHECK);
++                aOrphanRowNo.SetValue( aOrphanRowNo.Normalize( nLines ) );
++                aOrphanRowNo.Enable(_bEnable);
++                aOrphanRowLabel.Enable(_bEnable);
++
++            }
++            else if ( SFX_ITEM_DONTCARE == eTmpState )
++                aOrphanBox.SetState( STATE_DONTKNOW );
++            else
++                aOrphanBox.Enable(FALSE);
++        }
++    }
++    else if ( SFX_ITEM_DONTCARE == eItemState )
++        aKeepTogetherBox.SetState( STATE_DONTKNOW );
++    else
++        aKeepTogetherBox.Enable(FALSE);
++
++    // damit alles richt enabled wird
++    KeepTogetherHdl_Impl( 0 );
++    WidowHdl_Impl( 0 );
++    OrphanHdl_Impl( 0 );
++
++    aHyphenBox.SaveValue();
++    aExtHyphenBeforeBox.SaveValue();
++    aExtHyphenAfterBox.SaveValue();
++    aMaxHyphenEdit.SaveValue();
++    aPageBreakBox.SaveValue();
++    aBreakPositionLB.SaveValue();
++    aBreakTypeLB.SaveValue();
++    aApplyCollBtn.SaveValue();
++    aApplyCollBox.SaveValue();
++    aPagenumEdit.SaveValue();
++    aKeepTogetherBox.SaveValue();
++    aKeepParaBox.SaveValue();
++    aWidowBox.SaveValue();
++    aOrphanBox.SaveValue();
++}
++
++// -----------------------------------------------------------------------
++
++int SvxExtParagraphTabPage::DeactivatePage( SfxItemSet* _pSet )
++{
++    if ( _pSet )
++        FillItemSet( *_pSet );
++    return LEAVE_PAGE;
++}
++
++// -----------------------------------------------------------------------
++
++void SvxExtParagraphTabPage::DisablePageBreak()
++{
++    bPageBreak = FALSE;
++    aPageBreakBox.Enable(FALSE);
++    aBreakTypeLB.RemoveEntry(0);
++    aBreakPositionFT.Enable(FALSE);
++    aBreakPositionLB.Enable(FALSE);
++    aApplyCollBtn.Enable(FALSE);
++    aApplyCollBox.Enable(FALSE);
++    aPagenumEdit.Enable(FALSE);
++}
++
++// -----------------------------------------------------------------------
++
++SvxExtParagraphTabPage::SvxExtParagraphTabPage( Window* pParent, const SfxItemSet& rAttr ) :
++
++    SfxTabPage( pParent, SVX_RES( RID_SVXPAGE_EXT_PARAGRAPH ), rAttr ),
++
++    aHyphenBox            ( this, SVX_RES( BTN_HYPHEN ) ),
++    aBeforeText            ( this, SVX_RES( FT_HYPHENBEFORE ) ),
++    aExtHyphenBeforeBox ( this, SVX_RES( ED_HYPHENBEFORE ) ),
++    aAfterText            ( this, SVX_RES( FT_HYPHENAFTER ) ),
++    aExtHyphenAfterBox  ( this, SVX_RES( ED_HYPHENAFTER ) ),
++    aMaxHyphenLabel     ( this, SVX_RES( FT_MAXHYPH ) ),
++    aMaxHyphenEdit        ( this, SVX_RES( ED_MAXHYPH ) ),
++    aExtFL              ( this, SVX_RES( FL_HYPHEN ) ),
++    aBreaksFL           ( this, SVX_RES( FL_BREAKS ) ),
++    aPageBreakBox       ( this, SVX_RES( BTN_PAGEBREAK ) ),
++    aBreakTypeFT        ( this, SVX_RES( FT_BREAKTYPE     )),
++    aBreakTypeLB        ( this, SVX_RES( LB_BREAKTYPE     )),
++    aBreakPositionFT    ( this, SVX_RES( FT_BREAKPOSITION )),
++    aBreakPositionLB    ( this, SVX_RES( LB_BREAKPOSITION )),
++//    aPageBox            ( this, SVX_RES( BTN_BREAKPAGE ) ),
++//    aColumnBox          ( this, SVX_RES( BTN_BREAKCOLUMN ) ),
++//    aBeforeBox          ( this, SVX_RES( BTN_PAGEBREAKBEFORE ) ),
++//    aAfterBox           ( this, SVX_RES( BTN_PAGEBREAKAFTER ) ),
++    aApplyCollBtn       ( this, SVX_RES( BTN_PAGECOLL ) ),
++    aApplyCollBox       ( this, SVX_RES( LB_PAGECOLL ) ),
++    aPagenumText        ( this, SVX_RES( FT_PAGENUM ) ),
++    aPagenumEdit        ( this, SVX_RES( ED_PAGENUM ) ),
++    aExtendFL           ( this, SVX_RES( FL_OPTIONS ) ),
++    aKeepTogetherBox    ( this, SVX_RES( BTN_KEEPTOGETHER ) ),
++    aKeepParaBox        ( this, SVX_RES( CB_KEEPTOGETHER ) ),
++    aOrphanBox          ( this, SVX_RES( BTN_ORPHANS ) ),
++    aOrphanRowNo        ( this, SVX_RES( ED_ORPHANS ) ),
++    aOrphanRowLabel     ( this, SVX_RES( FT_ORPHANS ) ),
++    aWidowBox           ( this, SVX_RES( BTN_WIDOWS ) ),
++    aWidowRowNo         ( this, SVX_RES( ED_WIDOWS ) ),
++    aWidowRowLabel      ( this, SVX_RES( FT_WIDOWS ) ),
++    bPageBreak  ( TRUE ),
++    bHtmlMode   ( FALSE ),
++    nStdPos     ( 0 )
++{
++    FreeResource();
++
++    // diese Page braucht ExchangeSupport
++    SetExchangeSupport();
++
++    aHyphenBox.SetClickHdl(         LINK( this, SvxExtParagraphTabPage, HyphenClickHdl_Impl ) );
++    aPageBreakBox.SetClickHdl(         LINK( this, SvxExtParagraphTabPage, PageBreakHdl_Impl ) );
++    aKeepTogetherBox.SetClickHdl(     LINK( this, SvxExtParagraphTabPage, KeepTogetherHdl_Impl ) );
++    aWidowBox.SetClickHdl(             LINK( this, SvxExtParagraphTabPage, WidowHdl_Impl ) );
++    aOrphanBox.SetClickHdl(         LINK( this, SvxExtParagraphTabPage, OrphanHdl_Impl ) );
++    aApplyCollBtn.SetClickHdl(         LINK( this, SvxExtParagraphTabPage, ApplyCollClickHdl_Impl ) );
++    aBreakTypeLB.SetSelectHdl(      LINK( this, SvxExtParagraphTabPage, PageBreakTypeHdl_Impl ) );
++    aBreakPositionLB.SetSelectHdl(  LINK( this, SvxExtParagraphTabPage, PageBreakPosHdl_Impl ) );
++
++    SfxObjectShell* pSh = SfxObjectShell::Current();
++    if ( pSh )
++    {
++        SfxStyleSheetBasePool* pPool = pSh->GetStyleSheetPool();
++        pPool->SetSearchMask( SFX_STYLE_FAMILY_PAGE );
++        SfxStyleSheetBase* pStyle = pPool->First();
++        String aStdName;
++
++        while( pStyle )
++        {
++            if ( aStdName.Len() == 0 )
++                // first style == standard style
++                aStdName = pStyle->GetName();
++            aApplyCollBox.InsertEntry( pStyle->GetName() );
++            pStyle = pPool->Next();
++        }
++        nStdPos = aApplyCollBox.GetEntryPos( aStdName );
++    }
++
++    USHORT nHtmlMode = GetHtmlMode_Impl( rAttr );
++    if ( nHtmlMode & HTMLMODE_ON )
++    {
++        bHtmlMode = TRUE;
++        aHyphenBox             .Enable(FALSE);
++        aBeforeText             .Enable(FALSE);
++        aExtHyphenBeforeBox  .Enable(FALSE);
++        aAfterText             .Enable(FALSE);
++        aExtHyphenAfterBox   .Enable(FALSE);
++        aMaxHyphenLabel      .Enable(FALSE);
++        aMaxHyphenEdit         .Enable(FALSE);
++        aExtFL               .Enable(FALSE);
++        aPagenumText         .Enable(FALSE);
++        aPagenumEdit         .Enable(FALSE);
++        // no column break in HTML
++        aBreakTypeLB.RemoveEntry(1);
++    }
++}
++
++// -----------------------------------------------------------------------
++
++__EXPORT SvxExtParagraphTabPage::~SvxExtParagraphTabPage()
++{
++}
++
++// -----------------------------------------------------------------------
++
++USHORT* SvxExtParagraphTabPage::GetRanges()
++{
++    return pExtRanges;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, PageBreakHdl_Impl, TriStateBox *, EMPTYARG )
++{
++    switch ( aPageBreakBox.GetState() )
++    {
++        case STATE_CHECK:
++            aBreakTypeFT.Enable();
++            aBreakTypeLB.Enable();
++            aBreakPositionFT.Enable();
++            aBreakPositionLB.Enable();
++
++            if ( 0 == aBreakTypeLB.GetSelectEntryPos()&&
++                0 == aBreakPositionLB.GetSelectEntryPos() )
++            {
++                aApplyCollBtn.Enable();
++
++                BOOL bEnable = STATE_CHECK == aApplyCollBtn.GetState() &&
++                                            aApplyCollBox.GetEntryCount();
++                aApplyCollBox.Enable(bEnable);
++                if(!bHtmlMode)
++                {
++                    aPagenumText.Enable(bEnable);
++                    aPagenumEdit.Enable(bEnable);
++                }
++            }
++            break;
++
++        case STATE_NOCHECK:
++        case STATE_DONTKNOW:
++            aApplyCollBtn.SetState( STATE_NOCHECK );
++            aApplyCollBtn.Enable(FALSE);
++            aApplyCollBox.Enable(FALSE);
++            aPagenumText.Enable(FALSE);
++            aPagenumEdit.Enable(FALSE);
++            aBreakTypeFT.Enable(FALSE);
++            aBreakTypeLB.Enable(FALSE);
++            aBreakPositionFT.Enable(FALSE);
++            aBreakPositionLB.Enable(FALSE);
++            break;
++    }
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, KeepTogetherHdl_Impl, TriStateBox *, EMPTYARG )
++{
++    BOOL bEnable = aKeepTogetherBox.GetState() == STATE_NOCHECK;
++    aWidowBox.Enable(bEnable);
++    aOrphanBox.Enable(bEnable);
++
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, WidowHdl_Impl, TriStateBox *, EMPTYARG )
++{
++    switch ( aWidowBox.GetState() )
++    {
++        case STATE_CHECK:
++            aWidowRowNo.Enable();
++            aWidowRowLabel.Enable();
++            aKeepTogetherBox.Enable(FALSE);
++            break;
++
++        case STATE_NOCHECK:
++            if ( aOrphanBox.GetState() == STATE_NOCHECK )
++                aKeepTogetherBox.Enable();
++
++        // kein break
++        case STATE_DONTKNOW:
++            aWidowRowNo.Enable(FALSE);
++            aWidowRowLabel.Enable(FALSE);
++            break;
++    }
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, OrphanHdl_Impl, TriStateBox *, EMPTYARG )
++{
++    switch( aOrphanBox.GetState() )
++    {
++        case STATE_CHECK:
++            aOrphanRowNo.Enable();
++            aOrphanRowLabel.Enable();
++            aKeepTogetherBox.Enable(FALSE);
++            break;
++
++        case STATE_NOCHECK:
++            if ( aWidowBox.GetState() == STATE_NOCHECK )
++                aKeepTogetherBox.Enable();
++
++        // kein break
++        case STATE_DONTKNOW:
++            aOrphanRowNo.Enable(FALSE);
++            aOrphanRowLabel.Enable(FALSE);
++            break;
++    }
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, HyphenClickHdl_Impl, TriStateBox *, EMPTYARG )
++{
++
++    BOOL bEnable = aHyphenBox.GetState() == STATE_CHECK;
++    aBeforeText.Enable(bEnable);
++    aExtHyphenBeforeBox.Enable(bEnable);
++    aAfterText.Enable(bEnable);
++    aExtHyphenAfterBox.Enable(bEnable);
++    aMaxHyphenLabel.Enable(bEnable);
++    aMaxHyphenEdit.Enable(bEnable);
++    aHyphenBox.SetState( bEnable ? STATE_CHECK : STATE_NOCHECK);
++
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, ApplyCollClickHdl_Impl, TriStateBox *, EMPTYARG )
++{
++    BOOL bEnable = FALSE;
++    if ( aApplyCollBtn.GetState() == STATE_CHECK &&
++         aApplyCollBox.GetEntryCount() )
++    {
++        bEnable = TRUE;
++        aApplyCollBox.SelectEntryPos( nStdPos );
++    }
++    else
++    {
++        aApplyCollBox.SetNoSelection();
++    }
++    aApplyCollBox.Enable(bEnable);
++    if(!bHtmlMode)
++    {
++        aPagenumText.Enable(bEnable);
++        aPagenumEdit.Enable(bEnable);
++    }
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, PageBreakPosHdl_Impl, ListBox *, pListBox )
++{
++    if ( 0 == pListBox->GetSelectEntryPos() )
++    {
++        aApplyCollBtn.Enable();
++
++        BOOL bEnable = aApplyCollBtn.GetState() == STATE_CHECK &&
++                                    aApplyCollBox.GetEntryCount();
++
++        aApplyCollBox.Enable(bEnable);
++        if(!bHtmlMode)
++        {
++            aPagenumText.Enable(bEnable);
++            aPagenumEdit.Enable(bEnable);
++        }
++    }
++    else if ( 1 == pListBox->GetSelectEntryPos() )
++    {
++        aApplyCollBtn.SetState( STATE_NOCHECK );
++        aApplyCollBtn.Enable(FALSE);
++        aApplyCollBox.Enable(FALSE);
++        aPagenumText.Enable(FALSE);
++        aPagenumEdit.Enable(FALSE);
++    }
++    return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxExtParagraphTabPage, PageBreakTypeHdl_Impl, ListBox *, pListBox )
++{
++    //column break or break break after
++    USHORT nBreakPos = aBreakPositionLB.GetSelectEntryPos();
++    if ( pListBox->GetSelectEntryPos() == 1 || 1 == nBreakPos)
++    {
++        aApplyCollBtn.SetState( STATE_NOCHECK );
++        aApplyCollBtn.Enable(FALSE);
++        aApplyCollBox.Enable(FALSE);
++        aPagenumText.Enable(FALSE);
++        aPagenumEdit.Enable(FALSE);
++    }
++    else
++        PageBreakPosHdl_Impl( &aBreakPositionLB );
++    return 0;
++}
++//Add CHINA001 begin
++void SvxExtParagraphTabPage::PageCreated(SfxAllItemSet aSet)
++{
++
++
++    SFX_ITEMSET_ARG    (&aSet,pDisablePageBreakItem,SfxBoolItem,SID_DISABLE_SVXEXTPARAGRAPHTABPAGE_PAGEBREAK,sal_False);
++
++    if (pDisablePageBreakItem)
++        if ( pDisablePageBreakItem->GetValue())
++                    DisablePageBreak();
++
++
++}
++//end of Add CHINA001
++/*-- 29.11.00 11:36:24---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++SvxAsianTabPage::SvxAsianTabPage( Window* pParent, const SfxItemSet& rSet ) :
++    SfxTabPage(pParent, SVX_RES( RID_SVXPAGE_PARA_ASIAN ), rSet),
++    aOptionsFL(         this, SVX_RES(FL_AS_OPTIONS       )),
++    aForbiddenRulesCB(  this, SVX_RES(CB_AS_FORBIDDEN     )),
++    aAllowWordBreakCB(  this, SVX_RES(CB_AS_ALLOW_WORD_BREAK)),
++    aHangingPunctCB(    this, SVX_RES(CB_AS_HANG_PUNC     )),
++    aCharDistFL(        this, SVX_RES(FL_AS_CHAR_DIST     )),
++    aPuntuationCB(         this, SVX_RES(CB_AS_PUNCTUATION   )),
++    aScriptSpaceCB(     this, SVX_RES(CB_AS_SCRIPT_SPACE    )),
++    aAdjustNumbersCB(    this, SVX_RES(CB_AS_ADJUST_NUMBERS))
++
++{
++    FreeResource();
++
++    Link aLink = LINK( this, SvxAsianTabPage, ClickHdl_Impl );
++    aHangingPunctCB.SetClickHdl( aLink );
++    aScriptSpaceCB.SetClickHdl( aLink );
++    aForbiddenRulesCB.SetClickHdl( aLink );
++
++//JP 28.3.2001 - these options currently not available!
++    aAllowWordBreakCB.Hide();
++    aCharDistFL.Hide();
++    aPuntuationCB.Hide();
++    aAdjustNumbersCB.Hide();
++    aScriptSpaceCB.SetPosPixel( aHangingPunctCB.GetPosPixel() );
++    aHangingPunctCB.SetPosPixel( aAllowWordBreakCB.GetPosPixel() );
++//JP 28.3.2001 - these options currently not available!
++}
++/*-- 29.11.00 11:36:24---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++SvxAsianTabPage::~SvxAsianTabPage()
++{
++}
++/*-- 29.11.00 11:36:24---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++SfxTabPage*    SvxAsianTabPage::Create(    Window* pParent, const SfxItemSet& rSet )
++{
++    return new SvxAsianTabPage(pParent, rSet);
++}
++/*-- 29.11.00 11:36:24---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++USHORT*        SvxAsianTabPage::GetRanges()
++{
++    static USHORT pRanges[] =
++    {
++        SID_ATTR_PARA_SCRIPTSPACE,
++        SID_ATTR_PARA_HANGPUNCTUATION,
++        SID_ATTR_PARA_FORBIDDEN_RULES,
++        0
++    };
++    return pRanges;
++}
++/*-- 29.11.00 11:36:24---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++BOOL        SvxAsianTabPage::FillItemSet( SfxItemSet& rSet )
++{
++    BOOL bRet = FALSE;
++    SfxItemPool* pPool = rSet.GetPool();
++    if(aScriptSpaceCB.IsChecked() != aScriptSpaceCB.GetSavedValue())
++    {
++        SfxBoolItem* pNewItem = (SfxBoolItem*)rSet.Get(
++            pPool->GetWhich(SID_ATTR_PARA_SCRIPTSPACE)).Clone();
++        pNewItem->SetValue(aScriptSpaceCB.IsChecked());
++        rSet.Put(*pNewItem);
++        delete pNewItem;
++        bRet = TRUE;
++    }
++    if(aHangingPunctCB.IsChecked() != aHangingPunctCB.GetSavedValue())
++    {
++        SfxBoolItem* pNewItem = (SfxBoolItem*)rSet.Get(
++            pPool->GetWhich(SID_ATTR_PARA_HANGPUNCTUATION)).Clone();
++        pNewItem->SetValue(aHangingPunctCB.IsChecked());
++        rSet.Put(*pNewItem);
++        delete pNewItem;
++        bRet = TRUE;
++    }
++    if(aForbiddenRulesCB.IsChecked() != aForbiddenRulesCB.GetSavedValue())
++    {
++        SfxBoolItem* pNewItem = (SfxBoolItem*)rSet.Get(
++            pPool->GetWhich(SID_ATTR_PARA_FORBIDDEN_RULES)).Clone();
++        pNewItem->SetValue(aForbiddenRulesCB.IsChecked());
++        rSet.Put(*pNewItem);
++        delete pNewItem;
++        bRet = TRUE;
++    }
++    return bRet;
++}
++/*-- 29.11.00 11:36:25---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++void lcl_SetBox(const SfxItemSet& rSet, USHORT nSlotId, TriStateBox& rBox)
++{
++    USHORT _nWhich = rSet.GetPool()->GetWhich(nSlotId);
++    SfxItemState eState = rSet.GetItemState(_nWhich, TRUE);
++    if(!eState)
++        rBox.Enable(FALSE);
++    else if(eState >= SFX_ITEM_AVAILABLE)
++    {
++        rBox.EnableTriState( FALSE );
++        rBox.Check(((const SfxBoolItem&)rSet.Get(_nWhich)).GetValue());
++    }
++    else
++        rBox.SetState( STATE_DONTKNOW );
++    rBox.SaveValue();
++}
++
++
++void SvxAsianTabPage::Reset( const SfxItemSet& rSet )
++{
++    lcl_SetBox(rSet, SID_ATTR_PARA_FORBIDDEN_RULES, aForbiddenRulesCB );
++//    lcl_SetBox(rSet, , aAllowWordBreakCB );
++    lcl_SetBox(rSet, SID_ATTR_PARA_HANGPUNCTUATION, aHangingPunctCB );
++
++
++    //character distance not yet available
++//    lcl_SetBox(rSet, , aPuntuationCB    );
++    lcl_SetBox(rSet, SID_ATTR_PARA_SCRIPTSPACE, aScriptSpaceCB );
++//    lcl_SetBox(rSet, , aAdjustNumbersCB );
++    aAllowWordBreakCB    .Enable(FALSE);
++    aPuntuationCB        .Enable(FALSE);
++    aAdjustNumbersCB    .Enable(FALSE);
++}
++/* -----------------------------19.12.00 12:59--------------------------------
++
++ ---------------------------------------------------------------------------*/
++IMPL_LINK( SvxAsianTabPage, ClickHdl_Impl, TriStateBox*, pBox )
++{
++    pBox->EnableTriState( FALSE );
++    return 0;
++}
+Index: toolkit/workben/layout/paragraph.hrc
+===================================================================
+RCS file: toolkit/workben/layout/paragraph.hrc
+diff -N toolkit/workben/layout/paragraph.hrc
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/paragraph.hrc	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,131 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef _SVX_PARAGRPH_HRC
++#define _SVX_PARAGRPH_HRC
++
++// StandardTabPage ----------------------------------------------------------
++
++#define FT_LEFTINDENT			10
++#define ED_LEFTINDENT			11
++#define FT_FLINEINDENT			12
++#define ED_FLINEINDENT			13
++#define FT_RIGHTINDENT			14
++#define ED_RIGHTINDENT			15
++#define FL_INDENT                       16
++
++#define FT_TOPDIST                      20
++#define ED_TOPDIST                      21
++#define FT_BOTTOMDIST			22
++#define ED_BOTTOMDIST			23
++#define FL_DIST                         24
++
++#define BTN_LEFTALIGN			30
++#define BTN_RIGHTALIGN			31
++#define BTN_CENTERALIGN			32
++#define BTN_JUSTIFYALIGN		33
++#define FL_ALIGN                        34
++#define FL_VERTALIGN                    35
++#define LB_VERTALIGN                    36
++#define FL_VERTEX                       37
++#define CB_SNAP                         38
++#define FT_VERTALIGN                    39
++
++
++#define LB_LINEDIST                     40
++#define FT_LINEDIST                     41
++#define ED_LINEDISTPERCENT		42
++#define ED_LINEDISTMETRIC		43
++#define FL_LINEDIST                     44
++#define WN_EXAMPLE                      46
++
++#define CB_AUTO                         48
++#define FT_LASTLINE                     49
++#define LB_LASTLINE                     50
++#define CB_EXPAND                       51
++#define ST_LINEDIST_ABS                 52
++#define ST_LEFTALIGN_ASIAN              53
++#define ST_RIGHTALIGN_ASIAN             54
++
++// ExtendedTabPage ----------------------------------------------------------
++
++#define BTN_HYPHEN                      50
++#define ED_HYPHENBEFORE			52
++#define FT_HYPHENBEFORE			53
++#define ED_HYPHENAFTER			55
++#define FT_HYPHENAFTER			56
++#define FL_HYPHEN                       57
++
++#define BTN_PAGEBREAK			60
++#define FT_BREAKTYPE            61
++#define LB_BREAKTYPE            62
++#define FT_BREAKPOSITION        63
++#define LB_BREAKPOSITION        64
++#define BTN_PAGECOLL			65
++#define LB_PAGECOLL                     66
++#define BTN_KEEPTOGETHER		67
++#define BTN_WIDOWS                      68
++#define ED_WIDOWS                       69
++#define FT_WIDOWS                       70
++#define BTN_ORPHANS                     71
++#define ED_ORPHANS                      72
++#define FT_ORPHANS                      73
++#define FL_OPTIONS                      74
++#define FT_PAGENUM                      75
++#define ED_PAGENUM                      76
++#define FL_BREAKS						77
++
++#define CB_KEEPTOGETHER                 80
++#define FT_MAXHYPH  					81
++#define ED_MAXHYPH                      83
++
++#define CB_REGISTER                     84
++#define FL_REGISTER                     85
++#define FL_PROPERTIES                   90
++#define FT_TEXTDIRECTION                91
++#define LB_TEXTDIRECTION                92
++
++
++//asian typography
++#define FL_AS_OPTIONS                   1
++#define CB_AS_HANG_PUNC                 2
++#define CB_AS_ALLOW_WORD_BREAK          3
++#define CB_AS_FORBIDDEN                 4
++#define FL_AS_CHAR_DIST                 5
++#define CB_AS_PUNCTUATION               6
++#define CB_AS_SCRIPT_SPACE				7
++#define CB_AS_ADJUST_NUMBERS            8
++
++#endif
++
+Index: toolkit/workben/layout/paragraph.hxx
+===================================================================
+RCS file: toolkit/workben/layout/paragraph.hxx
+diff -N toolkit/workben/layout/paragraph.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/paragraph.hxx	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,356 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef _SVX_PARAGRPH_HXX
++#define _SVX_PARAGRPH_HXX
++
++// include ---------------------------------------------------------------
++
++#ifndef _BUTTON_HXX //autogen
++#include <vcl/button.hxx>
++#endif
++#ifndef _FIXED_HXX //autogen
++#include <vcl/fixed.hxx>
++#endif
++#ifndef _SFXTABDLG_HXX //autogen
++#include <sfx2/tabdlg.hxx>
++#endif
++#ifndef _SVX_PARAPREV_HXX
++#include <svx/paraprev.hxx>        // Preview
++#endif
++#ifndef _SVX_FRMDIRLBOX_HXX
++#include <svx/frmdirlbox.hxx>
++#endif
++
++#ifndef _LSTBOX_HXX //autogen
++#include <vcl/lstbox.hxx>
++#endif
++
++#include <svx/relfld.hxx>
++#include <svx/dlgutil.hxx>
++#include <svx/htmlmode.hxx>
++#include <svx/flagsdef.hxx>
++#include <svx/pgrditem.hxx>
++
++// define ----------------------------------------------------------------
++
++// 1/2 cm in TWIPS
++// wird auch fuer Minimalgrosse der LayFrms aller Arten benutzt
++//CHINA001 #define MM50   283
++
++// forward ---------------------------------------------------------------
++
++class SvxLineSpacingItem;
++class SvxParagraphControllerItem;
++
++// class SvxStdParagraphTabPage ------------------------------------------
++
++/*     {k:\svx\prototyp\dialog\parastd.bmp}
++
++    [Beschreibung]
++    Mit dieser TabPage koennen Standard-Attribute eines Absatzes eingestellt
++    werden (Einzug, Abstand, Ausrichtung, Zeilenabstand).
++
++    [Items]
++    <SvxAdjustItem><SID_ATTR_PARA_ADJUST>
++    <SvxLineSpacingItem><SID_ATTR_PARA_LINESPACE>
++    <SvxULSpaceItem><SID_ATTR_ULSPACE>
++    <SvxLRSpaceItem><SID_ATTR_LRSPACE>
++*/
++
++class SvxStdParagraphTabPage: public SfxTabPage
++{
++    using TabPage::DeactivatePage;
++
++private:
++    SvxStdParagraphTabPage( Window* pParent, const SfxItemSet& rSet );
++
++    // Einzug
++    FixedText                aLeftLabel;
++    SvxRelativeField        aLeftIndent;
++
++    FixedText                aRightLabel;
++    SvxRelativeField        aRightIndent;
++
++    FixedText                aFLineLabel;
++    SvxRelativeField        aFLineIndent;
++    CheckBox                aAutoCB;
++
++    FixedLine               aIndentFrm;
++
++    // Abstaende
++    FixedText                aTopLabel;
++    SvxRelativeField        aTopDist;
++    FixedText                aBottomLabel;
++    SvxRelativeField        aBottomDist;
++    FixedLine               aDistFrm;
++
++    // Zeilenabstand
++    ListBox                    aLineDist;
++    FixedText                aLineDistAtLabel;
++    MetricField                aLineDistAtPercentBox;
++    MetricField                aLineDistAtMetricBox;
++    FixedLine               aLineDistFrm;
++    String                     sAbsDist;
++    SvxParaPrevWindow        aExampleWin;
++
++    //Registerhaltigkeit - nur Writer
++    CheckBox                aRegisterCB;
++    FixedLine               aRegisterFL;
++
++    Edit*                    pActLineDistFld;
++    long                    nAbst;
++    long                    nWidth;
++    long                     nMinFixDist;
++    BOOL                    bRelativeMode;
++    BOOL                    bNegativeIndents;
++
++#ifdef _SVX_PARAGRPH_CXX
++    void                    SetLineSpacing_Impl( const SvxLineSpacingItem& rAttr );
++    void                    Init_Impl();
++    void                    UpdateExample_Impl( BOOL bAll = FALSE );
++
++    DECL_LINK( LineDistHdl_Impl, ListBox* );
++    DECL_LINK( ModifyHdl_Impl, SvxRelativeField* );
++    DECL_LINK( AutoHdl_Impl, CheckBox* );
++#endif
++
++protected:
++    virtual int                DeactivatePage( SfxItemSet* pSet = 0 );
++
++public:
++    DECL_LINK( ELRLoseFocusHdl, Edit* );
++
++    static SfxTabPage*        Create( Window* pParent, const SfxItemSet& rSet );
++    static USHORT*            GetRanges();
++
++    virtual BOOL            FillItemSet( SfxItemSet& rSet );
++    virtual void            Reset( const SfxItemSet& rSet );
++
++
++    void                    SetPageWidth( USHORT nPageWidth );
++    void                    SetMaxDistance( USHORT nMaxDist );
++    void                    EnableRelativeMode();
++    void                     EnableRegisterMode();
++    void                    EnableAutoFirstLine();
++    void                    EnableAbsLineDist(long nMinTwip);
++    void                    EnableNegativeMode();
++    virtual void             PageCreated(SfxAllItemSet aSet); // add CHINA001
++};
++
++// class SvxParaAlignTabPage ------------------------------------------------
++
++class SvxParaAlignTabPage : public SfxTabPage
++{
++    using TabPage::DeactivatePage;
++
++    // Ausrichtung
++    FixedLine               aAlignFrm;
++    RadioButton             aLeft;
++    RadioButton                aRight;
++    RadioButton                aCenter;
++    RadioButton                aJustify;
++    FixedText                aLastLineFT;
++    ListBox                    aLastLineLB;
++    CheckBox                aExpandCB;
++
++    CheckBox                aSnapToGridCB;
++
++    //preview
++    SvxParaPrevWindow        aExampleWin;
++    //vertical alignment
++    FixedLine               aVertAlignFL;
++
++    FixedText               aVertAlignFT;
++    ListBox                 aVertAlignLB;
++
++    FixedLine                   aPropertiesFL;
++    FixedText                   aTextDirectionFT;
++    svx::FrameDirectionListBox    aTextDirectionLB;
++
++#ifdef _SVX_PARAGRPH_CXX
++    DECL_LINK(                 AlignHdl_Impl, RadioButton* );
++    DECL_LINK(                 LastLineHdl_Impl, ListBox* );
++    DECL_LINK(                 TextDirectionHdl_Impl, ListBox* );
++
++    void                    UpdateExample_Impl( BOOL bAll = FALSE );
++#endif
++
++                            SvxParaAlignTabPage( Window* pParent, const SfxItemSet& rSet );
++    virtual                    ~SvxParaAlignTabPage();
++
++protected:
++    virtual int                DeactivatePage( SfxItemSet* pSet = 0 );
++
++public:
++    static SfxTabPage*        Create( Window* pParent, const SfxItemSet& rSet );
++    static USHORT*            GetRanges();
++
++    virtual BOOL            FillItemSet( SfxItemSet& rSet );
++    virtual void            Reset( const SfxItemSet& rSet );
++
++    void                    EnableJustifyExt();
++    virtual void             PageCreated(SfxAllItemSet aSet); // add CHINA001
++};
++
++// class SvxExtParagraphTabPage ------------------------------------------
++
++/*    {k:\svx\prototyp\dialog\paraext.bmp}
++
++    [Beschreibung]
++    Mit dieser TabPage koennen Spezial-Attribute eines Absatzes eingestellt
++    werden (Silbentrennung, Seitenumbruch, Schusterjungen, Hurenkinder, ...).
++
++    [Items]
++    <SvxHyphenZoneItem><SID_ATTR_PARA_HYPHENZONE>
++    <SvxFmtBreakItem><SID_ATTR_PARA_PAGEBREAK>
++    <SvxFmtSplitItem><SID_ATTR_PARA_SPLIT>
++    <SvxWidowsItem><SID_ATTR_PARA_WIDOWS>
++    <SvxOrphansItem><SID_ATTR_PARA_ORPHANS>
++*/
++
++class SvxExtParagraphTabPage: public SfxTabPage
++{
++    using TabPage::DeactivatePage;
++
++public:
++    virtual                ~SvxExtParagraphTabPage();
++
++    static SfxTabPage*    Create(    Window* pParent,
++                                const SfxItemSet& rSet );
++    static USHORT*        GetRanges();
++
++    virtual BOOL        FillItemSet( SfxItemSet& rSet );
++    virtual void        Reset( const SfxItemSet& rSet );
++
++    void                DisablePageBreak();
++
++protected:
++    virtual int            DeactivatePage( SfxItemSet* pSet = 0 );
++
++private:
++                        SvxExtParagraphTabPage( Window* pParent, const SfxItemSet& rSet );
++
++    // Silbentrennung
++    TriStateBox            aHyphenBox;
++    FixedText            aBeforeText;
++    NumericField        aExtHyphenBeforeBox;
++//    FixedText            aHyphenBeforeLabel;
++    FixedText            aAfterText;
++    NumericField        aExtHyphenAfterBox;
++//    FixedText            aHyphenAfterLabel;
++    FixedText             aMaxHyphenLabel;
++    NumericField        aMaxHyphenEdit;
++    FixedLine           aExtFL;
++
++    // Seitenumbruch
++    FixedLine            aBreaksFL;
++    TriStateBox            aPageBreakBox;
++    FixedText           aBreakTypeFT;
++    ListBox             aBreakTypeLB;
++    FixedText           aBreakPositionFT;
++    ListBox             aBreakPositionLB;
++    TriStateBox            aApplyCollBtn;
++    ListBox                aApplyCollBox;
++    FixedText           aPagenumText;
++    NumericField           aPagenumEdit;
++
++    FixedLine           aExtendFL;
++
++    // Absatzteilung
++    TriStateBox            aKeepTogetherBox;
++    TriStateBox            aKeepParaBox;
++
++    // Witwen/Waisen
++    TriStateBox            aOrphanBox;
++    NumericField           aOrphanRowNo;
++    FixedText            aOrphanRowLabel;
++
++    TriStateBox            aWidowBox;
++    NumericField           aWidowRowNo;
++    FixedText            aWidowRowLabel;
++
++    BOOL                bPageBreak;
++    BOOL                bHtmlMode;
++    USHORT                nStdPos;
++
++#ifdef _SVX_PARAGRPH_CXX
++    DECL_LINK( PageBreakHdl_Impl, TriStateBox* );
++    DECL_LINK( KeepTogetherHdl_Impl, TriStateBox* );
++    DECL_LINK( WidowHdl_Impl, TriStateBox* );
++    DECL_LINK( OrphanHdl_Impl, TriStateBox* );
++    DECL_LINK( HyphenClickHdl_Impl, TriStateBox* );
++    DECL_LINK( ApplyCollClickHdl_Impl, TriStateBox* );
++    DECL_LINK( PageBreakPosHdl_Impl, ListBox* );
++    DECL_LINK( PageBreakTypeHdl_Impl, ListBox* );
++#endif
++    virtual void             PageCreated(SfxAllItemSet aSet); // add CHINA001
++};
++/* -----------------------------29.11.00 11:33--------------------------------
++
++ ---------------------------------------------------------------------------*/
++class SvxAsianTabPage : public SfxTabPage
++{
++    FixedLine       aOptionsFL;
++
++    TriStateBox        aForbiddenRulesCB;
++    TriStateBox        aAllowWordBreakCB;
++    TriStateBox        aHangingPunctCB;
++
++    FixedLine       aCharDistFL;
++    TriStateBox        aPuntuationCB;
++    TriStateBox        aScriptSpaceCB;
++    TriStateBox        aAdjustNumbersCB;
++
++    SvxAsianTabPage( Window* pParent, const SfxItemSet& rSet );
++
++#ifdef _SVX_PARAGRPH_CXX
++    DECL_LINK( ClickHdl_Impl, TriStateBox* );
++#endif
++public:
++    ~SvxAsianTabPage();
++
++
++    static SfxTabPage*    Create(    Window* pParent,
++                                const SfxItemSet& rSet );
++    static USHORT*        GetRanges();
++
++    virtual BOOL        FillItemSet( SfxItemSet& rSet );
++    virtual void        Reset( const SfxItemSet& rSet );
++
++};
++
++#endif // #ifndef _SVX_PARAGRPH_HXX
++
++
+Index: toolkit/workben/layout/paragraph.src
+===================================================================
+RCS file: toolkit/workben/layout/paragraph.src
+diff -N toolkit/workben/layout/paragraph.src
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/paragraph.src	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,728 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++ // include ---------------------------------------------------------------
++#include <svx/dialogs.hrc>
++#include "helpid.hrc"
++#include "paragrph.hrc"
++
++ // RID_SVXPAGE_STD_PARAGRAPH ---------------------------------------------
++TabPage RID_SVXPAGE_STD_PARAGRAPH
++{
++	HelpId = HID_FORMAT_PARAGRAPH_STD ;
++	Hide = TRUE ;
++	Text [ en-US ] = "Indents and Spacing" ;
++	Size = MAP_APPFONT ( 260 , 185 ) ;
++	FixedText FT_LEFTINDENT
++	{
++		Pos = MAP_APPFONT ( 12 , 16 ) ;
++		Size = MAP_APPFONT ( 120 , 8 ) ;
++        Left = TRUE ;
++        Text [ en-US ] = "Before text" ;
++	};
++	MetricField ED_LEFTINDENT
++	{
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 14 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Maximum = 9999 ;
++		DecimalDigits = 2 ;
++		Unit = FUNIT_CM ;
++		Last = 9999 ;
++		SpinSize = 10 ;
++	};
++	FixedText FT_RIGHTINDENT
++	{
++		Pos = MAP_APPFONT ( 12 , 32 ) ;
++		Size = MAP_APPFONT ( 120 , 8 ) ;
++        Left = TRUE ;
++        Text [ en-US ] = "After text" ;
++	};
++	MetricField ED_RIGHTINDENT
++	{
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 30 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Maximum = 9999 ;
++		DecimalDigits = 2 ;
++		Unit = FUNIT_CM ;
++		Last = 9999 ;
++		SpinSize = 10 ;
++	};
++	FixedText FT_FLINEINDENT
++	{
++		Pos = MAP_APPFONT ( 12 , 48 ) ;
++		Size = MAP_APPFONT ( 120 , 8 ) ;
++		Text [ en-US ] = "~First line" ;
++		Left = TRUE ;
++	};
++	MetricField ED_FLINEINDENT
++	{
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 46 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = -9999 ;
++		Maximum = 9999 ;
++		DecimalDigits = 2 ;
++		Unit = FUNIT_CM ;
++		First = -9999 ;
++		Last = 9999 ;
++		SpinSize = 10 ;
++	};
++	CheckBox CB_AUTO
++	{
++		Pos = MAP_APPFONT ( 12 , 61 ) ;
++		Size = MAP_APPFONT ( 120 , 10 ) ;
++		Hide = TRUE ;
++		Text [ en-US ] = "~Automatic" ;
++	};
++    FixedLine FL_INDENT
++	{
++        Pos = MAP_APPFONT ( 6 , 3 ) ;
++        Size = MAP_APPFONT ( 173 , 8 ) ;
++		Text [ en-US ] = "Indent" ;
++	};
++	FixedText FT_TOPDIST
++	{
++		Pos = MAP_APPFONT ( 12 , 90 ) ;
++		Size = MAP_APPFONT ( 120 , 8 ) ;
++		Left = TRUE ;
++        Text [ en-US ] = "Ab~ove paragraph" ;
++	};
++	MetricField ED_TOPDIST
++	{
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 88 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Maximum = 9999 ;
++		DecimalDigits = 2 ;
++		Unit = FUNIT_CM ;
++		Last = 9999 ;
++		SpinSize = 10 ;
++	};
++	FixedText FT_BOTTOMDIST
++	{
++		Pos = MAP_APPFONT ( 12 , 104 ) ;
++		Size = MAP_APPFONT ( 120 , 8 ) ;
++		Left = TRUE ;
++        Text [ en-US ] = "Below paragraph" ;
++	};
++	MetricField ED_BOTTOMDIST
++	{
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 104 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Maximum = 9999 ;
++		DecimalDigits = 2 ;
++		Unit = FUNIT_CM ;
++		Last = 9999 ;
++		SpinSize = 10 ;
++	};
++    FixedLine FL_DIST
++	{
++		Pos = MAP_APPFONT ( 6 , 77 ) ;
++        Size = MAP_APPFONT ( 173 , 8 ) ;
++		Text [ en-US ] = "Spacing" ;
++	};
++	ListBox LB_LINEDIST
++	{
++		Pos = MAP_APPFONT ( 12 , 133 ) ;
++		Size = MAP_APPFONT ( 55 , 72 ) ;
++		DropDown = TRUE ;
++		StringList [ en-US ] =
++		{
++			< "Single" ; Default ; > ;
++			< "1.5 lines" ; Default ; > ;
++			< "Double" ; Default ; > ;
++			< "Proportional" ; Default ; > ;
++			< "At least" ; Default ; > ;
++			< "Leading" ; Default ; > ;
++		};
++	};
++	String ST_LINEDIST_ABS
++	{
++		Text [ en-US ] = "Fixed" ;
++	};
++	FixedText FT_LINEDIST
++	{
++		Disable = TRUE ;
++		Pos = MAP_APPFONT ( 70 , 135 ) ;
++		Size = MAP_APPFONT ( 60 , 8 ) ;
++		Text [ en-US ] = "of" ;
++		Left = TRUE ;
++	};
++	MetricField ED_LINEDISTPERCENT
++	{
++		Disable = TRUE ;
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 133 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 50 ;
++		Maximum = 200 ;
++		Value = 100 ;
++		Unit = FUNIT_CUSTOM ;
++		CustomUnitText = "%" ;
++		First = 50 ;
++		Last = 200 ;
++		SpinSize = 1 ;
++	};
++	MetricField ED_LINEDISTMETRIC
++	{
++		Disable = TRUE ;
++		Border = TRUE ;
++		Hide = TRUE ;
++		Pos = MAP_APPFONT ( 135 , 133 ) ;
++		Size = MAP_APPFONT ( 40 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Maximum = 9999 ;
++		DecimalDigits = 2 ;
++		Unit = FUNIT_CM ;
++		Last = 9999 ;
++		SpinSize = 10 ;
++	};
++    FixedLine FL_LINEDIST
++	{
++		Pos = MAP_APPFONT ( 6 , 122 ) ;
++        Size = MAP_APPFONT ( 173 , 8 ) ;
++		Text [ en-US ] = "Line spacing" ;
++	};
++	Window WN_EXAMPLE
++	{
++        Border = TRUE ;
++        Pos = MAP_APPFONT ( 185 , 7 ) ;
++        Size = MAP_APPFONT ( 68 , 112 ) ;
++	};
++	CheckBox CB_REGISTER
++	{
++		Pos = MAP_APPFONT ( 12 , 162 ) ;
++		Size = MAP_APPFONT ( 120 , 10 ) ;
++		Hide = TRUE ;
++		Text [ en-US ] = "A~ctivate" ;
++	};
++    FixedLine FL_REGISTER
++	{
++		Pos = MAP_APPFONT ( 6 , 151 ) ;
++        Size = MAP_APPFONT ( 173 , 8 ) ;
++		Hide = TRUE ;
++		Text [ en-US ] = "Register-true" ;
++	};
++
++};
++ // RID_SVXPAGE_ALIGN_PARAGRAPH ---------------------------------------------
++TabPage RID_SVXPAGE_ALIGN_PARAGRAPH
++{
++	HelpId = HID_FORMAT_PARAGRAPH_ALIGN ;
++	Hide = TRUE ;
++	Text [ en-US ] = "Alignment" ;
++	Size = MAP_APPFONT ( 260 , 185 ) ;
++    FixedLine FL_ALIGN
++	{
++		Pos = MAP_APPFONT ( 6 , 3 ) ;
++        Size = MAP_APPFONT ( 173 , 8 ) ;
++		Text [ en-US ] = "Options" ;
++		Group = TRUE ;
++	};
++    RadioButton BTN_LEFTALIGN
++	{
++		Pos = MAP_APPFONT ( 12 , 14 ) ;
++		Size = MAP_APPFONT ( 161 , 10 ) ;
++		Text [ en-US ] = "~Left" ;
++		Group = TRUE ;
++	};
++	RadioButton BTN_RIGHTALIGN
++	{
++		Pos = MAP_APPFONT ( 12 , 28 ) ;
++		Size = MAP_APPFONT ( 161 , 10 ) ;
++		Text [ en-US ] = "Righ~t" ;
++	};
++    RadioButton BTN_CENTERALIGN
++	{
++		Pos = MAP_APPFONT ( 12 , 42 ) ;
++		Size = MAP_APPFONT ( 161 , 10 ) ;
++		Text [ en-US ] = "~Center" ;
++	};
++	RadioButton BTN_JUSTIFYALIGN
++	{
++		Pos = MAP_APPFONT ( 12 , 56 ) ;
++		Size = MAP_APPFONT ( 161 , 10 ) ;
++		Text [ en-US ] = "Justified" ;
++	};
++    String ST_LEFTALIGN_ASIAN
++    {
++        Text [ en-US ] = "~Left/Top" ;
++	};
++    String ST_RIGHTALIGN_ASIAN
++    {
++        Text [ en-US ] = "Righ~t/Bottom" ;
++	};
++	FixedText FT_LASTLINE
++	{
++		Pos = MAP_APPFONT ( 20 , 72 ) ;
++		Size = MAP_APPFONT ( 80 , 8 ) ;
++		Hide = TRUE ;
++		Text [ en-US ] = "~Last line" ;
++	};
++	ListBox LB_LASTLINE
++	{
++		Pos = MAP_APPFONT ( 105 , 70 ) ;
++		Size = MAP_APPFONT ( 70 , 50 ) ;
++		DropDown = TRUE ;
++		Hide = TRUE ;
++		StringList [ en-US ] =
++		{
++			< "Default" ; Default ; > ;
++			< "Left" ; Default ; > ;
++			< "Centered" ; Default ; > ;
++            < "Justified"; Default; > ;
++		};
++	};
++	CheckBox CB_EXPAND
++	{
++		Pos = MAP_APPFONT ( 20 , 86 ) ;
++		Size = MAP_APPFONT ( 153 , 10 ) ;
++		Hide = TRUE ;
++		Text [ en-US ] = "~Expand single word" ;
++	};
++    CheckBox CB_SNAP
++    {
++        Pos = MAP_APPFONT ( 20 , 100 ) ;
++		Size = MAP_APPFONT ( 153 , 10 ) ;
++        Hide = TRUE ;
++    	Text [ en-US ] = "Snap to text grid (if active)";
++	};
++    Window WN_EXAMPLE
++	{
++        Border = TRUE ;
++        Pos = MAP_APPFONT ( 185 , 7 ) ;
++        Size = MAP_APPFONT ( 68 , 112 ) ;
++	};
++    FixedLine FL_VERTALIGN
++    {
++        Pos = MAP_APPFONT ( 6 , 122 ) ;
++        Size = MAP_APPFONT ( 173 , 8 ) ;
++        Hide = TRUE;
++		Text [ en-US ] = "Text-to-text";
++	};
++    FixedText FT_VERTALIGN
++    {
++        Pos = MAP_APPFONT ( 12 , 135 ) ;
++        Size = MAP_APPFONT ( 90 , 8 ) ;
++        Hide = TRUE;
++    	Text [ en-US ] = "~Alignment";
++	};
++    ListBox LB_VERTALIGN
++    {
++		Pos = MAP_APPFONT ( 105 , 133 ) ;
++        Size = MAP_APPFONT ( 70 , 50 ) ;
++		DropDown = TRUE ;
++		Hide = TRUE ;
++		StringList [ en-US ] =
++		{
++			< "Automatic" ; > ;
++			< "Base line" ; > ;
++			< "Top" ; > ;
++			< "Middle" ; > ;
++			< "Bottom" ; > ;
++		};
++	};
++    FixedLine   FL_PROPERTIES
++    {
++        Pos = MAP_APPFONT ( 6 , 154 ) ;
++        Size = MAP_APPFONT ( 248 , 8 ) ;
++        Hide = TRUE ;
++    	Text [ en-US ] = "Properties";
++	};
++    FixedText   FT_TEXTDIRECTION
++    {
++        Pos = MAP_APPFONT ( 12 , 167 ) ;
++        Size = MAP_APPFONT ( 60 , 8 ) ;
++        Hide = TRUE ;
++    	Text [ en-US ] = "Text ~direction";
++	};
++    ListBox LB_TEXTDIRECTION
++    {
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 105 , 165 ) ;
++		Size = MAP_APPFONT ( 146 , 50 ) ;
++		DropDown = TRUE ;
++		Hide = TRUE ;
++	};
++};
++ // RID_SVXPAGE_EXT_PARAGRAPH ---------------------------------------------
++TabPage RID_SVXPAGE_EXT_PARAGRAPH
++{
++	HelpId = HID_FORMAT_PARAGRAPH_EXT ;
++	Hide = TRUE ;
++	Text [ en-US ] = "Text Flow" ;
++	Size = MAP_APPFONT ( 260 , 185 ) ;
++	TriStateBox BTN_HYPHEN
++	{
++		Pos = MAP_APPFONT ( 12 , 14 ) ;
++		Size = MAP_APPFONT ( 236 , 10 ) ;
++		Text [ en-US ] = "A~utomatically" ;
++	};
++	NumericField ED_HYPHENBEFORE
++	{
++		Disable = TRUE ;
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 21 , 26 ) ;
++		Size = MAP_APPFONT ( 24 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 2 ;
++		Maximum = 9 ;
++		Value = 2 ;
++		First = 2 ;
++		Last = 9 ;
++	};
++	FixedText FT_HYPHENBEFORE
++	{
++		Disable = TRUE ;
++		Pos = MAP_APPFONT ( 48 , 29 ) ;
++		Size = MAP_APPFONT ( 200 , 8 ) ;
++		Text [ en-US ] = "C~haracters at line end" ;
++		Left = TRUE ;
++	};
++	NumericField ED_HYPHENAFTER
++	{
++		Disable = TRUE ;
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 21 , 41 ) ;
++		Size = MAP_APPFONT ( 24 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 2 ;
++		Maximum = 9 ;
++		Value = 2 ;
++		First = 2 ;
++		Last = 9 ;
++	};
++	FixedText FT_HYPHENAFTER
++	{
++		Disable = TRUE ;
++		Pos = MAP_APPFONT ( 48 , 43 ) ;
++		Size = MAP_APPFONT ( 200 , 8 ) ;
++		Text [ en-US ] = "Cha~racters at line begin" ;
++		Left = TRUE ;
++	};
++	FixedText FT_MAXHYPH
++	{
++		Pos = MAP_APPFONT ( 48 , 57 ) ;
++		Size = MAP_APPFONT ( 200 , 8 ) ;
++		WordBreak = TRUE ;
++		Text [ en-US ] = "~Maximum number of consecutive hyphens" ;
++	};
++	NumericField ED_MAXHYPH
++	{
++		Border = TRUE ;
++		Pos = MAP_APPFONT ( 21 , 55 ) ;
++		Size = MAP_APPFONT ( 24 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Maximum = 99 ;
++		Last = 99 ;
++	};
++    FixedLine FL_HYPHEN
++	{
++		Pos = MAP_APPFONT ( 6 , 3 ) ;
++        Size = MAP_APPFONT ( 248 , 8 ) ;
++		Text [ en-US ] = "Hyphenation" ;
++	};
++    FixedLine FL_OPTIONS
++	{	// is moved one section deeper to not raise unnecessary translations
++		Pos = MAP_APPFONT ( 6 , 116 ) ;
++        Size = MAP_APPFONT ( 248 , 8 ) ;
++		Text [ en-US ] = "Options" ;
++		Group = TRUE ;
++	};
++    FixedLine FL_BREAKS
++	{
++		Pos = MAP_APPFONT ( 6 , 73 ) ;
++        Size = MAP_APPFONT ( 248 , 8 ) ;
++		Text [ en-US ] = "Breaks" ;
++		Group = TRUE ;
++	};
++    TriStateBox BTN_PAGEBREAK
++	{
++		 //			Disable = TRUE;
++        Pos = MAP_APPFONT ( 12 , 86 ) ;
++        Size = MAP_APPFONT ( 61 , 10 ) ;
++		Text [ en-US ] = "Insert" ;
++		Group = TRUE ;
++	};
++    FixedText FT_BREAKTYPE
++    {
++        Pos = MAP_APPFONT ( 75 , 86 ) ;
++        Size = MAP_APPFONT ( 21 , 10 ) ;
++    	Text [ en-US ] = "~Type";
++	};
++    ListBox LB_BREAKTYPE
++    {
++        Border = TRUE ;
++        Pos = MAP_APPFONT ( 98 , 84 ) ;
++        Size = MAP_APPFONT ( 61 , 50 ) ;
++		DropDown = TRUE ;
++	StringList [ en-US ] =
++	{
++		 < "Page" ; 0; > ;
++		< "Column" ; 1; > ;
++	};
++	};
++    FixedText FT_BREAKPOSITION
++    {
++        Pos = MAP_APPFONT ( 163 , 86 ) ;
++        Size = MAP_APPFONT ( 45 , 10 ) ;
++        Right = TRUE;
++    	Text [ en-US ] = "Position";
++	};
++    ListBox LB_BREAKPOSITION
++    {
++        Border = TRUE ;
++        Pos = MAP_APPFONT ( 211 , 84 ) ;
++        Size = MAP_APPFONT ( 40 , 50 ) ;
++		DropDown = TRUE ;
++	StringList [ en-US ] =
++	{
++		 < "Before" ; 0; > ;
++		< "After" ; 1; > ;
++	};
++	};
++    TriStateBox BTN_PAGECOLL
++	{
++		 //			Disable = TRUE;
++        Pos = MAP_APPFONT (21 , 100 ) ;
++		Size = MAP_APPFONT ( 75 , 10 ) ;
++		Text [ en-US ] = "With Page St~yle" ;
++		Group = TRUE ;
++	};
++	ListBox LB_PAGECOLL
++	{
++		 //			Disable = TRUE;
++        Pos = MAP_APPFONT ( 98 , 98 ) ;
++		Size = MAP_APPFONT ( 61 , 50 ) ;
++		DropDown = TRUE ;
++		Sort = TRUE;
++	};
++	FixedText FT_PAGENUM
++	{
++        Pos = MAP_APPFONT ( 163 , 100 ) ;
++        Size = MAP_APPFONT ( 45 , 8 ) ;
++        Right = TRUE ;
++		Text [ en-US ] = "Page ~number" ;
++	};
++	NumericField ED_PAGENUM
++	{
++		Border = TRUE ;
++        Pos = MAP_APPFONT ( 211 , 98 ) ;
++		Size = MAP_APPFONT ( 26 , 12 ) ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 0 ;
++		Maximum = 9999 ;
++		Value = 0 ;
++		First = 0 ;
++		Last = 9999 ;
++	};
++	TriStateBox BTN_KEEPTOGETHER
++	{
++        Pos = MAP_APPFONT ( 12 , 127 ) ;
++        Size = MAP_APPFONT ( 236 , 10 ) ;
++		Text [ en-US ] = "~Do not split paragraph" ;
++		Group = TRUE ;
++	};
++	TriStateBox CB_KEEPTOGETHER
++	{
++        Pos = MAP_APPFONT ( 12, 141 ) ;
++        Size = MAP_APPFONT ( 236 , 10 ) ;
++		Text [ en-US ] = "~Keep with next paragraph" ;
++	};
++	TriStateBox BTN_ORPHANS
++	{
++		Disable = TRUE ;
++        Pos = MAP_APPFONT ( 12 , 155 ) ;
++        Size = MAP_APPFONT ( 120 , 10 ) ;
++		Group = TRUE ;
++		Text [ en-US ] = "~Orphan control";
++	};
++	NumericField ED_ORPHANS
++	{
++		Disable = TRUE ;
++		Border = TRUE ;
++        Pos = MAP_APPFONT ( 134 , 153 ) ;
++		Size = MAP_APPFONT ( 24 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 2 ;
++		Maximum = 9 ;
++		Value = 2 ;
++		First = 2 ;
++		Last = 9 ;
++	};
++	FixedText FT_ORPHANS
++	{
++		Disable = TRUE ;
++        Pos = MAP_APPFONT ( 161 , 155 ) ;
++		Size = MAP_APPFONT ( 86 , 8 ) ;
++		Text [ en-US ] = "Lines" ;
++		Left = TRUE ;
++	};
++	TriStateBox BTN_WIDOWS
++	{
++		Disable = TRUE ;
++        Pos = MAP_APPFONT ( 12 , 169 ) ;
++        Size = MAP_APPFONT ( 120 , 10 ) ;
++		Group = TRUE ;
++		Text [ en-US ] = "~Widow control";
++	};
++	NumericField ED_WIDOWS
++	{
++		Disable = TRUE ;
++		Border = TRUE ;
++        Pos = MAP_APPFONT ( 134 , 167 ) ;
++		Size = MAP_APPFONT ( 24 , 12 ) ;
++		Group = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 2 ;
++		Maximum = 9 ;
++		Value = 2 ;
++		First = 2 ;
++		Last = 9 ;
++	};
++	FixedText FT_WIDOWS
++	{
++		Disable = TRUE ;
++        Pos = MAP_APPFONT ( 161 , 169 ) ;
++		Size = MAP_APPFONT ( 86 , 8 ) ;
++		Text [ en-US ] = "Lines" ;
++		Left = TRUE ;
++	};
++};
++/*-- 29.11.00 11:36:24---------------------------------------------------
++  Asian typography
++  -----------------------------------------------------------------------*/
++TabPage RID_SVXPAGE_PARA_ASIAN
++{
++	HelpId = HID_SVXPAGE_PARA_ASIAN ;
++	Hide = TRUE ;
++	Text [ en-US ] = "Asian Typography";
++	Size = MAP_APPFONT ( 260 , 185 ) ;
++    FixedLine FL_AS_OPTIONS
++	{
++		Pos = MAP_APPFONT ( 6 , 3 ) ;
++        Size = MAP_APPFONT ( 248 , 8 ) ;
++        Text [ en-US ] = "Line change";
++	};
++	TriStateBox CB_AS_FORBIDDEN
++	{
++		Pos = MAP_APPFONT ( 12 , 14 ) ;
++        Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ en-US ] = "Apply list of forbidden characters to the beginning and end of lines";
++	};
++	TriStateBox CB_AS_ALLOW_WORD_BREAK
++	{
++		Pos = MAP_APPFONT ( 12 , 28 ) ;
++        Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ en-US ] = "Allow ~breaks in words in Latin text";
++	};
++	TriStateBox CB_AS_HANG_PUNC
++	{
++		Pos = MAP_APPFONT ( 12 , 42 ) ;
++        Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ en-US ] = "Allow hanging punctuation";
++	};
++    FixedLine FL_AS_CHAR_DIST
++	{
++		Pos = MAP_APPFONT ( 6 , 58 ) ;
++        Size = MAP_APPFONT ( 248 , 8 ) ;
++		Text [ en-US ] = "Character spacing";
++	};
++	TriStateBox CB_AS_PUNCTUATION
++	{
++		Pos = MAP_APPFONT ( 12, 69 ) ;
++        Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ en-US ] = "Allow punctuation at line start";
++	};
++	TriStateBox CB_AS_SCRIPT_SPACE
++	{
++        Pos = MAP_APPFONT ( 12 , 83 ) ;
++        Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ en-US ] = "Apply spacing between Asian, Latin and Complex text";
++	};
++	TriStateBox CB_AS_ADJUST_NUMBERS
++	{
++		Pos = MAP_APPFONT ( 12 , 97 ) ;
++        Size = MAP_APPFONT ( 242 , 10 ) ;
++		Text [ en-US ] = "Automatically adjust space between Asian text and numbers";
++	};
++};
++
++// ********************************************************************** EOF
+Index: toolkit/workben/layout/paragraph.xml
+===================================================================
+RCS file: toolkit/workben/layout/paragraph.xml
+diff -N toolkit/workben/layout/paragraph.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/paragraph.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,77 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        id="dialog" title="Paragraph" optimumsize="true"
++        has_border="true" sizeable="true" moveable="true">
++<vbox>
++	<tabcontrol>
++		<vbox cnt:title="Indents and Spacing">
++			<hbox cnt:expand="false">
++			 	<fixedtext id="FL_INDENT" label="Indent" cnt:expand="false" />
++			 	<fixedline />
++			 </hbox>
++			 <table columns="2" cnt:expand="false">
++			 	<fixedtext id="FT_LEFTINDENT" label="Before text" />
++			 	<metricfield id="ED_LEFTINDENT" spin="true" has_border="true"/>
++			 	<fixedtext id="FT_RIGHTINDENT" label="After text" />
++			 	<metricfield id="ED_RIGHTINDENT" spin="true" has_border="true"/>
++			 	<fixedtext id="FT_FLINEINDENT" label="First line" />
++			 	<metricfield id="ED_FLINEINDENT" spin="true" has_border="true" />
++			 	<checkbox id="CB_AUTO" label="Automatic" cnt:col-span="2" />
++			 </table>
++			<hbox cnt:expand="false">
++			 	<fixedtext id="FL_DIST" label="Spacing" cnt:expand="false" />
++			 	<fixedline />
++			 </hbox>
++			 <table columns="2" cnt:expand="false">
++			 	<fixedtext id="FT_TOPDIST" label="Above paragraph" />
++			 	<numericfield id="ED_TOPDIST" spin="true" has_border="true" />
++			 	<fixedtext id="FT_BOTTOMDIST" label="Below paragraph" />
++			 	<numericfield id="ED_BOTTOMDIST" spin="true" has_border="true" />
++			 </table>
++			<hbox cnt:expand="false">
++			 	<fixedtext id="FL_LINEDIST" label="Line spacing" cnt:expand="false" />
++			 	<fixedline />
++			 </hbox>
++			<hbox cnt:expand="false">
++				<listbox id="LB_LINEDIST" dropdown="true"
++					string-item-list="Single:1.5 lines:Double:Proportional"
++					cnt:expand="false"/>
++				<fixedtext id="FT_LINEDIST" label="of" cnt:expand="true" />
++				<numericfield id="ED_LINEDISTPERCENT" value="0" />
++			</hbox>
++			<hbox id="FL_REGISTER" cnt:expand="false">
++				<fixedtext label="Register-true" cnt:expand="false" />
++				<fixedline />
++			</hbox>
++		 	<checkbox id="CB_REGISTER" cnt:expand="false" label="Activate" />
++		</vbox>
++
++		<vbox cnt:title="Alignment">
++			<hbox cnt:expand="false">
++				<fixedtext id="FL_ALIGN" label="Options" cnt:expand="false" />
++				<fixedline />
++			</hbox>
++		 	<radiobutton id="BTN_LEFTALIGN" label="Left" cnt:expand="false" />
++		 	<radiobutton id="BTN_RIGHTALIGN" label="Right" cnt:expand="false" />
++		 	<radiobutton id="BTN_CENTERALIGN" label="Center" cnt:expand="false" />
++		 	<radiobutton id="BTN_JUSTIFYALIGN" label="Justify" cnt:expand="false" />
++			<hbox cnt:expand="false">
++				<fixedtext id="FL_ALIGN" label="Last line" cnt:expand="false" />
++				<listbox dropdown="true" string-item-list="Left:Centered:Justified"
++				          id="LB_LASTLINE" />
++			</hbox>
++		</vbox>
++	</tabcontrol>
++
++	<align cnt:expand="false">
++		<hbox cnt:expand="false" cnt:hfill="0" cnt:halign="1">
++			<pushbutton label="OK" />
++			<pushbutton label="Cancel" />
++			<pushbutton label="Help" />
++			<pushbutton label="Reset" />
++		</hbox>
++	</align>
++</vbox>
++</dialog>
+Index: toolkit/workben/layout/radio-groups.xml
+===================================================================
+RCS file: toolkit/workben/layout/radio-groups.xml
+diff -N toolkit/workben/layout/radio-groups.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/radio-groups.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,21 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        title="Radio Groups Test"
++        optimumsize="true" has_border="true" sizeable="true" moveable="true">
++	<vbox>
++		<hbox>
++			<radiobutton group="1" label="Group 1"
++			             cnt:expand="false" cnt:fill="false" />
++			<radiobutton group="2" label="Group 2"
++			             cnt:expand="true" cnt:fill="true" />
++			<radiobutton group="2" label="Group 2"
++			             cnt:expand="true" cnt:fill="false" />
++			<radiobutton group="1" label="Group 1 (default)" state="1"
++			             cnt:expand="false" cnt:fill="false" />
++		</hbox>
++		<radiobutton group="1" label="Group 1" state="0"
++		             cnt:expand="false" cnt:fill="false" />
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/refresh
+===================================================================
+RCS file: toolkit/workben/layout/refresh
+diff -N toolkit/workben/layout/refresh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/refresh	15 Feb 2008 09:56:41 -0000	1.1.2.2
+@@ -0,0 +1,3 @@
++echo "source me ..."
++test -n "${INPATH}" && rm -Rf ../../${INPATH}
++build debug=true && cp ../../${INPATH}/lib/*.so ../../../solver/680/${INPATH}/lib && dmake debug=true && ../../${INPATH}/bin/test "$@"
+Index: toolkit/workben/layout/run-s2x
+===================================================================
+RCS file: toolkit/workben/layout/run-s2x
+diff -N toolkit/workben/layout/run-s2x
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/run-s2x	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,6 @@
++#! /bin/sh
++
++SRC=${1-../../svx/source/dialog/zoom.src}
++SRC=${1-../../sw/source/ui/dialog/wordcountdialog.src}
++
++../src2xml/source/src2xml.py --ignore-includes --post-process --output-dir=. $SRC
+Index: toolkit/workben/layout/scroller.xml
+===================================================================
+RCS file: toolkit/workben/layout/scroller.xml
+diff -N toolkit/workben/layout/scroller.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/scroller.xml	8 Feb 2008 18:44:46 -0000	1.1.2.1
+@@ -0,0 +1,32 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        title="Scroll Test" optimumsize="true"
++        has_border="true" sizeable="true" moveable="true">
++	<vbox>
++		<scroller>
++			<vbox>
++				<pushbutton label="Button 1" />
++				<edit has_border="true" text="Edit 1" />
++				<pushbutton label="Button 2" />
++				<pushbutton label="Button 3" />
++				<pushbutton label="Button 4" />
++				<pushbutton label="Button 5" />
++				<pushbutton label="Button 6" />
++				<pushbutton label="Button 7" />
++				<pushbutton label="Button 8" />
++				<pushbutton label="Button 9" />
++				<pushbutton label="Button 10" />
++				<pushbutton label="Button 11" />
++				<pushbutton label="Button 12" />
++				<pushbutton label="Button 13" />
++				<pushbutton label="Button 14" />
++				<pushbutton label="Button 15" />
++				<pushbutton label="Button 16" />
++				<pushbutton label="Button 17" />
++			</vbox>
++		</scroller>
++		<okbutton cnt:expand="false" />
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/sequence.xml
+===================================================================
+RCS file: toolkit/workben/layout/sequence.xml
+diff -N toolkit/workben/layout/sequence.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/sequence.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,13 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<framewindow xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             xmlns:style="http://openoffice.org/2007/layout/style"
++             title="Sequence Test" style:optimumsize="true"
++             style:has_border="true" style:sizeable="true" style:moveable="true">
++		<vbox>
++			<multilistbox linecount="5" string-item-list=":a:b::c:::d::::e:as:"
++			                            selected-items="0:1" />
++			<okbutton cnt:expand="false" />
++		</vbox>
++</framewindow>
+Index: toolkit/workben/layout/shutdown.xml
+===================================================================
+RCS file: toolkit/workben/layout/shutdown.xml
+diff -N toolkit/workben/layout/shutdown.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/shutdown.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,54 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" title="Shutdown Dialog" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox border="5" spacing="5">
++	<fixedline text="Platform default"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton label="~Shutdown"/>
++	    <cancelbutton/>
++	    <pushbutton label="Pause"/>
++	    <pushbutton label="Sleep"/>
++	    <pushbutton label="Restart"/>
++	</dialogbuttonhbox>
++	<fixedline text="GNOME"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="gnome">
++	    <flow/>
++	    <okbutton label="~Shutdown"/>
++	    <cancelbutton/>
++	    <pushbutton label="Pause"/>
++	    <pushbutton label="Sleep"/>
++	    <pushbutton label="Restart"/>
++	</dialogbuttonhbox>
++	<fixedline text="KDE"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="kde">
++	    <flow/>
++	    <okbutton label="~Shutdown"/>
++	    <cancelbutton/>
++	    <pushbutton label="Pause"/>
++	    <pushbutton label="Sleep"/>
++	    <pushbutton label="Restart"/>
++	</dialogbuttonhbox>
++	<fixedline text="MacOS"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="macos">
++	    <flow/>
++	    <okbutton label="~Shutdown"/>
++	    <cancelbutton/>
++	    <pushbutton label="Pause"/>
++	    <pushbutton label="Sleep"/>
++	    <pushbutton label="Restart"/>
++	</dialogbuttonhbox>
++	<fixedline text="Windows"/>
++	<dialogbuttonhbox border="5" spacing="5" ordering="windowsg">
++	    <flow/>
++	    <okbutton label="~Shutdown"/>
++	    <cancelbutton/>
++	    <pushbutton label="Pause"/>
++	    <pushbutton label="Sleep"/>
++	    <pushbutton label="Restart"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/simple-paragraph.cxx
+===================================================================
+RCS file: toolkit/workben/layout/simple-paragraph.cxx
+diff -N toolkit/workben/layout/simple-paragraph.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/simple-paragraph.cxx	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,159 @@
++#ifdef SVX_DLLIMPLEMENTATION
++#undef SVX_DLLIMPLEMENTATION
++#endif
++
++#include <toolkit/awt/vclxwindow.hxx>
++
++// include ---------------------------------------------------------------
++
++#include <stdio.h>
++
++#ifndef _SHL_HXX
++#include <tools/shl.hxx>
++#endif
++#ifndef _SFX_OBJSH_HXX
++#include <sfx2/objsh.hxx>
++#endif
++#ifndef _SV_MSGBOX_HXX //autogen wg. RET_OK, RET_CANCEL
++#include <vcl/msgbox.hxx>
++#endif
++
++#include <stdio.h>
++
++namespace SVX {
++#include <svx/paraprev.hxx>        // Preview
++};
++
++#include "simple-paragraph.hxx"
++
++#include <assert.h>
++
++
++
++
++
++// StandardTabPage ----------------------------------------------------------
++
++#define FT_LEFTINDENT            10
++#define ED_LEFTINDENT            11
++#define FT_FLINEINDENT            12
++#define ED_FLINEINDENT            13
++#define FT_RIGHTINDENT            14
++#define ED_RIGHTINDENT            15
++#define FL_INDENT                       16
++
++#define FT_TOPDIST                      20
++#define ED_TOPDIST                      21
++#define FT_BOTTOMDIST            22
++#define ED_BOTTOMDIST            23
++#define FL_DIST                         24
++
++#define BTN_LEFTALIGN            30
++#define BTN_RIGHTALIGN            31
++#define BTN_CENTERALIGN            32
++#define BTN_JUSTIFYALIGN        33
++#define FL_ALIGN                        34
++#define FL_VERTALIGN                    35
++#define LB_VERTALIGN                    36
++#define FL_VERTEX                       37
++#define CB_SNAP                         38
++#define FT_VERTALIGN                    39
++
++
++#define LB_LINEDIST                     40
++#define FT_LINEDIST                     41
++#define ED_LINEDISTPERCENT        42
++#define ED_LINEDISTMETRIC        43
++#define FL_LINEDIST                     44
++#define WN_EXAMPLE                      46
++
++#define CB_AUTO                         48
++#define FT_LASTLINE                     49
++#define LB_LASTLINE                     50
++#define CB_EXPAND                       51
++#define ST_LINEDIST_ABS                 52
++#define ST_LEFTALIGN_ASIAN              53
++#define ST_RIGHTALIGN_ASIAN             54
++
++// ExtendedTabPage ----------------------------------------------------------
++
++#define BTN_HYPHEN                      50
++#define ED_HYPHENBEFORE            52
++#define FT_HYPHENBEFORE            53
++#define ED_HYPHENAFTER            55
++#define FT_HYPHENAFTER            56
++#define FL_HYPHEN                       57
++
++#define BTN_PAGEBREAK            60
++#define FT_BREAKTYPE            61
++#define LB_BREAKTYPE            62
++#define FT_BREAKPOSITION        63
++#define LB_BREAKPOSITION        64
++#define BTN_PAGECOLL            65
++#define LB_PAGECOLL                     66
++#define BTN_KEEPTOGETHER        67
++#define BTN_WIDOWS                      68
++#define ED_WIDOWS                       69
++#define FT_WIDOWS                       70
++#define BTN_ORPHANS                     71
++#define ED_ORPHANS                      72
++#define FT_ORPHANS                      73
++#define FL_OPTIONS                      74
++#define FT_PAGENUM                      75
++#define ED_PAGENUM                      76
++#define FL_BREAKS                        77
++
++#define CB_KEEPTOGETHER                 80
++#define FT_MAXHYPH                      81
++#define ED_MAXHYPH                      83
++
++#define CB_REGISTER                     84
++#define FL_REGISTER                     85
++#define FL_PROPERTIES                   90
++#define FT_TEXTDIRECTION                91
++#define LB_TEXTDIRECTION                92
++
++
++//asian typography
++#define FL_AS_OPTIONS                   1
++#define CB_AS_HANG_PUNC                 2
++#define CB_AS_ALLOW_WORD_BREAK          3
++#define CB_AS_FORBIDDEN                 4
++#define FL_AS_CHAR_DIST                 5
++#define CB_AS_PUNCTUATION               6
++#define CB_AS_SCRIPT_SPACE                7
++#define CB_AS_ADJUST_NUMBERS            8
++
++
++
++
++
++
++
++
++SvxSimpleParagraphDialog::SvxSimpleParagraphDialog( Window* pParent ) :
++    SfxTabPage( pParent, SVX_RES( RID_SVXPAGE_STD_PARAGRAPH ), rAttr ),
++    Dialog( pParent, "simple-paragraph.xml", "dialog" ),
++    aLineSpacingList( this, "line-spacing-list" )
++{
++fprintf(stderr, "creating res mgr\n");
++    pMgr = ResMgr::CreateResMgr("SOME_NAME");
++fprintf(stderr, "getting parent\n");
++    VCLXWindow *pCompParent = VCLXWindow::GetImplementation( GetPeer() );
++    assert( pCompParent != NULL );
++    assert( pCompParent->GetWindow() != NULL );
++fprintf(stderr, "creating foreign vcl widget\n");
++/*    pPrevWin = new SVX::SvxParaPrevWindow(
++        pCompParent->GetWindow(),
++        ResId(1234, *pMgr)
++        );*/
++
++fprintf(stderr, "done\n");
++    FreeResource();
++}
++
++// -----------------------------------------------------------------------
++
++SvxSimpleParagraphDialog::~SvxSimpleParagraphDialog()
++{
++}
+Index: toolkit/workben/layout/simple-paragraph.hxx
+===================================================================
+RCS file: toolkit/workben/layout/simple-paragraph.hxx
+diff -N toolkit/workben/layout/simple-paragraph.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/simple-paragraph.hxx	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,25 @@
++#ifndef _SVX_SIMPLE_PARAGRAPH_HXX
++#define _SVX_SIMPLE_PARAGRAPH_HXX
++
++#include <layout/layout.hxx>
++
++#include <svx/paraprev.hxx>        // Preview
++
++namespace SVX {
++    class SvxParaPrevWindow;
++};
++class ResMgr;
++
++class SvxSimpleParagraphDialog : public SfxTabPage, public layout::Dialog
++{
++private:
++    ListBox aLineSpacingList;
++    SVX::SvxParaPrevWindow *pPrevWin;
++    ResMgr *pMgr;
++
++public:
++    SvxSimpleParagraphDialog( Window* pParent );
++    ~SvxSimpleParagraphDialog();
++};
++
++#endif
+Index: toolkit/workben/layout/simple-paragraph.xml
+===================================================================
+RCS file: toolkit/workben/layout/simple-paragraph.xml
+diff -N toolkit/workben/layout/simple-paragraph.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/simple-paragraph.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,11 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        id="dialog" title="Paragraph test" optimumsize="true"
++        has_border="true" sizeable="true" moveable="true">
++	<vbox>
++		<listbox id="line-spacing-list" dropdown="true" cnt:expand="false"
++		         string-item-list="Single:1.5 lines:Double:Proportional" />
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/splitter.xml
+===================================================================
+RCS file: toolkit/workben/layout/splitter.xml
+diff -N toolkit/workben/layout/splitter.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/splitter.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,13 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Splitter Test" optimumsize="true" has_border="true" sizeable="true" moveable="true">
++	<vbox>
++		<hsplitter>
++			<pushbutton label="Left" />
++			<pushbutton label="Right" />
++		</hsplitter>
++		<okbutton cnt:expand="false" />
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/tabcontrol.xml
+===================================================================
+RCS file: toolkit/workben/layout/tabcontrol.xml
+diff -N toolkit/workben/layout/tabcontrol.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/tabcontrol.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,18 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++        xmlns:cnt="http://openoffice.org/2007/layout/container"
++        title="TabControl Test" optimumsize="true"
++        has_border="true" sizeable="true" moveable="true">
++	<vbox>
++		<tabcontrol>
++-			<pushbutton label="Child 1" cnt:title="Page 1" />
++			<edit has_border="true" text="Child 2" cnt:title="Page 2" />
++			<vbox cnt:title="Page 3">
++				<pushbutton label="Child 3"/>
++				<edit has_border="true" text="Child 4" />
++			</vbox>
++		</tabcontrol>
++		<okbutton cnt:expand="false" />
++	</vbox>
++</dialog>
+Index: toolkit/workben/layout/table.xml
+===================================================================
+RCS file: toolkit/workben/layout/table.xml
+diff -N toolkit/workben/layout/table.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/table.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,15 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Table Test" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++	<table columns="3">
++		<!-- row 0 -->
++		<pushbutton cnt:x-expand="false" cnt:row-span="2" label="1,1" />
++		<pushbutton cnt:y-expand="false" label="1,2" />
++		<pushbutton cnt:y-expand="false" label="1,3" />
++		<!-- row 1 -->
++		<pushbutton cnt:col-span="2" label="2,1" />
++	</table>
++</dialog>
+Index: toolkit/workben/layout/test.cxx
+===================================================================
+RCS file: toolkit/workben/layout/test.cxx
+diff -N toolkit/workben/layout/test.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/test.cxx	19 Feb 2008 09:58:53 -0000	1.1.2.3
+@@ -0,0 +1,286 @@
++#include <vcl/svapp.hxx>
++//#include <transex3/vosapp.hxx>
++
++// This works and was used before for standalone test, not sure why
++// we'd want it.
++#define LAYOUT_WEAK 1
++#include "uno.hxx"
++
++#include <cstdio>
++#include <osl/file.h>
++
++#include <rtl/ustring.hxx>
++#include <cppuhelper/bootstrap.hxx>
++
++#include <ucbhelper/contentbroker.hxx>
++#include <ucbhelper/configurationkeys.hxx>
++
++#include <comphelper/processfactory.hxx>
++#include <com/sun/star/xml/sax/SAXException.hpp>
++
++#include "editor.hxx"
++
++#include "wordcountdialog.hxx"
++#undef _LAYOUT_POST_HXX
++#include "zoom.hxx"
++#undef _LAYOUT_POST_HXX
++
++//#undef SW_WORDCOUNTDIALOG_HXX
++#include <layout/layout-pre.hxx>
++
++using namespace ::rtl;
++using namespace ::cppu;
++using namespace ::com::sun::star;
++using namespace ::com::sun::star::uno;
++
++Reference< XComponentContext > createInitialComponentContext(
++    OUString const & inst_dir )
++{
++    Reference< XComponentContext > xContext;
++    
++    try
++    {
++        OUString file_url;
++        oslFileError rc = osl_getFileURLFromSystemPath(
++            inst_dir.pData, &file_url.pData );
++        OSL_ASSERT( osl_File_E_None == rc );
++        (void) rc;  // quiet warning
++        
++        OUString unorc = file_url + OUString(
++            OUString::createFromAscii( "/program/" SAL_CONFIGFILE( "uno" )) );
++        
++        return defaultBootstrap_InitialComponentContext( unorc );
++    }
++    
++    catch( Exception& rExc )
++    {
++        OString aStr( OUStringToOString( rExc.Message,
++                                         RTL_TEXTENCODING_ASCII_US ) );
++        OSL_ENSURE( 0, aStr.getStr() );
++    }
++    
++    return xContext;
++}
++
++
++// -----------------------------------------------------------------------
++
++class LayoutTest : public Application
++{
++    Reference< XComponentContext > mxContext;
++    Reference< lang::XMultiServiceFactory > mxMSF;
++    OUString mInstallDir;
++    OUString mTestDialog;
++    bool mEditMode;
++    std::list< OUString > mFiles;
++
++public:
++    LayoutTest( char const* installDir );
++
++    void RunEditor();
++    void RunFiles();
++    void ExceptionalMain();
++    void IInit();
++    void InitUCB();
++    void LoadFile( OUString const &aName );
++    void Main();
++    void ParseCommandLine();
++};
++
++static void usage()
++{
++    fprintf (stderr, "usage: test [--inst inst_dir] [DIALOG.XML]... | --test [DIALOG.XML]\n" );
++    exit( 2 );
++}
++
++void LayoutTest::LoadFile( const OUString &aTestFile )
++{
++    fprintf( stderr, "TEST: layout instance\n" );
++
++    uno::Reference< lang::XSingleServiceFactory > xFactory(
++        comphelper::createProcessComponent(
++            rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
++        uno::UNO_QUERY );
++    if ( !xFactory.is() )
++    {
++        fprintf( stderr, "Layout engine not installed\n" );
++        throw uno::RuntimeException(
++            rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Layout engine not installed" ) ),
++            uno::Reference< uno::XInterface >() );
++    }
++    fprintf( stderr, "TEST: initing root\n" );
++
++    uno::Sequence< uno::Any > aParams( 1 );
++    aParams[0] <<= aTestFile;
++
++    uno::Reference< awt::XLayoutRoot > xRoot (
++        xFactory->createInstanceWithArguments( aParams ),
++        uno::UNO_QUERY );
++
++    fprintf( stderr, "TEST: file loaded\n" );
++}
++
++// Nurgh ...
++void LayoutTest::InitUCB()
++{
++    OUString aEmpty;
++    Sequence< Any > aArgs(6);
++    aArgs[0]
++        <<= OUString::createFromAscii(UCB_CONFIGURATION_KEY1_LOCAL);
++    aArgs[1]
++        <<= OUString::createFromAscii(UCB_CONFIGURATION_KEY2_OFFICE);
++    aArgs[2] <<= OUString::createFromAscii( "PIPE" );
++    aArgs[3] <<= aEmpty;
++    aArgs[4] <<= OUString::createFromAscii( "PORTAL" );
++    aArgs[5] <<= aEmpty;
++
++    if (! ::ucbhelper::ContentBroker::initialize( mxMSF, aArgs ) )
++        fprintf( stderr, "Failed to init content broker\n" );
++}
++
++#define INIT_ENV_VOODOO( installDir )                                   \
++    /* Unless you do this, obviously you don't deserve to have anything work */ \
++    OString aCfg = "CFG_INIFILE=file://"                                \
++                 + OUStringToOString( installDir, RTL_TEXTENCODING_UTF8 ) \
++                 + "/program/configmgrrc";                              \
++    putenv( (char *)aCfg.getStr() );                                    \
++    /* Unless you do this, obviously you don't want your paths to be correct & \
++       hence no images.zip location is possible. */                     \
++    OString aBaseInst = "BaseInstallation=file://"                      \
++                 + OUStringToOString( installDir, RTL_TEXTENCODING_UTF8 ); \
++    putenv( (char *)aBaseInst.getStr() );                               \
++
++void LayoutTest::IInit()
++{
++    INIT_ENV_VOODOO( mInstallDir );
++    mxContext = createInitialComponentContext( mInstallDir );
++    mxMSF = new UnoBootstrapLayout( Reference< lang::XMultiServiceFactory >( mxContext->getServiceManager(), UNO_QUERY ) );
++    ::comphelper::setProcessServiceFactory( mxMSF );
++    InitUCB();
++}
++
++void LayoutTest::ParseCommandLine()
++{
++    for ( int i = 0; i < GetCommandLineParamCount(); i++ )
++    {
++        OUString aParam = OUString( GetCommandLineParam( i ) );
++        if ( aParam.equalsAscii( "-h" ) || aParam.equalsAscii( "--help" ) )
++            usage();
++        if ( aParam.equalsAscii( "--inst" ) )
++        {
++            if ( i >= GetCommandLineParamCount() - 1)
++                usage();
++            mInstallDir = GetCommandLineParam( ++i );
++        }
++        else if ( aParam.equalsAscii( "--test" ) )
++        {
++            mTestDialog = OUString::createFromAscii( "zoom" );
++            if (i + 1 < GetCommandLineParamCount())
++                mTestDialog = GetCommandLineParam( ++i );
++        }
++        else if ( aParam.equalsAscii( "--editor" ) )
++            mEditMode = true;
++        else
++            mFiles.push_back( aParam );
++    }
++
++    if ( mFiles.size() <= 0 )
++        mFiles.push_back( OUString::createFromAscii( "layout.xml" ) );
++}    
++
++void LayoutTest::RunEditor()
++{
++    OUString aFile;
++    if ( !mFiles.empty()
++        && mFiles.front().compareToAscii( "layout.xml" ) != 0 )
++        aFile = mFiles.front();
++    Editor editor( mxMSF, aFile );
++    editor.Show();
++    editor.Execute();
++}
++
++void RunDialog( layout::Dialog& dialog )
++{
++    dialog.Show();
++    dialog.Execute();
++    fprintf( stderr, "1st execute exited" );
++    dialog.Execute();
++    fprintf( stderr, "2nd execute exited" );
++}
++
++void TestDialog( OUString const& name )
++{
++    if ( name.equalsAscii( "zoom" ) )
++    {
++        SvxZoomDialog zoom( 0 );
++        RunDialog( zoom );
++    }
++    else if ( name.equalsAscii( "wordcount" ) )
++    {
++        SwWordCountDialog words ( 0 );
++        RunDialog( words );
++    }
++}
++
++void LayoutTest::RunFiles()
++{
++    fprintf( stderr, "TEST: loading files\n" );
++    for ( std::list< OUString >::iterator  i = mFiles.begin(); i != mFiles.end(); i++ )
++        LoadFile( *i );
++    fprintf( stderr, "TEST: executing\n" );
++    Execute(); 
++    fprintf( stderr, "TEST: done executing\n" );
++}
++
++void LayoutTest::ExceptionalMain()
++{
++    ParseCommandLine();
++    IInit();
++    INIT_ENV_VOODOO( mInstallDir );
++
++    if ( mTestDialog.getLength() )
++        TestDialog( mTestDialog );
++    else if ( mEditMode )
++        RunEditor();
++    else
++        RunFiles();
++}
++
++void LayoutTest::Main()
++{
++    try
++    {
++        ExceptionalMain();
++    }
++    catch (xml::sax::SAXException & rExc)
++    {
++        OString aStr( OUStringToOString( rExc.Message,
++                                         RTL_TEXTENCODING_ASCII_US ) );
++        uno::Exception exc;
++        if (rExc.WrappedException >>= exc)
++        {
++            aStr += OString( " >>> " );
++            aStr += OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US );
++        }
++        fprintf (stderr, "Parsing error: '%s'\n", aStr.getStr());
++        OSL_ENSURE( 0, aStr.getStr() );
++    }
++    catch ( uno::Exception & rExc )
++    {
++        OString aStr( OUStringToOString( rExc.Message,
++                                         RTL_TEXTENCODING_ASCII_US ) );
++        fprintf (stderr, "UNO error: '%s'\n", aStr.getStr());
++        OSL_ENSURE( 0, aStr.getStr() );
++    }
++
++    Reference< lang::XComponent > xComp( mxContext, UNO_QUERY );
++    if ( xComp.is() )
++        xComp->dispose();
++}
++
++LayoutTest::LayoutTest( char const* installDir )
++    : mInstallDir( OUString::createFromAscii ( installDir ) )
++{
++}
++
++LayoutTest lt( "/usr/local/lib/ooo" );
+Index: toolkit/workben/layout/test.xml
+===================================================================
+RCS file: toolkit/workben/layout/test.xml
+diff -N toolkit/workben/layout/test.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/test.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,12 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<dialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             title="Interactable Containers" optimumsize="true"
++             has_border="true" sizeable="true" moveable="true">
++	<tabcontrol>
++		<tabpage cnt:title="Page">
++			<pushbutton label="Test" />
++		</tabpage>
++	</tabcontrol>
++</dialog>
+Index: toolkit/workben/layout/un-test.sh
+===================================================================
+RCS file: toolkit/workben/layout/un-test.sh
+diff -N toolkit/workben/layout/un-test.sh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/un-test.sh	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,14 @@
++#! /bin/sh
++
++# un-test.sh: remove TEST_LAYOUT code from OO.o implementation
++
++sed -e 's!^#!@!' < $1\
++    -e 's!$! /*$*/!' \
++    -e 's!^@\(.*TEST_LAYOUT\)!#\1!'\
++    | tee i \
++    | cpp -traditional -C -CC -DNON_LAYOUT_COMPILE_FIXES=1 \
++    | grep -F '/*$*/' \
++    | sed -e 's! /\*\$\*/!!' \
++    -e 's!^@!#!' \
++    -e 's!#define 1 1!#define NON_LAYOUT_COMPILE_FIXES 1!'
++
+Index: toolkit/workben/layout/uno.hxx
+===================================================================
+RCS file: toolkit/workben/layout/uno.hxx
+diff -N toolkit/workben/layout/uno.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/uno.hxx	11 Feb 2008 15:13:38 -0000	1.1.2.2
+@@ -0,0 +1,79 @@
++#ifndef _LAYOUT_UNO_HXX
++#define _LAYOUT_UNO_HXX
++
++#include <stdio.h>
++#include <com/sun/star/lang/XComponent.hpp>
++#include <com/sun/star/lang/XInitialization.hpp>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++
++#include "root.hxx"
++#include "factory.hxx"
++
++#if LAYOUT_WEAK
++#include <cppuhelper/implbase1.hxx>
++class UnoBootstrapLayout : public ::cppu::WeakImplHelper1< com::sun::star::lang::XMultiServiceFactory >
++#else /* !LAYOUT_WEAK */
++class UnoBootstrapLayout : public com::sun::star::lang::XMultiServiceFactory
++#endif /* LAYOUT_WEAK */
++{
++public:
++    com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > mxMSF;
++    UnoBootstrapLayout( com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > xMSF )
++        : mxMSF( xMSF )
++    {
++        fprintf( stderr, "UnoBootstrap Layout\n" );
++    }
++    virtual com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL
++    createInstance( const rtl::OUString& aServiceSpecifier ) throw (com::sun::star::uno::Exception, com::sun::star::uno::RuntimeException)
++    {
++        if ( aServiceSpecifier.equalsAscii( "com.sun.star.awt.Layout" ) )
++        {
++            fprintf( stderr, "UnoBootstrapLayout: create service '%s'\n",
++                     rtl::OUStringToOString (aServiceSpecifier, RTL_TEXTENCODING_UTF8 ).getStr() );
++            return com::sun::star::uno::Reference< com::sun::star::lang::XSingleServiceFactory >( new ::LayoutFactory( this ) );
++        }
++        else
++        {
++            fprintf( stderr, "UnoBootstrapLayout: create service '%s'\n",
++                     rtl::OUStringToOString (aServiceSpecifier, RTL_TEXTENCODING_UTF8 ).getStr() );
++            try
++            {
++                return mxMSF->createInstance( aServiceSpecifier );
++            }
++            catch ( const com::sun::star::uno::Exception &rExc )
++            {
++                rtl::OString aStr( rtl::OUStringToOString( rExc.Message, RTL_TEXTENCODING_ASCII_US ) );
++                fprintf( stderr, "service construction exception '%s'\n", aStr.getStr());
++                throw rExc;
++            }
++        }
++    }
++    virtual com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL
++    createInstanceWithArguments( const rtl::OUString& ServiceSpecifier, const com::sun::star::uno::Sequence< com::sun::star::uno::Any >& Arguments ) throw (com::sun::star::uno::Exception, com::sun::star::uno::RuntimeException)
++    {
++        return mxMSF->createInstanceWithArguments( ServiceSpecifier, Arguments );
++    }
++    virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
++    getAvailableServiceNames() throw (com::sun::star::uno::RuntimeException)
++    {
++        return mxMSF->getAvailableServiceNames();
++    }
++
++#if !LAYOUT_WEAK
++    // XInterface
++    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
++    {
++        return mxMSF->queryInterface( rType );
++    }
++    virtual void SAL_CALL acquire() throw()
++    {
++        mxMSF->acquire();
++    }
++    virtual void SAL_CALL release() throw()
++    {
++        mxMSF->release();
++    }
++#endif /* !LAYOUT_WEAK */
++};
++
++#endif /* _LAYOUT_UNO_HXX */
+Index: toolkit/workben/layout/wordcount-plain.xml
+===================================================================
+RCS file: toolkit/workben/layout/wordcount-plain.xml
+diff -N toolkit/workben/layout/wordcount-plain.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/wordcount-plain.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,29 @@
++
++
++<modaldialog sizeable="true" height="108" help-id="HID_DLG_WORDCOUNT" moveable="true" output-size="true" id="DLG_WORDCOUNT" sv-look="true" text="Word Count" width="170" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
++    <vbox>
++        <fixedline height="8" id="FL_CURRENT" text="Current selection" width="158" x="6" y="3"/>
++        <hbox>
++            <fixedtext height="8" id="FT_CURRENTWORD" label="Words:" width="80" x="12" y="14"/>
++            <fixedtext height="8" id="FI_CURRENTWORD" right="true" width="50" x="111" y="14"/>
++        </hbox>
++        <hbox>
++            <fixedtext height="8" id="FT_CURRENTCHARACTER" label="Characters:" width="80" x="12" y="26"/>
++            <fixedtext height="8" id="FI_CURRENTCHARACTER" right="true" width="50" x="111" y="26"/>
++        </hbox>
++        <fixedline height="8" id="FL_DOC" text="Whole document" width="158" x="6" y="40"/>
++        <hbox>
++            <fixedtext height="8" id="FT_DOCWORD" label="Words:" width="80" x="12" y="51"/>
++            <fixedtext height="8" id="FI_DOCWORD" right="true" width="50" x="111" y="51"/>
++        </hbox>
++        <hbox>
++            <fixedtext height="8" id="FT_DOCCHARACTER" label="Characters:" width="80" x="12" y="63"/>
++            <fixedtext height="8" id="FI_DOCCHARACTER" right="true" width="50" x="111" y="63"/>
++        </hbox>
++        <fixedline height="8" id="FL_BOTTOM" width="158" x="6" y="77"/>
++        <hbox>
++            <okbutton def-button="true" height="14" id="PB_OK" width="50" x="61" y="88"/>
++            <helpbutton height="14" id="PB_HELP" width="50" x="114" y="88"/>
++        </hbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/wordcount-tight.xml
+===================================================================
+RCS file: toolkit/workben/layout/wordcount-tight.xml
+diff -N toolkit/workben/layout/wordcount-tight.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/wordcount-tight.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,35 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++	     xmlns:cnt="http://openoffice.org/2007/layout/container"
++	     help-id="HID_DLG_WORDCOUNT"
++	     id="dialog"
++	     sizeable="true" moveable="true" optimumsize="true"
++	     has_border="true" sv-look="true" title="Word Count">
++    <vbox border="5" spacing="5">
++        <fixedline id="FL_CURRENT" text="Current selection"/>
++        <hbox>
++	    <fixedtext id="FT_CURRENTWORD" label="Words:" cnt:padding="13"/>
++	    <fixedinfo id="FI_CURRENTWORD" right="true" label="0" cnt:padding="13"/>
++        </hbox>
++        <hbox>
++	    <fixedtext id="FT_CURRENTCHARACTER" label="Characters:" cnt:padding="13"/>
++	    <fixedinfo id="FI_CURRENTCHARACTER" right="true" label="00" cnt:padding="13"/>
++        </hbox>
++        <fixedline id="FL_DOC" text="Whole document"/>
++        <hbox>
++	    <fixedtext id="FT_DOCWORD" label="Words:" cnt:padding="13"/>
++	    <fixedinfo id="FI_DOCWORD" right="true" label="000" cnt:padding="13"/>
++        </hbox>
++        <hbox>
++	    <fixedtext id="FT_DOCCHARACTER" label="Characters:" cnt:padding="13"/>
++	    <fixedinfo id="FI_DOCCHARACTER" right="true" label="0000" cnt:padding="13"/>
++        </hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++        <hbox border="5">
++	    <flow homogeneous="true"/>
++	    <okbutton id="PB_OK" cnt:expand="false" default="true"/>
++	    <helpbutton id="PB_HELP" cnt:expand="false"/>
++        </hbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/wordcount.xml
+===================================================================
+RCS file: toolkit/workben/layout/wordcount.xml
+diff -N toolkit/workben/layout/wordcount.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/wordcount.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,47 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             help-id="HID_DLG_WORDCOUNT"
++             id="dialog"
++             sizeable="true" moveable="true" optimumsize="true"
++             has_border="true" sv-look="true" _title="Word Count">
++    <vbox border="5" spacing="5">
++        <fixedline id="FL_CURRENT" _text="Current selection"/>
++	<hbox>
++	    <vbox cnt:padding="13" spacing="5">
++		<hbox>
++		    <fixedtext id="FT_CURRENTWORD" _label="Words:"/>
++		    <flow cnt:padding="60"/>
++		    <fixedtext id="FI_CURRENTWORD" right="true" _label="0"/>
++		</hbox>
++		<hbox>
++		    <fixedtext id="FT_CURRENTCHARACTER" _label="Characters:"/>
++		    <flow cnt:padding="60"/>
++		    <fixedtext id="FI_CURRENTCHARACTER" right="true" _label="00"/>
++		</hbox>
++	    </vbox>
++	</hbox>
++	<!-- if we could do cnt:cnt:padding="-13" here, we would not have to close
++	     and reope the hbox/vbox thing !-->
++        <fixedline id="FL_DOC" _text="Whole document"/>
++	<hbox>
++	    <vbox cnt:padding="13" spacing="5">
++		<hbox>
++		    <fixedtext id="FT_DOCWORD" _label="Words:"/>
++		    <fixedtext id="FI_DOCWORD" right="true" _label="000"/>
++		</hbox>
++		<hbox>
++		    <fixedtext id="FT_DOCCHARACTER" _label="Characters:"/>
++		    <fixedtext id="FI_DOCCHARACTER" right="true" _label="0000"/>
++		</hbox>
++	    </vbox>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox spacing="5">
++            <flow/>
++            <okbutton id="PB_OK"/>
++            <helpbutton id="PB_HELP"/>
++        </dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/wordcountdialog.cxx
+===================================================================
+RCS file: toolkit/workben/layout/wordcountdialog.cxx
+diff -N toolkit/workben/layout/wordcountdialog.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/wordcountdialog.cxx	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,110 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#if !TEST_LAYOUT
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_sw.hxx"
++#ifdef SW_DLLIMPLEMENTATION
++#undef SW_DLLIMPLEMENTATION
++#endif
++
++#ifndef _SWTYPES_HXX
++#include <swtypes.hxx>
++#endif
++#endif /* !TEST_LAYOUT */
++#ifndef SW_WORDCOUNTDIALOG_HXX
++#include <wordcountdialog.hxx>
++#endif
++#if !TEST_LAYOUT
++#ifndef _DOCSTAT_HXX
++#include <docstat.hxx>
++#endif
++
++#include <dialog.hrc>
++#endif /* !TEST_LAYOUT */
++#include <layout/layout-pre.hxx>
++#if !TEST_LAYOUT
++#include <wordcountdialog.hrc>
++#endif /* !TEST_LAYOUT */
++
++/*-- 06.04.2004 16:05:55---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++SwWordCountDialog::SwWordCountDialog(Window* pParent) :
++    SfxModalDialog(pParent, SW_RES(DLG_WORDCOUNT)),
++#if defined _MSC_VER
++#pragma warning (disable : 4355)
++#endif
++    aCurrentFL( this, SW_RES(              FL_CURRENT            )),
++    aCurrentWordFT( this, SW_RES(          FT_CURRENTWORD        )),
++    aCurrentWordFI( this, SW_RES(          FI_CURRENTWORD        )),
++    aCurrentCharacterFT( this, SW_RES(     FT_CURRENTCHARACTER   )),
++    aCurrentCharacterFI( this, SW_RES(     FI_CURRENTCHARACTER   )),
++
++    aDocFL( this, SW_RES(                  FL_DOC                )),
++    aDocWordFT( this, SW_RES(              FT_DOCWORD            )),
++    aDocWordFI( this, SW_RES(              FI_DOCWORD            )),
++    aDocCharacterFT( this, SW_RES(         FT_DOCCHARACTER       )),
++    aDocCharacterFI( this, SW_RES(         FI_DOCCHARACTER       )),
++    aBottomFL(this, SW_RES(                FL_BOTTOM             )),
++    aOK( this, SW_RES(                     PB_OK                 )),
++    aHelp( this, SW_RES(                   PB_HELP               ))
++#if defined _MSC_VER
++#pragma warning (default : 4355)
++#endif
++{
++    FreeResource();
++}
++/*-- 06.04.2004 16:05:56---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++SwWordCountDialog::~SwWordCountDialog()
++{
++}
++/*-- 06.04.2004 16:05:57---------------------------------------------------
++
++  -----------------------------------------------------------------------*/
++void  SwWordCountDialog::SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc)
++{
++#if !TEST_LAYOUT
++    aCurrentWordFI.SetText(     String::CreateFromInt32(rCurrent.nWord ));
++    aCurrentCharacterFI.SetText(String::CreateFromInt32(rCurrent.nChar ));
++    aDocWordFI.SetText(         String::CreateFromInt32(rDoc.nWord ));
++    aDocCharacterFI.SetText(    String::CreateFromInt32(rDoc.nChar ));
++#endif /* !TEST_LAYOUT */
++}
++
++
++
+Index: toolkit/workben/layout/wordcountdialog.hxx
+===================================================================
+RCS file: toolkit/workben/layout/wordcountdialog.hxx
+diff -N toolkit/workben/layout/wordcountdialog.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/wordcountdialog.hxx	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,77 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef SW_WORDCOUNTDIALOG_HXX
++#define SW_WORDCOUNTDIALOG_HXX
++#ifndef _BASEDLGS_HXX 
++#include <sfx2/basedlgs.hxx>
++#endif
++#ifndef _STDCTRL_HXX 
++#include <svtools/stdctrl.hxx>
++#endif
++#ifndef _SV_BUTTON_HXX
++#include <vcl/button.hxx>
++#endif
++#include <layout/layout.hxx>
++#include <layout/layout-pre.hxx>
++struct SwDocStat;
++class SwWordCountDialog : public SfxModalDialog
++{
++    FixedLine       aCurrentFL;
++    FixedText       aCurrentWordFT;
++    FixedInfo       aCurrentWordFI;
++    FixedText       aCurrentCharacterFT;
++    FixedInfo       aCurrentCharacterFI;
++
++    FixedLine       aDocFL;
++    FixedText       aDocWordFT;
++    FixedInfo       aDocWordFI;
++    FixedText       aDocCharacterFT;
++    FixedInfo       aDocCharacterFI;
++
++    FixedLine       aBottomFL;
++
++    OKButton        aOK;
++    HelpButton      aHelp;
++
++public:    
++    SwWordCountDialog(Window* pParent);
++    ~SwWordCountDialog();
++
++    void    SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc);
++};
++
++#include <layout/layout-post.hxx>
++
++#endif
+Index: toolkit/workben/layout/zoom-1.xml
+===================================================================
+RCS file: toolkit/workben/layout/zoom-1.xml
+diff -N toolkit/workben/layout/zoom-1.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom-1.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,38 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" optimumsize="true"
++	     help-id="SID_ATTR_ZOOM"
++             has_border="true" sizeable="true" moveable="true">
++     <title id="tit" xml-lang="en-US">Set Zoom</title>
++     <vbox spacing="5" border="5">
++        <fixedline id="FL_ZOOM" cnt:expand="true" xml-lang="en-US">Zoom factor</fixedline>
++    <radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" xml-lang="en-US">Whole Page</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" xml-lang="en-US">Page Width</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_OPTIMAL"  xml-lang="en-US">Optimal</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_200"  xml-lang="en-US">200 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_150"  xml-lang="en-US">15~0 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_100"  xml-lang="en-US">100 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_75"   xml-lang="en-US">75 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_50"   xml-lang="en-US">50 %</radiobutton>
++	<hbox cnt:expand="false" cnt:fill="true">
++	    <align cnt:expand="false" cnt:fill="true">
++            <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" xml-lang="en-US">Variable</radiobutton>
++	    </align>
++	    <flow cnt:padding="10" cnt:expand="false"/>
++	    <metricfield id="ED_USER" value-step="1"
++			 repeat="true" has_border="true" spin="true"
++			 text="100%" unit="13" custom-unit-text="%"
++			 right="true"
++			 cnt:expand="false"/>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton     id="BTN_ZOOM_OK"/>
++	    <cancelbutton id="BTN_ZOOM_CANCEL"/>
++	    <helpbutton   id="BTN_ZOOM_HELP"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/zoom-2.xml
+===================================================================
+RCS file: toolkit/workben/layout/zoom-2.xml
+diff -N toolkit/workben/layout/zoom-2.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom-2.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,39 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" optimumsize="true"
++	     help-id="SID_ATTR_ZOOM"
++             has_border="true" sizeable="true" moveable="true"
++	     xml-lang="en-US">
++     Set Zoom
++     <vbox spacing="5" border="5">
++        <fixedline id="FL_ZOOM" cnt:expand="true" xml-lang="en-US">Zoom factor</fixedline>
++    <radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" xml-lang="en-US">Whole Page</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" xml-lang="en-US">Page Width</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_OPTIMAL"  xml-lang="en-US">Optimal</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_200"  xml-lang="en-US">200 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_150"  xml-lang="en-US">15~0 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_100"  xml-lang="en-US">100 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_75"   xml-lang="en-US">75 %</radiobutton>
++    <radiobutton radiogroup="zoom" id="BTN_50"   xml-lang="en-US">50 %</radiobutton>
++	<hbox cnt:expand="false" cnt:fill="true">
++	    <align cnt:expand="false" cnt:fill="true">
++            <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" xml-lang="en-US">Variable</radiobutton>
++	    </align>
++	    <flow cnt:padding="10" cnt:expand="false"/>
++	    <metricfield id="ED_USER" value-step="1"
++			 repeat="true" has_border="true" spin="true"
++			 text="100%" unit="13" custom-unit-text="%"
++			 right="true"
++			 cnt:expand="false"/>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton     id="BTN_ZOOM_OK"/>
++	    <cancelbutton id="BTN_ZOOM_CANCEL"/>
++	    <helpbutton   id="BTN_ZOOM_HELP"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/zoom-indent.xml
+===================================================================
+RCS file: toolkit/workben/layout/zoom-indent.xml
+diff -N toolkit/workben/layout/zoom-indent.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom-indent.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,41 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" title="Set Zoom" optimumsize="true"
++	     help-id="SID_ATTR_ZOOM"
++             has_border="true" sizeable="true" moveable="true">
++    <hbox border="5" spacing="0">
++        <vbox spacing="0">
++	    <fixedline id="FixedLine" text="Zoom factor" cnt:expand="true"/>
++	    <hbox> <!-- for left margin !-->
++		<vbox cnt:padding="13" spacing="4" cnt:expand="true">
++		    <radiobutton radiogroup="zoom" id="WholePage" label="Whole Page"/>
++		    <radiobutton radiogroup="zoom" id="PageWidth" label="Page Width"/>
++		    <radiobutton radiogroup="zoom" id="Optimal"   label="Optimal"/>
++		    <radiobutton radiogroup="zoom" id="Zoom200"   label="~200 %"/>
++		    <radiobutton radiogroup="zoom" id="Zoom150"   label="15~0 %"/>
++		    <radiobutton radiogroup="zoom" id="Zoom100"   label="~100 %"/>
++		    <radiobutton radiogroup="zoom" id="Zoom75"    label="~75 %"/>
++		    <radiobutton radiogroup="zoom" id="Zoom50"    label="~50 %"/>
++		    <hbox cnt:expand="false">
++			<align cnt:expand="false">
++			    <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BtnUser" label="~Variable"/>
++			</align>
++			<flow cnt:padding="10" cnt:expand="false"/>
++			<metricfield id="User" value-step="1"
++				     repeat="true" has_border="true" spin="true"
++				     text="100%" unit="11" custom-unit-text="%"
++				     right="true"/>
++			<flow cnt:padding="10" cnt:expand="true"/>
++		    </hbox>
++		</vbox>
++	    </hbox>
++	</vbox>
++	<vbox border="6" spacing="4">
++	    <okbutton     id="OkButton"     cnt:expand="false" default="true"/>
++	    <cancelbutton id="CancelButton" cnt:expand="false"/>
++	    <helpbutton   id="HelpButton"   cnt:expand="false"/>
++	</vbox>
++    </hbox>
++</modaldialog>
+Index: toolkit/workben/layout/zoom-plain.xml
+===================================================================
+RCS file: toolkit/workben/layout/zoom-plain.xml
+diff -N toolkit/workben/layout/zoom-plain.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom-plain.xml	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,20 @@
++
++
++<modaldialog sizeable="true" height="142" help-id="SID_ATTR_ZOOM" moveable="true" output-size="true" id="RID_SVXDLG_ZOOM" sv-look="true" text="Zoom" width="160" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
++    <vbox>
++        <fixedline height="8" id="FL_ZOOM" text="Zoom factor" width="92" x="6" y="3"/>
++        <okbutton def-button="true" height="14" id="BTN_ZOOM_OK" width="50" x="104" y="6"/>
++        <radiobutton height="10" id="BTN_WHOLE_PAGE" width="80" x="12" y="14"/>
++        <cancelbutton height="14" id="BTN_ZOOM_CANCEL" width="50" x="104" y="23"/>
++        <radiobutton height="10" id="BTN_PAGE_WIDTH" width="80" x="12" y="27"/>
++        <radiobutton height="10" id="BTN_OPTIMAL" width="80" x="12" y="40"/>
++        <helpbutton height="14" id="BTN_ZOOM_HELP" width="50" x="104" y="43"/>
++        <radiobutton height="10" id="BTN_200" label="~200 %" width="80" x="12" y="53"/>
++        <radiobutton height="10" id="BTN_150" label="15~0 %" width="80" x="12" y="66"/>
++        <radiobutton height="10" id="BTN_100" label="~100 %" width="80" x="12" y="79"/>
++        <radiobutton height="10" id="BTN_75" label="~75 %" width="80" x="12" y="92"/>
++        <radiobutton height="10" id="BTN_50" label="~50 %" width="80" x="12" y="105"/>
++        <metricfield has_border="true" custom-unit-text="%" group="true" height="12" left="true" repeat="true" id="ED_USER" spin="true" step-size="1" unit="FUNIT_CUSTOM" width="36" x="56" y="120"/>
++        <radiobutton height="10" id="BTN_USER" label="~Variable" width="42" x="12" y="121"/>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/zoom.cxx
+===================================================================
+RCS file: toolkit/workben/layout/zoom.cxx
+diff -N toolkit/workben/layout/zoom.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom.cxx	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,491 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#if !TEST_LAYOUT
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_svx.hxx"
++#endif /* !TEST_LAYOUT */
++
++#ifdef SVX_DLLIMPLEMENTATION
++#undef SVX_DLLIMPLEMENTATION
++#endif
++
++// include ---------------------------------------------------------------
++
++#if TEST_LAYOUT
++#include <cstdio>
++#endif /* TEST_LAYOUT */
++#ifndef _SHL_HXX
++#include <tools/shl.hxx>
++#endif
++#ifndef _SFXITEMSET_HXX
++#include <svtools/itemset.hxx>
++#endif
++#ifndef _SFXITEMPOOL_HXX
++#include <svtools/itempool.hxx>
++#endif
++#ifndef _SFX_OBJSH_HXX
++#include <sfx2/objsh.hxx>
++#endif
++#ifndef _SV_MSGBOX_HXX //autogen wg. RET_OK, RET_CANCEL
++#include <vcl/msgbox.hxx>
++#endif
++
++#define _SVX_ZOOM_CXX
++
++#include <svx/dialogs.hrc>
++#if !ENABLE_LAYOUT
++#include "zoom.hrc"
++#endif /* !ENABLE_LAYOUT */
++
++#include "zoom.hxx"
++#if TEST_LAYOUT
++#define SVX_ZOOM_OPTIMAL "Zoom optimal"
++#define SVX_ZOOM_PAGEWIDTH "Zoom page width"
++#define SVX_ZOOM_WHOLEPAGE "Zoom whole page"
++struct SvxZoomItem
++{
++    void SetType( char const* s )
++    {
++        fputs( s, stderr );
++    }
++
++    void SetValue( int n )
++    {
++        fprintf( stderr, "Zoom factor: %d\n", int( n ) );
++    }
++};
++#else /* !TEST_LAYOUT */
++#include <svx/zoomitem.hxx>
++#include <svx/dialmgr.hxx>
++#endif /* !TEST_LAYOUT */
++
++#ifndef _SVX_ZOOM_DEF_HXX
++#include "zoom_def.hxx"
++#endif
++
++#include <layout/layout-pre.hxx>
++
++// static ----------------------------------------------------------------
++
++static USHORT pRanges[] =
++{
++	SID_ATTR_ZOOM,
++	SID_ATTR_ZOOM,
++	0
++};
++
++#define SPECIAL_FACTOR	((USHORT)0xFFFF)
++
++// class SvxZoomDialog ---------------------------------------------------
++
++USHORT SvxZoomDialog::GetFactor() const
++{
++	if ( a200Btn.IsChecked() )
++		return 200;
++	if ( a150Btn.IsChecked() )
++		return 150;
++	if ( a100Btn.IsChecked() )
++		return 100;
++	if ( a75Btn.IsChecked() )
++		return 75;
++	if ( a50Btn.IsChecked() )
++		return 50;
++	if ( aUserBtn.IsChecked() )
++		return (USHORT)aUserEdit.GetValue();
++	else
++		return SPECIAL_FACTOR;
++}
++
++// -----------------------------------------------------------------------
++
++void SvxZoomDialog::SetFactor( USHORT nNewFactor, USHORT nBtnId )
++{
++#if TEST_LAYOUT
++    printf ("\t\t set factor %d\n", (int)nNewFactor);
++#endif /* !TEST_LAYOUT */
++	aUserEdit.Disable();
++
++	if ( !nBtnId )
++	{
++		if ( nNewFactor == 200 )
++		{
++			a200Btn.Check();
++			a200Btn.GrabFocus();
++		}
++		else if ( nNewFactor == 150 )
++		{
++			a150Btn.Check();
++			a150Btn.GrabFocus();
++		}
++		else if ( nNewFactor == 100 )
++		{
++			a100Btn.Check();
++			a100Btn.GrabFocus();
++		}
++		else if ( nNewFactor == 75 )
++		{
++			a75Btn.Check();
++			a75Btn.GrabFocus();
++		}
++		else if ( nNewFactor == 50 )
++		{
++			a50Btn.Check();
++			a50Btn.GrabFocus();
++		}
++		else
++		{
++			aUserBtn.Check();
++			aUserEdit.Enable();
++			aUserEdit.SetValue( (long)nNewFactor );
++			aUserEdit.GrabFocus();
++		}
++	}
++	else
++	{
++		aUserEdit.SetValue( (long)nNewFactor );
++
++		if ( ZOOMBTN_OPTIMAL == nBtnId )
++		{
++			aOptimalBtn.Check();
++			aOptimalBtn.GrabFocus();
++		}
++		else if ( ZOOMBTN_PAGEWIDTH == nBtnId )
++		{
++			aPageWidthBtn.Check();
++			aPageWidthBtn.GrabFocus();
++		}
++		else if ( ZOOMBTN_WHOLEPAGE == nBtnId )
++		{
++			aWholePageBtn.Check();
++			aWholePageBtn.GrabFocus();
++		}
++	}
++}
++
++// -----------------------------------------------------------------------
++
++void SvxZoomDialog::SetButtonText( USHORT nBtnId, const String& rNewTxt )
++{
++	switch ( nBtnId )
++	{
++		case ZOOMBTN_OPTIMAL: // Optimal-Button
++			aOptimalBtn.SetText( rNewTxt );
++			break;
++
++		case ZOOMBTN_PAGEWIDTH: // Seitenbreite-Button
++			aPageWidthBtn.SetText( rNewTxt );
++			break;
++
++		case ZOOMBTN_WHOLEPAGE: // Ganze Seite-Button
++			aWholePageBtn.SetText( rNewTxt );
++			break;
++
++		default:
++			DBG_ERROR( "wrong button number" );
++	}
++}
++
++// -----------------------------------------------------------------------
++
++void SvxZoomDialog::HideButton( USHORT nBtnId )
++{
++	switch ( nBtnId )
++	{
++		case ZOOMBTN_OPTIMAL: // Optimal-Button
++			aOptimalBtn.Hide();
++			break;
++
++		case ZOOMBTN_PAGEWIDTH: // Seitenbreite-Button
++			aPageWidthBtn.Hide();
++			break;
++
++		case ZOOMBTN_WHOLEPAGE: // Ganze Seite-Button
++			aWholePageBtn.Hide();
++			break;
++
++		default:
++			DBG_ERROR( "Falsche Button-Nummer!!!" );
++	}
++}
++
++// -----------------------------------------------------------------------
++
++void SvxZoomDialog::SetLimits( USHORT nMin, USHORT nMax )
++{
++	DBG_ASSERT( nMin < nMax, "invalid limits" );
++    aUserEdit.SetMin( nMin );
++	aUserEdit.SetFirst( nMin );
++    aUserEdit.SetMax( nMax );
++	aUserEdit.SetLast( nMax );
++}
++
++// -----------------------------------------------------------------------
++
++void SvxZoomDialog::SetSpinSize( USHORT nNewSpin )
++{
++	aUserEdit.SetSpinSize( nNewSpin );
++}
++
++// -----------------------------------------------------------------------
++
++#if TEST_LAYOUT
++SvxZoomDialog::SvxZoomDialog( Window* pParent ) :
++#else /* !TEST_LAYOUT */
++SvxZoomDialog::SvxZoomDialog( Window* pParent, const SfxItemSet& rCoreSet ) :
++#endif /* !TEST_LAYOUT */
++
++	SfxModalDialog( pParent, SVX_RES( RID_SVXDLG_ZOOM ) ),
++
++    aZoomFl         ( this, SVX_RES( FL_ZOOM ) ),
++    aWholePageBtn   ( this, SVX_RES( BTN_WHOLE_PAGE ) ),
++    aPageWidthBtn   ( this, SVX_RES( BTN_PAGE_WIDTH ) ),
++    aOptimalBtn     ( this, SVX_RES( BTN_OPTIMAL ) ),
++    a200Btn         ( this, SVX_RES( BTN_200 ) ),
++	a150Btn         ( this, SVX_RES( BTN_150 ) ),
++	a100Btn         ( this, SVX_RES( BTN_100 ) ),
++	a75Btn          ( this, SVX_RES( BTN_75 ) ),
++	a50Btn          ( this, SVX_RES( BTN_50 ) ),
++    aUserBtn        ( this, SVX_RES( BTN_USER ) ),
++	aUserEdit       ( this, SVX_RES( ED_USER ) ),
++    aOKBtn          ( this, SVX_RES( BTN_ZOOM_OK ) ),
++	aCancelBtn      ( this, SVX_RES( BTN_ZOOM_CANCEL ) ),
++	aHelpBtn	    ( this, SVX_RES( BTN_ZOOM_HELP ) ),
++
++#if !TEST_LAYOUT
++	rSet		( rCoreSet ),
++#endif /* !TEST_LAYOUT */
++	pOutSet     ( NULL ),
++	bModified	( FALSE )
++
++{
++	Link aLink = LINK( this, SvxZoomDialog, UserHdl );
++	a200Btn.SetClickHdl( aLink );
++	a150Btn.SetClickHdl( aLink );
++	a100Btn.SetClickHdl( aLink );
++	a75Btn.SetClickHdl( aLink );
++	a50Btn.SetClickHdl( aLink );
++	aOptimalBtn.SetClickHdl( aLink );
++	aPageWidthBtn.SetClickHdl( aLink );
++	aWholePageBtn.SetClickHdl( aLink );
++	aUserBtn.SetClickHdl( aLink );
++	aOKBtn.SetClickHdl( LINK( this, SvxZoomDialog, OKHdl ) );
++	aUserEdit.SetModifyHdl( LINK( this, SvxZoomDialog, SpinHdl ) );
++
++	// Default-Werte
++	USHORT nValue = 100;
++	USHORT nMin = 10;
++	USHORT nMax = 1000;
++
++#if !TEST_LAYOUT
++	// ggf. erst den alten Wert besorgen
++	const SfxUInt16Item* pOldUserItem = 0;
++	SfxObjectShell* pSh = SfxObjectShell::Current();
++
++	if ( pSh )
++		pOldUserItem = (const SfxUInt16Item*)pSh->GetItem( SID_ATTR_ZOOM_USER );
++
++	if ( pOldUserItem )
++		nValue = pOldUserItem->GetValue();
++
++	// UserEdit initialisieren
++	if ( nMin > nValue )
++		nMin = nValue;
++	if ( nMax < nValue )
++		nMax = nValue;
++#endif /* !TEST_LAYOUT */
++    aUserEdit.SetMin( nMin );
++	aUserEdit.SetFirst( nMin );
++    aUserEdit.SetMax( nMax );
++	aUserEdit.SetLast( nMax );
++	aUserEdit.SetValue( nValue );
++
++#if TEST_LAYOUT
++    USHORT nZoom = 100;
++    SetFactor( nZoom );
++#else /* !TEST_LAYOUT */
++	const SfxPoolItem& rItem = rSet.Get( rSet.GetPool()->GetWhich( SID_ATTR_ZOOM ) );
++
++	if ( rItem.ISA(SvxZoomItem) )
++	{
++		const SvxZoomItem& rZoomItem = (const SvxZoomItem&)rItem;
++        USHORT nZoom = rZoomItem.GetValue();
++		SvxZoomType eType = rZoomItem.GetType();
++		USHORT nValSet = rZoomItem.GetValueSet();
++		USHORT nBtnId = 0;
++
++		switch ( eType )
++		{
++			case SVX_ZOOM_OPTIMAL:
++				nBtnId = ZOOMBTN_OPTIMAL;
++				break;
++			case SVX_ZOOM_PAGEWIDTH:
++				nBtnId = ZOOMBTN_PAGEWIDTH;
++				break;
++			case SVX_ZOOM_WHOLEPAGE:
++				nBtnId = ZOOMBTN_WHOLEPAGE;
++				break;
++			case SVX_ZOOM_PERCENT:
++				break;
++            case SVX_ZOOM_PAGEWIDTH_NOBORDER:
++                break;
++		}
++
++		// ggf. Buttons disablen
++		if ( !(SVX_ZOOM_ENABLE_50 & nValSet) )
++			a50Btn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_75 & nValSet) )
++			a75Btn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_100 & nValSet) )
++			a100Btn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_150 & nValSet) )
++			a150Btn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_200 & nValSet) )
++			a200Btn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_OPTIMAL & nValSet) )
++			aOptimalBtn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_PAGEWIDTH & nValSet) )
++			aPageWidthBtn.Disable();
++		if ( !(SVX_ZOOM_ENABLE_WHOLEPAGE & nValSet) )
++			aWholePageBtn.Disable();
++        SetFactor( nZoom, nBtnId );
++	}
++	else
++	{
++        USHORT nZoom = ( (const SfxUInt16Item&)rItem ).GetValue();
++        SetFactor( nZoom );
++	}
++#endif /* !TEST_LAYOUT */
++
++	FreeResource();
++}
++
++// -----------------------------------------------------------------------
++
++SvxZoomDialog::~SvxZoomDialog()
++{
++	delete pOutSet;
++	pOutSet = 0;
++}
++
++// -----------------------------------------------------------------------
++
++USHORT* SvxZoomDialog::GetRanges()
++{
++	return pRanges;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxZoomDialog, UserHdl, RadioButton *, pBtn )
++{
++#if TEST_LAYOUT
++    fprintf( stderr, "SvxZoomDialog::UserHdl\n" );
++#endif /* TEST_LAYOUT */
++	bModified |= TRUE;
++
++	if ( pBtn == &aUserBtn )
++	{
++		aUserEdit.Enable();
++		aUserEdit.GrabFocus();
++	}
++	else
++		aUserEdit.Disable();
++	return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxZoomDialog, SpinHdl, MetricField *, EMPTYARG )
++{
++	if ( !aUserBtn.IsChecked() )
++		return 0;
++	bModified |= TRUE;
++	return 0;
++}
++
++// -----------------------------------------------------------------------
++
++IMPL_LINK( SvxZoomDialog, OKHdl, Button *, pBtn )
++{
++	if ( bModified || &aOKBtn != pBtn )
++	{
++#if TEST_LAYOUT
++		SvxZoomItem aItem;
++#else /* !TEST_LAYOUT */
++		SvxZoomItem aItem( SVX_ZOOM_PERCENT, 0,
++						   rSet.GetPool()->GetWhich( SID_ATTR_ZOOM ) );
++
++#endif /* !TEST_LAYOUT */
++		if ( &aOKBtn == pBtn )
++		{
++			USHORT nFactor = GetFactor();
++
++			if ( SPECIAL_FACTOR == nFactor )
++			{
++				if ( aOptimalBtn.IsChecked() )
++					aItem.SetType( SVX_ZOOM_OPTIMAL );
++				else if ( aPageWidthBtn.IsChecked() )
++					aItem.SetType( SVX_ZOOM_PAGEWIDTH );
++				else if ( aWholePageBtn.IsChecked() )
++					aItem.SetType( SVX_ZOOM_WHOLEPAGE );
++			}
++			else
++				aItem.SetValue( nFactor );
++		}
++		else
++		{
++			DBG_ERROR( "Wrong Button" );
++			return 0;
++		}
++#if !TEST_LAYOUT
++		pOutSet = new SfxItemSet( rSet );
++		pOutSet->Put( aItem );
++
++		// Wert aus dem UserEdit "uber den Dialog hinaus merken
++		SfxObjectShell* pSh = SfxObjectShell::Current();
++
++		if ( pSh )
++			pSh->PutItem( SfxUInt16Item( SID_ATTR_ZOOM_USER,
++										 (UINT16)aUserEdit.GetValue() ) );
++#endif /* !TEST_LAYOUT */
++		EndDialog( RET_OK );
++	}
++	else
++		EndDialog( RET_CANCEL );
++	return 0;
++}
++
++
+Index: toolkit/workben/layout/zoom.hxx
+===================================================================
+RCS file: toolkit/workben/layout/zoom.hxx
+diff -N toolkit/workben/layout/zoom.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom.hxx	8 Feb 2008 18:44:47 -0000	1.1.2.1
+@@ -0,0 +1,129 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef _SVX_ZOOM_HXX
++#define _SVX_ZOOM_HXX
++
++// include ---------------------------------------------------------------
++
++#include <layout/layout.hxx>
++#ifndef _BASEDLGS_HXX //autogen wg. SfxModalDialog
++#include <sfx2/basedlgs.hxx>
++#endif
++#ifndef _SV_BUTTON_HXX //autogen wg. Radio-/OK-/Cancel-/HelpButton
++#include <vcl/button.hxx>
++#endif
++#ifndef _SV_FIELD_HXX //autogen wg. MetricField
++#include <vcl/field.hxx>
++#endif
++#ifndef _SV_FIXED_HXX
++#include <vcl/fixed.hxx>
++#endif
++
++// define ----------------------------------------------------------------
++/* CHINA001
++#define	ZOOMBTN_OPTIMAL		((USHORT)0x0001)
++#define ZOOMBTN_PAGEWIDTH	((USHORT)0x0002)
++#define ZOOMBTN_WHOLEPAGE	((USHORT)0x0004)
++*/
++#ifndef _SVX_ZOOM_HXX
++#include "zoom_def.hxx"
++#endif
++// class SvxZoomDialog ---------------------------------------------------
++/*
++	{k:\svx\prototyp\dialog\zoom.bmp}
++
++	[Beschreibung]
++	Mit diesem Dialog wird ein Zoom-Faktor eingestellt.
++
++	[Items]
++	SvxZoomItem	<SID_ATTR_ZOOM>
++*/
++
++#include <layout/layout-pre.hxx>
++
++class SvxZoomDialog : public SfxModalDialog
++{
++private:
++    FixedLine           aZoomFl;
++	RadioButton 		aWholePageBtn;
++	RadioButton 		aPageWidthBtn;
++	RadioButton 		aOptimalBtn;
++    RadioButton         a200Btn;
++	RadioButton 		a150Btn;
++	RadioButton 		a100Btn;
++	RadioButton 		a75Btn;
++	RadioButton 		a50Btn;
++    RadioButton         aUserBtn;
++	MetricField 		aUserEdit;
++	OKButton  			aOKBtn;
++	CancelButton		aCancelBtn;
++	HelpButton			aHelpBtn;
++
++#if !TEST_LAYOUT
++	const SfxItemSet&	rSet;
++#endif /* !TEST_LAYOUT */
++	SfxItemSet*			pOutSet;
++	BOOL				bModified;
++
++#ifdef _SVX_ZOOM_CXX
++	DECL_LINK( UserHdl, RadioButton* );
++	DECL_LINK( SpinHdl, MetricField* );
++	DECL_LINK( OKHdl, Button* );
++#endif
++
++public:
++#if TEST_LAYOUT
++	SvxZoomDialog( Window* pParent );
++#else /* !TEST_LAYOUT */
++	SvxZoomDialog( Window* pParent, const SfxItemSet& rCoreSet );
++#endif /* !TEST_LAYOUT */
++	~SvxZoomDialog();
++
++	static USHORT*		GetRanges();
++	const SfxItemSet*	GetOutputItemSet() const { return pOutSet; }
++
++	USHORT				GetFactor() const;
++	void				SetFactor( USHORT nNewFactor, USHORT nBtnId = 0 );
++
++	void				SetButtonText( USHORT nBtnId, const String& aNewTxt );
++	void				HideButton( USHORT nBtnId );
++	void				SetLimits( USHORT nMin, USHORT nMax );
++	void				SetSpinSize( USHORT nNewSpin );
++};
++
++#include <layout/layout-post.hxx>
++
++#endif
++
+Index: toolkit/workben/layout/zoom.xml
+===================================================================
+RCS file: toolkit/workben/layout/zoom.xml
+diff -N toolkit/workben/layout/zoom.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom.xml	13 Feb 2008 10:37:48 -0000	1.1.2.3
+@@ -0,0 +1,37 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" _title="Set Zoom" optimumsize="true"
++	     help-id="SID_ATTR_ZOOM"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox spacing="5" border="5">
++	<fixedline id="FL_ZOOM" _text="Zoom factor" cnt:expand="true"/>
++	<radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
++	<radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" _label="Page Width"/>
++	<radiobutton radiogroup="zoom" id="BTN_OPTIMAL"   _label="Optimal"/>
++	<radiobutton radiogroup="zoom" id="BTN_200"   _label="200 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_150"   _label="15~0 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_100"   _label="100 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_75"    _label="75 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_50"    _label="50 %"/>
++	<hbox cnt:expand="false" cnt:fill="true">
++	    <align cnt:expand="false" cnt:fill="true">
++		<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" _label="Variable"/>
++	    </align>
++	    <flow cnt:padding="10" cnt:expand="false"/>
++	    <metricfield id="ED_USER" value-step="1"
++			 repeat="true" has_border="true" spin="true"
++			 _text="100%" unit="11" custom-unit-text="%"
++			 right="true"
++			 cnt:expand="false"/>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton     id="BTN_ZOOM_OK"/>
++	    <cancelbutton id="BTN_ZOOM_CANCEL"/>
++	    <helpbutton   id="BTN_ZOOM_HELP"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+Index: toolkit/workben/layout/zoom_def.hxx
+===================================================================
+RCS file: toolkit/workben/layout/zoom_def.hxx
+diff -N toolkit/workben/layout/zoom_def.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ toolkit/workben/layout/zoom_def.hxx	8 Feb 2008 18:44:48 -0000	1.1.2.1
+@@ -0,0 +1,8 @@
++#ifndef _SVX_ZOOM_DEF_HXX
++#define _SVX_ZOOM_DEF_HXX
++
++#define	ZOOMBTN_OPTIMAL		((USHORT)0x0001)
++#define ZOOMBTN_PAGEWIDTH	((USHORT)0x0002)
++#define ZOOMBTN_WHOLEPAGE	((USHORT)0x0004)
++
++#endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/tools-qa-urlobj-unittest.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/tools-qa-urlobj-unittest.diff
@@ -0,0 +1,282 @@
+diff -Ncr tools_orig/qa/urlobj/export.map tools/qa/urlobj/export.map
+--- tools_orig/qa/urlobj/export.map	1970-01-01 01:00:00.000000000 +0100
++++ tools/qa/urlobj/export.map	2007-06-14 16:40:41.000000000 +0200
+@@ -0,0 +1,7 @@
++ UDK_3.0 {
++     global:
++         registerAllTestFunction;
++ 
++     local:
++         *;
++ };
+diff -Ncr tools_orig/qa/urlobj/makefile.mk tools/qa/urlobj/makefile.mk
+--- tools_orig/qa/urlobj/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ tools/qa/urlobj/makefile.mk	2007-06-14 16:50:28.000000000 +0200
+@@ -0,0 +1,72 @@
++ #*************************************************************************
++ #
++ #   OpenOffice.org - a multi-platform office productivity suite
++ #
++ #   $RCSfile: makefile.mk,v $
++ #
++ #   $Revision: 1.3 $
++ #
++ #   last change: $Author: rt $ $Date: 2005/09/08 15:49:44 $
++ #
++ #   The Contents of this file are made available subject to
++ #   the terms of GNU Lesser General Public License Version 2.1.
++ #
++ #
++ #     GNU Lesser General Public License Version 2.1
++ #     =============================================
++ #     Copyright 2005 by Sun Microsystems, Inc.
++ #     901 San Antonio Road, Palo Alto, CA 94303, USA
++ #
++ #     This library is free software; you can redistribute it and/or
++ #     modify it under the terms of the GNU Lesser General Public
++ #     License version 2.1, as published by the Free Software Foundation.
++ #
++ #     This library is distributed in the hope that it will be useful,
++ #     but WITHOUT ANY WARRANTY; without even the implied warranty of
++ #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ #     Lesser General Public License for more details.
++ #
++ #     You should have received a copy of the GNU Lesser General Public
++ #     License along with this library; if not, write to the Free Software
++ #     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ #     MA  02111-1307  USA
++ #
++ #*************************************************************************
++ PRJ=..$/..
++ 
++ PRJNAME=tools
++ TARGET=qa_tools_urlobj_test
++ # this is removed at the moment because we need some enhancements
++ # TESTDIR=TRUE
++ 
++ ENABLE_EXCEPTIONS=TRUE
++ 
++ # --- Settings -----------------------------------------------------
++ 
++ .INCLUDE :  settings.mk
++ 
++ # BEGIN ----------------------------------------------------------------
++ # auto generated Target:job by codegen.pl 
++ SHL1OBJS=  \
++ 	$(SLO)$/tools_urlobj_test.obj
++ 
++ SHL1TARGET= tools_urlobj
++ SHL1STDLIBS=\
++    $(SALLIB) \
++    $(CPPUNITLIB) \
++    $(TOOLSLIB)
++ 
++ SHL1IMPLIB= i$(SHL1TARGET)
++ DEF1NAME    =$(SHL1TARGET)
++ SHL1VERSIONMAP= export.map
++ # auto generated Target:job
++ # END ------------------------------------------------------------------
++ 
++ #------------------------------- All object files -------------------------------
++ # do this here, so we get right dependencies
++ # SLOFILES=$(SHL1OBJS)
++ 
++ # --- Targets ------------------------------------------------------
++ 
++ .INCLUDE :  target.mk
++ .INCLUDE : _cppunit.mk
+diff -Ncr tools_orig/qa/urlobj/tools_urlobj_test.cxx tools/qa/urlobj/tools_urlobj_test.cxx
+--- tools_orig/qa/urlobj/tools_urlobj_test.cxx	1970-01-01 01:00:00.000000000 +0100
++++ tools/qa/urlobj/tools_urlobj_test.cxx	2007-06-14 18:33:36.000000000 +0200
+@@ -0,0 +1,191 @@
++ /*************************************************************************
++  *
++  *  OpenOffice.org - a multi-platform office productivity suite
++  *
++  *  $RCSfile: $
++  *
++  *  $Revision: $
++  *
++  *  last change: $Author: $ $Date: $
++  *
++  *  The Contents of this file are made available subject to
++  *  the terms of GNU Lesser General Public License Version 2.1.
++  *
++  *
++  *    GNU Lesser General Public License Version 2.1
++  *    =============================================
++  *    Copyright 2005 by Sun Microsystems, Inc.
++  *    901 San Antonio Road, Palo Alto, CA 94303, USA
++  *
++  *    This library is free software; you can redistribute it and/or
++  *    modify it under the terms of the GNU Lesser General Public
++  *    License version 2.1, as published by the Free Software Foundation.
++  *
++  *    This library is distributed in the hope that it will be useful,
++  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++  *    Lesser General Public License for more details.
++  *
++  *    You should have received a copy of the GNU Lesser General Public
++  *    License along with this library; if not, write to the Free Software
++  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++  *    MA  02111-1307  USA
++  *
++  ************************************************************************/
++ 
++ #include <cppunit/simpleheader.hxx>
++ 
++ #include <urlobj.hxx>
++ 
++ namespace tools_urlobj
++ {
++ 
++ class urlobjTest : public CppUnit::TestFixture
++ {
++ 
++ public:
++     // initialise your test code values here.
++     void setUp()
++     {
++     }
++ 
++     void tearDown()
++     {
++     }
++ 
++     // insert your test code here.
++     // this is only demonstration code
++     void urlobjTest_001()
++     {
++ 	INetURLObject aUrl(rtl::OUString::createFromAscii("file://10.10.1.1/sampledir/sample.file")); 
++ #ifdef LINUX
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("smb://10.10.1.1/sampledir/sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_SMB);
++ #endif
++ #ifdef WIN
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("file://10.10.1.1/sampledir/sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_FILE);
++ #endif
++ 	CPPUNIT_ASSERT(aUrl.GetHost(INetURLObject::NO_DECODE).compareToAscii("10.10.1.1")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetURLPath(INetURLObject::NO_DECODE).compareToAscii("/sampledir/sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.getName().compareToAscii("sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.getBase().compareToAscii("sample")==0);
++ 	CPPUNIT_ASSERT(aUrl.getExtension().compareToAscii("file")==0);
++     }
++ 
++     void urlobjTest_002()
++     {
++ 	INetURLObject aUrl; 
++ 	aUrl.setFSysPath(rtl::OUString::createFromAscii("\\\\137.65.170.24\\c$\\Img0001.jpg"), INetURLObject::FSYS_DETECT); 
++ #ifdef LINUX
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("smb://137.65.170.24/c$/Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_SMB);
++ #endif
++ #ifdef WIN
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("file://137.65.170.24/c$/Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_FILE);
++ #endif
++ 	CPPUNIT_ASSERT(aUrl.GetHost(INetURLObject::NO_DECODE).compareToAscii("137.65.170.24")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetURLPath(INetURLObject::NO_DECODE).compareToAscii("/c$/Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.getName().compareToAscii("Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.getBase().compareToAscii("Img0001")==0);
++ 	CPPUNIT_ASSERT(aUrl.getExtension().compareToAscii("jpg")==0);
++     }
++ 
++ 
++     void urlobjTest_003()
++     {
++ 	INetURLObject aUrl;
++ 	aUrl.setFSysPath(rtl::OUString::createFromAscii("\\\\hive-winxp-x86\\pmladek\\test2.odt"), INetURLObject::FSYS_DETECT); 
++ #ifdef LINUX
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("smb://hive-winxp-x86/pmladek/test2.odt")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_SMB);
++ #endif
++ #ifdef WIN
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("file://hive-winxp-x86/pmladek/test2.odt")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_FILE);
++ #endif
++ 	CPPUNIT_ASSERT(aUrl.GetHost(INetURLObject::NO_DECODE).compareToAscii("hive-winxp-x86")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetURLPath(INetURLObject::NO_DECODE).compareToAscii("/pmladek/test2.odt")==0);
++     }
++ 
++     void urlobjTest_004()
++     {
++ 	INetURLObject aUrl(rtl::OUString::createFromAscii("smb://10.10.1.1/sampledir/sample.file")); 
++ #ifdef LINUX
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("smb://10.10.1.1/sampledir/sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_SMB);
++ #endif
++ #ifdef WIN
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("file://10.10.1.1/sampledir/sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_FILE);
++ #endif
++ 	CPPUNIT_ASSERT(aUrl.GetHost(INetURLObject::NO_DECODE).compareToAscii("10.10.1.1")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetURLPath(INetURLObject::NO_DECODE).compareToAscii("/sampledir/sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.getName().compareToAscii("sample.file")==0);
++ 	CPPUNIT_ASSERT(aUrl.getBase().compareToAscii("sample")==0);
++ 	CPPUNIT_ASSERT(aUrl.getExtension().compareToAscii("file")==0);
++     }
++ 
++     void urlobjTest_005()
++     {
++ 	INetURLObject aUrl; 
++ 	aUrl.setFSysPath(rtl::OUString::createFromAscii("//137.65.170.24/c$/Img0001.jpg"), INetURLObject::FSYS_DETECT); 
++ #ifdef LINUX
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("smb://137.65.170.24/c$/Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_SMB);
++ #endif
++ #ifdef WIN
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("file://137.65.170.24/c$/Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_FILE);
++ #endif
++ 	CPPUNIT_ASSERT(aUrl.GetHost(INetURLObject::NO_DECODE).compareToAscii("137.65.170.24")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetURLPath(INetURLObject::NO_DECODE).compareToAscii("/c$/Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.getName().compareToAscii("Img0001.jpg")==0);
++ 	CPPUNIT_ASSERT(aUrl.getBase().compareToAscii("Img0001")==0);
++ 	CPPUNIT_ASSERT(aUrl.getExtension().compareToAscii("jpg")==0);
++     }
++ 
++ 
++     void urlobjTest_006()
++     {
++ 	INetURLObject aUrl;
++ 	aUrl.setFSysPath(rtl::OUString::createFromAscii("//hive-winxp-x86/pmladek/test2.odt"), INetURLObject::FSYS_DETECT); 
++ #ifdef LINUX
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("smb://hive-winxp-x86/pmladek/test2.odt")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_SMB);
++ #endif
++ #ifdef WIN
++ 	CPPUNIT_ASSERT(aUrl.GetMainURL(INetURLObject::NO_DECODE).compareToAscii("file://hive-winxp-x86/pmladek/test2.odt")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetProtocol()==INET_PROT_FILE);
++ #endif
++ 	CPPUNIT_ASSERT(aUrl.GetHost(INetURLObject::NO_DECODE).compareToAscii("hive-winxp-x86")==0);
++ 	CPPUNIT_ASSERT(aUrl.GetURLPath(INetURLObject::NO_DECODE).compareToAscii("/pmladek/test2.odt")==0);
++     }
++ 
++ 
++ 
++     // Change the following lines only, if you add, remove or rename 
++     // member functions of the current class, 
++     // because these macros are need by auto register mechanism.
++ 
++     CPPUNIT_TEST_SUITE(urlobjTest);
++     CPPUNIT_TEST(urlobjTest_001);
++     CPPUNIT_TEST(urlobjTest_002);
++     CPPUNIT_TEST(urlobjTest_003);
++     CPPUNIT_TEST(urlobjTest_004);
++     CPPUNIT_TEST(urlobjTest_005);
++     CPPUNIT_TEST(urlobjTest_006);
++     CPPUNIT_TEST_SUITE_END();
++ }; // class createPool
++ 
++ 
++ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(tools_urlobj::urlobjTest, "tools_urlobj");
++ } // namespace rtl_random
++ 
++ 
++ // -----------------------------------------------------------------------------
++ 
++ // this macro creates an empty function, which will called by the RegisterAllFunctions()
++ // to let the user the possibility to also register some functions by hand.
++ NOADDITIONAL;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcj-workaround-serializer.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcj-workaround-serializer.diff
@@ -0,0 +1,10 @@
+--- filter/source/xsltfilter/makefile.mk.gcjmiss	2007-02-10 10:05:22.000000000 +0100
++++ filter/source/xsltfilter/makefile.mk	2007-02-10 10:06:06.000000000 +0100
+@@ -79,6 +79,7 @@
+ .ENDIF
+ .ELSE
+ JARFILES += xalan.jar
++JARFILES += serializer.jar
+ .ENDIF
+ 
+ .IF "$(SYSTEM_XERCES)" == "YES"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-configmgr.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-configmgr.diff
@@ -0,0 +1,19 @@
+--- configmgr/prj/build.lst	2006-10-30 09:13:50.000000000 +0100
++++ configmgr/prj/build.lst	2007-09-07 11:21:49.000000000 +0200
+@@ -1,4 +1,4 @@
+-cg	configmgr	:	offapi comphelper cppuhelper vos NULL
++cg	configmgr	:	offapi comphelper cppuhelper vos vcl NULL
+ cg	configmgr								usr1	-	all	cg_mkout NULL
+ cg	configmgr\inc							nmake	-	all	cg_inc NULL
+ cg	configmgr\source\cmdtools				nmake	-	all	cg_cmdtools cg_misc cg_inc NULL
+--- configmgr/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ configmgr/prj/tests.lst	2007-09-07 17:19:19.000000000 +0200
+@@ -0,0 +1,8 @@
++#does not build: cg   configmgr\qa\unoapi                                nmake - all cg_qa_unoapi NULL
++#does not build: cg   configmgr\qa\unit                                  nmake - all cg_qa_unit NULL
++
++# older tests:
++#does not build: cg   configmgr\workben\apitest                          nmake - all cg_workben_apitest NULL
++#does not build: cg   configmgr\workben\local_io                         nmake - all cg_workben_local_io NULL
++cg   configmgr\workben\logger                           nmake - all cg_workben_logger NULL
++#does not build: cg   configmgr\workben\memory                           nmake - all cg_workben_memory NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-remove-check-update-on-fileload-m15.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-remove-check-update-on-fileload-m15.diff
@@ -0,0 +1,65 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/dialog/newerverwarn.cxx sfx2/source/dialog/newerverwarn.cxx
+--- sfx2.clean/source/dialog/newerverwarn.cxx	2008-05-06 23:56:41.000000000 -0400
++++ sfx2/source/dialog/newerverwarn.cxx	2008-05-07 00:00:36.000000000 -0400
+@@ -58,6 +58,7 @@ namespace lang  = ::com::sun::star::lang
+ namespace uno   = ::com::sun::star::uno;
+ namespace util  = ::com::sun::star::util;
+ 
++#if 0
+ namespace sfx2
+ {
+ 
+@@ -160,4 +161,5 @@ void NewerVersionWarningDialog::InitButt
+ }
+ 
+ } // end of namespace sfx2
++#endif
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/doc/objstor.cxx sfx2/source/doc/objstor.cxx
+--- sfx2.clean/source/doc/objstor.cxx	2008-05-06 23:56:40.000000000 -0400
++++ sfx2/source/doc/objstor.cxx	2008-05-06 23:59:24.000000000 -0400
+@@ -1082,6 +1082,7 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedi
+             }
+         }
+ 
++#if 0
+         // --> PB 2007-11-20 #i83653# Give warning if document contains features from new ODF version
+         // Online Update Check enabled?
+         sal_Bool bOnlineUpdateEnabled = sal_False;
+@@ -1122,16 +1122,17 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedi
+                         // ODF version greater than 1.1 - added some decimal places to be safe against floating point conversion errors (hack)
+                         sfx2::NewerVersionWarningDialog aDlg( NULL );
+                         aDlg.Execute();
+                     }
+                 }
+             }
+ 			SetModified(sal_False);		// #i87555
+         }
++#endif
+     }
+     else
+         GetpApp()->HideStatusText();
+ 
+ 	return bOk;
+ }
+ 
+ sal_uInt32 SfxObjectShell::HandleFilter( SfxMedium* pMedium, SfxObjectShell* pDoc )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/inc/newerverwarn.hxx sfx2/source/inc/newerverwarn.hxx
+--- sfx2.clean/source/inc/newerverwarn.hxx	2008-05-06 23:56:41.000000000 -0400
++++ sfx2/source/inc/newerverwarn.hxx	2008-05-06 23:59:58.000000000 -0400
+@@ -39,6 +39,7 @@
+ #include <vcl/fixed.hxx>
+ #include <sfx2/basedlgs.hxx>
+ 
++#if 0
+ namespace sfx2
+ {
+     class NewerVersionWarningDialog : public SfxModalDialog
+@@ -60,6 +61,7 @@ namespace sfx2
+         ~NewerVersionWarningDialog();
+     };
+ } // namespace sfx2
++#endif
+ 
+ #endif // #ifndef _SFX2_NEWERVERSIONWARNING_HXX
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xl-import-formradiobutton.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xl-import-formradiobutton.diff
@@ -0,0 +1,327 @@
+Index: sc/source/filter/excel/xiescher.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/xiescher.cxx,v
+retrieving revision 1.54
+diff -u -p -r1.54 xiescher.cxx
+--- sc/source/filter/excel/xiescher.cxx	6 Jul 2007 12:37:20 -0000	1.54
++++ sc/source/filter/excel/xiescher.cxx	20 Feb 2008 17:21:49 -0000
+@@ -221,6 +221,7 @@
+ #include "xicontent.hxx"
+ #endif
+ 
++#include "xlescher.hxx"
+ using ::rtl::OUString;
+ using ::rtl::OUStringBuffer;
+ using ::com::sun::star::uno::Reference;
+@@ -424,7 +425,7 @@ XclImpDrawObjBase::~XclImpDrawObjBase()
+ {
+ }
+ 
+-XclImpDrawObjRef XclImpDrawObjBase::ReadObjCmo( XclImpStream& rStrm )
++XclImpDrawObjRef XclImpDrawObjBase::ReadObjCmo( XclImpObjectManager& rObjMgr, XclImpStream& rStrm )
+ {
+     XclImpDrawObjRef xDrawObj;
+ 
+@@ -457,7 +458,7 @@ XclImpDrawObjRef XclImpDrawObjBase::Read
+         case EXC_OBJ_CMO_COMBOBOX:
+         case EXC_OBJ_CMO_SPIN:
+         case EXC_OBJ_CMO_SCROLLBAR:
+-            xDrawObj.reset( new XclImpTbxControlObj( rStrm.GetRoot() ) );
++            xDrawObj.reset( new XclImpTbxControlObj( rObjMgr, rStrm.GetRoot() ) );
+         break;
+         case EXC_OBJ_CMO_PICTURE:
+             xDrawObj.reset( new XclImpOleObj( rStrm.GetRoot() ) );
+@@ -739,23 +740,31 @@ ScfPropertySet XclImpControlObjHelper::G
+     return ScfPropertySet( mxCtrlModel );
+ }
+ 
+-void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, SdrObject& /* rSdrObj */ ) const
++// get service factory from Calc document
++Reference< XMultiServiceFactory > lclGetFactoryFromRoot( const XclImpRoot& rRoot )
+ {
+     // get service factory from Calc document
+     Reference< XMultiServiceFactory > xFactory;
+     if( SfxObjectShell* pDocShell = rRoot.GetDocShell() )
+         xFactory.set( pDocShell->GetModel(), UNO_QUERY );
++    return xFactory;
++}
++
++void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScAddress >& rxCellLink ) const
++{
++    Reference< XMultiServiceFactory > xFactory = lclGetFactoryFromRoot( rRoot );
++
+     if( !mxCtrlModel.is() || !xFactory.is() )
+         return;
+ 
+     // *** cell link *** ------------------------------------------------------
+ 
+     Reference< XBindableValue > xBindable( mxCtrlModel, UNO_QUERY );
+-    if( mxCellLink.is() && xBindable.is() )
++    if( rxCellLink.is() && xBindable.is() )
+     {
+         // create argument sequence for createInstanceWithArguments()
+         CellAddress aApiAddress;
+-        ScUnoConversion::FillApiAddress( aApiAddress, *mxCellLink );
++        ScUnoConversion::FillApiAddress( aApiAddress, *rxCellLink );
+ 
+         NamedValue aValue;
+         aValue.Name = CREATE_OUSTRING( SC_UNONAME_BOUNDCELL );
+@@ -792,14 +801,24 @@ void XclImpControlObjHelper::ConvertShee
+             xBindable->setValueBinding( xBinding );
+     }
+ 
++
++}
++
++void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScRange >& rxSrcRange ) const
++{
++    Reference< XMultiServiceFactory > xFactory = lclGetFactoryFromRoot( rRoot );
++
++    if( !mxCtrlModel.is() || !xFactory.is() )
++        return;
++
+     // *** source range *** ---------------------------------------------------
+ 
+     Reference< XListEntrySink > xEntrySink( mxCtrlModel, UNO_QUERY );
+-    if( mxSrcRange.is() && xEntrySink.is() )
++    if( rxSrcRange.is() && xEntrySink.is() )
+     {
+         // create argument sequence for createInstanceWithArguments()
+         CellRangeAddress aApiRange;
+-        ScUnoConversion::FillApiRange( aApiRange, *mxSrcRange );
++        ScUnoConversion::FillApiRange( aApiRange, *rxSrcRange );
+ 
+         NamedValue aValue;
+         aValue.Name = CREATE_OUSTRING( SC_UNONAME_CELLRANGE );
+@@ -824,13 +843,27 @@ void XclImpControlObjHelper::ConvertShee
+         if( xEntrySource.is() )
+             xEntrySink->setListEntrySource( xEntrySource );
+     }
++
++}
++
++void XclImpControlObjHelper::ConvertSheetLinks( const XclImpRoot& rRoot, SdrObject& /* rSdrObj */ ) const
++{
++    // *** cell link *** ------------------------------------------------------
++
++    ConvertSheetLinks( rRoot, mxCellLink );
++
++    // *** source range *** ---------------------------------------------------
++
++    ConvertSheetLinks( rRoot, mxSrcRange );
+ }
+ 
+ // ----------------------------------------------------------------------------
+ 
+-XclImpTbxControlObj::XclImpTbxControlObj( const XclImpRoot& rRoot ) :
++XclImpTbxControlObj::XclImpTbxControlObj( XclImpObjectManager& rObjMgr, const XclImpRoot& rRoot ) :
+     XclImpDrawingObj( rRoot, true ),
+     XclImpControlObjHelper( EXC_CTRL_BINDPOSITION ),
++    mrObjManager( rObjMgr ),
++    mbGroupLeader( false ),
+     mnState( EXC_OBJ_CBLS_STATE_UNCHECK ),
+     mnSelEntry( 0 ),
+     mnSelType( EXC_OBJ_LBS_SEL_SIMPLE ),
+@@ -866,6 +899,9 @@ void XclImpTbxControlObj::ReadSubRecord(
+         case EXC_ID_OBJ_FTGBODATA:
+             ReadGboData( rStrm );
+         break;
++        case EXC_ID_OBJ_FTRBODATA:
++            ReadRboData( rStrm );
++        break;
+         default:
+             XclImpDrawObjBase::ReadSubRecord( rStrm, nSubRecId, nSubRecSize );
+     }
+@@ -904,7 +940,6 @@ void XclImpTbxControlObj::DoProcessSdrOb
+ 
+     namespace AwtVisualEffect = ::com::sun::star::awt::VisualEffect;
+     namespace AwtScrollOrient = ::com::sun::star::awt::ScrollBarOrientation;
+-    using ::com::sun::star::style::VerticalAlignment_MIDDLE;
+ 
+     // control name, printable, sheet links -----------------------------------
+ 
+@@ -944,24 +979,29 @@ void XclImpTbxControlObj::DoProcessSdrOb
+         case EXC_OBJ_CMO_CHECKBOX:
+         case EXC_OBJ_CMO_OPTIONBUTTON:
+         {
+-            bool bCheckBox = GetObjType() == EXC_OBJ_CMO_CHECKBOX;
+-
+-            sal_Int16 nApiState = 0;
+-            switch( mnState )
++            if( GetObjType() == EXC_OBJ_CMO_CHECKBOX )
++                SetCBRBCommonProps();
++            else
+             {
+-                case EXC_OBJ_CBLS_STATE_UNCHECK:    nApiState = 0;                  break;
+-                case EXC_OBJ_CBLS_STATE_CHECK:      nApiState = 1;                  break;
+-                case EXC_OBJ_CBLS_STATE_TRI:        nApiState = bCheckBox ? 2 : 1;  break;
++                XclImpTbxControlObj* pTbxObj = dynamic_cast< XclImpTbxControlObj* >( mrObjManager.FindDrawObj( mNextRBInGroupId ).get() );
++                if ( ( pTbxObj && pTbxObj->mbGroupLeader ) )
++                {
++                    // Group has terminated
++                    // traverse each RadioButton in group and 
++                    //     a) apply the groupname 
++                    //     b) propagate the linked cell from the lead radiobutton
++                    //     c) apply the correct Ref value
++                    XclImpTbxControlObj* pLeader = pTbxObj;
++                    XclObjId rLeaderId = pLeader->GetObjId();
++                    sal_Int32 nRefVal = 1;
++                    do 
++                    {
++                        pTbxObj->ApplyGroupingBits( *pLeader, nRefVal++ );
++                        pTbxObj = dynamic_cast< XclImpTbxControlObj* >( mrObjManager.FindDrawObj( pTbxObj->mNextRBInGroupId ).get() );
++                    } while ( pTbxObj && !pTbxObj->mbGroupLeader );
++                } 
++               
+             }
+-            if( bCheckBox )
+-                aPropSet.SetBoolProperty( CREATE_OUSTRING( "TriState" ), nApiState == 2 );
+-            aPropSet.SetProperty( CREATE_OUSTRING( "DefaultState" ), nApiState );
+-
+-            sal_Int16 nApiBorder = mbFlatButton ? AwtVisualEffect::FLAT : AwtVisualEffect::LOOK3D;
+-            aPropSet.SetProperty( CREATE_OUSTRING( "VisualEffect" ), nApiBorder );
+-
+-            // #i40279# always centered vertically
+-            aPropSet.SetProperty( CREATE_OUSTRING( "VerticalAlign" ), VerticalAlignment_MIDDLE );
+         }
+         break;
+ 
+@@ -1111,6 +1151,45 @@ void XclImpTbxControlObj::ReadLbsData( X
+     }
+ }
+ 
++void XclImpTbxControlObj::ApplyGroupingBits( XclImpTbxControlObj& rLeadRB, sal_Int32 nRefVal )
++{
++    ScfPropertySet aProps = GetControlPropSet();
++    // shape Id is formed from object id + sheet id
++    rtl::OUString sGroupName = rtl::OUString::valueOf( static_cast< sal_Int32 >( rLeadRB.GetShapeId() ) );
++    aProps.SetStringProperty( CREATE_OUSTRING( "GroupName" ), sGroupName );
++    aProps.SetStringProperty( CREATE_OUSTRING( "RefValue" ), rtl::OUString::valueOf( nRefVal ) );
++    // propagate cell link info
++    if ( rLeadRB.HasCellLink() && !HasCellLink() )
++    {
++        ScfRef< ScAddress > xAddress( new ScAddress( *rLeadRB.GetCellLink() ) );
++        ConvertSheetLinks( GetRoot(), xAddress ); 
++    }
++    SetCBRBCommonProps();
++}
++
++void XclImpTbxControlObj::SetCBRBCommonProps() const
++{
++    sal_Int16 nApiState = 0;
++    bool bCheckBox = ( GetObjType() == EXC_OBJ_CMO_CHECKBOX );
++    switch( mnState )
++    {
++        case EXC_OBJ_CBLS_STATE_UNCHECK:    nApiState = 0;                  break;
++        case EXC_OBJ_CBLS_STATE_CHECK:      nApiState = 1;                  break;
++        case EXC_OBJ_CBLS_STATE_TRI:        nApiState = bCheckBox ? 2 : 1;  break;
++    }
++    ScfPropertySet aPropSet = GetControlPropSet();
++    if ( bCheckBox )
++        aPropSet.SetBoolProperty( CREATE_OUSTRING( "TriState" ), nApiState == 2 );
++    namespace AwtVisualEffect = ::com::sun::star::awt::VisualEffect;
++    using ::com::sun::star::style::VerticalAlignment_MIDDLE;
++
++    aPropSet.SetProperty( CREATE_OUSTRING( "DefaultState" ), nApiState );
++    sal_Int16 nApiBorder = mbFlatButton ? AwtVisualEffect::FLAT : AwtVisualEffect::LOOK3D;
++    aPropSet.SetProperty( CREATE_OUSTRING( "VisualEffect" ), nApiBorder );
++    // #i40279# always centered vertically
++    aPropSet.SetProperty( CREATE_OUSTRING( "VerticalAlign" ), VerticalAlignment_MIDDLE );
++}
++
+ void XclImpTbxControlObj::ReadSbs( XclImpStream& rStrm )
+ {
+     sal_uInt16 nOrient, nStyle;
+@@ -1131,6 +1210,17 @@ void XclImpTbxControlObj::ReadGboData( X
+     mbFlatBorder = ::get_flag( nStyle, EXC_OBJ_GBO_FLAT );
+ }
+ 
++void XclImpTbxControlObj::ReadRboData( XclImpStream& rStrm )
++{
++    sal_Int16 mnNextRBInGroup;
++    rStrm >> mnNextRBInGroup;
++    sal_uInt8 nGroupLeader;
++    rStrm >> nGroupLeader;
++    sal_uInt8 unknown;
++    rStrm >> unknown;
++    mbGroupLeader = ( nGroupLeader & 0x1 );
++    mNextRBInGroupId = XclObjId( GetScTab(), mnNextRBInGroup );
++}
+ // ----------------------------------------------------------------------------
+ 
+ XclImpOleObj::XclImpOleObj( const XclImpRoot& rRoot ) :
+@@ -2224,7 +2314,7 @@ void XclImpObjectManager::ReadObj8( XclI
+             break;
+             case EXC_ID_OBJ_FTCMO:
+                 DBG_ASSERT( !xDrawObj, "XclImpObjectManager::ReadObj8 - multiple FTCMO subrecords" );
+-                xDrawObj = XclImpDrawObjBase::ReadObjCmo( rStrm );
++                xDrawObj = XclImpDrawObjBase::ReadObjCmo( *this, rStrm );
+                 bLoop = xDrawObj.is();
+             break;
+             default:
+Index: sc/source/filter/inc/xiescher.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/xiescher.hxx,v
+retrieving revision 1.27
+diff -u -p -r1.27 xiescher.hxx
+--- sc/source/filter/inc/xiescher.hxx	6 Jul 2007 12:38:40 -0000	1.27
++++ sc/source/filter/inc/xiescher.hxx	20 Feb 2008 17:21:50 -0000
+@@ -99,7 +99,7 @@ public:
+     virtual             ~XclImpDrawObjBase();
+ 
+     /** Reads the FTCMO subrecord (common object data) in an OBJ record, returns a new object. */
+-    static XclImpDrawObjRef ReadObjCmo( XclImpStream& rStrm );
++    static XclImpDrawObjRef ReadObjCmo( XclImpObjectManager& rObjMrg, XclImpStream& rStrm );
+     /** Reads the contents of the specified subrecord of an OBJ record from stream. */
+     virtual void        ReadSubRecord( XclImpStream& rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize );
+     /** Reads the client anchor from an msofbtClientAnchor Escher record. */
+@@ -254,6 +254,9 @@ protected:
+     ScfPropertySet      GetControlPropSet() const;
+     /** Tries to set a spreadsheet cell link and source range link at the passed form control. */
+     void                ConvertSheetLinks( const XclImpRoot& rRoot, SdrObject& rSdrObj ) const;
++    void                ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScAddress >& rxCellLink ) const;
++    void                ConvertSheetLinks( const XclImpRoot& rRoot, const ScfRef< ScRange >& rxSrcRange ) const;
++    ScAddress*          GetCellLink(){ return mxCellLink.get(); }
+ 
+ private:
+     XControlModelRef    mxCtrlModel;    /// Model of the created form control object.
+@@ -268,7 +271,7 @@ private:
+ class XclImpTbxControlObj : public XclImpDrawingObj, public XclImpControlObjHelper
+ {
+ public:
+-    explicit            XclImpTbxControlObj( const XclImpRoot& rRoot );
++    explicit            XclImpTbxControlObj( XclImpObjectManager& rObjMgr, const XclImpRoot& rRoot );
+ 
+     /** Reads the contents of the specified subrecord of an OBJ record from stream. */
+     virtual void        ReadSubRecord( XclImpStream& rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize );
+@@ -295,8 +298,15 @@ private:
+     void                ReadSbs( XclImpStream& rStrm );
+     /** Reads the contents of the ftGboData sub structure in an OBJ record. */
+     void                ReadGboData( XclImpStream& rStrm );
++    /** Reads the contents of the ftRboData sub structure in an OBJ record. */
++    void                ReadRboData( XclImpStream& rStrm );
+ 
+ private:
++    void SetCBRBCommonProps() const;
++    void ApplyGroupingBits( XclImpTbxControlObj& rTbxObj, sal_Int32 nRefVal );
++    XclImpObjectManager&  mrObjManager;
++    bool                mbGroupLeader;  /// Identifies start of group
++    XclObjId            mNextRBInGroupId;    /// 
+     ScfInt16Vec         maMultiSel;     /// Indexes of all selected entries in a multi selection.
+     sal_uInt16          mnState;        /// Checked/unchecked state.
+     sal_Int16           mnSelEntry;     /// Index of selected entry (1-based).
+Index: sc/source/filter/inc/xlescher.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/xlescher.hxx,v
+retrieving revision 1.21
+diff -u -p -r1.21 xlescher.hxx
+--- sc/source/filter/inc/xlescher.hxx	22 Jan 2007 13:22:23 -0000	1.21
++++ sc/source/filter/inc/xlescher.hxx	20 Feb 2008 17:21:50 -0000
+@@ -75,6 +75,7 @@ const sal_uInt16 EXC_ID_OBJ_FTCBLS      
+ const sal_uInt16 EXC_ID_OBJ_FTSBS           = 0x000C;   /// Scroll bar data.
+ const sal_uInt16 EXC_ID_OBJ_FTSBSFMLA       = 0x000E;   /// Scroll bar/list box/combo box cell link.
+ const sal_uInt16 EXC_ID_OBJ_FTGBODATA       = 0x000F;   /// Group box data.
++const sal_uInt16 EXC_ID_OBJ_FTRBODATA       = 0x0011;   /// Radiobutton data.
+ const sal_uInt16 EXC_ID_OBJ_FTLBSDATA       = 0x0013;   /// List box/combo box data.
+ const sal_uInt16 EXC_ID_OBJ_FTCBLSFMLA      = 0x0014;   /// Check box/radio button cell link.
+ const sal_uInt16 EXC_ID_OBJ_FTCMO           = 0x0015;   /// Common object settings.
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-cmcfixes47-extensions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-cmcfixes47-extensions.diff
@@ -0,0 +1,35 @@
+Index: extensions/source/nsplugin/source/npshell.cxx
+===================================================================
+RCS file: /cvs/util/extensions/source/nsplugin/source/npshell.cxx,v
+retrieving revision 1.17
+retrieving revision 1.17.32.1
+diff -u -u -p -B -r1.17 -r1.17.32.1
+--- extensions/source/nsplugin/source/npshell.cxx	11 Apr 2008 10:07:27 -0000	1.17
++++ extensions/source/nsplugin/source/npshell.cxx	6 Jun 2008 14:44:47 -0000	1.17.32.1
+@@ -75,6 +75,26 @@
+ #include <string.h>
+ #include <errno.h>
+ 
++//http://qa.openoffice.org/issues/show_bug.cgi?id=82545
++//https://bugzilla.mozilla.org/show_bug.cgi?id=241262
++#ifdef UNIX
++#  ifndef _UINT32
++#    if defined(__alpha) || defined(__LP64__)
++       typedef unsigned int uint32;
++#    else  /* __alpha */
++       typedef unsigned long uint32;
++#    endif
++#    define _UINT32
++#  endif
++#  ifndef _INT32
++#    if defined(__alpha) || defined(__LP64__)
++       typedef int int32;
++#    else  /* __alpha */
++       typedef long int32;
++#    endif
++#    define _INT32
++#  endif
++#endif
+ 
+ #include "npapi.h"
+ #include "npshell.hxx"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-move-from-origin.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-move-from-origin.diff
@@ -0,0 +1,33 @@
+Index: sc/source/ui/view/tabview3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/tabview3.cxx,v
+retrieving revision 1.67
+diff -u -p -r1.67 tabview3.cxx
+--- sc/source/ui/view/tabview3.cxx	18 Apr 2008 11:48:39 -0000	1.67
++++ sc/source/ui/view/tabview3.cxx	12 May 2008 20:34:37 -0000
+@@ -1033,9 +1053,20 @@ void ScTabView::MoveCursorRel( SCsCOL nM
+ 	}
+ 	else
+ 	{
+-		nOldX = (SCsCOL) aViewData.GetCurX();
+-		nOldY = (SCsROW) aViewData.GetCurY();
+-		nCurX = (nMovX != 0) ? nOldX+nMovX : (SCsCOL) aViewData.GetOldCurX();
+-		nCurY = (nMovY != 0) ? nOldY+nMovY : (SCsROW) aViewData.GetOldCurY();
++		SCsCOL nOldCurX = (SCsCOL) aViewData.GetOldCurX();
++		SCsROW nOldCurY = (SCsROW) aViewData.GetOldCurY();
++		if (!bKeepSel && !bShift && bIsBlockMode == 1 /* SC_BLOCKMODE_NORMAL */ && 
++				aViewData.GetMarkData().IsMarked())
++		{
++			nOldCurX = nOldX = nBlockStartXOrig;
++			nOldCurY = nOldY = nBlockStartYOrig;
++		}
++		else
++		{
++			nOldX = (SCsCOL) aViewData.GetCurX();
++			nOldY = (SCsROW) aViewData.GetCurY();
++		}
++		nCurX = (nMovX != 0) ? nOldX+nMovX : nOldCurX;
++		nCurY = (nMovY != 0) ? nOldY+nMovY : nOldCurY;
+ 	}
+ 
+	BOOL bHidden;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix-qadevOOo-java-encoding.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix-qadevOOo-java-encoding.diff
@@ -0,0 +1,11 @@
+--- qadevOOo/build.xml.ark	2005-08-22 12:57:17.000000000 +0000
++++ qadevOOo/build.xml	2005-08-22 12:59:38.000000000 +0000
+@@ -19,7 +19,7 @@
+ 
+   <!-- target for building the runner -->
+   <target name="qadevOOo_runner_build">
+-    <javac srcdir="${qadevOOo.runner}" destdir="${qadevOOo.class}" includes="**/*.java" debug="${debug}" source="${build.source}">
++    <javac srcdir="${qadevOOo.runner}" destdir="${qadevOOo.class}" includes="**/*.java" debug="${debug}" source="${build.source}" encoding="utf-8" fork="true">
+ 		<classpath>
+ 		    <pathelement location="${qadevOOo.class}"/>
+ 			<fileset dir="${qadevOOo.office_jars}">
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/size-sal-textenc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/size-sal-textenc.diff
@@ -0,0 +1,723 @@
+--- sal/inc/osl/module.h	2007-06-19 18:16:25.000000000 +0200
++++ sal/inc/osl/module.h	2007-07-27 10:27:30.000000000 +0200
+@@ -92,6 +92,12 @@ typedef void ( SAL_CALL *oslGenericFunct
+ */
+ oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 nRtldMode);
+ 
++/** Load a shared library or module.
++    @param pModuleName denotes the name of the module to be loaded.
++    @return NULL if the module could not be loaded, otherwise a handle to the module.
++*/
++oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode);
++
+ /** Load a module located relative to some other module.
+ 
+     @param baseModule
+--- sal/osl/unx/module.c	2007-07-03 14:48:42.000000000 +0200
++++ sal/osl/unx/module.c	2007-07-27 10:29:39.000000000 +0200
+@@ -92,8 +92,6 @@ int dladdr(void *address, Dl_info *dl)
+ /* implemented in file.c */
+ extern int UnicodeToText(char *, size_t, const sal_Unicode *, sal_Int32);
+ 
+-oslModule SAL_CALL osl_psz_loadModule(const sal_Char *pszModuleName, sal_Int32 nRtldMode);
+-
+ /*****************************************************************************/
+ /* osl_loadModule */
+ /*****************************************************************************/
+@@ -116,7 +114,7 @@ oslModule SAL_CALL osl_loadModule(rtl_uS
+         char buffer[PATH_MAX];
+ 
+         if (UnicodeToText(buffer, PATH_MAX, ustrTmp->buffer, ustrTmp->length))
+-            pModule = osl_psz_loadModule(buffer, nRtldMode);
++            pModule = osl_loadModuleAscii(buffer, nRtldMode);
+         rtl_uString_release(ustrTmp);
+     }
+
+@@ -140,21 +138,21 @@ oslModule SAL_CALL osl_loadModule(rtl_uS
+ }
+ 
+ /*****************************************************************************/
+-/* osl_psz_loadModule */
++/* osl_loadModuleAscii */
+ /*****************************************************************************/
+ 
+-oslModule SAL_CALL osl_psz_loadModule(const sal_Char *pszModuleName, sal_Int32 nRtldMode)
++oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode)
+ {
+     OSL_ASSERT(
+         (nRtldMode & SAL_LOADMODULE_LAZY) == 0 ||
+         (nRtldMode & SAL_LOADMODULE_NOW) == 0); /* only either LAZY or NOW */
+-	if (pszModuleName)
++	if (pModuleName)
+ 	{
+ #ifndef NO_DL_FUNCTIONS
+         int rtld_mode =
+             ((nRtldMode & SAL_LOADMODULE_NOW) ? RTLD_NOW : RTLD_LAZY) |
+             ((nRtldMode & SAL_LOADMODULE_GLOBAL) ? RTLD_GLOBAL : RTLD_LOCAL);
+-		void* pLib = dlopen(pszModuleName, rtld_mode);
++		void* pLib = dlopen(pModuleName, rtld_mode);
+ 
+ #if OSL_DEBUG_LEVEL > 1
+ 		if (pLib == 0)
+--- sal/osl/unx/nlsupport.c	2007-07-03 14:48:57.000000000 +0200
++++ sal/osl/unx/nlsupport.c	2007-07-27 10:31:51.000000000 +0200
+@@ -848,7 +848,6 @@ rtl_TextEncoding osl_getTextEncodingFrom
+ /* OS X locale discovery function */
+ int (*pGetOSXLocale)( char *, sal_uInt32 );
+ 
+-oslModule SAL_CALL osl_psz_loadModule(const sal_Char *pszModuleName, sal_Int32 nRtldMode);
+ /*****************************************************************************
+  return the current process locale
+  *****************************************************************************/
+--- sal/osl/w32/module.c	2007-06-19 18:17:20.000000000 +0200
++++ sal/osl/w32/module.c	2007-07-27 10:59:48.000000000 +0200
+@@ -87,6 +87,38 @@ oslModule SAL_CALL osl_loadModule(rtl_uS
+ }
+ 
+ /*****************************************************************************/
++/* osl_loadModuleAscii */
++/*****************************************************************************/
++oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode )
++{
++    (void) nRtldMode; /* avoid warnings */
++    
++    HINSTANCE hInstance;
++	UINT errorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS);
++	oslModule ret = 0;
++	oslFileError	nError;
++	
++    RTL_LOGFILE_TRACE1( "{ osl_loadModule start: %s", pModuleName );
++
++	OSL_ASSERT(pModuleName);
++
++	hInstance = LoadLibrary(pModuleName);
++    if (hInstance == NULL)
++        hInstance = LoadLibraryEx(pModuleName, NULL,
++                                  LOAD_WITH_ALTERED_SEARCH_PATH);
++
++	if (hInstance <= (HINSTANCE)HINSTANCE_ERROR)
++		hInstance = 0;
++
++	ret = (oslModule) hInstance;
++	SetErrorMode(errorMode);
++
++    RTL_LOGFILE_TRACE1( "} osl_loadModule end: %s", pModuleName );
++
++	return ret;
++}
++
++/*****************************************************************************/
+ /* osl_getModuleHandle */
+ /*****************************************************************************/
+ 
+--- sal/textenc/makefile.mk	2007-07-27 10:17:47.000000000 +0200
++++ sal/textenc/makefile.mk	2007-07-27 10:20:23.000000000 +0200
+@@ -36,13 +36,19 @@
+ PRJ = ..
+ PRJNAME = sal
+ TARGET = textenc
++LIBTARGET=NO
+ 
+ .INCLUDE: settings.mk
+ 
+ CFLAGS+= $(LFS_CFLAGS)
+ CXXFLAGS+= $(LFS_CFLAGS)
+ 
+-SLOFILES = \
++SAL_OBJECTS = \
++    $(SLO)$/tencinfo.obj \
++    $(SLO)$/textcvt.obj \
++    $(SLO)$/textenc.obj
++
++SAL_COMMON_OBJECTS = \
+     $(SLO)$/context.obj \
+     $(SLO)$/convertbig5hkscs.obj \
+     $(SLO)$/converter.obj \
+@@ -57,12 +63,19 @@ SLOFILES = \
+     $(SLO)$/tcvtutf7.obj \
+     $(SLO)$/tcvtutf8.obj \
+     $(SLO)$/tenchelp.obj \
+-    $(SLO)$/tencinfo.obj \
+-    $(SLO)$/textcvt.obj \
+-    $(SLO)$/textenc.obj \
+     $(SLO)$/unichars.obj
+ 
+-OBJFILES = \
++SAL_TABLES_OBJECTS = \
++    $(SLO)$/tables.obj
++
++SLOFILES = $(SAL_OBJECTS) $(SAL_COMMON_OBJECTS) $(SAL_TABLES_OBJECTS)
++
++SAL_OBJFILES = \
++    $(OBJ)$/tencinfo.obj \
++    $(OBJ)$/textcvt.obj \
++    $(OBJ)$/textenc.obj
++
++SAL_COMMON_OBJFILES = \
+     $(OBJ)$/context.obj \
+     $(OBJ)$/convertbig5hkscs.obj \
+     $(OBJ)$/converter.obj \
+@@ -77,19 +90,36 @@ OBJFILES = \
+     $(OBJ)$/tcvtutf7.obj \
+     $(OBJ)$/tcvtutf8.obj \
+     $(OBJ)$/tenchelp.obj \
+-    $(OBJ)$/tencinfo.obj \
+-    $(OBJ)$/textcvt.obj \
+-    $(OBJ)$/textenc.obj \
+     $(OBJ)$/unichars.obj
+ 
++SAL_TABLES_OBJFILES = \
++    $(OBJ)$/tables.obj
++
++OBJFILES = $(SAL_OBJFILES) $(SAL_COMMON_OBJFILES) $(SAL_TABLES_OBJFILES)
++
+ # Optimization off on Solaris Intel due to internal compiler error; to be
+ # reevaluated after compiler upgrade:
+ .IF "$(OS)$(CPU)" == "SOLARISI"
+ 
+ NOOPTFILES = \
+     $(OBJ)$/textenc.obj \
+-    $(SLO)$/textenc.obj
++    $(SLO)$/textenc.obj \
++    $(OBJ)$/tables.obj \
++    $(SLO)$/tables.obj
+ 
+ .ENDIF # OS, CPU, SOLARISI
+ 
++LIB1TARGET= $(SLB)$/$(TARGET).lib
++LIB1OBJFILES= $(SAL_OBJECTS) $(SAL_COMMON_OBJECTS)
++OBJTARGET=$(LB)$/$(TARGET).lib
++
++# be nicer to avoid DLLPRE
++.IF "$(GUI)" == "WNT"
++CDEFS+=-DPLUGIN_NAME=$(DLLPRE)sal_textenc$(UDK_MAJOR)$(DLLPOST)
++.ELSE
++CDEFS+=-DPLUGIN_NAME=$(DLLPRE)sal_textenc$(DLLPOST).$(UDK_MAJOR)
++.ENDIF
++LIB2TARGET= $(SLB)$/textenc_tables.lib
++LIB2OBJFILES= $(SAL_TABLES_OBJECTS) $(SAL_COMMON_OBJECTS)
++
+ .INCLUDE: target.mk
+--- sal/textenc/tables.cxx	1970-01-01 01:00:00.000000000 +0100
++++ sal/textenc/tables.cxx	2007-07-27 10:20:23.000000000 +0200
+@@ -0,0 +1,240 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 11089 $
++ *
++ *  last change: $Author: jholesovsky $ $Date: 2007-12-12 07:51:05 -0600 (Wed, 12 Dec 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++/* TODO! This file should not be called textenc.c, because it is not the
++   implementation of rtl/textenc.h.  Rather, it should be called
++   gettextencodingdata.c. */
++
++#ifndef INCLUDED_RTL_TEXTENC_GETTEXTENCODINGDATA_H
++#include "gettextencodingdata.h"
++#endif
++
++#ifndef INCLUDED_RTL_TEXTENC_TENCHELP_H
++#include "tenchelp.h"
++#endif
++
++#ifndef _RTL_TEXTENC_H
++#include "rtl/textenc.h"
++#endif
++
++#ifndef INCLUDED_STDDEF_H
++#include <stddef.h>
++#define INCLUDED_STDDEF_H
++#endif
++
++#define NOTABUNI_START 0xFF
++#define NOTABUNI_END 0x00
++
++#define NOTABCHAR_START 0xFFFF
++#define NOTABCHAR_END 0x0000
++
++#define SAME8090UNI_START 0x80
++#define SAME8090UNI_END 0x9F
++static sal_uInt16 const aImpl8090SameToUniTab[SAME8090UNI_END
++                                                  - SAME8090UNI_START
++                                                  + 1]
++= { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, /* 0x80 */
++    0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
++    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, /* 0x90 */
++    0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F };
++
++#define SAME8090CHAR_START 0x0080
++#define SAME8090CHAR_END 0x009F
++static sal_uChar const aImpl8090SameToCharTab[SAME8090CHAR_END
++                                                  - SAME8090CHAR_START
++                                                  + 1]
++    = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0080 */
++        0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
++        0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0090 */
++        0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F };
++
++#define SAMEA0FFCHAR_START 0x00A0
++#define SAMEA0FFCHAR_END 0x00FF
++static sal_uChar const aImplA0FFSameToCharTab[SAMEA0FFCHAR_END
++                                                  - SAMEA0FFCHAR_START
++                                                  + 1]
++    = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
++        0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
++        0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
++        0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
++        0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
++        0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
++        0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
++        0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
++        0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
++        0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
++        0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
++        0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF };
++
++static sal_uInt16 const aImplDoubleByteIdentifierTab[1] = { 0 };
++
++#include "tcvtarb1.tab"
++#include "tcvteas1.tab"
++#include "tcvtest1.tab"
++#include "tcvtjp1.tab"
++#include "tcvtjp2.tab"
++#include "tcvtjp3.tab"
++#include "tcvtjp4.tab"
++#include "tcvtjp5.tab"
++#include "tcvtjp6.tab"
++#include "tcvtkr1.tab"
++#include "tcvtkr2.tab"
++#include "tcvtkr4.tab"
++#include "tcvtkr5.tab"
++#include "tcvtkr6.tab"
++#include "tcvtlat1.tab"
++#include "tcvtscn1.tab"
++#include "tcvtscn2.tab"
++#include "tcvtscn3.tab"
++#include "tcvtscn4.tab"
++#include "tcvtscn5.tab"
++#include "tcvtscn6.tab"
++#include "tcvtsym1.tab"
++#include "tcvttcn1.tab"
++#include "tcvttcn2.tab"
++#include "tcvttcn6.tab"
++#include "tcvtuni1.tab"
++#include "convertiscii.tab"
++
++#include "convertbig5hkscs.tab"
++#include "converteuctw.tab"
++#include "convertgb18030.tab"
++#include "convertiso2022cn.tab"
++#include "convertiso2022jp.tab"
++#include "convertiso2022kr.tab"
++#include "convertadobe.tab"
++
++ImplTextEncodingData const *
++Impl_getTextEncodingData(rtl_TextEncoding nEncoding)
++{
++    static ImplTextEncodingData const * const aData[]
++        = { NULL, /* DONTKNOW */
++            &aImplMS1252TextEncodingData, /* MS_1252 */
++            &aImplAPPLEROMANTextEncodingData, /* APPLE_ROMAN */
++            &aImplIBM437TextEncodingData, /* IBM_437 */
++            &aImplIBM850TextEncodingData, /* IBM_850 */
++            &aImplIBM860TextEncodingData, /* IBM_860 */
++            &aImplIBM861TextEncodingData, /* IBM_861 */
++            &aImplIBM863TextEncodingData, /* IBM_863 */
++            &aImplIBM865TextEncodingData, /* IBM_865 */
++            NULL, /* reserved (SYSTEM) */
++            &aImplSYMBOLTextEncodingData, /* SYMBOL */
++            &aImplUSASCIITextEncodingData, /* ASCII_US */
++            &aImplISO88591TextEncodingData, /* ISO_8859_1 */
++            &aImplISO88592TextEncodingData, /* ISO_8859_2 */
++            &aImplISO88593TextEncodingData, /* ISO_8859_3 */
++            &aImplISO88594TextEncodingData, /* ISO_8859_4 */
++            &aImplISO88595TextEncodingData, /* ISO_8859_5 */
++            &aImplISO88596TextEncodingData, /* ISO_8859_6 */
++            &aImplISO88597TextEncodingData, /* ISO_8859_7 */
++            &aImplISO88598TextEncodingData, /* ISO_8859_8 */
++            &aImplISO88599TextEncodingData, /* ISO_8859_9 */
++            &aImplISO885914TextEncodingData, /* ISO_8859_14 */
++            &aImplISO885915TextEncodingData, /* ISO_8859_15 */
++            &aImplIBM737TextEncodingData, /* IBM_737 */
++            &aImplIBM775TextEncodingData, /* IBM_775 */
++            &aImplIBM852TextEncodingData, /* IBM_852 */
++            &aImplIBM855TextEncodingData, /* IBM_855 */
++            &aImplIBM857TextEncodingData, /* IBM_857 */
++            &aImplIBM862TextEncodingData, /* IBM_862 */
++            &aImplIBM864TextEncodingData, /* IBM_864 */
++            &aImplIBM866TextEncodingData, /* IBM_866 */
++            &aImplIBM869TextEncodingData, /* IBM_869 */
++            &aImplMS874TextEncodingData, /* MS_874 */
++            &aImplMS1250TextEncodingData, /* MS_1250 */
++            &aImplMS1251TextEncodingData, /* MS_1251 */
++            &aImplMS1253TextEncodingData, /* MS_1253 */
++            &aImplMS1254TextEncodingData, /* MS_1254 */
++            &aImplMS1255TextEncodingData, /* MS_1255 */
++            &aImplMS1256TextEncodingData, /* MS_1256 */
++            &aImplMS1257TextEncodingData, /* MS_1257 */
++            &aImplMS1258TextEncodingData, /* MS_1258 */
++            NULL, /* TODO! APPLE_ARABIC */
++            &aImplAPPLECENTEUROTextEncodingData, /* APPLE_CENTEURO */
++            &aImplAPPLECROATIANTextEncodingData, /* APPLE_CROATIAN */
++            &aImplAPPLECYRILLICTextEncodingData, /* APPLE_CYRILLIC */
++            NULL, /* TODO! APPLE_DEVANAGARI */
++            NULL, /* TODO! APPLE_FARSI */
++            &aImplAPPLEGREEKTextEncodingData, /* APPLE_GREEK */
++            NULL, /* TODO! APPLE_GUJARATI */
++            NULL, /* TODO! APPLE_GURMUKHI */
++            NULL, /* TODO! APPLE_HEBREW */
++            &aImplAPPLEICELANDTextEncodingData, /* APPLE_ICELAND */
++            &aImplAPPLEROMANIANTextEncodingData, /* APPLE_ROMANIAN */
++            NULL, /* TODO! APPLE_THAI */
++            &aImplAPPLETURKISHTextEncodingData, /* APPLE_TURKISH */
++            &aImplAPPLEUKRAINIANTextEncodingData, /* APPLE_UKRAINIAN */
++            &aImplAPPLECHINSIMPTextEncodingData, /* APPLE_CHINSIMP */
++            &aImplAPPLECHINTRADTextEncodingData, /* APPLE_CHINTRAD */
++            &aImplAPPLEJAPANESETextEncodingData, /* APPLE_JAPANESE */
++            &aImplAPPLEKOREANTextEncodingData, /* APPLE_KOREAN */
++            &aImplMS932TextEncodingData, /* MS_932 */
++            &aImplMS936TextEncodingData, /* MS_936 */
++            &aImplMS949TextEncodingData, /* MS_949 */
++            &aImplMS950TextEncodingData, /* MS_950 */
++            &aImplSJISTextEncodingData, /* SHIFT_JIS */
++            &aImplGB2312TextEncodingData, /* GB_2312 */
++            &aImplGBT12345TextEncodingData, /* GBT_12345 */
++            &aImplGBKTextEncodingData, /* GBK */
++            &aImplBIG5TextEncodingData, /* BIG5 */
++            &aImplEUCJPTextEncodingData, /* EUC_JP */
++            &aImplEUCCNTextEncodingData, /* EUC_CN */
++            &aImplEucTwTextEncodingData, /* EUC_TW */
++            &aImplIso2022JpTextEncodingData, /* ISO_2022_JP */
++            &aImplIso2022CnTextEncodingData, /* ISO_2022_CN */
++            &aImplKOI8RTextEncodingData, /* KOI8_R */
++            &aImplUTF7TextEncodingData, /* UTF7 */
++            &aImplUTF8TextEncodingData, /* UTF8 */
++            &aImplISO885910TextEncodingData, /* ISO_8859_10 */
++            &aImplISO885913TextEncodingData, /* ISO_8859_13 */
++            &aImplEUCKRTextEncodingData, /* EUC_KR */
++            &aImplIso2022KrTextEncodingData, /* ISO_2022_KR */
++            &aImplJISX0201TextEncodingData, /* JIS_X_0201 */
++            &aImplJISX0208TextEncodingData, /* JIS_X_0208 */
++            &aImplJISX0212TextEncodingData, /* JIS_X_0212 */
++            &aImplMS1361TextEncodingData, /* MS_1361 */
++            &aImplGb18030TextEncodingData, /* GB_18030 */
++            &aImplBig5HkscsTextEncodingData, /* BIG5_HKSCS */
++            &aImplTis620TextEncodingData, /* TIS_620 */
++            &aImplKoi8UTextEncodingData, /* KOI8_U */
++            &aImplIsciiDevanagariTextEncodingData, /* ISCII_DEVANAGARI */
++            &aImplJavaUtf8TextEncodingData, /* JAVA_UTF8 */
++            &adobeStandardEncodingData, /* ADOBE_STANDARD */
++            &adobeSymbolEncodingData, /* ADOBE_SYMBOL */
++            &aImplPT154TextEncodingData }; /* PT154 */
++    return
++        nEncoding < sizeof aData / sizeof aData[0] ? aData[nEncoding] : NULL;
++	return NULL;
++}
+--- sal/textenc/textenc.cxx	2007-07-27 10:17:47.000000000 +0200
++++ sal/textenc/textenc.cxx	2007-07-27 10:36:15.000000000 +0200
+@@ -52,6 +52,14 @@
+ #include "rtl/textenc.h"
+ #endif
+ 
++#ifndef _RTL_USTRING_HXX_
++#include "rtl/ustring.hxx"
++#endif
++
++#ifndef _OSL_MODULE_H_
++#include "osl/module.h"
++#endif
++
+ #ifndef INCLUDED_STDDEF_H
+ #include <stddef.h>
+ #define INCLUDED_STDDEF_H
+@@ -63,6 +71,7 @@
+ #define NOTABCHAR_START 0xFFFF
+ #define NOTABCHAR_END 0x0000
+ 
++
+ #define SAME8090UNI_START 0x80
+ #define SAME8090UNI_END 0x9F
+ static sal_uInt16 const aImpl8090SameToUniTab[SAME8090UNI_END
+@@ -103,140 +112,69 @@ static sal_uChar const aImplA0FFSameToCh
+ 
+ static sal_uInt16 const aImplDoubleByteIdentifierTab[1] = { 0 };
+ 
+-#include "tcvtarb1.tab"
+-#include "tcvteas1.tab"
+ #include "tcvtest1.tab"
+-#include "tcvtjp1.tab"
+-#include "tcvtjp2.tab"
+-#include "tcvtjp3.tab"
+-#include "tcvtjp4.tab"
+-#include "tcvtjp5.tab"
+-#include "tcvtjp6.tab"
+-#include "tcvtkr1.tab"
+-#include "tcvtkr2.tab"
+-#include "tcvtkr4.tab"
+-#include "tcvtkr5.tab"
+-#include "tcvtkr6.tab"
+ #include "tcvtlat1.tab"
+-#include "tcvtscn1.tab"
+-#include "tcvtscn2.tab"
+-#include "tcvtscn3.tab"
+-#include "tcvtscn4.tab"
+-#include "tcvtscn5.tab"
+-#include "tcvtscn6.tab"
+-#include "tcvtsym1.tab"
+-#include "tcvttcn1.tab"
+-#include "tcvttcn2.tab"
+-#include "tcvttcn6.tab"
+ #include "tcvtuni1.tab"
+-#include "convertiscii.tab"
+ 
+-#include "convertbig5hkscs.tab"
+-#include "converteuctw.tab"
+-#include "convertgb18030.tab"
+-#include "convertiso2022cn.tab"
+-#include "convertiso2022jp.tab"
+-#include "convertiso2022kr.tab"
+-#include "convertadobe.tab"
++extern "C" {
++		typedef ImplTextEncodingData const *(*TextEncodingFunction) (rtl_TextEncoding nEncoding);
++};
++
++// Yes - we should use the unpleasant to use templatized
++// sal:: doublecheckfoo thing here.
++static TextEncodingFunction pTables;
++
++#define DOSTRING( x )  #x
++#define STRING( x )    DOSTRING( x )
+ 
+ ImplTextEncodingData const *
+ Impl_getTextEncodingData(rtl_TextEncoding nEncoding) SAL_THROW_EXTERN_C()
+ {
+-    static ImplTextEncodingData const * const aData[]
+-        = { NULL, /* DONTKNOW */
+-            &aImplMS1252TextEncodingData, /* MS_1252 */
+-            &aImplAPPLEROMANTextEncodingData, /* APPLE_ROMAN */
+-            &aImplIBM437TextEncodingData, /* IBM_437 */
+-            &aImplIBM850TextEncodingData, /* IBM_850 */
+-            &aImplIBM860TextEncodingData, /* IBM_860 */
+-            &aImplIBM861TextEncodingData, /* IBM_861 */
+-            &aImplIBM863TextEncodingData, /* IBM_863 */
+-            &aImplIBM865TextEncodingData, /* IBM_865 */
+-            NULL, /* reserved (SYSTEM) */
+-            &aImplSYMBOLTextEncodingData, /* SYMBOL */
+-            &aImplUSASCIITextEncodingData, /* ASCII_US */
+-            &aImplISO88591TextEncodingData, /* ISO_8859_1 */
+-            &aImplISO88592TextEncodingData, /* ISO_8859_2 */
+-            &aImplISO88593TextEncodingData, /* ISO_8859_3 */
+-            &aImplISO88594TextEncodingData, /* ISO_8859_4 */
+-            &aImplISO88595TextEncodingData, /* ISO_8859_5 */
+-            &aImplISO88596TextEncodingData, /* ISO_8859_6 */
+-            &aImplISO88597TextEncodingData, /* ISO_8859_7 */
+-            &aImplISO88598TextEncodingData, /* ISO_8859_8 */
+-            &aImplISO88599TextEncodingData, /* ISO_8859_9 */
+-            &aImplISO885914TextEncodingData, /* ISO_8859_14 */
+-            &aImplISO885915TextEncodingData, /* ISO_8859_15 */
+-            &aImplIBM737TextEncodingData, /* IBM_737 */
+-            &aImplIBM775TextEncodingData, /* IBM_775 */
+-            &aImplIBM852TextEncodingData, /* IBM_852 */
+-            &aImplIBM855TextEncodingData, /* IBM_855 */
+-            &aImplIBM857TextEncodingData, /* IBM_857 */
+-            &aImplIBM862TextEncodingData, /* IBM_862 */
+-            &aImplIBM864TextEncodingData, /* IBM_864 */
+-            &aImplIBM866TextEncodingData, /* IBM_866 */
+-            &aImplIBM869TextEncodingData, /* IBM_869 */
+-            &aImplMS874TextEncodingData, /* MS_874 */
+-            &aImplMS1250TextEncodingData, /* MS_1250 */
+-            &aImplMS1251TextEncodingData, /* MS_1251 */
+-            &aImplMS1253TextEncodingData, /* MS_1253 */
+-            &aImplMS1254TextEncodingData, /* MS_1254 */
+-            &aImplMS1255TextEncodingData, /* MS_1255 */
+-            &aImplMS1256TextEncodingData, /* MS_1256 */
+-            &aImplMS1257TextEncodingData, /* MS_1257 */
+-            &aImplMS1258TextEncodingData, /* MS_1258 */
+-            NULL, /* TODO! APPLE_ARABIC */
+-            &aImplAPPLECENTEUROTextEncodingData, /* APPLE_CENTEURO */
+-            &aImplAPPLECROATIANTextEncodingData, /* APPLE_CROATIAN */
+-            &aImplAPPLECYRILLICTextEncodingData, /* APPLE_CYRILLIC */
+-            NULL, /* TODO! APPLE_DEVANAGARI */
+-            NULL, /* TODO! APPLE_FARSI */
+-            &aImplAPPLEGREEKTextEncodingData, /* APPLE_GREEK */
+-            NULL, /* TODO! APPLE_GUJARATI */
+-            NULL, /* TODO! APPLE_GURMUKHI */
+-            NULL, /* TODO! APPLE_HEBREW */
+-            &aImplAPPLEICELANDTextEncodingData, /* APPLE_ICELAND */
+-            &aImplAPPLEROMANIANTextEncodingData, /* APPLE_ROMANIAN */
+-            NULL, /* TODO! APPLE_THAI */
+-            &aImplAPPLETURKISHTextEncodingData, /* APPLE_TURKISH */
+-            &aImplAPPLEUKRAINIANTextEncodingData, /* APPLE_UKRAINIAN */
+-            &aImplAPPLECHINSIMPTextEncodingData, /* APPLE_CHINSIMP */
+-            &aImplAPPLECHINTRADTextEncodingData, /* APPLE_CHINTRAD */
+-            &aImplAPPLEJAPANESETextEncodingData, /* APPLE_JAPANESE */
+-            &aImplAPPLEKOREANTextEncodingData, /* APPLE_KOREAN */
+-            &aImplMS932TextEncodingData, /* MS_932 */
+-            &aImplMS936TextEncodingData, /* MS_936 */
+-            &aImplMS949TextEncodingData, /* MS_949 */
+-            &aImplMS950TextEncodingData, /* MS_950 */
+-            &aImplSJISTextEncodingData, /* SHIFT_JIS */
+-            &aImplGB2312TextEncodingData, /* GB_2312 */
+-            &aImplGBT12345TextEncodingData, /* GBT_12345 */
+-            &aImplGBKTextEncodingData, /* GBK */
+-            &aImplBIG5TextEncodingData, /* BIG5 */
+-            &aImplEUCJPTextEncodingData, /* EUC_JP */
+-            &aImplEUCCNTextEncodingData, /* EUC_CN */
+-            &aImplEucTwTextEncodingData, /* EUC_TW */
+-            &aImplIso2022JpTextEncodingData, /* ISO_2022_JP */
+-            &aImplIso2022CnTextEncodingData, /* ISO_2022_CN */
+-            &aImplKOI8RTextEncodingData, /* KOI8_R */
+-            &aImplUTF7TextEncodingData, /* UTF7 */
+-            &aImplUTF8TextEncodingData, /* UTF8 */
+-            &aImplISO885910TextEncodingData, /* ISO_8859_10 */
+-            &aImplISO885913TextEncodingData, /* ISO_8859_13 */
+-            &aImplEUCKRTextEncodingData, /* EUC_KR */
+-            &aImplIso2022KrTextEncodingData, /* ISO_2022_KR */
+-            &aImplJISX0201TextEncodingData, /* JIS_X_0201 */
+-            &aImplJISX0208TextEncodingData, /* JIS_X_0208 */
+-            &aImplJISX0212TextEncodingData, /* JIS_X_0212 */
+-            &aImplMS1361TextEncodingData, /* MS_1361 */
+-            &aImplGb18030TextEncodingData, /* GB_18030 */
+-            &aImplBig5HkscsTextEncodingData, /* BIG5_HKSCS */
+-            &aImplTis620TextEncodingData, /* TIS_620 */
+-            &aImplKoi8UTextEncodingData, /* KOI8_U */
+-            &aImplIsciiDevanagariTextEncodingData, /* ISCII_DEVANAGARI */
+-            &aImplJavaUtf8TextEncodingData, /* JAVA_UTF8 */
+-            &adobeStandardEncodingData, /* ADOBE_STANDARD */
+-            &adobeSymbolEncodingData, /* ADOBE_SYMBOL */
+-            &aImplPT154TextEncodingData }; /* PT154 */
+-    return
+-        nEncoding < sizeof aData / sizeof aData[0] ? aData[nEncoding] : NULL;
++	switch(nEncoding)
++	{
++		case RTL_TEXTENCODING_ASCII_US:
++			return &aImplUSASCIITextEncodingData; break;
++		case RTL_TEXTENCODING_MS_1252:
++			return &aImplMS1252TextEncodingData; break;
++		case RTL_TEXTENCODING_UTF8:
++			return &aImplUTF8TextEncodingData; break;
++		case RTL_TEXTENCODING_ISO_8859_1:
++            return &aImplISO88591TextEncodingData; break;
++
++#ifndef TOOLS_STRING_MISSUSE
++// ----------------------------------------------
++// These are here temporarily since they are used in error
++// all over the place
++// ----------------------------------------------
++		case RTL_TEXTENCODING_IBM_850:
++            return &aImplIBM850TextEncodingData; break;
++		case RTL_TEXTENCODING_IBM_857:
++            return &aImplIBM857TextEncodingData; break;
++		case RTL_TEXTENCODING_IBM_860:
++            return &aImplIBM860TextEncodingData; break;
++		case RTL_TEXTENCODING_IBM_861:
++            return &aImplIBM861TextEncodingData; break;
++		case RTL_TEXTENCODING_IBM_863:
++            return &aImplIBM863TextEncodingData; break;
++// ----------------------------------------------
++#endif
++		default:
++			if (!pTables)
++			{
++				static char const pName[] = STRING(PLUGIN_NAME);
++				oslModule aModule = osl_loadModuleAscii(pName, SAL_LOADMODULE_DEFAULT);
++
++				if(aModule)
++				{
++					static char const pSymbol[] = "Impl_getTextEncodingData";
++					pTables = (TextEncodingFunction)osl_getAsciiFunctionSymbol(aModule, pSymbol);
++				}
++			}
++			if (pTables)
++				return pTables(nEncoding);
++//			else
++//				fprintf (stderr, "missing text encoding library for %d\n", nEncoding);
++			break;
++	}
++	return NULL;
+ }
+--- sal/util/makefile.mk	2007-07-27 10:17:47.000000000 +0200
++++ sal/util/makefile.mk	2007-07-27 10:20:23.000000000 +0200
+@@ -223,6 +223,15 @@ SHL1STDLIBS+=-lgcc
+ .ENDIF
+ .ENDIF
+ 
++SHL4DEPN+=$(SHL1TARGETN)
++SHL4LIBS=$(SLB)$/textenc_tables.lib
++SHL4TARGET=sal_textenc
++SHL4STDLIBS=$(SALLIB)
++SHL4VERSIONMAP=saltextenc.map
++
++SHL4DEF=$(MISC)$/$(SHL4TARGET).def
++DEF4NAME=$(SHL4TARGET)
++
+ # --- Targets ------------------------------------------------------
+ 
+ .ENDIF # $(header) != ""
+--- sal/util/sal.map	2007-06-27 15:32:32.000000000 +0200
++++ sal/util/sal.map	2007-07-27 10:33:33.000000000 +0200
+@@ -553,6 +553,7 @@ UDK_3.5 {
+ 
+ UDK_3.6 { # OOo 2.3
+     global:
++        osl_loadModuleAscii;
+         osl_getAsciiFunctionSymbol;
+         osl_getModuleHandle;
+         rtl_uString_intern;
+--- sal/util/saltextenc.map	1970-01-01 01:00:00.000000000 +0100
++++ sal/util/saltextenc.map	2007-07-27 10:20:23.000000000 +0200
+@@ -0,0 +1,6 @@
++UDK_3_0_0 {
++    global:
++	Impl_getTextEncodingData;
++    local:
++        *;
++};
+--- scp2/source/ooo/file_library_ooo.scp	2007-07-27 10:17:53.000000000 +0200
++++ scp2/source/ooo/file_library_ooo.scp	2007-07-27 10:20:23.000000000 +0200
+@@ -2265,6 +2265,17 @@ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gi
+ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gid_File_Lib_Wininetbe, wininetbe1.uno )
+ #endif
+ 
++File gid_File_Lib_Sal_TextEnc
++    TXT_FILE_BODY;
++  #ifdef UNX
++    Name = STRING(CONCAT4(libsal_textenc,UNXSUFFIX,.,UDK_MAJOR));
++  #else
++    Name = STRING(CONCAT3(sal_textenc,UDK_MAJOR,.dll));
++  #endif
++    Dir = gid_Dir_Program;
++    Styles = (PACKED, PATCH);
++End
++
+ #ifdef MACOSX
+ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gid_File_Lib_Macbe, macbe1.uno )
+ #endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/desktop-config-migration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/desktop-config-migration.diff
@@ -0,0 +1,606 @@
+diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
+index 43e8b48..9722617 100644
+--- desktop/source/migration/migration.cxx
++++ desktop/source/migration/migration.cxx
+@@ -58,6 +58,10 @@
+ #include <com/sun/star/configuration/backend/XSingleLayerStratum.hpp>
+ #include <com/sun/star/util/XRefreshable.hpp>
+ #include <com/sun/star/util/XChangesBatch.hpp>
++#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp>
++#include <com/sun/star/ui/XAcceleratorConfiguration.hpp>
++#include <com/sun/star/awt/Key.hpp>
++#include <com/sun/star/awt/KeyEvent.hpp>
+  
+ using namespace rtl;
+ using namespace osl;
+@@ -71,6 +75,8 @@ using namespace com::sun::star::container;
+ using namespace com::sun::star::configuration;
+ using namespace com::sun::star::configuration::backend;
+ 
++#define ascii( asc ) \
++    ::rtl::OUString::intern( RTL_CONSTASCII_USTRINGPARAM( asc ) )
+ 
+ namespace desktop {
+ 
+@@ -128,17 +134,148 @@ OUString Migration::getOldVersionName()
+     return getImpl()->getOldVersionName();
+ }
+ 
++MigrationImpl::VersionNumber::VersionNumber() :
++    mnMajor(0), mnMinor(0), mnMicro(0)
++{
++}
++
++MigrationImpl::VersionNumber::VersionNumber(sal_Int32 nMajor, sal_Int32 nMinor, sal_Int32 nMicro) :
++    mnMajor(nMajor), mnMinor(nMinor), mnMicro(nMicro)
++{
++}
++
+ OUString MigrationImpl::getOldVersionName()
+ {
+     return m_aInfo.productname;
+ }
+ 
+-sal_Bool MigrationImpl::checkMigration()
++static bool splitVersionString(const OUString& rVer, MigrationImpl::VersionNumber& rVerNum)
++{
++    rVerNum.mnMajor = 0;
++    rVerNum.mnMinor = 0;
++    rVerNum.mnMicro = 0;
++
++    sal_Int32 nLen = rVer.getLength();
++    const sal_Unicode* pStr = rVer.getStr();
++    OUStringBuffer buf;
++    sal_uInt8 nPos = 0; // 0 = major; 1 = minor; 2 = micro
++    for (sal_Int32 i = 0; i < nLen; ++i)
++    {
++        const sal_Unicode c = pStr[i];
++        if (c >= sal_Unicode('0') && c <= sal_Unicode('9'))
++            buf.append(c);
++        else if (c == sal_Unicode('.'))
++        {
++            if (buf.getLength() == 0)
++                // no numbers.
++                return false;
++
++            sal_Int32 nTmp = buf.makeStringAndClear().toInt32();
++            if (nTmp < 0 || nTmp > 255)
++                // only 0 - 255 allowed in a version number.
++                return false;
++
++            switch (nPos)
++            {
++                case 0: rVerNum.mnMajor = static_cast<sal_uInt8>(nTmp); break;
++                case 1: rVerNum.mnMinor = static_cast<sal_uInt8>(nTmp); break;
++                case 2: rVerNum.mnMicro = static_cast<sal_uInt8>(nTmp); break;
++            }
++
++            nPos += 1;
++            if (nPos > 2)
++                return true;
++        }
++        else
++            return false;
++    }
++
++    return true;
++}
++
++/** returns -1 if rVer1 < rVer2, 0 if rVer1 == rVer2, or 1 if rVer1 >
++    rVer2. */
++static short compareVersion(const MigrationImpl::VersionNumber& rVer1, 
++                            const MigrationImpl::VersionNumber& rVer2)
+ {
+-    if (m_aInfo.userdata.getLength() > 0 && ! checkMigrationCompleted())
++    // major version
++    if (rVer1.mnMajor < rVer2.mnMajor)
++        return -1;
++    if (rVer1.mnMajor > rVer2.mnMajor)
++        return 1;
++
++    // minor version
++    if (rVer1.mnMinor < rVer2.mnMinor)
++        return -1;
++    if (rVer1.mnMinor > rVer2.mnMinor)
++        return 1;
++
++    // micro version
++    if (rVer1.mnMicro < rVer2.mnMicro)
++        return -1;
++    if (rVer1.mnMicro > rVer2.mnMicro)
++        return 1;
++
++    return 0;
++}
++
++static sal_Bool isMigrationNeeded(const OUString& rConfVerStr, const OUString& rAppVerStr, 
++                                  MigrationImpl::VersionNumber& rConfVerNum, 
++                                  MigrationImpl::VersionNumber& rAppVerNum)
++{
++    if (!splitVersionString(rConfVerStr, rConfVerNum))
++        return sal_False;
++
++    if (!splitVersionString(rAppVerStr, rAppVerNum))
++        return sal_False;
++
++#if 0
++    fprintf(stdout, "desktop::isMigrationNeeded: config ver = %d.%d.%d\n", 
++            rConfVerNum.mnMajor,rConfVerNum.mnMinor,rConfVerNum.mnMicro);
++
++    fprintf(stdout, "desktop::isMigrationNeeded: app ver = %d.%d.%d\n", 
++            rAppVerNum.mnMajor,rAppVerNum.mnMinor,rAppVerNum.mnMicro);
++#endif    
++
++    if (compareVersion(rConfVerNum, rAppVerNum) < 0)
+         return sal_True;
+-    else
++
++    return sal_False;
++}
++
++sal_Bool MigrationImpl::checkMigration()
++{
++    if (m_bMigrationCompleted)
++        // migration is already complete.
+         return sal_False;
++
++    try
++    {
++        Reference< XPropertySet > aPropSet(getConfigAccess("org.openoffice.Setup/Product"), UNO_QUERY_THROW);
++        Any any = aPropSet->getPropertyValue(ascii("ooSetupVersionAboutBox"));
++        if (!(any >>= m_aAppVerStr))
++            // Current version unknown.  Don't do migration (this should not happen).
++            return sal_False;
++
++        aPropSet.set(getConfigAccess("org.openoffice.Setup/Configuration"), UNO_QUERY_THROW);    
++        any = aPropSet->getPropertyValue(ascii("ooLastVersionTouched"));
++        OUString aLastVersion;
++        if (!(any >>= aLastVersion))
++        {
++            // last touched version unknown.  Do the migration.
++            splitVersionString(m_aAppVerStr, m_aAppVerNum);
++            m_aConfigVerNum.mnMajor = 0;
++            m_aConfigVerNum.mnMinor = 0;
++            m_aConfigVerNum.mnMicro = 0;
++            return sal_True;
++        }
++
++        return isMigrationNeeded(aLastVersion, m_aAppVerStr, m_aConfigVerNum, m_aAppVerNum);
++    }
++    catch (const Exception&)
++    {
++    }
++    return sal_True;
+ }
+ 
+ MigrationImpl::MigrationImpl(const Reference< XMultiServiceFactory >& xFactory)
+@@ -148,6 +285,7 @@ MigrationImpl::MigrationImpl(const Reference< XMultiServiceFactory >& xFactory)
+     , m_aInfo(findInstallation())    
+     , m_vrFileList(compileFileList())
+     , m_vrServiceList(compileServiceList())
++    , m_bMigrationCompleted(false)
+ {
+ }
+ 
+@@ -158,28 +296,13 @@ MigrationImpl::~MigrationImpl()
+ 
+ sal_Bool MigrationImpl::doMigration()
+ {
+-    sal_Bool result = sal_False;
+-    try{
+-        copyFiles();
+-
+-		// execute the migration items from Setup.xcu 
+-		// and refresh the cache
+-        copyConfig();
+-		refresh();
+-
+-		// execute custom migration services from Setup.xcu
+-		// and refresh the cache
+-        runServices();            
+-        refresh();
+-		
+-
+-        result = sal_True;
+-    } catch (...)
++    try
++    {
++        transKeyConfig();
++        cleanCSVImportCharSet();
++    }
++    catch (const Exception&)
+     {
+-        OString aMsg("An unexpected exception was thrown during migration");
+-        aMsg += "\nOldVersion: " + OUStringToOString(m_aInfo.productname, RTL_TEXTENCODING_ASCII_US);
+-        aMsg += "\nDataPath  : " + OUStringToOString(m_aInfo.userdata, RTL_TEXTENCODING_ASCII_US);
+-        OSL_ENSURE(sal_False, aMsg.getStr());
+     }
+ 
+ 	// prevent running the migration multiple times
+@@ -187,42 +310,83 @@ sal_Bool MigrationImpl::doMigration()
+     return sal_False;
+ }
+ 
+-void MigrationImpl::refresh()
++void MigrationImpl::transKeyConfig()
+ {
+-    Reference< XRefreshable > xRefresh(m_xFactory->createInstance(
+-                OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider")), UNO_QUERY);
+-    if (xRefresh.is())
+-        xRefresh->refresh();
+-    else
+-        OSL_ENSURE(sal_False, "could not get XRefresh interface from default config provider. No refresh done.");    
+-            
++    using namespace ::com::sun::star;
++    using namespace ::com::sun::star::ui;
++
++#if 0
++    fprintf(stdout, "MigrationImpl::transKeyConfig:   config ver = %ld.%ld.%ld\n",
++            m_aConfigVerNum.mnMajor, m_aConfigVerNum.mnMinor, m_aConfigVerNum.mnMicro);
++
++    fprintf(stdout, "MigrationImpl::transKeyConfig:   app ver = %ld.%ld.%ld\n",
++            m_aAppVerNum.mnMajor, m_aAppVerNum.mnMinor, m_aAppVerNum.mnMicro);
++#endif
++
++    if (compareVersion(m_aConfigVerNum, VersionNumber(2,4,0)) < 0)
++    {
++        // For config versions older than 2.4.0 only.
++
++        Reference< XModuleUIConfigurationManagerSupplier > xModuleCfgSupplier(
++            m_xFactory->createInstance(
++                ascii("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")), UNO_QUERY_THROW);
++    
++        // Grab the Calc configuration.
++        Reference< XUIConfigurationManager > xConfigMgr = 
++            xModuleCfgSupplier->getUIConfigurationManager(
++                ascii("com.sun.star.sheet.SpreadsheetDocument"));
++    
++        if (xConfigMgr.is())
++        {
++            Reference< XAcceleratorConfiguration > xScAccel(
++                xConfigMgr->getShortCutManager(), UNO_QUERY_THROW);
++        
++            // Backsapce key
++            awt::KeyEvent aBackEv;
++            aBackEv.KeyCode = awt::Key::BACKSPACE;
++            aBackEv.Modifiers = 0;
++            xScAccel->setKeyEvent(aBackEv, ascii(".uno:Delete"));
++        
++            // Delete key
++            awt::KeyEvent aDeleteEv;
++            aDeleteEv.KeyCode = awt::Key::DELETE;
++            aDeleteEv.Modifiers = 0;
++            xScAccel->setKeyEvent(aDeleteEv, ascii(".uno:ClearContents"));
++        
++            xScAccel->store();
++        }
++    }
+ }
+ 
+-void MigrationImpl::setMigrationCompleted() 
++void MigrationImpl::cleanCSVImportCharSet()
+ {
+-	try {
+-		Reference< XPropertySet > aPropertySet(getConfigAccess("org.openoffice.Setup/Office", true), UNO_QUERY_THROW);
+-		aPropertySet->setPropertyValue(OUString::createFromAscii("MigrationCompleted"), makeAny(sal_True));
+-		Reference< XChangesBatch >(aPropertySet, UNO_QUERY_THROW)->commitChanges();
+-	} catch (...) {
+-		// fail silently
+-	}
++    // Overwrite the character set value for CSV import to -1 (unset) on every 
++    // upgrade, to prevent it from being incorrectly set to Unicode. (n#376473)
++
++    Reference< XPropertySet > aPropSet;
++    aPropSet.set(getConfigAccess("org.openoffice.Office.Calc/Dialogs/CSVImport", true), UNO_QUERY_THROW);
++    aPropSet->setPropertyValue(ascii("CharSet"), makeAny(static_cast<sal_Int32>(-1)));
++    Reference< XChangesBatch >(aPropSet, UNO_QUERY_THROW)->commitChanges();
+ }
+ 
+-sal_Bool MigrationImpl::checkMigrationCompleted() 
++void MigrationImpl::setMigrationCompleted() 
+ {
+-    sal_Bool bMigrationCompleted = sal_False;
+-    try {
+-        Reference< XPropertySet > aPropertySet(
+-            getConfigAccess("org.openoffice.Setup/Office"), UNO_QUERY_THROW);    
+-        aPropertySet->getPropertyValue(
+-            OUString::createFromAscii("MigrationCompleted")) >>= bMigrationCompleted;
+-    } catch (Exception&) {
+-        // just return false...
+-    }
+-    return bMigrationCompleted;
+-}
++	try
++    {
++        Reference< XPropertySet > aPropSet;
++        if (m_aAppVerStr.getLength() > 0)
++        {
++            aPropSet.set(getConfigAccess("org.openoffice.Setup/Configuration", true), UNO_QUERY_THROW);
++            aPropSet->setPropertyValue(ascii("ooLastVersionTouched"), makeAny(m_aAppVerStr));
++            Reference< XChangesBatch >(aPropSet, UNO_QUERY_THROW)->commitChanges();
++        }
+ 
++        m_bMigrationCompleted = true;
++	} 
++    catch (const Exception&)
++    {
++	}
++}
+ 
+ migrations_vr MigrationImpl::readMigrationSteps()
+ {
+@@ -442,82 +606,6 @@ strings_vr MigrationImpl::compileFileList()
+     return vrResult;
+ }
+ 
+-
+-void MigrationImpl::copyConfig()
+-{
+-    try {
+-        // 1. get a list of all components from hierachy browser
+-        Reference< XJob > xBrowser(m_xFactory->createInstance(
+-            OUString::createFromAscii("com.sun.star.configuration.backend.LocalHierarchyBrowser")), UNO_QUERY_THROW);
+-
+-        Sequence< NamedValue > seqArgs(2);
+-        seqArgs[0] = NamedValue(
+-            OUString::createFromAscii("LayerDataUrl"),
+-            makeAny(m_aInfo.userdata + OUString::createFromAscii("/user/registry")));
+-        seqArgs[1] = NamedValue(
+-            OUString::createFromAscii("FetchComponentNames"),
+-            makeAny(sal_True));
+-
+-        // execute the search
+-        Any aResult = xBrowser->execute(seqArgs);
+-        Sequence< OUString > seqComponents;
+-        aResult >>= seqComponents;
+-        OSL_ENSURE(seqComponents.getLength()>0, "MigrationImpl::copyConfig(): no config components available");
+-                    
+-        // 2. create an importer 
+-        Reference< XJob > xImporter(m_xFactory->createInstance(
+-            OUString::createFromAscii("com.sun.star.configuration.backend.LocalDataImporter")), UNO_QUERY_THROW);
+-
+-        // 3. for each migration step...
+-        Sequence< NamedValue > importerArgs(3);
+-        importerArgs[0] = NamedValue(
+-            OUString::createFromAscii("LayerDataUrl"),
+-            makeAny(m_aInfo.userdata + OUString::createFromAscii("/user/registry")));
+-        importerArgs[1] = NamedValue(
+-            OUString::createFromAscii("LayerFilter"),
+-            Any());        
+-        importerArgs[2] = NamedValue(
+-            OUString::createFromAscii("Component"),
+-            Any());        
+-
+-        migrations_v::const_iterator i_mig = m_vrMigrations->begin();
+-        while (i_mig != m_vrMigrations->end())
+-        {
+-            //   a. create config filter for step            
+-            Reference< XInitialization > xFilter(
+-                new CConfigFilter(&(i_mig->includeConfig), &(i_mig->excludeConfig)));
+-            importerArgs[1].Value = makeAny(xFilter);
+-
+-            //   b. run each importer with config filter
+-            for (sal_Int32 i=0; i<seqComponents.getLength(); i++)
+-            {
+-                OUString component = seqComponents[i];
+-                importerArgs[2].Value = makeAny(seqComponents[i]);                
+-                try {
+-                    aResult = xImporter->execute(importerArgs);
+-                    Exception myException;
+-                    if (aResult >>= myException) throw myException;
+-                } catch(Exception& aException) {
+-                    OString aMsg("Exception in config layer import.\ncomponent: ");
+-                    aMsg += OUStringToOString(seqComponents[i], RTL_TEXTENCODING_ASCII_US);
+-                    aMsg += "\nmessage: ";
+-                    aMsg += OUStringToOString(aException.Message, RTL_TEXTENCODING_ASCII_US);
+-                    OSL_ENSURE(sal_False, aMsg.getStr());
+-                }
+-            }
+-            i_mig++;
+-        }
+-    }
+-    catch (Exception& e)
+-    {
+-        OString aMsg("Exception in config layer import.\nmessage: ");
+-        aMsg += OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US);
+-        OSL_ENSURE(sal_False, aMsg.getStr());            
+-    }    
+-
+-
+-}
+-
+ // removes elements of vector 2 in vector 1
+ void MigrationImpl::substract(strings_v& va, const strings_v& vb_c) const
+ {
+@@ -597,123 +685,6 @@ static FileBase::RC _checkAndCreateDirectory(INetURLObject& dirURL)
+         return result;
+ }       
+ 
+-void MigrationImpl::copyFiles()
+-{
+-    strings_v::const_iterator i_file = m_vrFileList->begin();
+-    OUString localName;
+-    OUString destName;
+-    OUString userInstall;
+-    utl::Bootstrap::PathStatus aStatus;
+-    aStatus = utl::Bootstrap::locateUserInstallation(userInstall);
+-    if (aStatus == utl::Bootstrap::PATH_EXISTS)
+-    {
+-        while (i_file != m_vrFileList->end())
+-        {
+-            
+-            // remove installation prefix from file
+-            localName = i_file->copy(m_aInfo.userdata.getLength());
+-            destName = userInstall + localName;
+-            INetURLObject aURL(destName);
+-            // check whether destination directory exists
+-            aURL.removeSegment();
+-            _checkAndCreateDirectory(aURL);            
+-            FileBase::RC copyResult = File::copy(*i_file, destName);
+-            if (copyResult != FileBase::E_None)
+-            {
+-                OString msg("Cannot copy ");
+-                msg += OUStringToOString(*i_file, RTL_TEXTENCODING_UTF8) + " to "
+-                    +  OUStringToOString(destName, RTL_TEXTENCODING_UTF8);
+-                OSL_ENSURE(sal_False, msg.getStr());
+-            }
+-            i_file++;
+-        }
+-    } 
+-    else
+-    {
+-        OSL_ENSURE(sal_False, "copyFiles: UserInstall does not exist");
+-    }
+-}
+-
+-void MigrationImpl::runServices()
+-{
+-    
+-    //create stratum for old user layer
+-    OUString aOldLayerURL = m_aInfo.userdata;
+-    aOldLayerURL += OUString::createFromAscii("/user/registry");
+-    OUString aStratumSvc = OUString::createFromAscii("com.sun.star.configuration.backend.LocalSingleStratum");
+-    Sequence< Any > stratumArgs(1);
+-    stratumArgs[0] = makeAny(aOldLayerURL);
+-    Reference< XSingleLayerStratum> xStartum( m_xFactory->createInstanceWithArguments(
+-        aStratumSvc, stratumArgs), UNO_QUERY);   
+-
+-    // Build argument array
+-    Sequence< Any > seqArguments(3);
+-    seqArguments[0] = makeAny(NamedValue(
+-        OUString::createFromAscii("Productname"),
+-        makeAny(m_aInfo.productname)));
+-    seqArguments[1] = makeAny(NamedValue(
+-        OUString::createFromAscii("UserData"),
+-        makeAny(m_aInfo.userdata)));
+-
+-
+-    // create an instance of every migration service
+-    // and execute the migration job
+-    Reference< XJob > xMigrationJob;
+-
+-    migrations_v::const_iterator i_mig  = m_vrMigrations->begin();    
+-    while (i_mig != m_vrMigrations->end())
+-    {
+-        if( i_mig->service.getLength() > 0)
+-        {
+-            
+-            try
+-            {
+-                // create access to old configuration components in the user layer
+-                // that were requested by the migration service
+-                Sequence< NamedValue > seqComponents(i_mig->configComponents.size());
+-                strings_v::const_iterator i_comp = i_mig->configComponents.begin();
+-                sal_Int32 i = 0;
+-                while (i_comp != i_mig->configComponents.end() && xStartum.is())
+-                {
+-                    // create Layer for i_comp
+-                    seqComponents[i] =  NamedValue(
+-                        *i_comp, makeAny(xStartum->getLayer(*i_comp, OUString())));
+-
+-                    // next component
+-                    i_comp++;
+-                    i++;
+-                }
+-                // set old config argument
+-                seqArguments[2] = makeAny(NamedValue(
+-                    OUString::createFromAscii("OldConfiguration"),
+-                    makeAny(seqComponents)));
+-
+-                xMigrationJob = Reference< XJob >(m_xFactory->createInstanceWithArguments(
+-                    i_mig->service, seqArguments), UNO_QUERY_THROW);
+-
+-                xMigrationJob->execute(Sequence< NamedValue >());
+-
+-
+-            } catch (Exception& e)
+-            {
+-                OString aMsg("Execution of migration service failed (Exception caught).\nService: ");
+-                aMsg += OUStringToOString(i_mig->service, RTL_TEXTENCODING_ASCII_US) + "\nMessage: ";
+-                aMsg += OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US);
+-                OSL_ENSURE(sal_False, aMsg.getStr());
+-            } catch (...)
+-            {
+-                OString aMsg("Execution of migration service failed (Exception caught).\nService: ");
+-                aMsg += OUStringToOString(i_mig->service, RTL_TEXTENCODING_ASCII_US) + 
+-					"\nNo message available";
+-                OSL_ENSURE(sal_False, aMsg.getStr());
+-            }
+-
+-        }
+-        i_mig++;
+-    }
+-}
+-
+-
+ strings_vr MigrationImpl::compileServiceList()
+ {
+     strings_vr vrResult(new strings_v);
+diff --git a/desktop/source/migration/migration_impl.hxx b/desktop/source/migration/migration_impl.hxx
+index b31a2a9..5553d04 100644
+--- desktop/source/migration/migration_impl.hxx
++++ desktop/source/migration/migration_impl.hxx
+@@ -81,6 +81,16 @@ typedef std::auto_ptr< migrations_v > migrations_vr;
+ 
+ class MigrationImpl
+ {
++public:
++    struct VersionNumber
++    {
++        sal_Int32 mnMajor;
++        sal_Int32 mnMinor;
++        sal_Int32 mnMicro;
++
++        explicit VersionNumber();
++        explicit VersionNumber(sal_Int32 nMajor, sal_Int32 nMinor, sal_Int32 nMicro);
++    };
+ 
+ private:
+     strings_vr m_vrVersions;
+@@ -90,6 +100,10 @@ private:
+     strings_vr m_vrFileList;      // final list of files to be copied
+     strings_vr m_vrConfigList;    // final list of nodes to be copied
+     strings_vr m_vrServiceList;   // final list of services to be called
++    ::rtl::OUString m_aAppVerStr;
++    bool m_bMigrationCompleted;
++    VersionNumber m_aAppVerNum;
++    VersionNumber m_aConfigVerNum;
+ 
+     // initializer functions...
+     migrations_vr readMigrationSteps();
+@@ -104,14 +118,10 @@ private:
+     strings_vr applyPatterns(const strings_v& vSet, const strings_v& vPatterns) const;
+     NS_UNO::Reference< NS_CSS::container::XNameAccess > getConfigAccess(const sal_Char* path, sal_Bool rw=sal_False);
+ 
+-    // actual processing function that perform the migration steps
+-    void copyFiles();
+-    void copyConfig();
+-    void runServices();
+-    void refresh();
++    void transKeyConfig();
++    void cleanCSVImportCharSet();
+ 
+     void setMigrationCompleted();
+-    sal_Bool checkMigrationCompleted();
+     
+ public:
+     MigrationImpl(const NS_UNO::Reference< NS_CSS::lang::XMultiServiceFactory >&);
+diff --git a/officecfg/registry/schema/org/openoffice/Setup.xcs b/officecfg/registry/schema/org/openoffice/Setup.xcs
+index 5c11fb4..bae1820 100644
+--- officecfg/registry/schema/org/openoffice/Setup.xcs
++++ officecfg/registry/schema/org/openoffice/Setup.xcs
+@@ -422,6 +422,14 @@
+                     <desc>Deprecated</desc>
+ 				</info>
+ 			</prop>
++            <prop oor:name="ooLastVersionTouched" oor:type="xs:string">
++                <info>
++                    <author>Kohei Yoshida</author>
++                    <desc>Specifies the version of OOo that touched the configration for the last time.  The format must 
++                    be in the form of major.minor.micro (e.g. 2.3.1).  Note that this value may not always be present if the 
++                    last touched version is very old.</desc>
++                </info>
++            </prop>
+ 		</group>
+ 		<group oor:name="Migration">
+ 			<info>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mozilla-firefox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mozilla-firefox.diff
@@ -0,0 +1,11 @@
+--- config_office/configure.in.mozff	2007-01-30 19:59:21.000000000 +0100
++++ config_office/configure.in	2007-02-01 12:43:06.000000000 +0100
+@@ -3615,7 +3615,7 @@
+     SYSTEM_MOZILLA=YES
+     AC_MSG_CHECKING([which Mozilla flavour to use])
+     if test -n "$with_firefox" && test "$with_firefox" != "no"; then
+-      MOZ_FLAVOUR=firefox
++      MOZ_FLAVOUR=mozilla-firefox
+     elif test -n "$with_seamonkey" && test "$with_seamonkey" != "no"; then
+       MOZ_FLAVOUR=seamonkey
+     elif test -n "$with_xulrunner" && test "$with_xulrunner" != "no"; then
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-no-registration-menu.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-no-registration-menu.diff
@@ -0,0 +1,260 @@
+Index: basctl/uiconfig/basicide/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/script/basctl/uiconfig/basicide/menubar/menubar.xml,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 menubar.xml
+--- basctl/uiconfig/basicide/menubar/menubar.xml	16 Nov 2004 15:19:18 -0000	1.8
++++ basctl/uiconfig/basicide/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -82,7 +82,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: dbaccess/uiconfig/dbapp/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/dba/dbaccess/uiconfig/dbapp/menubar/menubar.xml,v
+retrieving revision 1.6
+diff -u -p -u -r1.6 menubar.xml
+--- dbaccess/uiconfig/dbapp/menubar/menubar.xml	17 Nov 2004 14:54:32 -0000	1.6
++++ dbaccess/uiconfig/dbapp/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -132,7 +132,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: dbaccess/uiconfig/dbbrowser/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/dba/dbaccess/uiconfig/dbbrowser/menubar/menubar.xml,v
+retrieving revision 1.6
+diff -u -p -u -r1.6 menubar.xml
+--- dbaccess/uiconfig/dbbrowser/menubar/menubar.xml	23 Sep 2005 12:48:06 -0000	1.6
++++ dbaccess/uiconfig/dbbrowser/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -64,7 +64,6 @@
+ 			<menu:menuitem menu:id=".uno:ActiveHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: dbaccess/uiconfig/dbquery/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/dba/dbaccess/uiconfig/dbquery/menubar/menubar.xml,v
+retrieving revision 1.7
+diff -u -p -u -r1.7 menubar.xml
+--- dbaccess/uiconfig/dbquery/menubar/menubar.xml	16 Nov 2004 14:33:54 -0000	1.7
++++ dbaccess/uiconfig/dbquery/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -78,7 +78,6 @@
+ 			<menu:menuitem menu:id=".uno:ActiveHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: dbaccess/uiconfig/dbquery/menubar/menubar.xml
+Index: dbaccess/uiconfig/dbrelation/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/dba/dbaccess/uiconfig/dbrelation/menubar/menubar.xml,v
+retrieving revision 1.6
+diff -u -p -u -r1.6 menubar.xml
+--- dbaccess/uiconfig/dbrelation/menubar/menubar.xml	16 Nov 2004 14:34:06 -0000	1.6
++++ dbaccess/uiconfig/dbrelation/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -61,7 +61,6 @@
+ 			<menu:menuitem menu:id=".uno:ActiveHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: dbaccess/uiconfig/dbtable/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/dba/dbaccess/uiconfig/dbtable/menubar/menubar.xml,v
+retrieving revision 1.6
+diff -u -p -u -r1.6 menubar.xml
+--- dbaccess/uiconfig/dbtable/menubar/menubar.xml	16 Nov 2004 14:34:22 -0000	1.6
++++ dbaccess/uiconfig/dbtable/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -62,7 +62,6 @@
+ 			<menu:menuitem menu:id=".uno:ActiveHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: framework/uiconfig/startmodule/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/framework/framework/uiconfig/startmodule/menubar/menubar.xml,v
+retrieving revision 1.9
+diff -u -p -u -r1.9 menubar.xml
+--- framework/uiconfig/startmodule/menubar/menubar.xml	16 Nov 2004 14:57:41 -0000	1.9
++++ framework/uiconfig/startmodule/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -75,7 +75,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: chart2/uiconfig/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/graphics/chart2/uiconfig/menubar/menubar.xml,v
+retrieving revision 1.3
+diff -u -p -u -r1.3 menubar.xml
+--- chart2/uiconfig/menubar/menubar.xml	9 Nov 2004 18:31:58 -0000	1.3
++++ chart2/uiconfig/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -131,7 +131,6 @@
+ 			<menu:menuitem menu:id=".uno:ActiveHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: sc/uiconfig/scalc/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/sc/sc/uiconfig/scalc/menubar/menubar.xml,v
+retrieving revision 1.21
+diff -u -p -u -r1.21 menubar.xml
+--- sc/uiconfig/scalc/menubar/menubar.xml	16 Nov 2005 10:15:26 -0000	1.21
++++ sc/uiconfig/scalc/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -427,7 +426,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: sd/uiconfig/sdraw/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/graphics/sd/uiconfig/sdraw/menubar/menubar.xml,v
+retrieving revision 1.22
+diff -u -p -u -r1.22 menubar.xml
+--- sd/uiconfig/sdraw/menubar/menubar.xml	16 Nov 2005 09:23:48 -0000	1.22
++++ sd/uiconfig/sdraw/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -314,7 +310,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: sd/uiconfig/simpress/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/graphics/sd/uiconfig/simpress/menubar/menubar.xml,v
+retrieving revision 1.24
+diff -u -p -u -r1.24 menubar.xml
+--- sd/uiconfig/simpress/menubar/menubar.xml	16 Nov 2005 09:25:04 -0000	1.24
++++ sd/uiconfig/simpress/menubar/menubar.xml	15 Feb 2006 11:59:33 -0000
+@@ -287,7 +284,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: starmath/uiconfig/smath/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/sw/starmath/uiconfig/smath/menubar/menubar.xml,v
+retrieving revision 1.11
+diff -u -p -u -r1.11 menubar.xml
+--- starmath/uiconfig/smath/menubar/menubar.xml	9 Sep 2004 16:32:46 -0000	1.11
++++ starmath/uiconfig/smath/menubar/menubar.xml	15 Feb 2006 11:59:34 -0000
+@@ -111,7 +111,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: sw/uiconfig/sglobal/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/sw/sw/uiconfig/sglobal/menubar/menubar.xml,v
+retrieving revision 1.19
+diff -u -p -u -r1.19 menubar.xml
+--- sw/uiconfig/sglobal/menubar/menubar.xml	16 Nov 2005 09:54:22 -0000	1.19
++++ sw/uiconfig/sglobal/menubar/menubar.xml	15 Feb 2006 11:59:34 -0000
+@@ -433,7 +429,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: sw/uiconfig/sweb/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/sw/sw/uiconfig/sweb/menubar/menubar.xml,v
+retrieving revision 1.18
+diff -u -p -u -r1.18 menubar.xml
+--- sw/uiconfig/sweb/menubar/menubar.xml	16 Nov 2005 09:55:48 -0000	1.18
++++ sw/uiconfig/sweb/menubar/menubar.xml	15 Feb 2006 11:59:34 -0000
+@@ -361,7 +357,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+Index: sw/uiconfig/swriter/menubar/menubar.xml
+===================================================================
+RCS file: /cvs/sw/sw/uiconfig/swriter/menubar/menubar.xml,v
+retrieving revision 1.20
+diff -u -p -u -r1.20 menubar.xml
+--- sw/uiconfig/swriter/menubar/menubar.xml	16 Nov 2005 09:57:09 -0000	1.20
++++ sw/uiconfig/swriter/menubar/menubar.xml	15 Feb 2006 11:59:34 -0000
+@@ -434,7 +431,6 @@
+ 			<menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:HelpSupport"/>
+-			<menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+ 			<menu:menuseparator/>
+ 			<menu:menuitem menu:id=".uno:About"/>
+ 		</menu:menupopup>
+
+
+This piece is ~obsolete & pointless:
+
+
+Index: svx/inc/globlmn_tmpl.hrc
+===================================================================
+RCS file: /cvs/graphics/svx/inc/globlmn_tmpl.hrc,v
+retrieving revision 1.2
+diff -u -p -u -r1.2 globlmn_tmpl.hrc
+--- svx/inc/globlmn_tmpl.hrc	25 Jun 2004 11:46:55 -0000	1.2
++++ svx/inc/globlmn_tmpl.hrc	26 Nov 2004 12:10:29 -0000
+@@ -1388,10 +1388,6 @@
+                 {\
+ 					ITEM_HELP_SUPPORTPAGE\
+ 				};\
+-				MenuItem\
+-                {\
+-					ITEM_HELP_ONLINE_REGISTRATION\
+-				};\
+                 MenuItem\
+                 {\
+                     Separator = TRUE ; \
+--- reportdesign/uiconfig/dbreport/menubar/menubar.xml-old     2007-08-20 13:36:30.000000000 +0200
++++ reportdesign/uiconfig/dbreport/menubar/menubar.xml 2007-08-20 13:36:41.000000000 +0200
+@@ -159,7 +159,6 @@
+                        <menu:menuitem menu:id=".uno:HelperDialog"/>
+                        <menu:menuseparator/>
+                        <menu:menuitem menu:id=".uno:HelpSupport"/>
+-                       <menu:menuitem menu:id=".uno:OnlineRegistrationDlg"/>
+                        <menu:menuseparator/>
+                        <menu:menuitem menu:id=".uno:About"/>
+                </menu:menupopup>
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-embeddedobj.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-embeddedobj.diff
@@ -0,0 +1,10 @@
+--- embeddedobj/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ embeddedobj/prj/tests.lst	2007-09-07 14:38:11.000000000 +0200
+@@ -0,0 +1,7 @@
++eo   embeddedobj\qa\embedding                           nmake - all eo_qa_embedding NULL
++
++# older tests:
++#does not build: eo   embeddedobj\test\Container1\nativelib              nmake - all eo_test_Container1_nativelib eo_util NULL
++#does not build: eo   embeddedobj\test\Container1                        nmake - all eo_test_Container1 eo_util NULL
++#does not build: eo   embeddedobj\test\MainThreadExecutor                nmake - all eo_test_MainThreadExecutor eo_util NULL
++#does not build: eo   embeddedobj\test\mtexecutor                        nmake - all eo_test_mtexecutor eo_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-db-check.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-db-check.diff
@@ -0,0 +1,76 @@
+--- config_office/configure.in.orig	2007-07-15 16:45:32.000000000 +0200
++++ config_office/configure.in	2007-07-15 16:48:19.000000000 +0200
+@@ -3277,14 +3277,12 @@
+ 	test "$with_system_db" != "no"; then
+     SYSTEM_DB=YES
+     AC_MSG_RESULT([external])
+-    AC_CHECK_HEADER(db.h, [ DB_INCLUDES=/usr/include ],
+-        [
+-             CFLAGS=-I/usr/include/db4
+-             AC_CHECK_HEADER(db4/db.h,
+-             [ DB_INCLUDES=/usr/include/db4 ],
+-             [ AC_MSG_ERROR(no. install the db4 libraries) ], []+             )
+-        ], []
+-    )
++    for dbver in -4.6 4.6 -4.5 4.5 -4.4 4.4 -4.3 4.3 -4.2 4.2 -4.1 4.1 -4 4 ''; do
++       AC_CHECK_HEADER(db$dbver/db.h, [ DB_INCLUDES="/usr/include/db$dbver"; break ])
++    done
++    if test "$DB_INCLUDES" = ""; then
++       AC_MSG_ERROR(no. install the db4-dev package)
++    fi
+     AC_MSG_CHECKING([whether db is at least 4.1])
+     for v in 1 2 3 4 5; do
+        AC_TRY_RUN([
+@@ -3302,12 +3300,13 @@
+     else
+        AC_MSG_RESULT([no. you need at least db 4.1])
+     fi
+-    # does not work :/
+-    #AC_CHECK_LIB(db, db_create, [],
+-    #  [AC_MSG_ERROR([db library not installed or functional])], [])
+-    AC_HAVE_LIBRARY(db, [],
+-      [AC_MSG_ERROR([db not installed or functional])], [])
+-    SCPDEFS="$SCPDEFS -DSYSTEM_DB"
++    save_LIBS="$LIBS"
++    for dbver in -4.6 4.6 -4.5 4.5 -4.4 4.4 -4.3 4.3 -4.2 4.2 -4.1 4.1 -4 4 ''; do
++       AC_CHECK_LIB(db$dbver, db_create, [ DB_LIB="db$dbver"; DB_CPPLIB="db_cxx$dbver"; LIBS="-ldb$dbver $LIBS"; break ])
++    done
++    AC_CHECK_FUNC(db_create, [], [ AC_MSG_ERROR([db not installed or functional]) ])
++    LIBS="$save_LIBS"
++   SCPDEFS="$SCPDEFS -DSYSTEM_DB"
+ else
+     AC_MSG_RESULT([internal])
+     SYSTEM_DB=NO
+@@ -3315,6 +3314,8 @@
+ fi
+ AC_SUBST(SYSTEM_DB)
+ AC_SUBST(DB_VERSION)
++AC_SUBST(DB_LIB)
++AC_SUBST(DB_CPPLIB)
+ AC_SUBST(DB_INCLUDES)
+ AC_SUBST(DB_JAR)
+ 
+--- config_office/set_soenv.in.orig	2007-07-15 16:45:39.000000000 +0200
++++ config_office/set_soenv.in	2007-07-15 16:48:37.000000000 +0200
+@@ -1832,6 +1832,8 @@
+ ToFile( "SYSTEM_EXPAT",      "@SYSTEM_EXPAT@",     "e" );
+ ToFile( "SYSTEM_DB",         "@SYSTEM_DB@",        "e" );
+ ToFile( "DB_VERSION",        "@DB_VERSION@",       "e" );
++ToFile( "DB_LIB",            "@DB_LIB@",           "e" );
++ToFile( "DB_CPPLIB",         "@DB_CPPLIB@",        "e" );
+ ToFile( "DB_INCLUDES",       "@DB_INCLUDES@",      "e" );
+ ToFile( "SYSTEM_HSQLDB",     "@SYSTEM_HSQLDB@",    "e" );
+ ToFile( "HSQLDB_JAR",        "@HSQLDB_JAR@",       "e" );
+--- solenv/inc/libs.mk.orig	2007-07-15 16:45:47.000000000 +0200
++++ solenv/inc/libs.mk	2007-07-15 16:49:00.000000000 +0200
+@@ -220,8 +220,8 @@
+ CURLLIB=-lcurl-3
+ .ELSE
+ .IF "$(SYSTEM_DB)" == "YES"
+-BERKELEYLIB=-ldb
+-BERKELEYCPPLIB=-ldb_cxx
++BERKELEYLIB=-l$(DB_LIB)
++BERKELEYCPPLIB=-l$(DB_CPPLIB)
+ .ELSE
+ BERKELEYLIB=-ldb-4.2
+ BERKELEYCPPLIB=-ldb_cxx-4.2
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/i27928-extended-tips-on.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/i27928-extended-tips-on.diff
@@ -0,0 +1,11 @@
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs.orig	2007-08-10 19:13:05.000000000 +0200
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2007-09-12 15:16:05.755118800 +0200
+@@ -3257,7 +3257,7 @@
+ 					<desc>Activates the Extended help.</desc>
+ 					<label>Extended Tips</label>
+ 				</info>
+-				<value>false</value>
++				<value>true</value>
+ 			</prop>
+ 			<prop oor:name="HelpStyleSheet" oor:type="xs:string">
+ 				<info>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-sw.diff
@@ -0,0 +1,28 @@
+Index: sw/source/ui/shells/textdrw.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/shells/textdrw.cxx,v
+retrieving revision 1.12
+retrieving revision 1.11.460.2
+diff -u -p -u -p -r1.12 -r1.11.460.2
+--- sw/source/ui/shells/textdrw.cxx	27 Sep 2007 12:29:48 -0000	1.12
++++ sw/source/ui/shells/textdrw.cxx	4 Oct 2007 15:21:23 -0000	1.11.460.2
+@@ -86,9 +86,7 @@
+ #ifndef SVTOOLS_URIHELPER_HXX
+ #include <svtools/urihelper.hxx>
+ #endif
+-#ifndef _SV_SOUND_HXX
+-#include <vcl/sound.hxx>
+-#endif
++#include <avmedia/mediawindow.hxx>
+ 
+ #include <unomid.h>
+ 
+@@ -162,7 +160,7 @@ void SwBaseShell::InsertURLButton(const 
+ 			aTmp.setValue( &eButtonType, ::getCppuType((const form::FormButtonType*)0));
+ 			xPropSet->setPropertyValue( C2U("ButtonType"), aTmp );
+ 
+-			if ( Sound::IsSoundFile( rURL ) )
++			if ( ::avmedia::MediaWindow::isMediaURL( rURL ) )
+ 			{
+ 				// #105638# OJ
+ 				aTmp <<= sal_True;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-tools.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-tools.diff
@@ -0,0 +1,19 @@
+--- tools/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ tools/prj/tests.lst	2007-09-07 14:38:11.000000000 +0200
+@@ -0,0 +1,5 @@
++tl   tools\qa\urlobj                                    nmake - all tl_qa_urlobj tl_utl NULL
++
++# older tests:
++tl   tools\test                                         nmake - all tl_test tl_utl NULL
++tl   tools\workben                                      nmake - all tl_workben tl_utl NULL
+--- tools/qa/urlobj/tools_urlobj_test.cxx	2007-09-06 23:05:09.000000000 +0200
++++ tools/qa/urlobj/tools_urlobj_test.cxx	2007-09-07 16:21:20.000000000 +0200
+@@ -35,7 +35,7 @@
+  
+  #include <cppunit/simpleheader.hxx>
+  
+- #include <urlobj.hxx>
++ #include <tools/urlobj.hxx>
+  
+  namespace tools_urlobj
+  {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/internal-mesa-headers-config_office.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/internal-mesa-headers-config_office.diff
@@ -0,0 +1,43 @@
+--- config_office/configure.in	2008-03-17 12:31:19.000000000 +0100
++++ config_office/configure.in	2008-03-17 12:38:18.000000000 +0100
+@@ -440,6 +440,9 @@
+ AC_ARG_WITH(system-xrender,
+ [  --with-system-xrender-headers  Use XRender headers already on system
+ ],,)
++AC_ARG_WITH(system-mesa,
++[  --with-system-mesa-headers     Use Mesa headers already on system
++],,)
+ AC_ARG_WITH(system-curl,
+ [  --with-system-curl      Use curl already on system
+ ],,)
+@@ -4472,6 +4475,20 @@
+ AC_SUBST(XRENDER_LINK)
+ 
+ dnl ===================================================================
++dnl Check for system Mesa
++dnl ===================================================================
++AC_MSG_CHECKING([which Mesa headers to use])
++if test "$with_system_mesa_headers" == "no"; then
++   AC_MSG_RESULT([internal])
++   SYSTEM_MESA_HEADERS=NO
++   BUILD_TYPE="$BUILD_TYPE MESA"
++else
++   AC_MSG_RESULT([external])
++   SYSTEM_MESA_HEADERS=YES
++fi
++AC_SUBST(SYSTEM_MESA_HEADERS)
++
++dnl ===================================================================
+ dnl Check for building neon
+ dnl ===================================================================
+ AC_MSG_CHECKING([whether to use neon])
+--- config_office/set_soenv.in	2008-03-17 12:31:19.000000000 +0100
++++ config_office/set_soenv.in	2008-03-17 12:38:55.000000000 +0100
+@@ -2043,6 +2043,7 @@
+ ToFile( "LIBXSLT_LIBS",      "@LIBXSLT_LIBS@",     "e" );
+ ToFile( "SYSTEM_SANE_HEADER","@SYSTEM_SANE_HEADER@","e" );
+ ToFile( "SYSTEM_XRENDER_HEADERS","@SYSTEM_XRENDER_HEADERS@","e" );
++ToFile( "SYSTEM_MESA_HEADERS","@SYSTEM_MESA_HEADERS@","e" );
+ ToFile( "SYSTEM_CURL",       "@SYSTEM_CURL@",      "e" );
+ ToFile( "CURL_CFLAGS",       "@CURL_CFLAGS@",      "e" );
+ ToFile( "CURL_LIBS",         "@CURL_LIBS@",        "e" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2-user-config-ooo-2.0.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2-user-config-ooo-2.0.diff
@@ -0,0 +1,11 @@
+--- scp2/source/ooo/profileitem_ooo.scp.old	2006-10-11 11:29:58.000000000 +0200
++++ scp2/source/ooo/profileitem_ooo.scp	2007-01-11 12:26:01.000000000 +0100
+@@ -95,7 +95,7 @@
+   #elif defined MACOSX
+     Value = "$SYSUSERCONFIG/%ONEWORDPRODUCTNAME/%USERDIRPRODUCTVERSION";
+   #else
+-    Value = "$SYSUSERCONFIG/.%LCONEWORDPRODUCTNAME%USERDIRPRODUCTVERSION";
++    Value = "$SYSUSERCONFIG/.ooo-2.0";
+   #endif
+     StandaloneValue = "$ORIGIN/..";
+ End
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wpsimport-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wpsimport-scp2.diff
@@ -0,0 +1,21 @@
+--- scp2/source/ooo/file_library_ooo.scp	25 Apr 2007 16:18:25 -0000	1.230
++++ scp2/source/ooo/file_library_ooo.scp	7 May 2007 09:32:38 -0000	1.216.6.4
+@@ -1432,6 +1432,8 @@ End
+ 
+ STD_UNO_LIB_FILE_PATCH(gid_File_Lib_Wpft,wpft)
+ 
++STD_UNO_LIB_FILE_PATCH(gid_File_Lib_Msworks,msworks)
++
+ #if !defined(MACOSX) && ( !defined(SYSTEM_MOZILLA) && !defined(WITHOUT_MOZILLA) )
+ 
+ File gid_File_Lib_Mozabdrv
+--- scp2/source/writer/module_writer.scp	2 Jan 2007 15:31:51 -0000	1.17
++++ scp2/source/writer/module_writer.scp	29 Jan 2007 10:54:40 -0000	1.16.158.2
+@@ -53,6 +53,7 @@ Module gid_Module_Prg_Wrt_Bin
+     gid_File_Lib_Swd,
+     gid_File_Lib_Swui,
+     gid_File_Lib_Wpft,
++    gid_File_Lib_Msworks,
+     gid_File_Share_Config_Sofficecfg_Writer_Menubar_Xml,
+     gid_File_Share_Config_Sofficecfg_Writerweb_Menubar_Xml,
+     gid_File_Share_Config_Sofficecfg_Writerglobal_Menubar_Xml,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gui-toolbox-large-icons.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gui-toolbox-large-icons.diff
@@ -0,0 +1,16 @@
+--- ../ooo-build/build/src680-m55/officecfg/registry/schema/org/openoffice/Office/Common.xcs	2004-10-11 21:18:44.000000000 +0100
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2004-10-13 16:58:35.914719096 +0100
+@@ -4894,11 +4894,11 @@
+ 					</enumeration>
+ 					<enumeration oor:value="1">
+ 						<info>
+-							<desc>32x32 pixel icons</desc>
++							<desc>larger icons</desc>
+ 						</info>
+ 					</enumeration>
+ 				</constraints>
+-				<value>0</value>
++				<value>1</value>
+ 			</prop>
+ 			<prop oor:name="ToolboxStyle" oor:type="xs:short">
+ 				<!-- UIHints: Tools  Options General View -->
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-store.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-store.diff
@@ -0,0 +1,34 @@
+diff -u -r ../HEAD/build/src680-m211/store/source/storbase.hxx store/source/storbase.hxx
+--- store/source/storbase.hxx
++++ store/source/storbase.hxx
+@@ -883,6 +883,7 @@
+ 	 */
+ 	storeError verify ()
+ 	{
++        return store_E_None;
+ 		sal_uInt32 nCRC32 = 0;
+ 		nCRC32 = G::crc32 (nCRC32, &PageHeader ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
+ 		nCRC32 = G::crc32 (nCRC32, &PageHeader ().m_aDescr, size() - sizeof(G));
+diff -u -r ../HEAD/build/src680-m211/store/source/stordata.hxx store/source/stordata.hxx
+--- store/source/stordata.hxx
++++ store/source/stordata.hxx
+@@ -246,6 +246,7 @@
+ 	*/
+ 	storeError verify (const D& rDescr)
+ 	{
++        return store_E_None;
+ 		sal_uInt32 nCRC32 = 0;
+ 		nCRC32 = G::crc32 (nCRC32, &DataRepresentation ().m_aGuard.m_nMagic, sizeof(sal_uInt32));
+ 		nCRC32 = G::crc32 (nCRC32, DataRepresentation ().m_pData, capacity(rDescr));
+diff -u -r ../HEAD/build/src680-m211/store/source/stortree.cxx store/source/stortree.cxx
+--- store/source/stortree.cxx
++++ store/source/stortree.cxx
+@@ -253,6 +253,8 @@
+  */
+ storeError OStoreBTreeNodeObject::verify (const D& rDescr)
+ {
++    return store_E_None;
++
+ 	storeError eErrCode = base::verify (rDescr);
+ 	if (eErrCode != store_E_None)
+ 		return eErrCode;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-too-wide.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-too-wide.diff
@@ -0,0 +1,23 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx	2006-02-03 13:40:38.838645436 +0100
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2006-02-03 13:55:55.918717497 +0100
+@@ -70,6 +70,7 @@
+ #include <qlayout.h>
+ #include <qobjectlist.h>
+ #include <qpushbutton.h>
++#include <qregexp.h>
+ #include <qvbox.h>
+ 
+ #ifdef QT_NO_EMIT
+@@ -553,7 +554,11 @@ void FileDialog::appendFilter( const QSt
+     QString qFilter( rFilter );
+     qFilter.replace( QChar( ';' ), QChar( ' ' ) ).replace( "*.*", "*" );
+ 
+-    m_aFilters.push_back( qMakePair( rTitle, qFilter ) );
++    // Workaround for too wide <All formats> (*.bmp;...) entry
++    QString qTitle( rTitle );
++    qTitle.replace( QRegExp( "^<([^>]*)> \\(.*" ), "<\\1>" );
++
++    m_aFilters.push_back( qMakePair( qTitle, qFilter ) );
+ }
+ 
+ QString FileDialog::filters() const
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autocorrect-accidental-caps-lock-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autocorrect-accidental-caps-lock-sw.diff
@@ -0,0 +1,12 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sw.vpj sw.clean/source/core/edit/edws.cxx sw/source/core/edit/edws.cxx
+--- sw.clean/source/core/edit/edws.cxx	2008-02-28 19:19:41.000000000 -0500
++++ sw/source/core/edit/edws.cxx	2008-02-28 22:12:10.000000000 -0500
+@@ -364,7 +364,7 @@ void SwEditShell::AutoCorrect( SvxAutoCo
+ 	SwAutoCorrDoc aSwAutoCorrDoc( *this, *pCrsr, cChar );
+ 	rACorr.AutoCorrect( aSwAutoCorrDoc,
+ 					pTNd->GetTxt(), pCrsr->GetPoint()->nContent.GetIndex(),
+-					cChar, bInsert );
++					cChar, bInsert, GetWin() );
+ 	if( cChar )
+ 		SaveTblBoxCntnt( pCrsr->GetPoint() );
+ 	EndAllAction();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-helpcontent2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-helpcontent2.diff
@@ -0,0 +1,44 @@
+Index: helpcontent2/source/text/shared/01/gallery.xhp
+===================================================================
+RCS file: /cvs/documentation/helpcontent2/source/text/shared/01/gallery.xhp,v
+retrieving revision 1.4
+retrieving revision 1.4.238.2
+diff -u -p -u -p -r1.4 -r1.4.238.2
+--- helpcontent2/source/text/shared/01/gallery.xhp	7 Sep 2005 20:54:34 -0000	1.4
++++ helpcontent2/source/text/shared/01/gallery.xhp	31 Aug 2007 14:12:42 -0000	1.4.238.2
+@@ -51,9 +51,6 @@
+ <bookmark xml-lang="en-US" branch="hid/HID_GALLERY_LISTVIEW" id="bm_id3152821" localize="false"/>
+ <paragraph role="paragraph" id="par_id3148983" xml-lang="en-US" l10n="U" oldref="47"><ahelp hid="HID_GALLERY_LISTVIEW" visibility="hidden">Displays the contents of the <emph>Gallery </emph>as small icons, with title and path information.</ahelp></paragraph>
+ <section id="stargallery">
+-<bookmark xml-lang="en-US" branch="index" id="bm_id3153894"><bookmark_value>sounds; UNIX</bookmark_value>
+-<bookmark_value>audio; UNIX</bookmark_value>
+-</bookmark>
+ <bookmark xml-lang="en-US" branch="hid/SID_GALLERY" id="bm_id2975847" localize="false"/><!-- HID added by script -->
+ <bookmark xml-lang="en-US" branch="hid/.uno:Gallery" id="bm_id3150616" localize="false"/>
+ <paragraph role="heading" id="hd_id3153894" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/shared/01/gallery.xhp" name="Gallery">Gallery</link></paragraph>
+@@ -87,25 +84,5 @@
+ <embed href="text/shared/01/gallery_files.xhp#stargallerymanager"/>
+ <embed href="text/shared/00/00000010.xhp#hinzufuegen"/>
+ <bookmark xml-lang="en-US" branch="hid/HID_GALLERY_PREVIEW" id="bm_id3153896" localize="false"/><embed href="text/shared/00/00000010.xhp#vorschau"/>
+-<section id="unixaudio">
+-<paragraph role="heading" id="hd_id3145068" xml-lang="en-US" level="3" l10n="U" oldref="36"><switchinline select="sys">
+-<caseinline select="UNIX">Supported Audio Servers
+-</caseinline></switchinline></paragraph>
+-<paragraph role="paragraph" id="par_id3154936" xml-lang="en-US" l10n="U" oldref="37"><switchinline select="sys">
+-<caseinline select="UNIX">If your system cannot play sounds, install version 1.2 release 4 or higher of the Network Audio System (NAS). You can download NAS from ftp://ftp.x.org/pub/contrib/audio. Platforms that are supported by NAS include Linux x86 (provided that audio drivers are available for the card), SGI, HP, and SUN. You only need to install NAS on a server, and not on the clients.
+-</caseinline></switchinline></paragraph>
+-<paragraph role="paragraph" id="par_id3150542" xml-lang="en-US" l10n="U" oldref="38"><switchinline select="sys">
+-<caseinline select="UNIX">After you install NAS, add it as an AUDIOSERVER to the environment variables using the format "name:0".
+-</caseinline></switchinline></paragraph>
+-<paragraph role="paragraph" id="par_id3149649" xml-lang="en-US" l10n="U" oldref="39"><switchinline select="sys">
+-<caseinline select="UNIX">If you do not set the AUDIOSERVER variable, the DISPLAY variable is used instead (if the audio and video servers are on the same host). You cannot start the audio server from a command line.
+-</caseinline></switchinline></paragraph>
+-<paragraph role="paragraph" id="par_id3154141" xml-lang="en-US" l10n="U" oldref="40"><switchinline select="sys">
+-<caseinline select="UNIX">You can also use rplayd to play sound files, but only in X Window.
+-</caseinline></switchinline></paragraph>
+-<paragraph role="paragraph" id="par_id3150742" xml-lang="en-US" l10n="U" oldref="42"><switchinline select="sys">
+-<caseinline select="UNIX">Otherwise, use SalSound and the Open Sound System (OSS) to play sound files.
+-</caseinline></switchinline></paragraph>
+-</section>
+ </body>
+ </helpdocument>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-limited-bmp-subset-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-limited-bmp-subset-fix.diff
@@ -0,0 +1,30 @@
+--- vcl/source/gdi/outdev2.cxx	18 Jan 2008 14:55:58 -0000	1.38.72.1
++++ vcl/source/gdi/outdev2.cxx	28 Apr 2008 21:45:34 -0000
+@@ -739,7 +739,7 @@ void OutputDevice::ImplDrawBitmap( const
+                         }
+                         if( aPosAry.mnDestX < 0 )
+                         {
+-                            aPosAry.mnDestWidth += aPosAry.mnDestX;
++                            aPosAry.mnDestWidth = Max(long(0),aPosAry.mnDestWidth+aPosAry.mnDestX);
+                             aPosAry.mnSrcX -= sal::static_int_cast<long>(aPosAry.mnDestX / nScaleX);
+                             aPosAry.mnDestX = 0;
+                         }
+@@ -757,7 +757,7 @@ void OutputDevice::ImplDrawBitmap( const
+                         }
+                         if( aPosAry.mnDestY < 0 )
+                         {
+-                            aPosAry.mnDestHeight += aPosAry.mnDestY;
++                            aPosAry.mnDestHeight = Max(long(0),aPosAry.mnDestHeight+aPosAry.mnDestY);
+                             aPosAry.mnSrcY -= sal::static_int_cast<long>(aPosAry.mnDestY / nScaleY);
+                             aPosAry.mnDestY = 0;
+                         }
+@@ -767,7 +767,8 @@ void OutputDevice::ImplDrawBitmap( const
+                 }
+             }
+ 
+-			mpGraphics->DrawBitmap( &aPosAry, *aBmp.ImplGetImpBitmap()->ImplGetSalBitmap(), this );
++            if ( aPosAry.mnSrcWidth && aPosAry.mnSrcHeight && aPosAry.mnDestWidth && aPosAry.mnDestHeight )
++                mpGraphics->DrawBitmap( &aPosAry, *aBmp.ImplGetImpBitmap()->ImplGetSalBitmap(), this );
+ 		}
+ 	}
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-gnome-vfs-lock.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-gnome-vfs-lock.diff
@@ -0,0 +1,72 @@
+--- sfx2/inc/sfx2/docfile.hxx	2006-12-19 15:08:00.000000000 +0100
++++ sfx2/inc/sfx2/docfile.hxx	2007-03-28 16:22:21.000000000 +0200
+@@ -303,6 +303,7 @@ public:
+ 	SAL_DLLPRIVATE ::rtl::OUString GetOutputStorageURL_Impl();
+     SAL_DLLPRIVATE BOOL HasStorage_Impl() const;
+ 
++	SAL_DLLPRIVATE sal_Bool SupportsActiveStreaming_Impl( const rtl::OUString &rName ) const;
+ 	SAL_DLLPRIVATE sal_Bool BasedOnOriginalFile_Impl();
+ 	SAL_DLLPRIVATE void StorageBackup_Impl();
+ 	SAL_DLLPRIVATE ::rtl::OUString GetBackup_Impl();
+--- sfx2/source/doc/docfile.cxx	2007-03-23 18:06:52.000000000 +0100
++++ sfx2/source/doc/docfile.cxx	2007-03-28 16:24:22.000000000 +0200
+@@ -913,11 +913,31 @@ sal_Bool SfxMedium::TryStorage()
+ }
+ 
+ //------------------------------------------------------------------
++sal_Bool SfxMedium::SupportsActiveStreaming_Impl( const rtl::OUString &rName ) const
++{
++    if ( ::utl::LocalFileHelper::IsLocalFile( rName ) )
++        return sal_True;
++
++    ::ucbhelper::Content aTmpContent;
++    Reference< ::com::sun::star::ucb::XCommandEnvironment > xDummyEnv;
++    if ( ::ucbhelper::Content::create( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv, aTmpContent ) )
++    {
++        Any aAny = aTmpContent.getPropertyValue(
++                ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "SupportsActiveStreaming" )) );
++
++        sal_Bool bSupportsStreaming = sal_False;
++        return ( ( aAny >>= bSupportsStreaming ) && bSupportsStreaming );
++    }
++
++    return sal_False;
++}
++
++//------------------------------------------------------------------
+ sal_Bool SfxMedium::BasedOnOriginalFile_Impl()
+ {
+ 	return ( !pImp->pTempFile && !( aLogicName.Len() && pImp->m_bSalvageMode )
+ 	  && GetURLObject().GetMainURL( INetURLObject::NO_DECODE ).getLength()
+-      && ::utl::LocalFileHelper::IsLocalFile( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) )
++ 	  && SupportsActiveStreaming_Impl( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) )
+ 	  && ::utl::UCBContentHelper::IsDocument( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) ) );
+ }
+ 
+@@ -987,7 +1008,7 @@ uno::Reference < embed::XStorage > SfxMe
+ 
+     // medium based on OutputStream: must work with TempFile
+     if( aLogicName.CompareToAscii( "private:stream", 14 ) == COMPARE_EQUAL
+-	  || !::utl::LocalFileHelper::IsLocalFile( aLogicName ) )
++            || !SupportsActiveStreaming_Impl( aLogicName ) )
+         CreateTempFileNoCopy();
+ 	// if Medium already contains a stream - TODO/LATER: store stream/outputstream in ImplData, not in Medium
+ 	else if ( GetItemSet()->GetItemState( SID_STREAM ) < SFX_ITEM_SET )
+@@ -1131,7 +1152,7 @@ uno::Reference < embed::XStorage > SfxMe
+ 
+             try
+             {
+-                if ( IsReadOnly() && ::utl::LocalFileHelper::IsLocalFile( aLogicName ) )
++                if ( IsReadOnly() && SupportsActiveStreaming_Impl( aLogicName ) )
+                 {
+                     //TODO/LATER: performance problem if not controlled by special Mode in SfxMedium
+                     //(should be done only for permanently open storages)
+@@ -1946,7 +1946,7 @@ void SfxMedium::Transfer_Impl()
+ 			xComEnv = new ::ucb::CommandEnvironment( xInteractionHandler,
+ 													  Reference< ::com::sun::star::ucb::XProgressHandler >() );
+ 
+-        if ( ::utl::LocalFileHelper::IsLocalFile( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() )
++		if ( SupportsActiveStreaming_Impl( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() )
+ 		{
+ 			TransactedTransferForFS_Impl( aSource, aDest, xComEnv );
+ 		}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sal-doublefree.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sal-doublefree.diff
@@ -0,0 +1,25 @@
+Index: sal/rtl/source/alloc_cache.c
+===================================================================
+RCS file: /cvs/porting/sal/rtl/source/alloc_cache.c,v
+retrieving revision 1.2
+diff -u -r1.2 alloc_cache.c
+--- sal/rtl/source/alloc_cache.c	2 May 2006 12:11:54 -0000	1.2
++++ sal/rtl/source/alloc_cache.c	25 Jul 2006 07:57:10 -0000
+@@ -1274,6 +1282,17 @@
+ 			curr = cache->m_cpu_curr;
+ 			if ((curr != 0) && (curr->m_mag_used < curr->m_mag_size))
+ 			{
++				int i;
++				for (i = 0; i < curr->m_mag_used; ++i)
++				{
++					OSL_ENSURE(curr->m_objects[i] != obj, "DOUBLE FREE!");
++					if (curr->m_objects[i] == obj)
++					{
++						RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
++						return;
++					}
++
++				}
+ 				curr->m_objects[curr->m_mag_used++] = obj;
+ 				cache->m_cpu_stats.m_free += 1;
+ 				RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo86080.unopkg.bodge.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo86080.unopkg.bodge.diff
@@ -0,0 +1,41 @@
+--- desktop/scripts/unopkg.sh	2008-01-14 15:55:26.000000000 +0000
++++ desktop/scripts/unopkg.sh	2008-02-14 10:52:10.000000000 +0000
+@@ -47,6 +47,29 @@
+ sd_prog=`pwd`
+ cd "$sd_cwd"
+ 
++isshared=0
++for arg in $@
++do
++if [ "$arg" = "--shared" ]; then 
++    isshared=1
++fi
++done
++if [ $isshared -eq 1 ]; then
++    echo $@ | grep -q env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY
++    if [ $? -ne 0 ]; then
++        set -- $@ '-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1'
++    fi
++    echo $@ | grep -q env:UNO_JAVA_JFW_INSTALL_DATA
++    if [ $? -ne 0 -a -w $sd_prog/../share/config/javasettingsunopkginstall.xml ]; then
++        set -- $@ '-env:UNO_JAVA_JFW_INSTALL_DATA=$$ORIGIN/../share/config/javasettingsunopkginstall.xml'
++    fi
++    echo $@ | grep -q env:UserInstallation
++    if [ $? -ne 0 ]; then
++        INSTDIR=`/bin/mktemp -d -t unoinstall.XXXXXX`
++        set -- $@ '-env:UserInstallation=file://'$INSTDIR
++    fi
++fi
++
+ #collect all bootstrap variables specified on the command line
+ #so that they can be passed as arguments to javaldx later on
+ for arg in $@
+@@ -76,4 +99,6 @@
+ 
+ # execute binary
+-exec "$sd_prog/$sd_binary" $GUI "$@"
+-
++"$sd_prog/$sd_binary" $GUI "$@"
++if [ -n "$INSTDIR" ]; then
++   rm -rf $INSTDIR
++fi
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/hunspell-lib-use-_pic.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/hunspell-lib-use-_pic.diff
@@ -0,0 +1,12 @@
+--- config_office/configure.in-old    2007-08-07 16:43:16.000000000 +0200
++++ config_office/configure.in        2007-08-07 16:43:31.000000000 +0200
+@@ -4363,7 +4363,7 @@
+          ], [])
+-      AC_CHECK_LIB(hunspell, main, [],
++      AC_CHECK_LIB(hunspell_pic, main, [],
+            [ AC_MSG_ERROR(hunspell library not found.) ], [])
+-      HUNSPELL_LIBS=-lhunspell
++      HUNSPELL_LIBS=-lhunspell_pic
+      fi
+ else
+     AC_MSG_RESULT([internal])
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-slideshow.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-slideshow.diff
@@ -0,0 +1,149 @@
+Index: slideshow/prj/build.lst
+===================================================================
+RCS file: /cvs/graphics/slideshow/prj/build.lst,v
+retrieving revision 1.6
+retrieving revision 1.6.12.1
+diff -u -p -u -p -r1.6 -r1.6.12.1
+--- slideshow/prj/build.lst	17 Jul 2007 14:32:58 -0000	1.6
++++ slideshow/prj/build.lst	29 Aug 2007 14:52:39 -0000	1.6.12.1
+@@ -1,4 +1,4 @@
+-pe	slideshow	:	tools sal cppu vcl comphelper cppuhelper offuh cppcanvas basegfx goodies unotools toolkit animations NULL
++pe	slideshow	:	tools sal cppu vcl comphelper cppuhelper offuh cppcanvas basegfx goodies unotools toolkit animations avmedia NULL
+ pe	slideshow								usr1	-	all	pe_mkout NULL
+ pe	slideshow\inc							nmake	-	all	pe_inc NULL
+ pe	slideshow\source\api					nmake	-	all	pe_api pe_inc NULL
+Index: slideshow/source/engine/soundplayer.cxx
+===================================================================
+RCS file: /cvs/graphics/slideshow/source/engine/soundplayer.cxx,v
+retrieving revision 1.9
+retrieving revision 1.8.14.2
+diff -u -p -u -p -r1.9 -r1.8.14.2
+--- slideshow/source/engine/soundplayer.cxx	17 Aug 2007 12:43:15 -0000	1.9
++++ slideshow/source/engine/soundplayer.cxx	4 Oct 2007 11:24:15 -0000	1.8.14.2
+@@ -48,6 +48,8 @@
+ 
+ #include <tools/urlobj.hxx>
+ 
++#include <avmedia/mediawindow.hxx>
++
+ #include "soundplayer.hxx"
+ 
+ #include <algorithm>
+@@ -55,16 +57,6 @@
+ using namespace ::com::sun::star;
+ 
+ 
+-// TODO(Q3): This breaks encapsulation. Either export
+-// these strings from avmedia, or provide an XManager
+-// factory there
+-#ifdef WNT
+-#	define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
+-#else
+-#	define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
+-#endif 
+-
+-
+ namespace slideshow
+ {
+     namespace internal
+@@ -122,22 +114,10 @@ namespace slideshow
+ 
+             try
+             {
+-                uno::Reference<lang::XMultiComponentFactory> xFac( 
+-                    rComponentContext->getServiceManager() );
+-                        
+-                uno::Reference< ::com::sun::star::media::XManager > xManager(
+-                    xFac->createInstanceWithContext( 
+-                        ::rtl::OUString::createFromAscii( AVMEDIA_MANAGER_SERVICE_NAME ),
+-                        rComponentContext ),
+-                    uno::UNO_QUERY );
+-                    
+-                if( xManager.is() )
+-                {
+-                    const INetURLObject aURL( rSoundURL );
+-                    mxPlayer.set( xManager->createPlayer( 
+-                                      aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) ), 
+-                                  uno::UNO_QUERY );
+-                }
++        		const INetURLObject aURL( rSoundURL );		
++                mxPlayer.set( avmedia::MediaWindow::createPlayer(
++                                aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) ),
++                                uno::UNO_QUERY);
+             }
+             catch( uno::RuntimeException& )
+             {
+Index: slideshow/source/engine/shapes/viewmediashape.cxx
+===================================================================
+RCS file: /cvs/graphics/slideshow/source/engine/shapes/viewmediashape.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.14.1
+diff -u -p -u -p -r1.2 -r1.2.14.1
+--- slideshow/source/engine/shapes/viewmediashape.cxx	17 Jul 2007 14:55:30 -0000	1.2
++++ slideshow/source/engine/shapes/viewmediashape.cxx	29 Aug 2007 14:52:39 -0000	1.2.14.1
+@@ -60,6 +60,7 @@
+ #include <cppcanvas/vclfactory.hxx>
+ #include <cppcanvas/basegfxfactory.hxx>
+ #include <cppcanvas/basegfxfactory.hxx>
++#include <avmedia/mediawindow.hxx>
+ 
+ #include <com/sun/star/media/XManager.hpp>
+ #include <com/sun/star/media/XPlayer.hpp>
+@@ -75,12 +76,6 @@
+ #include "mediashape.hxx"
+ #include "tools.hxx"
+ 
+-#ifdef WNT
+-#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
+-#else
+-#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
+-#endif
+-
+ using namespace ::com::sun::star;
+ 
+ namespace slideshow
+@@ -375,24 +370,8 @@ namespace slideshow
+ 				{
+ 					if( rMediaURL.getLength() )
+ 					{
+-                        uno::Reference<lang::XMultiComponentFactory> xFactory( 
+-                            mxComponentContext->getServiceManager() );
+-
+-						if( xFactory.is() )
+-						{
+-							uno::Reference< media::XManager > xManager;
+-								
+-							xManager.set( 
+-                                xFactory->createInstanceWithContext( 
+-                                    ::rtl::OUString::createFromAscii( 
+-                                        AVMEDIA_MANAGER_SERVICE_NAME ),
+-                                    mxComponentContext ), 
+-                                uno::UNO_QUERY );
+-                            
+-							if( xManager.is() )
+-								mxPlayer.set( xManager->createPlayer( rMediaURL ), 
+-                                              uno::UNO_QUERY );
+-						}
++						mxPlayer.set( avmedia::MediaWindow::createPlayer( rMediaURL ), 
++                            uno::UNO_QUERY );
+ 					}
+ 				}
+                 catch( uno::RuntimeException& )
+Index: slideshow/util/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/slideshow/util/makefile.mk,v
+retrieving revision 1.8
+retrieving revision 1.8.12.1
+diff -u -p -u -p -r1.8 -r1.8.12.1
+--- slideshow/util/makefile.mk	17 Jul 2007 15:22:33 -0000	1.8
++++ slideshow/util/makefile.mk	29 Aug 2007 14:52:39 -0000	1.8.12.1
+@@ -76,7 +76,8 @@ SHL1STDLIBS= $(TOOLSLIB) \
+ 			 $(CPPCANVASLIB) \
+ 			 $(UNOTOOLSLIB) \
+ 			 $(GOODIESLIB) \
+-			 $(TKLIB)
++			 $(TKLIB) \
++			 $(AVMEDIALIB)
+ 
+ SHL1IMPLIB=i$(TARGET)
+ SHL1LIBS=$(SLB)$/$(TARGET).lib
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-non-utf8.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-non-utf8.diff
@@ -0,0 +1,92 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx	2007-07-03 17:16:36.000000000 +0200
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2007-07-03 19:32:57.000000000 +0200
+@@ -260,38 +260,14 @@ void FileDialog::customEvent( QCustomEve
+                     {
+                         KURL::List qList( selectedURLs() );
+                         for ( KURL::List::const_iterator it = qList.begin(); it != qList.end(); ++it )
+-                        {
+-                            qString.append( " " );
+-                            QString qUrlStr = addExtension( (*it).url() );
+-
+-                            if ( !isExecuting() && !isSupportedProtocol( KURL( qUrlStr ).protocol() ) )
+-                                qUrlStr = localCopy( qUrlStr );
+-
+-                            if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
+-                                qUrlStr.replace( "file:/", "file:///" );
+-
+-                            if ( !qUrlStr.isEmpty() )
+-                                appendEscaped( qString, qUrlStr );
+-                        }
++                            appendURL( qString, (*it) );
+                     }
+                     else
+                     {
+                         // we have to return the selected files anyway
+                         const KFileItemList *pItems = ops->selectedItems();
+                         for ( KFileItemListIterator it( *pItems ); it.current(); ++it )
+-                        {
+-                            qString.append( " " );
+-                            QString qUrlStr = addExtension( (*it)->url().url() );
+-
+-                            if ( !isExecuting() && !isSupportedProtocol( KURL( qUrlStr ).protocol() ) )
+-                                qUrlStr = localCopy( qUrlStr );
+-
+-                            if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
+-                                qUrlStr.replace( "file:/", "file:///" );
+-
+-                            if ( !qUrlStr.isEmpty() )
+-                                appendEscaped( qString, qUrlStr );
+-                        }
++                            appendURL( qString, (*it)->url() );
+                     }
+ 
+                     sendCommand( qString );
+@@ -662,7 +639,8 @@ KURL FileDialog::mostLocalURL( const KUR
+ 
+ QString FileDialog::localCopy( const QString &rFileName ) const
+ {
+-    KURL qLocalURL = mostLocalURL( KURL( rFileName ) );
++    // 106 == MIB enum for UTF-8
++    KURL qLocalURL = mostLocalURL( KURL( rFileName, 106 ) );
+     if ( qLocalURL.isLocalFile() )
+         return qLocalURL.url();
+ 
+@@ -713,6 +691,28 @@ void FileDialog::sendCommand( const QStr
+     ::std::cout << rCommand.utf8() << ::std::endl;
+ }
+ 
++void FileDialog::appendURL( QString &rBuffer, const KURL &rURL )
++{
++    // From Martin Kretzschmar:
++    // file:///path/to/test%E0.odt is not a valid URL from OOo's point of
++    // view. (?Most modern parts of?) OOo assume(s) that the URL contains only
++    // ASCII characters (which test%E0.odt does) and is UTF-8 after unescaping
++    // (which file:///path/test%E0.odt is not).
++    // Cf. the comment in sal/inc/osl/file.h.
++    // 106 == MIB enum for UTF-8
++    QString qUrlStr = addExtension( rURL.url( 0, 106 ) );
++
++    if ( !isExecuting() && !isSupportedProtocol( rURL.protocol() ) )
++        qUrlStr = localCopy( qUrlStr );
++
++    if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
++        qUrlStr.replace( "file:/", "file:///" );
++
++    rBuffer.append( " " );
++    if ( !qUrlStr.isEmpty() )
++        appendEscaped( rBuffer, qUrlStr );
++}
++
+ void FileDialog::appendEscaped( QString &rBuffer, const QString &rString )
+ {
+     const QChar *pUnicode = rString.unicode();
+--- fpicker/source/unx/kde/kdefilepicker.hxx	2007-07-03 11:35:37.000000000 +0200
++++ fpicker/source/unx/kde/kdefilepicker.hxx	2007-07-03 19:10:58.000000000 +0200
+@@ -142,6 +142,7 @@ protected slots:
+ 
+ protected:
+     void                        sendCommand( const QString &rCommand );
++    void                        appendURL( QString &rBuffer, const KURL &rURL );
+     void                        appendEscaped( QString &rBuffer, const QString &rString );
+     QString                     escapeString( const QString &rString );
+ };
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-thread.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-thread.diff
@@ -0,0 +1,1597 @@
+diff --git a/automation/inc/automation/communi.hxx b/automation/inc/automation/communi.hxx
+index 82aa208..35c1729 100644
+--- automation/inc/automation/communi.hxx
++++ automation/inc/automation/communi.hxx
+@@ -39,8 +39,8 @@
+ #ifndef _SVARRAY_HXX //autogen
+ #include <svtools/svarray.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_ //autogen
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_MUTEX_HXX_ //autogen
+ #include <vos/mutex.hxx>
+@@ -95,7 +95,7 @@ public:
+ 	CommunicationManagerClient( BOOL bUseMultiChannel = FALSE );
+ };
+ 
+-class CommunicationLinkViaSocket : public SimpleCommunicationLinkViaSocket, public NAMESPACE_VOS(OThread)
++class CommunicationLinkViaSocket : public SimpleCommunicationLinkViaSocket, public osl::Thread
+ {
+ public:
+ 	CommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
+@@ -152,7 +152,7 @@ private:
+ 	void AddConnection( CommunicationLink *pNewConnection );
+ };
+ 
+-class CommunicationManagerServerAcceptThread: public NAMESPACE_VOS(OThread)
++class CommunicationManagerServerAcceptThread: public osl::Thread
+ {
+ public:
+ 	CommunicationManagerServerAcceptThread( CommunicationManagerServerViaSocket* pServer, ULONG nPort, USHORT nMaxCon = CM_UNLIMITED_CONNECTIONS );
+diff --git a/automation/source/communi/communi.cxx b/automation/source/communi/communi.cxx
+index 9f844b5..498ea8c 100644
+--- automation/source/communi/communi.cxx
++++ automation/source/communi/communi.cxx
+@@ -226,7 +226,7 @@ void CommunicationLinkViaSocket::run()
+ 
+ 		TimeValue sNochEins = {0, 1000000};
+ 		while ( schedule() && bIsInsideCallback )	// solange der letzte Callback nicht beendet ist
+-			sleep( sNochEins );
++			wait( sNochEins );
+ 		SetNewPacketAsCurrent();
+ 		StartCallback();
+ 		{
+@@ -237,7 +237,7 @@ void CommunicationLinkViaSocket::run()
+ 	}
+ 	TimeValue sNochEins = {0, 1000000};
+ 	while ( schedule() && bIsInsideCallback )	// solange der letzte Callback nicht beendet ist
+-		sleep( sNochEins );
++		wait( sNochEins );
+ 
+     StartCallback();
+ 	{
+@@ -548,7 +548,7 @@ void CommunicationManagerServerAcceptThread::run()
+ 
+ 				TimeValue sNochEins = {0, 100};
+ 				while ( schedule() && xmNewConnection.Is() )	// Solange die letzte Connection nicht abgeholt wurde warten wir
+-					sleep( sNochEins );
++					wait( sNochEins );
+ 				xmNewConnection = new CommunicationLinkViaSocket( pMyServer, pStreamSocket );
+ 				xmNewConnection->StartCallback();
+ 				{
+diff --git a/automation/source/server/server.hxx b/automation/source/server/server.hxx
+index ffbe5b3..f5737be 100644
+--- automation/source/server/server.hxx
++++ automation/source/server/server.hxx
+@@ -35,7 +35,7 @@
+ #ifndef _SERVER_HXX
+ #define _SERVER_HXX
+ 
+-/*#include <vos/thread.hxx>
++/*#include <osl/thread.hxx>
+ #ifndef _STD_NO_NAMESPACE
+ namespace vos
+ {
+diff --git a/automation/source/testtool/tcommuni.hxx b/automation/source/testtool/tcommuni.hxx
+index 5294f5b..76f7d8a 100644
+--- automation/source/testtool/tcommuni.hxx
++++ automation/source/testtool/tcommuni.hxx
+@@ -37,7 +37,7 @@
+ #include <tools/link.hxx>
+ #include <svtools/svarray.hxx>
+ 
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ #ifndef _STRING_LIST
+ DECLARE_LIST( StringList, String * )
+diff --git a/binfilter/bf_forms/source/component/EventThread.hxx b/binfilter/bf_forms/source/component/EventThread.hxx
+index 142ff29..72d33ca 100644
+--- binfilter/bf_forms/source/component/EventThread.hxx
++++ binfilter/bf_forms/source/component/EventThread.hxx
+@@ -37,7 +37,7 @@
+ #define _FRM_EVENT_THREAD_HXX_
+ 
+ #include <com/sun/star/awt/XControl.hpp>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ 
+ #ifndef _OSL_CONDITN_HXX_
+@@ -67,7 +67,7 @@ namespace frm
+ // ***************************************************************************************************
+ // ***************************************************************************************************
+ 
+-typedef ::vos::OThread	OComponentEventThread_TBASE;
++typedef ::osl::Thread	OComponentEventThread_TBASE;
+ class OComponentEventThread
+ 			:public OComponentEventThread_TBASE
+ 			,public ::com::sun::star::lang::XEventListener
+@@ -126,8 +126,8 @@ public:
+ 	virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& _rSource ) throw (::com::sun::star::uno::RuntimeException);
+ 
+ /* resolve ambiguity : both OWeakObject and OObject have these memory operators */
+-	void * SAL_CALL operator new( size_t size ) throw() { return OThread::operator new(size); }
+-	void SAL_CALL operator delete( void * p ) throw() { OThread::operator delete(p); }
++	void * SAL_CALL operator new( size_t size ) throw() { return osl::Thread::operator new(size); }
++	void SAL_CALL operator delete( void * p ) throw() { osl::Thread::operator delete(p); }
+ 
+ private:
+ 	void	implStarted( );
+diff --git a/binfilter/bf_forms/source/component/forms_EventThread.cxx b/binfilter/bf_forms/source/component/forms_EventThread.cxx
+index b49d2a7..718f7b8 100644
+--- binfilter/bf_forms/source/component/forms_EventThread.cxx
++++ binfilter/bf_forms/source/component/forms_EventThread.cxx
+@@ -170,7 +170,8 @@ void OComponentEventThread::implTerminated( )
+ 
+ void SAL_CALL OComponentEventThread::kill()
+ {
+-	OComponentEventThread_TBASE::kill();
++	OComponentEventThread_TBASE::terminate();
++	OComponentEventThread_TBASE::join();
+ 
+ 	implTerminated( );
+ }
+diff --git a/binfilter/bf_sc/source/core/data/sc_documen3.cxx b/binfilter/bf_sc/source/core/data/sc_documen3.cxx
+index affded4..d3eed7e 100644
+--- binfilter/bf_sc/source/core/data/sc_documen3.cxx
++++ binfilter/bf_sc/source/core/data/sc_documen3.cxx
+@@ -429,7 +429,7 @@ using namespace ::com::sun::star;
+ /*?*/ 				//	let the thread that called BroadcastUno continue
+ /*?*/ 				while ( bInUnoBroadcast )
+ /*?*/ 				{
+-/*?*/ 					vos::OThread::yield();
++/*?*/ 					osl::Thread::yield();
+ /*?*/ 				}
+ /*?*/ 			}
+ /*N*/ 		}
+diff --git a/binfilter/bf_svx/source/inc/trace.hxx b/binfilter/bf_svx/source/inc/trace.hxx
+index 7013363..c6de8b5 100644
+--- binfilter/bf_svx/source/inc/trace.hxx
++++ binfilter/bf_svx/source/inc/trace.hxx
+@@ -44,7 +44,7 @@ class Tracer
+ {
+ 	ByteString m_sBlockDescription;
+ 
+-	DECLARE_STL_STDKEY_MAP( ::vos::OThread::TThreadIdentifier, sal_Int32, MapThreadId2Int );
++	DECLARE_STL_STDKEY_MAP( ::oslThreadIdentifier, sal_Int32, MapThreadId2Int );
+ 	static MapThreadId2Int s_aThreadIndents;
+ 
+ 	static ::vos::OMutex	s_aMapSafety;
+diff --git a/configmgr/inc/pch/precompiled_configmgr.hxx b/configmgr/inc/pch/precompiled_configmgr.hxx
+index c74b718..13f06d4 100644
+--- configmgr/inc/pch/precompiled_configmgr.hxx
++++ configmgr/inc/pch/precompiled_configmgr.hxx
+@@ -246,7 +246,7 @@
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+ #include "vos/socket.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+ 
+diff --git a/configmgr/source/treecache/invalidatetree.cxx b/configmgr/source/treecache/invalidatetree.cxx
+index 5a98bb9..46b1280 100644
+--- configmgr/source/treecache/invalidatetree.cxx
++++ configmgr/source/treecache/invalidatetree.cxx
+@@ -68,8 +68,8 @@
+ #include <com/sun/star/container/NoSuchElementException.hpp>
+ #endif
+ 
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #ifndef INCLUDED_ALGORITHM
+@@ -140,7 +140,7 @@ std::auto_ptr<ISubtree> TreeManager::loadNodeFromSession( AbsolutePath const& _a
+ #endif
+ // -----------------------------------------------------------------------------
+ 
+-class OInvalidateTreeThread: public vos::OThread
++class OInvalidateTreeThread: public osl::Thread
+ {
+     typedef backend::ICachedDataProvider CacheManager;
+ 	typedef rtl::Reference< CacheManager > CacheManagerRef;
+diff --git a/configmgr/workben/local_io/simpletest.cxx b/configmgr/workben/local_io/simpletest.cxx
+index 0eca65e..182630e 100644
+--- configmgr/workben/local_io/simpletest.cxx
++++ configmgr/workben/local_io/simpletest.cxx
+@@ -106,8 +106,8 @@
+ 
+ #include <com/sun/star/xml/sax/InputSource.hpp>
+ 
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #include <vos/pipe.hxx>
+diff --git a/configmgr/workben/local_io/xmlimport.cxx b/configmgr/workben/local_io/xmlimport.cxx
+index 4802db8..b379082 100644
+--- configmgr/workben/local_io/xmlimport.cxx
++++ configmgr/workben/local_io/xmlimport.cxx
+@@ -105,8 +105,8 @@
+ 
+ #include <com/sun/star/xml/sax/InputSource.hpp>
+ 
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #include <vos/pipe.hxx>
+diff --git a/cppu/test/testthreadpool.cxx b/cppu/test/testthreadpool.cxx
+index da6ee56..d8df4af 100644
+--- cppu/test/testthreadpool.cxx
++++ cppu/test/testthreadpool.cxx
+@@ -45,14 +45,14 @@
+ 
+ #include <uno/threadpool.h>
+ 
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ #define TEST_ENSURE OSL_ENSURE
+ 
+ using namespace ::vos;
+ 
+ 
+-class OThread1 : public OThread
++class OThread1 : public osl::Thread
+ {
+ public:
+ 	OThread1( sal_uInt8 *pCallerUuid );
+diff --git a/dbaccess/inc/pch/precompiled_dbaccess.hxx b/dbaccess/inc/pch/precompiled_dbaccess.hxx
+index 4465046..d8b7f38 100644
+--- dbaccess/inc/pch/precompiled_dbaccess.hxx
++++ dbaccess/inc/pch/precompiled_dbaccess.hxx
+@@ -505,7 +505,7 @@
+ #include "vos/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ 
+ #include "xmloff/ProgressBarHelper.hxx"
+ #include "xmloff/XMLConstantsPropertyHandler.hxx"
+diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
+index 0edadbd..292d5b3 100644
+--- dbaccess/source/ui/browser/sbagrid.cxx
++++ dbaccess/source/ui/browser/sbagrid.cxx
+@@ -567,7 +567,7 @@ IMPL_LINK( SbaXGridPeer, OnDispatchEvent, void*, /*NOTINTERESTEDIN*/ )
+ 	SbaGridControl* pGrid = static_cast< SbaGridControl* >( GetWindow() );
+ 	if ( pGrid )	// if this fails, we were disposing before arriving here
+ 	{
+-		if ( Application::GetMainThreadIdentifier() != ::vos::OThread::getCurrentIdentifier() )
++		if ( Application::GetMainThreadIdentifier() != ::osl::Thread::getCurrentIdentifier() )
+ 		{
+ 			// still not in the main thread (see SbaXGridPeer::dispatch). post an event, again
+ 			// without moving the special even to the back of the queue
+@@ -607,7 +607,7 @@ void SAL_CALL SbaXGridPeer::dispatch(const URL& aURL, const Sequence< PropertyVa
+ 	if (!pGrid)
+ 		return;
+ 
+-	if ( Application::GetMainThreadIdentifier() != ::vos::OThread::getCurrentIdentifier() )
++	if ( Application::GetMainThreadIdentifier() != ::osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		// we're not in the main thread. This is bad, as we want to raise windows here,
+ 		// and VCL does not like windows to be opened in non-main threads (at least on Win32).
+diff --git a/dbaccess/source/ui/inc/brwctrlr.hxx b/dbaccess/source/ui/inc/brwctrlr.hxx
+index 7cde4b8..fa0dcda 100644
+--- dbaccess/source/ui/inc/brwctrlr.hxx
++++ dbaccess/source/ui/inc/brwctrlr.hxx
+@@ -90,8 +90,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _SFXCANCEL_HXX
+ #include <svtools/cancel.hxx>
+@@ -159,7 +159,7 @@ namespace dbaui
+ 		String					m_sStateUndoRecord;
+ 
+ 		// members for asynchronous load operations
+-		::vos::OThread*			m_pLoadThread;			// the thread wherein the form is loaded
++		::osl::Thread*			m_pLoadThread;			// the thread wherein the form is loaded
+ 		FormControllerImpl*		m_pFormControllerImpl;	// implementing the XFormController
+ 
+ 		sal_uInt32				m_nPendingLoadFinished;			// the event used to tell ourself that the load is finished
+@@ -409,7 +409,7 @@ namespace dbaui
+ 	//==================================================================
+ 	// LoadFormThread - a thread for asynchronously loading a form
+ 	//==================================================================
+-	class LoadFormThread : public ::vos::OThread
++	class LoadFormThread : public ::osl::Thread
+ 	{
+ 		::osl::Mutex	m_aAccessSafety;		// for securing the multi-thread access
+ 		::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet > 				m_xRowSet;			// the data source to be loaded
+diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
+index 01f7cff..b67c3fd 100644
+--- desktop/source/app/officeipcthread.cxx
++++ desktop/source/app/officeipcthread.cxx
+@@ -818,7 +818,7 @@ void SAL_CALL OfficeIPCThread::run()
+ 			TimeValue tval;
+ 			tval.Seconds = 1;
+ 			tval.Nanosec = 0;
+-			sleep( tval );
++			wait( tval );
+ 		}
+ 	} while( schedule() );
+ }
+diff --git a/desktop/source/app/officeipcthread.hxx b/desktop/source/app/officeipcthread.hxx
+index 30e6a97..1486974 100644
+--- desktop/source/app/officeipcthread.hxx
++++ desktop/source/app/officeipcthread.hxx
+@@ -49,8 +49,8 @@
+ #ifndef _VOS_SECURITY_HXX_
+ #include <vos/security.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_SIGNAL_HXX_
+ #include <vos/signal.hxx>
+@@ -90,7 +90,7 @@ struct ProcessDocumentsRequest
+ };
+ 
+ class DispatchWatcher;
+-class OfficeIPCThread : public vos::OThread
++class OfficeIPCThread : public osl::Thread
+ {
+   private:
+ 	static OfficeIPCThread*		pGlobalOfficeIPCThread;
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 4bfa679..1572a21 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -551,7 +551,7 @@
+ #include "vos/pipe.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vos/timer.hxx"
+ 
+ #include "xmloff/nmspmap.hxx"
+diff --git a/extensions/source/ole/olethread.cxx b/extensions/source/ole/olethread.cxx
+index dda9c17..8bade92 100644
+--- extensions/source/ole/olethread.cxx
++++ extensions/source/ole/olethread.cxx
+@@ -44,7 +44,7 @@
+ #include <tools/presys.h>
+ #include <tools/postsys.h>
+ 
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ using namespace vos;
+ using namespace std;
+diff --git a/extensions/source/plugin/inc/plugin/unx/mediator.hxx b/extensions/source/plugin/inc/plugin/unx/mediator.hxx
+index 7286244..cbcc327 100644
+--- extensions/source/plugin/inc/plugin/unx/mediator.hxx
++++ extensions/source/plugin/inc/plugin/unx/mediator.hxx
+@@ -56,8 +56,8 @@
+ #ifndef _VOS_CONDITN_HXX_
+ #include <vos/conditn.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #if OSL_DEBUG_LEVEL > 1
+ #include <stdio.h>
+@@ -174,7 +174,7 @@ public:
+ 		}
+ };
+ 
+-class MediatorListener : public NAMESPACE_VOS( OThread )
++class MediatorListener : public osl::Thread
+ {
+ 	friend class Mediator;
+   private:
+diff --git a/extensions/source/scanner/scanunx.cxx b/extensions/source/scanner/scanunx.cxx
+index 46197fd..7d2ad90 100644
+--- extensions/source/scanner/scanunx.cxx
++++ extensions/source/scanner/scanunx.cxx
+@@ -37,7 +37,7 @@
+ #include "precompiled_extensions.hxx"
+ #include <scanner.hxx>
+ #include <sanedlg.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <tools/list.hxx>
+ 
+ #if OSL_DEBUG_LEVEL > 1
+@@ -132,7 +132,7 @@ static vos::OMutex		aSaneProtector;
+ // - ScannerThread -
+ // -----------------
+ 
+-class ScannerThread : public vos::OThread
++class ScannerThread : public osl::Thread
+ {
+ 	SaneHolder*									m_pHolder;
+ 	REF( com::sun::star::lang::XEventListener )	m_xListener;
+diff --git a/extensions/test/stm/datatest.cxx b/extensions/test/stm/datatest.cxx
+index fa3344c..69c0d82 100644
+--- extensions/test/stm/datatest.cxx
++++ extensions/test/stm/datatest.cxx
+@@ -55,7 +55,7 @@
+ 
+ #include <vos/conditn.hxx>
+ #include <vos/mutex.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+diff --git a/extensions/test/stm/marktest.cxx b/extensions/test/stm/marktest.cxx
+index 711a5b0..994cbba 100644
+--- extensions/test/stm/marktest.cxx
++++ extensions/test/stm/marktest.cxx
+@@ -51,7 +51,7 @@
+ 
+ #include <vos/conditn.hxx>
+ #include <vos/mutex.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+diff --git a/extensions/test/stm/pipetest.cxx b/extensions/test/stm/pipetest.cxx
+index b064de8..41d9c22 100644
+--- extensions/test/stm/pipetest.cxx
++++ extensions/test/stm/pipetest.cxx
+@@ -48,7 +48,7 @@
+ 
+ #include <vos/conditn.hxx>
+ #include <vos/mutex.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ #if OSL_DEBUG_LEVEL == 0
+ #define NDEBUG
+@@ -66,7 +66,7 @@ using namespace usr;
+ #endif
+ 
+ class WriteToStreamThread :
+-		public OThread
++		public osl::Thread
+ {
+ 
+ public:
+@@ -381,7 +381,7 @@ void OPipeTest::testMultithreading( const XInterfaceRef &r )
+ 	Sequence<BYTE> seqRead;
+ 
+ 	// deletes itself
+-	OThread *p = new WriteToStreamThread( output,  iMax );
++	osl::Thread *p = new WriteToStreamThread( output,  iMax );
+ 
+ 	ERROR_ASSERT( p , "couldn't create thread for testing !\n" );
+ 
+diff --git a/forms/inc/pch/precompiled_forms.hxx b/forms/inc/pch/precompiled_forms.hxx
+index 58f0616..80edef2 100644
+--- forms/inc/pch/precompiled_forms.hxx
++++ forms/inc/pch/precompiled_forms.hxx
+@@ -403,6 +403,6 @@
+ #include "vcl/wintypes.hxx"
+ 
+ #include "vos/mutex.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ //---MARKER---
+ #endif
+diff --git a/forms/source/component/EventThread.cxx b/forms/source/component/EventThread.cxx
+index 16a4d3c..042c0cc 100644
+--- forms/source/component/EventThread.cxx
++++ forms/source/component/EventThread.cxx
+@@ -176,7 +176,8 @@ void OComponentEventThread::implTerminated( )
+ 
+ void SAL_CALL OComponentEventThread::kill()
+ {
+-	OComponentEventThread_TBASE::kill();
++	OComponentEventThread_TBASE::terminate();
++	OComponentEventThread_TBASE::join();
+ 
+ 	implTerminated( );
+ }
+diff --git a/forms/source/component/EventThread.hxx b/forms/source/component/EventThread.hxx
+index e9ef68c..68c511d 100644
+--- forms/source/component/EventThread.hxx
++++ forms/source/component/EventThread.hxx
+@@ -40,7 +40,7 @@
+ #include <com/sun/star/lang/EventObject.hpp>
+ #include <com/sun/star/lang/XComponent.hpp>
+ #include <com/sun/star/awt/XControl.hpp>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ 
+ #ifndef _OSL_CONDITN_HXX_
+@@ -66,7 +66,7 @@ namespace frm
+ // ***************************************************************************************************
+ // ***************************************************************************************************
+ 
+-typedef ::vos::OThread	OComponentEventThread_TBASE;
++typedef ::osl::Thread	OComponentEventThread_TBASE;
+ class OComponentEventThread
+ 			:public OComponentEventThread_TBASE
+ 			,public ::com::sun::star::lang::XEventListener
+@@ -125,8 +125,8 @@ public:
+ 	virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& _rSource ) throw (::com::sun::star::uno::RuntimeException);
+ 
+ /* resolve ambiguity : both OWeakObject and OObject have these memory operators */
+-	void * SAL_CALL operator new( size_t size ) throw() { return OThread::operator new(size); }
+-	void SAL_CALL operator delete( void * p ) throw() { OThread::operator delete(p); }
++	void * SAL_CALL operator new( size_t size ) throw() { return osl::Thread::operator new(size); }
++	void SAL_CALL operator delete( void * p ) throw() { osl::Thread::operator delete(p); }
+ 
+ private:
+ 	void	implStarted( );
+diff --git a/framework/inc/pch/precompiled_framework.hxx b/framework/inc/pch/precompiled_framework.hxx
+index 6d31ef7..4baf72a 100644
+--- framework/inc/pch/precompiled_framework.hxx
++++ framework/inc/pch/precompiled_framework.hxx
+@@ -495,7 +495,7 @@
+ 
+ #include "vos/mutex.hxx"
+ #include "rtl/ref.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vos/timer.hxx"
+ 
+ //---MARKER---
+diff --git a/framework/test/threadtest.cxx b/framework/test/threadtest.cxx
+index 434eecb..a4b1acf 100644
+--- framework/test/threadtest.cxx
++++ framework/test/threadtest.cxx
+@@ -88,8 +88,8 @@
+ #include <osl/process.h>
+ #endif
+ 
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+@@ -538,7 +538,7 @@ sal_Int32 ThreadSafeClass::workA(	sal_Int32	nA			,
+ 			Otherwise all threads are sychron after first 2,3...5 calls - I think!
+ *//*-*****************************************************************************************************/
+ 
+-class TestThread : public OThread
++class TestThread : public osl::Thread
+ {
+ 	public:
+ 
+diff --git a/framework/test/threadtest/threadtest.cxx b/framework/test/threadtest/threadtest.cxx
+index b463d1d..21b120a 100644
+--- framework/test/threadtest/threadtest.cxx
++++ framework/test/threadtest/threadtest.cxx
+@@ -88,8 +88,8 @@
+ #include <osl/process.h>
+ #endif
+ 
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #ifndef _RTL_USTRING_
+@@ -536,7 +536,7 @@ sal_Int32 ThreadSafeClass::workA(	sal_Int32	nA			,
+ 			Otherwise all threads are sychron after first 2,3...5 calls - I think!
+ *//*-*****************************************************************************************************/
+ 
+-class TestThread : public OThread
++class TestThread : public osl::Thread
+ {
+ 	public:
+ 
+diff --git a/linguistic/source/lngopt.cxx b/linguistic/source/lngopt.cxx
+index 8e332dd..b4f8888 100644
+--- linguistic/source/lngopt.cxx
++++ linguistic/source/lngopt.cxx
+@@ -84,7 +84,7 @@ using namespace com::sun::star::registry;
+ 
+ // static member intialization
+ SvtLinguOptions *	LinguOptions::pData	= NULL;
+-vos::ORefCount		LinguOptions::aRefCount;
++oslInterlockedCount	LinguOptions::nRefCount;
+ 
+ 
+ LinguOptions::LinguOptions()
+@@ -96,14 +96,14 @@ LinguOptions::LinguOptions()
+ 		aLinguCfg.GetOptions( *pData );
+ 	}
+ 
+-	++aRefCount;
++	osl_incrementInterlockedCount( &nRefCount );
+ }
+ 
+ 
+ LinguOptions::LinguOptions(const LinguOptions & /*rOpt*/)
+ {
+ 	DBG_ASSERT( pData, "lng : data missing" );
+-	++aRefCount;
++	osl_incrementInterlockedCount( &nRefCount );
+ }
+ 
+ 
+@@ -111,7 +111,7 @@ LinguOptions::~LinguOptions()
+ {
+ 	MutexGuard	aGuard( GetLinguMutex() );
+ 
+-	if (--aRefCount == 0)
++	if ( osl_decrementInterlockedCount( &nRefCount ) == 0 )
+ 	{
+ 		delete pData;	pData  = NULL;
+ 	}
+diff --git a/linguistic/source/lngopt.hxx b/linguistic/source/lngopt.hxx
+index 9d635fb..8fd6f6f 100644
+--- linguistic/source/lngopt.hxx
++++ linguistic/source/lngopt.hxx
+@@ -108,7 +108,7 @@ namespace com { namespace sun { namespace star {
+ class LinguOptions
+ {
+ 	static SvtLinguOptions	   *pData;
+-	static vos::ORefCount		aRefCount;	// number of objects of this class
++	static oslInterlockedCount	nRefCount;	// number of objects of this class
+ 
+ 	//! uses default assignment-operator
+ 
+diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
+index fa1e026..23dee40 100644
+--- sc/source/core/data/documen3.cxx
++++ sc/source/core/data/documen3.cxx
+@@ -785,7 +785,7 @@ void ScDocument::RemoveUnoObject( SfxListener& rObject )
+ 				//	let the thread that called BroadcastUno continue
+ 				while ( bInUnoBroadcast )
+ 				{
+-					vos::OThread::yield();
++					osl::Thread::yield();
+ 				}
+ 			}
+ 		}
+diff --git a/sc/source/filter/inc/filt_pch.hxx b/sc/source/filter/inc/filt_pch.hxx
+index 28c6650..7f5d399 100644
+--- sc/source/filter/inc/filt_pch.hxx
++++ sc/source/filter/inc/filt_pch.hxx
+@@ -237,7 +237,7 @@
+ #include <com/sun/star/container/NoSuchElementException.hdl>
+ #include <com/sun/star/container/NoSuchElementException.hpp>
+ #include <vcl/svapp.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <vos/runnable.hxx>
+ #include <salhelper/simplereferenceobject.hxx>
+ #include <vcl/apptypes.hxx>
+diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx
+index 7563732..790e2ca 100644
+--- sd/inc/pch/precompiled_sd.hxx
++++ sd/inc/pch/precompiled_sd.hxx
+@@ -921,7 +921,7 @@
+ #include "osl/diagnose.h"
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vos/xception.hxx"
+ //---MARKER---
+ 
+diff --git a/sd/source/ui/dlg/filedlg.cxx b/sd/source/ui/dlg/filedlg.cxx
+index e8bffb4..872402f 100644
+--- sd/source/ui/dlg/filedlg.cxx
++++ sd/source/ui/dlg/filedlg.cxx
+@@ -91,8 +91,8 @@
+ #include <tools/urlobj.hxx>
+ #endif
+ 
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 1016400..6ca2c6b 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -675,7 +675,7 @@
+ #include "vos/mutex.hxx"
+ #include "vos/security.hxx"
+ #include "vos/socket.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vos/xception.hxx"
+ //---MARKER---
+ #endif
+diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
+index a787d24..499b880 100644
+--- sfx2/source/dialog/filedlghelper.cxx
++++ sfx2/source/dialog/filedlghelper.cxx
+@@ -138,8 +138,8 @@
+ #ifndef _UNOTOOLS_LOCALFILEHELPER_HXX
+ #include <unotools/localfilehelper.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+@@ -1261,7 +1261,7 @@ FileDialogHelper_Impl::~FileDialogHelper_Impl()
+ 
+ #define nMagic -1
+ 
+-class PickerThread_Impl : public ::vos::OThread
++class PickerThread_Impl : public ::osl::Thread
+ {
+ 	uno::Reference < XFilePicker > mxPicker;
+ 	::vos::OMutex			maMutex;
+diff --git a/sfx2/source/dialog/mailmodelapi.cxx b/sfx2/source/dialog/mailmodelapi.cxx
+index accebf9..0e7dc09 100644
+--- sfx2/source/dialog/mailmodelapi.cxx
++++ sfx2/source/dialog/mailmodelapi.cxx
+@@ -109,8 +109,8 @@
+ #ifndef _COMPHELPER_MEDIADESCRIPTOR_HXX_
+ #include <comphelper/mediadescriptor.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+@@ -209,8 +209,8 @@ namespace
+ 
+ }
+ 
+-// class OThread
+-class OMailSendThreadImpl : public ::vos::OThread
++// class osl::Thread
++class OMailSendThreadImpl : public ::osl::Thread
+ {
+ 	public:
+ 		OMailSendThreadImpl(
+diff --git a/sfx2/source/doc/doctempl.cxx b/sfx2/source/doc/doctempl.cxx
+index 2126fc4..577f706 100644
+--- sfx2/source/doc/doctempl.cxx
++++ sfx2/source/doc/doctempl.cxx
+@@ -45,8 +45,8 @@
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #ifndef _SV_RESARY_HXX
+diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
+index 52b91a7..12af260 100644
+--- sfx2/source/doc/doctemplates.cxx
++++ sfx2/source/doc/doctemplates.cxx
+@@ -363,7 +363,7 @@ public:
+ 
+ //=============================================================================
+ 
+-class Updater_Impl : public ::vos::OThread
++class Updater_Impl : public ::osl::Thread
+ {
+ private:
+     SfxDocTplService_Impl   *mpDocTemplates;
+@@ -1196,7 +1196,8 @@ SfxDocTplService_Impl::~SfxDocTplService_Impl()
+ 
+     if ( mpUpdater )
+     {
+-        mpUpdater->kill();
++        mpUpdater->terminate();
++        mpUpdater->join();
+         delete mpUpdater;
+     }
+ }
+diff --git a/sfx2/source/inet/inettbc.cxx b/sfx2/source/inet/inettbc.cxx
+index ccc9dd2..86a395a 100644
+--- sfx2/source/inet/inettbc.cxx
++++ sfx2/source/inet/inettbc.cxx
+@@ -70,8 +70,8 @@
+ #ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+ #include <toolkit/unohlp.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX //autogen
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_MUTEX_HXX //autogen
+ #include <vos/mutex.hxx>
+diff --git a/shell/source/backends/gconfbe/gconfbackend.hxx b/shell/source/backends/gconfbe/gconfbackend.hxx
+index 10ae515..4079523 100644
+--- shell/source/backends/gconfbe/gconfbackend.hxx
++++ shell/source/backends/gconfbe/gconfbackend.hxx
+@@ -74,8 +74,8 @@
+ #include <map>
+ #define INCLUDED_MAP
+ #endif
+-//#ifndef _VOS_THREAD_HXX_
+-//#include <vos/thread.hxx>
++//#ifndef _THREAD_HXX_
++//#include <osl/thread.hxx>
+ //#endif
+ 
+ #include <gconf/gconf-client.h>
+@@ -112,7 +112,7 @@ typedef std::multimap<rtl::OUString, rtl::OUString>  TSMappingTable;
+ //------------------------------------------------------------------------------
+ 
+ /*
+-class ONotificationThread: public vos::OThread
++class ONotificationThread: public osl::Thread
+ {
+    
+ 
+diff --git a/so3/source/persist/transprt.cxx b/so3/source/persist/transprt.cxx
+index afc3f84..36ceefc 100644
+--- binfilter/bf_so3/source/persist/transprt.cxx
++++ binfilter/bf_so3/source/persist/transprt.cxx
+@@ -1251,7 +1251,7 @@ sal_Int64 SAL_CALL UcbTransportInputStream_Impl::getLength (void)
+  *
+  *======================================================================*/
+ 
+-class TransportThread_Impl : public ::vos::OThread
++class TransportThread_Impl : public ::osl::Thread
+ {
+     Link            m_aLink;
+ public:
+diff --git a/starmath/source/math_pch.cxx b/starmath/source/math_pch.cxx
+index 45dbedf..598d33a 100644
+--- starmath/source/math_pch.cxx
++++ starmath/source/math_pch.cxx
+@@ -151,7 +151,7 @@
+ #include <svtools/poolitem.hxx>
+ #include <svtools/args.hxx>
+ #include <smmod.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <osl/thread.h>
+ #include <vos/runnable.hxx>
+ #include <vcl/apptypes.hxx>
+diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
+index 2e06f3e..cb4c4c9 100644
+--- svtools/inc/pch/precompiled_svtools.hxx
++++ svtools/inc/pch/precompiled_svtools.hxx
+@@ -434,7 +434,7 @@
+ #include <rtl/ref.hxx>
+ #include <salhelper/simplereferenceobject.hxx>
+ #include <vos/security.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <vos/timer.hxx>
+ 
+ //---MARKER---
+diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
+index 9b3f1f7..ba5df8b 100644
+--- svtools/source/control/inettbc.cxx
++++ svtools/source/control/inettbc.cxx
+@@ -91,8 +91,8 @@
+ #endif
+ 
+ #include <vcl/toolbox.hxx>
+-#ifndef _VOS_THREAD_HXX //autogen
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_MUTEX_HXX //autogen
+ #include <vos/mutex.hxx>
+@@ -179,7 +179,7 @@ public:
+ };
+ 
+ // -----------------------------------------------------------------------
+-class SvtMatchContext_Impl : public ::vos::OThread
++class SvtMatchContext_Impl : public ::osl::Thread
+ {
+     static ::vos::OMutex*           pDirMutex;
+ 
+diff --git a/svx/inc/galdlg.hxx b/svx/inc/galdlg.hxx
+index e3c5983..c0ec88e 100644
+--- svx/inc/galdlg.hxx
++++ svx/inc/galdlg.hxx
+@@ -37,7 +37,7 @@
+ #define _SVX_GALDLG_HXX_
+ 
+ 
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <bootstrp/sstring.hxx>
+ #include <vcl/dialog.hxx>
+ #include <vcl/graph.hxx>
+diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
+index 69bd6d2..050f7f2 100644
+--- svx/inc/pch/precompiled_svx.hxx
++++ svx/inc/pch/precompiled_svx.hxx
+@@ -955,7 +955,7 @@
+ #include "vos/mutex.hxx"
+ #include "rtl/ref.hxx"
+ #include "salhelper/simplereferenceobject.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vos/xception.hxx"
+ #include "xmloff/DashStyle.hxx"
+ #include "xmloff/GradientStyle.hxx"
+diff --git a/svx/source/dialog/cuigaldlg.hxx b/svx/source/dialog/cuigaldlg.hxx
+index d7a0246..4ad79b2 100644
+--- svx/source/dialog/cuigaldlg.hxx
++++ svx/source/dialog/cuigaldlg.hxx
+@@ -36,7 +36,7 @@
+ #ifndef _CUI_GALDLG_HXX_
+ #define _CUI_GALDLG_HXX_
+ 
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <vcl/dialog.hxx>
+ #include <vcl/graph.hxx>
+ #include <vcl/fixed.hxx>
+@@ -86,7 +86,7 @@ struct FilterEntry
+ // - SearchThread -
+ // ----------------
+ 
+-class SearchThread : public ::vos::OThread
++class SearchThread : public ::osl::Thread
+ {
+ private:
+ 
+@@ -143,7 +143,7 @@ public:
+ // - TakeThread -
+ // --------------
+ 
+-class TakeThread : public ::vos::OThread
++class TakeThread : public ::osl::Thread
+ {
+ private:
+ 
+diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
+index 6c7da45..fd13132 100644
+--- svx/source/fmcomp/gridctrl.cxx
++++ svx/source/fmcomp/gridctrl.cxx
+@@ -3614,7 +3614,7 @@ void DbGridControl::implAdjustInSolarThread(BOOL _bRows)
+ {
+ 	TRACE_RANGE("DbGridControl::implAdjustInSolarThread");
+ 	::osl::MutexGuard aGuard(m_aAdjustSafety);
+-	if (::vos::OThread::getCurrentIdentifier() != Application::GetMainThreadIdentifier())
++	if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier())
+ 	{
+ 		m_nAsynAdjustEvent = PostUserEvent(LINK(this, DbGridControl, OnAsyncAdjust), reinterpret_cast< void* >( _bRows ));
+ 		m_bPendingAdjustRows = _bRows;
+diff --git a/svx/source/fmcomp/trace.cxx b/svx/source/fmcomp/trace.cxx
+index a988dec..c0d41ed 100644
+--- svx/source/fmcomp/trace.cxx
++++ svx/source/fmcomp/trace.cxx
+@@ -49,7 +49,7 @@
+ 
+ //------------------------------------------------------------------------------
+ ::vos::OMutex Tracer::s_aMapSafety;
+-map< ::vos::OThread::TThreadIdentifier, INT32, ::std::less< ::vos::OThread::TThreadIdentifier > >
++map< ::oslThreadIdentifier, INT32, ::std::less< ::oslThreadIdentifier > >
+ 		Tracer::s_aThreadIndents;
+ 
+ //------------------------------------------------------------------------------
+@@ -57,13 +57,13 @@ Tracer::Tracer(const char* _pBlockDescription)
+ 	:m_sBlockDescription(_pBlockDescription)
+ {
+ 	::vos::OGuard aGuard(s_aMapSafety);
+-	INT32 nIndent = s_aThreadIndents[ ::vos::OThread::getCurrentIdentifier() ]++;
++	INT32 nIndent = s_aThreadIndents[ ::osl::Thread::getCurrentIdentifier() ]++;
+ 
+ 	ByteString sIndent;
+ 	while (nIndent--)
+ 		sIndent += '\t';
+ 
+-    ByteString sThread( ByteString::CreateFromInt32( (INT32)::vos::OThread::getCurrentIdentifier() ) );
++    ByteString sThread( ByteString::CreateFromInt32( (INT32)::osl::Thread::getCurrentIdentifier() ) );
+ 	sThread += '\t';
+ 
+ 	ByteString sMessage(sThread);
+@@ -77,13 +77,13 @@ Tracer::Tracer(const char* _pBlockDescription)
+ Tracer::~Tracer()
+ {
+ 	::vos::OGuard aGuard(s_aMapSafety);
+-	INT32 nIndent = --s_aThreadIndents[ ::vos::OThread::getCurrentIdentifier() ];
++	INT32 nIndent = --s_aThreadIndents[ ::osl::Thread::getCurrentIdentifier() ];
+ 
+ 	ByteString sIndent;
+ 	while (nIndent--)
+ 		sIndent += '\t';
+ 
+-    ByteString sThread( ByteString::CreateFromInt32( (INT32)::vos::OThread::getCurrentIdentifier() ) );
++    ByteString sThread( ByteString::CreateFromInt32( (INT32)::osl::Thread::getCurrentIdentifier() ) );
+ 	sThread += '\t';
+ 
+ 	ByteString sMessage(sThread);
+@@ -97,13 +97,13 @@ Tracer::~Tracer()
+ void Tracer::TraceString(const char* _pMessage)
+ {
+ 	::vos::OGuard aGuard(s_aMapSafety);
+-	INT32 nIndent = s_aThreadIndents[ ::vos::OThread::getCurrentIdentifier() ];
++	INT32 nIndent = s_aThreadIndents[ ::osl::Thread::getCurrentIdentifier() ];
+ 
+ 	ByteString sIndent;
+ 	while (nIndent--)
+ 		sIndent += '\t';
+ 
+-    ByteString sThread( ByteString::CreateFromInt32( (INT32)::vos::OThread::getCurrentIdentifier() ) );
++    ByteString sThread( ByteString::CreateFromInt32( (INT32)::osl::Thread::getCurrentIdentifier() ) );
+ 	sThread += '\t';
+ 
+ 	ByteString sMessage(sThread);
+@@ -118,13 +118,13 @@ void Tracer::TraceString(const char* _pMessage)
+ void Tracer::TraceString1StringParam(const char* _pMessage, const char* _pParam)
+ {
+ 	::vos::OGuard aGuard(s_aMapSafety);
+-	INT32 nIndent = s_aThreadIndents[ ::vos::OThread::getCurrentIdentifier() ];
++	INT32 nIndent = s_aThreadIndents[ ::osl::Thread::getCurrentIdentifier() ];
+ 
+ 	ByteString sIndent;
+ 	while (nIndent--)
+ 		sIndent += '\t';
+ 
+-    ByteString sThread( ByteString::CreateFromInt32( (INT32)::vos::OThread::getCurrentIdentifier() ) );
++    ByteString sThread( ByteString::CreateFromInt32( (INT32)::osl::Thread::getCurrentIdentifier() ) );
+ 	sThread += '\t';
+ 
+ 	ByteString sMessage(sThread);
+diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
+index 9040ddc..8fa2145 100644
+--- svx/source/form/fmshimp.cxx
++++ svx/source/form/fmshimp.cxx
+@@ -3244,7 +3244,7 @@ void FmXFormShell::DoAsyncCursorAction(const Reference< XResultSet>& _xForm, CUR
+ 	rDesc.pThread->create();
+ 
+ 	// set a priority slightly below normal
+-	rDesc.pThread->setPriority(::vos::OThread::TPriority_BelowNormal);
++	rDesc.pThread->setPriority(osl_Thread_PriorityBelowNormal);
+ }
+ 
+ //------------------------------------------------------------------------------
+diff --git a/svx/source/form/fmsrcimp.cxx b/svx/source/form/fmsrcimp.cxx
+index 6513cd1..b2d143a 100644
+--- svx/source/form/fmsrcimp.cxx
++++ svx/source/form/fmsrcimp.cxx
+@@ -1275,7 +1275,7 @@ void FmSearchEngine::ImplStartNextSearch()
+         pSearcher->setTerminationHandler(LINK(this, FmSearchEngine, OnSearchTerminated));
+ 
+         pSearcher->createSuspended();
+-        pSearcher->setPriority(::vos::OThread::TPriority_Lowest);
++        pSearcher->setPriority(osl_Thread_PriorityLowest);
+         pSearcher->resume();
+     }
+     else
+diff --git a/svx/source/inc/fmshimp.hxx b/svx/source/inc/fmshimp.hxx
+index db620f1..b1a95f7 100644
+--- svx/source/inc/fmshimp.hxx
++++ svx/source/inc/fmshimp.hxx
+@@ -138,8 +138,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_ //autogen
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _SFXCANCEL_HXX //autogen
+ #include <svtools/cancel.hxx>
+@@ -715,7 +715,7 @@ public:
+ // FmCursorActionThread
+ //==================================================================
+ 
+-class SAL_DLLPRIVATE FmCursorActionThread : public ::vos::OThread
++class SAL_DLLPRIVATE FmCursorActionThread : public ::osl::Thread
+ {
+ 	Link					m_aTerminationHandler;		// the handler to be called upon termination
+ 	::com::sun::star::sdbc::SQLException			m_aRunException;			// the database exception thrown by RunImpl
+diff --git a/svx/source/inc/fmsrcimp.hxx b/svx/source/inc/fmsrcimp.hxx
+index 8777234..e692b6d 100644
+--- svx/source/inc/fmsrcimp.hxx
++++ svx/source/inc/fmsrcimp.hxx
+@@ -40,8 +40,8 @@
+ #include "fmtools.hxx"
+ #endif // _SVX_FMTOOLS_HXX
+ 
+-#ifndef _VOS_THREAD_HXX_ //autogen
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ 
+ #ifndef _OSL_MUTEX_HXX_ //autogen
+@@ -92,7 +92,7 @@ SV_DECL_OBJARR(SvInt32Array, sal_Int32, 16, 16)
+ // ===================================================================================================
+ 
+ class FmSearchEngine;
+-class FmSearchThread : public ::vos::OThread
++class FmSearchThread : public ::osl::Thread
+ {
+ 	FmSearchEngine*		m_pEngine;
+ 	Link				m_aTerminationHdl;
+diff --git a/svx/source/inc/trace.hxx b/svx/source/inc/trace.hxx
+index 4e61198..e1c9169 100644
+--- svx/source/inc/trace.hxx
++++ svx/source/inc/trace.hxx
+@@ -40,8 +40,8 @@
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX_
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VOS_MUTEX_HXX_
+ #include <vos/mutex.hxx>
+@@ -55,7 +55,7 @@ class Tracer
+ {
+ 	ByteString m_sBlockDescription;
+ 
+-	DECLARE_STL_STDKEY_MAP( ::vos::OThread::TThreadIdentifier, sal_Int32, MapThreadId2Int );
++	DECLARE_STL_STDKEY_MAP( ::oslThreadIdentifier, sal_Int32, MapThreadId2Int );
+ 	static MapThreadId2Int s_aThreadIndents;
+ 
+ 	static ::vos::OMutex	s_aMapSafety;
+diff --git a/unotools/inc/unotools/ucblockbytes.hxx b/unotools/inc/unotools/ucblockbytes.hxx
+index 7dc1c86..88cfb98 100644
+--- unotools/inc/unotools/ucblockbytes.hxx
++++ unotools/inc/unotools/ucblockbytes.hxx
+@@ -17,7 +17,7 @@
+ #include "unotools/unotoolsdllapi.h"
+ #endif
+ 
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ #include <vos/conditn.hxx>
+ #include <vos/mutex.hxx>
+ #include <tools/stream.hxx>
+diff --git a/vcl/aqua/inc/salinst.h b/vcl/aqua/inc/salinst.h
+index 1706b08..698166e 100644
+--- vcl/aqua/inc/salinst.h
++++ vcl/aqua/inc/salinst.h
+@@ -38,7 +38,7 @@
+ 
+ #include "vcl/sv.h"
+ #include "vos/mutex.hxx"
+-#include "vos/thread.hxx"
++#include "osl/thread.hxx"
+ #include "vcl/salinst.hxx"
+ 
+ #include "aquavcltypes.h"
+@@ -54,7 +54,7 @@ class AquaSalFrame;
+ class SalYieldMutex : public vos::OMutex
+ {
+ 	ULONG										mnCount;
+-	vos::OThread::TThreadIdentifier             mnThreadId;
++	oslThreadIdentifier                         mnThreadId;
+ 
+ public:
+ 												SalYieldMutex();
+@@ -62,7 +62,7 @@ public:
+ 	virtual void								release();
+ 	virtual sal_Bool							tryToAcquire();
+ 	ULONG										GetAcquireCount() const { return mnCount; }
+-	vos::OThread::TThreadIdentifier             GetThreadId() const { return mnThreadId; }
++	oslThreadIdentifier                         GetThreadId() const { return mnThreadId; }
+ };
+ 
+ #define YIELD_GUARD vos::OGuard aGuard( GetSalData()->mpFirstInstance->GetYieldMutex() )
+@@ -96,7 +96,7 @@ class AquaSalInstance : public SalInstan
+ public:
+ 	SalYieldMutex*		                    mpSalYieldMutex;		// Sal-Yield-Mutex
+     rtl::OUString                           maDefaultPrinter;
+-    vos::OThread::TThreadIdentifier         maMainThread;
++    oslThreadIdentifier                     maMainThread;
+     int                                     mnMainThreadLevel;
+     NSAutoreleasePool*                      mpAutoreleasePool;
+     std::list< SalUserEvent >               maUserEvents;
+diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx
+index c388bd1..292f4e8 100644
+--- vcl/aqua/source/app/salinst.cxx
++++ vcl/aqua/source/app/salinst.cxx
+@@ -248,13 +248,13 @@ SalYieldMutex::SalYieldMutex()
+ void SalYieldMutex::acquire()
+ {
+ 	OMutex::acquire();
+-	mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
++	mnThreadId = osl::Thread::getCurrentIdentifier();
+ 	mnCount++;
+ }
+ 
+ void SalYieldMutex::release()
+ {
+-	if ( mnThreadId == NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
++	if ( mnThreadId == osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		if ( mnCount == 1 )
+ 			mnThreadId = 0;
+@@ -267,7 +267,7 @@ sal_Bool SalYieldMutex::tryToAcquire()
+ {
+ 	if ( OMutex::tryToAcquire() )
+ 	{
+-		mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
++		mnThreadId = osl::Thread::getCurrentIdentifier();
+ 		mnCount++;
+ 		return sal_True;
+ 	}
+@@ -413,7 +413,7 @@ ULONG AquaSalInstance::ReleaseYieldMutex()
+ {
+ 	SalYieldMutex* pYieldMutex = mpSalYieldMutex;
+ 	if ( pYieldMutex->GetThreadId() ==
+-		 NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
++		 osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		ULONG nCount = pYieldMutex->GetAcquireCount();
+ 		ULONG n = nCount;
+diff --git a/vcl/inc/vcl/salgdi.hxx b/vcl/inc/vcl/salgdi.hxx
+index d4cf547..2d0fb68 100644
+--- vcl/inc/vcl/salgdi.hxx
++++ vcl/inc/vcl/salgdi.hxx
+@@ -50,8 +50,8 @@
+ #ifndef _SV_SALGTYPE_HXX
+ #include <vcl/salgtype.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _SV_OUTDEV_HXX
+ #include <vcl/outdev.hxx>
+diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
+index 9492703..cd88a3d 100644
+--- vcl/inc/vcl/svapp.hxx
++++ vcl/inc/vcl/svapp.hxx
+@@ -36,8 +36,8 @@
+ #ifndef _SV_SVAPP_HXX
+ #define _SV_SVAPP_HXX
+ 
+-#ifndef _VOS_THREAD_HXX
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+@@ -310,7 +310,7 @@ public:
+     static void                 Yield( bool bAllEvents = false );
+     static void                 EndYield();
+     static vos::IMutex&                     GetSolarMutex();
+-    static vos::OThread::TThreadIdentifier  GetMainThreadIdentifier();
++    static oslThreadIdentifier  GetMainThreadIdentifier();
+     static ULONG                ReleaseSolarMutex();
+     static void                 AcquireSolarMutex( ULONG nCount );
+ 
+diff --git a/vcl/inc/vcl/svdata.hxx b/vcl/inc/vcl/svdata.hxx
+index 2bd4b55..c9ba081 100644
+--- vcl/inc/vcl/svdata.hxx
++++ vcl/inc/vcl/svdata.hxx
+@@ -36,8 +36,8 @@
+ #ifndef _SV_SVDATA_HXX
+ #define _SV_SVDATA_HXX
+ 
+-#ifndef _VOS_THREAD_HXX
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+@@ -354,7 +354,7 @@ struct ImplSVData
+     Window*                 mpIntroWindow;      // the splash screen
+     DockingManager*         mpDockingManager;
+ 
+-    vos::OThread::TThreadIdentifier                     mnMainThreadId;
++    oslThreadIdentifier                     mnMainThreadId;
+     ::com::sun::star::uno::Reference< 
+         ::com::sun::star::awt::XDisplayConnection >     mxDisplayConnection;
+ 
+diff --git a/vcl/inc/vcl/unobrok.hxx b/vcl/inc/vcl/unobrok.hxx
+index a006609..82593e6 100644
+--- vcl/inc/vcl/unobrok.hxx
++++ vcl/inc/vcl/unobrok.hxx
+@@ -37,7 +37,7 @@
+ #define _UNOBROK_HXX
+ 
+ #include <vcl/svdata.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ namespace vcl_accept
+ {
+diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
+index d5c8d34..134ca55 100644
+--- vcl/source/app/svapp.cxx
++++ vcl/source/app/svapp.cxx
+@@ -589,7 +589,7 @@ vos::IMutex& Application::GetSolarMutex()
+ 
+ // -----------------------------------------------------------------------
+ 
+-vos::OThread::TThreadIdentifier Application::GetMainThreadIdentifier()
++oslThreadIdentifier Application::GetMainThreadIdentifier()
+ {
+     return ImplGetSVData()->mnMainThreadId;
+ }
+diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
+index eafed42..31572b1 100644
+--- vcl/source/app/svmain.cxx
++++ vcl/source/app/svmain.cxx
+@@ -374,7 +374,7 @@ BOOL InitVCL( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XM
+     pSVData->maAppData.mxMSF = rSMgr;
+ 
+     // Main-Thread-Id merken
+-    pSVData->mnMainThreadId = ::vos::OThread::getCurrentIdentifier();
++    pSVData->mnMainThreadId = ::osl::Thread::getCurrentIdentifier();
+ 
+     rtl::OUString       aExeFileName;
+ 
+diff --git a/vcl/source/helper/threadex.cxx b/vcl/source/helper/threadex.cxx
+index 6c3cb34..bcca756 100644
+--- vcl/source/helper/threadex.cxx
++++ vcl/source/helper/threadex.cxx
+@@ -109,7 +109,7 @@ IMPL_LINK( SolarThreadExecutor, worker, void*, EMPTYARG )
+ 
+ long SolarThreadExecutor::impl_execute( const TimeValue* _pTimeout )
+ {
+-	if( ::vos::OThread::getCurrentIdentifier() == Application::GetMainThreadIdentifier() )
++	if( ::osl::Thread::getCurrentIdentifier() == Application::GetMainThreadIdentifier() )
+ 	{
+         osl_setCondition( m_aStart );
+ 		m_nReturn = doIt();
+diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx
+index 1b4b325..b63fa28 100644
+--- vcl/unx/gtk/app/gtkdata.cxx
++++ vcl/unx/gtk/app/gtkdata.cxx
+@@ -72,6 +72,7 @@
+ #include <osl/process.h>
+ #endif
+ 
++#include <osl/conditn.h>
+ #include <tools/debug.hxx>
+ 
+ #ifndef _SAL_I18N_INPUTMETHOD_HXX
+diff --git a/vcl/unx/gtk/app/gtkinst.cxx b/vcl/unx/gtk/app/gtkinst.cxx
+index f360169..4bdd988 100644
+--- vcl/unx/gtk/app/gtkinst.cxx
++++ vcl/unx/gtk/app/gtkinst.cxx
+@@ -82,7 +82,7 @@ void GtkHookedYieldMutex::ThreadsLeave()
+ 
+ #if OSL_DEBUG_LEVEL > 1
+ 	if( mnThreadId &&
+-		mnThreadId != NAMESPACE_VOS(OThread)::getCurrentIdentifier())
++		mnThreadId != osl::Thread::getCurrentIdentifier())
+ 		fprintf( stderr, "\n\n--- A different thread owns the mutex ...---\n\n\n");
+ #endif
+ 
+@@ -225,7 +225,7 @@ GtkYieldMutex::GtkYieldMutex()
+ 
+ void GtkYieldMutex::acquire()
+ {
+-    vos::OThread::TThreadIdentifier aCurrentThread = vos::OThread::getCurrentIdentifier();
++    oslThreadIdentifier aCurrentThread = osl::Thread::getCurrentIdentifier();
+     // protect member manipulation
+     OMutex::acquire();
+     if( mnCount > 0 && mnThreadId == aCurrentThread )
+@@ -248,7 +248,7 @@ void GtkYieldMutex::acquire()
+ 
+ void GtkYieldMutex::release()
+ {
+-    vos::OThread::TThreadIdentifier aCurrentThread = vos::OThread::getCurrentIdentifier();
++    oslThreadIdentifier aCurrentThread = osl::Thread::getCurrentIdentifier();
+     // protect member manipulation
+     OMutex::acquire();
+     // strange things happen, do nothing if we don't own the mutex
+@@ -266,7 +266,7 @@ void GtkYieldMutex::release()
+ 
+ sal_Bool GtkYieldMutex::tryToAcquire()
+ {
+-    vos::OThread::TThreadIdentifier aCurrentThread = vos::OThread::getCurrentIdentifier();
++    oslThreadIdentifier aCurrentThread = osl::Thread::getCurrentIdentifier();
+     // protect member manipulation
+     OMutex::acquire();
+     if( mnCount > 0 )
+@@ -310,9 +310,9 @@ int GtkYieldMutex::Grab()
+     OMutex::acquire();
+     int nRet = mnCount;
+     if( mnCount == 0 ) // recursive else
+-        mnThreadId = vos::OThread::getCurrentIdentifier();
++        mnThreadId = osl::Thread::getCurrentIdentifier();
+ #if OSL_DEBUG_LEVEL > 1
+-    else if( mnThreadId != vos::OThread::getCurrentIdentifier() )
++    else if( mnThreadId != osl::Thread::getCurrentIdentifier() )
+     {
+         fprintf( stderr, "Yield mutex grabbed in different thread !\n" );
+         abort();
+diff --git a/vcl/unx/headless/svpinst.cxx b/vcl/unx/headless/svpinst.cxx
+index 45e22b0..6785f15 100644
+--- vcl/unx/headless/svpinst.cxx
++++ vcl/unx/headless/svpinst.cxx
+@@ -307,7 +307,7 @@ vos::IMutex* SvpSalInstance::GetYieldMutex()
+ ULONG SvpSalInstance::ReleaseYieldMutex()
+ {
+ 	if ( m_aYieldMutex.GetThreadId() ==
+-		 NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
++		 osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		ULONG nCount = m_aYieldMutex.GetAcquireCount();
+ 		ULONG n = nCount;
+@@ -466,13 +466,13 @@ SvpSalYieldMutex::SvpSalYieldMutex()
+ void SvpSalYieldMutex::acquire()
+ {
+ 	OMutex::acquire();
+-	mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
++	mnThreadId = osl::Thread::getCurrentIdentifier();
+ 	mnCount++;
+ }
+ 
+ void SvpSalYieldMutex::release()
+ {
+-	if ( mnThreadId == NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
++	if ( mnThreadId == osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		if ( mnCount == 1 )
+ 			mnThreadId = 0;
+@@ -485,7 +485,7 @@ sal_Bool SvpSalYieldMutex::tryToAcquire()
+ {
+ 	if ( OMutex::tryToAcquire() )
+ 	{
+-		mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
++		mnThreadId = osl::Thread::getCurrentIdentifier();
+ 		mnCount++;
+ 		return sal_True;
+ 	}
+diff --git a/vcl/unx/headless/svpinst.hxx b/vcl/unx/headless/svpinst.hxx
+index a0ea213..202698f 100644
+--- vcl/unx/headless/svpinst.hxx
++++ vcl/unx/headless/svpinst.hxx
+@@ -40,7 +40,7 @@
+ #include <vcl/salwtype.hxx>
+ #include <vcl/saltimer.hxx>
+ #include <vos/mutex.hxx>
+-#include <vos/thread.hxx>
++#include <osl/thread.hxx>
+ 
+ #include <list>
+ 
+@@ -56,7 +56,7 @@ class SvpSalYieldMutex : public NAMESPACE_VOS(OMutex)
+ {
+ protected:
+ 	ULONG										mnCount;
+-	NAMESPACE_VOS(OThread)::TThreadIdentifier	mnThreadId;
++	oslThreadIdentifier	mnThreadId;
+ 
+ public:
+ 												SvpSalYieldMutex();
+@@ -66,7 +66,7 @@ public:
+ 	virtual sal_Bool 							tryToAcquire();
+ 
+ 	ULONG										GetAcquireCount() const { return mnCount; }
+-	NAMESPACE_VOS(OThread)::TThreadIdentifier	GetThreadId() const { return mnThreadId; }
++	oslThreadIdentifier	GetThreadId() const { return mnThreadId; }
+ };
+ 
+ // ---------------
+diff --git a/vcl/unx/inc/salinst.h b/vcl/unx/inc/salinst.h
+index 6e43c21..323e28e 100644
+--- vcl/unx/inc/salinst.h
++++ vcl/unx/inc/salinst.h
+@@ -43,8 +43,8 @@
+ #ifndef _VOS_MUTEX_HXX
+ #include <vos/mutex.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _VCL_DLLAPI_H
+ #include <vcl/dllapi.h>
+@@ -58,7 +58,7 @@ class VCL_DLLPUBLIC SalYieldMutex : public NAMESPACE_VOS(OMutex)
+ {
+ protected:
+ 	ULONG										mnCount;
+-	NAMESPACE_VOS(OThread)::TThreadIdentifier	mnThreadId;
++	oslThreadIdentifier	mnThreadId;
+ 
+ public:
+ 												SalYieldMutex();
+@@ -68,7 +68,7 @@ public:
+ 	virtual sal_Bool 							tryToAcquire();
+ 
+ 	ULONG										GetAcquireCount() const { return mnCount; }
+-	NAMESPACE_VOS(OThread)::TThreadIdentifier	GetThreadId() const { return mnThreadId; }
++	oslThreadIdentifier	GetThreadId() const { return mnThreadId; }
+ };
+ 
+ // -=-= SalInstanceData =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+diff --git a/vcl/unx/inc/salsys.h b/vcl/unx/inc/salsys.h
+index 99dd686..be454dc 100644
+--- vcl/unx/inc/salsys.h
++++ vcl/unx/inc/salsys.h
+@@ -43,8 +43,8 @@
+ #ifndef _VOS_MUTEX_HXX
+ #include <vos/mutex.hxx>
+ #endif
+-#ifndef _VOS_THREAD_HXX
+-#include <vos/thread.hxx>
++#ifndef _THREAD_HXX_
++#include <osl/thread.hxx>
+ #endif
+ #ifndef _SV_SALSYS_HXX
+ #include <vcl/salsys.hxx>
+diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx
+index b9efe40..2a43618 100644
+--- vcl/unx/source/app/saldisp.cxx
++++ vcl/unx/source/app/saldisp.cxx
+@@ -2360,7 +2360,7 @@ void SalX11Display::Yield()
+ 
+     XEvent aEvent;
+     DBG_ASSERT( static_cast<SalYieldMutex*>(GetSalData()->m_pInstance->GetYieldMutex())->GetThreadId() ==
+-                NAMESPACE_VOS(OThread)::getCurrentIdentifier(),
++                osl::Thread::getCurrentIdentifier(),
+                 "will crash soon since solar mutex not locked in SalDisplay::Yield" );
+ 
+     XNextEvent( pDisp_, &aEvent );
+diff --git a/vcl/unx/source/app/salinst.cxx b/vcl/unx/source/app/salinst.cxx
+index f3a9693..f26797a 100644
+--- vcl/unx/source/app/salinst.cxx
++++ vcl/unx/source/app/salinst.cxx
+@@ -94,13 +94,13 @@ SalYieldMutex::SalYieldMutex()
+ void SalYieldMutex::acquire()
+ {
+ 	OMutex::acquire();
+-	mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
++	mnThreadId = osl::Thread::getCurrentIdentifier();
+ 	mnCount++;
+ }
+ 
+ void SalYieldMutex::release()
+ {
+-	if ( mnThreadId == NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
++	if ( mnThreadId == osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		if ( mnCount == 1 )
+ 			mnThreadId = 0;
+@@ -113,7 +113,7 @@ sal_Bool SalYieldMutex::tryToAcquire()
+ {
+ 	if ( OMutex::tryToAcquire() )
+ 	{
+-		mnThreadId = NAMESPACE_VOS(OThread)::getCurrentIdentifier();
++		mnThreadId = osl::Thread::getCurrentIdentifier();
+ 		mnCount++;
+ 		return True;
+ 	}
+@@ -261,7 +261,7 @@ ULONG X11SalInstance::ReleaseYieldMutex()
+ {
+ 	SalYieldMutex* pYieldMutex = mpSalYieldMutex;
+ 	if ( pYieldMutex->GetThreadId() ==
+-		 NAMESPACE_VOS(OThread)::getCurrentIdentifier() )
++		 osl::Thread::getCurrentIdentifier() )
+ 	{
+ 		ULONG nCount = pYieldMutex->GetAcquireCount();
+ 		ULONG n = nCount;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium-splitted-packages.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium-splitted-packages.diff
@@ -0,0 +1,45 @@
+--- setup_native/source/packinfo/packinfo_office.txt.orig	2008-03-25 00:12:39.000000000 +0100
++++ setup_native/source/packinfo/packinfo_office.txt	2008-03-23 15:00:51.000000000 +0100
+@@ -457,3 +473,42 @@
+ description = "Office core module for %PRODUCTNAME %PRODUCTVERSION"
+ destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
+ End
++
++
++# Package definitions for OxygenOffice Professional
++# 1/2 Gallery
++
++Start
++module = "gid_Module_Optional_Accessories_Gallery"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-extra-gallery"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01"
++packagename = "%UNIXPRODUCTNAME-extra-gallery"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-extra-gallery"
++requires = "%UNIXPRODUCTNAME-core01"
++freebsdrequires = "%UNIXPRODUCTNAME-core01"
++copyright = "1999-2008 by %PRODUCTNAMEg"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Extra gallery for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++# 2/2 Fonts
++
++Start
++module = "gid_Module_Optional_Accessories_Fonts"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-extra-fonts"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01"
++packagename = "%UNIXPRODUCTNAME-extra-fonts"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-extra-fonts"
++requires = "%UNIXPRODUCTNAME-core01"
++freebsdrequires = "%UNIXPRODUCTNAME-core01"
++copyright = "1999-2008 by %PRODUCTNAME"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Extra fonts for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++
++# END OF Package definitions for OxygenOffice Professional
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-xmlscript.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-xmlscript.diff
@@ -0,0 +1,22 @@
+--- xmlscript/prj/build.lst	2006-10-30 10:09:11.000000000 +0100
++++ xmlscript/prj/build.lst	2007-09-07 12:07:52.000000000 +0200
+@@ -1,4 +1,4 @@
+-xt	xmlscript :	comphelper tools offapi NULL
++xt	xmlscript :	comphelper tools offapi vcl NULL
+ xt	xmlscript							usr1	-	all	xt_mkout NULL
+ xt	xmlscript\inc						nmake	-	all	xt_inc NULL
+ xt	xmlscript\source\xml_helper			nmake	-	all	xt_xml_helper xt_inc NULL
+--- xmlscript/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ xmlscript/prj/tests.lst	2007-09-07 12:07:05.000000000 +0200
+@@ -0,0 +1 @@
++xt   xmlscript\test                                     nmake - all xt_test xt_util NULL
+--- xmlscript/test/makefile.mk	2007-02-06 15:16:47.000000000 +0100
++++ xmlscript/test/makefile.mk	2007-09-07 12:08:25.000000000 +0200
+@@ -58,7 +58,6 @@ APP1OBJS=$(OBJFILES)
+ APP1STDLIBS= \
+ 		$(TOOLSLIB)			\
+ 		$(SOTLIB)			\
+-		$(SVTOOLLIB)			\
+ 		$(COMPHELPERLIB)		\
+ 		$(VCLLIB)			\
+ 		$(CPPULIB)			\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/split-icons-search-usr-share.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/split-icons-search-usr-share.diff
@@ -0,0 +1,63 @@
+--- vcl/source/gdi/impimagetree.cxx.old	2007-07-24 12:11:00.000000000 +0200
++++ vcl/source/gdi/impimagetree.cxx	2007-08-09 18:54:33.000000000 +0200
+@@ -234,10 +234,25 @@ bool ImplImageTree::implInit()
+ 				
+ 					if( !mxFileAccess->exists( aRet = aZipURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
+ 					{
+-						if ( bWithStyle && maSymbolsStyle.getLength() > 0 )
+-							aRet = implGetZipFileURL( false ); // Try without style
+-						else
+-							aRet = ::rtl::OUString();
++						// try /usr/share
++						::rtl::OUString aDataDir = ::rtl::OUString::createFromAscii ( "/usr/share/" );
++#ifdef X86_64
++						::rtl::OUString aLibDir = ::rtl::OUString::createFromAscii ( "/usr/lib64/" );
++#else
++						::rtl::OUString aLibDir = ::rtl::OUString::createFromAscii ( "/usr/lib/" );
++#endif
++						sal_Int32 nLibDirPos = aRet.indexOf( aLibDir );
++
++						if ( nLibDirPos >= 0 )
++						{
++							if( !mxFileAccess->exists( aRet = aRet.replaceAt( nLibDirPos, aLibDir.getLength(), aDataDir ) ) )
++							{
++								if ( bWithStyle && maSymbolsStyle.getLength() > 0 )
++									aRet = implGetZipFileURL( false ); // Try without style
++								else
++									aRet = ::rtl::OUString();
++							}
++						}
+ 					}
+ 				}
+ 			}
+--- xmlhelp/source/cxxhelp/provider/provider.cxx.old	2007-06-05 20:28:52.000000000 +0200
++++ xmlhelp/source/cxxhelp/provider/provider.cxx	2007-08-09 19:10:44.000000000 +0200
+@@ -368,7 +368,7 @@ void ContentProvider::init()
+         setupextension );
+ 	rtl::OUString vendorshort = vendorname;
+ 	
+-    uno::Sequence< rtl::OUString > aImagesZipPaths( 2 );
++    uno::Sequence< rtl::OUString > aImagesZipPaths( 3 );
+     xHierAccess = getHierAccess( sProvider,	 "org.openoffice.Office.Common" );
+ 	
+     rtl::OUString aPath( getKey( xHierAccess, "Path/Current/UserConfig" ) );
+@@ -378,6 +378,19 @@ void ContentProvider::init()
+     aPath = getKey( xHierAccess, "Path/Current/Config" );
+     subst( aPath );
+     aImagesZipPaths[ 1 ] = aPath;
++
++    // try also /usr/share
++    ::rtl::OUString aDataDir = ::rtl::OUString::createFromAscii ( "/usr/share/" );
++#ifdef X86_64
++    ::rtl::OUString aLibDir = ::rtl::OUString::createFromAscii ( "/usr/lib64/" );
++#else
++    ::rtl::OUString aLibDir = ::rtl::OUString::createFromAscii ( "/usr/lib/" );
++#endif
++    sal_Int32 nLibDirPos = aPath.indexOf( aLibDir );
++
++    if ( nLibDirPos >= 0 )
++	    aPath = aPath.replaceAt( nLibDirPos, aLibDir.getLength(), aDataDir );
++    aImagesZipPaths[ 2 ] = aPath;
+ 	
+     sal_Bool showBasic = getBooleanKey(xHierAccess,"Help/ShowBasic");
+     m_pDatabases = new Databases( showBasic, 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/human-icons-i18n.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/human-icons-i18n.diff
@@ -0,0 +1,88 @@
+--- svx/source/dialog/localize.sdf~	2007-03-28 12:18:01.422673148 +0200
++++ svx/source/dialog/localize.sdf	2007-03-28 16:18:36.900429045 +0200
+@@ -120977,6 +120977,85 @@
+ svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	zh-CN	Tango				2002-02-02 02:02:02
+ svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	zh-TW	Tango				2002-02-02 02:02:02
+ svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	zu	Tango				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	af	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ar	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	be-BY	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	bg	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	bn	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	bn-BD	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	bn-IN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	br	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	bs	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ca	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	cs	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	cy	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	da	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	el	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	en-GB	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	en-ZA	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	eo	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	es	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	et	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	eu	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	fa	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	fi	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	fr	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ga	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	gl	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	gu	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	gu-IN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	he	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	hi-IN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	hr	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	hu	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	it	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ja	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ka	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	km	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	kn-IN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ko	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ku	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	lo	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	lt	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	lv	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	mk	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ms	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	nb	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ne	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	nl	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	nn	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	nr	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ns	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	pa-IN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	pl	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	pt	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	pt-BR	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ru	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	rw	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sh-YU	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sk	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sl	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sr-CS	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ss	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	st	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sv	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sw	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sw-TZ	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	sx	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ta	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ta-IN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	tg	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	th	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	tn	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	tr	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ts	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	uk	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	ve	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	vi	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	xh	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	zh-CN	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	zh-TW	Human				2002-02-02 02:02:02
++svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_ICONSTYLE	6			0	zu	Human				2002-02-02 02:02:02
+ svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_MOUSEMIDDLE	1			0	af	Geen funksie				2002-02-02 02:02:02
+ svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_MOUSEMIDDLE	1			0	ar	لصق الحافظة				20040507 14:25:45
+ svx	source\dialog\optgdlg.src	0	stringlist	OFA_TP_VIEW.LB_MOUSEMIDDLE	1			0	as-IN	কোনো ফাংকশ্বন নাই				2002-02-02 02:02:02
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ui-desktop-integration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ui-desktop-integration.diff
@@ -0,0 +1,227 @@
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs	2005-06-27 16:27:27.000000000 +0530
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	2005-07-11 18:53:02.204896274 +0530
+@@ -4902,6 +4902,13 @@ Dymamic border coloring means that when 
+ 				</info>
+ 				<value>true</value>
+ 			</prop>
++			<prop oor:name="DisableUICustomization" oor:type="xs:boolean">
++				<info>
++					<author>RSiddhartha</author>
++					<desc>Disables the customization of the UI elements.</desc>
++				</info>
++				<value>false</value>
++			</prop>
+ 			<prop oor:name="SymbolSet" oor:type="xs:short">
+ 				<!-- UIHints: Tools  Options General View -->
+ 				<info>
+--- svtools/inc/svtools/miscopt.hxx	2005-06-27 16:27:26.000000000 +0530
++++ svtools/inc/svtools/miscopt.hxx	2005-07-11 17:58:51.734343074 +0530
+@@ -157,6 +157,8 @@ class SVL_DLLPUBLIC SvtMiscOptions
+         void        SetUseSystemFileDialog( sal_Bool bSet );
+         sal_Bool    IsUseSystemFileDialogReadOnly() const;
+ 
++        sal_Bool    DisableUICustomization() const;
++
+         sal_Bool    IsPluginsEnabled() const;
+         void        SetPluginsEnabled( sal_Bool bEnable );
+         sal_Bool    IsPluginsEnabledReadOnly() const;
+--- svtools/source/config/miscopt.cxx	2005-06-27 16:27:27.000000000 +0530
++++ svtools/source/config/miscopt.cxx	2005-07-11 18:43:48.450164303 +0530
+@@ -109,8 +109,10 @@ using namespace ::com::sun::star;
+ #define PROPERTYHANDLE_USESYSTEMFILEDIALOG	3
+ #define PROPERTYNAME_SYMBOLSTYLE			ASCII_STR("SymbolStyle")
+ #define PROPERTYHANDLE_SYMBOLSTYLE			4
++#define PROPERTYNAME_DISABLEUICUSTOMIZATION	ASCII_STR("DisableUICustomization")
++#define PROPERTYHANDLE_DISABLEUICUSTOMIZATION			5
+ 
+-#define PROPERTYCOUNT						5
++#define PROPERTYCOUNT						6
+ 
+ #define VCL_TOOLBOX_STYLE_FLAT				((USHORT)0x0004) // from <vcl/toolbox.hxx>
+ 
+@@ -136,6 +138,7 @@ class SvtMiscOptions_Impl : public Confi
+     sal_Bool    m_bIsSymbolSetRO;
+     sal_Int16   m_nToolboxStyle;
+     sal_Bool    m_bIsToolboxStyleRO;
++    sal_Bool    m_bDisableUICustomization;
+ 
+     //-------------------------------------------------------------------------------------------------------------
+ 	//	public methods
+@@ -204,6 +207,9 @@ class SvtMiscOptions_Impl : public Confi
+         inline sal_Bool IsUseSystemFileDialogReadOnly() const
+         { return m_bIsUseSystemFileDialogRO; }
+ 
++        inline sal_Bool DisableUICustomization() const
++        { return m_bDisableUICustomization; }
++
+         inline sal_Bool IsPluginsEnabled() const
+         { return m_bPluginsEnabled; }
+ 
+@@ -369,6 +375,13 @@ SvtMiscOptions_Impl::SvtMiscOptions_Impl
+                 m_bIsUseSystemFileDialogRO = seqRO[nProperty];
+                 break;
+             }
++	    
++            case PROPERTYHANDLE_DISABLEUICUSTOMIZATION : 
++            {
++                if( !(seqValues[nProperty] >>= m_bDisableUICustomization) )
++                    DBG_ERROR("Wrong type of \"Misc\\DisableUICustomization\"!" );
++                    break;
++            }
+         }
+ 	}
+ 
+@@ -453,6 +466,11 @@ void SvtMiscOptions_Impl::Load( const Se
+                                                                 DBG_ERROR("Wrong type of \"Misc\\SymbolSet\"!" );
+                                                         }
+                                                     break;
++            case PROPERTYHANDLE_DISABLEUICUSTOMIZATION      :   {
++                                                            if( !(seqValues[nProperty] >>= m_bDisableUICustomization) )
++                                                                DBG_ERROR("Wrong type of \"Misc\\DisableUICustomization\"!" );
++                                                        }
++                                                    break;
+         }
+     }
+ }
+@@ -633,6 +633,12 @@ void SvtMiscOptions_Impl::Commit()
+ 					seqValues[nProperty] <<= GetSymbolsStyleName();
+ 				break;
+ 			}
++
++            case PROPERTYHANDLE_DISABLEUICUSTOMIZATION :
++            {
++                seqValues[nProperty] <<= m_bDisableUICustomization;
++                break;
++            }
+         }
+ 	}
+ 	// Set properties in configuration.
+@@ -651,7 +651,8 @@ Sequence< OUString > SvtMiscOptions_Impl
+         PROPERTYNAME_SYMBOLSET,
+         PROPERTYNAME_TOOLBOXSTYLE,
+         PROPERTYNAME_USESYSTEMFILEDIALOG,
+-        PROPERTYNAME_SYMBOLSTYLE
++        PROPERTYNAME_SYMBOLSTYLE,
++        PROPERTYNAME_DISABLEUICUSTOMIZATION
+ 	};
+ 
+ 	// Initialize return sequence with these list ...
+@@ -743,6 +766,11 @@ sal_Bool SvtMiscOptions::IsGetSymbolSetR
+     return m_pDataContainer->IsGetSymbolSetReadOnly();
+ }
+ 
++sal_Bool SvtMiscOptions::DisableUICustomization() const
++{
++    return m_pDataContainer->DisableUICustomization();
++}
++
+ sal_Int16 SvtMiscOptions::GetToolboxStyle() const
+ {
+     return m_pDataContainer->GetToolboxStyle();
+--- sfx2/sdi/appslots.sdi	2005-02-16 23:50:35.000000000 +0530
++++ sfx2/sdi/appslots.sdi	2005-07-07 12:41:15.000000000 +0530
+@@ -330,6 +330,7 @@ interface Application : Module
+ 	SID_AVAILABLE_TOOLBARS
+ 	[
+ 		ExecMethod = MiscExec_Impl ;
++		StateMethod = MiscState_Impl ;
+ 	]
+ 
+ 	//---------------------------------------------------------------------
+--- sfx2/source/appl/appserv.cxx	2005-06-27 16:27:22.000000000 +0530
++++ sfx2/source/appl/appserv.cxx	2005-07-11 18:29:05.699333198 +0530
+@@ -186,6 +186,9 @@
+ #include <svtools/moduleoptions.hxx>
+ #include <svtools/regoptions.hxx>
+ #include <svtools/helpopt.hxx>
++#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
++#include <svtools/miscopt.hxx>
++#endif // INCLUDED_SVTOOLS_MISCOPT_HXX
+ #include <tools/shl.hxx>
+ 
+ #include <com/sun/star/script/provider/XScriptProviderFactory.hpp>
+@@ -728,6 +731,18 @@ void SfxApplication::MiscState_Impl(SfxI
+ 					break;
+ 				}
+ 
++				case SID_CONFIG:
++				case SID_TOOLBOXOPTIONS:
++				case SID_CONFIGSTATUSBAR:
++				case SID_CONFIGMENU:
++				case SID_CONFIGACCEL:
++				case SID_CONFIGEVENT:
++				{
++					if( SvtMiscOptions().DisableUICustomization() )
++						rSet.DisableItem(nWhich);
++					break;
++				}
++
+ 				case SID_BASICSTOP:
+ 					if ( !StarBASIC::IsRunning() )
+ 						rSet.DisableItem(nWhich);
+--- framework/source/uielement/toolbarmanager.cxx	2005-06-27 16:27:26.000000000 +0530
++++ framework/source/uielement/toolbarmanager.cxx	2005-07-11 18:27:01.959582798 +0530
+@@ -324,7 +324,7 @@ ToolBarManager::ToolBarManager( const Re
+     m_bUpdateControllers( sal_False ),
+     m_bImageOrientationRegistered( sal_False ),
+     m_bImageMirrored( sal_False ),
+-    m_bCanBeCustomized( sal_True ),
++    m_bCanBeCustomized( !SvtMiscOptions().DisableUICustomization() ),
+     m_lImageRotation( 0 ),
+     m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
+ {
+@@ -516,6 +516,24 @@ void ToolBarManager::UpdateControllers()
+ {
+     RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::ToolBarManager::UpdateControllers" );
+ 
++    if( !m_bCanBeCustomized )
++    {
++        Any a;
++        Reference< XLayoutManager > xLayoutManager;
++        Reference< XPropertySet > xFramePropSet( m_xFrame, UNO_QUERY );
++        if ( xFramePropSet.is() )
++            a = xFramePropSet->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" )));
++        a >>= xLayoutManager;
++        Reference< XDockableWindow > xDockable( VCLUnoHelper::GetInterface( m_pToolBar ), UNO_QUERY );
++        if ( xLayoutManager.is() && xDockable.is() )
++        {
++            ::com::sun::star::awt::Point aPoint;
++            aPoint.X = aPoint.Y = LONG_MAX;
++            xLayoutManager->dockWindow( m_aResourceName, DockingArea_DOCKINGAREA_DEFAULT, aPoint );
++            xLayoutManager->lockWindow( m_aResourceName );
++        }
++    }
++
+     if ( !m_bUpdateControllers )
+     {
+         m_bUpdateControllers = sal_True;
+@@ -1641,6 +1659,7 @@ IMPL_LINK( ToolBarManager, MenuButton, T
+             // Non-configurable toolbars should disable configuration menu items
+             aPopupMenu.EnableItem( MENUITEM_TOOLBAR_VISIBLEBUTTON, sal_False );
+             aPopupMenu.EnableItem( MENUITEM_TOOLBAR_CUSTOMIZETOOLBAR, sal_False );
++            aPopupMenu.EnableItem( MENUITEM_TOOLBAR_LOCKTOOLBARPOSITION, sal_False );
+         }
+ 
+ 		pItemMenu->SetMenuFlags (pItemMenu->GetMenuFlags () | 
+--- framework/source/uielement/toolbarsmenucontroller.cxx	2005-03-29 20:30:44.000000000 +0530
++++ framework/source/uielement/toolbarsmenucontroller.cxx	2005-07-11 18:09:16.732966419 +0530
+@@ -155,6 +155,9 @@
+ #ifndef INCLUDED_SVTOOLS_MENUOPTIONS_HXX
+ #include <svtools/menuoptions.hxx>
+ #endif
++#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
++#include <svtools/miscopt.hxx>
++#endif // INCLUDED_SVTOOLS_MISCOPT_HXX
+ #include <svtools/cmdoptions.hxx>
+ 
+ //_________________________________________________________________________________________________________________
+@@ -417,6 +420,9 @@ Sequence< Sequence< com::sun::star::bean
+ 
+ void ToolbarsMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopupMenu )
+ {
++    if( SvtMiscOptions().DisableUICustomization() )
++        return;
++
+     vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
+     resetPopupMenu( rPopupMenu );
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-cleanup.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-cleanup.diff
@@ -0,0 +1,7475 @@
+diff --git a/UnoControls/source/base/makefile.mk b/UnoControls/source/base/makefile.mk
+index a30812a..e49f5bf 100644
+--- UnoControls/source/base/makefile.mk
++++ UnoControls/source/base/makefile.mk
+@@ -60,7 +60,6 @@ SLOFILES=		$(SLO)$/multiplexer.obj				\
+ #		$(ONELIB)	 \
+ #		$(USRLIB)	 \
+ #		$(UNOLIB)	 \
+-#		$(VOSLIB) 	 \
+ #		$(OSLLIB) 	 \
+ #		$(TOOLSLIB) 	 \
+ #		$(RTLLIB)
+diff --git a/UnoControls/util/makefile.mk b/UnoControls/util/makefile.mk
+index 4fe6f71..ca17828 100644
+--- UnoControls/util/makefile.mk
++++ UnoControls/util/makefile.mk
+@@ -60,7 +60,6 @@ SHL1STDLIBS= \
+ 		$(TOOLSLIB) \
+ 		$(CPPUHELPERLIB) \
+ 		$(CPPULIB) \
+-		$(VOSLIB) \
+ 		$(SALLIB)
+ 
+ SHL1DEPN=		makefile.mk
+diff --git a/automation/source/mozillaserver/makefile.mk b/automation/source/mozillaserver/makefile.mk
+index a1dcee3..d82741d 100644
+--- automation/source/mozillaserver/makefile.mk
++++ automation/source/mozillaserver/makefile.mk
+@@ -117,7 +117,7 @@ UNOTYPES= \
+ 
+ #SHL1TARGET=iserverproxy
+ #SHL1STDLIBS= \
+-#		$(VOSLIB) $(OSLLIB) $(RTLLIB) $(TOOLSLIB) \
++#		$(OSLLIB) $(RTLLIB) $(TOOLSLIB) \
+ #		$(CPPULIB)		\
+ #		$(CPPUHELPERLIB)	\
+ #		$(UNOLIB)	\
+diff --git a/automation/util/makefile.mk b/automation/util/makefile.mk
+index 510edac..f2bfe92 100644
+--- automation/util/makefile.mk
++++ automation/util/makefile.mk
+@@ -63,7 +63,6 @@ SHL1STDLIBS= \
+ 			$(SVLLIB)       \
+ 			$(VCLLIB) \
+ 			$(BASICLIB) \
+-			$(VOSLIB) \
+ 			$(SALLIB) \
+ 			$(CPPUHELPERLIB) \
+ 			$(CPPULIB) \
+@@ -94,7 +93,6 @@ SHL2IMPLIB= isimplecm
+ 
+ SHL2STDLIBS= \
+ 			$(TOOLSLIB) \
+-			$(VOSLIB) \
+ 			$(SALLIB)
+ 
+ 
+@@ -119,13 +117,11 @@ SHL3STDLIBS= \
+ 			$(SVLLIB)       \
+ 			$(VCLLIB) \
+ 			$(BASICLIB) \
+-			$(VOSLIB) \
+ 			$(SALLIB) \
+ 			$(CPPUHELPERLIB) \
+ 			$(CPPULIB) \
+ 			$(COMPHELPERLIB) \
+             $(SOTLIB) \
+-            $(VOSLIB) \
+             $(SIMPLECMLIB)
+ 
+ 
+@@ -168,7 +164,6 @@ APP1STDLIBS+= \
+ 			$(VCLLIB) \
+ 			$(SALLIB) \
+ 			$(SJLIB) \
+-			$(VOSLIB) \
+ 			$(UCBHELPERLIB) \
+ 			$(COMPHELPERLIB) \
+             $(SOTLIB) \
+@@ -178,7 +173,7 @@ APP1STDLIBS+= \
+ 
+ .IF "$(GUI)"=="UNX"
+ APP1STDLIBS+= \
+-			$(VOSLIB) $(SALLIB) $(BASICLIB)
++			$(SALLIB) $(BASICLIB)
+ APP1STDLIBS+=$(CPPULIB)
+ .ENDIF
+ .IF "$(GUI)"=="WNT" || "$(COM)"=="GCC"
+@@ -238,10 +233,10 @@ APP3STDLIBS= \
+ .IF "$(GUI)"=="UNX"
+ .IF "$(OS)"=="MACOSX"
+ APP3STDLIBS+= \
+-			$(VOSLIB) $(SALLIB) $(LIBSTLPORT)
++			$(SALLIB) $(LIBSTLPORT)
+ .ELSE
+ APP3STDLIBS+= \
+-			$(VOSLIB) $(SALLIB)
++			$(SALLIB)
+ .ENDIF
+ .ENDIF
+ # $(AUTOMATIONLIB) is build in SHL1TARGET
+diff --git a/avmedia/util/makefile.mk b/avmedia/util/makefile.mk
+index 2fbf804..56435cd 100644
+--- avmedia/util/makefile.mk
++++ avmedia/util/makefile.mk
+@@ -62,7 +62,7 @@ LIB1FILES=\
+ 
+ SHL1TARGET=$(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1IMPLIB=i$(TARGET)
+-SHL1STDLIBS=$(UNOTOOLSLIB) $(TOOLSLIB) $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(VCLLIB) $(COMPHELPERLIB) $(SVTOOLLIB) $(SVLLIB) $(SFXLIB) $(SOTLIB) $(VOSLIB)
++SHL1STDLIBS=$(UNOTOOLSLIB) $(TOOLSLIB) $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(VCLLIB) $(COMPHELPERLIB) $(SVTOOLLIB) $(SVLLIB) $(SFXLIB) $(SOTLIB)
+ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+ SHL1LIBS=$(SLB)$/$(TARGET).lib
+ 
+diff --git a/basegfx/test/makefile.mk b/basegfx/test/makefile.mk
+index 1c949de..2e96eb3 100644
+--- basegfx/test/makefile.mk
++++ basegfx/test/makefile.mk
+@@ -58,7 +58,6 @@ SHL1TARGET= tests
+ SHL1STDLIBS= 	\
+ 				$(SALLIB)		 \
+ 				$(BASEGFXLIB)	 \
+-				$(VOSLIB)		 \
+ 				$(CPPUHELPERLIB) \
+ 				$(CPPULIB)		 \
+ 				$(CPPUNITLIB)
+diff --git a/basic/util/makefile.mk b/basic/util/makefile.mk
+index e75e033..42c4d07 100644
+--- basic/util/makefile.mk
++++ basic/util/makefile.mk
+@@ -65,12 +65,10 @@ SHL1STDLIBS= \
+ 			$(SVTOOLLIB) \
+ 			$(SVLLIB)	\
+ 			$(VCLLIB) \
+-			$(VOSLIB) \
+ 			$(SALLIB) \
+ 			$(COMPHELPERLIB) \
+ 			$(UNOTOOLSLIB) \
+ 			$(SOTLIB) \
+-			$(VOSLIB) \
+ 		    $(XMLSCRIPTLIB)
+ 
+ .IF "$(SOLAR_JAVA)" != "TRUE"
+diff --git a/basic/workben/makefile.mk b/basic/workben/makefile.mk
+index cd412b7..53d5720 100644
+--- basic/workben/makefile.mk
++++ basic/workben/makefile.mk
+@@ -58,15 +58,13 @@ APP1STDLIBS= \
+ 			$(CPPUHELPERLIB) \
+ 			$(CPPULIB) \
+ 			$(SJLIB) \
+-			$(SOTLIB) \
+-			$(VOSLIB)
++			$(SOTLIB)
+ 
+ #.IF "$(GUI)"=="WNT" || "$(COM)"=="GCC"
+ #APP1STDLIBS+=$(CPPULIB)
+ #.ENDIF
+ #.IF "$(GUI)"=="UNX"
+ #APP1STDLIBS+= \
+-#			$(VOSLIB) \
+ #			$(SALLIB)
+ #.ENDIF
+ 
+diff --git a/binfilter/bf_basic/util/makefile.mk b/binfilter/bf_basic/util/makefile.mk
+index 56dff23..85d1444 100644
+--- binfilter/bf_basic/util/makefile.mk
++++ binfilter/bf_basic/util/makefile.mk
+@@ -63,12 +63,10 @@ SHL1STDLIBS= \
+             $(SVTOOLLIB) \
+             $(SVLLIB)   \
+             $(SVLIB) \
+-            $(VOSLIB) \
+             $(SALLIB) \
+             $(COMPHELPERLIB) \
+             $(UNOTOOLSLIB) \
+             $(SOTLIB) \
+-            $(VOSLIB) \
+             $(VCLLIB) \
+             $(XMLSCRIPTLIB)
+ 
+diff --git a/binfilter/bf_forms/util/makefile.mk b/binfilter/bf_forms/util/makefile.mk
+index c9050b2..3092987 100644
+--- binfilter/bf_forms/util/makefile.mk
++++ binfilter/bf_forms/util/makefile.mk
+@@ -74,7 +74,6 @@ SHL1STDLIBS= \
+ 		$(SVLLIB)	\
+ 		$(BFSVXLIB) \
+ 		$(LEGACYSMGRLIB)	\
+-		$(VOSLIB) \
+ 		$(UNOTOOLSLIB) \
+ 		$(COMPHELPERLIB) \
+ 		$(DBTOOLSLIB) \
+diff --git a/binfilter/bf_offmgr/util/makefile.mk b/binfilter/bf_offmgr/util/makefile.mk
+index 703690b..525ffc0 100644
+--- binfilter/bf_offmgr/util/makefile.mk
++++ binfilter/bf_offmgr/util/makefile.mk
+@@ -87,7 +87,6 @@ SHL2STDLIBS+= \
+ 	$(COMPHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(VOSLIB) \
+     $(SALLIB)
+ 
+ .IF "$(GUI)"=="WNT"
+diff --git a/binfilter/bf_sc/util/makefile.mk b/binfilter/bf_sc/util/makefile.mk
+index 43cf1c7..402adae 100644
+--- binfilter/bf_sc/util/makefile.mk
++++ binfilter/bf_sc/util/makefile.mk
+@@ -90,7 +90,6 @@ SHL1STDLIBS+=       \
+ 	$(COMPHELPERLIB)	\
+ 	$(UCBHELPERLIB)	\
+ 	$(TKLIB)		\
+-	$(VOSLIB)		\
+ 	$(SALLIB)		\
+ 	$(SALHELPERLIB)		\
+ 	$(TOOLSLIB)		\
+diff --git a/binfilter/bf_sd/util/makefile.mk b/binfilter/bf_sd/util/makefile.mk
+index b824e28..4be9123 100644
+--- binfilter/bf_sd/util/makefile.mk
++++ binfilter/bf_sd/util/makefile.mk
+@@ -91,7 +91,6 @@ SHL1STDLIBS+= \
+ 	$(UCBHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(VOSLIB) \
+ 	$(SALLIB)
+ 
+ 
+diff --git a/binfilter/bf_so3/util/makefile.mk b/binfilter/bf_so3/util/makefile.mk
+index 58ebd5e..94de88c 100644
+--- binfilter/bf_so3/util/makefile.mk
++++ binfilter/bf_so3/util/makefile.mk
+@@ -81,7 +81,6 @@ SHL1STDLIBS=\
+ 		$(SOTLIB) \
+ 		$(UNOTOOLSLIB) \
+ 		$(TOOLSLIB)	\
+-		$(VOSLIB) \
+ 		$(COMPHELPERLIB) \
+ 		$(CPPUHELPERLIB) \
+ 		$(CPPULIB) \
+diff --git a/binfilter/bf_svx/util/makefile.mk b/binfilter/bf_svx/util/makefile.mk
+index db3f8c4..0558a2d 100644
+--- binfilter/bf_svx/util/makefile.mk
++++ binfilter/bf_svx/util/makefile.mk
+@@ -76,7 +76,6 @@ SHL1STDLIBS= \
+ 			$(UCBHELPERLIB) \
+ 			$(CPPUHELPERLIB) \
+ 			$(CPPULIB) \
+-			$(VOSLIB) \
+ 			$(SALLIB) \
+ 			$(ICUUCLIB)\
+ 			$(FWELIB) \
+diff --git a/binfilter/bf_sw/util/makefile.mk b/binfilter/bf_sw/util/makefile.mk
+index 58743bf..ce54b11 100644
+--- binfilter/bf_sw/util/makefile.mk
++++ binfilter/bf_sw/util/makefile.mk
+@@ -119,7 +119,6 @@ SHL2STDLIBS+= \
+ 	$(UCBHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(VOSLIB) \
+ 	$(SALLIB) \
+ 	$(SALHELPERLIB) \
+     $(ICUUCLIB)
+diff --git a/binfilter/bf_xmloff/util/makefile.mk b/binfilter/bf_xmloff/util/makefile.mk
+index 6778f80..7f7dc52 100644
+--- binfilter/bf_xmloff/util/makefile.mk
++++ binfilter/bf_xmloff/util/makefile.mk
+@@ -75,7 +75,6 @@ SHL1STDLIBS= \
+ 		$(SVTOOLLIB)	\
+ 		$(TOOLSLIB)		\
+ 		$(I18NISOLANGLIB) \
+-		$(VOSLIB)		\
+ 		$(CPPULIB)		\
+ 		$(CPPUHELPERLIB)\
+ 		$(COMPHELPERLIB)\
+diff --git a/binfilter/filter/source/bf_migrate/makefile.mk b/binfilter/filter/source/bf_migrate/makefile.mk
+index b986f02..404fb46 100644
+--- binfilter/filter/source/bf_migrate/makefile.mk
++++ binfilter/filter/source/bf_migrate/makefile.mk
+@@ -68,7 +68,6 @@ SHL1STDLIBS=$(CPPULIB)			\
+ 			$(CPPUHELPERLIB)	\
+ 			$(UNOTOOLSLIB)		\
+ 			$(COMPHELPERLIB)	\
+-			$(VOSLIB)			\
+ 			$(SALLIB)			\
+ 			$(VCLLIB)			\
+ 			$(SVLLIB)			\
+diff --git a/binfilter/filter/source/bf_offwrp/makefile.mk b/binfilter/filter/source/bf_offwrp/makefile.mk
+index 7061363..fd62164 100644
+--- binfilter/filter/source/bf_offwrp/makefile.mk
++++ binfilter/filter/source/bf_offwrp/makefile.mk
+@@ -71,7 +71,6 @@ SHL1STDLIBS=    \
+ 				$(VCLLIB) 			\
+ 				$(SOTLIB) 			\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(TOOLSLIB)			\
+ 				$(CPPULIB)			\
+ 				$(CPPUHELPERLIB)	\
+diff --git a/bridges/test/performance/makefile.mk b/bridges/test/performance/makefile.mk
+index 7b3345d..7f2c700 100644
+--- bridges/test/performance/makefile.mk
++++ bridges/test/performance/makefile.mk
+@@ -61,7 +61,6 @@ APP1STDLIBS+= -lstdc++
+ APP1STDLIBS+=	\
+ 			$(CPPULIB)	\
+ 			$(CPPUHELPERLIB)	\
+-			$(VOSLIB)	\
+ 			$(SALLIB)
+ 
+ APP1DEF=	$(MISC)$/$(APP1TARGET).def
+diff --git a/chart2/workbench/addin/makefile.mk b/chart2/workbench/addin/makefile.mk
+index 4d1b003..2e4ddde 100644
+--- chart2/workbench/addin/makefile.mk
++++ chart2/workbench/addin/makefile.mk
+@@ -81,7 +81,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS= \
+ 		$(CPPUHELPERLIB)	\
+ 		$(CPPULIB)			\
+-		$(VOSLIB)			\
+ 		$(SALLIB) 
+ 
+ SHL1DEPN=makefile.mk
+diff --git a/comphelper/prj/build.lst b/comphelper/prj/build.lst
+index 9d44807..a38f999 100644
+--- comphelper/prj/build.lst
++++ comphelper/prj/build.lst
+@@ -1,4 +1,4 @@
+-ph	comphelper	:	cppuhelper ucbhelper offuh vos salhelper NULL
++ph	comphelper	:	cppuhelper ucbhelper offuh salhelper NULL
+ ph	comphelper								usr1	-	all	ph_mkout NULL
+ ph	comphelper\inc							nmake	-	all	ph_inc NULL
+ ph	comphelper\source\container				nmake	-	all	ph_container ph_inc NULL
+diff --git a/comphelper/util/makefile.mk b/comphelper/util/makefile.mk
+index ac7d1b0..bc821ae 100644
+--- comphelper/util/makefile.mk
++++ comphelper/util/makefile.mk
+@@ -62,8 +62,7 @@ SHL1STDLIBS= \
+ 	$(SALHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(UCBHELPERLIB) \
+-	$(VOSLIB)
++	$(UCBHELPERLIB)
+ 
+ SHL1DEPN=
+ SHL1IMPLIB=	i$(COMPHLP_TARGET)
+diff --git a/configmgr/prj/build.lst b/configmgr/prj/build.lst
+index 35c8a1d..6364664 100644
+--- configmgr/prj/build.lst
++++ configmgr/prj/build.lst
+@@ -1,4 +1,4 @@
+-cg	configmgr	:	offapi comphelper cppuhelper vos vcl NULL
++cg	configmgr	:	offapi comphelper cppuhelper vcl NULL
+ cg	configmgr								usr1	-	all	cg_mkout NULL
+ cg	configmgr\inc							nmake	-	all	cg_inc NULL
+ cg	configmgr\source\cmdtools				nmake	-	all	cg_cmdtools cg_misc cg_inc NULL
+diff --git a/configmgr/util/makefile.mk b/configmgr/util/makefile.mk
+index 0ceee7d..2702173 100644
+--- configmgr/util/makefile.mk
++++ configmgr/util/makefile.mk
+@@ -53,7 +53,6 @@ SHL1STDLIBS=\
+ 	$(COMPHELPERLIB)			\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALHELPERLIB)				\
+ 	$(SALLIB)
+ 
+diff --git a/configmgr/workben/apitest/makefile.mk b/configmgr/workben/apitest/makefile.mk
+index aeb48d8..0666b46 100644
+--- configmgr/workben/apitest/makefile.mk
++++ configmgr/workben/apitest/makefile.mk
+@@ -58,7 +58,6 @@ CDEFS += -DDLL_VERSION=$(EMQ)"$(UPD)$(DLLPOSTFIX)$(EMQ)"
+ # ... common for all test executables ..............................
+ APPSTDLIBS=\
+ 			$(SALLIB) \
+-            $(VOSLIB) \
+ 			$(CPPULIB)	\
+ 			$(CPPUHELPERLIB)
+ 
+diff --git a/configmgr/workben/local_io/makefile.mk b/configmgr/workben/local_io/makefile.mk
+index 0d94d85..07ae0db 100644
+--- configmgr/workben/local_io/makefile.mk
++++ configmgr/workben/local_io/makefile.mk
+@@ -53,7 +53,6 @@ CDEFS += -DDLL_VERSION=$(EMQ)"$(UPD)$(DLLPOSTFIX)$(EMQ)"
+ # ... common for all test executables ..............................
+ APPSTDLIBS=\
+ 			$(SALLIB) \
+-         $(VOSLIB) \
+ 			$(CPPULIB)	\
+ 		$(UNOTOOLSLIB) \
+ 			$(CPPUHELPERLIB) \
+diff --git a/configmgr/workben/memory/makefile.mk b/configmgr/workben/memory/makefile.mk
+index d94a7c2..b455e6f 100644
+--- configmgr/workben/memory/makefile.mk
++++ configmgr/workben/memory/makefile.mk
+@@ -54,7 +54,6 @@ CDEFS += -DDLL_VERSION=$(EMQ)"$(UPD)$(DLLPOSTFIX)$(EMQ)"
+ # ... common for all test executables ..............................
+ APPSTDLIBS=\
+ 			$(SALLIB) \
+-			$(VOSLIB) \
+ 			$(CPPULIB)	\
+ 			$(CPPUHELPERLIB)	\
+ 			$(COMPHELPERLIB)	\
+diff --git a/connectivity/source/cpool/makefile.mk b/connectivity/source/cpool/makefile.mk
+index c7f7ee2..09309c9 100644
+--- connectivity/source/cpool/makefile.mk
++++ connectivity/source/cpool/makefile.mk
+@@ -69,7 +69,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(COMPHELPERLIB)			\
+ 	$(DBTOOLSLIB)				\
+ 	$(SALLIB)				\
+diff --git a/connectivity/source/dbtools/makefile.mk b/connectivity/source/dbtools/makefile.mk
+index 4be0233..9d4b091 100644
+--- connectivity/source/dbtools/makefile.mk
++++ connectivity/source/dbtools/makefile.mk
+@@ -64,7 +64,6 @@ SHL1TARGET=	$(DBTOOLS_TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(SALHELPERLIB)					\
+ 	$(JVMACCESSLIB)				\
+diff --git a/connectivity/source/drivers/adabas/makefile.mk b/connectivity/source/drivers/adabas/makefile.mk
+index 4d944da..6d1412a 100644
+--- connectivity/source/drivers/adabas/makefile.mk
++++ connectivity/source/drivers/adabas/makefile.mk
+@@ -89,7 +89,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(SALHELPERLIB)					\
+ 	$(DBTOOLSLIB)				\
+diff --git a/connectivity/source/drivers/ado/makefile.mk b/connectivity/source/drivers/ado/makefile.mk
+index a64d595..462b0ca 100644
+--- connectivity/source/drivers/ado/makefile.mk
++++ connectivity/source/drivers/ado/makefile.mk
+@@ -96,7 +96,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(OLE32LIB)					\
+ 	$(OLEAUT32LIB)				\
+diff --git a/connectivity/source/drivers/calc/makefile.mk b/connectivity/source/drivers/calc/makefile.mk
+index d111ef6..01a0c11 100644
+--- connectivity/source/drivers/calc/makefile.mk
++++ connectivity/source/drivers/calc/makefile.mk
+@@ -73,7 +73,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SVLLIB)					\
+ 	$(VCLLIB)					\
+ 	$(TOOLSLIB)					\
+diff --git a/connectivity/source/drivers/dbase/makefile.mk b/connectivity/source/drivers/dbase/makefile.mk
+index 5c35ebe..3ef9c6b 100644
+--- connectivity/source/drivers/dbase/makefile.mk
++++ connectivity/source/drivers/dbase/makefile.mk
+@@ -104,7 +104,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SVLLIB)					\
+ 	$(TOOLSLIB)					\
+ 	$(SVTOOLLIB)				\
+diff --git a/connectivity/source/drivers/evoab/makefile.mk b/connectivity/source/drivers/evoab/makefile.mk
+index 60a98cb..0b42fd7 100644
+--- connectivity/source/drivers/evoab/makefile.mk
++++ connectivity/source/drivers/evoab/makefile.mk
+@@ -80,7 +80,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SVLLIB)					\
+ 	$(VCLLIB)					\
+ 	$(TOOLSLIB)					\
+diff --git a/connectivity/source/drivers/evoab2/makefile.mk b/connectivity/source/drivers/evoab2/makefile.mk
+index c3ec517..89587b2 100644
+--- connectivity/source/drivers/evoab2/makefile.mk
++++ connectivity/source/drivers/evoab2/makefile.mk
+@@ -86,7 +86,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SVLLIB)					\
+ 	$(VCLLIB)					\
+ 	$(TOOLSLIB)					\
+diff --git a/connectivity/source/drivers/file/makefile.mk b/connectivity/source/drivers/file/makefile.mk
+index 1370a17..5c76c16 100644
+--- connectivity/source/drivers/file/makefile.mk
++++ connectivity/source/drivers/file/makefile.mk
+@@ -80,7 +80,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SVLLIB)					\
+ 	$(TOOLSLIB)					\
+ 	$(SVTOOLLIB)				\
+diff --git a/connectivity/source/drivers/flat/makefile.mk b/connectivity/source/drivers/flat/makefile.mk
+index 3e18d39..3377e54 100644
+--- connectivity/source/drivers/flat/makefile.mk
++++ connectivity/source/drivers/flat/makefile.mk
+@@ -84,7 +84,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SVLLIB)					\
+ 	$(VCLLIB)					\
+ 	$(TOOLSLIB)					\
+diff --git a/connectivity/source/drivers/hsqldb/makefile.mk b/connectivity/source/drivers/hsqldb/makefile.mk
+index 5c52b3b..2ba33e1 100644
+--- connectivity/source/drivers/hsqldb/makefile.mk
++++ connectivity/source/drivers/hsqldb/makefile.mk
+@@ -99,7 +99,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(SALHELPERLIB)				\
+ 	$(JVMACCESSLIB)				\
+diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk
+index 4a97b47..d7e233e 100644
+--- connectivity/source/drivers/jdbc/makefile.mk
++++ connectivity/source/drivers/jdbc/makefile.mk
+@@ -93,7 +93,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(SALHELPERLIB)					\
+ 	$(JVMACCESSLIB)				\
+diff --git a/connectivity/source/drivers/kab/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
+index b3ba952..e706a48 100644
+--- connectivity/source/drivers/kab/makefile.mk
++++ connectivity/source/drivers/kab/makefile.mk
+@@ -112,7 +112,6 @@ SHL2OBJS=$(SLO2FILES)
+ SHL2STDLIBS=\
+     $(CPPULIB)                  \
+     $(CPPUHELPERLIB)            \
+-    $(VOSLIB)                   \
+     $(SALLIB)                   \
+     $(SALHELPERLIB)                   \
+     $(DBTOOLSLIB)               \
+diff --git a/connectivity/source/drivers/macab/makefile.mk b/connectivity/source/drivers/macab/makefile.mk
+old mode 100755
+new mode 100644
+index d401e5d..47af778
+--- connectivity/source/drivers/macab/makefile.mk
++++ connectivity/source/drivers/macab/makefile.mk
+@@ -112,7 +112,6 @@ SHL2OBJS=$(SLO2FILES)
+ SHL2STDLIBS=\
+     $(CPPULIB)                  \
+     $(CPPUHELPERLIB)            \
+-    $(VOSLIB)                   \
+     $(SALLIB)                   \
+     $(DBTOOLSLIB)               \
+     $(COMPHELPERLIB)            \
+diff --git a/connectivity/source/drivers/mozab/makefile.mk b/connectivity/source/drivers/mozab/makefile.mk
+index c8a0e58..c44b3b8 100644
+--- connectivity/source/drivers/mozab/makefile.mk
++++ connectivity/source/drivers/mozab/makefile.mk
+@@ -109,7 +109,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(COMPHELPERLIB)
+@@ -172,7 +171,6 @@ SHL2OBJS=$(SLO2FILES)
+ SHL2STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(COMPHELPERLIB)			\
+diff --git a/connectivity/source/drivers/mysql/makefile.mk b/connectivity/source/drivers/mysql/makefile.mk
+index cf2add9..b0fce35 100644
+--- connectivity/source/drivers/mysql/makefile.mk
++++ connectivity/source/drivers/mysql/makefile.mk
+@@ -71,7 +71,6 @@ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(DBTOOLSLIB)				\
+ 	$(COMPHELPERLIB)            \
+diff --git a/connectivity/source/drivers/odbc/makefile.mk b/connectivity/source/drivers/odbc/makefile.mk
+index d08f371..bea3820 100644
+--- connectivity/source/drivers/odbc/makefile.mk
++++ connectivity/source/drivers/odbc/makefile.mk
+@@ -78,7 +78,6 @@ SHL1STDLIBS=\
+ 	$(COMPHELPERLIB)			\
+ 	$(CPPUHELPERLIB)			\
+ 	$(CPPULIB)					\
+-	$(VOSLIB)					\
+ 	$(SALLIB)					\
+ 	$(SALHELPERLIB)
+ 
+diff --git a/connectivity/source/manager/makefile.mk b/connectivity/source/manager/makefile.mk
+index fd66702..1451611 100644
+--- connectivity/source/manager/makefile.mk
++++ connectivity/source/manager/makefile.mk
+@@ -66,7 +66,6 @@ SHL1STDLIBS=\
+ 	$(CPPULIB)					\
+ 	$(CPPUHELPERLIB)			\
+ 	$(COMPHELPERLIB)            \
+-	$(VOSLIB)					\
+ 	$(SALLIB)
+ 
+ SHL1DEPN=
+diff --git a/connectivity/workben/iniParser/makefile.mk b/connectivity/workben/iniParser/makefile.mk
+index 7588309..60fcafd 100644
+--- connectivity/workben/iniParser/makefile.mk
++++ connectivity/workben/iniParser/makefile.mk
+@@ -50,7 +50,6 @@ OBJFILES=       $(OBJ)$/main.obj
+ 
+ 
+ APPSTDLIBS=$(SALLIB) \
+-        $(VOSLIB) \
+ 	$(CPPULIB)	\
+ 	$(CPPUHELPERLIB)	\
+ 	$(UCBHELPERLIB)	\
+diff --git a/connectivity/workben/little/makefile.mk b/connectivity/workben/little/makefile.mk
+index 95127e9..112b4ee 100644
+--- connectivity/workben/little/makefile.mk
++++ connectivity/workben/little/makefile.mk
+@@ -51,7 +51,6 @@ OBJFILES=       $(OBJ)$/main.obj
+ APP1TARGET= $(TARGET)
+ APP1OBJS=       $(OBJFILES)
+ APPSTDLIBS=$(SALLIB) \
+-            $(VOSLIB) \
+ 			$(CPPULIB)	\
+ 			$(CPPUHELPERLIB)	\
+ 			$(SLB)$/sql.lib
+diff --git a/connectivity/workben/testmoz/makefile.mk b/connectivity/workben/testmoz/makefile.mk
+index 8ddaa93..f5f25ea 100644
+--- connectivity/workben/testmoz/makefile.mk
++++ connectivity/workben/testmoz/makefile.mk
+@@ -50,7 +50,6 @@ OBJFILES=       $(OBJ)$/main.obj
+ 
+ 
+ APPSTDLIBS=$(SALLIB) \
+-        $(VOSLIB) \
+ 	$(CPPULIB)	\
+ 	$(CPPUHELPERLIB)	\
+ 	$(UCBHELPERLIB)	\
+diff --git a/dbaccess/util/makefile.mk b/dbaccess/util/makefile.mk
+index 7da9a2f..b41c864 100644
+--- dbaccess/util/makefile.mk
++++ dbaccess/util/makefile.mk
+@@ -72,7 +72,6 @@ SHL1STDLIBS= \
+ 		$(UCBHELPERLIB) \
+ 		$(SVLLIB)	\
+ 		$(CPPULIB) \
+-		$(VOSLIB) \
+ 		$(SALLIB) \
+         $(SALHELPERLIB)
+ 
+@@ -125,7 +124,6 @@ SHL2STDLIBS= \
+ 		$(CPPUHELPERLIB)		\
+ 		$(CPPULIB)				\
+ 		$(SO2LIB)				\
+-		$(VOSLIB)				\
+ 		$(SALLIB)				\
+ 		$(SALHELPERLIB)
+ 
+diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
+index 5be3d9d..c30961e 100644
+--- desktop/source/splash/makefile.mk
++++ desktop/source/splash/makefile.mk
+@@ -73,7 +73,6 @@ SHL1STDLIBS= \
+ 	$(COMPHELPERLIB)    \
+     $(UNOTOOLSLIB)		\
+ 	$(TOOLSLIB)			\
+-	$(VOSLIB)			\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+ 	$(SALLIB)
+diff --git a/desktop/unx/splash/makefile.mk b/desktop/unx/splash/makefile.mk
+index 4bbe6dd..574ff87 100644
+--- desktop/unx/splash/makefile.mk
++++ desktop/unx/splash/makefile.mk
+@@ -62,7 +62,6 @@ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+ DEF1NAME=$(SHL1TARGET)
+ 
+ SHL1STDLIBS= \
+-	$(VOSLIB)			\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+ 	$(SALLIB)
+diff --git a/desktop/util/makefile.mk b/desktop/util/makefile.mk
+index 390186b..a4c5055 100644
+--- desktop/util/makefile.mk
++++ desktop/util/makefile.mk
+@@ -104,9 +104,9 @@ LINKFLAGSAPPGUI!:=	$(LINKFLAGSAPPGUI:s/-bind_at_load//)
+ ## winXX is handled like solaris for now
+ #APP1_STDPRE=
+ #APP1_STDPOST=$(CPPULIB) $(CPPUHELPERLIB) $(UNOLIB) $(TOOLSLIB) \
+-#	$(VOSLIB) $(SALLIB)
++#	$(SALLIB)
+ #.ELSE
+-#APP1_STDPRE=$(SALLIB) $(VOSLIB) $(TOOLSLIB) $(UNOLIB) $(CPPULIB) \
++#APP1_STDPRE=$(SALLIB) $(TOOLSLIB) $(UNOLIB) $(CPPULIB) \
+ #	$(CPPUHELPERLIB)
+ #APP1_STDPOST=
+ #.ENDIF
+@@ -128,7 +128,6 @@ APP1STDLIBS=			\
+ 	$(I18NISOLANGLIB)   \
+ 	$(COMPHELPERLIB)	\
+ 	$(UCBHELPERLIB)		\
+-	$(VOSLIB)			\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+     $(TKLIB)            \
+@@ -173,7 +172,6 @@ APP5STDLIBS=			\
+ 	$(I18NISOLANGLIB)   \
+ 	$(COMPHELPERLIB)	\
+ 	$(UCBHELPERLIB)		\
+-	$(VOSLIB)			\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+ 	$(SALLIB)			\
+diff --git a/dtrans/prj/build.lst b/dtrans/prj/build.lst
+index 95d697d..fd97412 100644
+--- dtrans/prj/build.lst
++++ dtrans/prj/build.lst
+@@ -1,4 +1,4 @@
+-dr	dtrans	:	unotools offapi offuh rdbmaker vos stoc NULL
++dr	dtrans	:	unotools offapi offuh rdbmaker stoc NULL
+ dr	dtrans									usr1	-	all	dr_mkout NULL
+ dr	dtrans\inc								nmake	-	all	dr_inc NULL
+ dr	dtrans\source\cnttype					nmake	-	all	dr_cnttype dr_generic dr_inc NULL
+diff --git a/embeddedobj/source/msole/makefile.mk b/embeddedobj/source/msole/makefile.mk
+index fdcdf40..14f675d 100644
+--- embeddedobj/source/msole/makefile.mk
++++ embeddedobj/source/msole/makefile.mk
+@@ -100,7 +100,6 @@ SHL1OBJS= $(SLOFILES)
+ 
+ SHL1STDLIBS=\
+ 	$(SALLIB)\
+-	$(VOSLIB)\
+ 	$(CPPULIB)\
+ 	$(CPPUHELPERLIB)\
+ 	$(COMPHELPERLIB)\
+diff --git a/eventattacher/prj/build.lst b/eventattacher/prj/build.lst
+index aa93170..400b5a8 100644
+--- eventattacher/prj/build.lst
++++ eventattacher/prj/build.lst
+@@ -1,4 +1,4 @@
+-ea      eventattacher   :       offapi cppuhelper vos NULL
++ea      eventattacher   :       offapi cppuhelper NULL
+ ea	eventattacher							usr1	-	all	ea_mkout NULL
+ ea	eventattacher\prj						get		-	all	ea_prj NULL
+ ea	eventattacher\source					nmake	-	all	ea_source NULL
+diff --git a/extensions/source/nsplugin/source/makefile.mk b/extensions/source/nsplugin/source/makefile.mk
+index 3f6018d..7c54c87 100644
+--- extensions/source/nsplugin/source/makefile.mk
++++ extensions/source/nsplugin/source/makefile.mk
+@@ -108,7 +108,6 @@ APP1STDLIBS=\
+ 			$(CPPUHELPERLIB)	\
+ 			$(UNOTOOLSLIB)		\
+ 			$(COMPHELPERLIB)	\
+-			$(VOSLIB)			\
+ 			$(SALLIB)			\
+ 			$(VCLLIB)			\
+ 			$(SVLLIB)			\
+diff --git a/extensions/source/ole/makefile.mk b/extensions/source/ole/makefile.mk
+index a7554f3..45ced34 100644
+--- extensions/source/ole/makefile.mk
++++ extensions/source/ole/makefile.mk
+@@ -79,7 +79,6 @@ OWNGUIDCDEFS+= -DOWNGUID
+ SHL1TARGET=$(TARGET)
+ SHL1STDLIBS=\
+         $(SALLIB) 	\
+-	$(VOSLIB)	\
+ 	$(CPPULIB)	\
+ 	$(CPPUHELPERLIB)	\
+ 	$(OLE32LIB) 	\
+@@ -107,7 +106,6 @@ DEF1EXPORTFILE=$(SHL1TARGET).dxp
+ SHL2TARGET=$(TARGET2)
+ SHL2STDLIBS=\
+         $(SALLIB) 	\
+-	$(VOSLIB)	\
+ 	$(CPPULIB)	\
+ 	$(CPPUHELPERLIB)	\
+ 	$(OLE32LIB) 	\
+diff --git a/extensions/source/plugin/aqua/makefile.mk b/extensions/source/plugin/aqua/makefile.mk
+index 18daccc..3afc384 100644
+--- extensions/source/plugin/aqua/makefile.mk
++++ extensions/source/plugin/aqua/makefile.mk
+@@ -66,7 +66,6 @@ SLOFILES=\
+ #APP1OBJS=$(OBJFILES)
+ #APP1STDLIBS=\
+ #	$(TOOLSLIB) 				\
+-#	$(VOSLIB)					\
+ #	$(SALLIB)
+ 
+ #APP1DEF=	$(MISC)$/$(TARGET).def
+diff --git a/extensions/source/plugin/unx/makefile.mk b/extensions/source/plugin/unx/makefile.mk
+index 7aed30b..e3463fc 100644
+--- extensions/source/plugin/unx/makefile.mk
++++ extensions/source/plugin/unx/makefile.mk
+@@ -78,7 +78,6 @@ APP1TARGET=pluginapp.bin
+ APP1OBJS=$(OBJFILES)
+ APP1STDLIBS=\
+ 	$(TOOLSLIB) 				\
+-	$(VOSLIB)					\
+ 	$(SALLIB)
+ .IF "$(OS)"=="SOLARIS" || "$(OS)"=="SCO" || "$(OS)"=="HPUX"
+ APP1STDLIBS+=-lXm -lXt -lXext -lX11 -ldl
+diff --git a/extensions/source/plugin/util/makefile.mk b/extensions/source/plugin/util/makefile.mk
+index 6f3512f..eb53502 100644
+--- extensions/source/plugin/util/makefile.mk
++++ extensions/source/plugin/util/makefile.mk
+@@ -94,7 +94,6 @@ SHL1STDLIBS+= \
+ 	$(VCLLIB)			\
+ 	$(SVLLIB)			\
+ 	$(TOOLSLIB)			\
+-	$(VOSLIB)			\
+ 	$(UCBHELPERLIB)		\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+diff --git a/extensions/source/resource/makefile.mk b/extensions/source/resource/makefile.mk
+index 6c35014..a0c9d7b 100644
+--- extensions/source/resource/makefile.mk
++++ extensions/source/resource/makefile.mk
+@@ -59,7 +59,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+-		$(VOSLIB) 	 \
+ 		$(SALLIB) 	 \
+ 		$(VCLLIB)	\
+ 		$(COMPHELPERLIB) \
+diff --git a/extensions/source/scanner/makefile.mk b/extensions/source/scanner/makefile.mk
+index 1f2903a..b4c3a32 100644
+--- extensions/source/scanner/makefile.mk
++++ extensions/source/scanner/makefile.mk
+@@ -78,7 +78,6 @@ SHL1STDLIBS=\
+ 	$(CPPULIB)			\
+ 	$(CPPUHELPERLIB)	\
+ 	$(COMPHELPERLIB)	\
+-	$(VOSLIB)			\
+ 	$(SALLIB)			\
+ 	$(ONELIB)			\
+ 	$(TOOLSLIB)			\
+diff --git a/extensions/source/update/tools/makefile.mk b/extensions/source/update/tools/makefile.mk
+index cbfc483..847b09b 100644
+--- extensions/source/update/tools/makefile.mk
++++ extensions/source/update/tools/makefile.mk
+@@ -60,7 +60,7 @@ APP1STDLIBS = $(TOOLSLIB)
+ #APP2TARGET = urltest
+ #APP2OBJS = $(OBJ)$/urltest.obj
+ #.IF "$(GUI)" == "UNX"
+-#APP2STDLIBS = $(TOOLSLIB) $(VOSLIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
++#APP2STDLIBS = $(TOOLSLIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
+ #.ELSE
+ #APP2STDLIBS = $(LB)$/itools.lib ivos.lib isal.lib icppu.lib icppuhelper.lib
+ #.ENDIF
+diff --git a/extensions/test/ole/cpnt/makefile.mk b/extensions/test/ole/cpnt/makefile.mk
+index 8b1aff3..17cbe26 100644
+--- extensions/test/ole/cpnt/makefile.mk
++++ extensions/test/ole/cpnt/makefile.mk
+@@ -67,7 +67,6 @@ SHL1TARGET= $(TARGET)
+ 
+ SHL1STDLIBS= \
+ 		$(SALLIB)	\
+-		$(VOSLIB)	\
+ 		$(CPPULIB) 	\
+ 		$(CPPUHELPERLIB)
+ 
+diff --git a/extensions/test/sax/makefile.mk b/extensions/test/sax/makefile.mk
+index b76e9a8..94c9be7 100644
+--- extensions/test/sax/makefile.mk
++++ extensions/test/sax/makefile.mk
+@@ -54,7 +54,6 @@ LIB1OBJFILES=	$(OBJFILES)
+ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ 
+ SHL1STDLIBS= \
+-		$(VOSLIB) 	 \
+ 		$(SALLIB) 	 \
+ 		$(TOOLSLIB)	
+ 
+diff --git a/extensions/test/stm/makefile.mk b/extensions/test/stm/makefile.mk
+index 583f849..0d14a6a 100644
+--- extensions/test/stm/makefile.mk
++++ extensions/test/stm/makefile.mk
+@@ -50,7 +50,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ LIB1TARGET= $(SLB)$/$(TARGET).lib	
+ 
+ SHL1STDLIBS= \
+-		$(VOSLIB) 	 \
+ 		$(SALLIB) 	 \
+ 		$(TOOLSLIB)	
+ 
+diff --git a/extensions/workben/makefile.mk b/extensions/workben/makefile.mk
+index cccd889..f73386c 100644
+--- extensions/workben/makefile.mk
++++ extensions/workben/makefile.mk
+@@ -91,7 +91,6 @@ APP1OBJS=	$(OBJFILES)
+ APP1STDLIBS= \
+ 			$(CPPUHELPERLIB)\
+ 			$(CPPULIB)		\
+-			$(VOSLIB)		\
+ 			$(SALLIB)
+ 
+ .ENDIF # testpgp
+@@ -106,7 +105,6 @@ OBJFILES=	$(OBJ)$/testcomponent.obj
+ APP2TARGET = testcomponent
+ APP2OBJS   = $(OBJ)$/testcomponent.obj
+ APP2STDLIBS = \
+-              $(VOSLIB) \
+               $(TOOLSLIB)	\
+               $(SALLIB)
+ 
+@@ -121,8 +119,7 @@ OBJFILES=	$(OBJ)$/pythontest.obj
+ 
+ #APP4TARGET=	pythontest
+ #APP4OBJS=	$(OBJ)$/pythontest.obj 
+-#APP4STDLIBS=$(TOOLSLIB)		\
+-#			$(VOSLIB)
++#APP4STDLIBS=$(TOOLSLIB)
+ 
+ .ENDIF # phytontest
+ 
+@@ -135,8 +132,7 @@ OBJFILES=	$(OBJ)$/pythonautotest.obj
+ 
+ #APP5TARGET= pythonautotest
+ #APP5OBJS = $(OBJ)$/pythonautotest.obj
+-#APP5STDLIBS=$(TOOLSLIB)		\
+-#			$(VOSLIB)
++#APP5STDLIBS=$(TOOLSLIB)
+ 
+ .ENDIF # phytonautotest
+ 
+@@ -170,7 +166,6 @@ OBJFILES=	$(OBJ)$/testframecontrol.obj
+ APP3TARGET=	testframecontrol
+ APP3OBJS=	$(OBJ)$/testframecontrol.obj
+ APP3STDLIBS=$(TOOLSLIB)		\
+-			$(VOSLIB)		\
+ 			$(SVTOOLLIB)	\
+ 			$(VCLLIB)
+ 
+diff --git a/fileaccess/source/makefile.mk b/fileaccess/source/makefile.mk
+index 65138da..67028c9 100644
+--- fileaccess/source/makefile.mk
++++ fileaccess/source/makefile.mk
+@@ -60,7 +60,6 @@ DEF1NAME=$(SHL1TARGET)
+ SHL1STDLIBS= \
+         $(UNOTOOLSLIB) \
+ 		$(TOOLSLIB) \
+-		$(VOSLIB) \
+ 		$(UCBHELPERLIB) \
+ 		$(CPPUHELPERLIB) \
+ 		$(CPPULIB) \
+diff --git a/filter/source/xsltdialog/makefile.mk b/filter/source/xsltdialog/makefile.mk
+index 7dc0b2f..22a8197 100644
+--- filter/source/xsltdialog/makefile.mk
++++ filter/source/xsltdialog/makefile.mk
+@@ -85,7 +85,6 @@ SHL1STDLIBS=\
+ 	$(CPPULIB)			\
+ 	$(CPPUHELPERLIB)	\
+ 	$(COMPHELPERLIB)	\
+-	$(VOSLIB)			\
+ 	$(SALLIB)			\
+ 	$(TOOLSLIB)			\
+ 	$(VCLLIB)			\
+diff --git a/filter/source/xsltfilter/makefile.mk b/filter/source/xsltfilter/makefile.mk
+index 3be188c..043e91a 100644
+--- filter/source/xsltfilter/makefile.mk
++++ filter/source/xsltfilter/makefile.mk
+@@ -60,7 +60,6 @@ SHL1STDLIBS= \
+     $(VCLLIB)           \
+     $(UNOTOOLSLIB)      \
+     $(TOOLSLIB)         \
+-    $(VOSLIB)           \
+     $(CPPUHELPERLIB)    \
+     $(CPPULIB)          \
+     $(XMLOFFLIB) \
+diff --git a/forms/util/makefile.mk b/forms/util/makefile.mk
+index 685af20..970bb0c 100644
+--- forms/util/makefile.mk
++++ forms/util/makefile.mk
+@@ -71,7 +71,6 @@ SHL1STDLIBS= \
+ 		$(SVLLIB)	\
+ 		$(TKLIB) \
+ 		$(SFX2LIB) \
+-		$(VOSLIB) \
+ 		$(UNOTOOLSLIB) \
+ 		$(COMPHELPERLIB) \
+ 		$(DBTOOLSLIB) \
+diff --git a/fpicker/test/makefile.mk b/fpicker/test/makefile.mk
+index 013f443..c2417c4 100644
+--- fpicker/test/makefile.mk
++++ fpicker/test/makefile.mk
+@@ -66,7 +66,6 @@ APP1STDLIBS=	$(CPPULIB)			\
+ 				$(VCLLIB)			\
+ 				$(TOOLSLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(SVLIB)  -l$(LB)/fps_office.uno.lib
+ 
+diff --git a/framework/collector/makefile.mk b/framework/collector/makefile.mk
+index 27f4ebd..1e6b26d 100644
+--- framework/collector/makefile.mk
++++ framework/collector/makefile.mk
+@@ -52,7 +52,6 @@ APP1OBJS=		$(SLO)$/cmduicollector.obj
+ 
+ APP1STDLIBS=	\
+ 				$(SALLIB)							\
+-				$(VOSLIB)							\
+ 				$(TOOLSLIB)                         \
+ 				$(CPPULIB)                          \
+ 				$(COMPHELPERLIB)					\
+diff --git a/framework/test/makefile.mk b/framework/test/makefile.mk
+index 2215e16..44ff95f 100644
+--- framework/test/makefile.mk
++++ framework/test/makefile.mk
+@@ -57,7 +57,6 @@ USE_DEFFILE=		TRUE
+ #APP1STDLIBS=	$(CPPULIB)							\
+ #				$(CPPUHELPERLIB)					\
+ #				$(SALLIB)							\
+-#				$(VOSLIB)							\
+ #				$(TOOLSLIB) 						\
+ #				$(SVTOOLLIB)						\
+ #				$(TKLIB)							\
+@@ -85,7 +84,6 @@ DEPOBJFILES+= $(APP2OBJS)
+ APP2STDLIBS=	$(CPPULIB)							\
+ 				$(CPPUHELPERLIB)					\
+ 				$(SALLIB)							\
+-				$(VOSLIB)							\
+ 				$(VCLLIB)
+ 
+ APP2DEPN=		$(SLO)$/fairrwlock.obj				\
+diff --git a/framework/test/threadtest/makefile.mk b/framework/test/threadtest/makefile.mk
+index 3b7cea0..ed36fe9 100644
+--- framework/test/threadtest/makefile.mk
++++ framework/test/threadtest/makefile.mk
+@@ -58,7 +58,6 @@ DEPOBJFILES=$(APP1OBJS)
+ APP1STDLIBS=	$(CPPULIB)										\
+ 				$(CPPUHELPERLIB)								\
+ 				$(SALLIB)										\
+-				$(VOSLIB)										\
+ 				$(VCLLIB)
+ 
+ APP1DEPN=		$(INC)$/threadhelp$/threadhelpbase.hxx			\
+diff --git a/framework/test/typecfg/makefile.mk b/framework/test/typecfg/makefile.mk
+index e8dd17b..822d215 100644
+--- framework/test/typecfg/makefile.mk
++++ framework/test/typecfg/makefile.mk
+@@ -61,7 +61,6 @@ DEPOBJFILES=$(APP2OBJS)
+ APP2STDLIBS=	$(CPPULIB)							\
+ 				$(CPPUHELPERLIB)					\
+ 				$(SALLIB)							\
+-				$(VOSLIB)							\
+ 				$(TOOLSLIB) 						\
+ 				$(SVTOOLLIB)						\
+ 				$(TKLIB)							\
+diff --git a/framework/util/guiapps/makefile.mk b/framework/util/guiapps/makefile.mk
+index 08aed6c..2c81e76 100644
+--- framework/util/guiapps/makefile.mk
++++ framework/util/guiapps/makefile.mk
+@@ -60,7 +60,6 @@ DEPOBJFILES=$(APP1OBJS)
+ APP1STDLIBS=	$(CPPULIB)							\
+ 				$(CPPUHELPERLIB)					\
+ 				$(SALLIB)							\
+-				$(VOSLIB)							\
+ 				$(TOOLSLIB) 						\
+ 				$(SVTOOLLIB)						\
+ 				$(TKLIB)							\
+diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk
+index 70230ea..cff13e8 100644
+--- framework/util/makefile.mk
++++ framework/util/makefile.mk
+@@ -120,7 +120,6 @@ SHL1STDLIBS=    \
+                 $(UNOTOOLSLIB)	    \
+ 				$(CPPUHELPERLIB)	\
+                 $(TOOLSLIB)		    \
+-                $(VOSLIB)		    \
+                 $(VCLLIB)		    \
+ 				$(CPPULIB)		    \
+                 $(SALLIB)
+@@ -159,7 +158,6 @@ SHL2STDLIBS=    \
+ 				$(COMPHELPERLIB)					\
+ 				$(CPPUHELPERLIB)					\
+ 				$(CPPULIB)							\
+-				$(VOSLIB)							\
+ 				$(SALLIB)
+ 
+ SHL2DEF=        $(MISC)$/$(SHL2TARGET).def
+@@ -191,7 +189,6 @@ SHL3STDLIBS=	\
+ 				$(CPPUHELPERLIB)					\
+ 				$(COMPHELPERLIB)					\
+ 				$(CPPULIB)							\
+-				$(VOSLIB)							\
+ 				$(SALLIB)
+ 
+ SHL3DEF=        $(MISC)$/$(SHL3TARGET).def
+@@ -346,7 +343,6 @@ SHL4STDLIBS=	\
+ 				$(COMPHELPERLIB)					\
+ 				$(CPPUHELPERLIB)					\
+ 				$(CPPULIB)							\
+-				$(VOSLIB)							\
+ 				$(SALLIB)					        \
+ 				$(SALHELPERLIB)					        \
+ 				$(UCBHELPERLIB)
+diff --git a/goodies/source/inv/makefile.mk b/goodies/source/inv/makefile.mk
+index 5981fc6..33c4fac 100644
+--- goodies/source/inv/makefile.mk
++++ goodies/source/inv/makefile.mk
+@@ -82,7 +82,6 @@ APP1STDLIBS=	$(CPPULIB)			\
+ 				$(COMPHELPERLIB)	\
+ 				$(TOOLSLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(VCLLIB)
+ 
+diff --git a/goodies/util/makefile.mk b/goodies/util/makefile.mk
+index d362d17..7c3bc78 100644
+--- goodies/util/makefile.mk
++++ goodies/util/makefile.mk
+@@ -62,7 +62,6 @@ SHL1STDLIBS=\
+ 		$(SVTOOLLIB)		\
+ 		$(UNOTOOLSLIB)		\
+ 		$(TOOLSLIB)			\
+-		$(VOSLIB)			\
+ 		$(SALLIB)			\
+ 		$(CPPULIB) 			\
+ 		$(COMPHELPERLIB) 	\
+diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
+index 4981111..7f15632 100644
+--- lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
++++ lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
+@@ -90,7 +90,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+-		$(VOSLIB)		\
+ 		$(TOOLSLIB)		\
+ 		$(SVTOOLLIB)	\
+ 		$(SVLLIB)		\
+diff --git a/lingucomponent/source/spellcheck/macosxspell/makefile.mk b/lingucomponent/source/spellcheck/macosxspell/makefile.mk
+index 3898589..4d7c09f 100644
+--- lingucomponent/source/spellcheck/macosxspell/makefile.mk
++++ lingucomponent/source/spellcheck/macosxspell/makefile.mk
+@@ -67,7 +67,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+-		$(VOSLIB)		\
+ 		$(TOOLSLIB)		\
+ 		$(SVTOOLLIB)	\
+ 		$(SVLLIB)		\
+diff --git a/lingucomponent/source/spellcheck/spell/makefile.mk b/lingucomponent/source/spellcheck/spell/makefile.mk
+index a1eb74a..b1da36e 100644
+--- lingucomponent/source/spellcheck/spell/makefile.mk
++++ lingucomponent/source/spellcheck/spell/makefile.mk
+@@ -90,7 +90,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+-		$(VOSLIB)		\
+ 		$(TOOLSLIB)		\
+ 		$(SVTOOLLIB)	\
+ 		$(SVLLIB)		\
+diff --git a/lingucomponent/source/thesaurus/libnth/makefile.mk b/lingucomponent/source/thesaurus/libnth/makefile.mk
+index 91daddf..eb7cadf 100644
+--- lingucomponent/source/thesaurus/libnth/makefile.mk
++++ lingucomponent/source/thesaurus/libnth/makefile.mk
+@@ -109,7 +109,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+-		$(VOSLIB)		\
+ 		$(TOOLSLIB)		\
+ 		$(SVTOOLLIB)	\
+ 		$(SVLLIB)		\
+diff --git a/linguistic/source/makefile.mk b/linguistic/source/makefile.mk
+index 41d9f7f..61b607e 100644
+--- linguistic/source/makefile.mk
++++ linguistic/source/makefile.mk
+@@ -73,7 +73,6 @@ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+         $(I18NUTILLIB)  \
+-		$(VOSLIB)		\
+ 		$(TOOLSLIB)		\
+ 		$(I18NISOLANGLIB) \
+ 		$(SVTOOLLIB)	\
+diff --git a/linguistic/workben/makefile.mk b/linguistic/workben/makefile.mk
+index 9242b7c..37ca181 100644
+--- linguistic/workben/makefile.mk
++++ linguistic/workben/makefile.mk
+@@ -85,7 +85,6 @@ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ SHL1STDLIBS= \
+ 		$(CPPULIB) 	 \
+ 		$(CPPUHELPERLIB) 	 \
+-		$(VOSLIB)		\
+ 		$(TOOLSLIB)		\
+ 		$(SVTOOLLIB)	\
+ 		$(SVLLIB)		\
+diff --git a/oox/util/makefile.mk b/oox/util/makefile.mk
+index 5b2815f..93d46fb 100644
+--- oox/util/makefile.mk
++++ oox/util/makefile.mk
+@@ -63,7 +63,6 @@ SHL1IMPLIB= i$(SHL1TARGET)
+ SHL1USE_EXPORTS=ordinal
+ 
+ SHL1STDLIBS= \
+-		$(VOSLIB)		\
+ 		$(CPPULIB)		\
+ 		$(CPPUHELPERLIB)\
+ 		$(COMPHELPERLIB)\
+diff --git a/remotebridges/examples/makefile.mk b/remotebridges/examples/makefile.mk
+index bb336ca..cea115d 100644
+--- remotebridges/examples/makefile.mk
++++ remotebridges/examples/makefile.mk
+@@ -51,7 +51,6 @@ SHL1TARGET= officeclientsample
+ 
+ SHL1STDLIBS= \
+ 		$(SALLIB)	\
+-		$(VOSLIB)	\
+ 		$(CPPULIB) 	\
+ 		$(CPPUHELPERLIB) 
+ 
+diff --git a/reportdesign/util/makefile.mk b/reportdesign/util/makefile.mk
+index 020128c..4ce818a 100644
+--- reportdesign/util/makefile.mk
++++ reportdesign/util/makefile.mk
+@@ -73,7 +73,6 @@ SHL1STDLIBS= \
+ 		$(CPPULIB)				\
+ 		$(VCLLIB)				\
+ 		$(TKLIB)				\
+-		$(VOSLIB)				\
+ 		$(SALLIB)
+ .IF "$(GUI)"!="WNT" || "$(COM)"=="GCC"
+ SHL1STDLIBS+= \
+diff --git a/rsc/source/prj/makefile.mk b/rsc/source/prj/makefile.mk
+index 4627645..98dd2e0 100644
+--- rsc/source/prj/makefile.mk
++++ rsc/source/prj/makefile.mk
+@@ -50,7 +50,7 @@ OBJFILES=   $(OBJ)$/gui.obj          \
+             $(OBJ)$/start.obj
+ 
+ APP1TARGET= rsc
+-APP1STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(VOSLIB) $(SALLIB) # $(RTLLIB)
++APP1STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(SALLIB) # $(RTLLIB)
+ APP1LIBS=   $(LB)$/rsctoo.lib
+ APP1OBJS=   $(OBJ)$/start.obj
+ .IF "$(GUI)" != "OS2"
+@@ -63,9 +63,9 @@ APP2TARGET= rsc2
+ .IF "$(OS)"=="SCO"
+ # SCO hat Probleme mit fork/exec und einigen shared libraries. 
+ # rsc2 muss daher statisch gelinkt werden
+-APP2STDLIBS=$(STATIC) -latools $(BPICONVLIB) $(VOSLIB) $(OSLLIB) $(RTLLIB) $(DYNAMIC)
++APP2STDLIBS=$(STATIC) -latools $(BPICONVLIB) $(OSLLIB) $(RTLLIB) $(DYNAMIC)
+ .ELSE
+-APP2STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(VOSLIB) $(SALLIB) #RTLLIB)
++APP2STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(SALLIB) #RTLLIB)
+ .ENDIF
+ APP2LIBS=   $(LB)$/rsctoo.lib \
+             $(LB)$/rscres.lib \
+diff --git a/sax/util/makefile.mk b/sax/util/makefile.mk
+index 4122353..79c6a2a 100644
+--- sax/util/makefile.mk
++++ sax/util/makefile.mk
+@@ -58,7 +58,6 @@ SHL1USE_EXPORTS=ordinal
+ 
+ SHL1LIBS=	$(LIB1TARGET)
+ SHL1STDLIBS= \
+-				$(VOSLIB)		\
+ 				$(CPPULIB)		\
+ 				$(CPPUHELPERLIB)\
+ 				$(COMPHELPERLIB)\
+diff --git a/sc/util/makefile.mk b/sc/util/makefile.mk
+index 0130b3c..2270594 100644
+--- sc/util/makefile.mk
++++ sc/util/makefile.mk
+@@ -95,7 +95,6 @@ SHL1STDLIBS=       \
+ 	$(COMPHELPERLIB)	\
+ 	$(UCBHELPERLIB)	\
+ 	$(TKLIB)		\
+-	$(VOSLIB)		\
+ 	$(SALLIB)		\
+ 	$(SALHELPERLIB)		\
+ 	$(TOOLSLIB)	\
+diff --git a/sc/workben/makefile.mk b/sc/workben/makefile.mk
+index 626239f..a629719 100644
+--- sc/workben/makefile.mk
++++ sc/workben/makefile.mk
+@@ -76,7 +76,7 @@ EXCEPTIONSFILES= \
+ 
+ SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+ 
+-SHL1STDLIBS=$(VCLLIB) $(TOOLSLIB) $(SVLLIB) $(TKLIB) $(SALLIB) $(VOSLIB) $(CPPULIB) $(CPPUHELPERLIB)
++SHL1STDLIBS=$(VCLLIB) $(TOOLSLIB) $(SVLLIB) $(TKLIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
+ 
+ SHL1DEPN=   $(L)$/itools.lib $(SVLIBDEPEND)
+ SHL1DEF=    $(MISC)$/$(SHL1TARGET).def
+diff --git a/scaddins/source/analysis/makefile.mk b/scaddins/source/analysis/makefile.mk
+index ad948b0..b311a84 100644
+--- scaddins/source/analysis/makefile.mk
++++ scaddins/source/analysis/makefile.mk
+@@ -114,7 +114,6 @@ SHL1STDLIBS= \
+ 		$(TOOLSLIB)			\
+ 		$(CPPUHELPERLIB)	\
+ 		$(CPPULIB)			\
+-		$(VOSLIB)			\
+ 		$(SALLIB)
+ 
+ SHL1DEPN=makefile.mk
+diff --git a/scaddins/source/datefunc/makefile.mk b/scaddins/source/datefunc/makefile.mk
+index 71f3dfa..90ce770 100644
+--- scaddins/source/datefunc/makefile.mk
++++ scaddins/source/datefunc/makefile.mk
+@@ -101,7 +101,6 @@ SHL1STDLIBS= \
+ 		$(TOOLSLIB)			\
+ 		$(CPPUHELPERLIB)	\
+ 		$(CPPULIB)			\
+-		$(VOSLIB)			\
+ 		$(SALLIB)
+ 
+ SHL1DEPN=makefile.mk
+diff --git a/sd/util/makefile.mk b/sd/util/makefile.mk
+index 1a9f94f..3f14d62 100644
+--- sd/util/makefile.mk
++++ sd/util/makefile.mk
+@@ -88,7 +88,6 @@ SHL1STDLIBS+= \
+ 	$(UCBHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(VOSLIB) \
+ 	$(CANVASLIB) \
+ 	$(SALLIB) \
+ 	$(SALHELPERLIB) \
+@@ -217,7 +216,6 @@ SHL4STDLIBS= \
+ 	$(UCBHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(VOSLIB) \
+ 	$(CANVASLIB) \
+ 	$(SALLIB)
+ # $(ISDLIB) is build in SHL1TARGET
+diff --git a/sfx2/util/makefile.mk b/sfx2/util/makefile.mk
+index 86bb526..cdac4aa 100644
+--- sfx2/util/makefile.mk
++++ sfx2/util/makefile.mk
+@@ -95,7 +95,6 @@ SHL1STDLIBS+=\
+         $(UCBHELPERLIB) \
+ 		$(CPPUHELPERLIB) \
+ 		$(CPPULIB) \
+-		$(VOSLIB) \
+ 		$(SALLIB) \
+ 		$(SJLIB)
+ 
+diff --git a/svtools/bmpmaker/makefile.mk b/svtools/bmpmaker/makefile.mk
+index 103e7a4..cb3a8c3 100644
+--- svtools/bmpmaker/makefile.mk
++++ svtools/bmpmaker/makefile.mk
+@@ -64,7 +64,6 @@ APP1TARGET= $(TARGET)
+ APP1STDLIBS =		\
+ 	$(VCLLIB)		\
+ 	$(TOOLSLIB)		\
+-	$(VOSLIB) 		\
+ 	$(SALLIB)
+ 
+ APP1OBJS=   $(OBJ)$/bmp.obj			\
+@@ -80,7 +79,6 @@ APP2OBJS	=   $(OBJ)$/bmpsum.obj
+ 
+ APP2STDLIBS	=	$(VCLLIB)		\
+ 				$(TOOLSLIB)		\
+-				$(VOSLIB) 		\
+ 				$(SALLIB)
+ 
+ # --- Targets ------------------------------------------------------
+diff --git a/svtools/source/config/test/makefile.mk b/svtools/source/config/test/makefile.mk
+index f548d77..a11464f 100644
+--- svtools/source/config/test/makefile.mk
++++ svtools/source/config/test/makefile.mk
+@@ -58,7 +58,6 @@ APP1STDLIBS=	$(CPPULIB)							\
+ 				$(COMPHELPERLIB)					\
+ 				$(UNOTOOLSLIB) 						\
+ 				$(SALLIB)							\
+-				$(VOSLIB)							\
+ 				$(TOOLSLIB) 						\
+ 				$(VCLLIB)
+ 
+diff --git a/svtools/uno/makefile.mk b/svtools/uno/makefile.mk
+index 015f5b3..ef775ac 100644
+--- svtools/uno/makefile.mk
++++ svtools/uno/makefile.mk
+@@ -69,7 +69,6 @@ SHL1STDLIBS=\
+ 	$(UNOTOOLSLIB) \
+ 	$(TOOLSLIB) \
+ 	$(COMPHELPERLIB) \
+-	$(VOSLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+ 	$(SALLIB)
+diff --git a/svtools/util/makefile.mk b/svtools/util/makefile.mk
+index 8ed592e..c97747c 100644
+--- svtools/util/makefile.mk
++++ svtools/util/makefile.mk
+@@ -151,7 +151,6 @@ SHL1STDLIBS+= \
+ 		$(COMPHELPERLIB)	\
+ 		$(CPPUHELPERLIB)	\
+ 		$(CPPULIB)			\
+-		$(VOSLIB)			\
+ 		$(SALLIB)			\
+ 		$(SALHELPERLIB)			\
+ 		$(ICUUCLIB)		\
+@@ -202,7 +201,6 @@ SHL2STDLIBS= \
+ 		$(COMPHELPERLIB)	\
+ 		$(CPPUHELPERLIB)	\
+ 		$(CPPULIB)			\
+-		$(VOSLIB)			\
+ 		$(VCLLIB)			\
+ 		$(SALLIB)
+ 
+@@ -240,7 +238,6 @@ APP1STDLIBS+= -lsvl$(UPD)$(DLLPOSTFIX)
+ APP1STDLIBS+=	\
+ 				$(VCLLIB)		\
+ 				$(TOOLSLIB)		\
+-				$(VOSLIB) 		\
+ 				$(SALLIB)
+ 
+ # --- g2g application --------------------------------------------------
+@@ -260,7 +257,6 @@ APP2STDLIBS+= -lsvl$(UPD)$(DLLPOSTFIX)
+ 
+ APP2STDLIBS+=	$(VCLLIB)		\
+ 				$(TOOLSLIB)		\
+-				$(VOSLIB) 		\
+ 				$(SALLIB)
+ 
+ # --- Targets ------------------------------------------------------
+diff --git a/svtools/workben/cui/makefile.mk b/svtools/workben/cui/makefile.mk
+index bf332c9..533dc51 100644
+--- svtools/workben/cui/makefile.mk
++++ svtools/workben/cui/makefile.mk
+@@ -55,7 +55,6 @@ APP4STDLIBS= \
+ 			$(SVLLIB) \
+ 			$(VCLLIB) \
+ 			$(TOOLSLIB) \
+-			$(VOSLIB) \
+ 			$(SALLIB)
+ .IF "$(GUI)"=="WNT" || "$(COM)"=="GCC"
+ APP4STDLIBS+= $(CPPULIB)
+diff --git a/svtools/workben/makefile.mk b/svtools/workben/makefile.mk
+index 75b5a2b..5d12b64 100644
+--- svtools/workben/makefile.mk
++++ svtools/workben/makefile.mk
+@@ -56,7 +56,6 @@ APP1STDLIBS=	$(SVTOOLLIB)		\
+ 				$(COMPHELPERLIB) 	\
+ 				$(TOOLSLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(CPPUHELPERLIB)	\
+ 				$(CPPULIB)
+ 
+diff --git a/svx/source/gengal/makefile.mk b/svx/source/gengal/makefile.mk
+index 85a4be6..52f3fdd 100644
+--- svx/source/gengal/makefile.mk
++++ svx/source/gengal/makefile.mk
+@@ -60,7 +60,6 @@ APP1TARGET= $(TARGET).bin
+ APP1OBJS=   $(OBJFILES)
+ 
+ APP1STDLIBS=$(TOOLSLIB) 		\
+-			$(VOSLIB)			\
+ 			$(SO2LIB)			\
+ 			$(SVTOOLLIB)		\
+ 			$(SVLLIB)			\
+diff --git a/svx/util/makefile.mk b/svx/util/makefile.mk
+index 8781acb..cce9bdd 100644
+--- svx/util/makefile.mk
++++ svx/util/makefile.mk
+@@ -131,7 +131,6 @@ SHL1STDLIBS= \
+ 			$(UCBHELPERLIB)	\
+ 			$(CPPUHELPERLIB)	\
+ 			$(CPPULIB) \
+-            $(VOSLIB) \
+             $(SALLIB) \
+             $(SALHELPERLIB) \
+             $(ICUUCLIB)
+@@ -177,7 +176,6 @@ SHL2STDLIBS= \
+ 			$(UCBHELPERLIB)	\
+ 			$(CPPUHELPERLIB)	\
+ 			$(CPPULIB) \
+-            $(VOSLIB) \
+             $(SALLIB) \
+             $(JVMFWKLIB) \
+             $(ICUUCLIB)
+diff --git a/svx/workben/makefile.mk b/svx/workben/makefile.mk
+index 5dacc6e..1518909 100644
+--- svx/workben/makefile.mk
++++ svx/workben/makefile.mk
+@@ -55,7 +55,6 @@ APP1TARGET= $(TARGET)
+ APP1OBJS=	$(OBJFILES)
+ APP1LIBS=	$(LB)$/svx.lib
+ APP1STDLIBS=$(TOOLSLIB) 		\
+-			$(VOSLIB)			\
+ 			$(SO2LIB)			\
+ 			$(SVTOOLLIB)		\
+ 			$(SVLLIB)			\
+diff --git a/svx/workben/msview/makefile.mk b/svx/workben/msview/makefile.mk
+index 3f57220..af27896 100644
+--- svx/workben/msview/makefile.mk
++++ svx/workben/msview/makefile.mk
+@@ -66,7 +66,6 @@ APP1STDLIBS=	$(CPPULIB)			\
+ 				$(TOOLSLIB) 		\
+ 				$(SVTOOLLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(VCLLIB)			\
+ 				$(SVXLIB)			\
+diff --git a/sw/util/makefile.mk b/sw/util/makefile.mk
+index b673a65..a4572c8 100644
+--- sw/util/makefile.mk
++++ sw/util/makefile.mk
+@@ -123,7 +123,6 @@ SHL1STDLIBS+= \
+ 	$(UCBHELPERLIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(VOSLIB) \
+ 	$(SALLIB) \
+ 	$(SALHELPERLIB) \
+     $(ICUUCLIB) \
+diff --git a/toolkit/util/makefile.mk b/toolkit/util/makefile.mk
+index 2d503fd..d20b711 100644
+--- toolkit/util/makefile.mk
++++ toolkit/util/makefile.mk
+@@ -64,7 +64,6 @@ SHL1IMPLIB= itk
+ SHL1USE_EXPORTS=ordinal
+ 
+ SHL1STDLIBS=\
+-		$(VOSLIB)           \
+ 		$(VCLLIB)			\
+ 		$(SOTLIB)			\
+ 		$(UNOTOOLSLIB)		\
+diff --git a/tools/bootstrp/addexes2/makefile.mk b/tools/bootstrp/addexes2/makefile.mk
+index 407231e..913fea1 100644
+--- tools/bootstrp/addexes2/makefile.mk
++++ tools/bootstrp/addexes2/makefile.mk
+@@ -47,7 +47,7 @@ TARGETTYPE=CUI
+ 
+ APP1TARGET=	mkunroll
+ APP1OBJS=   $(OBJ)$/mkfilt.obj
+-APP1STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB) 
++APP1STDLIBS= $(SALLIB) $(TOOLSLIB) 
+ .IF "$(OS)"=="LINUX"
+ APP1STDLIBS+=-lpthread
+ .ENDIF
+diff --git a/tools/bootstrp/makefile.mk b/tools/bootstrp/makefile.mk
+index 89d657f..061376a 100644
+--- tools/bootstrp/makefile.mk
++++ tools/bootstrp/makefile.mk
+@@ -85,12 +85,12 @@ LIB2OBJFILES=\
+ APP1TARGET= sspretty
+ APP1OBJS=   $(OBJ)$/sspretty.obj
+ APP1LIBS=   $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib
+-APP1STDLIBS=$(SALLIB) $(VOSLIB) $(TOOLSLIB)
++APP1STDLIBS=$(SALLIB) $(TOOLSLIB)
+ 
+ APP2TARGET= rscdep
+ APP2OBJS=	$(OBJ)$/rscdep.obj
+ APP2LIBS=   $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib
+-APP2STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB)
++APP2STDLIBS= $(SALLIB) $(TOOLSLIB)
+ 
+ APP3TARGET=  so_checksum
+ APP3OBJS=    $(OBJ)$/md5.obj \
+diff --git a/tools/prj/build.lst b/tools/prj/build.lst
+index e87e6f8..5e41bc7 100644
+--- tools/prj/build.lst
++++ tools/prj/build.lst
+@@ -1,4 +1,4 @@
+-tl	tools	:	cppu external offuh vos ZLIB:zlib EXPAT:expat basegfx comphelper i18npool NULL
++tl	tools	:	cppu external offuh ZLIB:zlib EXPAT:expat basegfx comphelper i18npool NULL
+ tl	tools								usr1	-	all	tl_mkout NULL
+ tl	tools\bootstrp\isdll				get		-	all	tl_bsisdll NULL
+ tl	tools\bootstrp\addexes				get		-	all	tl_bsexes NULL
+diff --git a/tools/util/makefile.mk b/tools/util/makefile.mk
+index d4a9a94..d31e538 100644
+--- tools/util/makefile.mk
++++ tools/util/makefile.mk
+@@ -117,7 +117,7 @@ SHL1LIBS=       $(LIB1TARGET)
+ SHL1DEF=        $(MISC)$/$(SHL1TARGET).def
+ SHL1IMPLIB=     itools
+ SHL1USE_EXPORTS=ordinal
+-SHL1STDLIBS+=   $(SALLIB) $(VOSLIB) $(BASEGFXLIB) $(I18NISOLANGLIB)
++SHL1STDLIBS+=   $(SALLIB) $(BASEGFXLIB) $(I18NISOLANGLIB)
+ 
+ .IF "$(WITH_LIBART)"=="YES"
+ SHL1STDLIBS+=   $(LIBART_LIBS)
+diff --git a/tools/workben/makefile.mk b/tools/workben/makefile.mk
+index ba78ce9..cae9bc3 100644
+--- tools/workben/makefile.mk
++++ tools/workben/makefile.mk
+@@ -61,9 +61,9 @@ APP1LIBS = $(LB)$/itools.lib
+ APP2TARGET = urltest
+ APP2OBJS = $(OBJ)$/urltest.obj
+ .IF "$(GUI)" == "UNX"
+-APP2STDLIBS = $(TOOLSLIB) $(VOSLIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
++APP2STDLIBS = $(TOOLSLIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
+ .ELSE
+-APP2STDLIBS = $(LB)$/itools.lib $(VOSLIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
++APP2STDLIBS = $(LB)$/itools.lib $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
+ .ENDIF
+ 
+ APP3TARGET = inetmimetest
+@@ -81,17 +81,17 @@ APP3STDLIBS = $(SALLIB) $(TOOLSLIB)
+ # APP4TARGET = demostor
+ # APP4OBJS = $(OBJ)$/demostor.obj
+ # .IF "$(GUI)" == "UNX"
+-# APP4STDLIBS = $(TOOLSLIB) $(VOSLIB) $(SALLIB)
++# APP4STDLIBS = $(TOOLSLIB) $(SALLIB)
+ # .ELSE
+-# APP4STDLIBS = $(LB)$/itools.lib $(VOSLIB) $(SALLIB)
++# APP4STDLIBS = $(LB)$/itools.lib $(SALLIB)
+ # .ENDIF
+ 
+ # APP5TARGET = fstest
+ # APP5OBJS = $(OBJ)$/fstest.obj
+ # .IF "$(GUI)" == "UNX"
+-# APP5STDLIBS = $(TOOLSLIB) $(VOSLIB) $(SALLIB)
++# APP5STDLIBS = $(TOOLSLIB) $(SALLIB)
+ # .ELSE
+-# APP5STDLIBS = $(LB)$/itools.lib $(VOSLIB) $(SALLIB)
++# APP5STDLIBS = $(LB)$/itools.lib $(SALLIB)
+ # .ENDIF
+ 
+ .INCLUDE: target.mk
+diff --git a/transex3/source/makefile.mk b/transex3/source/makefile.mk
+index 2faca1d..2af50a9 100644
+--- transex3/source/makefile.mk
++++ transex3/source/makefile.mk
+@@ -89,7 +89,6 @@ APP1OBJS=   $(OBJ)$/src_yy_wrapper.obj
+ 
+ APP1STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ 
+ .IF "$(OS)"=="MACOSX"
+@@ -105,7 +104,7 @@ APP2OBJS= $(OBJ)$/helpmerge.obj  $(OBJ)$/xmlparse.obj $(OBJ)$/export2.obj $(OBJ)
+ .IF "$(OS)"!="MACOSX"
+ .ENDIF
+ 
+-APP2STDLIBS+=$(SALLIB) $(EXPATASCII3RDLIB) $(TOOLSLIB) $(VOSLIB)
++APP2STDLIBS+=$(SALLIB) $(EXPATASCII3RDLIB) $(TOOLSLIB)
+ 
+ .IF "$(OS)"=="MACOSX"
+ # static libs at end for OS X
+@@ -120,7 +119,6 @@ APP3OBJS=   $(OBJ)$/lngmerge.obj $(OBJ)$/hw2fw.obj $(OBJ)$/merge.obj $(OBJ)$/exp
+ .ENDIF
+ APP3STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ .IF "$(OS)"=="MACOSX"
+ # static libs at end for OS X
+@@ -131,7 +129,6 @@ APP4TARGET= gsiconv
+ APP4OBJS=   $(OBJ)$/utf8conv.obj $(OBJ)$/gsiconv.obj
+ APP4STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ 
+ # tag checker for *.gsi
+@@ -139,7 +136,6 @@ APP5TARGET= gsicheck
+ APP5OBJS=   $(OBJ)$/gsicheck.obj $(OBJ)$/tagtest.obj
+ APP5STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ 
+ # extractor and merger for *.cfg
+@@ -152,7 +148,6 @@ APP6OBJS=   $(OBJ)$/cfgmerge.obj $(OBJ)$/cfg_yy_wrapper.obj $(OBJ)$/hw2fw.obj $(
+ 
+ APP6STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ 
+ .IF "$(OS)"=="MACOSX"
+@@ -168,7 +163,6 @@ APP7OBJS=   $(OBJ)$/xrmmerge.obj $(OBJ)$/xrm_yy_wrapper.obj $(OBJ)$/hw2fw.obj $(
+ 
+ APP7STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ 
+ .IF "$(OS)"=="MACOSX"
+@@ -189,7 +183,6 @@ APP9OBJS=   $(OBJ)$/localize.obj $(OBJ)$/utf8conv.obj $(OBJ)$/srciter.obj $(OBJ)
+ 
+ APP9STDLIBS+= \
+             $(TOOLSLIB) \
+-            $(VOSLIB) \
+             $(SALLIB)
+ 
+ DEPOBJFILES=$(APP1OBJS) $(APP2OBJS) $(APP3OBJS) $(APP4OBJS) $(APP5OBJS) $(APP6OBJS) $(APP7OBJS) $(APP8OBJS) $(APP9OBJS)
+diff --git a/ucb/workben/ucb/makefile.mk b/ucb/workben/ucb/makefile.mk
+index 2217997..a73c35a 100644
+--- ucb/workben/ucb/makefile.mk
++++ ucb/workben/ucb/makefile.mk
+@@ -77,7 +77,6 @@ COMPHELPERLIB=icomphelp2.lib
+ 
+ APP1STDLIBS=\
+ 	$(SALLIB) \
+-	$(VOSLIB) \
+ 	$(CPPULIB) \
+ 	$(CPPUHELPERLIB) \
+ 	$(COMPHELPERLIB) \
+diff --git a/unotools/util/makefile.mk b/unotools/util/makefile.mk
+index 6a2f5a1..cedf2b6 100644
+--- unotools/util/makefile.mk
++++ unotools/util/makefile.mk
+@@ -71,7 +71,6 @@ SHL1STDLIBS= \
+ 		$(CPPULIB) \
+ 		$(I18NISOLANGLIB) \
+ 		$(TOOLSLIB) \
+-		$(VOSLIB) \
+ 		$(SALLIB)
+ 
+ SHL1LIBS=$(LIB1TARGET)
+diff --git a/vcl/test/makefile.mk b/vcl/test/makefile.mk
+index 54443e9..1dc99a5 100644
+--- vcl/test/makefile.mk
++++ vcl/test/makefile.mk
+@@ -63,7 +63,6 @@ APP1STDLIBS=	$(CPPULIB)			\
+ 				$(CPPUHELPERLIB)	\
+ 				$(TOOLSLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(COMPHELPERLIB)	\
+ 				$(VCLLIB)
+diff --git a/vcl/util/linksvp/makefile.mk b/vcl/util/linksvp/makefile.mk
+index a15d5b9..c7de968 100644
+--- vcl/util/linksvp/makefile.mk
++++ vcl/util/linksvp/makefile.mk
+@@ -67,7 +67,6 @@ SHL1STDLIBS=\
+             $(UCBHELPERLIB)     \
+             $(CPPUHELPERLIB)    \
+             $(CPPULIB)          \
+-            $(VOSLIB)           \
+             $(SALLIB)
+ .ENDIF # GUIBASE unx
+ 
+diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk
+index b9d3e93..4524b19 100644
+--- vcl/util/makefile.mk
++++ vcl/util/makefile.mk
+@@ -176,7 +176,6 @@ SHL1STDLIBS+=\
+             $(UCBHELPERLIB)     \
+             $(CPPUHELPERLIB)    \
+             $(CPPULIB)          \
+-            $(VOSLIB)           \
+             $(SALLIB)			\
+             $(BASEGFXLIB)		\
+             $(ICUUCLIB)			\
+@@ -275,7 +274,6 @@ SHL2STDLIBS=\
+             $(UCBHELPERLIB)     \
+             $(CPPUHELPERLIB)    \
+             $(CPPULIB)          \
+-            $(VOSLIB)           \
+             $(SALLIB)
+ 
+ # prepare linking of Xinerama
+@@ -372,7 +370,6 @@ SHL4STDLIBS+=\
+             $(UCBHELPERLIB)     \
+             $(CPPUHELPERLIB)    \
+             $(CPPULIB)          \
+-            $(VOSLIB)           \
+             $(SALLIB)
+ 
+ .ENDIF # "$(ENABLE_GTK)" != ""
+@@ -392,7 +389,6 @@ SHL5STDLIBS+=\
+         $(VCLLIB)       \
+         -lpsp$(VERSION)$(DLLPOSTFIX)\
+         $(TOOLSLIB)     \
+-        $(VOSLIB)       \
+         $(SALLIB)
+ .ENDIF # "$(ENABLE_KDE)" != ""
+ 
+diff --git a/vcl/workben/makefile.mk b/vcl/workben/makefile.mk
+index e1f2734..87ed0a0 100644
+--- vcl/workben/makefile.mk
++++ vcl/workben/makefile.mk
+@@ -68,7 +68,6 @@ APP1STDLIBS=	$(CPPULIB)			\
+ 				$(COMPHELPERLIB)	\
+ 				$(TOOLSLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(VCLLIB)
+ 
+@@ -106,7 +105,6 @@ APP3STDLIBS=	$(CPPULIB)			\
+ 				$(COMPHELPERLIB)	\
+ 				$(TOOLSLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(VCLLIB)
+ 
+@@ -124,7 +122,6 @@ APP4STDLIBS=    $(CPPULIB)                      \
+                                 $(VCLLIB)                       \
+                                 $(TOOLSLIB)             \
+                                 $(SALLIB)                       \
+-                                $(VOSLIB)                       \
+                                 $(SOTLIB)                       \
+                                 $(VCLLIB)
+ 
+@@ -138,7 +135,6 @@ APP5STDLIBS=    $(CPPULIB)                      \
+                                 $(VCLLIB)                       \
+                                 $(TOOLSLIB)             \
+                                 $(SALLIB)                       \
+-                                $(VOSLIB)                       \
+                                 $(SOTLIB)                       \
+                                 $(VCLLIB)
+ 
+diff --git a/vos/docu/.html b/vos/docu/.html
+deleted file mode 100644
+index bce575d..0000000
+--- vos/docu/.html
++++ /dev/null
+@@ -1,138 +0,0 @@
+-<html><head><TITLE></TITLE></head>
+-<body>
+-<H2><A HREF ="#DOC.DOCU" > <IMG BORDER=0 SRC=down.gif></A>    </H2>
+-<TABLE>
+-<TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IAcceptHandler.html><B>IAcceptHandler</B></A> <br>
+-<I>Interface IAcceptHandler
+-Overload onConnection() to handle a connected socket</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IAcceptHandlerFactory.html><B>IAcceptHandlerFactory</B></A> <br>
+-<I>Interface IAcceptHandlerFactory
+-Creates objects with IAcceptHandler interface</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OAcceptor.html><B>OAcceptor</B></A> <br>
+-<I>Starts a thread where incoming connections are accepted</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OByteArray.html><B>OByteArray</B></A> <br>
+-<I>Array of bytes</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OByteStream.html><B>OByteStream</B></A> <br>
+-<I>Wraps a byte-stream around a byte array</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ICondition.html><B>ICondition</B></A> <br>
+-<I>ICondition
+-
+-Interface for a thread-spanning condition</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OCondition.html><B>OCondition</B></A> <br>
+-<I>OCondition
+-
+-Implements the ICondition interface</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IConnectHandler.html><B>IConnectHandler</B></A> <br>
+-<I>Interface IConnectHandler</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OConnector.html><B>OConnector</B></A> <br>
+-<I>Delegates a connected socket to an IConnectHandler object</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OException.html><B>OException</B></A> <br>
+-<I>Base class for exceptions</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OSimpleException.html><B>OSimpleException</B></A> <br>
+-<I></I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IExecutable.html><B>IExecutable</B></A> <br>
+-<I>IExecutable
+-
+-The IExecutable-interface is to be understood as wrapper around
+-your application-code, which allows it to be executed asynchronously</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OExecutable.html><B>OExecutable</B></A> <br>
+-<I>OExecutable
+-added default impl</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OFiberingServer.html><B>OFiberingServer</B></A> <br>
+-<I>OFiberingServer
+-
+-Depends on cooperative executing IExecutable-Objects</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OFuture.html><B>OFuture</B></A> <br>
+-<I>OFuture, OFutureRef
+-
+-A future represents the result of an asynchronous operation</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OFutureRef.html><B>OFutureRef</B></A> <br>
+-<I>OFutureRef
+-
+-</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IStream.html><B>IStream</B></A> <br>
+-<I>Interface for a stream of data, on that you can read and write blocks of bytes</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IMutex.html><B>IMutex</B></A> <br>
+-<I>IMutex interface
+-
+-</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OThreadMutex.html><B>OThreadMutex</B></A> <br>
+-<I>OThreadMutex
+-
+-</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OGuard.html><B>OGuard</B></A> <br>
+-<I>OGuard
+-
+-</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OObject.html><B>OObject</B></A> <br>
+-<I>OObject
+-common base class for all framework classes</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OCreateParam.html><B>OCreateParam</B></A> <br>
+-<I>
+-Basic class information</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OClassInfo.html><B>OClassInfo</B></A> <br>
+-<I></I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IObserver.html><B>IObserver</B></A> <br>
+-<I>IObserver
+-
+-</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IObserved.html><B>IObserved</B></A> <br>
+-<I>IObserved
+-
+-Just an idea</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OObserver.html><B>OObserver</B></A> <br>
+-<I>OObserver
+-
+-add default-implementation of refence-counting behaviour to IObserver-Interface
+-
+-</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ORef.html><B>ORef</B></A> <br>
+-<I>
+-ORef<T>
+-
+-template type to implement handle/body behaviour 
+-with reference-counting</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IReferenceCounter.html><B>IReferenceCounter</B></A> <br>
+-<I>Interface for refernce-counting</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IRunnable.html><B>IRunnable</B></A> <br>
+-<I>IRunnable
+-
+-The IRunnable-interface is to be understood as wrapper around
+-your application-code, which allows it to be executed asynchronously</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OExecutableThread.html><B>OExecutableThread</B></A> <br>
+-<I>OExecutableThread
+-
+-A thread used to execute an IExecutable-Object</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OSemaphore.html><B>OSemaphore</B></A> <br>
+-<I>Counting semaphore (unnamed, because thread-local)</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ISocketTypes.html><B>ISocketTypes</B></A> <br>
+-<I>Base data types</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ISocketAddr.html><B>ISocketAddr</B></A> <br>
+-<I>Base class for socket addresses</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OInetSocketAddr.html><B>OInetSocketAddr</B></A> <br>
+-<I>Represents an internet-address</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OIpxSocketAddr.html><B>OIpxSocketAddr</B></A> <br>
+-<I>Represents an IPX/SPX address</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OSocket.html><B>OSocket</B></A> <br>
+-<I>Represents a socket</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OStreamSocket.html><B>OStreamSocket</B></A> <br>
+-<I>A socket to send or receive a stream of data</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OAcceptorSocket.html><B>OAcceptorSocket</B></A> <br>
+-<I>A socket to accept incoming connections</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OConnectorSocket.html><B>OConnectorSocket</B></A> <br>
+-<I>A socket to initiate a conenction</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ODatagramSocket.html><B>ODatagramSocket</B></A> <br>
+-<I>A connectionless socket to send and receive datagrams</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IPositionableStream.html><B>IPositionableStream</B></A> <br>
+-<I>Adds seeking capabilities to IStream</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OStream.html><B>OStream</B></A> <br>
+-<I>Implements IPositionableStream</I>
+-</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OString.html><B>OString</B></A> <br>
+-<I>A string class</I>
+-</TD></TR>
+-</TABLE>
+-<A NAME="DOC.DOCU">
+-<DL></DL><P><I><A HREF="aindex.html"> alphabetic index</A></I>  <I><A HREF="HIER.html"> hierarchy of classes</A></I><P></BODY><hr>
+-<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
+-<P Align=Center><I>this page has been generated automatically by doc++
+-<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte  Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
+\ No newline at end of file
+diff --git a/vos/inc/vos/connectn.hxx b/vos/inc/vos/connectn.hxx
+deleted file mode 100644
+index e7c2841..0000000
+--- vos/inc/vos/connectn.hxx
++++ /dev/null
+@@ -1,129 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: connectn.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:36:09 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_CONNECTN_HXX_
+-#define _VOS_CONNECTN_HXX_
+-
+-#ifndef _VOS_REF_HXX_
+-#   include <vos/ref.hxx>
+-#endif
+-
+-#ifndef _RTL_USTRING_HXX_
+-#   include <rtl/ustring.hxx>
+-#endif
+-
+-namespace vos
+-{
+-//---------------------------------------------------------------------------
+-/** abstract connection class
+- */
+-
+-class IConnection: public ::vos::IReference
+-{
+-public:
+-
+-    //---------------------------------------------------------------------------
+-    /** reads the specified amount of bytes from the stream. The call will block
+-        until nBytesToRead bytes are available.
+-
+-        @param pData
+-        pointer to the buffer to fill.
+-
+-        @param nBytesToRead
+-        the number of bytes to read.
+-
+-        @returns
+-        the number of bytes read;
+-    */
+-
+-    virtual sal_Int32 SAL_CALL read( sal_Int8* pData, sal_Int32 nBytesToRead ) = 0;
+-
+-    //---------------------------------------------------------------------------
+-    /** tries to read the specified amount of bytes from the stream.
+-
+-        @param pData
+-        pointer to the buffer to fill.
+-
+-        @param nBytesToRead
+-        the maximum number of bytes to read.
+-
+-        @returns
+-        the number of bytes read;
+-    */
+-
+-    virtual sal_Int32 SAL_CALL readSomeBytes( sal_Int8* pData, sal_Int32 nBytesToRead ) = 0;
+-
+-    //---------------------------------------------------------------------------
+-    /** writes the specified number of bytes to the stream.
+-
+-        @param pData
+-        pointer to the buffer to read from.
+-
+-        @param nBytesToWrite
+-        the number of bytes to write.
+-    */
+-
+-    virtual sal_Int32 SAL_CALL write( const sal_Int8* pData , sal_Int32 nBytesToWrite ) = 0;
+-
+-    //---------------------------------------------------------------------------
+-    /** flushes all output data to the stream.
+-    */
+-
+-    virtual sal_Int32 SAL_CALL flush() = 0;
+-
+-    //---------------------------------------------------------------------------
+-    /** closes the stream of the connection.
+-
+-        NOTE: implementation must be able to handle more than one close calls.
+-    */
+-
+-    virtual sal_Int32 SAL_CALL close() = 0;
+-
+-    //---------------------------------------------------------------------------
+-    /** gets the source address
+-    */
+-    virtual ::rtl::OUString SAL_CALL getSource() = 0;
+-
+-    //---------------------------------------------------------------------------
+-    /** gets the destination address
+-    */
+-    virtual ::rtl::OUString SAL_CALL getDestination() = 0;
+-};
+-
+-}
+-
+-#endif // _VOS_CONNECTN_HXX_
+-
+diff --git a/vos/inc/vos/execabl.hxx b/vos/inc/vos/execabl.hxx
+deleted file mode 100644
+index bfb7604..0000000
+--- vos/inc/vos/execabl.hxx
++++ /dev/null
+@@ -1,161 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: execabl.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:36:25 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_EXECABL_HXX_
+-#define _VOS_EXECABL_HXX_
+-
+-#ifndef _VOS_REFERNCE_HXX_
+-#	include <vos/refernce.hxx>
+-#endif
+-
+-namespace vos
+-{     
+-
+-
+-/** IExecutable
+-
+-	The IExecutable-interface is to be understood as wrapper around
+-	your application-code, which allows it to be executed asynchronously.
+-
+-	Wether you want real asynchronous behaviour or just pseudo-multitasking
+-	depends on which kind of execution-service you use to execute your executable.
+-
+-	(E.g. Threadpool/Fiberpool)
+-
+-	@author  Bernd Hofner
+-	@version 0.1
+-*/
+-
+-class IExecutable : public vos::IReference 
+-{
+-public:
+-
+-	/** Overload to implement your functionality.
+-		Return True, if you want "execute()" to be called again.
+-	*/
+-	virtual sal_Bool SAL_CALL execute()= 0;
+-
+-
+-	/** If you use blocking calls within your execute-function,
+-		you should provide here a means to unblock cleanly.
+-		@Return False if you are not able to unblock the
+-		thread.
+-		
+-	*/
+-	virtual sal_Bool SAL_CALL unblock()= 0;
+-
+-	/**
+-		STL demands this operators if you want to place
+-		IExecutables per value in collections.
+-	*/
+-	virtual sal_Bool SAL_CALL operator<(const IExecutable&) const= 0;
+-	virtual sal_Bool SAL_CALL operator>(const IExecutable&) const= 0;
+-	virtual sal_Bool SAL_CALL operator==(const IExecutable&) const= 0;
+-	virtual sal_Bool SAL_CALL operator!=(const IExecutable&) const= 0;
+-};
+-
+-
+-/** OExecutable
+-	added default impl. of IReferenceCounter 
+-*/
+-class OExecutable : public vos::IExecutable,
+-					public vos::OReference
+-					
+-{
+-public:
+-
+-	virtual ~OExecutable()
+-	{
+-	}
+-
+-	/*
+-		Since the dominance of the OReferenceCounter impl.
+-		of the IReferenceCounter is not granted, delegate
+-		the methods to this branch of the diamond-shaped
+-		inheritance tree.
+-	*/
+-
+-	virtual RefCount SAL_CALL acquire()
+-	{
+-		return OReference::acquire();
+-	}
+-	virtual RefCount SAL_CALL release()
+-	{
+-		return OReference::release();
+-	}
+-	virtual RefCount SAL_CALL referenced() const
+-	{
+-		return OReference::referenced();
+-	}
+-
+-
+-	/** Default implementation of unblock does nothing.
+-	*/
+-	virtual sal_Bool SAL_CALL unblock() { return sal_True; }
+-
+-
+-	/**
+-		STL demands this operators if you want to place
+-		IExecutables per value in collections.
+-		Use a default implementation of the comparison-operators
+-		here without a correct semantic.
+-	*/
+-	virtual sal_Bool SAL_CALL operator<(const IExecutable&) const
+-	{
+-		return sal_False;
+-	}
+-
+-	virtual sal_Bool SAL_CALL operator>(const IExecutable&) const
+-	{
+-		return sal_False;
+-	}
+-
+-	virtual sal_Bool SAL_CALL operator==(const IExecutable&) const
+-	{
+-		return sal_True;
+-	}
+-
+-	virtual sal_Bool SAL_CALL operator!=(const IExecutable&) const
+-	{
+-		return sal_False;
+-	}
+-};
+-
+-}
+-
+-
+-#endif  // _VOS_EXECABL_HXX_
+-
+diff --git a/vos/inc/vos/istream.hxx b/vos/inc/vos/istream.hxx
+deleted file mode 100644
+index 1fd78ec..0000000
+--- vos/inc/vos/istream.hxx
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: istream.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:05:18 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_ISTREAM_HXX_
+-#define _VOS_ISTREAM_HXX_
+-
+-#ifndef _SAL_TYPES_H_
+-#include "sal/types.h"
+-#endif
+-
+-namespace vos
+-{     
+-
+-/** Interface for a stream of data, on that you can read and write blocks of bytes.
+-*/
+-class IStream
+-{
+-public:
+-
+-    IStream() { }
+-    virtual ~IStream() { }
+-    
+-    
+-	/** Retrieve n bytes from the stream and copy them into pBuffer.
+-		@param pBuffer receives the read data.
+-		@param n the number of bytes to read. pBuffer must be large enough
+-		to hold the n bytes!
+-		@return the number of read bytes
+-	*/
+-    virtual sal_Int32 SAL_CALL read(void* pBuffer, 
+-					     sal_uInt32 n) const= 0;
+-
+-	/** Write n bytes from pBuffer to the stream.
+-		@param pBuffer contains the data to be written.
+-		@param n the number of bytes to write.
+-		@return the number of written bytes
+-	*/
+-    virtual sal_Int32 SAL_CALL write(const void* pBuffer, 
+-					      sal_uInt32 n)= 0;
+-    
+-	/** Checks if stream is closed for further reading.
+-		@return True is stream has ended (e.g. was closed).
+-	*/
+-	virtual sal_Bool SAL_CALL isEof() const = 0;
+-};
+-
+-}     
+-
+-#endif	// _VOS_ISTREAM_HXX_
+-
+diff --git a/vos/inc/vos/macros.hxx b/vos/inc/vos/macros.hxx
+deleted file mode 100644
+index a14b612..0000000
+--- vos/inc/vos/macros.hxx
++++ /dev/null
+@@ -1,169 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: macros.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:36:54 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_MACROS_HXX_
+-#define _VOS_MACROS_HXX_
+-
+-
+-#ifndef _OSL_ENDIAN_H_
+-#include <osl/endian.h>
+-#endif
+-
+-// *********************************************************************
+-// Macro definitions
+-
+-#ifndef VOS_CAST
+-#	define VOS_CAST(type,value)    (*((type*)&(value)))
+-#endif 
+-
+-#ifndef VOS_UNUSED
+-#	define VOS_UNUSED(x)           (x=x)
+-#endif
+-
+-#ifndef VOS_FOREVER
+-#	define VOS_FOREVER             for(;;)
+-#endif
+-
+-#ifndef VOS_MAX
+-#	define VOS_MAX(a,b)            (((a) > (b)) ? (a) : (b))
+-#endif
+-#ifndef VOS_MIN
+-#	define VOS_MIN(a,b)            (((a) < (b)) ? (a) : (b))
+-#endif
+-
+-#ifndef VOS_ABS
+-#	define VOS_ABS(a)              (((a) < 0) ? (-(a)) : (a))
+-#endif
+-#ifndef VOS_SIGN
+-#	define VOS_SIGN(a)             ( ((a) < 0) ? (-1) : (((a) > 0) ? (1) : (0)) )
+-#endif
+-
+-#ifndef VOS_BOUND
+-#	define VOS_BOUND(x,l,h)        ((x) <= (l) ? (l) : ((x) >= (h) ? (h) : (x)))
+-#endif
+-
+-#ifndef VOS_SWAP
+-#	define VOS_SWAP(a,b)           ((a) ^= (b) ^= (a) ^= (b))
+-#endif
+-
+-#ifndef VOS_BYTEBOUND
+-#	define VOS_BYTEBOUND(a)        (((a) + 7) / 8)
+-#endif
+-
+-#ifndef VOS_WORDBOUND
+-#	define VOS_WORDBOUND(a)        ((((a) + 15) / 16) * 2)
+-#endif
+-
+-#ifndef VOS_DWORDBOUND
+-#	define VOS_DWORDBOUND(a)       ((((a) + 31) / 32) * 4)
+-#endif
+-
+-#ifndef VOS_MAKEDWORD
+-#	define VOS_MAKEDWORD(wl, wh)   ((sal_uInt32)((wl) & 0xFFFF) | (((sal_uInt32)(wh) & 0xFFFF) << 16))
+-#endif
+-#ifndef VOS_LOWORD
+-#	define VOS_LOWORD(d)           ((sal_uInt16)((sal_uInt32)(d) & 0xFFFF))
+-#endif
+-#ifndef VOS_HIWORD
+-#	define VOS_HIWORD(d)           ((sal_uInt16)(((sal_uInt32)(d) >> 16) & 0xFFFF))
+-#endif
+-#ifndef VOS_MAKEWORD
+-#	define VOS_MAKEWORD(bl, bh)    ((sal_uInt16)((bl) & 0xFF) | (((sal_uInt16)(bh) & 0xFF) << 8))
+-#endif
+-#ifndef VOS_LOBYTE
+-#	define VOS_LOBYTE(w)           ((sal_uInt8)((sal_uInt16)(w) & 0xFF))
+-#endif
+-#ifndef VOS_HIBYTE
+-#	define VOS_HIBYTE(w)           ((sal_uInt8)(((sal_uInt16)(w) >> 8) & 0xFF))
+-#endif
+-#ifndef VOS_MAKEBYTE
+-#	define VOS_MAKEBYTE(nl, nh)    ((sal_uInt8)(((nl) & 0x0F) | (((nh) & 0x0F) << 4)))
+-#endif
+-#ifndef VOS_LONIBBLE
+-#	define VOS_LONIBBLE(b)         ((sal_uInt8)((b) & 0x0F))
+-#endif
+-#ifndef VOS_HINIBBLE
+-#	define VOS_HINIBBLE(b)         ((sal_uInt8)(((b) >> 4) & 0x0F))
+-#endif
+-
+-#ifndef VOS_SWAPWORD
+-#	define VOS_SWAPWORD(w)         VOS_MAKEWORD(VOS_HIBYTE(w),VOS_LOBYTE(w))
+-#endif
+-#ifndef VOS_SWAPDWORD
+-#	define VOS_SWAPDWORD(d)        VOS_MAKEDWORD(VOS_SWAPWORD(VOS_HIWORD(d)),VOS_SWAPWORD(VOS_LOWORD(d)))
+-#endif
+-
+-#ifdef OSL_BIGENDIAN
+-#ifndef VOS_NETWORD
+-#	define VOS_NETWORD(w)          (sal_uInt16)(w)
+-#endif
+-#ifndef VOS_NETDWORD
+-#	define VOS_NETDWORD(d)         (sal_uInt32)(d)
+-#endif
+-#else  // OSL_LITENDIAN
+-#ifndef VOS_NETWORD
+-#	define VOS_NETWORD(w)          VOS_MAKEWORD(VOS_HIBYTE(w),VOS_LOBYTE(w))
+-#endif
+-#ifndef VOS_NETDWORD
+-#	define VOS_NETDWORD(d)         VOS_MAKEDWORD(VOS_NETWORD(VOS_HIWORD(d)),VOS_NETWORD(VOS_LOWORD(d)))
+-#endif
+-#endif // OSL_BIGENDIAN
+-
+-#ifdef _OSL_MEMSEG
+-#	define VOS_MAKEPTR(base, off)  ((void _far *)VOS_MAKEDWORD((off), (base)))
+-#	define VOS_BASEOF(ptr)         VOS_HIWORD(ptr)
+-#	define VOS_OFSTOF(ptr)         VOS_LOWORD(ptr)
+-#else
+-#	define VOS_MAKEPTR(base, off)  ((void *)((base) + (off)))
+-#	define VOS_BASEOF(ptr)         (ptr)
+-#	define VOS_OFSTOF(ptr)         0
+-#endif
+-
+-#ifndef VOS_FIELDOFFSET
+-#	define VOS_FIELDOFFSET(type, field) ((sal_Int32)(&((type *)1)->field) - 1)
+-#endif
+-
+-// def. for arbitrary namespace
+-#define VOS_NAMESPACE(class_name, name_space) name_space::class_name
+-
+-// sal_Int16 def. for namespace vos
+-#define NAMESPACE_VOS(class_name) vos::class_name
+-
+-// sal_Int16 def. for namespace std
+-#define NAMESPACE_STD(class_name) std::class_name
+-
+-#endif //_VOS_MACROS_HXX_
+-
+diff --git a/vos/inc/vos/object.hxx b/vos/inc/vos/object.hxx
+deleted file mode 100644
+index 340900a..0000000
+--- vos/inc/vos/object.hxx
++++ /dev/null
+@@ -1,202 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: object.hxx,v $
+- *
+- *  $Revision: 1.5 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:37:38 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_OBJECT_HXX_
+-#define _VOS_OBJECT_HXX_
+-
+-#ifndef _VOS_MACROS_HXX_
+-#	include <vos/macros.hxx>
+-#endif
+-
+-namespace vos
+-{     
+-
+-// ***************************************
+-// Object super class
+-
+-struct OClassInfo;
+-struct OCreateParam;
+-
+-/** OObject
+-	common base class for all framework classes. Used for memory-management
+-	and runtime type-info.
+-*/
+-class OObject
+-{
+-public:
+-
+-	///
+-	OObject();
+-
+-	///
+-	OObject(const OCreateParam& rParam);
+-
+-	// Disable the copy constructor and assignment by default so you will get
+-	// compiler errors instead of unexpected behaviour if you pass objects
+-	// by value or assign objects.
+-private:
+-	OObject(const OObject& objectSrc);			// no implementation
+-	void SAL_CALL operator=(const OObject& objectSrc);	// no implementation
+-
+-public:
+-	virtual ~OObject();
+-
+-public:
+-
+-	/** Define private new and delete operator because of compiler bug, 
+-		when allocating and deleteing a exported class
+-	*/
+-	void* SAL_CALL operator new(size_t size);
+-	void* SAL_CALL operator new(size_t size, void* p);
+-
+-	void  SAL_CALL operator delete(void* p);
+-
+-// Attributes
+-public:
+-
+-	///
+-	virtual const OClassInfo& SAL_CALL getClassInfo() const;
+-
+-	///
+-	sal_Bool SAL_CALL isKindOf(const OClassInfo& rClass) const;
+-
+-// Implementation
+-public:
+-	static const OClassInfo& SAL_CALL classInfo();
+-
+-public:
+-	static OClassInfo __ClassInfo__;
+-};
+-
+-
+-/**
+-	Basic class information
+-*/
+-struct OCreateParam
+-{
+-	sal_uInt32 m_Size;
+-	void*	 m_pParam;
+-
+-	///
+-	OCreateParam(void *pParam)
+-	{	
+-		m_Size = sizeof(OCreateParam);
+-		m_pParam = pParam;
+-	}
+-};
+-
+-/**
+-*/
+-struct OClassInfo
+-{
+-	///
+-	const sal_Char  *m_pClassName;
+-	///
+-	sal_Int32			 m_nObjectSize;
+-	/// schema number of the loaded class
+-	sal_uInt32	 m_wSchema;				
+-
+-	///
+-	OObject* (SAL_CALL * m_pfnCreateObject)(const OCreateParam&);	// NULL => abstract class
+-
+-	/// linked list of registered classes
+-	const OClassInfo* m_pBaseClass;
+-	/// linked list of registered classes
+-	const OClassInfo* m_pNextClass;			
+-
+-	///
+-	OObject* SAL_CALL createObject(const OCreateParam& rParam) const;
+-
+-	///
+-	sal_Bool SAL_CALL isDerivedFrom(const OClassInfo& rBaseClass) const;
+-
+-	///
+-	static const OClassInfo* SAL_CALL getClassInfo(const sal_Char* pClassName);
+-
+-	///
+-	OClassInfo(const sal_Char *pClassName, sal_Int32 ObjectSize,
+-		       const OClassInfo* pBaseClass = NULL, sal_uInt32 Schema = (sal_uInt32)-1,
+-			   OObject* (SAL_CALL * fnCreateObject)(const OCreateParam&) = NULL); 
+-};
+-
+-// *****************************************************************
+-// Helper macros for declaring OClassInfo data
+-
+-
+-#define VOS_STRINGIZE(name) #name
+-
+-#define VOS_CLASSNAME(class_name, domain_name) VOS_STRINGIZE(domain_name.class_name)
+-
+-#define VOS_CLASSINFO(class_name) (class_name::classInfo())
+-
+-// generate static object constructor for class registration
+-struct VOS_CLASSINIT
+-{ VOS_CLASSINIT(VOS_NAMESPACE(OClassInfo, vos)* pNewClass); };
+-
+-#define VOS_CLASSDATA(class_spec, class_name, base_class_name, wSchema, constructor) \
+-	VOS_NAMESPACE(OClassInfo, vos) class_name::__ClassInfo__(class_spec, \
+-	    sizeof(class_name), &VOS_CLASSINFO(base_class_name), wSchema, constructor); \
+-    const VOS_NAMESPACE(VOS_CLASSINIT, vos) class_name::__ClassInit__(&class_name::__ClassInfo__); \
+-    const VOS_NAMESPACE(OClassInfo, vos)& SAL_CALL class_name::getClassInfo() const \
+-		{ return (VOS_CLASSINFO(class_name)); } \
+-    const VOS_NAMESPACE(OClassInfo, vos)& SAL_CALL class_name::classInfo() \
+-		{ return (__ClassInfo__); }
+-	
+-#define VOS_DECLARE_CLASSINFO(class_name) \
+-public: \
+-	static const VOS_NAMESPACE(VOS_CLASSINIT, vos) __ClassInit__; \
+-    static VOS_NAMESPACE(OClassInfo, vos) __ClassInfo__; \
+-public: \
+-	virtual const VOS_NAMESPACE(OClassInfo, vos)& SAL_CALL getClassInfo() const; \
+-    static const VOS_NAMESPACE(OClassInfo, vos)& SAL_CALL classInfo()
+-
+-#define VOS_IMPLEMENT_CLASSINFO(class_spec, class_name, base_class_name, wSchema) \
+-	VOS_CLASSDATA(class_spec, class_name, base_class_name, wSchema, NULL)
+-
+-#define VOS_DECLARE_CLASSTYPE(class_name) \
+-	VOS_DECLARE_CLASSINFO(class_name); \
+-public: \
+-	static VOS_NAMESPACE(OObject, vos)* SAL_CALL createObject(const VOS_NAMESPACE(OCreateParam, vos)& rParam);
+-
+-#define VOS_IMPLEMENT_CLASSTYPE(class_spec, class_name, base_class_name, wSchema) \
+-	VOS_CLASSDATA(class_spec, class_name, base_class_name, wSchema, class_name::createObject) \
+-	VOS_NAMESPACE(OObject, vos)* class_name::createObject(const VOS_NAMESPACE(OCreateParam, vos)& rParam) \
+-		{ return new class_name(rParam); }
+-
+-}
+-
+-#endif // _VOS_OBJECT_HXX_
+-
+diff --git a/vos/inc/vos/ref.hxx b/vos/inc/vos/ref.hxx
+deleted file mode 100644
+index 3a0a203..0000000
+--- vos/inc/vos/ref.hxx
++++ /dev/null
+@@ -1,193 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: ref.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:38:21 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_REF_HXX_
+-#define _VOS_REF_HXX_
+-
+-/**
+-	ORef<T>
+-
+-	template type to implement handle/body behaviour 
+-	with reference-counting.
+-
+-	Note that the template-type T MUST implement IReferenceCounter.
+-
+-*/
+-
+-#ifndef _VOS_REFERNCE_HXX_
+-#	include <vos/refernce.hxx>
+-#endif
+-#ifndef _OSL_DIAGNOSE_H_
+-#	include <osl/diagnose.h>
+-#endif
+-
+-namespace vos
+-{     
+-
+-
+-template <class T>
+-class ORef 
+-{
+-public:
+-
+-	/** Creates an "empty" reference, use "create()" or
+-		assignment/copy-operator to make it a valid reference.
+-	*/
+-	ORef();
+-
+-	/** Creates a reference which points to pBody.
+-		pBodys reference is not changed!. (like create(...)).
+-	*/
+-	ORef(T* pBody);
+-
+-	/** Overload copy-constr. to implement ref-counting.
+-		As a result of the following code:
+-
+-			ORef<x> h1, h2;
+-
+-			h1.create();
+-			h2= h1;
+-
+-		h1 and h2 will represent the same body.
+-
+-	*/
+-	ORef(const ORef<T>& handle);
+-
+-	/** Decreases ref-count of underlying body.
+-	*/
+-	inline ~ORef();
+-
+-	/** Overload assignment-operator to implement ref-counting.
+-		Unbinds this instance from its body (if bound) and
+-		bind it to the body represented by the handle.
+-	*/
+-	ORef<T>& SAL_CALL operator= (const ORef<T>& handle);
+-
+-
+-
+-	/** Binds the body to this handle.
+-		The "pBody"s reference-count is increased.
+-
+-		If you call bind() on an existing body,
+-		the old body is unbound before the new one is
+-		assigned.
+-
+-	*/
+-	void SAL_CALL bind(T* pBody);
+-
+-	/** Unbind the body from this handle.
+-		Note that for a handle representing a large body,
+-		"handle.unbind().bind(new body());" _might_
+-		perform a little bit better than "handle.bind(new body());",
+-		since in the second case two large objects exist in memory
+-		(the old body and the new body).
+-	*/
+-	ORef<T>& SAL_CALL unbind();
+-
+-	/** Same as bind().
+-	*/
+-	void SAL_CALL operator= (T* pBody);
+-
+-	/** Just in case you want to call handle().someBodyOp()...
+-	*/
+-	T& SAL_CALL operator() () const;
+-
+-	/** Allows (*handle).someBodyOp().
+-	*/
+-	T& SAL_CALL operator* () const;
+-
+-	/** Probably most common used: handle->someBodyOp().
+-	*/
+-	T* SAL_CALL operator->() const;
+-
+-	/** Gives access to the handles body. 
+-	*/
+-	T& SAL_CALL getBody() const;
+-
+-	/** Can be used instead of operator->.
+-		I.e. handle->someBodyOp() and handle.getBodyPtr()->someBodyOp()
+-		are the same.
+-	*/
+-	T* SAL_CALL getBodyPtr() const;
+-
+-	/** Returns True is the body is empty (the handle
+-		does not point to a valid body).
+-	*/
+-	sal_Bool SAL_CALL isEmpty() const;
+-	
+-	/** Returns True is the body is "full" (the handle
+-		does point to a valid body).
+-	*/
+-	sal_Bool SAL_CALL isValid() const;
+-
+-	/** Returns True is handle points to the same body.
+-	*/
+-	sal_Bool SAL_CALL isEqualBody(const ORef<T>& handle) const;
+-
+-	/** Delegates comparison to the body.
+-	*/
+-	sal_Bool SAL_CALL operator== (const ORef<T>& handle) const;
+-
+-	/** Delegates comparison to the body.
+-	*/
+-	sal_Bool SAL_CALL operator!= (const ORef<T>& handle) const;
+-
+-	/** Returns True is "this" points to pBody.
+-	*/
+-	sal_Bool SAL_CALL operator== (const T* pBody) const;
+-
+-	/** Needed to place ORefs into STL collection.
+-		Delegates comparison to the body.
+-	*/
+-	sal_Bool SAL_CALL operator< (const ORef<T>& handle) const;
+-
+-	/** Needed to place ORefs into STL collection.
+-		Delegates comparison to the body.
+-	*/
+-	sal_Bool SAL_CALL operator> (const ORef<T>& handle) const;
+-
+-protected:
+-
+-	T* m_refBody;
+-};
+-
+-// include template implementation
+-#include <vos/ref.inl>
+-
+-}     
+-
+-
+-#endif // _VOS_REF_HXX_
+diff --git a/vos/inc/vos/ref.inl b/vos/inc/vos/ref.inl
+deleted file mode 100644
+index 5116be5..0000000
+--- vos/inc/vos/ref.inl
++++ /dev/null
+@@ -1,200 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: ref.inl,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: rt $ $Date: 2005/09/09 09:02:12 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#if (defined(OS2) && defined(ICC))
+-#define CAST_TO_IREFERENCE(p) ((IReference*)(p))
+-#else
+-#define CAST_TO_IREFERENCE(p) (p)
+-#endif
+-
+-template <class T>
+-inline ORef<T>::ORef() 
+-{
+-	m_refBody= 0;
+-}
+-
+-template <class T>
+-inline ORef<T>::ORef(T* pBody) 
+-{
+-	m_refBody= pBody;
+-
+-	if (m_refBody)
+-		CAST_TO_IREFERENCE(m_refBody)->acquire();
+-}
+-
+-template <class T>
+-inline ORef<T>::ORef(const ORef<T>& handle) 
+-{
+-	m_refBody= handle.m_refBody;
+-
+-	if (m_refBody)
+-		CAST_TO_IREFERENCE(m_refBody)->acquire();
+-}
+-
+-template <class T>
+-inline ORef<T>::~ORef() 
+-{
+-	if (m_refBody)
+-		CAST_TO_IREFERENCE(m_refBody)->release();
+-}
+-
+-template <class T>
+-inline ORef<T>& ORef<T>::operator= (const ORef<T>& handle) 
+-{
+-	if (m_refBody) 
+-		CAST_TO_IREFERENCE(m_refBody)->release();
+-
+-	m_refBody= handle.m_refBody;
+-	
+-	if (m_refBody)
+-		CAST_TO_IREFERENCE(m_refBody)->acquire();
+-	
+-	return *this;
+-}
+-
+-template <class T>
+-inline void ORef<T>::bind(T* pBody) 
+-{
+-	if (m_refBody) 
+-		CAST_TO_IREFERENCE(m_refBody)->release();
+-
+-	m_refBody= pBody;
+-
+-	if (m_refBody)
+-		CAST_TO_IREFERENCE(m_refBody)->acquire();
+-}
+-
+-template <class T>
+-inline ORef<T>& ORef<T>::unbind() 
+-{
+-	if (m_refBody)
+-	{
+-		CAST_TO_IREFERENCE(m_refBody)->release();
+-		m_refBody = 0;
+-	}
+-	return *this;
+-}
+-
+-template <class T>
+-inline void ORef<T>::operator= (T* pBody) 
+-{
+-	bind(pBody);
+-}
+-
+-template <class T>
+-inline T& ORef<T>::operator() () const
+-{
+-	OSL_PRECOND(m_refBody, "ORef::operator(): can't deref nil body!");
+-	return *m_refBody;
+-}
+-
+-template <class T>
+-inline T& ORef<T>::operator* () const 
+-{
+-	OSL_PRECOND(m_refBody, "ORef::operator*: can't deref nil body!");
+-	return *m_refBody;
+-}
+-
+-template <class T>
+-inline T* ORef<T>::operator->() const 
+-{
+-	OSL_PRECOND(m_refBody, "ORef::operator->: nil body!");
+-	return m_refBody;
+-}
+-
+-template <class T>
+-inline T& ORef<T>::getBody() const
+-{
+-	OSL_PRECOND(m_refBody, "ORef::getBody(): can't deref nil body!");
+-	return *m_refBody;
+-}
+-
+-template <class T>
+-inline T* ORef<T>::getBodyPtr() const
+-{
+-	// might be nil
+-	return m_refBody;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::isEmpty() const
+-{
+-	return m_refBody == 0;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::isValid() const
+-{
+-	return m_refBody != 0;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::isEqualBody(const ORef<T>& handle) const
+-{
+-	return m_refBody == handle.m_refBody;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::operator== (const ORef<T>& handle) const
+-{
+-	return m_refBody == handle.m_refBody;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::operator!= (const ORef<T>& handle) const
+-{
+-	return m_refBody != handle.m_refBody;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::operator== (const T* pBody) const
+-{
+-	return m_refBody == pBody;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::operator< (const ORef<T>& handle) const
+-{
+-	return m_refBody < handle.m_refBody;
+-}
+-
+-template <class T>
+-inline sal_Bool ORef<T>::operator> (const ORef<T>& handle) const
+-{
+-	return m_refBody > handle.m_refBody;
+-}
+-
+-
+diff --git a/vos/inc/vos/refernce.hxx b/vos/inc/vos/refernce.hxx
+deleted file mode 100644
+index 46e695f..0000000
+--- vos/inc/vos/refernce.hxx
++++ /dev/null
+@@ -1,120 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: refernce.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:38:34 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_REFERNCE_HXX_
+-#define _VOS_REFERNCE_HXX_
+-
+-#ifndef _OSL_INTERLCK_H_
+-#	include <osl/interlck.h>
+-#endif
+-#ifndef _VOS_OBJECT_HXX_
+-#	include <vos/object.hxx>
+-#endif
+-
+-namespace vos
+-{
+-
+-/** Interface for refernce-counting
+-*/
+-class IReference
+-{
+-public:
+-
+-    IReference() { }
+-    virtual ~IReference() { }
+-    
+-	typedef oslInterlockedCount RefCount;
+-
+-	virtual RefCount SAL_CALL acquire()=0;
+-	virtual RefCount SAL_CALL release()=0;
+-
+-	virtual RefCount SAL_CALL referenced() const=0;
+-};
+-
+-class ORefCount
+-{
+-public:
+-	typedef IReference::RefCount RefCount;
+-
+-	ORefCount() { m_RefCount = 0; }
+-	ORefCount(RefCount n) { m_RefCount = n; }
+-    virtual ~ORefCount();
+-    
+-	RefCount SAL_CALL acquire() { return (osl_incrementInterlockedCount(&m_RefCount)); };
+-	RefCount SAL_CALL release() { return (osl_decrementInterlockedCount(&m_RefCount)); };
+-
+-	RefCount SAL_CALL operator++() 	 { return acquire(); }
+-	// don't implement the postfix operator, it won't function this way!
+-
+-	RefCount SAL_CALL operator--() 	 { return release(); }
+-	// don't implement the postfix operator, it won't function this way!
+-
+-	RefCount SAL_CALL referenced() const
+-		{ return (m_RefCount); }
+-
+-protected:
+-	RefCount m_RefCount;
+-
+-private:
+-	// disable copy/assignment
+-	ORefCount(const ORefCount&);
+-	ORefCount& SAL_CALL operator= (const ORefCount&);
+-};
+-
+-class OReference : public vos::IReference
+-{
+-public:
+-	OReference();
+-	virtual ~OReference();
+-
+-	virtual RefCount SAL_CALL acquire();
+-	virtual RefCount SAL_CALL release();
+-
+-	virtual RefCount SAL_CALL referenced() const
+-		{ return (m_RefCount.referenced()); }
+-
+-protected:
+-	ORefCount m_RefCount;
+-
+-private:
+-	// disable copy/assignment
+-	OReference(const OReference&);
+-	OReference& SAL_CALL operator= (const OReference&);
+-};
+-
+-}
+-
+-#endif	// _VOS_REFERNCE_HXX_
+-
+diff --git a/vos/inc/vos/refobj.hxx b/vos/inc/vos/refobj.hxx
+deleted file mode 100644
+index af39b02..0000000
+--- vos/inc/vos/refobj.hxx
++++ /dev/null
+@@ -1,99 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: refobj.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:38:48 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_REFOBJ_HXX_
+-#define _VOS_REFOBJ_HXX_
+-
+-/**
+-	ORefObj<T>
+-
+-	template type to implement handle/body behaviour
+-	with reference-counting.
+-*/
+-
+-#ifndef _VOS_REFERNCE_HXX_
+-#	include <vos/refernce.hxx>
+-#endif
+-#ifndef _OSL_DIAGNOSE_H_
+-#	include <osl/diagnose.h>
+-#endif
+-
+-namespace vos
+-{
+-
+-template <class T>
+-class ORefObj : public IReference
+-{
+-public:
+-	ORefObj(const T& Obj);
+-	
+-	inline ~ORefObj();
+-
+-	virtual RefCount SAL_CALL acquire()
+-		{ return (m_RefCount.acquire()); }
+-	virtual RefCount SAL_CALL release()
+-		{ return (m_RefCount.release()); }
+-	virtual RefCount SAL_CALL referenced() const
+-		{ return (m_RefCount.referenced()); }
+-
+-	T& SAL_CALL operator=(const T& Obj);
+-
+-	SAL_CALL operator T&();
+-	SAL_CALL operator const T&() const;
+-
+-	T& SAL_CALL operator() ();
+-	const T& SAL_CALL operator() () const;
+-
+-	const	T& SAL_CALL getObj() const;
+-	T& SAL_CALL getObj();
+-
+-protected:
+-	T	      m_Obj;
+-	ORefCount m_RefCount;
+-
+-private:
+-	ORefObj(const ORefObj<T>& handle);
+-	ORefObj<T>& SAL_CALL operator= (const ORefObj<T>& handle);
+-};
+-
+-// include template implementation
+-#include <vos/refobj.inl>
+-
+-}
+-
+-
+-#endif // _VOS_REF_HXX_
+-
+diff --git a/vos/inc/vos/refobj.inl b/vos/inc/vos/refobj.inl
+deleted file mode 100644
+index 77fc062..0000000
+--- vos/inc/vos/refobj.inl
++++ /dev/null
+@@ -1,94 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: refobj.inl,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: rt $ $Date: 2005/09/09 09:03:07 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-template <class T>
+-ORefObj<T>::ORefObj(const T& Obj)
+-{
+-	m_Obj = Obj;
+-
+-	m_RefCount.acquire();
+-}
+-
+-template <class T>
+-inline ORefObj<T>::~ORefObj()
+-{
+-	OSL_ASSERT(m_RefCount.referenced() == 0);
+-}
+-
+-template <class T>
+-inline T& ORefObj<T>::operator=(const T& Obj)
+-{
+-	m_Obj = Obj;
+-
+-	return m_Obj;
+-}
+-
+-template <class T>
+-inline ORefObj<T>::operator T&()
+-{
+-	return m_Obj;
+-}
+-
+-template <class T>
+-inline ORefObj<T>::operator const T&() const
+-{
+-	return m_Obj;
+-}
+-
+-template <class T>
+-inline T& ORefObj<T>::operator() ()
+-{
+-	return m_Obj;
+-}
+-
+-template <class T>
+-inline const T& ORefObj<T>::operator() () const
+-{
+-	return m_Obj;
+-}
+-
+-template <class T>
+-inline T& ORefObj<T>::getObj()
+-{
+-	return m_Obj;
+-}
+-
+-template <class T>
+-inline const T& ORefObj<T>::getObj() const
+-{
+-	return m_Obj;
+-}
+-
+diff --git a/vos/inc/vos/stream.hxx b/vos/inc/vos/stream.hxx
+deleted file mode 100644
+index c617cf2..0000000
+--- vos/inc/vos/stream.hxx
++++ /dev/null
+@@ -1,296 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: stream.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:40:21 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _VOS_STREAM_HXX_
+-#define _VOS_STREAM_HXX_
+-
+-#ifndef _VOS_OBJECT_HXX_
+-#	include <vos/object.hxx>
+-#endif
+-#ifndef _VOS_ISTREAM_HXX_
+-#	include <vos/istream.hxx>
+-#endif
+-
+-namespace vos
+-{     
+-
+-/** Adds seeking capabilities to IStream
+-*/
+-class IPositionableStream : public vos::IStream
+-{
+-
+-public:
+-
+-    typedef sal_Int32 Offset;
+-
+-public:
+-	
+-	///
+-    virtual sal_Bool SAL_CALL seekTo(Offset position) const = 0;
+-
+-	///
+-    virtual sal_Bool SAL_CALL seekRelative(Offset change) const = 0;
+-
+-	///
+-    virtual sal_Bool SAL_CALL seekToEnd() const = 0;
+-    
+-	///
+-    virtual sal_Bool SAL_CALL changeSize(sal_uInt32 new_size) = 0;
+-
+-	///
+-    virtual sal_uInt32 SAL_CALL getSize() const = 0;
+-
+-
+-	///
+-    virtual Offset SAL_CALL getOffset() const = 0;
+-
+-    
+-protected:
+-    IPositionableStream() { }
+-    virtual ~IPositionableStream() { }
+-    
+-};
+-
+-
+-/** Implements IPositionableStream
+-*/
+-class OStream : public vos::OObject, 
+-				public vos::IPositionableStream
+-{
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OStream, vos));
+-
+-public:
+-
+-	///
+-    OStream(IPositionableStream& rStream);	
+-
+-	///
+-    virtual ~OStream ();
+-
+-    // ----------------- Read operations -------------------------
+-
+-	///
+-    virtual sal_Int32 SAL_CALL read(void* pbuffer, sal_uInt32 n) const;
+-
+-	///
+-	sal_Int32 SAL_CALL read(IPositionableStream::Offset offset, 
+-			     void* pbuffer, 
+-			     sal_uInt32 n) const;
+-
+-	///
+-    inline sal_Bool SAL_CALL read(sal_Int32& value) const;
+-
+-	///
+-    inline sal_Bool SAL_CALL read(sal_Int16& value) const;
+-
+-	///
+-    inline sal_Bool SAL_CALL read(sal_Char& value) const;
+-
+-	///
+-    inline sal_Bool SAL_CALL read(sal_uInt8& value) const;
+-   
+-    // ----------------- Write operations ------------------------
+-
+-	///
+-    virtual sal_Int32 SAL_CALL write(const void* pbuffer, sal_uInt32 n);
+-
+-	///
+-    sal_Int32 SAL_CALL write(IPositionableStream::Offset offset, 
+-		          const void* pbuffer, 
+-			      sal_uInt32 n);
+-	///
+-    inline sal_Bool SAL_CALL write(sal_Int32 value);
+-
+-	///
+-    inline sal_Bool SAL_CALL write(sal_Int16 value);
+-
+-	///
+-    inline sal_Bool SAL_CALL write(sal_Char value);
+-
+-	///
+-    inline sal_Bool SAL_CALL write(sal_uInt8 value);
+-
+-	///
+-    sal_Bool SAL_CALL append(void* pbuffer, sal_uInt32 n); // Write at the end of the Stream.
+-    
+-    // ------------- Positioning and sizing operations ----------
+-
+-	///
+-    inline sal_Bool SAL_CALL seekToBegin() const;
+-
+-    // ----------------- Stream interface ------------------------
+-
+-    ///
+-	virtual sal_Bool SAL_CALL seekTo(IPositionableStream::Offset pos) const;
+-
+-	///
+-    virtual sal_Bool SAL_CALL seekToEnd() const;
+-
+-	///
+-    virtual sal_Bool SAL_CALL seekRelative(IPositionableStream::Offset change) const;
+-    
+-	///
+-    virtual sal_Bool SAL_CALL changeSize(sal_uInt32 new_size);
+-    
+-	///
+-	virtual sal_uInt32 SAL_CALL getSize() const;	
+-
+-	///
+-    virtual sal_Bool SAL_CALL isEof() const;	
+-
+-	///
+-    virtual IPositionableStream::Offset SAL_CALL getOffset() const;
+-
+-protected:
+-    IPositionableStream& m_rStream;
+-
+-	// ----------------- Stream operators ------------------------
+-
+-    friend const OStream& operator>> (OStream& rStream, sal_Int32& value);
+-    friend const OStream& operator>> (OStream& rStream, sal_Int16& value);
+-    friend const OStream& operator>> (OStream& rStream, sal_uInt8& value);
+-    friend const OStream& operator>> (OStream& rStream, sal_Char& value);
+-    friend OStream& operator<< (OStream& rStream, sal_Int32 value);
+-    friend OStream& operator<< (OStream& rStream, sal_Int16 value);
+-    friend OStream& operator<< (OStream& rStream, sal_uInt8 value);
+-    friend OStream& operator<< (OStream& rStream, sal_Char value);
+-};
+-
+-inline sal_Bool OStream::read(sal_Int32& value) const
+-{
+-    return (read(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::read(sal_Int16& value) const
+-{
+-    return (read(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::read(sal_Char& value) const
+-{
+-    return (read(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::read(sal_uInt8& value) const
+-{
+-    return (read(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::write(sal_Int32 value)
+-{
+-    return (write(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::write(sal_Int16 value)
+-{
+-    return (write(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::write(sal_Char value)
+-{
+-    return (write(&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::write(sal_uInt8 value)
+-{
+-    return (write((sal_uInt8*)&value, sizeof(value)) == sizeof(value));
+-}
+-
+-inline sal_Bool OStream::seekToBegin() const
+-{
+-    return (seekTo(0L));
+-}
+-
+-inline const OStream& operator>> (OStream& rStream, sal_Int32& value)
+-{ 
+-	rStream.read(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline const OStream& operator>> (OStream& rStream, sal_Int16& value)
+-{ 
+-	rStream.read(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline const OStream& operator>> (OStream& rStream, sal_uInt8& value)
+-{ 
+-	rStream.read(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline const OStream& operator>> (OStream& rStream, sal_Char& value)
+-{ 
+-	rStream.read(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline OStream& operator<< (OStream& rStream, sal_Int32 value)
+-{ 
+-	rStream.write(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline OStream& operator<< (OStream& rStream, sal_Int16 value)
+-{ 
+-	rStream.write(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline OStream& operator<< (OStream& rStream, sal_uInt8 value)
+-{ 
+-	rStream.write(value); 
+-	
+-	return (rStream); 
+-}
+-    
+-inline OStream& operator<< (OStream& rStream, sal_Char value)
+-{ 
+-	rStream.write(value); 
+-	
+-	return (rStream); 
+-}
+-
+-}     
+-
+-#endif // _VOS_STREAM_HXX_
+-
+-
+diff --git a/vos/inc/vos/timer.hxx b/vos/inc/vos/timer.hxx
+deleted file mode 100644
+index fb4f30f..0000000
+--- vos/inc/vos/timer.hxx
++++ /dev/null
+@@ -1,214 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: timer.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:40:52 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_TIMER_HXX_
+-#define _VOS_TIMER_HXX_
+-
+-#ifndef _VOS_REFERNCE_HXX_
+-#	include <vos/refernce.hxx>
+-#endif
+-#ifndef _OSL_MUTEX_HXX_
+-#	include <osl/mutex.hxx>
+-#endif
+-#ifndef _OSL_TIME_H_
+-#	include <osl/time.h>
+-#endif
+-
+-
+-namespace vos
+-{     
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// TTimeValue
+-//
+-
+-/** <code> struct TTimeValue </code> : class for times. Times are seconds in UTC since 01.01.1970
+- */
+-struct TTimeValue : public TimeValue
+-{
+-	TTimeValue()
+-    { Seconds = 0; Nanosec = 0; }
+-
+-    TTimeValue(sal_uInt32 Seconds, sal_uInt32 Nano);
+-
+-    TTimeValue(sal_uInt32 MilliSecs)
+-    { Seconds = MilliSecs / 1000L; Nanosec = (MilliSecs % 1000) * 1000000L; }
+-
+-    TTimeValue(const TTimeValue& rTimeValue)
+-    { Seconds = rTimeValue.Seconds; Nanosec = rTimeValue.Nanosec; }
+-
+-    TTimeValue(const TimeValue& rTimeValue)
+-    { Seconds = rTimeValue.Seconds; Nanosec = rTimeValue.Nanosec; }
+-
+-	void		SAL_CALL normalize();
+-
+-    void		SAL_CALL addTime(const TTimeValue& Delta);
+-
+-	sal_Bool	SAL_CALL isEmpty() const;
+-};
+-
+-inline void TTimeValue::normalize()
+-{
+-	if (Nanosec > 1000000000)
+-	{
+-		Seconds += Nanosec / 1000000000;
+-		Nanosec %= 1000000000;
+-	}	
+-}
+-
+-inline TTimeValue::TTimeValue(sal_uInt32 Secs, sal_uInt32 Nano)
+-{
+-	Seconds = Secs;
+-	Nanosec = Nano;
+-
+-    normalize();
+-}
+-
+-inline void TTimeValue::addTime(const TTimeValue& Time)
+-{
+-	Seconds += Time.Seconds;
+-	Nanosec += Time.Nanosec;
+-
+-	normalize();
+-}
+-
+-inline sal_Bool TTimeValue::isEmpty() const
+-{
+-	return ((Seconds == 0) && (Nanosec == 0));
+-}
+-
+-inline sal_Bool operator<(const TTimeValue& rTimeA, const TTimeValue& rTimeB)
+-{
+-	if (rTimeA.Seconds < rTimeB.Seconds)
+-		return sal_True;
+-	else if (rTimeA.Seconds > rTimeB.Seconds)
+-		return sal_False;
+-	else
+-		return (rTimeA.Nanosec < rTimeB.Nanosec);
+-}
+-
+-inline sal_Bool operator>(const TTimeValue& rTimeA, const TTimeValue& rTimeB)
+-{
+-	if (rTimeA.Seconds > rTimeB.Seconds)
+-		return sal_True;
+-	else if (rTimeA.Seconds < rTimeB.Seconds)
+-		return sal_False;
+-	else
+-		return (rTimeA.Nanosec > rTimeB.Nanosec);
+-}
+-
+-inline sal_Bool operator==(const TTimeValue& rTimeA, const TTimeValue& rTimeB)
+-{
+-	return ((rTimeA.Seconds == rTimeB.Seconds) && 
+-		    (rTimeA.Nanosec == rTimeB.Nanosec));
+-}
+-
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-//  Timer class
+-//
+-
+-class OTimerManager;
+-
+-/** <code> class OTimer </code> : Interface for the Timer and handling the event
+-*/
+-class OTimer : virtual public OReference , virtual public OObject
+-{
+-	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OTimer, vos));
+-
+-public:
+-
+-    /// constructor
+-  	OTimer();
+-	/// constructor
+-  	OTimer(const TTimeValue& Time);
+-	/// constructor
+-  	OTimer(const TTimeValue& Time, const TTimeValue& RepeatTime);
+-  	/// start timer.
+-  	void SAL_CALL start();
+-  	/// abort timer prematurely.
+-  	void SAL_CALL stop();
+-  	/// returns <code> sal_True </code> if timer is running.
+-  	sal_Bool 	SAL_CALL isTicking() const; 
+-	/// is the timer expired?
+-  	sal_Bool 	SAL_CALL isExpired() const;
+-	/// does <code> pTimer </code> expires before us?
+-  	sal_Bool    SAL_CALL expiresBefore(const OTimer* pTimer) const;
+-	/// set the absolute time when the timer should fire
+-  	void		SAL_CALL setAbsoluteTime(const TTimeValue& Time);
+-	/// set the time to fire to 'now' + <code> Remaining </code>
+-  	void		SAL_CALL setRemainingTime(const TTimeValue& Remaining);
+-	/// set the time to fire to 'now' + <code> Remaining </code> with repeat interveal <code> Repeat </code>
+-  	void		SAL_CALL setRemainingTime(const TTimeValue& Remaining, const TTimeValue& Repeat);				
+-	/// adds <code> Time </code> to the 'fire time'
+-  	void		SAL_CALL addTime(const TTimeValue& Time);
+-	/// returns the remaining time before timer expiration relative to now
+-  	TTimeValue	SAL_CALL getRemainingTime() const;
+-
+-protected:
+-
+-    /// destructor
+-    virtual ~OTimer();
+-    /// what should be done when the 'timer fires'
+-    virtual void SAL_CALL onShot() = 0;
+-
+-    /// holds (initial) exparation time of this timer
+-	TTimeValue  m_TimeOut;
+-    /// holds the time of exparation of this timer
+-	TTimeValue  m_Expired;
+-    /// holds the time interveal of successive exparations
+-	TTimeValue  m_RepeatDelta;
+-    /// Pointer to the next timer (to fire)
+-  	OTimer*	 	m_pNext;
+-
+-private:
+-
+-    /// copy constructor disabled
+-    OTimer(const OTimer& rTimer);
+-    /// assignment operator disabled
+-    void SAL_CALL operator=(const OTimer& rTimer);
+-    
+-	friend class OTimerManager;
+-};
+-
+-}     
+-
+-
+-#endif  //_VOS_TIMER_HXX_
+-
+-
+diff --git a/vos/prj/build.lst b/vos/prj/build.lst
+deleted file mode 100644
+index acc2d2f..0000000
+--- vos/prj/build.lst
++++ /dev/null
+@@ -1,6 +0,0 @@
+-vo	vos	:	sal solenv NULL
+-vo	vos										usr1	-	all	vo_mkout NULL
+-vo	vos\inc\vos								get		-	all	vo_inc NULL
+-vo	vos\prj									get		-	all	vo_prj NULL
+-vo	vos\source								nmake	-	all	vo_sou NULL
+-vo	vos\util								nmake	-	all	vo_util vo_sou NULL
+diff --git a/vos/prj/d.lst b/vos/prj/d.lst
+deleted file mode 100644
+index 94d46bd..0000000
+--- vos/prj/d.lst
++++ /dev/null
+@@ -1,15 +0,0 @@
+-mkdir: %_DEST%\inc%_EXT%\vos
+-..\version.mk %_DEST%\inc%_EXT%\vos\version.mk
+-..\inc\vos\*.h %_DEST%\inc%_EXT%\vos\*.h
+-..\inc\vos\*.hxx %_DEST%\inc%_EXT%\vos\*.hxx
+-..\inc\vos\*.inl %_DEST%\inc%_EXT%\vos\*.inl
+-
+-..\%__SRC%\lib\avos.lib %_DEST%\lib%_EXT%\avos.lib
+-..\%__SRC%\lib\ivos.lib %_DEST%\lib%_EXT%\ivos.lib
+-..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
+-..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
+-..\%__SRC%\lib\lib*.a %_DEST%\lib%_EXT%
+-..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+-..\%__SRC%\slb\cppvos.lib %_DEST%\lib%_EXT%\xvos.lib
+-
+-..\%__SRC%\bin\vos*.dll %_DEST%\bin%_EXT%\vos*.dll
+diff --git a/vos/source/dllentry.cxx b/vos/source/dllentry.cxx
+deleted file mode 100644
+index ff4a9fe..0000000
+--- vos/source/dllentry.cxx
++++ /dev/null
+@@ -1,70 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: dllentry.cxx,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: rt $ $Date: 2005/09/09 09:07:03 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <windows.h>
+-#include <winsock.h>
+-
+-
+-#ifdef SHARED
+-
+-sal_Int32 CALLBACK LibMain(HINSTANCE hinst, WORD wDataSeg, WORD cbHeap, LPSTR lpszCmdLine )
+-{
+-	HGLOBAL    hgblClassStruct;
+-	LPWNDCLASS lpClassStruct;
+-	static HINSTANCE hinstLib = NULL;
+-	
+-	/* Has the library been initialized yet? */
+-	if (hinstLib == NULL)
+-	{
+-    	WORD	wVersionRequested;
+-	    WSADATA	wsaData;
+-    	sal_Int32		error;
+-
+-
+-	    wVersionRequested = 0x0101;
+-	    error = WSAStartup( wVersionRequested, &wsaData );
+-		if (error)
+-		{
+-		}
+-		else
+-			hinstLib = hinst;
+-	}
+-
+-	return (hinstLib ? TRUE : FALSE);  /* return TRUE = success; FALSE = fail */
+-}
+- 
+-#endif
+-
+diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk
+deleted file mode 100644
+index 3bf0de4..0000000
+--- vos/source/makefile.mk
++++ /dev/null
+@@ -1,69 +0,0 @@
+-#*************************************************************************
+-#
+-#   OpenOffice.org - a multi-platform office productivity suite
+-#
+-#   $RCSfile: makefile.mk,v $
+-#
+-#   $Revision: 1.13 $
+-#
+-#   last change: $Author: hr $ $Date: 2006/06/20 04:06:40 $
+-#
+-#   The Contents of this file are made available subject to
+-#   the terms of GNU Lesser General Public License Version 2.1.
+-#
+-#
+-#     GNU Lesser General Public License Version 2.1
+-#     =============================================
+-#     Copyright 2005 by Sun Microsystems, Inc.
+-#     901 San Antonio Road, Palo Alto, CA 94303, USA
+-#
+-#     This library is free software; you can redistribute it and/or
+-#     modify it under the terms of the GNU Lesser General Public
+-#     License version 2.1, as published by the Free Software Foundation.
+-#
+-#     This library is distributed in the hope that it will be useful,
+-#     but WITHOUT ANY WARRANTY; without even the implied warranty of
+-#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-#     Lesser General Public License for more details.
+-#
+-#     You should have received a copy of the GNU Lesser General Public
+-#     License along with this library; if not, write to the Free Software
+-#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+-#     MA  02111-1307  USA
+-#
+-#*************************************************************************
+-
+-PRJ=..
+-
+-PRJNAME=vos
+-TARGET=cppvos
+-ENABLE_EXCEPTIONS=TRUE
+-
+-# --- Settings -----------------------------------------------------
+-
+-.INCLUDE :  settings.mk
+-
+-# --- Files --------------------------------------------------------
+-
+-SLOFILES= \
+-				$(SLO)$/object.obj      \
+-				$(SLO)$/refernce.obj    \
+-				$(SLO)$/stream.obj      \
+-				$(SLO)$/timer.obj
+-
+-
+-.IF "$(UPDATER)"=="YES"
+-OBJFILES= \
+-				$(OBJ)$/object.obj      \
+-				$(OBJ)$/refernce.obj    \
+-				$(OBJ)$/stream.obj      \
+-				$(OBJ)$/timer.obj
+-
+-.ENDIF
+-
+-# --- Targets ------------------------------------------------------
+-
+-.INCLUDE :  target.mk
+-
+-
+-
+diff --git a/vos/source/object.cxx b/vos/source/object.cxx
+deleted file mode 100644
+index 05a8ec9..0000000
+--- vos/source/object.cxx
++++ /dev/null
+@@ -1,173 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: object.cxx,v $
+- *
+- *  $Revision: 1.7 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:06:51 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#include <string.h>
+-
+-#include <rtl/alloc.h>
+-#include <rtl/memory.h>
+-
+-#include <osl/diagnose.h>
+-
+-#include <vos/object.hxx>
+-
+-using namespace vos;
+-
+-/////////////////////////////////////////////////////////////////////////////
+-// Object super class
+-
+-VOS_NAMESPACE(OClassInfo, vos) VOS_NAMESPACE(OObject, vos)::__ClassInfo__(VOS_CLASSNAME(OObject, vos), sizeof(VOS_NAMESPACE(OObject, vos)));
+-
+-OObject::OObject()
+-{
+-}
+-
+-OObject::OObject(const OCreateParam&)
+-{
+-}
+-
+-OObject::~OObject()
+-{
+-}
+-
+-void* OObject::operator new(size_t size)
+-{
+-   void* p = rtl_allocateMemory(size);
+-
+-   OSL_ASSERT(p != NULL);
+-
+-   return (p);
+-}
+-
+-void* OObject::operator new(size_t, void* p)
+-{
+-   return (p);
+-}
+-
+-void OObject::operator delete(void* p)
+-{
+-   rtl_freeMemory(p);
+-}
+-
+-const OClassInfo& OObject::classInfo()
+-{
+-	return (__ClassInfo__);
+-}
+-
+-const OClassInfo& OObject::getClassInfo() const
+-{
+-	return (VOS_CLASSINFO(VOS_NAMESPACE(OObject, vos)));
+-}
+-
+-sal_Bool OObject::isKindOf(const OClassInfo& rClass) const
+-{
+-    OSL_ASSERT(this != NULL);
+-
+-    const OClassInfo& rClassThis = getClassInfo();
+-
+-    return (rClassThis.isDerivedFrom(rClass));
+-}
+-
+-/////////////////////////////////////////////////////////////////////////////
+-// Basic class information
+-
+-OClassInfo::OClassInfo(const sal_Char *pClassName, sal_Int32 ObjectSize,
+-		               const OClassInfo* pBaseClass, sal_uInt32 Schema,
+-			           OObject* (SAL_CALL * fnCreateObject)(const OCreateParam&))
+-{
+-	m_pClassName  = pClassName;
+-	m_nObjectSize = ObjectSize;
+-	m_wSchema     = Schema;			
+-
+-	m_pfnCreateObject = fnCreateObject;
+-
+-	m_pBaseClass = pBaseClass;
+-	m_pNextClass = NULL;
+-}
+-
+-OObject* OClassInfo::createObject(const OCreateParam& rParam) const
+-{
+-	if (m_pfnCreateObject == NULL)
+-		return NULL;
+-
+-    OObject* pObject = NULL;
+-	pObject = (*m_pfnCreateObject)(rParam);
+-
+-	return (pObject);
+-}
+-
+-sal_Bool OClassInfo::isDerivedFrom(const OClassInfo& rClass) const
+-{
+-	OSL_ASSERT(this != NULL);
+-
+-	const OClassInfo* pClassThis = this;
+-
+-	while (pClassThis != NULL)
+-	{
+-		if (pClassThis == &rClass)
+-			return (sal_True);
+-
+-		pClassThis = pClassThis->m_pBaseClass;
+-	}
+-
+-	return (sal_False);      // walked to the top, no match
+-}
+-
+-const OClassInfo* OClassInfo::getClassInfo(const sal_Char* pClassName)
+-{
+-	OSL_ASSERT(pClassName != NULL);
+-
+-	const OClassInfo* pClass = &VOS_CLASSINFO(VOS_NAMESPACE(OObject, vos));
+-	
+-	while (pClass != NULL)
+-	{
+-		if (strcmp(pClassName, pClass->m_pClassName) == 0)
+-			break;
+-
+-		pClass = pClass->m_pNextClass;
+-	}
+-
+-	return (pClass);
+-}
+-
+-VOS_CLASSINIT::VOS_CLASSINIT(register OClassInfo* pNewClass)
+-{
+-	OSL_ASSERT(pNewClass != NULL);
+-
+-	OClassInfo* pClassRoot = (OClassInfo*)&VOS_CLASSINFO(VOS_NAMESPACE(OObject, vos));
+-	
+-	pNewClass->m_pNextClass = pClassRoot->m_pNextClass;
+-
+-	pClassRoot->m_pNextClass = pNewClass;
+-}
+diff --git a/vos/source/refernce.cxx b/vos/source/refernce.cxx
+deleted file mode 100644
+index 8f06992..0000000
+--- vos/source/refernce.cxx
++++ /dev/null
+@@ -1,74 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: refernce.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:43:17 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#include <limits.h>
+-#include <osl/diagnose.h>
+-
+-#include <vos/refernce.hxx>
+-
+-using namespace vos;
+-
+-ORefCount::~ORefCount()
+-{
+-	
+-}
+-
+-
+-OReference::OReference() 
+-{
+-}
+-
+-OReference::~OReference() 
+-{
+-	OSL_ASSERT(m_RefCount.referenced() == 0);
+-}
+-
+-IReference::RefCount OReference::acquire() 
+-{
+-	return (m_RefCount.acquire());
+-}
+-
+-IReference::RefCount OReference::release() 
+-{
+-	RefCount Count = m_RefCount.release();
+-
+-	if (Count == 0) 
+-		delete this;
+-
+-	return (Count);
+-}
+-
+-
+diff --git a/vos/source/stream.cxx b/vos/source/stream.cxx
+deleted file mode 100644
+index 882cbaa..0000000
+--- vos/source/stream.cxx
++++ /dev/null
+@@ -1,123 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: stream.cxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:07:55 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#include <limits>
+-
+-#include <osl/diagnose.h>
+-#include <vos/object.hxx>
+-#include <vos/stream.hxx>
+-
+-using namespace vos;
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// Stream class
+-//
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OStream, vos), VOS_NAMESPACE(OStream, vos), VOS_NAMESPACE(OObject, vos), 0);
+-
+-OStream::OStream(IPositionableStream& rStream)
+-	: m_rStream(rStream)
+-{
+-}
+-
+-OStream::~OStream()
+-{
+-}
+-
+-sal_Int32 OStream::read(void* pbuffer, sal_uInt32 n) const
+-{
+-    return (m_rStream.read(pbuffer, n));
+-} 
+-
+-sal_Int32 OStream::read(IPositionableStream::Offset offset, 
+-				      void* pbuffer, sal_uInt32 n) const
+-{
+-    return (seekTo(offset) ? read(pbuffer, n) : -1);
+-}
+-
+-sal_Int32 OStream::write(const void* pbuffer, sal_uInt32 n)
+-{
+-	return
+-        n <= static_cast< sal_uInt32 >(std::numeric_limits< sal_Int32 >::max())
+-        && (m_rStream.write(pbuffer, n) == static_cast< sal_Int32 >(n));
+-}
+-
+-sal_Int32 OStream::write(IPositionableStream::Offset offset, 
+-					   const void* pbuffer, sal_uInt32 n)
+-{
+-    return (seekTo(offset) && write(pbuffer, n));
+-}
+-
+-sal_Bool OStream::append(void* pbuffer, sal_uInt32 n)
+-{
+-    return (seekToEnd() && write(pbuffer, n));
+-}
+-
+-sal_Bool OStream::seekTo(IPositionableStream::Offset pos) const
+-{
+-    return (m_rStream.seekTo(pos));
+-}
+-
+-sal_Bool OStream::seekToEnd() const 
+-{
+-    return (m_rStream.seekToEnd());
+-}
+-
+-sal_Bool OStream::seekRelative(sal_Int32 change) const
+-{
+-    return (m_rStream.seekRelative(change));
+-}
+-
+-sal_Bool OStream::changeSize(sal_uInt32 new_size)
+-{
+-	return (m_rStream.changeSize(new_size));
+-}
+-
+-sal_uInt32 OStream::getSize() const
+-{
+-	return (m_rStream.getSize());
+-}
+-
+-sal_Bool OStream::isEof() const
+-{
+-	return (m_rStream.isEof());
+-}
+-
+-IPositionableStream::Offset OStream::getOffset() const
+-{
+-	return (m_rStream.getOffset());
+-}
+-
+diff --git a/vos/source/timer.cxx b/vos/source/timer.cxx
+deleted file mode 100644
+index ed86c9a..0000000
+--- vos/source/timer.cxx
++++ /dev/null
+@@ -1,511 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: timer.cxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: vg $ $Date: 2006/06/02 12:45:24 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _OSL_TIME_H_
+-#include <osl/time.h>
+-#endif
+-
+-#include <vos/timer.hxx>
+-#include <osl/diagnose.h>
+-#include <vos/ref.hxx>
+-#include <osl/thread.hxx>
+-#include <osl/conditn.hxx>
+-
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// Timer manager
+-//
+-
+-class OTimerManagerCleanup;
+-
+-class vos::OTimerManager : public osl::Thread
+-{
+-    
+-public:
+-
+-    ///
+-  	OTimerManager();
+-    
+-	///
+-  	~OTimerManager();
+-    
+-  	/// register timer
+-    sal_Bool SAL_CALL registerTimer(vos::OTimer* pTimer);
+-
+-  	/// unregister timer
+-    sal_Bool SAL_CALL unregisterTimer(vos::OTimer* pTimer);
+-
+-  	/// lookup timer
+-    sal_Bool SAL_CALL lookupTimer(const vos::OTimer* pTimer);
+-
+-	/// retrieves the "Singleton" TimerManager Instance
+-	static OTimerManager* SAL_CALL getTimerManager();
+-
+-    
+-protected:
+-    
+- 	/// worker-function of thread
+-  	virtual void SAL_CALL run();
+-
+-    // Checking and triggering of a timer event
+-    void SAL_CALL checkForTimeout();
+-
+-    // cleanup Method
+-    virtual void SAL_CALL onTerminated();
+-    
+-  	// sorted-queue data
+-  	vos::OTimer*		m_pHead;
+-    // List Protection
+-    osl::Mutex					m_Lock;
+-    // Signal the insertion of a timer
+-    osl::Condition				m_notEmpty;
+-
+-    // Synchronize access to OTimerManager
+-	static osl::Mutex 			m_Access;
+-
+-    // "Singleton Pattern"
+-    static vos::OTimerManager* m_pManager;
+-
+-    friend class OTimerManagerCleanup;
+-    
+-};
+-
+-using namespace vos;
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// Timer class
+-//
+-
+-VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OTimer, vos),
+-                        VOS_NAMESPACE(OTimer, vos),
+-                        VOS_NAMESPACE(OObject, vos), 0);
+-
+-OTimer::OTimer()
+-{
+-	m_TimeOut	  = 0;
+-	m_Expired     = 0;
+-	m_RepeatDelta = 0;
+-  	m_pNext       = 0;
+-}
+-
+-OTimer::OTimer(const TTimeValue& Time)
+-{
+-	m_TimeOut	  = Time;
+-	m_RepeatDelta = 0;
+-	m_Expired     = 0;
+-  	m_pNext       = 0;
+-
+-	m_TimeOut.normalize();
+-}
+-
+-OTimer::OTimer(const TTimeValue& Time, const TTimeValue& Repeat)
+-{
+-	m_TimeOut	  = Time;
+-	m_RepeatDelta = Repeat;
+-	m_Expired     = 0;
+-  	m_pNext       = 0;
+-
+-	m_TimeOut.normalize();
+-	m_RepeatDelta.normalize();
+-}
+-
+-OTimer::~OTimer()
+-{
+-    stop();
+-}
+-
+-void OTimer::start()
+-{
+-	if (! isTicking())
+-	{
+-		if (! m_TimeOut.isEmpty())
+-			setRemainingTime(m_TimeOut);
+-
+-		OTimerManager *pManager = OTimerManager::getTimerManager();
+-
+-		OSL_ASSERT(pManager);
+-
+-		if ( pManager != 0 )
+-		{
+-			pManager->registerTimer(this);
+-		}
+-	}
+-}
+-
+-void OTimer::stop()
+-{
+-	OTimerManager *pManager = OTimerManager::getTimerManager();
+-
+-	OSL_ASSERT(pManager);
+-
+-	if ( pManager != 0 )
+-	{
+-		pManager->unregisterTimer(this);
+-	}
+-}
+-
+-sal_Bool OTimer::isTicking() const
+-{
+-	OTimerManager *pManager = OTimerManager::getTimerManager();
+-
+-	OSL_ASSERT(pManager);
+-
+-	if (pManager)
+-		return pManager->lookupTimer(this);
+-	else
+-		return sal_False;
+-
+-}
+-
+-sal_Bool OTimer::isExpired() const
+-{
+-	TTimeValue Now;
+-
+-	osl_getSystemTime(&Now);
+-
+-	return !(Now < m_Expired);
+-}
+-
+-sal_Bool OTimer::expiresBefore(const OTimer* pTimer) const
+-{
+-	OSL_ASSERT(pTimer);
+-
+-	if ( pTimer != 0 )
+-	{
+-		return m_Expired < pTimer->m_Expired;
+-	}
+-	else
+-	{
+-		return sal_False;
+-	}
+-}
+-
+-void OTimer::setAbsoluteTime(const TTimeValue& Time)
+-{
+-	m_TimeOut     = 0;
+-	m_Expired     = Time;
+-	m_RepeatDelta = 0;
+-
+-	m_Expired.normalize();
+-}
+-
+-void OTimer::setRemainingTime(const TTimeValue& Remaining)
+-{
+-	osl_getSystemTime(&m_Expired);
+-
+-	m_Expired.addTime(Remaining);
+-}
+-
+-void OTimer::setRemainingTime(const TTimeValue& Remaining, const TTimeValue& Repeat)
+-{
+-	osl_getSystemTime(&m_Expired);
+-
+-	m_Expired.addTime(Remaining);
+-
+-	m_RepeatDelta = Repeat;
+-}
+-
+-void OTimer::addTime(const TTimeValue& Delta)
+-{
+-	m_Expired.addTime(Delta);
+-}
+-
+-TTimeValue OTimer::getRemainingTime() const
+-{
+-	TTimeValue Now;
+-
+-	osl_getSystemTime(&Now);
+-
+-	sal_Int32 secs = m_Expired.Seconds - Now.Seconds;
+-
+-	if (secs < 0)
+-		return TTimeValue(0, 0);
+-
+-	sal_Int32 nsecs = m_Expired.Nanosec - Now.Nanosec;
+-
+-	if (nsecs < 0)
+-	{
+-		if (secs > 0)
+-		{
+-			secs  -= 1;
+-			nsecs += 1000000000L;
+-		}
+-		else
+-			return TTimeValue(0, 0);
+-	}
+-
+-	return TTimeValue(secs, nsecs);
+-}
+-
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// Timer manager
+-//
+-
+-osl::Mutex vos::OTimerManager::m_Access;
+-OTimerManager* vos::OTimerManager::m_pManager=0;
+-
+-OTimerManager::OTimerManager()
+-{
+-	osl::MutexGuard Guard(&m_Access);
+-
+-	OSL_ASSERT(m_pManager == 0);
+-
+-	m_pManager = this;
+-
+-	m_pHead= 0;
+-
+-	m_notEmpty.reset();
+-
+-	// start thread
+-	create();
+-}
+-
+-OTimerManager::~OTimerManager()
+-{
+-	osl::MutexGuard Guard(&m_Access);
+-
+-	if ( m_pManager == this )
+-		m_pManager = 0;
+-}
+-
+-void OTimerManager::onTerminated()
+-{
+-    delete this; // mfe: AAARRRGGGHHH!!!
+-}
+-    
+-OTimerManager* OTimerManager::getTimerManager()
+-{    
+-	osl::MutexGuard Guard(&m_Access); 
+-	
+-	if (! m_pManager)
+-		new OTimerManager;
+-
+-	return (m_pManager);
+-}	
+-
+-sal_Bool OTimerManager::registerTimer(OTimer* pTimer)
+-{
+-	OSL_ASSERT(pTimer);
+-
+-	if ( pTimer == 0 )
+-	{
+-		return sal_False;
+-	}
+-	
+-	osl::MutexGuard Guard(&m_Lock);
+-
+-	// try to find one with equal or lower remaining time.
+-	OTimer** ppIter = &m_pHead;
+-	
+-	while (*ppIter) 
+-	{
+-		if (pTimer->expiresBefore(*ppIter))
+-		{	
+-			// next element has higher remaining time, 
+-			// => insert new timer before
+-			break;
+-		}
+-		ppIter= &((*ppIter)->m_pNext);
+-	} 
+-  
+-	// next element has higher remaining time, 
+-	// => insert new timer before
+-	pTimer->m_pNext= *ppIter;
+-	*ppIter = pTimer;
+-    
+-
+-	if (pTimer == m_pHead)
+-	{
+-		// it was inserted as new head
+-		// signal it to TimerManager Thread
+-        m_notEmpty.set();
+-	}
+-
+-	return sal_True;
+-}
+-
+-sal_Bool OTimerManager::unregisterTimer(OTimer* pTimer)
+-{
+-	OSL_ASSERT(pTimer);
+-
+-	if ( pTimer == 0 )
+-	{
+-		return sal_False;
+-	}
+-	
+-	// lock access
+-	osl::MutexGuard Guard(&m_Lock);
+-
+-	OTimer** ppIter = &m_pHead;
+-
+-	while (*ppIter) 
+-	{
+-		if (pTimer == (*ppIter))
+-		{	
+-			// remove timer from list
+-			*ppIter = (*ppIter)->m_pNext;
+-			return sal_True;
+-		}
+-		ppIter= &((*ppIter)->m_pNext);
+-	} 
+-
+-	return sal_False;
+-}
+-
+-sal_Bool OTimerManager::lookupTimer(const OTimer* pTimer) 
+-{
+-	OSL_ASSERT(pTimer);
+-
+-	if ( pTimer == 0 )
+-	{
+-		return sal_False;
+-	}
+-	
+-	// lock access
+-	osl::MutexGuard Guard(&m_Lock);
+-
+-	// check the list
+-	for (OTimer* pIter = m_pHead; pIter != 0; pIter= pIter->m_pNext)
+-	{
+-		if (pIter == pTimer)
+-        {    
+-			return sal_True;
+-        }
+-	}
+-
+-	return sal_False;
+-}
+-
+-void OTimerManager::checkForTimeout()
+-{
+-
+-    m_Lock.acquire();
+-
+-	if ( m_pHead == 0 )
+-	{
+-        m_Lock.release();        
+-		return;
+-	}
+-
+-	OTimer* pTimer = m_pHead;
+-
+-	if (pTimer->isExpired())
+-	{
+-		// remove expired timer
+-		m_pHead = pTimer->m_pNext;
+-
+-        pTimer->acquire();
+-        
+-		m_Lock.release();
+-		
+-		pTimer->onShot();
+-
+-		// restart timer if specified
+-		if ( ! pTimer->m_RepeatDelta.isEmpty() )
+-		{
+-			TTimeValue Now;
+-
+-			osl_getSystemTime(&Now);
+-
+-			Now.Seconds += pTimer->m_RepeatDelta.Seconds;				
+-			Now.Nanosec += pTimer->m_RepeatDelta.Nanosec;				
+-
+-			pTimer->m_Expired = Now;
+-
+-			registerTimer(pTimer);
+-		}
+-        pTimer->release();
+-	}
+-	else
+-	{
+-		m_Lock.release();
+-	}
+-
+-
+-	return;
+-}
+-
+-void OTimerManager::run() 
+-{
+-	setPriority(osl_Thread_PriorityBelowNormal);
+-
+-	while (schedule())
+-	{
+-		TTimeValue		delay;
+-		TTimeValue*		pDelay=0;
+-
+-        
+-		m_Lock.acquire();
+-
+-		if (m_pHead != 0)
+-        {
+-			delay = m_pHead->getRemainingTime();
+-            pDelay=&delay;
+-        }
+-        else
+-        {
+-            pDelay=0;
+-        }
+-        
+-        
+-        m_notEmpty.reset();
+-
+-        m_Lock.release();
+-
+-        
+-        m_notEmpty.wait(pDelay);
+-
+-        checkForTimeout();
+-  	}
+-
+-}
+-
+-
+-/////////////////////////////////////////////////////////////////////////////
+-//
+-// Timer manager cleanup
+-//
+-
+-// jbu:
+-// The timer manager cleanup has been removed (no thread is killed anymore).
+-// So the thread leaks.
+-// This will result in a GPF in case the vos-library gets unloaded before
+-// process termination.
+-// -> TODO : rewrite this file, so that the timerManager thread gets destroyed,
+-//           when there are no timers anymore !
+diff --git a/vos/util/defs/wntmsci10 b/vos/util/defs/wntmsci10
+deleted file mode 100644
+index e104614..0000000
+--- vos/util/defs/wntmsci10
++++ /dev/null
+@@ -1,1002 +0,0 @@
+-??1OBaseException@vos@@UAE@XZ
+-??_7OBaseException@vos@@6B@
+-??_GOBaseException@vos@@UAEPAXI@Z
+-??_R0?AVOBaseException@vos@@@8
+-??_R0?AVOObject@vos@@@8
+-??_R1A@?0A@A@OBaseException@vos@@8
+-??_R1A@?0A@A@OObject@vos@@8
+-??_R2OBaseException@vos@@8
+-??_R3OBaseException@vos@@8
+-??_R4OBaseException@vos@@6B@
+-?classInfo@OBaseException@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OBaseException@vos@@UBAABUOClassInfo@2@XZ
+-??0?$ORefObj@PAUoslPipeImpl@@@vos@@QAE@ABQAUoslPipeImpl@@@Z
+-??0IReference@vos@@QAE@XZ
+-??0IStream@vos@@QAE@XZ
+-??0OPipe@vos@@QAE@ABV01@@Z
+-??0OPipe@vos@@QAE@ABVOUString@rtl@@W4TPipeOption@01@@Z
+-??0OPipe@vos@@QAE@ABVOUString@rtl@@W4TPipeOption@01@ABVOSecurity@1@@Z
+-??0OPipe@vos@@QAE@PAUoslPipeImpl@@@Z
+-??0OPipe@vos@@QAE@XZ
+-??0ORefCount@vos@@QAE@XZ
+-??0OStreamPipe@vos@@QAE@ABV01@@Z
+-??0OStreamPipe@vos@@QAE@PAUoslPipeImpl@@@Z
+-??0OStreamPipe@vos@@QAE@XZ
+-??1?$ORefObj@PAUoslPipeImpl@@@vos@@UAE@XZ
+-??1IReference@vos@@UAE@XZ
+-??1IStream@vos@@UAE@XZ
+-??1OPipe@vos@@UAE@XZ
+-??1OStreamPipe@vos@@UAE@XZ
+-??4OPipe@vos@@QAAAAV01@ABV01@@Z
+-??4OStreamPipe@vos@@QAAAAV01@ABVOPipe@1@@Z
+-??4OStreamPipe@vos@@QAAAAV01@PAUoslPipeImpl@@@Z
+-??BOPipe@vos@@QBAPAUoslPipeImpl@@XZ
+-??R?$ORefObj@PAUoslPipeImpl@@@vos@@QAAAAPAUoslPipeImpl@@XZ
+-??_7?$ORefObj@PAUoslPipeImpl@@@vos@@6B@
+-??_7IReference@vos@@6B@
+-??_7IStream@vos@@6B@
+-??_7OPipe@vos@@6BOObject@1@@
+-??_7OPipe@vos@@6BOReference@1@@
+-??_7ORefCount@vos@@6B@
+-??_7OStreamPipe@vos@@6B@
+-??_7OStreamPipe@vos@@6BOObject@1@@
+-??_7OStreamPipe@vos@@6BOReference@1@@
+-??_C@_0BG@HAAHOABC@?4?4?2inc?2vos?1refobj?4inl?$AA@
+-??_EOPipe@vos@@WM@AEPAXI@Z
+-??_EOStreamPipe@vos@@WBE@AEPAXI@Z
+-??_EOStreamPipe@vos@@WM@AEPAXI@Z
+-??_G?$ORefObj@PAUoslPipeImpl@@@vos@@UAEPAXI@Z
+-??_GIReference@vos@@UAEPAXI@Z
+-??_GIStream@vos@@UAEPAXI@Z
+-??_GOPipe@vos@@UAEPAXI@Z
+-??_GORefCount@vos@@UAEPAXI@Z
+-??_GOStreamPipe@vos@@UAEPAXI@Z
+-??_R0?AV?$ORefObj@PAUoslPipeImpl@@@vos@@@8
+-??_R0?AVIReference@vos@@@8
+-??_R0?AVIStream@vos@@@8
+-??_R0?AVOPipe@vos@@@8
+-??_R0?AVORefCount@vos@@@8
+-??_R0?AVOReference@vos@@@8
+-??_R0?AVOStreamPipe@vos@@@8
+-??_R1A@?0A@A@?$ORefObj@PAUoslPipeImpl@@@vos@@8
+-??_R1A@?0A@A@IReference@vos@@8
+-??_R1A@?0A@A@IStream@vos@@8
+-??_R1A@?0A@A@OPipe@vos@@8
+-??_R1A@?0A@A@ORefCount@vos@@8
+-??_R1A@?0A@A@OReference@vos@@8
+-??_R1A@?0A@A@OStreamPipe@vos@@8
+-??_R1BE@?0A@A@IStream@vos@@8
+-??_R1M@?0A@A@OObject@vos@@8
+-??_R2?$ORefObj@PAUoslPipeImpl@@@vos@@8
+-??_R2IReference@vos@@8
+-??_R2IStream@vos@@8
+-??_R2OPipe@vos@@8
+-??_R2ORefCount@vos@@8
+-??_R2OStreamPipe@vos@@8
+-??_R3?$ORefObj@PAUoslPipeImpl@@@vos@@8
+-??_R3IReference@vos@@8
+-??_R3IStream@vos@@8
+-??_R3OPipe@vos@@8
+-??_R3ORefCount@vos@@8
+-??_R3OStreamPipe@vos@@8
+-??_R4?$ORefObj@PAUoslPipeImpl@@@vos@@6B@
+-??_R4IReference@vos@@6B@
+-??_R4IStream@vos@@6B@
+-??_R4OPipe@vos@@6BOObject@1@@
+-??_R4OPipe@vos@@6BOReference@1@@
+-??_R4ORefCount@vos@@6B@
+-??_R4OStreamPipe@vos@@6B@
+-??_R4OStreamPipe@vos@@6BOObject@1@@
+-??_R4OStreamPipe@vos@@6BOReference@1@@
+-?accept@OPipe@vos@@QAA?AW4TPipeError@12@AAVOStreamPipe@2@@Z
+-?acquire@?$ORefObj@PAUoslPipeImpl@@@vos@@UAAJXZ
+-?acquire@ORefCount@vos@@QAAJXZ
+-?classInfo@OPipe@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OStreamPipe@vos@@SAABUOClassInfo@2@XZ
+-?close@OPipe@vos@@UAAXXZ
+-?create@OPipe@vos@@QAAEABVOUString@rtl@@W4TPipeOption@12@@Z
+-?create@OPipe@vos@@QAAEABVOUString@rtl@@W4TPipeOption@12@ABVOSecurity@2@@Z
+-?getClassInfo@OPipe@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OStreamPipe@vos@@UBAABUOClassInfo@2@XZ
+-?getError@OPipe@vos@@QBA?AW4TPipeError@12@XZ
+-?isEof@OStreamPipe@vos@@UBAEXZ
+-?isValid@OPipe@vos@@QBAEXZ
+-?read@OStreamPipe@vos@@UBAJPAXK@Z
+-?recv@OPipe@vos@@QAAJPAXK@Z
+-?referenced@?$ORefObj@PAUoslPipeImpl@@@vos@@UBAJXZ
+-?referenced@OReference@vos@@UBAJXZ
+-?release@?$ORefObj@PAUoslPipeImpl@@@vos@@UAAJXZ
+-?send@OPipe@vos@@QAAJPBXK@Z
+-?write@OStreamPipe@vos@@UAAJPBXK@Z
+-??0OSignalHandler@vos@@QAE@XZ
+-??1OSignalHandler@vos@@UAE@XZ
+-??_7OSignalHandler@vos@@6B@
+-??_GOSignalHandler@vos@@UAEPAXI@Z
+-??_R0?AVOSignalHandler@vos@@@8
+-??_R1A@?0A@A@OSignalHandler@vos@@8
+-??_R2OSignalHandler@vos@@8
+-??_R3OSignalHandler@vos@@8
+-??_R4OSignalHandler@vos@@6B@
+-?classInfo@OSignalHandler@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OSignalHandler@vos@@UBAABUOClassInfo@2@XZ
+-?raise@OSignalHandler@vos@@SA?AW4TSignalAction@12@JPAX@Z
+-??0OSecurity@vos@@QAE@XZ
+-??1OSecurity@vos@@UAE@XZ
+-??BOSecurity@vos@@UBAPAXXZ
+-??_7OSecurity@vos@@6B@
+-??_GOSecurity@vos@@UAEPAXI@Z
+-??_R0?AVOSecurity@vos@@@8
+-??_R1A@?0A@A@OSecurity@vos@@8
+-??_R2OSecurity@vos@@8
+-??_R3OSecurity@vos@@8
+-??_R4OSecurity@vos@@6B@
+-?classInfo@OSecurity@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OSecurity@vos@@UBAABUOClassInfo@2@XZ
+-?getConfigDir@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?getHomeDir@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?getUserIdent@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?getUserName@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?isAdministrator@OSecurity@vos@@QBAEXZ
+-?logonUser@OSecurity@vos@@QAAEABVOUString@rtl@@00@Z
+-?logonUser@OSecurity@vos@@QAAEABVOUString@rtl@@0@Z
+-??$_Construct@VOUString@rtl@@V12@@_STL@@YAXPAVOUString@rtl@@ABV12@@Z
+-??$_Destroy@PAVOUString@rtl@@@_STL@@YAXPAVOUString@rtl@@0@Z
+-??$_Destroy@VOUString@rtl@@@_STL@@YAXPAVOUString@rtl@@@Z
+-??$max@I@_STL@@YAABIABI0@Z
+-??$value_type@VOUString@rtl@@@_STL@@YAPAVOUString@rtl@@PBV12@@Z
+-??0?$Guard@VMutex@osl@@@osl@@QAE@PAVMutex@1@@Z
+-??0ByteSequence@rtl@@QAE@XZ
+-??0File@osl@@QAE@ABVOUString@rtl@@@Z
+-??0OArgumentList@vos@@QAA@KPBVOUString@rtl@@ZZ
+-??0OArgumentList@vos@@QAE@ABV01@@Z
+-??0OArgumentList@vos@@QAE@QBVOUString@rtl@@K@Z
+-??0OArgumentList@vos@@QAE@XZ
+-??0OEnvironment@vos@@QAA@KPBVOUString@rtl@@ZZ
+-??0OEnvironment@vos@@QAE@ABV01@@Z
+-??0OEnvironment@vos@@QAE@QBVOUString@rtl@@K@Z
+-??0OEnvironment@vos@@QAE@XZ
+-??0OExtCommandLine@vos@@QAE@XZ
+-??0OExtCommandLineImpl@vos@@QAE@XZ
+-??0OGuard@vos@@QAE@AAVIMutex@1@@Z
+-??0OProcess@vos@@QAE@ABVOUString@rtl@@0@Z
+-??0OProcess@vos@@QAE@ABVOUString@rtl@@@Z
+-??0OProcess@vos@@QAE@XZ
+-??0OStartupInfo@vos@@QAE@XZ
+-??0OUString@rtl@@AAE@PAU_rtl_uString@@PAVDO_NOT_ACQUIRE@01@@Z
+-??0OUString@rtl@@QAE@ABV01@@Z
+-??0OUString@rtl@@QAE@PBDJGK@Z
+-??0OUString@rtl@@QAE@XZ
+-??1?$Guard@VMutex@osl@@@osl@@QAE@XZ
+-??1ByteSequence@rtl@@QAE@XZ
+-??1File@osl@@QAE@XZ
+-??1OArgumentList@vos@@UAE@XZ
+-??1OEnvironment@vos@@UAE@XZ
+-??1OExtCommandLine@vos@@UAE@XZ
+-??1OExtCommandLineImpl@vos@@QAE@XZ
+-??1OGuard@vos@@UAE@XZ
+-??1OProcess@vos@@UAE@XZ
+-??1OStartupInfo@vos@@UAE@XZ
+-??1OUString@rtl@@QAE@XZ
+-??2@YAPAXIPAX@Z
+-??4OArgumentList@vos@@QAEAAV01@ABV01@@Z
+-??4OEnvironment@vos@@QAEAAV01@ABV01@@Z
+-??4OUString@rtl@@QAEAAV01@ABV01@@Z
+-??BOUString@rtl@@QBEPBGXZ
+-??RGetGlobalMutex@osl@@QAEPAVMutex@1@XZ
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_7OArgumentList@vos@@6B@
+-??_7OEnvironment@vos@@6B@
+-??_7OExtCommandLine@vos@@6B@
+-??_7OGuard@vos@@6B@
+-??_7OProcess@vos@@6B@
+-??_7OStartupInfo@vos@@6B@
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-??_C@_0CI@ENLKGLAJ@o?3?2SRC680?2wntmsci10?2inc?2rtl?1ustr@
+-??_GOArgumentList@vos@@UAEPAXI@Z
+-??_GOEnvironment@vos@@UAEPAXI@Z
+-??_GOExtCommandLine@vos@@UAEPAXI@Z
+-??_GOGuard@vos@@UAEPAXI@Z
+-??_GOProcess@vos@@UAEPAXI@Z
+-??_GOStartupInfo@vos@@UAEPAXI@Z
+-??_GOUString@rtl@@QAEPAXI@Z
+-??_R0?AVOArgumentList@vos@@@8
+-??_R0?AVOEnvironment@vos@@@8
+-??_R0?AVOExtCommandLine@vos@@@8
+-??_R0?AVOGuard@vos@@@8
+-??_R0?AVOProcess@vos@@@8
+-??_R0?AVOStartupInfo@vos@@@8
+-??_R1A@?0A@A@OArgumentList@vos@@8
+-??_R1A@?0A@A@OEnvironment@vos@@8
+-??_R1A@?0A@A@OExtCommandLine@vos@@8
+-??_R1A@?0A@A@OGuard@vos@@8
+-??_R1A@?0A@A@OProcess@vos@@8
+-??_R1A@?0A@A@OStartupInfo@vos@@8
+-??_R2OArgumentList@vos@@8
+-??_R2OEnvironment@vos@@8
+-??_R2OExtCommandLine@vos@@8
+-??_R2OGuard@vos@@8
+-??_R2OProcess@vos@@8
+-??_R2OStartupInfo@vos@@8
+-??_R3OArgumentList@vos@@8
+-??_R3OEnvironment@vos@@8
+-??_R3OExtCommandLine@vos@@8
+-??_R3OGuard@vos@@8
+-??_R3OProcess@vos@@8
+-??_R3OStartupInfo@vos@@8
+-??_R4OArgumentList@vos@@6B@
+-??_R4OEnvironment@vos@@6B@
+-??_R4OExtCommandLine@vos@@6B@
+-??_R4OGuard@vos@@6B@
+-??_R4OProcess@vos@@6B@
+-??_R4OStartupInfo@vos@@6B@
+-?acquire@Mutex@osl@@QAEEXZ
+-?classInfo@OExtCommandLine@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OProcess@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OStartupInfo@vos@@SAABUOClassInfo@2@XZ
+-?close@File@osl@@QAE?AW4RC@FileBase@2@XZ
+-?copy@OUString@rtl@@QBE?AV12@J@Z
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xea688bfb@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?execute@OProcess@vos@@QAA?AW4TProcessError@12@W4TProcessOption@12@ABVOArgumentList@2@ABVOEnvironment@2@@Z
+-?execute@OProcess@vos@@QAA?AW4TProcessError@12@W4TProcessOption@12@ABVOSecurity@2@ABVOArgumentList@2@ABVOEnvironment@2@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@SAAAVOMutex@vos@@XZ
+-?getArray@ByteSequence@rtl@@QAAPACXZ
+-?getClassInfo@OExtCommandLine@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OProcess@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OStartupInfo@vos@@UBAABUOClassInfo@2@XZ
+-?getCommandArg@OExtCommandLine@vos@@QAAEKAAVOUString@rtl@@@Z
+-?getCommandArg@OExtCommandLineImpl@vos@@QAAEKAAVOUString@rtl@@@Z
+-?getCommandArg@OStartupInfo@vos@@QAA?AW4TStartupError@12@KAAVOUString@rtl@@@Z
+-?getCommandArgCount@OExtCommandLine@vos@@QAAKXZ
+-?getCommandArgCount@OExtCommandLineImpl@vos@@QAAKXZ
+-?getCommandArgCount@OStartupInfo@vos@@QAAKXZ
+-?getCurrentInfo@OProcess@vos@@SA?AW4TProcessError@12@W4TProcessData@12@PAUTProcessInfo@12@@Z
+-?getEnvironment@OStartupInfo@vos@@QAA?AW4TStartupError@12@ABVOUString@rtl@@AAV45@@Z
+-?getExecutableFile@OStartupInfo@vos@@QAA?AW4TStartupError@12@AAVOUString@rtl@@@Z
+-?getGlobalMutex@Mutex@osl@@SAPAV12@XZ
+-?getInfo@OProcess@vos@@QBA?AW4TProcessError@12@W4TProcessData@12@PAUTProcessInfo@12@@Z
+-?getLength@ByteSequence@rtl@@QBAJXZ
+-?getLength@OUString@rtl@@QBEJXZ
+-?getProcess@OProcess@vos@@SAPAV12@K@Z
+-?init@OExtCommandLineImpl@vos@@AAEXXZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?join@OProcess@vos@@QAA?AW4TProcessError@12@XZ
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xea688bfb@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xea688bfb@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-?open@File@osl@@QAE?AW4RC@FileBase@2@K@Z
+-?pExtImpl@OExtCommandLine@vos@@2PAVOExtCommandLineImpl@2@A
+-?readLine@File@osl@@QAE?AW4RC@FileBase@2@AAVByteSequence@rtl@@@Z
+-?release@Mutex@osl@@QAEEXZ
+-?remove@File@osl@@SA?AW4RC@FileBase@2@ABVOUString@rtl@@@Z
+-?terminate@OProcess@vos@@QAA?AW4TProcessError@12@XZ
+-??0OGuard@vos@@QAE@PAVIMutex@1@@Z
+-??0OTimer@vos@@QAE@ABUTTimeValue@1@0@Z
+-??0OTimer@vos@@QAE@ABUTTimeValue@1@@Z
+-??0OTimer@vos@@QAE@XZ
+-??0OTimerManager@vos@@QAE@XZ
+-??0TTimeValue@vos@@QAE@K@Z
+-??0TTimeValue@vos@@QAE@KK@Z
+-??0TTimeValue@vos@@QAE@XZ
+-??1OTimer@vos@@MAE@XZ
+-??1OTimerManager@vos@@UAE@XZ
+-??Mvos@@YAEABUTTimeValue@0@0@Z
+-??_7OTimer@vos@@6B01@@
+-??_7OTimer@vos@@6BOObject@1@@
+-??_7OTimer@vos@@6BOReference@1@@
+-??_7OTimerManager@vos@@6BIRunnable@1@@
+-??_7OTimerManager@vos@@6BOObject@1@@
+-??_8OTimer@vos@@7B@
+-??_DOTimer@vos@@IAEXXZ
+-??_EOTimer@vos@@$2PPPPPPPM@BA@AEPAXI@Z
+-??_EOTimerManager@vos@@W3AEPAXI@Z
+-??_GOTimer@vos@@MAEPAXI@Z
+-??_GOTimerManager@vos@@UAEPAXI@Z
+-??_R0?AVIRunnable@vos@@@8
+-??_R0?AVOThread@vos@@@8
+-??_R0?AVOTimer@vos@@@8
+-??_R0?AVOTimerManager@vos@@@8
+-??_R13?0A@A@OObject@vos@@8
+-??_R1A@33A@IReference@vos@@8
+-??_R1A@33BA@OReference@vos@@8
+-??_R1A@37BA@OObject@vos@@8
+-??_R1A@?0A@A@IRunnable@vos@@8
+-??_R1A@?0A@A@OThread@vos@@8
+-??_R1A@?0A@A@OTimer@vos@@8
+-??_R1A@?0A@A@OTimerManager@vos@@8
+-??_R2OTimer@vos@@8
+-??_R2OTimerManager@vos@@8
+-??_R3OTimer@vos@@8
+-??_R3OTimerManager@vos@@8
+-??_R4OTimer@vos@@6B01@@
+-??_R4OTimer@vos@@6BOObject@1@@
+-??_R4OTimer@vos@@6BOReference@1@@
+-??_R4OTimerManager@vos@@6BIRunnable@1@@
+-??_R4OTimerManager@vos@@6BOObject@1@@
+-?addTime@OTimer@vos@@QAAXABUTTimeValue@2@@Z
+-?addTime@TTimeValue@vos@@QAAXABU12@@Z
+-?checkForTimeout@OTimerManager@vos@@IAAXXZ
+-?classInfo@OTimer@vos@@SAABUOClassInfo@2@XZ
+-?expiresBefore@OTimer@vos@@QBAEPBV12@@Z
+-?getClassInfo@OTimer@vos@@$4PPPPPPPM@A@BAABUOClassInfo@2@XZ
+-?getClassInfo@OTimer@vos@@UBAABUOClassInfo@2@XZ
+-?getRemainingTime@OTimer@vos@@QBA?AUTTimeValue@2@XZ
+-?getTimerManager@OTimerManager@vos@@SAPAV12@XZ
+-?isEmpty@TTimeValue@vos@@QBAEXZ
+-?isExpired@OTimer@vos@@QBAEXZ
+-?isTicking@OTimer@vos@@QBAEXZ
+-?lookupTimer@OTimerManager@vos@@QAAEPBVOTimer@2@@Z
+-?m_Access@OTimerManager@vos@@1VOMutex@2@A
+-?m_pManager@OTimerManager@vos@@1PAV12@A
+-?normalize@TTimeValue@vos@@QAAXXZ
+-?onTerminated@OTimerManager@vos@@MAAXXZ
+-?registerTimer@OTimerManager@vos@@QAAEPAVOTimer@2@@Z
+-?run@OTimerManager@vos@@MAAXXZ
+-?setAbsoluteTime@OTimer@vos@@QAAXABUTTimeValue@2@@Z
+-?setRemainingTime@OTimer@vos@@QAAXABUTTimeValue@2@0@Z
+-?setRemainingTime@OTimer@vos@@QAAXABUTTimeValue@2@@Z
+-?start@OTimer@vos@@QAAXXZ
+-?stop@OTimer@vos@@QAAXXZ
+-?unregisterTimer@OTimerManager@vos@@QAAEPAVOTimer@2@@Z
+-??0OModule@vos@@QAE@ABVOUString@rtl@@J@Z
+-??0OModule@vos@@QAE@XZ
+-??1OModule@vos@@UAE@XZ
+-??_7OModule@vos@@6B@
+-??_GOModule@vos@@UAEPAXI@Z
+-??_R0?AVOModule@vos@@@8
+-??_R1A@?0A@A@OModule@vos@@8
+-??_R2OModule@vos@@8
+-??_R3OModule@vos@@8
+-??_R4OModule@vos@@6B@
+-?classInfo@OModule@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OModule@vos@@UBAABUOClassInfo@2@XZ
+-?getSymbol@OModule@vos@@QAAPAXABVOUString@rtl@@@Z
+-?isLoaded@OModule@vos@@QAAEXZ
+-?load@OModule@vos@@QAAEABVOUString@rtl@@J@Z
+-?unload@OModule@vos@@QAAXXZ
+-??0IPositionableStream@vos@@IAE@XZ
+-??0OStream@vos@@QAE@AAVIPositionableStream@1@@Z
+-??1IPositionableStream@vos@@MAE@XZ
+-??1OStream@vos@@UAE@XZ
+-??_7IPositionableStream@vos@@6B@
+-??_7OStream@vos@@6BIPositionableStream@1@@
+-??_7OStream@vos@@6BOObject@1@@
+-??_EOStream@vos@@W3AEPAXI@Z
+-??_GIPositionableStream@vos@@MAEPAXI@Z
+-??_GOStream@vos@@UAEPAXI@Z
+-??_R0?AVIPositionableStream@vos@@@8
+-??_R0?AVOStream@vos@@@8
+-??_R13?0A@A@IPositionableStream@vos@@8
+-??_R13?0A@A@IStream@vos@@8
+-??_R1A@?0A@A@IPositionableStream@vos@@8
+-??_R1A@?0A@A@OStream@vos@@8
+-??_R2IPositionableStream@vos@@8
+-??_R2OStream@vos@@8
+-??_R3IPositionableStream@vos@@8
+-??_R3OStream@vos@@8
+-??_R4IPositionableStream@vos@@6B@
+-??_R4OStream@vos@@6BIPositionableStream@1@@
+-??_R4OStream@vos@@6BOObject@1@@
+-?append@OStream@vos@@QAAEPAXK@Z
+-?changeSize@OStream@vos@@UAAEK@Z
+-?classInfo@OStream@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OStream@vos@@UBAABUOClassInfo@2@XZ
+-?getOffset@OStream@vos@@UBAJXZ
+-?getSize@OStream@vos@@UBAKXZ
+-?isEof@OStream@vos@@UBAEXZ
+-?read@OStream@vos@@QBAJJPAXK@Z
+-?read@OStream@vos@@UBAJPAXK@Z
+-?seekRelative@OStream@vos@@UBAEJ@Z
+-?seekTo@OStream@vos@@UBAEJ@Z
+-?seekToEnd@OStream@vos@@UBAEXZ
+-?write@OStream@vos@@QAAJJPBXK@Z
+-?write@OStream@vos@@UAAJPBXK@Z
+-??0IRunnable@vos@@QAE@XZ
+-??0OThread@vos@@QAE@XZ
+-??0OThreadData@vos@@QAE@P6AXPAX@Z@Z
+-??1IRunnable@vos@@UAE@XZ
+-??1OThread@vos@@UAE@XZ
+-??1OThreadData@vos@@UAE@XZ
+-??_7IRunnable@vos@@6B@
+-??_7OThread@vos@@6BIRunnable@1@@
+-??_7OThread@vos@@6BOObject@1@@
+-??_7OThreadData@vos@@6B@
+-??_EOThread@vos@@W3AEPAXI@Z
+-??_GIRunnable@vos@@UAEPAXI@Z
+-??_GOThread@vos@@UAEPAXI@Z
+-??_GOThreadData@vos@@UAEPAXI@Z
+-??_R0?AVOThreadData@vos@@@8
+-??_R1A@?0A@A@OThreadData@vos@@8
+-??_R2IRunnable@vos@@8
+-??_R2OThread@vos@@8
+-??_R2OThreadData@vos@@8
+-??_R3IRunnable@vos@@8
+-??_R3OThread@vos@@8
+-??_R3OThreadData@vos@@8
+-??_R4IRunnable@vos@@6B@
+-??_R4OThread@vos@@6BIRunnable@1@@
+-??_R4OThread@vos@@6BOObject@1@@
+-??_R4OThreadData@vos@@6B@
+-?_OThread_WorkerFunction@@YAXPAX@Z
+-?awake@OThread@vos@@QAAEXZ
+-?classInfo@OThread@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OThreadData@vos@@SAABUOClassInfo@2@XZ
+-?create@OThread@vos@@QAAEXZ
+-?createSuspended@OThread@vos@@QAAEXZ
+-?getClassInfo@OThread@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OThreadData@vos@@UBAABUOClassInfo@2@XZ
+-?getCurrentIdentifier@OThread@vos@@SAKXZ
+-?getData@OThreadData@vos@@QAAPAXXZ
+-?getIdentifier@OThread@vos@@QBAKXZ
+-?getPriority@OThread@vos@@QAA?AW4TThreadPriority@12@XZ
+-?isRunning@OThread@vos@@QAAEXZ
+-?join@OThread@vos@@QAAXXZ
+-?kill@OThread@vos@@UAAXXZ
+-?onTerminated@OThread@vos@@MAAXXZ
+-?resume@OThread@vos@@QAAXXZ
+-?schedule@OThread@vos@@MAAEXZ
+-?setData@OThreadData@vos@@QAAEPAX@Z
+-?setPriority@OThread@vos@@QAAXW4TThreadPriority@12@@Z
+-?sleep@OThread@vos@@QAA?AW4TThreadSleep@12@ABUTimeValue@@@Z
+-?suspend@OThread@vos@@QAAXXZ
+-?terminate@OThread@vos@@UAAXXZ
+-?wait@OThread@vos@@SAXABUTimeValue@@@Z
+-?yield@OThread@vos@@SAXXZ
+-??0?$ORefObj@PAUoslSocketImpl@@@vos@@QAE@ABQAUoslSocketImpl@@@Z
+-??0ISocketAddr@vos@@QAE@XZ
+-??0ISocketTypes@vos@@QAE@XZ
+-??0OAcceptorSocket@vos@@QAE@ABV01@@Z
+-??0OAcceptorSocket@vos@@QAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0OConnectorSocket@vos@@QAE@ABV01@@Z
+-??0OConnectorSocket@vos@@QAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0ODatagramSocket@vos@@QAE@ABV01@@Z
+-??0ODatagramSocket@vos@@QAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0OInetSocketAddr@vos@@QAE@ABV01@@Z
+-??0OInetSocketAddr@vos@@QAE@ABVOSocketAddr@1@@Z
+-??0OInetSocketAddr@vos@@QAE@ABVOUString@rtl@@J@Z
+-??0OInetSocketAddr@vos@@QAE@PAUoslSocketAddrImpl@@@Z
+-??0OInetSocketAddr@vos@@QAE@XZ
+-??0OIpxSocketAddr@vos@@QAE@ABV01@@Z
+-??0OIpxSocketAddr@vos@@QAE@ABVOSocketAddr@1@@Z
+-??0OIpxSocketAddr@vos@@QAE@ABVOUString@rtl@@0K@Z
+-??0OIpxSocketAddr@vos@@QAE@PAUoslSocketAddrImpl@@@Z
+-??0OIpxSocketAddr@vos@@QAE@XZ
+-??0OSocket@vos@@QAE@ABV01@@Z
+-??0OSocket@vos@@QAE@PAUoslSocketImpl@@@Z
+-??0OSocket@vos@@QAE@W4TSocketType@ISocketTypes@1@W4TAddrFamily@31@W4TProtocol@31@@Z
+-??0OSocket@vos@@QAE@XZ
+-??0OSocketAddr@vos@@QAE@ABV01@@Z
+-??0OSocketAddr@vos@@QAE@PAUoslSocketAddrImpl@@@Z
+-??0OSocketAddr@vos@@QAE@XZ
+-??0OStreamSocket@vos@@IAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0OStreamSocket@vos@@QAE@ABV01@@Z
+-??0OStreamSocket@vos@@QAE@ABVOSocket@1@@Z
+-??0OStreamSocket@vos@@QAE@PAUoslSocketImpl@@@Z
+-??0OStreamSocket@vos@@QAE@XZ
+-??1?$ORefObj@PAUoslSocketImpl@@@vos@@UAE@XZ
+-??1ISocketAddr@vos@@UAE@XZ
+-??1ISocketTypes@vos@@UAE@XZ
+-??1OAcceptorSocket@vos@@UAE@XZ
+-??1OConnectorSocket@vos@@UAE@XZ
+-??1ODatagramSocket@vos@@UAE@XZ
+-??1OInetSocketAddr@vos@@UAE@XZ
+-??1OIpxSocketAddr@vos@@UAE@XZ
+-??1OSocket@vos@@UAE@XZ
+-??1OSocketAddr@vos@@UAE@XZ
+-??1OStreamSocket@vos@@UAE@XZ
+-??4OInetSocketAddr@vos@@QAAAAV01@ABV01@@Z
+-??4OInetSocketAddr@vos@@QAAAAV01@ABVOSocketAddr@1@@Z
+-??4OInetSocketAddr@vos@@UAAXPAUoslSocketAddrImpl@@@Z
+-??4OIpxSocketAddr@vos@@QAAAAV01@ABV01@@Z
+-??4OIpxSocketAddr@vos@@QAAAAV01@ABVOSocketAddr@1@@Z
+-??4OIpxSocketAddr@vos@@UAAXPAUoslSocketAddrImpl@@@Z
+-??4OSocket@vos@@QAAAAV01@ABV01@@Z
+-??4OSocketAddr@vos@@QAAAAV01@ABV01@@Z
+-??4OSocketAddr@vos@@UAAXPAUoslSocketAddrImpl@@@Z
+-??4OStreamSocket@vos@@QAAAAV01@ABV01@@Z
+-??4OStreamSocket@vos@@QAAAAV01@ABVOSocket@1@@Z
+-??4OStreamSocket@vos@@QAAAAV01@PAUoslSocketImpl@@@Z
+-??8OInetSocketAddr@vos@@UAAEPAUoslSocketAddrImpl@@@Z
+-??8OIpxSocketAddr@vos@@UAAEPAUoslSocketAddrImpl@@@Z
+-??8OSocketAddr@vos@@UAAEPAUoslSocketAddrImpl@@@Z
+-??BOSocket@vos@@QBAPAUoslSocketImpl@@XZ
+-??BOSocketAddr@vos@@UBAPAUoslSocketAddrImpl@@XZ
+-??R?$ORefObj@PAUoslSocketImpl@@@vos@@QAAAAPAUoslSocketImpl@@XZ
+-??_7?$ORefObj@PAUoslSocketImpl@@@vos@@6B@
+-??_7ISocketAddr@vos@@6B@
+-??_7ISocketTypes@vos@@6B@
+-??_7OAcceptorSocket@vos@@6BISocketTypes@1@@
+-??_7OAcceptorSocket@vos@@6BOObject@1@@
+-??_7OAcceptorSocket@vos@@6BOReference@1@@
+-??_7OConnectorSocket@vos@@6B@
+-??_7OConnectorSocket@vos@@6BISocketTypes@1@@
+-??_7OConnectorSocket@vos@@6BOObject@1@@
+-??_7OConnectorSocket@vos@@6BOReference@1@@
+-??_7ODatagramSocket@vos@@6BISocketTypes@1@@
+-??_7ODatagramSocket@vos@@6BOObject@1@@
+-??_7ODatagramSocket@vos@@6BOReference@1@@
+-??_7OInetSocketAddr@vos@@6BISocketAddr@1@@
+-??_7OInetSocketAddr@vos@@6BOObject@1@@
+-??_7OIpxSocketAddr@vos@@6BISocketAddr@1@@
+-??_7OIpxSocketAddr@vos@@6BOObject@1@@
+-??_7OSocket@vos@@6BISocketTypes@1@@
+-??_7OSocket@vos@@6BOObject@1@@
+-??_7OSocket@vos@@6BOReference@1@@
+-??_7OSocketAddr@vos@@6BISocketAddr@1@@
+-??_7OSocketAddr@vos@@6BOObject@1@@
+-??_7OStreamSocket@vos@@6B@
+-??_7OStreamSocket@vos@@6BISocketTypes@1@@
+-??_7OStreamSocket@vos@@6BOObject@1@@
+-??_7OStreamSocket@vos@@6BOReference@1@@
+-??_EOAcceptorSocket@vos@@W3AEPAXI@Z
+-??_EOAcceptorSocket@vos@@WBA@AEPAXI@Z
+-??_EOConnectorSocket@vos@@W3AEPAXI@Z
+-??_EOConnectorSocket@vos@@WBA@AEPAXI@Z
+-??_EOConnectorSocket@vos@@WCA@AEPAXI@Z
+-??_EODatagramSocket@vos@@W3AEPAXI@Z
+-??_EODatagramSocket@vos@@WBA@AEPAXI@Z
+-??_EOInetSocketAddr@vos@@W3AEPAXI@Z
+-??_EOIpxSocketAddr@vos@@W3AEPAXI@Z
+-??_EOSocket@vos@@W3AEPAXI@Z
+-??_EOSocket@vos@@WBA@AEPAXI@Z
+-??_EOSocketAddr@vos@@W3AEPAXI@Z
+-??_EOStreamSocket@vos@@W3AEPAXI@Z
+-??_EOStreamSocket@vos@@WBA@AEPAXI@Z
+-??_EOStreamSocket@vos@@WCA@AEPAXI@Z
+-??_G?$ORefObj@PAUoslSocketImpl@@@vos@@UAEPAXI@Z
+-??_GISocketAddr@vos@@UAEPAXI@Z
+-??_GISocketTypes@vos@@UAEPAXI@Z
+-??_GOAcceptorSocket@vos@@UAEPAXI@Z
+-??_GOConnectorSocket@vos@@UAEPAXI@Z
+-??_GODatagramSocket@vos@@UAEPAXI@Z
+-??_GOInetSocketAddr@vos@@UAEPAXI@Z
+-??_GOIpxSocketAddr@vos@@UAEPAXI@Z
+-??_GOSocket@vos@@UAEPAXI@Z
+-??_GOSocketAddr@vos@@UAEPAXI@Z
+-??_GOStreamSocket@vos@@UAEPAXI@Z
+-??_R0?AV?$ORefObj@PAUoslSocketImpl@@@vos@@@8
+-??_R0?AVISocketAddr@vos@@@8
+-??_R0?AVISocketTypes@vos@@@8
+-??_R0?AVOAcceptorSocket@vos@@@8
+-??_R0?AVOConnectorSocket@vos@@@8
+-??_R0?AVODatagramSocket@vos@@@8
+-??_R0?AVOInetSocketAddr@vos@@@8
+-??_R0?AVOIpxSocketAddr@vos@@@8
+-??_R0?AVOSocket@vos@@@8
+-??_R0?AVOSocketAddr@vos@@@8
+-??_R0?AVOStreamSocket@vos@@@8
+-??_R13?0A@A@IReference@vos@@8
+-??_R13?0A@A@OReference@vos@@8
+-??_R1A@?0A@A@?$ORefObj@PAUoslSocketImpl@@@vos@@8
+-??_R1A@?0A@A@ISocketAddr@vos@@8
+-??_R1A@?0A@A@ISocketTypes@vos@@8
+-??_R1A@?0A@A@OAcceptorSocket@vos@@8
+-??_R1A@?0A@A@OConnectorSocket@vos@@8
+-??_R1A@?0A@A@ODatagramSocket@vos@@8
+-??_R1A@?0A@A@OInetSocketAddr@vos@@8
+-??_R1A@?0A@A@OIpxSocketAddr@vos@@8
+-??_R1A@?0A@A@OSocket@vos@@8
+-??_R1A@?0A@A@OSocketAddr@vos@@8
+-??_R1A@?0A@A@OStreamSocket@vos@@8
+-??_R1BA@?0A@A@OObject@vos@@8
+-??_R1CA@?0A@A@IStream@vos@@8
+-??_R2?$ORefObj@PAUoslSocketImpl@@@vos@@8
+-??_R2ISocketAddr@vos@@8
+-??_R2ISocketTypes@vos@@8
+-??_R2OAcceptorSocket@vos@@8
+-??_R2OConnectorSocket@vos@@8
+-??_R2ODatagramSocket@vos@@8
+-??_R2OInetSocketAddr@vos@@8
+-??_R2OIpxSocketAddr@vos@@8
+-??_R2OSocket@vos@@8
+-??_R2OSocketAddr@vos@@8
+-??_R2OStreamSocket@vos@@8
+-??_R3?$ORefObj@PAUoslSocketImpl@@@vos@@8
+-??_R3ISocketAddr@vos@@8
+-??_R3ISocketTypes@vos@@8
+-??_R3OAcceptorSocket@vos@@8
+-??_R3OConnectorSocket@vos@@8
+-??_R3ODatagramSocket@vos@@8
+-??_R3OInetSocketAddr@vos@@8
+-??_R3OIpxSocketAddr@vos@@8
+-??_R3OSocket@vos@@8
+-??_R3OSocketAddr@vos@@8
+-??_R3OStreamSocket@vos@@8
+-??_R4?$ORefObj@PAUoslSocketImpl@@@vos@@6B@
+-??_R4ISocketAddr@vos@@6B@
+-??_R4ISocketTypes@vos@@6B@
+-??_R4OAcceptorSocket@vos@@6BISocketTypes@1@@
+-??_R4OAcceptorSocket@vos@@6BOObject@1@@
+-??_R4OAcceptorSocket@vos@@6BOReference@1@@
+-??_R4OConnectorSocket@vos@@6B@
+-??_R4OConnectorSocket@vos@@6BISocketTypes@1@@
+-??_R4OConnectorSocket@vos@@6BOObject@1@@
+-??_R4OConnectorSocket@vos@@6BOReference@1@@
+-??_R4ODatagramSocket@vos@@6BISocketTypes@1@@
+-??_R4ODatagramSocket@vos@@6BOObject@1@@
+-??_R4ODatagramSocket@vos@@6BOReference@1@@
+-??_R4OInetSocketAddr@vos@@6BISocketAddr@1@@
+-??_R4OInetSocketAddr@vos@@6BOObject@1@@
+-??_R4OIpxSocketAddr@vos@@6BISocketAddr@1@@
+-??_R4OIpxSocketAddr@vos@@6BOObject@1@@
+-??_R4OSocket@vos@@6BISocketTypes@1@@
+-??_R4OSocket@vos@@6BOObject@1@@
+-??_R4OSocket@vos@@6BOReference@1@@
+-??_R4OSocketAddr@vos@@6BISocketAddr@1@@
+-??_R4OSocketAddr@vos@@6BOObject@1@@
+-??_R4OStreamSocket@vos@@6B@
+-??_R4OStreamSocket@vos@@6BISocketTypes@1@@
+-??_R4OStreamSocket@vos@@6BOObject@1@@
+-??_R4OStreamSocket@vos@@6BOReference@1@@
+-?acceptConnection@OAcceptorSocket@vos@@QAA?AW4TResult@ISocketTypes@2@AAVOStreamSocket@2@@Z
+-?acceptConnection@OAcceptorSocket@vos@@QAA?AW4TResult@ISocketTypes@2@AAVOStreamSocket@2@AAVOSocketAddr@2@@Z
+-?acquire@?$ORefObj@PAUoslSocketImpl@@@vos@@UAAJXZ
+-?bind@OSocket@vos@@QAAEABVOSocketAddr@2@@Z
+-?classInfo@OAcceptorSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OConnectorSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@ODatagramSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OInetSocketAddr@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OIpxSocketAddr@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OSocketAddr@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OStreamSocket@vos@@SAABUOClassInfo@2@XZ
+-?clearError@OSocket@vos@@QBAJXZ
+-?close@OAcceptorSocket@vos@@UAAXXZ
+-?close@OSocket@vos@@UAAXXZ
+-?close@OStreamSocket@vos@@UAAXXZ
+-?connect@OConnectorSocket@vos@@QAA?AW4TResult@ISocketTypes@2@ABVOSocketAddr@2@PBUTimeValue@@@Z
+-?create@OSocket@vos@@QAAEW4TSocketType@ISocketTypes@2@W4TAddrFamily@42@W4TProtocol@42@@Z
+-?enableNonBlockingMode@OSocket@vos@@QAAEE@Z
+-?getAddressString@OIpxSocketAddr@vos@@QBAXAAVOUString@rtl@@@Z
+-?getClassInfo@OAcceptorSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OConnectorSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@ODatagramSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OInetSocketAddr@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OIpxSocketAddr@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OSocketAddr@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OStreamSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getDottedAddr@OInetSocketAddr@vos@@QBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getError@OSocket@vos@@QBA?AW4TSocketError@ISocketTypes@2@XZ
+-?getError@OSocket@vos@@QBAXAAVOUString@rtl@@@Z
+-?getFamily@OSocketAddr@vos@@UBA?AW4TAddrFamily@ISocketTypes@2@XZ
+-?getHostname@OSocketAddr@vos@@UBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getLocalAddr@OSocket@vos@@QBAXAAVOSocketAddr@2@@Z
+-?getLocalHost@OSocket@vos@@QBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getLocalHostname@OSocketAddr@vos@@SA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getLocalPort@OSocket@vos@@QBAJXZ
+-?getNetNumber@OIpxSocketAddr@vos@@QBA?AW4TResult@ISocketTypes@2@AAY03E@Z
+-?getNodeNumber@OIpxSocketAddr@vos@@QBA?AW4TResult@ISocketTypes@2@AAY05E@Z
+-?getOption@OSocket@vos@@QBAJW4TSocketOption@ISocketTypes@2@PAXKW4TSocketOptionLevel@42@@Z
+-?getPeerAddr@OSocket@vos@@QBAXAAVOSocketAddr@2@@Z
+-?getPeerHost@OSocket@vos@@QBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getPeerPort@OSocket@vos@@QBAJXZ
+-?getPort@OInetSocketAddr@vos@@QBAJXZ
+-?getServicePort@OInetSocketAddr@vos@@SAJABVOUString@rtl@@0@Z
+-?getSocketNumber@OIpxSocketAddr@vos@@QBAKXZ
+-?getType@OSocket@vos@@QBA?AW4TSocketType@ISocketTypes@2@XZ
+-?isEof@OStreamSocket@vos@@UBAEXZ
+-?isExceptionPending@OSocket@vos@@QBAEPBUTimeValue@@@Z
+-?isNonBlockingMode@OSocket@vos@@QBAEXZ
+-?isRecvReady@OSocket@vos@@QBAEPBUTimeValue@@@Z
+-?isSendReady@OSocket@vos@@QBAEPBUTimeValue@@@Z
+-?isValid@OSocket@vos@@QBAEXZ
+-?listen@OAcceptorSocket@vos@@QAAEJ@Z
+-?read@OStreamSocket@vos@@UBAJPAXK@Z
+-?recv@OStreamSocket@vos@@QAAJPAXKW4TSocketMsgFlag@ISocketTypes@2@@Z
+-?recvFrom@ODatagramSocket@vos@@QAAJPAXKPAVOSocketAddr@2@W4TSocketMsgFlag@ISocketTypes@2@@Z
+-?referenced@?$ORefObj@PAUoslSocketImpl@@@vos@@UBAJXZ
+-?release@?$ORefObj@PAUoslSocketImpl@@@vos@@UAAJXZ
+-?resolveHostname@OSocketAddr@vos@@SAPAUoslSocketAddrImpl@@ABVOUString@rtl@@@Z
+-?send@OStreamSocket@vos@@QAAJPBXKW4TSocketMsgFlag@ISocketTypes@2@@Z
+-?sendTo@ODatagramSocket@vos@@QAAJABVOSocketAddr@2@PBXKW4TSocketMsgFlag@ISocketTypes@2@@Z
+-?setAddr@OInetSocketAddr@vos@@QAAEABVOUString@rtl@@@Z
+-?setBroadcast@OSocket@vos@@QBAJJ@Z
+-?setDebug@OSocket@vos@@QBAJJ@Z
+-?setDontRoute@OSocket@vos@@QBAJJ@Z
+-?setKeepAlive@OSocket@vos@@QBAJJ@Z
+-?setLinger@OSocket@vos@@QBAJJ@Z
+-?setOobinline@OSocket@vos@@QBAJJ@Z
+-?setOption@OSocket@vos@@QBAEW4TSocketOption@ISocketTypes@2@PAXKW4TSocketOptionLevel@42@@Z
+-?setPort@OInetSocketAddr@vos@@QAAEJ@Z
+-?setRecvBufSize@OSocket@vos@@QBAJJ@Z
+-?setRecvTimeout@OSocket@vos@@QAAXPBUTimeValue@@@Z
+-?setReuseAddr@OSocket@vos@@QBAJJ@Z
+-?setSendBufSize@OSocket@vos@@QBAJJ@Z
+-?setSendTimeout@OSocket@vos@@QAAXPBUTimeValue@@@Z
+-?setTcpNoDelay@OSocket@vos@@QBAJJ@Z
+-?shutdown@OStreamSocket@vos@@QAAEW4TSocketDirection@ISocketTypes@2@@Z
+-?write@OStreamSocket@vos@@UAAJPBXK@Z
+-??0OReference@vos@@QAE@XZ
+-??1ORefCount@vos@@UAE@XZ
+-??1OReference@vos@@UAE@XZ
+-??_7OReference@vos@@6B@
+-??_GOReference@vos@@UAEPAXI@Z
+-??_R2OReference@vos@@8
+-??_R3OReference@vos@@8
+-??_R4OReference@vos@@6B@
+-?acquire@OReference@vos@@UAAJXZ
+-?referenced@ORefCount@vos@@QBAJXZ
+-?release@ORefCount@vos@@QAAJXZ
+-?release@OReference@vos@@UAAJXZ
+-??0OClassInfo@vos@@QAE@PBDJPBU01@KP6APAVOObject@1@ABUOCreateParam@1@@Z@Z
+-??0OObject@vos@@QAE@ABUOCreateParam@1@@Z
+-??0OObject@vos@@QAE@XZ
+-??0VOS_CLASSINIT@vos@@QAE@PAUOClassInfo@1@@Z
+-??1OObject@vos@@UAE@XZ
+-??2OObject@vos@@SAPAXI@Z
+-??2OObject@vos@@SAPAXIPAX@Z
+-??3OObject@vos@@SAXPAX@Z
+-??_7OObject@vos@@6B@
+-??_GOObject@vos@@UAEPAXI@Z
+-??_R2OObject@vos@@8
+-??_R3OObject@vos@@8
+-??_R4OObject@vos@@6B@
+-?classInfo@OObject@vos@@SAABUOClassInfo@2@XZ
+-?createObject@OClassInfo@vos@@QBAPAVOObject@2@ABUOCreateParam@2@@Z
+-?getClassInfo@OClassInfo@vos@@SAPBU12@PBD@Z
+-?getClassInfo@OObject@vos@@UBAABUOClassInfo@2@XZ
+-?isDerivedFrom@OClassInfo@vos@@QBAEABU12@@Z
+-?isKindOf@OObject@vos@@QBAEABUOClassInfo@2@@Z
+-??0IMutex@vos@@IAE@XZ
+-??0OMutex@vos@@QAE@XZ
+-??1IMutex@vos@@MAE@XZ
+-??1OMutex@vos@@UAE@XZ
+-??_7IMutex@vos@@6B@
+-??_7OMutex@vos@@6BIMutex@1@@
+-??_7OMutex@vos@@6BOObject@1@@
+-??_EOMutex@vos@@W3AEPAXI@Z
+-??_GIMutex@vos@@MAEPAXI@Z
+-??_GOMutex@vos@@UAEPAXI@Z
+-??_R0?AVIMutex@vos@@@8
+-??_R0?AVOMutex@vos@@@8
+-??_R13?0A@A@IMutex@vos@@8
+-??_R1A@?0A@A@IMutex@vos@@8
+-??_R1A@?0A@A@OMutex@vos@@8
+-??_R2IMutex@vos@@8
+-??_R2OMutex@vos@@8
+-??_R3IMutex@vos@@8
+-??_R3OMutex@vos@@8
+-??_R4IMutex@vos@@6B@
+-??_R4OMutex@vos@@6BIMutex@1@@
+-??_R4OMutex@vos@@6BOObject@1@@
+-?acquire@OMutex@vos@@UAAXXZ
+-?classInfo@OMutex@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OMutex@vos@@UBAABUOClassInfo@2@XZ
+-?getGlobalMutex@OMutex@vos@@SAAAVIMutex@2@XZ
+-?release@OMutex@vos@@UAAXXZ
+-?tryToAcquire@OMutex@vos@@UAAEXZ
+-??0ICondition@vos@@QAE@XZ
+-??0OCondition@vos@@QAE@XZ
+-??1ICondition@vos@@UAE@XZ
+-??1OCondition@vos@@UAE@XZ
+-??_7ICondition@vos@@6B@
+-??_7OCondition@vos@@6BICondition@1@@
+-??_7OCondition@vos@@6BOObject@1@@
+-??_EOCondition@vos@@W3AEPAXI@Z
+-??_GICondition@vos@@UAEPAXI@Z
+-??_GOCondition@vos@@UAEPAXI@Z
+-??_R0?AVICondition@vos@@@8
+-??_R0?AVOCondition@vos@@@8
+-??_R13?0A@A@ICondition@vos@@8
+-??_R1A@?0A@A@ICondition@vos@@8
+-??_R1A@?0A@A@OCondition@vos@@8
+-??_R2ICondition@vos@@8
+-??_R2OCondition@vos@@8
+-??_R3ICondition@vos@@8
+-??_R3OCondition@vos@@8
+-??_R4ICondition@vos@@6B@
+-??_R4OCondition@vos@@6BICondition@1@@
+-??_R4OCondition@vos@@6BOObject@1@@
+-?check@OCondition@vos@@UAAEXZ
+-?classInfo@OCondition@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OCondition@vos@@UBAABUOClassInfo@2@XZ
+-?reset@OCondition@vos@@UAAXXZ
+-?set@OCondition@vos@@UAAXXZ
+-?wait@OCondition@vos@@UAA?AW4TResult@ICondition@2@PBUTimeValue@@@Z
+-??0OByteStream@vos@@QAE@AAVOByteArray@1@@Z
+-??_7OByteStream@vos@@6BIPositionableStream@1@@
+-??_7OByteStream@vos@@6BOObject@1@@
+-??_EOByteStream@vos@@W3AEPAXI@Z
+-??_GOByteStream@vos@@UAEPAXI@Z
+-??_R0?AVOByteStream@vos@@@8
+-??_R1A@?0A@A@OByteStream@vos@@8
+-??_R2OByteStream@vos@@8
+-??_R3OByteStream@vos@@8
+-??_R4OByteStream@vos@@6BIPositionableStream@1@@
+-??_R4OByteStream@vos@@6BOObject@1@@
+-?changeSize@OByteStream@vos@@UAAEK@Z
+-?getOffset@OByteStream@vos@@UBAJXZ
+-?getSize@OByteStream@vos@@UBAKXZ
+-?isEof@OByteStream@vos@@UBAEXZ
+-?read@OByteStream@vos@@UBAJJPAXK@Z
+-?read@OByteStream@vos@@UBAJPAXK@Z
+-?seekRelative@OByteStream@vos@@UBAEJ@Z
+-?seekTo@OByteStream@vos@@UBAEJ@Z
+-?seekToEnd@OByteStream@vos@@UBAEXZ
+-?write@OByteStream@vos@@UAAJJPBXK@Z
+-?write@OByteStream@vos@@UAAJPBXK@Z
+-??0OByteArray@vos@@QAE@ABV01@@Z
+-??0OByteArray@vos@@QAE@PAXKE@Z
+-??0OByteArray@vos@@QAE@XZ
+-??1OByteArray@vos@@UAE@XZ
+-??4OByteArray@vos@@UAAAAV01@F@Z
+-??4OByteArray@vos@@UAAAAV01@J@Z
+-??4OByteArray@vos@@UAAXABV01@@Z
+-??4OByteArray@vos@@UAAXPBX@Z
+-??8OByteArray@vos@@UBAEABV01@@Z
+-??8OByteArray@vos@@UBAEPBX@Z
+-??9OByteArray@vos@@UBAEABV01@@Z
+-??9OByteArray@vos@@UBAEPBX@Z
+-??AOByteArray@vos@@QAAEK@Z
+-??MOByteArray@vos@@UBAEABV01@@Z
+-??MOByteArray@vos@@UBAEPBX@Z
+-??NOByteArray@vos@@UBAEABV01@@Z
+-??NOByteArray@vos@@UBAEPBX@Z
+-??OOByteArray@vos@@UBAEABV01@@Z
+-??OOByteArray@vos@@UBAEPBX@Z
+-??POByteArray@vos@@UBAEABV01@@Z
+-??POByteArray@vos@@UBAEPBX@Z
+-??ROByteArray@vos@@QBA?AV01@KK@Z
+-??_7OByteArray@vos@@6B@
+-??_GOByteArray@vos@@UAEPAXI@Z
+-??_R0?AVOByteArray@vos@@@8
+-??_R1A@?0A@A@OByteArray@vos@@8
+-??_R2OByteArray@vos@@8
+-??_R3OByteArray@vos@@8
+-??_R4OByteArray@vos@@6B@
+-?Compare@OByteArray@vos@@UBAFABV12@@Z
+-?asPtr@OByteArray@vos@@QBAPAXXZ
+-?changeSize@OByteArray@vos@@UAAEK@Z
+-?classInfo@OByteArray@vos@@SAABUOClassInfo@2@XZ
+-?copyFrom@OByteArray@vos@@UBAKPBXKK@Z
+-?copyTo@OByteArray@vos@@QAAKPAXKK@Z
+-?getClassInfo@OByteArray@vos@@UBAABUOClassInfo@2@XZ
+-?getCommonPrefixLength@OByteArray@vos@@QAAKPBE@Z
+-?getLongValueAt@OByteArray@vos@@QBAJK@Z
+-?getShortValueAt@OByteArray@vos@@QBAFK@Z
+-?getSize@OByteArray@vos@@UBAKXZ
+-?getSuffix@OByteArray@vos@@QBA?AV12@K@Z
+-?readFrom@OByteArray@vos@@QAAEABVOStream@2@@Z
+-?setAllBytesTo@OByteArray@vos@@QAAXE@Z
+-?writeTo@OByteArray@vos@@QBAEAAVOStream@2@@Z
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x2858eeb2@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x2858eeb2@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2858eeb2@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x8ff4e3c7@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x8ff4e3c7@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x8ff4e3c7@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xfbc3f249@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xfbc3f249@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xfbc3f249@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x515a8e24@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x515a8e24@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x515a8e24@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x962fb44c@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x962fb44c@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x962fb44c@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x94f29692@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x94f29692@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x94f29692@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xa4e18052@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xa4e18052@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xa4e18052@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xc17de86e@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xc17de86e@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc17de86e@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??_C@_0CJ@NACKKKHM@o?3?2SRC680?2wntmsci10?2inc?2stl?2stl?1@
+-??_C@_0DA@LHEOMLEJ@o?3?2SRC680?2wntmsci10?2inc?2stl?2stl?1@
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xe06ee4c8@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xe06ee4c8@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe06ee4c8@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-?signalHandlerFunction_impl@vos@@YA?AW4oslSignalAction@@PAXPAUoslSignalInfo@@@Z
+-??0OEnvironment@vos@@QAA@JPBVOUString@rtl@@ZZ
+-??0OEnvironment@vos@@QAE@QBVOUString@rtl@@J@Z
+-??_R0?AVexception@@@8
+-??_R1A@?0A@A@exception@@8
+-?getExecutableFile@OStartupInfo@vos@@QBA?AW4TStartupError@12@AAVOUString@rtl@@@Z
+-?max@?$_Integer_limits@J$0?IAAAAAAA@$0HPPPPPPP@$0?0$00@_STL@@SAJXZ
+-?threadWorkerFunction_impl@vos@@YAXPAX@Z
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x08df1ac5@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x08df1ac5@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x08df1ac5@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xb3ed1f1a@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xb3ed1f1a@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xb3ed1f1a@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x51e77430@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x51e77430@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x51e77430@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x2ff23a82@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x2ff23a82@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x2ff23a82@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x0bdcee07@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x0bdcee07@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x0bdcee07@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-??_C@_0CI@CJCIMAKH@o?3?2OOG680?2wntmsci10?2inc?2rtl?1ustr@
+-??_C@_0CJ@OBCALGDI@o?3?2OOG680?2wntmsci10?2inc?2stl?2stl?1@
+-??_C@_0DA@HBDJNPKG@o?3?2OOG680?2wntmsci10?2inc?2stl?2stl?1@
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xc5a119a6@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xc5a119a6@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xc5a119a6@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xf76f2db8@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xf76f2db8@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xf76f2db8@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xeeb47a33@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xeeb47a33@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xeeb47a33@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-??_C@_0CI@MCEDPNKI@o?3?2MAC680?2wntmsci10?2inc?2rtl?1ustr@
+-??_C@_0CJ@HBHEMAJE@o?3?2MAC680?2wntmsci10?2inc?2stl?2stl?1@
+-??_C@_0DA@FMJKAAMP@o?3?2MAC680?2wntmsci10?2inc?2stl?2stl?1@
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x152b760d@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@QAEPAVOMutex@vos@@XZ@$AV34@A
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x152b760d@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x152b760d@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+diff --git a/vos/util/defs/wntmsci11 b/vos/util/defs/wntmsci11
+deleted file mode 100644
+index 0606664..0000000
+--- vos/util/defs/wntmsci11
++++ /dev/null
+@@ -1,798 +0,0 @@
+-??1OBaseException@vos@@UAE@XZ
+-??_7OBaseException@vos@@6B@
+-??_GOBaseException@vos@@UAEPAXI@Z
+-??_R0?AVOBaseException@vos@@@8
+-??_R0?AVOObject@vos@@@8
+-??_R1A@?0A@EA@OBaseException@vos@@8
+-??_R1A@?0A@EA@OObject@vos@@8
+-??_R2OBaseException@vos@@8
+-??_R2OObject@vos@@8
+-??_R3OBaseException@vos@@8
+-??_R3OObject@vos@@8
+-??_R4OBaseException@vos@@6B@
+-?classInfo@OBaseException@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OBaseException@vos@@UBAABUOClassInfo@2@XZ
+-??0?$ORefObj@PAUoslPipeImpl@@@vos@@QAE@ABQAUoslPipeImpl@@@Z
+-??0IReference@vos@@QAE@XZ
+-??0IStream@vos@@QAE@XZ
+-??0OPipe@vos@@QAE@ABV01@@Z
+-??0OPipe@vos@@QAE@ABVOUString@rtl@@W4TPipeOption@01@@Z
+-??0OPipe@vos@@QAE@ABVOUString@rtl@@W4TPipeOption@01@ABVOSecurity@1@@Z
+-??0OPipe@vos@@QAE@PAUoslPipeImpl@@@Z
+-??0OPipe@vos@@QAE@XZ
+-??0ORefCount@vos@@QAE@XZ
+-??0OStreamPipe@vos@@QAE@ABV01@@Z
+-??0OStreamPipe@vos@@QAE@PAUoslPipeImpl@@@Z
+-??0OStreamPipe@vos@@QAE@XZ
+-??1?$ORefObj@PAUoslPipeImpl@@@vos@@UAE@XZ
+-??1IReference@vos@@UAE@XZ
+-??1IStream@vos@@UAE@XZ
+-??1OPipe@vos@@UAE@XZ
+-??1OStreamPipe@vos@@UAE@XZ
+-??4OPipe@vos@@QAAAAV01@ABV01@@Z
+-??4OStreamPipe@vos@@QAAAAV01@ABVOPipe@1@@Z
+-??4OStreamPipe@vos@@QAAAAV01@PAUoslPipeImpl@@@Z
+-??BOPipe@vos@@QBAPAUoslPipeImpl@@XZ
+-??R?$ORefObj@PAUoslPipeImpl@@@vos@@QAAAAPAUoslPipeImpl@@XZ
+-??_7?$ORefObj@PAUoslPipeImpl@@@vos@@6B@
+-??_7IReference@vos@@6B@
+-??_7IStream@vos@@6B@
+-??_7OPipe@vos@@6BOObject@1@@
+-??_7OPipe@vos@@6BOReference@1@@
+-??_7ORefCount@vos@@6B@
+-??_7OStreamPipe@vos@@6B@
+-??_7OStreamPipe@vos@@6BOObject@1@@
+-??_7OStreamPipe@vos@@6BOReference@1@@
+-??_EOPipe@vos@@WM@AEPAXI@Z
+-??_EOStreamPipe@vos@@WBE@AEPAXI@Z
+-??_EOStreamPipe@vos@@WM@AEPAXI@Z
+-??_G?$ORefObj@PAUoslPipeImpl@@@vos@@UAEPAXI@Z
+-??_GIReference@vos@@UAEPAXI@Z
+-??_GIStream@vos@@UAEPAXI@Z
+-??_GOPipe@vos@@UAEPAXI@Z
+-??_GORefCount@vos@@UAEPAXI@Z
+-??_GOStreamPipe@vos@@UAEPAXI@Z
+-??_R0?AV?$ORefObj@PAUoslPipeImpl@@@vos@@@8
+-??_R0?AVIReference@vos@@@8
+-??_R0?AVIStream@vos@@@8
+-??_R0?AVOPipe@vos@@@8
+-??_R0?AVORefCount@vos@@@8
+-??_R0?AVOReference@vos@@@8
+-??_R0?AVOStreamPipe@vos@@@8
+-??_R1A@?0A@EA@?$ORefObj@PAUoslPipeImpl@@@vos@@8
+-??_R1A@?0A@EA@IReference@vos@@8
+-??_R1A@?0A@EA@IStream@vos@@8
+-??_R1A@?0A@EA@OPipe@vos@@8
+-??_R1A@?0A@EA@ORefCount@vos@@8
+-??_R1A@?0A@EA@OReference@vos@@8
+-??_R1A@?0A@EA@OStreamPipe@vos@@8
+-??_R1BE@?0A@EA@IStream@vos@@8
+-??_R1M@?0A@EA@OObject@vos@@8
+-??_R2?$ORefObj@PAUoslPipeImpl@@@vos@@8
+-??_R2IReference@vos@@8
+-??_R2IStream@vos@@8
+-??_R2OPipe@vos@@8
+-??_R2ORefCount@vos@@8
+-??_R2OReference@vos@@8
+-??_R2OStreamPipe@vos@@8
+-??_R3?$ORefObj@PAUoslPipeImpl@@@vos@@8
+-??_R3IReference@vos@@8
+-??_R3IStream@vos@@8
+-??_R3OPipe@vos@@8
+-??_R3ORefCount@vos@@8
+-??_R3OReference@vos@@8
+-??_R3OStreamPipe@vos@@8
+-??_R4?$ORefObj@PAUoslPipeImpl@@@vos@@6B@
+-??_R4IReference@vos@@6B@
+-??_R4IStream@vos@@6B@
+-??_R4OPipe@vos@@6BOObject@1@@
+-??_R4OPipe@vos@@6BOReference@1@@
+-??_R4ORefCount@vos@@6B@
+-??_R4OStreamPipe@vos@@6B@
+-??_R4OStreamPipe@vos@@6BOObject@1@@
+-??_R4OStreamPipe@vos@@6BOReference@1@@
+-?accept@OPipe@vos@@QAA?AW4TPipeError@12@AAVOStreamPipe@2@@Z
+-?acquire@?$ORefObj@PAUoslPipeImpl@@@vos@@UAAJXZ
+-?acquire@ORefCount@vos@@QAAJXZ
+-?classInfo@OPipe@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OStreamPipe@vos@@SAABUOClassInfo@2@XZ
+-?close@OPipe@vos@@UAAXXZ
+-?create@OPipe@vos@@QAAEABVOUString@rtl@@W4TPipeOption@12@@Z
+-?create@OPipe@vos@@QAAEABVOUString@rtl@@W4TPipeOption@12@ABVOSecurity@2@@Z
+-?getClassInfo@OPipe@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OStreamPipe@vos@@UBAABUOClassInfo@2@XZ
+-?getError@OPipe@vos@@QBA?AW4TPipeError@12@XZ
+-?isEof@OStreamPipe@vos@@UBAEXZ
+-?isValid@OPipe@vos@@QBAEXZ
+-?read@OStreamPipe@vos@@UBAJPAXK@Z
+-?recv@OPipe@vos@@QAAJPAXK@Z
+-?referenced@?$ORefObj@PAUoslPipeImpl@@@vos@@UBAJXZ
+-?referenced@ORefCount@vos@@QBAJXZ
+-?referenced@OReference@vos@@UBAJXZ
+-?release@?$ORefObj@PAUoslPipeImpl@@@vos@@UAAJXZ
+-?release@ORefCount@vos@@QAAJXZ
+-?send@OPipe@vos@@QAAJPBXK@Z
+-?write@OStreamPipe@vos@@UAAJPBXK@Z
+-??0OSignalHandler@vos@@QAE@XZ
+-??1OSignalHandler@vos@@UAE@XZ
+-??_7OSignalHandler@vos@@6B@
+-??_GOSignalHandler@vos@@UAEPAXI@Z
+-??_R0?AVOSignalHandler@vos@@@8
+-??_R1A@?0A@EA@OSignalHandler@vos@@8
+-??_R2OSignalHandler@vos@@8
+-??_R3OSignalHandler@vos@@8
+-??_R4OSignalHandler@vos@@6B@
+-?classInfo@OSignalHandler@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OSignalHandler@vos@@UBAABUOClassInfo@2@XZ
+-?raise@OSignalHandler@vos@@SA?AW4TSignalAction@12@JPAX@Z
+-?signalHandlerFunction_impl@vos@@YA?AW4oslSignalAction@@PAXPAUoslSignalInfo@@@Z
+-??0OSecurity@vos@@QAE@XZ
+-??1OSecurity@vos@@UAE@XZ
+-??BOSecurity@vos@@UBAPAXXZ
+-??_7OSecurity@vos@@6B@
+-??_GOSecurity@vos@@UAEPAXI@Z
+-??_R0?AVOSecurity@vos@@@8
+-??_R1A@?0A@EA@OSecurity@vos@@8
+-??_R2OSecurity@vos@@8
+-??_R3OSecurity@vos@@8
+-??_R4OSecurity@vos@@6B@
+-?classInfo@OSecurity@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OSecurity@vos@@UBAABUOClassInfo@2@XZ
+-?getConfigDir@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?getHomeDir@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?getUserIdent@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?getUserName@OSecurity@vos@@QBAEAAVOUString@rtl@@@Z
+-?isAdministrator@OSecurity@vos@@QBAEXZ
+-?logonUser@OSecurity@vos@@QAAEABVOUString@rtl@@00@Z
+-?logonUser@OSecurity@vos@@QAAEABVOUString@rtl@@0@Z
+-??$_Construct@VOUString@rtl@@V12@@_STL@@YAXPAVOUString@rtl@@ABV12@@Z
+-??$_Destroy@PAVOUString@rtl@@@_STL@@YAXPAVOUString@rtl@@0@Z
+-??$_Destroy@VOUString@rtl@@@_STL@@YAXPAVOUString@rtl@@@Z
+-??$max@I@_STL@@YAABIABI0@Z
+-??0?$Guard@VMutex@osl@@@osl@@QAE@PAVMutex@1@@Z
+-??0ByteSequence@rtl@@QAE@XZ
+-??0File@osl@@QAE@ABVOUString@rtl@@@Z
+-??0OArgumentList@vos@@QAA@KPBVOUString@rtl@@ZZ
+-??0OArgumentList@vos@@QAE@ABV01@@Z
+-??0OArgumentList@vos@@QAE@QBVOUString@rtl@@K@Z
+-??0OArgumentList@vos@@QAE@XZ
+-??0OEnvironment@vos@@QAA@JPBVOUString@rtl@@ZZ
+-??0OEnvironment@vos@@QAE@ABV01@@Z
+-??0OEnvironment@vos@@QAE@QBVOUString@rtl@@J@Z
+-??0OEnvironment@vos@@QAE@XZ
+-??0OExtCommandLine@vos@@QAE@XZ
+-??0OExtCommandLineImpl@vos@@QAE@XZ
+-??0OGuard@vos@@QAE@AAVIMutex@1@@Z
+-??0OProcess@vos@@QAE@ABVOUString@rtl@@0@Z
+-??0OProcess@vos@@QAE@ABVOUString@rtl@@@Z
+-??0OProcess@vos@@QAE@XZ
+-??0OStartupInfo@vos@@QAE@XZ
+-??0OUString@rtl@@AAE@PAU_rtl_uString@@PAVDO_NOT_ACQUIRE@01@@Z
+-??0OUString@rtl@@QAE@ABV01@@Z
+-??0OUString@rtl@@QAE@PBDJGK@Z
+-??0OUString@rtl@@QAE@XZ
+-??1?$Guard@VMutex@osl@@@osl@@QAE@XZ
+-??1ByteSequence@rtl@@QAE@XZ
+-??1File@osl@@QAE@XZ
+-??1OArgumentList@vos@@UAE@XZ
+-??1OEnvironment@vos@@UAE@XZ
+-??1OExtCommandLine@vos@@UAE@XZ
+-??1OExtCommandLineImpl@vos@@QAE@XZ
+-??1OGuard@vos@@UAE@XZ
+-??1OProcess@vos@@UAE@XZ
+-??1OStartupInfo@vos@@UAE@XZ
+-??1OUString@rtl@@QAE@XZ
+-??2@YAPAXIPAX@Z
+-??4OArgumentList@vos@@QAEAAV01@ABV01@@Z
+-??4OEnvironment@vos@@QAEAAV01@ABV01@@Z
+-??4OUString@rtl@@QAEAAV01@ABV01@@Z
+-??BOUString@rtl@@QBEPBGXZ
+-??RGetGlobalMutex@osl@@QAEPAVMutex@1@XZ
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_7OArgumentList@vos@@6B@
+-??_7OEnvironment@vos@@6B@
+-??_7OExtCommandLine@vos@@6B@
+-??_7OGuard@vos@@6B@
+-??_7OProcess@vos@@6B@
+-??_7OStartupInfo@vos@@6B@
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-??_GOArgumentList@vos@@UAEPAXI@Z
+-??_GOEnvironment@vos@@UAEPAXI@Z
+-??_GOExtCommandLine@vos@@UAEPAXI@Z
+-??_GOGuard@vos@@UAEPAXI@Z
+-??_GOProcess@vos@@UAEPAXI@Z
+-??_GOStartupInfo@vos@@UAEPAXI@Z
+-??_GOUString@rtl@@QAEPAXI@Z
+-??_R0?AVOArgumentList@vos@@@8
+-??_R0?AVOEnvironment@vos@@@8
+-??_R0?AVOExtCommandLine@vos@@@8
+-??_R0?AVOGuard@vos@@@8
+-??_R0?AVOProcess@vos@@@8
+-??_R0?AVOStartupInfo@vos@@@8
+-??_R1A@?0A@EA@OArgumentList@vos@@8
+-??_R1A@?0A@EA@OEnvironment@vos@@8
+-??_R1A@?0A@EA@OExtCommandLine@vos@@8
+-??_R1A@?0A@EA@OGuard@vos@@8
+-??_R1A@?0A@EA@OProcess@vos@@8
+-??_R1A@?0A@EA@OStartupInfo@vos@@8
+-??_R2OArgumentList@vos@@8
+-??_R2OEnvironment@vos@@8
+-??_R2OExtCommandLine@vos@@8
+-??_R2OGuard@vos@@8
+-??_R2OProcess@vos@@8
+-??_R2OStartupInfo@vos@@8
+-??_R3OArgumentList@vos@@8
+-??_R3OEnvironment@vos@@8
+-??_R3OExtCommandLine@vos@@8
+-??_R3OGuard@vos@@8
+-??_R3OProcess@vos@@8
+-??_R3OStartupInfo@vos@@8
+-??_R4OArgumentList@vos@@6B@
+-??_R4OEnvironment@vos@@6B@
+-??_R4OExtCommandLine@vos@@6B@
+-??_R4OGuard@vos@@6B@
+-??_R4OProcess@vos@@6B@
+-??_R4OStartupInfo@vos@@6B@
+-?acquire@Mutex@osl@@QAEEXZ
+-?classInfo@OExtCommandLine@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OProcess@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OStartupInfo@vos@@SAABUOClassInfo@2@XZ
+-?close@File@osl@@QAE?AW4RC@FileBase@2@XZ
+-?copy@OUString@rtl@@QBE?AV12@J@Z
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xe12eb35f@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?execute@OProcess@vos@@QAA?AW4TProcessError@12@W4TProcessOption@12@ABVOArgumentList@2@ABVOEnvironment@2@@Z
+-?execute@OProcess@vos@@QAA?AW4TProcessError@12@W4TProcessOption@12@ABVOSecurity@2@ABVOArgumentList@2@ABVOEnvironment@2@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@SAAAVOMutex@vos@@XZ
+-?getArray@ByteSequence@rtl@@QAAPACXZ
+-?getClassInfo@OExtCommandLine@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OProcess@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OStartupInfo@vos@@UBAABUOClassInfo@2@XZ
+-?getCommandArg@OExtCommandLine@vos@@QAAEKAAVOUString@rtl@@@Z
+-?getCommandArg@OExtCommandLineImpl@vos@@QAAEKAAVOUString@rtl@@@Z
+-?getCommandArg@OStartupInfo@vos@@QAA?AW4TStartupError@12@KAAVOUString@rtl@@@Z
+-?getCommandArgCount@OExtCommandLine@vos@@QAAKXZ
+-?getCommandArgCount@OExtCommandLineImpl@vos@@QAAKXZ
+-?getCommandArgCount@OStartupInfo@vos@@QAAKXZ
+-?getCurrentInfo@OProcess@vos@@SA?AW4TProcessError@12@W4TProcessData@12@PAUTProcessInfo@12@@Z
+-?getEnvironment@OStartupInfo@vos@@QAA?AW4TStartupError@12@ABVOUString@rtl@@AAV45@@Z
+-?getExecutableFile@OStartupInfo@vos@@QBA?AW4TStartupError@12@AAVOUString@rtl@@@Z
+-?getGlobalMutex@Mutex@osl@@SAPAV12@XZ
+-?getInfo@OProcess@vos@@QBA?AW4TProcessError@12@W4TProcessData@12@PAUTProcessInfo@12@@Z
+-?getLength@ByteSequence@rtl@@QBAJXZ
+-?getLength@OUString@rtl@@QBEJXZ
+-?getProcess@OProcess@vos@@SAPAV12@K@Z
+-?init@OExtCommandLineImpl@vos@@AAEXXZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?join@OProcess@vos@@QAA?AW4TProcessError@12@XZ
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0xe12eb35f@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0xe12eb35f@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+-?open@File@osl@@QAE?AW4RC@FileBase@2@K@Z
+-?pExtImpl@OExtCommandLine@vos@@2PAVOExtCommandLineImpl@2@A
+-?readLine@File@osl@@QAE?AW4RC@FileBase@2@AAVByteSequence@rtl@@@Z
+-?release@Mutex@osl@@QAEEXZ
+-?remove@File@osl@@SA?AW4RC@FileBase@2@ABVOUString@rtl@@@Z
+-?terminate@OProcess@vos@@QAA?AW4TProcessError@12@XZ
+-??0OGuard@vos@@QAE@PAVIMutex@1@@Z
+-??0OTimer@vos@@QAE@ABUTTimeValue@1@0@Z
+-??0OTimer@vos@@QAE@ABUTTimeValue@1@@Z
+-??0OTimer@vos@@QAE@XZ
+-??0OTimerManager@vos@@QAE@XZ
+-??0TTimeValue@vos@@QAE@K@Z
+-??0TTimeValue@vos@@QAE@KK@Z
+-??0TTimeValue@vos@@QAE@XZ
+-??1OTimer@vos@@MAE@XZ
+-??1OTimerManager@vos@@UAE@XZ
+-??Mvos@@YAEABUTTimeValue@0@0@Z
+-??_7OTimer@vos@@6B01@@
+-??_7OTimer@vos@@6BOObject@1@@
+-??_7OTimer@vos@@6BOReference@1@@
+-??_7OTimerManager@vos@@6BIRunnable@1@@
+-??_7OTimerManager@vos@@6BOObject@1@@
+-??_8OTimer@vos@@7B@
+-??_DOTimer@vos@@IAEXXZ
+-??_EOTimer@vos@@$2PPPPPPPM@BA@AEPAXI@Z
+-??_EOTimerManager@vos@@W3AEPAXI@Z
+-??_GOTimer@vos@@MAEPAXI@Z
+-??_GOTimerManager@vos@@UAEPAXI@Z
+-??_R0?AVIRunnable@vos@@@8
+-??_R0?AVOThread@vos@@@8
+-??_R0?AVOTimer@vos@@@8
+-??_R0?AVOTimerManager@vos@@@8
+-??_R13?0A@EA@OObject@vos@@8
+-??_R1A@33EA@IReference@vos@@8
+-??_R1A@33FA@OReference@vos@@8
+-??_R1A@37FA@OObject@vos@@8
+-??_R1A@?0A@EA@IRunnable@vos@@8
+-??_R1A@?0A@EA@OThread@vos@@8
+-??_R1A@?0A@EA@OTimer@vos@@8
+-??_R1A@?0A@EA@OTimerManager@vos@@8
+-??_R2IRunnable@vos@@8
+-??_R2OThread@vos@@8
+-??_R2OTimer@vos@@8
+-??_R2OTimerManager@vos@@8
+-??_R3IRunnable@vos@@8
+-??_R3OThread@vos@@8
+-??_R3OTimer@vos@@8
+-??_R3OTimerManager@vos@@8
+-??_R4OTimer@vos@@6B01@@
+-??_R4OTimer@vos@@6BOObject@1@@
+-??_R4OTimer@vos@@6BOReference@1@@
+-??_R4OTimerManager@vos@@6BIRunnable@1@@
+-??_R4OTimerManager@vos@@6BOObject@1@@
+-?addTime@OTimer@vos@@QAAXABUTTimeValue@2@@Z
+-?addTime@TTimeValue@vos@@QAAXABU12@@Z
+-?checkForTimeout@OTimerManager@vos@@IAAXXZ
+-?classInfo@OTimer@vos@@SAABUOClassInfo@2@XZ
+-?expiresBefore@OTimer@vos@@QBAEPBV12@@Z
+-?getClassInfo@OTimer@vos@@$4PPPPPPPM@A@BAABUOClassInfo@2@XZ
+-?getClassInfo@OTimer@vos@@UBAABUOClassInfo@2@XZ
+-?getRemainingTime@OTimer@vos@@QBA?AUTTimeValue@2@XZ
+-?getTimerManager@OTimerManager@vos@@SAPAV12@XZ
+-?isEmpty@TTimeValue@vos@@QBAEXZ
+-?isExpired@OTimer@vos@@QBAEXZ
+-?isTicking@OTimer@vos@@QBAEXZ
+-?lookupTimer@OTimerManager@vos@@QAAEPBVOTimer@2@@Z
+-?m_Access@OTimerManager@vos@@1VOMutex@2@A
+-?m_pManager@OTimerManager@vos@@1PAV12@A
+-?normalize@TTimeValue@vos@@QAAXXZ
+-?onTerminated@OTimerManager@vos@@MAAXXZ
+-?registerTimer@OTimerManager@vos@@QAAEPAVOTimer@2@@Z
+-?run@OTimerManager@vos@@MAAXXZ
+-?setAbsoluteTime@OTimer@vos@@QAAXABUTTimeValue@2@@Z
+-?setRemainingTime@OTimer@vos@@QAAXABUTTimeValue@2@0@Z
+-?setRemainingTime@OTimer@vos@@QAAXABUTTimeValue@2@@Z
+-?start@OTimer@vos@@QAAXXZ
+-?stop@OTimer@vos@@QAAXXZ
+-?unregisterTimer@OTimerManager@vos@@QAAEPAVOTimer@2@@Z
+-??0OModule@vos@@QAE@ABVOUString@rtl@@J@Z
+-??0OModule@vos@@QAE@XZ
+-??1OModule@vos@@UAE@XZ
+-??_7OModule@vos@@6B@
+-??_GOModule@vos@@UAEPAXI@Z
+-??_R0?AVOModule@vos@@@8
+-??_R1A@?0A@EA@OModule@vos@@8
+-??_R2OModule@vos@@8
+-??_R3OModule@vos@@8
+-??_R4OModule@vos@@6B@
+-?classInfo@OModule@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OModule@vos@@UBAABUOClassInfo@2@XZ
+-?getSymbol@OModule@vos@@QAAPAXABVOUString@rtl@@@Z
+-?isLoaded@OModule@vos@@QAAEXZ
+-?load@OModule@vos@@QAAEABVOUString@rtl@@J@Z
+-?unload@OModule@vos@@QAAXXZ
+-??0IPositionableStream@vos@@IAE@XZ
+-??0OStream@vos@@QAE@AAVIPositionableStream@1@@Z
+-??1IPositionableStream@vos@@MAE@XZ
+-??1OStream@vos@@UAE@XZ
+-??_7IPositionableStream@vos@@6B@
+-??_7OStream@vos@@6BIPositionableStream@1@@
+-??_7OStream@vos@@6BOObject@1@@
+-??_EOStream@vos@@W3AEPAXI@Z
+-??_GIPositionableStream@vos@@MAEPAXI@Z
+-??_GOStream@vos@@UAEPAXI@Z
+-??_R0?AVIPositionableStream@vos@@@8
+-??_R0?AVOStream@vos@@@8
+-??_R13?0A@EA@IPositionableStream@vos@@8
+-??_R13?0A@EA@IStream@vos@@8
+-??_R1A@?0A@EA@IPositionableStream@vos@@8
+-??_R1A@?0A@EA@OStream@vos@@8
+-??_R2IPositionableStream@vos@@8
+-??_R2OStream@vos@@8
+-??_R3IPositionableStream@vos@@8
+-??_R3OStream@vos@@8
+-??_R4IPositionableStream@vos@@6B@
+-??_R4OStream@vos@@6BIPositionableStream@1@@
+-??_R4OStream@vos@@6BOObject@1@@
+-?append@OStream@vos@@QAAEPAXK@Z
+-?changeSize@OStream@vos@@UAAEK@Z
+-?classInfo@OStream@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OStream@vos@@UBAABUOClassInfo@2@XZ
+-?getOffset@OStream@vos@@UBAJXZ
+-?getSize@OStream@vos@@UBAKXZ
+-?isEof@OStream@vos@@UBAEXZ
+-?max@?$_Integer_limits@J$0?IAAAAAAA@$0HPPPPPPP@$0?0$00@_STL@@SAJXZ
+-?read@OStream@vos@@QBAJJPAXK@Z
+-?read@OStream@vos@@UBAJPAXK@Z
+-?seekRelative@OStream@vos@@UBAEJ@Z
+-?seekTo@OStream@vos@@UBAEJ@Z
+-?seekToEnd@OStream@vos@@UBAEXZ
+-?write@OStream@vos@@QAAJJPBXK@Z
+-?write@OStream@vos@@UAAJPBXK@Z
+-??0IRunnable@vos@@QAE@XZ
+-??0OThread@vos@@QAE@XZ
+-??0OThreadData@vos@@QAE@P6AXPAX@Z@Z
+-??1IRunnable@vos@@UAE@XZ
+-??1OThread@vos@@UAE@XZ
+-??1OThreadData@vos@@UAE@XZ
+-??_7IRunnable@vos@@6B@
+-??_7OThread@vos@@6BIRunnable@1@@
+-??_7OThread@vos@@6BOObject@1@@
+-??_7OThreadData@vos@@6B@
+-??_EOThread@vos@@W3AEPAXI@Z
+-??_GIRunnable@vos@@UAEPAXI@Z
+-??_GOThread@vos@@UAEPAXI@Z
+-??_GOThreadData@vos@@UAEPAXI@Z
+-??_R0?AVOThreadData@vos@@@8
+-??_R1A@?0A@EA@OThreadData@vos@@8
+-??_R2OThreadData@vos@@8
+-??_R3OThreadData@vos@@8
+-??_R4IRunnable@vos@@6B@
+-??_R4OThread@vos@@6BIRunnable@1@@
+-??_R4OThread@vos@@6BOObject@1@@
+-??_R4OThreadData@vos@@6B@
+-?awake@OThread@vos@@QAAEXZ
+-?classInfo@OThread@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OThreadData@vos@@SAABUOClassInfo@2@XZ
+-?create@OThread@vos@@QAAEXZ
+-?createSuspended@OThread@vos@@QAAEXZ
+-?getClassInfo@OThread@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OThreadData@vos@@UBAABUOClassInfo@2@XZ
+-?getCurrentIdentifier@OThread@vos@@SAKXZ
+-?getData@OThreadData@vos@@QAAPAXXZ
+-?getIdentifier@OThread@vos@@QBAKXZ
+-?getPriority@OThread@vos@@QAA?AW4TThreadPriority@12@XZ
+-?isRunning@OThread@vos@@QAAEXZ
+-?join@OThread@vos@@QAAXXZ
+-?kill@OThread@vos@@UAAXXZ
+-?onTerminated@OThread@vos@@MAAXXZ
+-?resume@OThread@vos@@QAAXXZ
+-?schedule@OThread@vos@@MAAEXZ
+-?setData@OThreadData@vos@@QAAEPAX@Z
+-?setPriority@OThread@vos@@QAAXW4TThreadPriority@12@@Z
+-?sleep@OThread@vos@@QAA?AW4TThreadSleep@12@ABUTimeValue@@@Z
+-?suspend@OThread@vos@@QAAXXZ
+-?terminate@OThread@vos@@UAAXXZ
+-?threadWorkerFunction_impl@vos@@YAXPAX@Z
+-?wait@OThread@vos@@SAXABUTimeValue@@@Z
+-?yield@OThread@vos@@SAXXZ
+-??0?$ORefObj@PAUoslSocketImpl@@@vos@@QAE@ABQAUoslSocketImpl@@@Z
+-??0ISocketAddr@vos@@QAE@XZ
+-??0ISocketTypes@vos@@QAE@XZ
+-??0OAcceptorSocket@vos@@QAE@ABV01@@Z
+-??0OAcceptorSocket@vos@@QAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0OConnectorSocket@vos@@QAE@ABV01@@Z
+-??0OConnectorSocket@vos@@QAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0ODatagramSocket@vos@@QAE@ABV01@@Z
+-??0ODatagramSocket@vos@@QAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0OInetSocketAddr@vos@@QAE@ABV01@@Z
+-??0OInetSocketAddr@vos@@QAE@ABVOSocketAddr@1@@Z
+-??0OInetSocketAddr@vos@@QAE@ABVOUString@rtl@@J@Z
+-??0OInetSocketAddr@vos@@QAE@PAUoslSocketAddrImpl@@@Z
+-??0OInetSocketAddr@vos@@QAE@XZ
+-??0OIpxSocketAddr@vos@@QAE@ABV01@@Z
+-??0OIpxSocketAddr@vos@@QAE@ABVOSocketAddr@1@@Z
+-??0OIpxSocketAddr@vos@@QAE@ABVOUString@rtl@@0K@Z
+-??0OIpxSocketAddr@vos@@QAE@PAUoslSocketAddrImpl@@@Z
+-??0OIpxSocketAddr@vos@@QAE@XZ
+-??0OSocket@vos@@QAE@ABV01@@Z
+-??0OSocket@vos@@QAE@PAUoslSocketImpl@@@Z
+-??0OSocket@vos@@QAE@W4TSocketType@ISocketTypes@1@W4TAddrFamily@31@W4TProtocol@31@@Z
+-??0OSocket@vos@@QAE@XZ
+-??0OSocketAddr@vos@@QAE@ABV01@@Z
+-??0OSocketAddr@vos@@QAE@PAUoslSocketAddrImpl@@@Z
+-??0OSocketAddr@vos@@QAE@XZ
+-??0OStreamSocket@vos@@IAE@W4TAddrFamily@ISocketTypes@1@W4TProtocol@31@W4TSocketType@31@@Z
+-??0OStreamSocket@vos@@QAE@ABV01@@Z
+-??0OStreamSocket@vos@@QAE@ABVOSocket@1@@Z
+-??0OStreamSocket@vos@@QAE@PAUoslSocketImpl@@@Z
+-??0OStreamSocket@vos@@QAE@XZ
+-??1?$ORefObj@PAUoslSocketImpl@@@vos@@UAE@XZ
+-??1ISocketAddr@vos@@UAE@XZ
+-??1ISocketTypes@vos@@UAE@XZ
+-??1OAcceptorSocket@vos@@UAE@XZ
+-??1OConnectorSocket@vos@@UAE@XZ
+-??1ODatagramSocket@vos@@UAE@XZ
+-??1OInetSocketAddr@vos@@UAE@XZ
+-??1OIpxSocketAddr@vos@@UAE@XZ
+-??1OSocket@vos@@UAE@XZ
+-??1OSocketAddr@vos@@UAE@XZ
+-??1OStreamSocket@vos@@UAE@XZ
+-??4OInetSocketAddr@vos@@QAAAAV01@ABV01@@Z
+-??4OInetSocketAddr@vos@@QAAAAV01@ABVOSocketAddr@1@@Z
+-??4OInetSocketAddr@vos@@UAAXPAUoslSocketAddrImpl@@@Z
+-??4OIpxSocketAddr@vos@@QAAAAV01@ABV01@@Z
+-??4OIpxSocketAddr@vos@@QAAAAV01@ABVOSocketAddr@1@@Z
+-??4OIpxSocketAddr@vos@@UAAXPAUoslSocketAddrImpl@@@Z
+-??4OSocket@vos@@QAAAAV01@ABV01@@Z
+-??4OSocketAddr@vos@@QAAAAV01@ABV01@@Z
+-??4OSocketAddr@vos@@UAAXPAUoslSocketAddrImpl@@@Z
+-??4OStreamSocket@vos@@QAAAAV01@ABV01@@Z
+-??4OStreamSocket@vos@@QAAAAV01@ABVOSocket@1@@Z
+-??4OStreamSocket@vos@@QAAAAV01@PAUoslSocketImpl@@@Z
+-??8OInetSocketAddr@vos@@UAAEPAUoslSocketAddrImpl@@@Z
+-??8OIpxSocketAddr@vos@@UAAEPAUoslSocketAddrImpl@@@Z
+-??8OSocketAddr@vos@@UAAEPAUoslSocketAddrImpl@@@Z
+-??BOSocket@vos@@QBAPAUoslSocketImpl@@XZ
+-??BOSocketAddr@vos@@UBAPAUoslSocketAddrImpl@@XZ
+-??R?$ORefObj@PAUoslSocketImpl@@@vos@@QAAAAPAUoslSocketImpl@@XZ
+-??_7?$ORefObj@PAUoslSocketImpl@@@vos@@6B@
+-??_7ISocketAddr@vos@@6B@
+-??_7ISocketTypes@vos@@6B@
+-??_7OAcceptorSocket@vos@@6BISocketTypes@1@@
+-??_7OAcceptorSocket@vos@@6BOObject@1@@
+-??_7OAcceptorSocket@vos@@6BOReference@1@@
+-??_7OConnectorSocket@vos@@6B@
+-??_7OConnectorSocket@vos@@6BISocketTypes@1@@
+-??_7OConnectorSocket@vos@@6BOObject@1@@
+-??_7OConnectorSocket@vos@@6BOReference@1@@
+-??_7ODatagramSocket@vos@@6BISocketTypes@1@@
+-??_7ODatagramSocket@vos@@6BOObject@1@@
+-??_7ODatagramSocket@vos@@6BOReference@1@@
+-??_7OInetSocketAddr@vos@@6BISocketAddr@1@@
+-??_7OInetSocketAddr@vos@@6BOObject@1@@
+-??_7OIpxSocketAddr@vos@@6BISocketAddr@1@@
+-??_7OIpxSocketAddr@vos@@6BOObject@1@@
+-??_7OSocket@vos@@6BISocketTypes@1@@
+-??_7OSocket@vos@@6BOObject@1@@
+-??_7OSocket@vos@@6BOReference@1@@
+-??_7OSocketAddr@vos@@6BISocketAddr@1@@
+-??_7OSocketAddr@vos@@6BOObject@1@@
+-??_7OStreamSocket@vos@@6B@
+-??_7OStreamSocket@vos@@6BISocketTypes@1@@
+-??_7OStreamSocket@vos@@6BOObject@1@@
+-??_7OStreamSocket@vos@@6BOReference@1@@
+-??_EOAcceptorSocket@vos@@W3AEPAXI@Z
+-??_EOAcceptorSocket@vos@@WBA@AEPAXI@Z
+-??_EOConnectorSocket@vos@@W3AEPAXI@Z
+-??_EOConnectorSocket@vos@@WBA@AEPAXI@Z
+-??_EOConnectorSocket@vos@@WCA@AEPAXI@Z
+-??_EODatagramSocket@vos@@W3AEPAXI@Z
+-??_EODatagramSocket@vos@@WBA@AEPAXI@Z
+-??_EOInetSocketAddr@vos@@W3AEPAXI@Z
+-??_EOIpxSocketAddr@vos@@W3AEPAXI@Z
+-??_EOSocket@vos@@W3AEPAXI@Z
+-??_EOSocket@vos@@WBA@AEPAXI@Z
+-??_EOSocketAddr@vos@@W3AEPAXI@Z
+-??_EOStreamSocket@vos@@W3AEPAXI@Z
+-??_EOStreamSocket@vos@@WBA@AEPAXI@Z
+-??_EOStreamSocket@vos@@WCA@AEPAXI@Z
+-??_G?$ORefObj@PAUoslSocketImpl@@@vos@@UAEPAXI@Z
+-??_GISocketAddr@vos@@UAEPAXI@Z
+-??_GISocketTypes@vos@@UAEPAXI@Z
+-??_GOAcceptorSocket@vos@@UAEPAXI@Z
+-??_GOConnectorSocket@vos@@UAEPAXI@Z
+-??_GODatagramSocket@vos@@UAEPAXI@Z
+-??_GOInetSocketAddr@vos@@UAEPAXI@Z
+-??_GOIpxSocketAddr@vos@@UAEPAXI@Z
+-??_GOSocket@vos@@UAEPAXI@Z
+-??_GOSocketAddr@vos@@UAEPAXI@Z
+-??_GOStreamSocket@vos@@UAEPAXI@Z
+-??_R0?AV?$ORefObj@PAUoslSocketImpl@@@vos@@@8
+-??_R0?AVISocketAddr@vos@@@8
+-??_R0?AVISocketTypes@vos@@@8
+-??_R0?AVOAcceptorSocket@vos@@@8
+-??_R0?AVOConnectorSocket@vos@@@8
+-??_R0?AVODatagramSocket@vos@@@8
+-??_R0?AVOInetSocketAddr@vos@@@8
+-??_R0?AVOIpxSocketAddr@vos@@@8
+-??_R0?AVOSocket@vos@@@8
+-??_R0?AVOSocketAddr@vos@@@8
+-??_R0?AVOStreamSocket@vos@@@8
+-??_R13?0A@EA@IReference@vos@@8
+-??_R13?0A@EA@OReference@vos@@8
+-??_R1A@?0A@EA@?$ORefObj@PAUoslSocketImpl@@@vos@@8
+-??_R1A@?0A@EA@ISocketAddr@vos@@8
+-??_R1A@?0A@EA@ISocketTypes@vos@@8
+-??_R1A@?0A@EA@OAcceptorSocket@vos@@8
+-??_R1A@?0A@EA@OConnectorSocket@vos@@8
+-??_R1A@?0A@EA@ODatagramSocket@vos@@8
+-??_R1A@?0A@EA@OInetSocketAddr@vos@@8
+-??_R1A@?0A@EA@OIpxSocketAddr@vos@@8
+-??_R1A@?0A@EA@OSocket@vos@@8
+-??_R1A@?0A@EA@OSocketAddr@vos@@8
+-??_R1A@?0A@EA@OStreamSocket@vos@@8
+-??_R1BA@?0A@EA@OObject@vos@@8
+-??_R1CA@?0A@EA@IStream@vos@@8
+-??_R2?$ORefObj@PAUoslSocketImpl@@@vos@@8
+-??_R2ISocketAddr@vos@@8
+-??_R2ISocketTypes@vos@@8
+-??_R2OAcceptorSocket@vos@@8
+-??_R2OConnectorSocket@vos@@8
+-??_R2ODatagramSocket@vos@@8
+-??_R2OInetSocketAddr@vos@@8
+-??_R2OIpxSocketAddr@vos@@8
+-??_R2OSocket@vos@@8
+-??_R2OSocketAddr@vos@@8
+-??_R2OStreamSocket@vos@@8
+-??_R3?$ORefObj@PAUoslSocketImpl@@@vos@@8
+-??_R3ISocketAddr@vos@@8
+-??_R3ISocketTypes@vos@@8
+-??_R3OAcceptorSocket@vos@@8
+-??_R3OConnectorSocket@vos@@8
+-??_R3ODatagramSocket@vos@@8
+-??_R3OInetSocketAddr@vos@@8
+-??_R3OIpxSocketAddr@vos@@8
+-??_R3OSocket@vos@@8
+-??_R3OSocketAddr@vos@@8
+-??_R3OStreamSocket@vos@@8
+-??_R4?$ORefObj@PAUoslSocketImpl@@@vos@@6B@
+-??_R4ISocketAddr@vos@@6B@
+-??_R4ISocketTypes@vos@@6B@
+-??_R4OAcceptorSocket@vos@@6BISocketTypes@1@@
+-??_R4OAcceptorSocket@vos@@6BOObject@1@@
+-??_R4OAcceptorSocket@vos@@6BOReference@1@@
+-??_R4OConnectorSocket@vos@@6B@
+-??_R4OConnectorSocket@vos@@6BISocketTypes@1@@
+-??_R4OConnectorSocket@vos@@6BOObject@1@@
+-??_R4OConnectorSocket@vos@@6BOReference@1@@
+-??_R4ODatagramSocket@vos@@6BISocketTypes@1@@
+-??_R4ODatagramSocket@vos@@6BOObject@1@@
+-??_R4ODatagramSocket@vos@@6BOReference@1@@
+-??_R4OInetSocketAddr@vos@@6BISocketAddr@1@@
+-??_R4OInetSocketAddr@vos@@6BOObject@1@@
+-??_R4OIpxSocketAddr@vos@@6BISocketAddr@1@@
+-??_R4OIpxSocketAddr@vos@@6BOObject@1@@
+-??_R4OSocket@vos@@6BISocketTypes@1@@
+-??_R4OSocket@vos@@6BOObject@1@@
+-??_R4OSocket@vos@@6BOReference@1@@
+-??_R4OSocketAddr@vos@@6BISocketAddr@1@@
+-??_R4OSocketAddr@vos@@6BOObject@1@@
+-??_R4OStreamSocket@vos@@6B@
+-??_R4OStreamSocket@vos@@6BISocketTypes@1@@
+-??_R4OStreamSocket@vos@@6BOObject@1@@
+-??_R4OStreamSocket@vos@@6BOReference@1@@
+-?acceptConnection@OAcceptorSocket@vos@@QAA?AW4TResult@ISocketTypes@2@AAVOStreamSocket@2@@Z
+-?acceptConnection@OAcceptorSocket@vos@@QAA?AW4TResult@ISocketTypes@2@AAVOStreamSocket@2@AAVOSocketAddr@2@@Z
+-?acquire@?$ORefObj@PAUoslSocketImpl@@@vos@@UAAJXZ
+-?bind@OSocket@vos@@QAAEABVOSocketAddr@2@@Z
+-?classInfo@OAcceptorSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OConnectorSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@ODatagramSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OInetSocketAddr@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OIpxSocketAddr@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OSocket@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OSocketAddr@vos@@SAABUOClassInfo@2@XZ
+-?classInfo@OStreamSocket@vos@@SAABUOClassInfo@2@XZ
+-?clearError@OSocket@vos@@QBAJXZ
+-?close@OAcceptorSocket@vos@@UAAXXZ
+-?close@OSocket@vos@@UAAXXZ
+-?close@OStreamSocket@vos@@UAAXXZ
+-?connect@OConnectorSocket@vos@@QAA?AW4TResult@ISocketTypes@2@ABVOSocketAddr@2@PBUTimeValue@@@Z
+-?create@OSocket@vos@@QAAEW4TSocketType@ISocketTypes@2@W4TAddrFamily@42@W4TProtocol@42@@Z
+-?enableNonBlockingMode@OSocket@vos@@QAAEE@Z
+-?getAddressString@OIpxSocketAddr@vos@@QBAXAAVOUString@rtl@@@Z
+-?getClassInfo@OAcceptorSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OConnectorSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@ODatagramSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OInetSocketAddr@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OIpxSocketAddr@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OSocketAddr@vos@@UBAABUOClassInfo@2@XZ
+-?getClassInfo@OStreamSocket@vos@@UBAABUOClassInfo@2@XZ
+-?getDottedAddr@OInetSocketAddr@vos@@QBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getError@OSocket@vos@@QBA?AW4TSocketError@ISocketTypes@2@XZ
+-?getError@OSocket@vos@@QBAXAAVOUString@rtl@@@Z
+-?getFamily@OSocketAddr@vos@@UBA?AW4TAddrFamily@ISocketTypes@2@XZ
+-?getHostname@OSocketAddr@vos@@UBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getLocalAddr@OSocket@vos@@QBAXAAVOSocketAddr@2@@Z
+-?getLocalHost@OSocket@vos@@QBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getLocalHostname@OSocketAddr@vos@@SA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getLocalPort@OSocket@vos@@QBAJXZ
+-?getNetNumber@OIpxSocketAddr@vos@@QBA?AW4TResult@ISocketTypes@2@AAY03E@Z
+-?getNodeNumber@OIpxSocketAddr@vos@@QBA?AW4TResult@ISocketTypes@2@AAY05E@Z
+-?getOption@OSocket@vos@@QBAJW4TSocketOption@ISocketTypes@2@PAXKW4TSocketOptionLevel@42@@Z
+-?getPeerAddr@OSocket@vos@@QBAXAAVOSocketAddr@2@@Z
+-?getPeerHost@OSocket@vos@@QBA?AW4TResult@ISocketTypes@2@AAVOUString@rtl@@@Z
+-?getPeerPort@OSocket@vos@@QBAJXZ
+-?getPort@OInetSocketAddr@vos@@QBAJXZ
+-?getServicePort@OInetSocketAddr@vos@@SAJABVOUString@rtl@@0@Z
+-?getSocketNumber@OIpxSocketAddr@vos@@QBAKXZ
+-?getType@OSocket@vos@@QBA?AW4TSocketType@ISocketTypes@2@XZ
+-?isEof@OStreamSocket@vos@@UBAEXZ
+-?isExceptionPending@OSocket@vos@@QBAEPBUTimeValue@@@Z
+-?isNonBlockingMode@OSocket@vos@@QBAEXZ
+-?isRecvReady@OSocket@vos@@QBAEPBUTimeValue@@@Z
+-?isSendReady@OSocket@vos@@QBAEPBUTimeValue@@@Z
+-?isValid@OSocket@vos@@QBAEXZ
+-?listen@OAcceptorSocket@vos@@QAAEJ@Z
+-?read@OStreamSocket@vos@@UBAJPAXK@Z
+-?recv@OStreamSocket@vos@@QAAJPAXKW4TSocketMsgFlag@ISocketTypes@2@@Z
+-?recvFrom@ODatagramSocket@vos@@QAAJPAXKPAVOSocketAddr@2@W4TSocketMsgFlag@ISocketTypes@2@@Z
+-?referenced@?$ORefObj@PAUoslSocketImpl@@@vos@@UBAJXZ
+-?release@?$ORefObj@PAUoslSocketImpl@@@vos@@UAAJXZ
+-?resolveHostname@OSocketAddr@vos@@SAPAUoslSocketAddrImpl@@ABVOUString@rtl@@@Z
+-?send@OStreamSocket@vos@@QAAJPBXKW4TSocketMsgFlag@ISocketTypes@2@@Z
+-?sendTo@ODatagramSocket@vos@@QAAJABVOSocketAddr@2@PBXKW4TSocketMsgFlag@ISocketTypes@2@@Z
+-?setAddr@OInetSocketAddr@vos@@QAAEABVOUString@rtl@@@Z
+-?setBroadcast@OSocket@vos@@QBAJJ@Z
+-?setDebug@OSocket@vos@@QBAJJ@Z
+-?setDontRoute@OSocket@vos@@QBAJJ@Z
+-?setKeepAlive@OSocket@vos@@QBAJJ@Z
+-?setLinger@OSocket@vos@@QBAJJ@Z
+-?setOobinline@OSocket@vos@@QBAJJ@Z
+-?setOption@OSocket@vos@@QBAEW4TSocketOption@ISocketTypes@2@PAXKW4TSocketOptionLevel@42@@Z
+-?setPort@OInetSocketAddr@vos@@QAAEJ@Z
+-?setRecvBufSize@OSocket@vos@@QBAJJ@Z
+-?setRecvTimeout@OSocket@vos@@QAAXPBUTimeValue@@@Z
+-?setReuseAddr@OSocket@vos@@QBAJJ@Z
+-?setSendBufSize@OSocket@vos@@QBAJJ@Z
+-?setSendTimeout@OSocket@vos@@QAAXPBUTimeValue@@@Z
+-?setTcpNoDelay@OSocket@vos@@QBAJJ@Z
+-?shutdown@OStreamSocket@vos@@QAAEW4TSocketDirection@ISocketTypes@2@@Z
+-?write@OStreamSocket@vos@@UAAJPBXK@Z
+-??0OReference@vos@@QAE@XZ
+-??1ORefCount@vos@@UAE@XZ
+-??1OReference@vos@@UAE@XZ
+-??_7OReference@vos@@6B@
+-??_GOReference@vos@@UAEPAXI@Z
+-??_R4OReference@vos@@6B@
+-?acquire@OReference@vos@@UAAJXZ
+-?release@OReference@vos@@UAAJXZ
+-??0OClassInfo@vos@@QAE@PBDJPBU01@KP6APAVOObject@1@ABUOCreateParam@1@@Z@Z
+-??0OObject@vos@@QAE@ABUOCreateParam@1@@Z
+-??0OObject@vos@@QAE@XZ
+-??0VOS_CLASSINIT@vos@@QAE@PAUOClassInfo@1@@Z
+-??1OObject@vos@@UAE@XZ
+-??2OObject@vos@@SAPAXI@Z
+-??2OObject@vos@@SAPAXIPAX@Z
+-??3OObject@vos@@SAXPAX@Z
+-??_7OObject@vos@@6B@
+-??_GOObject@vos@@UAEPAXI@Z
+-??_R4OObject@vos@@6B@
+-?classInfo@OObject@vos@@SAABUOClassInfo@2@XZ
+-?createObject@OClassInfo@vos@@QBAPAVOObject@2@ABUOCreateParam@2@@Z
+-?getClassInfo@OClassInfo@vos@@SAPBU12@PBD@Z
+-?getClassInfo@OObject@vos@@UBAABUOClassInfo@2@XZ
+-?isDerivedFrom@OClassInfo@vos@@QBAEABU12@@Z
+-?isKindOf@OObject@vos@@QBAEABUOClassInfo@2@@Z
+-??0IMutex@vos@@IAE@XZ
+-??0OMutex@vos@@QAE@XZ
+-??1IMutex@vos@@MAE@XZ
+-??1OMutex@vos@@UAE@XZ
+-??_7IMutex@vos@@6B@
+-??_7OMutex@vos@@6BIMutex@1@@
+-??_7OMutex@vos@@6BOObject@1@@
+-??_EOMutex@vos@@W3AEPAXI@Z
+-??_GIMutex@vos@@MAEPAXI@Z
+-??_GOMutex@vos@@UAEPAXI@Z
+-??_R0?AVIMutex@vos@@@8
+-??_R0?AVOMutex@vos@@@8
+-??_R13?0A@EA@IMutex@vos@@8
+-??_R1A@?0A@EA@IMutex@vos@@8
+-??_R1A@?0A@EA@OMutex@vos@@8
+-??_R2IMutex@vos@@8
+-??_R2OMutex@vos@@8
+-??_R3IMutex@vos@@8
+-??_R3OMutex@vos@@8
+-??_R4IMutex@vos@@6B@
+-??_R4OMutex@vos@@6BIMutex@1@@
+-??_R4OMutex@vos@@6BOObject@1@@
+-?acquire@OMutex@vos@@UAAXXZ
+-?classInfo@OMutex@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OMutex@vos@@UBAABUOClassInfo@2@XZ
+-?getGlobalMutex@OMutex@vos@@SAAAVIMutex@2@XZ
+-?release@OMutex@vos@@UAAXXZ
+-?tryToAcquire@OMutex@vos@@UAAEXZ
+-??0ICondition@vos@@QAE@XZ
+-??0OCondition@vos@@QAE@XZ
+-??1ICondition@vos@@UAE@XZ
+-??1OCondition@vos@@UAE@XZ
+-??_7ICondition@vos@@6B@
+-??_7OCondition@vos@@6BICondition@1@@
+-??_7OCondition@vos@@6BOObject@1@@
+-??_EOCondition@vos@@W3AEPAXI@Z
+-??_GICondition@vos@@UAEPAXI@Z
+-??_GOCondition@vos@@UAEPAXI@Z
+-??_R0?AVICondition@vos@@@8
+-??_R0?AVOCondition@vos@@@8
+-??_R13?0A@EA@ICondition@vos@@8
+-??_R1A@?0A@EA@ICondition@vos@@8
+-??_R1A@?0A@EA@OCondition@vos@@8
+-??_R2ICondition@vos@@8
+-??_R2OCondition@vos@@8
+-??_R3ICondition@vos@@8
+-??_R3OCondition@vos@@8
+-??_R4ICondition@vos@@6B@
+-??_R4OCondition@vos@@6BICondition@1@@
+-??_R4OCondition@vos@@6BOObject@1@@
+-?check@OCondition@vos@@UAAEXZ
+-?classInfo@OCondition@vos@@SAABUOClassInfo@2@XZ
+-?getClassInfo@OCondition@vos@@UBAABUOClassInfo@2@XZ
+-?reset@OCondition@vos@@UAAXXZ
+-?set@OCondition@vos@@UAAXXZ
+-?wait@OCondition@vos@@UAA?AW4TResult@ICondition@2@PBUTimeValue@@@Z
+-??RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@QAEPAVOMutex@vos@@XZ
+-??_B?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@QAEPAVOMutex@vos@@XZ@51
+-?create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x79556850@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@VGetGlobalMutex@osl@@@Z
+-?get@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@SAAAVOMutex@vos@@XZ
+-?instance@?1???RStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@QAEPAVOMutex@vos@@XZ@4V45@A
+-?m_pInstance@?1??create@?$rtl_Instance@VOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@V?$Guard@VMutex@osl@@@osl@@VGetGlobalMutex@7@HH@?A0x79556850@@SAPAVOMutex@vos@@UStaticInstance@?$Static@VOMutex@vos@@UlclMutex@?A0x79556850@@@rtl@@VGetGlobalMutex@osl@@@Z@4PAV45@A
+diff --git a/vos/util/libvos1C50.so.mapfile b/vos/util/libvos1C50.so.mapfile
+deleted file mode 100644
+index 9891ef9..0000000
+--- vos/util/libvos1C50.so.mapfile
++++ /dev/null
+@@ -1,274 +0,0 @@
+-{
+-	global:
+-		__1cDvosFOPipe2G6Mrk1_r1_;
+-		__1cDvosFOPipe2T6M_v_;
+-		__1cDvosFOPipe2t6M_v_;
+-		__1cDvosFOPipe2t6Mpkcn0BLTPipeOption__v_;
+-		__1cDvosFOPipe2t6Mpkcn0BLTPipeOption_rkn0AJOSecurity__v_;
+-		__1cDvosFOPipe2v6kM_pv_;
+-		__1cDvosFOPipeEsend6MpkvL_l_;
+-		__1cDvosFOPipeFclose6M_v_;
+-		__1cDvosFOPipeGaccept6Mrn0ALOStreamPipe__n0BKTPipeError__;
+-		__1cDvosFOPipeGcreate6Mpkcn0BLTPipeOption__C_;
+-		__1cDvosFOPipeGcreate6Mpkcn0BLTPipeOption_rkn0AJOSecurity__C_;
+-		__1cDvosFOPipeHisValid6kM_C_;
+-		__1cDvosGIMutex2T5B6M_v_;
+-		__1cDvosGIMutexG__vtbl_;
+-		__1cDvosGOMutex2T5B6M_v_;
+-		__1cDvosGOMutex2T6M_v_;
+-		__1cDvosGOMutex2t5B6M_v_;
+-		__1cDvosGOMutex2t6M_v_;
+-		__1cDvosGOMutexHacquire6M_v_;
+-		__1cDvosGOMutexHrelease6M_v_;
+-		__1cDvosGOMutexJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosGOMutexMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosGOMutexMtryToAcquire6M_C_;
+-		__1cDvosGOMutexOgetGlobalMutex6F_rn0AGIMutex__;
+-		__1cDvosGOTimer2T5B6M_v_;
+-		__1cDvosGOTimer2t5B6M_v_;
+-		__1cDvosGOTimer2t5B6Mrkn0AKTTimeValue_4_v_;
+-		__1cDvosGOTimer2t5B6Mrkn0AKTTimeValue__v_;
+-		__1cDvosGOTimerEstop6M_v_;
+-		__1cDvosGOTimerFstart6M_v_;
+-		__1cDvosGOTimerJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosGOTimerJisTicking6kM_C_;
+-		__1cDvosGOTimerMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosGOTimerQsetRemainingTime6Mrkn0AKTTimeValue__v_;
+-		__1cDvosHIStream2T5B6M_v_;
+-		__1cDvosHODaemon2T5B6M_v_;
+-		__1cDvosHODaemon2t5B6Mpkcp24Ln0ANIDaemonAccessSTDaemonStartupMode_4_v_;
+-		__1cDvosHODaemonHacquire6M_l_;
+-		__1cDvosHODaemonHexecute6Mlppc_n0AOIDaemonManagerTTDaemonManagerError__;
+-		__1cDvosHODaemonHgetMode6kM_n0ANIDaemonAccessSTDaemonStartupMode__;
+-		__1cDvosHODaemonHrelease6M_l_;
+-		__1cDvosHODaemonJgetStatus6kM_n0ANIDaemonAccessNTDaemonStatus__;
+-		__1cDvosHODaemonJparseArgs6Flppc_n0BSTCommandLineOption__;
+-		__1cDvosHODaemonJsetStatus6Mn0ANIDaemonAccessNTDaemonStatus__v_;
+-		__1cDvosHODaemonKgetVersion6kM_L_;
+-		__1cDvosHODaemonKreferenced6kM_l_;
+-		__1cDvosHODaemonLsetListener6Mrkn0AEORef4n0APIDaemonListener____v_;
+-		__1cDvosHODaemonMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosHODaemonNgetIdentifier6kM_pkc_;
+-		__1cDvosHODaemonNgetManufactor6kM_pkc_;
+-		__1cDvosHODaemonOgetDisplayName6kM_pkc_;
+-		__1cDvosHODaemonPgetDependencies6kM_pkc_;
+-		__1cDvosHODaemonQexecuteAsProcess6MC_n0AOIDaemonManagerTTDaemonManagerError__;
+-		__1cDvosHOModule2T6M_v_;
+-		__1cDvosHOModule2t6Mpkcl_v_;
+-		__1cDvosHOModuleEload6Mpkcl_C_;
+-		__1cDvosHOModuleGunload6M_v_;
+-		__1cDvosHOModuleJgetSymbol6Mpkc_pv_;
+-		__1cDvosHOObject2T5B6M_v_;
+-		__1cDvosHOObject2k6Fpv_v_;
+-		__1cDvosHOObject2n6FI_pv_;
+-		__1cDvosHOObject2n6FIpv_2_;
+-		__1cDvosHOObject2t5B6M_v_;
+-		__1cDvosHOObjectIisKindOf6kMrkn0AKOClassInfo__C_;
+-		__1cDvosHOObjectJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosHOObjectMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosHOSocket2T5B6M_v_;
+-		__1cDvosHOSocket2t5B6Mn0AMISocketTypesLTSocketType_n0CLTAddrFamily_n0CJTProtocol__v_;
+-		__1cDvosHOSocket2t5B6Mpv_v_;
+-		__1cDvosHOSocket2v6kM_pv_;
+-		__1cDvosHOSocketEbind6Mrkn0ALOSocketAddr__C_;
+-		__1cDvosHOSocketFclose6M_v_;
+-		__1cDvosHOSocketHisValid6kM_C_;
+-		__1cDvosHOSocketJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosHOSocketLgetPeerAddr6kMrn0ALOSocketAddr__v_;
+-		__1cDvosHOSocketLgetPeerHost6kMpcl_n0AMISocketTypesHTResult__;
+-		__1cDvosHOSocketLgetPeerPort6kM_l_;
+-		__1cDvosHOSocketMgetLocalAddr6kMrn0ALOSocketAddr__v_;
+-		__1cDvosHOSocketMgetLocalHost6kMpcl_n0AMISocketTypesHTResult__;
+-		__1cDvosHOSocketMgetLocalPort6kM_l_;
+-		__1cDvosHOSocketMsetReuseAddr6kMl_l_;
+-		__1cDvosHOSocketNsetTcpNoDelay6kMl_l_;
+-		__1cDvosHOSocketOsetRecvBufSize6kMl_l_;
+-		__1cDvosHOSocketOsetSendBufSize6kMl_l_;
+-		__1cDvosHOSocketVenableNonBlockingMode6MC_C_;
+-		__1cDvosHOThread2T5B6M_v_;
+-		__1cDvosHOThread2t5B6M_v_;
+-		__1cDvosHOThreadEjoin6M_v_;
+-		__1cDvosHOThreadEkill6M_v_;
+-		__1cDvosHOThreadEwait6FrknJTimeValue__v_;
+-		__1cDvosHOThreadFsleep6MrknJTimeValue__n0BMTThreadSleep__;
+-		__1cDvosHOThreadFyield6F_v_;
+-		__1cDvosHOThreadGcreate6M_C_;
+-		__1cDvosHOThreadGresume6M_v_;
+-		__1cDvosHOThreadHsuspend6M_v_;
+-		__1cDvosHOThreadIschedule6M_C_;
+-		__1cDvosHOThreadJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosHOThreadJisRunning6M_C_;
+-		__1cDvosHOThreadJterminate6M_v_;
+-		__1cDvosHOThreadLsetPriority6Mn0BPTThreadPriority__v_;
+-		__1cDvosHOThreadMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosHOThreadMonTerminated6M_v_;
+-		__1cDvosHOThreadNgetIdentifier6kM_L_;
+-		__1cDvosHOThreadPcreateSuspended6M_C_;
+-		__1cDvosHOThreadUgetCurrentIdentifier6F_L_;
+-		__1cDvosIOChannelNcreateChannel6Frn0AHOObject__n0AEORef4n0B____;
+-		__1cDvosIOProcess2T6M_v_;
+-		__1cDvosIOProcess2t6Mpkcp2E_v_;
+-		__1cDvosIOProcess2t6Mpkcpp2L_v_;
+-		__1cDvosIOProcessEjoin6M_n0BNTProcessError__;
+-		__1cDvosIOProcessHexecute6Mn0BOTProcessOption__n0BNTProcessError__;
+-		__1cDvosIOProcessHexecute6Mn0BOTProcessOption_rkn0AJOSecurity__n0BNTProcessError__;
+-		__1cDvosIOProcessHgetInfo6kMn0BMTProcessData_pn0BMTProcessInfo__n0BNTProcessError__;
+-		__1cDvosIOProcessJterminate6M_n0BNTProcessError__;
+-		__1cDvosIOProcessKgetProcess6FL_p1_;
+-		__1cDvosIOProcessMsetDirectory6Mpkc_v_;
+-		__1cDvosIOProcessOaddEnvironment6Mpkcp2_v_;
+-		__1cDvosIOProcessOgetCurrentInfo6Fn0BMTProcessData_pn0BMTProcessInfo__n0BNTProcessError__;
+-		__1cDvosIOProcessRprovideIOResource6Mpvn0BQTDescriptorFlags__v_;
+-		__1cDvosIOProfile2T5B6M_v_;
+-		__1cDvosIOProfile2T6M_v_;
+-		__1cDvosIOProfile2t5B6M_v_;
+-		__1cDvosIOProfile2t5B6Mpkcn0BOTProfileOption__v_;
+-		__1cDvosIOProfile2t6M_v_;
+-		__1cDvosIOProfile2t6Mpkcn0BOTProfileOption__v_;
+-		__1cDvosIOProfileEopen6Mpkcn0BOTProfileOption__C_;
+-		__1cDvosIOProfileFclose6M_v_;
+-		__1cDvosIOProfileIreadBool6Mpkcp2C_C_;
+-		__1cDvosIOProfileJreadIdent6Mpkcp2Lp4L_L_;
+-		__1cDvosIOProfileJwriteBool6Mpkcp2C_C_;
+-		__1cDvosIOProfileKreadString6Mpkcp2pcL4_C_;
+-		__1cDvosIOProfileKwriteIdent6Mpkcp2Lp4L_C_;
+-		__1cDvosIOProfileLgetSections6MpkcpcL_L_;
+-		__1cDvosIOProfileLremoveEntry6Mpkcp2_C_;
+-		__1cDvosIOProfileLwriteString6Mpkcp24_C_;
+-		__1cDvosIOProfileOgetProfileName6FpcLpkcp3_C_;
+-		__1cDvosIOProfileRgetSectionEntries6MpkcpcL_L_;
+-		__1cDvosJOAcceptor2T5B6M_v_;
+-		__1cDvosJOAcceptor2t5B6Mrn0AVIAcceptHandlerFactory_rn0ALOSocketAddr_n0AMISocketTypesJTProtocol_n0ELTSocketType_C_v_;
+-		__1cDvosJOAcceptor2t6Mrn0AVIAcceptHandlerFactory_rn0ALOSocketAddr_n0AMISocketTypesJTProtocol_n0ELTSocketType_C_v_;
+-		__1cDvosJOAcceptorDrun6M_v_;
+-		__1cDvosJOAcceptorJterminate6M_v_;
+-		__1cDvosJOAcceptorRacceptConnections6Ml_C_;
+-		__1cDvosJORefCount2T6M_v_;
+-		__1cDvosJORefCountG__vtbl_;
+-		__1cDvosJOSecurity2T6M_v_;
+-		__1cDvosJOSecurity2t6M_v_;
+-		__1cDvosJOSecurityJlogonUser6Mpkcp2_C_;
+-		__1cDvosJOSecurityKgetHomeDir6kMpcL_C_;
+-		__1cDvosJOSecurityLgetUserName6kMpcL_C_;
+-		__1cDvosJOSecurityMgetConfigDir6kMpcL_C_;
+-		__1cDvosJOSecurityMgetUserIdent6kMpcL_C_;
+-		__1cDvosJOSecurityPisAdministrator6kM_C_;
+-		__1cDvosKIReference2T5B6M_v_;
+-		__1cDvosKIReferenceG__vtbl_;
+-		__1cDvosKOClassInfo2t6Mpkclpk1LpFrkn0AMOCreateParam__pn0AHOObject__v_;
+-		__1cDvosKOClassInfoNisDerivedFrom6kMrk1_C_;
+-		__1cDvosKOCondition2T6M_v_;
+-		__1cDvosKOCondition2t6M_v_;
+-		__1cDvosKOConditionDset6M_v_;
+-		__1cDvosKOConditionEwait6MpknJTimeValue__n0AKIConditionHTResult__;
+-		__1cDvosKOConditionFcheck6M_C_;
+-		__1cDvosKOConditionFreset6M_v_;
+-		__1cDvosKOReference2T5B6M_v_;
+-		__1cDvosKOReference2t5B6M_v_;
+-		__1cDvosKOReferenceHacquire6M_l_;
+-		__1cDvosKOReferenceHrelease6M_l_;
+-		__1cDvosKOSemaphore2T6M_v_;
+-		__1cDvosKOSemaphore2t6M_v_;
+-		__1cDvosKOSemaphoreG__vtbl_;
+-		__1cDvosKOSemaphoreGcreate6ML_v_;
+-		__1cDvosKOSemaphoreHacquire6M_v_;
+-		__1cDvosKOSemaphoreHrelease6M_v_;
+-		__1cDvosKOSemaphoreMtryToAcquire6M_C_;
+-		__1cDvosLOEventQdDueueNdispatchEvent6Ml_C_;
+-		__1cDvosLOEventQdDueueQregisterListener6Mpn0ATIEventQdDueueListener__C_;
+-		__1cDvosLOEventQdDueueSderegisterListener6Mpn0ATIEventQdDueueListener__C_;
+-		__1cDvosLOSocketAddr2G6Mrk1_r1_;
+-		__1cDvosLOSocketAddr2T6M_v_;
+-		__1cDvosLOSocketAddr2t6M_v_;
+-		__1cDvosLOSocketAddr2t6Mpv_v_;
+-		__1cDvosLOSocketAddr2v6kM_pv_;
+-		__1cDvosLOSocketAddrLgetHostname6kMpcl_n0AMISocketTypesHTResult__;
+-		__1cDvosLOSocketAddrPresolveHostname6Fpkc_pv_;
+-		__1cDvosLOSocketAddrQgetLocalHostname6Fpcl_n0AMISocketTypesHTResult__;
+-		__1cDvosLOStreamPipe2G6Mpv_r1_;
+-		__1cDvosLOStreamPipe2G6Mrkn0AFOPipe__r1_;
+-		__1cDvosLOStreamPipe2T6M_v_;
+-		__1cDvosLOStreamPipe2t6M_v_;
+-		__1cDvosLOStreamPipe2t6Mrk1_v_;
+-		__1cDvosLOStreamPipeEread6kMpvL_l_;
+-		__1cDvosLOStreamPipeFisEof6kM_C_;
+-		__1cDvosLOStreamPipeFwrite6MpkvL_l_;
+-		__1cDvosLOThreadData2T6M_v_;
+-		__1cDvosLOThreadData2t6M_v_;
+-		__1cDvosLOThreadDataHgetData6M_pv_;
+-		__1cDvosLOThreadDataHsetData6Mpv_C_;
+-		__1cDvosMOStartupInfo2T6M_v_;
+-		__1cDvosMOStartupInfo2t6M_v_;
+-		__1cDvosMOStartupInfoOgetCommandArgs6MpcL_n0BNTStartupError__;
+-		__1cDvosMOStartupInfoOgetEnvironment6MpkcpcL_n0BNTStartupError__;
+-		__1cDvosMOStartupInfoQacceptIOResource6Mrn0AHOSocket__C_;
+-		__1cDvosMOStartupInfoRgetExecutableFile6MpcL_n0BNTStartupError__;
+-		__1cDvosNOStreamSocket2G6Mrk1_r1_;
+-		__1cDvosNOStreamSocket2T6M_v_;
+-		__1cDvosNOStreamSocket2t6M_v_;
+-		__1cDvosNOStreamSocket2t6Mrk1_v_;
+-		__1cDvosNOStreamSocketEread6kMpvL_l_;
+-		__1cDvosNOStreamSocketErecv6MpvLn0AMISocketTypesOTSocketMsgFlag__l_;
+-		__1cDvosNOStreamSocketFclose6M_v_;
+-		__1cDvosNOStreamSocketFisEof6kM_C_;
+-		__1cDvosNOStreamSocketFwrite6MpkvL_l_;
+-		__1cDvosNOStreamSocketIshutdown6Mn0AMISocketTypesQTSocketDirection__C_;
+-		__1cDvosNOStreamSocketJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosNVOS_CLASSINIT2t6Mpn0AKOClassInfo__v_;
+-		__1cDvosOIAcceptHandler2T5B6M_v_;
+-		__1cDvosOIDaemonManagerQgetGlobalManager6F_n0AEORef4n0B____;
+-		__1cDvosOOBaseException2T5B6M_v_;
+-		__1cDvosOOBaseExceptionG__vtbl_;
+-		__1cDvosOOBaseExceptionJclassInfo6F_rkn0AKOClassInfo__;
+-		__1cDvosOOBaseExceptionMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosOOChannelBrokerWgetGlobalChannelBroker6F_n0AEORef4n0B____;
+-		__1cDvosOOSignalHandler2T5B6M_v_;
+-		__1cDvosOOSignalHandler2t5B6M_v_;
+-		__1cDvosOOSignalHandlerFraise6Flpv_n0BNTSignalAction__;
+-		__1cDvosOOSignalHandlerMgetClassInfo6kM_rkn0AKOClassInfo__;
+-		__1cDvosPOAcceptorSocket2T6M_v_;
+-		__1cDvosPOAcceptorSocket2t6Mn0AMISocketTypesLTAddrFamily_n0CJTProtocol_n0CLTSocketType__v_;
+-		__1cDvosPOAcceptorSocketFclose6M_v_;
+-		__1cDvosPOAcceptorSocketGlisten6Ml_C_;
+-		__1cDvosPOAcceptorSocketQacceptConnection6Mrn0ANOStreamSocket__n0AMISocketTypesHTResult__;
+-		__1cDvosPODaemonProperty2G6Mrk1_r1_;
+-		__1cDvosPODaemonProperty2T6M_v_;
+-		__1cDvosPODaemonProperty2t6M_v_;
+-		__1cDvosPODaemonProperty2t6MpkcC_v_;
+-		__1cDvosPODaemonProperty2t6MpkcL_v_;
+-		__1cDvosPODaemonProperty2t6MpkcrknDrtlHOString__v_;
+-		__1cDvosPODaemonPropertyHgetName6kM_nDrtlHOString__;
+-		__1cDvosPODaemonPropertyHgetType6kM_n0BTTDaemonPropertyType__;
+-		__1cDvosPODaemonPropertyIgetULong6ML_L_;
+-		__1cDvosPODaemonPropertyJgetString6ML_nDrtlHOString__;
+-		__1cDvosPODaemonPropertyKgetBoolean6ML_C_;
+-		__1cDvosPOInetSocketAddr2G6Mrk1_r1_;
+-		__1cDvosPOInetSocketAddr2T6M_v_;
+-		__1cDvosPOInetSocketAddr2t6M_v_;
+-		__1cDvosPOInetSocketAddr2t6Mpkcl_v_;
+-		__1cDvosPOInetSocketAddr2t6Mpv_v_;
+-		__1cDvosPOInetSocketAddr2t6Mrkn0ALOSocketAddr__v_;
+-		__1cDvosPOInetSocketAddrHgetPort6kM_l_;
+-		__1cDvosPOInetSocketAddrHsetAddr6Mpkc_C_;
+-		__1cDvosPOInetSocketAddrHsetPort6Ml_C_;
+-		__1cDvosPOInetSocketAddrNgetDottedAddr6kMpcl_n0AMISocketTypesHTResult__;
+-		__1cDvosQOConnectorSocket2T6M_v_;
+-		__1cDvosQOConnectorSocket2t6Mn0AMISocketTypesLTAddrFamily_n0CJTProtocol_n0CLTSocketType__v_;
+-		__1cDvosQOConnectorSocketHconnect6Mrkn0ALOSocketAddr_pknJTimeValue__n0AMISocketTypesHTResult__;
+-		__1cDvosSORealDynamicLoaderGgetApi6kM_pv_;
+-		__1cDvosSORealDynamicLoaderHacquire6M_L_;
+-		__1cDvosSORealDynamicLoaderHrelease6M_L_;
+-		__1cDvosSORealDynamicLoaderLnewInstance6Fpp1pkcp4C_2_;
+-		__1cDvosSORealDynamicLoaderLnewInstance6Fpp1pkcp4ClC_2_;
+-		__1cDvosSORealDynamicLoaderQcomputeSolarName6Fpkcpcl_l_;
+-		__1cDvosSORealDynamicLoaderRcomputeModuleName6Fpkcpcl_l_;
+-		__1cDvosSORealDynamicLoaderScomputeLibraryName6Fpkcpcl_l_;
+-		__1cDvosTIEventQdDueueListener2T5B6M_v_;
+-		__1cDvosVIAcceptHandlerFactory2T5B6M_v_;
+-		__1cDvosW__RTTI__1nDvosGOTimer__;
+-		vosEngulfException;
+-		vosMatchException;
+-		vosSalvageException;
+-	local:
+-		*;
+-};
+\ No newline at end of file
+diff --git a/vos/util/makefile.mk b/vos/util/makefile.mk
+deleted file mode 100644
+index b505f7f..0000000
+--- vos/util/makefile.mk
++++ /dev/null
+@@ -1,93 +0,0 @@
+-#*************************************************************************
+-#
+-#   OpenOffice.org - a multi-platform office productivity suite
+-#
+-#   $RCSfile: makefile.mk,v $
+-#
+-#   $Revision: 1.8 $
+-#
+-#   last change: $Author: vg $ $Date: 2007/03/26 15:34:24 $
+-#
+-#   The Contents of this file are made available subject to
+-#   the terms of GNU Lesser General Public License Version 2.1.
+-#
+-#
+-#     GNU Lesser General Public License Version 2.1
+-#     =============================================
+-#     Copyright 2005 by Sun Microsystems, Inc.
+-#     901 San Antonio Road, Palo Alto, CA 94303, USA
+-#
+-#     This library is free software; you can redistribute it and/or
+-#     modify it under the terms of the GNU Lesser General Public
+-#     License version 2.1, as published by the Free Software Foundation.
+-#
+-#     This library is distributed in the hope that it will be useful,
+-#     but WITHOUT ANY WARRANTY; without even the implied warranty of
+-#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-#     Lesser General Public License for more details.
+-#
+-#     You should have received a copy of the GNU Lesser General Public
+-#     License along with this library; if not, write to the Free Software
+-#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+-#     MA  02111-1307  USA
+-#
+-#*************************************************************************
+-
+-RTLLIB=irtl.lib
+-
+-PRJ=..
+-
+-PRJNAME=vos
+-TARGET=vos
+-TARGETTYPE=CUI
+-
+-# --- Settings -----------------------------------------------------
+-
+-.INCLUDE :  settings.mk
+-.INCLUDE :  ..$/version.mk
+-
+-# --- Files --------------------------------------------------------
+-
+-SHL1TARGET=$(VOS_TARGET)$(VOS_MAJOR)$(COMID)
+-SHL1IMPLIB=i$(TARGET)
+-
+-.IF "$(GUI)"=="WNT"
+-SHL1STDLIBS=$(WSOCK32LIB) $(SALLIB)
+-.ELSE
+-SHL1STDLIBS=$(SALLIB)
+-.ENDIF
+-
+-SHL1LIBS=    $(SLB)$/cpp$(TARGET).lib
+-.IF "$(GUI)" != "UNX"
+-.IF "$(COM)" != "GCC"
+-SHL1OBJS=    \
+-    $(SLO)$/object.obj
+-.ENDIF
+-.ENDIF
+-
+-SHL1DEPN=
+-SHL1DEF=    $(MISC)$/$(SHL1TARGET).def
+-
+-DEF1NAME    =$(SHL1TARGET)
+-DEF1DEPN    =$(MISC)$/$(SHL1TARGET).flt
+-DEFLIB1NAME =cppvos
+-
+-# --- Targets ------------------------------------------------------
+-
+-.INCLUDE :  target.mk
+-
+-$(MISC)$/$(SHL1TARGET).flt:
+-    @echo ------------------------------
+-    @echo Making: $@
+-    @echo WEP > $@
+-    @echo LIBMAIN >> $@
+-    @echo LibMain >> $@
+-    @echo _alloc >> $@
+-    @echo alloc >> $@
+-    @echo _CT >> $@
+-    @echo _TI2 >> $@
+-    @echo _TI1 >> $@
+-    @echo exception::exception >> $@
+-    @echo @std@ >> $@
+-    @echo __>>$@
+-
+diff --git a/vos/version.mk b/vos/version.mk
+deleted file mode 100644
+index de1f115..0000000
+--- vos/version.mk
++++ /dev/null
+@@ -1,48 +0,0 @@
+-#*************************************************************************
+-#
+-#   OpenOffice.org - a multi-platform office productivity suite
+-#
+-#   $RCSfile: version.mk,v $
+-#
+-#   $Revision: 1.3 $
+-#
+-#   last change: $Author: rt $ $Date: 2005/09/09 08:56:55 $
+-#
+-#   The Contents of this file are made available subject to
+-#   the terms of GNU Lesser General Public License Version 2.1.
+-#
+-#
+-#     GNU Lesser General Public License Version 2.1
+-#     =============================================
+-#     Copyright 2005 by Sun Microsystems, Inc.
+-#     901 San Antonio Road, Palo Alto, CA 94303, USA
+-#
+-#     This library is free software; you can redistribute it and/or
+-#     modify it under the terms of the GNU Lesser General Public
+-#     License version 2.1, as published by the Free Software Foundation.
+-#
+-#     This library is distributed in the hope that it will be useful,
+-#     but WITHOUT ANY WARRANTY; without even the implied warranty of
+-#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-#     Lesser General Public License for more details.
+-#
+-#     You should have received a copy of the GNU Lesser General Public
+-#     License along with this library; if not, write to the Free Software
+-#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+-#     MA  02111-1307  USA
+-#
+-#*************************************************************************
+-
+-# target
+-VOS_TARGET=vos
+-
+-# the major 
+-VOS_MAJOR=3
+-# the minor 
+-VOS_MINOR=0
+-# the micro 
+-VOS_MICRO=0
+-
+-# this is a c++ compatible library 
+-VOS_CPP=1
+-
+diff --git a/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/makefile.mk b/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/makefile.mk
+index 325bffd..adb9044 100644
+--- xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/makefile.mk
++++ xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/makefile.mk
+@@ -72,7 +72,6 @@ SHL1TARGET= FlatXml
+ 
+ SHL1STDLIBS= \
+ 		$(SALLIB)	\
+-		$(VOSLIB)	\
+ 		$(CPPULIB) 	\
+ 		$(CPPUHELPERLIB) 
+ 
+diff --git a/xmlhelp/source/cxxhelp/test/makefile.mk b/xmlhelp/source/cxxhelp/test/makefile.mk
+index a3af8af..1435482 100644
+--- xmlhelp/source/cxxhelp/test/makefile.mk
++++ xmlhelp/source/cxxhelp/test/makefile.mk
+@@ -61,8 +61,7 @@ APP1OBJS=\
+ 	$(OBJ)$/searchdemo.obj
+ 
+ APP1STDLIBS=\
+-	$(SALLIB) \
+-	$(VOSLIB)
++	$(SALLIB)
+ 
+ APP1LIBS=\
+ 	$(SLB)/jaqe.lib \
+diff --git a/xmlhelp/source/treeview/makefile.mk b/xmlhelp/source/treeview/makefile.mk
+index 4f64f28..cac6974 100644
+--- xmlhelp/source/treeview/makefile.mk
++++ xmlhelp/source/treeview/makefile.mk
+@@ -65,7 +65,6 @@ SHL1STDLIBS=\
+ 	$(CPPULIB) \
+ 	$(EXPATASCII3RDLIB)      \
+ 	$(SALLIB)  \
+-	$(VOSLIB) \
+ 	$(UCBHELPERLIB)
+ SHL1VERSIONMAP=	$(TARGET).map
+ 
+diff --git a/xmloff/util/makefile.mk b/xmloff/util/makefile.mk
+index fa3a5b6..be129fc 100644
+--- xmloff/util/makefile.mk
++++ xmloff/util/makefile.mk
+@@ -77,7 +77,6 @@ SHL1STDLIBS= \
+ 		$(SVTOOLLIB)	\
+ 		$(TOOLSLIB)		\
+ 		$(I18NISOLANGLIB) \
+-		$(VOSLIB)		\
+ 		$(CPPULIB)		\
+ 		$(CPPUHELPERLIB)\
+ 		$(COMPHELPERLIB)\
+diff --git a/xmlsecurity/util/makefile.mk b/xmlsecurity/util/makefile.mk
+index dfc85d6..08cd732 100644
+--- xmlsecurity/util/makefile.mk
++++ xmlsecurity/util/makefile.mk
+@@ -155,7 +155,6 @@ SHL4STDLIBS=\
+ 				$(TOOLSLIB) 		\
+ 				$(SVTOOLLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(SVLLIB)			\
+ 				$(SFXLIB)			\
+diff --git a/xmlsecurity/workben/makefile.mk b/xmlsecurity/workben/makefile.mk
+index 45b135b..27c391b 100644
+--- xmlsecurity/workben/makefile.mk
++++ xmlsecurity/workben/makefile.mk
+@@ -64,7 +64,6 @@ APP1STDLIBS=	$(CPPULIB)			\
+ 				$(TOOLSLIB) 		\
+ 				$(SVTOOLLIB) 		\
+ 				$(SALLIB)			\
+-				$(VOSLIB)			\
+ 				$(SOTLIB)			\
+ 				$(VCLLIB)			\
+ 				$(SFXLIB)			\
+diff --git a/xmlhelp/source/helpprovider/makefile.mk b/xmlhelp/source/helpprovider/makefile.mk
+index de24980..a2fcf7b 100644
+--- xmlhelp/source/helpprovider/makefile.mk
++++ xmlhelp/source/helpprovider/makefile.mk
+@@ -61,8 +61,7 @@ SHL1VERSIONMAP=exports.map
+ SHL1STDLIBS=\
+ 	$(CPPUHELPERLIB) \
+ 	$(CPPULIB) \
+-	$(SALLIB) \
+-	$(VOSLIB)
++	$(SALLIB)
+ 
+ DEF1NAME=$(SHL1TARGET)
+ DEF1DES=UCB : Help System Content Provider
+--- scp2/source/ooo/file_library_ooo.scp	2007-11-27 16:57:09.000000000 +0100
++++ scp2/source/ooo/file_library_ooo.scp	2007-11-27 18:13:20.000000000 +0100
+@@ -2506,17 +2506,6 @@ End
+ 
+ #endif
+ 
+-File gid_File_Lib_Vos
+-    TXT_FILE_BODY;
+-  #ifdef UNX
+-    Name = STRING(CONCAT3(libvos3,COMID,UNXSUFFIX));
+-  #else
+-    Name = STRING(CONCAT3(vos3,COMID,.dll));
+-  #endif
+-    Dir = gid_Dir_Program;
+-    Styles = (PACKED,PATCH);
+-End
+-
+ // STD_UNO_LIB_FILE( gid_File_Lib_Wrp, wrp)
+ 
+ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Xcr, xcr)
+--- scp2/source/ooo/module_hidden_ooo.scp	2007-11-27 16:57:08.000000000 +0100
++++ scp2/source/ooo/module_hidden_ooo.scp	2007-11-27 18:13:33.000000000 +0100
+@@ -417,7 +417,6 @@ Module gid_Module_Root_Files_5
+ 	gid_File_Lib_Urp_Uno,
+ 	gid_File_Lib_Unsafe_UnoUno,
+ 	gid_File_Lib_Affine_UnoUno,
+-	gid_File_Lib_Vos,
+ 	gid_File_Lib_Localebe,
+ 	gid_File_Lib_Migrationoo2,
+ 	gid_File_Lib_Syssh,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-xmerge.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-xmerge.diff
@@ -0,0 +1,5 @@
+--- xmerge/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ xmerge/prj/tests.lst	2007-09-07 08:12:54.000000000 +0200
+@@ -0,0 +1,2 @@
++xmrg xmerge\java\org\openoffice\xmerge\test             nmake - all xmrg_java_org_openoffice_xmerge_test NULL
++xmrg xmerge\workben                                     nmake - all xmrg_workben NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/buildfix-vba-as-extn.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/buildfix-vba-as-extn.diff
@@ -0,0 +1,10 @@
+--- sc/util/makefile.mk.orig	2008-03-11 18:36:44.000000000 +0100
++++ sc/util/makefile.mk	2008-03-11 18:36:54.000000000 +0100
+@@ -300,6 +300,7 @@
+ 
+ .INCLUDE :  target.mk
+ 
++COMP=
+ .IF "$(VBA_EXTENSION)"=="YES"
+     COMP=build_extn
+ .ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-default-cjk-fontsize.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-default-cjk-fontsize.diff
@@ -0,0 +1,24 @@
+--- sw/source/ui/inc/fontcfg.hxx	2006-11-27 16:01:56.000000000 +0800
++++ sw/source/ui/inc/fontcfg.hxx	2006-11-27 16:03:59.000000000 +0800
+@@ -77,6 +77,7 @@
+ 
+ //pt-size of fonts
+ #define FONTSIZE_DEFAULT            240
++#define FONTSIZE_CJK_DEFAULT        210
+ #define FONTSIZE_OUTLINE            280
+ 
+ 
+--- sw/source/ui/config/fontcfg.cxx	2006-11-27 16:57:32.000000000 +0800
++++ sw/source/ui/config/fontcfg.cxx	2006-11-27 16:57:45.000000000 +0800
+@@ -325,7 +325,10 @@ sal_Int32 SwStdFontConfig::GetDefaultHei
+         case  FONT_OUTLINE_CJK:
+         case  FONT_OUTLINE_CTL:
+             nRet = FONTSIZE_OUTLINE;
+-        break;
++            break;
++        case FONT_STANDARD_CJK:
++            nRet = FONTSIZE_CJK_DEFAULT;
++            break;
+     }            
+     if( eLang == LANGUAGE_THAI && nFontType >= FONT_STANDARD_CTL )
+     {  
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-bean.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-bean.diff
@@ -0,0 +1,8 @@
+--- bean/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ bean/prj/tests.lst	2007-09-07 15:53:37.000000000 +0200
+@@ -0,0 +1,5 @@
++#does not build: ob   bean\qa\complex                                    nmake - all ob_qa_complex ob_util NULL
++
++# older tests:
++ob   bean\test\applet\oooapplet                         nmake - all ob_test_applet_oooapplet ob_util NULL
++ob   bean\test                                          nmake - all ob_test ob_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooowikipedia_genericcommands.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooowikipedia_genericcommands.diff
@@ -0,0 +1,29 @@
+--- officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu.orig	2007-09-12 15:16:03.395713600 +0200
++++ officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu	2007-09-12 15:16:21.099065200 +0200
+@@ -5314,6 +5314,26 @@
+ 					<value xml:lang="en-US">Current Language</value>
+ 				</prop>
+ 			</node>
++            <node oor:name="macro:///OOoWikipedia.Module1.StarWithDefaultLanguage">
++                <prop oor:name="Label" oor:type="xs:string">
++                    <value xml:lang="de">OOoWikipedia</value>
++                    <value xml:lang="en-US">OOoWikipedia</value>
++                    <value xml:lang="hu">OOoWikipedia</value>
++                </prop>
++                <prop oor:name="Properties" oor:type="xs:int">
++                    <value>1</value>
++		 </prop>
++            </node>
++            <node oor:name="macro:///OOoWikipedia.Module1.StartWithChooseBox">
++                <prop oor:name="Label" oor:type="xs:string">
++                    <value xml:lang="de">OOoWikipedia - Idiom</value>
++                    <value xml:lang="en-US">OOoWikipedia - Language</value>
++                    <value xml:lang="hu">OOoWikipedia</value>
++                </prop>
++                <prop oor:name="Properties" oor:type="xs:int">
++                    <value>1</value>
++		 </prop>
++            </node>
+         </node>
+ 	</node>
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-sjfixes06.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-sjfixes06.diff
@@ -0,0 +1,56 @@
+Index: source/filter.vcl/wmf/winwmf.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/filter.vcl/wmf/winwmf.cxx,v
+retrieving revision 1.35
+retrieving revision 1.35.6.1
+diff -u -r1.35 -r1.35.6.1
+--- svtools/source/filter.vcl/wmf/winwmf.cxx	3 Aug 2007 12:28:27 -0000	1.35
++++ svtools/source/filter.vcl/wmf/winwmf.cxx	17 Sep 2008 10:29:36 -0000	1.35.6.1
+@@ -827,6 +827,16 @@
+ 
+ 		case W_META_ESCAPE :
+ 		{
++			// nRecSize has been checked previously to be greater than 3
++			sal_uInt64 nMetaRecSize = static_cast< sal_uInt64 >( nRecSize - 2 ) * 2;
++			sal_uInt64 nMetaRecEndPos = pWMF->Tell() + nMetaRecSize;
++
++			// taking care that nRecSize does not exceed the maximal stream position
++			if ( nMetaRecEndPos > nEndPos )
++			{
++				pWMF->SetError( SVSTREAM_FILEFORMAT_ERROR );
++				break;
++			}
+ 			if ( nRecSize >= 12 )	// minimal escape lenght
+ 			{
+ 				sal_uInt16	nMode, nLen, OO;
+@@ -849,7 +859,13 @@
+ 						sal_uInt32 nCheckSum = rtl_crc32( 0, &nEsc, 4 );
+ #endif
+ 						sal_Int8* pData = NULL;
+-						if ( nEscLen )
++
++						if ( ( static_cast< sal_uInt64 >( nEscLen ) + pWMF->Tell() ) > nMetaRecEndPos )
++						{
++							pWMF->SetError( SVSTREAM_FILEFORMAT_ERROR );
++							break;
++						}
++						if ( nEscLen > 0 )
+ 						{
+ 							pData = new sal_Int8[ nEscLen ];
+ 							pWMF->Read( pData, nEscLen );
+@@ -874,12 +890,14 @@
+ 													  >> aPt.Y()
+ 													  >> nStringLen;
+ 
+-										if (nStringLen < STRING_MAXLEN)
++										if ( ( static_cast< sal_uInt64 >( nStringLen ) * sizeof( sal_Unicode ) ) < ( nEscLen - aMemoryStream.Tell() ) )
+ 										{
+ 											sal_Unicode* pBuf = aString.AllocBuffer( (xub_StrLen)nStringLen );
+ 											for ( i = 0; i < nStringLen; i++ )
+ 												aMemoryStream >> pBuf[ i ];
+ 											aMemoryStream >> nDXCount;
++											if ( ( static_cast< sal_uInt64 >( nDXCount ) * sizeof( sal_Int32 ) ) >= ( nEscLen - aMemoryStream.Tell() ) )
++												nDXCount = 0;
+ 											if ( nDXCount )
+ 												pDXAry = new sal_Int32[ nDXCount ];
+ 											for  ( i = 0; i < nDXCount; i++ )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/lfs.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/lfs.diff
@@ -0,0 +1,19 @@
+Index: inc/settings.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/settings.mk,v
+retrieving revision 1.199
+diff -u -u -r1.199 settings.mk
+--- solenv/inc/settings.mk	21 Jul 2006 10:38:35 -0000	1.199
++++ solenv/inc/settings.mk	28 Aug 2006 00:44:03 -0000
+@@ -1291,6 +1291,11 @@
+ CDEFS+= -DTF_NEWEX
+ .ENDIF
+ 
++.IF "$(LFS_CFLAGS)" != ""
++CFLAGS+= $(LFS_CFLAGS)
++CXXFLAGS+= $(LFS_CFLAGS)
++.ENDIF
++
+ #defaults for UCR HEADER
+ UNOUCRBASE*=UCR
+ UNOUCROUT*=$(OUT)$/inc$/$(TARGET)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-openssl-no-idea-alg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-openssl-no-idea-alg.diff
@@ -0,0 +1,20 @@
+--- openssl/makefile.mk.old	2008-01-18 14:02:56.000000000 +0100
++++ openssl/makefile.mk	2008-03-26 18:16:35.000000000 +0100
+@@ -60,7 +60,7 @@ TARFILE_NAME=$(OPENSSL_NAME)
+ 
+ CONFIGURE_DIR=.
+ CONFIGURE_ACTION=config
+-CONFIGURE_FLAGS=-I$(SYSBASE)$/usr$/include -L$(SYSBASE)$/usr$/lib shared 
++CONFIGURE_FLAGS=-I$(SYSBASE)$/usr$/include -L$(SYSBASE)$/usr$/lib shared no-idea
+ 
+ BUILD_DIR=.
+ BUILD_ACTION=make CC='$(CC)'
+@@ -123,7 +123,7 @@ OUT2INC += include/openssl/*
+ 
+ 		#CONFIGURE_ACTION=cmd /c $(PERL:s!\!/!) configure
+ 		CONFIGURE_ACTION=$(PERL) configure
+-		CONFIGURE_FLAGS=VC-WIN32
++		CONFIGURE_FLAGS=VC-WIN32 no-idea
+ 		BUILD_ACTION=cmd /c "ms$(EMQ)\do_ms.bat $(subst,/,\ $(normpath,1 $(PERL)))" && nmake -f ms/ntdll.mak
+ 
+ 		OUT2LIB = out32dll$/ssleay32.lib
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooqstart.desktop-exec.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooqstart.desktop-exec.diff
@@ -0,0 +1,11 @@
+--- sysui/desktop/menus/qstart.desktop.mrl	2007-07-02 10:16:59.000000000 -0400
++++ sysui/desktop/menus/qstart.desktop	2007-07-02 10:17:14.000000000 -0400
+@@ -4,7 +4,7 @@ Encoding=UTF-8
+ Terminal=false
+ Type=Application
+ Categories=Application;Office;
+-Exec=openoffice -quickstart -nologo -nodefault
++Exec=ooffice -quickstart -nologo -nodefault
+ NoDisplay=true
+ Name=%PRODUCTNAME Quickstarter
+ Comment=Hook for quickstarter startup
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-build-pl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-build-pl.diff
@@ -0,0 +1,97 @@
+--- solenv/bin/build.pl	2007-09-05 14:43:32.000000000 +0200
++++ solenv/bin/build.pl	2007-09-06 17:27:42.000000000 +0200
+@@ -194,6 +194,9 @@
+                             # the server considered as an error/client crash 
+     my %lost_client_jobs = (); # hash containing lost jobs
+     my %job_jobdir = (); # hash containing job-dir pairs
++
++    $unit_tests = 0;  # use tests.lst in addition to build.lst & build with 'dmake check' there - for unit testing
++    %unit_tests_dirs; # directories that should be built with 'dmake check'
+     
+ ### main ###
+ 
+@@ -494,18 +497,22 @@ sub dmake_dir {
+         return if ($cmd_file || $show);
+         chdir $BuildDir;
+         getcwd();
++        my $dmake_check = "";
++        if ($unit_tests && exists $unit_tests_dirs{$BuildDir} && $unit_tests_dirs{$BuildDir}) {
++            $dmake_check = "check";
++        }
+         if ($html) {
+             my $log_file = $jobs_hash{$BuildDir}->{LONG_LOG_PATH};
+             my $log_dir = File::Basename::dirname($log_file);
+             if (!-d $log_dir) {
+                  system("$perl $mkout");
+             };
+-            $error_code = system ("$dmake > $log_file 2>&1");
++            $error_code = system ("$dmake $dmake_check > $log_file 2>&1");
+             if (!$grab_output && -f $log_file) {
+                 system("cat $log_file");
+             };
+         } else {
+-            $error_code = system ("$dmake");
++            $error_code = system ("$dmake $dmake_check");
+         };
+         html_store_dmake_dir_info(\%LocalDepsHash, $BuildDir, $error_code) if (!$child);
+     };
+@@ -545,8 +552,27 @@ sub store_build_list_content {
+     } else {
+         if (open (BUILD_LST, $build_list_path)) {
+             my @build_lst = <BUILD_LST>;
+-            $build_lists_hash{$module} = \@build_lst;
+             close BUILD_LST;
++
++            # add the content of tests.lst to @build_lst if we are issued
++            # with 'check'
++            if ($unit_tests) {
++                (my $tests_path = $build_list_path ) =~ s/build\.lst$/tests.lst/;
++                if ($tests_path ne $build_list_path && open (TESTS_LST, $tests_path)) {
++                    while (<TESTS_LST>) {
++                        s/#.*//;
++                        next if (!/\snmake\s/);
++
++                        push @build_lst, $_;
++                        if (/^\s*\S+\s+(\S+)/ ) {
++                            $unit_tests_dirs{CorrectPath($StandDir . $1)} = 1;
++                        }
++                    }
++                    close TESTS_LST;
++                }
++            }
++
++            $build_lists_hash{$module} = \@build_lst;
+             return;
+         }
+         $dead_parents{$module}++;
+@@ -1236,6 +1262,7 @@ sub get_options {
+             push (@dmake_args, get_job_args()) if (!$custom_job);
+             next;
+         };
++        $arg =~ /^check$/       and $unit_tests = 1 and next; # it's a dmake target, but we strip it here to add it later
+         push (@dmake_args, $arg);
+     };
+     if (!$html) {
+@@ -1290,6 +1317,10 @@ sub get_job_args {
+     my @job_args = (); 
+     while ($arg = shift @ARGV) {
+         next if ($arg =~ /^--$/);
++        if ($arg =~ /^check$/) {
++            $unit_tests = 1;
++            next; # it's a dmake target, but we strip it here to add it later
++        }
+         push (@job_args, $arg);
+     };
+     return @job_args;
+--- solenv/inc/target.mk	18 Jul 2007 08:01:14 -0000	1.201
++++ solenv/inc/target.mk	6 Sep 2007 20:44:31 -0000
+@@ -2076,3 +2076,9 @@ $(SUBDIRS) .PHONY :
+ # as an escaped "#". if it was an assignment, escaping works...
+ some_unique_variable_name:=1
+ 
++# ---------
++# - CHECK -
++# ---------
++# can be redefined in the makefiles to issue the real tests
++
++check: ALLTAR
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-export-image-links.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-export-image-links.diff
@@ -0,0 +1,256 @@
+--- svx/source/msfilter/escherex.cxx	18 Mar 2008 23:42:22 -0000	1.75
++++ svx/source/msfilter/escherex.cxx	24 Apr 2008 23:26:26 -0000
+@@ -1330,10 +1330,12 @@ sal_Bool EscherPropertyContainer::Create
+ 
+     sal_Bool        bMirrored = sal_False;
+     sal_Bool        bRotate   = sal_True;
++    sal_uInt16      nAngle    = 0;
+     GraphicAttr*    pGraphicAttr = NULL;
+     GraphicObject   aGraphicObject;
+     String          aGraphicUrl;
+     ByteString      aUniqueId;
++    bool            bIsGraphicMtf(false);
+ 
+     ::com::sun::star::drawing::BitmapMode   eBitmapMode( ::com::sun::star::drawing::BitmapMode_NO_REPEAT );
+     ::com::sun::star::uno::Any aAny;
+@@ -1358,6 +1360,7 @@ sal_Bool EscherPropertyContainer::Create
+                 {
+                     aGraphicObject = aGraphic;
+                     aUniqueId = aGraphicObject.GetUniqueID();
++                    bIsGraphicMtf = aGraphicObject.GetType() == GRAPHIC_GDIMETAFILE;
+                 }
+             }
+         }
+@@ -1373,6 +1376,7 @@ sal_Bool EscherPropertyContainer::Create
+                     Graphic     aGraphic( aBitmapEx );
+                     aGraphicObject = aGraphic;
+                     aUniqueId = aGraphicObject.GetUniqueID();
++                    bIsGraphicMtf = aGraphicObject.GetType() == GRAPHIC_GDIMETAFILE;
+                 }
+             }
+         }
+@@ -1440,9 +1444,27 @@ sal_Bool EscherPropertyContainer::Create
+                     }
+                     eBitmapMode = ::com::sun::star::drawing::BitmapMode_REPEAT;
+                     aUniqueId = aGraphicObject.GetUniqueID();
++                    bIsGraphicMtf = aGraphicObject.GetType() == GRAPHIC_GDIMETAFILE;
+                 }
+             }
+         }
++
++        if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsMirrored" ) ), sal_True ) )
++            aAny >>= bMirrored;
++
++        if ( bCreateFillBitmap && bFillBitmapModeAllowed )
++        {
++            if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapMode" ) ), sal_True ) )
++                aAny >>= eBitmapMode;
++        }
++        else
++        {
++            nAngle = bRotate && EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
++                                                                             String( RTL_CONSTASCII_USTRINGPARAM( "RotateAngle" ) ), sal_True )
++                ? (sal_uInt16)( ( *((sal_Int32*)aAny.getValue() ) ) + 5 ) / 10
++                : 0;
++        }
++
+         if ( aGraphicUrl.Len() )
+         {
+             String aVndUrl( RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.GraphicObject:" ) );
+@@ -1455,101 +1477,125 @@ sal_Bool EscherPropertyContainer::Create
+             }
+             else
+             {
++                // externally, linked graphic? convert to embedded
++                // one, if transformations are needed. this is because
++                // everything < msoxp cannot even handle rotated
++                // bitmaps.
++                // And check whether the graphic link target is
++                // actually supported by mso.
+                 INetURLObject   aTmp( aGraphicUrl );
+-                SvStream* pIn = ::utl::UcbStreamHelper::CreateStream(
+-                    aTmp.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READ );
+-                if ( pIn )
++                GraphicDescriptor aDescriptor(aTmp);
++                aDescriptor.Detect();
++                const USHORT nFormat = aDescriptor.GetFileFormat();
++
++                // can MSO handle it?
++                if ( bMirrored || nAngle || 
++                     (nFormat != GFF_BMP && 
++                      nFormat != GFF_GIF &&
++                      nFormat != GFF_JPG &&
++                      nFormat != GFF_PNG &&
++                      nFormat != GFF_TIF &&
++                      nFormat != GFF_PCT &&
++                      nFormat != GFF_WMF &&
++                      nFormat != GFF_EMF) )
+                 {
+-                    Graphic aGraphic;
+-                    sal_uInt32 nErrCode = GraphicConverter::Import( *pIn, aGraphic );
+-                    if ( nErrCode == ERRCODE_NONE )
++                    SvStream* pIn = ::utl::UcbStreamHelper::CreateStream(
++                        aTmp.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READ );
++                    if ( pIn )
+                     {
+-                        aGraphicObject = aGraphic;
+-                        aUniqueId = aGraphicObject.GetUniqueID();
++                        Graphic aGraphic;
++                        sal_uInt32 nErrCode = GraphicConverter::Import( *pIn, aGraphic );
++                        
++                        if ( nErrCode == ERRCODE_NONE )
++                        {
++                            // no.
++                            aGraphicObject = aGraphic;
++                            aUniqueId = aGraphicObject.GetUniqueID();
++                        }
++                        // else: simply keep the graphic link
++                        delete pIn;
+                     }
+-                    delete pIn;
+                 }
+             }
+         }
+-        if ( aUniqueId.Len() )
+-        {
+-            if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsMirrored" ) ), sal_True ) )
+-                aAny >>= bMirrored;
+ 
+-            if ( bCreateFillBitmap && bFillBitmapModeAllowed )
+-            {
+-                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapMode" ) ), sal_True ) )
+-                    aAny >>= eBitmapMode;
+-            }
+-            else
++        if ( aGraphicUrl.Len() || aUniqueId.Len() )
++        {
++            if ( bMirrored || nAngle )
+             {
+-                sal_uInt16 nAngle = bRotate && EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+-                                        String( RTL_CONSTASCII_USTRINGPARAM( "RotateAngle" ) ), sal_True )
+-                                    ? (sal_uInt16)( ( *((sal_Int32*)aAny.getValue() ) ) + 5 ) / 10
+-                                    : 0;
+-
+-                if ( bMirrored || nAngle )
++                pGraphicAttr = new GraphicAttr;
++                if ( bMirrored )
++                    pGraphicAttr->SetMirrorFlags( BMP_MIRROR_HORZ );
++                if ( bIsGraphicMtf )
++                    AddOpt( ESCHER_Prop_Rotation, ( ( ((sal_Int32)nAngle << 16 ) / 10 ) + 0x8000 ) &~ 0xffff );
++                else
+                 {
+-                    pGraphicAttr = new GraphicAttr;
+-                    if ( bMirrored )
+-                        pGraphicAttr->SetMirrorFlags( BMP_MIRROR_HORZ );
+-                    GraphicObject aTmpGraphicObject( aUniqueId );
+-                    if ( aTmpGraphicObject.GetType() == GRAPHIC_GDIMETAFILE )
+-                        AddOpt( ESCHER_Prop_Rotation, ( ( ((sal_Int32)nAngle << 16 ) / 10 ) + 0x8000 ) &~ 0xffff );
+-                    else
++                    pGraphicAttr->SetRotation( nAngle );
++                    if ( nAngle && pShapeBoundRect )   // up to xp ppoint does not rotate bitmaps !
+                     {
+-                        pGraphicAttr->SetRotation( nAngle );
+-                        if ( nAngle && pShapeBoundRect )   // up to xp ppoint does not rotate bitmaps !
+-                        {
+-                            Polygon aPoly( *pShapeBoundRect );
+-                            aPoly.Rotate( pShapeBoundRect->TopLeft(), nAngle );
+-                            *pShapeBoundRect = aPoly.GetBoundRect();
+-                            bSuppressRotation = sal_True;
+-                        }
++                        Polygon aPoly( *pShapeBoundRect );
++                        aPoly.Rotate( pShapeBoundRect->TopLeft(), nAngle );
++                        *pShapeBoundRect = aPoly.GetBoundRect();
++                        bSuppressRotation = sal_True;
+                     }
+                 }
+             }
++
+             if ( eBitmapMode == ::com::sun::star::drawing::BitmapMode_REPEAT )
+                 AddOpt( ESCHER_Prop_fillType, ESCHER_FillTexture );
+             else
+                 AddOpt( ESCHER_Prop_fillType, ESCHER_FillPicture );
+ 
+-            if ( pGraphicProvider && pPicOutStrm && pShapeBoundRect )
+-            {
+-                Rectangle aRect( Point( 0, 0 ), pShapeBoundRect->GetSize() );
+-
+-				sal_uInt32 nBlibId = 0;
+-				if ( aUniqueId.Len() )
+-					nBlibId = pGraphicProvider->GetBlibID( *pPicOutStrm, aUniqueId, aRect, NULL, pGraphicAttr );
+-				if ( nBlibId )
+-				{
+-					if ( bCreateFillBitmap )
+-						AddOpt( ESCHER_Prop_fillBlip, nBlibId, sal_True );
+-					else
+-					{
+-						AddOpt( ESCHER_Prop_pib, nBlibId, sal_True );
+-						ImplCreateGraphicAttributes( rXPropSet, nBlibId, bCreateCroppingAttributes );
+-					}
+-					bRetValue = sal_True;
+-				}
+-			}
+-            else
++            if ( aUniqueId.Len() )
+             {
+-                EscherGraphicProvider aProvider;
+-                SvMemoryStream aMemStrm;
+-                Rectangle aRect;
++                // write out embedded graphic
++                if ( pGraphicProvider && pPicOutStrm && pShapeBoundRect )
++                {
++                    Rectangle aRect( Point( 0, 0 ), pShapeBoundRect->GetSize() );
+ 
+-                if ( aUniqueId.Len() && aProvider.GetBlibID( aMemStrm, aUniqueId, aRect, NULL, pGraphicAttr ) )
++                    sal_uInt32 nBlibId = 0;
++                    nBlibId = pGraphicProvider->GetBlibID( *pPicOutStrm, aUniqueId, aRect, NULL, pGraphicAttr );
++                    if ( nBlibId )
++                    {
++                        if ( bCreateFillBitmap )
++                            AddOpt( ESCHER_Prop_fillBlip, nBlibId, sal_True );
++                        else
++                        {
++                            AddOpt( ESCHER_Prop_pib, nBlibId, sal_True );
++                            ImplCreateGraphicAttributes( rXPropSet, nBlibId, bCreateCroppingAttributes );
++                        }
++                        bRetValue = sal_True;
++                    }
++                }
++                else
+                 {
+-                    // grab BLIP from stream and insert directly as complex property
+-                    // ownership of stream memory goes to complex property
+-                    aMemStrm.ObjectOwnsMemory( FALSE );
+-                    sal_uInt8* pBuf = (sal_uInt8*) aMemStrm.GetData();
+-                    sal_uInt32 nSize = aMemStrm.Seek( STREAM_SEEK_TO_END );
+-                    AddOpt( ESCHER_Prop_fillBlip, sal_True, nSize, pBuf, nSize );
+-                    bRetValue = sal_True;
++                    EscherGraphicProvider aProvider;
++                    SvMemoryStream aMemStrm;
++                    Rectangle aRect;
++
++                    if ( aProvider.GetBlibID( aMemStrm, aUniqueId, aRect, NULL, pGraphicAttr ) )
++                    {
++                        // grab BLIP from stream and insert directly as complex property
++                        // ownership of stream memory goes to complex property
++                        aMemStrm.ObjectOwnsMemory( FALSE );
++                        sal_uInt8* pBuf = (sal_uInt8*) aMemStrm.GetData();
++                        sal_uInt32 nSize = aMemStrm.Seek( STREAM_SEEK_TO_END );
++                        AddOpt( ESCHER_Prop_fillBlip, sal_True, nSize, pBuf, nSize );
++                        bRetValue = sal_True;
++                    }
+                 }
+             }
++            // write out link to graphic
++            else
++            {
++                OSL_ASSERT(aGraphicUrl.Len());
++                
++                AddOpt( ESCHER_Prop_pibName, aGraphicUrl );
++                sal_uInt32	nPibFlags=0;
++                GetOpt( ESCHER_Prop_pibFlags, nPibFlags );
++                AddOpt( ESCHER_Prop_pibFlags, 
++                        ESCHER_BlipFlagLinkToFile|ESCHER_BlipFlagFile|ESCHER_BlipFlagDoNotSave | nPibFlags );
++            }
+         }
+     }
+     delete pGraphicAttr;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-gcache-missing-initialisation.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-gcache-missing-initialisation.diff
@@ -0,0 +1,11 @@
+--- vcl/source/glyphs/gcach_rbmp.cxx	27 Jun 2007 20:25:11 -0000	1.8
++++ vcl/source/glyphs/gcach_rbmp.cxx	7 Apr 2008 10:52:55 -0000
+@@ -160,7 +160,7 @@
+                 nTemp = 1;
+             }
+             // update input byte if needed
+-            if( (nInp >>= 1) <= 1 )
++            if( ( (nInp >>= 1) <= 1 ) && (!(y == 0 && x == 0)) )
+                 nInp = 0x100 + *(--p2);
+         }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cairocanvas-alpha-pixmap-rewrite.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cairocanvas-alpha-pixmap-rewrite.diff
@@ -0,0 +1,67 @@
+diff -rup canvas-orig/source/cairo/cairo_canvasbitmap.cxx canvas/source/cairo/cairo_canvasbitmap.cxx
+--- canvas-orig/source/cairo/cairo_canvasbitmap.cxx	2008-03-03 18:19:05.000000000 +0100
++++ canvas/source/cairo/cairo_canvasbitmap.cxx	2008-03-03 18:20:23.000000000 +0100
+@@ -120,31 +120,23 @@ namespace cairocanvas
+         case 2: {
+ #ifdef CAIRO_HAS_XLIB_SURFACE
+         ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > args( 3 );
+-        Surface* pSurface = mpDevice->getSurface( maCanvasHelper.maSize, CAIRO_CONTENT_COLOR_ALPHA );
+         Surface* pAlphaSurface = mpDevice->getSurface( maCanvasHelper.maSize, CAIRO_CONTENT_ALPHA );
+-        Cairo* pCairo = pSurface->getCairo();
+         Cairo* pAlphaCairo = pAlphaSurface->getCairo();
+ 
+         // create RGB image (levels of gray) of alpha channel of original picture
+-        cairo_set_source_surface( pAlphaCairo, mpBufferSurface->mpSurface, 0, 0 );
++        cairo_set_source_rgba( pAlphaCairo, 0, 0, 0, 1 );
+         cairo_set_operator( pAlphaCairo, CAIRO_OPERATOR_SOURCE );
+         cairo_paint( pAlphaCairo );
++        cairo_set_source_surface( pAlphaCairo, mpBufferSurface->mpSurface, 0, 0 );
++        cairo_set_operator( pAlphaCairo, CAIRO_OPERATOR_XOR );
++        cairo_paint( pAlphaCairo );
+         cairo_destroy( pAlphaCairo );
+ 
+-        cairo_set_source_rgba(pCairo, 1, 1, 1, 1 );
+-        cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
+-        cairo_paint( pCairo );
+-        cairo_set_source_surface( pCairo, pAlphaSurface->mpSurface, 0, 0 );
+-        cairo_set_operator( pCairo, CAIRO_OPERATOR_OVER );
+-        cairo_paint( pCairo );
+-
+-        delete pAlphaSurface;
+-        cairo_destroy( pCairo );
+-        pSurface->doNotFreePixmap();
++        pAlphaSurface->doNotFreePixmap();
+         args[0] = ::com::sun::star::uno::Any( true );
+-        args[1] = ::com::sun::star::uno::Any( pSurface->getPixmap () );
+-        args[2] = ::com::sun::star::uno::Any( sal_Int32( pSurface->getDepth () ) );
+-        delete pSurface;
++        args[1] = ::com::sun::star::uno::Any( pAlphaSurface->getPixmap () );
++        args[2] = ::com::sun::star::uno::Any( sal_Int32( pAlphaSurface->getDepth () ) );
++        delete pAlphaSurface;
+ 
+         // return pixmap and alphachannel pixmap - it will be used in BitmapEx
+         aRV = ::com::sun::star::uno::Any( args );
+diff -rup canvas-orig/source/cairo/cairo_canvasbitmap.hxx canvas/source/cairo/cairo_canvasbitmap.hxx
+--- canvas-orig/source/cairo/cairo_canvasbitmap.hxx	2008-03-03 18:19:05.000000000 +0100
++++ canvas/source/cairo/cairo_canvasbitmap.hxx	2008-03-03 18:18:59.000000000 +0100
+@@ -110,7 +110,7 @@ namespace cairocanvas
+         //     2nd the pixmap handle
+         //     3rd the pixmap depth
+         virtual ::com::sun::star::uno::Any SAL_CALL getFastPropertyValue(sal_Int32 nHandle)  throw (::com::sun::star::uno::RuntimeException);
+-        virtual void SAL_CALL setFastPropertyValue(sal_Int32 nHandle, const ::com::sun::star::uno::Any&)  throw (::com::sun::star::uno::RuntimeException) {}
++        virtual void SAL_CALL setFastPropertyValue(sal_Int32 /* nHandle */, const ::com::sun::star::uno::Any&)  throw (::com::sun::star::uno::RuntimeException) {}
+ 
+     private:
+         /** MUST hold here, too, since CanvasHelper only contains a
+diff -rup canvas-orig/source/cairo/cairo_canvashelper.cxx canvas/source/cairo/cairo_canvashelper.cxx
+--- canvas-orig/source/cairo/cairo_canvashelper.cxx	2008-03-03 18:19:05.000000000 +0100
++++ canvas/source/cairo/cairo_canvashelper.cxx	2008-03-03 18:18:59.000000000 +0100
+@@ -734,7 +734,7 @@ namespace cairocanvas
+ 	    cy = 0.5;
+ 	    r0 = 0;
+ 	    r1 = 0.5;
+-	    Matrix aScaleMatrix;
++//	    Matrix aScaleMatrix;
+ 
+ 	    pPattern = cairo_pattern_create_radial( cx, cy, r0, cx, cy, r1 );
+ 	    addColorStops( pPattern, aValues.maColors, aValues.maStops, true );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fast-mkdepend.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fast-mkdepend.diff
@@ -0,0 +1,872 @@
+Index: mkdepend/cppsetup.c
+===================================================================
+RCS file: /cvs/tools/soltools/mkdepend/cppsetup.c,v
+retrieving revision 1.3
+diff -u -p -r1.3 cppsetup.c
+--- soltools/mkdepend/cppsetup.c	22 Apr 2004 10:16:31 -0000	1.3
++++ soltools/mkdepend/cppsetup.c	2 Jan 2007 14:40:33 -0000
+@@ -95,20 +95,6 @@ cppsetup(line, filep, inc)
+ 	return(value);
+ }
+ 
+-struct symtab *lookup(symbol)
+-	char	*symbol;
+-{
+-	static struct symtab    undefined;
+-	struct symtab   *sp;
+-
+-	sp = isdefined(symbol, currentinc, NULL);
+-	if (sp == NULL) {
+-		sp = &undefined;
+-		sp->s_value = NULL;
+-	}
+-	return (sp);
+-}
+-
+ pperror(tag, x0,x1,x2,x3,x4)
+ 	int	tag,x0,x1,x2,x3,x4;
+ {
+@@ -163,7 +149,7 @@ _my_if_errors (ip, cp, expecting)
+ 
+ #define MAXNAMELEN 256
+ 
+-static struct symtab *
++char *
+ _lookup_variable (ip, var, len)
+     IfParser *ip;
+     const char *var;
+@@ -177,7 +163,7 @@ _lookup_variable (ip, var, len)
+ 
+     strncpy (tmpbuf, var, len);
+     tmpbuf[len] = '\0';
+-    return isdefined (tmpbuf, pd->inc, NULL);
++    return isdefined(tmpbuf);
+ }
+ 
+ 
+@@ -201,13 +187,13 @@ _my_eval_variable (ip, var, len)
+     const char *var;
+     int len;
+ {
+-    struct symtab *s;
++    char *s;
+ 
+     s = _lookup_variable (ip, var, len);
+     if (!s)
+ 	return 0;
+     do {
+-	var = s->s_value;
++	var = s;
+ 	if (!isvarfirstletter(*var))
+ 	    break;
+ 	s = _lookup_variable (ip, var, strlen(var));
+@@ -217,7 +203,7 @@ _my_eval_variable (ip, var, len)
+ }
+ 
+ 
+-cppsetup(line, filep, inc)
++int cppsetup(line, filep, inc)
+ 	register char	*line;
+ 	register struct filepointer	*filep;
+ 	register struct inclist		*inc;
+Index: mkdepend/def.h
+===================================================================
+RCS file: /cvs/tools/soltools/mkdepend/def.h,v
+retrieving revision 1.4
+diff -u -p -r1.4 def.h
+--- soltools/mkdepend/def.h	22 Sep 2006 08:56:47 -0000	1.4
++++ soltools/mkdepend/def.h	2 Jan 2007 14:40:33 -0000
+@@ -61,7 +65,8 @@ in this Software without prior written a
+ #define MAXFILES	2048  /* Increased from 512. -mcafee */
+ 						  /* Increased from 1024. -mh */
+ #define MAXDIRS		64
+-#define SYMTABINC	10	/* must be > 1 for define() to work right */
++#define SYMHASHSEED     131  /* 131 1313 13131 ... */
++#define SYMHASHMEMBERS	64	/* must be 2^x to work right */
+ #define	TRUE		1
+ #define	FALSE		0
+ 
+@@ -108,9 +113,14 @@ extern int	_debugmask;
+ 
+ typedef	unsigned char boolean;
+ 
+-struct symtab {
+-	char	*s_name;
+-	char	*s_value;
++struct pair {
++	char        *p_name;
++	char        *p_value;
++	struct pair *p_next;
++};
++
++struct symhash {
++	struct pair *s_pairs[SYMHASHMEMBERS];
+ };
+ 
+ struct	inclist {
+@@ -118,9 +128,6 @@ struct	inclist {
+ 	char		*i_file;	/* path name of the include file */
+ 	struct inclist	**i_list;	/* list of files it itself includes */
+ 	int		i_listlen;	/* length of i_list */
+-	struct symtab	*i_defs;	/* symbol table for this file */
+-	int		i_ndefs;	/* current # defines */
+-	int		i_deflen;	/* amount of space in table */
+ 	boolean		i_defchecked;	/* whether defines have been checked */
+ 	boolean		i_notified;	/* whether we have revealed includes */
+ 	boolean		i_marked;	/* whether it's in the makefile */
+@@ -150,13 +157,16 @@ char			*realloc();
+ char			*copy();
+ char			*base_name();
+ char			*getline();
+-struct symtab		*slookup();
+-struct symtab		*isdefined();
+-struct symtab		*fdefined();
++char			*isdefined();
+ struct filepointer	*getfile();
+ struct inclist		*newinclude();
+ struct inclist		*inc_path();
+ 
++void define( char *def, struct symhash **symbols );
++void hash_define(char *name, char * val, struct symhash **symbols);
++struct symhash *hash_copy( struct symhash *symbols );
++void hash_free( struct symhash *symbols );
++
+ #if NeedVarargsPrototypes
+ extern fatalerr(char *, ...);
+ extern warning(char *, ...);
+Index: mkdepend/imakemdep.h
+===================================================================
+RCS file: /cvs/tools/soltools/mkdepend/imakemdep.h,v
+retrieving revision 1.1
+diff -u -p -r1.1 imakemdep.h
+--- soltools/mkdepend/imakemdep.h	18 Apr 2001 09:10:59 -0000	1.1
++++ soltools/mkdepend/imakemdep.h	2 Jan 2007 14:40:33 -0000
+@@ -513,7 +513,7 @@ char *cpp_argv[ARGUMENTS] = {
+  *     them to the the following table.  The definition of struct symtab is
+  *     in util/makedepend/def.h.
+  */
+-struct symtab	predefs[] = {
++struct pair	predefs[] = {
+ #ifdef apollo
+ 	{"apollo", "1"},
+ #endif
+Index: mkdepend/main.c
+===================================================================
+RCS file: /cvs/tools/soltools/mkdepend/main.c,v
+retrieving revision 1.8.6.1
+diff -u -p -r1.8.6.1 main.c
+--- soltools/mkdepend/main.c	31 Oct 2006 14:55:45 -0000	1.8.6.1
++++ soltools/mkdepend/main.c	2 Jan 2007 14:40:33 -0000
+@@ -116,8 +116,9 @@ void freefile(struct filepointer * fp);
+ void redirect(char * line, char * makefile );
+ 
+ struct	inclist inclist[ MAXFILES ],
+-		*inclistp = inclist,
+-		maininclist;
++		*inclistp = inclist;
++
++struct symhash *maininclist = NULL;
+ 
+ char	*filelist[ MAXFILES ];
+ char	*includedirs[ MAXDIRS + 1 ];
+@@ -171,16 +172,16 @@ int main(argc, argv)
+ 	register struct inclist	*ip;
+ 	char	*makefile = NULL;
+ 	struct filepointer	*filecontent;
+-	struct symtab *psymp = predefs;
++	struct pair *psymp = predefs;
+ 	char *endmarker = NULL;
+ 	char *defincdir = NULL;
+     struct IncludesCollection* incCollection;
+ 
+ 	ProgramName = argv[0];
+ 
+-	while (psymp->s_name)
++	while (psymp->p_name)
+ 	{
+-	    define2(psymp->s_name, psymp->s_value, &maininclist);
++	    hash_define(psymp->p_name, psymp->p_value, &maininclist);
+ 	    psymp++;
+ 	}
+ 	if (argc == 2 && argv[1][0] == '@') {
+@@ -451,10 +454,14 @@ int main(argc, argv)
+     incCollection = create_IncludesCollection();
+ 	
+     for(fp=filelist; *fp; fp++) {
++		struct symhash *includes;
+ 		filecontent = getfile(*fp);
+ 		ip = newinclude(*fp, (char *)NULL);
+ 
+-		find_includes(filecontent, ip, ip, 0, FALSE, incCollection);
++		includes = hash_copy( maininclist );
++		find_includes(filecontent, ip, ip, 0, FALSE, incCollection, includes);
++		hash_free( includes );
++		
+ 		freefile(filecontent);
+ 		recursive_pr_include(ip, ip->i_file, base_name(*fp));
+ 		inc_clean();
+Index: mkdepend/parse.c
+===================================================================
+RCS file: /cvs/tools/soltools/mkdepend/parse.c,v
+retrieving revision 1.3
+diff -u -p -r1.3 parse.c
+--- soltools/mkdepend/parse.c	22 Sep 2006 08:57:33 -0000	1.3
++++ soltools/mkdepend/parse.c	2 Jan 2007 14:40:33 -0000
+@@ -27,35 +27,35 @@ in this Software without prior written a
+ */
+ 
+ #include "def.h"
+-void define( char *def, struct inclist *file );
+-void define2(char * name, char * val, struct inclist * file);
+-void undefine( char	*symbol, register struct inclist *file );
++char *hash_lookup( char *symbol, struct symhash *symbols );
++void hash_undefine( char *symbol, struct symhash *symbols );
+ 
+ extern char	*directives[];
+-extern struct inclist	maininclist;
++extern struct symhash *maininclist;
+ 
+-int find_includes(filep, file, file_red, recursion, failOK, incCollection)
++int find_includes(filep, file, file_red, recursion, failOK, incCollection, symbols)
+ 	struct filepointer	*filep;
+ 	struct inclist		*file, *file_red;
+ 	int			recursion;
+ 	boolean			failOK;
+     struct IncludesCollection* incCollection; 
++	struct symhash		*symbols;
+ {
+ 	register char	*line;
+ 	register int	type;
+ 	boolean recfailOK;
+ 
+ 	while ((line = getline(filep))) {
+-		switch(type = deftype(line, filep, file_red, file, TRUE)) {
++		switch(type = deftype(line, filep, file_red, file, TRUE, symbols)) {
+ 		case IF:
+ 		doif:
+ 			type = find_includes(filep, file,
+-				file_red, recursion+1, failOK, incCollection);
++				file_red, recursion+1, failOK, incCollection, symbols);
+ 			while ((type == ELIF) || (type == ELIFFALSE) ||
+ 			       (type == ELIFGUESSFALSE))
+-				type = gobble(filep, file, file_red);
++				type = gobble(filep, file, file_red, symbols);
+ 			if (type == ELSE)
+-				gobble(filep, file, file_red);
++				gobble(filep, file, file_red, symbols);
+ 			break;
+ 		case IFFALSE:
+ 		case IFGUESSFALSE:
+@@ -64,10 +64,10 @@ int find_includes(filep, file, file_red,
+ 			    recfailOK = TRUE;
+ 			else
+ 			    recfailOK = failOK;
+-			type = gobble(filep, file, file_red);
++			type = gobble(filep, file, file_red, symbols);
+ 			if (type == ELSE)
+ 			    find_includes(filep, file,
+-					  file_red, recursion+1, recfailOK, incCollection);
++					  file_red, recursion+1, recfailOK, incCollection, symbols);
+ 			else
+ 			if (type == ELIF)
+ 			    goto doif;
+@@ -77,28 +77,28 @@ int find_includes(filep, file, file_red,
+ 			break;
+ 		case IFDEF:
+ 		case IFNDEF:
+-			if ((type == IFDEF && isdefined(line, file_red, NULL))
+-			 || (type == IFNDEF && !isdefined(line, file_red, NULL))) {
++			if ((type == IFDEF && hash_lookup(line, symbols))
++			 || (type == IFNDEF && !hash_lookup(line, symbols))) {
+ 				debug(1,(type == IFNDEF ?
+ 				    "line %d: %s !def'd in %s via %s%s\n" : "",
+ 				    filep->f_line, line,
+ 				    file->i_file, file_red->i_file, ": doit"));
+ 				type = find_includes(filep, file,
+-					file_red, recursion+1, failOK, incCollection);
++					file_red, recursion+1, failOK, incCollection, symbols);
+ 				while (type == ELIF || type == ELIFFALSE || type == ELIFGUESSFALSE)
+-					type = gobble(filep, file, file_red);
++					type = gobble(filep, file, file_red, symbols);
+ 				if (type == ELSE)
+-					gobble(filep, file, file_red);
++					gobble(filep, file, file_red, symbols);
+ 			}
+ 			else {
+ 				debug(1,(type == IFDEF ?
+ 				    "line %d: %s !def'd in %s via %s%s\n" : "",
+ 				    filep->f_line, line,
+ 				    file->i_file, file_red->i_file, ": gobble"));
+-				type = gobble(filep, file, file_red);
++				type = gobble(filep, file, file_red, symbols);
+ 				if (type == ELSE)
+ 					find_includes(filep, file,
+-						file_red, recursion + 1, failOK, incCollection);
++						file_red, recursion + 1, failOK, incCollection, symbols);
+ 				else if (type == ELIF)
+ 				    	goto doif;
+ 				else if (type == ELIFFALSE || type == ELIFGUESSFALSE)
+@@ -110,12 +110,12 @@ int find_includes(filep, file, file_red,
+ 		case ELIFGUESSFALSE:
+ 		case ELIF:
+ 			if (!recursion)
+-				gobble(filep, file, file_red);
++				gobble(filep, file, file_red, symbols);
+ 		case ENDIF:
+ 			if (recursion)
+ 				return(type);
+ 		case DEFINE:
+-			define(line, file);
++			define(line, &symbols);
+ 			break;
+ 		case UNDEF:
+ 			if (!*line) {
+@@ -123,13 +123,13 @@ int find_includes(filep, file, file_red,
+ 				file_red->i_file, filep->f_line, line);
+ 			    break;
+ 			}
+-			undefine(line, file_red);
++			hash_undefine(line, symbols);
+ 			break;
+ 		case INCLUDE:
+-			add_include(filep, file, file_red, line, FALSE, failOK, incCollection);
++			add_include(filep, file, file_red, line, FALSE, failOK, incCollection, symbols);
+ 			break;
+ 		case INCLUDEDOT:
+-			add_include(filep, file, file_red, line, TRUE, failOK, incCollection);
++			add_include(filep, file, file_red, line, TRUE, failOK, incCollection, symbols);
+ 			break;
+ 		case ERROR:
+ 		    	warning("%s: %d: %s\n", file_red->i_file,
+@@ -160,26 +160,27 @@ int find_includes(filep, file, file_red,
+ 	return(-1);
+ }
+ 
+-int gobble(filep, file, file_red)
++int gobble(filep, file, file_red, symbols)
+ 	register struct filepointer *filep;
+ 	struct inclist		*file, *file_red;
++	struct symhash		*symbols;
+ {
+ 	register char	*line;
+ 	register int	type;
+ 
+ 	while ((line = getline(filep))) {
+-		switch(type = deftype(line, filep, file_red, file, FALSE)) {
++		switch(type = deftype(line, filep, file_red, file, FALSE, symbols)) {
+ 		case IF:
+ 		case IFFALSE:
+ 		case IFGUESSFALSE:
+ 		case IFDEF:
+ 		case IFNDEF:
+-			type = gobble(filep, file, file_red);
++			type = gobble(filep, file, file_red, symbols);
+ 			while ((type == ELIF) || (type == ELIFFALSE) ||
+ 			       (type == ELIFGUESSFALSE))
+-			    type = gobble(filep, file, file_red);
++			    type = gobble(filep, file, file_red, symbols);
+ 			if (type == ELSE)
+-			        (void)gobble(filep, file, file_red);
++			        (void)gobble(filep, file, file_red, symbols);
+ 			break;
+ 		case ELSE:
+ 		case ENDIF:
+@@ -213,11 +214,12 @@ int gobble(filep, file, file_red)
+ /*
+  * Decide what type of # directive this line is.
+  */
+-int deftype (line, filep, file_red, file, parse_it)
++int deftype (line, filep, file_red, file, parse_it, symbols)
+ 	register char	*line;
+ 	register struct filepointer *filep;
+ 	register struct inclist *file_red, *file;
+ 	int	parse_it;
++	struct symhash	*symbols;
+ {
+ 	register char	*p;
+ 	char	*directive, savechar;
+@@ -253,7 +255,7 @@ int deftype (line, filep, file_red, file
+ 	     */
+ 	    debug(0,("%s, line %d: #elif %s ",
+ 		   file->i_file, filep->f_line, p));
+-	    ret = zero_value(p, filep, file_red);
++	    ret = zero_value(p, filep, file_red, symbols);
+ 	    if (ret != IF)
+ 	    {
+ 		debug(0,("false...\n"));
+@@ -282,7 +284,7 @@ int deftype (line, filep, file_red, file
+ 		/*
+ 		 * parse an expression.
+ 		 */
+-		ret = zero_value(p, filep, file_red);
++		ret = zero_value(p, filep, file_red, symbols);
+ 		debug(0,("%s, line %d: %s #if %s\n",
+ 			 file->i_file, filep->f_line, ret?"false":"true", p));
+ 		break;
+@@ -304,17 +306,17 @@ int deftype (line, filep, file_red, file
+ 
+ 		/* Support ANSI macro substitution */
+ 		{
+-		    struct symtab *sym = isdefined(p, file_red, NULL);
+-		    while (sym) {
+-			p = sym->s_value;
+-			debug(3,("%s : #includes SYMBOL %s = %s\n",
+-			       file->i_incstring,
+-			       sym -> s_name,
+-			       sym -> s_value));
+-			/* mark file as having included a 'soft include' */
+-			file->i_included_sym = TRUE; 
+-			sym = isdefined(p, file_red, NULL);
+-		    }
++			char *sym = hash_lookup(p, symbols);
++			while (sym)
++			{
++				p = sym;
++				debug(3,("%s : #includes SYMBOL %s\n",
++							file->i_incstring,
++							sym));
++				/* mark file as having included a 'soft include' */
++				file->i_included_sym = TRUE; 
++				sym = hash_lookup(p, symbols);
++			}
+ 		}
+ 
+ 		/*
+@@ -357,76 +359,37 @@ int deftype (line, filep, file_red, file
+ 	return(ret);
+ }
+ 
+-struct symtab *isdefined(symbol, file, srcfile)
+-	register char	*symbol;
+-	struct inclist	*file;
+-	struct inclist	**srcfile;
+-{
+-	register struct symtab	*val;
+-
+-	val = slookup(symbol, &maininclist);
+-	if (val) {
+-		debug(1,("%s defined on command line\n", symbol));
+-		if (srcfile != NULL) *srcfile = &maininclist;
+-		return(val);
+-	}
+-	val = fdefined(symbol, file, srcfile);
+-	if (val)
+-		return(val);
+-	debug(1,("%s not defined in %s\n", symbol, file->i_file));
+-	return(NULL);
+-}
+-
+-struct symtab *fdefined(symbol, file, srcfile)
+-	register char	*symbol;
+-	struct inclist	*file;
+-	struct inclist	**srcfile;
+-{
+-	register struct inclist	**ip;
+-	register struct symtab	*val;
+-	register int	i;
+-	static int	recurse_lvl = 0;
+-
+-	if (file->i_defchecked)
+-		return(NULL);
+-	file->i_defchecked = TRUE;
+-	val = slookup(symbol, file);
+-	if (val)
+-		debug(1,("%s defined in %s as %s\n", symbol, file->i_file, val->s_value));
+-	if (val == NULL && file->i_list)
+-		{
+-		for (ip = file->i_list, i=0; i < file->i_listlen; i++, ip++)
+-		  {
+-			val = fdefined(symbol, *ip, srcfile);
+-			if (val) {
+-				break;
+-			}
+-		  }
+-		}
+-	else if (val != NULL && srcfile != NULL) *srcfile = file;
+-	recurse_lvl--;
+-	file->i_defchecked = FALSE;
++/*
++ * HACK! - so that we do not have to introduce 'symbols' in each cppsetup.c
++ * function...  It's safe, functions from cppsetup.c don't return here.
++ */
++struct symhash *global_symbols = NULL;
+ 
+-	return(val);
++char * isdefined( symbol )
++	register char *symbol;
++{
++	return hash_lookup( symbol, global_symbols );
+ }
+ 
+ /*
+  * Return type based on if the #if expression evaluates to 0
+  */
+-int zero_value(exp, filep, file_red)
++int zero_value(exp, filep, file_red, symbols)
+ 	register char	*exp;
+ 	register struct filepointer *filep;
+ 	register struct inclist *file_red;
++	register struct symhash *symbols;
+ {
++	global_symbols = symbols; /* HACK! see above */
+ 	if (cppsetup(exp, filep, file_red))
+ 	    return(IFFALSE);
+ 	else
+ 	    return(IF);
+ }
+ 
+-void define(def, file)
+-	char	*def;
+-	struct inclist	*file;
++void define( def, symbols )
++    char	        *def;
++    struct symhash **symbols;
+ {
+     char *val;
+ 
+@@ -441,137 +404,205 @@ void define(def, file)
+ 
+     if (!*val)
+ 	val = "1";
+-    define2(def, val, file);
++    hash_define( def, val, symbols );
+ }
+ 
+-void define2(name, val, file)
+-	char	*name, *val;
+-	struct inclist	*file;
++static int hash( str )
++    register char *str;
+ {
+-    int first, last, below;
+-    register struct symtab *sp = NULL, *dest;
++    /* Hash (Kernighan and Ritchie) */
++    register unsigned int hashval = 0;
++    register unsigned int i       = 0;
++    char *s = str;
+ 
+-    /* Make space if it's needed */
+-    if (file->i_defs == NULL)
++    for ( ; *str; str++ )
+     {
+-	file->i_defs = (struct symtab *)
+-			malloc(sizeof (struct symtab) * SYMTABINC);
+-	file->i_deflen = SYMTABINC;
+-	file->i_ndefs = 0;
++        hashval = ( hashval * SYMHASHSEED ) + ( *str );
+     }
+-    else if (file->i_ndefs == file->i_deflen)
+-	file->i_defs = (struct symtab *)
+-			realloc(file->i_defs,
+-			    sizeof(struct symtab)*(file->i_deflen+=SYMTABINC));
+-
+-    if (file->i_defs == NULL)
+-	fatalerr("malloc()/realloc() failure in insert_defn()\n");
+-
+-    below = first = 0;
+-    last = file->i_ndefs - 1;
+-    while (last >= first)
++
++    //fprintf( stderr, "hash: %s, %d\n", s, hashval & ( SYMHASHMEMBERS - 1 ) );
++    return hashval & ( SYMHASHMEMBERS - 1 );
++}
++
++struct symhash *hash_copy( symbols )
++    struct symhash *symbols;
++{
++    int i;
++    struct symhash *newsym;
++    if ( !symbols )
++        return NULL;
++
++    newsym = (struct symhash *) malloc( sizeof( struct symhash ) );
++    
++    for ( i = 0; i < SYMHASHMEMBERS; ++i )
+     {
+-	/* Fast inline binary search */
+-	register char *s1;
+-	register char *s2;
+-	register int middle = (first + last) / 2;
+-
+-	/* Fast inline strchr() */
+-	s1 = name;
+-	s2 = file->i_defs[middle].s_name;
+-	while (*s1++ == *s2++)
+-	    if (s2[-1] == '\0') break;
++        if ( !symbols->s_pairs[ i ] )
++            newsym->s_pairs[ i ] = NULL;
++        else
++        {
++            struct pair *it = symbols->s_pairs[ i ];
++            struct pair *nw = newsym->s_pairs[ i ] = (struct pair*) malloc( sizeof( struct pair ) );
++            nw->p_name = it->p_name;
++            nw->p_value = it->p_value;
++            nw->p_next = NULL;
++            
++            while ( it->p_next )
++            {
++                nw->p_next = (struct pair*) malloc( sizeof( struct pair ) );
++                it = it->p_next;
++                nw = nw->p_next;
++                nw->p_name = it->p_name;
++                nw->p_value = it->p_value;
++                nw->p_next = NULL;
++            }
++        }
++    }
++    return newsym;
++}
+ 
+-	/* If exact match, set sp and break */
+-	if (*--s1 == *--s2) 
+-	{
+-	    sp = file->i_defs + middle;
+-	    break;
+-	}
++void hash_free( symbols )
++    struct symhash *symbols;
++{
++    int i;
++
++    if ( !symbols )
++        return;
+ 
+-	/* If name > i_defs[middle] ... */
+-	if (*s1 > *s2) 
+-	{
+-	    below = first;
+-	    first = middle + 1;
+-	}
+-	/* else ... */
+-	else
+-	{
+-	    below = last = middle - 1;
+-	}
++    for ( i = 0; i < SYMHASHMEMBERS; ++i )
++    {
++        struct pair *it = symbols->s_pairs[ i ];
++        struct pair *next;
++        while ( it )
++        {
++            next = it->p_next;
++            free( it );
++            it = next;
++        }
+     }
++    free( symbols->s_pairs );
++}
+ 
+-    /* Search is done.  If we found an exact match to the symbol name,
+-       just replace its s_value */
+-    if (sp != NULL)
++void hash_define( name, val, symbols )
++    char            *name, *val;
++    struct symhash **symbols;
++{
++    int hashval;
++    struct pair *it;
++
++    if ( !symbols )
++        return;
++
++    /* Make space if it's needed */
++    if ( *symbols == NULL )
+     {
+-	free(sp->s_value);
+-	sp->s_value = copy(val);
+-	return;
++        int i;
++
++        *symbols = (struct symhash *) malloc( sizeof( struct symhash ) );
++        if ( *symbols == NULL )
++            fatalerr( "malloc()/realloc() failure in insert_defn()\n" );
++
++        for ( i = 0; i < SYMHASHMEMBERS; ++i )
++            (*symbols)->s_pairs[i] = NULL;
+     }
+ 
+-    sp = file->i_defs + file->i_ndefs++;
+-    dest = file->i_defs + below + 1;
+-    while (sp > dest)
++    hashval = hash( name );
++    it = (*symbols)->s_pairs[ hashval ];
++    
++    /* Replace/insert the symbol */
++    if ( it == NULL )
+     {
+-	*sp = sp[-1];
+-	sp--;
++        it = (*symbols)->s_pairs[ hashval ] = (struct pair*) malloc( sizeof( struct pair ) );
++        it->p_name = copy( name );
++        it->p_value = copy( val );
++        it->p_next = NULL;
++    }
++    else if ( strcmp( it->p_name, name ) == 0 )
++    {
++        it->p_value = copy( val );
++    }
++    else
++    {
++        while ( it->p_next && ( strcmp( it->p_next->p_name, name ) != 0 ) )
++        {
++            it = it->p_next;
++        }
++        if ( it->p_next )
++            it->p_next->p_name = copy( name );
++        else
++        {
++            it->p_next = (struct pair*) malloc( sizeof( struct pair ) );
++            it->p_next->p_name = copy( name );
++            it->p_next->p_value = copy( val );
++            it->p_next->p_next = NULL;
++        }
+     }
+-    sp->s_name = copy(name);
+-    sp->s_value = copy(val);
+ }
+ 
+-struct symtab *slookup(symbol, file)
+-	register char	*symbol;
+-	register struct inclist	*file;
++char *hash_lookup( symbol, symbols )
++    char           *symbol;
++    struct symhash *symbols;
+ {
++    struct pair *it;
++
+-	register int first = 0;
+-	register int last = file->i_ndefs - 1;
+-
+-	if (file) while (last >= first)
+-	{
+-	    /* Fast inline binary search */
+-	    register char *s1;
+-	    register char *s2;
+-	    register int middle = (first + last) / 2;
+-
+-	    /* Fast inline strchr() */
+-	    s1 = symbol;
+-	    s2 = file->i_defs[middle].s_name;
+-	    while (*s1++ == *s2++)
+-	        if (s2[-1] == '\0') break;
++    if ( !symbols )
++        return NULL;
++    
++    it = symbols->s_pairs[ hash( symbol ) ];
+ 
+-	    /* If exact match, we're done */
+-	    if (*--s1 == *--s2) 
+-	    {
+-	        return file->i_defs + middle;
+-	    }
++    while ( it && ( strcmp( it->p_name, symbol ) != 0 ) )
++    {
++        it = it->p_next;
++    }
++    if ( it )
++        return it->p_value;
+ 
+-	    /* If symbol > i_defs[middle] ... */
+-	    if (*s1 > *s2) 
+-	    {
+-	        first = middle + 1;
+-	    }
+-	    /* else ... */
+-	    else
+-	    {
+-	        last = middle - 1;
+-	    }
+-	}
+-	return(NULL);
++    return NULL;
+ }
+ 
+-void undefine(symbol, file)
+-	char	*symbol;
+-	register struct inclist	*file;
++void hash_undefine( symbol, symbols )
++    char           *symbol;
++    struct symhash *symbols;
+ {
++    int hashval;
++    struct pair *it;
++
+-	register struct symtab *ptr;
+-	struct inclist *srcfile;
+-	while ((ptr = isdefined(symbol, file, &srcfile)) != NULL)
+-	{
+-	    srcfile->i_ndefs--;
+-	    for (; ptr < srcfile->i_defs + srcfile->i_ndefs; ptr++)
+-		*ptr = ptr[1];
+-	}
++    if ( !symbols )
++        return;
++    
++    hashval = hash( symbol );
++    it = symbols->s_pairs[ hashval ];
++    
++    /* Replace/insert the symbol */
++    if ( it == NULL )
++        return;
++    else if ( strcmp( it->p_name, symbol ) == 0 )
++    {
++        if ( it->p_next )
++        {
++            struct pair *tmp;
++            it->p_name = it->p_next->p_name;
++            it->p_value = it->p_next->p_value;
++            tmp = it->p_next->p_next;
++            free( it->p_next );
++            it->p_next = tmp;
++        }
++        else
++        {
++            free( it );
++            symbols->s_pairs[ hashval ] = NULL;
++        }
++    }
++    else
++    {
++        while ( it->p_next && ( strcmp( it->p_next->p_name, symbol ) != 0 ) )
++        {
++            it = it->p_next;
++        }
++        if ( it->p_next )
++        {
++            struct pair *tmp = it->p_next;
++            it->p_next = it->p_next->p_next;
++            free( tmp );
++        }
++    }
+ }
+Index: mkdepend/pr.c
+===================================================================
+RCS file: /cvs/tools/soltools/mkdepend/pr.c,v
+retrieving revision 1.3
+diff -u -p -r1.3 pr.c
+--- soltools/mkdepend/pr.c	22 Sep 2006 08:57:51 -0000	1.3
++++ soltools/mkdepend/pr.c	2 Jan 2007 14:40:33 -0000
+@@ -39,12 +39,13 @@ extern boolean	printed;
+ extern boolean	verbose;
+ extern boolean	show_where_not;
+ 
+-void add_include(filep, file, file_red, include, dot, failOK, incCollection)
++void add_include(filep, file, file_red, include, dot, failOK, incCollection, symbols)
+ 	struct filepointer	*filep;
+ 	struct inclist	*file, *file_red;
+ 	char	*include;
+ 	boolean	dot;
+     struct IncludesCollection* incCollection;
++	struct symhash  *symbols;
+ {
+ 	register struct inclist	*newfile;
+ 	register struct filepointer	*content;
+@@ -77,7 +78,7 @@ void add_include(filep, file, file_red, 
+ 		if (!newfile->i_searched) {
+ 			newfile->i_searched = TRUE;
+ 			content = getfile(newfile->i_file);
+-			find_includes(content, newfile, file_red, 0, failOK, incCollection);
++			find_includes(content, newfile, file_red, 0, failOK, incCollection, symbols);
+ 			freefile(content);
+ 		}
+ 	}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/solenv-unxlngi4-link.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/solenv-unxlngi4-link.diff
@@ -0,0 +1,19 @@
+--- solenv/inc/unxlngi4.mk~	2006-08-04 18:37:27.659804224 +0200
++++ solenv/inc/unxlngi4.mk	2006-08-04 18:40:43.495576601 +0200
+@@ -135,12 +135,13 @@
+ DYNAMIC		= -Wl,-Bdynamic
+ 
+ # name of linker
+-LINK*=$(CC)
++LINK*=$(CXX)
++LINKC*=$(CC)
+ 
+ # default linker flags
+-LINKFLAGSDEFS*=-z defs
++LINKFLAGSDEFS*=-Wl,-z,defs
+ LINKFLAGSRUNPATH*=-Wl,-rpath,\''$$ORIGIN'\'
+-LINKFLAGS=-O2 -Bsymbolic -z combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
++LINKFLAGS=-O2 -Bsymbolic -Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-stlport51.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-stlport51.diff
@@ -0,0 +1,199 @@
+--- canvas/source/tools/page.cxx.orig	2006-12-27 11:59:14.000000000 +0100
++++ canvas/source/tools/page.cxx	2006-12-27 11:59:03.000000000 +0100
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_canvas.hxx"
+ 
+-#include <boost/bind.hpp>
+ #include "page.hxx"
++#include <boost/bind.hpp>
+ 
+ namespace canvas
+ {
+--- canvas/source/tools/pagemanager.cxx.orig	2006-12-27 12:01:26.000000000 +0100
++++ canvas/source/tools/pagemanager.cxx	2006-12-27 12:01:36.000000000 +0100
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_canvas.hxx"
+ 
+-#include <boost/bind.hpp>
+ #include "pagemanager.hxx"
++#include <boost/bind.hpp>
+ 
+ namespace canvas
+ {
+--- canvas/source/tools/surfaceproxy.cxx.orig	2006-12-27 12:02:58.000000000 +0100
++++ canvas/source/tools/surfaceproxy.cxx	2006-12-27 12:03:13.000000000 +0100
+@@ -36,11 +36,11 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_canvas.hxx"
+ 
+-#include <boost/bind.hpp>
+ #include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
+ #include <basegfx/polygon/b2dpolygontriangulator.hxx>
+ #include <basegfx/polygon/b2dpolypolygontools.hxx>
+ #include "surfaceproxy.hxx"
++#include <boost/bind.hpp>
+ 
+ namespace canvas
+ {
+--- sc/inc/postit.hxx.orig	2006-12-28 01:31:34.000000000 +0100
++++ sc/inc/postit.hxx	2006-12-28 01:31:44.000000000 +0100
+@@ -38,8 +38,6 @@
+ #ifndef SC_POSTIT_HXX
+ #define SC_POSTIT_HXX
+ 
+-#include <boost/shared_ptr.hpp>
+-
+ #include <svtools/pathoptions.hxx>
+ #include <svtools/useroptions.hxx>
+ 
+@@ -71,6 +69,8 @@
+ #include <com/sun/star/drawing/XShape.hpp>
+ #endif
+ 
++#include <boost/shared_ptr.hpp>
++
+ //	indicative text length for a note object
+ #define SC_NOTE_SMALLTEXT	100
+ 
+--- sc/source/filter/html/htmlpars.cxx.orig	2006-12-28 01:49:56.000000000 +0100
++++ sc/source/filter/html/htmlpars.cxx	2006-12-28 01:50:04.000000000 +0100
+@@ -36,8 +36,6 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sc.hxx"
+ 
+-#include <boost/shared_ptr.hpp>
+-
+ #define SC_HTMLPARS_CXX
+ #include "scitems.hxx"
+ #include <svx/eeitem.hxx>
+@@ -85,6 +83,8 @@
+ #include "document.hxx"
+ #include "rangelst.hxx"
+ 
++#include <boost/shared_ptr.hpp>
++
+ 
+ SV_IMPL_VARARR_SORT( ScHTMLColOffset, ULONG );
+ 
+--- sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx.orig	2006-12-28 12:50:04.000000000 +0100
++++ sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx	2006-12-28 13:03:30.000000000 +0100
+@@ -36,6 +36,7 @@
+ #ifndef SD_SLIDESORTER_SLIDE_SORTER_CONTROLLER_HXX
+ #define SD_SLIDESORTER_SLIDE_SORTER_CONTROLLER_HXX
+ 
++#include <memory>
+ #include "model/SlsSharedPageDescriptor.hxx"
+ #include "ViewShell.hxx"
+ 
+@@ -51,7 +52,6 @@
+ #ifndef _SV_GEN_HXX
+ #include <tools/gen.hxx>
+ #endif
+-#include <memory>
+ #include <comphelper/implementationreference.hxx>
+ 
+ class TabBar;
+--- sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx.orig	2006-12-28 13:07:29.000000000 +0100
++++ sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx	2006-12-28 13:07:38.000000000 +0100
+@@ -35,13 +35,13 @@
+ #ifndef SD_SLIDESORTER_FOCUS_MANAGER_HXX
+ #define SD_SLIDESORTER_FOCUS_MANAGER_HXX
+ 
++#include <vector>
+ #include <model/SlsSharedPageDescriptor.hxx>
+ 
+ #include <sal/types.h>
+ #ifndef _LINK_HXX
+ #include <tools/link.hxx>
+ #endif
+-#include <vector>
+ 
+ namespace sd { namespace slidesorter { namespace controller {
+ 
+--- sd/source/ui/slidesorter/controller/SlsPageObjectFactory.cxx.orig	2006-12-28 13:11:40.000000000 +0100
++++ sd/source/ui/slidesorter/controller/SlsPageObjectFactory.cxx	2006-12-28 13:11:46.000000000 +0100
+@@ -36,12 +36,12 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_sd.hxx"
+ 
+-#include "controller/SlsPageObjectFactory.hxx"
+-
+ #include "view/SlsPageObject.hxx"
+ #include "view/SlsPageObjectViewContact.hxx"
+ #include "view/SlsPageObjectViewObjectContact.hxx"
+ 
++#include "controller/SlsPageObjectFactory.hxx"
++
+ #include "sdpage.hxx"
+ 
+ 
+--- sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx.orig	2006-12-28 13:14:01.000000000 +0100
++++ sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx	2006-12-28 13:14:08.000000000 +0100
+@@ -35,11 +35,11 @@
+ #ifndef SD_SLIDESORTER_PAGE_SELECTOR_HXX
+ #define SD_SLIDESORTER_PAGE_SELECTOR_HXX
+ 
+-#include "model/SlsSharedPageDescriptor.hxx"
+-
+ #include <set>
+ #include <memory>
+ 
++#include "model/SlsSharedPageDescriptor.hxx"
++
+ class SdPage;
+ 
+ namespace sd { namespace slidesorter { namespace model {
+--- sd/source/ui/slidesorter/inc/view/SlsViewOverlay.hxx.orig	2006-12-28 13:21:53.000000000 +0100
++++ sd/source/ui/slidesorter/inc/view/SlsViewOverlay.hxx	2006-12-28 13:22:02.000000000 +0100
+@@ -36,11 +36,11 @@
+ #ifndef SD_SLIDESORTER_VIEW_OVERLAY_HXX
+ #define SD_SLIDESORTER_VIEW_OVERLAY_HXX
+ 
++#include <vector>
+ #include "model/SlsSharedPageDescriptor.hxx"
+ 
+ #include <osl/mutex.hxx>
+ #include <tools/gen.hxx>
+-#include <vector>
+ #include <boost/weak_ptr.hpp>
+ 
+ class OutputDevice;
+--- extensions/source/update/check/updatehdl.hxx.orig	2007-07-15 13:38:04.000000000 +0200
++++ extensions/source/update/check/updatehdl.hxx	2007-07-15 13:38:15.000000000 +0200
+@@ -36,8 +36,6 @@
+ #ifndef INCLUDED_UPDATE_HDL_HXX
+ #define INCLUDED_UPDATE_HDL_HXX
+ 
+-#include "boost/utility.hpp"
+-
+ #ifndef  _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+@@ -85,6 +83,7 @@
+ #endif
+ 
+ #include "actionlistener.hxx"
++#include "boost/utility.hpp"
+ 
+ enum DialogControls
+ {
+--- chart2/source/view/main/ChartView.hxx.orig	2007-06-27 15:20:31.000000000 +0200
++++ chart2/source/view/main/ChartView.hxx	2007-06-27 15:20:46.000000000 +0200
+@@ -35,6 +35,7 @@
+ #ifndef _CHARTVIEWIMPL_HXX
+ #define _CHARTVIEWIMPL_HXX
+ 
++#include <vector>
+ #include "chartview/ExplicitValueProvider.hxx"
+ #include "ServiceMacros.hxx"
+ 
+@@ -82,7 +83,6 @@
+ #include <com/sun/star/util/XUpdatable.hpp>
+ #endif
+ 
+-#include <vector>
+ #include <boost/shared_ptr.hpp>
+ 
+ class SdrPage;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libwps.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libwps.diff
@@ -0,0 +1,183 @@
+--- /dev/null	2007-01-22 11:02:07.811249416 +0100
++++ libwps/makefile.mk	2006-12-18 17:48:06.000000000 +0100
+@@ -0,0 +1,69 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.1 $
++#
++#   last change: $Author: fridrich_strba $ $Date: 2006/12/18 16:48:06 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=.
++
++PRJNAME=wps
++TARGET=wps
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :	settings.mk
++
++# --- Files --------------------------------------------------------
++
++.IF "$(SYSTEM_LIBWPS)" == "YES"
++@all:
++	@echo "Using system libwps..."
++.ENDIF
++
++# libwps depends on the libwpd framework
++.IF "$(SYSTEM_LIBWPD)" == "YES"
++INCPRE+=$(LIBWPD_CFLAGS)
++.ELSE
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++.ENDIF
++
++TARFILE_NAME=libwps-0.1.2
++#PATCH_FILE_NAME=$(TARFILE_NAME).diff
++BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
++BUILD_DIR=src/lib
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE : set_ext.mk
++.INCLUDE :	target.mk
++.INCLUDE :	tg_ext.mk
++
+--- /dev/null	2007-01-22 11:02:07.811249416 +0100
++++ libwps/prj/d.lst	2006-12-18 17:48:07.000000000 +0100
+@@ -0,0 +1,6 @@
++mkdir: %_DEST%\inc%_EXT%\libwps
++..\%__SRC%\misc\build\libwps*\src\lib\libwps.h %_DEST%\inc%_EXT%\libwps\
++..\%__SRC%\misc\build\libwps*\src\lib\WPSStream.h %_DEST%\inc%_EXT%\libwps\
++..\%__SRC%\misc\build\libwps*\src\lib\WPSDocument.h %_DEST%\inc%_EXT%\libwps\
++..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
++..\%__SRC%\slb\*.lib %_DEST%\lib%_EXT%\*.lib
+--- /dev/null	2007-01-22 11:02:07.811249416 +0100
++++ libwps/prj/build.lst	2006-12-18 17:48:07.000000000 +0100
+@@ -0,0 +1,3 @@
++lwps	libwps	: LIBWPD:libwpd soltools NULL
++lwps	libwps	usr1	-	all	lwps_mkout NULL
++lwps	libwps	nmake	-	all	lwps_libwps NULL
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ libwps/libwps-0.1.1.diff	2007-12-02 21:10:41.000000000 +0100
+@@ -0,0 +1,93 @@
++*** misc/libwps-0.1.1/src/lib/WPSListener.h	Thu Nov 29 20:58:57 2007
++--- misc/build/libwps-0.1.1/src/lib/WPSListener.h	Sun Dec  2 20:54:35 2007
++***************
++*** 39,45 ****
++  	virtual ~WPSListener();
++  
++  	bool isUndoOn() { return m_isUndoOn; }
++! 	void setUndoOn(bool isUndoOn) { m_isUndoOn = isUndoOn; }
++  
++  	std::list<WPSPageSpan> &m_pageList;
++  	
++--- 39,45 ----
++  	virtual ~WPSListener();
++  
++  	bool isUndoOn() { return m_isUndoOn; }
++! 	void setUndoOn(bool undoOn) { m_isUndoOn = undoOn; }
++  
++  	std::list<WPSPageSpan> &m_pageList;
++  	
++*** misc/libwps-0.1.1/src/lib/WPSContentListener.cpp	Thu Nov 29 20:58:57 2007
++--- misc/build/libwps-0.1.1/src/lib/WPSContentListener.cpp	Sun Dec  2 21:09:11 2007
++***************
++*** 36,62 ****
++  #define LIBWPS_MAX std::max
++  #endif
++  
++- namespace {
++- 
++- WPXString doubleToString(const double value)
++- {
++-   WPXString tempString;
++-   tempString.sprintf("%.4f", value);
++-   std::string decimalPoint(localeconv()->decimal_point);
++-   if ((decimalPoint.size() == 0) || (decimalPoint == "."))
++-     return tempString;
++-   std::string stringValue(tempString.cstr());
++-   if (!stringValue.empty())
++-   {
++-     std::string::size_type pos;
++-     while ((pos = stringValue.find(decimalPoint)) != std::string::npos)
++-           stringValue.replace(pos,decimalPoint.size(),".");
++-   }
++-   return WPXString(stringValue.c_str());
++- }
++- 
++- } // namespace
++- 
++  _WPSContentParsingState::_WPSContentParsingState() :
++  	m_textAttributeBits(0),
++  	m_fontSize(12.0f/*WP6_DEFAULT_FONT_SIZE*/), // FIXME ME!!!!!!!!!!!!!!!!!!! HELP WP6_DEFAULT_FONT_SIZE
++--- 36,41 ----
++***************
++*** 578,585 ****
++  		_closePageSpan();
++  }
++  
++- const float WPS_DEFAULT_SUPER_SUB_SCRIPT = 58.0f; 
++- 
++  void WPSContentListener::_openSpan()
++  {
++  	if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened)
++--- 557,562 ----
++***************
++*** 622,639 ****
++  	}
++  
++  	WPXPropertyList propList;
++!  	if (attributeBits & WPS_SUPERSCRIPT_BIT) {
++! 		WPXString sSuperScript("super ");
++! 		sSuperScript.append(doubleToString(WPS_DEFAULT_SUPER_SUB_SCRIPT));
++! 		sSuperScript.append("%");
++! 		propList.insert("style:text-position", sSuperScript);
++! 	}
++!  	else if (attributeBits & WPS_SUBSCRIPT_BIT) {
++! 		WPXString sSubScript("sub ");
++! 		sSubScript.append(doubleToString(WPS_DEFAULT_SUPER_SUB_SCRIPT));
++! 		sSubScript.append("%");
++! 		propList.insert("style:text-position", sSubScript);
++! 	}
++  	if (attributeBits & WPS_ITALICS_BIT)
++  		propList.insert("fo:font-style", "italic");
++  	if (attributeBits & WPS_BOLD_BIT)
++--- 599,608 ----
++  	}
++  
++  	WPXPropertyList propList;
++!  	if (m_ps->m_textAttributeBits & WPS_SUPERSCRIPT_BIT)
++! 		propList.insert("style:text-position", "super 58%");
++!  	else if (m_ps->m_textAttributeBits & WPS_SUBSCRIPT_BIT)
++! 		propList.insert("style:text-position", "sub 58%");
++  	if (attributeBits & WPS_ITALICS_BIT)
++  		propList.insert("fo:font-style", "italic");
++  	if (attributeBits & WPS_BOLD_BIT)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svg-import-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svg-import-filter.diff
@@ -0,0 +1,5115 @@
+--- filter/source/config/fragments/fcfg_drawgraphics.mk	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/config/fragments/fcfg_drawgraphics.mk	2008-04-11 00:09:55.000000000 +0200
+@@ -54,6 +54,7 @@
+     SGF___StarOffice_Writer_SGF \
+     SGV___StarDraw_2_0 \
+     SVM___StarView_Metafile \
++    SVG___Scalable_Vector_Graphics \
+     TGA___Truevision_TARGA \
+     TIF___Tag_Image_File \
+     WMF___MS_Windows_Metafile \
+--- filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/config/fragments/filters/SVG___Scalable_Vector_Graphics.xcu	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,13 @@
++	<node oor:name="SVG - Scalable Vector Graphics" oor:op="replace">
++		<prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop>
++		<prop oor:name="UserData"><value></value></prop>
++		<prop oor:name="UIName">
++			<value xml:lang="x-default">SVG - Scalable Vector Graphics</value>
++		</prop>
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
++	</node>
+--- filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu	2008-04-11 00:09:55.000000000 +0200
+@@ -1,12 +1,12 @@
+ 	<node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace" >
+-		<prop oor:name="DetectService"/>
++		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ 		<prop oor:name="URLPattern"/>
+ 		<prop oor:name="Extensions"><value>svg</value></prop>
+ 		<prop oor:name="MediaType"><value>image/svg+xml</value></prop>
+-		<prop oor:name="Preferred"><value>false</value></prop>
+-		<prop oor:name="PreferredFilter"/>
++		<prop oor:name="Preferred"><value>true</value></prop>
++		<prop oor:name="PreferredFilter"><value>SVG - Scalable Vector Graphics</value></prop>
+ 		<prop oor:name="UIName">
+ 			<value>SVG - Scalable Vector Graphics</value>
+ 		</prop>
+-		<prop oor:name="ClipboardFormat"/>
++		<prop oor:name="ClipboardFormat"><value>doctype:xmlns="http://www.w3.org/2000/svg"</value></prop>
+ 	</node>
+--- filter/source/svg/b2dellipse.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/b2dellipse.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,139 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#include "b2dellipse.hxx"
++
++#include <osl/diagnose.h>
++
++#include <basegfx/point/b2dpoint.hxx>
++
++#include <basegfx/matrix/b2dhommatrix.hxx>
++
++#include <rtl/instance.hxx>
++
++#include <boost/scoped_ptr.hpp>
++#include <vector>
++#include <algorithm>
++
++class ImplB2DEllipse
++{
++	 basegfx::B2DPoint maCenter;
++	 basegfx::B2DTuple maRadius;
++
++public:
++	ImplB2DEllipse()
++	:	maCenter(0.0f, 0.0f),
++		maRadius(0.0f, 0.0f)
++	{}
++
++	ImplB2DEllipse(const ImplB2DEllipse& rToBeCopied)
++	:	maCenter(rToBeCopied.maCenter),
++		maRadius(rToBeCopied.maRadius)
++	{}
++	
++    ImplB2DEllipse& operator=( const ImplB2DEllipse& rToBeCopied )
++    {
++		maCenter = rToBeCopied.maCenter;
++		maRadius = rToBeCopied.maRadius;
++
++        return *this;
++    }
++
++	bool isEqual(const ImplB2DEllipse& rCandidate) const
++	{
++		return (maCenter == rCandidate.maCenter)
++			&& (maRadius == rCandidate.maRadius);
++	}
++
++	basegfx::B2DPoint getCenter() const
++	{
++		return maCenter;
++	}
++	
++	void setCenter(const basegfx::B2DPoint& rCenter)
++	{
++		maCenter = rCenter;
++	}
++		
++	basegfx::B2DTuple getRadius() const
++	{
++		return maRadius;
++	}
++	
++	void setRadius(const basegfx::B2DTuple& rRadius)
++	{
++		maRadius = rRadius;
++	}
++		
++
++	void transform(const basegfx::B2DHomMatrix& /* rMatrix */)
++	{
++	}
++};
++
++//////////////////////////////////////////////////////////////////////////////
++
++namespace basegfx
++{
++
++	B2DEllipse::B2DEllipse() 
++	{}
++
++	B2DEllipse::B2DEllipse(const basegfx::B2DPoint& rCenter, const basegfx::B2DTuple& rRadius)
++	:	maCenter(rCenter), maRadius(rRadius)
++	{
++	}
++
++	B2DEllipse::~B2DEllipse()
++	{
++	}
++
++	bool B2DEllipse::operator==(const B2DEllipse& rEllipse) const
++	{
++		return (maCenter == rEllipse.maCenter) && (maRadius == rEllipse.maRadius);
++	}
++
++	bool B2DEllipse::operator!=(const B2DEllipse& rEllipse) const
++	{
++        return !(*this == rEllipse);
++	}
++
++	basegfx::B2DPoint B2DEllipse::getB2DEllipseCenter() const
++	{
++		return maCenter;
++	}
++
++	void B2DEllipse::setB2DEllipseCenter(const basegfx::B2DPoint& rCenter)
++	{
++		maCenter = rCenter;
++	}
++
++	basegfx::B2DTuple B2DEllipse::getB2DEllipseRadius() const
++	{
++		return maRadius;
++	}
++
++	void B2DEllipse::setB2DEllipseRadius(const basegfx::B2DTuple& rRadius)
++	{
++		maRadius = rRadius;
++	}
++
++	void B2DEllipse::transform(const basegfx::B2DHomMatrix& /* rMatrix */)
++	{
++	}
++} // end of namespace basegfx
++
++//////////////////////////////////////////////////////////////////////////////
++// eof
+--- filter/source/svg/b2dellipse.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/b2dellipse.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,77 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef _BASEGFX_B2DELLIPSE_HXX
++#define _BASEGFX_B2DELLIPSE_HXX
++
++#include <sal/types.h>
++
++#include <o3tl/cow_wrapper.hxx>
++
++#include <basegfx/point/b2dpoint.hxx>
++
++#include <basegfx/tuple/b2dtuple.hxx>
++
++#include <basegfx/vector/b2enums.hxx>
++
++//////////////////////////////////////////////////////////////////////////////
++// predeclarations
++class ImplB2DEllipse;
++
++namespace basegfx
++{
++	class B2DPoint;
++	class B2DVector;
++	class B2DHomMatrix;
++} // end of namespace basegfx
++
++//////////////////////////////////////////////////////////////////////////////
++
++namespace basegfx
++{
++	class B2DEllipse
++	{
++	private:
++	 basegfx::B2DPoint maCenter;
++	 basegfx::B2DTuple maRadius;
++
++	public:
++		B2DEllipse();
++		B2DEllipse(const B2DEllipse& rEllipse);
++		B2DEllipse(const basegfx::B2DPoint& rCenter, const basegfx::B2DTuple& rRadius);
++		~B2DEllipse();
++
++		// assignment operator
++		B2DEllipse& operator=(const B2DEllipse& rEllipse);
++
++		// compare operators
++		bool operator==(const B2DEllipse& rEllipse) const;
++		bool operator!=(const B2DEllipse& rEllipse) const;
++
++		// Coordinate interface
++		basegfx::B2DPoint getB2DEllipseCenter() const;
++		void setB2DEllipseCenter(const basegfx::B2DPoint& rCenter);
++		
++		basegfx::B2DTuple getB2DEllipseRadius() const;
++		void setB2DEllipseRadius(const basegfx::B2DTuple& rRadius);
++		
++		// apply transformation given in matrix form to the Ellipse
++		void transform(const basegfx::B2DHomMatrix& rMatrix);
++	};
++} // end of namespace basegfx
++
++//////////////////////////////////////////////////////////////////////////////
++
++#endif /* _BASEGFX_B2DELLIPSE_HXX */
+--- filter/source/svg/exports.map	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/exports.map	2008-04-11 00:09:55.000000000 +0200
+@@ -1,4 +1,4 @@
+-PDFFILTER_1_0 {
++SVGFILTER_1_0 {
+         global:
+                 component_getImplementationEnvironment;
+                 component_getFactory;
+@@ -6,4 +6,4 @@
+ 
+         local:
+                 *;
+-}; 
+\ No newline at end of file
++}; 
+--- filter/source/svg/gentoken.pl	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/gentoken.pl	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,58 @@
++# from oox/source/token - should really put this into solenv
++
++$ARGV0 = shift @ARGV;
++$ARGV1 = shift @ARGV;
++$ARGV2 = shift @ARGV;
++
++open ( TOKENS, $ARGV0 ) || die "can't open token file: $!";
++my %tokens;
++
++while ( defined ($line = <TOKENS>) )
++{
++	if( !($line =~ /^#/) )
++	{
++		chomp($line);
++		@token = split(/\s+/,$line);
++		if ( not defined ($token[1]) )
++		{
++			$token[1] = "XML_".$token[0];
++			$token[1] =~ tr/\-\.\:/___/;
++			$token[1] =~ s/\+/PLUS/g;
++			$token[1] =~ s/\-/MINUS/g;
++		}
++
++		$tokens{$token[0]} = uc($token[1]);
++	}
++}
++close ( TOKENS );
++
++open ( HXX, ">$ARGV1" ) || die "can't open tokens.hxx file: $!";
++open ( GPERF, ">$ARGV2" ) || die "can't open tokens.gperf file: $!";
++
++print ( GPERF "%language=C++\n" );
++print ( GPERF "%global-table\n" );
++print ( GPERF "%null-strings\n" );
++print ( GPERF "%struct-type\n" );
++print ( GPERF "struct xmltoken\n" );
++print ( GPERF "{\n" );
++print ( GPERF "  const sal_Char *name; sal_Int32 nToken; \n" );
++print ( GPERF "};\n" );
++print ( GPERF "%%\n" );
++
++print ( HXX "#ifndef INCLUDED_AUTOGEN_TOKEN_HXX\n" );
++print ( HXX "#define INCLUDED_AUTOGEN_TOKEN_HXX\n\n" );
++print ( HXX "#include <sal/types.h>\n\n" );
++
++$i = 0;
++foreach( sort(keys(%tokens)) )
++{
++	print( HXX "const sal_Int32 $tokens{$_} = $i;\n" );
++	print( GPERF "$_,$tokens{$_}\n" );
++	$i = $i + 1;
++}
++print ( GPERF "%%\n" );
++print ( HXX "const sal_Int32 XML_TOKEN_COUNT = $i;\n" );
++print ( HXX "const sal_Int32 XML_TOKEN_INVALID = -1;\n\n" );
++print ( HXX "#endif\n" );
++close ( HXX );
++close ( GPERF );
+--- filter/source/svg/gfxtypes.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/gfxtypes.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,356 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_GFXTYPES_HXX
++#define INCLUDED_GFXTYPES_HXX
++
++#include <basegfx/range/b2drange.hxx>
++#include <basegfx/matrix/b2dhommatrix.hxx>
++#include <basegfx/polygon/b2dlinegeometry.hxx>
++
++#include <hash_set>
++#include <hash_map>
++#include <rtl/ustring.hxx>
++
++namespace svgi
++{
++
++struct ARGBColor
++{
++    double toDoubleColor( sal_uInt8 val ) { return val/255.0; }
++
++    ARGBColor() : a(1.0), r(0.0), g(0.0), b(0.0)
++    {}
++    explicit ARGBColor(double fGrey) : a(1.0), r(fGrey), g(fGrey), b(fGrey)
++    {}
++    ARGBColor( double r_, double g_, double b_ ) : 
++        a(1.0), r(r_), g(g_), b(b_)
++    {}
++    ARGBColor( double a_, double r_, double g_, double b_ ) : 
++        a(a_), r(r_), g(g_), b(b_)
++    {}
++    ARGBColor( int r_, int g_, int b_ ) : 
++        a(1.0),
++        r(toDoubleColor(sal::static_int_cast<sal_uInt8>(r_))), 
++        g(toDoubleColor(sal::static_int_cast<sal_uInt8>(g_))), 
++        b(toDoubleColor(sal::static_int_cast<sal_uInt8>(b_)))
++    {}
++    ARGBColor( int a_, int r_, int g_, int b_ ) : 
++        a(toDoubleColor(sal::static_int_cast<sal_uInt8>(a_))), 
++        r(toDoubleColor(sal::static_int_cast<sal_uInt8>(r_))), 
++        g(toDoubleColor(sal::static_int_cast<sal_uInt8>(g_))), 
++        b(toDoubleColor(sal::static_int_cast<sal_uInt8>(b_)))
++    {}
++    double a;
++    double r;
++    double g;
++    double b;
++};
++inline bool operator==( const ARGBColor& rLHS, const ARGBColor& rRHS )
++{ return rLHS.a==rRHS.a && rLHS.r==rRHS.r && rLHS.g==rRHS.g && rLHS.b==rRHS.b; }
++inline bool operator!=( const ARGBColor& rLHS, const ARGBColor& rRHS )
++{ return !(rLHS==rRHS); }
++
++struct GradientStop
++{
++    GradientStop() : maStopColor(), mnStopPosition(0.0)
++    {}
++    ARGBColor     maStopColor;
++    double        mnStopPosition;
++};
++inline bool operator==( const GradientStop& rLHS, const GradientStop& rRHS )
++{ return rLHS.mnStopPosition==rRHS.mnStopPosition && rLHS.maStopColor==rRHS.maStopColor; }
++
++struct Gradient
++{
++    enum GradientType { LINEAR, RADIAL};
++    std::vector<sal_Size> maStops;
++    basegfx::B2DHomMatrix maTransform;
++    GradientType          meType;
++    union
++    {
++        double test;
++        struct
++        {
++            double                mfX1;
++            double                mfX2;
++            double                mfY1;
++            double                mfY2;
++        } linear;
++        struct
++        {
++            double                mfCX;
++            double                mfCY;
++            double                mfFX;
++            double                mfFY;
++            double                mfR;
++        } radial;
++    } maCoords;
++    sal_Int32             mnId;
++    bool                  mbBoundingBoxUnits;
++    bool                  mbLinearBoundingBoxUnits;
++
++//    explicit Gradient(GradientType eType) : maStops(), maTransform(), meType(eType), maCoords.mfCX(0.0), maCoords.mfCY(0.0), maCoords.mfFX(0.0), maCoords.mfFY(0.0), maCoords.mfR(0.0), mnId(0), mbBoundingBoxUnits(false) 
++    explicit Gradient(GradientType eType) : maStops(), maTransform(), meType(eType), mnId(0), mbBoundingBoxUnits(false) 
++    {
++        maCoords.radial.mfCX = 0.0;
++        maCoords.radial.mfCY = 0.0;
++        maCoords.radial.mfFX = 0.0;
++        maCoords.radial.mfFY = 0.0;
++        maCoords.radial.mfR  = 0.0;
++    }
++};
++
++inline bool operator==( const Gradient& rLHS, const Gradient& rRHS )
++{
++    if( rLHS.meType != rRHS.meType )
++        return false;
++    if( rLHS.meType == Gradient::LINEAR )
++        return rLHS.mbBoundingBoxUnits==rRHS.mbBoundingBoxUnits && rLHS.maStops==rRHS.maStops &&
++            rLHS.maCoords.linear.mfX1 == rRHS.maCoords.linear.mfX1 && rLHS.maCoords.linear.mfX2 == rRHS.maCoords.linear.mfX2 && 
++            rLHS.maCoords.linear.mfY1 == rRHS.maCoords.linear.mfY1 && rLHS.maCoords.linear.mfY2 == rRHS.maCoords.linear.mfY2;
++    else
++        return rLHS.mbBoundingBoxUnits==rRHS.mbBoundingBoxUnits && rLHS.maStops==rRHS.maStops &&
++            rLHS.maCoords.radial.mfCX == rRHS.maCoords.radial.mfCX && rLHS.maCoords.radial.mfCY == rRHS.maCoords.radial.mfCY && 
++            rLHS.maCoords.radial.mfFX == rRHS.maCoords.radial.mfFX && rLHS.maCoords.radial.mfFY == rRHS.maCoords.radial.mfFY && 
++            rLHS.maCoords.radial.mfR == rRHS.maCoords.radial.mfR;
++}
++
++enum PaintType
++{
++    NONE,
++    SOLID,
++    GRADIENT
++};
++
++enum FillRule
++{
++    NON_ZERO,
++    EVEN_ODD
++};
++
++enum TextAlign
++{
++    BEFORE,
++    CENTER,
++    AFTER
++};
++
++enum CapStyle
++{
++    BUTT,
++    RECT,
++    ROUND
++};
++
++enum FontStyle
++{
++    STYLE_NORMAL,
++    STYLE_OBLIQUE,
++    STYLE_ITALIC
++};
++
++enum FontVariant
++{
++    VARIANT_NORMAL,
++    VARIANT_SMALLCAPS
++};
++
++struct State
++{
++    State() :
++        maCTM(),
++        maTransform(),
++        maViewport(),
++        maViewBox(),
++        maFontFamily(), // app-default
++        mnFontSize(12.0),
++        meFontStyle(STYLE_NORMAL),
++        meFontVariant(VARIANT_NORMAL),
++        mnFontWeight(400.0),
++        meTextAnchor(BEFORE),
++        meTextDisplayAlign(BEFORE),
++        mnTextLineIncrement(0.0),
++        maCurrentColor(1.0),
++        mbVisibility(true),
++        meFillType(SOLID),
++        mnFillOpacity(1.0),
++        meStrokeType(NONE),
++        mnStrokeOpacity(1.0),
++        meViewportFillType(NONE),
++        mnViewportFillOpacity(1.0),
++        maFillColor(0.0),
++        maFillGradient(Gradient::LINEAR),
++        meFillRule(NON_ZERO),
++        maStrokeColor(0.0),
++        maStrokeGradient(Gradient::LINEAR),
++        maDashArray(),
++        mnDashOffset(0.0),
++        meLineCap(BUTT),
++        meLineJoin(basegfx::tools::B2DLINEJOIN_MITER),
++        mnMiterLimit(4.0),
++        mnStrokeWidth(1.0),
++        maViewportFillColor(1.0),
++        maViewportFillGradient(Gradient::LINEAR),
++        mnStyleId(0)
++    {}
++
++    basegfx::B2DHomMatrix       maCTM;
++    basegfx::B2DHomMatrix       maTransform;
++    basegfx::B2DRange           maViewport;
++    basegfx::B2DRange           maViewBox;
++
++    rtl::OUString               maFontFamily;
++    /** Absolute: xx-small=6.94 | x-small=8.33 | small=10 | medium=12 | large=14.4 | x-large=17.28 | xx-large=20.736
++
++        Relative(to parent): larger (enlarge by 1.2)
++                             smaller (shrink by 1.2)
++
++     */
++    double                      mnFontSize;
++    FontStyle                   meFontStyle;
++    FontVariant                 meFontVariant;
++    double                      mnFontWeight;
++
++    TextAlign                   meTextAnchor; // text-anchor
++    TextAlign                   meTextDisplayAlign; // display-align
++    double                      mnTextLineIncrement; // 0.0 means auto
++
++    ARGBColor                   maCurrentColor;
++    bool                        mbVisibility;
++
++    PaintType                   meFillType;
++    double                      mnFillOpacity;
++    PaintType                   meStrokeType;
++    double                      mnStrokeOpacity;
++    PaintType                   meViewportFillType;
++    double                      mnViewportFillOpacity;
++
++    ARGBColor                   maFillColor;
++    Gradient                    maFillGradient;
++    FillRule                    meFillRule;
++
++    ARGBColor                   maStrokeColor;
++    Gradient                    maStrokeGradient;
++    std::vector<double>         maDashArray;
++    double                      mnDashOffset;
++    CapStyle                    meLineCap;
++    basegfx::tools::B2DLineJoin meLineJoin;
++    double                      mnMiterLimit;
++    double                      mnStrokeWidth;
++
++    ARGBColor                   maViewportFillColor;
++    Gradient                    maViewportFillGradient;
++
++    sal_Int32                   mnStyleId;
++};
++
++inline bool operator==(const State& rLHS, const State& rRHS )
++{
++    return rLHS.maCTM==rRHS.maCTM &&
++        rLHS.maTransform==rRHS.maTransform &&
++        rLHS.maViewport==rRHS.maViewport &&
++        rLHS.maViewBox==rRHS.maViewBox &&
++        rLHS.maFontFamily==rRHS.maFontFamily &&
++        rLHS.mnFontSize==rRHS.mnFontSize &&
++        rLHS.meFontStyle==rRHS.meFontStyle &&
++        rLHS.meFontVariant==rRHS.meFontVariant &&
++        rLHS.mnFontWeight==rRHS.mnFontWeight &&
++        rLHS.meTextAnchor==rRHS.meTextAnchor &&
++        rLHS.meTextDisplayAlign==rRHS.meTextDisplayAlign &&
++        rLHS.mnTextLineIncrement==rRHS.mnTextLineIncrement &&
++        rLHS.maCurrentColor==rRHS.maCurrentColor &&
++        rLHS.mbVisibility==rRHS.mbVisibility &&
++        rLHS.meFillType==rRHS.meFillType &&
++        rLHS.mnFillOpacity==rRHS.mnFillOpacity &&
++        rLHS.meStrokeType==rRHS.meStrokeType &&
++        rLHS.mnStrokeOpacity==rRHS.mnStrokeOpacity &&
++        rLHS.meViewportFillType==rRHS.meViewportFillType &&
++        rLHS.mnViewportFillOpacity==rRHS.mnViewportFillOpacity &&
++        rLHS.maFillColor==rRHS.maFillColor &&
++        rLHS.maFillGradient==rRHS.maFillGradient &&
++        rLHS.meFillRule==rRHS.meFillRule &&
++        rLHS.maStrokeColor==rRHS.maStrokeColor &&
++        rLHS.maStrokeGradient==rRHS.maStrokeGradient &&
++        rLHS.maDashArray==rRHS.maDashArray &&
++        rLHS.mnDashOffset==rRHS.mnDashOffset &&
++        rLHS.meLineCap==rRHS.meLineCap &&
++        rLHS.meLineJoin==rRHS.meLineJoin &&
++        rLHS.mnMiterLimit==rRHS.mnMiterLimit &&
++        rLHS.mnStrokeWidth==rRHS.mnStrokeWidth &&
++        rLHS.maViewportFillColor==rRHS.maViewportFillColor &&
++        rLHS.maViewportFillGradient==rRHS.maViewportFillGradient;
++}
++        
++struct StateHash
++{
++    size_t operator()(const State& rState ) const
++    {
++        return size_t(rState.maCTM.get( 0, 0 ))
++            ^  size_t(rState.maCTM.get( 1, 0 ))
++            ^  size_t(rState.maCTM.get( 0, 1 ))
++            ^  size_t(rState.maCTM.get( 1, 1 ))
++            ^  size_t(rState.maCTM.get( 0, 2 ))
++            ^  size_t(rState.maCTM.get( 1, 2 ))
++            ^  size_t(rState.maViewport.getWidth())
++            ^  size_t(rState.maViewport.getHeight())
++            ^  size_t(rState.maViewBox.getWidth())
++            ^  size_t(rState.maViewBox.getHeight())
++            ^  size_t(rState.maFontFamily.hashCode())
++            ^  size_t(rState.mnFontSize)
++            ^  size_t(rState.meFontStyle)
++            ^  size_t(rState.meFontVariant)
++            ^  size_t(rState.mnFontWeight)
++            ^  size_t(rState.meTextAnchor)
++            ^  size_t(rState.meTextDisplayAlign)
++            ^  size_t(rState.mnTextLineIncrement)
++            ^  size_t(rState.mbVisibility)
++            ^  size_t(rState.meFillType)
++            ^  size_t(rState.mnFillOpacity)
++            ^  size_t(rState.meStrokeType)
++            ^  size_t(rState.mnStrokeOpacity)
++            ^  size_t(rState.meViewportFillType)
++            ^  size_t(rState.mnViewportFillOpacity)
++            ^  size_t(rState.maFillColor.a)
++            ^  size_t(rState.maFillColor.r)
++            ^  size_t(rState.maFillColor.g)
++            ^  size_t(rState.maFillColor.b)
++            ^  size_t(rState.maFillGradient.maStops.size())
++            ^  size_t(rState.meFillRule)
++            ^  size_t(rState.maStrokeColor.a)
++            ^  size_t(rState.maStrokeColor.r)
++            ^  size_t(rState.maStrokeColor.g)
++            ^  size_t(rState.maStrokeColor.b)
++            ^  size_t(rState.maStrokeGradient.maStops.size())
++            ^  size_t(rState.maDashArray.size())
++            ^  size_t(rState.mnDashOffset)
++            ^  size_t(rState.meLineCap)
++            ^  size_t(rState.meLineJoin)
++            ^  size_t(rState.mnMiterLimit)
++            ^  size_t(rState.mnStrokeWidth)
++            ^  size_t(rState.maViewportFillColor.a)
++            ^  size_t(rState.maViewportFillColor.r)
++            ^  size_t(rState.maViewportFillColor.g)
++            ^  size_t(rState.maViewportFillColor.b)
++            ^  size_t(rState.maViewportFillGradient.maStops.size());
++    }
++};
++
++typedef std::hash_set<State, StateHash> StatePool;
++typedef std::hash_map<sal_Int32, State> StateMap;
++
++} // namespace svgi
++
++#endif
+--- filter/source/svg/makefile.mk	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/makefile.mk	2008-04-11 00:09:55.000000000 +0200
+@@ -34,24 +34,35 @@
+ #*************************************************************************
+ 
+ PRJ=..$/..
++
+ PRJNAME=filter
+ TARGET=svgfilter
+-
+ ENABLE_EXCEPTIONS=TRUE
+ 
+ # --- Settings ----------------------------------
+ 
+-.INCLUDE :  	settings.mk
++.INCLUDE :  settings.mk
++.INCLUDE :	libs.mk
+ 
+ # --- Types -------------------------------------
+ 
+-SLOFILES=	$(SLO)$/svguno.obj			\
+-			$(SLO)$/svgfilter.obj		\
++SLOFILES= \
++			$(SLO)$/b2dellipse.obj	\
++			$(SLO)$/parserfragments.obj \
+ 			$(SLO)$/svgexport.obj		\
++			$(SLO)$/svgfilter.obj		\
+ 			$(SLO)$/svgfontexport.obj	\
+-			$(SLO)$/svgwriter.obj	
+-.IF "$(SOLAR_JAVA)"!=""
+-SLOFILES+=		$(SLO)$/svgimport.obj
++			$(SLO)$/svgimport.obj		\
++			$(SLO)$/svgreader.obj		\
++			$(SLO)$/svguno.obj			\
++			$(SLO)$/svgwriter.obj		\
++			$(SLO)$/tokenmap.obj        \
++			$(SLO)$/units.obj
++
++.IF "$(COMID)"=="gcc3"
++.IF "$(CCNUMVER)">="000400000000" 
++CFLAGS+=-DUSE_MODERN_SPIRIT
++.ENDIF
+ .ENDIF
+ 
+ # --- Library -----------------------------------
+@@ -59,22 +70,18 @@
+ SHL1TARGET=$(TARGET)$(UPD)$(DLLPOSTFIX)
+ 
+ SHL1STDLIBS=\
++	$(BASEGFXLIB)		\
+ 	$(SVXLIB)			\
+ 	$(XMLOFFLIB)		\
+-	$(GOODIESLIB)		\
++	$(BASEGFXLIB)		\
+ 	$(VCLLIB)			\
+ 	$(UNOTOOLSLIB)		\
+ 	$(TOOLSLIB)			\
+ 	$(COMPHELPERLIB)	\
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+-	$(SALLIB) 
+-
+-.IF "$(SOLAR_JAVA)"!=""
+-SHL1STDLIBS+=\
+-	$(JVMACCESSLIB)
+-.ENDIF
+-
++	$(SALLIB)			\
++	$(LIBXML)
+ 
+ SHL1DEPN=
+ SHL1IMPLIB=	i$(SHL1TARGET)
+@@ -87,3 +94,16 @@
+ # --- Targets ----------------------------------
+ 
+ .INCLUDE : target.mk
++
++# Generate gperf files - from oox/source/token
++$(INCCOM)$/tokens.hxx $(MISC)$/tokens.gperf : tokens.txt gentoken.pl
++		$(PERL) gentoken.pl tokens.txt $(INCCOM)$/tokens.hxx $(MISC)$/tokens.gperf
++
++$(INCCOM)$/tokens.cxx : $(MISC)$/tokens.gperf makefile.mk
++		gperf --compare-strncmp -C -m 20 $(MISC)$/tokens.gperf | $(SED) -e "s/(char\*)0/(char\*)0, 0/g" >$(INCCOM)$/tokens.cxx
++
++$(SLO)$/tokenmap.obj : $(INCCOM)$/tokens.cxx $(INCCOM)$/tokens.hxx
++
++$(SLO)$/parserfragments.obj : $(INCCOM)$/tokens.cxx $(INCCOM)$/tokens.hxx
++
++$(SLO)$/svgreader.obj : $(INCCOM)$/tokens.cxx $(INCCOM)$/tokens.hxx
+--- filter/source/svg/parserfragments.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/parserfragments.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,553 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include "parserfragments.hxx"
++#include "spirit_supplements.hxx"
++#include "gfxtypes.hxx"
++
++#include <basegfx/tools/canvastools.hxx>
++#include <com/sun/star/geometry/AffineMatrix2D.hpp>
++
++#include <string.h>
++#include <limits.h>
++#include <boost/bind.hpp>
++#include <boost/spirit.hpp>
++#include <boost/spirit/dynamic/while.hpp>
++#include <numeric>
++#include <algorithm>
++
++#include "units.hxx"
++#include "tokenmap.hxx"
++
++using namespace ::com::sun::star;
++
++namespace svgi
++{
++
++inline sal_uInt8 hex2int( char val )
++{
++    return val <= '9' ? val-'0' : (val < 'a' ? val+10-'A' : val+10-'a');
++}
++
++void setFourBitColor( double& rChannel, char nChar )
++{
++    const sal_uInt8 nVal(hex2int(nChar));
++    OSL_TRACE( "setFourBitCOlor %d color", nVal );
++    rChannel = (nVal*16+nVal)/255.0;
++}
++
++void setEightBitColor( double& rChannel, const char* pStart, const char* )
++{
++    const sal_uInt8 nVal0(hex2int(pStart[0]));
++    const sal_uInt8 nVal1(hex2int(pStart[1]));
++    OSL_TRACE( "setEightbitCOlor %d, %d color", nVal0, nVal1 );
++    rChannel = (nVal0*16+nVal1)/255.0;
++}
++
++void setIntColor( double& rChannel, sal_uInt8 nVal )
++{
++    OSL_TRACE( "setIntColor %d color", nVal );
++    rChannel = nVal/255.0;
++}
++
++void calcRotation(std::vector<geometry::AffineMatrix2D>& rTransforms,
++                  geometry::AffineMatrix2D&              rCurrTransform,
++                  double                                 fRotationAngle)
++{
++    ::basegfx::B2DHomMatrix aCurr;
++    aCurr.translate(-rCurrTransform.m02,-rCurrTransform.m12);
++    aCurr.rotate(fRotationAngle*M_PI/180);
++    aCurr.translate(rCurrTransform.m02,rCurrTransform.m12);
++
++	OSL_TRACE("calcRotation - fRotationAngle - %f", fRotationAngle);
++    rTransforms.push_back(
++        basegfx::unotools::affineMatrixFromHomMatrix(
++            rCurrTransform,
++            aCurr));
++}
++
++void calcSkewX(std::vector<geometry::AffineMatrix2D>& rTransforms,
++               double                                 fSkewAngle)
++{
++    geometry::AffineMatrix2D aMat(1.0,0.0,0.0,
++                                  tan(fSkewAngle*M_PI/180),1.0,0.0);
++    rTransforms.push_back(aMat);
++}
++
++void calcSkewY(std::vector<geometry::AffineMatrix2D>& rTransforms,
++               double                                 fSkewAngle)
++{
++    geometry::AffineMatrix2D aMat(1.0,tan(fSkewAngle*M_PI/180),0.0,
++                                  0.0,1.0,0.0);
++    rTransforms.push_back(aMat);
++}
++
++void assign_twice(double& r_oVal1, double& r_oVal2, const double& rInVal )
++{
++    r_oVal1 = r_oVal2 = rInVal;
++}
++
++geometry::AffineMatrix2D multiplyMatrix( const geometry::AffineMatrix2D& rLHS,
++                                         const geometry::AffineMatrix2D& rRHS )
++{
++    basegfx::B2DHomMatrix aLHS;
++    basegfx::B2DHomMatrix aRHS;
++
++    basegfx::unotools::homMatrixFromAffineMatrix(aLHS,rLHS);
++    basegfx::unotools::homMatrixFromAffineMatrix(aRHS,rRHS);
++
++    aRHS*=aLHS;
++
++    geometry::AffineMatrix2D aRet;
++    return basegfx::unotools::affineMatrixFromHomMatrix(aRet,aRHS);
++}
++
++bool parseColor( const char* sColor, ARGBColor& rColor  )
++{
++    using namespace ::boost::spirit;
++
++    int_parser<sal_uInt8,10,1,3> byte_p;
++	
++    if( parse(sColor,
++    	    //  Begin grammar
++        	(
++            	// the #rrggbb form
++	            ('#' >> (xdigit_p >> xdigit_p)[boost::bind(&setEightBitColor,
++    	                                                   boost::ref(rColor.r),_1,_2)]
++        	         >> (xdigit_p >> xdigit_p)[boost::bind(&setEightBitColor,
++            	                                           boost::ref(rColor.g),_1,_2)]
++                	 >> (xdigit_p >> xdigit_p)[boost::bind(&setEightBitColor,
++            	                                           boost::ref(rColor.b),_1,_2)]) 
++	          |
++    	        // the #rgb form
++        	    ('#' >> xdigit_p[boost::bind(&setFourBitColor,
++            	                             boost::ref(rColor.r),_1)] 
++                	 >> xdigit_p[boost::bind(&setFourBitColor,
++	                                         boost::ref(rColor.g),_1)] 
++    	             >> xdigit_p[boost::bind(&setFourBitColor,
++        	                                 boost::ref(rColor.b),_1)]) 
++	          |
++    	        // rgb() form
++        	    (str_p("rgb") 
++            	 >> '(' >>
++                     (
++                	         // rgb(int,int,int)
++                    	     (byte_p[boost::bind(&setIntColor,
++                        	                     boost::ref(rColor.r),_1)] >> ',' >>
++	                          byte_p[boost::bind(&setIntColor,
++    	                                         boost::ref(rColor.g),_1)] >> ',' >>
++        	                  byte_p[boost::bind(&setIntColor,
++            	                                 boost::ref(rColor.b),_1)])
++                	       |  
++                    	     // rgb(double,double,double)
++                        	 (real_p[assign_a(rColor.r)] >> ',' >>
++	                          real_p[assign_a(rColor.g)] >> ',' >>
++    	                      real_p[assign_a(rColor.b)])
++                     )
++        	     >> ')')
++	        ) >> end_p,
++    	    //  End grammar
++            space_p).full )
++    {
++        // free-form color found & parsed
++        return true;
++    }
++
++    // no free-form color - maybe a color name?
++    // trim white space before 
++    while( *sColor && 
++           (*sColor==' ' || *sColor=='\t' || *sColor=='\r' || *sColor=='\n') )
++        ++sColor;
++    // trim white space after 
++    int nLen=strlen(sColor)-1;
++    while( nLen && 
++           (sColor[nLen]==' ' || sColor[nLen]=='\t' || sColor[nLen]=='\r' || sColor[nLen]=='\n') )
++        --nLen;
++	switch (getTokenId(sColor, nLen+1))
++	{
++        case XML_ALICEBLUE: rColor = ARGBColor(240,248,255); return true;
++        case XML_ANTIQUEWHITE: rColor = ARGBColor(250,235,215); return true;
++        case XML_AQUA: rColor = ARGBColor(0,255,255); return true;
++        case XML_AQUAMARINE: rColor = ARGBColor(127,255,212); return true;
++        case XML_AZURE: rColor = ARGBColor(240,255,255); return true;
++        case XML_BEIGE: rColor = ARGBColor(245,245,220); return true;
++        case XML_BISQUE: rColor = ARGBColor(255,228,196); return true;
++        case XML_BLACK: rColor = ARGBColor(0,0,0); return true;
++        case XML_BLANCHEDALMOND: rColor = ARGBColor(255,235,205); return true;
++        case XML_BLUE: rColor = ARGBColor(0,0,255); return true;
++        case XML_BLUEVIOLET: rColor = ARGBColor(138,43,226); return true;
++        case XML_BROWN: rColor = ARGBColor(165,42,42); return true;
++        case XML_BURLYWOOD: rColor = ARGBColor(222,184,135); return true;
++        case XML_CADETBLUE: rColor = ARGBColor(95,158,160); return true;
++        case XML_CHARTREUSE: rColor = ARGBColor(127,255,0); return true;
++        case XML_CHOCOLATE: rColor = ARGBColor(210,105,30); return true;
++        case XML_CORAL: rColor = ARGBColor(255,127,80); return true;
++        case XML_CORNFLOWERBLUE: rColor = ARGBColor(100,149,237); return true;
++        case XML_CORNSILK: rColor = ARGBColor(255,248,220); return true;
++        case XML_CRIMSON: rColor = ARGBColor(220,20,60); return true;
++        case XML_CYAN: rColor = ARGBColor(0,255,255); return true;
++        case XML_DARKBLUE: rColor = ARGBColor(0,0,139); return true;
++        case XML_DARKCYAN: rColor = ARGBColor(0,139,139); return true;
++        case XML_DARKGOLDENROD: rColor = ARGBColor(184,134,11); return true;
++        case XML_DARKGRAY: rColor = ARGBColor(169,169,169); return true;
++        case XML_DARKGREEN: rColor = ARGBColor(0,100,0); return true;
++        case XML_DARKGREY: rColor = ARGBColor(169,169,169); return true;
++        case XML_DARKKHAKI: rColor = ARGBColor(189,183,107); return true;
++        case XML_DARKMAGENTA: rColor = ARGBColor(139,0,139); return true;
++        case XML_DARKOLIVEGREEN: rColor = ARGBColor(85,107,47); return true;
++        case XML_DARKORANGE: rColor = ARGBColor(255,140,0); return true;
++        case XML_DARKORCHID: rColor = ARGBColor(153,50,204); return true;
++        case XML_DARKRED: rColor = ARGBColor(139,0,0); return true;
++        case XML_DARKSALMON: rColor = ARGBColor(233,150,122); return true;
++        case XML_DARKSEAGREEN: rColor = ARGBColor(143,188,143); return true;
++        case XML_DARKSLATEBLUE: rColor = ARGBColor(72,61,139); return true;
++        case XML_DARKSLATEGRAY: rColor = ARGBColor(47,79,79); return true;
++        case XML_DARKSLATEGREY: rColor = ARGBColor(47,79,79); return true;
++        case XML_DARKTURQUOISE: rColor = ARGBColor(0,206,209); return true;
++        case XML_DARKVIOLET: rColor = ARGBColor(148,0,211); return true;
++        case XML_DEEPPINK: rColor = ARGBColor(255,20,147); return true;
++        case XML_DEEPSKYBLUE: rColor = ARGBColor(0,191,255); return true;
++        case XML_DIMGRAY: rColor = ARGBColor(105,105,105); return true;
++        case XML_DIMGREY: rColor = ARGBColor(105,105,105); return true;
++        case XML_DODGERBLUE: rColor = ARGBColor(30,144,255); return true;
++        case XML_FIREBRICK: rColor = ARGBColor(178,34,34); return true;
++        case XML_FLORALWHITE: rColor = ARGBColor(255,250,240); return true;
++        case XML_FORESTGREEN: rColor = ARGBColor(34,139,34); return true;
++        case XML_FUCHSIA: rColor = ARGBColor(255,0,255); return true;
++        case XML_GAINSBORO: rColor = ARGBColor(220,220,220); return true;
++        case XML_GHOSTWHITE: rColor = ARGBColor(248,248,255); return true;
++        case XML_GOLD: rColor = ARGBColor(255,215,0); return true;
++        case XML_GOLDENROD: rColor = ARGBColor(218,165,32); return true;
++        case XML_GRAY: rColor = ARGBColor(128,128,128); return true;
++        case XML_GREY: rColor = ARGBColor(128,128,128); return true;
++        case XML_GREEN: rColor = ARGBColor(0,128,0); return true;
++        case XML_GREENYELLOW: rColor = ARGBColor(173,255,47); return true;
++        case XML_HONEYDEW: rColor = ARGBColor(240,255,240); return true;
++        case XML_HOTPINK: rColor = ARGBColor(255,105,180); return true;
++        case XML_INDIANRED: rColor = ARGBColor(205,92,92); return true;
++        case XML_INDIGO: rColor = ARGBColor(75,0,130); return true;
++        case XML_IVORY: rColor = ARGBColor(255,255,240); return true;
++        case XML_KHAKI: rColor = ARGBColor(240,230,140); return true;
++        case XML_LAVENDER: rColor = ARGBColor(230,230,250); return true;
++        case XML_LAVENDERBLUSH: rColor = ARGBColor(255,240,245); return true;
++        case XML_LAWNGREEN: rColor = ARGBColor(124,252,0); return true;
++        case XML_LEMONCHIFFON: rColor = ARGBColor(255,250,205); return true;
++        case XML_LIGHTBLUE: rColor = ARGBColor(173,216,230); return true;
++        case XML_LIGHTCORAL: rColor = ARGBColor(240,128,128); return true;
++        case XML_LIGHTCYAN: rColor = ARGBColor(224,255,255); return true;
++        case XML_LIGHTGOLDENRODYELLOW: rColor = ARGBColor(250,250,210); return true;
++        case XML_LIGHTGRAY: rColor = ARGBColor(211,211,211); return true;
++        case XML_LIGHTGREEN: rColor = ARGBColor(144,238,144); return true;
++        case XML_LIGHTGREY: rColor = ARGBColor(211,211,211); return true;
++        case XML_LIGHTPINK: rColor = ARGBColor(255,182,193); return true;
++        case XML_LIGHTSALMON: rColor = ARGBColor(255,160,122); return true;
++        case XML_LIGHTSEAGREEN: rColor = ARGBColor(32,178,170); return true;
++        case XML_LIGHTSKYBLUE: rColor = ARGBColor(135,206,250); return true;
++        case XML_LIGHTSLATEGRAY: rColor = ARGBColor(119,136,153); return true;
++        case XML_LIGHTSLATEGREY: rColor = ARGBColor(119,136,153); return true;
++        case XML_LIGHTSTEELBLUE: rColor = ARGBColor(176,196,222); return true;
++        case XML_LIGHTYELLOW: rColor = ARGBColor(255,255,224); return true;
++        case XML_LIME: rColor = ARGBColor(0,255,0); return true;
++        case XML_LIMEGREEN: rColor = ARGBColor(50,205,50); return true;
++        case XML_LINEN: rColor = ARGBColor(250,240,230); return true;
++        case XML_MAGENTA: rColor = ARGBColor(255,0,255); return true;
++        case XML_MAROON: rColor = ARGBColor(128,0,0); return true;
++        case XML_MEDIUMAQUAMARINE: rColor = ARGBColor(102,205,170); return true;
++        case XML_MEDIUMBLUE: rColor = ARGBColor(0,0,205); return true;
++        case XML_MEDIUMORCHID: rColor = ARGBColor(186,85,211); return true;
++        case XML_MEDIUMPURPLE: rColor = ARGBColor(147,112,219); return true;
++        case XML_MEDIUMSEAGREEN: rColor = ARGBColor(60,179,113); return true;
++        case XML_MEDIUMSLATEBLUE: rColor = ARGBColor(123,104,238); return true;
++        case XML_MEDIUMSPRINGGREEN: rColor = ARGBColor(0,250,154); return true;
++        case XML_MEDIUMTURQUOISE: rColor = ARGBColor(72,209,204); return true;
++        case XML_MEDIUMVIOLETRED: rColor = ARGBColor(199,21,133); return true;
++        case XML_MIDNIGHTBLUE: rColor = ARGBColor(25,25,112); return true;
++        case XML_MINTCREAM: rColor = ARGBColor(245,255,250); return true;
++        case XML_MISTYROSE: rColor = ARGBColor(255,228,225); return true;
++        case XML_MOCCASIN: rColor = ARGBColor(255,228,181); return true;
++        case XML_NAVAJOWHITE: rColor = ARGBColor(255,222,173); return true;
++        case XML_NAVY: rColor = ARGBColor(0,0,128); return true;
++        case XML_OLDLACE: rColor = ARGBColor(253,245,230); return true;
++        case XML_OLIVE: rColor = ARGBColor(128,128,0); return true;
++        case XML_OLIVEDRAB: rColor = ARGBColor(107,142,35); return true;
++        case XML_ORANGE: rColor = ARGBColor(255,165,0); return true;
++        case XML_ORANGERED: rColor = ARGBColor(255,69,0); return true;
++        case XML_ORCHID: rColor = ARGBColor(218,112,214); return true;
++        case XML_PALEGOLDENROD: rColor = ARGBColor(238,232,170); return true;
++        case XML_PALEGREEN: rColor = ARGBColor(152,251,152); return true;
++        case XML_PALETURQUOISE: rColor = ARGBColor(175,238,238); return true;
++        case XML_PALEVIOLETRED: rColor = ARGBColor(219,112,147); return true;
++        case XML_PAPAYAWHIP: rColor = ARGBColor(255,239,213); return true;
++        case XML_PEACHPUFF: rColor = ARGBColor(255,218,185); return true;
++        case XML_PERU: rColor = ARGBColor(205,133,63); return true;
++        case XML_PINK: rColor = ARGBColor(255,192,203); return true;
++        case XML_PLUM: rColor = ARGBColor(221,160,221); return true;
++        case XML_POWDERBLUE: rColor = ARGBColor(176,224,230); return true;
++        case XML_PURPLE: rColor = ARGBColor(128,0,128); return true;
++        case XML_RED: rColor = ARGBColor(255,0,0); return true;
++        case XML_ROSYBROWN: rColor = ARGBColor(188,143,143); return true;
++        case XML_ROYALBLUE: rColor = ARGBColor(65,105,225); return true;
++        case XML_SADDLEBROWN: rColor = ARGBColor(139,69,19); return true;
++        case XML_SALMON: rColor = ARGBColor(250,128,114); return true;
++        case XML_SANDYBROWN: rColor = ARGBColor(244,164,96); return true;
++        case XML_SEAGREEN: rColor = ARGBColor(46,139,87); return true;
++        case XML_SEASHELL: rColor = ARGBColor(255,245,238); return true;
++        case XML_SIENNA: rColor = ARGBColor(160,82,45); return true;
++        case XML_SILVER: rColor = ARGBColor(192,192,192); return true;
++        case XML_SKYBLUE: rColor = ARGBColor(135,206,235); return true;
++        case XML_SLATEBLUE: rColor = ARGBColor(106,90,205); return true;
++        case XML_SLATEGRAY: rColor = ARGBColor(112,128,144); return true;
++        case XML_SLATEGREY: rColor = ARGBColor(112,128,144); return true;
++        case XML_SNOW: rColor = ARGBColor(255,250,250); return true;
++        case XML_SPRINGGREEN: rColor = ARGBColor(0,255,127); return true;
++        case XML_STEELBLUE: rColor = ARGBColor(70,130,180); return true;
++        case XML_TAN: rColor = ARGBColor(210,180,140); return true;
++        case XML_TEAL: rColor = ARGBColor(0,128,128); return true;
++        case XML_THISTLE: rColor = ARGBColor(216,191,216); return true;
++        case XML_TOMATO: rColor = ARGBColor(255,99,71); return true;
++        case XML_TURQUOISE: rColor = ARGBColor(64,224,208); return true;
++        case XML_VIOLET: rColor = ARGBColor(238,130,238); return true;
++        case XML_WHEAT: rColor = ARGBColor(245,222,179); return true;
++        case XML_WHITE: rColor = ARGBColor(255,255,255); return true;
++        case XML_WHITESMOKE: rColor = ARGBColor(245,245,245); return true;
++        case XML_YELLOW: rColor = ARGBColor(255,255,0); return true;
++        case XML_YELLOWGREEN: rColor = ARGBColor(154,205,50); return true;
++	
++        default: 
++            return false; // no color at all, I'd guess.
++	}
++}
++
++bool parseOpacity (const char* sOpacity, ARGBColor& rColor )
++{
++	using namespace ::boost::spirit;
++	
++	if( parse(sOpacity,
++              // Begin grammar  
++              (
++                  real_p[assign_a(rColor.a)] 
++                  ) >> end_p,
++              // End grammar  
++              space_p).full )
++	{
++		return true;
++	}
++	return false;
++}			
++
++//////////////////////////////////////////////////////////////
++
++bool parseTransform( const char* sTransform, basegfx::B2DHomMatrix& rTransform )
++{
++    using namespace ::boost::spirit;
++
++    double fRefOffsetX(0.0);
++    double fRefOffsetY(0.0);
++    bool   bRefTransform(false);
++
++    double fRotationAngle=0.0;
++    double fSkewAngle=0.0;
++    geometry::AffineMatrix2D aIdentityTransform;
++    geometry::AffineMatrix2D aCurrTransform;
++    std::vector<geometry::AffineMatrix2D> aTransforms;
++    aIdentityTransform.m00 = 1.0; aIdentityTransform.m11 = 1.0;
++    aCurrTransform = aIdentityTransform;
++    
++    const bool bRes = parse(sTransform,
++        //  Begin grammar
++        (
++            // identity transform
++            str_p("none")
++          |
++            // the ref() form
++            (str_p("ref")
++             >> '('
++             >> str_p("svg")[assign_a(bRefTransform,true)] 
++             >> !(real_p[assign_a(fRefOffsetX)] >> (',' | eps_p) >>
++                  real_p[assign_a(fRefOffsetY)])
++             >> ')')
++          |
++            // the transform-list form
++            (list_p(
++               (   
++                 // matrix(a,b,c,d,e,f)  
++                 (str_p("matrix") 
++                  >> '('
++                  >> real_p[assign_a(aCurrTransform.m00)] >> (',' | eps_p)
++                  >> real_p[assign_a(aCurrTransform.m10)] >> (',' | eps_p) 
++                  >> real_p[assign_a(aCurrTransform.m01)] >> (',' | eps_p)
++                  >> real_p[assign_a(aCurrTransform.m11)] >> (',' | eps_p)
++                  >> real_p[assign_a(aCurrTransform.m02)] >> (',' | eps_p)
++                  >> real_p[assign_a(aCurrTransform.m12)]
++                  >> ')')[push_back_a(aTransforms,aCurrTransform)]
++               |  
++                 // translate(x,[y])
++                 (str_p("translate") 
++                  >> '('
++                  >> real_p[boost::bind(&assign_twice,
++                                        boost::ref(aCurrTransform.m02),
++                                        boost::ref(aCurrTransform.m12),_1)]
++                  >> !((',' | eps_p) >> real_p[assign_a(aCurrTransform.m12)])
++                  >> ')')[push_back_a(aTransforms,aCurrTransform)]
++               |  
++                 // scale(x,[y])
++                 (str_p("scale") 
++                  >> '('
++                  >> real_p[boost::bind(&assign_twice,
++                                        boost::ref(aCurrTransform.m00),
++                                        boost::ref(aCurrTransform.m11),_1)]
++                  >> !((',' | eps_p) >> real_p[assign_a(aCurrTransform.m11)])
++                  >> ')')[push_back_a(aTransforms,aCurrTransform)]
++               |  
++                 // rotate(phi,[cx, cy])
++                 (str_p("rotate") 
++                  >> '('
++                  >> real_p[assign_a(fRotationAngle)]
++                  >> !((',' | eps_p) >> real_p[assign_a(aCurrTransform.m02)]
++                       >> real_p[assign_a(aCurrTransform.m12)])
++                  >> ')')[boost::bind(&calcRotation,
++                                      boost::ref(aTransforms),
++                                      boost::ref(aCurrTransform),
++                                      boost::cref(fRotationAngle))]
++               |  
++                 // skewX(phi)
++                 (str_p("skewX") 
++                  >> '(' 
++                  >> real_p[assign_a(fSkewAngle)] 
++                  >> ')')[boost::bind(&calcSkewX,
++                                      boost::ref(aTransforms),
++                                      boost::cref(fSkewAngle))]
++               |  
++                 // skewY(phi)
++                 (str_p("skewY") 
++                  >> '(' 
++                  >> real_p[assign_a(fSkewAngle)] 
++                  >> ')')[boost::bind(&calcSkewY,
++                                      boost::ref(aTransforms),
++                                      boost::cref(fSkewAngle))]
++                 // reset current transform after every push
++               )[assign_a(aCurrTransform,aIdentityTransform)],
++                 // list delimiter is either ',' or space
++               ',' | eps_p ))
++        ) >> end_p,
++        //  End grammar
++        space_p).full;
++
++    if( !bRes )
++        return false;
++
++    // fold all transformations into one
++    const geometry::AffineMatrix2D aTotalTransform(
++        std::accumulate(aTransforms.begin(),
++                        aTransforms.end(),
++                        aIdentityTransform,
++                        &multiplyMatrix));
++
++    basegfx::unotools::homMatrixFromAffineMatrix(
++        rTransform,
++        aTotalTransform);
++
++    // TODO(F1): handle the ref case
++    return bRes;
++}
++
++//////////////////////////////////////////////////////////////
++
++bool parseViewBox( const char* sViewbox, basegfx::B2DRange& rRect )
++{
++    using namespace ::boost::spirit;
++
++    double x=0.0,y=0.0,w=0.0,h=0.0;
++    
++    const bool bRes = parse(sViewbox,
++        //  Begin grammar
++        (
++            // either comma- or space-delimited list of four doubles    
++            real_p[assign_a(x)] >> (',' | eps_p) >>
++            real_p[assign_a(y)] >> (',' | eps_p) >>
++            real_p[assign_a(w)] >> (',' | eps_p) >>
++            real_p[assign_a(h)] >> end_p
++        ),
++        //  End grammar
++        space_p).full;
++
++    if( !bRes )
++        return false;
++
++    rRect = basegfx::B2DRange(x,y,x+w,y+h);
++
++    return true;
++}
++
++//////////////////////////////////////////////////////////////
++
++bool parseDashArray( const char* sDashArray, std::vector<double>& rOutputVector )
++{
++    using namespace ::boost::spirit;
++    
++    rOutputVector.clear();
++    return parse(sDashArray,
++        //  Begin grammar
++        (
++            // parse comma-delimited list of doubles (have to use the
++            // 'direct' variant, as otherwise spirit refactors our
++            // parser to push both real num and comma to push_back_a)
++            list_p.direct
++            (
++                real_p[push_back_a(rOutputVector)], 
++                ','
++            )
++        ) >> end_p,
++        //  End grammar
++        space_p).full;
++}
++
++//////////////////////////////////////////////////////////////
++
++namespace
++{
++void appendChar( std::string& str, char character)
++{
++	str.append(1,character);
++}
++}
++
++bool parseXlinkHref( const char* sXlinkHref, std::string& data )
++{
++	using namespace ::boost::spirit;
++	
++	data.erase(data.begin(),data.end());
++
++    std::string sLink(sXlinkHref);
++
++    if (!sLink.compare(0,5,"data:"))
++    {
++        // the inplace "data" uri
++        size_t position = sLink.rfind(',');
++        if (position > 0 && position < std::string::npos)
++        {
++            data = sLink.substr(position+1);
++            OSL_TRACE("%s", data.c_str());
++            return true;
++        }
++    }
++
++    return false;
++}
++
++} // namespace svgi
+--- filter/source/svg/parserfragments.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/parserfragments.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,50 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_PARSERFRAGMENTS_HXX
++#define INCLUDED_PARSERFRAGMENTS_HXX
++
++#include <sal/config.h>
++#include <vector>
++#include <string>
++
++namespace basegfx
++{ 
++    class B2DHomMatrix; 
++    class B2DRange; 
++}
++namespace svgi
++{
++    struct ARGBColor;
++
++    /// Parse given string for one of the SVG color grammars
++    bool parseColor( const char* sColor, ARGBColor& rColor );
++	bool parseOpacity( const char* sOpacity, ARGBColor& rColor );
++
++    /// Parse given string for one of the SVG transformation grammars
++    bool parseTransform( const char* sTransform, basegfx::B2DHomMatrix& rTransform );
++
++    /// Parse given string for the viewBox attribute
++    bool parseViewBox( const char* sViewbox, basegfx::B2DRange& rRect );
++
++    /// Parse given string for a list of double values, comma-delimited
++    bool parseDashArray( const char* sDashArray, std::vector<double>& rOutputVector );
++	
++	/// Parse given string for the xlink attribute
++	bool parseXlinkHref( const char* xlink, std::string& data );
++
++} // namespace svgi
++
++#endif
+--- filter/source/svg/spirit_supplements.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/spirit_supplements.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,94 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_SPIRIT_SUPPLEMENTS_HXX
++#define INCLUDED_SPIRIT_SUPPLEMENTS_HXX
++
++# ifndef USE_MODERN_SPIRIT
++# include <boost/spirit.hpp>
++
++namespace boost { namespace spirit
++{
++    template<typename Target, typename Value> struct assigner
++    {
++        assigner( Target& rTarget, Value aValue ) : 
++            mrTarget(rTarget), maValue(aValue)
++        {}
++
++        void assign() const { mrTarget=maValue; }
++
++        void operator()() const { assign(); }
++        template<typename T1> void operator()(T1) const { assign(); }
++        template<typename T1,typename T2> void operator()(T1,T2) const { assign(); }
++        template<typename T1,typename T2,typename T3> void operator()(T1,T2,T3) const { assign(); }
++
++        Target&     mrTarget;
++        const Value maValue;
++    };
++
++    template<typename Target, typename Value> inline assigner<Target,Value> 
++    assign_a( Target& rTarget, Value aValue )
++    {
++        return assigner<Target,Value>(rTarget,aValue);
++    }
++
++    template <typename Target> inline assign_actor<Target>
++    assign_a(Target& rTarget)
++    {
++        return assign_actor<Target>(rTarget);
++    }
++
++    template<typename Target, typename Value> struct back_pusher
++    {
++        back_pusher( Target& rTarget, const Value& rValue ) : 
++            mrTarget(rTarget), mrValue(rValue)
++        {}
++
++        void push_back() const { mrTarget.push_back(mrValue); }
++
++        void operator()() const { push_back(); }
++        template<typename T1> void operator()(T1) const { push_back(); }
++        template<typename T1,typename T2> void operator()(T1,T2) const { push_back(); }
++        template<typename T1,typename T2,typename T3> void operator()(T1,T2,T3) const { push_back(); }
++
++        Target&      mrTarget;
++        const Value& mrValue;
++    };
++
++    template<typename Target, typename Value> inline back_pusher<Target,Value> 
++    push_back_a( Target& rTarget, const Value& rValue )
++    {
++        return back_pusher<Target,Value>(rTarget,rValue);
++    }
++
++    template<typename Target> struct value_back_pusher
++    {
++        explicit value_back_pusher( Target& rTarget ) : 
++            mrTarget(rTarget)
++        {}
++        template<typename T1> void operator()(T1 val) const { mrTarget.push_back(val); }
++
++        Target&      mrTarget;
++    };
++
++    template<typename Target> inline value_back_pusher<Target> 
++    push_back_a( Target& rTarget )
++    {
++        return value_back_pusher<Target>(rTarget);
++    }
++} }
++
++# endif
++#endif
+--- filter/source/svg/svgfilter.cxx	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/svgfilter.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -96,11 +96,9 @@
+     if( pFocusWindow )
+     	pFocusWindow->EnterWait();
+ 
+-#ifdef SOLAR_JAVA
+     if( mxDstDoc.is() )
+         bRet = implImport( rDescriptor );
+     else
+-#endif
+     if( mxSrcDoc.is() )
+ 	{
+ 		uno::Reference< frame::XDesktop > xDesktop( mxMSF->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.frame.Desktop" ) ), 
+@@ -169,13 +167,11 @@
+ 
+ // -----------------------------------------------------------------------------
+ 
+-#ifdef SOLAR_JAVA
+ void SAL_CALL SVGFilter::setTargetDocument( const Reference< XComponent >& xDoc ) 
+ 	throw (::com::sun::star::lang::IllegalArgumentException, RuntimeException)
+ {
+ 	mxDstDoc = xDoc;
+ }
+-#endif
+ 
+ // -----------------------------------------------------------------------------
+ 
+@@ -194,25 +190,29 @@
+ 
+ // -----------------------------------------------------------------------------
+ 
+-#define SERVICE_NAME "com.sun.star.document.SVGFilter"
++#define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
++#define SERVICE_NAME2 "com.sun.star.document.ExportFilter"
+ 
+ sal_Bool SAL_CALL SVGFilter_supportsService( const OUString& ServiceName ) 
+ 	throw (RuntimeException)
+ {
+-    return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
++	return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
++		ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) );
+ }
+ 
+ // -----------------------------------------------------------------------------
+ 
+ Sequence< OUString > SAL_CALL SVGFilter_getSupportedServiceNames(  ) throw (RuntimeException)
+ {
+-	Sequence < OUString > aRet(1);
+-    OUString* pArray = aRet.getArray();
+-    pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+-    return aRet;
++	Sequence < OUString > aRet(2);
++	OUString* pArray = aRet.getArray();
++	pArray[0] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
++	pArray[1] =  OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) ); 
++	return aRet;
+ }
+ 
+-#undef SERVICE_NAME
++#undef SERVICE_NAME1
++#undef SERVICE_NAME2
+ 
+ // -----------------------------------------------------------------------------
+ 
+--- filter/source/svg/svgfilter.hxx	2008-04-11 08:49:31.000000000 +0200
++++ filter/source/svg/svgfilter.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -57,11 +57,9 @@
+ #ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
+ #include <com/sun/star/document/XFilter.hpp>
+ #endif
+-#ifdef SOLAR_JAVA
+ #ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_
+ #include <com/sun/star/document/XImporter.hpp>
+ #endif
+-#endif // SOLAR_JAVA
+ #ifndef _COM_SUN_STAR_DOCUMENT_XEXPORTER_HPP_
+ #include <com/sun/star/document/XExporter.hpp>
+ #endif
+@@ -80,15 +78,9 @@
+ #ifndef _CPPUHELPER_IMPLBASE1_HXX_
+ #include <cppuhelper/implbase1.hxx>
+ #endif
+-#ifdef SOLAR_JAVA
+ #ifndef _CPPUHELPER_IMPLBASE5_HXX_
+ #include <cppuhelper/implbase5.hxx>
+ #endif
+-#else // !SOLAR_JAVA
+-#ifndef _CPPUHELPER_IMPLBASE4_HXX_
+-#include <cppuhelper/implbase4.hxx>
+-#endif
+-#endif
+ #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ #endif
+@@ -231,18 +223,11 @@
+ class SVGActionWriter;
+ class EditFieldInfo;
+ 
+-#ifdef SOLAR_JAVA
+ class SVGFilter : public cppu::WeakImplHelper5 < XFilter,
+ 											     XImporter,
+                                                  XExporter,
+ 												 XInitialization,
+ 												 XServiceInfo >
+-#else // !SOLAR_JAVA
+-class SVGFilter : public cppu::WeakImplHelper4 < XFilter,
+-                                                 XExporter,
+-                                                 XInitialization,
+-                                                 XServiceInfo >
+-#endif
+ {
+ 	typedef ::std::hash_map< Reference< XInterface >, ObjectRepresentation, HashReferenceXInterface > ObjectMap;
+ 
+@@ -259,15 +244,11 @@
+ 
+ 	ObjectMap*							mpObjects;
+ 	Reference< XComponent >				mxSrcDoc;
+-#ifdef SOLAR_JAVA
+ 	Reference< XComponent >				mxDstDoc;
+-#endif
+ 	Reference< XDrawPage > 				mxDefaultPage;
+ 	Link								maOldFieldHdl;
+ 
+-#ifdef SOLAR_JAVA
+     sal_Bool                            implImport( const Sequence< PropertyValue >& rDescriptor ) throw (RuntimeException);
+-#endif
+ 
+     sal_Bool                            implExport( const Sequence< PropertyValue >& rDescriptor ) throw (RuntimeException);
+     Reference< XDocumentHandler >       implCreateExportDocumentHandler( const Reference< XOutputStream >& rxOStm );
+@@ -306,10 +287,8 @@
+     virtual sal_Bool SAL_CALL filter( const Sequence< PropertyValue >& rDescriptor ) throw(RuntimeException);
+     virtual void SAL_CALL cancel( ) throw (RuntimeException);
+ 
+-#ifdef SOLAR_JAVA
+ 	// XImporter
+     virtual void SAL_CALL setTargetDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
+-#endif
+ 
+ 	// XExporter
+     virtual void SAL_CALL setSourceDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
+--- filter/source/svg/svgimport.cxx	2008-04-11 08:49:32.000000000 +0200
++++ filter/source/svg/svgimport.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -37,160 +37,59 @@
+ #include "precompiled_filter.hxx"
+ 
+ #include "svgfilter.hxx" 
++#include "svgreader.hxx" 
++
+ #include "rtl/ref.hxx"
+-#include "jvmaccess/virtualmachine.hxx"
+-// -------------
+-// - SVGFilter -
+-// -------------
++
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++
++#include <com/sun/star/lang/XComponent.hpp>
++
++#include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/uno/Type.hxx>
++
++#include <com/sun/star/beans/PropertyValue.hpp>
++
++#include <com/sun/star/xml/sax/XParser.hpp>
++#include <com/sun/star/xml/sax/InputSource.hpp>
++#include <com/sun/star/xml/XImportFilter.hpp>
++
++#include <com/sun/star/io/XActiveDataSource.hpp>
++#include <com/sun/star/task/XStatusIndicator.hpp>
++
++using namespace ::com::sun::star;
++using namespace ::svgi;
+ 
+ sal_Bool SVGFilter::implImport( const Sequence< PropertyValue >& rDescriptor )
+ 	throw (RuntimeException)
+ {
+-    Reference< XMultiServiceFactory >	xServiceFactory( ::comphelper::getProcessServiceFactory() ) ;
+-	rtl::OUString							aTmpFileName;
+-	String								aFileName;
+-	sal_Int32							nLength = rDescriptor.getLength();
+-	const PropertyValue*				pValue = rDescriptor.getConstArray();
+-	sal_Bool							bRet = sal_False;
+-	
+-	for( sal_Int32 i = 0 ; ( i < nLength ) && !aTmpFileName.getLength(); i++)
+-		if( pValue[ i ].Name.equalsAscii( "FileName" ) )
+-			pValue[ i ].Value >>= aTmpFileName;
+-
+-    if( aTmpFileName.getLength() && xServiceFactory.is() )
+-    {
+-
+-	    Reference< XJavaVM >    xJavaVM( xServiceFactory->createInstance( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.java.JavaVirtualMachine") ) ), UNO_QUERY );
+-        Sequence< sal_Int8 >    aProcessID( 17 );
+-		String					aLocalFile;
+-
+-		if( ::utl::LocalFileHelper::ConvertURLToPhysicalName( aTmpFileName, aLocalFile ) && aLocalFile.Len() )
++    rtl::OUString aURL;
++    uno::Reference< io::XInputStream > xInputStream;
++    uno::Reference< task::XStatusIndicator > xStatus;
++    const sal_Int32 nLength = rDescriptor.getLength();
++    const beans::PropertyValue* pAttribs = rDescriptor.getConstArray();
++    for ( sal_Int32 i=0 ; i<nLength; ++i, ++pAttribs )
++	{
++        if( pAttribs->Name.equalsAscii( "InputStream" ) )
+         {
+-			rtl_getGlobalProcessId( (sal_uInt8 *) aProcessID.getArray() );
+-            aProcessID[16] = 0;            
+-		
+-            OSL_ENSURE(sizeof (sal_Int64)
+-                       >= sizeof (jvmaccess::VirtualMachine *),
+-                       "Pointer cannot be represented as sal_Int64");
+-            sal_Int64 nPointer = reinterpret_cast< sal_Int64 >(
+-                static_cast< jvmaccess::VirtualMachine * >(0));
+-            xJavaVM->getJavaVM(aProcessID) >>= nPointer;
+-            rtl::Reference<jvmaccess::VirtualMachine> _virtualMachine =
+-                reinterpret_cast< jvmaccess::VirtualMachine * >(nPointer);
+-            if (!_virtualMachine.is())
+-                return bRet;
+-            
+-            jobjectArray    aArgs;
+-            jclass          aClass;
+-            jmethodID       aMId;
+-            jstring         aJStr;
+-            
+-            try
+-            {
+-                jvmaccess::VirtualMachine::AttachGuard vmGuard(_virtualMachine);
+-                
+-                JNIEnv * pEnv = vmGuard.getEnvironment();
+-                
+-                aClass = pEnv->FindClass( "SOTranscoder" );
+-                
+-                if( aClass )
+-                {
+-					aMId = pEnv->GetStaticMethodID( aClass, "main", "([Ljava/lang/String;)V" );
+-					if ( aMId )
+-					{
+-
+-						::utl::TempFile aTempFile;
+-						String			aOutputURL( aTempFile.GetURL() );
+-						String			aOutputFile;
+-	                    
+-						aTempFile.EnableKillingFile();
+-	                    
+-						if( ::utl::LocalFileHelper::ConvertURLToPhysicalName( aOutputURL, aOutputFile ) && aOutputFile.Len() )
+-						{
+-							aJStr = pEnv->NewStringUTF( ByteString( aLocalFile.GetBuffer(), RTL_TEXTENCODING_UTF8 ).GetBuffer() );
+-							aArgs = static_cast<jobjectArray>(pEnv->NewObjectArray( 2, pEnv->FindClass( "java/lang/String" ), aJStr ));
+-							aJStr = pEnv->NewStringUTF( ByteString( aOutputFile.GetBuffer(), RTL_TEXTENCODING_UTF8 ).GetBuffer() );
+-							pEnv->SetObjectArrayElement( aArgs, 1, aJStr );
+-							pEnv->CallStaticVoidMethod( aClass, aMId, aArgs );
+-	                        
+-							Graphic		aGraphic;
+-							SvStream*	pIStm = ::utl::UcbStreamHelper::CreateStream( aOutputURL, STREAM_READ );
+-	                        
+-							if( pIStm )
+-							{
+-								GraphicConverter::Import( *pIStm, aGraphic );
+-								delete pIStm;
+-							}
+-	                        
+-							Reference< XDrawPagesSupplier > xDrawPagesSupplier( mxDstDoc, UNO_QUERY );
+-	                        
+-							if( xDrawPagesSupplier.is() && ( aGraphic.GetType() != GRAPHIC_NONE ) )
+-							{
+-								Reference< XDrawPages > xDrawPages( xDrawPagesSupplier->getDrawPages() );
+-	                            
+-								if( xDrawPages.is() && xDrawPages->getCount() )
+-								{
+-									Reference< XDrawPage >	xDrawPage;
+-	                                
+-									if( xDrawPages->getByIndex( 0 ) >>= xDrawPage )
+-									{
+-										Reference< XShapes >		xShapes( xDrawPage, UNO_QUERY );
+-										Reference< XPropertySet>	xPagePropSet( xDrawPage, UNO_QUERY );
+-										Reference< XShape >			xShape( Reference< XMultiServiceFactory >( mxDstDoc, UNO_QUERY )->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.GraphicObjectShape" ) ) ), UNO_QUERY );
+-	                                    
+-										if( xPagePropSet.is() && xShapes.is() && xShape.is() )
+-										{
+-											Reference< XPropertySet >	xPropSet( xShape, UNO_QUERY );
+-											sal_Int32					nPageWidth = 0, nPageHeight = 0;
+-	                                        
+-											xPagePropSet->getPropertyValue( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Width" ) ) ) >>= nPageWidth;
+-											xPagePropSet->getPropertyValue( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) ) >>= nPageHeight;
+-	                                        
+-											if( xPropSet.is() && nPageWidth && nPageHeight )
+-											{
+-												xShapes->add( xShape );
+-	                                            
+-												::com::sun::star::awt::Point	aPos;
+-												::com::sun::star::awt::Size		aSize;
+-												GraphicObject					aGraphObj( aGraphic );
+-												String							aGraphURL( RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.GraphicObject:" ) );
+-												Any								aValue;
+-												Size							aGraphicSize;
+-												const MapMode					aTargetMapMode( MAP_100TH_MM );
+-	                                            
+-												if( aGraphObj.GetPrefMapMode().GetMapUnit() == MAP_PIXEL )
+-													aGraphicSize = Application::GetDefaultDevice()->PixelToLogic( aGraphObj.GetPrefSize(), aTargetMapMode );
+-												else
+-													aGraphicSize = OutputDevice::LogicToLogic( aGraphObj.GetPrefSize(), aGraphObj.GetPrefMapMode(), aTargetMapMode );
+-	                                            
+-												aGraphURL += String( aGraphObj.GetUniqueID(), RTL_TEXTENCODING_ASCII_US );
+-												aValue <<= rtl::OUString( aGraphURL );
+-												xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "GraphicURL" ) ), aValue );
+-	                                            
+-												aPos.X = ( nPageWidth - aGraphicSize.Width() ) >> 1;
+-												aPos.Y = ( nPageHeight - aGraphicSize.Height() ) >> 1;
+-	                                            
+-												aSize.Width = aGraphicSize.Width();
+-												aSize.Height = aGraphicSize.Height();
+-	                                                
+-												xShape->setPosition( aPos );
+-												xShape->setSize( aSize );
+-	                                            
+-												bRet = sal_True;
+-											}
+-										}
+-									}
+-								}
+-							}
+-						}
+-                    }
+-                }
+-            }
+-            catch (jvmaccess::VirtualMachine::AttachGuard::CreationException &)
+-            {
+-            }
+-        }            
+-    }
+-    return bRet;
++            pAttribs->Value >>= xInputStream;
++        }
++        else if( pAttribs->Name.equalsAscii( "StatusIndicator" ) )
++            pAttribs->Value >>= xStatus;
++	}
++
++    OSL_ASSERT(xInputStream.is());
++    if(!xInputStream.is()) 
++        return sal_False;
++
++	rtl::OUString sXMLImportService ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.XMLOasisImporter" ) );
++	Reference < XDocumentHandler > xInternalHandler( mxMSF->createInstance( sXMLImportService ), UNO_QUERY );
++
++	// The XImporter sets up an empty target document for XDocumentHandler to write to.. 
++	uno::Reference < XImporter > xImporter(xInternalHandler, UNO_QUERY);
++	xImporter->setTargetDocument(mxDstDoc);
++
++    SVGReader aReader(mxMSF, xInputStream, xInternalHandler);
++    return aReader.parseAndConvert();
+ }
+     
+--- filter/source/svg/svgreader.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/svgreader.cxx	2008-04-11 09:33:30.000000000 +0200
+@@ -0,0 +1,1899 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include "svgreader.hxx"
++#include <xmloff/attrlist.hxx>
++#include "gfxtypes.hxx"
++#include "units.hxx"
++#include "parserfragments.hxx"
++#include "tokenmap.hxx"
++#include "b2dellipse.hxx"
++
++#include <rtl/math.hxx>
++#include <rtl/ref.hxx>
++#include <rtl/ustring.hxx>
++#include <rtl/ustrbuf.hxx>
++#include <basegfx/vector/b2enums.hxx>
++#include <basegfx/range/b2drange.hxx>
++#include <basegfx/matrix/b2dhommatrix.hxx>
++#include <basegfx/polygon/b2dpolypolygon.hxx>
++#include <basegfx/polygon/b2dlinegeometry.hxx>
++#include <basegfx/polygon/b2dpolygontools.hxx>
++#include <basegfx/polygon/b2dpolypolygontools.hxx>
++#include <basegfx/polygon/b2dlinegeometry.hxx>
++#include <com/sun/star/io/XSeekable.hpp>
++#include <com/sun/star/xml/sax/XParser.hpp>
++#include <com/sun/star/xml/dom/XDocumentBuilder.hpp>
++#include <com/sun/star/xml/dom/NodeType.hpp>
++
++#include <boost/bind.hpp>
++#include <hash_set>
++#include <map>
++#include <string.h>
++
++#define USTR(x) rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++#define OASIS_STR "urn:oasis:names:tc:opendocument:xmlns:"
++
++using namespace ::com::sun::star;
++
++namespace svgi
++{
++namespace
++{
++
++/** visits all children of the specified type with the given functor
++ */
++template<typename Func> void visitChildren(const Func& rFunc,
++                                           const uno::Reference<xml::dom::XElement> xElem,
++                                           xml::dom::NodeType eChildType )
++{
++    uno::Reference<xml::dom::XNodeList> xChildren( xElem->getChildNodes() );
++    const sal_Int32 nNumNodes( xChildren->getLength() );
++    for( sal_Int32 i=0; i<nNumNodes; ++i )
++    {
++        if( xChildren->item(i)->getNodeType() == eChildType )
++            rFunc( *xChildren->item(i).get() );
++    }
++}
++
++/** Visit all elements of the given tree (in-order traversal)
++
++    Given functor is called for every element, and passed the
++    element's attributes, if any
++ */
++template<typename Func> void visitElements(Func& rFunc,
++                                           const uno::Reference<xml::dom::XElement> xElem)
++{
++    if( xElem->hasAttributes() )
++        rFunc(xElem,xElem->getAttributes());
++    else
++        rFunc(xElem);
++
++    // notify children processing
++    rFunc.push();
++
++    // recurse over children
++    uno::Reference<xml::dom::XNodeList> xChildren( xElem->getChildNodes() );
++    const sal_Int32 nNumNodes( xChildren->getLength() );
++    for( sal_Int32 i=0; i<nNumNodes; ++i )
++    {
++        if( xChildren->item(i)->getNodeType() == xml::dom::NodeType_ELEMENT_NODE )
++            visitElements( rFunc,
++                           uno::Reference<xml::dom::XElement>(
++                               xChildren->item(i),
++                               uno::UNO_QUERY_THROW) );
++    }
++
++    // children processing done
++    rFunc.pop();
++}
++
++template<typename value_type> value_type square(value_type v)
++{
++    return v*v;
++}
++
++double colorDiffSquared(const ARGBColor& rCol1, const ARGBColor& rCol2)
++{
++    return 
++        square(rCol1.a-rCol2.a) 
++        + square(rCol1.r-rCol2.r)
++        + square(rCol1.g-rCol2.g)
++        + square(rCol1.b-rCol2.b);
++}
++
++typedef std::map<rtl::OUString,sal_Size> ElementRefMapType;
++
++struct AnnotatingVisitor
++{
++    AnnotatingVisitor(StatePool&                                        rStatePool,
++                      StateMap&                                         rStateMap,
++                      const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler) :
++        mnCurrStateId(0),
++        maCurrState(),
++        maParentStates(),
++        mrStates(rStatePool),
++        mrStateMap(rStateMap),
++        mxDocumentHandler(xDocumentHandler),
++		maGradientVector(),
++        maGradientStopVector()
++    {
++        State aState;
++        aState.maCTM = aState.maTransform;
++        maParentStates.push_back(aState);
++    }
++
++    void operator()( const uno::Reference<xml::dom::XElement>& )
++    {}
++
++    void operator()( const uno::Reference<xml::dom::XElement>&      xElem,
++                     const uno::Reference<xml::dom::XNamedNodeMap>& xAttributes )
++    {
++		const sal_Int32 nTagId(getTokenId(xElem->getTagName()));
++		switch (nTagId)
++		{
++			case XML_LINEARGRADIENT:
++			{
++				const sal_Int32 nNumAttrs( xAttributes->getLength() );
++				rtl::OUString sAttributeValue;
++				maGradientVector.push_back(Gradient(Gradient::LINEAR)); 
++                
++                // do we have a reference to a parent gradient? parse
++                // that first, as it sets our defaults here (manually
++                // tracking default state on each Gradient variable is
++                // much more overhead)
++                uno::Reference<xml::dom::XNode> xNode(xAttributes->getNamedItem(USTR("href")));
++                if(xNode.is())
++                {
++                    const rtl::OUString sValue(xNode->getNodeValue());
++                    ElementRefMapType::iterator aFound=maGradientIdMap.end();
++                    if (sValue.copy(0,1).equalsAscii("#"))
++                        aFound = maGradientIdMap.find(sValue.copy(1));
++                    else
++                        aFound = maGradientIdMap.find(sValue);;
++
++                    if( aFound != maGradientIdMap.end() )
++                        maGradientVector.back() = maGradientVector[aFound->second];
++                }
++
++                // do that after dereferencing, to prevent hyperlinked
++                // gradient to clobber our Id again
++                maGradientVector.back().mnId = maGradientVector.size()-1;
++                maGradientVector.back().meType = Gradient::LINEAR; // has been clobbered as well
++
++				for( sal_Int32 i=0; i<nNumAttrs; ++i )
++				{
++					parseLinearGradientData( maGradientVector.back(),
++                                             maGradientVector.size()-1,
++                                             getTokenId(xAttributes->item(i)->getNodeName()), 
++                                             xAttributes->item(i)->getNodeValue() );
++				}
++				break;
++			}
++            case XML_RADIALGRADIENT:
++			{
++				const sal_Int32 nNumAttrs( xAttributes->getLength() );
++				rtl::OUString sAttributeValue;
++				maGradientVector.push_back(Gradient(Gradient::RADIAL)); 
++
++                // do we have a reference to a parent gradient? parse
++                // that first, as it sets our defaults here (manually
++                // tracking default state on each Gradient variable is
++                // much more overhead)
++                uno::Reference<xml::dom::XNode> xNode(xAttributes->getNamedItem(USTR("href")));
++                if(xNode.is())
++                {
++                    const rtl::OUString sValue(xNode->getNodeValue());
++                    ElementRefMapType::iterator aFound=maGradientIdMap.end();
++                    if (sValue.copy(0,1).equalsAscii("#"))
++                        aFound = maGradientIdMap.find(sValue.copy(1));
++                    else
++                        aFound = maGradientIdMap.find(sValue);;
++
++                    if( aFound != maGradientIdMap.end() )
++                        maGradientVector.back() = maGradientVector[aFound->second];
++                }
++
++                // do that after dereferencing, to prevent hyperlinked
++                // gradient to clobber our Id again
++                maGradientVector.back().mnId = maGradientVector.size()-1;
++                maGradientVector.back().meType = Gradient::RADIAL; // has been clobbered as well
++
++				for( sal_Int32 i=0; i<nNumAttrs; ++i )
++				{
++					parseRadialGradientData( maGradientVector.back(),
++                                             maGradientVector.size()-1,
++                                             getTokenId(xAttributes->item(i)->getNodeName()), 
++                                             xAttributes->item(i)->getNodeValue() );
++				}
++				break;
++			}
++			case XML_STOP:
++			{
++				const sal_Int32 nNumAttrs( xAttributes->getLength() );
++				rtl::OUString sAttributeValue;
++				maGradientStopVector.push_back(GradientStop());
++				maGradientVector.back().maStops.push_back(maGradientStopVector.size()-1);
++				for( sal_Int32 i=0; i<nNumAttrs; ++i )
++				{
++					parseGradientStop( maGradientStopVector.back(),
++                                       maGradientStopVector.size()-1,
++                                       getTokenId(xAttributes->item(i)->getNodeName()), 
++                                       xAttributes->item(i)->getNodeValue() );
++				}
++				break;
++			}
++			default:
++			{
++		        // init state. inherit defaults from parent.
++    		    maCurrState = maParentStates.back(); 
++        		maCurrState.maTransform.identity();
++
++		         OSL_TRACE("the CTM is currently #1: %f %f %f %f %f %f", 
++    		               maCurrState.maCTM.get(0,0),
++        		           maCurrState.maCTM.get(0,1),
++            		       maCurrState.maCTM.get(0,2),
++                		   maCurrState.maCTM.get(1,0),
++	                	   maCurrState.maCTM.get(1,1),
++						   maCurrState.maCTM.get(1,2));
++
++		        // scan for style info
++    		    const sal_Int32 nNumAttrs( xAttributes->getLength() );
++        		rtl::OUString sAttributeValue;
++	        	for( sal_Int32 i=0; i<nNumAttrs; ++i )
++	    	    {
++    	    	    sAttributeValue = xAttributes->item(i)->getNodeValue();
++        	    	const sal_Int32 nTokenId( 
++            	    	getTokenId(xAttributes->item(i)->getNodeName()));
++	            	if( XML_STYLE == nTokenId )
++    	            	parseStyle(sAttributeValue);
++	        	    else 
++    	        	    parseAttribute(nTokenId, 
++            	        	           sAttributeValue);
++		        }
++
++    		    // all attributes parsed, can calc total CTM now
++        		if( !maCurrState.maViewBox.isEmpty() &&
++            		maCurrState.maViewBox.getWidth() != 0.0 && 
++		            maCurrState.maViewBox.getHeight() != 0.0 )
++    		    {
++        		    // transform aViewBox into viewport, such that they
++            		// coincide
++	            	maCurrState.maTransform.translate(-maCurrState.maViewBox.getMinX(),
++    	            	                              -maCurrState.maViewBox.getMinY());
++	        	    maCurrState.maTransform.scale(maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth(),
++    	        	                              maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight());
++	    	    }
++    	    	maCurrState.maCTM *= maCurrState.maTransform;
++
++		        OSL_TRACE("the CTM is currently #2: %f %f %f %f %f %f", 
++    		              maCurrState.maCTM.get(0,0),
++        		          maCurrState.maCTM.get(0,1),
++            		      maCurrState.maCTM.get(0,2),
++                		  maCurrState.maCTM.get(1,0),
++	                	  maCurrState.maCTM.get(1,1),
++	    	              maCurrState.maCTM.get(1,2));
++        
++    	    	// if necessary, serialize to automatic-style section
++        		writeStyle(xElem,nTagId);
++			}
++		}	
++    }
++
++    rtl::OUString getStyleName( const char* sPrefix, sal_Int32 nId )
++    {
++        return rtl::OUString::createFromAscii(sPrefix)+rtl::OUString::valueOf(nId);
++    }
++
++    bool hasGradientOpacity( const Gradient& rGradient )
++    {
++        return 
++            maGradientStopVector[
++                rGradient.maStops[0]].maStopColor.a != 1.0 ||
++            maGradientStopVector[
++                rGradient.maStops[1]].maStopColor.a != 1.0;
++    }
++
++    struct StopSorter
++    {
++        explicit StopSorter( const std::vector< GradientStop >& rStopVec ) :
++            mrStopVec(rStopVec)
++        {}
++
++        bool operator()( sal_Size rLHS, sal_Size rRHS )
++        {
++            return mrStopVec[rLHS].mnStopPosition < mrStopVec[rRHS].mnStopPosition;
++        }
++        
++        const std::vector< GradientStop >& mrStopVec;
++    };
++
++    void optimizeGradientStops( Gradient& rGradient )
++    {
++        // sort for increasing stop position
++        std::sort(rGradient.maStops.begin(),rGradient.maStops.end(),
++                  StopSorter(maGradientStopVector));
++
++        if( rGradient.maStops.size() < 3 )
++            return; //easy! :-)
++        
++        // join similar colors
++        std::vector<sal_Size> aNewStops(1,rGradient.maStops.front());
++        for( sal_Size i=1; i<rGradient.maStops.size(); ++i )
++        {
++            if( maGradientStopVector[rGradient.maStops[i]].maStopColor != 
++                maGradientStopVector[aNewStops.back()].maStopColor )
++                aNewStops.push_back(rGradient.maStops[i]);
++        }
++
++        rGradient.maStops = aNewStops;
++
++        // axial gradient, maybe?
++        if( rGradient.meType == Gradient::LINEAR &&
++            rGradient.maStops.size() == 3 && 
++            maGradientStopVector[rGradient.maStops.front()].maStopColor ==
++            maGradientStopVector[rGradient.maStops.back()].maStopColor )
++        {
++            // yep - keep it at that
++            return;
++        }
++
++        // find out most significant color difference, and limit to
++        // those two stops around this border (metric is
++        // super-simplistic: take euclidean distance of colors, weigh
++        // with stop distance)
++        sal_Size nMaxIndex=0;
++        double    fMaxDistance=0.0;
++        for( sal_Size i=1; i<rGradient.maStops.size(); ++i )
++        {
++            const double fCurrDistance( 
++                colorDiffSquared(
++                    maGradientStopVector[rGradient.maStops[i-1]].maStopColor,
++                    maGradientStopVector[rGradient.maStops[i]].maStopColor) *
++                (square(maGradientStopVector[rGradient.maStops[i-1]].mnStopPosition) +
++                 square(maGradientStopVector[rGradient.maStops[i]].mnStopPosition)) );
++
++            if( fCurrDistance > fMaxDistance )
++            {
++                nMaxIndex = i-1;
++                fMaxDistance = fCurrDistance;
++            }
++        }
++        rGradient.maStops[0] = rGradient.maStops[nMaxIndex];
++        rGradient.maStops[1] = rGradient.maStops[nMaxIndex+1];
++        rGradient.maStops.erase(rGradient.maStops.begin()+2,rGradient.maStops.end());
++    }
++
++    sal_Int8 toByteColor( double val )
++    {
++        // TODO(Q3): duplicated from vcl::unotools
++        return sal::static_int_cast<sal_Int8>(
++            basegfx::fround(val*255.0));
++    }
++
++    rtl::OUString getOdfColor( const ARGBColor& rColor )
++    {
++        // TODO(Q3): duplicated from pdfimport
++        rtl::OUStringBuffer aBuf( 7 );
++        const sal_uInt8 nRed  ( toByteColor(rColor.r)   );
++        const sal_uInt8 nGreen( toByteColor(rColor.g) );
++        const sal_uInt8 nBlue ( toByteColor(rColor.b)  );
++        aBuf.append( sal_Unicode('#') );
++        if( nRed < 10 )
++            aBuf.append( sal_Unicode('0') );
++        aBuf.append( sal_Int32(nRed), 16 );
++        if( nGreen < 10 )
++            aBuf.append( sal_Unicode('0') );
++        aBuf.append( sal_Int32(nGreen), 16 );
++        if( nBlue < 10 )
++            aBuf.append( sal_Unicode('0') );
++        aBuf.append( sal_Int32(nBlue), 16 );
++
++        // TODO(F3): respect alpha transparency (polygons etc.)
++        OSL_ASSERT(rColor.a == 1.0);
++
++        return aBuf.makeStringAndClear();
++    }
++
++    bool writeStyle(State& rState, const sal_Int32 nTagId)
++    {
++        rtl::Reference<SvXMLAttributeList> xAttrs( new SvXMLAttributeList() );
++        uno::Reference<xml::sax::XAttributeList> xUnoAttrs( xAttrs.get() );
++
++        std::pair<StatePool::iterator,
++                  bool> aRes = mrStates.insert(rState);
++        if( !aRes.second )
++            return false; // not written
++
++        ++mnCurrStateId;
++
++        // mnStyleId does not take part in hashing/comparison
++        const_cast<State&>(*aRes.first).mnStyleId = mnCurrStateId;
++        mrStateMap.insert(std::make_pair(
++                              mnCurrStateId,
++                              rState));
++
++        // find two representative stop colors (as odf only support
++        // start&end color)
++        optimizeGradientStops(rState.maFillGradient);
++
++        // do we have a gradient fill? then write out gradient as well
++        if( rState.meFillType == GRADIENT && rState.maFillGradient.maStops.size() > 1 )
++        {
++            // TODO(F3): ODF12 supposedly also groks svg:linear/radialGradient 
++            xAttrs->AddAttribute( USTR( "draw:name" ), getStyleName("svggradient", rState.maFillGradient.mnId) );
++            if( rState.maFillGradient.meType == Gradient::LINEAR )
++            {
++                // should the optimizeGradientStops method decide that
++                // this is a three-color gradient, it prolly wanted us
++                // to take axial instead
++                xAttrs->AddAttribute( USTR( "draw:style" ), 
++                                      rState.maFillGradient.maStops.size() == 3 ?
++                                      USTR("axial") :
++                                      USTR("linear") );
++            }
++            else
++            {
++                xAttrs->AddAttribute( USTR( "draw:style" ), USTR("ellipsoid") );
++                xAttrs->AddAttribute( USTR( "draw:cx" ), USTR("50%") );
++                xAttrs->AddAttribute( USTR( "draw:cy" ), USTR("50%") );
++            }
++
++            basegfx::B2DTuple rScale, rTranslate;
++            double rRotate, rShearX;
++            if( rState.maFillGradient.maTransform.decompose(rScale, rTranslate, rRotate, rShearX) )
++                xAttrs->AddAttribute( USTR( "draw:angle" ), 
++                                      rtl::OUString::valueOf(rRotate*1800.0/M_PI ) );
++            xAttrs->AddAttribute( USTR( "draw:start-color" ), 
++                                  getOdfColor(
++                                      maGradientStopVector[
++                                          rState.maFillGradient.maStops[0]].maStopColor) );
++            xAttrs->AddAttribute( USTR( "draw:end-color" ), 
++                                  getOdfColor(
++                                      maGradientStopVector[
++                                          rState.maFillGradient.maStops[1]].maStopColor) );
++            xAttrs->AddAttribute( USTR( "draw:border" ), USTR("0%") );
++            mxDocumentHandler->startElement( USTR("draw:gradient"), 
++                                             xUnoAttrs );
++            mxDocumentHandler->endElement( USTR("draw:gradient") );
++
++            if( hasGradientOpacity(rState.maFillGradient) )
++            {
++                // need to write out opacity style as well
++                xAttrs->Clear();
++                xAttrs->AddAttribute( USTR( "draw:name" ), getStyleName("svgopacity", rState.maFillGradient.mnId) );
++                if( rState.maFillGradient.meType == Gradient::LINEAR )
++                {
++                    xAttrs->AddAttribute( USTR( "draw:style" ), USTR("linear") );
++                }
++                else
++                {
++                    xAttrs->AddAttribute( USTR( "draw:style" ), USTR("ellipsoid") );
++                    xAttrs->AddAttribute( USTR( "draw:cx" ), USTR("50%") );
++                    xAttrs->AddAttribute( USTR( "draw:cy" ), USTR("50%") );
++                }
++
++                // modulate gradient opacity with overall fill opacity
++                xAttrs->AddAttribute( USTR( "draw:end" ), 
++                                      rtl::OUString::valueOf(
++                                          maGradientStopVector[
++                                              rState.maFillGradient.maStops[0]].maStopColor.a*
++                                          maCurrState.mnFillOpacity*100.0)+USTR("%" ) );
++                xAttrs->AddAttribute( USTR( "draw:start" ), 
++                                      rtl::OUString::valueOf(
++                                          maGradientStopVector[
++                                              rState.maFillGradient.maStops[1]].maStopColor.a*
++                                          maCurrState.mnFillOpacity*100.0)+USTR("%" ) );
++                xAttrs->AddAttribute( USTR( "draw:border" ), USTR("0%") );
++                mxDocumentHandler->startElement( USTR("draw:opacity"), 
++                                                 xUnoAttrs );
++                mxDocumentHandler->endElement( USTR("draw:opacity") );
++            }
++        }
++
++        // serialize to automatic-style section
++        xAttrs->Clear();
++		xAttrs->AddAttribute( USTR( "style:name" ), getStyleName("svggraphicstyle", mnCurrStateId) );
++		xAttrs->AddAttribute( USTR( "style:family" ), USTR("graphic") );
++        mxDocumentHandler->startElement( USTR("style:style"), 
++                                         xUnoAttrs );
++        
++        xAttrs->Clear();
++        // text or shape? if the former, no use in processing any
++        // graphic attributes except stroke color, ODF can do ~nothing
++        // with text shapes
++        if( nTagId == XML_TEXT )
++        {
++            //xAttrs->AddAttribute( USTR( "draw:auto-grow-height"), USTR("true"));
++            xAttrs->AddAttribute( USTR( "draw:auto-grow-width"), USTR("true"));
++            xAttrs->AddAttribute( USTR( "draw:textarea-horizontal-align"), USTR("left"));
++            //xAttrs->AddAttribute( USTR( "draw:textarea-vertical-align"), USTR("top"));
++            xAttrs->AddAttribute( USTR( "fo:min-height"), USTR("0cm"));
++
++            xAttrs->AddAttribute( USTR( "fo:padding-top"), USTR("0cm"));
++            xAttrs->AddAttribute( USTR( "fo:padding-left"), USTR("0cm"));
++            xAttrs->AddAttribute( USTR( "fo:padding-right"), USTR("0cm"));
++            xAttrs->AddAttribute( USTR( "fo:padding-bottom"), USTR("0cm"));
++
++            // disable any background shape
++            xAttrs->AddAttribute( USTR( "draw:stroke" ), USTR("none"));
++            xAttrs->AddAttribute( USTR( "draw:fill" ), USTR("none"));
++        }
++        else
++        {
++            if( rState.meFillType != NONE )
++            {
++                if( rState.meFillType == GRADIENT )
++                {
++                    xAttrs->AddAttribute( USTR( "draw:fill" ), USTR("gradient"));
++                    xAttrs->AddAttribute( USTR( "draw:fill-gradient-name" ), 
++                                          getStyleName("svggradient", rState.maFillGradient.mnId) );
++                    if( hasGradientOpacity(rState.maFillGradient) )
++                    {
++                        // needs transparency gradient as well
++                        xAttrs->AddAttribute( USTR( "draw:opacity-name" ), 
++                                              getStyleName("svgopacity", rState.maFillGradient.mnId) );
++                    }
++                    else if( maCurrState.mnFillOpacity != 1.0 )
++                        xAttrs->AddAttribute( USTR( "draw:opacity" ), 
++                                              rtl::OUString::valueOf(100.0*maCurrState.mnFillOpacity)+USTR("%") );
++                }
++                else
++                {
++                    xAttrs->AddAttribute( USTR( "draw:fill" ), USTR("solid"));
++                    xAttrs->AddAttribute( USTR( "draw:fill-color" ), getOdfColor(rState.maFillColor));
++                    if( maCurrState.mnFillOpacity != 1.0 )
++                        xAttrs->AddAttribute( USTR( "draw:opacity" ), 
++                                              rtl::OUString::valueOf(100.0*maCurrState.mnFillOpacity)+USTR("%") );
++                }
++            }
++            else
++                xAttrs->AddAttribute( USTR( "draw:fill" ), USTR("none"));
++
++            if( rState.meStrokeType != NONE )
++            {
++                xAttrs->AddAttribute( USTR( "draw:stroke" ), USTR("solid"));
++                xAttrs->AddAttribute( USTR( "svg:stroke-color" ), getOdfColor(rState.maStrokeColor));
++            }
++            else
++                xAttrs->AddAttribute( USTR( "draw:stroke" ), USTR("none"));
++
++            if( maCurrState.mnStrokeWidth != 0.0 )
++            {
++                ::basegfx::B2DVector aVec(maCurrState.mnStrokeWidth,0);
++                aVec *= maCurrState.maCTM;
++                xAttrs->AddAttribute( USTR("svg:stroke-width"), rtl::OUString::valueOf( aVec.getLength()/100.0 )+USTR("mm"));
++            }
++            if( maCurrState.meLineJoin == basegfx::tools::B2DLINEJOIN_MITER )
++                xAttrs->AddAttribute( USTR( "draw:stroke-linejoin"), USTR("miter"));
++            else if( maCurrState.meLineJoin == basegfx::tools::B2DLINEJOIN_ROUND )
++                xAttrs->AddAttribute( USTR( "draw:stroke-linejoin"), USTR("round"));
++            else if( maCurrState.meLineJoin == basegfx::tools::B2DLINEJOIN_BEVEL )
++                xAttrs->AddAttribute( USTR( "draw:stroke-linejoin"), USTR("bevel"));
++            if( maCurrState.mnStrokeOpacity != 1.0 )
++                xAttrs->AddAttribute( USTR("svg:stroke-opacity"), 
++                                      rtl::OUString::valueOf(100.0*maCurrState.mnStrokeOpacity)+USTR("%"));
++        }
++
++        mxDocumentHandler->startElement( USTR("style:graphic-properties"), 
++                                         xUnoAttrs );
++        mxDocumentHandler->endElement( USTR("style:graphic-properties") );
++        mxDocumentHandler->endElement( USTR("style:style") );
++
++        return true; // newly written
++    }
++
++    void writeStyle(const uno::Reference<xml::dom::XElement>& xElem, const sal_Int32 nTagId)
++    {
++        sal_Int32 nEmulatedStyleId=0;
++        if( maCurrState.maDashArray.size() && 
++            maCurrState.meStrokeType != NONE )
++        {
++            // ODF dashing is severly borked - generate filled shape
++            // instead (further down the road - here, we simply
++            // emulate a filled style with the next id)
++
++            // move all stroke attribs to fill, Clear stroking
++            State aEmulatedStrokeState( maCurrState );
++            aEmulatedStrokeState.meFillType = maCurrState.meStrokeType;
++            aEmulatedStrokeState.mnFillOpacity = maCurrState.mnStrokeOpacity;
++            aEmulatedStrokeState.maFillColor = maCurrState.maStrokeColor;
++            aEmulatedStrokeState.maFillGradient = maCurrState.maStrokeGradient;
++            aEmulatedStrokeState.meFillRule = EVEN_ODD;
++            aEmulatedStrokeState.meStrokeType = NONE;
++
++            if( writeStyle(aEmulatedStrokeState, nTagId) )
++                nEmulatedStyleId = mnCurrStateId;
++            else
++                nEmulatedStyleId = mrStates.find(aEmulatedStrokeState)->mnStyleId;
++        }
++
++        sal_Int32 nStyleId=0;
++        if( writeStyle(maCurrState, nTagId) )
++            nStyleId = mnCurrStateId;
++        else
++            nStyleId = mrStates.find(maCurrState)->mnStyleId;
++
++        xElem->setAttribute(USTR("internal-style-ref"),
++                            rtl::OUString::valueOf(
++                                nStyleId)
++                            +USTR("$")
++                            +rtl::OUString::valueOf(
++                                nEmulatedStyleId));
++    }
++
++    void push()
++    {
++        maParentStates.push_back(maCurrState);
++    }
++
++    void pop()
++    {
++        maParentStates.pop_back();
++    }
++	
++	void parseLinearGradientData( Gradient& io_rCurrGradient,
++                                  const sal_Int32 nGradientNumber,
++                                  const sal_Int32 nTokenId,
++                                  const rtl::OUString& sValue )
++	{
++		switch(nTokenId)
++		{
++            case XML_GRADIENTTRANSFORM:
++            {
++                rtl::OString aValueUtf8( sValue.getStr(), 
++                                         sValue.getLength(), 
++                                         RTL_TEXTENCODING_UTF8 );
++                parseTransform(aValueUtf8.getStr(),io_rCurrGradient.maTransform);
++                break;
++            }
++			case XML_X1:
++				io_rCurrGradient.maCoords.linear.mfX1 = convLength(sValue);
++				break;
++			case XML_X2:
++				io_rCurrGradient.maCoords.linear.mfX2 = convLength(sValue);
++				break;
++			case XML_Y1:
++				io_rCurrGradient.maCoords.linear.mfY1 = convLength(sValue);
++				break;
++			case XML_Y2:
++				io_rCurrGradient.maCoords.linear.mfY2 = convLength(sValue);
++				break;
++			case XML_ID:
++                maGradientIdMap.insert(std::make_pair(sValue,nGradientNumber));
++				break;
++			case XML_GRADIENTUNITS:
++				if (getTokenId(sValue) == XML_OBJECTBOUNDINGBOX)
++					io_rCurrGradient.mbBoundingBoxUnits = true;
++				else
++					io_rCurrGradient.mbBoundingBoxUnits = false;
++				break;
++			default:
++				break;
++		}
++	}
++	
++	void parseRadialGradientData( Gradient& io_rCurrGradient,
++                                  const sal_Int32 nGradientNumber,
++                                  const sal_Int32 nTokenId,
++                                  const rtl::OUString& sValue )
++	{
++		switch(nTokenId)
++		{
++            case XML_GRADIENTTRANSFORM:
++            {
++                rtl::OString aValueUtf8( sValue.getStr(), 
++                                         sValue.getLength(), 
++                                         RTL_TEXTENCODING_UTF8 );
++                parseTransform(aValueUtf8.getStr(),io_rCurrGradient.maTransform);
++                break;
++            }
++			case XML_CX:
++				io_rCurrGradient.maCoords.radial.mfCX = convLength(sValue);
++				break;
++			case XML_CY:
++				io_rCurrGradient.maCoords.radial.mfCY = convLength(sValue);
++				break;
++			case XML_FX:
++				io_rCurrGradient.maCoords.radial.mfFX = convLength(sValue);
++				break;
++			case XML_FY:
++				io_rCurrGradient.maCoords.radial.mfFY = convLength(sValue);
++				break;
++			case XML_R:
++				io_rCurrGradient.maCoords.radial.mfR = convLength(sValue);
++				break;
++			case XML_ID:
++                maGradientIdMap.insert(std::make_pair(sValue,nGradientNumber));
++				break;
++			case XML_GRADIENTUNITS:
++				if (getTokenId(sValue) == XML_OBJECTBOUNDINGBOX)
++					io_rCurrGradient.mbBoundingBoxUnits = true;
++				else
++					io_rCurrGradient.mbBoundingBoxUnits = false;
++				break;
++			default:
++				break;
++		}
++	}
++	
++	void parseGradientStop( GradientStop& io_rGradientStop,
++                            const sal_Int32 nStopNumber,
++                            const sal_Int32 nTokenId, 
++							const rtl::OUString& sValue )
++	{
++		switch(nTokenId)
++		{
++			case XML_HREF:
++            {
++                ElementRefMapType::iterator aFound=maStopIdMap.end();
++				if (sValue.copy(0,1).equalsAscii("#"))
++					aFound = maStopIdMap.find(sValue.copy(1));
++				else
++					aFound = maStopIdMap.find(sValue);;
++
++                if( aFound != maStopIdMap.end() )
++                    io_rGradientStop =  maGradientStopVector[aFound->second];
++				break;
++            }
++			case XML_ID:
++                maStopIdMap.insert(std::make_pair(sValue,nStopNumber));
++				break;
++			case XML_OFFSET:
++				io_rGradientStop.mnStopPosition = sValue.toDouble();
++				break;
++			case XML_STYLE:
++				parseStyle( sValue );
++				break;
++			default:
++				break;
++		}
++	}
++	
++    void parseAttribute( const sal_Int32      nTokenId, 
++                         const rtl::OUString& sValue )
++    {
++        rtl::OString aValueUtf8( sValue.getStr(), 
++                                 sValue.getLength(), 
++                                 RTL_TEXTENCODING_UTF8 );
++        switch(nTokenId)
++        {
++            case XML_WIDTH:
++            {
++                const double fViewPortWidth(
++                    convLength(sValue));
++            
++                maCurrState.maViewport.expand(
++                    basegfx::B2DTuple(fViewPortWidth,0.0));
++                break;
++            }
++            case XML_HEIGHT:
++            {
++                const double fViewPortHeight(
++                    convLength(sValue));
++            
++                maCurrState.maViewport.expand(
++                    basegfx::B2DTuple(0.0,fViewPortHeight));
++                break;
++            }
++            case XML_VIEWBOX:
++            {
++                // TODO(F1): preserveAspectRatio
++                parseViewBox(
++                    aValueUtf8,
++                    maCurrState.maViewBox);
++                break;
++            }
++            case XML_FILL_RULE:
++            {
++                if( aValueUtf8 == "evenodd" )
++                    maCurrState.meFillRule = EVEN_ODD;
++                else if( aValueUtf8 == "nonzero" )
++                    maCurrState.meFillRule = NON_ZERO;
++                else if( aValueUtf8 == "inherit" )
++                    maCurrState.meFillRule = maParentStates.back().meFillRule;
++                break;
++            }
++            case XML_FILL_OPACITY:
++                if( aValueUtf8 == "inherit" )
++                    maCurrState.mnFillOpacity = maParentStates.back().mnFillOpacity;
++                else
++                    maCurrState.mnFillOpacity = aValueUtf8.toDouble();
++                break;
++            case XML_STROKE_WIDTH:
++            {
++                if( aValueUtf8 == "inherit" )
++                    maCurrState.mnStrokeWidth = maParentStates.back().mnStrokeWidth;
++                else
++                    maCurrState.mnStrokeWidth = convLength(sValue);
++                break;
++            }
++            case XML_STROKE_LINECAP:
++            {
++                if( aValueUtf8 == "butt" )
++                    maCurrState.meLineCap = BUTT;
++                else if( aValueUtf8 == "round" )
++                    maCurrState.meLineCap = ROUND;
++                else if( aValueUtf8 == "square" )
++                    maCurrState.meLineCap = RECT;
++                else if( aValueUtf8 == "inherit" )
++                    maCurrState.meLineCap = maParentStates.back().meLineCap;
++                break;
++            }
++            case XML_STROKE_LINEJOIN:
++            {
++                if( aValueUtf8 == "miter" )
++                    maCurrState.meLineJoin = basegfx::tools::B2DLINEJOIN_MITER;
++                else if( aValueUtf8 == "round" )
++                    maCurrState.meLineJoin = basegfx::tools::B2DLINEJOIN_ROUND;
++                else if( aValueUtf8 == "bevel" )
++                    maCurrState.meLineJoin = basegfx::tools::B2DLINEJOIN_BEVEL;
++                else if( aValueUtf8 == "inherit" )
++                    maCurrState.meLineJoin = maParentStates.back().meLineJoin;
++                break;
++            }
++            case XML_STROKE_MITERLIMIT:
++            {
++                if( aValueUtf8 == "inherit" )
++                    maCurrState.mnMiterLimit = maParentStates.back().mnMiterLimit;
++                else
++                    maCurrState.mnMiterLimit = aValueUtf8.toDouble();
++                break;
++            }
++            case XML_STROKE_DASHOFFSET:
++            {
++                if( aValueUtf8 == "inherit" )
++                    maCurrState.mnDashOffset = maParentStates.back().mnDashOffset;
++                else
++                    maCurrState.mnDashOffset = convLength(sValue);
++                break;
++            }
++            case XML_STROKE_DASHARRAY:
++            {
++                if( aValueUtf8 == "none" )
++                    maCurrState.maDashArray.clear();
++                else if( aValueUtf8 == "inherit" )
++                    maCurrState.maDashArray = maParentStates.back().maDashArray;
++                else
++                    parseDashArray(aValueUtf8.getStr(),
++                                   maCurrState.maDashArray);
++                break;
++            }
++            case XML_STROKE_OPACITY:
++                if( aValueUtf8 == "inherit" )
++                    maCurrState.mnStrokeOpacity = maParentStates.back().mnStrokeOpacity;
++                else
++                    maCurrState.mnStrokeOpacity = aValueUtf8.toDouble();
++                break;
++            case XML_FILL:
++            {
++                const State& rParent( maParentStates.back() );
++                parsePaint( sValue,
++                            aValueUtf8.getStr(),
++                            maCurrState.meFillType,
++                            maCurrState.maFillColor,
++                            maCurrState.maFillGradient,
++                            rParent.meFillType,
++                            rParent.maFillColor,
++                            rParent.maFillGradient );
++                break;
++            }
++            case XML_STROKE:
++            {
++                const State& rParent( maParentStates.back() );
++                parsePaint( sValue,
++                            aValueUtf8.getStr(),
++                            maCurrState.meStrokeType,
++                            maCurrState.maStrokeColor,
++                            maCurrState.maStrokeGradient,
++                            rParent.meStrokeType,
++                            rParent.maStrokeColor,
++                            rParent.maStrokeGradient );
++                break;
++            }
++            case XML_TRANSFORM:
++            {
++                basegfx::B2DHomMatrix aTransform;
++                parseTransform(aValueUtf8.getStr(),aTransform);
++				// Ugly and temprorary hack
++				aTransform.set(0,2,convLength(aTransform.get(0,2),SVG_LENGTH_UNIT_PT));
++				aTransform.set(1,2,convLength(aTransform.get(1,2),SVG_LENGTH_UNIT_PT));
++                maCurrState.maTransform = maCurrState.maTransform*aTransform;
++                break;
++            }
++            case XML_FONT_FAMILY:
++                maCurrState.maFontFamily=sValue;
++                break;
++            case XML_FONT_SIZE:
++                maCurrState.mnFontSize=convLength(sValue);
++                break;
++            case XML_FONT_STYLE:
++                maCurrState.meFontStyle=STYLE_ITALIC; // TODO: sValue.toStyleId();
++                break;
++            case XML_FONT_WEIGHT:
++                maCurrState.mnFontWeight=sValue.toDouble();
++                break;
++            case XML_FONT_VARIANT:
++                maCurrState.meFontVariant=VARIANT_SMALLCAPS; // TODO: sValue.toDouble();
++                break;
++			case XML_STOP_COLOR:
++                if( maGradientVector.empty() ||
++                    maGradientVector.back().maStops.empty() )
++                    break;
++				parseColor( aValueUtf8, 
++                            maGradientStopVector[
++                                maGradientVector.back().maStops.back()].maStopColor );
++				break;
++			case XML_STOP_OPACITY:
++                if( maGradientVector.empty() ||
++                    maGradientVector.back().maStops.empty() )
++                    break;
++				parseOpacity( aValueUtf8, 
++                              maGradientStopVector[
++                                  maGradientVector.back().maStops.back()].maStopColor );
++				break;
++            default:
++                OSL_TRACE("unhandled token %s", getTokenName(nTokenId));
++                break;
++        }
++    }
++
++    void parseStyle( const rtl::OUString& sValue )
++    {
++        // split individual style attributes
++        sal_Int32 nIndex=0, nDummyIndex=0;
++        rtl::OUString aCurrToken;
++        do 
++        {
++            aCurrToken=sValue.getToken(0,';',nIndex);
++            
++            // split attrib & value
++            nDummyIndex=0;
++            rtl::OUString aCurrAttrib(
++                aCurrToken.getToken(0,':',nDummyIndex).trim());
++            OSL_ASSERT(nDummyIndex!=-1);
++            nDummyIndex=0;
++            rtl::OUString aCurrValue(
++                aCurrToken.getToken(1,':',nDummyIndex).trim());
++            OSL_ASSERT(nDummyIndex==-1);
++
++            // recurse into normal attribute parsing
++            parseAttribute( getTokenId(aCurrAttrib),
++                            aCurrValue );
++        }
++        while( nIndex != -1 );
++    }
++
++    void parsePaint( const rtl::OUString& rValue,
++                     const char*      sValue, 
++                     PaintType&       rType,
++                     ARGBColor&       rColor,
++                     Gradient&        rGradient,
++                     const PaintType& rInheritType,
++                     const ARGBColor& rInheritColor,
++                     const Gradient&  rInheritGradient )
++    {
++        if( strcmp(sValue,"none") == 0 )
++            rType = NONE;
++        else if( strcmp(sValue,"currentColor") == 0 )
++        {
++            rType = SOLID;
++            rColor = maCurrState.maCurrentColor;
++        }
++        else if( strcmp(sValue,"inherit") == 0)
++        {
++            rType = rInheritType;
++            rColor = rInheritColor;
++            rGradient = rInheritGradient;
++        }
++		else if( strncmp(sValue,"url(#",5) == 0 )
++		{
++            // assuming gradient. assumption does not hold generally
++            if( rValue.getLength() > 5 )
++            {
++                ElementRefMapType::iterator aRes;
++                if( (aRes=maGradientIdMap.find(rValue.copy(5,
++                                                           rValue.getLength()-6))) != maGradientIdMap.end() )
++                {
++                    rGradient = maGradientVector[aRes->second];
++                    rType = GRADIENT;
++                }
++            }
++		}
++        else
++        { 
++            rType = SOLID;
++            parseColor(sValue,rColor);
++        }
++    }
++
++    sal_Int32                                  mnCurrStateId;
++    State                                      maCurrState;
++    std::vector<State>                         maParentStates;
++    StatePool&                                 mrStates;
++    StateMap&                                  mrStateMap;
++    uno::Reference<xml::sax::XDocumentHandler> mxDocumentHandler;
++    std::vector< Gradient >                    maGradientVector;
++    std::vector< GradientStop >                maGradientStopVector;
++    ElementRefMapType                          maGradientIdMap;
++    ElementRefMapType                          maStopIdMap;
++};
++
++/// Annotate svg styles with unique references to state pool
++static void annotateStyles( StatePool&                                        rStatePool,
++                            StateMap&                                         rStateMap,
++                            const uno::Reference<xml::dom::XElement>          xElem,
++                            const uno::Reference<xml::sax::XDocumentHandler>& xDocHdl )
++{
++    AnnotatingVisitor aVisitor(rStatePool,rStateMap,xDocHdl);
++    visitElements(aVisitor, xElem);
++}
++
++struct ShapeWritingVisitor
++{
++    ShapeWritingVisitor(StatePool&                                        rStatePool,
++                        StateMap&                                         rStateMap,
++                        const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler) :
++        mrStates(rStatePool),
++        mrStateMap(rStateMap),
++        mxDocumentHandler(xDocumentHandler),
++        mnShapeNum(0)
++    {}
++
++    void operator()( const uno::Reference<xml::dom::XElement>& )
++    {
++    }
++
++    void operator()( const uno::Reference<xml::dom::XElement>&      xElem,
++                     const uno::Reference<xml::dom::XNamedNodeMap>& xAttributes )
++    {
++        rtl::Reference<SvXMLAttributeList> xAttrs( new SvXMLAttributeList() );
++        uno::Reference<xml::sax::XAttributeList> xUnoAttrs( xAttrs.get() );
++        
++        sal_Int32 nDummyIndex(0);
++        rtl::OUString sStyleId(
++            xElem->getAttribute(
++                USTR("internal-style-ref")).getToken(
++                    0,'$',nDummyIndex));
++        StateMap::iterator pOrigState=mrStateMap.find(
++            sStyleId.toInt32());
++        maCurrState = pOrigState != mrStateMap.end() ? pOrigState->second : maParentStates.back();
++
++        OSL_TRACE("the CTM is now #2: %f %f %f %f %f %f", 
++                  maCurrState.maCTM.get(0,0),
++                  maCurrState.maCTM.get(0,1),
++                  maCurrState.maCTM.get(0,2),
++                  maCurrState.maCTM.get(1,0),
++                  maCurrState.maCTM.get(1,1),
++                  maCurrState.maCTM.get(1,2));
++        
++        const sal_Int32 nTokenId(getTokenId(xElem->getNodeName()));
++        switch(nTokenId)
++        {
++		    case XML_LINE:
++			{
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double x1=0.0,y1=0.0,x2=0.0,y2=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X1:
++                            x1= convLength(sAttributeValue);
++                            break;
++                        case XML_X2:
++                            x2 = convLength(sAttributeValue);
++                            break;
++                        case XML_Y1:
++                            y1 = convLength(sAttributeValue);
++                            break;
++                        case XML_Y2:
++                            y2 = convLength(sAttributeValue);
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++				rtl::OUString sLinePath = USTR("M")+rtl::OUString::valueOf(x1)+USTR(",")
++					+rtl::OUString::valueOf(y1)+USTR("L")+rtl::OUString::valueOf(x2)+USTR(",")
++					+rtl::OUString::valueOf(y2);
++                basegfx::B2DPolyPolygon aPoly;
++                basegfx::tools::importFromSvgD(aPoly, sLinePath);
++
++                writePathShape(xAttrs,
++                               xUnoAttrs,
++                               xElem,
++                               sStyleId,
++                               basegfx::B2DPolyPolygon(aPoly));                
++                break;
++			}
++            case XML_POLYGON:
++            case XML_POLYLINE:
++            {
++                rtl::OUString sPoints = xElem->hasAttribute(USTR("points")) ? xElem->getAttribute(USTR("points")) : USTR("");
++                basegfx::B2DPolygon aPoly;
++                basegfx::tools::importFromSvgPoints(aPoly, sPoints);
++                // if( nTokenId == XML_POLYGON )
++                    aPoly.setClosed(true);
++
++				// assuming the coordinates are in pts since they are interpreted as such by different renderers
++				basegfx::B2DHomMatrix aScale;
++				aScale.scale(2540.0f/72.0f,2540.0f/72.0f);
++				aPoly.transform(aScale);
++
++                writePathShape(xAttrs,
++                               xUnoAttrs,
++                               xElem,
++                               sStyleId,
++                               basegfx::B2DPolyPolygon(aPoly));
++                break;
++            }
++            case XML_RECT:
++            {
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                bool bRxSeen=false, bRySeen=false;
++                double x=0.0,y=0.0,width=0.0,height=0.0,rx=0.0,ry=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X:
++                            x = convLength(sAttributeValue);
++                            break;
++                        case XML_Y:
++                            y = convLength(sAttributeValue);
++                            break;
++                        case XML_WIDTH:
++                            width = convLength(sAttributeValue);
++                            break;
++                        case XML_HEIGHT:
++                            height = convLength(sAttributeValue);
++                            break;
++                        case XML_RX:
++                            rx = convLength(sAttributeValue);
++                            bRxSeen=true;
++                            break;
++                        case XML_RY:
++                            ry = convLength(sAttributeValue);
++                            bRySeen=true;
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                if( bRxSeen && !bRySeen )
++                    ry = rx;
++                else if( bRySeen && !bRxSeen )
++                    rx = ry;
++
++                basegfx::B2DPolygon aPoly;
++                aPoly = basegfx::tools::createPolygonFromRect(
++                    basegfx::B2DRange(x,y,x+width,y+height),
++                    rx, ry );
++
++                writePathShape(xAttrs,
++                               xUnoAttrs,
++                               xElem,
++                               sStyleId,
++                               basegfx::B2DPolyPolygon(aPoly));                
++                break;
++            }
++            case XML_PATH:
++            {
++                rtl::OUString sPath = xElem->hasAttribute(USTR("d")) ? xElem->getAttribute(USTR("d")) : USTR("");
++                basegfx::B2DPolyPolygon aPoly;
++                basegfx::tools::importFromSvgD(aPoly, sPath);
++
++				// assuming the coordinates are in pts since they are interpreted as such by different renderers
++				basegfx::B2DHomMatrix aScale;
++				aScale.scale(2540.0f/72.0f,2540.0f/72.0f);
++				aPoly.transform(aScale);
++				
++                writePathShape(xAttrs,
++                               xUnoAttrs,
++                               xElem,
++                               sStyleId,
++                               aPoly);
++                break;
++            }
++			case XML_CIRCLE:
++			{
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double cx=0.0,cy=0.0,r=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_CX:
++                            cx = convLength(sAttributeValue);
++                            break;
++                        case XML_CY:
++                            cy = convLength(sAttributeValue);
++                            break;
++                        case XML_R:
++                            r = convLength(sAttributeValue);
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                writeEllipseShape(xAttrs,
++                               xUnoAttrs,
++                               xElem,
++                               sStyleId,
++                               basegfx::B2DEllipse(basegfx::B2DPoint(cx, cy), basegfx::B2DTuple(r,r)));                
++				break;
++			}
++			case XML_ELLIPSE:
++			{
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double cx=0.0,cy=0.0,rx=0.0, ry=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_CX:
++                            cx = convLength(sAttributeValue);
++                            break;
++                        case XML_CY:
++                            cy = convLength(sAttributeValue);
++                            break;
++                        case XML_RX:
++                            rx = convLength(sAttributeValue);
++							break;
++						case XML_RY:
++							ry = convLength(sAttributeValue);
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                writeEllipseShape(xAttrs,
++                               xUnoAttrs,
++                               xElem,
++                               sStyleId,
++                               basegfx::B2DEllipse(basegfx::B2DPoint(cx, cy), basegfx::B2DTuple(rx,ry)));                
++				break;
++			}
++            case XML_IMAGE:
++            {
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double x=0.0,y=0.0,width=0.0,height=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X:
++                            x = convLength(sAttributeValue);
++                            break;
++                        case XML_Y:
++                            y = convLength(sAttributeValue);
++                            break;
++                        case XML_WIDTH:
++                            width = convLength(sAttributeValue);
++                            break;
++                        case XML_HEIGHT:
++                            height = convLength(sAttributeValue);
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                rtl::OUString sValue = xElem->hasAttribute(USTR("href")) ? xElem->getAttribute(USTR("href")) : USTR("");
++        		rtl::OString aValueUtf8( sValue.getStr(), sValue.getLength(), RTL_TEXTENCODING_UTF8 );
++				std::string sLinkValue;
++				parseXlinkHref(aValueUtf8.getStr(), sLinkValue);
++
++				if (!sLinkValue.empty())
++					writeBinaryData(xAttrs, xUnoAttrs, xElem, basegfx::B2DRange(x,y,x+width,y+height), sLinkValue);
++                break;
++            }
++            case XML_TEXT:
++            {
++                // collect text from all TEXT_NODE children into sText
++                rtl::OUStringBuffer sText;
++                visitChildren(boost::bind(
++                                  (rtl::OUStringBuffer& (rtl::OUStringBuffer::*)(const sal_Unicode* str))&rtl::OUStringBuffer::append,
++                                  boost::ref(sText),
++                                  boost::bind(&xml::dom::XNode::getNodeValue,
++                                              _1)),
++                              xElem,
++                              xml::dom::NodeType_TEXT_NODE);
++
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double x=0.0,y=0.0,width=0.0,height=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X:
++                            x = convLength(sAttributeValue);
++                            break;
++                        case XML_Y:
++                            y = convLength(sAttributeValue);
++                            break;
++                        case XML_WIDTH:
++                            width = convLength(sAttributeValue);
++                            break;
++                        case XML_HEIGHT:
++                            height = convLength(sAttributeValue);
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                // actually export text
++                xAttrs->Clear();
++
++                // extract basic transformations out of CTM
++                basegfx::B2DTuple aScale, aTranslate;
++                double fRotate, fShearX;
++                ::rtl::OUString sTransformValue;
++                if (maCurrState.maCTM.decompose(aScale, aTranslate, fRotate, fShearX))
++                {
++                    rtl::OUString sTransform;
++                    x += aTranslate.getX();
++                    y += aTranslate.getY();
++
++                    sTransform += 
++                        USTR("scale(") + 
++                        rtl::OUString::valueOf(aScale.getX()) + 
++                        USTR(", ") +
++                        rtl::OUString::valueOf(aScale.getX()) + 
++                        USTR(")");
++
++                    if( fRotate )
++                        sTransform += USTR(" rotate(") + rtl::OUString::valueOf(fRotate*180.0/M_PI) + USTR(")");
++
++                    if( fShearX )
++                        sTransform += USTR(" skewX(") + rtl::OUString::valueOf(fShearX*180.0/M_PI) + USTR(")");
++                }
++
++                xAttrs->AddAttribute( USTR( "svg:x" ), rtl::OUString::valueOf(x/100.0)+USTR("mm"));
++                xAttrs->AddAttribute( USTR( "svg:y" ), rtl::OUString::valueOf(y/100.0)+USTR("mm"));
++                //xAttrs->AddAttribute( USTR( "svg:width" ), rtl::OUString::valueOf(width/100.0)+USTR("mm"));
++                //xAttrs->AddAttribute( USTR( "svg:height" ), rtl::OUString::valueOf(height/100.0)+USTR("mm"));
++                xAttrs->AddAttribute( USTR( "draw:style-name" ), USTR("svggraphicstyle")+sStyleId );
++
++                mxDocumentHandler->startElement(USTR("draw:frame"),xUnoAttrs);
++
++                xAttrs->Clear();
++                mxDocumentHandler->startElement(USTR("draw:text-box"),xUnoAttrs);
++                // TODO: put text style in here
++                mxDocumentHandler->startElement(USTR("text:p"),xUnoAttrs);
++                mxDocumentHandler->characters(sText.makeStringAndClear());
++                mxDocumentHandler->endElement(USTR("text:p"));
++                mxDocumentHandler->endElement(USTR("draw:text-box"));
++                mxDocumentHandler->endElement(USTR("draw:frame"));
++                break;
++            }
++        }
++    }
++
++    void push()
++    {
++        maParentStates.push_back(maCurrState);
++    }
++
++    void pop()
++    {
++        maParentStates.pop_back();
++    }
++	
++	void writeBinaryData( rtl::Reference<SvXMLAttributeList>&           xAttrs,
++						const uno::Reference<xml::sax::XAttributeList>& xUnoAttrs,
++						const uno::Reference<xml::dom::XElement>&       /* xElem */,
++						const basegfx::B2DRange&                        rShapeBounds,
++						const std::string&                              data)
++	{
++		xAttrs->Clear();
++        xAttrs->AddAttribute( USTR( "svg:x" ), rtl::OUString::valueOf(rShapeBounds.getMinX()/100.0)+USTR("mm"));
++        xAttrs->AddAttribute( USTR( "svg:y" ), rtl::OUString::valueOf(rShapeBounds.getMinY()/100.0)+USTR("mm"));
++        xAttrs->AddAttribute( USTR( "svg:width" ), rtl::OUString::valueOf(rShapeBounds.getWidth()/100.0)+USTR("mm"));
++        xAttrs->AddAttribute( USTR( "svg:height" ), rtl::OUString::valueOf(rShapeBounds.getHeight()/100.0)+USTR("mm"));
++
++		mxDocumentHandler->startElement(USTR("draw:frame"),xUnoAttrs);
++
++		xAttrs->Clear();
++		mxDocumentHandler->startElement(USTR("draw:image"),xUnoAttrs);
++
++		mxDocumentHandler->startElement(USTR("office:binary-data"),xUnoAttrs);
++
++		mxDocumentHandler->characters(rtl::OUString::createFromAscii(data.c_str()));
++
++        mxDocumentHandler->endElement(USTR("office:binary-data"));
++
++        mxDocumentHandler->endElement(USTR("draw:image"));
++
++        mxDocumentHandler->endElement(USTR("draw:frame"));
++	}
++						  
++
++	void writeTransformAttribute(const basegfx::B2DHomMatrix rMatrix, rtl::Reference<SvXMLAttributeList>& xAttrs)
++	{
++		basegfx::B2DTuple rScale, rTranslate;
++		double rRotate, rShearX;
++		::rtl::OUString sTransformValue;
++		if (!rMatrix.decompose(rScale, rTranslate, rRotate, rShearX))
++			return;
++		if (rScale.getX() != 1.0 || rScale.getY() != 1.0)
++			sTransformValue += USTR("scale(")+::rtl::OUString::valueOf(rScale.getX())+USTR(" ")
++			     +::rtl::OUString::valueOf(rScale.getY())+USTR(") ");
++		if (rTranslate.getX() != 0.0f || rTranslate.getY() != 0.0f)
++			sTransformValue += USTR("translate(")+::rtl::OUString::valueOf(rTranslate.getX()/100.0f)+USTR("mm ")
++			     +::rtl::OUString::valueOf(rTranslate.getY()/100.0f)+USTR("mm) ");
++		if (rRotate != 0.0f)
++			sTransformValue += USTR("rotate(")+::rtl::OUString::valueOf(rRotate)+USTR(") ");
++
++		if (rShearX != 0.0f)
++			sTransformValue += USTR("skewX(")+::rtl::OUString::valueOf(rShearX)+USTR(") ");
++		if (!sTransformValue.getLength())
++			return;
++		xAttrs->AddAttribute( USTR("draw:transform"), sTransformValue);
++	}
++
++    void writeEllipseShape( rtl::Reference<SvXMLAttributeList>&          xAttrs,
++                         const uno::Reference<xml::sax::XAttributeList>& xUnoAttrs,
++                         const uno::Reference<xml::dom::XElement>&       xElem,
++                         const rtl::OUString&                            rStyleId,
++                         const basegfx::B2DEllipse&                      rEllipse)
++    {
++        State aState = maCurrState;
++        rtl::OUString aStyleId(rStyleId);
++		
++		xAttrs->Clear();
++
++        OSL_TRACE("the CTM is now #2: %f %f %f %f %f %f", 
++                  maCurrState.maCTM.get(0,0),
++                  maCurrState.maCTM.get(0,1),
++                  maCurrState.maCTM.get(0,2),
++                  maCurrState.maCTM.get(1,0),
++                  maCurrState.maCTM.get(1,1),
++                  maCurrState.maCTM.get(1,2));
++        
++		basegfx::B2DPolygon aPoly = basegfx::tools::createPolygonFromEllipse(rEllipse.getB2DEllipseCenter(),
++			rEllipse.getB2DEllipseRadius().getX(), rEllipse.getB2DEllipseRadius().getY());
++		writePathShape(xAttrs, xUnoAttrs, xElem, rStyleId, basegfx::B2DPolyPolygon(aPoly));
++		
++    }
++
++    void writePathShape( rtl::Reference<SvXMLAttributeList>&             xAttrs,
++                         const uno::Reference<xml::sax::XAttributeList>& xUnoAttrs,
++                         const uno::Reference<xml::dom::XElement>&       xElem,
++                         const rtl::OUString&                            rStyleId,
++                         const basegfx::B2DPolyPolygon&                  rPoly )
++    {
++        // we might need to split up polypolygon into multiple path
++        // shapes (e.g. when emulating line stroking)
++        std::vector<basegfx::B2DPolyPolygon> aPolys(1,rPoly);
++        State aState = maCurrState;
++        rtl::OUString aStyleId(rStyleId);
++		
++		xAttrs->Clear();
++
++        OSL_TRACE("the CTM is now #2: %f %f %f %f %f %f", 
++                  maCurrState.maCTM.get(0,0),
++                  maCurrState.maCTM.get(0,1),
++                  maCurrState.maCTM.get(0,2),
++                  maCurrState.maCTM.get(1,0),
++                  maCurrState.maCTM.get(1,1),
++                  maCurrState.maCTM.get(1,2));
++        
++		if( aState.maDashArray.size() )
++        {
++            // ODF dashing is severly borked - generate filled polygon instead
++            aPolys.clear();
++            for( sal_uInt32 i=0; i<rPoly.count(); ++i )
++            {                
++                aPolys.push_back(
++                    basegfx::tools::createAreaGeometryForPolygon(
++                        rPoly.getB2DPolygon(i),
++                        aState.mnStrokeWidth/2.0,
++                        aState.meLineJoin));
++                // TODO(F2): line ends
++            }
++
++            sal_Int32 nDummyIndex(0);
++            aStyleId = xElem->getAttribute(
++                USTR("internal-style-ref")).getToken(1,'$',nDummyIndex);
++            StateMap::iterator pAlternateState=mrStateMap.find(aStyleId.toInt32());
++            aState = pAlternateState != mrStateMap.end() ? pAlternateState->second : maParentStates.back();
++            OSL_ENSURE( pAlternateState == mrStateMap.end(),
++                        "Doh - where's my alternate style entry?!" );
++        }
++
++        // TODO(F2): separate out shear, rotate etc.
++        // apply transformation to polygon, to keep draw
++        // import in 100th mm
++        std::for_each(aPolys.begin(),aPolys.end(),
++                      boost::bind(&basegfx::B2DPolyPolygon::transform,
++                                  _1,boost::cref(aState.maCTM)));
++
++        for( sal_uInt32 i=0; i<aPolys.size(); ++i )
++        {
++            fillShapeProperties(xAttrs,
++                                xElem,
++                                aPolys[i].areControlPointsUsed() ?
++                                basegfx::tools::getRange(
++                                    basegfx::tools::adaptiveSubdivideByAngle(aPolys[i])) :
++                                basegfx::tools::getRange(aPolys[i]),
++                                USTR("svggraphicstyle")+aStyleId);
++            
++            xAttrs->AddAttribute( USTR( "svg:d" ), basegfx::tools::exportToSvgD(
++                aPolys[i],
++                false,   // no relative coords. causes rounding errors      
++                false )); // no quad bezier detection. crashes older versions.   
++            mxDocumentHandler->startElement(USTR("draw:path"), 
++                                            xUnoAttrs);
++            mxDocumentHandler->endElement(USTR("draw:path"));
++        }
++    }
++
++    void fillShapeProperties( rtl::Reference<SvXMLAttributeList>&       xAttrs, 
++                              const uno::Reference<xml::dom::XElement>& /* xElem */,
++                              const basegfx::B2DRange&                  rShapeBounds,
++                              const rtl::OUString&                      rStyleName )
++    {
++        xAttrs->AddAttribute( USTR( "draw:z-index" ), rtl::OUString::valueOf( mnShapeNum++ ));
++        xAttrs->AddAttribute( USTR( "draw:style-name" ), rStyleName);
++        xAttrs->AddAttribute( USTR( "svg:width" ), rtl::OUString::valueOf(rShapeBounds.getWidth()/100.0)+USTR("mm"));
++        xAttrs->AddAttribute( USTR( "svg:height" ), rtl::OUString::valueOf(rShapeBounds.getHeight()/100.0)+USTR("mm"));
++
++        // OOo expects the viewbox to be in 100th of mm
++        xAttrs->AddAttribute( USTR( "svg:viewBox" ), 
++            USTR("0 0 ")
++            + rtl::OUString::valueOf( 
++                basegfx::fround(rShapeBounds.getWidth()) )
++            + USTR(" ")
++            + rtl::OUString::valueOf(
++                basegfx::fround(rShapeBounds.getHeight()) ));
++
++        // TODO(F1): decompose transformation in calling code, and use
++        // transform attribute here
++		// writeTranslate(maCurrState.maCTM, xAttrs);
++        xAttrs->AddAttribute( USTR( "svg:x" ), rtl::OUString::valueOf(rShapeBounds.getMinX()/100.0)+USTR("mm"));
++        xAttrs->AddAttribute( USTR( "svg:y" ), rtl::OUString::valueOf(rShapeBounds.getMinY()/100.0)+USTR("mm"));
++    }
++
++    State                                      maCurrState;
++    std::vector<State>                         maParentStates;
++    StatePool&                                 mrStates;
++    StateMap&                                  mrStateMap;
++    uno::Reference<xml::sax::XDocumentHandler> mxDocumentHandler;
++    sal_Int32                                  mnShapeNum;
++};
++
++/// Write out shapes from DOM tree
++static void writeShapes( StatePool&                                        rStatePool,
++                         StateMap&                                         rStateMap,
++                         const uno::Reference<xml::dom::XElement>          xElem,
++                         const uno::Reference<xml::sax::XDocumentHandler>& xDocHdl )
++{
++    ShapeWritingVisitor aVisitor(rStatePool,rStateMap,xDocHdl);
++    visitElements(aVisitor, xElem);
++}
++
++#ifdef VERBOSE
++struct DumpingVisitor
++{
++    void operator()( const uno::Reference<xml::dom::XElement>& xElem )
++    {
++        OSL_TRACE("name: %s", 
++                  rtl::OUStringToOString(
++                      xElem->getTagName(),
++                      RTL_TEXTENCODING_UTF8 ).getStr());
++    }
++
++    void operator()( const uno::Reference<xml::dom::XElement>&      xElem,
++                     const uno::Reference<xml::dom::XNamedNodeMap>& xAttributes )
++    {
++        OSL_TRACE("name: %s", 
++                  rtl::OUStringToOString(
++                      xElem->getTagName(),
++                      RTL_TEXTENCODING_UTF8 ).getStr());
++        const sal_Int32 nNumAttrs( xAttributes->getLength() );
++        for( sal_Int32 i=0; i<nNumAttrs; ++i )
++        {
++            OSL_TRACE(" %s=%s", 
++                      rtl::OUStringToOString(
++                          xAttributes->item(i)->getNodeName(),
++                          RTL_TEXTENCODING_UTF8 ).getStr(),
++                      rtl::OUStringToOString(
++                          xAttributes->item(i)->getNodeValue(),
++                          RTL_TEXTENCODING_UTF8 ).getStr());
++        }
++    }
++
++    void push() {}
++    void pop()  {}
++};
++
++static void dumpTree( const uno::Reference<xml::dom::XElement> xElem )
++{
++    DumpingVisitor aVisitor;
++    visitElements(aVisitor, xElem);
++}
++#endif
++
++} // namespace 
++
++
++SVGReader::SVGReader(const uno::Reference<lang::XMultiServiceFactory>&     xServiceFactory,
++                     const uno::Reference<io::XInputStream>&           xInputStream, 
++                     const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler) :
++	m_xServiceFactory( xServiceFactory ),
++	m_xInputStream( xInputStream ),
++	m_xDocumentHandler( xDocumentHandler )
++{
++}
++
++sal_Bool SVGReader::parseAndConvert()
++{
++	uno::Reference<xml::dom::XDocumentBuilder> xDomBuilder( 
++        m_xServiceFactory->createInstance( 
++            rtl::OUString::createFromAscii("com.sun.star.xml.dom.DocumentBuilder")), uno::UNO_QUERY );
++
++    uno::Reference<xml::dom::XDocument> xDom(
++        xDomBuilder->parse(m_xInputStream),
++        uno::UNO_QUERY_THROW );
++
++    uno::Reference<xml::dom::XElement> xDocElem( xDom->getDocumentElement(),
++                                                 uno::UNO_QUERY_THROW );
++
++    /////////////////////////////////////////////////////////////////
++    // doc boilerplate    
++    /////////////////////////////////////////////////////////////////
++
++    m_xDocumentHandler->startDocument();
++    
++    // get the document dimensions
++
++    // if the "width" and "height" attributes are missing, inkscape fakes
++    // A4 portrait for. Let's do the same.
++	if (!xDocElem->hasAttribute(USTR("width")))
++		xDocElem->setAttribute(USTR("width"), USTR("210mm"));
++	if (!xDocElem->hasAttribute(USTR("height")))
++		xDocElem->setAttribute(USTR("height"), USTR("297mm"));
++		
++    double fViewPortWidth( convLength(xDocElem->getAttribute(USTR("width"))));
++    double fViewPortHeight( convLength(xDocElem->getAttribute(USTR("height"))));
++
++    // document prolog
++    rtl::Reference<SvXMLAttributeList> xAttrs( new SvXMLAttributeList() );
++    uno::Reference<xml::sax::XAttributeList> xUnoAttrs( xAttrs.get() );
++	
++    xAttrs->AddAttribute( USTR( "xmlns:office" ), USTR( OASIS_STR "office:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:style" ), USTR( OASIS_STR "style:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:text" ), USTR( OASIS_STR "text:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:svg" ), USTR( OASIS_STR "svg-compatible:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:table" ), USTR( OASIS_STR "table:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:draw" ), USTR( OASIS_STR "drawing:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:fo" ), USTR( OASIS_STR "xsl-fo-compatible:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:xlink" ), USTR( "http://www.w3.org/1999/xlink" ));
++    xAttrs->AddAttribute( USTR( "xmlns:dc" ), USTR( "http://purl.org/dc/elements/1.1/" ));
++    xAttrs->AddAttribute( USTR( "xmlns:number" ), USTR( OASIS_STR "datastyle:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:presentation" ), USTR( OASIS_STR "presentation:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:math" ), USTR( "http://www.w3.org/1998/Math/MathML" ));
++    xAttrs->AddAttribute( USTR( "xmlns:form" ), USTR( OASIS_STR "form:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:script" ), USTR( OASIS_STR "script:1.0" ));
++    xAttrs->AddAttribute( USTR( "xmlns:dom" ), USTR( "http://www.w3.org/2001/xml-events" ));
++    xAttrs->AddAttribute( USTR( "xmlns:xforms" ), USTR( "http://www.w3.org/2002/xforms" ));
++    xAttrs->AddAttribute( USTR( "xmlns:xsd" ), USTR( "http://www.w3.org/2001/XMLSchema" ));
++    xAttrs->AddAttribute( USTR( "xmlns:xsi" ), USTR( "http://www.w3.org/2001/XMLSchema-instance" ));
++    xAttrs->AddAttribute( USTR( "office:version" ), USTR( "1.0" ));
++	xAttrs->AddAttribute( USTR( "office:mimetype" ), USTR( "application/vnd.oasis.opendocument.graphics" ));
++
++    m_xDocumentHandler->startElement( USTR("office:document"), xUnoAttrs );
++
++    xAttrs->Clear();
++
++	m_xDocumentHandler->startElement( USTR("office:settings"), xUnoAttrs);
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "ooo:view-settings" ));
++	m_xDocumentHandler->startElement( USTR("config:config-item-set"), xUnoAttrs);
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaTop" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	m_xDocumentHandler->characters( USTR( "0" ));
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaLeft" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	m_xDocumentHandler->characters( USTR( "0" ));
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaWidth" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	sal_Int64 iWidth = sal_Int64(fViewPortWidth);
++	m_xDocumentHandler->characters( ::rtl::OUString::valueOf(iWidth) );
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	xAttrs->Clear();
++	
++	xAttrs->AddAttribute( USTR( "config:name" ), USTR( "VisibleAreaHeight" ));
++	xAttrs->AddAttribute( USTR( "config:type" ), USTR( "int" ));
++	m_xDocumentHandler->startElement( USTR( "config:config-item" ), xUnoAttrs);
++
++	sal_Int64 iHeight = sal_Int64(fViewPortHeight);
++	m_xDocumentHandler->characters( ::rtl::OUString::valueOf(iHeight) );
++
++	m_xDocumentHandler->endElement( USTR( "config:config-item" ));
++	
++	m_xDocumentHandler->endElement( USTR( "config:config-item-set" ));
++	
++	m_xDocumentHandler->endElement( USTR( "office:settings" ));
++
++	xAttrs->Clear();
++	
++    m_xDocumentHandler->startElement( USTR("office:automatic-styles"), 
++                                      xUnoAttrs );
++ 
++    xAttrs->AddAttribute( USTR( "style:name" ), USTR("pagelayout1"));
++    m_xDocumentHandler->startElement( USTR("style:page-layout"), 
++                                      xUnoAttrs );
++    // TODO(Q3): this is super-ugly. In-place container come to mind.
++    xAttrs->Clear();
++
++    // make page viewport-width times viewport-height mm large - add
++    // 5% border at every side
++    xAttrs->AddAttribute( USTR( "fo:margin-top" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:margin-bottom" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:margin-left" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:margin-right" ), USTR("0mm"));
++    xAttrs->AddAttribute( USTR( "fo:page-width" ), rtl::OUString::valueOf(fViewPortWidth/100.0)+USTR("mm"));
++    xAttrs->AddAttribute( USTR( "fo:page-height" ), rtl::OUString::valueOf(fViewPortHeight/100.0)+USTR("mm"));
++    xAttrs->AddAttribute( USTR( "style:print-orientation" ), 
++        fViewPortWidth > fViewPortHeight ? 
++        USTR("landscape") :
++        USTR("portrait"));
++    m_xDocumentHandler->startElement( USTR("style:page-layout-properties"), 
++                                      xUnoAttrs );
++    m_xDocumentHandler->endElement( USTR("style:page-layout-properties") );
++    m_xDocumentHandler->endElement( USTR("style:page-layout") );
++
++    xAttrs->Clear();
++    xAttrs->AddAttribute( USTR( "style:name" ), USTR("pagestyle1"));
++    xAttrs->AddAttribute( USTR( "style:family" ), USTR("drawing-page"));
++    m_xDocumentHandler->startElement( USTR("style:style"), 
++                                      xUnoAttrs );
++
++    xAttrs->Clear();
++    xAttrs->AddAttribute( USTR( "draw:background-size" ), USTR("border"));
++    xAttrs->AddAttribute( USTR( "draw:fill" ), USTR("none"));
++    m_xDocumentHandler->startElement( USTR("style:drawing-page-properties"), 
++                                      xUnoAttrs );
++    m_xDocumentHandler->endElement( USTR("style:drawing-page-properties") );
++    m_xDocumentHandler->endElement( USTR("style:style") );
++
++    StatePool aStatePool;
++    StateMap  aStateMap;
++    annotateStyles(aStatePool,aStateMap,
++                   xDocElem,m_xDocumentHandler);
++
++#ifdef VERBOSE
++    dumpTree(xDocElem);
++#endif
++
++    m_xDocumentHandler->endElement( USTR("office:automatic-styles") );
++
++    ////////////////////////////////////////////////////////////////////
++
++    xAttrs->Clear();
++    m_xDocumentHandler->startElement( USTR("office:styles"), 
++                                      xUnoAttrs);
++    m_xDocumentHandler->endElement( USTR("office:styles") );
++
++    ////////////////////////////////////////////////////////////////////
++
++    m_xDocumentHandler->startElement( USTR("office:master-styles"), 
++                                      xUnoAttrs );
++    xAttrs->Clear();
++    xAttrs->AddAttribute( USTR( "style:name" ), USTR("Default"));
++    xAttrs->AddAttribute( USTR( "style:page-layout-name" ), USTR("pagelayout1"));
++    xAttrs->AddAttribute( USTR( "draw:style-name" ), USTR("pagestyle1"));
++    m_xDocumentHandler->startElement( USTR("style:master-page"), 
++                                      xUnoAttrs );
++    m_xDocumentHandler->endElement( USTR("style:master-page") );
++
++    m_xDocumentHandler->endElement( USTR("office:master-styles") );
++
++    ////////////////////////////////////////////////////////////////////
++
++    xAttrs->Clear();
++    m_xDocumentHandler->startElement( USTR("office:body"), 
++                                      xUnoAttrs );
++    m_xDocumentHandler->startElement( USTR("office:drawing"), 
++                                      xUnoAttrs );
++
++    xAttrs->Clear();
++    xAttrs->AddAttribute( USTR( "draw:master-page-name" ), USTR("Default"));
++    xAttrs->AddAttribute( USTR( "draw:style-name" ), USTR("pagestyle1"));
++    m_xDocumentHandler->startElement(USTR("draw:page"), 
++                                     xUnoAttrs);
++
++    // write out all shapes
++    writeShapes(aStatePool,
++                aStateMap,
++                xDocElem,
++                m_xDocumentHandler);
++
++    m_xDocumentHandler->endElement( USTR("draw:page") );
++    m_xDocumentHandler->endElement( USTR("office:drawing") );
++    m_xDocumentHandler->endElement( USTR("office:body") );
++    m_xDocumentHandler->endElement( USTR("office:document") );
++    m_xDocumentHandler->endDocument();
++
++    return sal_True;
++}
++
++} // namespace svgi
+--- filter/source/svg/svgreader.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/svgreader.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,43 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_SVGREADER_HXX
++#define INCLUDED_SVGREADER_HXX
++
++#include <com/sun/star/uno/XComponentContext.hpp>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#include <com/sun/star/io/XInputStream.hpp>
++
++namespace svgi
++{
++
++class SVGReader
++{
++    const ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >      m_xServiceFactory;    
++    const ::com::sun::star::uno::Reference< com::sun::star::io::XInputStream >              m_xInputStream;
++	const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >  m_xDocumentHandler;
++
++public:
++    SVGReader( const com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>&           xServiceFactory,
++               const com::sun::star::uno::Reference< com::sun::star::io::XInputStream >&               xInputStream,
++               const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >& xDocumentHandler );
++
++	sal_Bool parseAndConvert();
++};
++
++} // namespace svgi
++
++#endif
+--- filter/source/svg/test/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/test/makefile.mk	2008-05-23 11:23:50.000000000 +0200
+@@ -0,0 +1,123 @@
++#*************************************************************************
++#
++#    OpenOffice.org - a multi-platform office productivity suite
++#
++#    Author:
++#      Fridrich Strba  <fridrich.strba@bluewin.ch>
++#      Thorsten Behrens <tbehrens@novell.com>	   	
++#
++#      Copyright (C) 2008, Novell Inc.
++#      Parts copyright 2005 by Sun Microsystems, Inc.
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#*************************************************************************
++
++PRJ=..$/..$/..
++PRJNAME=filter
++TARGET=tests
++TARGETTYPE=CUI
++ENABLE_EXCEPTIONS=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE: settings.mk
++
++# --- unit tests ---------------------------------------------------
++
++SHL1OBJS=  \
++	$(SLO)$/parsertest.obj
++
++SHL1TARGET= tests
++SHL1LIBS= $(SLB)$/svgfilter.lib
++SHL1STDLIBS= 	        \
++	$(BASEGFXLIB)		\
++	$(SVXLIB)			\
++	$(XMLOFFLIB)		\
++	$(BASEGFXLIB)		\
++	$(VCLLIB)			\
++	$(UNOTOOLSLIB)		\
++	$(TOOLSLIB)			\
++	$(COMPHELPERLIB)	\
++	$(CPPUHELPERLIB)	\
++	$(CPPULIB)			\
++	$(SALLIB)			\
++	$(LIBXML)			\
++	$(CPPUNITLIB)
++
++# --- svg2xml binary ------------------------------------------------------
++
++TARGET2=svg2odf
++
++APP1TARGET=$(TARGET2)
++APP1LIBSALCPPRT=
++APP1OBJS= \
++	$(SLO)$/odfserializer.obj	\
++    $(SLO)$/svg2odf.obj
++
++APP1LIBS=\
++	$(SLB)$/svgfilter.lib
++
++APP1STDLIBS=\
++	$(BASEGFXLIB)		\
++	$(SVXLIB)			\
++	$(XMLOFFLIB)		\
++	$(BASEGFXLIB)		\
++	$(VCLLIB)			\
++	$(UNOTOOLSLIB)		\
++	$(TOOLSLIB)			\
++	$(COMPHELPERLIB)	\
++	$(CPPUHELPERLIB)	\
++	$(CPPULIB)			\
++	$(SALLIB)			\
++	$(LIBXML)
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE : target.mk
++.INCLUDE : _cppunit.mk 
++
++# --- Special ------------------------------------------------------
++
++TESTFILES=\
++	anarchist.svg \
++	andorra.svg \
++	butterfly.svg \
++	daisies.svg \
++	ellipticarcs.svg \
++	firewall_denco_01.svg \
++	mediatrice.svg \
++	mouse_the_structorr.svg \
++	network_could_nicolas_cl.svg \
++	otto_01.svg \
++	roundingerrors.svg \
++	test.svg \
++	tiger.svg
++
++$(MISC)$/%_svgi_unittest_succeeded : $(BIN)$/svg2odf
++    rm -f $(MISC)$/$(@:s/_succeeded/.xml/:f)
++	$(BIN)$/svg2odf $(@:s/_svgi_unittest_succeeded/.svg/:f) $(MISC)$/$(@:s/_succeeded/.xml/:f) $(BIN)$/svgi_unittest_test.ini
++	$(TOUCH) $@
++
++.IF "$(GUI)" == "WNT"
++SAXPARSERLIB=$(SOLARBINDIR)$/sax.uno$(DLLPOST)
++UNOXMLLIB=$(SOLARBINDIR)$/$(DLLPRE)unoxml$(OFFICEUPD)$(DLLPOSTFIX)$(DLLPOST)
++.ELSE
++SAXPARSERLIB=$(SOLARLIBDIR)$/sax.uno$(DLLPOST)
++UNOXMLLIB=$(SOLARLIBDIR)$/$(DLLPRE)unoxml$(OFFICEUPD)$(DLLPOSTFIX)$(DLLPOST)
++.ENDIF
++
++$(BIN)$/unittestservices.rdb : makefile.mk $(SAXPARSERLIB) $(UNOXMLLIB)
++    rm -f $@
++	$(REGCOMP) -register -r $@ -c $(SAXPARSERLIB)
++	$(REGCOMP) -register -r $@ -c $(UNOXMLLIB)
++
++$(BIN)$/svgi_unittest_test.ini : makefile.mk
++	rm -f $@
++	@echo UNO_SERVICES=$(BIN)$/unittestservices.rdb > $@
++	@echo UNO_TYPES=$(UNOUCRRDB:s/\/\\/) >> $@
++
++#ALLTAR : $(BIN)$/svgi_unittest_test.ini \
++#		 $(BIN)$/unittestservices.rdb \
++#         $(foreach,i,$(TESTFILES:s/.svg/_svgi_unittest_succeeded/:f) $(MISC)$/$i)
+diff -urN /tmp/svgfilter/filter/source/svg/test/odfserializer.cxx /builds/oobuild/ooo-build-2.4/build/current/filter/source/svg/test/odfserializer.cxx
+--- filter/source/svg/test/odfserializer.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/test/odfserializer.cxx	2008-05-23 10:23:53.000000000 +0200
+@@ -0,0 +1,140 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *      Parts copyright 2005 by Sun Microsystems, Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include "odfserializer.hxx"
++#include <osl/diagnose.h>
++#include <rtl/ustrbuf.hxx>
++#include <cppuhelper/compbase1.hxx>
++#include <cppuhelper/basemutex.hxx>
++#include <com/sun/star/uno/Sequence.hxx>
++#include <boost/noncopyable.hpp>
++
++using namespace ::com::sun::star;
++
++namespace svgi
++{
++
++typedef ::cppu::WeakComponentImplHelper1< 
++    com::sun::star::xml::sax::XDocumentHandler> ODFSerializerBase;
++
++class ODFSerializer : private cppu::BaseMutex,
++                public ODFSerializerBase,
++                boost::noncopyable
++{
++public:
++    explicit ODFSerializer(const uno::Reference<io::XOutputStream>& xOut) :
++        ODFSerializerBase(m_aMutex),
++        m_xOutStream(xOut),
++        m_aLineFeed(1),
++        m_aBuf()
++    {
++        m_aLineFeed[0] = '\n';
++    }
++
++    virtual void SAL_CALL startDocument(  ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL endDocument(  ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL startElement( const ::rtl::OUString& aName, const uno::Reference< xml::sax::XAttributeList >& xAttribs ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL endElement( const ::rtl::OUString& aName ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL characters( const ::rtl::OUString& aChars ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL ignorableWhitespace( const ::rtl::OUString& aWhitespaces ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL processingInstruction( const ::rtl::OUString& aTarget, const ::rtl::OUString& aData ) throw (xml::sax::SAXException, uno::RuntimeException);
++    virtual void SAL_CALL setDocumentLocator( const uno::Reference< xml::sax::XLocator >& xLocator ) throw (xml::sax::SAXException, uno::RuntimeException);
++
++private:
++    uno::Reference<io::XOutputStream> m_xOutStream;
++    uno::Sequence<sal_Int8>           m_aLineFeed;
++    uno::Sequence<sal_Int8>           m_aBuf;
++};
++
++void SAL_CALL ODFSerializer::startDocument(  ) throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    OSL_PRECOND(m_xOutStream.is(), "ODFSerializer(): invalid output stream");
++
++    rtl::OUStringBuffer aElement;
++    aElement.appendAscii("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
++    characters(aElement.makeStringAndClear());
++}
++
++void SAL_CALL ODFSerializer::endDocument() throw (xml::sax::SAXException, uno::RuntimeException)
++{}
++
++void SAL_CALL ODFSerializer::startElement( const ::rtl::OUString& aName, 
++                                           const uno::Reference< xml::sax::XAttributeList >& xAttribs ) throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    rtl::OUStringBuffer aElement;
++    aElement.appendAscii("<");
++    aElement.append(aName);
++    aElement.appendAscii(" ");
++
++    const sal_Int16 nLen=xAttribs->getLength();
++    for( sal_Int16 i=0; i<nLen; ++i )
++    {
++        rtl::OUStringBuffer aAttribute;
++        aElement.append(xAttribs->getNameByIndex(i));
++        aElement.appendAscii("=\"");
++        aElement.append(xAttribs->getValueByIndex(i));
++        aElement.appendAscii("\" ");
++    }
++
++    aElement.appendAscii(">");
++    characters(aElement.makeStringAndClear());
++}
++
++void SAL_CALL ODFSerializer::endElement( const ::rtl::OUString& aName ) throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    rtl::OUStringBuffer aElement;
++    aElement.appendAscii("</");
++    aElement.append(aName);
++    aElement.appendAscii(">");
++    characters(aElement.makeStringAndClear());
++}
++
++void SAL_CALL ODFSerializer::characters( const ::rtl::OUString& aChars ) throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    const rtl::OString aStr = rtl::OUStringToOString(aChars,
++                                                     RTL_TEXTENCODING_UTF8);
++    const sal_Int32 nLen( aStr.getLength() );
++    m_aBuf.realloc( nLen );
++    const sal_Char* pStr = aStr.getStr();
++    std::copy(pStr,pStr+nLen,m_aBuf.getArray());
++
++    m_xOutStream->writeBytes(m_aBuf);
++    // TODO(F1): Make pretty printing configurable
++    m_xOutStream->writeBytes(m_aLineFeed);
++}
++
++void SAL_CALL ODFSerializer::ignorableWhitespace( const ::rtl::OUString& aWhitespaces ) throw (xml::sax::SAXException, uno::RuntimeException)
++{
++    // TODO(F1): Make pretty printing configurable
++    characters(aWhitespaces);
++}
++
++void SAL_CALL ODFSerializer::processingInstruction( const ::rtl::OUString&, 
++                                                    const ::rtl::OUString& ) throw (xml::sax::SAXException, uno::RuntimeException)
++{}
++
++void SAL_CALL ODFSerializer::setDocumentLocator( const uno::Reference< xml::sax::XLocator >& ) throw (xml::sax::SAXException, uno::RuntimeException)
++{}
++
++uno::Reference< xml::sax::XDocumentHandler> createSerializer(const uno::Reference<io::XOutputStream>& xOut )
++{
++    return uno::Reference<xml::sax::XDocumentHandler>(new ODFSerializer(xOut));
++}
++
++}
+diff -urN /tmp/svgfilter/filter/source/svg/test/odfserializer.hxx /builds/oobuild/ooo-build-2.4/build/current/filter/source/svg/test/odfserializer.hxx
+--- filter/source/svg/test/odfserializer.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/test/odfserializer.hxx	2008-05-23 10:23:53.000000000 +0200
+@@ -0,0 +1,31 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *      Parts copyright 2005 by Sun Microsystems, Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_SVG_ODFSERIALIZER_HXX
++#define INCLUDED_SVG_ODFSERIALIZER_HXX
++
++#include <com/sun/star/uno/Reference.hxx>
++#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
++#include <com/sun/star/io/XOutputStream.hpp>
++
++namespace svgi
++{
++    /// Creates a XDocumentHandler that serializes directly to an XOutputStream
++    ::com::sun::star::uno::Reference< com::sun::star::xml::sax::XDocumentHandler>
++        createSerializer(const ::com::sun::star::uno::Reference<com::sun::star::io::XOutputStream>& );
++}
++
++#endif // _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HDL_
+diff -urN /tmp/svgfilter/filter/source/svg/test/parsertest.cxx /builds/oobuild/ooo-build-2.4/build/current/filter/source/svg/test/parsertest.cxx
+--- filter/source/svg/test/parsertest.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/test/parsertest.cxx	2008-05-23 15:52:49.000000000 +0200
+@@ -0,0 +1,210 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include <cppunit/simpleheader.hxx>
++
++#include "../gfxtypes.hxx"
++#include "../parserfragments.hxx"
++
++using namespace svgi;
++
++class TestParser : public CppUnit::TestFixture
++{
++public:
++    void setUp()
++    {}
++
++    void tearDown()
++    {}
++
++    void testParseColor()
++    {
++        ARGBColor aTmp;
++
++        const char* sIn="#102030  ";
++        ARGBColor aOut(16, 32, 48);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming color #112233",
++                                parseColor( sIn, aTmp ) );
++        OSL_TRACE("color is: a:%f r:%f g:%f b:%f", aTmp.a, aTmp.r, aTmp.g, aTmp.b);
++        CPPUNIT_ASSERT_MESSAGE( "Parsing color #112233",
++                                aOut==aTmp );
++
++        sIn="  #321";
++        aOut=ARGBColor(51, 34, 17);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming color #321",
++                                parseColor( sIn, aTmp ) );
++        OSL_TRACE("color is: a:%f r:%f g:%f b:%f", aTmp.a, aTmp.r, aTmp.g, aTmp.b);
++        CPPUNIT_ASSERT_MESSAGE( "Parsing color #321",
++                                aOut==aTmp );
++
++        sIn="rgb(100,200,\t 50)";
++        aOut=ARGBColor(100, 200, 50);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming color rgb(100,200,50)",
++                                parseColor( sIn, aTmp ) );
++        OSL_TRACE("color is: a:%f r:%f g:%f b:%f", aTmp.a, aTmp.r, aTmp.g, aTmp.b);
++        CPPUNIT_ASSERT_MESSAGE( "Parsing color rgb(100,200,50)",
++                                aOut==aTmp );
++
++        sIn="rgb(0.1, \t0.2,0.9)";
++        aOut=ARGBColor(0.1, 0.2, 0.9);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming color rgb(0.1,0.2,0.9)",
++                                parseColor( sIn, aTmp ) );
++        OSL_TRACE("color is: a:%f r:%f g:%f b:%f", aTmp.a, aTmp.r, aTmp.g, aTmp.b);
++        CPPUNIT_ASSERT_MESSAGE( "Parsing color rgb(0.1,0.2,0.9)",
++                                aOut==aTmp );
++
++        sIn=" burlywood ";
++        aOut=ARGBColor(222,184,135);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming color burlywood",
++                                parseColor( sIn, aTmp ) );
++        OSL_TRACE("color is: a:%f r:%f g:%f b:%f", aTmp.a, aTmp.r, aTmp.g, aTmp.b);
++        CPPUNIT_ASSERT_MESSAGE( "Parsing color burlywood",
++                                aOut==aTmp );
++    }
++
++    void testParseOpacity()
++    {
++        ARGBColor aTmp;
++
++        const char* sIn=" 0.123  ";
++        ARGBColor aOut(0.123, 0.0, 0.0, 0.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming opacity 0.123",
++                                parseOpacity( sIn, aTmp ) );
++        OSL_TRACE("color is: a:%f r:%f g:%f b:%f", aTmp.a, aTmp.r, aTmp.g, aTmp.b);
++        CPPUNIT_ASSERT_MESSAGE( "Parsing opacity 0.123",
++                                aOut==aTmp );
++    }
++
++    void testParseTransform()
++    {
++        basegfx::B2DHomMatrix aOut;
++
++        const char* sIn=" none  ";
++        basegfx::B2DHomMatrix aTmp;
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation none",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation none",
++                                aOut==aTmp );
++
++        sIn=" scale( 10 )  ";
++        aOut.identity();
++        aOut.scale(10.0,10.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation scale(10)",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation scale(10)",
++                                aOut==aTmp );
++
++        sIn=" scale( 10 20.12 )  ";
++        aOut.identity();
++        aOut.scale(10.0,20.12);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation scale(10 20.12)",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation scale(10 20.12)",
++                                aOut==aTmp );
++
++        sIn="matrix( 1,2 3,4,5 6 )";
++        aOut.identity();
++        aOut.set(0,0,1.0); aOut.set(1,0,2.0); aOut.set(0,1,3.0); aOut.set(1,1,4.0); aOut.set(0,2,5.0); aOut.set(1,2,6.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation matrix(1,2,3,4,5,6)",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation matrix(1,2,3,4,5,6)",
++                                aOut==aTmp );
++
++        sIn="matrix( 1 0 0 1 -10 -10 ) translate(10) scale(10), rotate(90)";
++        aOut.identity();
++        aOut.set(0,0,0.0); aOut.set(1,0,10.0); aOut.set(0,1,-10.0); aOut.set(1,1,0.0); aOut.set(0,2,0.0); aOut.set(1,2,0.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation matrix(1,2,3,4,5,6)",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation matrix(1,2,3,4,5,6)",
++                                aOut==aTmp );
++
++        sIn="skewX(45)";
++        aOut.identity();
++        aOut.set(0,0,1.0); aOut.set(1,0,1.0); aOut.set(0,1,0.0); aOut.set(1,1,1.0); aOut.set(0,2,0.0); aOut.set(1,2,0.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation skewX(45)",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation skewX(45)",
++                                aOut==aTmp );
++
++        sIn="skewY(45)";
++        aOut.identity();
++        aOut.set(0,0,1.0); aOut.set(1,0,0.0); aOut.set(0,1,1.0); aOut.set(1,1,1.0); aOut.set(0,2,0.0); aOut.set(1,2,0.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming transformation skewY(45)",
++                                parseTransform( sIn, aTmp ) );
++        OSL_TRACE("transformation is: m00:%f m01:%f m02:%f m10:%f m11:%f m12:%f", 
++                  aTmp.get(0,0), aTmp.get(0,1), aTmp.get(0,2), aTmp.get(1,0), aTmp.get(1,1), aTmp.get(1,2) );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing transformation skewY(45)",
++                                aOut==aTmp );
++    }
++
++    void testParseViewBox()
++    {
++        basegfx::B2DRange aTmp;
++
++        const char* sIn=" 10 20, 30.5,5  ";
++        basegfx::B2DRange aOut(10,20,40.5,25);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming 10,20,30.5,5",
++                                parseViewBox( sIn, aTmp ) );
++        OSL_TRACE("viewbox is: x1:%f y1:%f x2:%f y2:%f", aTmp.getMinX(), aTmp.getMinY(), aTmp.getMaxX(), aTmp.getMaxY());
++        CPPUNIT_ASSERT_MESSAGE( "Parsing 10,20,30.5,5",
++                                aOut==aTmp );
++    }
++
++    void testParseDashArray()
++    {
++        std::vector<double> aTmp;
++
++        const char* sIn=" 10,20, -10.00  ";
++        std::vector<double> aOut; aOut.push_back(10.0); aOut.push_back(20.0); aOut.push_back(-10.0);
++        CPPUNIT_ASSERT_MESSAGE( "Consuming 10,20,-10.00",
++                                parseDashArray( sIn, aTmp ) );
++        OSL_TRACE("dash array is: len %d, %f %f %f", aTmp.size(), aTmp[0], aTmp[1], aTmp[2] );
++        CPPUNIT_ASSERT_MESSAGE( "Parsing 10,20,-10.00",
++                                aOut==aTmp );
++    }
++
++    CPPUNIT_TEST_SUITE(TestParser);
++    CPPUNIT_TEST(testParseColor);
++    CPPUNIT_TEST(testParseOpacity);
++    CPPUNIT_TEST(testParseTransform);
++    CPPUNIT_TEST(testParseViewBox);
++    CPPUNIT_TEST(testParseDashArray);
++    // TODO: CPPUNIT_TEST(testParseXlinkHref);
++    CPPUNIT_TEST_SUITE_END();
++};
++
++// -----------------------------------------------------------------------------
++
++CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(TestParser, "test svg parser fragments");
++
++// this macro creates an empty function, which will called by the RegisterAllFunctions()
++// to let the user the possibility to also register some functions by hand.
++NOADDITIONAL;
++
+diff -urN /tmp/svgfilter/filter/source/svg/test/svg2odf.cxx /builds/oobuild/ooo-build-2.4/build/current/filter/source/svg/test/svg2odf.cxx
+--- filter/source/svg/test/svg2odf.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/test/svg2odf.cxx	2008-05-23 11:23:07.000000000 +0200
+@@ -0,0 +1,124 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *      Parts copyright 2005 by Sun Microsystems, Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include "../svgreader.hxx" 
++#include "odfserializer.hxx" 
++
++#include <sal/main.h>
++#include <osl/file.hxx>
++#include <osl/process.h>
++#include <rtl/bootstrap.hxx>
++
++#include <cppuhelper/implbase1.hxx>
++#include <cppuhelper/bootstrap.hxx>
++#include <cppuhelper/servicefactory.hxx>
++#include <comphelper/processfactory.hxx>
++#include <comphelper/oslfile2streamwrap.hxx>
++
++using namespace ::com::sun::star;
++
++namespace
++{
++    class OutputWrap : public cppu::WeakImplHelper1<
++        io::XOutputStream>
++    {
++        osl::File maFile;
++
++    public:
++
++        explicit OutputWrap( const rtl::OUString& rURL ) : maFile(rURL) 
++        {
++            maFile.open(osl_File_OpenFlag_Create|OpenFlag_Write);
++        }
++
++		virtual void SAL_CALL writeBytes( const com::sun::star::uno::Sequence< ::sal_Int8 >& aData ) throw (com::sun::star::io::NotConnectedException,com::sun::star::io::BufferSizeExceededException, com::sun::star::io::IOException, com::sun::star::uno::RuntimeException)
++
++        {
++            sal_uInt64 nBytesWritten(0);
++            maFile.write(aData.getConstArray(),aData.getLength(),nBytesWritten);
++        }
++
++        virtual void SAL_CALL flush() throw (com::sun::star::io::NotConnectedException, com::sun::star::io::BufferSizeExceededException, com::sun::star::io::IOException, com::sun::star::uno::RuntimeException)
++        {
++        }
++
++        virtual void SAL_CALL closeOutput() throw (com::sun::star::io::NotConnectedException, com::sun::star::io::BufferSizeExceededException, com::sun::star::io::IOException, com::sun::star::uno::RuntimeException)
++        {
++            maFile.close();
++        }
++    };
++}
++
++SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
++{
++	if( argc != 4 )
++    {
++        OSL_TRACE( "Invocation: svg2odf <base_url> <dst_url> <ini_file>. Exiting" );
++		return 1;
++    }
++
++	::rtl::OUString aBaseURL, aTmpURL, aSrcURL, aDstURL, aIniUrl;
++    
++    osl_getProcessWorkingDir(&aBaseURL.pData);
++    osl_getFileURLFromSystemPath( rtl::OUString::createFromAscii(argv[1]).pData,
++                                  &aTmpURL.pData );
++    osl_getAbsoluteFileURL(aBaseURL.pData,aTmpURL.pData,&aSrcURL.pData);
++
++    osl_getFileURLFromSystemPath( rtl::OUString::createFromAscii(argv[2]).pData,
++                                  &aTmpURL.pData );
++    osl_getAbsoluteFileURL(aBaseURL.pData,aTmpURL.pData,&aDstURL.pData);
++
++	osl_getFileURLFromSystemPath( rtl::OUString::createFromAscii(argv[3]).pData, 
++								&aTmpURL.pData );
++    osl_getAbsoluteFileURL(aBaseURL.pData,aTmpURL.pData,&aIniUrl.pData);
++
++    // bootstrap UNO
++    uno::Reference< lang::XMultiServiceFactory > xFactory;
++    uno::Reference< uno::XComponentContext > xCtx;
++    try
++    {
++        xCtx = ::cppu::defaultBootstrap_InitialComponentContext(aIniUrl);
++        xFactory = uno::Reference< lang::XMultiServiceFactory >(xCtx->getServiceManager(), 
++                                                                uno::UNO_QUERY);
++        if( xFactory.is() )
++            ::comphelper::setProcessServiceFactory( xFactory );
++    }
++    catch( uno::Exception& )
++    {
++    }
++
++    if( !xFactory.is() )
++    {
++        OSL_TRACE( "Could not bootstrap UNO, installation must be in disorder. Exiting." );
++        return 1;
++    }
++
++    osl::File aInputFile(aSrcURL);
++    if( osl::FileBase::E_None!=aInputFile.open(OpenFlag_Read) )
++    {
++        OSL_TRACE( "Cannot open input file" );
++        return 1;
++    }
++
++    svgi::SVGReader aReader(xFactory, 
++                            uno::Reference<io::XInputStream>(
++                                new comphelper::OSLInputStreamWrapper(aInputFile)),
++                            svgi::createSerializer(new OutputWrap(aDstURL)));
++    return aReader.parseAndConvert() ? 0 : 1;
++}
+--- filter/source/svg/tokenmap.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/tokenmap.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,62 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *      Parts copyright 2005 by Sun Microsystems, Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include "tokenmap.hxx"
++#include <string.h>
++
++namespace svgi 
++{
++
++#include "tokens.cxx"
++
++sal_Int32 getTokenId( const char* sIdent, sal_Int32 nLen )
++{
++	const struct xmltoken* t = Perfect_Hash::in_word_set( sIdent, nLen );
++	if( t )
++		return t->nToken;
++	else
++		return XML_TOKEN_INVALID;
++}
++
++sal_Int32 getTokenId( const rtl::OUString& sIdent )
++{
++	rtl::OString aUTF8( sIdent.getStr(), 
++                        sIdent.getLength(), 
++                        RTL_TEXTENCODING_UTF8 );
++    return getTokenId( aUTF8.getStr(), aUTF8.getLength() );
++}
++
++const char* getTokenName( sal_Int32 nTokenId )
++{
++	if( nTokenId >= XML_TOKEN_COUNT )
++		return NULL;
++
++    const xmltoken* pCurr=wordlist;
++    const xmltoken* pEnd=wordlist+sizeof(wordlist)/sizeof(*wordlist);
++    while( pCurr != pEnd )
++    {
++        if(pCurr->nToken == nTokenId)
++            return pCurr->name;
++        ++pCurr;
++    }
++
++    return NULL;
++}
++
++} // namespace svgi
+--- filter/source/svg/tokenmap.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/tokenmap.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,32 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Fridrich Strba  <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_TOKENMAP_HXX
++#define INCLUDED_TOKENMAP_HXX
++
++#include "tokens.hxx"
++
++#include <rtl/string.hxx>
++#include <rtl/ustring.hxx>
++
++namespace svgi
++{
++    sal_Int32   getTokenId( const char* sIdent, sal_Int32 nLen );
++    sal_Int32   getTokenId( const rtl::OUString& sIdent );
++    const char* getTokenName( sal_Int32 nTokenId );
++
++} // namespace svgi
++
++#endif
+--- filter/source/svg/tokens.txt	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/tokens.txt	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,403 @@
++#######################################
++#
++# elements (SVG Tiny 1.2)
++#
++#######################################
++a
++animate
++animateColor
++animateMotion
++animateTransform
++animation
++audio
++circle
++defs
++desc
++discard
++ellipse
++font
++font-face
++font-face-src
++font-face-uri
++foreignObject
++g
++glyph
++handler
++hkern
++image
++line
++linearGradient
++listener
++metadata
++missing-glyph
++mpath
++path
++polygon
++polyline
++prefetch
++radialGradient
++rect
++script
++set
++solidColor
++stop
++svg
++switch
++tbreak
++text
++textArea
++title
++tspan
++use
++video
++#######################################
++#
++# properties (SVG Tiny 1.2)
++#
++#######################################
++audio-level
++color
++color-rendering
++display
++display-align
++fill
++fill-opacity
++fill-rule
++font-family
++font-size
++font-style
++font-variant
++font-weight
++image-rendering
++line-increment
++opacity
++pointer-events
++shape-rendering
++solid-color
++solid-opacity
++stop-color
++stop-opacity
++stroke
++stroke-dasharray
++stroke-dashoffset
++stroke-linecap
++stroke-linejoin
++stroke-miterlimit
++stroke-opacity
++stroke-width
++text-align
++text-anchor
++text-rendering
++vector-effect
++viewport-fill
++viewport-fill-opacity
++visibility
++#######################################
++#
++# attributes (SVG Tiny 1.2)
++#
++#######################################
++accent-height
++accumulate
++additive
++alphabetic
++arabic-form
++ascent
++attributeName
++attributeType
++bandwidth
++baseProfile
++bbox
++begin
++by
++calcMode
++cap-height
++class
++contentScriptType
++cx
++cy
++d
++defaultAction
++descent
++dur
++editable
++end
++event
++externalResourcesRequired
++fill
++focusHighlight
++focusable
++font-family
++font-stretch
++font-style
++font-variant
++font-weight
++from
++fx
++fy
++g1
++g2
++glyph-name
++gradientTransform
++gradientUnits
++handler
++hanging
++height
++height
++horiz-adv-x
++horiz-origin-x
++id
++ideographic
++initialVisibility
++k
++keyPoints
++keySplines
++keyTimes
++lang
++mathematical
++max
++mediaCharacterEncoding
++mediaContentEncodings
++mediaSize
++mediaTime
++min
++nav-down
++nav-down-left
++nav-down-right
++nav-left
++nav-next
++nav-prev
++nav-right
++nav-up
++nav-up-left
++nav-up-right
++observer
++offset
++origin
++overlay
++overline-position
++overline-thickness
++panose-1
++path
++pathLength
++phase
++playbackOrder
++points
++preserveAspectRatio
++propagate
++r
++repeatCount
++repeatDur
++requiredExtensions
++requiredFeatures
++requiredFonts
++requiredFormats
++restart
++rotate
++rx
++ry
++slope
++snapshotTime
++stemh
++stemv
++strikethrough-position
++strikethrough-thickness
++style
++syncBehavior
++syncBehaviorDefault
++syncMaster
++syncTolerance
++syncToleranceDefault
++systemLanguage
++target
++timelineBegin
++to
++transform
++transformBehavior
++type
++u1
++u2
++underline-position
++underline-thickness
++unicode
++unicode-range
++units-per-em
++values
++version
++viewBox
++width
++widths
++x
++x-height
++x1
++x2
++actuate
++arcrole
++href
++role
++show
++base
++space
++y
++y1
++y2
++zoomAndPan
++#######################################
++#
++# colour values
++#
++#######################################
++aliceblue
++antiquewhite
++aqua
++aquamarine
++azure
++beige
++bisque
++black
++blanchedalmond
++blue
++blueviolet
++brown
++burlywood
++cadetblue
++chartreuse
++chocolate
++coral
++cornflowerblue
++cornsilk
++crimson
++cyan
++darkblue
++darkcyan
++darkgoldenrod
++darkgray
++darkgreen
++darkgrey
++darkkhaki
++darkmagenta
++darkolivegreen
++darkorange
++darkorchid
++darkred
++darksalmon
++darkseagreen
++darkslateblue
++darkslategray
++darkslategrey
++darkturquoise
++darkviolet
++deeppink
++deepskyblue
++dimgray
++dimgrey
++dodgerblue
++firebrick
++floralwhite
++forestgreen
++fuchsia
++gainsboro
++ghostwhite
++gold
++goldenrod
++gray
++grey
++green
++greenyellow
++honeydew
++hotpink
++indianred
++indigo
++ivory
++khaki
++lavender
++lavenderblush
++lawngreen
++lemonchiffon
++lightblue
++lightcoral
++lightcyan
++lightgoldenrodyellow
++lightgray
++lightgreen
++lightgrey
++lightpink
++lightsalmon
++lightseagreen
++lightskyblue
++lightslategray
++lightslategrey
++lightsteelblue
++lightyellow
++lime
++limegreen
++linen
++magenta
++maroon
++mediumaquamarine
++mediumblue
++mediumorchid
++mediumpurple
++mediumseagreen
++mediumslateblue
++mediumspringgreen
++mediumturquoise
++mediumvioletred
++midnightblue
++mintcream
++mistyrose
++moccasin
++navajowhite
++navy
++oldlace
++olive
++olivedrab
++orange
++orangered
++orchid
++palegoldenrod
++palegreen
++paleturquoise
++palevioletred
++papayawhip
++peachpuff
++peru
++pink
++plum
++powderblue
++purple
++red
++rosybrown
++royalblue
++saddlebrown
++salmon
++sandybrown
++seagreen
++seashell
++sienna
++silver
++skyblue
++slateblue
++slategray
++slategrey
++snow
++springgreen
++steelblue
++tan
++teal
++thistle
++tomato
++turquoise
++violet
++wheat
++white
++whitesmoke
++yellow
++yellowgreen
++#######################################
++#
++# Gradient units values
++#
++#######################################
++userSpaceOnUse
++objectBoundingBox
+--- filter/source/svg/units.cxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/units.cxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,112 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Jan Holesovsky   <kendy@suse.cz>
++ *      Fridrich Strba   <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_filter.hxx"
++
++#include "units.hxx"
++#include "spirit_supplements.hxx"
++
++#include <string.h>
++#include <rtl/ustring.hxx>
++
++#include <boost/bind.hpp>
++// workaround. spirit uses INT_MAX.
++#include <limits.h>
++#include <boost/spirit.hpp>
++
++
++namespace svgi
++{
++
++namespace
++{
++
++void appendChar( rtl::OUString& str, char character)
++{
++	str += rtl::OUString((sal_Char *)&character, 1, RTL_TEXTENCODING_UTF8);
++}
++
++void appendString( rtl::OUString& str, const char *characters)
++{
++	str += rtl::OUString((sal_Char *)characters, strlen(characters), RTL_TEXTENCODING_UTF8);
++}
++
++void appendDouble( rtl::OUString& str, double value, SvgUnit unit )
++{
++	str += rtl::OUString::valueOf(convLength(value, unit));
++}
++
++} //namespace
++
++double convLength( double value, SvgUnit unit )
++{
++    // convert svg unit to internal coordinates ("pixel"). Since the
++    // OOo drawing layer is still largely integer-based, the initial
++    // viewport transformation includes a certain scale factor
++    switch ( unit )
++    {
++        case SVG_LENGTH_UNIT_CM: return value * 1000.0;
++        case SVG_LENGTH_UNIT_EM: fprintf( stderr, "TODO: legth type EM not implemented.\n" ); return 1000.0;
++        case SVG_LENGTH_UNIT_EX: fprintf( stderr, "TODO: legth type EX not implemented.\n" ); return 1000.0;
++        case SVG_LENGTH_UNIT_IN: return value * 2540.0;
++        case SVG_LENGTH_UNIT_MM: return value * 100.0;
++        case SVG_LENGTH_UNIT_PC: return value * 2540.0/6.0;
++        case SVG_LENGTH_UNIT_PCT: fprintf( stderr, "TODO: legth type PCT not implemented.\n" ); return 1000.0;
++        case SVG_LENGTH_UNIT_PT: return value * 2540.0/72.0;
++        case SVG_LENGTH_UNIT_PX: return value;
++		case SVG_LENGTH_UNIT_USER: return value * 2540.0/72.0;  //FIXME, not true according to the documentation
++        default: fprintf( stderr, "Unknown length type\n" );
++    }
++
++    return 0.0;
++}
++
++double convLength( const rtl::OUString& sValue )
++{
++    using namespace ::boost::spirit;
++
++    rtl::OString aUTF8 = rtl::OUStringToOString( sValue, 
++                                                 RTL_TEXTENCODING_UTF8 );  
++
++    double  nVal=0.0;
++    SvgUnit eUnit=SVG_LENGTH_UNIT_PX;
++    const bool bRes = parse(aUTF8.getStr(),
++        //  Begin grammar
++        (
++            real_p[assign_a(nVal)] 
++            >> (  str_p("cm") [assign_a(eUnit,SVG_LENGTH_UNIT_CM)]
++                | str_p("em") [assign_a(eUnit,SVG_LENGTH_UNIT_EM)]
++                | str_p("ex") [assign_a(eUnit,SVG_LENGTH_UNIT_EX)]
++                | str_p("in") [assign_a(eUnit,SVG_LENGTH_UNIT_IN)]
++                | str_p("mm") [assign_a(eUnit,SVG_LENGTH_UNIT_MM)]
++                | str_p("pc") [assign_a(eUnit,SVG_LENGTH_UNIT_PC)]
++                | str_p("pct")[assign_a(eUnit,SVG_LENGTH_UNIT_PCT)]
++                | str_p("pt") [assign_a(eUnit,SVG_LENGTH_UNIT_PT)]
++                | str_p("px") [assign_a(eUnit,SVG_LENGTH_UNIT_PX)]
++                | str_p("") [assign_a(eUnit,SVG_LENGTH_UNIT_USER)]
++                | end_p)
++        ),
++        //  End grammar
++        space_p).full;
++
++    if( !bRes )
++        return 0.0;
++
++    return convLength(nVal,eUnit);
++}
++
++} // namespace svgi
+--- filter/source/svg/units.hxx	1970-01-01 01:00:00.000000000 +0100
++++ filter/source/svg/units.hxx	2008-04-11 00:09:55.000000000 +0200
+@@ -0,0 +1,47 @@
++/*************************************************************************
++ *
++ *    OpenOffice.org - a multi-platform office productivity suite
++ *
++ *    Author:
++ *      Jan Holesovsky   <kendy@suse.cz>
++ *      Fridrich Strba   <fridrich.strba@bluewin.ch>
++ *      Thorsten Behrens <tbehrens@novell.com>	   	
++ *
++ *      Copyright (C) 2008, Novell Inc.
++ *
++ *   The Contents of this file are made available subject to
++ *   the terms of GNU Lesser General Public License Version 2.1.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_UNITS_HXX
++#define INCLUDED_UNITS_HXX
++
++#include <sal/config.h>
++
++namespace rtl{ class OUString; }
++namespace svgi
++{
++    enum SvgUnit
++    {
++        SVG_LENGTH_UNIT_CM,
++        SVG_LENGTH_UNIT_EM,
++        SVG_LENGTH_UNIT_EX,
++        SVG_LENGTH_UNIT_IN,
++        SVG_LENGTH_UNIT_MM,
++        SVG_LENGTH_UNIT_PC,
++        SVG_LENGTH_UNIT_PCT,
++        SVG_LENGTH_UNIT_PT,
++        SVG_LENGTH_UNIT_PX,
++		SVG_LENGTH_UNIT_USER
++    };
++
++    /// return svg_length_t in 100th's of mm
++    double convLength( double fVal, SvgUnit unit );
++    double convLength( const rtl::OUString& sValue );
++#if 0
++	void transformPathPointsString( rtl::OUString& sData );
++#endif
++} // namespace svgi
++
++#endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-starmath.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-starmath.diff
@@ -0,0 +1,4 @@
+--- starmath/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ starmath/prj/tests.lst	2007-09-07 14:32:15.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: sm   starmath\qa\unoapi                                 nmake - all sm_qa_unoapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/forms-radio-button-group-names.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/forms-radio-button-group-names.diff
@@ -0,0 +1,599 @@
+Index: extensions/inc/extensio.hrc
+===================================================================
+RCS file: /cvs/util/extensions/inc/extensio.hrc,v
+retrieving revision 1.33
+diff -u -p -r1.33 extensio.hrc
+--- extensions/inc/extensio.hrc	27 Nov 2007 11:51:34 -0000	1.33
++++ extensions/inc/extensio.hrc	29 Mar 2008 19:39:04 -0000
+@@ -162,7 +162,7 @@
+ 
+ //-----------------------------------------------------------------------
+     // FREE
+-    // FREE
++#define HID_PROP_GROUP_NAME                     (HID_FORMS_START +   1)
+ #define HID_PROP_GROUPBOX						(HID_FORMS_START +   2)
+ #define HID_PROP_CONTROLSOURCE					(HID_FORMS_START +   3)
+ #define HID_PROP_NAME							(HID_FORMS_START +   4)
+Index: extensions/source/propctrlr/formmetadata.hxx
+===================================================================
+RCS file: /cvs/util/extensions/source/propctrlr/formmetadata.hxx,v
+retrieving revision 1.34
+diff -u -p -r1.34 formmetadata.hxx
+--- extensions/source/propctrlr/formmetadata.hxx	27 Nov 2007 11:52:15 -0000	1.34
++++ extensions/source/propctrlr/formmetadata.hxx	29 Mar 2008 19:39:04 -0000
+@@ -178,6 +178,7 @@ namespace pcr
+ 	#define PROPERTY_ID_ALLOWADDITIONS		 20
+ 	#define PROPERTY_ID_ALLOWEDITS			 21
+ 	#define PROPERTY_ID_ALLOWDELETIONS		 22
++	#define PROPERTY_ID_GROUP_NAME    		 23
+ 	#define PROPERTY_ID_NAVIGATION			 24
+ 	#define PROPERTY_ID_CYCLE				 25
+ 	#define PROPERTY_ID_HIDDEN_VALUE		 26
+Index: extensions/source/propctrlr/formmetadata.cxx
+===================================================================
+RCS file: /cvs/util/extensions/source/propctrlr/formmetadata.cxx,v
+retrieving revision 1.47.18.1
+diff -u -p -r1.47.18.1 formmetadata.cxx
+--- extensions/source/propctrlr/formmetadata.cxx	11 Jan 2008 08:23:04 -0000	1.47.18.1
++++ extensions/source/propctrlr/formmetadata.cxx	5 Apr 2008 11:15:13 -0000
+@@ -157,6 +157,7 @@ namespace pcr
+         DEF_INFO_2( TITLE,             TITLE,              TITLE,             FORM_VISIBLE, DIALOG_VISIBLE ),
+         DEF_INFO_3( LABEL,             LABEL,              LABEL,             FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
+         DEF_INFO_2( CONTROLLABEL,      LABELCONTROL,       CONTROLLABEL,      FORM_VISIBLE, COMPOSEABLE ),
++        DEF_INFO_2( GROUP_NAME,        GROUP_NAME,         GROUP_NAME,        FORM_VISIBLE, COMPOSEABLE ),
+         DEF_INFO_2( TEXT,              TEXT,               TEXT,              DIALOG_VISIBLE, COMPOSEABLE ),
+         DEF_INFO_3( MAXTEXTLEN,        MAXTEXTLEN,         MAXTEXTLEN,        FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
+         DEF_INFO_3( EDITMASK,          EDITMASK,           EDITMASK,          FORM_VISIBLE, DIALOG_VISIBLE, COMPOSEABLE ),
+Index: extensions/source/propctrlr/formstrings.hxx
+===================================================================
+RCS file: /cvs/util/extensions/source/propctrlr/formstrings.hxx,v
+retrieving revision 1.38
+diff -u -p -r1.38 formstrings.hxx
+--- extensions/source/propctrlr/formstrings.hxx	27 Nov 2007 11:53:16 -0000	1.38
++++ extensions/source/propctrlr/formstrings.hxx	29 Mar 2008 19:39:05 -0000
+@@ -57,6 +57,7 @@ namespace pcr
+ 	PCR_CONSTASCII_STRING( PROPERTY_TABINDEX,				"TabIndex");
+ 	PCR_CONSTASCII_STRING( PROPERTY_TAG,					"Tag");
+ 	PCR_CONSTASCII_STRING( PROPERTY_NAME,					"Name");
++	PCR_CONSTASCII_STRING( PROPERTY_GROUP_NAME,             "GroupName");
+ 	PCR_CONSTASCII_STRING( PROPERTY_VALUE,					"Value");
+ 	PCR_CONSTASCII_STRING( PROPERTY_TEXT,					"Text");
+ 	PCR_CONSTASCII_STRING( PROPERTY_NAVIGATION,				"NavigationBarMode");
+Index: extensions/source/propctrlr/formresid.hrc
+===================================================================
+RCS file: /cvs/util/extensions/source/propctrlr/formresid.hrc,v
+retrieving revision 1.36
+diff -u -p -r1.36 formresid.hrc
+--- extensions/source/propctrlr/formresid.hrc	27 Nov 2007 11:52:56 -0000	1.36
++++ extensions/source/propctrlr/formresid.hrc	29 Mar 2008 19:39:05 -0000
+@@ -152,7 +152,7 @@
+ #define RID_STR_TAG							( RID_FORMBROWSER_START + 116 )
+ #define RID_STR_HELPTEXT					( RID_FORMBROWSER_START + 117 )
+ #define RID_STR_HELPURL						( RID_FORMBROWSER_START + 118 )
+-    // FREE
++#define RID_STR_GROUP_NAME                  ( RID_FORMBROWSER_START + 119 )
+ #define RID_STR_UNCHECKEDREFVALUE           ( RID_FORMBROWSER_START + 120 )
+ #define RID_STR_CURSOR_TYPE					( RID_FORMBROWSER_START + 121 )
+     // FREE
+Index: extensions/source/propctrlr/formres.src
+===================================================================
+RCS file: /cvs/util/extensions/source/propctrlr/formres.src,v
+retrieving revision 1.81
+diff -u -p -r1.81 formres.src
+--- extensions/source/propctrlr/formres.src	27 Nov 2007 11:52:35 -0000	1.81
++++ extensions/source/propctrlr/formres.src	29 Mar 2008 19:39:05 -0000
+@@ -235,6 +235,10 @@ String RID_STR_NAME
+ {
+ 	Text [ en-US ] = "Name" ;
+ };
++String RID_STR_GROUP_NAME
++{
++	Text [ en-US ] = "Group name" ;
++};
+ String RID_STR_TABINDEX
+ {
+ 	Text [ en-US ] = "Tab order" ;
+Index: extensions/util/hidother.src
+===================================================================
+RCS file: /cvs/util/extensions/util/hidother.src,v
+retrieving revision 1.20
+diff -u -p -r1.20 hidother.src
+--- extensions/util/hidother.src	27 Nov 2007 11:53:36 -0000	1.20
++++ extensions/util/hidother.src	5 Apr 2008 11:15:14 -0000
+@@ -311,3 +311,4 @@ hidspecial HID_CHECK_FOR_UPD_STATUS     
+ hidspecial HID_CHECK_FOR_UPD_DESCRIPTION        { HelpId = HID_CHECK_FOR_UPD_DESCRIPTION; }
+ hidspecial HID_CHECK_FOR_UPD_CANCEL             { HelpId = HID_CHECK_FOR_UPD_CANCEL; }
+ hidspecial HID_PROP_NOLABEL                     { HelpId = HID_PROP_NOLABEL; }
++hidspecial HID_PROP_GROUP_NAME                  { HelpId = HID_PROP_GROUP_NAME; }
+Index: forms/source/component/GroupManager.hxx
+===================================================================
+RCS file: /cvs/gsl/forms/source/component/GroupManager.hxx,v
+retrieving revision 1.11
+diff -u -p -r1.11 GroupManager.hxx
+--- forms/source/component/GroupManager.hxx	12 Oct 2006 11:12:12 -0000	1.11
++++ forms/source/component/GroupManager.hxx	5 Apr 2008 11:21:51 -0000
+@@ -248,6 +248,8 @@ public:
+ 	void getGroup(sal_Int32 nGroup, ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel> >& _rGroup, ::rtl::OUString& Name);
+ 	void getGroupByName(const ::rtl::OUString& Name, ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel> >& _rGroup);
+ 	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel> > getControlModels();
++
++	static ::rtl::OUString GetGroupName( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> xComponent );
+ };
+ 
+ 
+Index: forms/source/component/GroupManager.cxx
+===================================================================
+RCS file: /cvs/gsl/forms/source/component/GroupManager.cxx,v
+retrieving revision 1.17
+diff -u -p -r1.17 GroupManager.cxx
+--- forms/source/component/GroupManager.cxx	16 Sep 2006 23:51:13 -0000	1.17
++++ forms/source/component/GroupManager.cxx	5 Apr 2008 11:27:06 -0000
+@@ -148,14 +148,13 @@ OGroupComp::OGroupComp(const Reference<X
+     ,m_xControlModel(rxSet,UNO_QUERY)
+     ,m_nPos( nInsertPos )
+     ,m_nTabIndex(0)
++    ,m_aName( OGroupManager::GetGroupName( rxSet ) )
+ {
+ 	if (m_xComponent.is())
+ 	{
+ 		if (hasProperty( PROPERTY_TABINDEX, m_xComponent ) )
+ 			// Indices kleiner 0 werden wie 0 behandelt
+ 			m_nTabIndex = Max(getINT16(m_xComponent->getPropertyValue( PROPERTY_TABINDEX )) , sal_Int16(0));
+-
+-		m_xComponent->getPropertyValue( PROPERTY_NAME ) >>= m_aName;
+ 	}
+ }
+ 
+@@ -342,7 +341,8 @@ void OGroupManager::removeFromGroupMap(c
+ 		aFind->second.RemoveComponent( _xSet );
+ 
+ 		// Wenn Anzahl der Gruppenelemente == 1 ist, Gruppe deaktivieren
+-		if ( aFind->second.Count() == 1 )
++		sal_Int32 nCount = aFind->second.Count();
++		if ( nCount == 1 || nCount == 0 )
+ 		{
+ 			OActiveGroups::iterator aActiveFind = ::std::find(
+                 m_aActiveGroupMap.begin(),
+@@ -353,7 +353,7 @@ void OGroupManager::removeFromGroupMap(c
+             {
+                 // the group is active. Deactivate it if the remaining component
+                 // is *no* radio button
+-                if ( !isRadioButton( aFind->second.GetObject( 0 ) ) )
++                if ( nCount == 0 || !isRadioButton( aFind->second.GetObject( 0 ) ) )
+ 				    m_aActiveGroupMap.erase( aActiveFind );
+             }
+ 		}
+@@ -362,6 +362,8 @@ void OGroupManager::removeFromGroupMap(c
+ 
+ 	// Bei Component als PropertyChangeListener abmelden
+ 	_xSet->removePropertyChangeListener( PROPERTY_NAME, this );
++	if (hasProperty(PROPERTY_GROUP_NAME, _xSet))
++		_xSet->removePropertyChangeListener( PROPERTY_GROUP_NAME, this );
+ 	if (hasProperty(PROPERTY_TABINDEX, _xSet))
+ 		_xSet->removePropertyChangeListener( PROPERTY_TABINDEX, this );
+ }
+@@ -372,10 +374,23 @@ void SAL_CALL OGroupManager::propertyCha
+ 
+ 	// Component aus Gruppe entfernen
+ 	::rtl::OUString		sGroupName;
+-	if (evt.PropertyName == PROPERTY_NAME)
++	if (hasProperty( PROPERTY_GROUP_NAME, xSet ))
++		xSet->getPropertyValue( PROPERTY_GROUP_NAME ) >>= sGroupName;
++	if (evt.PropertyName == PROPERTY_NAME) {
++		if (sGroupName.getLength() > 0)
++			return; // group hasn't changed; ignore this name change.
++		// no GroupName; use Name as GroupNme
++		evt.OldValue >>= sGroupName;
++	}
++	else if (evt.PropertyName == PROPERTY_GROUP_NAME) {
+ 		evt.OldValue >>= sGroupName;
++		if (sGroupName.getLength() == 0) {
++			// No prior GroupName; fallback to Nme
++			xSet->getPropertyValue( PROPERTY_NAME ) >>= sGroupName;
++		}
++	}
+ 	else
+-		xSet->getPropertyValue( PROPERTY_NAME ) >>= sGroupName;
++		sGroupName = GetGroupName( xSet );
+ 
+ 	removeFromGroupMap(sGroupName,xSet);
+ 
+@@ -458,8 +473,7 @@ void OGroupManager::InsertElement( const
+ 	m_pCompGroup->InsertComponent( xSet );
+ 
+ 	// Component in Gruppe aufnehmen
+-	::rtl::OUString sGroupName;
+-	xSet->getPropertyValue( PROPERTY_NAME ) >>= sGroupName;
++	::rtl::OUString sGroupName( GetGroupName( xSet ) );
+ 
+ 	OGroupArr::iterator aFind = m_aGroupArr.find(sGroupName);
+ 
+@@ -497,6 +511,8 @@ void OGroupManager::InsertElement( const
+ 
+ 	// Bei Component als PropertyChangeListener anmelden
+ 	xSet->addPropertyChangeListener( PROPERTY_NAME, this );
++	if (hasProperty(PROPERTY_GROUP_NAME, xSet))
++		xSet->addPropertyChangeListener( PROPERTY_GROUP_NAME, this );
+ 
+     // Tabindex muss nicht jeder unterstuetzen
+ 	if (hasProperty(PROPERTY_TABINDEX, xSet))
+@@ -513,12 +529,26 @@ void OGroupManager::RemoveElement( const
+ 		return;
+ 
+ 	// Component aus Gruppe entfernen
+-	::rtl::OUString		sGroupName;
+-	xSet->getPropertyValue( PROPERTY_NAME ) >>= sGroupName;
++	::rtl::OUString		sGroupName( GetGroupName( xSet ) );
+ 
+ 	removeFromGroupMap(sGroupName,xSet);
+ }
+ 
++::rtl::OUString OGroupManager::GetGroupName( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> xComponent )
++{
++    if (!xComponent.is())
++        return ::rtl::OUString();
++    ::rtl::OUString sGroupName;
++    if (hasProperty( PROPERTY_GROUP_NAME, xComponent )) {
++        xComponent->getPropertyValue( PROPERTY_GROUP_NAME ) >>= sGroupName;
++        if (sGroupName.getLength() == 0)
++            xComponent->getPropertyValue( PROPERTY_NAME ) >>= sGroupName;
++    }
++    else
++        xComponent->getPropertyValue( PROPERTY_NAME ) >>= sGroupName;
++    return sGroupName;
++}
++
+ //.........................................................................
+ }	// namespace frm
+ //.........................................................................
+Index: forms/source/component/RadioButton.hxx
+===================================================================
+RCS file: /cvs/gsl/forms/source/component/RadioButton.hxx,v
+retrieving revision 1.11
+diff -u -p -r1.11 RadioButton.hxx
+--- forms/source/component/RadioButton.hxx	9 Mar 2007 13:31:41 -0000	1.11
++++ forms/source/component/RadioButton.hxx	29 Mar 2008 19:39:05 -0000
+@@ -49,6 +49,9 @@ namespace frm
+ //==================================================================
+ class ORadioButtonModel		:public OReferenceValueComponent
+ {
++protected:
++	::rtl::OUString m_sGroupName;
++
+ public:
+ 	DECLARE_DEFAULT_LEAF_XTOR( ORadioButtonModel );
+ 
+@@ -57,6 +60,10 @@ public:
+ 	virtual StringSequence SAL_CALL	getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+ 
+ 	// OPropertySetHelper
++	virtual void SAL_CALL getFastPropertyValue(::com::sun::star::uno::Any& rValue, sal_Int32 nHandle) const;
++	virtual sal_Bool SAL_CALL convertFastPropertyValue(
++				::com::sun::star::uno::Any& _rConvertedValue, ::com::sun::star::uno::Any& _rOldValue, sal_Int32 _nHandle, const ::com::sun::star::uno::Any& _rValue )
++				throw (::com::sun::star::lang::IllegalArgumentException);
+ 	virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue )
+ 				throw (::com::sun::star::uno::Exception);
+ 
+Index: forms/source/component/RadioButton.cxx
+===================================================================
+RCS file: /cvs/gsl/forms/source/component/RadioButton.cxx,v
+retrieving revision 1.21
+diff -u -p -r1.21 RadioButton.cxx
+--- forms/source/component/RadioButton.cxx	9 Mar 2007 13:31:25 -0000	1.21
++++ forms/source/component/RadioButton.cxx	5 Apr 2008 11:27:06 -0000
+@@ -39,6 +39,9 @@
+ #ifndef _FORMS_RADIOBUTTON_HXX_
+ #include "RadioButton.hxx"
+ #endif
++#ifndef _FRM_GROUPMANAGER_HXX_
++#include "GroupManager.hxx"
++#endif
+ #ifndef _FRM_PROPERTY_HXX_
+ #include "property.hxx"
+ #endif
+@@ -150,6 +153,7 @@ ORadioButtonModel::ORadioButtonModel(con
+ //------------------------------------------------------------------
+ ORadioButtonModel::ORadioButtonModel( const ORadioButtonModel* _pOriginal, const Reference<XMultiServiceFactory>& _rxFactory )
+ 	:OReferenceValueComponent( _pOriginal, _rxFactory )
++	,m_sGroupName( _pOriginal->m_sGroupName )
+ {
+ 	DBG_CTOR( ORadioButtonModel, NULL );
+ }
+@@ -192,7 +196,7 @@ StringSequence SAL_CALL	ORadioButtonMode
+ void ORadioButtonModel::SetSiblingPropsTo(const ::rtl::OUString& rPropName, const Any& rValue)
+ {
+ 	// mein Name
+-	::rtl::OUString sMyName(m_aName);
++	::rtl::OUString sMyGroup( m_sGroupName.getLength() > 0 ? m_sGroupName : m_aName);
+ 
+ 	// meine Siblings durchiterieren
+ 	Reference<XIndexAccess> xIndexAccess(getParent(), UNO_QUERY);
+@@ -200,8 +204,9 @@ void ORadioButtonModel::SetSiblingPropsT
+ 	{
+ 		Reference<XPropertySet> xMyProps;
+ 		query_interface(static_cast<XWeak*>(this), xMyProps);
+-		::rtl::OUString	sCurrentName;
+-		for (sal_Int32 i=0; i<xIndexAccess->getCount(); ++i)
++		::rtl::OUString	sCurrentGroup;
++		sal_Int32 nNumSiblings = xIndexAccess->getCount();
++		for (sal_Int32 i=0; i<nNumSiblings; ++i)
+ 		{
+ 			Reference<XPropertySet>	xSiblingProperties(*(InterfaceRef*)xIndexAccess->getByIndex(i).getValue(), UNO_QUERY);
+ 			if (!xSiblingProperties.is())
+@@ -218,34 +223,65 @@ void ORadioButtonModel::SetSiblingPropsT
+ 				continue;
+ 
+ 			// das 'zur selben Gruppe gehoeren' wird am Namen festgemacht
+-			xSiblingProperties->getPropertyValue(PROPERTY_NAME) >>= sCurrentName;
+-			if (sCurrentName == sMyName)
++			sCurrentGroup = OGroupManager::GetGroupName( xSiblingProperties );
++			if (sCurrentGroup == sMyGroup)
+ 				xSiblingProperties->setPropertyValue(rPropName, rValue);
+ 		}
+ 	}
+ }
+ 
+ //------------------------------------------------------------------------------
+-void ORadioButtonModel::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const Any& rValue) throw (Exception)
++void ORadioButtonModel::getFastPropertyValue(Any& rValue, sal_Int32 nHandle) const
+ {
+-	OReferenceValueComponent::setFastPropertyValue_NoBroadcast( nHandle, rValue );
+-
+-	// if the label control changed ...
+-	if (nHandle == PROPERTY_ID_CONTROLLABEL)
+-	{	// ... forward this to our siblings
+-		SetSiblingPropsTo(PROPERTY_CONTROLLABEL, rValue);
++	switch (nHandle)
++	{
++		case PROPERTY_ID_GROUP_NAME:
++			rValue <<= m_sGroupName;
++			break;
++		default:
++			OReferenceValueComponent::getFastPropertyValue(rValue, nHandle);
++			break;
+ 	}
++}
++
++sal_Bool ORadioButtonModel::convertFastPropertyValue(
++                Any& _rConvertedValue, Any& _rOldValue,
++                sal_Int32 _nHandle,
++                const Any& _rValue)
++        throw (com::sun::star::lang::IllegalArgumentException)
++{
++    sal_Bool bModified(sal_False);
++    switch (_nHandle)
++    {
++        case PROPERTY_ID_GROUP_NAME:
++            bModified = tryPropertyValue(_rConvertedValue, _rOldValue, _rValue, m_sGroupName);
++            break;
++        default:
++            bModified = OReferenceValueComponent::convertFastPropertyValue(_rConvertedValue, _rOldValue, _nHandle, _rValue);
++            break;
++    }
++    return bModified;
++}
+ 
++void ORadioButtonModel::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const Any& rValue) throw (Exception)
++{
++	if (nHandle != PROPERTY_ID_GROUP_NAME)
++		OReferenceValueComponent::setFastPropertyValue_NoBroadcast( nHandle, rValue );
++	switch (nHandle)
++	{
++	case PROPERTY_ID_CONTROLLABEL:
++		SetSiblingPropsTo(PROPERTY_CONTROLLABEL, rValue);
++		break;
+ 	// wenn sich die ControlSource-Eigenschaft geaendert hat ...
+-	if (nHandle == PROPERTY_ID_CONTROLSOURCE)
+-	{	// ... muss ich allen meinen Siblings, die in der selben RadioButton-Gruppe sind wie ich, auch die
++	case PROPERTY_ID_CONTROLSOURCE:
++		// ... muss ich allen meinen Siblings, die in der selben RadioButton-Gruppe sind wie ich, auch die
+ 		// neue ControlSource mitgeben
+ 		SetSiblingPropsTo(PROPERTY_CONTROLSOURCE, rValue);
+-	}
+-
++		break;
+ 	// die andere Richtung : wenn sich mein Name aendert ...
+-	if (nHandle == PROPERTY_ID_NAME)
+-	{
++	case PROPERTY_ID_GROUP_NAME:
++		rValue >>= m_sGroupName;
++	case PROPERTY_ID_NAME: {
+ 		// ... muss ich testen, ob ich Siblings mit dem selben Namen habe, damit ich deren ControlSource uebernehmen kann
+ 		Reference<XIndexAccess> xIndexAccess(getParent(), UNO_QUERY);
+ 		if (xIndexAccess.is())
+@@ -271,7 +307,7 @@ void ORadioButtonModel::setFastPropertyV
+ 					// nur Radio-Buttons
+ 					continue;
+ 
+-				xSiblingProperties->getPropertyValue(PROPERTY_NAME) >>= sName;
++				xSiblingProperties->getPropertyValue(nHandle == PROPERTY_ID_NAME ? PROPERTY_NAME : PROPERTY_GROUP_NAME) >>= sName;
+ 				// Control, das zur gleichen Gruppe gehoert ?
+ 				if (rValue == sName)
+ 				{
+@@ -280,10 +316,9 @@ void ORadioButtonModel::setFastPropertyV
+ 				}
+ 			}
+ 		}
++		break;
+ 	}
+-
+-	if (nHandle == PROPERTY_ID_DEFAULTCHECKED)
+-	{
++	case PROPERTY_ID_DEFAULTCHECKED: {
+ 		sal_Int16 nValue;
+ 		rValue >>= nValue;
+ 		if (1 == nValue)
+@@ -294,14 +329,20 @@ void ORadioButtonModel::setFastPropertyV
+ 			aZero <<= nValue;
+ 			SetSiblingPropsTo(PROPERTY_DEFAULTCHECKED, aZero);
+ 		}
++		break;
++	}
++	default:  
++		// OReferenceValueComponent::setFastPropertyValue_NoBroadcast( nHandle, rValue );
++		break;
+ 	}
+ }
+ 
+ //------------------------------------------------------------------------------
+ void ORadioButtonModel::describeFixedProperties( Sequence< Property >& _rProps ) const
+ {
+-	BEGIN_DESCRIBE_PROPERTIES( 1, OReferenceValueComponent )
++	BEGIN_DESCRIBE_PROPERTIES( 2, OReferenceValueComponent )
+ 		DECL_PROP1(TABINDEX,			sal_Int16,					BOUND);
++		DECL_PROP1(GROUP_NAME,          ::rtl::OUString,            BOUND);
+ 	END_DESCRIBE_PROPERTIES();
+ }
+ 
+Index: forms/source/inc/frm_strings.hxx
+===================================================================
+RCS file: /cvs/gsl/forms/source/inc/frm_strings.hxx,v
+retrieving revision 1.15.14.1
+diff -u -p -r1.15.14.1 frm_strings.hxx
+--- forms/source/inc/frm_strings.hxx	18 Jan 2008 15:11:23 -0000	1.15.14.1
++++ forms/source/inc/frm_strings.hxx	29 Mar 2008 19:39:05 -0000
+@@ -109,6 +109,7 @@ namespace frm
+     FORMS_CONSTASCII_STRING( PROPERTY_TABINDEX,                 "TabIndex" );
+     FORMS_CONSTASCII_STRING( PROPERTY_TAG,                      "Tag" );
+     FORMS_CONSTASCII_STRING( PROPERTY_NAME,                     "Name" );
++    FORMS_CONSTASCII_STRING( PROPERTY_GROUP_NAME,               "GroupName" );
+     FORMS_CONSTASCII_STRING( PROPERTY_CLASSID,                  "ClassId" );
+     FORMS_CONSTASCII_STRING( PROPERTY_FETCHSIZE,                "FetchSize" );
+     FORMS_CONSTASCII_STRING( PROPERTY_VALUE,                    "Value" );
+Index: forms/source/inc/property.hrc
+===================================================================
+RCS file: /cvs/gsl/forms/source/inc/property.hrc,v
+retrieving revision 1.20
+diff -u -p -r1.20 property.hrc
+--- forms/source/inc/property.hrc	31 Jan 2006 18:36:51 -0000	1.20
++++ forms/source/inc/property.hrc	29 Mar 2008 19:39:05 -0000
+@@ -65,7 +65,7 @@ namespace frm
+ #define PROPERTY_ID_ALLOWEDITS          (PROPERTY_ID_START + 16)
+ #define PROPERTY_ID_ALLOWDELETIONS      (PROPERTY_ID_START + 17)
+ #define PROPERTY_ID_NATIVE_LOOK         (PROPERTY_ID_START + 18)
+-    // free
++#define PROPERTY_ID_GROUP_NAME          (PROPERTY_ID_START + 19)
+     // free
+     // free
+     // free
+Index: xmloff/source/forms/formattributes.hxx
+===================================================================
+RCS file: /cvs/xml/xmloff/source/forms/formattributes.hxx,v
+retrieving revision 1.13
+diff -u -p -r1.13 formattributes.hxx
+--- xmloff/source/forms/formattributes.hxx	9 Sep 2005 14:08:11 -0000	1.13
++++ xmloff/source/forms/formattributes.hxx	5 Apr 2008 11:32:23 -0000
+@@ -137,6 +137,7 @@ namespace xmloff
+ 	#define SCA_MAX_VALUE				0x00000002
+ 	#define SCA_MIN_VALUE				0x00000004
+ 	#define SCA_VALIDATION				0x00000008
++    #define SCA_GROUP_NAME              0x00000010
+ 	#define SCA_MULTI_LINE				0x00000020
+ 	#define SCA_AUTOMATIC_COMPLETION	0x00000080
+ 	#define SCA_MULTIPLE				0x00000100
+Index: xmloff/source/forms/formattributes.cxx
+===================================================================
+RCS file: /cvs/xml/xmloff/source/forms/formattributes.cxx,v
+retrieving revision 1.20
+diff -u -p -r1.20 formattributes.cxx
+--- xmloff/source/forms/formattributes.cxx	27 Jun 2007 15:14:38 -0000	1.20
++++ xmloff/source/forms/formattributes.cxx	5 Apr 2008 11:32:23 -0000
+@@ -207,6 +207,7 @@ namespace xmloff
+ 			case SCA_MAX_VALUE:				return "max-value";
+ 			case SCA_MIN_VALUE:				return "min-value";
+ 			case SCA_VALIDATION:			return "validation";
++            case SCA_GROUP_NAME:            return "group-name";
+ 			case SCA_MULTI_LINE:			return "multi-line";
+ 			case SCA_AUTOMATIC_COMPLETION:	return "auto-complete";
+ 			case SCA_MULTIPLE: 				return "multiple";
+Index: xmloff/source/forms/strings.hxx
+===================================================================
+RCS file: /cvs/xml/xmloff/source/forms/strings.hxx,v
+retrieving revision 1.17
+diff -u -p -r1.17 strings.hxx
+--- xmloff/source/forms/strings.hxx	9 Sep 2005 14:16:39 -0000	1.17
++++ xmloff/source/forms/strings.hxx	5 Apr 2008 11:32:23 -0000
+@@ -213,6 +213,7 @@ namespace xmloff
+     XMLFORM_CONSTASCII_STRING( PROPERTY_VISUAL_EFFECT,      "VisualEffect");
+     XMLFORM_CONSTASCII_STRING( PROPERTY_IMAGE_POSITION,     "ImagePosition");
+     XMLFORM_CONSTASCII_STRING( PROPERTY_IMAGE_ALIGN,        "ImageAlign");
++    XMLFORM_CONSTASCII_STRING( PROPERTY_GROUP_NAME,         "GroupName");
+ 
+     XMLFORM_CONSTASCII_STRING( PROPERTY_BOUND_CELL,		    "BoundCell");
+     XMLFORM_CONSTASCII_STRING( PROPERTY_LIST_CELL_RANGE,    "CellRange");
+Index: xmloff/source/forms/elementexport.cxx
+===================================================================
+RCS file: /cvs/xml/xmloff/source/forms/elementexport.cxx,v
+retrieving revision 1.46.108.1
+diff -u -p -r1.46.108.1 elementexport.cxx
+--- xmloff/source/forms/elementexport.cxx	18 Jan 2008 15:10:42 -0000	1.46.108.1
++++ xmloff/source/forms/elementexport.cxx	5 Apr 2008 11:32:23 -0000
+@@ -1194,6 +1194,39 @@ namespace xmloff
+ 		}
+ 
+ 		// ----------------------------------
++		// the string properties
++		{
++			static sal_Int32 nStringPropertyAttributeIds[] =
++			{	// attribute flags
++				SCA_GROUP_NAME
++			};
++			static const ::rtl::OUString* pStringPropertyNames[] =
++			{	// property names
++				&PROPERTY_GROUP_NAME
++			};
++
++			sal_Int32 nIdCount = sizeof( nStringPropertyAttributeIds ) / sizeof( nStringPropertyAttributeIds[0] );
++		#if OSL_DEBUG_LEVEL > 0
++			sal_Int32 nNameCount = sizeof( pStringPropertyNames ) / sizeof( pStringPropertyNames[0] );
++			OSL_ENSURE( ( nIdCount == nNameCount ),
++				"OControlExport::exportSpecialAttributes: somebody tampered with the maps (2)!" );
++		#endif
++			for ( i = 0; i < nIdCount; ++i )
++				if ( nStringPropertyAttributeIds[i] & m_nIncludeSpecial )
++				{
++					exportStringPropertyAttribute(
++						OAttributeMetaData::getSpecialAttributeNamespace( nStringPropertyAttributeIds[i] ),
++						OAttributeMetaData::getSpecialAttributeName( nStringPropertyAttributeIds[i] ),
++						*( pStringPropertyNames[i] )
++					);
++			#if OSL_DEBUG_LEVEL > 0
++				//  reset the bit for later checking
++				m_nIncludeSpecial = m_nIncludeSpecial & ~nStringPropertyAttributeIds[i];
++			#endif
++				}
++		}
++
++		// ----------------------------------
+ 		if ((SCA_MIN_VALUE | SCA_MAX_VALUE) & m_nIncludeSpecial)
+ 		{
+ 			// need to export the min value and the max value as attributes
+@@ -1653,6 +1686,8 @@ namespace xmloff
+ 				}
+                 if ( m_xPropertyInfo->hasPropertyByName( PROPERTY_IMAGE_POSITION ) )
+                     m_nIncludeSpecial |= SCA_IMAGE_POSITION;
++                if ( m_xPropertyInfo->hasPropertyByName( PROPERTY_GROUP_NAME ) )
++                    m_nIncludeSpecial |= SCA_GROUP_NAME;
+ 				m_nIncludeDatabase = DA_DATA_FIELD;
+ 				m_nIncludeEvents = EA_CONTROL_EVENTS | EA_ON_CHANGE;
+ 				break;
+Index: svx/source/msfilter/msocximex.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/msocximex.cxx,v
+retrieving revision 1.35
+diff -u -p -r1.35 msocximex.cxx
+--- svx/source/msfilter/msocximex.cxx	27 Sep 2007 13:02:19 -0000	1.35
++++ svx/source/msfilter/msocximex.cxx	1 Apr 2008 12:53:10 -0000
+@@ -1763,6 +1763,12 @@ sal_Bool OCX_OptionButton::Import(com::s
+     aTmp <<= ::com::sun::star::style::VerticalAlignment_MIDDLE;
+     rPropSet->setPropertyValue( WW8_ASCII2STR("VerticalAlign"), aTmp );
+ 
++    if ( pGroupName )
++    {
++        aTmp <<= lclCreateOUString( pGroupName, nGroupNameLen );
++        rPropSet->setPropertyValue( WW8_ASCII2STR("GroupName"), aTmp);
++    }
++
+ 	aFontData.Import(rPropSet);
+ 	return sal_True;
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-win32-odma.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-win32-odma.diff
@@ -0,0 +1,2573 @@
+--- ucb/prj/build.lst	18 Oct 2005 08:45:24 -0000	1.20
++++ ucb/prj/build.lst	13 Mar 2006 10:55:34 -0000
+@@ -14,2 +14,3 @@ uc	ucb\source\ucp\package		nmake	-	all	u
+ uc	ucb\source\ucp\tdoc			nmake	-	all	uc_tdoc uc_inc NULL
+ uc	ucb\source\ucp\expand		nmake	-	all	uc_expand uc_inc NULL
++uc	ucb\source\ucp\odma			nmake	-	w	uc_odma uc_inc NULL
+dummy line to avoid confusing diff-mode
+--- ucb/prj/d.lst	18 Oct 2005 08:45:24 -0000	1.20
++++ ucb/prj/d.lst	13 Mar 2006 10:55:34 -0000
+@@ -23,6 +23,11 @@
+ ..\%__SRC%\lib\ucp*.uno.dylib %_DEST%\lib%_EXT%\ucp*.uno.dylib
+ ..\%__SRC%\misc\ucp*.map %_DEST%\bin%_EXT%\ucp*.map
+ ..\%__SRC%\misc\ucp*.sym %_DEST%\bin%_EXT%\ucp*.sym
++
++..\%__SRC%\slb\odma_lib.lib %_DEST%\lib%_EXT%\odma_lib.lib
++..\source\ucp\odma\odma.h %_DEST%\inc%_EXT%\odma.h
++..\source\ucp\odma\odma_lib.hxx %_DEST%\inc%_EXT%\odma_lib.hxx
++
+ ..\source\ucp\file\ucpfile.xml %_DEST%\xml%_EXT%\ucpfile.xml
+ ..\source\ucp\ftp\ucpftp.xml %_DEST%\xml%_EXT%\ucpftp.xml
+ ..\source\ucp\hierarchy\ucphier.xml %_DEST%\xml%_EXT%\ucphier.xml
+Index: ucb/source/ucp/odma/makefile.mk
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/makefile.mk,v
+retrieving revision 1.4
+diff -p -u -r1.4 makefile.mk
+--- ucb/source/ucp/odma/makefile.mk	9 Sep 2005 15:49:57 -0000	1.4
++++ ucb/source/ucp/odma/makefile.mk	6 Nov 2006 00:12:08 -0000
+@@ -63,7 +63,7 @@ LIB2TARGET=NO
+ 
+ # --- General -----------------------------------------------------
+ 
+-SLOFILES=\
++SLO1FILES=\
+ 	$(SLO)$/odma_lib.obj    		\
+ 	$(SLO)$/odma_services.obj    	\
+ 	$(SLO)$/odma_provider.obj    	\
+@@ -76,7 +75,7 @@ SLOFILES=\
+ 	$(SLO)$/odma_contentcaps.obj
+ 
+ LIB1TARGET=$(SLB)$/_$(TARGET).lib
+-LIB1OBJFILES=$(SLOFILES)
++LIB1OBJFILES=$(SLO1FILES)
+ 
+ # --- Shared-Library ---------------------------------------------------
+ 
+@@ -122,6 +121,13 @@ APP2STDLIBS+=$(LIBCIMT)
+ 
+ DEF2DES=UCB ODMA URL converter
+ 
++# --- odma_lib library -----------------------------------------------
++
++SLO3FILES=$(SLO)$/odma_lib.obj
++
++LIB3TARGET=$(SLB)$/odma_lib.lib
++LIB3OBJFILES=$(SLO3FILES)
++
+ # --- Targets ----------------------------------------------------------
+ 
+ .INCLUDE: target.mk
+Index: ucb/source/ucp/odma/odma_content.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_content.cxx,v
+retrieving revision 1.5
+diff -p -u -r1.5 odma_content.cxx
+--- ucb/source/ucp/odma/odma_content.cxx	17 Sep 2006 13:57:15 -0000	1.5
++++ ucb/source/ucp/odma/odma_content.cxx	6 Nov 2006 00:12:08 -0000
+@@ -544,6 +475,12 @@ uno::Any SAL_CALL Content::execute(
+     }
+ 	else if( ! aCommand.Name.compareToAscii( "transfer" ) )
+ 	{
++		// So far I have determined that this command is called when
++		// doing "Save As" to copy an already written backup copy of
++		// the document in the file system into the DMS.
++
++		// Maybe also in other situations.
++
+ 		ucb::TransferInfo aTransferInfo;
+ 		if( ! ( aCommand.Argument >>= aTransferInfo ) )
+ 		{
+@@ -559,84 +560,21 @@
+ 		::rtl::Reference<ContentProperties> aProp = m_aProps;
+ 		if(aProp->m_bIsFolder)
+ 		{
+-			aProp = getContentProvider()->getContentPropertyWithTitle(aTransferInfo.NewTitle);
++			aProp = getContentProvider()->getContentPropertyWithDocumentId(aTransferInfo.NewTitle);
+ 			if(!aProp.is())
+ 				aProp = getContentProvider()->getContentPropertyWithSavedAsName(aTransferInfo.NewTitle);
+ 			sal_Bool bError = !aProp.is();
+-			if(bError)
+-			{
+-				sal_Char* pExtension = NULL;
+-				::rtl::OString sExt;
+-				sal_Int32 nPos = aTransferInfo.NewTitle.lastIndexOf('.');
+-				if(nPos != -1)
+-				{
+-					sExt = ::rtl::OUStringToOString(aTransferInfo.NewTitle.copy(nPos+1),RTL_TEXTENCODING_ASCII_US);
+-					if(sExt.equalsIgnoreAsciiCase("txt"))
+-						pExtension = ODM_FORMAT_TEXT;
+-					else if(sExt.equalsIgnoreAsciiCase("rtf"))
+-						pExtension = ODM_FORMAT_RTF;
+-					else if(sExt.equalsIgnoreAsciiCase("ps"))
+-						pExtension = ODM_FORMAT_PS;
+-					else  
+-						pExtension = const_cast<sal_Char*>(sExt.getStr());
+-				}
+-				else
+-					pExtension = ODM_FORMAT_TEXT;
+ 
+-				sal_Char* lpszNewDocId = new sal_Char[ODM_DOCID_MAX];
+-				void *pData = NULL;
+-				DWORD dwFlags = ODM_SILENT;
+-				ODMSTATUS odm = NODMSaveAsEx(ContentProvider::getHandle(),
+-											 NULL, // means it is saved the first time
+-											 lpszNewDocId,
+-											 pExtension,
+-											 NULL, // no callback function here
+-											 pData,
+-											 &dwFlags);
+-
+-				// check if we have to call the DMS dialog
+-				if(odm == ODM_E_USERINT) 
+-				{ 
+-					dwFlags = 0;
+-					odm = NODMSaveAsEx(ContentProvider::getHandle(),
+-											 NULL, // means it is saved the first time
+-											 lpszNewDocId,
+-											 pExtension,
+-											 NULL, // no callback function here
+-											 pData,
+-											 &dwFlags);
+-				}
+-				bError = odm != ODM_SUCCESS;
+-				if(!bError)
+-				{
+-					aProp = new ContentProperties();
+-					aProp->m_sDocumentId	= ::rtl::OString(lpszNewDocId);
+-					aProp->m_sContentType	= ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODMA_CONTENT_TYPE));
+-					aProp->m_sSavedAsName	= aTransferInfo.NewTitle;
+-					getContentProvider()->append(aProp);
+-
+-					// now set the title
+-					WORD nDocInfo = ODM_NAME;
+-					::rtl::OUString sFileName = aTransferInfo.NewTitle;
+-					sal_Int32 nIndex = aTransferInfo.NewTitle.lastIndexOf( sal_Unicode('.') );
+-					if(nIndex != -1)
+-						sFileName = aTransferInfo.NewTitle.copy(0,nIndex);
+-
+-					::rtl::OString sDocInfoValue = ::rtl::OUStringToOString(sFileName,RTL_TEXTENCODING_ASCII_US);
+-					odm = NODMSetDocInfo(	ContentProvider::getHandle(),
+-											lpszNewDocId,
+-											nDocInfo,
+-											const_cast<sal_Char*>(sDocInfoValue.getStr())
+-											);
+-
+-				}
+-				else if ( odm == ODM_E_CANCEL)
+-                    NODMActivate(ContentProvider::getHandle(),
+-                                 ODM_DELETE,
+-                                 lpszNewDocId);
++			// There used to be code below that called ODMSaveAsEx,
++			// but that was very broken. We have already called
++			// ODMSaveAsEx in the ODMA file picker when selecting the
++			// name for a new document, or the document already exists
++			// in the DMS and we don't need any ODMSaveAsEx. The ODMA
++			// file picker tells odma::ContentProvider about the new
++			// document's DOCID, so the
++			// getContentPropertyWithDocumentId() call above should
++			// succeed.
+ 
+-				delete lpszNewDocId;
+-			}
+ 			if(bError)
+ 				ucbhelper::cancelCommandExecution(
+ 						uno::makeAny( lang::IllegalArgumentException(
+@@ -648,11 +648,22 @@
+ 		rtl::OUString sFileURL = ContentProvider::openDoc(aProp);
+ 
+ 		sal_Int32 nLastIndex = sFileURL.lastIndexOf( sal_Unicode('/') );
++		// Create a new Content object for the "shadow" file
++		// corresponding to the opened document from the DMS.
+ 		::ucbhelper::Content aContent(sFileURL.copy(0,nLastIndex),NULL);
+ 		//	aTransferInfo.NameClash = ucb::NameClash::OVERWRITE;
+ 		aTransferInfo.NewTitle = sFileURL.copy( 1 + nLastIndex );
++		// Copy our saved backup copy to the "shadow" file.
+ 		aContent.executeCommand(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("transfer")),uno::makeAny(aTransferInfo));
++		// Tell the DMS that the "shadow" file is done and can be
++		// imported.
+ 		getContentProvider()->saveDocument(aProp->m_sDocumentId);
++    }
++	else if ( aCommand.Name.equalsAsciiL(
++		    RTL_CONSTASCII_STRINGPARAM( "getCasePreservingURL" ) ) )
++	{
++	    rtl::OUString CasePreservingURL = openDoc();
++	    aRet <<= CasePreservingURL;
+ 	}
+ 	else
+ 	{
+Index: ucb/source/ucp/odma/odma_content.hxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_content.hxx,v
+retrieving revision 1.4
+diff -p -u -r1.4 odma_content.hxx
+--- ucb/source/ucp/odma/odma_content.hxx	9 Sep 2005 15:50:31 -0000	1.4
++++ ucb/source/ucp/odma/odma_content.hxx	6 Nov 2006 00:12:08 -0000
+@@ -70,7 +67,7 @@ namespace odma
+ 
+ // UNO service name for the content.
+ #define ODMA_CONTENT_SERVICE_NAME \
+-							"com.sun.star.ucb.OdmaContent"
++							"com.sun.star.ucb.ODMAContent"
+ 
+ //=========================================================================
+ class ContentProvider;
+Index: ucb/source/ucp/odma/odma_contentprops.hxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_contentprops.hxx,v
+retrieving revision 1.4
+diff -p -u -r1.4 odma_contentprops.hxx
+--- ucb/source/ucp/odma/odma_contentprops.hxx	9 Sep 2005 15:51:07 -0000	1.4
++++ ucb/source/ucp/odma/odma_contentprops.hxx	6 Nov 2006 00:12:08 -0000
+@@ -80,6 +80,7 @@ namespace odma
+ 		{}
+ 
+ 		inline ::rtl::OUString getTitle()		const { return m_sTitle;		}
++		inline ::rtl::OUString getDocumentId()	const { return ::rtl::OStringToOUString( m_sDocumentId, RTL_TEXTENCODING_ASCII_US ); }
+ 		inline ::rtl::OUString getSavedAsName() const { return m_sSavedAsName;	}
+ 	};
+ 	typedef ::std::binary_function< ::rtl::Reference<ContentProperties>, ::rtl::OUString,bool> TContentPropertiesFunctorBase;
+Index: ucb/source/ucp/odma/odma_datasupplier.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_datasupplier.cxx,v
+retrieving revision 1.5
+diff -p -u -r1.5 odma_datasupplier.cxx
+--- ucb/source/ucp/odma/odma_datasupplier.cxx	17 Sep 2006 13:57:42 -0000	1.5
++++ ucb/source/ucp/odma/odma_datasupplier.cxx	6 Nov 2006 00:12:08 -0000
+@@ -63,9 +63,6 @@
+ #ifndef ODMA_PROVIDER_HXX
+ #include "odma_provider.hxx"
+ #endif
+-#ifndef ODMA_LIB_HXX
+-#include "odma_lib.hxx"
+-#endif
+ 
+ using namespace com::sun::star::beans;
+ using namespace com::sun::star::lang;
+@@ -308,7 +306,7 @@ sal_Bool DataSupplier::getResult( sal_uI
+ 	ODMSTATUS odm = NODMGetDMS(ODMA_ODMA_REGNAME, lpszDMSList);
+ 	lpszDMSList[strlen(lpszDMSList)+1] = '\0';
+ 
+-	::rtl::OString sQuery("SELECT ODM_DOCID, ODM_NAME");
++	::rtl::OString sQuery("SELECT ODM_DOCID_LATEST, ODM_NAME");
+ 	
+ 	DWORD dwFlags = ODM_SPECIFIC;
+ 	odm = NODMQueryExecute(ContentProvider::getHandle(), sQuery,dwFlags, lpszDMSList, pQueryId );
+Index: ucb/source/ucp/odma/odma_lib.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_lib.cxx,v
+retrieving revision 1.5
+diff -p -u -r1.5 odma_lib.cxx
+--- ucb/source/ucp/odma/odma_lib.cxx	17 Sep 2006 13:58:10 -0000	1.5
++++ ucb/source/ucp/odma/odma_lib.cxx	6 Nov 2006 00:12:08 -0000
+@@ -44,6 +44,8 @@
+ #ifndef _RTL_USTRING_HXX_ 
+ #include <rtl/ustring.hxx>
+ #endif
++#include <tools/prewin.h>
++#include <tools/postwin.h>
+ #ifndef ODMA_LIB_HXX
+ #include "odma_lib.hxx"
+ #endif
+@@ -84,17 +86,18 @@ namespace odma
+ 
+ 	sal_Bool LoadFunctions(oslModule _pODMA);
+ 
+-	sal_Bool LoadLibrary()
++	sal_Bool DMSsAvailable()
+ 	{
+ 		static sal_Bool bLoaded = sal_False;
+-		static oslModule pODMA = NULL;
++		static sal_Bool bBeenHere = sal_False;
++		oslModule pODMA = NULL;
+ 		
+-		if (bLoaded) 
+-			return sal_True;
++		if (bBeenHere) 
++			return bLoaded;
++
+ 		::rtl::OUString sPath;
+ 	#ifdef WIN
+ 		sPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMA.DLL"));
+-		
+ 	#endif
+ 	#ifdef WNT
+ 		sPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMA32.DLL"));
+@@ -103,11 +106,21 @@ namespace odma
+ 		sPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("libodma.so"));
+ 	#endif
+ 
++		bBeenHere = sal_True;
++
+ 		pODMA = osl_loadModule( sPath.pData,SAL_LOADMODULE_NOW );
+ 		if( !pODMA)
+ 			return sal_False;
+ 
+-		return bLoaded = LoadFunctions(pODMA);
++		if (!LoadFunctions(pODMA))
++			return sal_False;
++
++		bLoaded = (NODMGetDMSCount() > 0);
++
++		if (getenv ("NO_ODMA"))
++			bLoaded = sal_False;
++
++		return bLoaded;
+ 	}
+ 	// -------------------------------------------------------------------------
+ 
+Index: ucb/source/ucp/odma/odma_lib.hxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_lib.hxx,v
+retrieving revision 1.4
+diff -p -u -r1.4 odma_lib.hxx
+--- ucb/source/ucp/odma/odma_lib.hxx	9 Sep 2005 15:52:48 -0000	1.4
++++ ucb/source/ucp/odma/odma_lib.hxx	6 Nov 2006 00:12:08 -0000
+@@ -35,20 +35,8 @@
+ #ifndef ODMA_LIB_HXX
+ #define ODMA_LIB_HXX
+ 
+-typedef void	            *LPVOID;
+-typedef char				*LPSTR, 
+-							*PSTR;
+-typedef const char			*LPCSTR;
+-typedef unsigned long       DWORD;
+-typedef unsigned short      WORD;
+-typedef unsigned short      *LPWORD;
+-typedef DWORD		        *LPDWORD;
+-
+-#define WINAPI				__stdcall
+-#define FAR
+-
+ #ifndef ODMA_H
+-#include "odma.h"
++#include <odma.h>
+ #endif
+ 
+ namespace odma
+@@ -215,37 +203,37 @@ namespace odma
+ 
+ 	// now we define some macros
+ 
+-	#define NODMRegisterApp(a,b,c,d,e)			(*(pODMRegisterApp))(a,b,c,d,e)
+-	#define NODMUnRegisterApp(a)				(*(pODMUnRegisterApp))(a)
+-	#define NODMSelectDoc(a,b,c)				(*(pODMSelectDoc))(a,b,c)
+-	#define NODMOpenDoc(a,b,c,d)				(*(pODMOpenDoc))(a,b,c,d)
+-	#define NODMSaveDoc(a,b,c)					(*(pODMSaveDoc))(a,b,c)
+-	#define NODMCloseDoc(a,b,c,d,e,f)			(*(pODMCloseDoc))(a,b,c,d,e,f)
+-	#define NODMNewDoc(a,b,c,d,e)				(*(pODMNewDoc))(a,b,c,d,e)
+-	#define NODMSaveAs(a,b,c,d,e,f)				(*(pODMSaveAs))(a,b,c,d,e,f)
+-	#define NODMActivate(a,b,c)					(*(pODMActivate))(a,b,c)
+-	#define NODMGetDocInfo(a,b,c,d,e)			(*(pODMGetDocInfo))(a,b,c,d,e)
+-	#define NODMSetDocInfo(a,b,c,d)				(*(pODMSetDocInfo))(a,b,c,d)
+-	#define NODMGetDMSInfo(a,b,c,d)				(*(pODMGetDMSInfo))(a,b,c,d)
+-	#define NODMGetDMSCount()					(*(pODMGetDMSCount))()
+-	#define NODMGetDMSList(a,b)					(*(pODMGetDMSList))(a,b)
+-	#define NODMGetDMS(a,b)						(*(pODMGetDMS))(a,b)
+-	#define NODMSetDMS(a,b)						(*(pODMSetDMS))(a,b)
+-	#define NODMQueryExecute(a,b,c,d,e)			(*(pODMQueryExecute))(a,b,c,d,e)
+-	#define NODMQueryGetResults(a,b,c,d,e,f)	(*(pODMQueryGetResults))(a,b,c,d,e,f)
+-	#define NODMQueryClose(a,b)					(*(pODMQueryClose))(a,b)
+-	#define NODMCloseDocEx(a,b,c,d,e,f,g)		(*(pODMCloseDocEx))(a,b,c,d,e,f,g)
+-	#define NODMSaveAsEx(a,b,c,d,e,f,g)			(*(pODMSaveAsEx))(a,b,c,d,e,f,g)
+-	#define NODMSaveDocEx(a,b,c,d)				(*(pODMSaveDocEx))(a,b,c,d)
+-	#define NODMSelectDocEx(a,b,c,d,e,f)		(*(pODMSelectDocEx))(a,b,c,d,e,f)
+-	#define NODMQueryCapability(a,b,c,d,e)		(*(pODMQueryCapability))(a,b,c,d,e)
+-	#define NODMSetDocEvent(a,b,c,d,e,f,g)		(*(pODMSetDocEvent))(a,b,c,d,e,f,g)
+-	#define NODMGetAlternateContent(a,b,c,d,e)	(*(pODMGetAlternateContent))(a,b,c,d,e)
+-	#define NODMSetAlternateContent(a,b,c,d,e)	(*(pODMSetAlternateContent))(a,b,c,d,e)
+-	#define NODMGetDocRelation(a,b,c,d,e,f)		(*(pODMGetDocRelation))(a,b,c,d,e,f)
+-	#define NODMSetDocRelation(a,b,c,d,e,f)		(*(pODMSetDocRelation))(a,b,c,d,e,f)
++	#define NODMRegisterApp(a,b,c,d,e)			(*(::odma::pODMRegisterApp))(a,b,c,d,e)
++	#define NODMUnRegisterApp(a)				(*(::odma::pODMUnRegisterApp))(a)
++	#define NODMSelectDoc(a,b,c)				(*(::odma::pODMSelectDoc))(a,b,c)
++	#define NODMOpenDoc(a,b,c,d)				(*(::odma::pODMOpenDoc))(a,b,c,d)
++	#define NODMSaveDoc(a,b,c)					(*(::odma::pODMSaveDoc))(a,b,c)
++	#define NODMCloseDoc(a,b,c,d,e,f)			(*(::odma::pODMCloseDoc))(a,b,c,d,e,f)
++	#define NODMNewDoc(a,b,c,d,e)				(*(::odma::pODMNewDoc))(a,b,c,d,e)
++	#define NODMSaveAs(a,b,c,d,e,f)				(*(::odma::pODMSaveAs))(a,b,c,d,e,f)
++	#define NODMActivate(a,b,c)					(*(::odma::pODMActivate))(a,b,c)
++	#define NODMGetDocInfo(a,b,c,d,e)			(*(::odma::pODMGetDocInfo))(a,b,c,d,e)
++	#define NODMSetDocInfo(a,b,c,d)				(*(::odma::pODMSetDocInfo))(a,b,c,d)
++	#define NODMGetDMSInfo(a,b,c,d)				(*(::odma::pODMGetDMSInfo))(a,b,c,d)
++	#define NODMGetDMSCount()					(*(::odma::pODMGetDMSCount))()
++	#define NODMGetDMSList(a,b)					(*(::odma::pODMGetDMSList))(a,b)
++	#define NODMGetDMS(a,b)						(*(::odma::pODMGetDMS))(a,b)
++	#define NODMSetDMS(a,b)						(*(::odma::pODMSetDMS))(a,b)
++	#define NODMQueryExecute(a,b,c,d,e)			(*(::odma::pODMQueryExecute))(a,b,c,d,e)
++	#define NODMQueryGetResults(a,b,c,d,e,f)	(*(::odma::pODMQueryGetResults))(a,b,c,d,e,f)
++	#define NODMQueryClose(a,b)					(*(::odma::pODMQueryClose))(a,b)
++	#define NODMCloseDocEx(a,b,c,d,e,f,g)		(*(::odma::pODMCloseDocEx))(a,b,c,d,e,f,g)
++	#define NODMSaveAsEx(a,b,c,d,e,f,g)			(*(::odma::pODMSaveAsEx))(a,b,c,d,e,f,g)
++	#define NODMSaveDocEx(a,b,c,d)				(*(::odma::pODMSaveDocEx))(a,b,c,d)
++	#define NODMSelectDocEx(a,b,c,d,e,f)		(*(::odma::pODMSelectDocEx))(a,b,c,d,e,f)
++	#define NODMQueryCapability(a,b,c,d,e)		(*(::odma::pODMQueryCapability))(a,b,c,d,e)
++	#define NODMSetDocEvent(a,b,c,d,e,f,g)		(*(::odma::pODMSetDocEvent))(a,b,c,d,e,f,g)
++	#define NODMGetAlternateContent(a,b,c,d,e)	(*(::odma::pODMGetAlternateContent))(a,b,c,d,e)
++	#define NODMSetAlternateContent(a,b,c,d,e)	(*(::odma::pODMSetAlternateContent))(a,b,c,d,e)
++	#define NODMGetDocRelation(a,b,c,d,e,f)		(*(::odma::pODMGetDocRelation))(a,b,c,d,e,f)
++	#define NODMSetDocRelation(a,b,c,d,e,f)		(*(::odma::pODMSetDocRelation))(a,b,c,d,e,f)
+ 
+-	sal_Bool LoadLibrary();
++	sal_Bool DMSsAvailable();
+ 
+ 	extern TODMRegisterApp			pODMRegisterApp;
+ 	extern TODMUnRegisterApp		pODMUnRegisterApp;
+Index: ucb/source/ucp/odma/odma_provider.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_provider.cxx,v
+retrieving revision 1.5
+diff -p -u -r1.5 odma_provider.cxx
+--- ucb/source/ucp/odma/odma_provider.cxx	17 Sep 2006 13:58:37 -0000	1.5
++++ ucb/source/ucp/odma/odma_provider.cxx	6 Nov 2006 00:12:08 -0000
+@@ -459,7 +434,7 @@ void ContentProvider::append(const ::vos
+ 		lpszDMSList[strlen(lpszDMSList)+1] = '\0';
+ 
+ 		::rtl::OString sTitleText(::rtl::OUStringToOString(_sDocumentName,RTL_TEXTENCODING_ASCII_US));
+-		::rtl::OString sQuery("SELECT ODM_DOCID, ODM_NAME WHERE ODM_TITLETEXT = '");
++		::rtl::OString sQuery("SELECT ODM_DOCID_LATEST, ODM_NAME WHERE ODM_TITLETEXT = '");
+ 		sQuery += sTitleText;
+ 		sQuery += "'";
+ 		
+@@ -551,6 +521,12 @@ void ContentProvider::append(const ::vos
+ 	return getContentProperty(_sTitle,aFunc);
+ }
+ // -----------------------------------------------------------------------------
++::rtl::Reference<ContentProperties> ContentProvider::getContentPropertyWithDocumentId(const ::rtl::OUString& _sDocumentId) const
++{
++	ContentPropertiesMemberFunctor aFunc(::std::mem_fun(&ContentProperties::getDocumentId));
++	return getContentProperty(_sDocumentId,aFunc);
++}
++// -----------------------------------------------------------------------------
+ ::rtl::OUString ContentProvider::openDoc(const ::rtl::Reference<ContentProperties>& _rProp)  throw (uno::Exception)
+ {
+ 	OSL_ENSURE(_rProp.is(),"No valid content properties!");
+Index: ucb/source/ucp/odma/odma_provider.hxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_provider.hxx,v
+retrieving revision 1.4
+diff -p -u -r1.4 odma_provider.hxx
+--- ucb/source/ucp/odma/odma_provider.hxx	9 Sep 2005 15:53:43 -0000	1.4
++++ ucb/source/ucp/odma/odma_provider.hxx	6 Nov 2006 00:12:09 -0000
+@@ -40,6 +40,8 @@
+ #ifndef _UCBHELPER_PROVIDERHELPER_HXX
+ #include <ucbhelper/providerhelper.hxx>
+ #endif
++#include <tools/prewin.h>
++#include <tools/postwin.h>
+ #ifndef ODMA_LIB_HXX
+ #include "odma_lib.hxx"
+ #endif
+@@ -60,7 +62,7 @@ namespace odma {
+ // UNO service name for the provider. This name will be used by the UCB to
+ // create instances of the provider.
+ #define ODMA_CONTENT_PROVIDER_SERVICE_NAME \
+-				"com.sun.star.ucb.OdmaContentProvider"
++				"com.sun.star.ucb.ODMAContentProvider"
+ //	#define ODMA_CONTENT_PROVIDER_SERVICE_NAME_LENGTH	34
+ 
+ // URL scheme. This is the scheme the provider will be able to create
+@@ -150,14 +152,21 @@ public:
+ 	*/
+ 	::rtl::Reference<ContentProperties> queryContentProperty(const ::rtl::OUString& _sDocumentName);
+ 
+-	/** getContentProperty returns the ContentProperties for the first content with that title
++	/** getContentPropertyWithTitle returns the ContentProperties for the first content with that title
+ 		@param	_sTitle	the title of the document
+ 
+ 		@return	the content properties
+ 	*/
+ 	::rtl::Reference<ContentProperties> getContentPropertyWithTitle(const ::rtl::OUString& _sTitle) const;
+ 
+-	/** getContentProperty returns the ContentProperties for the first content with that SavedAsName
++	/** getContentPropertyWithDocumentId returns the ContentProperties for the first content with that title
++		@param	_sTitle	the title of the document
++
++		@return	the content properties
++	*/
++	::rtl::Reference<ContentProperties> getContentPropertyWithDocumentId(const ::rtl::OUString& _sDocumentId) const;
++
++	/** getContentPropertyWithSavedAsName returns the ContentProperties for the first content with that SavedAsName
+ 		@param	_sSaveAsName	the SavedAsName of the document
+ 
+ 		@return	the content properties
+Index: ucb/source/ucp/odma/odma_services.cxx
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/odma_services.cxx,v
+retrieving revision 1.5
+diff -p -u -r1.5 odma_services.cxx
+--- ucb/source/ucp/odma/odma_services.cxx	17 Sep 2006 13:59:05 -0000	1.5
++++ ucb/source/ucp/odma/odma_services.cxx	6 Nov 2006 00:12:09 -0000
+@@ -52,23 +52,19 @@
+ #ifndef ODMA_PROVIDER_HXX
+ #include "odma_provider.hxx"
+ #endif
+-#ifndef ODMA_LIB_HXX
+-#include "odma_lib.hxx"
+-#endif
+ 
+-using namespace rtl;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::lang;
+ using namespace com::sun::star::registry;
+ 
+ //=========================================================================
+ static sal_Bool writeInfo( void * pRegistryKey,
+-						   const OUString & rImplementationName,
+-   						   Sequence< OUString > const & rServiceNames )
++						   const rtl::OUString & rImplementationName,
++   						   Sequence< rtl::OUString > const & rServiceNames )
+ {
+-	OUString aKeyName( OUString::createFromAscii( "/" ) );
++	rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
+ 	aKeyName += rImplementationName;
+-	aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
++	aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
+ 
+ 	Reference< XRegistryKey > xKey;
+ 	try
+@@ -141,10 +137,8 @@ extern "C" void * SAL_CALL component_get
+ 	if ( ::odma::ContentProvider::getImplementationName_Static().
+ 				compareToAscii( pImplName ) == 0 )
+ 	{
+-		if(::odma::LoadLibrary())
++		if(::odma::DMSsAvailable())
+ 			xFactory = ::odma::ContentProvider::createServiceFactory( xSMgr );
+-		else
+-			OSL_ASSERT(!"Could not load library!");
+ 	}
+ 
+ 	//////////////////////////////////////////////////////////////////////
+Index: ucb/source/ucp/odma/ucpodma.xml
+===================================================================
+RCS file: /cvs/ucb/ucb/ucb/source/ucp/odma/ucpodma.xml,v
+retrieving revision 1.3
+diff -p -u -r1.3 ucpodma.xml
+--- ucb/source/ucp/odma/ucpodma.xml	25 Aug 2003 13:02:22 -0000	1.3
++++ ucb/source/ucp/odma/ucpodma.xml	6 Nov 2006 00:12:09 -0000
+@@ -11,7 +11,7 @@
+             Ocke Janssen
+         </author>
+         <name>
+-            com.sun.star.comp.ucb.OdmaContentProvider
++            com.sun.star.comp.ucb.ODMAContentProvider
+         </name>
+         <description>
+ 	    This component implements a Content Provider for the Universal
+dummy line to avoid confusing diff-mode
+--- officecfg/registry/data/org/openoffice/ucb/Configuration.xcu	8 Sep 2005 15:07:17 -0000	1.9
++++ officecfg/registry/data/org/openoffice/ucb/Configuration.xcu	13 Mar 2006 11:05:44 -0000
+@@ -151,4 +151,15 @@
+               </prop>
+             </node>
++            <node oor:name="Provider42" oor:op="replace">
++              <prop oor:name="ServiceName">
++                <value>com.sun.star.ucb.ODMAContentProvider</value>
++              </prop>
++              <prop oor:name="URLTemplate">
++                <value>vnd.sun.star.odma</value>
++              </prop>
++              <prop oor:name="Arguments">
++                <value/>
++              </prop>
++            </node>
+           </node>
+         </node>
+dummy line to avoid confusing diff-mode
+--- scp2/source/ooo/file_library_ooo.scp	17 Feb 2006 16:52:02 -0000	1.184.2.2
++++ scp2/source/ooo/file_library_ooo.scp	13 Mar 2006 11:07:23 -0000
+@@ -2069,4 +2071,6 @@
+ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH(gid_File_Ucpexpand1, ucpexpand1.uno)
+ 
++SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH(gid_File_Ucpodma1, ucpodma1)
++
+ #ifndef SYSTEM_HUNSPELL
+ 
+dummy line to avoid confusing diff-mode
+--- desktop/source/app/cmdlineargs.cxx	8 Sep 2005 17:05:40 -0000	1.28
++++ desktop/source/app/cmdlineargs.cxx	13 Mar 2006 12:00:25 -0000
+@@ -275,4 +282,13 @@
+ 					else
+ 					{
++						if( bOpenEvent || bViewEvent || bForceNewEvent || bForceOpenEvent )
++						{
++							if( ::rtl::OUString(aArgStr).matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("::ODMA")) )
++							{
++								::rtl::OUString sArg = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("vnd.sun.star.odma:/"));
++								sArg += aArgStr;
++								aArgStr = sArg;
++							}	
++						}
+ 						// handle this argument as a filename
+ 						if ( bOpenEvent )
+dummy line to avoid confusing diff-mode
+--- fpicker/prj/build.lst
++++ fpicker/prj/build.lst
+@@ -2,6 +2,7 @@
+ fp	fpicker\inc							nmake	-	all	fp_inc NULL
+ fp	fpicker\source\generic				nmake	-	all	fp_generic fp_inc NULL
+ fp	fpicker\source\office				nmake	-	all	fp_office fp_inc NULL
++fp	fpicker\source\odma				nmake	-	w	fp_odma NULL
+ fp	fpicker\source\unx\gnome			nmake	-	u	fp_gnome_filepicker fp_inc NULL
+ fp	fpicker\source\unx\kde_unx			nmake	-	u	fp_unx_common fp_inc NULL
+ fp	fpicker\source\unx\kde				nmake	-	u	fp_unx_kde_filepicker fp_inc NULL
+dummy line to avoid confusing diff-mode
+--- fpicker/source/generic/makefile.mk
++++ fpicker/source/generic/makefile.mk
+@@ -54,6 +54,7 @@
+ SHL1IMPLIB=	i$(TARGET)
+ SHL1OBJS=	$(SLOFILES)
+ SHL1STDLIBS=\
++	$(ODMA_LIB_LIB) \
+ 	$(VCLLIB) \
+ 	$(SVLLIB) \
+         $(SVTOOLLIB) \
+dummy line to avoid confusing diff-mode
+--- fpicker/source/generic/fpicker.cxx
++++ fpicker/source/generic/fpicker.cxx
+@@ -52,6 +52,12 @@
+ #include "com/sun/star/lang/XMultiComponentFactory.hpp"
+ #endif
+ 
++#ifdef WNT
++#include <tools/prewin.h>
++#include <tools/postwin.h>
++#include <odma_lib.hxx>
++#endif
++
+ #ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
+ #include "svtools/miscopt.hxx"
+ #endif
+@@ -75,15 +75,22 @@
+  */
+ static OUString FilePicker_getSystemPickerServiceName()
+ {
++#ifdef UNX
+ 	OUString aDesktopEnvironment (Application::GetDesktopEnvironment());
+ 	if (aDesktopEnvironment.equalsIgnoreAsciiCaseAscii ("gnome"))
+ 		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.GtkFilePicker"));
+ 	else if (aDesktopEnvironment.equalsIgnoreAsciiCaseAscii ("kde"))
+ 		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.KDEFilePicker"));
+     else if (aDesktopEnvironment.equalsIgnoreAsciiCaseAscii ("macosx"))
+         return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.AquaFilePicker"));
+-    else
+-        return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.SystemFilePicker"));
++#endif
++#ifdef WNT
++	if (SvtMiscOptions().TryODMADialog() && ::odma::DMSsAvailable()) {
++		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.ODMAFilePicker"));
++	}
++	return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.Win32FilePicker"));
++#endif
++	return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.SystemFilePicker"));
+ }
+ 
+ static Reference< css::uno::XInterface > FilePicker_createInstance (
+@@ -144,14 +144,20 @@
+ static OUString FolderPicker_getSystemPickerServiceName()
+ {
+ 	OUString aDesktopEnvironment (Application::GetDesktopEnvironment());
++#ifdef UNX
+ 	if (aDesktopEnvironment.equalsIgnoreAsciiCaseAscii ("gnome"))
+ 		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.GtkFolderPicker"));
+ 	else if (aDesktopEnvironment.equalsIgnoreAsciiCaseAscii ("kde"))
+ 		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.KDEFolderPicker"));
+     else if (aDesktopEnvironment.equalsIgnoreAsciiCaseAscii ("macosx"))
+         return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.AquaFolderPicker"));
+-	else
+-		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.SystemFolderPicker"));
++#endif
++#ifdef WNT
++	if (SvtMiscOptions().TryODMADialog() && ::odma::DMSsAvailable()) {
++		return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.ODMAFolderPicker"));
++	}
++#endif
++	return OUString (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.ui.dialogs.SystemFolderPicker"));
+ }
+ 
+ static Reference< css::uno::XInterface > FolderPicker_createInstance (
+diff -ruN fpicker/source/odma/ODMAFilePicker.cxx fpicker/source/odma/ODMAFilePicker.cxx
+--- fpicker/source/odma/ODMAFilePicker.cxx	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/ODMAFilePicker.cxx	2006-11-03 13:31:25.014750000 +0000
+@@ -0,0 +1,565 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 12010 $
++ *
++ *  last change: $Author: tml $ $Date: 2008-03-25 19:30:23 -0500 (Tue, 25 Mar 2008) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_fpicker.hxx"
++
++#include "ODMAFilePicker.hxx"
++
++#ifndef _TOOLS_DEBUG_HXX
++#include <tools/debug.hxx>
++#endif
++
++#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
++#include <com/sun/star/beans/PropertyValue.hpp>
++#endif
++#ifndef _COM_SUN_STAR_BEANS_STRINGPAIR_HPP_
++#include <com/sun/star/beans/StringPair.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_UI_DIALOGS_FILEPREVIEWIMAGEFORMATS_HPP_
++#include <com/sun/star/ui/dialogs/FilePreviewImageFormats.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UI_DIALOGS_EXECUTABLEDIALOGRESULTS_HPP_
++#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UI_DIALOGS_TEMPLATEDESCRIPTION_HPP_
++#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UCB_XCOMMANDENVIRONMENT_HPP_
++#include <com/sun/star/ucb/XCommandEnvironment.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_UNO_ANY_HXX_
++#include <com/sun/star/uno/Any.hxx>
++#endif
++#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
++#include <com/sun/star/uno/Sequence.hxx>
++#endif
++
++#ifndef _COMPHELPER_SEQUENCE_HXX_
++#include <comphelper/sequence.hxx>
++#endif
++#ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
++#include <cppuhelper/typeprovider.hxx>
++#endif
++#ifndef _UCBHELPER_CONTENT_HXX
++#include <ucbhelper/content.hxx>
++#endif
++#ifndef _UNOTOOLS_UCBHELPER_HXX
++#include <unotools/ucbhelper.hxx>
++#endif
++
++#ifndef ODMA_LIB_HXX
++#include <tools/prewin.h>
++#include <tools/postwin.h>
++#include <odma_lib.hxx>
++#endif
++
++// using ----------------------------------------------------------------
++
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::ui::dialogs;
++using namespace ::com::sun::star::ucb;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::util;
++using namespace ::utl;
++
++//------------------------------------------------------------------------------------
++// class ODMAFilePicker
++//------------------------------------------------------------------------------------
++ODMAFilePicker::ODMAFilePicker( const Reference < XMultiServiceFactory >& xFactory ) :
++	cppu::WeakComponentImplHelper9<
++	  XFilterManager, 
++	  XFilterGroupManager,
++	  XFilePickerControlAccess,
++	  XFilePickerNotifier,
++	  XFilePreview,
++	  XInitialization,
++	  XCancellable,
++	  XEventListener,
++	  XServiceInfo>( m_rbHelperMtx ),
++	m_bMultiSelectionMode( sal_False ),
++	m_aDefaultName( ),
++	m_aFiles( ),
++	m_nDialogKind( OPEN )
++{
++	m_bUseDMS = ::odma::DMSsAvailable();
++	m_xSystemFilePicker = xFactory->createInstance(
++		::rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.Win32FilePicker" ) );
++}
++
++// XExecutableDialog functions
++
++void SAL_CALL ODMAFilePicker::setTitle( const ::rtl::OUString& aTitle )
++	throw (RuntimeException)
++{
++	Reference< XExecutableDialog > xExecutableDialog( m_xSystemFilePicker, UNO_QUERY );
++	xExecutableDialog->setTitle( aTitle);
++}
++
++sal_Int16 SAL_CALL ODMAFilePicker::execute( )
++	throw (RuntimeException)
++{
++	ODMSTATUS status;
++	ODMHANDLE handle;
++	WORD count = 0;
++	DWORD flags;
++
++	status = NODMRegisterApp( &handle, ODM_API_VERSION, "sodma", (DWORD) GetActiveWindow( ), NULL );
++	if (status == ODM_SUCCESS)
++	{
++		if (m_nDialogKind == OPEN)
++		{
++			const int MAXDOCS = 10;
++			char docids[ODM_DOCID_MAX*MAXDOCS+1];
++			WORD docidslen = sizeof( docids );
++
++			flags = 0;
++			if (m_bMultiSelectionMode)
++				count = MAXDOCS;
++			else
++				count = 1;
++			status = NODMSelectDocEx( handle, docids, &docidslen, &count, &flags, NULL );
++			if (status == ODM_SUCCESS)
++			{
++				// GroupWise doesn't set docidslen or count, so
++				// calculate number of document IDs manually 
++				char *p = docids;
++				count = 0;
++				while (*p) {
++					count++;
++					p += strlen( p ) + 1;
++				}
++			}
++			else if (status == ODM_E_NOSUPPORT)
++			{
++				status = NODMSelectDoc( handle, docids, &flags );
++				if (status == ODM_SUCCESS)
++					count = 1;
++			}
++			NODMUnRegisterApp( handle );
++			if (status == ODM_SUCCESS)
++			{
++				rtl::OUString *strings = new rtl::OUString[count];
++				int i;
++				char *p = docids;
++				
++				for (i = 0; i < count; i++) {
++					// Insane API... the first element is a full URI, the rest
++					// are just the "basenames" in the same "directory".
++					if (i == 0)
++						strings[0] = rtl::OUString::createFromAscii( "vnd.sun.star.odma:/" ) + rtl::OUString::createFromAscii( p );
++					else
++						strings[i] = rtl::OUString::createFromAscii( p );
++					p += strlen( p );
++				}
++
++				m_aFiles = Sequence< rtl::OUString >( strings, count );
++				delete[] strings;
++				return ExecutableDialogResults::OK;
++			}
++		}
++		else /* m_nDialogKind == SAVE */
++		{
++			char newdocid[ODM_DOCID_MAX+1];
++			
++			if (m_aDefaultName.getLength() == 0 ||
++				!m_aDefaultName.matchIgnoreAsciiCaseAsciiL( "::ODMA\\", 7, 0 ))
++			{
++				char tempdocid[ODM_DOCID_MAX+1];
++
++				status = NODMNewDoc( handle, tempdocid, ODM_SILENT, NULL, NULL );
++				if (status == ODM_SUCCESS)
++					status = NODMSaveAs( handle, tempdocid, newdocid, NULL, NULL, NULL );
++			}
++			else
++			{
++				rtl::OString sDefaultName = rtl::OUStringToOString( m_aDefaultName, RTL_TEXTENCODING_ASCII_US );
++				status = NODMSaveAs( handle,
++									 const_cast<sal_Char*>( sDefaultName.getStr() ),
++									 newdocid, NULL, NULL, NULL );
++			}
++
++			NODMUnRegisterApp( handle );
++			if (status == ODM_SUCCESS)
++			{
++				rtl::OUString s( rtl::OUString::createFromAscii( "vnd.sun.star.odma:/" ) +
++								 rtl::OUString::createFromAscii( newdocid ) );
++				// Create a Content for the odma URL so that
++				// odma::ContentProvider will learn about the DOCID we
++				// just created.
++				ucbhelper::Content content( s, Reference< XCommandEnvironment >() );
++				m_aFiles = Sequence< rtl::OUString >( &s, 1 );
++				return ExecutableDialogResults::OK;
++			}
++		}
++	}
++	if (status == ODM_E_APPSELECT)
++	{
++		m_bUseDMS = sal_False;
++
++		Reference< XExecutableDialog > xExecutableDialog( m_xSystemFilePicker, UNO_QUERY );
++		return xExecutableDialog->execute();
++	}
++
++	// Fallback
++	return ExecutableDialogResults::CANCEL;
++}
++
++// XFilePicker functions
++
++void SAL_CALL ODMAFilePicker::setMultiSelectionMode( sal_Bool bMode )
++	throw( RuntimeException )
++{
++	m_bMultiSelectionMode = bMode;
++
++	Reference< XFilePicker > xFilePicker( m_xSystemFilePicker, UNO_QUERY );
++	xFilePicker->setMultiSelectionMode( bMode );
++}
++
++void SAL_CALL ODMAFilePicker::setDefaultName( const rtl::OUString& aName )
++	throw( RuntimeException )
++{
++	// When editing a document from DMS, and doing Save As, this is
++	// called twice, first with the complete DOCID, the second time
++	// with the "extension" removed. Of course, this is bogus, as
++	// DOCIDs should be treated as opaque strings, they don't have
++	// "extensions".
++
++	// In the GroupWise case a DOCID is like
++	// ::ODMA\GRPWISE\FOO1.BAR.FOO-Bla_bla:12345.12 where the final
++	// dot separates the version number, not an "extension".
++	//
++	// So ignore the second call.
++	//
++	// The second call without "extension" is done if the
++	// XFilePickerControlAccess is set to have auto-extension turned
++	// on. (See sfx2/source/dialog/filedlghelper.cxx:
++	// FileDialogHelper_Impl::implInitializeFileName().) Thus we could
++	// alternatively make sure that a getValue call to get
++	// ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION returns
++	// false. But that might be hard as we don't know in advance
++	// whether the user will click the "use application dialog"
++	// button. If so, we indeed do use auto-extensions.
++	//
++	// Yes, this is ugly, relying on knowing details on how this
++	// function will be called.
++
++	if ( m_aDefaultName.getLength() == 0 )
++		m_aDefaultName = aName;
++
++	Reference< XFilePicker > xFilePicker( m_xSystemFilePicker, UNO_QUERY );
++	xFilePicker->setDefaultName( aName );
++}
++
++void SAL_CALL ODMAFilePicker::setDisplayDirectory( const rtl::OUString& aDirectory )
++    throw( IllegalArgumentException, RuntimeException )
++{
++	m_aDisplayDirectory = aDirectory;
++
++	Reference< XFilePicker > xFilePicker( m_xSystemFilePicker, UNO_QUERY );
++	xFilePicker->setDisplayDirectory( aDirectory );
++}
++
++rtl::OUString SAL_CALL ODMAFilePicker::getDisplayDirectory( )
++	throw( RuntimeException )
++{
++	if (m_bUseDMS)
++		return m_aDisplayDirectory;
++
++	Reference< XFilePicker > xFilePicker( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePicker->getDisplayDirectory();
++}
++
++Sequence< rtl::OUString > SAL_CALL ODMAFilePicker::getFiles( )
++	throw( RuntimeException )
++{
++	if (m_bUseDMS)
++		return m_aFiles;
++
++	Reference< XFilePicker > xFilePicker( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePicker->getFiles();
++}
++
++// XFilePickerControlAccess functions
++
++void SAL_CALL ODMAFilePicker::setValue( sal_Int16 nElementID,
++										sal_Int16 nControlAction,
++										const Any& rValue )
++    throw( RuntimeException )
++{
++	Reference< XFilePickerControlAccess > xFilePickerControlAccess( m_xSystemFilePicker, UNO_QUERY );
++	xFilePickerControlAccess->setValue( nElementID, nControlAction, rValue );
++}
++
++Any SAL_CALL ODMAFilePicker::getValue( sal_Int16 nElementID, sal_Int16 nControlAction )
++    throw( RuntimeException )
++{
++	Reference< XFilePickerControlAccess > xFilePickerControlAccess( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePickerControlAccess->getValue( nElementID, nControlAction );
++}
++
++void SAL_CALL ODMAFilePicker::setLabel( sal_Int16 nLabelID, const rtl::OUString& rValue )
++    throw ( RuntimeException )
++{
++	Reference< XFilePickerControlAccess > xFilePickerControlAccess( m_xSystemFilePicker, UNO_QUERY );
++	xFilePickerControlAccess->setLabel( nLabelID, rValue );
++}
++
++rtl::OUString SAL_CALL ODMAFilePicker::getLabel( sal_Int16 nLabelID )
++    throw ( RuntimeException )
++{
++	Reference< XFilePickerControlAccess > xFilePickerControlAccess( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePickerControlAccess->getLabel( nLabelID );
++}
++
++void SAL_CALL ODMAFilePicker::enableControl( sal_Int16 nElementID, sal_Bool bEnable )
++    throw( RuntimeException )
++{
++	Reference< XFilePickerControlAccess > xFilePickerControlAccess( m_xSystemFilePicker, UNO_QUERY );
++	xFilePickerControlAccess->enableControl( nElementID, bEnable );
++}
++
++// XFilePickerNotifier functions
++
++void SAL_CALL ODMAFilePicker::addFilePickerListener( const Reference< XFilePickerListener >& xListener )
++	throw ( RuntimeException )
++{
++	Reference< XFilePickerNotifier > xFilePickerNotifier( m_xSystemFilePicker, UNO_QUERY );
++	xFilePickerNotifier->addFilePickerListener( xListener );
++}
++
++void SAL_CALL ODMAFilePicker::removeFilePickerListener( const Reference< XFilePickerListener >& xListener )
++	throw ( RuntimeException )
++{
++	Reference< XFilePickerNotifier > xFilePickerNotifier( m_xSystemFilePicker, UNO_QUERY );
++	xFilePickerNotifier->removeFilePickerListener( xListener );
++}
++
++// XFilePreview functions
++
++Sequence< sal_Int16 > SAL_CALL ODMAFilePicker::getSupportedImageFormats( )
++    throw ( RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePreview->getSupportedImageFormats();
++}
++
++sal_Int32 SAL_CALL ODMAFilePicker::getTargetColorDepth( )
++	throw ( RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePreview->getTargetColorDepth();
++}
++
++sal_Int32 SAL_CALL ODMAFilePicker::getAvailableWidth( )
++	throw ( RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePreview->getAvailableWidth();
++}
++
++sal_Int32 SAL_CALL ODMAFilePicker::getAvailableHeight( )
++	throw ( RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePreview->getAvailableHeight();
++}
++
++void SAL_CALL ODMAFilePicker::setImage( sal_Int16 aImageFormat, const Any& rImage )
++    throw ( IllegalArgumentException, RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	xFilePreview->setImage( aImageFormat, rImage);
++}
++
++sal_Bool SAL_CALL ODMAFilePicker::setShowState( sal_Bool bShowState )
++    throw ( RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePreview->setShowState( bShowState);
++}
++
++sal_Bool SAL_CALL ODMAFilePicker::getShowState( )
++	throw ( RuntimeException )
++{
++	Reference< XFilePreview > xFilePreview( m_xSystemFilePicker, UNO_QUERY );
++	return xFilePreview->getShowState();
++}
++
++// XFilterGroupManager functions
++
++void SAL_CALL ODMAFilePicker::appendFilterGroup( const ::rtl::OUString& sGroupTitle,
++												 const Sequence< StringPair >& aFilters )
++	throw ( IllegalArgumentException, RuntimeException )
++{
++	Reference< XFilterGroupManager > xFilterGroupManager( m_xSystemFilePicker, UNO_QUERY );
++	xFilterGroupManager->appendFilterGroup( sGroupTitle, aFilters );
++}
++
++// XFilterManager functions
++
++void SAL_CALL ODMAFilePicker::appendFilter( const rtl::OUString& aTitle,
++                                            const rtl::OUString& aFilter )
++    throw( IllegalArgumentException, RuntimeException )
++{
++	Reference< XFilterManager > xFilterManager( m_xSystemFilePicker, UNO_QUERY );
++	xFilterManager->appendFilter( aTitle, aFilter );
++}
++
++void SAL_CALL ODMAFilePicker::setCurrentFilter( const rtl::OUString& aTitle )
++    throw( IllegalArgumentException, RuntimeException )
++{
++	Reference< XFilterManager > xFilterManager( m_xSystemFilePicker, UNO_QUERY );
++	xFilterManager->setCurrentFilter( aTitle );
++}
++
++rtl::OUString SAL_CALL ODMAFilePicker::getCurrentFilter( )
++    throw( RuntimeException )
++{
++	Reference< XFilterManager > xFilterManager( m_xSystemFilePicker, UNO_QUERY );
++	return xFilterManager->getCurrentFilter();
++}
++
++// XInitialization functions
++
++void SAL_CALL ODMAFilePicker::initialize( const Sequence< Any >& aArguments )
++	throw ( Exception, RuntimeException )
++{
++	if (aArguments.getLength( ) > 0)
++	{
++		Any aAny = aArguments[0];
++
++		if ( (aAny.getValueType() == ::getCppuType((sal_Int16*)0)) ||
++			 (aAny.getValueType() == ::getCppuType((sal_Int8*)0)) )
++		{
++			sal_Int16 nTemplateId = -1;
++			aAny >>= nTemplateId;
++
++			switch (nTemplateId) {
++			case TemplateDescription::FILEOPEN_SIMPLE:
++			case TemplateDescription::FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE:
++			case TemplateDescription::FILEOPEN_PLAY:
++			case TemplateDescription::FILEOPEN_READONLY_VERSION:
++			case TemplateDescription::FILEOPEN_LINK_PREVIEW:
++				m_nDialogKind = OPEN;
++				break;
++			default:
++				m_nDialogKind = SAVE;
++			}
++		}
++	}
++
++	Reference< XInitialization > xInitialization( m_xSystemFilePicker, UNO_QUERY );
++	xInitialization->initialize( aArguments );
++}
++
++// XCancellable functions
++
++void SAL_CALL ODMAFilePicker::cancel( )
++	throw( ::com::sun::star::uno::RuntimeException )
++{
++	Reference< XCancellable > xCancellable( m_xSystemFilePicker, UNO_QUERY );
++	xCancellable->cancel();
++}
++
++// XEventListener functions
++
++void SAL_CALL ODMAFilePicker::disposing( const ::com::sun::star::lang::EventObject& aEvent )
++	throw( RuntimeException )
++{
++	Reference< XEventListener > xEventListener( m_xSystemFilePicker, UNO_QUERY );
++	xEventListener->disposing( aEvent );
++}
++
++// XServiceInfo functions
++
++rtl::OUString SAL_CALL ODMAFilePicker::getImplementationName( )
++	throw( RuntimeException )
++{
++	return impl_getStaticImplementationName();
++}
++
++sal_Bool SAL_CALL ODMAFilePicker::supportsService( const rtl::OUString& sServiceName )
++	throw( RuntimeException )
++{
++    Sequence< rtl::OUString > seqServiceNames = getSupportedServiceNames();
++    const rtl::OUString* pArray = seqServiceNames.getConstArray();
++    for ( sal_Int32 i = 0; i < seqServiceNames.getLength(); i++ )
++	{
++        if ( sServiceName == pArray[i] )
++		{
++            return sal_True ;
++		}
++	}
++    return sal_False ;
++}
++
++Sequence< rtl::OUString > SAL_CALL ODMAFilePicker::getSupportedServiceNames( )
++	throw( RuntimeException )
++{
++	return impl_getStaticSupportedServiceNames();
++}
++
++Sequence< rtl::OUString > ODMAFilePicker::impl_getStaticSupportedServiceNames( )
++{
++    Sequence< rtl::OUString > seqServiceNames( 2 );
++    rtl::OUString* pArray = seqServiceNames.getArray();
++    pArray[0] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.ODMAFilePicker" );
++
++	// Super-ugly, but check the function sal_Bool
++	// lcl_isSystemFilePicker( const Reference< XFilePicker >& ) in
++	// sfx2/source/dialog/filedlghelper.cxx 
++
++    // Lovely undocumented coupling right across abstraction layers,
++    // isn't it?  If we don't claim to implement this "service" (which
++    // is not defined in any IDL file, btw), we get hangs.
++
++    pArray[1] = rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.SystemFilePicker" );
++    return seqServiceNames ;
++}
++
++rtl::OUString ODMAFilePicker::impl_getStaticImplementationName( )
++{
++    return rtl::OUString::createFromAscii( "com.sun.star.svtools.ODMAFilePicker" );
++}
++
++Reference< XInterface > SAL_CALL ODMAFilePicker::impl_createInstance(
++	const Reference< XComponentContext >& rxContext)
++	throw( Exception )
++{
++	Reference< XMultiServiceFactory > xServiceManager (rxContext->getServiceManager(), UNO_QUERY_THROW);
++	return Reference< XInterface >( *new ODMAFilePicker( xServiceManager ) );
++}
+diff -ruN fpicker/source/odma/ODMAFilePicker.hxx fpicker/source/odma/ODMAFilePicker.hxx
+--- fpicker/source/odma/ODMAFilePicker.hxx	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/ODMAFilePicker.hxx	2006-11-02 01:39:33.483549300 +0000
+@@ -0,0 +1,242 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 12010 $
++ *
++ *  last change: $Author: tml $ $Date: 2008-03-25 19:30:23 -0500 (Tue, 25 Mar 2008) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef INCLUDED_ODMA_FILEPICKER_HXX
++#define INCLUDED_ODMA_FILEPICKER_HXX
++
++#ifndef _CPPUHELPER_COMPBASE9_HXX_
++#include <cppuhelper/compbase9.hxx>
++#endif
++
++#ifndef  _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERCONTROLACCESS_HPP_
++#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERNOTIFIER_HPP_
++#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_UI_DIALOGS_XFILEPREVIEW_HPP_
++#include <com/sun/star/ui/dialogs/XFilePreview.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_UI_DIALOGS_XFILTERMANAGER_HPP_
++#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERGROUPMANAGER_HPP_
++#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERLISTENER_HPP_
++#include <com/sun/star/ui/dialogs/XFilePickerListener.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UTIL_XCANCELLABLE_HPP_
++#include <com/sun/star/util/XCancellable.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UNO_XCOMPONENT_CONTEXT_HPP_
++#include <com/sun/star/uno/XComponentContext.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
++#include <com/sun/star/lang/XInitialization.hpp>
++#endif
++
++// class ODMAFilePicker ---------------------------------------------------
++
++class ODMAFilePicker :
++	public cppu::WeakComponentImplHelper9<
++	  ::com::sun::star::ui::dialogs::XFilterManager,
++	  ::com::sun::star::ui::dialogs::XFilterGroupManager,
++	  ::com::sun::star::ui::dialogs::XFilePickerControlAccess,
++	  ::com::sun::star::ui::dialogs::XFilePickerNotifier,
++	  ::com::sun::star::ui::dialogs::XFilePreview,
++	  ::com::sun::star::lang::XInitialization,
++      ::com::sun::star::util::XCancellable,
++	  ::com::sun::star::lang::XEventListener,
++	  ::com::sun::star::lang::XServiceInfo >		
++{
++private:
++	sal_Bool m_bUseDMS;
++	sal_Bool m_bMultiSelectionMode;
++	rtl::OUString m_aDefaultName;
++	rtl::OUString m_aDisplayDirectory;
++	::com::sun::star::uno::Sequence< rtl::OUString > m_aFiles;
++	enum { OPEN, SAVE } m_nDialogKind;
++
++	::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xSystemFilePicker;
++
++protected:
++	::osl::Mutex m_rbHelperMtx;
++
++public:
++
++	ODMAFilePicker( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory >& xFactory );
++
++	// XFilterManager functions
++
++	virtual void SAL_CALL appendFilter( const ::rtl::OUString& aTitle,
++										const ::rtl::OUString& aFilter )
++		throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++
++	virtual void SAL_CALL setCurrentFilter( const ::rtl::OUString& aTitle )
++		throw( ::com::sun::star::lang::IllegalArgumentException,
++			   ::com::sun::star::uno::RuntimeException );
++
++	virtual ::rtl::OUString SAL_CALL getCurrentFilter( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	// XFilterGroupManager functions
++
++	virtual void SAL_CALL appendFilterGroup( const ::rtl::OUString& sGroupTitle,
++											 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair >& aFilters )
++		throw (::com::sun::star::lang::IllegalArgumentException,
++			   ::com::sun::star::uno::RuntimeException );
++
++	// XFilePickerControlAccess functions
++
++	virtual void SAL_CALL setValue( sal_Int16 nControlID,
++									sal_Int16 nControlAction,
++									const ::com::sun::star::uno::Any& aValue )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	virtual ::com::sun::star::uno::Any SAL_CALL getValue( sal_Int16 nControlID,
++											 sal_Int16 nControlAction )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual void SAL_CALL setLabel( sal_Int16 nControlID,
++									const ::rtl::OUString& aValue )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual ::rtl::OUString SAL_CALL getLabel( sal_Int16 nControlID )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++	virtual void SAL_CALL enableControl( sal_Int16 nControlID,
++										 sal_Bool bEnable )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	// XFilePicker functions
++
++	virtual void SAL_CALL setMultiSelectionMode( sal_Bool bMode )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	virtual void SAL_CALL setDefaultName( const ::rtl::OUString& aName )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	virtual void SAL_CALL setDisplayDirectory( const ::rtl::OUString& aDirectory )
++		throw( ::com::sun::star::lang::IllegalArgumentException,
++			   ::com::sun::star::uno::RuntimeException );
++
++	virtual ::rtl::OUString SAL_CALL getDisplayDirectory( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	// XExecutableDialog functions
++
++	virtual void SAL_CALL setTitle( const ::rtl::OUString& aTitle )
++		throw (::com::sun::star::uno::RuntimeException);
++
++	virtual sal_Int16 SAL_CALL execute(  )
++		throw (::com::sun::star::uno::RuntimeException);
++
++	// XFilePickerNotifier functions
++
++    virtual void SAL_CALL addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual void SAL_CALL removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++	// XFilePreview functions
++
++    virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSupportedImageFormats( )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Int32 SAL_CALL getTargetColorDepth( )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Int32 SAL_CALL getAvailableWidth( )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Int32 SAL_CALL getAvailableHeight( )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual void SAL_CALL setImage( sal_Int16 aImageFormat,
++									const ::com::sun::star::uno::Any& aImage )
++		throw ( ::com::sun::star::lang::IllegalArgumentException,
++				::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Bool SAL_CALL setShowState( sal_Bool bShowState )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Bool SAL_CALL getShowState( )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++	// XInitialization functions
++
++    virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
++		throw ( ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException );
++
++	// XCancellable functions
++
++	virtual void SAL_CALL cancel( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	// XEventListener functions
++
++	using cppu::WeakComponentImplHelperBase::disposing;
++	virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent ) 
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	// XServiceInfo functions
++
++    virtual ::rtl::OUString SAL_CALL getImplementationName( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& sServiceName )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	/* Helper for XServiceInfo */
++	static ::com::sun::star::uno::Sequence< ::rtl::OUString > impl_getStaticSupportedServiceNames( );
++	static ::rtl::OUString impl_getStaticImplementationName( );
++
++    /* Helper for registry */
++	static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance ( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext )
++		throw( ::com::sun::star::uno::Exception );
++};
++
++#endif // INCLUDED_ODMA_FILEPICKER_HXX
+diff -ruN fpicker/source/odma/ODMAFolderPicker.cxx fpicker/source/odma/ODMAFolderPicker.cxx
+--- fpicker/source/odma/ODMAFolderPicker.cxx	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/ODMAFolderPicker.cxx	2006-10-30 01:09:51.281250000 +0000
+@@ -0,0 +1,203 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 12010 $
++ *
++ *  last change: $Author: tml $ $Date: 2008-03-25 19:30:23 -0500 (Tue, 25 Mar 2008) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_fpicker.hxx"
++
++#include "ODMAFolderPicker.hxx"
++
++#define _SVSTDARR_STRINGSDTOR
++#include "svtools/svstdarr.hxx"
++
++#ifndef  _COM_SUN_STAR_CONTAINER_XCONTENTENUMERATIONACCESS_HPP_
++#include <com/sun/star/container/XContentEnumerationAccess.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_CONTAINER_XSET_HPP_
++#include <com/sun/star/container/XSet.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_UNO_ANY_HXX_
++#include <com/sun/star/uno/Any.hxx>
++#endif
++#ifndef  _CPPUHELPER_FACTORY_HXX_
++#include <cppuhelper/factory.hxx>
++#endif
++#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
++#include <com/sun/star/beans/XPropertySet.hpp>
++#endif
++
++#ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
++#include <svtools/pathoptions.hxx>
++#endif
++
++#ifndef ODMA_LIB_HXX
++#include <tools/prewin.h>
++#include <odma_lib.hxx>
++#include <tools/postwin.h>
++#endif
++
++// using ----------------------------------------------------------------
++
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::container;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::uno;
++
++//------------------------------------------------------------------------------------
++// class ODMAFolderPicker
++//------------------------------------------------------------------------------------
++
++//------------------------------------------------------------------------------------
++ODMAFolderPicker::ODMAFolderPicker( const Reference < XMultiServiceFactory >& xFactory ) :
++	cppu::WeakComponentImplHelper2<
++	  XFolderPicker,
++	  XServiceInfo>( m_rbHelperMtx ),
++	m_bUseDMS( sal_False )
++{
++	m_xInterface = xFactory->createInstance(
++		::rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.SystemFolderPicker" ) );
++}
++
++// XExecutableDialog functions
++
++void SAL_CALL ODMAFolderPicker::setTitle( const ::rtl::OUString& _rTitle ) throw (RuntimeException)
++{
++	if (m_bUseDMS)
++		return;
++
++	Reference< XExecutableDialog > xExecutableDialog( m_xInterface, UNO_QUERY );
++	xExecutableDialog->setTitle( _rTitle);
++}
++
++sal_Int16 SAL_CALL ODMAFolderPicker::execute( )
++	throw (RuntimeException)
++{
++	if (m_bUseDMS)
++		throw new RuntimeException( );
++
++	Reference< XExecutableDialog > xExecutableDialog( m_xInterface, UNO_QUERY );
++	return xExecutableDialog->execute();
++}
++
++// XFolderPicker functions
++
++void SAL_CALL ODMAFolderPicker::setDisplayDirectory( const ::rtl::OUString& aDirectory )
++    throw( IllegalArgumentException, RuntimeException )
++{
++	if (m_bUseDMS)
++		return;
++
++	Reference< XFolderPicker > xFolderPicker( m_xInterface, UNO_QUERY );
++	xFolderPicker->setDisplayDirectory( aDirectory );
++}
++
++::rtl::OUString SAL_CALL ODMAFolderPicker::getDisplayDirectory( )
++	throw( RuntimeException )
++{
++	if (m_bUseDMS)
++		return rtl::OUString();
++
++	Reference< XFolderPicker > xFolderPicker( m_xInterface, UNO_QUERY );
++	return xFolderPicker->getDisplayDirectory();
++}
++
++::rtl::OUString SAL_CALL ODMAFolderPicker::getDirectory( )
++	throw( RuntimeException )
++{
++	if (m_bUseDMS)
++		return rtl::OUString();
++
++	Reference< XFolderPicker > xFolderPicker( m_xInterface, UNO_QUERY );
++	return xFolderPicker->getDirectory();
++}
++
++void SAL_CALL ODMAFolderPicker::setDescription( const ::rtl::OUString& aDescription )
++    throw( RuntimeException )
++{
++	if (m_bUseDMS)
++		return;
++
++	Reference< XFolderPicker > xFolderPicker( m_xInterface, UNO_QUERY );
++	xFolderPicker->setDescription( aDescription );
++}
++
++// XServiceInfo
++
++::rtl::OUString SAL_CALL ODMAFolderPicker::getImplementationName( )
++	throw( RuntimeException )
++{
++	return impl_getStaticImplementationName();
++}
++
++sal_Bool SAL_CALL ODMAFolderPicker::supportsService( const ::rtl::OUString& sServiceName )
++	throw( RuntimeException )
++{
++    Sequence< ::rtl::OUString > seqServiceNames = getSupportedServiceNames();
++    const ::rtl::OUString* pArray = seqServiceNames.getConstArray();
++    for ( sal_Int32 i = 0; i < seqServiceNames.getLength(); i++ )
++	{
++        if ( sServiceName == pArray[i] )
++		{
++            return sal_True ;
++		}
++	}
++    return sal_False ;
++}
++
++Sequence< ::rtl::OUString > SAL_CALL ODMAFolderPicker::getSupportedServiceNames()
++	throw( RuntimeException )
++{
++	return impl_getStaticSupportedServiceNames();
++}
++
++Sequence< ::rtl::OUString > ODMAFolderPicker::impl_getStaticSupportedServiceNames( )
++{
++    Sequence< ::rtl::OUString > seqServiceNames( 2 );
++    ::rtl::OUString* pArray = seqServiceNames.getArray();
++    pArray[0] = ::rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.FolderPicker" );
++    pArray[1] = ::rtl::OUString::createFromAscii( "com.sun.star.ui.dialogs.ODMAFolderPicker" );
++    return seqServiceNames ;
++}
++
++::rtl::OUString ODMAFolderPicker::impl_getStaticImplementationName( )
++{
++    return ::rtl::OUString::createFromAscii( "com.sun.star.svtools.ODMAFolderPicker" );
++}
++
++Reference< XInterface > SAL_CALL ODMAFolderPicker::impl_createInstance( const Reference< XComponentContext >& rxContext )
++    throw( Exception )
++{
++	Reference< XMultiServiceFactory > xServiceManager (rxContext->getServiceManager(), UNO_QUERY_THROW);
++	return Reference< XInterface >( *new ODMAFolderPicker( xServiceManager ) );
++}
+diff -ruN fpicker/source/odma/ODMAFolderPicker.hxx fpicker/source/odma/ODMAFolderPicker.hxx
+--- fpicker/source/odma/ODMAFolderPicker.hxx	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/ODMAFolderPicker.hxx	2006-10-26 22:36:34.718125000 +0000
+@@ -0,0 +1,118 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 12010 $
++ *
++ *  last change: $Author: tml $ $Date: 2008-03-25 19:30:23 -0500 (Tue, 25 Mar 2008) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++#ifndef INCLUDED_ODMA_FOLDERPICKER_HXX
++#define INCLUDED_ODMA_FOLDERPICKER_HXX
++
++#ifndef _CPPUHELPER_COMPBASE2_HXX_
++#include <cppuhelper/compbase2.hxx>
++#endif
++
++#ifndef  _COM_SUN_STAR_UI_DIALOGS_XFOLDERPICKER_HPP_
++#include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++#ifndef  _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++#endif
++#ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
++#include <com/sun/star/lang/DisposedException.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
++#include <com/sun/star/uno/XComponentContext.hpp>
++#endif
++
++// class ODMAFolderPicker ---------------------------------------------------
++
++class ODMAFolderPicker :
++	public cppu::WeakComponentImplHelper2<
++	  ::com::sun::star::ui::dialogs::XFolderPicker,	
++	  ::com::sun::star::lang::XServiceInfo >
++{
++private:
++	sal_Bool m_bUseDMS;
++
++protected:
++	::osl::Mutex m_rbHelperMtx;
++
++	::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xInterface;
++
++public:
++	ODMAFolderPicker( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory >& xFactory );
++
++	// XFolderPicker functions
++
++	virtual void SAL_CALL setDisplayDirectory( const ::rtl::OUString& aDirectory )
++		throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++
++	virtual ::rtl::OUString SAL_CALL getDisplayDirectory( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual ::rtl::OUString SAL_CALL getDirectory( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual void SAL_CALL setDescription( const ::rtl::OUString& aDescription )
++		throw ( ::com::sun::star::uno::RuntimeException );
++
++	// XExecutableDialog functions
++
++	virtual void SAL_CALL setTitle( const ::rtl::OUString& _rTitle )
++		throw (::com::sun::star::uno::RuntimeException);
++
++	virtual sal_Int16 SAL_CALL execute(  )
++		throw (::com::sun::star::uno::RuntimeException);
++
++	// XServiceInfo functions
++
++    virtual ::rtl::OUString SAL_CALL getImplementationName( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& sServiceName )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++    virtual com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( )
++		throw( ::com::sun::star::uno::RuntimeException );
++
++	/* Helper for XServiceInfo */
++	static com::sun::star::uno::Sequence< ::rtl::OUString > impl_getStaticSupportedServiceNames( );
++	static ::rtl::OUString impl_getStaticImplementationName( );
++
++	/* Helper for registry */
++	static ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL impl_createInstance ( const ::com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxContext )
++		throw( com::sun::star::uno::Exception );
++};
++
++#endif // INCLUDED_ODMA_FOLDERPICKER_HXX
+diff -ruN fpicker/source/odma/exports.map fpicker/source/odma/exports.map
+--- fpicker/source/odma/exports.map	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/exports.map	2006-10-25 20:34:28.536983200 +0000
+@@ -0,0 +1,8 @@
++UDK_3_0_0 {
++    global:
++		component_getImplementationEnvironment;
++		component_writeInfo;
++		component_getFactory;
++	local:
++		*;
++};
+diff -ruN fpicker/source/odma/fps_odma.cxx fpicker/source/odma/fps_odma.cxx
+--- fpicker/source/odma/fps_odma.cxx	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/fps_odma.cxx	2006-10-25 01:19:43.329875000 +0000
+@@ -0,0 +1,90 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 12010 $
++ *
++ *  last change: $Author: tml $ $Date: 2008-03-25 19:30:23 -0500 (Tue, 25 Mar 2008) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_fpicker.hxx"
++
++#ifndef _SAL_TYPES_H_
++#include "sal/types.h"
++#endif
++
++#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_HXX_
++#include "cppuhelper/implementationentry.hxx"
++#endif
++
++#include "ODMAFilePicker.hxx"
++#include "ODMAFolderPicker.hxx"
++
++static cppu::ImplementationEntry g_entries[] =
++{
++	{
++		ODMAFilePicker::impl_createInstance,
++		ODMAFilePicker::impl_getStaticImplementationName,
++		ODMAFilePicker::impl_getStaticSupportedServiceNames,
++		cppu::createSingleComponentFactory, 0, 0
++	},
++	{
++		ODMAFolderPicker::impl_createInstance,
++		ODMAFolderPicker::impl_getStaticImplementationName,
++		ODMAFolderPicker::impl_getStaticSupportedServiceNames,
++		cppu::createSingleComponentFactory, 0, 0
++	},
++	{ 0, 0, 0, 0, 0, 0 }
++};
++
++extern "C"
++{
++SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
++	const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */)
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++
++SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
++	void * pServiceManager, void * pRegistryKey)
++{
++	return cppu::component_writeInfoHelper (
++		pServiceManager, pRegistryKey, g_entries);
++}
++
++SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
++	const sal_Char * pImplementationName, void * pServiceManager, void * pRegistryKey)
++{
++	return cppu::component_getFactoryHelper (
++		pImplementationName, pServiceManager, pRegistryKey, g_entries);
++}
++
++} // extern "C"
+diff -ruN fpicker/source/odma/makefile.mk fpicker/source/odma/makefile.mk
+--- fpicker/source/odma/makefile.mk	1970-01-01 00:00:00.000000000 +0000
++++ fpicker/source/odma/makefile.mk	2006-10-30 14:40:05.281250000 +0000
+@@ -0,0 +1,79 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision: 12010 $
++#
++#   last change: $Author: tml $ $Date: 2008-03-25 19:30:23 -0500 (Tue, 25 Mar 2008) $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJNAME=fpicker
++TARGET=fps_odma
++LIBTARGET=NO
++ENABLE_EXCEPTIONS=TRUE
++GEN_HID=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++DLLPRE=
++
++# --- Files --------------------------------------------------------
++
++SLOFILES=\
++	$(SLO)$/ODMAFilePicker.obj \
++	$(SLO)$/ODMAFolderPicker.obj \
++	$(SLO)$/fps_odma.obj
++
++SHL1TARGET=	$(TARGET).uno
++SHL1IMPLIB=	i$(TARGET)
++SHL1OBJS=	$(SLOFILES)
++SHL1STDLIBS=\
++	$(ODMA_LIB_LIB) \
++	$(SVTOOLLIB) \
++	$(TKLIB) \
++	$(VCLLIB) \
++	$(SVLLIB) \
++	$(UNOTOOLSLIB) \
++	$(TOOLSLIB) \
++	$(UCBHELPERLIB) \
++	$(COMPHELPERLIB) \
++	$(CPPUHELPERLIB) \
++	$(CPPULIB) \
++	$(SALLIB)
++
++SHL1VERSIONMAP=exports.map
++SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
++DEF1NAME=	$(SHL1TARGET)
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :	target.mk
+dummy line to avoid confusing diff-mode
+--- scp2/source/ooo/file_library_ooo.scp
++++ scp2/source/ooo/file_library_ooo.scp
+@@ -850,6 +850,10 @@
+ #endif
+ #endif
+ 
++#ifdef WNT
++SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gid_File_Lib_Fps_ODMA, fps_odma.uno )
++#endif
++
+ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gid_File_Lib_Fps_Office, fps_office.uno )
+ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gid_File_Lib_Fpicker, fpicker.uno )
+ 
+dummy line to avoid confusing diff-mode
+--- solenv/inc/libs.mk
++++ solenv/inc/libs.mk
+@@ -35,4 +35,7 @@
+ 
+ .IF "$(GUI)"=="UNX" || "$(COM)"=="GCC"
++
++# No ODMA on UNX
++ODMA_LIB_LIB= 
+ 
+ #
+@@ -279,6 +279,7 @@
+ PYUNOLIB=-lpyuno
+ 
+ .ELSE				# "$(GUI)"=="UNX"
++ODMA_LIB_LIB=odma_lib.lib
+ AWTLIB*=jawt.lib
+ AVMEDIALIB=iavmedia.lib
+ ICUINLIB=icuin.lib
+dummy line to avoid confusing diff-mode
+--- svtools/inc/svtools/miscopt.hxx
++++ svtools/inc/svtools/miscopt.hxx
+@@ -136,6 +136,10 @@
+         void        SetUseSystemFileDialog( sal_Bool bSet );
+         sal_Bool    IsUseSystemFileDialogReadOnly() const;
+ 
++        sal_Bool    TryODMADialog() const;
++        void        SetTryODMADialog( sal_Bool bSet );
++        sal_Bool    IsTryUseODMADialogReadOnly() const;
++
+         sal_Bool    DisableUICustomization() const;
+ 
+         sal_Bool    IsPluginsEnabled() const;
+dummy line to avoid confusing diff-mode
+--- svtools/source/config/miscopt.cxx
++++ svtools/source/config/miscopt.cxx
+@@ -110,8 +110,10 @@
+ #define PROPERTYHANDLE_SYMBOLSTYLE			4
+ #define PROPERTYNAME_DISABLEUICUSTOMIZATION	ASCII_STR("DisableUICustomization")
+ #define PROPERTYHANDLE_DISABLEUICUSTOMIZATION			5
++#define PROPERTYNAME_TRYODMADIALOG	ASCII_STR("TryODMADialog")
++#define PROPERTYHANDLE_TRYODMADIALOG	6
+ 
+-#define PROPERTYCOUNT						6
++#define PROPERTYCOUNT						7
+ 
+ #define VCL_TOOLBOX_STYLE_FLAT				((USHORT)0x0004) // from <vcl/toolbox.hxx>
+ 
+@@ -131,6 +131,8 @@
+     LinkList    aList;
+     sal_Bool    m_bUseSystemFileDialog;
+     sal_Bool    m_bIsUseSystemFileDialogRO;
++    sal_Bool    m_bTryODMADialog;
++    sal_Bool    m_bIsTryODMADialogRO;
+     sal_Bool    m_bPluginsEnabled;
+     sal_Bool    m_bIsPluginsEnabledRO;
+     sal_Int16   m_nSymbolsSize;
+@@ -207,6 +207,15 @@
+         inline sal_Bool IsUseSystemFileDialogReadOnly() const
+         { return m_bIsUseSystemFileDialogRO; }
+ 
++        inline sal_Bool TryODMADialog() const
++        { return m_bTryODMADialog; }
++
++        inline void SetTryODMADialog( sal_Bool bSet )
++        {  m_bTryODMADialog = bSet; SetModified(); }
++
++        inline sal_Bool IsTryUseODMADialogReadOnly() const
++        { return m_bIsTryODMADialogRO; }
++
+         inline sal_Bool DisableUICustomization() const
+         { return m_bDisableUICustomization; }
+ 
+@@ -319,6 +319,8 @@
+ 
+     , m_bUseSystemFileDialog( sal_False )
+     , m_bIsUseSystemFileDialogRO( sal_False )
++    , m_bTryODMADialog( sal_False )
++    , m_bIsTryODMADialogRO( sal_False )
+     , m_bPluginsEnabled( sal_False )
+     , m_bIsPluginsEnabledRO( sal_False )
+     , m_nSymbolsSize( 0 )
+@@ -388,6 +388,16 @@
+                 break;
+             }
+ 
++            case PROPERTYHANDLE_TRYODMADIALOG :
++            {
++                if( !(seqValues[nProperty] >>= m_bTryODMADialog) )
++                {
++                    DBG_ERROR("Wrong type of \"Misc\\TryODMADialog\"!" );
++                }
++                m_bIsTryODMADialogRO = seqRO[nProperty];
++                break;
++            }
++
+             case PROPERTYHANDLE_SYMBOLSTYLE :
+             {
+                 ::rtl::OUString aSymbolsStyle;
+@@ -489,6 +489,13 @@
+                                                             }
+                                                         }
+                                                     break;
++            case PROPERTYHANDLE_TRYODMADIALOG       :   {
++                                                            if( !(seqValues[nProperty] >>= m_bTryODMADialog) )
++                                                            {
++                                                                DBG_ERROR("Wrong type of \"Misc\\TryODMADialog\"!" );
++                                                            }
++                                                        }
++                                                    break;
+             case PROPERTYHANDLE_SYMBOLSTYLE         :   {
+                                                             ::rtl::OUString aSymbolsStyle;
+                                                             if( seqValues[nProperty] >>= aSymbolsStyle )
+@@ -638,6 +638,13 @@
+                 break;
+             }
+ 
++            case PROPERTYHANDLE_TRYODMADIALOG :
++            {
++                if ( !m_bIsTryODMADialogRO )
++                    seqValues[nProperty] <<= m_bTryODMADialog;
++                break;
++            }
++
+             case PROPERTYHANDLE_SYMBOLSTYLE :
+             {
+                 if ( !m_bIsSymbolsStyleRO )
+@@ -668,7 +668,8 @@
+         PROPERTYNAME_TOOLBOXSTYLE,
+         PROPERTYNAME_USESYSTEMFILEDIALOG,
+         PROPERTYNAME_SYMBOLSTYLE,
+-        PROPERTYNAME_DISABLEUICUSTOMIZATION
++        PROPERTYNAME_DISABLEUICUSTOMIZATION,
++        PROPERTYNAME_TRYODMADIALOG
+ 	};
+ 
+ 	// Initialize return sequence with these list ...
+@@ -737,6 +737,21 @@
+     return m_pDataContainer->IsUseSystemFileDialogReadOnly();
+ }
+ 
++sal_Bool SvtMiscOptions::TryODMADialog() const
++{
++    return m_pDataContainer->TryODMADialog();
++}
++
++void SvtMiscOptions::SetTryODMADialog( sal_Bool bEnable )
++{
++    m_pDataContainer->SetTryODMADialog( bEnable );
++}
++
++sal_Bool SvtMiscOptions::IsTryUseODMADialogReadOnly() const
++{
++    return m_pDataContainer->IsTryUseODMADialogReadOnly();
++}
++
+ sal_Bool SvtMiscOptions::IsPluginsEnabled() const
+ {
+     return m_pDataContainer->IsPluginsEnabled();
+dummy line to avoid confusing diff-mode
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs
+@@ -5131,6 +5131,13 @@
+ 				</info>
+ 				<value>true</value>
+ 			</prop>
++			<prop oor:name="TryODMADialog" oor:type="xs:boolean">
++				<info>
++					<author>tml</author>
++					<desc>Determines whether to show the document creation and selection of the machine's default ODMA (Open Document Management Architecture) DMS (Document Management System). If true, and the machine has a DMS available, the DMS's dialog will be displayed. That dialog then gives the opportunity to use the application's dialog instead, which means the normal system file and folder pickers will be displayed. Relevant only on Windows.</desc>
++				</info>
++				<value>false</value>
++			</prop>
+ 			<prop oor:name="DisableUICustomization" oor:type="xs:boolean">
+ 				<info>
+ 					<author>RSiddhartha</author>
+dummy line to avoid confusing diff-mode
+--- svx/source/dialog/optgdlg.src
++++ svx/source/dialog/optgdlg.src
+@@ -136,43 +136,50 @@
+ 		Size = MAP_APPFONT( WHOLE_WIDTH - COL1, RSC_CD_CHECKBOX_HEIGHT );
+ 		Text [ en-US ] = "~Use %PRODUCTNAME dialogs";
+ 	};
++	CheckBox CB_ODMADLG
++	{
++        Pos = MAP_APPFONT( COL1, ROW8 );
++		Size = MAP_APPFONT( WHOLE_WIDTH - COL4, RSC_CD_CHECKBOX_HEIGHT );
++		Text [ en-US ] = "Show ODMA DMS dialogs first";
++		Text [ en-GB ] = "Show ODMA DMS dialogues first";
++	};
+     FixedLine FL_DOCSTATUS
+     {
+-        Pos = MAP_APPFONT( COL0, ROW8 );
++        Pos = MAP_APPFONT( COL0, ROW9 );
+ 		Size = MAP_APPFONT( WHOLE_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
+     	Text [ en-US ] = "Document status";
+ 	};
+     CheckBox CB_DOCSTATUS
+ 	{
+-        Pos = MAP_APPFONT( COL1, ROW9 );
++        Pos = MAP_APPFONT( COL1, ROW10 );
+ 		Size = MAP_APPFONT( WHOLE_WIDTH - COL1, RSC_CD_CHECKBOX_HEIGHT );
+     	Text [ en-US ] = "~Printing sets \"document modified\" status";
+ 	};
+ 	FixedLine FL_TWOFIGURE
+ 	{
+-		Pos = MAP_APPFONT( COL0, ROW10 );
++		Pos = MAP_APPFONT( COL0, ROW11 );
+ 		Size = MAP_APPFONT( WHOLE_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
+ 		Text [ en-US ] = "Year (two digits)" ;
+ 	};
+ 	FixedText FT_INTERPRET
+ 	{
+-		Pos = MAP_APPFONT( COL1, OFFS_TEXTBOX_FIXEDTEXT(ROW11) );
++		Pos = MAP_APPFONT( COL1, OFFS_TEXTBOX_FIXEDTEXT(ROW12) );
+ 		Size = MAP_APPFONT( DIFF( COL1, COL3), RSC_CD_FIXEDTEXT_HEIGHT );
+ 		Text [ en-US ] = "Interpret as years between";
+ 	};
+ 	NumericField NF_YEARVALUE
+ 	{
+ 		Border = TRUE ;
+-		Pos = MAP_APPFONT( COL4, ROW11 );
++		Pos = MAP_APPFONT( COL4, ROW12 );
+ 		Size = MAP_APPFONT( EDIT_WIDTH, RSC_CD_TEXTBOX_HEIGHT );
+ 		Minimum = 1583 ;
+ 		Maximum = 9857 ;
+ 		Spin = TRUE ;
+ 		Repeat = TRUE ;
+ 	};
+ 	FixedText FT_TOYEAR
+ 	{
+-		Pos = MAP_APPFONT( COL6, OFFS_TEXTBOX_FIXEDTEXT(ROW11) );
++		Pos = MAP_APPFONT( COL6, OFFS_TEXTBOX_FIXEDTEXT(ROW12) );
+ 		Size = MAP_APPFONT( WHOLE_WIDTH - COL6, RSC_CD_FIXEDTEXT_HEIGHT );
+ 		Text [ en-US ] = "and " ;
+ 	};
+dummy line to avoid confusing diff-mode
+--- svx/source/dialog/optgdlg.hrc
++++ svx/source/dialog/optgdlg.hrc
+@@ -64,6 +64,7 @@
+ #define ROW9					(ROW8+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
+ #define ROW10					(ROW9+RSC_CD_CHECKBOX_HEIGHT+ROWSPACE)
+ #define ROW11					(ROW10+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
++#define ROW12					(ROW11+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
+ 
+ #define DIFF(v1,v2)						(v2-v1)
+ #define OFFS_TEXTBOX_FIXEDTEXT(base)	(base+(RSC_CD_TEXTBOX_HEIGHT-RSC_CD_FIXEDTEXT_HEIGHT)/2)
+@@ -200,6 +200,7 @@
+ #define FT_HELPAGENT_TIME_UNIT      59
+ #define FL_DOCSTATUS                60
+ #define CB_DOCSTATUS                61
++#define CB_ODMADLG                  62
+ #endif // #ifndef _SVX_OPTGDLG_HRC
+ 
+ // ******************************************************************* EOF
+dummy line to avoid confusing diff-mode
+--- svx/source/dialog/optgdlg.hxx
++++ svx/source/dialog/optgdlg.hxx
+@@ -74,6 +74,7 @@
+     FixedLine           aFileDlgFL;
+     ReadOnlyImage       aFileDlgROImage;
+ 	CheckBox            aFileDlgCB;
++	CheckBox            aODMADlgCB;
+ 
+     FixedLine           aDocStatusFL;
+     CheckBox            aDocStatusCB;
+@@ -89,6 +89,9 @@
+ 	DECL_LINK( TwoFigureConfigHdl, NumericField* );
+ 	DECL_LINK( HelpCheckHdl_Impl, CheckBox* );
+ 	DECL_LINK( HelpAgentResetHdl_Impl, PushButton* );
++#ifdef WNT
++	DECL_LINK( OnFileDlgToggled, CheckBox* );
++#endif
+ protected:
+ 	virtual int         DeactivatePage( SfxItemSet* pSet = NULL );
+ 
+dummy line to avoid confusing diff-mode
+--- svx/source/dialog/optgdlg.cxx
++++ svx/source/dialog/optgdlg.cxx
+@@ -291,6 +291,7 @@
+ 	aFileDlgFL			( this, SVX_RES( FL_FILEDLG ) ),
+     aFileDlgROImage     ( this, SVX_RES( FI_FILEDLG_RO ) ),
+ 	aFileDlgCB			( this, SVX_RES( CB_FILEDLG ) ),
++	aODMADlgCB			( this, SVX_RES( CB_ODMADLG ) ),
+ 	aDocStatusFL		( this, SVX_RES( FL_DOCSTATUS ) ),
+ 	aDocStatusCB		( this, SVX_RES( CB_DOCSTATUS ) ),
+ 	aTwoFigureFL		( this, SVX_RES( FL_TWOFIGURE ) ),
+@@ -313,6 +313,31 @@
+         aFileDlgCB.Hide();
+ 	}
+ #endif
++
++#ifdef WNT
++	aFileDlgCB.SetToggleHdl( LINK( this, OfaMiscTabPage, OnFileDlgToggled ) );
++#else
++	{
++		aODMADlgCB.Hide();
++		// rearrange the following controls
++		Point aNewPos = aDocStatusFL.GetPosPixel();
++		long nDelta = aNewPos.Y() - aFileDlgFL.GetPosPixel().Y();
++
++		Window* pWins[] =
++		{
++		    &aDocStatusFL, &aDocStatusCB, &aTwoFigureFL,
++		    &aInterpretFT, &aYearValueField, &aToYearFT
++		};
++		Window** pCurrent = pWins;
++		const sal_Int32 nCount = sizeof( pWins ) / sizeof( pWins[ 0 ] );
++		for ( sal_Int32 i = 0; i < nCount; ++i, ++pCurrent )
++		{
++		    aNewPos = (*pCurrent)->GetPosPixel();
++		    aNewPos.Y() -= nDelta;
++		    (*pCurrent)->SetPosPixel( aNewPos );
++		}
++	}
++#endif
+ 
+     if ( !aFileDlgCB.IsVisible() )
+     {
+@@ -405,6 +405,14 @@
+         aHelpFormatLB.SetEntryData( i, pData );
+     }
+ }
++
++#ifdef WNT
++IMPL_LINK( OfaMiscTabPage, OnFileDlgToggled, CheckBox*, EMPTYARG ) 
++{
++	aODMADlgCB.Enable( !aFileDlgCB.IsChecked() );
++	return 0;
++}
++#endif
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -429,6 +429,13 @@
+         bModified = TRUE;
+     }
+ 
++    if ( aODMADlgCB.IsChecked() != aODMADlgCB.GetSavedValue() )
++    {
++        SvtMiscOptions aMiscOpt;
++        aMiscOpt.SetTryODMADialog( aODMADlgCB.IsChecked() );
++        bModified = TRUE;
++    }
++
+ 	if ( aDocStatusCB.IsChecked() != aDocStatusCB.GetSavedValue() )
+     {
+         SvtPrintWarningOptions aPrintOptions;
+@@ -476,6 +476,9 @@
+     aFileDlgCB.Check( !aMiscOpt.UseSystemFileDialog() );
+     aFileDlgCB.SaveValue();
+ 
++    aODMADlgCB.Check( aMiscOpt.TryODMADialog() );
++    aODMADlgCB.SaveValue();
++
+     SvtPrintWarningOptions aPrintOptions;
+     aDocStatusCB.Check(aPrintOptions.IsModifyDocumentOnPrintingAllowed());
+     aDocStatusCB.SaveValue();
+dummy line to avoid confusing diff-mode
+--- solenv/bin/modules/installer/windows/component.pm
++++ solenv/bin/modules/installer/windows/component.pm
+@@ -103,6 +103,11 @@
+ 	{
+ 		return $installer::globals::templatefolder;
+ 	}
++
++	if ( $destdir =~ /\bPREDEFINED_OSWINSHELLNEWDIR\b/ )
++	{
++		return "WindowsShellNewFolder";
++	}
+ 
+ 	my $destination = $onefile->{'destination'};
+ 	
+dummy line to avoid confusing diff-mode
+--- solenv/bin/modules/installer/windows/directory.pm
++++ solenv/bin/modules/installer/windows/directory.pm
+@@ -174,6 +174,12 @@
+ 
+ 	my $oneline = "TARGETDIR\t\tSourceDir\n";
+ 	push(@{$directorytableref}, $oneline);
++	
++	$oneline = "WindowsFolder\tTARGETDIR\tWindows\n";
++	push(@{$directorytableref}, $oneline);
++
++	$oneline = "WindowsShellNewFolder\tWindowsFolder\tShellNew\n";
++	push(@{$directorytableref}, $oneline);
+ 	
+ 	my $sourcediraddon = "";
+ 	if (($installer::globals::addchildprojects) ||
+dummy line to avoid confusing diff-mode
+--- scp2/source/ooo/directory_ooo.scp
++++ scp2/source/ooo/directory_ooo.scp
+@@ -166,6 +166,11 @@
+     ParentID = gid_Dir_Program;
+     DosName = "shellnew";
+ End
++
++Directory gid_Dir_ShellnewToo
++    ParentID = gid_Dir_Program;
++    DosName = "shellnew2";
++End
+ 
+ #endif
+ 
+--- scp2/source/ooo/file_ooo.scp
++++ scp2/source/ooo/file_ooo.scp
+@@ -2025,24 +2025,56 @@
+ 
+ STD_SHELLNEW_FILE(gid_File_Shellnew_Ods_Soffice, soffice.ods)
+ 
++File gid_File_Shellnew2_Ods_Soffice
++    TXT_FILE_BODY;
++    Styles = (PACKED,WORKSTATION, OVERWRITE);
++    Dir = PREDEFINED_OSWINSHELLNEWDIR;
++    NetDir = gid_Dir_ShellnewToo;
++    Name = "soffice.ods";
++End
++
+ #endif
+ 
+ #ifdef WNT
+ 
+ STD_SHELLNEW_FILE(gid_File_Shellnew_Odg_Soffice, soffice.odg)
+ 
++File gid_File_Shellnew2_Odg_Soffice
++    TXT_FILE_BODY;
++    Styles = (PACKED,WORKSTATION, OVERWRITE);
++    Dir = PREDEFINED_OSWINSHELLNEWDIR;
++    NetDir = gid_Dir_ShellnewToo;
++    Name = "soffice.odg";
++End
++
+ #endif
+ 
+ #ifdef WNT
+ 
+ STD_SHELLNEW_FILE(gid_File_Shellnew_Odp_Soffice, soffice.odp)
+ 
++File gid_File_Shellnew2_Odp_Soffice
++    TXT_FILE_BODY;
++    Styles = (PACKED,WORKSTATION, OVERWRITE);
++    Dir = PREDEFINED_OSWINSHELLNEWDIR;
++    NetDir = gid_Dir_ShellnewToo;
++    Name = "soffice.odp";
++End
++
+ #endif
+ 
+ #ifdef WNT
+ 
+ STD_SHELLNEW_FILE(gid_File_Shellnew_Odt_Soffice, soffice.odt)
+ 
++File gid_File_Shellnew2_Odt_Soffice
++    TXT_FILE_BODY;
++    Styles = (PACKED,WORKSTATION, OVERWRITE);
++    Dir = PREDEFINED_OSWINSHELLNEWDIR;
++    NetDir = gid_Dir_ShellnewToo;
++    Name = "soffice.odt";
++End
++
+ #endif
+ 
+ File gid_File_Txt_License
+dummy line to avoid confusing diff-mode
+--- framework/prj/build.lst
++++ framework/prj/build.lst
+@@ -1,4 +1,4 @@
+-fr	framework	:	svtools NULL
++fr	framework	:	svtools ucb NULL
+ fr	framework								usr1	-	all	fr_mkout NULL
+ fr  framework\inc			        	    nmake   -   all fr_inc NULL
+ fr  framework\source\constant               nmake   -   all fr_constant fr_inc NULL
+dummy line to avoid confusing diff-mode
+--- framework/source/uielement/recentfilesmenucontroller.cxx
++++ framework/source/uielement/recentfilesmenucontroller.cxx
+@@ -105,6 +105,11 @@
+ #ifndef _OSL_FILE_HXX_
+ #include <osl/file.hxx>
+ #endif
++#ifndef ODMA_LIB_HXX
++#include <tools/prewin.h>
++#include <tools/postwin.h>
++#include <odma_lib.hxx>
++#endif
+ //#include <tools/solar.hrc>
+ 
+ //_________________________________________________________________________________________________________________
+@@ -248,6 +248,39 @@
+ 					else
+ 						aMenuTitle = aSystemPath;
+ 				}
++				else if ( aURL.GetProtocol() == INET_PROT_VND_SUN_STAR_ODMA && ::odma::DMSsAvailable ())
++				{
++					String aShortTitle = m_aRecentFilesItems.at( i ).aTitle;
++
++					// This is against all rules for using
++					// proper abstraction layers and whatnot.
++					// But figuring out how to do it "right"
++					// would have taken the whole week. 
++					// So just call the odma_lib functions... 
++					// (odma_lib is a thin layer on
++					// top of the ODMA32 DLL)
++
++					static ODMHANDLE handle = NULL;
++					static sal_Bool beenhere = sal_False;
++					ODMSTATUS status;
++
++					if ( ! beenhere )
++					{
++					    status = NODMRegisterApp( &handle, ODM_API_VERSION, "sodma", NULL, NULL );
++					    beenhere = sal_True;
++					}
++
++					if ( handle != NULL )
++					{
++					    rtl::OUString s = aURL.GetMainURL( INetURLObject::DECODE_WITH_CHARSET, RTL_TEXTENCODING_MS_1252 );
++					    s = s.copy( strlen ( "vnd.sun.star.odma:/" ) );
++					    char title[47];
++					    status = NODMGetDocInfo( handle, rtl::OUStringToOString( s, RTL_TEXTENCODING_MS_1252 ).pData->buffer, ODM_NAME, title, sizeof ( title ) );
++					    aShortTitle = String::CreateFromAscii( title );
++					}
++					aMenuTitle += aShortTitle;
++					aTipHelpText = aURLString;
++				}
+ 				else
+ 				{
+ 					// Use INetURLObject to abbreviate all other URLs
+dummy line to avoid confusing diff-mode
+--- framework/util/makefile.mk
++++ framework/util/makefile.mk
+@@ -329,6 +329,7 @@
+                 $(SLO)$/langselectionmenucontroller.obj
+ 
+ SHL4STDLIBS=	\
++		 $(ODMA_LIB_LIB)    \
+ 				$(FWILIB)                           \
+ 				$(FWELIB)							\
+ 				$(SVTOOLLIB)						\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/palette-enhanced-color.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/palette-enhanced-color.diff
@@ -0,0 +1,2835 @@
+--- extras/source/palettes/standard.soc.old	2007-07-03 15:32:23.000000000 +0200
++++ extras/source/palettes/standard.soc	2007-11-04 09:49:20.000000000 +0100
+@@ -1,107 +1,2724 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-
+-<office:color-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
+- <draw:color draw:name="Black" draw:color="#000000"/>
+- <draw:color draw:name="Blue" draw:color="#000080"/>
+- <draw:color draw:name="Green" draw:color="#008000"/>
+- <draw:color draw:name="Turquoise" draw:color="#008080"/>
+- <draw:color draw:name="Red" draw:color="#800000"/>
+- <draw:color draw:name="Magenta" draw:color="#800080"/>
+- <draw:color draw:name="Brown" draw:color="#808000"/>
+- <draw:color draw:name="Gray" draw:color="#808080"/>
+- <draw:color draw:name="Light gray" draw:color="#c0c0c0"/>
+- <draw:color draw:name="Light blue" draw:color="#0000ff"/>
+- <draw:color draw:name="Light green" draw:color="#00ff00"/>
+- <draw:color draw:name="Light cyan" draw:color="#00ffff"/>
+- <draw:color draw:name="Light red" draw:color="#ff0000"/>
+- <draw:color draw:name="Light magenta" draw:color="#ff00ff"/>
+- <draw:color draw:name="Yellow" draw:color="#ffff00"/>
+- <draw:color draw:name="White" draw:color="#ffffff"/>
+- <draw:color draw:name="Gray 80%" draw:color="#333333"/>
+- <draw:color draw:name="Gray 70%" draw:color="#4c4c4c"/>
+- <draw:color draw:name="Gray 60%" draw:color="#666666"/>
+- <draw:color draw:name="Gray 40%" draw:color="#999999"/>
+- <draw:color draw:name="Gray 30%" draw:color="#b3b3b3"/>
+- <draw:color draw:name="Gray 20%" draw:color="#cccccc"/>
+- <draw:color draw:name="Gray 10%" draw:color="#e6e6e6"/>
+- <draw:color draw:name="Blue gray" draw:color="#e6e6ff"/>
+- <draw:color draw:name="Red 1" draw:color="#ff3366"/>
+- <draw:color draw:name="Red 2" draw:color="#dc2300"/>
+- <draw:color draw:name="Red 3" draw:color="#b84700"/>
+- <draw:color draw:name="Red 4" draw:color="#ff3333"/>
+- <draw:color draw:name="Red 5" draw:color="#eb613d"/>
+- <draw:color draw:name="Red 6" draw:color="#b84747"/>
+- <draw:color draw:name="Red 7" draw:color="#b80047"/>
+- <draw:color draw:name="Red 8" draw:color="#99284c"/>
+- <draw:color draw:name="Magenta 1" draw:color="#94006b"/>
+- <draw:color draw:name="Magenta 2" draw:color="#94476b"/>
+- <draw:color draw:name="Magenta 3" draw:color="#944794"/>
+- <draw:color draw:name="Magenta 4" draw:color="#9966cc"/>
+- <draw:color draw:name="Magenta 5" draw:color="#6b4794"/>
+- <draw:color draw:name="Magenta 6" draw:color="#6b2394"/>
+- <draw:color draw:name="Magenta 7" draw:color="#6b0094"/>
+- <draw:color draw:name="Magenta 8" draw:color="#5e11a6"/>
+- <draw:color draw:name="Blue 1" draw:color="#280099"/>
+- <draw:color draw:name="Blue 2" draw:color="#4700b8"/>
+- <draw:color draw:name="Blue 3" draw:color="#2300dc"/>
+- <draw:color draw:name="Blue 4" draw:color="#2323dc"/>
+- <draw:color draw:name="Blue 5" draw:color="#0047ff"/>
+- <draw:color draw:name="Blue 6" draw:color="#0099ff"/>
+- <draw:color draw:name="Blue 7" draw:color="#00b8ff"/>
+- <draw:color draw:name="Blue 8" draw:color="#99ccff"/>
+- <draw:color draw:name="Turquoise 1" draw:color="#00dcff"/>
+- <draw:color draw:name="Turquoise 2" draw:color="#00cccc"/>
+- <draw:color draw:name="Turquoise 3" draw:color="#23b8dc"/>
+- <draw:color draw:name="Turquoise 4" draw:color="#47b8b8"/>
+- <draw:color draw:name="Turquoise 5" draw:color="#33a3a3"/>
+- <draw:color draw:name="Turquoise 6" draw:color="#198a8a"/>
+- <draw:color draw:name="Turquoise 7" draw:color="#006b6b"/>
+- <draw:color draw:name="Turquoise 8" draw:color="#004a4a"/>
+- <draw:color draw:name="Green 1" draw:color="#355e00"/>
+- <draw:color draw:name="Green 2" draw:color="#5c8526"/>
+- <draw:color draw:name="Green 3" draw:color="#7da647"/>
+- <draw:color draw:name="Green 4" draw:color="#94bd5e"/>
+- <draw:color draw:name="Green 5" draw:color="#00ae00"/>
+- <draw:color draw:name="Green 6" draw:color="#33cc66"/>
+- <draw:color draw:name="Green 7" draw:color="#3deb3d"/>
+- <draw:color draw:name="Green 8" draw:color="#23ff23"/>
+- <draw:color draw:name="Yellow 1" draw:color="#e6ff00"/>
+- <draw:color draw:name="Yellow 2" draw:color="#ffff99"/>
+- <draw:color draw:name="Yellow 3" draw:color="#ffff66"/>
+- <draw:color draw:name="Yellow 4" draw:color="#e6e64c"/>
+- <draw:color draw:name="Yellow 5" draw:color="#cccc00"/>
+- <draw:color draw:name="Yellow 6" draw:color="#b3b300"/>
+- <draw:color draw:name="Yellow 7" draw:color="#808019"/>
+- <draw:color draw:name="Yellow 8" draw:color="#666600"/>
+- <draw:color draw:name="Brown 1" draw:color="#4c1900"/>
+- <draw:color draw:name="Brown 2" draw:color="#663300"/>
+- <draw:color draw:name="Brown 3" draw:color="#804c19"/>
+- <draw:color draw:name="Brown 4" draw:color="#996633"/>
+- <draw:color draw:name="Orange 1" draw:color="#cc6633"/>
+- <draw:color draw:name="Orange 2" draw:color="#ff6633"/>
+- <draw:color draw:name="Orange 3" draw:color="#ff9966"/>
+- <draw:color draw:name="Orange 4" draw:color="#ffcc99"/>
+- <draw:color draw:name="Violet" draw:color="#9999ff"/>
+- <draw:color draw:name="Bordeaux" draw:color="#993366"/>
+- <draw:color draw:name="Pale yellow" draw:color="#ffffcc"/>
+- <draw:color draw:name="Pale green" draw:color="#ccffff"/>
+- <draw:color draw:name="Dark violet" draw:color="#660066"/>
+- <draw:color draw:name="Salmon" draw:color="#ff8080"/>
+- <draw:color draw:name="Sea blue" draw:color="#0066cc"/>
+- <draw:color draw:name="Sun 1" draw:color="#333366"/>
+- <draw:color draw:name="Sun 2" draw:color="#666699"/>
+- <draw:color draw:name="Sun 3" draw:color="#9999cc"/>
+- <draw:color draw:name="Sun 4" draw:color="#ccccff"/>
+- <draw:color draw:name="Chart 1" draw:color="#004586"/>
+- <draw:color draw:name="Chart 2" draw:color="#ff420e"/>
+- <draw:color draw:name="Chart 3" draw:color="#ffd320"/>
+- <draw:color draw:name="Chart 4" draw:color="#579d1c"/>
+- <draw:color draw:name="Chart 5" draw:color="#7e0021"/>
+- <draw:color draw:name="Chart 6" draw:color="#83caff"/>
+- <draw:color draw:name="Chart 7" draw:color="#314004"/>
+- <draw:color draw:name="Chart 8" draw:color="#aecf00"/>
+- <draw:color draw:name="Chart 9" draw:color="#4b1f6f"/>
+- <draw:color draw:name="Chart 10" draw:color="#ff950e"/>
+- <draw:color draw:name="Chart 11" draw:color="#c5000b"/>
+- <draw:color draw:name="Chart 12" draw:color="#0084d1"/>
+-</office:color-table>
+\ Nincs újsor a fájl végén
++<?xml version="1.0" encoding="UTF-8"?>
++<office:color-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:config="http://openoffice.org/2001/config">
++
++<!-- Colors of original OpenOffice.org located in standard.soc file -->
++<draw:color draw:name="Black" draw:color="#000000"/>
++<draw:color draw:name="Blue" draw:color="#000080"/>
++<draw:color draw:name="Green" draw:color="#008000"/>
++<draw:color draw:name="Turquoise" draw:color="#008080"/>
++<draw:color draw:name="Red" draw:color="#800000"/>
++<draw:color draw:name="Magenta" draw:color="#800080"/>
++<draw:color draw:name="Brown" draw:color="#808000"/>
++<draw:color draw:name="Gray" draw:color="#808080"/>
++<draw:color draw:name="Light gray" draw:color="#c0c0c0"/>
++<draw:color draw:name="Light blue" draw:color="#0000ff"/>
++<draw:color draw:name="Light green" draw:color="#00ff00"/>
++<draw:color draw:name="Light cyan" draw:color="#00ffff"/>
++<draw:color draw:name="Light red" draw:color="#ff0000"/>
++<draw:color draw:name="Light magenta" draw:color="#ff00ff"/>
++<draw:color draw:name="Yellow" draw:color="#ffff00"/>
++<draw:color draw:name="White" draw:color="#ffffff"/>
++<draw:color draw:name="Gray 80%" draw:color="#333333"/>
++<draw:color draw:name="Gray 70%" draw:color="#4c4c4c"/>
++<draw:color draw:name="Gray 60%" draw:color="#666666"/>
++<draw:color draw:name="Gray 40%" draw:color="#999999"/>
++<draw:color draw:name="Gray 30%" draw:color="#b3b3b3"/>
++<draw:color draw:name="Gray 20%" draw:color="#cccccc"/>
++<draw:color draw:name="Gray 10%" draw:color="#e6e6e6"/>
++<draw:color draw:name="Blue gray" draw:color="#e6e6ff"/>
++<draw:color draw:name="Red 1" draw:color="#ff3366"/>
++<draw:color draw:name="Red 2" draw:color="#dc2300"/>
++<draw:color draw:name="Red 3" draw:color="#b84700"/>
++<draw:color draw:name="Red 4" draw:color="#ff3333"/>
++<draw:color draw:name="Red 5" draw:color="#eb613d"/>
++<draw:color draw:name="Red 6" draw:color="#b84747"/>
++<draw:color draw:name="Red 7" draw:color="#b80047"/>
++<draw:color draw:name="Red 8" draw:color="#99284c"/>
++<draw:color draw:name="Magenta 1" draw:color="#94006b"/>
++<draw:color draw:name="Magenta 2" draw:color="#94476b"/>
++<draw:color draw:name="Magenta 3" draw:color="#944794"/>
++<draw:color draw:name="Magenta 4" draw:color="#9966cc"/>
++<draw:color draw:name="Magenta 5" draw:color="#6b4794"/>
++<draw:color draw:name="Magenta 6" draw:color="#6b2394"/>
++<draw:color draw:name="Magenta 7" draw:color="#6b0094"/>
++<draw:color draw:name="Magenta 8" draw:color="#5e11a6"/>
++<draw:color draw:name="Blue 1" draw:color="#280099"/>
++<draw:color draw:name="Blue 2" draw:color="#4700b8"/>
++<draw:color draw:name="Blue 3" draw:color="#2300dc"/>
++<draw:color draw:name="Blue 4" draw:color="#2323dc"/>
++<draw:color draw:name="Blue 5" draw:color="#0047ff"/>
++<draw:color draw:name="Blue 6" draw:color="#0099ff"/>
++<draw:color draw:name="Blue 7" draw:color="#00b8ff"/>
++<draw:color draw:name="Blue 8" draw:color="#99ccff"/>
++<draw:color draw:name="Turquoise 1" draw:color="#00dcff"/>
++<draw:color draw:name="Turquoise 2" draw:color="#00cccc"/>
++<draw:color draw:name="Turquoise 3" draw:color="#23b8dc"/>
++<draw:color draw:name="Turquoise 4" draw:color="#47b8b8"/>
++<draw:color draw:name="Turquoise 5" draw:color="#33a3a3"/>
++<draw:color draw:name="Turquoise 6" draw:color="#198a8a"/>
++<draw:color draw:name="Turquoise 7" draw:color="#006b6b"/>
++<draw:color draw:name="Turquoise 8" draw:color="#004a4a"/>
++<draw:color draw:name="Green 1" draw:color="#355e00"/>
++<draw:color draw:name="Green 2" draw:color="#5c8526"/>
++<draw:color draw:name="Green 3" draw:color="#7da647"/>
++<draw:color draw:name="Green 4" draw:color="#94bd5e"/>
++<draw:color draw:name="Green 5" draw:color="#00ae00"/>
++<draw:color draw:name="Green 6" draw:color="#33cc66"/>
++<draw:color draw:name="Green 7" draw:color="#3deb3d"/>
++<draw:color draw:name="Green 8" draw:color="#23ff23"/>
++<draw:color draw:name="Yellow 1" draw:color="#e6ff00"/>
++<draw:color draw:name="Yellow 2" draw:color="#ffff99"/>
++<draw:color draw:name="Yellow 3" draw:color="#ffff66"/>
++<draw:color draw:name="Yellow 4" draw:color="#e6e64c"/>
++<draw:color draw:name="Yellow 5" draw:color="#cccc00"/>
++<draw:color draw:name="Yellow 6" draw:color="#b3b300"/>
++<draw:color draw:name="Yellow 7" draw:color="#808019"/>
++<draw:color draw:name="Yellow 8" draw:color="#666600"/>
++<draw:color draw:name="Brown 1" draw:color="#4c1900"/>
++<draw:color draw:name="Brown 2" draw:color="#663300"/>
++<draw:color draw:name="Brown 3" draw:color="#804c19"/>
++<draw:color draw:name="Brown 4" draw:color="#996633"/>
++<draw:color draw:name="Orange 1" draw:color="#cc6633"/>
++<draw:color draw:name="Orange 2" draw:color="#ff6633"/>
++<draw:color draw:name="Orange 3" draw:color="#ff9966"/>
++<draw:color draw:name="Orange 4" draw:color="#ffcc99"/>
++<draw:color draw:name="Violet" draw:color="#9999ff"/>
++<draw:color draw:name="Bordeaux" draw:color="#993366"/>
++<draw:color draw:name="Pale yellow" draw:color="#ffffcc"/>
++<draw:color draw:name="Pale green" draw:color="#ccffff"/>
++<draw:color draw:name="Dark violet" draw:color="#660066"/>
++<draw:color draw:name="Salmon" draw:color="#ff8080"/>
++<draw:color draw:name="Sea blue" draw:color="#0066cc"/>
++
++<!-- Additional colors for OpenOffice.org Chart 2 module -->
++<draw:color draw:name="Chart 1" draw:color="#004586"/>
++<draw:color draw:name="Chart 2" draw:color="#ff420e"/>
++<draw:color draw:name="Chart 3" draw:color="#ffd320"/>
++<draw:color draw:name="Chart 4" draw:color="#579d1c"/>
++<draw:color draw:name="Chart 5" draw:color="#7e0021"/>
++<draw:color draw:name="Chart 6" draw:color="#83caff"/>
++<draw:color draw:name="Chart 7" draw:color="#314004"/>
++<draw:color draw:name="Chart 8" draw:color="#aecf00"/>
++<draw:color draw:name="Chart 9" draw:color="#4b1f6f"/>
++<draw:color draw:name="Chart 10" draw:color="#ff950e"/>
++<draw:color draw:name="Chart 11" draw:color="#c5000b"/>
++<draw:color draw:name="Chart 12" draw:color="#0084d1"/>
++
++<!-- Additional colors for OpenOffice.org located in Sun's distribution -->
++<draw:color draw:name="Sun 1" draw:color="#333366"/>
++<draw:color draw:name="Sun 2" draw:color="#666699"/>
++<draw:color draw:name="Sun 3" draw:color="#9999cc"/>
++<draw:color draw:name="Sun 4" draw:color="#ccccff"/>
++
++<!-- Additional colors for OpenOffice.org located in Novell's distribution -->
++<draw:color draw:name="openSUSE light green" draw:color="#bddd8d"/>
++<draw:color draw:name="openSUSE medium green" draw:color="#198533"/>
++<draw:color draw:name="openSUSE dark green" draw:color="#0c5248"/>
++<draw:color draw:name="Novell red" draw:color="#e00000"/>
++<draw:color draw:name="Novell orange" draw:color="#e67814"/>
++<draw:color draw:name="Novell yellow" draw:color="#ffdd00"/>
++<draw:color draw:name="Novell green" draw:color="#629e1f"/>
++<draw:color draw:name="Novell teal" draw:color="#6ea19b"/>
++<draw:color draw:name="Novell blue" draw:color="#1c82b9"/>
++<draw:color draw:name="Novell light gray" draw:color="#cccccd"/>
++<draw:color draw:name="Novell medium gray" draw:color="#5a5a64"/>
++<draw:color draw:name="Novell dark gray" draw:color="#3c3c41"/>
++
++<!-- General Color Container -->
++<draw:color draw:name="Alice blue" draw:color="#f0f8ff"/>
++<draw:color draw:name="Antique white 1" draw:color="#ffefdb"/>
++<draw:color draw:name="Antique white 2" draw:color="#eedfcc"/>
++<draw:color draw:name="Antique white 3" draw:color="#cdc0b0"/>
++<draw:color draw:name="Antique white 4" draw:color="#8b8378"/>
++<draw:color draw:name="Antique white" draw:color="#faebd7"/>
++<draw:color draw:name="Aquamarine 2" draw:color="#76eec6"/>
++<draw:color draw:name="Aquamarine 3" draw:color="#66cdaa"/>
++<draw:color draw:name="Aquamarine 4" draw:color="#458b74"/>
++<draw:color draw:name="Aquamarine" draw:color="#7fffd4"/>
++<draw:color draw:name="Azure 1" draw:color="#f0ffff"/>
++<draw:color draw:name="Azure 2" draw:color="#e0eeee"/>
++<draw:color draw:name="Azure 3" draw:color="#c1cdcd"/>
++<draw:color draw:name="Azure 4" draw:color="#838b8b"/>
++<draw:color draw:name="Azure" draw:color="#99ffff"/>
++<draw:color draw:name="Beige" draw:color="#cc9966"/>
++<draw:color draw:name="Bisque 2" draw:color="#eed5b7"/>
++<draw:color draw:name="Bisque 3" draw:color="#cdb79e"/>
++<draw:color draw:name="Bisque 4" draw:color="#8b7d6b"/>
++<draw:color draw:name="Bisque" draw:color="#ffe4c4"/>
++<draw:color draw:name="Blanched almond" draw:color="#ffebcd"/>
++<draw:color draw:name="Blue 2" draw:color="#0000ee"/>
++<draw:color draw:name="Blue 4" draw:color="#00008b"/>
++<draw:color draw:name="Blue violet" draw:color="#8a2be2"/>
++<draw:color draw:name="Blue" draw:color="#6699cc"/>
++<draw:color draw:name="Bordeux" draw:color="#990033"/>
++<draw:color draw:name="Bottle green" draw:color="#003333"/>
++<draw:color draw:name="Brown 1" draw:color="#ff4040"/>
++<draw:color draw:name="Brown 2" draw:color="#ee3b3b"/>
++<draw:color draw:name="Brown 3" draw:color="#cd3333"/>
++<draw:color draw:name="Brown 4" draw:color="#8b2323"/>
++<draw:color draw:name="Brown" draw:color="#a52a2a"/>
++<draw:color draw:name="Burlywood 1" draw:color="#ffd39b"/>
++<draw:color draw:name="Burlywood 2" draw:color="#eec591"/>
++<draw:color draw:name="Burlywood 3" draw:color="#cdaa7d"/>
++<draw:color draw:name="Burlywood 4" draw:color="#8b7355"/>
++<draw:color draw:name="Burlywood" draw:color="#deb887"/>
++<draw:color draw:name="Burnt sienna" draw:color="#660000"/>
++<draw:color draw:name="Burnt umber" draw:color="#330000"/>
++<draw:color draw:name="Cadet blue 1" draw:color="#98f5ff"/>
++<draw:color draw:name="Cadet blue 2" draw:color="#8ee5ee"/>
++<draw:color draw:name="Cadet blue 3" draw:color="#7ac5cd"/>
++<draw:color draw:name="Cadet blue 4" draw:color="#53868b"/>
++<draw:color draw:name="Cadet blue 5" draw:color="#77bfc7"/>
++<draw:color draw:name="Cadet blue 6" draw:color="#4c787e"/>
++<draw:color draw:name="Cadet blue" draw:color="#5f9ea0"/>
++<draw:color draw:name="Chartreuse 2" draw:color="#7fe817"/>
++<draw:color draw:name="Chartreuse 3" draw:color="#6cc417"/>
++<draw:color draw:name="Chartreuse 4" draw:color="#437c17"/>
++<draw:color draw:name="Chartreuse" draw:color="#7fff00"/>
++<draw:color draw:name="Chocolate 1" draw:color="#ff7f24"/>
++<draw:color draw:name="Chocolate 2" draw:color="#ee7621"/>
++<draw:color draw:name="Chocolate 3" draw:color="#cd661d"/>
++<draw:color draw:name="Chocolate 4" draw:color="#8b4513"/>
++<draw:color draw:name="Chocolate" draw:color="#d2691e"/>
++<draw:color draw:name="Cold blue" draw:color="#336699"/>
++<draw:color draw:name="Coral 1" draw:color="#ff7256"/>
++<draw:color draw:name="Coral 2" draw:color="#e55b3c"/>
++<draw:color draw:name="Coral 3" draw:color="#c34a2c"/>
++<draw:color draw:name="Coral 4" draw:color="#8b3e2f"/>
++<draw:color draw:name="Coral" draw:color="#ff7f50"/>
++<draw:color draw:name="Cornflower blue 1" draw:color="#151b8d"/>
++<draw:color draw:name="Cornflower blue" draw:color="#6495ed"/>
++<draw:color draw:name="Cornsilk 2" draw:color="#eee8cd"/>
++<draw:color draw:name="Cornsilk 3" draw:color="#cdc8b1"/>
++<draw:color draw:name="Cornsilk 4" draw:color="#8b8878"/>
++<draw:color draw:name="Cornsilk" draw:color="#fff8dc"/>
++<draw:color draw:name="Crimson" draw:color="#cc0033"/>
++<draw:color draw:name="Cyan 1" draw:color="#57feff"/>
++<draw:color draw:name="Cyan 2" draw:color="#50ebec"/>
++<draw:color draw:name="Cyan 3" draw:color="#46c7c7"/>
++<draw:color draw:name="Cyan 4" draw:color="#307d7e"/>
++<draw:color draw:name="Dark blue" draw:color="#003366"/>
++<draw:color draw:name="Dark cyan" draw:color="#008b8b"/>
++<draw:color draw:name="Dark goldenrod 1" draw:color="#fbb117"/>
++<draw:color draw:name="Dark goldenrod 2" draw:color="#ffb90f"/>
++<draw:color draw:name="Dark goldenrod 3" draw:color="#e8a317"/>
++<draw:color draw:name="Dark goldenrod 4" draw:color="#eead0e"/>
++<draw:color draw:name="Dark goldenrod 5" draw:color="#c58917"/>
++<draw:color draw:name="Dark goldenrod 6" draw:color="#cd950c"/>
++<draw:color draw:name="Dark goldenrod 7" draw:color="#7f5217"/>
++<draw:color draw:name="Dark goldenrod 8" draw:color="#8b6508"/>
++<draw:color draw:name="Dark goldenrod 9" draw:color="#af7817"/>
++<draw:color draw:name="Dark goldenrod" draw:color="#b8860b"/>
++<draw:color draw:name="Dark gray" draw:color="#a9a9a9"/>
++<draw:color draw:name="Dark green 1" draw:color="#003300"/>
++<draw:color draw:name="Dark green" draw:color="#006400"/>
++<draw:color draw:name="Dark khaki" draw:color="#bdb76b"/>
++<draw:color draw:name="Dark olive green 1" draw:color="#caff70"/>
++<draw:color draw:name="Dark olive green 2" draw:color="#ccfb5d"/>
++<draw:color draw:name="Dark olive green 3" draw:color="#bce954"/>
++<draw:color draw:name="Dark olive green 4" draw:color="#bcee68"/>
++<draw:color draw:name="Dark olive green 5" draw:color="#a0c544"/>
++<draw:color draw:name="Dark olive green 6" draw:color="#a2cd5a"/>
++<draw:color draw:name="Dark olive green 7" draw:color="#6e8b3d"/>
++<draw:color draw:name="Dark olive green 8" draw:color="#556b2f"/>
++<draw:color draw:name="Dark olive green" draw:color="#667c26"/>
++<draw:color draw:name="Dark orange 1" draw:color="#f87217"/>
++<draw:color draw:name="Dark orange 2" draw:color="#ff7f00"/>
++<draw:color draw:name="Dark orange 3" draw:color="#e56717"/>
++<draw:color draw:name="Dark orange 4" draw:color="#ee7600"/>
++<draw:color draw:name="Dark orange 5" draw:color="#c35617"/>
++<draw:color draw:name="Dark orange 6" draw:color="#cd6600"/>
++<draw:color draw:name="Dark orange 7" draw:color="#8b4500"/>
++<draw:color draw:name="Dark orange 8" draw:color="#f88017"/>
++<draw:color draw:name="Dark orange" draw:color="#ff8c00"/>
++<draw:color draw:name="Dark orchid 1" draw:color="#b041ff"/>
++<draw:color draw:name="Dark orchid 2" draw:color="#bf3eff"/>
++<draw:color draw:name="Dark orchid 3" draw:color="#a23bec"/>
++<draw:color draw:name="Dark orchid 4" draw:color="#b23aee"/>
++<draw:color draw:name="Dark orchid 5" draw:color="#8b31c7"/>
++<draw:color draw:name="Dark orchid 6" draw:color="#9a32cd"/>
++<draw:color draw:name="Dark orchid 7" draw:color="#571b7e"/>
++<draw:color draw:name="Dark orchid 8" draw:color="#68228b"/>
++<draw:color draw:name="Dark orchid" draw:color="#9932cc"/>
++<draw:color draw:name="Dark salmon 1" draw:color="#e18b6b"/>
++<draw:color draw:name="Dark salmon" draw:color="#e9967a"/>
++<draw:color draw:name="Dark sea green 1" draw:color="#c1ffc1"/>
++<draw:color draw:name="Dark sea green 2" draw:color="#c3fdb8"/>
++<draw:color draw:name="Dark sea green 3" draw:color="#b4eeb4"/>
++<draw:color draw:name="Dark sea green 4" draw:color="#b5eaaa"/>
++<draw:color draw:name="Dark sea green 5" draw:color="#99c68e"/>
++<draw:color draw:name="Dark sea green 6" draw:color="#9bcd9b"/>
++<draw:color draw:name="Dark sea green 7" draw:color="#617c58"/>
++<draw:color draw:name="Dark sea green 8" draw:color="#698b69"/>
++<draw:color draw:name="Dark sea green 9" draw:color="#8bb381"/>
++<draw:color draw:name="Dark sea green" draw:color="#8fbc8f"/>
++<draw:color draw:name="Dark seagreen" draw:color="#8dbc8f"/>
++<draw:color draw:name="Dark slate blue 1" draw:color="#2b3856"/>
++<draw:color draw:name="Dark slate blue" draw:color="#483d8b"/>
++<draw:color draw:name="Dark slate gray 1" draw:color="#97ffff"/>
++<draw:color draw:name="Dark slate gray 2" draw:color="#9afeff"/>
++<draw:color draw:name="Dark slate gray 3" draw:color="#8deeee"/>
++<draw:color draw:name="Dark slate gray 4" draw:color="#8eebec"/>
++<draw:color draw:name="Dark slate gray 5" draw:color="#78c7c7"/>
++<draw:color draw:name="Dark slate gray 6" draw:color="#79cdcd"/>
++<draw:color draw:name="Dark slate gray 7" draw:color="#528b8b"/>
++<draw:color draw:name="Dark slate gray 8" draw:color="#25383c"/>
++<draw:color draw:name="Dark slate gray 9" draw:color="#2f4f4f"/>
++<draw:color draw:name="Dark slate gray" draw:color="#4c7d7e"/>
++<draw:color draw:name="Dark turquoise 1" draw:color="#00ced1"/>
++<draw:color draw:name="Dark turquoise 2" draw:color="#00ded1"/>
++<draw:color draw:name="Dark turquoise" draw:color="#336666"/>
++<draw:color draw:name="Dark violet 1" draw:color="#842dce"/>
++<draw:color draw:name="Dark violet" draw:color="#9400d3"/>
++<draw:color draw:name="Deep pink 1" draw:color="#ff1493"/>
++<draw:color draw:name="Deep pink 2" draw:color="#e4287c"/>
++<draw:color draw:name="Deep pink 3" draw:color="#ee1289"/>
++<draw:color draw:name="Deep pink 4" draw:color="#c12267"/>
++<draw:color draw:name="Deep pink 5" draw:color="#cd1076"/>
++<draw:color draw:name="Deep pink 6" draw:color="#7d053f"/>
++<draw:color draw:name="Deep pink 7" draw:color="#8b0a50"/>
++<draw:color draw:name="Deep pink" draw:color="#f52887"/>
++<draw:color draw:name="Deep sky blue 1" draw:color="#00b2ee"/>
++<draw:color draw:name="Deep sky blue 2" draw:color="#38acec"/>
++<draw:color draw:name="Deep sky blue 3" draw:color="#009acd"/>
++<draw:color draw:name="Deep sky blue 4" draw:color="#3090c7"/>
++<draw:color draw:name="Deep sky blue 5" draw:color="#00688b"/>
++<draw:color draw:name="Deep sky blue 6" draw:color="#25587e"/>
++<draw:color draw:name="Deep sky blue 7" draw:color="#00bfff"/>
++<draw:color draw:name="Deep sky blue" draw:color="#3bb9ff"/>
++<draw:color draw:name="Dim gray 1" draw:color="#696097"/>
++<draw:color draw:name="Dim gray 2" draw:color="#696969"/>
++<draw:color draw:name="Dim gray" draw:color="#463e41"/>
++<draw:color draw:name="Dodger blue 1" draw:color="#1e90ff"/>
++<draw:color draw:name="Dodger blue 2" draw:color="#157dec"/>
++<draw:color draw:name="Dodger blue 3" draw:color="#1569c7"/>
++<draw:color draw:name="Dodger blue 4" draw:color="#153e7e"/>
++<draw:color draw:name="Dodger blue 5" draw:color="#1c86ee"/>
++<draw:color draw:name="Dodger blue 6" draw:color="#1874cd"/>
++<draw:color draw:name="Dodger blue 7" draw:color="#104e8b"/>
++<draw:color draw:name="Dodger blue" draw:color="#1589ff"/>
++<draw:color draw:name="Fir green" draw:color="#336633"/>
++<draw:color draw:name="Firebrick 1" draw:color="#f62817"/>
++<draw:color draw:name="Firebrick 2" draw:color="#e42217"/>
++<draw:color draw:name="Firebrick 3" draw:color="#c11b17"/>
++<draw:color draw:name="Firebrick 4" draw:color="#8b1a1a"/>
++<draw:color draw:name="Firebrick" draw:color="#b22222"/>
++<draw:color draw:name="Floral white" draw:color="#fffaf0"/>
++<draw:color draw:name="Forest green 1" draw:color="#4e9258"/>
++<draw:color draw:name="Forest green" draw:color="#228b22"/>
++<draw:color draw:name="Gainsboro" draw:color="#dcdcdc"/>
++<draw:color draw:name="Ghost white 1" draw:color="#f8f8ff"/>
++<draw:color draw:name="Ghost white" draw:color="#f8f8f8"/>
++<draw:color draw:name="Gold 1" draw:color="#fdd017"/>
++<draw:color draw:name="Gold 2" draw:color="#eac117"/>
++<draw:color draw:name="Gold 3" draw:color="#c7a317"/>
++<draw:color draw:name="Gold 4" draw:color="#806517"/>
++<draw:color draw:name="Gold" draw:color="#ffd700"/>
++<draw:color draw:name="Gold ochre" draw:color="#cc9900"/>
++<draw:color draw:name="Goldenrod 1" draw:color="#fbb917"/>
++<draw:color draw:name="Goldenrod 2" draw:color="#e9ab17"/>
++<draw:color draw:name="Goldenrod 3" draw:color="#c68e17"/>
++<draw:color draw:name="Goldenrod 4" draw:color="#805817"/>
++<draw:color draw:name="Goldenrod" draw:color="#daa520"/>
++<draw:color draw:name="Grass green" draw:color="#408080"/>
++<draw:color draw:name="Gray 0" draw:color="#150517"/>
++<draw:color draw:name="Gray 18" draw:color="#250517"/>
++<draw:color draw:name="Gray 21" draw:color="#2b1b17"/>
++<draw:color draw:name="Gray 23" draw:color="#302217"/>
++<draw:color draw:name="Gray 24" draw:color="#302226"/>
++<draw:color draw:name="Gray 25" draw:color="#342826"/>
++<draw:color draw:name="Gray 26" draw:color="#34282c"/>
++<draw:color draw:name="Gray 27" draw:color="#382d2c"/>
++<draw:color draw:name="Gray 28" draw:color="#3b3131"/>
++<draw:color draw:name="Gray 29" draw:color="#3e3535"/>
++<draw:color draw:name="Gray 30" draw:color="#413839"/>
++<draw:color draw:name="Gray 31" draw:color="#41383c"/>
++<draw:color draw:name="Gray 32" draw:color="#463e3f"/>
++<draw:color draw:name="Gray 34" draw:color="#4a4344"/>
++<draw:color draw:name="Gray 35" draw:color="#4c4646"/>
++<draw:color draw:name="Gray 36" draw:color="#4e4848"/>
++<draw:color draw:name="Gray 37" draw:color="#504a4b"/>
++<draw:color draw:name="Gray 38" draw:color="#544e4f"/>
++<draw:color draw:name="Gray 39" draw:color="#565051"/>
++<draw:color draw:name="Gray 40" draw:color="#595454"/>
++<draw:color draw:name="Gray 41" draw:color="#5c5858"/>
++<draw:color draw:name="Gray 42" draw:color="#5f5a59"/>
++<draw:color draw:name="Gray 43" draw:color="#625d5d"/>
++<draw:color draw:name="Gray 44" draw:color="#646060"/>
++<draw:color draw:name="Gray 45" draw:color="#666362"/>
++<draw:color draw:name="Gray 46" draw:color="#696565"/>
++<draw:color draw:name="Gray 47" draw:color="#6d6968"/>
++<draw:color draw:name="Gray 48" draw:color="#6e6a6b"/>
++<draw:color draw:name="Gray 49" draw:color="#726e6d"/>
++<draw:color draw:name="Gray 50" draw:color="#747170"/>
++<draw:color draw:name="Green 1" draw:color="#5ffb17"/>
++<draw:color draw:name="Green 2" draw:color="#59e817"/>
++<draw:color draw:name="Green 3" draw:color="#4cc417"/>
++<draw:color draw:name="Green 4" draw:color="#347c17"/>
++<draw:color draw:name="Green yellow 1" draw:color="#adff2f"/>
++<draw:color draw:name="Green yellow" draw:color="#b1fb17"/>
++<draw:color draw:name="Green" draw:color="#669966"/>
++<draw:color draw:name="Greenish yellow" draw:color="#cccc33"/>
++<draw:color draw:name="Honeydew 1" draw:color="#f0fff0"/>
++<draw:color draw:name="Honeydew 2" draw:color="#e0eee0"/>
++<draw:color draw:name="Honeydew 3" draw:color="#c1cdc1"/>
++<draw:color draw:name="Honeydew 4" draw:color="#838b83"/>
++<draw:color draw:name="Hot pink 1" draw:color="#f665ab"/>
++<draw:color draw:name="Hot pink 2" draw:color="#e45e9d"/>
++<draw:color draw:name="Hot pink 3" draw:color="#c25283"/>
++<draw:color draw:name="Hot pink 4" draw:color="#7d2252"/>
++<draw:color draw:name="Hot pink 5" draw:color="#ff6eb4"/>
++<draw:color draw:name="Hot pink 6" draw:color="#ee6aa7"/>
++<draw:color draw:name="Hot pink 7" draw:color="#cd6090"/>
++<draw:color draw:name="Hot pink 8" draw:color="#8b3a62"/>
++<draw:color draw:name="Hot pink 9" draw:color="#ff69b4"/>
++<draw:color draw:name="Hot pink" draw:color="#f660ab"/>
++<draw:color draw:name="Indian red 1" draw:color="#f75d59"/>
++<draw:color draw:name="Indian red 2" draw:color="#e55451"/>
++<draw:color draw:name="Indian red 3" draw:color="#c24641"/>
++<draw:color draw:name="Indian red 4" draw:color="#7e2217"/>
++<draw:color draw:name="Indian red 5" draw:color="#ff6a6a"/>
++<draw:color draw:name="Indian red 6" draw:color="#ee6363"/>
++<draw:color draw:name="Indian red 7" draw:color="#cd5555"/>
++<draw:color draw:name="Indian red 8" draw:color="#8b3a3a"/>
++<draw:color draw:name="Indian red" draw:color="#cd5c5c"/>
++<draw:color draw:name="Indigo" draw:color="#4b0082"/>
++<draw:color draw:name="Ivory 2" draw:color="#eeeee0"/>
++<draw:color draw:name="Ivory 3" draw:color="#cdcdc1"/>
++<draw:color draw:name="Ivory 4" draw:color="#8b8b83"/>
++<draw:color draw:name="Ivory" draw:color="#fffff0"/>
++<draw:color draw:name="Java red" draw:color="#cc3333"/>
++<draw:color draw:name="Khaki 1" draw:color="#fff380"/>
++<draw:color draw:name="Khaki 2" draw:color="#ede275"/>
++<draw:color draw:name="Khaki 3" draw:color="#c9be62"/>
++<draw:color draw:name="Khaki 4" draw:color="#827839"/>
++<draw:color draw:name="Khaki" draw:color="#cccc99"/>
++<draw:color draw:name="Lavendar blush 2" draw:color="#ebdde2"/>
++<draw:color draw:name="Lavendar blush 3" draw:color="#c8bbbe"/>
++<draw:color draw:name="Lavendar blush 4" draw:color="#817679"/>
++<draw:color draw:name="Lavendar blush" draw:color="#fdeef4"/>
++<draw:color draw:name="Lavendar" draw:color="#e3e4fa"/>
++<draw:color draw:name="Lavender blush 1" draw:color="#fff0f5"/>
++<draw:color draw:name="Lavender blush 2" draw:color="#eee0e5"/>
++<draw:color draw:name="Lavender blush 3" draw:color="#cdc1c5"/>
++<draw:color draw:name="Lavender blush 4" draw:color="#8b8386"/>
++<draw:color draw:name="Lavender" draw:color="#e6e6fa"/>
++<draw:color draw:name="Lawn green 1" draw:color="#7cfc00"/>
++<draw:color draw:name="Lawn green" draw:color="#87f717"/>
++<draw:color draw:name="Lemon chiffon 1" draw:color="#ece5b6"/>
++<draw:color draw:name="Lemon chiffon 2" draw:color="#c9c299"/>
++<draw:color draw:name="Lemon chiffon 3" draw:color="#827b60"/>
++<draw:color draw:name="Lemon chiffon 4" draw:color="#eee9bf"/>
++<draw:color draw:name="Lemon chiffon 5" draw:color="#cdc9a5"/>
++<draw:color draw:name="Lemon chiffon 6" draw:color="#8b8970"/>
++<draw:color draw:name="Lemon chiffon 7" draw:color="#fff8c6"/>
++<draw:color draw:name="Lemon chiffon" draw:color="#fffacd"/>
++<draw:color draw:name="Light blue 1" draw:color="#bdedff"/>
++<draw:color draw:name="Light blue 2" draw:color="#bfefff"/>
++<draw:color draw:name="Light blue 3" draw:color="#afdcec"/>
++<draw:color draw:name="Light blue 4" draw:color="#b2dfee"/>
++<draw:color draw:name="Light blue 5" draw:color="#95b9c7"/>
++<draw:color draw:name="Light blue 6" draw:color="#9ac0cd"/>
++<draw:color draw:name="Light blue 7" draw:color="#5e767e"/>
++<draw:color draw:name="Light blue 8" draw:color="#68838b"/>
++<draw:color draw:name="Light blue" draw:color="#add8e6"/>
++<draw:color draw:name="Light coral 1" draw:color="#e77471"/>
++<draw:color draw:name="Light coral" draw:color="#f08080"/>
++<draw:color draw:name="Light cyan 2" draw:color="#cfecec"/>
++<draw:color draw:name="Light cyan 3" draw:color="#d1eeee"/>
++<draw:color draw:name="Light cyan 4" draw:color="#afc7c7"/>
++<draw:color draw:name="Light cyan 5" draw:color="#b4cdcd"/>
++<draw:color draw:name="Light cyan 6" draw:color="#717d7d"/>
++<draw:color draw:name="Light cyan 7" draw:color="#7a8b8b"/>
++<draw:color draw:name="Light cyan" draw:color="#e0ffff"/>
++<draw:color draw:name="Light golden 2" draw:color="#ecd672"/>
++<draw:color draw:name="Light golden rod yellow" draw:color="#fafad2"/>
++<draw:color draw:name="Light goldenrod 1" draw:color="#ffec8b"/>
++<draw:color draw:name="Light goldenrod 2" draw:color="#eedc82"/>
++<draw:color draw:name="Light goldenrod 3" draw:color="#c8b560"/>
++<draw:color draw:name="Light goldenrod 4" draw:color="#cdbe70"/>
++<draw:color draw:name="Light goldenrod 5" draw:color="#817339"/>
++<draw:color draw:name="Light goldenrod 6" draw:color="#8b814c"/>
++<draw:color draw:name="Light goldenrod 7" draw:color="#faf8cc"/>
++<draw:color draw:name="Light goldenrod 8" draw:color="#ffe87c"/>
++<draw:color draw:name="Light goldenrod yellow" draw:color="#ecd872"/>
++<draw:color draw:name="Light goldenrod" draw:color="#eedd82"/>
++<draw:color draw:name="Light green" draw:color="#90ee90"/>
++<draw:color draw:name="Light green 1" draw:color="#99cc99"/>
++<draw:color draw:name="Light grey" draw:color="#d3d3d3"/>
++<draw:color draw:name="Light lemon green" draw:color="#cccc66"/>
++<draw:color draw:name="Light pink 1" draw:color="#f9a7b0"/>
++<draw:color draw:name="Light pink 2" draw:color="#ffaeb9"/>
++<draw:color draw:name="Light pink 3" draw:color="#e799a3"/>
++<draw:color draw:name="Light pink 4" draw:color="#eea2ad"/>
++<draw:color draw:name="Light pink 5" draw:color="#c48189"/>
++<draw:color draw:name="Light pink 6" draw:color="#cd8c95"/>
++<draw:color draw:name="Light pink 7" draw:color="#7f4e52"/>
++<draw:color draw:name="Light pink 8" draw:color="#8b5f65"/>
++<draw:color draw:name="Light pink 9" draw:color="#ffb6c1"/>
++<draw:color draw:name="Light pink" draw:color="#faafba"/>
++<draw:color draw:name="Light purple" draw:color="#ff0080"/>
++<draw:color draw:name="Light olive green" draw:color="#999966"/>
++<draw:color draw:name="Light red" draw:color="#ff6666"/>
++<draw:color draw:name="Light salmon 1" draw:color="#e78a61"/>
++<draw:color draw:name="Light salmon 2" draw:color="#ee9572"/>
++<draw:color draw:name="Light salmon 3" draw:color="#c47451"/>
++<draw:color draw:name="Light salmon 4" draw:color="#cd8162"/>
++<draw:color draw:name="Light salmon 5" draw:color="#7f462c"/>
++<draw:color draw:name="Light salmon 6" draw:color="#8b5742"/>
++<draw:color draw:name="Light salmon 7" draw:color="#f9966b"/>
++<draw:color draw:name="Light salmon" draw:color="#ffa07a"/>
++<draw:color draw:name="Light sea green 1" draw:color="#20b2aa"/>
++<draw:color draw:name="Light sea green" draw:color="#3ea99f"/>
++<draw:color draw:name="Light sky blue 1" draw:color="#a0cfec"/>
++<draw:color draw:name="Light sky blue 2" draw:color="#a4d3ee"/>
++<draw:color draw:name="Light sky blue 3" draw:color="#87afc7"/>
++<draw:color draw:name="Light sky blue 4" draw:color="#8db6cd"/>
++<draw:color draw:name="Light sky blue 5" draw:color="#566d7e"/>
++<draw:color draw:name="Light sky blue 6" draw:color="#607b8b"/>
++<draw:color draw:name="Light sky blue 7" draw:color="#82cafa"/>
++<draw:color draw:name="Light sky blue 8" draw:color="#b0e2ff"/>
++<draw:color draw:name="Light sky blue" draw:color="#87cefa"/>
++<draw:color draw:name="Light slate blue 1" draw:color="#736aff"/>
++<draw:color draw:name="Light slate blue" draw:color="#8470ff"/>
++<draw:color draw:name="Light slate gray 1" draw:color="#6d7b8d"/>
++<draw:color draw:name="Light slate gray" draw:color="#778899"/>
++<draw:color draw:name="Light steel blue 1" draw:color="#c6deff"/>
++<draw:color draw:name="Light steel blue 2" draw:color="#cae1ff"/>
++<draw:color draw:name="Light steel blue 3" draw:color="#b7ceec"/>
++<draw:color draw:name="Light steel blue 4" draw:color="#bcd2ee"/>
++<draw:color draw:name="Light steel blue 5" draw:color="#a2b5cd"/>
++<draw:color draw:name="Light steel blue 6" draw:color="#646d7e"/>
++<draw:color draw:name="Light steel blue 7" draw:color="#6e7b8b"/>
++<draw:color draw:name="Light steel blue 8" draw:color="#728fce"/>
++<draw:color draw:name="Light steel blue" draw:color="#b0c4de"/>
++<draw:color draw:name="Light turquoise" draw:color="#99cccc"/>
++<draw:color draw:name="Light yellow 2" draw:color="#eeeed1"/>
++<draw:color draw:name="Light yellow 3" draw:color="#cdcdb4"/>
++<draw:color draw:name="Light yellow 4" draw:color="#8b8b7a"/>
++<draw:color draw:name="Light yellow" draw:color="#ffffe0"/>
++<draw:color draw:name="Lime green 1" draw:color="#32cd32"/>
++<draw:color draw:name="Lime green" draw:color="#41a317"/>
++<draw:color draw:name="Linen" draw:color="#faf0e6"/>
++<draw:color draw:name="Magenta 1" draw:color="#f433ff"/>
++<draw:color draw:name="Magenta 2" draw:color="#e238ec"/>
++<draw:color draw:name="Magenta 3" draw:color="#c031c7"/>
++<draw:color draw:name="Magenta 4" draw:color="#8b008b"/>
++<draw:color draw:name="Maroon 1" draw:color="#f535aa"/>
++<draw:color draw:name="Maroon 2" draw:color="#e3319d"/>
++<draw:color draw:name="Maroon 3" draw:color="#c12283"/>
++<draw:color draw:name="Maroon 4" draw:color="#7d0552"/>
++<draw:color draw:name="Maroon" draw:color="#810541"/>
++<draw:color draw:name="Medium aquamarine" draw:color="#348781"/>
++<draw:color draw:name="Medium blue" draw:color="#0000cd"/>
++<draw:color draw:name="Medium forest green" draw:color="#347235"/>
++<draw:color draw:name="Medium orchid 1" draw:color="#d462ff"/>
++<draw:color draw:name="Medium orchid 2" draw:color="#e066ff"/>
++<draw:color draw:name="Medium orchid 3" draw:color="#c45aec"/>
++<draw:color draw:name="Medium orchid 4" draw:color="#d15fee"/>
++<draw:color draw:name="Medium orchid 5" draw:color="#a74ac7"/>
++<draw:color draw:name="Medium orchid 6" draw:color="#b452cd"/>
++<draw:color draw:name="Medium orchid 7" draw:color="#6a287e"/>
++<draw:color draw:name="Medium orchid 8" draw:color="#7a378b"/>
++<draw:color draw:name="Medium orchid 9" draw:color="#b048b5"/>
++<draw:color draw:name="Medium orchid" draw:color="#ba55d3"/>
++<draw:color draw:name="Medium purple 1" draw:color="#9e7bff"/>
++<draw:color draw:name="Medium purple 2" draw:color="#ab82ff"/>
++<draw:color draw:name="Medium purple 3" draw:color="#9172ec"/>
++<draw:color draw:name="Medium purple 4" draw:color="#9f79ee"/>
++<draw:color draw:name="Medium purple 5" draw:color="#7a5dc7"/>
++<draw:color draw:name="Medium purple 6" draw:color="#8968cd"/>
++<draw:color draw:name="Medium purple 7" draw:color="#4e387e"/>
++<draw:color draw:name="Medium purple 8" draw:color="#5d478b"/>
++<draw:color draw:name="Medium purple 9" draw:color="#8467d7"/>
++<draw:color draw:name="Medium purple" draw:color="#9370db"/>
++<draw:color draw:name="Medium sea green 1" draw:color="#306754"/>
++<draw:color draw:name="Medium sea green" draw:color="#3cb371"/>
++<draw:color draw:name="Medium slate blue 1" draw:color="#5e5a80"/>
++<draw:color draw:name="Medium slate blue" draw:color="#7b68ee"/>
++<draw:color draw:name="Medium spring green 1" draw:color="#00fa9a"/>
++<draw:color draw:name="Medium spring green" draw:color="#348017"/>
++<draw:color draw:name="Medium turquoise 1" draw:color="#48cccd"/>
++<draw:color draw:name="Medium turquoise" draw:color="#48d1cc"/>
++<draw:color draw:name="Medium violet red 1" draw:color="#c71585"/>
++<draw:color draw:name="Medium violet red" draw:color="#ca226b"/>
++<draw:color draw:name="Midnight blue 1" draw:color="#191970"/>
++<draw:color draw:name="Midnight blue" draw:color="#151b54"/>
++<draw:color draw:name="Mint cream" draw:color="#f5fffa"/>
++<draw:color draw:name="Misty rose 2" draw:color="#eed5d2"/>
++<draw:color draw:name="Misty rose 3" draw:color="#cdb7b5"/>
++<draw:color draw:name="Misty rose 4" draw:color="#8b7d7b"/>
++<draw:color draw:name="Misty rose" draw:color="#ffe4e1"/>
++<draw:color draw:name="Moccasin" draw:color="#ffe4b5"/>
++<draw:color draw:name="Navajo white 2" draw:color="#eecfa1"/>
++<draw:color draw:name="Navajo white 3" draw:color="#cdb38b"/>
++<draw:color draw:name="Navajo white 4" draw:color="#8b795e"/>
++<draw:color draw:name="Navajo white" draw:color="#ffdead"/>
++<draw:color draw:name="Old lace" draw:color="#fdf5e6"/>
++<draw:color draw:name="Olive drab 1" draw:color="#c0ff3e"/>
++<draw:color draw:name="Olive drab 2" draw:color="#b3ee3a"/>
++<draw:color draw:name="Olive drab 3" draw:color="#9acd32"/>
++<draw:color draw:name="Olive drab 4" draw:color="#698b22"/>
++<draw:color draw:name="Olive drab" draw:color="#6b8e23"/>
++<draw:color draw:name="Olive green" draw:color="#666633"/>
++<draw:color draw:name="Orange 1" draw:color="#ee9a00"/>
++<draw:color draw:name="Orange 2" draw:color="#cd8500"/>
++<draw:color draw:name="Orange 3" draw:color="#8b5a00"/>
++<draw:color draw:name="Orange 4" draw:color="#ff4500"/>
++<draw:color draw:name="Orange red 1" draw:color="#ee4000"/>
++<draw:color draw:name="Orange red 2" draw:color="#cd3700"/>
++<draw:color draw:name="Orange red 3" draw:color="#8b2500"/>
++<draw:color draw:name="Orange red 4" draw:color="#ff4200"/>
++<draw:color draw:name="Orange red" draw:color="#ff9900"/>
++<draw:color draw:name="Orange" draw:color="#ffa500"/>
++<draw:color draw:name="Orchid 1" draw:color="#ff83fa"/>
++<draw:color draw:name="Orchid 2" draw:color="#ee7ae9"/>
++<draw:color draw:name="Orchid 3" draw:color="#cd69c9"/>
++<draw:color draw:name="Orchid 4" draw:color="#8b4789"/>
++<draw:color draw:name="Orchid" draw:color="#da70d6"/>
++<draw:color draw:name="Pale goldenrod" draw:color="#eee8aa"/>
++<draw:color draw:name="Pale green 1" draw:color="#9aff9a"/>
++<draw:color draw:name="Pale green 3" draw:color="#7ccd7c"/>
++<draw:color draw:name="Pale green 4" draw:color="#548b54"/>
++<draw:color draw:name="Pale green 5" draw:color="#ccffcc"/>
++<draw:color draw:name="Pale green" draw:color="#98fb98"/>
++<draw:color draw:name="Pale turquoise 1" draw:color="#bbffff"/>
++<draw:color draw:name="Pale turquoise 2" draw:color="#aeeeee"/>
++<draw:color draw:name="Pale turquoise 3" draw:color="#92c7c7"/>
++<draw:color draw:name="Pale turquoise 4" draw:color="#96cdcd"/>
++<draw:color draw:name="Pale turquoise 5" draw:color="#5e7d7e"/>
++<draw:color draw:name="Pale turquoise 6" draw:color="#668b8b"/>
++<draw:color draw:name="Pale turquoise" draw:color="#afeeee"/>
++<draw:color draw:name="Pale violet red 1" draw:color="#f778a1"/>
++<draw:color draw:name="Pale violet red 2" draw:color="#ff82ab"/>
++<draw:color draw:name="Pale violet red 3" draw:color="#e56e94"/>
++<draw:color draw:name="Pale violet red 4" draw:color="#ee799f"/>
++<draw:color draw:name="Pale violet red 5" draw:color="#c25a7c"/>
++<draw:color draw:name="Pale violet red 6" draw:color="#cd6889"/>
++<draw:color draw:name="Pale violet red 7" draw:color="#7e354d"/>
++<draw:color draw:name="Pale violet red 8" draw:color="#8b475d"/>
++<draw:color draw:name="Pale violet red 9" draw:color="#d16587"/>
++<draw:color draw:name="Pale violet red" draw:color="#db7093"/>
++<draw:color draw:name="Papaya whip" draw:color="#ffefd5"/>
++<draw:color draw:name="Peach puff 1" draw:color="#ffdab9"/>
++<draw:color draw:name="Peach puff 2" draw:color="#eecbad"/>
++<draw:color draw:name="Peach puff 3" draw:color="#cdaf95"/>
++<draw:color draw:name="Peach puff 4" draw:color="#8b7765"/>
++<draw:color draw:name="Pink 1" draw:color="#ffb5c5"/>
++<draw:color draw:name="Pink 2" draw:color="#e7a1b0"/>
++<draw:color draw:name="Pink 3" draw:color="#c48793"/>
++<draw:color draw:name="Pink 4" draw:color="#7f525d"/>
++<draw:color draw:name="Pink 5" draw:color="#ffc0cb"/>
++<draw:color draw:name="Pink" draw:color="#faafbe"/>
++<draw:color draw:name="Plum 1" draw:color="#f9b7ff"/>
++<draw:color draw:name="Plum 2" draw:color="#e6a9ec"/>
++<draw:color draw:name="Plum 3" draw:color="#c38ec7"/>
++<draw:color draw:name="Plum 4" draw:color="#7e587e"/>
++<draw:color draw:name="Plum 5" draw:color="#b93b8f"/>
++<draw:color draw:name="Plum" draw:color="#dda0dd"/>
++<draw:color draw:name="PowderBlue" draw:color="#b0e0e6"/>
++<draw:color draw:name="Purple 1" draw:color="#893bff"/>
++<draw:color draw:name="Purple 2" draw:color="#7f38ec"/>
++<draw:color draw:name="Purple 3" draw:color="#6c2dc7"/>
++<draw:color draw:name="Purple 4" draw:color="#461b7e"/>
++<draw:color draw:name="Purple" draw:color="#8e35ef"/>
++<draw:color draw:name="Red 1" draw:color="#f62217"/>
++<draw:color draw:name="Red 2" draw:color="#e41b17"/>
++<draw:color draw:name="Red 3" draw:color="#cd0000"/>
++<draw:color draw:name="Red 4" draw:color="#8b0000"/>
++<draw:color draw:name="Reddish brown" draw:color="#993300"/>
++<draw:color draw:name="Rose" draw:color="#ff9999"/>
++<draw:color draw:name="Rosy brown 1" draw:color="#fbbbb9"/>
++<draw:color draw:name="Rosy brown 2" draw:color="#e8adaa"/>
++<draw:color draw:name="Rosy brown 3" draw:color="#c5908e"/>
++<draw:color draw:name="Rosy brown 4" draw:color="#7f5a58"/>
++<draw:color draw:name="Rosy brown 5" draw:color="#b38481"/>
++<draw:color draw:name="Rosy brown 6" draw:color="#ffc1c1"/>
++<draw:color draw:name="Rosy brown 7" draw:color="#eeb4b4"/>
++<draw:color draw:name="Rosy brown 8" draw:color="#cd9b9b"/>
++<draw:color draw:name="Rosy brown 9" draw:color="#8b6969"/>
++<draw:color draw:name="Rosy brown" draw:color="#bc8f8f"/>
++<draw:color draw:name="Royal blue 1" draw:color="#306eff"/>
++<draw:color draw:name="Royal blue 2" draw:color="#2b65ec"/>
++<draw:color draw:name="Royal blue 3" draw:color="#2554c7"/>
++<draw:color draw:name="Royal blue 4" draw:color="#15317e"/>
++<draw:color draw:name="Royal blue 5" draw:color="#4169e1"/>
++<draw:color draw:name="Royal blue 6" draw:color="#4876ff"/>
++<draw:color draw:name="Royal blue 7" draw:color="#436eee"/>
++<draw:color draw:name="Royal blue 8" draw:color="#3a5fcd"/>
++<draw:color draw:name="Royal blue 9" draw:color="#27408b"/>
++<draw:color draw:name="Royal blue" draw:color="#2b60de"/>
++<draw:color draw:name="Russet" draw:color="#990000"/>
++<draw:color draw:name="Salmon 1" draw:color="#f88158"/>
++<draw:color draw:name="Salmon 2" draw:color="#e67451"/>
++<draw:color draw:name="Salmon 3" draw:color="#c36241"/>
++<draw:color draw:name="Salmon 4" draw:color="#7e3817"/>
++<draw:color draw:name="Salmon" draw:color="#fa8072"/>
++<draw:color draw:name="Sand" draw:color="#e1e1cc"/>
++<draw:color draw:name="Sandy brown 1" draw:color="#f4a460"/>
++<draw:color draw:name="Sandy brown" draw:color="#ee9a4d"/>
++<draw:color draw:name="Sea green 1" draw:color="#6afb92"/>
++<draw:color draw:name="Sea green 2" draw:color="#64e986"/>
++<draw:color draw:name="Sea green 3" draw:color="#54c571"/>
++<draw:color draw:name="Sea green 4" draw:color="#387c44"/>
++<draw:color draw:name="Sea green 5" draw:color="#2e8b57"/>
++<draw:color draw:name="Sea green 6" draw:color="#54ff9f"/>
++<draw:color draw:name="Sea green 7" draw:color="#4eee94"/>
++<draw:color draw:name="Sea green 8" draw:color="#43cd80"/>
++<draw:color draw:name="Sea green" draw:color="#4e8975"/>
++<draw:color draw:name="Seashell 1" draw:color="#fff5ee"/>
++<draw:color draw:name="Seashell 2" draw:color="#eee5de"/>
++<draw:color draw:name="Seashell 3" draw:color="#cdc5bf"/>
++<draw:color draw:name="Seashell 4" draw:color="#8b8682"/>
++<draw:color draw:name="Seashell" draw:color="#fff5ed"/>
++<draw:color draw:name="Sienna 1" draw:color="#f87431"/>
++<draw:color draw:name="Sienna 2" draw:color="#e66c2c"/>
++<draw:color draw:name="Sienna 3" draw:color="#c35817"/>
++<draw:color draw:name="Sienna 4" draw:color="#7e3517"/>
++<draw:color draw:name="Sienna 5" draw:color="#a0522d"/>
++<draw:color draw:name="Sienna" draw:color="#cc6600"/>
++<draw:color draw:name="Sky blue 1" draw:color="#87ceff"/>
++<draw:color draw:name="Sky blue 2" draw:color="#79baec"/>
++<draw:color draw:name="Sky blue 3" draw:color="#7ec0ee"/>
++<draw:color draw:name="Sky blue 4" draw:color="#659ec7"/>
++<draw:color draw:name="Sky blue 5" draw:color="#6ca6cd"/>
++<draw:color draw:name="Sky blue 6" draw:color="#41627e"/>
++<draw:color draw:name="Sky blue 7" draw:color="#4a708b"/>
++<draw:color draw:name="Sky blue 8" draw:color="#87ceeb"/>
++<draw:color draw:name="Sky blue" draw:color="#82caff"/>
++<draw:color draw:name="Slate blue 1" draw:color="#6960ec"/>
++<draw:color draw:name="Slate blue 2" draw:color="#836fff"/>
++<draw:color draw:name="Slate blue 3" draw:color="#7a67ee"/>
++<draw:color draw:name="Slate blue 4" draw:color="#6959cd"/>
++<draw:color draw:name="Slate blue 5" draw:color="#473c8b"/>
++<draw:color draw:name="Slate blue 6" draw:color="#6a5acd"/>
++<draw:color draw:name="Slate blue" draw:color="#342d7e"/>
++<draw:color draw:name="Slate gray 1" draw:color="#c2dfff"/>
++<draw:color draw:name="Slate gray 2" draw:color="#b4cfec"/>
++<draw:color draw:name="Slate gray 3" draw:color="#98afc7"/>
++<draw:color draw:name="Slate gray 4" draw:color="#616d7e"/>
++<draw:color draw:name="Slate gray 5" draw:color="#c6e2ff"/>
++<draw:color draw:name="Slate gray 6" draw:color="#b9d3ee"/>
++<draw:color draw:name="Slate gray 7" draw:color="#9fb6cd"/>
++<draw:color draw:name="Slate gray 8" draw:color="#6c7b8b"/>
++<draw:color draw:name="Slate gray 9" draw:color="#657383"/>
++<draw:color draw:name="Slate gray" draw:color="#708090"/>
++<draw:color draw:name="Snow 2" draw:color="#eee9e9"/>
++<draw:color draw:name="Snow 3" draw:color="#cdc9c9"/>
++<draw:color draw:name="Snow 4" draw:color="#8b8989"/>
++<draw:color draw:name="Snow" draw:color="#fffafa"/>
++<draw:color draw:name="Spring green 1" draw:color="#5efb6e"/>
++<draw:color draw:name="Spring green 2" draw:color="#57e964"/>
++<draw:color draw:name="Spring green 3" draw:color="#4cc552"/>
++<draw:color draw:name="Spring green 4" draw:color="#347c2c"/>
++<draw:color draw:name="Spring green 5" draw:color="#4aa02c"/>
++<draw:color draw:name="Spring green 6" draw:color="#00ee76"/>
++<draw:color draw:name="Spring green 7" draw:color="#00cd66"/>
++<draw:color draw:name="Spring green 8" draw:color="#008b45"/>
++<draw:color draw:name="Spring green" draw:color="#00ff7f"/>
++<draw:color draw:name="Steel blue 1" draw:color="#5cb3ff"/>
++<draw:color draw:name="Steel blue 2" draw:color="#56a5ec"/>
++<draw:color draw:name="Steel blue 3" draw:color="#488ac7"/>
++<draw:color draw:name="Steel blue 4" draw:color="#2b547e"/>
++<draw:color draw:name="Steel blue 5" draw:color="#63b8ff"/>
++<draw:color draw:name="Steel blue 6" draw:color="#5cacee"/>
++<draw:color draw:name="Steel blue 7" draw:color="#4f94cd"/>
++<draw:color draw:name="Steel blue 8" draw:color="#36648b"/>
++<draw:color draw:name="Steel blue 9" draw:color="#4682b4"/>
++<draw:color draw:name="Steel blue" draw:color="#4863a0"/>
++<draw:color draw:name="Tan 1" draw:color="#ffa54f"/>
++<draw:color draw:name="Tan 2" draw:color="#ee9a49"/>
++<draw:color draw:name="Tan 3" draw:color="#cd853f"/>
++<draw:color draw:name="Tan 4" draw:color="#8b5a2b"/>
++<draw:color draw:name="Tan" draw:color="#d2b48c"/>
++<draw:color draw:name="Thistle 1" draw:color="#fcdfff"/>
++<draw:color draw:name="Thistle 2" draw:color="#e9cfec"/>
++<draw:color draw:name="Thistle 3" draw:color="#c6aec7"/>
++<draw:color draw:name="Thistle 4" draw:color="#806d7e"/>
++<draw:color draw:name="Thistle 5" draw:color="#d2b9d3"/>
++<draw:color draw:name="Thistle" draw:color="#d8bfd8"/>
++<draw:color draw:name="Tomato 2" draw:color="#ee5c42"/>
++<draw:color draw:name="Tomato 3" draw:color="#cd4f39"/>
++<draw:color draw:name="Tomato 4" draw:color="#8b3626"/>
++<draw:color draw:name="Tomato" draw:color="#ff6347"/>
++<draw:color draw:name="Turquoise 1" draw:color="#52f3ff"/>
++<draw:color draw:name="Turquoise 2" draw:color="#4ee2ec"/>
++<draw:color draw:name="Turquoise 3" draw:color="#43bfc7"/>
++<draw:color draw:name="Turquoise 4" draw:color="#669999"/>
++<draw:color draw:name="Turquoise" draw:color="#40e0d0"/>
++<draw:color draw:name="Umbra" draw:color="#333300"/>
++<draw:color draw:name="Violet 1" draw:color="#ee82ee"/>
++<draw:color draw:name="Violet red 1" draw:color="#e4317f"/>
++<draw:color draw:name="Violet red 2" draw:color="#ee3a8c"/>
++<draw:color draw:name="Violet red 3" draw:color="#c12869"/>
++<draw:color draw:name="Violet red 4" draw:color="#cd3278"/>
++<draw:color draw:name="Violet red 5" draw:color="#7d0541"/>
++<draw:color draw:name="Violet red 6" draw:color="#8b2252"/>
++<draw:color draw:name="Violet red 7" draw:color="#d02090"/>
++<draw:color draw:name="Violet red 8" draw:color="#ff3e96"/>
++<draw:color draw:name="Violet red" draw:color="#f6358a"/>
++<draw:color draw:name="Violet" draw:color="#8d38c9"/>
++<draw:color draw:name="Wheat 1" draw:color="#ffe7ba"/>
++<draw:color draw:name="Wheat 2" draw:color="#eed8ae"/>
++<draw:color draw:name="Wheat 3" draw:color="#cdba96"/>
++<draw:color draw:name="Wheat 4" draw:color="#8b7e66"/>
++<draw:color draw:name="Wheat" draw:color="#f5deb3"/>
++<draw:color draw:name="White smoke" draw:color="#f5f5f5"/>
++<draw:color draw:name="Yellow 1" draw:color="#fffc17"/>
++<draw:color draw:name="Yellow 2" draw:color="#eeee00"/>
++<draw:color draw:name="Yellow 3" draw:color="#cdcd00"/>
++<draw:color draw:name="Yellow 4" draw:color="#8b8b00"/>
++<draw:color draw:name="Yellow green" draw:color="#52d017"/>
++
++<!-- Netscape 16 Web Color Palette -->
++<draw:color draw:name="Netscape 16 - Aqua" draw:color="#00ffff"/>
++<draw:color draw:name="Netscape 16 - Black" draw:color="#000000"/>
++<draw:color draw:name="Netscape 16 - Blue" draw:color="#0000ff"/>
++<draw:color draw:name="Netscape 16 - Fuchsia" draw:color="#ff00ff"/>
++<draw:color draw:name="Netscape 16 - Gray" draw:color="#808080"/>
++<draw:color draw:name="Netscape 16 - Green" draw:color="#008000"/>
++<draw:color draw:name="Netscape 16 - Lime" draw:color="#00ff00"/>
++<draw:color draw:name="Netscape 16 - Maroon" draw:color="#800000"/>
++<draw:color draw:name="Netscape 16 - Navy" draw:color="#000080"/>
++<draw:color draw:name="Netscape 16 - Olive" draw:color="#808000"/>
++<draw:color draw:name="Netscape 16 - Purple" draw:color="#800080"/>
++<draw:color draw:name="Netscape 16 - Red" draw:color="#ff0000"/>
++<draw:color draw:name="Netscape 16 - Silver" draw:color="#c0c0c0"/>
++<draw:color draw:name="Netscape 16 - Teal" draw:color="#008080"/>
++<draw:color draw:name="Netscape 16 - White" draw:color="#ffffff"/>
++<draw:color draw:name="Netscape 16 - Yellow" draw:color="#ffff00"/>
++
++<!-- Very Websafe 22 Color Palette -->
++<draw:color draw:name="Very websafe 22 - F00" draw:color="#ff0000"/>
++<draw:color draw:name="Very websafe 22 - 003" draw:color="#000033"/>
++<draw:color draw:name="Very websafe 22 - F03" draw:color="#ff0033"/>
++<draw:color draw:name="Very websafe 22 - 00F" draw:color="#0000ff"/>
++<draw:color draw:name="Very websafe 22 - F0F" draw:color="#ff00ff"/>
++<draw:color draw:name="Very websafe 22 - 0F0" draw:color="#00ff00"/>
++<draw:color draw:name="Very websafe 22 - 6F0" draw:color="#66ff00"/>
++<draw:color draw:name="Very websafe 22 - FF0" draw:color="#ffff00"/>
++<draw:color draw:name="Very websafe 22 - 3F3" draw:color="#33ff33"/>
++<draw:color draw:name="Very websafe 22 - 6F3" draw:color="#66ff33"/>
++<draw:color draw:name="Very websafe 22 - FF3" draw:color="#ffff33"/>
++<draw:color draw:name="Very websafe 22 - 0F6" draw:color="#00ff66"/>
++<draw:color draw:name="Very websafe 22 - 3F6" draw:color="#33ff66"/>
++<draw:color draw:name="Very websafe 22 - CF6" draw:color="#ccff66"/>
++<draw:color draw:name="Very websafe 22 - FF6" draw:color="#ffff66"/>
++<draw:color draw:name="Very websafe 22 - 0FC" draw:color="#00ffcc"/>
++<draw:color draw:name="Very websafe 22 - 3FC" draw:color="#33ffcc"/>
++<draw:color draw:name="Very websafe 22 - 0FF" draw:color="#00ffff"/>
++<draw:color draw:name="Very websafe 22 - 3FF" draw:color="#33ffff"/>
++<draw:color draw:name="Very websafe 22 - 6FF" draw:color="#66ffff"/>
++<draw:color draw:name="Very websafe 22 - FFF" draw:color="#ffffff"/>
++
++<draw:color draw:name="Websafe 216 - 000" draw:color="#000000"/>
++<draw:color draw:name="Websafe 216 - 300" draw:color="#330000"/>
++<draw:color draw:name="Websafe 216 - 600" draw:color="#660000"/>
++<draw:color draw:name="Websafe 216 - 900" draw:color="#990000"/>
++<draw:color draw:name="Websafe 216 - C00" draw:color="#cc0000"/>
++<draw:color draw:name="Websafe 216 - F00" draw:color="#ff0000"/>
++<draw:color draw:name="Websafe 216 - 003" draw:color="#000033"/>
++<draw:color draw:name="Websafe 216 - 303" draw:color="#330033"/>
++<draw:color draw:name="Websafe 216 - 603" draw:color="#660033"/>
++<draw:color draw:name="Websafe 216 - 903" draw:color="#990033"/>
++<draw:color draw:name="Websafe 216 - C03" draw:color="#cc0033"/>
++<draw:color draw:name="Websafe 216 - F03" draw:color="#ff0033"/>
++<draw:color draw:name="Websafe 216 - 006" draw:color="#000066"/>
++<draw:color draw:name="Websafe 216 - 306" draw:color="#330066"/>
++<draw:color draw:name="Websafe 216 - 606" draw:color="#660066"/>
++<draw:color draw:name="Websafe 216 - 906" draw:color="#990066"/>
++<draw:color draw:name="Websafe 216 - C06" draw:color="#cc0066"/>
++<draw:color draw:name="Websafe 216 - F06" draw:color="#ff0066"/>
++<draw:color draw:name="Websafe 216 - 009" draw:color="#000099"/>
++<draw:color draw:name="Websafe 216 - 309" draw:color="#330099"/>
++<draw:color draw:name="Websafe 216 - 609" draw:color="#660099"/>
++<draw:color draw:name="Websafe 216 - 909" draw:color="#990099"/>
++<draw:color draw:name="Websafe 216 - C09" draw:color="#cc0099"/>
++<draw:color draw:name="Websafe 216 - F09" draw:color="#ff0099"/>
++<draw:color draw:name="Websafe 216 - 00C" draw:color="#0000cc"/>
++<draw:color draw:name="Websafe 216 - 30C" draw:color="#3300cc"/>
++<draw:color draw:name="Websafe 216 - 60C" draw:color="#6600cc"/>
++<draw:color draw:name="Websafe 216 - 90C" draw:color="#9900cc"/>
++<draw:color draw:name="Websafe 216 - C0C" draw:color="#cc00cc"/>
++<draw:color draw:name="Websafe 216 - F0C" draw:color="#ff00cc"/>
++<draw:color draw:name="Websafe 216 - 00F" draw:color="#0000ff"/>
++<draw:color draw:name="Websafe 216 - 30F" draw:color="#3300ff"/>
++<draw:color draw:name="Websafe 216 - 60F" draw:color="#000000"/>
++<draw:color draw:name="Websafe 216 - 90F" draw:color="#9900ff"/>
++<draw:color draw:name="Websafe 216 - C0F" draw:color="#cc00ff"/>
++<draw:color draw:name="Websafe 216 - F0F" draw:color="#ff00ff"/>
++<draw:color draw:name="Websafe 216 - 030" draw:color="#003300"/>
++<draw:color draw:name="Websafe 216 - 330" draw:color="#333300"/>
++<draw:color draw:name="Websafe 216 - 630" draw:color="#663300"/>
++<draw:color draw:name="Websafe 216 - 930" draw:color="#993300"/>
++<draw:color draw:name="Websafe 216 - C30" draw:color="#cc3300"/>
++<draw:color draw:name="Websafe 216 - F30" draw:color="#ff3300"/>
++<draw:color draw:name="Websafe 216 - 033" draw:color="#003333"/>
++<draw:color draw:name="Websafe 216 - 333" draw:color="#333333"/>
++<draw:color draw:name="Websafe 216 - 633" draw:color="#663333"/>
++<draw:color draw:name="Websafe 216 - 933" draw:color="#993333"/>
++<draw:color draw:name="Websafe 216 - C33" draw:color="#cc3333"/>
++<draw:color draw:name="Websafe 216 - F33" draw:color="#ff3333"/>
++<draw:color draw:name="Websafe 216 - 036" draw:color="#003366"/>
++<draw:color draw:name="Websafe 216 - 336" draw:color="#333366"/>
++<draw:color draw:name="Websafe 216 - 636" draw:color="#663366"/>
++<draw:color draw:name="Websafe 216 - 936" draw:color="#993366"/>
++<draw:color draw:name="Websafe 216 - C36" draw:color="#cc3366"/>
++<draw:color draw:name="Websafe 216 - F36" draw:color="#ff3366"/>
++<draw:color draw:name="Websafe 216 - 039" draw:color="#003399"/>
++<draw:color draw:name="Websafe 216 - 339" draw:color="#333399"/>
++<draw:color draw:name="Websafe 216 - 639" draw:color="#663399"/>
++<draw:color draw:name="Websafe 216 - 939" draw:color="#993399"/>
++<draw:color draw:name="Websafe 216 - C39" draw:color="#cc3399"/>
++<draw:color draw:name="Websafe 216 - F39" draw:color="#ff3399"/>
++<draw:color draw:name="Websafe 216 - 03C" draw:color="#0033cc"/>
++<draw:color draw:name="Websafe 216 - 33C" draw:color="#3333cc"/>
++<draw:color draw:name="Websafe 216 - 63C" draw:color="#6633cc"/>
++<draw:color draw:name="Websafe 216 - 93C" draw:color="#9933cc"/>
++<draw:color draw:name="Websafe 216 - C3C" draw:color="#cc33cc"/>
++<draw:color draw:name="Websafe 216 - F3C" draw:color="#ff33cc"/>
++<draw:color draw:name="Websafe 216 - 03F" draw:color="#0033ff"/>
++<draw:color draw:name="Websafe 216 - 33F" draw:color="#3333ff"/>
++<draw:color draw:name="Websafe 216 - 63F" draw:color="#6633ff"/>
++<draw:color draw:name="Websafe 216 - 93F" draw:color="#9933ff"/>
++<draw:color draw:name="Websafe 216 - C3F" draw:color="#cc33ff"/>
++<draw:color draw:name="Websafe 216 - F3F" draw:color="#ff33ff"/>
++<draw:color draw:name="Websafe 216 - 060" draw:color="#006600"/>
++<draw:color draw:name="Websafe 216 - 360" draw:color="#336600"/>
++<draw:color draw:name="Websafe 216 - 660" draw:color="#666600"/>
++<draw:color draw:name="Websafe 216 - 960" draw:color="#996600"/>
++<draw:color draw:name="Websafe 216 - C60" draw:color="#cc6600"/>
++<draw:color draw:name="Websafe 216 - F60" draw:color="#ff6600"/>
++<draw:color draw:name="Websafe 216 - 063" draw:color="#006633"/>
++<draw:color draw:name="Websafe 216 - 363" draw:color="#336633"/>
++<draw:color draw:name="Websafe 216 - 663" draw:color="#666633"/>
++<draw:color draw:name="Websafe 216 - 963" draw:color="#996633"/>
++<draw:color draw:name="Websafe 216 - C63" draw:color="#cc6633"/>
++<draw:color draw:name="Websafe 216 - F63" draw:color="#ff6633"/>
++<draw:color draw:name="Websafe 216 - 066" draw:color="#006666"/>
++<draw:color draw:name="Websafe 216 - 366" draw:color="#336666"/>
++<draw:color draw:name="Websafe 216 - 666" draw:color="#666666"/>
++<draw:color draw:name="Websafe 216 - 966" draw:color="#996666"/>
++<draw:color draw:name="Websafe 216 - C66" draw:color="#cc6666"/>
++<draw:color draw:name="Websafe 216 - F66" draw:color="#ff6666"/>
++<draw:color draw:name="Websafe 216 - 069" draw:color="#006699"/>
++<draw:color draw:name="Websafe 216 - 369" draw:color="#336699"/>
++<draw:color draw:name="Websafe 216 - 669" draw:color="#666699"/>
++<draw:color draw:name="Websafe 216 - 969" draw:color="#996699"/>
++<draw:color draw:name="Websafe 216 - C69" draw:color="#cc6699"/>
++<draw:color draw:name="Websafe 216 - F69" draw:color="#ff6699"/>
++<draw:color draw:name="Websafe 216 - 06C" draw:color="#0066cc"/>
++<draw:color draw:name="Websafe 216 - 36C" draw:color="#3366cc"/>
++<draw:color draw:name="Websafe 216 - 66C" draw:color="#6666cc"/>
++<draw:color draw:name="Websafe 216 - 96C" draw:color="#9966cc"/>
++<draw:color draw:name="Websafe 216 - C6C" draw:color="#cc66cc"/>
++<draw:color draw:name="Websafe 216 - F6C" draw:color="#ff66cc"/>
++<draw:color draw:name="Websafe 216 - 06F" draw:color="#0066ff"/>
++<draw:color draw:name="Websafe 216 - 36F" draw:color="#3366ff"/>
++<draw:color draw:name="Websafe 216 - 66F" draw:color="#6666ff"/>
++<draw:color draw:name="Websafe 216 - 96F" draw:color="#9966ff"/>
++<draw:color draw:name="Websafe 216 - C6F" draw:color="#cc66ff"/>
++<draw:color draw:name="Websafe 216 - F6F" draw:color="#ff66ff"/>
++<draw:color draw:name="Websafe 216 - 090" draw:color="#009900"/>
++<draw:color draw:name="Websafe 216 - 390" draw:color="#339900"/>
++<draw:color draw:name="Websafe 216 - 690" draw:color="#669900"/>
++<draw:color draw:name="Websafe 216 - 990" draw:color="#999900"/>
++<draw:color draw:name="Websafe 216 - C90" draw:color="#cc9900"/>
++<draw:color draw:name="Websafe 216 - F90" draw:color="#ff9900"/>
++<draw:color draw:name="Websafe 216 - 093" draw:color="#009933"/>
++<draw:color draw:name="Websafe 216 - 393" draw:color="#339933"/>
++<draw:color draw:name="Websafe 216 - 693" draw:color="#669933"/>
++<draw:color draw:name="Websafe 216 - 993" draw:color="#999933"/>
++<draw:color draw:name="Websafe 216 - C93" draw:color="#cc9933"/>
++<draw:color draw:name="Websafe 216 - F93" draw:color="#ff9933"/>
++<draw:color draw:name="Websafe 216 - 096" draw:color="#009966"/>
++<draw:color draw:name="Websafe 216 - 396" draw:color="#339966"/>
++<draw:color draw:name="Websafe 216 - 696" draw:color="#669966"/>
++<draw:color draw:name="Websafe 216 - 996" draw:color="#999966"/>
++<draw:color draw:name="Websafe 216 - C96" draw:color="#cc9966"/>
++<draw:color draw:name="Websafe 216 - F96" draw:color="#ff9966"/>
++<draw:color draw:name="Websafe 216 - 099" draw:color="#009999"/>
++<draw:color draw:name="Websafe 216 - 399" draw:color="#339999"/>
++<draw:color draw:name="Websafe 216 - 699" draw:color="#669999"/>
++<draw:color draw:name="Websafe 216 - 999" draw:color="#999999"/>
++<draw:color draw:name="Websafe 216 - C99" draw:color="#cc9999"/>
++<draw:color draw:name="Websafe 216 - F99" draw:color="#ff9999"/>
++<draw:color draw:name="Websafe 216 - 09C" draw:color="#0099cc"/>
++<draw:color draw:name="Websafe 216 - 39C" draw:color="#3399cc"/>
++<draw:color draw:name="Websafe 216 - 69C" draw:color="#6699cc"/>
++<draw:color draw:name="Websafe 216 - 99C" draw:color="#9999cc"/>
++<draw:color draw:name="Websafe 216 - C9C" draw:color="#cc99cc"/>
++<draw:color draw:name="Websafe 216 - F9C" draw:color="#ff99cc"/>
++<draw:color draw:name="Websafe 216 - 09F" draw:color="#0099ff"/>
++<draw:color draw:name="Websafe 216 - 39F" draw:color="#3399ff"/>
++<draw:color draw:name="Websafe 216 - 69F" draw:color="#6699ff"/>
++<draw:color draw:name="Websafe 216 - 99F" draw:color="#9999ff"/>
++<draw:color draw:name="Websafe 216 - C9F" draw:color="#cc99ff"/>
++<draw:color draw:name="Websafe 216 - F9F" draw:color="#ff99ff"/>
++<draw:color draw:name="Websafe 216 - 0C0" draw:color="#00cc00"/>
++<draw:color draw:name="Websafe 216 - 3C0" draw:color="#33cc00"/>
++<draw:color draw:name="Websafe 216 - 6C0" draw:color="#66cc00"/>
++<draw:color draw:name="Websafe 216 - 9C0" draw:color="#99cc00"/>
++<draw:color draw:name="Websafe 216 - CC0" draw:color="#cccc00"/>
++<draw:color draw:name="Websafe 216 - FC0" draw:color="#ffcc00"/>
++<draw:color draw:name="Websafe 216 - 0C3" draw:color="#00cc33"/>
++<draw:color draw:name="Websafe 216 - 3C3" draw:color="#33cc33"/>
++<draw:color draw:name="Websafe 216 - 6C3" draw:color="#66cc33"/>
++<draw:color draw:name="Websafe 216 - 9C3" draw:color="#99cc33"/>
++<draw:color draw:name="Websafe 216 - CC3" draw:color="#cccc33"/>
++<draw:color draw:name="Websafe 216 - FC3" draw:color="#ffcc33"/>
++<draw:color draw:name="Websafe 216 - 0C6" draw:color="#00cc66"/>
++<draw:color draw:name="Websafe 216 - 3C6" draw:color="#33cc66"/>
++<draw:color draw:name="Websafe 216 - 6C6" draw:color="#66cc66"/>
++<draw:color draw:name="Websafe 216 - 9C6" draw:color="#99cc66"/>
++<draw:color draw:name="Websafe 216 - CC6" draw:color="#cccc66"/>
++<draw:color draw:name="Websafe 216 - FC6" draw:color="#ffcc66"/>
++<draw:color draw:name="Websafe 216 - 0C9" draw:color="#00cc99"/>
++<draw:color draw:name="Websafe 216 - 3C9" draw:color="#33cc99"/>
++<draw:color draw:name="Websafe 216 - 6C9" draw:color="#66cc99"/>
++<draw:color draw:name="Websafe 216 - 9C9" draw:color="#99cc99"/>
++<draw:color draw:name="Websafe 216 - CC9" draw:color="#cccc99"/>
++<draw:color draw:name="Websafe 216 - FC9" draw:color="#ffcc99"/>
++<draw:color draw:name="Websafe 216 - 0CC" draw:color="#00cccc"/>
++<draw:color draw:name="Websafe 216 - 3CC" draw:color="#33cccc"/>
++<draw:color draw:name="Websafe 216 - 6CC" draw:color="#66cccc"/>
++<draw:color draw:name="Websafe 216 - 9CC" draw:color="#99cccc"/>
++<draw:color draw:name="Websafe 216 - CCC" draw:color="#cccccc"/>
++<draw:color draw:name="Websafe 216 - FCC" draw:color="#ffcccc"/>
++<draw:color draw:name="Websafe 216 - 0CF" draw:color="#00ccff"/>
++<draw:color draw:name="Websafe 216 - 3CF" draw:color="#33ccff"/>
++<draw:color draw:name="Websafe 216 - 6CF" draw:color="#66ccff"/>
++<draw:color draw:name="Websafe 216 - 9CF" draw:color="#99ccff"/>
++<draw:color draw:name="Websafe 216 - CCF" draw:color="#ccccff"/>
++<draw:color draw:name="Websafe 216 - FCF" draw:color="#ffccff"/>
++<draw:color draw:name="Websafe 216 - 0F0" draw:color="#00ff00"/>
++<draw:color draw:name="Websafe 216 - 3F0" draw:color="#33ff00"/>
++<draw:color draw:name="Websafe 216 - 6F0" draw:color="#66ff00"/>
++<draw:color draw:name="Websafe 216 - 9F0" draw:color="#99ff00"/>
++<draw:color draw:name="Websafe 216 - CF0" draw:color="#ccff00"/>
++<draw:color draw:name="Websafe 216 - FF0" draw:color="#ffff00"/>
++<draw:color draw:name="Websafe 216 - 0F3" draw:color="#00ff33"/>
++<draw:color draw:name="Websafe 216 - 3F3" draw:color="#33ff33"/>
++<draw:color draw:name="Websafe 216 - 6F3" draw:color="#66ff33"/>
++<draw:color draw:name="Websafe 216 - 9F3" draw:color="#99ff33"/>
++<draw:color draw:name="Websafe 216 - CF3" draw:color="#ccff33"/>
++<draw:color draw:name="Websafe 216 - FF3" draw:color="#ccff33"/>
++<draw:color draw:name="Websafe 216 - 0F6" draw:color="#00ff66"/>
++<draw:color draw:name="Websafe 216 - 3F6" draw:color="#33ff66"/>
++<draw:color draw:name="Websafe 216 - 6F6" draw:color="#66ff66"/>
++<draw:color draw:name="Websafe 216 - 9F6" draw:color="#99ff66"/>
++<draw:color draw:name="Websafe 216 - CF6" draw:color="#ccff66"/>
++<draw:color draw:name="Websafe 216 - FF6" draw:color="#ffff66"/>
++<draw:color draw:name="Websafe 216 - 0F9" draw:color="#00ff99"/>
++<draw:color draw:name="Websafe 216 - 3F9" draw:color="#33ff99"/>
++<draw:color draw:name="Websafe 216 - 6F9" draw:color="#66ff99"/>
++<draw:color draw:name="Websafe 216 - 9F9" draw:color="#99ff99"/>
++<draw:color draw:name="Websafe 216 - CF9" draw:color="#ccff99"/>
++<draw:color draw:name="Websafe 216 - FF9" draw:color="#ffff99"/>
++<draw:color draw:name="Websafe 216 - 0FC" draw:color="#00ffcc"/>
++<draw:color draw:name="Websafe 216 - 3FC" draw:color="#33ffcc"/>
++<draw:color draw:name="Websafe 216 - 6FC" draw:color="#66ffcc"/>
++<draw:color draw:name="Websafe 216 - 9FC" draw:color="#99ffcc"/>
++<draw:color draw:name="Websafe 216 - CFC" draw:color="#ccffcc"/>
++<draw:color draw:name="Websafe 216 - FFC" draw:color="#ffffcc"/>
++<draw:color draw:name="Websafe 216 - 0FF" draw:color="#00ffff"/>
++<draw:color draw:name="Websafe 216 - 3FF" draw:color="#33ffff"/>
++<draw:color draw:name="Websafe 216 - 6FF" draw:color="#66ffff"/>
++<draw:color draw:name="Websafe 216 - 9FF" draw:color="#99ffff"/>
++<draw:color draw:name="Websafe 216 - CFF" draw:color="#ccffff"/>
++<draw:color draw:name="Websafe 216 - FFF" draw:color="#000000"/>
++
++<!-- 3 bit Color Palette -->
++<draw:color draw:name="3 BIT RGB - Black " draw:color="#ffffff"/>
++<draw:color draw:name="3 BIT RGB - Blue " draw:color="#6699CC"/>
++<draw:color draw:name="3 BIT RGB - Green " draw:color="#669966"/>
++<draw:color draw:name="3 BIT RGB - Cyan " draw:color="#00ffff"/>
++<draw:color draw:name="3 BIT RGB - Red " draw:color="#FF3333"/>
++<draw:color draw:name="3 BIT RGB - Magenta " draw:color="#8b008b"/>
++<draw:color draw:name="3 BIT RGB - Yellow " draw:color="#ffff00"/>
++<draw:color draw:name="3 BIT RGB - White " draw:color="#000000"/>
++
++<!-- 4 bit Color Palette -->
++<draw:color draw:name="4 BIT RGB 0 - Black" draw:color="#ffffff"/>
++<draw:color draw:name="4 BIT RGB 1 - Blue" draw:color="#6699CC"/>
++<draw:color draw:name="4 BIT RGB 2 - Green" draw:color="#669966"/>
++<draw:color draw:name="4 BIT RGB 3 - Cyan" draw:color="#00ffff"/>
++<draw:color draw:name="4 BIT RGB 4 - Red" draw:color="#FF3333"/>
++<draw:color draw:name="4 BIT RGB 5 - Magenta" draw:color="#8b008b"/>
++<draw:color draw:name="4 BIT RGB 6 - Brown" draw:color="#663300"/>
++<draw:color draw:name="4 BIT RGB 7 - White" draw:color="#c0c0c0"/>
++<draw:color draw:name="4 BIT RGB 8 - Dark gray" draw:color="# a9a9a9"/>
++<draw:color draw:name="4 BIT RGB 9 - Bright blue" draw:color="# 4700b8"/>
++<draw:color draw:name="4 BIT RGB 10 - Bright green" draw:color="#000000"/>
++<draw:color draw:name="4 BIT RGB 11 - Bright cyan" draw:color="#aaaaaa"/>
++<draw:color draw:name="4 BIT RGB 12 - Bright red" draw:color="#bbbbbb"/>
++<draw:color draw:name="4 BIT RGB 13 - Bright magenta" draw:color="#cccccc"/>
++<draw:color draw:name="4 BIT RGB 14 - Yellow" draw:color="#ffff00"/>
++<draw:color draw:name="4 BIT RGB 15 - Bright white" draw:color="#000000"/>
++
++<!-- Major Color Palette -->
++<draw:color draw:name="Major - Red " draw:color="#FF3333"/>
++<draw:color draw:name="Major - Turquoise " draw:color="#00ffff"/>
++<draw:color draw:name="Major - Light blue " draw:color="#99CCFF"/>
++<draw:color draw:name="Major - Dark blue " draw:color="#6699CC"/>
++<draw:color draw:name="Major - Light purple " draw:color="#ff0080"/>
++<draw:color draw:name="Major - Dark purple " draw:color="#800080"/>
++<draw:color draw:name="Major - Yellow" draw:color="#ffff00"/>
++<draw:color draw:name="Major - Pastel green" draw:color="#00ff00"/>
++<draw:color draw:name="Major - Pink" draw:color="#ff00ff"/>
++<draw:color draw:name="Major - White " draw:color="#ffffff"/>
++<draw:color draw:name="Major - Light grey" draw:color="#c0c0c0"/>
++<draw:color draw:name="Major - Dark grey" draw:color="#a9a9a9"/>
++<draw:color draw:name="Major - Black" draw:color="#000000"/>
++<draw:color draw:name="Major - Orange " draw:color="#ff8040"/>
++<draw:color draw:name="Major - Brown" draw:color="#804000"/>
++<draw:color draw:name="Major - Burgundy" draw:color="#800000"/>
++<draw:color draw:name="Major - Forest green" draw:color="#228b22"/>
++<draw:color draw:name="Major - Grass green " draw:color="#408080"/>
++
++<!-- Thompson Color Palette -->
++<draw:color draw:name="Thompson - Black" draw:color="#000000"/>
++<draw:color draw:name="Thompson - White" draw:color="#FFFFFF"/>
++<draw:color draw:name="Thompson - Red" draw:color="#FF0000"/>
++<draw:color draw:name="Thompson - Green" draw:color="#00FF0"/>
++<draw:color draw:name="Thompson - Blue" draw:color="#0000FF"/>
++<draw:color draw:name="Thompson - Cyan" draw:color="#00FFFF"/>
++<draw:color draw:name="Thompson - Magenta" draw:color="#FF00D3"/>
++<draw:color draw:name="Thompson - Yellow" draw:color="#FFFF00"/>
++<draw:color draw:name="Thompson - Orange" draw:color="#FF8A00"/>
++<draw:color draw:name="Thompson - Green yellow" draw:color="#9FD300"/>
++<draw:color draw:name="Thompson - Spring green" draw:color="#00FF9F"/>
++<draw:color draw:name="Thompson - Sky blue" draw:color="#008AFF"/>
++<draw:color draw:name="Thompson - Violet" draw:color="#9400D3"/>
++<draw:color draw:name="Thompson - Violet red" draw:color="#FF0094"/>
++<draw:color draw:name="Thompson - Dim gray" draw:color="#696969"/>
++<draw:color draw:name="Thompson - Gray" draw:color="#AEAEAE"/>
++<draw:color draw:name="Thompson - Grey" draw:color="#AEAEAE"/>
++<draw:color draw:name="Thompson - Light grey" draw:color="#D3D3D3"/>
++<draw:color draw:name="Thompson - Light gray" draw:color="#D3D3D3"/>
++<draw:color draw:name="Thompson - Dim grey" draw:color="#696969"/>
++<draw:color draw:name="Thompson - Medium violet red" draw:color="#C71585"/>
++<draw:color draw:name="Thompson - Blue violet" draw:color="#7221BC"/>
++<draw:color draw:name="Thompson - Orchid" draw:color="#DA6BD4"/>
++<draw:color draw:name="Thompson - Medium orchid" draw:color="#AC4DA6"/>
++<draw:color draw:name="Thompson - Dark orchid" draw:color="#6A2566"/>
++<draw:color draw:name="Thompson - Maroon" draw:color="#670748"/>
++<draw:color draw:name="Thompson - Plum" draw:color="#4C2E57"/>
++<draw:color draw:name="Thompson - Thistle" draw:color="#923E70"/>
++<draw:color draw:name="Thompson - Light blue" draw:color="#ABC5FF"/>
++<draw:color draw:name="Thompson - Medium blue" draw:color="#3D62D0"/>
++<draw:color draw:name="Thompson - Cornflower blue" draw:color="#6495ED"/>
++<draw:color draw:name="Thompson - Navy blue" draw:color="#00008E"/>
++<draw:color draw:name="Thompson - Navy" draw:color="#00008E"/>
++<draw:color draw:name="Thompson - Midnight blue" draw:color="#0C3E63"/>
++<draw:color draw:name="Thompson - Turquoise" draw:color="#48D1CC"/>
++<draw:color draw:name="Thompson - Medium turquoise" draw:color="#3EACB5"/>
++<draw:color draw:name="Thompson - Dark turquoise" draw:color="#1D6F75"/>
++<draw:color draw:name="Thompson - Light steel blue" draw:color="#3498CA"/>
++<draw:color draw:name="Thompson - Steel blue" draw:color="#377999"/>
++<draw:color draw:name="Thompson - Cadet blue" draw:color="#7E7DA0"/>
++<draw:color draw:name="Thompson - Slate blue" draw:color="#7586BE"/>
++<draw:color draw:name="Thompson - Medium slate blue" draw:color="#5F6D9A"/>
++<draw:color draw:name="Thompson - Dark slate blue" draw:color="#333E63"/>
++<draw:color draw:name="Thompson - Dark slate grey" draw:color="#3C404A"/>
++<draw:color draw:name="Thompson - Dark slate gray" draw:color="#3C404A"/>
++<draw:color draw:name="Thompson - Dark green" draw:color="#005300"/>
++<draw:color draw:name="Thompson - Dark olive green" draw:color="#4F4F2F"/>
++<draw:color draw:name="Thompson - Forest green" draw:color="#55C034"/>
++<draw:color draw:name="Thompson - Medium forest green" draw:color="#6B8E23"/>
++<draw:color draw:name="Thompson - Lime green" draw:color="#2E9B1C"/>
++<draw:color draw:name="Thompson - Medium spring green" draw:color="#3C8D23"/>
++<draw:color draw:name="Thompson - Pale green" draw:color="#98FF98"/>
++<draw:color draw:name="Thompson - Sea green" draw:color="#2BA770"/>
++<draw:color draw:name="Thompson - Medium sea green" draw:color="#1B8656"/>
++<draw:color draw:name="Thompson - Aquamarine" draw:color="#29AB97"/>
++<draw:color draw:name="Thompson - Medium aquamarine" draw:color="#158776"/>
++<draw:color draw:name="Thompson - Yellow green" draw:color="#4BD300"/>
++<draw:color draw:name="Thompson - Gold" draw:color="#FEC544"/>
++<draw:color draw:name="Thompson - Medium goldenrod" draw:color="#B886#B"/>
++<draw:color draw:name="Thompson - Goldenrod" draw:color="#DAA520"/>
++<draw:color draw:name="Thompson - Wheat" draw:color="#E5C775"/>
++<draw:color draw:name="Thompson - Khaki" draw:color="#BDA76B"/>
++<draw:color draw:name="Thompson - Tan" draw:color="#B09B7D"/>
++<draw:color draw:name="Thompson - Sandy brown" draw:color="#B28F56"/>
++<draw:color draw:name="Thompson - Sienna" draw:color="#8E6B23"/>
++<draw:color draw:name="Thompson - Brown" draw:color="#674300"/>
++<draw:color draw:name="Thompson - Indian red" draw:color="#652E2E"/>
++<draw:color draw:name="Thompson - Pink" draw:color="#FFAEB9"/>
++<draw:color draw:name="Thompson - Coral" draw:color="#F88975"/>
++<draw:color draw:name="Thompson - Salmon" draw:color="#F86D68"/>
++<draw:color draw:name="Thompson - Orange red" draw:color="#E2412A"/>
++<draw:color draw:name="Thompson - Firebrick" draw:color="#88120D"/>
++<draw:color draw:name="Thompson - Gray 0" draw:color="#000000"/>
++<draw:color draw:name="Thompson - Gray 1" draw:color="#030303"/>
++<draw:color draw:name="Thompson - Gray 2" draw:color="#050505"/>
++<draw:color draw:name="Thompson - Gray 3" draw:color="#080808"/>
++<draw:color draw:name="Thompson - Gray 4" draw:color="#0A0A0A"/>
++<draw:color draw:name="Thompson - Gray 5" draw:color="#0D0D0D"/>
++<draw:color draw:name="Thompson - Gray 6" draw:color="#0F0F0F"/>
++<draw:color draw:name="Thompson - Gray 7" draw:color="#121212"/>
++<draw:color draw:name="Thompson - Gray 8" draw:color="#141414"/>
++<draw:color draw:name="Thompson - Gray 9" draw:color="#171717"/>
++<draw:color draw:name="Thompson - Gray 10" draw:color="#1A1A1A"/>
++<draw:color draw:name="Thompson - Gray 11" draw:color="#1C1C1C"/>
++<draw:color draw:name="Thompson - Gray 12" draw:color="#1F1F1F"/>
++<draw:color draw:name="Thompson - Gray 13" draw:color="#212121"/>
++<draw:color draw:name="Thompson - Gray 14" draw:color="#242424"/>
++<draw:color draw:name="Thompson - Gray 15" draw:color="#262626"/>
++<draw:color draw:name="Thompson - Gray 16" draw:color="#292929"/>
++<draw:color draw:name="Thompson - Gray 17" draw:color="#2B2B2B"/>
++<draw:color draw:name="Thompson - Gray 18" draw:color="#2E2E2E"/>
++<draw:color draw:name="Thompson - Gray 19" draw:color="#303030"/>
++<draw:color draw:name="Thompson - Gray 20" draw:color="#333333"/>
++<draw:color draw:name="Thompson - Gray 21" draw:color="#363636"/>
++<draw:color draw:name="Thompson - Gray 22" draw:color="#383838"/>
++<draw:color draw:name="Thompson - Gray 23" draw:color="#3B3B3B"/>
++<draw:color draw:name="Thompson - Gray 24" draw:color="#3D3D3D"/>
++<draw:color draw:name="Thompson - Gray 25" draw:color="#404040"/>
++<draw:color draw:name="Thompson - Gray 26" draw:color="#424242"/>
++<draw:color draw:name="Thompson - Gray 27" draw:color="#454545"/>
++<draw:color draw:name="Thompson - Gray 28" draw:color="#474747"/>
++<draw:color draw:name="Thompson - Gray 29" draw:color="#4A4A4A"/>
++<draw:color draw:name="Thompson - Gray 30" draw:color="#4D4D4D"/>
++<draw:color draw:name="Thompson - Gray 31" draw:color="#4F4F4F"/>
++<draw:color draw:name="Thompson - Gray 32" draw:color="#525252"/>
++<draw:color draw:name="Thompson - Gray 33" draw:color="#545454"/>
++<draw:color draw:name="Thompson - Gray 34" draw:color="#575757"/>
++<draw:color draw:name="Thompson - Gray 35" draw:color="#595959"/>
++<draw:color draw:name="Thompson - Gray 36" draw:color="#5C5C5C"/>
++<draw:color draw:name="Thompson - Gray 37" draw:color="#5E5E5E"/>
++<draw:color draw:name="Thompson - Gray 38" draw:color="#616161"/>
++<draw:color draw:name="Thompson - Gray 39" draw:color="#636363"/>
++<draw:color draw:name="Thompson - Gray 40" draw:color="#666666"/>
++<draw:color draw:name="Thompson - Gray 41" draw:color="#696969"/>
++<draw:color draw:name="Thompson - Gray 42" draw:color="#6B6B6B"/>
++<draw:color draw:name="Thompson - Gray 43" draw:color="#6E6E6E"/>
++<draw:color draw:name="Thompson - Gray 44" draw:color="#707070"/>
++<draw:color draw:name="Thompson - Gray 45" draw:color="#737373"/>
++<draw:color draw:name="Thompson - Gray 46" draw:color="#757575"/>
++<draw:color draw:name="Thompson - Gray 47" draw:color="#787878"/>
++<draw:color draw:name="Thompson - Gray 48" draw:color="#7A7A7A"/>
++<draw:color draw:name="Thompson - Gray 49" draw:color="#7D7D7D"/>
++<draw:color draw:name="Thompson - Gray 50" draw:color="#7F7F7F"/>
++<draw:color draw:name="Thompson - Gray 51" draw:color="#828282"/>
++<draw:color draw:name="Thompson - Gray 52" draw:color="#858585"/>
++<draw:color draw:name="Thompson - Gray 53" draw:color="#878787"/>
++<draw:color draw:name="Thompson - Gray 54" draw:color="#8A8A8A"/>
++<draw:color draw:name="Thompson - Gray 55" draw:color="#8C8C8C"/>
++<draw:color draw:name="Thompson - Gray 56" draw:color="#8F8F8F"/>
++<draw:color draw:name="Thompson - Gray 57" draw:color="#919191"/>
++<draw:color draw:name="Thompson - Gray 58" draw:color="#949494"/>
++<draw:color draw:name="Thompson - Gray 59" draw:color="#969696"/>
++<draw:color draw:name="Thompson - Gray 60" draw:color="#999999"/>
++<draw:color draw:name="Thompson - Gray 61" draw:color="#9C9C9C"/>
++<draw:color draw:name="Thompson - Gray 62" draw:color="#9E9E9E"/>
++<draw:color draw:name="Thompson - Gray 63" draw:color="#A1A1A1"/>
++<draw:color draw:name="Thompson - Gray 64" draw:color="#A3A3A3"/>
++<draw:color draw:name="Thompson - Gray 65" draw:color="#A6A6A6"/>
++<draw:color draw:name="Thompson - Gray 66" draw:color="#A8A8A8"/>
++<draw:color draw:name="Thompson - Gray 67" draw:color="#ABABAB"/>
++<draw:color draw:name="Thompson - Gray 68" draw:color="#ADADAD"/>
++<draw:color draw:name="Thompson - Gray 69" draw:color="#B0B0B0"/>
++<draw:color draw:name="Thompson - Gray 70" draw:color="#B3B3B3"/>
++<draw:color draw:name="Thompson - Gray 71" draw:color="#B5B5B5"/>
++<draw:color draw:name="Thompson - Gray 72" draw:color="#B8B8B8"/>
++<draw:color draw:name="Thompson - Gray 73" draw:color="#BABABA"/>
++<draw:color draw:name="Thompson - Gray 74" draw:color="#BDBDBD"/>
++<draw:color draw:name="Thompson - Gray 75" draw:color="#BFBFBF"/>
++<draw:color draw:name="Thompson - Gray 76" draw:color="#C2C2C2"/>
++<draw:color draw:name="Thompson - Gray 77" draw:color="#C4C4C4"/>
++<draw:color draw:name="Thompson - Gray 78" draw:color="#C7C7C7"/>
++<draw:color draw:name="Thompson - Gray 79" draw:color="#C9C9C9"/>
++<draw:color draw:name="Thompson - Gray 80" draw:color="#CCCCCC"/>
++<draw:color draw:name="Thompson - Gray 81" draw:color="#CFCFCF"/>
++<draw:color draw:name="Thompson - Gray 82" draw:color="#D1D1D1"/>
++<draw:color draw:name="Thompson - Gray 83" draw:color="#D4D4D4"/>
++<draw:color draw:name="Thompson - Gray 84" draw:color="#D6D6D6"/>
++<draw:color draw:name="Thompson - Gray 85" draw:color="#D9D9D9"/>
++<draw:color draw:name="Thompson - Gray 86" draw:color="#DBDBDB"/>
++<draw:color draw:name="Thompson - Gray 87" draw:color="#DEDEDE"/>
++<draw:color draw:name="Thompson - Gray 88" draw:color="#E0E0E0"/>
++<draw:color draw:name="Thompson - Gray 89" draw:color="#E3E3E3"/>
++<draw:color draw:name="Thompson - Gray 90" draw:color="#E5E5E5"/>
++<draw:color draw:name="Thompson - Gray 91" draw:color="#E8E8E8"/>
++<draw:color draw:name="Thompson - Gray 92" draw:color="#EBEBEB"/>
++<draw:color draw:name="Thompson - Gray 93" draw:color="#EDEDED"/>
++<draw:color draw:name="Thompson - Gray 94" draw:color="#F0F0F0"/>
++<draw:color draw:name="Thompson - Gray 95" draw:color="#F2F2F2"/>
++<draw:color draw:name="Thompson - Gray 96" draw:color="#F5F5F5"/>
++<draw:color draw:name="Thompson - Gray 97" draw:color="#F7F7F7"/>
++<draw:color draw:name="Thompson - Gray 98" draw:color="#FAFAFA"/>
++<draw:color draw:name="Thompson - Gray 99" draw:color="#FCFCFC"/>
++<draw:color draw:name="Thompson - Gray 100" draw:color="#FFFFFF"/>
++
++<!-- CIE Chromaticity Color Palette -->
++<draw:color draw:name="CIE Chromaticity - Reddish orange" draw:color="#D87733"/>
++<draw:color draw:name="CIE Chromaticity - Orange pink" draw:color="#F0CCA2"/>
++<draw:color draw:name="CIE Chromaticity - Orange" draw:color="#E4B81D"/>
++<draw:color draw:name="CIE Chromaticity - Yellowish orange" draw:color="#E7E000"/>
++<draw:color draw:name="CIE Chromaticity - Yellow" draw:color="#EAE75E"/>
++<draw:color draw:name="CIE Chromaticity - Greenish yellow" draw:color="#EBE900"/>
++<draw:color draw:name="CIE Chromaticity - Yellow green" draw:color="#B9D604"/>
++<draw:color draw:name="CIE Chromaticity - Yellowish green" draw:color="#AAD13C"/>
++<draw:color draw:name="CIE Chromaticity - Green" draw:color="#00A347"/>
++<draw:color draw:name="CIE Chromaticity - Bluish green" draw:color="#18A279"/>
++<draw:color draw:name="CIE Chromaticity - Bluegreen" draw:color="#5FA4BE"/>
++<draw:color draw:name="CIE Chromaticity - Greenish blue" draw:color="#6EAFC7"/>
++<draw:color draw:name="CIE Chromaticity - Blue" draw:color="#5C8A00"/>
++
++<!-- Resene Paints Color Palette -->
++<draw:color draw:name="Resene Paints - English holly" draw:color="#022D15"/>
++<draw:color draw:name="Resene Paints - Cardin green" draw:color="#01361C"/>
++<draw:color draw:name="Resene Paints - Bottle green" draw:color="#093624"/>
++<draw:color draw:name="Resene Paints - Zydeco" draw:color="#02402C"/>
++<draw:color draw:name="Resene Paints - Sherwood green" draw:color="#02402C"/>
++<draw:color draw:name="Resene Paints - Tarawera" draw:color="#073A50"/>
++<draw:color draw:name="Resene Paints - Mosaic" draw:color="#123447"/>
++<draw:color draw:name="Resene Paints - Elephant" draw:color="#123447"/>
++<draw:color draw:name="Resene Paints - Firefly" draw:color="#0E2A30"/>
++<draw:color draw:name="Resene Paints - Nordic" draw:color="#012731"/>
++<draw:color draw:name="Resene Paints - Daintree" draw:color="#012731"/>
++<draw:color draw:name="Resene Paints - Deep teal" draw:color="#003532"/>
++<draw:color draw:name="Resene Paints - Timber green" draw:color="#16322C"/>
++<draw:color draw:name="Resene Paints - Greenstone" draw:color="#003E40"/>
++<draw:color draw:name="Resene Paints - Cyprus" draw:color="#003E40"/>
++<draw:color draw:name="Resene Paints - Tiber" draw:color="#063537"/>
++<draw:color draw:name="Resene Paints - Gable green" draw:color="#163531"/>
++<draw:color draw:name="Resene Paints - Everglade" draw:color="#1C402E"/>
++<draw:color draw:name="Resene Paints - Scrub" draw:color="#2E3222"/>
++<draw:color draw:name="Resene Paints - Rangitoto" draw:color="#2E3222"/>
++<draw:color draw:name="Resene Paints - Heavy metal" draw:color="#2B3228"/>
++<draw:color draw:name="Resene Paints - Green kelp" draw:color="#25311C"/>
++<draw:color draw:name="Resene Paints - Log cabin" draw:color="#242A1D"/>
++<draw:color draw:name="Resene Paints - Celtic" draw:color="#163222"/>
++<draw:color draw:name="Resene Paints - Burnham" draw:color="#002E20"/>
++<draw:color draw:name="Resene Paints - Bush" draw:color="#0D2E1C"/>
++<draw:color draw:name="Resene Paints - Palm green" draw:color="#09230F"/>
++<draw:color draw:name="Resene Paints - Holly" draw:color="#011D13"/>
++<draw:color draw:name="Resene Paints - Swamp" draw:color="#001B1C"/>
++<draw:color draw:name="Resene Paints - Aztec" draw:color="#0D1C19"/>
++<draw:color draw:name="Resene Paints - Black forest" draw:color="#0B1304"/>
++<draw:color draw:name="Resene Paints - Midnight moss" draw:color="#041004"/>
++<draw:color draw:name="Resene Paints - Hunter green" draw:color="#161D10"/>
++<draw:color draw:name="Resene Paints - Racing green" draw:color="#0C1911"/>
++<draw:color draw:name="Resene Paints - Black bean" draw:color="#081910"/>
++<draw:color draw:name="Resene Paints - Rangoon green" draw:color="#1C1E13"/>
++<draw:color draw:name="Resene Paints - Eternity" draw:color="#211A0E"/>
++<draw:color draw:name="Resene Paints - El paso" draw:color="#1E170B"/>
++<draw:color draw:name="Resene Paints - Karaka" draw:color="#1E1609"/>
++<draw:color draw:name="Resene Paints - Acadia" draw:color="#1B1404"/>
++<draw:color draw:name="Resene Paints - Green waterloo" draw:color="#101405"/>
++<draw:color draw:name="Resene Paints - Gordons green" draw:color="#0B1107"/>
++<draw:color draw:name="Resene Paints - Marshland" draw:color="#0B0F08"/>
++<draw:color draw:name="Resene Paints - Woodsmoke" draw:color="#0C0D0F"/>
++<draw:color draw:name="Resene Paints - Cod grey" draw:color="#0B0B0B"/>
++<draw:color draw:name="Resene Paints - Gunmetal" draw:color="#020D15"/>
++<draw:color draw:name="Resene Paints - Bunker" draw:color="#0D1117"/>
++<draw:color draw:name="Resene Paints - Cinder" draw:color="#0E0E18"/>
++<draw:color draw:name="Resene Paints - Black pepper" draw:color="#0E0E18"/>
++<draw:color draw:name="Resene Paints - Jaguar" draw:color="#080110"/>
++<draw:color draw:name="Resene Paints - Diesel" draw:color="#130000"/>
++<draw:color draw:name="Resene Paints - Maire" draw:color="#130A06"/>
++<draw:color draw:name="Resene Paints - Banjul" draw:color="#130A06"/>
++<draw:color draw:name="Resene Paints - Asphalt" draw:color="#130A06"/>
++<draw:color draw:name="Resene Paints - Creole" draw:color="#1E0F04"/>
++<draw:color draw:name="Resene Paints - Crowshead" draw:color="#1C1208"/>
++<draw:color draw:name="Resene Paints - Bokara grey" draw:color="#1C1208"/>
++<draw:color draw:name="Resene Paints - Nero" draw:color="#140600"/>
++<draw:color draw:name="Resene Paints - Wood bark" draw:color="#261105"/>
++<draw:color draw:name="Resene Paints - Blackwood" draw:color="#261105"/>
++<draw:color draw:name="Resene Paints - Gondola" draw:color="#261414"/>
++<draw:color draw:name="Resene Paints - Night rider" draw:color="#1F120F"/>
++<draw:color draw:name="Resene Paints - Graphite" draw:color="#251607"/>
++<draw:color draw:name="Resene Paints - Cannon black" draw:color="#251706"/>
++<draw:color draw:name="Resene Paints - Black magic" draw:color="#251706"/>
++<draw:color draw:name="Resene Paints - Oil" draw:color="#281E15"/>
++<draw:color draw:name="Resene Paints - Jungle green" draw:color="#281E15"/>
++<draw:color draw:name="Resene Paints - Mash" draw:color="#40291D"/>
++<draw:color draw:name="Resene Paints - Cork" draw:color="#40291D"/>
++<draw:color draw:name="Resene Paints - Treehouse" draw:color="#3B2820"/>
++<draw:color draw:name="Resene Paints - Cocoa brown" draw:color="#301F1E"/>
++<draw:color draw:name="Resene Paints - Zeus" draw:color="#292319"/>
++<draw:color draw:name="Resene Paints - Touch wood" draw:color="#373021"/>
++<draw:color draw:name="Resene Paints - Birch" draw:color="#373021"/>
++<draw:color draw:name="Resene Paints - Tobago" draw:color="#3E2B23"/>
++<draw:color draw:name="Resene Paints - English walnut" draw:color="#3E2B23"/>
++<draw:color draw:name="Resene Paints - Ship grey" draw:color="#3E3A44"/>
++<draw:color draw:name="Resene Paints - Masala" draw:color="#403B38"/>
++<draw:color draw:name="Resene Paints - Mine shaft" draw:color="#323232"/>
++<draw:color draw:name="Resene Paints - Tuatara" draw:color="#363534"/>
++<draw:color draw:name="Resene Paints - Dune" draw:color="#383533"/>
++<draw:color draw:name="Resene Paints - Shark" draw:color="#25272C"/>
++<draw:color draw:name="Resene Paints - Baltic sea" draw:color="#2A2630"/>
++<draw:color draw:name="Resene Paints - Thunder" draw:color="#33292F"/>
++<draw:color draw:name="Resene Paints - Woody bay" draw:color="#292130"/>
++<draw:color draw:name="Resene Paints - Bastille" draw:color="#292130"/>
++<draw:color draw:name="Resene Paints - Steel grey" draw:color="#262335"/>
++<draw:color draw:name="Resene Paints - Blackcurrant" draw:color="#32293A"/>
++<draw:color draw:name="Resene Paints - Ebony clay" draw:color="#26283B"/>
++<draw:color draw:name="Resene Paints - Charade" draw:color="#292937"/>
++<draw:color draw:name="Resene Paints - Big stone" draw:color="#162A40"/>
++<draw:color draw:name="Resene Paints - Tuna" draw:color="#353542"/>
++<draw:color draw:name="Resene Paints - Cloud burst" draw:color="#202E54"/>
++<draw:color draw:name="Resene Paints - Cello" draw:color="#1E385B"/>
++<draw:color draw:name="Resene Paints - Astronaut blue" draw:color="#013E62"/>
++<draw:color draw:name="Resene Paints - Nile blue" draw:color="#193751"/>
++<draw:color draw:name="Resene Paints - Prussian blue" draw:color="#003153"/>
++<draw:color draw:name="Resene Paints - Blue whale" draw:color="#042E4C"/>
++<draw:color draw:name="Resene Paints - Blue zodiac" draw:color="#13264D"/>
++<draw:color draw:name="Resene Paints - Midnight" draw:color="#011635"/>
++<draw:color draw:name="Resene Paints - Mirage" draw:color="#161928"/>
++<draw:color draw:name="Resene Paints - Blue charcoal" draw:color="#010D1A"/>
++<draw:color draw:name="Resene Paints - Vulcan" draw:color="#10121D"/>
++<draw:color draw:name="Resene Paints - Blue bark" draw:color="#041322"/>
++<draw:color draw:name="Resene Paints - Black pearl" draw:color="#041322"/>
++<draw:color draw:name="Resene Paints - Ebony" draw:color="#0C0B1D"/>
++<draw:color draw:name="Resene Paints - Black russian" draw:color="#0A001C"/>
++<draw:color draw:name="Resene Paints - Green vogue" draw:color="#032B52"/>
++<draw:color draw:name="Resene Paints - Regal blue" draw:color="#013F6A"/>
++<draw:color draw:name="Resene Paints - Venice blue" draw:color="#055989"/>
++<draw:color draw:name="Resene Paints - Orient" draw:color="#015E85"/>
++<draw:color draw:name="Resene Paints - Bahama blue" draw:color="#026395"/>
++<draw:color draw:name="Resene Paints - Allports" draw:color="#0076A3"/>
++<draw:color draw:name="Resene Paints - San marino" draw:color="#456CAC"/>
++<draw:color draw:name="Resene Paints - Matisse" draw:color="#1B659D"/>
++<draw:color draw:name="Resene Paints - Azure" draw:color="#315BA1"/>
++<draw:color draw:name="Resene Paints - Waikawa grey" draw:color="#5A6E9C"/>
++<draw:color draw:name="Resene Paints - Storm grey" draw:color="#717486"/>
++<draw:color draw:name="Resene Paints - Pale sky" draw:color="#6E7783"/>
++<draw:color draw:name="Resene Paints - Kashmir blue" draw:color="#507096"/>
++<draw:color draw:name="Resene Paints - Shuttle grey" draw:color="#5F6672"/>
++<draw:color draw:name="Resene Paints - Comet" draw:color="#5C5D75"/>
++<draw:color draw:name="Resene Paints - Mid grey" draw:color="#5F5F6E"/>
++<draw:color draw:name="Resene Paints - Salt box" draw:color="#685E6E"/>
++<draw:color draw:name="Resene Paints - Dolphin" draw:color="#646077"/>
++<draw:color draw:name="Resene Paints - Smoky" draw:color="#605B73"/>
++<draw:color draw:name="Resene Paints - San Juan" draw:color="#304B6A"/>
++<draw:color draw:name="Resene Paints - Rhino" draw:color="#2E3F62"/>
++<draw:color draw:name="Resene Paints - Gun powder" draw:color="#414257"/>
++<draw:color draw:name="Resene Paints - Bright grey" draw:color="#3C4151"/>
++<draw:color draw:name="Resene Paints - Pickled bluewood" draw:color="#314459"/>
++<draw:color draw:name="Resene Paints - Atomic" draw:color="#314459"/>
++<draw:color draw:name="Resene Paints - Limed spruce" draw:color="#394851"/>
++<draw:color draw:name="Resene Paints - Dark slate" draw:color="#394851"/>
++<draw:color draw:name="Resene Paints - Oxford blue" draw:color="#384555"/>
++<draw:color draw:name="Resene Paints - Mako" draw:color="#444954"/>
++<draw:color draw:name="Resene Paints - Trout" draw:color="#4A4E5A"/>
++<draw:color draw:name="Resene Paints - River bed" draw:color="#434C59"/>
++<draw:color draw:name="Resene Paints - Fiord" draw:color="#405169"/>
++<draw:color draw:name="Resene Paints - Scarpa flow" draw:color="#585562"/>
++<draw:color draw:name="Resene Paints - Don Juan" draw:color="#5D4C51"/>
++<draw:color draw:name="Resene Paints - Abbey" draw:color="#4C4F56"/>
++<draw:color draw:name="Resene Paints - Cape cod" draw:color="#3C4443"/>
++<draw:color draw:name="Resene Paints - Mortar" draw:color="#504351"/>
++<draw:color draw:name="Resene Paints - Gravel" draw:color="#4A444B"/>
++<draw:color draw:name="Resene Paints - Emperor" draw:color="#514649"/>
++<draw:color draw:name="Resene Paints - Tundora" draw:color="#4A4244"/>
++<draw:color draw:name="Resene Paints - Matterhorn" draw:color="#4E3B41"/>
++<draw:color draw:name="Resene Paints - Rock" draw:color="#4D3833"/>
++<draw:color draw:name="Resene Paints - Judge grey" draw:color="#544333"/>
++<draw:color draw:name="Resene Paints - Mondo" draw:color="#4A3C30"/>
++<draw:color draw:name="Resene Paints - Armadillo" draw:color="#433E37"/>
++<draw:color draw:name="Resene Paints - Smokey ash" draw:color="#413C37"/>
++<draw:color draw:name="Resene Paints - Merlin" draw:color="#413C37"/>
++<draw:color draw:name="Resene Paints - Fuscous grey" draw:color="#54534D"/>
++<draw:color draw:name="Resene Paints - Kabul" draw:color="#5E483E"/>
++<draw:color draw:name="Resene Paints - Dorado" draw:color="#6B5755"/>
++<draw:color draw:name="Resene Paints - Pine cone" draw:color="#6D5E54"/>
++<draw:color draw:name="Resene Paints - Sandstone" draw:color="#796D62"/>
++<draw:color draw:name="Resene Paints - Sand dune" draw:color="#826F65"/>
++<draw:color draw:name="Resene Paints - Spicy pink" draw:color="#816E71"/>
++<draw:color draw:name="Resene Paints - Empress" draw:color="#817377"/>
++<draw:color draw:name="Resene Paints - Fedora" draw:color="#796A78"/>
++<draw:color draw:name="Resene Paints - Zambezi" draw:color="#685558"/>
++<draw:color draw:name="Resene Paints - Scorpion" draw:color="#695F62"/>
++<draw:color draw:name="Resene Paints - Chicago" draw:color="#5D5C58"/>
++<draw:color draw:name="Resene Paints - Ironside grey" draw:color="#676662"/>
++<draw:color draw:name="Resene Paints - Storm dust" draw:color="#646463"/>
++<draw:color draw:name="Resene Paints - Nevada" draw:color="#646E75"/>
++<draw:color draw:name="Resene Paints - Dove grey" draw:color="#6D6C6C"/>
++<draw:color draw:name="Resene Paints - Flint" draw:color="#6F6A61"/>
++<draw:color draw:name="Resene Paints - Pablo" draw:color="#776F61"/>
++<draw:color draw:name="Resene Paints - Kokoda" draw:color="#6E6D57"/>
++<draw:color draw:name="Resene Paints - Coffee" draw:color="#706555"/>
++<draw:color draw:name="Resene Paints - Soya bean" draw:color="#6A6051"/>
++<draw:color draw:name="Resene Paints - Siam" draw:color="#646A54"/>
++<draw:color draw:name="Resene Paints - Willow grove" draw:color="#65745D"/>
++<draw:color draw:name="Resene Paints - Corduroy" draw:color="#606E68"/>
++<draw:color draw:name="Resene Paints - Oracle" draw:color="#377475"/>
++<draw:color draw:name="Resene Paints - Jade" draw:color="#427977"/>
++<draw:color draw:name="Resene Paints - CuttySark" draw:color="#507672"/>
++<draw:color draw:name="Resene Paints - Cactus" draw:color="#587156"/>
++<draw:color draw:name="Resene Paints - Finlandia" draw:color="#556D56"/>
++<draw:color draw:name="Resene Paints - Nandor" draw:color="#4B5D52"/>
++<draw:color draw:name="Resene Paints - Pickled aspen" draw:color="#3F4C3A"/>
++<draw:color draw:name="Resene Paints - Cabbage pont" draw:color="#3F4C3A"/>
++<draw:color draw:name="Resene Paints - Lunar green" draw:color="#3C493A"/>
++<draw:color draw:name="Resene Paints - Kelp" draw:color="#454936"/>
++<draw:color draw:name="Resene Paints - GreyG reen" draw:color="#454936"/>
++<draw:color draw:name="Resene Paints - Te Papa green" draw:color="#1E433C"/>
++<draw:color draw:name="Resene Paints - Plantation" draw:color="#27504B"/>
++<draw:color draw:name="Resene Paints - Spectra" draw:color="#2F5A57"/>
++<draw:color draw:name="Resene Paints - Mineral" draw:color="#3F5D53"/>
++<draw:color draw:name="Resene Paints - Mineral green" draw:color="#3F5D53"/>
++<draw:color draw:name="Resene Paints - Stromboli" draw:color="#325D52"/>
++<draw:color draw:name="Resene Paints - Blue dianne" draw:color="#204852"/>
++<draw:color draw:name="Resene Paints - Sherpa blue" draw:color="#004950"/>
++<draw:color draw:name="Resene Paints - Teal blue" draw:color="#044259"/>
++<draw:color draw:name="Resene Paints - Chathams blue" draw:color="#175579"/>
++<draw:color draw:name="Resene Paints - Blumine" draw:color="#18587A"/>
++<draw:color draw:name="Resene Paints - William" draw:color="#3A686C"/>
++<draw:color draw:name="Resene Paints - Casal" draw:color="#2F6168"/>
++<draw:color draw:name="Resene Paints - Blue bayoux" draw:color="#496679"/>
++<draw:color draw:name="Resene Paints - Calypso" draw:color="#31728D"/>
++<draw:color draw:name="Resene Paints - Astral" draw:color="#327DA0"/>
++<draw:color draw:name="Resene Paints - Bismark" draw:color="#497183"/>
++<draw:color draw:name="Resene Paints - Ming" draw:color="#36747D"/>
++<draw:color draw:name="Resene Paints - Jelly bean" draw:color="#297B9A"/>
++<draw:color draw:name="Resene Paints - Blue lagoon" draw:color="#017987"/>
++<draw:color draw:name="Resene Paints - Paradiso" draw:color="#317D82"/>
++<draw:color draw:name="Resene Paints - Elm" draw:color="#1C7C7D"/>
++<draw:color draw:name="Resene Paints - Surfie green" draw:color="#0C7A79"/>
++<draw:color draw:name="Resene Paints - Atoll" draw:color="#0A6F75"/>
++<draw:color draw:name="Resene Paints - Mosque" draw:color="#036A6E"/>
++<draw:color draw:name="Resene Paints - Blue stone" draw:color="#016162"/>
++<draw:color draw:name="Resene Paints - Sea green" draw:color="#095859"/>
++<draw:color draw:name="Resene Paints - Eden" draw:color="#105852"/>
++<draw:color draw:name="Resene Paints - Evening sea" draw:color="#024E46"/>
++<draw:color draw:name="Resene Paints - Aquamarine" draw:color="#014B43"/>
++<draw:color draw:name="Resene Paints - Green pea" draw:color="#1D6142"/>
++<draw:color draw:name="Resene Paints - Como" draw:color="#517C66"/>
++<draw:color draw:name="Resene Paints - Genoa" draw:color="#15736B"/>
++<draw:color draw:name="Resene Paints - Watercourse" draw:color="#056F57"/>
++<draw:color draw:name="Resene Paints - Deep sea" draw:color="#01826B"/>
++<draw:color draw:name="Resene Paints - Observatory" draw:color="#02866F"/>
++<draw:color draw:name="Resene Paints - Elf green" draw:color="#088370"/>
++<draw:color draw:name="Resene Paints - Curious blue" draw:color="#2596D1"/>
++<draw:color draw:name="Resene Paints - Lochmara" draw:color="#007EC7"/>
++<draw:color draw:name="Resene Paints - Danube" draw:color="#6093D1"/>
++<draw:color draw:name="Resene Paints - Ship cove" draw:color="#788BBA"/>
++<draw:color draw:name="Resene Paints - Havelock blue" draw:color="#5590D9"/>
++<draw:color draw:name="Resene Paints - Jordy blue" draw:color="#8AB9F1"/>
++<draw:color draw:name="Resene Paints - Shakespeare" draw:color="#4EABD1"/>
++<draw:color draw:name="Resene Paints - Picton blue" draw:color="#45B1E8"/>
++<draw:color draw:name="Resene Paints - Malibu" draw:color="#7DC8F7"/>
++<draw:color draw:name="Resene Paints - Perano" draw:color="#A9BEF2"/>
++<draw:color draw:name="Resene Paints - Morning glory" draw:color="#9EDEE0"/>
++<draw:color draw:name="Resene Paints - Spray" draw:color="#79DEEC"/>
++<draw:color draw:name="Resene Paints - Viking" draw:color="#64CCDB"/>
++<draw:color draw:name="Resene Paints - Downy" draw:color="#6FD0C5"/>
++<draw:color draw:name="Resene Paints - Bermuda" draw:color="#7DD8C6"/>
++<draw:color draw:name="Resene Paints - Monte Carlo" draw:color="#83D0C6"/>
++<draw:color draw:name="Resene Paints - Water leaf" draw:color="#A1E9DE"/>
++<draw:color draw:name="Resene Paints - Riptide" draw:color="#8BE6D8"/>
++<draw:color draw:name="Resene Paints - Padua" draw:color="#ADE6C4"/>
++<draw:color draw:name="Resene Paints - Fringy flower" draw:color="#B1E2C1"/>
++<draw:color draw:name="Resene Paints - Vista blue" draw:color="#8FD6B4"/>
++<draw:color draw:name="Resene Paints - Cruise" draw:color="#B5ECDF"/>
++<draw:color draw:name="Resene Paints - Ice cold" draw:color="#B1F4E7"/>
++<draw:color draw:name="Resene Paints - Aero blue" draw:color="#C9FFE5"/>
++<draw:color draw:name="Resene Paints - Rice flower" draw:color="#EEFFE2"/>
++<draw:color draw:name="Resene Paints - Hint of green" draw:color="#E6FFE9"/>
++<draw:color draw:name="Resene Paints - Feta" draw:color="#F0FCEA"/>
++<draw:color draw:name="Resene Paints - White nectar" draw:color="#FCFFE7"/>
++<draw:color draw:name="Resene Paints - Promenade" draw:color="#FCFFE7"/>
++<draw:color draw:name="Resene Paints - China ivory" draw:color="#FCFFE7"/>
++<draw:color draw:name="Resene Paints - Hint of yellow" draw:color="#FAFDE4"/>
++<draw:color draw:name="Resene Paints - Frost" draw:color="#EDF5DD"/>
++<draw:color draw:name="Resene Paints - Loafer" draw:color="#EEF4DE"/>
++<draw:color draw:name="Resene Paints - Ottoman" draw:color="#E9F8ED"/>
++<draw:color draw:name="Resene Paints - Peppermint" draw:color="#E3F5E1"/>
++<draw:color draw:name="Resene Paints - Frostee" draw:color="#E4F6E7"/>
++<draw:color draw:name="Resene Paints - Tara" draw:color="#E1F6E8"/>
++<draw:color draw:name="Resene Paints - Zanah" draw:color="#DAECD6"/>
++<draw:color draw:name="Resene Paints - Willow brook" draw:color="#DFECDA"/>
++<draw:color draw:name="Resene Paints - Kidnapper" draw:color="#E1EAD4"/>
++<draw:color draw:name="Resene Paints - Edgewater" draw:color="#C8E3D7"/>
++<draw:color draw:name="Resene Paints - Surf crest" draw:color="#CFE5D2"/>
++<draw:color draw:name="Resene Paints - Pea soup" draw:color="#CFE5D2"/>
++<draw:color draw:name="Resene Paints - Blue romance" draw:color="#D2F6DE"/>
++<draw:color draw:name="Resene Paints - Granny apple" draw:color="#D5F6E3"/>
++<draw:color draw:name="Resene Paints - Mint tulip" draw:color="#C4F4EB"/>
++<draw:color draw:name="Resene Paints - Jagged ice" draw:color="#C2E8E5"/>
++<draw:color draw:name="Resene Paints - Skeptic" draw:color="#CAE6DA"/>
++<draw:color draw:name="Resene Paints - Swans down" draw:color="#DCF0EA"/>
++<draw:color draw:name="Resene Paints - Oyster bay" draw:color="#DAFAFF"/>
++<draw:color draw:name="Resene Paints - Foam" draw:color="#D8FCFA"/>
++<draw:color draw:name="Resene Paints - WhiteIce" draw:color="#DDF9F1"/>
++<draw:color draw:name="Resene Paints - Iceberg" draw:color="#DAF4F0"/>
++<draw:color draw:name="Resene Paints - Polar" draw:color="#E5F9F6"/>
++<draw:color draw:name="Resene Paints - Apple green" draw:color="#E2F3EC"/>
++<draw:color draw:name="Resene Paints - Harp" draw:color="#E6F2EA"/>
++<draw:color draw:name="Resene Paints - Panache" draw:color="#EAF6EE"/>
++<draw:color draw:name="Resene Paints - Narvik" draw:color="#EDF9F1"/>
++<draw:color draw:name="Resene Paints - Off green" draw:color="#E6F8F3"/>
++<draw:color draw:name="Resene Paints - Aqua spring" draw:color="#EAF9F5"/>
++<draw:color draw:name="Resene Paints - Bubbles" draw:color="#E7FEFF"/>
++<draw:color draw:name="Resene Paints - Tranquil" draw:color="#E6FFFF"/>
++<draw:color draw:name="Resene Paints - Dew" draw:color="#EAFFFE"/>
++<draw:color draw:name="Resene Paints - Clear day" draw:color="#E9FFFD"/>
++<draw:color draw:name="Resene Paints - Scandal" draw:color="#CFFAF4"/>
++<draw:color draw:name="Resene Paints - Humming bird" draw:color="#CFF9F3"/>
++<draw:color draw:name="Resene Paints - Frosted mint" draw:color="#DBFFF8"/>
++<draw:color draw:name="Resene Paints - Charlotte" draw:color="#BAEEF9"/>
++<draw:color draw:name="Resene Paints - French pass" draw:color="#BDEDFD"/>
++<draw:color draw:name="Resene Paints - Onahau" draw:color="#CDF4FF"/>
++<draw:color draw:name="Resene Paints - Pattens blue" draw:color="#DEF5FF"/>
++<draw:color draw:name="Resene Paints - Mabel" draw:color="#D9F7FF"/>
++<draw:color draw:name="Resene Paints - Link water" draw:color="#D9E4F5"/>
++<draw:color draw:name="Resene Paints - Hawkes blue" draw:color="#D4E2FC"/>
++<draw:color draw:name="Resene Paints - Blue chalk" draw:color="#F1E9FF"/>
++<draw:color draw:name="Resene Paints - Titan white" draw:color="#F0EEFF"/>
++<draw:color draw:name="Resene Paints - White pointer" draw:color="#FEF8FF"/>
++<draw:color draw:name="Resene Paints - Magnolia" draw:color="#F8F4FF"/>
++<draw:color draw:name="Resene Paints - Selago" draw:color="#F0EEFD"/>
++<draw:color draw:name="Resene Paints - Tutu" draw:color="#FFF1F9"/>
++<draw:color draw:name="Resene Paints - Remy" draw:color="#FEEBF3"/>
++<draw:color draw:name="Resene Paints - Soft peach" draw:color="#F5EDEF"/>
++<draw:color draw:name="Resene Paints - Chardon" draw:color="#FFF3F1"/>
++<draw:color draw:name="Resene Paints - Chablis" draw:color="#FFF4F3"/>
++<draw:color draw:name="Resene Paints - Sauvignon" draw:color="#FFF5F3"/>
++<draw:color draw:name="Resene Paints - Wisp pink" draw:color="#FEF4F8"/>
++<draw:color draw:name="Resene Paints - Rose white" draw:color="#FFF6F5"/>
++<draw:color draw:name="Resene Paints - Fair pink" draw:color="#FFEFEC"/>
++<draw:color draw:name="Resene Paints - Forget me not" draw:color="#FFF1EE"/>
++<draw:color draw:name="Resene Paints - Bridesmaid" draw:color="#FEF0EC"/>
++<draw:color draw:name="Resene Paints - Provincial pink" draw:color="#FEF5F1"/>
++<draw:color draw:name="Resene Paints - Black white" draw:color="#FFFEF6"/>
++<draw:color draw:name="Resene Paints - QuarterPearlLusta" draw:color="#FFFDF4"/>
++<draw:color draw:name="Resene Paints - Orchid white" draw:color="#FFFDF3"/>
++<draw:color draw:name="Resene Paints - Bianca" draw:color="#FCFBF3"/>
++<draw:color draw:name="Resene Paints - BridalH eath" draw:color="#FFFAF4"/>
++<draw:color draw:name="Resene Paints - White linen" draw:color="#F8F0E8"/>
++<draw:color draw:name="Resene Paints - MilkW hite" draw:color="#F6F0E6"/>
++<draw:color draw:name="Resene Paints - Merino" draw:color="#F6F0E6"/>
++<draw:color draw:name="Resene Paints - Serenade" draw:color="#FFF4E8"/>
++<draw:color draw:name="Resene Paints - Quarter spanish white" draw:color="#F7F2E1"/>
++<draw:color draw:name="Resene Paints - Peach" draw:color="#FFF0DB"/>
++<draw:color draw:name="Resene Paints - Egg sour" draw:color="#FFF4DD"/>
++<draw:color draw:name="Resene Paints - Varden" draw:color="#FFF6DF"/>
++<draw:color draw:name="Resene Paints - Sazerac" draw:color="#FFF4E0"/>
++<draw:color draw:name="Resene Paints - Early dawn" draw:color="#FFF9E6"/>
++<draw:color draw:name="Resene Paints - Solitaire" draw:color="#FEF8E2"/>
++<draw:color draw:name="Resene Paints - Gin fizz" draw:color="#FFF9E2"/>
++<draw:color draw:name="Resene Paints - Off yellow" draw:color="#FEF9E3"/>
++<draw:color draw:name="Resene Paints - Travertine" draw:color="#FFFDE8"/>
++<draw:color draw:name="Resene Paints - Chilean heath" draw:color="#FFFDE6"/>
++<draw:color draw:name="Resene Paints - Apricot white" draw:color="#FFFEEC"/>
++<draw:color draw:name="Resene Paints - Half pearl lusta" draw:color="#FFFCEA"/>
++<draw:color draw:name="Resene Paints - Buttery white" draw:color="#FFFCEA"/>
++<draw:color draw:name="Resene Paints - Rum swizzle" draw:color="#F9F8E4"/>
++<draw:color draw:name="Resene Paints - Joanna" draw:color="#F5F3E5"/>
++<draw:color draw:name="Resene Paints - Ecru white" draw:color="#F5F3E5"/>
++<draw:color draw:name="Resene Paints - Orange white" draw:color="#FEFCED"/>
++<draw:color draw:name="Resene Paints - Rice cake" draw:color="#FFFEF0"/>
++<draw:color draw:name="Resene Paints - Island spice" draw:color="#FFFCEE"/>
++<draw:color draw:name="Resene Paints - Sugar cane" draw:color="#F9FFF6"/>
++<draw:color draw:name="Resene Paints - Wan white" draw:color="#FCFFF9"/>
++<draw:color draw:name="Resene Paints - Sea fog" draw:color="#FCFFF9"/>
++<draw:color draw:name="Resene Paints - Hint of grey" draw:color="#FCFFF9"/>
++<draw:color draw:name="Resene Paints - Ceramic" draw:color="#FCFFF9"/>
++<draw:color draw:name="Resene Paints - Snow drift" draw:color="#F7FAF7"/>
++<draw:color draw:name="Resene Paints - Black squeeze" draw:color="#F2FAFA"/>
++<draw:color draw:name="Resene Paints - Twilight blue" draw:color="#EEFDFF"/>
++<draw:color draw:name="Resene Paints - Zircon" draw:color="#F4F8FF"/>
++<draw:color draw:name="Resene Paints - White lilac" draw:color="#F8F7FC"/>
++<draw:color draw:name="Resene Paints - Soapstone" draw:color="#FFFBF9"/>
++<draw:color draw:name="Resene Paints - Romance" draw:color="#FFFEFD"/>
++<draw:color draw:name="Resene Paints - Rock salt" draw:color="#FFFFFF"/>
++<draw:color draw:name="Resene Paints - Alabaster" draw:color="#FFFFFF"/>
++<draw:color draw:name="Resene Paints - Hint of red" draw:color="#F9F9F9"/>
++<draw:color draw:name="Resene Paints - Desert storm" draw:color="#F8F8F7"/>
++<draw:color draw:name="Resene Paints - Vista white" draw:color="#FCF8F7"/>
++<draw:color draw:name="Resene Paints - Fantasy" draw:color="#FAF3F0"/>
++<draw:color draw:name="Resene Paints - Spring wood" draw:color="#F8F6F1"/>
++<draw:color draw:name="Resene Paints - Black haze" draw:color="#F6F7F7"/>
++<draw:color draw:name="Resene Paints - Wild sand" draw:color="#F4F4F4"/>
++<draw:color draw:name="Resene Paints - Porcelain" draw:color="#EFF2F3"/>
++<draw:color draw:name="Resene Paints - Seashell" draw:color="#F1F1F1"/>
++<draw:color draw:name="Resene Paints - Concrete" draw:color="#F2F2F2"/>
++<draw:color draw:name="Resene Paints - Gallery" draw:color="#EFEFEF"/>
++<draw:color draw:name="Resene Paints - Athens grey" draw:color="#EEF0F3"/>
++<draw:color draw:name="Resene Paints - Pampas" draw:color="#F4F2EE"/>
++<draw:color draw:name="Resene Paints - Whisper" draw:color="#F7F5FA"/>
++<draw:color draw:name="Resene Paints - Zumthor" draw:color="#EDF6FF"/>
++<draw:color draw:name="Resene Paints - Solitude" draw:color="#EAF6FF"/>
++<draw:color draw:name="Resene Paints - Lily white" draw:color="#E7F8FF"/>
++<draw:color draw:name="Resene Paints - Aqua squeeze" draw:color="#E8F5F2"/>
++<draw:color draw:name="Resene Paints - Cats kill white" draw:color="#EEF6F7"/>
++<draw:color draw:name="Resene Paints - Aqua haze" draw:color="#EDF5F5"/>
++<draw:color draw:name="Resene Paints - Saltpan" draw:color="#F1F7F2"/>
++<draw:color draw:name="Resene Paints - Gin" draw:color="#E8F2EB"/>
++<draw:color draw:name="Resene Paints - Grey nurse" draw:color="#E7ECE6"/>
++<draw:color draw:name="Resene Paints - Mystic" draw:color="#E2EBED"/>
++<draw:color draw:name="Resene Paints - Bon jour" draw:color="#E5E0E1"/>
++<draw:color draw:name="Resene Paints - Ebb" draw:color="#E9E3E3"/>
++<draw:color draw:name="Resene Paints - Mercury" draw:color="#E5E5E5"/>
++<draw:color draw:name="Resene Paints - Geyser" draw:color="#D4DFE2"/>
++<draw:color draw:name="Resene Paints - Periglacial blue" draw:color="#E1E6D6"/>
++<draw:color draw:name="Resene Paints - Green white" draw:color="#E8EBE0"/>
++<draw:color draw:name="Resene Paints - White rock" draw:color="#EAE8D4"/>
++<draw:color draw:name="Resene Paints - Linen" draw:color="#E6E4D4"/>
++<draw:color draw:name="Resene Paints - Parchment" draw:color="#F1E9D2"/>
++<draw:color draw:name="Resene Paints - Blanc" draw:color="#F5E9D3"/>
++<draw:color draw:name="Resene Paints - Albescent white" draw:color="#F5E9D3"/>
++<draw:color draw:name="Resene Paints - Cararra" draw:color="#EEEEE8"/>
++<draw:color draw:name="Resene Paints - Pearl bush" draw:color="#E8E0D5"/>
++<draw:color draw:name="Resene Paints - Bizarre" draw:color="#EEDEDA"/>
++<draw:color draw:name="Resene Paints - Dawn pink" draw:color="#F3E9E5"/>
++<draw:color draw:name="Resene Paints - Pot pourri" draw:color="#F5E7E2"/>
++<draw:color draw:name="Resene Paints - Tuft bush" draw:color="#FFDDCD"/>
++<draw:color draw:name="Resene Paints - Cinderella" draw:color="#FDE1DC"/>
++<draw:color draw:name="Resene Paints - Amour" draw:color="#F9EAF3"/>
++<draw:color draw:name="Resene Paints - Prim" draw:color="#F0E2EC"/>
++<draw:color draw:name="Resene Paints - Lola" draw:color="#DFCFDB"/>
++<draw:color draw:name="Resene Paints - Oyster pink" draw:color="#E9CECD"/>
++<draw:color draw:name="Resene Paints - Dust storm" draw:color="#E5CCC9"/>
++<draw:color draw:name="Resene Paints - Bone" draw:color="#E4D1C0"/>
++<draw:color draw:name="Resene Paints - Wafer" draw:color="#DECBC6"/>
++<draw:color draw:name="Resene Paints - Westar" draw:color="#DCD9D2"/>
++<draw:color draw:name="Resene Paints - Swirl" draw:color="#D3CDC5"/>
++<draw:color draw:name="Resene Paints - Sisal" draw:color="#D3CBBA"/>
++<draw:color draw:name="Resene Paints - Moon mist" draw:color="#DCDDCC"/>
++<draw:color draw:name="Resene Paints - Celeste" draw:color="#D1D2CA"/>
++<draw:color draw:name="Resene Paints - Alto" draw:color="#DBDBDB"/>
++<draw:color draw:name="Resene Paints - Iron" draw:color="#D4D7D9"/>
++<draw:color draw:name="Resene Paints - Quill grey" draw:color="#D6D6D1"/>
++<draw:color draw:name="Resene Paints - Swiss coffee" draw:color="#DDD6D5"/>
++<draw:color draw:name="Resene Paints - Mischka" draw:color="#D1D2DD"/>
++<draw:color draw:name="Resene Paints - Tiara" draw:color="#C3D1D1"/>
++<draw:color draw:name="Resene Paints - Pumice" draw:color="#C2CAC4"/>
++<draw:color draw:name="Resene Paints - Submarine" draw:color="#BAC7C9"/>
++<draw:color draw:name="Resene Paints - Loblolly" draw:color="#BDC9CE"/>
++<draw:color draw:name="Resene Paints - Ghost" draw:color="#C7C9D5"/>
++<draw:color draw:name="Resene Paints - Pale slate" draw:color="#C3BFC1"/>
++<draw:color draw:name="Resene Paints - Silver sand" draw:color="#BFC1C2"/>
++<draw:color draw:name="Resene Paints - French grey" draw:color="#BDBDC6"/>
++<draw:color draw:name="Resene Paints - Mist grey" draw:color="#C4C4BC"/>
++<draw:color draw:name="Resene Paints - Kangaroo" draw:color="#C6C8BD"/>
++<draw:color draw:name="Resene Paints - Ash" draw:color="#C6C3B5"/>
++<draw:color draw:name="Resene Paints - Foggy grey" draw:color="#CBCAB6"/>
++<draw:color draw:name="Resene Paints - Soft amber" draw:color="#D1C6B4"/>
++<draw:color draw:name="Resene Paints - Grey nickel" draw:color="#C3C3BD"/>
++<draw:color draw:name="Resene Paints - Cloud" draw:color="#C7C4BF"/>
++<draw:color draw:name="Resene Paints - Tea" draw:color="#C1BAB0"/>
++<draw:color draw:name="Resene Paints - Cotton seed" draw:color="#C2BDB6"/>
++<draw:color draw:name="Resene Paints - Cold turkey" draw:color="#CEBABA"/>
++<draw:color draw:name="Resene Paints - Blue haze" draw:color="#BFBED8"/>
++<draw:color draw:name="Resene Paints - Grey suit" draw:color="#C1BECD"/>
++<draw:color draw:name="Resene Paints - Snuff" draw:color="#E2D8ED"/>
++<draw:color draw:name="Resene Paints - Spindle" draw:color="#B6D1EA"/>
++<draw:color draw:name="Resene Paints - Tropical blue" draw:color="#C3DDF9"/>
++<draw:color draw:name="Resene Paints - Pigeon post" draw:color="#AFBDD9"/>
++<draw:color draw:name="Resene Paints - Echo blue" draw:color="#AFBDD9"/>
++<draw:color draw:name="Resene Paints - Casper" draw:color="#ADBED1"/>
++<draw:color draw:name="Resene Paints - Heather" draw:color="#B7C3D0"/>
++<draw:color draw:name="Resene Paints - Sail" draw:color="#B8E0F9"/>
++<draw:color draw:name="Resene Paints - Regent St Blue" draw:color="#AAD6E6"/>
++<draw:color draw:name="Resene Paints - Seagull" draw:color="#80CCEA"/>
++<draw:color draw:name="Resene Paints - Anakiwa" draw:color="#9DE5FF"/>
++<draw:color draw:name="Resene Paints - Opal" draw:color="#A9C6C2"/>
++<draw:color draw:name="Resene Paints - Jungle mist" draw:color="#B4CFD3"/>
++<draw:color draw:name="Resene Paints - Powder blue" draw:color="#BCC9C2"/>
++<draw:color draw:name="Resene Paints - Jet stream" draw:color="#B5D2CE"/>
++<draw:color draw:name="Resene Paints - Ziggurat" draw:color="#BFDBE2"/>
++<draw:color draw:name="Resene Paints - Botticelli" draw:color="#C7DDE5"/>
++<draw:color draw:name="Resene Paints - Nebula" draw:color="#CBDBD6"/>
++<draw:color draw:name="Resene Paints - Conch" draw:color="#C9D9D2"/>
++<draw:color draw:name="Resene Paints - Paris white" draw:color="#CADCD4"/>
++<draw:color draw:name="Resene Paints - Aqua" draw:color="#A1DAD7"/>
++<draw:color draw:name="Resene Paints - Sinbad" draw:color="#9FD7D3"/>
++<draw:color draw:name="Resene Paints - Gum leaf" draw:color="#B6D3BF"/>
++<draw:color draw:name="Resene Paints - Surf" draw:color="#BBD7C1"/>
++<draw:color draw:name="Resene Paints - Sea" draw:color="#C5DBCA"/>
++<draw:color draw:name="Resene Paints - Sea mist" draw:color="#C5DBCA"/>
++<draw:color draw:name="Resene Paints - Tasman" draw:color="#CFDCCF"/>
++<draw:color draw:name="Resene Paints - Pale leaf" draw:color="#C0D3B9"/>
++<draw:color draw:name="Resene Paints - Rainee" draw:color="#B9C8AC"/>
++<draw:color draw:name="Resene Paints - Robins egg blue" draw:color="#BDC8B3"/>
++<draw:color draw:name="Resene Paints - Green spring" draw:color="#B8C1B1"/>
++<draw:color draw:name="Resene Paints - Spring rain" draw:color="#ACCBB1"/>
++<draw:color draw:name="Resene Paints - Summer green" draw:color="#96BBAB"/>
++<draw:color draw:name="Resene Paints - Eagle" draw:color="#B6BAA4"/>
++<draw:color draw:name="Resene Paints - Bud" draw:color="#A8AE9C"/>
++<draw:color draw:name="Resene Paints - Envy" draw:color="#8BA690"/>
++<draw:color draw:name="Resene Paints - Sea nymph" draw:color="#78A39C"/>
++<draw:color draw:name="Resene Paints - Gumbo" draw:color="#7CA1A6"/>
++<draw:color draw:name="Resene Paints - Granny smith" draw:color="#84A0A0"/>
++<draw:color draw:name="Resene Paints - Pewter" draw:color="#96A8A1"/>
++<draw:color draw:name="Resene Paints - Cascade" draw:color="#8BA9A5"/>
++<draw:color draw:name="Resene Paints - Tower grey" draw:color="#A9BDBF"/>
++<draw:color draw:name="Resene Paints - Shadow green" draw:color="#9AC2B8"/>
++<draw:color draw:name="Resene Paints - Gulf stream" draw:color="#80B3AE"/>
++<draw:color draw:name="Resene Paints - Half baked" draw:color="#85C4CC"/>
++<draw:color draw:name="Resene Paints - Glacier" draw:color="#80B3C4"/>
++<draw:color draw:name="Resene Paints - Neptune" draw:color="#7CB7BB"/>
++<draw:color draw:name="Resene Paints - Bali hai" draw:color="#859FAF"/>
++<draw:color draw:name="Resene Paints - Rock blue" draw:color="#9EB1CD"/>
++<draw:color draw:name="Resene Paints - Gull grey" draw:color="#9DACB7"/>
++<draw:color draw:name="Resene Paints - Nepal" draw:color="#8EABC1"/>
++<draw:color draw:name="Resene Paints - Polo blue" draw:color="#8DA8CC"/>
++<draw:color draw:name="Resene Paints - Logan" draw:color="#AAA9CD"/>
++<draw:color draw:name="Resene Paints - Wistful" draw:color="#A4A6D3"/>
++<draw:color draw:name="Resene Paints - Santas grey" draw:color="#9FA0B1"/>
++<draw:color draw:name="Resene Paints - Chatelle" draw:color="#BDB3C7"/>
++<draw:color draw:name="Resene Paints - Pink swan" draw:color="#BEB5B7"/>
++<draw:color draw:name="Resene Paints - Silk" draw:color="#BDB1A8"/>
++<draw:color draw:name="Resene Paints - Tide" draw:color="#BFB8B0"/>
++<draw:color draw:name="Resene Paints - Malta" draw:color="#BDB2A1"/>
++<draw:color draw:name="Resene Paints - Nomad" draw:color="#BAB1A2"/>
++<draw:color draw:name="Resene Paints - Bison hide" draw:color="#C1B7A4"/>
++<draw:color draw:name="Resene Paints - Nobel" draw:color="#B7B1B1"/>
++<draw:color draw:name="Resene Paints - Silver chalice" draw:color="#ACACAC"/>
++<draw:color draw:name="Resene Paints - Bombay" draw:color="#AFB1B8"/>
++<draw:color draw:name="Resene Paints - Spun pearl" draw:color="#AAABB7"/>
++<draw:color draw:name="Resene Paints - Aluminium" draw:color="#A9ACB6"/>
++<draw:color draw:name="Resene Paints - Grey Chateau" draw:color="#A2AAB3"/>
++<draw:color draw:name="Resene Paints - Hit grey" draw:color="#A1ADB5"/>
++<draw:color draw:name="Resene Paints - Edward" draw:color="#A2AEAB"/>
++<draw:color draw:name="Resene Paints - Star dust" draw:color="#9F9F9C"/>
++<draw:color draw:name="Resene Paints - Lemon grass" draw:color="#9B9E8F"/>
++<draw:color draw:name="Resene Paints - Grey" draw:color="#A9A491"/>
++<draw:color draw:name="Resene Paints - Grey olive" draw:color="#A9A491"/>
++<draw:color draw:name="Resene Paints - Napa" draw:color="#ACA494"/>
++<draw:color draw:name="Resene Paints - Bronco" draw:color="#ABA196"/>
++<draw:color draw:name="Resene Paints - Cloudy" draw:color="#ACA59F"/>
++<draw:color draw:name="Resene Paints - Delta" draw:color="#A4A49D"/>
++<draw:color draw:name="Resene Paints - Dawn" draw:color="#A6A29A"/>
++<draw:color draw:name="Resene Paints - Zorba" draw:color="#A59B91"/>
++<draw:color draw:name="Resene Paints - Martini" draw:color="#AFA09E"/>
++<draw:color draw:name="Resene Paints - Thatch" draw:color="#B69D98"/>
++<draw:color draw:name="Resene Paints - Del rio" draw:color="#B09A95"/>
++<draw:color draw:name="Resene Paints - Dusty grey" draw:color="#A8989B"/>
++<draw:color draw:name="Resene Paints - Shady lady" draw:color="#AAA5A9"/>
++<draw:color draw:name="Resene Paints - Venus" draw:color="#928590"/>
++<draw:color draw:name="Resene Paints - Granite green" draw:color="#8D8974"/>
++<draw:color draw:name="Resene Paints - Mountain mist" draw:color="#959396"/>
++<draw:color draw:name="Resene Paints - Oslo grey" draw:color="#878D91"/>
++<draw:color draw:name="Resene Paints - Stack" draw:color="#8A8F8A"/>
++<draw:color draw:name="Resene Paints - Gunsmoke" draw:color="#828685"/>
++<draw:color draw:name="Resene Paints - Boulder" draw:color="#7A7A7A"/>
++<draw:color draw:name="Resene Paints - Tapa" draw:color="#7B7874"/>
++<draw:color draw:name="Resene Paints - Concord" draw:color="#7C7B7A"/>
++<draw:color draw:name="Resene Paints - Jumbo" draw:color="#7C7B82"/>
++<draw:color draw:name="Resene Paints - Rolling stone" draw:color="#747D83"/>
++<draw:color draw:name="Resene Paints - Bandicoot" draw:color="#858470"/>
++<draw:color draw:name="Resene Paints - Makara" draw:color="#897D6D"/>
++<draw:color draw:name="Resene Paints - Olive haze" draw:color="#8B8470"/>
++<draw:color draw:name="Resene Paints - Stonewall" draw:color="#928573"/>
++<draw:color draw:name="Resene Paints - Schooner" draw:color="#8B847E"/>
++<draw:color draw:name="Resene Paints - Friar grey" draw:color="#807E79"/>
++<draw:color draw:name="Resene Paints - Americano" draw:color="#87756E"/>
++<draw:color draw:name="Resene Paints - Squirrel" draw:color="#8F8176"/>
++<draw:color draw:name="Resene Paints - Almond frost" draw:color="#907B71"/>
++<draw:color draw:name="Resene Paints - Hemp" draw:color="#907874"/>
++<draw:color draw:name="Resene Paints - Hurricane" draw:color="#877C7B"/>
++<draw:color draw:name="Resene Paints - Suva grey" draw:color="#888387"/>
++<draw:color draw:name="Resene Paints - Mamba" draw:color="#8E8190"/>
++<draw:color draw:name="Resene Paints - Monsoon" draw:color="#8A8389"/>
++<draw:color draw:name="Resene Paints - Mobster" draw:color="#7F7589"/>
++<draw:color draw:name="Resene Paints - Waterloo" draw:color="#7B7C94"/>
++<draw:color draw:name="Resene Paints - Raincloud" draw:color="#7B7C94"/>
++<draw:color draw:name="Resene Paints - Topaz" draw:color="#7C778A"/>
++<draw:color draw:name="Resene Paints - Lynch" draw:color="#697E9A"/>
++<draw:color draw:name="Resene Paints - Regent grey" draw:color="#86949F"/>
++<draw:color draw:name="Resene Paints - Raven" draw:color="#727B89"/>
++<draw:color draw:name="Resene Paints - Tax break" draw:color="#51808F"/>
++<draw:color draw:name="Resene Paints - Smalt" draw:color="#51808F"/>
++<draw:color draw:name="Resene Paints - Smalt blue" draw:color="#51808F"/>
++<draw:color draw:name="Resene Paints - Bermuda grey" draw:color="#6B8BA2"/>
++<draw:color draw:name="Resene Paints - Gothic" draw:color="#6D92A1"/>
++<draw:color draw:name="Resene Paints - Wedgewood" draw:color="#4E7F9E"/>
++<draw:color draw:name="Resene Paints - Hoki" draw:color="#65869F"/>
++<draw:color draw:name="Resene Paints - Horizon" draw:color="#5A87A0"/>
++<draw:color draw:name="Resene Paints - Boston blue" draw:color="#3B91B4"/>
++<draw:color draw:name="Resene Paints - Hippie blue" draw:color="#589AAF"/>
++<draw:color draw:name="Resene Paints - Sirocco" draw:color="#718080"/>
++<draw:color draw:name="Resene Paints - Blue smoke" draw:color="#748881"/>
++<draw:color draw:name="Resene Paints - Juniper" draw:color="#6D9292"/>
++<draw:color draw:name="Resene Paints - Laurel" draw:color="#749378"/>
++<draw:color draw:name="Resene Paints - Amulet" draw:color="#7B9F80"/>
++<draw:color draw:name="Resene Paints - Oxley" draw:color="#779E86"/>
++<draw:color draw:name="Resene Paints - Spanish green" draw:color="#819885"/>
++<draw:color draw:name="Resene Paints - Mantle" draw:color="#8B9C90"/>
++<draw:color draw:name="Resene Paints - Xanadu" draw:color="#738678"/>
++<draw:color draw:name="Resene Paints - Bitter" draw:color="#868974"/>
++<draw:color draw:name="Resene Paints - Viridian green" draw:color="#678975"/>
++<draw:color draw:name="Resene Paints - Lochinvar" draw:color="#2C8C84"/>
++<draw:color draw:name="Resene Paints - Breaker Bay" draw:color="#5DA19F"/>
++<draw:color draw:name="Resene Paints - Patina" draw:color="#639A8F"/>
++<draw:color draw:name="Resene Paints - BayLeaf" draw:color="#7DA98D"/>
++<draw:color draw:name="Resene Paints - Silver tree" draw:color="#66B58F"/>
++<draw:color draw:name="Resene Paints - Tradewind" draw:color="#5FB3AC"/>
++<draw:color draw:name="Resene Paints - Acapulco" draw:color="#7CB0A1"/>
++<draw:color draw:name="Resene Paints - Fountain blue" draw:color="#56B4BE"/>
++<draw:color draw:name="Resene Paints - Scooter" draw:color="#2EBFD4"/>
++<draw:color draw:name="Resene Paints - Pelorous" draw:color="#3EABBF"/>
++<draw:color draw:name="Resene Paints - Eastern blue" draw:color="#1E9AB0"/>
++<draw:color draw:name="Resene Paints - Blue chill" draw:color="#0C8990"/>
++<draw:color draw:name="Resene Paints - Java" draw:color="#1FC2C2"/>
++<draw:color draw:name="Resene Paints - Keppel" draw:color="#3AB09E"/>
++<draw:color draw:name="Resene Paints - Puerto Rico" draw:color="#3FC1AA"/>
++<draw:color draw:name="Resene Paints - Niagara" draw:color="#6	1	9"/>
++<draw:color draw:name="Resene Paints - Gossamer" draw:color="#6	B	1"/>
++<draw:color draw:name="Resene Paints - Eucalyptus" draw:color="#278A5B"/>
++<draw:color draw:name="Resene Paints - Fruit salad" draw:color="#4F9D5D"/>
++<draw:color draw:name="Resene Paints - Chateau green" draw:color="#40A860"/>
++<draw:color draw:name="Resene Paints - Ocean green" draw:color="#41AA78"/>
++<draw:color draw:name="Resene Paints - De York" draw:color="#7AC488"/>
++<draw:color draw:name="Resene Paints - Mantis" draw:color="#74C365"/>
++<draw:color draw:name="Resene Paints - Apple" draw:color="#4FA83D"/>
++<draw:color draw:name="Resene Paints - Wasabi" draw:color="#788A25"/>
++<draw:color draw:name="Resene Paints - Chelsea cucumber" draw:color="#83AA5D"/>
++<draw:color draw:name="Resene Paints - Spring green" draw:color="#578363"/>
++<draw:color draw:name="Resene Paints - Glade green" draw:color="#61845F"/>
++<draw:color draw:name="Resene Paints - Highland" draw:color="#6F8E63"/>
++<draw:color draw:name="Resene Paints - Limed ash" draw:color="#747D63"/>
++<draw:color draw:name="Resene Paints - Flax" draw:color="#7B8265"/>
++<draw:color draw:name="Resene Paints - Battleship grey" draw:color="#828F72"/>
++<draw:color draw:name="Resene Paints - Malachite green" draw:color="#888D65"/>
++<draw:color draw:name="Resene Paints - Avocado" draw:color="#888D65"/>
++<draw:color draw:name="Resene Paints - Rainforest" draw:color="#778120"/>
++<draw:color draw:name="Resene Paints - Pacifika" draw:color="#778120"/>
++<draw:color draw:name="Resene Paints - Sycamore" draw:color="#908D39"/>
++<draw:color draw:name="Resene Paints - Highball" draw:color="#908D39"/>
++<draw:color draw:name="Resene Paints - Luxor gold" draw:color="#A7882C"/>
++<draw:color draw:name="Resene Paints - Muddy waters" draw:color="#B78E5C"/>
++<draw:color draw:name="Resene Paints - Limed oak" draw:color="#AC8A56"/>
++<draw:color draw:name="Resene Paints - Mckenzie" draw:color="#AF8751"/>
++<draw:color draw:name="Resene Paints - Driftwood" draw:color="#AF8751"/>
++<draw:color draw:name="Resene Paints - Cement" draw:color="#8D7662"/>
++<draw:color draw:name="Resene Paints - Domino" draw:color="#8E775E"/>
++<draw:color draw:name="Resene Paints - Clay creek" draw:color="#8A8360"/>
++<draw:color draw:name="Resene Paints - Gurkha" draw:color="#9A9577"/>
++<draw:color draw:name="Resene Paints - Pale oyster" draw:color="#988D77"/>
++<draw:color draw:name="Resene Paints - Arrowtown" draw:color="#948771"/>
++<draw:color draw:name="Resene Paints - Donkey brown" draw:color="#A69279"/>
++<draw:color draw:name="Resene Paints - Sandrift" draw:color="#AB917A"/>
++<draw:color draw:name="Resene Paints - Sandal" draw:color="#AA8D6F"/>
++<draw:color draw:name="Resene Paints - Barley corn" draw:color="#A68B5B"/>
++<draw:color draw:name="Resene Paints - Muesli" draw:color="#AA8B5B"/>
++<draw:color draw:name="Resene Paints - Teak" draw:color="#B19461"/>
++<draw:color draw:name="Resene Paints - Mongoose" draw:color="#B5A27F"/>
++<draw:color draw:name="Resene Paints - Tallow" draw:color="#A8A589"/>
++<draw:color draw:name="Resene Paints - Canvas" draw:color="#A8A589"/>
++<draw:color draw:name="Resene Paints - Neutral green" draw:color="#ACA586"/>
++<draw:color draw:name="Resene Paints - Hillary" draw:color="#ACA586"/>
++<draw:color draw:name="Resene Paints - Taupe grey" draw:color="#B3AF95"/>
++<draw:color draw:name="Resene Paints - Heathered grey" draw:color="#B6B095"/>
++<draw:color draw:name="Resene Paints - Rodeo dust" draw:color="#C9B29B"/>
++<draw:color draw:name="Resene Paints - Tussock" draw:color="#C5994B"/>
++<draw:color draw:name="Resene Paints - Roti" draw:color="#C6A84B"/>
++<draw:color draw:name="Resene Paints - Sundance" draw:color="#C9B35B"/>
++<draw:color draw:name="Resene Paints - Husk" draw:color="#B7A458"/>
++<draw:color draw:name="Resene Paints - Laser" draw:color="#C8B568"/>
++<draw:color draw:name="Resene Paints - Gimblet" draw:color="#B8B56A"/>
++<draw:color draw:name="Resene Paints - Green smoke" draw:color="#A4AF6E"/>
++<draw:color draw:name="Resene Paints - Sage" draw:color="#9EA587"/>
++<draw:color draw:name="Resene Paints - Schist" draw:color="#A9B497"/>
++<draw:color draw:name="Resene Paints - Locust" draw:color="#A8AF8E"/>
++<draw:color draw:name="Resene Paints - Norway" draw:color="#A8BD9F"/>
++<draw:color draw:name="Resene Paints - Coriander" draw:color="#C4D0B0"/>
++<draw:color draw:name="Resene Paints - Green mist" draw:color="#CBD3B0"/>
++<draw:color draw:name="Resene Paints - Tana" draw:color="#D9DCC1"/>
++<draw:color draw:name="Resene Paints - Pixie green" draw:color="#C0D8B6"/>
++<draw:color draw:name="Resene Paints - Sprout" draw:color="#C1D7B0"/>
++<draw:color draw:name="Resene Paints - Winter hazel" draw:color="#D5D195"/>
++<draw:color draw:name="Resene Paints - Pine glade" draw:color="#C7CD90"/>
++<draw:color draw:name="Resene Paints - Deco" draw:color="#D2DA97"/>
++<draw:color draw:name="Resene Paints - Celery" draw:color="#B8C25D"/>
++<draw:color draw:name="Resene Paints - Wild willow" draw:color="#B9C46A"/>
++<draw:color draw:name="Resene Paints - Tacha" draw:color="#D6C562"/>
++<draw:color draw:name="Resene Paints - Chenin" draw:color="#DFCD6F"/>
++<draw:color draw:name="Resene Paints - Putty" draw:color="#E7CD8C"/>
++<draw:color draw:name="Resene Paints - Chalky" draw:color="#EED794"/>
++<draw:color draw:name="Resene Paints - Golden sand" draw:color="#F0DB7D"/>
++<draw:color draw:name="Resene Paints - Apache" draw:color="#DFBE6F"/>
++<draw:color draw:name="Resene Paints - Equator" draw:color="#E1BC64"/>
++<draw:color draw:name="Resene Paints - Rob roy" draw:color="#EAC674"/>
++<draw:color draw:name="Resene Paints - Grandis" draw:color="#FFD38C"/>
++<draw:color draw:name="Resene Paints - Harvest gold" draw:color="#E0B974"/>
++<draw:color draw:name="Resene Paints - Brandy" draw:color="#DEC196"/>
++<draw:color draw:name="Resene Paints - Calico" draw:color="#E0C095"/>
++<draw:color draw:name="Resene Paints - Cameo" draw:color="#D9B99B"/>
++<draw:color draw:name="Resene Paints - Vanilla" draw:color="#D1BEA8"/>
++<draw:color draw:name="Resene Paints - Sour dough" draw:color="#D1BEA8"/>
++<draw:color draw:name="Resene Paints - Akaroa" draw:color="#D4C4A8"/>
++<draw:color draw:name="Resene Paints - Coral" draw:color="#C7BCA2"/>
++<draw:color draw:name="Resene Paints - Thistle" draw:color="#CCCAA8"/>
++<draw:color draw:name="Resene Paints - Chino" draw:color="#CEC7A7"/>
++<draw:color draw:name="Resene Paints - Yuma" draw:color="#CEC291"/>
++<draw:color draw:name="Resene Paints - Straw" draw:color="#D4BF8D"/>
++<draw:color draw:name="Resene Paints - Sorrell brown" draw:color="#CEB98F"/>
++<draw:color draw:name="Resene Paints - Pavlova" draw:color="#D7C498"/>
++<draw:color draw:name="Resene Paints - Sapling" draw:color="#DED4A4"/>
++<draw:color draw:name="Resene Paints - New Orleans" draw:color="#F3D69D"/>
++<draw:color draw:name="Resene Paints - Zombie" draw:color="#E4D69B"/>
++<draw:color draw:name="Resene Paints - Hampton" draw:color="#E5D8AF"/>
++<draw:color draw:name="Resene Paints - Double spanish white" draw:color="#E6D7B9"/>
++<draw:color draw:name="Resene Paints - Grain brown" draw:color="#E4D5B7"/>
++<draw:color draw:name="Resene Paints - Stark white" draw:color="#E5D7BD"/>
++<draw:color draw:name="Resene Paints - Raffia" draw:color="#EADAB8"/>
++<draw:color draw:name="Resene Paints - Just right" draw:color="#ECCDB9"/>
++<draw:color draw:name="Resene Paints - Pancho" draw:color="#EDCDAB"/>
++<draw:color draw:name="Resene Paints - Manhattan" draw:color="#F5C999"/>
++<draw:color draw:name="Resene Paints - Maize" draw:color="#F5D5A0"/>
++<draw:color draw:name="Resene Paints - Corvette" draw:color="#FAD3A2"/>
++<draw:color draw:name="Resene Paints - Frangipani" draw:color="#FFDEB3"/>
++<draw:color draw:name="Resene Paints - Caramel" draw:color="#FFDDAF"/>
++<draw:color draw:name="Resene Paints - Karry" draw:color="#FFEAD4"/>
++<draw:color draw:name="Resene Paints - Tequila" draw:color="#FFE6C7"/>
++<draw:color draw:name="Resene Paints - Negroni" draw:color="#FFE2C5"/>
++<draw:color draw:name="Resene Paints - Givry" draw:color="#F8E4BF"/>
++<draw:color draw:name="Resene Paints - Dairy cream" draw:color="#F9E4BC"/>
++<draw:color draw:name="Resene Paints - Sandy beach" draw:color="#FFEAC8"/>
++<draw:color draw:name="Resene Paints - Champagne" draw:color="#FAECCC"/>
++<draw:color draw:name="Resene Paints - Spanish white" draw:color="#F4EBD3"/>
++<draw:color draw:name="Resene Paints - Janna" draw:color="#F4EBD3"/>
++<draw:color draw:name="Resene Paints - Aths special" draw:color="#ECEBCE"/>
++<draw:color draw:name="Resene Paints - Wheatfield" draw:color="#F3EDCF"/>
++<draw:color draw:name="Resene Paints - Double colonial white" draw:color="#EEE3AD"/>
++<draw:color draw:name="Resene Paints - Chamois" draw:color="#EDDCB1"/>
++<draw:color draw:name="Resene Paints - Colonial white" draw:color="#FFEDBC"/>
++<draw:color draw:name="Resene Paints - Cape honey" draw:color="#FEE5AC"/>
++<draw:color draw:name="Resene Paints - Astra" draw:color="#FAEAB9"/>
++<draw:color draw:name="Resene Paints - Sidecar" draw:color="#F3E7BB"/>
++<draw:color draw:name="Resene Paints - Splash" draw:color="#FFEFC1"/>
++<draw:color draw:name="Resene Paints - Egg white" draw:color="#FFEFC1"/>
++<draw:color draw:name="Resene Paints - Buttermilk" draw:color="#FFF1B5"/>
++<draw:color draw:name="Resene Paints - Pipi" draw:color="#FEF4CC"/>
++<draw:color draw:name="Resene Paints - Beeswax" draw:color="#FEF2C7"/>
++<draw:color draw:name="Resene Paints - Double pearl lusta" draw:color="#FCF4D0"/>
++<draw:color draw:name="Resene Paints - Barley white" draw:color="#FFF4CE"/>
++<draw:color draw:name="Resene Paints - Milk punch" draw:color="#FFF6D4"/>
++<draw:color draw:name="Resene Paints - Half colonial white" draw:color="#FDF6D3"/>
++<draw:color draw:name="Resene Paints - Dutch white" draw:color="#FFF8D1"/>
++<draw:color draw:name="Resene Paints - Baja white" draw:color="#FFF8D1"/>
++<draw:color draw:name="Resene Paints - Citrine white" draw:color="#FAF7D6"/>
++<draw:color draw:name="Resene Paints - Half Dutch white" draw:color="#FEF7DE"/>
++<draw:color draw:name="Resene Paints - Coconut cream" draw:color="#F8F7DC"/>
++<draw:color draw:name="Resene Paints - Half and half" draw:color="#FFFEE1"/>
++<draw:color draw:name="Resene Paints - Scotch mist" draw:color="#FFFBDC"/>
++<draw:color draw:name="Resene Paints - Pearl lusta" draw:color="#FCF4DC"/>
++<draw:color draw:name="Resene Paints - Half Spanish white" draw:color="#FEF4DB"/>
++<draw:color draw:name="Resene Paints - Bleach white" draw:color="#FEF3D8"/>
++<draw:color draw:name="Resene Paints - Derby" draw:color="#FFEED8"/>
++<draw:color draw:name="Resene Paints - Pink lady" draw:color="#FFF1D8"/>
++<draw:color draw:name="Resene Paints - Oasis" draw:color="#FEEFCE"/>
++<draw:color draw:name="Resene Paints - Cherokee" draw:color="#FCDA98"/>
++<draw:color draw:name="Resene Paints - Salomie" draw:color="#FEDB8D"/>
++<draw:color draw:name="Resene Paints - Cream brulee" draw:color="#FFE5A0"/>
++<draw:color draw:name="Resene Paints - Golden glow" draw:color="#FDE295"/>
++<draw:color draw:name="Resene Paints - Marzipan" draw:color="#F8DB9D"/>
++<draw:color draw:name="Resene Paints - Pale prim" draw:color="#FDFEB8"/>
++<draw:color draw:name="Resene Paints - Shalimar" draw:color="#FBFFBA"/>
++<draw:color draw:name="Resene Paints - Portafino" draw:color="#FFFFB4"/>
++<draw:color draw:name="Resene Paints - Drover" draw:color="#FDF7AD"/>
++<draw:color draw:name="Resene Paints - Sandwisp" draw:color="#F5E7A2"/>
++<draw:color draw:name="Resene Paints - Wild rice" draw:color="#ECE090"/>
++<draw:color draw:name="Resene Paints - Primrose" draw:color="#EDEA99"/>
++<draw:color draw:name="Resene Paints - Vis vis" draw:color="#FFEFA1"/>
++<draw:color draw:name="Resene Paints - Sweet corn" draw:color="#FBEA8C"/>
++<draw:color draw:name="Resene Paints - Picasso" draw:color="#FFF39D"/>
++<draw:color draw:name="Resene Paints - Witch haze" draw:color="#FFFC99"/>
++<draw:color draw:name="Resene Paints - Creme de banane" draw:color="#FFFC99"/>
++<draw:color draw:name="Resene Paints - Milan" draw:color="#FAFFA4"/>
++<draw:color draw:name="Resene Paints - Texas" draw:color="#F8F99C"/>
++<draw:color draw:name="Resene Paints - Tidal" draw:color="#F1FFAD"/>
++<draw:color draw:name="Resene Paints - Chiffon" draw:color="#F1FFC8"/>
++<draw:color draw:name="Resene Paints - Australian mint" draw:color="#F5FFBE"/>
++<draw:color draw:name="Resene Paints - Tusk" draw:color="#EEF3C3"/>
++<draw:color draw:name="Resene Paints - Caper" draw:color="#DCEDB4"/>
++<draw:color draw:name="Resene Paints - Beryl green" draw:color="#DEE5C0"/>
++<draw:color draw:name="Resene Paints - Chrome white" draw:color="#E8F1D4"/>
++<draw:color draw:name="Resene Paints - Mint julep" draw:color="#F1EEC1"/>
++<draw:color draw:name="Resene Paints - Tahuna sands" draw:color="#EEF0C8"/>
++<draw:color draw:name="Resene Paints - Orinoco" draw:color="#F3FBD4"/>
++<draw:color draw:name="Resene Paints - Corn field" draw:color="#F8FACD"/>
++<draw:color draw:name="Resene Paints - Moon glow" draw:color="#FCFEDA"/>
++<draw:color draw:name="Resene Paints - Cumulus" draw:color="#FDFFD5"/>
++<draw:color draw:name="Resene Paints - Mimosa" draw:color="#F8FDD3"/>
++<draw:color draw:name="Resene Paints - Spring sun" draw:color="#F6FFDC"/>
++<draw:color draw:name="Resene Paints - Carla" draw:color="#F3FFD8"/>
++<draw:color draw:name="Resene Paints - Snow flurry" draw:color="#E4FFD1"/>
++<draw:color draw:name="Resene Paints - Snowy mint" draw:color="#D6FFDB"/>
++<draw:color draw:name="Resene Paints - Gossip" draw:color="#D2F8B0"/>
++<draw:color draw:name="Resene Paints - Madang" draw:color="#B7F0BE"/>
++<draw:color draw:name="Resene Paints - Chinook" draw:color="#A8E3BD"/>
++<draw:color draw:name="Resene Paints - Feijoa" draw:color="#9FDD8C"/>
++<draw:color draw:name="Resene Paints - Sulu" draw:color="#C1F07C"/>
++<draw:color draw:name="Resene Paints - Reef" draw:color="#C9FFA2"/>
++<draw:color draw:name="Resene Paints - Jonquil" draw:color="#EEFF9A"/>
++<draw:color draw:name="Resene Paints - Mindaro" draw:color="#E3F988"/>
++<draw:color draw:name="Resene Paints - Honeysuckle" draw:color="#EDFC84"/>
++<draw:color draw:name="Resene Paints - Canary" draw:color="#F3FB62"/>
++<draw:color draw:name="Resene Paints - Conifer" draw:color="#ACDD4D"/>
++<draw:color draw:name="Resene Paints - Atlantis" draw:color="#97CD2D"/>
++<draw:color draw:name="Resene Paints - Bahia" draw:color="#A5CB0C"/>
++<draw:color draw:name="Resene Paints - Rio Grande" draw:color="#BBD009"/>
++<draw:color draw:name="Resene Paints - Lime" draw:color="#BFC921"/>
++<draw:color draw:name="Resene Paints - Bitter lemon" draw:color="#CAE00D"/>
++<draw:color draw:name="Resene Paints - Las Palmas" draw:color="#C6E610"/>
++<draw:color draw:name="Resene Paints - Fuego" draw:color="#BEDE0D"/>
++<draw:color draw:name="Resene Paints - Starship" draw:color="#ECF245"/>
++<draw:color draw:name="Resene Paints - Golden fizz" draw:color="#F5FB3D"/>
++<draw:color draw:name="Resene Paints - Broom" draw:color="#FFEC13"/>
++<draw:color draw:name="Resene Paints - Turbo" draw:color="#FAE600"/>
++<draw:color draw:name="Resene Paints - Gorse" draw:color="#FFF14F"/>
++<draw:color draw:name="Resene Paints - Paris Daisy" draw:color="#FFF46E"/>
++<draw:color draw:name="Resene Paints - Manz" draw:color="#EEEF78"/>
++<draw:color draw:name="Resene Paints - Dolly" draw:color="#F9FF8B"/>
++<draw:color draw:name="Resene Paints - Kournikova" draw:color="#FFE772"/>
++<draw:color draw:name="Resene Paints - Festival" draw:color="#FBE96C"/>
++<draw:color draw:name="Resene Paints - Portica" draw:color="#F9E663"/>
++<draw:color draw:name="Resene Paints - Energy yellow" draw:color="#F8DD5C"/>
++<draw:color draw:name="Resene Paints - Supernova" draw:color="#FFC901"/>
++<draw:color draw:name="Resene Paints - Moon yellow" draw:color="#FCD917"/>
++<draw:color draw:name="Resene Paints - Candlelight" draw:color="#FCD917"/>
++<draw:color draw:name="Resene Paints - Bright sun" draw:color="#FED33C"/>
++<draw:color draw:name="Resene Paints - Corn" draw:color="#E7BF05"/>
++<draw:color draw:name="Resene Paints - Gold tips" draw:color="#DEBA13"/>
++<draw:color draw:name="Resene Paints - Lightning yellow" draw:color="#FCC01E"/>
++<draw:color draw:name="Resene Paints - Tulip tree" draw:color="#EAB33B"/>
++<draw:color draw:name="Resene Paints - Golden tainoi" draw:color="#FFCC5C"/>
++<draw:color draw:name="Resene Paints - Cream can" draw:color="#F5C85C"/>
++<draw:color draw:name="Resene Paints - Anzac" draw:color="#E0B646"/>
++<draw:color draw:name="Resene Paints - Ronchi" draw:color="#ECC54E"/>
++<draw:color draw:name="Resene Paints - Confetti" draw:color="#E9D75A"/>
++<draw:color draw:name="Resene Paints - Wattle" draw:color="#DCD747"/>
++<draw:color draw:name="Resene Paints - Bird flower" draw:color="#D4CD16"/>
++<draw:color draw:name="Resene Paints - Sunflower" draw:color="#E4D422"/>
++<draw:color draw:name="Resene Paints - Golden dream" draw:color="#F0D52D"/>
++<draw:color draw:name="Resene Paints - Barberry" draw:color="#DED717"/>
++<draw:color draw:name="Resene Paints - Lemon" draw:color="#F4D81C"/>
++<draw:color draw:name="Resene Paints - Turmeric" draw:color="#CABB48"/>
++<draw:color draw:name="Resene Paints - Lemon ginger" draw:color="#AC9E22"/>
++<draw:color draw:name="Resene Paints - Lucky" draw:color="#AF9F1C"/>
++<draw:color draw:name="Resene Paints - Sahara" draw:color="#B7A214"/>
++<draw:color draw:name="Resene Paints - Earls green" draw:color="#C9B93B"/>
++<draw:color draw:name="Resene Paints - Buddha gold" draw:color="#C1A004"/>
++<draw:color draw:name="Resene Paints - Hokey pokey" draw:color="#C8A528"/>
++<draw:color draw:name="Resene Paints - Nugget" draw:color="#C59922"/>
++<draw:color draw:name="Resene Paints - Galliano" draw:color="#DCB20C"/>
++<draw:color draw:name="Resene Paints - Marigold" draw:color="#B98D28"/>
++<draw:color draw:name="Resene Paints - Buttered rum" draw:color="#A1750D"/>
++<draw:color draw:name="Resene Paints - ReefGold" draw:color="#9F821C"/>
++<draw:color draw:name="Resene Paints - Hacienda" draw:color="#98811B"/>
++<draw:color draw:name="Resene Paints - Alpine" draw:color="#AF8F2C"/>
++<draw:color draw:name="Resene Paints - Trendy green" draw:color="#7C881A"/>
++<draw:color draw:name="Resene Paints - La Rioja" draw:color="#B3C110"/>
++<draw:color draw:name="Resene Paints - Citrus" draw:color="#A1C50a"/>
++<draw:color draw:name="Resene Paints - Pistachio" draw:color="#9DC209"/>
++<draw:color draw:name="Resene Paints - Limerick" draw:color="#9DC209"/>
++<draw:color draw:name="Resene Paints - Citron" draw:color="#9EA91F"/>
++<draw:color draw:name="Resene Paints - Sushi" draw:color="#87AB39"/>
++<draw:color draw:name="Resene Paints - Vida loca" draw:color="#549019"/>
++<draw:color draw:name="Resene Paints - Limeade" draw:color="#6F9D02"/>
++<draw:color draw:name="Resene Paints - Christi" draw:color="#67A712"/>
++<draw:color draw:name="Resene Paints - Lima" draw:color="#76BD17"/>
++<draw:color draw:name="Resene Paints - Deep fir" draw:color="#002900"/>
++<draw:color draw:name="Resene Paints - County green" draw:color="#01371A"/>
++<draw:color draw:name="Resene Paints - Zuccini" draw:color="#044022"/>
++<draw:color draw:name="Resene Paints - Kaitoke green" draw:color="#004620"/>
++<draw:color draw:name="Resene Paints - Camarone" draw:color="#00581A"/>
++<draw:color draw:name="Resene Paints - Fun green" draw:color="#016D39"/>
++<draw:color draw:name="Resene Paints - Jewel" draw:color="#126B40"/>
++<draw:color draw:name="Resene Paints - Salem" draw:color="#097F4B"/>
++<draw:color draw:name="Resene Paints - Bilbao" draw:color="#327C14"/>
++<draw:color draw:name="Resene Paints - La Palma" draw:color="#368716"/>
++<draw:color draw:name="Resene Paints - Japanese laurel" draw:color="#0Q6906"/>
++<draw:color draw:name="Resene Paints - San Felix" draw:color="##B6207"/>
++<draw:color draw:name="Resene Paints - Dell" draw:color="#396413"/>
++<draw:color draw:name="Resene Paints - Green leaf" draw:color="#436A0D"/>
++<draw:color draw:name="Resene Paints - Chalet green" draw:color="#516E3D"/>
++<draw:color draw:name="Resene Paints - Hippie green" draw:color="#53824B"/>
++<draw:color draw:name="Resene Paints - Goblin" draw:color="#3D7D52"/>
++<draw:color draw:name="Resene Paints - Amazon" draw:color="#3B7A57"/>
++<draw:color draw:name="Resene Paints - Killarney" draw:color="#3A6A47"/>
++<draw:color draw:name="Resene Paints - Crusoe" draw:color="#004816"/>
++<draw:color draw:name="Resene Paints - Parsley" draw:color="#134F19"/>
++<draw:color draw:name="Resene Paints - Fern" draw:color="#0A480D"/>
++<draw:color draw:name="Resene Paints - Green house" draw:color="#24500F"/>
++<draw:color draw:name="Resene Paints - Clover" draw:color="#384910"/>
++<draw:color draw:name="Resene Paints - Woodland" draw:color="#4D5328"/>
++<draw:color draw:name="Resene Paints - Tom Thumb" draw:color="#3F583B"/>
++<draw:color draw:name="Resene Paints - Axolotl" draw:color="#4E6649"/>
++<draw:color draw:name="Resene Paints - Verdigris" draw:color="#5D5E37"/>
++<draw:color draw:name="Resene Paints - Hemlock" draw:color="#5E5D3B"/>
++<draw:color draw:name="Resene Paints - Finch" draw:color="#626649"/>
++<draw:color draw:name="Resene Paints - Dingley" draw:color="#5D7747"/>
++<draw:color draw:name="Resene Paints - Planter" draw:color="#615D30"/>
++<draw:color draw:name="Resene Paints - Costa Del Sol" draw:color="#615D30"/>
++<draw:color draw:name="Resene Paints - Pesto" draw:color="#7C7631"/>
++<draw:color draw:name="Resene Paints - Grass hopper" draw:color="#7C7631"/>
++<draw:color draw:name="Resene Paints - Fiji green" draw:color="#657220"/>
++<draw:color draw:name="Resene Paints - Fern frond" draw:color="#657220"/>
++<draw:color draw:name="Resene Paints - Crete" draw:color="#737829"/>
++<draw:color draw:name="Resene Paints - Olivetone" draw:color="#716E10"/>
++<draw:color draw:name="Resene Paints - Verdun green" draw:color="#495400"/>
++<draw:color draw:name="Resene Paints - Saratoga" draw:color="#555B10"/>
++<draw:color draw:name="Resene Paints - Bronze olive" draw:color="#4E420C"/>
++<draw:color draw:name="Resene Paints - West Coast" draw:color="#625119"/>
++<draw:color draw:name="Resene Paints - Horses neck" draw:color="#604913"/>
++<draw:color draw:name="Resene Paints - Mustard" draw:color="#74640D"/>
++<draw:color draw:name="Resene Paints - Yukon gold" draw:color="#7B660B"/>
++<draw:color draw:name="Resene Paints - Stinger" draw:color="#8B6B0B"/>
++<draw:color draw:name="Resene Paints - Corn harvest" draw:color="#8B6B0B"/>
++<draw:color draw:name="Resene Paints - Kumera" draw:color="#886221"/>
++<draw:color draw:name="Resene Paints - Hot curry" draw:color="#886221"/>
++<draw:color draw:name="Resene Paints - Brazil" draw:color="#886221"/>
++<draw:color draw:name="Resene Paints - Himalaya" draw:color="#6A5D1B"/>
++<draw:color draw:name="Resene Paints - Acorn" draw:color="#6A5D1B"/>
++<draw:color draw:name="Resene Paints - Yellow metal" draw:color="#716338"/>
++<draw:color draw:name="Resene Paints - Crocodile" draw:color="#736D58"/>
++<draw:color draw:name="Resene Paints - Peat" draw:color="#716B56"/>
++<draw:color draw:name="Resene Paints - GoBen" draw:color="#726D4E"/>
++<draw:color draw:name="Resene Paints - Tobacco brown" draw:color="#715D47"/>
++<draw:color draw:name="Resene Paints - Roman coffee" draw:color="#795D4C"/>
++<draw:color draw:name="Resene Paints - Shingle fawn" draw:color="#6B4E31"/>
++<draw:color draw:name="Resene Paints - Bronzetone" draw:color="#4D400F"/>
++<draw:color draw:name="Resene Paints - Punga" draw:color="#4D3D14"/>
++<draw:color draw:name="Resene Paints - Millbrook" draw:color="#594433"/>
++<draw:color draw:name="Resene Paints - Metallic bronze" draw:color="#49371B"/>
++<draw:color draw:name="Resene Paints - Space shuttle" draw:color="#433120"/>
++<draw:color draw:name="Resene Paints - Iroko" draw:color="#433120"/>
++<draw:color draw:name="Resene Paints - Black marlin" draw:color="#3E2C1C"/>
++<draw:color draw:name="Resene Paints - Tumbleweed" draw:color="#37290E"/>
++<draw:color draw:name="Resene Paints - Cola" draw:color="#3F2500"/>
++<draw:color draw:name="Resene Paints - Deep bronze" draw:color="#4A3004"/>
++<draw:color draw:name="Resene Paints - Madras" draw:color="#3F3002"/>
++<draw:color draw:name="Resene Paints - Thatch green" draw:color="#403D19"/>
++<draw:color draw:name="Resene Paints - Camouflage" draw:color="#3C3910"/>
++<draw:color draw:name="Resene Paints - Woodrush" draw:color="#302A0F"/>
++<draw:color draw:name="Resene Paints - Mikado" draw:color="#2D2510"/>
++<draw:color draw:name="Resene Paints - Onion" draw:color="#2F270E"/>
++<draw:color draw:name="Resene Paints - Panda" draw:color="#423921"/>
++<draw:color draw:name="Resene Paints - Lisbon brown" draw:color="#423921"/>
++<draw:color draw:name="Resene Paints - Limed gum" draw:color="#423921"/>
++<draw:color draw:name="Resene Paints - Waiouru" draw:color="#363C0D"/>
++<draw:color draw:name="Resene Paints - Turtle green" draw:color="#2A380B"/>
++<draw:color draw:name="Resene Paints - Mallard" draw:color="#233418"/>
++<draw:color draw:name="Resene Paints - Palm" draw:color="#19330E"/>
++<draw:color draw:name="Resene Paints - Palm leaf" draw:color="#19330E"/>
++<draw:color draw:name="Resene Paints - Seaweed" draw:color="#1B2F11"/>
++<draw:color draw:name="Resene Paints - Forest green" draw:color="#182D09"/>
++<draw:color draw:name="Resene Paints - Olive green" draw:color="#242E16"/>
++<draw:color draw:name="Resene Paints - Pine tree" draw:color="#171F04"/>
++<draw:color draw:name="Resene Paints - Jacko Bean" draw:color="#2E1905"/>
++<draw:color draw:name="Resene Paints - Ash brown" draw:color="#2E1905"/>
++<draw:color draw:name="Resene Paints - Reno sand" draw:color="#A86515"/>
++<draw:color draw:name="Resene Paints - Chelsea gem" draw:color="#9E5302"/>
++<draw:color draw:name="Resene Paints - Pumpkin" draw:color="#B1610B"/>
++<draw:color draw:name="Resene Paints - Mai Tai" draw:color="#B06608"/>
++<draw:color draw:name="Resene Paints - Rich gold" draw:color="#A85307"/>
++<draw:color draw:name="Resene Paints - Saddle brown" draw:color="#583401"/>
++<draw:color draw:name="Resene Paints - Carnaby tan" draw:color="#5C2E01"/>
++<draw:color draw:name="Resene Paints - Cedar wood finish" draw:color="#711A00"/>
++<draw:color draw:name="Resene Paints - Bean" draw:color="#3D0C02"/>
++<draw:color draw:name="Resene Paints - Rebel" draw:color="#3C1206"/>
++<draw:color draw:name="Resene Paints - Rustic red" draw:color="#480404"/>
++<draw:color draw:name="Resene Paints - Maroon" draw:color="#420303"/>
++<draw:color draw:name="Resene Paints - Bulgarian rose" draw:color="#480607"/>
++<draw:color draw:name="Resene Paints - Heath" draw:color="#541012"/>
++<draw:color draw:name="Resene Paints - Persian red" draw:color="#520C17"/>
++<draw:color draw:name="Resene Paints - Mahogany" draw:color="#4E0506"/>
++<draw:color draw:name="Resene Paints - Persian plum" draw:color="#701C1C"/>
++<draw:color draw:name="Resene Paints - Moccaccino" draw:color="#6E1D14"/>
++<draw:color draw:name="Resene Paints - Dark tan" draw:color="#661010"/>
++<draw:color draw:name="Resene Paints - Volcano" draw:color="#651A14"/>
++<draw:color draw:name="Resene Paints - Cherrywood" draw:color="#651A14"/>
++<draw:color draw:name="Resene Paints - Redwood" draw:color="#5D1E0F"/>
++<draw:color draw:name="Resene Paints - Meranti" draw:color="#5D1E0F"/>
++<draw:color draw:name="Resene Paints - Espresso" draw:color="#612718"/>
++<draw:color draw:name="Resene Paints - Dark oak" draw:color="#612718"/>
++<draw:color draw:name="Resene Paints - Van cleef" draw:color="#49170C"/>
++<draw:color draw:name="Resene Paints - Brown pod" draw:color="#401801"/>
++<draw:color draw:name="Resene Paints - Indian tan" draw:color="#4D1E01"/>
++<draw:color draw:name="Resene Paints - Cioccolato" draw:color="#55280C"/>
++<draw:color draw:name="Resene Paints - Jambalaya" draw:color="#5B3013"/>
++<draw:color draw:name="Resene Paints - Brown bramble" draw:color="#592804"/>
++<draw:color draw:name="Resene Paints - Bracken" draw:color="#4A2A04"/>
++<draw:color draw:name="Resene Paints - Morocco brown" draw:color="#441D00"/>
++<draw:color draw:name="Resene Paints - Bronze" draw:color="#3F2109"/>
++<draw:color draw:name="Resene Paints - Slugger" draw:color="#412010"/>
++<draw:color draw:name="Resene Paints - Deep oak" draw:color="#412010"/>
++<draw:color draw:name="Resene Paints - Dark rum" draw:color="#412010"/>
++<draw:color draw:name="Resene Paints - Woodburn" draw:color="#3C2005"/>
++<draw:color draw:name="Resene Paints - Dark ebony" draw:color="#3C2005"/>
++<draw:color draw:name="Resene Paints - Clinker" draw:color="#371D09"/>
++<draw:color draw:name="Resene Paints - Sambuca" draw:color="#3A2010"/>
++<draw:color draw:name="Resene Paints - Cedar" draw:color="#3E1C14"/>
++<draw:color draw:name="Resene Paints - Paco" draw:color="#411F10"/>
++<draw:color draw:name="Resene Paints - Ironbark" draw:color="#411F10"/>
++<draw:color draw:name="Resene Paints - Brown derby" draw:color="#492615"/>
++<draw:color draw:name="Resene Paints - Saddle" draw:color="#4C3024"/>
++<draw:color draw:name="Resene Paints - Quincy" draw:color="#623F2D"/>
++<draw:color draw:name="Resene Paints - Irish coffee" draw:color="#5F3D26"/>
++<draw:color draw:name="Resene Paints - Dark rimu" draw:color="#5F3D26"/>
++<draw:color draw:name="Resene Paints - Old copper" draw:color="#724A2F"/>
++<draw:color draw:name="Resene Paints - Dallas" draw:color="#6E4B26"/>
++<draw:color draw:name="Resene Paints - Pickled bean" draw:color="#6E4826"/>
++<draw:color draw:name="Resene Paints - Spice" draw:color="#6A442E"/>
++<draw:color draw:name="Resene Paints - Spicy mix" draw:color="#885342"/>
++<draw:color draw:name="Resene Paints - Leather" draw:color="#967059"/>
++<draw:color draw:name="Resene Paints - Cape palliser" draw:color="#A26645"/>
++<draw:color draw:name="Resene Paints - Potters clay" draw:color="#8C5738"/>
++<draw:color draw:name="Resene Paints - Bull shot" draw:color="#864D1E"/>
++<draw:color draw:name="Resene Paints - Rope" draw:color="#8E4D1E"/>
++<draw:color draw:name="Resene Paints - Rusty nail" draw:color="#86560A"/>
++<draw:color draw:name="Resene Paints - Natural" draw:color="#86560A"/>
++<draw:color draw:name="Resene Paints - Afghan tan" draw:color="#86560A"/>
++<draw:color draw:name="Resene Paints - Antique brass" draw:color="#704A07"/>
++<draw:color draw:name="Resene Paints - Cafe royale" draw:color="#6F440C"/>
++<draw:color draw:name="Resene Paints - Walnut" draw:color="#773F1A"/>
++<draw:color draw:name="Resene Paints - Cigar" draw:color="#773F1A"/>
++<draw:color draw:name="Resene Paints - Nutmeg wood finish" draw:color="#683600"/>
++<draw:color draw:name="Resene Paints - Cinnamon" draw:color="#7B3F00"/>
++<draw:color draw:name="Resene Paints - Peru tan" draw:color="#7F3A02"/>
++<draw:color draw:name="Resene Paints - Red beech" draw:color="#7B3801"/>
++<draw:color draw:name="Resene Paints - New amber" draw:color="#7B3801"/>
++<draw:color draw:name="Resene Paints - Copper canyon" draw:color="#7E3A15"/>
++<draw:color draw:name="Resene Paints - Pueblo" draw:color="#7D2C14"/>
++<draw:color draw:name="Resene Paints - Oregon" draw:color="#9B4703"/>
++<draw:color draw:name="Resene Paints - Alert tan" draw:color="#9B4703"/>
++<draw:color draw:name="Resene Paints - Korma" draw:color="#8F4B0E"/>
++<draw:color draw:name="Resene Paints - Hawaiian tan" draw:color="#9D5616"/>
++<draw:color draw:name="Resene Paints - Desert" draw:color="#AE6020"/>
++<draw:color draw:name="Resene Paints - Fiery orange" draw:color="#B35213"/>
++<draw:color draw:name="Resene Paints - Paarl" draw:color="#A65529"/>
++<draw:color draw:name="Resene Paints - Cumin" draw:color="#924321"/>
++<draw:color draw:name="Resene Paints - Mule fawn" draw:color="#8C472F"/>
++<draw:color draw:name="Resene Paints - Matrix" draw:color="#B05D54"/>
++<draw:color draw:name="Resene Paints - Copper rust" draw:color="#944747"/>
++<draw:color draw:name="Resene Paints - Tosca" draw:color="#8D3F3F"/>
++<draw:color draw:name="Resene Paints - Lotus" draw:color="#863C3C"/>
++<draw:color draw:name="Resene Paints - Sanguine brown" draw:color="#8D3D38"/>
++<draw:color draw:name="Resene Paints - Red robin" draw:color="#80341F"/>
++<draw:color draw:name="Resene Paints - El" draw:color="#8F3E33"/>
++<draw:color draw:name="Resene Paints - El Salva" draw:color="#8F3E33"/>
++<draw:color draw:name="Resene Paints - Nutmeg" draw:color="#81422C"/>
++<draw:color draw:name="Resene Paints - Ironstone" draw:color="#86483C"/>
++<draw:color draw:name="Resene Paints - Teak wood finish" draw:color="#6B2A14"/>
++<draw:color draw:name="Resene Paints - Hairy heath" draw:color="#6B2A14"/>
++<draw:color draw:name="Resene Paints - Peanut" draw:color="#782F16"/>
++<draw:color draw:name="Resene Paints - Metallic copper" draw:color="#71291D"/>
++<draw:color draw:name="Resene Paints - Mocha" draw:color="#782D19"/>
++<draw:color draw:name="Resene Paints - Crown of thorns" draw:color="#771F1F"/>
++<draw:color draw:name="Resene Paints - Merlot" draw:color="#831923"/>
++<draw:color draw:name="Resene Paints - Old brick" draw:color="#901E1E"/>
++<draw:color draw:name="Resene Paints - Pohutukawa" draw:color="#8F021C"/>
++<draw:color draw:name="Resene Paints - Western red" draw:color="#8B0723"/>
++<draw:color draw:name="Resene Paints - Monarch" draw:color="#8B0723"/>
++<draw:color draw:name="Resene Paints - Hot chile" draw:color="#8B0723"/>
++<draw:color draw:name="Resene Paints - Paprika" draw:color="#8D0226"/>
++<draw:color draw:name="Resene Paints - Stiletto" draw:color="#9C3336"/>
++<draw:color draw:name="Resene Paints - Apple blossom" draw:color="#AF4D43"/>
++<draw:color draw:name="Resene Paints - Crail" draw:color="#B95140"/>
++<draw:color draw:name="Resene Paints - Well read" draw:color="#B43332"/>
++<draw:color draw:name="Resene Paints - Cognac" draw:color="#9F381D"/>
++<draw:color draw:name="Resene Paints - Roof terracotta" draw:color="#A62F20"/>
++<draw:color draw:name="Resene Paints - Mojo" draw:color="#C04737"/>
++<draw:color draw:name="Resene Paints - Oiled cedar" draw:color="#7C1C05"/>
++<draw:color draw:name="Resene Paints - Kenyan copper" draw:color="#7C1C05"/>
++<draw:color draw:name="Resene Paints - Prairie sand" draw:color="#9A3820"/>
++<draw:color draw:name="Resene Paints - Tabasco" draw:color="#A02712"/>
++<draw:color draw:name="Resene Paints - Embers" draw:color="#A02712"/>
++<draw:color draw:name="Resene Paints - Crab apple" draw:color="#A02712"/>
++<draw:color draw:name="Resene Paints - Tamarillo" draw:color="#991613"/>
++<draw:color draw:name="Resene Paints - Mexican red" draw:color="#A72525"/>
++<draw:color draw:name="Resene Paints - Red devil" draw:color="#860111"/>
++<draw:color draw:name="Resene Paints - Red berry" draw:color="#8E0000"/>
++<draw:color draw:name="Resene Paints - Totem pole" draw:color="#991B07"/>
++<draw:color draw:name="Resene Paints - Lusty" draw:color="#991B07"/>
++<draw:color draw:name="Resene Paints - Sangria" draw:color="#92000A"/>
++<draw:color draw:name="Resene Paints - Scarlett" draw:color="#950015"/>
++<draw:color draw:name="Resene Paints - Bright red" draw:color="#B10000"/>
++<draw:color draw:name="Resene Paints - Monza" draw:color="#C7031E"/>
++<draw:color draw:name="Resene Paints - Flame red" draw:color="#C7031E"/>
++<draw:color draw:name="Resene Paints - Milano red" draw:color="#B81104"/>
++<draw:color draw:name="Resene Paints - Thunderbird" draw:color="#C02B18"/>
++<draw:color draw:name="Resene Paints - Tall poppy" draw:color="#B32D29"/>
++<draw:color draw:name="Resene Paints - Shiraz" draw:color="#B20931"/>
++<draw:color draw:name="Resene Paints - Venetian red" draw:color="#72010F"/>
++<draw:color draw:name="Resene Paints - Lonestar" draw:color="#6D0101"/>
++<draw:color draw:name="Resene Paints - Rosewood" draw:color="#65000B"/>
++<draw:color draw:name="Resene Paints - Burnt crimson" draw:color="#65000B"/>
++<draw:color draw:name="Resene Paints - Red oxide" draw:color="#6E0902"/>
++<draw:color draw:name="Resene Paints - Burgundy" draw:color="#770F05"/>
++<draw:color draw:name="Resene Paints - Jazz" draw:color="#780109"/>
++<draw:color draw:name="Resene Paints - Japanese maple" draw:color="#780109"/>
++<draw:color draw:name="Resene Paints - Fire" draw:color="#AA4203"/>
++<draw:color draw:name="Resene Paints - Vesuvius" draw:color="#B14A0B"/>
++<draw:color draw:name="Resene Paints - Orange roughy" draw:color="#C45719"/>
++<draw:color draw:name="Resene Paints - Rose of sharon" draw:color="#BF5500"/>
++<draw:color draw:name="Resene Paints - Rock spray" draw:color="#BA450C"/>
++<draw:color draw:name="Resene Paints - Tia maria" draw:color="#C1440E"/>
++<draw:color draw:name="Resene Paints - Grenadier" draw:color="#D54600"/>
++<draw:color draw:name="Resene Paints - Guardsman red" draw:color="#BA0301"/>
++<draw:color draw:name="Resene Paints - Trinidad" draw:color="#E64E03"/>
++<draw:color draw:name="Resene Paints - Flamingo" draw:color="#F2552A"/>
++<draw:color draw:name="Resene Paints - Tangerine" draw:color="#E96E00"/>
++<draw:color draw:name="Resene Paints - Clementine" draw:color="#E96E00"/>
++<draw:color draw:name="Resene Paints - Christine" draw:color="#E7730A"/>
++<draw:color draw:name="Resene Paints - RedStage" draw:color="#D05F04"/>
++<draw:color draw:name="Resene Paints - Smoke tree" draw:color="#DA6304"/>
++<draw:color draw:name="Resene Paints - Bamboo" draw:color="#DA6304"/>
++<draw:color draw:name="Resene Paints - Crusta" draw:color="#FD7B33"/>
++<draw:color draw:name="Resene Paints - Ecstasy" draw:color="#FA7814"/>
++<draw:color draw:name="Resene Paints - Tango" draw:color="#ED7A1C"/>
++<draw:color draw:name="Resene Paints - Flamenco" draw:color="#FF7D07"/>
++<draw:color draw:name="Resene Paints - Sorbus" draw:color="#FD7C07"/>
++<draw:color draw:name="Resene Paints - Chilean fire" draw:color="#F77703"/>
++<draw:color draw:name="Resene Paints - Piper" draw:color="#C96323"/>
++<draw:color draw:name="Resene Paints - Indochine" draw:color="#C26B03"/>
++<draw:color draw:name="Resene Paints - Meteor" draw:color="#D07D12"/>
++<draw:color draw:name="Resene Paints - Brandy punch" draw:color="#CD8429"/>
++<draw:color draw:name="Resene Paints - Bourbon" draw:color="#BA6F1E"/>
++<draw:color draw:name="Resene Paints - Mandalay" draw:color="#AD781B"/>
++<draw:color draw:name="Resene Paints - Hot toddy" draw:color="#B38007"/>
++<draw:color draw:name="Resene Paints - Pirate gold" draw:color="#BA7F03"/>
++<draw:color draw:name="Resene Paints - Fuel yellow" draw:color="#ECA927"/>
++<draw:color draw:name="Resene Paints - Pizza" draw:color="#C99415"/>
++<draw:color draw:name="Resene Paints - Geebung" draw:color="#D18F1B"/>
++<draw:color draw:name="Resene Paints - Dixie" draw:color="#E29418"/>
++<draw:color draw:name="Resene Paints - Fire bush" draw:color="#E89928"/>
++<draw:color draw:name="Resene Paints - Sea buckthorn" draw:color="#FBA129"/>
++<draw:color draw:name="Resene Paints - Sunshade" draw:color="#FF9E2C"/>
++<draw:color draw:name="Resene Paints - Golden bell" draw:color="#E28913"/>
++<draw:color draw:name="Resene Paints - Zest" draw:color="#E5841B"/>
++<draw:color draw:name="Resene Paints - Jaffa" draw:color="#EF863F"/>
++<draw:color draw:name="Resene Paints - Tahiti gold" draw:color="#E97C07"/>
++<draw:color draw:name="Resene Paints - Pizazz" draw:color="#FF9000"/>
++<draw:color draw:name="Resene Paints - West side" draw:color="#FF910F"/>
++<draw:color draw:name="Resene Paints - Tree poppy" draw:color="#FC9C1D"/>
++<draw:color draw:name="Resene Paints - California" draw:color="#FE9D04"/>
++<draw:color draw:name="Resene Paints - Gold drop" draw:color="#F18200"/>
++<draw:color draw:name="Resene Paints - Texas rose" draw:color="#FFB555"/>
++<draw:color draw:name="Resene Paints - Koromiko" draw:color="#FFBD5F"/>
++<draw:color draw:name="Resene Paints - Casablanca" draw:color="#F8B853"/>
++<draw:color draw:name="Resene Paints - Saffron" draw:color="#F9BF58"/>
++<draw:color draw:name="Resene Paints - Buttercup" draw:color="#F3AD16"/>
++<draw:color draw:name="Resene Paints - Yellow sea" draw:color="#FEA904"/>
++<draw:color draw:name="Resene Paints - Sun" draw:color="#FBAC13"/>
++<draw:color draw:name="Resene Paints - My sin" draw:color="#FFB31F"/>
++<draw:color draw:name="Resene Paints - Romantic" draw:color="#FFD2B7"/>
++<draw:color draw:name="Resene Paints - Mandys pink" draw:color="#F2C3B2"/>
++<draw:color draw:name="Resene Paints - Wax flower" draw:color="#FFC0A8"/>
++<draw:color draw:name="Resene Paints - Cashmere" draw:color="#E6BEA5"/>
++<draw:color draw:name="Resene Paints - Tacao" draw:color="#EDB381"/>
++<draw:color draw:name="Resene Paints - Chardonnay" draw:color="#FFCD8C"/>
++<draw:color draw:name="Resene Paints - Rajah" draw:color="#F7B668"/>
++<draw:color draw:name="Resene Paints - Hit pink" draw:color="#FFAB81"/>
++<draw:color draw:name="Resene Paints - Cornflower" draw:color="#FFB0AC"/>
++<draw:color draw:name="Resene Paints - Rose bud" draw:color="#FBB2A3"/>
++<draw:color draw:name="Resene Paints - Sweet pink" draw:color="#FD9FA2"/>
++<draw:color draw:name="Resene Paints - Mona Lisa" draw:color="#FFA194"/>
++<draw:color draw:name="Resene Paints - Tonys pink" draw:color="#E79F8C"/>
++<draw:color draw:name="Resene Paints - Petite orchid" draw:color="#DB9690"/>
++<draw:color draw:name="Resene Paints - My pink" draw:color="#D69188"/>
++<draw:color draw:name="Resene Paints - New York pink" draw:color="#D7837F"/>
++<draw:color draw:name="Resene Paints - Apricot" draw:color="#EB9373"/>
++<draw:color draw:name="Resene Paints - Whiskey sour" draw:color="#DB995E"/>
++<draw:color draw:name="Resene Paints - Di Serria" draw:color="#DB995E"/>
++<draw:color draw:name="Resene Paints - Porsche" draw:color="#EAAE69"/>
++<draw:color draw:name="Resene Paints - Twine" draw:color="#C2955D"/>
++<draw:color draw:name="Resene Paints - Burning sand" draw:color="#D99376"/>
++<draw:color draw:name="Resene Paints - Whiskey" draw:color="#D59A6F"/>
++<draw:color draw:name="Resene Paints - Toast" draw:color="#9A6E61"/>
++<draw:color draw:name="Resene Paints - Tuscany" draw:color="#BD5E2E"/>
++<draw:color draw:name="Resene Paints - Santa Fe" draw:color="#B16D52"/>
++<draw:color draw:name="Resene Paints - Japonica" draw:color="#D87C63"/>
++<draw:color draw:name="Resene Paints - Contessa" draw:color="#C6726B"/>
++<draw:color draw:name="Resene Paints - Roman" draw:color="#DE6360"/>
++<draw:color draw:name="Resene Paints - Sunglo" draw:color="#E16865"/>
++<draw:color draw:name="Resene Paints - Froly" draw:color="#F57584"/>
++<draw:color draw:name="Resene Paints - Geraldine" draw:color="#FB8989"/>
++<draw:color draw:name="Resene Paints - Red damask" draw:color="#DA6A41"/>
++<draw:color draw:name="Resene Paints - Flame pea" draw:color="#DA5B38"/>
++<draw:color draw:name="Resene Paints - Sunset" draw:color="#DC4333"/>
++<draw:color draw:name="Resene Paints - Punch" draw:color="#DC4333"/>
++<draw:color draw:name="Resene Paints - Valencia" draw:color="#D84437"/>
++<draw:color draw:name="Resene Paints - Persimmon" draw:color="#FF6B53"/>
++<draw:color draw:name="Resene Paints - Mandy" draw:color="#E25465"/>
++<draw:color draw:name="Resene Paints - Cabaret" draw:color="#D94972"/>
++<draw:color draw:name="Resene Paints - Hopbush" draw:color="#D06DA1"/>
++<draw:color draw:name="Resene Paints - Carissma" draw:color="#EA88A8"/>
++<draw:color draw:name="Resene Paints - Deep blush" draw:color="#E47698"/>
++<draw:color draw:name="Resene Paints - Charm" draw:color="#D47494"/>
++<draw:color draw:name="Resene Paints - Coral tree" draw:color="#A86B6B"/>
++<draw:color draw:name="Resene Paints - Turkish rose" draw:color="#B57281"/>
++<draw:color draw:name="Resene Paints - Bouquet" draw:color="#AE809E"/>
++<draw:color draw:name="Resene Paints - Bazaar" draw:color="#98777B"/>
++<draw:color draw:name="Resene Paints - Brandy rose" draw:color="#BB8983"/>
++<draw:color draw:name="Resene Paints - Pharlap" draw:color="#A3807B"/>
++<draw:color draw:name="Resene Paints - Quicksand" draw:color="#BD978E"/>
++<draw:color draw:name="Resene Paints - Oriental pink" draw:color="#C69191"/>
++<draw:color draw:name="Resene Paints - Careys pink" draw:color="#D29EAA"/>
++<draw:color draw:name="Resene Paints - Eunry" draw:color="#CFA39D"/>
++<draw:color draw:name="Resene Paints - Lily" draw:color="#C8AABF"/>
++<draw:color draw:name="Resene Paints - London hue" draw:color="#BEA6C3"/>
++<draw:color draw:name="Resene Paints - Amethyst smoke" draw:color="#A397B4"/>
++<draw:color draw:name="Resene Paints - Shocking" draw:color="#E292C0"/>
++<draw:color draw:name="Resene Paints - Kobi" draw:color="#E79FC4"/>
++<draw:color draw:name="Resene Paints - Can can" draw:color="#D591A4"/>
++<draw:color draw:name="Resene Paints - Viola" draw:color="#CB8FA9"/>
++<draw:color draw:name="Resene Paints - Sea pink" draw:color="#ED989E"/>
++<draw:color draw:name="Resene Paints - Wewak" draw:color="#F19BAB"/>
++<draw:color draw:name="Resene Paints - Sundown" draw:color="#FFB1B3"/>
++<draw:color draw:name="Resene Paints - Cupid" draw:color="#FBBEDA"/>
++<draw:color draw:name="Resene Paints - Illusion" draw:color="#F6A4C9"/>
++<draw:color draw:name="Resene Paints - French lilac" draw:color="#ECC7EE"/>
++<draw:color draw:name="Resene Paints - Perfume" draw:color="#D0BEF8"/>
++<draw:color draw:name="Resene Paints - Fog" draw:color="#D7D0FF"/>
++<draw:color draw:name="Resene Paints - Moon raker" draw:color="#D6CEF6"/>
++<draw:color draw:name="Resene Paints - Prelude" draw:color="#D0C0E5"/>
++<draw:color draw:name="Resene Paints - Maverick" draw:color="#D8C2D5"/>
++<draw:color draw:name="Resene Paints - Pink flare" draw:color="#E1C0C8"/>
++<draw:color draw:name="Resene Paints - Blossom" draw:color="#DCB4BC"/>
++<draw:color draw:name="Resene Paints - Clam shell" draw:color="#D4B6AF"/>
++<draw:color draw:name="Resene Paints - Rose" draw:color="#E7BCB4"/>
++<draw:color draw:name="Resene Paints - Shilo" draw:color="#E8B9B3"/>
++<draw:color draw:name="Resene Paints - Cavern pink" draw:color="#E3BEBE"/>
++<draw:color draw:name="Resene Paints - Chantilly" draw:color="#F8C3DF"/>
++<draw:color draw:name="Resene Paints - Azalea" draw:color="#F7C8DA"/>
++<draw:color draw:name="Resene Paints - Classic rose" draw:color="#FBCCE7"/>
++<draw:color draw:name="Resene Paints - Your pink" draw:color="#FFC3C0"/>
++<draw:color draw:name="Resene Paints - Beauty bush" draw:color="#EEC1BE"/>
++<draw:color draw:name="Resene Paints - Melanie" draw:color="#E4C2D5"/>
++<draw:color draw:name="Resene Paints - Twilight" draw:color="#E4CFDE"/>
++<draw:color draw:name="Resene Paints - Cherub" draw:color="#F8D9E9"/>
++<draw:color draw:name="Resene Paints - Pink lace" draw:color="#FFDDF4"/>
++<draw:color draw:name="Resene Paints - Pale rose" draw:color="#FFE1F2"/>
++<draw:color draw:name="Resene Paints - Carousel pink" draw:color="#F9E0ED"/>
++<draw:color draw:name="Resene Paints - We peep" draw:color="#F7DBE6"/>
++<draw:color draw:name="Resene Paints - Vanilla ice" draw:color="#F3D9DF"/>
++<draw:color draw:name="Resene Paints - Peach schnapps" draw:color="#FFDCD6"/>
++<draw:color draw:name="Resene Paints - Coral candy" draw:color="#FFDCD6"/>
++<draw:color draw:name="Resene Paints - Pippin" draw:color="#FFE1DF"/>
++<draw:color draw:name="Resene Paints - Watusi" draw:color="#FFDDCF"/>
++<draw:color draw:name="Resene Paints - Cosmos" draw:color="#FFD8D9"/>
++<draw:color draw:name="Resene Paints - Melrose" draw:color="#C7C1FF"/>
++<draw:color draw:name="Resene Paints - Lavender" draw:color="#A899E6"/>
++<draw:color draw:name="Resene Paints - East" draw:color="#AC91CE"/>
++<draw:color draw:name="Resene Paints - East side" draw:color="#AC91CE"/>
++<draw:color draw:name="Resene Paints - Biloba flower" draw:color="#B2A1EA"/>
++<draw:color draw:name="Resene Paints - Cold purple" draw:color="#ABA0D9"/>
++<draw:color draw:name="Resene Paints - Portage" draw:color="#8B9FEE"/>
++<draw:color draw:name="Resene Paints - Chetwode blue" draw:color="#8581D9"/>
++<draw:color draw:name="Resene Paints - Wisteria" draw:color="#9771B5"/>
++<draw:color draw:name="Resene Paints - Ce soir" draw:color="#9771B5"/>
++<draw:color draw:name="Resene Paints - Lilac bush" draw:color="#9874D3"/>
++<draw:color draw:name="Resene Paints - True V" draw:color="#8A73D6"/>
++<draw:color draw:name="Resene Paints - Moody blue" draw:color="#7F76D3"/>
++<draw:color draw:name="Resene Paints - Studio" draw:color="#714AB2"/>
++<draw:color draw:name="Resene Paints - Seance" draw:color="#731E8F"/>
++<draw:color draw:name="Resene Paints - Eminence" draw:color="#6C3082"/>
++<draw:color draw:name="Resene Paints - Royal heath" draw:color="#AB3472"/>
++<draw:color draw:name="Resene Paints - Cardinal" draw:color="#8C5	E"/>
++<draw:color draw:name="Resene Paints - Flirt" draw:color="#A20	D"/>
++<draw:color draw:name="Resene Paints - Lipstick" draw:color="#AB5	3"/>
++<draw:color draw:name="Resene Paints - Hibiscus" draw:color="#B6316C"/>
++<draw:color draw:name="Resene Paints - Cranberry" draw:color="#B6316C"/>
++<draw:color draw:name="Resene Paints - Night shadz" draw:color="#AA375A"/>
++<draw:color draw:name="Resene Paints - Blush" draw:color="#B44668"/>
++<draw:color draw:name="Resene Paints - Rouge" draw:color="#A23B6C"/>
++<draw:color draw:name="Resene Paints - Vin rouge" draw:color="#983D61"/>
++<draw:color draw:name="Resene Paints - Hippie pink" draw:color="#AE4560"/>
++<draw:color draw:name="Resene Paints - Cadillac" draw:color="#B04C6A"/>
++<draw:color draw:name="Resene Paints - Claret" draw:color="#7F1734"/>
++<draw:color draw:name="Resene Paints - Rose bud cherry" draw:color="#80B	7"/>
++<draw:color draw:name="Resene Paints - Disco" draw:color="#871550"/>
++<draw:color draw:name="Resene Paints - Camelot" draw:color="#893456"/>
++<draw:color draw:name="Resene Paints - Strike master" draw:color="#956387"/>
++<draw:color draw:name="Resene Paints - Trendy pink" draw:color="#8C6495"/>
++<draw:color draw:name="Resene Paints - Cannon pink" draw:color="#894367"/>
++<draw:color draw:name="Resene Paints - Finn" draw:color="#692D54"/>
++<draw:color draw:name="Resene Paints - Cosmic" draw:color="#76395D"/>
++<draw:color draw:name="Resene Paints - Tawny port" draw:color="#692545"/>
++<draw:color draw:name="Resene Paints - Solid pink" draw:color="#893843"/>
++<draw:color draw:name="Resene Paints - Tapestry" draw:color="#B05E81"/>
++<draw:color draw:name="Resene Paints - Au chico" draw:color="#97605D"/>
++<draw:color draw:name="Resene Paints - Falcon" draw:color="#7F626D"/>
++<draw:color draw:name="Resene Paints - Opium" draw:color="#8E6F70"/>
++<draw:color draw:name="Resene Paints - Russett" draw:color="#755A57"/>
++<draw:color draw:name="Resene Paints - Ferra" draw:color="#704F50"/>
++<draw:color draw:name="Resene Paints - Buccaneer" draw:color="#622F30"/>
++<draw:color draw:name="Resene Paints - Congo brown" draw:color="#593737"/>
++<draw:color draw:name="Resene Paints - Voodoo" draw:color="#533455"/>
++<draw:color draw:name="Resene Paints - Mulled wine" draw:color="#4E4562"/>
++<draw:color draw:name="Resene Paints - Rum" draw:color="#796989"/>
++<draw:color draw:name="Resene Paints - Kimberly" draw:color="#736C9F"/>
++<draw:color draw:name="Resene Paints - Deluge" draw:color="#7563A8"/>
++<draw:color draw:name="Resene Paints - Scampi" draw:color="#675FA6"/>
++<draw:color draw:name="Resene Paints - Fun blue" draw:color="#1959A8"/>
++<draw:color draw:name="Resene Paints - Mariner" draw:color="#286ACD"/>
++<draw:color draw:name="Resene Paints - Blue marguerite" draw:color="#7666C6"/>
++<draw:color draw:name="Resene Paints - Fuchsia" draw:color="#7A58C1"/>
++<draw:color draw:name="Resene Paints - Butterfly bush" draw:color="#624E9A"/>
++<draw:color draw:name="Resene Paints - Gigas" draw:color="#523C94"/>
++<draw:color draw:name="Resene Paints - Affair" draw:color="#714693"/>
++<draw:color draw:name="Resene Paints - Victoria" draw:color="#534491"/>
++<draw:color draw:name="Resene Paints - Paints  minsk" draw:color="#3F307F"/>
++<draw:color draw:name="Resene Paints - Governor bay" draw:color="#2F3CB3"/>
++<draw:color draw:name="Resene Paints - Tory blue" draw:color="#1450AA"/>
++<draw:color draw:name="Resene Paints - Endeavour" draw:color="#0056A7"/>
++<draw:color draw:name="Resene Paints - Bondi blue" draw:color="#02478E"/>
++<draw:color draw:name="Resene Paints - Astronaut" draw:color="#283A77"/>
++<draw:color draw:name="Resene Paints - BayOf many" draw:color="#273A81"/>
++<draw:color draw:name="Resene Paints - Sapphire" draw:color="#2F519E"/>
++<draw:color draw:name="Resene Paints - StTropaz" draw:color="#2D569B"/>
++<draw:color draw:name="Resene Paints - Chambray" draw:color="#354E8C"/>
++<draw:color draw:name="Resene Paints - EastBay" draw:color="#414C7D"/>
++<draw:color draw:name="Resene Paints - Biscay" draw:color="#1B3162"/>
++<draw:color draw:name="Resene Paints - Valhalla" draw:color="#2B194F"/>
++<draw:color draw:name="Resene Paints - Port gore" draw:color="#251F4F"/>
++<draw:color draw:name="Resene Paints - Bunting" draw:color="#151F4C"/>
++<draw:color draw:name="Resene Paints - Madison" draw:color="#09255D"/>
++<draw:color draw:name="Resene Paints - Licorice" draw:color="#092256"/>
++<draw:color draw:name="Resene Paints - Downriver" draw:color="#092256"/>
++<draw:color draw:name="Resene Paints - Cobalt" draw:color="#062A78"/>
++<draw:color draw:name="Resene Paints - Catalina blue" draw:color="#062A78"/>
++<draw:color draw:name="Resene Paints - Capri" draw:color="#062A78"/>
++<draw:color draw:name="Resene Paints - Resolution blue" draw:color="#002387"/>
++<draw:color draw:name="Resene Paints - Jacksons purple" draw:color="#20208D"/>
++<draw:color draw:name="Resene Paints - Torea bay" draw:color="#0F2D9E"/>
++<draw:color draw:name="Resene Paints - Meteorite" draw:color="#3C1F76"/>
++<draw:color draw:name="Resene Paints - Jacarta" draw:color="#3A2A6A"/>
++<draw:color draw:name="Resene Paints - Lucky point" draw:color="#1A1A68"/>
++<draw:color draw:name="Resene Paints - Grape" draw:color="#381A51"/>
++<draw:color draw:name="Resene Paints - Jagger" draw:color="#350E57"/>
++<draw:color draw:name="Resene Paints - Scarlet gum" draw:color="#431560"/>
++<draw:color draw:name="Resene Paints - Cherry pie" draw:color="#2A0359"/>
++<draw:color draw:name="Resene Paints - Violent" draw:color="#290C5E"/>
++<draw:color draw:name="Resene Paints - Violet" draw:color="#240A40"/>
++<draw:color draw:name="Resene Paints - Tolopea" draw:color="#1B0245"/>
++<draw:color draw:name="Resene Paints - Arapawa" draw:color="#110C6C"/>
++<draw:color draw:name="Resene Paints - Gulf blue" draw:color="#051657"/>
++<draw:color draw:name="Resene Paints - Cove grey" draw:color="#051657"/>
++<draw:color draw:name="Resene Paints - Outer space" draw:color="#051040"/>
++<draw:color draw:name="Resene Paints - Deep cove" draw:color="#051040"/>
++<draw:color draw:name="Resene Paints - Tangaroa" draw:color="#03163C"/>
++<draw:color draw:name="Resene Paints - Stratos" draw:color="#000741"/>
++<draw:color draw:name="Resene Paints - Midnight Express" draw:color="#000741"/>
++<draw:color draw:name="Resene Paints - Black rock" draw:color="#0D0332"/>
++<draw:color draw:name="Resene Paints - Revolver" draw:color="#2C1632"/>
++<draw:color draw:name="Resene Paints - Haiti" draw:color="#1B1035"/>
++<draw:color draw:name="Resene Paints - Martinique" draw:color="#363050"/>
++<draw:color draw:name="Resene Paints - Bleached cedar" draw:color="#2C2133"/>
++<draw:color draw:name="Resene Paints - Montana" draw:color="#291E30"/>
++<draw:color draw:name="Resene Paints - Woody brown" draw:color="#483131"/>
++<draw:color draw:name="Resene Paints - Livid brown" draw:color="#4D282E"/>
++<draw:color draw:name="Resene Paints - Cowboy" draw:color="#4D282D"/>
++<draw:color draw:name="Resene Paints - Cocoa bean" draw:color="#481C1C"/>
++<draw:color draw:name="Resene Paints - Crater brown" draw:color="#462425"/>
++<draw:color draw:name="Resene Paints - Jon" draw:color="#3B1F1F"/>
++<draw:color draw:name="Resene Paints - Eclipse" draw:color="#311C17"/>
++<draw:color draw:name="Resene Paints - Tamarind" draw:color="#341515"/>
++<draw:color draw:name="Resene Paints - Jarrah" draw:color="#341515"/>
++<draw:color draw:name="Resene Paints - Havana" draw:color="#341515"/>
++<draw:color draw:name="Resene Paints - Marlin" draw:color="#2A140E"/>
++<draw:color draw:name="Resene Paints - Cuban tan" draw:color="#2A140E"/>
++<draw:color draw:name="Resene Paints - Coffee" draw:color="#2A140E"/>
++<draw:color draw:name="Resene Paints - Coffee bean" draw:color="#2A140E"/>
++<draw:color draw:name="Resene Paints - Kilamanjaro" draw:color="#240C02"/>
++<draw:color draw:name="Resene Paints - Sepia" draw:color="#2B0202"/>
++<draw:color draw:name="Resene Paints - Aubergine" draw:color="#3B0910"/>
++<draw:color draw:name="Resene Paints - Temptress" draw:color="#3B000B"/>
++<draw:color draw:name="Resene Paints - Chocolate" draw:color="#370202"/>
++<draw:color draw:name="Resene Paints - Toledo" draw:color="#3A0020"/>
++<draw:color draw:name="Resene Paints - Castro" draw:color="#52001F"/>
++<draw:color draw:name="Resene Paints - Cab sav" draw:color="#4D0A18"/>
++<draw:color draw:name="Resene Paints - Wine berry" draw:color="#591D35"/>
++<draw:color draw:name="Resene Paints - Blackberry" draw:color="#4D0135"/>
++<draw:color draw:name="Resene Paints - Bossanova" draw:color="#4E2A5A"/>
++<draw:color draw:name="Resene Paints - Loulou" draw:color="#460B41"/>
++<draw:color draw:name="Resene Paints - Mardi gras" draw:color="#350036"/>
++<draw:color draw:name="Resene Paints - Barossa" draw:color="#44012D"/>
++<draw:color draw:name="Resene Paints - Melanzane" draw:color="#300529"/>
++<draw:color draw:name="Resene Paints - Jacaranda" draw:color="#2E0329"/>
++<draw:color draw:name="Resene Paints - Valentino" draw:color="#350E42"/>
++<draw:color draw:name="Resene Paints - Ribbon" draw:color="#660045"/>
++<draw:color draw:name="Resene Paints - Pompadour" draw:color="#660045"/>
++<draw:color draw:name="Resene Paints - Nightclub" draw:color="#660045"/>
++<draw:color draw:name="Resene Paints - Mulberry" draw:color="#5C0536"/>
++<draw:color draw:name="Resene Paints - Siren" draw:color="#7A013A"/>
++<draw:color draw:name="Resene Paints - Black rose" draw:color="#67032D"/>
++<draw:color draw:name="Resene Paints - Bordeaux" draw:color="#5C0120"/>
++<draw:color draw:name="Resene Paints - Plum" draw:color="#410356"/>
++<draw:color draw:name="Resene Paints - Hot purple" draw:color="#480656"/>
++<draw:color draw:name="Resene Paints - Clairvoyant" draw:color="#480656"/>
++<draw:color draw:name="Resene Paints - Honey flower" draw:color="#4F1C70"/>
++<draw:color draw:name="Resene Paints - Blue bell" draw:color="#220878"/>
++<draw:color draw:name="Resene Paints - Deep koamaru" draw:color="#1B127B"/>
++<draw:color draw:name="Resene Paints - Christalle" draw:color="#33036B"/>
++<draw:color draw:name="Resene Paints - Blue diamond" draw:color="#380474"/>
++<draw:color draw:name="Resene Paints - Windsor" draw:color="#3C0878"/>
++<draw:color draw:name="Resene Paints - Kingfisher daisy" draw:color="#3E0480"/>
++<draw:color draw:name="Resene Paints - Blue gem" draw:color="#2C0E8C"/>
++<draw:color draw:name="Resene Paints - Paua" draw:color="#260368"/>
++<draw:color draw:name="Resene Paints - Paris M" draw:color="#26056A"/>
++
++<!-- Colors of original OpenOffice.org located in gallery.soc file -->
++<draw:color draw:name="0-0-0-0" draw:color="#ffffff"/>
++<draw:color draw:name="0-0-0-10" draw:color="#e5e5e5"/>
++<draw:color draw:name="0-0-0-100" draw:color="#000000"/>
++<draw:color draw:name="0-0-0-20" draw:color="#cccccc"/>
++<draw:color draw:name="0-0-0-30" draw:color="#b2b2b2"/>
++<draw:color draw:name="0-0-0-40" draw:color="#999999"/>
++<draw:color draw:name="0-0-0-50" draw:color="#7f7f7f"/>
++<draw:color draw:name="0-0-0-60" draw:color="#666666"/>
++<draw:color draw:name="0-0-0-70" draw:color="#4c4c4c"/>
++<draw:color draw:name="0-0-0-80" draw:color="#333333"/>
++<draw:color draw:name="0-0-56-0" draw:color="#ffff70"/>
++<draw:color draw:name="0-100-65-0" draw:color="#ff0059"/>
++<draw:color draw:name="0-13-77-0" draw:color="#ffde3b"/>
++<draw:color draw:name="0-15-50-0" draw:color="#ffd97f"/>
++<draw:color draw:name="0-19-53-11" draw:color="#e3b35c"/>
++<draw:color draw:name="0-20-0-0" draw:color="#ffccff"/>
++<draw:color draw:name="0-20-100-0" draw:color="#ffcc00"/>
++<draw:color draw:name="0-3-7-0" draw:color="#fff7ed"/>
++<draw:color draw:name="0-3-85-0" draw:color="#fff726"/>
++<draw:color draw:name="0-31-84-0" draw:color="#ffb029"/>
++<draw:color draw:name="0-35-76-5" draw:color="#f29930"/>
++<draw:color draw:name="0-38-100-0" draw:color="#ff9e00"/>
++<draw:color draw:name="0-38-46-49" draw:color="#82210d"/>
++<draw:color draw:name="0-40-0-0" draw:color="#ff99ff"/>
++<draw:color draw:name="0-50-0-0" draw:color="#ff7fff"/>
++<draw:color draw:name="0-50-100-0" draw:color="#ff7f00"/>
++<draw:color draw:name="0-65-27-0" draw:color="#ff59ba"/>
++<draw:color draw:name="0-66-0-0" draw:color="#ff57ff"/>
++<draw:color draw:name="0-7-13-0" draw:color="#ffedde"/>
++<draw:color draw:name="0-9-28-3" draw:color="#f7e0b0"/>
++<draw:color draw:name="100-90-10-0" draw:color="#0019fc"/>
++<draw:color draw:name="11-5-0-0" draw:color="#e3f2ff"/>
++<draw:color draw:name="23-10-0-0" draw:color="#c4e5ff"/>
++<draw:color draw:name="23-10-0-27" draw:color="#7fa0ba"/>
++<draw:color draw:name="27-77-4-0" draw:color="#ba3bf5"/>
++<draw:color draw:name="28-17-0-0" draw:color="#b8d4ff"/>
++<draw:color draw:name="28-25-0-0" draw:color="#b8bfff"/>
++<draw:color draw:name="3-16-24-4" draw:color="#edccb8"/>
++<draw:color draw:name="3-6-14-4" draw:color="#ede6d1"/>
++<draw:color draw:name="38-0-42-0" draw:color="#9eff94"/>
++<draw:color draw:name="50-100-65-0" draw:color="#7f0059"/>
++<draw:color draw:name="51-68-100-5" draw:color="#6e4300"/>
++<draw:color draw:name="52-0-0-0" draw:color="#7affff"/>
++<draw:color draw:name="54-44-0-0" draw:color="#758fff"/>
++<draw:color draw:name="54-60-72-0" draw:color="#756647"/>
++<draw:color draw:name="54-88-11-0" draw:color="#751fe3"/>
++<draw:color draw:name="61-6-0-0" draw:color="#63f0ff"/>
++<draw:color draw:name="65-10-0-0" draw:color="#59e5ff"/>
++<draw:color draw:name="68-1-72-0" draw:color="#52fc47"/>
++<draw:color draw:name="68-1-72-50" draw:color="#007c00"/>
++<draw:color draw:name="70-11-64-2" draw:color="#47de57"/>
++<draw:color draw:name="70-50-0-0" draw:color="#4c7fff"/>
++<draw:color draw:name="70-50-0-50" draw:color="#00007f"/>
++<draw:color draw:name="72-23-54-8" draw:color="#33b061"/>
++<draw:color draw:name="76-25-0-0" draw:color="#3dbfff"/>
++<draw:color draw:name="79-45-0-25" draw:color="#004cbf"/>
++<draw:color draw:name="87-40-0-0" draw:color="#2199ff"/>
++<draw:color draw:name="9-13-16-12" draw:color="#c9bfb7"/>
++<draw:color draw:name="9-19-46-21" draw:color="#b27f54"/>
++<draw:color draw:name="9-20-24-15" draw:color="#c2a69c"/>
++<draw:color draw:name="93-100-13-0" draw:color="#1200de"/>
++
++</office:color-table>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-cli_ure.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-cli_ure.diff
@@ -0,0 +1,8 @@
+--- cli_ure/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ cli_ure/prj/tests.lst	2007-09-07 16:09:56.000000000 +0200
+@@ -0,0 +1,5 @@
++#does not build: ure  cli_ure\qa\climaker                                nmake - all ure_qa_climaker NULL
++#does not build: ure  cli_ure\qa\versioning                              nmake - all ure_qa_versioning NULL
++
++# older tests:
++ure  cli_ure\workbench\dynload                          nmake - all ure_workbench_dynload ure_unotypes ure_source_ure NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking.diff
@@ -0,0 +1,1581 @@
+#diff --git a/comphelper/source/misc/mediadescriptor.cxx b/comphelper/source/misc/mediadescriptor.cxx
+#index 078309b..5e5d476 100644
+#--- comphelper/source/misc/mediadescriptor.cxx
+#+++ comphelper/source/misc/mediadescriptor.cxx
+#@@ -754,9 +754,12 @@ sal_Bool MediaDescriptor::impl_openStreamWithURL(const ::rtl::OUString& sURL)
+#     throw(::com::sun::star::uno::RuntimeException)
+# {
+#     // prepare the environment
+#+	css::uno::Reference< css::lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
+# 	css::uno::Reference< css::task::XInteractionHandler > xOrgInteraction = getUnpackedValueOrDefault(
+# 		MediaDescriptor::PROP_INTERACTIONHANDLER(),
+#-		css::uno::Reference< css::task::XInteractionHandler >());
+#+		css::uno::Reference< css::task::XInteractionHandler > (
+#+			xFactory->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uui.InteractionHandler") ) ), css::uno::UNO_QUERY )
+#+		);
+# 
+#     StillReadWriteInteraction* pInteraction = new StillReadWriteInteraction(xOrgInteraction);
+# 	css::uno::Reference< css::task::XInteractionHandler > xInteraction(static_cast< css::task::XInteractionHandler* >(pInteraction), css::uno::UNO_QUERY);
+diff --git a/ucb/source/ucp/webdav/DAVRequestEnvironment.hxx b/ucb/source/ucp/webdav/DAVRequestEnvironment.hxx
+index 069faa7..7efa34e 100644
+--- ucb/source/ucp/webdav/DAVRequestEnvironment.hxx
++++ ucb/source/ucp/webdav/DAVRequestEnvironment.hxx
+@@ -45,6 +45,10 @@
+ #include "DAVAuthListener.hxx"
+ #endif
+ 
++#ifndef _COM_SUN_STAR_UCB_XCOMMANDENVIRONMENT_HPP_
++#include <com/sun/star/ucb/XCommandEnvironment.hpp>
++#endif
++
+ namespace webdav_ucp
+ {
+     typedef std::pair< rtl::OUString, rtl::OUString > DAVRequestHeader;
+@@ -57,12 +61,12 @@ struct DAVRequestEnvironment
+ //    rtl::Reference< DAVStatusListener >   m_xStatusListener;
+ //    rtl::Reference< DAVProgressListener > m_xStatusListener;
+     DAVRequestHeaders                     m_aRequestHeaders;
+-    uno::Reference< ucb::XCommandEnvironment > m_xEnv;
++    com::sun::star::uno::Reference< com::sun::star::ucb::XCommandEnvironment > m_xEnv;
+ 
+-DAVRequestEnvironment( const rtl::OUString & rRequestURI,
++    DAVRequestEnvironment( const rtl::OUString & rRequestURI,
+                            const rtl::Reference< DAVAuthListener > & xListener,
+                            const DAVRequestHeaders & rRequestHeaders,
+-                           const uno::Reference< ucb::XCommandEnvironment > & xEnv)
++                           const com::sun::star::uno::Reference< com::sun::star::ucb::XCommandEnvironment > & xEnv)
+     : m_aRequestURI( rRequestURI ), 
+       m_xAuthListener( xListener ),
+       m_aRequestHeaders( rRequestHeaders ),
+diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.cxx b/ucb/source/ucp/webdav/DAVResourceAccess.cxx
+index aa1c821..668fe20 100644
+--- ucb/source/ucp/webdav/DAVResourceAccess.cxx
++++ ucb/source/ucp/webdav/DAVResourceAccess.cxx
+@@ -47,6 +47,13 @@
+ #include "DAVAuthListenerImpl.hxx"
+ #include "DAVResourceAccess.hxx"
+ 
++#ifndef _COMPHELPER_PROCESSFACTORY_HXX_
++#include <comphelper/processfactory.hxx>
++#endif
++#ifndef _UCBHELPER_COMMANDENVIRONMENT_HXX
++#include <ucbhelper/commandenvironment.hxx>
++#endif
++
+ using namespace webdav_ucp;
+ using namespace com::sun::star;
+ 
+@@ -66,56 +73,55 @@ int DAVAuthListener_Impl::authenticate(
+     ::rtl::OUString & inoutUserName,
+     ::rtl::OUString & outPassWord )
+ {
++    uno::Reference< task::XInteractionHandler > xIH;
++
+     if ( m_xEnv.is() )
+-    {
+-        uno::Reference< task::XInteractionHandler > xIH
+-            = m_xEnv->getInteractionHandler();
+-        if ( xIH.is() )
+-        {
+-            // #102871# - Supply username and password from previous try.
+-            // Password container service depends on this!
+-            if ( inoutUserName.getLength() == 0 )
+-                inoutUserName = m_aPrevUsername;
+-
+-            if ( outPassWord.getLength() == 0 )
+-                outPassWord = m_aPrevPassword;
+-
+-            rtl::Reference< ucbhelper::SimpleAuthenticationRequest > xRequest
+-                = new ucbhelper::SimpleAuthenticationRequest( inHostName,
+-                                                              inRealm,
+-                                                              inoutUserName,
+-                                                              outPassWord );
+-            xIH->handle( xRequest.get() );
+-
+-            rtl::Reference< ucbhelper::InteractionContinuation > xSelection
+-				= xRequest->getSelection();
+-            
+-            if ( xSelection.is() )
+-            {
+-                // Handler handled the request.
+-                uno::Reference< task::XInteractionAbort > xAbort(
+-                    xSelection.get(), uno::UNO_QUERY );
+-                if ( !xAbort.is() )
+-                {
+-                    const rtl::Reference<
+-                        ucbhelper::InteractionSupplyAuthentication > & xSupp
+-                        = xRequest->getAuthenticationSupplier();
+-
+-                    inoutUserName = xSupp->getUserName();
+-                    outPassWord   = xSupp->getPassword();
+-		    
+-                    // #102871# - Remember username and password.
+-                    m_aPrevUsername = inoutUserName;
+-                    m_aPrevPassword = outPassWord;
+-
+-                    // go on.
+-                    return 0;
+-                }
+-            }
+-        }
+-    }
+-    // Abort.
+-    return -1;
++        xIH = m_xEnv->getInteractionHandler();
++    else
++        xIH = DAVResourceAccess::createCommandEnvironment()->getInteractionHandler();
++
++    if ( !xIH.is() )
++        return -1;
++
++    // #102871# - Supply username and password from previous try.
++    // Password container service depends on this!
++    if ( inoutUserName.getLength() == 0 )
++        inoutUserName = m_aPrevUsername;
++
++    if ( outPassWord.getLength() == 0 )
++        outPassWord = m_aPrevPassword;
++
++    rtl::Reference< ucbhelper::SimpleAuthenticationRequest > xRequest
++        = new ucbhelper::SimpleAuthenticationRequest( inHostName,
++                inRealm,
++                inoutUserName,
++                outPassWord );
++    xIH->handle( xRequest.get() );
++
++    rtl::Reference< ucbhelper::InteractionContinuation > xSelection
++        = xRequest->getSelection();
++
++    if ( !xSelection.is() )
++        return -1;
++
++    // Handler handled the request.
++    uno::Reference< task::XInteractionAbort > xAbort(
++            xSelection.get(), uno::UNO_QUERY );
++    if ( xAbort.is() )
++        return -1;
++
++    const rtl::Reference< ucbhelper::InteractionSupplyAuthentication > & xSupp
++        = xRequest->getAuthenticationSupplier();
++
++    inoutUserName = xSupp->getUserName();
++    outPassWord   = xSupp->getPassword();
++
++    // #102871# - Remember username and password.
++    m_aPrevUsername = inoutUserName;
++    m_aPrevPassword = outPassWord;
++
++    // go on.
++    return 0;
+ }
+ 
+ //=========================================================================
+@@ -435,7 +441,7 @@ void DAVResourceAccess::GET(
+ }
+ 
+ //=========================================================================
+-uno::Reference< io::XInputStream > DAVResourceAccess::GET(
++uno::Reference< io::XStream > DAVResourceAccess::GET(
+     const std::vector< rtl::OUString > & rHeaderNames,
+     DAVResource & rResource,
+     const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+@@ -443,7 +449,7 @@ uno::Reference< io::XInputStream > DAVResourceAccess::GET(
+ {
+     initialize();
+ 
+-    uno::Reference< io::XInputStream > xStream;
++    uno::Reference< io::XStream > xStream;
+     bool bRetry;
+     do
+     {
+@@ -864,22 +870,44 @@ void DAVResourceAccess::DESTROY(
+ 
+ //=========================================================================
+ void DAVResourceAccess::LOCK ( 
+-    const ucb::Lock & /*rLock*/,
+-    const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
++    ucb::Lock & rLock,
++    const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+   throw( DAVException )
+ {
+-//    initialize();
+-    OSL_ENSURE( sal_False, "DAVResourceAccess::LOCK - NYI" );
++    initialize();
++
++    DAVRequestHeaders aHeaders;
++    getUserRequestHeaders( xEnv, 
++            getRequestURI(), 
++            rtl::OUString::createFromAscii( "LOCK" ), 
++            aHeaders );
++    
++    m_xSession->LOCK( rLock,
++            DAVRequestEnvironment(
++                getRequestURI(),
++                new DAVAuthListener_Impl( xEnv ),
++                aHeaders, xEnv ) );
+ }
+ 
+ //=========================================================================
+ void DAVResourceAccess::UNLOCK ( 
+-    const ucb::Lock & /*rLock*/,
+-    const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
++    ucb::Lock & rLock,
++    const uno::Reference< ucb::XCommandEnvironment > & xEnv )
+   throw( DAVException )
+ {
+-//    initialize();
+-    OSL_ENSURE( sal_False, "DAVResourceAccess::UNLOCK - NYI" );
++    initialize();
++
++    DAVRequestHeaders aHeaders;
++    getUserRequestHeaders( xEnv, 
++            getRequestURI(), 
++            rtl::OUString::createFromAscii( "UNLOCK" ), 
++            aHeaders );
++
++    m_xSession->UNLOCK( rLock,
++            DAVRequestEnvironment(
++                getRequestURI(),
++                new DAVAuthListener_Impl( xEnv ),
++                aHeaders, xEnv ) );
+ }
+ 
+ //=========================================================================
+@@ -984,6 +1012,18 @@ void DAVResourceAccess::getUserRequestHeaders(
+     }
+ }
+ 
++// static
++com::sun::star::uno::Reference< com::sun::star::ucb::XCommandEnvironment > DAVResourceAccess::createCommandEnvironment( void )
++{
++    uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
++    uno::Reference< task::XInteractionHandler > xInteractionHandler = uno::Reference< task::XInteractionHandler > (
++            xFactory->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uui.InteractionHandler") ) ), uno::UNO_QUERY );
++    ucbhelper::CommandEnvironment* pCommandEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, uno::Reference< ucb::XProgressHandler >() );
++
++    return uno::Reference< ucb::XCommandEnvironment >( static_cast< ucb::XCommandEnvironment* >( pCommandEnv ), uno::UNO_QUERY );
++}
++
++
+ //=========================================================================
+ sal_Bool DAVResourceAccess::detectRedirectCycle(
+                                 const rtl::OUString& rRedirectURL )
+diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.hxx b/ucb/source/ucp/webdav/DAVResourceAccess.hxx
+index 66f758c..5069ae7 100644
+--- ucb/source/ucp/webdav/DAVResourceAccess.hxx
++++ ucb/source/ucp/webdav/DAVResourceAccess.hxx
+@@ -167,7 +167,7 @@ public:
+ 	     com::sun::star::ucb::XCommandEnvironment > & xEnv )
+         throw( DAVException );
+ 
+-    com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
++    com::sun::star::uno::Reference< com::sun::star::io::XStream >
+     GET( const std::vector< rtl::OUString > & rHeaderNames, // empty == 'all'
+          DAVResource & rResource,
+          const com::sun::star::uno::Reference<
+@@ -237,13 +237,13 @@ public:
+ 	throw( DAVException );
+ 
+     void
+-    LOCK( const com::sun::star::ucb::Lock & rLock,
++    LOCK( com::sun::star::ucb::Lock & rLock,
+ 	  const com::sun::star::uno::Reference<
+ 	      com::sun::star::ucb::XCommandEnvironment > & xEnv )
+ 	throw( DAVException );
+ 
+     void
+-    UNLOCK( const com::sun::star::ucb::Lock & rLock,
++    UNLOCK( com::sun::star::ucb::Lock & rLock,
+ 	    const com::sun::star::uno::Reference<
+ 	        com::sun::star::ucb::XCommandEnvironment > & xEnv )
+ 	throw( DAVException );
+@@ -256,6 +256,8 @@ public:
+ 	const rtl::OUString & rMethod,
+     DAVRequestHeaders & rRequestHeaders );
+ 
++    static com::sun::star::uno::Reference< com::sun::star::ucb::XCommandEnvironment > createCommandEnvironment( void );
++
+ private:
+     const rtl::OUString & getRequestURI() const;
+     sal_Bool detectRedirectCycle( const rtl::OUString& rRedirectURL )
+diff --git a/ucb/source/ucp/webdav/DAVSession.hxx b/ucb/source/ucp/webdav/DAVSession.hxx
+index 8462f5a..df5ac71 100644
+--- ucb/source/ucp/webdav/DAVSession.hxx
++++ ucb/source/ucp/webdav/DAVSession.hxx
+@@ -42,12 +42,18 @@
+ #include <rtl/ustring.hxx>
+ #endif
+ 
++#ifndef _COM_SUN_STAR_IO_XSTREAM_HPP_
++#include <com/sun/star/io/XStream.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
+ #include <com/sun/star/io/XInputStream.hpp>
+ #endif
+ #ifndef _COM_SUN_STAR_IO_XOUTPUTSTREAM_HPP_
+ #include <com/sun/star/io/XOutputStream.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_UCB_LOCK_HPP_
++#include <com/sun/star/ucb/Lock.hpp>
++#endif
+ 
+ #ifndef _DAVEXCEPTION_HXX_
+ #include "DAVException.hxx"
+@@ -140,7 +146,7 @@ public:
+         const DAVRequestEnvironment & rEnv )
+ 		throw( DAVException ) = 0;
+ 
+-    virtual com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
++    virtual com::sun::star::uno::Reference< com::sun::star::io::XStream >
+                     GET( const ::rtl::OUString & inPath,
+                          const std::vector< ::rtl::OUString > & inHeaderNames,
+                          DAVResource & ioResource,
+@@ -199,16 +205,14 @@ public:
+                              const DAVRequestEnvironment & rEnv )
+ 		throw( DAVException ) = 0;
+ 
+-	// Note: Uncomment the following if locking support is required
+-	/*
+-	virtual void LOCK ( const Lock & inLock,
++	virtual void LOCK ( com::sun::star::ucb::Lock & rLock,
+                         const DAVRequestEnvironment & rEnv )
+ 		throw( DAVException ) = 0;
+ 
+-	virtual void UNLOCK ( const Lock & inLock,
++	virtual void UNLOCK ( com::sun::star::ucb::Lock & rLock,
+                           const DAVRequestEnvironment & rEnv )
+ 		throw( DAVException ) = 0;
+-	*/
++
+ protected:
+     rtl::Reference< DAVSessionFactory > m_xFactory;
+ 
+diff --git a/ucb/source/ucp/webdav/NeonInputStream.cxx b/ucb/source/ucp/webdav/NeonInputStream.cxx
+index 334e457..720bd65 100644
+--- ucb/source/ucp/webdav/NeonInputStream.cxx
++++ ucb/source/ucp/webdav/NeonInputStream.cxx
+@@ -36,24 +36,31 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_ucb.hxx"
+ #include "NeonInputStream.hxx"
++#include "DAVResourceAccess.hxx"
+ 
+ #ifndef _RTL_MEMORY_H_
+ #include <rtl/memory.h>
+ #endif
+ 
++#include <comphelper/processfactory.hxx>
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++
++#include <cstdio>
++
+ using namespace cppu;
+-using namespace rtl;
+ using namespace com::sun::star::io;
+-using namespace com::sun::star::uno;
++using namespace com::sun::star;
+ using namespace webdav_ucp;
+ 
+ 
+ // -------------------------------------------------------------------
+ // Constructor
+ // -------------------------------------------------------------------
+-NeonInputStream::NeonInputStream( void )
+-: mLen( 0 ),
+-  mPos( 0 )
++NeonInputStream::NeonInputStream()
++: m_nLen( 0 ),
++  m_nPos( 0 ),
++  m_bDirty( sal_False ),
++  m_pLock( NULL )
+ {
+ }
+ 
+@@ -62,6 +70,7 @@ NeonInputStream::NeonInputStream( void )
+ // -------------------------------------------------------------------
+ NeonInputStream::~NeonInputStream( void )
+ {
++    Unlock();
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -70,24 +79,63 @@ NeonInputStream::~NeonInputStream( void )
+ // -------------------------------------------------------------------
+ void NeonInputStream::AddToStream( const char * inBuf, sal_Int32 inLen )
+ {
+-    mInputBuffer.realloc( sal::static_int_cast<sal_Int32>(mLen) + inLen );
+-    rtl_copyMemory( mInputBuffer.getArray() + mLen, inBuf, inLen );
+-	mLen += inLen;
++    OSL_ENSURE( !m_bDirty, "Cannot AddToStream() when it was already written to it." );
++
++    m_aInputBuffer.realloc( sal::static_int_cast<sal_Int32>(m_nLen) + inLen );
++    rtl_copyMemory( m_aInputBuffer.getArray() + m_nLen, inBuf, inLen );
++    m_nLen += inLen;
++}
++
++// -------------------------------------------------------------------
++// Associate a lock with this stream
++// -------------------------------------------------------------------
++void NeonInputStream::SetLock( const com::sun::star::ucb::Lock &rLock,
++        const rtl::OUString &rURL )
++{
++    m_aURL = rURL;
++
++    if ( !m_pLock )
++        m_pLock = new ucb::Lock( rLock );
++    else
++        *m_pLock = rLock;
+ }
+ 
+ // -------------------------------------------------------------------
+ // queryInterface
+ // -------------------------------------------------------------------
+-Any NeonInputStream::queryInterface( const Type &type )
+-						throw( RuntimeException )
++uno::Any NeonInputStream::queryInterface( const uno::Type &type )
++						throw( uno::RuntimeException )
+ {
+-	Any aRet = ::cppu::queryInterface( type,
+-									   static_cast< XInputStream * >( this ),
+-									   static_cast< XSeekable * >( this ) );
++    uno::Any aRet = ::cppu::queryInterface( type,
++            static_cast< XStream * >( this ),
++            static_cast< XInputStream * >( this ),
++            static_cast< XOutputStream * >( this ),
++            static_cast< XSeekable * >( this ),
++            static_cast< XTruncate * >( this ) );
+ 	return aRet.hasValue() ? aRet : OWeakObject::queryInterface( type );
+ }
+ 
+ // -------------------------------------------------------------------
++// getInputStream
++// -------------------------------------------------------------------
++com::sun::star::uno::Reference< com::sun::star::io::XInputStream > SAL_CALL
++NeonInputStream::getInputStream( void )
++	throw( com::sun::star::uno::RuntimeException )
++{
++    return uno::Reference< XInputStream >( this );
++}
++
++// -------------------------------------------------------------------
++// getOutputStream
++// -------------------------------------------------------------------
++com::sun::star::uno::Reference< com::sun::star::io::XOutputStream > SAL_CALL
++NeonInputStream::getOutputStream( void )
++	throw( com::sun::star::uno::RuntimeException )
++{
++    return uno::Reference< XOutputStream >( this );
++}
++
++// -------------------------------------------------------------------
+ // readBytes
+ // "Reads" the specified number of bytes from the stream
+ // -------------------------------------------------------------------
+@@ -100,7 +148,7 @@ sal_Int32 SAL_CALL NeonInputStream::readBytes(
+ {
+ 	// Work out how much we're actually going to write
+ 	sal_Int32 theBytes2Read = nBytesToRead;
+-	sal_Int32 theBytesLeft  = sal::static_int_cast<sal_Int32>(mLen - mPos);
++	sal_Int32 theBytesLeft  = sal::static_int_cast<sal_Int32>(m_nLen - m_nPos);
+ 	if ( theBytes2Read > theBytesLeft )
+ 		theBytes2Read = theBytesLeft;
+ 
+@@ -109,10 +157,10 @@ sal_Int32 SAL_CALL NeonInputStream::readBytes(
+ 
+ 	// Write the data
+ 	rtl_copyMemory(
+-		aData.getArray(), mInputBuffer.getConstArray() + mPos, theBytes2Read );
++		aData.getArray(), m_aInputBuffer.getConstArray() + m_nPos, theBytes2Read );
+ 
+ 	// Update our stream position for next time
+-	mPos += theBytes2Read;
++	m_nPos += theBytes2Read;
+ 
+     return theBytes2Read;
+ }
+@@ -141,9 +189,9 @@ void SAL_CALL NeonInputStream::skipBytes( sal_Int32 nBytesToSkip )
+                ::com::sun::star::io::IOException,
+                ::com::sun::star::uno::RuntimeException )
+ {
+-	mPos += nBytesToSkip;
+-	if ( mPos >= mLen )
+-		mPos = mLen;
++    m_nPos += nBytesToSkip;
++    if ( m_nPos >= m_nLen )
++        m_nPos = m_nLen;
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -155,7 +203,7 @@ sal_Int32 SAL_CALL NeonInputStream::available(  )
+                ::com::sun::star::io::IOException,
+                ::com::sun::star::uno::RuntimeException )
+ {
+-	return sal::static_int_cast<sal_Int32>(mLen - mPos);
++    return sal::static_int_cast<sal_Int32>(m_nLen - m_nPos);
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -176,12 +224,12 @@ void SAL_CALL NeonInputStream::seek( sal_Int64 location )
+ 			   ::com::sun::star::io::IOException,
+ 			   ::com::sun::star::uno::RuntimeException )
+ {
+-	if ( location < 0 )
+-		throw ::com::sun::star::lang::IllegalArgumentException();
++    if ( location < 0 )
++        throw ::com::sun::star::lang::IllegalArgumentException();
+ 
+-    if ( location <= mLen )
+-		mPos = location;
+-	else
++    if ( location <= m_nLen )
++        m_nPos = location;
++    else
+         throw ::com::sun::star::lang::IllegalArgumentException();
+ }
+ 
+@@ -192,7 +240,7 @@ sal_Int64 SAL_CALL NeonInputStream::getPosition()
+ 		throw( ::com::sun::star::io::IOException,
+ 			   ::com::sun::star::uno::RuntimeException )
+ {
+-	return mPos;
++    return m_nPos;
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -202,5 +250,107 @@ sal_Int64 SAL_CALL NeonInputStream::getLength()
+ 		throw( ::com::sun::star::io::IOException,
+ 			   ::com::sun::star::uno::RuntimeException )
+ {
+-	return mLen;
++    return m_nLen;
++}
++
++// -------------------------------------------------------------------
++// writeBytes
++// -------------------------------------------------------------------
++void SAL_CALL NeonInputStream::writeBytes( const com::sun::star::uno::Sequence< sal_Int8 >& aData )
++	throw( com::sun::star::io::NotConnectedException,
++	       com::sun::star::io::BufferSizeExceededException,
++	       com::sun::star::io::IOException,
++	       com::sun::star::uno::RuntimeException)
++{
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "WebDAV: writeBytes()\n" );
++#endif
++
++    sal_Int32 nDataLen = aData.getLength();
++    OSL_ASSERT( nDataLen >= 0 );
++
++    // Anything to do?
++    if ( nDataLen == 0 )
++        return;
++
++    // Update the length of the stream & size of the buffer
++    if ( m_nLen < m_nPos + nDataLen )
++    {
++        m_nLen = m_nPos + nDataLen;
++        if ( m_aInputBuffer.getLength() < m_nLen )
++            m_aInputBuffer.realloc( sal::static_int_cast<sal_Int32>( m_nLen ) );
++    }
++
++    rtl_copyMemory( m_aInputBuffer.getArray() + m_nPos, aData.getConstArray(), nDataLen );
++    m_nPos += nDataLen;
++
++    m_bDirty = sal_True;
++}
++
++// -------------------------------------------------------------------
++// flush
++// -------------------------------------------------------------------
++void SAL_CALL NeonInputStream::flush( void )
++	throw( NotConnectedException, BufferSizeExceededException,
++	       IOException, uno::RuntimeException )
++{
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "WebDAV: flush()\n" );
++#endif
++    // Nothing to do, we transfer the data in closeOutput() (if dirty)
++}
++        
++// -------------------------------------------------------------------
++// closeOutput
++// -------------------------------------------------------------------
++void SAL_CALL NeonInputStream::closeOutput( void )
++	throw( com::sun::star::io::NotConnectedException,
++	       com::sun::star::io::IOException,
++	       com::sun::star::uno::RuntimeException )
++{
++    if ( m_bDirty )
++    {
++#if OSL_DEBUG_LEVEL > 0
++        fprintf( stderr, "WebDAV: TODO write on closeOutput(), the stream is dirty!\n" );
++#endif
++    }
++}
++
++// -------------------------------------------------------------------
++// truncate
++// -------------------------------------------------------------------
++void SAL_CALL NeonInputStream::truncate( void )
++	throw( com::sun::star::io::IOException,
++	       com::sun::star::uno::RuntimeException )
++{
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "WebDAV: truncate()\n" );
++#endif
++
++    if ( m_nLen > 0 )
++    {
++        m_nLen = m_nPos = 0;
++        m_bDirty = sal_True;
++    }
++}
++
++// -------------------------------------------------------------------
++// Unlock the stream & destroy the lock
++// -------------------------------------------------------------------
++void NeonInputStream::Unlock( void )
++{
++    if ( m_pLock )
++    {
++        // FIXME I guess it is a bit hacky to create the new session just for
++        // the unlock?  But so far it seems I have no other chance...
++        uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
++        rtl::Reference< DAVSessionFactory > rDAVFactory( new DAVSessionFactory() );
++        
++        DAVResourceAccess aResourceAccess( xFactory, rDAVFactory, m_aURL );
++
++        aResourceAccess.UNLOCK( *m_pLock, DAVResourceAccess::createCommandEnvironment() );
++
++        delete m_pLock;
++        m_pLock = NULL;
++    }
+ }
+diff --git a/ucb/source/ucp/webdav/NeonInputStream.hxx b/ucb/source/ucp/webdav/NeonInputStream.hxx
+index 517e6d8..ba470e6 100644
+--- ucb/source/ucp/webdav/NeonInputStream.hxx
++++ ucb/source/ucp/webdav/NeonInputStream.hxx
+@@ -45,12 +45,27 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+ 
++#ifndef _COM_SUN_STAR_IO_XSTREAM_HPP_
++#include <com/sun/star/io/XStream.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
+ #include <com/sun/star/io/XInputStream.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_IO_XOUTPUTSTREAM_HPP_
++#include <com/sun/star/io/XOutputStream.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_IO_XSEEKABLE_HPP_
+ #include <com/sun/star/io/XSeekable.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_IO_XTRUNCATE_HPP_
++#include <com/sun/star/io/XTruncate.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UCB_LOCK_HPP_
++#include <com/sun/star/ucb/Lock.hpp>
++#endif
++
++#include "DAVRequestEnvironment.hxx"
+ 
+ 
+ namespace webdav_ucp
+@@ -61,21 +76,33 @@ namespace webdav_ucp
+ // A simple XInputStream implementation provided specifically for use
+ // by the DAVSession::GET method.
+ // -------------------------------------------------------------------
+-class NeonInputStream : public ::com::sun::star::io::XInputStream,
++class NeonInputStream : public ::com::sun::star::io::XStream,
++                        public ::com::sun::star::io::XInputStream,
++                        public ::com::sun::star::io::XOutputStream,
+ 						public ::com::sun::star::io::XSeekable,
++                        public ::com::sun::star::io::XTruncate,
+ 						public ::cppu::OWeakObject
+ {
+-	private:
+-		com::sun::star::uno::Sequence< sal_Int8 > mInputBuffer;
+-		sal_Int64 mLen;
+-		sal_Int64 mPos;
++private:
++    com::sun::star::uno::Sequence< sal_Int8 > m_aInputBuffer;
++    sal_Int64                  m_nLen; // cannot be just m_aInputBuffer.getLength() - the buffer can be bigger
++    sal_Int64                  m_nPos;
+ 
+-	public:
+-				 NeonInputStream( void );
+-		virtual ~NeonInputStream();
++    sal_Bool                   m_bDirty;
+ 
+-		// Add some data to the end of the stream
+-		void AddToStream( const char * inBuf, sal_Int32 inLen );
++    com::sun::star::ucb::Lock *m_pLock;
++    rtl::OUString              m_aURL;
++
++public:
++             NeonInputStream( void );
++    virtual ~NeonInputStream();
++
++    // Add some data to the end of the stream
++    void AddToStream( const char * inBuf, sal_Int32 inLen );
++
++    // Associate a lock with this stream
++    void SetLock( const com::sun::star::ucb::Lock &rLock,
++                  const rtl::OUString &rURL );
+ 
+ 	// XInterface
+ 	virtual com::sun::star::uno::Any SAL_CALL queryInterface(
+@@ -90,6 +117,12 @@ class NeonInputStream : public ::com::sun::star::io::XInputStream,
+ 							throw()
+ 								{ OWeakObject::release(); }
+ 
++    // XStream
++    virtual com::sun::star::uno::Reference< com::sun::star::io::XInputStream > SAL_CALL getInputStream( void )
++        throw( com::sun::star::uno::RuntimeException );
++
++    virtual com::sun::star::uno::Reference< com::sun::star::io::XOutputStream > SAL_CALL getOutputStream( void )
++        throw( com::sun::star::uno::RuntimeException );
+ 
+ 	// XInputStream
+ 	virtual sal_Int32 SAL_CALL readBytes(
+@@ -137,6 +170,35 @@ class NeonInputStream : public ::com::sun::star::io::XInputStream,
+ 	virtual sal_Int64 SAL_CALL getLength()
+ 		throw( ::com::sun::star::io::IOException,
+ 			   ::com::sun::star::uno::RuntimeException );
++
++    // XOutputStream
++    virtual void SAL_CALL writeBytes( const com::sun::star::uno::Sequence< sal_Int8 >& aData )
++        throw( com::sun::star::io::NotConnectedException,
++                com::sun::star::io::BufferSizeExceededException,
++                com::sun::star::io::IOException,
++                com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL flush( void )
++        throw( com::sun::star::io::NotConnectedException,
++                com::sun::star::io::BufferSizeExceededException,
++                com::sun::star::io::IOException,
++                com::sun::star::uno::RuntimeException);
++
++
++    virtual void SAL_CALL closeOutput( void )
++        throw( com::sun::star::io::NotConnectedException,
++                com::sun::star::io::IOException,
++                com::sun::star::uno::RuntimeException );
++
++    // XTruncate
++    virtual void SAL_CALL truncate( void )
++        throw( com::sun::star::io::IOException,
++                com::sun::star::uno::RuntimeException );
++    
++protected:
++
++    // Unlock the stream & destroy the lock
++    void Unlock( void );
+ };
+ 
+ } // namespace webdav_ucp
+diff --git a/ucb/source/ucp/webdav/NeonSession.cxx b/ucb/source/ucp/webdav/NeonSession.cxx
+index 0fef0bb..f1ddbf0 100644
+--- ucb/source/ucp/webdav/NeonSession.cxx
++++ ucb/source/ucp/webdav/NeonSession.cxx
+@@ -122,6 +122,9 @@
+ #ifndef _SIMPLECERTIFICATIONVALIDATIONREQUEST_HXX_
+ #include "ucbhelper/simplecertificatevalidationrequest.hxx"
+ #endif
++#ifndef _UCBHELPER_CANCELCOMMANDEXECUTION_HXX_
++#include <ucbhelper/cancelcommandexecution.hxx>
++#endif
+ 
+ #include <cppuhelper/bootstrap.hxx> 
+ 
+@@ -253,12 +256,13 @@ struct NeonRequestContext
+ // -------------------------------------------------------------------
+ 
+ #if NEON_VERSION >= 0x0250
+-extern "C" int NeonSession_ResponseBlockReader(void * inUserData, 
++extern "C" int
+ #else
+-extern "C" void NeonSession_ResponseBlockReader(void * inUserData, 
++extern "C" void
+ #endif
+-                                               const char * inBuf, 
+-                                               size_t inLen )
++NeonSession_ResponseBlockReader(void * inUserData, 
++                                       const char * inBuf, 
++                                       size_t inLen )
+ {
+     // neon calls this function with (inLen == 0)...
+     if ( inLen > 0 )
+@@ -283,12 +287,13 @@ extern "C" void NeonSession_ResponseBlockReader(void * inUserData,
+ // -------------------------------------------------------------------
+ 
+ #if NEON_VERSION >= 0x0250
+-extern "C" int NeonSession_ResponseBlockWriter( void * inUserData, 
++extern "C" int
+ #else
+-extern "C" void NeonSession_ResponseBlockWriter( void * inUserData, 
++extern "C" void
+ #endif
+-                                                const char * inBuf, 
+-                                                size_t inLen )
++NeonSession_ResponseBlockWriter( void * inUserData, 
++                                 const char * inBuf, 
++                                 size_t inLen )
+ {
+     // neon calls this function with (inLen == 0)...
+     if ( inLen > 0 )
+@@ -646,16 +651,14 @@ NeonSession::~NeonSession( )
+ {
+     if ( m_pHttpSession )
+     {
++        if ( m_NeonLockStore != NULL )
++        {
++            ne_lockstore_destroy( m_NeonLockStore );
++            m_NeonLockStore = NULL;
++        }
++
+         ne_session_destroy( m_pHttpSession );
+         m_pHttpSession = 0;
+-	// Note: Uncomment the following if locking support is required
+-	/*
+-	  if ( mNeonLockSession != NULL )
+-	  {
+-	  ne_lock_unregister( mNeonLockSession );
+-	  mNeonLockSession = NULL;
+-	  }
+-	*/
+     }
+ 
+     delete static_cast<RequestDataMap*>(m_pRequestData);
+@@ -797,14 +800,14 @@ void NeonSession::Init()
+                               m_nProxyPort );
+         }
+ 
+-        // Note: Uncomment the following if locking support is required
+-        /*
+-        mNeonLockSession = ne_lock_register( m_pHttpSession );
++        m_NeonLockStore = ne_lockstore_create();
+ 
+-        if ( mNeonLockSession == NULL )
++        if ( m_NeonLockStore == NULL )
+             throw DAVException( DAVException::DAV_SESSION_CREATE,
+-                                theUri::makeConnectionEndPointString() );
+-        */
++                                NeonUri::makeConnectionEndPointString( m_aHostName, m_nPort ) );
++
++        // Register the lock store
++        ne_lockstore_register( m_NeonLockStore, m_pHttpSession );
+ 
+         // Register for redirects.
+         ne_redirect_register( m_pHttpSession );
+@@ -1136,7 +1139,7 @@ void NeonSession::GET( const rtl::OUString &                 inPath,
+ // -------------------------------------------------------------------
+ // GET
+ // -------------------------------------------------------------------
+-uno::Reference< io::XInputStream > 
++uno::Reference< io::XStream > 
+ NeonSession::GET( const rtl::OUString & inPath,
+ 		  const std::vector< ::rtl::OUString > & inHeaderNames,
+ 		  DAVResource & ioResource,
+@@ -1152,8 +1155,8 @@ NeonSession::GET( const rtl::OUString & inPath,
+     ioResource.uri = inPath;
+     ioResource.properties.clear();
+ 
+-    rtl::Reference< NeonInputStream > xInputStream( new NeonInputStream );
+-    NeonRequestContext aCtx( xInputStream, inHeaderNames, ioResource );
++    rtl::Reference< NeonInputStream > xStream( new NeonInputStream );
++    NeonRequestContext aCtx( xStream, inHeaderNames, ioResource );
+     int theRetVal = GET( m_pHttpSession,
+                          rtl::OUStringToOString(
+                              inPath, RTL_TEXTENCODING_UTF8 ),
+@@ -1161,7 +1164,7 @@ NeonSession::GET( const rtl::OUString & inPath,
+                          true,
+                          &aCtx );
+     HandleError( theRetVal );
+-    return uno::Reference< io::XInputStream >( xInputStream.get() );
++    return uno::Reference< io::XStream >( xStream.get() );
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -1392,9 +1395,7 @@ void NeonSession::DESTROY( const rtl::OUString & inPath,
+ // -------------------------------------------------------------------
+ // LOCK
+ // -------------------------------------------------------------------
+-// Note: Uncomment the following if locking support is required
+-/*
+-void NeonSession::LOCK( const Lock & inLock,
++void NeonSession::LOCK( ucb::Lock & rLock,
+                         const DAVRequestEnvironment & rEnv )
+ 	throw ( DAVException )
+ {
+@@ -1404,16 +1405,20 @@ void NeonSession::LOCK( const Lock & inLock,
+ 
+     m_aEnv = rEnv;
+ 
+-	Lockit( inLock, true );
++    if ( !Lockit( rLock, true ) )
++    {
++        ucbhelper::cancelCommandExecution( ucb::IOErrorCode_LOCKING_VIOLATION,
++                uno::Sequence< uno::Any >( 0 ), // FIXME more info about the file?
++                rEnv.m_xEnv,
++                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "a locking error occured" ) ),
++                uno::Reference< ucb::XCommandProcessor >() );
++    }
+ }
+-*/
+ 
+ // -------------------------------------------------------------------
+ // UNLOCK
+ // -------------------------------------------------------------------
+-// Note: Uncomment the following if locking support is required
+-/*
+-void NeonSession::UNLOCK( const Lock & inLock,
++void NeonSession::UNLOCK( ucb::Lock & rLock,
+                           const DAVRequestEnvironment & rEnv )
+ 	throw ( DAVException )
+ {
+@@ -1423,9 +1428,15 @@ void NeonSession::UNLOCK( const Lock & inLock,
+ 
+     m_aEnv = rEnv;
+ 
+-	Lockit( inLock, false );
++    if ( !Lockit( rLock, false ) )
++    {
++        ucbhelper::cancelCommandExecution( ucb::IOErrorCode_LOCKING_VIOLATION,
++                uno::Sequence< uno::Any >( 0 ), // FIXME more info about the file?
++                rEnv.m_xEnv,
++                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "a locking error occured" ) ),
++                uno::Reference< ucb::XCommandProcessor >() );
++    }
+ }
+-*/
+ 
+ // -------------------------------------------------------------------
+ const ucbhelper::InternetProxyServer & NeonSession::getProxySettings() const
+@@ -1521,77 +1532,97 @@ void NeonSession::HandleError( int nError )
+     }
+ }
+ 
+-// Note: Uncomment the following if locking support is required
+-/*
+-void NeonSession::Lockit( const Lock & inLock, bool inLockit )
++sal_Bool NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ 	throw ( DAVException )
+ {
+     osl::Guard< osl::Mutex > theGuard( m_aMutex );
+ 
+-	// Create the neon lock
+-	NeonLock * theLock = new NeonLock;
+-	int theRetVal;
++    if ( !m_NeonLockStore )
++        throw DAVException( DAVException::DAV_INVALID_ARG );
+ 
+-	// Set the lock uri
+-	NeonUri theUri( inLock.uri );
+-	theLock->uri = const_cast< char * >
+-        ( rtl::OUStringToOString(
+-                theUri.GetPath(), RTL_TEXTENCODING_UTF8 ).getStr() );
++    ne_uri aUri;
++    ne_uri_parse( rtl::OUStringToOString( m_aEnv.m_aRequestURI, RTL_TEXTENCODING_UTF8 ).getStr(),
++            &aUri );
+ 
+-	if ( inLockit )
+-	{
+-		// Set the lock depth
+-		switch( inLock.depth )
+-		{
+-			case DAVZERO:
+-			case DAVINFINITY:
+-				theLock->depth = int ( inLock.depth );
+-				break;
+-			default:
+-				throw DAVException( DAVException::DAV_INVALID_ARG );
+-				break;
+-		}
++    // Create the neon lock
++    NeonLock * theLock = ne_lockstore_findbyuri( m_NeonLockStore, &aUri );
++    if ( !theLock )
++    {
++        theLock = ne_lock_create();
+ 
+-		// Set the lock scope
+-		switch ( inLock.scope )
+-		{
+-			case EXCLUSIVE:
+-                theLock->scope = ne_lockscope_exclusive;
+-				break;
+-			case SHARED:
+-                theLock->scope = ne_lockscope_shared;
+-				break;
+-			default:
+-				throw DAVException( DAVException::DAV_INVALID_ARG );
+-				break;
+-		}
++        // Set the lock uri
++        theLock->uri = aUri;
++
++        // Set the lock depth
++        switch( rLock.Depth )
++        {
++            case ucb::LockDepth_ZERO:     theLock->depth = NE_DEPTH_ZERO;     break;
++            case ucb::LockDepth_ONE:      theLock->depth = NE_DEPTH_ONE;      break;
++            case ucb::LockDepth_INFINITY: theLock->depth = NE_DEPTH_INFINITE; break;
++            default:
++                                          throw DAVException( DAVException::DAV_INVALID_ARG );
++        }
++
++        // Set the lock scope
++        switch ( rLock.Scope )
++        {
++            case ucb::LockScope_EXCLUSIVE: theLock->scope = ne_lockscope_exclusive; break;
++            case ucb::LockScope_SHARED:    theLock->scope = ne_lockscope_shared;    break;
++            default:
++                                           throw DAVException( DAVException::DAV_INVALID_ARG );
++                                           break;
++        }
++
++        // Set the lock owner
++        rtl::OUString aValue;
++        rLock.Owner >>= aValue;
+ 
+-		// Set the lock owner
+-        const char * theOwner = rtl::OUStringToOString( inLock.owner,
+-                                                        RTL_TEXTENCODING_UTF8 );
+-		theLock->owner = const_cast< char * > ( theOwner );
++        theLock->owner = strdup( rtl::OUStringToOString( aValue, RTL_TEXTENCODING_UTF8 ).getStr() );
+ 
+-		// Set the lock timeout
+-		// Note: Neon ignores the timeout
+-		//theLock->timeout = inLock.timeout;
++        // Set the lock timeout
++        // Note: Neon ignores the timeout
++        //theLock->timeout = rLock.timeout;
++        theLock->timeout = -1;
+ 
++        ne_lockstore_add( m_NeonLockStore, theLock );
++    }
++
++    int theRetVal;
++    if ( bLockit )
++    {
+         theRetVal = ne_lock( m_pHttpSession, theLock );
+-	}
+-	else
+-	{
+ 
+-		// Set the lock token
+-        rtl::OUString theToken = inLock.locktoken.getConstArray()[ 0 ];
+-		theLock->token = const_cast< char * >
+-            ( rtl::OUStringToOString(
+-                    theToken, RTL_TEXTENCODING_UTF8 ).getStr() );
++        if ( theRetVal != NE_OK )
++            return sal_False;
++
++        uno::Sequence< rtl::OUString > aTokens( 1 );
++        aTokens[0] = rtl::OUString::createFromAscii( theLock->token );
++        rLock.LockTokens = aTokens;
++
++#if OSL_DEBUG_LEVEL > 0
++        fprintf( stderr, "WebDAV: locked the URL, the token is: %s\n", theLock->token );
++#endif
++    }
++    else
++    {
++        // Set the lock token
++        if ( rLock.LockTokens.getLength() > 0 )
++        {
++            rtl::OUString theToken = rLock.LockTokens.getConstArray()[ 0 ];
++            theLock->token = strdup( rtl::OUStringToOString( theToken, RTL_TEXTENCODING_UTF8 ).getStr() );
++
++#if OSL_DEBUG_LEVEL > 0
++            fprintf( stderr, "WebDAV: going to unlock the URL, the token is: %s\n", theLock->token );
++#endif
++        }
+ 
+         theRetVal = ne_unlock( m_pHttpSession, theLock );
+-	}
++    }
+ 
+-	HandleError( theRetVal );
++    HandleError( theRetVal );
++
++    return sal_True;
+ }
+-*/
+ 
+ // -------------------------------------------------------------------
+ namespace {
+diff --git a/ucb/source/ucp/webdav/NeonSession.hxx b/ucb/source/ucp/webdav/NeonSession.hxx
+index 911939f..f35468a 100644
+--- ucb/source/ucp/webdav/NeonSession.hxx
++++ ucb/source/ucp/webdav/NeonSession.hxx
+@@ -84,8 +84,7 @@ class NeonSession : public DAVSession
+         // moment.
+         DAVRequestEnvironment m_aEnv;
+ 
+-		// Note: Uncomment the following if locking support is required
+-        // NeonLockSession *      mNeonLockSession;
++        NeonLockStore    *m_NeonLockStore;
+ 
+         static bool       m_bGlobalsInited;
+ 
+@@ -156,7 +155,7 @@ class NeonSession : public DAVSession
+ 			throw ( DAVException );
+ 
+         virtual com::sun::star::uno::Reference<
+-            com::sun::star::io::XInputStream >
++            com::sun::star::io::XStream >
+         GET( const ::rtl::OUString & inPath,
+              const std::vector< ::rtl::OUString > & inHeaderNames,
+              DAVResource & ioResource,
+@@ -223,16 +222,13 @@ class NeonSession : public DAVSession
+                               const DAVRequestEnvironment & rEnv )
+ 			throw ( DAVException );
+ 
+-		// Note: Uncomment the following if locking support is required
+-		/*
+-		virtual void LOCK (const Lock & inLock,
+-                           const DAVRequestEnvironment & rEnv )
++		virtual void LOCK ( com::sun::star::ucb::Lock & rLock,
++                            const DAVRequestEnvironment & rEnv )
+ 			throw ( DAVException );
+ 
+-		virtual void UNLOCK (const Lock & inLock,
+-                             const DAVRequestEnvironment & rEnv )
++		virtual void UNLOCK ( com::sun::star::ucb::Lock & rLock,
++                              const DAVRequestEnvironment & rEnv )
+ 			throw ( DAVException );
+-		*/
+ 
+         // helpers
+         const rtl::OUString & getHostName() const { return m_aHostName; }
+@@ -257,9 +253,8 @@ class NeonSession : public DAVSession
+ 
+         const ucbhelper::InternetProxyServer & getProxySettings() const;
+ 
+-		// Note: Uncomment the following if locking support is required
+-		// void			Lockit( const Lock & inLock, bool inLockit )
+-		//	throw ( DAVException );
++		sal_Bool Lockit( com::sun::star::ucb::Lock & rLock, bool bLockit )
++			throw ( DAVException );
+ 
+         // low level GET implementation, used by public GET implementations
+         static int GET( ne_session * sess,
+diff --git a/ucb/source/ucp/webdav/NeonTypes.hxx b/ucb/source/ucp/webdav/NeonTypes.hxx
+index 63a8d68..5086f96 100644
+--- ucb/source/ucp/webdav/NeonTypes.hxx
++++ ucb/source/ucp/webdav/NeonTypes.hxx
+@@ -48,6 +48,9 @@
+ #ifndef NE_PROPS_H
+ #include <ne_props.h>
+ #endif
++#ifndef NE_LOCKS_H
++#include <ne_locks.h>
++#endif
+ 
+ typedef ne_session                  HttpSession;
+ typedef ne_status                   HttpStatus;
+@@ -56,4 +59,7 @@ typedef ne_server_capabilities      HttpServerCapabilities;
+ typedef ne_propname                 NeonPropName;
+ typedef ne_prop_result_set          NeonPropFindResultSet;
+ 
++typedef ne_lock_store               NeonLockStore;
++typedef struct ne_lock              NeonLock;
++
+ #endif // _NEONTYPES_HXX_
+diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx
+index 7b3d7c5..80f752e 100644
+--- ucb/source/ucp/webdav/webdavcontent.cxx
++++ ucb/source/ucp/webdav/webdavcontent.cxx
+@@ -76,6 +76,9 @@
+ #ifndef _COM_SUN_STAR_IO_XACTIVEDATASINK_HPP_
+ #include <com/sun/star/io/XActiveDataSink.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_IO_XACTIVEDATASTREAMER_HPP_
++#include <com/sun/star/io/XActiveDataStreamer.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_IO_XOUTPUTSTREAM_HPP_
+ #include <com/sun/star/io/XOutputStream.hpp>
+ #endif
+@@ -190,6 +193,8 @@
+ #include "UCBDeadPropertyValue.hxx"
+ #endif
+ 
++#include "NeonInputStream.hxx"
++
+ using namespace com::sun::star;
+ using namespace webdav_ucp;
+ 
+@@ -453,7 +458,8 @@ Content::Content(
+   m_eResourceType( UNKNOWN ),
+   m_pProvider( pProvider ),
+   m_bTransient( sal_False ),
+-  m_bCollection( sal_False )
++  m_bCollection( sal_False ),
++  m_bForceReadOnly( sal_False )
+ {
+     try
+     {
+@@ -722,6 +728,11 @@ uno::Any SAL_CALL Content::execute(
+            ucb::CommandAbortedException,
+            uno::RuntimeException )
+ {
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "WebDAV: Execute command '%s'\n",
++            rtl::OUStringToOString( aCommand.Name, RTL_TEXTENCODING_UTF8 ).getStr() );
++#endif
++
+     uno::Any aRet;
+     
+     if ( aCommand.Name.equalsAsciiL(
+@@ -1414,16 +1425,29 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
+     uno::Reference< ucb::XContentIdentifier >    xIdentifier;
+     rtl::Reference< ::ucbhelper::ContentProviderImplHelper > xProvider;
+ 
+-    // webdav does not support active streaming, we can immediately return
+-    if ( ( rProperties.getLength() == 1 ) &&
+-            rProperties[ 0 ].Name.equalsAsciiL(
+-                RTL_CONSTASCII_STRINGPARAM( "SupportsActiveStreaming" ) ) )
++#if OSL_DEBUG_LEVEL > 0
++    fprintf( stderr, "WebDAV: getPropertyValues: answering the following properties: " );
++    for ( int i = 0; i < rProperties.getLength(); ++i )
++        fprintf( stderr, " %s,",
++                rtl::OUStringToOString( rProperties[i].Name, RTL_TEXTENCODING_UTF8 ).getStr() );
++    fprintf( stderr, "\n" );
++#endif
++
++    // WebDAV supports XActiveDataStreamer
++    // We have to return TRUE on
++    // - SupportsActiveStreaming - always
++    // - IsReadOnly - if we forced read only due to failed locking
++    if ( rProperties.getLength() == 1 )
+     {
+-        rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+-            = new ::ucbhelper::PropertyValueSet( m_xSMgr );
+-        xRow->appendBoolean( rProperties[0], sal_False );
++        if ( rProperties[ 0 ].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "SupportsActiveStreaming" ) ) ||
++             ( rProperties[ 0 ].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "IsReadOnly" ) ) && m_bForceReadOnly ) )
++        {
++            rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
++                = new ::ucbhelper::PropertyValueSet( m_xSMgr );
++            xRow->appendBoolean( rProperties[0], sal_True );
+ 
+-        return uno::Reference< sdbc::XRow >( xRow.get() );
++            return uno::Reference< sdbc::XRow >( xRow.get() );
++        }
+     }
+ 
+     {
+@@ -2114,61 +2138,108 @@ uno::Any Content::open(
+         }
+     }
+ 
+-    if ( rArg.Sink.is() )
+-    {
+-        // Open document.
++    if ( !rArg.Sink.is() )
++        return aRet;
+ 
+-        if ( ( rArg.Mode == ucb::OpenMode::DOCUMENT_SHARE_DENY_NONE ) ||
+-             ( rArg.Mode == ucb::OpenMode::DOCUMENT_SHARE_DENY_WRITE ) )
+-        {
+-            // Currently(?) unsupported.
+-            ucbhelper::cancelCommandExecution(
++    // Open document.
++
++    if ( ( rArg.Mode == ucb::OpenMode::DOCUMENT_SHARE_DENY_NONE ) ||
++         ( rArg.Mode == ucb::OpenMode::DOCUMENT_SHARE_DENY_WRITE ) )
++    {
++        // Currently(?) unsupported.
++        ucbhelper::cancelCommandExecution(
+                 uno::makeAny(
+                     ucb::UnsupportedOpenModeException(
+-                            rtl::OUString(),
+-                            static_cast< cppu::OWeakObject * >( this ),
+-                            sal_Int16( rArg.Mode ) ) ),
++                        rtl::OUString(),
++                        static_cast< cppu::OWeakObject * >( this ),
++                        sal_Int16( rArg.Mode ) ) ),
+                 xEnv );
++        // Unreachable
++    }
++
++    rtl::OUString aURL = m_xIdentifier->getContentIdentifier();
++    uno::Reference< io::XOutputStream > xOut
++        = uno::Reference< io::XOutputStream >( rArg.Sink, uno::UNO_QUERY );
++    if ( xOut.is() )
++    {
++#if OSL_DEBUG_LEVEL > 0
++        fprintf( stderr, "WebDAV: rArg.Sink is XOutputStream\n" );
++#endif
++        // PUSH: write data
++        try
++        {
++            std::auto_ptr< DAVResourceAccess > xResAccess;
++
++            {
++                osl::MutexGuard aGuard( m_aMutex );
++
++                // throw away previously cached headers.
++                m_xCachedProps.reset();
++
++                xResAccess.reset(
++                        new DAVResourceAccess( *m_xResAccess.get() ) );
++            }
++
++            DAVResource aResource;
++            std::vector< rtl::OUString > aHeaders;
++            //                // Obtain list containing all HTTP headers that can
++            //                // be mapped to UCB properties.
++            //                ContentProperties::getMappableHTTPHeaders( aHeaders );
++
++            xResAccess->GET( xOut, aHeaders, aResource, xEnv );
++
++            {
++                osl::MutexGuard aGuard( m_aMutex );
++
++                // cache headers.
++                m_xCachedProps.reset( new ContentProperties( aResource ) );
++
++                m_xResAccess.reset( 
++                    new DAVResourceAccess( *xResAccess.get() ) );
++            }
++        }
++        catch ( DAVException const & e )
++        {
++            cancelCommandExecution( e, xEnv );
+             // Unreachable
+         }
+-
+-        rtl::OUString aURL = m_xIdentifier->getContentIdentifier();
+-        uno::Reference< io::XOutputStream > xOut
+-            = uno::Reference< io::XOutputStream >( rArg.Sink, uno::UNO_QUERY );
+-        if ( xOut.is() )
++    }
++    else
++    {
++        uno::Reference< io::XActiveDataSink > xDataSink
++            = uno::Reference< io::XActiveDataSink >( rArg.Sink,
++                    uno::UNO_QUERY );
++        if ( xDataSink.is() )
+         {
+-            // PUSH: write data
++#if OSL_DEBUG_LEVEL > 0
++            fprintf( stderr, "WebDAV: rArg.Sink is XActiveDataSink\n" );
++#endif
++            // PULL: wait for client read
+             try
+             {
+-                std::auto_ptr< DAVResourceAccess > xResAccess;
+-
+                 {
+                     osl::MutexGuard aGuard( m_aMutex );
+ 
+                     // throw away previously cached headers.
+                     m_xCachedProps.reset();
+-
+-                    xResAccess.reset(
+-                        new DAVResourceAccess( *m_xResAccess.get() ) );
+                 }
+-
++                // fill inputsream sync; return if all data present
+                 DAVResource aResource;
+                 std::vector< rtl::OUString > aHeaders;
+-//                // Obtain list containing all HTTP headers that can
+-//                // be mapped to UCB properties.
+-//                ContentProperties::getMappableHTTPHeaders( aHeaders );
+-
+-                xResAccess->GET( xOut, aHeaders, aResource, xEnv );
++                //                        // Obtain list containing all HTTP headers that can
++                //                        // be mapped to UCB properties.
++                //                        ContentProperties::getMappableHTTPHeaders( aHeaders );
++                uno::Reference< io::XInputStream > xIn
++                    = m_xResAccess->GET( aHeaders, aResource, xEnv )->getInputStream();
+ 
+                 {
+                     osl::MutexGuard aGuard( m_aMutex );
+ 
+-                    // cache headers.
+-                    m_xCachedProps.reset( new ContentProperties( aResource ) );
+-
+-                    m_xResAccess.reset( 
+-                        new DAVResourceAccess( *xResAccess.get() ) );
++                    m_xCachedProps.reset(
++                            new ContentProperties( aResource ) );
+                 }
++
++                xDataSink->setInputStream( xIn );
+             }
+             catch ( DAVException const & e )
+             {
+@@ -2175,11 +2246,19 @@ uno::Any Content::open(
+         }
+         else
+         {
+-            uno::Reference< io::XActiveDataSink > xDataSink
+-                = uno::Reference< io::XActiveDataSink >( rArg.Sink,
+-                                                         uno::UNO_QUERY );
+-            if ( xDataSink.is() )
++            uno::Reference< io::XActiveDataStreamer > xDataStreamer
++                = uno::Reference< io::XActiveDataStreamer >( rArg.Sink,
++                        uno::UNO_QUERY );
++            if ( xDataStreamer.is() && !m_bForceReadOnly )
+             {
++#if OSL_DEBUG_LEVEL > 0
++                fprintf( stderr, "WebDAV: rArg.Sink is XActiveDataStreamer\n" );
++#endif
++                // prepare the lock
++                ucb::Lock aLock;
++                aLock.Depth = ucb::LockDepth_ZERO;
++                aLock.Scope = ucb::LockScope_EXCLUSIVE;
++
+                 // PULL: wait for client read
+                 try
+                 {
+@@ -2226,43 +2226,61 @@
+                     // fill inputsream sync; return if all data present
+                     DAVResource aResource;
+                     std::vector< rtl::OUString > aHeaders;
+-//                        // Obtain list containing all HTTP headers that can
+-//                        // be mapped to UCB properties.
+-//                        ContentProperties::getMappableHTTPHeaders( aHeaders );
++                    //                        // Obtain list containing all HTTP headers that can
++                    //                        // be mapped to UCB properties.
++                    //                        ContentProperties::getMappableHTTPHeaders( aHeaders );
+ 
+-                    uno::Reference< io::XInputStream > xIn
++                    // if the locking or the creation of the stream below
++		    // fails, we are read only at the next try
++		    m_bForceReadOnly = sal_True;
++
++		    m_xResAccess->LOCK( aLock, xEnv );
++
++		    uno::Reference< io::XStream > xStream
+                         = xResAccess->GET( aHeaders, aResource, xEnv );
+ 
++                    // pass the lock to the stream
++		    static_cast< NeonInputStream* >( xStream.get() )->SetLock( aLock, m_xResAccess->getURL() );
++
++		    // everything went well wrt. locking
++		    m_bForceReadOnly = sal_False;
+                     {
++
+                         osl::MutexGuard aGuard( m_aMutex );
+                         m_xCachedProps.reset(
+-                            new ContentProperties( aResource ) );
++                            	new ContentProperties( aResource ) );
+ 
+                         m_xResAccess.reset( 
+                             new DAVResourceAccess( *xResAccess.get() ) );
+ 
+                     }
+ 
+-                    xDataSink->setInputStream( xIn );
++                    xDataStreamer->setStream( xStream );
+                 }
+                 catch ( DAVException const & e )
+                 {
++		    m_xResAccess->UNLOCK( aLock, xEnv );
++		    m_bForceReadOnly = sal_False;
++
+                     cancelCommandExecution( e, xEnv );
+                     // Unreachable
+                 }
+             }
+             else
+             {
++#if OSL_DEBUG_LEVEL > 0
++                fprintf( stderr, "WebDAV: unsupported rArg.Sink\n" );
++#endif
+                 // Note: aOpenCommand.Sink may contain an XStream
+                 //       implementation. Support for this type of
+                 //       sink is optional...
+                 ucbhelper::cancelCommandExecution(
+-                    uno::makeAny(
+-                        ucb::UnsupportedDataSinkException(
+-                            rtl::OUString(),
+-                            static_cast< cppu::OWeakObject * >( this ),
+-                            rArg.Sink ) ),
+-                    xEnv );
++                        uno::makeAny(
++                            ucb::UnsupportedDataSinkException(
++                                rtl::OUString(),
++                                static_cast< cppu::OWeakObject * >( this ),
++                                rArg.Sink ) ),
++                        xEnv );
+                 // Unreachable
+             }
+         }
+@@ -2242,6 +2340,9 @@ void Content::post(
+     uno::Reference< io::XActiveDataSink > xSink( rArg.Sink, uno::UNO_QUERY );
+     if ( xSink.is() )
+     {
++#if OSL_DEBUG_LEVEL > 0
++        fprintf( stderr, "WebDAV: rArg.Sink is XActiveDataSink\n" );
++#endif
+         try
+         {
+             uno::Reference< io::XInputStream > xResult
+@@ -2262,6 +2363,9 @@ void Content::post(
+         uno::Reference< io::XOutputStream > xResult( rArg.Sink, uno::UNO_QUERY );
+         if ( xResult.is() )
+         {
++#if OSL_DEBUG_LEVEL > 0
++            fprintf( stderr, "WebDAV: rArg.Sink is XOutputStream\n" );
++#endif
+             try
+             {
+                 m_xResAccess->POST( rArg.MediaType,
+@@ -2278,6 +2382,9 @@ void Content::post(
+         }
+         else
+         {
++#if OSL_DEBUG_LEVEL > 0
++            fprintf( stderr, "WebDAV: rArg.Sink is XActiveDataStreamer (or something)\n" );
++#endif
+             ucbhelper::cancelCommandExecution(
+                 uno::makeAny(
+                     ucb::UnsupportedDataSinkException(
+diff --git a/ucb/source/ucp/webdav/webdavcontent.hxx b/ucb/source/ucp/webdav/webdavcontent.hxx
+index a4589a5..073c57f 100644
+--- ucb/source/ucp/webdav/webdavcontent.hxx
++++ ucb/source/ucp/webdav/webdavcontent.hxx
+@@ -111,6 +111,7 @@ class Content : public ::ucbhelper::ContentImplHelper,
+ 	ContentProvider*  m_pProvider; // No need for a ref, base class holds object
+   	sal_Bool 		  m_bTransient;
+ 	sal_Bool          m_bCollection;
++	sal_Bool          m_bForceReadOnly;
+ 
+ private:
+ 	virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property >
+diff --git a/ucb/source/ucp/webdav/webdavcontentcaps.cxx b/ucb/source/ucp/webdav/webdavcontentcaps.cxx
+index c514903..abf958e 100644
+--- ucb/source/ucp/webdav/webdavcontentcaps.cxx
++++ ucb/source/ucp/webdav/webdavcontentcaps.cxx
+@@ -298,6 +298,24 @@ bool ContentProvider::getProperty(
+ 				    -1,
+                     getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
+                     beans::PropertyAttribute::BOUND ) );
++
++			m_pProps->insert(
++				beans::Property(
++					rtl::OUString(
++						RTL_CONSTASCII_USTRINGPARAM( "SupportsActiveStreaming" ) ),
++					-1,
++					getCppuBooleanType(),
++					beans::PropertyAttribute::BOUND
++						| beans::PropertyAttribute::READONLY ) );
++
++			m_pProps->insert(
++				beans::Property(
++					rtl::OUString(
++						RTL_CONSTASCII_USTRINGPARAM( "IsReadOnly" ) ),
++					-1,
++					getCppuBooleanType(),
++					beans::PropertyAttribute::BOUND
++						| beans::PropertyAttribute::READONLY ) );
+ 		}
+ 	}
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cjk-punctuation-compress.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cjk-punctuation-compress.diff
@@ -0,0 +1,69 @@
+diff -uNpr vcl-orig/source/gdi/sallayout.cxx vcl/source/gdi/sallayout.cxx
+--- vcl-orig/source/gdi/sallayout.cxx	2008-03-07 12:01:50.000000000 +0800
++++ vcl/source/gdi/sallayout.cxx	2008-02-26 20:35:04.000000000 +0800
+@@ -817,13 +817,20 @@ int SalLayout::CalcAsianKerning( sal_UCS
+         nResult = nTable[ c - 0x3000 ];
+     else switch( c )
+     {
+-        case ':': case ';': case '!':
++        /*case ':': case ';': case '!':
+             if( !bVertical )
+                 nResult = bLeft ? -1 : +1;  // 25% left and right
+             break;
++        */
+         case 0x30FB:
+             nResult = bLeft ? -1 : +1;      // 25% left/right/top/bottom
+             break;
++        case 0xFF09 : case 0xFF0C : case 0xFF1A : case 0xFF1B : case 0x2019 : case 0x201D : case 0xFF01 :
++            nResult = -2;
++            break;
++        case 0xFF08 : case 0x201C : case 0x2018 : 
++            nResult = +2;
++            break;
+         default:
+             break;
+     }
+@@ -1240,8 +1247,9 @@ void GenericSalLayout::ApplyAsianKerning
+     {
+         int n = pG->mnCharPos;
+         if( (n < nLength - 1)
+-        &&  (0x3000 == (0xFF00 & pStr[n]))
+-        &&  (0x3000 == (0xFF00 & pStr[n+1])) )
++        && ((0x3000 == (0xFF00 & pStr[n])) || (0x2010 == (0xFFF0 & pStr[n])) || (0xFF00 == (0xFF00 & pStr[n])))
++        &&  ((0x3000 == (0xFF00 & pStr[n+1])) || (0x2010 == (0xFFF0 & pStr[n+1])) || (0xFF00 == (0xFF00 & pStr[n+1])))
++        )
+         {
+             const bool bVertical = false;
+             long nKernFirst = +CalcAsianKerning( pStr[n], true, bVertical );
+@@ -1252,14 +1260,14 @@ void GenericSalLayout::ApplyAsianKerning
+             {
+                 int nGlyphWidth = pG->mnOrigWidth;
+                 nDelta = (nDelta * nGlyphWidth + 2) / 4;
+-                if( pG+1 == pGEnd )
++                //if( pG+1 == pGEnd )
+                     pG->mnNewWidth += nDelta;
+                 nOffset += nDelta;
+             }
+         }
+ 
+         if( pG+1 != pGEnd )
+-            pG->maLinearPos.X() += nOffset;
++            (pG+1)->maLinearPos.X() += nOffset;
+     }
+ }
+ 
+diff -uNpr vcl-orig/source/glyphs/gcach_layout.cxx vcl/source/glyphs/gcach_layout.cxx
+--- vcl-orig/source/glyphs/gcach_layout.cxx	2008-03-07 12:01:51.000000000 +0800
++++ vcl/source/glyphs/gcach_layout.cxx	2008-02-27 17:45:43.000000000 +0800
+@@ -98,9 +98,9 @@ void ServerFontLayout::AdjustLayout( Imp
+     GenericSalLayout::AdjustLayout( rArgs );
+ 
+     // apply asian kerning if the glyphs are not already formatted
+-    if( (rArgs.mnFlags & SAL_LAYOUT_KERNING_ASIAN)
++    if( /*(rArgs.mnFlags & SAL_LAYOUT_KERNING_ASIAN) &&*/ !rArgs.mpDXArray
+     && !(rArgs.mnFlags & SAL_LAYOUT_VERTICAL) )
+-        if( (rArgs.mpDXArray != NULL) || (rArgs.mnLayoutWidth != 0) )
++        //if( (rArgs.mpDXArray != NULL) || (rArgs.mnLayoutWidth != 0) )
+             ApplyAsianKerning( rArgs.mpStr, rArgs.mnLength );
+ 
+     // insert kashidas where requested by the formatting array
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gui-sc-delete.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gui-sc-delete.diff
@@ -0,0 +1,22 @@
+Index: sc/source/ui/view/cellsh1.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/cellsh1.cxx,v
+retrieving revision 1.36
+diff -u -p -u -r1.36 cellsh1.cxx
+--- sc/source/ui/view/cellsh1.cxx	4 Oct 2004 20:21:53 -0000	1.36
++++ sc/source/ui/view/cellsh1.cxx	16 Dec 2004 17:47:32 -0000
+@@ -373,12 +373,12 @@ void ScCellShell::ExecuteEdit( SfxReques
+ 		//	Inhalte von Zellen loeschen
+ 		//
+ 
+-		case SID_DELETE_CONTENTS:
++		case SID_DELETE:
+ 			pTabViewShell->DeleteContents( IDF_CONTENTS );
+ 			rReq.Done();
+ 			break;
+ 
+-		case SID_DELETE:
++		case SID_DELETE_CONTENTS:
+ 			{
+ 				USHORT	nFlags = IDF_NONE;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/raise-annotation-priority-above-charproperties-i53885.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/raise-annotation-priority-above-charproperties-i53885.diff
@@ -0,0 +1,27 @@
+Index: source/filter/ww8/ww8scan.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/filter/ww8/ww8scan.cxx,v
+retrieving revision 1.132
+diff -u -r1.132 ww8scan.cxx
+--- sw/source/filter/ww8/ww8scan.cxx	25 May 2007 13:03:35 -0000	1.132
++++ sw/source/filter/ww8/ww8scan.cxx	12 Oct 2007 10:06:35 -0000
+@@ -4349,13 +4349,15 @@
+         pBkm = &aD[1];
+         pEdn = &aD[2];
+         pFtn = &aD[3];
+-        pAnd = &aD[4];
+ 
+-        pPcd = ( pBase->pPLCFx_PCD ) ? &aD[5] : 0;
++        pPcd = ( pBase->pPLCFx_PCD ) ? &aD[4] : 0;
+         //pPcdA index == pPcd index + 1
+-        pPcdA = ( pBase->pPLCFx_PCDAttrs ) ? &aD[6] : 0;
++        pPcdA = ( pBase->pPLCFx_PCDAttrs ) ? &aD[5] : 0;
++
++        pChp = &aD[6];
++
++        pAnd = &aD[7];
+ 
+-        pChp = &aD[7];
+         pPap = &aD[8];
+         pSep = &aD[9];
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/toolbars_framework.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/toolbars_framework.diff
@@ -0,0 +1,21 @@
+diff -Naur framework.old/uiconfig/startmodule/toolbar/standardbar.xml framework/uiconfig/startmodule/toolbar/standardbar.xml
+--- framework.old/uiconfig/startmodule/toolbar/standardbar.xml	2005-03-21 14:29:01.000000000 +0100
++++ framework/uiconfig/startmodule/toolbar/standardbar.xml	2008-04-10 09:57:50.000000000 +0200
+@@ -1,11 +1,11 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+ <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+- <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+- <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:style="dropdown"/>
+- <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:helpid="helpid:5500" toolbar:visible="false"/>
+- <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501"/>
++ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" />
++ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:style="dropdown" />
++ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:helpid="helpid:5500" />
++ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+- <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false"/>
++ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" />
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-svtools.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-svtools.diff
@@ -0,0 +1,299 @@
+cvs diff: Diffing svtools
+cvs diff: Diffing svtools/bmpmaker
+cvs diff: Diffing svtools/inc
+cvs diff: Diffing svtools/inc/pch
+cvs diff: Diffing svtools/inc/svtools
+cvs diff: Diffing svtools/prj
+cvs diff: Diffing svtools/qa
+cvs diff: Diffing svtools/qa/unoapi
+cvs diff: Diffing svtools/source
+cvs diff: Diffing svtools/source/brwbox
+cvs diff: Diffing svtools/source/config
+cvs diff: Diffing svtools/source/config/test
+cvs diff: Diffing svtools/source/contnr
+cvs diff: Diffing svtools/source/control
+cvs diff: Diffing svtools/source/dialogs
+cvs diff: Diffing svtools/source/edit
+cvs diff: Diffing svtools/source/filepicker
+cvs diff: Diffing svtools/source/filerec
+cvs diff: Diffing svtools/source/filter.vcl
+cvs diff: Diffing svtools/source/filter.vcl/filter
+cvs diff: Diffing svtools/source/filter.vcl/igif
+cvs diff: Diffing svtools/source/filter.vcl/ixbm
+cvs diff: Diffing svtools/source/filter.vcl/ixpm
+cvs diff: Diffing svtools/source/filter.vcl/jpeg
+cvs diff: Diffing svtools/source/filter.vcl/wmf
+cvs diff: Diffing svtools/source/fsstor
+cvs diff: Diffing svtools/source/hatchwindow
+cvs diff: Diffing svtools/source/inc
+Index: svtools/source/inc/unoiface.hxx
+===================================================================
+RCS file: /cvs/util/svtools/source/inc/unoiface.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.216.1
+diff -p -u -u -p -b -w -B -r1.10 -r1.10.216.1
+--- svtools/source/inc/unoiface.hxx	27 Jun 2007 21:37:54 -0000	1.10
++++ svtools/source/inc/unoiface.hxx	14 Feb 2008 14:11:12 -0000	1.10.216.1
+@@ -129,6 +129,9 @@ public:
+ 
+     // ::com::sun::star::awt::XWindow
+     void SAL_CALL setFocus(  ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ 
+@@ -180,6 +183,9 @@ public:
+     void SAL_CALL getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException);
+ 
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -229,6 +235,9 @@ protected:
+ 	::com::sun::star::uno::Any	convertEffectiveValue(const ::com::sun::star::uno::Any& rValue);
+ 
+ 	virtual void	SetWindow(Window* _pWindow);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ 
+@@ -296,6 +305,9 @@ protected:
+ 
+     // VCLXImageConsumer overridables
+     virtual void    ImplSetNewImage();
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ 
+@@ -335,6 +347,9 @@ public:
+     sal_Int16 SAL_CALL getDecimalDigits(  ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL setStrictFormat( sal_Bool bStrict ) throw(::com::sun::star::uno::RuntimeException);
+     sal_Bool SAL_CALL isStrictFormat(  ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -376,6 +391,9 @@ public:
+     sal_Int16 SAL_CALL getDecimalDigits(  ) throw(::com::sun::star::uno::RuntimeException);
+     void SAL_CALL setStrictFormat( sal_Bool bStrict ) throw(::com::sun::star::uno::RuntimeException);
+     sal_Bool SAL_CALL isStrictFormat(  ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -415,6 +433,9 @@ public:
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ //	----------------------------------------------------
+@@ -428,6 +449,9 @@ public:
+ 
+ 	// ::com::sun::star::awt::VclWindowPeer
+     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++
++    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
++    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+ };
+ 
+ #endif	// _SVT_UNOIFACE_HXX
+cvs diff: Diffing svtools/source/items
+cvs diff: Diffing svtools/source/items1
+cvs diff: Diffing svtools/source/java
+cvs diff: Diffing svtools/source/memtools
+cvs diff: Diffing svtools/source/misc
+cvs diff: Diffing svtools/source/misc1
+cvs diff: Diffing svtools/source/notify
+cvs diff: Diffing svtools/source/numbers
+cvs diff: Diffing svtools/source/passwordcontainer
+cvs diff: Diffing svtools/source/plugapp
+cvs diff: Diffing svtools/source/productregistration
+cvs diff: Diffing svtools/source/svdde
+cvs diff: Diffing svtools/source/svhtml
+cvs diff: Diffing svtools/source/svrtf
+cvs diff: Diffing svtools/source/svsql
+cvs diff: Diffing svtools/source/syslocale
+cvs diff: Diffing svtools/source/undo
+cvs diff: Diffing svtools/source/uno
+Index: svtools/source/uno/unoiface.cxx
+===================================================================
+RCS file: /cvs/util/svtools/source/uno/unoiface.cxx,v
+retrieving revision 1.30
+retrieving revision 1.30.26.1
+diff -p -u -u -p -b -w -B -r1.30 -r1.30.26.1
+--- svtools/source/uno/unoiface.cxx	29 Jan 2008 15:25:40 -0000	1.30
++++ svtools/source/uno/unoiface.cxx	14 Feb 2008 14:11:12 -0000	1.30.26.1
+@@ -574,6 +574,18 @@ void SAL_CALL VCLXMultiLineEdit::setFocu
+ 		GetWindow()->GrabFocus();
+ }
+ 
++void VCLXMultiLineEdit::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     // FIXME: elide duplication ?
++                     BASEPROPERTY_LINE_END_FORMAT,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_MAXTEXTLEN,
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds, true );
++
++}
+ //	----------------------------------------------------
+ //	class VCLXFileDialog
+ //	----------------------------------------------------
+@@ -913,6 +925,16 @@ void VCLXFileControl::getColumnsAndLines
+ 		nCols = (sal_Int16) pControl->GetEdit().GetMaxVisChars();
+ }
+ 
++void VCLXFileControl::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     // FIXME: elide duplication ?
++                     BASEPROPERTY_HIDEINACTIVESELECTION,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds, true );
++}
++
++
+ //	----------------------------------------------------
+ //	class SVTXFormattedField
+ //	----------------------------------------------------
+@@ -1484,6 +1506,30 @@ void SVTXFormattedField::NotifyTextListe
+ 	}
+ }
+ 
++void SVTXFormattedField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     // FIXME: elide duplication ?
++                     BASEPROPERTY_EFFECTIVE_MIN,
++                     BASEPROPERTY_VALUEMIN_DOUBLE,
++                     BASEPROPERTY_EFFECTIVE_MAX,
++                     BASEPROPERTY_VALUEMAX_DOUBLE,
++                     BASEPROPERTY_EFFECTIVE_DEFAULT,
++                     BASEPROPERTY_TREATASNUMBER,
++                     BASEPROPERTY_EFFECTIVE_VALUE,
++                     BASEPROPERTY_VALUE_DOUBLE,
++                     BASEPROPERTY_VALUESTEP_DOUBLE,
++                     BASEPROPERTY_DECIMALACCURACY,
++                     BASEPROPERTY_FORMATSSUPPLIER,
++                     BASEPROPERTY_NUMSHOWTHOUSANDSEP,
++                     BASEPROPERTY_FORMATKEY,
++                     BASEPROPERTY_TREATASNUMBER,
++                     BASEPROPERTY_ENFORCE_FORMAT,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds, true );
++    VCLXSpinField::ImplGetPropertyIds( rIds );
++}
++
+ 
+ //	----------------------------------------------------
+ //	class SVTXRoadmap
+@@ -1730,6 +1776,18 @@ void SVTXRoadmap::ImplSetNewImage()
+ 	pButton->SetRoadmapBitmap( GetBitmap() );
+ }
+ 
++void SVTXRoadmap::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_COMPLETE,
++                     BASEPROPERTY_ACTIVATED,
++                     BASEPROPERTY_CURRENTITEMID,
++                     BASEPROPERTY_TEXT,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds, true );
++    VCLXImageConsumer::ImplGetPropertyIds( rIds );
++}
++
+ //	----------------------------------------------------
+ //	class SVTXNumericField
+ //	----------------------------------------------------
+@@ -1892,6 +1950,11 @@ sal_Bool SVTXNumericField::isStrictForma
+ 	return pField ? pField->IsStrictFormat() : sal_False;
+ }
+ 
++void SVTXNumericField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    SVTXFormattedField::ImplGetPropertyIds( rIds );
++}
++
+ //	----------------------------------------------------
+ //	class SVTXCurrencyField
+ //	----------------------------------------------------
+@@ -2122,6 +2185,15 @@ void SVTXCurrencyField::setProperty( con
+ 	return SVTXFormattedField::getProperty(PropertyName);
+ }
+ 
++void SVTXCurrencyField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_CURRENCYSYMBOL,
++                     BASEPROPERTY_CURSYM_POSITION,
++                     0);
++    SVTXFormattedField::ImplGetPropertyIds( rIds );
++}
++
+ 
+ //	----------------------------------------------------
+ //	class VCLXProgressBar
+@@ -2359,6 +2431,17 @@ void VCLXProgressBar::setProperty( const
+ 	return aProp;
+ }
+ 
++void VCLXProgressBar::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_PROGRESSVALUE,
++                     BASEPROPERTY_PROGRESSVALUE_MIN,
++                     BASEPROPERTY_PROGRESSVALUE_MAX,
++                     BASEPROPERTY_FILLCOLOR,
++                     0);
++    VCLXWindow::ImplGetPropertyIds( rIds, true );
++}
++
+ 
+ //	----------------------------------------------------
+ //	class SVTXDateField
+@@ -2395,3 +2478,11 @@ void SAL_CALL SVTXDateField::setProperty
+         break;
+     }
+ }
++
++void SVTXDateField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
++{
++    PushPropertyIds( rIds,
++                     BASEPROPERTY_TEXTLINECOLOR,
++                     0);
++    VCLXDateField::ImplGetPropertyIds( rIds );
++}
+cvs diff: Diffing svtools/source/urlobj
+cvs diff: Diffing svtools/uno
+cvs diff: Diffing svtools/unx
+cvs diff: Diffing svtools/unx/inc
+cvs diff: Diffing svtools/unx/source
+cvs diff: Diffing svtools/unx/source/svdde
+cvs diff: Diffing svtools/util
+cvs diff: Diffing svtools/util/defs
+cvs diff: Diffing svtools/win
+cvs diff: Diffing svtools/win/res
+cvs diff: Diffing svtools/workben
+cvs diff: Diffing svtools/workben/cui
+cvs diff: Diffing svtools/workben/treecontrol
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/presentation-minimizer-no-license.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/presentation-minimizer-no-license.diff
@@ -0,0 +1,73 @@
+Index: source/minimizer/description.xml
+===================================================================
+RCS file: /cvs/graphics/sdext/source/minimizer/description.xml,v
+retrieving revision 1.4.4.1
+diff -u -u -r1.4.4.1 description.xml
+--- sdext/source/minimizer/description.xml	15 Nov 2007 16:24:05 -0000	1.4.4.1
++++ sdext/source/minimizer/description.xml	16 Nov 2007 15:00:27 -0000
+@@ -6,9 +6,4 @@
+        <dependencies>
+                <OpenOffice.org-minimal-version value="2.3" dep:name="OpenOffice.org 2.3"/>
+        </dependencies>
+-       <registration>
+-        <simple-license accept-by="admin" default-license-id="lic-en-US">
+-            <license-text xlink:href="licensefile" lang="isocode" license-id="lic-isocode"/>
+-        </simple-license>
+-    </registration>
+ </description>
+Index: source/minimizer/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/sdext/source/minimizer/makefile.mk,v
+retrieving revision 1.6
+diff -u -u -r1.6 makefile.mk
+--- sdext/source/minimizer/makefile.mk	1 Nov 2007 14:10:57 -0000	1.6
++++ sdext/source/minimizer/makefile.mk	16 Nov 2007 15:00:27 -0000
+@@ -48,12 +48,6 @@
+ 
+ DESCRIPTION:=$(MISC)$/SunPresentationMinimizer$/description.xml
+ 
+-.IF "$(GUI)" == "WIN" || "$(GUI)" == "WNT"
+-PACKLICS:=$(foreach,i,$(alllangiso) $(MISC)$/SunPresentationMinimizer$/registry$/license_$i)
+-.ELSE
+-PACKLICS:=$(foreach,i,$(alllangiso) $(MISC)$/SunPresentationMinimizer$/registry$/LICENSE_$i)
+-.ENDIF
+-
+ DLLPRE=
+ common_build_zip=
+ 
+@@ -117,7 +111,7 @@
+ COMPONENT_LIBRARY= \
+     $(MISC)$/SunPresentationMinimizer$/SunPresentationMinimizer.uno$(DLLPOST)
+ 
+-ZIP1DEPS=		$(PACKLICS) $(DESCRIPTION) $(COMPONENT_MANIFEST) $(COMPONENT_FILES) $(COMPONENT_BITMAPS) $(COMPONENT_HELP) $(COMPONENT_LIBRARY) $(COMPONENT_MERGED_XCU)
++ZIP1DEPS=		$(DESCRIPTION) $(COMPONENT_MANIFEST) $(COMPONENT_FILES) $(COMPONENT_BITMAPS) $(COMPONENT_HELP) $(COMPONENT_LIBRARY) $(COMPONENT_MERGED_XCU)
+ ZIP1TARGET=		sun-presentation-minimizer
+ ZIP1DIR=		$(MISC)$/SunPresentationMinimizer
+ ZIP1EXT=		.oxt
+@@ -144,16 +138,6 @@
+ 	@@-$(MKDIRHIER) $(@:d)
+     $(COPY) $< $@
+ 
+-.IF "$(GUI)" == "WIN" || "$(GUI)" == "WNT"
+-$(PACKLICS) : $(SOLARBINDIR)$/osl$/license$$(@:b:s/_/./:e:s/./_/)$$(@:e).txt
+-	@@-$(MKDIRHIER) $(@:d)
+-	$(GNUCOPY) $< $@
+-.ELSE
+-$(PACKLICS) : $(SOLARBINDIR)$/osl$/LICENSE$$(@:b:s/_/./:e:s/./_/)$$(@:e)
+-	@@-$(MKDIRHIER) $(@:d)
+-	$(GNUCOPY) $< $@
+-.ENDIF
+-
+ $(MISC)$/SunPresentationMinimizer$/registry$/data$/%.xcu : $(MISC)$/$(EXTNAME)$/merge$/%.xcu
+ 	@@-$(MKDIRHIER) $(@:d)
+ 	$(GNUCOPY) $< $@
+@@ -172,6 +156,7 @@
+ .ENDIF			# "$(LAST_WITH_LANG)"!="$(WITH_LANG)"
+ $(DESCRIPTION) $(PHONYDESC) : $$(@:f)
+ 	@@-$(MKDIRHIER) $(@:d)
+-	$(PERL) $(SOLARENV)$/bin$/licinserter.pl description.xml registry/LICENSE_xxx $@
+-	@echo LAST_WITH_LANG=$(WITH_LANG) > $(MISC)$/$(TARGET)_lang_track.mk
++	$(COPY) $< $@
++#	$(PERL) $(SOLARENV)$/bin$/licinserter.pl description.xml registry/LICENSE_xxx $@
++#	@echo LAST_WITH_LANG=$(WITH_LANG) > $(MISC)$/$(TARGET)_lang_track.mk
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-html-insert-unknown-tags.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-html-insert-unknown-tags.diff
@@ -0,0 +1,37 @@
+Index: sw/source/filter/html/swhtml.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/filter/html/swhtml.cxx,v
+retrieving revision 1.43
+diff -u -p -r1.43 swhtml.cxx
+--- sw/source/filter/html/swhtml.cxx	27 Sep 2007 09:51:55 -0000	1.43
++++ sw/source/filter/html/swhtml.cxx	17 Dec 2007 16:26:18 -0000
+@@ -1348,6 +1348,21 @@ void __EXPORT SwHTMLParser::NextToken( i
+ 		}
+ 		else if( aUnknownToken.Len() )
+ 		{
++			// Fix i#59064 : Paste content of unknown tags.
++			if (aToken.Len() > 0)
++			{
++				if( !bDocInitalized )
++					DocumentDetected();
++				pDoc->Insert( *pPam, aToken, true );
++
++				// wenn es noch vorlaefige Absatz-Attribute gibt, der Absatz aber
++				// nicht leer ist, dann sind die Absatz-Attribute entgueltig.
++				if( aParaAttrs.Count() )
++					aParaAttrs.Remove( 0, aParaAttrs.Count() );
++
++				SetAttr();
++			}
++
+ 			// Unbekannte Token im Header werden nur durch ein passendes
+ 			// End-Token, </HEAD> oder <BODY> wieder beendet. Darin wird Text
+ 			// ignoriert.
+@@ -1365,6 +1380,7 @@ void __EXPORT SwHTMLParser::NextToken( i
+ 			case HTML_TEXTTOKEN:
+ 				return;
+ 			default:
++				aUnknownToken.Erase();
+ 				break;
+ 			}
+ 		}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sw.diff
@@ -0,0 +1,9 @@
+--- sw/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sw/prj/tests.lst	2007-09-07 14:32:15.000000000 +0200
+@@ -0,0 +1,6 @@
++sw   sw\qa\complex\accessibility                        nmake - all sw_qa_complex_accessibility NULL
++sw   sw\qa\complex\checkColor                           nmake - all sw_qa_complex_checkColor NULL
++sw   sw\qa\complex\indeterminateState                   nmake - all sw_qa_complex_indeterminateState NULL
++sw   sw\qa\complex\writer                               nmake - all sw_qa_complex_writer NULL
++sw   sw\qa\core                                         nmake - all sw_qa_core NULL
++#does not build: sw   sw\qa\unoapi                                       nmake - all sw_qa_unoapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium-splitted-language-pack-solenv.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium-splitted-language-pack-solenv.diff
@@ -0,0 +1,25 @@
+--- solenv/bin/modules/installer/languagepack.pm.orig	2008-03-25 00:19:45.000000000 +0100
++++ solenv/bin/modules/installer/languagepack.pm	2008-03-23 15:36:44.000000000 +0100
+@@ -98,6 +98,11 @@
+ 						if ( $oneitem->{'Dir'} eq "gid_Dir_Fonts_Truetype" ) { $oneitem->{'modules'} = "gid_Module_Langpack_Fonts_$locallang"; }
+ 						if ( $oneitem->{'Dir'} eq "gid_Dir_Resource" ) { $oneitem->{'modules'} = "gid_Module_Langpack_Resource_$locallang"; }
+ 						if ( $oneitem->{'Dir'} eq "gid_Dir_Help_Isolanguage" ) { $oneitem->{'modules'} = "gid_Module_Langpack_Help_$locallang"; }
++						if (( $oneitem->{'Dir'} eq "gid_Dir_Samples_Language") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Drawings") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Formulas") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Presentations") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Spreadsheets") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Texts") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Texts_Kapitel") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Databases") || ($oneitem->{'Dir'} eq "gid_Dir_Samples_Databases_Dateien")) { $oneitem->{'modules'} = "gid_Module_Optional_Accessories_Samples_$locallang"; }
++						if (( $oneitem->{'Dir'} eq "gid_Dir_Template_Language") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Educate") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Finance") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Forms") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Labels") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Layout") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Misc") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Officorr") || ($oneitem->{'Dir'} eq "id_Dir_Template_Offimisc") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Personal") || ($oneitem->{'Dir'} eq "gid_Dir_Template_Presnt" )) { $oneitem->{'modules'} = "gid_Module_Optional_Accessories_Templates_$locallang"; }
++						if ( $oneitem->{'Dir'} eq "gid_Dir_Samples_Documentations" ) { $oneitem->{'modules'} = "gid_Module_Optional_Accessories_Documentations_$locallang"; }
++						if ( $oneitem->{'Dir'} eq "gid_Dir_Samples_Advertisement" ) { $oneitem->{'modules'} = "gid_Module_Optional_Accessories_Advertisement_$locallang"; }
++
+ 					}
+ 				}
+ 
+@@ -204,6 +209,10 @@
+ 		if ( ${$alldirs}[$i] =~ /-fonts/ ) { next; } 
+ 		if ( ${$alldirs}[$i] =~ /-help/ ) { next; } 
+ 		if ( ${$alldirs}[$i] =~ /-res/ ) { next; } 
++        	if ( ${$alldirs}[$i] =~ /-extra-samples/ ) { next; } 
++		if ( ${$alldirs}[$i] =~ /-extra-templates/ ) { next; } 
++		if ( ${$alldirs}[$i] =~ /-extra-documentations/ ) { next; } 
++		if ( ${$alldirs}[$i] =~ /-extra-advertisement/ ) { next; } 
+ 	
+ 		$packagename = ${$alldirs}[$i];
+ 		last;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-idlc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-idlc.diff
@@ -0,0 +1,4 @@
+--- idlc/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ idlc/prj/tests.lst	2007-09-07 09:22:19.000000000 +0200
+@@ -0,0 +1 @@
++ic   idlc\test\parser                                   nmake - all ic_test_parser ic_source NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-gcc430two.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-gcc430two.diff
@@ -0,0 +1,1118 @@
+--- bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx.old   2006-09-16 17:48:08.000000000 +0200
++++ bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx       2007-11-22 19:56:53.000000000 +0100
+@@ -36,6 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_bridges.hxx"
+
++#include <string.h>
++
+ #include <com/sun/star/uno/genfunc.hxx>
+ #include <uno/data.h>
+ #include <typelib/typedescription.hxx>
+--- registry/tools/checksingleton.cxx	15 Oct 2007 12:28:30 -0000	1.11
++++ registry/tools/checksingleton.cxx	25 Jan 2008 09:45:26 -0000
+@@ -36,6 +36,7 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_registry.hxx"
+ #include <stdio.h>
++#include <string.h>
+ 
+ #include <set>
+
+--- idlc/source/idlccompile.cxx	2 Nov 2007 12:26:14 -0000	1.22
++++ idlc/source/idlccompile.cxx	25 Jan 2008 10:05:13 -0000
+@@ -71,6 +71,8 @@
+ #endif
+ #endif
+ 
++#include <string.h>
++
+ using namespace ::rtl;
+ using namespace ::osl;
+
+--- idlc/source/idlcproduce.cxx	15 Oct 2007 12:44:28 -0000	1.15
++++ idlc/source/idlcproduce.cxx	25 Jan 2008 10:06:19 -0000
+@@ -63,6 +63,8 @@
+ #include <errno.h>
+ #endif
+ 
++#include <string.h>
++
+ using namespace ::rtl;
+ using namespace ::osl;
+ 
+Index: source/rdbmaker/rdboptions.cxx
+===================================================================
+RCS file: /cvs/udk/rdbmaker/source/rdbmaker/rdboptions.cxx,v
+retrieving revision 1.6
+diff -u -u -r1.6 rdboptions.cxx
+--- rdbmaker/source/rdbmaker/rdboptions.cxx	20 Jun 2006 04:10:27 -0000	1.6
++++ rdbmaker/source/rdbmaker/rdboptions.cxx	25 Jan 2008 10:15:03 -0000
+@@ -33,6 +33,7 @@
+  *
+  ************************************************************************/
+ #include 	<stdio.h>
++#include	<string.h>
+ 
+ #include	"rdboptions.hxx"
+ 
+Index: gcc3_linux_x86-64/except.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx,v
+retrieving revision 1.6
+diff -u -u -r1.6 except.cxx
+--- bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx	13 Nov 2007 14:18:22 -0000	1.6
++++ bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx	25 Jan 2008 10:18:40 -0000
+@@ -37,6 +37,7 @@
+ #include "precompiled_bridges.hxx"
+ 
+ #include <stdio.h>
++#include <string.h>
+ #include <dlfcn.h>
+ #include <cxxabi.h>
+ #include <hash_map>
+Index: context.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/remote/context/context.cxx,v
+retrieving revision 1.10
+diff -u -u -r1.10 context.cxx
+--- bridges/source/remote/context/context.cxx	16 Sep 2006 15:58:56 -0000	1.10
++++ bridges/source/remote/context/context.cxx	25 Jan 2008 10:20:28 -0000
+@@ -36,6 +36,7 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_bridges.hxx"
+ #include <stdio.h>
++#include <string.h>
+ #include <list>
+ #include <hash_map>
+ #include <utility>
+Index: urp_marshal.hxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/remote/urp/urp_marshal.hxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 urp_marshal.hxx
+--- bridges/source/remote/urp/urp_marshal.hxx	7 Sep 2005 22:47:30 -0000	1.7
++++ bridges/source/remote/urp/urp_marshal.hxx	25 Jan 2008 10:22:13 -0000
+@@ -54,6 +54,8 @@
+ #include "urp_marshal_decl.hxx"
+ #endif
+ 
++#include <string.h>
++
+ struct remote_Interface;
+ 
+ namespace bridges_urp
+Index: source/elements.cxx
+===================================================================
+RCS file: /cvs/udk/jvmfwk/source/elements.cxx,v
+retrieving revision 1.19
+diff -u -u -r1.19 elements.cxx
+--- jvmfwk/source/elements.cxx	20 Jun 2007 17:13:59 -0000	1.19
++++ jvmfwk/source/elements.cxx	25 Jan 2008 10:25:05 -0000
+@@ -50,6 +50,7 @@
+ #include "libxml/xpathInternals.h"
+ #include "rtl/bootstrap.hxx"
+ #include "boost/optional.hpp"
++#include <string.h>
+ // #define NS_JAVA_FRAMEWORK "http://openoffice.org/2004/java/framework/1.0"
+ // #define NS_SCHEMA_INSTANCE "http://www.w3.org/2001/XMLSchema-instance"
+ 
+Index: source/fwkutil.cxx
+===================================================================
+RCS file: /cvs/udk/jvmfwk/source/fwkutil.cxx,v
+retrieving revision 1.27
+diff -u -u -r1.27 fwkutil.cxx
+--- jvmfwk/source/fwkutil.cxx	15 Oct 2007 12:07:40 -0000	1.27
++++ jvmfwk/source/fwkutil.cxx	25 Jan 2008 10:26:40 -0000
+@@ -47,6 +47,7 @@
+ #endif
+ 
+ #include <string>
++#include <string.h>
+ #include "osl/mutex.hxx"
+ #include "osl/module.hxx"
+ #include "osl/thread.hxx"
+Index: plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+===================================================================
+RCS file: /cvs/udk/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx,v
+retrieving revision 1.23
+diff -u -u -r1.23 sunjavaplugin.cxx
+--- jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx	13 Nov 2007 14:20:50 -0000	1.23
++++ jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx	25 Jan 2008 10:27:48 -0000
+@@ -38,6 +38,7 @@
+ #if OSL_DEBUG_LEVEL > 0
+ #include <stdio.h>
+ #endif
++#include <string.h>
+ 
+ #include "boost/scoped_array.hpp"
+ #include "osl/diagnose.h"
+Index: plugins/sunmajor/pluginlib/util.cxx
+===================================================================
+RCS file: /cvs/udk/jvmfwk/plugins/sunmajor/pluginlib/util.cxx,v
+retrieving revision 1.14
+diff -u -u -r1.14 util.cxx
+--- jvmfwk/plugins/sunmajor/pluginlib/util.cxx	6 Dec 2007 17:44:50 -0000	1.14
++++ jvmfwk/plugins/sunmajor/pluginlib/util.cxx	25 Jan 2008 10:28:59 -0000
+@@ -61,6 +61,7 @@
+ #pragma warning(pop)
+ #endif
+ #endif
++#include <string.h>
+ 
+ #include "sunjre.hxx"
+ #include "vendorlist.hxx"
+Index: sax_expat.cxx
+===================================================================
+RCS file: /cvs/xml/sax/source/expatwrap/sax_expat.cxx,v
+retrieving revision 1.15
+diff -u -u -r1.15 sax_expat.cxx
+--- sax/source/expatwrap/sax_expat.cxx	19 Jun 2006 23:07:26 -0000	1.15
++++ sax/source/expatwrap/sax_expat.cxx	25 Jan 2008 10:33:34 -0000
+@@ -33,6 +33,7 @@
+  *
+  ************************************************************************/
+ #include <stdlib.h>
++#include <string.h>
+ #include <sal/alloca.h>
+ #include <vector>
+
+--- sax/source/fastparser/fastparser.cxx-old	2008-01-25 11:34:58.000000000 +0100
++++ sax/source/fastparser/fastparser.cxx	2008-01-25 11:34:33.000000000 +0100
+@@ -65,6 +65,7 @@
+ #else
+ #include "expat/xmlparse.h"
+ #endif
++#include <string.h>
+ 
+ using ::rtl::OUString;
+ using ::rtl::OString;
+
+--- hwpfilter/source/formula.cpp	20 Jun 2006 00:52:46 -0000	1.3
++++ hwpfilter/source/formula.cpp	25 Jan 2008 10:40:54 -0000
+@@ -39,7 +39,7 @@
+ #include "nodes.h"
+ #include "mapping.h"
+ #include "hwpeq.h"
+-#include <iostream.h>
++#include <iostream>
+ 
+ extern LinkedList<Node> nodelist;
+ 
+Index: source/zipapi/MemoryByteGrabber.hxx
+===================================================================
+RCS file: /cvs/xml/package/source/zipapi/MemoryByteGrabber.hxx,v
+retrieving revision 1.5
+diff -u -u -r1.5 MemoryByteGrabber.hxx
+--- package/source/zipapi/MemoryByteGrabber.hxx	20 Jun 2006 06:13:19 -0000	1.5
++++ package/source/zipapi/MemoryByteGrabber.hxx	25 Jan 2008 10:47:26 -0000
+@@ -41,6 +41,7 @@
+ #ifndef _COM_SUN_STAR_IO_XSEEKABLE_HPP_
+ #include <com/sun/star/io/XSeekable.hpp>
+ #endif
++#include <string.h>
+ 
+ class MemoryByteGrabber 
+ {
+Index: source/zipapi/XUnbufferedStream.cxx
+===================================================================
+RCS file: /cvs/xml/package/source/zipapi/XUnbufferedStream.cxx,v
+retrieving revision 1.12
+diff -u -u -r1.12 XUnbufferedStream.cxx
+--- package/source/zipapi/XUnbufferedStream.cxx	17 Sep 2006 17:27:48 -0000	1.12
++++ package/source/zipapi/XUnbufferedStream.cxx	25 Jan 2008 10:47:26 -0000
+@@ -60,6 +60,7 @@
+ #include <EncryptedDataHeader.hxx>
+ #endif
+ #include <algorithm>
++#include <string.h>
+ 
+ #if 0
+ // for debugging purposes here
+? unxlngx6.pro
+Index: source/defaultnumberingprovider/defaultnumberingprovider.cxx
+===================================================================
+RCS file: /cvs/l10n/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx,v
+retrieving revision 1.28
+diff -u -u -r1.28 defaultnumberingprovider.cxx
+--- i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx	13 Nov 2007 14:32:47 -0000	1.28
++++ i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx	25 Jan 2008 10:52:32 -0000
+@@ -51,6 +51,7 @@
+ #include <localedata.hxx>
+ #include <nativenumbersupplier.hxx>
+ #include <stdio.h>
++#include <string.h>
+ 
+ #if OSL_DEBUG_LEVEL == 0 && !defined(NDEBUG)
+ #define NDEBUG
+Index: source/localedata/saxparser.cxx
+===================================================================
+RCS file: /cvs/l10n/i18npool/source/localedata/saxparser.cxx,v
+retrieving revision 1.13
+diff -u -u -r1.13 saxparser.cxx
+--- i18npool/source/localedata/saxparser.cxx	17 Sep 2006 09:22:14 -0000	1.13
++++ i18npool/source/localedata/saxparser.cxx	25 Jan 2008 10:52:32 -0000
+@@ -37,6 +37,7 @@
+ #include "precompiled_i18npool.hxx"
+ 
+ #include <stdio.h>
++#include <string.h>
+ #include <stack>
+ 
+ #include "sal/main.h"
+Index: source/search/textsearch.cxx
+===================================================================
+RCS file: /cvs/l10n/i18npool/source/search/textsearch.cxx,v
+retrieving revision 1.10
+diff -u -u -r1.10 textsearch.cxx
+--- i18npool/source/search/textsearch.cxx	5 Dec 2007 16:45:18 -0000	1.10
++++ i18npool/source/search/textsearch.cxx	25 Jan 2008 10:52:32 -0000
+@@ -85,6 +85,8 @@
+ #pragma warning( disable: 4786 )
+ #endif
+ 
++#include <string.h>
++
+ using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+? qa
+? unxlngx6.pro
+? prj/tests.lst
+Index: inc/bootstrp/command.hxx
+===================================================================
+RCS file: /cvs/util/tools/inc/bootstrp/command.hxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 command.hxx
+--- tools/inc/bootstrp/command.hxx	2 Nov 2007 12:59:41 -0000	1.4
++++ tools/inc/bootstrp/command.hxx	25 Jan 2008 10:56:47 -0000
+@@ -36,7 +36,7 @@
+ #ifndef COMMAND_HXX
+ #define COMMAND_HXX
+ 
+-#include <iostream.h>
++#include <iostream>
+ 
+ #include <tools/stream.hxx>
+ #define STRLEN 100
+Index: source/fsys/urlobj.cxx
+===================================================================
+RCS file: /cvs/util/tools/source/fsys/urlobj.cxx,v
+retrieving revision 1.60
+diff -u -u -r1.60 urlobj.cxx
+--- tools/source/fsys/urlobj.cxx	27 Jun 2007 22:12:02 -0000	1.60
++++ tools/source/fsys/urlobj.cxx	25 Jan 2008 10:56:47 -0000
+@@ -81,6 +81,8 @@
+ #define INCLUDED_LIMITS
+ #endif
+ 
++#include <string.h>
++
+ namespace unnamed_tools_urlobj {} using namespace unnamed_tools_urlobj;
+ 	// unnamed namespaces don't work well yet...
+
+--- psprint/source/helper/helper.cxx	16 Sep 2006 12:34:47 -0000	1.29
++++ psprint/source/helper/helper.cxx	25 Jan 2008 11:48:05 -0000
+@@ -39,6 +39,7 @@
+ #include <cstring>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <limits.h>
+ 
+ #include <psprint/helper.hxx>
+ #include <tools/string.hxx>
+Index: unx/source/app/i18n_im.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/app/i18n_im.cxx,v
+retrieving revision 1.37
+diff -u -u -r1.37 i18n_im.cxx
+--- vcl/unx/source/app/i18n_im.cxx	17 Sep 2006 12:32:10 -0000	1.37
++++ vcl/unx/source/app/i18n_im.cxx	25 Jan 2008 11:55:21 -0000
+@@ -37,6 +37,7 @@
+ #include "precompiled_vcl.hxx"
+ 
+ #include <stdio.h>
++#include <string.h>
+ #ifdef LINUX
+ #  ifndef __USE_XOPEN
+ #    define __USE_XOPEN
+Index: inc/xmloff/PropertySetInfoHash.hxx
+===================================================================
+RCS file: /cvs/xml/xmloff/inc/xmloff/PropertySetInfoHash.hxx,v
+retrieving revision 1.2
+diff -u -u -r1.2 PropertySetInfoHash.hxx
+--- xmloff/inc/xmloff/PropertySetInfoHash.hxx	11 Apr 2007 13:20:51 -0000	1.2
++++ xmloff/inc/xmloff/PropertySetInfoHash.hxx	25 Jan 2008 12:11:09 -0000
+@@ -39,6 +39,7 @@
+ #include <xmloff/PropertySetInfoKey.hxx>
+ #endif
+ 
++#include <string.h>
+ #include <memory>
+ 
+ struct PropertySetInfoHash
+--- xmloff/inc/xmloff/nmspmap.hxx.gcc43~        2007-04-11 15:27:58.000000000 +0200
++++ xmloff/inc/xmloff/nmspmap.hxx       2007-11-06 00:27:51.000000000 +0100
+@@ -61,6 +61,8 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+
++#include <limits.h>
++
+ const sal_uInt16 XML_NAMESPACE_XMLNS  = (USHRT_MAX-2);
+ const sal_uInt16 XML_NAMESPACE_NONE  = (USHRT_MAX-1);
+ const sal_uInt16 XML_NAMESPACE_UNKNOWN  = (USHRT_MAX);
+Index: source/draw/EnhancedCustomShapeToken.cxx
+===================================================================
+RCS file: /cvs/xml/xmloff/source/draw/EnhancedCustomShapeToken.cxx,v
+retrieving revision 1.9
+diff -u -u -r1.9 EnhancedCustomShapeToken.cxx
+--- xmloff/source/draw/EnhancedCustomShapeToken.cxx	17 Sep 2006 10:24:28 -0000	1.9
++++ xmloff/source/draw/EnhancedCustomShapeToken.cxx	25 Jan 2008 12:15:15 -0000
+@@ -43,6 +43,7 @@
+ #include <osl/mutex.hxx>
+ #endif
+ #include <hash_map>
++#include <string.h>
+ 
+ namespace xmloff { namespace EnhancedCustomShapeToken {
+ 
+Index: source/parse/sqlnode.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/parse/sqlnode.cxx,v
+retrieving revision 1.50.16.2
+diff -u -u -r1.50.16.2 sqlnode.cxx
+--- connectivity/source/parse/sqlnode.cxx	18 Jan 2008 15:10:05 -0000	1.50.16.2
++++ connectivity/source/parse/sqlnode.cxx	25 Jan 2008 12:24:10 -0000
+@@ -146,6 +146,7 @@
+ #ifndef TOOLS_DIAGNOSE_EX_H
+ #include <tools/diagnose_ex.h>
+ #endif
++#include <string.h>
+ 
+ 
+ using namespace ::com::sun::star::sdbc;
+Index: source/parse/sqlbison.y
+===================================================================
+RCS file: /cvs/dba/connectivity/source/parse/sqlbison.y,v
+retrieving revision 1.60.16.1
+diff -u -u -r1.60.16.1 sqlbison.y
+--- connectivity/source/parse/sqlbison.y	18 Jan 2008 15:09:48 -0000	1.60.16.1
++++ connectivity/source/parse/sqlbison.y	25 Jan 2008 12:25:54 -0000
+@@ -17,6 +17,7 @@
+ //--------------------------------------------------------------------------
+ 
+ #include <vector>
++#include <string.h>
+ 
+ #ifndef _CONNECTIVITY_SQLNODE_HXX
+ #include <connectivity/sqlnode.hxx>
+Index: source/commontools/sqlerror.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/commontools/sqlerror.cxx,v
+retrieving revision 1.2
+diff -u -u -r1.2 sqlerror.cxx
+--- connectivity/source/commontools/sqlerror.cxx	21 Nov 2007 14:59:40 -0000	1.2
++++ connectivity/source/commontools/sqlerror.cxx	25 Jan 2008 12:28:06 -0000
+@@ -46,6 +46,8 @@
+ #include <cppuhelper/exc_hlp.hxx>
+ #include <rtl/ustrbuf.hxx>
+ 
++#include <string.h>
++
+ //........................................................................
+ namespace connectivity
+ {
+Index: source/drivers/hsqldb/HStorageAccess.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/hsqldb/HStorageAccess.cxx,v
+retrieving revision 1.11
+diff -u -u -r1.11 HStorageAccess.cxx
+--- connectivity/source/drivers/hsqldb/HStorageAccess.cxx	17 Sep 2006 02:40:38 -0000	1.11
++++ connectivity/source/drivers/hsqldb/HStorageAccess.cxx	25 Jan 2008 12:29:58 -0000
+@@ -60,6 +60,7 @@
+ #include "diagnose_ex.h"
+ #endif
+ 
++#include <string.h>
+ 
+ using namespace ::com::sun::star::container;
+ using namespace ::com::sun::star::uno;
+Index: source/drivers/odbc/OConnection.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/odbc/OConnection.cxx,v
+retrieving revision 1.41.70.1
+diff -u -u -r1.41.70.1 OConnection.cxx
+--- connectivity/source/drivers/odbc/OConnection.cxx	18 Jan 2008 15:02:53 -0000	1.41.70.1
++++ connectivity/source/drivers/odbc/OConnection.cxx	25 Jan 2008 12:30:56 -0000
+@@ -81,6 +81,8 @@
+ #include <connectivity/dbexception.hxx>
+ #endif
+ 
++#include <string.h>
++
+ using namespace connectivity::odbc;
+ using namespace connectivity;
+ using namespace dbtools;
+Index: source/drivers/odbc/OPreparedStatement.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/odbc/OPreparedStatement.cxx,v
+retrieving revision 1.45.26.1
+diff -u -u -r1.45.26.1 OPreparedStatement.cxx
+--- connectivity/source/drivers/odbc/OPreparedStatement.cxx	18 Jan 2008 15:03:20 -0000	1.45.26.1
++++ connectivity/source/drivers/odbc/OPreparedStatement.cxx	25 Jan 2008 12:31:59 -0000
+@@ -37,6 +37,7 @@
+ #include "precompiled_connectivity.hxx"
+ 
+ #include <stdio.h>
++#include <string.h>
+ 
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+Index: source/drivers/adabas/BConnection.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/adabas/BConnection.cxx,v
+retrieving revision 1.23.70.1
+diff -u -u -r1.23.70.1 BConnection.cxx
+--- connectivity/source/drivers/adabas/BConnection.cxx	18 Jan 2008 14:52:55 -0000	1.23.70.1
++++ connectivity/source/drivers/adabas/BConnection.cxx	25 Jan 2008 12:33:39 -0000
+@@ -76,6 +76,8 @@
+ #include <connectivity/sqlparse.hxx>
+ #endif
+ 
++#include <string.h>
++
+ using namespace connectivity::adabas;
+ using namespace connectivity;
+ using namespace ::com::sun::star::uno;
+Index: source/drivers/evoab2/NDatabaseMetaData.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx,v
+retrieving revision 1.6.178.1
+diff -u -u -r1.6.178.1 NDatabaseMetaData.cxx
+--- connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx	18 Jan 2008 14:56:06 -0000	1.6.178.1
++++ connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx	25 Jan 2008 12:35:48 -0000
+@@ -63,6 +63,7 @@
+ #include <com/sun/star/sdbc/ColumnSearch.hpp>
+ 
+ #include <vector>
++#include <string.h>
+ 
+ #ifndef _CONNECTIVITY_EVOAB_EVOLUTION_API_HXX_
+ #include "EApi.h"
+Index: source/drivers/jdbc/Blob.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/Blob.cxx,v
+retrieving revision 1.10
+diff -u -u -r1.10 Blob.cxx
+--- connectivity/source/drivers/jdbc/Blob.cxx	17 Sep 2006 02:44:18 -0000	1.10
++++ connectivity/source/drivers/jdbc/Blob.cxx	25 Jan 2008 12:36:51 -0000
+@@ -52,6 +52,8 @@
+ #include <connectivity/dbexception.hxx>
+ #endif
+ 
++#include <string.h>
++
+ using namespace connectivity;
+ //**************************************************************
+ //************ Class: java.sql.Blob
+Index: source/drivers/jdbc/CallableStatement.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/CallableStatement.cxx,v
+retrieving revision 1.18
+diff -u -u -r1.18 CallableStatement.cxx
+--- connectivity/source/drivers/jdbc/CallableStatement.cxx	27 Jun 2007 14:35:19 -0000	1.18
++++ connectivity/source/drivers/jdbc/CallableStatement.cxx	25 Jan 2008 12:37:44 -0000
+@@ -64,6 +64,8 @@
+ #include <comphelper/sequence.hxx>
+ #endif
+ 
++#include <string.h>
++
+ using namespace connectivity;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+Index: source/drivers/jdbc/InputStream.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/InputStream.cxx,v
+retrieving revision 1.11
+diff -u -u -r1.11 InputStream.cxx
+--- connectivity/source/drivers/jdbc/InputStream.cxx	17 Sep 2006 02:47:00 -0000	1.11
++++ connectivity/source/drivers/jdbc/InputStream.cxx	25 Jan 2008 12:38:56 -0000
+@@ -42,6 +42,8 @@
+ #include "java/tools.hxx"
+ #endif
+ 
++#include <string.h>
++
+ using namespace connectivity;
+ //**************************************************************
+ //************ Class: java.io.InputStream
+Index: source/drivers/jdbc/JStatement.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/JStatement.cxx,v
+retrieving revision 1.5
+diff -u -u -r1.5 JStatement.cxx
+--- connectivity/source/drivers/jdbc/JStatement.cxx	27 Nov 2007 12:02:27 -0000	1.5
++++ connectivity/source/drivers/jdbc/JStatement.cxx	25 Jan 2008 12:39:45 -0000
+@@ -74,6 +74,7 @@
+ #include "resource/jdbc_log.hrc"
+ 
+ #include <algorithm>
++#include <string.h>
+ 
+ using namespace ::comphelper;
+ using namespace connectivity;
+Index: source/drivers/jdbc/PreparedStatement.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/PreparedStatement.cxx,v
+retrieving revision 1.20.16.2
+diff -u -u -r1.20.16.2 PreparedStatement.cxx
+--- connectivity/source/drivers/jdbc/PreparedStatement.cxx	21 Jan 2008 15:50:39 -0000	1.20.16.2
++++ connectivity/source/drivers/jdbc/PreparedStatement.cxx	25 Jan 2008 12:41:13 -0000
+@@ -68,6 +68,8 @@
+ #endif
+ #include "resource/jdbc_log.hrc"
+ 
++#include <string.h>
++
+ using namespace connectivity;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::beans;
+Index: source/drivers/jdbc/Reader.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/Reader.cxx,v
+retrieving revision 1.10
+diff -u -u -r1.10 Reader.cxx
+--- connectivity/source/drivers/jdbc/Reader.cxx	17 Sep 2006 02:48:02 -0000	1.10
++++ connectivity/source/drivers/jdbc/Reader.cxx	25 Jan 2008 12:41:47 -0000
+@@ -42,6 +42,7 @@
+ #ifndef _INC_MEMORY
+ //#include <memory.h>
+ #endif
++#include <string.h>
+ using namespace connectivity;
+ //**************************************************************
+ //************ Class: java.io.Reader
+Index: source/drivers/jdbc/ResultSet.cxx
+===================================================================
+RCS file: /cvs/dba/connectivity/source/drivers/jdbc/ResultSet.cxx,v
+retrieving revision 1.32.16.1
+diff -u -u -r1.32.16.1 ResultSet.cxx
+--- connectivity/source/drivers/jdbc/ResultSet.cxx	18 Jan 2008 14:59:49 -0000	1.32.16.1
++++ connectivity/source/drivers/jdbc/ResultSet.cxx	25 Jan 2008 12:42:27 -0000
+@@ -97,6 +97,8 @@
+ #include "connectivity/dbexception.hxx"
+ #endif
+ 
++#include <string.h>
++
+ using namespace ::comphelper;
+ 
+ using namespace connectivity;
+Index: source/services/substitutepathvars.cxx
+===================================================================
+RCS file: /cvs/framework/framework/source/services/substitutepathvars.cxx,v
+retrieving revision 1.17
+diff -u -u -r1.17 substitutepathvars.cxx
+--- framework/source/services/substitutepathvars.cxx	16 Sep 2006 14:12:15 -0000	1.17
++++ framework/source/services/substitutepathvars.cxx	25 Jan 2008 12:57:57 -0000
+@@ -130,6 +130,8 @@
+ 
+ #include <comphelper/configurationhelper.hxx>
+ 
++#include <string.h>
++
+ //_________________________________________________________________________________________________________________
+ //	Defines
+ //_________________________________________________________________________________________________________________
+Index: source/backends/gconfbe/gconflayer.cxx
+===================================================================
+RCS file: /cvs/gsl/shell/source/backends/gconfbe/gconflayer.cxx,v
+retrieving revision 1.13
+diff -u -u -r1.13 gconflayer.cxx
+--- shell/source/backends/gconfbe/gconflayer.cxx	19 Jun 2007 16:11:58 -0000	1.13
++++ shell/source/backends/gconfbe/gconflayer.cxx	25 Jan 2008 13:52:14 -0000
+@@ -72,6 +72,8 @@
+ #include <com/sun/star/uno/Sequence.hxx>
+ #endif
+ 
++#include <string.h>
++
+ using namespace rtl;
+ 
+ //==============================================================================
+--- shell/source/unix/sysshell/recently_used_file_handler.cxx-old	2008-01-25 14:53:34.000000000 +0100
++++ shell/source/unix/sysshell/recently_used_file_handler.cxx	2008-01-25 14:53:53.000000000 +0100
+@@ -69,6 +69,7 @@
+ #include <vector>
+ #include <algorithm>
+ #include <functional>
++#include <string.h>
+ 
+ namespace /* private */ {
+     
+Index: databases.cxx
+===================================================================
+RCS file: /cvs/util/xmlhelp/source/cxxhelp/provider/databases.cxx,v
+retrieving revision 1.49
+diff -u -u -r1.49 databases.cxx
+--- xmlhelp/source/cxxhelp/provider/databases.cxx	19 Nov 2007 13:00:39 -0000	1.49
++++ xmlhelp/source/cxxhelp/provider/databases.cxx	25 Jan 2008 14:01:28 -0000
+@@ -71,6 +74,7 @@
+ #endif
+ #include "inputstream.hxx"
+ #include <algorithm>
++#include <string.h>
+ 
+ // Extensible help
+ #include "com/sun/star/deployment/thePackageManagerFactory.hpp"
+Index: HelpCompiler.cxx
+===================================================================
+RCS file: /cvs/util/xmlhelp/source/com/sun/star/help/HelpCompiler.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 HelpCompiler.cxx
+--- xmlhelp/source/com/sun/star/help/HelpCompiler.cxx	19 Nov 2007 12:59:14 -0000	1.4
++++ xmlhelp/source/com/sun/star/help/HelpCompiler.cxx	25 Jan 2008 14:03:28 -0000
+@@ -37,6 +37,7 @@
+ #include "HelpCompiler.hxx"
+ #include <limits.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <libxslt/xslt.h>
+ #include <libxslt/xsltInternals.h>
+ #include <libxslt/transform.h>
+Index: HelpLinker.cxx
+===================================================================
+RCS file: /cvs/util/xmlhelp/source/com/sun/star/help/HelpLinker.cxx,v
+retrieving revision 1.10
+diff -u -u -r1.10 HelpLinker.cxx
+--- xmlhelp/source/com/sun/star/help/HelpLinker.cxx	26 Nov 2007 18:04:22 -0000	1.10
++++ xmlhelp/source/com/sun/star/help/HelpLinker.cxx	25 Jan 2008 14:05:27 -0000
+@@ -37,6 +37,9 @@
+ 
+ #include <map>
+ 
++#include <string.h>
++#include <limits.h>
++
+ #include <boost/shared_ptr.hpp>
+ #include <boost/tokenizer.hpp>
+ 
+Index: source/controls/progressbar.cxx
+===================================================================
+RCS file: /cvs/gsl/UnoControls/source/controls/progressbar.cxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 progressbar.cxx
+--- UnoControls/source/controls/progressbar.cxx	19 Jun 2006 23:09:34 -0000	1.7
++++ UnoControls/source/controls/progressbar.cxx	25 Jan 2008 14:13:26 -0000
+@@ -69,6 +69,7 @@
+ #endif
+ 
+ #include <math.h>
++#include <limits.h>
+ 
+ //____________________________________________________________________________________________________________
+ //	includes of my project
+Index: pppoptimizertoken.cxx
+===================================================================
+RCS file: /cvs/graphics/sdext/source/minimizer/pppoptimizertoken.cxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 pppoptimizertoken.cxx
+--- sdext/source/minimizer/pppoptimizertoken.cxx	17 Aug 2007 09:38:07 -0000	1.7
++++ sdext/source/minimizer/pppoptimizertoken.cxx	25 Jan 2008 15:00:25 -0000
+@@ -40,6 +40,7 @@
+ #include <osl/mutex.hxx>
+ #endif
+ #include <hash_map>
++#include <string.h>
+ 
+ struct TCheck
+ {
+Index: mscodec.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/mscodec.cxx,v
+retrieving revision 1.5
+diff -u -u -r1.5 mscodec.cxx
+--- svx/source/msfilter/mscodec.cxx	12 Oct 2006 12:58:20 -0000	1.5
++++ svx/source/msfilter/mscodec.cxx	25 Jan 2008 15:30:50 -0000
+@@ -42,6 +42,7 @@
+ 
+ #include <osl/diagnose.h>
+ #include <algorithm>
++#include <string.h>
+ #include <tools/solar.h>
+ 
+ namespace svx {
+Index: KeySet.cxx
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/core/api/KeySet.cxx,v
+retrieving revision 1.68.18.1
+diff -u -u -r1.68.18.1 KeySet.cxx
+--- dbaccess/source/core/api/KeySet.cxx	18 Jan 2008 15:34:45 -0000	1.68.18.1
++++ dbaccess/source/core/api/KeySet.cxx	25 Jan 2008 15:48:19 -0000
+@@ -116,6 +116,7 @@
+ #ifndef _TOOLS_DEBUG_HXX
+ #include <tools/debug.hxx>
+ #endif
++#include <string.h>
+ 
+ using namespace dbaccess;
+ using namespace ::connectivity;
+Index: services.cxx
+===================================================================
+RCS file: /cvs/framework/desktop/source/so_comp/services.cxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 services.cxx
+--- desktop/source/so_comp/services.cxx	12 Oct 2006 14:17:43 -0000	1.7
++++ desktop/source/so_comp/services.cxx	25 Jan 2008 17:16:35 -0000
+@@ -61,6 +61,7 @@
+ #include "oemjob.hxx"
+ #include "evaluation.hxx"
+ 
++#include <string.h>
+ 
+ using namespace rtl;
+ using namespace ::com::sun::star::uno;
+Index: swffilter.cxx
+===================================================================
+RCS file: /cvs/framework/filter/source/flash/swffilter.cxx,v
+retrieving revision 1.6
+diff -u -u -r1.6 swffilter.cxx
+--- filter/source/flash/swffilter.cxx	18 Jan 2007 14:09:46 -0000	1.6
++++ filter/source/flash/swffilter.cxx	25 Jan 2008 17:42:51 -0000
+@@ -88,6 +88,7 @@
+ 
+ //#include <stdlib.h>
+ //#include <windows.h>
++#include <string.h>
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::frame;
+Index: XmlFilterAdaptor.cxx
+===================================================================
+RCS file: /cvs/framework/filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx,v
+retrieving revision 1.18
+diff -u -u -r1.18 XmlFilterAdaptor.cxx
+--- filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx	1 Dec 2006 14:32:11 -0000	1.18
++++ filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx	25 Jan 2008 17:45:45 -0000
+@@ -35,7 +35,7 @@
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_filter.hxx"
+-#include <iostream.h>
++#include <iostream>
+ #include <stdlib.h>
+ #include <ctype.h>
+ #include <stdio.h>
+Index: filterdetect.cxx
+===================================================================
+RCS file: /cvs/framework/filter/source/xmlfilterdetect/filterdetect.cxx,v
+retrieving revision 1.9
+diff -u -u -r1.9 filterdetect.cxx
+--- filter/source/xmlfilterdetect/filterdetect.cxx	23 Oct 2007 11:40:42 -0000	1.9
++++ filter/source/xmlfilterdetect/filterdetect.cxx	25 Jan 2008 17:47:40 -0000
+@@ -35,7 +35,7 @@
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_filter.hxx"
+-#include <iostream.h>
++#include <iostream>
+ #include <stdlib.h>
+ #include <ctype.h>
+ #include <stdio.h>
+Index: ComboBox.cxx
+===================================================================
+RCS file: /cvs/gsl/forms/source/component/ComboBox.cxx,v
+retrieving revision 1.38
+diff -u -u -r1.38 ComboBox.cxx
+--- forms/source/component/ComboBox.cxx	21 Nov 2007 17:15:47 -0000	1.38
++++ forms/source/component/ComboBox.cxx	25 Jan 2008 19:47:49 -0000
+@@ -68,6 +68,8 @@
+ #include <tools/diagnose_ex.h>
+ #include <unotools/sharedunocomponent.hxx>
+ 
++#include <limits.h>
++
+ using namespace dbtools;
+ 
+ //.........................................................................
+Index: guess.cxx
+===================================================================
+RCS file: /cvs/whiteboard/lingucomponent/source/languageguessing/guess.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 guess.cxx
+--- lingucomponent/source/languageguessing/guess.cxx	22 Jun 2007 08:32:42 -0000	1.4
++++ lingucomponent/source/languageguessing/guess.cxx	25 Jan 2008 20:15:03 -0000
+@@ -37,6 +37,7 @@
+ #include "precompiled_lingucomponent.hxx"
+ 
+ #include <iostream>
++#include <string.h>
+ 
+ #include <libtextcat/textcat.h>
+ #include <altstrfunc.hxx>
+Index: source/dom/attr.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/attr.cxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 attr.cxx
+--- unoxml/source/dom/attr.cxx	6 Dec 2007 10:57:59 -0000	1.7
++++ unoxml/source/dom/attr.cxx	25 Jan 2008 22:02:25 -0000
+@@ -36,6 +36,7 @@
+ #include "attr.hxx"
+ #include "element.hxx"
+ #include <com/sun/star/xml/dom/DOMException.hdl>
++#include <string.h>
+ 
+ namespace DOM
+ {
+Index: source/dom/attributesmap.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/attributesmap.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 attributesmap.cxx
+--- unoxml/source/dom/attributesmap.cxx	20 Jun 2006 00:43:23 -0000	1.4
++++ unoxml/source/dom/attributesmap.cxx	25 Jan 2008 22:02:25 -0000
+@@ -34,6 +34,7 @@
+  ************************************************************************/
+ 
+ #include "attributesmap.hxx"
++#include <string.h>
+ 
+ namespace DOM
+ {
+Index: source/dom/characterdata.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/characterdata.cxx,v
+retrieving revision 1.9
+diff -u -u -r1.9 characterdata.cxx
+--- unoxml/source/dom/characterdata.cxx	6 Dec 2007 10:58:40 -0000	1.9
++++ unoxml/source/dom/characterdata.cxx	25 Jan 2008 22:02:26 -0000
+@@ -36,6 +36,7 @@
+ #include <com/sun/star/xml/dom/events/XDocumentEvent.hpp>
+ #include "characterdata.hxx"
+ #include "../events/mutationevent.hxx"
++#include <string.h>
+ 
+ namespace DOM
+ {
+Index: source/dom/document.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/document.cxx,v
+retrieving revision 1.12
+diff -u -u -r1.12 document.cxx
+--- unoxml/source/dom/document.cxx	6 Dec 2007 11:17:37 -0000	1.12
++++ unoxml/source/dom/document.cxx	25 Jan 2008 22:02:26 -0000
+@@ -54,6 +54,8 @@
+ #include "../events/uievent.hxx"
+ #include "../events/mouseevent.hxx"
+ 
++#include <string.h>
++
+ namespace DOM
+ {
+ 
+Index: source/dom/documenttype.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/documenttype.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 documenttype.cxx
+--- unoxml/source/dom/documenttype.cxx	20 Jun 2006 00:45:08 -0000	1.4
++++ unoxml/source/dom/documenttype.cxx	25 Jan 2008 22:02:26 -0000
+@@ -37,6 +37,7 @@
+ #include "entitiesmap.hxx"
+ #include "notationsmap.hxx"
+ 
++#include <string.h>
+ 
+ namespace DOM
+ {
+Index: source/dom/element.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/element.cxx,v
+retrieving revision 1.11
+diff -u -u -r1.11 element.cxx
+--- unoxml/source/dom/element.cxx	6 Dec 2007 10:59:52 -0000	1.11
++++ unoxml/source/dom/element.cxx	25 Jan 2008 22:02:26 -0000
+@@ -40,6 +40,8 @@
+ #include "attributesmap.hxx"
+ #include "../events/mutationevent.hxx"
+ 
++#include <string.h>
++
+ namespace DOM
+ {
+ 
+Index: source/dom/elementlist.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/elementlist.cxx,v
+retrieving revision 1.5
+diff -u -u -r1.5 elementlist.cxx
+--- unoxml/source/dom/elementlist.cxx	20 Jun 2006 00:46:18 -0000	1.5
++++ unoxml/source/dom/elementlist.cxx	25 Jan 2008 22:02:26 -0000
+@@ -35,6 +35,8 @@
+ 
+ #include "elementlist.hxx"
+ 
++#include <string.h>
++
+ namespace DOM
+ {
+ 
+Index: source/dom/entity.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/entity.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 entity.cxx
+--- unoxml/source/dom/entity.cxx	20 Jun 2006 00:46:49 -0000	1.4
++++ unoxml/source/dom/entity.cxx	25 Jan 2008 22:02:26 -0000
+@@ -35,6 +35,8 @@
+ 
+ #include "entity.hxx"
+ 
++#include <string.h>
++
+ namespace DOM
+ {
+ 
+Index: source/dom/entityreference.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/entityreference.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 entityreference.cxx
+--- unoxml/source/dom/entityreference.cxx	20 Jun 2006 00:47:11 -0000	1.4
++++ unoxml/source/dom/entityreference.cxx	25 Jan 2008 22:02:26 -0000
+@@ -34,6 +34,8 @@
+  ************************************************************************/
+ 
+ #include "entityreference.hxx"
++#include <string.h>
++
+ namespace DOM
+ {
+   CEntityReference::CEntityReference(const xmlNodePtr /*aNodePtr*/)
+Index: source/dom/node.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/node.cxx,v
+retrieving revision 1.13
+diff -u -u -r1.13 node.cxx
+--- unoxml/source/dom/node.cxx	6 Dec 2007 11:18:20 -0000	1.13
++++ unoxml/source/dom/node.cxx	25 Jan 2008 22:02:27 -0000
+@@ -34,6 +34,7 @@
+  ************************************************************************/
+ 
+ #include <stdio.h>
++#include <string.h>
+ #include "node.hxx"
+ #include "element.hxx"
+ #include "text.hxx"
+Index: source/dom/notation.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/notation.cxx,v
+retrieving revision 1.3
+diff -u -u -r1.3 notation.cxx
+--- unoxml/source/dom/notation.cxx	9 Sep 2005 10:03:53 -0000	1.3
++++ unoxml/source/dom/notation.cxx	25 Jan 2008 22:02:27 -0000
+@@ -34,6 +34,8 @@
+  ************************************************************************/
+ 
+ #include "notation.hxx"
++#include <string.h>
++
+ namespace DOM
+ {
+     CNotation::CNotation(const xmlNotationPtr aNotationPtr)
+Index: source/dom/processinginstruction.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/dom/processinginstruction.cxx,v
+retrieving revision 1.7
+diff -u -u -r1.7 processinginstruction.cxx
+--- unoxml/source/dom/processinginstruction.cxx	6 Dec 2007 11:01:25 -0000	1.7
++++ unoxml/source/dom/processinginstruction.cxx	25 Jan 2008 22:02:27 -0000
+@@ -34,6 +34,7 @@
+  ************************************************************************/
+ 
+ #include "processinginstruction.hxx"
++#include <string.h>
+ 
+ namespace DOM
+ {
+Index: source/fastsax/fastparser.cxx
+===================================================================
+RCS file: /cvs/framework/unoxml/source/fastsax/fastparser.cxx,v
+retrieving revision 1.2
+diff -u -u -r1.2 fastparser.cxx
+--- unoxml/source/fastsax/fastparser.cxx	5 Jun 2007 13:52:30 -0000	1.2
++++ unoxml/source/fastsax/fastparser.cxx	25 Jan 2008 22:02:27 -0000
+@@ -66,6 +66,8 @@
+ #include "expat/xmlparse.h"
+ #endif
+ 
++#include <string.h>
++
+ using ::rtl::OUString;
+ using ::rtl::OString;
+ using namespace ::std;
+Index: DocumentCollector.hxx
+===================================================================
+RCS file: /cvs/sw/writerperfect/source/filter/DocumentCollector.hxx,v
+retrieving revision 1.3
+diff -u -u -r1.3 DocumentCollector.hxx
+--- writerperfect/source/filter/DocumentCollector.hxx	27 Sep 2007 12:54:46 -0000	1.3
++++ writerperfect/source/filter/DocumentCollector.hxx	25 Jan 2008 23:19:42 -0000
+@@ -42,6 +43,7 @@
+ #include <vector>
+ #include <map>
+ #include <stack>
++#include <string.h>
+ 
+ class DocumentElement;
+ class DocumentHandler;
+Index: TableStyle.cxx
+===================================================================
+RCS file: /cvs/sw/writerperfect/source/filter/TableStyle.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 TableStyle.cxx
+--- writerperfect/source/filter/TableStyle.cxx	23 Jan 2007 12:15:53 -0000	1.4
++++ writerperfect/source/filter/TableStyle.cxx	25 Jan 2008 23:19:42 -0000
+@@ -27,6 +27,7 @@
+  * Corel Corporation or Corel Corporation Limited."
+  */
+ #include <math.h>
++#include <string.h>
+ #include "FilterInternal.hxx"
+ #include "TableStyle.hxx"
+ #include "DocumentElement.hxx"
+Index: TextRunStyle.cxx
+===================================================================
+RCS file: /cvs/sw/writerperfect/source/filter/TextRunStyle.cxx,v
+retrieving revision 1.4
+diff -u -u -r1.4 TextRunStyle.cxx
+--- writerperfect/source/filter/TextRunStyle.cxx	23 Jan 2007 12:16:30 -0000	1.4
++++ writerperfect/source/filter/TextRunStyle.cxx	25 Jan 2008 23:19:42 -0000
+@@ -36,6 +36,8 @@
+ #include <minmax.h>
+ #endif
+ 
++#include <string.h>
++
+ ParagraphStyle::ParagraphStyle(WPXPropertyList *pPropList, const WPXPropertyListVector &xTabStops, const WPXString &sName) :
+ 	mpPropList(pPropList),
+ 	mxTabStops(xTabStops),
+Index: xsecparser.cxx
+===================================================================
+RCS file: /cvs/xml/xmlsecurity/source/helper/xsecparser.cxx,v
+retrieving revision 1.6
+diff -u -u -r1.6 xsecparser.cxx
+--- xmlsecurity/source/helper/xsecparser.cxx	16 Sep 2006 14:41:05 -0000	1.6
++++ xmlsecurity/source/helper/xsecparser.cxx	26 Jan 2008 08:57:19 -0000
+@@ -43,6 +43,8 @@
+ #endif
+ #include "cppuhelper/exc_hlp.hxx"
+ 
++#include <string.h>
++
+ namespace cssu = com::sun::star::uno;
+ namespace cssxs = com::sun::star::xml::sax;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sal-osl-lock-file.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sal-osl-lock-file.diff
@@ -0,0 +1,451 @@
+diff -pur sal.orig/inc/osl/file.h sal/inc/osl/file.h
+--- sal.orig/inc/osl/file.h	2006-12-01 18:56:14.000000000 +0100
++++ sal/inc/osl/file.h	2007-01-17 14:11:51.000000000 +0100
+@@ -666,6 +666,7 @@ typedef	void *oslFileHandle;
+ #define osl_File_OpenFlag_Read		0x00000001L
+ #define osl_File_OpenFlag_Write		0x00000002L
+ #define osl_File_OpenFlag_Create	0x00000004L
++#define osl_File_OpenFlag_NoLock	0x00000008L
+ 
+ /** Open a regular file.
+ 
+@@ -706,8 +707,10 @@ typedef	void *oslFileHandle;
+ 	osl_File_E_MULTIHOP multihop attempted<br>
+ 	osl_File_E_NOLINK link has been severed<br>
+ 	osl_File_E_EOVERFLOW value too large for defined data type<br>
++	osl_File_E_NOLCK too many segment locks open, lock table is full, or a remote locking protocol failed (e.g. locking over NFS)<br>
+ 
+ 	@see osl_closeFile()
++	@see osl_lockFile()
+ 	@see osl_setFilePos()
+ 	@see osl_getFilePos()
+ 	@see osl_readFile()
+@@ -718,6 +721,29 @@ typedef	void *oslFileHandle;
+ 
+ oslFileError SAL_CALL osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
+ 
++/** Lock a file.
++
++    Lock an open file.
++    The operation does not block; returns osl_File_E_ACCESS or
++    osl_File_E_AGAIN when the file is already locked by someone else.
++    
++	@param Handle [in] 
++	Handle to a file received by a previous call to osl_openFile().
++	
++	@param bLock [in]
++	Lock, or unlock?
++	
++	@return 
++	osl_File_E_None on success<br> 
++	osl_File_E_ACCES permission denied<br>
++	osl_File_E_AGAIN a write lock could not be established<br>
++	osl_File_E_NOLCK too many segment locks open, lock table is full, or a remote locking protocol failed (e.g. locking over NFS)<br>
++
++	@see osl_openFile()
++*/
++
++oslFileError SAL_CALL osl_lockFile( oslFileHandle Handle, sal_Bool bLock );
++
+ #define osl_Pos_Absolut 1
+ #define osl_Pos_Current 2
+ #define osl_Pos_End     3
+diff -pur sal.orig/inc/osl/file.hxx sal/inc/osl/file.hxx
+--- sal.orig/inc/osl/file.hxx	2006-12-01 18:56:14.000000000 +0100
++++ sal/inc/osl/file.hxx	2007-01-17 14:11:47.000000000 +0100
+@@ -951,6 +951,7 @@ public:
+     #define OpenFlag_Read   osl_File_OpenFlag_Read
+     #define OpenFlag_Write  osl_File_OpenFlag_Write
+     #define OpenFlag_Create osl_File_OpenFlag_Create
++    #define OpenFlag_NoLock osl_File_OpenFlag_NoLock
+ 
+ 	/** Open a regular file.
+ 
+@@ -1027,6 +1028,27 @@ public:
+ 		return (RC) Error;
+     }
+ 
++	/** Lock an open file.
++
++		The operation does not block; returns osl_File_E_ACCESS or
++		osl_File_E_AGAIN when the file is already locked by someone else.
++
++		@param bLock [in]
++		Lock, or unlock?
++
++		@return 
++		osl_File_E_None on success<br> 
++		osl_File_E_ACCES permission denied<br>
++		osl_File_E_AGAIN a write lock could not be established<br>
++		osl_File_E_NOLCK too many segment locks open, lock table is full, or a remote locking protocol failed (e.g. locking over NFS)<br>
++
++		@see open()
++	*/
++
++    inline RC lock( sal_Bool bLock )
++	{
++		return (RC) osl_lockFile( _pData, bLock );
++	}
+ 
+     #define Pos_Absolut osl_Pos_Absolut
+     #define Pos_Current osl_Pos_Current
+diff -pur sal.orig/osl/unx/file.cxx sal/osl/unx/file.cxx
+--- sal.orig/osl/unx/file.cxx	2007-01-11 13:55:33.000000000 +0100
++++ sal/osl/unx/file.cxx	2007-01-12 17:57:44.000000000 +0100
+@@ -327,37 +327,6 @@ static sal_Bool       osl_getFloppyMount
+ static void           osl_printFloppyHandle(oslVolumeDeviceHandleImpl* hFloppy);
+ #endif
+ 
+-#ifdef MACOSX
+-
+-/*******************************************************************
+- *	adjustLockFlags
+- ******************************************************************/
+-
+-/* The AFP implementation of MacOS X 10.4 treats O_EXLOCK in a way 
+- * that makes it impossible for OOo to create a backup copy of the
+- * file it keeps opened. OTOH O_SHLOCK for AFP behaves as desired by
+- * the OOo file handling, so we need to check the path of the file
+- * for the filesystem name.
+- */
+- 
+-static int adjustLockFlags(const char * path, int flags)
+-{
+-    struct statfs s;
+-  
+-    if( 0 <= statfs( path, &s ) )
+-    {
+-        if( 0 == strncmp("afpfs", s.f_fstypename, 5) )
+-        {
+-            flags &= ~O_EXLOCK;
+-            flags |= O_SHLOCK;
+-        }    
+-    }
+-
+-    return flags;
+-}
+-
+-#endif
+-
+ 
+ /*******************************************************************
+  *	osl_openDirectory
+@@ -648,17 +617,54 @@ oslFileHandle osl_createFileHandleFromFD
+ }
+ 
+ 
+-/****************************************************************************
+- *	osl_openFile
+- ***************************************************************************/
++/******************************************************************/
++/*	impl_oslToSystemFlags */
++/******************************************************************/
++
++static int impl_oslToSystemFlags( const char * path, sal_Int32 uFlags )
++{
++    int flags = O_RDONLY;
++
++    if ( uFlags & osl_File_OpenFlag_Write )
++        flags = O_RDWR;
++
++    if ( uFlags & osl_File_OpenFlag_Create )
++        flags = O_CREAT | O_EXCL | O_RDWR;
+ 
+ #ifdef HAVE_O_EXLOCK
+-#define OPEN_WRITE_FLAGS ( O_RDWR | O_EXLOCK | O_NONBLOCK )
+-#define OPEN_CREATE_FLAGS ( O_CREAT | O_EXCL | O_RDWR | O_EXLOCK | O_NONBLOCK )
+-#else
+-#define OPEN_WRITE_FLAGS ( O_RDWR )
+-#define OPEN_CREATE_FLAGS ( O_CREAT | O_EXCL | O_RDWR )
+-#endif
++    if ( !( uFlags & osl_File_OpenFlag_NoLock ) )
++    {
++#ifdef MACOSX
++        /* The AFP implementation of MacOS X 10.4 treats O_EXLOCK in a way 
++         * that makes it impossible for OOo to create a backup copy of the
++         * file it keeps opened. OTOH O_SHLOCK for AFP behaves as desired by
++         * the OOo file handling, so we need to check the path of the file
++         * for the filesystem name.
++         */
++        struct statfs s;
++
++        if( 0 <= statfs( path, &s ) )
++        {
++            if( 0 == strncmp("afpfs", s.f_fstypename, 5) )
++                flags |= O_SHLOCK | O_NONBLOCK;
++            else
++                flags |= O_EXLOCK | O_NONBLOCK;
++        }
++#else /* MACOSX */
++        flags |= O_EXLOCK | O_NONBLOCK;
++
++        /* warning free (unused variable) */
++        (void) path;
++#endif /* MACOSX */
++    }
++#endif /* HAVE_O_EXLOCK */
++
++    return flags;
++}
++
++/****************************************************************************/
++/*	osl_openFile */
++/****************************************************************************/
+ 
+ oslFileError osl_openFile( rtl_uString* ustrFileURL, oslFileHandle* pHandle, sal_uInt32 uFlags )
+ {
+@@ -671,14 +677,6 @@ oslFileError osl_openFile( rtl_uString* 
+     int  mode  = S_IRUSR | S_IRGRP | S_IROTH;
+     int  flags = O_RDONLY;
+ 
+-    struct flock aflock;
+-
+-    /* locking the complete file */
+-    aflock.l_type = 0;
+-	aflock.l_whence = SEEK_SET;
+-    aflock.l_start = 0;
+-	aflock.l_len = 0;
+-
+     OSL_ASSERT( ustrFileURL );
+     OSL_ASSERT( pHandle );
+ 
+@@ -719,87 +717,65 @@ oslFileError osl_openFile( rtl_uString* 
+ 
+         if( osl_File_E_None == eRet )
+         {
+-            /*
+-             * set flags and mode
+-             */
+-
+-            if ( uFlags & osl_File_OpenFlag_Write )
+-            {
+-                mode |= S_IWUSR | S_IWGRP | S_IWOTH;
+-                flags = OPEN_WRITE_FLAGS;
+-#ifdef MACOSX
+-                flags = adjustLockFlags(buffer, flags);
+-#endif
+-                aflock.l_type = F_WRLCK;
+-            }
+-
+-            if ( uFlags & osl_File_OpenFlag_Create )
++            /* flags and mode (defaults are for the read-only case ) */
++            if ( uFlags & ( osl_File_OpenFlag_Write | osl_File_OpenFlag_Create ) )
+             {
+                 mode |= S_IWUSR | S_IWGRP | S_IWOTH;
+-                flags = OPEN_CREATE_FLAGS;
+-#ifdef MACOSX
+-                flags = adjustLockFlags(buffer, flags);
+-#endif
++                flags = impl_oslToSystemFlags( buffer, uFlags );
+             }
+ 
+             /* open the file */
+             fd = open( buffer, flags, mode );
+             if ( fd >= 0 )
+             {
+-#ifndef HAVE_O_EXLOCK
+-                /* check if file lock is enabled and clear l_type member of flock otherwise */
+-                if( (char *) -1 == pFileLockEnvVar )
++                /* allocate memory for impl structure */
++                pHandleImpl = (oslFileHandleImpl*) rtl_allocateMemory( sizeof(oslFileHandleImpl) );
++                if( pHandleImpl )
+                 {
+-                    /* FIXME: this is not MT safe */
+-                    pFileLockEnvVar = getenv("SAL_ENABLE_FILE_LOCKING");
+-
+-                    if( NULL == pFileLockEnvVar)
+-                        pFileLockEnvVar = getenv("STAR_ENABLE_FILE_LOCKING");
++                    pHandleImpl->ustrFilePath = ustrFilePath;
++                    pHandleImpl->fd = fd;
+                 }
+-#else
++                else
++                    eRet = oslTranslateFileError( OSL_FET_ERROR, ENOMEM );
++
++                /* lock the file when opened for writing? */
++                sal_Bool bWriteLock = ( osl_File_OpenFlag_Write == ( uFlags & ( osl_File_OpenFlag_Write | osl_File_OpenFlag_NoLock ) ) )? sal_True: sal_False;
++
++#ifdef HAVE_O_EXLOCK
+                 /* disable range based locking */
+-                pFileLockEnvVar = NULL;
++                bWriteLock = sal_False;
+                 
+                 /* remove the NONBLOCK flag again */
+                 flags = fcntl(fd, F_GETFL, NULL);
+                 flags &= ~O_NONBLOCK;
+-                if( 0 > fcntl(fd, F_GETFL, flags) )
+-                    return oslTranslateFileError(OSL_FET_ERROR, errno);
++                if( ( osl_File_E_None == eRet ) && ( 0 > fcntl(fd, F_GETFL, flags) ) )
++                    eRet = oslTranslateFileError( OSL_FET_ERROR, errno);
+ #endif
+-                if( NULL == pFileLockEnvVar )
+-                    aflock.l_type = 0;
+ 
+-                /* lock the file if flock.l_type is set */
+-                if( F_WRLCK != aflock.l_type || -1 != fcntl( fd, F_SETLK, &aflock ) )
++                if( ( osl_File_E_None == eRet ) && bWriteLock )
++                    eRet = osl_lockFile( pHandleImpl, sal_True );
++
++                if( osl_File_E_None == eRet )
+                 {
+-                    /* allocate memory for impl structure */
+-                    pHandleImpl = (oslFileHandleImpl*) rtl_allocateMemory( sizeof(oslFileHandleImpl) );
+-                    if( pHandleImpl )
+-                    {
+-                        pHandleImpl->ustrFilePath = ustrFilePath;
+-                        pHandleImpl->fd = fd;
+-
+-                        *pHandle = (oslFileHandle) pHandleImpl;
+-
+-                        return osl_File_E_None;
+-                    }
+-                    else
+-                    {
+-                        errno = ENOMEM;
+-                    }
++                    *pHandle = (oslFileHandle) pHandleImpl;
++                    return osl_File_E_None;
+                 }
+ 
+                 close( fd );
+             }
+ 
+             PERROR( "osl_openFile", buffer );
+-            eRet = oslTranslateFileError(OSL_FET_ERROR, errno );
++            /* error can be set while acquiring the lock */
++            if( osl_File_E_None == eRet )
++                eRet = oslTranslateFileError( OSL_FET_ERROR, errno );
+         }
+     }
+     else
+         eRet = osl_File_E_INVAL;
+ 
+     rtl_uString_release( ustrFilePath );
++    if( pHandleImpl )
++        rtl_freeMemory( pHandleImpl );
+     return eRet;
+ }
+ 
+@@ -818,23 +794,9 @@ oslFileError osl_closeFile( oslFileHandl
+     {
+         rtl_uString_release( pHandleImpl->ustrFilePath );
+ 
+-        /* release file lock if locking is enabled */
+-        if( pFileLockEnvVar )
+-        {
+-            struct flock aflock;
+-
+-            aflock.l_type = F_UNLCK;
+-            aflock.l_whence = SEEK_SET;
+-            aflock.l_start = 0;
+-            aflock.l_len = 0;
+-
+-            /* FIXME: check if file is really locked ?  */
+-
+-            /* release the file share lock on this file */
+-            if( -1 == fcntl( pHandleImpl->fd, F_SETLK, &aflock ) )
+-                PERROR( "osl_closeFile", "unlock failed" );
+-        }
+-
++        /* release file lock */
++        osl_lockFile( Handle, sal_False );
++        
+         if( 0 > close( pHandleImpl->fd ) )
+         {
+             eRet = oslTranslateFileError(OSL_FET_ERROR, errno );
+@@ -848,6 +810,45 @@ oslFileError osl_closeFile( oslFileHandl
+     return eRet;
+ }
+ 
++/***************************************************************************/
++/*	osl_lockFile */
++/***************************************************************************/
++
++oslFileError SAL_CALL osl_lockFile( oslFileHandle Handle, sal_Bool bLock )
++{
++    if( (char *) -1 == pFileLockEnvVar )
++    {
++        /* FIXME: this is not MT safe */
++        pFileLockEnvVar = getenv("SAL_ENABLE_FILE_LOCKING");
++
++        if( NULL == pFileLockEnvVar)
++            pFileLockEnvVar = getenv("STAR_ENABLE_FILE_LOCKING");
++    }
++
++    /* locking not supported => never fail */
++    if( NULL == pFileLockEnvVar)
++        return osl_File_E_None;
++
++    /* implementation of the handle */
++    oslFileHandleImpl* pHandleImpl = (oslFileHandleImpl *) Handle;
++    if( !pHandleImpl )
++        return osl_File_E_INVAL;
++
++    struct flock aflock;
++
++    /* locking/unlocking the complete file */
++    aflock.l_type = bLock? F_WRLCK: F_UNLCK;
++	aflock.l_whence = SEEK_SET;
++    aflock.l_start = 0;
++	aflock.l_len = 0;
++
++    /* lock the file */
++    if( -1 == fcntl( pHandleImpl->fd, F_SETLK, &aflock ) )
++        return oslTranslateFileError( OSL_FET_ERROR, errno );
++    
++    return osl_File_E_None;
++}
++
+ /****************************************************************************/
+ /*	osl_isEndOfFile */
+ /****************************************************************************/
+diff -pur sal.orig/osl/w32/file.cxx sal/osl/w32/file.cxx
+--- sal.orig/osl/w32/file.cxx	2006-12-01 18:56:16.000000000 +0100
++++ sal/osl/w32/file.cxx	2007-01-12 17:44:09.000000000 +0100
+@@ -2466,7 +2466,11 @@ oslFileError SAL_CALL osl_openFile(
+ 			dwAccess |= GENERIC_READ;
+ 
+ 		if ( uFlags & osl_File_OpenFlag_Write )
++		{
+ 			dwAccess |= GENERIC_WRITE;
++			if ( uFlags & osl_File_OpenFile_NoLock )
++				dwShare |= FILE_SHARE_WRITE;
++		}
+ 		else
+ 			dwShare  |= FILE_SHARE_WRITE;
+ 
+@@ -2489,6 +2493,34 @@ oslFileError SAL_CALL osl_openFile(
+ }
+ 
+ //#############################################
++oslFileError SAL_CALL osl_lockFile( oslFileHandle Handle, sal_Bool bLock )
++{
++	HANDLE hFile = (HANDLE)Handle;
++
++	DWORD nBytesToLockL = (DWORD)-1;
++	DWORD nBytesToLockH = (DWORD)-1;
++
++	BOOL bSuccess = FALSE;
++
++	if ( GetVersion() >= 0x80000000 )
++	{
++		// to avoid errors on FAT16
++		nBytesToLockL = (DWORD)0x7FFFFFFF;
++		nBytesToLockH = 0;
++	}
++
++	if ( bLock )
++		bSuccess = LockFile( hFile, 0, 0, nBytesToLockL, nBytesToLockH );
++	else
++		bSuccess = UnlockFile( hFile, 0, 0, nBytesToLockL, nBytesToLockH );
++
++	if ( !bSuccess )
++		return MapError( GetLastError() );
++
++    return osl_File_E_None;
++}
++
++//#############################################
+ oslFileError SAL_CALL osl_syncFile(oslFileHandle Handle)
+ {
+     if (!IsValidHandle((HANDLE)Handle))
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/apply
+++ openoffice.org-2.4.1/ooo-build/patches/src680/apply
@@ -0,0 +1,2477 @@
+#
+# The format of this file is:
+#
+
+# -------- Options --------
+
+PATCHPATH=.:../evo2:../vba:../mono:../64bit:../cairo:../scsolver:../gstreamer:../ooxml:../postgresql:../emf+:../src680-only
+
+OLDEST_SUPPORTED=ooh680-m10
+
+# -------- Functional sub-sets --------
+Common : BuildBits, TemporaryHacks, FixesNotForUpstream, \
+	 Fixes, DefaultSettings, Features, VCL, Misc, \
+	 Icons, Branding, CalcFixes, WriterFixes, EasterEgg, \
+	 GStreamer, CWSBackports, WPG, Cleanups, WMF, GnomeVFS, \
+	 Layout, VBABits, VBAObjects, CalcErrors, Store, CJK, GCJ, Lwp, \
+	 OOXML, ImpressFixes, SVGImport, AutoCorrectCapsLock, UnitTesting, \
+     PopupRemoval, Security
+
+LinuxCommon : Common, LayoutDialogs, Defaults, TangoIcons, FontConfigTemporaryHacks, \
+	      FedoraFixes, LinuxOnly, SystemBits, \
+	      cairocanvas, msaccess, OpenGLTransitions, InternalMesaHeaders, \
+	      Fpickers, Mono, AddressBooks, QuickStarter
+MacOSXCommon : Common, Defaults, TangoIcons, SystemBits
+Win32Common : Common, Defaults, TangoIcons, \
+	      Win32Only, NotDebian
+# Experimental sections
+Experimental: DebianBaseNoHelpContent, \
+              VBAUntested, ArkOnlyExperimental, SharedWorksheets, \
+	      UnUsedButNotYetRemovedFromSVN, \
+	      PostgreSQL, SELinux, VOSremoval, Glib2, InternalCairo, \
+	      UnitBootstrap, RadioButtons, UnstableLibwpd, CalcHugeTables
+# Optional sections
+Optional : DejaVuFonts
+# Binfilter patches: a special distro; applied only when building with binfilter
+Binfilter : BFBuildBits, BFFixes, BFShrink
+# System patches: a special distro; applied only when building with the system tarball unpacked
+System : SystemBuildBits
+# Sdk patches: a special distro; applied only when building with the sdk tarball unpacked
+Sdk : SdkFixes
+#Localize
+Localize :
+# Novell
+NovellBase : LinuxCommon, NovellOnly, NovellOnlyUnix, \
+	     NotDebian, Lockdown, CalcSolver, Split, Shrink, \
+	     CalcDataPilotDrillDown, CustomUserConfig
+SUSE-9.1  : NovellBase
+SUSE-9.2  : NovellBase
+SUSE-9.3  : NovellBase
+SUSE-10.0 : NovellBase
+SUSE-10.1 : NovellBase, BerkeleyDB43
+SUSE-10.2 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, DIS26300
+SUSE-10.3 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, DIS26300
+SUSE-11.0 : NovellBase, BerkeleyDB43, Gcc43, EMFPlus, TransparentPrinting, PptExport, LinkWarningDlg, CairoFonts, DIS26300
+SUSE      : NovellBase, BerkeleyDB43, Gcc43, EMFPlus, TransparentPrinting, PptExport, LinkWarningDlg, CairoFonts, DIS26300
+SUSE-reduced:NovellBase,BerkeleyDB43, ReducedDefaults
+# Debian
+DebianBase : LinuxCommon, DebianBaseOnly, Lockdown, GCCSTL, CalcSolver, BerkeleyDB43, Split, PostgreSQL
+Debian : DebianBase, DebianOnly, DebianSidOnly, Debian32Only, CairoFonts, Gcc43
+DebianEtch : DebianBase, DebianOnly, DebianEtchOnly, Debian32Only
+# Ubuntu
+UbuntuBased : DebianBase, UbuntuOnly
+UbuntuDapper : UbuntuBased, UbuntuDapperOnly, Debian32Only
+UbuntuDapper64 : UbuntuBased, UbuntuDapperOnly
+UbuntuEdgy : UbuntuBased, CairoFonts, UbuntuEdgyOnly, Debian32Only
+UbuntuEdgy64 : UbuntuBased, CairoFonts, UbuntuEdgyOnly
+UbuntuFeisty : UbuntuBased, CairoFonts, UbuntuFeistyOnly, Debian32Only
+UbuntuFeisty64 : UbuntuBased, CairoFonts, UbuntuFeistyOnly
+UbuntuGutsy : UbuntuBased, CairoFonts, UbuntuGutsyOnly, Debian32Only
+UbuntuGutsy64 : UbuntuBased, CairoFonts, UbuntuGutsyOnly
+UbuntuHardy : UbuntuBased, CairoFonts, UbuntuHardyOnly, Debian32Only
+UbuntuHardy64 : UbuntuBased, CairoFonts, UbuntuHardyOnly
+UbuntuL10n : UbuntuBased, UbuntuL10nOnly, Debian32Only
+# a copy of the UbuntuDapper* lines ("Ubuntu: UbuntuDapper" doesn't work)
+Ubuntu : UbuntuBased, UbuntuDapperOnly,  Debian32Only
+Ubuntu64 : UbuntuBased, UbuntuDapperOnly
+# DroplineGNOME
+DroplineGNOME : LinuxCommon, DroplineGNOMEOnly, NotDebian, Mono, msaccess
+DroplineGNOME64 : LinuxCommon, DroplineGNOMEOnly, NotDebian, Mono, msaccess
+# Ark Linux
+Ark: LinuxCommon, NotDebian, ArkOnly, BerkeleyDB43, Gcc43
+# www.pld-linux.org
+PLDBase: LinuxCommon, NotDebian, CalcSolver, CairoFonts, PLDOnly
+PLD: PLDBase
+PLD64: PLDBase
+# Mandriva Linux
+MandrivaBase: CairoFonts, MandrivaOnly, LinuxCommon, MandrivaOnlyUnix, LockDown, CalcSolver, Split, NotDebian
+Mandriva: MandrivaBase
+Mandriva64: MandrivaBase
+# Frugalware Linux
+Frugalware: LinuxCommon, GnomeVFS, GlobalDesktopFiles, NonArkCommon, NoRpath, NovellOnly, NovellOnlyUnix, NotDebian, FrugalwareOnly, CalcSolver, Gcc43
+# openmamba
+openmamba: LinuxCommon, GlobalDesktopFiles
+#Gentoo
+GentooBase : LinuxCommon, GentooOnly, NotDebian, Lockdown, CalcSolver, CairoFonts, BerkeleyDB43, Gcc43
+GentooUnstable: GentooBase, GentooExperimental, TransparentPrinting, PptExport
+Gentoo : GentooBase
+Gentoo64: GentooBase
+# rPath Linux
+rPathCommon: LinuxCommon, NotDebian, CalcSolver, Lockdown, BerkeleyDB43, CairoFonts
+rpl2: rPathCommon
+rpl2-64: rPathCommon
+# Win32
+Win32 : Win32Common
+# translate.org.za
+translate-org-za-linux: translate-org-za-common, LinuxCommon, Common, Lockdown
+translate-org-za-win32: translate-org-za-common, Win32Common, Common
+NovellLikeWin32: Win32Common, NovellOnly, NovellOnlyWin32, Lockdown, CalcSolver, cairocanvas, Fpickers, CustomUserConfig, CalcDataPilotDrillDown
+# Novell
+NovellWin32: NovellLikeWin32
+NovellWin32ISO: NovellLikeWin32
+# go-oo.org Win32
+GoOoWin32: NovellLikeWin32, DIS26300
+# Mac OS X
+MacOSX : MacOSXCommon, CalcSolver, MacOSXOnly
+# Pardus
+Pardus2007: PardusOnly, LinuxCommon, NotDebian, CalcSolver
+Pardus2008: PardusOnly, LinuxCommon, NotDebian, CalcSolver, Gcc43
+# Solaris
+Solaris: NovellBase
+# Universal Upstream-like packages
+GoOoLinux: NovellBase, Glib2, InternalCairo, DIS26300
+# OxygenOffice Professional
+OxygenOfficeLinuxCommon :	Common, EMFPlus, LayoutDialogs, FontConfigTemporaryHacks, \
+	      			FedoraFixes, LinuxOnly, SystemBits, \
+	      			cairocanvas, msaccess, OpenGLTransitions, \
+	      			Fpickers, Mono, AddressBooks, QuickStarter, IntegrateExtensions
+OxygenOfficeMacOSXCommon :	Common, SystemBits, IntegrateExtensions
+OxygenOfficeWin32Common :	Common, Win32Only, NotDebian, IntegrateExtensions
+
+OxygenOfficeLinux:	OxygenOfficeLinuxCommon, CalcSolver, OxygenOfficePalettes, OxygenOfficeDefaultSettings, OxygenOfficeExtras
+OxygenOfficeWindows:	OxygenOfficeWin32Common, CalcSolver, OxygenOfficePalettes, OxygenOfficeDefaultSettings, OxygenOfficeExtras
+# -------- [ Tag [ >= <tag> etc. ], ] patch sets --------
+
+
+[ LinuxOnly ]
+# Don't stat tons of config files we don't need to read on startup
+speed-configmgr.diff, i#56783, michael
+
+
+[ TemporaryHacks ]
+
+# fix the smoketest
+smoketest-fix.diff, michael, i#84720
+
+# add idl target to toplevel makefile
+makefile-idl-build.diff, noelpwer
+
+# Pagein types.rdb / services.rdb & the ui files
+speed-pagein.diff, i#57679, michael
+# Sort the pagin information by inode number to improve read linearity
+speed-pagein-sort.diff, i#81912, michael
+# Use d_type entry when possible to get file type instead of using stat
+speed-getfilestatus-dtype.diff, rodo, i#63159
+
+# Replace hunspell linked list implementation with hashed implementation
+# Reduces hunspell mem usage by more than half (3.7M to ~680K)
+# (even bigger savings on 64bit, and with dicts like the Czech one)
+#FIXME oog680: hunspell-hashify.diff, i#50842, dkeskar/jholesov
+
+# add no-crashreporter sections to testtool default config;
+# also guess office path from testtool.bin path i#FIXME?
+testtool-more-defaults.diff, martink
+
+#Fix plus/minus in to each heading in Navigator
+plus-minus-sw-navigator.diff, i#64886, n#129410, jianhua
+plus-minus-sw-navigator2.diff, i#64886, n#129410, jianhua
+#set default varchar lenght to 100.
+dbaccess-default-varchar-lenght.diff, i#62664, jianhua
+#make oovbaapi as a link
+linkoo-type.diff
+#for selection delete crash
+selection-crash-svx-svdmrkv.diff, i#76084, jianhua
+
+#Improve the behavior of input field dialog.
+#FIXME sw-input-field-dialog.diff, Zhang Yun
+
+# Improve the behavior of input fields inline editing.
+# sw-input-field-inline-edit.diff, Zhang Yun # removed since it causes some
+# crashes with undo/redo
+
+#realize a new feature named as Show Data Form in OpenOffice
+sc-dataform.diff, Amelia Wang
+
+#realize extra piece of new feature named as Show Data Form about vba
+sc-dataform-suppor-vba.diff, Amelia Wang
+
+# workaround for a crash in the help on amd64.
+sal-doublefree.diff, i#67740, mklose
+
+# hack for n#240776
+sw-graphic-save-problem.diff, flr, n#240776
+
+# accelerate intern by not using stl
+sal-strintern-speed.diff, i#78496, michael
+sal-strintern-speed-fix.diff, i#78496, michael
+
+# Faster makedepend
+fast-mkdepend.diff, i#73081, jholesov
+
+# temporary hack to avoid the warning about missing return values in gcc4
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20624
+warning-return-values-stlport.diff, jholesov
+
+# Fix linkoo, the ultimate hacker tool
+fix-linkoo.diff, i#83548, jholesov
+
+# temporary compile sc/source/core/tool with -O1 with gcc-4.3 on x86_64
+# until the internal compiler error is fixed
+# buildfix-gcc-4.3-compiler-error.diff, n#370383, pmladek
+
+#Fix: no autocorrection when "!" (exclamation mark) was typed
+#This is timar's patch, will be fixed in 3.0 in the stream
+i86580-autocorr-exclamation.diff, i#86580, szalaik
+
+# Make the historically very verbose build quieter, helps us see warnings.
+quiet-build.diff, i#84497, michael
+
+# further performance tweaks to configmgr
+speed-configmgr-misc.diff, i#84751, michael
+
+# gcc OOMs here otherwise (x86_64)
+writerfilter-qnametostr-NOOPTFILES.diff
+
+# default to DEV300 in cws-commit-patch
+cws-commit-patch-default-dev300.diff, i#87431, jholesov
+
+# avoid crash when calling the mono testcase from ooo-build/test/mono
+# the object "this" was destroyed after calling ScTableSheetObj::getImplementation
+# this hack make sure that the object lives a bit longer
+sc-cellsuno-avoid-early-destruction.diff, i#90076, pmladek
+
+[ TemporaryHacks < ooh680-m14 ]
+# do not display arabic/hindi numbers instead of decimal numbers
+sw-hindi-numbers.diff, i#86811, pmladek
+
+[ CJK ]
+#set default CJK font fontsize as 10.5pt
+sw-default-cjk-fontsize.diff i#72010, jianhua
+
+# Text grid enhancement for better CJK support
+cws-cjksp1-officecfg.diff, Fong Lin
+cws-cjksp1-sw.diff, Fong Lin
+cws-cjksp1-xmloff.diff, Fong Lin
+
+# add a new unit 'character unit'
+#cjk-character-units-ui.diff, Amelia Wang
+#cjk-character-units-imp.diff, Amelia Wang
+#cjk-character-units-rulers-sync-with-pggrid-fix.diff, Amelia Wang
+#cjk-character-units-fix.diff, i#356101, Amelia Wang 
+#cjk-character-units-fix-376788.diff, i#376788, Amelia Wang
+
+# text layout enhancement for better CJK support
+#cjk-punctuation-compress.diff, Amelia Wang
+
+#[ CJKTemporaryHacks ]
+# the following patch is disabled temporary.
+# default value of tab stop for Chinese version
+#default-tabstop-Chinese.diff, Fong Lin
+
+# default value of automatic text indent for Chinese version
+#sw-auto-text-indent-zh.diff, Fong Lin
+
+# for mixed font set
+#FIXME src680: font_list_box_cjk.diff, i#73003, Fong Lin
+
+
+[ CWSBackports ]
+# MS Works import filter (following patches depend on each other) Fridrich
+wpsimport-config_office.diff
+wpsimport-filter.diff
+wpsimport-scp2.diff
+wpsimport-writerperfect.diff
+libwps.diff
+
+# T602 import filter
+cws-t602import01-filter.diff
+cws-t602import01-scp2.diff
+
+# removal of nas, sndfile, portaudio
+cws-unifysound01-avmedia.diff
+cws-unifysound01-config_office.diff
+cws-unifysound01-filter.diff
+cws-unifysound01-fpicker.diff
+cws-unifysound01-framework.diff
+cws-unifysound01-helpcontent2.diff
+cws-unifysound01-sc.diff
+cws-unifysound01-scp2.diff
+cws-unifysound01-sd.diff
+#cws-unifysound01-slideshow.diff
+cws-unifysound01-solenv.diff
+cws-unifysound01-svx.diff
+cws-unifysound01-sw.diff
+
+[ CWSBackports > ooh680-m14 ]
+
+cws-unifysound01-vcl.diff
+
+[ CWSBackports <= ooh680-m14 ]
+
+cws-unifysound01-vcl-m14.diff
+
+[ CWSBackports ]
+
+#dialog refactor
+cws-npower9.diff
+#basic runtime fixes
+cws-npower10.diff
+#api changes
+cws-npower11.diff
+
+cws-ia64port01.diff, i#84999
+cws-s390port01.diff, i#86425
+# not for upstreaming: don't disable the entire visibility, just
+# the -fvisibility-inlines-hidden
+buildfix-x86-64-visibility-workaround.diff
+
+# fix build with neon 0.28
+cws-cmcfixes42-ucb.diff, i#86123
+
+cws-hsqldb16.diff, i#85087
+
+# fix mozilla plugin on 64bit
+cws-cmcfixes47-extensions.diff, i#82545
+
+cws-cmcfixes47-sw.diff, i#90306
+
+[ CWSBackports < ooh680-m17 ]
+
+cws-dba241e.diff, i#87092, i#90011
+
+
+[ WPG ]
+# libwpg-based import filter for WordPerfect Graphics
+libwpg.diff
+wpgimporter.diff
+
+
+[ GCJ ]
+# gij/libgcj paths...
+jvmfwk-gij-paths.diff, rengelha
+# Seems that bug #69026 is back
+gcj-workaround-serializer.diff
+
+# Don't break hsqldb with gcj
+# Depends on http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9866
+# FIXME src680-m239 gcjaccessproblem-filter.diff, jholesov
+# FIXME src680-m239 wizards-private-protected-to-public.diff, jholesov
+# FIXME src680: hsqldb-private-protected-to-public.diff, jholesov
+
+# Fix up Javac error, known to happen with gcj, probably happens for other
+# JDKs too
+buildfix-qadevOOo-java-encoding.diff, brosenk
+
+
+# Fixes that were not accepted up-stream, but are still useful
+[ FixesNotForUpstream ]
+# Make debugging nicer under unix
+debug-bits.diff, i#35336, jholesov
+# Make the scroll-wheel / page popup more sane
+gui-sw-scroll.diff, i#20826, michael
+
+# make menu layout prettier
+vcl-menu-fixes.diff, i#67123, michael
+
+# Tell the desktop we support the VFS
+uses-vfs.diff, i#43504, michael
+
+# add mozilla certificate dir detection to soffice
+soffice-detect-mozilla-certificates.diff
+
+#upload a new libwpd + fix an exception with condensed paragraphs
+libwpd.diff, fridrich
+writerperfect-nocondensedparagraphs.diff, fridrich
+
+#use newer xrender headears for platforms that cannot use the system ones
+#and still want to have the cairo canvas working
+x11_extensions-new-xrender-headers.diff
+
+
+# no bogus license question when registering these extensions
+reportdesigner-no-license.diff
+presentation-minimizer-no-license.diff
+
+
+[ Fixes ]
+# Fix for the symbol font problem. See #n383812, i#89002.
+sw-symbol-font-n383812.diff, #n383812
+
+# fix strage spell-checking behaviour, n#377345, i#88120, michael
+spellcheck-fix.diff
+
+# sd printing fixes
+printing-bugfix-254573.diff, n#254573, rodo
+
+# let sd accept uri-list drop, n#183719
+sd-accept-uri-list-drop.diff, n#183719, rodo
+
+# support the groupwise mail client
+shell-senddoc-support-groupwise.diff, n#368044, i#86886, pmladek
+
+# allow to send documents with a space in the name via sylpheed-claws
+shell-senddoc-sylpheed-filenames.diff, n#362773, i#86887, pmladek
+
+# detect the symlinked mozilla-like wrapper correctly; fixes "File/Send/Document as E-mail..."
+# to work correctly with seamonkey on openSUSE-10.3
+shell-senddoc-moz-wrapper-symlink.diff, n#368532, i#87258, pmladek
+
+# add some shortcuts to Impress + needed fixes. bug n#352330
+sd-text-shortcut-n352330.diff, i#85247, n#352330, hub
+svx-text-move-fix-i59061.diff, i#59061, hub
+
+# more intelligent nsplugin seeking
+nsplugin-path.diff, i#49590, michael
+
+# use basic (advanced) shapes for rectangle/ellipse on draw/impress's toolbars. make shapes wrap words by default, n#171052, rodo
+sd-toolbar-advanced-shapes.diff, n#171052, rodo
+svx-shapes-default-word-wrap-enable.diff, n#171052, rodo
+
+# fix check box rendering issue - n#80447
+check-buttons-rendering-fix.diff, michael
+
+# disable font management dialog in padmin
+padmin-nofontconfig.diff, michael
+
+# Fix for n#113235
+wizards-source-importwizard-filesmodul-xba.diff, i#56633, noelpwer
+
+# do not shrink a string in some localizations;
+# the width was too small without any reason
+wizards-form-fit-french-localization.diff, n#340679, i#89475, pmladek
+
+# testtool doesn't like oobuild basic compatability defaults
+# ooo-build only fix n#145906#
+automation-testtool-oobuildfix.diff, n#145906, noelpwer
+
+# fixes some .cfg files in helpcontent2/source/auxiliary to use right
+# lang code instead of en-US
+helpcontent2-auxiliary-cfg.diff, pmladek
+
+# Better Hungarian font setting
+helpcontent2-hungarian-fonts.diff, i#71452, n#244488, pmladek
+
+# more secure permissions for the user directory by default
+desktop-safer-user-dir-perm.diff, i#62858, pmladek
+
+# fixes some wrong usages of the function AddBytes that would malform the xml output
+sax-writer.diff, i#66693, pmladek
+
+# Added support for "application/octet-stream" mime type in package manager
+desktop-application-octet-stream-mime-type.diff, i#73301, flr
+
+# find locked certs, fix by Jacob Berkman <jberkman@novell.com>
+libxmlsec-findcerts.diff, i#76870, pmladek
+# allow other types of signing certs, fix by Jacob Berkman <jberkman@novell.com>
+#FIXME src680: xmlsecurity-verify-usages.diff, i#76871, pmladek
+
+# fix that allows OOo to work with a standard (unpatched) libjpeg,
+jpegc.c.diff, i#80674, n#272574, flr
+
+# process relative SMB paths correctly
+tools-urlobj-smb-scheme-patch.diff, n#261623, flr
+samba-hyperlinks-sc-sd.diff, n#382718, jholesov
+tools-qa-urlobj-unittest.diff, n#261623, flr
+
+# try autodetection if it is allowed and the current java has been removed
+jvmfwk-detect-removed-java.diff, i#83140, n#336242, pmladek
+# allow to overwrite broken java configuration; it is related
+# to jvmfwk-detect-removed-java.diff that added new types of errors
+jvmfwk-detect-removed-java-2.diff, i#83140, n#393719, pmladek
+
+# allow dmake create_patch produce diffable patches
+solenv-dmake-create_patch.diff, i#68917, fridrich
+
+# look for libmawt.so on x86_64 too
+sun-java-amd64-jreextralibdir.diff
+
+# check real help path defined in registry instead of the $(instpath)/help
+sfx-check-real-help-path.diff, i#81139, pmladek
+
+# display help correctly even when the files are symlinks
+xmlhelp-work-with-symlinks.diff, i#81138, pmladek
+
+#don't accept all rows to be header rows in WW8 file
+sw-rowsotrepeat.diff, i#69519, mloiseleur
+
+#generate xhtml that is acceptable for Internet Explorer
+filter-xhtml-title-title.diff,
+
+#fix saving ( as doc format ) word documents with embedded word
+#document ( containing macros ) crashing
+save-doc-withembedded-doc-with-vba-crash.diff, n#339946, i#83632, noelpwer
+
+# enable build debug=t in sw module on x86_64
+sw-debug-build.diff, fridrich
+
+# prevent some array out of bounds in ww8 exporter
+sw-source-filter-ww8-wrtw8nds-out_of_bounds.diff, n#391197, fridrich
+
+# convert kind of correctly nested positioned tables
+# sw-nested-positionned-tables-ww8-import-fix.diff, i#86988, fridrich
+
+# make path detection look for VC2005er dlls, too
+config_office-msvc8-compat.diff, thorsten
+
+# init all members in VirDev's ctor
+vcl-virdev-missing-initialisation.diff, thorsten
+
+# only use value if initialized
+vcl-gcache-missing-initialisation.diff, i#88005, thorsten
+
+# don't use freed memory in slidesorter
+sd-slidesorter-dead-ptr.diff, i#88002, thorsten
+
+# fix import of MSO Userform & Frame ( presence of scroll-top & scroll-left )
+# screws things up
+userform-scrollleftandtop.diff, i#87007, noelpwer
+
+localize-pl-cygwin-paths.diff, tml
+
+# fixes DOC import to show "hiddden text"
+# fix by Caolan, already in OOo-3.0
+raise-annotation-priority-above-charproperties-i53885.diff, i#53885, pmladek
+
+[ Fixes > ooh680-m15 ]
+
+# init all members in svx's line geometry creator
+svx-missing-initialization.diff, i#86163, thorsten
+
+[ Fixes <= ooh680-m15 ]
+
+# init all members in svx's line geometry creator
+svx-missing-initialization-m15.diff, i#86163, thorsten
+
+[ RadioButtons ]
+# Add a GroupName property to RadioButtons so that RadioButtons don't need to
+# share the same name to be part of the same group.
+forms-radio-button-group-names.diff, n#310052, jonp
+# depends on forms-radio-button-group-names.diff above ( needs bug id too )
+xl-import-formradiobutton.diff, noelpwer
+
+[ SELinux ]
+# make OOo work under SELinux
+ooo80816.selinux.bridges.diff, i#80816
+
+
+[ Win32Only ]
+
+accept-underscores-in-hostnames.diff, n#182422, tml
+
+
+[ GnomeVFS ]
+# Locking for gnome-vfs
+# FIXME: file upstream when the correctness proven
+ucb-gnome-vfs-lock.diff, n#203737, jholesov
+sfx2-gnome-vfs-lock.diff, n#203737, jholesov
+config_office-gnome-vfs-lock.diff, n#203737, jholesov
+
+# Fix crash in reading the directories
+# FIXME: file upstream together with the above
+ucb-gnome-vfs-crashfix.diff, i#0, jholesov
+
+# Read as much as possible
+# FIXME: file upstream together with the above
+ucb-gnome-vfs-read-more.diff, i#0, jholesov
+
+# webdav did strange things when it tried to answer on SupportsActiveStreaming
+# property
+# FIXME: file upstream together with the above
+ucb-gnome-vfs-lock-webdav.diff, i#0, n#294620, jholesov
+
+# Fix locking of .xls files
+# FIXME: this is as conservative as possible - a larger redesign appreciated
+# FIXME: file upstream together with the above
+sfx2-gnome-vfs-lock-fix-xls.diff, i#0, jholesov
+
+# Workaround for sftp:// where gnome_vfs_get_file_info() produces
+# GNOME_VFS_ERROR_PROTOCOL_ERROR for broken links
+# FIXME: file upstream together with the above, or throw away when gnome-vfs
+# is fixed
+gnome-vfs-broken-symlinks.diff, i#0, n#293141, jholesov
+
+# Assume that the INET_PROT_GENERIC (generic protocol) is hierarchical - fixes
+# type detection over protocols that are not known to OOo - like sftp://
+gnome-vfs-generic-prot.diff, i#79843, n#264138, jholesov
+
+# Read-only smb share returns GNOME_VFS_ERROR_ACCESS_DENIED when opened with
+# write; fallback to read-only in this case as well
+gnome-vfs-read-only-smb.diff, n#330145, jholesov
+
+# Map ETXTBSY errno to locking violation, necessary for CIFS
+gnome-vfs-cifs-locking.diff, n#333001, jholesov
+
+# Keep the file read/write after reload
+gnome-vfs-reload.diff, n#264140, jholesov
+
+# Show the file size in the Properties dialog
+gnome-vfs-properties.diff, n#264585, jholesov
+
+# WebDAV locking
+# It is in this section because it needs part of the gvfs-related patches
+webdav-locking.diff, n#346711, i#29152, jholesov
+
+# Fix the behaviour for the servers that do not support locking
+webdav-locking-not-locking-servers.diff, n#346711, i#29152, jholesov
+
+# Implement uploading the changed stream to the server
+webdav-locking-stream-can-save.diff, n#346711, i#29152, jholesov
+
+# Serve dav:// and webdav:// protocols in the WebDAV UCP
+webdav-locking-serve-dav-uri.diff, n#346713, i#29152, jholesov
+
+# Fix the runtime for neon 0.24
+webdav-locking-neon24.diff, n#357048, i#29152, jholesov
+
+# Fix Save As
+webdav-locking-save-as.diff, i#29152, jholesov
+
+# Catch possible exceptions in flush(), otherwise can crash
+webdav-locking-catch-flush-exceptions.diff, n#363093, i#29152, jholesov
+
+# The http(s)/dav(s)/webdav(s) protocols can contain even username/passwd
+webdav-locking-can-have-username.diff, n#363363, i#29152, jholesov
+
+# ne_lockstore_add() must be called _after_ ne_lock()
+webdav-locking-lockstore.diff, i#29152, jholesov
+
+# unlock the stream on crash/terminate/...
+webdav-locking-unlock-on-crash.diff, i#29152, jholesov
+
+# NOT LOCKING RELATED!
+# Move gnome-vfs out of the startup sequence, load it only when needed
+gnome-vfs-late-init.diff, i#84137, jholesov
+
+
+[ QuickStarter ]
+# fix the systray quickstarter
+sfx2-quickstarter-fix.diff, i#88382, michael
+
+# External splash screen implementation / 2nd time accelerator
+unxsplash-rework.diff, i#60696, michael/jholesov
+
+# handling of osl pipe has changed, see i#84045
+unxsplash-new-osl-pipe.diff, i#60696, jholesov
+
+# fix the slot: handling again :-(
+unxsplash-new-osl-pipe-slot.diff, i#60696, n#375529, jholesov
+
+# when OOo fails during startup, don't loop endlessly
+unxsplash-finish-on-hangup.diff, i#60696, n#357659, jholesov
+
+
+[ WriterFixes ]
+# Allows to copy/paste html text which is between 2 unknown tags.
+sw-html-insert-unknown-tags.diff, i#59064, mloiseleur
+
+
+[ CalcFixes ]
+# Replace usability numb Zoom dialog with a Combo Box
+# FIXME: this conflicts with Sun's duplication of this work,
+# eg. print preview
+zoom-combobox.diff, michael
+
+# make some symbols from sc visible when compiling with gcc4, necessary since m121
+gcc4-visibility-sc.diff, i#53261, pmladek
+# Fix for b.x.c 62193
+sc-sheet-double-click-rename.diff, i#4517, kohei
+# adds to Autofilter Empty-NonEmpty options bxc #62165
+sc-autofilter-empty-nonempty.diff, i#35578, jody
+# Improves the standard filter options and menu. bxc #62187 #62495
+sc-standard-filter-options.diff, i#35579, michael
+# Saves and loads the standard filters in ods
+sc-standard-filter-options-ods-hack.diff, i#35579, jonp
+# Hides the filtered rows when height of rows are changed bxc #62161
+sc-filter-hide-filteredrows.diff, i#35581, jody
+# Autofill doesnt fill filtered rows bxc 62499
+sc-filters-fill-fix.diff, jody
+
+# Support modification of data source range in DataPilot after table output has
+# been generated.
+sc-datapilot-dynamic-range.diff, i#23658, kohei
+
+# Provision for data-pilot to give autoformat bxc #62162
+#
+# Upstream has already rejected this patch, and closed the issue as WONTFIX.
+# This patch needs to be revised to use 'DataPilot *' cell styles instead of
+# re-using Table AutoFormat, which is fragile and do not always apply
+# correctly.
+sc-datapilot-autoformat.diff, i#37388, jody
+
+# BXC 62488 : Allows insertion of rows by shifting down
+#sc-paste-insert-rows.diff disable...
+
+# Display min password length in dialog BINC 773
+sc-save-password-minlength.diff, i#21923, kohei
+
+# Allow dnd in Change record mode for Data source BINC 70845
+sc-change-record-dnd.diff, i#44982, jody
+
+# keybindings: <ctrl> +/‑ to insert/delete a complete line in calc (X#62530)
+calc-new-acceleration.diff, i#67029, michael
+
+# sc-dp-gridlayout.diff, i#68544 n#190970, jody
+sc-dp-gridlayout.diff, i#68544, n#190970, jody
+
+# Excel compatibility for handling of "string numbers".
+sc-string-arg.diff, i#5658, kohei
+
+# Fix for the above string number patch, for cases where a formula cell is
+# being referenced by the origin cell.
+sc-string-arg-ref-formula-cell.diff, n#391330, kohei
+
+# Print_Area/Print_Titles are only relevant for sheet local names, n#191005
+sc-xls-builtin-name-scope.diff, n#191005, n#257422, jonp
+
+# Allow Cols/Rows to be resized even if document is read-only, n#165980, jody
+sc-read-only-colrow-resize.diff, jody
+
+# Implement 'Toggle merge & center'
+sc-toggle-merge-center.diff, i#67243, jholesov
+
+# Add a 'Natural' variant of sorting, blocking on ODF extension issues
+sc-natural-sort.diff, i#26565, kohei
+
+# Include cell format when sorting via sort icon & determine whether the first
+# row is the column header (depends on sc-natural-sort.diff patch).
+sc-simple-sort-include-format-header.diff, i#13829, kohei
+
+# Paste clipboard when ENTER is pressed, then clear clipboard.
+sc-paste-on-enter.diff, n#358545, i#28535, jonp
+
+# Place a border around the Copy source cell(s).
+sc-copy-source-border.diff, n#367489, jonp
+
+# Allow 'june-2007' to be properly parsed as June 1 2007 in en-US locales.
+sc-date-fix.diff, n#358750, jonp
+
+# For multi-line cell contents, bolding the first line shouldn't bold the
+# entire cell.
+sc-no-apply-pattern-for-cursor.diff, n#359690, jonp
+
+# Add extra padding so that the cell height is larger -- increases legibility.
+sc-extra-cell-margins.diff, n#361358, jonp
+
+# Change default numbering scheme of x-y plot chart from Row 1, Row2, ... to
+# 1, 2, 3... when the X labels are not explicitly given.  This is what Excel
+# does.
+sc-excel-chart-default-xlabels.diff, n#257079, i#83679, kohei
+
+# Fix autoshape excel hyperlink import OOo ( depends on vba-sc-handleautoshapemacro-import.diff )
+vba-sc-autoshapes-hyperlinks.diff, i#66550, noelpwer
+# Delete Rows/Delete Columns should remember the content so that the user is
+# able to paste it elsewhere (similar to Insert Cut Cells in Excel)
+sc-delete-rows-columns-remembers-content.diff, i#71921, jholesov
+
+# load, store and save the sheet protection options from and to an Excel file,
+# and use that information to constrain cell cursor movement when the sheet is
+# protected.
+sc-sheet-protection-options.diff, i#71468, kohei
+
+# Ensure that Print Preview is consistent with Print output.
+sc-print-selected-sheets.diff, n#335684, i#45497, jonp
+
+# After selecting a block, the next movement should move from the *start* of
+# the block selection, not the end.
+sc-move-from-origin.diff, n#364351, jonp
+
+# Allow biffdump.cxx to compile on 64-bit platforms
+sc-biffdump.diff, i#82184, jonp
+
+# Allow to copy-paste on merged cells.
+sc-copy-on-merged-cells.diff, i#7500, mloiseleur
+
+# Allow insertion of cell range that cuts across merged areas.
+# (temporarily disabled as it causes memory exhaustion problem on
+# column insert in empty document).
+#sc-insert-inmerged-range.diff, i#8302, mloiseleur
+
+# Allow objects to stay within cells as expected when rows are resized.
+sc-object-row-position.diff, i#47088, jonp
+
+# Unit conversion fixes in ScDrawLayer.
+sc-drwlayer-units.diff, i#83735, jonp
+
+# Launch navigator when double-clicking the leftmost status area box.
+sc-status-bar-launch-navigator.diff, i#49491, kohei
+
+# Enhance FREQUENCY function to make it behave like Excel (ODFF).
+sc-openformula-frequency.diff, i#8946, kohei
+
+# Enhance MATCH function to accept array as the 2nd parameter (ODFF).
+sc-openformula-match.diff, i#8947, kohei
+
+# Enhance SUMIF function to make Calc's handling of the 3rd parameter identical
+# to Excel's (ODFF).
+sc-openformula-sumif.diff, i#85000, kohei
+
+# Support print & page preview for files containing only lines
+sc-print-lines.diff, n#351468, i#85076, jonp
+
+# Dynyamically resize filtered range when new data rows are present.
+sc-dbrange-dynamic-resize.diff, n#352662, i#85305, kohei
+
+# When importing an Excel file, skip un-supported pivot charts altogether 
+# instead of importing them as an empty chart object.
+sc-skip-pivot-charts.diff, n#355300, i#85658, kohei
+
+# Have cell background paint over the gridlines.
+sc-cellbackground-over-gridlines.diff, n#361360, i#3907, kohei
+
+# Make cell number format toolbar icons togglable & remove the standard format
+# button.
+sc-cellformat-icon-toggle.diff, n#358548, i#86377, kohei
+
+# reduce precision to 15 significant digits for INT function before floor'ing
+# the value.
+sc-formula-int-precision.diff, n#310706, i#86775, kohei
+
+# overwrite character level font attributes when changing them at cell level.
+sc-overwrite-char-font-attrs.diff, n#374580, kohei
+
+[ CalcFixes < ooh680-m14]
+
+# make some symbols from svtools visible for the kde fpicker when compiling with gcc4
+# fix: this breaks win32
+fpicker-kde-gcc4-visibility.diff, pmladek
+
+# don't initialize the value to 0 which screws up certain iterative functions
+# (such as MIN, MAX).
+sc-fix-value-iterator.diff, n#372255, kohei
+
+# Return 0 by MIN/MAX/MINA/MAXA when referenced cells are all empty (patch
+# contributed from Lv Yue) (ODFF).
+sc-openformula-minmax.diff, i#38759, kohei
+
+[ LinuxOnly ]
+# accelerate linking, by extreme cunning i#63927
+speed-local-link-except.diff, i#63927, michael
+speed-local-link.diff, i#63927, michael
+
+[ Misc ]
+# Insert symbol defaults to the Symbol font - not a random one
+gui-sw-insert-symbol.diff, i#15512, michael
+# Address data source ordering x#62860
+addrbk-datasrc-ordering.diff, michael
+# Changed the default option in the Templates and Documents dialog.
+svtools-default-new-document.diff, rodo
+# contextual autocomplete
+context-autocomplete.diff, i#22961, michael
+
+# Fix casts in db_java_wrap.c
+db4-jni-casting.diff, rengelha
+
+# Grouping items in the templates dialog n#106603
+svtools-unsort-template-dialogentries.diff, rodo
+
+# Don't convert certain latin-2 characters into HTML entities when saving as
+# html in ISO-8859-2 encoding.
+svtools-html-iso-8859-2-ignore-chars.diff, i#15456, kohei
+
+# display command line help '-h' to stdout instead of stderr.
+desktop-cmdhelp-stdout.diff, kohei
+
+# always enable file save even when the document is not modified.
+sfx2-always-allow-save-document.diff, n#347423, i#5226, kohei
+
+# Adjust scroll speed while extending selection beyoud visible sheet area.
+scroll-accel-sc.diff, n#375909, i#71362, kohei
+scroll-accel-vcl.diff, n#375909, i#71362, kohei
+
+[ PopupRemoval ]
+# Remove unnecessary popups that might show up during startup.
+
+# prevent the registration dialog from showing up on startup.
+desktop-disable-startup-registration.diff, kohei
+
+[ PopupRemoval > ooh680-m15 ]
+# remove updater code that is only relevant for the upstream version.
+sfx2-remove-check-update-on-fileload.diff, kohei
+
+[ PopupRemoval == ooh680-m15 ]
+# remove updater code that is only relevant for the upstream version.
+sfx2-remove-check-update-on-fileload-m15.diff, kohei
+
+[ PopupRemoval <= ooh680-m14 ]
+# remove updater code that is only relevant for the upstream version.
+sfx2-remove-check-update-on-fileload-m14.diff, kohei
+
+[ EasterEgg ]
+# go-oo.org people active in this release
+go-oo-team.diff, michael
+
+
+[ NovellOnly ]
+# add in an entry for a corporate common dictionary
+corporate-dictionary.diff, michael
+
+# Some Novell colors ...
+novell-palette.diff, michael
+
+# finally disable -fsigned-char on pcc
+solenv-really-use-unsinged-char-on-ppc.diff, i#81127, n#169875, pmladek
+
+
+[ NotDebian ]
+
+# Fix the system default fpicker
+default-system-fpicker.diff, michael
+# don't display File->Wizards-> install dictionaries/fonts -
+# makes no sense on Linux n#74249
+default-no-install-wizards.diff, michael
+# Disable the printer properties which are unused#583
+# related issue: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=353595
+# also last comment in: https://bugzilla.novell.com/show_bug.cgi?id=83925
+# also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=373974
+printer-properties-disable.diff, i#14036, michael
+# use --hash-style=gnu linking when supported
+# disabled for Debian as Debian policy (for now) is to use=both
+speed-hash-style.diff, pmladek
+# re-direct to plugins via http://extensions.go-oo.org/
+redirect-extensions.diff
+
+
+[ CustomUserConfig ]
+
+# This section includes patches that deal with custom user configuration items
+# that are not present upstream.
+
+SectionOwner => kohei
+
+# Swap the delete and backspace key bindings but leave the menus alone.
+sc-default-delete-backspace-key.diff, i#17965, kohei
+
+# migrate keyboard shortcuts & reset character set for CSV import dialog.
+desktop-config-migration.diff n#367160, n#376473, kohei
+
+# To make CSV Text Import settings persistent.
+sc-preserve-imp-opts.diff, i#3687, muthusub
+
+
+[ DebianBaseOnly ]
+SectionOwner => rengelha
+
+sensible-ooomua.diff
+sensible-browser.diff
+no-fontooo-wizard.diff
+pyuno-rpath-ooodir.diff
+default-cairo-disable.diff
+gcj-32bit-runtime-path.diff, i#64888, mklose
+# remove mozilla plug-in option completely since we enable it per default
+# and therefore this option is sense-/useless
+no-mozilla-plug-in-option.diff
+# read variables from /etc/openoffice/sofficerc, since /usr/lib/openoffice/sofficerc
+# just refers to it
+oosplash-etc-openoffice-sofficerc.diff
+# build using -O2 on x86 and sparc according to Debian policy.
+debian-opt.diff
+ubuntu-soffice-config.diff, mklose
+ubuntu-openoffice-java-common.diff, ccheney
+
+# mention openoffice.org-report-builder instead of getting people
+# to download it from elsewhere
+reportdesign-mention-package.diff, rengelha
+
+
+[ DebianOnly ]
+
+SectionOwner => rengelha
+# fix the splash progressbar colors
+debian-splash.diff
+
+[ DroplineGNOMEOnly ]
+SectionOwner => DropLine
+
+pushfont-psstream.diff, i#84481
+scp2-user-config-ooo-2.0.diff
+
+
+[ MandrivaOnly ]
+SectionOwner => gghibo
+gcc401-stlport45-include.diff
+mandriva-archflags.diff
+mandriva-java32_64.diff
+# db42-fix-jni-includes.diff
+# Fixes msfontextract tool (uninitialized variable)
+msfontextract.diff, mrl
+# Fixes ooqstart.desktop Exec command
+ooqstart.desktop-exec.diff, Marcelo Ricardo Leitner
+# Adds Angola currency. FIXME: probably done in the worst way.
+angola.diff, mrl
+# Fix DictOOo.swx and FontOOo.swx paths, as Mandriva doesn't ship them
+# inside share/dict/ooo dir.
+wizards-path.diff, mrl
+
+
+[ MandrivaOnlyUnix ]
+
+SectionOwner => gghibo
+help-support-mdv.diff
+# change user config dir name from ~/.openoffice.org2.0 to ~/.ooo-2.0
+scp2-user-config-ooo-2.0.diff, pmladek
+
+
+[ NovellOnlyUnix ]
+
+# Help Support page
+help-support.diff, michael
+# change user config dir name from ~/.openoffice.org1.9.milestone to ~/.ooo-2.0-pre
+scp2-user-config-ooo-2.0.diff, pmladek
+# Push fonts into the ps stream always
+pushfont-psstream.diff, i#84481, michael
+
+# accelerate run-time linking, somewhat experimental ...
+#link-symb-funct.diff, michael
+
+# search also /usr/share for icons
+# it is a temporary hack; we should do more clean FHS compliant installation
+# we need a good plan before, though ;-)
+split-icons-search-usr-share.diff, n#296502, pmladek
+
+
+[ BuildBits ]
+novell-win32-agfa-monotype-fonts.diff, tml
+
+# allow to define java target, so the build is usable with the JVM 1.4
+# even when it is built with JDK 1.5
+build-java-target.diff, pmladek
+
+# fix build with gcc-4.2.1 and -fvisibility-hidden
+buildfix-xmloff-exportxforms.diff, i#84965
+
+# fix the --enable-reportdesign configure check to work
+buildfix-enable-reportdesign-check.diff, i#87518, pmladek
+
+[ NovellOnlyWin32 ]
+SectionOwner => tml
+
+novell-win32-installer-branding.diff
+novell-win32-vrb-branding.diff, n#191913, i#68817
+novell-win32-registry-branding.diff, n#191913
+
+win32-prebuilt-writingaids-zip.diff
+
+[ translate-org-za-common ]
+SectionOwner => davidf
+
+# use the dejavu fonts - commented out as different patches in the works
+# dejavu-fonts.diff, i#59853
+
+
+[ FrugalwareOnly ]
+gcc401-stlport45-include.diff, gghibo
+no-oc.diff, i#88955, vmiklos
+
+
+# ( mmp@oo.o deals with defaults apparently )
+
+[ Defaults ]
+# Disable the recovery report dialog
+recovery-report.diff, i#53531, martink
+
+#
+# Controversial bits - no use filing up-stream
+#
+
+# automatically do any migration we can, with no wizard
+default-no-startup-wizard.diff, michael
+
+# don't throw up the style dialog on 1st run
+default-no-style-dialog.diff, michael
+
+# pestering people serves no useful purpose
+default-no-registration.diff, michael
+
+# no Help->registration dialog by default
+default-no-registration-menu.diff, michael
+
+# The Industrial OOo icon theme is too old. The OOo Tango icon
+# theme is closer to the current GNOME Industrial theme rules.
+# => Tango should be preferred over Industrial.
+tango-prefer-over-industrial.diff, n#304615, pmladek
+
+
+[ DefaultSettings ]
+
+# default to anti-alias at point size of 1 point
+default-font-aasize.diff, michael
+# set default font size to 10pt
+default-font-size.diff, i#35565, michael
+# Dramatically improve MS import / export cf. i8276 et. al.
+default-ms-filter-convert.diff, i#8276, michael
+# use pair kerning in new documents
+#KENDY TESTME: should be on using a different patch. default-pairkerning-on.diff, i#35873, jholesov
+# Optimal Page Wrap should be default for graphics insertion (X#59831)
+writer-default-as-optimal-page-wrap.diff, i#38108, jody
+#
+# Controversial bits - no use filing up-stream
+#
+# Use the Gnome VFS on KDE as well if it's there (better than nothing)
+vfs-kde-too.diff, michael
+# Trade speed for reliability with valgrind
+valgrind-alloc.diff, michael
+# Pack new JAVA Runtime
+javaversion.diff
+
+# disable the IDEA algorithm in the internal openssl; It is pattented.
+# There is no license fee only for non-commercial use.
+# This change actually affects only the Windows builds because the others
+# should use --with-system-openssl
+default-openssl-no-idea-alg.diff, pmladek
+
+[ Features ]
+# load and save also odf documents in flat xml format as opposed to the
+# compressed ones (conforming to the odf specifications)
+odf-flatxml-import-export.diff
+
+# ask user on logout/shutdown to save documents
+session-management.diff, i#63156, rodo
+
+# search <ooo-home>/share/template/common for language independent templates
+# will not push it upstream because it will be replaced by upcomming kendy's work
+office-cfg-common-template-dir.diff, pmladek
+
+# add new category "Labels" for blank Labels, calling cards, CD labels, etc.
+# will not push it upstream because it will be obsoleted by upcomming kendy's work
+sfx2-template-category-labels.diff, pmladek
+# add labels folder to scp2 module too
+scp2_add_additional_dirs.diff, kami
+
+
+[ BuildBits ]
+build-identification.diff, tml
+
+# do an optimizing link
+build-optimized-link.diff, michael
+
+# add -dontstrip option to the installer
+installer-strip-optional.diff, i#48814, pmladek
+
+# add possibility to set ARCH_FLAGS when building libnas
+nas-use-arch-flags.diff, pmladek
+
+# add missing #include <stdio.h> in autodoc, breaks when building with STLport5
+#autodoc-add-missing-stdio-h.diff, rengelha
+
+# do not pack any potential .orig files with ppds
+psprint_config-no-orig.diff, jholesov
+
+# changes the SDK gid module name to gid_Module_Root_SDK, so the generated list
+# of files does not conflict with the main package, i#64802
+sdk-gid-module-name.diff, pmladek, i#64802
+
+# Workaround for compile failure with glibc 2.4's langinfo.h
+i18nutil-glibc-braindamage-workaround.diff, brosenk
+
+# fix build with system libnss installed apart from mozilla
+# strictly required on SL10.1/SLED10 where the xulrunner-nss.pc is broken, n#195272
+libxmlsec-system-nss.diff, i#69368, pmladek
+
+xulrunner-1.9.diff, i#86670
+
+# allow separate helpcontent build
+#FIXME src680: separate-helpcontent.diff, jholesov
+
+# bind all those function / named relocations locally
+speed-symbolic-functions.diff, i#85679, pmladek
+
+# Use -Bdirect linking - this is a really marginal win.
+speed-bdirect.diff, i#58119, brosenk
+
+# fix configure.in
+config_office-liblayout-libfonts.diff
+
+[ DebianOnly ]
+seamonkey-is-iceape.diff
+
+[ MandrivaOnly ]
+SectionOwner => gghibo
+# mozilla-firefox.diff
+
+[ ArkOnly ]
+SectionOwner => brosenk
+
+# Db 4.3/4.4 needs -lpthread
+system-db-4.3-use-lpthread.diff, i#58474, rengelha
+
+
+[PLDOnly]
+SectionOwner => arekm
+
+# fix build of sal project
+solenv-unxlngi4-link.diff, i#66982
+# fix for macro browser crash
+sfx2-badscript.diff, i#67976
+
+
+[ BuildBits ]
+# add automatical detection of serializer.jar into the configure
+# add it to classpath on one more place
+xalan-serializer-jar-more.diff, pmladek
+
+# work around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22392
+svx-customshapes-NOOPTFILES.diff, martink
+
+# This set seem to be related to a gcc bug ...
+# fixes warnings about missing return values
+warning-return-values-filter.diff, i#58977, pmladek
+warning-return-values-registry.diff, i#58979, pmladek
+# fixes warnings about that a variable is used unitialized
+warning-uninitialized-variables-tools-2.diff, i#58984, pmladek
+
+# warning: comparison with string literal results in unspecified results
+warning-string-comparsion-sw.diff, i#86880, pmladek
+
+#fix a build issue on solaris with sunpro 5.9 aka Sun Studio 12
+stlport-solaris-fileno.diff, fridrich
+
+# internal unixODBC: add arch(ppc64)
+buildfix_unixODBC.diff, hmth, i#89955
+
+# fix build with vba as extension
+buildfix-vba-as-extn.diff, i#86937, hmth
+
+# fix build with gcc-4.3 on x86_64
+gcc-4.3-icc.diff, i#85771, pmladek
+# fix build with gcc-4.3 on ix86
+gcc-4.3-bridges.diff, i#86551, pmladek
+
+[ SdkFixes ]
+# honour also linux as in s390-ibm-linux instead of only linux-gnu,
+# see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476821
+sdk-settings-honour-linux.diff
+
+[ BFBuildBits ]
+SectionOwner => pmladek
+
+# STLport fixes
+binfilter-stl.diff, i#63770, hmth
+cws-gcc430two-binfilter.diff, i#83276, pmladek
+
+
+[ SystemBuildBits ]
+SectionOwner => fridrich
+
+# Mozilla build-bits to not break on Solaris 11
+moz-solaris11-makefiles.diff, fridrich
+
+[ DejaVuFonts ]
+
+# Following the changed names of DejaVu fonts
+# Add Liberation fonts for all platforms
+dejavu_liberation_packaging_fix.diff, kami
+dejavu_liberation_making_fix.diff, kami
+
+[ VCL ]
+
+# Don't let the splash screen take over
+no-splash-takeover.diff, i#23609, rodo
+
+# Better fallback when some of the plugins are not available
+vcl-better-fallback.diff, i#50857, jholesov
+
+# prioritize hebrew culmus fonts, Debian bugs #280084, #296152, #300642
+hebrew-culmus.diff, noelpwer
+
+# write setup to %%Begin(End)Setup, instead of %%Begin(End)PageSetup when
+# generating PostScript
+psprint-postscript-page-setup.diff, i#65491, n#80448, jholesov
+
+# enable vcl to load bitmaps when height it negative
+vcl-bitmap2-negative-height.diff
+
+[ SystemBits ]
+# use getopt() and readdir_r() from system glibc
+#FIXME src680: system-libc.diff, i#69033, rengelha
+
+
+[ Icons ]
+# Make insensitive toolbar icons look far nicer
+gui-insensitive.diff, i#35555, michael
+
+[ TangoIcons ]
+# default to large icons in the toolbar
+gui-toolbox-large-icons.diff, jholesov
+
+# use it by default under Win32
+tango-icons-default-w32.diff, n#254855, pmladek
+
+
+[ NotDebian ]
+# Improve readability of BUILD_VER_STRING in Help:About dialog
+# rengelha doesn't like it, so put in NotDebian
+# or maybe should be in Win32Only even?
+about-build-ver-readability.diff, i#68590, tml
+
+
+[ Fpickers ]
+# Modify the fpicker makefile
+fpicker-common-build.diff, jholesov
+
+# Show "Use OpenOffice.org dialogs" check box only if the system fpicker is
+# available (better implementation) FIXME IZ number
+fpicker-show-checkbox.diff, jholesov
+
+# Out-of-process implementation of KDE fpicker
+# FIXME: No IZ number for this, because it is necessary to do it internal first
+fpicker-kde-service.diff, jholesov
+# Out-of-process implementation of KDE fpicker
+# FIXME: No IZ number for this, because it is necessary to do it internal first
+fpicker-kde-dialog.diff, jholesov
+# Partially support KIO (download the file locally if we cannot handle it in
+# OOo or (FIXME) using gnome-vfs) binc#60527
+fpicker-kde-partial-kio.diff, jholesov
+# Workaround for 'Filter name (*.blah)' vs. 'Filter name' problem in
+# Insert->Picture->From File... n#66873
+fpicker-kde-filter-name.diff, jholesov
+
+# Adapt to changes in resources handling of fpickers
+fpicker-kde-resmgr.diff, jholesov
+
+# Handle media:/ files locally
+fpicker-kde-local-media.diff, jholesov
+fpicker-kde-local-media2.diff, jholesov, n#238695
+# Fix too wide "Menu -> Insert -> Picture -> From File..." dialog Novell#72010
+fpicker-kde-too-wide.diff, jholesov
+
+# Don't overwrite files containing spaces, etc. n#241080
+fpicker-kde-dont-overwrite.diff, jholesov
+# Work even with non-UTF-8 locales n#168616
+fpicker-kde-non-utf8.diff, jholesov
+
+# KDE fpicker should be modal n#265718
+fpicker-kde-modal.diff, jholesov
+
+# Let the KDE and Gtk+ fpickers build and install FIXME IZ number
+fpicker-common-scp2.diff, jholesov
+
+# Missing accel in Gtk+ fpicker. n#354447
+fpicker-gtk-accel-n354447.diff, n#354447, hub
+
+[ AddressBooks ]
+
+# Evolution should also be default database(n#66217).
+default-evolution-database.diff, michael
+# Mailmerge column mapping by default (n#73627)
+default-evo-column-mapping.diff, michael
+
+# NB. when this cws goes up-stream we need to enable this
+default-evo2-ab.diff, michael
+
+
+[ Lwp ]
+# Lotus Word Pro Import Filter
+lwp-filter-component.diff, i#11215, noelpwer
+
+
+[ Win32Only ]
+
+# some versions of make don't like us
+cygwin-make-ver.diff, i#68283, michael
+# 2 more makefiles in sysui are seriously broken #35628
+# parallel-python-makefile_mk.diff # looks to be upstream
+# Work around G/W mail component crasher bug #FIXME - re-file vs. i#34264
+win32-gw-send-mail.diff, i#34264, michael
+# This is a pretty nasty IE problem i#19510, i#65209
+win32-activex-disable.diff, i#65209, i#19510, n#168534, tml
+# This enables building libIDL, glib and buildtools for mozilla from source
+mozilla-buildlibs-win32.diff, i#58741, davidf
+# This enables building scsolver on Win32
+boost-patch.diff, tml
+# Multi-language installer stuff
+win32-multi-lang-installer.diff, i#66062, tml
+
+# fix for visual studio express 2005 ( ooo-build only )
+2005-express-stl-remove.diff, noelpwer, i#71404
+
+
+[ VBABits ]
+# Parse (& ignore) 'Attribute' statements
+vba-attribute.diff, i#37347, noelpwer
+#basic depends on built and delivered ooovbaapi
+basic-prj-build_lst.diff
+
+
+[ ArkOnly ]
+SectionOwner => brosenk
+
+# See what breaks if we build with more optimizations
+testing-more-optimizations-ark.diff
+
+
+[ GentooExperimental ]
+SectionOwner => hmth
+
+# Gnu JRE paths.
+gentooexperimental-gnujre.diff
+# test system libxmlsec
+system-xmlsec.diff
+
+[ GentooOnly ]
+SectionOwner => aprosky
+
+# Allow build to proceed with PaX enabled
+gentoo-pax-fix.diff, aprosky
+# support server-only versions of 64bit JDKs
+64bit-jdk-server-paths.diff, i#65974, hmth
+# use IBM j9vm over IBM classic JVM
+ibm-j9vm.diff, hmth
+# system db check
+system-db-check.diff, i#65979, hmth
+# User ~/.ooo-2.0 as user dir
+scp2-user-config-ooo-2.0.diff, pmladek
+# unused java code
+disable-parser-jaxp.diff
+# default inc/lib
+config_office-XINC-XLIB-defaults.diff, i#65976
+# gdi/font.cxx: stl list error
+vcl_font-NO_LIST.diff
+# linux-headers-2.6.22 issue?!
+linux-headers.diff
+
+[ DebianBaseOnly ]
+SectionOwner => rengelha
+
+help-msg-add-package-info.diff
+
+[ DebianBaseNoHelpContent ]
+SectionOwner => rengelha
+
+disable-helpcontent2.diff
+disable-xmlsearch-and-xmlhelp-jar.diff
+
+
+[ UbuntuOnly ]
+SectionOwner => mklose
+
+default-system-fpicker.diff, michael
+ubuntu-palette.diff
+ubuntu-dictionary.diff
+ubuntu-lpi.diff, i#64895, mklose
+ubuntu-sparc-hack.diff, mklose
+
+
+[ Mono ]
+SectionOwner => rodo
+
+#
+# These patches are experimental beware ...
+#
+mono-scp2.diff
+
+[ Mono > ooh680-m15 ]
+cli_ure-mono-bridge.diff
+
+[ Mono == ooh680-m15 ]
+cli_ure-mono-bridge-m15.diff
+
+[ Mono <= ooh680-m14 ]
+cli_ure-mono-bridge-m14.diff
+
+[ Mono ]
+cli_ure-source-bootstrap-assembly-cs.diff
+cli_ure-source-bootstrap-makefile-mk.diff
+cli_ure-source-bootstrap-managed_bootstrap-cs.diff
+cli_ure-source-bootstrap-native_glue-cxx.diff
+mono-testtools.diff
+
+# The build
+[ Mono > ooh680-m15 ]
+mono-build.diff
+cli_ure-prj-build-lst.diff
+
+[ Mono == ooh680-m15 ]
+mono-build-m15.diff
+cli_ure-prj-build-lst-m15.diff
+
+[ Mono <= ooh680-m14 ]
+mono-build-m14.diff
+cli_ure-prj-build-lst-m14.diff
+
+[ Mono ]
+build-mono-link.diff, jholesov
+
+# sign the output assembly using the key pair; it is needed to install
+# the versioned assemblies into the system Global Assembly Cache  (GAC)
+mono-build-keyfile.diff
+
+# climaker rewritten in C#
+mono-climaker.diff
+mono-climaker-config.diff
+climaker-csharp-win.diff
+buildfix-climaker-disabled.diff
+mono-climaker-bridgetest.diff
+
+[ VBAObjects ]
+SectionOwner => noelpwer
+
+vbaevents-services-sources.diff, i#68893
+
+sc-hacky-handle-boolean.diff
+
+svx-source-inc-fmundo-hxx.diff, i#68893
+svx-source-form-fmscriptingenv-cxx.diff, i#68893
+svx-source-form-makefile.diff, i#68893
+svx-source-form-fmundo-cxx.diff, i#68893
+
+vbaevents-services-build.diff, i#68893
+
+scp_vba_uno_service.diff, i#68893
+
+vba-support-export-palette.diff, i#68900
+
+vba-workbook-worksheet-events.diff
+vba-workbook-worksheet-events-buildfix.diff
+vba-worksheet-change-event.diff, n#390082, Fong
+vba-worksheet-change-event-buildfix.diff, n#390082, Fong
+
+vba-keep-codenames-in-sync.diff
+
+[ VBAObjects ]
+#associating sheet and codename when insert a sheet
+# sc-insert-sheet-codename.diff, i#80869, jianhua
+
+vba-brackets-params-fix.diff, i#79918, n#292861
+vba-negnumber-inparam-withoutbrackets.diff, n#294302
+
+# hack for when resolving a symbol in the module ThisWorkbook
+vba-symbol-searchhack-for-thisworkbook.diff
+vba-allow-ranges-for-cell-functions.diff
+
+# in the basic IDE if the curson in within a macro
+# pressing the run button should run that macro
+# if the cursor is not in the macro then it should
+# raise the macro chooser dialog
+vba-ide-choose-macro-to-run.diff
+
+# provide a compatible error object
+vba-error-object.diff
+
+
+# make ScExtDocSettings public
+scextopt-public.diff, jianhua
+
+#tweak cws-npower7/8 to build vba before filter ( filter uses headers generated
+#from oovbapi.rdb )
+sc-vba-build-lst.diff
+# allows access to some internals needed for vba api, doesn't change
+# any functionality
+sc-vba-autofill-support.diff, i#68883
+#-DVBA_OOBUILD_HACK ( make sure this flag is set for ooo-build builds )
+# this flag hooks in code in vba api model implementation that depends on
+# core changes not yet upstream
+sc-source-ui-vba-makefile-mk.diff
+
+# export of macro bindings for shapes
+sc-export-shape-macro-bindings.diff, n#304739, noelpwer
+
+# export of hlink bindings for shapes
+sc-export-shape-hlink-bindings.diff, n#304739, noelpwer
+
+# Application.Caller
+api-application-caller.diff, n#339941, noelpwer
+default-autotext-and-form-name.diff, n#353687
+
+# add support for passing a caller to basic when calling a script
+# via the scripting framework - note depends on vbaevents-services-sources.diff
+basic-caller-support.diff
+
+# fix --disable-vba build
+oovbaapi-disable-vba.diff
+
+# fix for n#353254
+n353254-dateserial.diff, n#353254, Fong
+# fix for n#353260
+n353260-datevalue.diff, n#353260, Fong
+# fix for n#353242. missing APIs
+# a set of CommandBar APIs.
+vba-commandbar-bundle.diff, n#353242, Jianhua
+# fix for n#365557. missing APIs of XInterior
+vba-interior.diff, n#365557, Jianhua
+vba-stringtodouble.diff, n#359943, noelpwer
+#fix for n#309981
+vba-fixup-singlerange-sheetref.diff, n#309981, noelpwer
+#always (try) to set the default property to an SbxUnoObject
+vba-always-set-defaultprop.diff, n#388049, noelpwer
+# fix for n#390080, add PageSetup.PrintArea method
+vba-pagesetup-object.diff, n#390080, Fong
+[ VBAUntested ]
+SectionOwner => noelpwer
+basic-source-classes-eventatt-cxx.diff, #no-upstream
+#ditto
+# null patch below was removed because it causes 
+# other problems, e.g. the current NULL behavour fails
+# for vba api
+#for NULL and IsNULL compatibility with MSO
+#vba-basic-null.diff i#85349, jjiao
+vba-support-stoc-typeprovider-xexactname.diff, #no-upstream
+
+#must ask kendy about this ( noelp )
+vba-parallel-build.diff, #no-upstream
+#not so useful but perhaps we can build on it later
+basic-speedup-fix.diff
+
+# the following patches are part of cws-npower10
+# keep them here until they are reviewed to save regenerating
+# the individual patches
+# support Replace function
+vba-replace-function.diff, n#226439, Fong
+# support StrConv function
+vba-strconv-function.diff, n#294187, Fong
+# Fix rounding problem in CCur function
+vba-ccur-function.diff, n#294187, Fong
+# Conversion between byte array and String
+## vba-bytearray-string.diff, Fong
+# support Partition function
+vba-partition-function.diff, n#294187, Fong
+# GetAttr function, using windows api to get file attributes in Win32.
+vba-getattr-function.diff, n#294187, Fong
+# Fomat function enhancement for VBA 
+vba-format-function.diff, n#294187, Fong
+# Error function compatible with VBA
+vba-error-function.diff, n#294187, Fong
+
+# Is function only valid for objects
+#vba-is-behaviour.diff
+# support static keyword for procedures and local variables
+#vba-static-behaviour.diff, noelpwer, i#58089, n#306717
+
+[ Features ]
+# Pre- and postprocessing capabilities for loading and saving.
+sfx2-pre-and-postprocess-during-save-load.diff, i#71939, florian
+sfx2-pre-and-postprocess-crash-fix.diff, n#270544, rodo
+# hack to ignore writerfilter if odf-converter is present
+odf-converter-ignore-writerfilter.diff, n#348471, jholesov
+
+[ Lockdown ]
+# Disable UI [toolbars, menus] customization
+ui-desktop-integration.diff, michael
+
+
+[ msaccess ]
+SectionOwner => strba
+SectionIssue => i#33654
+
+#cws-mdbdriver01.diff
+
+#cws-mdbdriver02.diff
+
+#mdbtools.diff
+#mdbtools-makefile-mk.diff
+#mdbtools-prj-build-lst.diff
+#mdbtools-prj-d-lst.diff
+
+#connectivity-source-drivers-mdb-mdb-map.diff
+
+#hack to get the proper msaccess tabpage
+#msaccess-db-create-dialog-fix.diff
+
+
+#[ STLport5 ]
+#SectionIssue => i#63770
+#
+#system-stlport5.diff, i#79875
+#system-stlport51.diff, i#79876
+
+
+[ CalcSolver ]
+SectionOwner => kyoshida
+SectionIssue => i#8808
+
+# add lpsolve linker flag to libs.mk
+solenv-inc-libs-mk.diff
+
+# add scsolver to the dep chain for sc
+scs-sc-build.diff
+
+# needs more boost headers
+scs-boost.diff
+
+# configure check for system-lpsolve
+system-lpsolve-config_office.diff
+
+# setup protocol handler (urgh) and add menu bar item, and install the component.
+scs-officecfg.diff
+scs-scp2.diff
+scs-sc-menubar.diff
+scs-officecfg-calc.diff
+
+# package scsolver as a default uno extension (not working ATM).
+#scsolver-uno-extension.diff
+#scsolver-enable-extension.diff
+
+[ OOXML > ooh680-m14 ]
+cws-xmlfilter02-sc.diff
+
+[ OOXML <= ooh680-m14 ]
+cws-xmlfilter02-sc-m14.diff
+
+[ OOXML ]
+cws-xmlfilter02-config_office.diff
+cws-xmlfilter02-filter.diff
+cws-xmlfilter02-goodies.diff
+cws-xmlfilter02-offapi.diff
+cws-xmlfilter02-postprocess.diff
+cws-xmlfilter02-sal.diff
+cws-xmlfilter02-sax.diff
+cws-xmlfilter02-scp2.diff
+cws-xmlfilter02-sd.diff
+cws-xmlfilter02-solenv.diff
+cws-xmlfilter02-svx.diff
+cws-xmlfilter02-sw.diff
+cws-xmlfilter02-toolkit.diff
+
+cws-xmlfilter03-sw.diff
+cws-xmlfilter03-sc.diff
+cws-xmlfilter03-offapi.diff
+
+win32-installer-register-moox-types.diff
+
+writerfilter-module-writer.diff
+
+writerfilter-source-dmapper-domainmapper-debug.diff
+
+gperf-3-is-needed.diff
+
+oox-token-deps.diff
+
+buildfix-oox-depends-on-unotools.diff
+
+[ CalcFixes ]
+
+# Support several different formula syntax, and add a formula syntax 
+# configuration option in the Options page.
+# The patch depends on the cws-xmlfilter03 stuff
+sc-formula-syntax.diff, n#358558, kohei
+
+# fix the cell range reference window so that it draws current selection
+# for XL_A1 and XL_R1C1.  This is part of the formula syntax support.
+sc-fix-range-ref-window.diff, n#358558, kohei
+
+# Toggle gridline display per sheet.
+sc-sheet-gridline-toggle.diff, kohei
+
+[ CalcFixes < ooh680-m15 ]
+# Fix a regression where a pasted cell range is not highlighted.
+sc-fix-paste-cellrange-selection.diff, i#86894, kohei
+
+[ CalcFixes ]
+# Skip overlapped cells (cells that are hidden under a merged cell) when 
+# navigating through cells.
+sc-skip-overlapped-cells.diff, i#86943, n#362674, kohei
+
+# Make sure that the colors between the tabs of selected and unselected 
+# sheets can be distinguished.
+svtools-adjust-sheet-tabcolor.diff, n#386029, kohei
+
+
+[ ImpressFixes ]
+
+# make the "Animate attached Shape" checkbox in the text animation
+# options behave sensible (i.e. disables it for outline text). Also
+# backports fix for #i69364 and #i67343 from upstream
+sd-custom-animation-fixes.diff, n#380036, i#69364, thorsten
+
+#[ OOXSTLport5 ]
+#
+## oox devs, please reconsider operator[] use,
+## see i#80084/cws chart11 ! thank you!
+#system-stlport51-oox.diff
+#system-stlport51-oox-map.diff
+
+[ PostgreSQL ]
+sdbc-postgresql.diff
+sdbc-postgresql-build-lst.diff
+sdbc-postgresql-config_office.diff
+connectivity-workben-postgresql.diff
+gcc-4.3-postgresql.diff
+
+
+
+[ ArkOnly ]
+SectionOwner => brosenk
+
+# We use KMail...
+# There's no point in upstreaming this because not everyone uses KMail.
+ark-default-ExternalMailer.diff
+
+[ ArkOnlyExperimental ]
+# There's no point in upstreaming this because it relies on the Ark
+# Java lib naming scheme and won't work anywhere else.
+# Not applied right now, needs porting
+compiletime-skip-duplicate-jars.diff
+# Don't crash HelpLinker
+# FIXME check if this is still needed with m190
+gcj-HelpLinker-no-NullPointerException.diff, i#61278
+
+# This is faster, and solves gcj -C's private bug. But it's also
+# close to untested.
+# FIXME this needs reimplementation with the current build system
+ark-experimental-gcj-use-ecj.diff, i#64917
+
+# Ark Linux includes precompiled versions of Xerces, Xt and db.jar.
+# There's no need to precompile them again, just use the system version.
+# There's no point in upstreaming this because it relies on the Ark
+# Java lib naming scheme and won't work anywhere else.
+# FIXME this needs reimplementation with the current build system
+ark-system-precompiled-java.diff
+
+[ DebianBaseOnly ]
+# link with -lcolamd, needed because our liblpsolve55{,_pic}.a doesn't include it
+system-lpsolve-link-with-colamd.diff, rengelha
+
+[ DebianOnly ]
+debian-dictionary.diff, rengelha
+#debian-gccXXXXX.solenv.javaregistration.diff
+
+
+[ cairocanvas ]
+cairo-canvas-use-window-screen.diff, rodo
+
+
+[ OpenGLTransitions ]
+transogl-transitions-slideshow.diff
+transogl-transitions-sd.diff
+transogl-transitions-officecfg.diff
+transogl-transitions-scp2.diff
+transogl-more-transitions.diff
+transogl-vsync.diff
+transogl-shader-transitions.diff
+transogl-mesa-fallback.diff
+transogl-shader-transitions-1.diff
+transogl-dispose-fix.diff
+transogl-sync-fix.diff
+transogl-detect-fix.diff
+
+[ Experimental ]
+# sal_uInt32 -> sal_uIntPtr for events on some places
+events-intptr.diff, i#59411, jholesov
+
+
+[ DebianSidOnly ]
+static-libs-use-_pic.diff, rengelha
+# link dynamically with liblpsolve55.so
+system-lpsolve-rpath.diff, rengelha
+
+[ UbuntuOnly ]
+human-icons-add.diff, mklose
+
+[ UbuntuL10nOnly ]
+human-icons-i18n.diff, mklose
+
+[ DebianEtchOnly ]
+static-libs-use-_pic.diff, rengelha
+hunspell-lib-use-_pic.diff, rengelha
+libhnj-lib-use-_pic.diff, rengelha
+# use -llpsolve55_pic
+system-lpsolve-use-_pic.diff, rengelha
+
+[ UbuntuDapperOnly ]
+static-libs-use-_pic.diff, rengelha
+hunspell-lib-use-_pic.diff, rengelha
+# use -llpsolve55_pic
+system-lpsolve-use-_pic.diff, rengelha
+
+[ UbuntuEdgyOnly ]
+static-libs-use-_pic.diff, rengelha
+hunspell-lib-use-_pic.diff, rengelha
+unxlngi6-notune.diff, doko
+ubuntu-no-stack-protector.diff, doko
+# use -llpsolve55_pic
+system-lpsolve-use-_pic.diff, rengelha
+
+[ UbuntuFeistyOnly ]
+static-libs-use-_pic.diff, rengelha
+unxlngi6-notune.diff, doko
+ubuntu-no-stack-protector.diff, doko
+# use -llpsolve55_pic
+system-lpsolve-use-_pic.diff, rengelha
+#gccXXXXX.solenv.javaregistration.diff
+
+[ UbuntuGutsyOnly ]
+static-libs-use-_pic.diff, rengelha
+unxlngi6-notune.diff, doko
+ubuntu-no-stack-protector.diff, doko
+# link dynamically with liblpsolve55.so
+system-lpsolve-rpath.diff, rengelha
+#gccXXXXX.solenv.javaregistration.diff
+
+[ UbuntuHardyOnly ]
+static-libs-use-_pic.diff, rengelha
+unxlngi6-notune.diff, doko
+ubuntu-no-stack-protector.diff, doko
+# link dynamically with liblpsolve55.so
+system-lpsolve-rpath.diff, rengelha
+#gccXXXXX.solenv.javaregistration.diff
+ubuntu-mstopdf.diff, ccheney
+
+[ FedoraFixes ]
+ooo64508.vcl.honourfontconfighinting.diff
+
+ooo67658.sfx2.reloadcrash.diff
+
+oooXXXXX.vcl.x86_64.impressatk.diff
+
+ooo73201.sw.a11yloadcrash.diff
+
+#FIXME src680: ooo72129.vcl.fontglyphindex.diff
+ooo61812.svx.a11ycrash.diff
+
+ooo85931.inconsistent.getentrypos.diff
+
+ooo86080.unopkg.bodge.diff
+
+ooo87071.sd.backgroundfix.diff
+
+[ CairoFonts ]
+# needs Gtk2.0 >= 2.10 and cairo, so this is on the own section
+ooo59127.vcl.honourcairofont.diff
+# help LCD displays
+ooo85470.workspace.cairotext01.diff, ccheney
+# more cairo font fixes from Caolan, extracted from CWS cmcfixes46
+ooocmcfixes46.diff, thorsten
+
+[ GStreamer ]
+SectionOwner => rodo
+SectionIssue => i#68717
+
+gstreamer-avmedia.diff
+gstreamer-sd.diff
+gstreamer-scp2.diff
+gstreamer-config-office.diff
+gstreamer-slideshow.diff
+gstreamer-solenv.diff
+gstreamer-svtools-content-types.diff
+gstreamer-avmedia-file-types.diff
+gstreamer-vcl.diff
+avmedia-source-gstreamer-ChangeLog.diff
+avmedia-source-gstreamer-exports.dxp.diff
+avmedia-source-gstreamer-gstcommon.hxx.diff
+avmedia-source-gstreamer-gstframegrabber.cxx.diff
+avmedia-source-gstreamer-gstframegrabber.hxx.diff
+avmedia-source-gstreamer-gstmanager.cxx.diff
+avmedia-source-gstreamer-gstmanager.hxx.diff
+avmedia-source-gstreamer-gstplayer.cxx.diff
+avmedia-source-gstreamer-gstplayer.hxx.diff
+avmedia-source-gstreamer-gstuno.cxx.diff
+avmedia-source-gstreamer-gstwindow.cxx.diff
+avmedia-source-gstreamer-gstwindow.hxx.diff
+avmedia-source-gstreamer-makefile.mk.diff
+letter-wizard-resource-id.diff, i#84209
+
+[ Shrink ]
+SectionOwner => michael
+
+# kill >1Mb of bloat in sal
+size-sal-textenc.diff, i#70166
+
+# don't export trivial strings in svtools, increases linking time, bloats size
+svtools-dont-extern-sRTF-sHTML.diff, i#86772, jholesov
+sw-dont-extern-sRTF-sHTML.diff, i#86772, jholesov
+
+[ BFShrink ]
+# don't export trivial strings in svtools, increases linking time, bloats size
+binfilter-dont-extern-sRTF-sHTML.diff, i#86772, jholesov
+
+
+[ NovellOnlyUnix ]
+# search also gij32, ..., so the 32-bit package works on 64-bit
+jvmfwk-gij32.diff, n#222708, pmladek
+
+
+[ SVGImport ]
+# Very partial implementation of SVG import
+# Work in progress, don't use, hic sunt leones, etc.
+#svg-import.diff, jholesov
+# Marco Cecchetti's work on importing text
+#svg-import-text.diff, jholesov
+
+# A bit less partial implementation of SVG import
+# Work in progress, but fairly usable already
+svg-import-basegfx.diff, thorsten
+svg-import-filter.diff, thorsten
+# Same as before, but adds a graphic filter for SVG
+svg-import-filter-gfxfilter.diff, thorsten
+
+[ CalcDataPilotDrillDown ]
+# Implements DataPilot cache table, result drill-down, and some extra UNO API.
+SectionOwner => kohei
+SectionIssue => i#57030, i#83250, i#84349, i#88473, i#88531
+sc-calc-datapilot-drilldown.diff
+offapi-calc-datapilot-drilldown.diff
+
+
+[ SharedWorksheets ]
+SectionOwner => jholesov
+# Implementation of shared worksheets
+# Work in progress, don't use, hic sunt leones, etc.
+
+sal-osl-lock-file.diff
+modal-changes-dialog.diff
+shared-worksheets.diff
+
+[ NovellOnlyWin32 ]
+novell-win32-msi-patchability.diff, tml
+
+[ MacOSXOnly ]
+SectionOwner => pluby
+
+# fix lpsolve build for OSX
+macosx-lpsolve-makefile.diff
+# fixes build with gcc-3.3; required for MacOSX build
+# it is usable only until anyone uses the disabled code => MacOSXOnly
+# we will move to gcc-4.x, so it does not make sense to push it upstream
+buildfix-boost-gcc33.diff
+
+[ PardusOnly ]
+pardus-default-ExternalMailer.diff
+pardus-clipart.diff
+no-mozilla-plug-in-option.diff
+dont-check-fqdn.diff
+
+[ UnUsedButNotYetRemovedFromSVN ]
+# diffs kept for reference as there might soon be a need to resurrect
+# part of the code
+win32-quickstarter-exit.diff, i#73550, tml
+
+[ Store ]
+SectionOwner => rodo
+SectionIssue => i#75399
+store-core.diff
+#FIXME src680: in store-install.diff, instsetoo_native part was commented out
+store-install.diff
+store-registry.diff
+# don't burn 3% of startup doing CRC's we don't need
+speed-store.diff, i#78495, michael
+# don't do a load of locking we don't need to 1% of startup
+speed-store-lck.diff, i#78526, michael
+
+
+[ NovellOnlyWin32 ]
+#Fix for n#269146
+novell-win32-avoid-premature-shutdown.diff
+
+
+[ WMF ]
+wmf-pattern-brush.diff, n#232232, rodo
+
+
+[ Layout ]
+SectionOwner => janniew
+cws-layout-svtools.diff
+
+
+[ LayoutDialogs]
+SectionOwner => janniew
+cws-layout-config_office.diff
+cws-layout-offapi.diff
+cws-layout-scp2.diff
+cws-layout-solenv.diff
+cws-layout-svx.diff
+cws-layout-sw.diff
+cws-layout-toolkit.diff
+cws-layout-transex3.diff
+
+cws-layoutdialogs-offapi.diff
+cws-layoutdialogs-scp2.diff
+cws-layoutdialogs-svx.diff
+cws-layoutdialogs-sw.diff
+cws-layoutdialogs-toolkit.diff
+cws-layoutdialogs-transex3.diff
+
+[ AutoCorrectCapsLock ]
+SectionOwner => kohei
+
+autocorrect-accidental-caps-lock-offapi.diff
+autocorrect-accidental-caps-lock-officecfg.diff
+autocorrect-accidental-caps-lock-sc.diff
+autocorrect-accidental-caps-lock-sw.diff
+autocorrect-accidental-caps-lock-svx.diff
+autocorrect-accidental-caps-lock-vcl.diff
+
+
+[ UnitTesting ]
+SectionOwner => jholesov
+# FIXME: file when ready
+
+# teach build.pl what to do with prj/tests.lst's
+unittesting-build-pl.diff
+
+# the tests
+unittesting-basebmp.diff
+unittesting-basegfx.diff
+unittesting-basic.diff
+unittesting-bean.diff
+unittesting-bridges.diff
+unittesting-canvas.diff
+unittesting-cli_ure.diff
+unittesting-codemaker.diff
+unittesting-configmgr.diff
+unittesting-connectivity.diff
+unittesting-cppu.diff
+unittesting-cppuhelper.diff
+unittesting-dbaccess.diff
+unittesting-desktop.diff
+unittesting-dtrans.diff
+unittesting-embeddedobj.diff
+unittesting-extensions.diff
+unittesting-filter.diff
+unittesting-forms.diff
+unittesting-fpicker.diff
+unittesting-framework.diff
+unittesting-chart2.diff
+unittesting-idlc.diff
+unittesting-io.diff
+unittesting-javaunohelper.diff
+unittesting-jurt.diff
+unittesting-jvmaccess.diff
+unittesting-linguistic.diff
+unittesting-offapi.diff
+unittesting-o3tl.diff
+unittesting-package.diff
+unittesting-qadevOOo.diff
+unittesting-registry.diff
+unittesting-ridljar.diff
+unittesting-sal.diff
+unittesting-salhelper.diff
+unittesting-sandbox.diff
+unittesting-sax.diff
+unittesting-sc.diff
+unittesting-scripting.diff
+unittesting-sd.diff
+unittesting-sfx2.diff
+unittesting-shell.diff
+unittesting-slideshow.diff
+unittesting-sot.diff
+unittesting-starmath.diff
+unittesting-stoc.diff
+unittesting-store.diff
+unittesting-svtools.diff
+unittesting-svx.diff
+unittesting-sw.diff
+unittesting-testshl2.diff
+unittesting-testtools.diff
+unittesting-toolkit.diff
+unittesting-tools.diff
+unittesting-ucb.diff
+unittesting-ucbhelper.diff
+unittesting-udkapi.diff
+unittesting-vcl.diff
+unittesting-writerfilter.diff
+unittesting-xmerge.diff
+unittesting-xmlhelp.diff
+unittesting-xmloff.diff
+unittesting-xmlscript.diff
+unittesting-xmlsecurity.diff
+
+[ UnitBootstrap ]
+SectionOwner => michael
+SectionIssue => i#86525
+
+# initial cut at a unit testing framework
+unit-deliver.diff
+unit-comphelper.diff
+unit-sc.diff
+
+[ ReducedDefaults ]
+SectionOwner => jholesov
+
+# disable automatic spellchecking by default
+reduced-disable-auto-spellcheck.diff
+
+[ NovellOnlyWin32 ]
+SectionOwner => tml
+
+novell-win32-odma.diff, i#6885, i#32741
+
+
+[ VOSremoval ]
+
+# remove vos/process.hxx
+# FIXME: in vcl, ExtCommandLine was removed, and the osl_ calls were used.
+# Should we use the new salhelper::ExtCommandLine there, or should we remove
+# even salhelper::ExtCommandLine, and introduce the functionality where
+# needed?  (It's on one place only)
+vosremoval-process.diff
+
+# remove vos/diagnose.hxx
+vosremoval-diagnose.diff
+
+# remove vos/ref*.hxx
+vosremoval-reference.diff
+
+# remove vos/thread.hxx
+vosremoval-thread.diff
+
+# remove vos/mutex.hxx
+vosremoval-mutex.diff
+
+# remove vos/conditn.hxx
+vosremoval-conditn.diff
+
+# remove vos/macros.hxx
+vosremoval-macros.diff
+
+# remove vos/xception.hxx
+vosremoval-xception.diff
+
+# remove vos/signal.hxx
+vosremoval-signal.diff
+
+# remove vos/module.hxx
+vosremoval-module.diff
+
+# remove vos/security.hxx
+vosremoval-security.diff
+
+# remove vos/socket.hxx
+vosremoval-socket.diff
+
+# remove includes of non-existing/unused headers (vos/process.hxx,
+# vos/dynload.hxx, vos/object.hxx, vos/types.hxx, vos/runnable.hxx,
+# vos/thread.hxx)
+vosremoval-unused-stuff.diff
+
+# remove vos/pipe.hxx
+vosremoval-pipe.diff
+
+# remove vos/timer.hxx, introduce salhelper/timer.hxx
+vosremoval-timer.diff
+
+# removel VOSLIB from makefile.mk's
+vosremoval-cleanup.diff
+
+
+[ Gcc43 ]
+# Make it compile with gcc 4.3
+cws-gcc430two.diff, i#83276
+
+[ OxygenOfficePalettes ]
+palette-enhanced-arrow.diff
+palette-enhanced-color.diff
+palette-enhanced-dash.diff
+palette-enhanced-gradient.diff
+palette-enhanced-hatch.diff
+
+[ DebianBaseOnly ]
+debian-system-jfreereport.diff
+configures-explicit-arch.diff
+
+[ Fixes ]
+svx-sdrobjeditview-update-edit-area.diff, n#305205, n#347355, rodo
+cairocanvas-image-borders.diff, n#340142, rodo
+goodies-eps-filter-unix.diff, n#200053, rodo
+
+
+[ EMFPlus ]
+emf+-canvas.diff
+emf+-canvas-line-width.diff
+emf+-canvas-vcl-clear.diff
+emf+-canvas-smooth-poly.diff
+emf+-canvas-vcl-non-closed-polygons.diff
+emf+-cppcanvas.diff
+emf+-cppcanvas-renderer.diff
+emf+-cppcanvas-emfplus.diff
+emf+-cppcanvas-polyaction.diff
+emf+-offapi.diff
+emf+-offapi-renderer.diff
+emf+-vcl-bitmap.diff
+emf+-vcl-renderer.diff
+emf+-svtools.diff
+emf+-scp2-renderer.diff
+emf+-dxcanvas.diff
+emf+-crash-fix.diff, n#361534, rodo
+vcl-grey-alpha-unix-sal-bitmap.diff, rodo
+cairocanvas-alpha-pixmap-rewrite.diff, rodo
+emf+-use-canvas-only-for-emf+.diff, rodo
+emf+-multipart-objects.diff, n#385338, rodo
+emf+-embedded-mf-image.diff, n#361534, rodo
+
+[ TransparentPrinting ]
+# adds fixes for printing transparent content
+vcl-transparent-printing.diff, thorsten
+
+[ PptExport ]
+# adds export for linked graphics to ppt - might break ppt export for
+# some obscure MSO versions
+svx-export-image-links.diff, n#283265, i#88713, thorsten
+
+[ IntegrateExtensions ]
+scp2_build_extensions.diff
+scp2_makefile_extensions.diff
+scp2_extensions.diff
+extensions_configure.diff
+extensions_packinfo.diff
+extensions_deliver.diff
+ 
+[ OxygenOfficeDefaultSettings ]
+# Always enable extended tips
+i27928-extended-tips-on.diff
+# We like rules in impress
+i54709-default-impress-ruler.diff
+# Full branding for Windows installer
+ooop-win32-installer-branding.diff
+#Update URL added to the OxygenOffice
+ooop-update-URL.diff
+#Adding hidden buttons to the toolbar
+#for epmty document
+toolbars_framework.diff
+#for Calc
+toolbars_sc.diff
+#for Draw and Impress
+toolbars_sd.diff
+#for Writer
+toolbars_sw.diff
+#Always use default extensioniconset
+always_default_iconset.diff
+
+[ CalcHugeTables ]
+#Huge Calc table support - FOR TESTING ONLY! DO NOT ENABLE IN PRODUCTION BUILD!
+sc-huge-tables-enable.diff
+sc-huge-tables-header.diff
+
+[ OxygenOfficeExtras ]
+# Adding new items to extras module
+accessories_build.diff
+accessories_target.diff
+# Adding extended support for additional gallery localizations
+gallery_galtheme.diff
+gallery_inc_gallery.diff
+gallery_inc_galtheme.diff
+# Include new elements into scp2 module
+scp2_accessories.diff
+scp2_build_accessories.diff
+scp2_directory_accessories.diff
+scp2_makefile_accessories.diff
+# Splitting new contents into new packages
+premium-splitted-language-packages.diff
+premium-splitted-language-pack-solenv.diff
+premium-splitted-packages.diff
+# Add configure options
+extras_configure.diff
+# Add environment variables base on new configure switches
+extras_solenv.diff
+extras_wizard.diff
+extras_fonts.diff
+# Add our macros stuffs to wizard module
+premium_macro_build.diff
+premium_macro_dialog.diff
+premium_macro_script.diff
+premium_macro_target.diff
+# Add menu elements for Users guide
+helpdocument-genericcommand.diff
+# Uniformize Help menu of us
+helpdocument-menubar.diff
+# Adding OOoWikiPedia commands and DataMiner toolbars
+ooowikipedia_genericcommands.diff
+ooowikipedia_writer.diff
+ooowikipedia_toolbars.diff
+#Using prebuilt Writing Aids for all platforms in OxygenOffice Professional
+win32-prebuilt-writingaids-zip.diff
+
+[ Split ]
+SectionOwner => pmladek
+
+# FIXME: apply at the end because there are some conflicts
+
+# split binfilter from core
+split-binfilter-filter.diff, i#79800
+split-binfilter-setup_native.diff, i#79800
+split-binfilter-scp2.diff, i#79800
+
+
+[ Win32Only ]
+mozilla-source-1.7.5.patch.diff, i#84961, tml
+
+[ TemporaryHacks ]
+
+# First work on field enhancements...
+offapi-field-patch.diff, flr, n#248354
+svtools-field-patch.diff, flr, n#248354
+sw-field-patch.diff, flr, n#248354
+xmloff-field-patch.diff, flr, n#248354
+sw-field-patch-fix-competing-protection.diff, flr, n#400884
+
+[ NovellOnly ]
+#only enable enhanced field work in Novell OOo by default
+officecfg-field-patch.diff, flr, n#248354 
+
+[ Fixes > ooh680-m14 ]
+# fixes dynamic screen config bugs (xinerama & multiscreen)
+vcl-dynamic-screens-fix.diff, n#359955, rodo+thorsten
+
+[ Fixes <= ooh680-m14 ]
+vcl-dynamic-screens-fix-m14.diff, n#359955, rodo+thorsten
+
+[ Fixes ]
+sc-xclimpchangetrack-discard-bogus-formula-size.diff, n#355304, tml
+
+# fixes calculating subset of bitmap correctly
+vcl-limited-bmp-subset-fix.diff, i#88818, thorsten
+
+# Fix pasting with middle button in Calc
+sc-middle-button-should-paste-text.diff, n#282767, i#86734, jholesov
+
+# Make custom show override hidden slides
+sd-custom-show-fix.diff, n#355638, i#90145, thorsten
+
+
+[ Glib2 ]
+external-package-glib2.diff
+scp2-package-glib2.diff
+setup_native-package-glib2.diff
+
+[ Fixes ]
+fix-ppt-linespacing-import-export.diff, n#355302, rodo
+sw-section-import-fix.diff, n#364533, freuter
+sw-allow-negative-spacing.diff, n#364534, freuter
+
+sd-slideshow-slideshowview-transformation-fix.diff, rodo
+sd-inplace-deselection-fix.diff, i#89283, n#384506, thorsten
+cairocanvas-fix-image-cache.diff, rodo
+svx-hatched-textmove.diff, n#384563, thorsten
+
+# hyperlink issue with numeric slide names in Impress
+sd-update-relative-links.diff, n#355674, rodo
+
+# don't do dns lookup on startup
+lockfile-dont-do-dns-lookup.diff, n#389257, jholesov
+
+
+[ DIS26300 ]
+# better conformance to DIS26300 (ODF)
+# it is in separate section because needs more testing
+xmloff_dis26300_conformance.diff, n#396280, flr
+
+
+[ LinkWarningDlg ]
+linkwarn-dlg-in-apps.diff, n#348149, thorsten
+linkwarn-sfx2-disable-cb-persistency.diff, n#348149, thorsten
+linkwarn-svtools-miscopts-bits.diff, n#348149, thorsten
+linkwarn-officecfg-disable-msgbox.diff, n#348149, thorsten
+linkwarn-svx-warning-dlg.diff, n#348149, thorsten
+linkwarn-sd-no-dnd-links.diff, n#348149, thorsten
+
+[ InternalMesaHeaders ]
+internal-mesa-headers-config_office.diff, fridrich
+internal-mesa-headers-slideshow.diff, fridrich
+internal-mesa-headers-mesa.diff, fridrich
+
+[ InternalCairo ]
+cairo-cairo-1-4-10-diff.diff
+cairo-makefile-mk.diff
+cairo-prj-build-lst.diff
+cairo-prj-d-lst.diff
+cairo-config_office-configure-in.diff
+cairo-canvas-cairo.diff
+
+
+[ UnstableLibwpd ]
+libwpd-testing.diff
+libwpg-testing.diff
+libwps-testing.diff
+writerperfect-testing.diff
+
+[ NovellOnlyWin32 ]
+SectionOwner => tml
+
+i87401-packagelist.diff
+
+[ Fixes ]
+cppcanvas-fix-roundcorners.diff, i#361534, rodo
+vcl-fix-randr-heapcorruption.diff, i#89718, n#398244, thorsten
+
+[ Security ]
+cws-sjfixes06.diff
+cws-sjfixes09.diff
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-stoc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-stoc.diff
@@ -0,0 +1,45 @@
+--- stoc/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ stoc/prj/tests.lst	2007-09-07 11:09:03.000000000 +0200
+@@ -0,0 +1,10 @@
++#does not link: tc   stoc\test                                          nmake - all tc_test NULL
++#depends on tc_test_tdmanager: tc   stoc\test\excomp                                   nmake - all tc_test_excomp tc_test_tdmanager NULL
++tc   stoc\test\javavm                                   nmake - all tc_test_javavm NULL
++tc   stoc\test\javavm\jvm_interaction                   nmake - all tc_test_javavm_jvm_interaction NULL
++tc   stoc\test\javavm\testapplet                        nmake - all tc_test_javavm_testapplet NULL
++tc   stoc\test\javavm\testcomponent                     nmake - all tc_test_javavm_testcomponent NULL
++#does not link: tc   stoc\test\registry_tdprovider                      nmake - all tc_test_registry_tdprovider NULL
++tc   stoc\test\security                                 nmake - all tc_test_security NULL
++#does not link: tc   stoc\test\tdmanager                                nmake - all tc_test_tdmanager NULL
++#does not link: tc   stoc\test\uriproc                                  nmake - all tc_test_uriproc NULL
+--- stoc/test/excomp/excomp1.cxx	2006-09-16 19:42:40.000000000 +0200
++++ stoc/test/excomp/excomp1.cxx	2007-09-07 11:01:39.000000000 +0200
+@@ -192,10 +192,10 @@ sal_Bool SAL_CALL component_writeInfo(
+ 				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+ 					OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME1 "/UNO/SERVICES") ) ) );
+ 			
+-			Sequence< OUString > & rSNL =
++			Sequence< OUString > aSNL =
+ 				::excomp_impl::ExampleComponent1Impl::getSupportedServiceNames_Static();
+-			const OUString * pArray = rSNL.getConstArray();
+-			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
++			const OUString * pArray = aSNL.getConstArray();
++			for ( sal_Int32 nPos = aSNL.getLength(); nPos--; )
+ 				xNewKey->createKey( pArray[nPos] );
+ 
+ 			return sal_True;
+--- stoc/test/excomp/excomp2.cxx	2006-09-16 19:42:52.000000000 +0200
++++ stoc/test/excomp/excomp2.cxx	2007-09-07 11:03:15.000000000 +0200
+@@ -267,10 +267,10 @@ sal_Bool SAL_CALL component_writeInfo(
+ 				reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
+ 					OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME2 "/UNO/SERVICES") ) ) );
+ 			
+-			Sequence< OUString > & rSNL =
++			Sequence< OUString > aSNL =
+ 				::excomp2_impl::ExampleComponent2Impl::getSupportedServiceNames_Static();
+-			const OUString * pArray = rSNL.getConstArray();
+-			for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
++			const OUString * pArray = aSNL.getConstArray();
++			for ( sal_Int32 nPos = aSNL.getLength(); nPos--; )
+ 				xNewKey->createKey( pArray[nPos] );
+ 
+ 			return sal_True;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/jvmfwk-detect-removed-java.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/jvmfwk-detect-removed-java.diff
@@ -0,0 +1,89 @@
+--- jvmfwk/inc/jvmfwk/framework.h.old	2007-06-13 09:56:54.000000000 +0200
++++ jvmfwk/inc/jvmfwk/framework.h	2007-10-30 21:17:59.000000000 +0100
+@@ -236,7 +236,8 @@ typedef enum _javaFrameworkError
+     JFW_E_NO_JAVA_FOUND,
+     JFW_E_VM_CREATION_FAILED,
+     JFW_E_CONFIGURATION,
+-    JFW_E_DIRECT_MODE
++    JFW_E_DIRECT_MODE,
++    JFW_E_TRY_AUTOSELECT
+ } javaFrameworkError;
+ 
+ /** an instance of this struct represents an installation of a Java
+@@ -541,9 +542,11 @@ javaFrameworkError SAL_CALL jfw_getJavaI
+     then the user enabled it. If then the selected  JRE has the requirement
+     JFW_REQUIRE_NEEDRESTART then this error is returned. </br>
+     JFW_E_VM_CREATION_FAILED the creation of the JVM failed. The creation is performed
+-    by a plug-in library and not by this API.
++    by a plug-in library and not by this API.</br>
+     JFW_E_FAILED_VERSION the &quot;Default Mode&quot; is active. The JRE determined by
+-    <code>JAVA_HOME</code>does not meet the version requirements.
++    <code>JAVA_HOME</code>does not meet the version requirements.</br>
++    JFW_E_TRY_AUTOSELECT the current setting is wrong but autoselection
++    is enabled. Let's try it if possible.
+  */
+ javaFrameworkError SAL_CALL jfw_startVM(JavaVMOption *arOptions,
+                                  sal_Int32 nSize, JavaVM **ppVM,
+@@ -573,7 +576,9 @@ javaFrameworkError SAL_CALL jfw_startVM(
+     JFW_E_ERROR An error occurred.<br/>
+     JFW_E_CONFIGURATION mode was not properly set or their prerequisites
+     were not met.<br/>
+-    JFW_E_DIRECT_MODE the function cannot be used in this mode.
++    JFW_E_DIRECT_MODE the function cannot be used in this mode.<br/>
++    JFW_E_TRY_AUTOSELECT the current setting is wrong but autoselection
++    is enabled. Let's try it if possible.
+  */
+ javaFrameworkError SAL_CALL jfw_setSelectedJRE(JavaInfo const *pInfo);
+ 
+@@ -603,7 +608,9 @@ javaFrameworkError SAL_CALL jfw_setSelec
+     JFW_E_CONFIGURATION mode was not properly set or their prerequisites
+     were not met.<br/>
+     JFW_E_INVALID_SETTINGS the javavendors.xml has been changed and no
+-    JRE has been selected afterwards. <br/>
++    JRE has been selected afterwards.<br/>
++    JFW_E_TRY_AUTOSELECT the current setting is wrong but autoselection
++    is enabled. Let's try it if possible.
+  */
+ javaFrameworkError SAL_CALL jfw_getSelectedJRE(JavaInfo **ppInfo);
+ 
+--- jvmfwk/source/framework.cxx.old	2007-06-13 09:57:42.000000000 +0200
++++ jvmfwk/source/framework.cxx	2007-10-30 21:01:57.000000000 +0100
+@@ -711,11 +711,26 @@ javaFrameworkError SAL_CALL jfw_getSelec
+ 			*ppInfo = NULL;
+ 			return JFW_E_NONE;
+ 		}
++
++		// If the java location does not longer exist, ignore this aInfo
++		rtl::OUString sLocation = aInfo.getLocation();
++		if (jfw::checkFileURL(sLocation) != jfw::FILE_OK)
++	        {
++		    bool bAutoSelect = settings.getJavaInfoAttrAutoSelect();
++		    jfw_freeJavaInfo(aInfo.detach());
++		    *ppInfo = NULL;
++
++		    if (bAutoSelect)
++			    return JFW_E_TRY_AUTOSELECT;
++		    else
++			    return JFW_E_CONFIGURATION;
++		}
++
+ 		//If the javavendors.xml has changed, then the current selected
+ 		//Java is not valid anymore
+ 		// /java/javaInfo/@vendorUpdate != javaSelection/updated (javavendors.xml)
+ 		rtl::OString sUpdated = jfw::getElementUpdated();
+-	    
++
+ 		if (sUpdated.equals(settings.getJavaInfoAttrVendorUpdate()) == sal_False)
+ 			return JFW_E_INVALID_SETTINGS;
+ 		*ppInfo = aInfo.detach();
+--- jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx.old	2006-09-16 19:45:14.000000000 +0200
++++ jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx	2007-10-30 21:04:14.000000000 +0100
+@@ -104,7 +104,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
+         fprintf(stderr,"javaldx failed. User must select a JRE from options dialog!");
+         return -1;
+     }
+-    else if (errcode != JFW_E_NONE)
++    else if (errcode != JFW_E_NONE && errcode != JFW_E_TRY_AUTOSELECT)
+     {
+         fprintf(stderr,"javaldx failed! \n");
+         return -1;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/helpdocument-genericcommand.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/helpdocument-genericcommand.diff
@@ -0,0 +1,20 @@
+--- officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu.orig	2006-05-17 09:46:02.000000000 +0200
++++ officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu	2006-07-06 07:45:44.890625000 +0200
+@@ -1630,6 +1630,17 @@
+ 					<value>1</value>
+ 				</prop>
+ 			</node>
++
++			<node oor:name="macro:///Premium.OOoHelpDocumentation.OpenHelpDocument" oor:op="replace">
++				<prop oor:name="Label" oor:type="xs:string">
++                                        <value xml:lang="de">Handbuch</value>
++                                        <value xml:lang="en-US">User's manual</value>
++				</prop>
++				<prop oor:name="Properties" oor:type="xs:int">
++					<value>0</value>
++				</prop>
++			</node>
++
+ 			<node oor:name=".uno:FontHeight" oor:op="replace">
+ 				<prop oor:name="Label" oor:type="xs:string">
+ 					<value xml:lang="de">Schriftgröße</value>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cppcanvas-fix-roundcorners.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cppcanvas-fix-roundcorners.diff
@@ -0,0 +1,14 @@
+diff -rup cppcanvas-orig-mp/source/mtfrenderer/implrenderer.cxx cppcanvas/source/mtfrenderer/implrenderer.cxx
+--- cppcanvas-orig-mp/source/mtfrenderer/implrenderer.cxx	2008-06-03 12:26:31.000000000 +0200
++++ cppcanvas/source/mtfrenderer/implrenderer.cxx	2008-06-03 12:26:44.000000000 +0200
+@@ -2039,8 +2040,8 @@ namespace cppcanvas
+                                     ::vcl::unotools::b2DPointFromPoint( rRect.TopLeft() ),
+                                     ::vcl::unotools::b2DPointFromPoint( rRect.BottomRight() ) +
+                                     ::basegfx::B2DPoint(1,1) ),
+-                                static_cast<MetaRoundRectAction*>(pCurrAct)->GetHorzRound(),
+-                                static_cast<MetaRoundRectAction*>(pCurrAct)->GetVertRound() ));
++                                ( (double) static_cast<MetaRoundRectAction*>(pCurrAct)->GetHorzRound() ) / rRect.GetWidth(),
++                                ( (double) static_cast<MetaRoundRectAction*>(pCurrAct)->GetVertRound() ) / rRect.GetHeight() ) );
+                         aPoly.transform( getState( rStates ).mapModeTransform );
+ 
+                         createFillAndStroke( aPoly,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-udkapi.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-udkapi.diff
@@ -0,0 +1,6 @@
+--- udkapi/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ udkapi/prj/tests.lst	2007-09-07 08:12:54.000000000 +0200
+@@ -0,0 +1,3 @@
++ua   udkapi\com\sun\star\test\bridge                    nmake - all ua_com_sun_star_test_bridge NULL
++ua   udkapi\com\sun\star\test                           nmake - all ua_com_sun_star_test NULL
++ua   udkapi\com\sun\star\test\performance               nmake - all ua_com_sun_star_test_performance NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-cjksp1-officecfg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-cjksp1-officecfg.diff
@@ -0,0 +1,17 @@
+diff -uNpr officecfg.bk/registry/schema/org/openoffice/Office/Writer.xcs officecfg/registry/schema/org/openoffice/Office/Writer.xcs
+--- officecfg.bk/registry/schema/org/openoffice/Office/Writer.xcs	2008-02-19 15:21:03.000000000 +0800
++++ officecfg/registry/schema/org/openoffice/Office/Writer.xcs	2008-02-19 15:21:31.000000000 +0800
+@@ -1589,6 +1589,13 @@
+ 					</info>
+ 					<value>1250</value>
+ 				</prop>
++				<prop oor:name="IsSquaredPageMode" oor:type="xs:boolean">
++					<info>
++						<desc>Specified which kind of paper mode is used in the whole document </desc>
++						<label>Use squared paper mode</label>
++					</info>
++					<value>true</value>
++				</prop>	
+ 			</group>
+ 			<group oor:name="Zoom">
+ 				<info>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-o3tl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-o3tl.diff
@@ -0,0 +1,11 @@
+--- o3tl/prj/build.lst	2007-01-03 12:31:10.000000000 +0100
++++ o3tl/prj/build.lst	2007-09-07 21:33:23.000000000 +0200
+@@ -2,4 +2,3 @@ ot	o3tl	:	sal testshl2 BOOST:boost NULL
+ ot	o3tl									usr1	-	all	ot_mkout NULL
+ ot	o3tl\inc								get		-	all	ot_inc NULL
+ ot	o3tl\prj								get		-	all	ot_prj NULL
+-ot	o3tl\qa									nmake	-	all	ot_qa NULL
+--- o3tl/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ o3tl/prj/tests.lst	2007-09-07 14:32:15.000000000 +0200
+@@ -0,0 +1 @@
++ot   o3tl\qa                                            nmake - all ot_qa NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-symbolic-functions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-symbolic-functions.diff
@@ -0,0 +1,93 @@
+--- config_office/configure.in.old	2008-01-28 18:31:50.000000000 +0100
++++ config_office/configure.in	2008-01-28 18:45:05.000000000 +0100
+@@ -1355,6 +1355,25 @@ if test "$GCC" = "yes"; then
+ fi
+ AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
+ 
++HAVE_LD_BSYMBOLIC_FUNCTIONS=
++if test "$GCC" = "yes"; then
++   AC_MSG_CHECKING( for -Bsymbolic-functions linker support )
++   bsymbolic_functions_ldflags_save=$LDFLAGS
++   LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo"
++   AC_LINK_IFELSE([AC_LANG_PROGRAM([
++   #include <stdio.h>
++   ],[
++    printf ("hello world\n");
++   ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
++   if test "z$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "zTRUE"; then
++     AC_MSG_RESULT( found )
++   else
++     AC_MSG_RESULT( not found )
++   fi
++   LDFLAGS=$bsymbolic_functions_ldflags_save
++fi
++AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
++
+ dnl ===================================================================
+ dnl Set the ENABLE_PCH variable. (Activate --enable-pch)
+ dnl ===================================================================
+--- config_office/set_soenv.in.old	2008-01-28 17:13:14.000000000 +0100
++++ config_office/set_soenv.in	2008-01-28 18:47:05.000000000 +0100
+@@ -1924,6 +1924,8 @@ ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
+ ToFile( "HAVE_GCC_VISIBILITY_BROKEN",
+ 		"@HAVE_GCC_VISIBILITY_BROKEN@", "e" );
+ ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
++ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS",
++		"@HAVE_LD_BSYMBOLIC_FUNCTIONS@","e" );
+ ToFile( "CXX",               $CXX,               "e" );
+ ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
+ ToFile( "MINGWSTRIP",        "@MINGWSTRIP@",     "e" );
+--- solenv/inc/unxlngi6.mk.old	2008-01-28 18:31:50.000000000 +0100
++++ solenv/inc/unxlngi6.mk	2008-01-28 18:49:03.000000000 +0100
+@@ -157,6 +157,9 @@ LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$
+ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
+ # flag -Wl,-z,noexecstack sets the NX bit on the stack
+ LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
++LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+--- solenv/inc/unxlngx6.mk.old	2008-01-28 18:31:50.000000000 +0100
++++ solenv/inc/unxlngx6.mk	2008-01-28 18:50:33.000000000 +0100
+@@ -167,6 +167,9 @@ LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$
+     #TODO: drop $ORIGIN once no URE executable is also shipped in OOo
+ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
++LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+--- icu/makefile.mk.old	2008-01-28 18:31:50.000000000 +0100
++++ icu/makefile.mk	2008-01-28 18:51:49.000000000 +0100
+@@ -89,9 +89,13 @@ DISABLE_64BIT=--enable-64bit-libs=no
+ LDFLAGSADD += -Wl,--hash-style=both
+ .ENDIF
+ 
++.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
++LDFLAGSADD += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
++.ENDIF
++
+ CONFIGURE_DIR=source
+ 
+-CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
++CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
+ 
+ #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
+ CONFIGURE_FLAGS=
+--- stlport/makefile.mk.old	2008-01-28 18:31:50.000000000 +0100
++++ stlport/makefile.mk	2008-01-28 18:55:27.000000000 +0100
+@@ -158,6 +158,10 @@ BUILD_FLAGS=-f vc7.mak EXFLAGS="/EHa /Zc
+ CXX+= -Wl,--hash-style=both
+ .ENDIF
+ 
++.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
++CXX+= -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
++.ENDIF
++
+ .IF "$(COM)"=="C52"
+ BUILD_ACTION=make
+ .IF "$(CCNUMVER)">="00050008"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-neon24.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-neon24.diff
@@ -0,0 +1,17 @@
+--- ucb/source/ucp/webdav/NeonSession.cxx	2008-02-18 16:16:56.000000000 +0100
++++ ucb/source/ucp/webdav/NeonSession.cxx	2008-02-18 16:25:33.000000000 +0100
+@@ -1551,6 +1551,14 @@ void NeonSession::Lockit( ucb::Lock & rL
+     ne_uri aUri;
+     ne_uri_parse( rtl::OUStringToOString( m_aEnv.m_aRequestURI, RTL_TEXTENCODING_UTF8 ).getStr(),
+             &aUri );
++    
++#if NEON_VERSION < 0x0260
++#define FILLIN( field, val ) aUri.field = aUri.field? aUri.field: strdup( rtl::OUStringToOString( val, RTL_TEXTENCODING_UTF8 ).getStr() )
++    FILLIN( scheme, m_aScheme );
++    FILLIN( host, m_aHostName );
++    aUri.port = aUri.port? aUri.port: m_nPort;
++#undef FILLIN
++#endif
+ 
+     // Create the neon lock
+     NeonLock * theLock = ne_lockstore_findbyuri( s_aNeonLockStore, &aUri );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/toolbars_sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/toolbars_sc.diff
@@ -0,0 +1,113 @@
+diff -Naur sc.old/uiconfig/scalc/toolbar/drawbar.xml sc/uiconfig/scalc/toolbar/drawbar.xml
+--- sc.old/uiconfig/scalc/toolbar/drawbar.xml	2005-03-21 14:35:37.000000000 +0100
++++ sc/uiconfig/scalc/toolbar/drawbar.xml	2008-04-10 07:04:12.000000000 +0200
+@@ -6,15 +6,15 @@
+  <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+  <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+  <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+- <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
++ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="10395"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="10397"/>
+  <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+- <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+- <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+- <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
++ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="10114"/>
++ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="10112"/>
++ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="10115"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+- <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
++ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:helpid="10465"/>
+  <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+  <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+  <toolbar:toolbarseparator/>
+diff -Naur sc.old/uiconfig/scalc/toolbar/drawobjectbar.xml sc/uiconfig/scalc/toolbar/drawobjectbar.xml
+--- sc.old/uiconfig/scalc/toolbar/drawobjectbar.xml	2004-11-26 20:55:17.000000000 +0100
++++ sc/uiconfig/scalc/toolbar/drawobjectbar.xml	2008-04-10 07:11:57.000000000 +0200
+@@ -22,9 +22,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+  <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sc.old/uiconfig/scalc/toolbar/formatobjectbar.xml sc/uiconfig/scalc/toolbar/formatobjectbar.xml
+--- sc.old/uiconfig/scalc/toolbar/formatobjectbar.xml	2008-04-07 13:34:47.000000000 +0200
++++ sc/uiconfig/scalc/toolbar/formatobjectbar.xml	2008-04-10 09:24:06.000000000 +0200
+@@ -2,7 +2,7 @@
+ <!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+ <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+  <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="helpid:5539"  />
+- <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007"  />
+  <toolbar:toolbarseparator/>
+@@ -25,13 +25,13 @@
+  <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907"  />
+  <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908"  />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:26375"  toolbar:style="radio auto" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:AlignVCenter" toolbar:helpid="helpid:26377"  toolbar:style="radio auto" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:26376"  toolbar:style="radio auto" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:26375"  toolbar:style="radio auto" />
++ <toolbar:toolbaritem xlink:href=".uno:AlignVCenter" toolbar:helpid="helpid:26377"  toolbar:style="radio auto" />
++ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:26376"  toolbar:style="radio auto" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatCurrency" toolbar:helpid="helpid:26045"  />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatPercent" toolbar:helpid="helpid:26046"  />
+- <toolbar:toolbaritem xlink:href=".uno:NumberFormatDate" toolbar:helpid="helpid:26053"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:NumberFormatDate" toolbar:helpid="helpid:26053" />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatScientific" toolbar:helpid="helpid:26055"  toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatIncDecimals" toolbar:helpid="helpid:26057"  />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatDecDecimals" toolbar:helpid="helpid:26058"  />
+@@ -42,8 +42,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187"  />
+  <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017"  toolbar:style="dropdown" />
+- <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
++ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:26267"  toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:26268"  toolbar:visible="false" />
+diff -Naur sc.old/uiconfig/scalc/toolbar/graphicobjectbar.xml sc/uiconfig/scalc/toolbar/graphicobjectbar.xml
+--- sc.old/uiconfig/scalc/toolbar/graphicobjectbar.xml	2005-03-21 14:37:51.000000000 +0100
++++ sc/uiconfig/scalc/toolbar/graphicobjectbar.xml	2008-04-10 07:12:41.000000000 +0200
+@@ -24,9 +24,9 @@
+  <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="helpid:10283"  />
+  <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="helpid:10282"  />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153"  toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
++ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
++ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130"  />
+ </toolbar:toolbar>
+diff -Naur sc.old/uiconfig/scalc/toolbar/insertbar.xml sc/uiconfig/scalc/toolbar/insertbar.xml
+--- sc.old/uiconfig/scalc/toolbar/insertbar.xml	2007-07-06 14:48:55.000000000 +0200
++++ sc/uiconfig/scalc/toolbar/insertbar.xml	2008-04-10 07:30:56.000000000 +0200
+@@ -8,7 +8,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241"  />
+  <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695"  />
+  <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="helpid:26063"  />
+- <toolbar:toolbaritem xlink:href=".uno:DrawChart" toolbar:helpid="helpid:26071" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:DrawChart" toolbar:helpid="helpid:26071" />
++ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
++ <toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673" />
+ </toolbar:toolbar>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_makefile_extensions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_makefile_extensions.diff
@@ -0,0 +1,20 @@
+--- scp2/util/makefile.mk.orig	2008-03-19 07:37:00.000000000 +0100
++++ scp2/util/makefile.mk	2008-03-19 10:24:18.000000000 +0100
+@@ -81,6 +81,8 @@
+              module_systemint.par          \
+              module_graphicfilter.par      \
+              file_graphicfilter.par        \
++             module_extensions.par         \
++             file_extensions.par           \
+              module_testtool.par           \
+              file_testtool.par             \
+              file_lingu.par                \
+@@ -222,6 +224,8 @@
+              module_systemint.par          \
+              module_graphicfilter.par      \
+              file_graphicfilter.par        \
++             module_extensions.par         \
++             file_extensions.par           \
+              module_testtool.par           \
+              file_testtool.par             \
+              file_lingu.par                \
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-debug-build.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-debug-build.diff
@@ -0,0 +1,33 @@
+--- sw/source/core/doc/dbgoutsw.cxx	2008-02-01 11:57:43.000000000 +0100
++++ sw/source/core/doc/dbgoutsw.cxx	2008-02-01 13:44:53.000000000 +0100
+@@ -295,7 +295,7 @@
+         if (!bFirst)
+             aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
+ 
+-        if ((sal_uInt32)pItem != 0xffffffff)
++        if ((sal_IntPtr)pItem != (sal_IntPtr)-1)
+             aStr += lcl_dbg_out(*pItem);
+         else
+             aStr += String("invalid", RTL_TEXTENCODING_ASCII_US);
+--- sw/source/core/text/frmform.cxx	2008-02-01 11:57:43.000000000 +0100
++++ sw/source/core/text/frmform.cxx	2008-02-01 13:57:30.000000000 +0100
+@@ -2208,7 +2208,7 @@
+     {
+         //DBG_LOOP; shadows declaration above.
+ 		//resolved into:
+-#if OSL_DEBUG_LEVEL > 1
++#ifndef PRODUCT
+ 		DbgLoop aDbgLoop2( (const void*) this );
+ #endif
+ 		nStart = aLine.FormatLine( nStart );
+--- sw/source/core/text/frmpaint.cxx	2008-02-01 11:57:43.000000000 +0100
++++ sw/source/core/text/frmpaint.cxx	2008-02-01 14:03:30.000000000 +0100
+@@ -789,7 +789,7 @@
+ 			{
+ 				//DBG_LOOP; shadows declaration above.
+ 				//resolved into:
+-#if  OSL_DEBUG_LEVEL > 1
++#ifndef PRODUCT
+ 				DbgLoop aDbgLoop2( (const void*) this );
+ #endif
+ 				aLine.DrawTextLine( rRect, aClip, IsUndersized() );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-cellformat-icon-toggle.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-cellformat-icon-toggle.diff
@@ -0,0 +1,192 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/sdi/formatsh.sdi sc/sdi/formatsh.sdi
+--- sc.clean/sdi/formatsh.sdi	2008-02-05 11:16:54.000000000 -0500
++++ sc/sdi/formatsh.sdi	2008-02-22 15:20:31.000000000 -0500
+@@ -124,11 +124,11 @@ interface FormatForSelection
+     SID_ATTR_NUMBERFORMAT_VALUE       [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState;]
+     SID_NUMBER_FORMAT       [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState;]
+ 	SID_NUMBER_TWODEC		[ ExecMethod = ExecuteNumFormat;]
+-	SID_NUMBER_SCIENTIFIC	[ ExecMethod = ExecuteNumFormat;]
+-	SID_NUMBER_DATE			[ ExecMethod = ExecuteNumFormat;]
+-	SID_NUMBER_CURRENCY		[ ExecMethod = ExecuteNumFormat;]
+-	SID_NUMBER_PERCENT		[ ExecMethod = ExecuteNumFormat;]
+-	SID_NUMBER_TIME			[ ExecMethod = ExecuteNumFormat;]
++    SID_NUMBER_SCIENTIFIC   [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState; ]
++    SID_NUMBER_DATE         [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState; ]
++    SID_NUMBER_CURRENCY     [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState; ]
++    SID_NUMBER_PERCENT      [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState; ]
++    SID_NUMBER_TIME         [ ExecMethod = ExecuteNumFormat; StateMethod = GetNumFormatState; ]
+ 	SID_NUMBER_STANDARD		[ ExecMethod = ExecuteNumFormat;]
+ 	SID_NUMBER_INCDEC		[ ExecMethod = ExecuteNumFormat;]
+ 	SID_NUMBER_DECDEC		[ ExecMethod = ExecuteNumFormat;]
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/formatsh.hxx sc/source/ui/inc/formatsh.hxx
+--- sc.clean/source/ui/inc/formatsh.hxx	2008-02-05 11:16:55.000000000 -0500
++++ sc/source/ui/inc/formatsh.hxx	2008-02-22 13:00:00.000000000 -0500
+@@ -91,6 +91,9 @@ public:
+ 
+     void        ExecFormatPaintbrush( SfxRequest& rReq );
+     void        StateFormatPaintbrush( SfxItemSet& rSet );
++
++private:
++    short       GetCurrentNumberFormatType() const;
+ };
+ 
+ #endif
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/formatsh.cxx sc/source/ui/view/formatsh.cxx
+--- sc.clean/source/ui/view/formatsh.cxx	2008-02-05 11:16:56.000000000 -0500
++++ sc/source/ui/view/formatsh.cxx	2008-02-22 15:22:45.000000000 -0500
+@@ -72,6 +72,7 @@
+ 
+ #include <sfx2/app.hxx>
+ #include <sfx2/viewfrm.hxx>
++#include <sfx2/bindings.hxx>
+ #include <sfx2/objface.hxx>
+ #include <sfx2/request.hxx>
+ #include <svtools/whiter.hxx>
+@@ -935,6 +936,7 @@ void ScFormatShell::ExecuteNumFormat( Sf
+ 	ScTabViewShell*	pTabViewShell  	= GetViewData()->GetViewShell();
+ 	const SfxItemSet*	pReqArgs	= rReq.GetArgs();
+ 	USHORT				nSlot		= rReq.GetSlot();
++    SfxBindings& rBindings          = pTabViewShell->GetViewFrame()->GetBindings();
+ 
+ 	pTabViewShell->HideListBox();					// Autofilter-DropDown-Listbox
+ 
+@@ -967,6 +969,8 @@ void ScFormatShell::ExecuteNumFormat( Sf
+ 		}
+ 	}
+ 
++    short nType = GetCurrentNumberFormatType();
++    SfxItemSet aSet( GetPool(), nSlot, nSlot );
+ 	switch ( nSlot )
+ 	{
+ 		case SID_NUMBER_TWODEC:
+@@ -974,23 +978,48 @@ void ScFormatShell::ExecuteNumFormat( Sf
+ 			rReq.Done();
+ 			break;
+ 		case SID_NUMBER_SCIENTIFIC:
+-			pTabViewShell->SetNumberFormat( NUMBERFORMAT_SCIENTIFIC );
++            if ((nType & NUMBERFORMAT_SCIENTIFIC))
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER );
++            else
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_SCIENTIFIC );
++            aSet.Put( SfxBoolItem(nSlot, !(nType & NUMBERFORMAT_SCIENTIFIC)) );
++            rBindings.Invalidate( nSlot );
+ 			rReq.Done();
+ 			break;
+ 		case SID_NUMBER_DATE:
+-			pTabViewShell->SetNumberFormat( NUMBERFORMAT_DATE );
++            if ((nType & NUMBERFORMAT_DATE))
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER );
++            else
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_DATE );
++            aSet.Put( SfxBoolItem(nSlot, !(nType & NUMBERFORMAT_DATE)) );
++            rBindings.Invalidate( nSlot );
+ 			rReq.Done();
+ 			break;
+ 		case SID_NUMBER_TIME:
+-			pTabViewShell->SetNumberFormat( NUMBERFORMAT_TIME );
++            if ((nType & NUMBERFORMAT_TIME))
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER );
++            else
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_TIME );
++            aSet.Put( SfxBoolItem(nSlot, !(nType & NUMBERFORMAT_TIME)) );
++            rBindings.Invalidate( nSlot );
+ 			rReq.Done();
+ 			break;
+ 		case SID_NUMBER_CURRENCY:
+-			pTabViewShell->SetNumberFormat( NUMBERFORMAT_CURRENCY );
++            if ((nType & NUMBERFORMAT_CURRENCY))
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER );
++            else
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_CURRENCY );
++            aSet.Put( SfxBoolItem(nSlot, !(nType & NUMBERFORMAT_CURRENCY)) );
++            rBindings.Invalidate( nSlot );
+ 			rReq.Done();
+ 			break;
+ 		case SID_NUMBER_PERCENT:
+-			pTabViewShell->SetNumberFormat( NUMBERFORMAT_PERCENT );
++            if ((nType & NUMBERFORMAT_PERCENT))
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER );
++            else
++                pTabViewShell->SetNumberFormat( NUMBERFORMAT_PERCENT );
++            aSet.Put( SfxBoolItem(nSlot, !(nType & NUMBERFORMAT_PERCENT)) );
++            rBindings.Invalidate( nSlot );
+ 			rReq.Done();
+ 			break;
+ 		case SID_NUMBER_STANDARD:
+@@ -2006,9 +2035,8 @@ void ScFormatShell::GetBckColState( SfxI
+ void ScFormatShell::GetNumFormatState( SfxItemSet& rSet )
+ {
+ 	ScTabViewShell*	pTabViewShell  	= GetViewData()->GetViewShell();
+-
+-    // ScViewData* pViewData   = GetViewData();
+-	ScDocument* pDoc		= pViewData->GetDocument();
++    ScDocument* pDoc                = pViewData->GetDocument();
++    short nType                     = GetCurrentNumberFormatType();
+ 
+ 	SfxWhichIter aIter(rSet);
+ 	USHORT nWhich = aIter.FirstWhich();
+@@ -2035,7 +2063,21 @@ void ScFormatShell::GetNumFormatState( S
+ 					rSet.Put( SfxStringItem( nWhich, aFormatCode ) );
+ 				}
+ 				break;
+-
++            case SID_NUMBER_SCIENTIFIC:
++                rSet.Put( SfxBoolItem(nWhich, (nType & NUMBERFORMAT_SCIENTIFIC)) );
++                break;
++            case SID_NUMBER_DATE:
++                rSet.Put( SfxBoolItem(nWhich, (nType & NUMBERFORMAT_DATE)) );
++                break;
++            case SID_NUMBER_CURRENCY:
++                rSet.Put( SfxBoolItem(nWhich, (nType & NUMBERFORMAT_CURRENCY)) );
++                break;
++            case SID_NUMBER_PERCENT: 
++                rSet.Put( SfxBoolItem(nWhich, (nType & NUMBERFORMAT_PERCENT)) );
++                break;
++            case SID_NUMBER_TIME:  
++                rSet.Put( SfxBoolItem(nWhich, (nType & NUMBERFORMAT_TIME)) );
++                break;
+ 		}
+ 		nWhich = aIter.NextWhich();
+ 	}
+@@ -2186,3 +2228,13 @@ void ScFormatShell::StateFormatPaintbrus
+         rSet.Put( SfxBoolItem( SID_FORMATPAINTBRUSH, pViewData->GetView()->HasPaintBrush() ) );
+ }
+ 
++short ScFormatShell::GetCurrentNumberFormatType() const
++{
++	ScDocument* pDoc = pViewData->GetDocument();
++    sal_uInt32 nCurrentNumberFormat;
++    pDoc->GetNumberFormat( pViewData->GetCurX(), pViewData->GetCurY(), 
++                           pViewData->GetTabNo(), nCurrentNumberFormat );
++    const SvNumberformat* pEntry = pDoc->GetFormatTable()->GetEntry( nCurrentNumberFormat );
++    return pEntry->GetType();
++}
++
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
+--- sc.clean/source/ui/view/tabview3.cxx	2008-02-05 11:16:56.000000000 -0500
++++ sc/source/ui/view/tabview3.cxx	2008-02-22 12:17:51.000000000 -0500
+@@ -355,6 +355,13 @@ void ScTabView::InvalidateAttribs()
+     rBindings.Invalidate( SID_ALIGN_ANY_VCENTER );
+     rBindings.Invalidate( SID_ALIGN_ANY_BOTTOM );
+ 
++    rBindings.Invalidate( SID_NUMBER_CURRENCY );
++    rBindings.Invalidate( SID_NUMBER_SCIENTIFIC );
++    rBindings.Invalidate( SID_NUMBER_DATE );
++    rBindings.Invalidate( SID_NUMBER_CURRENCY );
++    rBindings.Invalidate( SID_NUMBER_PERCENT );
++    rBindings.Invalidate( SID_NUMBER_TIME );
++
+ //	rBindings.Invalidate( SID_RANGE_VALUE );
+ //	rBindings.Invalidate( SID_RANGE_FORMULA );
+ }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/uiconfig/scalc/toolbar/formatobjectbar.xml sc/uiconfig/scalc/toolbar/formatobjectbar.xml
+--- sc.clean/uiconfig/scalc/toolbar/formatobjectbar.xml	2008-02-05 11:16:54.000000000 -0500
++++ sc/uiconfig/scalc/toolbar/formatobjectbar.xml	2008-02-22 11:16:00.000000000 -0500
+@@ -33,7 +33,6 @@
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatPercent" toolbar:helpid="helpid:26046"  />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatDate" toolbar:helpid="helpid:26053"  toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatScientific" toolbar:helpid="helpid:26055"  toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:NumberFormatStandard" toolbar:helpid="helpid:26052"  />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatIncDecimals" toolbar:helpid="helpid:26057"  />
+  <toolbar:toolbaritem xlink:href=".uno:NumberFormatDecDecimals" toolbar:helpid="helpid:26058"  />
+  <toolbar:toolbarseparator/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/printer-properties-disable.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/printer-properties-disable.diff
@@ -0,0 +1,51 @@
+--- padmin/source/rtsetup.src	2004-06-26 08:42:01.000000000 +0530
++++ padmin/source/rtsetup.src	2005-03-02 11:48:29.000000000 +0530
+@@ -138,6 +138,7 @@ TabPage RID_RTS_PAPERPAGE
+ 	};
+ 	FixedText RID_RTS_PAPER_ORIENTATION_TXT
+ 	{
++		Hide = TRUE;
+ 		Pos = MAP_APPFONT( 5, 20 );
+ 		Size = MAP_APPFONT( 80, 8 );
+ 		Text [ en-US ] = "~Orientation";
+@@ -145,6 +146,7 @@ TabPage RID_RTS_PAPERPAGE
+ 	};
+ 	ListBox RID_RTS_PAPER_ORIENTATION_BOX
+ 	{
++		Hide = TRUE;
+ 		Border = TRUE;
+ 		DropDown = TRUE;
+ 		Pos = MAP_APPFONT( 115, 20 );
+@@ -152,7 +154,7 @@ TabPage RID_RTS_PAPERPAGE
+ 	};
+ 	FixedText RID_RTS_PAPER_DUPLEX_TXT
+ 	{
+-		Pos = MAP_APPFONT( 5, 35 );
++		Pos = MAP_APPFONT( 5, 20 );
+ 		Size = MAP_APPFONT( 80, 8 );
+ 		Text [ en-US ] = "~Duplex";
+ 	};
+@@ -161,12 +163,12 @@ TabPage RID_RTS_PAPERPAGE
+ 	{
+ 		Border = TRUE;
+ 		DropDown = TRUE;
+-		Pos = MAP_APPFONT( 115, 35 );
++		Pos = MAP_APPFONT( 115, 20 );
+ 		Size = MAP_APPFONT( 110, 120 );
+ 	};
+ 	FixedText RID_RTS_PAPER_SLOT_TXT
+ 	{
+-		Pos = MAP_APPFONT( 5, 50 );
++		Pos = MAP_APPFONT( 5, 35 );
+ 		Size = MAP_APPFONT( 80, 8 );
+ 		Text [ en-US ] = "Paper tray";
+ 	};
+@@ -175,7 +177,7 @@ TabPage RID_RTS_PAPERPAGE
+ 	{
+ 		Border = TRUE;
+ 		DropDown = TRUE;
+-		Pos = MAP_APPFONT( 115, 50 );
++		Pos = MAP_APPFONT( 115, 35 );
+ 		Size = MAP_APPFONT( 110, 120 );
+ 	};
+ };
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-broken-symlinks.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-broken-symlinks.diff
@@ -0,0 +1,51 @@
+--- ucb/source/ucp/gvfs/content.cxx	2007-07-19 18:08:13.000000000 +0200
++++ ucb/source/ucp/gvfs/content.cxx	2007-07-19 19:50:21.000000000 +0200
+@@ -684,16 +684,29 @@ uno::Reference< sdbc::XRow > Content::ge
+ 		if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "SupportsActiveStreaming" ) ) ) {
+ 			xRow->appendBoolean( rProp, sal_True );
+ 		}
+-		else if (result != GNOME_VFS_OK) {
++		else if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_PROTOCOL_ERROR) {
+ 			// 'SupportsActiveStreaming' is the only property that can be
+ 			// obtained even if getInfo() failed
++			// We ignore protocol errors - happens eg. for broken links over sftp:// :-(
+ 			cancelCommandExecution( result, xEnv, sal_False );
+ 		}
+ 		else if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) {
+ 			if (m_info.name && m_info.name[0] == '/')
+ 				g_warning ("Odd NFS title on item '%s' == '%s'",
+ 					   getURI(), m_info.name);
+-			xRow->appendString( rProp, GnomeToOUString( m_info.name ) );
++
++			if (result != GNOME_VFS_ERROR_PROTOCOL_ERROR)
++				xRow->appendString( rProp, GnomeToOUString( m_info.name ) );
++			else {
++				// m_info is not valid, we have to guess something close enough
++				rtl::OUString aURI( getOUURI() );
++
++				sal_Int32 nLastSlash = aURI.lastIndexOf( '/' );
++				if (nLastSlash >= 0)
++					aURI = aURI.copy( nLastSlash + 1 );
++
++				xRow->appendString( rProp, aURI );
++			}
+ 		}
+ 
+ 		else if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ContentType" ) ) )
+--- ucb/source/ucp/gvfs/directory.cxx	2007-07-17 16:49:55.000000000 +0200
++++ ucb/source/ucp/gvfs/directory.cxx	2007-07-19 19:54:35.000000000 +0200
+@@ -376,9 +376,11 @@ sal_Bool DataSupplier::getData()
+ 
+ 		GnomeVFSFileInfo *pFileInfo = gnome_vfs_file_info_new();
+ 		while ((result = gnome_vfs_directory_read_next (dirHandle, pFileInfo)) == GNOME_VFS_OK) {
+-			if( pFileInfo->name && pFileInfo->name[0] == '.' &&
+-			    ( pFileInfo->name[1] == '\0' ||
+-			      ( pFileInfo->name[1] == '.' && pFileInfo->name[2] == '\0' ) ) )
++			if( !pFileInfo->name ||
++				pFileInfo->name[0] == '\0' ||
++				( pFileInfo->name[0] == '.' &&
++					( pFileInfo->name[1] == '\0' ||
++					( pFileInfo->name[1] == '.' && pFileInfo->name[2] == '\0' ) ) ) )
+ 				continue;
+ 
+ 			switch ( m_pImpl->m_nOpenMode ) {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-lpsolve-config_office.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-lpsolve-config_office.diff
@@ -0,0 +1,54 @@
+--- config_office/configure.in-old
++++ config_office/configure.in
+@@ -3910,6 +3910,39 @@
+ fi
+ AC_SUBST(SYSTEM_MYTHES)
+
++dnl ===================================================================
++dnl Checking for calc solver
++dnl ===================================================================
++AC_MSG_CHECKING([whether to build calc solver])
++if test "$enable_scsolver" == "no"; then
++    AC_MSG_RESULT([no])
++    BUILD_SCSOLVER=NO
++else
++    AC_MSG_RESULT([yes])
++    BUILD_SCSOLVER=YES
++    BUILD_TYPE="$BUILD_TYPE SCSOLVER"
++
++dnl ===================================================================
++dnl Checking for lpsolve
++dnl ===================================================================
++AC_MSG_CHECKING([which lpsolve to use])
++if test -n "$with_system_lpsolve" && test "$with_system_lpsolve" != "no"; then
++    AC_MSG_RESULT([external])
++    SYSTEM_LPSOLVE=YES
++    AC_CHECK_HEADER(lpsolve/lp_lib.h, [],
++       [ AC_MSG_ERROR(lpsolve55 headers not found.)], [])
++    AC_CHECK_LIB(lpsolve55, main, [],
++        [ AC_MSG_ERROR(liblpsolve55 library not found.)], [])
++else
++    AC_MSG_RESULT([internal])
++    SYSTEM_LPSOLVE=NO
++    BUILD_TYPE="$BUILD_TYPE LPSOLVE"
++fi
++AC_SUBST(SYSTEM_LPSOLVE)
++
++fi
++AC_SUBST(BUILD_SCSOLVER)
++
+ dnl ***************************************
+ dnl testing libc version for Linux...
+ dnl ***************************************
+
+--- config_office/set_soenv.in-old	2006-06-20 13:58:26.000000000 +0200
++++ config_office/set_soenv.in	2006-06-20 14:03:48.000000000 +0200
+@@ -1813,6 +1813,8 @@
+ ToFile( "HUNSPELL_LIBS",     "@HUNSPELL_LIBS@",    "e" );
+ ToFile( "SYSTEM_HYPH",       "@SYSTEM_HYPH@",      "e" );
+ ToFile( "SYSTEM_MYTHES",     "@SYSTEM_MYTHES@",    "e" );
++ToFile( "BUILD_SCSOLVER",    "@BUILD_SCSOLVER@",   "e" );
++ToFile( "SYSTEM_LPSOLVE",    "@SYSTEM_LPSOLVE@",   "e" );
+ ToFile( "PAM",               "@PAM@",              "e" );
+ ToFile( "NEW_SHADOW_API",    "@NEW_SHADOW_API@",   "e" );
+ ToFile( "PAM_LINK",          "@PAM_LINK@",         "e" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-win32-avoid-premature-shutdown.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-win32-avoid-premature-shutdown.diff
@@ -0,0 +1,30 @@
+--- dbaccess/source/ui/dlg/dbwizsetup.cxx	2006-12-01 17:52:43.000000000 +0000
++++ dbaccess/source/ui/dlg/dbwizsetup.cxx	2007-05-28 10:10:03.370250000 +0000
+@@ -1228,6 +1228,7 @@
+             // wants us to load could be a non-database document. Instead, we asynchronously
+             // open the selected document. Thus, the wizard's return value is RET_CANCEL,
+             // which means to not continue loading the database document
++			putenv("UGLY_HACK_TO_FIX_N269146=HAHA");
+             if ( !OWizardMachine::onFinish( RET_CANCEL ) )
+                 return sal_False;
+ 
+--- desktop/source/app/dispatchwatcher.cxx	2006-12-01 17:53:04.000000000 +0000
++++ desktop/source/app/dispatchwatcher.cxx	2007-05-28 10:25:35.526500000 +0000
+@@ -489,13 +489,16 @@
+ 
+         Reference< XElementAccess > xList( xTasksSupplier->getFrames(), UNO_QUERY );
+ 
+-        if ( !xList->hasElements() )
++		char *hack = getenv("UGLY_HACK_TO_FIX_N269146");
++        if ( (hack == NULL || *hack == '\0') && !xList->hasElements() )
+ 		{
+ 			// We don't have any task open so we have to shutdown ourself!!
+ 			Reference< XDesktop > xDesktop2( xTasksSupplier, UNO_QUERY );
+ 			if ( xDesktop2.is() )
+ 				return xDesktop2->terminate();
+ 		}
++		if (hack != NULL)
++			putenv("UGLY_HACK_TO_FIX_N269146=");
+ 	}
+ 
+ 	return sal_False;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/seamonkey-is-iceape.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/seamonkey-is-iceape.diff
@@ -0,0 +1,22 @@
+--- config_office/configure.in-old	2008-05-03 23:27:00.000000000 +0200
++++ config_office/configure.in	2008-05-03 23:27:37.000000000 +0200
+@@ -511,7 +511,7 @@
+                           components cannot be built against a contemporary
+                           mozilla. The flavour used can be specified by
+                           --with-system-mozilla=<flavour>. Supported are:
+-                          libxul (default), xulrunner, firefox, seamonkey,
++                          libxul (default), xulrunner, firefox, iceape,
+                           mozilla
+ ], WITH_SYSTEM_MOZILLA=$withval, WITH_SYSTEM_MOZILLA=no)
+ AC_ARG_WITH(stlport,
+@@ -4134,8 +4134,8 @@
+       MOZ_FLAVOUR=libxul
+     elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "xulrunner"; then
+       MOZ_FLAVOUR=xulrunner
+-    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "seamonkey"; then
+-      MOZ_FLAVOUR=seamonkey
++    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "iceape"; then
++      MOZ_FLAVOUR=iceape
+     elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "firefox"; then
+       MOZ_FLAVOUR=firefox
+     elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "mozilla"; then
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/zoom-combobox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/zoom-combobox.diff
@@ -0,0 +1,883 @@
+Index: sfx2/source/appl/app.src
+===================================================================
+RCS file: /cvs/framework/sfx2/source/appl/app.src,v
+retrieving revision 1.88
+diff -u -r1.88 app.src
+--- sfx2/source/appl/app.src	17 Jul 2003 13:14:26 -0000	1.88
++++ sfx2/source/appl/app.src	20 Aug 2003 21:36:38 -0000
+@@ -3657,6 +3657,14 @@
+ 		};
+ 		ToolBoxItem
+ 		{
++			Identifier = SID_ATTR_ZOOM ;
++		};
++		ToolBoxItem
++		{
++			Type = TOOLBOXITEM_SEPARATOR ;
++		};
++		ToolBoxItem
++		{
+ 			Identifier = SID_CLOSEDOC;
+ 			Hide = TRUE;
+ 		};
+Index: svx/inc/helpid.hrc
+===================================================================
+RCS file: /cvs/graphics/svx/inc/helpid.hrc,v
+retrieving revision 1.38
+diff -u -r1.38 helpid.hrc
+--- svx/inc/helpid.hrc	30 Apr 2003 08:23:57 -0000	1.38
++++ svx/inc/helpid.hrc	17 Aug 2003 16:31:26 -0000
+@@ -768,6 +768,7 @@
+ #define HID_SVX_OPTIONS_ONLINEUPDATE                (HID_SVX_EXT0_START + 186)
+ #define HID_OPTIONS_CHART_DEFCOLORS                 (HID_SVX_EXT0_START + 187)
+ #define HID_OPTIONS_MULTIPATH_LIST                  (HID_SVX_EXT0_START + 188)
++#define HID_ZOOM_COMBOBOX                           (HID_SVX_EXT0_START + 189)
+ 
+ // please adjust ACT_SVX_HID_END2 below if you add entries here!
+ 
+@@ -806,7 +806,7 @@
+ #error Resource-Ueberlauf in #line, #file
+ #endif
+ 
+-#define ACT_SVX_HID_END2        HID_OPTIONS_MULTIPATH_LIST
++#define ACT_SVX_HID_END2        HID_ZOOM_COMBOBOX
+ #if ACT_SVX_HID_END2 > HID_SVX_EXT0_END
+ #error resource overrun in #line, #file
+ #endif
+Index: svx/source/tbxctrls/tbcontrl.src
+===================================================================
+RCS file: /cvs/graphics/svx/source/tbxctrls/tbcontrl.src,v
+retrieving revision 1.35
+diff -u -r1.35 tbcontrl.src
+--- svx/source/tbxctrls/tbcontrl.src	17 Jul 2003 11:33:35 -0000	1.35
++++ svx/source/tbxctrls/tbcontrl.src	17 Aug 2003 16:31:38 -0000
+@@ -263,4 +263,14 @@
+ };
++ComboBox RID_SVXTBX_ZOOM
++{
++	HelpId = HID_ZOOM_COMBOBOX ;
++	Size = MAP_APPFONT ( 30 , 86 ) ;
++	DropDown = TRUE ;
++	AutoHScroll = TRUE ;
++	DDExtraWidth = TRUE ;
++	Border = TRUE ;
++	Hide = TRUE ;
++};
+ String RID_SVXSTR_EXTRAS_CHARBACKGROUND
+ {
+ 	Text [ en-US ] = "Highlighting" ;
+dummy line to avoid confusing diff-mode
+--- sw/source/ui/app/swmodule.cxx	2003-07-07 18:10:23.000000000 +0200
++++ sw/source/ui/app/swmodule.cxx	2003-08-13 22:52:29.000000000 +0200
+@@ -121,6 +121,9 @@
+ #ifndef _SVX_VERT_TEXT_TBXCTRL_HXX
+ #include <svx/verttexttbxctrl.hxx>
+ #endif
++#ifndef _SVX_ZOOMTBXCTRL_HXX
++#include <svx/zoomtbxctrl.hxx>
++#endif
+ #ifndef _SVX_FORMATPAINTBRUSHCTRL_HXX
+ #include <svx/formatpaintbrushctrl.hxx>
+ #endif
+@@ -573,6 +576,7 @@
+ 	SvxFontSizeMenuControl::RegisterControl(SID_ATTR_CHAR_FONTHEIGHT, pMod );
+ 
+ 	SwZoomControl::RegisterControl(SID_ATTR_ZOOM, pMod );
++	SvxZoomToolBoxControl::RegisterControl(SID_ATTR_ZOOM, pMod);
+     SwPreviewZoomControl::RegisterControl(FN_PREVIEW_ZOOM, pMod);
+ 	SwHyperlinkControl::RegisterControl(FN_STAT_HYPERLINKS, pMod );
+ 	SvxPosSizeStatusBarControl::RegisterControl(0, pMod );
+
+Index: sw/source/ui/uiview/pview.src
+===================================================================
+RCS file: /cvs/sw/sw/source/ui/uiview/pview.src,v
+retrieving revision 1.28
+diff -u -r1.28 pview.src
+--- sw/source/ui/uiview/pview.src	17 Jul 2003 12:04:56 -0000	1.28
++++ sw/source/ui/uiview/pview.src	20 Aug 2003 21:47:00 -0000
+@@ -1043,11 +1043,6 @@
+             Identifier = SID_ZOOM_IN;
+             HelpID = SID_ZOOM_IN ;
+         };
+-        ToolBoxItem
+-		{
+-			Identifier = FN_PREVIEW_ZOOM;
+-			HelpID = HID_PREVIEW_ZOOM ;
+-		};
+ 		ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
+ 		ToolBoxItem
+ 		{
+Index: sc/source/ui/app/scdll.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/app/scdll.cxx,v
+retrieving revision 1.14
+diff -u -r1.14 scdll.cxx
+--- sc/source/ui/app/scdll.cxx	26 Mar 2003 18:05:47 -0000	1.14
++++ sc/source/ui/app/scdll.cxx	18 Aug 2003 19:08:47 -0000
+@@ -105,6 +105,7 @@
+ #include <svx/selctrl.hxx>
+ #include <svx/insctrl.hxx>
+ #include <svx/zoomctrl.hxx>
++#include <svx/zoomtbxctrl.hxx>
+ #include <svx/flditem.hxx>
+ #include <svx/modctrl.hxx>
+ #include <svx/pszctrl.hxx>
+@@ -243,6 +244,7 @@
+ 	SvxInsertStatusBarControl		::RegisterControl(SID_ATTR_INSERT,		pMod);
+ 	SvxSelectionModeControl			::RegisterControl(SID_STATUS_SELMODE,	pMod);
+ 	SvxZoomStatusBarControl			::RegisterControl(SID_ATTR_ZOOM,		pMod);
++	SvxZoomToolBoxControl			::RegisterControl(SID_ATTR_ZOOM,		pMod);
+ 	SvxModifyControl 				::RegisterControl(SID_DOC_MODIFIED,		pMod);
+ 	XmlSecStatusBarControl          ::RegisterControl( SID_SIGNATURE,       pMod );
+ 
+Index: sd/source/ui/app/sddll2.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/app/sddll2.cxx,v
+retrieving revision 1.10
+diff -u -r1.10 sddll2.cxx
+--- sd/source/ui/app/sddll2.cxx	13 Sep 2002 13:42:54 -0000	1.10
++++ sd/source/ui/app/sddll2.cxx	18 Aug 2003 19:03:03 -0000
+@@ -114,6 +114,9 @@
+ #ifndef _SVX_ZOOMCTRL_HXX //autogen
+ #include <svx/zoomctrl.hxx>
+ #endif
++#ifndef _SVX_ZOOMTBXCTRL_HXX //autogen
++#include <svx/zoomtbxctrl.hxx>
++#endif
+ #ifndef _SVX_PSZCTRL_HXX //autogen
+ #include <svx/pszctrl.hxx>
+ #endif
+@@ -242,6 +245,7 @@
+ 
+ 	// StatusBarControls registrieren
+ 	SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pMod );
++	SvxZoomToolBoxControl::RegisterControl( SID_ATTR_ZOOM, pMod );
+ 	SvxPosSizeStatusBarControl::RegisterControl( SID_ATTR_SIZE, pMod );
+ 	SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod );
+ 	//SvxInsertStatusBarControl::RegisterControl(0, pModd);
+Index: starmath/source/smdll.cxx
+===================================================================
+RCS file: /cvs/sw/starmath/source/smdll.cxx,v
+retrieving revision 1.5
+diff -u -r1.5 smdll.cxx
+--- starmath/source/smdll.cxx	12 Oct 2001 15:54:37 -0000	1.5
++++ starmath/source/smdll.cxx	18 Aug 2003 19:10:56 -0000
+@@ -73,6 +73,9 @@
+ #ifndef _SVX_ZOOMCTRL_HXX //autogen
+ #include <svx/zoomctrl.hxx>
+ #endif
++#ifndef _SVX_ZOOMTBXCTRL_HXX //autogen
++#include <svx/zoomtbxctrl.hxx>
++#endif
+ #ifndef _SFX_OBJFAC_HXX
+ #include <sfx2/docfac.hxx>
+ #endif
+@@ -147,6 +150,7 @@
+ 	SmViewShell::RegisterFactory(1);
+ 
+ 	SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pp );
++	SvxZoomToolBoxControl::RegisterControl( SID_ATTR_ZOOM, pp );
+ 	SvxModifyControl::RegisterControl( SID_TEXTSTATUS, pp );
+ 	SvxUndoRedoControl::RegisterControl( SID_UNDO, pp );
+ 	SvxUndoRedoControl::RegisterControl( SID_REDO, pp );
+--- sfx2/inc/sfx2/sfxsids.hrc	2005-02-07 22:41:53.005932054 -0800
++++ sfx2/inc/sfx2/sfxsids.hrc	2005-02-07 22:42:55.732927520 -0800
+@@ -1114,6 +1116,7 @@
+ 
+ #define SID_SVX_START                       (SID_LIB_START +   0)
+ 
++#define SID_ATTR_ZOOM                       (SID_SVX_START +   0)
+ #define SID_ATTR_CHAR                       (SID_SVX_START +   6)
+ #define SID_ATTR_CHAR_FONT                  (SID_SVX_START +   7)
+ #define SID_ATTR_CHAR_POSTURE               (SID_SVX_START +   8)
+
+--- svx/inc/svx/svxids.hrc	8 Sep 2005 19:01:37 -0000	1.102
++++ svx/inc/svx/svxids.hrc	24 Oct 2005 14:48:34 -0000
+@@ -434,6 +434,6 @@
+ // --------------------------------------------------------------------------
+ 
+-#define SID_ATTR_ZOOM                                   ( SID_SVX_START + 0 )
++//#define SID_ATTR_ZOOM                                   ( SID_SVX_START + 0 )     -> sfxsids.hrc
+ #define SID_ATTR_BRUSH                                  ( SID_SVX_START + 1 )
+ #define SID_ATTR_TABSTOP                                ( SID_SVX_START + 2 )
+ #define SID_ATTR_TABSTOP_DEFAULTS                       ( SID_SVX_START + 3 )
+
+--- svx/source/tbxctrls/makefile.mk	2005-02-10 21:18:28.391273964 -0800
++++ svx/source/tbxctrls/makefile.mk	2005-02-10 21:18:58.339248608 -0800
+@@ -97,7 +97,8 @@
+         $(SLO)$/toolbarmenu.obj \
+         $(SLO)$/tbxcolor.obj \
+         $(SLO)$/tbxcolorupdate.obj \
+-        $(SLO)$/tbunocontroller.obj
++        $(SLO)$/tbunocontroller.obj \
++        $(SLO)$/zoomtbxctrl.obj	
+ 
+ SRS1NAME=$(TARGET)
+ SRC1FILES = \
+
+--- svx/inc/svx/dialogs.hrc	2005-02-02 19:27:13.000000000 +0530
++++ svx/inc/svx/dialogs.hrc	2005-03-29 14:16:08.000000000 +0530
+@@ -243,6 +243,8 @@
+ 
+ // fuer ToolboxControl-Style
+ #define RID_SVXTBX_STYLE                    (RID_SVX_START + 120)
++// for Zoom Toolbox Control
++#define RID_SVXTBX_ZOOM						(RID_SVX_START + 121)
+ 
+ #define RID_SVXDLG_HYPERLINK                (RID_SVX_START + 140)
+ #define RID_SVXDLG_PASSWORD					(RID_SVX_START + 141)
+@@ -1133,6 +1135,11 @@
+ #define RID_SVXSTR_COLOR_CONFIG_SAVE2       (RID_SVX_START + 854)
+ #define RID_SVXSTR_COLOR_CONFIG_DELETE      (RID_SVX_START + 855)
+ 
++// Zoom ComboBox Strings
++#define RID_SVX_ZOOM_PAGEWIDTH					(RID_SVX_START + 856)
++#define RID_SVX_ZOOM_WHOLEPAGE					(RID_SVX_START + 857)
++#define RID_SVX_ZOOM_OPTIMAL					(RID_SVX_START + 858)
++
+ // Accessibility strings.  The actual string ids are defined in
+ // svx/inc/accessibility.hrc, the strings are defined in
+ // svx/source/accessibility/accessibility.src
+
+--- svx/source/tbxctrls/tbcontrl.src	2006-07-13 18:04:12.000000000 +0200
++++ svx/source/tbxctrls/tbcontrl.src	2007-03-15 16:38:38.000000000 +0100
+@@ -129,5 +139,240 @@
+     Text [ en-US ] = "Pages";
+ };
++String RID_SVX_ZOOM_WHOLEPAGE
++{
++	Text [ de ] = "~Ganze Seite" ;
++	Text [ en-US ] = "~Entire Page" ;
++	Text [ af ] = "~Hele bladsy" ;
++	Text [ ar ] = "~صفحة كاملة" ;
++	Text [ as-IN ] = "সম্পূর্ণ পৃষ্ঠা" ;
++	Text [ be-BY ] = "Старонка цалкам" ;
++	Text [ bg ] = "~Цяла страница" ;
++	Text [ br ] = "Pajenn a-bezh" ;
++	Text [ bs ] = "~Cijela stranica" ;
++	Text [ ca ] = "~Tota la pàgina" ;
++	Text [ cs ] = "Celá stránka" ;
++	Text [ cy ] = "~Tudalen Gyfan" ;
++	Text [ da ] = "H~ele siden" ;
++	Text [ el ] = "Ολόκληρη σελίδα" ;
++	Text [ en-GB ] = "~Entire Page" ;
++	Text [ en-ZA ] = "~Entire Page" ;
++	Text [ eo ] = "Integra Paĝo" ;
++	Text [ es ] = "~Toda la página" ;
++	Text [ et ] = "Terve lehekülg" ;
++	Text [ fa ] = "~سراسر صفحه" ;
++	Text [ fi ] = "~Koko sivu" ;
++	Text [ fr ] = "Page entière" ;
++	Text [ ga ] = "L~eathanach ar fad" ;
++	Text [ gu ] = "આખુ પાનું(~E)" ;
++	Text [ gu-IN ] = "આખુ પાનું(~E)" ;
++	Text [ he ] = "עמוד שלם" ;
++	Text [ hi-IN ] = "सम्पूर्ण पृष्ठ (~E)" ;
++	Text [ hr ] = "~Cijela stranica" ;
++	Text [ hu ] = "~Teljes oldal" ;
++	Text [ it ] = "~Pagina intera" ;
++	Text [ ja ] = "ページ全体(~E)" ;
++	Text [ ka ] = "~მთლიანი გვერდი" ;
++	Text [ km ] = "ទំព័រទាំងមូល " ;
++	Text [ ko ] = "전체 페이지(~E)" ;
++	Text [ lt ] = "~Visas puslapis" ;
++	Text [ mk ] = "~Цела страница" ;
++	Text [ ml-IN ] = "മുഴുവന് പേജ്" ;
++	Text [ mr-IN ] = "~संपूर्ण पृष्ठ" ;
++	Text [ nb ] = "~Hele siden" ;
++	Text [ ne ] = "सम्पूर्ण पृष्ठ" ;
++	Text [ nl ] = "H~ele pagina" ;
++	Text [ nn ] = "~Heile sida" ;
++	Text [ nr ] = "~Ikhasi Loke" ;
++	Text [ ns ] = "~Letlakala Ka moka" ;
++	Text [ or-IN ] = "ସମଗ୍ର ପୃଷ୍ଠା" ;
++	Text [ pa-IN ] = "ਮੁਕੰਮਲ ਸਫ਼ਾ(~E)" ;
++	Text [ pl ] = "~Cała strona" ;
++	Text [ pt ] = "~Página inteira" ;
++	Text [ pt-BR ] = "Página int~eira" ;
++	Text [ ru ] = "Вся страница" ;
++	Text [ rw ] = "Ipaji yose" ;
++	Text [ sh-YU ] = "~Cela strana" ;
++	Text [ sk ] = "~Celá strana" ;
++	Text [ sl ] = "~Cela stran" ;
++	Text [ sr-CS ] = "~Цела страна" ;
++	Text [ ss ] = "~Lonkhe lipheji" ;
++	Text [ st ] = "~Leqephe kaofela" ;
++	Text [ sv ] = "Hela sidan" ;
++	Text [ sw-TZ ] = "Ukurasa Mzima" ;
++	Text [ ta ] = "முழுப்பக்கம்" ;
++	Text [ ta-IN ] = "முழுப்பக்கம்" ;
++	Text [ te-IN ] = "పుటము మొత్తము" ;
++	Text [ tg ] = "Ба тамомми саҳифа" ;
++	Text [ th ] = "~ทั้งหน้า" ;
++	Text [ tn ] = "~Yotlhe Tsebe" ;
++	Text [ tr ] = "Tüm Sayfa" ;
++	Text [ ts ] = "~Pheji hinkwaro" ;
++	Text [ uk ] = "~Entire Page" ;
++	Text [ ur-IN ] = "پوراصفحہ" ;
++	Text [ ve ] = "~Siatari Lothe" ;
++	Text [ vi ] = "~Toàn trang" ;
++	Text [ xh ] = "~Ikhasi Liphelele" ;
++	Text [ zh-CN ] = "整页(~E)" ;
++	Text [ zh-TW ] = "整頁(~E)" ;
++	Text [ zu ] = "Ikhasi ~lonke" ;
++	Text [ x-comment ] = " ";
++};
++String RID_SVX_ZOOM_PAGEWIDTH
++{
++	Text [ de ] = "Seiten~breite" ;
++	Text [ en-US ] = "~Page Width" ;
++	Text [ af ] = "~Bladsybreedte" ;
++	Text [ ar ] = "~عرض الصفحة" ;
++	Text [ as-IN ] = "পৃষ্ঠাৰ প্রস্থ" ;
++	Text [ be-BY ] = "Шырыня старонкі" ;
++	Text [ bg ] = "~Ширина на страницата" ;
++	Text [ br ] = "~Led pajenn" ;
++	Text [ bs ] = "Širina ~stranice" ;
++	Text [ ca ] = "~Ample de pàgina" ;
++	Text [ cs ] = "Šířka stránky" ;
++	Text [ cy ] = "~Lled tudalen" ;
++	Text [ da ] = "Side~bredde" ;
++	Text [ el ] = "Πλάτος σελίδας" ;
++	Text [ en-GB ] = "~Page Width" ;
++	Text [ en-ZA ] = "~Page Width" ;
++	Text [ eo ] = "Paĝa Larĝo" ;
++	Text [ es ] = "~Ancho de página" ;
++	Text [ et ] = "Lehekülje laius" ;
++	Text [ fa ] = "~عرض صفحه" ;
++	Text [ fi ] = "~Sivun leveys" ;
++	Text [ fr ] = "~Largeur de page" ;
++	Text [ ga ] = "Leithead ~Leathanaigh" ;
++	Text [ gu ] = "પાનું પહોળાઈ(~P)" ;
++	Text [ gu-IN ] = "પાનું પહોળાઈ(~P)" ;
++	Text [ he ] = "רוחב עמוד" ;
++	Text [ hi-IN ] = "पृष्ठ चौड़ाई (~P)" ;
++	Text [ hr ] = "~Širina stranice" ;
++	Text [ hu ] = "~Oldalszélesség" ;
++	Text [ it ] = "Larg~h. pagina" ;
++	Text [ ja ] = "ページ幅(~P)" ;
++	Text [ ka ] = "~გვერდის სიგანე" ;
++	Text [ km ] = "ទទឹង​ទំព័រ " ;
++	Text [ ko ] = "페이지 너비(~P)" ;
++	Text [ lt ] = "~Puslapio plotis" ;
++	Text [ mk ] = "Ширина на ~страница" ;
++	Text [ ml-IN ] = "പേജിന്റെ വീതി" ;
++	Text [ mr-IN ] = "~पृष्ठाची रुंदी" ;
++	Text [ nb ] = "~Sidebredde" ;
++	Text [ ne ] = "पृष्ठ चौडाइ" ;
++	Text [ nl ] = "~Paginabreedte" ;
++	Text [ nn ] = "~Sidebreidd" ;
++	Text [ nr ] = "~Ububanzi bekhasi" ;
++	Text [ ns ] = "~Bophara bja Letlakala" ;
++	Text [ or-IN ] = "ପୃଷ୍ଠାର ଓସାର" ;
++	Text [ pa-IN ] = "ਸਫ਼ਾ ਚੌੜਾਈ(~P)" ;
++	Text [ pl ] = "Szerokość ~strony" ;
++	Text [ pt ] = "~Largura da página" ;
++	Text [ pt-BR ] = "Largura da ~página" ;
++	Text [ ru ] = "По ширине страницы" ;
++	Text [ rw ] = "Ubugari bw'Urupapuro" ;
++	Text [ sh-YU ] = "~Širina strane" ;
++	Text [ sk ] = "Šírka ~strany" ;
++	Text [ sl ] = "Širina s~trani" ;
++	Text [ sr-CS ] = "~Ширина стране" ;
++	Text [ ss ] = "~Bubanti belipheji" ;
++	Text [ st ] = "~Bophara ba Leqephe" ;
++	Text [ sv ] = "Sidbredd" ;
++	Text [ sw-TZ ] = "Upana Ukurasa" ;
++	Text [ ta ] = "பக்க அகலம்" ;
++	Text [ ta-IN ] = "பக்க அகலம்" ;
++	Text [ te-IN ] = "పుటము యొక్క వెడెల్పు" ;
++	Text [ tg ] = "Ба бари саҳифа" ;
++	Text [ th ] = "ความกว้างของ~หน้า" ;
++	Text [ tn ] = "~Tsebe Bophara" ;
++	Text [ tr ] = "Sayfa Yüksekliği" ;
++	Text [ ts ] = "~Ku anama ka pheji" ;
++	Text [ uk ] = "~Page Width" ;
++	Text [ ur-IN ] = "صفحہ کی چوڑائی" ;
++	Text [ ve ] = "~Vhuphara ha Siatari" ;
++	Text [ vi ] = "Độ ~rộng trang" ;
++	Text [ xh ] = "~Ububanzi Bekhasi" ;
++	Text [ zh-CN ] = "页面宽度(~P)" ;
++	Text [ zh-TW ] = "頁面寬度(~P)" ;
++	Text [ zu ] = "Ububanzi be~khasi" ;
++	Text [ x-comment ] = " ";
++};
++String RID_SVX_ZOOM_OPTIMAL
++{
++	Text [ de ] = "~Optimal" ;
++	Text [ en-US ] = "~Optimal" ;
++	Text [ af ] = "~Optimale" ;
++	Text [ ar ] = "الأم~ثل" ;
++	Text [ be-BY ] = "Аптымальна" ;
++	Text [ bg ] = "~Оптимален" ;
++	Text [ br ] = "~Gwellek" ;
++	Text [ bs ] = "~Optimalno" ;
++	Text [ ca ] = "Ò~ptim" ;
++	Text [ cs ] = "Optimální" ;
++	Text [ cy ] = "~Gorau" ;
++	Text [ da ] = "~Optimal" ;
++	Text [ el ] = "Βέ~λτιστα" ;
++	Text [ en-GB ] = "~Optimal" ;
++	Text [ en-ZA ] = "~Optimal" ;
++	Text [ eo ] = "~Optimal" ;
++	Text [ es ] = "Ó~ptimo" ;
++	Text [ et ] = "Optimaalne" ;
++	Text [ fa ] = "~بهینه" ;
++	Text [ fi ] = "O~ptimaalinen" ;
++	Text [ fr ] = "~Optimal" ;
++	Text [ ga ] = "~Optamach" ;
++	Text [ gu ] = "શ્રેષ્ઠ (~O)" ;
++	Text [ gu-IN ] = "શ્રેષ્ઠ (~O)" ;
++	Text [ he ] = "מיטבי" ;
++	Text [ hi-IN ] = "~Optimal" ;
++	Text [ hr ] = "~Optimalno" ;
++	Text [ hu ] = "~Optimális" ;
++	Text [ it ] = "~Ottimale" ;
++	Text [ ja ] = "最適(~O)" ;
++	Text [ ka ] = "~ოფტიმალური" ;
++	Text [ km ] = "ប្រសើរ​បំផុត " ;
++	Text [ ko ] = "최적(~O)" ;
++	Text [ ku ] = "D~înamik" ;
++	Text [ lt ] = "~Optimalus" ;
++	Text [ mk ] = "~Оптимално" ;
++	Text [ nb ] = "~Best mulig" ;
++	Text [ ne ] = "इष्टतम" ;
++	Text [ nl ] = "~Optimaal" ;
++	Text [ nn ] = "~Best mogleg" ;
++	Text [ nr ] = "~Ngaletha ipumelelo" ;
++	Text [ ns ] = "~Kgolo" ;
++	Text [ or-IN ] = "ଅପଟିମାଲ" ;
++	Text [ pa-IN ] = "ਅਨੁਕੂਲ(~O)" ;
++	Text [ pl ] = "~Optymalny" ;
++	Text [ pt ] = "~Optimizado" ;
++	Text [ pt-BR ] = "~Ideal" ;
++	Text [ ru ] = "Оптимально" ;
++	Text [ rw ] = "Gihamye" ;
++	Text [ sh-YU ] = "~Optimalan" ;
++	Text [ sk ] = "~Optimálny" ;
++	Text [ sl ] = "~Optimalno" ;
++	Text [ sr-CS ] = "~Оптималан" ;
++	Text [ ss ] = "~Kwekugcina" ;
++	Text [ st ] = "~E fetisisang" ;
++	Text [ sv ] = "Optimal" ;
++	Text [ sw-TZ ] = "Sadifu" ;
++	Text [ ta ] = "~சிறப்பு" ;
++	Text [ ta-IN ] = "~சிறப்பு" ;
++	Text [ te-IN ] = "అనుకూలమైన" ;
++	Text [ tg ] = "Оптималӣ" ;
++	Text [ th ] = "เ~หมาะที่สุด" ;
++	Text [ tn ] = "~Nepagetse" ;
++	Text [ tr ] = "En Uygun" ;
++	Text [ ts ] = "~Mpimo wa le makumu" ;
++	Text [ uk ] = "Оптимальний" ;
++	Text [ ur-IN ] = "مناسب" ;
++	Text [ ve ] = "~Oputimala" ;
++	Text [ vi ] = "Tối ư~u" ;
++	Text [ xh ] = "~Okufaneleke ncam" ;
++	Text [ zh-CN ] = "最佳(~O)" ;
++	Text [ zh-TW ] = "最合適(~O)" ;
++	Text [ zu ] = "~Okuthandwayo" ;
++	Text [ x-comment ] = " ";
++};
+ Image RID_SVXIMG_GRAF_RED
+ {
+ 	ImageBitmap = Bitmap { File = "sc10865.bmp" ; };
+
+--- /dev/null	2004-08-25 23:04:59.000000000 +0530
++++ svx/source/tbxctrls/zoomtbxctrl.cxx	2005-04-01 15:02:35.346989875 +0530
+@@ -0,0 +1,291 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 11222 $
++ *
++ *  last change: $Author: jannieuw $ $Date: 2008-01-08 08:13:21 -0600 (Tue, 08 Jan 2008) $
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): _______________________________________
++ *
++ *
++ ************************************************************************/
++
++#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
++
++#ifndef _SV_TOOLBOX_HXX
++#include <vcl/toolbox.hxx>
++#endif
++#ifndef _SFXAPP_HXX
++#include <sfx2/app.hxx>
++#endif
++#ifndef _SFXDISPATCH_HXX
++#include <sfx2/dispatch.hxx>
++#endif
++#ifndef _SFXVIEWSH_HXX
++#include <sfx2/viewsh.hxx>
++#endif
++#ifndef _SV_COMBOBOX_HXX
++#include <vcl/combobox.hxx>
++#endif
++                       
++#include <svx/dialogs.hrc>
++
++#include <svx/zoomtbxctrl.hxx>
++#include <svx/zoomitem.hxx>
++#include <svx/dialmgr.hxx>
++
++#define MINZOOM 20
++#define MAXZOOM 600
++#define DEFAULT_ZOOM 100
++
++using namespace ::rtl;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::frame;
++
++using namespace ::com::sun::star::frame;
++
++SFX_IMPL_TOOLBOX_CONTROL( SvxZoomToolBoxControl, SvxZoomItem);
++
++class SvxZoomBox_Impl : public ComboBox
++{
++    USHORT          nSlotId;
++    BOOL            bRelease;
++    OUString          maWholePage;
++    OUString          maOptimal;
++    OUString          maPageWidth;
++
++    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > m_xDispatchProvider;
++
++public:
++    SvxZoomBox_Impl( Window* pParent, USHORT nSlot, const Reference< XDispatchProvider >& rDispatchProvider );
++    ~SvxZoomBox_Impl();
++
++protected:
++    virtual void    Select();
++    virtual long    Notify( NotifyEvent& rNEvt );
++
++    void ReleaseFocus();
++
++};
++
++static String RemoveTilda( USHORT nId )
++{
++    return String( SVX_RESSTR ( nId ) ).EraseAllChars('~');
++}
++
++SvxZoomBox_Impl::SvxZoomBox_Impl( 
++    Window* pParent, 
++    USHORT nSlot, 
++    const Reference< XDispatchProvider >& rDispatchProvider ):
++    ComboBox( pParent, SVX_RES(RID_SVXTBX_ZOOM)),
++    nSlotId(nSlot),
++    bRelease(TRUE),
++    m_xDispatchProvider( rDispatchProvider ),
++    maPageWidth( RemoveTilda ( RID_SVX_ZOOM_PAGEWIDTH ) ),
++    maOptimal( RemoveTilda ( RID_SVX_ZOOM_OPTIMAL  ) ),
++    maWholePage( RemoveTilda ( RID_SVX_ZOOM_WHOLEPAGE ) )
++{
++	EnableAutocomplete( FALSE );
++	USHORT aZoomValues[] =
++	    {25, 50, 75, 100, 150, 200 };
++	for(USHORT i = 0; i < sizeof(aZoomValues)/sizeof(USHORT); i++)
++	{
++	String sEntry = String::CreateFromInt32( aZoomValues[i] );
++	sEntry += '%';
++	InsertEntry( sEntry );
++	}
++	InsertEntry( maPageWidth );
++	InsertEntry( maOptimal );
++	InsertEntry( maWholePage );
++}
++
++SvxZoomBox_Impl::~SvxZoomBox_Impl()
++{}
++
++void    SvxZoomBox_Impl::Select()
++{
++    if ( !IsTravelSelect() )
++    {
++        String sEntry( GetText() );
++        sEntry.EraseAllChars( '%' );
++	SvxZoomType ZoomType; 
++        USHORT nZoom = DEFAULT_ZOOM;
++	if( maWholePage == OUString( sEntry ) )
++	{
++	    nSlotId = SID_SIZE_PAGE;
++	    ZoomType = SVX_ZOOM_WHOLEPAGE;
++	}
++	else if( maPageWidth == OUString( sEntry ) )
++	{
++	    nSlotId = SID_SIZE_PAGE_WIDTH;
++	    ZoomType = SVX_ZOOM_PAGEWIDTH;
++	}
++	else if( maOptimal == OUString( sEntry ) )
++	{
++	    nSlotId = SID_SIZE_ALL;
++	    ZoomType = SVX_ZOOM_OPTIMAL;
++	}
++	else
++	{
++	    nZoom = (USHORT)sEntry.ToInt32();
++	    if(nZoom < MINZOOM)
++		nZoom = MINZOOM;
++	    if(nZoom > MAXZOOM)
++		nZoom = MAXZOOM;
++
++	    nSlotId =  SID_ATTR_ZOOM;
++	    ZoomType = SVX_ZOOM_PERCENT;
++	}
++
++	SvxZoomItem aItem ( ZoomType , nZoom, nSlotId );
++	Any a;
++	Sequence< PropertyValue > aArgs( 1 );
++	aArgs[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Zoom" ));
++	aItem.QueryValue( a );
++	aArgs[0].Value = a;
++	SfxToolBoxControl::Dispatch( 
++	    m_xDispatchProvider,
++	    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Zoom" )),
++	    aArgs );
++    }
++    ReleaseFocus();
++}
++
++
++long SvxZoomBox_Impl::Notify( NotifyEvent& rNEvt )
++{
++    long nHandled = 0;
++    if ( rNEvt.GetType() == EVENT_KEYINPUT )
++    {
++        USHORT nCode = rNEvt.GetKeyEvent()->GetKeyCode().GetCode();
++        switch ( nCode )
++        {
++            case KEY_RETURN:
++            case KEY_TAB:
++            {
++                if ( KEY_TAB == nCode )
++                    bRelease = FALSE;
++                else
++                    nHandled = 1;
++                Select();
++                break;
++            }
++
++            case KEY_ESCAPE:
++                SetText( GetSavedValue() );
++                ReleaseFocus();
++                break;
++        }
++    }
++    else if ( EVENT_LOSEFOCUS == rNEvt.GetType() )
++    {
++        Window* pFocusWin = Application::GetFocusWindow();
++        if ( !HasFocus() && GetSubEdit() != pFocusWin )
++            SetText( GetSavedValue() );
++    }
++
++    return nHandled ? nHandled : ComboBox::Notify( rNEvt );
++}
++
++void SvxZoomBox_Impl::ReleaseFocus()
++{
++    if ( !bRelease )
++    {
++        bRelease = TRUE;
++        return;
++    }
++    SfxViewShell* pCurSh = SfxViewShell::Current();
++
++    if ( pCurSh )
++    {
++        Window* pShellWnd = pCurSh->GetWindow();
++
++        if ( pShellWnd )
++            pShellWnd->GrabFocus();
++    }
++}
++
++SvxZoomToolBoxControl::SvxZoomToolBoxControl(  USHORT          nSlotID,
++    USHORT          nID,
++    ToolBox&        rBox  )
++:  SfxToolBoxControl( nSlotID, nID, rBox )
++{
++}
++
++SvxZoomToolBoxControl::~SvxZoomToolBoxControl()
++{
++}
++
++void SvxZoomToolBoxControl::StateChanged( USHORT nSID,
++                                         SfxItemState eState,
++                                         const SfxPoolItem* pState )
++{
++    USHORT nId = GetId();
++    GetToolBox().EnableItem( nId, (GetItemState(pState) != SFX_ITEM_DISABLED) );
++    SvxZoomBox_Impl* pBox = (SvxZoomBox_Impl*)GetToolBox().GetItemWindow( GetId() );
++    if(SFX_ITEM_AVAILABLE <= eState)
++    {  
++        String sZoom(String::CreateFromInt32(((const SvxZoomItem*)pState)->GetValue()));
++        sZoom += '%';
++        pBox->SetText(sZoom);
++        pBox->SaveValue();
++    }
++}    
++
++Window* SvxZoomToolBoxControl::CreateItemWindow( Window *pParent )
++{
++
++    SvxZoomBox_Impl* pRet = new SvxZoomBox_Impl( pParent, GetSlotId(), Reference< XDispatchProvider >( m_xFrame->getController(), UNO_QUERY ));
++    
++    return pRet;
++}
+
+--- svx/prj/d.lst	2007-05-02 21:06:36.000000000 +0200
++++ svx/prj/d.lst	2007-05-02 21:12:15.000000000 +0200
+@@ -425,6 +425,7 @@ mkdir: %_DEST%\inc%_EXT%\svx
+ ..\inc\xexch.hxx %_DEST%\inc%_EXT%\svx\xexch.hxx
+ ..\inc\zoomctrl.hxx %_DEST%\inc%_EXT%\svx\zoomctrl.hxx
+ ..\inc\svx\zoomitem.hxx %_DEST%\inc%_EXT%\svx\zoomitem.hxx
++..\inc\svx\zoomtbxctrl.hxx %_DEST%\inc%_EXT%\svx\zoomtbxctrl.hxx
+ ..\source\items\boxobj.hxx %_DEST%\inc%_EXT%\svx\boxobj.hxx
+ ..\inc\svx\itemtype.hxx %_DEST%\inc%_EXT%\svx\itemtype.hxx
+ ..\inc\svx\outliner.hxx %_DEST%\inc%_EXT%\svx\outliner.hxx
+--- /dev/null	2004-08-25 23:04:59.000000000 +0530
++++ svx/inc/svx/zoomtbxctrl.hxx	2005-04-07 16:50:49.483537921 +0530
+@@ -0,0 +1,90 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *	The Contents of this file are made available subject to the terms of
++ *	either of the following licenses
++ *
++ *		   - GNU Lesser General Public License Version 2.1
++ *		   - Sun Industry Standards Source License Version 1.1
++ *
++ *	Sun Microsystems Inc., October, 2000
++ *
++ *	GNU Lesser General Public License Version 2.1
++ *	=============================================
++ *	Copyright 2000 by Sun Microsystems, Inc.
++ *	901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *	This library is free software; you can redistribute it and/or
++ *	modify it under the terms of the GNU Lesser General Public
++ *	License version 2.1, as published by the Free Software Foundation.
++ *
++ *	This library is distributed in the hope that it will be useful,
++ *	but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *	Lesser General Public License for more details.
++ *
++ *	You should have received a copy of the GNU Lesser General Public
++ *	License along with this library; if not, write to the Free Software
++ *	Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *	MA	02111-1307	USA
++ *
++ *
++ *	Sun Industry Standards Source License Version 1.1
++ *	=================================================
++ *	The contents of this file are subject to the Sun Industry Standards
++ *	Source License Version 1.1 (the "License"); You may not use this file
++ *	except in compliance with the License. You may obtain a copy of the
++ *	License at http://www.openoffice.org/license.html.
++ *
++ *	Software provided under this License is provided on an "AS IS" basis,
++ *	WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *	WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *	MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *	See the License for the specific provisions governing your rights and
++ *	obligations concerning the Software.
++ *
++ *	The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *	Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *	All Rights Reserved.
++ *
++ *	Contributor(s): _______________________________________
++ *
++ *
++ ************************************************************************/
++#ifndef _SVX_ZOOMTBXCTRL_HXX
++#define _SVX_ZOOMTBXCTRL_HXX
++
++#ifndef _SFXTBXCTRL_HXX
++#include <sfx2/tbxctrl.hxx>
++#endif
++
++#ifndef INCLUDED_SVXDLLAPI_H
++#include <svx/svxdllapi.h>
++#endif
++
++class SVX_DLLPUBLIC SvxZoomToolBoxControl : public SfxToolBoxControl
++{
++public:
++	SFX_DECL_TOOLBOX_CONTROL();
++
++	SvxZoomToolBoxControl(  USHORT          nSlotID,
++    USHORT          nID,
++    ToolBox&        rBox
++     );
++	~SvxZoomToolBoxControl();
++
++	virtual void	StateChanged( USHORT nSID,
++								  SfxItemState eState,
++								  const SfxPoolItem* pState );
++
++	virtual Window*	CreateItemWindow( Window *pParent );
++};
++
++#endif // _SVX_ZOOMTBXCTRL_HXX
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/win32-prebuilt-writingaids-zip.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/win32-prebuilt-writingaids-zip.diff
@@ -0,0 +1,76 @@
+--- dictionaries/prj/build.lst
++++ dictionaries/prj/build.lst
+@@ -1,30 +1,3 @@
+-di      dictionaries :       lingucomponent NULL
+-di	dictionaries					usr1 - all di_mkout NULL
+-di	dictionaries\diclst	nmake	-	all	di_diclst NULL
+-di	dictionaries\af_ZA	nmake	-	all	di_af_ZA di_diclst NULL
+-di	dictionaries\cs_CZ	nmake	-	all	di_cs_CZ di_diclst NULL
+-di	dictionaries\da_DK	nmake	-	all	di_da_DK di_diclst NULL
+-di	dictionaries\de_DE	nmake	-	all	di_de_DE di_diclst NULL
+-di	dictionaries\de_CH	nmake	-	all	di_de_CH di_diclst NULL
+-di	dictionaries\de_AT	nmake	-	all	di_de_AT di_diclst NULL
+-di	dictionaries\en_GB	nmake	-	all	di_en_GB di_en_US di_diclst NULL
+-di	dictionaries\en_US	nmake	-	all	di_en_US di_diclst NULL
+-di	dictionaries\en_ZA	nmake	-	all	di_en_ZA di_diclst NULL
+-di	dictionaries\es_ES	nmake	-	all	di_es_ES di_diclst NULL
+-di	dictionaries\et_EE	nmake	-	all	di_et_EE di_diclst NULL
+-di	dictionaries\fr_FR	nmake	-	all	di_fr_FR di_diclst NULL
+-di	dictionaries\hu_HU	nmake	-	all	di_hu_HU di_diclst NULL
+-di	dictionaries\it_IT	nmake	-	all	di_it_IT di_diclst NULL
+-di	dictionaries\lt_LT	nmake	-	all	di_lt_LT di_diclst NULL
+-di	dictionaries\ne_NP	nmake	-	all	di_ne_NP di_diclst NULL
+-di	dictionaries\nl_NL	nmake	-	all	di_nl_NL di_diclst NULL
+-di      dictionaries\pl_PL      nmake   -       all     di_pl_PL di_diclst NULL
+-di      dictionaries\pt_BR      nmake   -       all     di_pt_BR di_diclst NULL
+-di	dictionaries\ru_RU	nmake	-	all	di_ru_RU di_diclst NULL
+-di      dictionaries\th_TH      nmake   -       all     di_th_TH di_diclst NULL
+-di      dictionaries\sk_SK      nmake   -       all     di_sk_SK di_diclst NULL
+-di	dictionaries\sl_SI	nmake	-	all	di_sl_SI di_diclst NULL
+-di      dictionaries\sv_SE      nmake   -       all     di_sv_SE di_diclst NULL
+-di      dictionaries\sw_TZ      nmake   -       all     di_sw_TZ di_diclst NULL
+-di      dictionaries\zu_ZA      nmake   -       all     di_zu_ZA di_diclst NULL
+-di      dictionaries\util       nmake   -       all     di_util di_af_ZA di_cs_CZ di_da_DK di_de_DE di_de_CH di_de_AT di_en_GB di_en_US di_en_ZA di_es_ES di_et_EE di_fr_FR di_hu_HU di_it_IT di_lt_LT di_ne_NP di_nl_NL di_pl_PL di_pt_BR di_ru_RU di_th_TH di_sk_SK di_sl_SI di_sv_SE di_sw_TZ di_zu_ZA di_diclst NULL
++di      dictionaries :       NULL
++di	dictionaries					usr1 - all di_mkout NULL
++di	dictionaries\prebuilt	nmake	-	all	di_diclst NULL
+--- dictionaries/prj/d.lst
++++ dictionaries/prj/d.lst
+@@ -1,2 +1,2 @@
+ mkdir: %_DEST%\pck%_EXT%
+-..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
++..\prebuilt\writingaids.zip             %_DEST%\pck%_EXT%\writingaids.zip
+--- dictionaries/prebuilt/makefile.mk
++++ dictionaries/prebuilt/makefile.mk
+@@ -0,0 +1,31 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++PRJ=..
++PRJNAME=dictionaries
++ALLTAR : writingaids.zip
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svg-import-text.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svg-import-text.diff
@@ -0,0 +1,463 @@
+--- filter/source/svg/svgimport.cxx	2007-06-25 14:14:23.000000000 +0200
++++ filter/source/svg/svgimport.cxx	2007-06-22 20:31:12.000000000 +0200
+@@ -55,7 +55,7 @@ static svg_status_t impl_BeginGroup( voi
+ 
+     pReader->BeginGroup();
+     // FIXME set opacity?
+-    
++    fprintf( stderr, "BeginGroup\n" );
+     return SVG_STATUS_SUCCESS;
+ }
+ 
+@@ -79,7 +79,7 @@ static svg_status_t impl_EndGroup( void 
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
+ 
+     // FIXME set opacity?
+-
++    fprintf( stderr, "EndGroup\n" );
+     return pReader->EndGroup()? SVG_STATUS_SUCCESS: SVG_STATUS_PARSE_ERROR;
+ }
+ 
+@@ -164,6 +164,7 @@ static svg_status_t impl_SetFillPaint( v
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
+ 
+     pReader->CurrentAttr().SetFillPaint( paint );
++    pReader->CurrentTextAttr().SetFillPaint( paint );
+ 
+     return SVG_STATUS_SUCCESS;
+ }
+@@ -179,32 +180,33 @@ static svg_status_t impl_SetFillRule( vo
+ static svg_status_t impl_SetFontFamily( void *closure, const char *family )
+ {
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
+-    fprintf( stderr, "set_font_family\n" );
+-
++    //fprintf( stderr, "set_font_family\n" );
++    pReader->CurrentTextAttr().SetCharFontName( family );
+     return SVG_STATUS_SUCCESS;
+ }
+ 
+ static svg_status_t impl_SetFontSize( void *closure, double size )
+ {
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
+-    fprintf( stderr, "set_font_size\n" );
++    //fprintf( stderr, "set_font_size\n" );
+ 
++    pReader->CurrentTextAttr().SetCharSize( size );
+     return SVG_STATUS_SUCCESS;
+ }
+ 
+ static svg_status_t impl_SetFontStyle( void *closure, svg_font_style_t font_style )
+ {
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
+-    fprintf( stderr, "set_font_style\n" );
+-
++    //fprintf( stderr, "set_font_style\n" );
++    pReader->CurrentTextAttr().SetCharPosture( font_style );
+     return SVG_STATUS_SUCCESS;
+ }
+ 
+ static svg_status_t impl_SetFontWeight( void *closure, unsigned int font_weight )
+ {
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
+-    fprintf( stderr, "set_font_weight\n" );
+-
++    //fprintf( stderr, "set_font_weight\n" );
++    pReader->CurrentTextAttr().SetCharWeight( font_weight );
+     return SVG_STATUS_SUCCESS;
+ }
+ 
+@@ -375,9 +377,10 @@ static svg_status_t impl_RenderText( voi
+         const char   *utf8 )
+ {
+     SVGReader *pReader = static_cast<SVGReader*>( closure );
++
+     fprintf( stderr, "render_text\n" );
+ 
+-    return SVG_STATUS_SUCCESS;
++    return pReader->Text( x, y, utf8 ) ? SVG_STATUS_SUCCESS: SVG_STATUS_PARSE_ERROR;
+ }
+ 
+ static svg_status_t impl_RenderImage( void *closure,
+--- filter/source/svg/svgreader.cxx	2007-06-25 14:14:23.000000000 +0200
++++ filter/source/svg/svgreader.cxx	2007-06-22 21:28:24.000000000 +0200
+@@ -36,7 +36,9 @@
+ #include "svgreader.hxx"
+ 
+ #include <unotools/processfactory.hxx>
+-
++#include <com/sun/star/awt/Point.hpp>
++#include <com/sun/star/text/XText.hpp>
++#include <cstring>                              // for strlen
+ #include <iostream>
+ 
+ using namespace ::com::sun::star;
+@@ -44,11 +46,14 @@ using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::drawing;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::awt;           // for Point
++using namespace ::com::sun::star::text;          // for XText
+ using namespace ::basegfx;
+ 
+ // consts //
+ 
+-const double USER_UNIT = 10.0; // FIXME? 10.0 considered a nice magic value ;-)
++// const double USER_UNIT = 10.0; // FIXME? 10.0 considered a nice magic value ;-)
++const double USER_UNIT = 25.0; // FIXME? 25.0 maybe a more sensible value but always magic ;-)
+ 
+ // forward declarations //
+ 
+@@ -60,6 +65,7 @@ sal_Int32 ToInt( const svg_length_t *len
+ static const rtl::OUString RECTANGLE_SHAPE(        RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.RectangleShape" ) );
+ static const rtl::OUString ELLIPSE_SHAPE(          RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.EllipseShape" ) );
+ static const rtl::OUString SHAPE_COLLECTION(       RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.ShapeCollection" ) );
++static const rtl::OUString TEXT_SHAPE(             RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.TextShape" ) );
+ 
+ static const rtl::OUString PROPERTY_CORNER_RADIUS( RTL_CONSTASCII_USTRINGPARAM( "CornerRadius" ) );
+ 
+@@ -73,6 +79,16 @@ static const rtl::OUString PROPERTY_FILL
+ 
+ static const rtl::OUString PROPERTY_TRANSFORMATION(RTL_CONSTASCII_USTRINGPARAM( "Transformation" ) );
+ 
++static const rtl::OUString PROPERTY_TEXT_AUTO_GROW_HEIGHT(    RTL_CONSTASCII_USTRINGPARAM( "TextAutoGrowHeight" ) );
++static const rtl::OUString PROPERTY_TEXT_AUTO_GROW_WIDTH(     RTL_CONSTASCII_USTRINGPARAM( "TextAutoGrowWidth" ) );
++static const rtl::OUString PROPERTY_CHAR_HEIGHT(              RTL_CONSTASCII_USTRINGPARAM( "CharHeight" ) );
++static const rtl::OUString PROPERTY_CHAR_WEIGHT(              RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) );
++static const rtl::OUString PROPERTY_CHAR_COLOR(               RTL_CONSTASCII_USTRINGPARAM( "CharColor" ) );
++static const rtl::OUString PROPERTY_CHAR_POSTURE(             RTL_CONSTASCII_USTRINGPARAM( "CharPosture" ) );
++static const rtl::OUString PROPERTY_CHAR_FONT_NAME(           RTL_CONSTASCII_USTRINGPARAM( "CharFontName" ) );
++
++
++
+ // SVGAttributes //
+ 
+ SVGAttributes::SVGAttributes()
+@@ -289,10 +306,121 @@ void SVGAttributes::Transform( double a,
+ #endif
+ }
+ 
+-// SVGGroup //
+ 
+-SVGGroup::SVGGroup( const SVGAttributes &rAttr )
++
++
++//-----------------------------------------------------------------------------
++// SVGTextAttributes 
++//
++
++SVGTextAttributes::SVGTextAttributes()
++{
++}
++
++SVGTextAttributes& SVGTextAttributes::operator=( const SVGTextAttributes &rAttr )
++{
++
++    m_aCharHeight   = rAttr.m_aCharHeight;
++    m_aCharWeight   = rAttr.m_aCharWeight;
++    m_aCharColor    = rAttr.m_aCharColor;
++    m_aCharFontName = rAttr.m_aCharFontName;
++    m_aCharPosture  = rAttr.m_aCharPosture;
++
++    return *this;
++}
++
++void SVGTextAttributes::ApplyProperties( Reference< XPropertySet > &xPropertySet )
++{
++    if ( !xPropertySet.is() )
++        return;
++
++#define APPLY_PROPERTY( name, value ) \
++    if ( !!value && xPropertySet->getPropertySetInfo()->hasPropertyByName( name ) ) \
++    { \
++        xPropertySet->setPropertyValue( name, makeAny( *value ) ); \
++    }
++
++    APPLY_PROPERTY( PROPERTY_CHAR_HEIGHT,     m_aCharHeight   );
++    APPLY_PROPERTY( PROPERTY_CHAR_WEIGHT,     m_aCharWeight   );
++    APPLY_PROPERTY( PROPERTY_CHAR_POSTURE,    m_aCharPosture  );
++    APPLY_PROPERTY( PROPERTY_CHAR_FONT_NAME,  m_aCharFontName );
++    APPLY_PROPERTY( PROPERTY_CHAR_COLOR,      m_aCharColor    );
++
++#undef APPLY_PROPERTY
++}
++
++void SVGTextAttributes::SetCharSize( double size )
++{
++    m_aCharHeight = boost::optional<float>(size);
++}
++
++
++// for reference look at:
++// http://www.w3.org/TR/SVG11/text.html#FontPropertiesUsedBySVG
++// http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-weight
++// and read the documentation of the constants definined into the
++// namespace ::com::sun::star::awt::FontWeight
++void SVGTextAttributes::SetCharWeight( unsigned int font_weight )
++{
++    switch( font_weight )
++    {
++        case 100 : m_aCharWeight = boost::optional<float>(FontWeight::THIN); break;
++        case 200 : m_aCharWeight = boost::optional<float>(FontWeight::LIGHT); break;
++        case 300 : m_aCharWeight = boost::optional<float>(FontWeight::SEMILIGHT); break;
++        case 400 : m_aCharWeight = boost::optional<float>(FontWeight::NORMAL); break;
++        case 500 : m_aCharWeight = boost::optional<float>(FontWeight::SEMIBOLD); break;
++        case 700 : m_aCharWeight = boost::optional<float>(FontWeight::BOLD); break;
++        case 800 : m_aCharWeight = boost::optional<float>(FontWeight::ULTRABOLD); break;
++        case 900 : m_aCharWeight = boost::optional<float>(FontWeight::BLACK); break;
++        default  : m_aCharWeight = boost::optional<float>(FontWeight::DONTKNOW);
++    }
++}
++
++void SVGTextAttributes::SetCharPosture( svg_font_style_t font_style )
++{
++    switch( font_style )
++    {
++        case SVG_FONT_STYLE_NORMAL :  m_aCharPosture = boost::optional< ::com::sun::star::awt::FontSlant >(FontSlant_NONE); break;
++        case SVG_FONT_STYLE_ITALIC :  m_aCharPosture = boost::optional< ::com::sun::star::awt::FontSlant >(FontSlant_ITALIC); break;
++        case SVG_FONT_STYLE_OBLIQUE : m_aCharPosture = boost::optional< ::com::sun::star::awt::FontSlant >(FontSlant_OBLIQUE); break;
++        default :                     m_aCharPosture = boost::optional< ::com::sun::star::awt::FontSlant >(FontSlant_DONTKNOW);
++    }
++}
++
++void SVGTextAttributes::SetCharFontName( const char *family )
++{
++    if ( !family ) return;
++
++    m_aCharFontName = boost::optional< ::rtl::OUString >(rtl::OUString( family, std::strlen(family), RTL_TEXTENCODING_UTF8 ));
++}
++
++
++void SVGTextAttributes::SetFillPaint( const svg_paint_t *paint )
++{
++    if( !paint ) return;
++
++    SetCharColor( &(paint->p.color) );
++}
++
++void SVGTextAttributes::SetCharColor( const svg_color_t *color )
++{
++    if ( !color ) return;
++
++    m_aCharColor = boost::optional< ::com::sun::star::util::Color >(( svg_color_get_red( color ) << 16 ) +
++                   ( svg_color_get_green( color )  << 8 ) +
++                   ( svg_color_get_blue( color ) ) );
++}
++
++
++
++
++//-----------------------------------------------------------------------------
++// SVGGroup
++//
++
++SVGGroup::SVGGroup( const SVGAttributes &rAttr, const SVGTextAttributes &rTextAttr )
+     : m_aAttr( rAttr ),
++      m_aTextAttr( rTextAttr ),
+       m_xShapes( utl::getProcessServiceFactory()->createInstance( SHAPE_COLLECTION ), UNO_QUERY )
+ {
+ }
+@@ -307,7 +435,12 @@ void SVGGroup::Add( const Reference< XSh
+     m_xShapes->add( xShape );
+ }
+ 
+-// SVGReader //
++
++
++
++//-----------------------------------------------------------------------------
++// SVGReader
++//
+ 
+ SVGReader::SVGReader( const Reference< XMultiServiceFactory >& xServiceFactory,
+                       const Reference< XShapes >& xShapes )
+@@ -326,14 +459,28 @@ SVGAttributes& SVGReader::CurrentAttr()
+         return m_aGroups.top().Attr();
+ }
+ 
++SVGTextAttributes& SVGReader::CurrentTextAttr()
++{
++    if ( m_bReadingElement || m_aGroups.empty() )
++        return m_aTextAttr;
++    else
++        return m_aGroups.top().TextAttr();
++}
++
+ void SVGReader::BeginElement()
+ {
+     m_bReadingElement = true;
+ 
+     if ( m_aGroups.empty() )
++    {
+         m_aElementAttr = SVGAttributes();
++        m_aTextAttr = SVGTextAttributes();
++    }
+     else
++    {
+         m_aElementAttr = m_aGroups.top().Attr();
++        m_aTextAttr = m_aGroups.top().TextAttr();
++    }
+ }
+ 
+ void SVGReader::BeginGroup()
+@@ -447,14 +594,14 @@ bool SVGReader::Ellipse( svg_length_t *c
+     CreateShape( ELLIPSE_SHAPE, xPropertySet );
+ 
+     Reference< XShape > xShape( xPropertySet, UNO_QUERY );
+-    fprintf( stderr, "Position (before):\n  %d, %d\n", xShape->getPosition().X, xShape->getPosition().Y );
++    fprintf( stderr, "Position (before):\n  %d, %d\n", (int)(xShape->getPosition().X), (int)(xShape->getPosition().Y) );
+             
+     // position, size, shear and rotate
+     m_aElementAttr.ApplyTransformation( xPropertySet,
+             nX, nY, 2*nRadiusX, 2*nRadiusY,
+             nRadiusX, nRadiusY);
+ 
+-    fprintf( stderr, "Position (after):\n  %d, %d\n", xShape->getPosition().X, xShape->getPosition().Y );
++    fprintf( stderr, "Position (after):\n  %d, %d\n", (int)(xShape->getPosition().X), (int)(xShape->getPosition().Y) );
+     
+     return true;
+ }
+@@ -473,6 +620,49 @@ void SVGReader::CreateShape( const rtl::
+     m_aElementAttr.ApplyProperties( xPropertySet );
+ }
+ 
++
++bool SVGReader::Text( svg_length_t *x, svg_length_t *y, const char *utf8 )
++{
++    if ( m_aGroups.empty() )
++        return false; // error
++
++    fprintf( stderr, ">> SVGReader::Text\n" );
++
++    Point Pos;
++    Pos.X = ToInt( x );
++    Pos.Y = ToInt( y );
++
++    rtl::OUString content( utf8, std::strlen(utf8), RTL_TEXTENCODING_UTF8 );
++
++    // create text shape instance
++    Reference< XShape > xShape( m_xServiceFactory->createInstance( TEXT_SHAPE ), UNO_QUERY );
++    
++    // add to the document and to the top group
++    m_xShapes->add( xShape );
++    m_aGroups.top().Add( xShape );
++
++    Reference< XPropertySet> xPropertySet( xShape, UNO_QUERY );
++    //m_aElementAttr.ApplyProperties( xPropertySet );
++
++    // so the shape grow/shirnk automatically to fit the wrapped text
++    xPropertySet->setPropertyValue( PROPERTY_TEXT_AUTO_GROW_HEIGHT, makeAny( true ) );
++    xPropertySet->setPropertyValue( PROPERTY_TEXT_AUTO_GROW_WIDTH, makeAny( true ) );
++
++    xShape->setPosition( Pos );
++    
++    // set text shape content
++    Reference< XText > xText(xShape, UNO_QUERY);
++    xText->setString( content );
++
++    // set text properties
++    Reference< XPropertySet> xTextPropertySet( xText, UNO_QUERY );
++    m_aTextAttr.ApplyProperties( xTextPropertySet );
++
++
++
++    return true;
++}
++
+ sal_Int32 ToInt( const svg_length_t *length )
+ {
+     if ( !length )
+@@ -487,7 +677,7 @@ sal_Int32 ToInt( const svg_length_t *len
+         case SVG_LENGTH_UNIT_MM: return sal_Int32( length->value * 100.0 );
+         case SVG_LENGTH_UNIT_PC: fprintf( stderr, "TODO: legth type PC not implemented.\n" ); return 1000;
+         case SVG_LENGTH_UNIT_PCT: fprintf( stderr, "TODO: legth type PCT not implemented.\n" ); return 1000;
+-        case SVG_LENGTH_UNIT_PT: fprintf( stderr, "TODO: legth type PT not implemented.\n" ); return 1000;
++        case SVG_LENGTH_UNIT_PT: return sal_Int32( length->value * 35.277 );
+         case SVG_LENGTH_UNIT_PX: return sal_Int32( length->value * USER_UNIT );
+         default: fprintf( stderr, "Unknown length type\n" );
+     }
+--- filter/source/svg/svgreader.hxx	2007-06-25 14:14:23.000000000 +0200
++++ filter/source/svg/svgreader.hxx	2007-06-22 20:37:12.000000000 +0200
+@@ -48,6 +48,9 @@
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ #include <com/sun/star/uno/XInterface.hpp>
+ #include <com/sun/star/util/Color.hpp>
++#include <com/sun/star/awt/FontSlant.hpp>
++#include <com/sun/star/awt/FontWeight.hpp>
++
+ 
+ #include <basegfx/matrix/b2dhommatrix.hxx>
+ 
+@@ -89,16 +92,46 @@ public:
+     void                    Transform( double a, double b, double c, double d, double e, double f );
+ };
+ 
++
++class SVGTextAttributes
++{
++    // TODO more attributes...
++    boost::optional< float >                                   m_aCharHeight;
++    boost::optional< float >                                   m_aCharWeight;
++    boost::optional< ::com::sun::star::util::Color >           m_aCharColor;
++    boost::optional< ::rtl::OUString >                         m_aCharFontName;
++    boost::optional< ::com::sun::star::awt::FontSlant >        m_aCharPosture;
++
++
++public:
++    SVGTextAttributes();
++
++    SVGTextAttributes&          operator=( const SVGTextAttributes &rAttr );
++
++    void                    ApplyProperties( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &xPropertySet );
++
++    void                    SetCharSize( double size );
++    void                    SetCharWeight( unsigned int font_weight );
++    void                    SetCharColor( const svg_color_t *color );
++    void                    SetCharPosture( svg_font_style_t font_style );
++    void                    SetCharFontName( const char *family );
++    void                    SetFillPaint( const svg_paint_t *paint );
++
++};
++
++
+ class SVGGroup
+ {
+     SVGAttributes           m_aAttr;
++    SVGTextAttributes       m_aTextAttr;
+ 
+     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes > m_xShapes;
+ 
+ public:
+-    SVGGroup( const SVGAttributes &rAttr = SVGAttributes() );
++    SVGGroup( const SVGAttributes &rAttr = SVGAttributes(), const SVGTextAttributes &rTextAttr = SVGTextAttributes() );
+ 
+     SVGAttributes&          Attr() { return m_aAttr; }
++    SVGTextAttributes&      TextAttr() { return m_aTextAttr; }
+     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapeGroup > AsShapeGroup( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapeGrouper >& xShapeGrouper );
+ 
+     void                    Add( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape );
+@@ -116,6 +149,7 @@ class SVGReader
+ 
+     std::stack< SVGGroup >  m_aGroups;
+     SVGAttributes           m_aElementAttr;
++    SVGTextAttributes       m_aTextAttr;
+ 
+     ::com::sun::star::awt::Size m_aViewportSize;
+     
+@@ -125,6 +159,7 @@ public:
+                const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xShapes );
+ 
+     SVGAttributes&          CurrentAttr();
++    SVGTextAttributes&      CurrentTextAttr();
+ 
+     void                    BeginElement();
+     void                    BeginGroup();
+@@ -138,6 +173,8 @@ public:
+     bool                    Ellipse( svg_length_t *cx, svg_length_t *cy,
+                                      svg_length_t *rx, svg_length_t *ry );
+ 
++    bool                    Text( svg_length_t *x, svg_length_t *y, const char *utf8 );
++
+ protected:
+     void                    CreateShape( const ::rtl::OUString & rServiceName,
+                                          ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &xPropertySet );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extras_fonts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extras_fonts.diff
@@ -0,0 +1,9 @@
+--- extras/prj/d.lst.orig	2007-12-25 21:49:23.000000000 +0100
++++ extras/prj/d.lst	2007-12-25 20:03:21.000000000 +0100
+@@ -9,5 +9,6 @@
+ ..\%COMMON_OUTDIR%\bin\wordbook_en-US.zip %COMMON_DEST%\pck%_EXT%\wordbook_zh-CN.zip
+ ..\%COMMON_OUTDIR%\bin\wordbook_en-US.zip %COMMON_DEST%\pck%_EXT%\wordbook_zh-TW.zip
+ ..\source\truetype\symbol\*.ttf %COMMON_DEST%\pck%_EXT%\*.ttf
++..\source\truetype\decorative\*.ttf %COMMON_DEST%\pck%_EXT%\*.ttf
+ ..\source\shellnew\soffice.* %COMMON_DEST%\pck%_EXT%\soffice.*
+ ..\unx\source\fonts\fonts.dir %COMMON_DEST%\pck%_EXT%\openoffice\fonts.dir
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/xmlhelp-work-with-symlinks.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/xmlhelp-work-with-symlinks.diff
@@ -0,0 +1,70 @@
+--- xmlhelp/source/cxxhelp/provider/databases.cxx.old	2006-11-01 15:07:23.000000000 +0100
++++ xmlhelp/source/cxxhelp/provider/databases.cxx	2007-08-29 17:54:22.000000000 +0200
+@@ -45,6 +45,9 @@
+ #ifndef _OSL_THREAD_H_
+ #include <osl/thread.h>
+ #endif
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
++#endif
+ #ifndef _RTL_URI_HXX_
+ #include <rtl/uri.hxx>
+ #endif
+@@ -181,17 +184,21 @@ static bool impl_getZipFile(
+         const rtl::OUString & rZipName,
+         rtl::OUString & rFileName )
+ {
++    rtl::OUString aWorkingDir;
++    osl_getProcessWorkingDir( &aWorkingDir.pData );
+     const rtl::OUString *pPathArray = rImagesZipPaths.getArray();
+     for ( int i = 0; i < rImagesZipPaths.getLength(); ++i )
+     {
+-        rFileName = pPathArray[ i ];
+-        if ( rFileName.getLength() )
++        rtl::OUString aFileName = pPathArray[ i ];
++        if ( aFileName.getLength() )
+         {
+-            if ( 1 + rFileName.lastIndexOf( '/' ) != rFileName.getLength() )
++            if ( 1 + aFileName.lastIndexOf( '/' ) != aFileName.getLength() )
+             {
+-                rFileName += rtl::OUString::createFromAscii( "/" );
++                aFileName += rtl::OUString::createFromAscii( "/" );
+             }
+-            rFileName += rZipName;
++            aFileName += rZipName;
++            // the icons are not read when the URL is a symlink
++            osl::File::getAbsoluteFileURL( aWorkingDir, aFileName, rFileName );
+ 
+             // test existence
+             osl::DirectoryItem aDirItem;
+@@ -1044,7 +1051,9 @@ void Databases::cascadingStylesheet( con
+ 				osl::FileBase::E_None == aFile.open( OpenFlag_Read )                 &&
+ 				osl::FileBase::E_None == aDirItem.getFileStatus( aStatus ) )
+ 			{
+-				m_nCustomCSSDocLength = int( aStatus.getFileSize() );
++				sal_uInt64 nSize;
++				aFile.getSize( nSize );
++				m_nCustomCSSDocLength = (int)nSize;
+ 				m_pCustomCSSDoc = new char[ 1 + m_nCustomCSSDocLength ];
+ 				m_pCustomCSSDoc[ m_nCustomCSSDocLength ] = 0;
+ 				sal_uInt64 a = m_nCustomCSSDocLength,b = m_nCustomCSSDocLength;
+--- xmlhelp/source/treeview/tvread.cxx.old	2006-11-01 14:50:18.000000000 +0100
++++ xmlhelp/source/treeview/tvread.cxx	2007-08-29 17:55:33.000000000 +0200
+@@ -789,9 +789,14 @@ ConfigData TVChildTarget::init( const Re
+ 				rtl::OUString baseName = aFileName.copy(0,idx_).toAsciiLowerCase();
+ 				if(! showBasic && baseName.compareToAscii("sbasic") == 0 )
+ 				  continue;
+-				
+-                configData.filelen[j] = aFileStatus.getFileSize();
+-				configData.fileurl[j++] = aFileUrl ;
++
++				osl::File aFile( aFileUrl );
++				if( osl::FileBase::E_None == aFile.open( OpenFlag_Read ) )
++				{
++					aFile.getSize( configData.filelen[j] );
++				        configData.fileurl[j++] = aFileUrl ;
++					aFile.close();
++				}
+ 			  }
+ 		  }
+ 		aDirectory.close();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-fpicker.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-fpicker.diff
@@ -0,0 +1,5 @@
+--- fpicker/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ fpicker/prj/tests.lst	2007-09-07 12:49:18.000000000 +0200
+@@ -0,0 +1,2 @@
++fp   fpicker\source\win32\filepicker\workbench          nmake - w   fp_source_win32_filepicker_workbench NULL
++fp   fpicker\source\win32\folderpicker\workbench        nmake - w   fp_source_win32_folderpicker_workbench NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-offapi.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-offapi.diff
@@ -0,0 +1,428 @@
+cvs diff: Diffing offapi
+cvs diff: Diffing offapi/com
+cvs diff: Diffing offapi/com/sun
+cvs diff: Diffing offapi/com/sun/star
+cvs diff: Diffing offapi/com/sun/star/accessibility
+cvs diff: Diffing offapi/com/sun/star/animations
+cvs diff: Diffing offapi/com/sun/star/auth
+cvs diff: Diffing offapi/com/sun/star/awt
+Index: offapi/com/sun/star/awt/MaxChildrenException.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/MaxChildrenException.idl
+diff -N offapi/com/sun/star/awt/MaxChildrenException.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/MaxChildrenException.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,27 @@
++#ifndef __com_sun_star_awt_MaxChildrenException_idl__ 
++#define __com_sun_star_awt_MaxChildrenException_idl__ 
++
++#ifndef __com_sun_star_uno_Exception_idl__
++#include <com/sun/star/uno/Exception.idl>
++#endif
++
++//============================================================================= 
++
++module com {  module sun {  module star {  module awt {
++
++//============================================================================= 
++ 
++/** This exception is thrown when adding a child to a container that is full.
++
++	@see     XLayoutContainer
++	@see     com::sun::star::awt::XLayoutContainer::addChild
++ */
++published exception MaxChildrenException: com::sun::star::uno::Exception
++{ 
++}; 
++ 
++//============================================================================= 
++ 
++}; }; }; };
++
++#endif
+Index: offapi/com/sun/star/awt/XDialog2.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/XDialog2.idl
+diff -N offapi/com/sun/star/awt/XDialog2.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/XDialog2.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,26 @@
++#ifndef __com_sun_star_awt_XDialog2_idl__ 
++#define __com_sun_star_awt_XDialog2_idl__ 
++ 
++#ifndef __com_sun_star_awt_XDialog_idl__
++#include <com/sun/star/awt/XDialog.idl> 
++#endif 
++ 
++ 
++//============================================================================= 
++ 
++module com {  module sun {  module star {  module awt {
++ 
++//============================================================================= 
++ 
++/** Makes it possible to end a dialog.
++ */
++published interface XDialog2: com::sun::star::awt::XDialog
++{ 
++    void endDialog ( [in] long Result );
++}; 
++ 
++//============================================================================= 
++ 
++}; }; }; };  
++ 
++#endif 
+Index: offapi/com/sun/star/awt/XLayoutContainer.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/XLayoutContainer.idl
+diff -N offapi/com/sun/star/awt/XLayoutContainer.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/XLayoutContainer.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,75 @@
++#ifndef __com_sun_star_awt_XLayoutContainer_idl__ 
++#define __com_sun_star_awt_XLayoutContainer_idl__ 
++
++#ifndef __com_sun_star_awt_XLayoutConstrains_idl__ 
++#include <com/sun/star/awt/XLayoutConstrains.idl> 
++#endif 
++#ifndef __com_sun_star_awt_Rectangle_idl__ 
++#include <com/sun/star/awt/Rectangle.idl> 
++#endif 
++#ifndef __com_sun_star_beans_XPropertySet_idl__ 
++#include <com/sun/star/beans/XPropertySet.idl> 
++#endif 
++#ifndef __com_sun_star_container_XChild_idl__ 
++#include <com/sun/star/container/XChild.idl> 
++#endif
++#ifndef __com_sun_star_awt_MaxChildrenException_idl__ 
++#include <com/sun/star/awt/MaxChildrenException.idl> 
++#endif
++#ifndef __com_sun_star_awt_XLayoutUnit_idl__ 
++#include <com/sun/star/awt/XLayoutUnit.idl> 
++#endif
++
++//============================================================================= 
++
++module com {  module sun {  module star {  module awt {
++
++//============================================================================= 
++
++published interface XLayoutUnit;
++
++/** specifies the layout constraints for a surrounding container.
++ */
++published interface XLayoutContainer: com::sun::star::container::XChild
++{
++	/* Add/remove a child. Some containers provide an interface for
++	   adding children which you should use. */
++    void addChild( [in] com::sun::star::awt::XLayoutConstrains Child )
++		raises( com::sun::star::awt::MaxChildrenException ); 
++    void removeChild( [in] com::sun::star::awt::XLayoutConstrains Child );
++	sequence< com::sun::star::awt::XLayoutConstrains > getChildren();
++
++	/* Read/modify some child layout properties. XPropertySet provides a
++	   rich API that allows, e.g., for introspection.
++	   Should rarely be a need to use; containers shall provide an interface
++	   for setting properties more confortably. */
++    com::sun::star::beans::XPropertySet getChildProperties(
++		[in] com::sun::star::awt::XLayoutConstrains Child );
++
++	/* Set at initilization, this object should be notified when a containers state
++	   changes, that may affect its size, to queue a layout re-calculation. */
++	void setLayoutUnit( [in] com::sun::star::awt::XLayoutUnit Unit );
++
++	// TEMP: no need for this...
++	com::sun::star::awt::XLayoutUnit getLayoutUnit();
++
++	/* To be used by the parent for the purpose of layout management. 
++	   For widgets, use XWindow::setPosSize() */
++    void allocateArea( [in] com::sun::star::awt::Rectangle NewArea );
++
++	/* Used by the layouting unit to evaluate size damage, and force a
++	   re-allocation. */
++	com::sun::star::awt::Size getRequestedSize();
++	com::sun::star::awt::Rectangle getAllocatedArea();
++
++	/* For flow layouting (e.g. wrap-able labels). TODO: We might want to
++	   re-design this approach -- check XLayoutConstrains::calcAdjustedSize(). */
++	long getHeightForWidth( [in] long Width );
++	boolean hasHeightForWidth();
++};
++ 
++//============================================================================= 
++
++}; }; }; };
++
++#endif
+Index: offapi/com/sun/star/awt/XLayoutFlow.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/XLayoutFlow.idl
+diff -N offapi/com/sun/star/awt/XLayoutFlow.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/XLayoutFlow.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,29 @@
++#ifndef __com_sun_star_awt_XLayoutFlow_idl__ 
++#define __com_sun_star_awt_XLayoutFlow_idl__ 
++
++//============================================================================= 
++
++#include <com/sun/star/uno/XInterface.idl> 
++ 
++module com {  module sun {  module star {  module awt {
++ 
++//============================================================================= 
++ 
++/** Enables height-for-width layout negociations, which allows for label wrapping
++ *  and flow containers. Can be implemented by either a container or an ordinary widget;
++ *  whether its parent will honor it is another story, so keep implementing
++ *  getMinimumSize().
++ */
++published interface XLayoutFlow
++{
++	long getHeightForWidth( [in] long Width );
++
++	/* Allow the container/widget to toggle the functionality. */
++	boolean hasHeightForWidth();
++};
++ 
++//============================================================================= 
++ 
++}; }; }; };
++ 
++#endif 
+Index: offapi/com/sun/star/awt/XLayoutFlowContainer.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/XLayoutFlowContainer.idl
+diff -N offapi/com/sun/star/awt/XLayoutFlowContainer.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/XLayoutFlowContainer.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,25 @@
++#ifndef __com_sun_star_awt_XLayoutUnit_idl__ 
++#define __com_sun_star_awt_XLayoutUnit_idl__ 
++
++#include <com/sun/star/awt/XLayoutContainer.idl> 
++ 
++//============================================================================= 
++ 
++module com {  module sun {  module star {  module awt {
++ 
++//============================================================================= 
++ 
++/** Responsible to evaluate size damages and force a re-calculation. Containers
++    should let it know of state changes that may affects their size.
++ *  All children of a top-level window should share the same object.
++ */
++published interface XLayoutContainer
++{
++	void queueResize( [in] com::sun::star::awt::XLayoutContainer Container );
++};
++ 
++//============================================================================= 
++ 
++}; }; }; };
++ 
++#endif 
+Index: offapi/com/sun/star/awt/XLayoutRoot.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/XLayoutRoot.idl
+diff -N offapi/com/sun/star/awt/XLayoutRoot.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/XLayoutRoot.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,31 @@
++#ifndef __com_sun_star_awt_XLayoutRoot_idl__ 
++#define __com_sun_star_awt_XLayoutRoot_idl__ 
++ 
++#ifndef __com_sun_star_awt_XLayoutContainer_idl__ 
++#include <com/sun/star/awt/XLayoutContainer.idl> 
++#endif 
++#ifndef __com_sun_star_container_XNameAccess_idl__ 
++#include <com/sun/star/container/XNameAccess.idl> 
++#endif 
++#ifndef __com_sun_star_container_XNameContainer_idl__ 
++#include <com/sun/star/container/XNameContainer.idl> 
++#endif 
++ 
++//============================================================================= 
++ 
++module com {  module sun {  module star {  module awt {
++ 
++//============================================================================= 
++ 
++/** specifies an interface for a top-level layoutable widget
++ */
++published interface XLayoutRoot: com::sun::star::container::XNameAccess
++{
++    com::sun::star::awt::XLayoutContainer getLayoutContainer();
++}; 
++ 
++//============================================================================= 
++ 
++}; }; }; };  
++ 
++#endif 
+Index: offapi/com/sun/star/awt/XLayoutUnit.idl
+===================================================================
+RCS file: offapi/com/sun/star/awt/XLayoutUnit.idl
+diff -N offapi/com/sun/star/awt/XLayoutUnit.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/awt/XLayoutUnit.idl	8 Feb 2008 18:46:21 -0000	1.1.2.1
+@@ -0,0 +1,29 @@
++#ifndef __com_sun_star_awt_XLayoutUnit_idl__ 
++#define __com_sun_star_awt_XLayoutUnit_idl__ 
++
++#ifndef __com_sun_star_awt_XLayoutContainer_idl__ 
++#include <com/sun/star/awt/XLayoutContainer.idl> 
++#endif
++
++//============================================================================= 
++ 
++module com {  module sun {  module star {  module awt {
++ 
++//============================================================================= 
++
++published interface XLayoutContainer;
++
++/** Responsible to evaluate size damages and force a re-calculation. Containers
++    should let it know of state changes that may affects their size.
++ *  All children of a top-level window should share the same object.
++ */
++published interface XLayoutUnit
++{
++	void queueResize( [in] com::sun::star::awt::XLayoutContainer Container );
++};
++ 
++//============================================================================= 
++ 
++}; }; }; };
++ 
++#endif
+Index: offapi/com/sun/star/awt/makefile.mk
+===================================================================
+RCS file: /cvs/api/offapi/com/sun/star/awt/makefile.mk,v
+retrieving revision 1.45
+retrieving revision 1.45.16.1
+diff -p -u -u -p -b -w -B -r1.45 -r1.45.16.1
+--- offapi/com/sun/star/awt/makefile.mk	29 Jan 2008 15:11:34 -0000	1.45
++++ offapi/com/sun/star/awt/makefile.mk	11 Feb 2008 15:14:37 -0000	1.45.16.1
+@@ -321,6 +321,17 @@ IDLFILES=\
+ 	XWindowPeer.idl\
+ 	XMenuExtended.idl
+ 
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++IDLFILES+=\
++	MaxChildrenException.idl\
++	XDialog2.idl\
++	XLayoutContainer.idl\
++	XLayoutFlow.idl\
++	XLayoutFlowContainer.idl\
++	XLayoutRoot.idl\
++	XLayoutUnit.idl
++.ENDIF # ENABLE_LAYOUT == TRUE
++
+ # ------------------------------------------------------------------
+ 
+ .INCLUDE :  target.mk
+cvs diff: Diffing offapi/com/sun/star/awt/tree
+cvs diff: Diffing offapi/com/sun/star/chart
+cvs diff: Diffing offapi/com/sun/star/chart2
+cvs diff: Diffing offapi/com/sun/star/chart2/data
+cvs diff: Diffing offapi/com/sun/star/configuration
+cvs diff: Diffing offapi/com/sun/star/configuration/backend
+cvs diff: Diffing offapi/com/sun/star/configuration/backend/xml
+cvs diff: Diffing offapi/com/sun/star/configuration/bootstrap
+cvs diff: Diffing offapi/com/sun/star/datatransfer
+cvs diff: Diffing offapi/com/sun/star/datatransfer/clipboard
+cvs diff: Diffing offapi/com/sun/star/datatransfer/dnd
+cvs diff: Diffing offapi/com/sun/star/deployment
+cvs diff: Diffing offapi/com/sun/star/deployment/test
+cvs diff: Diffing offapi/com/sun/star/deployment/ui
+cvs diff: Diffing offapi/com/sun/star/document
+cvs diff: Diffing offapi/com/sun/star/drawing
+cvs diff: Diffing offapi/com/sun/star/drawing/framework
+cvs diff: Diffing offapi/com/sun/star/embed
+cvs diff: Diffing offapi/com/sun/star/form
+cvs diff: Diffing offapi/com/sun/star/form/binding
+cvs diff: Diffing offapi/com/sun/star/form/component
+cvs diff: Diffing offapi/com/sun/star/form/control
+cvs diff: Diffing offapi/com/sun/star/form/inspection
+cvs diff: Diffing offapi/com/sun/star/form/runtime
+cvs diff: Diffing offapi/com/sun/star/form/submission
+cvs diff: Diffing offapi/com/sun/star/form/validation
+cvs diff: Diffing offapi/com/sun/star/formula
+cvs diff: Diffing offapi/com/sun/star/frame
+cvs diff: Diffing offapi/com/sun/star/frame/status
+cvs diff: Diffing offapi/com/sun/star/gallery
+cvs diff: Diffing offapi/com/sun/star/geometry
+cvs diff: Diffing offapi/com/sun/star/graphic
+cvs diff: Diffing offapi/com/sun/star/i18n
+cvs diff: Diffing offapi/com/sun/star/image
+cvs diff: Diffing offapi/com/sun/star/inspection
+cvs diff: Diffing offapi/com/sun/star/installation
+cvs diff: Diffing offapi/com/sun/star/ldap
+cvs diff: Diffing offapi/com/sun/star/linguistic2
+cvs diff: Diffing offapi/com/sun/star/logging
+cvs diff: Diffing offapi/com/sun/star/mail
+cvs diff: Diffing offapi/com/sun/star/media
+cvs diff: Diffing offapi/com/sun/star/mozilla
+cvs diff: Diffing offapi/com/sun/star/packages
+cvs diff: Diffing offapi/com/sun/star/packages/manifest
+cvs diff: Diffing offapi/com/sun/star/packages/zip
+cvs diff: Diffing offapi/com/sun/star/plugin
+cvs diff: Diffing offapi/com/sun/star/presentation
+cvs diff: Diffing offapi/com/sun/star/presentation/textfield
+cvs diff: Diffing offapi/com/sun/star/rendering
+cvs diff: Diffing offapi/com/sun/star/report
+cvs diff: Diffing offapi/com/sun/star/report/inspection
+cvs diff: Diffing offapi/com/sun/star/resource
+cvs diff: Diffing offapi/com/sun/star/scanner
+cvs diff: Diffing offapi/com/sun/star/script
+cvs diff: Diffing offapi/com/sun/star/script/browse
+cvs diff: Diffing offapi/com/sun/star/script/provider
+cvs diff: Diffing offapi/com/sun/star/sdb
+cvs diff: Diffing offapi/com/sun/star/sdb/application
+cvs diff: Diffing offapi/com/sun/star/sdb/tools
+cvs diff: Diffing offapi/com/sun/star/sdbc
+cvs diff: Diffing offapi/com/sun/star/sdbcx
+cvs diff: Diffing offapi/com/sun/star/security
+cvs diff: Diffing offapi/com/sun/star/setup
+cvs diff: Diffing offapi/com/sun/star/sheet
+cvs diff: Diffing offapi/com/sun/star/smarttags
+cvs diff: Diffing offapi/com/sun/star/style
+cvs diff: Diffing offapi/com/sun/star/svg
+cvs diff: Diffing offapi/com/sun/star/sync
+cvs diff: Diffing offapi/com/sun/star/sync2
+cvs diff: Diffing offapi/com/sun/star/system
+cvs diff: Diffing offapi/com/sun/star/table
+cvs diff: Diffing offapi/com/sun/star/task
+cvs diff: Diffing offapi/com/sun/star/text
+cvs diff: Diffing offapi/com/sun/star/text/fieldmaster
+cvs diff: Diffing offapi/com/sun/star/text/textfield
+cvs diff: Diffing offapi/com/sun/star/text/textfield/docinfo
+cvs diff: Diffing offapi/com/sun/star/ucb
+cvs diff: Diffing offapi/com/sun/star/ucb/smart
+cvs diff: Diffing offapi/com/sun/star/ui
+cvs diff: Diffing offapi/com/sun/star/ui/dialogs
+cvs diff: Diffing offapi/com/sun/star/util
+cvs diff: Diffing offapi/com/sun/star/view
+cvs diff: Diffing offapi/com/sun/star/xforms
+cvs diff: Diffing offapi/com/sun/star/xml
+cvs diff: Diffing offapi/com/sun/star/xml/crypto
+cvs diff: Diffing offapi/com/sun/star/xml/crypto/sax
+cvs diff: Diffing offapi/com/sun/star/xml/csax
+cvs diff: Diffing offapi/com/sun/star/xml/dom
+cvs diff: Diffing offapi/com/sun/star/xml/dom/events
+cvs diff: Diffing offapi/com/sun/star/xml/dom/views
+cvs diff: Diffing offapi/com/sun/star/xml/input
+cvs diff: Diffing offapi/com/sun/star/xml/sax
+cvs diff: Diffing offapi/com/sun/star/xml/wrapper
+cvs diff: Diffing offapi/com/sun/star/xml/xpath
+cvs diff: Diffing offapi/com/sun/star/xsd
+cvs diff: Diffing offapi/drafts
+cvs diff: Diffing offapi/drafts/com
+cvs diff: Diffing offapi/drafts/com/sun
+cvs diff: Diffing offapi/drafts/com/sun/star
+cvs diff: Diffing offapi/drafts/com/sun/star/form
+cvs diff: Diffing offapi/prj
+cvs diff: Diffing offapi/type_reference
+cvs diff: Diffing offapi/util
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-local-media.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-local-media.diff
@@ -0,0 +1,39 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx	2006-01-27 17:46:57.000000000 +0100
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2006-01-27 19:29:05.000000000 +0100
+@@ -76,6 +76,7 @@
+ #define emit
+ #endif
+ 
++#include <kdeversion.h>
+ #include <kdiroperator.h>
+ #include <kfiledialog.h>
+ #include <kfilefiltercombo.h>
+@@ -343,8 +344,13 @@ void FileDialog::customEvent( QCustomEve
+                         setCanNotifySelection( true );
+                         exec();
+ 
+-                        qSelectedURL = addExtension( selectedURL().url() );
+-                        QString qProtocol( selectedURL().protocol() );
++#if KDE_IS_VERSION(3,5,0)
++                        KURL qLocalSelectedURL = KIO::NetAccess::mostLocalURL( selectedURL(), this );
++#else
++                        KURL qLocalSelectedURL( selectedURL() );
++#endif
++                        qSelectedURL = addExtension( qLocalSelectedURL.url() );
++                        QString qProtocol( qLocalSelectedURL.protocol() );
+ 
+                         if ( isSave() && result() == QDialog::Accepted )
+                         {
+@@ -632,6 +638,12 @@ bool FileDialog::isSupportedProtocol( co
+ 
+ QString FileDialog::localCopy( const QString &rFileName ) const
+ {
++#if KDE_IS_VERSION(3,5,0)
++    KURL qLocalURL = KIO::NetAccess::mostLocalURL( KURL( rFileName ), const_cast<FileDialog*>( this ) );
++    if ( qLocalURL.isLocalFile() )
++        return qLocalURL.url();
++#endif
++
+     int nExtensionPos = rFileName.findRev( '/' );
+     if ( nExtensionPos >= 0 )
+         nExtensionPos = rFileName.find( '.', nExtensionPos );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-fix-randr-heapcorruption.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-fix-randr-heapcorruption.diff
@@ -0,0 +1,64 @@
+ vcl/unx/source/app/randrwrapper.cxx |   15 ++++++++++++---
+ 1 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/vcl/unx/source/app/randrwrapper.cxx b/vcl/unx/source/app/randrwrapper.cxx
+index 10ec921..b42b8fe 100644
+--- vcl/unx/source/app/randrwrapper.cxx
++++ vcl/unx/source/app/randrwrapper.cxx
+@@ -58,7 +58,8 @@ class RandRWrapper
+     XRRScreenSize*(*m_pXRRSizes)(Display*,int,int*);
+     XRRScreenSize*(*m_pXRRConfigSizes)(XRRScreenConfiguration*,int*);
+     SizeID(*m_pXRRConfigCurrentConfiguration)(XRRScreenConfiguration*,Rotation*);
+-    
++    int(*m_pXRRRootToScreen)(Display*, XLIB_Window);
++
+     bool m_bValid;
+     
+     void initFromModule();
+@@ -110,6 +111,10 @@ public:
+     {
+         return m_bValid ? m_pXRRConfigCurrentConfiguration( i_pConfig, o_pRot ) : 0;
+     }
++    int XRRRootToScreen( Display *dpy, XLIB_Window root )
++    {
++        return m_bValid ? m_pXRRRootToScreen( dpy, root ) : -1;
++    }
+ };
+ }
+ 
+@@ -124,6 +129,7 @@ void RandRWrapper::initFromModule()
+     m_pXRRSizes = (XRRScreenSize*(*)(Display*,int,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRSizes" );
+     m_pXRRConfigSizes = (XRRScreenSize*(*)(XRRScreenConfiguration*,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRConfigSizes" );
+     m_pXRRConfigCurrentConfiguration = (SizeID(*)(XRRScreenConfiguration*,Rotation*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRConfigCurrentConfiguration" );
++    m_pXRRRootToScreen = (int(*)(Display*,XLIB_Window))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRRootToScreen" );
+     
+     m_bValid = m_pXRRQueryExtension             &&
+                m_pXRRQueryVersion               &&
+@@ -133,7 +139,8 @@ void RandRWrapper::initFromModule()
+                m_pXRRUpdateConfiguration        &&
+                m_pXRRSizes                      &&
+                m_pXRRConfigSizes                &&
+-               m_pXRRConfigCurrentConfiguration
++               m_pXRRConfigCurrentConfiguration &&
++               m_pXRRRootToScreen
+                ;
+ }
+ 
+@@ -148,6 +155,7 @@ RandRWrapper::RandRWrapper( Display* pDisplay ) :
+         m_pXRRSizes( NULL ),
+         m_pXRRConfigSizes( NULL ),
+         m_pXRRConfigCurrentConfiguration( NULL ),
++        m_pXRRRootToScreen( NULL ),
+         m_bValid( false )
+ {
+     // first try in process space (e.g. gtk links that ?)
+@@ -211,7 +219,8 @@ int SalDisplay::processRandREvent( XEvent* pEvent )
+ {
+     int nRet = 0;
+     #ifdef USE_RANDR
+-    if( pWrapper )
++    XConfigureEvent* pCnfEvent=(XConfigureEvent*)pEvent;
++    if( pWrapper && pWrapper->XRRRootToScreen(GetDisplay(),pCnfEvent->window) != -1 )
+     {
+         nRet = pWrapper->XRRUpdateConfiguration( pEvent );
+         if( nRet == 1 && pEvent->type != ConfigureNotify) // this should then be a XRRScreenChangeNotifyEvent
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/offapi-calc-datapilot-drilldown.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/offapi-calc-datapilot-drilldown.diff
@@ -0,0 +1,854 @@
+? offapi/offapi.vpj
+Index: offapi/com/sun/star/sheet/DataPilotFieldFilter.idl
+===================================================================
+RCS file: /cvs/api/offapi/com/sun/star/sheet/DataPilotFieldFilter.idl,v
+retrieving revision 1.2
+retrieving revision 1.1.2.3
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.2 -r1.1.2.3
+--- offapi/com/sun/star/sheet/DataPilotFieldFilter.idl	26 Nov 2007 15:22:52 -0000	1.2
++++ offapi/com/sun/star/sheet/DataPilotFieldFilter.idl	7 Dec 2007 05:39:58 -0000	1.1.2.3
+@@ -42,12 +42,34 @@
+ 
+ //=============================================================================
+ 
++/** A single filtering condition used when constructing a drill-down sheet.
++
++   <p>Each instance of <type>DataPilotFieldFilter</type> represents a filtering 
++   condition.  It is used when evaluating a row in a data source whether or not 
++   to include it in a filtered subset of the original data.  For example, for 
++   a given row to be included in the output of a drill-down data table, the row 
++   must match every single instance of <type>DataPilotFieldFilter</type> to be 
++   qualified.  If the field specified by the value of <member>FieldName</member>
++   is not found, then that filter condition will not be evaluated.</p>
++
++   <p>Note that this struct is typically used in a sequence and is not normally 
++   used as a single instance.</p>
++
++   @see <method>XDrillDownDataSupplier::getDrillDownData</method>
++   @see <type>DataPilotTableResultData</type>
++
++   @since OOo 3.0.0
++ */
+ struct DataPilotFieldFilter
+ {
+-    /** Field name. */
++    /** Field name.
++
++        @see <type>DataPilotField</type>
++     */
+     string FieldName;
+ 
+-    /** String value that needs to match against. */
++    /** String value to match against.
++     */
+     string MatchValue;
+ };
+ 
+Index: offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl
+diff -N offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl	7 Dec 2007 05:29:36 -0000	1.1.2.3
+@@ -0,0 +1,80 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: DataPilotOutputRangeType.idl,v $
++ *
++ *  $Revision: 1.1.2.3 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/12/07 05:29:36 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_DataPilotOutputRangeType_idl__
++#define __com_sun_star_sheet_DataPilotOutputRangeType_idl__
++
++module com { module sun { module star { module sheet {
++
++//============================================================================
++
++/** specifies region type of DataPilot table range
++
++    <p>This constant set is used to indicate the type of output range desired when
++    <method>XDataPilotTable2::getOutputRangeByType</method> is called, which 
++    returns a different cell range depending upon the value passed to it as the argument.</p>
++
++    @see com::sun::star::sheet::XDataPilotTable2
++
++    @since OOo 3.0.0
++ */
++constants DataPilotOutputRangeType
++{
++    //------------------------------------------------------------------------
++
++    /** whole DataPilot output range including the header area above the table
++        where the filter and page field buttons are located. */
++    const long WHOLE = 0;
++
++    //------------------------------------------------------------------------
++
++    /** whole table but without the header area where the filter and page field 
++        buttons are located. */
++    const long TABLE = 1;
++
++    //------------------------------------------------------------------------
++
++    /** result area where the result values are displayed.  This also includes
++        the column and row subtotal areas when they are displayed. */
++    const long RESULT = 2;
++};
++
++//============================================================================
++
++}; }; }; };
++
++
++
++#endif
+Index: offapi/com/sun/star/sheet/DataPilotSource.idl
+===================================================================
+RCS file: /cvs/api/offapi/com/sun/star/sheet/DataPilotSource.idl,v
+retrieving revision 1.6
+retrieving revision 1.6.404.3
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.6 -r1.6.404.3
+--- offapi/com/sun/star/sheet/DataPilotSource.idl	8 Sep 2005 04:34:04 -0000	1.6
++++ offapi/com/sun/star/sheet/DataPilotSource.idl	6 Dec 2007 22:19:05 -0000	1.6.404.3
+@@ -104,6 +104,29 @@
+ 	 */
+ 	[property] boolean RowGrand;
+ 
++    //-------------------------------------------------------------------------
++
++    /** specifies the number of row fields.
++
++        @since OOo 3.0.0
++     */
++    [readonly, property, optional] long RowFieldCount;
++
++    //-------------------------------------------------------------------------
++
++    /** specifies the number of column fields. 
++
++        @since OOo 3.0.0
++     */
++    [readonly, property, optional] long ColumnFieldCount;
++
++    //-------------------------------------------------------------------------
++
++    /** specifies the number of data fields. 
++
++        @since OOo 3.0.0
++     */
++    [readonly, property, optional] long DataFieldCount;
+ };
+ 
+ //=============================================================================
+Index: offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl
+diff -N offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl	7 Dec 2007 05:29:36 -0000	1.1.2.3
+@@ -0,0 +1,87 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: DataPilotTableHeaderData.idl,v $
++ *
++ *  $Revision: 1.1.2.3 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/12/07 05:29:36 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_DataPilotTableHeaderData_idl__
++#define __com_sun_star_sheet_DataPilotTableHeaderData_idl__
++
++#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
++#include <com/sun/star/sheet/DataResult.idl>
++
++//=============================================================================
++
++module com {  module sun {  module star {  module sheet {
++
++//=============================================================================
++
++/** information about a cell within the column or row header area of a DataPilot table.
++
++    This struct contains information about a particular cell located within the 
++    column or row header area of a DataPilot table.  This is the type that is
++    contained in <member>DataPilotTablePositionData::PositionData</member> when 
++    the value of <member>DataPilotTablePositionData::PositionType</member> is
++    either <const>DataPilotTablePositionType::ROW_HEADER</const> or 
++    <const>DataPilotTablePositionType::COLUMN_HEADER</const>.
++
++    @see com::sun::star::sheet::DataPilotTablePositionData
++    @see com::sun::star::sheet::DataPilotTablePositionType
++    @see com::sun::star::sheet::DataPilotFieldFilter
++    @see com::sun::star::sheet::DataResult
++
++    @since OOo 3.0.0
++ */
++struct DataPilotTableHeaderData
++{
++    /** number of dimensions */
++    long    Dimension;
++
++    /** hierarchy */
++    long    Hierarchy;
++
++    /** level */
++    long    Level;
++
++    /** flag */
++    long    Flags;
++
++    /** member name */
++    string  MemberName;
++};
++
++//=============================================================================
++
++}; }; }; };
++
++#endif
++
+Index: offapi/com/sun/star/sheet/DataPilotTablePositionData.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/DataPilotTablePositionData.idl
+diff -N offapi/com/sun/star/sheet/DataPilotTablePositionData.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/DataPilotTablePositionData.idl	7 Dec 2007 05:29:36 -0000	1.1.2.5
+@@ -0,0 +1,98 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: DataPilotTablePositionData.idl,v $
++ *
++ *  $Revision: 1.1.2.5 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/12/07 05:29:36 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_DataPilotTablePositionData_idl__
++#define __com_sun_star_sheet_DataPilotTablePositionData_idl__
++
++#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
++
++//=============================================================================
++
++module com {  module sun {  module star {  module sheet {
++
++//=============================================================================
++
++/** This structure contains information on a cell within a DataPilot table.
++
++    <p>This structure contains information on a particular cell within a DataPilot
++    table, and is used to retrieve its metadata.  The <member>PositionType</member>
++    member specifies in which sub-area of the table the cell is positioned, which
++    in turn determines the type of metadata contained in the <member>PositionData</member>
++    member.</p>
++
++    @see com::sun::star::sheet::DataPilotTablePositionType
++    @see com::sun::star::sheet::DataPiotTableResultData
++    @see com::sun::star::sheet::DataPiotTableHeaderData
++
++    @since OOo 3.0.0
++ */
++struct DataPilotTablePositionData
++{
++	//-------------------------------------------------------------------------
++
++    /** This parameter specifies which sub-area of a DataPilot table a given 
++        cell is positioned.  See <type>DataPilotTablePositionType</type>
++        for how to interpret the value of this parameter.
++
++        @see com::sun::star::sheet::DataPilotTablePositionType
++     */
++    long    PositionType;
++
++	//-------------------------------------------------------------------------
++
++    /** <p>This member contains a structure of different types depending on the 
++        position type specified in <member>PositionType</member> member.</p>
++
++        <p>When the value of <member>PositionType</member> is 
++        <const>DataPilotTablePositionType::RESULT</const>, <member>DataPilotTablePositionData::PositionData</member> 
++        contains an instance of type <type>DataPilotTableResultData</type>, 
++        whereas when the value of <member>DataPilotTablePositionData::PositionType</member>
++        is either <const>DataPilotTablePositionType::ROW_HEADER</const> 
++        or <const>DataPilotTablePositionType::COLUMN_HEADER</const>, then the 
++        <member>PositionData</member> member contains an instance of type <type>
++        DataPilotTableHeaderData</type>.</p>
++
++        @see com::sun::star::sheet::DataPiotTableResultData
++        @see com::sun::star::sheet::DataPiotTableHeaderData
++     */
++    any     PositionData;
++};
++
++//=============================================================================
++
++}; }; }; };
++
++#endif
++
+Index: offapi/com/sun/star/sheet/DataPilotTablePositionType.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/DataPilotTablePositionType.idl
+diff -N offapi/com/sun/star/sheet/DataPilotTablePositionType.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/DataPilotTablePositionType.idl	18 Apr 2008 19:19:41 -0000	1.1.2.7
+@@ -0,0 +1,86 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: DataPilotTablePositionType.idl,v $
++ *
++ *  $Revision: 1.1.2.7 $
++ *
++ *  last change: $Author: kohei $ $Date: 2008/04/18 19:19:41 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_DataPilotTablePositionType_idl__
++#define __com_sun_star_sheet_DataPilotTablePositionType_idl__
++
++module com { module sun { module star { module sheet {
++
++//============================================================================
++
++/** specifies in which sub-area a cell is positioned within a DataPilot table.
++
++    @see com::sun::star::sheet::DataPilotTablePositionData
++    @see com::sun::star::sheet::DataPilotTableResultData
++    @see com::sun::star::sheet::DataPilotTableHeaderData
++
++    @since OOo 3.0.0
++ */
++constants DataPilotTablePositionType
++{
++    //------------------------------------------------------------------------
++
++    /** indicates that the specified cell is not in the DataPilot table. */
++    const long NOT_IN_TABLE = 0;
++
++    //------------------------------------------------------------------------
++
++    /** indicates that the specified cell is within the result area. */
++    const long RESULT = 1;
++
++    //------------------------------------------------------------------------
++
++    /** indicates that the specified cell is within the row header area. */
++    const long ROW_HEADER = 2;
++
++    //------------------------------------------------------------------------
++
++    /** indicates that the specified cell is within the column header area. */
++    const long COLUMN_HEADER = 3;
++
++    //------------------------------------------------------------------------
++
++    /** indicates that the specified cell is within the table but in areas 
++        other than the result or header areas. */
++    const long OTHER = 4;
++};
++
++//============================================================================
++
++}; }; }; };
++
++
++
++#endif
+Index: offapi/com/sun/star/sheet/DataPilotTableResultData.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/DataPilotTableResultData.idl
+diff -N offapi/com/sun/star/sheet/DataPilotTableResultData.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/DataPilotTableResultData.idl	7 Dec 2007 05:29:36 -0000	1.1.2.5
+@@ -0,0 +1,94 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: DataPilotTableResultData.idl,v $
++ *
++ *  $Revision: 1.1.2.5 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/12/07 05:29:36 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_DataPilotTableResultData_idl__
++#define __com_sun_star_sheet_DataPilotTableResultData_idl__
++
++#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
++#include <com/sun/star/sheet/DataResult.idl>
++
++//=============================================================================
++
++module com {  module sun {  module star {  module sheet {
++
++//=============================================================================
++
++/** information about a cell positioned within the result area of a DataPilot table.
++
++    <p><type>DataPilotTableResultData</type> contains information about a 
++    particular cell positioned within the result area of a DataPilot table.</p>
++
++    @see com::sun::star::sheet::DataPilotTablePositionData
++    @see com::sun::star::sheet::DataPilotTablePositionType
++    @see com::sun::star::sheet::DataPilotFieldFilter
++    @see com::sun::star::sheet::DataResult
++
++    @since OOo 3.0.0
++ */
++struct DataPilotTableResultData
++{
++    //------------------------------------------------------------------------
++
++    /** This is a set of filter criteria that can be used to re-create those
++        data rows that contribute to the value shown in the cell.
++
++        @see com::sun::star::sheet::DataPilotFieldFilter
++     */
++    sequence< DataPilotFieldFilter >    FieldFilters;
++
++    //------------------------------------------------------------------------
++
++    /** This is a 0-based index that specifies which data field the data displayed
++        in the cell is for; the value of 0 means the cell is for the first data
++        field, 1 for the second, and so on.
++     */
++    long                                DataFieldIndex;
++
++    //------------------------------------------------------------------------
++
++    /** more information about the result contained in the 
++        <type>DataResult</type> type.
++
++        @see com::sun::star::sheet::DataResult
++     */
++    DataResult                          Result;
++};
++
++//=============================================================================
++
++}; }; }; };
++
++#endif
++
+Index: offapi/com/sun/star/sheet/XDataPilotTable2.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/XDataPilotTable2.idl
+diff -N offapi/com/sun/star/sheet/XDataPilotTable2.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/XDataPilotTable2.idl	18 Apr 2008 15:06:44 -0000	1.1.2.7
+@@ -0,0 +1,139 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: XDataPilotTable2.idl,v $
++ *
++ *  $Revision: 1.1.2.7 $
++ *
++ *  last change: $Author: kohei $ $Date: 2008/04/18 15:06:44 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_XDataPilotTable2_idl__
++#define __com_sun_star_sheet_XDataPilotTable2_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++
++#ifndef __com_sun_star_table_CellAddress_idl__
++#include <com/sun/star/table/CellAddress.idl>
++#endif
++
++#ifndef __com_sun_star_table_CellRangeAddress_idl__
++#include <com/sun/star/table/CellRangeAddress.idl>
++#endif
++
++#ifndef __com_sun_star_sheet_XDataPilotTable_idl__
++#include <com/sun/star/sheet/XDataPilotTable.idl>
++#endif
++
++#ifndef __com_sun_star_sheet_DataPilotOutputRangeType_idl__
++#include <com/sun/star/sheet/DataPilotOutputRangeType.idl>
++#endif
++
++#ifndef __com_sun_star_sheet_DataPilotFieldFilter_idl__
++#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
++#endif
++
++#include <com/sun/star/sheet/DataPilotTablePositionData.idl>
++#include <com/sun/star/lang/IllegalArgumentException.idl>
++
++module com {  module sun {  module star {  module sheet {
++
++/** additional methods to extend <type scope="com::sun::star::sheet">XDataPilotTable</type>. 
++
++   <type scope="com::sun::star::sheet">XDataPilotTable2</type> extends the old 
++   <type scope="com::sun::star::sheet">XDataPilotTable</type> interface with 
++   additional methods.
++
++   @see com::sun::star::sheet::XDataPilotTable
++
++   @since OOo 3.0.0
++ */
++interface XDataPilotTable2: com::sun::star::sheet::XDataPilotTable
++{
++    /** When the address of a cell within the result area is given, 
++        <method>XDataPilotTable2::getDrillDownData</method> returns its drill-down 
++        output table that includes only those rows that contribute to the value of
++        that cell.
++
++        @param aAddr cell address within the result area of a DataPilot table.
++
++        @returns drill-down output as 2-dimensional sequence, including the header row.
++
++        @see <method>XDataPilotTable2::insertDrillDownSheet</method>
++     */
++    sequence< sequence< any > > getDrillDownData( [in] com::sun::star::table::CellAddress aAddr );
++
++    /** Given a cell address, it returns the information about that cell.  The 
++        type of information returned depends upon whether the cell is within 
++        the result area or column/row header area.
++
++        @param aAddr address of the cell whose information is to be returned.
++
++        @returns <type>DataPilotTablePositionData</type> which contains the 
++        position type and the information for that cell position.
++
++        @see com::sun::star::sheet::DataPilotTablePositionData
++        @see com::sun::star::sheet::DataPilotTableHeaderData
++        @see com::sun::star::sheet::DataPilotTableResultData
++     */
++    DataPilotTablePositionData getPositionData( [in] com::sun::star::table::CellAddress aAddr );
++
++    /** <p>This method inserts a new sheet to display the drill-down data for a 
++        specified result cell.  A drill-down data for a result cell consists 
++        of a subset of rows from the original data source that contribute to 
++        the value displayed in that cell.</p>
++
++        <p>The new sheet is always inserted to the immediate left of the current
++        sheet where the DataPilot table is.  Note that when the drill-down data
++        is empty, no new sheet is inserted.</p>
++
++        @param aAddr address of a result cell
++
++        @returns <void/>
++     */
++    void insertDrillDownSheet( [in] com::sun::star::table::CellAddress aAddr );
++
++    /** <p>This method returns a different output range of a DataPilot table 
++        per specified output range type.</p>
++
++        @returns <type scope="com::sun::star::table">CellRangeAddress</type> depicting
++        the range specified.  See <type>DataPilotOutputRangeType</type> for a set
++        of possible output range types.
++
++        @see com::sun::star::sheet::DataPilotOutputRangeType
++     */
++    com::sun::star::table::CellRangeAddress getOutputRangeByType( [in] long nType ) 
++        raises (com::sun::star::lang::IllegalArgumentException);
++};
++
++}; }; }; };
++
++#endif
++
+Index: offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl
+===================================================================
+RCS file: offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl
+diff -N offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl	7 Dec 2007 18:37:34 -0000	1.1.2.2
+@@ -0,0 +1,95 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: XDrillDownDataSupplier.idl,v $
++ *
++ *  $Revision: 1.1.2.2 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/12/07 18:37:34 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __com_sun_star_sheet_XDrillDownDataSupplier_idl__
++#define __com_sun_star_sheet_XDrillDownDataSupplier_idl__
++
++#ifndef __com_sun_star_uno_XInterface_idl__
++#include <com/sun/star/uno/XInterface.idl>
++#endif
++
++#ifndef __com_sun_star_sheet_DataPilotFieldFilter_idl__
++#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
++#endif
++
++#ifndef __com_sun_star_table_CellAddress_idl__
++#include <com/sun/star/table/CellAddress.idl>
++#endif
++
++//=============================================================================
++
++module com {  module sun {  module star {  module sheet {
++
++//=============================================================================
++
++/** supplies a filtered subset of the original data source based on filtering criteria.
++
++    A service that acts as a DataPilot data source can optionally implement this
++    interface to allow drill-down of result data.  The method this interface provides
++    is used internally when calling <method>XDataPilotTable2::getDrillDownData</method>
++    or <method>XDataPilotTable2::insertDrillDownSheet</method>.  If the data source
++    service does not implement this interface, then the aformentioned two methods
++    will have no effect.
++
++    @see com::sun::star::sheet::DataPilotSource
++
++    @since OOo 3.0.0
++ */
++interface XDrillDownDataSupplier: com::sun::star::uno::XInterface
++{
++    /** This method returns filtered subset of the original source data based on 
++        a given set of filtering criteria.
++
++        @param aFilters filtering criteria
++
++        @returns a filtered subset of the origintal source data as 2-dimensional
++        sequences of <type scope="com::sun::star::uno">Any</any>.  The first row
++        must be the header row.  Each <type scope="com::sun::star::uno">Any</type>
++        instance must contain either <type>double</type> value for a numeric cell, or 
++        a <type>string</type> value for a string cell.
++
++        @see com::sun::star::sheet::DataPilotFieldFilter
++        @see com::sun::star::sheet::XDataPilotTable2
++     */
++    sequence< sequence< any > > getDrillDownData( 
++        [in] sequence< com::sun::star::sheet::DataPilotFieldFilter > aFilters );
++};
++
++//=============================================================================
++
++}; }; }; };
++
++#endif
++
+Index: offapi/com/sun/star/sheet/makefile.mk
+===================================================================
+RCS file: /cvs/api/offapi/com/sun/star/sheet/makefile.mk,v
+retrieving revision 1.27
+retrieving revision 1.24.138.5
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.27 -r1.24.138.5
+--- offapi/com/sun/star/sheet/makefile.mk	5 Feb 2008 15:53:10 -0000	1.27
++++ offapi/com/sun/star/sheet/makefile.mk	25 Feb 2008 14:45:39 -0000	1.24.138.5
+@@ -101,6 +101,7 @@
+ 	DataPilotItem.idl\
+ 	DataPilotItems.idl\
+ 	DataPilotItemsEnumeration.idl\
++	DataPilotOutputRangeType.idl\
+ 	DataPilotSource.idl\
+ 	DataPilotSourceDimension.idl\
+ 	DataPilotSourceDimensions.idl\
+@@ -111,6 +112,10 @@
+ 	DataPilotSourceMember.idl\
+ 	DataPilotSourceMembers.idl\
+ 	DataPilotTable.idl\
++	DataPilotTableHeaderData.idl\
++	DataPilotTablePositionData.idl\
++	DataPilotTablePositionType.idl\
++	DataPilotTableResultData.idl\
+ 	DataPilotTables.idl\
+ 	DataPilotTablesEnumeration.idl\
+ 	DataResult.idl\
+@@ -244,12 +249,14 @@
+ 	XDataPilotMemberResults.idl\
+ 	XDataPilotResults.idl\
+ 	XDataPilotTable.idl\
++	XDataPilotTable2.idl\
+ 	XDataPilotTables.idl\
+ 	XDataPilotTablesSupplier.idl\
+ 	XDatabaseRange.idl\
+ 	XDatabaseRanges.idl\
+ 	XDimensionsSupplier.idl\
+ 	XDocumentAuditing.idl\
++	XDrillDownDataSupplier.idl\
+ 	XEnhancedMouseClickBroadcaster.idl\
+ 	XExternalSheetName.idl\
+ 	XFillAcrossSheet.idl\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layout-transex3.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layout-transex3.diff
@@ -0,0 +1,950 @@
+cvs diff: Diffing transex3
+cvs diff: Diffing transex3/inc
+Index: transex3/inc/helpmerge.hxx
+===================================================================
+RCS file: /cvs/l10n/transex3/inc/helpmerge.hxx,v
+retrieving revision 1.8
+retrieving revision 1.8.68.1
+diff -p -u -u -p -b -w -B -r1.8 -r1.8.68.1
+--- transex3/inc/helpmerge.hxx	22 Nov 2006 10:43:33 -0000	1.8
++++ transex3/inc/helpmerge.hxx	11 Feb 2008 15:33:48 -0000	1.8.68.1
+@@ -53,7 +53,7 @@ private:
+     
+ /// Copy fallback language String (ENUS,DE) into position of the numeric language iso code 
+ /// @PRECOND 0 < langIdx_in < MAX_IDX
+-    void FillInFallbacks( LangHashMap& rElem_out, ByteString sLangIdx_in );
++    static void FillInFallbacks( LangHashMap& rElem_out, ByteString sLangIdx_in );
+ 
+ /// Debugmethod, prints the content of the map to stdout
+     static  void Dump(  LangHashMap* rElem_in , const ByteString sKey_in );
+@@ -69,7 +69,8 @@ public:
+ 
+ /// Method creates/append a SDF file with the content of a parsed XML file
+ /// @PRECOND rHelpFile is valid
+-    bool CreateSDF( const ByteString &rSDFFile_in, const ByteString &rPrj_in, const ByteString &rRoot_in );
++    static bool CreateSDF( const ByteString &rSDFFile_in, const ByteString &rPrj_in, const ByteString &rRoot_in,
++                           const ByteString &sHelpFile, XMLFile *pXmlFile, const ByteString &rGsi1 );
+ 	
+ 	static  void parse_languages( std::vector<ByteString>& aLanguages , MergeDataFile& aMergeDataFile );
+ 
+Index: transex3/inc/xmlparse.hxx
+===================================================================
+RCS file: /cvs/l10n/transex3/inc/xmlparse.hxx,v
+retrieving revision 1.12
+retrieving revision 1.12.92.3
+diff -p -u -u -p -b -w -B -r1.12 -r1.12.92.3
+--- transex3/inc/xmlparse.hxx	14 Aug 2006 17:08:54 -0000	1.12
++++ transex3/inc/xmlparse.hxx	15 Feb 2008 14:05:39 -0000	1.12.92.3
+@@ -232,7 +232,7 @@ public:
+ 	
+     ByteString*	GetGroupID(std::deque<ByteString> &groupid);
+ 	void 		Print( XMLNode *pCur = NULL, USHORT nLevel = 0 );
+-	void		SearchL10NElements( XMLParentNode *pCur  , int pos = 0);
++	virtual void SearchL10NElements( XMLParentNode *pCur, int pos = 0 );
+ 	void		Extract( XMLFile *pCur = NULL );
+ 	void		View();
+ //	void static Signal_handler(int signo);//void*,oslSignalInfo * pInfo);
+@@ -250,9 +250,10 @@ public:
+ 
+ 	/// returns file name
+ 	const String &GetName() { return sFileName; }
++    void          SetName( const String &rFilename ) { sFileName = rFilename; }
+     const std::vector<ByteString> getOrder(){ return order; }
+ 	
+-private:
++protected:
+ 	// writes a string as UTF8 with dos line ends to a given stream
+     void        WriteString( ofstream &rStream, const String &sString );
+ 	
+@@ -542,7 +543,8 @@ public:
+ 
+ 	/// parse a file, returns NULL on criticall errors
+ 	XMLFile *Execute( 
+-		const String &rFileName	// the file name
++        const String &rFileName,	// the file name
++        XMLFile *pXMLFileIn         // the XMLFile
+ 	);
+ 
+ 	/// parse a memory stream, returns NULL on criticall errors
+cvs diff: Diffing transex3/inc/pch
+cvs diff: Diffing transex3/inc/transex3
+Index: transex3/inc/transex3/vosapp.hxx
+===================================================================
+RCS file: transex3/inc/transex3/vosapp.hxx
+diff -N transex3/inc/transex3/vosapp.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/inc/transex3/vosapp.hxx	12 Feb 2008 09:58:28 -0000	1.1.2.1
+@@ -0,0 +1,33 @@
++#ifndef VOSAPP_HXX
++#define VOSAPP_HXX
++
++#include <sal/main.h>
++#include <tools/solar.h>
++#include <tools/string.hxx>
++#include <vos/process.hxx>
++
++// Mininmal vcl/svapp compatibility without vcl dependence
++class Application
++{
++public:
++    USHORT GetCommandLineParamCount();
++    XubString GetCommandLineParam( USHORT nParam );
++    virtual void Main() = 0;
++};
++
++// Urg: Cut & Paste from svapp.cxx: we don't want to depend on vcl
++USHORT Application::GetCommandLineParamCount()
++{
++    vos::OStartupInfo aStartInfo;
++    return (USHORT)aStartInfo.getCommandArgCount();
++}
++
++XubString Application::GetCommandLineParam( USHORT nParam )
++{
++    vos::OStartupInfo aStartInfo;
++    rtl::OUString aParam;
++    aStartInfo.getCommandArg( nParam, aParam );
++    return XubString( aParam );
++}
++
++#endif /* VOSAPP_HXX */
+cvs diff: Diffing transex3/java
+cvs diff: Diffing transex3/java/l10nconv
+cvs diff: Diffing transex3/java/l10nconv/documentation
+cvs diff: Diffing transex3/java/l10nconv/java
+cvs diff: Diffing transex3/java/l10nconv/java/com
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/DirtyTags
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/converter
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/converter/dtd
+cvs diff: Diffing transex3/java/l10nconv/java/com/sun/star/tooling/languageResolver
+cvs diff: Diffing transex3/java/receditor
+cvs diff: Diffing transex3/java/receditor/java
+cvs diff: Diffing transex3/java/receditor/java/transex3
+cvs diff: Diffing transex3/java/receditor/java/transex3/controller
+cvs diff: Diffing transex3/java/receditor/java/transex3/model
+cvs diff: Diffing transex3/java/receditor/java/transex3/view
+cvs diff: Diffing transex3/layout
+Index: transex3/layout/README
+===================================================================
+RCS file: transex3/layout/README
+diff -N transex3/layout/README
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/README	15 Feb 2008 13:51:54 -0000	1.1.2.2
+@@ -0,0 +1,27 @@
++Tralay - Extract and translate strings in Layout xml files.
++
++Translatable strings in layout xml files are attributes that have name
++which starts with an underscore, eg
++
++    _title="Set Zoom"
++    _label="Whole Page"
++
++Here is how it works
++
++ * Extract: generate out.sdf
++      ../unxlngx6.pro/bin/tralay -l en-US zoom.xml > out.sdf
++
++ * Translate: do:
++      cat out.sdf > trans.sdf
++      sed 's/en-US\t/de\tde:/' out.sdf >> trans.sdf 
++
++ * Merge: translate
++     ../unxlngx6.pro/bin/tralay -m trans.sdf -l de zoom.xml > zoom-DE.xml
++
++Running
++
++   dmake test
++
++does something similar.
++
++     
+\ No newline at end of file
+Index: transex3/layout/layoutparse.cxx
+===================================================================
+RCS file: transex3/layout/layoutparse.cxx
+diff -N transex3/layout/layoutparse.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/layoutparse.cxx	15 Feb 2008 13:51:54 -0000	1.1.2.2
+@@ -0,0 +1,105 @@
++#include "layoutparse.hxx"
++
++#define STRING( str ) String( str, RTL_TEXTENCODING_UTF8 )
++#define BSTRING( str ) ByteString( str, RTL_TEXTENCODING_UTF8 )
++
++LayoutXMLFile::LayoutXMLFile( bool mergeMode )
++    : XMLFile()
++    , mMergeMode( mergeMode )
++{
++}
++    
++void
++LayoutXMLFile::SearchL10NElements( XMLParentNode* pCur, int )
++{
++	if ( !pCur )
++        pCur = this;
++            
++    /* Recurse int children, SearchL10NElements does not do that for us.  */
++    if ( XMLChildNodeList* lst = pCur->GetChildList() )
++        for ( ULONG i = 0; i < lst->Count(); i++ )
++            if ( lst->GetObject( i )->GetNodeType() == XML_NODE_TYPE_ELEMENT )
++                HandleElement( ( XMLElement* )lst->GetObject( i ) );
++}
++
++std::vector<XMLAttribute*>
++interestingAttributes( XMLAttributeList* lst )
++{
++    std::vector<XMLAttribute*> interesting;
++    if ( lst )
++        for ( ULONG i = 0; i < lst->Count(); i++ )
++            if ( lst->GetObject( i )->Equals( STRING( "id" ) ) )
++                interesting.insert( interesting.begin(), lst->GetObject( i ) );
++            else if ( ! BSTRING( *lst->GetObject( i ) ).CompareTo( "_", 1 ) )
++                interesting.push_back( lst->GetObject( i ) );
++    return interesting;
++}
++
++void
++LayoutXMLFile::HandleElement( XMLElement* element )
++{
++    std::vector<XMLAttribute*> interesting = interestingAttributes( element->GetAttributeList() );
++    
++    if ( interesting.size() )
++    {
++        ByteString id = BSTRING( interesting[0]->GetValue() );
++
++        if ( mMergeMode )
++            InsertL10NElement( id, element );
++        else
++            for ( std::vector<XMLAttribute*>::iterator i = ++interesting.begin();
++                  i != interesting.end(); ++i )
++            {
++                ByteString attributeId = id;
++                ByteString value = BSTRING( ( *i )->GetValue() );
++                XMLElement *e = new XMLElement( *element );
++                e->RemoveAndDeleteAllChilds();
++                /* Copy translatable text to CONTENT. */
++                //new XMLData( STRING( ( *i )->GetValue() ), e, true );
++                new XMLData( STRING( value ), e, true );
++                attributeId += BSTRING ( **i );
++                InsertL10NElement( attributeId, e );
++            }
++    }
++
++    SearchL10NElements( (XMLParentNode*) element );
++}
++
++void LayoutXMLFile::InsertL10NElement( ByteString const& id, XMLElement* element )
++{
++    ByteString const language = "en-US";
++    LangHashMap* languageMap = 0;
++    XMLHashMap::iterator pos = XMLStrings->find( id );
++    if ( pos != XMLStrings->end() )
++    {
++        languageMap = pos->second;
++        fprintf( stderr, "error:%s:duplicate translation found, id=%s\n",
++                 id.GetBuffer(), BSTRING( sFileName ).GetBuffer() );
++        exit( 1 );
++    }
++    else
++    {
++        languageMap = new LangHashMap();
++        XMLStrings->insert( XMLHashMap::value_type( id , languageMap ) );
++        order.push_back( id );
++    }
++    (*languageMap)[ language ] = element;
++}
++
++BOOL LayoutXMLFile::Write( ByteString &aFilename )
++{
++
++    if ( aFilename.Len() )
++    {
++        ofstream aFStream( aFilename.GetBuffer() , ios::out | ios::trunc ); 
++        if ( !aFStream )
++            fprintf( stderr, "ERROR: cannot open file:%s\n", aFilename.GetBuffer() );
++        else
++        {
++            XMLFile::Write( aFStream );
++            aFStream.close();
++            return true;
++        }
++    }
++    return false;
++}
+Index: transex3/layout/layoutparse.hxx
+===================================================================
+RCS file: transex3/layout/layoutparse.hxx
+diff -N transex3/layout/layoutparse.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/layoutparse.hxx	15 Feb 2008 13:51:54 -0000	1.1.2.2
+@@ -0,0 +1,21 @@
++#ifndef LAYOUTPARSE_HXX
++#define LAYOUTPARSE_HXX
++
++#include "xmlparse.hxx"
++
++class LayoutXMLFile : public XMLFile
++{
++    bool mMergeMode;
++
++public:
++    LayoutXMLFile( bool mergeMode );
++
++	void SearchL10NElements( XMLParentNode *pCur, int pos = 0 );
++    BOOL Write( ByteString &aFilename );
++    void HandleElement( XMLElement* element );
++    void InsertL10NElement( ByteString const& id, XMLElement* element );
++};
++
++std::vector<XMLAttribute*> interestingAttributes( XMLAttributeList* lst );
++
++#endif /* LAYOUTPARSE_HXX */
+Index: transex3/layout/loc.sdf
+===================================================================
+RCS file: transex3/layout/loc.sdf
+diff -N transex3/layout/loc.sdf
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/loc.sdf	11 Feb 2008 15:33:49 -0000	1.1.2.1
+@@ -0,0 +1,24 @@
++transex3	layout\workben\zoom-1.xml	0	help	FL_ZOOM				0	en-US	Zoom factor				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_WHOLE_PAGE				0	en-US	Whole Page				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_PAGE_WIDTH				0	en-US	Page Width				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_OPTIMAL				0	en-US	Optimal				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_200				0	en-US	200 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_150				0	en-US	15~0 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_100				0	en-US	100 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_75				0	en-US	75 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_50				0	en-US	50 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_USER				0	en-US	Variable				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	FL_ZOOM				0	de	deZoom factor				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_WHOLE_PAGE				0	de	deWhole Page				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_PAGE_WIDTH				0	de	dePage Width				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_OPTIMAL				0	de	deOptimal				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_200				0	de	de200 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_150				0	de	de15~0 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_100				0	de	de100 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_75				0	de	de75 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_50				0	de	de50 %				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_USER				0	de	deVariable				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	FL_ZOOM				0	en-US	Zoom factor				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_WHOLE_PAGE				0	en-US	Whole Page				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	FL_ZOOM				0	de	de3:Zoom factor				20080204 13:51:01
++transex3	layout\workben\zoom-1.xml	0	help	BTN_WHOLE_PAGE				0	de	de3:Whole Page				20080204 13:51:01
+Index: transex3/layout/localize.sdf
+===================================================================
+RCS file: transex3/layout/localize.sdf
+diff -N transex3/layout/localize.sdf
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/localize.sdf	11 Feb 2008 15:33:49 -0000	1.1.2.1
+@@ -0,0 +1,10 @@
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	FL_ZOOM				0	en-US	Zoom factor				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_WHOLE_PAGE				0	en-US	Whole Page				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_PAGE_WIDTH				0	en-US	Page Width				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_OPTIMAL				0	en-US	Optimal				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_200				0	en-US	200 %				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_150				0	en-US	15~0 %				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_100				0	en-US	100 %				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_75				0	en-US	75 %				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_50				0	en-US	50 %				20080206 16:06:07
++layout	janneke\vc\ooo-m3\build\current\transex3\layout\zoom.xml	0	layout	BTN_USER				0	en-US	Variable				20080206 16:06:07
+Index: transex3/layout/makefile.mk
+===================================================================
+RCS file: transex3/layout/makefile.mk
+diff -N transex3/layout/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/makefile.mk	15 Feb 2008 13:51:54 -0000	1.1.2.2
+@@ -0,0 +1,67 @@
++PRJ=..
++
++INCPRE=$(MISC)
++
++PRJNAME=transex3
++TARGET=tralay
++#TARGETTYPE=GUI
++TARGETTYPE=CUI
++LIBTARGET=no
++
++# --- Settings -----------------------------------------------------
++
++ENABLE_EXCEPTIONS=TRUE
++
++.INCLUDE :  settings.mk
++
++.IF "$(SYSTEM_EXPAT)" == "YES"
++CFLAGS+=-DSYSTEM_EXPAT
++.ENDIF
++
++# --- Files --------------------------------------------------------
++
++CXXFILES=\
++	layoutparse.cxx\
++	tralay.cxx
++
++APP1TARGET=$(TARGET)
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++OBJFILES =\
++	$(OBJ)/export2.obj\
++	$(OBJ)/helpmerge.obj\
++	$(OBJ)/layoutparse.obj\
++	$(OBJ)/merge.obj\
++	$(OBJ)/tralay.obj\
++	$(OBJ)/xmlparse.obj
++
++APP1OBJS = $(OBJFILES)
++
++APP1STDLIBS =\
++	$(EXPATASCII3RDLIB)\
++	$(TOOLSLIB)\
++	$(VOSLIB)
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :  target.mk
++
++test .PHONY:
++	../$(INPATH)/bin/tralay -l en-US zoom.xml > out.sdf
++	cat out.sdf > trans.sdf
++	sed 's/en-US\t/de\tde:/' out.sdf >> trans.sdf 
++	../$(INPATH)/bin/tralay -m trans.sdf -l de zoom.xml #> zoom-DE.xml
++
++.ELSE # ENABLE_LAYOUT != TRUE
++
++$(BIN)$/$(APP1TARGET)$(EXECPOST):
++	touch $@
++
++ALLTAR:
++all:
++check:
++clean:
++
++.ENDIF # ENABLE_LAYOUT != TRUE
++
+Index: transex3/layout/tralay.cxx
+===================================================================
+RCS file: transex3/layout/tralay.cxx
+diff -N transex3/layout/tralay.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/tralay.cxx	15 Feb 2008 13:51:54 -0000	1.1.2.3
+@@ -0,0 +1,308 @@
++#include <com/sun/star/xml/sax/SAXException.hpp>
++#include <transex3/vosapp.hxx>
++
++#include "export.hxx"
++#include "layoutparse.hxx"
++#include "helpmerge.hxx"
++
++// Convert a rtl::OUString to a byte string.
++#define OUSTRING_CSTR( str ) \
++    rtl::OUStringToOString( str, RTL_TEXTENCODING_UTF8 ).getStr()
++
++#define STRING( str ) String( str, RTL_TEXTENCODING_UTF8 )
++#define BSTRING( str ) ByteString( str, RTL_TEXTENCODING_UTF8 )
++
++using namespace ::rtl;
++using namespace ::com::sun::star;
++using namespace ::com::sun::star::uno;
++
++
++class TranslateLayout : public Application
++{
++    ByteString mGid1;
++    ByteString mLanguage;
++    ByteString mLocalize; 
++    ByteString mOutput;
++    ByteString mProject;
++    ByteString mRoot;
++    bool mMergeMode;
++    std::vector< ByteString > mLanguages;
++    std::list< ByteString > mFiles;
++
++public:
++    TranslateLayout();
++    ~TranslateLayout();
++    ByteString GetCommandLineParam( int i );
++    ByteString GetOptionArgument( int const i );
++    void ExceptionalMain();
++    void Main();
++    void Merge();
++    void MergeLanguage( ByteString const& language );
++    void ParseCommandLine();
++    void CreateSDF();
++};
++
++static void usage()
++{
++    fprintf( stderr, "Usage: tralay [OPTION]... XML-FILE\n" );
++    fprintf( stderr, "\nOptions:\n" );
++    fprintf( stderr, "  -h,--help                  show this help\n" );
++    fprintf( stderr, "  -l,--language=LANG         process this language\n" );
++    fprintf( stderr, "  -m,--merge=DATABASE.SDF    translation database\n" );
++    fprintf( stderr, "\nExamples:\n" );
++    fprintf( stderr, "  tralay -l en-US -o localize.sdf zoom.xml   # Extract\n" );
++    fprintf( stderr, "  tralay -m localize.sdf -l de -l nl -o out zoom.xml  # Merge/translate\n" );
++    exit( 2 );
++}
++
++ByteString TranslateLayout::GetCommandLineParam( int i )
++{
++    return ByteString( OUSTRING_CSTR( Application::GetCommandLineParam( i ) ) );
++}
++
++ByteString TranslateLayout::GetOptionArgument( int const i )
++{
++    if ( i >= GetCommandLineParamCount() )
++        usage();
++    ByteString arg = GetCommandLineParam( i );
++    if ( !arg.CompareTo( "-", 1 ) )
++    {
++        fprintf( stderr, "Option needs an argument: %s, found: %s\n",
++                 GetCommandLineParam( i - 1 ).GetBuffer(),
++                 arg.GetBuffer() );
++        usage();
++    }
++    return arg;
++ }
++
++void TranslateLayout::ParseCommandLine()
++{
++    for ( int i = 0; i < GetCommandLineParamCount(); i++ )
++    {
++        ByteString aParam = GetCommandLineParam( i );
++        if ( aParam.Equals( "-h" ) || aParam.Equals( "--help" ) )
++            usage();
++        else if ( aParam.Equals( "-l" ) || aParam.Equals( "--language" ) )
++            mLanguages.push_back ( GetOptionArgument( ++i ) );
++        else if ( aParam.Equals( "-m" ) || aParam.Equals( "--merge" ) )
++        {
++            mMergeMode = true;
++            mLocalize = GetOptionArgument( ++i );
++        }
++        else if ( aParam.Equals( "-o" ) || aParam.Equals( "--output" ) )
++            mOutput = GetOptionArgument( ++i );
++        else if ( !aParam.CompareTo( "-", 1 ) )
++        {
++            fprintf( stderr, "error: No such option: %s\n", aParam.GetBuffer() );
++            usage();
++        }
++        else
++            mFiles.push_back( aParam );
++    }
++    if ( !mFiles.size() )
++    {
++        fprintf( stderr, "error: No XML-FILE found\n" );
++        usage();
++    }
++}
++
++static XMLAttribute*
++findAttribute( XMLAttributeList* lst, String const& name )
++{
++    for ( ULONG i = 0; i < lst->Count(); i++ )
++        if ( lst->GetObject( i )->Equals( name ) )
++            return lst->GetObject( i );
++    return 0;
++}
++
++static XMLAttribute*
++translateAttribute( XMLAttributeList* lst,
++                    String const& name, String const& translation )
++{
++    if ( XMLAttribute* a = findAttribute( lst, name ) )
++        return lst->Replace ( new XMLAttribute( name.Copy( 1 ), translation ), a );
++    return 0;
++}
++
++static void
++translateElement( XMLElement* element, ByteString const& lang,
++                  ResData* resData, MergeDataFile& mergeData )
++{
++    XMLAttributeList* attributes = element->GetAttributeList();
++    std::vector<XMLAttribute*> interesting = interestingAttributes( attributes );
++    ByteString id = BSTRING( interesting[0]->GetValue() );
++    for ( std::vector<XMLAttribute*>::iterator i = ++interesting.begin();
++          i != interesting.end(); ++i )
++    {
++        ByteString attributeId = id;
++        attributeId += BSTRING ( **i );
++        resData->sGId = attributeId;
++        resData->sId = element->GetOldref();
++
++        if ( PFormEntrys* entry = mergeData.GetPFormEntrys( resData ) )
++        {
++            ByteString translation;
++            entry->GetText( translation, STRING_TYP_TEXT, lang, true );
++//            ByteString original = removeContent( element );
++            if ( !translation.Len() )
++#if 0
++                translation = original;
++#else
++                translation = BSTRING( ( *i )->GetValue() );
++#endif
++            delete translateAttribute( attributes, **i , STRING( translation ) );
++        }
++    }
++}
++
++static bool is_dir( ByteString const& name )
++{
++    if (DIR* dir = opendir( name.GetBuffer() ) )
++    {
++        closedir( dir );
++        return true;
++    }
++    return false;
++}
++
++static void make_directory( ByteString const& name )
++{
++#ifdef WNT
++    _mkdir( name.GetBuffer() );
++#else
++    mkdir( name.GetBuffer() , S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH );
++#endif
++}
++
++void TranslateLayout::MergeLanguage( ByteString const& language )
++{
++    ByteString xmlFile = mFiles.front();
++
++    MergeDataFile mergeData( mLocalize, xmlFile,
++                             FALSE, RTL_TEXTENCODING_MS_1252 );
++
++    SimpleXMLParser aParser;
++    LayoutXMLFile* layoutXml = new LayoutXMLFile( mMergeMode );
++    if ( !aParser.Execute( STRING( xmlFile ), layoutXml ) )
++    {
++        fprintf(stderr, "error: parsing: %s\n", xmlFile.GetBuffer() );
++        return;
++    }
++    
++    layoutXml->Extract();
++
++    ResData	resData( "", "", "" );
++    resData.sResTyp = mProject; /* mGid1 ?? */
++    resData.sFilename = xmlFile;
++
++    XMLHashMap* xmlStrings = layoutXml->GetStrings();
++    for ( XMLHashMap::iterator i = xmlStrings->begin(); i != xmlStrings->end();
++          ++i )
++    {
++        if ( LangHashMap* languageMap = i->second )
++            if ( XMLElement* element = ( *languageMap )[ "en-US" ] )
++                translateElement( element, language, &resData, mergeData );
++    }
++    
++    ByteString outFile = "/dev/stdout";
++    if ( mOutput.Len() )
++    {
++        outFile = mOutput;
++        if ( is_dir( outFile ) )
++        {
++            ByteString outDir = mOutput;
++            outDir.Append( "/" ).Append( language );
++            if ( !is_dir( outDir ) )
++                make_directory( outDir );
++            outFile = outDir;
++            outFile.Append( "/" ).Append( xmlFile );
++        }
++    }
++    layoutXml->Write( outFile );
++    delete layoutXml;
++}
++
++void TranslateLayout::Merge()
++{
++    if ( mLanguages.size() )
++        for ( std::vector<ByteString>::iterator i = mLanguages.begin();
++              i != mLanguages.end(); ++i)
++            MergeLanguage( *i );
++    else
++        MergeLanguage( mLanguage );
++}
++
++void TranslateLayout::CreateSDF()
++{
++    ByteString xmlFile = mFiles.front();
++    ByteString sdf = "/dev/stdout";
++    if ( mOutput.Len() )
++        sdf = mOutput;
++    Export::SetLanguages( mLanguages );
++    HelpParser::CreateSDF( sdf, mProject, mRoot, xmlFile,
++                           new LayoutXMLFile( mMergeMode ), mGid1 );
++}
++
++void TranslateLayout::ExceptionalMain()
++{
++    ParseCommandLine();
++    if ( mLanguages.size() )
++        mLanguage = mLanguages.front();
++    if ( mMergeMode )
++        Merge();
++    else
++        CreateSDF();
++}
++
++void TranslateLayout::Main()
++{
++    try
++    {
++        ExceptionalMain();
++    }
++    catch ( xml::sax::SAXException& rExc )
++    {
++        OString aStr( OUStringToOString( rExc.Message,
++                                         RTL_TEXTENCODING_ASCII_US ) );
++        uno::Exception exc;
++        if (rExc.WrappedException >>= exc)
++        {
++            aStr += OString( " >>> " );
++            aStr += OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US );
++        }
++        fprintf( stderr, "error: parsing: '%s'\n", aStr.getStr() );
++        OSL_ENSURE( 0, aStr.getStr() );
++    }
++    catch ( uno::Exception& rExc )
++    {
++        OString aStr( OUStringToOString( rExc.Message,
++                                         RTL_TEXTENCODING_ASCII_US ) );
++        fprintf( stderr, "error: UNO: '%s'\n", aStr.getStr() );
++        OSL_ENSURE( 0, aStr.getStr() );
++    }
++}
++
++TranslateLayout::TranslateLayout()
++    : Application()
++    , mGid1( "layout" )
++    , mLanguage( "en-US" )
++    , mLocalize( "localize.sdf" )
++    , mOutput()
++    , mProject( "layout" )
++    , mRoot( "/root" )
++    , mMergeMode( false )
++    , mLanguages()
++    , mFiles()
++{
++}
++
++TranslateLayout::~TranslateLayout()
++{
++}
++
++SAL_IMPLEMENT_MAIN()
++{
++    TranslateLayout t;
++    t.Main();
++    return 0;
++}
+Index: transex3/layout/zoom.xml
+===================================================================
+RCS file: transex3/layout/zoom.xml
+diff -N transex3/layout/zoom.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ transex3/layout/zoom.xml	15 Feb 2008 13:51:54 -0000	1.1.2.2
+@@ -0,0 +1,37 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             id="dialog" _title="Set Zoom" _label="boe" optimumsize="true"
++	     help-id="SID_ATTR_ZOOM"
++             has_border="true" sizeable="true" moveable="true">
++    <vbox spacing="5" border="5">
++	<fixedline id="FL_ZOOM" _text="Zoom factor" _tooltip="bah" cnt:expand="true"/>
++	<radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
++	<radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" _label="Page Width"/>
++	<radiobutton radiogroup="zoom" id="BTN_OPTIMAL"   _label="Optimal"/>
++	<radiobutton radiogroup="zoom" id="BTN_200"   _label="200 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_150"   _label="15~0 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_100"   _label="100 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_75"    _label="75 %"/>
++	<radiobutton radiogroup="zoom" id="BTN_50"    _label="50 %"/>
++	<hbox cnt:expand="false" cnt:fill="true">
++	    <align cnt:expand="false" cnt:fill="true">
++		<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" _label="Variable"/>
++	    </align>
++	    <flow cnt:padding="10" cnt:expand="false"/>
++	    <metricfield id="ED_USER" value-step="1"
++			 repeat="true" has_border="true" spin="true"
++			 text="100%" unit="13" custom-unit-text="%"
++			 right="true"
++			 cnt:expand="false"/>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox border="5" spacing="5">
++	    <flow/>
++	    <okbutton     id="BTN_ZOOM_OK"/>
++	    <cancelbutton id="BTN_ZOOM_CANCEL"/>
++	    <helpbutton   id="BTN_ZOOM_HELP"/>
++	</dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+cvs diff: Diffing transex3/prj
+Index: transex3/prj/build.lst
+===================================================================
+RCS file: /cvs/l10n/transex3/prj/build.lst,v
+retrieving revision 1.5
+retrieving revision 1.5.36.1
+diff -p -u -u -p -b -w -B -r1.5 -r1.5.36.1
+--- transex3/prj/build.lst	10 Jul 2007 15:44:22 -0000	1.5
++++ transex3/prj/build.lst	11 Feb 2008 15:33:49 -0000	1.5.36.1
+@@ -2,5 +2,6 @@ tr	transex3	:	tools NULL
+ tr	transex3						usr1	-	all	tr_mkout NULL
+ tr	transex3\inc					nmake	-	all	tr_inc NULL
+ tr	transex3\source					nmake	-	all	tr_src tr_inc NULL
++tr	transex3\layout					nmake	-	all	rt_layout tr_src tr_inc NULL
+ tr	transex3\java\l10nconv			nmake	-	all	tr_conv NULL
+ tr	transex3\java\receditor			nmake	-	all	tr_rece NULL
+Index: transex3/prj/d.lst
+===================================================================
+RCS file: /cvs/l10n/transex3/prj/d.lst,v
+retrieving revision 1.27
+retrieving revision 1.27.20.2
+diff -p -u -u -p -b -w -B -r1.27 -r1.27.20.2
+--- transex3/prj/d.lst	1 Nov 2007 18:41:01 -0000	1.27
++++ transex3/prj/d.lst	12 Feb 2008 09:58:28 -0000	1.27.20.2
+@@ -18,6 +18,8 @@ mkdir: %_DEST%\inc%_EXT%\transex3
+ ..\%__SRC%\bin\ulfex %_DEST%\bin%_EXT%\ulfex
+ ..\%__SRC%\bin\txtconv.exe %_DEST%\bin%_EXT%\txtconv.exe
+ ..\%__SRC%\bin\txtconv %_DEST%\bin%_EXT%\txtconv
++..\%__SRC%\bin\tralay.exe %_DEST%\bin%_EXT%\tralay.exe
++..\%__SRC%\bin\tralay %_DEST%\bin%_EXT%\tralay
+ 
+ ..\%__SRC%\class\converter\converter.jar %_DEST%\bin%_EXT%\converter.jar
+ ..\%__SRC%\doc\converter_javadoc.zip %_DEST%\bin%_EXT%\converter_javadoc.zip
+@@ -30,6 +32,7 @@ mkdir: %_DEST%\inc%_EXT%\transex3
+ ..\inc\export.hxx %_DEST%\inc%_EXT%\transex3\export.hxx
+ ..\inc\transex3\directory.hxx %_DEST%\inc%_EXT%\transex3\directory.hxx
+ ..\inc\transex3\file.hxx %_DEST%\inc%_EXT%\transex3\file.hxx
++..\inc\transex3\vosapp.hxx %_DEST%\inc%_EXT%\transex3\vosapp.hxx
+ 
+ ..\inc\utf8conv.hxx %_DEST%\inc%_EXT%\transex3\utf8conv.hxx
+ ..\%__SRC%\lib\transex.lib %_DEST%\lib%_EXT%\transex.lib
+cvs diff: Diffing transex3/scripts
+cvs diff: Diffing transex3/source
+Index: transex3/source/helpex.cxx
+===================================================================
+RCS file: /cvs/l10n/transex3/source/helpex.cxx,v
+retrieving revision 1.11
+retrieving revision 1.11.36.1
+diff -p -u -u -p -b -w -B -r1.11 -r1.11.36.1
+--- transex3/source/helpex.cxx	27 Jun 2007 17:53:46 -0000	1.11
++++ transex3/source/helpex.cxx	11 Feb 2008 15:33:50 -0000	1.11.36.1
+@@ -247,7 +247,7 @@ int _cdecl main( int argc, char *argv[] 
+ 			hasNoError = aParser.Merge( sSDFFile, sOutputFile , Export::sLanguages , aMergeDataFile );
+ 		}
+ 		else
+-			hasNoError = aParser.CreateSDF( sOutputFile, sPrj, sPrjRoot );
++			hasNoError = aParser.CreateSDF( sOutputFile, sPrj, sPrjRoot, sInputFile, new XMLFile( '0' ), "help" );
+ 	}else if ( sOutputFileX.Len() && sOutputFileY.Len() && hasInputList ) {  // Merge multiple files ?
+ 		if ( bMergeMode ){
+             
+Index: transex3/source/helpmerge.cxx
+===================================================================
+RCS file: /cvs/l10n/transex3/source/helpmerge.cxx,v
+retrieving revision 1.18
+retrieving revision 1.18.12.1
+diff -p -u -u -p -b -w -B -r1.18 -r1.18.12.1
+--- transex3/source/helpmerge.cxx	17 Dec 2007 15:01:05 -0000	1.18
++++ transex3/source/helpmerge.cxx	11 Feb 2008 15:33:50 -0000	1.18.12.1
+@@ -124,9 +124,10 @@ HelpParser::HelpParser( const ByteString
+ /*****************************************************************************/
+ bool HelpParser::CreateSDF(
+ /*****************************************************************************/
+-	const ByteString &rSDFFile_in, const ByteString &rPrj_in,const ByteString &rRoot_in ){
++	const ByteString &rSDFFile_in, const ByteString &rPrj_in,const ByteString &rRoot_in,
++    const ByteString &sHelpFile, XMLFile *pXmlFile, const ByteString &rGsi1){
+     // GSI File constants
+-    static const String GSI_SEQUENCE1( String::CreateFromAscii("\t0\thelp\t")	);
++    static const String GSI_SEQUENCE1( String::CreateFromAscii("\t0\t")	);
+     static const String GSI_SEQUENCE2( String::CreateFromAscii("\t\t\t0\t")		);
+     static const String GSI_TAB      ( String::CreateFromAscii("\t")			);
+     static const String GSI_SEQUENCE4( String::CreateFromAscii("\t\t\t\t")		);
+@@ -153,7 +154,7 @@ bool HelpParser::CreateSDF(
+     }
+ 
+ 
+-    std::auto_ptr <XMLFile> file ( aParser.Execute( sXmlFile ) );
++    std::auto_ptr <XMLFile> file ( aParser.Execute( sXmlFile, pXmlFile ) );
+ 
+ 	if(file.get() == NULL){
+ 		printf("%s\n",ByteString(aParser.GetError().sMessage,RTL_TEXTENCODING_ASCII_US).GetBuffer());
+@@ -195,6 +196,7 @@ bool HelpParser::CreateSDF(
+     OUStringBuffer sBuffer;
+     const OUString sOUPrj( rPrj_in.GetBuffer() , rPrj_in.Len() , RTL_TEXTENCODING_ASCII_US );
+     const OUString sOUActFileName(sActFileName.GetBuffer() , sActFileName.Len() , RTL_TEXTENCODING_ASCII_US );
++    const OUString sOUGsi1( rGsi1.GetBuffer() , rGsi1.Len() , RTL_TEXTENCODING_ASCII_US );
+ 
+     Export::InitLanguages( false );
+     std::vector<ByteString> aLanguages = Export::GetLanguages();
+@@ -230,7 +232,9 @@ bool HelpParser::CreateSDF(
+                 sBuffer.append( GSI_TAB );				//"\t";
+                 if ( rRoot_in.Len())
+ 					sBuffer.append( sOUActFileName );
+-   				sBuffer.append( GSI_SEQUENCE1 );		//"\t0\thelp\t";
++   				sBuffer.append( GSI_SEQUENCE1 );		//"\t0\t";
++   				sBuffer.append( sOUGsi1 );		        //"help";
++   				sBuffer.append( GSI_TAB );              //"\t";
+                 ByteString sID = posm->first;			// ID
+                 sBuffer.append( OUString( sID.GetBuffer() , sID.Len() , RTL_TEXTENCODING_UTF8 ) );
+                 sBuffer.append( GSI_TAB ); //"\t";
+@@ -289,7 +293,7 @@ bool HelpParser::Merge( const ByteString
+ 
+     OUString sOUHelpFile( sXmlFile );
+ 	
+-	XMLFile* xmlfile = ( aParser.Execute( sOUHelpFile ) );
++	XMLFile* xmlfile = ( aParser.Execute( sOUHelpFile, new XMLFile( '0' ) ) );
+ 	printf("Dest file %s\n",rDestinationFile.GetBuffer());
+ 	hasNoError = MergeSingleFile( xmlfile , aMergeDataFile , sLanguage , rDestinationFile );
+ 	delete xmlfile;
+@@ -371,7 +375,7 @@ bool HelpParser::Merge(
+ 
+ 	
+ 	OUString sOUHelpFile( sXmlFile );
+-	XMLFile* xmlfile = ( aParser.Execute( sOUHelpFile ) );
++	XMLFile* xmlfile = ( aParser.Execute( sOUHelpFile, new XMLFile( '0' ) ) );
+ 	xmlfile->Extract();
+ 
+ 	if( xmlfile == NULL)
+Index: transex3/source/xmlparse.cxx
+===================================================================
+RCS file: /cvs/l10n/transex3/source/xmlparse.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.28.2
+diff -p -u -u -p -b -w -B -r1.19 -r1.19.28.2
+--- transex3/source/xmlparse.cxx	20 Sep 2007 15:03:16 -0000	1.19
++++ transex3/source/xmlparse.cxx	15 Feb 2008 13:51:55 -0000	1.19.28.2
+@@ -1203,7 +1203,7 @@ void SimpleXMLParser::Default( 
+ }
+ 
+ /*****************************************************************************/
+-XMLFile *SimpleXMLParser::Execute( const String &rFileName )
++XMLFile *SimpleXMLParser::Execute( const String &rFileName, XMLFile* pXMLFileIn )
+ /*****************************************************************************/
+ {
+ //	printf("DBG: SimpleXMLParser::Execute( %s )", ByteString( rFileName , RTL_TEXTENCODING_ASCII_US ).GetBuffer() );
+@@ -1224,7 +1224,8 @@ XMLFile *SimpleXMLParser::Execute( const
+ 
+ 	aStream.Close();
+ 
+-	pXMLFile = new XMLFile( rFileName );
++    pXMLFile = pXMLFileIn;
++    pXMLFile->SetName( rFileName );
+ 
+ 	return Execute( &aMemStream );
+ }
+@@ -1295,6 +1296,9 @@ XMLFile *SimpleXMLParser::Execute( SvMem
+   			case XML_ERROR_EXTERNAL_ENTITY_HANDLING: aErrorInformation.sMessage += String::CreateFromAscii( "External entity handling" ); break;
+   			case XML_ERROR_NOT_STANDALONE: aErrorInformation.sMessage += String::CreateFromAscii( "Not standalone" ); break;
+             case XML_ERROR_NONE: break;
++            default:
++                break;
++
+ 		}
+ 		delete pXMLFile;
+ 		pXMLFile = NULL;
+cvs diff: Diffing transex3/workbench
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/link-vt-reloc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/link-vt-reloc.diff
@@ -0,0 +1,15 @@
+Index: cppuhelper/source/gcc3.map
+===================================================================
+RCS file: /cvs/udk/cppuhelper/source/gcc3.map,v
+retrieving revision 1.3
+diff -u -p -r1.3 gcc3.map
+--- cppuhelper/source/gcc3.map	15 Oct 2007 11:52:54 -0000	1.3
++++ cppuhelper/source/gcc3.map	23 Jan 2008 14:19:08 -0000
+@@ -218,6 +218,7 @@ _ZTVN4cppu20IPropertyArrayHelperE;
+ _ZTVN4cppu20OPropertyArrayHelperE;
+ _ZTVN4cppu27WeakComponentImplHelperBaseE;
+ _ZTVN4cppu30WeakAggComponentImplHelperBaseE;
++_ZTVN4cppu20PropertySetMixinImplE;
+ _ZN4cppu20OPropertyArrayHelperD0Ev;
+ _ZN4cppu20OPropertyArrayHelperD1Ev;
+ _ZThn*_N4cppu14OWeakAggObject12setDelegatorERKN3com3sun4star3uno9ReferenceINS4_10XInterfaceEEE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/dejavu_liberation_packaging_fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/dejavu_liberation_packaging_fix.diff
@@ -0,0 +1,188 @@
+--- scp2/source/ooo/file_font_ooo.scp.orig	2008-01-08 16:14:16.000000000 +0100
++++ scp2/source/ooo/file_font_ooo.scp	2008-04-05 09:44:51.000000000 +0200
+@@ -45,54 +45,54 @@
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSans_Bold, DejaVuSansBold.ttf, DejaVu Sans Bold) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSans_Bold, DejaVuSans-Bold.ttf, DejaVu Sans Bold) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSans_Oblique, DejaVuSansOblique.ttf, DejaVu Sans Oblique) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSans_Oblique, DejaVuSans-Oblique.ttf, DejaVu Sans Oblique) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSans_BoldOblique, DejaVuSansBoldOblique.ttf, DejaVu Sans Bold Oblique) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSans_BoldOblique, DejaVuSans-BoldOblique.ttf, DejaVu Sans Bold Oblique) 
+ #endif 
+ 
+ // DejaVuSans ExtraLight
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansExtraLight, DejaVuSansExtraLight.ttf, DejaVu Sans ExtraLight) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansExtraLight, DejaVuSans-ExtraLight.ttf, DejaVu Sans ExtraLight) 
+ #endif
+ 
+ // DejaVuSans Condensed
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed, DejaVuCondensedSans.ttf, DejaVu Sans Condensed) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed, DejaVuSansCondensed.ttf, DejaVu Sans Condensed) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed_Bold, DejaVuCondensedSansBold.ttf, DejaVu Sans Condensed Bold) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed_Bold, DejaVuSansCondensed-Bold.ttf, DejaVu Sans Condensed Bold) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed_Oblique, DejaVuCondensedSansOblique.ttf, DejaVu Sans Condensed Oblique) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed_Oblique, DejaVuSansCondensed-Oblique.ttf, DejaVu Sans Condensed Oblique) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed_BoldOblique, DejaVuCondensedSansBoldOblique.ttf, DejaVu Sans Condensed Bold Oblique) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansCondensed_BoldOblique, DejaVuSansCondensed-BoldOblique.ttf, DejaVu Sans Condensed Bold Oblique) 
+ #endif 
+ 
+ // DejaVuSans Mono
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono, DejaVuMonoSans.ttf, DejaVu Sans Mono) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono, DejaVuSansMono.ttf, DejaVu Sans Mono) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono_Bold, DejaVuMonoSansBold.ttf, DejaVu Sans Mono Bold) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono_Bold, DejaVuSansMono-Bold.ttf, DejaVu Sans Mono Bold) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono_Oblique, DejaVuMonoSansOblique.ttf, DejaVu Sans Mono Oblique) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono_Oblique, DejaVuSansMono-Oblique.ttf, DejaVu Sans Mono Oblique) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono_BoldOblique, DejaVuMonoSansBoldOblique.ttf, DejaVu Sans Mono Bold Oblique) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSansMono_BoldOblique, DejaVuSansMono-BoldOblique.ttf, DejaVu Sans Mono Bold Oblique) 
+ #endif
+ 
+ // DejaVuSerif Proportional
+@@ -101,32 +101,32 @@
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerif_Bold, DejaVuSerifBold.ttf, DejaVu Serif Bold) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerif_Bold, DejaVuSerif-Bold.ttf, DejaVu Serif Bold) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerif_Italic, DejaVuSerifItalic.ttf, DejaVu Serif Italic) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerif_Italic, DejaVuSerif-Italic.ttf, DejaVu Serif Italic) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerif_BoldItalic, DejaVuSerifBoldItalic.ttf, DejaVu Serif Bold Italic) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerif_BoldItalic, DejaVuSerif-BoldItalic.ttf, DejaVu Serif Bold Italic) 
+ #endif 
+ 
+ // DejaVuSerif Condensed
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed, DejaVuCondensedSerif.ttf, DejaVu Serif Condensed) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed, DejaVuSerifCondensed.ttf, DejaVu Serif Condensed) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed_Bold, DejaVuCondensedSerifBold.ttf, DejaVu Serif Condensed Bold) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed_Bold, DejaVuSerifCondensed-Bold.ttf, DejaVu Serif Condensed Bold) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed_Italic, DejaVuCondensedSerifItalic.ttf, DejaVu Serif Condensed Italic) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed_Italic, DejaVuSerifCondensed-Italic.ttf, DejaVu Serif Condensed Italic) 
+ #endif 
+ 
+ #ifndef WITHOUT_FONTS 
+-STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed_BoldItalic, DejaVuCondensedSerifBoldItalic.ttf, DejaVu Serif Condensed Bold Italic) 
++STD_FONT_FILE( gid_File_Fnt_DejaVuSerifCondensed_BoldItalic, DejaVuSerifCondensed-BoldItalic.ttf, DejaVu Serif Condensed Bold Italic) 
+ #endif 
+ 
+ 
+@@ -134,78 +134,54 @@
+ 
+ // Liberation Mono
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationMono_Regular, LiberationMono-Regular.ttf, Liberation Mono Regular) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationMono_Bold, LiberationMono-Bold.ttf, Liberation Mono Bold) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationMono_Italic, LiberationMono-Italic.ttf, Liberation Mono Italic) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationMono_BoldItalic, LiberationMono-BoldItalic.ttf, Liberation Mono Bold Italic) 
+ #endif
+-#endif
+ 
+ // Liberation Sans
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSans_Regular, LiberationSans-Regular.ttf, Liberation Sans Regular) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSans_Italic, LiberationSans-Italic.ttf, Liberation Sans Italic) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSans_Bold, LiberationSans-Bold.ttf, Liberation Serif Bold) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSans_BoldItalic, LiberationSans-BoldItalic.ttf, Liberation Sans Bold Italic) 
+ #endif
+-#endif
+ 
+ // Liberation Serif
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSerif_Regular, LiberationSerif-Regular.ttf, Liberation Serif Regular) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSerif_Bold, LiberationSerif-Bold.ttf, Liberation Serif Bold) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSerif_Italic, LiberationSerif-Italic.ttf, Liberation Serif Italic) 
+ #endif
+-#endif
+ 
+ #ifndef WITHOUT_FONTS 
+-#ifndef WNT 
+ STD_FONT_FILE( gid_File_Fnt_LiberationSerif_BoldItalic, LiberationSerif-BoldItalic.ttf, Liberation Serif Bold Italic) 
+ #endif
+-#endif
+ 
+ #ifdef WNT
+ #ifdef WITH_AGFA_MONOTYPE_FONTS
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ucb-gnome-vfs-lock.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ucb-gnome-vfs-lock.diff
@@ -0,0 +1,466 @@
+--- ucb/source/ucp/gvfs/content.cxx	2007-04-03 15:32:17.000000000 +0200
++++ ucb/source/ucp/gvfs/content.cxx	2007-04-03 15:33:24.000000000 +0200
+@@ -63,6 +63,9 @@
+ #ifndef _COM_SUN_STAR_IO_XOUTPUTSTREAM_HPP_
+ #include <com/sun/star/io/XOutputStream.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_IO_XACTIVEDATASTREAMER_HPP_
++#include <com/sun/star/io/XActiveDataStreamer.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_LANG_ILLEGALACCESSEXCEPTION_HPP_
+ #include <com/sun/star/lang/IllegalAccessException.hpp>
+ #endif
+@@ -93,6 +96,9 @@
+ #ifndef _COM_SUN_STAR_UCB_INTERACTIVENETWORKWRITEEXCEPTION_HPP_
+ #include <com/sun/star/ucb/InteractiveNetworkWriteException.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_UCB_IOERRORCODE_HPP_
++#include <com/sun/star/ucb/IOErrorCode.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_UCB_NAMECLASH_HPP_
+ #include <com/sun/star/ucb/NameClash.hpp>
+ #endif
+@@ -206,7 +212,8 @@ Content::Content(
+   throw ( ucb::ContentCreationException )
+ 	: ContentImplHelper( rxSMgr, pProvider, Identifier ),
+ 	  m_pProvider( pProvider ),
+-	  m_bTransient( sal_False )
++	  m_bTransient( sal_False ),
++	  m_bForceReadOnly( sal_False )
+ {
+ 	CLEAR_INFO (&m_info);
+ #ifdef DEBUG
+@@ -222,7 +229,8 @@ Content::Content( const ::com::sun::star
+ 	throw ( ucb::ContentCreationException )
+ 	: ContentImplHelper( rxSMgr, pProvider, Identifier ),
+ 	  m_pProvider( pProvider ),
+-	  m_bTransient( sal_True )
++	  m_bTransient( sal_True ),
++	  m_bForceReadOnly( sal_False )
+ {
+ 	CLEAR_INFO (&m_info);
+ 
+@@ -648,8 +659,7 @@ uno::Reference< sdbc::XRow > Content::ge
+ 	GnomeVFSResult result;
+ 	uno::Sequence< beans::Property > allProperties;
+ 
+-	if( ( result = getInfo( xEnv ) ) != GNOME_VFS_OK )
+-		cancelCommandExecution( result, xEnv, sal_False );
++	result = getInfo( xEnv );
+ 		
+ 	const beans::Property* pProps;
+ 
+@@ -665,11 +672,19 @@ uno::Reference< sdbc::XRow > Content::ge
+ 	rtl::Reference< ::ucbhelper::PropertyValueSet > xRow
+ 		= new ::ucbhelper::PropertyValueSet( m_xSMgr );
+ 
+-    	osl::Guard< osl::Mutex > aGuard( m_aMutex );
++	osl::Guard< osl::Mutex > aGuard( m_aMutex );
+ 	for( sal_Int32 n = 0; n < nProps; ++n ) {
+ 		const beans::Property& rProp = pProps[ n ];
+ 
+-		if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) {
++		if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "SupportsActiveStreaming" ) ) ) {
++			xRow->appendBoolean( rProp, sal_True );
++		}
++		else if (result != GNOME_VFS_OK) {
++			// 'SupportsActiveStreaming' is the only property that can be
++			// obtained even if getInfo() failed
++			cancelCommandExecution( result, xEnv, sal_False );
++		}
++		else if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Title" ) ) ) {
+ 			if (m_info.name && m_info.name[0] == '/')
+ 				g_warning ("Odd NFS title on item '%s' == '%s'",
+ 					   getURI(), m_info.name);
+@@ -702,7 +717,9 @@ uno::Reference< sdbc::XRow > Content::ge
+ 		}
+ 
+ 		else if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "IsReadOnly" ) ) ) {
+-			if (m_info.valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) {
++			if ( m_bForceReadOnly )
++				xRow->appendBoolean( rProp, sal_True );
++			else if (m_info.valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) {
+ 				bool read_only = true;
+ 
+ 				if (m_info.uid == getuid () &&
+@@ -990,6 +1007,8 @@ void Content::insert(
+ {
+   	osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
+ 
++	GnomeVFSOpenMode nOpenMode;
++
+ #ifdef DEBUG
+ 	g_warning( "Insert '%s' (%d) (0x%x:%d)", getURI(), bReplaceExisting,
+ 		   m_info.valid_fields, m_info.type );
+@@ -1042,22 +1061,27 @@ void Content::insert(
+ 	result = GNOME_VFS_OK;
+ 	if ( bReplaceExisting ) {
+ 		Authentication aAuth( xEnv );
+-		result = gnome_vfs_open( &handle, (const sal_Char *)aURI,
+-					 GNOME_VFS_OPEN_WRITE );
++		nOpenMode = (GnomeVFSOpenMode)(GNOME_VFS_OPEN_WRITE | GNOME_VFS_OPEN_LOCKED);
++		result = gnome_vfs_open( &handle, (const sal_Char *)aURI, nOpenMode );
+ 	}
+ 
+-	if ( result != GNOME_VFS_OK ) {
++	if ( result == GNOME_VFS_ERROR_LOCKED )
++		throwLocked( xEnv );
++	else if ( result != GNOME_VFS_OK ) {
+ 		int perm;
+ 		Authentication aAuth( xEnv );
+ 
+ 		perm = ( ( GNOME_VFS_PERM_USER_WRITE | GNOME_VFS_PERM_USER_READ ) |
+ 			 ( GNOME_VFS_PERM_GROUP_WRITE | GNOME_VFS_PERM_GROUP_READ ) );
+ 
++		nOpenMode = (GnomeVFSOpenMode)(GNOME_VFS_OPEN_WRITE | GNOME_VFS_OPEN_LOCKED);
+ 		result = gnome_vfs_create
+-			( &handle, (const sal_Char *)aURI, GNOME_VFS_OPEN_WRITE, TRUE, perm );
++			( &handle, (const sal_Char *)aURI, nOpenMode, TRUE, perm );
+ 	}
+ 
+-	if( result != GNOME_VFS_OK )
++	if ( result == GNOME_VFS_ERROR_LOCKED )
++		throwLocked( xEnv );
++	else if ( result != GNOME_VFS_OK )
+ 		cancelCommandExecution( result, xEnv, sal_True );
+ 
+ 	if ( !xInputStream.is() ) {
+@@ -1067,7 +1091,7 @@ void Content::insert(
+ 
+ 	} else { // copy it over
+ 		uno::Reference < io::XOutputStream > xOutput =
+-			new gvfs::Stream( handle, &m_info );
++			new gvfs::Stream( handle, &m_info, (const sal_Char *)aURI, nOpenMode );
+ 
+ 		copyData( xInputStream, xOutput );
+ 	}
+@@ -1363,6 +1387,22 @@ void Content::cancelCommandExecution(
+     // Unreachable
+ }
+ 
++void Content::throwLocked( const uno::Reference< ucb::XCommandEnvironment > & xEnv)
++	throw( uno::Exception )
++{
++#ifdef DEBUG
++	g_warning( "File locked, throwing IOErrorCode_LOCKING_VIOLATION" );
++#endif
++
++	m_bForceReadOnly = sal_True;
++
++	ucbhelper::cancelCommandExecution( ucb::IOErrorCode_LOCKING_VIOLATION,
++			uno::Sequence< uno::Any >( 0 ), // FIXME more info about the file?
++			xEnv,
++			rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "an error occured during file opening" ) ),
++			this );
++}
++
+ uno::Sequence< beans::Property > Content::getProperties(
+     const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
+ {
+@@ -1404,6 +1444,10 @@ uno::Sequence< beans::Property > Content
+ 				 beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY ),
+                 beans::Property( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsHidden" ) ),
+ 				 -1, getCppuBooleanType(),
++				 beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY ),
++
++                beans::Property( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SupportsActiveStreaming" ) ),
++				 -1, getCppuBooleanType(),
+ 				 beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY )
+ 	};
+ 
+@@ -1497,6 +1541,7 @@ Content::createTempStream( const ::com::
+ 	GnomeVFSResult result;
+ 	GnomeVFSHandle *handle = NULL;
+ 	::rtl::OString aURI = getOURI();
++	GnomeVFSOpenMode nOpenMode = GNOME_VFS_OPEN_READ;
+ 
+     	osl::Guard< osl::Mutex > aGuard( m_aMutex );
+ 	// Something badly wrong happened - can't seek => stream to a temporary file
+@@ -1507,60 +1552,74 @@ Content::createTempStream( const ::com::
+ 	if ( !xTempOut.is() )
+ 		cancelCommandExecution( GNOME_VFS_ERROR_IO, xEnv );
+ 
+-	result = gnome_vfs_open
+-		( &handle, (const sal_Char *)aURI, GNOME_VFS_OPEN_READ );
++	result = gnome_vfs_open( &handle, (const sal_Char *)aURI, nOpenMode );
+ 	if (result != GNOME_VFS_OK)
+ 		cancelCommandExecution( result, xEnv );
+ 
+-	uno::Reference < io::XInputStream > pStream = new ::gvfs::Stream( handle, &m_info );
++	uno::Reference < io::XInputStream > pStream = new ::gvfs::Stream( handle, &m_info, (const sal_Char *)aURI, nOpenMode );
+ 	copyData( pStream, xTempOut );
+ 
+ 	return uno::Reference < io::XInputStream > ( xTempOut, uno::UNO_QUERY );
+ }
+ 
+-uno::Reference< io::XInputStream > 
+-Content::createInputStream(
+-    const uno::Reference< ucb::XCommandEnvironment >& xEnv )
++uno::Reference< io::XStream > 
++Content::createStream( const uno::Reference< ucb::XCommandEnvironment >& xEnv,
++                       bool bReadWrite )
+ 	throw( uno::Exception )
+ {
+ 	GnomeVFSHandle *handle = NULL;
+ 	GnomeVFSResult  result;
+-	uno::Reference<io::XInputStream > xIn;
++	uno::Reference< io::XStream > xStream;
+ 
+ 	Authentication aAuth( xEnv );
+-    	osl::Guard< osl::Mutex > aGuard( m_aMutex );
++	osl::Guard< osl::Mutex > aGuard( m_aMutex );
+ 
+ 	getInfo( xEnv );
+ 	::rtl::OString aURI = getOURI();
+ 
+-	if ( !(m_info.valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) )
+-		return createTempStream( xEnv );
++	if ( !bReadWrite && !(m_info.valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) )
++		return xStream;
+ 
+-	result = gnome_vfs_open
+-		( &handle, (const sal_Char *)aURI,
+-		  (GnomeVFSOpenMode) (GNOME_VFS_OPEN_READ | GNOME_VFS_OPEN_RANDOM ) );
++	GnomeVFSOpenMode nOpenMode = (GnomeVFSOpenMode)(GNOME_VFS_OPEN_READ | GNOME_VFS_OPEN_RANDOM);
++	if ( bReadWrite )
++		nOpenMode = (GnomeVFSOpenMode)(nOpenMode | GNOME_VFS_OPEN_WRITE | GNOME_VFS_OPEN_LOCKED);
++
++	result = gnome_vfs_open( &handle, (const sal_Char *)aURI, nOpenMode );
+ 	
++	if (bReadWrite && (result == GNOME_VFS_ERROR_NOT_FOUND))
++	{
++		int perm;
++		Authentication aAuth( xEnv );
++
++		perm = ( ( GNOME_VFS_PERM_USER_WRITE | GNOME_VFS_PERM_USER_READ ) |
++			 ( GNOME_VFS_PERM_GROUP_WRITE | GNOME_VFS_PERM_GROUP_READ ) );
++
++		result = gnome_vfs_create
++			( &handle, (const sal_Char *)aURI, nOpenMode, TRUE, perm );
++	}
++
+ 	if (result == GNOME_VFS_ERROR_INVALID_OPEN_MODE ||
+ 	    result == GNOME_VFS_ERROR_NOT_SUPPORTED)
+-		return createTempStream( xEnv );
+-	
+-	if (result != GNOME_VFS_OK)
++		return xStream;
++	else if (result == GNOME_VFS_ERROR_LOCKED )
++		throwLocked( xEnv );
++	else if (result != GNOME_VFS_OK)
+ 		cancelCommandExecution( result, xEnv );
+ 
+ 	// Try a seek just to make sure it's Random access: some lie.
+ 	result = gnome_vfs_seek( handle, GNOME_VFS_SEEK_START, 0);
+ 	if (result == GNOME_VFS_ERROR_NOT_SUPPORTED) {
+ 		gnome_vfs_close( handle );
+-		return createTempStream( xEnv );
++		return xStream;
+ 	}
+ 
+ 	if (result != GNOME_VFS_OK)
+ 		cancelCommandExecution( result, xEnv );
+ 
+ 	if (handle != NULL)
+-		xIn = new ::gvfs::Stream( handle, &m_info );
++		xStream = new ::gvfs::Stream( handle, &m_info, (const sal_Char *)aURI, nOpenMode );
+ 
+-	return xIn;
++	return xStream;
+ }
+ 
+ sal_Bool
+@@ -1570,25 +1630,53 @@ Content::feedSink( uno::Reference< ::com
+ 	if ( !aSink.is() )
+ 		return sal_False;
+ 
+-	uno::Reference< io::XOutputStream > xOut
+-		= uno::Reference< io::XOutputStream >(aSink, uno::UNO_QUERY );
+-	uno::Reference< io::XActiveDataSink > xDataSink
+-		= uno::Reference< io::XActiveDataSink >(aSink, uno::UNO_QUERY );
+-	
+-	if ( !xOut.is() && !xDataSink.is() )
+-		return sal_False;
+-
+-	uno::Reference< io::XInputStream > xIn = createInputStream( xEnv );
+-	if ( !xIn.is() )
+-		return sal_False;
+-	
++	uno::Reference< io::XOutputStream > xOut( aSink, uno::UNO_QUERY );
+ 	if ( xOut.is() )
++	{
++#ifdef DEBUG
++		g_warning( "feedSink(), using XOutputStream" );
++#endif
++		uno::Reference< io::XInputStream > xIn( createStream( xEnv, false ), uno::UNO_QUERY );
++		if ( !xIn.is() )
++			xIn = createTempStream( xEnv );
++		if ( !xIn.is() )
++			return sal_False;
++
+ 		copyData( xIn, xOut );
++		return sal_True;
++	}
+ 
++	uno::Reference< io::XActiveDataSink > xDataSink( aSink, uno::UNO_QUERY );
+ 	if ( xDataSink.is() )
++	{
++#ifdef DEBUG
++		g_warning( "feedSink(), using XActiveDataSink" );
++#endif
++		uno::Reference< io::XInputStream > xIn( createStream( xEnv, false ), uno::UNO_QUERY );
++		if ( !xIn.is() )
++			xIn = createTempStream( xEnv );
++		if ( !xIn.is() )
++			return sal_False;
++
+ 		xDataSink->setInputStream( xIn );
++		return sal_True;
++	}
++
++	uno::Reference< io::XActiveDataStreamer > xDataStreamer( aSink, uno::UNO_QUERY );
++	if ( xDataStreamer.is() )
++	{
++#ifdef DEBUG
++		g_warning( "feedSink(), using XActiveDataStreamer" );
++#endif
++		uno::Reference< io::XStream > xStream = createStream( xEnv, true );
++		if ( !xStream.is() )
++			return sal_False;
+ 
+-	return sal_True;
++		xDataStreamer->setStream( xStream );
++		return sal_True;
++	}
++	
++	return sal_False;
+ }
+ 
+ extern "C" {
+--- ucb/source/ucp/gvfs/content.hxx	2007-04-03 15:32:17.000000000 +0200
++++ ucb/source/ucp/gvfs/content.hxx	2007-04-03 15:32:40.000000000 +0200
+@@ -65,6 +65,7 @@ namespace com { namespace sun { namespac
+ namespace com { namespace sun { namespace star { namespace io {
+ 	class XInputStream;
+ 	class XOutputStream;
++	class XStream;
+ } } } }
+ 
+ namespace com { namespace sun { namespace star { namespace sdbc {
+@@ -108,6 +109,7 @@ private:
+ 	ContentProvider  *m_pProvider;  // No need for a ref, base class holds object
+ 	sal_Bool          m_bTransient; // A non-existant (as yet) item
+ 	GnomeVFSFileInfo  m_info;       // cached status information
++	sal_Bool          m_bForceReadOnly; // behave as read-only
+ 
+ 	// Internal helpers
+ 	void                       queryChildren   ( ContentRefList& rChildren );
+@@ -182,9 +184,10 @@ private:
+ 					com::sun::star::ucb::XCommandEnvironment >& xEnv )
+ 		throw( ::com::sun::star::uno::Exception );
+ 	::com::sun::star::uno::Reference<
+-		::com::sun::star::io::XInputStream > 
+-		createInputStream(  const ::com::sun::star::uno::Reference<
+-					com::sun::star::ucb::XCommandEnvironment >& xEnv )
++		::com::sun::star::io::XStream > 
++		createStream(  const ::com::sun::star::uno::Reference<
++					com::sun::star::ucb::XCommandEnvironment >& xEnv,
++					bool bReadWrite )
+ 		throw( ::com::sun::star::uno::Exception );
+        	sal_Bool feedSink( ::com::sun::star::uno::Reference<
+ 				::com::sun::star::uno::XInterface> aSink,
+@@ -200,6 +203,9 @@ private:
+ 				    sal_Bool bWrite = sal_False )
+ 		throw( ::com::sun::star::uno::Exception );
+ 
++	void throwLocked(const ::com::sun::star::uno::Reference< com::sun::star::ucb::XCommandEnvironment > & xEnv)
++		throw( ::com::sun::star::uno::Exception );
++
+ 
+ public:
+ 	// Non-interface bits
+--- ucb/source/ucp/gvfs/makefile.mk	2007-04-03 15:32:17.000000000 +0200
++++ ucb/source/ucp/gvfs/makefile.mk	2007-04-03 15:32:40.000000000 +0200
+@@ -61,6 +61,14 @@ CFLAGS+=-gdwarf-2
+ PKGCONFIG_LIBS!:=-Wl,--export-dynamic $(PKGCONFIG_LIBS:s/ -llinc//:s/ -lbonobo-activation//:s/ -lgconf-2//:s/ -lORBit-2//:s/ -lIDL-2//:s/ -lgmodule-2.0//:s/ -lgobject-2.0//:s/ -lgthread-2.0//)
+ .ENDIF          # "$(OS)" == "LINUX"
+ 
++.IF "$(debug)" != "" || "$(DEBUG)" != ""
++CFLAGS+=-DDEBUG
++.ENDIF
++
++.IF "$(GNOMEVFS_HAS_LOCKING)" != "YES"
++CFLAGS+=-DGNOME_VFS_OPEN_LOCKED=16
++.ENDIF
++
+ # no "lib" prefix
+ DLLPRE =
+ 
+--- ucb/source/ucp/gvfs/stream.cxx	2007-04-03 15:32:17.000000000 +0200
++++ ucb/source/ucp/gvfs/stream.cxx	2007-04-03 15:32:40.000000000 +0200
+@@ -54,10 +54,14 @@ using namespace com::sun::star::ucb;
+ using namespace gvfs;
+ 
+ Stream::Stream( GnomeVFSHandle         *handle,
+-		const GnomeVFSFileInfo *aInfo ) :
++		const GnomeVFSFileInfo *aInfo,
++		const gchar *uri,
++		GnomeVFSOpenMode open_mode ) :
+ 	m_eof (sal_False),
+ 	m_bInputStreamCalled( sal_False ),
+-	m_bOutputStreamCalled( sal_False )
++	m_bOutputStreamCalled( sal_False ),
++	m_pURI( g_strdup( uri ) ),
++	m_nOpenMode( open_mode )
+ {
+ 	m_handle = handle;
+ 	gnome_vfs_file_info_copy (&m_info, aInfo);
+@@ -69,6 +73,7 @@ Stream::~Stream( void )
+ 		gnome_vfs_close (m_handle);
+ 		m_handle = NULL;
+ 	}
++	g_free( m_pURI );
+ }
+ 
+ Any Stream::queryInterface( const Type &type )
+@@ -271,7 +276,17 @@ void SAL_CALL Stream::truncate( void )
+ 	if( ! m_handle )
+ 		throw IOException();
+ 
+-	throwOnError( gnome_vfs_truncate_handle( m_handle, 0 ) );
++	GnomeVFSResult result = gnome_vfs_truncate_handle( m_handle, 0 );
++
++	if ( result == GNOME_VFS_ERROR_NOT_SUPPORTED )
++	{
++		result = gnome_vfs_close( m_handle );
++		m_handle = NULL;
++		if ( result == GNOME_VFS_OK )
++			result = gnome_vfs_open( &m_handle, m_pURI, (GnomeVFSOpenMode)( m_nOpenMode | GNOME_VFS_OPEN_LOCKED ) );
++	}
++
++	throwOnError( result );
+ }
+ 
+ // -------------------------------------------------------------------
+--- ucb/source/ucp/gvfs/stream.hxx	2007-04-03 15:32:17.000000000 +0200
++++ ucb/source/ucp/gvfs/stream.hxx	2007-04-03 15:32:40.000000000 +0200
+@@ -80,6 +80,8 @@ private:
+ 	sal_Bool         m_eof;
+ 	sal_Bool         m_bInputStreamCalled;
+ 	sal_Bool         m_bOutputStreamCalled;
++	gchar           *m_pURI;     // necessary to be able to simulate gnome_vfs_truncate if not supported
++	GnomeVFSOpenMode m_nOpenMode;// necessary to be able to simulate gnome_vfs_truncate if not supported
+ 
+ 	void throwOnError( GnomeVFSResult result )
+ 		throw( ::com::sun::star::io::NotConnectedException,
+@@ -94,7 +96,9 @@ private:
+ 
+ public:
+ 	Stream ( GnomeVFSHandle         *handle,
+-		 const GnomeVFSFileInfo *aInfo );
++		 const GnomeVFSFileInfo *aInfo,
++		 const gchar *uri,
++		 GnomeVFSOpenMode open_mode );
+ 	virtual ~Stream();
+ 	
+ 	// XInterface
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autocorrect-accidental-caps-lock-vcl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autocorrect-accidental-caps-lock-vcl.diff
@@ -0,0 +1,411 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/aqua/inc/salframe.h vcl/aqua/inc/salframe.h
+--- vcl.clean/aqua/inc/salframe.h	2008-01-14 11:13:04.000000000 -0500
++++ vcl/aqua/inc/salframe.h	2008-02-28 12:57:14.000000000 -0500
+@@ -146,6 +146,8 @@ public:
+     virtual void				Beep( SoundType eSoundType );
+     virtual const SystemEnvData*	GetSystemData() const;
+     virtual SalPointerState		GetPointerState();
++    virtual SalIndicatorState   GetIndicatorState();
++    virtual void                SimulateKeyPress( USHORT nKeyCode );
+     virtual void				SetParent( SalFrame* pNewParent );
+     virtual bool				SetPluginParent( SystemParentData* pNewParent );
+     virtual void                SetExtendedFrameStyle( SalExtStyle );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/aqua/source/window/salframe.cxx vcl/aqua/source/window/salframe.cxx
+--- vcl.clean/aqua/source/window/salframe.cxx	2008-01-14 11:18:51.000000000 -0500
++++ vcl/aqua/source/window/salframe.cxx	2008-02-28 12:57:39.000000000 -0500
+@@ -1197,6 +1197,17 @@ SalPointerState	AquaSalFrame::GetPointer
+     return state;
+ }
+ 
++SalFrame::SalIndicatorState AquaSalFrame::GetIndicatorState()
++{
++    SalIndicatorState aState;
++    aState.mnState = 0;
++    return aState;
++}
++
++void AquaSalFrame::SimulateKeyPress( USHORT /*nKeyCode*/ )
++{
++}
++
+ bool AquaSalFrame::SetPluginParent( SystemParentData* pNewParent )
+ {
+     // plugin parent may be killed unexpectedly by
+Only in vcl: Debug
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/inc/vcl/keycodes.hxx vcl/inc/vcl/keycodes.hxx
+--- vcl.clean/inc/vcl/keycodes.hxx	2008-01-14 11:20:04.000000000 -0500
++++ vcl/inc/vcl/keycodes.hxx	2008-02-28 14:28:37.000000000 -0500
+@@ -171,6 +171,10 @@
+ #define KEY_TILDE       ((USHORT)::com::sun::star::awt::Key::TILDE)
+ #define KEY_QUOTELEFT   ((USHORT)::com::sun::star::awt::Key::QUOTELEFT)
+ 
++#define KEY_CAPSLOCK    ((USHORT)::com::sun::star::awt::Key::CAPSLOCK)
++#define KEY_NUMLOCK     ((USHORT)::com::sun::star::awt::Key::NUMLOCK)
++#define KEY_SCROLLLOCK  ((USHORT)::com::sun::star::awt::Key::SCROLLLOCK)
++
+ #define KEY_CODE		((USHORT)0x0FFF)
+ 
+ // Modifier-Tasten
+@@ -200,4 +204,12 @@
+ #define MOUSE_MIDDLE	((USHORT)0x0002)
+ #define MOUSE_RIGHT 	((USHORT)0x0004)
+ 
++// -------------------
++// - Indicator-Types -
++// -------------------
++
++#define INDICATOR_CAPSLOCK      0x0001
++#define INDICATOR_NUMLOCK       0x0002
++#define INDICATOR_SCROLLLOCK    0x0004
++
+ #endif // _SV_KEYCODES_HXX
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/inc/vcl/salframe.hxx vcl/inc/vcl/salframe.hxx
+--- vcl.clean/inc/vcl/salframe.hxx	2007-10-09 11:17:45.000000000 -0400
++++ vcl/inc/vcl/salframe.hxx	2008-02-28 11:21:03.000000000 -0500
+@@ -272,6 +272,15 @@ public:
+ 
+     virtual SalPointerState		GetPointerState() = 0;
+ 
++    struct SalIndicatorState
++    {
++        USHORT  mnState;
++    };
++
++    virtual SalIndicatorState   GetIndicatorState() = 0;
++
++    virtual void                SimulateKeyPress( USHORT nKeyCode ) = 0;
++
+     // set new parent window
+     virtual void				SetParent( SalFrame* pNewParent ) = 0;
+     // reparent window to act as a plugin; implementation
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/inc/vcl/window.hxx vcl/inc/vcl/window.hxx
+--- vcl.clean/inc/vcl/window.hxx	2008-01-14 08:04:14.000000000 -0500
++++ vcl/inc/vcl/window.hxx	2008-02-28 02:11:44.000000000 -0500
+@@ -1121,6 +1121,22 @@ public:
+     /* mark Window for deletion in top of event queue
+     */
+     void doLazyDelete();
++
++    //-------------------------------------
++    //  Keyboard access functions
++    //-------------------------------------
++
++    /** Query the states of keyboard indicators - Caps Lock, Num Lock and
++        Scroll Lock.  Use the following mask to retrieve the state of each
++        indicator:
++        
++            INDICATOR_CAPS_LOCK
++            INDICATOR_NUM_LOCK
++            INDICATOR_SCROLL_LOCK
++      */
++    USHORT GetIndicatorState() const;
++
++    void SimulateKeyPress( USHORT nKeyCode ) const;
+ };
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/os2/inc/salframe.h vcl/os2/inc/salframe.h
+--- vcl.clean/os2/inc/salframe.h	2007-11-02 08:44:25.000000000 -0400
++++ vcl/os2/inc/salframe.h	2008-02-28 13:00:17.000000000 -0500
+@@ -168,6 +168,8 @@ public:
+     virtual void				Beep( SoundType eSoundType );
+     virtual const SystemEnvData*	GetSystemData() const;
+     virtual SalPointerState		GetPointerState();
++    virtual SalIndicatorState   GetIndicatorState();
++    virtual void                SimulateKeyPress( USHORT nKeyCode );
+     virtual void				SetParent( SalFrame* pNewParent );
+     virtual bool				SetPluginParent( SystemParentData* pNewParent );
+     virtual void                SetBackgroundBitmap( SalBitmap* );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/os2/source/window/salframe.cxx vcl/os2/source/window/salframe.cxx
+--- vcl.clean/os2/source/window/salframe.cxx	2007-11-02 08:51:30.000000000 -0400
++++ vcl/os2/source/window/salframe.cxx	2008-02-28 13:01:25.000000000 -0500
+@@ -2335,6 +2335,19 @@ SalFrame::SalPointerState Os2SalFrame::G
+ 
+ // -----------------------------------------------------------------------
+ 
++SalFrame::SalIndicatorState Os2SalFrame::GetIndicatorState()
++{
++    SalIndicatorState aState;
++    aState.mnState = 0;
++    return aState;
++}
++
++void Os2SalFrame::SimulateKeyPress( USHORT /*nKeyCode*/ )
++{
++}
++
++// -----------------------------------------------------------------------
++
+ void Os2SalFrame::SetBackgroundBitmap( SalBitmap* )
+ {
+ }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/source/window/window.cxx vcl/source/window/window.cxx
+--- vcl.clean/source/window/window.cxx	2008-01-29 11:18:41.000000000 -0500
++++ vcl/source/window/window.cxx	2008-02-28 14:00:43.000000000 -0500
+@@ -4797,6 +4797,16 @@ void Window::doLazyDelete()
+     vcl::LazyDeletor<Window>::Delete( this );
+ }
+ 
++USHORT Window::GetIndicatorState() const
++{
++    return mpWindowImpl->mpFrame->GetIndicatorState().mnState;
++}
++
++void Window::SimulateKeyPress( USHORT nKeyCode ) const
++{
++    mpWindowImpl->mpFrame->SimulateKeyPress(nKeyCode);
++}
++
+ // -----------------------------------------------------------------------
+ 
+ void Window::MouseMove( const MouseEvent& rMEvt )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
+--- vcl.clean/unx/gtk/window/gtkframe.cxx	2008-01-29 11:21:11.000000000 -0500
++++ vcl/unx/gtk/window/gtkframe.cxx	2008-02-28 14:02:01.000000000 -0500
+@@ -2068,6 +2068,18 @@ SalFrame::SalPointerState GtkSalFrame::G
+     return aState;
+ }
+ 
++SalFrame::SalIndicatorState GtkSalFrame::GetIndicatorState()
++{
++    SalIndicatorState aState;
++    aState.mnState = GetX11SalData()->GetDisplay()->GetIndicatorState();
++    return aState;
++}
++
++void GtkSalFrame::SimulateKeyPress( USHORT nKeyCode )
++{
++    GetX11SalData()->GetDisplay()->SimulateKeyPress(nKeyCode);
++}
++
+ void GtkSalFrame::SetInputContext( SalInputContext* pContext )
+ {
+     if( ! pContext )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/headless/svpframe.cxx vcl/unx/headless/svpframe.cxx
+--- vcl.clean/unx/headless/svpframe.cxx	2007-08-03 10:09:51.000000000 -0400
++++ vcl/unx/headless/svpframe.cxx	2008-02-28 11:27:06.000000000 -0500
+@@ -396,6 +396,17 @@ SalFrame::SalPointerState SvpSalFrame::G
+     return aState;
+ }
+ 
++SalFrame::SalIndicatorState SvpSalFrame::GetIndicatorState()
++{
++    SalIndicatorState aState;
++    aState.mnState = 0;
++    return aState;
++}
++
++void SvpSalFrame::SimulateKeyPress( USHORT /*nKeyCode*/ )
++{
++}
++
+ void SvpSalFrame::SetParent( SalFrame* pNewParent )
+ {
+     if( m_pParent )
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/headless/svpframe.hxx vcl/unx/headless/svpframe.hxx
+--- vcl.clean/unx/headless/svpframe.hxx	2007-07-24 06:27:17.000000000 -0400
++++ vcl/unx/headless/svpframe.hxx	2008-02-28 11:26:40.000000000 -0500
+@@ -119,6 +119,8 @@ public:
+     virtual void				Beep( SoundType eSoundType );
+     virtual const SystemEnvData*	GetSystemData() const;
+     virtual SalPointerState     GetPointerState();
++    virtual SalIndicatorState   GetIndicatorState();
++    virtual void                SimulateKeyPress( USHORT nKeyCode );
+     virtual void				SetParent( SalFrame* pNewParent );
+     virtual bool				SetPluginParent( SystemParentData* pNewParent );
+     virtual void                SetBackgroundBitmap( SalBitmap* pBitmap );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/inc/plugins/gtk/gtkframe.hxx vcl/unx/inc/plugins/gtk/gtkframe.hxx
+--- vcl.clean/unx/inc/plugins/gtk/gtkframe.hxx	2008-01-29 11:21:43.000000000 -0500
++++ vcl/unx/inc/plugins/gtk/gtkframe.hxx	2008-02-28 11:22:22.000000000 -0500
+@@ -364,6 +364,10 @@ public:
+     // get current modifier and button mask
+     virtual SalPointerState     GetPointerState();
+ 
++    virtual SalIndicatorState   GetIndicatorState();
++
++    virtual void                SimulateKeyPress( USHORT nKeyCode );
++
+     // set new parent window
+     virtual void                SetParent( SalFrame* pNewParent );
+     // reparent window to act as a plugin; implementation
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/inc/prex.h vcl/unx/inc/prex.h
+--- vcl.clean/unx/inc/prex.h	2007-04-26 06:40:23.000000000 -0400
++++ vcl/unx/inc/prex.h	2008-02-29 09:50:58.000000000 -0500
+@@ -64,6 +64,12 @@ extern "C" {
+ #define __XKeyboardExtension__ 0
+ #endif
+ 
++#if defined(LINUX) || defined(SOLARIS) || defined(FREEBSD)
++#define __XTestExtension__ 1
++#else
++#define __XTestExtension__ 0
++#endif
++
+ #include <X11/X.h>
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/inc/saldisp.hxx vcl/unx/inc/saldisp.hxx
+--- vcl.clean/unx/inc/saldisp.hxx	2008-01-29 11:21:27.000000000 -0500
++++ vcl/unx/inc/saldisp.hxx	2008-02-28 10:16:38.000000000 -0500
+@@ -457,6 +457,8 @@ public:
+     void			Beep() const;
+ 
+     void			ModifierMapping();
++    void            SimulateKeyPress( USHORT nKeyCode );
++    USHORT          GetIndicatorState() const;
+     String			GetKeyNameFromKeySym( KeySym keysym ) const;
+     XubString		GetKeyName( USHORT nKeyCode ) const;
+     USHORT			GetKeyCode( KeySym keysym, char*pcPrintable ) const;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/inc/salframe.h vcl/unx/inc/salframe.h
+--- vcl.clean/unx/inc/salframe.h	2007-08-30 09:56:30.000000000 -0400
++++ vcl/unx/inc/salframe.h	2008-02-28 11:25:36.000000000 -0500
+@@ -272,6 +272,8 @@ public:
+     virtual void				Beep( SoundType eSoundType );
+     virtual const SystemEnvData*	GetSystemData() const;
+     virtual SalPointerState     GetPointerState();
++    virtual SalIndicatorState   GetIndicatorState();
++    virtual void                SimulateKeyPress( USHORT nKeyCode );
+     virtual void				SetParent( SalFrame* pNewParent );
+     virtual bool				SetPluginParent( SystemParentData* pNewParent );
+     virtual void                SetBackgroundBitmap( SalBitmap* pBitmap );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/source/app/saldisp.cxx vcl/unx/source/app/saldisp.cxx
+--- vcl.clean/unx/source/app/saldisp.cxx	2008-01-29 11:22:34.000000000 -0500
++++ vcl/unx/source/app/saldisp.cxx	2008-03-01 22:26:55.000000000 -0500
+@@ -86,6 +86,12 @@ Status XineramaGetInfo(Display*, int, XR
+ #endif
+ #endif
+ 
++#if __XTestExtension__
++#include <X11/extensions/XTest.h>
++#include <X11/extensions/XKB.h>
++#include <X11/XKBlib.h>
++#endif
++
+ #include <postx.h>
+ 
+ #include <salunx.h>
+@@ -1074,6 +1078,35 @@ void SalDisplay::Beep() const
+ 
+ // Keyboard
+ // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++void SalDisplay::SimulateKeyPress( USHORT nKeyCode )
++{
++#if __XTestExtension__
++    if (nKeyCode == KEY_CAPSLOCK)
++    {
++        XLIB_KeyCode keyCaps = XKeysymToKeycode(GetDisplay(), XK_Caps_Lock);
++        if (XTestFakeKeyEvent(GetDisplay(), keyCaps, true, CurrentTime))
++            XTestFakeKeyEvent(GetDisplay(), keyCaps, false, CurrentTime);
++    }
++#endif
++}
++
++USHORT SalDisplay::GetIndicatorState() const
++{
++    unsigned int _state = 0;
++    USHORT nState = 0;
++    XkbGetIndicatorState(pDisp_, XkbUseCoreKbd, &_state);
++
++    if ((_state & 0x00000001))
++        nState |= INDICATOR_CAPSLOCK;
++    if ((_state & 0x00000002))
++        nState |= INDICATOR_NUMLOCK;
++    if ((_state & 0x00000004))
++        nState |= INDICATOR_SCROLLLOCK;
++
++    return nState;
++}
++
+ String SalDisplay::GetKeyNameFromKeySym( KeySym nKeySym ) const
+ {
+ 	String aRet;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/unx/source/window/salframe.cxx vcl/unx/source/window/salframe.cxx
+--- vcl.clean/unx/source/window/salframe.cxx	2008-01-30 04:12:30.000000000 -0500
++++ vcl/unx/source/window/salframe.cxx	2008-02-28 11:26:21.000000000 -0500
+@@ -2757,6 +2757,18 @@ SalFrame::SalPointerState X11SalFrame::G
+     return aState;
+ }
+ 
++SalFrame::SalIndicatorState X11SalFrame::GetIndicatorState()
++{
++    SalIndicatorState aState;
++    aState.mnState = GetX11SalData()->GetDisplay()->GetIndicatorState();
++    return aState;
++}
++
++void X11SalFrame::SimulateKeyPress( USHORT nKeyCode )
++{
++    GetX11SalData()->GetDisplay()->SimulateKeyPress(nKeyCode);
++}
++
+ long X11SalFrame::HandleMouseEvent( XEvent *pEvent )
+ {
+ 	SalMouseEvent		aMouseEvt;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=vcl.vpj vcl.clean/win/inc/salframe.h vcl/win/inc/salframe.h
+--- vcl.clean/win/inc/salframe.h	2007-07-24 06:33:22.000000000 -0400
++++ vcl/win/inc/salframe.h	2008-02-28 12:58:19.000000000 -0500
+@@ -149,6 +149,8 @@ public:
+     virtual void				Beep( SoundType eSoundType );
+     virtual const SystemEnvData*	GetSystemData() const;
+     virtual SalPointerState		GetPointerState();
++    virtual SalIndicatorState   GetIndicatorState();
++    virtual void                SimulateKeyPress( USHORT nKeyCode );
+     virtual void				SetParent( SalFrame* pNewParent );
+     virtual bool				SetPluginParent( SystemParentData* pNewParent );
+     virtual void                SetBackgroundBitmap( SalBitmap* );
+--- vcl.clean/win/source/window/salframe.cxx	2008-01-15 08:25:15.000000000 -0500
++++ vcl/win/source/window/salframe.cxx	2008-03-01 21:12:23.000000000 -0500
+@@ -3177,6 +3177,41 @@ SalFrame::SalPointerState WinSalFrame::G
+ 
+ // -----------------------------------------------------------------------
+ 
++SalFrame::SalIndicatorState WinSalFrame::GetIndicatorState()
++{
++    SalIndicatorState aState;
++    aState.mnState = 0;
++    if (::GetKeyState(VK_CAPITAL))
++        aState.mnState |= INDICATOR_CAPSLOCK;
++
++    if (::GetKeyState(VK_NUMLOCK))
++        aState.mnState |= INDICATOR_NUMLOCK;
++
++    if (::GetKeyState(VK_SCROLL))
++        aState.mnState |= INDICATOR_SCROLLLOCK;
++
++    return aState;
++}
++
++void WinSalFrame::SimulateKeyPress( USHORT nKeyCode )
++{
++    BYTE nVKey = 0;
++    switch (nKeyCode)
++    {
++        case KEY_CAPSLOCK:
++            nVKey = VK_CAPITAL;
++        break;
++    }
++
++    if (nVKey > 0 && nVKey < 255)
++    {
++        ::keybd_event(nVKey, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
++        ::keybd_event(nVKey, 0x45, KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP, 0);
++    }
++}
++
++// -----------------------------------------------------------------------
++
+ void WinSalFrame::SetBackgroundBitmap( SalBitmap* )
+ {
+ }
+--- vcl/util/makefile.mk	29 Jan 2008 16:23:55 -0000	1.104
++++ vcl/util/makefile.mk	3 Mar 2008 15:06:27 -0000
+@@ -323,7 +323,7 @@
+ 
+ .IF "$(GUIBASE)"=="unx"
+ 
+-SHL2STDLIBS += -lXext -lSM -lICE -lX11
++SHL2STDLIBS += -lXext -lXtst -lSM -lICE -lX11
+ .IF "$(OS)"!="MACOSX" && "$(OS)"!="FREEBSD"
+ # needed by salprnpsp.cxx
+ SHL2STDLIBS+= -ldl
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-scripting.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-scripting.diff
@@ -0,0 +1,6 @@
+--- scripting/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ scripting/prj/tests.lst	2007-09-07 13:13:41.000000000 +0200
+@@ -0,0 +1,3 @@
++#does not build: tc   scripting\workben                                  nmake - all tc_workben tc1_scriptingutil NULL
++#does not build: tc   scripting\workben\ifc\scripting                    nmake - all tc_workben_ifc_scripting tc1_scriptingutil NULL
++#does not build: tc   scripting\workben\mod\_scripting                   nmake - all tc_workben_mod__scripting tc1_scriptingutil NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-simple-sort-include-format-header.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-simple-sort-include-format-header.diff
@@ -0,0 +1,19 @@
+diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
+diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
+index e596d23..b573c15 100644
+--- sc/source/ui/view/cellsh2.cxx
++++ sc/source/ui/view/cellsh2.cxx
+@@ -356,11 +356,11 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
+ 				ScDBData*	pDBData = pTabViewShell->GetDBData();
+ 
+ 				pDBData->GetSortParam( aSortParam );
+-				aSortParam.bHasHeader		= FALSE;
++//              aSortParam.bHasHeader       = FALSE;
+ 				aSortParam.bByRow			= TRUE;
+ 				aSortParam.bCaseSens		= FALSE;
+ 				aSortParam.bNaturalSort		= FALSE;
+-				aSortParam.bIncludePattern	= FALSE;
++				aSortParam.bIncludePattern	= TRUE;
+ 				aSortParam.bInplace 		= TRUE;
+ 				aSortParam.bDoSort[0]		= TRUE;
+ 				aSortParam.nField[0]		= aSortParam.nCol1;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-tabstop-Chinese.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-tabstop-Chinese.diff
@@ -0,0 +1,14 @@
+--- ./officecfg/registry/data/org/openoffice/Office/Writer.xcu.bak	2007-09-05 12:29:46.000000000 +0800
++++ ./officecfg/registry/data/org/openoffice/Office/Writer.xcu	2007-09-05 12:30:26.000000000 +0800
+@@ -756,4 +756,11 @@
+        <value >Arial</value>
+      </prop>
+  </node>
++ <node oor:name="Layout" >
++  <node oor:name="Other" >
++    <prop oor:name="TabStop">
++     <value xml:lang="zh-CN">740</value>
++    </prop>
++  </node>
++ </node>
+ </oor:component-data>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/always_default_iconset.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/always_default_iconset.diff
@@ -0,0 +1,14 @@
+--- vcl/source/app/settings.cxx.original	2008-04-08 07:18:13.000000000 +0200
++++ vcl/source/app/settings.cxx	2008-04-11 07:11:08.000000000 +0200
+@@ -795,9 +795,9 @@
+ 				const ::rtl::OUString &rDesktopEnvironment = Application::GetDesktopEnvironment();
+ 
+ 				if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
+-					snFallbackDesktopStyle = STYLE_SYMBOLS_TANGO;
++					snFallbackDesktopStyle = STYLE_SYMBOLS_DEFAULT;
+ 				else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
+-					snFallbackDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
++					snFallbackDesktopStyle = STYLE_SYMBOLS_DEFAULT;
+ 
+ 				sbFallbackDesktopChecked = true;
+ 			}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mozilla-buildlibs-win32.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mozilla-buildlibs-win32.diff
@@ -0,0 +1,156 @@
+--- moz/makefile.mk.orig	2005-09-07 21:59:19.000000000 +0200
++++ moz/makefile.mk	2005-10-14 17:30:15.684000000 +0200
+@@ -79,8 +79,17 @@
+ PATCH_FILE_NAME=mozilla-source-$(MOZILLA_VERSION).patch 
+ 
+ # These files are needed for the W32 build when BUILD_MOZAB is set
++LIBIDL_VERSION*=0.6.8
++LIBIDL_DLLVERSION*=0.6
++LIBIDL_PATCH_NAME*=libIDL-$(LIBIDL_VERSION)-ooo.patch
++LIBIDL_SRCTAR_NAME*=libIDL-$(LIBIDL_VERSION).tar.gz
+ LIBIDL_VC71_ZIPFILE_NAME*=vc71-libIDL-0.6.8-bin.zip
++LIBGLIB_VERSION*=1.2.10
++LIBGLIB_DLLVERSION*=1.2
++LIBGLIB_PATCH_NAME*=glib-$(LIBGLIB_VERSION)-ooo.patch
++LIBGLIB_SRCTAR_NAME*=glib-$(LIBGLIB_VERSION).tar.gz
+ LIBGLIB_VC71_ZIPFILE_NAME*=vc71-glib-1.2.10-bin.zip
++MOZILLA_MAKE_VER=3.79.1
+ WINTOOLS_ZIPFILE_NAME*=wintools.zip
+ 
+ ADDITIONAL_FILES=mailnews$/addrbook$/src$/nsAbMD5sum.cpp
+@@ -234,15 +243,107 @@
+ 	cd $(MOZTOOLSUNPACK)$/buildtools$/windows && $(SET_MOZ_TOOLS_INSTALL_BAT) && cmd /c install.bat
+ 	$(TOUCH) $(MISC)$/build$/wintools.install
+ 
+-$(MISC)$/build$/wintools.complete : \
+-  $(MISC)$/build$/wintools.install \
+-  $(PRJ)$/download$/$(LIBIDL_VC71_ZIPFILE_NAME) \
+-  $(PRJ)$/download$/$(LIBGLIB_VC71_ZIPFILE_NAME)
+-	unzip $(PRJ)$/download$/$(LIBIDL_VC71_ZIPFILE_NAME) -d $(MOZTOOLSINST)
+-	unzip $(PRJ)$/download$/$(LIBGLIB_VC71_ZIPFILE_NAME) -d $(MOZTOOLSINST)
++$(MISC)$/build$/glib.build : \
++  $(PRJ)$/download$/$(LIBGLIB_SRCTAR_NAME)
++	[
++	tar --directory $(MOZTOOLSUNPACK) -xzf $(PRJ)$/download$/$(LIBGLIB_SRCTAR_NAME)
++.IF "$(USE_SHELL)"=="bash"
++	ABSPRJ=`cygpath -a $(PRJ)`
++.ELSE
++	set ABSPRJ=`cygpath -a $(PRJ)`
++.ENDIF
++	cd $(MOZTOOLSUNPACK)$/glib-$(LIBGLIB_VERSION)
++	patch -p1 < $$ABSPRJ$/download$/$(LIBGLIB_PATCH_NAME)
++	nmake -f Makefile.msc
++	cd $$ABSPRJ
++	$(TOUCH) $(MISC)$/build$/glib.build
++	]
++
++$(MISC)$/build$/libIDL.build : \
++  $(MISC)$/build$/glib.build \
++  $(PRJ)$/download$/$(LIBIDL_SRCTAR_NAME)
++	[
++	tar --directory $(MOZTOOLSUNPACK) -xzf $(PRJ)$/download$/$(LIBIDL_SRCTAR_NAME)
++.IF "$(USE_SHELL)"=="bash"
++	ABSPRJ=`cygpath -a $(PRJ)`
++.ELSE
++	set ABSPRJ=`cygpath -a $(PRJ)`
++.ENDIF
++	cd $(MOZTOOLSUNPACK)$/libIDL-$(LIBIDL_VERSION)
++	patch -p1 < $$ABSPRJ$/download$/$(LIBIDL_PATCH_NAME)
++	nmake -f Makefile.msc libIDL-$(LIBIDL_DLLVERSION).dll
++	cd $$ABSPRJ
++	$(TOUCH) $(MISC)$/build$/libIDL.build
++	]
++
++$(MISC)$/build$/make.build : $(MISC)$/build$/wintools.unpack
++	+cd $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER) && nmake -f NMakefile
++	$(TOUCH) $(MISC)$/build$/make.build
++
++$(MISC)$/build$/shmsdos.build : $(MISC)$/build$/wintools.unpack
++	+cd $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/shmsdos && nmake -f shmsdos.mak && nmake -f nsinstall.mak
++	$(TOUCH) $(MISC)$/build$/shmsdos.build
++
++$(MISC)$/build$/uname.build : $(MISC)$/build$/wintools.unpack
++	+cd $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/uname && nmake -f uname.mak
++	$(TOUCH) $(MISC)$/build$/uname.build
++
++LIBVC71_BINFILESLIST+=	\
++	glib-$(LIBGLIB_VERSION)$/glib-$(LIBGLIB_DLLVERSION).dll	\
++	glib-$(LIBGLIB_VERSION)$/gmodule-$(LIBGLIB_DLLVERSION).dll	\
++	libIDL-$(LIBIDL_VERSION)$/libIDL-$(LIBIDL_DLLVERSION).dll
++
++LIBVC71_INCLUDEFILESLIST+=	\
++	glib-$(LIBGLIB_VERSION)$/glib.h	\
++	glib-$(LIBGLIB_VERSION)$/glibconfig.h
++
++LIBVC71_LIBFILESLIST+=	\
++	glib-$(LIBGLIB_VERSION)$/glib-$(LIBGLIB_DLLVERSION).lib	\
++	glib-$(LIBGLIB_VERSION)$/gmodule-$(LIBGLIB_DLLVERSION).lib	\
++	libIDL-$(LIBIDL_VERSION)$/libIDL-$(LIBIDL_DLLVERSION).lib
++
++$(MISC)$/build$/wintools.build : \
++  $(MISC)$/build$/glib.build \
++  $(MISC)$/build$/libIDL.build \
++  $(MISC)$/build$/make.build \
++  $(MISC)$/build$/shmsdos.build \
++  $(MISC)$/build$/uname.build
+ # chmod is also needed for W32-4nt build (when cygwin unzip is used)
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/bin
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/include
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/lib
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/bin
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/include
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/include$/libIDL
++	@+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/lib
++	+$(foreach,file,$(LIBVC71_BINFILESLIST) $(COPY) $(MOZTOOLSUNPACK)$/$(file) \
++	  $(MOZTOOLSINST)$/vc71$/bin &&) \
++	  echo >& $(NULLDEV)
++	+$(foreach,file,$(LIBVC71_INCLUDEFILESLIST) $(COPY) $(MOZTOOLSUNPACK)$/$(file) \
++	  $(MOZTOOLSINST)$/vc71$/include &&) \
++	  echo >& $(NULLDEV)
++	+$(COPY) $(MOZTOOLSUNPACK)$/libIDL-$(LIBIDL_VERSION)$/IDL.h $(MOZTOOLSINST)$/vc71$/include$/libIDL
++	+$(foreach,file,$(LIBVC71_LIBFILESLIST) $(COPY) $(MOZTOOLSUNPACK)$/$(file) \
++	  $(MOZTOOLSINST)$/vc71$/lib &&) \
++	  echo >& $(NULLDEV)
++	+$(COPY) -p $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER)$/WinRel/make.exe \
++	  $(MOZTOOLSINST)$/bin$/gmake.exe
++	+$(COPY) -p $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER)$/acconfig.h \
++	  $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER)$/config.h \
++	  $(MOZTOOLSINST)$/include
++	+$(COPY) -p \
++	  $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/shmsdos$/Release$/shmsdos.exe \
++	  $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/shmsdos$/Release$/nsinstall.exe \
++	  $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/uname$/Release$/uname.exe \
++	  $(MOZTOOLSINST)$/bin
+ 	-chmod -R +x $(MOZTOOLSINST)$/vc71$/bin
++	+$(TOUCH) $(MISC)$/build$/wintools.build
++
++$(MISC)$/build$/wintools.complete : \
++  $(MISC)$/build$/wintools.unpack \
++  $(MISC)$/build$/wintools.build
+ 	$(TOUCH) $(MISC)$/build$/wintools.complete
++
+ .ENDIF # "$(GUI)"=="WNT"
+ 
+ zip:	\
+--- config_office/configure.in	2005-10-13 10:31:41.000000000 +0200
++++ config_office/configure.in	2005-10-14 18:35:17.449625000 +0200
+@@ -2877,13 +2913,14 @@
+    fi 
+    if test "$_os" = "WINNT"; then
+       AC_MSG_CHECKING([for glib and libIDL binaries])
+-      if test ! -e "../moz/download/vc71-glib-1.2.10-bin.zip" \
+-           -o ! -e "../moz/download/vc71-libIDL-0.6.8-bin.zip" \
++      if test ! -e "../moz/download/glib-1.2.10.tar.gz" \
++           -o ! -e "../moz/download/libIDL-0.6.8.tar.gz" \
+            -o ! -e "../moz/download/wintools.zip" ; then
+ AC_MSG_ERROR([One or more of the following archives is missing in moz/download/
+-  vc71-glib-1.2.10-bin.zip
+-  vc71-libIDL-0.6.8-bin.zip
+-(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc71/)
++  glib-1.2.10.tar.gz
++(from ftp://ftp.gtk.org/pub/gtk/v1.2/)
++  libIDL-0.6.8.tar.gz
++(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/source/)
+   wintools.zip
+ (from http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip)])
+       else
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-sd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-sd.diff
@@ -0,0 +1,573 @@
+#Index: sd/source/ui/animations/CustomAnimationDialog.cxx
+#===================================================================
+#RCS file: /cvs/graphics/sd/source/ui/animations/CustomAnimationDialog.cxx,v
+#retrieving revision 1.18
+#retrieving revision 1.18.108.2
+#diff -u -p -u -p -r1.18 -r1.18.108.2
+#--- sd/source/ui/animations/CustomAnimationDialog.cxx	10 May 2007 15:24:40 -0000	1.18
+#+++ sd/source/ui/animations/CustomAnimationDialog.cxx	29 Aug 2007 14:49:32 -0000	1.18.108.2
+#@@ -178,6 +178,8 @@
+# #include "STLPropertySet.hxx"
+# #endif
+# 
+#+#include <avmedia/mediawindow.hxx>
+#+
+# #include "filedlg.hxx"
+# #include "strings.hrc"
+# #include "helpids.h"
+#@@ -1280,7 +1282,6 @@ private:
+# 	FixedText*		mpFTTextDelay;
+# 
+# 	::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > mxPlayer;
+#-	::com::sun::star::uno::Reference< ::com::sun::star::media::XManager > mxManager;
+# };
+# 
+# 
+#@@ -1940,15 +1941,6 @@ void CustomAnimationEffectTabPage::openS
+# 	mpLBSound->SelectEntryPos( (USHORT) nPos );
+# }
+# 
+#-// TODO(Q3): This breaks encapsulation. Either export
+#-// these strings from avmedia, or provide an XManager
+#-// factory there
+#-#ifdef WNT
+#-#	define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
+#-#else
+#-#	define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
+#-#endif
+#-
+# void CustomAnimationEffectTabPage::onSoundPreview()
+# {
+# 	const USHORT nPos = mpLBSound->GetSelectEntryPos();
+#@@ -1956,18 +1948,7 @@ void CustomAnimationEffectTabPage::onSou
+# 	if( nPos >= 2 ) try
+#     {
+# 		const OUString aSoundURL( *(String*)maSoundList.GetObject( nPos-2 ) );
+#-
+#-		if( !mxManager.is() )
+#-		{
+#-			uno::Reference<lang::XMultiServiceFactory> xFac( ::comphelper::getProcessServiceFactory() );
+#-
+#-			mxManager.set(
+#-				xFac->createInstance(
+#-					::rtl::OUString::createFromAscii( AVMEDIA_MANAGER_SERVICE_NAME ) ),
+#-				uno::UNO_QUERY_THROW );
+#-		}
+#-
+#-		mxPlayer.set( mxManager->createPlayer( aSoundURL ), uno::UNO_QUERY_THROW );
+#+                mxPlayer.set( avmedia::MediaWindow::createPlayer( aSoundURL ), uno::UNO_QUERY_THROW ); 
+# 		mxPlayer->start();
+# 	}
+#     catch( uno::Exception& e )
+Index: sd/source/ui/dlg/filedlg.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/dlg/filedlg.cxx,v
+retrieving revision 1.17
+retrieving revision 1.17.66.2
+diff -u -p -u -p -r1.17 -r1.17.66.2
+--- sd/source/ui/dlg/filedlg.cxx	27 Jun 2007 15:40:41 -0000	1.17
++++ sd/source/ui/dlg/filedlg.cxx	27 Nov 2007 12:24:48 -0000	1.17.66.2
+@@ -78,9 +78,6 @@
+ #include <com/sun/star/ui/dialogs/XFilePicker.hpp>
+ #endif
+ 
+-#ifndef _SOUND_HXX //autogen
+-#include <vcl/sound.hxx>
+-#endif
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
+@@ -107,6 +104,7 @@
+ 
+ #include <svx/impgrf.hxx>
+ 
++#include <avmedia/mediawindow.hxx>
+ #include "filedlg.hxx"
+ #include "sdresid.hxx"
+ #include "strings.hrc"
+@@ -133,16 +131,18 @@ private:
+ 
+ 	css::uno::Reference< css::ui::dialogs::XFilePickerControlAccess > 	mxControlAccess;
+ 
+-	Sound						maSound;
++	css::uno::Reference< css::media::XPlayer > mxPlayer;
+     ULONG                       mnPlaySoundEvent;
+ 	BOOL						mbUsableSelection;
+ 	BOOL						mbLabelPlaying;
+-	BOOL						mbDuringPreparePlaying;
+ 
+ 	void						CheckSelectionState();
+ 	                            
+                                 DECL_LINK( PlayMusicHdl, void * );
+-                                DECL_LINK( StopMusicHdl, void * );
++
++    Timer                       maUpdateTimer;
++
++                                DECL_LINK( IsMusicStoppedHdl, void * );
+ 	
+ public:
+ 								SdFileDialog_Imp( const short nDialogType, sal_Bool	bUsableSelection );
+@@ -182,16 +182,18 @@ void SAL_CALL SdFileDialog_Imp::ControlS
+ // ------------------------------------------------------------------------
+ IMPL_LINK( SdFileDialog_Imp, PlayMusicHdl, void *, EMPTYARG )
+ {
++    maUpdateTimer.Stop();
+     mnPlaySoundEvent = 0;
+ 
++    if (mxPlayer.is())
++    { 
++        if (mxPlayer->isPlaying())
++            mxPlayer->stop();
++        mxPlayer.clear();
++    }
++
+ 	if( mbLabelPlaying )
+ 	{
+-        // switch from playing to not playing
+-
+-		// reset, so that sound file gets unlocked
+-        maSound.Stop();
+-		maSound.SetSoundName( String() );
+-		
+         try
+         {
+             mxControlAccess->setLabel( css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY, 
+@@ -208,28 +210,23 @@ IMPL_LINK( SdFileDialog_Imp, PlayMusicHd
+     }
+ 	else
+ 	{
+-        // switch from not playing to playing of current file
+-		if( maSound.IsPlaying() )
+-		{
+-            // reset, so that sound file gets unlocked
+-			maSound.Stop();
+-            maSound.SetSoundName( String() );
+-		}
+-
+-        INetURLObject	aUrl( GetPath() );
+-        String			aSoundFile( aUrl.GetMainURL( INetURLObject::NO_DECODE ) );
+-		
+-        if( aSoundFile.Len() > 0 && Sound::IsSoundFile(aSoundFile) )
++        rtl::OUString aUrl( GetPath() );
++        if ( aUrl.getLength() )
+         {
+-            maSound.SetNotifyHdl( LINK( this, SdFileDialog_Imp, StopMusicHdl ) );
+-			mbDuringPreparePlaying=TRUE;
+-            maSound.SetSoundName( aSoundFile );
+-            maSound.Play();
+-			
+-			ULONG nError = maSound.GetLastError();
+-			mbDuringPreparePlaying=FALSE;
+-            // guard against early stopping
+-            if( maSound.IsPlaying() && !nError)
++            try
++            {
++                mxPlayer.set( avmedia::MediaWindow::createPlayer( aUrl ) );
++                mxPlayer->start();
++                maUpdateTimer.SetTimeout( 100 );
++                maUpdateTimer.Start();
++            }
++            catch( css::uno::Exception& e )
++            {
++                (void)e;
++                mxPlayer.clear();
++            }
++
++            if (mxPlayer.is())
+             {
+                 try
+                 {
+@@ -245,11 +242,6 @@ IMPL_LINK( SdFileDialog_Imp, PlayMusicHd
+ #endif
+                 }
+             }
+-			else if(nError)
+-			{
+-				//reset error state of sound
+-				maSound.SetSoundName( String() );
+-			}
+ 		}
+ 	}
+ 
+@@ -257,16 +249,20 @@ IMPL_LINK( SdFileDialog_Imp, PlayMusicHd
+ }
+ 
+ // ------------------------------------------------------------------------
+-IMPL_LINK( SdFileDialog_Imp, StopMusicHdl, void *, EMPTYARG )
++IMPL_LINK( SdFileDialog_Imp, IsMusicStoppedHdl, void *, EMPTYARG )
+ {
+-	if(mbDuringPreparePlaying)
+-		return( 0L ); //don't reset the error state of maSound during prepare playing
++	::vos::OGuard aGuard( Application::GetSolarMutex() );
++
++    if (
++        mxPlayer.is() && mxPlayer->isPlaying() && 
++        mxPlayer->getMediaTime() < mxPlayer->getDuration()
++       )
++    {
++        maUpdateTimer.Start();
++        return 0L;
++    }
+ 
+-	 ::vos::OGuard aGuard( Application::GetSolarMutex() );
+ 
+-	// reset, so that sound file gets unlocked
+-	maSound.SetSoundName( String() );
+-	
+ 	if( mxControlAccess.is() )
+ 	{
+ 		try
+@@ -315,9 +311,10 @@ SdFileDialog_Imp::SdFileDialog_Imp( cons
+ 	FileDialogHelper( nDialogType, 0 ),
+     mnPlaySoundEvent( 0 ),
+ 	mbUsableSelection( bUsableSelection ),
+-	mbLabelPlaying(FALSE),
+-	mbDuringPreparePlaying(FALSE)
++	mbLabelPlaying(FALSE)
+ {
++	maUpdateTimer.SetTimeoutHdl(LINK(this, SdFileDialog_Imp, IsMusicStoppedHdl));
++
+     css::uno::Reference < ::com::sun::star::ui::dialogs::XFilePicker > xFileDlg = GetFilePicker();
+ 
+ 	// get the control access
+Index: sd/source/ui/func/fusel.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/func/fusel.cxx,v
+retrieving revision 1.50
+retrieving revision 1.50.64.1
+diff -u -p -u -p -r1.50 -r1.50.64.1
+--- sd/source/ui/func/fusel.cxx	27 Jun 2007 15:42:58 -0000	1.50
++++ sd/source/ui/func/fusel.cxx	30 Aug 2007 08:27:59 -0000	1.50.64.1
+@@ -60,9 +60,6 @@
+ #ifndef _GOODIES_IMAPOBJ_HXX //autogen
+ #include <svtools/imapobj.hxx>
+ #endif
+-#ifndef _SV_SOUND_HXX //autogen
+-#include <vcl/sound.hxx>
+-#endif
+ #include <svtools/urihelper.hxx>
+ #include <unotools/localfilehelper.hxx>
+ #include <svx/svxids.hrc>
+@@ -147,6 +144,7 @@
+ #ifndef _SVDUNDO_HXX
+ #include <svx/svdundo.hxx>
+ #endif
++#include <avmedia/mediawindow.hxx>
+ 
+ using namespace ::com::sun::star;
+ 
+@@ -174,7 +172,6 @@ FuSelection::FuSelection (
+       bSuppressChangesOfSelection(FALSE),
+       bMirrorSide0(FALSE),
+       nEditMode(SID_BEZIER_MOVE),
+-      pSound(NULL),
+       pWaterCanCandidate(NULL)
+ {
+ }
+@@ -205,8 +202,6 @@ FuSelection::~FuSelection()
+ 	HPUX_DTOR_BUG;
+ 	mpView->UnmarkAllPoints();
+ 	mpView->ResetCreationActive();
+-    delete pSound;
+-    pSound = NULL;
+ 
+ 	if ( mpView->GetDragMode() != SDRDRAG_MOVE )
+ 	{
+@@ -1226,20 +1221,6 @@ void FuSelection::SetEditMode(USHORT nMo
+ 
+ /*************************************************************************
+ |*
+-|*
+-|*
+-\************************************************************************/
+-
+-IMPL_LINK( FuSelection, SoundHasStoppedHdl, void*, EMPTYARG )
+-{
+-	pSound->SetNotifyHdl( Link() );
+-	pSound->SetSoundName( String() );
+-	return 0L;
+-}
+-
+-
+-/*************************************************************************
+-|*
+ |* Animation oder Interaktion ausfuehren
+ |*
+ \************************************************************************/
+@@ -1389,15 +1370,15 @@ BOOL FuSelection::AnimateObj(SdrObject* 
+ 
+ 	            case presentation::ClickAction_SOUND:
+ 	            {
+-	                // Sound asynchron abspielen
+-	                if( !pSound )
+-	                {
+-	                    pSound = new Sound();
+-	                }
+-
+-	                pSound->SetNotifyHdl( LINK( this, FuSelection, SoundHasStoppedHdl ) );
+-					pSound->SetSoundName( pInfo->maBookmark );
+-	                pSound->Play();
++                        try
++                        {
++                            mxPlayer.set( avmedia::MediaWindow::createPlayer( pInfo->maBookmark ) );
++                            mxPlayer->start();
++                        }
++                        catch( uno::Exception& e )
++                        {
++                            (void)e;
++                        }
+ 	                bAnimated = TRUE;
+ 	            }
+ 	            break;
+Index: sd/source/ui/func/fuslsel.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/func/fuslsel.cxx,v
+retrieving revision 1.22
+retrieving revision 1.22.184.1
+diff -u -p -u -p -r1.22 -r1.22.184.1
+--- sd/source/ui/func/fuslsel.cxx	12 Dec 2006 17:24:06 -0000	1.22
++++ sd/source/ui/func/fuslsel.cxx	30 Aug 2007 08:28:00 -0000	1.22.184.1
+@@ -50,9 +50,6 @@
+ #ifndef _SFXVIEWFRM_HXX //autogen
+ #include <sfx2/viewfrm.hxx>
+ #endif
+-#ifndef _SV_SOUND_HXX //autogen
+-#include <vcl/sound.hxx>
+-#endif
+ #ifndef _SV_MSGBOX_HXX //autogen
+ #include <vcl/msgbox.hxx>
+ #endif
+@@ -103,8 +100,7 @@ FuSlideSelection::FuSlideSelection (
+     : FuSlide(pViewSh, pWin, pView, pDoc, rReq),
+       bSubstShown(FALSE),
+       bPageHit(FALSE),
+-      bDragSelection(FALSE),
+-	  pSound(new Sound)
++      bDragSelection(FALSE)
+ {
+ 	pIsShowingEffectInfo = new FSS_IsShowingEffectInfo;
+ 	pIsShowingEffectInfo->bDisposed = FALSE;
+@@ -131,7 +127,6 @@ void FuSlideSelection::DoExecute( SfxReq
+ FuSlideSelection::~FuSlideSelection()
+ {
+     aDragTimer.Stop();
+-	delete pSound;
+ 
+ 	if( pIsShowingEffectInfo && pIsShowingEffectInfo->bIsShowingEffect )
+ 	{
+@@ -496,10 +491,6 @@ void FuSlideSelection::Activate()
+ 
+ void FuSlideSelection::Deactivate()
+ {
+-	// Sound nicht mehr blockieren, damit er in der Show gespielt werden kann
+-	if (pSound)
+-		pSound->Stop();
+-
+ 	FuSlide::Deactivate();
+ }
+ 
+Index: sd/source/ui/inc/fusel.hxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/inc/fusel.hxx,v
+retrieving revision 1.6
+retrieving revision 1.6.442.1
+diff -u -p -u -p -r1.6 -r1.6.442.1
+--- sd/source/ui/inc/fusel.hxx	14 Dec 2005 17:16:09 -0000	1.6
++++ sd/source/ui/inc/fusel.hxx	30 Aug 2007 08:28:00 -0000	1.6.442.1
+@@ -40,6 +40,8 @@
+ #include "fudraw.hxx"
+ #endif
+ 
++#include <com/sun/star/media/XPlayer.hpp>
++
+ class SdrHdl;
+ class SdrObject;
+ class Sound;
+@@ -96,10 +98,7 @@ protected:
+ 	BOOL            bSuppressChangesOfSelection;
+ 	BOOL            bMirrorSide0;
+ 	USHORT          nEditMode;
+-	Sound*          pSound;
+-
+-					DECL_LINK( SoundHasStoppedHdl, void* );
+-					DECL_STATIC_LINK( FuSelection, StaticSoundHasStoppedHdl, Sound* );
++        ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > mxPlayer;
+ 
+ private:
+     /** This pointer stores a canidate for assigning a style in the water
+Index: sd/source/ui/inc/fuslsel.hxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/inc/fuslsel.hxx,v
+retrieving revision 1.7
+retrieving revision 1.7.442.1
+diff -u -p -u -p -r1.7 -r1.7.442.1
+--- sd/source/ui/inc/fuslsel.hxx	14 Dec 2005 17:17:12 -0000	1.7
++++ sd/source/ui/inc/fuslsel.hxx	30 Aug 2007 08:28:00 -0000	1.7.442.1
+@@ -109,7 +109,6 @@ private:
+ 	Point		                aDragSelRectAnchor;  // fester Punkt des Selektionsrechtecks
+ 	Rectangle	                aDragSelRect;
+ 	Point		                aPosOfInsertMarker;
+-    Sound*		                pSound;
+ 	FSS_IsShowingEffectInfo*	pIsShowingEffectInfo;
+ 
+ 	void                        DrawInsertMarker(BOOL bShow);
+Index: sd/source/ui/inc/tpaction.hxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/inc/tpaction.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.182.1
+diff -u -p -u -p -r1.10 -r1.10.182.1
+--- sd/source/ui/inc/tpaction.hxx	12 Dec 2006 17:49:15 -0000	1.10
++++ sd/source/ui/inc/tpaction.hxx	30 Aug 2007 08:28:00 -0000	1.10.182.1
+@@ -56,9 +56,6 @@
+ #include <vcl/fixed.hxx>
+ #endif
+ 
+-#ifndef _SOUND_HXX //autogen
+-#include <vcl/sound.hxx>
+-#endif
+ #ifndef _SVX_DLG_CTRL_HXX //autogen
+ #include <svx/dlgctrl.hxx>
+ #endif
+#Index: sd/source/ui/slideshow/slideshowimpl.cxx
+#===================================================================
+#RCS file: /cvs/graphics/sd/source/ui/slideshow/slideshowimpl.cxx,v
+#retrieving revision 1.46
+#retrieving revision 1.46.34.2
+#diff -u -p -u -p -r1.46 -r1.46.34.2
+#--- sd/source/ui/slideshow/slideshowimpl.cxx	2 Aug 2007 18:23:37 -0000	1.46
+#+++ sd/source/ui/slideshow/slideshowimpl.cxx	29 Aug 2007 14:49:32 -0000	1.46.34.2
+#@@ -116,15 +116,7 @@
+# #include "slideshow.hrc"
+# #include "canvas/elapsedtime.hxx"
+# #include "canvas/prioritybooster.hxx"
+#-
+#-// TODO(Q3): This breaks encapsulation. Either export
+#-// these strings from avmedia, or provide an XManager
+#-// factory there
+#-#ifdef WNT
+#-#	define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
+#-#else
+#-#	define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
+#-#endif 
+#+#include "avmedia/mediawindow.hxx"
+# 
+# using ::com::sun::star::uno::UNO_QUERY;
+# using ::com::sun::star::uno::UNO_QUERY_THROW;
+#@@ -1694,17 +1686,7 @@ void SAL_CALL SlideshowImpl::click( cons
+# 	{
+# 		try
+# 		{
+#-			if( !mxManager.is() )
+#-			{
+#-				uno::Reference<lang::XMultiServiceFactory> xFac( ::comphelper::getProcessServiceFactory() );
+#-		                    
+#-				mxManager.set(
+#-					xFac->createInstance( 
+#-						::rtl::OUString::createFromAscii( AVMEDIA_MANAGER_SERVICE_NAME ) ),
+#-					uno::UNO_QUERY_THROW );
+#-			}
+#-
+#-			mxPlayer.set( mxManager->createPlayer( pEvent->maStrBookmark ), uno::UNO_QUERY_THROW );
+#+                        mxPlayer.set(avmedia::MediaWindow::createPlayer(pEvent->maStrBookmark), uno::UNO_QUERY_THROW );
+# 			mxPlayer->start();
+# 		}
+# 		catch( uno::Exception& e )
+#Index: sd/source/ui/slideshow/slideshowimpl.hxx
+#===================================================================
+#RCS file: /cvs/graphics/sd/source/ui/slideshow/slideshowimpl.hxx,v
+#retrieving revision 1.23
+#retrieving revision 1.23.120.1
+#diff -u -p -u -p -r1.23 -r1.23.120.1
+#--- sd/source/ui/slideshow/slideshowimpl.hxx	3 Apr 2007 16:16:22 -0000	1.23
+#+++ sd/source/ui/slideshow/slideshowimpl.hxx	29 Aug 2007 14:40:07 -0000	1.23.120.1
+#@@ -400,7 +400,6 @@ private:
+# 	::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxPreviewAnimationNode;
+# 
+# 	::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > mxPlayer;
+#-	::com::sun::star::uno::Reference< ::com::sun::star::media::XManager > mxManager;
+# 
+#     ::std::auto_ptr<PaneHider> mpPaneHider;
+# 
+Index: sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx,v
+retrieving revision 1.32
+retrieving revision 1.32.120.1
+diff -u -p -u -p -r1.32 -r1.32.120.1
+--- sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx	3 Apr 2007 16:17:50 -0000	1.32
++++ sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx	30 Aug 2007 08:28:00 -0000	1.32.120.1
+@@ -61,9 +61,6 @@
+ #include "ViewShellBase.hxx"
+ #endif
+ #include "DrawController.hxx"
+-#ifndef _SV_SOUND_HXX
+-#include <vcl/sound.hxx>
+-#endif
+ #ifndef _SFXVIEWFRM_HXX
+ #include <sfx2/viewfrm.hxx>
+ #endif
+Index: sd/source/ui/view/drviewse.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/view/drviewse.cxx,v
+retrieving revision 1.71
+retrieving revision 1.69.34.3
+diff -u -p -u -p -r1.71 -r1.69.34.3
+--- sd/source/ui/view/drviewse.cxx	10 Oct 2007 15:32:44 -0000	1.71
++++ sd/source/ui/view/drviewse.cxx	16 Oct 2007 08:44:30 -0000	1.69.34.3
+@@ -126,9 +126,6 @@
+ #ifndef _URLOBJ_HXX //autogen
+ #include <tools/urlobj.hxx>
+ #endif
+-#ifndef _SV_SOUND_HXX
+-#include <vcl/sound.hxx>
+-#endif
+ 
+ // #UndoRedo#
+ #ifndef _SFXSLSTITM_HXX
+@@ -218,6 +215,9 @@
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+ #endif
++#ifndef _AVMEDIA_MEDIAWINDOW_HXX //autogen
++#include <avmedia/mediawindow.hxx>
++#endif
+ 
+ #include "Window.hxx"
+ 
+@@ -1691,7 +1691,7 @@ void DrawViewShell::InsertURLButton(cons
+ 			form::FormButtonType eButtonType = form::FormButtonType_URL;
+ 			aTmp <<= eButtonType;
+ 			xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
+-			if ( Sound::IsSoundFile( rURL ) )
++			if ( ::avmedia::MediaWindow::isMediaURL( rURL ) )
+ 			{
+ 				// #105638# OJ
+ 				aTmp <<= sal_True;
+@@ -1732,7 +1732,7 @@ void DrawViewShell::InsertURLButton(cons
+ 		aTmp <<= eButtonType;
+ 		xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
+ 		// #105638# OJ
+-		if ( Sound::IsSoundFile( rURL ) )
++		if ( ::avmedia::MediaWindow::isMediaURL( rURL ) )
+ 		{
+ 			aTmp <<= sal_True;
+ 			xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DispatchURLInternal" )), aTmp );
+Index: sd/source/ui/view/sdview4.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/view/sdview4.cxx,v
+retrieving revision 1.32
+retrieving revision 1.31.184.2
+diff -u -p -u -p -r1.32 -r1.31.184.2
+--- sd/source/ui/view/sdview4.cxx	6 Sep 2007 13:56:57 -0000	1.32
++++ sd/source/ui/view/sdview4.cxx	4 Oct 2007 11:11:33 -0000	1.31.184.2
+@@ -56,9 +56,6 @@
+ #ifndef _SV_MSGBOX_HXX //autogen
+ #include <vcl/msgbox.hxx>
+ #endif
+-#ifndef _SV_SOUND_HXX //autogen
+-#include <vcl/sound.hxx>
+-#endif
+ #ifndef _URLBMK_HXX //autogen
+ #include <svtools/urlbmk.hxx>
+ #endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sensible-ooomua.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sensible-ooomua.diff
@@ -0,0 +1,44 @@
+Index: Common.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
+retrieving revision 1.31
+diff -u -u -r1.31 Common.xcu
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu	23 Mar 2005 10:53:46 -0000	1.31
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu	25 May 2005 23:23:30 -0000
+@@ -597,4 +597,9 @@
+       <value>false</value>
+     </prop>
+   </node>
++  <node oor:name="ExternalMailer">
++    <prop oor:name="Program" oor:type="xs:string">
++      <value>sensible-ooomua</value>
++    </prop>
++  </node>
+ </oor:component-data>
+Index: shell/source/unix/misc/senddoc.sh
+===================================================================
+RCS file: /cvs/gsl/shell/source/unix/misc/senddoc.sh,v
+retrieving revision 1.8
+diff -u -u -r1.8 senddoc.sh
+--- shell/source/unix/misc/senddoc.sh	27 Sep 2005 12:55:00 -0000	1.8
++++ shell/source/unix/misc/senddoc.sh	16 Feb 2006 00:38:29 -0000
+@@ -91,6 +91,19 @@
+ 	shift
+ fi
+ 
++case `basename "$MAILER"` in
++	sensible-ooomua)
++		if [ -n "$GNOME_DESKTOP_SESSION_ID" -a -x /usr/bin/evolution ]; then
++			MAILER=/usr/bin/evolution
++		elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kmail ]; then
++			MAILER=/usr/bin/kmail
++		elif [ -x /usr/bin/evolution ]; then
++			# default
++			MAILER=/usr/bin/evolution
++		fi
++		;;
++esac
++
+ # autodetect mail client from executable name
+ case `basename "$MAILER" | sed 's/-.*$//'` in
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/dont-check-fqdn.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/dont-check-fqdn.diff
@@ -0,0 +1,19 @@
+--- sal/osl/unx/socket.c	2006-07-19 12:39:22.000000000 +0300
++++ sal/osl/unx/socket.c	2007-07-10 14:52:47.000000000 +0300
+@@ -878,6 +878,8 @@
+ 
+ static sal_Char* _osl_getFullQualifiedDomainName (const sal_Char *pHostName)
+ {
++    return strdup(pHostName);
++#if 0
+ #	define DOMAINNAME_LENGTH 512
+ 	sal_uInt32 			nLengthOfHostName;
+ 	static sal_uInt32 	nLengthOfDomainName = 0;
+@@ -1067,6 +1069,7 @@
+ 	/* always return a hostname looked up as carefully as possible
+ 	 * this string must be freed by the caller */
+ 	return pFullQualifiedName;
++ #endif
+ }
+ 
+ /*****************************************************************************/
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/lockfile-dont-do-dns-lookup.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/lockfile-dont-do-dns-lookup.diff
@@ -0,0 +1,105 @@
+diff --git desktop/source/app/lockfile.cxx desktop/source/app/lockfile.cxx
+index b1bba75..a026115 100644
+--- desktop/source/app/lockfile.cxx
++++ desktop/source/app/lockfile.cxx
+@@ -36,6 +36,8 @@
+ #include <tools/prewin.h>
+ #include <windows.h>
+ #include <tools/postwin.h>
++#else
++#include <unistd.h>
+ #endif
+ #include <sal/types.h>
+ #include <osl/file.hxx>
+@@ -53,6 +55,37 @@ using namespace ::rtl;
+ using namespace ::utl;
+ 
+ 
++static rtl::OString impl_getHostname()
++{
++    rtl::OString aHost;
++#ifdef WNT
++    /*
++       prevent windows from connecting to the net to get it's own
++       hostname by using the netbios name
++       */
++    sal_Int32 sz = MAX_COMPUTERNAME_LENGTH + 1;
++    char* szHost = new char[sz];
++    if (GetComputerName(szHost, (LPDWORD)&sz))
++        aHost = OString(szHost);
++    else
++        aHost = OString("UNKNOWN");
++    delete[] szHost;
++#else
++    /* Don't do dns lookup on Linux either */
++    sal_Char pHostName[1024];
++
++    if ( gethostname( pHostName, sizeof( pHostName ) - 1 ) == 0 )
++    {
++        pHostName[sizeof( pHostName ) - 1] = '\0';
++        aHost = OString( pHostName );
++    }
++    else
++        aHost = OString("UNKNOWN");
++#endif
++
++    return aHost;
++}
++
+ namespace desktop {
+ 
+ 	// initialize static members...
+@@ -158,25 +191,9 @@ namespace desktop {
+         
+ 		ByteString aHost  = aConfig.ReadKey( Hostkey() );
+ 		ByteString aUser  = aConfig.ReadKey( Userkey() );
++
+ 		// lockfile from same host?
+-		ByteString myHost;
+-#ifdef WNT
+-        /*
+-          prevent windows from connecting to the net to get it's own
+-          hostname by using the netbios name
+-        */
+-        sal_Int32 sz = MAX_COMPUTERNAME_LENGTH + 1;
+-        char* szHost = new char[sz];
+-        if (GetComputerName(szHost, (LPDWORD)&sz))
+-            myHost = OString(szHost);
+-        else
+-            myHost = OString("UNKNOWN");
+-        delete[] szHost;
+-#else
+-		oslSocketResult sRes;
+-        myHost  = OUStringToOString(
+-			SocketAddr::getLocalHostname( &sRes ), RTL_TEXTENCODING_ASCII_US );
+-#endif
++		ByteString myHost( impl_getHostname() );
+ 		if (aHost == myHost) {
+ 			// lockfile by same UID
+ 			OUString myUserName;
+@@ -196,24 +213,7 @@ namespace desktop {
+ 		aConfig.SetGroup(Group());
+ 
+ 		// get information
+-        ByteString aHost;
+-#ifdef WNT
+-        /*
+-          prevent windows from connecting to the net to get it's own
+-          hostname by using the netbios name
+-        */
+-        sal_Int32 sz = MAX_COMPUTERNAME_LENGTH + 1;
+-        char* szHost = new char[sz];
+-        if (GetComputerName(szHost, (LPDWORD)&sz))
+-            aHost = OString(szHost);
+-        else
+-            aHost = OString("UNKNOWN");
+-        delete[] szHost;
+-#else
+-		oslSocketResult sRes;
+-		aHost  = OUStringToOString(
+-			SocketAddr::getLocalHostname( &sRes ), RTL_TEXTENCODING_ASCII_US );
+-#endif
++		ByteString aHost( impl_getHostname() );
+ 		OUString aUserName;
+ 		Security aSecurity;
+ 		aSecurity.getUserName( aUserName );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-update-relative-links.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-update-relative-links.diff
@@ -0,0 +1,186 @@
+diff --git sd/inc/drawdoc.hxx sd/inc/drawdoc.hxx
+index d6d4e73..642f51c 100644
+--- sd/inc/drawdoc.hxx
++++ sd/inc/drawdoc.hxx
+@@ -232,6 +232,7 @@ private:
+ 	::std::auto_ptr<ImpMasterPageListWatcher> mpMasterPageListWatcher;
+ 
+ 	void                UpdatePageObjectsInNotes(USHORT nStartPos);
++	void                UpdatePageRelativeURLs(SdPage* pPage, USHORT nPos, sal_Int32 nIncrement);
+ 	void                FillOnlineSpellingList(SdPage* pPage);
+ 	void                SpellObject(SdrTextObj* pObj);
+ 
+@@ -239,6 +240,9 @@ private:
+ 	                    DECL_LINK(OnlineSpellingHdl, Timer*);
+ 	                    DECL_LINK(OnlineSpellEventHdl, EditStatus*);
+ 
++public:
++	void                UpdatePageRelativeURLs(const String& rOldName, const String& rNewName);
++
+ protected:
+ 
+ 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoModel();
+diff --git sd/source/core/drawdoc2.cxx sd/source/core/drawdoc2.cxx
+index d2d630c..d9b399b 100644
+--- sd/source/core/drawdoc2.cxx
++++ sd/source/core/drawdoc2.cxx
+@@ -88,6 +88,8 @@
+ #ifndef _SFXITEMPOOL_HXX
+ #include <svtools/itempool.hxx>
+ #endif
++#include <svx/svdpool.hxx>
++#include <svx/flditem.hxx>
+ 
+ 
+ #include <svx/linkmgr.hxx>
+@@ -349,6 +351,107 @@ void SdDrawDocument::UpdatePageObjectsInNotes(USHORT nStartPos)
+ 	}
+ }
+ 
++void SdDrawDocument::UpdatePageRelativeURLs(const String& rOldName, const String& rNewName)
++{
++    if (rNewName.Len() == 0)
++        return;
++
++    SfxItemPool& pPool(GetPool());
++    USHORT nCount = pPool.GetItemCount(EE_FEATURE_FIELD);
++    for (USHORT nOff = 0; nOff < nCount; nOff++) {
++        const SfxPoolItem *pItem = pPool.GetItem(EE_FEATURE_FIELD, nOff);
++        const SvxFieldItem* pFldItem;
++
++        if ((pFldItem = dynamic_cast< const SvxFieldItem * > (pItem)) != 0) {
++            const SvxFieldData *pData = pFldItem->GetField();
++
++            if (pData->ISA(SvxURLField)) {
++                SvxURLField* pURLField = (SvxURLField*) pData;
++
++                if (pURLField->GetFormat() == SVXURLFORMAT_REPR) {
++                    XubString aURL = pURLField->GetURL();
++
++                    if (aURL.GetChar(0) == 35 && aURL.Search(rOldName, 1) == 1) {
++                        if (aURL.Len() == rOldName.Len() + 1) { // standard page name
++                            aURL.Erase (1, aURL.Len() - 1);
++                            aURL += rNewName;
++                            pURLField->SetURL(aURL);
++                        } else {
++                            const XubString sNotes = SdResId(STR_NOTES);
++                            if (aURL.Len() == rOldName.Len() + 2 + sNotes.Len() && aURL.Search(sNotes, rOldName.Len() + 2) == rOldName.Len() + 2) {
++                                aURL.Erase (1, aURL.Len() - 1);
++                                aURL += rNewName;
++                                aURL += ' ';
++                                aURL += sNotes;
++                                pURLField->SetURL(aURL);
++                            }
++                        }
++                    }
++                }
++            }
++		}
++	}
++}
++
++void SdDrawDocument::UpdatePageRelativeURLs(SdPage* pPage, USHORT nPos, sal_Int32 nIncrement)
++{
++    bool bNotes = (pPage->GetPageKind() == PK_NOTES);
++
++    SfxItemPool& pPool(GetPool());
++    USHORT nCount = pPool.GetItemCount(EE_FEATURE_FIELD);
++    for (USHORT nOff = 0; nOff < nCount; nOff++) {
++        const SfxPoolItem *pItem = pPool.GetItem(EE_FEATURE_FIELD, nOff);
++        const SvxFieldItem* pFldItem;
++
++        if ((pFldItem = dynamic_cast< const SvxFieldItem * > (pItem)) != 0) {
++            const SvxFieldData *pData = pFldItem->GetField();
++
++            if (pData->ISA(SvxURLField)) {
++                SvxURLField* pURLField = (SvxURLField*) pData;
++
++                if (pURLField->GetFormat() == SVXURLFORMAT_REPR) {
++                    XubString aURL = pURLField->GetURL();
++
++                    if (aURL.GetChar(0) == 35) {
++                        XubString aHashSlide('#');
++                        aHashSlide += SdResId(STR_PAGE);
++
++                        if (aURL.CompareTo(aHashSlide, aHashSlide.Len()) == COMPARE_EQUAL) {
++                            XubString aURLCopy = aURL;
++                            const XubString sNotes = SdResId(STR_NOTES);
++
++                            aURLCopy.Erase(0, aHashSlide.Len());
++
++                            bool bNotesLink = (aURLCopy.Len() >= sNotes.Len() + 3 && aURLCopy.Search(sNotes, aURLCopy.Len() - sNotes.Len()) == aURLCopy.Len() - sNotes.Len());
++
++                            if (bNotesLink ^ bNotes)
++                                continue; // no compatible link and page
++
++                            if (bNotes)
++                                aURLCopy.Erase(aURLCopy.Len() - sNotes.Len(), sNotes.Len());
++
++                            sal_Int32 number = aURLCopy.ToInt32();
++                            USHORT realPageNumber = (nPos + 1)/ 2;
++
++                            if ( number >= realPageNumber ) {
++                                // update link page number
++                                number += nIncrement;
++                                aURL.Erase (aHashSlide.Len() + 1, aURL.Len() - aHashSlide.Len() - 1);
++                                aURL += XubString::CreateFromInt32(number);
++                                if (bNotes) {
++                                    aURL += ' ';
++                                    aURL += sNotes;
++                                }
++                                pURLField->SetURL(aURL);
++                            }
++                        }
++                    }
++                }
++            }
++		}
++	}
++}
++
+ /*************************************************************************
+ |*
+ |*	Seite verschieben
+@@ -373,11 +476,14 @@ void SdDrawDocument::MovePage(USHORT nPgNum, USHORT nNewPos)
+ 
+ void SdDrawDocument::InsertPage(SdrPage* pPage, USHORT nPos)
+ {
++    bool bLast = (nPos == GetPageCount());
+ 	FmFormModel::InsertPage(pPage, nPos);
+ 
+ 	((SdPage*)pPage)->ConnectLink();
+ 
+ 	UpdatePageObjectsInNotes(nPos);
++    if (!bLast)
++        UpdatePageRelativeURLs((SdPage*)pPage, nPos, 1);
+ }
+ 
+ /*************************************************************************
+@@ -402,10 +508,13 @@ void SdDrawDocument::DeletePage(USHORT nPgNum)
+ SdrPage* SdDrawDocument::RemovePage(USHORT nPgNum)
+ {
+ 	SdrPage* pPage = FmFormModel::RemovePage(nPgNum);
++    bool bLast = ((nPgNum+1)/2 == (GetPageCount()+1)/2);
+ 
+ 	((SdPage*)pPage)->DisconnectLink();
+ 	ReplacePageInCustomShows( dynamic_cast< SdPage* >( pPage ), 0 );
+ 	UpdatePageObjectsInNotes(nPgNum);
++    if (!bLast)
++        UpdatePageRelativeURLs((SdPage*)pPage, nPgNum, -1);
+ 
+ 	return pPage;
+ }
+diff --git sd/source/core/sdpage.cxx sd/source/core/sdpage.cxx
+index 9968645..474664a 100644
+--- sd/source/core/sdpage.cxx
++++ sd/source/core/sdpage.cxx
+@@ -2779,7 +2779,9 @@ SdPage* SdPage::getImplementation( const ::com::sun::star::uno::Reference< ::com
+ 
+ void SdPage::SetName (const String& rName)
+ {
++    String aOldName = GetName();
+     FmFormPage::SetName (rName);
++    ((SdDrawDocument*) pModel)->UpdatePageRelativeURLs(aOldName, rName);
+     ActionChanged();
+ }
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-drwlayer-units.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-drwlayer-units.diff
@@ -0,0 +1,103 @@
+Index: sc/source/core/data/drwlayer.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/drwlayer.cxx,v
+retrieving revision 1.51
+diff -u -p -r1.51 drwlayer.cxx
+--- sc/source/core/data/drwlayer.cxx	6 Jul 2007 12:33:05 -0000	1.51
++++ sc/source/core/data/drwlayer.cxx	19 Nov 2007 03:21:21 -0000
+@@ -118,6 +118,10 @@
+ #include "scmod.hxx"
+ #include "chartarr.hxx"
+ 
++#ifndef _SV_FIELD_HXX //autogen
++#include <vcl/field.hxx>
++#endif
++
+ #define DET_ARROW_OFFSET	1000
+ 
+ //	Abstand zur naechsten Zelle beim Loeschen (bShrink), damit der Anker
+@@ -230,16 +234,26 @@ __EXPORT ScTabSizeChangedHint::~ScTabSiz
+ 
+ #define MAXMM	10000000
+ 
++inline long TwipsToHmm (long nVal)
++{
++	return static_cast< long >( MetricField::ConvertDoubleValue (static_cast<sal_Int64>(nVal), 0, 0, 
++			FUNIT_TWIP, FUNIT_100TH_MM) );
++}
++
++inline long HmmToTwips (long nVal)
++{
++	return static_cast< long > ( MetricField::ConvertDoubleValue (static_cast<sal_Int64>(nVal), 0, 0, 
++			FUNIT_100TH_MM, FUNIT_TWIP) );
++}
++
+ inline void TwipsToMM( long& nVal )
+ {
+-	nVal = (long) ( nVal * HMM_PER_TWIPS );
++	nVal = TwipsToHmm (nVal);
+ }
+ 
+ inline void ReverseTwipsToMM( long& nVal )
+ {
+-	//	reverse the effect of TwipsToMM - round up here (add 1)
+-
+-	nVal = ((long) ( nVal / HMM_PER_TWIPS )) + 1;
++	nVal = HmmToTwips (nVal);
+ }
+ 
+ void lcl_TwipsToMM( Point& rPoint )
+@@ -670,8 +684,8 @@ void ScDrawLayer::RecalcPos( SdrObject* 
+ 
+ 		//	Berechnung und Werte wie in detfunc.cxx
+ 
+-		Size aSize( (long) ( pDoc->GetColWidth(nCol, nTab) * HMM_PER_TWIPS ),
+-					(long) ( pDoc->GetRowHeight(nRow, nTab) * HMM_PER_TWIPS ) );
++		Size aSize( (long) ( TwipsToHmm( pDoc->GetColWidth(nCol, nTab) ) ),
++					(long) ( TwipsToHmm( pDoc->GetRowHeight(nRow, nTab) ) ) );
+ 		Rectangle aRect( aPos, aSize );
+ 		aRect.Left()	-= 250;
+ 		aRect.Right()	+= 250;
+@@ -842,16 +856,16 @@ BOOL ScDrawLayer::GetPrintArea( ScRange&
+ 		SCCOL nEndCol = rRange.aEnd.Col();
+ 		for (i=nStartCol; i<=nEndCol; i++)
+ 			nEndX += pDoc->GetColWidth(i,nTab);
+-		nStartX = (long)(nStartX * HMM_PER_TWIPS);
+-		nEndX   = (long)(nEndX   * HMM_PER_TWIPS);
++		nStartX = TwipsToHmm( nStartX );
++		nEndX   = TwipsToHmm( nEndX );
+ 	}
+ 	if (!bSetVer)
+ 	{
+ 		nStartY = pDoc->FastGetRowHeight( 0, rRange.aStart.Row()-1, nTab);
+         nEndY = nStartY + pDoc->FastGetRowHeight( rRange.aStart.Row(),
+                 rRange.aEnd.Row(), nTab);
+-		nStartY = (long)(nStartY * HMM_PER_TWIPS);
+-		nEndY   = (long)(nEndY   * HMM_PER_TWIPS);
++		nStartY = TwipsToHmm( nStartY );
++		nEndY   = TwipsToHmm( nEndY );
+ 	}
+ 
+ 	if ( bNegativePage )
+@@ -909,8 +923,8 @@ BOOL ScDrawLayer::GetPrintArea( ScRange&
+ 
+ 		if (bSetHor)
+ 		{
+-			nStartX = (long) (nStartX / HMM_PER_TWIPS);
+-			nEndX = (long) (nEndX / HMM_PER_TWIPS);
++			nStartX = HmmToTwips( nStartX );
++			nEndX = HmmToTwips( nEndX );
+ 			long nWidth;
+ 	        SCCOL i;
+ 
+@@ -927,8 +941,8 @@ BOOL ScDrawLayer::GetPrintArea( ScRange&
+ 
+ 		if (bSetVer)
+ 		{
+-			nStartY = (long) (nStartY / HMM_PER_TWIPS);
+-			nEndY = (long) (nEndY / HMM_PER_TWIPS);
++			nStartY = HmmToTwips( nStartY );
++			nEndY = HmmToTwips( nEndY );
+             SCROW nRow = pDoc->FastGetRowForHeight( nTab, nStartY);
+ 			rRange.aStart.SetRow( nRow>0 ? (nRow-1) : 0);
+             nRow = pDoc->FastGetRowForHeight( nTab, nEndY);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mdbtools.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mdbtools.diff
@@ -0,0 +1,121 @@
+--- /dev/null	2005-03-20 01:06:14.000000000 +0530
++++ mdbtools/mdbtools-0.6pre1.patch	2005-07-29 11:03:56.000000000 +0530
+@@ -0,0 +1,118 @@
++--- Makefile.am	2002-12-27 16:09:02.000000000 +0100
+++++ misc/build/mdbtools-0.6pre1/src/Makefile.am	2005-08-01 17:52:49.000000000 +0200
++@@ -1,3 +1,3 @@
++-SUBDIRS	=	libmdb extras $(OPTDIRS) util
++-DIST_SUBDIRS = libmdb extras sql odbc gmdb2 util
+++SUBDIRS	=	libmdb $(OPTDIRS)
+++DIST_SUBDIRS = libmdb sql odbc gmdb2
++ DEFDIR	=	$(prefix)
++--- Makefile.in	2004-06-18 11:34:19.000000000 +0200
+++++ misc/build/mdbtools-0.6pre1/src/Makefile.in	2005-08-01 17:53:01.000000000 +0200
++@@ -153,8 +153,8 @@
++ sharedstatedir = @sharedstatedir@
++ sysconfdir = @sysconfdir@
++ target_alias = @target_alias@
++-SUBDIRS = libmdb extras $(OPTDIRS) util
++-DIST_SUBDIRS = libmdb extras sql odbc gmdb2 util
+++SUBDIRS = libmdb $(OPTDIRS)
+++DIST_SUBDIRS = libmdb sql odbc gmdb2
++ DEFDIR = $(prefix)
++ subdir = src
++ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++--- gmdb.h	2004-02-11 23:04:26.000000000 +0100
+++++ misc/build/mdbtools-0.6pre1/src/gmdb2/gmdb.h	2005-08-01 18:27:10.000000000 +0200
++@@ -24,6 +24,7 @@
++ GtkWidget *gmdb_table_def_new(MdbCatalogEntry *entry);
++ GtkWidget *gmdb_table_export_new(MdbCatalogEntry *entry);
++ void gmdb_table_export(MdbCatalogEntry *entry) ;
+++gchar *gmdb_export_get_filepath(GladeXML *xml);
++ 
++ void gmdb_file_select_cb(GtkWidget *w, gpointer data);
++ void gmdb_file_open_cb(GtkWidget *w, gpointer data);
++--- info.c	2003-01-12 23:59:42.000000000 +0100
+++++ misc/build/mdbtools-0.6pre1/src/gmdb2/info.c	2005-08-01 19:04:14.000000000 +0200
++@@ -71,4 +71,7 @@
++ 	gtk_label_set_text(GTK_LABEL(label), tmpstr);	
++ 
++ 	g_free(filepath);
+++	// a hack to avoid warning: control reaches end of non-void function
+++	// the return value is nowhere used anyway
+++	return NULL;
++ }
++--- table_export.c	2003-01-14 18:37:44.000000000 +0100
+++++ misc/build/mdbtools-0.6pre1/src/gmdb2/table_export.c	2005-08-01 19:05:50.000000000 +0200
++@@ -49,6 +49,7 @@
++ 	}
++ }
++ 
+++void
++ gmdb_export_get_delimiter(GladeXML *xml, gchar *delimiter, int max_buf)
++ {
++ 	GtkWidget *combo;
++--- backend.c	2004-06-11 15:56:41.000000000 +0200
+++++ misc/build/mdbtools-0.6pre1/src/libmdb/backend.c	2005-08-01 17:36:27.000000000 +0200
++@@ -28,7 +28,7 @@
++ #endif
++ 
++ static int is_init;
++-static GHashTable *mdb_backends;
+++GHashTable *mdb_backends;
++ 
++    /*    Access data types */
++ static MdbBackendType mdb_access_types[] = {
++--- data.c	2004-06-11 15:56:41.000000000 +0200
+++++ misc/build/mdbtools-0.6pre1/src/libmdb/data.c	2005-08-01 19:11:29.000000000 +0200
++@@ -136,7 +136,7 @@
++ }
++ static int mdb_xfer_bound_ole(MdbHandle *mdb, int start, MdbColumn *col, int len)
++ {
++-int ret;
+++int ret=0;
++ 	if (len) {
++ 		col->cur_value_start = start;
++ 		col->cur_value_len = len;
++--- kkd.c	2003-04-29 19:55:17.000000000 +0200
+++++ misc/build/mdbtools-0.6pre1/src/libmdb/kkd.c	2005-08-01 19:15:43.000000000 +0200
++@@ -55,7 +55,7 @@
++ 
++ GHashTable *mdb_get_column_def(MdbCatalogEntry *entry, int start)
++ {
++-GHashTable *hash;
+++GHashTable *hash=NULL;
++ MdbHandle *mdb = entry->mdb;
++ MdbColumnProp prop;
++ int tmp, pos, col_num, val_len, i;
++--- mdbsql.c    2004-05-30 11:20:40.000000000 +0530
+++++ misc/build/mdbtools-0.6pre1/src/sql/mdbsql.c  2005-07-26 17:06:18.000000000 +0530
++@@ -84,7 +84,7 @@
++                return 1;
++        }
++ }
++-int mdb_run_query(MdbSQL *sql, char *query)
+++int mdb_sql_run_query(MdbSQL *sql, char *query)
++ {
++        if (_parse(sql,query) && sql->cur_table) {
++                mdb_sql_bind_all(sql);
++
++--- mdbsql.h	2004-03-07 05:29:54.000000000 +0530
+++++ misc/build/mdbtools-0.6pre1/include/mdbsql.h	2005-07-28 18:34:51.000000000 +0530
++@@ -1,7 +1,7 @@
++ #include <stdio.h>
++ #include <string.h>
++ #include <glib.h>
++-#include <mdbtools.h>
+++#include "mdbtools.h"
++ 
++ #ifndef _mdbsql_h_
++ 
++--- index.c	2004-04-16 17:45:14.000000000 +0200
+++++ misc/build/mdbtools-0.6pre1/src/libmdb/index.c	2005-11-28 20:14:37.000000000 +0100
++@@ -330,7 +330,7 @@
++ {
++ 	int mask_bit = 0;
++ 	int mask_pos = 0x16;
++-	int mask_byte;
+++	int mask_byte = 0;
++ 	int elem = 0;
++ 	int len, start, i;
++ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-cjksp1-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-cjksp1-sw.diff
@@ -0,0 +1,1836 @@
+diff -uNpr sw.bak/inc/doc.hxx sw/inc/doc.hxx
+--- sw.bak/inc/doc.hxx	2008-02-19 15:12:39.000000000 +0800
++++ sw/inc/doc.hxx	2008-02-19 15:20:17.000000000 +0800
+@@ -1999,6 +1999,10 @@ public:
+     }
+     void SetApplyWorkaroundForB6375613( bool p_bApplyWorkaroundForB6375613 );
+     // <--
++     
++     //Update all the page masters
++     SW_DLLPUBLIC void SetDefaultPageMode(bool bSquaredPageMode);
++     SW_DLLPUBLIC sal_Bool IsSquaredPageMode() const;    
+ 
+ 	// i#78591#
+ 	void Setn32DummyCompatabilityOptions1( sal_uInt32 CompatabilityOptions1 )
+diff -uNpr sw.bak/inc/swmodule.hxx sw/inc/swmodule.hxx
+--- sw.bak/inc/swmodule.hxx	2008-02-19 15:12:39.000000000 +0800
++++ sw/inc/swmodule.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -194,6 +194,9 @@ public:
+     SW_DLLPUBLIC void ApplyFldUpdateFlags(SwFldUpdateFlags eFldFlags);
+ 	SW_DLLPUBLIC void ApplyLinkMode(sal_Int32 nNewLinkMode);
+ 
++    //default page mode for text grid 
++    SW_DLLPUBLIC void ApplyDefaultPageMode(sal_Bool bIsSquaredPageMode);
++
+ 	// ConfigItems erzeugen
+ 	SwModuleOptions*    GetModuleConfig()		{ return pModuleConfig;}
+ 	SW_DLLPUBLIC SwPrintOptions* 	GetPrtOptions(sal_Bool bWeb);
+diff -uNpr sw.bak/inc/tgrditem.hxx sw/inc/tgrditem.hxx
+--- sw.bak/inc/tgrditem.hxx	2008-02-19 15:12:39.000000000 +0800
++++ sw/inc/tgrditem.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -65,6 +65,10 @@ class SW_DLLPUBLIC SwTextGridItem : publ
+ 	BOOL bPrintGrid;
+ 	BOOL bDisplayGrid;
+ 
++	//for textgrid enhancement
++    sal_uInt16 nBaseWidth;
++    BOOL bSnapToChars;
++    BOOL bSquaredMode;
+ public:
+ 	SwTextGridItem();
+ 	virtual ~SwTextGridItem();
+@@ -108,6 +112,21 @@ public:
+     BOOL IsDisplayGrid() const { return bDisplayGrid; }
+     BOOL GetDisplayGrid() const { return bDisplayGrid; }
+     void SetDisplayGrid( BOOL bNew ) { bDisplayGrid = bNew; }
++    
++    //for textgrid enhancement
++    sal_uInt16 GetBaseWidth() const { return nBaseWidth;}
++    void SetBaseWidth( sal_uInt16 nNew ) { nBaseWidth = nNew; }
++    
++    BOOL IsSnapToChars() const { return bSnapToChars; }
++    BOOL GetSnapToChars() const { return bSnapToChars; }
++    void SetSnapToChars( BOOL bNew ) { bSnapToChars = bNew; }
++    
++    BOOL IsSquaredMode() const { return bSquaredMode; }
++    BOOL GetSquaredMode() const { return bSquaredMode; }
++    void SetSquaredMode( BOOL bNew ) { bSquaredMode = bNew; }
++	void SwitchPaperMode(BOOL bNew );
++	
++	void Init();
+ };
+ 
+ inline const SwTextGridItem &SwAttrSet::GetTextGrid(BOOL bInP) const
+diff -uNpr sw.bak/inc/unomid.h sw/inc/unomid.h
+--- sw.bak/inc/unomid.h	2008-02-19 15:12:39.000000000 +0800
++++ sw/inc/unomid.h	2008-02-19 15:12:51.000000000 +0800
+@@ -140,6 +140,9 @@
+ #define MID_GRID_RUBY_BELOW     5
+ #define MID_GRID_PRINT          6
+ #define MID_GRID_DISPLAY        7
++#define MID_GRID_BASEWIDTH      8
++#define MID_GRID_SNAPTOCHARS    9
++#define MID_GRID_STANDARD_MODE    10
+ 
+ //SwEnvItem
+ #define MID_ENV_ADDR_TEXT       1
+diff -uNpr sw.bak/inc/unoprnms.hxx sw/inc/unoprnms.hxx
+--- sw.bak/inc/unoprnms.hxx	2008-02-19 15:12:39.000000000 +0800
++++ sw/inc/unoprnms.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -789,7 +789,11 @@ enum SwPropNameIds
+ /* 0714 */  UNO_NAME_DIALOG_LIBRARIES,
+ /* 0715 */  UNO_NAME_HEADER_ROW_COUNT,
+ /* 0716 */  UNO_NAME_INPUT,
+-/* 0716 */  SW_PROPNAME_END
++// --> 2007-03-27 text grid enhancement for better CJK support
++/* 0717 */  UNO_NAME_GRID_BASE_WIDTH,
++/* 0718 */  UNO_NAME_GRID_SNAP_TO_CHARS,
++/* 0719 */  UNO_NAME_GRID_STANDARD_PAGE_MODE,
++/* 0720 */  SW_PROPNAME_END
+ };
+ 
+ 
+diff -uNpr sw.bak/source/core/doc/docdesc.cxx sw/source/core/doc/docdesc.cxx
+--- sw.bak/source/core/doc/docdesc.cxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/core/doc/docdesc.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -157,6 +157,8 @@
+ #include <SwUndoPageDesc.hxx>
+ #include <headerfooterhelper.hxx>
+ 
++#include <tgrditem.hxx>
++
+ using namespace com::sun::star;
+ 
+ static void lcl_DefaultPageFmt( sal_uInt16 nPoolFmtId,
+@@ -1069,3 +1071,36 @@ void SwDoc::CheckDefaultPageFmt()
+             lcl_DefaultPageFmt( rDesc.GetPoolFmtId(), rDesc.GetMaster(), rDesc.GetLeft() );
+     }
+ }
++
++void SwDoc::SetDefaultPageMode(bool bSquaredPageMode)
++{
++    if( !bSquaredPageMode == !IsSquaredPageMode() )
++		return;
++
++	const SwTextGridItem& rGrid =
++					(const SwTextGridItem&)GetDefault( RES_TEXTGRID );
++	SwTextGridItem aNewGrid = rGrid;
++	aNewGrid.SetSquaredMode(bSquaredPageMode);
++	aNewGrid.Init();
++	SetDefault(aNewGrid);
++	
++    for ( USHORT i = 0; i < GetPageDescCnt(); ++i )
++    {
++        SwPageDesc& rDesc = _GetPageDesc( i );
++
++        SwFrmFmt& rMaster = rDesc.GetMaster();
++		SwFrmFmt& rLeft = rDesc.GetLeft();
++        
++        SwTextGridItem aGrid((SwTextGridItem&)rMaster.GetAttr(RES_TEXTGRID));
++        aGrid.SwitchPaperMode( bSquaredPageMode );
++		rMaster.SetAttr(aGrid);
++		rLeft.SetAttr(aGrid);
++    }
++}
++
++sal_Bool SwDoc::IsSquaredPageMode() const
++{
++	const SwTextGridItem& rGrid =
++						(const SwTextGridItem&)GetDefault( RES_TEXTGRID );
++	return rGrid.IsSquaredMode();					
++}
+diff -uNpr sw.bak/source/core/inc/pagefrm.hxx sw/source/core/inc/pagefrm.hxx
+--- sw.bak/source/core/inc/pagefrm.hxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/core/inc/pagefrm.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -506,4 +506,9 @@ inline BOOL SwPageFrm::IsInvalidFly() co
+      GetPageDesc()->GetMaster().GetAttr(RES_TEXTGRID))->GetGridType() ) \
+     pGrid = NULL;}
+ 
++#define GETGRIDWIDTH( pGrid , pDoc )  pDoc->IsSquaredPageMode() ? \
++	pGrid->GetBaseHeight(): pGrid->GetBaseWidth()
++
++			
++
+ #endif	//_PAGEFRM_HXX
+diff -uNpr sw.bak/source/core/layout/atrfrm.cxx sw/source/core/layout/atrfrm.cxx
+--- sw.bak/source/core/layout/atrfrm.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/layout/atrfrm.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -274,6 +274,10 @@
+ #endif
+ // <--
+ 
++#ifndef _SVTOOLS_CJKOPTIONS_HXX
++#include <svtools/cjkoptions.hxx>
++#endif
++
+ using namespace ::com::sun::star;
+ using namespace ::rtl;
+ 
+@@ -2286,7 +2290,8 @@ BOOL SwFmtLineNumber::PutValue( const un
+ SwTextGridItem::SwTextGridItem()
+     : SfxPoolItem( RES_TEXTGRID ), aColor( COL_LIGHTGRAY ), nLines( 20 ),
+       nBaseHeight( 400 ), nRubyHeight( 200 ), eGridType( GRID_NONE ),
+-      bRubyTextBelow( 0 ), bPrintGrid( 1 ), bDisplayGrid( 1 )
++      bRubyTextBelow( 0 ), bPrintGrid( 1 ), bDisplayGrid( 1 ),
++      nBaseWidth(400), bSnapToChars( 1 ), bSquaredMode(1)
+ {
+ }
+ 
+@@ -2304,7 +2309,10 @@ int SwTextGridItem::operator==( const Sf
+            bRubyTextBelow == ((SwTextGridItem&)rAttr).GetRubyTextBelow() &&
+            bDisplayGrid == ((SwTextGridItem&)rAttr).GetDisplayGrid() &&
+            bPrintGrid == ((SwTextGridItem&)rAttr).GetPrintGrid() &&
+-           aColor == ((SwTextGridItem&)rAttr).GetColor();
++           aColor == ((SwTextGridItem&)rAttr).GetColor() && 
++           nBaseWidth == ((SwTextGridItem&)rAttr).GetBaseWidth() && 
++           bSnapToChars == ((SwTextGridItem&)rAttr).GetSnapToChars() &&
++           bSquaredMode == ((SwTextGridItem&)rAttr).GetSquaredMode();
+ }
+ 
+ SfxPoolItem* SwTextGridItem::Clone( SfxItemPool* ) const
+@@ -2322,6 +2330,9 @@ SwTextGridItem& SwTextGridItem::operator
+     bRubyTextBelow = rCpy.GetRubyTextBelow();
+     bPrintGrid = rCpy.GetPrintGrid();
+     bDisplayGrid = rCpy.GetDisplayGrid();
++    nBaseWidth = rCpy.GetBaseWidth();
++    bSnapToChars = rCpy.GetSnapToChars();
++    bSquaredMode = rCpy.GetSquaredMode();
+ 
+ 	return *this;
+ }
+@@ -2352,6 +2363,11 @@ BOOL SwTextGridItem::QueryValue( uno::An
+                         "This value needs TWIPS-MM100 conversion" );
+             rVal <<= (sal_Int32) TWIP_TO_MM100_UNSIGNED(nBaseHeight);
+             break;
++        case MID_GRID_BASEWIDTH:
++            DBG_ASSERT( (nMemberId & CONVERT_TWIPS) != 0,
++                        "This value needs TWIPS-MM100 conversion" );
++            rVal <<= (sal_Int32) TWIP_TO_MM100_UNSIGNED(nBaseWidth);
++            break;
+         case MID_GRID_RUBYHEIGHT:
+             DBG_ASSERT( (nMemberId & CONVERT_TWIPS) != 0,
+                         "This value needs TWIPS-MM100 conversion" );
+@@ -2375,6 +2391,15 @@ BOOL SwTextGridItem::QueryValue( uno::An
+                     break;
+             }
+             break;
++        case MID_GRID_SNAPTOCHARS:
++            rVal.setValue( &bSnapToChars, ::getBooleanCppuType() );
++            break;
++        case MID_GRID_STANDARD_MODE:
++			{
++				sal_Bool bStandardMode = !bSquaredMode;
++    	        rVal.setValue( &bStandardMode, ::getBooleanCppuType() );
++			}
++            break;
+         default:
+             DBG_ERROR("Unknown SwTextGridItem member");
+             bRet = FALSE;
+@@ -2417,6 +2442,7 @@ BOOL SwTextGridItem::PutValue( const uno
+             SetDisplayGrid( *(sal_Bool*)rVal.getValue() );
+             break;
+         case MID_GRID_BASEHEIGHT:
++        case MID_GRID_BASEWIDTH:
+         case MID_GRID_RUBYHEIGHT:
+         {
+             DBG_ASSERT( (nMemberId & CONVERT_TWIPS) != 0,
+@@ -2427,6 +2453,8 @@ BOOL SwTextGridItem::PutValue( const uno
+             if( bRet && (nTmp >= 0) && ( nTmp <= USHRT_MAX) )
+                 if( (nMemberId & ~CONVERT_TWIPS) == MID_GRID_BASEHEIGHT )
+                     SetBaseHeight( (USHORT)nTmp );
++                else if( (nMemberId & ~CONVERT_TWIPS) == MID_GRID_BASEWIDTH )
++                    SetBaseWidth( (USHORT)nTmp );
+                 else
+                     SetRubyHeight( (USHORT)nTmp );
+             else
+@@ -2457,7 +2485,15 @@ BOOL SwTextGridItem::PutValue( const uno
+             }
+             break;
+         }
+-
++        case MID_GRID_SNAPTOCHARS:
++            SetSnapToChars( *(sal_Bool*)rVal.getValue() );
++            break;
++        case MID_GRID_STANDARD_MODE:
++		{
++			sal_Bool bStandard = *(sal_Bool*)rVal.getValue();
++           	SetSquaredMode( !bStandard );
++        	break;
++		}
+         default:
+             DBG_ERROR("Unknown SwTextGridItem member");
+             bRet = FALSE;
+@@ -2466,6 +2502,75 @@ BOOL SwTextGridItem::PutValue( const uno
+     return bRet;
+ }
+ 
++void SwTextGridItem::SwitchPaperMode(BOOL bNew)
++{
++	if( bNew == bSquaredMode )
++	{
++		//same paper mode, not switch
++		return;
++	}
++	
++	// use default value when grid is disable
++	if( eGridType == GRID_NONE )
++	{
++		bSquaredMode = bNew;
++		Init();
++		return;
++	}
++	
++	if( bSquaredMode )
++	{
++		//switch from "squared mode" to "standard mode"
++		nBaseWidth = nBaseHeight;
++		nBaseHeight = nBaseHeight + nRubyHeight;
++		nRubyHeight = 0;
++	}
++	else
++	{
++		//switch from "standard mode" to "squared mode"
++		nRubyHeight = nBaseHeight/3;
++		nBaseHeight = nBaseHeight - nRubyHeight;
++		nBaseWidth = nBaseHeight;
++	}
++	bSquaredMode = !bSquaredMode;
++}
++
++void SwTextGridItem::Init()
++{
++	if( bSquaredMode )
++	{
++		nLines = 20;
++		nBaseHeight = 400;
++		nRubyHeight = 200;
++		eGridType = GRID_NONE;
++		bRubyTextBelow = 0;
++		bPrintGrid = 1;
++		bDisplayGrid = 1;
++		bSnapToChars = 1;
++		nBaseWidth = 400;
++	}
++	else
++	{
++		nLines = 44;
++		nBaseHeight = 312;
++		nRubyHeight = 0;
++		eGridType = GRID_NONE;
++		bRubyTextBelow = 0;
++		bPrintGrid = 1;
++		bDisplayGrid = 1;
++		nBaseWidth = 210;
++		bSnapToChars = 1;
++
++		//default grid type is line only in CJK env
++		//disable this function due to type area change 
++		//if grid type change.
++		//if(SvtCJKOptions().IsAsianTypographyEnabled())
++		//{
++		//	bDisplayGrid = 0;
++		//	eGridType = GRID_LINES_ONLY;
++		//}
++	}
++}
+ // class SwHeaderAndFooterEatSpacingItem
+ 
+ SfxPoolItem* SwHeaderAndFooterEatSpacingItem::Clone( SfxItemPool* ) const
+diff -uNpr sw.bak/source/core/layout/flowfrm.cxx sw/source/core/layout/flowfrm.cxx
+--- sw.bak/source/core/layout/flowfrm.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/layout/flowfrm.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -1604,7 +1604,9 @@ SwTwips SwFlowFrm::CalcUpperSpace( const
+ 
+     // OD 2004-03-12 #i11860# - consider value of new parameter <_bConsiderGrid>
+     // and use new method <GetUpperSpaceAmountConsideredForPageGrid(..)>
+-    if ( _bConsiderGrid )
++
++	//consider grid in square page mode
++    if ( _bConsiderGrid && rThis.GetUpper()->GetFmt()->GetDoc()->IsSquaredPageMode() )
+     {
+         nUpper += _GetUpperSpaceAmountConsideredForPageGrid( nUpper );
+     }
+diff -uNpr sw.bak/source/core/layout/pagechg.cxx sw/source/core/layout/pagechg.cxx
+--- sw.bak/source/core/layout/pagechg.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/layout/pagechg.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -178,7 +178,9 @@ void SwBodyFrm::Format( const SwBorderAt
+             long nBorder = 0;
+             if( GRID_LINES_CHARS == pGrid->GetGridType() )
+             {
+-                nBorder = nSize % pGrid->GetBaseHeight();
++                //for textgrid refactor
++				SwDoc *pDoc = GetFmt()->GetDoc();	
++                nBorder = nSize % (GETGRIDWIDTH(pGrid, pDoc));
+                 nSize -= nBorder;
+                 nBorder /= 2;
+             }
+diff -uNpr sw.bak/source/core/layout/paintfrm.cxx sw/source/core/layout/paintfrm.cxx
+--- sw.bak/source/core/layout/paintfrm.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/layout/paintfrm.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -4903,6 +4903,8 @@ void SwPageFrm::PaintGrid( OutputDevice*
+                 BOOL bGrid = pGrid->GetRubyTextBelow();
+                 BOOL bCell = GRID_LINES_CHARS == pGrid->GetGridType();
+                 long nGrid = pGrid->GetBaseHeight();
++				const SwDoc* pDoc = GetFmt()->GetDoc();
++                long nGridWidth = GETGRIDWIDTH(pGrid,pDoc); //for textgrid refactor
+                 long nRuby = pGrid->GetRubyHeight();
+                 long nSum = nGrid + nRuby;
+                 const Color *pCol = &pGrid->GetColor();
+@@ -5046,10 +5048,11 @@ void SwPageFrm::PaintGrid( OutputDevice*
+                     SwTwips nY = nOrig + nSum *( (aInter.Top()-nOrig)/nSum );
+                     SwRect aTmp( Point( aInter.Left(), nY ),
+                                 Size( aInter.Width(), 1 ) );
+-                    SwTwips nX = aGrid.Left() + nGrid *
+-                                ( ( aInter.Left() - aGrid.Left() )/ nGrid );
++                    //for textgrid refactor
++                    SwTwips nX = aGrid.Left() + nGridWidth *
++                        ( ( aInter.Left() - aGrid.Left() )/ nGridWidth );
+                     if( nX < aInter.Left() )
+-                        nX += nGrid;
++                        nX += nGridWidth;
+                     SwTwips nGridRight = aGrid.Left() + aGrid.Width();
+                     BOOL bLeft = aGrid.Left() >= aInter.Left();
+                     BOOL bRight = nGridRight <= nRight;
+@@ -5071,7 +5074,7 @@ void SwPageFrm::PaintGrid( OutputDevice*
+                                     while( aVert.Left() <= nRight )
+                                     {
+                                         PaintBorderLine(rRect,aVert,this,pCol);
+-                                        aVert.Pos().X() += nGrid;
++                                        aVert.Pos().X() += nGridWidth;	//for textgrid refactor
+                                     }
+                                 }
+                                 else if ( bBorder )
+@@ -5128,7 +5131,7 @@ void SwPageFrm::PaintGrid( OutputDevice*
+                                     while( aVert.Left() <= nRight )
+                                     {
+                                         PaintBorderLine( rRect, aVert, this, pCol);
+-                                        aVert.Pos().X() += nGrid;
++                                        aVert.Pos().X() += nGridWidth;	//for textgrid refactor
+                                     }
+                                 }
+                                 else if( bBorder )
+diff -uNpr sw.bak/source/core/text/itrform2.cxx sw/source/core/text/itrform2.cxx
+--- sw.bak/source/core/text/itrform2.cxx	2008-02-19 15:12:41.000000000 +0800
++++ sw/source/core/text/itrform2.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -473,8 +473,9 @@ void SwTxtFormatter::BuildPortions( SwTx
+     const sal_Bool bHasGrid = pGrid && rInf.SnapToGrid() &&
+                               GRID_LINES_CHARS == pGrid->GetGridType();
+ 
++	const SwDoc *pDoc = rInf.GetTxtFrm()->GetNode()->GetDoc();
+     const USHORT nGridWidth = bHasGrid ?
+-                              pGrid->GetBaseHeight() : 0;
++                                GETGRIDWIDTH(pGrid,pDoc) : 0;	//for textgrid refactor
+ 
+     // used for grid mode only:
+     // the pointer is stored, because after formatting of non-asian text,
+diff -uNpr sw.bak/source/core/text/itrtxt.cxx sw/source/core/text/itrtxt.cxx
+--- sw.bak/source/core/text/itrtxt.cxx	2008-02-19 15:12:41.000000000 +0800
++++ sw/source/core/text/itrtxt.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -340,7 +340,6 @@ USHORT SwTxtCursor::AdjustBaseLine( cons
+ 
+     if ( bHasGrid )
+     {
+-        const USHORT nGridWidth = pGrid->GetBaseHeight();
+         const USHORT nRubyHeight = pGrid->GetRubyHeight();
+         const sal_Bool bRubyTop = ! pGrid->GetRubyTextBelow();
+ 
+@@ -359,9 +358,12 @@ USHORT SwTxtCursor::AdjustBaseLine( cons
+             {
+                 // Portions which are bigger than on grid distance are
+                 // centered inside the whole line.
+-                const USHORT nLineNetto = ( nPorHeight > nGridWidth ) ?
+-                                            rLine.Height() - nRubyHeight :
+-                                            nGridWidth;
++                
++                //for text refactor
++                const USHORT nLineNetto =  rLine.Height() - nRubyHeight;
++                //const USHORT nLineNetto = ( nPorHeight > nGridWidth ) ?
++                 //                           rLine.Height() - nRubyHeight :
++                 //                           nGridWidth;
+                 nOfst += ( nLineNetto - nPorHeight ) / 2;
+                 if ( bRubyTop )
+                     nOfst = nOfst + nRubyHeight;
+diff -uNpr sw.bak/source/core/text/txtfly.cxx sw/source/core/text/txtfly.cxx
+--- sw.bak/source/core/text/txtfly.cxx	2008-02-19 15:12:41.000000000 +0800
++++ sw/source/core/text/txtfly.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -153,6 +153,9 @@
+ #ifndef PRODUCT
+ #include "viewopt.hxx"	// SwViewOptions, nur zum Testen (Test2)
+ #endif
++#ifndef _DOC_HXX 
++#include "doc.hxx"
++#endif
+ 
+ using namespace ::com::sun::star;
+ 
+@@ -682,7 +685,8 @@ void SwTxtFormatter::CalcFlyWidth( SwTxt
+                                     (pBody->*fnRect->fnGetPrtLeft)() :
+                                     (pPageFrm->*fnRect->fnGetPrtLeft)();
+ 
+-            const USHORT nGridWidth = pGrid->GetBaseHeight();
++			const SwDoc *pDoc = rInf.GetTxtFrm()->GetNode()->GetDoc();
++            const USHORT nGridWidth = GETGRIDWIDTH( pGrid, pDoc);	//for textgrid refactor
+ 
+             SwTwips nStartX = GetLeftMargin();
+             if ( bVert )
+diff -uNpr sw.bak/source/core/txtnode/fntcache.cxx sw/source/core/txtnode/fntcache.cxx
+--- sw.bak/source/core/txtnode/fntcache.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/txtnode/fntcache.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -114,6 +114,18 @@
+ #include <svtools/accessibilityoptions.hxx>
+ #endif
+ 
++#ifndef _DOC_HXX
++#include <doc.hxx>
++#endif
++#ifndef _SVX_FHGTITEM_HXX
++#include <svx/fhgtitem.hxx>
++#endif
++#ifndef _SWDOCSH_HXX
++#include <docsh.hxx>
++#endif
++#ifndef _POOLFMT_HRC
++#include <poolfmt.hrc>
++#endif
+ // Enable this to use the helpclass SwRVPMark
+ #if OSL_DEBUG_LEVEL > 1
+ #ifndef _RVP_MARK_HXX
+@@ -138,6 +150,18 @@ MapMode* SwFntObj::pPixMap = NULL;
+ OutputDevice* SwFntObj::pPixOut = NULL;
+ 
+ extern USHORT UnMapDirection( USHORT nDir, const BOOL bVertFormat );
++USHORT GetDefaultFontHeight( SwDrawTextInfo &rInf )
++{
++    SwDocShell* pDocShell = rInf.GetShell()->GetDoc()->GetDocShell();
++    SfxStyleSheetBasePool* pBasePool = pDocShell->GetStyleSheetPool();
++    
++    String aString(SW_RES(STR_POOLCOLL_STANDARD));
++    
++    SfxStyleSheetBase* pStyle = pBasePool->Find( aString, (SfxStyleFamily)SFX_STYLE_FAMILY_PARA );
++    SfxItemSet& aTmpSet = pStyle->GetItemSet();
++    SvxFontHeightItem &aDefaultFontItem = (SvxFontHeightItem&)aTmpSet.Get(RES_CHRATR_CJK_FONTSIZE); 
++    return (USHORT)aDefaultFontItem.GetHeight();
++}
+ 
+ #ifdef _RVP_MARK_HXX
+ 
+@@ -1056,16 +1080,19 @@ void SwFntObj::DrawText( SwDrawTextInfo 
+ 
+ 
+     //
+-    // ASIAN LINE AND CHARACTER GRID MODE START
++    // ASIAN LINE AND CHARACTER GRID MODE START: snap to characters
+     //
+ 
+     if ( rInf.GetFrm() && rInf.SnapToGrid() && rInf.GetFont() &&
+          SW_CJK == rInf.GetFont()->GetActual() )
+     {
+         GETGRID( rInf.GetFrm()->FindPageFrm() )
+-        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && pGrid->IsSnapToChars())
+         {
+-            const USHORT nGridWidth = pGrid->GetBaseHeight();
++            //for textgrid refactor
++            //const USHORT nGridWidth = pGrid->GetBaseHeight();
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            const USHORT nGridWidth = GETGRIDWIDTH(pGrid, pDoc);
+             sal_Int32* pKernArray = new sal_Int32[rInf.GetLen()];
+ 
+             if ( pPrinter )
+@@ -1143,6 +1170,148 @@ void SwFntObj::DrawText( SwDrawTextInfo 
+         }
+     }
+ 
++    // For text grid refactor
++    // ASIAN LINE AND CHARACTER GRID MODE START: not snap to characters
++    //
++    if ( rInf.GetFrm() && rInf.SnapToGrid() && rInf.GetFont() )
++    {
++        GETGRID( rInf.GetFrm()->FindPageFrm() )
++        
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && !pGrid->IsSnapToChars() )
++        {
++            const USHORT  nDefaultFontHeight = GetDefaultFontHeight( rInf );
++            
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            long nGridWidthAdd = GETGRIDWIDTH(pGrid, pDoc);
++            if( SW_LATIN == rInf.GetFont()->GetActual() )
++                nGridWidthAdd = ( nGridWidthAdd - nDefaultFontHeight ) / 2;
++            else
++                nGridWidthAdd = nGridWidthAdd - nDefaultFontHeight;
++
++            sal_Int32*  pKernArray = new sal_Int32[rInf.GetLen()];
++
++            if ( pPrinter )
++                pPrinter->GetTextArray( rInf.GetText(), pKernArray,
++                rInf.GetIdx(), rInf.GetLen() );
++            else
++                rInf.GetOut().GetTextArray( rInf.GetText(), pKernArray,
++                rInf.GetIdx(), rInf.GetLen() );
++            if ( bSwitchH2V )
++                rInf.GetFrm()->SwitchHorizontalToVertical( aPos );
++            if ( rInf.GetSpace() || rInf.GetKanaComp())
++            {
++                long nSpaceAdd = rInf.GetSpace() / SPACING_PRECISION_FACTOR;
++                sal_Bool bSpecialJust = sal_False;
++                if ( rInf.GetFont() && rInf.GetLen() )
++                {
++                    const SwScriptInfo* pSI = rInf.GetScriptInfo();
++                    const BYTE nActual = rInf.GetFont()->GetActual();
++                    ///Kana Compression
++                    if( SW_CJK == nActual && rInf.GetKanaComp() &&
++                        pSI && pSI->CountCompChg() &&
++                        lcl_IsMonoSpaceFont( *(rInf.GetpOut()) ) )
++                    {
++                        pSI->Compress( pKernArray,rInf.GetIdx(), rInf.GetLen(),
++                            rInf.GetKanaComp(), (USHORT)aFont.GetSize().Height(),&aPos );
++                        bSpecialJust = sal_True;
++                    }
++                    ///Asian Justification
++                    if ( ( SW_CJK == nActual || SW_LATIN == nActual ) && nSpaceAdd )
++                    {
++                        LanguageType aLang = rInf.GetFont()->GetLanguage( SW_CJK );
++                        if ( LANGUAGE_KOREAN != aLang && LANGUAGE_KOREAN_JOHAB != aLang)
++                        {
++                            long nSpaceSum = nSpaceAdd;
++                            for ( USHORT nI = 0; nI < rInf.GetLen(); ++nI )
++                            {
++                                pKernArray[ nI ] += nSpaceSum;
++                                nSpaceSum += nSpaceAdd;
++                            }
++                            bSpecialJust = sal_True;
++                            nSpaceAdd = 0;
++                        }
++                    }
++                    long nGridAddSum = nGridWidthAdd;
++                    for(xub_StrLen i = 0; i < rInf.GetLen(); i++,nGridAddSum += nGridWidthAdd )
++                    {
++                        pKernArray[i] += nGridAddSum;
++                    }
++                    long nKernSum = rInf.GetKern();
++                    if ( bSpecialJust || rInf.GetKern() )
++                    {
++                        for( xub_StrLen i = 0; i < rInf.GetLen(); i++, nKernSum += rInf.GetKern() )
++                        {
++                            if ( CH_BLANK == rInf.GetText().GetChar(rInf.GetIdx()+i) )
++                                nKernSum += nSpaceAdd;
++                            pKernArray[i] += nKernSum;
++                        }
++                        ///With through/uderstr. Grouped style requires a blank at the end
++                        ///of a text edition special measures:
++                        if( bPaintBlank && rInf.GetLen() && (CH_BLANK ==
++                            rInf.GetText().GetChar( rInf.GetIdx() + rInf.GetLen() - 1) ) )
++                        {
++                            ///If it concerns a singular, underlined space acts,
++                            ///we must spend two:
++                            if( 1 == rInf.GetLen() )
++                            {
++                                pKernArray[0] = rInf.GetWidth() + nSpaceAdd;
++                                rInf.GetOut().DrawTextArray( aPos, rInf.GetText(),
++                                    pKernArray, rInf.GetIdx(), 1 );
++                            }
++                            else
++                            {
++                                pKernArray[ rInf.GetLen() - 2] += nSpaceAdd;
++                                rInf.GetOut().DrawTextArray( aPos, rInf.GetText(),
++                                    pKernArray, rInf.GetIdx(), rInf.GetLen() );
++                            }
++                        }
++                        else
++                        {
++                            rInf.GetOut().DrawTextArray( aPos, rInf.GetText(),
++                                pKernArray, rInf.GetIdx(), rInf.GetLen() );
++                        }
++                    }
++                    else
++                    {
++                        Point aTmpPos( aPos );
++                        xub_StrLen i;
++                        xub_StrLen j = 0;
++                        long nSpaceSum = 0;
++                        for( i = 0; i < rInf.GetLen(); i++ )
++                        {
++                            if( CH_BLANK == rInf.GetText().GetChar( rInf.GetIdx() + i) )
++                            {
++                                nSpaceSum += nSpaceAdd;
++                                if( j < i)
++                                    rInf.GetOut().DrawText( aTmpPos, rInf.GetText(),
++                                    rInf.GetIdx() + j, i - j );
++                                j = i + 1;
++                                pKernArray[i] = pKernArray[i] + nSpaceSum;
++                                aTmpPos.X() = aPos.X() + pKernArray[ i ] + nKernSum;
++                            }
++                        }
++                        if( j < i )
++                            rInf.GetOut().DrawText( aTmpPos, rInf.GetText(),
++                            rInf.GetIdx() +j , i - j );
++                    }
++                }
++            }
++            else
++            {
++                //long nKernAdd = rInf.GetKern();
++		long nKernAdd = 0;
++                long nGridAddSum = nGridWidthAdd + nKernAdd;
++                for(xub_StrLen i = 0; i < rInf.GetLen(); i++,nGridAddSum += nGridWidthAdd + nKernAdd )
++                {
++                    pKernArray[i] += nGridAddSum;
++                }
++                rInf.GetOut().DrawTextArray( aPos, rInf.GetText(),
++                    pKernArray, rInf.GetIdx(), rInf.GetLen() );
++            }
++            delete[] pKernArray;
++            return;
++        }
++    }
+ 
+     //
+     // DIRECT PAINTING WITHOUT SCREEN ADJUSTMENT
+@@ -1905,9 +2074,10 @@ Size SwFntObj::GetTextSize( SwDrawTextIn
+          SW_CJK == rInf.GetFont()->GetActual() )
+     {
+         GETGRID( rInf.GetFrm()->FindPageFrm() )
+-        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && pGrid->IsSnapToChars() )
+         {
+-            const USHORT nGridWidth = pGrid->GetBaseHeight();
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            const USHORT nGridWidth = GETGRIDWIDTH(pGrid, pDoc);
+ 
+             OutputDevice* pOutDev;
+ 
+@@ -1936,6 +2106,40 @@ Size SwFntObj::GetTextSize( SwDrawTextIn
+                             1;
+ 
+             aTxtSize.Width() = i * nGridWidth * nLn;
++            rInf.SetKanaDiff( 0 );
++            return aTxtSize;
++        }
++    }
++    
++    //for textgrid refactor
++    if ( rInf.GetFrm() && nLn && rInf.SnapToGrid() && rInf.GetFont())
++    {
++        GETGRID( rInf.GetFrm()->FindPageFrm() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && !pGrid->IsSnapToChars() )
++        {
++            const USHORT nDefaultFontHeight = GetDefaultFontHeight( rInf );
++
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            long nGridWidthAdd = GETGRIDWIDTH(pGrid, pDoc);
++            if( SW_LATIN == rInf.GetFont()->GetActual() )
++                nGridWidthAdd = ( nGridWidthAdd - nDefaultFontHeight ) / 2;
++            else
++                nGridWidthAdd = nGridWidthAdd - nDefaultFontHeight;
++            OutputDevice* pOutDev;
++            if ( pPrinter )
++            {
++                if( !pPrtFont->IsSameInstance( pPrinter->GetFont() ) )
++                    pPrinter->SetFont(*pPrtFont);
++                pOutDev = pPrinter;
++            }
++            else
++                pOutDev = rInf.GetpOut();
++            aTxtSize.Width() = pOutDev->GetTextWidth( rInf.GetText(), rInf.GetIdx(), nLn );
++            aTxtSize.Height() = pOutDev->GetTextHeight() +
++                                GetFontLeading( rInf.GetShell(), rInf.GetOut() );
++            aTxtSize.Width() += (nLn) * long( nGridWidthAdd ); 
++            //if ( rInf.GetKern() && nLn )
++            //    aTxtSize.Width() += ( nLn ) * long( rInf.GetKern() );
+ 
+             rInf.SetKanaDiff( 0 );
+             return aTxtSize;
+@@ -2158,9 +2362,10 @@ xub_StrLen SwFntObj::GetCrsrOfst( SwDraw
+          rInf.GetFont() && SW_CJK == rInf.GetFont()->GetActual() )
+     {
+         GETGRID( rInf.GetFrm()->FindPageFrm() )
+-        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && pGrid->IsSnapToChars() )
+         {
+-            const USHORT nGridWidth = pGrid->GetBaseHeight();
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            const USHORT nGridWidth = GETGRIDWIDTH(pGrid, pDoc);
+ 
+             long nWidthPerChar = pKernArray[ rInf.GetLen() - 1 ] / rInf.GetLen();
+ 
+@@ -2179,6 +2384,37 @@ xub_StrLen SwFntObj::GetCrsrOfst( SwDraw
+         }
+     }
+ 
++    //for textgrid refactor
++    if ( rInf.GetFrm() && rInf.GetLen() && rInf.SnapToGrid() &&
++        rInf.GetFont() )
++    {
++        GETGRID( rInf.GetFrm()->FindPageFrm() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && !pGrid->IsSnapToChars() )
++        {
++
++            const USHORT nDefaultFontHeight = GetDefaultFontHeight( rInf );
++
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            long nGridWidthAdd = GETGRIDWIDTH(pGrid, pDoc);
++            if( SW_LATIN == rInf.GetFont()->GetActual() )   
++                nGridWidthAdd = ( nGridWidthAdd - nDefaultFontHeight ) / 2;
++            else
++                nGridWidthAdd = nGridWidthAdd - nDefaultFontHeight;
++            
++            for(xub_StrLen j = 0; j < rInf.GetLen(); j++)
++            {
++                long nScr = pKernArray[ j ] + ( nSpaceAdd + nGridWidthAdd  ) * ( j + 1 );
++                if( nScr >= rInf.GetOfst())
++                {
++                    nCnt = j;
++                    break;
++                }
++            }
++            delete[] pKernArray;
++            return nCnt;
++        }
++    }
++
+     sal_uInt16 nItrMode = i18n::CharacterIteratorMode::SKIPCELL;
+     sal_Int32 nDone = 0;
+     LanguageType aLang = LANGUAGE_NONE;
+@@ -2385,9 +2621,10 @@ xub_StrLen SwFont::GetTxtBreak( SwDrawTe
+          rInf.GetFont() && SW_CJK == rInf.GetFont()->GetActual() )
+     {
+         GETGRID( rInf.GetFrm()->FindPageFrm() )
+-        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && pGrid->IsSnapToChars() )
+         {
+-            const USHORT nGridWidth = pGrid->GetBaseHeight();
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            const USHORT nGridWidth = GETGRIDWIDTH(pGrid, pDoc);
+ 
+             sal_Int32* pKernArray = new sal_Int32[rInf.GetLen()];
+             rInf.GetOut().GetTextArray( rInf.GetText(), pKernArray,
+@@ -2413,6 +2650,35 @@ xub_StrLen SwFont::GetTxtBreak( SwDrawTe
+         }
+     }
+ 
++    //for text grid enhancement
++    if ( rInf.GetFrm() && nLn && rInf.SnapToGrid() && rInf.GetFont() )
++    {
++        GETGRID( rInf.GetFrm()->FindPageFrm() )
++        if ( pGrid && GRID_LINES_CHARS == pGrid->GetGridType() && !pGrid->IsSnapToChars() )
++        {
++            const USHORT nDefaultFontHeight = GetDefaultFontHeight( rInf );
++
++			const SwDoc* pDoc = rInf.GetShell()->GetDoc();	
++            long nGridWidthAdd = GETGRIDWIDTH(pGrid, pDoc);
++            if( SW_LATIN == rInf.GetFont()->GetActual() )
++                nGridWidthAdd = ( nGridWidthAdd - nDefaultFontHeight ) / 2 ;
++            else
++                nGridWidthAdd = nGridWidthAdd - nDefaultFontHeight;
++
++            sal_Int32* pKernArray = new sal_Int32[rInf.GetLen()];
++            rInf.GetOut().GetTextArray( rInf.GetText(), pKernArray,
++                                            rInf.GetIdx(), rInf.GetLen() );
++            long nCurrPos = pKernArray[nTxtBreak] + nGridWidthAdd;
++            while( nTxtBreak < rInf.GetLen() && nTextWidth >= nCurrPos)
++            {
++                nTxtBreak++;
++                nCurrPos = pKernArray[nTxtBreak] + nGridWidthAdd * ( nTxtBreak + 1 );
++            }
++            delete[] pKernArray;
++            return nTxtBreak + rInf.GetIdx();
++        }
++    }
++
+     if( aSub[nActual].IsCapital() && nLn )
+ 		nTxtBreak = GetCapitalBreak( rInf.GetShell(), rInf.GetpOut(),
+ 		rInf.GetScriptInfo(), rInf.GetText(), nTextWidth,0, rInf.GetIdx(),nLn );
+diff -uNpr sw.bak/source/core/unocore/unomap.cxx sw/source/core/unocore/unomap.cxx
+--- sw.bak/source/core/unocore/unomap.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/unocore/unomap.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -986,7 +986,9 @@ const SfxItemPropertyMap* SwUnoPropertyM
+                     { SW_PROP_NMID(UNO_NAME_GRID_RUBY_BELOW), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_GRID_RUBY_BELOW},
+                     { SW_PROP_NMID(UNO_NAME_GRID_PRINT), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_GRID_PRINT},
+                     { SW_PROP_NMID(UNO_NAME_GRID_DISPLAY), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_GRID_DISPLAY},
+-
++                    { SW_PROP_NMID(UNO_NAME_GRID_BASE_WIDTH), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_INT32), PROPERTY_NONE, MID_GRID_BASEWIDTH|CONVERT_TWIPS},
++                    { SW_PROP_NMID(UNO_NAME_GRID_SNAP_TO_CHARS), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_GRID_SNAPTOCHARS},
++                    { SW_PROP_NMID(UNO_NAME_GRID_STANDARD_PAGE_MODE), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_GRID_STANDARD_MODE},
+                     {0,0,0,0,0,0}
+ 				};
+ 				aMapArr[nPropertyId] = aPageStyleMap;
+@@ -1808,6 +1810,10 @@ const SfxItemPropertyMap* SwUnoPropertyM
+                     // --> collapsing borders DVO, FME 2005-05-27 #i29550#
+                     { SW_PROP_NMID(UNO_NAME_COLLAPSING_BORDERS), RES_COLLAPSING_BORDERS, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, 0},
+                     // <-- collapsing
++
++			//text grid enhancement for better CJK support.  2007-04-01
++			//just export the default page mode property, other properties are not handled in this version
++                    { SW_PROP_NMID(UNO_NAME_GRID_STANDARD_PAGE_MODE), RES_TEXTGRID, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_GRID_STANDARD_MODE},
+                     {0,0,0,0,0,0}
+ 				};
+ 				aMapArr[nPropertyId] = aTextDefaultMap_Impl;
+diff -uNpr sw.bak/source/core/unocore/unoprnms.cxx sw/source/core/unocore/unoprnms.cxx
+--- sw.bak/source/core/unocore/unoprnms.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/core/unocore/unoprnms.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -771,7 +771,10 @@ const SwPropNameTab aPropNameTab = {
+ /* 0713 UNO_NAME_TOOLTIP */ {MAP_CHAR_LEN("Tooltip")},
+ /* 0714 UNO_NAME_DIALOG_LIBRARIES*/     {MAP_CHAR_LEN("DialogLibraries")},
+ /* 0715 UNO_NAME_HEADER_ROW_COUNT*/     {MAP_CHAR_LEN("HeaderRowCount")},
+-/* 0716 UNO_NAME_INPUT */                {MAP_CHAR_LEN("Input")}
++/* 0716 UNO_NAME_INPUT */                {MAP_CHAR_LEN("Input")},
++/* 0717 UNO_NAME_GRID_BASE_WIDTH*/ {MAP_CHAR_LEN("GridBaseWidth")},
++/* 0718 UNO_NAME_GRID_SNAP_TO_CHARS*/ {MAP_CHAR_LEN("GridSnapToChars")},
++/* 0719 UNO_NAME_GRID_STANDARD_PAGE_MODE*/ {MAP_CHAR_LEN("StandardPageMode")}
+ };
+ 
+ const SwPropNameLen& SwGetPropName( USHORT nId )
+diff -uNpr sw.bak/source/filter/ww8/wrtww8.hxx sw/source/filter/ww8/wrtww8.hxx
+--- sw.bak/source/filter/ww8/wrtww8.hxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/filter/ww8/wrtww8.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -990,6 +990,7 @@ public:
+ 
+     void OutStyleTab();
+     USHORT Sty_GetWWSlot( const SwFmt& rFmt ) const;
++	SwFmt* GetSwFmt(){return (*pFmtA);}
+ };
+ 
+ class WW8SaveData
+diff -uNpr sw.bak/source/filter/ww8/ww8atr.cxx sw/source/filter/ww8/ww8atr.cxx
+--- sw.bak/source/filter/ww8/ww8atr.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/filter/ww8/ww8atr.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -3778,7 +3778,16 @@ static Writer& OutWW8_SwTextGrid( Writer
+                 nGridType = 2;
+                 break;
+             case GRID_LINES_CHARS:
++				{
++					if(rItem.IsSnapToChars())
++					{
++						nGridType = 3;
++					}
++					else
++					{
+                 nGridType = 1;
++					}
++				}
+                 break;
+         }
+         rWrtWW8.InsUInt16(0x5032);
+@@ -3787,6 +3796,27 @@ static Writer& OutWW8_SwTextGrid( Writer
+         UINT16 nHeight = rItem.GetBaseHeight() + rItem.GetRubyHeight();
+         rWrtWW8.InsUInt16(0x9031);
+         rWrtWW8.InsUInt16(nHeight);
++	   	sal_uInt32 nPageCharSize = ItemGet<SvxFontHeightItem>(*(rWrtWW8.pStyles->GetSwFmt()),
++                RES_CHRATR_CJK_FONTSIZE).GetHeight();
++
++		INT32 nCharWidth = rItem.GetBaseWidth() - nPageCharSize;	   
++	   	INT32 nFraction = 0;
++	   	nFraction = nCharWidth%20;
++	   	if( nCharWidth < 0 )
++			nFraction = 20 + nFraction;
++	  	nFraction = ((nFraction)*0xFFF)/20;
++	   	nFraction = (nFraction & 0x00000FFF);
++   
++	   	INT32 nMain = 0;
++	   	nMain = nCharWidth/20;
++	   	if( nCharWidth < 0 )
++			nMain -= 1;
++	   	nMain = nMain * 0x1000;
++	   	nMain = (nMain & 0xFFFFF000);
++   
++	   	UINT32 nCharSpace = nFraction + nMain;
++	   	rWrtWW8.InsUInt16(0x7030);
++	   	rWrtWW8.InsUInt32(nCharSpace);
+     }
+     return rWrt;
+ }
+diff -uNpr sw.bak/source/filter/ww8/ww8par6.cxx sw/source/filter/ww8/ww8par6.cxx
+--- sw.bak/source/filter/ww8/ww8par6.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/filter/ww8/ww8par6.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -420,12 +420,12 @@ void SwWW8ImplReader::SetDocumentGrid(Sw
+         default:
+             ASSERT(!this, "Unknown grid type");
+         case 3:
+-            //Text snaps to char grid, this doesn't make a lot of sense to
+-            //me. This is closer than LINES_CHARS
+-            eType = GRID_LINES_ONLY;
++            eType = GRID_LINES_CHARS;
++			aGrid.SetSnapToChars(sal_True);
+             break;
+         case 1:
+             eType = GRID_LINES_CHARS;
++			aGrid.SetSnapToChars(sal_False);
+             break;
+         case 2:
+             eType = GRID_LINES_ONLY;
+@@ -438,6 +438,11 @@ void SwWW8ImplReader::SetDocumentGrid(Sw
+     if (eType != GRID_NONE)
+         rDoc.set(IDocumentSettingAccess::ADD_EXT_LEADING, true);
+ 
++	//force to set document as standard page mode
++	sal_Bool bSquaredMode = sal_False;
++	rDoc.SetDefaultPageMode( bSquaredMode );
++	aGrid.SetSquaredMode( bSquaredMode );
++
+     //sep.dyaLinePitch
+     sal_Int32 nLinePitch = rSection.maSep.dyaLinePitch;
+ 
+@@ -468,11 +473,15 @@ void SwWW8ImplReader::SetDocumentGrid(Sw
+         nCharWidth += nFraction;
+     }
+ 
++    aGrid.SetBaseWidth( writer_cast<sal_uInt16>(nCharWidth));
+     aGrid.SetLines(writer_cast<sal_uInt16>(nTextareaHeight/nLinePitch));
+-    aGrid.SetBaseHeight(writer_cast<sal_uInt16>(nCharWidth));
+-    sal_Int32 nRubyHeight = nLinePitch - nCharWidth;
+-    if (nRubyHeight < 0)
+-        nRubyHeight = 0;
++	aGrid.SetBaseHeight(writer_cast<sal_uInt16>(nLinePitch));
++
++	// ruby height is not supported in ww8
++    //sal_Int32 nRubyHeight = nLinePitch - nCharWidth;
++    //if (nRubyHeight < 0)
++    //    nRubyHeight = 0;
++	sal_Int32 nRubyHeight = 0;
+     aGrid.SetRubyHeight(writer_cast<sal_uInt16>(nRubyHeight));
+ 
+     rFmt.SetAttr(aGrid);
+diff -uNpr sw.bak/source/filter/xml/xmlfmte.cxx sw/source/filter/xml/xmlfmte.cxx
+--- sw.bak/source/filter/xml/xmlfmte.cxx	2008-02-19 15:12:42.000000000 +0800
++++ sw/source/filter/xml/xmlfmte.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -244,6 +244,9 @@ void SwXMLExport::_ExportStyles( sal_Boo
+ #if SUPD <628 && !defined(TEST_MIB)
+ 	GetTextParagraphExport()->SetProgress( 0 );
+ #endif
++
++	//page defaults
++	GetPageExport()->exportDefaultStyle();
+ }
+ 
+ void SwXMLExport::_ExportAutoStyles()
+diff -uNpr sw.bak/source/ui/app/docshini.cxx sw/source/ui/app/docshini.cxx
+--- sw.bak/source/ui/app/docshini.cxx	2008-02-19 15:12:39.000000000 +0800
++++ sw/source/ui/app/docshini.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -228,6 +228,8 @@
+ 
+ #include <unochart.hxx>
+ 
++// text grid
++#include <tgrditem.hxx>
+ 
+ using namespace ::com::sun::star::i18n;
+ using namespace ::com::sun::star::lang;
+@@ -918,6 +920,14 @@ void SwDocShell::SubInitNew()
+     aDfltSet.Put( SvxColorItem( Color( COL_AUTO ), RES_CHRATR_COLOR ) );
+ 
+ 	pDoc->SetDefault( aDfltSet );
++
++	//default page mode for text grid
++	if(!bWeb)
++	{
++		sal_Bool bSquaredPageMode = SW_MOD()->GetUsrPref(FALSE)->IsSquaredPageMode();
++		pDoc->SetDefaultPageMode( bSquaredPageMode );
++	}
++	
+ 	pDoc->ResetModified();
+ }
+ 
+diff -uNpr sw.bak/source/ui/app/swmodul1.cxx sw/source/ui/app/swmodul1.cxx
+--- sw.bak/source/ui/app/swmodul1.cxx	2008-02-19 15:12:39.000000000 +0800
++++ sw/source/ui/app/swmodul1.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -700,3 +700,10 @@ void SwModule::CheckSpellChanges( sal_Bo
+ //		pSpell->SetSpellAllAgain( sal_False );
+ 	}
+ }
++
++void SwModule::ApplyDefaultPageMode(sal_Bool bIsSquaredPageMode)
++{
++    if(!pUsrPref)
++        GetUsrPref(sal_False);
++    pUsrPref->SetDefaultPageMode(bIsSquaredPageMode);
++}
+diff -uNpr sw.bak/source/ui/config/optload.cxx sw/source/ui/config/optload.cxx
+--- sw.bak/source/ui/config/optload.cxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/config/optload.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -106,6 +106,11 @@
+ #include <SwStyleNameMapper.hxx>
+ #endif
+ 
++#include <doc.hxx>
++#ifndef _SVTOOLS_CJKOPTIONS_HXX
++#include <svtools/cjkoptions.hxx>
++#endif
++
+ using namespace ::com::sun::star;
+ 
+ /* -----------------22.10.98 15:12-------------------
+@@ -130,6 +135,7 @@ SwLoadOptPage::SwLoadOptPage( Window* pP
+     aMetricLB           ( this, SW_RES( LB_METRIC ) ),
+     aTabFT              ( this, SW_RES( FT_TAB ) ),
+     aTabMF              ( this, SW_RES( MF_TAB ) ),
++	aUseSquaredPageMode ( this, SW_RES( CB_USE_SQUARE_PAGE_MODE ) ),
+ 
+ 	pWrtShell	( NULL ),
+     bHTMLMode   ( FALSE ),
+@@ -169,6 +175,10 @@ SwLoadOptPage::SwLoadOptPage( Window* pP
+         aTabFT.Hide();
+ 		aTabMF.Hide();
+ 	}
++	
++	SvtCJKOptions aCJKOptions;
++	if(!aCJKOptions.IsAsianTypographyEnabled())
++		aUseSquaredPageMode.Hide();
+ }
+ 
+ /*-----------------18.01.97 12.43-------------------
+@@ -246,6 +256,19 @@ BOOL __EXPORT SwLoadOptPage::FillItemSet
+         bRet = TRUE;
+     }
+ 
++    sal_Bool bIsSquaredPageModeFlag = aUseSquaredPageMode.IsChecked();
++    if ( bIsSquaredPageModeFlag != aUseSquaredPageMode.GetSavedValue() )
++    {
++        pMod->ApplyDefaultPageMode( bIsSquaredPageModeFlag );
++        if ( pWrtShell )
++        {
++            SwDoc* pDoc = pWrtShell->GetDoc();
++            pDoc->SetDefaultPageMode( bIsSquaredPageModeFlag );
++            pWrtShell->SetModified();
++        }
++        bRet = TRUE;
++    }
++
+     return bRet;
+ }
+ /*-----------------18.01.97 12.42-------------------
+@@ -311,6 +334,14 @@ void __EXPORT SwLoadOptPage::Reset( cons
+ 	{
+ 		bHTMLMode = 0 != (((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON);
+ 	}
++    
++	//default page mode loading
++	if(pWrtShell)
++	{
++    	sal_Bool bSquaredPageMode = pWrtShell->GetDoc()->IsSquaredPageMode();
++		aUseSquaredPageMode.Check( bSquaredPageMode );
++   	 	aUseSquaredPageMode.SaveValue();
++	}
+ }
+ /*-----------------13.01.97 14.44-------------------
+ 	Metric des Deftabstops umschalten
+diff -uNpr sw.bak/source/ui/config/optload.hrc sw/source/ui/config/optload.hrc
+--- sw.bak/source/ui/config/optload.hrc	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/config/optload.hrc	2008-02-19 15:12:51.000000000 +0800
+@@ -48,6 +48,7 @@
+ #define FT_METRIC				20
+ #define FT_TAB					21
+ #define MF_TAB					22
++#define CB_USE_SQUARE_PAGE_MODE 23
+ 
+ // SwCaptionOptPage -----------------------------
+ 
+diff -uNpr sw.bak/source/ui/config/optload.src sw/source/ui/config/optload.src
+--- sw.bak/source/ui/config/optload.src	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/config/optload.src	2008-02-19 15:12:51.000000000 +0800
+@@ -140,6 +140,13 @@ TabPage TP_OPTLOAD_PAGE
+ 		First = 50 ;
+ 		Last = 9999 ;
+ 	};
++    CheckBox CB_USE_SQUARE_PAGE_MODE
++    {
++        Pos = MAP_APPFONT ( 12 , 111) ;
++        Size = MAP_APPFONT ( 248 , 10 ) ;
++        Text [ en-US ] = "Use square page mode for text grid";
++        Text [ zh-CN ] = "使用稿纸模式";
++    };
+ };
+ /**************************************************************************/
+ /*                                                                        */
+diff -uNpr sw.bak/source/ui/config/usrpref.cxx sw/source/ui/config/usrpref.cxx
+--- sw.bak/source/ui/config/usrpref.cxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/config/usrpref.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -84,6 +84,7 @@ SwMasterUsrPref::SwMasterUsrPref(BOOL bW
+     bIsHScrollMetricSet(sal_False),
+     bIsVScrollMetricSet(sal_False),
+     nDefTab( MM50 * 4 ),
++    bIsSquaredPageMode(sal_False),
+     aContentConfig(bWeb, *this),
+     aLayoutConfig(bWeb, *this),
+     aGridConfig(bWeb, *this),
+@@ -281,9 +282,10 @@ Sequence<OUString> SwLayoutViewConfig::G
+         "Zoom/Type",                        //12
+         "Other/MeasureUnit",                //13
+         "Other/TabStop",                    //14
+-        "Window/IsVerticalRulerRight"       //15
++        "Window/IsVerticalRulerRight",      //15
++        "Other/IsSquaredPageMode"        //16
+     };
+-    const int nCount = bWeb ? 14 : 16;
++    const int nCount = bWeb ? 14 : 17;
+     Sequence<OUString> aNames(nCount);
+ 	OUString* pNames = aNames.getArray();
+ 	for(int i = 0; i < nCount; i++)
+@@ -347,8 +349,9 @@ void SwLayoutViewConfig::Commit()
+             case 13: pValues[nProp] <<= (sal_Int32)rParent.GetMetric(); break;// "Other/MeasureUnit",
+             case 14: pValues[nProp] <<= static_cast<sal_Int32>(TWIP_TO_MM100(rParent.GetDefTab())); break;// "Other/TabStop",
+             case 15: bSet = rParent.IsVRulerRight(); break;// "Window/IsVerticalRulerRight",
++            case 16: bSet = rParent.IsSquaredPageMode(); break;// "Other/IsSquaredPageMode",
+         }
+-        if(nProp < 8 || nProp == 10)
++        if(nProp < 8 || nProp == 10 || nProp == 16)
+ 			pValues[nProp].setValue(&bSet, ::getBooleanCppuType());
+ 	}
+ 	PutProperties(aNames, aValues);
+@@ -368,7 +371,7 @@ void SwLayoutViewConfig::Load()
+ 		{
+ 			if(pValues[nProp].hasValue())
+ 			{
+-                sal_Bool bSet = nProp < 8 || nProp == 10 ? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
++                sal_Bool bSet = nProp < 8 || nProp == 10 || nProp == 16? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
+                 switch(nProp)
+ 				{
+                     case  0: rParent.SetCrossHair(bSet); break;// "Line/Guide",
+@@ -425,6 +428,7 @@ void SwLayoutViewConfig::Load()
+ 					}
+ 					break;// "Other/TabStop",
+                     case 15: rParent.SetVRulerRight(bSet); break;// "Window/IsVerticalRulerRight",
++                    case 16: rParent.SetDefaultPageMode(bSet); break;// "Other/IsSquaredPageMode",
+                 }
+ 			}
+ 		}
+diff -uNpr sw.bak/source/ui/inc/optload.hxx sw/source/ui/inc/optload.hxx
+--- sw.bak/source/ui/inc/optload.hxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/inc/optload.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -93,6 +93,7 @@ private:
+     ListBox     aMetricLB;
+     FixedText   aTabFT;
+ 	MetricField aTabMF;
++    CheckBox    aUseSquaredPageMode;
+ 
+ 	SwWrtShell*	pWrtShell;
+     sal_Bool    bHTMLMode;
+diff -uNpr sw.bak/source/ui/inc/pggrid.hxx sw/source/ui/inc/pggrid.hxx
+--- sw.bak/source/ui/inc/pggrid.hxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/inc/pggrid.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -60,6 +60,7 @@ class SwTextGridPage: public SfxTabPage
+     RadioButton     aNoGridRB;
+     RadioButton     aLinesGridRB;
+     RadioButton     aCharsGridRB;
++    CheckBox        aSnapToCharsCB;
+ 
+     SwPageGridExample   aExampleWN;
+ 
+@@ -74,6 +75,9 @@ class SwTextGridPage: public SfxTabPage
+     FixedText       aCharsPerLineFT;
+     NumericField    aCharsPerLineNF;
+ 
++    FixedText       aCharWidthFT;
++    MetricField     aCharWidthMF;    
++    
+     FixedText       aRubySizeFT;
+     MetricField     aRubySizeMF;
+ 
+@@ -86,12 +90,13 @@ class SwTextGridPage: public SfxTabPage
+     FixedText       aColorFT;
+     ColorListBox    aColorLB;
+ 
+-    Window*         aControls[16];
++    Window*         aControls[18];
+ 
+     sal_Int32       m_nRubyUserValue;
+     sal_Bool        m_bRubyUserValue;
+     Size            m_aPageSize;
+     sal_Bool        m_bVertical;
++	sal_Bool		m_bSquaredMode;
+ 
+     SwTextGridPage(Window *pParent, const SfxItemSet &rSet);
+     ~SwTextGridPage();
+@@ -100,7 +105,8 @@ class SwTextGridPage: public SfxTabPage
+     void PutGridItem(SfxItemSet& rSet);
+ 
+     DECL_LINK(GridTypeHdl, RadioButton*);
+-    DECL_LINK(CharSizeChangedHdl, SpinField*);
++    DECL_LINK(CharorLineChangedHdl, SpinField*);
++    DECL_LINK(TextSizeChangedHdl, SpinField*);
+     DECL_LINK(GridModifyHdl, void*);
+     DECL_LINK(DisplayGridHdl, CheckBox*);
+ 
+diff -uNpr sw.bak/source/ui/inc/usrpref.hxx sw/source/ui/inc/usrpref.hxx
+--- sw.bak/source/ui/inc/usrpref.hxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/inc/usrpref.hxx	2008-02-19 15:12:51.000000000 +0800
+@@ -157,6 +157,7 @@ class SwMasterUsrPref : public SwViewOpt
+ 
+ 	sal_Int32	nDefTab;			//default tab stop distance
+ 
++    sal_Bool    bIsSquaredPageMode; //default page mode for text grid
+     SwContentViewConfig aContentConfig;
+     SwLayoutViewConfig  aLayoutConfig;
+     SwGridConfig        aGridConfig;
+@@ -272,6 +273,15 @@ public:
+                         aLayoutConfig.SetModified();
+                 }
+ 
++    //default page mode for text grid
++    sal_Bool    IsSquaredPageMode() const {return bIsSquaredPageMode;}
++    void        SetDefaultPageMode( sal_Bool bVal, sal_Bool bNoModify = sal_False ) 
++                { 
++                    bIsSquaredPageMode = bVal;
++                    if(!bNoModify)
++                        aLayoutConfig.SetModified(); 
++                }
++
+ };
+ 
+ #endif
+diff -uNpr sw.bak/source/ui/misc/pggrid.cxx sw/source/ui/misc/pggrid.cxx
+--- sw.bak/source/ui/misc/pggrid.cxx	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/misc/pggrid.cxx	2008-02-19 15:12:51.000000000 +0800
+@@ -69,6 +69,9 @@
+ #ifndef _SVX_LRSPITEM_HXX
+ #include <svx/lrspitem.hxx>
+ #endif
++#ifndef _SVX_ULSPITEM_HXX
++#include <svx/ulspitem.hxx>
++#endif
+ #ifndef _SVX_BOXITEM_HXX
+ #include <svx/boxitem.hxx>
+ #endif
+@@ -83,6 +86,11 @@
+ #endif
+ #include <pggrid.hrc>
+ 
++#include "wrtsh.hxx"
++#include "doc.hxx"
++#include "uiitems.hxx"
++#include "swmodule.hxx"
++#include "view.hxx"
+ /*-- 06.02.2002 15:25:39---------------------------------------------------
+ 
+   -----------------------------------------------------------------------*/
+@@ -92,6 +100,7 @@ SwTextGridPage::SwTextGridPage(Window *p
+     aNoGridRB               (this, SW_RES(RB_NOGRID          )),
+     aLinesGridRB            (this, SW_RES(RB_LINESGRID       )),
+     aCharsGridRB            (this, SW_RES(RB_CHARSGRID       )),
++	aSnapToCharsCB          (this, SW_RES(CB_SNAPTOCHARS      )),
+     aExampleWN              (this, SW_RES(WN_EXAMPLE         )),
+     aLayoutFL               (this, SW_RES(FL_LAYOUT          )),
+     aLinesPerPageFT         (this, SW_RES(FT_LINESPERPAGE    )),
+@@ -100,6 +109,8 @@ SwTextGridPage::SwTextGridPage(Window *p
+     aTextSizeMF             (this, SW_RES(MF_TEXTSIZE        )),
+     aCharsPerLineFT         (this, SW_RES(FT_CHARSPERLINE    )),
+     aCharsPerLineNF         (this, SW_RES(NF_CHARSPERLINE    )),
++	aCharWidthFT            (this, SW_RES(FT_CHARWIDTH        )),
++	aCharWidthMF            (this, SW_RES(MF_CHARWIDTH        )),
+     aRubySizeFT             (this, SW_RES(FT_RUBYSIZE        )),
+     aRubySizeMF             (this, SW_RES(MF_RUBYSIZE        )),
+     aRubyBelowCB            (this, SW_RES(CB_RUBYBELOW       )),
+@@ -111,7 +122,8 @@ SwTextGridPage::SwTextGridPage(Window *p
+     m_nRubyUserValue(0),
+     m_bRubyUserValue(sal_False),
+     m_aPageSize(MM50, MM50),
+-    m_bVertical(sal_False)
++    m_bVertical(sal_False),
++	m_bSquaredMode(sal_False)
+ {
+     FreeResource();
+ 
+@@ -122,23 +134,36 @@ SwTextGridPage::SwTextGridPage(Window *p
+     aControls[4] =&aTextSizeMF;
+     aControls[5] =&aCharsPerLineFT;
+     aControls[6] =&aCharsPerLineNF;
+-    aControls[7] =&aRubySizeFT;
+-    aControls[8] =&aRubySizeMF;
+-    aControls[9] =&aRubyBelowCB;
+-    aControls[10] =&aDisplayFL;
+-    aControls[11] =&aDisplayCB;
+-    aControls[12] =&aPrintCB;
+-    aControls[13] =&aColorFT;
+-    aControls[14] =&aColorLB;
+-    aControls[15] =0;
++    aControls[7] =&aCharWidthFT;
++    aControls[8] =&aCharWidthMF;
++    aControls[9] =&aRubySizeFT;
++    aControls[10] =&aRubySizeMF;    
++    aControls[11] =&aRubyBelowCB;
++    aControls[12] =&aDisplayFL;
++    aControls[13] =&aDisplayCB;
++    aControls[14] =&aPrintCB;
++    aControls[15] =&aColorFT;
++    aControls[16] =&aColorLB;
++    aControls[17] =0;
+ 
+-    Link aLink = LINK(this, SwTextGridPage, CharSizeChangedHdl);
++    Link aLink = LINK(this, SwTextGridPage, CharorLineChangedHdl);
+     aCharsPerLineNF.SetUpHdl(aLink);
+-    aTextSizeMF.SetUpHdl(aLink);
+     aCharsPerLineNF.SetDownHdl(aLink);
+-    aTextSizeMF.SetDownHdl(aLink);
+     aCharsPerLineNF.SetLoseFocusHdl(aLink);
+-    aTextSizeMF.SetLoseFocusHdl(aLink);
++    aLinesPerPageNF.SetUpHdl(aLink);
++    aLinesPerPageNF.SetDownHdl(aLink);
++    aLinesPerPageNF.SetLoseFocusHdl(aLink);
++    
++    Link aSizeLink = LINK(this, SwTextGridPage, TextSizeChangedHdl);
++    aTextSizeMF.SetUpHdl(aSizeLink);
++    aTextSizeMF.SetDownHdl(aSizeLink);
++    aTextSizeMF.SetLoseFocusHdl(aSizeLink);
++    aRubySizeMF.SetUpHdl(aSizeLink);
++    aRubySizeMF.SetDownHdl(aSizeLink);
++    aRubySizeMF.SetLoseFocusHdl(aSizeLink); 
++    aCharWidthMF.SetUpHdl(aSizeLink);
++    aCharWidthMF.SetDownHdl(aSizeLink);
++    aCharWidthMF.SetLoseFocusHdl(aSizeLink);
+ 
+     Link aGridTypeHdl = LINK(this, SwTextGridPage, GridTypeHdl);
+     aNoGridRB   .SetClickHdl(aGridTypeHdl);
+@@ -150,12 +175,6 @@ SwTextGridPage::SwTextGridPage(Window *p
+     aPrintCB.SetClickHdl(aModifyLk);
+     aRubyBelowCB.SetClickHdl(aModifyLk);
+ 
+-    aLinesPerPageNF.SetUpHdl(aModifyLk);
+-    aRubySizeMF.SetUpHdl(aModifyLk);
+-    aLinesPerPageNF.SetDownHdl(aModifyLk);
+-    aRubySizeMF.SetDownHdl(aModifyLk);
+-    aLinesPerPageNF.SetLoseFocusHdl(aModifyLk);
+-    aRubySizeMF.SetLoseFocusHdl(aModifyLk);
+ 
+     aDisplayCB.SetClickHdl(LINK(this, SwTextGridPage, DisplayGridHdl));
+ 
+@@ -169,6 +188,34 @@ SwTextGridPage::SwTextGridPage(Window *p
+ 		aColorLB.InsertEntry( aColor, sName );
+ 	}
+ 	aColorLB.SetUpdateMode( TRUE );
++	//Get the default paper mode
++	SwView *pView   = ::GetActiveView();
++	if( pView )
++	{
++		SwWrtShell* pSh = pView->GetWrtShellPtr();
++		if( pSh )
++		{
++			m_bSquaredMode = pSh->GetDoc()->IsSquaredPageMode();
++		}
++	}
++	if( m_bSquaredMode )
++	{
++		aRubySizeFT.Show();
++		aRubySizeMF.Show();
++		aRubyBelowCB.Show();
++		aSnapToCharsCB.Hide();
++		aCharWidthFT.Hide();
++		aCharWidthMF.Hide();
++	}
++	else
++	{
++		aRubySizeFT.Hide();
++		aRubySizeMF.Hide();
++		aRubyBelowCB.Hide();
++		aSnapToCharsCB.Show();
++		aCharWidthFT.Show();
++		aCharWidthMF.Show();
++	}
+ }
+ /*-- 06.02.2002 15:25:40---------------------------------------------------
+ 
+@@ -196,7 +243,9 @@ BOOL    SwTextGridPage::FillItemSet(SfxI
+         aTextSizeMF.GetSavedValue().ToInt32() != aTextSizeMF.GetValue()||
+         aCharsPerLineNF.GetSavedValue().ToInt32()
+            != aCharsPerLineNF.GetValue()||
++        aSnapToCharsCB.GetSavedValue() != aSnapToCharsCB.IsChecked() ||
+         aRubySizeMF.GetSavedValue().ToInt32() != aRubySizeMF.GetValue()||
++        aCharWidthMF.GetSavedValue().ToInt32() != aCharWidthMF.GetValue()||
+         aRubyBelowCB.GetSavedValue() != aRubyBelowCB.IsChecked()||
+         aDisplayCB.GetSavedValue() != aDisplayCB.IsChecked()||
+         aPrintCB.GetSavedValue() != aPrintCB.IsChecked()||
+@@ -225,11 +274,13 @@ void    SwTextGridPage::Reset(const SfxI
+         }
+         pButton->Check();
+         GridTypeHdl(pButton);
++        aSnapToCharsCB.Check(rGridItem.IsSnapToChars());
+         aLinesPerPageNF.SetValue(rGridItem.GetLines());
+         m_nRubyUserValue = rGridItem.GetBaseHeight();
+         m_bRubyUserValue = sal_True;
+         aTextSizeMF.SetValue(aTextSizeMF.Normalize(m_nRubyUserValue), FUNIT_TWIP);
+         aRubySizeMF.SetValue(aRubySizeMF.Normalize(rGridItem.GetRubyHeight()), FUNIT_TWIP);
++        aCharWidthMF.SetValue(aCharWidthMF.Normalize(rGridItem.GetBaseWidth()), FUNIT_TWIP);
+         aRubyBelowCB.Check(rGridItem.IsRubyTextBelow());
+         aDisplayCB.Check(rGridItem.IsDisplayGrid());
+         aPrintCB.Check(rGridItem.IsPrintGrid());
+@@ -239,10 +290,12 @@ void    SwTextGridPage::Reset(const SfxI
+ 
+     aNoGridRB.SaveValue();
+     aLinesGridRB.SaveValue();
++    aSnapToCharsCB.SaveValue();
+     aLinesPerPageNF.SaveValue();
+     aTextSizeMF.SaveValue();
+     aCharsPerLineNF.SaveValue();
+     aRubySizeMF.SaveValue();
++    aCharWidthMF.SaveValue();
+     aRubyBelowCB.SaveValue();
+     aDisplayCB.SaveValue();
+     aPrintCB.SaveValue();
+@@ -275,12 +328,15 @@ void SwTextGridPage::PutGridItem(SfxItem
+         SwTextGridItem aGridItem;
+         aGridItem.SetGridType(aNoGridRB.IsChecked() ? GRID_NONE :
+             aLinesGridRB.IsChecked() ? GRID_LINES_ONLY : GRID_LINES_CHARS );
++        aGridItem.SetSnapToChars(aSnapToCharsCB.IsChecked());
+         aGridItem.SetLines( static_cast< sal_uInt16 >(aLinesPerPageNF.GetValue()) );
+         aGridItem.SetBaseHeight( static_cast< sal_uInt16 >(
+             m_bRubyUserValue ? m_nRubyUserValue :
+                 aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP))) );
+         aGridItem.SetRubyHeight( static_cast< sal_uInt16 >(aRubySizeMF.Denormalize(aRubySizeMF.GetValue(FUNIT_TWIP))) );
++        aGridItem.SetBaseWidth( static_cast< sal_uInt16 >(aCharWidthMF.Denormalize(aCharWidthMF.GetValue(FUNIT_TWIP))) );
+         aGridItem.SetRubyTextBelow(aRubyBelowCB.IsChecked());
++        aGridItem.SetSquaredMode(m_bSquaredMode);
+         aGridItem.SetDisplayGrid(aDisplayCB.IsChecked());
+         aGridItem.SetPrintGrid(aPrintCB.IsChecked());
+         aGridItem.SetColor(aColorLB.GetSelectEntryColor());
+@@ -305,13 +361,16 @@ void SwTextGridPage::UpdatePageSize(cons
+                                             SID_ATTR_PAGE_SIZE);
+         const SvxLRSpaceItem& rLRSpace = (const SvxLRSpaceItem&)rSet.Get(
+                                                             RES_LR_SPACE );
++        const SvxULSpaceItem& rULSpace = (const SvxULSpaceItem&)rSet.Get(
++                                                            RES_UL_SPACE );                                                    
+         const SvxBoxItem& rBox = (const SvxBoxItem&) rSet.Get(RES_BOX);
+-        sal_Int32 nDistance = rLRSpace.GetLeft() + rLRSpace.GetRight();
++        sal_Int32 nDistanceLR = rLRSpace.GetLeft() + rLRSpace.GetRight();
++        sal_Int32 nDistanceUL = rULSpace.GetUpper() + rULSpace.GetLower();
+ 
+-        sal_Int32 nValue1 = rSize.GetSize().Height() - nDistance -
++        sal_Int32 nValue1 = rSize.GetSize().Height() - nDistanceUL -
+                 rBox.GetDistance(BOX_LINE_TOP) -
+                                     rBox.GetDistance(BOX_LINE_BOTTOM);
+-        sal_Int32 nValue2 = rSize.GetSize().Width() - nDistance -
++        sal_Int32 nValue2 = rSize.GetSize().Width() - nDistanceLR -
+                 rBox.GetDistance(BOX_LINE_LEFT) -
+                                     rBox.GetDistance(BOX_LINE_RIGHT);
+         if(m_bVertical)
+@@ -328,8 +387,21 @@ void SwTextGridPage::UpdatePageSize(cons
+         sal_Int32 nTextSize = static_cast< sal_Int32 >(m_bRubyUserValue ?
+                     m_nRubyUserValue :
+                         aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)) );
++        
++        if ( m_bSquaredMode )
++        {
+         aCharsPerLineNF.SetValue(m_aPageSize.Width() / nTextSize);
+     }
++        else
++        {
++            sal_Int32 nTextWidth = static_cast< sal_Int32 >(aCharWidthMF.Denormalize(aCharWidthMF.GetValue(FUNIT_TWIP)));
++            aLinesPerPageNF.SetValue(m_aPageSize.Height() / nTextSize);
++            if (nTextWidth)
++                aCharsPerLineNF.SetValue(m_aPageSize.Width() / nTextWidth); 
++            else
++                aCharsPerLineNF.SetValue( 45 );
++        }
++    }
+ }
+ /* -----------------------------06.02.2002 15:24------------------------------
+ 
+@@ -344,22 +416,87 @@ USHORT* SwTextGridPage::GetRanges()
+ /* -----------------------------08.02.2002 10:56------------------------------
+ 
+  ---------------------------------------------------------------------------*/
+-IMPL_LINK(SwTextGridPage, CharSizeChangedHdl, SpinField*, pField)
++IMPL_LINK(SwTextGridPage, CharorLineChangedHdl, SpinField*, pField)
++{
++    //if in squared mode
++    if ( m_bSquaredMode )
+ {
+     if(&aCharsPerLineNF == pField)
+     {
+-        long nWidth = m_aPageSize.Width() / static_cast< long >(aCharsPerLineNF.GetValue());
++            long nWidth = (long)(m_aPageSize.Width() / aCharsPerLineNF.GetValue());
+         aTextSizeMF.SetValue(aTextSizeMF.Normalize(nWidth), FUNIT_TWIP);
+         //prevent rounding errors in the MetricField by saving the used value
+         m_nRubyUserValue = nWidth;
+         m_bRubyUserValue = sal_True;
++            
+     }
+-    else
++		//set maximum line per page
++        {
++            sal_Int32 nMaxLines = static_cast< sal_Int32 >(m_aPageSize.Height() /
++                (   aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)) +
++                    aRubySizeMF.Denormalize(aRubySizeMF.GetValue(FUNIT_TWIP))));
++            aLinesPerPageNF.SetMax(nMaxLines);
++        }
++	}
++    else//in normal mode
++    {
++        if(&aLinesPerPageNF == pField)
++        {
++            long nHeight = static_cast< sal_Int32 >(m_aPageSize.Height() / aLinesPerPageNF.GetValue());
++            aTextSizeMF.SetValue(aTextSizeMF.Normalize(nHeight), FUNIT_TWIP);
++            aRubySizeMF.SetValue(0, FUNIT_TWIP);
++            
++            m_nRubyUserValue = nHeight;
++            m_bRubyUserValue = sal_True;
++        }
++        else if (&aCharsPerLineNF == pField)
++        {
++            long nWidth = static_cast< sal_Int32 >(m_aPageSize.Width() / aCharsPerLineNF.GetValue());
++            aCharWidthMF.SetValue(aCharWidthMF.Normalize(nWidth), FUNIT_TWIP);
++        }
++    }
++    GridModifyHdl(0);
++    return 0;
++}
++/* -----------------------------04.09.2006 15:46------------------------------
++ ---------------------------------------------------------------------------*/
++IMPL_LINK(SwTextGridPage, TextSizeChangedHdl, SpinField*, pField)
++{
++    //if in squared mode
++    if( m_bSquaredMode )
++    {
++        if (&aTextSizeMF == pField)
+     {
+         sal_Int32 nTextSize = static_cast< sal_Int32 >(aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)));
+         aCharsPerLineNF.SetValue(m_aPageSize.Width() / nTextSize);
+         m_bRubyUserValue = sal_False;
+     }
++		//set maximum line per page
++        {
++            sal_Int32 nMaxLines = static_cast< sal_Int32 >(m_aPageSize.Height() /
++                (   aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)) +
++                    aRubySizeMF.Denormalize(aRubySizeMF.GetValue(FUNIT_TWIP))));
++            aLinesPerPageNF.SetMax(nMaxLines);
++        }
++    }
++    else
++    {
++        if (&aTextSizeMF == pField)
++        {
++            sal_Int32 nTextSize = static_cast< sal_Int32 >(aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)));
++            aLinesPerPageNF.SetValue(m_aPageSize.Height() / nTextSize);
++            m_bRubyUserValue = sal_False;
++        }
++        else if (&aCharWidthMF == pField)
++        {
++            sal_Int32 nTextWidth = static_cast< sal_Int32 >(aCharWidthMF.Denormalize(aCharWidthMF.GetValue(FUNIT_TWIP)));
++            if (nTextWidth)
++                aCharsPerLineNF.SetValue(m_aPageSize.Width() / nTextWidth); 
++            else
++                aCharsPerLineNF.SetValue( 45 );
++        }
++        //rubySize is disabled
++    }
+     GridModifyHdl(0);
+     return 0;
+ }
+@@ -376,6 +513,18 @@ IMPL_LINK(SwTextGridPage, GridTypeHdl, R
+     if(bEnable)
+         DisplayGridHdl(&aDisplayCB);
+ 
++	bEnable = &aCharsGridRB == pButton;
++	aSnapToCharsCB.Enable(bEnable);
++	
++	bEnable = &aLinesGridRB == pButton;
++	if(bEnable && !m_bSquaredMode )
++	{
++		aCharsPerLineFT.Enable(sal_False);
++		aCharsPerLineNF.Enable(sal_False);
++		aCharWidthFT.Enable(sal_False);
++		aCharWidthMF.Enable(sal_False);
++	}
++	
+     GridModifyHdl(0);
+     return 0;
+ }
+@@ -392,11 +541,6 @@ IMPL_LINK(SwTextGridPage, DisplayGridHdl
+  ---------------------------------------------------------------------------*/
+ IMPL_LINK(SwTextGridPage, GridModifyHdl, void*, EMPTYARG)
+ {
+-    //set maximum for Lines per page
+-    sal_Int32 nMaxLines = static_cast< sal_Int32 >(m_aPageSize.Height() /
+-                (   aTextSizeMF.Denormalize(aTextSizeMF.GetValue(FUNIT_TWIP)) +
+-                    aRubySizeMF.Denormalize(aRubySizeMF.GetValue(FUNIT_TWIP))) );
+-    aLinesPerPageNF.SetMax(nMaxLines);
+     const SfxItemSet& rOldSet = GetItemSet();
+     SfxItemSet aSet(rOldSet);
+     const SfxItemSet* pExSet = GetTabDialog()->GetExampleSet();
+diff -uNpr sw.bak/source/ui/misc/pggrid.hrc sw/source/ui/misc/pggrid.hrc
+--- sw.bak/source/ui/misc/pggrid.hrc	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/misc/pggrid.hrc	2008-02-19 15:12:51.000000000 +0800
+@@ -55,3 +55,6 @@
+ #define CB_PRINT            20
+ #define FT_COLOR            21
+ #define LB_COLOR            22
++#define CB_SNAPTOCHARS      23
++#define FT_CHARWIDTH        24
++#define MF_CHARWIDTH        25
+diff -uNpr sw.bak/source/ui/misc/pggrid.src sw/source/ui/misc/pggrid.src
+--- sw.bak/source/ui/misc/pggrid.src	2008-02-19 15:12:40.000000000 +0800
++++ sw/source/ui/misc/pggrid.src	2008-02-19 15:12:51.000000000 +0800
+@@ -65,6 +65,13 @@ TabPage TP_TEXTGRID_PAGE
+         Size = MAP_APPFONT ( 158 , 10 ) ;
+         Text [ en-US ] = "Grid (lines and characters)" ;
+ 	};
++    CheckBox        CB_SNAPTOCHARS
++    {
++        Pos = MAP_APPFONT ( 14 , 53 ) ;
++        Size = MAP_APPFONT ( 158 , 10 ) ;
++        Text [ en-US ] = "~Snap to characters" ;
++        Text [ zh-CN ] = "文字对齐字符网格" ;
++    };
+     Window          WN_EXAMPLE
+     {
+         Pos = MAP_APPFONT ( 176 , 6 ) ;
+@@ -72,19 +79,19 @@ TabPage TP_TEXTGRID_PAGE
+     };
+     FixedLine       FL_LAYOUT
+     {
+-        Pos = MAP_APPFONT ( 6 , 56 ) ;
++        Pos = MAP_APPFONT ( 6 , 69 ) ;
+         Size = MAP_APPFONT ( 248 , 8 ) ;
+         Text [ en-US ] = "Grid layout" ;
+ 	};
+     FixedText       FT_LINESPERPAGE
+     {
+-        Pos = MAP_APPFONT ( 12 , 69 ) ;
++        Pos = MAP_APPFONT ( 12 , 82 ) ;
+         Size = MAP_APPFONT ( 59 , 8 ) ;
+         Text [ en-US ] = "Lines per page" ;
+ 	};
+     NumericField    NF_LINESPERPAGE
+     {
+-        Pos = MAP_APPFONT ( 74 , 67 ) ;
++        Pos = MAP_APPFONT ( 74 , 80 ) ;
+         Size = MAP_APPFONT ( 25 , 12 ) ;
+         Border = TRUE ;
+         TabStop = TRUE ;
+@@ -100,13 +107,13 @@ TabPage TP_TEXTGRID_PAGE
+     };
+     FixedText       FT_TEXTSIZE
+     {
+-        Pos = MAP_APPFONT ( 133 , 69 ) ;
++        Pos = MAP_APPFONT ( 133 , 82 ) ;
+         Size = MAP_APPFONT ( 80 , 8 ) ;
+         Text [ en-US ] = "Max. base text size" ;
+ 	};
+     MetricField     MF_TEXTSIZE
+     {
+-        Pos = MAP_APPFONT ( 216 , 67 ) ;
++        Pos = MAP_APPFONT ( 216 , 80 ) ;
+         Size = MAP_APPFONT ( 35 , 12 ) ;
+         Border = TRUE ;
+         TabStop = TRUE ;
+@@ -115,7 +122,7 @@ TabPage TP_TEXTGRID_PAGE
+ 		Spin = TRUE ;
+ 		Minimum = 1 ;
+ 		Maximum = 5600 ;
+-        DecimalDigits = 1 ;
++        DecimalDigits = 2 ;
+         Unit = FUNIT_POINT ;
+ 		First = 10 ;
+ 		Last = 5600 ;
+@@ -123,13 +130,13 @@ TabPage TP_TEXTGRID_PAGE
+     };
+     FixedText       FT_CHARSPERLINE
+     {
+-        Pos = MAP_APPFONT ( 12 , 85 ) ;
++        Pos = MAP_APPFONT ( 12 , 98 ) ;
+         Size = MAP_APPFONT ( 59 , 8 ) ;
+         Text [ en-US ] = "Characters per line" ;
+ 	};
+     NumericField    NF_CHARSPERLINE
+     {
+-        Pos = MAP_APPFONT ( 74 , 83 ) ;
++        Pos = MAP_APPFONT ( 74 , 96 ) ;
+         Size = MAP_APPFONT ( 25 , 12 ) ;
+         Border = TRUE ;
+         TabStop = TRUE ;
+@@ -143,62 +150,86 @@ TabPage TP_TEXTGRID_PAGE
+         Last = 233 ;
+ 		SpinSize = 1 ;
+     };
++    FixedText       FT_CHARWIDTH
++    {
++        Pos = MAP_APPFONT ( 133 , 98 ) ;
++        Size = MAP_APPFONT ( 80 , 8 ) ;
++        Text [ en-US ] = "Character ~width" ;
++        Text [ zh-CN ] = "字符跨度" ;
++	};
++    MetricField     MF_CHARWIDTH
++    {
++        Pos = MAP_APPFONT ( 216 , 96 ) ;
++        Size = MAP_APPFONT ( 35 , 12 ) ;
++        Border = TRUE ;
++        TabStop = TRUE ;
++		Left = TRUE ;
++		Repeat = TRUE ;
++		Spin = TRUE ;
++		Minimum = 0 ;
++		Maximum = 5600 ;
++        DecimalDigits = 2 ;
++        Unit = FUNIT_POINT;
++		First = 0 ;
++		Last = 5600 ;
++        SpinSize = 5 ;
++    };
+     FixedText       FT_RUBYSIZE
+     {
+-        Pos = MAP_APPFONT ( 133 , 85 ) ;
++        Pos = MAP_APPFONT ( 133 , 98 ) ;
+         Size = MAP_APPFONT ( 80 , 8 ) ;
+         Text [ en-US ] = "Max. Ruby text size" ;
+ 	};
+     MetricField     MF_RUBYSIZE
+     {
+-        Pos = MAP_APPFONT ( 216 , 83 ) ;
++        Pos = MAP_APPFONT ( 216 , 96 ) ;
+         Size = MAP_APPFONT ( 35 , 12 ) ;
+         Border = TRUE ;
+         TabStop = TRUE ;
+ 		Left = TRUE ;
+ 		Repeat = TRUE ;
+ 		Spin = TRUE ;
+-		Minimum = 1 ;
++        Minimum = 0 ;
+ 		Maximum = 5600 ;
+-        DecimalDigits = 1 ;
++        DecimalDigits = 2 ;
+         Unit = FUNIT_POINT;
+-		First = 10 ;
++        First = 0 ;
+ 		Last = 5600 ;
+         SpinSize = 5 ;
+     };
+     CheckBox        CB_RUBYBELOW
+     {
+-        Pos = MAP_APPFONT ( 14 , 99 ) ;
+-        Size = MAP_APPFONT ( 242 , 10 ) ;
++        Pos = MAP_APPFONT ( 14 , 112 ) ;
++        Size = MAP_APPFONT ( 110 , 10 ) ;
+         Text [ en-US ] = "Ruby text below/left from base text" ;
+ 	};
+     FixedLine       FL_DISPLAY
+     {
+-        Pos = MAP_APPFONT ( 6 , 115 ) ;
++        Pos = MAP_APPFONT ( 6 , 128 ) ;
+         Size = MAP_APPFONT ( 248 , 8 ) ;
+         Text [ en-US ] = "Grid display" ;
+ 	};
+     CheckBox        CB_DISPLAY
+     {
+-        Pos = MAP_APPFONT ( 12 , 126 ) ;
++        Pos = MAP_APPFONT ( 12 , 139 ) ;
+         Size = MAP_APPFONT ( 112 , 10 ) ;
+         Text [ en-US ] = "Display grid" ;
+ 	};
+     CheckBox        CB_PRINT
+     {
+-        Pos = MAP_APPFONT ( 18 , 141 ) ;
++        Pos = MAP_APPFONT ( 18 , 154 ) ;
+         Size = MAP_APPFONT ( 106 , 10 ) ;
+         Text [ en-US ] = "Print grid" ;
+ 	};
+     FixedText       FT_COLOR
+     {
+-        Pos = MAP_APPFONT ( 133 , 126 ) ;
++        Pos = MAP_APPFONT ( 133 , 139 ) ;
+         Size = MAP_APPFONT ( 55 , 8 ) ;
+         Text [ en-US ] = "Grid color" ;
+ 	};
+     ListBox         LB_COLOR
+     {
+-        Pos = MAP_APPFONT ( 191 , 124 ) ;
++        Pos = MAP_APPFONT ( 191 , 137 ) ;
+         Size = MAP_APPFONT ( 60 , 50 ) ;
+         TabStop = TRUE;
+         Border = TRUE;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-field-patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-field-patch.diff
@@ -0,0 +1,2711 @@
+diff --git a/sw/inc/IDocumentBookmarkAccess.hxx b/sw/inc/IDocumentBookmarkAccess.hxx
+index edcc15f..850dd49 100644
+--- sw/inc/IDocumentBookmarkAccess.hxx
++++ sw/inc/IDocumentBookmarkAccess.hxx
+@@ -41,10 +41,12 @@
+ #endif
+ 
+ class SwBookmark;
++class SwFieldBookmark;
+ class SwBookmarks;
+ class SwPaM;
+ class KeyCode;
+ class String;
++class SwPosition;
+ 
+  /** Provides access to the bookmarks of a document.
+  */
+@@ -57,7 +59,10 @@ class String;
+         MARK, 
+         DDE_BOOKMARK, 
+         UNO_BOOKMARK,
+-        HIDDEN_BOOKMARK
++        HIDDEN_BOOKMARK,
++//		FIELDMARK, // for future use...
++		FORM_FIELDMARK_TEXT,
++		FORM_FIELDMARK_NO_TEXT
+     };
+     
+  public:    
+@@ -147,7 +152,11 @@ class String;
+        the bookmark.
+     */
+     virtual SwBookmark& getBookmark(  /*[in]*/sal_uInt16 nPos, /*[in]*/bool bBkmrk) = 0;
+-    
++
++    virtual SwBookmark* getFieldBookmarkFor(const SwPosition &pos) const = 0;    
++    virtual SwFieldBookmark* getFormFieldBookmarkFor(const SwPosition &pos) const = 0;    
++    virtual SwBookmark* getNextFieldBookmarkFor(const SwPosition &pos) const = 0;    
++    virtual SwBookmark* getPrevFieldBookmarkFor(const SwPosition &pos) const = 0;    
+ protected:
+     virtual ~IDocumentBookmarkAccess() {};
+  };
+diff --git a/sw/inc/IDocumentSettingAccess.hxx b/sw/inc/IDocumentSettingAccess.hxx
+index 59e7901..970d034 100644
+--- sw/inc/IDocumentSettingAccess.hxx
++++ sw/inc/IDocumentSettingAccess.hxx
+@@ -91,6 +91,7 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd
+          UNIX_FORCE_ZERO_EXT_LEADING,
+          USE_OLD_PRINTER_METRICS,
+          TABS_RELATIVE_TO_INDENT,
++         PROTECT_FORM,
+          // COMPATIBILITY FLAGS END
+ 
+          BROWSE_MODE,
+diff --git a/sw/inc/bookmrk.hxx b/sw/inc/bookmrk.hxx
+index 97b619b..c908548 100644
+--- sw/inc/bookmrk.hxx
++++ sw/inc/bookmrk.hxx
+@@ -108,11 +108,12 @@ public:
+ 	// falls man wirklich auf gleiche Position abfragen will.
+ 	BOOL IsEqualPos( const SwBookmark &rBM ) const;
+ 
+-	BOOL IsBookMark() const 	{ return IDocumentBookmarkAccess::BOOKMARK == eMarkType; }
++	BOOL IsBookMark() const 	{ return IDocumentBookmarkAccess::BOOKMARK == eMarkType || IDocumentBookmarkAccess::FORM_FIELDMARK_TEXT == eMarkType || IDocumentBookmarkAccess::FORM_FIELDMARK_NO_TEXT == eMarkType; }
+ 	BOOL IsMark() const 		{ return IDocumentBookmarkAccess::MARK == eMarkType; }
+     BOOL IsDDEMark() const      { return IDocumentBookmarkAccess::DDE_BOOKMARK == eMarkType; }
+ 	BOOL IsUNOMark() const 		{ return IDocumentBookmarkAccess::UNO_BOOKMARK == eMarkType; }
+     BOOL IsHiddenBookMark() const { return IDocumentBookmarkAccess::HIDDEN_BOOKMARK == eMarkType; }
++	BOOL IsFormFieldMark() const 	{ return IDocumentBookmarkAccess::FORM_FIELDMARK_TEXT == eMarkType || IDocumentBookmarkAccess::FORM_FIELDMARK_NO_TEXT == eMarkType; }
+ 	void SetType( IDocumentBookmarkAccess::BookmarkType eNewType ) 	{ eMarkType = eNewType; }
+ 	IDocumentBookmarkAccess::BookmarkType GetType() const 	{ return eMarkType; }
+ 
+@@ -160,5 +161,57 @@ public:
+ 		const String& rName, const String& rShortName);
+ };
+ 
++class SwFieldBookmark : public SwBookmark
++{
++private:
++	int fftype; // Type: 0 = Text, 1 = Check Box, 2 = List
++	int ffres;
++    bool ffprot;
++	bool ffsize; // 0 = Auto, 1=Exact (see ffhps)
++	int fftypetxt; // Type of text field: 0 = Regular text, 1 = Number, 2 = Date, 3 = Current date, 4 = Current time, 5 = Calculation
++	bool ffrecalc; 
++	int ffmaxlen; // Number of characters for text field. Zero means unlimited.
++	int ffhps; // Check box size (half-point sizes).
++
++	String ffname;
++	String ffhelptext;
++
++public:
++    SwFieldBookmark(const SwPosition& aPos,
++	       const KeyCode& rCode,
++	       const String& rName, const String& rShortName,
++		   IDocumentBookmarkAccess::BookmarkType eMark);
++
++	void SetType(int fftype);
++	int GetType();
++
++	void SetChecked(bool checked);
++	bool IsChecked();
++
++	void SetFFName(String ffname) {
++		this->ffname=ffname;
++	}
++
++	String GetFFName()
++	{
++		return ffname;
++	}
++
++	int GetFFRes() {
++		return ffres;
++	}
++
++	void SetFFRes(int ffres) {
++		this->ffres=ffres;
++	}
++
++	void SetFFHelpText(String ffhelptext) {
++		this->ffhelptext=ffhelptext;
++	}
++
++	String GetFFHelpText() {
++		return ffhelptext;
++	}
++};
+ 
+ #endif
+diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
+index 7832da2..0d4a97d 100644
+--- sw/inc/crsrsh.hxx
++++ sw/inc/crsrsh.hxx
+@@ -83,12 +83,14 @@
+ #include <IDocumentBookmarkAccess.hxx>
+ #endif
+ 
++
+ // einige Forward Deklarationen
+ 
+ class KeyCode;
+ class SfxItemSet;
+ class SfxPoolItem;
+ class SwBookmark;
++class SwFieldBookmark;
+ class SwCntntFrm;
+ class SwCrsrShell;
+ class SwCursor;
+@@ -144,7 +146,8 @@ struct SwContentAtPos
+         SW_REFMARK          = 0x0100,
+         SW_NUMLABEL         = 0x0200, // #i23726#
+         SW_CONTENT_CHECK    = 0x0400, // --> FME 2005-05-13 #i43742# <--
+-        SW_SMARTTAG         = 0x0800
++        SW_SMARTTAG         = 0x0800,
++	SW_FORMCTRL         = 0x1000
+ #ifndef PRODUCT
+ 		,SW_CURR_ATTRS 		= 0x4000		// nur zum Debuggen
+ 		,SW_TABLEBOXVALUE	= 0x8000		// nur zum Debuggen
+@@ -156,6 +159,7 @@ struct SwContentAtPos
+ 		const SfxPoolItem* pAttr;
+ 		const SwRedline* pRedl;
+         SwCntntNode * pNode; // #i23726#
++   	        const SwFieldBookmark* pFldBookmark;
+ 	} aFnd;
+ 
+     int nDist; // #i23726#
+@@ -630,6 +634,13 @@ public:
+ 		// werden, es wird dann bei gleichen Namen nur durchnumeriert.
+ 	void MakeUniqueBookmarkName( String& rNm );
+ 
++        bool IsFormProtected();
++        SwBookmark* IsInFieldBookmark();
++        SwFieldBookmark* IsInFormFieldBookmark();
++        SwBookmark* GetNextFieldBookmark();
++        SwBookmark* GetPrevFieldBookmark();
++        bool GotoFieldBookmark(SwBookmark *pBkmk);
++
+ 	// aktualisiere den Crsrs, d.H. setze ihn wieder in den Content.
+ 	// Das sollte nur aufgerufen werden, wenn der Cursor z.B. beim
+ 	// Loeschen von Rahmen irgendwohin gesetzt wurde. Die Position
+diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
+index d8f3bc0..1c9b6d4 100644
+--- sw/inc/doc.hxx
++++ sw/inc/doc.hxx
+@@ -619,6 +619,7 @@ class SwDoc :
+     bool mbUnixForceZeroExtLeading                  : 1;   // FME 2006-10-09 #i60945#
+     bool mbOldPrinterMetrics                        : 1;   // FME 2007-05-14 #147385#
+     bool mbTabRelativeToIndent;                            // #i24363# tab stops relative to indent
++    bool mbProtectForm                              : 1;
+ 
+ 	// #i78591#
+ 	sal_uInt32  n32DummyCompatabilityOptions1;
+@@ -790,6 +791,10 @@ public:
+     virtual void makeUniqueBookmarkName( /*[in/out]*/String& rName );
+     virtual sal_uInt16 getBookmarkCount( /*[in]*/ bool bBkmrk ) const;
+     virtual SwBookmark& getBookmark( /*[in]*/sal_uInt16 nPos, /*[in]*/bool bBkmrk );
++    SwBookmark* getFieldBookmarkFor(const SwPosition &pos) const;
++    SwBookmark* getNextFieldBookmarkFor(const SwPosition &pos) const;
++    SwBookmark* getPrevFieldBookmarkFor(const SwPosition &pos) const;
++    SwFieldBookmark* getFormFieldBookmarkFor(const SwPosition &pos) const;
+ 
+     /** IDocumentRedlineAccess
+     */
+@@ -973,6 +978,7 @@ public:
+ 	/** IDocumentState
+ 	*/
+ 	virtual void SetModified();
++        virtual void SetModified(SwPaM &rPaM);
+ 	virtual void ResetModified();
+ 	virtual bool IsModified() const;
+ 	virtual bool IsLoaded() const;
+diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx
+index aaaf228..3323363 100644
+--- sw/inc/hintids.hxx
++++ sw/inc/hintids.hxx
+@@ -52,7 +52,16 @@
+ #define CH_TXTATR_INWORD		((sal_Unicode)0x02)
+ #define CH_TXTATR_TAB           ((sal_Unicode)'\t')
+ #define CH_TXTATR_NEWLINE       ((sal_Unicode)'\n')
+-
++#define CH_TXT_ATR_FIELDSTART ((sal_Unicode)0x04)
++#define CH_TXT_ATR_FIELDEND ((sal_Unicode)0x05)
++#define CH_TXT_ATR_SUBST_FIELDSTART ("[")
++#define CH_TXT_ATR_SUBST_FIELDEND ("]")
++//#define CH_TXT_ATR_FORMELEMENT ((sal_Unicode)'#')
++#define CH_TXT_ATR_FORMELEMENT ((sal_Unicode)0x06)
++/*
++#define FIELD_BOOKMARK_PREFIX "__"
++#define FIELD_FORM_BOOKMARK_PREFIX "__FORM"
++*/
+ /*
+  * Hier kommen erst mal die enums fuer die Hints
+  */
+diff --git a/sw/inc/unocoll.hxx b/sw/inc/unocoll.hxx
+index f28f44f..a3394fd 100644
+--- sw/inc/unocoll.hxx
++++ sw/inc/unocoll.hxx
+@@ -220,8 +220,10 @@ class SwUnoCollection
+ #define SW_SERVICE_IMAP_POLYGON                         104
+ #define SW_SERVICE_TYPE_TEXT_GRAPHIC                    105
+ #define SW_SERVICE_CHART2_DATA_PROVIDER                 106
++#define SW_SERVICE_TYPE_FIELDMARK                                     107 
++#define SW_SERVICE_TYPE_FORMFIELDMARK                                 108 
+ 
+-#define SW_SERVICE_LAST                 SW_SERVICE_FIELDTYPE_DOCINFO_CUSTOM
++#define SW_SERVICE_LAST                 SW_SERVICE_TYPE_FORMFIELDMARK
+ 
+ #define SW_SERVICE_INVALID			USHRT_MAX
+ 
+@@ -501,7 +503,6 @@ public:
+ 	static SwXBookmark* 	GetObject( SwBookmark& rBkm, SwDoc* pDoc );
+ };
+ 
+-
+ class SwXNumberingRulesCollection : public cppu::WeakImplHelper1
+ <
+     ::com::sun::star::container::XIndexAccess
+diff --git a/sw/inc/unoobj.hxx b/sw/inc/unoobj.hxx
+index 0c71066..c7de042 100644
+--- sw/inc/unoobj.hxx
++++ sw/inc/unoobj.hxx
+@@ -151,6 +151,9 @@
+ #ifndef _CPPUHELPER_FACTORY_HXX_
+ #include <cppuhelper/factory.hxx>	// helper for factories
+ #endif
++#ifndef _CPPUHELPER_IMPLBASE1_HXX_
++#include <cppuhelper/implbase1.hxx>	// helper for implementations
++#endif
+ #ifndef _CPPUHELPER_IMPLBASE3_HXX_
+ #include <cppuhelper/implbase3.hxx>	// helper for implementations
+ #endif
+@@ -184,6 +187,9 @@
+ #ifndef _CPPUHELPER_WEAKREF_HXX_
+ #include <cppuhelper/weakref.hxx>
+ #endif
++#ifndef _COM_SUN_STAR_TEXT_XFORMFIELD_HPP_ 
++#include <com/sun/star/text/XFormField.hpp> 
++#endif 
+ 
+ #include <unomid.h>
+ 
+@@ -191,6 +197,10 @@
+ #include <tools/link.hxx>
+ #endif
+ 
++#ifndef IDOCUMENTBOOKMARKACCESS_HXX_INCLUDED 
++#include <IDocumentBookmarkAccess.hxx> 
++#endif 
++
+ class SwUnoCrsr;
+ class SwCursor;
+ class SwBookmark;
+@@ -678,6 +688,7 @@ SwRefBookmarkBaseClass;
+ class SwXBookmark : public SwRefBookmarkBaseClass,
+ 	public SwClient
+ {
++protected:
+ 	SwEventListenerContainer	aLstnrCntnr;
+ 	SwDoc*						pDoc;
+ 	String 						m_aName;
+@@ -721,7 +732,8 @@ public:
+     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ 
+-	void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++	void attachToRangeEx(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange, IDocumentBookmarkAccess::BookmarkType eMark)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++	virtual void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
+ 
+ 	//SwClient
+ 	virtual void 	Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
+@@ -730,6 +742,28 @@ public:
+ 	SwDoc*			GetDoc(){return pDoc;}
+ };
+ 
++typedef cppu::ImplInheritanceHelper1< SwXBookmark, ::com::sun::star::text::XFormField > SwXFieldmark_BASE;
++
++class SwXFieldmark : public SwXFieldmark_BASE 
++{
++private:
++	bool isReplacementObject;
++public:
++	SwXFieldmark(bool isReplacementObject, SwBookmark* pBkm = 0, SwDoc* pDoc = 0);
++
++	virtual void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++	virtual ::rtl::OUString SAL_CALL getDescription(void)  throw( ::com::sun::star::uno::RuntimeException );
++    virtual ::sal_Int16 SAL_CALL getType(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual ::sal_Int16 SAL_CALL getRes(  ) throw (::com::sun::star::uno::RuntimeException);
++
++    virtual void SAL_CALL setType( ::sal_Int16 fieldType ) throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setRes( ::sal_Int16 res ) throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setDescription( const ::rtl::OUString& description ) throw (::com::sun::star::uno::RuntimeException);
++
++//    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException);
++
++};
++
+ /*-----------------23.02.98 10:45-------------------
+ 
+ --------------------------------------------------*/
+diff --git a/sw/inc/unoport.hxx b/sw/inc/unoport.hxx
+index 152ca09..6b755ad 100644
+--- sw/inc/unoport.hxx
++++ sw/inc/unoport.hxx
+@@ -107,7 +107,10 @@ enum SwTextPortionType
+ 	PORTION_REDLINE_END,
+ 	PORTION_RUBY_START,
+ 	PORTION_RUBY_END,
+-    PORTION_SOFT_PAGEBREAK
++    PORTION_SOFT_PAGEBREAK,
++	PORTION_FIELD_START,
++	PORTION_FIELD_END,
++	PORTION_FIELD_START_END
+ };
+ 
+ class SwXRubyPortion;
+diff --git a/sw/source/core/crsr/crbm.cxx b/sw/source/core/crsr/crbm.cxx
+index 6e0c5f3..0848736 100644
+--- sw/source/core/crsr/crbm.cxx
++++ sw/source/core/crsr/crbm.cxx
+@@ -47,6 +47,7 @@
+ #include "callnk.hxx"
+ #include "swcrsr.hxx"
+ #include <IDocumentBookmarkAccess.hxx>
++#include <IDocumentSettingAccess.hxx>
+ 
+ /*
+  * Methoden der SwCrsrShell fuer Bookmark
+@@ -156,6 +157,65 @@ BOOL SwCrsrShell::GoNextBookmark()
+ 	return TRUE;
+ }
+ 
++bool SwCrsrShell::IsFormProtected() {
++    return getIDocumentSettingAccess()->get(IDocumentSettingAccess::PROTECT_FORM);
++}
++
++SwBookmark* SwCrsrShell::IsInFieldBookmark() {
++// Refactor
++    SwPosition pos(*GetCrsr()->GetPoint());
++    return getIDocumentBookmarkAccess()->getFieldBookmarkFor(pos);
++}
++
++SwFieldBookmark* SwCrsrShell::IsInFormFieldBookmark() {
++// Refactor
++    SwPosition pos(*GetCrsr()->GetPoint());
++    return (SwFieldBookmark*)getIDocumentBookmarkAccess()->getFormFieldBookmarkFor(pos);
++}
++
++SwBookmark* SwCrsrShell::GetNextFieldBookmark() {
++    SwPosition pos(*GetCrsr()->GetPoint());
++    return getIDocumentBookmarkAccess()->getNextFieldBookmarkFor(pos);
++}
++
++SwBookmark* SwCrsrShell::GetPrevFieldBookmark() {
++    SwPosition pos(*GetCrsr()->GetPoint());
++    return getIDocumentBookmarkAccess()->getPrevFieldBookmarkFor(pos);
++}
++
++bool SwCrsrShell::GotoFieldBookmark(SwBookmark *pBkmk) 
++{
++        if(pBkmk==NULL)
++	    return false;
++	// Crsr-Moves ueberwachen, evt. Link callen
++	bool bRet = true;
++	SwCallLink aLk( *this );
++	SwCursor* pCrsr = GetSwCrsr();
++	SwCrsrSaveState aSaveState( *pCrsr );
++	
++	*pCrsr->GetPoint() = pBkmk->GetPos();
++	if( pBkmk->GetOtherPos() )
++	{
++		pCrsr->SetMark();
++		*pCrsr->GetMark() = *pBkmk->GetOtherPos();
++		if( *pCrsr->GetMark() > *pCrsr->GetPoint() )
++			pCrsr->Exchange();
++	}
++	pCrsr->GetPoint()->nContent--;
++	pCrsr->GetMark()->nContent++;
++
++
++	if( pCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION | nsSwCursorSelOverFlags::SELOVER_TOGGLE ) )
++	{
++		pCrsr->DeleteMark();
++		pCrsr->RestoreSavePos();
++		bRet = false;
++	}
++	else
++	    UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
++
++	return bRet;
++}
+ 
+ BOOL SwCrsrShell::GoPrevBookmark()
+ {
+diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
+index 26874d2..39d7d8c 100644
+--- sw/source/core/crsr/crstrvl.cxx
++++ sw/source/core/crsr/crstrvl.cxx
+@@ -165,6 +165,7 @@
+ #include <wrong.hxx>
+ 
+ #include <vcl/window.hxx>
++#include <bookmrk.hxx>
+ 
+ using namespace ::com::sun::star;
+ 
+@@ -1256,6 +1257,16 @@ BOOL SwCrsrShell::GetContentAtPos( const Point& rPt,
+ 					}
+ 				}
+ 
++		if( !bRet && SwContentAtPos::SW_FORMCTRL & rCntntAtPos.eCntntAtPos )
++		{
++		    SwFieldBookmark* pFldBookmark=GetDoc()->getFormFieldBookmarkFor( aPos) ;
++		    if( bCrsrFoundExact && pTxtNd && pFldBookmark) {
++			rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_FORMCTRL;
++			rCntntAtPos.aFnd.pFldBookmark = pFldBookmark;
++			bRet=TRUE;
++		    }
++		}
++
+ 				if( !bRet && SwContentAtPos::SW_FTN & rCntntAtPos.eCntntAtPos )
+ 				{
+ 					if( aTmpState.bFtnNoInfo )
+diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
+index bd820b4..0a83a1c 100644
+--- sw/source/core/crsr/pam.cxx
++++ sw/source/core/crsr/pam.cxx
+@@ -101,6 +101,10 @@
+ #include <ndtxt.hxx> // #111827#
+ #endif
+ 
++#ifndef _BOOKMRK_HXX
++#include <bookmrk.hxx>
++#endif
++
+ // fuer den dummen ?MSC-? Compiler
+ inline xub_StrLen GetSttOrEnd( BOOL bCondition, const SwCntntNode& rNd )
+ {
+@@ -811,6 +815,29 @@ BOOL SwPaM::HasReadonlySel( bool bFormView ) const
+ 			}
+ 		}
+ 	}
++	if (!bRet) {
++	    const SwDoc *pDoc=GetDoc();
++	    SwBookmark *pA=(pDoc&&pPoint?pDoc->getFieldBookmarkFor(*pPoint):NULL);
++	    /* debugging stuff, will remove later
++	    if (pA) {
++		rtl::OUString s(pA->GetName());
++		rtl::OString aOString = ::rtl::OUStringToOString (s, RTL_TEXTENCODING_UTF8);
++		printf("IN BOOKMARK(A): %s\n", aOString.getStr());
++	    }
++	    */
++	    SwBookmark *pB=(pDoc&&pMark?pDoc->getFieldBookmarkFor(*pMark):pA);
++            /* debugging stuff, will remove later
++	    if (pB) {
++		rtl::OUString s(pB->GetName());
++		rtl::OString aOString = ::rtl::OUStringToOString (s, RTL_TEXTENCODING_UTF8);
++		printf("IN BOOKMARK(B): %s\n", aOString.getStr());
++	    }
++	    */
++	    bRet = (pA!=pB);
++	    bool bProtectForm=pDoc->get(IDocumentSettingAccess::PROTECT_FORM );
++	    if (bProtectForm)
++		bRet|=(pA==NULL || pB==NULL);
++	}
+ 	return bRet;
+ }
+ 
+diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
+index f45f651..b78b4be 100644
+--- sw/source/core/doc/doc.cxx
++++ sw/source/core/doc/doc.cxx
+@@ -300,6 +300,7 @@ bool SwDoc::get(/*[in]*/ DocumentSettingId id) const
+         case UNIX_FORCE_ZERO_EXT_LEADING: return mbUnixForceZeroExtLeading;
+         case USE_OLD_PRINTER_METRICS: return mbOldPrinterMetrics;
+         case TABS_RELATIVE_TO_INDENT : return mbTabRelativeToIndent;
++        case PROTECT_FORM: return mbProtectForm;
+          // COMPATIBILITY FLAGS END
+ 
+         case BROWSE_MODE: return mbBrowseMode;
+@@ -408,6 +409,9 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value)
+         case UNIX_FORCE_ZERO_EXT_LEADING:
+             mbUnixForceZeroExtLeading = value;
+             break;
++	case PROTECT_FORM:
++	    mbProtectForm = value;
++	    break;
+ 
+         case USE_OLD_PRINTER_METRICS:            
+             mbOldPrinterMetrics = value;
+--- sw/source/core/doc/docbm.cxx.old	2008-05-16 17:02:47.000000000 +0200
++++ sw/source/core/doc/docbm.cxx	2008-05-16 17:06:13.000000000 +0200
+@@ -100,7 +100,13 @@
+ #ifndef _NDTXT_HXX
+ #include "ndtxt.hxx" // for lcl_FixPosition
+ #endif
++#ifndef _SWUNDO_HXX
++#include "swundo.hxx"
++#endif
++
++#include "hintids.hxx"
+ 
++static bool _checkFieldBookmarkSanity(const SwDoc *pDoc);
+ 
+ SV_IMPL_OP_PTRARR_SORT(SwBookmarks, SwBookmarkPtr)
+ 
+@@ -156,7 +162,23 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*
+                                  /*[in]*/IDocumentBookmarkAccess::BookmarkType eMark )
+ {
+ 	SwBookmark *pBM;
+-	if( MARK == eMark )
++	if (FORM_FIELDMARK_TEXT == eMark || FORM_FIELDMARK_NO_TEXT == eMark /* rName.CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))==0 */) {
++	    pBM = new SwFieldBookmark(*rPaM.GetPoint(), rCode, rName, rShortName, eMark);
++	    if( rPaM.HasMark() )
++		pBM->pPos2 = new SwPosition( *rPaM.GetMark() );
++	    else
++		pBM->pPos2 = new SwPosition( *pBM->pPos1 );
++
++	    lcl_FixPosition( *pBM->pPos1 );
++	    lcl_FixPosition( *pBM->pPos2 );
++	    if (*pBM->pPos2<*pBM->pPos1) {
++		SwPosition *_pos=pBM->pPos1;
++		pBM->pPos1=pBM->pPos2;
++		pBM->pPos2=_pos;
++	    }
++	    ASSERT(*PBM->pPos1<=*pBM->pPos2, "");
++	}
++	else if( MARK == eMark )
+ 		pBM = new SwMark( *rPaM.GetPoint(), rCode, rName, rShortName );
+ 	else if( BOOKMARK == eMark || HIDDEN_BOOKMARK == eMark)
+ 	{
+@@ -171,10 +193,44 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*
+ 			pBM->pPos2 = new SwPosition( *rPaM.GetMark() );
+ 	}
+ 
+-    // fix bookmark positions if they are invalid
+-    lcl_FixPosition( *pBM->pPos1 );
+-    if( pBM->pPos2 != NULL )
+-        lcl_FixPosition( *pBM->pPos2 );
++	if (FORM_FIELDMARK_TEXT == eMark || FORM_FIELDMARK_NO_TEXT == eMark /* pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))==0 */) {
++	    StartUndo(UNDO_UI_REPLACE, NULL);
++	    ASSERT(*PBM->pPos1<=*pBM->pPos2, "Bookmark positions not normalized!!!!");
++	    const SwTxtNode* pStartTxtNode=this->GetNodes()[pBM->GetPos().nNode]->GetTxtNode();
++	    const SwTxtNode* pEndTxtNode=this->GetNodes()[pBM->GetOtherPos()->nNode]->GetTxtNode();
++	    xub_StrLen ch_start_pos=pBM->GetPos().nContent.GetIndex();
++	    xub_StrLen ch_end_pos=pBM->GetOtherPos()->nContent.GetIndex();
++	    if (ch_end_pos==0 || ch_end_pos<=ch_start_pos) {
++		ch_end_pos=ch_start_pos;
++	    } else {
++		ch_end_pos--;
++	    }
++	    sal_Unicode ch_start=pStartTxtNode->GetTxt().GetChar(ch_start_pos);
++	    sal_Unicode ch_end=pEndTxtNode->GetTxt().GetChar(ch_end_pos);
++	    bool form=(IDocumentBookmarkAccess::FORM_FIELDMARK_NO_TEXT==eMark);  /*(pBM->GetName().CompareToAscii(FIELD_FORM_BOOKMARK_PREFIX, strlen(FIELD_FORM_BOOKMARK_PREFIX))==0);*/
++	    if (form) {
++		if (ch_start!=CH_TXT_ATR_FORMELEMENT) {
++			const SwPaM rRg(*pBM->pPos1);
++		    Insert(rRg, CH_TXT_ATR_FORMELEMENT);
++		    pBM->pPos1->nContent--;
++		}
++	    } else {
++		if (ch_start!=CH_TXT_ATR_FIELDSTART) {
++			const SwPaM rRg(*pBM->pPos1);
++		    Insert(rRg, CH_TXT_ATR_FIELDSTART);
++		    pBM->pPos1->nContent--;
++		}
++		if (ch_end!=CH_TXT_ATR_FIELDEND) {
++			const SwPaM rRg(*pBM->pPos2);
++		    Insert(rRg, CH_TXT_ATR_FIELDEND);
++		}
++	    }
++	} else {
++	    // fix bookmark positions if they are invalid
++	    lcl_FixPosition( *pBM->pPos1 );
++	    if( pBM->pPos2 != NULL )
++		lcl_FixPosition( *pBM->pPos2 );
++	}
+ 
+ 	if( !pBookmarkTbl->Insert( pBM ) )
+ 		delete pBM, pBM = 0;
+@@ -194,7 +250,117 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*
+ 			    SetModified();
+ 	    }
+ 	}
++	if (FORM_FIELDMARK_TEXT == eMark || FORM_FIELDMARK_NO_TEXT == eMark /*pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))==0*/) {
++	    EndUndo(UNDO_UI_REPLACE, NULL);
++	}
++	return pBM;
++}
++
++SwBookmark* SwDoc::getFieldBookmarkFor(const SwPosition &pos) const {
++//@TODO make impl recursive
++    int nCount=pBookmarkTbl->Count();
++    while(--nCount>=0) {
++	SwBookmark *pBM=(*pBookmarkTbl)[nCount];
++	if (pBM->GetOtherPos()!=NULL 
++	    && FORM_FIELDMARK_TEXT==pBM->GetType() /* pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))==0 */
++	    && pBM->GetPos()<pos 
++	    && pos < *(pBM->GetOtherPos())) {
++	    return pBM;
++	}
++    }
++    return NULL;
++}
++
++SwFieldBookmark* SwDoc::getFormFieldBookmarkFor(const SwPosition &pos) const {
++//@TODO make impl recursive
++    int nCount=pBookmarkTbl->Count();
++    while(--nCount>=0) {
++	SwBookmark *pBM=(*pBookmarkTbl)[nCount];
++	if (pBM->GetOtherPos()!=NULL 
++	    && FORM_FIELDMARK_NO_TEXT==pBM->GetType() /* pBM->GetName().CompareToAscii(FIELD_FORM_BOOKMARK_PREFIX, strlen(FIELD_FORM_BOOKMARK_PREFIX))==0 */
++	    && pBM->GetPos()<=pos 
++	    && pos <= *(pBM->GetOtherPos())) {
++	    return (SwFieldBookmark*)pBM;
++	}
++    }
++    return NULL;
++}
++
++SwBookmark* SwDoc::getNextFieldBookmarkFor(const SwPosition &pos) const {
++    int i=0;
++    int nCount=pBookmarkTbl->Count();
++    SwBookmark *pBM=NULL;
++    while(i<nCount
++	  && ((pBM=(*pBookmarkTbl)[i])==NULL
++	  || !pBM->IsFormFieldMark() /* pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))!=0 */
++	  || pos >= pBM->GetPos() )) i++;
++
++    if (i<nCount) {
++	return pBM;
++    } else {
++	i=0; 
++	while(i<nCount && (
++	     (pBM=(*pBookmarkTbl)[i])==NULL
++	     ||  !pBM->IsFormFieldMark() /*pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))!=0*/ )) i++;
++	return (i<nCount?pBM:NULL);
++    }
++}
++
++SwBookmark* SwDoc::getPrevFieldBookmarkFor(const SwPosition &pos) const {
++    int nCount=pBookmarkTbl->Count();
++    int i=nCount-1;
++    SwBookmark *pBM=NULL;
++    while(i>=0
++	  && ((pBM=(*pBookmarkTbl)[i])==NULL
++	  || !pBM->IsFormFieldMark() /*pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))!=0*/
++	  || pBM->GetOtherPos()==NULL
++	  || pos <= *pBM->GetOtherPos() )) i--;
++
++    if (i>=0) {
+ 	return pBM;
++    } else {
++	i=nCount-1; 
++	while(i>=0 && (
++	     (pBM=(*pBookmarkTbl)[i])==NULL
++	     ||  !pBM->IsFormFieldMark() /*pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))!=0*/ )) i--;
++	return (i>=0?pBM:NULL);
++    }
++}
++
++/*
++bool SwDoc::isValidSelectionWrtFieldBookmarks(const SwPosition &posA, const SwPostion &posB) {
++//@TODO optimize this
++    SwBookmark *pA=getFieldBookmarkFor(posA);
++    SwBookmark *pB=getFieldBookmarkFor(posB);
++    return pA==pB;    
++}
++*/
++
++// not finished yet, still neet to add this check
++bool _checkFieldBookmarkSanity(const SwDoc *pDoc) {
++    int nCount=pDoc->getBookmarks().Count();
++    while(--nCount>=0) {
++	SwBookmark *pBM=pDoc->getBookmarks()[nCount];
++	if (pBM->IsFormFieldMark() /* pBM->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))==0 */) {
++	    {
++		rtl::OUString s(pBM->GetName());
++		rtl::OString aOString = ::rtl::OUStringToOString (s, RTL_TEXTENCODING_UTF8);
++		const SwTxtNode* pStartTxtNode=pDoc->GetNodes()[pBM->GetPos().nNode]->GetTxtNode();
++		const SwTxtNode* pEndTxtNode=pDoc->GetNodes()[pBM->GetOtherPos()->nNode]->GetTxtNode();
++		xub_StrLen ch_start_pos=pBM->GetPos().nContent.GetIndex();
++		xub_StrLen ch_end_pos=pBM->GetOtherPos()->nContent.GetIndex();
++		if (ch_end_pos==0 || ch_end_pos<=ch_start_pos) {
++		    ch_end_pos=ch_start_pos;
++		} else {
++		    ch_end_pos--;
++		}
++		sal_Unicode ch_start=pStartTxtNode->GetTxt().GetChar(ch_start_pos);
++		sal_Unicode ch_end=pEndTxtNode->GetTxt().GetChar(ch_end_pos);
++		printf("CHECK(%s %p[%i/'%c'] %p[%i/'%c']);\n", aOString.getStr(), pStartTxtNode, ch_start, ch_start, pEndTxtNode, ch_end, ch_end);
++	    }	    
++	}
++    }
++    return true;
+ }
+ 
+ void SwDoc::deleteBookmark( /*[in]*/sal_uInt16 nPos )
+@@ -703,7 +869,7 @@ void _SaveCntntIdx( SwDoc* pDoc, ULONG n
+ 		}
+ 
+ 		if( pBkmk->GetOtherPos() && pBkmk->GetOtherPos()->nNode.GetIndex() ==
+-			nNode && pBkmk->GetOtherPos()->nContent.GetIndex() < nCntnt )
++			nNode && pBkmk->GetOtherPos()->nContent.GetIndex() <= nCntnt )
+ 		{
+ 			aSave.SetContent( pBkmk->GetOtherPos()->nContent.GetIndex() );
+ 			aSave.IncType();
+@@ -1166,3 +1332,41 @@ void _RestoreCntntIdx( SvULongs& rSaveAr
+ }
+ 
+ 
++SwFieldBookmark::SwFieldBookmark(const SwPosition& aPos,
++		const KeyCode& rCode,
++		const String& rName, const String& rShortName,
++		IDocumentBookmarkAccess::BookmarkType eMark)
++    : SwBookmark(aPos, rCode, rName, rShortName),
++		fftype(0), // Type: 0 = Text, 1 = Check Box, 2 = List
++		ffres(0),
++		ffprot(0),
++		ffsize(0), // 0 = Auto, 1=Exact (see ffhps)
++		fftypetxt(0), // Type of text field: 0 = Regular text, 1 = Number, 2 = Date, 3 = Current date, 4 = Current time, 5 = Calculation
++		ffrecalc(0), 
++		ffmaxlen(0), // Number of characters for text field. Zero means unlimited.
++		ffhps(24) // Check box size (half-point sizes).
++{
++	eMarkType = eMark;
++}
++
++void SwFieldBookmark::SetChecked(bool checked)
++{
++	ASSERT(fftype==1, "This method is for checkboxes only...");
++	ffres=(checked?1:0);
++}
++
++bool SwFieldBookmark::IsChecked()
++{
++	ASSERT(fftype==1, "This method is for checkboxes only...");
++	return ffres!=0;
++}
++
++void SwFieldBookmark::SetType(int fftype)
++{
++	this->fftype=fftype;
++}
++
++int SwFieldBookmark::GetType()
++{
++	return fftype;
++}
+diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx
+index 472f1b6..8633c3d 100644
+--- sw/source/core/doc/docedt.cxx
++++ sw/source/core/doc/docedt.cxx
+@@ -902,6 +902,12 @@ bool SwDoc::Insert( const SwPaM &rRg, sal_Unicode c )
+ |*	  Beschreibung		Zeichen ueberschreiben
+ *************************************************************************/
+ 
++void SwDoc::SetModified(SwPaM &rPaM)
++{
++    SwDataChanged aTmp( rPaM, 0 );
++    SetModified();
++}
++
+ bool SwDoc::Overwrite( const SwPaM &rRg, sal_Unicode c )
+ {
+ 	SwPosition& rPt = *(SwPosition*)rRg.GetPoint();
+diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
+index ffbd429..a90db25 100644
+--- sw/source/core/doc/docnew.cxx
++++ sw/source/core/doc/docnew.cxx
+@@ -419,6 +419,7 @@ SwDoc::SwDoc() :
+     mbUnixForceZeroExtLeading               = false;        // hidden
+     mbOldPrinterMetrics                     = false;        // hidden
+     mbTabRelativeToIndent                   = true;         // hidden
++    mbProtectForm                           = false;        // hidden
+ 
+     //
+     // COMPATIBILITY FLAGS END
+diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx
+index 019835a..fa677c9 100644
+--- sw/source/core/layout/trvlfrm.cxx
++++ sw/source/core/layout/trvlfrm.cxx
+@@ -1715,6 +1715,13 @@ BOOL SwRootFrm::IsDummyPage( USHORT nPageNum ) const
+ |*************************************************************************/
+ BOOL SwFrm::IsProtected() const
+ {
++	if (this->IsCntntFrm() && ((SwCntntFrm*)this)->GetNode()) {
++		const SwDoc *pDoc=((SwCntntFrm*)this)->GetNode()->GetDoc();
++		bool isFormProtected=pDoc->get(IDocumentSettingAccess::PROTECT_FORM );
++		if (isFormProtected) {
++			return FALSE; // a hack for now, well deal with it laster, I we return true here we have a "double" locking 
++		}
++	}
+ 	//Der Frm kann in Rahmen, Zellen oder Bereichen geschuetzt sein.
+ 	//Geht auch FlyFrms rekursiv hoch. Geht auch von Fussnoten zum Anker.
+ 	const SwFrm *pFrm = this;
+diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
+index 9637868..e60e283 100644
+--- sw/source/core/text/inftxt.cxx
++++ sw/source/core/text/inftxt.cxx
+@@ -156,6 +156,9 @@
+ 
+ #include <unomid.h>
+ 
++#include <doc.hxx>
++#include <pam.hxx>
++
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::linguistic2;
+ using namespace ::com::sun::star::uno;
+@@ -1185,6 +1188,41 @@ void SwTxtPaintInfo::_DrawBackBrush( const SwLinePortion &rPor ) const
+ {
+ 	ASSERT( pFnt->GetBackColor(), "DrawBackBrush: Lost Color" );
+ 
++    {
++	SwRect aIntersect;
++	CalcRect( rPor, &aIntersect, 0 );
++	SwTxtNode *pNd = pFrm->GetTxtNode();
++	SwBookmark *pBM=NULL;	
++	if ( aIntersect.HasArea() )
++	{
++	    if (pNd) {
++		const SwDoc *doc=pNd->GetDoc();
++		if (doc!=NULL) {
++		    SwIndex aIndex( pNd, GetIdx() );
++		    SwPosition aPosition(*pNd, aIndex);
++		    pBM=doc->getFieldBookmarkFor(aPosition);
++		}
++	    }
++	    bool bIsStartMark=(1==GetLen() && CH_TXT_ATR_FIELDSTART==GetTxt().GetChar(GetIdx()));
++	    if (OnWin() && (pBM!=NULL || bIsStartMark) && SwViewOption::IsFieldShadings() && !GetOpt().IsPagePreview()) {
++		OutputDevice* pOut = (OutputDevice*)GetOut();
++		pOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
++		pOut->SetFillColor( SwViewOption::GetFieldShadingsColor() );
++		pOut->SetLineColor();
++//		pOut->SetLineColor( Color(220, 233, 245));
++//		pOut->SetFillColor( Color(220, 233, 245));
++		pOut->DrawRect( aIntersect.SVRect() );
++		pOut->Pop();
++	    }
++	}
++
++    }
++
++
++
++    if( !pFnt->GetBackColor() )
++	return;
++
+     SwRect aIntersect;
+     CalcRect( rPor, 0, &aIntersect );
+ 
+@@ -1207,6 +1245,36 @@ void SwTxtPaintInfo::_DrawBackBrush( const SwLinePortion &rPor ) const
+     }
+ }
+ 
++
++void SwTxtPaintInfo::DrawCheckBox( const SwFieldFormPortion &rPor, bool checked) const
++{
++    SwRect aIntersect;
++    CalcRect( rPor, &aIntersect, 0 );
++    if ( aIntersect.HasArea() ) {
++	if (OnWin() && SwViewOption::IsFieldShadings() && !GetOpt().IsPagePreview()) {
++	    OutputDevice* pOut = (OutputDevice*)GetOut();
++	    pOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
++	    pOut->SetFillColor( SwViewOption::GetFieldShadingsColor() );
++	    pOut->SetLineColor();
++//	    pOut->SetLineColor( Color(220, 233, 245));
++//	    pOut->SetFillColor( Color(220, 233, 245));
++	    pOut->DrawRect( aIntersect.SVRect() );
++	    pOut->Pop();
++	}
++	const int delta=10;
++	Rectangle r(aIntersect.Left()+delta, aIntersect.Top()+delta, aIntersect.Right()-delta, aIntersect.Bottom()-delta);
++	pOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );	    
++	pOut->SetLineColor( Color(0, 0, 0));
++	pOut->SetFillColor();
++	pOut->DrawRect( r );
++	if (checked) {
++	    pOut->DrawLine(r.TopLeft(), r.BottomRight());
++	    pOut->DrawLine(r.TopRight(), r.BottomLeft());
++	    pOut->Pop();
++	}
++    }
++}
++
+ /*************************************************************************
+  *					   SwTxtPaintInfo::DrawViewOpt()
+  *************************************************************************/
+@@ -1241,6 +1309,7 @@ void SwTxtPaintInfo::DrawViewOpt( const SwLinePortion &rPor,
+ 			default:
+ 			{
+ 				ASSERT( !this, "SwTxtPaintInfo::DrawViewOpt: don't know how to draw this" );
++				printf("SwTxtPaintInfo::DrawViewOpt %04X\n", (int)nWhich);
+ 				break;
+ 			}
+ 		}
+diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx
+index 21cbddc..e96c784 100644
+--- sw/source/core/text/inftxt.hxx
++++ sw/source/core/text/inftxt.hxx
+@@ -455,7 +455,9 @@ public:
+ 	void DrawBackground( const SwLinePortion &rPor ) const;
+ 	void DrawViewOpt( const SwLinePortion &rPor, const MSHORT nWhich ) const;
+ 	inline void DrawBackBrush( const SwLinePortion &rPor ) const
+-		{ if( pFnt->GetBackColor() ) _DrawBackBrush( rPor ); }
++	{ /* if( pFnt->GetBackColor() ) */ _DrawBackBrush( rPor ); }
++
++        void DrawCheckBox( const SwFieldFormPortion &rPor, bool checked) const;
+ 
+ 	inline void NotifyURL( const SwLinePortion &rPor ) const
+ 		{ if( URLNotify() ) _NotifyURL( rPor ); }
+diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx
+index 4193a09..22e9ce3 100644
+--- sw/source/core/text/itratr.cxx
++++ sw/source/core/text/itratr.cxx
+@@ -417,6 +417,17 @@ xub_StrLen SwAttrIter::GetNextAttr( ) const
+ 			if ( nNextEnd<nNext ) nNext = nNextEnd; // Wer ist naeher?
+ 		}
+ 	}
++	if (m_pTxtNode!=NULL) {
++	    //TODO maybe use hints like FieldHints for this instead of looking at the text...
++	    int l=(nNext<m_pTxtNode->Len()?nNext:m_pTxtNode->Len());
++	    int p=nPos;
++	    const sal_Unicode *txt=m_pTxtNode->GetTxt().GetBuffer();
++	    while(p<l && txt[p]!=CH_TXT_ATR_FIELDSTART && txt[p]!=CH_TXT_ATR_FIELDEND && txt[p]!=CH_TXT_ATR_FORMELEMENT) p++;
++	    if ((p<l && p>nPos) || nNext<=p)
++		nNext=p;
++	    else
++		nNext=p+1;
++	}	
+     if( pRedln )
+ 		return pRedln->GetNextRedln( nNext );
+ 	return nNext;
+diff --git a/sw/source/core/text/itratr.hxx b/sw/source/core/text/itratr.hxx
+index 67bcca7..4372eb3 100644
+--- sw/source/core/text/itratr.hxx
++++ sw/source/core/text/itratr.hxx
+@@ -82,18 +82,19 @@ private:
+ 	inline void SetFnt( SwFont* pNew ) { pFnt = pNew; }
+ 	const void* aMagicNo[ SW_SCRIPTS ];
+ 	MSHORT aFntIdx[ SW_SCRIPTS ];
++	const SwTxtNode* m_pTxtNode;
+ 
+ protected:
+ 	void Chg( SwTxtAttr *pHt );
+ 	void Rst( SwTxtAttr *pHt );
+     void CtorInitAttrIter( SwTxtNode& rTxtNode, SwScriptInfo& rScrInf, SwTxtFrm* pFrm = 0 );
+-    inline SwAttrIter()
+-		: pShell(0), pFnt(0), pLastOut(0),	nChgCnt(0), pRedln(0), nPropFont(0) {}
++    inline SwAttrIter(SwTxtNode* pTxtNode) 
++		: pShell(0), pFnt(0), pLastOut(0),	nChgCnt(0), pRedln(0), nPropFont(0), m_pTxtNode(pTxtNode) {}
+ 
+ public:
+ 	// Konstruktor, Destruktor
+     inline SwAttrIter( SwTxtNode& rTxtNode, SwScriptInfo& rScrInf )
+-		: pShell(0), pFnt(0), pHints(0), pScriptInfo(0), pLastOut(0), nChgCnt(0), pRedln(0),nPropFont(0)
++		: pShell(0), pFnt(0), pHints(0), pScriptInfo(0), pLastOut(0), nChgCnt(0), pRedln(0),nPropFont(0), m_pTxtNode(&rTxtNode)
+         { CtorInitAttrIter( rTxtNode, rScrInf ); }
+ 
+ 	virtual ~SwAttrIter();
+diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
+index dc8ae00..757f02b 100644
+--- sw/source/core/text/itrform2.cxx
++++ sw/source/core/text/itrform2.cxx
+@@ -893,14 +893,23 @@ SwTxtPortion *SwTxtFormatter::WhichTxtPor( SwTxtFormatInfo &rInf ) const
+ 			// Erst zum Schluss !
+ 			// Wenn pCurr keine Breite hat, kann sie trotzdem schon Inhalt haben,
+ 			// z.B. bei nicht darstellbaren Zeichen.
++if (rInf.GetLen()>0 && rInf.GetTxt().GetChar(rInf.GetIdx())==CH_TXT_ATR_FIELDSTART) {
++				pPor = new SwFieldMarkPortion();
++			    } else if (rInf.GetLen()>0 && rInf.GetTxt().GetChar(rInf.GetIdx())==CH_TXT_ATR_FIELDEND) {
++				pPor = new SwFieldMarkPortion();
++			    } else if (rInf.GetLen()>0 && rInf.GetTxt().GetChar(rInf.GetIdx())==CH_TXT_ATR_FORMELEMENT) {
++				pPor = new SwFieldFormPortion();
++			    } else
+ 			if( !rInf.X() && !pCurr->GetPortion() && !pCurr->GetLen() &&
+-				!GetFnt()->IsURL() )
+-				pPor = pCurr;
+-			else
++			    !GetFnt()->IsURL() ) {
++			    pPor = pCurr;
++			 } else
+ 			{
++			     {
+ 				pPor = new SwTxtPortion;
+-				if( GetFnt()->IsURL() )
+-					pPor->SetWhichPor( POR_URL );
++			    }   
++			    if( GetFnt()->IsURL() )
++				pPor->SetWhichPor( POR_URL );
+ 			}
+ 		}
+ 	}
+diff --git a/sw/source/core/text/itrform2.hxx b/sw/source/core/text/itrform2.hxx
+index 26526d6..cb57ca0 100644
+--- sw/source/core/text/itrform2.hxx
++++ sw/source/core/text/itrform2.hxx
+@@ -144,7 +144,7 @@ public:
+ 	sal_Bool CalcOnceMore();
+ 
+ 	void CtorInitTxtFormatter( SwTxtFrm *pFrm, SwTxtFormatInfo *pInf );
+-    inline SwTxtFormatter( SwTxtFrm *pTxtFrm, SwTxtFormatInfo *pTxtFmtInf )
++    inline SwTxtFormatter( SwTxtFrm *pTxtFrm, SwTxtFormatInfo *pTxtFmtInf ) : SwTxtPainter(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL)
+            { CtorInitTxtFormatter( pTxtFrm, pTxtFmtInf ); }
+ 	~SwTxtFormatter();
+ 
+diff --git a/sw/source/core/text/itrpaint.hxx b/sw/source/core/text/itrpaint.hxx
+index 3545abc..89d9dac 100644
+--- sw/source/core/text/itrpaint.hxx
++++ sw/source/core/text/itrpaint.hxx
+@@ -52,9 +52,10 @@ class SwTxtPainter : public SwTxtCursor
+                                 long nAdjustBaseLine = 0 );
+ protected:
+ 	void CtorInitTxtPainter( SwTxtFrm *pFrm, SwTxtPaintInfo *pInf );
+-	inline SwTxtPainter() { }
++	inline SwTxtPainter(SwTxtNode* pTxtNode) : SwTxtCursor(pTxtNode) { }
++
+ public:
+-    inline SwTxtPainter( SwTxtFrm *pTxtFrm, SwTxtPaintInfo *pTxtPaintInf )
++	inline SwTxtPainter( SwTxtFrm *pTxtFrm, SwTxtPaintInfo *pTxtPaintInf ) : SwTxtCursor(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL)
+            { CtorInitTxtPainter( pTxtFrm, pTxtPaintInf ); }
+ 	void DrawTextLine( const SwRect &rPaint, SwSaveClip &rClip,
+ 					   const sal_Bool bUnderSz );
+diff --git a/sw/source/core/text/itrtxt.hxx b/sw/source/core/text/itrtxt.hxx
+index aa495ce..3d9aa7b 100644
+--- sw/source/core/text/itrtxt.hxx
++++ sw/source/core/text/itrtxt.hxx
+@@ -73,10 +73,10 @@ protected:
+ 	// Zuruecksetzen in die erste Zeile.
+ 	void Init();
+ 	void CtorInitTxtIter( SwTxtFrm *pFrm, SwTxtInfo *pInf );
+-	inline SwTxtIter() { }
++	inline SwTxtIter(SwTxtNode* pTxtNode) : SwAttrIter(pTxtNode) { }
+ 
+ public:
+-    inline SwTxtIter( SwTxtFrm *pTxtFrm, SwTxtInfo *pTxtInf )
++    inline SwTxtIter( SwTxtFrm *pTxtFrm, SwTxtInfo *pTxtInf ) : SwAttrIter(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL)
+            { CtorInitTxtIter( pTxtFrm, pTxtInf ); }
+ 	inline const SwLineLayout *GetCurr() const { return pCurr; } // niemals 0!
+ 	inline const SwLineLayout *GetNext() const { return pCurr->GetNext(); }
+@@ -159,9 +159,9 @@ protected:
+ 	inline void SetDropLeft( const KSHORT nNew ) { nDropLeft = nNew; }
+ 
+ 	void CtorInitTxtMargin( SwTxtFrm *pFrm, SwTxtSizeInfo *pInf );
+-	inline SwTxtMargin() { }
++	inline SwTxtMargin(SwTxtNode* pTxtNode) : SwTxtIter(pTxtNode) { }
+ public:
+-    inline SwTxtMargin( SwTxtFrm *pTxtFrm, SwTxtSizeInfo *pTxtSizeInf )
++    inline SwTxtMargin( SwTxtFrm *pTxtFrm, SwTxtSizeInfo *pTxtSizeInf ) : SwTxtIter(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL)
+            { CtorInitTxtMargin( pTxtFrm, pTxtSizeInf ); }
+ 	inline SwTwips GetLeftMargin() const;
+ 	inline SwTwips Left() const;
+@@ -223,13 +223,13 @@ class SwTxtAdjuster : public SwTxtMargin
+ 								  const SwRect &rCurrRect );
+ 
+ protected:
+-	inline SwTxtAdjuster() { }
++	inline SwTxtAdjuster(SwTxtNode* pTxtNode) : SwTxtMargin(pTxtNode) { }
+ 	// spannt beim Blocksatz die Glues auf.
+ 	void CalcNewBlock( SwLineLayout *pCurr, const SwLinePortion *pStopAt,
+ 		SwTwips nReal = 0 );
+     SwTwips CalcKanaAdj( SwLineLayout *pCurr );
+ public:
+-    inline SwTxtAdjuster( SwTxtFrm *pTxtFrm, SwTxtSizeInfo *pTxtSizeInf )
++    inline SwTxtAdjuster( SwTxtFrm *pTxtFrm, SwTxtSizeInfo *pTxtSizeInf ) : SwTxtMargin(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL)
+            { CtorInitTxtMargin( pTxtFrm, pTxtSizeInf ); }
+ 
+ 	// wird von SwTxtFormatter wegen UpdatePos ueberladen
+@@ -262,9 +262,9 @@ class SwTxtCursor : public SwTxtAdjuster
+ 	void _GetCharRect(SwRect *, const xub_StrLen, SwCrsrMoveState* );
+ protected:
+ 	void CtorInitTxtCursor( SwTxtFrm *pFrm, SwTxtSizeInfo *pInf );
+-	inline SwTxtCursor() { }
++	inline SwTxtCursor(SwTxtNode* pTxtNode) : SwTxtAdjuster(pTxtNode) { }
+ public:
+-    inline SwTxtCursor( SwTxtFrm *pTxtFrm, SwTxtSizeInfo *pTxtSizeInf )
++    inline SwTxtCursor( SwTxtFrm *pTxtFrm, SwTxtSizeInfo *pTxtSizeInf ) : SwTxtAdjuster(pTxtFrm!=NULL?pTxtFrm->GetTxtNode():NULL)
+            { CtorInitTxtCursor( pTxtFrm, pTxtSizeInf ); }
+ 	sal_Bool GetCharRect(SwRect *, const xub_StrLen, SwCrsrMoveState* = 0,
+ 		const long nMax = 0 );
+diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx
+index 469cdfc..fe9673d 100644
+--- sw/source/core/text/portxt.cxx
++++ sw/source/core/text/portxt.cxx
+@@ -85,6 +85,10 @@
+ #include <viewopt.hxx>  // SwViewOptions
+ #endif
+ 
++#include <bookmrk.hxx>
++#include <pam.hxx>
++#include <doc.hxx>
++
+ #if OSL_DEBUG_LEVEL > 1
+ const sal_Char *GetLangName( const MSHORT nLang );
+ #endif
+@@ -596,7 +600,17 @@ SwPosSize SwTxtPortion::GetTxtSize( const SwTxtSizeInfo &rInf ) const
+ 
+ void SwTxtPortion::Paint( const SwTxtPaintInfo &rInf ) const
+ {
+-	if( GetLen() )
++	if (rInf.OnWin() && 1==rInf.GetLen() && CH_TXT_ATR_FIELDEND==rInf.GetTxt().GetChar(rInf.GetIdx())) {
++	    rInf.DrawBackBrush( *this );
++	    const XubString aTxt = XubString::CreateFromAscii(CH_TXT_ATR_SUBST_FIELDEND);
++	    rInf.DrawText( aTxt, *this, 0, aTxt.Len(), false );	  
++	}
++	else if (rInf.OnWin() && 1==rInf.GetLen() && CH_TXT_ATR_FIELDSTART==rInf.GetTxt().GetChar(rInf.GetIdx())) {
++	    rInf.DrawBackBrush( *this );
++	    const XubString aTxt = XubString::CreateFromAscii(CH_TXT_ATR_SUBST_FIELDSTART);
++	    rInf.DrawText( aTxt, *this, 0, aTxt.Len(), false );	  
++	}
++	else if( GetLen() )
+ 	{
+         rInf.DrawBackBrush( *this );
+ 
+@@ -780,3 +794,48 @@ void SwHolePortion::HandlePortion( SwPortionHandler& rPH ) const
+     rPH.Text( GetLen(), GetWhichPor() );
+ }
+ 
++
++void SwFieldMarkPortion::Paint( const SwTxtPaintInfo &rInf ) const
++{
++//	SwTxtPortion::Paint(rInf);
++}
++
++sal_Bool SwFieldMarkPortion::Format( SwTxtFormatInfo &rInf ) 
++{
++    sal_Bool ret=0;
++	Width(0);
++    return ret;
++}
++
++
++void SwFieldFormPortion::Paint( const SwTxtPaintInfo &rInf ) const
++{
++//	SwTxtPortion::Paint(rInf);
++    SwTxtNode *pNd=const_cast<SwTxtNode*>(rInf.GetTxtFrm()->GetTxtNode());
++    const SwDoc *doc=pNd->GetDoc();
++    SwIndex aIndex( pNd, rInf.GetIdx() );
++    SwPosition aPosition(*pNd, aIndex);
++    SwFieldBookmark *pBM=doc->getFormFieldBookmarkFor(aPosition);
++    ASSERT(pBM!=NULL, "Where is my form field bookmark???");
++    bool checked=(pBM!=NULL?pBM->IsChecked():false);
++    rInf.DrawCheckBox( *this , checked);
++//    const XubString aTxt = XubString::CreateFromAscii("[ ]");
++//    rInf.DrawText( aTxt, *this, 0, aTxt.Len(), false );	  
++}
++
++sal_Bool SwFieldFormPortion::Format( SwTxtFormatInfo &rInf ) 
++{
++    sal_Bool ret=0;
++//	ret=SwTxtPortion::Format(rInf);
++
++	Width(rInf.GetTxtHeight());
++	Height(rInf.GetTxtHeight());
++	SetAscent(rInf.GetAscent());
++	int h=rInf.GetTxtHeight();
++	
++/*
++	Height(100);
++	SetAscent(100);
++*/
++    return ret;
++}
+diff --git a/sw/source/core/text/portxt.hxx b/sw/source/core/text/portxt.hxx
+index ca2fde9..dbf9b27 100644
+--- sw/source/core/text/portxt.hxx
++++ sw/source/core/text/portxt.hxx
+@@ -103,8 +103,30 @@ public:
+ 	DECL_FIXEDMEMPOOL_NEWDEL(SwHolePortion)
+ };
+ 
++class SwFieldMarkPortion : public SwTxtPortion {
++public:
++    inline SwFieldMarkPortion() : SwTxtPortion() {
++
++    }
++    virtual void Paint( const SwTxtPaintInfo &rInf ) const;
++    virtual sal_Bool Format( SwTxtFormatInfo &rInf );
++};
++
++class SwFieldFormPortion : public SwTxtPortion {
++public:
++    inline SwFieldFormPortion() : SwTxtPortion() {
++
++    }
++    virtual void Paint( const SwTxtPaintInfo &rInf ) const;
++    virtual sal_Bool Format( SwTxtFormatInfo &rInf );
++};
++
++
+ CLASSIO( SwTxtPortion )
+ CLASSIO( SwHolePortion )
+ 
+ 
++
++
++
+ #endif
+diff --git a/sw/source/core/txtnode/swfont.cxx b/sw/source/core/txtnode/swfont.cxx
+index 0d54f85..63c9027 100644
+--- sw/source/core/txtnode/swfont.cxx
++++ sw/source/core/txtnode/swfont.cxx
+@@ -869,6 +869,32 @@ Size SwSubFont::_GetTxtSize( SwDrawTextInfo& rInf )
+ 		}
+ 	}
+ 
++
++	if (1==rInf.GetLen() && CH_TXT_ATR_FIELDSTART==rInf.GetText().GetChar(rInf.GetIdx())) {
++	    xub_StrLen nOldIdx(rInf.GetIdx());
++	    xub_StrLen nOldLen(rInf.GetLen());
++	    String aNewText=String::CreateFromAscii(CH_TXT_ATR_SUBST_FIELDSTART);
++	    rInf.SetText( aNewText );
++	    rInf.SetIdx( 0 );
++	    rInf.SetLen( aNewText.Len() );
++	    aTxtSize = pLastFont->GetTextSize( rInf );	    
++	    rInf.SetIdx( nOldIdx );
++	    rInf.SetLen( nOldLen );
++	}
++	else
++	if (1==rInf.GetLen() && CH_TXT_ATR_FIELDEND==rInf.GetText().GetChar(rInf.GetIdx())) {
++	    xub_StrLen nOldIdx(rInf.GetIdx());
++	    xub_StrLen nOldLen(rInf.GetLen());
++	    String aNewText=String::CreateFromAscii(CH_TXT_ATR_SUBST_FIELDEND);
++	    rInf.SetText( aNewText );
++	    rInf.SetIdx( 0 );
++	    rInf.SetLen( aNewText.Len() );
++	    aTxtSize = pLastFont->GetTextSize( rInf );	    
++	    rInf.SetIdx( nOldIdx );
++	    rInf.SetLen( nOldLen );	
++	}
++
++
+ 	return aTxtSize;
+ }
+ 
+diff --git a/sw/source/core/unocore/unobkm.cxx b/sw/source/core/unocore/unobkm.cxx
+index 6114e6a..bb55fa2 100644
+--- sw/source/core/unocore/unobkm.cxx
++++ sw/source/core/unocore/unobkm.cxx
+@@ -126,7 +126,7 @@ SwXBookmark::~SwXBookmark()
+ /*-- 10.12.98 10:14:39---------------------------------------------------
+ 
+   -----------------------------------------------------------------------*/
+-void SwXBookmark::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
++void SwXBookmark::attachToRangeEx(const uno::Reference< text::XTextRange > & xTextRange, IDocumentBookmarkAccess::BookmarkType eMark)
+ 										throw( lang::IllegalArgumentException, uno::RuntimeException )
+ {
+ 	if(!bIsDescriptor)
+@@ -160,7 +160,7 @@ void SwXBookmark::attachToRange(const uno::Reference< text::XTextRange > & xText
+             if( USHRT_MAX != pDoc->findBookmark(m_aName) )
+                 pDoc->makeUniqueBookmarkName( m_aName );
+ 			KeyCode aCode;
+-            pBkm = pDoc->makeBookmark( aPam, aCode, m_aName, aEmptyStr, IDocumentBookmarkAccess::BOOKMARK);
++            pBkm = pDoc->makeBookmark( aPam, aCode, m_aName, aEmptyStr, eMark);
+ 			pBkm->Add(this);
+ 			bIsDescriptor = sal_False;
+ 		}
+@@ -168,6 +168,118 @@ void SwXBookmark::attachToRange(const uno::Reference< text::XTextRange > & xText
+ 	else
+ 		throw lang::IllegalArgumentException();
+ }
++
++void SwXBookmark::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
++										throw( lang::IllegalArgumentException, uno::RuntimeException )
++{
++	attachToRangeEx(xTextRange, IDocumentBookmarkAccess::BOOKMARK);
++}
++
++SwXFieldmark::SwXFieldmark(bool isReplacementObject, SwBookmark* pBkm, SwDoc* pDc) : SwXFieldmark_BASE(pBkm, pDc),
++isReplacementObject(isReplacementObject)
++{
++}
++
++
++void SwXFieldmark::attachToRange(const uno::Reference< text::XTextRange > & xTextRange)
++										throw( lang::IllegalArgumentException, uno::RuntimeException )
++{
++	attachToRangeEx(xTextRange, (isReplacementObject?IDocumentBookmarkAccess::FORM_FIELDMARK_NO_TEXT:IDocumentBookmarkAccess::FORM_FIELDMARK_TEXT));
++}
++
++::rtl::OUString SwXFieldmark::getDescription(void) throw( ::com::sun::star::uno::RuntimeException )
++{
++	vos::OGuard aGuard(Application::GetSolarMutex());
++	SwFieldBookmark* pBkm = (SwFieldBookmark*)GetBookmark();
++	OUString sRet;
++	if(pBkm)
++		sRet = pBkm->GetFFHelpText();
++	/* //@TODO implement...
++	else if(bIsDescriptor)
++		sRet = m_aName;
++		*/
++	else
++		throw uno::RuntimeException();
++	return sRet;
++}
++
++::sal_Int16 SAL_CALL SwXFieldmark::getType(  ) throw (::com::sun::star::uno::RuntimeException)
++{
++	vos::OGuard aGuard(Application::GetSolarMutex());
++	SwFieldBookmark* pBkm = (SwFieldBookmark*)GetBookmark();
++	::sal_Int16 sRet;
++	if(pBkm)
++		sRet = pBkm->GetType();
++	/* //@TODO implement...
++	else if(bIsDescriptor)
++		sRet = m_aName;
++		*/
++	else
++		throw uno::RuntimeException();
++	return sRet;
++}
++
++::sal_Int16 SAL_CALL SwXFieldmark::getRes(  ) throw (::com::sun::star::uno::RuntimeException)
++{
++	vos::OGuard aGuard(Application::GetSolarMutex());
++	SwFieldBookmark* pBkm = (SwFieldBookmark*)GetBookmark();
++	::sal_Int16 sRet;
++	if(pBkm)
++		sRet = pBkm->GetFFRes();
++	/* //@TODO implement...
++	else if(bIsDescriptor)
++		sRet = m_aName;
++		*/
++	else
++		throw uno::RuntimeException();
++	return sRet;
++}
++
++
++void SAL_CALL SwXFieldmark::setType( ::sal_Int16 fieldType ) throw (::com::sun::star::uno::RuntimeException)
++{
++	vos::OGuard aGuard(Application::GetSolarMutex());
++	SwFieldBookmark* pBkm = (SwFieldBookmark*)GetBookmark();
++	if (pBkm) {
++		pBkm->SetType(fieldType);
++	} else {
++		throw uno::RuntimeException();
++	}
++}
++
++void SAL_CALL SwXFieldmark::setRes( ::sal_Int16 res ) throw (::com::sun::star::uno::RuntimeException)
++{
++	vos::OGuard aGuard(Application::GetSolarMutex());
++	SwFieldBookmark* pBkm = (SwFieldBookmark*)GetBookmark();
++	if (pBkm) {
++		pBkm->SetFFRes(res);
++	} else {
++		throw uno::RuntimeException();
++	}
++}
++
++void SAL_CALL SwXFieldmark::setDescription( const ::rtl::OUString& description ) throw (::com::sun::star::uno::RuntimeException)
++{
++	vos::OGuard aGuard(Application::GetSolarMutex());
++	SwFieldBookmark* pBkm = (SwFieldBookmark*)GetBookmark();
++	if (pBkm) {
++		pBkm->SetFFHelpText(description);
++	} else {
++		throw uno::RuntimeException();
++	}
++}
++
++
++
++/*
++
++::com::sun::star::uno::Any SAL_CALL SwXFieldmark::queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
++{
++		return SwXBookmark::queryInterface(rType);
++}
++*/
++
++
+ /* -----------------18.02.99 13:31-------------------
+  *
+  * --------------------------------------------------*/
+diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx
+index acdadee..319c6f3 100644
+--- sw/source/core/unocore/unocoll.cxx
++++ sw/source/core/unocore/unocoll.cxx
+@@ -20,7 +20,7 @@
+  *    This library is free software; you can redistribute it and/or
+  *    modify it under the terms of the GNU Lesser General Public
+  *    License version 2.1, as published by the Free Software Foundation.
+- *
++ *	
+  *    This library is distributed in the hope that it will be useful,
+  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+@@ -271,6 +271,8 @@ const ProvNamesId_Type __FAR_DATA aProvNamesId[] =
+     { "com.sun.star.image.ImageMapPolygonObject",             SW_SERVICE_IMAP_POLYGON },
+     { "com.sun.star.text.TextGraphicObject",                  SW_SERVICE_TYPE_TEXT_GRAPHIC },
+     { "com.sun.star.chart2.data.DataProvider",                SW_SERVICE_CHART2_DATA_PROVIDER },
++    { "org.go-oo.text.Fieldmark",                             SW_SERVICE_TYPE_FIELDMARK },
++    { "org.go-oo.text.FormFieldmark",                         SW_SERVICE_TYPE_FORMFIELDMARK },
+ 
+     // case-correct versions of the service names (see #i67811)
+     { CSS_TEXT_TEXTFIELD_DATE_TIME,                   SW_SERVICE_FIELDTYPE_DATETIME },
+@@ -443,6 +445,18 @@ uno::Reference< uno::XInterface >  	SwXServiceProvider::MakeInstance(sal_uInt16
+ 			xRet =  (cppu::OWeakObject*)pBookmark;
+ 		}
+ 		break;
++		case  SW_SERVICE_TYPE_FIELDMARK :
++		{
++			SwXFieldmark* pFieldmark = new SwXFieldmark(false);
++			xRet =  (cppu::OWeakObject*)pFieldmark;
++		}
++		break;
++		case  SW_SERVICE_TYPE_FORMFIELDMARK :
++		{
++			SwXFieldmark* pFieldmark = new SwXFieldmark(true);
++			xRet =  (cppu::OWeakObject*)pFieldmark;
++		}
++		break;
+ 		case  SW_SERVICE_TYPE_FOOTNOTE :
+ 			xRet =  (cppu::OWeakObject*)new SwXFootnote(sal_False);
+ 		break;
+@@ -1645,8 +1659,15 @@ SwXBookmark* 	SwXBookmarks::GetObject( SwBookmark& rBkm, SwDoc* pDoc )
+ {
+ 	SwXBookmark* pBkm = (SwXBookmark*)SwClientIter( rBkm ).
+ 									First( TYPE( SwXBookmark ));
+-	if( !pBkm )
+-		pBkm = new SwXBookmark(&rBkm, pDoc);
++	if( !pBkm ) {
++		if (IDocumentBookmarkAccess::FORM_FIELDMARK_TEXT==rBkm.GetType()) {
++			pBkm = new SwXFieldmark(false, &rBkm, pDoc);
++		} else if (IDocumentBookmarkAccess::FORM_FIELDMARK_NO_TEXT==rBkm.GetType()) {
++			pBkm = new SwXFieldmark(true, &rBkm, pDoc);
++		} else {
++			pBkm = new SwXBookmark(&rBkm, pDoc);
++		}
++	}
+ 	return pBkm;
+ }
+ /******************************************************************
+diff --git a/sw/source/core/unocore/unoport.cxx b/sw/source/core/unocore/unoport.cxx
+index f3eb739..83968a3 100644
+--- sw/source/core/unocore/unoport.cxx
++++ sw/source/core/unocore/unoport.cxx
+@@ -350,6 +350,9 @@ void SwXTextPortion::GetPropertyValue(
+                 case PORTION_RUBY_START:
+                 case PORTION_RUBY_END:      pRet = "Ruby";break;
+                 case PORTION_SOFT_PAGEBREAK:pRet = "SoftPageBreak";break;
++                case PORTION_FIELD_START:pRet = "TextFieldStart";break;
++                case PORTION_FIELD_END:pRet = "TextFieldEnd";break;
++                case PORTION_FIELD_START_END:pRet = "TextFieldStartEnd";break;
+                 default:
+                     pRet = 0;
+                 }
+@@ -393,6 +396,8 @@ void SwXTextPortion::GetPropertyValue(
+                     case PORTION_REDLINE_END :
+                     case PORTION_RUBY_START:
+                     case PORTION_RUBY_END:
++                    case PORTION_FIELD_START:
++                    case PORTION_FIELD_END:
+                         rVal.setValue(&bIsCollapsed, ::getBooleanCppuType());
+                     break;
+                     default:
+@@ -410,6 +415,7 @@ void SwXTextPortion::GetPropertyValue(
+                     case PORTION_TOXMARK_START:
+                     case PORTION_REDLINE_START:
+                     case PORTION_RUBY_START:
++                    case PORTION_FIELD_START:
+                     break;
+ 
+                     case PORTION_REFMARK_END:
+@@ -417,6 +423,7 @@ void SwXTextPortion::GetPropertyValue(
+                     case PORTION_BOOKMARK_END:
+                     case PORTION_REDLINE_END:
+                     case PORTION_RUBY_END:
++                    case PORTION_FIELD_END:
+                         bStart = FALSE;
+                     break;
+                     default:
+diff --git a/sw/source/core/unocore/unoportenum.cxx b/sw/source/core/unocore/unoportenum.cxx
+index f3ad5da..356d503 100644
+--- sw/source/core/unocore/unoportenum.cxx
++++ sw/source/core/unocore/unoportenum.cxx
+@@ -694,6 +694,19 @@ void lcl_FillBookmarkArray(SwDoc& rDoc,SwUnoCrsr& rUnoCrsr, SwXBookmarkPortion_I
+ 			if( !pMark->IsBookMark() )
+ 				continue;
+ 
++			/*
++			if (pMark!=NULL && pMark->GetName().CompareToAscii(FIELD_BOOKMARK_PREFIX, strlen(FIELD_BOOKMARK_PREFIX))==0) {
++				continue;
++			}
++
++			if (pMark!=NULL && pMark->GetName().CompareToAscii(FIELD_FORM_BOOKMARK_PREFIX, strlen(FIELD_FORM_BOOKMARK_PREFIX))==0) {
++				continue;
++			}
++			*/
++			if (pMark!=NULL && pMark->IsFormFieldMark()) {
++				continue;
++			}
++
+ 			const SwPosition& rPos1 = pMark->GetPos();
+ 			const SwPosition* pPos2 = pMark->GetOtherPos();
+ 			BOOL bBackward = pPos2 ? rPos1 > *pPos2: FALSE;
+@@ -999,8 +1012,78 @@ void SwXTextPortionEnumeration::CreatePortions()
+ 							}
+ 						}
+ 					}
+-					if(!xRef.is() && pUnoCrsr->HasMark() )
+-                        xRef = new SwXTextPortion(pUnoCrsr, xParent, ePortionType);
++					if(!xRef.is() && pUnoCrsr->HasMark() ) {
++						//flr: maybe its a good idea to add a special hint to the hints array and rely on the hint segmentation....
++						xub_StrLen start=pUnoCrsr->GetMark()->nContent.GetIndex();
++						xub_StrLen end=pUnoCrsr->GetPoint()->nContent.GetIndex();
++						ASSERT(start<=end, "hmm --- why is this different");
++						xub_StrLen startMarkerPos=pTxtNode->GetTxt().Search(CH_TXT_ATR_FIELDSTART, start);
++						xub_StrLen endMarkerPos=pTxtNode->GetTxt().Search(CH_TXT_ATR_FIELDEND, start);
++						xub_StrLen formMarkerPos=pTxtNode->GetTxt().Search(CH_TXT_ATR_FORMELEMENT, start);
++						xub_StrLen markerPos=STRING_LEN;
++						if (startMarkerPos>=start && startMarkerPos<end) {
++							markerPos=startMarkerPos;
++						}
++						if (endMarkerPos>=start && endMarkerPos<end) {
++							if (endMarkerPos<markerPos) {
++								markerPos=endMarkerPos;
++							}
++						}
++						if (formMarkerPos>=start && formMarkerPos<end) {
++							if (formMarkerPos<markerPos) {
++								markerPos=formMarkerPos;
++							}
++						}
++						if (markerPos<end) {
++							if (start==markerPos)
++								end = markerPos+1;
++							else
++								end = markerPos;
++							bAtEnd = sal_False;
++							pUnoCrsr->GetPoint()->nContent = end;
++						}
++						if (start+1==end && pTxtNode->GetTxt().GetChar(start)==CH_TXT_ATR_FIELDSTART) {
++						    SwDoc* pDoc = pUnoCrsr->GetDoc();
++							SwBookmark* pFieldmark=NULL;
++							if (pDoc && pUnoCrsr->GetPoint()) {
++								pFieldmark=pDoc->getFieldBookmarkFor(*pUnoCrsr->GetPoint());
++							}
++							SwXTextPortion* pPortion=NULL;
++							xRef = (pPortion=new SwXTextPortion(pUnoCrsr, xParent, PORTION_FIELD_START));
++							if (pPortion && pFieldmark && pDoc) {
++								pPortion->SetBookmark(new SwXFieldmark(false, pFieldmark, pDoc));
++							}
++						} else if (start+1==end && pTxtNode->GetTxt().GetChar(start)==CH_TXT_ATR_FIELDEND) {
++						    SwDoc* pDoc = pUnoCrsr->GetDoc();
++							SwBookmark* pFieldmark=NULL;
++							if (pDoc && pUnoCrsr->GetPoint()) {
++								SwPosition aPos(*pUnoCrsr->GetPoint());
++								aPos.nContent=markerPos;
++								pFieldmark=pDoc->getFieldBookmarkFor(aPos);
++							}
++							SwXTextPortion* pPortion=NULL;
++							xRef = (pPortion = new SwXTextPortion(pUnoCrsr, xParent, PORTION_FIELD_END));
++							if (pPortion && pFieldmark && pDoc) {
++								pPortion->SetBookmark(new SwXFieldmark(false, pFieldmark, pDoc));
++							}
++						} else if (start+1==end && pTxtNode->GetTxt().GetChar(start)==CH_TXT_ATR_FORMELEMENT) {
++						    SwDoc* pDoc = pUnoCrsr->GetDoc();
++							SwFieldBookmark* pFieldmark=NULL;
++							if (pDoc && pUnoCrsr->GetPoint()) {
++								SwPosition aPos(*pUnoCrsr->GetPoint());
++								aPos.nContent=markerPos;
++								pFieldmark=pDoc->getFormFieldBookmarkFor(aPos);
++							}
++							SwXTextPortion* pPortion=NULL;							
++							xRef = (pPortion = new SwXTextPortion(pUnoCrsr, xParent, PORTION_FIELD_START_END));
++							if (pPortion && pFieldmark && pDoc) {
++								pPortion->SetBookmark(new SwXFieldmark(true, pFieldmark, pDoc));
++							}
++						} else {
++							xRef = new SwXTextPortion(pUnoCrsr, xParent, ePortionType);
++						}
++						
++					}
+ 					if(xRef.is())
+ 						aPortionArr.Insert(new Reference<XTextRange>(xRef), aPortionArr.Count());
+ 				}
+diff --git a/sw/source/filter/inc/fltshell.hxx b/sw/source/filter/inc/fltshell.hxx
+index a0d4d0f..fbd51b1 100644
+--- sw/source/filter/inc/fltshell.hxx
++++ sw/source/filter/inc/fltshell.hxx
+@@ -96,6 +96,7 @@ public:
+ 	BOOL bOld;			// to mark Attributes *before* skipping field results
+ 	BOOL bLocked;
+ 	BOOL bCopied;
++	BOOL bConsumedByField;
+ 
+ 	SwFltStackEntry(const SwPosition & rStartPos, SfxPoolItem* pHt );
+ 	SwFltStackEntry(const SwFltStackEntry& rEntry);
+@@ -144,7 +145,7 @@ public:
+ 
+ 	void NewAttr(const SwPosition& rPos, const SfxPoolItem & rAttr );
+ 
+-	virtual void SetAttr(const SwPosition& rPos, USHORT nAttrId=0, BOOL bTstEnde=TRUE, long nHand = LONG_MAX);
++	virtual void SetAttr(const SwPosition& rPos, USHORT nAttrId=0, BOOL bTstEnde=TRUE, long nHand = LONG_MAX, BOOL consumedByField=FALSE);
+ 
+ 	void StealAttr(const SwPosition* pPos, USHORT nAttrId = 0);
+ 	void MarkAllAttrsOld();
+diff --git a/sw/source/filter/ww1/fltshell.cxx b/sw/source/filter/ww1/fltshell.cxx
+index f2092b4..6ce3d32 100644
+--- sw/source/filter/ww1/fltshell.cxx
++++ sw/source/filter/ww1/fltshell.cxx
+@@ -189,6 +189,7 @@ SwFltStackEntry::SwFltStackEntry(const SwPosition& rStartPos, SfxPoolItem* pHt )
+ 	bOld	= FALSE;	// used for marking Attributes *before* skipping field results
+ 	bLocked = TRUE; 	// locke das Attribut --> darf erst
+ 	bCopied = FALSE;	// gesetzt werden, wenn es wieder geunlocked ist
++	bConsumedByField = FALSE;
+ }
+ 
+ SwFltStackEntry::SwFltStackEntry(const SwFltStackEntry& rEntry) :
+@@ -199,6 +200,7 @@ SwFltStackEntry::SwFltStackEntry(const SwFltStackEntry& rEntry) :
+ 	nMkCntnt= rEntry.nMkCntnt;
+ 	bOld	= rEntry.bOld;
+ 	bLocked	= bCopied = TRUE; // when rEntry were NOT bLocked we would never have been called
++	bConsumedByField = rEntry.bConsumedByField;
+ }
+ 
+ 
+@@ -385,7 +387,7 @@ void SwFltControlStack::KillUnlockedAttrs(const SwPosition& pPos)
+ // Returned, ob das gesuchte Attribut / die gesuchten Attribute
+ // ueberhaupt auf dem Stack standen
+ void SwFltControlStack::SetAttr(const SwPosition& rPos, USHORT nAttrId,
+-								BOOL bTstEnde, long nHand )
++								BOOL bTstEnde, long nHand, BOOL consumedByField )
+ {
+ 	ASSERT(!nAttrId ||
+ 		(POOLATTR_BEGIN <= nAttrId && POOLATTR_END > nAttrId) ||
+@@ -413,8 +415,10 @@ void SwFltControlStack::SetAttr(const SwPosition& rPos, USHORT nAttrId,
+ 					bF = true;
+ 				}
+ 			}
+-			if (bF)
++			if (bF) {
++				pEntry->bConsumedByField = consumedByField;
+ 				pEntry->SetEndPos(rPos);
++			}
+ 			continue;
+ 		}
+ 
+@@ -583,7 +587,7 @@ void SwFltControlStack::SetAttrInDoc(const SwPosition& rTmpPos, SwFltStackEntry*
+ 				}
+ 			}
+ 			if( !pB->IsOnlyRef() &&
+-				( !IsFlagSet(HYPO) || IsFlagSet(BOOK_AND_REF) ) )
++				( !IsFlagSet(HYPO) || IsFlagSet(BOOK_AND_REF) ) && !pEntry->bConsumedByField)
+ 			{
+ 				MakeBookRegionOrPoint(pEntry, pDoc, aRegion, TRUE);
+                 pDoc->makeBookmark( aRegion, aEmptyKeyCode, rName, aEmptyStr, IDocumentBookmarkAccess::BOOKMARK);
+diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
+index 26290b6..1d1749a 100644
+--- sw/source/filter/ww8/wrtw8nds.cxx
++++ sw/source/filter/ww8/wrtw8nds.cxx
+@@ -216,6 +216,10 @@
+ #include "ww8par.hxx"
+ #endif
+ 
++#ifndef _BOOKMRK_HXX
++#include <bookmrk.hxx>
++#endif
++
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::i18n;
+ using namespace sw::util;
+@@ -400,12 +404,22 @@ xub_StrLen WW8_SwAttrIter::SearchNext( xub_StrLen nStartPos )
+     xub_StrLen nMinPos = STRING_MAXLEN;
+     xub_StrLen i=0;
+ 
++	const String aTxt = rNd.GetTxt();
++	xub_StrLen pos=aTxt.Search(CH_TXT_ATR_FIELDSTART, nStartPos);
++	if (pos==STRING_NOTFOUND) 
++		pos=aTxt.Search(CH_TXT_ATR_FIELDEND, nStartPos);
++	if (pos==STRING_NOTFOUND) 
++		pos=aTxt.Search(CH_TXT_ATR_FORMELEMENT, nStartPos);
++	if (pos!=STRING_NOTFOUND)  
++		nMinPos=pos;
++
+     // first the redline, then the attributes
+     if( pCurRedline )
+     {
+         const SwPosition* pEnd = pCurRedline->End();
+         if (pEnd->nNode == rNd && ((i = pEnd->nContent.GetIndex()) >= nStartPos))
+-            nMinPos = i;
++			if (i<nMinPos)
++				nMinPos = i;
+     }
+ 
+     if( nCurRedlinePos < rWrt.pDoc->GetRedlineTbl().Count() )
+@@ -525,7 +539,7 @@ void WW8_SwAttrIter::OutAttr(xub_StrLen nSwPos)
+     }
+ 
+ 	// #i46087# patch from james_clark; complex texts needs the undocumented SPRM 0x0882 with param 0x81.
+-	if (rWrt.bWrtWW8 && GetScript() == ScriptType::COMPLEX && !IsCharRTL())
++	if (rWrt.bWrtWW8 && GetScript() == com::sun::star::i18n::ScriptType::COMPLEX && !IsCharRTL())
+     {
+ 		rWrt.InsUInt16(0x882);
+ 		rWrt.pO->Insert((BYTE)0x81, rWrt.pO->Count());
+@@ -818,7 +832,7 @@ void WW8_SwAttrIter::OutSwFmtRuby(const SwFmtRuby& rRuby, bool bStart)
+         if( pBreakIt->xBreak.is() )
+             nRubyScript = pBreakIt->xBreak->getScriptType( rRuby.GetText(), 0);
+         else
+-            nRubyScript = ScriptType::ASIAN;
++            nRubyScript = com::sun::star::i18n::ScriptType::ASIAN;
+ 
+         const SwTxtRuby* pRubyTxt = rRuby.GetTxtRuby();
+         const SwCharFmt* pFmt = pRubyTxt ? pRubyTxt->GetCharFmt() : 0;
+@@ -869,7 +883,7 @@ void WW8_SwAttrIter::OutSwFmtRuby(const SwFmtRuby& rRuby, bool bStart)
+             nRubyScript = pBreakIt->xBreak->getScriptType( rNd.GetTxt(),
+                 *(pRubyTxt->GetStart()));
+         else
+-            nRubyScript = ScriptType::ASIAN;
++            nRubyScript = com::sun::star::i18n::ScriptType::ASIAN;
+ 
+         const SwAttrSet& rSet = rNd.GetSwAttrSet();
+         const SvxFontHeightItem &rHeightItem  =
+@@ -1470,20 +1484,20 @@ String WW8_SwAttrIter::GetSnippet(const String &rStr, xub_StrLen nAktPos,
+ 
+     if (SVX_CASEMAP_TITEL == ((const SvxCaseMapItem&)rItem).GetValue())
+     {
+-        sal_uInt16 nScriptType = ScriptType::LATIN;
++        sal_uInt16 nScriptType = com::sun::star::i18n::ScriptType::LATIN;
+         if (pBreakIt->xBreak.is())
+             nScriptType = pBreakIt->xBreak->getScriptType(aSnippet, 0);
+ 
+         LanguageType nLanguage;
+         switch (nScriptType)
+         {
+-            case ScriptType::ASIAN:
++            case com::sun::star::i18n::ScriptType::ASIAN:
+                 nLanguage = ((const SvxLanguageItem&)GetItem(RES_CHRATR_CJK_LANGUAGE)).GetLanguage();
+                 break;
+-            case ScriptType::COMPLEX:
++            case com::sun::star::i18n::ScriptType::COMPLEX:
+                 nLanguage = ((const SvxLanguageItem&)GetItem(RES_CHRATR_CTL_LANGUAGE)).GetLanguage();
+                 break;
+-            case ScriptType::LATIN:
++            case com::sun::star::i18n::ScriptType::LATIN:
+             default:
+                 nLanguage = ((const SvxLanguageItem&)GetItem(RES_CHRATR_LANGUAGE)).GetLanguage();
+                 break;
+@@ -1620,8 +1634,50 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
+         xub_StrLen nLen = nNextAttr - nAktPos;
+         if (!bTxtAtr && nLen)
+         {
+-            String aSnippet(aAttrIter.GetSnippet(aStr, nAktPos, nLen));
+-            if ((rWW8Wrt.nTxtTyp == TXT_EDN || rWW8Wrt.nTxtTyp == TXT_FTN) && nAktPos ==0)
++			sal_Unicode ch=aStr.GetChar(nAktPos);
++			int ofs=(ch==CH_TXT_ATR_FIELDSTART || ch==CH_TXT_ATR_FIELDEND || ch==CH_TXT_ATR_FORMELEMENT?1:0);
++
++			if (ch==CH_TXT_ATR_FIELDSTART) {
++				SwPosition aPosition( *pNd, SwIndex( (SwTxtNode*)pNd, nAktPos+1 ) );
++				SwFieldBookmark* pFieldmark=(SwFieldBookmark*)rWW8Wrt.pDoc->getFieldBookmarkFor( aPosition );
++				ASSERT(pFieldmark!=NULL, "Looks like this doc is broken...; where is the Fieldmark for the FIELDSTART??");
++
++				if (pFieldmark!=NULL) {
++					rWW8Wrt.AppendBookmark( pFieldmark->GetName(), 1);
++				}
++				rWW8Wrt.OutField(NULL, ww::eFORMTEXT, String::CreateFromAscii(" FORMTEXT "), WRITEFIELD_START | WRITEFIELD_CMD_START);	
++				if (pFieldmark!=NULL) {
++					rWW8Wrt.WriteFormData( *pFieldmark );
++				}
++				rWW8Wrt.OutField(NULL, ww::eFORMTEXT, String(), WRITEFIELD_CMD_END);
++			} else if (ch==CH_TXT_ATR_FIELDEND) {
++				SwPosition aPosition( *pNd, SwIndex( (SwTxtNode*)pNd, nAktPos ) );
++				SwFieldBookmark* pFieldmark=(SwFieldBookmark*)rWW8Wrt.pDoc->getFieldBookmarkFor( aPosition );
++				ASSERT(pFieldmark!=NULL, "Looks like this doc is broken...; where is the Fieldmark for the FIELDSTART??");
++				rWW8Wrt.OutField(NULL, ww::eFORMTEXT, String(), WRITEFIELD_CLOSE);
++				if (pFieldmark!=NULL) {
++					rWW8Wrt.AppendBookmark( pFieldmark->GetName(), 0);
++				}
++			} else if (ch==CH_TXT_ATR_FORMELEMENT) {
++				SwPosition aPosition( *pNd, SwIndex( (SwTxtNode*)pNd, nAktPos ) );
++				SwFieldBookmark* pFieldmark=rWW8Wrt.pDoc->getFormFieldBookmarkFor( aPosition );
++				ASSERT(pFieldmark!=NULL, "Looks like this doc is broken...; where is the Fieldmark for the FIELDSTART??");
++				if (pFieldmark!=NULL) {
++					rWW8Wrt.AppendBookmark( pFieldmark->GetName(), 1);
++				}
++				rWW8Wrt.OutField(NULL, ww::eFORMCHECKBOX, String::CreateFromAscii(" FORMCHECKBOX "), WRITEFIELD_START | WRITEFIELD_CMD_START);
++				if (pFieldmark!=NULL) {
++
++					rWW8Wrt.WriteFormData( *pFieldmark );
++				}
++				rWW8Wrt.OutField(NULL, ww::eFORMCHECKBOX, String(), WRITEFIELD_CMD_END | WRITEFIELD_CLOSE);
++				if (pFieldmark!=NULL) {
++					rWW8Wrt.AppendBookmark( pFieldmark->GetName(), 0);
++				}
++			}
++			nLen-=ofs;
++			String aSnippet(aAttrIter.GetSnippet(aStr, nAktPos+ofs, nLen));
++            if ((rWW8Wrt.nTxtTyp == TXT_EDN || rWW8Wrt.nTxtTyp == TXT_FTN) && nAktPos ==0 && nLen>0)
+             {
+                 // Insert tab for aesthetic puposes #i24762#
+                 if (aSnippet.GetChar(0) != 0x09)
+@@ -1629,7 +1685,7 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
+                     nLen++;
+                     aSnippet.Insert(0x09,0);
+                 }
+-            }
++			}
+             rWW8Wrt.OutSwString(aSnippet, 0, nLen, bUnicode, eChrSet );
+         }
+ 
+diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
+index 421ec5b..f85fa08 100644
+--- sw/source/filter/ww8/wrtww8.cxx
++++ sw/source/filter/ww8/wrtww8.cxx
+@@ -204,6 +204,10 @@
+ #include "writerwordglue.hxx"
+ #endif
+ 
++#ifndef IDOCUMENTBOOKMARKACCESS_HXX_INCLUDED
++#include <IDocumentBookmarkAccess.hxx>
++#endif
++
+ using namespace sw::util;
+ using namespace sw::types;
+ 
+@@ -286,7 +290,7 @@ public:
+     WW8_WrtBookmarks();
+     ~WW8_WrtBookmarks();
+ 
+-    void Append( WW8_CP nStartCp, const String& rNm );
++    void Append( WW8_CP nStartCp, const String& rNm, const SwBookmark* pBkmk=NULL );
+     void Write( SwWW8Writer& rWrt );
+     void MoveFieldBookmarks(ULONG nFrom,ULONG nTo);
+ 
+@@ -1307,7 +1311,7 @@ WW8_WrtBookmarks::~WW8_WrtBookmarks()
+ {
+ }
+ 
+-void WW8_WrtBookmarks::Append( WW8_CP nStartCp, const String& rNm )
++void WW8_WrtBookmarks::Append( WW8_CP nStartCp, const String& rNm,  const SwBookmark* pBkmk)
+ {
+     USHORT nPos = GetPos( rNm );
+     if( USHRT_MAX == nPos )
+@@ -1339,7 +1343,7 @@ void WW8_WrtBookmarks::Append( WW8_CP nStartCp, const String& rNm )
+         if (aFieldBookmarks[nPos])
+             --nStartCp;
+ 
+-        aEndCps.Replace( nStartCp, nPos );
++		aEndCps.Replace( nStartCp, nPos );
+     }
+ }
+ 
+@@ -1437,6 +1441,11 @@ void SwWW8Writer::AppendBookmarks( const SwTxtNode& rNd,
+         for( USHORT n = 0; n < aArr.Count(); ++n )
+         {
+             const SwBookmark& rBkmk = *(SwBookmark*)aArr[ n ];
++
++			if (rBkmk.IsFormFieldMark()) {
++				continue;
++			}
++
+             const SwPosition* pPos = &rBkmk.GetPos(),
+                             * pOPos = rBkmk.GetOtherPos();
+             if( pOPos && pOPos->nNode == pPos->nNode &&
+@@ -1451,14 +1460,14 @@ void SwWW8Writer::AppendBookmarks( const SwTxtNode& rNd,
+                 nCntnt < nAktEnd ) )
+             {
+                 ULONG nCp = nSttCP + pPos->nContent.GetIndex() - nAktPos;
+-                pBkmks->Append(nCp, BookmarkToWord(rBkmk.GetName()));
++                pBkmks->Append(nCp, BookmarkToWord(rBkmk.GetName()), &rBkmk);
+             }
+-            if( pOPos && nNd == pOPos->nNode.GetIndex() &&
++			if( pOPos && nNd == pOPos->nNode.GetIndex() &&
+                 ( nCntnt = pOPos->nContent.GetIndex() ) >= nAktPos &&
+                 nCntnt < nAktEnd )
+             {
+                 ULONG nCp = nSttCP + pOPos->nContent.GetIndex() - nAktPos;
+-                pBkmks->Append(nCp, BookmarkToWord(rBkmk.GetName()));
++                pBkmks->Append(nCp, BookmarkToWord(rBkmk.GetName()), &rBkmk);
+             }
+         }
+     }
+@@ -1650,6 +1659,17 @@ void SwWW8Writer::WriteString16(SvStream& rStrm, const String& rStr,
+         rStrm.Write(&aBytes[0], aBytes.size());
+ }
+ 
++void SwWW8Writer::WriteString_xstz(SvStream& rStrm, const String& rStr, bool bAddZero)
++{
++    ww::bytes aBytes;
++    SwWW8Writer::InsUInt16(aBytes, rStr.Len());
++    SwWW8Writer::InsAsString16(aBytes, rStr);
++	if (bAddZero) 
++		SwWW8Writer::InsUInt16(aBytes, 0);
++	rStrm.Write(&aBytes[0], aBytes.size());
++}
++
++
+ void SwWW8Writer::WriteString8(SvStream& rStrm, const String& rStr,
+     bool bAddZero, rtl_TextEncoding eCodeSet)
+ {
+@@ -2652,5 +2672,97 @@ void SwWW8Writer::RestoreMacroCmds()
+     pFib->lcbCmds = pTableStrm->Tell() - pFib->fcCmds;
+ }
+ 
++void SwWW8Writer::WriteFormData(SwFieldBookmark &rFieldmark)
++{
++	ASSERT(bWrtWW8, "No 95 export yet");
++	if (!bWrtWW8) return;
++
++	int type=rFieldmark.GetType();
++	const String ffname=rFieldmark.GetFFName();
++
++	ULONG nDataStt = pDataStrm->Tell();
++    pChpPlc->AppendFkpEntry( Strm().Tell() );
++
++    WriteChar( 0x01 );
++    static BYTE aArr1[] = {
++        0x03, 0x6a, 0,0,0,0,    // sprmCPicLocation
++
++        0x06, 0x08, 0x01,       // sprmCFData
++        0x55, 0x08, 0x01,       // sprmCFSpec
++        0x02, 0x08, 0x01        // sprmCFFldVanish
++    };
++    BYTE* pDataAdr = aArr1 + 2;
++    Set_UInt32( pDataAdr, nDataStt );
++
++    pChpPlc->AppendFkpEntry(Strm().Tell(),
++                sizeof( aArr1 ), aArr1 );
++
++	sal_uInt8 aFldHeader[] = 
++	{
++		0xFF, 0xFF, 0xFF, 0xFF, // Unicode Marker...
++		0, 0, 0, 0, 0, 0 //, 0, 0
++	};
++
++	aFldHeader[4] |= (type & 0x03);
++	int ffres=rFieldmark.GetFFRes();
++	aFldHeader[4] |= ((ffres<<2) & 0x7C);
++
++	const String ffdeftext;
++	const String ffformat;
++	const String ffhelptext;
++	const String ffstattext;
++	const String ffentrymcr;
++	const String ffexitmcr;
++
++    const sal_uInt8 aFldData[] =
++    {
++        0,0,0,0,        // len of struct
++        0x44,0,         // the start of "next" data             
++        0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!  /10
++        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |              /16
++        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |              /16
++        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |              /16
++        0,0,0,0,                            // /               /4
++    };
++	int slen=sizeof(aFldData)
++		+sizeof(aFldHeader)
++		+2*ffname.Len()+4
++		+2*ffdeftext.Len()+4
++		+2*ffformat.Len()+4
++		+2*ffhelptext.Len()+4
++		+2*ffstattext.Len()+4
++		+2*ffentrymcr.Len()+4
++		+2*ffexitmcr.Len()+4;
++#ifdef OSL_BIGENDIAN
++	slen=SWAPLONG(slen);
++#endif // OSL_BIGENDIAN
++	*((sal_uInt32 *)aFldData)=slen;
++	int len=sizeof(aFldData) ;
++	assert(len==0x44);
++    pDataStrm->Write( aFldData, len);
++
++	len=sizeof(aFldHeader);
++	assert(len==8);
++    pDataStrm->Write( aFldHeader, len);
++
++    WriteString_xstz( *pDataStrm, ffname, true); // Form field name
++
++	if (type==0) {
++		WriteString_xstz( *pDataStrm, ffdeftext, true);
++	} else {
++		pDataStrm->WriteNumber((sal_uInt16)0);
++	}	
++	WriteString_xstz( *pDataStrm, ffformat, true);
++	WriteString_xstz( *pDataStrm, ffhelptext, true);
++	WriteString_xstz( *pDataStrm, ffstattext, true);
++	WriteString_xstz( *pDataStrm, ffentrymcr, true);
++	WriteString_xstz( *pDataStrm, ffexitmcr, true);
++	if (type==2) {
++		// 0xFF, 0xFF
++		// sal_uInt32 number of strings
++		// (sal_uInt16 len; sal_uInt16 unicode char[len])*num of strings
++	}
++
++}
+ 
+ /* vi:set tabstop=4 shiftwidth=4 expandtab: */
+diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx
+index 177007c..6415871 100644
+--- sw/source/filter/ww8/wrtww8.hxx
++++ sw/source/filter/ww8/wrtww8.hxx
+@@ -678,6 +678,7 @@ public:
+     static void WriteString8(SvStream& rStrm, const String& rStr,
+         bool bAddZero, rtl_TextEncoding eCodeSet);
+ 
++	static void WriteString_xstz(SvStream& rStrm, const String& rStr, bool bAddZero);
+ #if 1
+     //Prefer ww::bytes to WW8Bytes, migrate away from the other ones.
+     static void InsUInt16(ww::bytes &rO, sal_uInt16 n);
+@@ -734,6 +735,8 @@ public:
+     void AddLinkTarget(const String& rURL);
+     void CollectOutlineBookmarks(const SwDoc &rDoc);
+     void AddBookmark(String sBkmkName);
++
++	void WriteFormData(SwFieldBookmark &rFieldmark);
+ private:
+     //No copying
+     SwWW8Writer(const SwWW8Writer&);
+diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
+index b902c49..d94b2e1 100644
+--- sw/source/filter/ww8/ww8par.cxx
++++ sw/source/filter/ww8/ww8par.cxx
+@@ -286,6 +286,8 @@
+ #   include <svtools/itemiter.hxx>  //SfxItemIter
+ #endif
+ 
++#include <stdio.h>
++
+ #define MM_250 1417             // WW-Default fuer Hor. Seitenraender: 2.5 cm
+ #define MM_200 1134             // WW-Default fuer u.Seitenrand: 2.0 cm
+ 
+@@ -1616,6 +1618,12 @@ void SwWW8ImplReader::ImportDop()
+         }
+     }
+ 
++    const SvtFilterOptions* pOpt = SvtFilterOptions::Get();
++    sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields());
++    if (bUseEnhFields) {
++	rDoc.set(IDocumentSettingAccess::PROTECT_FORM, pWDop->fProtEnabled );
++    }
++
+     maTracer.LeaveEnvironment(sw::log::eDocumentProperties);
+ }
+ 
+@@ -1722,6 +1730,7 @@ WW8ReaderSave::WW8ReaderSave(SwWW8ImplReader* pRdr ,WW8_CP nStartCp) :
+     maOldApos.push_back(false);
+     maOldApos.swap(pRdr->maApos);
+     maOldFieldStack.swap(pRdr->maFieldStack);
++	maFieldCtxStack.swap(pRdr->maNewFieldCtxStack);
+ }
+ 
+ void WW8ReaderSave::Restore( SwWW8ImplReader* pRdr )
+@@ -1768,6 +1777,7 @@ void WW8ReaderSave::Restore( SwWW8ImplReader* pRdr )
+         pRdr->pPlcxMan->RestoreAllPLCFx(maPLCFxSave);
+     pRdr->maApos.swap(maOldApos);
+     pRdr->maFieldStack.swap(maOldFieldStack);
++	pRdr->maNewFieldCtxStack.swap(maFieldCtxStack);
+ }
+ 
+ void SwWW8ImplReader::Read_HdFtFtnText( const SwNodeIndex* pSttIdx,
+@@ -2737,6 +2747,22 @@ bool SwWW8ImplReader::ReadChar(long nPosCp, long nCpOfs)
+         case 0x15:
+             if( !bSpec )        // Juristenparagraph
+                 cInsert = '\xa7';
++			else { //0x15 is special --> so it's our field end mark...; hmmm what about field marks not handled by us??, maybe a problem with nested fields; probably an area of bugs... [well release quick and release often....]
++				if (!maNewFieldCtxStack.empty() && pPaM!=NULL && pPaM->GetPoint()!=NULL) {
++					WW8NewFieldCtx *pFieldCtx=maNewFieldCtxStack.back();
++					maNewFieldCtxStack.pop_back();
++					SwPosition aEndPos = *pPaM->GetPoint();
++					SwPaM aFldPam( pFieldCtx->GetPtNode(), pFieldCtx->GetPtCntnt(), aEndPos.nNode, aEndPos.nContent.GetIndex());
++					SwFieldBookmark *pFieldmark=(SwFieldBookmark*)rDoc.makeBookmark(aFldPam, KeyCode(), pFieldCtx->GetBookmarkName(), String(), IDocumentBookmarkAccess::FORM_FIELDMARK_TEXT);
++					ASSERT(pFieldmark!=NULL, "hmmm; why was the bookmark not created?");
++					if (pFieldmark!=NULL) {
++						pFieldmark->SetType(0); // 0==Text
++						// set field data here...
++						pFieldCtx->SetCurrentFieldParamsTo(*pFieldmark);
++					}
++					delete pFieldCtx;
++				}
++			}
+             break;
+         case 0x9:
+             cInsert = '\x9';    // Tab
+@@ -3522,6 +3548,8 @@ bool wwSectionManager::IsNewDoc() const
+ 
+ void wwSectionManager::InsertSegments()
+ {
++    const SvtFilterOptions* pOpt = SvtFilterOptions::Get();
++    sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields());
+     mySegIter aEnd = maSegments.end();
+     mySegIter aStart = maSegments.begin();
+     for (mySegIter aIter = aStart; aIter != aEnd; ++aIter)
+@@ -3530,7 +3558,7 @@ void wwSectionManager::InsertSegments()
+ 
+         bool bInsertSection = aIter != aStart ? aIter->IsContinous() : false;
+         bool bInsertPageDesc = !bInsertSection;
+-        bool bProtected = SectionIsProtected(*aIter);
++        bool bProtected = !bUseEnhFields && SectionIsProtected(*aIter); // do we really  need this ?? I guess I have a different logic in editshell which disales this...
+ 
+         if (bInsertPageDesc)
+         {
+diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
+index 5748ff8..cb1124a 100644
+--- sw/source/filter/ww8/ww8par.hxx
++++ sw/source/filter/ww8/ww8par.hxx
+@@ -390,6 +390,32 @@ public:
+     void Swap(FieldEntry &rOther) throw();
+ };
+ 
++class WW8NewFieldCtx
++{
++private:
++	SwNodeIndex maPtNode;
++    xub_StrLen mnPtCntnt;
++	::rtl::OUString sBookmarkName;
++	::rtl::OUString sBookmarkType;
++	typedef ::std::pair< ::rtl::OUString, ::rtl::OUString> Param_t;
++	typedef ::std::vector< Param_t > Params_t;
++	Params_t maParams;
++  SwPaM * mpPaM;
++
++public:
++	WW8NewFieldCtx(SwPosition &aStartPos, ::rtl::OUString sBookmarkName, ::rtl::OUString sBookmarkType);
++	~WW8NewFieldCtx();
++
++	SwNodeIndex GetPtNode() { return maPtNode; };
++	xub_StrLen GetPtCntnt() { return mnPtCntnt; };
++	::rtl::OUString GetBookmarkName();
++	::rtl::OUString GetBookmarkType();
++	void AddParam(::rtl::OUString name, ::rtl::OUString value);
++	void SetCurrentFieldParamsTo(SwFieldBookmark &rFieldBookmark);
++
++};
++
++
+ //-----------------------------------------
+ //    Mini-Merker fuer einige Flags
+ //-----------------------------------------
+@@ -422,6 +448,7 @@ private:
+     bool mbWasParaEnd;
+     bool mbHasBorder;
+     bool mbFirstPara;
++	std::deque<WW8NewFieldCtx *> maFieldCtxStack;
+ public:
+     WW8ReaderSave(SwWW8ImplReader* pRdr, WW8_CP nStart=-1);
+     void Restore(SwWW8ImplReader* pRdr);
+@@ -876,6 +903,9 @@ private:
+     std::deque<FieldEntry> maFieldStack;
+     typedef std::deque<FieldEntry>::const_iterator mycFieldIter;
+ 
++	typedef std::deque<WW8NewFieldCtx *> WW8NewFieldCtxStack_t;
++	WW8NewFieldCtxStack_t maNewFieldCtxStack;
++
+     /*
+     A stack of open footnotes. Should only be one in it at any time.
+     */
+diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx
+index 9bfd62e..5c0a897 100644
+--- sw/source/filter/ww8/ww8par3.cxx
++++ sw/source/filter/ww8/ww8par3.cxx
+@@ -221,9 +221,58 @@
+ #include "ww8par2.hxx"  // wg. Listen-Attributen in Styles
+ #endif
+ 
++#include <bookmrk.hxx>	
++#include <svtools/fltrcfg.hxx>
++
++#include <stdio.h>
++
+ using namespace com::sun::star;
+ using namespace sw::util;
+ using namespace sw::types;
++
++WW8NewFieldCtx::WW8NewFieldCtx(SwPosition &aStartPos, ::rtl::OUString sBookmarkName, ::rtl::OUString sBookmarkType)
++: maPtNode(aStartPos.nNode), mnPtCntnt(aStartPos.nContent.GetIndex()), 
++  sBookmarkName(sBookmarkName),
++  sBookmarkType(sBookmarkType), mpPaM(NULL)
++{
++}
++
++
++WW8NewFieldCtx::~WW8NewFieldCtx()
++{
++	if (mpPaM) delete mpPaM;
++}
++
++::rtl::OUString WW8NewFieldCtx::GetBookmarkName()
++{
++	return sBookmarkName;
++}
++
++::rtl::OUString WW8NewFieldCtx::GetBookmarkType()
++{
++	return sBookmarkType;
++}
++
++void WW8NewFieldCtx::AddParam(::rtl::OUString name, ::rtl::OUString value)
++{
++	maParams.push_back( Param_t(name, value) );
++}
++
++void WW8NewFieldCtx::SetCurrentFieldParamsTo(SwFieldBookmark &rFieldBookmark)
++{
++	for(Params_t::iterator i=maParams.begin();i!=maParams.end();i++) {
++		::rtl::OUString aName=i->first;
++		::rtl::OUString aValue=i->second;
++		if (aName.compareToAscii("Description")==0) {
++			rFieldBookmark.SetFFHelpText(aValue);
++		} else if (aName.compareToAscii("Name")==0) {
++			rFieldBookmark.SetFFName(aValue);
++		} else if (aName.compareToAscii("Result")==0) {
++			rFieldBookmark.SetFFRes( aValue.toInt32() );
++		}
++	}
++}
++
+ //-----------------------------------------
+ //            UNO-Controls
+ //-----------------------------------------
+@@ -241,8 +290,9 @@ eF_ResT SwWW8ImplReader::Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr )
+ {
+     WW8FormulaEditBox aFormula(*this);
+ 
+-    if (0x01 == rStr.GetChar(writer_cast<xub_StrLen>(pF->nLCode-1)))
++    if (0x01 == rStr.GetChar(writer_cast<xub_StrLen>(pF->nLCode-1))) {
+         ImportFormulaControl(aFormula,pF->nSCode+pF->nLCode-1, WW8_CT_EDIT);
++    }
+ 
+     /* #80205#
+     Here we have a small complication. This formula control contains
+@@ -254,23 +304,58 @@ eF_ResT SwWW8ImplReader::Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr )
+     the field result into the formula here in place of the default
+     text.
+     */
+-    aFormula.sDefault = GetFieldResult(pF);
+ 
+-    //substituting Unicode spacing 0x2002 with double space for layout
+-#if 0
+-    aFormula.sDefault.SearchAndReplaceAll(
+-        String(static_cast< sal_Unicode >(0x2002)),
+-        CREATE_CONST_ASC("  "));
+-#endif
++    const SvtFilterOptions* pOpt = SvtFilterOptions::Get();
++    sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields());
+ 
+-    SwInputField aFld((SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ),
+-        aFormula.sDefault , aFormula.sTitle , INP_TXT, 0 );
+-    aFld.SetHelp(aFormula.sHelp);
+-    aFld.SetToolTip(aFormula.sToolTip);
++    if (!bUseEnhFields) {
++	aFormula.sDefault = GetFieldResult(pF);
+ 
+-    rDoc.Insert(*pPaM, SwFmtFld(aFld), 0);
++#if 0 // why not? (flr)
++    //substituting Unicode spacing 0x2002 with double space for layout
++	aFormula.sDefault.SearchAndReplaceAll(
++	    String(static_cast< sal_Unicode >(0x2002)),
++	    CREATE_CONST_ASC("  "));
++#endif
+ 
+-    return FLD_OK;
++	SwInputField aFld((SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ),
++			  aFormula.sDefault , aFormula.sTitle , INP_TXT, 0 );
++	aFld.SetHelp(aFormula.sHelp);
++	aFld.SetToolTip(aFormula.sToolTip);
++
++	rDoc.Insert(*pPaM, SwFmtFld(aFld), 0); 
++	return FLD_OK;
++    } else {
++	WW8PLCFx_Book* pB = pPlcxMan->GetBook();
++	String aBookmarkName;
++	if (pB!=NULL) {
++		WW8_CP currentCP=pF->nSCode;
++		WW8_CP currentLen=pF->nLen;
++
++		USHORT bkmFindIdx;
++		String aBookmarkFind=pB->GetBookmark(currentCP-1, currentCP+currentLen-1, bkmFindIdx);
++
++		if (aBookmarkFind.Len()>0) { 
++			pB->SetStatus(bkmFindIdx, BOOK_FIELD); // mark bookmark as consumed, such that tl'll not get inserted as a "normal" bookmark again
++			if (aBookmarkFind.Len()>0) {
++				aBookmarkName=aBookmarkFind;
++			}
++		}
++	}
++
++	if (pB!=NULL && aBookmarkName.Len()==0) {
++		aBookmarkName=pB->GetUniqueBookmarkName(aFormula.sTitle);
++	}
++
++
++	if (aBookmarkName.Len()>0) {
++		WW8NewFieldCtx *pFieldCtx=new WW8NewFieldCtx(*pPaM->GetPoint(), aBookmarkName, ::rtl::OUString::createFromAscii("ecma.office-open-xml.field.FORMTEXT"));
++		maNewFieldCtxStack.push_back(pFieldCtx);
++		pFieldCtx->AddParam(::rtl::OUString::createFromAscii("Description"), aFormula.sToolTip);
++		pFieldCtx->AddParam(::rtl::OUString::createFromAscii("Name"), aFormula.sTitle);
++	}
++	return FLD_TEXT;
++    }
+ }
+ 
+ eF_ResT SwWW8ImplReader::Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr )
+@@ -282,9 +367,47 @@ eF_ResT SwWW8ImplReader::Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr )
+ 
+     if (0x01 == rStr.GetChar(writer_cast<xub_StrLen>(pF->nLCode-1)))
+         ImportFormulaControl(aFormula,pF->nSCode+pF->nLCode-1, WW8_CT_CHECKBOX);
+-
+-    pFormImpl->InsertFormula(aFormula);
+-    return FLD_OK;
++    const SvtFilterOptions* pOpt = SvtFilterOptions::Get();
++    sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields());
++
++    if (!bUseEnhFields) {
++	pFormImpl->InsertFormula(aFormula); 
++	return FLD_OK;
++    } else {
++	String aBookmarkName;
++	WW8PLCFx_Book* pB = pPlcxMan->GetBook();
++	if (pB!=NULL) {
++		WW8_CP currentCP=pF->nSCode;
++		WW8_CP currentLen=pF->nLen;
++
++		USHORT bkmFindIdx;
++		String aBookmarkFind=pB->GetBookmark(currentCP-1, currentCP+currentLen-1, bkmFindIdx);
++
++		if (aBookmarkFind.Len()>0) { 
++			pB->SetStatus(bkmFindIdx, BOOK_FIELD); // mark as consumed by field
++			if (aBookmarkFind.Len()>0) {
++				aBookmarkName=aBookmarkFind;
++			}
++		}
++	}
++
++	if (pB!=NULL && aBookmarkName.Len()==0) {
++		aBookmarkName=pB->GetUniqueBookmarkName(aFormula.sTitle);
++	}
++
++	if (aBookmarkName.Len()>0) {
++		SwFieldBookmark *pFieldmark=(SwFieldBookmark*)rDoc.makeBookmark(*pPaM, KeyCode(), aBookmarkName, String(), IDocumentBookmarkAccess::FORM_FIELDMARK_NO_TEXT);
++		ASSERT(pFieldmark!=NULL, "hmmm; why was the bookmark not created?");
++		if (pFieldmark!=NULL) {
++			pFieldmark->SetType(1); // 0==Checkbox
++			pFieldmark->SetFFName(aFormula.sTitle);
++			pFieldmark->SetFFHelpText(aFormula.sToolTip);
++			pFieldmark->SetChecked(aFormula.nChecked!=0);
++			// set field data here...
++		}
++	}
++	return FLD_OK;
++    }
+ }
+ 
+ eF_ResT SwWW8ImplReader::Read_F_FormListBox( WW8FieldDesc* pF, String& rStr)
+@@ -2041,6 +2164,10 @@ bool SwWW8ImplReader::ImportFormulaControl(WW8FormulaControl &aFormula,
+     if((aPic.lcb > 0x3A) && !pDataStream->GetError() )
+     {
+         pDataStream->Seek( nPicLocFc + aPic.cbHeader );
++		int len=aPic.lcb-aPic.cbHeader;
++		char *pBuf=(char*)malloc(len);
++		pDataStream->Read( pBuf, len);
++        pDataStream->Seek( nPicLocFc + aPic.cbHeader );
+         aFormula.FormulaRead(nWhich,pDataStream);
+         bRet = true;
+     }
+diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
+index 405d291..6877159 100644
+--- sw/source/filter/ww8/ww8par5.cxx
++++ sw/source/filter/ww8/ww8par5.cxx
+@@ -422,7 +422,7 @@ long SwWW8ImplReader::Read_Book(WW8PLCFManResult*)
+     if (pB->GetIsEnd())
+     {
+         pReffedStck->SetAttr(*pPaM->GetPoint(), RES_FLTR_BOOKMARK, true,
+-            pB->GetHandle());
++            pB->GetHandle(), (eB & BOOK_FIELD)!=0);
+         return 0;
+     }
+ 
+diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
+index a10fd30..3e982c5 100644
+--- sw/source/filter/ww8/ww8scan.cxx
++++ sw/source/filter/ww8/ww8scan.cxx
+@@ -3954,7 +3954,7 @@ void WW8ReadSTTBF(bool bVer8, SvStream& rStrm, UINT32 nStart, INT32 nLen,
+ }
+ 
+ WW8PLCFx_Book::WW8PLCFx_Book(SvStream* pTblSt, const WW8Fib& rFib)
+-    : WW8PLCFx(rFib.GetFIBVersion(), false), pStatus(0), nIsEnd(0)
++    : WW8PLCFx(rFib.GetFIBVersion(), false), pStatus(0), nIsEnd(0), nBookmarkId(1)
+ {
+     if( !rFib.fcPlcfbkf || !rFib.lcbPlcfbkf || !rFib.fcPlcfbkl ||
+         !rFib.lcbPlcfbkl || !rFib.fcSttbfbkmk || !rFib.lcbSttbfbkmk )
+@@ -4165,6 +4165,26 @@ String WW8PLCFx_Book::GetBookmark(long nStart,long nEnd, USHORT &nIndex)
+     return bFound ? aBookNames[i] : aEmptyStr;
+ }
+ 
++String WW8PLCFx_Book::GetUniqueBookmarkName(String &suggestedName)
++{
++	String aRet=(suggestedName.Len()==0?String::CreateFromAscii("Unnamed"):suggestedName);
++	int i=0;
++	while(i<aBookNames.size()) {
++		String &s=aBookNames[i];
++		if (aRet.CompareTo(s)==0) {
++			int len=aRet.Len();
++			int p=len-1;
++			while(p>0 && aRet.GetChar(p)>='0' && aRet.GetChar(p)<='9') p--;
++			aRet=String(aRet, 0, p+1);
++			aRet += String::CreateFromInt32( nBookmarkId++ );
++			i=0; // start search from beginning
++		} else {
++			i++;
++		}
++	}
++	return aRet;
++}
++
+ bool WW8PLCFx_Book::MapName(String& rName)
+ {
+     if( !pBook[0] || !pBook[1] )
+diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
+index a6a15c7..69d5303 100644
+--- sw/source/filter/ww8/ww8scan.hxx
++++ sw/source/filter/ww8/ww8scan.hxx
+@@ -732,7 +732,7 @@ public:
+     bool GetPara(long nIdx, WW8FieldDesc& rF);
+ };
+ 
+-enum eBookStatus { BOOK_NORMAL = 0, BOOK_IGNORE = 0x1 };
++enum eBookStatus { BOOK_NORMAL = 0, BOOK_IGNORE = 0x1, BOOK_FIELD = 0x2 };
+ 
+ // Iterator for Booknotes
+ class WW8PLCFx_Book : public WW8PLCFx
+@@ -743,6 +743,7 @@ private:
+     eBookStatus* pStatus;
+     long nIMax;                         // Number of Booknotes
+     USHORT nIsEnd;
++	int nBookmarkId; // counter incremented by GetUniqueBookmarkName.
+     
+     //No copying
+     WW8PLCFx_Book(const WW8PLCFx_Book&);
+@@ -769,6 +770,7 @@ public:
+     bool MapName(String& rName);
+     String GetBookmark(long nStart,long nEnd, USHORT &nIndex);
+     eBookStatus GetStatus() const;
++	String GetUniqueBookmarkName(String &suggestedName);
+ };
+ 
+ /*
+diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
+index 382eff6..d8eebb6 100644
+--- sw/source/ui/docvw/edtwin.cxx
++++ sw/source/ui/docvw/edtwin.cxx
+@@ -325,6 +325,9 @@
+ #include <vcl/svapp.hxx>
+ #endif
+ 
++#include <bookmrk.hxx>
++#include <doc.hxx>
++
+ //JP 11.10.2001: enable test code for bug fix 91313
+ #if !defined( PRODUCT ) && (OSL_DEBUG_LEVEL > 1)
+ //#define TEST_FOR_BUG91313
+@@ -1583,6 +1586,10 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt)
+                        KS_Fly_Change, KS_Draw_Change,
+                        KS_SpecialInsert,
+                        KS_EnterCharCell,
++
++		       KS_GotoNextFieldBookmark,
++		       KS_GotoPrevFieldBookmark,
++
+                        KS_Ende };
+ 
+ 	SW_KeyState eKeyState = bIsDocReadOnly ? KS_CheckDocReadOnlyKeys
+@@ -1997,10 +2004,15 @@ KEYINPUT_CHECKTABLE_INSDEL:
+ 					}
+                 case KEY_TAB:
+ 				{
++				    sal_Unicode ch=rSh.GetChar();
++
+ #ifdef SW_CRSR_TIMER
+ 					BOOL bOld = rSh.ChgCrsrTimerFlag( FALSE );
+ #endif
+-					if( rSh.GetCurNumRule() && rSh.IsSttOfPara() &&
++					if (rSh.IsFormProtected() || rSh.IsInFieldBookmark()!=NULL || rSh.GetChar(FALSE)==CH_TXT_ATR_FORMELEMENT) {
++					    eKeyState=KS_GotoNextFieldBookmark; 
++					}
++					else if( rSh.GetCurNumRule() && rSh.IsSttOfPara() &&
+ 						!rSh.HasReadonlySel() )
+                     {
+                         // --> OD 2007-10-02 #b660435#
+@@ -2049,8 +2061,11 @@ KEYINPUT_CHECKTABLE_INSDEL:
+ #ifdef SW_CRSR_TIMER
+ 					BOOL bOld = rSh.ChgCrsrTimerFlag( FALSE );
+ #endif
+-					if( rSh.GetCurNumRule() && rSh.IsSttOfPara() &&
+-						!rSh.HasReadonlySel() )
++					if (rSh.IsFormProtected() || rSh.IsInFieldBookmark()!=NULL || rSh.GetChar(FALSE)==CH_TXT_ATR_FORMELEMENT) {
++					    eKeyState=KS_GotoPrevFieldBookmark; 
++					}
++					else if( rSh.GetCurNumRule() && rSh.IsSttOfPara() &&
++						 !rSh.HasReadonlySel() )
+                     {
+                         // --> OD 2007-10-02 #b660435#
+ //                        if (rSh.IsFirstOfNumRule()) // #i23725#
+@@ -2297,7 +2312,29 @@ KEYINPUT_CHECKTABLE_INSDEL:
+ 			aCh = '\t';
+ 			// kein break!
+ 		case KS_InsChar:
+-		if( !rSh.HasReadonlySel() )
++		if (rSh.GetChar(FALSE)==CH_TXT_ATR_FORMELEMENT) {
++		    SwFieldBookmark *fieldBM=rSh.IsInFormFieldBookmark(); //$flr refactor!!!
++   		    ASSERT(fieldBM!=NULL, "Where is my FieldBookmark??");
++		    if (fieldBM!=NULL) {
++			fieldBM->SetChecked(!fieldBM->IsChecked());
++			SwDocShell* pDocSh = rView.GetDocShell();
++			SwDoc *pDoc=pDocSh->GetDoc();
++			ASSERT(fieldBM->GetOtherPos()!=NULL, "where is the otherpos?");
++			if (fieldBM->GetOtherPos()!=NULL) {
++			    SwPaM aPaM(fieldBM->GetPos(), *fieldBM->GetOtherPos());
++			    if (0) {
++				rSh.StartAllAction();  //$flr TODO: understand why this not works
++				pDoc->SetModified(aPaM);
++				rSh.EndAllAction();
++			    } else {
++				rSh.CalcLayout(); // workaround
++			    }
++			}
++			
++		    }
++//		    rSh.Overwrite(String('X'));
++		    eKeyState = KS_Ende;
++		} else if( !rSh.HasReadonlySel() )
+ 		{
+ 			BOOL bIsNormalChar = GetAppCharClass().isLetterNumeric(
+ 														String( aCh ), 0 );
+@@ -2406,6 +2443,24 @@ KEYINPUT_CHECKTABLE_INSDEL:
+                 nKS_NUMINDENTINC_Count = 2;
+                 break;
+ 
++	    case KS_GotoNextFieldBookmark:	    
++	    {
++		SwBookmark *pBM=rSh.GetNextFieldBookmark();
++		if (pBM!=NULL) {
++		    rSh.GotoFieldBookmark(pBM);
++		}
++	    }
++	        break;
++
++	    case KS_GotoPrevFieldBookmark:	    
++	    {
++		SwBookmark *pBM=rSh.GetPrevFieldBookmark();
++		if (pBM!=NULL) {
++		    rSh.GotoFieldBookmark(pBM);
++		}
++	    }
++	        break;
++
+             case KS_NumIndentDec:
+                 rSh.NumIndent(-360);
+                 break;
+@@ -4188,7 +4243,8 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
+ 
+                         SwContentAtPos aCntntAtPos( SwContentAtPos::SW_CLICKFIELD |
+ 													SwContentAtPos::SW_INETATTR |
+-                                                    SwContentAtPos::SW_SMARTTAG );
++                                                    SwContentAtPos::SW_SMARTTAG |
++			    SwContentAtPos::SW_FORMCTRL);
+ 
+ 						if( rSh.GetContentAtPos( aDocPt, aCntntAtPos, TRUE ) )
+ 						{
+@@ -4209,7 +4265,16 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
+                                     if ( bExecSmarttags && SwSmartTagMgr::Get().IsSmartTagsEnabled() )
+                                         rView.ExecSmartTagPopup( aDocPt );
+                             }
+-							else // if ( SwContentAtPos::SW_INETATTR == aCntntAtPos.eCntntAtPos )
++                            else if ( SwContentAtPos::SW_FORMCTRL == aCntntAtPos.eCntntAtPos )
++                            {
++				ASSERT( aCntntAtPos.aFnd.pFldBookmark!=NULL, "where is my field ptr???");
++				if ( aCntntAtPos.aFnd.pFldBookmark!=NULL) {
++				    SwFieldBookmark *fieldBM=const_cast<SwFieldBookmark *>(aCntntAtPos.aFnd.pFldBookmark);
++				    fieldBM->SetChecked(!fieldBM->IsChecked());
++				    rSh.CalcLayout(); // workaround; is there a better way to update/invalidate???
++				}
++			    }
++			    else // if ( SwContentAtPos::SW_INETATTR == aCntntAtPos.eCntntAtPos )
+ 							{
+                                 if ( bExecHyperlinks )
+                                     rSh.ClickToINetAttr( *(SwFmtINetFmt*)aCntntAtPos.aFnd.pAttr, nFilter );
+diff --git a/sw/source/ui/inc/wrtsh.hxx b/sw/source/ui/inc/wrtsh.hxx
+index f20d199..c51f15b 100644
+--- sw/source/ui/inc/wrtsh.hxx
++++ sw/source/ui/inc/wrtsh.hxx
+@@ -429,6 +429,8 @@ typedef BOOL (SwWrtShell:: *FNSimpleMove)();
+ 	BOOL GoNextBookmark(); // TRUE, wenn's noch eine gab
+ 	BOOL GoPrevBookmark();
+ 
++        bool GotoFieldBookmark(SwBookmark *pBkmk);
++
+ 	// jump to the next / previous hyperlink - inside text and also
+ 	// on graphics
+ 	BOOL SelectNextPrevHyperlink( BOOL bNext = TRUE );
+diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
+index 70c570e..661cc1b 100644
+--- sw/source/ui/uno/SwXDocumentSettings.cxx
++++ sw/source/ui/uno/SwXDocumentSettings.cxx
+@@ -160,7 +160,8 @@ enum SwDocumentSettingsPropertyHandles
+     HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES,
+     HANDLE_UNIX_FORCE_ZERO_EXT_LEADING,
+     HANDLE_USE_OLD_PRINTER_METRICS,
+-    HANDLE_TABS_RELATIVE_TO_INDENT
++    HANDLE_TABS_RELATIVE_TO_INDENT,
++    HANDLE_PROTECT_FORM
+ };
+ 
+ MasterPropertySetInfo * lcl_createSettingsInfo()
+@@ -211,6 +212,7 @@ MasterPropertySetInfo * lcl_createSettingsInfo()
+         { RTL_CONSTASCII_STRINGPARAM("UnxForceZeroExtLeading"), HANDLE_UNIX_FORCE_ZERO_EXT_LEADING, CPPUTYPE_BOOLEAN, 0, 0},
+         { RTL_CONSTASCII_STRINGPARAM("UseOldPrinterMetrics"), HANDLE_USE_OLD_PRINTER_METRICS, CPPUTYPE_BOOLEAN, 0, 0},
+         { RTL_CONSTASCII_STRINGPARAM("TabsRelativeToIndent"), HANDLE_TABS_RELATIVE_TO_INDENT, CPPUTYPE_BOOLEAN, 0, 0},
++        { RTL_CONSTASCII_STRINGPARAM("ProtectForm"), HANDLE_PROTECT_FORM, CPPUTYPE_BOOLEAN, 0, 0},
+ 
+ /*
+  * As OS said, we don't have a view when we need to set this, so I have to
+@@ -691,6 +693,12 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
+             mpDoc->set(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT, bTmp);
+         }
+         break;
++        case HANDLE_PROTECT_FORM:
++        {
++            sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
++            mpDoc->set(IDocumentSettingAccess::PROTECT_FORM, bTmp);
++        }
++        break;
+         default:
+ 			throw UnknownPropertyException();
+ 	}
+@@ -990,6 +998,12 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf
+             rValue.setValue( &bTmp, ::getBooleanCppuType() );
+         }
+         break;
++        case HANDLE_PROTECT_FORM:
++        {
++            sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::PROTECT_FORM);
++            rValue.setValue( &bTmp, ::getBooleanCppuType() );
++        }
++        break;
+ 
+         default:
+ 			throw UnknownPropertyException();
+diff --git a/sw/source/ui/wrtsh/wrtsh3.cxx b/sw/source/ui/wrtsh/wrtsh3.cxx
+index dde13db..2825119 100644
+--- sw/source/ui/wrtsh/wrtsh3.cxx
++++ sw/source/ui/wrtsh/wrtsh3.cxx
+@@ -117,6 +117,24 @@ BOOL SwWrtShell::MoveBookMark(  BookMarkMove eFuncId,
+ }
+ 
+ 
++bool SwWrtShell::GotoFieldBookmark(SwBookmark *pBkmk)
++{
++   (this->*fnKillSel)( 0, sal_False );
++
++    bool bRet = SwCrsrShell::GotoFieldBookmark(pBkmk);
++    if( bRet && IsSelFrmMode() )
++    {
++        UnSelectFrm();
++        LeaveSelFrmMode();
++    }
++    if( IsSelection() )
++    {
++        fnKillSel = &SwWrtShell::ResetSelect;
++        fnSetCrsr = &SwWrtShell::SetCrsrKillSel;
++    }
++    return bRet;
++}
++
+ /*--------------------------------------------------------------------
+     Beschreibung: FontWork-Slots invalidieren
+  --------------------------------------------------------------------*/
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/webdav-locking-can-have-username.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/webdav-locking-can-have-username.diff
@@ -0,0 +1,95 @@
+diff --git tools/source/fsys/urlobj.cxx tools/source/fsys/urlobj.cxx
+index b5a51f9..c4e37c4 100644
+--- tools/source/fsys/urlobj.cxx
++++ tools/source/fsys/urlobj.cxx
+@@ -404,21 +404,21 @@ static INetURLObject::SchemeInfo const aSchemeInfoMap[INET_PROT_END]
+ 		  false },
+ 		{ "ftp", "ftp://", 21, true, true, false, true, true, true, true,
+ 		  false },
+-		{ "http", "http://", 80, true, false, false, false, true, true,
++		{ "http", "http://", 80, true, true, false, true, true, true,
+ 		  true, true },
+ 		{ "file", "file://", 0, true, false, false, false, true, false,
+ 		  true, false },
+ 		{ "mailto", "mailto:", 0, false, false, false, false, false,
+ 		  false, false, true },
+-		{ "vnd.sun.star.webdav", "vnd.sun.star.webdav://", 80, true, false,
+-		  false, false, true, true, true, true },
++		{ "vnd.sun.star.webdav", "vnd.sun.star.webdav://", 80, true, true,
++		  false, true, true, true, true, true },
+ 		{ "news", "news:", 0, false, false, false, false, false, false, false,
+           false },
+ 		{ "private", "private:", 0, false, false, false, false, false,
+ 		  false, false, true },
+ 		{ "vnd.sun.star.help", "vnd.sun.star.help://", 0, true, false, false,
+ 		  false, false, false, true, true },
+-		{ "https", "https://", 443, true, false, false, false, true, true,
++		{ "https", "https://", 443, true, true, false, true, true, true,
+ 		  true, true },
+ 		{ "slot", "slot:", 0, false, false, false, false, false, false,
+ 		  false, true },
+@@ -464,13 +464,13 @@ static INetURLObject::SchemeInfo const aSchemeInfoMap[INET_PROT_END]
+           false, false, false, true, false },
+         { "smb", "smb://", 139, true, true, false, true, true, true, true,
+           true },
+-        { "dav", "dav://", 80, true, false, false, false, true, true, true,
++        { "dav", "dav://", 80, true, true, false, true, true, true, true,
+           true },
+-        { "davs", "davs://", 443, true, false, false, false, true, true,
++        { "davs", "davs://", 443, true, true, false, true, true, true,
+           true, true },
+-        { "webdav", "webdav://", 80, true, false, false, false, true, true, true,
++        { "webdav", "webdav://", 80, true, true, false, true, true, true, true,
+           true },
+-        { "webdavs", "webdavs://", 443, true, false, false, false, true, true,
++        { "webdavs", "webdavs://", 443, true, true, false, true, true, true,
+           true, true },
+         { "", "", 0, false, false, false, false, false, false, false, false },
+         { "", "", 0, false, false, false, false, false, false, true, false }
+diff --git ucb/source/ucp/webdav/NeonSession.cxx ucb/source/ucp/webdav/NeonSession.cxx
+index 3f99123..cb5845c 100644
+--- ucb/source/ucp/webdav/NeonSession.cxx
++++ ucb/source/ucp/webdav/NeonSession.cxx
+@@ -365,11 +365,10 @@ extern "C" int NeonSession_NeonAuth( void *       inUserData,
+ 
+         try
+         {
+-            NeonUri uri( theSession->getRequestEnvironment().m_aRequestURI );
+-            rtl::OUString aUserInfo( uri.GetUserInfo() );
++            rtl::OUString aUserInfo( theSession->getUserInfo() );
+             if ( aUserInfo.getLength() )
+             {
+-                sal_Int32 nPos = aUserInfo.indexOf( '@' );
++                sal_Int32 nPos = aUserInfo.indexOf( ':' );
+                 if ( nPos == -1 )
+                 {
+                     theUserName = aUserInfo;
+@@ -648,6 +647,7 @@ NeonSession::NeonSession(
+     m_aScheme    = theUri.GetScheme();
+     m_aHostName  = theUri.GetHost();
+     m_nPort      = theUri.GetPort();
++    m_aUserInfo  = theUri.GetUserInfo();
+ 
+ //   Init();
+ }
+diff --git ucb/source/ucp/webdav/NeonSession.hxx ucb/source/ucp/webdav/NeonSession.hxx
+index 7099da1..5a62a81 100644
+--- ucb/source/ucp/webdav/NeonSession.hxx
++++ ucb/source/ucp/webdav/NeonSession.hxx
+@@ -71,6 +71,7 @@ class NeonSession : public DAVSession
+         rtl::OUString     m_aScheme;
+         rtl::OUString     m_aHostName;
+         rtl::OUString     m_aProxyName;
++        rtl::OUString     m_aUserInfo;
+         sal_Int32         m_nPort;
+         sal_Int32         m_nProxyPort;
+         HttpSession *     m_pHttpSession;
+@@ -105,6 +106,8 @@ class NeonSession : public DAVSession
+         const DAVRequestEnvironment & getRequestEnvironment() const
+         { return m_aEnv; }
+ 
++        const rtl::OUString & getUserInfo() const { return m_aUserInfo; }
++
+         virtual void
+         OPTIONS( const ::rtl::OUString &  inPath,
+                  DAVCapabilities & outCapabilities,
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/system-db-4.3-use-lpthread.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/system-db-4.3-use-lpthread.diff
@@ -0,0 +1,19 @@
+--- config_office/configure.in.ark	2007-10-19 11:27:12.000000000 +0200
++++ config_office/configure.in	2007-10-19 11:28:12.000000000 +0200
+@@ -3311,11 +3311,11 @@
+     else
+        AC_MSG_RESULT([no. you need at least db 4.1])
+     fi
+-    # does not work :/
+-    #AC_CHECK_LIB(db, db_create, [],
+-    #  [AC_MSG_ERROR([db library not installed or functional])], [])
+-    AC_HAVE_LIBRARY(db, [],
+-      [AC_MSG_ERROR([db not installed or functional])], [])
++    # dnl Workaround for a db 4.x bug -- it uses pthreads without linking to
++    # the lib
++    LIBS="$LIBS -lpthread"
++    AC_CHECK_LIB(db, db_create, [],
++      [AC_MSG_ERROR([db library not installed or functional])], [])
+     SCPDEFS="$SCPDEFS -DSYSTEM_DB"
+ else
+     AC_MSG_RESULT([internal])
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-font-aasize.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-font-aasize.diff
@@ -0,0 +1,16 @@
+Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
+===================================================================
+RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
+retrieving revision 1.99
+diff -u -r1.99 Common.xcs
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs	8 Sep 2004 16:01:25 -0000	1.99
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	14 Oct 2004 16:23:24 -0000
+@@ -2646,7 +2646,7 @@
+ 						<desc>Specifies an additional limit if Font Antialiasing is enabled. Fonts that are smaller than the specified limit are not anti-aliased.</desc>
+ 						<label>Font Antialiasing Minimum Pixel Height</label>
+ 					</info>
+-					<value>8</value>
++					<value>1</value>
+ 				</prop>
+ 			</group>
+ 		</group>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-dynamic-screens-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-dynamic-screens-fix.diff
@@ -0,0 +1,146 @@
+--- config_office/configure.in.before	2008-04-28 10:31:26.000000000 +0200
++++ config_office/configure.in	2008-04-28 10:32:01.000000000 +0200
+@@ -274,6 +274,9 @@
+ AC_ARG_ENABLE(xrender-link,
+ [  --enable-xrender-link   link with libXrender instead of dynamically open it
+ ],,)
++AC_ARG_ENABLE(randr,
++[  --disable-randr          disable RandR support in the vcl project
++],,enable_randr=yes)
+ AC_ARG_WITH(myspell-dicts,
+ [  --without-myspell-dicts Removes myspell dictionaries from openoffice.org
+                           installation set, for people building for specific
+@@ -838,6 +841,7 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=yes
++        test_randr=yes
+ 		_os=SunOS
+ 
+ 		dnl ===========================================================
+@@ -865,6 +869,7 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=yes
++        test_randr=yes
+ 		if getconf GNU_LIBPTHREAD_VERSION |grep -q NPTL; then
+ 			PTHREAD_CFLAGS="-DNPTL"
+ 		fi
+@@ -884,6 +889,7 @@
+ 		test_gtk=yes
+ 		build_cairo=no
+ 		build_gstreamer=no
++        test_randr=no
+ 		_os=Darwin
+       if test "$enable_systray" = "yes" && test "$enable_gtk" != "no"; then
+          AC_MSG_WARN([Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray])
+@@ -894,6 +900,7 @@
+ 	os2*)
+ 		test_x=no
+ 		test_cups=no
++        test_randr=no
+ 		test_gtk=no
+ 		_os=OS2
+ 		;;
+@@ -903,6 +910,7 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=yes
++        test_randr=yes
+ 		AC_MSG_CHECKING([the FreeBSD operating system release])
+ 		if test -n "$with_os_version"; then
+ 			OSVERSION="$with_os_version"
+@@ -926,6 +934,7 @@
+ 		;;
+ 	osf)
+ 		test_cups=no
++        test_randr=no
+ 		_os=OSF1
+ 		;;
+ 	netbsd)
+@@ -934,16 +943,19 @@
+ 		build_gstreamer=yes
+ 		test_kde=yes
+ 		test_cups=no
++        test_randr=yes
+ 		PTHREAD_CFLAGS="-pthread"
+ 		PTHREAD_LIBS="-pthread -lpthread"
+ 		_os=NetBSD
+ 		;;
+ 	irix*)
+ 		test_cups=no
++        test_randr=no
+ 		_os=IRIX
+ 		;;
+ 	aix*)
+ 		test_cups=no
++        test_randr=no
+ 	   PTHREAD_LIBS=-pthread
+ 		echo "AIX is an alpha port --- Use at own risk" >> warn
+ 		_os=AIX
+@@ -1123,6 +1135,19 @@
+ AC_SUBST(ENABLE_FONTCONFIG)
+ 
+ dnl ===================================================================
++dnl Build options
++dnl ===================================================================
++AC_MSG_CHECKING([whether to enable RandR support])
++if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then
++   ENABLE_RANDR="TRUE"
++   AC_MSG_RESULT([yes])
++else
++   ENABLE_RANDR=""
++   AC_MSG_RESULT([no])
++fi
++AC_SUBST(ENABLE_RANDR)
++
++dnl ===================================================================
+ dnl Disable legacy binary file formats filters
+ dnl ===================================================================
+ AC_MSG_CHECKING([whether to enable filters for legacy binary file formats (StarOffice 5.2)])
+@@ -1915,7 +1940,15 @@
+ fi
+ 
+ dnl ===================================================================
++dnl Check if X11/extensions/Xrandr.h is available 
++dnl ===================================================================
++if test "$test_randr" = "yes" -a "$ENABLE_RANDR" = "TRUE" ; then
++    AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
++                    [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
++fi
++
++dnl ===================================================================
+ dnl Check if PAM/pam_appl.h is available on Linux or FreeBSD
+ dnl ===================================================================
+ if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "GNU"; then
+
+--- config_office/set_soenv.in.old	2008-05-26 12:32:20.000000000 +0200
++++ config_office/set_soenv.in	2008-05-26 13:45:46.000000000 +0200
+@@ -1949,6 +1949,7 @@ ToFile( "LFS_CFLAGS",        "@LFS_CFLAG
+ ToFile( "ENABLE_CRASHDUMP",  "@ENABLE_CRASHDUMP@",  "e" );
+ ToFile( "ENABLE_CUPS",       "@ENABLE_CUPS@",       "e" );
+ ToFile( "ENABLE_FONTCONFIG", "@ENABLE_FONTCONFIG@", "e" );
++ToFile( "ENABLE_RANDR",      "@ENABLE_RANDR@",      "e" );
+ ToFile( "ENABLE_DIRECTX",    "@ENABLE_DIRECTX@",    "e" );
+ ToFile( "ENABLE_LAYOUT",     "@ENABLE_LAYOUT@",     "e" );
+ ToFile( "ENABLE_PCH",        "@ENABLE_PCH@",       "e" );
+--- vcl/unx/source/app/saldisp.cxx	29 Jan 2008 16:22:34 -0000	1.93
++++ vcl/unx/source/app/saldisp.cxx	31 Mar 2008 16:44:44 -0000	1.93.16.2
+@@ -70,7 +70,7 @@
+ 
+ #ifdef USE_XINERAMA
+ #ifdef USE_XINERAMA_XORG
+-#if defined(X86) || defined(MACOSX)
++#if defined(X86) || defined(X86_64) || defined(MACOSX)
+ #include <X11/extensions/Xinerama.h>
+ #endif
+ #elif defined USE_XINERAMA_XSUN
+@@ -2688,7 +2833,7 @@ void SalDisplay::InitXinerama()
+         }
+     }
+ #elif defined(USE_XINERAMA_XORG)
+-#if defined( X86 ) || defined( MACOSX )
++#if defined(X86) || defined(X86_64) || defined(MACOSX)
+ if( XineramaIsActive( pDisp_ ) )
+ {
+     int nFramebuffers = 1;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gallery_galtheme.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gallery_galtheme.diff
@@ -0,0 +1,735 @@
+--- svx/source/gallery2/galtheme.src.orig	2007-08-10 19:17:21.000000000 +0200
++++ svx/source/gallery2/galtheme.src	2007-09-13 06:48:02.339566400 +0200
+@@ -308,42 +308,732 @@
+ 	Text = "Dummy 5";
+ };
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_SHAPES_POLYGONS
++{
++Text [ en-US ] = "Shapes - polygons";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_SHAPES_1
++{
++Text [ en-US ] = "Shapes 1";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_SHAPES_2
++{
++Text [ en-US ] = "Shapes 2";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ANIMALS
++{
++Text [ en-US ] = "Animals";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_CARS
++{
++Text [ en-US ] = "Cars";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_BUGS
++{
++Text [ en-US ] = "Bugs";
++};
++
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_CISCO_OTHER
++{
++Text [ en-US ] = "Cisco - Other";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_CISCO_MEDIA
++{
++Text [ en-US ] = "Cisco - Media";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_CISCO_PRODUCTS
++{
++Text [ en-US ] = "Cisco - Products";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_CISCO_WAN_LAN
++{
++Text [ en-US ] = "Cisco - WAN - LAN";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_DOMINO_USUAL
++{
++Text [ en-US ] = "Domino - usual";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_DOMINO_NUMBERED
++{
++Text [ en-US ] = "Domino - numbered";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_1
++{
++Text [ en-US ] = "Electronics - parts 1";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_2
++{
++Text [ en-US ] = "Electronics - parts 2";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_3
++{
++Text [ en-US ] = "Electronics - parts 3";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_4
++{
++Text [ en-US ] = "Electronics - parts 4";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ELECTRONICS_CIRCUIT
++{
++Text [ en-US ] = "Electronics - circuit";
++};
+ 
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ELECTRONICS_SIGNS
++{
++Text [ en-US ] = "Electronics - signs";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ELECTRONICS_GAUGES
++{
++Text [ en-US ] = "Electronics - gauges";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PEOPLE_1
++{
++Text [ en-US ] = "People";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ARCHITECTURE_OVERLAY
++{
++Text [ en-US ] = "Architecture - overlay";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ARCHITECTURE_FURNITURES
++{
++Text [ en-US ] = "Architecture - furnitures";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ARCHITECTURE_BUILDINGS
++{
++Text [ en-US ] = "Architecture - buildings";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_ARCHITECTURE_BATHROOM_KITCHEN
++{
++Text [ en-US ] = "Architecture - bathroom, kitchen";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ARCHITECTURE_KITCHEN
++{
++Text [ en-US ] = "Architecture - kitchen";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ARCHITECTURE_WINDOWS_DOORS
++{
++Text [ en-US ] = "Architecture - windows, doors";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_FLOWCHARTS_1
++{
++Text [ en-US ] = "Flowcharts";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_FLOWCHARTS_2
++{
++Text [ en-US ] = "Flowcharts 2";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_FORALSTUDIOA
++{
++Text [ en-US ] = "Foral-StudioA";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_FAUNA
++{
++Text [ en-US ] = "Photos - Fauna";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_BUILDINGS
++{
++Text [ en-US ] = "Photos - Buildings";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_PLANTS
++{
++Text [ en-US ] = "Photos - Plants";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_STATUES
++{
++Text [ en-US ] = "Photos - Statues";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_LANDSCAPES
++{
++Text [ en-US ] = "Photos - Landscapes";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_CITIES
++{
++Text [ en-US ] = "Photos - Cities";
++};
+ 
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_FLOWERS
++{
++Text [ en-US ] = "Photos - Flowers";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_THERAPEUTICS_GENERAL
++{
++Text [ en-US ] = "Therapeutics - general";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_WEATHER
++{
++Text [ en-US ] = "Weather";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_VECHILES
++{
++Text [ en-US ] = "Vehicles";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_SIGNS
++{
++Text [ en-US ] = "Signs";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_BLUE_MAN
++{
++Text [ en-US ] = "Blue Man";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CHEMISTRY_AMINO_ACIDS
++{
++Text [ en-US ] = "Chemistry - Amino acids";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_LOGICAL_SIGNS
++{
++Text [ en-US ] = "Logical signs";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_LOGICAL_GATES
++{
++Text [ en-US ] = "Logical gates";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_LOGOS
++{
++Text [ en-US ] = "Logos";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_SMILES
++{
++Text [ en-US ] = "Smilies";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ARROWS_1
++{
++Text [ en-US ] = "Arrows";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_01_CLOCK
++{
++Text [ en-US ] = "Clock - 01 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_02_CLOCK
++{
++Text [ en-US ] = "Clock - 02 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_03_CLOCK
++{
++Text [ en-US ] = "Clock - 03 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_04_CLOCK
++{
++Text [ en-US ] = "Clock - 04 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_05_CLOCK
++{
++Text [ en-US ] = "Clock - 05 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_06_CLOCK
++{
++Text [ en-US ] = "Clock - 06 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_07_CLOCK
++{
++Text [ en-US ] = "Clock - 07 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_08_CLOCK
++{
++Text [ en-US ] = "Clock - 08 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_09_CLOCK
++{
++Text [ en-US ] = "Clock - 09 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_10_CLOCK
++{
++Text [ en-US ] = "Clock - 10 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CLOCK_11_CLOCK
++{
++Text [ en-US ] = "Clock - 11 clock";
++};
+ 
++// ---------------------------------------------------------------------------
+ 
++String RID_GALLERYSTR_THEME_CLOCK_12_CLOCK
++{
++Text [ en-US ] = "Clock - 12 clock";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PNEUMATIC_PARTS
++{
++Text [ en-US ] = "Pneumatic - parts";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_COMPUTER_GENERAL
++{
++Text [ en-US ] = "Computer - general";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_COMPUTER_NETWORK
++{
++Text [ en-US ] = "Computer - network";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_COMPUTER_NETWORK_DEVICES
++{
++Text [ en-US ] = "Computer - network devices";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_COMPUTER_WIFI
++{
++Text [ en-US ] = "Computer - WIFI";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_NUMBERS
++{
++Text [ en-US ] = "Numbers";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_SIGNS_DANGER
++{
++Text [ en-US ] = "Signs - danger";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_OBJECTS
++{
++Text [ en-US ] = "Objects";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_AFRICA
++{
++Text [ en-US ] = "Maps - Africa";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_UNITED_STATES_OF_AMERICA
++{
++Text [ en-US ] = "Maps - United States of America";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_AUSTRALIA
++{
++Text [ en-US ] = "Maps - Australia";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_ASIA
++{
++Text [ en-US ] = "Maps - Asia";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_SOUTH_AMERICA
++{
++Text [ en-US ] = "Maps - South America";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_EUROPE
++{
++Text [ en-US ] = "Maps - Europe";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_EUROPE_1
++{
++Text [ en-US ] = "Maps - Europe 1";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_FRANCE
++{
++Text [ en-US ] = "Maps - France";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_FRANCE_COUNTRIES
++{
++Text [ en-US ] = "Maps - France - countries";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_SIGNS
++{
++Text [ en-US ] = "Maps - signs";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_CANADA
++{
++Text [ en-US ] = "Maps - Canada";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_CONTINENTS
++{
++Text [ en-US ] = "Maps - Continents";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_MIDDLE_EAST
++{
++Text [ en-US ] = "Maps - Middle East";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_MIDDLE_AMERICA
++{
++Text [ en-US ] = "Maps - Middle America";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_MIDDLE_AGES
++{
++Text [ en-US ] = "Maps - Middle ages";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_MEXICO
++{
++Text [ en-US ] = "Maps - Mexico";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_ANCIENT_TIMES
++{
++Text [ en-US ] = "Maps - Ancient times";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_SIMBOLS
++{
++Text [ en-US ] = "Maps - simbols";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_HISTORY_1900
++{
++Text [ en-US ] = "Maps - history - 1900";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MAPS_WORLD
++{
++Text [ en-US ] = "Maps - World";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_CROPS
++{
++Text [ en-US ] = "Crops";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_FRACTIONS
++{
++Text [ en-US ] = "Fractions";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_FLAGS_1
++{
++Text [ en-US ] = "Flags";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MUSIC_INSTRUMENTS
++{
++Text [ en-US ] = "Music - instruments";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_MUSIC_SHEET_MUSIC
++{
++Text [ en-US ] = "Music - sheet music";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_SPECIAL_PICTOGRAMM
++{
++Text [ en-US ] = "Special Pictogramms";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_CELEBRATION
++{
++Text [ en-US ] = "Photos - Celebration";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_FOODSANDDRINKS
++{
++Text [ en-US ] = "Photos - Foods and Drinks";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_HUMANS
++{
++Text [ en-US ] = "Photos - Humans";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_OBJECTS
++{
++Text [ en-US ] = "Photos - Objects";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_SPACE
++{
++Text [ en-US ] = "Photos - Space";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_PHOTOS_TRAVEL
++{
++Text [ en-US ] = "Photos - Travel";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_OPENOFFICEORG_LOGOS
++{
++Text [ en-US ] = "OpenOffice.org logos";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_RELIGION
++{
++Text [ en-US ] = "Religion";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_BUILDINGS
++{
++Text [ en-US ] = "Buildings";
++};
++
++// ---------------------------------------------------------------------------+
++
++String RID_GALLERYSTR_THEME_HOMEPAGE2
++{
++Text [ en-US ] = "Homepage 2";
++};
++
++// ---------------------------------------------------------------------------
++
++String RID_GALLERYSTR_THEME_ELEMENTSBULLETS2
++{
++Text [ en-US ] = "Bullets 2";
++};
+ 
++// ---------------------------------------------------------------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-svx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-svx.diff
@@ -0,0 +1,8 @@
+--- svx/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ svx/prj/tests.lst	2007-09-07 18:27:08.000000000 +0200
+@@ -0,0 +1,5 @@
++#does not build: sx   svx\qa\unoapi                                      nmake - all sx_qa_unoapi NULL
++
++# older tests:
++#does not build: sx   svx\workben                                        nmake - all sx_workben sx_util NULL
++#does not build: sx   svx\workben\msview                                 nmake - all sx_workben_msview sx_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svg-import-filter-gfxfilter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svg-import-filter-gfxfilter.diff
@@ -0,0 +1,883 @@
+diff -ur filter_orig/source/config/fragments/internalgraphicfilters/svg_Export.xcu filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu
+--- filter_orig/source/config/fragments/internalgraphicfilters/svg_Export.xcu	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu	2008-05-28 02:30:15.000000000 +0200
+@@ -8,3 +8,13 @@
+ 		</prop>
+ 		<prop oor:name="Flags"><value>EXPORT</value></prop>
+ 	</node>
++	<node oor:name="svg_Import" oor:op="replace"  >
++		<prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop>
++        <prop oor:name="FormatName"><value>svgfilter</value></prop>
++        <prop oor:name="RealFilterName"/>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="UIName">
++			<value xml:lang="en-US">SVG - Scalable Vector Graphics</value>
++		</prop>
++		<prop oor:name="Flags"><value>IMPORT</value></prop>
++	</node>
+diff -ur filter_orig/source/svg/exports.map filter/source/svg/exports.map
+--- filter_orig/source/svg/exports.map	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/svg/exports.map	2008-05-27 23:32:34.000000000 +0200
+@@ -3,6 +3,7 @@
+                 component_getImplementationEnvironment;
+                 component_getFactory;
+                 component_writeInfo;
++                GraphicImport;
+ 
+         local:
+                 *;
+diff -ur filter_orig/source/svg/makefile.mk filter/source/svg/makefile.mk
+--- filter_orig/source/svg/makefile.mk	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/svg/makefile.mk	2008-05-28 02:16:23.000000000 +0200
+@@ -78,6 +78,7 @@
+ 	$(UNOTOOLSLIB)		\
+ 	$(TOOLSLIB)			\
+ 	$(COMPHELPERLIB)	\
++	$(SVTOOLLIB)	    \
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+ 	$(SALLIB)			\
+diff -ur filter_orig/source/svg/svgfilter.cxx filter/source/svg/svgfilter.cxx
+--- filter_orig/source/svg/svgfilter.cxx	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/svg/svgfilter.cxx	2008-05-27 23:32:59.000000000 +0200
+@@ -243,3 +243,11 @@
+ {
+     return SVGFilter_getSupportedServiceNames();
+ }
++
++// -----------------------------------------------------------------------------
++
++class FilterConfigItem;
++extern "C" BOOL __LOADONCALLAPI GraphicImport(SvStream & rStream, Graphic & rGraphic, FilterConfigItem*, BOOL )
++{
++	return importSvg( rStream, rGraphic );
++}
+diff -ur filter_orig/source/svg/svgfilter.hxx filter/source/svg/svgfilter.hxx
+--- filter_orig/source/svg/svgfilter.hxx	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/svg/svgfilter.hxx	2008-05-27 23:03:42.000000000 +0200
+@@ -328,4 +328,11 @@
+ SAL_CALL SVGFilter_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
+ 	throw ( ::com::sun::star::uno::Exception );
+ 
++// -----------------------------------------------------------------------------
++
++class SvStream;
++class Graphic;
++
++bool importSvg(SvStream & rStream, Graphic & rGraphic );
++
+ #endif // SVGFILTER_HXX
+diff -ur filter_orig/source/svg/svgreader.cxx filter/source/svg/svgreader.cxx
+--- filter_orig/source/svg/svgreader.cxx	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/svg/svgreader.cxx	2008-05-28 22:12:21.000000000 +0200
+@@ -7,6 +7,7 @@
+  *      Thorsten Behrens <tbehrens@novell.com>	   	
+  *
+  *      Copyright (C) 2008, Novell Inc.
++ *      Parts copyright 2005 by Sun Microsystems, Inc.
+  *
+  *   The Contents of this file are made available subject to
+  *   the terms of GNU Lesser General Public License Version 2.1.
+@@ -41,6 +42,17 @@
+ #include <com/sun/star/xml/dom/XDocumentBuilder.hpp>
+ #include <com/sun/star/xml/dom/NodeType.hpp>
+ 
++#include <comphelper/processfactory.hxx>
++#include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
++#include <basegfx/polygon/b2dpolypolygontools.hxx>
++#include <unotools/streamwrap.hxx>
++#include <xmloff/xmluconv.hxx>
++#include <vcl/graph.hxx>
++#include <vcl/virdev.hxx>
++#include <vcl/gradient.hxx>
++#include <svx/impgrf.hxx>
++#include <tools/zcodec.hxx>
++
+ #include <boost/bind.hpp>
+ #include <hash_set>
+ #include <map>
+@@ -432,6 +444,9 @@
+         // start&end color)
+         optimizeGradientStops(rState.maFillGradient);
+ 
++        if( !mxDocumentHandler.is() )
++            return true; // cannot write style, svm import case
++
+         // do we have a gradient fill? then write out gradient as well
+         if( rState.meFillType == GRADIENT && rState.maFillGradient.maStops.size() > 1 )
+         {
+@@ -1541,10 +1556,13 @@
+             for( sal_uInt32 i=0; i<rPoly.count(); ++i )
+             {                
+                 aPolys.push_back(
+-                    basegfx::tools::createAreaGeometryForPolygon(
+-                        rPoly.getB2DPolygon(i),
+-                        aState.mnStrokeWidth/2.0,
+-                        aState.meLineJoin));
++                    basegfx::tools::removeNeutralPolygons(
++                        basegfx::tools::removeAllIntersections(
++                            basegfx::tools::createAreaGeometryForPolygon(
++                                rPoly.getB2DPolygon(i),
++                                aState.mnStrokeWidth/2.0,
++                                aState.meLineJoin)),
++                            true));
+                 // TODO(F2): line ends
+             }
+ 
+@@ -1896,4 +1914,745 @@
+     return sal_True;
+ }
+ 
++///////////////////////////////////////////////////////////////
++
++struct ShapeRenderingVisitor
++{
++    ShapeRenderingVisitor(StatePool&    rStatePool,
++                          StateMap&     rStateMap,
++                          OutputDevice& rOutDev,
++                          const std::vector< Gradient >& rGradientVector,
++                          const std::vector< GradientStop >& rGradientStopVector) :
++        mrStates(rStatePool),
++        mrStateMap(rStateMap),
++        mrOutDev(rOutDev),
++        mrGradientVector(rGradientVector),
++        mrGradientStopVector(rGradientStopVector)
++    {}
++
++    void operator()( const uno::Reference<xml::dom::XElement>& )
++    {
++    }
++
++    void operator()( const uno::Reference<xml::dom::XElement>&      xElem,
++                     const uno::Reference<xml::dom::XNamedNodeMap>& xAttributes )
++    {
++        sal_Int32 nDummyIndex(0);
++        rtl::OUString sStyleId(
++            xElem->getAttribute(
++                USTR("internal-style-ref")).getToken(
++                    0,'$',nDummyIndex));
++        StateMap::iterator pOrigState=mrStateMap.find(
++            sStyleId.toInt32());
++        maCurrState = pOrigState != mrStateMap.end() ? pOrigState->second : maParentStates.back();
++
++        OSL_TRACE("the CTM is now #2: %f %f %f %f %f %f", 
++                  maCurrState.maCTM.get(0,0),
++                  maCurrState.maCTM.get(0,1),
++                  maCurrState.maCTM.get(0,2),
++                  maCurrState.maCTM.get(1,0),
++                  maCurrState.maCTM.get(1,1),
++                  maCurrState.maCTM.get(1,2));
++        
++        const sal_Int32 nTokenId(getTokenId(xElem->getNodeName()));
++        switch(nTokenId)
++        {
++		    case XML_LINE:
++			{
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double x1=0.0,y1=0.0,x2=0.0,y2=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X1:
++                            x1= convLength(sAttributeValue);
++                            break;
++                        case XML_X2:
++                            x2 = convLength(sAttributeValue);
++                            break;
++                        case XML_Y1:
++                            y1 = convLength(sAttributeValue);
++                            break;
++                        case XML_Y2:
++                            y2 = convLength(sAttributeValue);
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                basegfx::B2DPolygon aPoly;
++                aPoly.append(basegfx::B2DPoint(x1,y1));
++                aPoly.append(basegfx::B2DPoint(x2,y2));
++
++                renderPathShape(basegfx::B2DPolyPolygon(aPoly));
++                break;
++			}
++            case XML_POLYGON:
++            case XML_POLYLINE:
++            {
++                rtl::OUString sPoints = xElem->hasAttribute(USTR("points")) ? xElem->getAttribute(USTR("points")) : USTR("");
++                basegfx::B2DPolygon aPoly;
++                basegfx::tools::importFromSvgPoints(aPoly, sPoints);
++                // if( nTokenId == XML_POLYGON )
++                    aPoly.setClosed(true);
++
++				// assuming the coordinates are in pts since they are interpreted as such by different renderers
++				basegfx::B2DHomMatrix aScale;
++				aScale.scale(2540.0f/72.0f,2540.0f/72.0f);
++				aPoly.transform(aScale);
++
++                renderPathShape(basegfx::B2DPolyPolygon(aPoly));
++                break;
++            }
++            case XML_RECT:
++            {
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                bool bRxSeen=false, bRySeen=false;
++                double x=0.0,y=0.0,width=0.0,height=0.0,rx=0.0,ry=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X:
++                            x = convLength(sAttributeValue);
++                            break;
++                        case XML_Y:
++                            y = convLength(sAttributeValue);
++                            break;
++                        case XML_WIDTH:
++                            width = convLength(sAttributeValue);
++                            break;
++                        case XML_HEIGHT:
++                            height = convLength(sAttributeValue);
++                            break;
++                        case XML_RX:
++                            rx = convLength(sAttributeValue);
++                            bRxSeen=true;
++                            break;
++                        case XML_RY:
++                            ry = convLength(sAttributeValue);
++                            bRySeen=true;
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                if( bRxSeen && !bRySeen )
++                    ry = rx;
++                else if( bRySeen && !bRxSeen )
++                    rx = ry;
++
++                basegfx::B2DPolygon aPoly;
++                aPoly = basegfx::tools::createPolygonFromRect(
++                    basegfx::B2DRange(x,y,x+width,y+height),
++                    rx, ry );
++
++                renderPathShape(basegfx::B2DPolyPolygon(aPoly));
++                break;
++            }
++            case XML_PATH:
++            {
++                rtl::OUString sPath = xElem->hasAttribute(USTR("d")) ? xElem->getAttribute(USTR("d")) : USTR("");
++                basegfx::B2DPolyPolygon aPoly;
++                basegfx::tools::importFromSvgD(aPoly, sPath);
++
++				// assuming the coordinates are in pts since they are interpreted as such by different renderers
++				basegfx::B2DHomMatrix aScale;
++				aScale.scale(2540.0f/72.0f,2540.0f/72.0f);
++				aPoly.transform(aScale);
++				
++                renderPathShape(aPoly);
++                break;
++            }
++			case XML_CIRCLE:
++			{
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double cx=0.0,cy=0.0,r=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_CX:
++                            cx = convLength(sAttributeValue);
++                            break;
++                        case XML_CY:
++                            cy = convLength(sAttributeValue);
++                            break;
++                        case XML_R:
++                            r = convLength(sAttributeValue);
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                basegfx::B2DEllipse aEllipse(basegfx::B2DPoint(cx, cy), basegfx::B2DTuple(r,r));
++                basegfx::B2DPolygon aPoly = basegfx::tools::createPolygonFromEllipse(
++                    aEllipse.getB2DEllipseCenter(),
++                    aEllipse.getB2DEllipseRadius().getX(), 
++                    aEllipse.getB2DEllipseRadius().getY());
++
++                renderPathShape(basegfx::B2DPolyPolygon(aPoly));
++				break;
++			}
++			case XML_ELLIPSE:
++			{
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double cx=0.0,cy=0.0,rx=0.0, ry=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_CX:
++                            cx = convLength(sAttributeValue);
++                            break;
++                        case XML_CY:
++                            cy = convLength(sAttributeValue);
++                            break;
++                        case XML_RX:
++                            rx = convLength(sAttributeValue);
++							break;
++						case XML_RY:
++							ry = convLength(sAttributeValue);
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                basegfx::B2DEllipse aEllipse(basegfx::B2DPoint(cx, cy), basegfx::B2DTuple(rx,ry));
++                basegfx::B2DPolygon aPoly = basegfx::tools::createPolygonFromEllipse(
++                    aEllipse.getB2DEllipseCenter(),
++                    aEllipse.getB2DEllipseRadius().getX(), 
++                    aEllipse.getB2DEllipseRadius().getY());
++
++                renderPathShape(basegfx::B2DPolyPolygon(aPoly));
++				break;
++			}
++            case XML_IMAGE:
++            {
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double x=0.0,y=0.0,width=0.0,height=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X:
++                            x = convLength(sAttributeValue);
++                            break;
++                        case XML_Y:
++                            y = convLength(sAttributeValue);
++                            break;
++                        case XML_WIDTH:
++                            width = convLength(sAttributeValue);
++                            break;
++                        case XML_HEIGHT:
++                            height = convLength(sAttributeValue);
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                rtl::OUString sValue = xElem->hasAttribute(USTR("href")) ? xElem->getAttribute(USTR("href")) : USTR("");
++        		rtl::OString aValueUtf8( sValue.getStr(), sValue.getLength(), RTL_TEXTENCODING_UTF8 );
++				std::string sLinkValue;
++				parseXlinkHref(aValueUtf8.getStr(), sLinkValue);
++
++				if (!sLinkValue.empty())
++                {
++                    // <- blatant copy from svx/source/xml/xmlgrhlp.cxx
++                    Graphic aGraphic;
++
++                    uno::Sequence<sal_Int8> aData;
++                    SvXMLUnitConverter::decodeBase64(aData, 
++                                                     rtl::OUString::createFromAscii(sLinkValue.c_str()));
++                    SvMemoryStream aSrc(aData.getArray(), 
++                                        aData.getLength(), 
++                                        STREAM_READ);
++                    USHORT nFormat = GRFILTER_FORMAT_DONTKNOW;
++                    USHORT pDeterminedFormat = GRFILTER_FORMAT_DONTKNOW;
++                    GetGrfFilter()->ImportGraphic( aGraphic, String(), aSrc ,nFormat,&pDeterminedFormat );
++
++                    if (pDeterminedFormat == GRFILTER_FORMAT_DONTKNOW)
++                    {
++                        //Read the first two byte to check whether it is a gzipped stream, is so it may be in wmz or emz format 
++                        //unzip them and try again
++
++                        BYTE    sFirstBytes[ 2 ];
++
++                        aSrc.Seek( STREAM_SEEK_TO_END );
++                        ULONG nStreamLen = aSrc.Tell();
++                        aSrc.Seek( 0 );
++
++                        if ( !nStreamLen )
++                        {
++                            SvLockBytes* pLockBytes = aSrc.GetLockBytes();
++                            if ( pLockBytes  )
++                                pLockBytes->SetSynchronMode( TRUE );
++
++                            aSrc.Seek( STREAM_SEEK_TO_END );
++                            nStreamLen = aSrc.Tell();
++                            aSrc.Seek( 0 );
++                        }
++                        if( nStreamLen >= 2 )
++                        {
++                            //read two byte
++                            aSrc.Read( sFirstBytes, 2 );
++
++                            if( sFirstBytes[0] == 0x1f && sFirstBytes[1] == 0x8b )
++                            {
++                                SvMemoryStream* pDest = new SvMemoryStream;
++                                ZCodec aZCodec( 0x8000, 0x8000 );
++                                aZCodec.BeginCompression(ZCODEC_GZ_LIB);
++                                aSrc.Seek( 0 );
++                                aZCodec.Decompress( aSrc, *pDest );
++					
++                                if (aZCodec.EndCompression() && pDest )
++                                {
++                                    pDest->Seek( STREAM_SEEK_TO_END );
++                                    ULONG nStreamLen_ = pDest->Tell();
++                                    if (nStreamLen_)
++                                    {
++                                        pDest->Seek(0L);
++                                        GetGrfFilter()->ImportGraphic( aGraphic, String(), *pDest ,nFormat,&pDeterminedFormat );
++                                    }
++                                }
++                                delete pDest;
++                            }
++                        }
++                    }
++                    // -> blatant copy from svx/source/xml/xmlgrhlp.cxx
++
++                    const Rectangle aBounds(
++                        Point(basegfx::fround(x),
++                              basegfx::fround(y)),
++                        Size(basegfx::fround(width),
++                             basegfx::fround(height)));
++                    aGraphic.Draw(&mrOutDev,
++                                  aBounds.TopLeft(),
++                                  aBounds.GetSize());
++                    maBounds.Union(aBounds);
++                }
++                break;
++            }
++            case XML_TEXT:
++            {
++                // collect text from all TEXT_NODE children into sText
++                rtl::OUStringBuffer sText;
++                visitChildren(boost::bind(
++                                  (rtl::OUStringBuffer& (rtl::OUStringBuffer::*)(const sal_Unicode* str))&rtl::OUStringBuffer::append,
++                                  boost::ref(sText),
++                                  boost::bind(&xml::dom::XNode::getNodeValue,
++                                              _1)),
++                              xElem,
++                              xml::dom::NodeType_TEXT_NODE);
++
++                // collect attributes
++                const sal_Int32 nNumAttrs( xAttributes->getLength() );
++                rtl::OUString sAttributeValue;
++                double x=0.0,y=0.0,width=0.0,height=0.0;
++                for( sal_Int32 i=0; i<nNumAttrs; ++i )
++                {
++                    sAttributeValue = xAttributes->item(i)->getNodeValue();
++                    const sal_Int32 nAttribId( 
++                        getTokenId(xAttributes->item(i)->getNodeName()));
++                    switch(nAttribId)
++                    {
++                        case XML_X:
++                            x = convLength(sAttributeValue);
++                            break;
++                        case XML_Y:
++                            y = convLength(sAttributeValue);
++                            break;
++                        case XML_WIDTH:
++                            width = convLength(sAttributeValue);
++                            break;
++                        case XML_HEIGHT:
++                            height = convLength(sAttributeValue);
++                            break;
++                        default:
++                            // skip
++                            break;
++                    }
++                }
++
++                // actually export text
++                Font aFont(maCurrState.maFontFamily, 
++                           Size(0,
++                                basegfx::fround(maCurrState.mnFontSize)));
++
++                // extract basic transformations out of CTM
++                basegfx::B2DTuple aScale, aTranslate;
++                double fRotate, fShearX;
++                ::rtl::OUString sTransformValue;
++                if (maCurrState.maCTM.decompose(aScale, aTranslate, fRotate, fShearX))
++                {
++                    rtl::OUString sTransform;
++                    x += aTranslate.getX();
++                    y += aTranslate.getY();
++
++                    aFont.SetSize(
++                        Size(basegfx::fround(aFont.GetWidth()*aScale.getX()),
++                             basegfx::fround(aFont.GetHeight()*aScale.getY())));
++
++                    if( fRotate )
++                        aFont.SetOrientation(basegfx::fround(fRotate*1800.0/M_PI));
++                }
++
++                // TODO(F2): update bounds
++                mrOutDev.SetFont(aFont);
++                mrOutDev.DrawText(Point(basegfx::fround(x),
++                                        basegfx::fround(y)),
++                                  sText.makeStringAndClear());
++                break;
++            }
++        }
++    }
++
++    void push()
++    {
++        maParentStates.push_back(maCurrState);
++    }
++
++    void pop()
++    {
++        maParentStates.pop_back();
++    }
++	
++    bool hasGradientOpacity( const Gradient& rGradient )
++    {
++        return 
++            mrGradientStopVector[
++                rGradient.maStops[0]].maStopColor.a != 1.0 ||
++            mrGradientStopVector[
++                rGradient.maStops[1]].maStopColor.a != 1.0;
++    }
++
++    sal_Int8 toByteColor( double val )
++    {
++        // TODO(Q3): duplicated from vcl::unotools
++        return sal::static_int_cast<sal_Int8>(
++            basegfx::fround(val*255.0));
++    }
++
++    ::Color getVclColor( const ARGBColor& rColor )
++    {
++        const sal_uInt8 nRed  ( toByteColor(rColor.r)   );
++        const sal_uInt8 nGreen( toByteColor(rColor.g) );
++        const sal_uInt8 nBlue ( toByteColor(rColor.b)  );
++
++        return ::Color(nRed,nGreen,nBlue);
++    }
++
++    void renderPathShape(const basegfx::B2DPolyPolygon& rPoly)
++    {
++        // we might need to split up polypolygon into multiple path
++        // shapes (e.g. when emulating line stroking)
++        State aState = maCurrState;
++		
++        basegfx::B2DPolyPolygon aPoly(rPoly);
++        aPoly.transform(aState.maCTM);
++
++        OSL_TRACE("the CTM is now #2: %f %f %f %f %f %f", 
++                  maCurrState.maCTM.get(0,0),
++                  maCurrState.maCTM.get(0,1),
++                  maCurrState.maCTM.get(0,2),
++                  maCurrState.maCTM.get(1,0),
++                  maCurrState.maCTM.get(1,1),
++                  maCurrState.maCTM.get(1,2));        
++
++        const basegfx::B2DRange aBounds=basegfx::tools::getRange(aPoly);
++        maBounds.Union(
++            Rectangle(
++                basegfx::fround(aBounds.getMinX()),
++                basegfx::fround(aBounds.getMinY()),
++                basegfx::fround(aBounds.getMaxX()),
++                basegfx::fround(aBounds.getMaxY())));
++
++        // fill first
++        mrOutDev.SetLineColor();
++
++        // do we have a gradient fill?
++        if( aState.meFillType == GRADIENT && aState.maFillGradient.maStops.size() > 1 )
++        {
++            ::Gradient aGradient;
++
++            if( aState.maFillGradient.meType == Gradient::LINEAR )
++            {
++                // should the optimizeGradientStops method decide that
++                // this is a three-color gradient, it prolly wanted us
++                // to take axial instead
++                aGradient = ::Gradient( aState.maFillGradient.maStops.size() == 3 ?
++                                        GRADIENT_AXIAL :
++                                        GRADIENT_LINEAR );
++            }
++            else
++            {
++                aGradient = ::Gradient( GRADIENT_ELLIPTICAL );
++            }
++
++            basegfx::B2DTuple rScale, rTranslate;
++            double rRotate, rShearX;
++            if( aState.maFillGradient.maTransform.decompose(rScale, rTranslate, rRotate, rShearX) )
++                aGradient.SetAngle( basegfx::fround(rRotate*1800.0/M_PI) );
++            aGradient.SetStartColor( getVclColor(
++                                         mrGradientStopVector[
++                                             aState.maFillGradient.maStops[0]].maStopColor) );
++            aGradient.SetEndColor( getVclColor(
++                                       mrGradientStopVector[
++                                           aState.maFillGradient.maStops[1]].maStopColor) );
++
++            if( hasGradientOpacity(aState.maFillGradient) )
++            {
++                ::Gradient aTransparencyGradient=aGradient;
++
++                const BYTE	cTransStart( 255-
++                    basegfx::fround(mrGradientStopVector[
++                                        aState.maFillGradient.maStops[1]].maStopColor.a*
++                                    aState.mnFillOpacity*255.0));
++                const Color aTransStart( cTransStart, cTransStart, cTransStart );
++
++                const BYTE	cTransEnd( 255-
++                    basegfx::fround(mrGradientStopVector[
++                                        aState.maFillGradient.maStops[0]].maStopColor.a*
++                                    aState.mnFillOpacity*255.0));
++                const Color aTransEnd( cTransEnd, cTransEnd, cTransEnd );
++
++                // modulate gradient opacity with overall fill opacity
++                aTransparencyGradient.SetStartColor(aTransStart);
++                aTransparencyGradient.SetEndColor(aTransEnd);
++
++                VirtualDevice	aVDev;
++                GDIMetaFile		aMtf;
++
++                aVDev.EnableOutput( FALSE );
++                aVDev.SetMapMode( mrOutDev.GetMapMode() );
++                aMtf.Record( &aVDev );
++
++                aVDev.SetLineColor();
++                aVDev.SetFillColor();
++                aVDev.DrawGradient(::PolyPolygon(aPoly),aGradient);
++
++                const Rectangle aMtfBounds(
++                    basegfx::fround(aBounds.getMinX()),
++                    basegfx::fround(aBounds.getMinY()),
++                    basegfx::fround(aBounds.getMaxX()),
++                    basegfx::fround(aBounds.getMaxY()));
++
++                MapMode aMap(mrOutDev.GetMapMode());
++                aMtf.Stop();
++                aMtf.WindStart();
++                aMap.SetOrigin( aMtfBounds.TopLeft() );
++                aMtf.SetPrefMapMode( aMap );
++                aMtf.SetPrefSize( aMtfBounds.GetSize() );
++
++                mrOutDev.DrawTransparent(aMtf,
++                                         aMtfBounds.TopLeft(),
++                                         aMtfBounds.GetSize(),
++                                         aTransparencyGradient);
++            }
++            else
++            {
++                mrOutDev.DrawGradient(::PolyPolygon(aPoly),aGradient);
++            }
++        }
++        else
++        {
++            if( aState.meFillType == NONE )
++                mrOutDev.SetFillColor();
++            else
++                mrOutDev.SetFillColor(getVclColor(aState.maFillColor));
++
++            if( aState.mnFillOpacity != 1.0 )
++                mrOutDev.DrawTransparent(::PolyPolygon(aPoly),
++                                         basegfx::fround(
++                                             (1.0-aState.mnFillOpacity)*100.0));
++            else
++                mrOutDev.DrawPolyPolygon(::PolyPolygon(aPoly));
++        }
++
++        // Stroking now
++        mrOutDev.SetFillColor();
++
++        if( aState.meStrokeType != NONE &&
++            (aState.maDashArray.size() ||
++             aState.mnStrokeWidth != 1.0) )
++        {
++            // vcl thick lines are severly borked - generate filled
++            // polygon instead
++            std::vector<basegfx::B2DPolyPolygon> aPolys;
++            aPoly=basegfx::tools::adaptiveSubdivideByAngle(aPoly);
++            if( !aState.maDashArray.empty() )
++                aPoly=basegfx::tools::applyLineDashing(aPoly,
++                                                       aState.maDashArray);
++            for( sal_uInt32 i=0; i<aPoly.count(); ++i )
++            {                
++                // ugly. convert to integer-based tools polygon
++                // first, and only _then_ remove intersections (we
++                // might get new ones from the rounding)
++                aPolys.push_back(
++                    basegfx::tools::removeNeutralPolygons(
++                        basegfx::tools::removeAllIntersections(
++                            ::PolyPolygon(
++                                basegfx::tools::createAreaGeometryForPolygon(
++                                    aPoly.getB2DPolygon(i),
++                                    aState.mnStrokeWidth/2.0,
++                                    aState.meLineJoin)).getB2DPolyPolygon()),
++                        true));
++                // TODO(F2): line ends
++            }
++
++            mrOutDev.SetLineColor();
++            mrOutDev.SetFillColor(getVclColor(aState.maStrokeColor));
++
++            for( sal_uInt32 i=0; i<aPolys.size(); ++i )
++            {
++                if( aState.mnStrokeOpacity != 1.0 )
++                    mrOutDev.DrawTransparent(::PolyPolygon(aPolys[i]),
++                                             basegfx::fround(
++                                                 (1.0-aState.mnStrokeOpacity)*100.0));
++                else
++                    mrOutDev.DrawPolyPolygon(::PolyPolygon(aPolys[i]));
++
++                const basegfx::B2DRange aStrokeBounds=basegfx::tools::getRange(aPolys[i]);
++                maBounds.Union(
++                    Rectangle(
++                        basegfx::fround(aStrokeBounds.getMinX()),
++                        basegfx::fround(aStrokeBounds.getMinY()),
++                        basegfx::fround(aStrokeBounds.getMaxX()),
++                        basegfx::fround(aStrokeBounds.getMaxY())));
++            }
++        }
++        else
++        {
++            if( aState.meStrokeType == NONE )
++                mrOutDev.SetLineColor();
++            else
++                mrOutDev.SetLineColor(getVclColor(aState.maStrokeColor));
++
++            if( aState.mnStrokeOpacity != 1.0 )
++                mrOutDev.DrawTransparent(::PolyPolygon(aPoly),
++                                         basegfx::fround(
++                                             (1.0-aState.mnStrokeOpacity)*100.0));
++            else
++                mrOutDev.DrawPolyPolygon(::PolyPolygon(aPoly));
++        }
++    }
++
++    State                                      maCurrState;
++    std::vector<State>                         maParentStates;
++    StatePool&                                 mrStates;
++    StateMap&                                  mrStateMap;
++    OutputDevice&                               mrOutDev;
++    const std::vector< Gradient >&             mrGradientVector;
++    const std::vector< GradientStop >&         mrGradientStopVector;
++    Rectangle                                   maBounds;
++};
++
+ } // namespace svgi
++
++bool importSvg(SvStream & rStream, Graphic & rGraphic )
++{
++    const uno::Reference<lang::XMultiServiceFactory> xServiceFactory(
++        ::comphelper::getProcessServiceFactory());    
++
++	uno::Reference<xml::dom::XDocumentBuilder> xDomBuilder( 
++        xServiceFactory->createInstance( 
++            rtl::OUString::createFromAscii("com.sun.star.xml.dom.DocumentBuilder")), 
++        uno::UNO_QUERY );
++
++    uno::Reference<io::XInputStream> xStream(
++        new utl::OInputStreamWrapper(rStream) );
++
++    uno::Reference<xml::dom::XDocument> xDom(
++        xDomBuilder->parse(xStream),
++        uno::UNO_QUERY_THROW );
++
++    uno::Reference<xml::dom::XElement> xDocElem( xDom->getDocumentElement(),
++                                                 uno::UNO_QUERY_THROW );
++    
++    VirtualDevice	aVDev;
++    GDIMetaFile		aMtf;
++
++    aVDev.EnableOutput( FALSE );
++    aMtf.Record( &aVDev );
++
++    // parse styles and fill state stack
++    svgi::StatePool aStatePool;
++    svgi::StateMap  aStateMap;
++    svgi::AnnotatingVisitor aVisitor(aStatePool,
++                                     aStateMap,
++                                     uno::Reference<xml::sax::XDocumentHandler>());
++    svgi::visitElements(aVisitor, xDocElem);
++
++#ifdef VERBOSE
++    dumpTree(xDocElem);
++#endif
++
++    // render all shapes to mtf
++    svgi::ShapeRenderingVisitor aRenderer(aStatePool,aStateMap,aVDev,
++                                         aVisitor.maGradientVector,
++                                         aVisitor.maGradientStopVector);
++    svgi::visitElements(aRenderer, xDocElem);
++
++    aMtf.Stop();
++
++    aMtf.WindStart();
++    aMtf.SetPrefMapMode( MAP_100TH_MM );
++
++    // get the document dimensions
++
++    // if the "width" and "height" attributes are missing, inkscape fakes
++    // A4 portrait for. Let's do the same.
++	if (!xDocElem->hasAttribute(USTR("width")))
++		xDocElem->setAttribute(USTR("width"), USTR("210mm"));
++	if (!xDocElem->hasAttribute(USTR("height")))
++		xDocElem->setAttribute(USTR("height"), USTR("297mm"));
++		
++    aMtf.SetPrefSize( 
++        Size( 
++            std::max(
++                sal_Int32(aRenderer.maBounds.Right()),
++                basegfx::fround(svgi::convLength(xDocElem->getAttribute(USTR("width"))))), 
++            std::max(
++                sal_Int32(aRenderer.maBounds.Bottom()),
++                basegfx::fround(svgi::convLength(xDocElem->getAttribute(USTR("height"))))) ));
++
++    rGraphic = aMtf;
++    
++    return sal_True;
++}
++
++
+diff -ur filter_orig/source/svg/test/makefile.mk filter/source/svg/test/makefile.mk
+--- filter_orig/source/svg/test/makefile.mk	2008-05-28 02:34:02.000000000 +0200
++++ filter/source/svg/test/makefile.mk	2008-05-28 02:18:07.000000000 +0200
+@@ -40,6 +40,7 @@
+ 	$(UNOTOOLSLIB)		\
+ 	$(TOOLSLIB)			\
+ 	$(COMPHELPERLIB)	\
++	$(SVTOOLLIB)	    \
+ 	$(CPPUHELPERLIB)	\
+ 	$(CPPULIB)			\
+ 	$(SALLIB)			\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-dp-gridlayout.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-dp-gridlayout.diff
@@ -0,0 +1,510 @@
+diff -rup sc/inc/dpobject.hxx sc/inc/dpobject.hxx
+--- sc/inc/dpobject.hxx	2006-10-30 10:45:07.000000000 -0500
++++ sc/inc/dpobject.hxx	2006-11-01 12:09:52.000000000 -0500
+@@ -119,7 +119,8 @@ private:
+ 	ScDPOutput*				pOutput;
+ 	BOOL					bSettingsChanged;
+ 	BOOL					bAlive;			// FALSE if only used to hold settings
+-	USHORT                                  nAutoFormatIndex;
++	USHORT                  nAutoFormatIndex;
++	BOOL 			        bHeaderLayout;	// TRUE : grid, FALSE : standard
+ 	BOOL					bAllowMove;
+ 	BOOL					bInfoValid;		// affects: nHeaderRows
+ 	long					nHeaderRows;	// page fields plus filter button
+@@ -153,6 +154,9 @@ public:
+ 	void 			SetAutoFormatIndex (const USHORT nIndex);
+ 	const USHORT		GetAutoFormatIndex ()	{ if (this == NULL) return 65535; else return nAutoFormatIndex; }
+ 
++	void 			    SetHeaderLayout (BOOL bUseGrid);
++	BOOL			    GetHeaderLayout ()	const { return bHeaderLayout; }
++
+ 	void				SetSheetDesc(const ScSheetSourceDesc& rDesc);
+ 	void				SetImportDesc(const ScImportSourceDesc& rDesc);
+ 	void				SetServiceData(const ScDPServiceDesc& rDesc);
+diff -rup sc/inc/dpoutput.hxx sc/inc/dpoutput.hxx
+--- sc/inc/dpoutput.hxx	2006-10-30 10:45:07.000000000 -0500
++++ sc/inc/dpoutput.hxx	2006-11-01 12:10:01.000000000 -0500
+@@ -123,6 +123,7 @@ private:
+ 	long					nColCount;
+ 	long					nRowCount;
+ 	long					nHeaderSize;
++	BOOL 			        bHeaderLayout;	// TRUE : grid, FALSE : standard
+ 	SCCOL					nTabStartCol;
+ 	SCROW					nTabStartRow;
+ 	SCCOL					nMemberStartCol;
+@@ -165,6 +166,9 @@ public:
+ 	BOOL			IsFilterButton( const ScAddress& rPos );
+ 
+     void            GetMemberResultNames( StrCollection& rNames, long nDimension );
++
++	void 			SetHeaderLayout (BOOL bUseGrid);
++	BOOL			GetHeaderLayout () const 	{ return bHeaderLayout; }
+ 
+     static void     GetDataDimensionNames( String& rSourceName, String& rGivenName,
+                                            const com::sun::star::uno::Reference<
+diff -rup sc/source/core/data/dpobject.cxx sc/source/core/data/dpobject.cxx
+--- sc/source/core/data/dpobject.cxx	2006-10-30 10:45:07.000000000 -0500
++++ sc/source/core/data/dpobject.cxx	2006-11-01 11:02:16.000000000 -0500
+@@ -156,6 +156,7 @@ ScDPObject::ScDPObject( ScDocument* pD )
+ 	pServDesc( NULL ),
+ 	pOutput( NULL ),
+ 	nAutoFormatIndex( 65535 ),
++	bHeaderLayout( FALSE ),
+ 	bSettingsChanged( FALSE ),
+ 	bAlive( FALSE ),
+ 	bAllowMove( FALSE ),
+@@ -171,6 +172,7 @@ ScDPObject::ScDPObject(const ScDPObject&
+ 	aTableTag( r.aTableTag ),
+ 	aOutRange( r.aOutRange ),
+ 	nAutoFormatIndex( r.nAutoFormatIndex ),
++	bHeaderLayout( r.bHeaderLayout ),
+ 	pSheetDesc( NULL ),
+ 	pImpDesc( NULL ),
+ 	pServDesc( NULL ),
+@@ -228,6 +230,11 @@ void ScDPObject::SetAutoFormatIndex(cons
+ 	nAutoFormatIndex	= nIndex;
+ }
+ 
++void ScDPObject::SetHeaderLayout (BOOL bUseGrid)
++{
++	bHeaderLayout = bUseGrid;
++}
++
+ void ScDPObject::SetOutRange(const ScRange& rRange)
+ {
+ 	aOutRange = rRange;
+@@ -335,6 +342,7 @@ void ScDPObject::CreateOutput()
+ 	{
+         BOOL bFilterButton = IsSheetData() && pSaveData && pSaveData->GetFilterButton();
+         pOutput = new ScDPOutput( pDoc, xSource, aOutRange.aStart, bFilterButton );
++		pOutput->SetHeaderLayout ( bHeaderLayout );
+ 
+ 		long nOldRows = nHeaderRows;
+ 		nHeaderRows = pOutput->GetHeaderRows();
+diff -rup sc/source/core/data/dpoutput.cxx sc/source/core/data/dpoutput.cxx
+--- sc/source/core/data/dpoutput.cxx	2006-10-30 10:45:07.000000000 -0500
++++ sc/source/core/data/dpoutput.cxx	2006-11-01 10:11:45.000000000 -0500
+@@ -362,6 +362,7 @@ ScDPOutput::ScDPOutput( ScDocument* pD, 
+ 	nColFmtCount( 0 ),
+ 	nRowFmtCount( 0 ),
+     nSingleNumFmt( 0 ),
++	bHeaderLayout( FALSE ),
+ 	bSizesValid( FALSE ),
+ 	bSizeOverflow( FALSE )
+ {
+@@ -652,7 +653,8 @@ void ScDPOutput::CalcSizes()
+ 		nRowCount = aData.getLength();
+ 		const uno::Sequence<sheet::DataResult>* pRowAry = aData.getConstArray();
+ 		nColCount = nRowCount ? ( pRowAry[0].getLength() ) : 0;
+-		nHeaderSize = 1;			// one row for field names
++
++		nHeaderSize = GetHeaderLayout () ? 2 : 1;
+ 
+ 		//	calculate output positions and sizes
+ 
+@@ -918,6 +920,12 @@ void ScDPOutput::GetMemberResultNames( S
+     }
+ }
+ 
++void ScDPOutput::SetHeaderLayout (BOOL bLayout)
++{
++	bHeaderLayout = bLayout;
++	bSizesValid = FALSE;
++}
++
+ //
+ //		Methods to find specific parts of the table
+ //
+diff -rup sc/source/filter/excel/read.cxx sc/source/filter/excel/read.cxx
+--- sc/source/filter/excel/read.cxx	2006-10-30 15:28:16.000000000 -0500
++++ sc/source/filter/excel/read.cxx	2006-10-30 17:32:24.000000000 -0500
+@@ -1200,6 +1200,7 @@ FltError ImportExcel8::Read( void )
+                     case EXC_ID_SXDI:           rPTableMgr.ReadSxdi( maStrm );      break;
+                     case EXC_ID_SXVDEX:         rPTableMgr.ReadSxvdex( maStrm );    break;
+                     case EXC_ID_SXEX:           rPTableMgr.ReadSxex( maStrm );      break;
++                    case EXC_ID_SX_AUTOFORMAT:  rPTableMgr.ReadSxAutoformat( maStrm ); break;
+                 }
+ 			}
+             break;
+diff -rup sc/source/filter/excel/xepivot.cxx sc/source/filter/excel/xepivot.cxx
+--- sc/source/filter/excel/xepivot.cxx	2006-10-30 10:45:07.000000000 -0500
++++ sc/source/filter/excel/xepivot.cxx	2006-11-02 09:47:08.000000000 -0500
+@@ -1260,6 +1260,8 @@ XclExpPivotTable::XclExpPivotTable( cons
+         maPTInfo.maDataName = ScGlobal::GetRscString( STR_PIVOT_DATA );
+         maPTInfo.mnCacheIdx = mrPCache.GetCacheIndex();
+ 
++		maPTAutoFormat.Init( rDPObj );
++
+         if( const ScDPSaveData* pSaveData = rDPObj.GetSaveData() )
+         {
+             // additional properties from ScDPSaveData
+@@ -1339,6 +1341,8 @@ void XclExpPivotTable::Save( XclExpStrea
+         WriteSxli( rStrm, maPTInfo.mnDataCols, maPTInfo.mnColFields );
+         // SXEX
+         WriteSxex( rStrm );
++		// SX_AUTOFORMAT
++		WriteSxAutoformat( rStrm );
+     }
+ }
+ 
+@@ -1478,6 +1482,8 @@ void XclExpPivotTable::Finalize()
+     rnDataXclRow = rnXclRow1 + maPTInfo.mnColFields + 1;
+     if( maDataFields.empty() )
+         ++rnDataXclRow;
++    if( 0 == maPTAutoFormat.mbGridLayout )
++        ++rnDataXclRow;
+     rnXclCol2 = ::std::max( rnXclCol2, rnDataXclCol );
+     rnXclRow2 = ::std::max( rnXclRow2, rnDataXclRow );
+     maPTInfo.mnDataCols = rnXclCol2 - rnDataXclCol + 1;
+@@ -1485,6 +1491,8 @@ void XclExpPivotTable::Finalize()
+ 
+     // first heading
+     maPTInfo.mnFirstHeadRow = rnXclRow1 + 1;
++    if( 0 == maPTAutoFormat.mbGridLayout )
++		maPTInfo.mnFirstHeadRow++;
+ }
+ 
+ // records ----------------------------------------------------------------
+@@ -1560,6 +1568,18 @@ void XclExpPivotTable::WriteSxex( XclExp
+     rStrm.EndRecord();
+ }
+ 
++void XclExpPivotTable::WriteSxAutoformat( XclExpStream& rStrm ) const
++{
++	// Until we sync the autoformat ids only export if using grid header layout
++	// That could only have been set via xls import so far.
++	if( 0 == maPTAutoFormat.mbGridLayout )
++	{
++		rStrm.StartRecord( EXC_ID_SX_AUTOFORMAT, 17 );
++		rStrm << maPTAutoFormat;
++		rStrm.EndRecord();
++	}
++}
++
+ // ============================================================================
+ 
+ namespace {
+diff -rup sc/source/filter/excel/xipivot.cxx sc/source/filter/excel/xipivot.cxx
+--- sc/source/filter/excel/xipivot.cxx	2007-02-27 13:27:43.000000000 +0100
++++ sc/source/filter/excel/xipivot.cxx	2007-11-14 17:15:40.000000000 +0100
+@@ -1340,6 +1340,11 @@ void XclImpPivotTable::ReadSxex( XclImpS
+     rStrm >> maPTExtInfo;
+ }
+ 
++void XclImpPivotTable::ReadSxAutoformat( XclImpStream& rStrm )
++{
++    rStrm >> maPTAutoFormat;
++}
++
+ // ----------------------------------------------------------------------------
+ 
+ void XclImpPivotTable::Convert()
+@@ -1407,6 +1412,7 @@ void XclImpPivotTable::Convert()
+     pDPObj->SetSheetDesc( aDesc );
+     pDPObj->SetOutRange( aOutRange );
+     pDPObj->SetAlive( TRUE );
++	pDPObj->SetHeaderLayout( maPTAutoFormat.mbGridLayout == 0 );
+     GetDoc().GetDPCollection()->Insert( pDPObj );
+ }
+ 
+@@ -1502,6 +1508,12 @@ void XclImpPivotTableManager::ReadSxex( 
+         maPTables.back()->ReadSxex( rStrm );
+ }
+ 
++void XclImpPivotTableManager::ReadSxAutoformat( XclImpStream& rStrm )
++{
++    if( !maPTables.empty() )
++        maPTables.back()->ReadSxAutoformat( rStrm );
++}
++
+ // ----------------------------------------------------------------------------
+ 
+ void XclImpPivotTableManager::ReadPivotCaches( XclImpStream& rStrm )
+@@ -1518,3 +1530,79 @@ void XclImpPivotTableManager::ConvertPiv
+ 
+ // ============================================================================
+ 
++// Pivot table autoformat settings ============================================
++
++/**
++classic		: 10 08 00 00 00 00 00 00 20 00 00 00 01 00 00 00 00
++default		: 10 08 00 00 00 00 00 00 20 00 00 00 01 00 00 00 00
++report01	: 10 08 02 00 00 00 00 00 20 00 00 00 00 10 00 00 00
++report02	: 10 08 02 00 00 00 00 00 20 00 00 00 01 10 00 00 00
++report03	: 10 08 02 00 00 00 00 00 20 00 00 00 02 10 00 00 00
++report04	: 10 08 02 00 00 00 00 00 20 00 00 00 03 10 00 00 00
++report05	: 10 08 02 00 00 00 00 00 20 00 00 00 04 10 00 00 00
++report06	: 10 08 02 00 00 00 00 00 20 00 00 00 05 10 00 00 00
++report07	: 10 08 02 00 00 00 00 00 20 00 00 00 06 10 00 00 00
++report08	: 10 08 02 00 00 00 00 00 20 00 00 00 07 10 00 00 00
++report09	: 10 08 02 00 00 00 00 00 20 00 00 00 08 10 00 00 00
++report10	: 10 08 02 00 00 00 00 00 20 00 00 00 09 10 00 00 00
++table01		: 10 08 00 00 00 00 00 00 20 00 00 00 0a 10 00 00 00
++table02		: 10 08 00 00 00 00 00 00 20 00 00 00 0b 10 00 00 00
++table03		: 10 08 00 00 00 00 00 00 20 00 00 00 0c 10 00 00 00
++table04		: 10 08 00 00 00 00 00 00 20 00 00 00 0d 10 00 00 00
++table05		: 10 08 00 00 00 00 00 00 20 00 00 00 0e 10 00 00 00
++table06		: 10 08 00 00 00 00 00 00 20 00 00 00 0f 10 00 00 00
++table07		: 10 08 00 00 00 00 00 00 20 00 00 00 10 10 00 00 00
++table08		: 10 08 00 00 00 00 00 00 20 00 00 00 11 10 00 00 00
++table09		: 10 08 00 00 00 00 00 00 20 00 00 00 12 10 00 00 00
++table10		: 10 08 00 00 00 00 00 00 20 00 00 00 13 10 00 00 00
++none		: 10 08 00 00 00 00 00 00 20 00 00 00 15 10 00 00 00
++**/
++
++XclPTAutoFormat::XclPTAutoFormat() :
++    mbReport( 0 ),
++    mnAutoFormat( 0 ),
++    mbGridLayout( 0x10 )
++{
++}
++
++void XclPTAutoFormat::Init( const ScDPObject& rDPObj )
++{
++	if( rDPObj.GetHeaderLayout() )
++	{
++		mbReport 	 = 0;
++		mnAutoFormat = 1;
++		mbGridLayout = 0;
++	}
++	else
++	{
++		// Report1 for now
++		// TODO : sync with autoformat indicies
++		mbReport 	 = 2;
++		mnAutoFormat = 1;
++		mbGridLayout = 0x10;
++	}
++}
++
++XclImpStream& operator>>( XclImpStream& rStrm, XclPTAutoFormat& rInfo )
++{
++    rStrm.Ignore( 2 );
++    rStrm >> rInfo.mbReport;     		/// 2 for report* fmts ?
++    rStrm.Ignore( 6 );
++    return rStrm
++        >> rInfo.mnAutoFormat
++        >> rInfo.mbGridLayout;
++}
++
++XclExpStream& operator<<( XclExpStream& rStrm, const XclPTAutoFormat& rInfo )
++{
++    return rStrm
++        << EXC_PT_AUTOFMT_HEADER
++        << rInfo.mbReport
++		<< EXC_PT_AUTOFMT_ZERO
++        << EXC_PT_AUTOFMT_FLAGS
++        << rInfo.mnAutoFormat
++        << rInfo.mbGridLayout;
++}
++
++// ============================================================================
++
+diff -rup sc/source/filter/inc/xepivot.hxx sc/source/filter/inc/xepivot.hxx
+--- sc/source/filter/inc/xepivot.hxx	2006-07-10 09:55:31.000000000 -0400
++++ sc/source/filter/inc/xepivot.hxx	2006-11-01 11:26:54.000000000 -0500
+@@ -421,6 +421,8 @@ private:
+     void                WriteSxli( XclExpStream& rStrm, sal_uInt16 nLineCount, sal_uInt16 nIndexCount ) const;
+     /** Writes the SXEX records containing additional pivot table info. */
+     void                WriteSxex( XclExpStream& rStrm ) const;
++    /** Writes the SX_AUTOFORMAT records with the autoformat id and header layout */
++    void                WriteSxAutoformat( XclExpStream& rStrm ) const;
+ 
+     // ------------------------------------------------------------------------
+ private:
+@@ -431,6 +433,7 @@ private:
+     const XclExpPivotCache& mrPCache;       /// The pivot cache this pivot table bases on.
+     XclPTInfo           maPTInfo;           /// Info about the pivot table (SXVIEW record).
+     XclPTExtInfo        maPTExtInfo;        /// Extended info about the pivot table (SXEX record).
++	XclPTAutoFormat		maPTAutoFormat;		/// The selected autoformat (SX_AUTOFORMAT)
+     XclExpPTFieldList   maFieldList;        /// All fields in pivot cache order.
+     ScfUInt16Vec        maRowFields;        /// Row field indexes.
+     ScfUInt16Vec        maColFields;        /// Column field indexes.
+diff -rup sc/source/filter/inc/xipivot.hxx sc/source/filter/inc/xipivot.hxx
+--- sc/source/filter/inc/xipivot.hxx	2006-07-10 09:59:59.000000000 -0400
++++ sc/source/filter/inc/xipivot.hxx	2006-10-31 06:50:03.000000000 -0500
+@@ -343,6 +343,8 @@ public:
+     void                ReadSxdi( XclImpStream& rStrm );
+     /** Reads an SXEX record containing additional settings for the pivot table. */
+     void                ReadSxex( XclImpStream& rStrm );
++    /** Reads an SX_AUTOFORMAT record that specifies the pivot tables autoformat. */
++    void                ReadSxAutoformat( XclImpStream& rStrm );
+ 
+     // ------------------------------------------------------------------------
+ 
+@@ -357,6 +359,7 @@ private:
+ 
+     XclPTInfo           maPTInfo;           /// General info about the pivot table (SXVIEW record).
+     XclPTExtInfo        maPTExtInfo;        /// Extended info about the pivot table (SXEX record).
++    XclPTAutoFormat     maPTAutoFormat;     /// The selected autoformat (SX_AUTOFORMAT)
+     XclImpPTFieldVec    maFields;           /// Vector containing all fields.
+     XclImpPTFieldRef    mxCurrField;        /// Current field for importing additional info.
+     ScfStringVec        maVisFieldNames;    /// Vector containing all visible field names.
+@@ -417,6 +420,8 @@ public:
+     void                ReadSxvi( XclImpStream& rStrm );
+     /** Reads an SXEX record containing additional settings for a pivot table. */
+     void                ReadSxex( XclImpStream& rStrm );
++    /** Reads an SX_AUTOFORMAT record that specifies the pivot tables autoformat. */
++    void                ReadSxAutoformat( XclImpStream& rStrm );
+ 
+     // ------------------------------------------------------------------------
+ 
+diff -rup sc/source/filter/inc/xlpivot.hxx sc/source/filter/inc/xlpivot.hxx
+--- sc/source/filter/inc/xlpivot.hxx	2006-10-18 07:46:00.000000000 -0400
++++ sc/source/filter/inc/xlpivot.hxx	2006-11-01 12:06:03.000000000 -0500
+@@ -63,6 +63,9 @@
+ #ifndef SC_XLADDRESS_HXX
+ #include "xladdress.hxx"
+ #endif
++#ifndef SC_DPOBJECT_HXX
++#include "dpobject.hxx"
++#endif
+ 
+ class XclImpStream;
+ class XclExpStream;
+@@ -94,6 +97,10 @@ const sal_uInt16 EXC_PT_MAXDATACOUNT    
+ // pivot table items
+ const sal_uInt16 EXC_PT_MAXITEMCOUNT        = 32500;
+ 
++const sal_uInt16 EXC_PT_AUTOFMT_HEADER      = 0x810;
++const sal_uInt16 EXC_PT_AUTOFMT_ZERO        = 0;
++const sal_uInt32 EXC_PT_AUTOFMT_FLAGS       = 0x20;
++
+ /** Data type of a pivot cache item. */
+ enum XclPCItemType
+ {
+@@ -412,6 +419,9 @@ const double EXC_SXDBEX_CREATION_DATE   
+ const sal_uInt16 EXC_ID_SXFDBTYPE           = 0x01BB;
+ const sal_uInt16 EXC_SXFDBTYPE_DEFAULT      = 0x0000;
+ 
++// (0x0810) PIVOT_AUTOFORMAT	// 2006/10/17 JEG no docs, but seems to contain the autoformat
++const sal_uInt16 EXC_ID_SX_AUTOFORMAT       = 0x0810;
++
+ // ============================================================================
+ // Pivot cache
+ // ============================================================================
+@@ -798,5 +808,22 @@ XclExpStream& operator<<( XclExpStream& 
+ 
+ // ============================================================================
+ 
++// Pivot table autoformat settings ==============================================
++
++/** Pivot table autoformat settings (SX_AUTOFORMAT record). */
++struct XclPTAutoFormat
++{
++    sal_uInt32          mbReport;     		/// 2 for report* fmts ?
++    sal_uInt8           mnAutoFormat;       /// AutoFormat ID
++    sal_uInt32          mbGridLayout;       /// 0 == gridlayout, 0x10 == modern
++
++    explicit            XclPTAutoFormat();
++	void				Init( const ScDPObject& rDPObj );
++};
++
++XclImpStream& operator>>( XclImpStream& rStrm, XclPTAutoFormat& rInfo );
++XclExpStream& operator<<( XclExpStream& rStrm, const XclPTAutoFormat& rInfo );
++
++// ============================================================================
+ #endif
+ 
+diff -rup sc/source/filter/xml/XMLExportDataPilot.cxx sc/source/filter/xml/XMLExportDataPilot.cxx
+--- sc/source/filter/xml/XMLExportDataPilot.cxx	2006-10-30 10:45:07.000000000 -0500
++++ sc/source/filter/xml/XMLExportDataPilot.cxx	2006-11-01 16:30:11.000000000 -0500
+@@ -851,6 +851,8 @@ void ScXMLExportDataPilot::WriteDataPilo
+                             rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SHOW_FILTER_BUTTON, XML_FALSE);
+                         if (!pDPSave->GetDrillDown())
+                             rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DRILL_DOWN_ON_DOUBLE_CLICK, XML_FALSE);
++						if ((*pDPs)[i]->GetHeaderLayout ())
++                            rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_HEADER_GRID_LAYOUT, XML_TRUE);
+ 						SvXMLElementExport aElemDP(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_TABLE, sal_True, sal_True);
+ 						rExport.CheckAttrList();
+ 						if ((*pDPs)[i]->IsSheetData())
+diff -rup sc/source/filter/xml/xmldpimp.cxx sc/source/filter/xml/xmldpimp.cxx
+--- sc/source/filter/xml/xmldpimp.cxx	2006-07-21 08:52:13.000000000 -0400
++++ sc/source/filter/xml/xmldpimp.cxx	2006-11-01 16:15:47.000000000 -0500
+@@ -158,7 +158,8 @@ ScXMLDataPilotTableContext::ScXMLDataPil
+ 	bTargetRangeAddress(sal_False),
+ 	bSourceCellRange(sal_False),
+     bShowFilter(sal_True),
+-    bDrillDown(sal_True)
++    bDrillDown(sal_True),
++	bHeaderGridLayout(sal_False)
+ {
+ 	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
+ 	const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataPilotTableAttrTokenMap();
+@@ -221,6 +222,11 @@ ScXMLDataPilotTableContext::ScXMLDataPil
+                 bDrillDown = IsXMLToken(sValue, XML_TRUE);
+             }
+             break;
++			case XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT :
++			{
++				bHeaderGridLayout = IsXMLToken(sValue, XML_TRUE);
++			}
++            break;
+ 		}
+ 	}
+ 
+@@ -342,6 +348,7 @@ void ScXMLDataPilotTableContext::EndElem
+ 		pDPObject->SetName(sDataPilotTableName);
+ 		pDPObject->SetTag(sApplicationData);
+ 		pDPObject->SetOutRange(aTargetRangeAddress);
++		pDPObject->SetHeaderLayout(bHeaderGridLayout);
+ 		switch (nSourceType)
+ 		{
+ 			case SQL :
+diff -rup sc/source/filter/xml/xmldpimp.hxx sc/source/filter/xml/xmldpimp.hxx
+--- sc/source/filter/xml/xmldpimp.hxx	2005-10-25 07:00:50.000000000 -0400
++++ sc/source/filter/xml/xmldpimp.hxx	2006-11-01 15:37:02.000000000 -0500
+@@ -129,6 +129,7 @@ class ScXMLDataPilotTableContext : publi
+ 	sal_Bool		bSourceCellRange;
+     sal_Bool        bShowFilter;
+     sal_Bool        bDrillDown;
++	sal_Bool		bHeaderGridLayout;
+ 
+ 	const ScXMLImport& GetScImport() const { return (const ScXMLImport&)GetImport(); }
+ 	ScXMLImport& GetScImport() { return (ScXMLImport&)GetImport(); }
+diff -rup sc/source/filter/xml/xmlimprt.cxx sc/source/filter/xml/xmlimprt.cxx
+--- sc/source/filter/xml/xmlimprt.cxx	2006-07-21 08:53:26.000000000 -0400
++++ sc/source/filter/xml/xmlimprt.cxx	2006-11-01 16:17:43.000000000 -0500
+@@ -745,6 +745,7 @@ static __FAR_DATA SvXMLTokenMapEntry aDa
+ 	{ XML_NAMESPACE_TABLE, XML_BUTTONS,				    XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS				},
+ 	{ XML_NAMESPACE_TABLE, XML_SHOW_FILTER_BUTTON,	    XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON	},
+ 	{ XML_NAMESPACE_TABLE, XML_DRILL_DOWN_ON_DOUBLE_CLICK, XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN			},
++	{ XML_NAMESPACE_TABLE, XML_HEADER_GRID_LAYOUT,		XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT	},
+ 	XML_TOKEN_MAP_END
+ };
+ 
+diff -rup sc/source/filter/xml/xmlimprt.hxx sc/source/filter/xml/xmlimprt.hxx
+--- sc/source/filter/xml/xmlimprt.hxx	2006-04-20 09:26:00.000000000 -0400
++++ sc/source/filter/xml/xmlimprt.hxx	2006-11-01 15:35:08.000000000 -0500
+@@ -515,7 +515,8 @@ enum ScXMLDataPilotTableAttrTokens
+ 	XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS,
+ 	XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS,
+     XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON,
+-    XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN
++    XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN,
++    XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT
+ };
+ 
+ enum ScXMLDataPilotTableElemTokens
+diff -rup xmloff/inc/xmltoken.hxx xmloff/inc/xmltoken.hxx
+--- xmloff/inc/xmloff/xmltoken.hxx	2005-11-14 04:12:45.000000000 -0500
++++ xmloff/inc/xmloff/xmltoken.hxx	2006-11-01 15:33:48.000000000 -0500
+@@ -2494,6 +2494,7 @@ namespace xmloff { namespace token {
+ 
+         XML_SHOW_FILTER_BUTTON,
+         XML_DRILL_DOWN_ON_DOUBLE_CLICK,
++        XML_HEADER_GRID_LAYOUT,
+         XML_GROUPED_BY,
+         XML_DAYS,
+         XML_MONTHS,
+diff -rup xmloff/source/core/xmltoken.cxx xmloff/source/core/xmltoken.cxx
+--- xmloff/source/core/xmltoken.cxx	2006-10-24 09:33:59.000000000 -0400
++++ xmloff/source/core/xmltoken.cxx	2006-11-01 15:33:35.000000000 -0500
+@@ -2499,6 +2499,7 @@ namespace xmloff { namespace token {
+ 
+         TOKEN( "show-filter-button",                   XML_SHOW_FILTER_BUTTON ),
+         TOKEN( "drill-down-on-double-click",           XML_DRILL_DOWN_ON_DOUBLE_CLICK ),
++        TOKEN( "header-grid-layout",           		   XML_HEADER_GRID_LAYOUT ),
+         TOKEN( "grouped-by",                           XML_GROUPED_BY ),
+         TOKEN( "days",                                 XML_DAYS ),
+         TOKEN( "months",                               XML_MONTHS ),
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/jvmfwk-gij32.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/jvmfwk-gij32.diff
@@ -0,0 +1,26 @@
+--- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx.old	2006-12-08 22:15:06.000000000 +0100
++++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx	2006-12-08 22:15:34.000000000 +0100
+@@ -56,6 +56,14 @@
+ char const* const* GnuInfo::getJavaExePaths(int * size)
+ {
+     static char const * ar[] = {
++#if defined(__i386__)
++	"gij32",
++	"bin/gij32",
++	"gij32-4.2",
++	"bin/gij32-4.2",
++	"gij32-4.1",
++	"bin/gij32-4.1,"
++#endif
+         "gij",
+         "bin/gij",
+ 	"gij-4.3",
+@@ -64,7 +64,7 @@
+ 	"gij-4.2",
+ 	"bin/gij-4.2",
+ 	"gij-4.1",
+-	"bin/gij-4.1",
++	"bin/gij-4.1"
+     };
+     *size = sizeof (ar) / sizeof (char*);
+     return ar;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-macros.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-macros.diff
@@ -0,0 +1,1289 @@
+diff --git a/automation/inc/automation/communi.hxx b/automation/inc/automation/communi.hxx
+index 42ed266..1ff4a31 100644
+--- automation/inc/automation/communi.hxx
++++ automation/inc/automation/communi.hxx
+@@ -98,7 +98,7 @@ public:
+ class CommunicationLinkViaSocket : public SimpleCommunicationLinkViaSocket, public osl::Thread
+ {
+ public:
+-	CommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
++	CommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket );
+ 	virtual ~CommunicationLinkViaSocket();
+ 
+ 	virtual BOOL IsCommunicationError();
+@@ -164,7 +164,7 @@ protected:
+ 
+ private:
+ 	CommunicationManagerServerViaSocket* pMyServer;
+-	NAMESPACE_VOS(OAcceptorSocket) *pAcceptorSocket;
++	vos::OAcceptorSocket *pAcceptorSocket;
+ 	ULONG nPortToListen;
+ 	USHORT nMaxConnections;
+ 	ULONG nAddConnectionEventId;
+@@ -193,7 +193,7 @@ private:
+ 	ByteString aHostToTalk;
+ 	ULONG nPortToTalk;
+ protected:
+-	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, NAMESPACE_VOS(OConnectorSocket) *pCS ){ return new CommunicationLinkViaSocket( pCM, pCS ); }
++	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, vos::OConnectorSocket *pCS ){ return new CommunicationLinkViaSocket( pCM, pCS ); }
+ };
+ 
+ #endif
+diff --git a/automation/inc/automation/simplecm.hxx b/automation/inc/automation/simplecm.hxx
+index 80eb849..c8486f1 100644
+--- automation/inc/automation/simplecm.hxx
++++ automation/inc/automation/simplecm.hxx
+@@ -357,14 +357,14 @@ private:
+ 	ByteString aMyName;
+ 
+ 	TCPIO* pTCPIO;
+-	NAMESPACE_VOS(OStreamSocket) *pStreamSocket;
++	vos::OStreamSocket *pStreamSocket;
+ 
+ protected:
+-	SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
++	SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket );
+ 	virtual ~SimpleCommunicationLinkViaSocket();
+ 
+-    NAMESPACE_VOS(OStreamSocket)* GetStreamSocket() { return pStreamSocket; }
+-    void SetStreamSocket( NAMESPACE_VOS(OStreamSocket)* pSocket );
++    vos::OStreamSocket* GetStreamSocket() { return pStreamSocket; }
++    void SetStreamSocket( vos::OStreamSocket* pSocket );
+ 
+ 	SvStream *pReceiveStream;
+ 	BOOL DoReceiveDataStream();				/// Recieve DataPacket from Socket
+@@ -378,7 +378,7 @@ protected:
+ class SimpleCommunicationLinkViaSocketWithReceiveCallbacks : public SimpleCommunicationLinkViaSocket
+ {
+ public:
+-	SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
++	SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, vos::OStreamSocket *pSocket );
+ 	~SimpleCommunicationLinkViaSocketWithReceiveCallbacks();
+ 	virtual BOOL ReceiveDataStream();
+ protected:
+@@ -391,7 +391,7 @@ class CommonSocketFunctions
+ public:
+ 	BOOL DoStartCommunication( CommunicationManager *pCM, ICommunicationManagerClient *pCMC, ByteString aHost, ULONG nPort );
+ protected:
+-	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, NAMESPACE_VOS(OConnectorSocket) *pCS )=0;
++	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, vos::OConnectorSocket *pCS )=0;
+ };
+ 
+ class SingleCommunicationManagerClientViaSocket : public SingleCommunicationManager, public ICommunicationManagerClient, CommonSocketFunctions
+@@ -407,7 +407,7 @@ private:
+ 	ByteString aHostToTalk;
+ 	ULONG nPortToTalk;
+ protected:
+-	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, NAMESPACE_VOS(OConnectorSocket) *pCS ){ return new SimpleCommunicationLinkViaSocketWithReceiveCallbacks( pCM, pCS ); }
++	virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, vos::OConnectorSocket *pCS ){ return new SimpleCommunicationLinkViaSocketWithReceiveCallbacks( pCM, pCS ); }
+ };
+ 
+ #endif
+diff --git a/automation/source/communi/communi.cxx b/automation/source/communi/communi.cxx
+index 292b15a..63f1ebb 100644
+--- automation/source/communi/communi.cxx
++++ automation/source/communi/communi.cxx
+@@ -89,7 +89,7 @@ SV_IMPL_PTRARR_SORT( CommunicationLinkList, CommunicationLink* );
+ 
+ osl::Mutex *pMPostUserEvent=NULL;		// Notwendig, da nicht threadfest
+ 
+-CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
++CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket )
+ : SimpleCommunicationLinkViaSocket( pMan, pSocket )
+ , nConnectionClosedEventId( 0 )
+ , nDataReceivedEventId( 0 )
+@@ -153,7 +153,7 @@ BOOL CommunicationLinkViaSocket::ShutdownCommunication()
+ 
+ 		join();
+ 
+-        NAMESPACE_VOS(OStreamSocket) *pTempSocket = GetStreamSocket();
++        vos::OStreamSocket *pTempSocket = GetStreamSocket();
+         SetStreamSocket( NULL );
+         delete pTempSocket;
+ 
+@@ -521,8 +521,8 @@ void CommunicationManagerServerAcceptThread::run()
+ 	if ( !nPortToListen )
+ 		return;
+ 
+-	pAcceptorSocket = new NAMESPACE_VOS(OAcceptorSocket)();
+-	NAMESPACE_VOS(OInetSocketAddr) Addr;
++	pAcceptorSocket = new vos::OAcceptorSocket();
++	vos::OInetSocketAddr Addr;
+ 	Addr.setPort( nPortToListen );
+ 	pAcceptorSocket->setReuseAddr( 1 );
+ 	if ( !pAcceptorSocket->bind( Addr ) )
+@@ -535,14 +535,14 @@ void CommunicationManagerServerAcceptThread::run()
+ 	}
+ 
+ 
+-	NAMESPACE_VOS(OStreamSocket) *pStreamSocket = NULL;
++	vos::OStreamSocket *pStreamSocket = NULL;
+ 
+ 	while ( schedule() )
+ 	{
+-		pStreamSocket = new NAMESPACE_VOS(OStreamSocket);
++		pStreamSocket = new vos::OStreamSocket;
+ 		switch ( pAcceptorSocket->acceptConnection( *pStreamSocket ) )
+ 		{
+-		case NAMESPACE_VOS(ISocketTypes::TResult_Ok):
++		case vos::ISocketTypes::TResult_Ok:
+ 			{
+ 				pStreamSocket->setTcpNoDelay( 1 );
+ 
+@@ -558,17 +558,17 @@ void CommunicationManagerServerAcceptThread::run()
+ 				}
+ 			}
+ 			break;
+-		case NAMESPACE_VOS(ISocketTypes::TResult_TimedOut):
++		case vos::ISocketTypes::TResult_TimedOut:
+ 			delete pStreamSocket;
+ 			pStreamSocket = NULL;
+ 			break;
+-		case NAMESPACE_VOS(ISocketTypes::TResult_Error):
++		case vos::ISocketTypes::TResult_Error:
+ 			delete pStreamSocket;
+ 			pStreamSocket = NULL;
+ 			break;
+ 
+-		case NAMESPACE_VOS(ISocketTypes::TResult_Interrupted):
+-		case NAMESPACE_VOS(ISocketTypes::TResult_InProgress):
++		case vos::ISocketTypes::TResult_Interrupted:
++		case vos::ISocketTypes::TResult_InProgress:
+ 			break;  // -Wall not handled...
+ 		}
+ 	}
+diff --git a/automation/source/simplecm/simplecm.cxx b/automation/source/simplecm/simplecm.cxx
+index 440179f..4aa883f 100644
+--- automation/source/simplecm/simplecm.cxx
++++ automation/source/simplecm/simplecm.cxx
+@@ -147,7 +147,7 @@ void CommunicationLink::SetApplication( const ByteString& aApp )
+ }
+ 
+ 
+-SimpleCommunicationLinkViaSocket::SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
++SimpleCommunicationLinkViaSocket::SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, vos::OStreamSocket *pSocket )
+ : CommunicationLink( pMan )
+ , aCommunicationPartner()
+ , aMyName()
+@@ -169,7 +169,7 @@ SimpleCommunicationLinkViaSocket::~SimpleCommunicationLinkViaSocket()
+     pStreamSocket = NULL;
+ }
+ 
+-void SimpleCommunicationLinkViaSocket::SetStreamSocket( NAMESPACE_VOS(OStreamSocket)* pSocket )
++void SimpleCommunicationLinkViaSocket::SetStreamSocket( vos::OStreamSocket* pSocket )
+ {
+     if ( pTCPIO )
+         pTCPIO->SetStreamSocket( pSocket );
+@@ -213,9 +213,9 @@ ByteString SimpleCommunicationLinkViaSocket::GetCommunicationPartner( CM_NameTyp
+ 			case CM_DOTTED:
+ 				{
+ 					rtl::OUString aDotted;
+-					NAMESPACE_VOS(OSocketAddr) *pPeerAdr = new NAMESPACE_VOS(OSocketAddr);
++					vos::OSocketAddr *pPeerAdr = new vos::OSocketAddr;
+ 					pStreamSocket->getPeerAddr( *pPeerAdr );
+-					((NAMESPACE_VOS(OInetSocketAddr*))pPeerAdr)->getDottedAddr( aDotted );
++					((vos::OInetSocketAddr*)pPeerAdr)->getDottedAddr( aDotted );
+ 					delete pPeerAdr;
+ 					return ByteString( UniString(aDotted), RTL_TEXTENCODING_UTF8 );
+ 				}
+@@ -245,9 +245,9 @@ ByteString SimpleCommunicationLinkViaSocket::GetMyName( CM_NameType eType )
+ 			case CM_DOTTED:
+ 				{
+ 					rtl::OUString aDotted;
+-					NAMESPACE_VOS(OSocketAddr) *pPeerAdr = new NAMESPACE_VOS(OSocketAddr);
++					vos::OSocketAddr *pPeerAdr = new vos::OSocketAddr;
+ 					pStreamSocket->getLocalAddr( *pPeerAdr );
+-					((NAMESPACE_VOS(OInetSocketAddr*))pPeerAdr)->getDottedAddr( aDotted );
++					((vos::OInetSocketAddr*)pPeerAdr)->getDottedAddr( aDotted );
+ 					delete pPeerAdr;
+ 					return ByteString( UniString(aDotted), RTL_TEXTENCODING_UTF8 );
+ 				}
+@@ -363,7 +363,7 @@ BOOL SimpleCommunicationLinkViaSocket::SendHandshake( HandshakeType aHandshakeTy
+ 	return !bWasError;
+ }
+ 
+-SimpleCommunicationLinkViaSocketWithReceiveCallbacks::SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
++SimpleCommunicationLinkViaSocketWithReceiveCallbacks::SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, vos::OStreamSocket *pSocket )
+ : SimpleCommunicationLinkViaSocket( pMan, pSocket )
+ {
+ }
+@@ -407,7 +407,7 @@ BOOL SimpleCommunicationLinkViaSocketWithReceiveCallbacks::ShutdownCommunication
+ 	if ( GetStreamSocket() )
+ 		GetStreamSocket()->close();
+ 
+-    NAMESPACE_VOS(OStreamSocket) *pTempSocket = GetStreamSocket();
++    vos::OStreamSocket *pTempSocket = GetStreamSocket();
+     SetStreamSocket( NULL );
+     delete pTempSocket;
+ 
+@@ -448,7 +448,7 @@ BOOL CommunicationManager::StartCommunication( ByteString aHost, ULONG nPort )
+ ByteString CommunicationManager::GetMyName( CM_NameType )
+ {
+ 	rtl::OUString aHostname;
+-	NAMESPACE_VOS(OSocketAddr)::getLocalHostname( aHostname );
++	vos::OSocketAddr::getLocalHostname( aHostname );
+ 	return ByteString( UniString(aHostname), RTL_TEXTENCODING_UTF8 );
+ }
+ 
+@@ -683,8 +683,8 @@ SingleCommunicationManagerClientViaSocket::SingleCommunicationManagerClientViaSo
+ 
+ BOOL CommonSocketFunctions::DoStartCommunication( CommunicationManager *pCM, ICommunicationManagerClient *pCMC, ByteString aHost, ULONG nPort )
+ {
+-	NAMESPACE_VOS(OInetSocketAddr) Addr;
+-	NAMESPACE_VOS(OConnectorSocket) *pConnSocket;
++	vos::OInetSocketAddr Addr;
++	vos::OConnectorSocket *pConnSocket;
+ 
+ 	Addr.setAddr( rtl::OUString( UniString( aHost, RTL_TEXTENCODING_UTF8 ) ) );
+ 	Addr.setPort( nPort );
+@@ -694,9 +694,9 @@ BOOL CommonSocketFunctions::DoStartCommunication( CommunicationManager *pCM, ICo
+ 	aTV.Nanosec = 0;
+ 	do
+ 	{
+-		pConnSocket = new NAMESPACE_VOS(OConnectorSocket)();
++		pConnSocket = new vos::OConnectorSocket();
+ 		pConnSocket->setTcpNoDelay( 1 );
+-		if ( pConnSocket->connect( Addr, &aTV ) == NAMESPACE_VOS(ISocketTypes::TResult_Ok) )
++		if ( pConnSocket->connect( Addr, &aTV ) == vos::ISocketTypes::TResult_Ok )
+ 		{
+ 			pConnSocket->setTcpNoDelay( 1 );
+ 
+diff --git a/automation/source/simplecm/tcpio.cxx b/automation/source/simplecm/tcpio.cxx
+index d546690..ca640c7 100644
+--- automation/source/simplecm/tcpio.cxx
++++ automation/source/simplecm/tcpio.cxx
+@@ -71,7 +71,7 @@ comm_USHORT TCPIO::ReceiveBytes( void* pBuffer, comm_UINT32 nLen )
+ 
+ 
+ // helper
+-void TCPIO::SetStreamSocket( NAMESPACE_VOS(OStreamSocket) *pSocket )
++void TCPIO::SetStreamSocket( vos::OStreamSocket *pSocket )
+ {
+     osl::MutexGuard aRGuard( aMSocketReadAccess );
+     osl::MutexGuard aWGuard( aMSocketWriteAccess );
+diff --git a/automation/source/simplecm/tcpio.hxx b/automation/source/simplecm/tcpio.hxx
+index bb41764..e078875 100644
+--- automation/source/simplecm/tcpio.hxx
++++ automation/source/simplecm/tcpio.hxx
+@@ -49,14 +49,14 @@
+ class TCPIO : public ITransmiter, public IReceiver
+ {
+ private:
+-	NAMESPACE_VOS(OStreamSocket) *pStreamSocket;
++	vos::OStreamSocket *pStreamSocket;
+     osl::Mutex aMSocketReadAccess;
+     osl::Mutex aMSocketWriteAccess;
+ 
+ public:
+ 
+ 	///
+-	TCPIO( NAMESPACE_VOS(OStreamSocket) *pSocket ):pStreamSocket( pSocket ){}
++	TCPIO( vos::OStreamSocket *pSocket ):pStreamSocket( pSocket ){}
+ 	virtual ~TCPIO(){}
+ 
+ 	
+@@ -67,7 +67,7 @@ public:
+ 	virtual comm_USHORT ReceiveBytes( void* pBuffer, comm_UINT32 nLen );
+ 
+     // helper
+-	void SetStreamSocket( NAMESPACE_VOS(OStreamSocket) *pSocket );
++	void SetStreamSocket( vos::OStreamSocket *pSocket );
+ 
+ };
+ 
+diff --git a/automation/source/testtool/httprequest.cxx b/automation/source/testtool/httprequest.cxx
+index 2090466..778be47 100644
+--- automation/source/testtool/httprequest.cxx
++++ automation/source/testtool/httprequest.cxx
+@@ -91,7 +91,7 @@ BOOL HttpRequest::Execute()
+     Init();
+ 
+     // Open channel to standard redir host
+-	NAMESPACE_VOS(OInetSocketAddr) aConnectAddr;
++	vos::OInetSocketAddr aConnectAddr;
+ 
+     if ( aProxyHost.Len() )
+     {
+@@ -108,8 +108,8 @@ BOOL HttpRequest::Execute()
+ 	aTV.Seconds = 10;		// Warte 10 Sekunden
+ 	aTV.Nanosec = 0;
+ 
+-    pOutSocket = new NAMESPACE_VOS(OConnectorSocket)();
+-	if ( pOutSocket->connect( aConnectAddr, &aTV ) == NAMESPACE_VOS(ISocketTypes::TResult_Ok) )
++    pOutSocket = new vos::OConnectorSocket();
++	if ( pOutSocket->connect( aConnectAddr, &aTV ) == vos::ISocketTypes::TResult_Ok )
+ 	{
+ //		pOutSocket->setTcpNoDelay( 1 );
+ 	}
+diff --git a/basic/inc/pch/precompiled_basic.hxx b/basic/inc/pch/precompiled_basic.hxx
+index 1808ad3..41e4383 100644
+--- basic/inc/pch/precompiled_basic.hxx
++++ basic/inc/pch/precompiled_basic.hxx
+@@ -284,7 +284,7 @@
+ #include "vcl/wrkwin.hxx"
+ 
+ #include "osl/diagnose.h"
+-#include "vos/macros.hxx"
++#include "sal/macros.h"
+ #include "osl/mutex.hxx"
+ 
+ #include "xmlscript/xmldlg_imexp.hxx"
+diff --git a/basic/source/classes/eventatt.cxx b/basic/source/classes/eventatt.cxx
+index 048a012..fb6a4a0 100644
+--- basic/source/classes/eventatt.cxx
++++ basic/source/classes/eventatt.cxx
+@@ -335,7 +335,7 @@ Any BasicScriptListener_Impl::approveFiring( const ScriptEvent& aScriptEvent )
+ void BasicScriptListener_Impl::disposing(const EventObject& ) throw ( RuntimeException )
+ {
+ 	// TODO: ???
+-	//NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
++	//vos::OGuard guard( Application::GetSolarMutex() );
+ 	//xSbxObj.Clear();
+ }
+ 
+@@ -577,7 +577,7 @@ Any DialogAllListener_Impl::approveFiring( const AllEventObject& Event )
+ void DialogAllListener_Impl::disposing(const EventObject& ) throw ( RuntimeException )
+ {
+ 	// TODO: ???
+-	//NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
++	//vos::OGuard guard( Application::GetSolarMutex() );
+ 	//xSbxObj.Clear();
+ }
+ 
+diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
+index ee6f507..a3de51a 100644
+--- basic/source/classes/sbxmod.cxx
++++ basic/source/classes/sbxmod.cxx
+@@ -38,7 +38,7 @@
+ 
+ #include <list>
+ 
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #include <vcl/svapp.hxx>
+ 
+ #ifndef _STREAM_HXX //autogen
+diff --git a/binfilter/bf_basic/source/classes/sbxmod.cxx b/binfilter/bf_basic/source/classes/sbxmod.cxx
+index 9a6b628..373e2f9 100644
+--- binfilter/bf_basic/source/classes/sbxmod.cxx
++++ binfilter/bf_basic/source/classes/sbxmod.cxx
+@@ -35,7 +35,7 @@
+ 
+ #include <list>
+ 
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #include <vcl/svapp.hxx>
+ 
+ #ifndef _STREAM_HXX //autogen
+diff --git a/comphelper/source/eventattachermgr/eventattachermgr.cxx b/comphelper/source/eventattachermgr/eventattachermgr.cxx
+index 1d5b579..1016399 100644
+--- comphelper/source/eventattachermgr/eventattachermgr.cxx
++++ comphelper/source/eventattachermgr/eventattachermgr.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _OSL_DIAGNOSE_H_
+ #include <osl/diagnose.h>
+ #endif
+-#ifndef _VOS_MACROS_HXX_
+-#include <vos/macros.hxx>
++#ifndef _SAL_MACROS_H_
++#include <sal/macros.h>
+ #endif
+ 
+ #ifndef _COMPHELPER_EVENTATTACHERMGR_HXX_
+diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx
+index 6cd4fee..54f777b 100644
+--- connectivity/source/drivers/file/FResultSet.cxx
++++ connectivity/source/drivers/file/FResultSet.cxx
+@@ -1007,7 +1007,7 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset,
+ //
+ 	INT32 nTempPos = m_nRowPos;
+ 	// exclusiver zugriff auf die Tabelle
+-	//	NAMESPACE_VOS(OGuard)* pGuard = m_pTable->Lock();
++	//	vos::OGuard* pGuard = m_pTable->Lock();
+ 
+ 	if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT &&
+ 		!isCount())
+@@ -1252,7 +1252,7 @@ BOOL OResultSet::OpenImpl()
+ 	m_nRowCountResult = -1;
+ 
+ 	// exclusiver zugriff auf die Tabelle
+-	//	NAMESPACE_VOS(OGuard)* pGuard = pTable->Lock();
++	//	vos::OGuard* pGuard = pTable->Lock();
+ 	m_nLastVisitedPos = m_pTable->getCurrentLastPos();
+ 
+ 	switch(m_aSQLIterator.getStatementType())
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 54fdd33..c531290 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -545,7 +545,7 @@
+ 
+ #include "osl/conditn.hxx"
+ #include "osl/diagnose.h"
+-#include "vos/macros.hxx"
++#include "sal/macros.h"
+ #include "vos/module.hxx"
+ #include "osl/mutex.hxx"
+ #include "vos/pipe.hxx"
+diff --git a/extensions/source/scanner/scanwin.cxx b/extensions/source/scanner/scanwin.cxx
+index 1a1014a..cfa1f64 100644
+--- extensions/source/scanner/scanwin.cxx
++++ extensions/source/scanner/scanwin.cxx
+@@ -143,7 +143,7 @@ class ImpTwain : public ::cppu::WeakImplHelper1< util::XCloseListener >
+ 	TW_IDENTITY									aSrcIdent;
+ 	Link										aNotifyLink;
+ 	DSMENTRYPROC								pDSM;
+-	NAMESPACE_VOS( OModule )*					pMod;
++	vos::OModule*					pMod;
+ 	ULONG										nCurState;
+ 	HWND						                hTwainWnd;
+ 	HHOOK						                hTwainHook;
+diff --git a/extensions/source/scanner/twain.cxx b/extensions/source/scanner/twain.cxx
+index dd9fcad..27988f9 100644
+--- extensions/source/scanner/twain.cxx
++++ extensions/source/scanner/twain.cxx
+@@ -250,7 +250,7 @@ void ImpTwain::ImplOpenSourceManager()
+ {
+ 	if( 1 == nCurState )
+ 	{
+-		pMod = new NAMESPACE_VOS( OModule )();
++		pMod = new vos::OModule();
+ 
+ 		if( pMod->load( TWAIN_LIBNAME ) )
+ 		{
+diff --git a/extensions/source/scanner/twain.hxx b/extensions/source/scanner/twain.hxx
+index 5d43b5c..7b8dbdd 100644
+--- extensions/source/scanner/twain.hxx
++++ extensions/source/scanner/twain.hxx
+@@ -65,7 +65,7 @@ class ImpTwain
+ 	Link						aNotifyLink;
+ 	Bitmap						aBitmap;
+ 	DSMENTRYPROC				pDSM;
+-	NAMESPACE_VOS( OModule )*	pMod;
++	vos::OModule*	pMod;
+ 	ULONG						nCurState;
+ 
+ 	void						ImplCreate();
+diff --git a/extensions/workben/testpgp.cxx b/extensions/workben/testpgp.cxx
+index a81405c..b83aba4 100644
+--- extensions/workben/testpgp.cxx
++++ extensions/workben/testpgp.cxx
+@@ -47,8 +47,8 @@
+ #include <rtl/wstring>
+ #endif
+ 
+-#ifndef _VOS_MACROS_HXX_
+-#include <vos/macros.hxx>
++#ifndef _SAL_MACROS_H_
++#include <sal/macros.h>
+ #endif
+ 
+ #ifndef _USR_SMARTSERVICES_HXX_
+@@ -334,7 +334,7 @@ sal_Int32 SAL_CALL DataSource_Impl::readBytes (
+ 		throw IOException();
+ 
+ 	sal_Int32 k = m_buffer.getLength() - m_position;
+-	k = VOS_BOUND(k, 0, nBytesToRead);
++	k = SAL_BOUND(k, 0, nBytesToRead);
+ 	if (k > 0)
+ 	{
+ 		rData.realloc(k);
+@@ -606,7 +606,7 @@ BOOL install (
+ 	String aModule ("module://");
+ 	char   pBuffer[1024];
+ 
+-	NAMESPACE_VOS(ORealDynamicLoader)::computeModuleName (
++	vos::ORealDynamicLoader::computeModuleName (
+ 		prefix, pBuffer, sizeof(pBuffer));
+ 	aModule += pBuffer;
+ 
+@@ -624,7 +624,7 @@ BOOL uninstall (
+ 	String aModule ("module://");
+ 	char   pBuffer[1024];
+ 
+-	NAMESPACE_VOS(ORealDynamicLoader)::computeModuleName (
++	vos::ORealDynamicLoader::computeModuleName (
+ 		prefix, pBuffer, sizeof(pBuffer));
+ 	aModule += pBuffer;
+ 
+diff --git a/goodies/inc/pch/precompiled_goodies.hxx b/goodies/inc/pch/precompiled_goodies.hxx
+index 3adc329..92e927b 100644
+--- goodies/inc/pch/precompiled_goodies.hxx
++++ goodies/inc/pch/precompiled_goodies.hxx
+@@ -174,7 +174,7 @@
+ #include "vcl/virdev.hxx"
+ #include "vcl/window.hxx"
+ 
+-#include "vos/macros.hxx"
++#include "sal/macros.h"
+ #include "osl/mutex.hxx"
+ #include "vos/timer.hxx"
+ //---MARKER---
+diff --git a/goodies/source/graphic/grfmgr2.cxx b/goodies/source/graphic/grfmgr2.cxx
+index e547eab..97c8e30 100644
+--- goodies/source/graphic/grfmgr2.cxx
++++ goodies/source/graphic/grfmgr2.cxx
+@@ -36,7 +36,7 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_goodies.hxx"
+ 
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #include <vcl/bmpacc.hxx>
+ #include <tools/poly.hxx>
+ #include <vcl/outdev.hxx>
+diff --git a/sal/inc/sal/macros.h b/sal/inc/sal/macros.h
+index 18aa63b..e679905 100644
+--- sal/inc/sal/macros.h
++++ sal/inc/sal/macros.h
+@@ -42,6 +42,9 @@
+ #ifndef SAL_MIN
+ #	define SAL_MIN(a,b)            (((a) < (b)) ? (a) : (b))
+ #endif
++#ifndef SAL_ABS
++#	define SAL_ABS(a)              (((a) < 0) ? (-(a)) : (a))
++#endif
+ 
+ #ifndef SAL_FIELDOFFSET
+ #	define SAL_FIELDOFFSET(type, field) ((sal_Int32)(&((type *)16)->field) - 16)
+diff --git a/sc/inc/pch/precompiled_sc.hxx b/sc/inc/pch/precompiled_sc.hxx
+index 7566c40..bbef9da 100644
+--- sc/inc/pch/precompiled_sc.hxx
++++ sc/inc/pch/precompiled_sc.hxx
+@@ -251,7 +251,7 @@
+ #include <vcl/vclevent.hxx>
+ #include <vcl/window.hxx>
+ #include <vcl/wintypes.hxx>
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #include <vos/object.hxx>
+ #include <vos/types.hxx>
+ #include <wchar.h>
+diff --git a/sc/source/filter/inc/filt_pch.hxx b/sc/source/filter/inc/filt_pch.hxx
+index 7f5d399..d31ae05 100644
+--- sc/source/filter/inc/filt_pch.hxx
++++ sc/source/filter/inc/filt_pch.hxx
+@@ -173,7 +173,7 @@
+ #include <svx/fhgtitem.hxx>
+ #include <vos/types.hxx>
+ #include <vos/object.hxx>
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #include <tools/unqid.hxx>
+ #include <com/sun/star/uno/Sequence.h>
+ #include <uno/sequence2.h>
+diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
+index e2a1312..5b4f7cf 100644
+--- sfx2/source/dialog/filedlghelper.cxx
++++ sfx2/source/dialog/filedlghelper.cxx
+@@ -2568,7 +2568,7 @@ void FileDialogHelper::SetDisplayDirectory( const String& _rPath )
+         if ( sFolder.getLength() == 0 )
+         {
+             // _rPath is not a valid path -> fallback to home directory
+-            NAMESPACE_VOS( OSecurity ) aSecurity;
++            vos::OSecurity aSecurity;
+             aSecurity.getHomeDir( sFolder );
+         }
+         mpImp->displayFolder( sFolder );
+diff --git a/so3/source/persist/transprt.cxx b/so3/source/persist/transprt.cxx
+index 017b4ff..aad5e17 100644
+--- binfilter/bf_so3/source/persist/transprt.cxx
++++ binfilter/bf_so3/source/persist/transprt.cxx
+@@ -124,8 +124,8 @@
+ #include <cppuhelper/weak.hxx>
+ #endif
+ 
+-#ifndef _VOS_MACROS_HXX_
+-#include <vos/macros.hxx>
++#ifndef _SAL_MACROS_H_
++#include <sal/macros.h>
+ #endif
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+@@ -715,7 +715,7 @@ ErrCode UcbTransportLockBytes::ReadAt (
+ 	Sequence<sal_Int8> aData;
+ 	sal_Int32          nSize;
+ 
+-	nCount = VOS_MIN(nCount, 0x7FFFFFFF);
++	nCount = SAL_MIN(nCount, 0x7FFFFFFF);
+ 	try
+ 	{
+ 		while (!m_bTerminated)
+@@ -747,7 +747,7 @@ ErrCode UcbTransportLockBytes::ReadAt (
+ 	if (pRead)
+ 		*pRead = ULONG(nSize);
+ 
+-	sal_uInt32 nRead = VOS_MAX(m_nRead, nPos + nSize);
++	sal_uInt32 nRead = SAL_MAX(m_nRead, nPos + nSize);
+ 	SAL_CONST_CAST(UcbTransportLockBytes*, this)->m_nRead = nRead;
+ 
+ 	return ERRCODE_NONE;
+diff --git a/sot/source/sdstor/stgcache.cxx b/sot/source/sdstor/stgcache.cxx
+index 1891f9a..054d463 100644
+--- sot/source/sdstor/stgcache.cxx
++++ sot/source/sdstor/stgcache.cxx
+@@ -43,7 +43,7 @@
+ #if defined(_MSC_VER) && (_MSC_VER<1200)
+ #include <tools/postsys.h>
+ #endif
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ 
+ #include <string.h>
+ 
+@@ -68,7 +68,7 @@ typedef std::hash_map
+ 	INT32,
+ 	StgPage *,
+ 	std::hash< INT32 >,
+-	NAMESPACE_STD(equal_to)< INT32 >
++	std::equal_to< INT32 >
+ > UsrStgPagePtr_Impl;
+ #ifdef WNT
+ #pragma warning( disable: 4786 )
+diff --git a/starmath/source/math_pch.cxx b/starmath/source/math_pch.cxx
+index 598d33a..0d93acd 100644
+--- starmath/source/math_pch.cxx
++++ starmath/source/math_pch.cxx
+@@ -131,7 +131,7 @@
+ #include <osl/types.h>
+ #include <osl/interlck.h>
+ #include <vos/object.hxx>
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #include <smdll.hxx>
+ #include <sfx2/sfxsids.hrc>
+ #include <chaos/cntids.hrc>
+diff --git a/svtools/source/dialogs/filedlg2.cxx b/svtools/source/dialogs/filedlg2.cxx
+index 1c47520..d748d7b 100644
+--- svtools/source/dialogs/filedlg2.cxx
++++ svtools/source/dialogs/filedlg2.cxx
+@@ -373,7 +373,7 @@ IMPL_LINK( ImpPathDialog, ClickHdl, Button*, pBtn )
+ 	if ( pBtn == pHomeBtn )
+ 	{
+ 		::rtl::OUString aHomeDir;
+-		NAMESPACE_VOS( OSecurity ) aSecurity;
++		vos::OSecurity aSecurity;
+ 		if ( aSecurity.getHomeDir( aHomeDir ) )
+ 		{
+ 			DirEntry aFile ( aHomeDir );
+diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx
+index b9a1b08..95aa23b 100644
+--- tools/inc/pch/precompiled_tools.hxx
++++ tools/inc/pch/precompiled_tools.hxx
+@@ -91,7 +91,7 @@
+ #include "sys/stat.h"
+ #include "sys/types.h"
+ 
+-#include "vos/macros.hxx"
++#include "sal/macros.h"
+ #include "osl/mutex.hxx"
+ #include "vos/signal.hxx"
+ #include "vos/timer.hxx"
+diff --git a/tools/source/generic/color.cxx b/tools/source/generic/color.cxx
+index 97dcb27..3d1f4dd 100644
+--- tools/source/generic/color.cxx
++++ tools/source/generic/color.cxx
+@@ -38,8 +38,8 @@
+ 
+ #include <stdlib.h>
+ 
+-#ifndef _VOS_MACROS_HXX_
+-#include <vos/macros.hxx>
++#ifndef _SAL_MACROS_H_
++#include <sal/macros.h>
+ #endif
+ 
+ #ifndef _TOOLS_COLOR_HXX
+@@ -114,18 +114,18 @@ UINT8 Color::GetColorError( const Color& rCompareColor ) const
+ 
+ void Color::IncreaseLuminance( UINT8 cLumInc )
+ {
+-	SetRed( (UINT8) VOS_BOUND( (long) COLORDATA_RED( mnColor ) + cLumInc, 0L, 255L ) );
+-	SetGreen( (UINT8) VOS_BOUND( (long) COLORDATA_GREEN( mnColor ) + cLumInc, 0L, 255L ) );
+-	SetBlue( (UINT8) VOS_BOUND( (long) COLORDATA_BLUE( mnColor ) + cLumInc, 0L, 255L ) );
++	SetRed( (UINT8) SAL_BOUND( (long) COLORDATA_RED( mnColor ) + cLumInc, 0L, 255L ) );
++	SetGreen( (UINT8) SAL_BOUND( (long) COLORDATA_GREEN( mnColor ) + cLumInc, 0L, 255L ) );
++	SetBlue( (UINT8) SAL_BOUND( (long) COLORDATA_BLUE( mnColor ) + cLumInc, 0L, 255L ) );
+ }
+ 
+ // -----------------------------------------------------------------------
+ 
+ void Color::DecreaseLuminance( UINT8 cLumDec )
+ {
+-	SetRed( (UINT8) VOS_BOUND( (long) COLORDATA_RED( mnColor ) - cLumDec, 0L, 255L ) );
+-	SetGreen( (UINT8) VOS_BOUND( (long) COLORDATA_GREEN( mnColor ) - cLumDec, 0L, 255L ) );
+-	SetBlue( (UINT8) VOS_BOUND( (long) COLORDATA_BLUE( mnColor ) - cLumDec, 0L, 255L ) );
++	SetRed( (UINT8) SAL_BOUND( (long) COLORDATA_RED( mnColor ) - cLumDec, 0L, 255L ) );
++	SetGreen( (UINT8) SAL_BOUND( (long) COLORDATA_GREEN( mnColor ) - cLumDec, 0L, 255L ) );
++	SetBlue( (UINT8) SAL_BOUND( (long) COLORDATA_BLUE( mnColor ) - cLumDec, 0L, 255L ) );
+ }
+ 
+ // -----------------------------------------------------------------------
+@@ -137,9 +137,9 @@ void Color::IncreaseContrast( UINT8 cContInc )
+ 		const double fM = 128.0 / ( 128.0 - 0.4985 * cContInc );
+ 		const double fOff = 128.0 - fM * 128.0;
+ 
+-		SetRed( (UINT8) VOS_BOUND( _FRound( COLORDATA_RED( mnColor ) * fM + fOff ), 0L, 255L ) );
+-		SetGreen( (UINT8) VOS_BOUND( _FRound( COLORDATA_GREEN( mnColor ) * fM + fOff ), 0L, 255L ) );
+-		SetBlue( (UINT8) VOS_BOUND( _FRound( COLORDATA_BLUE( mnColor ) * fM + fOff ), 0L, 255L ) );
++		SetRed( (UINT8) SAL_BOUND( _FRound( COLORDATA_RED( mnColor ) * fM + fOff ), 0L, 255L ) );
++		SetGreen( (UINT8) SAL_BOUND( _FRound( COLORDATA_GREEN( mnColor ) * fM + fOff ), 0L, 255L ) );
++		SetBlue( (UINT8) SAL_BOUND( _FRound( COLORDATA_BLUE( mnColor ) * fM + fOff ), 0L, 255L ) );
+ 	}
+ }
+ 
+@@ -152,9 +152,9 @@ void Color::DecreaseContrast( UINT8 cContDec )
+ 		const double fM = ( 128.0 - 0.4985 * cContDec ) / 128.0;
+ 		const double fOff = 128.0 - fM * 128.0;
+ 
+-		SetRed( (UINT8) VOS_BOUND( _FRound( COLORDATA_RED( mnColor ) * fM + fOff ), 0L, 255L ) );
+-		SetGreen( (UINT8) VOS_BOUND( _FRound( COLORDATA_GREEN( mnColor ) * fM + fOff ), 0L, 255L ) );
+-		SetBlue( (UINT8) VOS_BOUND( _FRound( COLORDATA_BLUE( mnColor ) * fM + fOff ), 0L, 255L ) );
++		SetRed( (UINT8) SAL_BOUND( _FRound( COLORDATA_RED( mnColor ) * fM + fOff ), 0L, 255L ) );
++		SetGreen( (UINT8) SAL_BOUND( _FRound( COLORDATA_GREEN( mnColor ) * fM + fOff ), 0L, 255L ) );
++		SetBlue( (UINT8) SAL_BOUND( _FRound( COLORDATA_BLUE( mnColor ) * fM + fOff ), 0L, 255L ) );
+ 	}
+ }
+ 
+diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx
+index de4655d..e5dcdcf 100644
+--- tools/source/rc/resmgr.cxx
++++ tools/source/rc/resmgr.cxx
+@@ -882,18 +882,18 @@ void ResMgr::RscError_Impl( const sal_Char* pMessage, ResMgr* pResMgr,
+ 
+ static void RscException_Impl()
+ {
+-    switch ( NAMESPACE_VOS(OSignalHandler)::raise( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) )
++    switch ( vos::OSignalHandler::raise( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) )
+     {
+-        case NAMESPACE_VOS(OSignalHandler)::TAction_CallNextHandler:
++        case vos::OSignalHandler::TAction_CallNextHandler:
+             abort();
+ 
+-        case NAMESPACE_VOS(OSignalHandler)::TAction_Ignore:
++        case vos::OSignalHandler::TAction_Ignore:
+             return;
+ 
+-        case NAMESPACE_VOS(OSignalHandler)::TAction_AbortApplication:
++        case vos::OSignalHandler::TAction_AbortApplication:
+             abort();
+ 
+-        case NAMESPACE_VOS(OSignalHandler)::TAction_KillApplication:
++        case vos::OSignalHandler::TAction_KillApplication:
+             exit(-1);
+     }
+ }
+diff --git a/transex3/source/wrdtrans.cxx b/transex3/source/wrdtrans.cxx
+index 28ac308..3e26948 100644
+--- transex3/source/wrdtrans.cxx
++++ transex3/source/wrdtrans.cxx
+@@ -42,7 +42,7 @@
+ 
+ // NOT FULLY DECLARED SERVICES
+ #include <vector>
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ 
+ 
+ #include <tools/stream.hxx>
+@@ -52,7 +52,7 @@
+ */
+ //**************   Declaration WordTrans_ErrorList   ******************//
+ /*
+-typedef NAMESPACE_STD(vector)<ByteString> Stl_ByteStringList;
++typedef std::vector<ByteString> Stl_ByteStringList;
+ 
+ class WordTrans_ErrorList
+ {
+diff --git a/unotools/source/ucbhelper/ucblockbytes.cxx b/unotools/source/ucbhelper/ucblockbytes.cxx
+index 07d0541..d3c8412 100644
+--- unotools/source/ucbhelper/ucblockbytes.cxx
++++ unotools/source/ucbhelper/ucblockbytes.cxx
+@@ -39,6 +39,8 @@
+ #include <unotools/ucblockbytes.hxx>
+ #include <comphelper/processfactory.hxx>
+ 
++#include <sal/macros.h>
++
+ #ifndef _SALHELPER_CONDITION_HXX_
+ #include <salhelper/condition.hxx>
+ #endif
+@@ -1533,7 +1535,7 @@ ErrCode UcbLockBytes::ReadAt ( ULONG nPos, void *pBuffer, ULONG nCount, ULONG *p
+ 	Sequence<sal_Int8> aData;
+ 	sal_Int32          nSize;
+ 
+-	nCount = VOS_MIN(nCount, 0x7FFFFFFF);
++	nCount = SAL_MIN(nCount, 0x7FFFFFFF);
+ 	try
+ 	{
+ 		if ( !m_bTerminated && !IsSynchronMode() )
+diff --git a/vcl/source/gdi/bitmap4.cxx b/vcl/source/gdi/bitmap4.cxx
+index 88a574e..4e85b73 100644
+--- vcl/source/gdi/bitmap4.cxx
++++ vcl/source/gdi/bitmap4.cxx
+@@ -37,7 +37,7 @@
+ #include "precompiled_vcl.hxx"
+ 
+ #include <stdlib.h>
+-#include <vos/macros.hxx>
++#include <sal/macros.h>
+ #ifndef _SV_BMPACC_HXX
+ #include <vcl/bmpacc.hxx>
+ #endif
+@@ -486,7 +486,7 @@ BOOL Bitmap::ImplSobelGrey( const BmpFilterParam* /*pFilterParam*/, const Link*
+ 						nSum2 += nMask332 * nGrey33;
+ 
+ 						nSum1 = (long) sqrt( (double)( nSum1 * nSum1 + nSum2 * nSum2 ) );
+-						aGrey.SetIndex( ~(BYTE) VOS_BOUND( nSum1, 0, 255 ) );
++						aGrey.SetIndex( ~(BYTE) SAL_BOUND( nSum1, 0, 255 ) );
+ 						pWriteAcc->SetPixel( nY, nX, aGrey );
+ 
+ 						if( nX < ( nWidth - 1 ) )
+@@ -561,7 +561,7 @@ BOOL Bitmap::ImplEmbossGrey( const BmpFilterParam* pFilterParam, const Link* /*p
+ 				const long	nLz = FRound( sin( fElev ) * 255.0 );
+ 				const long	nZ2 = ( ( 6 * 255 ) / 4 ) * ( ( 6 * 255 ) / 4 );
+ 				const long	nNzLz = ( ( 6 * 255 ) / 4 ) * nLz;
+-				const BYTE	cLz = (BYTE) VOS_BOUND( nLz, 0, 255 );
++				const BYTE	cLz = (BYTE) SAL_BOUND( nLz, 0, 255 );
+ 
+ 				// fill mapping tables
+ 				pHMap[ 0 ] = 0;
+@@ -598,7 +598,7 @@ BOOL Bitmap::ImplEmbossGrey( const BmpFilterParam* pFilterParam, const Link* /*p
+ 						else
+ 						{
+ 							const double fGrey = nDotL / sqrt( (double)(nNx * nNx + nNy * nNy + nZ2) );
+-							aGrey.SetIndex( (BYTE) VOS_BOUND( fGrey, 0, 255 ) );
++							aGrey.SetIndex( (BYTE) SAL_BOUND( fGrey, 0, 255 ) );
+ 						}
+ 						
+ 						pWriteAcc->SetPixel( nY, nX, aGrey );
+@@ -699,7 +699,7 @@ BOOL Bitmap::ImplSepia( const BmpFilterParam* pFilterParam, const Link* /*pProgr
+ 	{
+ 		long			nSepiaPercent = ( pFilterParam && pFilterParam->meFilter == BMP_FILTER_SEPIA ) ? 
+ 									    pFilterParam->mcSolarGreyThreshold : 10;
+-		const long		nSepia = 10000 - 100 * VOS_BOUND( nSepiaPercent, 0, 100 );
++		const long		nSepia = 10000 - 100 * SAL_BOUND( nSepiaPercent, 0, 100 );
+ 		BitmapPalette	aSepiaPal( 256 );
+ 
+ 		DBG_ASSERT( nSepiaPercent <= 100, "Bitmap::ImplSepia(): sepia value out of range; defaulting to 100%" );
+diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx
+index 7d30239..0d97616 100644
+--- vcl/source/gdi/gdimtf.cxx
++++ vcl/source/gdi/gdimtf.cxx
+@@ -36,8 +36,8 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_vcl.hxx"
+ 
+-#ifndef _VOS_MACROS_HXX_
+-#include <vos/macros.hxx>
++#ifndef _SAL_MACROS_H_
++#include <sal/macros.h>
+ #endif
+ #ifndef _RTL_CRC_H_
+ #include <rtl/crc.h>
+@@ -808,12 +808,12 @@ BOOL GDIMetaFile::Mirror( ULONG nMirrorFlags )
+     BOOL        bRet;
+ 
+ 	if( nMirrorFlags & MTF_MIRROR_HORZ )
+-		nMoveX = VOS_ABS( aOldPrefSize.Width() ) - 1, fScaleX = -1.0;
++		nMoveX = SAL_ABS( aOldPrefSize.Width() ) - 1, fScaleX = -1.0;
+ 	else
+ 		nMoveX = 0, fScaleX = 1.0;
+ 
+ 	if( nMirrorFlags & MTF_MIRROR_VERT )
+-		nMoveY = VOS_ABS( aOldPrefSize.Height() ) - 1, fScaleY = -1.0;
++		nMoveY = SAL_ABS( aOldPrefSize.Height() ) - 1, fScaleY = -1.0;
+ 	else
+ 		nMoveY = 0, fScaleY = 1.0;
+ 
+diff --git a/vcl/unx/source/app/salimpsound.hxx b/vcl/unx/source/app/salimpsound.hxx
+index fcb24e5..b13b65b 100644
+--- vcl/unx/source/app/salimpsound.hxx
++++ vcl/unx/source/app/salimpsound.hxx
+@@ -235,7 +235,7 @@ class RPTPSound : public VSound
+         DECLARE_LIST( RPTPSoundList, RPTPSound* )
+ 
+ 	static BOOL								s_bConnected;
+-	static NAMESPACE_VOS(OConnectorSocket)		s_aConnector;
++	static vos::OConnectorSocket		s_aConnector;
+ 	static RPTPSoundList						s_aSounds;
+ 	static BOOL								s_bFailedOnce;
+ 
+diff --git a/vos/inc/vos/execabl.hxx b/vos/inc/vos/execabl.hxx
+index 5e932a1..f229f09 100644
+--- vos/inc/vos/execabl.hxx
++++ vos/inc/vos/execabl.hxx
+@@ -62,7 +62,7 @@ namespace vos
+ 	@version 0.1
+ */
+ 
+-class IExecutable : public NAMESPACE_VOS(IReference) 
++class IExecutable : public vos::IReference 
+ {
+ public:
+ 
+@@ -94,8 +94,8 @@ public:
+ /** OExecutable
+ 	added default impl. of IReferenceCounter 
+ */
+-class OExecutable : public NAMESPACE_VOS(IExecutable),
+-					public NAMESPACE_VOS(OReference)
++class OExecutable : public vos::IExecutable,
++					public vos::OReference
+ 					
+ {
+ public:
+diff --git a/vos/inc/vos/pipe.hxx b/vos/inc/vos/pipe.hxx
+index a8336ac..7a1f8ac 100644
+--- vos/inc/vos/pipe.hxx
++++ vos/inc/vos/pipe.hxx
+@@ -70,10 +70,10 @@ class OStreamPipe;
+ 
+ /** Represents a pipe.
+ */
+-class OPipe : public NAMESPACE_VOS(OReference),
+-              public NAMESPACE_VOS(OObject)
++class OPipe : public vos::OReference,
++              public vos::OObject
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OPipe));
++    VOS_DECLARE_CLASSINFO(vos::OPipe);
+ 
+ public:
+     /*
+@@ -123,7 +123,7 @@ public:
+         @param Security
+     */
+     OPipe(const ::rtl::OUString& strName, TPipeOption Options,
+-          const NAMESPACE_VOS(OSecurity)& rSecurity);
++          const vos::OSecurity& rSecurity);
+ 
+     /** Copy constructor.
+     */
+@@ -154,7 +154,7 @@ public:
+         @return True if socket was successfully created.
+     */
+     sal_Bool SAL_CALL create(const ::rtl::OUString& strName, TPipeOption Options,
+-                   const NAMESPACE_VOS(OSecurity)& rSecurity);
++                   const vos::OSecurity& rSecurity);
+ 
+     /** Assignment operator. If pipe was already created, the old one will
+         be discarded.
+@@ -213,10 +213,10 @@ public:
+ 
+ /** A pipe to send or receive a stream of data.
+ */
+-class OStreamPipe : public NAMESPACE_VOS(OPipe),
+-                    public NAMESPACE_VOS(IStream)
++class OStreamPipe : public vos::OPipe,
++                    public vos::IStream
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OStreamPipe));
++    VOS_DECLARE_CLASSINFO(vos::OStreamPipe);
+ public:
+ 
+     /** Creates an unattached pipe. You must attach the pipe to an oslPipe
+diff --git a/vos/inc/vos/process.hxx b/vos/inc/vos/process.hxx
+index bb77f96..d8db5b6 100644
+--- vos/inc/vos/process.hxx
++++ vos/inc/vos/process.hxx
+@@ -301,7 +301,7 @@ class OExtCommandLineImpl;
+ class OExtCommandLine : public OObject
+ {
+     VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OExtCommandLine, vos));
+-    static NAMESPACE_VOS(OExtCommandLineImpl)* pExtImpl;
++    static vos::OExtCommandLineImpl* pExtImpl;
+ 
+ public:
+ 
+diff --git a/vos/inc/vos/refernce.hxx b/vos/inc/vos/refernce.hxx
+index 84a154e..6256f6e 100644
+--- vos/inc/vos/refernce.hxx
++++ vos/inc/vos/refernce.hxx
+@@ -96,7 +96,7 @@ private:
+ 	ORefCount& SAL_CALL operator= (const ORefCount&);
+ };
+ 
+-class OReference : public NAMESPACE_VOS(IReference)
++class OReference : public vos::IReference
+ {
+ public:
+ 	OReference();
+diff --git a/vos/inc/vos/signal.hxx b/vos/inc/vos/signal.hxx
+index be36f5e..dd10c07 100644
+--- vos/inc/vos/signal.hxx
++++ vos/inc/vos/signal.hxx
+@@ -60,7 +60,7 @@ SignalHandlerFunction_impl signalHandlerFunction_impl;
+ 	@version 1.0
+ */
+ 
+-class OSignalHandler : public NAMESPACE_VOS(OObject)
++class OSignalHandler : public vos::OObject
+ {
+ 	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OSignalHandler, vos));
+ 
+diff --git a/vos/inc/vos/socket.hxx b/vos/inc/vos/socket.hxx
+index 8db0783..e84c8df 100644
+--- vos/inc/vos/socket.hxx
++++ vos/inc/vos/socket.hxx
+@@ -211,7 +211,7 @@ public:
+ 
+ /** Base class for socket addresses.
+ */
+-class ISocketAddr : public NAMESPACE_VOS(ISocketTypes)
++class ISocketAddr : public vos::ISocketTypes
+ {
+ public:
+     virtual ~ISocketAddr() { }
+@@ -224,11 +224,11 @@ public:
+     virtual sal_Bool SAL_CALL operator== (oslSocketAddr Addr)= 0;
+ };
+ 
+-class OSocketAddr : public NAMESPACE_VOS(ISocketAddr),
+-            public NAMESPACE_VOS(OObject)
++class OSocketAddr : public vos::ISocketAddr,
++            public vos::OObject
+ 
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OSocketAddr));
++    VOS_DECLARE_CLASSINFO(vos::OSocketAddr);
+ public:
+ 
+     /** Creates socket address of unknown type.
+@@ -296,9 +296,9 @@ protected:
+ 
+ /** Represents an internet-address.
+ */
+-class OInetSocketAddr : public NAMESPACE_VOS(OSocketAddr)
++class OInetSocketAddr : public vos::OSocketAddr
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OInetSocketAddr));
++    VOS_DECLARE_CLASSINFO(vos::OInetSocketAddr);
+ public:
+ 
+     /** Creates an empty internet-address (INADDR_ANY).
+@@ -381,9 +381,9 @@ public:
+ 
+ /** Represents an IPX/SPX address.
+ */
+-class OIpxSocketAddr :  public NAMESPACE_VOS(OSocketAddr)
++class OIpxSocketAddr :  public vos::OSocketAddr
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OIpxSocketAddr));
++    VOS_DECLARE_CLASSINFO(vos::OIpxSocketAddr);
+ public:
+ 
+     typedef oslSocketIpxNetNumber  TIpxNetNumber;
+@@ -452,11 +452,11 @@ public:
+ 
+ /** Represents a socket.
+ */
+-class OSocket : public NAMESPACE_VOS(ISocketTypes),
+-                public NAMESPACE_VOS(OReference),
+-                public NAMESPACE_VOS(OObject)
++class OSocket : public vos::ISocketTypes,
++                public vos::OReference,
++                public vos::OObject
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OSocket));
++    VOS_DECLARE_CLASSINFO(vos::OSocket);
+ 
+ protected:
+     typedef ORefObj<oslSocket> SockRef;
+@@ -831,10 +831,10 @@ public:
+ 
+ /** A socket to send or receive a stream of data.
+ */
+-class OStreamSocket : public NAMESPACE_VOS(OSocket),
+-                      public NAMESPACE_VOS(IStream)
++class OStreamSocket : public vos::OSocket,
++                      public vos::IStream
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OStreamSocket));
++    VOS_DECLARE_CLASSINFO(vos::OStreamSocket);
+ public:
+ 
+     /** Creates an unattached socket. You must attach the socket to an oslSocket
+@@ -974,9 +974,9 @@ protected:
+ 
+ /** A socket to accept incoming connections.
+ */
+-class OAcceptorSocket : public NAMESPACE_VOS(OSocket)
++class OAcceptorSocket : public vos::OSocket
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OAcceptorSocket));
++    VOS_DECLARE_CLASSINFO(vos::OAcceptorSocket);
+ public:
+ 
+     /** Creates a socket that can accept connections.
+@@ -1036,9 +1036,9 @@ public:
+ 
+ /** A socket to initiate a conenction.
+ */
+-class OConnectorSocket : public NAMESPACE_VOS(OStreamSocket)
++class OConnectorSocket : public vos::OStreamSocket
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OConnectorSocket));
++    VOS_DECLARE_CLASSINFO(vos::OConnectorSocket);
+ public:
+ 
+     /** Creates a socket that can accept connections.
+@@ -1072,9 +1072,9 @@ public:
+ 
+ /** A connectionless socket to send and receive datagrams.
+ */
+-class ODatagramSocket : public NAMESPACE_VOS(OSocket)
++class ODatagramSocket : public vos::OSocket
+ {
+-    VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(ODatagramSocket));
++    VOS_DECLARE_CLASSINFO(vos::ODatagramSocket);
+ public:
+ 
+     /** Creates a datagram socket.
+diff --git a/vos/inc/vos/stream.hxx b/vos/inc/vos/stream.hxx
+index 8f4e0bc..096f075 100644
+--- vos/inc/vos/stream.hxx
++++ vos/inc/vos/stream.hxx
+@@ -51,7 +51,7 @@ namespace vos
+ 
+ /** Adds seeking capabilities to IStream
+ */
+-class IPositionableStream : public NAMESPACE_VOS(IStream)
++class IPositionableStream : public vos::IStream
+ {
+ 
+ public:
+@@ -89,8 +89,8 @@ protected:
+ 
+ /** Implements IPositionableStream
+ */
+-class OStream : public NAMESPACE_VOS(OObject), 
+-				public NAMESPACE_VOS(IPositionableStream)
++class OStream : public vos::OObject, 
++				public vos::IPositionableStream
+ {
+ 	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OStream, vos));
+ 
+diff --git a/vos/inc/vos/thread.hxx b/vos/inc/vos/thread.hxx
+index 60833ba..57fccb9 100644
+--- vos/inc/vos/thread.hxx
++++ vos/inc/vos/thread.hxx
+@@ -73,8 +73,8 @@ ThreadWorkerFunction_impl threadWorkerFunction_impl;
+ 	@version 1.0
+ */
+ 
+-class OThread : public NAMESPACE_VOS(IRunnable),
+-				public NAMESPACE_VOS(OObject)
++class OThread : public vos::IRunnable,
++				public vos::OObject
+ {
+ 
+ 	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OThread, vos));
+@@ -223,7 +223,7 @@ protected:
+ 	friend void threadWorkerFunction_impl(void *);
+ };
+ 
+-class OThreadData : public NAMESPACE_VOS(OObject)
++class OThreadData : public vos::OObject
+ {
+ 	VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OThreadData, vos));
+ 
+diff --git a/vos/source/pipe.cxx b/vos/source/pipe.cxx
+index 0db2016..d280fae 100644
+--- vos/source/pipe.cxx
++++ vos/source/pipe.cxx
+@@ -146,7 +146,7 @@ sal_Bool OPipe::create( const rtl::OUString& strName, TPipeOption Options )
+ /*****************************************************************************/
+ sal_Bool OPipe::create( const rtl::OUString& strName,
+ 						TPipeOption Options,
+-						const NAMESPACE_VOS(OSecurity)& rSecurity ) 
++						const vos::OSecurity& rSecurity ) 
+ {
+ 	// if this was a valid pipe, decrease reference
+ 	if ((m_pPipeRef) && (m_pPipeRef->release() == 0))
+diff --git a/vos/source/signal.cxx b/vos/source/signal.cxx
+index a0f8f57..3a576b1 100644
+--- vos/source/signal.cxx
++++ vos/source/signal.cxx
+@@ -43,7 +43,7 @@ using namespace vos;
+ oslSignalAction vos::signalHandlerFunction_impl(
+     void * pthis, oslSignalInfo * pInfo)
+ {
+-	NAMESPACE_VOS(OSignalHandler)* pThis= (NAMESPACE_VOS(OSignalHandler)*)pthis;
++	vos::OSignalHandler* pThis= (vos::OSignalHandler*)pthis;
+ 
+ 	return ((oslSignalAction)pThis->signal(pInfo));
+ }
+diff --git a/vos/source/thread.cxx b/vos/source/thread.cxx
+index a70ef36..324da86 100644
+--- vos/source/thread.cxx
++++ vos/source/thread.cxx
+@@ -44,7 +44,7 @@ using namespace vos;
+ 
+ void vos::threadWorkerFunction_impl(void * pthis)
+ {
+-	NAMESPACE_VOS(OThread)* pThis= (NAMESPACE_VOS(OThread)*)pthis;
++	vos::OThread* pThis= (vos::OThread*)pthis;
+ 
+ 	// call Handler-Function of OThread-derived class
+ 	pThis->run();
+diff --git a/vos/source/timer.cxx b/vos/source/timer.cxx
+index 4750ac6..00a3089 100644
+--- vos/source/timer.cxx
++++ vos/source/timer.cxx
+@@ -51,7 +51,7 @@
+ 
+ class OTimerManagerCleanup;
+ 
+-class NAMESPACE_VOS(OTimerManager) : public NAMESPACE_VOS(OThread)
++class vos::OTimerManager : public vos::OThread
+ {
+     
+ public:
+@@ -63,13 +63,13 @@ public:
+   	~OTimerManager();
+     
+   	/// register timer
+-    sal_Bool SAL_CALL registerTimer(NAMESPACE_VOS(OTimer)* pTimer);
++    sal_Bool SAL_CALL registerTimer(vos::OTimer* pTimer);
+ 
+   	/// unregister timer
+-    sal_Bool SAL_CALL unregisterTimer(NAMESPACE_VOS(OTimer)* pTimer);
++    sal_Bool SAL_CALL unregisterTimer(vos::OTimer* pTimer);
+ 
+   	/// lookup timer
+-    sal_Bool SAL_CALL lookupTimer(const NAMESPACE_VOS(OTimer)* pTimer);
++    sal_Bool SAL_CALL lookupTimer(const vos::OTimer* pTimer);
+ 
+ 	/// retrieves the "Singleton" TimerManager Instance
+ 	static OTimerManager* SAL_CALL getTimerManager();
+@@ -87,7 +87,7 @@ protected:
+     virtual void SAL_CALL onTerminated();
+     
+   	// sorted-queue data
+-  	NAMESPACE_VOS(OTimer)*		m_pHead;
++  	vos::OTimer*		m_pHead;
+     // List Protection
+     osl::Mutex					m_Lock;
+     // Signal the insertion of a timer
+@@ -97,7 +97,7 @@ protected:
+ 	static osl::Mutex 			m_Access;
+ 
+     // "Singleton Pattern"
+-    static NAMESPACE_VOS(OTimerManager)* m_pManager;
++    static vos::OTimerManager* m_pManager;
+ 
+     friend class OTimerManagerCleanup;
+     
+@@ -277,8 +277,8 @@ TTimeValue OTimer::getRemainingTime() const
+ // Timer manager
+ //
+ 
+-osl::Mutex NAMESPACE_VOS(OTimerManager)::m_Access;
+-OTimerManager* NAMESPACE_VOS(OTimerManager)::m_pManager=0;
++osl::Mutex vos::OTimerManager::m_Access;
++OTimerManager* vos::OTimerManager::m_pManager=0;
+ 
+ OTimerManager::OTimerManager()
+ {
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/tango-icons-default-w32.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/tango-icons-default-w32.diff
@@ -0,0 +1,12 @@
+--- vcl/source/app/settings.cxx.old1	2007-03-28 20:48:59.000000000 +0200
++++ vcl/source/app/settings.cxx	2007-03-28 20:46:36.000000000 +0200
+@@ -803,7 +803,8 @@ ULONG StyleSettings::GetCurrentSymbolsSt
+ 			{
+ 				const ::rtl::OUString &rDesktopEnvironment = Application::GetDesktopEnvironment();
+ 
+-				if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
++				if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) ||
++				    rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "windows" ) )
+ 					snFallbackDesktopStyle = STYLE_SYMBOLS_TANGO;
+ 				else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
+ 					snFallbackDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/solenv-really-use-unsinged-char-on-ppc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/solenv-really-use-unsinged-char-on-ppc.diff
@@ -0,0 +1,67 @@
+--- solenv/inc/unxlngppc.mk.old	2007-08-23 20:15:01.000000000 +0200
++++ solenv/inc/unxlngppc.mk	2007-08-27 12:12:19.000000000 +0200
+@@ -83,9 +83,8 @@ LINKFLAGS += -Wl,--hash-style=gnu
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+ 
+-# source code is still not signed versus unsigned char clean 
+-CFLAGS=-fsigned-char -nostdinc -c
+-CFLAGSCC=-fsigned-char $(ARCH_FLAGS)
++CFLAGS=-nostdinc -c
++CFLAGSCC=$(ARCH_FLAGS)
+ 
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions 
+--- solenv/inc/unxmacx.mk.old	2008-01-16 16:18:33.000000000 +0100
++++ solenv/inc/unxmacx.mk	2008-01-16 16:29:03.000000000 +0100
+@@ -90,7 +90,7 @@ CC*=gcc
+ objc*=gcc
+ objcpp*=g++
+ 
+-CFLAGS=-fsigned-char -fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
++CFLAGS=-fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
+ 
+ .IF "$(DISABLE_DEPRECATION_WARNING)" == "TRUE"
+ CFLAGS+=-Wno-deprecated-declarations
+@@ -99,7 +99,7 @@ CFLAGS+=-Wno-deprecated-declarations
+ #  Compilation flags
+ # ---------------------------------
+ # Normal C compilation flags
+-CFLAGSCC=-pipe -fsigned-char -malign-natural $(ARCH_FLAGS)
++CFLAGSCC=-pipe -malign-natural $(ARCH_FLAGS)
+ 
+ # Normal Objective C compilation flags
+ #OBJCFLAGS=-no-precomp
+@@ -113,7 +113,7 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+ # Normal C++ compilation flags
+-CFLAGSCXX=-pipe -malign-natural -fsigned-char -Wno-long-double $(ARCH_FLAGS)
++CFLAGSCXX=-pipe -malign-natural -Wno-long-double $(ARCH_FLAGS)
+ CFLAGSCXX+= -Wno-ctor-dtor-privacy
+ 
+ PICSWITCH:=-fPIC
+--- solenv/inc/unxlngppc4.mk.old	2007-07-24 11:14:04.000000000 +0200
++++ solenv/inc/unxlngppc4.mk	2007-08-27 15:56:25.000000000 +0200
+@@ -70,10 +70,10 @@ CXX*=g++
+ # name of C Compiler
+ CC*=gcc
+ 
+-CFLAGS+=-fsigned-char -fmessage-length=0 -c
++CFLAGS+=-fmessage-length=0 -c
+ 
+ # flags for the C++ Compiler
+-CFLAGSCC= -fsigned-char -pipe $(ARCH_FLAGS)
++CFLAGSCC= -pipe $(ARCH_FLAGS)
+ 
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+@@ -81,7 +81,7 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+-CFLAGSCXX= -fsigned-char -pipe -frtti $(ARCH_FLAGS)
++CFLAGSCXX= -pipe -frtti $(ARCH_FLAGS)
+ PICSWITCH:=-fPIC
+ 
+ # Compiler flags for compiling static object in multi threaded environment with graphical user interface
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-remove-check-update-on-fileload-m14.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-remove-check-update-on-fileload-m14.diff
@@ -0,0 +1,55 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/dialog/newerverwarn.cxx sfx2/source/dialog/newerverwarn.cxx
+--- sfx2.clean/source/dialog/newerverwarn.cxx	2008-05-06 23:56:41.000000000 -0400
++++ sfx2/source/dialog/newerverwarn.cxx	2008-05-07 00:00:36.000000000 -0400
+@@ -58,6 +58,7 @@ namespace lang  = ::com::sun::star::lang
+ namespace uno   = ::com::sun::star::uno;
+ namespace util  = ::com::sun::star::util;
+ 
++#if 0
+ namespace sfx2
+ {
+ 
+@@ -160,4 +161,5 @@ void NewerVersionWarningDialog::InitButt
+ }
+ 
+ } // end of namespace sfx2
++#endif
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/doc/objstor.cxx sfx2/source/doc/objstor.cxx
+--- sfx2.clean/source/doc/objstor.cxx	2008-05-06 23:56:40.000000000 -0400
++++ sfx2/source/doc/objstor.cxx	2008-05-06 23:59:24.000000000 -0400
+@@ -1082,6 +1082,7 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedi
+             }
+         }
+ 
++#if 0
+         // --> PB 2007-11-20 #i83653# Give warning if document contains features from new ODF version
+         // Online Update Check enabled?
+         sal_Bool bOnlineUpdateEnabled = sal_False;
+@@ -1125,6 +1126,7 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedi
+                 }
+             }
+         }
++#endif
+     }
+     else
+         GetpApp()->HideStatusText();
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/inc/newerverwarn.hxx sfx2/source/inc/newerverwarn.hxx
+--- sfx2.clean/source/inc/newerverwarn.hxx	2008-05-06 23:56:41.000000000 -0400
++++ sfx2/source/inc/newerverwarn.hxx	2008-05-06 23:59:58.000000000 -0400
+@@ -39,6 +39,7 @@
+ #include <vcl/fixed.hxx>
+ #include <sfx2/basedlgs.hxx>
+ 
++#if 0
+ namespace sfx2
+ {
+     class NewerVersionWarningDialog : public SfxModalDialog
+@@ -60,6 +61,7 @@ namespace sfx2
+         ~NewerVersionWarningDialog();
+     };
+ } // namespace sfx2
++#endif
+ 
+ #endif // #ifndef _SFX2_NEWERVERSIONWARNING_HXX
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unit-comphelper.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unit-comphelper.diff
@@ -0,0 +1,703 @@
+? comphelper/unxlngi6.pro.nodebug
+? comphelper/inc/comphelper/unitbootstrap.hxx
+? comphelper/source/unit
+Index: comphelper/prj/build.lst
+===================================================================
+RCS file: /cvs/util/comphelper/prj/build.lst,v
+retrieving revision 1.11
+diff -u -p -u -r1.11 build.lst
+--- comphelper/prj/build.lst	30 Oct 2006 09:31:48 -0000	1.11
++++ comphelper/prj/build.lst	20 Feb 2008 16:54:49 -0000
+@@ -8,6 +8,7 @@ ph	comphelper\source\processfactory		nma
+ ph	comphelper\source\property				nmake	-	all	ph_property ph_inc NULL
+ ph	comphelper\source\streaming				nmake	-	all	ph_streaming ph_inc NULL
+ ph	comphelper\source\compare				nmake	-	all	ph_compare ph_inc NULL
++ph	comphelper\source\unit				nmake	-	all	ph_unit ph_inc NULL
+ ph  comphelper\source\officeinstdir         nmake   -   all ph_officeinstdir ph_inc NULL
+ ph  comphelper\source\xml                   nmake   -   all ph_xml NULL
+-ph  comphelper\util                         nmake   -   all ph_util ph_container ph_evtatmgr ph_misc ph_procfact ph_property ph_streaming ph_compare ph_officeinstdir ph_xml NULL
++ph  comphelper\util                         nmake   -   all ph_util ph_container ph_evtatmgr ph_misc ph_procfact ph_property ph_streaming ph_compare ph_officeinstdir ph_xml ph_unit NULL
+Index: comphelper/prj/d.lst
+===================================================================
+RCS file: /cvs/util/comphelper/prj/d.lst,v
+retrieving revision 1.13
+diff -u -p -u -r1.13 d.lst
+--- comphelper/prj/d.lst	24 Oct 2006 13:42:28 -0000	1.13
++++ comphelper/prj/d.lst	20 Feb 2008 16:54:49 -0000
+@@ -12,3 +12,10 @@ mkdir: %_DEST%\inc%_EXT%\comphelper
+ mkdir: %_DEST%\inc%_EXT%\cppuhelper
+ ..\inc\comphelper\extract.hxx %_DEST%\inc%_EXT%\cppuhelper\extract.hxx
+ ..\version.mk  %_DEST%\inc%_EXT%\comphelper\version.mk
++
++mkdir: %_DEST%\xml%_EXT%\unit-skel
++mkdir: %_DEST%\xml%_EXT%\unit-skel\data
++mkdir: %_DEST%\xml%_EXT%\unit-skel\data\org
++mkdir: %_DEST%\xml%_EXT%\unit-skel\data\org\openoffice
++..\source\unit\configmgrrc %_DEST%\xml%_EXT%\unit-skel\configmgrrc
++..\source\unit\Setup.xcu   %_DEST%\xml%_EXT%\unit-skel\data\org\openoffice\Setup.xcu
+Index: comphelper/util/makefile.mk
+===================================================================
+RCS file: /cvs/util/comphelper/util/makefile.mk,v
+retrieving revision 1.13
+diff -u -p -u -r1.13 makefile.mk
+--- comphelper/util/makefile.mk	20 Sep 2007 16:40:40 -0000	1.13
++++ comphelper/util/makefile.mk	20 Feb 2008 16:54:49 -0000
+@@ -74,6 +74,23 @@ SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
+ DEF1NAME=	$(SHL1TARGET)
+ DEFLIB1NAME=$(TARGET)
+ 
++# unit test helper library
++
++SHL2TARGET=unitbootstrap
++SHL2STDLIBS= \
++	$(SALLIB) \
++	$(SALHELPERLIB) \
++	$(CPPUHELPERLIB) \
++	$(CPPULIB) \
++	$(COMPHELPERLIB)
++SHL2DEPN=
++SHL2IMPLIB=	i$(SHL2_TARGET)
++SHL2USE_EXPORTS=ordinal
++SHL2LIBS=	$(SLB)$/unitbootstrap.lib
++# SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
++# DEF1NAME=	$(SHL1TARGET)
++# DEFLIB1NAME=$(TARGET)
++
+ # --- Targets ----------------------------------
+ 
+ .INCLUDE : target.mk
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ comphelper/source/unit/unitbootstrap.cxx	2008-02-20 16:59:30.000000000 +0000
+@@ -0,0 +1,121 @@
++// To debug me use:
++// $ export ENVCFGFLAGS='-me -ti -tw -tp -td'
++
++#include "sal/config.h"
++#include <cstdlib>
++#include "com/sun/star/beans/XPropertySet.hpp"
++#include "com/sun/star/lang/XComponent.hpp"
++#include "com/sun/star/lang/XMultiComponentFactory.hpp"
++#include "com/sun/star/lang/XMultiServiceFactory.hpp"
++#include "com/sun/star/uno/Any.hxx"
++#include "com/sun/star/uno/Reference.hxx"
++#include "com/sun/star/uno/XComponentContext.hpp"
++#include "cppuhelper/component_context.hxx"
++#include "cppuhelper/servicefactory.hxx"
++#include "comphelper/processfactory.hxx"
++#include "osl/file.hxx"
++#include "osl/thread.h"
++#include "osl/process.h"
++#include "rtl/string.h"
++#include "rtl/bootstrap.h"
++#include "rtl/ustring.h"
++#include "rtl/ustring.hxx"
++#include "sal/types.h"
++#include "osl/file.hxx"
++#include "comphelper/unitbootstrap.hxx"
++
++namespace css = com::sun::star;
++
++static void
++setBootstrap (const char *pKey, rtl::OUString aValue)
++{
++    rtl::OUString aKey = rtl::OUString::createFromAscii( pKey );
++    rtl_bootstrap_set( aKey.pData, aValue.pData );
++}
++
++static rtl::OUString pathToURL(rtl::OUString aPath)
++{
++    rtl::OUString aURL;
++    if (osl::FileBase::getFileURLFromSystemPath(aPath, aURL) != osl::FileBase::E_None)
++        std::abort();
++    return aURL;
++}
++
++// Do all those exciting things to make the tests actually work ...
++UnitBootstrap::UnitBootstrap(const char *pSetup)
++{
++    // parse params ...
++    char const * f = pSetup;
++    rtl::OUString args (f, rtl_str_getLength(f), osl_getThreadTextEncoding());
++    sal_Int32 i = args.indexOf('#');
++    if (i < 0)
++        std::abort();
++    rtl::OUString aRDB(args.copy(0, i));
++    rtl::OUString aUserDir(args.copy(i + 1));
++
++    fprintf (stderr, "RDB: '%s'\n",
++             rtl::OUStringToOString (aRDB, RTL_TEXTENCODING_UTF8).getStr());
++    fprintf (stderr, "UserDir: '%s'\n",
++             rtl::OUStringToOString (aUserDir, RTL_TEXTENCODING_UTF8).getStr());
++
++    rtl_uString *curWd = NULL;
++    osl_getProcessWorkingDir( &curWd );
++
++    rtl::OUString aBase (curWd);
++
++    // Unless you do this, obviously you don't want your paths to be correct 
++    // or file access to work properly
++    setBootstrap ("BaseInstallation", aBase);
++    setBootstrap ("CFG_INIFILE", pathToURL (aUserDir) + rtl::OUString::createFromAscii( "/configmgrrc" ) );
++    setBootstrap ("UserInstallation", pathToURL (aUserDir));
++
++    rtl::OUString aSolver = (rtl::OUString::createFromAscii(getenv("SOLARVER")) +
++                             rtl::OUString::createFromAscii("/") +
++                             rtl::OUString::createFromAscii(getenv("INPATH")));
++    // Used in configmgrrc to locate the xml config
++    setBootstrap ("SOLVER", pathToURL (aSolver));
++
++    // Force vcl to be headless on Unix
++    putenv ((char *)(new rtl::OString("SAL_USE_VCLPLUGIN=svp"))->getStr());
++    putenv ((char *)(new rtl::OString("OOO_FORCE_DESKTOP=none"))->getStr());
++
++    css::uno::Reference< css::beans::XPropertySet > xFactory(
++        cppu::createRegistryServiceFactory(aRDB), css::uno::UNO_QUERY_THROW);
++    css::uno::Reference< css::uno::XComponentContext > xContext(
++        xFactory->getPropertyValue(
++            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext"))),
++        css::uno::UNO_QUERY_THROW);
++
++    rtl::OUString regurl = rtl::OUString();
++    cppu::ContextEntry_Init entry(
++        rtl::OUString(
++            RTL_CONSTASCII_USTRINGPARAM(
++                "/modules/com.sun.star.configuration/bootstrap/Strata")),
++        css::uno::makeAny(
++            rtl::OUString(
++                RTL_CONSTASCII_USTRINGPARAM(
++                    "com.sun.star.comp.configuration.backend.LocalStratum:"))
++            + regurl)); 
++    mxContext = cppu::createComponentContext(&entry, 1, xContext);
++    if (!mxContext.is())
++        std::abort();
++
++    css::uno::Reference< css::lang::XMultiComponentFactory > xMCF (
++        mxContext->getServiceManager(), css::uno::UNO_QUERY_THROW);
++    xMCF->createInstanceWithContext(
++        rtl::OUString::createFromAscii(
++            "com.sun.star.configuration.ConfigurationProvider"),
++        mxContext);
++
++    mxMSF = css::uno::Reference< css::lang::XMultiServiceFactory >(
++        mxContext->getServiceManager(), css::uno::UNO_QUERY );
++    comphelper::setProcessServiceFactory( mxMSF );
++}
++
++UnitBootstrap::~UnitBootstrap()
++{
++    css::uno::Reference< css::lang::XComponent >(
++        mxMSF, css::uno::UNO_QUERY_THROW)->dispose();
++    css::uno::Reference< css::lang::XComponent >(
++        mxContext, css::uno::UNO_QUERY_THROW)->dispose();
++}
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ comphelper/source/unit/makefile.mk	2008-02-20 16:49:55.000000000 +0000
+@@ -0,0 +1,55 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.3 $
++#
++#   last change: $Author: rt $ $Date: 2005/09/08 02:44:02 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++PRJINC=..$/..$/inc
++PRJNAME=comphelper
++TARGET=unitbootstrap
++
++ENABLE_EXCEPTIONS=TRUE
++
++# --- Settings ----------------------------------
++
++.INCLUDE : settings.mk
++.INCLUDE : $(PRJ)$/util$/makefile.pmk
++
++# --- Files -------------------------------------
++
++SLOFILES=$(SLO)$/unitbootstrap.obj
++
++# --- Targets ----------------------------------
++
++.INCLUDE : target.mk
++
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ comphelper/source/unit/Setup.xcu	2008-02-20 16:57:42.000000000 +0000
+@@ -0,0 +1,376 @@
++<?xml version="1.0"?>
++<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:install="http://openoffice.org/2004/installation" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Setup" oor:package="org.openoffice">
++  <node oor:name="Product">
++    <prop oor:name="ooName">
++      <value>OpenOffice.org</value>
++    </prop>
++    <prop oor:name="ooSetupVersion">
++      <value>2.4</value>
++    </prop>
++    <prop oor:name="ooSetupVersionAboutBox">
++      <value>2.4.0</value>
++    </prop>
++    <prop oor:name="ooSetupExtension">
++      <value></value>
++    </prop>
++    <prop oor:name="ooXMLFileFormatVersion">
++      <value>1.0</value>
++    </prop>
++    <prop oor:name="ooXMLFileFormatName">
++      <value>OpenOffice.org</value>
++    </prop>
++    <prop oor:name="ooOpenSourceContext">
++      <value>1</value>
++    </prop>
++  </node>
++  <node oor:name="Office">
++    <prop oor:name="ooSetupInstCompleted">
++      <value>false</value>
++    </prop>
++    <prop oor:name="ooSetupShowIntro">
++      <value>true</value>
++    </prop>
++    <node oor:name="Factories">
++      <node oor:name="com.sun.star.text.WebDocument" oor:op="replace">
++        <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
++          <value>com.sun.star.text.WebDocument</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCommandConfigRef">
++          <value>WriterCommands</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
++          <value>HTML</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryDefaultFilter">
++          <value>HTML</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true">
++          <value>private:factory/swriter/web</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowAttributes">
++          <value/>
++        </prop>
++        <prop oor:name="ooSetupFactoryIcon">
++          <value>12</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryTemplateFile">
++          <value/>
++        </prop>
++        <prop oor:name="ooSetupFactoryShortName">
++          <value>sweb</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryUIName">
++          <value>Writer/Web</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowStateConfigRef">
++          <value>WriterWebWindowState</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
++          <value>GenericCategories</value>
++        </prop>
++      </node>
++      <node oor:name="com.sun.star.frame.Bibliography" oor:op="replace">
++        <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryCommandConfigRef">
++          <value>BibliographyCommands</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryShortName">
++          <value>sbibliography</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowStateConfigRef">
++          <value>BibliographyWindowState</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
++          <value>GenericCategories</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryUIName">
++          <value>Bibliography</value>
++        </prop>
++      </node>
++      <node oor:name="com.sun.star.script.BasicIDE" oor:op="replace">
++        <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryCommandConfigRef">
++          <value>BasicIDECommands</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryShortName">
++          <value>BasicIDE</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowStateConfigRef">
++          <value>BasicIDEWindowState</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
++          <value>GenericCategories</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryUIName">
++          <value>Basic</value>
++        </prop>
++      </node>
++      <node oor:name="com.sun.star.frame.StartModule" oor:op="replace">
++        <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryCommandConfigRef">
++          <value>StartModuleCommands</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryShortName">
++          <value>StartModule</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowStateConfigRef">
++          <value>StartModuleWindowState</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
++          <value>GenericCategories</value>
++        </prop>
++      </node>
++      <node oor:name="com.sun.star.chart2.ChartDocument" oor:op="replace">
++        <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
++          <value>com.sun.star.chart2.ChartDocument</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCommandConfigRef">
++          <value>ChartCommands</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
++          <value>chart8</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
++        <prop oor:name="ooSetupFactoryDefaultFilter">
++          <value>chart8</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true">
++          <value>private:factory/schart</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowAttributes">
++          <value/>
++        </prop>
++        <prop oor:name="ooSetupFactoryIcon">
++          <value>13</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryTemplateFile">
++          <value/>
++        </prop>
++        <prop oor:name="ooSetupFactoryShortName">
++          <value>schart</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryUIName">
++          <value>Chart</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryWindowStateConfigRef">
++          <value>ChartWindowState</value>
++        </prop>
++        <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
++          <value>GenericCategories</value>
++        </prop>
++      </node>
++    </node>
++  </node>
++  <node oor:name="L10N"/>
++  <node oor:name="Configuration">
++    <prop oor:name="TransferUserSettingsOnce" oor:type="xs:boolean">
++      <value>true</value>
++    </prop>
++  </node>
++  <node oor:name="Migration">
++    <prop oor:name="SupportedVersions">
++      <value oor:separator=",">
++                        StarOffice 7, OpenOffice.org 1.1, StarSuite 7
++		    </value>
++    </prop>
++    <node oor:name="MigrationSteps">
++      <node oor:name="Datasources" oor:op="replace">
++        <prop oor:name="MigrationService">
++          <value>com.sun.star.comp.sdb.DataSourceMigration</value>
++        </prop>
++        <prop oor:name="ServiceConfigComponents">
++          <value>org.openoffice.Office.DataAccess</value>
++        </prop>
++        <prop oor:name="IncludedFiles">
++          <value>.*/database/biblio/biblio\.dbf</value>
++        </prop>
++        <prop oor:name="ExcludedFiles"/>
++        <prop oor:name="IncludedNodes">
++          <value>
++                        org.openoffice.Office.DataAccess
++                    </value>
++        </prop>
++        <prop oor:name="ExcludedNodes">
++          <value>
++                        org.openoffice.Office.DataAccess/Bibliography
++                        org.openoffice.Office.DataAccess/ConnectionPool
++                        org.openoffice.Office.DataAccess/DataSources
++                        org.openoffice.Office.DataAccess/DriverManager
++                    </value>
++        </prop>
++      </node>
++      <node oor:name="Deployment" oor:op="replace">
++        <prop oor:name="MigrationService">
++          <value>com.sun.star.comp.deployment.migration.Migration_2_0</value>
++        </prop>
++      </node>
++      <node oor:name="Inet" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Inet
++					</value>
++        </prop>
++      </node>
++      <node oor:name="Java" oor:op="replace">
++        <prop oor:name="MigrationService">
++          <value>com.sun.star.migration.Java</value>
++        </prop>
++        <prop oor:name="ServiceConfigComponents">
++          <value>org.openoffice.Office.Java</value>
++        </prop>
++      </node>
++      <node oor:name="Basic" oor:op="replace">
++        <prop oor:name="MigrationService">
++          <value>com.sun.star.migration.Basic</value>
++        </prop>
++      </node>
++      <node oor:name="Autocorrection" oor:op="replace">
++        <prop oor:name="MigrationService">
++          <value>com.sun.star.migration.Autocorrection</value>
++        </prop>
++      </node>
++      <node oor:name="UserProfile" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.UserProfile</value>
++        </prop>
++      </node>
++      <node oor:name="Common" oor:op="replace">
++        <prop oor:name="IncludedFiles">
++          <value>
++                        .*/autotext/.*
++                        .*/config/.*\.so[bcdegh]
++                        .*/gallery/.*
++                        .*/template/.*
++                    </value>
++        </prop>
++        <prop oor:name="IncludedNodes">
++          <value>
++                        org.openoffice.Office.Common/Accessibility
++                        org.openoffice.Office.Common/Accessibility/AutoDetectSystemHC
++                        org.openoffice.Office.Common/AddXMLToStrorage
++                        org.openoffice.Office.Common/AsianLayout
++                        org.openoffice.Office.Common/AutoCorrect
++                        org.openoffice.Office.Common/Cache
++                        org.openoffice.Office.Common/ExternalMailer/Program
++                        org.openoffice.Office.Common/Filter
++                        org.openoffice.Office.Common/Font
++                        org.openoffice.Office.Common/Gallery
++                        org.openoffice.Office.Common/Help
++                        org.openoffice.Office.Common/History
++                        org.openoffice.Office.Common/I18N
++                        org.openoffice.Office.Common/InternalMSExport
++                        org.openoffice.Office.Common/Load
++                        org.openoffice.Office.Common/Misc/Form/ControlPilotsEnabled
++                        org.openoffice.Office.Common/Misc/PluginsEnabled
++                        org.openoffice.Office.Common/Misc/SymbolSet
++                        org.openoffice.Office.Common/Misc/UseSystemFileDialog
++                        org.openoffice.Office.Common/Misc/SymbolStyle
++                        org.openoffice.Office.Common/OfficeObjects
++                        org.openoffice.Office.Common/Passwords
++                        org.openoffice.Office.Common/Print/PrintingModifiesDocument
++                        org.openoffice.Office.Common/Print/Warning
++                        org.openoffice.Office.Common/PrintVectorize
++                        org.openoffice.Office.Common/Save
++                        org.openoffice.Office.Common/SearchOptions
++                        org.openoffice.Office.Common/SearchOptionsJapanese
++                        org.openoffice.Office.Common/Undo
++                        org.openoffice.Office.Common/View/Dialog/Dialog/MiddleMouseButton
++                        org.openoffice.Office.Common/View/Dialog/MousePositioning
++                        org.openoffice.Office.Common/View/Localization
++                        org.openoffice.Office.Common/View/Menu
++                        org.openoffice.Office.Common/_3D_Engine
++                    </value>
++        </prop>
++        <prop oor:name="ExcludedNodes">
++          <value>
++                        org.openoffice.Office.Common/Filter/PDF
++                        org.openoffice.Office.Common/_3D_Engine/OpenGL
++                    </value>
++        </prop>
++      </node>
++      <node oor:name="Calc" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Calc</value>
++        </prop>
++      </node>
++      <node oor:name="Chart" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Chart/DefaultColor</value>
++        </prop>
++      </node>
++      <node oor:name="Draw" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Draw</value>
++        </prop>
++      </node>
++      <node oor:name="Impress" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Impress</value>
++        </prop>
++      </node>
++      <node oor:name="Labels" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Labels</value>
++        </prop>
++      </node>
++      <node oor:name="Linguistic" oor:op="replace">
++        <prop oor:name="IncludedFiles">
++          <value>.*/wordbook/.*</value>
++        </prop>
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Linguistic</value>
++        </prop>
++        <prop oor:name="ExcludedNodes">
++          <value>
++                        org.openoffice.Office.Linguistic/ServiceManager
++                    </value>
++        </prop>
++      </node>
++      <node oor:name="Math" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Math</value>
++        </prop>
++      </node>
++      <node oor:name="Security" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Security</value>
++        </prop>
++      </node>
++      <node oor:name="Setup" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.Setup/L10N</value>
++        </prop>
++      </node>
++      <node oor:name="UI" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>org.openoffice.Office.UI/ColorScheme</value>
++        </prop>
++      </node>
++      <node oor:name="Writer" oor:op="replace">
++        <prop oor:name="IncludedNodes">
++          <value>
++                        org.openoffice.Office.Writer
++					    org.openoffice.Office.WriterWeb
++                    </value>
++        </prop>
++        <prop oor:name="ExcludedNodes">
++          <value>
++                        org.openoffice.Office.Writer/Wizard
++                    </value>
++        </prop>
++      </node>
++    </node>
++  </node>
++</oor:component-data>
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ comphelper/source/unit/configmgrrc	2008-02-20 11:02:31.000000000 +0000
+@@ -0,0 +1,22 @@
++[Bootstrap]
++CFG_ServerType=uno
++BootstrapFile=$ORIGIN/bootstraprc
++VersionFile=$ORIGIN/versionrc
++UnoFile=$ORIGIN/unorc
++BaseInstallation=${$BootstrapFile:BaseInstallation}
++UserInstallation=${$BootstrapFile:UserInstallation}
++CFG_SchemaVersion=${$VersionFile:buildid}
++CFG_SchemaDataUrl=$SOLVER/xml/registry/schema
++CFG_DefaultLayerUrls=$SOLVER/xml/registry
++CFG_CacheDisposeDelay=900
++CFG_CacheDisposeInterval=60
++CFG_CacheWriteInterval=2
++CFG_UserLayerUrl=$UserInstallation
++CFG_CacheUrl=$UserInstallation/cache
++CFG_DefaultLayerUrl=$SOLVER/xml/registry
++CFG_BackendService=com.sun.star.comp.configuration.backend.MultiStratumBackend
++CFG_SchemaSupplier=com.sun.star.comp.configuration.backend.LocalSchemaSupplier
++CFG_LocalDataSvc=com.sun.star.comp.configuration.backend.LocalStratum
++CFG_LocalModuleDataSvc=com.sun.star.comp.configuration.backend.LocalMultiStratum
++# CFG_Strata=${CFG_LocalDataSvc}:$CFG_DefaultLayerUrl;?com.sun.star.comp.configuration.backend.SystemIntegration:;?com.sun.star.comp.configuration.backend.PolicyLayerBackend:;${CFG_LocalDataSvc}:$CFG_UserLayerUrl
++CFG_Strata=${CFG_LocalDataSvc}:$CFG_DefaultLayerUrl;${CFG_LocalDataSvc}:$CFG_UserLayerUrl
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ comphelper/source/unit/README	2008-02-20 16:56:45.000000000 +0000
+@@ -0,0 +1 @@
++This includes pieces required to bootstrap a unit test from a build tree, cf. prj/d.lst
+Index: solenv/inc/libs.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/libs.mk,v
+retrieving revision 1.123
+diff -u -p -r1.123 libs.mk
+--- solenv/inc/libs.mk	12 Dec 2007 13:15:14 -0000	1.123
++++ solenv/inc/libs.mk	20 Feb 2008 17:01:35 -0000
+@@ -69,6 +69,7 @@ SALHELPERLIB=-luno_salhelper$(COMID)
+ XMLSCRIPTLIB =-lxcr$(OFFICEUPD)$(DLLPOSTFIX)
+ .INCLUDE .IGNORE : comphelper$/version.mk
+ COMPHELPERLIB=-lcomphelp$(COMPHLP_MAJOR)$(COMID)
++UNITBOOTSTRAPLIB=-lunitbootstrap
+ CONNECTIVITYLIB=-lconnectivity
+ LDAPBERLIB=-lldapber
+ TOOLSLIBST=-latools
+@@ -349,6 +351,7 @@ GPC3RDLIB=gpc.lib
+ SALHELPERLIB=isalhelper.lib
+ XMLSCRIPTLIB=ixcr.lib
+ COMPHELPERLIB=icomphelp.lib
++UNITBOOTSTRAPLIB=iunitbootstrap.lib
+ CONNECTIVITYLIB=connectivity.lib
+ LDAPBERLIB=ldapber.lib
+ CPPULIB=icppu.lib
+--- /dev/null	2007-09-21 22:50:58.000000000 +0100
++++ comphelper/inc/comphelper/unitbootstrap.hxx	2008-02-20 17:10:41.000000000 +0000
+@@ -0,0 +1,19 @@
++#ifndef UNIT_BOOTSTRAP_HXX
++#define UNIT_BOOTSTRAP_HXX
++
++#include "comphelper/comphelperdllapi.h"
++#include "com/sun/star/lang/XMultiServiceFactory.hpp"
++#include "com/sun/star/uno/XComponentContext.hpp"
++
++class COMPHELPER_DLLPUBLIC UnitBootstrap
++{
++    com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > mxContext;
++    com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > mxMSF;
++  public:
++    UnitBootstrap(const char *pSetup);
++    ~UnitBootstrap();
++    com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >
++        getMSF() { return mxMSF; }
++};
++
++#endif // UNIT_BOOTSTRAP_HXX
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/font_list_box_cjk.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/font_list_box_cjk.diff
@@ -0,0 +1,221 @@
+--- svx/source/items/textitem.cxx.orig	2007-06-28 02:31:25.000000000 +0800
++++ svx/source/items/textitem.cxx	2007-07-30 09:40:33.000000000 +0800
+@@ -3717,7 +3717,7 @@ void SvxScriptSetItem::PutItemForScriptT
+ {
+ 	USHORT nLatin, nAsian, nComplex;
+ 	GetWhichIds( nLatin, nAsian, nComplex );
+-
++	
+ 	SfxPoolItem* pCpy = rItem.Clone();
+ 	if( SCRIPTTYPE_LATIN & nScriptType )
+ 	{
+@@ -3726,8 +3726,19 @@ void SvxScriptSetItem::PutItemForScriptT
+ 	}
+ 	if( SCRIPTTYPE_ASIAN & nScriptType )
+ 	{
+-		pCpy->SetWhich( nAsian );
+-		GetItemSet().Put( *pCpy );
++		// #i73003#, if the font supports cjk lang, apply it.
++		sal_Bool bCJKFont = sal_True;
++		if ( rItem.ISA(SvxFontItem) )
++		{
++			Font aFont;
++			aFont.SetName(((SvxFontItem&)rItem).GetFamilyName());
++			bCJKFont = aFont.IsSupportCJK();
++		}
++		if( bCJKFont )
++		{
++			pCpy->SetWhich( nAsian );
++			GetItemSet().Put( *pCpy );
++		}
+ 	}
+ 	if( SCRIPTTYPE_COMPLEX & nScriptType )
+ 	{
+--- svtools/inc/ctrlbox.hxx.orig	2007-01-23 19:44:18.000000000 +0800
++++ svtools/inc/ctrlbox.hxx	2007-07-30 09:40:33.000000000 +0800
+@@ -384,6 +384,7 @@ private:
+ 	Image			maImageScalableFont;
+ 	BOOL			mbWYSIWYG;
+ 	BOOL			mbSymbols;
++	BOOL			mbOnlyListCJKFont; // #i73003#
+ 
+ #ifdef _CTRLBOX_CXX
+ 	SVT_DLLPRIVATE void			ImplCalcUserItemSize();
+--- svtools/source/control/ctrlbox.cxx.orig	2007-06-28 05:23:24.000000000 +0800
++++ svtools/source/control/ctrlbox.cxx	2007-07-30 09:40:33.000000000 +0800
+@@ -61,6 +61,8 @@
+ 
+ #include <vcl/i18nhelp.hxx>
+ 
++#define LB_EAST_NAME 112
++
+ #define IMGTEXTSPACE    2
+ #define EXTRAFONTSIZE   5
+ 
+@@ -622,6 +624,8 @@ FontNameBox::FontNameBox( Window* pParen
+     mpFontList = NULL;
+     mbWYSIWYG = FALSE;
+     mbSymbols = FALSE;
++	// #i73003#
++	mbOnlyListCJKFont = FALSE;
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -633,6 +637,13 @@ FontNameBox::FontNameBox( Window* pParen
+     mpFontList = NULL;
+     mbWYSIWYG = FALSE;
+     mbSymbols = FALSE;
++	// #i73003#
++	mbOnlyListCJKFont = FALSE;
++	if( rResId.GetId() == LB_EAST_NAME )
++	{
++		mbOnlyListCJKFont = TRUE;
++	}
++	
+ }
+ 
+ // -------------------------------------------------------------------
+@@ -696,6 +707,14 @@ void FontNameBox::Fill( const FontList* 
+     for ( USHORT i = 0; i < nFontCount; i++ )
+     {
+         const FontInfo& rFontInfo = pList->GetFontName( i );
++		
++		// #i73003#
++		if( mbOnlyListCJKFont && (!rFontInfo.IsSupportCJK()) )
++		{
++			//Only list CJK font
++			continue;
++		}
++		
+         ULONG nIndex = InsertEntry( rFontInfo.GetName() );
+         if ( nIndex != LISTBOX_ERROR )
+         {
+--- vcl/inc/vcl/font.hxx.orig	2007-04-12 01:54:10.000000000 +0800
++++ vcl/inc/vcl/font.hxx	2007-07-30 09:40:34.000000000 +0800
+@@ -156,6 +156,9 @@ public:
+ 	friend VCL_DLLPUBLIC SvStream&	operator<<( SvStream& rOStm, const Font& );
+     
+     static Font identifyFont( const void* pBuffer, sal_uInt32 nLen );
++
++	// #i73003#
++	BOOL IsSupportCJK() const;
+ };
+ 
+ #endif	// _VCL_FONT_HXX
+--- vcl/source/gdi/font.cxx.orig	2007-07-05 16:39:18.000000000 +0800
++++ vcl/source/gdi/font.cxx	2007-07-30 09:40:34.000000000 +0800
+@@ -61,7 +61,9 @@
+ #endif
+ 
+ #include <algorithm>
+-
++#ifndef _PSPRINT_FONTMANAGER_HXX_
++#include <psprint/fontmanager.hxx>
++#endif
+ // =======================================================================
+ 
+ DBG_NAME( Font )
+@@ -1073,6 +1075,17 @@ Font Font::identifyFont( const void* i_p
+     return aResult;
+ }
+ 
++// #i73003#
++BOOL Font::IsSupportCJK() const
++{
++	BOOL bRet = TRUE;
++	const String aFamilyName = GetName();
++	#ifdef UNX
++	bRet = ::psp::PrintFontManager::get().IsSupportCJK(aFamilyName);
++	#endif
++	return bRet;
++}
++
+ // the inlines from the font.hxx header are now instantiated for pImpl-ification
+ // TODO: reformat
+ const Color& Font::GetColor() const { return mpImplFont->maColor; }
+--- psprint/inc/psprint/fontmanager.hxx.orig	2007-07-31 11:35:11.000000000 +0800
++++ psprint/inc/psprint/fontmanager.hxx	2007-07-31 11:43:34.000000000 +0800
+@@ -203,13 +203,15 @@ struct PrintFontInfo : public FastPrintF
+     int                     				m_nDescend;
+     int                     				m_nLeading;
+     int                     				m_nWidth;
++	bool									m_bCJKSupport; // #i73003#
+ 
+     PrintFontInfo() :
+             FastPrintFontInfo(),
+             m_nAscend( 0 ),
+             m_nDescend( 0 ),
+             m_nLeading( 0 ),
+-            m_nWidth( 0 )
++            m_nWidth( 0 ),
++			m_bCJKSupport( 0 ) // #i73003#
+     {}
+ };
+ 
+@@ -309,6 +311,7 @@ class PrintFontManager
+         int											m_nYMax;
+         bool										m_bHaveVerticalSubstitutedGlyphs;
+         bool                                        m_bUserOverride;
++		bool										m_bCJKSupport; // #i73003#
+ 
+         fcstatus::type                              m_eEmbeddedbitmap;
+         fcstatus::type                              m_eAntialias;
+@@ -748,6 +751,7 @@ public:
+         const ByteString &rLangAttrib, italic::type eItalic, weight::type eWeight, 
+         width::type eWidth, pitch::type ePitch) const;
+     bool hasFontconfig() const { return m_bFontconfigSuccess; }
++    bool IsSupportCJK( const rtl::OUString& rFontName ); // #i73003#
+ };
+ 
+ } // namespace
+--- psprint/source/fontmanager/fontmanager.cxx.orig	2007-07-31 11:35:11.000000000 +0800
++++ psprint/source/fontmanager/fontmanager.cxx	2007-07-31 11:45:49.000000000 +0800
+@@ -392,6 +392,7 @@ PrintFontManager::PrintFont::PrintFont( 
+         m_nYMax( 0 ),
+         m_bHaveVerticalSubstitutedGlyphs( false ),
+         m_bUserOverride( false ),
++  		m_bCJKSupport( false ), 
+         m_eEmbeddedbitmap( fcstatus::isunset ),
+         m_eAntialias( fcstatus::isunset )
+ {
+@@ -2027,6 +2028,9 @@ bool PrintFontManager::analyzeTrueTypeFi
+         // get vertical substitutions flag
+         pFont->m_bHaveVerticalSubstitutedGlyphs = DoesVerticalSubstitution( pTTFont, 1 );
+ 
++		// i#73003#, check for CJK capatibilies for the current font
++		pFont->m_bCJKSupport = (aInfo.ur2 & 0x08000000) >> 27 ;
++
+         CloseTTFont( pTTFont );
+         bSuccess = true;
+     }
+@@ -2789,6 +2793,7 @@ void PrintFontManager::fillPrintFontInfo
+     rInfo.m_nDescend        = pFont->m_nDescend;
+     rInfo.m_nLeading        = pFont->m_nLeading;
+     rInfo.m_nWidth          = pFont->m_aGlobalMetricX.width < pFont->m_aGlobalMetricY.width ? pFont->m_aGlobalMetricY.width : pFont->m_aGlobalMetricX.width;
++	rInfo.m_bCJKSupport		= pFont->m_bCJKSupport; // #i73003#
+ }
+ 
+ // -------------------------------------------------------------------------
+@@ -4141,3 +4146,22 @@ bool PrintFontManager::readOverrideMetri
+     
+     return true;
+ }
++
++bool PrintFontManager::IsSupportCJK( const rtl::OUString& rFamilyName )
++{
++	bool bRet = true;
++	
++	for( ::std::hash_map< fontID, PrintFont* >::const_iterator it = m_aFonts.begin(); it != m_aFonts.end(); ++it )
++	{
++		fontID nFont = it->first;
++		if( rFamilyName == getFontFamily(nFont) )
++		{
++			PrintFont* pFont = it->second;
++        	// might be a truetype font not yet analyzed
++        	if( pFont->m_eType == fonttype::TrueType )
++				analyzeTrueTypeFile( pFont );
++			return pFont->m_bCJKSupport;
++		}
++	}
++	return bRet;
++}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/win32-gw-send-mail.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/win32-gw-send-mail.diff
@@ -0,0 +1,31 @@
+--- shell/source/win32/simplemail/senddoc.cxx	2005-02-08 11:09:48.562500000 +0530
++++ shell/source/win32/simplemail/senddoc.cxx	2005-02-09 13:59:06.140625000 +0530
+@@ -64,7 +64,7 @@
+ #endif
+ 
+ #ifndef _RTL_STRING_HXX_
+-//#include <rtl/string.hxx>
++#include <rtl/string.hxx>
+ #endif
+ 
+ #ifndef INCLUDED_SIMPLEMAPI_HXX
+@@ -99,6 +99,7 @@
+     StringList_t gCc;
+     StringList_t gBcc;
+     StringList_t gAttachments;
++	StringList_t gAttachFilenames;
+     int gMapiFlags = 0;
+ }
+ 
+@@ -172,7 +173,11 @@
+     {
+         MapiFileDesc mfd;
+         ZeroMemory(&mfd, sizeof(mfd));
++
+         mfd.lpszPathName = const_cast<char*>(iter->c_str());    
++		rtl::OString aFullPath( mfd.lpszPathName );
++		gAttachFilenames.push_back( (const sal_Char *) aFullPath );
++		mfd.lpszFileName = const_cast<char*>(gAttachFilenames.back().c_str());    
+         mfd.nPosition = sal::static_int_cast<ULONG>(-1);
+         pMapiAttachmentList->push_back(mfd);        
+     }            
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/angola.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/angola.diff
@@ -0,0 +1,542 @@
+--- i18npool/source/localedata/data/pt_AO.xml.angola	2007-10-18 14:33:49.000000000 -0200
++++ i18npool/source/localedata/data/pt_AO.xml	2007-10-18 14:33:08.000000000 -0200
+@@ -0,0 +1,373 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE Locale SYSTEM 'locale.dtd'>
++<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.2">
++<LC_INFO>
++<Language>
++<LangID>pt</LangID>
++<DefaultName>Portuguese</DefaultName>
++</Language>
++<Country>
++<CountryID>AO</CountryID>
++<DefaultName>Angola</DefaultName>
++</Country>
++</LC_INFO>
++<LC_CTYPE unoid="generic">
++<Separators>
++<DateSeparator>-</DateSeparator>
++<ThousandSeparator>.</ThousandSeparator>
++<DecimalSeparator>,</DecimalSeparator>
++<TimeSeparator>:</TimeSeparator>
++<Time100SecSeparator>,</Time100SecSeparator>
++<ListSeparator>;</ListSeparator>
++<LongDateDayOfWeekSeparator>, </LongDateDayOfWeekSeparator>
++<LongDateDaySeparator> de </LongDateDaySeparator>
++<LongDateMonthSeparator> de </LongDateMonthSeparator>
++<LongDateYearSeparator> </LongDateYearSeparator>
++</Separators>
++<Markers>
++<QuotationStart>‘</QuotationStart>
++<QuotationEnd>’</QuotationEnd>
++<DoubleQuotationStart>“</DoubleQuotationStart>
++<DoubleQuotationEnd>”</DoubleQuotationEnd>
++</Markers>
++<TimeAM>AM</TimeAM>
++<TimePM>PM</TimePM>
++<MeasurementSystem>Metric</MeasurementSystem>
++</LC_CTYPE>
++<LC_FORMAT>
++<FormatElement msgid="DateFormatskey1" default="true" type="short" usage="DATE" formatindex="18">
++<FormatCode>DD-MM-AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="28">
++<FormatCode>NN DD-MMM AA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="34">
++<FormatCode>MM-AA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="35">
++<FormatCode>DD-MMM</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="36">
++<FormatCode>MMMM</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="37">
++<FormatCode>QQ AA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="21">
++<FormatCode>DD-MM-AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey8" default="true" type="medium" usage="DATE" formatindex="20">
++<FormatCode>DD-MM-AA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey9" default="true" type="long" usage="DATE" formatindex="19">
++<FormatCode>NNNND "de" MMMM "de" AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="22">
++<FormatCode>D "de" MMM "de" AA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey11" default="false" type="long" usage="DATE" formatindex="23">
++<FormatCode>D "de" MMM "de" AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="25">
++<FormatCode>D "de" MMMM "de" AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey13" default="false" type="long" usage="DATE" formatindex="27">
++<FormatCode>NN, D "de" MMM "de" AA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey14" default="false" type="long" usage="DATE" formatindex="29">
++<FormatCode>NN, D "de" MMMM "de" AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="30">
++<FormatCode>NNNND "de" MMMM "de" AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="24">
++<FormatCode>D. MMM. AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
++<FormatCode>D. MMMM AAAA</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey18" default="false" type="short" usage="DATE" formatindex="31">
++<FormatCode>MM-DD</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey19" default="false" type="medium" usage="DATE" formatindex="32">
++<FormatCode>AA-MM-DD</FormatCode>
++<DefaultName>ISO 8601 (EN 28601)</DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey20" default="false" type="medium" usage="DATE" formatindex="33">
++<FormatCode>AAAA-MM-DD</FormatCode>
++<DefaultName>ISO 8601 (EN 28601)</DefaultName>
++</FormatElement>
++<FormatElement msgid="DateFormatskey21" default="false" type="medium" usage="DATE" formatindex="38">
++<FormatCode>WW</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey1" default="true" type="short" usage="TIME"  formatindex="39">
++<FormatCode>HH:MM</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey2" default="true" type="medium" usage="TIME"  formatindex="40">
++<FormatCode>HH:MM:SS</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey3" default="false" type="short" usage="TIME"  formatindex="41">
++<FormatCode>HH:MM AM/PM</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey4" default="false" type="medium" usage="TIME"  formatindex="42">
++<FormatCode>HH:MM:SS AM/PM</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME"  formatindex="43">
++<FormatCode>[HH]:MM:SS</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME"  formatindex="44">
++<FormatCode>MM:SS,00</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME"  formatindex="45">
++<FormatCode>[HH]:MM:SS,00</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME"  formatindex="46">
++<FormatCode>DD-MM-AA HH:MM</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME"  formatindex="47">
++<FormatCode>DD-MM-AAAA HH:MM:SS</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER"  formatindex="0">
++<FormatCode>Estandar</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER"  formatindex="1">
++<FormatCode>0</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER"  formatindex="2">
++<FormatCode>0,00</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER"  formatindex="3">
++<FormatCode>#.##0</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER"  formatindex="4">
++<FormatCode>#.##0,00</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER"  formatindex="5">
++<FormatCode>#.###,00</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY"  formatindex="12">
++<FormatCode>#.##0 [$Kz-816];-#.##0 [$Kz-816]</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY"  formatindex="13">
++<FormatCode>#.##0,00 [$Kz-816];-#.##0,00 [$Kz-816]</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY"  formatindex="14">
++<FormatCode>#.##0 [$Kz-816];[RED]-#.##0 [$Kz-816]</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="CurrencyFormatskey4" default="true" type="medium" usage="CURRENCY"  formatindex="15">
++<FormatCode>#.##0,00 [$Kz-816];[RED]-#.##0,00 [$Kz-816]</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY"  formatindex="16">
++<FormatCode>#.##0,00 CCC</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY"  formatindex="17">
++<FormatCode>#.##0,-- [$Kz-816];[RED]-#.##0,-- [$Kz-816]</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER"  formatindex="8">
++<FormatCode>0%</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER"  formatindex="9">
++<FormatCode>0,00%</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER"  formatindex="6">
++<FormatCode>0,00E+000</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER"  formatindex="7">
++<FormatCode>0,00E+00</FormatCode>
++<DefaultName></DefaultName>
++</FormatElement>
++</LC_FORMAT>
++<LC_COLLATION ref="en_US"/>
++<LC_SEARCH ref="en_US"/>
++<LC_INDEX ref="en_US"/>
++<LC_CALENDAR>
++<Calendar unoid="gregorian" default="true">
++<DaysOfWeek>
++<Day>
++<DayID>sun</DayID>
++<DefaultAbbrvName>Dom</DefaultAbbrvName>
++<DefaultFullName>Domingo</DefaultFullName>
++</Day>
++<Day>
++<DayID>mon</DayID>
++<DefaultAbbrvName>Seg</DefaultAbbrvName>
++<DefaultFullName>Segunda-feira</DefaultFullName>
++</Day>
++<Day>
++<DayID>tue</DayID>
++<DefaultAbbrvName>Ter</DefaultAbbrvName>
++<DefaultFullName>Terça-feira</DefaultFullName>
++</Day>
++<Day>
++<DayID>wed</DayID>
++<DefaultAbbrvName>Qua</DefaultAbbrvName>
++<DefaultFullName>Quarta-feira</DefaultFullName>
++</Day>
++<Day>
++<DayID>thu</DayID>
++<DefaultAbbrvName>Qui</DefaultAbbrvName>
++<DefaultFullName>Quinta-feira</DefaultFullName>
++</Day>
++<Day>
++<DayID>fri</DayID>
++<DefaultAbbrvName>Sex</DefaultAbbrvName>
++<DefaultFullName>Sexta-feira</DefaultFullName>
++</Day>
++<Day>
++<DayID>sat</DayID>
++<DefaultAbbrvName>Sáb</DefaultAbbrvName>
++<DefaultFullName>Sábado</DefaultFullName>
++</Day>
++</DaysOfWeek>
++<MonthsOfYear>
++<Month>
++<MonthID>jan</MonthID>
++<DefaultAbbrvName>Jan</DefaultAbbrvName>
++<DefaultFullName>Janeiro</DefaultFullName>
++</Month>
++<Month>
++<MonthID>feb</MonthID>
++<DefaultAbbrvName>Fev</DefaultAbbrvName>
++<DefaultFullName>Fevereiro</DefaultFullName>
++</Month>
++<Month>
++<MonthID>mar</MonthID>
++<DefaultAbbrvName>Mar</DefaultAbbrvName>
++<DefaultFullName>Março</DefaultFullName>
++</Month>
++<Month>
++<MonthID>apr</MonthID>
++<DefaultAbbrvName>Abr</DefaultAbbrvName>
++<DefaultFullName>Abril</DefaultFullName>
++</Month>
++<Month>
++<MonthID>may</MonthID>
++<DefaultAbbrvName>Mai</DefaultAbbrvName>
++<DefaultFullName>Maio</DefaultFullName>
++</Month>
++<Month>
++<MonthID>jun</MonthID>
++<DefaultAbbrvName>Jun</DefaultAbbrvName>
++<DefaultFullName>Junho</DefaultFullName>
++</Month>
++<Month>
++<MonthID>jul</MonthID>
++<DefaultAbbrvName>Jul</DefaultAbbrvName>
++<DefaultFullName>Julho</DefaultFullName>
++</Month>
++<Month>
++<MonthID>aug</MonthID>
++<DefaultAbbrvName>Ago</DefaultAbbrvName>
++<DefaultFullName>Agosto</DefaultFullName>
++</Month>
++<Month>
++<MonthID>sep</MonthID>
++<DefaultAbbrvName>Set</DefaultAbbrvName>
++<DefaultFullName>Setembro</DefaultFullName>
++</Month>
++<Month>
++<MonthID>oct</MonthID>
++<DefaultAbbrvName>Out</DefaultAbbrvName>
++<DefaultFullName>Outubro</DefaultFullName>
++</Month>
++<Month>
++<MonthID>nov</MonthID>
++<DefaultAbbrvName>Nov</DefaultAbbrvName>
++<DefaultFullName>Novembro</DefaultFullName>
++</Month>
++<Month>
++<MonthID>dec</MonthID>
++<DefaultAbbrvName>Dez</DefaultAbbrvName>
++<DefaultFullName>Dezembro</DefaultFullName>
++</Month>
++</MonthsOfYear>
++<Eras>
++<Era>
++<EraID>bc</EraID>
++<DefaultAbbrvName>BC</DefaultAbbrvName>
++<DefaultFullName>BC</DefaultFullName>
++</Era>
++<Era>
++<EraID>ad</EraID>
++<DefaultAbbrvName>AD</DefaultAbbrvName>
++<DefaultFullName>AD</DefaultFullName>
++</Era>
++</Eras>
++<StartDayOfWeek>
++<DayID>mon</DayID>
++</StartDayOfWeek>
++<MinimalDaysInFirstWeek>1</MinimalDaysInFirstWeek>
++</Calendar>
++</LC_CALENDAR>
++<LC_CURRENCY>
++<Currency default="true" usedInCompatibleFormatCodes="true">
++<CurrencyID>Kz</CurrencyID>
++<CurrencySymbol>Kz</CurrencySymbol>
++<BankSymbol>AOA</BankSymbol>
++<CurrencyName>Kwanza</CurrencyName>
++<DecimalPlaces>2</DecimalPlaces>
++</Currency>
++</LC_CURRENCY>
++<LC_TRANSLITERATION ref="en_US"/>
++<LC_MISC>
++<ReservedWords>
++<trueWord>verdadeiro</trueWord>
++<falseWord>falso</falseWord>
++<quarter1Word>1º trimestre</quarter1Word>
++<quarter2Word>2º trimestre</quarter2Word>
++<quarter3Word>3º trimestre</quarter3Word>
++<quarter4Word>4º trimestre</quarter4Word>
++<aboveWord>acima</aboveWord>
++<belowWord>abaixo</belowWord>
++<quarter1Abbreviation>T1</quarter1Abbreviation>
++<quarter2Abbreviation>T2</quarter2Abbreviation>
++<quarter3Abbreviation>T3</quarter3Abbreviation>
++<quarter4Abbreviation>T4</quarter4Abbreviation>
++</ReservedWords>
++</LC_MISC>
++<LC_NumberingLevel ref="en_US"/>
++<LC_OutLineNumberingLevel ref="en_US"/>
++</Locale>
+--- i18npool/source/localedata/data/makefile.mk.ao	2007-10-19 16:45:53.000000000 -0200
++++ i18npool/source/localedata/data/makefile.mk	2007-10-19 16:46:08.000000000 -0200
+@@ -177,6 +177,7 @@ MY_MISC_CXXFILES = \
+     $(MISC)$/localedata_or_IN.cxx  \
+     $(MISC)$/localedata_pa_IN.cxx  \
+     $(MISC)$/localedata_pl_PL.cxx  \
++    $(MISC)$/localedata_pt_AO.cxx  \
+     $(MISC)$/localedata_pt_BR.cxx  \
+     $(MISC)$/localedata_pt_PT.cxx  \
+     $(MISC)$/localedata_ro_RO.cxx  \
+@@ -329,6 +330,7 @@ SHL3OBJS=	\
+ 	$(SLO)$/localedata_nn_NO.obj	\
+ 	$(SLO)$/localedata_no_NO.obj	\
+ 	$(SLO)$/localedata_pl_PL.obj	\
++	$(SLO)$/localedata_pt_AO.obj	\
+ 	$(SLO)$/localedata_pt_BR.obj	\
+ 	$(SLO)$/localedata_pt_PT.obj	\
+ 	$(SLO)$/localedata_ru_RU.obj	\
+--- i18npool/source/localedata/data/localedata_euro.map.orig	2007-07-03 10:10:14.000000000 -0400
++++ i18npool/source/localedata/data/localedata_euro.map	2007-11-05 07:29:03.000000000 -0500
+@@ -49,6 +49,7 @@
+ getAllCalendars_no_NO;
+ getAllCalendars_oc_FR;
+ getAllCalendars_pl_PL;
++getAllCalendars_pt_AO;
+ getAllCalendars_pt_BR;
+ getAllCalendars_pt_PT;
+ getAllCalendars_ro_RO;
+@@ -110,6 +111,7 @@
+ getAllCurrencies_no_NO;
+ getAllCurrencies_oc_FR;
+ getAllCurrencies_pl_PL;
++getAllCurrencies_pt_AO;
+ getAllCurrencies_pt_BR;
+ getAllCurrencies_pt_PT;
+ getAllCurrencies_ro_RO;
+@@ -171,6 +173,7 @@
+ getAllFormats0_no_NO;
+ getAllFormats0_oc_FR;
+ getAllFormats0_pl_PL;
++getAllFormats0_pt_AO;
+ getAllFormats0_pt_BR;
+ getAllFormats0_pt_PT;
+ getAllFormats0_ro_RO;
+@@ -232,6 +235,7 @@
+ getBreakIteratorRules_no_NO;
+ getBreakIteratorRules_oc_FR;
+ getBreakIteratorRules_pl_PL;
++getBreakIteratorRules_pt_AO;
+ getBreakIteratorRules_pt_BR;
+ getBreakIteratorRules_pt_PT;
+ getBreakIteratorRules_ro_RO;
+@@ -293,6 +297,7 @@
+ getCollationOptions_no_NO;
+ getCollationOptions_oc_FR;
+ getCollationOptions_pl_PL;
++getCollationOptions_pt_AO;
+ getCollationOptions_pt_BR;
+ getCollationOptions_pt_PT;
+ getCollationOptions_ro_RO;
+@@ -354,6 +359,7 @@
+ getCollatorImplementation_no_NO;
+ getCollatorImplementation_oc_FR;
+ getCollatorImplementation_pl_PL;
++getCollatorImplementation_pt_AO;
+ getCollatorImplementation_pt_BR;
+ getCollatorImplementation_pt_PT;
+ getCollatorImplementation_ro_RO;
+@@ -415,6 +421,7 @@
+ getContinuousNumberingLevels_no_NO;
+ getContinuousNumberingLevels_oc_FR;
+ getContinuousNumberingLevels_pl_PL;
++getContinuousNumberingLevels_pt_AO;
+ getContinuousNumberingLevels_pt_BR;
+ getContinuousNumberingLevels_pt_PT;
+ getContinuousNumberingLevels_ro_RO;
+@@ -476,6 +483,7 @@
+ getFollowPageWords_no_NO;
+ getFollowPageWords_oc_FR;
+ getFollowPageWords_pl_PL;
++getFollowPageWords_pt_AO;
+ getFollowPageWords_pt_BR;
+ getFollowPageWords_pt_PT;
+ getFollowPageWords_ro_RO;
+@@ -537,6 +545,7 @@
+ getForbiddenCharacters_no_NO;
+ getForbiddenCharacters_oc_FR;
+ getForbiddenCharacters_pl_PL;
++getForbiddenCharacters_pt_AO;
+ getForbiddenCharacters_pt_BR;
+ getForbiddenCharacters_pt_PT;
+ getForbiddenCharacters_ro_RO;
+@@ -598,6 +607,7 @@
+ getIndexAlgorithm_no_NO;
+ getIndexAlgorithm_oc_FR;
+ getIndexAlgorithm_pl_PL;
++getIndexAlgorithm_pt_AO;
+ getIndexAlgorithm_pt_BR;
+ getIndexAlgorithm_pt_PT;
+ getIndexAlgorithm_ro_RO;
+@@ -659,6 +669,7 @@
+ getLCInfo_no_NO;
+ getLCInfo_oc_FR;
+ getLCInfo_pl_PL;
++getLCInfo_pt_AO;
+ getLCInfo_pt_BR;
+ getLCInfo_pt_PT;
+ getLCInfo_ro_RO;
+@@ -720,6 +731,7 @@
+ getLocaleItem_no_NO;
+ getLocaleItem_oc_FR;
+ getLocaleItem_pl_PL;
++getLocaleItem_pt_AO;
+ getLocaleItem_pt_BR;
+ getLocaleItem_pt_PT;
+ getLocaleItem_ro_RO;
+@@ -781,6 +793,7 @@
+ getOutlineNumberingLevels_no_NO;
+ getOutlineNumberingLevels_oc_FR;
+ getOutlineNumberingLevels_pl_PL;
++getOutlineNumberingLevels_pt_AO;
+ getOutlineNumberingLevels_pt_BR;
+ getOutlineNumberingLevels_pt_PT;
+ getOutlineNumberingLevels_ro_RO;
+@@ -842,6 +855,7 @@
+ getReservedWords_no_NO;
+ getReservedWords_oc_FR;
+ getReservedWords_pl_PL;
++getReservedWords_pt_AO;
+ getReservedWords_pt_BR;
+ getReservedWords_pt_PT;
+ getReservedWords_ro_RO;
+@@ -903,6 +917,7 @@
+ getSearchOptions_no_NO;
+ getSearchOptions_oc_FR;
+ getSearchOptions_pl_PL;
++getSearchOptions_pt_AO;
+ getSearchOptions_pt_BR;
+ getSearchOptions_pt_PT;
+ getSearchOptions_ro_RO;
+@@ -964,6 +979,7 @@
+ getTransliterations_no_NO;
+ getTransliterations_oc_FR;
+ getTransliterations_pl_PL;
++getTransliterations_pt_AO;
+ getTransliterations_pt_BR;
+ getTransliterations_pt_PT;
+ getTransliterations_ro_RO;
+@@ -1025,6 +1041,7 @@
+ getUnicodeScripts_no_NO;
+ getUnicodeScripts_oc_FR;
+ getUnicodeScripts_pl_PL;
++getUnicodeScripts_pt_AO;
+ getUnicodeScripts_pt_BR;
+ getUnicodeScripts_pt_PT;
+ getUnicodeScripts_ro_RO;
+--- i18npool/source/localedata/localedata.cxx.ao	2007-10-19 16:48:10.000000000 -0200
++++ i18npool/source/localedata/localedata.cxx	2007-10-19 16:48:20.000000000 -0200
+@@ -139,6 +139,7 @@ static const struct {
+     { "nn_NO",  lcl_DATA_EURO },
+     { "nb_NO",  lcl_DATA_EURO },
+     { "pl_PL",  lcl_DATA_EURO },
++    { "pt_AO",  lcl_DATA_EURO },
+     { "pt_BR",  lcl_DATA_EURO },
+     { "pt_PT",  lcl_DATA_EURO },
+     { "ru_RU",  lcl_DATA_EURO },
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-service.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-service.diff
@@ -0,0 +1,2444 @@
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxFPentry.cxx	2004-06-14 14:08:19.923932848 +0200
+@@ -0,0 +1,169 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): _______________________________________
++ *
++ *
++ ************************************************************************/
++
++#ifndef _CPPUHELPER_FACTORY_HXX_
++#include <cppuhelper/factory.hxx>
++#endif
++
++#ifndef _COM_SUN_STAR_CONTAINER_XSET_HPP_
++#include <com/sun/star/container/XSet.hpp>
++#endif
++
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++
++#ifndef _UNXFILEPICKER_HXX_
++#include "UnxFilePicker.hxx"
++#endif
++
++#ifndef _FPSERVICEINFO_HXX_
++#include "FPServiceInfo.hxx"
++#endif
++
++using namespace ::rtl;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::container;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::registry;
++using namespace ::cppu;
++using ::com::sun::star::ui::dialogs::XFilePicker;
++
++//////////////////////////////////////////////////////////////////////////
++// 
++//////////////////////////////////////////////////////////////////////////
++
++static Reference< XInterface > SAL_CALL createInstance( const Reference< XMultiServiceFactory >& rServiceManager )
++{
++    return Reference< XInterface >( 
++            static_cast< XFilePicker* >( new UnxFilePicker( rServiceManager ) ) );
++}
++
++//////////////////////////////////////////////////////////////////////////
++// the three uno functions that will be exported
++//////////////////////////////////////////////////////////////////////////
++
++extern "C" 
++{
++
++//////////////////////////////////////////////////////////////////////////
++// component_getImplementationEnvironment
++//////////////////////////////////////////////////////////////////////////
++
++void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
++{
++    *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++
++//////////////////////////////////////////////////////////////////////////
++//
++//////////////////////////////////////////////////////////////////////////
++
++sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
++{
++    sal_Bool bRetVal = sal_True;
++
++    if ( pRegistryKey )
++    {
++        try
++        {
++            Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );				
++            pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
++        }
++        catch( InvalidRegistryException& )
++        {			
++            OSL_ENSURE( sal_False, "InvalidRegistryException caught" );			
++            bRetVal = sal_False;
++        }
++    }
++
++    return bRetVal;
++}
++
++//////////////////////////////////////////////////////////////////////////
++//
++//////////////////////////////////////////////////////////////////////////
++
++void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
++{
++    void* pRet = 0;
++
++    if ( pSrvManager && ( 0 == rtl_str_compare( pImplName, FILE_PICKER_IMPL_NAME ) ) )
++    {
++        Sequence< OUString > aSNS( 1 );
++        aSNS.getArray( )[0] = OUString::createFromAscii( FILE_PICKER_SERVICE_NAME );		
++
++        Reference< XSingleServiceFactory > xFactory ( createSingleFactory(
++                    reinterpret_cast< XMultiServiceFactory* > ( pSrvManager ),
++                    OUString::createFromAscii( pImplName ),
++                    createInstance,
++                    aSNS ) );
++        if ( xFactory.is() )
++        {
++            xFactory->acquire();
++            pRet = xFactory.get();
++        }			
++    }
++
++    return pRet;
++}
++
++} // extern "C"
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/FPServiceInfo.hxx	2004-06-14 14:09:17.226221576 +0200
+@@ -0,0 +1,77 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): _______________________________________
++ *
++ *
++ ************************************************************************/
++
++#ifndef _FPSERVICEINFO_HXX_
++#define _FPSERVICEINFO_HXX_
++
++// the service names
++#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.KDEFilePicker"
++
++// the implementation names		
++#define FILE_PICKER_IMPL_NAME    "com.sun.star.ui.dialogs.UnxFilePicker"
++
++// the registry key names
++// a key under which this service will be registered,
++// Format: -> "/ImplName/UNO/SERVICES/ServiceName"
++//  <Implementation-Name></UNO/SERVICES/><Service-Name> 
++#define FILE_PICKER_REGKEY_NAME  "/com.sun.star.ui.dialogs.UnxFilePicker/UNO/SERVICES/com.sun.star.ui.dialogs.KDEFilePicker"
++
++#endif
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/fps_kde.xml	2004-06-21 17:30:23.370313432 +0200
+@@ -0,0 +1,51 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
++<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
++    <module-name>fps_kde</module-name>
++    <component-description>
++        <author> Jan Holesovsky </author>
++        <name>    com.sun.star.comp.ui.dialogs.FilePicker </name>
++        <description>
++            The KDE implementation of the FilePicker service.
++        </description>
++        <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
++        <language>    c++    </language>
++        <status value="beta"/>
++        <supported-service>    com.sun.star.ui.dialogs.FilePicker </supported-service>        
++        <service-dependency>...</service-dependency>
++        <type>    com.sun.star.ui.dialogs.XExecutableDialog            </type>
++        <type>    com.sun.star.ui.dialogs.XFilePicker                  </type>
++        <type>    com.sun.star.ui.dialogs.XFilterManager               </type>
++        <type>    com.sun.star.ui.dialogs.XFilterGroupManager          </type>
++        <type>    com.sun.star.ui.dialogs.XFilePickerListener          </type>
++        <type>    com.sun.star.ui.dialogs.ExecutableDialogException    </type>
++        <type>    com.sun.star.ui.dialogs.XFilePickerNotifier          </type>
++        <type>    com.sun.star.ui.dialogs.XFilePickerControlAccess     </type>
++        <type>    com.sun.star.ui.dialogs.XFilePreview                 </type>
++        <type>    com.sun.star.ui.dialogs.ExtendedFilePickerElementIds </type>
++        <type>    com.sun.star.ui.dialogs.ExecutableDialogResults      </type>        
++        <type>    com.sun.star.ui.dialogs.FilePickerEvent              </type>
++        <type>    com.sun.star.ui.dialogs.CommonFilePickerElementIds   </type>
++        <type>    com.sun.star.ui.dialogs.ListboxControlActions        </type>
++        <type>    com.sun.star.ui.dialogs.TemplateDescription          </type>        
++        <type>    com.sun.star.ui.dialogs.FilePreviewImageFormats      </type>    
++        <type>    com.sun.star.util.XCancellable                       </type>
++        <type>    com.sun.star.lang.XComponent                         </type>
++        <type>    com.sun.star.lang.XMultiServiceFactory               </type>
++        <type>    com.sun.star.lang.XSingleServiceFactory              </type>
++        <type>    com.sun.star.lang.XServiceInfo                       </type>
++        <type>    com.sun.star.lang.XTypeProvider                      </type>
++        <type>    com.sun.star.lang.IllegalArgumentException           </type>
++        <type>    com.sun.star.uno.TypeClass                           </type>
++        <type>    com.sun.star.uno.XWeak                               </type>
++        <type>    com.sun.star.uno.XAggregation                        </type>
++        <type>    com.sun.star.registry.XRegistryKey                   </type>
++        <type>    com.sun.star.container.XSet                          </type>
++    </component-description>
++    <project-build-dependency>     cppuhelper  </project-build-dependency>
++    <project-build-dependency>     cppu        </project-build-dependency>
++    <project-build-dependency>     sal         </project-build-dependency>
++    <runtime-module-dependency>    cppuhelper  </runtime-module-dependency>
++    <runtime-module-dependency>    cppu2       </runtime-module-dependency>
++    <runtime-module-dependency>    sal2        </runtime-module-dependency>
++</module-description>
+
+
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/makefile.mk	2004-06-15 10:52:55.099580592 +0200
+@@ -0,0 +1,112 @@
++#*************************************************************************
++#
++#
++#
++#
++#
++#
++#
++#   The Contents of this file are made available subject to the terms of
++#   either of the following licenses
++#
++#          - GNU Lesser General Public License Version 2.1
++#          - Sun Industry Standards Source License Version 1.1
++#
++#   Sun Microsystems Inc., October, 2000
++#
++#   GNU Lesser General Public License Version 2.1
++#   =============================================
++#   Copyright 2000 by Sun Microsystems, Inc.
++#   901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#   This library is free software; you can redistribute it and/or
++#   modify it under the terms of the GNU Lesser General Public
++#   License version 2.1, as published by the Free Software Foundation.
++#
++#   This library is distributed in the hope that it will be useful,
++#   but WITHOUT ANY WARRANTY; without even the implied warranty of
++#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#   Lesser General Public License for more details.
++#
++#   You should have received a copy of the GNU Lesser General Public
++#   License along with this library; if not, write to the Free Software
++#   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#   MA  02111-1307  USA
++#
++#
++#   Sun Industry Standards Source License Version 1.1
++#   =================================================
++#   The contents of this file are subject to the Sun Industry Standards
++#   Source License Version 1.1 (the "License"); You may not use this file
++#   except in compliance with the License. You may obtain a copy of the
++#   License at http://www.openoffice.org/license.html.
++#
++#   Software provided under this License is provided on an "AS IS" basis,
++#   WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++#   WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++#   MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++#   See the License for the specific provisions governing your rights and
++#   obligations concerning the Software.
++#
++#   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++#
++#   Copyright: 2000 by Sun Microsystems, Inc.
++#
++#   All Rights Reserved.
++#
++#   Contributor(s): _______________________________________
++#
++#
++#
++#*************************************************************************
++
++PRJ=..$/..$/..
++
++PRJNAME=fpicker
++TARGET=fps_kde.uno
++LIBTARGET=NO
++ENABLE_EXCEPTIONS=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++DLLPRE=
++
++# ------------------------------------------------------------------
++
++# Currently just KDE is supported...
++.IF "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
++
++dummy:
++	@echo "Nothing to build. GUIBASE == $(GUIBASE), ENABLE_KDE is not set"
++
++.ELSE # we build for KDE
++
++# --- Files --------------------------------------------------------
++
++SLOFILES =\
++		$(SLO)$/UnxCommandThread.obj	\
++		$(SLO)$/UnxFilePicker.obj		\
++		$(SLO)$/UnxNotifyThread.obj		\
++		$(SLO)$/UnxFPentry.obj
++
++SHL1NOCHECK=TRUE
++SHL1TARGET=fps_kde.uno
++SHL1STDLIBS=$(CPPULIB)\
++		$(CPPUHELPERLIB)\
++		$(SALLIB)\
++		$(VCLLIB)\
++		$(TOOLSLIB)\
++		$(SVTOOLLIB)
++
++SHL1OBJS=$(SLOFILES)
++SHL1DEF=$(MISC)$/$(SHL1TARGET).def
++
++DEF1NAME=$(SHL1TARGET)
++DEF1VERSIONMAP=exports.map
++
++.ENDIF # "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :	target.mk
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxCommandThread.cxx	2004-06-21 17:39:06.421797520 +0200
+@@ -0,0 +1,355 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _UNXCOMMANDTHREAD_HXX_
++#include <UnxCommandThread.hxx>
++#endif
++
++#ifndef _UNXNOTIFYTHREAD_HXX_
++#include <UnxNotifyThread.hxx>
++#endif
++
++#ifndef _RTL_USTRING_H_
++#include <rtl/ustring.hxx>
++#endif
++
++#ifndef _RTL_USTRBUF_HXX_
++#include <rtl/ustrbuf.hxx>
++#endif
++
++#include <unistd.h>
++#include <string.h>
++#include <iostream>
++
++using namespace ::com::sun::star;
++
++//////////////////////////////////////////////////////////////////////////
++// UnxFilePickerCommandThread
++//////////////////////////////////////////////////////////////////////////
++
++UnxFilePickerCommandThread::UnxFilePickerCommandThread( UnxFilePickerNotifyThread *pNotifyThread, int nReadFD )
++    : m_pNotifyThread( pNotifyThread ),
++      m_nReadFD( nReadFD )
++{
++}
++
++UnxFilePickerCommandThread::~UnxFilePickerCommandThread()
++{
++}
++
++sal_Bool SAL_CALL UnxFilePickerCommandThread::result()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_aResult;
++}
++
++::rtl::OUString SAL_CALL UnxFilePickerCommandThread::getCurrentFilter()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++    
++    return m_aGetCurrentFilter;
++}
++
++::rtl::OUString SAL_CALL UnxFilePickerCommandThread::getDirectory()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_aGetDirectory;
++}
++
++uno::Sequence< ::rtl::OUString > SAL_CALL UnxFilePickerCommandThread::getFiles()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    sal_Int32 nSize = m_aGetFiles.size();
++    uno::Sequence< ::rtl::OUString > aFiles( ( nSize > 1 )? nSize + 1: nSize );
++
++    if ( nSize == 1 )
++        aFiles[0] = m_aGetFiles.front();
++    else if ( nSize > 1 )
++    {
++        // First entry in the sequence must be the dirname, the others are the
++        // filenames, so we have to rearrange the list...
++
++        ::rtl::OUString aFront = m_aGetFiles.front();
++        sal_Int32 nLastSlash = aFront.lastIndexOf( '/' );
++        
++        aFiles[0] = ( nLastSlash >= 0 )? aFront.copy( 0, nLastSlash ): ::rtl::OUString();
++        ++nLastSlash;
++
++        sal_Int32 nIdx = 1;
++        for ( ::std::list< ::rtl::OUString >::const_iterator it = m_aGetFiles.begin();
++                it != m_aGetFiles.end(); ++it, ++nIdx )
++        {
++            sal_Int32 nLength = (*it).getLength() - nLastSlash;
++            aFiles[nIdx] = ( nLength >= 0 )? (*it).copy( nLastSlash, nLength ): ::rtl::OUString();
++        }
++    }
++
++    return aFiles;
++}
++
++uno::Any SAL_CALL UnxFilePickerCommandThread::getValue()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_aGetValue;
++}
++
++void SAL_CALL UnxFilePickerCommandThread::run()
++{
++    if ( m_nReadFD < 0 )
++        return;
++
++    sal_Int32 nBufferSize = 1024; // 1 is for testing, 1024 for real use
++    sal_Char *pBuffer = new sal_Char[nBufferSize];
++    sal_Char *pBufferEnd = pBuffer + nBufferSize;
++
++    sal_Char *pWhereToRead = pBuffer;
++    sal_Char *pEntryBegin = pBuffer;
++    sal_Int32 nBytesRead = 0;
++    sal_Bool  bShouldExit = sal_False;
++    while ( !bShouldExit && ( nBytesRead = read( m_nReadFD, pWhereToRead, pBufferEnd - pWhereToRead ) ) > 0 )
++    {
++        sal_Bool bFoundNL = sal_False;
++        sal_Char *pWhereToReadEnd = pWhereToRead + nBytesRead;
++        sal_Char *pEntryEnd = pWhereToRead;
++        do {
++            for ( ; pEntryEnd < pWhereToReadEnd && *pEntryEnd != '\n'; ++pEntryEnd )
++                ;
++
++            if ( pEntryEnd < pWhereToReadEnd )
++            {
++                bFoundNL = sal_True;
++                *pEntryEnd = 0;
++
++                if ( strcmp( pEntryBegin, "exited" ) == 0 )
++                    bShouldExit = sal_True;
++                else
++                    handleCommand( ::rtl::OUString( pEntryBegin, pEntryEnd - pEntryBegin, RTL_TEXTENCODING_UTF8 )/*, bQuit*/ );
++
++                pEntryBegin = pEntryEnd + 1;
++            }
++        } while ( pEntryEnd < pWhereToReadEnd );
++
++        if ( bFoundNL )
++        {
++            if ( pEntryBegin < pBufferEnd )
++                memmove( pBuffer, pEntryBegin, pWhereToReadEnd - pEntryBegin );
++        }
++        else
++        {
++            // enlarge the buffer size
++            nBufferSize *= 2;
++            sal_Char *pNewBuffer = new sal_Char[nBufferSize];
++            if ( pEntryBegin < pBufferEnd )
++                memmove( pNewBuffer, pEntryBegin, pWhereToReadEnd - pEntryBegin );
++
++            delete[] pBuffer;
++            pBuffer = pNewBuffer;
++            pBufferEnd = pBuffer + nBufferSize;
++        }
++
++        pWhereToRead = pBuffer + ( pWhereToReadEnd - pEntryBegin );
++        pEntryBegin = pBuffer;
++    }
++}
++
++void SAL_CALL UnxFilePickerCommandThread::handleCommand( const ::rtl::OUString &rCommand )
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++    
++#if OSL_DEBUG_LEVEL > 0
++    ::std::cerr << "UnxFilePicker received: \"" <<
++        OUStringToOString( rCommand, RTL_TEXTENCODING_ASCII_US ).getStr() << "\"" << ::std::endl;
++#endif
++
++    ::std::list< ::rtl::OUString > aList = tokenize( rCommand );
++
++    if ( aList.size() == 0 )
++        return;
++
++    ::rtl::OUString aCommandName = aList.front();
++    aList.pop_front();
++
++    if ( aCommandName.equalsAscii( "accept" ) )
++    {
++        m_aResult = sal_True;
++        m_aExecCondition.set();
++    }
++    else if ( aCommandName.equalsAscii( "reject" ) )
++    {
++        m_aResult = sal_False;
++        m_aExecCondition.set();
++    }
++    else if ( aCommandName.equalsAscii( "fileSelectionChanged" ) )
++    {
++        if ( m_pNotifyThread )
++            m_pNotifyThread->fileSelectionChanged();
++    }
++    else if ( aCommandName.equalsAscii( "files" ) )
++    {
++        m_aGetFiles = aList;
++        m_aGetFilesCondition.set();
++    }
++    else if ( aCommandName.equalsAscii( "value" ) )
++    {
++        ::rtl::OUString aType;
++        if ( !aList.empty() )
++        {
++            aType = aList.front();
++            aList.pop_front();
++        }
++        
++        if ( aType.equalsAscii( "bool" ) )
++        {
++            sal_Bool bValue = !aList.empty() && aList.front().equalsIgnoreAsciiCaseAscii( "true" );
++
++            m_aGetValue <<= bValue;
++            m_aGetValueCondition.set();
++        }
++        else if ( aType.equalsAscii( "int" ) )
++        {
++            sal_Int32 nValue = 0;
++            if ( !aList.empty() )
++                nValue = aList.front().toInt32();
++
++            m_aGetValue <<= nValue;
++            m_aGetValueCondition.set();
++        }
++        else if ( aType.equalsAscii( "string" ) )
++        {
++            ::rtl::OUString aValue;
++            if ( !aList.empty() )
++                aValue = aList.front();
++
++            m_aGetValue <<= aValue;
++            m_aGetValueCondition.set();
++        }
++        else if ( aType.equalsAscii( "stringList" ) )
++        {
++            uno::Sequence< ::rtl::OUString > aSequence( aList.size() );
++            sal_Int32 nIdx = 0;
++            for ( ::std::list< ::rtl::OUString >::const_iterator it = aList.begin(); it != aList.end(); ++it, ++nIdx )
++                aSequence[nIdx] = (*it);
++
++            m_aGetValue <<= aSequence;
++            m_aGetValueCondition.set();
++        }
++        else
++        {
++            m_aGetValue = uno::Any();
++            m_aGetValueCondition.set();
++        }
++    }
++    else if ( aCommandName.equalsAscii( "currentFilter" ) )
++    {
++        m_aGetCurrentFilter = aList.empty()? ::rtl::OUString(): aList.front();
++        m_aGetCurrentFilterCondition.set();
++    }
++    else if ( aCommandName.equalsAscii( "currentDirectory" ) )
++    {
++        m_aGetDirectory = aList.empty()? ::rtl::OUString(): aList.front();
++        m_aGetDirectoryCondition.set();
++    }
++    else
++    {
++#if OSL_DEBUG_LEVEL > 0
++        ::std::cerr << "Unrecognized command: "
++            << OUStringToOString( aCommandName, RTL_TEXTENCODING_ASCII_US ).getStr() << "\"" << ::std::endl;
++#endif
++    }
++}
++
++::std::list< ::rtl::OUString > SAL_CALL UnxFilePickerCommandThread::tokenize( const ::rtl::OUString &rCommand )
++{
++    ::std::list< ::rtl::OUString > aList;
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    const sal_Unicode *pUnicode = rCommand.getStr();
++    const sal_Unicode *pEnd     = pUnicode + rCommand.getLength();
++    sal_Bool bQuoted            = sal_False;
++
++    for ( ; pUnicode != pEnd; ++pUnicode )
++    {
++        if ( *pUnicode == '\\' )
++        {
++            ++pUnicode;
++            if ( pUnicode != pEnd )
++            {
++                if ( *pUnicode == 'n' )
++                    aBuffer.appendAscii( "\n", 1 );
++                else
++                    aBuffer.append( *pUnicode );
++            }
++        }
++        else if ( *pUnicode == '"' )
++            bQuoted = !bQuoted;
++        else if ( *pUnicode == ' ' && !bQuoted )
++            aList.push_back( aBuffer.makeStringAndClear() );
++        else
++            aBuffer.append( *pUnicode );
++    }
++    aList.push_back( aBuffer.makeStringAndClear() );
++
++    return aList;
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxCommandThread.hxx	2004-06-11 17:08:30.375883816 +0200
+@@ -0,0 +1,142 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _UNXCOMMANDTHREAD_HXX_
++#define _UNXCOMMANDTHREAD_HXX_
++
++#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
++#include <com/sun/star/uno/Any.hxx>
++#endif
++
++#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
++#include <com/sun/star/uno/Sequence.hxx>
++#endif
++
++#ifndef _OSL_CONDITN_HXX_
++#include <osl/conditn.hxx>
++#endif
++
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
++#endif
++
++#ifndef _OSL_THREAD_HXX_
++#include <osl/thread.hxx>
++#endif
++
++#ifndef _RTL_USTRBUF_HXX_
++#include <rtl/ustring.hxx>
++#endif
++
++#include <list>
++
++class UnxFilePickerNotifyThread;
++
++class UnxFilePickerCommandThread : public ::osl::Thread
++{
++protected:
++    UnxFilePickerNotifyThread  *m_pNotifyThread;
++    int                         m_nReadFD;
++
++    ::osl::Mutex                m_aMutex;
++
++    ::osl::Condition            m_aExecCondition;
++    sal_Bool                    m_aResult;
++
++    ::osl::Condition            m_aGetCurrentFilterCondition;
++    ::rtl::OUString             m_aGetCurrentFilter;
++
++    ::osl::Condition            m_aGetDirectoryCondition;
++    ::rtl::OUString             m_aGetDirectory;
++
++    ::osl::Condition            m_aGetFilesCondition;
++    ::std::list< ::rtl::OUString > m_aGetFiles;
++
++    ::osl::Condition            m_aGetValueCondition;
++    ::com::sun::star::uno::Any  m_aGetValue;
++
++public:
++    UnxFilePickerCommandThread( UnxFilePickerNotifyThread *pNotifyThread, int nReadFD );
++    ~UnxFilePickerCommandThread();
++    
++    ::osl::Condition& SAL_CALL  execCondition() { return m_aExecCondition; }
++    sal_Bool SAL_CALL           result();
++
++    ::osl::Condition& SAL_CALL  getCurrentFilterCondition() { return m_aGetCurrentFilterCondition; }
++    ::rtl::OUString SAL_CALL    getCurrentFilter();
++
++    ::osl::Condition& SAL_CALL  getDirectoryCondition() { return m_aGetDirectoryCondition; }
++    ::rtl::OUString SAL_CALL    getDirectory();
++    
++    ::osl::Condition& SAL_CALL  getFilesCondition() { return m_aGetFilesCondition; }
++    ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles();
++
++    ::osl::Condition& SAL_CALL  getValueCondition() { return m_aGetValueCondition; }
++    ::com::sun::star::uno::Any SAL_CALL getValue();
++
++protected:
++    virtual void SAL_CALL       run();
++    
++    virtual void SAL_CALL       handleCommand( const ::rtl::OUString &rCommand/*, sal_Bool &rQuit*/ );
++    ::std::list< ::rtl::OUString > SAL_CALL tokenize( const ::rtl::OUString &rCommand );
++};
++
++#endif // _UNXCOMMANDTHREAD_HXX_
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxFilePicker.cxx	2004-06-21 17:40:01.026496344 +0200
+@@ -0,0 +1,977 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++//////////////////////////////////////////////////////////////////////////
++// includes
++//////////////////////////////////////////////////////////////////////////
++
++#ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
++#include <com/sun/star/lang/DisposedException.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++
++#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
++#include <cppuhelper/interfacecontainer.h>
++#endif
++
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_TEMPLATEDESCRIPTION_HPP_
++#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_COMMONFILEPICKERELEMENTIDS_HPP_
++#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_EXTENDEDFILEPICKERELEMENTIDS_HPP_
++#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_CONTROLACTIONS_HPP_
++#include <com/sun/star/ui/dialogs/ControlActions.hpp>
++#endif
++
++#ifndef _RTL_USTRING_H_
++#include <rtl/ustring.hxx>
++#endif
++
++#ifndef _RTL_USTRBUF_HXX_
++#include <rtl/ustrbuf.hxx>
++#endif
++
++#ifndef _FPSERVICEINFO_HXX_
++#include <FPServiceInfo.hxx>
++#endif
++
++#ifndef _SVTOOLS_SVTDATA_HXX
++#include <svtools/svtdata.hxx>
++#endif
++
++#ifndef _SVTOOLS_HRC
++#include <svtools/svtools.hrc>
++#endif
++
++#ifndef _UNXFILEOPENIMPL_HXX_
++#include <UnxFilePicker.hxx>
++#endif
++
++#ifndef _UNXCOMMANDTHREAD_HXX_
++#include <UnxCommandThread.hxx>
++#endif
++
++#ifndef _UNXNOTIFYTHREAD_HXX_
++#include <UnxNotifyThread.hxx>
++#endif
++
++#include <sys/wait.h>
++#include <unistd.h>
++#include <fcntl.h>
++
++#include <iostream>
++
++using namespace ::com::sun::star;
++
++using namespace ::com::sun::star::ui::dialogs;
++using namespace ::com::sun::star::ui::dialogs::TemplateDescription;
++
++//////////////////////////////////////////////////////////////////////////
++// helper functions
++//////////////////////////////////////////////////////////////////////////
++
++namespace
++{
++    // controling event notifications    
++    const bool STARTUP_SUSPENDED = true;
++    const bool STARTUP_ALIVE     = false;
++
++    uno::Sequence<rtl::OUString> SAL_CALL FilePicker_getSupportedServiceNames()
++    {
++        uno::Sequence<rtl::OUString> aRet(3);
++        aRet[0] = rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.FilePicker");
++        aRet[1] = rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.SystemFilePicker");
++        aRet[2] = rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.KDEFilePicker");
++        return aRet;
++    }
++}
++
++//////////////////////////////////////////////////////////////////////////
++// UnxFilePicker
++//////////////////////////////////////////////////////////////////////////
++
++UnxFilePicker::UnxFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr )
++    : cppu::WeakComponentImplHelper8< 		
++          XFilterManager, 
++          XFilterGroupManager,
++          XFilePickerControlAccess,
++          XFilePickerNotifier,
++// TODO   XFilePreview,
++          lang::XInitialization,
++          util::XCancellable,
++          lang::XEventListener, 
++          lang::XServiceInfo>( m_rbHelperMtx ),
++          m_xServiceMgr( xServiceMgr ),
++          m_nFilePickerPid( -1 ),
++          m_nFilePickerWrite( -1 ),
++          m_nFilePickerRead( -1 ),
++          m_pNotifyThread( NULL ),
++          m_pCommandThread( NULL )
++{	
++}
++
++UnxFilePicker::~UnxFilePicker()
++{
++    if ( m_nFilePickerPid > 0 )
++    {
++        sendCommand( ::rtl::OUString::createFromAscii( "exit" ) );
++        waitpid( m_nFilePickerPid, NULL, 0 );
++    }
++    
++    if ( m_pCommandThread )
++    {
++        m_pCommandThread->join();
++
++        delete m_pCommandThread, m_pCommandThread = NULL;
++    }
++
++    if ( m_pNotifyThread )
++    {
++        m_pNotifyThread->exit();
++
++        m_pNotifyThread->join();
++
++        delete m_pNotifyThread, m_pNotifyThread = NULL;
++    }
++
++    if ( m_nFilePickerWrite >= 0 )
++        close( m_nFilePickerWrite );
++    
++    if ( m_nFilePickerRead >= 0 )
++        close( m_nFilePickerRead );
++}
++
++void SAL_CALL UnxFilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
++    throw( uno::RuntimeException )
++{
++    OSL_ASSERT( m_pNotifyThread );
++    osl::MutexGuard aGuard( m_aMutex );
++
++    m_pNotifyThread->addFilePickerListener( xListener );
++}
++
++void SAL_CALL UnxFilePicker::removeFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
++    throw( uno::RuntimeException )
++{
++    OSL_ASSERT( m_pNotifyThread );
++    osl::MutexGuard aGuard( m_aMutex );
++
++    m_pNotifyThread->removeFilePickerListener( xListener );
++}
++
++void SAL_CALL UnxFilePicker::setTitle( const rtl::OUString &rTitle )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "setTitle " );
++    appendEscaped( aBuffer, rTitle );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++sal_Int16 SAL_CALL UnxFilePicker::execute()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++
++    sendCommand( ::rtl::OUString::createFromAscii( "exec" ),
++                 m_pCommandThread->execCondition() );
++
++    return m_pCommandThread->result();
++}
++
++void SAL_CALL UnxFilePicker::setMultiSelectionMode( sal_Bool bMode )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUString aString = bMode?
++        ::rtl::OUString::createFromAscii( "setMultiSelection true" ):
++        ::rtl::OUString::createFromAscii( "setMultiSelection false" );
++
++    sendCommand( aString );
++}
++
++void SAL_CALL UnxFilePicker::setDefaultName( const ::rtl::OUString &rName )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "setDefaultName " );
++    appendEscaped( aBuffer, rName );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++void SAL_CALL UnxFilePicker::setDisplayDirectory( const rtl::OUString &rDirectory )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "setDirectory " );
++    appendEscaped( aBuffer, rDirectory );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++rtl::OUString SAL_CALL UnxFilePicker::getDisplayDirectory()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    sendCommand( ::rtl::OUString::createFromAscii( "getDirectory" ),
++                 m_pCommandThread->getDirectoryCondition() );
++
++    return m_pCommandThread->getDirectory();
++}
++
++uno::Sequence< ::rtl::OUString > SAL_CALL UnxFilePicker::getFiles()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    sendCommand( ::rtl::OUString::createFromAscii( "getFiles" ),
++                 m_pCommandThread->getFilesCondition() );
++
++    return m_pCommandThread->getFiles();
++}
++
++void SAL_CALL UnxFilePicker::appendFilter( const ::rtl::OUString &rTitle, const ::rtl::OUString &rFilter )
++    throw( lang::IllegalArgumentException, uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "appendFilter " );
++    appendEscaped( aBuffer, rTitle );
++    aBuffer.appendAscii( " ", 1 );
++    appendEscaped( aBuffer, rFilter );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++void SAL_CALL UnxFilePicker::setCurrentFilter( const rtl::OUString &rTitle )
++    throw( lang::IllegalArgumentException, uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "setCurrentFilter " );
++    appendEscaped( aBuffer, rTitle );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++rtl::OUString SAL_CALL UnxFilePicker::getCurrentFilter()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    sendCommand( ::rtl::OUString::createFromAscii( "getCurrentFilter" ),
++                 m_pCommandThread->getCurrentFilterCondition() );
++
++    return m_pCommandThread->getCurrentFilter();
++}
++
++void SAL_CALL UnxFilePicker::appendFilterGroup( const rtl::OUString &rGroupTitle, const uno::Sequence<beans::StringPair> &rFilters )
++    throw( lang::IllegalArgumentException, uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "appendFilterGroup " );
++    appendEscaped( aBuffer, rGroupTitle );
++    
++    for ( sal_Int32 i = 0; i < rFilters.getLength(); ++i )
++    {
++        beans::StringPair aPair = rFilters[i];
++
++        aBuffer.appendAscii( " ", 1 );
++        appendEscaped( aBuffer, aPair.First );
++        aBuffer.appendAscii( " ", 1 );
++        appendEscaped( aBuffer, aPair.Second );
++    }
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++void SAL_CALL UnxFilePicker::setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const uno::Any &rValue )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUString aType;
++    ::rtl::OUString aAction;
++    sal_Int32 nTitleId;
++
++    if ( controlIdInfo( nControlId, aType, nTitleId ) && controlActionInfo( nControlAction, aAction ) )
++    {
++        ::rtl::OUStringBuffer aBuffer( 1024 );
++
++        aBuffer.appendAscii( "setValue " );
++        aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
++        aBuffer.appendAscii( " ", 1 );
++        aBuffer.append( aAction );
++
++        if ( aType.equalsAscii( "checkbox" ) )
++        {
++            sal_Bool bControlValue;
++            if ( ( rValue >>= bControlValue ) && bControlValue )
++                aBuffer.appendAscii( " true" );
++            else
++                aBuffer.appendAscii( " false" );
++        }
++        else if ( aType.equalsAscii( "listbox" ) )
++        {
++            switch ( nControlAction )
++            {
++                case ControlActions::ADD_ITEM:
++                case ControlActions::SET_HELP_URL:
++                    {
++                        ::rtl::OUString aString;
++                        if ( rValue >>= aString )
++                        {
++                            aBuffer.appendAscii( " ", 1 );
++                            appendEscaped( aBuffer, aString );
++                        }
++                    }
++                    break;
++
++                case ControlActions::ADD_ITEMS:
++                    {
++                        uno::Sequence< ::rtl::OUString > aSequence;
++                        if ( rValue >>= aSequence )
++                        {
++                            for ( sal_Int32 nIdx = 0; nIdx < aSequence.getLength(); ++nIdx )
++                            {
++                                aBuffer.appendAscii( " ", 1 );
++                                appendEscaped( aBuffer, aSequence[nIdx] );
++                            }
++
++                        }
++                    }
++                    break;
++
++                case ControlActions::DELETE_ITEM:
++                case ControlActions::SET_SELECT_ITEM:
++                    {
++                        sal_Int32 nInt;
++                        if ( rValue >>= nInt )
++                        {
++                            aBuffer.appendAscii( " ", 1 );
++                            aBuffer.append( nInt );
++                        }
++                    }
++                    break;
++
++                default:
++                    // nothing
++                    break;
++            }
++        }
++        // TODO else if push button...
++
++        sendCommand( aBuffer.makeStringAndClear() );
++    }
++}
++
++uno::Any SAL_CALL UnxFilePicker::getValue( sal_Int16 nControlId, sal_Int16 nControlAction )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUString aAction;
++    
++    if ( controlActionInfo( nControlAction, aAction ) )
++    {
++        ::rtl::OUStringBuffer aBuffer( 1024 );
++
++        aBuffer.appendAscii( "getValue " );
++        aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
++        aBuffer.appendAscii( " ", 1 );
++        aBuffer.append( aAction );
++
++        sendCommand( aBuffer.makeStringAndClear(),
++                m_pCommandThread->getValueCondition() );
++
++        return m_pCommandThread->getValue();
++    }
++    
++    return uno::Any();
++}
++
++void SAL_CALL UnxFilePicker::enableControl( sal_Int16 nControlId, sal_Bool bEnable )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "enableControl " );
++    aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
++    aBuffer.appendAscii( bEnable? " true": " false" );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++void SAL_CALL UnxFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUString &rLabel )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    ::rtl::OUStringBuffer aBuffer( 1024 );
++
++    aBuffer.appendAscii( "setLabel " );
++    aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
++    aBuffer.appendAscii( " ", 1 );
++    appendEscaped( aBuffer, rLabel );
++
++    sendCommand( aBuffer.makeStringAndClear() );
++}
++
++rtl::OUString SAL_CALL UnxFilePicker::getLabel(sal_Int16 nControlId) 
++    throw ( uno::RuntimeException )
++{
++    // FIXME getLabel() is not yet implemented
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    // TODO return m_pImpl->getLabel(nControlId);
++    return ::rtl::OUString();
++}
++
++/* TODO
++uno::Sequence<sal_Int16> SAL_CALL UnxFilePicker::getSupportedImageFormats()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_pImpl->getSupportedImageFormats();
++}
++
++sal_Int32 SAL_CALL UnxFilePicker::getTargetColorDepth()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_pImpl->getTargetColorDepth();
++}
++
++sal_Int32 SAL_CALL UnxFilePicker::getAvailableWidth()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_pImpl->getAvailableWidth();
++}
++
++sal_Int32 SAL_CALL UnxFilePicker::getAvailableHeight()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_pImpl->getAvailableHeight();
++}
++
++void SAL_CALL UnxFilePicker::setImage( sal_Int16 aImageFormat, const uno::Any &rImage ) 
++    throw( lang::IllegalArgumentException, uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    m_pImpl->setImage( aImageFormat, aImage );
++}
++
++sal_Bool SAL_CALL UnxFilePicker::setShowState( sal_Bool bShowState )
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );   
++
++    return m_pImpl->setShowState( bShowState );
++}
++
++sal_Bool SAL_CALL UnxFilePicker::getShowState()
++    throw( uno::RuntimeException )
++{
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    return m_pImpl->getShowState();
++}
++*/
++
++void SAL_CALL UnxFilePicker::initialize( const uno::Sequence<uno::Any> &rArguments ) 
++    throw( uno::Exception, uno::RuntimeException )
++{
++    initFilePicker();
++
++    // parameter checking	    
++    uno::Any aAny;
++    if ( 0 == rArguments.getLength( ) )
++        throw lang::IllegalArgumentException(
++                rtl::OUString::createFromAscii( "no arguments" ),
++                static_cast< XFilePicker* >( this ), 1 );
++
++    aAny = rArguments[0];
++
++    if ( ( aAny.getValueType() != ::getCppuType( (sal_Int16*)0 ) ) && ( aAny.getValueType() != ::getCppuType( (sal_Int8*)0 ) ) )
++        throw lang::IllegalArgumentException(
++                rtl::OUString::createFromAscii( "invalid argument type" ),
++                static_cast< XFilePicker* >( this ), 1 );
++
++    sal_Int16 templateId = -1;
++    aAny >>= templateId;
++
++    ::rtl::OUString aTypeOpen   = ::rtl::OUString::createFromAscii( "setType \"open\"" );
++    ::rtl::OUString aTypeSaveAs = ::rtl::OUString::createFromAscii( "setType \"save\"" );
++
++    switch ( templateId )
++    {
++        case FILEOPEN_SIMPLE:
++            sendCommand( aTypeOpen );
++            break;
++
++        case FILESAVE_SIMPLE:
++            sendCommand( aTypeSaveAs );
++            break;
++
++        case FILESAVE_AUTOEXTENSION_PASSWORD:
++            sendCommand( aTypeSaveAs );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PASSWORD );
++            break;
++
++        case FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS:
++            sendCommand( aTypeSaveAs );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PASSWORD );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_FILTEROPTIONS );
++            break;
++
++        case FILESAVE_AUTOEXTENSION_SELECTION:
++            sendCommand( aTypeSaveAs );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_SELECTION );
++            break;
++
++        case FILESAVE_AUTOEXTENSION_TEMPLATE:
++            sendCommand( aTypeSaveAs );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::LISTBOX_TEMPLATE );
++            break;
++
++        case FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE:
++            sendCommand( aTypeOpen );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_LINK );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::LISTBOX_IMAGE_TEMPLATE );
++            break;
++
++        case FILEOPEN_PLAY:        
++            sendCommand( aTypeOpen );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::PUSHBUTTON_PLAY );
++            break;
++
++        case FILEOPEN_READONLY_VERSION:
++            sendCommand( aTypeOpen );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_READONLY );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::LISTBOX_VERSION );
++            break;
++
++        case FILEOPEN_LINK_PREVIEW:
++            sendCommand( aTypeOpen );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_LINK );
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW );
++            break;
++
++        case FILESAVE_AUTOEXTENSION:
++            sendCommand( aTypeSaveAs );
++
++            sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
++            break;
++
++        default:
++            throw lang::IllegalArgumentException(
++                    rtl::OUString::createFromAscii( "Unknown template" ),
++                    static_cast< XFilePicker* >( this ),
++                    1 );
++    }
++}
++
++void SAL_CALL UnxFilePicker::cancel()
++    throw ( uno::RuntimeException )
++{
++    // FIXME cancel() is not implemented
++    checkFilePicker();
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    // TODO m_pImpl->cancel();    
++}
++
++void SAL_CALL UnxFilePicker::disposing( const lang::EventObject &rEvent )
++    throw( uno::RuntimeException )
++{
++    uno::Reference<XFilePickerListener> xFilePickerListener( rEvent.Source, uno::UNO_QUERY );
++
++    if ( xFilePickerListener.is() )
++        removeFilePickerListener( xFilePickerListener );
++}
++
++rtl::OUString SAL_CALL UnxFilePicker::getImplementationName() 
++    throw( uno::RuntimeException )
++{
++    return rtl::OUString::createFromAscii( FILE_PICKER_IMPL_NAME );
++}
++
++sal_Bool SAL_CALL UnxFilePicker::supportsService( const rtl::OUString& ServiceName ) 
++    throw( uno::RuntimeException )
++{
++    uno::Sequence< ::rtl::OUString > SupportedServicesNames = FilePicker_getSupportedServiceNames();
++
++    for ( sal_Int32 n = SupportedServicesNames.getLength(); n--; )
++    {
++        if ( SupportedServicesNames[n].compareTo( ServiceName ) == 0 )
++            return sal_True;
++    }
++
++    return sal_False;
++}
++
++uno::Sequence< ::rtl::OUString > SAL_CALL UnxFilePicker::getSupportedServiceNames() 
++    throw( uno::RuntimeException )
++{
++    return FilePicker_getSupportedServiceNames();
++}
++
++void UnxFilePicker::initFilePicker()
++{
++    int aFiledesStdin[2], aFiledesStdout[2];
++    if ( pipe( aFiledesStdin ) < 0 || pipe( aFiledesStdout ) < 0 )
++        return;
++
++    m_nFilePickerPid = fork();
++    if ( m_nFilePickerPid < 0 )
++        return;
++
++    if ( m_nFilePickerPid == 0 )
++    {
++        // Child...
++        close( aFiledesStdin[1] ); // write end of the pipe
++        dup2(  aFiledesStdin[0], 0 );
++        close( aFiledesStdin[0] );
++
++        close( aFiledesStdout[0] ); // read end of the pipe
++        dup2(  aFiledesStdout[1], 1 );
++        close( aFiledesStdout[1] );
++        
++#if OSL_DEBUG_LEVEL == 0
++        int nRedirect = open( "/dev/null", O_WRONLY );
++        if( nRedirect != -1 )
++        {
++            dup2( nRedirect, 2 );
++        }
++#endif
++
++        // FIXME: window id, etc.
++        const char *pFname = "kdefilepicker";
++
++        execlp( pFname, pFname, NULL );
++
++        // Error, finish the child
++        exit( -1 );
++    }
++
++    // Parent continues
++    close( aFiledesStdin[0] );
++    m_nFilePickerWrite = aFiledesStdin[1];
++
++    close( aFiledesStdout[1] );
++    m_nFilePickerRead = aFiledesStdout[0];
++
++    // Create the notify thread
++    if ( !m_pNotifyThread )
++        m_pNotifyThread = new UnxFilePickerNotifyThread( this );
++    
++    // Create the command thread
++    if ( !m_pCommandThread )
++        m_pCommandThread = new UnxFilePickerCommandThread( m_pNotifyThread, m_nFilePickerRead );
++
++    // Start the threads
++    m_pNotifyThread->create();
++    m_pCommandThread->create();
++
++    return;
++}
++
++void UnxFilePicker::checkFilePicker() throw( ::com::sun::star::uno::RuntimeException )
++{
++    if ( m_nFilePickerPid > 0 )
++    {
++        // TODO check if external file picker is runnning
++    }
++    else
++    {
++        throw uno::RuntimeException(
++                ::rtl::OUString::createFromAscii( "the external file picker does not run" ),
++                *this );
++    }
++}
++
++void UnxFilePicker::sendCommand( const ::rtl::OUString &rCommand )
++{
++    if ( m_nFilePickerWrite < 0 )
++        return;
++
++    ::rtl::OString aUtfString = OUStringToOString( rCommand + ::rtl::OUString::createFromAscii( "\n" ), RTL_TEXTENCODING_UTF8 );
++
++#if OSL_DEBUG_LEVEL > 0
++    ::std::cerr << "UnxFilePicker sent: \"" << aUtfString.getStr() << "\"" << ::std::endl;
++#endif
++    
++    write( m_nFilePickerWrite, aUtfString.getStr(), aUtfString.getLength() );
++}
++
++void UnxFilePicker::sendCommand( const ::rtl::OUString &rCommand, ::osl::Condition &rCondition )
++{
++    rCondition.reset();
++    
++    sendCommand( rCommand );
++
++    rCondition.wait();
++}
++
++void UnxFilePicker::appendEscaped( ::rtl::OUStringBuffer &rBuffer, const ::rtl::OUString &rString )
++{
++    const sal_Unicode *pUnicode = rString.getStr();
++    const sal_Unicode *pEnd     = pUnicode + rString.getLength();
++
++    rBuffer.appendAscii( "\"" , 1 );
++    
++    for ( ; pUnicode != pEnd; ++pUnicode )
++    {
++        if ( *pUnicode == '\\' )
++            rBuffer.appendAscii( "\\\\", 2 );
++        else if ( *pUnicode == '"' )
++            rBuffer.appendAscii( "\\\"", 2 );
++        else if ( *pUnicode == '\n' )
++            rBuffer.appendAscii( "\\n", 2 );
++        else
++            rBuffer.append( *pUnicode );
++    }
++    
++    rBuffer.appendAscii( "\"", 1 );
++}
++
++sal_Bool UnxFilePicker::controlIdInfo( sal_Int16 nControlId, ::rtl::OUString &rType, sal_Int32 &rTitleId )
++{
++    typedef struct {
++        sal_Int16 nId;
++        const ::rtl::OUString *pType;
++        sal_Int32 nTitle;
++    } ElementToName;
++
++    const ::rtl::OUString aCheckBox( RTL_CONSTASCII_USTRINGPARAM(   "checkbox" ) );
++    const ::rtl::OUString aControl( RTL_CONSTASCII_USTRINGPARAM(    "control" ) );
++    const ::rtl::OUString aEdit( RTL_CONSTASCII_USTRINGPARAM(       "edit" ) );
++    const ::rtl::OUString aLabel( RTL_CONSTASCII_USTRINGPARAM(      "label" ) );
++    const ::rtl::OUString aListBox( RTL_CONSTASCII_USTRINGPARAM(    "listbox" ) );
++    const ::rtl::OUString aPushButton( RTL_CONSTASCII_USTRINGPARAM( "pushbutton" ) );
++    
++    const ElementToName *pPtr;
++    const ElementToName pArray[] =
++    {
++        { CommonFilePickerElementIds::PUSHBUTTON_OK,            &aPushButton, 0/*FIXME?*/ },
++        { CommonFilePickerElementIds::PUSHBUTTON_CANCEL,        &aPushButton, 0/*FIXME?*/ },
++        { CommonFilePickerElementIds::LISTBOX_FILTER,           &aListBox,    0/*FIXME?*/ },
++        { CommonFilePickerElementIds::CONTROL_FILEVIEW,         &aControl,    0/*FIXME?*/ },
++        { CommonFilePickerElementIds::EDIT_FILEURL,             &aEdit,       0/*FIXME?*/ },
++        { CommonFilePickerElementIds::LISTBOX_FILTER_LABEL,     &aLabel,      0/*FIXME?*/ },
++        { CommonFilePickerElementIds::EDIT_FILEURL_LABEL,       &aLabel,      0/*FIXME?*/ },
++        
++        { ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION, &aCheckBox,   STR_SVT_FILEPICKER_AUTO_EXTENSION },
++        { ExtendedFilePickerElementIds::CHECKBOX_PASSWORD,      &aCheckBox,   STR_SVT_FILEPICKER_PASSWORD },
++        { ExtendedFilePickerElementIds::CHECKBOX_FILTEROPTIONS, &aCheckBox,   STR_SVT_FILEPICKER_FILTER_OPTIONS },
++        { ExtendedFilePickerElementIds::CHECKBOX_READONLY,      &aCheckBox,   STR_SVT_FILEPICKER_READONLY },
++        { ExtendedFilePickerElementIds::CHECKBOX_LINK,          &aCheckBox,   STR_SVT_FILEPICKER_INSERT_AS_LINK },
++        { ExtendedFilePickerElementIds::CHECKBOX_PREVIEW,       &aCheckBox,   STR_SVT_FILEPICKER_SHOW_PREVIEW },
++        { ExtendedFilePickerElementIds::PUSHBUTTON_PLAY,        &aPushButton, STR_SVT_FILEPICKER_PLAY },
++        { ExtendedFilePickerElementIds::LISTBOX_VERSION,        &aListBox,    STR_SVT_FILEPICKER_VERSION },
++        { ExtendedFilePickerElementIds::LISTBOX_TEMPLATE,       &aListBox,    STR_SVT_FILEPICKER_TEMPLATES },
++        { ExtendedFilePickerElementIds::LISTBOX_IMAGE_TEMPLATE, &aListBox,    STR_SVT_FILEPICKER_IMAGE_TEMPLATE },
++        { ExtendedFilePickerElementIds::CHECKBOX_SELECTION,     &aCheckBox,   STR_SVT_FILEPICKER_SELECTION },
++        { 0, 0, 0 }
++    };
++    
++    for ( pPtr = pArray; pPtr->nId && ( pPtr->nId != nControlId ); ++pPtr )
++        ;
++
++    if ( pPtr->nId == nControlId )
++    {
++        rType = *(pPtr->pType);
++        rTitleId = pPtr->nTitle;
++
++        return sal_True;
++    }
++
++    return sal_False;
++}
++
++sal_Bool UnxFilePicker::controlActionInfo( sal_Int16 nControlAction, ::rtl::OUString &rType )
++{
++    typedef struct {
++        sal_Int16 nId;
++        const ::rtl::OUString pType;
++    } ElementToName;
++
++    const ElementToName *pPtr;
++    const ElementToName pArray[] =
++    {
++        { ControlActions::ADD_ITEM,                ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "addItem" ) ) },
++        { ControlActions::ADD_ITEMS,               ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "addItems" ) ) },
++        { ControlActions::DELETE_ITEM,             ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "deleteItem" ) ) },
++        { ControlActions::DELETE_ITEMS,            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "deleteItems" ) ) },
++        { ControlActions::SET_SELECT_ITEM,         ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setSelectedItem" ) ) },
++        { ControlActions::GET_ITEMS,               ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getItems" ) ) },
++        { ControlActions::GET_SELECTED_ITEM,       ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getSelectedItem" ) ) },
++        { ControlActions::GET_SELECTED_ITEM_INDEX, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getSelectedItemIndex" ) ) },
++        { ControlActions::SET_HELP_URL,            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setHelpURL" ) ) },
++        { ControlActions::GET_HELP_URL,            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getHelpURL" ) ) },
++        { 0,                                       ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "noAction" ) ) }
++    };
++
++    for ( pPtr = pArray; pPtr->nId && ( pPtr->nId != nControlAction ); ++pPtr )
++        ;
++
++    rType = pPtr->pType;
++
++    return sal_True;
++}
++
++void UnxFilePicker::sendAppendControlCommand( sal_Int16 nControlId )
++{
++    ::rtl::OUString aType;
++    sal_Int32 nTitleId;
++
++    if ( controlIdInfo( nControlId, aType, nTitleId ) )
++    {
++        ::rtl::OUStringBuffer aBuffer( 1024 );
++        
++        aBuffer.appendAscii( "appendControl " );
++        aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
++        aBuffer.appendAscii( " ", 1 );
++        appendEscaped( aBuffer, aType );
++        aBuffer.appendAscii( " ", 1 );
++        appendEscaped( aBuffer, String( SvtResId( nTitleId ) ) );
++
++        sendCommand( aBuffer.makeStringAndClear() );
++    }
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxFilePicker.hxx	2004-06-16 13:57:49.733143432 +0200
+@@ -0,0 +1,238 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _UNXFILEPICKER_HXX_
++#define _UNXFILEPICKER_HXX_
++
++#ifndef _CPPUHELPER_COMPBASE8_HXX_
++#include <cppuhelper/compbase8.hxx>
++#endif
++
++#ifndef _OSL_CONDITN_HXX_
++#include <osl/conditn.hxx>
++#endif
++
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
++#endif
++
++#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
++#include <com/sun/star/lang/XInitialization.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERNOTIFIER_HPP_
++#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERMANAGER_HPP_
++#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERGROUPMANAGER_HPP_
++#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERCONTROLACCESS_HPP_
++#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPREVIEW_HPP_
++#include <com/sun/star/ui/dialogs/XFilePreview.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UTIL_XCANCELLABLE_HPP_
++#include <com/sun/star/util/XCancellable.hpp>
++#endif
++
++#ifndef _RTL_USTRBUF_HXX_
++#include <rtl/ustrbuf.hxx>
++#endif
++
++#include <list>
++
++class UnxFilePickerCommandThread;
++class UnxFilePickerNotifyThread;
++
++class UnxFilePickerDummy
++{
++protected:
++    osl::Mutex                  m_aMutex;
++    osl::Mutex                  m_rbHelperMtx;
++};
++
++class UnxFilePicker : 
++    public UnxFilePickerDummy,
++    public cppu::WeakComponentImplHelper8<
++        ::com::sun::star::ui::dialogs::XFilterManager,
++        ::com::sun::star::ui::dialogs::XFilterGroupManager,
++        ::com::sun::star::ui::dialogs::XFilePickerControlAccess,
++        ::com::sun::star::ui::dialogs::XFilePickerNotifier,
++// TODO ::com::sun::star::ui::dialogs::XFilePreview,
++        ::com::sun::star::lang::XInitialization,
++        ::com::sun::star::util::XCancellable,
++        ::com::sun::star::lang::XEventListener,
++        ::com::sun::star::lang::XServiceInfo >		
++{
++protected:
++    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceMgr;   // to instanciate own services		
++
++    pid_t                       m_nFilePickerPid;
++    int                         m_nFilePickerWrite; // (kde|...)filepicker gets it as stdin
++    int                         m_nFilePickerRead;  // (kde|...)filepicker gets it as stdout
++
++    UnxFilePickerNotifyThread  *m_pNotifyThread;
++    UnxFilePickerCommandThread *m_pCommandThread;
++
++public:
++    UnxFilePicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
++    virtual ~UnxFilePicker();
++
++    // XFilePickerNotifier
++
++    virtual void SAL_CALL       addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual void SAL_CALL       removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener ) throw( ::com::sun::star::uno::RuntimeException );
++
++    // XExecutableDialog functions
++
++    virtual void SAL_CALL       setTitle( const ::rtl::OUString &rTitle ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual sal_Int16 SAL_CALL  execute() throw( ::com::sun::star::uno::RuntimeException );
++
++    // XFilePicker functions
++
++    virtual void SAL_CALL       setMultiSelectionMode( sal_Bool bMode ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual void SAL_CALL       setDefaultName( const ::rtl::OUString &rName ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual void SAL_CALL       setDisplayDirectory( const ::rtl::OUString &rDirectory ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual ::rtl::OUString SAL_CALL getDisplayDirectory() throw( ::com::sun::star::uno::RuntimeException );
++    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles() throw( ::com::sun::star::uno::RuntimeException );
++
++    // XFilterManager functions
++
++    virtual void SAL_CALL       appendFilter( const ::rtl::OUString &rTitle, const ::rtl::OUString &rFilter ) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++    virtual void SAL_CALL       setCurrentFilter( const ::rtl::OUString &rTitle ) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
++    virtual ::rtl::OUString SAL_CALL getCurrentFilter() throw( ::com::sun::star::uno::RuntimeException );
++
++    // XFilterGroupManager functions
++
++    virtual void SAL_CALL       appendFilterGroup( const ::rtl::OUString &rGroupTitle, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > &rFilters ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
++
++    // XFilePickerControlAccess functions
++
++    virtual void SAL_CALL       setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const ::com::sun::star::uno::Any &rValue ) throw (::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getValue( sal_Int16 nControlId, sal_Int16 nControlAction ) throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL       enableControl( sal_Int16 nControlId, sal_Bool bEnable ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual void SAL_CALL       setLabel( sal_Int16 nControlId, const ::rtl::OUString &rLabel ) throw (::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getLabel( sal_Int16 nControlId ) throw (::com::sun::star::uno::RuntimeException);
++
++    /* TODO XFilePreview
++
++    virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSupportedImageFormats(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL  getTargetColorDepth(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL  getAvailableWidth(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL  getAvailableHeight(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL       setImage( sal_Int16 aImageFormat, const ::com::sun::star::uno::Any &rImage ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL   setShowState( sal_Bool bShowState ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL   getShowState(  ) throw (::com::sun::star::uno::RuntimeException);
++    */
++
++    // XInitialization
++
++    virtual void SAL_CALL       initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > &rArguments ) throw( ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException );
++
++    // XCancellable
++
++    virtual void SAL_CALL       cancel( ) throw( ::com::sun::star::uno::RuntimeException );
++
++    // XEventListener
++
++    virtual void SAL_CALL       disposing( const ::com::sun::star::lang::EventObject &rEvent ) throw( ::com::sun::star::uno::RuntimeException );
++
++    // XServiceInfo
++
++    virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
++    virtual sal_Bool SAL_CALL   supportsService( const ::rtl::OUString &rServiceName ) throw( ::com::sun::star::uno::RuntimeException );
++    virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
++
++private:
++    // prevent copy and assignment
++    UnxFilePicker( const UnxFilePicker& );           
++    UnxFilePicker& operator=( const UnxFilePicker& );
++
++protected:
++    void                        initFilePicker();
++    void                        checkFilePicker() throw( ::com::sun::star::uno::RuntimeException );
++
++    // Async sendCommand
++    void                        sendCommand( const ::rtl::OUString &rCommand );
++    // Synchronized sendCommand
++    void                        sendCommand( const ::rtl::OUString &rCommand, ::osl::Condition &rCondition );
++    void                        appendEscaped( ::rtl::OUStringBuffer &rBuffer, const ::rtl::OUString &rString );
++
++private:
++    sal_Bool                    controlIdInfo( sal_Int16 nControlId, ::rtl::OUString &rType, sal_Int32 &rTitleId );
++    sal_Bool                    controlActionInfo( sal_Int16 nControlId, ::rtl::OUString &rType );
++    void                        sendAppendControlCommand( sal_Int16 nControlId );
++}; 
++
++#endif // _UNXFILEPICKER_HXX_
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxNotifyThread.cxx	2004-06-16 17:38:35.509479352 +0200
+@@ -0,0 +1,150 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _UNXNOTIFYTHREAD_HXX_
++#include <UnxNotifyThread.hxx>
++#endif
++
++#ifndef _UNXFILEOPENIMPL_HXX_
++#include <UnxFilePicker.hxx>
++#endif
++
++using namespace ::com::sun::star;
++
++//////////////////////////////////////////////////////////////////////////
++// UnxFilePickerNotifyThread
++//////////////////////////////////////////////////////////////////////////
++
++UnxFilePickerNotifyThread::UnxFilePickerNotifyThread( UnxFilePicker *pUnxFilePicker )
++    : m_pUnxFilePicker( pUnxFilePicker ),
++      m_bExit( sal_False ),
++      m_eNotifyType( Nothing ),
++      m_nControlId( 0 )
++{
++}
++
++void SAL_CALL UnxFilePickerNotifyThread::addFilePickerListener( const uno::Reference< ui::dialogs::XFilePickerListener >& xListener )
++    throw( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    m_xListener = xListener;
++}
++
++void SAL_CALL UnxFilePickerNotifyThread::removeFilePickerListener( const uno::Reference< ui::dialogs::XFilePickerListener >& xListener ) 
++    throw( uno::RuntimeException )
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    m_xListener.clear();
++}
++
++void SAL_CALL UnxFilePickerNotifyThread::exit()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    m_bExit = sal_True;
++
++    m_aExitCondition.reset();
++    m_aNotifyCondition.set();
++    
++    m_aExitCondition.wait();
++}
++
++void SAL_CALL UnxFilePickerNotifyThread::fileSelectionChanged()
++{
++    ::osl::MutexGuard aGuard( m_aMutex );
++
++    m_eNotifyType = FileSelectionChanged;
++    m_nControlId = 0;
++    
++    m_aNotifyCondition.set();
++}
++
++void SAL_CALL UnxFilePickerNotifyThread::run()
++{
++    do {
++        m_aNotifyCondition.reset();
++        m_aNotifyCondition.wait();
++
++        if ( m_xListener.is() && m_pUnxFilePicker )
++        {
++            ::osl::MutexGuard aGuard( m_aMutex );
++
++            ui::dialogs::FilePickerEvent aEvent( *m_pUnxFilePicker, m_nControlId );
++
++            switch ( m_eNotifyType )
++            {
++                case FileSelectionChanged:
++                    m_xListener->fileSelectionChanged( aEvent );
++                    break;
++
++                // TODO More to come...
++
++                default:
++                    // nothing
++                    break;
++            }
++        }
++    } while ( !m_bExit );
++
++    m_aExitCondition.set();
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/UnxNotifyThread.hxx	2004-06-16 17:30:52.535862040 +0200
+@@ -0,0 +1,132 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _UNXNOTIFYTHREAD_HXX_
++#define _UNXNOTIFYTHREAD_HXX_
++
++#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERLISTENER_HPP_
++#include <com/sun/star/ui/dialogs/XFilePickerListener.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
++#include <com/sun/star/uno/Reference.hxx>
++#endif
++
++#ifndef _OSL_CONDITN_HXX_
++#include <osl/conditn.hxx>
++#endif
++
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
++#endif
++
++#ifndef _OSL_THREAD_HXX_
++#include <osl/thread.hxx>
++#endif
++
++class UnxFilePicker;
++
++class UnxFilePickerNotifyThread : public ::osl::Thread
++{
++protected:
++    enum NotifyType
++    {
++        Nothing = 0,
++        FileSelectionChanged
++	// TODO More to come...
++    };
++
++    UnxFilePicker              *m_pUnxFilePicker;
++
++    ::osl::Mutex                m_aMutex;
++
++    ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener > m_xListener;
++
++    sal_Bool                    m_bExit;
++    ::osl::Condition            m_aExitCondition;
++
++    NotifyType                  m_eNotifyType;
++    ::osl::Condition            m_aNotifyCondition;
++    sal_Int16                   m_nControlId;
++    
++public:
++    UnxFilePickerNotifyThread( UnxFilePicker *pUnxFilePicker );
++
++    virtual void SAL_CALL addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener ) 
++        throw( ::com::sun::star::uno::RuntimeException );
++    virtual void SAL_CALL removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener ) 
++        throw( ::com::sun::star::uno::RuntimeException );
++
++    void SAL_CALL               exit();
++
++    void SAL_CALL               fileSelectionChanged();
++    /* TODO
++    void SAL_CALL directoryChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
++    rtl::OUString SAL_CALL helpRequested( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent ) const;
++    void SAL_CALL controlStateChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
++    void SAL_CALL dialogSizeChanged( );
++     */
++
++protected:
++    virtual void SAL_CALL       run();
++};
++
++#endif // _UNXNOTIFYTHREAD_HXX_
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde_unx/fps-kde-ucd.txt	2004-06-16 17:30:52.535862040 +0200
+@@ -0,0 +1,6 @@
++[ComponentDescriptor]
++ImplementationName=com.sun.star.ui.dialogs.UnxFilePicker
++ComponentName=fps_kde.uno.so
++LoaderName=com.sun.star.loader.SharedLibrary
++[SupportedServices]
++com.sun.star.ui.dialogs.KDEFilePicker
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-datapilot-dynamic-range.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-datapilot-dynamic-range.diff
@@ -0,0 +1,564 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/fieldwnd.cxx sc/source/ui/dbgui/fieldwnd.cxx
+--- sc.clean/source/ui/dbgui/fieldwnd.cxx	2008-03-11 09:39:36.000000000 -0400
++++ sc/source/ui/dbgui/fieldwnd.cxx	2008-03-20 12:38:26.000000000 -0400
+@@ -644,7 +644,7 @@ void ScDPFieldWindow::DelField( size_t n
+ 
+ void ScDPFieldWindow::ClearFields()
+ {
+-    if( eType == TYPE_SELECT )
++    if( eType == TYPE_SELECT || eType == TYPE_PAGE || eType == TYPE_COL || eType == TYPE_ROW || eType == TYPE_DATA)
+ 	{
+         com::sun::star::uno::Reference < com::sun::star::accessibility::XAccessible > xTempAcc = xAccessible;
+         if (!xTempAcc.is() && pAccessible)
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/pivot.hrc sc/source/ui/dbgui/pivot.hrc
+--- sc.clean/source/ui/dbgui/pivot.hrc	2008-03-11 09:39:36.000000000 -0400
++++ sc/source/ui/dbgui/pivot.hrc	2008-03-20 12:38:26.000000000 -0400
+@@ -71,6 +71,10 @@
+ #define BTN_FILTER              29
+ #define BTN_DRILLDOWN           30
+ 
++#define FT_INAREA               40
++#define RB_INAREA               41
++#define ED_INAREA               42
++
+ #define PIVOTSTR_SUM			1
+ #define PIVOTSTR_COUNT			2
+ #define PIVOTSTR_AVG			3
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/pivot.src sc/source/ui/dbgui/pivot.src
+--- sc.clean/source/ui/dbgui/pivot.src	2008-03-11 09:39:36.000000000 -0400
++++ sc/source/ui/dbgui/pivot.src	2008-03-20 12:38:26.000000000 -0400
+@@ -163,7 +163,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+         Size = MAP_APPFONT ( 50 , 14 ) ;
+ 		TabStop = TRUE ;
+ 		MapUnit = MAP_APPFONT ;
+-        Delta = 73 ;
++        Delta = 90 ;
+ 	};
+ 	Window WND_FIELD
+ 	{
+@@ -183,17 +183,42 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 		Text [ en-US ] = "Result" ;
+ 		Hide = TRUE ;
+ 	};
+-	FixedText FT_OUTAREA
++
++    FixedText FT_INAREA
+ 	{
+         Pos = MAP_APPFONT ( 12 , 203 ) ;
+         Size = MAP_APPFONT ( 59 , 8 ) ;
+ 		Hide = TRUE ;
++        Text [ en-US ] = "Selection from" ;
++    };
++    Edit ED_INAREA
++    {
++        Border = TRUE ;
++        Pos = MAP_APPFONT ( 73 , 201 ) ;
++        Size = MAP_APPFONT ( 100 , 12 ) ;
++        TabStop = TRUE ;
++        Hide = TRUE ;
++    };
++    ImageButton RB_INAREA
++    {
++        Pos = MAP_APPFONT ( 177 , 200 ) ;
++        Size = MAP_APPFONT ( 13 , 15 ) ;
++        TabStop = TRUE ;
++        Hide = TRUE ;
++        QuickHelpText [ en-US ] = "Shrink" ;
++    };
++
++	FixedText FT_OUTAREA
++	{
++        Pos = MAP_APPFONT ( 12 , 221 ) ;
++        Size = MAP_APPFONT ( 59 , 8 ) ;
++		Hide = TRUE ;
+ 		Text [ en-US ] = "Results to" ;
+ 	};
+ 	ListBox LB_OUTAREA
+ 	{
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 73 , 201 ) ;
++        Pos = MAP_APPFONT ( 73 , 219 ) ;
+         Size = MAP_APPFONT ( 75 , 90 ) ;
+ 		TabStop = TRUE ;
+ 		DropDown = TRUE ;
+@@ -202,14 +227,14 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 	Edit ED_OUTAREA
+ 	{
+ 		Border = TRUE ;
+-        Pos = MAP_APPFONT ( 152 , 201 ) ;
++        Pos = MAP_APPFONT ( 152 , 219 ) ;
+         Size = MAP_APPFONT ( 100 , 12 ) ;
+ 		TabStop = TRUE ;
+ 		Hide = TRUE ;
+ 	};
+ 	ImageButton RB_OUTAREA
+ 	{
+-        Pos = MAP_APPFONT ( 256 , 200 ) ;
++        Pos = MAP_APPFONT ( 256 , 218 ) ;
+ 		Size = MAP_APPFONT ( 13 , 15 ) ;
+         TabStop = TRUE ;
+         Hide = TRUE ;
+@@ -217,7 +242,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 	};
+ 	CheckBox BTN_IGNEMPTYROWS
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 219 ) ;
++        Pos = MAP_APPFONT ( 12 , 237 ) ;
+         Size = MAP_APPFONT ( 124 , 10 ) ;
+ 		TabStop = TRUE ;
+ 		Hide = TRUE ;
+@@ -225,7 +250,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 	};
+ 	CheckBox BTN_DETECTCAT
+ 	{
+-        Pos = MAP_APPFONT ( 142 , 219 ) ;
++        Pos = MAP_APPFONT ( 142 , 237 ) ;
+         Size = MAP_APPFONT ( 124 , 10 ) ;
+ 		TabStop = TRUE ;
+ 		Hide = TRUE ;
+@@ -233,7 +258,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 	};
+ 	CheckBox BTN_TOTALCOL
+ 	{
+-        Pos = MAP_APPFONT ( 12 , 233 ) ;
++        Pos = MAP_APPFONT ( 12 , 251 ) ;
+         Size = MAP_APPFONT ( 124 , 10 ) ;
+ 		TabStop = TRUE ;
+ 		Hide = TRUE ;
+@@ -241,7 +266,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 	};
+ 	CheckBox BTN_TOTALROW
+ 	{
+-        Pos = MAP_APPFONT ( 142 , 233 ) ;
++        Pos = MAP_APPFONT ( 142 , 251 ) ;
+         Size = MAP_APPFONT ( 124 , 10 ) ;
+ 		TabStop = TRUE ;
+ 		Hide = TRUE ;
+@@ -249,7 +274,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+ 	};
+     CheckBox BTN_FILTER
+     {
+-        Pos = MAP_APPFONT ( 12 , 247 ) ;
++        Pos = MAP_APPFONT ( 12 , 265 ) ;
+         Size = MAP_APPFONT ( 124 , 10 ) ;
+         TabStop = TRUE ;
+         Hide = TRUE ;
+@@ -257,7 +282,7 @@ ModelessDialog RID_SCDLG_PIVOT_LAYOUT
+     };
+     CheckBox BTN_DRILLDOWN
+     {
+-        Pos = MAP_APPFONT ( 142 , 247 ) ;
++        Pos = MAP_APPFONT ( 142 , 265 ) ;
+         Size = MAP_APPFONT ( 124 , 10 ) ;
+         TabStop = TRUE ;
+         Hide = TRUE ;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
+--- sc.clean/source/ui/dbgui/pvlaydlg.cxx	2008-03-11 09:39:36.000000000 -0400
++++ sc/source/ui/dbgui/pvlaydlg.cxx	2008-03-20 12:53:18.000000000 -0400
+@@ -41,6 +41,7 @@
+ //----------------------------------------------------------------------------
+ 
+ #include "pvlaydlg.hxx"
++#include "dbdocfun.hxx"
+ 
+ #include <sfx2/dispatch.hxx>
+ #include <vcl/msgbox.hxx>
+@@ -61,6 +62,7 @@
+ #include "pivot.hrc"
+ #include "dpobject.hxx"
+ #include "dpsave.hxx"
++#include "dpshttab.hxx"
+ #include "scmod.hxx"
+ 
+ #include "sc.hrc" //CHINA001
+@@ -125,6 +127,11 @@ ScDPLayoutDlg::ScDPLayoutDlg( SfxBinding
+ 		aFtInfo			( this, ScResId( FT_INFO ) ),
+ 
+         aFlAreas        ( this, ScResId( FL_OUTPUT ) ),
++
++        aFtInArea		( this, ScResId( FT_INAREA) ),
++        aEdInPos		( this, ScResId( ED_INAREA) ),
++        aRbInPos		( this, ScResId( RB_INAREA ), &aEdInPos ),
++
+ 		aLbOutPos		( this, ScResId( LB_OUTAREA ) ),
+ 		aFtOutArea		( this, ScResId( FT_OUTAREA ) ),
+ 		aEdOutPos		( this, ScResId( ED_OUTAREA ) ),
+@@ -148,6 +155,8 @@ ScDPLayoutDlg::ScDPLayoutDlg( SfxBinding
+ 
+ 		bIsDrag			( FALSE ),
+ 
++        pEditActive     ( NULL ),
++
+         eLastActiveType ( TYPE_SELECT ),
+ 		nOffset			( 0 ),
+ 		//
+@@ -209,6 +218,10 @@ void __EXPORT ScDPLayoutDlg::Init()
+     for ( USHORT i = 0; i < FUNC_COUNT; ++i )
+         aFuncNameArr.push_back( String( ScResId( i + 1 ) ) );
+ 
++    aBtnMore.AddWindow( &aFlAreas );
++    aBtnMore.AddWindow( &aFtInArea );
++    aBtnMore.AddWindow( &aEdInPos );
++    aBtnMore.AddWindow( &aRbInPos );
+ 	aBtnMore.AddWindow( &aFtOutArea );
+ 	aBtnMore.AddWindow( &aLbOutPos );
+ 	aBtnMore.AddWindow( &aEdOutPos );
+@@ -219,7 +232,6 @@ void __EXPORT ScDPLayoutDlg::Init()
+ 	aBtnMore.AddWindow( &aBtnTotalRow );
+     aBtnMore.AddWindow( &aBtnFilter );
+     aBtnMore.AddWindow( &aBtnDrillDown );
+-    aBtnMore.AddWindow( &aFlAreas );
+     aBtnMore.SetClickHdl( LINK( this, ScDPLayoutDlg, MoreClickHdl ) );
+ 
+ 	{
+@@ -237,31 +249,35 @@ void __EXPORT ScDPLayoutDlg::Init()
+     aRowArr.resize( MAX_FIELDS );
+     aDataArr.resize( MAX_FIELDS );
+ 
+-	InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
+-    InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
+-	InitWnd( thePivotData.aColArr,  static_cast<long>(thePivotData.nColCount),  TYPE_COL );
+-	InitWnd( thePivotData.aRowArr,  static_cast<long>(thePivotData.nRowCount),  TYPE_ROW );
+-	InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
+-
+-    aSlider.SetPageSize( PAGE_SIZE );
+-    aSlider.SetVisibleSize( PAGE_SIZE );
+-    aSlider.SetLineSize( LINE_SIZE );
+-    aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
+-
+-	if ( thePivotData.nLabels > PAGE_SIZE )
+-	{
+-        aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
+-		aSlider.Show();
++    ScRange inRange;
++    String inString;
++    if (xDlgDPObject->GetSheetDesc())
++	{
++        aEdInPos.Enable();
++        aRbInPos.Enable();
++        aOldRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
++        aOldRange.Format( inString, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
++        aEdInPos.SetText(inString);
+ 	}
+ 	else
+-		aSlider.Hide();
++    {
++        /* Data is not reachable, so could be a remote database */
++        aEdInPos.Disable();
++        aRbInPos.Disable();
++    }
+ 
+-	// Ein-/Ausgabebereiche: ----------------------------------------------
++    InitFields();
+ 
+     aLbOutPos .SetSelectHdl( LINK( this, ScDPLayoutDlg, SelAreaHdl ) );
+     aEdOutPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdModifyHdl ) );
++    aEdInPos  .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdInModifyHdl ) );	
+     aBtnOk    .SetClickHdl ( LINK( this, ScDPLayoutDlg, OkHdl ) );
+     aBtnCancel.SetClickHdl ( LINK( this, ScDPLayoutDlg, CancelHdl ) );
++    Link aLink = LINK( this, ScDPLayoutDlg, GetFocusHdl );
++    if ( aEdInPos.IsEnabled() )
++        // Once disabled it will never get enabled, so no need to handle focus.
++        aEdInPos.SetGetFocusHdl( aLink );
++    aEdOutPos.SetGetFocusHdl( aLink );
+ 
+ 	if ( pViewData && pDoc )
+ 	{
+@@ -285,7 +301,7 @@ void __EXPORT ScDPLayoutDlg::Init()
+ 			{
+ 				USHORT nInsert = aLbOutPos.InsertEntry( aName );
+ 
+-				aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc );
++				aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc, pDoc->GetAddressConvention() );
+ 				aLbOutPos.SetEntryData( nInsert, new String( aRefStr ) );
+ 			}
+ 		}
+@@ -296,7 +312,7 @@ void __EXPORT ScDPLayoutDlg::Init()
+ 		String aStr;
+ 		ScAddress( thePivotData.nCol,
+ 				   thePivotData.nRow,
+-				   thePivotData.nTab ).Format( aStr, STD_FORMAT, pDoc );
++				   thePivotData.nTab ).Format( aStr, STD_FORMAT, pDoc, pDoc->GetAddressConvention() );
+ 		aEdOutPos.SetText( aStr );
+ 		EdModifyHdl(0);
+ 	}
+@@ -480,6 +496,27 @@ void ScDPLayoutDlg::InitFocus()
+         aWndSelect.GrabFocus();
+ }
+ 
++void ScDPLayoutDlg::InitFields()
++{
++    InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
++    InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
++    InitWnd( thePivotData.aColArr,  static_cast<long>(thePivotData.nColCount),  TYPE_COL );
++    InitWnd( thePivotData.aRowArr,  static_cast<long>(thePivotData.nRowCount),  TYPE_ROW );
++    InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
++
++    aSlider.SetPageSize( PAGE_SIZE );
++    aSlider.SetVisibleSize( PAGE_SIZE );
++    aSlider.SetLineSize( LINE_SIZE );
++    aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
++
++    if ( thePivotData.nLabels > PAGE_SIZE )
++    {
++        aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
++        aSlider.Show();
++    }
++    else
++        aSlider.Hide();
++}
+ 
+ //----------------------------------------------------------------------------
+ 
+@@ -1314,22 +1351,78 @@ BOOL ScDPLayoutDlg::GetPivotArrays(    P
+ 	return bFit;
+ }
+ 
++void ScDPLayoutDlg::UpdateSrcRange()
++{
++    String  theCurPosStr = aEdInPos.GetText();
++    USHORT  nResult = ScRange().Parse(theCurPosStr, pDoc, pDoc->GetAddressConvention());
++
++    if ( SCA_VALID != (nResult & SCA_VALID) )
++        // invalid source range.
++        return;
++
++    ScRefAddress start, end;
++    ConvertDoubleRef(pDoc, theCurPosStr, 1,  start, end, pDoc->GetAddressConvention());
++    ScRange aNewRange(start.GetAddress(), end.GetAddress());
++    ScSheetSourceDesc inSheet = *xDlgDPObject->GetSheetDesc();
++
++    if (inSheet.aSourceRange == aNewRange)
++        // new range is identical to the current range.  Nothing to do.
++        return;
++
++    ScTabViewShell * pTabViewShell = pViewData->GetViewShell();
++    inSheet.aSourceRange = aNewRange;
++    xDlgDPObject->SetSheetDesc(inSheet);
++    xDlgDPObject->InvalidateSource();
++    xDlgDPObject->FillOldParam( thePivotData, FALSE );
++    xDlgDPObject->FillLabelData(thePivotData);
++
++    pTabViewShell->SetDialogDPObject(xDlgDPObject.get());
++    aLabelDataArr.clear();
++    aWndSelect.ClearFields();
++    aWndData.ClearFields();
++    aWndRow.ClearFields();
++    aWndCol.ClearFields();
++    aWndPage.ClearFields();
++
++    for (USHORT i = 0; i < MAX_LABELS; ++i)
++        aSelectArr[i].reset();
++
++    for (USHORT i = 0; i < MAX_FIELDS; ++i)
++    {
++        RemoveField(TYPE_COL,  i);
++        RemoveField(TYPE_ROW,  i);
++        RemoveField(TYPE_DATA, i);
++    }
++
++    for (USHORT i = 0; i < MAX_PAGEFIELDS; ++i)
++        RemoveField(TYPE_PAGE, i);
++
++    InitFields();
++
++    return;
++}
+ 
+ //----------------------------------------------------------------------------
+ 
+ void ScDPLayoutDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
+ {
+-	if ( bRefInputMode )
+-	{
++    if ( !bRefInputMode || !pEditActive )
++        return;
++
+ 		if ( rRef.aStart != rRef.aEnd )
+-			RefInputStart( &aEdOutPos );
+-/*
+-		ScAddress	aAdr( nStartCol, nStartRow, nStartTab );
+-		aAdr.PutInOrder( ScAddress( nEndCol, nEndRow, nEndTab ) );
+-*/
++        RefInputStart( pEditActive );
++
++    if ( pEditActive == &aEdInPos )
++    {
+ 		String aRefStr;
+-        rRef.aStart.Format( aRefStr, STD_FORMAT, pDocP );
+-		aEdOutPos.SetRefString( aRefStr );
++        rRef.Format( aRefStr, SCR_ABS_3D, pDocP, pDocP->GetAddressConvention() );
++        pEditActive->SetRefString( aRefStr );
++    }
++    else if ( pEditActive == &aEdOutPos )
++    {
++        String aRefStr;
++        rRef.aStart.Format( aRefStr, STD_FORMAT, pDocP, pDocP->GetAddressConvention() );
++        pEditActive->SetRefString( aRefStr );
+ 	}
+ }
+ 
+@@ -1340,7 +1433,12 @@ void ScDPLayoutDlg::SetActive()
+ {
+ 	if ( bRefInputMode )
+ 	{
+-		aEdOutPos.GrabFocus();
++        if ( pEditActive )
++            pEditActive->GrabFocus();
++
++        if ( pEditActive == &aEdInPos )
++            EdInModifyHdl( NULL );
++        else if ( pEditActive == &aEdOutPos )
+ 		EdModifyHdl( NULL );
+ 	}
+ 	else
+@@ -1379,7 +1477,7 @@ IMPL_LINK( ScDPLayoutDlg, OkHdl, OKButto
+ 	String		aOutPosStr( aEdOutPos.GetText() );
+ 	ScAddress	aAdrDest;
+ 	BOOL		bToNewTable = (aLbOutPos.GetSelectEntryPos() == 1);
+-	USHORT		nResult		= !bToNewTable ? aAdrDest.Parse( aOutPosStr, pDoc ) : 0;
++	USHORT		nResult		= !bToNewTable ? aAdrDest.Parse( aOutPosStr, pDoc, pDoc->GetAddressConvention() ) : 0;
+ 
+ 	if (   bToNewTable
+ 		|| ( (aOutPosStr.Len() > 0) && (SCA_VALID == (nResult & SCA_VALID)) ) )
+@@ -1497,12 +1595,11 @@ IMPL_LINK( ScDPLayoutDlg, OkHdl, OKButto
+ 
+ //----------------------------------------------------------------------------
+ 
+-IMPL_LINK_INLINE_START( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
++IMPL_LINK( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
+ {
+ 	Close();
+ 	return 0;
+ }
+-IMPL_LINK_INLINE_END( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
+ 
+ 
+ //----------------------------------------------------------------------------
+@@ -1514,9 +1611,18 @@ IMPL_LINK( ScDPLayoutDlg, MoreClickHdl, 
+ 		bRefInputMode = TRUE;
+ 		//@BugID 54702 Enablen/Disablen nur noch in Basisklasse
+ 		//SFX_APPWINDOW->Enable();
++        if ( aEdInPos.IsEnabled() )
++        {
++            aEdInPos.Enable();
++            aEdInPos.GrabFocus();
++            aEdInPos.Enable();
++        }
++        else
++        {
+ 		aEdOutPos.Enable();
+ 		aEdOutPos.GrabFocus();
+-        aRbOutPos.Enable();
++            aEdOutPos.Enable();
++        }
+ 	}
+ 	else
+ 	{
+@@ -1533,7 +1639,7 @@ IMPL_LINK( ScDPLayoutDlg, MoreClickHdl, 
+ IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, Edit *, EMPTYARG )
+ {
+ 	String	theCurPosStr = aEdOutPos.GetText();
+-	USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc );
++	USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+ 
+ 	if ( SCA_VALID == (nResult & SCA_VALID) )
+ 	{
+@@ -1557,6 +1663,13 @@ IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, E
+ }
+ 
+ 
++IMPL_LINK( ScDPLayoutDlg, EdInModifyHdl, Edit *, EMPTYARG )
++{
++    UpdateSrcRange();
++    return 0;
++}
++
++
+ //----------------------------------------------------------------------------
+ 
+ IMPL_LINK( ScDPLayoutDlg, SelAreaHdl, ListBox *, EMPTYARG )
+@@ -1610,4 +1723,16 @@ IMPL_LINK( ScDPLayoutDlg, ScrollHdl, Scr
+ 	return 0;
+ }
+ 
++//----------------------------------------------------------------------------
++
++IMPL_LINK( ScDPLayoutDlg, GetFocusHdl, Control*, pCtrl )
++{
++    pEditActive = NULL;
++    if ( pCtrl == &aEdInPos )
++        pEditActive = &aEdInPos;
++    else if ( pCtrl == &aEdOutPos )
++        pEditActive = &aEdOutPos;
++
++	return 0;
++}
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/pvlaydlg.hxx sc/source/ui/inc/pvlaydlg.hxx
+--- sc.clean/source/ui/inc/pvlaydlg.hxx	2008-03-11 09:39:34.000000000 -0400
++++ sc/source/ui/inc/pvlaydlg.hxx	2008-03-20 12:38:26.000000000 -0400
+@@ -143,10 +143,18 @@ private:
+     FixedInfo               aFtInfo;
+ 
+     FixedLine               aFlAreas;
++
++    // DP source selection
++    FixedText               aFtInArea;
++    ScRefEdit               aEdInPos;
++    ScRefButton             aRbInPos;
++
++    // DP output location
+     ListBox                 aLbOutPos;
+     FixedText               aFtOutArea;
+     ScRefEdit               aEdOutPos;
+     ScRefButton             aRbOutPos;
++
+     CheckBox                aBtnIgnEmptyRows;
+     CheckBox                aBtnDetectCat;
+     CheckBox                aBtnTotalCol;
+@@ -169,6 +177,8 @@ private:
+     size_t                  nDnDFromIndex;
+     BOOL                    bIsDrag;
+ 
++    ScRefEdit*              pEditActive;
++
+     Rectangle               aRectPage;
+     Rectangle               aRectRow;
+     Rectangle               aRectCol;
+@@ -187,6 +197,7 @@ private:
+     ScDPFuncDataVec         aDataArr;
+ 
+     ScDPObjectPtr           xDlgDPObject;
++    ScRange                 aOldRange;
+     ScPivotParam            thePivotData;
+     ScViewData*             pViewData;
+     ScDocument*             pDoc;
+@@ -198,6 +209,7 @@ private:
+     void                    InitWndSelect   ( LabelData** ppLabelArr, long nLabels );
+     void                    InitWnd         ( PivotField* pArr, long nCount, ScDPFieldType eType );
+     void                    InitFocus       ();
++    void                    InitFields      ();
+     void                    CalcWndSizes    ();
+     Point                   DlgPos2WndPos   ( const Point& rPt, Window& rWnd );
+     ScDPLabelData*          GetLabelData    ( SCsCOL nCol, size_t* pPos = NULL );
+@@ -221,14 +233,19 @@ private:
+                                               USHORT&       rColCount,
+                                               USHORT&       rRowCount,
+                                               USHORT&       rDataCount );
++
++    void                    UpdateSrcRange();
++
+ 	// Handler
+     DECL_LINK( ClickHdl, PushButton * );
+ 	DECL_LINK( ScrollHdl, ScrollBar * );
+ 	DECL_LINK( SelAreaHdl, ListBox * );
+ 	DECL_LINK( MoreClickHdl, MoreButton * );
+ 	DECL_LINK( EdModifyHdl, Edit * );
++    DECL_LINK( EdInModifyHdl, Edit * );
+ 	DECL_LINK( OkHdl, OKButton * );
+ 	DECL_LINK( CancelHdl, CancelButton * );
++    DECL_LINK( GetFocusHdl, Control* );
+ };
+ 
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/svx-customshapes-NOOPTFILES.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/svx-customshapes-NOOPTFILES.diff
@@ -0,0 +1,18 @@
+Index: svx/source/customshapes/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/svx/source/customshapes/makefile.mk,v
+retrieving revision 1.9
+diff -u -u -r1.9 makefile.mk
+--- svx/source/customshapes/makefile.mk	1 Mar 2005 19:06:56 -0000	1.9
++++ svx/source/customshapes/makefile.mk	22 Aug 2005 02:01:36 -0000
+@@ -81,6 +81,10 @@
+ .IF ("$(OS)$(CPU)"=="SOLARISS" && "$(COM)"!="GCC") || "$(OS)"=="MACOSX" || ("$(OS)"=="LINUX" && "$(CPU)"=="P") 
+ NOOPTFILES= $(SLO)$/EnhancedCustomShapeFunctionParser.obj
+ .ENDIF
++# http://gcc.gnu.org/PR22392
++.IF "$(OS)"=="LINUX" && ("$(CPU)"=="P" || "$(CPU)"=="X")
++NOOPTFILES= $(SLO)$/EnhancedCustomShapeFunctionParser.obj
++.ENDIF
+ 
+ # --- Files -------------------------------------
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-string-arg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-string-arg.diff
@@ -0,0 +1,306 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/inc/interpre.hxx sc/source/core/inc/interpre.hxx
+--- sc.clean/source/core/inc/interpre.hxx	2008-02-27 16:20:14.000000000 -0500
++++ sc/source/core/inc/interpre.hxx	2008-02-27 17:51:41.000000000 -0500
+@@ -206,8 +206,8 @@ void ReplaceCell( ScAddress& );		// for 
+ void ReplaceCell( SCCOL& rCol, SCROW& rRow, SCTAB& rTab );	// for TableOp
+ BOOL IsTableOpInRange( const ScRange& );
+ ULONG GetCellNumberFormat( const ScAddress&, const ScBaseCell* );
+-double GetCellValue( const ScAddress&, const ScBaseCell* );
+-double GetCellValueOrZero( const ScAddress&, const ScBaseCell* );
++double GetCellValue( const ScAddress&, const ScBaseCell*, bool bNoValueAsError = false, bool bBlankAsZero = false );
++double GetCellValueOrZero( const ScAddress&, const ScBaseCell*, bool bBlankAsZero );
+ double GetValueCellValue( const ScAddress&, const ScValueCell* );
+ ScBaseCell* GetCell( const ScAddress& rPos )
+ 	{ return pDok->GetCell( rPos ); }
+@@ -273,7 +273,7 @@ StackVar GetStackType( BYTE nParam );
+ BYTE GetByte() { return cPar; }
+ // generiert aus DoubleRef positionsabhaengige SingleRef
+ BOOL DoubleRefToPosSingleRef( const ScRange& rRange, ScAddress& rAdr );
+-double GetDouble();
++double GetDouble( bool bNoValueAsError = false, bool bBlankAsZero = false );
+ double GetDoubleWithDefault(double nDefault);
+ BOOL IsMissing();
+ BOOL GetBool() { return GetDouble() != 0.0; }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr1.cxx sc/source/core/tool/interpr1.cxx
+--- sc.clean/source/core/tool/interpr1.cxx	2008-02-27 16:20:14.000000000 -0500
++++ sc/source/core/tool/interpr1.cxx	2008-02-27 16:27:51.000000000 -0500
+@@ -3020,12 +3020,13 @@ double ScInterpreter::IterateParameters(
+ 	ScRange aRange;
+ 	for (short i = 0; i < nParamCount; i++)
+ 	{
+-		switch (GetStackType())
++		StackVar eStackType = GetStackType();
++		switch (eStackType)
+ 		{
+-
++			case svDouble:
+ 			case svString:
+ 			{
+-				if( eFunc == ifCOUNT )
++				if ( eFunc == ifCOUNT && eStackType == svString )
+ 				{
+ 					String aStr( PopString() );
+ 					sal_uInt32 nFIndex = 0;					// damit default Land/Spr.
+@@ -3034,42 +3035,23 @@ double ScInterpreter::IterateParameters(
+ 				}
+ 				else
+ 				{
++                    if ( bTextAsZero && eStackType == svString )
++                    {
++                        Pop();
++                        nCount++;
++                        if ( eFunc == ifPRODUCT )
++                            fRes = 0.0;
++                        fVal = 0;
++                    }
++                    else
++                    {
++                        fVal = GetDouble();
++                        nCount++;
++                    }
+ 					switch ( eFunc )
+ 					{
+ 						case ifAVERAGE:
+ 						case ifSUM:
+-						case ifSUMSQ:
+-						case ifPRODUCT:
+-						{
+-							if ( bTextAsZero )
+-							{
+-								Pop();
+-								nCount++;
+-								if ( eFunc == ifPRODUCT )
+-									fRes = 0.0;
+-							}
+-							else
+-							{
+-								for ( ; i < nParamCount; i++ )
+-									Pop();
+-								SetError( errNoValue );
+-							}
+-						}
+-						break;
+-						default:
+-							Pop();
+-							nCount++;
+-					}
+-				}
+-			}
+-			break;
+-			case svDouble    :
+-				fVal = GetDouble();
+-				nCount++;
+-				switch( eFunc )
+-				{
+-					case ifAVERAGE:
+-					case ifSUM:
+ 						if ( bNull && fVal != 0.0 )
+ 						{
+ 							bNull = FALSE;
+@@ -3078,12 +3060,15 @@ double ScInterpreter::IterateParameters(
+ 						else
+ 							fRes += fVal;
+ 						break;
+-					case ifSUMSQ:	fRes += fVal * fVal; break;
+-					case ifPRODUCT:	fRes *= fVal; break;
+-                    default: ; // nothing
++						case ifSUMSQ:	fRes += fVal * fVal; break;
++						case ifPRODUCT:	fRes *= fVal; break;
++
++						default:;
++					}
+ 				}
+ 				nFuncFmtType = NUMBERFORMAT_NUMBER;
+-				break;
++			}
++			break;
+ 			case svSingleRef :
+ 			{
+ 				PopSingleRef( aAdr );
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr4.cxx sc/source/core/tool/interpr4.cxx
+--- sc.clean/source/core/tool/interpr4.cxx	2008-02-27 16:20:14.000000000 -0500
++++ sc/source/core/tool/interpr4.cxx	2008-02-27 17:56:52.000000000 -0500
+@@ -205,18 +205,19 @@ double ScInterpreter::GetValueCellValue(
+ }
+ 
+ 
+-double ScInterpreter::GetCellValue( const ScAddress& rPos, const ScBaseCell* pCell )
++double ScInterpreter::GetCellValue( const ScAddress& rPos, const ScBaseCell* pCell, 
++                                    bool bNoValueAsError, bool bBlankAsZero )
+ {
+ 	USHORT nErr = nGlobalError;
+ 	nGlobalError = 0;
+-	double nVal = GetCellValueOrZero( rPos, pCell );
+-    if ( !nGlobalError || nGlobalError == errCellNoValue )
++	double nVal = GetCellValueOrZero( rPos, pCell, bBlankAsZero );
++    if ( !nGlobalError || (!bNoValueAsError && nGlobalError == errCellNoValue) )
+ 		nGlobalError = nErr;
+ 	return nVal;
+ }
+ 
+ 
+-double ScInterpreter::GetCellValueOrZero( const ScAddress& rPos, const ScBaseCell* pCell )
++double ScInterpreter::GetCellValueOrZero( const ScAddress& rPos, const ScBaseCell* pCell, bool bBlankAsZero )
+ {
+ 	double fValue;
+ 	if (pCell)
+@@ -260,7 +261,7 @@ double ScInterpreter::GetCellValueOrZero
+ 			break;
+ 			case  CELLTYPE_STRING:
+ 			case  CELLTYPE_EDIT:
+-#if 0
++#if 1 /* JEG : re-enable because compatibility is more important than consistency for this */
+ // Xcl does it, but SUM(A1:A2) differs from A1+A2. No good.
+ 			{
+ 				String aStr;
+@@ -271,14 +272,15 @@ double ScInterpreter::GetCellValueOrZero
+ 				sal_uInt32 nFIndex = 0;					// damit default Land/Spr.
+ 				if ( !pFormatter->IsNumberFormat( aStr, nFIndex, fValue ) )
+ 				{
+-					SetError(errNoValue);
++					SetError(errCellNoValue);	/* CellNoValue is not really an error */
+ 					fValue = 0.0;
+ 				}
+ 			}
+ 			break;
+ #endif
+ 			default:
+-                SetError(errCellNoValue);
++                if (!bBlankAsZero)
++                    SetError(errCellNoValue);
+ 				fValue = 0.0;
+ 		}
+ 	}
+@@ -1440,7 +1442,7 @@ BOOL ScInterpreter::DoubleRefToPosSingle
+ }
+ 
+ 
+-double ScInterpreter::GetDouble()
++double ScInterpreter::GetDouble( bool bNoValueAsError, bool bBlankAsZero )
+ {
+ 	double nVal;
+ 	switch( GetStackType() )
+@@ -1464,7 +1466,7 @@ double ScInterpreter::GetDouble()
+ 			ScAddress aAdr;
+ 			PopSingleRef( aAdr );
+ 			ScBaseCell* pCell = GetCell( aAdr );
+-			nVal = GetCellValue( aAdr, pCell );
++			nVal = GetCellValue( aAdr, pCell, bNoValueAsError, bBlankAsZero );
+ 		}
+ 		break;
+ 		case svDoubleRef:
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/interpr5.cxx sc/source/core/tool/interpr5.cxx
+--- sc.clean/source/core/tool/interpr5.cxx	2008-02-27 16:20:14.000000000 -0500
++++ sc/source/core/tool/interpr5.cxx	2008-02-27 17:50:51.000000000 -0500
+@@ -1522,7 +1522,12 @@ void ScInterpreter::ScAdd()
+ 		pMat2 = GetMatrix();
+ 	else
+ 	{
+-		fVal2 = GetDouble();
++		fVal2 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_DATE :
+@@ -1543,7 +1548,12 @@ void ScInterpreter::ScAdd()
+ 		pMat1 = GetMatrix();
+ 	else
+ 	{
+-		fVal1 = GetDouble();
++		fVal1 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_DATE :
+@@ -1717,7 +1727,12 @@ void ScInterpreter::ScSub()
+ 		pMat2 = GetMatrix();
+ 	else
+ 	{
+-		fVal2 = GetDouble();
++		fVal2 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_DATE :
+@@ -1738,7 +1753,12 @@ void ScInterpreter::ScSub()
+ 		pMat1 = GetMatrix();
+ 	else
+ 	{
+-		fVal1 = GetDouble();
++		fVal1 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_DATE :
+@@ -1832,7 +1852,12 @@ void ScInterpreter::ScMul()
+ 		pMat2 = GetMatrix();
+ 	else
+ 	{
+-		fVal2 = GetDouble();
++		fVal2 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_CURRENCY :
+@@ -1845,7 +1870,12 @@ void ScInterpreter::ScMul()
+ 		pMat1 = GetMatrix();
+ 	else
+ 	{
+-		fVal1 = GetDouble();
++		fVal1 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_CURRENCY :
+@@ -1910,7 +1940,12 @@ void ScInterpreter::ScDiv()
+ 		pMat2 = GetMatrix();
+ 	else
+ 	{
+-		fVal2 = GetDouble();
++		fVal2 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		// hier kein Currency uebernehmen, 123kg/456DM sind nicht DM
+ 		nFmtCurrencyType2 = nCurFmtType;
+ 	}
+@@ -1918,7 +1953,12 @@ void ScInterpreter::ScDiv()
+ 		pMat1 = GetMatrix();
+ 	else
+ 	{
+-		fVal1 = GetDouble();
++		fVal1 = GetDouble(true, true);
++        if (nGlobalError)
++        {
++            PushError(nGlobalError);
++            return;
++        }
+ 		switch ( nCurFmtType )
+ 		{
+ 			case NUMBERFORMAT_CURRENCY :
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/jvmfwk-gij-paths.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/jvmfwk-gij-paths.diff
@@ -0,0 +1,41 @@
+Index: gnujre.cxx
+===================================================================
+RCS file: /cvs/udk/jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx,v
+retrieving revision 1.9.14.1
+diff -u -u -r1.9.14.1 gnujre.cxx
+--- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx	11 Aug 2006 10:44:52 -0000	1.9.14.1
++++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx	27 Aug 2006 00:59:25 -0000
+@@ -55,6 +55,12 @@
+     static char const * ar[] = {
+         "gij",
+         "bin/gij",
++	"gij-4.3",
++	"bin/gij-4.3",
++	"gij-4.2",
++	"bin/gij-4.2",
++	"gij-4.1",
++	"bin/gij-4.1",
+     };
+     *size = sizeof (ar) / sizeof (char*);
+     return ar;
+@@ -65,6 +69,20 @@
+     static char const* ar[]= {
+           "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so",
+           "/gcj-4.1.1/libjvm.so",
++	  "/gcj-4.3-90/libjvm.so",
++	  "/gcj-4.2-81/libjvm.so",
++	  "/gcj-4.2/libjvm.so",
++	  "/gcj-4.2.1/libjvm.so",
++	  "/gcj-4.2.2/libjvm.so",
++	  "/gcj-4.2.3/libjvm.so",
++	  "/gcj-4.1-71/libjvm.so",
++	  "/gcj-4_1/libjvm.so",
++	  "/gcj-4.1/libjvm.so",
++	  "/libgcj.so.81",
++	  "/libgcj.so.80",
++	  "/libgcj.so.8",
++	  "/libgcj.so.71",
++	  "/libgcj.so.70",
+           "/libgcj.so.7",
+           "/libgcj.so.6"
+     };
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-ucb.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-ucb.diff
@@ -0,0 +1,30 @@
+--- ucb/prj/build.lst	2007-06-19 18:10:23.000000000 +0200
++++ ucb/prj/build.lst	2007-09-07 11:52:29.000000000 +0200
+@@ -1,4 +1,4 @@
+-uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 offapi sal salhelper ucbhelper udkapi comphelper vcl NULL
++uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 offapi sal salhelper ucbhelper udkapi comphelper vcl tools NULL
+ uc	ucb							usr1	-	all	uc_mkout NULL
+ uc	ucb\inc					    nmake	-	all	uc_inc NULL
+ uc	ucb\source\regexp		    nmake	-	all	uc_regexp uc_inc NULL
+--- ucb/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ ucb/prj/tests.lst	2007-09-07 18:02:58.000000000 +0200
+@@ -0,0 +1,9 @@
++uc   ucb\qa\complex\tdoc\interfaces                     nmake - all uc_qa_complex_tdoc_interfaces NULL
++#does not build: uc   ucb\qa\complex\tdoc                                nmake - all uc_qa_complex_tdoc NULL
++uc   ucb\qa\complex\ucb                                 nmake - all uc_qa_complex_ucb NULL
++#does not build: uc   ucb\qa\unoapi                                      nmake - all uc_qa_unoapi NULL
++
++# older tests:
++#doest not build: uc   ucb\test\com\sun\star\comp\ucb                     nmake - all uc_test_com_sun_star_comp_ucb NULL
++uc   ucb\workben\cachemap                               nmake - all uc_workben_cachemap NULL
++uc   ucb\workben\ucb                                    nmake - all uc_workben_ucb NULL
+--- ucb/workben/ucb/makefile.mk	2007-03-09 10:23:41.000000000 +0100
++++ ucb/workben/ucb/makefile.mk	2007-09-07 12:12:33.000000000 +0200
+@@ -82,7 +82,6 @@ APP1STDLIBS=\
+ 	$(CPPUHELPERLIB) \
+ 	$(COMPHELPERLIB) \
+ 	$(TOOLSLIB) \
+-	$(SVTOOLLIB) \
+ 	$(VCLLIB) \
+ 	$(UCBHELPERLIB)
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/config_office-liblayout-libfonts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/config_office-liblayout-libfonts.diff
@@ -0,0 +1,22 @@
+--- config_office/configure.in-old	2008-02-05 09:22:27.000000000 +0100
++++ config_office/configure.in	2008-02-05 09:23:17.000000000 +0100
+@@ -383,6 +383,10 @@
+ [  --with-liblayout-jar=JARFILE   Specify path to jarfile manually ],
+ [ LIBLAYOUT_JAR="$withval"
+ ])
++AC_ARG_WITH(libloader-jar,
++[  --with-libloader-jar=JARFILE   Specify path to jarfile manually ],
++[ LIBLOADER_JAR="$withval"
++])
+ AC_ARG_WITH(libformula-jar,
+ [  --with-libformula-jar=JARFILE   Specify path to jarfile manually ],
+ [ LIBFORMULA_JAR="$withval"
+@@ -391,7 +395,7 @@
+ [  --with-librepository-jar=JARFILE   Specify path to jarfile manually ],
+ [ LIBREPOSITORY_JAR="$withval"
+ ])
+-AC_ARG_WITH(libfonts-java-jar,
++AC_ARG_WITH(libfonts-jar,
+ [  --with-libfonts-jar=JARFILE   Specify path to jarfile manually ],
+ [ LIBFONTS_JAR="$withval"
+ ])
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo73201.sw.a11yloadcrash.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo73201.sw.a11yloadcrash.diff
@@ -0,0 +1,19 @@
+--- sw/source/core/layout/ssfrm.cxx	16 Sep 2006 21:24:12 -0000	1.45
++++ sw/source/core/layout/ssfrm.cxx	6 Jan 2007 14:50:07 -0000
+@@ -577,7 +577,16 @@
+                 // --> OD 2004-06-30 #i28701#
+                 SwAnchoredObject* pAnchoredObj = (*pFrm->GetDrawObjs())[0];
+                 if ( pAnchoredObj->ISA(SwFlyFrm) )
++				{
++
++                    //cmc: flush any accessible events that might be related to
++                    //this object
++                    if (ViewShell *pSh = GetShell())
++                        if (SwViewImp *pImp = pSh ? pSh->Imp() : 0)
++                            pImp->FireAccessibleEvents();
++
+                     delete pAnchoredObj;
++				}
+                 else
+                 {
+                     SdrObject* pSdrObj = pAnchoredObj->DrawObj();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo85470.workspace.cairotext01.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo85470.workspace.cairotext01.diff
@@ -0,0 +1,474 @@
+Index: vcl/inc/vcl/glyphcache.hxx
+diff -u vcl/inc/vcl/glyphcache.hxx:1.2 vcl/inc/vcl/glyphcache.hxx:1.2.282.1
+--- vcl/inc/vcl/glyphcache.hxx:1.2	Wed Apr 11 10:55:02 2007
++++ vcl/inc/vcl/glyphcache.hxx	Fri Jan 25 00:53:45 2008
+@@ -186,6 +186,10 @@
+     virtual const ::rtl::OString*   GetFontFileName() const { return NULL; }
+     virtual int                 GetFontFaceNumber() const   { return 0; }
+     virtual bool                TestFont() const            { return true; }
++    virtual void*               GetFtFace() const { return 0; }
++    virtual int                 GetLoadFlags() const { return 0; }
++    virtual bool                NeedsArtificialBold() const { return false; }
++    virtual bool		        NeedsArtificialItalic() const { return false; }
+ 
+     const ImplFontSelectData&   GetFontSelData() const      { return maFontSelData; }
+ 
+Index: vcl/source/glyphs/gcach_ftyp.cxx
+diff -u vcl/source/glyphs/gcach_ftyp.cxx:1.147 vcl/source/glyphs/gcach_ftyp.cxx:1.147.96.1
+--- vcl/source/glyphs/gcach_ftyp.cxx:1.147	Mon Nov 26 07:13:41 2007
++++ vcl/source/glyphs/gcach_ftyp.cxx	Tue Feb  5 08:22:27 2008
+@@ -518,6 +518,16 @@
+ 
+ // -----------------------------------------------------------------------
+ 
++void* FreetypeServerFont::GetFtFace() const
++{
++    if( maSizeFT )
++        pFTActivateSize( maSizeFT );
++
++    return maFaceFT;
++}
++
++// -----------------------------------------------------------------------
++
+ FreetypeManager::~FreetypeManager()
+ {
+ // This crashes on Solaris 10 
+Index: vcl/source/glyphs/gcach_ftyp.hxx
+diff -u vcl/source/glyphs/gcach_ftyp.hxx:1.39 vcl/source/glyphs/gcach_ftyp.hxx:1.39.180.2
+--- vcl/source/glyphs/gcach_ftyp.hxx:1.39	Tue Jul 31 09:09:30 2007
++++ vcl/source/glyphs/gcach_ftyp.hxx	Tue Feb  5 08:22:27 2008
+@@ -185,6 +185,10 @@
+     virtual const ::rtl::OString* GetFontFileName() const { return mpFontInfo->GetFontFileName(); }
+     virtual int                 GetFontFaceNum() const { return mpFontInfo->GetFaceNum(); }
+     virtual bool                TestFont() const;
++    virtual void*               GetFtFace() const;
++    virtual int               	GetLoadFlags() const { return mnLoadFlags; }
++    virtual bool                NeedsArtificialBold() const { return mbArtBold; }
++    virtual bool                NeedsArtificialItalic() const { return mbArtItalic; }
+ 
+     virtual void                FetchFontMetric( ImplFontMetricData&, long& rFactor ) const;
+ 
+Index: vcl/unx/inc/salgdi.h
+diff -u vcl/unx/inc/salgdi.h:1.41 vcl/unx/inc/salgdi.h:1.41.206.2
+--- vcl/unx/inc/salgdi.h:1.41	Wed Jun 27 13:41:23 2007
++++ vcl/unx/inc/salgdi.h	Mon Jan 28 00:53:49 2008
+@@ -58,6 +58,8 @@
+ #include <vcl/dllapi.h>
+ #endif
+ 
++#include <deque>
++
+ #include "xfont.hxx"
+ 
+ // -=-= forwards -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+@@ -78,6 +80,19 @@
+ 
+ // -=-= SalGraphicsData =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+ 
++class CairoFontsCache
++{
++private:
++    static int mnRefCount;
++    typedef std::deque< std::pair<void *, void*> > LRUFonts;
++    static LRUFonts maLRUFonts;
++public:
++    CairoFontsCache();
++    static void  CacheFont(void *pFont, void *pId);
++    static void* FindCachedFont(void *pId);
++    ~CairoFontsCache();
++};
++
+ class VCL_DLLPUBLIC X11SalGraphics : public SalGraphics
+ {
+     friend class            X11FontLayout;
+@@ -90,7 +105,8 @@
+     SalColormap    *m_pDeleteColormap;
+     Drawable        hDrawable_;     // use
+     int             m_nScreen;
+-	void*           pRenderFormat_;
++    void*           pRenderFormat_;
++    CairoFontsCache m_aCairoFontsCache;
+ 
+     XLIB_Region     pPaintRegion_;
+     XLIB_Region     pClipRegion_;
+@@ -198,6 +214,7 @@
+     void                    DrawServerSimpleFontString( const ServerFontLayout& );
+     void                    DrawServerAAFontString( const ServerFontLayout& );
+     bool                    DrawServerAAForcedString( const ServerFontLayout& );
++    void                    DrawCairoAAFontString( const ServerFontLayout& );
+     
+     void freeResources();
+ public:
+Index: vcl/unx/source/gdi/salgdi3.cxx
+diff -u vcl/unx/source/gdi/salgdi3.cxx:1.149 vcl/unx/source/gdi/salgdi3.cxx:1.149.66.7
+--- vcl/unx/source/gdi/salgdi3.cxx:1.149	Wed Dec 12 05:21:50 2007
++++ vcl/unx/source/gdi/salgdi3.cxx	Thu Feb 28 10:37:07 2008
+@@ -123,6 +123,32 @@
+ 
+ #include <hash_set>
+ 
++struct cairo_surface_t;
++struct cairo_t;
++struct cairo_font_face_t;
++typedef void* FT_Face;
++struct cairo_matrix_t {
++    double xx; double yx;
++    double xy; double yy;
++    double x0; double y0;
++};
++struct cairo_glyph_t
++{
++    unsigned long index;
++    double x;
++    double y;
++};
++struct BOX
++{
++    short x1, x2, y1, y2;
++};
++struct _XRegion
++{
++    long size;
++    long numRects;
++    BOX *rects;
++    BOX extents;
++};
+ using namespace rtl;
+ 
+ // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+@@ -734,6 +760,306 @@
+ }
+ 
+ //--------------------------------------------------------------------------
++namespace {
++
++class CairoWrapper
++{
++private:
++    oslModule mpCairoLib;
++    
++    cairo_surface_t* (*mp_xlib_surface_create_with_xrender_format)(Display *, Drawable , Screen *, XRenderPictFormat *, int , int );
++    void (*mp_surface_destroy)(cairo_surface_t *);
++    cairo_t* (*mp_create)(cairo_surface_t *);
++    void (*mp_destroy)(cairo_t*);
++    void (*mp_clip)(cairo_t*);
++    void (*mp_rectangle)(cairo_t*, double, double, double, double);
++    cairo_font_face_t * (*mp_ft_font_face_create_for_ft_face)(FT_Face, int);
++    void (*mp_set_font_face)(cairo_t *, cairo_font_face_t *);
++    void (*mp_font_face_destroy)(cairo_font_face_t *);
++    void (*mp_matrix_init_identity)(cairo_matrix_t *);
++    void (*mp_matrix_scale)(cairo_matrix_t *, double, double);
++    void (*mp_matrix_rotate)(cairo_matrix_t *, double);
++    void (*mp_set_font_matrix)(cairo_t *, const cairo_matrix_t *);
++    void (*mp_show_glyphs)(cairo_t *, const cairo_glyph_t *, int );
++    void (*mp_set_source_rgb)(cairo_t *, double , double , double );
++
++    bool canEmbolden() const { return false; }
++
++    CairoWrapper();
++public:
++    static CairoWrapper& get();
++    bool isValid() const { return (mpCairoLib != NULL); }
++    bool isCairoRenderable(const ServerFont& rFont);
++
++    cairo_surface_t* xlib_surface_create_with_xrender_format(Display *pDisplay, Drawable drawable, Screen *pScreen, XRenderPictFormat *pFormat, int width, int height)
++        { return (*mp_xlib_surface_create_with_xrender_format)(pDisplay, drawable, pScreen, pFormat, width, height); }
++    void surface_destroy(cairo_surface_t *surface) { (*mp_surface_destroy)(surface); }
++    cairo_t* create(cairo_surface_t *surface) { return (*mp_create)(surface); }
++    void destroy(cairo_t *cr) { (*mp_destroy)(cr); }
++    void clip(cairo_t *cr) { (*mp_clip)(cr); }
++    void rectangle(cairo_t *cr, double x, double y, double width, double height) 
++        { (*mp_rectangle)(cr, x, y, width, height); }
++    cairo_font_face_t* ft_font_face_create_for_ft_face(FT_Face face, int load_flags)
++        { return (*mp_ft_font_face_create_for_ft_face)(face, load_flags); }
++    void set_font_face(cairo_t *cr, cairo_font_face_t *font_face)
++        { (*mp_set_font_face)(cr, font_face); }
++    void font_face_destroy(cairo_font_face_t *font_face)
++        { (*mp_font_face_destroy)(font_face); }
++    void matrix_init_identity(cairo_matrix_t *matrix)
++        { (*mp_matrix_init_identity)(matrix); }
++    void matrix_scale(cairo_matrix_t *matrix, double sx, double sy)
++        { (*mp_matrix_scale)(matrix, sx, sy); }
++    void matrix_rotate(cairo_matrix_t *matrix, double radians)
++        { (*mp_matrix_rotate)(matrix, radians); }
++    void set_font_matrix(cairo_t *cr, const cairo_matrix_t *matrix)
++        { (*mp_set_font_matrix)(cr, matrix); }
++    void show_glyphs(cairo_t *cr, const cairo_glyph_t *glyphs, int no_glyphs)
++        { (*mp_show_glyphs)(cr, glyphs, no_glyphs); }
++    void set_source_rgb(cairo_t *cr, double red, double green, double blue)
++        { (*mp_set_source_rgb)(cr, red, green, blue); }
++};
++
++static CairoWrapper* pCairoInstance = NULL;
++
++CairoWrapper& CairoWrapper::get()
++{
++    if( ! pCairoInstance )
++        pCairoInstance = new CairoWrapper();
++    return *pCairoInstance;
++}
++
++CairoWrapper::CairoWrapper()
++:   mpCairoLib( NULL )
++{
++    static const char* pDisableCairoText = getenv( "SAL_DISABLE_CAIROTEXT" );
++    if( pDisableCairoText && (pDisableCairoText[0] == '1') )
++        return;
++    
++    int nDummy;
++    if( !XQueryExtension( GetX11SalData()->GetDisplay()->GetDisplay(), "RENDER", &nDummy, &nDummy, &nDummy ) )
++        return;
++
++
++    OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( "libcairo.so.2" ));
++    mpCairoLib = osl_loadModule( aLibName.pData, SAL_LOADMODULE_DEFAULT );
++    if( !mpCairoLib )
++	return;
++
++    mp_xlib_surface_create_with_xrender_format = (cairo_surface_t* (*)(Display *, Drawable , Screen *, XRenderPictFormat *, int , int )) 
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_xlib_surface_create_with_xrender_format" );
++    mp_surface_destroy = (void(*)(cairo_surface_t*)) 
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_surface_destroy" );
++    mp_create = (cairo_t*(*)(cairo_surface_t*)) 
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_create" );
++    mp_destroy = (void(*)(cairo_t*))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_destroy" );
++    mp_clip = (void(*)(cairo_t*))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_clip" );
++    mp_rectangle = (void(*)(cairo_t*, double, double, double, double))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_rectangle" );
++    mp_ft_font_face_create_for_ft_face = (cairo_font_face_t * (*)(FT_Face, int))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_ft_font_face_create_for_ft_face" );
++    mp_set_font_face = (void (*)(cairo_t *, cairo_font_face_t *))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_font_face" );
++    mp_font_face_destroy = (void (*)(cairo_font_face_t *))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_font_face_destroy" );
++    mp_matrix_init_identity = (void (*)(cairo_matrix_t *))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_matrix_init_identity" );
++    mp_matrix_scale = (void (*)(cairo_matrix_t *, double, double))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_matrix_scale" );
++    mp_matrix_rotate = (void (*)(cairo_matrix_t *, double))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_matrix_rotate" );
++    mp_set_font_matrix = (void (*)(cairo_t *, const cairo_matrix_t *))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_font_matrix" );
++    mp_show_glyphs = (void (*)(cairo_t *, const cairo_glyph_t *, int ))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_show_glyphs" );
++    mp_set_source_rgb = (void (*)(cairo_t *, double , double , double ))
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_source_rgb" );
++
++    if( !( 
++            mp_xlib_surface_create_with_xrender_format &&
++            mp_surface_destroy &&
++            mp_create &&
++            mp_destroy &&
++            mp_clip &&
++            mp_rectangle &&
++            mp_ft_font_face_create_for_ft_face &&
++            mp_set_font_face &&
++            mp_font_face_destroy &&
++            mp_matrix_init_identity &&
++            mp_matrix_scale &&
++            mp_matrix_rotate &&
++            mp_set_font_matrix &&
++            mp_show_glyphs &&
++            mp_set_source_rgb
++        ) )
++    {
++        osl_unloadModule( mpCairoLib );
++	mpCairoLib = NULL;
++#if OSL_DEBUG_LEVEL > 1
++        fprintf( stderr, "not all needed symbols were found\n" );
++#endif
++    }
++}
++
++bool CairoWrapper::isCairoRenderable(const ServerFont& rFont)
++{
++    return rFont.GetFtFace() && isValid() && rFont.GetAntialiasAdvice() &&
++        (rFont.NeedsArtificialBold() ? canEmbolden() : true);
++}
++
++} //namespace
++
++CairoFontsCache::LRUFonts CairoFontsCache::maLRUFonts;
++int CairoFontsCache::mnRefCount = 0;
++
++CairoFontsCache::CairoFontsCache()
++{
++    ++mnRefCount;
++}
++
++CairoFontsCache::~CairoFontsCache()
++{
++    --mnRefCount;
++    if (!mnRefCount && !maLRUFonts.empty())
++    {
++        CairoWrapper &rCairo = CairoWrapper::get();
++        LRUFonts::iterator aEnd = maLRUFonts.end();
++        for (LRUFonts::iterator aI = maLRUFonts.begin(); aI != aEnd; ++aI)
++            rCairo.font_face_destroy((cairo_font_face_t*)aI->first);
++    }
++}
++
++void CairoFontsCache::CacheFont(void *pFont, void* pId)
++{
++    maLRUFonts.push_front( std::pair<void*, void *>(pFont, pId) );
++    if (maLRUFonts.size() > 8)
++    {
++        CairoWrapper &rCairo = CairoWrapper::get();
++        rCairo.font_face_destroy((cairo_font_face_t*)maLRUFonts.back().first);
++        maLRUFonts.pop_back();
++    }
++}
++
++void* CairoFontsCache::FindCachedFont(void *pId)
++{
++    LRUFonts::iterator aEnd = maLRUFonts.end();
++    for (LRUFonts::iterator aI = maLRUFonts.begin(); aI != aEnd; ++aI)
++        if (aI->second == pId)
++            return aI->first;
++    return NULL;
++}
++
++void X11SalGraphics::DrawCairoAAFontString( const ServerFontLayout& rLayout )
++{
++    static const int MAXGLYPHS = 160;
++    sal_Int32 aGlyphAry[ MAXGLYPHS ];
++    sal_Int32 aWidthAry[ MAXGLYPHS ];
++    std::vector<cairo_glyph_t> cairo_glyphs;
++    int nMaxGlyphs = rLayout.GetOrientation() ? 1 : MAXGLYPHS;
++
++    Point aPos;
++    int nStart = 0;
++    int nGlyphCount;
++    while ((nGlyphCount = rLayout.GetNextGlyphs(nMaxGlyphs, aGlyphAry, aPos, nStart, aWidthAry)))
++    {
++        long nXPos = aPos.X();
++        long nYPos = aPos.Y();
++        for (int i = 0; i < nGlyphCount; ++i)
++        {
++            cairo_glyph_t aGlyph;
++            aGlyph.index = aGlyphAry[i];
++            aGlyph.x = nXPos;
++            aGlyph.y = nYPos;
++            cairo_glyphs.push_back(aGlyph);
++            nXPos += aWidthAry[i];
++        }
++    }
++
++    if (cairo_glyphs.empty())
++        return;
++
++    // find a XRenderPictFormat compatible with the Drawable
++    XRenderPictFormat* pVisualFormat = static_cast<XRenderPictFormat*>(GetXRenderFormat());
++    if( !pVisualFormat )
++    {
++        Visual* pVisual = GetDisplay()->GetVisual( m_nScreen ).GetVisual();
++        pVisualFormat = XRenderPeer::GetInstance().FindVisualFormat( pVisual );
++        // cache the XRenderPictFormat
++        SetXRenderFormat( static_cast<void*>(pVisualFormat) );
++    }
++
++    DBG_ASSERT( pVisualFormat!=NULL, "no matching XRenderPictFormat for text" );
++    if( !pVisualFormat )
++	    return;
++
++    CairoWrapper &rCairo = CairoWrapper::get();
++
++    Display* pDisplay = GetXDisplay();
++
++    cairo_surface_t *surface = rCairo.xlib_surface_create_with_xrender_format (pDisplay,
++        hDrawable_, DefaultScreenOfDisplay(pDisplay), pVisualFormat, 1, 1);
++
++    /*
++     * It might be ideal to cache surface and cairo context between calls and
++     * only destroy it when the drawable changes, but to do that we need to at
++     * least change the SalFrame etc impls to dtor the SalGraphics *before* the
++     * destruction of the windows they reference
++    */
++    cairo_t *cr = rCairo.create(surface);
++    rCairo.surface_destroy(surface);
++
++    if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) )
++    {
++	for (long i = 0; i < pClipRegion_->numRects; ++i)
++	{
++            rCairo.rectangle(cr, 
++                pClipRegion_->rects[i].x1, 
++                pClipRegion_->rects[i].y1,
++                pClipRegion_->rects[i].x2 - pClipRegion_->rects[i].x1,
++                pClipRegion_->rects[i].y2 - pClipRegion_->rects[i].y1);
++	}
++        rCairo.clip(cr);
++    }
++
++    rCairo.set_source_rgb(cr, 
++        SALCOLOR_RED(nTextColor_)/255.0, 
++        SALCOLOR_GREEN(nTextColor_)/255.0,
++        SALCOLOR_BLUE(nTextColor_)/255.0);
++
++    ServerFont& rFont = rLayout.GetServerFont();
++
++    cairo_font_face_t* font_face = NULL;
++
++    void *pId = rFont.GetFtFace();
++    font_face = (cairo_font_face_t*)m_aCairoFontsCache.FindCachedFont(pId);
++    if (!font_face)
++    {
++        font_face = rCairo.ft_font_face_create_for_ft_face(pId, rFont.GetLoadFlags());
++        m_aCairoFontsCache.CacheFont(font_face, pId);
++    }
++
++    rCairo.set_font_face(cr, font_face);
++
++    cairo_matrix_t m;
++    const ImplFontSelectData& rFSD = rFont.GetFontSelData();
++    int nWidth = rFSD.mnWidth ? rFSD.mnWidth : rFSD.mnHeight;
++
++    rCairo.matrix_init_identity(&m);
++
++    if (rLayout.GetOrientation())
++        rCairo.matrix_rotate(&m, (3600 - rLayout.GetOrientation()) * M_PI / 1800.0);
++
++    rCairo.matrix_scale(&m, nWidth, rFSD.mnHeight);
++    if (rFont.NeedsArtificialItalic())
++        m.xy = -m.xx * 0x6000L / 0x10000L;
++
++    rCairo.set_font_matrix(cr, &m);
++    rCairo.show_glyphs(cr, &cairo_glyphs[0], cairo_glyphs.size());
++    rCairo.destroy(cr);
++}
++
++//--------------------------------------------------------------------------
+ 
+ void X11SalGraphics::DrawServerAAFontString( const ServerFontLayout& rLayout )
+ {
+@@ -1111,15 +1437,20 @@
+     // draw complex text
+     ServerFont& rFont = rLayout.GetServerFont();
+ 
+-    X11GlyphPeer& rGlyphPeer = X11GlyphCache::GetInstance().GetPeer();
+-    if( rGlyphPeer.GetGlyphSet( rFont, m_nScreen ) )
+-        DrawServerAAFontString( rLayout );
++    if (CairoWrapper::get().isCairoRenderable(rFont))
++        DrawCairoAAFontString( rLayout );
++    else
++    {
++        X11GlyphPeer& rGlyphPeer = X11GlyphCache::GetInstance().GetPeer();
++        if( rGlyphPeer.GetGlyphSet( rFont, m_nScreen ) )
++            DrawServerAAFontString( rLayout );
+ #ifndef MACOSX        /* ignore X11 fonts on MACOSX */
+-    else if( !rGlyphPeer.ForcedAntialiasing( rFont, m_nScreen ) )
+-        DrawServerSimpleFontString( rLayout );
++        else if( !rGlyphPeer.ForcedAntialiasing( rFont, m_nScreen ) )
++            DrawServerSimpleFontString( rLayout );
+ #endif // MACOSX
+-    else
+-        DrawServerAAForcedString( rLayout );
++        else
++            DrawServerAAForcedString( rLayout );
++    }
+ }
+ 
+ //--------------------------------------------------------------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/config_office-XINC-XLIB-defaults.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/config_office-XINC-XLIB-defaults.diff
@@ -0,0 +1,32 @@
+--- config_office/configure.in.orig	2007-07-24 20:03:51.000000000 +0200
++++ config_office/configure.in	2007-07-24 21:18:11.000000000 +0200
+@@ -4143,17 +4143,9 @@
+ if test -z "$x_libraries"; then
+    x_libraries="no_x_libraries"
+ fi
+-if test "$x_includes" = "default_x_includes"; then
+-   XINC="/usr/include"
+-else
+-   XINC="$x_includes"
+-fi
++XINC="$x_includes"
++XLIB="$x_libraries"
+ AC_SUBST(XINC)
+-if test "$x_libraries" = "default_x_libraries"; then
+-   XLIB="/usr/lib"
+-else
+-   XLIB="$x_libraries"
+-fi
+ AC_SUBST(XLIB)
+ AC_SUBST(DISABLE_XAW)
+ AC_SUBST(XAU_LIBS)
+@@ -5477,6 +5469,9 @@
+    XINERAMA_LINK=dynamic
+    AC_MSG_RESULT([yes])
+ elif test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
++   if test "$x_libraries" = "default_x_libraries"; then
++      XLIB="/usr/lib"
++   fi
+    if test -e "$XLIB/libXinerama.so" -a -e "$XLIB/libXinerama.a"; then
+       # we have both versions, let the user decide but use the static one
+       # per default
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/msfontextract.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/msfontextract.diff
@@ -0,0 +1,17 @@
+--- msfontextract/msfontextract.patch.mrl	2007-12-17 15:33:33.000000000 -0200
++++ msfontextract/msfontextract.patch	2007-12-17 15:34:39.000000000 -0200
+@@ -288,3 +288,14 @@
+ + #endif
+   
+   #endif
++--- misc/libmspack/mspack/cabd.c.mrl	2007-12-17 15:33:13.000000000 -0200
+++++ misc/build/libmspack/mspack/cabd.c	2007-12-17 14:50:01.000000000 -0200
++@@ -652,7 +652,7 @@ static int cabd_find(struct mscab_decomp
++     }
++ 
++     /* FAQ avoidance strategy */
++-    if ((offset == 0) && (EndGetI32(p) == 0x28635349)) {
+++    if ((offset == 0) && (EndGetI32(&buf[0]) == 0x28635349)) {
++       sys->message(fh, "WARNING; found InstallShield header. "
++ 		   "This is probably an InstallShield file. "
++ 		   "Use UNSHIELD (http://synce.sf.net) to unpack it.");
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/palette-enhanced-arrow.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/palette-enhanced-arrow.diff
@@ -0,0 +1,40 @@
+--- extras/source/palettes/standard.soe.old	2001-05-15 13:11:29.000000000 +0200
++++ extras/source/palettes/standard.soe	2007-09-22 23:17:11.000000000 +0200
+@@ -1,6 +1,23 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ 
+-<office:marker-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
++<office:marker-table xmlns:office="http://openoffice.org/2000/office"
++xmlns:style="http://openoffice.org/2000/style"
++xmlns:text="http://openoffice.org/2000/text"
++xmlns:table="http://openoffice.org/2000/table"
++xmlns:draw="http://openoffice.org/2000/drawing"
++xmlns:fo="http://www.w3.org/1999/XSL/Format"
++xmlns:xlink="http://www.w3.org/1999/xlink"
++xmlns:dc="http://purl.org/dc/elements/1.1/"
++xmlns:meta="http://openoffice.org/2000/meta"
++xmlns:number="http://openoffice.org/2000/datastyle"
++xmlns:svg="http://www.w3.org/2000/svg"
++xmlns:chart="http://openoffice.org/2000/chart"
++xmlns:dr3d="http://openoffice.org/2000/dr3d"
++xmlns:math="http://www.w3.org/1998/Math/MathML"
++xmlns:form="http://openoffice.org/2000/form"
++xmlns:script="http://openoffice.org/2000/script">
++
++<!-- Arrows of original OpenOffice.org located in standard.soe file -->
+  <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="m10 0-10 30h20"/>
+  <draw:marker draw:name="Square" svg:viewBox="0 0 10 10" svg:d="m0 0h10v10h-10"/>
+  <draw:marker draw:name="Small Arrow" svg:viewBox="0 0 1321 3493" svg:d="m1321 3493h-1321l702-3493z"/>
+@@ -13,4 +30,12 @@
+  <draw:marker draw:name="Circle" svg:viewBox="0 0 1131 1131" svg:d="m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z"/>
+  <draw:marker draw:name="Square 45" svg:viewBox="0 0 1131 1131" svg:d="m0 564 564 567 567-567-567-564z"/>
+  <draw:marker draw:name="Arrow concave" svg:viewBox="0 0 1131 1580" svg:d="m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z"/>
++
++<!-- General Arrow Container --> 
++ <draw:marker draw:name="Hexagonal" svg:viewBox="0 0 1271 636" svg:d="m317 0c212 0 424 0 636 0 106 106 212 212 318 318-106 106-212 212-318 318-212 0-424 0-636 0-106-106-211-212-317-318 106-106 211-212 317-318z"/>
++ <draw:marker draw:name="Arrow 2" svg:viewBox="0 0 1270 4445" svg:d="m1270 4445-635-4445-635 4445z"/>
++ <draw:marker draw:name="Arrow 3" svg:viewBox="0 0 101 200" svg:d="m50 0c17 67 34 133 51 200-34 0-67 0-101 0 17-67 33-133 50-200z"/>
++ <draw:marker draw:name="Spear" svg:viewBox="0 0 51 301" svg:d="m25 0c9 100 17 201 26 301-17 0-34 0-51 0 8-100 17-201 25-301z"/>
++ <draw:marker draw:name="Stumpy" svg:viewBox="0 0 636 636" svg:d="m636 636c-212 0-424 0-636 0 53-212 106-424 159-636 106 0 212 0 318 0 53 212 106 424 159 636z"/>
++ <draw:marker draw:name="Lined" svg:viewBox="0 0 1271 311" svg:d="m1271 311c0-156 0-311 0-311-424 0-847 0-1271 0 0 104 0 155 0 311 0 0 0 0 1271 0z"/>
+ </office:marker-table>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wizards-path.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wizards-path.diff
@@ -0,0 +1,22 @@
+--- wizards/source/launcher/FontOOo.xba.path	2007-10-18 16:08:57.000000000 -0200
++++ wizards/source/launcher/FontOOo.xba	2007-10-18 16:09:16.000000000 -0200
+@@ -15,7 +15,7 @@ on error resume next
+ &apos; Find path
+ aService = CreateUnoService(&quot;com.sun.star.util.PathSubstitution&quot;)
+ ThePath =ConvertToURL(aService.substituteVariables(&quot;$(prog)&quot;, true))
+-ThePath=ThePath &amp; &quot;/../share/dict/ooo&quot;
++ThePath=ThePath &amp; &quot;/../share/dict&quot;
+ 
+ if  fileExists(ThePath &amp; &quot;/FontOOo.lst&quot;) then
+ &apos;read FontOOo.lst file
+--- wizards/source/launcher/DicOOo.xba.path	2007-10-18 16:08:54.000000000 -0200
++++ wizards/source/launcher/DicOOo.xba	2007-10-18 16:09:09.000000000 -0200
+@@ -18,7 +18,7 @@ aService = CreateUnoService(&quot;com.su
+ ThePath =ConvertToURL(aService.substituteVariables(&quot;$(user)&quot;, true))
+ ThePath=ThePath &amp; &quot;/wordbook&quot;
+ DefPath =ConvertToURL(aService.substituteVariables(&quot;$(prog)&quot;, true))
+-DefPath=DefPath &amp; &quot;/../share/dict/ooo&quot;
++DefPath=DefPath &amp; &quot;/../share/dict&quot;
+ 
+ MyDicOOo=&quot;&quot;
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/reduced-disable-auto-spellcheck.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/reduced-disable-auto-spellcheck.diff
@@ -0,0 +1,11 @@
+--- officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs	2007-09-01 10:02:31.000000000 +0200
++++ officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs	2007-09-01 10:03:11.000000000 +0200
+@@ -263,7 +263,7 @@
+ 					<desc>Checks spelling automatically.</desc>
+ 					<label>Automatic spellchecking</label>
+ 				</info>
+-				<value>true</value>
++				<value>false</value>
+ 			</prop>
+ 			<prop oor:name="IsSpellSpecial" oor:type="xs:boolean">
+ 				<!-- OldPath: MiscOptions / SpellOptions -->
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/offapi-field-patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/offapi-field-patch.diff
@@ -0,0 +1,41 @@
+--- /dev/null
++++ offapi/com/sun/star/text/XFormField.idl	Sat Jan 19 13:02:10 2008
+@@ -0,0 +1,24 @@
++ #ifndef __com_sun_star_text_XFormField_idl__
++ #define __com_sun_star_text_XFormField_idl__
++ 
++ #ifndef __com_sun_star_uno_XInterface_idl__
++ #include <com/sun/star/uno/XInterface.idl>
++ #endif
++ 
++ module com {  module sun {  module star {  module text { 
++ 
++ interface XFormField: com::sun::star::uno::XInterface
++ {
++ 	short getType();
++ 	short getRes();
++ 	string getDescription( ); 	
++ 
++ 	void setType([in] short fieldType );
++ 	void setRes([in] short res );
++ 	void setDescription([in] string description );
++ 
++ };
++ 
++ }; }; }; }; 
++ 
++ #endif
+diff --git a/offapi/com/sun/star/text/makefile.mk b/offapi/com/sun/star/text/makefile.mk
+index 31d1337..6367eb9 100644
+--- offapi/com/sun/star/text/makefile.mk
++++ offapi/com/sun/star/text/makefile.mk
+@@ -266,7 +266,8 @@ IDLFILES=\
+     XTextContentAppend.idl \
+     XTextConvert.idl \
+     XTextAppendAndConvert.idl \
+-    XTextAppend.idl 
++    XTextAppend.idl \
++    XFormField.idl
+     
+ 
+ # ------------------------------------------------------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-scp2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-scp2.diff
@@ -0,0 +1,17 @@
+Index: scp2/source/ooo/file_library_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
+retrieving revision 1.262
+retrieving revision 1.255.18.3
+diff -u -p -u -p -r1.262 -r1.255.18.3
+--- scp2/source/ooo/file_library_ooo.scp	25 Oct 2007 16:05:14 -0000	1.262
++++ scp2/source/ooo/file_library_ooo.scp	30 Oct 2007 15:15:01 -0000	1.255.18.3
+@@ -2496,7 +2496,7 @@ End
+ #endif
+ 
+ // AVMedia
+-STD_LIB_FILE_PATCH( gid_File_Lib_AVMedia, avmedia )
++STD_UNO_LIB_FILE_PATCH( gid_File_Lib_AVMedia, avmedia )
+ 
+ #if defined UNX
+ #ifdef SOLAR_JAVA
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-canvas.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-canvas.diff
@@ -0,0 +1,4 @@
+--- canvas/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ canvas/prj/tests.lst	2007-09-07 13:01:23.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: cv   canvas\workben                                     nmake - all cv_workben NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-openformula-minmax.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-openformula-minmax.diff
@@ -0,0 +1,84 @@
+Index: sc/source/core/tool/interpr1.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/tool/interpr1.cxx,v
+retrieving revision 1.53
+diff -u -r1.53 interpr1.cxx
+--- sc/source/core/tool/interpr1.cxx	1 Nov 2007 16:23:17 -0000	1.53
++++ sc/source/core/tool/interpr1.cxx	8 Jan 2008 17:17:34 -0000
+@@ -2768,7 +2768,9 @@
+ void ScInterpreter::ScMin( BOOL bTextAsZero )
+ {
+ 	BYTE nParamCount = GetByte();
+-	double nMin = SC_DOUBLE_MAXVALUE;
++    if (!MustHaveParamCountMin( nParamCount, 1))
++        return;
++    double nMin = ::std::numeric_limits<double>::max();
+ 	double nVal = 0.0;
+ 	ScAddress aAdr;
+ 	ScRange aRange;
+@@ -2805,18 +2807,18 @@
+ 				USHORT nErr = 0;
+ 				PopDoubleRef( aRange );
+ 				ScValueIterator aValIter( pDok, aRange, glSubTotal, bTextAsZero );
+-				if (aValIter.GetFirst(nVal, nErr))
+-				{
+-					if (nMin > nVal)
+-						nMin = nVal;
+-					aValIter.GetCurNumFmtInfo( nFuncFmtType, nFuncFmtIndex );
+-					while ((nErr == 0) && aValIter.GetNext(nVal, nErr))
+-					{
+-						if (nMin > nVal)
+-							nMin = nVal;
+-					}
+-					SetError(nErr);
+-				}
++                if (aValIter.GetFirst(nVal, nErr))
++                {
++                    if (nMin > nVal)
++                        nMin = nVal;
++                    aValIter.GetCurNumFmtInfo( nFuncFmtType, nFuncFmtIndex );
++                    while ((nErr == 0) && aValIter.GetNext(nVal, nErr))
++                    {
++                        if (nMin > nVal)
++                            nMin = nVal;
++                    }
++                    SetError(nErr);
++                }
+ 			}
+ 			break;
+ 			case svMatrix :
+@@ -2875,9 +2877,9 @@
+ 				SetError(errIllegalParameter);
+ 		}
+ 	}
+-	if (nMin == SC_DOUBLE_MAXVALUE)
+-		SetIllegalArgument();
+-	else
++	if ( nVal < nMin  )
++		PushDouble(0.0);
++	else		
+ 		PushDouble(nMin);
+ }
+ 
+@@ -2888,7 +2890,9 @@
+ void ScInterpreter::ScMax( BOOL bTextAsZero )
+ {
+ 	BYTE nParamCount = GetByte();
+-	double nMax = -SC_DOUBLE_MAXVALUE;
++    if (!MustHaveParamCountMin( nParamCount, 1))
++        return;
++    double nMax = -(::std::numeric_limits<double>::max());
+ 	double nVal = 0.0;
+ 	ScAddress aAdr;
+ 	ScRange aRange;
+@@ -2995,8 +2999,8 @@
+ 				SetError(errIllegalParameter);
+ 		}
+ 	}
+-	if (nMax == -SC_DOUBLE_MAXVALUE)
+-		SetIllegalArgument();
++    if ( nVal > nMax  )
++        PushDouble(0.0);
+ 	else
+ 		PushDouble(nMax);
+ }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-local-link-except.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-local-link-except.diff
@@ -0,0 +1,266 @@
+--- /dev/null
++++ cppu/source/except/except.cxx
+@@ -0,0 +1,15 @@
++#include <sal/config.h>
++#include <cppu/macros.hxx>
++#include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/uno/Reference.hxx>
++
++// We don't want to hide all this shared goodness:
++#undef CPPU_GCC_DLLPUBLIC_EXPORT
++#define CPPU_GCC_DLLPUBLIC_EXPORT 
++#undef CPPU_GCC_DLLPRIVATE
++#define CPPU_GCC_DLLPRIVATE 
++
++#define CPPU_INTERNAL_IMPL 1 
++
++#include <linking_catch.hxx>
++
+
+
+--- /dev/null	2006-03-11 13:25:00.000000000 +0000
++++ cppu/source/except/makefile.mk	2006-03-17 11:44:41.000000000 +0000
+@@ -0,0 +1,21 @@
++# --- Settings -----------------------------------------------------
++
++PRJ=..$/..
++
++PRJNAME=cppu
++TARGET=unotypes
++ENABLE_EXCEPTIONS=TRUE
++
++.INCLUDE :  settings.mk
++
++LIB1TARGET= $(SLB)$/$(TARGET).lib
++LIB1OBJFILES= $(SLO)$/except.obj
++
++SHL1TARGET=exlink$(UPD)$(DLLPOSTFIX)
++SHL1LIBS=$(LIB1TARGET)
++SHL1STDLIBS= $(SALLIB) $(SALHELPERLIB) $(REGLIB) $(CPPULIB)
++
++# --- Targets -------------------------------------------------------
++
++.INCLUDE :  target.mk
++
+
+
+--- cppu/prj/build.lst      2007-05-09 14:35:41.000000000 +0100
++++ cppu/prj/build.lst  2007-07-09 14:13:10.000000000 +0100
+@@ -8,4 +8,5 @@
+ cu     cppu\source\helper\purpenv              nmake   -       all     cu_helper_purpenv cu_inc NULL
+ cu     cppu\source\UnsafeBridge            nmake       -       all     cu_UnsafeBridge cu_inc NULL
+ cu     cppu\source\AffineBridge            nmake       -       all     cu_AffineBridge cu_inc NULL
+-cu     cppu\util                                               nmake   -       all     cu_util cu_thpool cu_typelib cu_cppu cu_uno cu_helper_purpenv cu_UnsafeBridge cu_AffineBridge NULL
++cu     cppu\util                                               nmake   -       all     cu_util cu_thpool cu_typelib cu_cppu cu_uno cu_helper_purpenv cu_UnsafeBridge cu_AffineBridge NULL
++cu     cppu\source\except                      nmake   -       all cu_except cu_util NULL
+
+
+ diff -u -p -r1.19 d.lst
+--- cppu/prj/d.lst      9 May 2007 13:35:55 -0000       1.19
++++ cppu/prj/d.lst      9 Jul 2007 11:21:58 -0000
+@@ -56,6 +56,7 @@ mkdir: %_DEST%\inc%_EXT%\uno
+ ..\%__SRC%\lib\icppu.lib %_DEST%\lib%_EXT%\icppu.lib
+ ..\%__SRC%\bin\cppu* %_DEST%\bin%_EXT%\*
+ ..\%__SRC%\lib\libuno_cppu.*.* %_DEST%\lib%_EXT%\*
++..\%__SRC%\lib\libexlink* %_DEST%\lib%_EXT%\*
+ 
+ ..\%__SRC%\lib\ipurpenvhelper*        %_DEST%\lib%_EXT%\*
+ ..\%__SRC%\bin\purpenvhelper*.dll     %_DEST%\bin%_EXT%\*
+
+
+Index: scp2/source/ooo/file_library_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
+retrieving revision 1.184.2.2
+diff -u -p -u -r1.184.2.2 file_library_ooo.scp
+--- scp2/source/ooo/file_library_ooo.scp	17 Feb 2006 16:52:02 -0000	1.184.2.2
++++ scp2/source/ooo/file_library_ooo.scp	3 Apr 2006 10:13:58 -0000
+@@ -468,6 +490,15 @@ STD_UNO_LIB_FILE( gid_File_Lib_Ctl , ctl
+ 
+ STD_LIB_FILE_PATCH( gid_File_Lib_Cui, cui)
+ 
++#ifdef LINUX
++File gid_File_Lib_ExLib
++    TXT_FILE_BODY;
++    Styles = (PACKED,PATCH);
++    Dir = gid_Dir_Program;
++    Name = LIBNAME(exlink);
++End
++#endif
++
+ #ifndef SYSTEM_CURL
+ 
+ File gid_File_Lib_Curl
+
+
+diff -u -p -u -r1.7 makefile.mk
+--- offuh/source/makefile.mk	8 Sep 2005 15:51:01 -0000	1.7
++++ offuh/source/makefile.mk	12 Apr 2006 14:48:09 -0000
+@@ -45,7 +45,7 @@ TARGET=		offuh
+ 
+ $(MISC)$/$(TARGET).don : $(UNOUCRRDB)
+ 	@@-$(RM) $@
+-	$(CPPUMAKER) -Gc $(CPPUMAKERFLAGS) -B$(UNOUCRBASE) -O$(UNOUCROUT) $(UNOUCRRDB) && echo > $@
++	$(CPPUMAKER) -E$(UNOUCROUT)/linking_catch.hxx -Gc $(CPPUMAKERFLAGS) -B$(UNOUCRBASE) -O$(UNOUCROUT) $(UNOUCRRDB) && echo > $@
+ 
+ # --- Targets ------------------------------------------------------
+ 
+
+Index: offuh/prj/d.lst
+===================================================================
+RCS file: /cvs/api/offuh/prj/d.lst,v
+retrieving revision 1.59
+diff -u -p -u -r1.59 d.lst
+--- offuh/prj/d.lst     9 Jun 2005 14:54:16 -0000       1.59
++++ offuh/prj/d.lst     3 Apr 2006 09:56:29 -0000
+@@ -319,6 +326,9 @@ mkdir: %_DEST%\inc%_EXT%\com\sun\star\xm
+ 
+ ..\%__SRC%\inc\offuh\com\sun\star\script\browse\*.hpp %_DEST%\inc%_EXT%\offuh\com\sun\star\script\browse\*.hpp
+ ..\%__SRC%\inc\offuh\com\sun\star\script\browse\*.hdl %_DEST%\inc%_EXT%\offuh\com\sun\star\script\browse\*.hdl
++
++..\%__SRC%\inc\offuh\linking_catch.hxx %_DEST%\inc%_EXT%\offuh\linking_catch.hxx
++
+ ..\%__SRC%\inc\offuh\com\sun\star\script\provider\*.hpp %_DEST%\inc%_EXT%\offuh\com\sun\star\script\provider\*.hpp
+ ..\%__SRC%\inc\offuh\com\sun\star\script\provider\*.hdl %_DEST%\inc%_EXT%\offuh\com\sun\star\script\provider\*.hdl
+ 
+
+Index: codemaker/source/cppumaker/cppumaker.cxx
+===================================================================
+RCS file: /cvs/udk/codemaker/source/cppumaker/cppumaker.cxx,v
+retrieving revision 1.8
+diff -u -p -u -r1.8 cppumaker.cxx
+--- codemaker/source/cppumaker/cppumaker.cxx	8 Sep 2005 02:11:34 -0000	1.8
++++ codemaker/source/cppumaker/cppumaker.cxx	12 Apr 2006 14:47:29 -0000
+@@ -39,6 +39,7 @@
+ 
+ #include "codemaker/typemanager.hxx"
+ #include "codemaker/generatedtypeset.hxx"
++#include "codemaker/commoncpp.hxx"
+ 
+ #include "cppuoptions.hxx"
+ #include "cpputype.hxx"
+@@ -245,6 +245,43 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
+ 		exit(99);
+ 	}
+ 
++	if (!aExceptionTypeNames.empty() && options.isValid("-E"))
++	{
++		OString outFile = options.getOption("-E");
++		FILE *excepts = fopen (outFile, "w+");
++		if (!excepts)
++		{
++			fprintf(stderr, "%s ERROR: cannot open '%s'\n",
++					options.getProgramName().getStr(), outFile.getStr());
++			exit(98);
++		}
++		fprintf (excepts, "// This file is autogenerated by cppumaker\n");
++		fprintf (excepts, "// include exception headers\n");
++
++		::std::list<rtl::OString>::const_iterator iter;
++
++		for (iter = aExceptionTypeNames.begin();
++			 iter != aExceptionTypeNames.end(); iter++)
++		{
++			rtl::OString aStr = *iter;
++			fprintf (excepts, "#include <%s.hpp>\n", aStr.getStr());
++		}
++	
++		fprintf (excepts, "// dummy method\n");
++		fprintf (excepts, "extern void force_emit ()\n");
++		fprintf (excepts, "{\n");
++		for (iter = aExceptionTypeNames.begin();
++			 iter != aExceptionTypeNames.end(); iter++) {
++			fprintf (excepts, "    try {\n");
++			fprintf (excepts, "        force_emit ();\n");
++			fprintf (excepts, "    }\n");
++			OString aStr = codemaker::cpp::scopedCppName (*iter);
++			fprintf (excepts, "catch (const %s &r) {} \n", aStr.getStr());
++		}
++		fprintf (excepts, "}\n\n");
++		fclose (excepts);
++	}
++
+ 	return 0;
+ }
+ 
+Index: codemaker/source/cppumaker/cppuoptions.cxx
+===================================================================
+RCS file: /cvs/udk/codemaker/source/cppumaker/cppuoptions.cxx,v
+retrieving revision 1.9
+diff -u -p -u -r1.9 cppuoptions.cxx
+--- codemaker/source/cppumaker/cppuoptions.cxx	8 Sep 2005 02:11:54 -0000	1.9
++++ codemaker/source/cppumaker/cppuoptions.cxx	12 Apr 2006 14:47:29 -0000
+@@ -71,6 +71,9 @@ sal_Bool CppuOptions::initOptions(int ac
+ 		{
+ 			switch (av[i][1])
+ 			{
++				case 'E':
++					m_options["-E"] = OString(av[i] + 2);
++					break;
+ 				case 'O':
+ 					if (av[i][2] == '\0')
+ 					{
+@@ -335,6 +338,7 @@ OString	CppuOptions::prepareHelp()
+ 	help += "    -G         = generate only target files which does not exists.\n";
+ 	help += "    -Gc        = generate only target files which content will be changed.\n";
+ 	help += "    -X<file>   = extra types which will not be taken into account for generation.\n";
++	help += "    -E<file>   = generate exception type library for faster Linux linking.\n";
+ 	help += prepareVersion();
+ 	
+ 	return help;
+Index: codemaker/source/cppumaker/cpputype.cxx
+===================================================================
+RCS file: /cvs/udk/codemaker/source/cppumaker/cpputype.cxx,v
+retrieving revision 1.37
+diff -u -p -u -r1.37 cpputype.cxx
+--- codemaker/source/cppumaker/cpputype.cxx	26 Jan 2006 17:42:38 -0000	1.37
++++ codemaker/source/cppumaker/cpputype.cxx	12 Apr 2006 14:47:30 -0000
+@@ -56,7 +56,9 @@
+ 
+ using namespace rtl;
+ using namespace codemaker::cpp;
+ 
++::std::list<rtl::OString> aExceptionTypeNames;
++
+ namespace {
+ 
+ rtl::OString translateSimpleUnoType(rtl::OString const & unoType) {
+@@ -3265,6 +3267,13 @@ sal_Bool ExceptionType::dumpHFile(
+ 	return sal_True;
+ }
+ 
++bool
++ExceptionType::dumpFiles(CppuOptions * options, rtl::OString const & outPath)
++{
++	aExceptionTypeNames.push_back(m_typeName);
++	return CppuType::dumpFiles(options, outPath);
++}
++
+ sal_Bool ExceptionType::dumpDeclaration(FileStream& o)
+ 	throw( CannotDumpException )
+ {
+Index: codemaker/source/cppumaker/cpputype.hxx
+===================================================================
+RCS file: /cvs/udk/codemaker/source/cppumaker/cpputype.hxx,v
+retrieving revision 1.9
+diff -u -p -u -r1.9 cpputype.hxx
+--- codemaker/source/cppumaker/cpputype.hxx	10 Jan 2006 15:46:47 -0000	1.9
++++ codemaker/source/cppumaker/cpputype.hxx	12 Apr 2006 14:47:30 -0000
+@@ -61,6 +61,9 @@ enum CppuTypeDecl
+ class CppuOptions;
+ class FileStream;
+ 
++#include <list>
++extern ::std::list<rtl::OString> aExceptionTypeNames;
++
+ class CppuType
+ {
+ public:
+@@ -300,6 +303,7 @@ public:
+ 
+ 	virtual ~ExceptionType();
+ 
++    bool        dumpFiles(CppuOptions * options, rtl::OString const & outPath);
+ 	sal_Bool	dumpDeclaration(FileStream& o) throw( CannotDumpException );
+ 	sal_Bool	dumpHFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
+ 	sal_Bool	dumpHxxFile(FileStream& o, codemaker::cppumaker::Includes & includes) throw( CannotDumpException );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cairo-canvas-use-window-screen.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cairo-canvas-use-window-screen.diff
@@ -0,0 +1,55 @@
+diff -rup canvas/source/cairo-orig/cairo_cairo.cxx canvas/source/cairo/cairo_cairo.cxx
+--- canvas/source/cairo-orig/cairo_cairo.cxx	2008-04-28 18:00:30.000000000 +0200
++++ canvas/source/cairo/cairo_cairo.cxx	2008-04-28 18:10:30.000000000 +0200
+@@ -353,7 +353,7 @@ namespace cairo
+ 
+ 			return new Surface( mpSysData, mpDisplay, (long) hPixmap, pFormat,
+ 								cairo_xlib_surface_create_with_xrender_format( (Display*) mpDisplay, hPixmap,
+-																			   DefaultScreenOfDisplay( (Display *) mpDisplay ),
++																			   (Screen*) cairoHelperGetScreen( mpSysData ),
+ 																			   pFormat, width, height ) );
+ 		} else
+ 			return new Surface( mpSysData, mpDisplay, 0, NULL, cairo_surface_create_similar( mpSurface, aContent, width, height ) );
+diff -rup canvas/source/cairo-orig/cairo_helper.cxx canvas/source/cairo/cairo_helper.cxx
+--- canvas/source/cairo-orig/cairo_helper.cxx	2008-04-28 18:00:30.000000000 +0200
++++ canvas/source/cairo/cairo_helper.cxx	2008-04-28 18:11:31.000000000 +0200
+@@ -57,13 +57,19 @@ namespace cairo {
+ #endif
+ }
+ 
++#include "cairo_helper.hxx"
++
+ using namespace ::cairo;
+ 
+ //#define OOO_CANVAS_GLITZ 1
+ 
+-int cairoHelperGetDefaultScreen( void* display )
++void* cairoHelperGetScreen( const void* pSysData )
+ {
+-    return DefaultScreen( ( (Display *) display ) );
++    XWindowAttributes aWA;
++
++    XGetWindowAttributes( (::cairo::Display*) cairoHelperGetDisplay( pSysData ), cairoHelperGetWindow( pSysData ), &aWA );
++
++    return aWA.screen;
+ }
+ 
+ void*
+@@ -74,7 +80,7 @@ cairoHelperGetGlitzDrawable( const Syste
+     Display* display = (Display*) pSysData->pDisplay;
+     ::cairo::Window window = pSysData->aWindow;
+     VisualID vid = XVisualIDFromVisual( (Visual*) pSysData->pVisual );
+-    int screen = DefaultScreen( display );
++    int screen = cairoHelperGetScreen( pSysData );
+ 
+     glitz_drawable_t *pDrawable = NULL;
+     glitz_format_t* pFormat = NULL;
+diff -rup canvas/source/cairo-orig/cairo_helper.hxx canvas/source/cairo/cairo_helper.hxx
+--- canvas/source/cairo-orig/cairo_helper.hxx	2008-04-28 18:00:30.000000000 +0200
++++ canvas/source/cairo/cairo_helper.hxx	2008-04-28 18:10:10.000000000 +0200
+@@ -1,4 +1,4 @@
+-int   cairoHelperGetDefaultScreen( void* display );
++void* cairoHelperGetScreen( const void* pSysData );
+ void* cairoHelperGetGlitzDrawable( const void* pSysData, int width, int height );
+ void* cairoHelperGetGlitzSurface( const void* pSysData, void *drawable, int x, int y, int width, int height );
+ void* cairoHelperGetSurface( const void* pSysData, int x, int y, int width, int height );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-cifs-locking.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-cifs-locking.diff
@@ -0,0 +1,66 @@
+diff --git a/sal/inc/osl/file.h b/sal/inc/osl/file.h
+index cf8286f..abe3816 100644
+--- sal/inc/osl/file.h
++++ sal/inc/osl/file.h
+@@ -149,6 +149,7 @@ typedef enum {
+ 	osl_File_E_USERS,
+ 	osl_File_E_OVERFLOW,
+ 	osl_File_E_NOTREADY,
++	osl_File_E_TXTBSY,
+ 	osl_File_E_invalidError,		/* unmapped error: always last entry in enum! */
+     osl_File_E_TIMEDOUT,
+ 	osl_File_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
+diff --git a/sal/inc/osl/file.hxx b/sal/inc/osl/file.hxx
+index 7e228f9..27dd926 100644
+--- sal/inc/osl/file.hxx
++++ sal/inc/osl/file.hxx
+@@ -122,6 +122,7 @@ public:
+ 		E_USERS        = osl_File_E_USERS,
+ 		E_OVERFLOW     = osl_File_E_OVERFLOW,
+ 		E_NOTREADY     = osl_File_E_NOTREADY,
++		E_TXTBSY       = osl_File_E_TXTBSY,
+ 		E_invalidError = osl_File_E_invalidError,	/* unmapped error: always last entry in enum! */
+         E_TIMEDOUT     = osl_File_E_TIMEDOUT
+ 	};
+diff --git a/sal/osl/unx/file_error_transl.cxx b/sal/osl/unx/file_error_transl.cxx
+index cd4788d..95340ae 100644
+--- sal/osl/unx/file_error_transl.cxx
++++ sal/osl/unx/file_error_transl.cxx
+@@ -252,6 +252,10 @@ oslFileError oslTranslateFileError(sal_Bool bIsError, int Errno)
+             osl_error = osl_File_E_TIMEDOUT;
+             break;
+         
++        case ETXTBSY:
++            osl_error = osl_File_E_TXTBSY;
++            break;
++
+         default:
+             /* FIXME translateFileError: is this alright? Or add a new one: osl_File_E_Unknown? */
+             osl_error = osl_File_E_invalidError;
+diff --git a/ucb/source/ucp/file/filglob.cxx b/ucb/source/ucp/file/filglob.cxx
+index 17e5e72..c383214 100644
+--- ucb/source/ucp/file/filglob.cxx
++++ ucb/source/ucp/file/filglob.cxx
+@@ -490,17 +490,13 @@ namespace fileaccess {
+ 					// not enough memory for allocating structures 
+ 					ioErrorCode = IOErrorCode_OUT_OF_MEMORY;
+ 					break;
+-				case FileBase::E_BUSY:
+-					// Text file busy
+-					ioErrorCode = IOErrorCode_LOCKING_VIOLATION;
+-					break;
+-                case FileBase::E_AGAIN:
+-					// Operation would block
++
++				case FileBase::E_BUSY:  // Text file busy
++				case FileBase::E_AGAIN: // Operation would block
++				case FileBase::E_NOLCK: // No record locks available
++				case FileBase::E_TXTBSY:// Text file busy
+ 					ioErrorCode = IOErrorCode_LOCKING_VIOLATION;
+ 					break;
+-				case FileBase::E_NOLCK:  // No record locks available
+-                    ioErrorCode = IOErrorCode_LOCKING_VIOLATION;
+-                    break;
+ 
+ 				case FileBase::E_FAULT: // Bad address
+ 				case FileBase::E_LOOP:	// Too many symbolic links encountered
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unxsplash-new-osl-pipe-slot.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unxsplash-new-osl-pipe-slot.diff
@@ -0,0 +1,14 @@
+diff --git desktop/unx/source/start.c desktop/unx/source/start.c
+index 95435a3..f7b762e 100644
+--- desktop/unx/source/start.c
++++ desktop/unx/source/start.c
+@@ -331,7 +331,8 @@ send_args( int fd, rtl_uString *pCwdPath )
+ 
+         // this is not a param, we have to prepend filenames with file://
+         // FIXME: improve the check
+-        if ( pTmp->buffer[0] != (sal_Unicode)'-' )
++        if ( ( pTmp->buffer[0] != (sal_Unicode)'-' ) &&
++             ( rtl_ustr_indexOfAscii_WithLength( pTmp->buffer, pTmp->length, "slot:", 5 /* length */ ) ) )
+         {
+             sal_Int32 nFirstColon = rtl_ustr_indexOfChar_WithLength( pTmp->buffer, pTmp->length, ':' );
+             sal_Int32 nFirstSlash = rtl_ustr_indexOfChar_WithLength( pTmp->buffer, pTmp->length, '/' );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/split-binfilter-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/split-binfilter-filter.diff
@@ -0,0 +1,957 @@
+--- filter/source/config/fragments/fcfg_calc.mk.old	2007-07-17 21:12:07.000000000 +0200
++++ filter/source/config/fragments/fcfg_calc.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,27 +1,5 @@
+ all_fragments+=calc
+ 
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_CALC_BINFILTER = \
+-	calc_StarCalc_10 \
+-	calc_StarCalc_30 \
+-	calc_StarCalc_30_VorlageTemplate \
+-	calc_StarCalc_40 \
+-	calc_StarCalc_40_VorlageTemplate \
+-	calc_StarCalc_50 \
+-	calc_StarCalc_50_VorlageTemplate
+-F4_CALC_BINFILTER = \
+-	StarCalc_1_0 \
+-	StarCalc_3_0 \
+-	StarCalc_3_0_Vorlage_Template \
+-	StarCalc_4_0 \
+-	StarCalc_4_0_Vorlage_Template \
+-	StarCalc_5_0 \
+-	StarCalc_5_0_Vorlage_Template
+-.ELSE
+-T4_CALC_BINFILTER =
+-F4_CALC_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+ # count = 27
+ T4_CALC = \
+@@ -39,7 +17,6 @@ T4_CALC = \
+ 	calc_MS_Excel_97_VorlageTemplate \
+ 	writer_Rich_Text_Format \
+ 	calc_SYLK \
+-	$(T4_CALC_BINFILTER) \
+ 	calc_StarOffice_XML_Calc \
+ 	calc_Text_txt_csv_StarCalc \
+ 	calc_StarOffice_XML_Calc_Template \
+@@ -68,7 +45,6 @@ F4_CALC = \
+ 	MS_Excel_97_Vorlage_Template \
+ 	Rich_Text_Format__StarCalc_ \
+ 	SYLK \
+-	$(F4_CALC_BINFILTER) \
+ 	StarOffice_XML__Calc_ \
+ 	Text___txt___csv__StarCalc_ \
+ 	calc_HTML_WebQuery \
+@@ -82,16 +58,13 @@ F4_CALC = \
+ 	calc_MS_Excel_2007_XML_Template
+ 
+ # -----------------------------------------------
+-# count = 14
++# count = 12
+ F4_UI_CALC = \
+ 	HTML__StarCalc__ui \
+ 	MS_Excel_4_0_Vorlage_Template_ui \
+ 	MS_Excel_5_0_95_Vorlage_Template_ui \
+ 	MS_Excel_95_Vorlage_Template_ui \
+ 	MS_Excel_97_Vorlage_Template_ui \
+-	StarCalc_3_0_Vorlage_Template_ui \
+-	StarCalc_4_0_Vorlage_Template_ui \
+-	StarCalc_5_0_Vorlage_Template_ui \
+ 	StarOffice_XML__Calc__ui \
+ 	Text___txt___csv__StarCalc__ui \
+ 	calc_HTML_WebQuery_ui \
+--- filter/source/config/fragments/fcfg_calc_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_calc_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,59 @@
++all_fragments+=calc_bf
++
++# -----------------------------------------------
++# count = 7
++T4_CALC_BF = \
++    calc_StarCalc_10 \
++    calc_StarCalc_30 \
++    calc_StarCalc_30_VorlageTemplate \
++    calc_StarCalc_40 \
++    calc_StarCalc_40_VorlageTemplate \
++    calc_StarCalc_50 \
++    calc_StarCalc_50_VorlageTemplate
++
++# -----------------------------------------------
++# count = 7
++F4_CALC_BF = \
++	StarCalc_1_0 \
++	StarCalc_3_0 \
++	StarCalc_3_0_Vorlage_Template \
++    StarCalc_4_0 \
++    StarCalc_4_0_Vorlage_Template \
++	StarCalc_5_0 \
++	StarCalc_5_0_Vorlage_Template
++
++# -----------------------------------------------
++# count = 3
++F4_UI_CALC_BF = \
++	StarCalc_3_0_Vorlage_Template_ui \
++    StarCalc_4_0_Vorlage_Template_ui \
++	StarCalc_5_0_Vorlage_Template_ui
++    
++# -----------------------------------------------
++# count = 0
++L4_CALC_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_CALC_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_calc_bf           = $(foreach,i,$(T4_CALC_BF)    types$/$i.xcu                     )
++FILTERS_4fcfg_calc_bf         = $(foreach,i,$(F4_CALC_BF)    filters$/$i.xcu                   )
++UI_FILTERS_4fcfg_calc_bf      = $(foreach,i,$(F4_UI_CALC_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu   )
++FRAMELOADERS_4fcfg_calc_bf    = $(foreach,i,$(L4_CALC_BF)    frameloaders$/$i.xcu              )
++CONTENTHANDLERS_4fcfg_calc_bf = $(foreach,i,$(C4_CALC_BF)    contenthandlers$/$i.xcu           )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_calc_bf = \
++    $(TYPES_4fcfg_calc) \
++    $(FILTERS_4fcfg_calc) \
++    $(UI_FILTERS_4fcfg_calc) \
++    $(FRAMELOADERS_4fcfg_calc) \
++    $(CONTENTHANDLERS_4fcfg_calc)
++    
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_calc_bf)
++
++ALL_PACKAGES+=calc_bf
++
+--- filter/source/config/fragments/fcfg_chart.mk.old	2007-05-22 17:23:08.000000000 +0200
++++ filter/source/config/fragments/fcfg_chart.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,30 +1,14 @@
+ all_fragments+=chart
+ 
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_CHART_BINFILTER = \
+-	chart_StarChart_30 \
+-	chart_StarChart_40 \
+-	chart_StarChart_50
+-F4_CHART_BINFILTER = \
+-    StarChart_3_0 \
+-    StarChart_4_0 \
+-    StarChart_5_0
+-.ELSE
+-T4_CHART_BINFILTER =
+-F4_CHART_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+-# count = 5
++# count = 3
+ T4_CHART = \
+-	$(T4_CHART_BINFILTER) \
+ 	chart_StarOffice_XML_Chart \
+ 	chart8
+ 
+ # -----------------------------------------------
+-# count = 5
++# count = 2
+ F4_CHART = \
+-    $(F4_CHART_BINFILTER) \
+     StarOffice_XML__Chart_\
+     chart8
+     
+--- filter/source/config/fragments/fcfg_chart_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_chart_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,47 @@
++all_fragments+=chart_bf
++
++# -----------------------------------------------
++# count = 3
++T4_CHART_BF = \
++	chart_StarChart_30 \
++	chart_StarChart_40 \
++	chart_StarChart_50
++
++# -----------------------------------------------
++# count = 3
++F4_CHART_BF = \
++    StarChart_3_0 \
++    StarChart_4_0 \
++    StarChart_5_0
++
++# -----------------------------------------------
++# count = 0
++F4_UI_CHART_BF =
++
++# -----------------------------------------------
++# count = 0
++L4_CHART_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_CHART_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_chart_bf           = $(foreach,i,$(T4_CHART_BF)    types$/$i.xcu                   )
++FILTERS_4fcfg_chart_bf         = $(foreach,i,$(F4_CHART_BF)    filters$/$i.xcu                 )
++UI_FILTERS_4fcfg_chart_bf      = $(foreach,i,$(F4_UI_CHART_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
++FRAMELOADERS_4fcfg_chart_bf    = $(foreach,i,$(L4_CHART_BF)    frameloaders$/$i.xcu            )
++CONTENTHANDLERS_4fcfg_chart_bf = $(foreach,i,$(C4_CHART_BF)    contenthandlers$/$i.xcu         )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_chart_bf = \
++    $(TYPES_4fcfg_chart_bf) \
++    $(FILTERS_4fcfg_chart_bf) \
++    $(UI_FILTERS_4fcfg_chart_bf) \
++    $(FRAMELOADERS_4fcfg_chart_bf) \
++    $(CONTENTHANDLERS_4fcfg_chart_bf)
++    
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_chart_bf)
++
++ALL_PACKAGES+=chart_bf
+--- filter/source/config/fragments/fcfg_draw.mk.old	2007-07-17 21:11:59.000000000 +0200
++++ filter/source/config/fragments/fcfg_draw.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,25 +1,8 @@
+ all_fragments+=draw
+ 
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_DRAW_BINFILTER = \
+-	draw_StarDraw_30 \
+-	draw_StarDraw_30_Vorlage \
+-	draw_StarDraw_50 \
+-	draw_StarDraw_50_Vorlage
+-F4_DRAW_BINFILTER = \
+-    StarDraw_3_0 \
+-    StarDraw_3_0_Vorlage \
+-    StarDraw_5_0 \
+-    StarDraw_5_0_Vorlage
+-.ELSE
+-T4_DRAW_BINFILTER =
+-F4_DRAW_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+ # count = 9
+ T4_DRAW = \
+-    $(T4_DRAW_BINFILTER) \
+     draw_StarOffice_XML_Draw \
+     draw_StarOffice_XML_Draw_Template \
+     pdf_Portable_Document_Format\
+@@ -30,7 +13,6 @@ T4_DRAW = \
+ # -----------------------------------------------
+ # count = 9
+ F4_DRAW = \
+-    $(F4_DRAW_BINFILTER) \
+     StarOffice_XML__Draw_ \
+     draw_StarOffice_XML_Draw_Template \
+     draw_pdf_Export \
+@@ -40,10 +22,8 @@ F4_DRAW = \
+ 
+ 
+ # -----------------------------------------------
+-# count = 6
++# count = 4
+ F4_UI_DRAW = \
+-    StarDraw_3_0_Vorlage_ui \
+-    StarDraw_5_0_Vorlage_ui \
+     StarOffice_XML__Draw__ui \
+     draw_StarOffice_XML_Draw_Template_ui \
+     draw8_ui \
+--- filter/source/config/fragments/fcfg_draw_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_draw_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,51 @@
++all_fragments+=draw_bf
++
++# -----------------------------------------------
++# count = 4
++T4_DRAW_BF = \
++    draw_StarDraw_30 \
++    draw_StarDraw_30_Vorlage \
++    draw_StarDraw_50 \
++    draw_StarDraw_50_Vorlage
++
++# -----------------------------------------------
++# count = 4
++F4_DRAW_BF = \
++    StarDraw_3_0 \
++    StarDraw_3_0_Vorlage \
++    StarDraw_5_0 \
++    StarDraw_5_0_Vorlage
++
++# -----------------------------------------------
++# count = 2
++F4_UI_DRAW_BF = \
++    StarDraw_3_0_Vorlage_ui \
++    StarDraw_5_0_Vorlage_ui
++    
++# -----------------------------------------------
++# count = 0
++L4_DRAW_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_DRAW_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_draw_bf           = $(foreach,i,$(T4_DRAW_BF)    types$/$i.xcu                    )
++FILTERS_4fcfg_draw_bf         = $(foreach,i,$(F4_DRAW_BF)    filters$/$i.xcu                  )
++UI_FILTERS_4fcfg_draw_bf      = $(foreach,i,$(F4_UI_DRAW_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu  )
++FRAMELOADERS_4fcfg_draw_bf    = $(foreach,i,$(L4_DRAW_BF)    frameloaders$/$i.xcu             )
++CONTENTHANDLERS_4fcfg_draw_bf = $(foreach,i,$(C4_DRAW_BF)    contenthandlers$/$i.xcu          )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_draw_bf = \
++    $(TYPES_4fcfg_draw_bf) \
++    $(FILTERS_4fcfg_draw_bf) \
++    $(UI_FILTERS_4fcfg_draw_bf) \
++    $(FRAMELOADERS_4fcfg_draw_bf) \
++    $(CONTENTHANDLERS_4fcfg_draw_bf)
++    
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_draw_bf)
++
++ALL_PACKAGES+=draw_bf
+--- filter/source/config/fragments/fcfg_global.mk.old	2006-03-29 10:01:24.000000000 +0200
++++ filter/source/config/fragments/fcfg_global.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,28 +1,8 @@
+ all_fragments+=global
+ 
+-
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_GLOBAL_BINFILTER = \
+-    writer_StarWriter_30 \
+-    writer_StarWriter_40 \
+-    writer_globaldocument_StarWriter_40GlobalDocument \
+-    writer_StarWriter_50 \
+-    writer_globaldocument_StarWriter_50GlobalDocument
+-F4_GLOBAL_BINFILTER = \
+-	StarWriter_3_0__StarWriter_GlobalDocument_ \
+-	StarWriter_4_0__StarWriter_GlobalDocument_ \
+-	StarWriter_4_0_GlobalDocument \
+-	StarWriter_5_0__StarWriter_GlobalDocument_ \
+-	StarWriter_5_0_GlobalDocument
+-.ELSE
+-T4_GLOBAL_BINFILTER =
+-F4_GLOBAL_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+ # count = 12
+ T4_GLOBAL = \
+-    $(T4_GLOBAL_BINFILTER) \
+     writer_Text \
+     writer_StarOffice_XML_Writer \
+     writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \
+@@ -32,7 +12,6 @@ T4_GLOBAL = \
+ # -----------------------------------------------
+ # count = 12
+ F4_GLOBAL = \
+-    $(F4_GLOBAL_BINFILTER) \
+ 	Text__encoded___StarWriter_GlobalDocument_ \
+ 	writer_globaldocument_StarOffice_XML_Writer \
+ 	writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \
+@@ -44,8 +23,6 @@ F4_GLOBAL = \
+ # -----------------------------------------------
+ # count = 12
+ F4_UI_GLOBAL = \
+-	StarWriter_4_0_GlobalDocument_ui \
+-	StarWriter_5_0_GlobalDocument_ui \
+ 	Text__encoded___StarWriter_GlobalDocument__ui \
+ 	writer_globaldocument_StarOffice_XML_Writer_ui \
+ 	writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui \
+--- filter/source/config/fragments/fcfg_global_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_global_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,55 @@
++all_fragments+=global_bf
++
++
++# -----------------------------------------------
++# count = 5
++T4_GLOBAL_BF = \
++    writer_StarWriter_30 \
++    writer_StarWriter_40 \
++    writer_globaldocument_StarWriter_40GlobalDocument \
++    writer_StarWriter_50 \
++    writer_globaldocument_StarWriter_50GlobalDocument
++
++# -----------------------------------------------
++# count = 5
++F4_GLOBAL_BF = \
++	StarWriter_3_0__StarWriter_GlobalDocument_ \
++	StarWriter_4_0__StarWriter_GlobalDocument_ \
++	StarWriter_4_0_GlobalDocument \
++	StarWriter_5_0__StarWriter_GlobalDocument_ \
++	StarWriter_5_0_GlobalDocument
++
++# -----------------------------------------------
++# count = 2
++F4_UI_GLOBAL_BF = \
++	StarWriter_4_0_GlobalDocument_ui \
++	StarWriter_5_0_GlobalDocument_ui
++
++# -----------------------------------------------
++# count = 0
++L4_GLOBAL_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_GLOBAL_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_global_bf           = $(foreach,i,$(T4_GLOBAL_BF)    types$/$i.xcu                     )
++FILTERS_4fcfg_global_bf         = $(foreach,i,$(F4_GLOBAL_BF)    filters$/$i.xcu                   )
++UI_FILTERS_4fcfg_global_bf      = $(foreach,i,$(F4_UI_GLOBAL_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu   )
++FRAMELOADERS_4fcfg_global_bf    = $(foreach,i,$(L4_GLOBAL_BF)    frameloaders$/$i.xcu              )
++CONTENTHANDLERS_4fcfg_global_bf = $(foreach,i,$(C4_GLOBAL_BF)    contenthandlers$/$i.xcu           )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_global_bf = \
++    $(TYPES_4fcfg_global_bf) \
++    $(FILTERS_4fcfg_global_bf) \
++    $(UI_FILTERS_4fcfg_global_bf) \
++    $(FRAMELOADERS_4fcfg_global_bf) \
++    $(CONTENTHANDLERS_4fcfg_global_bf)
++    
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_global_bf)
++    
++ALL_PACKAGES+=global_bf
++
+--- filter/source/config/fragments/fcfg_impress.mk.old	2007-07-17 21:12:07.000000000 +0200
++++ filter/source/config/fragments/fcfg_impress.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,39 +1,11 @@
+ all_fragments+=impress
+ 
+-
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_IMPRESS_BINFILTER = \
+-    draw_StarDraw_30 \
+-    draw_StarDraw_30_Vorlage \
+-    draw_StarDraw_50 \
+-    draw_StarDraw_50_Vorlage \
+-    impress_StarImpress_40 \
+-    impress_StarImpress_40_Vorlage \
+-    impress_StarImpress_50 \
+-    impress_StarImpress_50_Vorlage \
+-    impress_StarImpress_50_packed
+-F4_IMPRESS_BINFILTER = \
+-    StarDraw_3_0_Vorlage__StarImpress_ \
+-    StarDraw_3_0__StarImpress_ \
+-    StarDraw_5_0_Vorlage__StarImpress_ \
+-    StarDraw_5_0__StarImpress_ \
+-    StarImpress_4_0 \
+-    StarImpress_4_0_Vorlage \
+-    StarImpress_5_0 \
+-    StarImpress_5_0_Vorlage \
+-    StarImpress_5_0__packed_
+-.ELSE
+-T4_IMPRESS_BINFILTER =
+-F4_IMPRESS_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+ # count = 19
+ T4_IMPRESS = \
+     draw_StarOffice_XML_Draw \
+     impress_MS_PowerPoint_97 \
+     impress_MS_PowerPoint_97_Vorlage \
+-    $(T4_IMPRESS_BINFILTER) \
+     impress_StarOffice_XML_Impress \
+     impress_StarOffice_XML_Impress_Template \
+     pdf_Portable_Document_Format \
+@@ -49,7 +21,6 @@ T4_IMPRESS = \
+ F4_IMPRESS = \
+     MS_PowerPoint_97 \
+     MS_PowerPoint_97_Vorlage \
+-    $(F4_IMPRESS_BINFILTER) \
+     impress_StarOffice_XML_Draw \
+     StarOffice_XML__Impress_ \
+     impress_StarOffice_XML_Impress_Template \
+@@ -65,12 +36,7 @@ F4_IMPRESS = \
+ # count = 12
+ F4_UI_IMPRESS = \
+     MS_PowerPoint_97_Vorlage_ui \
+-    StarDraw_3_0_Vorlage__StarImpress__ui \
+-    StarDraw_5_0_Vorlage__StarImpress__ui \
+     impress_StarOffice_XML_Draw_ui \
+-    StarImpress_4_0_Vorlage_ui \
+-    StarImpress_5_0_Vorlage_ui \
+-    StarImpress_5_0__packed__ui \
+     StarOffice_XML__Impress__ui \
+     impress_StarOffice_XML_Impress_Template_ui \
+     impress8_ui \
+--- filter/source/config/fragments/fcfg_impress_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_impress_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,66 @@
++all_fragments+=impress_bf
++
++
++# -----------------------------------------------
++# count = 9
++T4_IMPRESS_BF = \
++    draw_StarDraw_30 \
++    draw_StarDraw_30_Vorlage \
++    draw_StarDraw_50 \
++    draw_StarDraw_50_Vorlage \
++    impress_StarImpress_40 \
++    impress_StarImpress_40_Vorlage \
++    impress_StarImpress_50 \
++    impress_StarImpress_50_Vorlage \
++    impress_StarImpress_50_packed
++
++# -----------------------------------------------
++# count = 9
++F4_IMPRESS_BF = \
++    StarDraw_3_0_Vorlage__StarImpress_ \
++    StarDraw_3_0__StarImpress_ \
++    StarDraw_5_0_Vorlage__StarImpress_ \
++    StarDraw_5_0__StarImpress_ \
++    StarImpress_4_0 \
++    StarImpress_4_0_Vorlage \
++    StarImpress_5_0 \
++    StarImpress_5_0_Vorlage \
++    StarImpress_5_0__packed_
++
++# -----------------------------------------------
++# count = 5
++F4_UI_IMPRESS_BF = \
++    StarDraw_3_0_Vorlage__StarImpress__ui \
++    StarDraw_5_0_Vorlage__StarImpress__ui \
++    StarImpress_4_0_Vorlage_ui \
++    StarImpress_5_0_Vorlage_ui \
++    StarImpress_5_0__packed__ui \
++
++# -----------------------------------------------
++# count = 0
++L4_IMPRESS_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_IMPRESS_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_impress_bf           = $(foreach,i,$(T4_IMPRESS_BF)    types$/$i.xcu                   )
++FILTERS_4fcfg_impress_bf         = $(foreach,i,$(F4_IMPRESS_BF)    filters$/$i.xcu                 )
++UI_FILTERS_4fcfg_impress_bf      = $(foreach,i,$(F4_UI_IMPRESS_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
++FRAMELOADERS_4fcfg_impress_bf    = $(foreach,i,$(L4_IMPRESS_BF)    frameloaders$/$i.xcu            )
++CONTENTHANDLERS_4fcfg_impress_bf = $(foreach,i,$(C4_IMPRESS_BF)    contenthandlers$/$i.xcu         )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_impress_bf = \
++    $(TYPES_4fcfg_impress_bf) \
++    $(FILTERS_4fcfg_impress_bf) \
++    $(UI_FILTERS_4fcfg_impress_bf) \
++    $(FRAMELOADERS_4fcfg_impress_bf) \
++    $(CONTENTHANDLERS_4fcfg_impress_bf)
++
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_impress_bf)
++
++ALL_PACKAGES+=impress_bf
++
+--- filter/source/config/fragments/fcfg_math.mk.old	2005-07-14 17:03:43.000000000 +0200
++++ filter/source/config/fragments/fcfg_math.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,38 +1,20 @@
+ all_fragments+=math
+ 
+ 
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_MATH_BINFILTER = \
+-	math_StarMath_20 \
+-	math_StarMath_30 \
+-	math_StarMath_40 \
+-	math_StarMath_50
+-F4_MATH_BINFILTER = \
+-    StarMath_2_0 \
+-    StarMath_3_0 \
+-    StarMath_4_0 \
+-    StarMath_5_0
+-.ELSE
+-T4_MATH_BINFILTER =
+-F4_MATH_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+-# count = 9
++# count = 5
+ T4_MATH = \
+ 	math_MathML_XML_Math \
+ 	math_MathType_3x \
+-	$(T4_MATH_BINFILTER) \
+ 	math_StarOffice_XML_Math \
+ 	pdf_Portable_Document_Format \
+ 	math8
+ 
+ # -----------------------------------------------
+-# count = 9
++# count = 5
+ F4_MATH = \
+     MathML_XML__Math_ \
+     MathType_3_x \
+-    $(F4_MATH_BINFILTER) \
+     StarOffice_XML__Math_ \
+     math_pdf_Export \
+ 	math8
+--- filter/source/config/fragments/fcfg_math_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_math_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,50 @@
++all_fragments+=math_bf
++
++# -----------------------------------------------
++# count = 4
++T4_MATH_BF = \
++	math_StarMath_20 \
++	math_StarMath_30 \
++	math_StarMath_40 \
++	math_StarMath_50
++
++# -----------------------------------------------
++# count = 4
++F4_MATH_BF = \
++    StarMath_2_0 \
++    StarMath_3_0 \
++    StarMath_4_0 \
++    StarMath_5_0
++
++# -----------------------------------------------
++# count = 0
++F4_UI_MATH_BF =
++    
++# -----------------------------------------------
++# count = 0
++L4_MATH_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_MATH_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_math_bf           = $(foreach,i,$(T4_MATH_BF)    types$/$i.xcu                      )
++FILTERS_4fcfg_math_bf         = $(foreach,i,$(F4_MATH_BF)    filters$/$i.xcu                    )
++UI_FILTERS_4fcfg_math_bf      = $(foreach,i,$(F4_UI_MATH_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu    )
++FRAMELOADERS_4fcfg_math_bf    = $(foreach,i,$(L4_MATH_BF)    frameloaders$/$i.xcu               )
++CONTENTHANDLERS_4fcfg_math_bf = $(foreach,i,$(C4_MATH_BF)    contenthandlers$/$i.xcu            )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_math_bf = \
++    $(TYPES_4fcfg_math_bf) \
++    $(FILTERS_4fcfg_math_bf) \
++    $(UI_FILTERS_4fcfg_math_bf) \
++    $(FRAMELOADERS_4fcfg_math_bf) \
++    $(CONTENTHANDLERS_4fcfg_math_bf)
++
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_math_bf)
++    
++ALL_PACKAGES+=math_bf
++    
+--- filter/source/config/fragments/fcfg_web.mk.old	2005-07-14 17:03:56.000000000 +0200
++++ filter/source/config/fragments/fcfg_web.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,28 +1,9 @@
+ all_fragments+=web
+ 
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_WEB_BINFILTER = \
+-	writer_StarWriter_30 \
+-	writer_StarWriter_40 \
+-	writer_StarWriter_50 \
+-	writer_web_StarWriterWeb_40_VorlageTemplate \
+-	writer_web_StarWriterWeb_50_VorlageTemplate
+-F4_WEB_BINFILTER = \
+-    StarWriter_3_0__StarWriter_Web_ \
+-    StarWriter_4_0__StarWriter_Web_ \
+-    StarWriter_5_0__StarWriter_Web_ \
+-    StarWriter_Web_4_0_Vorlage_Template \
+-    StarWriter_Web_5_0_Vorlage_Template
+-.ELSE
+-T4_WEB_BINFILTER =
+-F4_WEB_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+ # count = 12
+ T4_WEB = \
+ 	writer_web_HTML \
+-	$(T4_WEB_BINFILTER) \
+ 	writer_Text \
+ 	writer_web_HTML_help \
+ 	writer_StarOffice_XML_Writer \
+@@ -34,7 +15,6 @@ T4_WEB = \
+ # count = 14
+ F4_WEB = \
+     HTML \
+-    $(F4_WEB_BINFILTER) \
+     Text__StarWriter_Web_ \
+     Text__encoded___StarWriter_Web_ \
+     writer_web_HTML_help \
+@@ -48,8 +28,6 @@ F4_WEB = \
+ # count = 9
+ F4_UI_WEB = \
+     HTML_ui \
+-    StarWriter_Web_4_0_Vorlage_Template_ui \
+-    StarWriter_Web_5_0_Vorlage_Template_ui \
+     Text__StarWriter_Web__ui \
+     Text__encoded___StarWriter_Web__ui \
+     writer_web_StarOffice_XML_Writer_ui \
+--- filter/source/config/fragments/fcfg_web_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_web_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,54 @@
++all_fragments+=web_bf
++
++# -----------------------------------------------
++# count = 5
++T4_WEB_BF = \
++	writer_StarWriter_30 \
++	writer_StarWriter_40 \
++	writer_StarWriter_50 \
++	writer_web_StarWriterWeb_40_VorlageTemplate \
++	writer_web_StarWriterWeb_50_VorlageTemplate
++
++# -----------------------------------------------
++# count = 5
++F4_WEB_BF = \
++    StarWriter_3_0__StarWriter_Web_ \
++    StarWriter_4_0__StarWriter_Web_ \
++    StarWriter_5_0__StarWriter_Web_ \
++    StarWriter_Web_4_0_Vorlage_Template \
++    StarWriter_Web_5_0_Vorlage_Template
++
++# -----------------------------------------------
++# count = 2
++F4_UI_WEB_BF = \
++    StarWriter_Web_4_0_Vorlage_Template_ui \
++    StarWriter_Web_5_0_Vorlage_Template_ui
++    
++# -----------------------------------------------
++# count = 0
++L4_WEB_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_WEB_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_web_bf           = $(foreach,i,$(T4_WEB_BF)    types$/$i.xcu                   )
++FILTERS_4fcfg_web_bf         = $(foreach,i,$(F4_WEB_BF)    filters$/$i.xcu                 )
++UI_FILTERS_4fcfg_web_bf      = $(foreach,i,$(F4_UI_WEB_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
++FRAMELOADERS_4fcfg_web_bf    = $(foreach,i,$(L4_WEB_BF)    frameloaders$/$i.xcu            )
++CONTENTHANDLERS_4fcfg_web_bf = $(foreach,i,$(C4_WEB_BF)    contenthandlers$/$i.xcu         )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_web_bf = \
++    $(TYPES_4fcfg_web_bf) \
++    $(FILTERS_4fcfg_web_bf) \
++    $(UI_FILTERS_4fcfg_web_bf) \
++    $(FRAMELOADERS_4fcfg_web_bf) \
++    $(CONTENTHANDLERS_4fcfg_web_bf)
++
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_web_bf)
++    
++ALL_PACKAGES+=web_bf
++    
+--- filter/source/config/fragments/fcfg_writer.mk.old	2007-07-17 21:12:07.000000000 +0200
++++ filter/source/config/fragments/fcfg_writer.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -1,32 +1,5 @@
+ all_fragments+=writer
+ 
+-
+-.IF "$(WITH_BINFILTER)" != "NO"
+-T4_WRITER_BINFILTER = \
+-    writer_StarWriter_10 \
+-    writer_StarWriter_20 \
+-    writer_StarWriter_30 \
+-    writer_StarWriter_30_VorlageTemplate \
+-    writer_StarWriter_40 \
+-    writer_StarWriter_40_VorlageTemplate \
+-    writer_StarWriter_50 \
+-    writer_StarWriter_50_VorlageTemplate \
+-    writer_StarWriter_DOS
+-F4_WRITER_BINFILTER = \
+-	StarWriter_1_0 \
+-	StarWriter_2_0 \
+-	StarWriter_3_0 \
+-	StarWriter_3_0_Vorlage_Template \
+-	StarWriter_4_0 \
+-	StarWriter_4_0_Vorlage_Template \
+-	StarWriter_5_0 \
+-	StarWriter_5_0_Vorlage_Template \
+-	StarWriter_DOS
+-.ELSE
+-T4_WRITER_BINFILTER =
+-F4_WRITER_BINFILTER =
+-.ENDIF
+-
+ # -----------------------------------------------
+ # count = 39
+ T4_WRITER = \
+@@ -44,7 +17,6 @@ T4_WRITER = \
+     writer_MS_Word_97_Vorlage \
+     writer_Rich_Text_Format \
+     writer_StarOffice_XML_Writer \
+-    $(T4_WRITER_BINFILTER) \
+     writer_WordPerfect_Document \
+     writer_MS_Works_Document \
+     writer_T602_Document \
+@@ -81,7 +53,6 @@ F4_WRITER = \
+ 	MS_Word_97_Vorlage \
+ 	Rich_Text_Format \
+ 	StarOffice_XML__Writer_ \
+-	$(F4_WRITER_BINFILTER) \
+ 	WordPerfect \
+ 	MS_Works \
+ 	T602Document \
+@@ -108,9 +79,6 @@ F4_UI_WRITER = \
+ 	MS_Word_95_Vorlage_ui \
+ 	MS_Word_97_Vorlage_ui \
+ 	StarOffice_XML__Writer__ui \
+-	StarWriter_3_0_Vorlage_Template_ui \
+-	StarWriter_4_0_Vorlage_Template_ui \
+-	StarWriter_5_0_Vorlage_Template_ui \
+ 	Text_ui \
+ 	Text__encoded__ui \
+ 	writer_JustSystem_Ichitaro_10_template_ui \
+--- filter/source/config/fragments/fcfg_writer_bf.mk.old	2007-07-19 12:09:53.000000000 +0200
++++ filter/source/config/fragments/fcfg_writer_bf.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -0,0 +1,63 @@
++all_fragments+=writer_bf
++
++# -----------------------------------------------
++# count = 9
++T4_WRITER_BF = \
++    writer_StarWriter_10 \
++    writer_StarWriter_20 \
++    writer_StarWriter_30 \
++    writer_StarWriter_30_VorlageTemplate \
++    writer_StarWriter_40 \
++    writer_StarWriter_40_VorlageTemplate \
++    writer_StarWriter_50 \
++    writer_StarWriter_50_VorlageTemplate \
++    writer_StarWriter_DOS
++
++# -----------------------------------------------
++# count = 9
++F4_WRITER_BF = \
++	StarWriter_1_0 \
++	StarWriter_2_0 \
++	StarWriter_3_0 \
++	StarWriter_3_0_Vorlage_Template \
++	StarWriter_4_0 \
++	StarWriter_4_0_Vorlage_Template \
++	StarWriter_5_0 \
++	StarWriter_5_0_Vorlage_Template \
++	StarWriter_DOS
++
++# -----------------------------------------------
++# count = 3
++F4_UI_WRITER_BF = \
++	StarWriter_3_0_Vorlage_Template_ui \
++	StarWriter_4_0_Vorlage_Template_ui \
++	StarWriter_5_0_Vorlage_Template_ui \
++
++# -----------------------------------------------
++# count = 0
++L4_WRITER_BF =
++
++# -----------------------------------------------
++# count = 0
++C4_WRITER_BF =
++
++# -----------------------------------------------
++TYPES_4fcfg_writer_bf           = $(foreach,i,$(T4_WRITER_BF)    types$/$i.xcu                     )
++FILTERS_4fcfg_writer_bf         = $(foreach,i,$(F4_WRITER_BF)    filters$/$i.xcu                   )
++UI_FILTERS_4fcfg_writer_bf      = $(foreach,i,$(F4_UI_WRITER_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu   )
++FRAMELOADERS_4fcfg_writer_bf    = $(foreach,i,$(L4_WRITER_BF)    frameloaders$/$i.xcu              )
++CONTENTHANDLERS_4fcfg_writer_bf = $(foreach,i,$(C4_WRITER_BF)    contenthandlers$/$i.xcu           )
++
++# -----------------------------------------------
++# needed to get dependencies inside global makefile work!
++ALL_4fcfg_writer_bf = \
++    $(TYPES_4fcfg_writer_bf) \
++    $(FILTERS_4fcfg_writer_bf) \
++    $(UI_FILTERS_4fcfg_writer_bf) \
++    $(FRAMELOADERS_4fcfg_writer_bf) \
++    $(CONTENTHANDLERS_4fcfg_writer_bf)
++
++ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_writer_bf)
++
++ALL_PACKAGES+=writer_bf
++
+--- filter/source/config/fragments/makefile.mk.old	2007-05-10 15:13:05.000000000 +0200
++++ filter/source/config/fragments/makefile.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -72,6 +72,18 @@ REALFILTERPACKAGES_TYPES_FLAG = \
+     $(DIR_FILTERCFGOUT)$/fcfg_drawgraphics.types_flag       \
+     $(DIR_FILTERCFGOUT)$/fcfg_impressgraphics.types_flag
+ 
++.IF "$(WITH_BINFILTER)" != "NO"
++REALFILTERPACKAGES_TYPES_FLAG += \
++    $(DIR_FILTERCFGOUT)$/fcfg_writer_bf.types_flag          \
++    $(DIR_FILTERCFGOUT)$/fcfg_web_bf.types_flag             \
++    $(DIR_FILTERCFGOUT)$/fcfg_global_bf.types_flag          \
++    $(DIR_FILTERCFGOUT)$/fcfg_calc_bf.types_flag            \
++    $(DIR_FILTERCFGOUT)$/fcfg_draw_bf.types_flag            \
++    $(DIR_FILTERCFGOUT)$/fcfg_impress_bf.types_flag         \
++    $(DIR_FILTERCFGOUT)$/fcfg_chart_bf.types_flag           \
++    $(DIR_FILTERCFGOUT)$/fcfg_math_bf.types_flag
++.ENDIF
++
+ REALFILTERPACKAGES_FILTERS_FLAG = \
+     $(DIR_FILTERCFGOUT)$/fcfg_base.filters_flag               \
+     $(DIR_FILTERCFGOUT)$/fcfg_writer.filters_flag             \
+@@ -91,6 +103,18 @@ REALFILTERPACKAGES_FILTERS_FLAG = \
+     $(DIR_FILTERCFGOUT)$/fcfg_drawgraphics.filters_flag       \
+     $(DIR_FILTERCFGOUT)$/fcfg_impressgraphics.filters_flag
+ 
++.IF "$(WITH_BINFILTER)" != "NO"
++REALFILTERPACKAGES_FILTERS_FLAG += \
++    $(DIR_FILTERCFGOUT)$/fcfg_writer_bf.filters_flag          \
++    $(DIR_FILTERCFGOUT)$/fcfg_web_bf.filters_flag             \
++    $(DIR_FILTERCFGOUT)$/fcfg_global_bf.filters_flag          \
++    $(DIR_FILTERCFGOUT)$/fcfg_calc_bf.filters_flag            \
++    $(DIR_FILTERCFGOUT)$/fcfg_draw_bf.filters_flag            \
++    $(DIR_FILTERCFGOUT)$/fcfg_impress_bf.filters_flag         \
++    $(DIR_FILTERCFGOUT)$/fcfg_chart_bf.filters_flag           \
++    $(DIR_FILTERCFGOUT)$/fcfg_math_bf.filters_flag
++.ENDIF
++
+ REALFILTERPACKAGES_FILTERS_UI_MERGE = \
+     $(DIR_LOCMERGE)$/filter_ui.xcu
+ 
+@@ -119,6 +143,18 @@ REALFILTERPACKAGES_OTHERS_FLAG = \
+     $(DIR_FILTERCFGOUT)$/fcfg_drawgraphics.others_flag       \
+     $(DIR_FILTERCFGOUT)$/fcfg_impressgraphics.others_flag
+ 
++.IF "$(WITH_BINFILTER)" != "NO"
++REALFILTERPACKAGES_OTHERS_FLAG += \
++    $(DIR_FILTERCFGOUT)$/fcfg_writer_bf.others_flag          \
++    $(DIR_FILTERCFGOUT)$/fcfg_web_bf.others_flag             \
++    $(DIR_FILTERCFGOUT)$/fcfg_global_bf.others_flag          \
++    $(DIR_FILTERCFGOUT)$/fcfg_calc_bf.others_flag            \
++    $(DIR_FILTERCFGOUT)$/fcfg_draw_bf.others_flag            \
++    $(DIR_FILTERCFGOUT)$/fcfg_impress_bf.others_flag         \
++    $(DIR_FILTERCFGOUT)$/fcfg_chart_bf.others_flag           \
++    $(DIR_FILTERCFGOUT)$/fcfg_math_bf.others_flag
++.ENDIF
++
+ INTERNALFILTERPACKAGES_TYPES_FLAG = \
+     $(DIR_FILTERCFGOUT)$/fcfg_internalgraphics.types_flag
+ 
+--- filter/source/config/fragments/packagedef.mk.old	2006-11-08 13:02:01.000000000 +0100
++++ filter/source/config/fragments/packagedef.mk	2007-07-19 12:09:53.000000000 +0200
+@@ -64,4 +64,16 @@ INCLUDE_FRAGMENTS = \
+ 	 $(PRJ)$/source$/config$/fragments$/fcfg_impressgraphics.mk \
+ 	 $(PRJ)$/source$/config$/fragments$/fcfg_internalgraphics.mk
+ 
++.IF "$(WITH_BINFILTER)" != "NO"
++INCLUDE_FRAGMENTS += \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_writer_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_web_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_global_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_calc_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_draw_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_impress_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_chart_bf.mk \
++	 $(PRJ)$/source$/config$/fragments$/fcfg_math_bf.mk
++.ENDIF
++
+ .INCLUDE: $(INCLUDE_FRAGMENTS)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extras_wizard.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extras_wizard.diff
@@ -0,0 +1,871 @@
+diff -Naur -x .svn wizards/source/ooowikipedia/Dialog1.xdl wizards/source/ooowikipedia/Dialog1.xdl
+--- wizards/source/ooowikipedia/Dialog1.xdl	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/Dialog1.xdl	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,10 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
++<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="dlgWiki" dlg:left="136" dlg:top="66" dlg:width="178" dlg:height="138" dlg:closeable="true" dlg:moveable="true" dlg:title="Wikipedia">
++ <dlg:bulletinboard>
++  <dlg:button dlg:id="btcGo" dlg:tab-index="0" dlg:left="107" dlg:top="110" dlg:width="64" dlg:height="17" dlg:value="Wikipedia">
++   <script:event script:event-name="on-performaction" script:location="document" script:macro-name="Standard.Module1.GoWikipedia" script:language="StarBasic"/>
++  </dlg:button>
++  <dlg:menulist dlg:id="lstWiki" dlg:tab-index="1" dlg:left="9" dlg:top="7" dlg:width="90" dlg:height="121"/>
++ </dlg:bulletinboard>
++</dlg:window>
+\ Nincs újsor a fájl végén
+diff -Naur -x .svn wizards/source/ooowikipedia/Dialog2.xdl wizards/source/ooowikipedia/Dialog2.xdl
+--- wizards/source/ooowikipedia/Dialog2.xdl	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/Dialog2.xdl	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,15 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
++<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="dlgAbout" dlg:left="104" dlg:top="77" dlg:width="161" dlg:height="94" dlg:closeable="true" dlg:moveable="true">
++ <dlg:styles>
++  <dlg:style dlg:style-id="0" dlg:font-weight="150"/>
++ </dlg:styles>
++ <dlg:bulletinboard>
++  <dlg:button dlg:id="btcClose" dlg:tab-index="2" dlg:left="115" dlg:top="73" dlg:width="41" dlg:height="16" dlg:value="Ok" dlg:button-type="ok"/>
++  <dlg:button dlg:id="btcView" dlg:tab-index="3" dlg:left="4" dlg:top="75" dlg:width="58" dlg:height="14" dlg:value="View Notes">
++   <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:OOoWikipedia.Module1.OpenAboutFile?language=Basic&amp;location=application" script:language="Script"/>
++  </dlg:button>
++  <dlg:text dlg:style-id="0" dlg:id="lblTitle" dlg:tab-index="0" dlg:left="46" dlg:top="7" dlg:width="73" dlg:height="10" dlg:value="Label1" dlg:align="center"/>
++  <dlg:text dlg:id="lblMore" dlg:tab-index="1" dlg:left="2" dlg:top="21" dlg:width="157" dlg:height="51" dlg:value="Label2" dlg:align="center" dlg:tabstop="false"/>
++ </dlg:bulletinboard>
++</dlg:window>
+\ Nincs újsor a fájl végén
+diff -Naur -x .svn wizards/source/ooowikipedia/dialog.xlb wizards/source/ooowikipedia/dialog.xlb
+--- wizards/source/ooowikipedia/dialog.xlb	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/dialog.xlb	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,6 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
++<library:library xmlns:library="http://openoffice.org/2000/library" library:name="OOoWikipedia" library:readonly="false" library:passwordprotected="false">
++ <library:element library:name="Dialog1"/>
++ <library:element library:name="Dialog2"/>
++</library:library>
+\ Nincs újsor a fájl végén
+diff -Naur -x .svn wizards/source/ooowikipedia/makefile.mk wizards/source/ooowikipedia/makefile.mk
+--- wizards/source/ooowikipedia/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/makefile.mk	2007-12-24 13:43:02.000000000 +0100
+@@ -0,0 +1,57 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.3 $
++#
++#   last change: $Author: rt $ $Date: 2005/09/09 10:12:11 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++PRJ=..$/..
++
++PRJNAME=wizards
++TARGET=ooowikipedia
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++.INCLUDE : $(PRJ)$/util$/target.pmk
++
++.IF "$(WITH_EXTRA_ACCESSORY)" == "YES"
++
++# --- Files --------------------------------------------------------
++
++ZIP1TARGET      = $(OOOWIKIPEDIA_ALL_TARGET)
++ZIP1LIST        = *.xdl *.xba *.xlb
++
++.ENDIF
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :  target.mk
++
+diff -Naur -x .svn wizards/source/ooowikipedia/Module1.xba wizards/source/ooowikipedia/Module1.xba
+--- wizards/source/ooowikipedia/Module1.xba	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/Module1.xba	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,588 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
++<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Module1" script:language="StarBasic">const DefaultWiki=2
++&apos;********************************************************************************
++&apos;Copyright (C) 2003-2005 Laurent Godard
++&apos;lgodard@indesko.com
++
++&apos;This library is free software; you can redistribute it and/or
++&apos;modify it under the terms of the GNU Lesser General Public
++&apos;License as published by the Free Software Foundation; either
++&apos;version 2.1 of the License, or (at your option) any later version.
++
++&apos;This library is distributed in the hope that it will be useful,
++&apos;but WITHOUT ANY WARRANTY; without even the implied warranty of
++&apos;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++&apos;Lesser General Public License for more details.
++&apos;http://www.opensource.org/licenses/lgpl-license.php
++
++&apos;You should have received a copy of the GNU Lesser General Public
++&apos;License along with this library; if not, write to the Free Software
++&apos;Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++&apos;******************************************************************************
++
++const version=&quot;2.3&quot;
++const nbLangues=17
++public WikipediaConf(1 to nbLangues, 0 to 13)
++global indexWikiLang
++
++
++dim oDlg
++
++Sub StarWithDefaultLanguage
++	call main(True)
++end Sub
++
++Sub StartWithChooseBox
++	call main(False)
++end sub
++
++&apos;-------------------------------
++Sub Main(defaultLanguage as boolean)
++
++dim message as string
++
++call DefineWikis
++
++indexWikiLang = WikiIndexFromISO(checkOOoLanguage)
++
++&apos;Other than windows
++if getGUIType&lt;&gt;1 and not checkHTTP then
++	message=WikipediaConf(indexWikiLang,5)+chr(13)+chr(13) _
++			+WikipediaConf(indexWikiLang,6)+chr(13) _
++			+WikipediaConf(indexWikiLang,7)
++	msgbox message,48,&quot;OOoWikipedia&quot;
++	exit sub
++endif
++
++if not defaultLanguage then
++ 	call ChooseWikipedia(false)
++endif
++
++if indexWikiLang &lt;&gt; -1 then
++	Call CheckWiki(indexWikiLang)
++endif
++
++End Sub
++&apos;----------------------
++sub DefineWikis()
++
++dim CurLang as long
++
++&apos;fr
++CurLang=1
++WikipediaConf(CurLang,0)=&quot;fr&quot;
++WikipediaConf(CurLang,1)=&quot;Français&quot;
++WikipediaConf(CurLang,2)=&quot;http://fr.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Consulter&quot;
++WikipediaConf(CurLang,4)=&quot;Entrer le mot à chercher :&quot;
++WikipediaConf(CurLang,5)=&quot;Aucun navigateur n&apos;est lié à OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Veuiller remplir le paramètre HTTP situé dans le menu &quot;
++WikipediaConf(CurLang,7)=&quot;Outils &gt; Options &gt; OpenOffice.org &gt; programmes Auxiliaires&quot;
++
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;A propos de OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Outil offert sous license LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia au choix&quot;
++WikipediaConf(CurLang,12)=&quot;Installation terminée !&quot;
++WikipediaConf(CurLang,13)=&quot;Merci à tous les traducteurs&quot;
++
++
++&apos;en
++CurLang=2
++WikipediaConf(CurLang,0)=&quot;en&quot;
++WikipediaConf(CurLang,1)=&quot;English&quot;
++WikipediaConf(CurLang,2)=&quot;http://en.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Go&quot;
++WikipediaConf(CurLang,4)=&quot;Enter a word to find :&quot;
++WikipediaConf(CurLang,5)=&quot;No browser linked to OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Please fill the HTTP parameter located in the menu&quot;
++WikipediaConf(CurLang,7)=&quot;Tools &gt; Options &gt; OpenOffice.org &gt; Programmes Auxiliaires&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;About OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Tool offered under LGPL license&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Choice&quot;
++WikipediaConf(CurLang,12)=&quot;Done !&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;de
++CurLang=3
++WikipediaConf(CurLang,0)=&quot;de&quot;
++WikipediaConf(CurLang,1)=&quot;Deutsch&quot;
++WikipediaConf(CurLang,2)=&quot;http://de.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Los&quot;
++WikipediaConf(CurLang,4)=&quot;Zu suchendes Wort eingeben:&quot;
++WikipediaConf(CurLang,5)=&quot;Kein Browser mit OOo verbunden.&quot;
++WikipediaConf(CurLang,6)=&quot;Bitte füllen Sie die HTTP-Parameter im folgenden Menue aus:&quot;
++WikipediaConf(CurLang,7)=&quot;Extras &gt; Optionen &gt; OpenOffice.org &gt; Hilfsprogramme&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Über OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Programm steht unter der LGPL-Lizenz&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direkktaufruf&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Auswahl&quot;
++WikipediaConf(CurLang,12)=&quot;Fertig!&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;it
++CurLang=4
++WikipediaConf(CurLang,0)=&quot;it&quot;
++WikipediaConf(CurLang,1)=&quot;Italiano&quot;
++WikipediaConf(CurLang,2)=&quot;http://it.wikipedia.org/wiki/Speciale:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Vai&quot;
++WikipediaConf(CurLang,4)=&quot;Inserisci una parola da ricercare:&quot;
++WikipediaConf(CurLang,5)=&quot;Nessun Navigatore collegato a OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Per favore introducete il parametro HTTP situato all&apos;interno del menu&quot;
++WikipediaConf(CurLang,7)=&quot;Strumenti &gt; Opzioni &gt; OpenOffice.org &gt; Programmi Ausiliari&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Informazioni su OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Tool rilasciato sotto licenza LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia diretta&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia a scelta lingua&quot;
++WikipediaConf(CurLang,12)=&quot;Installazione completata!&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;es
++CurLang=5
++WikipediaConf(CurLang,0)=&quot;es&quot;
++WikipediaConf(CurLang,1)=&quot;Español&quot;
++WikipediaConf(CurLang,2)=&quot;http://es.wikipedia.org/wiki/Especial:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Ir&quot;
++WikipediaConf(CurLang,4)=&quot;Enter a word to find :&quot;
++WikipediaConf(CurLang,5)=&quot;No browser linked to OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Please fill the HTTP parameter located in the menu&quot;
++WikipediaConf(CurLang,7)=&quot;Tools &gt; Options &gt; OpenOffice.org &gt; Programmes Auxiliaires&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;About OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Tool offered under LGPL license&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Choice&quot;
++WikipediaConf(CurLang,12)=&quot;Done !&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;ca
++CurLang=6
++WikipediaConf(CurLang,0)=&quot;ca&quot;
++WikipediaConf(CurLang,1)=&quot;Català&quot;
++WikipediaConf(CurLang,2)=&quot;http://ca.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=V%C3%A9s-hi&quot;
++WikipediaConf(CurLang,4)=&quot;Introduïu una cerca :&quot;
++WikipediaConf(CurLang,5)=&quot;No hi ha cap navegador associat a l&apos;OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Introduïu el paràmetre HTTP que situat en el menu&quot;
++WikipediaConf(CurLang,7)=&quot;Eines &gt; Opcions &gt; OpenOffice.org &gt; Programes externs&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Quant a l&apos;OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Eina sota la llicència LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Directe&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Selecció&quot;
++WikipediaConf(CurLang,12)=&quot;Fet !&quot; 
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;sl
++CurLang=7
++WikipediaConf(CurLang,0)=&quot;sl&quot;
++WikipediaConf(CurLang,1)=&quot;Slovenščina&quot;
++WikipediaConf(CurLang,2)=&quot;http://sl.wikipedia.org/wiki/Posebno:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Pojdi&quot;
++WikipediaConf(CurLang,4)=&quot;Vnesite iskani pojem :&quot;
++WikipediaConf(CurLang,5)=&quot;V OOo ni nastavljen privzeti brskalnik&quot;
++WikipediaConf(CurLang,6)=&quot;Vnesite parameter HTTP v meniju&quot;
++WikipediaConf(CurLang,7)=&quot;Orodja &gt; Možnosti &gt; OpenOffice.org &gt; Zunanji programi&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;O programu OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Orodje je pod licenco LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Neposredno&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Izbira&quot;
++WikipediaConf(CurLang,12)=&quot;Narejeno !&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++&apos;da
++CurLang=8
++WikipediaConf(CurLang,0)=&quot;da&quot;
++WikipediaConf(CurLang,1)=&quot;Dansk&quot;
++WikipediaConf(CurLang,2)=&quot;http://da.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=go&quot;
++WikipediaConf(CurLang,4)=&quot;Indtast et søgeord:&quot;
++WikipediaConf(CurLang,5)=&quot;Ingen browser tilgængelig for OpenOffice.org&quot;
++WikipediaConf(CurLang,6)=&quot;Udfyld venligst HTTP-parameteren i menuen&quot;
++WikipediaConf(CurLang,7)=&quot;Funktioner -&gt; Indstillinger -&gt; OpenOffice.org -&gt; Eksterne programmer&quot;
++WikipediaConf(CurLang,8)=&quot;Om OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Værktøj under LGPL-licens&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia direkte&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia med valg af sprog&quot;
++WikipediaConf(CurLang,12)=&quot;Færdig!&quot; 
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;nl
++CurLang=9
++WikipediaConf(CurLang,0)=&quot;nl&quot;
++WikipediaConf(CurLang,1)=&quot;Dutch&quot;
++WikipediaConf(CurLang,2)=&quot;http://nl.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Uitvoeren&quot;
++WikipediaConf(CurLang,4)=&quot;Voer een woord in om op te zoeken :&quot;
++WikipediaConf(CurLang,5)=&quot;Geen browser gekoppeld aan OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Vul a.u.b. de HTTP parameter in het menu in&quot;
++WikipediaConf(CurLang,7)=&quot;Extra &gt; Opties &gt; OpenOffice.org &gt; Hulpprogramma&apos;s&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Info over OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Werktuig  beschikbaar gemaakt onder de LGPL licentie&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Keuze&quot;
++WikipediaConf(CurLang,12)=&quot;Klaar !&quot; 
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;esperanto
++CurLang=10
++WikipediaConf(CurLang,0)=&quot;eo&quot;
++WikipediaConf(CurLang,1)=&quot;Esperanto&quot;
++WikipediaConf(CurLang,2)=&quot;http://eo.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Ek!&quot;
++WikipediaConf(CurLang,4)=&quot;Tajpu la serĉotan vorton:&quot;
++WikipediaConf(CurLang,5)=&quot;Neniu TTT-legilo estas ligita al OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Bonvolu plenigi la HTTP-parametron en la menuo&quot;
++WikipediaConf(CurLang,7)=&quot;Iloj &gt; Opcioj &gt; OpenOffice.org &gt; Aldonaj programoj&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Pri OOoWikipedia...&quot;
++WikipediaConf(CurLang,9)=&quot;Ilo disdonata laŭ LGPL-licenco&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Rekte&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia kun Elekto&quot;
++WikipediaConf(CurLang,12)=&quot;Preta!&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;Kiswahili
++CurLang=11
++WikipediaConf(CurLang,0)=&quot;sw&quot;
++WikipediaConf(CurLang,1)=&quot;Kiswahili&quot;
++WikipediaConf(CurLang,2)=&quot;http://sw.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Go&quot;
++WikipediaConf(CurLang,4)=&quot;Andika neno la kutafutia :&quot;
++WikipediaConf(CurLang,5)=&quot;Kipitiapitiaji chochote hakipatikani kwenye OOo&quot;
++WikipediaConf(CurLang,6)=&quot;Tafadhali parameta ya HTTP kwenye orodha ya chaguo&quot;
++WikipediaConf(CurLang,7)=&quot;Vifaa &gt; Chaguo &gt; OpenOffice.org &gt; Programu saidizi&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Kuhusu OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Programu hii inatolewa kulingana na leseni ya LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Moja-kwa-moja&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Chagua&quot;
++WikipediaConf(CurLang,12)=&quot;Tayari !&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;pt-BR
++CurLang=12
++WikipediaConf(CurLang,0)=&quot;pt-BR&quot;
++WikipediaConf(CurLang,1)=&quot;Português do Brasil&quot;
++WikipediaConf(CurLang,2)=&quot;http://pt.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Vai&quot;
++WikipediaConf(CurLang,4)=&quot;Digite a palavra para pesquisar:&quot;
++WikipediaConf(CurLang,5)=&quot;Nenhum navegador associado ao OpenOffice.org&quot;
++WikipediaConf(CurLang,6)=&quot;Por favor, insira os parâmetros HTTP localizado no menu&quot;
++WikipediaConf(CurLang,7)=&quot;Ferramentas &gt; Opções &gt; OpenOffice.org &gt; Programas externos&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Om OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;Ferramenta licenciada sob a LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia direto&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia selecionando um idioma&quot;
++WikipediaConf(CurLang,12)=&quot;Concluído !&quot; 
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;ja
++CurLang=13
++WikipediaConf(CurLang,0)=&quot;ja&quot; 
++WikipediaConf(CurLang,1)=&quot;日本語&quot; 
++WikipediaConf(CurLang,2)=&quot;http://ja.wikipedia.org/wiki/Special:Search?search=&quot; 
++WikipediaConf(CurLang,3)=&quot;&amp;go=Go&quot; 
++WikipediaConf(CurLang,4)=&quot;検索単語入力 :&quot; 
++WikipediaConf(CurLang,5)=&quot;OpenOffice.orgにブラウザが設定されていません&quot; 
++WikipediaConf(CurLang,6)=&quot;メニューにあるHTTPパラメーターを設定してください。&quot; 
++WikipediaConf(CurLang,7)=&quot;ツール &gt; オプション &gt; OpenOffice.org &gt; ヘルププログラム&quot; 
++&apos;needed for install process 
++WikipediaConf(CurLang,8)=&quot;About OOoWikipedia ...&quot; 
++WikipediaConf(CurLang,9)=&quot;このツールはLGPLでライセンスされています&quot; 
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia  direct&quot; 
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia  select&quot; 
++WikipediaConf(CurLang,12)=&quot;完了!&quot;
++WikipediaConf(CurLang,13)=&quot;Many thanks to all translators&quot;
++
++&apos;ko
++CurLang=14
++WikipediaConf(CurLang,0)=&quot;ko&quot;
++WikipediaConf(CurLang,1)=&quot;한국어&quot;
++WikipediaConf(CurLang,2)=&quot;http://ko.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Go&quot;
++WikipediaConf(CurLang,4)=&quot;검색을 원하는 단어를 입력하십시오 :&quot;
++WikipediaConf(CurLang,5)=&quot;오픈오피스에 연결된 브라우저가 없습니다.&quot;
++WikipediaConf(CurLang,6)=&quot;메뉴에 있는 HTTP 파라미터를 입력하십시오.&quot;
++WikipediaConf(CurLang,7)=&quot;도구 &gt; 옵션 &gt; OpenOffice.org &gt; 추가 기능&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;About OOoWikipedia ...&quot;
++WikipediaConf(CurLang,9)=&quot;이 프로그램은 LGPL 라이센스를 따릅니다.&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Choice&quot;
++WikipediaConf(CurLang,12)=&quot;완료 !&quot;
++WikipediaConf(CurLang,13)=&quot;번역해주신 분들께 감사드립니다.&quot;
++
++&apos;zh
++CurLang=15
++WikipediaConf(CurLang,0)=&quot;zh&quot;
++WikipediaConf(CurLang,1)=&quot;中文&quot;
++WikipediaConf(CurLang,2)=&quot;http://zh.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Go&quot;
++WikipediaConf(CurLang,4)=&quot;输入单词查询 :&quot;
++WikipediaConf(CurLang,5)=&quot;找不到相应的连接 OOo&quot;
++WikipediaConf(CurLang,6)=&quot;请输入目录上的 HTTP 参数&quot;
++WikipediaConf(CurLang,7)=&quot;工具 &gt; 选项 &gt; OpenOffice.org &gt; 追加选项 &quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;关于维基...&quot;
++WikipediaConf(CurLang,9)=&quot;本系统由 LGPL 提供版权&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Choice&quot;
++WikipediaConf(CurLang,12)=&quot;完成 !&quot;
++WikipediaConf(CurLang,13)=&quot;感谢所有翻译人员&quot;
++
++&apos;hebrew
++CurLang=16
++WikipediaConf(CurLang,0)=&quot;he&quot;
++WikipediaConf(CurLang,1)=&quot;עברית&quot;
++WikipediaConf(CurLang,2)=&quot;http://he.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Go&quot;
++WikipediaConf(CurLang,4)=&quot;הכנס מילה לחיפוש :&quot;
++WikipediaConf(CurLang,5)=&quot;אין דפדפן המשוייך לאופן אופיס&quot;
++WikipediaConf(CurLang,6)=&quot;מלא בוקשה את מאפיין ה HTTP בתפריט&quot;
++WikipediaConf(CurLang,7)=&quot;כלים &gt; אפשרויות &gt; OpenOffice.org &gt; עזרים&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;אודות ויקיפדיה ...&quot;
++WikipediaConf(CurLang,9)=&quot;הכלי מוצע תחת רישיון LGPL&quot;
++WikipediaConf(CurLang,10)=&quot;OOoWikipedia Direct&quot;
++WikipediaConf(CurLang,11)=&quot;OOoWikipedia Choice&quot;
++WikipediaConf(CurLang,12)=&quot;סיום !&quot;
++WikipediaConf(CurLang,13)=&quot;תודה רבה לכל המתרגמים&quot;
++
++&apos;HUngarian
++CurLang=17
++WikipediaConf(CurLang,0)=&quot;hu&quot;
++WikipediaConf(CurLang,1)=&quot;Magyar&quot;
++WikipediaConf(CurLang,2)=&quot;http://hu.wikipedia.org/wiki/Special:Search?search=&quot;
++WikipediaConf(CurLang,3)=&quot;&amp;go=Ugrás&quot;
++WikipediaConf(CurLang,4)=&quot;Írja be a keresett szót:&quot;
++WikipediaConf(CurLang,5)=&quot;Az OOo-hoz nincs böngésző rendelve.&quot;
++WikipediaConf(CurLang,6)=&quot;Írja be a menüben található HTTP-paramétert.&quot;
++WikipediaConf(CurLang,7)=&quot;Eszközök &gt; Beállítások &gt; OpenOffice.org &gt; Segédprogramok&quot;
++&apos;needed for install process
++WikipediaConf(CurLang,8)=&quot;Az OOoWikipedia névjegye...&quot;
++WikipediaConf(CurLang,9)=&quot;Erre az eszközre az LGPL licenc vonatkozik.&quot;
++WikipediaConf(CurLang,10)=&quot;Közvetlen OOoWikipedia&quot;
++WikipediaConf(CurLang,11)=&quot;Nyelvválasztós OOoWikipedia&quot;
++WikipediaConf(CurLang,12)=&quot;Kész!&quot;
++WikipediaConf(CurLang,13)=&quot;Köszönjük a fordítók munkáját!&quot;
++
++end sub
++
++&apos;---------------------
++Function FindSelectedWord() as string
++
++dim theWord as string
++
++if ThisComponent.getCurrentSelection.supportsService(&quot;com.sun.star.table.Cell&quot;) then
++	theWord=trim(thiscomponent.getCurrentSelection.string)
++endif
++
++if ThisComponent.getCurrentSelection.supportsService(&quot;com.sun.star.drawing.Shapes&quot;) then
++	theWord=trim(ThisComponent.getCurrentSelection.getByIndex(0).string)
++endif
++
++if ThisComponent.getCurrentSelection.supportsService(&quot;com.sun.star.text.TextRanges&quot;) then
++	theWord=trim(ThisComponent.getCurrentSelection.getByIndex(0).string)
++	if TheWord=&quot;&quot; then
++		&apos;guess the word tant contains the cursor
++		curseurVisible = ThisComponent.CurrentController.ViewCursor
++		monCurseur = curseurVisible.text.createTextCursorByRange(CurseurVisible)
++		monCurseur.gotoStartofWord(False)
++		monCurseur.gotoEndOfWord(True)
++		theWord=monCurseur.string
++	endif	
++endif
++
++FindSelectedWord=theWord
++
++end function
++&apos;----------------------
++
++Sub CheckWiki(index as long)
++
++on error resume next
++&apos;This &apos;solves&apos; some errors on Windows with both firefox and IE6 in use
++&apos;thanks to Gaspard for its help
++
++Selection=FindSelectedWord()
++
++if Selection=&quot;&quot; then
++	LeMot=inputBox(WikipediaConf(index,4))
++	if leMot=&quot;&quot; then 
++		exit sub
++	endif
++else
++	LeMot=Selection
++endif
++
++objlancer = CreateUnoService(&quot;com.sun.star.system.SystemShellExecute&quot;)
++Adresse=WikipediaConf(index,2)&amp; LeMot &amp;WikipediaConf(index,3)
++
++Adresse=convertToURL(adresse)
++
++handleErrors=com.sun.star.system.SystemShellExecuteFlags.NO_SYSTEM_ERROR_MESSAGE &apos;=1 or DEFAULTS=0
++
++objlancer.execute(Adresse, &quot;&quot;, handleErrors)
++ 
++End Sub
++
++&apos;------------------------
++sub ChooseWikipedia(install as boolean, optional ISOLang as string) 
++
++if install then
++	DialogLibraries.loadLibrary(&quot;OOoWikipedia&quot;)
++	Feuille=DialogLibraries.OOoWikipedia.Dialog1
++	indexWikiLang=WikiIndexFromISO(ISOLang)
++else
++	globalscope.DialogLibraries.loadLibrary(&quot;OOoWikipedia&quot;)
++	Feuille=globalscope.DialogLibraries.OOoWikipedia.Dialog1
++	indexWikiLang=indexWikiLang
++endif
++
++oDlg=CreateUnoDialog(Feuille)
++
++&apos;fill the list box
++dim TempArray(0 to nbLangues-1)
++for i=1 to nbLangues
++	TempArray(i-1)=WikipediaConf(i,1)
++next i
++myList=oDlg.getControl(&quot;lstWiki&quot;)
++myList.addItems(TempArray(),0)
++myList.selectItemPos(indexWikiLang-1,true)
++
++indexWikiLang = -1 &apos;set to dummy for aborting
++
++oDlg.execute
++
++end sub
++&apos;--------------------------
++sub GoWikipedia
++	myList=oDlg.getControl(&quot;lstWiki&quot;)
++	indexWikiLang=myList.selectedItemPos + 1
++	oDlg.endExecute
++end sub
++&apos;------------------------------
++function checkHTTP()
++
++Dim aSettings, aConfigProvider
++Dim aParams2(0) As new com.sun.star.beans.PropertyValue
++
++if getSolarVersion = 680 then
++	&apos;OOo 2
++	checkHTTP = true
++else
++	&apos;OOo 1.1.x
++	aConfigProvider = createUnoService( &quot;com.sun.star.configuration.ConfigurationProvider&quot; )
++	aParams2(0).Name = &quot;nodepath&quot;
++	aParams2(0).Value = &quot;/org.openoffice.Office.Common/ExternalApps/&quot;
++	aSettings = aConfigProvider.createInstanceWithArguments( &quot;com.sun.star.configuration.ConfigurationUpdateAccess&quot;, aParams2() )
++	checkHTTP=(trim(aSettings.http)&lt;&gt;&quot;&quot;)
++endif
++
++end Function
++
++&apos;---------------------
++Function WikiIndexFromISO(lang as string) as long
++
++myIndex=DefaultWiki
++
++for i=1 to nbLangues
++	if WikipediaConf(i,0)=lang then
++		myIndex=i
++		exit for
++	endif
++next i
++
++WikiIndexFromISO=myIndex
++
++end function
++&apos;------------------------
++function checkOOoLanguage()
++Dim OOLang as string	
++Dim aSettings, aConfigProvider
++Dim aParams2(0) As new com.sun.star.beans.PropertyValue
++aConfigProvider = createUnoService( &quot;com.sun.star.configuration.ConfigurationProvider&quot; )
++aParams2(0).Name = &quot;nodepath&quot;
++aParams2(0).Value = &quot;/org.openoffice.Setup/L10N&quot;
++aSettings = aConfigProvider.createInstanceWithArguments(&quot;com.sun.star.configuration.ConfigurationAccess&quot;, aParams2() )
++
++OOLang = aSettings.getbyname(&quot;ooLocale&quot;)
++OOLang =lcase(Left(trim(OOLang),2))
++
++checkOOoLanguage = OOLang
++	
++end function
++&apos;-----------------------
++function FindAddonDirectory(libraryName)
++
++dim newSplit()
++redim NewSplit(0)
++
++if basiclibraries.isLibraryLink(libraryName) then
++
++	thePath = basiclibraries.getLibraryLinkURL(libraryName)
++	splitted = split(thePath,&quot;/&quot;)
++	newSplit() = splitted()
++	redim preserve newSplit(0 to ubound(splitted)-2)
++	theNewPath = join(NewSplit(),&quot;/&quot;)+&quot;/&quot;+libraryName
++
++else
++	
++	aService = CreateUnoService(&quot;com.sun.star.util.PathSubstitution&quot;)
++	theNewPath=aService.substituteVariables(&quot;$(user)/basic/&quot; + libraryName, true)
++	
++endif
++
++FindAddonDirectory = theNewPath
++
++end function
++&apos;-----------
++Sub OpenAboutFile()
++
++dim args()
++
++myURL = slash(FindAddonDirectory(&quot;OOoWikipedia&quot;)) + &quot;OOoWikipedia.sxw&quot;
++stardesktop.loadcomponentFromURL(myURL,&quot;_blank&quot;,0,args())
++
++end sub
++&apos;---------
++function slash(byVal thePath)
++	if right(thePath,1)&lt;&gt; &quot;/&quot; then
++		thePath = thePath + &quot;/&quot;
++	endif
++	slash = thePath
++end function
++&apos;--------------------
++Sub Help
++
++call DefineWikis
++indexWikiLang=WikiIndexFromISO(checkOOoLanguage)
++
++globalscope.DialogLibraries.loadLibrary(&quot;OOoWikipedia&quot;)
++Feuille=globalscope.DialogLibraries.OOoWikipedia.Dialog2
++oDlg=CreateUnoDialog(Feuille)
++
++oDlg.getControl(&quot;lblTitle&quot;).text = &quot;OOoWikipedia &quot;+version
++chaine = &quot;Laurent Godard&quot;+chr(10)
++chaine = chaine + &quot;lgodard@indesko.com&quot;+chr(10)
++chaine = chaine + &quot;http://www.indesko.com&quot; + chr(10)+chr(10)
++chaine = chaine + WikipediaConf(indexWikiLang,9)+chr(10)
++chaine = chaine + WikipediaConf(indexWikiLang,13)
++
++oDlg.getControl(&quot;lblMore&quot;).text = chaine
++
++oDlg.title = WikipediaConf(indexWikiLang,8)
++
++oDlg.execute
++
++end sub
++</script:module>
+\ Nincs újsor a fájl végén
+diff -Naur -x .svn wizards/source/ooowikipedia/script.xlb wizards/source/ooowikipedia/script.xlb
+--- wizards/source/ooowikipedia/script.xlb	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/script.xlb	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,5 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
++<library:library xmlns:library="http://openoffice.org/2000/library" library:name="OOoWikipedia" library:readonly="false" library:passwordprotected="false">
++ <library:element library:name="Module1"/>
++</library:library>
+\ Nincs újsor a fájl végén
+diff -Naur -x .svn wizards/source/premium/dialog.xlb wizards/source/premium/dialog.xlb
+--- wizards/source/premium/dialog.xlb	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/premium/dialog.xlb	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,3 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
++<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Premium" library:readonly="true" library:passwordprotected="false"/>
+diff -Naur -x .svn wizards/source/premium/makefile.mk wizards/source/premium/makefile.mk
+--- wizards/source/premium/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/premium/makefile.mk	2007-12-24 13:42:38.000000000 +0100
+@@ -0,0 +1,57 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.3 $
++#
++#   last change: $Author: rt $ $Date: 2005/09/09 10:12:11 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++PRJ=..$/..
++
++PRJNAME=wizards
++TARGET=premium
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++.INCLUDE : $(PRJ)$/util$/target.pmk
++
++.IF "$(WITH_EXTRA_ACCESSORY)" == "YES"
++
++# --- Files --------------------------------------------------------
++
++ZIP1TARGET      = $(PREMIUM_ALL_TARGET)
++ZIP1LIST        = *.xdl *.xba *.xlb
++
++.ENDIF
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :  target.mk
++
+diff -Naur -x .svn wizards/source/premium/OOoHelpDocumentation.xba wizards/source/premium/OOoHelpDocumentation.xba
+--- wizards/source/premium/OOoHelpDocumentation.xba	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/premium/OOoHelpDocumentation.xba	2007-01-09 18:36:58.000000000 +0100
+@@ -0,0 +1,70 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
++<script:module xmlns:script="http://openoffice.org/2000/script" script:name="OOoHelpDocumentation" script:language="StarBasic">REM  *****  BASIC  *****
++  &apos;Author : KAMI
++  &apos;e-mail : kami_@openoffice.org
++  &apos;This code is part of Openoffice.org Premium - The ultimate OpenOffice.org extension
++  &apos;Licensed under same way as OpenOffice.org (LGPL)
++  &apos;
++  &apos;Please support the ongoing development - for the details drop a line to me.
++
++Sub Main
++  OpenHelpDocument
++End Sub
++
++Function OOoLanguage() as string
++  &apos;Author : Laurent Godard
++  &apos;e-mail : listes.godard@laposte.net
++
++  Dim oSet, oConfigProvider
++  Dim oParm(0) As New com.sun.star.beans.PropertyValue
++  Dim sProvider$, sAccess$
++  sProvider = &quot;com.sun.star.configuration.ConfigurationProvider&quot;
++  sAccess   = &quot;com.sun.star.configuration.ConfigurationAccess&quot;
++  oConfigProvider = createUnoService(sProvider)
++  oParm(0).Name = &quot;nodepath&quot;
++  oParm(0).Value = &quot;/org.openoffice.Setup/L10N&quot;
++  oSet = oConfigProvider.createInstanceWithArguments(sAccess, oParm())
++
++  OOoLanguage= oSet.getbyname(&quot;ooLocale&quot;)    &apos;en-US
++End Function
++
++Sub OpenHelpDocument
++
++REM Variables
++  Dim mArgs(2) as New com.sun.star.beans.PropertyValue
++  Dim oDoc
++  Dim oFrame
++  Dim s As String
++
++
++REM Location of Help Document
++ServiceSubst = CreateUnoService(&quot;com.sun.star.util.PathSubstitution&quot;)
++  s = ServiceSubst.substituteVariables(&quot;$(insturl)&quot;, true) &amp; &quot;/share/samples/&quot; &amp; OOoLanguage() &amp; &quot;/Documentations/&quot;
++
++  mArgs(0).Name = &quot;ReadOnly&quot;
++  mArgs(0).Value = True
++  mArgs(1).Name = &quot;MacroExecutionMode&quot;
++  mArgs(1).Value = 4
++  mArgs(2).Name = &quot;AsTemplate&quot;
++  mArgs(2).Value = FALSE
++
++REM Error handling - exist
++  If FileExists(s &amp; &quot;ooo2.odt&quot;) Then
++REM Open up, open up
++    oDoc = StarDesktop.LoadComponentFromUrl(s &amp; &quot;ooo2.odt&quot;, &quot;_blank&quot;, 2, mArgs())
++  Elseif  FileExists(s &amp; &quot;ooo2.odm&quot;) Then
++    oDoc = StarDesktop.LoadComponentFromUrl(s &amp; &quot;ooo2.odm&quot;, &quot;_blank&quot;, 2, mArgs())  
++  Else
++    Print &quot;Unable to open &quot; &amp; s &amp; &quot;ooo2.odt/ooo2.odm.&quot;
++  End If
++
++REM Error handling
++  If IsNull(oDoc) OR IsEmpty(oDoc) Then
++    Print &quot;Unable to load &quot; &amp; s &amp; &quot;ooo2.odt/ooo2.odm.&quot;
++  End If
++
++End Sub
++
++
++</script:module>
+\ Nincs újsor a fájl végén
+diff -Naur -x .svn wizards/source/premium/script.xlb wizards/source/premium/script.xlb
+--- wizards/source/premium/script.xlb	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/premium/script.xlb	2007-01-09 18:36:59.000000000 +0100
+@@ -0,0 +1,5 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
++<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Premium" library:readonly="true" library:passwordprotected="false">
++ <library:element library:name="OOoHelpDocumentation"/>
++</library:library>
+--- wizards/source/premium/delzip	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/premium/delzip	2007-12-26 17:59:19.000000000 +0100
+@@ -0,0 +1 @@
++
+--- wizards/source/ooowikipedia/delzip	1970-01-01 01:00:00.000000000 +0100
++++ wizards/source/ooowikipedia/delzip	2007-12-26 17:59:12.000000000 +0100
+@@ -0,0 +1 @@
++
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-standard-filter-options-ods-hack.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-standard-filter-options-ods-hack.diff
@@ -0,0 +1,188 @@
+Index: xmloff/inc/xmloff/xmltoken.hxx
+===================================================================
+RCS file: /cvs/xml/xmloff/inc/xmloff/xmltoken.hxx,v
+retrieving revision 1.6
+diff -u -p -r1.6 xmltoken.hxx
+--- xmloff/inc/xmloff/xmltoken.hxx	6 Jul 2007 12:20:12 -0000	1.6
++++ xmloff/inc/xmloff/xmltoken.hxx	9 Aug 2007 18:29:21 -0000
+@@ -283,6 +283,7 @@ namespace xmloff { namespace token {
+         XML_BASE_CELL_ADDRESS,
+         XML_BASELINE,
+         XML_BEFORE_DATE_TIME,
++        XML_BEGINS,
+         XML_BELOW,
+         XML_BETWEEN_DATE_TIMES,
+         XML_BEVEL,
+@@ -447,6 +448,7 @@ namespace xmloff { namespace token {
+         XML_CONSECUTIVE_NUMBERING,
+         XML_CONSOLIDATION,
+         XML_CONSTANT,
++        XML_CONTAINS,
+         XML_CONTAINS_ERROR,
+         XML_CONTAINS_HEADER,
+         XML_CONTENT,
+@@ -666,6 +668,7 @@ namespace xmloff { namespace token {
+         XML_ENDNOTE_CITATION,
+         XML_ENDNOTE_REF,
+         XML_ENDNOTES_CONFIGURATION,
++        XML_ENDS,
+         XML_ENGRAVED,
+         XML_EQ,
+         XML_EQUAL_AUTHOR,
+@@ -1229,6 +1232,7 @@ namespace xmloff { namespace token {
+         XML_NORMALS_DIRECTION,
+         XML_NORMALS_KIND,
+         XML_NOT,
++        XML_NOT_CONTAINS,
+         XML_NOT_EQUAL_DATE,
+         XML_NOTE,
+         XML_NOTES,
+Index: xmloff/source/core/xmltoken.cxx
+===================================================================
+RCS file: /cvs/xml/xmloff/source/core/xmltoken.cxx,v
+retrieving revision 1.109
+diff -u -p -r1.109 xmltoken.cxx
+--- xmloff/source/core/xmltoken.cxx	6 Jul 2007 12:21:09 -0000	1.109
++++ xmloff/source/core/xmltoken.cxx	9 Aug 2007 18:29:22 -0000
+@@ -291,6 +291,7 @@ namespace xmloff { namespace token {
+         TOKEN( "base-cell-address",               XML_BASE_CELL_ADDRESS ),
+         TOKEN( "baseline",                        XML_BASELINE ),
+         TOKEN( "before-date-time",                XML_BEFORE_DATE_TIME ),
++        TOKEN( "begins",                          XML_BEGINS),
+         TOKEN( "below",                           XML_BELOW ),
+         TOKEN( "between-date-times",              XML_BETWEEN_DATE_TIMES ),
+         TOKEN( "bevel",                           XML_BEVEL ),
+@@ -455,6 +456,7 @@ namespace xmloff { namespace token {
+         TOKEN( "consecutive-numbering",           XML_CONSECUTIVE_NUMBERING ),
+         TOKEN( "consolidation",                   XML_CONSOLIDATION ),
+         TOKEN( "constant",                        XML_CONSTANT ),
++        TOKEN( "contains",                        XML_CONTAINS ),
+         TOKEN( "contains-error",                  XML_CONTAINS_ERROR ),
+         TOKEN( "contains-header",                 XML_CONTAINS_HEADER ),
+         TOKEN( "content",                         XML_CONTENT ),
+@@ -674,6 +676,7 @@ namespace xmloff { namespace token {
+         TOKEN( "endnote-citation",                XML_ENDNOTE_CITATION ),
+         TOKEN( "endnote-ref",                     XML_ENDNOTE_REF ),
+         TOKEN( "endnotes-configuration",          XML_ENDNOTES_CONFIGURATION ),
++        TOKEN( "ends",                            XML_ENDS ),
+         TOKEN( "engraved",                        XML_ENGRAVED ),
+         TOKEN( "eq",                              XML_EQ ),
+         TOKEN( "equal-author",                    XML_EQUAL_AUTHOR ),
+@@ -1237,6 +1240,7 @@ namespace xmloff { namespace token {
+         TOKEN( "normals-direction",               XML_NORMALS_DIRECTION ),
+         TOKEN( "normals-kind",                    XML_NORMALS_KIND ),
+         TOKEN( "not",                             XML_NOT ),
++        TOKEN( "!contains",                       XML_NOT_CONTAINS ),
+         TOKEN( "not-equal-date",                  XML_NOT_EQUAL_DATE ),
+         TOKEN( "note",                            XML_NOTE ),
+         TOKEN( "notes",                           XML_NOTES ),
+Index: sc/source/filter/xml/XMLExportDataPilot.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/xml/XMLExportDataPilot.cxx,v
+retrieving revision 1.27
+diff -u -p -r1.27 XMLExportDataPilot.cxx
+--- sc/source/filter/xml/XMLExportDataPilot.cxx	6 Jul 2007 12:40:04 -0000	1.27
++++ sc/source/filter/xml/XMLExportDataPilot.cxx	9 Aug 2007 18:29:25 -0000
+@@ -196,6 +196,14 @@ rtl::OUString ScXMLExportDataPilot::getD
+ 			return GetXMLToken(XML_TOP_PERCENT);
+ 		case SC_TOPVAL :
+ 			return GetXMLToken(XML_TOP_VALUES);
++		case SC_BEGINS_WITH:
++			return GetXMLToken(XML_BEGINS);
++		case SC_ENDS_WITH:
++			return GetXMLToken(XML_ENDS);
++		case SC_CONTAINS:
++			return GetXMLToken(XML_CONTAINS);
++		case SC_DOES_NOT_CONTAIN:
++			return GetXMLToken(XML_NOT_CONTAINS);
+ 		default:
+             DBG_ERROR("This FilterOperator is not supported.");
+ 	}
+Index: sc/source/filter/xml/XMLExportDatabaseRanges.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/xml/XMLExportDatabaseRanges.cxx,v
+retrieving revision 1.22
+diff -u -p -r1.22 XMLExportDatabaseRanges.cxx
+--- sc/source/filter/xml/XMLExportDatabaseRanges.cxx	22 May 2007 20:02:49 -0000	1.22
++++ sc/source/filter/xml/XMLExportDatabaseRanges.cxx	9 Aug 2007 18:29:26 -0000
+@@ -301,6 +301,14 @@ rtl::OUString ScXMLExportDatabaseRanges:
+         {
+             // added to avoid warnings
+         }
++		case 100+SC_BEGINS_WITH:
++			return GetXMLToken(XML_BEGINS);
++		case 100+SC_ENDS_WITH:
++			return GetXMLToken(XML_ENDS);
++		case 100+SC_CONTAINS:
++			return GetXMLToken(XML_CONTAINS);
++		case 100+SC_DOES_NOT_CONTAIN:
++			return GetXMLToken(XML_NOT_CONTAINS);
+ 	}
+ 	return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("="));
+ }
+Index: sc/source/filter/xml/xmlfilti.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/xml/xmlfilti.cxx,v
+retrieving revision 1.16
+diff -u -p -r1.16 xmlfilti.cxx
+--- sc/source/filter/xml/xmlfilti.cxx	22 May 2007 20:04:07 -0000	1.16
++++ sc/source/filter/xml/xmlfilti.cxx	9 Aug 2007 18:29:26 -0000
+@@ -386,6 +386,14 @@ void ScXMLConditionContext::getOperatorX
+ 		aFilterOperator = sheet::FilterOperator_TOP_PERCENT;
+ 	else if (IsXMLToken(sTempOperator, XML_TOP_VALUES))
+ 		aFilterOperator = sheet::FilterOperator_TOP_VALUES;
++	else if (IsXMLToken(sTempOperator, XML_BEGINS))
++		aFilterOperator = (sheet::FilterOperator) (100+SC_BEGINS_WITH);
++	else if (IsXMLToken(sTempOperator, XML_ENDS))
++		aFilterOperator = (sheet::FilterOperator) (100+SC_ENDS_WITH);
++	else if (IsXMLToken(sTempOperator, XML_CONTAINS))
++		aFilterOperator = (sheet::FilterOperator) (100+SC_CONTAINS);
++	else if (IsXMLToken(sTempOperator, XML_NOT_CONTAINS))
++		aFilterOperator = (sheet::FilterOperator) (100+SC_DOES_NOT_CONTAIN);
+ }
+ 
+ void ScXMLConditionContext::EndElement()
+@@ -751,6 +759,14 @@ void ScXMLDPConditionContext::getOperato
+ 		aFilterOperator = SC_TOPPERC;
+ 	else if (IsXMLToken(sTempOperator, XML_TOP_VALUES))
+ 		aFilterOperator = SC_TOPVAL;
++	else if (IsXMLToken(sTempOperator, XML_BEGINS))
++		aFilterOperator = SC_BEGINS_WITH;
++	else if (IsXMLToken(sTempOperator, XML_ENDS))
++		aFilterOperator = SC_ENDS_WITH;
++	else if (IsXMLToken(sTempOperator, XML_CONTAINS))
++		aFilterOperator = SC_CONTAINS;
++	else if (IsXMLToken(sTempOperator, XML_NOT_CONTAINS))
++		aFilterOperator = SC_DOES_NOT_CONTAIN;
+ }
+ 
+ void ScXMLDPConditionContext::EndElement()
+Index: sc/source/ui/unoobj/datauno.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/unoobj/datauno.cxx,v
+retrieving revision 1.28
+diff -u -p -r1.28 datauno.cxx
+--- sc/source/ui/unoobj/datauno.cxx	5 Mar 2007 14:45:54 -0000	1.28
++++ sc/source/ui/unoobj/datauno.cxx	9 Aug 2007 18:29:27 -0000
+@@ -1180,6 +1180,10 @@ uno::Sequence<sheet::TableFilterField> S
+ 			case SC_BOTVAL:			aField.Operator = sheet::FilterOperator_BOTTOM_VALUES;  break;
+ 			case SC_TOPPERC:		aField.Operator = sheet::FilterOperator_TOP_PERCENT;	  break;
+ 			case SC_BOTPERC:		aField.Operator = sheet::FilterOperator_BOTTOM_PERCENT; break;
++			case SC_BEGINS_WITH: aField.Operator = (sheet::FilterOperator) (100+SC_BEGINS_WITH); break;
++			case SC_ENDS_WITH: aField.Operator = (sheet::FilterOperator) (100+SC_ENDS_WITH); break;
++			case SC_CONTAINS: aField.Operator = (sheet::FilterOperator) (100+SC_CONTAINS); break;
++			case SC_DOES_NOT_CONTAIN: aField.Operator = (sheet::FilterOperator) (100+SC_DOES_NOT_CONTAIN); break;
+ 			default:
+ 				DBG_ERROR("Falscher Filter-enum");
+ 				aField.Operator = sheet::FilterOperator_EMPTY;
+@@ -1234,6 +1238,10 @@ void SAL_CALL ScFilterDescriptorBase::se
+ 			case sheet::FilterOperator_BOTTOM_VALUES:	rEntry.eOp = SC_BOTVAL;		 break;
+ 			case sheet::FilterOperator_TOP_PERCENT:		rEntry.eOp = SC_TOPPERC;		 break;
+ 			case sheet::FilterOperator_BOTTOM_PERCENT:	rEntry.eOp = SC_BOTPERC;		 break;
++			case 100+SC_BEGINS_WITH: rEntry.eOp = SC_BEGINS_WITH; break;
++			case 100+SC_ENDS_WITH: rEntry.eOp = SC_ENDS_WITH; break;
++			case 100+SC_CONTAINS: rEntry.eOp = SC_CONTAINS; break;
++			case 100+SC_DOES_NOT_CONTAIN: rEntry.eOp = SC_DOES_NOT_CONTAIN; break;
+ 			case sheet::FilterOperator_EMPTY:
+                 {
+                     rEntry.eOp = SC_EQUAL;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-delete-rows-columns-remembers-content.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-delete-rows-columns-remembers-content.diff
@@ -0,0 +1,28 @@
+--- sc/source/ui/view/cellsh1.cxx	2006-11-21 17:22:29.000000000 +0100
++++ sc/source/ui/view/cellsh1.cxx	2006-11-24 10:03:09.000000000 +0100
+@@ -192,13 +192,21 @@ void ScCellShell::ExecuteEdit( SfxReques
+ 			break;
+ 
+ 		case SID_DEL_ROWS:
+-			pTabViewShell->DeleteCells( DEL_DELROWS );
+-			rReq.Done();
++			{
++				WaitObject aWait( GetViewData()->GetDialogParent() );
++				pTabViewShell->CopyToClip( NULL, FALSE, TRUE, TRUE );
++				pTabViewShell->DeleteCells( DEL_DELROWS );
++				rReq.Done();
++			}
+ 			break;
+ 
+ 		case SID_DEL_COLS:
+-			pTabViewShell->DeleteCells( DEL_DELCOLS );
+-			rReq.Done();
++			{
++				WaitObject aWait( GetViewData()->GetDialogParent() );
++				pTabViewShell->CopyToClip( NULL, FALSE, TRUE, TRUE );
++				pTabViewShell->DeleteCells( DEL_DELCOLS );
++				rReq.Done();
++			}
+ 			break;
+ 
+ 		case FID_INS_CELL:
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gallery_inc_gallery.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gallery_inc_gallery.diff
@@ -0,0 +1,122 @@
+--- svx/inc/gallery.hxx.orig	2006-11-01 12:04:55.000000000 +0100
++++ svx/inc/gallery.hxx	2006-12-19 22:15:34.214969900 +0100
+@@ -101,10 +101,116 @@
+ #define GALLERY_THEME_EDUCATION         33
+ #define GALLERY_THEME_TROUBLE           34
+ #define GALLERY_THEME_SCREENBEANS       35
+-#define GALLERY_THEME_FONTWORK			36
+-#define GALLERY_THEME_FONTWORK_VERTICAL	37
+ 
+-#define GALLERY_THEME_DUMMY5            38
++#define GALLERY_THEME_DUMMY5            36
++
++#define GALLERY_THEME_FONTWORK          37
++#define GALLERY_THEME_FONTWORK_VERTICAL 38
++
++#define GALLERY_THEME_SHAPES_POLYGONS            39
++#define GALLERY_THEME_SHAPES_1            40
++#define GALLERY_THEME_SHAPES_2            41
++#define GALLERY_THEME_ANIMALS            42
++#define GALLERY_THEME_CARS            43
++#define GALLERY_THEME_BUGS            44
++#define GALLERY_THEME_CISCO_OTHER            45
++#define GALLERY_THEME_CISCO_MEDIA            46
++#define GALLERY_THEME_CISCO_PRODUCTS            47
++#define GALLERY_THEME_CISCO_WAN_LAN            48
++#define GALLERY_THEME_DOMINO_USUAL            49
++#define GALLERY_THEME_DOMINO_NUMBERED            50
++#define GALLERY_THEME_ELECTRONICS_PARTS_1            51
++#define GALLERY_THEME_ELECTRONICS_PARTS_2            52
++#define GALLERY_THEME_ELECTRONICS_PARTS_3            53
++#define GALLERY_THEME_ELECTRONICS_PARTS_4            54
++#define GALLERY_THEME_ELECTRONICS_CIRCUIT            55
++#define GALLERY_THEME_ELECTRONICS_SIGNS            56
++#define GALLERY_THEME_ELECTRONICS_GAUGES            57
++#define GALLERY_THEME_PEOPLE_1            58
++#define GALLERY_THEME_ARCHITECTURE_OVERLAY            59
++#define GALLERY_THEME_ARCHITECTURE_FURNITURES            60
++#define GALLERY_THEME_ARCHITECTURE_BUILDINGS            61
++#define GALLERY_THEME_ARCHITECTURE_BATHROOM_KITCHEN            62
++#define GALLERY_THEME_ARCHITECTURE_KITCHEN            63
++#define GALLERY_THEME_ARCHITECTURE_WINDOWS_DOORS            64
++#define GALLERY_THEME_FLOWCHARTS_1            65
++#define GALLERY_THEME_FLOWCHARTS_2            66
++#define GALLERY_THEME_FORALSTUDIOA            67
++#define GALLERY_THEME_PHOTOS_FAUNA            68
++#define GALLERY_THEME_PHOTOS_BUILDINGS            69
++#define GALLERY_THEME_PHOTOS_PLANTS            70
++#define GALLERY_THEME_PHOTOS_STATUES            71
++#define GALLERY_THEME_PHOTOS_LANDSCAPES            72
++#define GALLERY_THEME_PHOTOS_CITIES            73
++#define GALLERY_THEME_PHOTOS_FLOWERS            74
++#define GALLERY_THEME_THERAPEUTICS_GENERAL            75
++#define GALLERY_THEME_WEATHER            76
++#define GALLERY_THEME_VECHILES            77
++#define GALLERY_THEME_SIGNS            78
++#define GALLERY_THEME_BLUE_MAN            79
++#define GALLERY_THEME_CHEMISTRY_AMINO_ACIDS            80
++#define GALLERY_THEME_LOGICAL_SIGNS            81
++#define GALLERY_THEME_LOGICAL_GATES            82
++#define GALLERY_THEME_LOGOS            83
++#define GALLERY_THEME_SMILES            84
++#define GALLERY_THEME_ARROWS_1            85
++#define GALLERY_THEME_CLOCK_01_CLOCK            86
++#define GALLERY_THEME_CLOCK_02_CLOCK            87
++#define GALLERY_THEME_CLOCK_03_CLOCK            88
++#define GALLERY_THEME_CLOCK_04_CLOCK            89
++#define GALLERY_THEME_CLOCK_05_CLOCK            90
++#define GALLERY_THEME_CLOCK_06_CLOCK            91
++#define GALLERY_THEME_CLOCK_07_CLOCK            92
++#define GALLERY_THEME_CLOCK_08_CLOCK            93
++#define GALLERY_THEME_CLOCK_09_CLOCK            94
++#define GALLERY_THEME_CLOCK_10_CLOCK            95
++#define GALLERY_THEME_CLOCK_11_CLOCK            96
++#define GALLERY_THEME_CLOCK_12_CLOCK            97
++#define GALLERY_THEME_PNEUMATIC_PARTS            98
++#define GALLERY_THEME_COMPUTER_GENERAL            99
++#define GALLERY_THEME_COMPUTER_NETWORK            100
++#define GALLERY_THEME_COMPUTER_NETWORK_DEVICES            101
++#define GALLERY_THEME_COMPUTER_WIFI            102
++#define GALLERY_THEME_NUMBERS            103
++#define GALLERY_THEME_SIGNS_DANGER            104
++#define GALLERY_THEME_OBJECTS            105
++#define GALLERY_THEME_MAPS_AFRICA            106
++#define GALLERY_THEME_MAPS_UNITED_STATES_OF_AMERICA            107
++#define GALLERY_THEME_MAPS_AUSTRALIA            108
++#define GALLERY_THEME_MAPS_ASIA            109
++#define GALLERY_THEME_MAPS_SOUTH_AMERICA            110
++#define GALLERY_THEME_MAPS_EUROPE            111
++#define GALLERY_THEME_MAPS_EUROPE_1            112
++#define GALLERY_THEME_MAPS_FRANCE            113
++#define GALLERY_THEME_MAPS_FRANCE_COUNTRIES            114
++#define GALLERY_THEME_MAPS_SIGNS            115
++#define GALLERY_THEME_MAPS_CANADA            116
++#define GALLERY_THEME_MAPS_CONTINENTS            117
++#define GALLERY_THEME_MAPS_MIDDLE_EAST            118
++#define GALLERY_THEME_MAPS_MIDDLE_AMERICA            119
++#define GALLERY_THEME_MAPS_MIDDLE_AGES            120
++#define GALLERY_THEME_MAPS_MEXICO            121
++#define GALLERY_THEME_MAPS_ANCIENT_TIMES            122
++#define GALLERY_THEME_MAPS_SIMBOLS            123
++#define GALLERY_THEME_MAPS_HISTORY_1900            124
++#define GALLERY_THEME_MAPS_WORLD            125
++#define GALLERY_THEME_CROPS            126
++#define GALLERY_THEME_FRACTIONS            127
++#define GALLERY_THEME_FLAGS_1            128
++#define GALLERY_THEME_MUSIC_INSTRUMENTS            129
++#define GALLERY_THEME_MUSIC_SHEET_MUSIC            130
++#define GALLERY_THEME_SPECIAL_PICTOGRAMM            131
++#define GALLERY_THEME_PHOTOS_CELEBRATION            132
++#define GALLERY_THEME_PHOTOS_FOODSANDDRINKS            133
++#define GALLERY_THEME_PHOTOS_HUMANS            134
++#define GALLERY_THEME_PHOTOS_OBJECTS            135
++#define GALLERY_THEME_PHOTOS_SPACE            136
++#define GALLERY_THEME_PHOTOS_TRAVEL            137
++#define GALLERY_THEME_OPENOFFICEORG_LOGOS            138
++#define GALLERY_THEME_RELIGION            139
++#define GALLERY_THEME_BUILDINGS            140
++#define GALLERY_THEME_HOMEPAGE2            141
++#define GALLERY_THEME_ELEMENTSBULLETS2            142
+ 
+ // -------------------
+ // - GalleryExplorer -
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extras_solenv.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extras_solenv.diff
@@ -0,0 +1,14 @@
+--- config_office/set_soenv.in.orig	2007-12-24 14:28:24.000000000 +0100
++++ config_office/set_soenv.in	2007-12-24 15:12:17.000000000 +0100
+@@ -2004,6 +2005,11 @@
+ ToFile( "LIBXML_CFLAGS",     "@LIBXML_CFLAGS@",    "e" );
+ ToFile( "LIBXML_LIBS",       "@LIBXML_LIBS@",      "e" );
+ ToFile( "SYSTEM_EXPAT",      "@SYSTEM_EXPAT@",     "e" );
++ToFile( "WITH_EXTRA_GALLERY",       "@WITH_EXTRA_GALLERY@",      "e" );
++ToFile( "WITH_EXTRA_TEMPLATE",       "@WITH_EXTRA_TEMPLATE@",      "e" );
++ToFile( "WITH_EXTRA_SAMPLE",       "@WITH_EXTRA_SAMPLE@",      "e" );
++ToFile( "WITH_EXTRA_FONT",       "@WITH_EXTRA_FONT@",      "e" );
++ToFile( "WITH_EXTRA_ACCESSORY",       "@WITH_EXTRA_ACCESSORY@",      "e" );
+ ToFile( "SYSTEM_DB",         "@SYSTEM_DB@",        "e" );
+ ToFile( "DB_VERSION",        "@DB_VERSION@",       "e" );
+ ToFile( "DB_INCLUDES",       "@DB_INCLUDES@",      "e" );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/jvmfwk-detect-removed-java-2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/jvmfwk-detect-removed-java-2.diff
@@ -0,0 +1,24 @@
+--- jvmfwk/source/framework.cxx.old	2008-05-21 21:46:16.000000000 +0200
++++ jvmfwk/source/framework.cxx	2008-05-22 20:02:15.000000000 +0200
+@@ -885,7 +885,8 @@ javaFrameworkError SAL_CALL jfw_setSelec
+ 		//check if pInfo is the selected JRE
+ 		JavaInfo *currentInfo = NULL;
+ 		errcode = jfw_getSelectedJRE( & currentInfo);
+-		if (errcode != JFW_E_NONE && errcode != JFW_E_INVALID_SETTINGS)
++		if (errcode != JFW_E_NONE && errcode != JFW_E_INVALID_SETTINGS &&
++		    errcode != JFW_E_TRY_AUTOSELECT && errcode != JFW_E_CONFIGURATION )
+ 			return errcode;
+ 	    
+ 		if (jfw_areEqualJavaInfo(currentInfo, pInfo) == sal_False)
+--- svx/source/dialog/optjava.cxx.old	2007-06-27 19:28:51.000000000 +0200
++++ svx/source/dialog/optjava.cxx	2008-05-22 19:58:25.000000000 +0200
+@@ -750,7 +750,8 @@ BOOL SvxJavaOptionsPage::FillItemSet( Sf
+ 
+ 			JavaInfo* pSelectedJava = NULL;
+ 			eErr = jfw_getSelectedJRE( &pSelectedJava );
+-			if ( JFW_E_NONE == eErr || JFW_E_INVALID_SETTINGS == eErr )
++			if ( JFW_E_NONE == eErr || JFW_E_INVALID_SETTINGS == eErr ||
++			     JFW_E_TRY_AUTOSELECT == eErr || JFW_E_CONFIGURATION == eErr )
+ 			{
+ 				if (pSelectedJava == NULL || !jfw_areEqualJavaInfo( pInfo, pSelectedJava ) )
+ 				{
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ucb-gnome-vfs-crashfix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ucb-gnome-vfs-crashfix.diff
@@ -0,0 +1,47 @@
+--- ucb/source/ucp/gvfs/directory.cxx	2006-09-17 15:54:28.000000000 +0200
++++ ucb/source/ucp/gvfs/directory.cxx	2007-03-30 12:58:58.000000000 +0200
+@@ -374,24 +374,23 @@ sal_Bool DataSupplier::getData()
+ 		}
+ 
+ 
+-		GnomeVFSFileInfo fileInfo;
+-        fileInfo.name = 0;
+-		while ((result = gnome_vfs_directory_read_next (dirHandle, &fileInfo)) == GNOME_VFS_OK) {
+-			if( fileInfo.name && fileInfo.name[0] == '.' &&
+-			    ( fileInfo.name[1] == '\0' ||
+-			      ( fileInfo.name[1] == '.' && fileInfo.name[2] == '\0' ) ) )
++		GnomeVFSFileInfo *pFileInfo = gnome_vfs_file_info_new();
++		while ((result = gnome_vfs_directory_read_next (dirHandle, pFileInfo)) == GNOME_VFS_OK) {
++			if( pFileInfo->name && pFileInfo->name[0] == '.' &&
++			    ( pFileInfo->name[1] == '\0' ||
++			      ( pFileInfo->name[1] == '.' && pFileInfo->name[2] == '\0' ) ) )
+ 				continue;
+ 
+ 			switch ( m_pImpl->m_nOpenMode ) {
+ 			case ucb::OpenMode::FOLDERS:
+-				if ( !(fileInfo.valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) ||
+-				     fileInfo.type != GNOME_VFS_FILE_TYPE_DIRECTORY )
++				if ( !(pFileInfo->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) ||
++				     pFileInfo->type != GNOME_VFS_FILE_TYPE_DIRECTORY )
+ 					continue;
+ 				break;
+ 				
+ 			case ucb::OpenMode::DOCUMENTS:
+-				if ( !(fileInfo.valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) ||
+-				     fileInfo.type != GNOME_VFS_FILE_TYPE_REGULAR )
++				if ( !(pFileInfo->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) ||
++				     pFileInfo->type != GNOME_VFS_FILE_TYPE_REGULAR )
+ 					continue;
+ 				break;
+ 				
+@@ -400,8 +399,9 @@ sal_Bool DataSupplier::getData()
+ 				break;
+ 			}
+ 			
+-			m_pImpl->m_aResults.push_back( new ResultListEntry( &fileInfo ) );
++			m_pImpl->m_aResults.push_back( new ResultListEntry( pFileInfo ) );
+ 		}
++		g_free( pFileInfo );
+ #ifdef DEBUG
+ 		g_warning ("Got %d directory entries", result);
+ #endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-registry.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-registry.diff
@@ -0,0 +1,6 @@
+--- registry/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ registry/prj/tests.lst	2007-09-07 09:18:31.000000000 +0200
+@@ -0,0 +1,3 @@
++rg   registry\test                                      nmake - all rg_test NULL
++#depends on idlc: rg   registry\test\regcompare                           nmake - all rg_test_regcompare rg_utl NULL
++#depends on idlc: rg   registry\workben                                   nmake - all rg_workben rg_utl NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/toolbars_sd.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/toolbars_sd.diff
@@ -0,0 +1,325 @@
+diff -Naur sd.old/uiconfig/sdraw/toolbar/connectorsbar.xml sd/uiconfig/sdraw/toolbar/connectorsbar.xml
+--- sd.old/uiconfig/sdraw/toolbar/connectorsbar.xml	2005-01-31 10:01:21.000000000 +0100
++++ sd/uiconfig/sdraw/toolbar/connectorsbar.xml	2008-04-10 09:21:40.000000000 +0200
+@@ -2,34 +2,34 @@
+ <!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+ <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <toolbar:toolbaritem xlink:href=".uno:Connector" toolbar:helpid="27058"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:visible="false" toolbar:helpid="27119"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:helpid="27119"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowEnd" toolbar:helpid="27120"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorArrows" toolbar:helpid="27121"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:visible="false" toolbar:helpid="27122"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:visible="false" toolbar:helpid="27123"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:visible="false" toolbar:helpid="27124"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:helpid="27122"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:helpid="27123"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:helpid="27124"/>
+  <toolbar:toolbarbreak/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLines" toolbar:helpid="27139"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:visible="false" toolbar:helpid="27140"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:helpid="27140"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowEnd" toolbar:helpid="27141"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrows" toolbar:helpid="27142"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:visible="false" toolbar:helpid="27143"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:visible="false" toolbar:helpid="27144"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:visible="false" toolbar:helpid="27145"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:helpid="27143"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:helpid="27144"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:helpid="27145"/>
+  <toolbar:toolbarbreak/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLine" toolbar:helpid="27125"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:visible="false" toolbar:helpid="27126"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:helpid="27126"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowEnd" toolbar:helpid="27127"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrows" toolbar:helpid="27128"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:visible="false" toolbar:helpid="27129"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:visible="false" toolbar:helpid="27130"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:visible="false" toolbar:helpid="27131"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:helpid="27129"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:helpid="27130"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:helpid="27131"/>
+  <toolbar:toolbarbreak/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorCurve" toolbar:helpid="27132"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:visible="false" toolbar:helpid="27133"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:helpid="27133"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowEnd" toolbar:helpid="27134"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrows" toolbar:helpid="27135"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:visible="false" toolbar:helpid="27136"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:visible="false" toolbar:helpid="27137"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:visible="false" toolbar:helpid="27138"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:helpid="27136"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:helpid="27137"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:helpid="27138"/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/sdraw/toolbar/insertbar.xml sd/uiconfig/sdraw/toolbar/insertbar.xml
+--- sd.old/uiconfig/sdraw/toolbar/insertbar.xml	2007-06-27 17:48:17.000000000 +0200
++++ sd/uiconfig/sdraw/toolbar/insertbar.xml	2008-04-10 07:49:53.000000000 +0200
+@@ -3,19 +3,19 @@
+ <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+  <toolbar:toolbaritem xlink:href=".uno:InsertPage" toolbar:helpid="helpid:27014"  />
+  <toolbar:toolbarseparator/>
+-	<toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563"  toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ 	<toolbar:toolbarseparator/>
+-	<toolbar:toolbaritem xlink:href=".uno:ImportFromFile" toolbar:helpid="helpid:27015"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertSpreadsheet" toolbar:helpid="helpid:10217"  />
++	<toolbar:toolbaritem xlink:href=".uno:ImportFromFile" toolbar:helpid="helpid:27015" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertSpreadsheet" toolbar:helpid="helpid:10217" />
+ 	<toolbar:toolbarseparator/>
+-	<toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertSound" toolbar:helpid="helpid:5676"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertVideo" toolbar:helpid="helpid:5677"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertMath" toolbar:helpid="helpid:27106"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="helpid:10140"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673"  toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertSound" toolbar:helpid="helpid:5676" toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertVideo" toolbar:helpid="helpid:5677" toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertMath" toolbar:helpid="helpid:27106" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="helpid:10140" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673" />
+ 	<toolbar:toolbarseparator/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/sdraw/toolbar/standardbar.xml sd/uiconfig/sdraw/toolbar/standardbar.xml
+--- sd.old/uiconfig/sdraw/toolbar/standardbar.xml	2005-01-27 16:26:42.000000000 +0100
++++ sd/uiconfig/sdraw/toolbar/standardbar.xml	2008-04-10 09:20:54.000000000 +0200
+@@ -29,7 +29,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+- <toolbar:toolbaritem xlink:href=".uno:Window3D" toolbar:helpid="helpid:10644" toolbar:style="auto" toolbar:visible="false"/>
++ <toolbar:toolbaritem xlink:href=".uno:Window3D" toolbar:helpid="helpid:10644" toolbar:style="auto" />
+  <toolbar:toolbaritem xlink:href=".uno:ZoomToolBox" toolbar:helpid="10096"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+diff -Naur sd.old/uiconfig/sdraw/toolbar/textobjectbar.xml sd/uiconfig/sdraw/toolbar/textobjectbar.xml
+--- sd.old/uiconfig/sdraw/toolbar/textobjectbar.xml	2005-09-23 12:47:23.000000000 +0200
++++ sd/uiconfig/sdraw/toolbar/textobjectbar.xml	2008-04-10 09:08:17.000000000 +0200
+@@ -26,6 +26,10 @@
+  <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="10036"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
++ <toolbar:toolbaritem xlink:href=".uno:OutlineLeft" toolbar:helpid="10152"/>
++ <toolbar:toolbaritem xlink:href=".uno:OutlineRight" toolbar:helpid="10153"/>
++ <toolbar:toolbaritem xlink:href=".uno:OutlineUp" toolbar:helpid="10150"/>
++ <toolbar:toolbaritem xlink:href=".uno:OutlineDown" toolbar:helpid="10151"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="10907"/>
+  <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="10908"/>
+@@ -34,5 +38,5 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="10297"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="10017"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bullet" toolbar:visible="false" toolbar:helpid="27019"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bullet" toolbar:helpid="27019"/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/sdraw/toolbar/toolbar.xml sd/uiconfig/sdraw/toolbar/toolbar.xml
+--- sd.old/uiconfig/sdraw/toolbar/toolbar.xml	2008-04-07 13:34:28.000000000 +0200
++++ sd/uiconfig/sdraw/toolbar/toolbar.xml	2008-04-10 09:26:19.000000000 +0200
+@@ -13,7 +13,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:LineToolbox" toolbar:helpid="helpid:10401" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorToolbox" toolbar:helpid="helpid:27028" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ArrowsToolbox" toolbar:helpid=".uno:ArrowsToolbox" toolbar:style="radio dropdown" />
+- <toolbar:toolbaritem xlink:href=".uno:Objects3DToolbox" toolbar:helpid="helpid:27295" toolbar:style="radio dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:Objects3DToolbox" toolbar:helpid="helpid:27295" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="helpid:11002" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="helpid:11003" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="helpid:11004" toolbar:style="radio dropdown" />
+@@ -38,7 +38,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ObjectPosition" toolbar:helpid="helpid:27022"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertToolbox" toolbar:helpid="helpid:27318"  toolbar:style="radio dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:InsertToolbox" toolbar:helpid="helpid:27318"  toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:helpid="helpid:10593"  toolbar:style="dropdown" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/> 
+diff -Naur sd.old/uiconfig/sdraw/toolbar/zoombar.xml sd/uiconfig/sdraw/toolbar/zoombar.xml
+--- sd.old/uiconfig/sdraw/toolbar/zoombar.xml	2004-11-26 20:47:01.000000000 +0100
++++ sd/uiconfig/sdraw/toolbar/zoombar.xml	2008-04-10 09:20:14.000000000 +0200
+@@ -5,8 +5,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Zoom100Percent" toolbar:helpid="10099"/>
+- <toolbar:toolbaritem xlink:href=".uno:ZoomPrevious" toolbar:visible="false" toolbar:helpid="10403"/>
+- <toolbar:toolbaritem xlink:href=".uno:ZoomNext" toolbar:visible="false" toolbar:helpid="10402"/>
++ <toolbar:toolbaritem xlink:href=".uno:ZoomPrevious" toolbar:helpid="10403"/>
++ <toolbar:toolbaritem xlink:href=".uno:ZoomNext" toolbar:helpid="10402"/>
+  <toolbar:toolbaritem xlink:href=".uno:ZoomPage" toolbar:helpid="10100"/>
+  <toolbar:toolbaritem xlink:href=".uno:ZoomPageWidth" toolbar:helpid="27098"/>
+  <toolbar:toolbaritem xlink:href=".uno:ZoomOptimal" toolbar:helpid="10101"/>
+diff -Naur sd.old/uiconfig/simpress/toolbar/connectorsbar.xml sd/uiconfig/simpress/toolbar/connectorsbar.xml
+--- sd.old/uiconfig/simpress/toolbar/connectorsbar.xml	2005-01-31 10:03:01.000000000 +0100
++++ sd/uiconfig/simpress/toolbar/connectorsbar.xml	2008-04-10 09:21:50.000000000 +0200
+@@ -2,34 +2,34 @@
+ <!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+ <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <toolbar:toolbaritem xlink:href=".uno:Connector" toolbar:helpid="27058"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:visible="false" toolbar:helpid="27119"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:helpid="27119"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowEnd" toolbar:helpid="27120"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorArrows" toolbar:helpid="27121"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:visible="false" toolbar:helpid="27122"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:visible="false" toolbar:helpid="27123"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:visible="false" toolbar:helpid="27124"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:helpid="27122"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:helpid="27123"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:helpid="27124"/>
+  <toolbar:toolbarbreak/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLines" toolbar:helpid="27139"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:visible="false" toolbar:helpid="27140"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:helpid="27140"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowEnd" toolbar:helpid="27141"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrows" toolbar:helpid="27142"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:visible="false" toolbar:helpid="27143"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:visible="false" toolbar:helpid="27144"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:visible="false" toolbar:helpid="27145"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:helpid="27143"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:helpid="27144"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:helpid="27145"/>
+  <toolbar:toolbarbreak/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLine" toolbar:helpid="27125"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:visible="false" toolbar:helpid="27126"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:helpid="27126"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowEnd" toolbar:helpid="27127"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrows" toolbar:helpid="27128"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:visible="false" toolbar:helpid="27129"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:visible="false" toolbar:helpid="27130"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:visible="false" toolbar:helpid="27131"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:helpid="27129"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:helpid="27130"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:helpid="27131"/>
+  <toolbar:toolbarbreak/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorCurve" toolbar:helpid="27132"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:visible="false" toolbar:helpid="27133"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:helpid="27133"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowEnd" toolbar:helpid="27134"/>
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrows" toolbar:helpid="27135"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:visible="false" toolbar:helpid="27136"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:visible="false" toolbar:helpid="27137"/>
+- <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:visible="false" toolbar:helpid="27138"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:helpid="27136"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:helpid="27137"/>
++ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:helpid="27138"/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/simpress/toolbar/insertbar.xml sd/uiconfig/simpress/toolbar/insertbar.xml
+--- sd.old/uiconfig/simpress/toolbar/insertbar.xml	2007-06-27 17:48:31.000000000 +0200
++++ sd/uiconfig/simpress/toolbar/insertbar.xml	2008-04-10 07:49:27.000000000 +0200
+@@ -3,19 +3,19 @@
+ <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+  <toolbar:toolbaritem xlink:href=".uno:InsertPage" toolbar:helpid="helpid:27014"  />
+  <toolbar:toolbarseparator/>
+-	<toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563"  toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ 	<toolbar:toolbarseparator/>
+-	<toolbar:toolbaritem xlink:href=".uno:ImportFromFile" toolbar:helpid="helpid:27015"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertSpreadsheet" toolbar:helpid="helpid:10217"  />
++	<toolbar:toolbaritem xlink:href=".uno:ImportFromFile" toolbar:helpid="helpid:27015" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertSpreadsheet" toolbar:helpid="helpid:10217" />
+ 	<toolbar:toolbarseparator/>
+-	<toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertSound" toolbar:helpid="helpid:5676"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertVideo" toolbar:helpid="helpid:5677"  toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertSound" toolbar:helpid="helpid:5676" toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertVideo" toolbar:helpid="helpid:5677" toolbar:visible="false" />
+ 	<toolbar:toolbaritem xlink:href=".uno:InsertMath" toolbar:helpid="helpid:27106"/>
+ 	<toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="helpid:10140"  />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561"  toolbar:visible="false"   />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672"  toolbar:visible="false" />
+-	<toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673"  toolbar:visible="false" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" />
++	<toolbar:toolbaritem xlink:href=".uno:InsertApplet" toolbar:helpid="helpid:5673" />
+ 	<toolbar:toolbarseparator/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/simpress/toolbar/textobjectbar.xml sd/uiconfig/simpress/toolbar/textobjectbar.xml
+--- sd.old/uiconfig/simpress/toolbar/textobjectbar.xml	2005-09-23 12:47:44.000000000 +0200
++++ sd/uiconfig/simpress/toolbar/textobjectbar.xml	2008-04-10 09:04:13.000000000 +0200
+@@ -18,12 +18,12 @@
+  <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="10950"/>
+  <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="10951"/>
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:ParaspaceIncrease" toolbar:visible="false" toolbar:helpid="27346"/>
+- <toolbar:toolbaritem xlink:href=".uno:ParaspaceDecrease" toolbar:visible="false" toolbar:helpid="27347"/>
++ <toolbar:toolbaritem xlink:href=".uno:ParaspaceIncrease" toolbar:helpid="27346"/>
++ <toolbar:toolbaritem xlink:href=".uno:ParaspaceDecrease" toolbar:helpid="27347"/>
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:visible="false" toolbar:helpid="10034"/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:visible="false" toolbar:helpid="10035"/>
+- <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:visible="false" toolbar:helpid="10036"/>
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="10034"/>
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="10035"/>
++ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="10036"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+  <toolbar:toolbaritem xlink:href=".uno:OutlineLeft" toolbar:helpid="10152"/>
+@@ -37,7 +37,7 @@
+  <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="10296"/>
+  <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="10297"/>
+  <toolbar:toolbaritem xlink:href=".uno:OutlineBullet" toolbar:helpid="10156"/>
+- <toolbar:toolbaritem xlink:href=".uno:Bullet" toolbar:visible="false" toolbar:helpid="27019"/>
++ <toolbar:toolbaritem xlink:href=".uno:Bullet" toolbar:helpid="27019"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="10017"/>
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/simpress/toolbar/toolbar.xml sd/uiconfig/simpress/toolbar/toolbar.xml
+--- sd.old/uiconfig/simpress/toolbar/toolbar.xml	2008-04-07 13:34:28.000000000 +0200
++++ sd/uiconfig/simpress/toolbar/toolbar.xml	2008-04-10 09:35:06.000000000 +0200
+@@ -12,8 +12,8 @@
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:LineToolbox" toolbar:helpid="helpid:10401" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ConnectorToolbox" toolbar:helpid="helpid:27028" toolbar:style="radio dropdown" />
+- <toolbar:toolbaritem xlink:href=".uno:ArrowsToolbox" toolbar:helpid=".uno:ArrowsToolbox" toolbar:style="radio dropdown" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Objects3DToolbox" toolbar:helpid="helpid:27295" toolbar:style="radio dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:ArrowsToolbox" toolbar:helpid=".uno:ArrowsToolbox" toolbar:style="radio dropdown" />
++ <toolbar:toolbaritem xlink:href=".uno:Objects3DToolbox" toolbar:helpid="helpid:27295" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="helpid:11002" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="helpid:11003" toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="helpid:11004" toolbar:style="radio dropdown" />
+@@ -38,12 +38,12 @@
+  <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130"  toolbar:style="dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:ObjectPosition" toolbar:helpid="helpid:27022"  toolbar:style="dropdown" />
+  <toolbar:toolbarseparator/>
+- <toolbar:toolbaritem xlink:href=".uno:InsertToolbox" toolbar:helpid="helpid:27318"  toolbar:style="radio dropdown" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:InsertToolbox" toolbar:helpid="helpid:27318"  toolbar:style="radio dropdown" />
+  <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:helpid="helpid:10593"  toolbar:style="dropdown" toolbar:visible="false" />
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+  <toolbar:toolbaritem xlink:href=".uno:CustomAnimation" toolbar:helpid="helpid:27328"  toolbar:style="auto" toolbar:visible="false" />
+  <toolbar:toolbaritem xlink:href=".uno:AnimationEffects" toolbar:helpid="helpid:27063"  />
+- <toolbar:toolbaritem xlink:href=".uno:AnimationObjects" toolbar:helpid="helpid:27062"  toolbar:style="auto" toolbar:visible="false" />
+- <toolbar:toolbaritem xlink:href=".uno:Window3D" toolbar:helpid="helpid:10644"  toolbar:style="auto" toolbar:visible="false" />
++ <toolbar:toolbaritem xlink:href=".uno:AnimationObjects" toolbar:helpid="helpid:27062"  toolbar:style="auto" />
++ <toolbar:toolbaritem xlink:href=".uno:Window3D" toolbar:helpid="helpid:10644"  toolbar:style="auto" />
+ </toolbar:toolbar>
+\ Nincs újsor a fájl végén
+diff -Naur sd.old/uiconfig/simpress/toolbar/zoombar.xml sd/uiconfig/simpress/toolbar/zoombar.xml
+--- sd.old/uiconfig/simpress/toolbar/zoombar.xml	2004-11-26 20:52:20.000000000 +0100
++++ sd/uiconfig/simpress/toolbar/zoombar.xml	2008-04-10 09:20:02.000000000 +0200
+@@ -5,8 +5,8 @@
+  <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+  <toolbar:toolbarseparator/>
+  <toolbar:toolbaritem xlink:href=".uno:Zoom100Percent" toolbar:helpid="10099"/>
+- <toolbar:toolbaritem xlink:href=".uno:ZoomPrevious" toolbar:visible="false" toolbar:helpid="10403"/>
+- <toolbar:toolbaritem xlink:href=".uno:ZoomNext" toolbar:visible="false" toolbar:helpid="10402"/>
++ <toolbar:toolbaritem xlink:href=".uno:ZoomPrevious" toolbar:helpid="10403"/>
++ <toolbar:toolbaritem xlink:href=".uno:ZoomNext" toolbar:helpid="10402"/>
+  <toolbar:toolbaritem xlink:href=".uno:ZoomPage" toolbar:helpid="10100"/>
+  <toolbar:toolbaritem xlink:href=".uno:ZoomPageWidth" toolbar:helpid="27098"/>
+  <toolbar:toolbaritem xlink:href=".uno:ZoomOptimal" toolbar:helpid="10101"/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-reload.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-reload.diff
@@ -0,0 +1,97 @@
+diff --git sfx2/inc/sfx2/docfile.hxx sfx2/inc/sfx2/docfile.hxx
+index 5fb9d77..ef02e0c 100644
+--- sfx2/inc/sfx2/docfile.hxx
++++ sfx2/inc/sfx2/docfile.hxx
+@@ -292,13 +292,14 @@ public:
+ 	void				SetCharset( ::rtl::OUString );
+     ::rtl::OUString     GetBaseURL( bool bForSaving=false );
+ 
++    sal_Bool            SupportsActiveStreaming( const rtl::OUString &rName ) const;
++
+ #if _SOLAR__PRIVATE
+ //REMOVE		// the storage will be truncated, if it is still not open then the stream will be truncated
+ //REMOVE	    ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > GetOutputStorage_Impl();
+ 	SAL_DLLPRIVATE ::rtl::OUString GetOutputStorageURL_Impl();
+     SAL_DLLPRIVATE BOOL HasStorage_Impl() const;
+ 
+-	SAL_DLLPRIVATE sal_Bool SupportsActiveStreaming_Impl( const rtl::OUString &rName ) const;
+ 	SAL_DLLPRIVATE sal_Bool BasedOnOriginalFile_Impl();
+ 	SAL_DLLPRIVATE void StorageBackup_Impl();
+ 	SAL_DLLPRIVATE ::rtl::OUString GetBackup_Impl();
+diff --git sfx2/source/doc/docfile.cxx sfx2/source/doc/docfile.cxx
+index 667ee0f..39c7206 100644
+--- sfx2/source/doc/docfile.cxx
++++ sfx2/source/doc/docfile.cxx
+@@ -744,7 +744,7 @@ const String& SfxMedium::GetPhysicalName( sal_Bool bForceCreateTempIfRemote ) co
+ {
+     if ( !aName.Len() && aLogicName.Len() )
+     {
+-        if ( bForceCreateTempIfRemote || !SupportsActiveStreaming_Impl( aLogicName ) )
++        if ( bForceCreateTempIfRemote || !SupportsActiveStreaming( aLogicName ) )
+             (( SfxMedium*)this)->CreateFileStream();
+     }
+ 
+@@ -912,7 +912,7 @@ sal_Bool SfxMedium::TryStorage()
+ }
+ 
+ //------------------------------------------------------------------
+-sal_Bool SfxMedium::SupportsActiveStreaming_Impl( const rtl::OUString &rName ) const
++sal_Bool SfxMedium::SupportsActiveStreaming( const rtl::OUString &rName ) const
+ {
+     if ( ::utl::LocalFileHelper::IsLocalFile( rName ) )
+         return sal_True;
+@@ -936,7 +936,7 @@ sal_Bool SfxMedium::BasedOnOriginalFile_Impl()
+ {
+ 	return ( !pImp->pTempFile && !( aLogicName.Len() && pImp->m_bSalvageMode )
+ 	  && GetURLObject().GetMainURL( INetURLObject::NO_DECODE ).getLength()
+- 	  && SupportsActiveStreaming_Impl( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) )
++ 	  && SupportsActiveStreaming( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) )
+ 	  && ::utl::UCBContentHelper::IsDocument( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) ) );
+ }
+ 
+@@ -1002,7 +1002,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetOutputStorage()
+ 
+     // medium based on OutputStream: must work with TempFile
+     if( aLogicName.CompareToAscii( "private:stream", 14 ) == COMPARE_EQUAL
+-            || !SupportsActiveStreaming_Impl( aLogicName ) )
++            || !SupportsActiveStreaming( aLogicName ) )
+         CreateTempFileNoCopy();
+ 	// if Medium already contains a stream - TODO/LATER: store stream/outputstream in ImplData, not in Medium
+ 	else if ( GetItemSet()->GetItemState( SID_STREAM ) < SFX_ITEM_SET )
+@@ -1145,7 +1145,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage()
+ 
+             try
+             {
+-                if ( IsReadOnly() && SupportsActiveStreaming_Impl( aLogicName ) )
++                if ( IsReadOnly() && SupportsActiveStreaming( aLogicName ) )
+                 {
+                     //TODO/LATER: performance problem if not controlled by special Mode in SfxMedium
+                     //(should be done only for permanently open storages)
+@@ -1962,7 +1962,7 @@ void SfxMedium::Transfer_Impl()
+ 			xComEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler,
+ 													  Reference< ::com::sun::star::ucb::XProgressHandler >() );
+ 
+-		if ( SupportsActiveStreaming_Impl( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() )
++		if ( SupportsActiveStreaming( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() )
+ 		{
+ 			TransactedTransferForFS_Impl( aSource, aDest, xComEnv );
+ 		}
+diff --git sfx2/source/view/.viewfrm.cxx.swp sfx2/source/view/.viewfrm.cxx.swp
+index 1b98d72..f57c4b7 100644
+Binary files sfx2/source/view/.viewfrm.cxx.swp and sfx2/source/view/.viewfrm.cxx.swp differ
+diff --git sfx2/source/view/viewfrm.cxx sfx2/source/view/viewfrm.cxx
+index 70db0f8..d72f71f 100644
+--- sfx2/source/view/viewfrm.cxx
++++ sfx2/source/view/viewfrm.cxx
+@@ -692,6 +692,11 @@ void SfxViewFrame::ExecReload_Impl( SfxRequest& rReq )
+ 
+                 sal_Bool bHandsOff = pMedium->GetURLObject().GetProtocol() == INET_PROT_FILE;
+ 
++                // we must do the same for the contents that support active
++                // streaming
++                if ( !bHandsOff && pMedium && pMedium->SupportsActiveStreaming( aURL ) )
++                    bHandsOff = sal_True;
++
+                 // bestehende SfxMDIFrames f"ur dieses Doc leeren
+                 // eigenes Format oder R/O jetzt editierbar "offnen?
+                 SfxViewNotificatedFrameList_Impl aFrames;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-vcl.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-vcl.diff
@@ -0,0 +1,6882 @@
+Index: vcl/aqua/inc/salinst.h
+===================================================================
+RCS file: /cvs/gsl/vcl/aqua/inc/salinst.h,v
+retrieving revision 1.13
+retrieving revision 1.12.56.2
+diff -u -p -u -p -r1.13 -r1.12.56.2
+--- vcl/aqua/inc/salinst.h	9 Oct 2007 15:09:54 -0000	1.13
++++ vcl/aqua/inc/salinst.h	16 Oct 2007 08:32:39 -0000	1.12.56.2
+@@ -126,7 +126,6 @@ public:
+     virtual void			GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+     virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String             GetDefaultPrinter();
+-    virtual SalSound*			CreateSalSound();
+     virtual SalTimer*			CreateSalTimer();
+     virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+#Index: vcl/aqua/inc/salsound.h
+#===================================================================
+#RCS file: vcl/aqua/inc/salsound.h
+#diff -N vcl/aqua/inc/salsound.h
+#--- vcl/aqua/inc/salsound.h	5 Jul 2007 15:57:25 -0000	1.3
+#+++ /dev/null	1 Jan 1970 00:00:00 -0000
+#@@ -1,109 +0,0 @@
+#-/*************************************************************************
+#-*
+#-*  OpenOffice.org - a multi-platform office productivity suite
+#-*
+#-*  $RCSfile: salsound.h,v $
+#-*
+#-*  $Revision: 1.4 $
+#-*
+#-*  last change: $Author: kz $ $Date: 2007/10/09 15:11:21 $
+#-*
+#-*  The Contents of this file are made available subject to
+#-*  the terms of GNU Lesser General Public License Version 2.1.
+#-*
+#-*
+#-*    GNU Lesser General Public License Version 2.1
+#-*    =============================================
+#-*    Copyright 2005 by Sun Microsystems, Inc.
+#-*    901 San Antonio Road, Palo Alto, CA 94303, USA
+#-*
+#-*    This library is free software; you can redistribute it and/or
+#-*    modify it under the terms of the GNU Lesser General Public
+#-*    License version 2.1, as published by the Free Software Foundation.
+#-*
+#-*    This library is distributed in the hope that it will be useful,
+#-*    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#-*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#-*    Lesser General Public License for more details.
+#-*
+#-*    You should have received a copy of the GNU Lesser General Public
+#-*    License along with this library; if not, write to the Free Software
+#-*    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+#-*    MA  02111-1307  USA
+#-*
+#-************************************************************************/
+#-
+#-#ifndef _SV_SALSOUND_H
+#-#define _SV_SALSOUND_H
+#-
+#-//#ifndef _SV_WINCOMP_HXX
+#-//#include <wincomp.hxx>
+#-//#endif
+#-
+#-#ifndef _GEN_HXX
+#-#include <tools/gen.hxx>
+#-#endif
+#-#ifndef _STRING_HXX
+#-#include <tools/string.hxx>
+#-#endif
+#-
+#-#ifndef _SV_SV_H
+#-#include <vcl/sv.h>
+#-#endif
+#-
+#-#include <osl/module.h>
+#-
+#-#ifndef _SV_SALFRAME_HXX
+#-#include <vcl/salframe.hxx>
+#-#endif
+#-#ifndef _SV_SALSTYPE_HXX
+#-#include <vcl/salstype.hxx>
+#-#endif
+#-#ifndef _SV_SALSOUND_HXX
+#-#include <vcl/salsound.hxx>
+#-#endif
+#-
+#-// ------------
+#-// - SalSound -
+#-// ------------
+#-
+#-class AquaSalSound : public SalSound
+#-{
+#-private:
+#-//	static oslModule	mhMCILib;
+#-	static ULONG		mnSoundState;
+#-	SALSOUNDPROC		mpProc;
+#-//	static void*		mpMCIFnc;
+#-//	ULONG				mnStartTime;
+#-//	ULONG				mnPlayLen;
+#-//	HWND				mhSoundWnd;
+#-//	UINT				mnDeviceId;
+#-	bool				mbLoop;
+#-	bool				mbPaused;
+#-    
+#-public:
+#-    void				ImplSetError( int nMciErr );
+#-	void				ImplNotify( SoundNotification eNotification, ULONG nError );
+#-    
+#-public:
+#-        AquaSalSound();
+#-    virtual ~AquaSalSound();
+#-    
+#-    virtual bool		IsValid();
+#-    virtual bool		Init( const String&	rSoundName,
+#-                              ULONG&		rSoundLen );
+#-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+#-	virtual void		Stop();
+#-	virtual void		Pause();
+#-	virtual void		Continue();
+#-    virtual bool		IsLoopMode() const;
+#-	virtual bool		IsPlaying() const;
+#-    virtual bool		IsPaused() const;
+#-    
+#-    
+#-	bool				ImplCreate();
+#-	void				ImplDestroy();
+#-	static void 		Release();
+#-};
+#-
+#-#endif // _SV_SALSOUND_H
+#Index: vcl/aqua/inc/salsound.hxx
+#===================================================================
+#RCS file: vcl/aqua/inc/salsound.hxx
+#diff -N vcl/aqua/inc/salsound.hxx
+#--- vcl/aqua/inc/salsound.hxx	27 Jun 2007 19:50:41 -0000	1.6
+#+++ /dev/null	1 Jan 1970 00:00:00 -0000
+#@@ -1,88 +0,0 @@
+#-/*************************************************************************
+#- *
+#- *  OpenOffice.org - a multi-platform office productivity suite
+#- *
+#- *  $RCSfile: salsound.hxx,v $
+#- *
+#- *  $Revision: 1.7 $
+#- *
+#- *  last change: $Author: kz $ $Date: 2007/10/09 15:11:34 $
+#- *
+#- *  The Contents of this file are made available subject to
+#- *  the terms of GNU Lesser General Public License Version 2.1.
+#- *
+#- *
+#- *    GNU Lesser General Public License Version 2.1
+#- *    =============================================
+#- *    Copyright 2005 by Sun Microsystems, Inc.
+#- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+#- *
+#- *    This library is free software; you can redistribute it and/or
+#- *    modify it under the terms of the GNU Lesser General Public
+#- *    License version 2.1, as published by the Free Software Foundation.
+#- *
+#- *    This library is distributed in the hope that it will be useful,
+#- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#- *    Lesser General Public License for more details.
+#- *
+#- *    You should have received a copy of the GNU Lesser General Public
+#- *    License along with this library; if not, write to the Free Software
+#- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+#- *    MA  02111-1307  USA
+#- *
+#- ************************************************************************/
+#-
+#-#ifndef _SV_SALSOUND_HXX
+#-#define _SV_SALSOUND_HXX
+#-
+#-#ifndef _GEN_HXX
+#-#include <tools/gen.hxx>
+#-#endif
+#-#ifndef _STRING_HXX
+#-#include <tools/string.hxx>
+#-#endif
+#-
+#-#ifndef _SV_SV_H
+#-#include <vcl/sv.h>
+#-#endif
+#-
+#-#ifndef _SV_SALFRAME_HXX
+#-#include <vcl/salframe.hxx>
+#-#endif
+#-#ifndef _SV_SALSTYPE_HXX
+#-#include <vcl/salstype.hxx>
+#-#endif
+#-
+#-// ------------
+#-// - SalSound -
+#-// ------------
+#-
+#-class SalSound
+#-{
+#-private:
+#-	static ULONG		mnSoundState;
+#-	SALSOUNDPROC		mpProc;
+#-	void*				mpInst;
+#-	BOOL				mbLoop;
+#-	BOOL				mbPaused;
+#-
+#-public:
+#-						SalSound();
+#-						~SalSound();
+#-
+#-	BOOL				Create();
+#-	static void 		Release();
+#-	static BOOL 		IsValid() { return( SOUND_STATE_VALID == SalSound::mnSoundState ); }
+#-
+#-	BOOL				Init( SalFrame* pFrame, const String& rSoundName, ULONG& rSoundLen );
+#-	BOOL				Init( SalFrame* pFrame, const BYTE* pSound, ULONG nDataLen, ULONG& rSoundLen );
+#-	void				Play( ULONG nStartTime, ULONG nPlayTime, BOOL bLoop );
+#-	void				Stop();
+#-	void				Pause();
+#-
+#-	void				SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
+#-							{ mpInst = pInst; mpProc = pProc; }
+#-};
+#-
+#-#endif // _SV_SALSOUND_HXX
+Index: vcl/aqua/source/app/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/aqua/source/app/makefile.mk,v
+retrieving revision 1.14
+retrieving revision 1.14.56.1
+diff -u -p -u -p -r1.14 -r1.14.56.1
+--- vcl/aqua/source/app/makefile.mk	5 Jul 2007 08:18:05 -0000	1.14
++++ vcl/aqua/source/app/makefile.mk	31 Aug 2007 09:44:56 -0000	1.14.56.1
+Index: vcl/aqua/source/app/salinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/aqua/source/app/salinst.cxx,v
+retrieving revision 1.40
+retrieving revision 1.38.10.3
+@@ -61,7 +61,6 @@
+             $(SLO)$/vclnsapp.obj        \
+                        $(SLO)$/saltimer.obj            \
+                        $(SLO)$/salnstimer.obj          \
+-                       $(SLO)$/salsound.obj            \
+                        $(SLO)$/salsys.obj
+
+ .ENDIF         # "$(GUIBASE)"!="aqua"
+diff -u -p -u -p -r1.40 -r1.38.10.3
+--- vcl/aqua/source/app/salinst.cxx	9 Oct 2007 15:12:57 -0000	1.40
++++ vcl/aqua/source/app/salinst.cxx	16 Oct 2007 08:32:33 -0000	1.38.10.3
+@@ -938,13 +938,6 @@ void* AquaSalInstance::GetConnectionIden
+ 
+ // -----------------------------------------------------------------------
+ 
+-SalSound* AquaSalInstance::CreateSalSound()
+-{
+-    return new AquaSalSound();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+ SalTimer* AquaSalInstance::CreateSalTimer()
+ {
+     return new AquaSalTimer();
+Index: vcl/inc/vcl/salinst.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/salinst.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.136.1
+diff -u -p -u -p -r1.2 -r1.2.136.1
+--- vcl/inc/vcl/salinst.hxx	11 Apr 2007 18:07:19 -0000	1.2
++++ vcl/inc/vcl/salinst.hxx	31 Aug 2007 09:44:56 -0000	1.2.136.1
+@@ -60,7 +60,6 @@ struct ImplJobSetup;
+ class SalGraphics;
+ class SalFrame;
+ class SalObject;
+-class SalSound;
+ class SalOpenGL;
+ class SalMenu;
+ class SalMenuItem;
+@@ -136,8 +135,6 @@ public:
+     virtual void				DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) = 0;
+     virtual String             GetDefaultPrinter() = 0;
+ 
+-    // SalSound
+-    virtual SalSound*			CreateSalSound() = 0;
+     // SalTimer
+     virtual SalTimer*			CreateSalTimer() = 0;
+     // SalOpenGL
+Index: vcl/inc/vcl/salsound.hxx
+===================================================================
+RCS file: vcl/inc/vcl/salsound.hxx
+diff -N vcl/inc/vcl/salsound.hxx
+--- vcl/inc/vcl/salsound.hxx	11 Apr 2007 18:08:49 -0000	1.2
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,97 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.hxx,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: vg $ $Date: 2007/04/11 18:08:49 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_HXX
+-#define _SV_SALSOUND_HXX
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-#ifndef _SV_SV_H
+-#include <vcl/sv.h>
+-#endif
+-#ifndef _VCL_DLLAPI_H
+-#include <vcl/dllapi.h>
+-#endif
+-
+-#ifndef _STRING_HXX
+-#include <tools/string.hxx>
+-#endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-
+-class VCL_DLLPUBLIC SalSound
+-{
+-	// for notification
+-	void*					m_pInst;
+-	SALSOUNDPROC			m_aPROC;
+-public:
+-    SalSound() : m_pInst( NULL ), m_aPROC( NULL ) {}
+-    virtual ~SalSound();
+-
+-    // checks whether sound system is ready for input and hence
+-    // SalSound can be initialized
+-    virtual bool		IsValid() = 0;
+-    // initialize with sound file name, returns success and // FIXME: rSoundLen ?
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen ) = 0;
+-    // play the sound, start at nStartTime (ms), play for nPlayTime (ms),
+-	// loop = true/false
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop ) = 0;
+-    // stop playing
+-	virtual void		Stop() = 0;
+-    // pause playing
+-	virtual void		Pause() = 0;
+-    // continue a paused play
+-	virtual void		Continue() = 0;
+-    // is looping ?
+-    virtual bool		IsLoopMode() const = 0;
+-    // is playing ?
+-	virtual bool		IsPlaying() const = 0;
+-    // is paused ?
+-    virtual bool		IsPaused() const = 0;
+-
+-    // register a callback to be called when state changes
+-	void		SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
+-    { m_pInst = pInst; m_aPROC = pProc; }
+-    void		CallNotifyProc( SoundNotification eNotification, ULONG nError )
+-    {
+-        if( m_aPROC )
+-            m_aPROC( m_pInst, eNotification, nError );
+-    }
+-};
+-
+-#endif
+Index: vcl/inc/vcl/salstype.hxx
+===================================================================
+RCS file: vcl/inc/vcl/salstype.hxx
+diff -N vcl/inc/vcl/salstype.hxx
+--- vcl/inc/vcl/salstype.hxx	11 Apr 2007 18:08:58 -0000	1.2
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,92 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salstype.hxx,v $
+- *
+- *  $Revision: 1.2 $
+- *
+- *  last change: $Author: vg $ $Date: 2007/04/11 18:08:58 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSTYPE_HXX
+-#define _SV_SALSTYPE_HXX
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-
+-// -----------------
+-// - Sound defines -
+-// -----------------
+-
+-#define SOUND_PLAYALL			(0xFFFFFFFFUL)
+-
+-// -----------------
+-// - State defines -
+-// -----------------
+-
+-#define SOUND_STATE_UNLOADED	(0x00000000UL)
+-#define SOUND_STATE_INVALID		(0x00000001UL)
+-#define	SOUND_STATE_VALID		(0x00000002UL)
+-
+-// ---------------------
+-// - SoundNotification -
+-// ---------------------
+-
+-enum SoundNotification 
+-{
+-	SOUND_NOTIFY_NOTHING, 
+-	SOUND_NOTIFY_SUCCESS,
+-	SOUND_NOTIFY_ABORTED,
+-	SOUND_NOTIFY_ERROR 
+-};
+-
+-// ---------------
+-// - SoundErrors -
+-// ---------------
+-
+-#define SOUNDERR_SUCCESS                (0x00000000UL)
+-#define SOUNDERR_GENERAL_ERROR          (0x00000001UL)
+-#define SOUNDERR_CANNOT_LOAD_DRIVER     (0x00000003UL)
+-#define SOUNDERR_DEVICE_LOCKED          (0x00000004UL)
+-#define SOUNDERR_SOUND_NOT_FOUND        (0x00000005UL)
+-#define SOUNDERR_HARDWARE_ERROR         (0x00000006UL)
+-#define SOUNDERR_OUT_OF_MEMORY          (0x00000007UL)
+-#define SOUNDERR_UNSUPPORTED_FUNCTION   (0x00000008UL)
+-#define SOUNDERR_DEVICE_NOT_FOUND       (0x00000009UL)
+-#define SOUNDERR_DEVICE_NOT_READY       (0x0000000aUL)
+-#define SOUNDERR_CANNOT_READ_SOUND      (0x0000000bUL)
+-#define SOUNDERR_INVALID_FILE           (0x0000000cUL)
+-
+-// ------------------
+-// - Sound-Callback	-
+-// ------------------
+-
+-typedef void (*SALSOUNDPROC)( void* pInst, SoundNotification eNotification, ULONG nError );
+-
+-#endif // _SV_SALSTYPE_HXX
+Index: vcl/inc/vcl/settings.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/settings.hxx,v
+retrieving revision 1.3
+retrieving revision 1.3.86.1
+diff -u -p -u -p -r1.3 -r1.3.86.1
+--- vcl/inc/vcl/settings.hxx	4 Jun 2007 14:57:34 -0000	1.3
++++ vcl/inc/vcl/settings.hxx	31 Aug 2007 09:44:56 -0000	1.3.86.1
+@@ -1019,55 +1019,6 @@ public:
+                                         { return !(*this == rSet); }
+ };
+ 
+-// -----------------
+-// - ImplSoundData -
+-// -----------------
+-
+-class ImplSoundData
+-{
+-    friend class SoundSettings;
+-
+-                                    ImplSoundData();
+-                                    ImplSoundData( const ImplSoundData& rData );
+-
+-private:
+-    ULONG                           mnRefCount;
+-    ULONG                           mnOptions;
+-};
+-
+-// -----------------
+-// - SoundSettings -
+-// -----------------
+-
+-#define SOUND_OPTION_ON             ((ULONG)0x00000001)
+-#define SOUND_OPTION_NOTIFYBEEP     ((ULONG)0x00000002)
+-#define SOUND_OPTION_WARNINGBEEP    ((ULONG)0x00000004)
+-#define SOUND_OPTION_ERRORBEEP      ((ULONG)0x00000008)
+-
+-class VCL_DLLPUBLIC SoundSettings
+-{
+-    void                            CopyData();
+-
+-private:
+-    ImplSoundData*                  mpData;
+-
+-public:
+-                                    SoundSettings();
+-                                    SoundSettings( const SoundSettings& rSet );
+-                                    ~SoundSettings();
+-
+-    void                            SetOptions( ULONG nOptions )
+-                                        { CopyData(); mpData->mnOptions = nOptions; }
+-    ULONG                           GetOptions() const
+-                                        { return mpData->mnOptions; }
+-
+-    const SoundSettings&            operator =( const SoundSettings& rSet );
+-
+-    BOOL                            operator ==( const SoundSettings& rSet ) const;
+-    BOOL                            operator !=( const SoundSettings& rSet ) const
+-                                        { return !(*this == rSet); }
+-};
+-
+ // ------------------------
+ // - ImplNotificationData -
+ // ------------------------
+@@ -1193,7 +1144,6 @@ private:
+     KeyboardSettings                        maKeyboardSettings;
+     StyleSettings                           maStyleSettings;
+     MiscSettings                            maMiscSettings;
+-    SoundSettings                           maSoundSettings;
+     NotificationSettings                    maNotificationSettings;
+     HelpSettings                            maHelpSettings;
+     ::com::sun::star::lang::Locale          maLocale;
+@@ -1272,11 +1222,6 @@ public:
+     const MiscSettings&                     GetMiscSettings() const
+                                                 { return mpData->maMiscSettings; }
+ 
+-    void                                    SetSoundSettings( const SoundSettings& rSet )
+-                                                { CopyData(); mpData->maSoundSettings = rSet; }
+-    const SoundSettings&                    GetSoundSettings() const
+-                                                { return mpData->maSoundSettings; }
+-
+     void                                    SetNotificationSettings( const NotificationSettings& rSet )
+                                                 { CopyData(); mpData->maNotificationSettings = rSet; }
+     const NotificationSettings&             GetNotificationSettings() const
+Index: vcl/inc/vcl/sound.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/sound.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.136.1
+diff -u -p -u -p -r1.2 -r1.2.136.1
+--- vcl/inc/vcl/sound.hxx	11 Apr 2007 18:11:10 -0000	1.2
++++ vcl/inc/vcl/sound.hxx	31 Aug 2007 09:44:56 -0000	1.2.136.1
+@@ -53,14 +53,9 @@
+ #ifndef _TIME_HXX
+ #include <tools/time.hxx>
+ #endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+ 
+ class Window;
+ class Timer;
+-class SalSound;
+-class RMSound;
+ 
+ // ---------
+ // - Sound -
+@@ -68,70 +63,8 @@ class RMSound;
+ 
+ class VCL_DLLPUBLIC Sound
+ {
+-private:
+-
+-	SalSound*			mpSound;
+-	XubString			maSoundName;
+-	Window* 			mpWindow;
+-	BYTE*				mpSoundData_NOTUSED;
+-	ULONG				mnDataLen;
+-	ULONG				mnSoundLen;
+-	ULONG				mnStartTime;
+-	ULONG				mnPlayTime;
+-	ULONG				mnErrorCode;
+-	SoundNotification	meNotification;
+-	BOOL				mbPlaying;
+-	BOOL				mbLoopMode;
+-    Link                maNotifyHdl;
+-	void*				mpExtraData;
+-
+-private:
+-
+-                        Sound( const Sound& rSound );
+-    Sound&              operator=( const Sound& rSound );
+-
+-//#if 0 // _SOLAR__PRIVATE
+ public:
+-	SAL_DLLPRIVATE void	ImplNotify( SoundNotification eNotification, ULONG nError );
+-//#endif // __PRIVATE
+-
+-public:
+-                        Sound( Window* pWindow = NULL );
+-    virtual             ~Sound();
+-
+-    virtual void        Notify();
+-
+-	void				SetWindow( Window* pWindow ) { mpWindow = pWindow; }
+-	Window* 			GetWindow() const { return mpWindow; }
+-	BOOL				SetSoundName( const XubString& rSoundName );
+-	const XubString& 	GetSoundName() const { return maSoundName; }
+-	ULONG				GetSoundLen() const { return mnSoundLen; }
+-
+-    void				Play();
+-	void				Stop();
+-	void				Pause();
+-    BOOL                IsPlaying() const { return mbPlaying; }
+-
+-	void				SetStartTime( ULONG nStartTime = 0 );
+-	ULONG				GetStartTime() const { return mnStartTime; }
+-	void				SetPlayTime( ULONG nPlayTime = SOUND_PLAYALL );
+-	ULONG				GetPlayTime() const { return mnPlayTime; }
+-	void				SetLoopMode( BOOL bLoop );
+-	BOOL				IsLoopMode() const { return mbLoopMode; }
+-
+-    void                ClearError();
+-    ULONG               GetLastError() const { return mnErrorCode; }
+-    SoundNotification   GetNotification() const { return meNotification; }
+-
+-    void                SetNotifyHdl( const Link& rLink ) { maNotifyHdl = rLink; }
+-    const Link&         GetNotifyHdl() const { return maNotifyHdl; }
+-
+     static void         Beep( SoundType eType = SOUND_DEFAULT, Window* pWindow = NULL );
+-
+-	static void			SetSoundPath( const XubString& rSoundPath );
+-	static const XubString&	GetSoundPath();
+-
+-    static BOOL         IsSoundFile( const XubString& rSoundPath );
+ };
+ 
+ #endif // _SV_SOUND_HXX
+Index: vcl/prj/build.lst
+===================================================================
+RCS file: /cvs/gsl/vcl/prj/build.lst,v
+retrieving revision 1.55
+retrieving revision 1.54.20.2
+diff -u -p -u -p -r1.55 -r1.54.20.2
+--- vcl/prj/build.lst	20 Sep 2007 16:24:09 -0000	1.55
++++ vcl/prj/build.lst	4 Oct 2007 22:03:55 -0000	1.54.20.2
+@@ -1,4 +1,4 @@
+-vc	vcl	:	BOOST:boost NAS:nas FREETYPE:freetype psprint rsc sot ucbhelper unotools ICU:icu i18npool unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx basebmp SNDFILE:sndfile PORTAUDIO:portaudio tools transex3 icc NULL
++vc	vcl	:	BOOST:boost FREETYPE:freetype psprint rsc sot ucbhelper unotools ICU:icu i18npool unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx basebmp tools transex3 icc NULL
+ vc	vcl										usr1	-	all	vc_mkout NULL
+ vc	vcl\inc									nmake	-	all	vc_inc NULL
+ vc	vcl\source\glyphs						nmake	-	all	vc_glyphs vc_inc NULL
+Index: vcl/source/app/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/makefile.mk,v
+retrieving revision 1.21
+retrieving revision 1.21.158.1
+diff -u -p -u -p -r1.21 -r1.21.158.1
+--- vcl/source/app/makefile.mk	6 Feb 2007 14:18:13 -0000	1.21
++++ vcl/source/app/makefile.mk	31 Aug 2007 09:44:57 -0000	1.21.158.1
+@@ -48,10 +48,6 @@ ENABLE_EXCEPTIONS=TRUE
+ 
+ CDEFS+=-DDLLPOSTFIX=$(DLLPOSTFIX)
+ 
+-.IF "$(SYSTEM_NAS)"=="YES"
+-CFLAGS+=-I$(NAS_INCLUDES)
+-.ENDIF
+-
+ # --- Files --------------------------------------------------------
+ 
+ SLOFILES=	$(SLO)$/dbggui.obj		\
+Index: vcl/source/app/salvtables.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/salvtables.cxx,v
+retrieving revision 1.9
+retrieving revision 1.8.22.2
+diff -u -p -u -p -r1.9 -r1.8.22.2
+--- vcl/source/app/salvtables.cxx	9 Oct 2007 15:19:13 -0000	1.9
++++ vcl/source/app/salvtables.cxx	16 Oct 2007 08:32:24 -0000	1.8.22.2
+@@ -41,7 +41,6 @@
+ #include <vcl/salvd.hxx>
+ #include <vcl/salprn.hxx>
+ #include <vcl/saltimer.hxx>
+-#include <vcl/salsound.hxx>
+ #include <vcl/salogl.hxx>
+ #include <vcl/salimestatus.hxx>
+ #include <vcl/salsys.hxx>
+@@ -61,10 +60,6 @@ SalInstance::~SalInstance()
+ {
+ }
+ 
+-SalSound::~SalSound()
+-{
+-}
+-
+ SalTimer::~SalTimer()
+ {
+ }
+Index: vcl/source/app/settings.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/settings.cxx,v
+retrieving revision 1.72
+retrieving revision 1.72.20.1
+diff -u -p -u -p -r1.72 -r1.72.20.1
+--- vcl/source/app/settings.cxx	24 Jul 2007 10:04:42 -0000	1.72
++++ vcl/source/app/settings.cxx	31 Aug 2007 09:44:57 -0000	1.72.20.1
+@@ -1311,98 +1311,6 @@ BOOL MiscSettings::GetEnableLocalizedDec
+     return mpData->mbEnableLocalizedDecimalSep;
+ }
+ 
+-
+-
+-// =======================================================================
+-
+-ImplSoundData::ImplSoundData()
+-{
+-    mnRefCount                  = 1;
+-    mnOptions                   = 0;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-ImplSoundData::ImplSoundData( const ImplSoundData& rData )
+-{
+-    mnRefCount                  = 1;
+-    mnOptions                   = rData.mnOptions;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-SoundSettings::SoundSettings()
+-{
+-    mpData = new ImplSoundData();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-SoundSettings::SoundSettings( const SoundSettings& rSet )
+-{
+-    DBG_ASSERT( rSet.mpData->mnRefCount < 0xFFFFFFFE, "SoundSettings: RefCount overflow" );
+-
+-    // shared Instance Daten uebernehmen und Referenzcounter erhoehen
+-    mpData = rSet.mpData;
+-    mpData->mnRefCount++;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-SoundSettings::~SoundSettings()
+-{
+-    // Daten loeschen, wenn letzte Referenz
+-    if ( mpData->mnRefCount == 1 )
+-        delete mpData;
+-    else
+-        mpData->mnRefCount--;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-const SoundSettings& SoundSettings::operator =( const SoundSettings& rSet )
+-{
+-    DBG_ASSERT( rSet.mpData->mnRefCount < 0xFFFFFFFE, "SoundSettings: RefCount overflow" );
+-
+-    // Zuerst Referenzcounter erhoehen, damit man sich selbst zuweisen kann
+-    rSet.mpData->mnRefCount++;
+-
+-    // Daten loeschen, wenn letzte Referenz
+-    if ( mpData->mnRefCount == 1 )
+-        delete mpData;
+-    else
+-        mpData->mnRefCount--;
+-
+-    mpData = rSet.mpData;
+-
+-    return *this;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void SoundSettings::CopyData()
+-{
+-    // Falls noch andere Referenzen bestehen, dann kopieren
+-    if ( mpData->mnRefCount != 1 )
+-    {
+-        mpData->mnRefCount--;
+-        mpData = new ImplSoundData( *mpData );
+-    }
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-BOOL SoundSettings::operator ==( const SoundSettings& rSet ) const
+-{
+-    if ( mpData == rSet.mpData )
+-        return TRUE;
+-
+-    if ( (mpData->mnOptions             == rSet.mpData->mnOptions) )
+-        return TRUE;
+-    else
+-        return FALSE;
+-}
+-
+ // =======================================================================
+ 
+ ImplNotificationData::ImplNotificationData()
+@@ -1625,7 +1533,6 @@ ImplAllSettingsData::ImplAllSettingsData
+     maKeyboardSettings( rData.maKeyboardSettings ),
+     maStyleSettings( rData.maStyleSettings ),
+     maMiscSettings( rData.maMiscSettings ),
+-    maSoundSettings( rData.maSoundSettings ),
+     maNotificationSettings( rData.maNotificationSettings ),
+     maHelpSettings( rData.maHelpSettings ),
+     maLocale( rData.maLocale ),
+@@ -1795,16 +1702,6 @@ ULONG AllSettings::Update( ULONG nFlags,
+         }
+     }
+ 
+-    if ( nFlags & SETTINGS_SOUND )
+-    {
+-        if ( mpData->maSoundSettings != rSet.mpData->maSoundSettings )
+-        {
+-            CopyData();
+-            mpData->maSoundSettings = rSet.mpData->maSoundSettings;
+-            nChangeFlags |= SETTINGS_SOUND;
+-        }
+-    }
+-
+     if ( nFlags & SETTINGS_NOTIFICATION )
+     {
+         if ( mpData->maNotificationSettings != rSet.mpData->maNotificationSettings )
+@@ -1876,9 +1773,6 @@ ULONG AllSettings::GetChangeFlags( const
+     if ( mpData->maMiscSettings != rSet.mpData->maMiscSettings )
+         nChangeFlags |= SETTINGS_MISC;
+ 
+-    if ( mpData->maSoundSettings != rSet.mpData->maSoundSettings )
+-        nChangeFlags |= SETTINGS_SOUND;
+-
+     if ( mpData->maNotificationSettings != rSet.mpData->maNotificationSettings )
+         nChangeFlags |= SETTINGS_NOTIFICATION;
+ 
+@@ -1909,7 +1803,6 @@ BOOL AllSettings::operator ==( const All
+          (mpData->maKeyboardSettings        == rSet.mpData->maKeyboardSettings)     &&
+          (mpData->maStyleSettings           == rSet.mpData->maStyleSettings)        &&
+          (mpData->maMiscSettings            == rSet.mpData->maMiscSettings)         &&
+-         (mpData->maSoundSettings           == rSet.mpData->maSoundSettings)        &&
+          (mpData->maNotificationSettings    == rSet.mpData->maNotificationSettings) &&
+          (mpData->maHelpSettings            == rSet.mpData->maHelpSettings)         &&
+          (mpData->mnSystemUpdate            == rSet.mpData->mnSystemUpdate)         &&
+Index: vcl/source/app/sound.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/sound.cxx,v
+retrieving revision 1.14
+retrieving revision 1.14.60.1
+diff -u -p -u -p -r1.14 -r1.14.60.1
+--- vcl/source/app/sound.cxx	27 Jun 2007 20:02:09 -0000	1.14
++++ vcl/source/app/sound.cxx	31 Aug 2007 09:44:57 -0000	1.14.60.1
+@@ -48,9 +48,6 @@
+ #ifndef _SV_SVSYS_HXX
+ #include <svsys.h>
+ #endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+ #ifndef _SV_SALFRAME_HXX
+ #include <vcl/salframe.hxx>
+ #endif
+@@ -63,9 +60,6 @@
+ #ifndef _SV_WINDOW_HXX
+ #include <vcl/window.hxx>
+ #endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+ #ifndef _SV_SALBTYPE_HXX
+ #include <vcl/salbtype.hxx>
+ #endif
+@@ -76,194 +70,6 @@
+ #include <vcl/salinst.hxx>
+ #endif
+ 
+-
+-
+-// ----------------------
+-// - SalSound-Callback	-
+-// ----------------------
+-
+-void SalSoundProc( void* pInst, SoundNotification eNotification, ULONG nError )
+-{
+-	( (Sound*) pInst )->ImplNotify( eNotification, nError );
+-}
+-
+-// ---------
+-// - Sound -
+-// ---------
+-
+-Sound::Sound( Window* pWindow ) :
+-			mpWindow		( pWindow ),
+-			mnDataLen		( 0UL ),
+-			mnSoundLen		( 0UL ),
+-			mnStartTime		( 0UL ),
+-			mnPlayTime		( SOUND_PLAYALL ),
+-			mnErrorCode		( 0UL ),
+-			meNotification	( SOUND_NOTIFY_SUCCESS ),
+-			mbPlaying		( FALSE ),
+-			mbLoopMode		( FALSE )
+-{
+-	mpSound = ImplGetSVData()->mpDefInst->CreateSalSound();
+-
+-	if( mpSound->IsValid() )
+-		mpSound->SetNotifyProc( this, SalSoundProc );
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-Sound::~Sound()
+-{
+-	delete mpSound;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::ImplNotify( SoundNotification eNotification, ULONG nError )
+-{
+-	meNotification = eNotification;
+-	mbPlaying = FALSE;
+-
+-	if( SOUND_NOTIFY_ERROR == meNotification )
+-		mnErrorCode = nError;
+-
+-	Notify();
+-
+-	if( maNotifyHdl.IsSet() )
+-		maNotifyHdl.Call( this );
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Notify()
+-{
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-BOOL Sound::SetSoundName( const XubString& rSoundName )
+-{
+-	BOOL bRet( FALSE );
+-
+-	if( !rSoundName.Len() )
+-	{
+-		mnDataLen = 0UL;
+-		mnSoundLen = 0UL;
+-		mnStartTime = 0UL;
+-		mnPlayTime = SOUND_PLAYALL;
+-		mnErrorCode = 0UL;
+-		meNotification = SOUND_NOTIFY_SUCCESS;
+-		mbPlaying = FALSE;
+-		mbLoopMode = FALSE;
+-		bRet = TRUE;
+-
+-		mpSound->Init( rSoundName, mnSoundLen );
+-	}
+-	else if( mpSound->IsValid() )
+-	{
+-		INetURLObject	aSoundURL( rSoundName );
+-		String			aSoundName, aTmp;
+-        BOOL            bValidName( FALSE );
+-
+-        // #106654# Accept only local sound files
+-		if( aSoundURL.GetProtocol() == INET_PROT_FILE )
+-		{
+-			utl::LocalFileHelper::ConvertURLToPhysicalName( aSoundURL.GetMainURL( INetURLObject::NO_DECODE ), aSoundName );
+-            bValidName = TRUE;
+-		}
+-		else if( aSoundURL.GetProtocol() == INET_PROT_NOT_VALID &&
+-                 ::utl::LocalFileHelper::ConvertPhysicalNameToURL( rSoundName, aTmp ) )
+-        {
+-            aSoundName = rSoundName;
+-            bValidName = TRUE;
+-        }
+-		else
+-		{
+-            // no valid sound file name
+-			aSoundName = String();
+-
+-            // #106654# Don't set bRet to true for invalid sound file
+-            // names, but init with empty string, anyway
+-		    mpSound->Init( aSoundName, mnSoundLen );
+-		}
+-
+-        if( bValidName )
+-		    bRet = mpSound->Init( aSoundName, mnSoundLen );
+-	}
+-
+-	maSoundName = rSoundName;
+-
+-	// if sound could not be initialized, but we've gotten _no_
+-	// notification ==> create common error notification
+-	if( !bRet && !mnErrorCode )
+-		ImplNotify( SOUND_NOTIFY_ERROR, SOUNDERR_GENERAL_ERROR );
+-
+-	return bRet;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetStartTime( ULONG nStartTime ) 
+-{
+-	mnStartTime = nStartTime;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetPlayTime( ULONG nPlayTime )
+-{
+-	mnPlayTime = nPlayTime; 
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetLoopMode( BOOL bLoop ) 
+-{
+-	mbLoopMode = bLoop; 
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::ClearError() 
+-{
+-	mnErrorCode = 0; 
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Play()
+-{
+-	BOOL bRet;
+-
+-	if( mpSound->IsValid() && !mnErrorCode )
+-	{
+-		mpSound->Play( mnStartTime, mnPlayTime, mbLoopMode );
+-        mbPlaying = TRUE;
+-	}
+-	else
+-		bRet = FALSE;
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Stop()
+-{
+-	mbPlaying = FALSE;
+-	
+-	if( mpSound->IsValid() )
+-		mpSound->Stop();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::Pause()
+-{
+-	mbPlaying = FALSE;
+-	
+-	if( mpSound->IsValid() )
+-		mpSound->Pause();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+ void Sound::Beep( SoundType eType, Window* pWindow )
+ {
+     if( !pWindow )
+@@ -274,62 +80,3 @@ void Sound::Beep( SoundType eType, Windo
+     else
+         pWindow->ImplGetFrame()->Beep( eType );
+ }
+-
+-// -----------------------------------------------------------------------
+-
+-void Sound::SetSoundPath( const XubString& )
+-{
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-const XubString& Sound::GetSoundPath()
+-{
+-	return ImplGetSVEmptyStr();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+-BOOL Sound::IsSoundFile( const XubString& rSoundPath )
+-{
+-    BOOL bRet = FALSE;
+-
+-    if( rSoundPath.Len() )
+-    {
+-		INetURLObject	aSoundURL( rSoundPath );
+-		String			aSoundName;
+-
+-		if( aSoundURL.GetProtocol() != INET_PROT_NOT_VALID )
+-			aSoundName = aSoundURL.GetMainURL( INetURLObject::NO_DECODE );
+-		else if( !::utl::LocalFileHelper::ConvertPhysicalNameToURL( rSoundPath, aSoundName ) )
+-			aSoundName.Erase();
+-
+-        if( aSoundName.Len() )
+-        {
+-            SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aSoundName, STREAM_READ );
+-
+-            if( pIStm )
+-            {
+-                sal_Char aData[ 12 ];
+-
+-                if( ( pIStm->Read( aData, 12 ) == 12 ) && !pIStm->GetError() )
+-                {
+-                    // check for WAV
+-                    bRet = ( aData[ 0 ] == 'R' && aData[ 1 ] == 'I' && aData[ 2 ] == 'F' && aData[ 3 ] == 'F' &&
+-                             aData[ 8 ] == 'W' && aData[ 9 ] == 'A' && aData[ 10 ] == 'V' && aData[ 11 ] == 'E' );
+-                }
+-
+-                delete pIStm;
+-            }
+-
+-            if( !bRet )
+-            {
+-                // check it the hard way
+-                Sound aTestSound;
+-                bRet = aTestSound.SetSoundName( rSoundPath );
+-            }
+-        }
+-    }
+-
+-    return bRet;
+-}
+Index: vcl/source/app/svmain.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/app/svmain.cxx,v
+retrieving revision 1.70
+retrieving revision 1.70.22.1
+diff -u -p -u -p -r1.70 -r1.70.22.1
+--- vcl/source/app/svmain.cxx	24 Jul 2007 10:05:33 -0000	1.70
++++ vcl/source/app/svmain.cxx	31 Aug 2007 09:44:57 -0000	1.70.22.1
+@@ -57,9 +57,6 @@
+ #ifndef _SV_SALINST_HXX
+ #include <vcl/salinst.hxx>
+ #endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+ #ifndef _SV_SALOGL_HXX
+ #include <vcl/salogl.hxx>
+ #endif
+Index: vcl/unx/gtk/window/gtkframe.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
+retrieving revision 1.71
+retrieving revision 1.67.12.3
+diff -u -p -u -p -r1.71 -r1.67.12.3
+--- vcl/unx/gtk/window/gtkframe.cxx	9 Oct 2007 15:21:04 -0000	1.71
++++ vcl/unx/gtk/window/gtkframe.cxx	16 Oct 2007 08:32:30 -0000	1.67.12.3
+@@ -2154,9 +2154,17 @@ void GtkSalFrame::UpdateSettings( AllSet
+         ReleaseGraphics( pGraphics );
+ }
+ 
+-void GtkSalFrame::Beep( SoundType /*eType*/ )
++void GtkSalFrame::Beep( SoundType eType )
+ {
+-    gdk_display_beep( getGdkDisplay() );
++    switch( eType )
++    {
++        case SOUND_DEFAULT:
++        case SOUND_ERROR:
++            gdk_display_beep( getGdkDisplay() );
++            break;
++        default:
++            break;
++    }
+ }
+ 
+ const SystemEnvData* GtkSalFrame::GetSystemData() const
+Index: vcl/unx/headless/svpdummies.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpdummies.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpdummies.cxx	24 Jul 2007 10:26:21 -0000	1.2
++++ vcl/unx/headless/svpdummies.cxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -46,44 +46,6 @@ void SvpSalOpenGL::OGLExit( SalGraphics*
+ void SvpSalOpenGL::StartScene( SalGraphics* ) {}
+ void SvpSalOpenGL::StopScene() {}
+ 
+-// SalSound
+-SvpSalSound::~SvpSalSound() {}
+-bool SvpSalSound::IsValid() { return true; }
+-bool SvpSalSound::Init( const String&, ULONG& rSoundLen )
+-{
+-    rSoundLen = 0;
+-    return true;
+-}
+-void SvpSalSound::Play( ULONG, ULONG, bool bLoop )
+-{
+-    m_bPlaying = true;
+-    m_bLooping = bLoop;
+-}
+-void SvpSalSound::Stop()
+-{
+-    m_bPlaying = m_bLooping = false;
+-}
+-void SvpSalSound::Pause()
+-{
+-    m_bPaused = true;
+-}
+-void SvpSalSound::Continue()
+-{
+-    m_bPaused = false;
+-}
+-bool SvpSalSound::IsLoopMode() const
+-{
+-    return m_bLooping;
+-}
+-bool SvpSalSound::IsPlaying() const
+-{
+-    return m_bPlaying;
+-}
+-bool SvpSalSound::IsPaused() const
+-{
+-    return m_bPaused;
+-}
+-
+ // SalObject
+ SvpSalObject::SvpSalObject()
+ {
+Index: vcl/unx/headless/svpdummies.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpdummies.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpdummies.hxx	24 Jul 2007 10:26:33 -0000	1.2
++++ vcl/unx/headless/svpdummies.hxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -36,7 +36,6 @@
+ #ifndef _SVP_SVPDUMMIES_HXX
+ 
+ #include <vcl/salogl.hxx>
+-#include <vcl/salsound.hxx>
+ #include <vcl/salobj.hxx>
+ #include <vcl/sysdata.hxx>
+ #include <vcl/salimestatus.hxx>
+@@ -59,28 +58,6 @@ public:					
+ 	virtual void		StopScene();
+ };
+ 
+-class SvpSalSound : public SalSound
+-{
+-    bool m_bPlaying;
+-    bool m_bLooping;
+-    bool m_bPaused;
+-public:
+-    SvpSalSound() : m_bPlaying( false ), m_bLooping( false ), m_bPaused( false ) {}
+-	virtual ~SvpSalSound();
+-	
+-    // overload all pure virtual methods
+-    virtual bool		IsValid();
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen );
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+-	virtual void		Stop();
+-	virtual void		Pause();
+-	virtual void		Continue();
+-    virtual bool		IsLoopMode() const;
+-	virtual bool		IsPlaying() const;
+-    virtual bool		IsPaused() const;
+-};
+-
+ class SvpSalObject : public SalObject
+ {
+ public:
+Index: vcl/unx/headless/svpinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpinst.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpinst.cxx	24 Jul 2007 10:27:49 -0000	1.2
++++ vcl/unx/headless/svpinst.cxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -269,11 +269,6 @@ void SvpSalInstance::DestroyVirtualDevic
+     delete pDevice;
+ }
+ 
+-SalSound* SvpSalInstance::CreateSalSound()
+-{
+-    return new SvpSalSound();
+-}
+-
+ SalTimer* SvpSalInstance::CreateSalTimer()
+ {
+     return new SvpSalTimer( this );
+Index: vcl/unx/headless/svpinst.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/headless/svpinst.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.22.1
+diff -u -p -u -p -r1.2 -r1.2.22.1
+--- vcl/unx/headless/svpinst.hxx	24 Jul 2007 10:27:59 -0000	1.2
++++ vcl/unx/headless/svpinst.hxx	31 Aug 2007 09:44:57 -0000	1.2.22.1
+@@ -166,8 +166,6 @@ public:
+     virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String          GetDefaultPrinter();
+ 
+-    // SalSound
+-    virtual SalSound*		CreateSalSound();
+     // SalTimer
+     virtual SalTimer*		CreateSalTimer();
+     // SalOpenGL
+Index: vcl/unx/inc/postx.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/postx.h,v
+retrieving revision 1.5
+retrieving revision 1.5.408.1
+diff -u -p -u -p -r1.5 -r1.5.408.1
+--- vcl/unx/inc/postx.h	19 Jun 2006 19:46:31 -0000	1.5
++++ vcl/unx/inc/postx.h	31 Aug 2007 09:44:57 -0000	1.5.408.1
+@@ -69,9 +69,6 @@
+ #undef InitializeToken
+ #undef NextRequest
+ 
+-/* Network Audio System */
+-#undef Sound
+-
+ #ifdef KeyPress
+ #if KeyPress != 2
+ Error KeyPress must be Equal 2
+Index: vcl/unx/inc/prex.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/prex.h,v
+retrieving revision 1.15
+retrieving revision 1.15.116.1
+diff -u -p -u -p -r1.15 -r1.15.116.1
+--- vcl/unx/inc/prex.h	26 Apr 2007 10:40:23 -0000	1.15
++++ vcl/unx/inc/prex.h	31 Aug 2007 09:44:57 -0000	1.15.116.1
+@@ -51,9 +51,6 @@
+ #define Region		XLIB_Region
+ #define Boolean		XLIB_Boolean
+ 
+-/* fuer Network Audio System */
+-#define Sound		XLIB_Sound
+-
+ #if defined __cplusplus
+ extern "C" {
+ #endif
+Index: vcl/unx/inc/salinst.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/salinst.h,v
+retrieving revision 1.14
+retrieving revision 1.14.60.1
+diff -u -p -u -p -r1.14 -r1.14.60.1
+--- vcl/unx/inc/salinst.h	27 Jun 2007 20:41:36 -0000	1.14
++++ vcl/unx/inc/salinst.h	31 Aug 2007 09:44:57 -0000	1.14.60.1
+@@ -108,7 +108,6 @@ public:
+     virtual void				DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String             GetDefaultPrinter();
+ 
+-    virtual SalSound*			CreateSalSound();
+     virtual SalTimer*			CreateSalTimer();
+     virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+Index: vcl/unx/inc/salsound.h
+===================================================================
+RCS file: vcl/unx/inc/salsound.h
+diff -N vcl/unx/inc/salsound.h
+--- vcl/unx/inc/salsound.h	27 Jun 2007 20:42:40 -0000	1.5
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,93 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.h,v $
+- *
+- *  $Revision: 1.5 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:42:40 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_H
+-#define _SV_SALSOUND_H
+-
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-namespace vcl_sal { class VSound; }
+-
+-class X11SalSound : public SalSound
+-{
+-// public for VSound sub classes
+-public:
+-	// the real sound
+-	vcl_sal::VSound*		m_pVSound;
+-	
+-	// the sound to play
+-	ByteString				m_aSoundFile;
+-	
+-	// state data
+-	bool					m_bLoop;
+-	bool					m_bPlaying;
+-	bool					m_bPaused;
+-	
+-	ULONG					m_nStartTime;
+-	ULONG					m_nPlayTime;
+-	
+-	static ULONG			s_nSoundState;
+-	
+-	void changeStateStop();
+-	void changeStatePause();
+-	void changeStateCont();
+-	void changeStatePlay();
+-	void setError( ULONG );
+-public:
+-    X11SalSound();
+-	virtual ~X11SalSound();
+-	
+-    // overload all pure virtual methods
+-    virtual bool		IsValid();
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen );
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+-	virtual void		Stop();
+-	virtual void		Pause();
+-	virtual void		Continue();
+-    virtual bool		IsLoopMode() const;
+-	virtual bool		IsPlaying() const;
+-    virtual bool		IsPaused() const;
+-	
+-	static void Release();
+-};
+-
+-#endif // _SV_SALSOUND_HXX
+Index: vcl/unx/source/app/audioconvert.cxx
+===================================================================
+RCS file: vcl/unx/source/app/audioconvert.cxx
+diff -N vcl/unx/source/app/audioconvert.cxx
+--- vcl/unx/source/app/audioconvert.cxx	17 Sep 2006 12:31:15 -0000	1.3
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,166 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: audioconvert.cxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:31:15 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#include <vsound.hxx>
+-
+-using namespace vcl_sal;
+-
+-#include <sunconvert.cxx>
+-
+-AudioConverter::~AudioConverter()
+-{
+-}
+-
+-class G721ToULawConverter : public AudioConverter
+-{
+-	g72x_state		m_aState;
+-public:
+-	G721ToULawConverter();
+-	virtual ~G721ToULawConverter();
+-
+-	virtual void reset();
+-	virtual char* convert( char* In, int nBytesIn, int& nBytesOut );
+-};
+-
+-G721ToULawConverter::G721ToULawConverter()
+-{
+-	reset();
+-}
+-
+-G721ToULawConverter::~G721ToULawConverter()
+-{
+-}
+-
+-void G721ToULawConverter::reset()
+-{
+-	g72x_init_state( &m_aState );
+-}
+-
+-char* G721ToULawConverter::convert(
+-	char* pBuffer,
+-	int nBytesIn,
+-	int& nBytesOut )
+-{
+-	char* pRet = new char[ nBytesOut = nBytesIn*2 ];
+-	for( int m=0; m < nBytesOut; m++ )
+-		pRet[ m ] = (g721_decoder(
+-			m & 1 ? pBuffer[ m/2 ] >> 4 : pBuffer[ m/2 ] & 0x0f,
+-			AUDIO_ENCODING_ULAW,
+-			&m_aState ) & 0xff);
+-
+-	return pRet;
+-}
+-
+-AudioConverter* AudioConverter::createG721ToULawConverter()
+-{
+-	return new G721ToULawConverter;
+-}
+-
+-
+-class INT8ToUINT16Converter : public AudioConverter
+-{
+-public:
+-	INT8ToUINT16Converter() {}
+-	virtual ~INT8ToUINT16Converter();
+-
+-	virtual void reset();
+-	virtual char* convert( char* In, int nBytesIn, int& nBytesOut );
+-};
+-
+-INT8ToUINT16Converter::~INT8ToUINT16Converter()
+-{
+-}
+-
+-void INT8ToUINT16Converter::reset()
+-{
+-}
+-
+-char* INT8ToUINT16Converter::convert( char* pBuffer, int nBytesIn, int& nBytesOut )
+-{
+-	unsigned short* pShorts = new unsigned short[ nBytesIn ];
+-	nBytesOut = 2*nBytesIn;
+-
+-	for( int i=0; i < nBytesIn; i++ )
+-	{
+-		signed char cByte = pBuffer[ i ];
+-		int nValue = cByte;
+-		nValue += 128;
+-		pShorts[ i ] = 257*nValue;
+-	} 
+-	return (char*)pShorts;
+-}
+-
+-AudioConverter* AudioConverter::createINT8ToUINT16Converter()
+-{
+-	return new INT8ToUINT16Converter();
+-}
+-
+-class SwapINT16Converter : public AudioConverter
+-{
+-public:
+-	SwapINT16Converter() {}
+-	virtual ~SwapINT16Converter();
+-
+-	virtual void reset();
+-	virtual char* convert( char* In, int nBytesIn, int& nBytesOut );
+-};
+-
+-SwapINT16Converter::~SwapINT16Converter()
+-{
+-}
+-
+-void SwapINT16Converter::reset()
+-{
+-}
+-
+-char* SwapINT16Converter::convert( char* In, int nBytesIn, int& nBytesOut )
+-{
+-	char* pRet = new char[ nBytesOut = nBytesIn ];
+-
+-	for( int i = 0; i < nBytesIn; i+=2 )
+-	{
+-		pRet[ i   ] = In[ i+1 ];
+-		pRet[ i+1 ] = In[ i ];
+-	}
+-	return pRet;
+-}
+-
+-AudioConverter* AudioConverter::createSwapINT16Converter()
+-{
+-	return new SwapINT16Converter();
+-}
+Index: vcl/unx/source/app/devaudiosound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/devaudiosound.cxx
+diff -N vcl/unx/source/app/devaudiosound.cxx
+--- vcl/unx/source/app/devaudiosound.cxx	27 Jun 2007 20:45:27 -0000	1.15
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,547 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: devaudiosound.cxx,v $
+- *
+- *  $Revision: 1.15 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:45:27 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#include <vcl/svapp.hxx>
+-
+-#ifdef USE_DEVAUDIO
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <stdio.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <sys/ioctl.h>
+-#include <sys/audioio.h>
+-#include <errno.h>
+-
+-#ifndef _SAL_TYPES_H_
+-#include <sal/types.h>
+-#endif
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace osl;
+-
+-int									DevAudioSound::s_nDevice = -1;
+-DevAudioDataList					DevAudioSound::s_aDataList;
+-osl::Mutex							DevAudioSound::s_aProtector;
+-DevAudioSoundList					DevAudioSound::s_aSounds;
+-
+-static const char* getAudioDevName()
+-{
+-    static const char* pDev = NULL;
+-    if( ! pDev )
+-    {
+-        pDev = getenv( "AUDIODEV" );
+-        if( ! pDev || ! *pDev )
+-            pDev = "/dev/audio";
+-    }
+-    return pDev;
+-}
+-
+-BOOL DevAudioSound::open()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice == -1 )
+-	{
+-		s_nDevice = ::open( getAudioDevName(), O_WRONLY | O_NDELAY );
+-		if( s_nDevice == -1 )
+-		{
+-			SalDbgAssert( "ERROR: could not open %s, errno=%d\n", getAudioDevName(), errno );
+-			return FALSE;
+-		}
+-#if OSL_DEBUG_LEVEL > 1
+-		audio_device_t aDevice;
+-		if( ! ioctl( s_nDevice, AUDIO_GETDEV, &aDevice ) )
+-		  SalDbgAssert( "\nopened %s of type:\nName: %s\nVersion: %s\nConfig: %s\n\n",
+-			   getAudioDevName(), aDevice.name, aDevice.version, aDevice.config );
+-#endif
+-	}
+-	else
+-	{
+-		// sadly there is no documented reset control for /dev/audio
+-		// ioctl( s_nDevice, SNDCTL_DSP_RESET, 0 );
+-	}
+-	return TRUE;
+-}
+-
+-void DevAudioSound::close()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice != -1 )
+-	{
+-	  ioctl( s_nDevice, AUDIO_DRAIN, NULL );
+-		::close( s_nDevice );
+-	}
+-	s_nDevice = -1;
+-}
+-
+-BOOL DevAudioSound::startSound( DevAudioData* pData )
+-{
+-	if( pData && pData->m_pSound && pData->m_pSound->m_pBuffer &&
+-		s_nDevice >= 0 )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer, ".snd", 4 ) )
+-			return startAU( pData );
+-		else if( ! strncmp( pData->m_pSound->m_pBuffer, "RIFF", 4 ) )
+-			return startRIFF( pData );
+-	}
+-	return FALSE;
+-}
+-
+-BOOL DevAudioSound::startAU( DevAudioData* pData )
+-{
+-	char* pBuffer = pData->m_pSound->m_pBuffer;
+-	ULONG nDataOffset	= readBELong( pBuffer + 4 );
+-	ULONG nDataLen		= readBELong( pBuffer + 8 );
+-	ULONG nEncoding		= readBELong( pBuffer + 12 );
+-	ULONG nSampleRate	= readBELong( pBuffer + 16 );
+-	ULONG nChannels		= readBELong( pBuffer + 20 );
+-
+-	if( nDataLen == ~0 )
+-		nDataLen = pData->m_pSound->m_aStat.st_size - nDataOffset;
+-
+-	pData->m_nDataLen	= nDataLen;
+-	pData->m_nStartPos	= nDataOffset;
+-	pData->m_nEndPos	= pData->m_nStartPos + pData->m_nDataLen;
+-
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-
+-	audio_info_t aAudioInfo;
+-	AUDIO_INITINFO( &aAudioInfo );
+-
+-	aAudioInfo.play.gain 			= 127;
+-	aAudioInfo.play.channels		= nChannels;
+-	aAudioInfo.play.sample_rate		= nSampleRate;
+-	switch( nEncoding )
+-	{
+-		case 1:
+-			aAudioInfo.play.encoding = AUDIO_ENCODING_ULAW;
+-			break;
+-		case 2:
+-			aAudioInfo.play.precision	= 8;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-			break;
+-		case 3:
+-			aAudioInfo.play.precision	= 16;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-			break;
+-		case 23:
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_ULAW;
+-			pData->m_pConverter = AudioConverter::createG721ToULawConverter();
+-			break;
+-		default:
+-			SalDbgAssert( "au format %d unsupported\n", nEncoding );
+-			return FALSE;
+-	};
+-
+-	if( ioctl( s_nDevice, AUDIO_SETINFO, &aAudioInfo ) )
+-	{
+-		SalDbgAssert( "ERROR: ioctl AUDIO_SETINFO failed\n" );
+-		return FALSE;
+-	}
+-
+-	SalDbgAssert( "playing %d data bytes at %d bytes/s in format %d on %d channels \n", pData->m_nDataLen, nSampleRate, nEncoding, nChannels );
+-	return TRUE;
+-}
+-
+-BOOL DevAudioSound::startRIFF( DevAudioData* pData )
+-{
+-	int nPos = findChunk( pData, "fmt " );
+-	if( nPos == -1 )
+-		return FALSE;
+-
+-	int nFormat		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 8 );
+-	int nChannels	= readLEShort( pData->m_pSound->m_pBuffer + nPos + 10 );
+-	int nSampleRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 12 );
+-	int nByteRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 16 );
+-	int nAlign		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 20 );
+-	SalDbgAssert( "format is tag = %x, channels = %d, samplesPerSec = %d, avgBytesPerSec = %d, blockAlign = %d\n", nFormat, nChannels, nSampleRate, nByteRate, nAlign );
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-
+-	int nBitsPerSample = 0;
+-	switch( nFormat )
+-	{
+-		default:
+-			SalDbgAssert( "unknown format\n" );
+-			return FALSE;
+-		case 1:
+-			nBitsPerSample = readLEShort( pData->m_pSound->m_pBuffer + nPos + 22 );
+-			break;
+-	}
+-
+-	nPos = findChunk( pData, "data" );
+-	if( nPos == -1 )
+-	{
+-		SalDbgAssert( "ERROR: no \"data\" chunk found\n" );
+-		return FALSE;
+-	}
+-
+-	pData->m_nDataLen = readLEInt( pData->m_pSound->m_pBuffer + nPos + 4 );
+-	pData->m_nStartPos = nPos+8;
+-	pData->m_nEndPos = pData->m_nStartPos + pData->m_nDataLen;
+-
+-	audio_info_t aAudioInfo;
+-	AUDIO_INITINFO( &aAudioInfo );
+-
+-	aAudioInfo.play.gain 			= 127;
+-	aAudioInfo.play.channels		= nChannels;
+-	aAudioInfo.play.sample_rate		= nSampleRate;
+-	switch( nBitsPerSample )
+-	{
+-		case 8:
+-#if defined SOLARIS && defined SPARC
+-			aAudioInfo.play.precision	= 16;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-			pData->m_pConverter = AudioConverter::createINT8ToUINT16Converter();
+-#else
+-			aAudioInfo.play.precision	= 8;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-#endif
+-			break;
+-		case 16:
+-			aAudioInfo.play.precision	= 16;
+-			aAudioInfo.play.encoding	= AUDIO_ENCODING_LINEAR;
+-#ifdef SPARC
+-			pData->m_pConverter = AudioConverter::createSwapINT16Converter();
+-#endif
+-			break;
+-		default:
+-			SalDbgAssert( "%d bits per sample is not usable\n", nBitsPerSample );
+-			return FALSE;
+-	};
+-
+-	if( ioctl( s_nDevice, AUDIO_SETINFO, &aAudioInfo ) )
+-	{
+-		SalDbgAssert( "ERROR: ioctl AUDIO_SETINFO failed\n" );
+-		return FALSE;
+-	}
+-
+-	SalDbgAssert( "playing %d data bytes at %d bytes/s in %d bits quality on %d channels \n", pData->m_nDataLen, nSampleRate, nBitsPerSample, nChannels );
+-	return TRUE;
+-}
+-
+-int DevAudioSound::findChunk( DevAudioData* pData, const char* pChunk )
+-{
+-	if( !pData || ! pData->m_pSound || ! pData->m_pSound->m_pBuffer )
+-		return -1;
+-
+-	int nPos = 12;
+-	while( nPos < pData->m_pSound->m_aStat.st_size )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer+nPos, pChunk, 4 ) )
+-			return nPos;
+-
+-		// get LSB int length
+-		nPos += readLEInt( pData->m_pSound->m_pBuffer+nPos+4 ) + 8;
+-	}
+-	return -1;
+-}
+-
+-short int DevAudioSound::readLEShort( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	short int nRet = *pBuffer++;
+-	nRet |= *pBuffer << 8;
+-
+-	return nRet;
+-}
+-
+-ULONG DevAudioSound::readBELong( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	ULONG nRet	 = *pBuffer++ << 24;
+-	nRet		|= *pBuffer++ << 16;
+-	nRet		|= *pBuffer++ << 8;
+-	nRet		|= *pBuffer;
+-
+-	return nRet;
+-}
+-
+-int DevAudioSound::readLEInt( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	int nRet = *pBuffer++;
+-	nRet |= (int)(*pBuffer++) << 8;
+-	nRet |= (int)(*pBuffer++) << 16;
+-	nRet |= (int)(*pBuffer++) << 24;
+-
+-	return nRet;
+-}
+-
+-static oslThread aThreadWorker= NULL;
+-extern "C" {
+-    void SAL_CALL DevAudioThreadWorker(void*)
+-    {
+-        DevAudioSound::run();
+-    }
+-}
+-
+-void DevAudioSound::run()
+-{
+-	SalDbgAssert( "DevAudioWorker::run\n" );
+-	DevAudioData* pData;
+-    if( open() )
+-    {
+-        do
+-        {
+-            ResettableMutexGuard aGuard( s_aProtector );
+-            pData = s_aDataList.Count() ? s_aDataList.GetObject( 0 ) : NULL;
+-            if( ! pData )
+-                break;
+-
+-            bool bDataValid = true;
+-            if( startSound( pData ) )
+-            {
+-                pData->m_nCurPos = pData->m_nStartPos;
+-                while( pData->m_nCurPos < pData->m_nEndPos )
+-                {
+-                    int nBytes = 4096;
+-
+-                    char* pBuffer = pData->m_pSound->m_pBuffer;
+-
+-                    if( pData->m_nCurPos + nBytes > pData->m_nEndPos )
+-                        nBytes = pData->m_nEndPos - pData->m_nCurPos;
+-
+-                    if( pData->m_pConverter )
+-                    {
+-                        int nBytesOut;
+-                        char* pConvBuffer = pData->m_pConverter->convert( pBuffer + pData->m_nCurPos, nBytes, nBytesOut );
+-                        write( s_nDevice, pConvBuffer, nBytesOut );
+-                        delete pConvBuffer;
+-                    }
+-                    else
+-                    {
+-                        nBytes = write( s_nDevice,
+-                                        pBuffer + pData->m_nCurPos, nBytes );
+-                    }
+-                    pData->m_nCurPos += nBytes;
+-
+-                    aGuard.clear();
+-                    TimeValue aVal;
+-                    aVal.Seconds = 0;
+-                    aVal.Nanosec = 50000000;
+-                    osl_waitThread( &aVal );
+-                    aGuard.reset();
+-
+-                    if( s_aDataList.GetObject( 0 ) != pData )
+-                    {
+-                        bDataValid = false;
+-                        break;
+-                    }
+-                }
+-                if( bDataValid )
+-                {
+-                    if( pData->m_pSound->m_pSalSound->m_bLoop )
+-                        pData->m_pSound->play();
+-                    else
+-                    {
+-                        // /dev/audio does not seem to have a mechanism to request
+-                        // wether the device is actually playing. Therefore
+-                        // we need to synchronzie before signaling sound stop
+-                        ioctl( s_nDevice, AUDIO_DRAIN, NULL );
+-                        Application::PostUserEvent( LINK( pData->m_pSound, DevAudioSound, notifyStopHdl ), NULL );
+-                    }
+-                }
+-            }
+-            else
+-				Application::PostUserEvent( LINK( pData->m_pSound, DevAudioSound, notifyErrorHdl ), (void*)SOUNDERR_INVALID_FILE );
+-
+-            s_aDataList.Remove( pData );
+-            delete pData;
+-        } while( pData );
+-        close();
+-    }
+-
+-    MutexGuard aGuard( s_aProtector );
+-    osl_destroyThread( aThreadWorker );
+-    aThreadWorker = NULL;
+-}
+-
+-void DevAudioSound::append( DevAudioSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	s_aDataList.Insert( new DevAudioData( pSound ), LIST_APPEND );
+-	if( ! aThreadWorker )
+-        aThreadWorker = osl_createThread( DevAudioThreadWorker, NULL );
+-}
+-
+-void DevAudioSound::remove( DevAudioSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	DevAudioData* pData;
+-	for( int i = s_aDataList.Count()-1; i >= 0; i-- )
+-	{
+-		pData = s_aDataList.GetObject( i );
+-		if( pData->m_pSound == pSound )
+-		{
+-			s_aDataList.Remove( i );
+-			if( i > 0 )
+-				delete pData;
+-		}
+-	}
+-}
+-
+-DevAudioSound::DevAudioSound( ::X11SalSound* pSound ) :
+-		VSound( pSound )
+-{
+-	initBuffer();
+-	s_aSounds.Insert( this );
+-}
+-
+-DevAudioSound::~DevAudioSound()
+-{
+-	stop();
+-	if( m_pBuffer )
+-		releaseBuffer();
+-	s_aSounds.Remove( this );
+-}
+-
+-BOOL DevAudioSound::isValid()
+-{
+-	if( ! m_pBuffer )
+-		return FALSE;
+-
+-    if( s_nDevice == -1 )
+-    {
+-        int nTryOpen = ::open( getAudioDevName(), O_WRONLY | O_NDELAY );
+-        if( nTryOpen == -1 )
+-            return FALSE;
+-        ::close( nTryOpen );
+-    }
+-
+-	// check for valid file format
+-	if( ! strncmp( "RIFF", m_pBuffer, 4 ) )
+-	{
+-		DevAudioData aData( this );
+-
+-		// check for data chunk
+-		if( findChunk( &aData, "data" ) == -1 )
+-			goto failed;
+-		int nPos = findChunk( &aData, "fmt " );
+-		if( nPos == -1 )
+-			goto failed;
+-
+-		int nFormat		= readLEShort( m_pBuffer + nPos + 8 );
+-		int nChannels	= readLEShort( m_pBuffer + nPos + 10 );
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		// check formats
+-		// playable is MS-PCM only at now
+-		if( nFormat != 1 )
+-			goto failed;
+-		return TRUE;
+-	}
+-	else if( ! strncmp( ".snd", m_pBuffer, 4 ) )
+-	{
+-		ULONG nEncoding		= readBELong( m_pBuffer + 12 );
+-		ULONG nChannels		= readBELong( m_pBuffer + 20 );
+-
+-		// check for playable encodings
+-		if( nEncoding != 1 && nEncoding != 2 && nEncoding != 3 && nEncoding != 23 )
+-			goto failed;
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		return TRUE;
+-	}
+-  failed:
+-	releaseBuffer();
+-	return FALSE;
+-}
+-
+-void DevAudioSound::play()
+-{
+-	if( ! m_pBuffer )
+-		return;
+-
+-	append( this );
+-	m_pSalSound->m_bPlaying	= TRUE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void DevAudioSound::stop()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPlaying	= FALSE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void DevAudioSound::pause()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPaused = TRUE;
+-}
+-
+-void DevAudioSound::cont()
+-{
+-	play();
+-}
+-
+-IMPL_LINK( DevAudioSound, notifyStopHdl, void*, EMPTYARG )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->changeStateStop();
+-	}
+-	return 0;
+-}
+-
+-IMPL_LINK( DevAudioSound, notifyErrorHdl, void*, nError )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->setError( (ULONG)nError );
+-	}
+-	return 0;
+-}
+-
+-#endif
+Index: vcl/unx/source/app/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/app/makefile.mk,v
+retrieving revision 1.28
+retrieving revision 1.28.16.1
+diff -u -p -u -p -r1.28 -r1.28.16.1
+--- vcl/unx/source/app/makefile.mk	31 Jul 2007 13:01:37 -0000	1.28
++++ vcl/unx/source/app/makefile.mk	31 Aug 2007 09:44:58 -0000	1.28.16.1
+@@ -70,13 +70,7 @@ SLOFILES=\
+ 			$(SLO)$/soicon.obj			\
+ 			$(SLO)$/sm.obj				\
+ 			$(SLO)$/keysymnames.obj		\
+-			$(SLO)$/wmadaptor.obj		\
+-			$(SLO)$/salsound2.obj		\
+-			$(SLO)$/osssound.obj		\
+-			$(SLO)$/devaudiosound.obj		\
+-			$(SLO)$/audioconvert.obj		\
+-			$(SLO)$/rptpsound.obj		\
+-			$(SLO)$/nassound.obj		
++			$(SLO)$/wmadaptor.obj
+ 
+ EXCEPTIONSFILES=\
+ 			$(SLO)$/wmadaptor.obj		\
+@@ -87,22 +81,6 @@ EXCEPTIONSFILES=\
+             $(SLO)$/salsys.obj
+ 
+ 
+-.IF "$(ENABLE_NAS)" != ""
+-CDEFS+=-DUSE_NAS
+-.ENDIF
+-
+-.IF "$(ENABLE_PASF)" != ""
+-CDEFS+=-DUSE_PASF -DPA_VER=$(PA_VER)
+-SLOFILES+=$(SLO)$/pasfsound.obj
+-.IF "$(SYSTEM_SNDFILE)" == "YES"
+-CDEFS+=-DSYSTEM_SNDFILE
+-CFLAGS+=$(SNDFILE_CFLAGS)
+-.ENDIF
+-.IF "$(SYSTEM_PORTAUDIO)" == "YES"
+-CDEFS+=-DSYSTEM_PORTAUDIO
+-.ENDIF
+-.ENDIF
+-
+ .IF "$(ENABLE_RANDR)" != ""
+ .IF "$(OS)" != "SOLARIS"
+ CDEFS+=-DUSE_RANDR
+Index: vcl/unx/source/app/nassound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/nassound.cxx
+diff -N vcl/unx/source/app/nassound.cxx
+--- vcl/unx/source/app/nassound.cxx	17 Sep 2006 12:33:50 -0000	1.10
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,278 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: nassound.cxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:33:50 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#include <salimpsound.hxx>
+-#include <salsound.h>
+-
+-#ifdef USE_NAS
+-
+-#define INT8 AU_INT8
+-#include <audio/audiolib.h>
+-#include <audio/soundlib.h>
+-#undef INT8
+-
+-#include <salunx.h>
+-#include <saldata.hxx>
+-#include <saldisp.hxx>
+-
+-#include <unistd.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-
+-BOOL						NASSound::s_bFailedOnce = FALSE;
+-NASSound::NASSoundList		NASSound::s_aSounds;
+-void*						NASSound::s_pServer = NULL;
+-
+-void NASSound::callback( void*, void*, void* event, void* pThis )
+-{
+-	SalDbgAssert( "NASSound::callback called\n" );
+-
+-	NASSound* pSound = (NASSound*)pThis;
+-	if( s_aSounds.GetPos( pSound ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		AuEvent* pEvent = (AuEvent*)event;
+-		SalDbgAssert( "   on event type %d\n", pEvent->type );
+-		if( pSound->m_pSalSound &&
+-			pEvent->type == AuEventTypeElementNotify )
+-		{
+-			switch( pEvent->auelementnotify.cur_state )
+-			{
+-				case AuStateStop:
+-				{
+-					pSound->m_nFlowID = 0;
+-					pSound->m_pSalSound->changeStateStop();
+-					break;
+-				}
+-				case AuStatePause:
+-					pSound->m_pSalSound->changeStatePause();
+-					break;
+-				case AuStateStart:
+-					pSound->m_pSalSound->changeStateCont();
+-					break;
+-				default:
+-					break;
+-			}
+-		}
+-	}
+-	else
+-		SalDbgAssert( "NASSound %p is adressed in callback but unknown !\n", pSound );
+-}
+-
+-BOOL NASSound::connect()
+-{
+-	if( ! s_pServer && ! s_bFailedOnce )
+-	{
+-		char* pServerMessage = NULL;
+-		s_pServer = AuOpenServer( NULL, 0, NULL, 0, NULL, &pServerMessage );
+-		if( ! s_pServer )
+-		{
+-			SalDbgAssert( "AuOpenServer failed: %s\n",
+-						  pServerMessage ?
+-						  pServerMessage : "<unknown reason>" );
+-			AuFree( pServerMessage );
+-			s_bFailedOnce = TRUE;
+-		}
+-		else
+-		{
+-			GetX11SalData()->GetLib()->Insert( AuServerConnectionNumber( (AuServer*)s_pServer ),
+-											NULL,
+-											(YieldFunc)pending,
+-											(YieldFunc)queued,
+-											(YieldFunc)handleEvents );
+-			SalDbgAssert( "AudioConnectionNumber is %d, DisplayConnectionNumber is %d\n",
+-						  AuServerConnectionNumber( (AuServer*)s_pServer ),
+-						  ConnectionNumber( GetX11SalData()->GetDisplay()->GetDisplay() ) );
+-		}
+-	}
+-	return s_pServer ? TRUE : FALSE;
+-}
+-
+-void NASSound::disconnect()
+-{
+-	if( s_pServer )
+-	{
+-		GetX11SalData()->GetLib()->Remove( AuServerConnectionNumber( (AuServer*)s_pServer ) );
+-		AuCloseServer( (AuServer*)s_pServer );
+-		s_pServer = NULL;
+-	}
+-}
+-
+-int NASSound::pending( int, void* )
+-{
+-	return s_pServer ? AuEventsQueued( (AuServer*)s_pServer, AuEventsQueuedAlready ) : 0;
+-}
+-
+-int NASSound::queued( int fd, void* pDummy )
+-{
+-	return pending( fd, pDummy );
+-}
+-
+-int NASSound::handleEvents( int, void* )
+-{
+-	if( s_pServer )
+-	{
+-		for( int i = pending(0,0); i && s_pServer; i-- )
+-		{
+-			AuEvent aEvent;
+-			AuNextEvent( (AuServer*)s_pServer, AuTrue, &aEvent );
+-			AuDispatchEvent( (AuServer*)s_pServer, &aEvent );
+-		}
+-	}
+-	return 1;
+-}
+-
+-NASSound::NASSound( ::X11SalSound* pSalSound ) :
+-		VSound( pSalSound ),
+-		m_nFlowID( 0 )
+-{
+-	s_aSounds.Insert( this );
+-}
+-
+-NASSound::~NASSound()
+-{
+-	s_aSounds.Remove( this );
+-	if( s_aSounds.Count() < 1 )
+-		disconnect();
+-}
+-
+-void NASSound::play()
+-{
+-	BOOL bStarted = FALSE;
+-
+-	if( ! s_pServer )
+-		connect();
+-	
+-	if( s_pServer && m_pSalSound )
+-	{
+-		AuFlowID aID;
+-		AuStatus aStatus;
+-		if( AuSoundPlayFromFile( (AuServer*)s_pServer,
+-								 m_pSalSound->m_aSoundFile.GetBuffer(),
+-								 AuNone,
+-								 AuFixedPointFromSum( 1, 0 ),
+-								 (void(*)(AuServer*,AuEventHandlerRec*,AuEvent*,void*))callback,
+-								 (AuPointer)this,
+-								 &aID,
+-								 NULL,
+-								 NULL,
+-								 &aStatus )
+-			)
+-		{
+-			SalDbgAssert( "AuSoundPlayFromFile yields flow id %d and status %d\n",
+-						  aID, aStatus );
+-
+- 			AuElementState aState;
+- 			aState.flow = aID;
+- 			aState.element_num = 0;
+- 			for( int n = 0; n < 20 && ! bStarted; n++ )
+- 			{
+-                TimeValue aVal;
+-                aVal.Seconds = 0;
+-                aVal.Nanosec = 20000000;
+-                osl_waitThread( &aVal );
+- 				AuHandleEvents( (AuServer*)s_pServer );
+-
+- 				int nStates = 1;
+- 				AuElementState* pState =
+- 					AuGetElementStates( (AuServer*)s_pServer,
+- 										&nStates,
+- 										&aState,
+- 										&aStatus );
+- 				if( pState )
+- 				{
+- 					if( pState->state == AuStateStart )
+- 						bStarted = TRUE;
+- 					AuFreeElementStates( (AuServer*)s_pServer,
+- 										 1, pState );
+- 				}
+- 				else
+- 				{
+- 					SalDbgAssert( "AuGetElementStates failed\n" );
+- 					break;
+- 				}
+- 			}
+-
+-            if ( bStarted )
+-			    SalDbgAssert( "   sound started\n" );
+-            else
+-			    SalDbgAssert( "   sound failed to start\n" );
+-
+-			m_pSalSound->m_bPlaying = bStarted;
+-			if( bStarted )
+-				m_nFlowID = aID;
+-		}
+-	}
+-
+-	if( ! bStarted && m_pSalSound )
+-		m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-}
+-
+-void NASSound::stop()
+-{
+-  	if( s_pServer && m_nFlowID )
+-	{
+-  		AuStopFlow( (AuServer*)s_pServer, m_nFlowID, NULL );
+-		m_nFlowID = 0;
+-	}
+-}
+-
+-void NASSound::pause()
+-{
+-  	if( s_pServer && m_nFlowID )
+-  		AuPauseFlow( (AuServer*)s_pServer, m_nFlowID, NULL );
+-}
+-
+-void NASSound::cont()
+-{
+-  	if( s_pServer && m_nFlowID )
+-  		AuStartFlow( (AuServer*)s_pServer, m_nFlowID, NULL );
+-}
+-
+-BOOL NASSound::isValid()
+-{
+-	if( ! m_pSalSound )
+-		return FALSE;
+-	if( ! s_pServer )
+-		connect();
+-	if( ! s_pServer )
+-		return FALSE;
+-
+-	return access( m_pSalSound->m_aSoundFile.GetBuffer(), R_OK ) ? FALSE : TRUE;
+-}
+-
+-#endif
+Index: vcl/unx/source/app/osssound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/osssound.cxx
+diff -N vcl/unx/source/app/osssound.cxx
+--- vcl/unx/source/app/osssound.cxx	27 Jun 2007 20:46:05 -0000	1.10
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,521 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: osssound.cxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:46:05 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#include <vcl/svapp.hxx>
+-
+-#ifdef USE_OSS
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <stdio.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <sys/ioctl.h>
+-#ifdef LINUX
+-#include <linux/soundcard.h>
+-#else
+-#include <sys/soundcard.h>
+-#endif
+-#include <errno.h>
+-#include <osl/thread.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace osl;
+-
+-int						OSSSound::s_nDevice = -1;
+-OSSSound::OSSDataList	OSSSound::s_aDataList;
+-Mutex					OSSSound::s_aProtector;
+-OSSSound::OSSSoundList	OSSSound::s_aSounds;
+-
+-BOOL OSSSound::open()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice == -1 )
+-	{
+-		s_nDevice = ::open( "/dev/dsp", O_WRONLY );
+-		if( s_nDevice == -1 )
+-		{
+-			SalDbgAssert( "ERROR: could not open /dev/dsp, errno=%d\n", errno );
+-			return FALSE;
+-		}
+-	}
+-	else
+-	{
+-		ioctl( s_nDevice, SNDCTL_DSP_RESET, 0 );
+-	}
+-	return TRUE;
+-}
+-
+-void OSSSound::close()
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	if( s_nDevice != -1 )
+-		::close( s_nDevice );
+-	s_nDevice = -1;
+-}
+-
+-BOOL OSSSound::startSound( OSSData* pData )
+-{
+-	if( pData && pData->m_pSound && pData->m_pSound->m_pBuffer &&
+-		s_nDevice >= 0 )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer, ".snd", 4 ) )
+-			return startAU( pData );
+-		else if( ! strncmp( pData->m_pSound->m_pBuffer, "RIFF", 4 ) )
+-			return startRIFF( pData );
+-	}
+-	return FALSE;
+-}
+-
+-BOOL OSSSound::startAU( OSSData* pData )
+-{
+-	char* pBuffer = pData->m_pSound->m_pBuffer;
+-	ULONG nDataOffset	= readBELong( pBuffer + 4 );
+-	ULONG nDataLen		= readBELong( pBuffer + 8 );
+-	ULONG nEncoding		= readBELong( pBuffer + 12 );
+-	ULONG nSampleRate	= readBELong( pBuffer + 16 );
+-	ULONG nChannels		= readBELong( pBuffer + 20 );
+-
+-	if( nDataLen == 0xffffffff )
+-		nDataLen = pData->m_pSound->m_aStat.st_size - nDataOffset;
+-
+-	pData->m_nDataLen	= nDataLen;
+-	pData->m_nStartPos	= nDataOffset;
+-	pData->m_nEndPos	= pData->m_nStartPos + pData->m_nDataLen;
+-
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-
+-	int nSystemFormat;
+-	switch( nEncoding )
+-	{
+-		case 1: nSystemFormat = AFMT_MU_LAW;break;
+-		case 2: nSystemFormat = AFMT_U8;break;
+-		case 3: nSystemFormat = AFMT_S16_BE;break;
+-		default:
+-			SalDbgAssert( "au format %d unsupported\n", nEncoding );
+-			return FALSE;
+-	};
+-
+-	int nRealFormat = nSystemFormat;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SETFMT, &nRealFormat )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SETFMT failed\n" );
+-		return FALSE;
+-	}
+-	int nRealChannels = nChannels-1;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_STEREO, &nRealChannels )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_STEREO failed\n" );
+-		return FALSE;
+-	}
+-	if( nRealChannels != sal::static_int_cast<int>(nChannels-1) )
+-	{
+-		SalDbgAssert( "could not set %d channels\n", nChannels );
+-		return FALSE;
+-	}
+-
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SPEED, &nSampleRate ) == -1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SPEED failed\n" );
+-		return FALSE;
+-	}
+-	SalDbgAssert( "playing %d data bytes at %d bytes in format %d quality/s on %d channels \n", pData->m_nDataLen, nSampleRate, nEncoding, nChannels );
+-	return TRUE;
+-}
+-
+-BOOL OSSSound::startRIFF( OSSData* pData )
+-{
+-	int nPos = findChunk( pData, "fmt " );
+-	if( nPos == -1 )
+-		return FALSE;
+-	
+-	int nFormat		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 8 );
+-	int nChannels	= readLEShort( pData->m_pSound->m_pBuffer + nPos + 10 );
+-	int nSampleRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 12 );
+-	int nByteRate	= readLEInt( pData->m_pSound->m_pBuffer + nPos + 16 );
+-	int nAlign		= readLEShort( pData->m_pSound->m_pBuffer + nPos + 20 );
+-	SalDbgAssert( "format is tag = %x, channels = %d, samplesPerSec = %d, avgBytesPerSec = %d, blockAlign = %d\n", nFormat, nChannels, nSampleRate, nByteRate, nAlign );
+-	if( nChannels != 1 && nChannels != 2 )
+-	{
+-		SalDbgAssert( "%d Channels are not supported\n" );
+-		return FALSE;
+-	}
+-	
+-	int nBitsPerSample = 0;
+-	switch( nFormat )
+-	{
+-		default:
+-			SalDbgAssert( "unknown format\n" );
+-			return FALSE;
+-			break;
+-		case 1:
+-			nBitsPerSample = readLEShort( pData->m_pSound->m_pBuffer + nPos + 22 );
+-			break;
+-	}
+-	
+-	nPos = findChunk( pData, "data" );
+-	if( nPos == -1 )
+-	{
+-		SalDbgAssert( "ERROR: no \"data\" chunk found\n" );
+-		return FALSE;
+-	}
+-	
+-	pData->m_nDataLen = readLEInt( pData->m_pSound->m_pBuffer + nPos + 4 );
+-	pData->m_nStartPos = nPos+8;
+-	pData->m_nEndPos = pData->m_nStartPos + pData->m_nDataLen;
+-	
+-	int nSystemFormat;
+-	switch( nBitsPerSample )
+-	{
+-		case 8:  nSystemFormat = AFMT_U8; break;
+-		case 16: nSystemFormat = AFMT_S16_LE; break;
+-		default:
+-			SalDbgAssert( "%d bits per sample is not usable\n", nBitsPerSample );
+-			return FALSE;
+-	}
+-	
+-	int nRealFormat = nSystemFormat;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SETFMT, &nRealFormat )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SETFMT failed\n" );
+-		return FALSE;
+-	}
+-	
+-	int nRealChannels = nChannels-1;
+-	if( ioctl( s_nDevice, SNDCTL_DSP_STEREO, &nRealChannels )==-1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_STEREO failed\n" );
+-		return FALSE;
+-	}
+-	if( nRealChannels != nChannels-1 )
+-	{
+-		SalDbgAssert( "could not set %d channels\n", nChannels );
+-		return FALSE;
+-	}
+-	
+-	
+-	if( ioctl( s_nDevice, SNDCTL_DSP_SPEED, &nSampleRate ) == -1 )
+-	{
+-		SalDbgAssert( "ERROR: ioctl SNDCTL_DSP_SPEED failed\n" );
+-		return FALSE;
+-	}
+-	
+-	SalDbgAssert( "playing %d data bytes at %d bytes in %d bits quality/s on %d channels \n", pData->m_nDataLen, nSampleRate, nBitsPerSample, nChannels );
+-	return TRUE;
+-}
+-
+-int OSSSound::findChunk( OSSData* pData, const char* pChunk )
+-{
+-	if( !pData || ! pData->m_pSound || ! pData->m_pSound->m_pBuffer )
+-		return -1;
+-
+-	int nPos = 12;
+-	while( nPos < pData->m_pSound->m_aStat.st_size )
+-	{
+-		if( ! strncmp( pData->m_pSound->m_pBuffer+nPos, pChunk, 4 ) )
+-			return nPos;
+-
+-		// get LSB int length
+-		nPos += readLEInt( pData->m_pSound->m_pBuffer+nPos+4 ) + 8;
+-	}
+-	return -1;
+-}
+-
+-short int OSSSound::readLEShort( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	short int nRet = *pBuffer++;
+-	nRet |= *pBuffer << 8;
+-
+-	return nRet;
+-}
+-
+-ULONG OSSSound::readBELong( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	ULONG nRet	 = *pBuffer++ << 24;
+-	nRet		|= *pBuffer++ << 16;
+-	nRet		|= *pBuffer++ << 8;
+-	nRet		|= *pBuffer;
+-
+-	return nRet;
+-}
+-
+-int OSSSound::readLEInt( const char* pBuf )
+-{
+-	const unsigned char* pBuffer = (const unsigned char*)pBuf;
+-	int nRet = *pBuffer++;
+-	nRet |= (int)(*pBuffer++) << 8;
+-	nRet |= (int)(*pBuffer++) << 16;
+-	nRet |= (int)(*pBuffer++) << 24;
+-
+-	return nRet;
+-}
+-
+-static oslThread aThreadWorker= NULL;
+-extern "C" {
+-    void SAL_CALL OSSThreadWorker(void*)
+-    {
+-        OSSSound::run();
+-    }
+-}
+-
+-void OSSSound::run()
+-{
+-	SalDbgAssert( "OSSWorker::run\n" );
+-	OSSData* pData;
+-    do
+-    {
+-        ResettableMutexGuard aGuard( s_aProtector );
+-        pData = s_aDataList.Count() ? s_aDataList.GetObject( 0 ) : NULL;
+-        if( ! pData )
+-            break;
+-        
+-        if( open() )
+-        {
+-            
+-            bool bDataValid = true;
+-            if( startSound( pData ) )
+-            {
+-                pData->m_nCurPos = pData->m_nStartPos;
+-                while( pData->m_nCurPos < pData->m_nEndPos )
+-                {
+-                    audio_buf_info info;
+-                    ioctl( s_nDevice, SNDCTL_DSP_GETOSPACE, &info );
+-                    if( info.bytes > 0 )
+-                    {
+-                        int nBytes = info.bytes;
+-                        if( pData->m_nCurPos + nBytes > pData->m_nEndPos )
+-                            nBytes = pData->m_nEndPos - pData->m_nCurPos;
+-                        nBytes = write( s_nDevice,
+-                                        pData->m_pSound->m_pBuffer + pData->m_nCurPos,
+-                                        nBytes );
+-                        if( nBytes > 0 )
+-                            pData->m_nCurPos += nBytes;
+-                    }
+-                    aGuard.clear();
+-                    TimeValue aVal;
+-                    aVal.Seconds = 0;
+-                    aVal.Nanosec = 20000000;
+-                    osl_waitThread( &aVal );
+-                    aGuard.reset();
+-                    if( s_aDataList.GetObject( 0 ) != pData )
+-                    {
+-                        ioctl( s_nDevice, SNDCTL_DSP_RESET, 0);
+-                        bDataValid = false;
+-                        break;
+-                    }
+-                }
+-                close();
+-                if( bDataValid )
+-                {
+-                    if( pData->m_pSound->m_pSalSound->m_bLoop )
+-                        pData->m_pSound->play();
+-                    else
+-                        Application::PostUserEvent( LINK( pData->m_pSound, OSSSound, notifyStopHdl ), NULL );
+-                }
+-            }
+-            else
+-				Application::PostUserEvent( LINK( pData->m_pSound, OSSSound, notifyErrorHdl ), (void*)SOUNDERR_INVALID_FILE );
+-        }
+-        s_aDataList.Remove( pData );
+-        delete pData;
+-    } while( pData );
+-
+-    MutexGuard aGuard( s_aProtector );
+-    osl_destroyThread( aThreadWorker );
+-    aThreadWorker = NULL;
+-}
+-
+-void OSSSound::append( OSSSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	OSSData* pNew = new OSSData;
+-
+-	pNew->m_pSound		= pSound;
+-	pNew->m_nDataLen	= 0;
+-	pNew->m_nStartPos	= 0;
+-	pNew->m_nEndPos		= 0;
+-	pNew->m_nType		= 0;
+-
+-	s_aDataList.Insert( pNew, LIST_APPEND );
+-	if( ! aThreadWorker )
+-        aThreadWorker = osl_createThread( OSSThreadWorker, NULL );
+-}
+-
+-void OSSSound::remove( OSSSound* pSound )
+-{
+-	MutexGuard aGuard( s_aProtector );
+-	OSSData* pData;
+-	for( int i = s_aDataList.Count()-1; i >= 0; i-- )
+-	{
+-		pData = s_aDataList.GetObject( i );
+-		if( pData->m_pSound == pSound )
+-		{
+-			s_aDataList.Remove( i );
+-			if( i > 0 )
+-				delete pData;
+-		}
+-	}
+-}
+-
+-OSSSound::OSSSound( ::X11SalSound* pSound ) :
+-		VSound( pSound )
+-{
+-	initBuffer();
+-	s_aSounds.Insert( this );
+-}
+-
+-OSSSound::~OSSSound()
+-{
+-	stop();
+- 	if( m_pBuffer )
+- 		releaseBuffer();
+-	s_aSounds.Remove( this );
+-}
+-
+-BOOL OSSSound::isValid()
+-{
+-    if( ! m_pBuffer )
+-        return FALSE;
+-
+-    if( s_nDevice == -1 )
+-    {
+-        int nTryOpen = ::open( "/dev/dsp", O_WRONLY | O_NONBLOCK );
+-        if( nTryOpen == -1 )
+-            return FALSE;
+-        ::close( nTryOpen );
+-    }
+-	
+-	// check for valid file format
+-	if( ! strncmp( "RIFF", m_pBuffer, 4 ) )
+-	{
+-		OSSData aData;
+-		aData.m_pSound = this;
+-
+-		// check for data chunk
+-		if( findChunk( &aData, "data" ) == -1 )
+-			goto failed;
+-		int nPos = findChunk( &aData, "fmt " );
+-		if( nPos == -1 )
+-			goto failed;
+-		
+-		int nFormat		= readLEShort( m_pBuffer + nPos + 8 );
+-		int nChannels	= readLEShort( m_pBuffer + nPos + 10 );
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		// check formats
+-		// playable is MS-PCM only at now
+-		if( nFormat != 1 )
+-			goto failed;
+-		return TRUE;
+-	}
+-	else if( ! strncmp( ".snd", m_pBuffer, 4 ) )
+-	{
+-		ULONG nEncoding		= readBELong( m_pBuffer + 12 );
+-		ULONG nChannels		= readBELong( m_pBuffer + 20 );
+-
+-		// check for playable encodings
+-		if( nEncoding != 1 && nEncoding != 2 && nEncoding != 3 )
+-			goto failed;
+-		// check channels
+-		if( nChannels != 1 && nChannels != 2 )
+-			goto failed;
+-		return TRUE;
+-	}
+-  failed:
+-	releaseBuffer();
+-	return FALSE;
+-}
+-
+-void OSSSound::play()
+-{
+-	if( ! m_pBuffer )
+-		return;
+-
+-	append( this );
+-	m_pSalSound->m_bPlaying	= TRUE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void OSSSound::stop()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPlaying	= FALSE;
+-	m_pSalSound->m_bPaused	= FALSE;
+-}
+-
+-void OSSSound::pause()
+-{
+-	remove( this );
+-	m_pSalSound->m_bPaused = TRUE;
+-}
+-
+-void OSSSound::cont()
+-{
+-	play();
+-}
+-
+-IMPL_LINK( OSSSound, notifyStopHdl, void*, EMPTYARG )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->changeStateStop();
+-	}
+-	return 0;
+-}
+-
+-IMPL_LINK( OSSSound, notifyErrorHdl, void*, nError )
+-{
+-	if( s_aSounds.GetPos( this ) != LIST_ENTRY_NOTFOUND )
+-	{
+-		m_pSalSound->setError( (ULONG)nError );
+-	}
+-	return 0;
+-}
+-
+-#endif
+Index: vcl/unx/source/app/pasfsound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/pasfsound.cxx
+diff -N vcl/unx/source/app/pasfsound.cxx
+--- vcl/unx/source/app/pasfsound.cxx	31 Jul 2007 13:01:50 -0000	1.7
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,345 +0,0 @@
+-/*************************************************************************
+-*
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: pasfsound.cxx,v $
+- *
+- *  $Revision: 1.7 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/07/31 13:01:50 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+-************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#ifdef USE_PASF
+-
+-#define _SV_PASFSOUND_CXX
+-
+-// Replacement SalSound Implementation that makes use of PortAudio to abstract away
+-// hardware differences, and LibSndFile to convert and access sound formats
+-// This implementation should work with little or no modification for Linux
+-// SGI, Solaris, MacOSX, Linux (all arches), FreeBSD, and even WIN
+-
+-#include <saldata.hxx>
+-#include <vcl/salinst.hxx>
+-
+-
+-#include <stdio.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace osl;
+-using namespace rtl;
+-
+-extern "C"
+-{
+-    
+-    /* callback that takes data from sound file and converts it and loads it */
+-#if PA_VER == 18
+-    static int pasf_in_out_callback (void *inputBuffer, void * outputBuffer,
+-    unsigned long framesPerBuffer, PaTimestamp outTime, void * userData )
+-#else
+-    static int pasf_in_out_callback (const void *inputBuffer, void *outputBuffer,
+-    unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *outTime, PaStreamCallbackFlags cbFlags, void *userData )
+-#endif
+-    {	
+-        PASFAudioData*	paudio_data;
+-        unsigned int	read_count, bufoff, bytecnt; 
+-        float*          buffer  = (float *) outputBuffer;
+-        
+-        /* prevent warnings for unused variables */
+-#if PA_VER > 18
+-        cbFlags = cbFlags;
+-#endif
+-        inputBuffer = inputBuffer;
+-        outTime = outTime;
+-        
+-        /* get all other info needed from audio_data structure passed in as userData */
+-        paudio_data = (PASFAudioData*) userData;
+-        
+-        read_count = sf_readf_float (paudio_data->sndfile, buffer, framesPerBuffer);
+-        if (read_count < framesPerBuffer) 
+-        {	
+-	        /* fill in the remainder of the buffer with zeros */
+-            /* convert read_count of frames to offset into float* buffer */
+-	        bufoff = read_count * paudio_data->sfinfo.channels;
+-            bytecnt = (framesPerBuffer - read_count) * paudio_data->sfinfo.channels * sizeof(float);
+-            memset (&(buffer [read_count]), 0, bytecnt) ;
+-        }
+-        
+-        /* now check if we reached end of file or preset stopping point */
+-        if ((read_count == 0) || ((paudio_data->stop_frame > 0) 
+-            && (paudio_data->frame_count > paudio_data->stop_frame))) 
+-        {
+-            if (paudio_data->loop_count > 0) paudio_data->loop_count--;
+-            
+-            /* if need to loop again, seek back to start frame and reset frame count */
+-            if ((paudio_data->loop_count > 0) || (paudio_data->loop_count == -1)) 
+-            {
+-                sf_seek(paudio_data->sndfile, paudio_data->start_frame, SEEK_SET);
+-                paudio_data->frame_count = paudio_data->start_frame;
+-            } else {
+-                paudio_data->done_playing = 1 ;
+-            }
+-        } 
+-        
+-        paudio_data->frame_count = paudio_data->frame_count + framesPerBuffer;
+-        return paNoError;
+-    } 
+-}
+-
+-
+-
+-PASFSound::PASFSound( ::X11SalSound* pSound) : 
+-VSound( pSound ), 
+-m_pStream( NULL ), 
+-m_pData( NULL )
+-{
+-    m_pData = new PASFAudioData();
+-    if ( ! (m_pData) ) return;
+-    
+-    // open the sound file and get info on desired channels and sample rate
+-    if (! (m_pData->sndfile = sf_open (m_pSalSound->m_aSoundFile.GetBuffer(), SFM_READ, &(m_pData->sfinfo)))) 
+-    {	
+-        // fprintf(stderr,"Error opening sound file %s\n", m_aSoundFile.GetBuffer()); fflush(stderr);
+-        m_pData->sndfile = NULL;
+-        return;
+-    }
+-    
+-    // check for valid number of channels to prevent problems later
+-    if (m_pData->sfinfo.channels < 1 || m_pData->sfinfo.channels > 2) 
+-    {	
+-        // fprintf(stderr, "Error incorrect number of channels %d.\n", m_pData->sfinfo.channels) ; fflush(stderr);
+-        sf_close(m_pData->sndfile);
+-        m_pData->sndfile = NULL;
+-        return;
+-    }
+-    
+-    
+-    // store information on desired settings and input buffer format away
+-    m_pData->format = paFloat32;
+-    m_pData->bufsize = PASF_BUFFER_LEN;
+-    
+-    // Using the default output device for this
+-#if PA_VER == 18
+-    m_pData->device = Pa_GetDefaultOutputDeviceID();
+-#else
+-    m_pData->device = Pa_GetDefaultOutputDevice();
+-#endif
+-    
+-    // the size of a frame in bytes is the number of channels of data * the size of the 
+-    // underlying data type type being used to store data for each for each channel
+-    // (we are using paFloat32 as input to PaOpenDefaultStream )
+-    
+-    unsigned int bytesPerFrame = m_pData->sfinfo.channels * sizeof(float);
+-    unsigned int framesPerBuffer = (unsigned int) (m_pData->bufsize / bytesPerFrame); 
+-    
+-    // Open an audio I/O stream for output only on the default output device
+-    PaError err = Pa_OpenDefaultStream(
+-    &m_pStream,
+-    0,                             // no input channels == no input device
+-    m_pData->sfinfo.channels,      // get desired output channels from file
+-    m_pData->format,               // 32 bit floating point format for each item
+-    m_pData->sfinfo.samplerate,    // get desired sampling rate from file
+-    framesPerBuffer,               // frames per buffer
+-#if PA_VER == 18
+-    0,                             // number of buffers, if zero then use optimal number as determined by Pa
+-#endif
+-    pasf_in_out_callback,          // call back to load data into the stream
+-    m_pData );                     // pass along m_pData pointer so that callback can get access to info
+-    
+-    if( err != paNoError ) {
+-        m_pStream = NULL;
+-        sf_close(m_pData->sndfile);
+-        m_pData->sndfile = NULL;
+-    } 
+-}
+-
+-
+-PASFSound::~PASFSound()
+-{
+-    // if stream exists, stop and close it
+-    if (m_pStream) 
+-    { 
+-	    Pa_StopStream( m_pStream );
+-	    Pa_CloseStream( m_pStream );
+-        m_pStream = NULL;
+-    }
+-    // clean up the PASFAudioData structure, close any open sound files
+-    if ( m_pData ) 
+-    {
+-	    if (m_pData->sndfile) 
+-        {
+-            sf_close(m_pData->sndfile);
+-            m_pData->sndfile = NULL;
+-	    }
+-        delete m_pData;
+-	    m_pData = NULL;
+-	}
+-    m_pSalSound = NULL;
+-}
+-
+-
+-void PASFSound::play()
+-{
+-    int nErr = 1;
+-    BOOL bLoop = m_pSalSound->m_bLoop;
+-    ULONG nStartTime = m_pSalSound->m_nStartTime;
+-    ULONG nPlayTime =  m_pSalSound->m_nPlayTime;
+-    
+-    // if ready to go
+-    if ((m_pData) && (m_pStream)) 
+-    { 
+-        // set the player controls
+-        
+-        // if looping set the loop count (use -1 for infinity)
+-        m_pData->loop_count = 1;
+-        if ( bLoop ) m_pData->loop_count = -1;
+-        
+-        // convert StartTime to frame count and seek to starting frame in sound file
+-        m_pData->start_frame = 0;
+-        if (nStartTime > 0) 
+-        {
+-            m_pData->start_frame = (unsigned long)( (double)nStartTime * m_pData->sfinfo.samplerate / 1000.0 );
+-            sf_seek(m_pData->sndfile, m_pData->start_frame, SEEK_SET);
+-        }
+-        
+-        // set the frames number to play until (use 0 to indicate play until the end)
+-        m_pData->stop_frame = 0;
+-        if (nPlayTime != SOUND_PLAYALL) 
+-        {
+-            ULONG nEndTime = nStartTime + nPlayTime;
+-            m_pData->stop_frame = (unsigned long)( (double)nEndTime * m_pData->sfinfo.samplerate / 1000.0 );
+-        }
+-        
+-        // set set the total frame_count to the starting frame number
+-        m_pData->frame_count = m_pData->start_frame;
+-        m_pData->done_playing = 0;
+-        
+-        // FIXME?: In Play but already playing will be ignored (no error) is that right?
+-        nErr = 0;
+-        if (!(m_pSalSound->m_bPlaying)) 
+-        {            
+-            PaError err = Pa_StartStream( m_pStream );
+-            if( err != paNoError)  nErr = 1;
+-        }  
+-    }
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStatePlay();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-}
+-
+-
+-
+-void PASFSound::stop()
+-{
+-    int nErr = 1;
+-	if ( m_pStream ) 
+-    { 
+-        // stop and close the stream
+-        PaError err = Pa_StopStream( m_pStream );
+-        PaError err1 = Pa_CloseStream( m_pStream );
+-        if( (err == paNoError) && (err1 == paNoError) ) nErr = 0;
+-        m_pStream = NULL;
+-    }    
+-    
+-    // close the sound file sound since another file can be loaded after stop 
+-    if ((m_pData) && (!(m_pStream))) {
+-	    if (m_pData->sndfile) 
+-        {
+-            sf_close(m_pData->sndfile);
+-            m_pData->sndfile = NULL;
+-        }
+-    }
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStateStop();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-    
+-}
+-
+-
+-
+-void PASFSound::pause()
+-{
+-    int nErr = 1;
+-	if (m_pStream ) {
+-        PaError err = Pa_StopStream( m_pStream );
+-        if( err == paNoError ) nErr = 0;
+-	}
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStatePause();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-}
+-
+-
+-
+-void PASFSound::cont()
+-{
+-    int nErr = 1;
+-    if (m_pSalSound->m_bPaused) { 
+-        if (m_pStream) {
+-            PaError err = Pa_StartStream( m_pStream );
+-            if( err == paNoError ) nErr = 0;
+-        }
+-    }    
+-    
+-    if (!nErr) 
+-    {
+-        m_pSalSound->changeStateCont();
+-        return;
+-	}
+-    m_pSalSound->setError(SOUNDERR_GENERAL_ERROR);
+-}
+-
+-
+-
+-BOOL PASFSound::isValid()
+-{
+-    if ((m_pData) && (m_pStream)) return TRUE;
+-    return FALSE;
+-}
+-
+-
+-
+-#endif
+-
+Index: vcl/unx/source/app/rptpsound.cxx
+===================================================================
+RCS file: vcl/unx/source/app/rptpsound.cxx
+diff -N vcl/unx/source/app/rptpsound.cxx
+--- vcl/unx/source/app/rptpsound.cxx	17 Sep 2006 12:34:30 -0000	1.17
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,392 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: rptpsound.cxx,v $
+- *
+- *  $Revision: 1.17 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:34:30 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#if defined(SOLARIS) || defined(MACOSX)
+-#include <poll.h>
+-#else
+-#include <sys/poll.h>
+-#endif
+-
+-#include <salsound.h>
+-#include <salimpsound.hxx>
+-
+-#include <salunx.h>
+-#include <saldata.hxx>
+-#include <saldisp.hxx>
+-#include <psprint/strhelper.hxx>
+-#include <string.h>
+-#include <unistd.h>
+-
+-using namespace vcl_sal;
+-using namespace vos;
+-using namespace psp;
+-
+-BOOL						RPTPSound::s_bConnected			= FALSE;
+-BOOL						RPTPSound::s_bFailedOnce		= FALSE;
+-OConnectorSocket			RPTPSound::s_aConnector;
+-RPTPSound::RPTPSoundList	RPTPSound::s_aSounds;
+-
+-int RPTPSound::getFileDescriptor()
+-{
+-	return *(int*)(oslSocket)s_aConnector;
+-}
+-
+-BOOL RPTPSound::connect()
+-{
+-	if( s_bConnected && s_aConnector.isValid() )
+-		return TRUE;
+-
+-	if( s_bFailedOnce )
+-		return FALSE;
+-
+-	s_bConnected = FALSE;
+-
+-	static const char* env = getenv( "AUDIOSERVER" );
+-	static const char* portenv = env ? strchr( env, ':' ) : NULL;
+-	static char sBuf[1024];
+-
+-	if( ! env && GetX11SalData() && GetX11SalData()->GetDisplay() &&
+-		DisplayString( GetX11SalData()->GetDisplay()->GetDisplay() ) )
+-	{
+-		env = strdup( DisplayString( GetX11SalData()->GetDisplay()->GetDisplay() ) );
+-		portenv = strchr( env, ':' );
+-	}
+-
+-	int nPort = portenv ? atoi( portenv+1 ) : 5556;
+-	nPort = nPort ? nPort : 5556;
+-
+-	strncpy( sBuf, "uninitialized", 14 );
+-	if( env && portenv )
+-	{
+-		if( portenv != env )
+-		{
+-			strncpy( sBuf, env, portenv - env );
+-			sBuf[ portenv - env ] = 0;
+-		}
+-		else
+-			strncpy( sBuf, "localhost", 10 );
+-	}
+-	else
+-		strncpy( sBuf, "localhost", 10 );
+-
+-	SalDbgAssert( "resolving \"%s\", env = \"%s\", portenv = \"%s\"\n",
+-				  sBuf,
+-				  env ? env : "<unset>",
+-				  portenv ? portenv : "<unset>"
+-				  );
+-
+-	::rtl::OUString aHost( sBuf, strlen(sBuf), gsl_getSystemTextEncoding() );
+-
+-	OInetSocketAddr aAddr( OSocketAddr::resolveHostname( aHost ) );
+-	aAddr.setPort( nPort );
+-	s_aConnector = OConnectorSocket();
+-	TimeValue aTimeout = { 0, 100000 };
+-	if( s_aConnector.connect( aAddr, &aTimeout ) == ISocketTypes::TResult_Ok )
+-	{
+-		s_bConnected = TRUE;
+-		readLine();
+-		sendCommand( "set notify=done,pause,continue" );
+-		GetX11SalData()->GetLib()->Insert( getFileDescriptor(),
+-				               			   NULL,
+-                                           (YieldFunc)pending,
+-                                           (YieldFunc)queued,
+-                                           (YieldFunc)handleEvents );
+-	}
+-	else
+-	{
+-		SalDbgAssert( "RPTPSound::connect to \"%s\" on port %d failed\n", sBuf, nPort );
+-		s_bFailedOnce = TRUE;
+-	}
+-	return s_bConnected;
+-}
+-
+-void RPTPSound::disconnect()
+-{
+-	if( s_bConnected )
+-	{
+-		s_bConnected = FALSE;
+-		GetX11SalData()->GetLib()->Remove( getFileDescriptor() );
+-		s_aConnector.write( "quit\r\n", 6 );
+-		s_aConnector.close();
+-		SalDbgAssert( "RPTPSound::disconnect\n" );
+-	}
+-}
+-
+-int RPTPSound::pending( int nFD, void* )
+-{
+-	struct pollfd aPollfd;
+-	aPollfd.fd			= nFD;
+-	aPollfd.events		= POLLIN;
+-
+-	poll( &aPollfd, 1, 0 );
+-
+-	return aPollfd.revents & POLLIN ? 1 : 0;
+-}
+-
+-int RPTPSound::queued( int nFD, void* pObj )
+-{
+-	return pending( nFD, pObj );
+-}
+-
+-int RPTPSound::handleEvents( int, void* )
+-{
+-	SalDbgAssert( "RPTPSound::handleEvents\n" );
+-	ByteString aLine = readLine();
+-	int nPos;
+-	if( aLine.GetChar( 0 ) == '@' &&
+-		( nPos = aLine.Search( "event=" ) ) != STRING_NOTFOUND )
+-	{
+-		ULONG nID = ~0;
+-		RPTPSound* pSound = NULL;
+-
+-		ByteString aEvent = aLine.Copy( nPos+6 );
+-		aEvent = GetCommandLineToken( 0, aEvent );
+-		aEvent.ToLowerAscii();
+-
+-		if( ( nPos = aLine.Search( "id=#" ) ) != STRING_NOTFOUND )
+-		{
+-			nID = aLine.Copy( nPos+4 ).ToInt32();
+-			pSound = getSoundById( nID );
+-		}
+-
+-		if( pSound && pSound->m_pSalSound )
+-		{
+-			if( aEvent == "done" )
+-			{
+-				if( pSound->m_pSalSound->m_bLoop )
+-					pSound->play();
+-				else
+-					pSound->m_pSalSound->changeStateStop();
+-			}
+-			else if( aEvent == "pause" )
+-				pSound->m_pSalSound->changeStatePause();
+-			else if( aEvent == "continue" )
+-				pSound->m_pSalSound->changeStateCont();
+-		}
+-	}
+-	return 0;
+-}
+-
+-ByteString RPTPSound::readLine()
+-{
+-	static char pAnswerBuffer[ 1024 ];
+-
+-	if( ! s_bConnected && ! connect() )
+-		return ByteString();
+-
+-	memset( pAnswerBuffer, 0, sizeof( pAnswerBuffer ) );
+-	if( s_aConnector.read( pAnswerBuffer, 1 ) == 1 )
+-	{
+-		unsigned int nTimes = 0;
+-		unsigned int nPos = 1;
+-		while( nTimes < 1000 && nPos < sizeof( pAnswerBuffer )-1 )
+-		{
+-			while( s_aConnector.recv( pAnswerBuffer + nPos, 1 ) == 1 &&
+-				   nPos < sizeof( pAnswerBuffer )-1 )
+-			{
+-				nPos++;
+-				if( pAnswerBuffer[ nPos-2 ] == '\r' &&
+-					pAnswerBuffer[ nPos-1 ] == '\n' )
+-				{
+-					pAnswerBuffer[ nPos-2 ] = 0;
+-					goto doreturn;
+-				}
+-			}
+-            TimeValue aVal;
+-            aVal.Seconds = 0;
+-            aVal.Nanosec = 1000000;
+-            osl_waitThread( &aVal );
+-		}
+-	}
+-  doreturn:
+-	SalDbgAssert( "read line \"%s\"\n", pAnswerBuffer );
+-	return ByteString( pAnswerBuffer );
+-}
+-
+-ByteString RPTPSound::sendCommand( const ByteString& rCommand )
+-{
+-	if( ! s_bConnected && ! connect() )
+-		return ByteString();
+-
+-	SalDbgAssert( "RPTPSound::sendCommand( \"%s\" )\n", rCommand.GetBuffer() );
+-	
+-	ByteString aCommand( rCommand );
+-	aCommand += "\r\n";
+-	s_aConnector.write( aCommand.GetBuffer(), aCommand.Len() );
+-	return readLine();
+-}
+-
+-RPTPSound* RPTPSound::getSoundById( ULONG nID )
+-{
+-	for( unsigned int i = 0; i < s_aSounds.Count(); i++ )
+-	{
+-		RPTPSound* pSound = s_aSounds.GetObject( i );
+-		if( pSound->m_nID == nID )
+-			return pSound;
+-	}
+-	return NULL;
+-}
+-
+-ULONG RPTPSound::getMaxId()
+-{
+-	ULONG nID = 0;
+-	for( unsigned int i = 0; i < s_aSounds.Count(); i++ )
+-	{
+-		RPTPSound* pSound = s_aSounds.GetObject( i );
+-		if( pSound->m_nID > nID )
+-			nID = pSound->m_nID;
+-	}
+-	return nID;
+-}
+-
+-RPTPSound::RPTPSound( X11SalSound* pSalSound ) :
+-		VSound( pSalSound ),
+-		m_nID( 0 )
+-{
+-	s_aSounds.Insert( this );
+-}
+-
+-RPTPSound::~RPTPSound()
+-{
+-	s_aSounds.Remove( this );
+-	m_pSalSound = NULL;
+-	stop();
+-	if( s_aSounds.Count() == 0 )
+-		disconnect();
+-}
+-
+-void RPTPSound::play()
+-{
+-	if( ! m_pSalSound )
+-		return;
+-
+-	ByteString aCommand( "find sound=" );
+-
+-	aCommand += m_pSalSound->m_aSoundFile;
+-	ByteString aAnswer = sendCommand( aCommand );
+-	if( ! aAnswer.Len() || ! s_bConnected )
+-	{
+-		m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-		return;
+-	}
+-	if( aAnswer.GetChar( 0 ) != '+' )
+-	{
+-		// the sound is not on the server
+-		// try to put it (does not really work with rplayd 3.3.0)
+-		aCommand = "put";
+-		
+-		initBuffer();
+-
+-		if( ! m_pBuffer )
+-		{
+-			m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-			return;
+-		}
+-
+-		aCommand += " sound=";
+-		aCommand += m_pSalSound->m_aSoundFile;
+-		aCommand += " size=";
+-		aCommand += ByteString::CreateFromInt64((ULONG)m_aStat.st_size);
+-		
+-		aAnswer = sendCommand( aCommand );
+-		
+-		if( aAnswer.GetChar( 0 ) == '+' )
+-			s_aConnector.write( m_pBuffer, m_aStat.st_size );
+-		// if this fails proceed anyway, because at least rplayd 3.3.0
+-		// does not seem to grok the "put" command
+-
+-		releaseBuffer();
+-	}
+-
+-	aCommand = "play ";
+-	aCommand += m_pSalSound->m_aSoundFile;
+-	aAnswer = sendCommand( aCommand );
+-	if( aAnswer.GetChar( 0 ) == '+' )
+-	{
+-		int nPos = aAnswer.Search( "id=#" );
+-		if( nPos != STRING_NOTFOUND )
+-			m_nID = aAnswer.Copy( nPos+4 ).ToInt32();
+-	}
+-	else
+-		m_pSalSound->setError( SOUNDERR_DEVICE_NOT_READY );
+-
+-	SalDbgAssert( "RPTPSound::play() yields id %d\n", m_nID );
+-}
+-
+-void RPTPSound::stop()
+-{
+-	ByteString aAnswer;
+-	if( m_nID )
+-	{
+-		ByteString aCommand( "stop id=#" );
+-		aCommand += ByteString::CreateFromInt64(m_nID);
+-		aAnswer = sendCommand( aCommand );
+-	}
+-	if( aAnswer.GetChar( 0 ) != '+' && m_pSalSound)
+-		m_pSalSound->setError( SOUNDERR_INVALID_FILE );
+-}
+-
+-void RPTPSound::pause()
+-{
+-	if( m_nID )
+-	{
+-		ByteString aCommand( "pause id=#" );
+-		aCommand += ByteString::CreateFromInt64(m_nID);
+-		sendCommand( aCommand );
+-	}
+-}
+-
+-void RPTPSound::cont()
+-{
+-	if( m_nID )
+-	{
+-		ByteString aCommand( "continue id=#" );
+-		aCommand += ByteString::CreateFromInt64(m_nID);
+-		sendCommand( aCommand );
+-	}
+-}
+-
+-BOOL RPTPSound::isValid()
+-{
+-	if( ! s_bConnected )
+-		connect();
+-	if( ! s_bConnected )
+-		return FALSE;
+-
+-	return stat( m_pSalSound->m_aSoundFile.GetBuffer(), &m_aStat ) ? FALSE : TRUE;
+-}
+-
+Index: vcl/unx/source/app/salimpsound.hxx
+===================================================================
+RCS file: vcl/unx/source/app/salimpsound.hxx
+diff -N vcl/unx/source/app/salimpsound.hxx
+--- vcl/unx/source/app/salimpsound.hxx	31 Jul 2007 13:02:03 -0000	1.10
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,305 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salimpsound.hxx,v $
+- *
+- *  $Revision: 1.10 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/07/31 13:02:03 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-#ifndef _VCL_SALIMPSOUND_HXX
+-#define _VCL_SALIMPSOUND_HXX
+-
+-#include <vsound.hxx>
+-
+-#include <osl/mutex.hxx>
+-#include <vos/socket.hxx>
+-
+-#include <tools/list.hxx>
+-#include <tools/link.hxx>
+-#include <tools/gen.hxx>
+-#include <tools/string.hxx>
+-
+-#include <vcl/sv.h>
+-#include <vcl/salstype.hxx>
+-
+-#include <unistd.h>
+-#include <sys/stat.h>
+-
+-#ifdef USE_PASF
+-#ifdef SYSTEM_PORTAUDIO
+-#include <portaudio.h>
+-#else
+-#include <portaudio/portaudio.h>
+-#endif
+-#ifdef SYSTEM_SNDFILE
+-#include <sndfile.h>
+-#else
+-#include <sndfile/sndfile.h>
+-#endif
+-#endif
+-
+-namespace vcl_sal {
+-
+-// OSS can only be used on local displays
+-
+-#ifdef USE_OSS
+-	class OSSSound : public VSound
+-	{
+-		// thread implementation
+-		struct OSSData
+-		{
+-			OSSSound*	m_pSound;
+-			long		m_nDataLen;
+-			long		m_nStartPos;
+-			long		m_nEndPos;
+-			long		m_nCurPos;
+-			int			m_nType;
+-		};
+-		DECLARE_LIST( OSSDataList, OSSData* )
+-		DECLARE_LIST( OSSSoundList, OSSSound* )
+-
+-		static int						s_nDevice;
+-		static OSSDataList				s_aDataList;
+-		static osl::Mutex				s_aProtector;
+-		static OSSSoundList			s_aSounds;
+-
+-		// static methods
+-		static BOOL 		open();
+-		static void 		close();
+-		static void 		append( OSSSound* );
+-		static void 		remove( OSSSound* );
+-		static BOOL		startSound( OSSData* pData );
+-		static BOOL		startAU( OSSData* pData );
+-		static BOOL		startRIFF( OSSData* pData );
+-		static int			findChunk( OSSData* pData, const char* pChunk );
+-		static short int	readLEShort( const char* );
+-		static int			readLEInt( const char* );
+-		static ULONG		readBELong( const char* );
+-
+-		DECL_LINK( notifyStopHdl, void* );
+-		DECL_LINK( notifyErrorHdl, void* );
+-	protected:
+-		virtual BOOL isValid();
+-	public:
+-		OSSSound( ::X11SalSound* pSalSound );
+-		virtual ~OSSSound();
+-
+-		virtual void play();
+-		virtual void stop();
+-		virtual void pause();
+-		virtual void cont();
+-
+-		static void run(); // thread worker
+-	};
+-#endif
+-
+-// DEVAUDIO can only be used on local displays
+-
+-#ifdef USE_DEVAUDIO
+-	class DevAudioSound;
+-	struct DevAudioData
+-	{
+-		DevAudioSound*	m_pSound;
+-		AudioConverter*	m_pConverter;
+-		long			m_nDataLen;
+-		long			m_nStartPos;
+-		long			m_nEndPos;
+-		long			m_nCurPos;
+-		int				m_nType;
+-
+-		DevAudioData( DevAudioSound* pSound ) :
+-				m_pSound( pSound ), m_pConverter( NULL ), m_nDataLen( 0 ),
+-				m_nStartPos( 0 ), m_nEndPos( 0 ), m_nCurPos( 0 ), m_nType( 0 )
+-			{}
+-		~DevAudioData()
+-			{ if( m_pConverter ) delete m_pConverter; }
+-	};
+-	DECLARE_LIST( DevAudioDataList, DevAudioData* )
+-	DECLARE_LIST( DevAudioSoundList, DevAudioSound* )
+-
+-	class DevAudioSound : public VSound
+-	{
+-		// thread implementation
+-
+-		static int						s_nDevice;
+-		static DevAudioDataList		s_aDataList;
+-		static osl::Mutex				s_aProtector;
+-		static DevAudioSoundList		s_aSounds;
+-
+-		// static methods
+-		static BOOL 		open();
+-		static void 		close();
+-		static void 		append( DevAudioSound* );
+-		static void 		remove( DevAudioSound* );
+-		static BOOL			startSound( DevAudioData* pData );
+-		static BOOL			startAU( DevAudioData* pData );
+-		static BOOL			startRIFF( DevAudioData* pData );
+-		static int			findChunk( DevAudioData* pData, const char* pChunk );
+-		static short int	readLEShort( const char* );
+-		static int			readLEInt( const char* );
+-		static ULONG		readBELong( const char* );
+-
+-		DECL_LINK( notifyStopHdl, void* );
+-		DECL_LINK( notifyErrorHdl, void* );
+-	protected:
+-		virtual BOOL isValid();
+-	public:
+-		DevAudioSound( ::X11SalSound* pSalSound );
+-		virtual ~DevAudioSound();
+-
+-		virtual void play();
+-		virtual void stop();
+-		virtual void pause();
+-		virtual void cont();
+-
+-		static void run();
+-	};
+-#endif
+-
+-
+-// Portaudio / libsndfile can only be used on local displays
+-
+-#ifdef USE_PASF
+-#define PASF_BUFFER_LEN  (8192)
+-
+-typedef struct
+-{       
+-#if PA_VER == 18
+-    PaDeviceID       device;
+-#else
+-    PaDeviceIndex    device;
+-#endif
+-    PaSampleFormat   format;
+-    unsigned int     bufsize;
+-    SNDFILE          *sndfile;
+-    SF_INFO          sfinfo;
+-    int              loop_count;
+-    unsigned long    start_frame;
+-    unsigned long    stop_frame;
+-    unsigned long    frame_count;
+-    int              done_playing;
+-} PASFAudioData ;
+-
+-
+-class PASFSound : public VSound
+-{
+-	private:	
+-    PaStream*                    m_pStream;
+-    PASFAudioData*               m_pData;
+-    
+-	protected:
+-    virtual BOOL isValid();
+-    
+-	public:
+-    PASFSound( ::X11SalSound* pSalSound );
+-    virtual ~PASFSound();
+-    
+-    virtual void play();
+-    virtual void stop();
+-    virtual void pause();
+-    virtual void cont();
+-    
+-};
+-#endif
+-
+-
+-
+-class RPTPSound : public VSound
+-{
+-        DECLARE_LIST( RPTPSoundList, RPTPSound* )
+-
+-	static BOOL								s_bConnected;
+-	static NAMESPACE_VOS(OConnectorSocket)		s_aConnector;
+-	static RPTPSoundList						s_aSounds;
+-	static BOOL								s_bFailedOnce;
+-
+-	static BOOL			connect();
+-	static void			disconnect();
+-	static ByteString	readLine();
+-	static ByteString	sendCommand( const ByteString& rCommand );
+-
+-	static int getFileDescriptor();
+-	static RPTPSound* getSoundById( ULONG );
+-	static ULONG      getMaxId();
+-
+-	// SalYieldEntry
+-	static int pending( int, void* );
+-	static int queued( int, void* );
+-	static int handleEvents( int, void* );
+-
+-	ULONG			m_nID;
+-  protected:
+-	virtual BOOL isValid();
+-  public:
+-  RPTPSound( ::X11SalSound* pSalSound );
+-
+-	virtual	~RPTPSound();
+-
+-	virtual void play();
+-	virtual void stop();
+-	virtual void pause();
+-	virtual void cont();
+-};
+-
+-
+-#ifdef USE_NAS
+-	class NASSound : public VSound
+-	{
+-		DECLARE_LIST( NASSoundList, NASSound* )
+-		
+-		static NASSoundList				s_aSounds;
+-		static void*					s_pServer;
+-		static BOOL						s_bFailedOnce;
+-
+-		static BOOL	connect();
+-		static void disconnect();
+-
+-		static void callback( void*, void*, void*, void* );
+-		// SalYieldEntry
+-		static int pending( int, void* );
+-		static int queued( int, void* );
+-		static int handleEvents( int, void* );
+-
+-		ULONG	m_nFlowID;
+-	protected:
+-		virtual BOOL isValid();
+-	public:
+-		NASSound( ::X11SalSound* pSalSound );
+-
+-		virtual	~NASSound();
+-
+-		virtual void play();
+-		virtual void stop();
+-		virtual void pause();
+-		virtual void cont();
+-	};
+-#endif
+-}
+-
+-#endif
+Index: vcl/unx/source/app/salinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/app/salinst.cxx,v
+retrieving revision 1.32
+retrieving revision 1.32.60.1
+diff -u -p -u -p -r1.32 -r1.32.60.1
+--- vcl/unx/source/app/salinst.cxx	27 Jun 2007 20:47:09 -0000	1.32
++++ vcl/unx/source/app/salinst.cxx	31 Aug 2007 09:44:58 -0000	1.32.60.1
+@@ -75,9 +75,6 @@
+ #ifndef _SV_SALOGL_H
+ #include <salogl.h>
+ #endif
+-#ifndef _SV_SALSOUND_H
+-#include <salsound.h>
+-#endif
+ 
+ // -------------------------------------------------------------------------
+ //
+@@ -145,9 +142,6 @@ extern "C"
+ 
+ X11SalInstance::~X11SalInstance()
+ {
+-    // deinitialize global sound resources
+-    X11SalSound::Release();
+-
+     // release (possibly open) OpenGL context
+     X11SalOpenGL::Release();
+ 
+@@ -323,9 +317,3 @@ SalOpenGL* X11SalInstance::CreateSalOpen
+ {
+     return new X11SalOpenGL( pGraphics );
+ }
+-
+-SalSound* X11SalInstance::CreateSalSound()
+-{
+-    return new X11SalSound();
+-}
+-
+Index: vcl/unx/source/app/salsound2.cxx
+===================================================================
+RCS file: vcl/unx/source/app/salsound2.cxx
+diff -N vcl/unx/source/app/salsound2.cxx
+--- vcl/unx/source/app/salsound2.cxx	27 Jun 2007 20:47:22 -0000	1.11
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,334 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound2.cxx,v $
+- *
+- *  $Revision: 1.11 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:47:22 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#include <sys/stat.h>
+-#include <sys/mman.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-
+-#include <salunx.h>
+-#include <saldata.hxx>
+-#include <saldisp.hxx>
+-
+-#include <salsound.h>
+-#include <vcl/salstype.hxx>
+-#include <salimpsound.hxx>
+-
+-using namespace vcl_sal;
+-
+-ULONG X11SalSound::s_nSoundState = SOUND_STATE_UNLOADED;
+-
+-X11SalSound::X11SalSound() :
+-		m_pVSound( NULL ),
+-		m_bLoop( false ),
+-		m_bPlaying( false ),
+-		m_bPaused( false ),
+-		m_nStartTime( 0 ),
+-		m_nPlayTime( SOUND_PLAYALL )
+-{
+-	SalDbgAssert( "X11SalSound::X11SalSound()\n" );
+-    #ifdef USE_PASF
+-    // initialize the portaudio library (typically just once)
+-    if (s_nSoundState == SOUND_STATE_UNLOADED) 
+-    {
+-        PaError err = Pa_Initialize();  
+-        if( err == paNoError )
+-            s_nSoundState = SOUND_STATE_VALID;
+-    }
+-    if (s_nSoundState != SOUND_STATE_VALID )
+-        s_nSoundState = SOUND_STATE_INVALID;
+-    #else
+-    s_nSoundState = SOUND_STATE_VALID;
+-    #endif
+-}
+-
+-X11SalSound::~X11SalSound()
+-{
+-	SalDbgAssert( "X11SalSound::~X11SalSound()\n" );
+-	if( m_pVSound )
+-		delete m_pVSound;
+-}
+-
+-void X11SalSound::Release()
+-{
+-#ifdef USE_PASF
+-        // terminate the portaudio library
+-        if ( s_nSoundState == SOUND_STATE_VALID ) Pa_Terminate();
+-#endif
+-        s_nSoundState = SOUND_STATE_UNLOADED;
+-}
+-
+-bool X11SalSound::IsValid()
+-{
+-  return (X11SalSound::s_nSoundState == SOUND_STATE_VALID);
+-}
+-
+-
+-bool X11SalSound::Init( const String& rSoundName, ULONG& rSoundLen )
+-{
+-    
+-    // FIXME: NULL file names are passed in
+-    // This can happen before play of previous sound has completed and this disrupts things
+-    // simpy ignore this for now
+-    if (! (rSoundName.Len()))
+-        return false;
+-    
+-	if( m_pVSound )
+-		delete m_pVSound;
+-
+-    #ifdef MACOSX
+-	m_aSoundFile = ByteString( rSoundName, RTL_TEXTENCODING_UTF8 );
+-    #else
+-	m_aSoundFile = ByteString( rSoundName, osl_getThreadTextEncoding() );
+-    #endif
+-	SalDbgAssert( "X11SalSound::Init( \"%s\", %d )\n", m_aSoundFile.GetBuffer(), rSoundLen );
+-    
+-	m_pVSound = ( !m_aSoundFile.Len() || access( m_aSoundFile.GetBuffer(), R_OK ) ) ? NULL : VSound::createVSound( this );
+-    
+-	return m_pVSound ? true : false;
+-}
+-
+-void X11SalSound::Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop )
+-{
+-	SalDbgAssert( "SalSound::Play( %d, %d, %s )\n", nStartTime, nPlayTime, bLoop ? "TRUE" : "FALSE" );
+-	if( m_bPlaying && m_pVSound )
+-		m_pVSound->stop();
+-    
+-	m_bLoop			= bLoop;
+-	m_nStartTime	= nStartTime;
+-	m_nPlayTime		= nPlayTime;
+-    
+-	if( m_pVSound )
+-		m_pVSound->play();
+-}
+-
+-void X11SalSound::Stop()
+-{
+-	SalDbgAssert( "X11SalSound::Stop()\n" );
+-	if( m_bPlaying && m_pVSound )
+-		m_pVSound->stop();
+-}
+-
+-void X11SalSound::Pause()
+-{
+-	if( m_bPlaying && m_pVSound )
+-		m_pVSound->pause();
+-}
+-
+-void X11SalSound::Continue()
+-{
+-	if( m_bPaused && m_pVSound )
+-		m_pVSound->cont();
+-}
+-
+-bool X11SalSound::IsLoopMode() const
+-{
+-    return m_bLoop;
+-}
+-
+-bool X11SalSound::IsPlaying() const
+-{
+-    return m_bPlaying;
+-}
+-
+-bool X11SalSound::IsPaused() const
+-{
+-    return m_bPaused;
+-}
+-
+-// --------------------------------------------------
+-
+-void VSound::initBuffer()
+-{
+-	if( stat( m_pSalSound->m_aSoundFile.GetBuffer(), &m_aStat ) )
+-	{
+-		SalDbgAssert( "could not stat \"%s\"\n", m_pSalSound->m_aSoundFile.GetBuffer() );
+-		return;
+-	}
+-	int nFile;
+-	if( ( nFile = ::open( m_pSalSound->m_aSoundFile.GetBuffer(), O_RDONLY ) ) == -1 )
+-	{
+-		SalDbgAssert( "could not open %s\n", m_pSalSound->m_aSoundFile.GetBuffer() );
+-		return;
+-	}
+-
+-	m_pBuffer = (char *)mmap( NULL, m_aStat.st_size, PROT_READ, MAP_SHARED, nFile, 0 );
+-	::close( nFile );
+-	if( m_pBuffer == MAP_FAILED )
+-	{
+-		SalDbgAssert( "could not mmap %s\n", m_pSalSound->m_aSoundFile.GetBuffer() );
+-		m_pBuffer = NULL;
+-		return;
+-	}
+-}
+-
+-void VSound::releaseBuffer()
+-{
+-	if( m_pBuffer )
+-	{
+-		munmap( m_pBuffer, m_aStat.st_size );
+-		m_pBuffer = NULL;
+-	}
+-}
+-
+-
+-VSound* VSound::createVSound( X11SalSound* pX11SalSound )
+-{
+-	struct stat aStat;
+-	if( stat( pX11SalSound->m_aSoundFile.GetBuffer(), & aStat ) )
+-		return NULL;
+-
+-	VSound* pRet = NULL;
+-
+-	if( GetX11SalData()->GetDisplay()->IsLocal() )
+-    {
+-        #ifdef USE_PASF
+-        {
+-            pRet = new PASFSound( pX11SalSound );
+-            if( pRet && ! pRet->isValid() )
+-            {
+-                delete pRet;
+-                pRet = NULL;
+-            }
+-            else
+-                SalDbgAssert( "got an PASFSound\n" );
+-        }
+-        #endif
+-
+-        #ifdef USE_OSS
+-        if( ! pRet )
+-        {
+-            pRet = new OSSSound( pX11SalSound );
+-            if( pRet && ! pRet->isValid() )
+-            {
+-                delete pRet;
+-                pRet = NULL;
+-            }
+-            else
+-                SalDbgAssert( "got an OSSSound\n" );
+-        }
+-        #endif
+-
+-        #ifdef USE_DEVAUDIO
+-        if( ! pRet )
+-        {
+-            pRet = new DevAudioSound( pX11SalSound );
+-            if( pRet && ! pRet->isValid() )
+-            {
+-                delete pRet;
+-                pRet = NULL;
+-            }
+-            else
+-                SalDbgAssert( "got an DevAudioSound\n" );
+-        }
+-        #endif
+-    }
+-    
+-#ifdef USE_NAS
+-	if( ! pRet )
+-	{
+-		pRet = new NASSound( pX11SalSound );
+-		if( pRet && ! pRet->isValid() )
+-		{
+-			delete pRet;
+-			pRet = NULL;
+-		}
+-		else
+-			SalDbgAssert( "got an AUSound\n" );
+-	}
+-#endif
+-
+-	if( ! pRet )
+-	{
+-		pRet = new RPTPSound( pX11SalSound );
+-		if( pRet && ! pRet->isValid() )
+-		{
+-			delete pRet;
+-			pRet = NULL;
+-		}
+-		else
+-			SalDbgAssert( "got an RPTPSound\n" );
+-	}
+-	return pRet;
+-}
+-
+-
+-void X11SalSound::changeStatePlay()
+-{
+-	SalDbgAssert( "SalSound(%p)::changeStatePlay()\n", this );
+-
+-	m_bPlaying	= TRUE;
+-	m_bPaused 	= FALSE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::changeStateStop()
+-{
+-	SalDbgAssert( "X11SalSound(%p)::changeStateStop()\n", this );
+-
+-	m_bPlaying	= FALSE;
+-	m_bPaused 	= FALSE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::changeStatePause()
+-{
+-	SalDbgAssert( "X11SalSound(%p)::changeStatePause()\n", this );
+-
+-	m_bPlaying	= TRUE;
+-	m_bPaused	= TRUE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::changeStateCont()
+-{
+-	SalDbgAssert( "X11SalSound(%p)::changeStateCont()\n", this );
+-
+-	m_bPlaying	= TRUE;
+-	m_bPaused	= FALSE;
+-
+-    CallNotifyProc( SOUND_NOTIFY_SUCCESS, SOUNDERR_SUCCESS );
+-}
+-
+-void X11SalSound::setError( ULONG nError )
+-{
+-    CallNotifyProc( SOUND_NOTIFY_ERROR, nError );
+-}
+-
+Index: vcl/unx/source/app/sunconvert.cxx
+===================================================================
+RCS file: vcl/unx/source/app/sunconvert.cxx
+diff -N vcl/unx/source/app/sunconvert.cxx
+--- vcl/unx/source/app/sunconvert.cxx	17 Sep 2006 12:36:39 -0000	1.6
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,1330 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: sunconvert.cxx,v $
+- *
+- *  $Revision: 1.6 $
+- *
+- *  last change: $Author: obo $ $Date: 2006/09/17 12:36:39 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-#ifndef _G72X_H
+-#define	_G72X_H
+-
+-#define	AUDIO_ENCODING_ULAW	(1)	/* ISDN u-law */
+-#define	AUDIO_ENCODING_ALAW	(2)	/* ISDN A-law */
+-#define	AUDIO_ENCODING_LINEAR	(3)	/* PCM 2's-complement (0-center) */
+-
+-/*
+- * The following is the definition of the state structure
+- * used by the G.721/G.723 encoder and decoder to preserve their internal
+- * state between successive calls.  The meanings of the majority
+- * of the state structure fields are explained in detail in the
+- * CCITT Recommendation G.721.  The field names are essentially indentical
+- * to variable names in the bit level description of the coding algorithm
+- * included in this Recommendation.
+- */
+-struct g72x_state {
+-	long yl;	/* Locked or steady state step size multiplier. */
+-	short yu;	/* Unlocked or non-steady state step size multiplier. */
+-	short dms;	/* Short term energy estimate. */
+-	short dml;	/* Long term energy estimate. */
+-	short ap;	/* Linear weighting coefficient of 'yl' and 'yu'. */
+-
+-	short a[2];	/* Coefficients of pole portion of prediction filter. */
+-	short b[6];	/* Coefficients of zero portion of prediction filter. */
+-	short pk[2];	/*
+-			 * Signs of previous two samples of a partially
+-			 * reconstructed signal.
+-			 */
+-	short dq[6];	/*
+-			 * Previous 6 samples of the quantized difference
+-			 * signal represented in an internal floating point
+-			 * format.
+-			 */
+-	short sr[2];	/*
+-			 * Previous 2 samples of the quantized difference
+-			 * signal represented in an internal floating point
+-			 * format.
+-			 */
+-	char td;	/* delayed tone detect, new in 1988 version */
+-};
+-
+-/* External function definitions. */
+-
+-extern void g72x_init_state(struct g72x_state *);
+-extern int g721_encoder(
+-		int sample,
+-		int in_coding,
+-		struct g72x_state *state_ptr);
+-extern int g721_decoder(
+-		int code,
+-		int out_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_24_encoder(
+-		int sample,
+-		int in_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_24_decoder(
+-		int code,
+-		int out_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_40_encoder(
+-		int sample,
+-		int in_coding,
+-		struct g72x_state *state_ptr);
+-extern int g723_40_decoder(
+-		int code,
+-		int out_coding,
+-		struct g72x_state *state_ptr);
+-
+-#endif /* !_G72X_H */
+-/*
+- * g711.c
+- *
+- * u-law, A-law and linear PCM conversions.
+- */
+-#define	SIGN_BIT	(0x80)		/* Sign bit for a A-law byte. */
+-#define	QUANT_MASK	(0xf)		/* Quantization field mask. */
+-#define	NSEGS		(8)		/* Number of A-law segments. */
+-#define	SEG_SHIFT	(4)		/* Left shift for segment number. */
+-#define	SEG_MASK	(0x70)		/* Segment field mask. */
+-
+-static short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF,
+-			    0xFFF, 0x1FFF, 0x3FFF, 0x7FFF};
+-
+-/* copy from CCITT G.711 specifications */
+-unsigned char _u2a[128] = {			/* u- to A-law conversions */
+-	1,	1,	2,	2,	3,	3,	4,	4,
+-	5,	5,	6,	6,	7,	7,	8,	8,
+-	9,	10,	11,	12,	13,	14,	15,	16,
+-	17,	18,	19,	20,	21,	22,	23,	24,
+-	25,	27,	29,	31,	33,	34,	35,	36,
+-	37,	38,	39,	40,	41,	42,	43,	44,
+-	46,	48,	49,	50,	51,	52,	53,	54,
+-	55,	56,	57,	58,	59,	60,	61,	62,
+-	64,	65,	66,	67,	68,	69,	70,	71,
+-	72,	73,	74,	75,	76,	77,	78,	79,
+-	81,	82,	83,	84,	85,	86,	87,	88,
+-	89,	90,	91,	92,	93,	94,	95,	96,
+-	97,	98,	99,	100,	101,	102,	103,	104,
+-	105,	106,	107,	108,	109,	110,	111,	112,
+-	113,	114,	115,	116,	117,	118,	119,	120,
+-	121,	122,	123,	124,	125,	126,	127,	128};
+-
+-unsigned char _a2u[128] = {			/* A- to u-law conversions */
+-	1,	3,	5,	7,	9,	11,	13,	15,
+-	16,	17,	18,	19,	20,	21,	22,	23,
+-	24,	25,	26,	27,	28,	29,	30,	31,
+-	32,	32,	33,	33,	34,	34,	35,	35,
+-	36,	37,	38,	39,	40,	41,	42,	43,
+-	44,	45,	46,	47,	48,	48,	49,	49,
+-	50,	51,	52,	53,	54,	55,	56,	57,
+-	58,	59,	60,	61,	62,	63,	64,	64,
+-	65,	66,	67,	68,	69,	70,	71,	72,
+-	73,	74,	75,	76,	77,	78,	79,	79,
+-	80,	81,	82,	83,	84,	85,	86,	87,
+-	88,	89,	90,	91,	92,	93,	94,	95,
+-	96,	97,	98,	99,	100,	101,	102,	103,
+-	104,	105,	106,	107,	108,	109,	110,	111,
+-	112,	113,	114,	115,	116,	117,	118,	119,
+-	120,	121,	122,	123,	124,	125,	126,	127};
+-
+-static int
+-search(
+-	int		val,
+-	short		*table,
+-	int		size)
+-{
+-	int		i;
+-
+-	for (i = 0; i < size; i++) {
+-		if (val <= *table++)
+-			return (i);
+-	}
+-	return (size);
+-}
+-
+-/*
+- * linear2alaw() - Convert a 16-bit linear PCM value to 8-bit A-law
+- *
+- * linear2alaw() accepts an 16-bit integer and encodes it as A-law data.
+- *
+- *		Linear Input Code	Compressed Code
+- *	------------------------	---------------
+- *	0000000wxyza			000wxyz
+- *	0000001wxyza			001wxyz
+- *	000001wxyzab			010wxyz
+- *	00001wxyzabc			011wxyz
+- *	0001wxyzabcd			100wxyz
+- *	001wxyzabcde			101wxyz
+- *	01wxyzabcdef			110wxyz
+- *	1wxyzabcdefg			111wxyz
+- *
+- * For further information see John C. Bellamy's Digital Telephony, 1982,
+- * John Wiley & Sons, pps 98-111 and 472-476.
+- */
+-unsigned char
+-linear2alaw(
+-	int		pcm_val)	/* 2's complement (16-bit range) */
+-{
+-	int		mask;
+-	int		seg;
+-	unsigned char	aval;
+-
+-	if (pcm_val >= 0) {
+-		mask = 0xD5;		/* sign (7th) bit = 1 */
+-	} else {
+-		mask = 0x55;		/* sign bit = 0 */
+-		pcm_val = -pcm_val - 8;
+-	}
+-
+-	/* Convert the scaled magnitude to segment number. */
+-	seg = search(pcm_val, seg_end, 8);
+-
+-	/* Combine the sign, segment, and quantization bits. */
+-
+-	if (seg >= 8)		/* out of range, return maximum value. */
+-		return (0x7F ^ mask);
+-	else {
+-		aval = seg << SEG_SHIFT;
+-		if (seg < 2)
+-			aval |= (pcm_val >> 4) & QUANT_MASK;
+-		else
+-			aval |= (pcm_val >> (seg + 3)) & QUANT_MASK;
+-		return (aval ^ mask);
+-	}
+-}
+-
+-/*
+- * alaw2linear() - Convert an A-law value to 16-bit linear PCM
+- *
+- */
+-int
+-alaw2linear(
+-	unsigned char	a_val)
+-{
+-	int		t;
+-	int		seg;
+-
+-	a_val ^= 0x55;
+-
+-	t = (a_val & QUANT_MASK) << 4;
+-	seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
+-	switch (seg) {
+-	case 0:
+-		t += 8;
+-		break;
+-	case 1:
+-		t += 0x108;
+-		break;
+-	default:
+-		t += 0x108;
+-		t <<= seg - 1;
+-	}
+-	return ((a_val & SIGN_BIT) ? t : -t);
+-}
+-
+-#define	BIAS		(0x84)		/* Bias for linear code. */
+-
+-/*
+- * linear2ulaw() - Convert a linear PCM value to u-law
+- *
+- * In order to simplify the encoding process, the original linear magnitude
+- * is biased by adding 33 which shifts the encoding range from (0 - 8158) to
+- * (33 - 8191). The result can be seen in the following encoding table:
+- *
+- *	Biased Linear Input Code	Compressed Code
+- *	------------------------	---------------
+- *	00000001wxyza			000wxyz
+- *	0000001wxyzab			001wxyz
+- *	000001wxyzabc			010wxyz
+- *	00001wxyzabcd			011wxyz
+- *	0001wxyzabcde			100wxyz
+- *	001wxyzabcdef			101wxyz
+- *	01wxyzabcdefg			110wxyz
+- *	1wxyzabcdefgh			111wxyz
+- *
+- * Each biased linear code has a leading 1 which identifies the segment
+- * number. The value of the segment number is equal to 7 minus the number
+- * of leading 0's. The quantization interval is directly available as the
+- * four bits wxyz.  * The trailing bits (a - h) are ignored.
+- *
+- * Ordinarily the complement of the resulting code word is used for
+- * transmission, and so the code word is complemented before it is returned.
+- *
+- * For further information see John C. Bellamy's Digital Telephony, 1982,
+- * John Wiley & Sons, pps 98-111 and 472-476.
+- */
+-unsigned char
+-linear2ulaw(
+-	int		pcm_val)	/* 2's complement (16-bit range) */
+-{
+-	int		mask;
+-	int		seg;
+-	unsigned char	uval;
+-
+-	/* Get the sign and the magnitude of the value. */
+-	if (pcm_val < 0) {
+-		pcm_val = BIAS - pcm_val;
+-		mask = 0x7F;
+-	} else {
+-		pcm_val += BIAS;
+-		mask = 0xFF;
+-	}
+-
+-	/* Convert the scaled magnitude to segment number. */
+-	seg = search(pcm_val, seg_end, 8);
+-
+-	/*
+-	 * Combine the sign, segment, quantization bits;
+-	 * and complement the code word.
+-	 */
+-	if (seg >= 8)		/* out of range, return maximum value. */
+-		return (0x7F ^ mask);
+-	else {
+-		uval = (seg << 4) | ((pcm_val >> (seg + 3)) & 0xF);
+-		return (uval ^ mask);
+-	}
+-
+-}
+-
+-/*
+- * ulaw2linear() - Convert a u-law value to 16-bit linear PCM
+- *
+- * First, a biased linear code is derived from the code word. An unbiased
+- * output can then be obtained by subtracting 33 from the biased code.
+- *
+- * Note that this function expects to be passed the complement of the
+- * original code word. This is in keeping with ISDN conventions.
+- */
+-int
+-ulaw2linear(
+-	unsigned char	u_val)
+-{
+-	int		t;
+-
+-	/* Complement to obtain normal u-law value. */
+-	u_val = ~u_val;
+-
+-	/*
+-	 * Extract and bias the quantization bits. Then
+-	 * shift up by the segment number and subtract out the bias.
+-	 */
+-	t = ((u_val & QUANT_MASK) << 3) + BIAS;
+-	t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT;
+-
+-	return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS));
+-}
+-
+-/* A-law to u-law conversion */
+-unsigned char
+-alaw2ulaw(
+-	unsigned char	aval)
+-{
+-	aval &= 0xff;
+-	return ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) :
+-	    (0x7F ^ _a2u[aval ^ 0x55]));
+-}
+-
+-/* u-law to A-law conversion */
+-unsigned char
+-ulaw2alaw(
+-	unsigned char	uval)
+-{
+-	uval &= 0xff;
+-	return ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) :
+-	    (0x55 ^ (_u2a[0x7F ^ uval] - 1)));
+-}
+-/*
+- * g72x.c
+- *
+- * Common routines for G.721 and G.723 conversions.
+- */
+-
+-static short power2[15] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80,
+-			0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000};
+-
+-/*
+- * quan()
+- *
+- * quantizes the input val against the table of size short integers.
+- * It returns i if table[i - 1] <= val < table[i].
+- *
+- * Using linear search for simple coding.
+- */
+-static int
+-quan(
+-	int		val,
+-	short		*table,
+-	int		size)
+-{
+-	int		i;
+-
+-	for (i = 0; i < size; i++)
+-		if (val < *table++)
+-			break;
+-	return (i);
+-}
+-
+-/*
+- * fmult()
+- *
+- * returns the integer product of the 14-bit integer "an" and
+- * "floating point" representation (4-bit exponent, 6-bit mantessa) "srn".
+- */
+-static int
+-fmult(
+-	int		an,
+-	int		srn)
+-{
+-	short		anmag, anexp, anmant;
+-	short		wanexp, wanmant;
+-	short		retval;
+-
+-	anmag = (an > 0) ? an : ((-an) & 0x1FFF);
+-	anexp = quan(anmag, power2, 15) - 6;
+-	anmant = (anmag == 0) ? 32 :
+-	    (anexp >= 0) ? anmag >> anexp : anmag << -anexp;
+-	wanexp = anexp + ((srn >> 6) & 0xF) - 13;
+-
+-	wanmant = (anmant * (srn & 077) + 0x30) >> 4;
+-	retval = (wanexp >= 0) ? ((wanmant << wanexp) & 0x7FFF) :
+-	    (wanmant >> -wanexp);
+-
+-	return (((an ^ srn) < 0) ? -retval : retval);
+-}
+-
+-/*
+- * g72x_init_state()
+- *
+- * This routine initializes and/or resets the g72x_state structure
+- * pointed to by 'state_ptr'.
+- * All the initial state values are specified in the CCITT G.721 document.
+- */
+-void
+-g72x_init_state(
+-	struct g72x_state *state_ptr)
+-{
+-	int		cnta;
+-
+-	state_ptr->yl = 34816;
+-	state_ptr->yu = 544;
+-	state_ptr->dms = 0;
+-	state_ptr->dml = 0;
+-	state_ptr->ap = 0;
+-	for (cnta = 0; cnta < 2; cnta++) {
+-		state_ptr->a[cnta] = 0;
+-		state_ptr->pk[cnta] = 0;
+-		state_ptr->sr[cnta] = 32;
+-	}
+-	for (cnta = 0; cnta < 6; cnta++) {
+-		state_ptr->b[cnta] = 0;
+-		state_ptr->dq[cnta] = 32;
+-	}
+-	state_ptr->td = 0;
+-}
+-
+-/*
+- * predictor_zero()
+- *
+- * computes the estimated signal from 6-zero predictor.
+- *
+- */
+-int
+-predictor_zero(
+-	struct g72x_state *state_ptr)
+-{
+-	int		i;
+-	int		sezi;
+-
+-	sezi = fmult(state_ptr->b[0] >> 2, state_ptr->dq[0]);
+-	for (i = 1; i < 6; i++)			/* ACCUM */
+-		sezi += fmult(state_ptr->b[i] >> 2, state_ptr->dq[i]);
+-	return (sezi);
+-}
+-/*
+- * predictor_pole()
+- *
+- * computes the estimated signal from 2-pole predictor.
+- *
+- */
+-int
+-predictor_pole(
+-	struct g72x_state *state_ptr)
+-{
+-	return (fmult(state_ptr->a[1] >> 2, state_ptr->sr[1]) +
+-	    fmult(state_ptr->a[0] >> 2, state_ptr->sr[0]));
+-}
+-/*
+- * step_size()
+- *
+- * computes the quantization step size of the adaptive quantizer.
+- *
+- */
+-int
+-step_size(
+-	struct g72x_state *state_ptr)
+-{
+-	int		y;
+-	int		dif;
+-	int		al;
+-
+-	if (state_ptr->ap >= 256)
+-		return (state_ptr->yu);
+-	else {
+-		y = state_ptr->yl >> 6;
+-		dif = state_ptr->yu - y;
+-		al = state_ptr->ap >> 2;
+-		if (dif > 0)
+-			y += (dif * al) >> 6;
+-		else if (dif < 0)
+-			y += (dif * al + 0x3F) >> 6;
+-		return (y);
+-	}
+-}
+-
+-/*
+- * quantize()
+- *
+- * Given a raw sample, 'd', of the difference signal and a
+- * quantization step size scale factor, 'y', this routine returns the
+- * ADPCM codeword to which that sample gets quantized.  The step
+- * size scale factor division operation is done in the log base 2 domain
+- * as a subtraction.
+- */
+-int
+-quantize(
+-	int		d,	/* Raw difference signal sample */
+-	int		y,	/* Step size multiplier */
+-	short		*table,	/* quantization table */
+-	int		size)	/* table size of short integers */
+-{
+-	short		dqm;	/* Magnitude of 'd' */
+-	short		exp;	/* Integer part of base 2 log of 'd' */
+-	short		mant;	/* Fractional part of base 2 log */
+-	short		dl;	/* Log of magnitude of 'd' */
+-	short		dln;	/* Step size scale factor normalized log */
+-	int		i;
+-
+-	/*
+-	 * LOG
+-	 *
+-	 * Compute base 2 log of 'd', and store in 'dl'.
+-	 */
+-	dqm = abs(d);
+-	exp = quan(dqm >> 1, power2, 15);
+-	mant = ((dqm << 7) >> exp) & 0x7F;	/* Fractional portion. */
+-	dl = (exp << 7) + mant;
+-
+-	/*
+-	 * SUBTB
+-	 *
+-	 * "Divide" by step size multiplier.
+-	 */
+-	dln = dl - (y >> 2);
+-
+-	/*
+-	 * QUAN
+-	 *
+-	 * Obtain codword i for 'd'.
+-	 */
+-	i = quan(dln, table, size);
+-	if (d < 0)			/* take 1's complement of i */
+-		return ((size << 1) + 1 - i);
+-	else if (i == 0)		/* take 1's complement of 0 */
+-		return ((size << 1) + 1); /* new in 1988 */
+-	else
+-		return (i);
+-}
+-/*
+- * reconstruct()
+- *
+- * Returns reconstructed difference signal 'dq' obtained from
+- * codeword 'i' and quantization step size scale factor 'y'.
+- * Multiplication is performed in log base 2 domain as addition.
+- */
+-int
+-reconstruct(
+-	int		sign,	/* 0 for non-negative value */
+-	int		dqln,	/* G.72x codeword */
+-	int		y)	/* Step size multiplier */
+-{
+-	short		dql;	/* Log of 'dq' magnitude */
+-	short		dex;	/* Integer part of log */
+-	short		dqt;
+-	short		dq;	/* Reconstructed difference signal sample */
+-
+-	dql = dqln + (y >> 2);	/* ADDA */
+-
+-	if (dql < 0) {
+-		return ((sign) ? -0x8000 : 0);
+-	} else {		/* ANTILOG */
+-		dex = (dql >> 7) & 15;
+-		dqt = 128 + (dql & 127);
+-		dq = (dqt << 7) >> (14 - dex);
+-		return ((sign) ? (dq - 0x8000) : dq);
+-	}
+-}
+-
+-
+-/*
+- * update()
+- *
+- * updates the state variables for each output code
+- */
+-void
+-update(
+-	int		code_size,	/* distinguish 723_40 with others */
+-	int		y,		/* quantizer step size */
+-	int		wi,		/* scale factor multiplier */
+-	int		fi,		/* for long/short term energies */
+-	int		dq,		/* quantized prediction difference */
+-	int		sr,		/* reconstructed signal */
+-	int		dqsez,		/* difference from 2-pole predictor */
+-	struct g72x_state *state_ptr)	/* coder state pointer */
+-{
+-	int		cnt;
+-	short		mag, exp;	/* Adaptive predictor, FLOAT A */
+-	short		a2p = 0;		/* LIMC */
+-	short		a1ul;		/* UPA1 */
+-	short		pks1;	/* UPA2 */
+-	short		fa1;
+-	char		tr;		/* tone/transition detector */
+-	short		ylint, thr2, dqthr;
+-	short  		ylfrac, thr1;
+-	short		pk0;
+-
+-	pk0 = (dqsez < 0) ? 1 : 0;	/* needed in updating predictor poles */
+-
+-	mag = dq & 0x7FFF;		/* prediction difference magnitude */
+-	/* TRANS */
+-	ylint = state_ptr->yl >> 15;	/* exponent part of yl */
+-	ylfrac = (state_ptr->yl >> 10) & 0x1F;	/* fractional part of yl */
+-	thr1 = (32 + ylfrac) << ylint;		/* threshold */
+-	thr2 = (ylint > 9) ? 31 << 10 : thr1;	/* limit thr2 to 31 << 10 */
+-	dqthr = (thr2 + (thr2 >> 1)) >> 1;	/* dqthr = 0.75 * thr2 */
+-	if (state_ptr->td == 0)		/* signal supposed voice */
+-		tr = 0;
+-	else if (mag <= dqthr)		/* supposed data, but small mag */
+-		tr = 0;			/* treated as voice */
+-	else				/* signal is data (modem) */
+-		tr = 1;
+-
+-	/*
+-	 * Quantizer scale factor adaptation.
+-	 */
+-
+-	/* FUNCTW & FILTD & DELAY */
+-	/* update non-steady state step size multiplier */
+-	state_ptr->yu = y + ((wi - y) >> 5);
+-
+-	/* LIMB */
+-	if (state_ptr->yu < 544)	/* 544 <= yu <= 5120 */
+-		state_ptr->yu = 544;
+-	else if (state_ptr->yu > 5120)
+-		state_ptr->yu = 5120;
+-
+-	/* FILTE & DELAY */
+-	/* update steady state step size multiplier */
+-	state_ptr->yl += state_ptr->yu + ((-state_ptr->yl) >> 6);
+-
+-	/*
+-	 * Adaptive predictor coefficients.
+-	 */
+-	if (tr == 1) {			/* reset a's and b's for modem signal */
+-		state_ptr->a[0] = 0;
+-		state_ptr->a[1] = 0;
+-		state_ptr->b[0] = 0;
+-		state_ptr->b[1] = 0;
+-		state_ptr->b[2] = 0;
+-		state_ptr->b[3] = 0;
+-		state_ptr->b[4] = 0;
+-		state_ptr->b[5] = 0;
+-		// TODO WHat is the correct value of a2p
+-		a2p = 0;
+-	} else {			/* update a's and b's */
+-		pks1 = pk0 ^ state_ptr->pk[0];		/* UPA2 */
+-
+-		/* update predictor pole a[1] */
+-		a2p = state_ptr->a[1] - (state_ptr->a[1] >> 7);
+-		if (dqsez != 0) {
+-			fa1 = (pks1) ? state_ptr->a[0] : -state_ptr->a[0];
+-			if (fa1 < -8191)	/* a2p = function of fa1 */
+-				a2p -= 0x100;
+-			else if (fa1 > 8191)
+-				a2p += 0xFF;
+-			else
+-				a2p += fa1 >> 5;
+-
+-			if (pk0 ^ state_ptr->pk[1])
+-				/* LIMC */
+-				if (a2p <= -12160)
+-					a2p = -12288;
+-				else if (a2p >= 12416)
+-					a2p = 12288;
+-				else
+-					a2p -= 0x80;
+-			else if (a2p <= -12416)
+-				a2p = -12288;
+-			else if (a2p >= 12160)
+-				a2p = 12288;
+-			else
+-				a2p += 0x80;
+-		}
+-
+-		/* TRIGB & DELAY */
+-		state_ptr->a[1] = a2p;
+-
+-		/* UPA1 */
+-		/* update predictor pole a[0] */
+-		state_ptr->a[0] -= state_ptr->a[0] >> 8;
+-		if (dqsez != 0)
+-			if (pks1 == 0)
+-				state_ptr->a[0] += 192;
+-			else
+-				state_ptr->a[0] -= 192;
+-
+-		/* LIMD */
+-		a1ul = 15360 - a2p;
+-		if (state_ptr->a[0] < -a1ul)
+-			state_ptr->a[0] = -a1ul;
+-		else if (state_ptr->a[0] > a1ul)
+-			state_ptr->a[0] = a1ul;
+-
+-		/* UPB : update predictor zeros b[6] */
+-		for (cnt = 0; cnt < 6; cnt++) {
+-			if (code_size == 5)		/* for 40Kbps G.723 */
+-				state_ptr->b[cnt] -= state_ptr->b[cnt] >> 9;
+-			else			/* for G.721 and 24Kbps G.723 */
+-				state_ptr->b[cnt] -= state_ptr->b[cnt] >> 8;
+-			if (dq & 0x7FFF) {			/* XOR */
+-				if ((dq ^ state_ptr->dq[cnt]) >= 0)
+-					state_ptr->b[cnt] += 128;
+-				else
+-					state_ptr->b[cnt] -= 128;
+-			}
+-		}
+-	}
+-
+-	for (cnt = 5; cnt > 0; cnt--)
+-		state_ptr->dq[cnt] = state_ptr->dq[cnt-1];
+-	/* FLOAT A : convert dq[0] to 4-bit exp, 6-bit mantissa f.p. */
+-	if (mag == 0) {
+-		state_ptr->dq[0] = (dq >= 0) ? 0x20 : 0xFC20;
+-	} else {
+-		exp = quan(mag, power2, 15);
+-		state_ptr->dq[0] = (dq >= 0) ?
+-		    (exp << 6) + ((mag << 6) >> exp) :
+-		    (exp << 6) + ((mag << 6) >> exp) - 0x400;
+-	}
+-
+-	state_ptr->sr[1] = state_ptr->sr[0];
+-	/* FLOAT B : convert sr to 4-bit exp., 6-bit mantissa f.p. */
+-	if (sr == 0) {
+-		state_ptr->sr[0] = 0x20;
+-	} else if (sr > 0) {
+-		exp = quan(sr, power2, 15);
+-		state_ptr->sr[0] = (exp << 6) + ((sr << 6) >> exp);
+-	} else if (sr > -32768) {
+-		mag = -sr;
+-		exp = quan(mag, power2, 15);
+-		state_ptr->sr[0] =  (exp << 6) + ((mag << 6) >> exp) - 0x400;
+-	} else
+-		state_ptr->sr[0] = 0xFC20;
+-
+-	/* DELAY A */
+-	state_ptr->pk[1] = state_ptr->pk[0];
+-	state_ptr->pk[0] = pk0;
+-
+-	/* TONE */
+-	if (tr == 1)		/* this sample has been treated as data */
+-		state_ptr->td = 0;	/* next one will be treated as voice */
+-	else if (a2p < -11776)	/* small sample-to-sample correlation */
+-		state_ptr->td = 1;	/* signal may be data */
+-	else				/* signal is voice */
+-		state_ptr->td = 0;
+-
+-	/*
+-	 * Adaptation speed control.
+-	 */
+-	state_ptr->dms += (fi - state_ptr->dms) >> 5;		/* FILTA */
+-	state_ptr->dml += (((fi << 2) - state_ptr->dml) >> 7);	/* FILTB */
+-
+-	if (tr == 1)
+-		state_ptr->ap = 256;
+-	else if (y < 1536)					/* SUBTC */
+-		state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
+-	else if (state_ptr->td == 1)
+-		state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
+-	else if (abs((state_ptr->dms << 2) - state_ptr->dml) >=
+-	    (state_ptr->dml >> 3))
+-		state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
+-	else
+-		state_ptr->ap += (-state_ptr->ap) >> 4;
+-}
+-
+-/*
+- * tandem_adjust(sr, se, y, i, sign)
+- *
+- * At the end of ADPCM decoding, it simulates an encoder which may be receiving
+- * the output of this decoder as a tandem process. If the output of the
+- * simulated encoder differs from the input to this decoder, the decoder output
+- * is adjusted by one level of A-law or u-law codes.
+- *
+- * Input:
+- *	sr	decoder output linear PCM sample,
+- *	se	predictor estimate sample,
+- *	y	quantizer step size,
+- *	i	decoder input code,
+- *	sign	sign bit of code i
+- *
+- * Return:
+- *	adjusted A-law or u-law compressed sample.
+- */
+-int
+-tandem_adjust_alaw(
+-	int		sr,	/* decoder output linear PCM sample */
+-	int		se,	/* predictor estimate sample */
+-	int		y,	/* quantizer step size */
+-	int		i,	/* decoder input code */
+-	int		sign,
+-	short		*qtab)
+-{
+-	unsigned char	sp;	/* A-law compressed 8-bit code */
+-	short		dx;	/* prediction error */
+-	char		id;	/* quantized prediction error */
+-	int		sd;	/* adjusted A-law decoded sample value */
+-	int		im;	/* biased magnitude of i */
+-	int		imx;	/* biased magnitude of id */
+-
+-	if (sr <= -32768)
+-		sr = -1;
+-	sp = linear2alaw((sr >> 1) << 3);	/* short to A-law compression */
+-	dx = (alaw2linear(sp) >> 2) - se;	/* 16-bit prediction error */
+-	id = quantize(dx, y, qtab, sign - 1);
+-
+-	if (id == i) {			/* no adjustment on sp */
+-		return (sp);
+-	} else {			/* sp adjustment needed */
+-		/* ADPCM codes : 8, 9, ... F, 0, 1, ... , 6, 7 */
+-		im = i ^ sign;		/* 2's complement to biased unsigned */
+-		imx = id ^ sign;
+-
+-		if (imx > im) {		/* sp adjusted to next lower value */
+-			if (sp & 0x80) {
+-				sd = (sp == 0xD5) ? 0x55 :
+-				    ((sp ^ 0x55) - 1) ^ 0x55;
+-			} else {
+-				sd = (sp == 0x2A) ? 0x2A :
+-				    ((sp ^ 0x55) + 1) ^ 0x55;
+-			}
+-		} else {		/* sp adjusted to next higher value */
+-			if (sp & 0x80)
+-				sd = (sp == 0xAA) ? 0xAA :
+-				    ((sp ^ 0x55) + 1) ^ 0x55;
+-			else
+-				sd = (sp == 0x55) ? 0xD5 :
+-				    ((sp ^ 0x55) - 1) ^ 0x55;
+-		}
+-		return (sd);
+-	}
+-}
+-
+-int
+-tandem_adjust_ulaw(
+-	int		sr,	/* decoder output linear PCM sample */
+-	int		se,	/* predictor estimate sample */
+-	int		y,	/* quantizer step size */
+-	int		i,	/* decoder input code */
+-	int		sign,
+-	short		*qtab)
+-{
+-	unsigned char	sp;	/* u-law compressed 8-bit code */
+-	short		dx;	/* prediction error */
+-	char		id;	/* quantized prediction error */
+-	int		sd;	/* adjusted u-law decoded sample value */
+-	int		im;	/* biased magnitude of i */
+-	int		imx;	/* biased magnitude of id */
+-
+-	if (sr <= -32768)
+-		sr = 0;
+-	sp = linear2ulaw(sr << 2);	/* short to u-law compression */
+-	dx = (ulaw2linear(sp) >> 2) - se;	/* 16-bit prediction error */
+-	id = quantize(dx, y, qtab, sign - 1);
+-	if (id == i) {
+-		return (sp);
+-	} else {
+-		/* ADPCM codes : 8, 9, ... F, 0, 1, ... , 6, 7 */
+-		im = i ^ sign;		/* 2's complement to biased unsigned */
+-		imx = id ^ sign;
+-		if (imx > im) {		/* sp adjusted to next lower value */
+-			if (sp & 0x80)
+-				sd = (sp == 0xFF) ? 0x7E : sp + 1;
+-			else
+-				sd = (sp == 0) ? 0 : sp - 1;
+-
+-		} else {		/* sp adjusted to next higher value */
+-			if (sp & 0x80)
+-				sd = (sp == 0x80) ? 0x80 : sp - 1;
+-			else
+-				sd = (sp == 0x7F) ? 0xFE : sp + 1;
+-		}
+-		return (sd);
+-	}
+-}
+-/*
+- * g721.c
+- *
+- * Description:
+- *
+- * g721_encoder(), g721_decoder()
+- *
+- * These routines comprise an implementation of the CCITT G.721 ADPCM
+- * coding algorithm.  Essentially, this implementation is identical to
+- * the bit level description except for a few deviations which
+- * take advantage of work station attributes, such as hardware 2's
+- * complement arithmetic and large memory.  Specifically, certain time
+- * consuming operations such as multiplications are replaced
+- * with lookup tables and software 2's complement operations are
+- * replaced with hardware 2's complement.
+- *
+- * The deviation from the bit level specification (lookup tables)
+- * preserves the bit level performance specifications.
+- *
+- * As outlined in the G.721 Recommendation, the algorithm is broken
+- * down into modules.  Each section of code below is preceded by
+- * the name of the module which it is implementing.
+- *
+- */
+-
+-static short qtab_721[7] = {-124, 80, 178, 246, 300, 349, 400};
+-/*
+- * Maps G.721 code word to reconstructed scale factor normalized log
+- * magnitude values.
+- */
+-static short	_dqlntab_721[16] = {-2048, 4, 135, 213, 273, 323, 373, 425,
+-				425, 373, 323, 273, 213, 135, 4, -2048};
+-
+-/* Maps G.721 code word to log of scale factor multiplier. */
+-static short	_witab_721[16] = {-12, 18, 41, 64, 112, 198, 355, 1122,
+-				1122, 355, 198, 112, 64, 41, 18, -12};
+-/*
+- * Maps G.721 code words to a set of values whose long and short
+- * term averages are computed and then compared to give an indication
+- * how stationary (steady state) the signal is.
+- */
+-static short	_fitab_721[16] = {0, 0, 0, 0x200, 0x200, 0x200, 0x600, 0xE00,
+-				0xE00, 0x600, 0x200, 0x200, 0x200, 0, 0, 0};
+-
+-/*
+- * g721_encoder()
+- *
+- * Encodes the input vale of linear PCM, A-law or u-law data sl and returns
+- * the resulting code. -1 is returned for unknown input coding value.
+- */
+-int
+-g721_encoder(
+-	int		sl,
+-	int		in_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, se, sez;		/* ACCUM */
+-	short		d;			/* SUBTA */
+-	short		sr;			/* ADDB */
+-	short		y;			/* MIX */
+-	short		dqsez;			/* ADDC */
+-	short		dq, i;
+-
+-	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+-	case AUDIO_ENCODING_ALAW:
+-		sl = alaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_ULAW:
+-		sl = ulaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_LINEAR:
+-		sl >>= 2;			/* 14-bit dynamic range */
+-		break;
+-	default:
+-		return (-1);
+-	}
+-
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	se = (sezi + predictor_pole(state_ptr)) >> 1;	/* estimated signal */
+-
+-	d = sl - se;				/* estimation difference */
+-
+-	/* quantize the prediction difference */
+-	y = step_size(state_ptr);		/* quantizer step size */
+-	i = quantize(d, y, qtab_721, 7);	/* i = ADPCM code */
+-
+-	dq = reconstruct(i & 8, _dqlntab_721[i], y);	/* quantized est diff */
+-
+-	sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq;	/* reconst. signal */
+-
+-	dqsez = sr + sez - se;			/* pole prediction diff. */
+-
+-	update(4, y, _witab_721[i] << 5, _fitab_721[i], dq, sr, dqsez, state_ptr);
+-
+-	return (i);
+-}
+-
+-/*
+- * g721_decoder()
+- *
+- * Description:
+- *
+- * Decodes a 4-bit code of G.721 encoded data of i and
+- * returns the resulting linear PCM, A-law or u-law value.
+- * return -1 for unknown out_coding value.
+- */
+-int
+-g721_decoder(
+-	int		i,
+-	int		out_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, sei, sez, se;	/* ACCUM */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dq;
+-	short		dqsez;
+-
+-	i &= 0x0f;			/* mask to get proper bits */
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	y = step_size(state_ptr);	/* dynamic quantizer step size */
+-
+-	dq = reconstruct(i & 0x08, _dqlntab_721[i], y); /* quantized diff. */
+-
+-	sr = (dq < 0) ? (se - (dq & 0x3FFF)) : se + dq;	/* reconst. signal */
+-
+-	dqsez = sr - se + sez;			/* pole prediction diff. */
+-
+-	update(4, y, _witab_721[i] << 5, _fitab_721[i], dq, sr, dqsez, state_ptr);
+-
+-	switch (out_coding) {
+-	case AUDIO_ENCODING_ALAW:
+-		return (tandem_adjust_alaw(sr, se, y, i, 8, qtab_721));
+-	case AUDIO_ENCODING_ULAW:
+-		return (tandem_adjust_ulaw(sr, se, y, i, 8, qtab_721));
+-	case AUDIO_ENCODING_LINEAR:
+-		return (sr << 2);	/* sr was 14-bit dynamic range */
+-	default:
+-		return (-1);
+-	}
+-}
+-/*
+- * g723_24.c
+- *
+- * Description:
+- *
+- * g723_24_encoder(), g723_24_decoder()
+- *
+- * These routines comprise an implementation of the CCITT G.723 24 Kbps
+- * ADPCM coding algorithm.  Essentially, this implementation is identical to
+- * the bit level description except for a few deviations which take advantage
+- * of workstation attributes, such as hardware 2's complement arithmetic.
+- *
+- */
+-
+-/*
+- * Maps G.723_24 code word to reconstructed scale factor normalized log
+- * magnitude values.
+- */
+-static short	_dqlntab_723_24[8] = {-2048, 135, 273, 373, 373, 273, 135, -2048};
+-
+-/* Maps G.723_24 code word to log of scale factor multiplier. */
+-static short	_witab_723_24[8] = {-128, 960, 4384, 18624, 18624, 4384, 960, -128};
+-
+-/*
+- * Maps G.723_24 code words to a set of values whose long and short
+- * term averages are computed and then compared to give an indication
+- * how stationary (steady state) the signal is.
+- */
+-static short	_fitab_723_24[8] = {0, 0x200, 0x400, 0xE00, 0xE00, 0x400, 0x200, 0};
+-
+-static short qtab_723_24[3] = {8, 218, 331};
+-
+-/*
+- * g723_24_encoder()
+- *
+- * Encodes a linear PCM, A-law or u-law input sample and returns its 3-bit code.
+- * Returns -1 if invalid input coding value.
+- */
+-int
+-g723_24_encoder(
+-	int		sl,
+-	int		in_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sei, sezi, se, sez;	/* ACCUM */
+-	short		d;			/* SUBTA */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dqsez;			/* ADDC */
+-	short		dq, i;
+-
+-	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+-	case AUDIO_ENCODING_ALAW:
+-		sl = alaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_ULAW:
+-		sl = ulaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_LINEAR:
+-		sl >>= 2;		/* sl of 14-bit dynamic range */
+-		break;
+-	default:
+-		return (-1);
+-	}
+-
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	d = sl - se;			/* d = estimation diff. */
+-
+-	/* quantize prediction difference d */
+-	y = step_size(state_ptr);	/* quantizer step size */
+-	i = quantize(d, y, qtab_723_24, 3);	/* i = ADPCM code */
+-	dq = reconstruct(i & 4, _dqlntab_723_24[i], y); /* quantized diff. */
+-
+-	sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconstructed signal */
+-
+-	dqsez = sr + sez - se;		/* pole prediction diff. */
+-
+-	update(3, y, _witab_723_24[i], _fitab_723_24[i], dq, sr, dqsez, state_ptr);
+-
+-	return (i);
+-}
+-
+-/*
+- * g723_24_decoder()
+- *
+- * Decodes a 3-bit CCITT G.723_24 ADPCM code and returns
+- * the resulting 16-bit linear PCM, A-law or u-law sample value.
+- * -1 is returned if the output coding is unknown.
+- */
+-int
+-g723_24_decoder(
+-	int		i,
+-	int		out_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, sei, sez, se;	/* ACCUM */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dq;
+-	short		dqsez;
+-
+-	i &= 0x07;			/* mask to get proper bits */
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	y = step_size(state_ptr);	/* adaptive quantizer step size */
+-	dq = reconstruct(i & 0x04, _dqlntab_723_24[i], y); /* unquantize pred diff */
+-
+-	sr = (dq < 0) ? (se - (dq & 0x3FFF)) : (se + dq); /* reconst. signal */
+-
+-	dqsez = sr - se + sez;			/* pole prediction diff. */
+-
+-	update(3, y, _witab_723_24[i], _fitab_723_24[i], dq, sr, dqsez, state_ptr);
+-
+-	switch (out_coding) {
+-	case AUDIO_ENCODING_ALAW:
+-		return (tandem_adjust_alaw(sr, se, y, i, 4, qtab_723_24));
+-	case AUDIO_ENCODING_ULAW:
+-		return (tandem_adjust_ulaw(sr, se, y, i, 4, qtab_723_24));
+-	case AUDIO_ENCODING_LINEAR:
+-		return (sr << 2);	/* sr was of 14-bit dynamic range */
+-	default:
+-		return (-1);
+-	}
+-}
+-/*
+- * g723_40.c
+- *
+- * Description:
+- *
+- * g723_40_encoder(), g723_40_decoder()
+- *
+- * These routines comprise an implementation of the CCITT G.723 40Kbps
+- * ADPCM coding algorithm.  Essentially, this implementation is identical to
+- * the bit level description except for a few deviations which
+- * take advantage of workstation attributes, such as hardware 2's
+- * complement arithmetic.
+- *
+- * The deviation from the bit level specification (lookup tables),
+- * preserves the bit level performance specifications.
+- *
+- * As outlined in the G.723 Recommendation, the algorithm is broken
+- * down into modules.  Each section of code below is preceded by
+- * the name of the module which it is implementing.
+- *
+- */
+-
+-/*
+- * Maps G.723_40 code word to ructeconstructed scale factor normalized log
+- * magnitude values.
+- */
+-static short	_dqlntab_723_40[32] = {-2048, -66, 28, 104, 169, 224, 274, 318,
+-				358, 395, 429, 459, 488, 514, 539, 566,
+-				566, 539, 514, 488, 459, 429, 395, 358,
+-				318, 274, 224, 169, 104, 28, -66, -2048};
+-
+-/* Maps G.723_40 code word to log of scale factor multiplier. */
+-static short	_witab_723_40[32] = {448, 448, 768, 1248, 1280, 1312, 1856, 3200,
+-			4512, 5728, 7008, 8960, 11456, 14080, 16928, 22272,
+-			22272, 16928, 14080, 11456, 8960, 7008, 5728, 4512,
+-			3200, 1856, 1312, 1280, 1248, 768, 448, 448};
+-
+-/*
+- * Maps G.723_40 code words to a set of values whose long and short
+- * term averages are computed and then compared to give an indication
+- * how stationary (steady state) the signal is.
+- */
+-static short	_fitab_723_40[32] = {0, 0, 0, 0, 0, 0x200, 0x200, 0x200,
+-			0x200, 0x200, 0x400, 0x600, 0x800, 0xA00, 0xC00, 0xC00,
+-			0xC00, 0xC00, 0xA00, 0x800, 0x600, 0x400, 0x200, 0x200,
+-			0x200, 0x200, 0x200, 0, 0, 0, 0, 0};
+-
+-static short qtab_723_40[15] = {-122, -16, 68, 139, 198, 250, 298, 339,
+-				378, 413, 445, 475, 502, 528, 553};
+-
+-/*
+- * g723_40_encoder()
+- *
+- * Encodes a 16-bit linear PCM, A-law or u-law input sample and retuens
+- * the resulting 5-bit CCITT G.723 40Kbps code.
+- * Returns -1 if the input coding value is invalid.
+- */
+-int
+-g723_40_encoder(
+-	int		sl,
+-	int		in_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sei, sezi, se, sez;	/* ACCUM */
+-	short		d;			/* SUBTA */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dqsez;			/* ADDC */
+-	short		dq, i;
+-
+-	switch (in_coding) {	/* linearize input sample to 14-bit PCM */
+-	case AUDIO_ENCODING_ALAW:
+-		sl = alaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_ULAW:
+-		sl = ulaw2linear(sl) >> 2;
+-		break;
+-	case AUDIO_ENCODING_LINEAR:
+-		sl >>= 2;		/* sl of 14-bit dynamic range */
+-		break;
+-	default:
+-		return (-1);
+-	}
+-
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	d = sl - se;			/* d = estimation difference */
+-
+-	/* quantize prediction difference */
+-	y = step_size(state_ptr);	/* adaptive quantizer step size */
+-	i = quantize(d, y, qtab_723_40, 15);	/* i = ADPCM code */
+-
+-	dq = reconstruct(i & 0x10, _dqlntab_723_40[i], y);	/* quantized diff */
+-
+-	sr = (dq < 0) ? se - (dq & 0x7FFF) : se + dq; /* reconstructed signal */
+-
+-	dqsez = sr + sez - se;		/* dqsez = pole prediction diff. */
+-
+-	update(5, y, _witab_723_40[i], _fitab_723_40[i], dq, sr, dqsez, state_ptr);
+-
+-	return (i);
+-}
+-
+-/*
+- * g723_40_decoder()
+- *
+- * Decodes a 5-bit CCITT G.723 40Kbps code and returns
+- * the resulting 16-bit linear PCM, A-law or u-law sample value.
+- * -1 is returned if the output coding is unknown.
+- */
+-int
+-g723_40_decoder(
+-	int		i,
+-	int		out_coding,
+-	struct g72x_state *state_ptr)
+-{
+-	short		sezi, sei, sez, se;	/* ACCUM */
+-	short		y;			/* MIX */
+-	short		sr;			/* ADDB */
+-	short		dq;
+-	short		dqsez;
+-
+-	i &= 0x1f;			/* mask to get proper bits */
+-	sezi = predictor_zero(state_ptr);
+-	sez = sezi >> 1;
+-	sei = sezi + predictor_pole(state_ptr);
+-	se = sei >> 1;			/* se = estimated signal */
+-
+-	y = step_size(state_ptr);	/* adaptive quantizer step size */
+-	dq = reconstruct(i & 0x10, _dqlntab_723_40[i], y);	/* estimation diff. */
+-
+-	sr = (dq < 0) ? (se - (dq & 0x7FFF)) : (se + dq); /* reconst. signal */
+-
+-	dqsez = sr - se + sez;		/* pole prediction diff. */
+-
+-	update(5, y, _witab_723_40[i], _fitab_723_40[i], dq, sr, dqsez, state_ptr);
+-
+-	switch (out_coding) {
+-	case AUDIO_ENCODING_ALAW:
+-		return (tandem_adjust_alaw(sr, se, y, i, 0x10, qtab_723_40));
+-	case AUDIO_ENCODING_ULAW:
+-		return (tandem_adjust_ulaw(sr, se, y, i, 0x10, qtab_723_40));
+-	case AUDIO_ENCODING_LINEAR:
+-		return (sr << 2);	/* sr was of 14-bit dynamic range */
+-	default:
+-		return (-1);
+-	}
+-}
+Index: vcl/unx/source/app/vsound.hxx
+===================================================================
+RCS file: vcl/unx/source/app/vsound.hxx
+diff -N vcl/unx/source/app/vsound.hxx
+--- vcl/unx/source/app/vsound.hxx	19 Jun 2006 19:52:31 -0000	1.11
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,118 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: vsound.hxx,v $
+- *
+- *  $Revision: 1.11 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/19 19:52:31 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-#ifndef _VCL_VSOUND_HXX
+-#define _VCL_VSOUND_HXX
+-
+-#if (defined(LINUX)) || defined(FREEBSD)
+-#define USE_OSS
+-#endif
+-
+-#ifdef SOLARIS
+-#define USE_DEVAUDIO
+-#endif
+-
+-#if STLPORT_VERSION>=321
+-#include <cstdarg>
+-#endif
+-#include <sys/stat.h>
+-#include <tools/string.hxx>
+-
+-class X11SalSound;
+-
+-namespace vcl_sal {
+-	class VSound
+-	{
+-        protected:
+-		VSound( ::X11SalSound* pSound ) : m_pSalSound( pSound ), m_pBuffer( NULL ) {}
+-        
+-		// instance data
+-		::X11SalSound*			m_pSalSound;
+-		// pointer to mmaped file
+-		char*		m_pBuffer;
+-		struct stat m_aStat;
+-        
+-        void initBuffer();
+-        void releaseBuffer();
+-        
+-		virtual BOOL isValid() = 0;
+-        public:
+-		virtual ~VSound() {}
+-        
+-		virtual void play() = 0;
+-		virtual void stop() = 0;
+-		virtual void pause() = 0;
+-		virtual void cont() = 0;
+-        
+-		static VSound* createVSound( X11SalSound* );
+-	};
+-    
+-    
+-    // a class to convert bytestreams from one codec to another
+-    class AudioConverter
+-    {
+-        public:
+-        virtual ~AudioConverter();
+-        
+-        virtual void reset() = 0;
+-        // the returned memory should be deleted by user
+-        virtual char* convert( char* pBuffer, int nBytesIn, int& nBytesOut ) = 0;
+-        
+-        // conversion from G721 encoded data
+-        // input is G721 conforming byte buffer (actually nibble buffer)
+-        // output is uLaw encoded byte buffer
+-        static AudioConverter* createG721ToULawConverter();
+-        
+-        static AudioConverter* createINT8ToUINT16Converter();
+-        static AudioConverter* createSwapINT16Converter();
+-    };
+-}
+-
+-#if OSL_DEBUG_LEVEL > 1
+-#include <stdarg.h>
+-#include <stdio.h>
+-inline void SalDbgAssert( const char* pFmt, ... )
+-{
+-	va_list ap;
+-	va_start( ap, pFmt );
+-	vfprintf( stderr, pFmt, ap );
+-	va_end( ap );
+-}
+-#else
+-inline void SalDbgAssert( const char*, ... )
+-{
+-}
+-#endif
+-
+-#endif
+Index: vcl/util/makefile.mk
+===================================================================
+RCS file: /cvs/gsl/vcl/util/makefile.mk,v
+retrieving revision 1.100
+retrieving revision 1.98.10.3
+diff -u -p -u -p -r1.100 -r1.98.10.3
+--- vcl/util/makefile.mk	15 Oct 2007 13:07:51 -0000	1.100
++++ vcl/util/makefile.mk	23 Oct 2007 09:05:48 -0000	1.98.10.3
+@@ -300,25 +300,6 @@ SHL2STDLIBS += $(XINERAMALIBS)
+ SHL2STDLIBS+=`pkg-config --libs xrender`
+ .ENDIF
+ 
+-
+-.IF "$(ENABLE_PASF)" != ""
+-SHL2STDLIBS += $(SNDFILELIB) -lportaudio
+-.IF "$(OS)"=="MACOSX"
+-SHL2STDLIBS += -framework CoreAudio -framework AudioToolbox
+-.ENDIF # "$(OS)"=="MACOSX"
+-.ENDIF # "$(ENABLE_PASF)"!=""
+-
+-.IF "$(ENABLE_NAS)" != ""
+-SHL2STDLIBS += -laudio
+-.IF "$(XAU_LIBS)" != ""
+-SHL2STDLIBS += $(XAU_LIBS)
+-.ENDIF
+-.IF "$(OS)"=="SOLARIS"
+-# needed by libaudio.a
+-SHL2STDLIBS += -ldl -lnsl -lsocket
+-.ENDIF # SOLARIS
+-.ENDIF
+-
+ .IF "$(GUIBASE)"=="unx"
+ 
+ .IF "$(WITH_LIBSN)"=="YES"
+Index: vcl/win/inc/saldata.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/win/inc/saldata.hxx,v
+retrieving revision 1.28
+retrieving revision 1.28.60.1
+diff -u -p -u -p -r1.28 -r1.28.60.1
+--- vcl/win/inc/saldata.hxx	27 Jun 2007 20:53:03 -0000	1.28
++++ vcl/win/inc/saldata.hxx	31 Aug 2007 09:44:58 -0000	1.28.60.1
+@@ -297,10 +297,6 @@ int ImplSalWICompareAscii( const wchar_t
+ #define SAL_MSG_CREATEOBJECT        (WM_USER+116)
+ // wParam == 0; lParam == pObject;
+ #define SAL_MSG_DESTROYOBJECT       (WM_USER+117)
+-// wParam == 0; lParam == this; lResult == bRet
+-#define SAL_MSG_CREATESOUND         (WM_USER+118)
+-// wParam == 0; lParam == this
+-#define SAL_MSG_DESTROYSOUND        (WM_USER+119)
+ // wParam == hWnd; lParam == 0; lResult == hDC
+ #define SAL_MSG_GETDC               (WM_USER+120)
+ // wParam == hWnd; lParam == 0
+Index: vcl/win/inc/salinst.h
+===================================================================
+RCS file: /cvs/gsl/vcl/win/inc/salinst.h,v
+retrieving revision 1.13
+retrieving revision 1.13.60.1
+diff -u -p -u -p -r1.13 -r1.13.60.1
+--- vcl/win/inc/salinst.h	27 Jun 2007 20:53:41 -0000	1.13
++++ vcl/win/inc/salinst.h	31 Aug 2007 09:44:58 -0000	1.13.60.1
+@@ -83,7 +83,6 @@ public:
+     virtual void			GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
+     virtual void			DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
+     virtual String             GetDefaultPrinter();
+-    virtual SalSound*			CreateSalSound();
+     virtual SalTimer*			CreateSalTimer();
+     virtual SalOpenGL*			CreateSalOpenGL( SalGraphics* pGraphics );
+     virtual SalI18NImeStatus*	CreateI18NImeStatus();
+Index: vcl/win/inc/salsound.h
+===================================================================
+RCS file: vcl/win/inc/salsound.h
+diff -N vcl/win/inc/salsound.h
+--- vcl/win/inc/salsound.h	27 Jun 2007 20:55:12 -0000	1.5
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,108 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.h,v $
+- *
+- *  $Revision: 1.5 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:55:12 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_H
+-#define _SV_SALSOUND_H
+-
+-#ifndef _SV_WINCOMP_HXX
+-#include <wincomp.hxx>
+-#endif
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-#ifndef _STRING_HXX
+-#include <tools/string.hxx>
+-#endif
+-
+-#ifndef _SV_SV_H
+-#include <vcl/sv.h>
+-#endif
+-
+-#include <osl/module.h>
+-
+-#ifndef _SV_SALFRAME_HXX
+-#include <vcl/salframe.hxx>
+-#endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-#ifndef _SV_SALSOUND_HXX
+-#include <vcl/salsound.hxx>
+-#endif
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-class WinSalSound : public SalSound
+-{
+-private:
+-	static oslModule	mhMCILib;
+-	static ULONG		mnSoundState;
+-	static void*		mpMCIFnc;
+-	ULONG				mnStartTime;
+-	ULONG				mnPlayLen;
+-	HWND				mhSoundWnd;
+-	UINT				mnDeviceId;
+-	bool				mbLoop;
+-	bool				mbPaused;
+-
+-public:
+-	void				ImplSetError( DWORD nMciErr );
+-	void				ImplNotify( SoundNotification eNotification, ULONG nError );
+-
+-public:
+-    WinSalSound();
+-    virtual ~WinSalSound();
+-    
+-    virtual bool		IsValid();
+-    virtual bool		Init( const String&	rSoundName,
+-                              ULONG&		rSoundLen );
+-   	virtual void		Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
+-	virtual void		Stop();
+-	virtual void		Pause();
+-	virtual void		Continue();
+-    virtual bool		IsLoopMode() const;
+-	virtual bool		IsPlaying() const;
+-    virtual bool		IsPaused() const;
+-
+-
+-	bool				ImplCreate();
+-	void				ImplDestroy();
+-	static void 		Release();
+-};
+-
+-#endif // _SV_SALSOUND_H
+Index: vcl/win/inc/salsound.hxx
+===================================================================
+RCS file: vcl/win/inc/salsound.hxx
+diff -N vcl/win/inc/salsound.hxx
+--- vcl/win/inc/salsound.hxx	27 Jun 2007 20:55:24 -0000	1.3
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,104 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.hxx,v $
+- *
+- *  $Revision: 1.3 $
+- *
+- *  last change: $Author: hr $ $Date: 2007/06/27 20:55:24 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-#ifndef _SV_SALSOUND_HXX
+-#define _SV_SALSOUND_HXX
+-
+-#ifndef _SV_WINCOMP_HXX
+-#include <wincomp.hxx>
+-#endif
+-
+-#ifndef _GEN_HXX
+-#include <tools/gen.hxx>
+-#endif
+-#ifndef _STRING_HXX
+-#include <tools/string.hxx>
+-#endif
+-
+-#ifndef _SV_SV_H
+-#include <vcl/sv.h>
+-#endif
+-
+-#ifndef _SV_SALFRAME_HXX
+-#include <vcl/salframe.hxx>
+-#endif
+-#ifndef _SV_SALSTYPE_HXX
+-#include <vcl/salstype.hxx>
+-#endif
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-class SalSound
+-{
+-private:
+-	static HINSTANCE	mhMCILib;
+-	static ULONG		mnSoundState;
+-	static void*		mpMCIFnc;
+-	SALSOUNDPROC		mpProc;
+-	void*				mpInst;
+-	ULONG				mnStartTime;
+-	ULONG				mnPlayLen;
+-	HWND				mhSoundWnd;
+-	UINT				mnDeviceId;
+-	BOOL				mbLoop;
+-	BOOL				mbPaused;
+-
+-public:
+-	void				ImplSetError( DWORD nMciErr );
+-	void				ImplNotify( SoundNotification eNotification, ULONG nError );
+-
+-public:
+-						SalSound();
+-						~SalSound();
+-
+-	BOOL				ImplCreate();
+-	BOOL				Create();
+-	void				ImplDestroy();
+-	static void 		Release();
+-	static BOOL 		IsValid() { return( SOUND_STATE_VALID == SalSound::mnSoundState ); }
+-
+-	BOOL				Init( SalFrame* pFrame, const String& rSoundName, ULONG& rSoundLen );
+-	BOOL				Init( SalFrame* pFrame, const BYTE* pSound, ULONG nDataLen, ULONG& rSoundLen );
+-	void				Play( ULONG nStartTime, ULONG nPlayTime, BOOL bLoop );
+-	void				Stop();
+-	void				Pause();
+-
+-	void				SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
+-							{ mpInst = pInst; mpProc = pProc; }
+-};
+-
+-#endif // _SV_SALSOUND_HXX
+Index: vcl/win/source/app/MAKEFILE.MK
+===================================================================
+RCS file: /cvs/gsl/vcl/win/source/app/MAKEFILE.MK,v
+retrieving revision 1.8
+retrieving revision 1.8.160.1
+diff -u -p -u -p -r1.8 -r1.8.160.1
+--- vcl/win/source/app/MAKEFILE.MK	6 Feb 2007 14:20:03 -0000	1.8
++++ vcl/win/source/app/MAKEFILE.MK	31 Aug 2007 09:44:58 -0000	1.8.160.1
+@@ -56,7 +56,6 @@ SLOFILES=   $(SLO)$/salshl.obj      \
+             $(SLO)$/saldata.obj     \
+             $(SLO)$/salinst.obj     \
+             $(SLO)$/saltimer.obj    \
+-            $(SLO)$/salsound.obj    \
+             $(SLO)$/salinfo.obj
+ 
+ # --- Targets ------------------------------------------------------
+Index: vcl/win/source/app/salinst.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/win/source/app/salinst.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.12.1
+diff -u -p -u -p -r1.39 -r1.39.12.1
+--- vcl/win/source/app/salinst.cxx	2 Aug 2007 18:29:24 -0000	1.39
++++ vcl/win/source/app/salinst.cxx	31 Aug 2007 09:44:58 -0000	1.39.12.1
+@@ -77,9 +77,6 @@
+ #ifndef _SV_SALTIMER_H
+ #include <saltimer.h>
+ #endif
+-#ifndef _SV_SALSOUND_H
+-#include <salsound.h>
+-#endif
+ #ifndef _SV_SALATYPE_HXX
+ #include <vcl/salatype.hxx>
+ #endif
+@@ -873,14 +870,6 @@ LRESULT CALLBACK SalComWndProc( HWND hWn
+ 			delete (SalObject*)lParam;
+ 			rDef = FALSE;
+ 			break;
+-		case SAL_MSG_CREATESOUND:
+-			nRet = ((WinSalSound*)lParam)->ImplCreate();
+-			rDef = FALSE;
+-			break;
+-		case SAL_MSG_DESTROYSOUND:
+-			((WinSalSound*)lParam)->ImplDestroy();
+-			rDef = FALSE;
+-			break;
+ 		case SAL_MSG_GETDC:
+ 			nRet = (LRESULT)GetDCEx( (HWND)wParam, 0, DCX_CACHE );
+ 			rDef = FALSE;
+@@ -1120,13 +1109,6 @@ SalTimer* WinSalInstance::CreateSalTimer
+ 
+ // -----------------------------------------------------------------------
+ 
+-SalSound* WinSalInstance::CreateSalSound()
+-{
+-	return new WinSalSound();
+-}
+-
+-// -----------------------------------------------------------------------
+-
+ SalOpenGL* WinSalInstance::CreateSalOpenGL( SalGraphics* pGraphics )
+ {
+ 	return new WinSalOpenGL( pGraphics );
+Index: vcl/win/source/app/salsound.cxx
+===================================================================
+RCS file: vcl/win/source/app/salsound.cxx
+diff -N vcl/win/source/app/salsound.cxx
+--- vcl/win/source/app/salsound.cxx	26 Mar 2007 14:40:21 -0000	1.9
++++ /dev/null	1 Jan 1970 00:00:00 -0000
+@@ -1,527 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: salsound.cxx,v $
+- *
+- *  $Revision: 1.9 $
+- *
+- *  last change: $Author: vg $ $Date: 2007/03/26 14:40:21 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-// MARKER(update_precomp.py): autogen include statement, do not remove
+-#include "precompiled_vcl.hxx"
+-
+-#define INCLUDE_MMSYSTEM
+-
+-// ------------
+-// - Includes -
+-// ------------
+-
+-#ifndef _SVWIN_H
+-#include <tools/svwin.h>
+-#endif
+-
+-#ifndef _SV_SALDATA_HXX
+-#include <saldata.hxx>
+-#endif
+-#ifndef _SV_SALINST_H
+-#include <salinst.h>
+-#endif
+-#ifndef _SV_SALSOUND_H
+-#include <salsound.h>
+-#endif
+-
+-// ---------
+-// - Names -
+-// ---------
+-
+-#define SOUND_LIBNAME		"WINMM.DLL"
+-#define SOUND_PROCNAMEA 	"mciSendCommandA"
+-#define SOUND_PROCNAMEW 	"mciSendCommandW"
+-#define SOUND_WINDOWCLASSA	"SALSOUNDWND"
+-#define SOUND_WINDOWCLASSW	L"SALSOUNDWND"
+-
+-// ------------
+-// - Fnc cast -
+-// ------------
+-
+-#define __MCI_CALL __stdcall
+-
+-#define MCIFNC ((DWORD( __MCI_CALL * )( UINT, UINT, DWORD, DWORD )) WinSalSound::mpMCIFnc)
+-
+-// -----------------
+-// - Statics init. -
+-// -----------------
+-
+-oslModule	WinSalSound::mhMCILib = 0;
+-ULONG		WinSalSound::mnSoundState = SOUND_STATE_UNLOADED;
+-void*		WinSalSound::mpMCIFnc = NULL;
+-
+-// -------------------
+-// - Window-Callback -
+-// -------------------
+-
+-void ImplSalHandleMCINotify( HWND hWnd, WPARAM nPar1, LPARAM )
+-{
+-	SoundNotification	eNotification = SOUND_NOTIFY_SUCCESS;
+-	BOOL				bNotify = TRUE;
+-
+-	switch ( nPar1 )
+-	{
+-		case( MCI_NOTIFY_SUCCESSFUL ):
+-			eNotification = SOUND_NOTIFY_SUCCESS;
+-			break;
+-
+-		case( MCI_NOTIFY_ABORTED ):
+-			eNotification = SOUND_NOTIFY_ABORTED;
+-			break;
+-
+-		case( MCI_NOTIFY_FAILURE ):
+-			eNotification = SOUND_NOTIFY_ERROR;
+-			break;
+-
+-		default:
+-			bNotify = FALSE;
+-	}
+-
+-	if ( bNotify )
+-		((WinSalSound*)GetWindowLong( hWnd, 0 ) )->ImplNotify( eNotification, 0 );
+-}
+-
+-LRESULT CALLBACK SalSoundWndProcA( HWND hWnd, UINT nMsg, WPARAM nPar1, LPARAM nPar2 )
+-{
+-	if ( MM_MCINOTIFY == nMsg )
+-		ImplSalHandleMCINotify( hWnd, nPar1, nPar2 );
+-	return DefWindowProcA( hWnd, nMsg, nPar1, nPar2 );
+-}
+-
+-LRESULT CALLBACK SalSoundWndProcW( HWND hWnd, UINT nMsg, WPARAM nPar1, LPARAM nPar2 )
+-{
+-	if ( MM_MCINOTIFY == nMsg )
+-		ImplSalHandleMCINotify( hWnd, nPar1, nPar2 );
+-	return DefWindowProcW( hWnd, nMsg, nPar1, nPar2 );
+-}
+-
+-// ------------
+-// - SalSound -
+-// ------------
+-
+-WinSalSound::WinSalSound() :
+-	mhSoundWnd		( 0 ),
+-	mnDeviceId		( 0 ),
+-	mbLoop			( FALSE ),
+-	mbPaused		( FALSE )
+-{
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-WinSalSound::~WinSalSound()
+-{
+-	Stop();
+-
+-	if ( mnDeviceId )
+-	{
+-		// close device
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD) mhSoundWnd;
+-		MCIFNC( mnDeviceId, MCI_CLOSE, MCI_WAIT, (DWORD)&aGenericParams );
+-	}
+-
+-	// Call Destroy in the main thread, because Create is also called in
+-	// the main thread and if we don't call this also in the main thread
+-	// windows doesn't destroy the window
+-	WinSalInstance* pInst = GetSalData()->mpFirstInstance;
+-	if ( pInst )
+-	{
+-		ImplSendMessage( pInst->mhComWnd, SAL_MSG_DESTROYSOUND,
+-						 0, (LPARAM)this );
+-	}
+-	else
+-		ImplDestroy();
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::ImplSetError( DWORD nMciErr )
+-{
+-	struct aMapper { DWORD nMci; ULONG nSv; };
+-
+-	ULONG			nError = SOUNDERR_GENERAL_ERROR;
+-	static aMapper	aErrArr[] =
+-	{
+-		{ 0, SOUNDERR_SUCCESS },
+-		{ MCIERR_CANNOT_LOAD_DRIVER, SOUNDERR_CANNOT_LOAD_DRIVER },
+-		{ MCIERR_DEVICE_LOCKED, SOUNDERR_DEVICE_LOCKED },
+-		{ MCIERR_DEVICE_NOT_INSTALLED, SOUNDERR_DEVICE_NOT_FOUND },
+-		{ MCIERR_DEVICE_NOT_READY, SOUNDERR_DEVICE_NOT_READY },
+-		{ MCIERR_DEVICE_TYPE_REQUIRED, SOUNDERR_DEVICE_NOT_FOUND },
+-		{ MCIERR_DRIVER, SOUNDERR_CANNOT_LOAD_DRIVER },
+-		{ MCIERR_DRIVER_INTERNAL, SOUNDERR_CANNOT_LOAD_DRIVER  },
+-		{ MCIERR_EXTENSION_NOT_FOUND, SOUNDERR_SOUND_NOT_FOUND },
+-		{ MCIERR_FILE_NOT_FOUND, SOUNDERR_SOUND_NOT_FOUND },
+-		{ MCIERR_FILE_READ, SOUNDERR_CANNOT_READ_SOUND },
+-		{ MCIERR_FILENAME_REQUIRED, SOUNDERR_SOUND_NOT_FOUND },
+-		{ MCIERR_HARDWARE, SOUNDERR_HARDWARE_ERROR },
+-		{ MCIERR_INVALID_DEVICE_NAME, SOUNDERR_DEVICE_NOT_FOUND },
+-		{ MCIERR_INVALID_FILE, SOUNDERR_INVALID_FILE },
+-		{ MCIERR_OUT_OF_MEMORY, SOUNDERR_OUT_OF_MEMORY },
+-		{ MCIERR_UNSUPPORTED_FUNCTION, SOUNDERR_UNSUPPORTED_FUNCTION }
+-	};
+-
+-	for ( USHORT n=0; n < (sizeof( aErrArr ) / sizeof( aMapper ) ); n++ )
+-	{
+-		if ( aErrArr[ n ].nMci == nMciErr )
+-		{
+-			nError = aErrArr[ n ].nSv;
+-			break;
+-		}
+-	}
+-
+-	if ( nError )
+-		ImplNotify( SOUND_NOTIFY_ERROR, nError );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::ImplNotify( SoundNotification eNotification, ULONG nError )
+-{
+-	if ( mbLoop && (SOUND_NOTIFY_SUCCESS == eNotification) && !nError )
+-		Play( mnStartTime, mnPlayLen, TRUE );
+-
+-    CallNotifyProc( eNotification, nError );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::ImplCreate()
+-{
+-	SalData*	pData = GetSalData();
+-	bool		bRet = FALSE;
+-
+-	if ( SOUND_STATE_UNLOADED == WinSalSound::mnSoundState )
+-	{
+-		// load library and init fncpointer
+-		if ( aSalShlData.mbWNT )
+-		{
+-            OUString aLibraryName( RTL_CONSTASCII_USTRINGPARAM( SOUND_LIBNAME ) );
+-            OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( SOUND_PROCNAMEW ) );
+-            if ( (WinSalSound::mhMCILib = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT )) != 0 &&
+-				 (WinSalSound::mpMCIFnc = (void*)osl_getSymbol( WinSalSound::mhMCILib, queryFuncName.pData )) != 0 )
+-			{
+-				WNDCLASSEXW aWndClass;
+-
+-				memset( &aWndClass, 0, sizeof( aWndClass ) );
+-				aWndClass.cbSize		= sizeof( aWndClass );
+-				aWndClass.lpfnWndProc	= SalSoundWndProcW;
+-				aWndClass.cbWndExtra	= sizeof( SalSound* );
+-				aWndClass.hInstance 	= pData->mhInst;
+-				aWndClass.lpszClassName = SOUND_WINDOWCLASSW;
+-				if ( RegisterClassExW( &aWndClass ) )
+-				{
+-					WinSalSound::mnSoundState = SOUND_STATE_VALID;
+-					bRet = TRUE;
+-				}
+-			}
+-		}
+-		else
+-		{
+-            OUString aLibraryName( RTL_CONSTASCII_USTRINGPARAM( SOUND_LIBNAME ) );
+-            OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( SOUND_PROCNAMEA ) );
+-            if ( (WinSalSound::mhMCILib = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT )) != 0 &&
+-				 (WinSalSound::mpMCIFnc = (void*)osl_getSymbol( WinSalSound::mhMCILib, queryFuncName.pData )) != 0 )
+-			{
+-				WNDCLASSEXA aWndClass;
+-
+-				memset( &aWndClass, 0, sizeof( aWndClass ) );
+-				aWndClass.cbSize		= sizeof( aWndClass );
+-				aWndClass.lpfnWndProc	= SalSoundWndProcA;
+-				aWndClass.cbWndExtra	= sizeof( SalSound* );
+-				aWndClass.hInstance 	= pData->mhInst;
+-				aWndClass.lpszClassName = SOUND_WINDOWCLASSA;
+-				if ( RegisterClassExA( &aWndClass ) )
+-				{
+-					WinSalSound::mnSoundState = SOUND_STATE_VALID;
+-					bRet = TRUE;
+-				}
+-			}
+-		}
+-
+-		if ( !bRet )
+-		{
+-			if ( WinSalSound::mhMCILib )
+-            {
+-				osl_unloadModule( WinSalSound::mhMCILib );
+-                WinSalSound::mhMCILib = NULL;
+-            }
+-
+-			WinSalSound::mnSoundState = SOUND_STATE_INVALID;
+-			ImplNotify( SOUND_NOTIFY_ERROR, SOUNDERR_CANNOT_LOAD_DRIVER );
+-		}
+-	}
+-	else if ( SOUND_STATE_VALID == WinSalSound::mnSoundState )
+-		bRet = TRUE;
+-
+-	if ( bRet )
+-	{
+-		// Create message window
+-		if ( aSalShlData.mbWNT )
+-		{
+-			mhSoundWnd = CreateWindowExW( 0, SOUND_WINDOWCLASSW, L"", 0, 0, 0, 0, 0,
+-										  HWND_DESKTOP, NULL, pData->mhInst, 0 );
+-		}
+-		else
+-		{
+-			mhSoundWnd = CreateWindowExA( 0, SOUND_WINDOWCLASSA, "", 0, 0, 0, 0, 0,
+-										  HWND_DESKTOP, NULL, pData->mhInst, 0 );
+-		}
+-		SetWindowLong( mhSoundWnd, 0, (LONG)this );
+-	}
+-	else
+-		mhSoundWnd = 0;
+-
+-	return bRet;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsValid()
+-{
+-	// Call Create in the main thread, because in the other case the
+-	// Sound stop, if the calling thread dies.
+-	WinSalInstance* pInst = GetSalData()->mpFirstInstance;
+-	if ( pInst )
+-	{
+-		return (BOOL)ImplSendMessage( pInst->mhComWnd, SAL_MSG_CREATESOUND,
+-									  0, (LPARAM)this );
+-	}
+-	else
+-		return ImplCreate();
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::ImplDestroy()
+-{
+-	if ( mhSoundWnd )
+-		DestroyWindow( mhSoundWnd );
+-	mhSoundWnd = 0;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Release()
+-{
+-	// free library
+-	if ( WinSalSound::mhMCILib )
+-    {
+-		osl_unloadModule( WinSalSound::mhMCILib );
+-        WinSalSound::mhMCILib = NULL;
+-    }
+-
+-	WinSalSound::mnSoundState = SOUND_STATE_UNLOADED;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::Init( const XubString& rSoundName, ULONG& rSoundLen )
+-{
+-	DWORD nMciErr = 0;
+-	rSoundLen = 0;
+-
+-	// clear old device
+-	if ( mnDeviceId )
+-	{
+-		Stop();
+-
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD) mhSoundWnd;
+-		nMciErr = MCIFNC( mnDeviceId, MCI_CLOSE, MCI_WAIT, (DWORD) &aGenericParams );
+-		mnDeviceId = 0;
+-	}
+-
+-	if ( rSoundName.Len() )
+-	{
+-		UINT nDeviceId;
+-		if ( aSalShlData.mbWNT )
+-		{
+-			MCI_OPEN_PARMSW aOpenParams;
+-			aOpenParams.dwCallback = (DWORD)mhSoundWnd;
+-			aOpenParams.lpstrElementName =  reinterpret_cast<LPCWSTR>(rSoundName.GetBuffer());
+-			aOpenParams.wDeviceID = 0;
+-			aOpenParams.lpstrDeviceType = 0;
+-			aOpenParams.lpstrAlias = 0;
+-			nMciErr = MCIFNC( 0, MCI_OPEN, MCI_WAIT | MCI_OPEN_ELEMENT, (DWORD)&aOpenParams );
+-			nDeviceId = aOpenParams.wDeviceID;
+-		}
+-		else
+-		{
+-			ByteString aSoundName( ImplSalGetWinAnsiString( rSoundName, TRUE ) );
+-			MCI_OPEN_PARMSA aOpenParams;
+-			aOpenParams.dwCallback = (DWORD)mhSoundWnd;
+-			aOpenParams.lpstrElementName = aSoundName.GetBuffer();
+-			aOpenParams.wDeviceID = 0;
+-			aOpenParams.lpstrDeviceType = 0;
+-			aOpenParams.lpstrAlias = 0;
+-			nMciErr = MCIFNC( 0, MCI_OPEN, MCI_WAIT | MCI_OPEN_ELEMENT, (DWORD)&aOpenParams );
+-			nDeviceId = aOpenParams.wDeviceID;
+-		}
+-
+-		if ( !nMciErr )
+-		{
+-			// set time format
+-			MCI_SET_PARMS aSetParams;
+-			mnDeviceId = nDeviceId;
+-			aSetParams.dwTimeFormat = MCI_FORMAT_MILLISECONDS;
+-			nMciErr = MCIFNC( mnDeviceId, MCI_SET, MCI_WAIT | MCI_SET_TIME_FORMAT, (DWORD)&aSetParams );
+-
+-			if ( !nMciErr )
+-			{
+-				// get length of sound
+-				MCI_STATUS_PARMS aStatus;
+-				aStatus.dwItem = MCI_STATUS_LENGTH;
+-				nMciErr = MCIFNC( mnDeviceId, MCI_STATUS, MCI_WAIT | MCI_STATUS_ITEM, (DWORD)&aStatus );
+-
+-				if ( !nMciErr )
+-					rSoundLen = (ULONG)aStatus.dwReturn;
+-			}
+-		}
+-	}
+-
+-	if ( nMciErr )
+-		ImplSetError( nMciErr );
+-
+-	return (nMciErr ? false : true);
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Play( ULONG nStartTime, ULONG nPlayLen, bool bLoop )
+-{
+-	if ( mnDeviceId )
+-	{
+-		DWORD nMciErr = 0;
+-
+-		if ( !mbPaused )
+-		{
+-			MCI_SEEK_PARMS aSeekParams;
+-			aSeekParams.dwCallback = (DWORD) mhSoundWnd;
+-			aSeekParams.dwTo = 0;
+-			nMciErr = MCIFNC( mnDeviceId, MCI_SEEK,MCI_WAIT | MCI_TO, (DWORD) &aSeekParams );
+-		}
+-
+-		mnStartTime = nStartTime;
+-		mnPlayLen = nPlayLen;
+-		mbLoop = bLoop;
+-		mbPaused = false;
+-
+-		if( !nMciErr )
+-		{
+-			MCI_PLAY_PARMS	aPlayParams;
+-			DWORD			nFlags = MCI_NOTIFY;
+-
+-			aPlayParams.dwCallback = (DWORD)mhSoundWnd;
+-
+-			if ( nStartTime )
+-			{
+-				aPlayParams.dwFrom = nStartTime;
+-				nFlags |= MCI_FROM;
+-			}
+-
+-			if ( nPlayLen != SOUND_PLAYALL )
+-			{
+-				aPlayParams.dwTo = nStartTime + nPlayLen;
+-				nFlags |= MCI_TO;
+-			}
+-
+-			nMciErr = MCIFNC( mnDeviceId, MCI_PLAY, nFlags, (DWORD) &aPlayParams );
+-
+-			if ( !nMciErr )
+-				mbPaused = FALSE;
+-		}
+-
+-		if ( nMciErr )
+-			ImplSetError( nMciErr );
+-	}
+-	else
+-		ImplSetError( MCIERR_INVALID_FILE );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Stop()
+-{
+-	if ( mnDeviceId )
+-	{
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD)mhSoundWnd;
+-		mbLoop = mbPaused = false;
+-		MCIFNC( mnDeviceId, MCI_STOP, MCI_WAIT, (DWORD) &aGenericParams );
+-	}
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Pause()
+-{
+-	if ( mnDeviceId )
+-	{
+-		MCI_GENERIC_PARMS aGenericParams;
+-		aGenericParams.dwCallback = (DWORD)mhSoundWnd;
+-		mbPaused = true;
+-		MCIFNC( mnDeviceId, MCI_PAUSE, MCI_WAIT, (DWORD) &aGenericParams );
+-	}
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-void WinSalSound::Continue()
+-{
+-    Play( 0, 0, mbLoop );
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsLoopMode() const
+-{
+-    return mbLoop;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsPlaying() const
+-{
+-    return !mbPaused;
+-}
+-
+-// ------------------------------------------------------------------------
+-
+-bool WinSalSound::IsPaused() const
+-{
+-    return mbPaused;
+-}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-xmlsecurity.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-xmlsecurity.diff
@@ -0,0 +1,4 @@
+--- xmlsecurity/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ xmlsecurity/prj/tests.lst	2007-09-07 13:38:28.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: xs   xmlsecurity\workben                                nmake - all xs_workben NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-toolkit.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-toolkit.diff
@@ -0,0 +1,35 @@
+--- toolkit/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ toolkit/prj/tests.lst	2007-09-07 16:51:31.000000000 +0200
+@@ -0,0 +1,9 @@
++#does not build: ti   toolkit\qa\complex\toolkit\interface_tests         nmake - all ti_qa_complex_toolkit_interface_tests NULL
++#does not build: ti   toolkit\qa\complex\toolkit                         nmake - all ti_qa_complex_toolkit NULL
++#does not build: ti   toolkit\qa\unoapi                                  nmake - all ti_qa_unoapi NULL
++
++# older tests:
++ti   toolkit\test\accessibility\ov                      nmake - all ti_test_accessibility_ov ti_util NULL
++ti   toolkit\test\accessibility                         nmake - all ti_test_accessibility ti_util NULL
++ti   toolkit\test\accessibility\tools                   nmake - all ti_test_accessibility_tools ti_util NULL
++#depends on svtools: ti   toolkit\workben                                    nmake - all ti_workben ti_util NULL
+--- toolkit/test/accessibility/makefile.mk	2007-01-25 14:17:59.000000000 +0100
++++ toolkit/test/accessibility/makefile.mk	2007-09-07 12:21:44.000000000 +0200
+@@ -125,3 +125,4 @@ run: all
+ runjar: all dist
+ 	$(JAVA) -classpath $(CLASSPATH) -jar AccessibilityWorkBench.jar -p $(PORT_NUMBER)
+ 
++check: all
+--- toolkit/test/accessibility/ov/makefile.mk	2007-01-25 14:18:24.000000000 +0100
++++ toolkit/test/accessibility/ov/makefile.mk	2007-09-07 12:21:55.000000000 +0200
+@@ -49,3 +49,5 @@ JFLAGS = -deprecation -classpath $(CLASS
+ 	$(JAVAC) $(JFLAGS) $<
+ 
+ ov : $(JAVA_FILES:b:+".class")
++
++check: all
+--- toolkit/test/accessibility/tools/makefile.mk	2007-01-25 14:18:37.000000000 +0100
++++ toolkit/test/accessibility/tools/makefile.mk	2007-09-07 12:22:01.000000000 +0200
+@@ -40,3 +40,5 @@ JFLAGS = -deprecation -classpath $(CLASS
+ 	$(JAVAC) $(JFLAGS) $<
+ 
+ tools : $(JAVA_FILES:b:+".class")
++
++check: all
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-r1c1.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-r1c1.diff
@@ -0,0 +1,1217 @@
+diff -urp officecfg.clean/registry/data/org/openoffice/Office/UI/CalcCommands.xcu officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+--- officecfg.clean/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2007-08-20 12:48:43.000000000 -0400
++++ officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2007-11-14 10:16:44.000000000 -0500
+@@ -1413,6 +1413,20 @@
+ 					<value xml:lang="en-US">R~ight-To-Left</value>
+ 				</prop>
+ 			</node>
++			<node oor:name=".uno:SheetUseR1C1" oor:op="replace">
++				<prop oor:name="Label" oor:type="xs:string">
++					<value xml:lang="en-US">Use R1~C1</value>
++					<value xml:lang="cs">Použij R1~C1</value>
++					<value xml:lang="de">R1~C1 verwenden</value>
++					<value xml:lang="es">Usar R1~C1</value>
++					<value xml:lang="fr">Utiliser R1~C1</value>
++					<value xml:lang="it">Utilizza R1~C1</value>
++					<value xml:lang="ja">R1~C1を使用する</value>
++					<value xml:lang="pt-BR">Usar R1~C1</value>
++					<value xml:lang="zh-CN">使用 R1C1(~C)</value>
++					<value xml:lang="zh-TW">使用 R1C1(~C)</value>
++				</prop>
++			</node>
+             <node oor:name=".uno:SetAnchorToPage" oor:op="replace">
+                 <prop oor:name="Label" oor:type="xs:string">
+                     <value xml:lang="en-US">Anchor: To P~age</value>
+Only in officecfg/registry/data/org/openoffice/Office/UI: CalcCommands.xcu.orig
+Only in officecfg: unxlngi6.pro
+diff -urp sc.clean/inc/scfuncs.hrc sc.r1c1/inc/scfuncs.hrc
+--- sc.clean/inc/scfuncs.hrc	2007-11-14 10:13:10.000000000 -0500
++++ sc/inc/scfuncs.hrc	2007-11-14 10:22:13.000000000 -0500
+@@ -300,6 +300,8 @@
+ #define HID_FUNC_TABELLEN			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+19)
+ #define HID_FUNC_HYPERLINK			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+20)
+ #define HID_FUNC_GETPIVOTDATA       (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+21)
++#define HID_FUNC_INDIREKT_XL			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+22)
++#define HID_FUNC_ADRESSE_XL			(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+23)
+ 
+ #define HID_FUNC_CODE				(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+1)
+ #define HID_FUNC_DM					(HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+2)
+diff -urp sc.clean/inc/sc.hrc sc/inc/sc.hrc
+--- sc.clean/inc/sc.hrc	2007-11-14 10:13:10.000000000 -0500
++++ sc/inc/sc.hrc	2007-11-14 10:22:13.000000000 -0500
+@@ -818,6 +818,7 @@
+ #define FID_TAB_APPEND			(TAB_POPUP_START+5)
+ #define FID_TAB_INDEX			(TAB_POPUP_START+6)
+ #define FID_TAB_RTL				(TAB_POPUP_START+7)
++#define FID_TAB_USE_R1C1		(TAB_POPUP_START+8)
+ 
+ #define TAB_POPUP_END			(DATA_MENU_END + 20)
+ 
+diff -urp sc.clean/sdi/docsh.sdi sc/sdi/docsh.sdi
+--- sc.clean/sdi/docsh.sdi	2007-11-14 10:13:10.000000000 -0500
++++ sc/sdi/docsh.sdi	2007-11-14 10:22:13.000000000 -0500
+@@ -68,6 +68,7 @@ interface TableSelection
+ 	FID_DELETE_TABLE	[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ 	FID_TAB_RENAME		[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ 	FID_TAB_RTL			[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
++	FID_TAB_USE_R1C1	[ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ 
+ 	SID_TABLE_ACTIVATE	[ ExecMethod = Execute; ]
+ }
+diff -urp sc.clean/sdi/scalc.sdi sc/sdi/scalc.sdi
+--- sc.clean/sdi/scalc.sdi	2007-11-14 10:13:10.000000000 -0500
++++ sc/sdi/scalc.sdi	2007-11-14 10:22:13.000000000 -0500
+@@ -7706,3 +7706,31 @@ SfxBoolItem SheetRightToLeft FID_TAB_RTL
+ 	GroupId = GID_FORMAT;
+ ]
+ 
++
++//--------------------------------------------------------------------------
++SfxBoolItem SheetUseR1C1	FID_TAB_USE_R1C1
++
++[
++	/* flags */
++	AutoUpdate	= FALSE,
++	Cachable = Cachable,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = FALSE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	Readonly = FALSE,
++
++	/* config */
++	AccelConfig = TRUE,
++	MenuConfig = TRUE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = TRUE,
++	GroupId = GID_FORMAT;
++]
++
+diff -urp sc.clean/source/core/inc/interpre.hxx sc/source/core/inc/interpre.hxx
+--- sc.clean/source/core/inc/interpre.hxx	2007-11-14 10:13:15.000000000 -0500
++++ sc/source/core/inc/interpre.hxx	2007-11-14 10:22:17.000000000 -0500
+@@ -437,7 +437,9 @@ void ScDBStdDevP();
+ void ScDBVar();
+ void ScDBVarP();
+ void ScIndirect();
++void ScIndirectXL();
+ void ScAddressFunc();
++void ScAddressXL();
+ void ScOffset();
+ void ScIndex();
+ void ScMultiArea();
+diff -urp sc.clean/source/core/src/compiler.src sc/source/core/src/compiler.src
+--- sc.clean/source/core/src/compiler.src	2007-11-14 10:13:15.000000000 -0500
++++ sc/source/core/src/compiler.src	2007-11-14 10:22:17.000000000 -0500
+@@ -771,10 +771,22 @@ Resource RID_SC_FUNCTION_NAMES
+ 	{
+ 		Text [ en-US ] = "INDIRECT" ;
+ 	};
++	String SC_OPCODE_INDIRECT_XL
++	{
++		Text [ de ] = "INDIREKT_XL" ;
++		Text [ en-US ] = "INDIRECT_XL" ;
++		Text [ x-comment ] = " ";
++	};
+ 	String SC_OPCODE_ADDRESS
+ 	{
+ 		Text [ en-US ] = "ADDRESS" ;
+ 	};
++	String SC_OPCODE_ADDRESS_XL
++	{
++		Text [ de ] = "ADRESSE_XL" ;
++		Text [ en-US ] = "ADDRESS_XL" ;
++		Text [ x-comment ] = " ";
++	};
+ 	String SC_OPCODE_MATCH
+ 	{
+ 		Text [ en-US ] = "MATCH" ;
+@@ -1372,7 +1384,9 @@ Resource RID_SC_FUNCTION_NAMES_ENGLISH
+ 	String SC_OPCODE_DB_VAR { Text = "DVAR" ; };
+ 	String SC_OPCODE_DB_VAR_P { Text = "DVARP" ; };
+ 	String SC_OPCODE_INDIRECT { Text = "INDIRECT" ; };
++	String SC_OPCODE_INDIRECT_XL { Text = "INDIRECT_XL" ; };
+ 	String SC_OPCODE_ADDRESS { Text = "ADDRESS" ; };
++	String SC_OPCODE_ADDRESS_XL { Text = "ADDRESS_XL" ; };
+ 	String SC_OPCODE_MATCH { Text = "MATCH" ; };
+ 	String SC_OPCODE_COUNT_EMPTY_CELLS { Text = "COUNTBLANK" ; };
+ 	String SC_OPCODE_COUNT_IF { Text = "COUNTIF" ; };
+diff -urp sc.clean/source/core/tool/address.cxx sc/source/core/tool/address.cxx
+--- sc.clean/source/core/tool/address.cxx	2007-11-14 10:13:15.000000000 -0500
++++ sc/source/core/tool/address.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -156,7 +156,7 @@ lcl_XL_ParseSheetRef( const sal_Unicode 
+         while( 1 )
+         {
+             const sal_Unicode uc = *p;
+-            if( CharClass::isAsciiAlpha( uc ) || uc == '_' )
++            if(  (uc < 128 ? CharClass::isAsciiAlpha( uc ) : ScGlobal::pCharClass->isLetter( uc )) || uc == '_' )
+             {
+                 if( only_digits && p != start &&
+                    (uc == 'e' || uc == 'E' ) )
+diff -urp sc.clean/source/core/tool/interpr1.cxx sc/source/core/tool/interpr1.cxx
+--- sc.clean/source/core/tool/interpr1.cxx	2007-11-14 10:13:15.000000000 -0500
++++ sc/source/core/tool/interpr1.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -5672,7 +5672,7 @@ void ScInterpreter::ScDBVarP()
+ }
+ 
+ 
+-#if 0
++#if 1
+ // This could be the code to handle Excel notation. However, we don't offer it
+ // (yet) at UI level and documents must not use it, as it isn't clarified how
+ // to handle interoperability issues.
+@@ -5769,7 +5769,7 @@ void ScInterpreter::ScAddressFunc()
+ }
+ 
+ 
+-#if 0
++#if 1
+ // This could be the code to handle Excel notation. However, we don't offer it
+ // (yet) at UI level and documents must not use it, as it isn't clarified how
+ // to handle interoperability issues.
+diff -urp sc.clean/source/core/tool/interpr4.cxx sc/source/core/tool/interpr4.cxx
+--- sc.clean/source/core/tool/interpr4.cxx	2007-11-14 10:13:15.000000000 -0500
++++ sc/source/core/tool/interpr4.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -3437,7 +3437,9 @@ StackVar ScInterpreter::Interpret()
+                 case ocDBVar            : ScDBVar();                    break;
+                 case ocDBVarP           : ScDBVarP();                   break;
+                 case ocIndirect         : ScIndirect();                 break;
++                case ocIndirectXL       : ScIndirectXL();               break;
+                 case ocAddress          : ScAddressFunc();              break;
++				case ocAddressXL        : ScAddressXL();                break;
+                 case ocMatch            : ScMatch();                    break;
+                 case ocCountEmptyCells  : ScCountEmptyCells();          break;
+                 case ocCountIf          : ScCountIf();                  break;
+diff -urp sc.clean/source/filter/excel/excform.cxx sc/source/filter/excel/excform.cxx
+--- sc.clean/source/filter/excel/excform.cxx	2007-11-14 10:13:16.000000000 -0500
++++ sc/source/filter/excel/excform.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -1592,12 +1592,6 @@ void ExcelToSc::DoMulArgs( DefTokenId eI
+ 		if( eId == ocPercentrank && nAnz == 3 )
+ 			nSkipEnd = 0;		// letzten Parameter bei Bedarf weglassen
+ 
+-		else if( eId == ocIndirect && nAnz == 2 )
+-			nSkipEnd = 0;
+-
+-		else if( eId == ocAddress && nAnz > 3 )
+-			nNull = nAnz - 4;
+-
+ 		// Joost-Spezialfaelle
+ 		else if( eId == ocIf )
+ 		{
+diff -urp sc.clean/source/filter/excel/excimp8.cxx sc/source/filter/excel/excimp8.cxx
+--- sc.clean/source/filter/excel/excimp8.cxx	2007-11-14 10:13:16.000000000 -0500
++++ sc/source/filter/excel/excimp8.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -193,6 +193,12 @@ void ImportExcel8::Iteration( void )
+ }
+ 
+ 
++void ImportExcel8::RefMode( void )
++{
++	pD->SetAddressConvention( (aIn.ReaduInt16() == 0)
++				  ? ScAddress::CONV_XL_R1C1
++				  : ScAddress::CONV_OOO );
++}
+ void ImportExcel8:: WinProtection( void )
+ {
+     if( aIn.ReaduInt16() != 0 )
+diff -urp sc.clean/source/filter/excel/read.cxx sc/source/filter/excel/read.cxx
+--- sc.clean/source/filter/excel/read.cxx	2007-11-14 10:13:16.000000000 -0500
++++ sc/source/filter/excel/read.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -1128,6 +1128,7 @@ FltError ImportExcel8::Read( void )
+                     case 0x0206:
+                     case 0x0406:    Formula25();            break;  // FORMULA      [ 2  5   ]
+                     case 0x000C:    Calccount();            break;  // CALCCOUNT
++					case 0x000F:    RefMode();				break;	// REFMODE
+                     case 0x0010:    Delta();                break;  // DELTA
+                     case 0x0011:    Iteration();            break;  // ITERATION
+                     case 0x001C:    Note();                 break;  // NOTE         [ 2345   ]
+diff -urp sc.clean/source/filter/excel/xlformula.cxx sc/source/filter/excel/xlformula.cxx
+--- sc.clean/source/filter/excel/xlformula.cxx	2007-11-14 10:13:16.000000000 -0500
++++ sc/source/filter/excel/xlformula.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -189,7 +189,8 @@ static const XclFunctionInfo saFuncTable
+     { ocLIA,                142,    3,  3,  V, { V }, 0, 0 },
+     { ocDIA,                143,    4,  4,  V, { V }, 0, 0 },
+     { ocGDA,                144,    4,  5,  V, { V }, 0, 0 },
+-    { ocIndirect,           148,    1,  2,  R, { V }, EXC_FUNCFLAG_VOLATILE, 0 },
++    { ocIndirectXL,         148,    1,  2,  R, { V }, EXC_FUNCFLAG_VOLATILE, 0 },
++    { ocIndirect,           148,    1,  2,  R, { V }, EXC_FUNCFLAG_VOLATILE | EXC_FUNCFLAG_EXPORTONLY, 0 },
+     { ocClean,              162,    1,  1,  V, { V }, 0, 0 },
+     { ocMatDet,             163,    1,  1,  V, { A }, 0, 0 },
+     { ocMatInv,             164,    1,  1,  A, { A }, 0, 0 },
+@@ -222,7 +223,8 @@ static const XclFunctionInfo saFuncTable
+     { ocRKP,                51,     1,  4,  A, { R, R, V, V }, 0, 0 },    // BIFF2: 1-2, BIFF3: 1-4
+     { ocGrowth,             52,     1,  4,  A, { R, R, R, V }, 0, 0 },    // BIFF2: 1-3, BIFF3: 1-4
+     { ocTrunc,              197,    1,  2,  V, { V }, 0, 0 },             // BIFF2: 1,   BIFF3: 1-2
+-    { ocAddress,            219,    2,  5,  V, { V, V, V, E, V }, 0, 0 },
++    { ocAddressXL,          219,    2,  5,  V, { V, V, V, V, V }, 0, 0 },
++    { ocAddress,            219,    2,  5,  V, { V, V, V, E, V }, EXC_FUNCFLAG_EXPORTONLY, 0 },
+     { ocGetDiffDate360,     220,    2,  2,  V, { V, V, C, I }, 0, 0 },
+     { ocGetActDate,         221,    0,  0,  V, {}, EXC_FUNCFLAG_VOLATILE, 0 },
+     { ocVBD,                222,    5,  7,  V, { V }, 0, 0 },
+diff -urp sc.clean/source/filter/inc/excimp8.hxx sc/source/filter/inc/excimp8.hxx
+--- sc.clean/source/filter/inc/excimp8.hxx	2007-11-14 10:13:16.000000000 -0500
++++ sc/source/filter/inc/excimp8.hxx	2007-11-14 10:22:17.000000000 -0500
+@@ -76,6 +76,7 @@ class ImportExcel8 : public ImportExcel
+ 
+ 		void					Calccount( void );				// 0x0C
+         void                    Precision( void );              // 0x0E
++		void					RefMode( void );				// 0x0F
+ 		void					Delta( void );					// 0x10
+ 		void					Iteration( void );				// 0x11
+ 		void					Note( void );					// 0x1C
+diff -urp sc.clean/source/filter/lotus/lotform.cxx sc/source/filter/lotus/lotform.cxx
+--- sc.clean/source/filter/lotus/lotform.cxx	2007-11-14 10:13:16.000000000 -0500
++++ sc/source/filter/lotus/lotform.cxx	2007-11-14 10:22:17.000000000 -0500
+@@ -1056,7 +1056,7 @@ DefTokenId LotusToSc::IndexToToken( BYTE
+ 		ocTrue,				//  112 W()
+ 		ocExact,			//  113 Exact()
+ 		ocNoName,			//  114 Call()
+-		ocIndirect,			//  115 @@()
++		ocIndirectXL,		//  115 @@()
+ 		ocZins,				//  116 Rate()
+ 		ocNoName,			//  117 Term()
+ 		ocNoName,			//  118 Cterm()
+@@ -1587,7 +1587,7 @@ DefTokenId LotusToSc::IndexToTokenWK123(
+ 		ocNoName,			//  112 W()
+ 		ocExact,			//  113 Exact()
+ 		ocNoName,			//  114 Call()
+-		ocIndirect,			//  115 @@()
++		ocIndirectXL,		//  115 @@()
+ 		ocZins,				//  116 Rate()
+ 		ocNoName,			//  117 Term()
+ 		ocNoName,			//  118 Cterm()
+diff -urp sc.clean/source/ui/src/scfuncs.src sc/source/ui/src/scfuncs.src
+--- sc.clean/source/ui/src/scfuncs.src	2007-11-14 10:13:11.000000000 -0500
++++ sc/source/ui/src/scfuncs.src	2007-11-14 10:22:14.000000000 -0500
+@@ -6652,6 +6652,748 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
+ 			Text [ en-US ] = "The spreadsheet name of the cell reference." ;
+ 		};
+ 	};
++	Resource SC_OPCODE_ADDRESS_XL
++	{
++		String 1 // Description
++		{
++			Text [ en-US ] = "Returns the reference to a cell as text." ;
++			Text[ de ] = "Gibt die Referenz auf eine Zelle als Text zurück.";
++			Text [ af ] = "Lewer die verwysing op na 'n sel as teks." ;
++			Text [ ar ] = "تحدد مرجع خلية كنص." ;
++			Text [ as-IN ] = "টেক্সট হিচাপে এটা কক্ষলৈ প্ৰসংগটো." ;
++			Text [ be-BY ] = "Вяртае спасылку на клетку ў выглядзе тэксту." ;
++			Text [ bg ] = "Връща обръщението към клетка като текст." ;
++			Text [ br ] = "Reiñ a ra dave ur c'hellig, e furm un destenn." ;
++			Text [ bs ] = "Vraća referencu na ćeliju kao tekst." ;
++			Text [ ca ] = "Retorna la referència a una cel·la com a text." ;
++			Text [ cs ] = "Vrátí odkaz na buňku jako text." ;
++			Text [ cy ] = "Dychwelyd cyfeiriad i gell fel testun." ;
++			Text [ da ] = "Returnerer en reference til en celle som tekst." ;
++			Text [ el ] = "Ορίζει την παραπομπή σε ένα κελί ως κείμενο." ;
++			Text [ en-GB ] = "Returns the reference to a cell as text." ;
++			Text [ en-ZA ] = "Returns the reference to a cell as text." ;
++			Text [ eo ] = "Liveras la referencon al ĉelo kiel teksto." ;
++			Text [ es ] = "Devuelve una referencia de celda con formato de texto." ;
++			Text [ et ] = "Tagastab teksti kujul viite lahtrile." ;
++			Text [ fi ] = "Palauttaa soluviitteen tekstinä." ;
++			Text [ fr ] = "Donne la référence, sous forme de texte, d'une cellule." ;
++			Text [ ga ] = "Returns the reference to a cell as text." ;
++			Text [ gu ] = "ખાનાને લખાણ તરીકે સંદર્ભ આપે છે." ;
++			Text [ gu-IN ] = "ખાનાને લખાણ તરીકે સંદર્ભ આપે છે." ;
++			Text [ he ] = ".מחזירה כטקסט את ההפניה לתא מסויים" ;
++			Text [ hi-IN ] = "संदर्भ को पाठ जैसे कोष्ठ में वापस करता है." ;
++			Text [ hr ] = "Vraća referencu na ćeliju kao tekst." ;
++			Text [ hu ] = "Szöveges formában ad meg egy cellahivatkozást." ;
++			Text [ it ] = "Restituisce il riferimento ad una cella come testo." ;
++			Text [ ja ] = "数値で指定したセル参照を文字列で返します。" ;
++			Text [ ka ] = "ტექსტის სახით აბრუნებს ყველა უჯრაზე დამოწმებას." ;
++			Text [ km ] = "ត្រឡប់​សេចក្តី​យោង​​ទៅ​ក្រឡា​ជា​អត្ថបទ ​។" ;
++			Text [ ko ] = "셀 참조를 텍스트로 구합니다." ;
++			Text [ lt ] = "Rezultatas yra nuoroda į langelį tekstu" ;
++			Text [ mk ] = "Ја враќа референцијата до ќелија како текст." ;
++			Text [ ml-IN ] = "സെല്ലിനുള്ള റഫറന്സ്  ടെക്സ്റ്റായി തിരികെ നല്കും." ;
++			Text [ mr-IN ] = "कक्षासाठी मजकूराच्या रुपात संदर्भ परत देतो. " ;
++			Text [ nb ] = "Gir cellereferansen som tekst" ;
++			Text [ ne ] = "पाठको रूपमा कक्षलाई सन्दर्भ फर्काउँछ ।" ;
++			Text [ nl ] = "Interpreteert verwijzing naar een cel als tekst" ;
++			Text [ nn ] = "Gir cellereferansen som tekst." ;
++			Text [ nr ] = "Buyisa ireferensi eselini njengetheksti." ;
++			Text [ ns ] = "Boetša tšhupetšo go sele bjalo ka temana." ;
++			Text [ or-IN ] = "ଟେଷ୍ଟ୍ ପରି ଗୋଟିଏ କୋଷର ରେଫରେନ୍ସ୍ କୁ ଫେରାଇଆଣ୤" ;
++			Text [ pa-IN ] = "ਸੈਲ ਨੂੰ ਹਵਾਲਾ ਪਾਠ ਦੇ ਤੌਰ ਤੇ ਦਿਓ।" ;
++			Text [ pl ] = "Zwraca odwołanie do komórki jako tekst." ;
++			Text [ pt ] = "Devolve a referência de uma célula em forma de texto." ;
++			Text [ pt-BR ] = "Retorna a referência a uma célula como texto." ;
++			Text [ ru ] = "Возвращает ссылку на ячейку по номерам строки и столбца." ;
++			Text [ rw ] = "Isohora indango ku kadirishya nk'umwandiko." ;
++			Text [ sh-YU ] = "Vreće referencu na ćeliju kao tekst." ;
++			Text [ sk ] = "Vracia odkaz na bunku ako text." ;
++			Text [ sl ] = "Vrne sklic na celico kot besedilo." ;
++			Text [ sr-CS ] = "Вреће референцу на ћелију као текст." ;
++			Text [ ss ] = "Kubuyiselwa irefarensi kusel njengembhalo." ;
++			Text [ st ] = "E kgutlisa referense ya sele jwale ka mongolo." ;
++			Text [ sv ] = "Bestämmer referensen till en cell som text." ;
++			Text [ sw-TZ ] = "Hurudisha rejeo kwenye seli kama matini." ;
++			Text [ ta ] = "சிற்றறைக்கான தொடர்பை உரையாக அளிக்கிறது ." ;
++			Text [ ta-IN ] = "சிற்றறைக்கான தொடர்பை உரையாக அளிக்கிறது ." ;
++			Text [ te-IN ] = "అరకు పాఠముగా నివేదనను ఇస్తుంది " ;
++			Text [ tg ] = "Ҳаволаи чашмакро ҳамчун матн бармегардонад." ;
++			Text [ th ] = "ส่งกลับการอ้างอิงไปยังช่องเป็นข้อความ" ;
++			Text [ tn ] = "Dipoelo tsa tshwantshanyo ya disele kago." ;
++			Text [ tr ] = "Bir hücreye alınan referansı metin olarak döndürür." ;
++			Text [ ts ] = "Ku vuyisa nkombeketo eka sele tanihi xitsariwa." ;
++			Text [ uk ] = "Повертає посилання до комірки як текст." ;
++			Text [ ur-IN ] = "حوالہ سیل كو یا متن كوواپس كرو۔" ;
++			Text [ ve ] = "Humisela tshibulwa kha ḽiṅwalwa la sele." ;
++			Text [ vi ] = "Trả về tham chiếu tới một ô dạng văn bản." ;
++			Text [ xh ] = "Kubuyiswa isalathiso kwiseli njengesiqendu." ;
++			Text [ zh-CN ] = "用文字来确定一个单元格的引用地址。" ;
++			Text [ zh-TW ] = "確定一個當作文字的儲存格的參照。" ;
++			Text [ zu ] = "Ibuyisa okukhomba igumbi njengombhalo." ;
++			Text [ x-comment ] = " ";
++		};
++		ExtraData =
++		{
++			ID_FUNCTION_GRP_TABLE;
++			U2S( HID_FUNC_ADRESSE_XL );
++			5;	0;	0;	1;	1;	1;
++		};
++		String 2 // Name of Parameter 1
++		{
++			Text [ de ] = "Zeile" ;
++			Text [ en-US ] = "row" ;
++			Text [ af ] = "ry" ;
++			Text [ ar ] = "row_num" ;
++			Text [ as-IN ] = "শাৰী" ;
++			Text [ be-BY ] = "row" ;
++			Text [ bg ] = "ред" ;
++			Text [ br ] = "Linenn" ;
++			Text [ bs ] = "red" ;
++			Text [ ca ] = "fila" ;
++			Text [ cs ] = "řádek" ;
++			Text [ cy ] = "rhes" ;
++			Text [ da ] = "Række" ;
++			Text [ el ] = "γραμμή" ;
++			Text [ en-GB ] = "row" ;
++			Text [ en-ZA ] = "row" ;
++			Text [ eo ] = "row" ;
++			Text [ es ] = "núm_fila" ;
++			Text [ et ] = "rida" ;
++			Text [ fa ] = "سطر" ;
++			Text [ fi ] = "rivi" ;
++			Text [ fr ] = "Ligne" ;
++			Text [ ga ] = "ró" ;
++			Text [ gu ] = "હરોળ" ;
++			Text [ gu-IN ] = "હરોળ" ;
++			Text [ he ] = "שורה" ;
++			Text [ hi-IN ] = "row" ;
++			Text [ hr ] = "redak" ;
++			Text [ hu ] = "sor" ;
++			Text [ it ] = "Riga" ;
++			Text [ ja ] = "行" ;
++			Text [ ka ] = "რიგი" ;
++			Text [ km ] = "ជួរដេក" ;
++			Text [ ko ] = "행" ;
++			Text [ ku ] = "Rêzik" ;
++			Text [ lt ] = "eilutė" ;
++			Text [ mk ] = "ред" ;
++			Text [ ml-IN ] = "നിര" ;
++			Text [ mr-IN ] = "रांग" ;
++			Text [ nb ] = "rad" ;
++			Text [ ne ] = "पङ्क्ति" ;
++			Text [ nl ] = "Rij" ;
++			Text [ nn ] = "rad" ;
++			Text [ nr ] = "rhemo" ;
++			Text [ ns ] = "mothalo" ;
++			Text [ or-IN ] = "ପଂକ୍ତି" ;
++			Text [ pa-IN ] = "ਕਤਾਰ" ;
++			Text [ pl ] = "nr_wiersza" ;
++			Text [ pt ] = "Núm_linha" ;
++			Text [ pt-BR ] = "linha" ;
++			Text [ ru ] = "строка" ;
++			Text [ rw ] = "urubariro" ;
++			Text [ sh-YU ] = "red" ;
++			Text [ sk ] = "riadok" ;
++			Text [ sl ] = "vrstica" ;
++			Text [ sr-CS ] = "ред" ;
++			Text [ ss ] = "irowu" ;
++			Text [ st ] = "mola" ;
++			Text [ sv ] = "rad" ;
++			Text [ sw-TZ ] = "safu-mlalo" ;
++			Text [ ta ] = "வரிசை" ;
++			Text [ ta-IN ] = "வரிசை" ;
++			Text [ te-IN ] = "అడ్డు వరుస" ;
++			Text [ tg ] = "сатр" ;
++			Text [ th ] = "แถว" ;
++			Text [ tr ] = "Satır" ;
++			Text [ ts ] = "rixaxa" ;
++			Text [ uk ] = "рядок" ;
++			Text [ ur-IN ] = "سطر" ;
++			Text [ ve ] = "mutaladzi" ;
++			Text [ vi ] = "hàng" ;
++			Text [ xh ] = "uluhlu oluxwesileyo" ;
++			Text [ zh-CN ] = "row_num" ;
++			Text [ zh-TW ] = "row_num" ;
++			Text [ zu ] = "umugqa" ;
++			Text [ x-comment ] = " ";
++		};
++		String 3 // Description of Parameter 1
++		{
++			Text [ de ] = "Die Zeilennummer der Zelle." ;
++			Text [ en-US ] = "The row number of the cell." ;
++			Text [ af ] = "Die rynommer van die sel." ;
++			Text [ ar ] = "رقم الصف الخاص بالخلية." ;
++			Text [ as-IN ] = "কক্ষটোৰ শাৰী সংখ্যাটো." ;
++			Text [ be-BY ] = "Нумар радка клеткі." ;
++			Text [ bg ] = "Номерът на реда на клетката." ;
++			Text [ br ] = "Niverenn linenn ar gellig." ;
++			Text [ bs ] = "Broj reda ćelije." ;
++			Text [ ca ] = "Número de fila de la cel·la." ;
++			Text [ cs ] = "Číslo řádku buňky." ;
++			Text [ cy ] = "Rhif rhes cell." ;
++			Text [ da ] = "Cellens rækkenummer." ;
++			Text [ el ] = "Ο αριθμός γραμμής του κελιού." ;
++			Text [ en-GB ] = "The row number of the cell." ;
++			Text [ en-ZA ] = "The row number of the cell." ;
++			Text [ eo ] = "La vica numero de la ĉelo." ;
++			Text [ es ] = "Número de fila de la celda." ;
++			Text [ et ] = "Lahtri rea number." ;
++			Text [ fa ] = "شمارهٔ سطر خانه" ;
++			Text [ fi ] = "Solun rivinumero." ;
++			Text [ fr ] = "Le numéro de ligne de la cellule." ;
++			Text [ ga ] = "Uimhir ró na cille." ;
++			Text [ gu ] = "ખાનાનો હરોળ ક્રમાંક." ;
++			Text [ gu-IN ] = "ખાનાનો હરોળ ક્રમાંક." ;
++			Text [ he ] = "מספר השורה של התא.‏" ;
++			Text [ hi-IN ] = "कोष्ठ का पंक्ति संख्या." ;
++			Text [ hr ] = "Broj reda ćelije." ;
++			Text [ hu ] = "A cella sorszáma." ;
++			Text [ it ] = "Numero di riga della cella." ;
++			Text [ ja ] = "セルの行番号。" ;
++			Text [ ka ] = "უჯრის რიგის ნომერი." ;
++			Text [ km ] = "ចំនួន​ជួរ​ដេក​នៃ​ក្រឡា ។" ;
++			Text [ ko ] = "셀의 행 번호입니다." ;
++			Text [ ku ] = "Hejmara rêzikên şanikê." ;
++			Text [ lt ] = "Langelio eilutės numeris." ;
++			Text [ mk ] = "Бројот на редот на ќелијата." ;
++			Text [ ml-IN ] = "സെല്ലിലെ നിരകളുടെ എണ്ണം" ;
++			Text [ mr-IN ] = "कक्षचा रांग क्रमांक." ;
++			Text [ nb ] = "Cellens radnummer." ;
++			Text [ ne ] = "कक्षको पङ्क्ति नम्बर" ;
++			Text [ nl ] = "Het rijnummer van de cel." ;
++			Text [ nn ] = "Radnummeret til cella." ;
++			Text [ nr ] = "Inomboro yerhemo yeseli." ;
++			Text [ ns ] = "Nomoro ya mothaladi ya sele." ;
++			Text [ or-IN ] = " କୋଷର ପଂକ୍ତି ସଂଖ୍ଯା୤" ;
++			Text [ pa-IN ] = "ਸੈੱਲ ਦਾ ਕਤਾਰ ਅੰਕ ਹੈ।" ;
++			Text [ pl ] = "Numer wiersza komórki." ;
++			Text [ pt ] = "O número da linha da célula." ;
++			Text [ pt-BR ] = "O número de linha da célula." ;
++			Text [ ru ] = "Номер строки ячейки." ;
++			Text [ rw ] = "Nomero y'urubariro rw'akadirishya." ;
++			Text [ sh-YU ] = "Broj reda ćelije" ;
++			Text [ sk ] = "Číslo riadka bunky." ;
++			Text [ sl ] = "Številka vrstice celice." ;
++			Text [ sr-CS ] = "Број реда ћелије" ;
++			Text [ ss ] = "Inamba yerowu yeseli." ;
++			Text [ st ] = "Nomoro ya mola ya sele." ;
++			Text [ sv ] = "Radnumret för cellen." ;
++			Text [ sw-TZ ] = "Namba ya safu-mlalo ya seli." ;
++			Text [ ta ] = "சிற்றறையின் வரிசை எண்." ;
++			Text [ ta-IN ] = "சிற்றறையின் வரிசை எண்." ;
++			Text [ te-IN ] = "అర యొక్క అడ్డు వరుస సంఖ్య" ;
++			Text [ tg ] = "Рақами сатри чашмак." ;
++			Text [ th ] = "หมายเลขแถวของช่อง" ;
++			Text [ tn ] = "Mola wa palo ya sele." ;
++			Text [ tr ] = "Hücrenin satır numarası." ;
++			Text [ ts ] = "Nomboro ya rixaxa ra sele." ;
++			Text [ uk ] = "Номер рядка комірки." ;
++			Text [ ur-IN ] = "  سیل کی سطرنمبر" ;
++			Text [ ve ] = "Nomboro ya mutaladzi ya sele." ;
++			Text [ vi ] = "Số hiệu hàng của ô." ;
++			Text [ xh ] = "Inani loluhlu oluxwesileyo leseli." ;
++			Text [ zh-CN ] = "单元格的行号" ;
++			Text [ zh-TW ] = "儲存格列號" ;
++			Text [ zu ] = "Inombolo yomugqa wegumbi." ;
++			Text [ x-comment ] = " ";
++		};
++		String 4 // Name of Parameter 2
++		{
++			Text [ de ] = "Spalte" ;
++			Text [ en-US ] = "column" ;
++			Text [ af ] = "kolom" ;
++			Text [ ar ] = "column_num" ;
++			Text [ as-IN ] = "স্তম্ভ" ;
++			Text [ be-BY ] = "column" ;
++			Text [ bg ] = "колона" ;
++			Text [ br ] = "Bann" ;
++			Text [ bs ] = "kolona" ;
++			Text [ ca ] = "columna" ;
++			Text [ cs ] = "sloupec" ;
++			Text [ cy ] = "colofn" ;
++			Text [ da ] = "Kolonne" ;
++			Text [ el ] = "στήλη" ;
++			Text [ en-GB ] = "column" ;
++			Text [ en-ZA ] = "column" ;
++			Text [ eo ] = "column" ;
++			Text [ es ] = "Columna" ;
++			Text [ et ] = "veerg" ;
++			Text [ fa ] = "ستون" ;
++			Text [ fi ] = "sarake" ;
++			Text [ fr ] = "Colonne" ;
++			Text [ ga ] = "colún" ;
++			Text [ gu ] = "સ્તંભ" ;
++			Text [ gu-IN ] = "સ્તંભ" ;
++			Text [ he ] = "עמודה" ;
++			Text [ hi-IN ] = "column" ;
++			Text [ hr ] = "stupac" ;
++			Text [ hu ] = "oszlop" ;
++			Text [ it ] = "Colonna" ;
++			Text [ ja ] = "列" ;
++			Text [ ka ] = "სვეტი" ;
++			Text [ km ] = "ជួរឈរ" ;
++			Text [ ko ] = "단" ;
++			Text [ ku ] = "Stûn" ;
++			Text [ lt ] = "stulpelis" ;
++			Text [ mk ] = "колона" ;
++			Text [ mr-IN ] = "स्तंभ" ;
++			Text [ nb ] = "kolonne" ;
++			Text [ ne ] = "स्तम्भ" ;
++			Text [ nl ] = "Kolom" ;
++			Text [ nn ] = "kolonne" ;
++			Text [ nr ] = "kholomu" ;
++			Text [ ns ] = "kholomo" ;
++			Text [ or-IN ] = "ସ୍ତମ୍ଭ" ;
++			Text [ pa-IN ] = "ਕਾਲਮ" ;
++			Text [ pl ] = "Kolumna" ;
++			Text [ pt ] = "Núm_coluna" ;
++			Text [ pt-BR ] = "coluna" ;
++			Text [ ru ] = "столбец" ;
++			Text [ rw ] = "inkingi" ;
++			Text [ sh-YU ] = "kolona" ;
++			Text [ sk ] = "stĺpec" ;
++			Text [ sl ] = "stolpec" ;
++			Text [ sr-CS ] = "колона" ;
++			Text [ ss ] = "ikholamu" ;
++			Text [ st ] = "kholomo" ;
++			Text [ sv ] = "kolumn" ;
++			Text [ sw-TZ ] = "safu-wima" ;
++			Text [ ta ] = "நெடுவரிசை" ;
++			Text [ ta-IN ] = "நெடுவரிசை" ;
++			Text [ te-IN ] = "నిలువు వరుస" ;
++			Text [ tg ] = "сутун" ;
++			Text [ th ] = "คอลัมน์" ;
++			Text [ tr ] = "Sütun" ;
++			Text [ ts ] = "kholomu" ;
++			Text [ uk ] = "колонка" ;
++			Text [ ur-IN ] = "کالم" ;
++			Text [ ve ] = "khoḽomu" ;
++			Text [ vi ] = "cột" ;
++			Text [ xh ] = "uluhlu olwehlayo" ;
++			Text [ zh-CN ] = "column_num" ;
++			Text [ zh-TW ] = "column_num" ;
++			Text [ zu ] = "uhlu" ;
++			Text [ x-comment ] = " ";
++		};
++		String 5 // Description of Parameter 2
++		{
++			Text [ de ] = "Die Spaltennummer der Zelle." ;
++			Text [ en-US ] = "The column number of the cell." ;
++			Text [ af ] = "Die kolomnommer van die sel." ;
++			Text [ ar ] = "رقم عمود الخلية." ;
++			Text [ as-IN ] = "কক্ষটোৰ স্তম্ভ সংখ্যাটো." ;
++			Text [ be-BY ] = "Нумар калонкі клеткі." ;
++			Text [ bg ] = "Номерът на колоната на клетката." ;
++			Text [ br ] = "Niverenn vann ar gellig." ;
++			Text [ bs ] = "Broj kolone ćelije." ;
++			Text [ ca ] = "Número de columna de la cel·la." ;
++			Text [ cs ] = "Číslo sloupce buňky." ;
++			Text [ cy ] = "Rhif colofn cell." ;
++			Text [ da ] = "Cellens kolonnenummer." ;
++			Text [ el ] = "Ο αριθμός στήλης του κελιού." ;
++			Text [ en-GB ] = "The column number of the cell." ;
++			Text [ en-ZA ] = "The column number of the cell." ;
++			Text [ eo ] = "La kolumna numero de la ĉelo." ;
++			Text [ es ] = "Número de columna de la celda." ;
++			Text [ et ] = "Lahtri veeru number." ;
++			Text [ fa ] = "شمارهٔ ستون خانه" ;
++			Text [ fi ] = "Solun sarakenumero." ;
++			Text [ fr ] = "Le numéro de colonne de la cellule." ;
++			Text [ ga ] = "Uimhir cholún na cille." ;
++			Text [ gu ] = "ખાનાનો સ્તંભ ક્રમાંક." ;
++			Text [ gu-IN ] = "ખાનાનો સ્તંભ ક્રમાંક." ;
++			Text [ he ] = "מספר העמודה של התא.‏" ;
++			Text [ hi-IN ] = "कोष्ठ का कॉलम संख्या." ;
++			Text [ hr ] = "Broj stupca ćelije." ;
++			Text [ hu ] = "A cella oszlopszáma." ;
++			Text [ it ] = "Numero di colonna della cella." ;
++			Text [ ja ] = "セルの列番号。" ;
++			Text [ ka ] = "უჯრის სვეტის ნომერი." ;
++			Text [ km ] = "ចំនួន​ជួរ​ឈរ​នៃ​ក្រឡា ។" ;
++			Text [ ko ] = "셀의 열 번호입니다." ;
++			Text [ ku ] = "Hejmara stûnên şanikê." ;
++			Text [ lt ] = "Langelio stulpelio numeris." ;
++			Text [ mk ] = "Бројот на колоната на ќелијата." ;
++			Text [ ml-IN ] = "സെല്ലിലെ സ്തംഭത്തിന്റെ  എണ്ണം" ;
++			Text [ mr-IN ] = "कक्षचा स्तंभ क्रमांक" ;
++			Text [ nb ] = "Cellens kolonnenummer." ;
++			Text [ ne ] = "कक्षको स्तम्भ नम्बर" ;
++			Text [ nl ] = "Het kolomnummer van de cel." ;
++			Text [ nn ] = "Kolonnenummeret til cella." ;
++			Text [ nr ] = "Inomboro yekholomu yeseli." ;
++			Text [ ns ] = "Nomoro ya kholomo ya sele." ;
++			Text [ or-IN ] = " କୋଷର ସ୍ତମ୍ଭ ସଂଖ୍ଯା୤" ;
++			Text [ pa-IN ] = "ਸੈੱਲ ਦਾ ਕਾਲਮ ਅੰਕ ਹੈ।" ;
++			Text [ pl ] = "Numer kolumny komórki." ;
++			Text [ pt ] = "O número da coluna da célula." ;
++			Text [ pt-BR ] = "O número de coluna da célula." ;
++			Text [ ru ] = "Номер столбца ячейки." ;
++			Text [ rw ] = "Nomero y'inkingi y'akadirishya." ;
++			Text [ sh-YU ] = "Broj kolone ćelije." ;
++			Text [ sk ] = "Číslo stĺpca bunky." ;
++			Text [ sl ] = "Številka stolpca celice." ;
++			Text [ sr-CS ] = "Број колоне ћелије." ;
++			Text [ ss ] = "Inamba yekholamu yeseli." ;
++			Text [ st ] = "Nomoro ya kholomo ya sele." ;
++			Text [ sv ] = "Cellens kolumnnummer." ;
++			Text [ sw-TZ ] = "Namba ya safu-wima ya seli." ;
++			Text [ ta ] = "சிற்றறையின் நெடுவரிசை எண்." ;
++			Text [ ta-IN ] = "சிற்றறையின் நெடுவரிசை எண்." ;
++			Text [ te-IN ] = "అర యొక్క నిలువు వరుస సంఖ్య" ;
++			Text [ tg ] = "Рақами сутуни чашмак." ;
++			Text [ th ] = "หมายเลขคอลัมน์ของช่อง" ;
++			Text [ tn ] = "Kholomo palo ya sele." ;
++			Text [ tr ] = "Hücrenin sütun numarası." ;
++			Text [ ts ] = "Nomboro ya kholomu ya sele." ;
++			Text [ uk ] = "Номер колонки комірки." ;
++			Text [ ur-IN ] = "کالم ان پٹ سیل" ;
++			Text [ ve ] = "Nomboro ya sele ya mutaladzi." ;
++			Text [ vi ] = "Số hiệu cột của ô." ;
++			Text [ xh ] = "Inani loluhlu olwehlayo lweseli." ;
++			Text [ zh-CN ] = "单元格的列号" ;
++			Text [ zh-TW ] = "儲存格欄號" ;
++			Text [ zu ] = "Inombolo yomfantu wegumbi." ;
++			Text [ x-comment ] = " ";
++		};
++		String 6 // Name of Parameter 3
++		{
++			Text [ de ] = "ABS" ;
++			Text [ en-US ] = "ABS" ;
++			Text [ af ] = "ABS" ;
++			Text [ ar ] = "ABS" ;
++			Text [ as-IN ] = "ABS" ;
++			Text [ be-BY ] = "ABS" ;
++			Text [ bg ] = "АБС" ;
++			Text [ br ] = "ABS" ;
++			Text [ bs ] = "ABS" ;
++			Text [ ca ] = "ABS" ;
++			Text [ cs ] = "ABS" ;
++			Text [ cy ] = "ABS" ;
++			Text [ da ] = "ABS" ;
++			Text [ el ] = "ABS" ;
++			Text [ en-GB ] = "ABS" ;
++			Text [ en-ZA ] = "ABS" ;
++			Text [ eo ] = "ABS" ;
++			Text [ es ] = "ABS" ;
++			Text [ et ] = "ABS" ;
++			Text [ fa ] = "ABS" ;
++			Text [ fi ] = "ABS" ;
++			Text [ fr ] = "ABS" ;
++			Text [ ga ] = "ABS" ;
++			Text [ gu ] = "ABS" ;
++			Text [ gu-IN ] = "ABS" ;
++			Text [ he ] = "ABS" ;
++			Text [ hi-IN ] = "ABS" ;
++			Text [ hr ] = "ABS" ;
++			Text [ hu ] = "ABS" ;
++			Text [ it ] = "Assoluto" ;
++			Text [ ja ] = "種類" ;
++			Text [ ka ] = "აბგ" ;
++			Text [ km ] = "ABS" ;
++			Text [ ko ] = "ABS" ;
++			Text [ ku ] = "ABS" ;
++			Text [ lt ] = "nuorodos tipas" ;
++			Text [ mk ] = "Апсолутно" ;
++			Text [ ml-IN ] = "ABS" ;
++			Text [ mr-IN ] = "ABS" ;
++			Text [ nb ] = "ABS" ;
++			Text [ ne ] = "ABS" ;
++			Text [ nl ] = "ABS" ;
++			Text [ nn ] = "ABS" ;
++			Text [ nr ] = "I-ABS" ;
++			Text [ ns ] = "ABS" ;
++			Text [ or-IN ] = "ABS" ;
++			Text [ pa-IN ] = "ABS" ;
++			Text [ pl ] = "MODUŁ.LICZBY" ;
++			Text [ pt ] = "ABS" ;
++			Text [ pt-BR ] = "ABS" ;
++			Text [ ru ] = "Абсолютный номер" ;
++			Text [ rw ] = "ABS" ;
++			Text [ sh-YU ] = "ABS" ;
++			Text [ sk ] = "ABS" ;
++			Text [ sl ] = "ABS" ;
++			Text [ sr-CS ] = "ABS" ;
++			Text [ ss ] = "ABS" ;
++			Text [ st ] = "ABS" ;
++			Text [ sv ] = "ABS" ;
++			Text [ sw-TZ ] = "ABS" ;
++			Text [ ta ] = "ABS" ;
++			Text [ ta-IN ] = "ABS" ;
++			Text [ te-IN ] = " ABS" ;
++			Text [ tg ] = "ABS" ;
++			Text [ th ] = "ABS" ;
++			Text [ tn ] = "ABS" ;
++			Text [ tr ] = "MUTLAKDEĞER" ;
++			Text [ ts ] = "ABS" ;
++			Text [ uk ] = "АБС" ;
++			Text [ ur-IN ] = "ABS" ;
++			Text [ ve ] = "ABS" ;
++			Text [ vi ] = "ABS" ;
++			Text [ xh ] = "ABS" ;
++			Text [ zh-CN ] = "abs_num" ;
++			Text [ zh-TW ] = "abs_num" ;
++			Text [ zu ] = "ABS" ;
++			Text [ x-comment ] = " ";
++		};
++		String 7 // Description of Parameter 3
++		{
++			Text [ de ] = "Gibt an, ob absolute oder relative Referenzierung verwendet wird." ;
++			Text [ en-US ] = "Specifies whether absolute or relative referencing is to be used." ;
++			Text [ af ] = "Spesifiseer of absolute of relatiewe verwysing gebruik moet word." ;
++			Text [ ar ] = "تحدد ما إذا كان المرجع المستخدم مطلقاً أو نسبياً." ;
++			Text [ as-IN ] = "প্ৰকৃত বা তুলনামূলক প্ৰসংগ ব্যৱহাৰ কৰা হব নে নহয় তাক নিৰ্দিষ্ট কৰে." ;
++			Text [ be-BY ] = "Акрэслівае, ці ўжываецца абсалютны, ці адносны метад спасылання." ;
++			Text [ bg ] = "Указва дали да се използва абсолютно или относително адресиране." ;
++			Text [ br ] = "Menegiñ a ra ar rizh daveoù d'ober ganto (dizave pe daveel)" ;
++			Text [ bs ] = "Određuje kad će se upotrijebiti relativna ili apsolutna referenca." ;
++			Text [ ca ] = "Indica si s'ha d'utilitzar la referència relativa o absoluta." ;
++			Text [ cs ] = "Specifikuje má-li se použít absolutní nebo relativní odkaz." ;
++			Text [ cy ] = "Pennu p'un ai cyfeiriadu absoliwt neu berthynol i'w ddefnyddio." ;
++			Text [ da ] = "Specificerer om en absolut eller relativ referencetype skal bruges." ;
++			Text [ el ] = "Ορίζει αν θα γίνει χρήση της απόλυτης ή της σχετικής καταχώρισης." ;
++			Text [ en-GB ] = "Specifies whether absolute or relative referencing is to be used." ;
++			Text [ en-ZA ] = "Specifies whether absolute or relative referencing is to be used." ;
++			Text [ eo ] = "Specifas ĉu absoluta ĉu relativa referencado estas uzenda." ;
++			Text [ es ] = "Especifica si la referencia usada es absoluta o relativa." ;
++			Text [ et ] = "Määrab, kas kasutatakse absoluutset või relatiivset viitamist." ;
++			Text [ fa ] = "مشخص می‌کند ارجاع مطلق به کار خواهد رفت یا ارجاع نسبی." ;
++			Text [ fi ] = "Määrittää käytetäänkö absoluuttista vai suhteellista viitettä." ;
++			Text [ fr ] = "Indique le type de référence à utiliser (absolue ou relative)." ;
++			Text [ ga ] = "Specifies whether absolute or relative referencing is to be used." ;
++			Text [ gu ] = "સ્પષ્ટ કરો કે ચોક્કસ અથવા સંબંધિત સંદર્ભ વપરાય છે." ;
++			Text [ gu-IN ] = "સ્પષ્ટ કરો કે ચોક્કસ અથવા સંબંધિત સંદર્ભ વપરાય છે." ;
++			Text [ he ] = "מציינת האם לעשות שימוש בהפניה מוחלטת או יחסית.‏" ;
++			Text [ hi-IN ] = "यह निर्दिष्ट करता है कि निश्चित या सम्बन्धित संदर्भ को उपयोग करना है या नहीं." ;
++			Text [ hr ] = "Određuje hoće li biti korišteno apsolutno ili relativno referenciranje." ;
++			Text [ hu ] = "Meghatározza, hogy abszolút vagy relatív hivatkozást adjon-e vissza a függvény." ;
++			Text [ it ] = "Specifica se il riferimento da utilizzare è assoluto o relativo." ;
++			Text [ ja ] = "絶対参照または相対参照のどちらを使用するか指定します。" ;
++			Text [ ka ] = "საზღვრავს აბსოლუტური თუ შეფარდებითი კავშირების გამოყენებას." ;
++			Text [ km ] = "បញ្ជាក់​ថាតើ ត្រូវ​ប្រើ​សេចក្តី​​យោង​ដាច់ខាត ឬ សេចក្ដីយោង​ប្រែប្រួល ។" ;
++			Text [ ko ] = "절대 참조를 사용할지 상대 참조를 사용할지 지정합니다." ;
++			Text [ lt ] = "Nurodo, ar absoliuti, ar releatyvi nuoroda naudojama." ;
++			Text [ mk ] = "Определува дали ќе биде употребена апсолутна или релативна референција." ;
++			Text [ ml-IN ] = "സന്പൂര്ണ്ണമോ അഥവോ ബന്ധപ്പെട്ട റഫറന്സാണോ ഉപയോഗിച്ചിരിക്കുന്നതെന്ന്   എടുത്തുപറയുക." ;
++			Text [ mr-IN ] = "केवळ किंवा संबंधित संदर्भ वापरावेत ते सांगते." ;
++			Text [ nb ] = "Angi om referansen er absolutt eller relativ" ;
++			Text [ ne ] = "पूर्ण वा सम्बन्ध सान्दर्भिक प्रयोग गरिनु पर्ने भनि निर्दिष्ट गर्दछ ।" ;
++			Text [ nl ] = "Geeft aan of er een absolute of relatieve verwijzing gebruikt wordt." ;
++			Text [ nn ] = "Vel om referansen er absolutt eller relativ." ;
++			Text [ nr ] = "Beka bona ireferensi ezijameleko namkha ekhambelanako izakusetjenziswa." ;
++			Text [ ns ] = "Bolela gore go ka šomišwa tšhupetša ya nnete goba ya leamanyi." ;
++			Text [ or-IN ] = "ସଂପୂର୍ଣ୍ଣ କିମ୍ବା ଆପେକ୍ଷିକ ରେଫରେନ୍ସିଙ୍ଗ୍  ବ୍ଯବହାର କରାହେବାକୁ ଅଛି କି ନିର୍ଦ୍ଦଷ୍ଠକର୤" ;
++			Text [ pa-IN ] = "ਦੱਸੋ ਕਿ ਅਸਲੀ ਜਾਂ ਅਨੁਸਾਰੀ ਹਵਾਲਾ ਵਰਤਿਆ ਜਾਵੇ।" ;
++			Text [ pl ] = "Określa, czy zostaną użyte odwołania względne czy bezwzględne." ;
++			Text [ pt ] = "Determina se será usada uma referência absoluta ou relativa." ;
++			Text [ pt-BR ] = "Especifica se é necessário usar referências absolutas ou relativas." ;
++			Text [ ru ] = "Задание используемого типа: абсолютный или относительный." ;
++			Text [ rw ] = "Yerekana niba hagomba gukoreshwa iranga rihamye cyangwa rihinduka." ;
++			Text [ sh-YU ] = "Naznačava da li treba koristiti apsolutno ili relativno referenciranje." ;
++			Text [ sk ] = "Určuje či sa má použiť absolútny alebo relatívny odkaz." ;
++			Text [ sl ] = "Določi, če naj se uporabi absolutno ali relativno sklicevanje." ;
++			Text [ sr-CS ] = "Назначава да ли треба користити апсолутно или релативно референцирање." ;
++			Text [ ss ] = "Kuchaza kutsi ayisebenti yini nome kutawusetjentiswa lafanele emarefarensi." ;
++			Text [ st ] = "E bontsha haeba referensi e feletseng kapa e amanang e tshwanetse ho sebediswa." ;
++			Text [ sv ] = "Anger om absolut eller relativ referens används." ;
++			Text [ sw-TZ ] = "Hubainisha kama urejeo halisi au mnasaba utatumika." ;
++			Text [ ta ] = "சரியான அல்லது குறிப்புத் தொடர்பை பயன்படுத்த வேண்டுமா என்பதை தீர்மானிக்கிறது." ;
++			Text [ ta-IN ] = "சரியான அல்லது குறிப்புத் தொடர்பை பயன்படுத்த வேண்டுமா என்பதை தீர்மானிக்கிறது." ;
++			Text [ te-IN ] = "కచ్చితమైన లేదా సంబంధిత నివేదనను వాడాలనేది పేర్కొనును" ;
++			Text [ tg ] = "Муайян месозад, ки ҳаволаи мутлақ ё нисбӣ истифода шавад." ;
++			Text [ th ] = "ระบุว่าใช้การอ้างอิงแบบสัมพัทธ์หรือสัมบูรณ์" ;
++			Text [ tn ] = "Ditlhaloso tsa nepagalo kgotsa tsamaisano go diriswa." ;
++			Text [ tr ] = "Mutlak ya da göreceli referanstan hangisinin kullanılacağını belirtir." ;
++			Text [ ts ] = "Ku kombisisa loko nkombeketo wa xiviri kumbe wo yelanisa wu ta fanela ku tirhisiwa." ;
++			Text [ uk ] = "Визначає яке посилання - абсолютне чи відносне повинно бути використано." ;
++			Text [ ur-IN ] = "مختص كرو خواہ حقیقی یا متعلقہ حوالہ  استعمال كیا گیا ہے۔" ;
++			Text [ ve ] = "Sumba kana hu tea u shumiswa u bula ha vhukuma kana hu elanaho naho naa." ;
++			Text [ vi ] = "Chỉ ra sử dụng tham chiếu kiểu tuyệt đối hay tương đối." ;
++			Text [ xh ] = "Kuxelwa ukuba ingaba ulwalathiso oluqingqiweyo okanye olothelekiso lunokusetyenziswa na." ;
++			Text [ zh-CN ] = "指定使用的是绝对引用还是相对引用。" ;
++			Text [ zh-TW ] = "指定使用的是絕對參照還是相對參照。" ;
++			Text [ zu ] = "Icacisa ukuthi kusetshenziswe ukukhomba obumsulwa noma obuhlobene." ;
++			Text [ x-comment ] = " ";
++		};
++		String 8 // Name of Parameter 4
++		{
++			Text [ de ] = " ";
++			Text [ en-US ] = "A1";
++			Text [ x-comment ] = " ";
++		};
++		String 9 // Description of Parameter 4
++		{
++			Text [ en-US ] = "If TRUE (or 1) or omitted generate A1 style address, otherwise produce R1C1 style address.";
++			Text[ cs ] = "Pokud je hodnota pravdivá (nebo 1) nebo je vynechána, adresy budou ve stylu A1. V opačném případě bude použit styl R1C1.";
++			Text[ de ] = "Wenn TRUE (oder 1) bzw. ausgelassen, A1-Adresse generieren, anderenfalls R1C1-Adresse erstellen.";
++			Text[ es ] = "Si el valor es TRUE (o 1) o se omite, genera una dirección del estilo A1; de lo contrario, genera una dirección del estilo R1C1.";
++			Text[ fr ] = "Si TRUE (ou 1) ou omis, générer une adresse de style A1. Sinon, produire une adresse de style R1C1.";
++			Text[ it ] = "Se impostato su TRUE (o 1) oppure se omesso genera un indirizzo tipo A1, altrimenti genera un indirizzo di tipo R1C1.";
++			Text[ ja ] = "TRUE (1)またはA1スタイルアドレスが作成されていない場合、R1C1スタイルアドレスが作成されます。";
++			Text[ pt-BR ] = "Se VERDADEIRO (ou 1) ou omitido, gerar endereço em estilo A1; caso contrário produzir endereço em estilo R1C1.";
++			Text[ zh-CN ] = "如果为 TRUE（或 1），忽略生成 A1 样式地址，否则生成 R1C1 样式地址。";
++			Text[ zh-TW ] = "如果是傳回 TRUE (或 1) 或是省略就會產生 A1 格式位址，傳回其他值則會產生 R1C1 格式位址。";
++			Text [ x-comment ] = " ";
++		};
++		String 10 // Name of Parameter 5
++		{
++			Text [ de ] = "Tabelle" ;
++			Text [ en-US ] = "sheet" ;
++			Text [ af ] = "vel" ;
++			Text [ ar ] = "sheet_text" ;
++			Text [ as-IN ] = "শ্বীট" ;
++			Text [ be-BY ] = "sheet" ;
++			Text [ bg ] = "лист" ;
++			Text [ br ] = "Follenn" ;
++			Text [ bs ] = "tabela" ;
++			Text [ ca ] = "full" ;
++			Text [ cs ] = "list" ;
++			Text [ cy ] = "dalen" ;
++			Text [ da ] = "Ark" ;
++			Text [ el ] = "φύλλο" ;
++			Text [ en-GB ] = "sheet" ;
++			Text [ en-ZA ] = "sheet" ;
++			Text [ eo ] = "folio" ;
++			Text [ es ] = "hoja" ;
++			Text [ et ] = "leht" ;
++			Text [ fa ] = "برگه" ;
++			Text [ fi ] = "taulukko" ;
++			Text [ fr ] = "Feuille" ;
++			Text [ ga ] = "bileog" ;
++			Text [ gu ] = "શીટ" ;
++			Text [ gu-IN ] = "શીટ" ;
++			Text [ he ] = "גליון" ;
++			Text [ hi-IN ] = "शीट" ;
++			Text [ hr ] = "list" ;
++			Text [ hu ] = "munkalap" ;
++			Text [ it ] = "Tabella" ;
++			Text [ ja ] = "表名" ;
++			Text [ ka ] = "ფურცელი" ;
++			Text [ km ] = "សន្លឹក" ;
++			Text [ ko ] = "시트" ;
++			Text [ ku ] = "Tablo" ;
++			Text [ lt ] = "lakštas" ;
++			Text [ mk ] = "Лист" ;
++			Text [ ml-IN ] = "ഷീറ്റ്" ;
++			Text [ mr-IN ] = "शीट्" ;
++			Text [ nb ] = "ark" ;
++			Text [ ne ] = "पाना" ;
++			Text [ nl ] = "blad" ;
++			Text [ nn ] = "ark" ;
++			Text [ nr ] = "ikhasi" ;
++			Text [ ns ] = "letlakala" ;
++			Text [ or-IN ] = "ସିଟ୍" ;
++			Text [ pa-IN ] = "ਸ਼ੀਟ" ;
++			Text [ pl ] = "Arkusz" ;
++			Text [ pt ] = "Folha" ;
++			Text [ pt-BR ] = "planilha" ;
++			Text [ ru ] = "лист" ;
++			Text [ rw ] = "urupapuro" ;
++			Text [ sh-YU ] = "list" ;
++			Text [ sk ] = "list" ;
++			Text [ sl ] = "delovni list" ;
++			Text [ sr-CS ] = "лист" ;
++			Text [ ss ] = "lishithi" ;
++			Text [ st ] = "pampiri" ;
++			Text [ sv ] = "tabell" ;
++			Text [ sw-TZ ] = "laha" ;
++			Text [ ta ] = "தாள்" ;
++			Text [ ta-IN ] = "தாள்" ;
++			Text [ te-IN ] = "పుట" ;
++			Text [ tg ] = "варақ" ;
++			Text [ th ] = "แผ่นงาน" ;
++			Text [ tn ] = "letlhare" ;
++			Text [ tr ] = "sayfa" ;
++			Text [ ts ] = "phepha" ;
++			Text [ uk ] = "аркуш" ;
++			Text [ ur-IN ] = "شیٹ" ;
++			Text [ ve ] = "shithi" ;
++			Text [ vi ] = "tờ" ;
++			Text [ xh ] = "icwecwe" ;
++			Text [ zh-CN ] = "sheet_text" ;
++			Text [ zh-TW ] = "sheet_text" ;
++			Text [ zu ] = "iphepha" ;
++			Text [ x-comment ] = " ";
++		};
++		String 11 // Description of Parameter 5
++		{
++			Text [ de ] = "Der Tabellenname des Zellbezugs." ;
++			Text [ en-US ] = "The spreadsheet name of the cell reference." ;
++			Text [ af ] = "Die sigbladnaam van die selverwysing." ;
++			Text [ ar ] = "اسم جدول مرجع الخلية." ;
++			Text [ as-IN ] = "কক্ষ প্ৰসংগটোৰ স্প্ৰেডশ্বীট নামটো." ;
++			Text [ be-BY ] = "Назва ў аркушы азначанай спасылкі на клетку." ;
++			Text [ bg ] = "Връща името на листа от обръщението към клетка." ;
++			Text [ br ] = "Anv ar follennad jediñ eus an dave." ;
++			Text [ bs ] = "Ime proračunske tablice iz ćelijske reference." ;
++			Text [ ca ] = "Nom del full de càlcul de la referència de cel·la." ;
++			Text [ cs ] = "Jméno listu odkazované buňky." ;
++			Text [ cy ] = "Enw taenlen cyfeiriad y gell.." ;
++			Text [ da ] = "Cellereferencens regnearksnavn." ;
++			Text [ el ] = "Το όνομα του υπολογιστικού φύλλου μιας παραπομπής κελιού." ;
++			Text [ en-GB ] = "The spreadsheet name of the cell reference." ;
++			Text [ en-ZA ] = "The spreadsheet name of the cell reference." ;
++			Text [ eo ] = "La kalkultabela nomo de la ĉela referenco." ;
++			Text [ es ] = "El nombre de la hoja de cálculo de la referencia de celda." ;
++			Text [ et ] = "Lehe nimi lahtri viites." ;
++			Text [ fa ] = "نام صفحه‌گستردهٔ مرجع خانه." ;
++			Text [ fi ] = "Soluviitteen laskentataulukon nimi." ;
++			Text [ fr ] = "Le nom de la feuille de calcul de la référence." ;
++			Text [ ga ] = "The spreadsheet name of the cell reference." ;
++			Text [ gu ] = "ખાનાના સંદર્ભમા સ્પ્રેડશીટના નામો." ;
++			Text [ gu-IN ] = "ખાનાના સંદર્ભમા સ્પ્રેડશીટના નામો." ;
++			Text [ he ] = "שם גליון העבודה של הפניית התא.‏" ;
++			Text [ hi-IN ] = "कोष्ठ संदर्भ का स्प्रेडशीट नाम." ;
++			Text [ hr ] = "Ime proračunske tablice reference ćelije." ;
++			Text [ hu ] = "A munkalap neve, amely bekerül a cellahivatkozásba." ;
++			Text [ it ] = "Il nome del foglio elettronico del riferimento." ;
++			Text [ ja ] = "外部参照として使用する表の名前。" ;
++			Text [ ka ] = "უჯრის კავშირზე ფურცლის სახელი." ;
++			Text [ km ] = "ឈ្មោះ​សៀវភៅ​បញ្ជី​នៃ​សេចក្តី​​យោង​ក្រឡា ។" ;
++			Text [ ko ] = "셀 참조의 스프레드시트 이름입니다." ;
++			Text [ lt ] = "Langelio nuorodos skaišiuoklės vardas." ;
++			Text [ mk ] = "Името на табеларната пресметка за референцијата на ќелијата." ;
++			Text [ ml-IN ] = "സെല് റഫറന്സിന്റെ സ്പ്രെഡ്ഷീറ്റ് നാമം" ;
++			Text [ mr-IN ] = "कक्ष संदर्भाचे स्प्रेडशीट् नाव." ;
++			Text [ nb ] = "Navnet på regnearket til cellereferansen" ;
++			Text [ ne ] = "कक्ष सन्दर्भको स्प्रेडसिट नाम" ;
++			Text [ nl ] = "De werkbladnaam van de celverwijzing" ;
++			Text [ nn ] = "Namnet på reknearket til cellereferansen." ;
++			Text [ nr ] = "Igama lespredtjhiti lereferensi yeseli." ;
++			Text [ ns ] = "Leina la spreadsheet sa sele ya tšhupetšo." ;
++			Text [ or-IN ] = "କୋଷ ରେଫରେନ୍ସ୍ ର ସ୍ପ୍ରେଡ୍ସିଟ୍ ନାମ୤" ;
++			Text [ pa-IN ] = "ਸੈਲ ਹਵਾਲਾ ਲਈ ਸਾਰਣੀਕਾਰ ਨਾਂ ਹੈ।" ;
++			Text [ pl ] = "Nazwa arkusza kalkulacyjnego w odwołaniu do komórki" ;
++			Text [ pt ] = "Especifica o nome da folha de cálculo da referência da célula." ;
++			Text [ pt-BR ] = "O nome da planilha da referência de célula." ;
++			Text [ ru ] = "Имя ссылки ячейки электронной таблицы." ;
++			Text [ rw ] = "Izina ry'urupapurorusesuye rw'indango y'akadirishya." ;
++			Text [ sh-YU ] = "Naziv tabele reference na ćeliju." ;
++			Text [ sk ] = "Názov listu odkazovanej bunky." ;
++			Text [ sl ] = "Ime sklica celice na preglednici." ;
++			Text [ sr-CS ] = "Назив табеле референце на ћелију." ;
++			Text [ ss ] = "Libito leliphephacansi serefarensi yeseli." ;
++			Text [ st ] = "Lebitso la leqephe la ho ala boitsebiso la referensi ya sele." ;
++			Text [ sv ] = "Tabellnamnet för cellreferensen." ;
++			Text [ sw-TZ ] = "Jina la lahajedwali la rejeo la seli." ;
++			Text [ ta ] = "சிற்றறைத் தொடர்புக்கான விரிவுத்தாட் பெயர்." ;
++			Text [ ta-IN ] = "சிற்றறைத் தொடர்புக்கான விரிவுத்தாட் பெயர்." ;
++			Text [ te-IN ] = "అర నివేదన యొక్క స్ప్రెడ్ షీట్ పేరు" ;
++			Text [ tg ] = "Номи ҷадвали ҳаволаи чашмак." ;
++			Text [ th ] = "ชื่อตารางคำนวณของการอ้างอิงช่อง" ;
++			Text [ tn ] = "Letlharephatlalalo lein la sele tshwantshanyo." ;
++			Text [ tr ] = "Hücre referansının tablo adı." ;
++			Text [ ts ] = "Vito ra xipuredexiti xa nkombeketo wa sele." ;
++			Text [ uk ] = "Ім'я таблиці посилання комірки." ;
++			Text [ ur-IN ] = "سیل حوالہ كا اسپریڈ شیٹ نام ۔" ;
++			Text [ ve ] = "Dzina ḽa sipuredeshithi la u bula sele." ;
++			Text [ vi ] = "Tên bảng tính của tham chiếu ô." ;
++			Text [ xh ] = "Igama lecwecwe leeseli lesalathiso seseli." ;
++			Text [ zh-CN ] = "使用单元格引用的工作表名称。" ;
++			Text [ zh-TW ] = "儲存格參照的工作表名稱。" ;
++			Text [ zu ] = "Igama lekhasi lokubala lokukhomba igumbi." ;
++			Text [ x-comment ] = " ";
++		};
++	};
+ 	 // -=*# Resource for function BEREICHE #*=-
+ 	Resource SC_OPCODE_AREAS
+ 	{
+@@ -6996,6 +7738,130 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
+ 			Text [ en-US ] = "The cell whose contents are to be evaluated is to be referenced in text form (e.g. \"A1\")." ;
+ 		};
+ 	};
++	 // -=*# Resource for function INDIREKT_XL #*=-
++	Resource SC_OPCODE_INDIRECT_XL
++	{
++		String 1 // Description
++		{
++			Text [ de ] = "Bestimmt den Inhalt einer als Bezug in MS Excel (tm) Textform angegebenen Zelle." ;
++			Text [ en-US ] = "Returns the contents of a cell that is referenced in MS Excel (tm) text form." ;
++			Text [ cs ] = "Vrátí obsah buňky na kterou se odkazuje pomocí textové formy MS Excelu (tm).";
++			Text [ x-comment ] = " ";
++		};
++		ExtraData =
++		{
++			ID_FUNCTION_GRP_TABLE;
++			U2S( HID_FUNC_INDIREKT_XL );
++			2;	0;	1;	
++		};
++		String 2 // Name of Parameter 1
++		{
++			Text [ de ] = "Bezug" ;
++			Text [ en-US ] = "ref " ;
++			Text [ x-comment ] = " ";
++		};
++		String 3 // Description of Parameter 1
++		{
++			Text [ de ] = "Die Zelle, deren Inhalt ausgewertet werden soll als Bezug in MS Excel (tm) Textform (z.B. \"Sheet!A1\")." ;
++			Text [ en-US ] = "The cell whose contents are to be evaluated is to be referenced in MS Excel (tm) text form (e.g. \"Sheet!A1\")." ;
++			Text [ cs ] = "Na buňku, jejíž obsah bude vyhodnocován, bude odkazováno ve formátu MS Excelu (tm) (např. \"List!A1\").";
++			Text [ x-comment ] = " ";
++		};
++		String 4 // Name of Parameter 2
++		{
++			Text [ de ] = "'Adressformat'" ;
++			Text [ en-US ] = "Format" ;
++			Text [ af ] = "Formaat" ;
++			Text [ ar ] = "التنسيق" ;
++			Text [ as-IN ] = "ফৰমেট  " ;
++			Text [ be-BY ] = "Format" ;
++			Text [ bg ] = "Форматиране" ;
++			Text [ br ] = "Mentrezh" ;
++			Text [ bs ] = "Format" ;
++			Text [ ca ] = "Formata" ;
++			Text [ cs ] = "Formát" ;
++			Text [ cy ] = "Fformat" ;
++			Text [ da ] = "Format" ;
++			Text [ el ] = "Μορφή" ;
++			Text [ en-GB ] = "Format" ;
++			Text [ en-ZA ] = "Format" ;
++			Text [ eo ] = "Format" ;
++			Text [ es ] = "formato" ;
++			Text [ et ] = "Vorming" ;
++			Text [ fa ] = "قالب" ;
++			Text [ fi ] = "Muotoilu" ;
++			Text [ fr ] = "Format" ;
++			Text [ ga ] = "Formáid" ;
++			Text [ gu ] = "બંધારણ" ;
++			Text [ gu-IN ] = "બંધારણ" ;
++			Text [ he ] = "עיצוב" ;
++			Text [ hi-IN ] = "प्रारूप" ;
++			Text [ hr ] = "Oblik" ;
++			Text [ hu ] = "formátum" ;
++			Text [ it ] = "Formato" ;
++			Text [ ja ] = "書式" ;
++			Text [ ka ] = "ფორმატი" ;
++			Text [ km ] = "ទ្រង់​ទ្រាយ" ;
++			Text [ ko ] = "서식" ;
++			Text [ ku ] = "Teşe" ;
++			Text [ lt ] = "formatas" ;
++			Text [ mk ] = "Формат" ;
++			Text [ ml-IN ] = "രൂപകല്പന" ;
++			Text [ mr-IN ] = "स्वरूपण" ;
++			Text [ nb ] = "Format" ;
++			Text [ ne ] = "ढाँचा" ;
++			Text [ nl ] = "Notatie" ;
++			Text [ nn ] = "Format" ;
++			Text [ nr ] = "Indlela" ;
++			Text [ ns ] = "Sebopego" ;
++			Text [ or-IN ] = "ରଚନା" ;
++			Text [ pa-IN ] = "ਫਾਰਮਿਟ" ;
++			Text [ pl ] = "Format" ;
++			Text [ pt ] = "Formato" ;
++			Text [ pt-BR ] = "Formato" ;
++			Text [ ru ] = "Формат" ;
++			Text [ rw ] = "Imiterere" ;
++			Text [ sh-YU ] = "Format" ;
++			Text [ sk ] = "Formát" ;
++			Text [ sl ] = "Oblika" ;
++			Text [ sr-CS ] = "Формат" ;
++			Text [ ss ] = "Ifomethi" ;
++			Text [ st ] = "Fomate" ;
++			Text [ sv ] = "format" ;
++			Text [ sw-TZ ] = "Format" ;
++			Text [ ta ] = "வடிவம்" ;
++			Text [ ta-IN ] = "வடிவம்" ;
++			Text [ te-IN ] = "రూపలావణ్యం " ;
++			Text [ tg ] = "Формат" ;
++			Text [ th ] = "รูปแบบ" ;
++			Text [ tn ] = "Kago" ;
++			Text [ tr ] = "Biçim" ;
++			Text [ ts ] = "Fomati" ;
++			Text [ uk ] = "Формат" ;
++			Text [ ur-IN ] = "فورمیٹ" ;
++			Text [ ve ] = "Fomathi" ;
++			Text [ vi ] = "Định dạng" ;
++			Text [ xh ] = "Ulungiselelo" ;
++			Text [ zh-CN ] = "format" ;
++			Text [ zh-TW ] = "Format" ;
++			Text [ zu ] = "Isakhiwo" ;
++			Text [ x-comment ] = " ";
++		};
++		String 5 // Description of Parameter 2
++		{
++			Text [ en-US ] = "What address format to expect.  TRUE for A1, FALSE for R1C1.  Defaults to A1." ;
++			Text[ cs ] = "Jaký formát odkazu je očekáván. TRUE (pravda) pro A1, FALSE (nepravda) pro R1C1. Standardně A1.";
++			Text[ de ] = "Zu erwartendes Adressformat.  TRUE für A1, FALSE für R1C1.  Standardmäßig wird A1 verwendet.";
++			Text[ es ] = "Formato de dirección que se debe esperar. TRUE para A1, FALSE para R1C1. El valor por defecto es A1.";
++			Text[ fr ] = "Quel format d'adresse attendre.  TRUE pour A1, FALSE pour R1C1.  La valeur par défaut est A1.";
++			Text[ it ] = "Formato di indirizzo previsto.  TRUE per A1, FALSE per R1C1.  Il valore predefinito è A1.";
++			Text[ ja ] = "作成されるアドレス形式  TRUEの場合はA1、FALSEの場合はR1C1が作成されます。  デフォルトでは、A1になります。";
++		Text[ pt-BR ] = "Formato do endereço esperado. VERDADEIRO para A1, FALSO para R1C1. Usa A1 por padrão.";
++			Text[ zh-CN ] = "期望何种地址格式。TRUE 代表 A1，FALSE 代表 R1C1。默认值为 A1。";
++			Text[ zh-TW ] = "預期會產生的位址格式。TRUE 會產生 A1 格式，FALSE 會產生 R1C1 格式。預設是產生 A1 格式。";
++			Text [ x-comment ] = " ";
++		};
++	};
+ 	 // -=*# Resource for function VERWEIS #*=-
+ 	Resource SC_OPCODE_LOOKUP
+ 	{
+diff -urp sc.clean/source/ui/view/tabvwshf.cxx sc/source/ui/view/tabvwshf.cxx
+--- sc.clean/source/ui/view/tabvwshf.cxx	2007-11-14 10:13:12.000000000 -0500
++++ sc/source/ui/view/tabvwshf.cxx	2007-11-14 10:22:14.000000000 -0500
+@@ -685,6 +685,17 @@ void ScTabViewShell::ExecuteTable( SfxRe
+ 			}
+ 			break;
+ 
++		case FID_TAB_USE_R1C1:
++			{
++				ScDocFunc aFunc( *pViewData->GetDocShell() );
++				const ScAddress::Convention eConv =  
++					(pDoc->GetAddressConvention() == ScAddress::CONV_OOO)
++						? ScAddress::CONV_XL_R1C1 : ScAddress::CONV_OOO ;
++
++				aFunc.SetAddressConvention( eConv );
++			}
++			break;
++
+ 		default:
+ 			DBG_ERROR("Unbekannte Message bei ViewShell");
+ 			break;
+@@ -800,6 +811,13 @@ void ScTabViewShell::GetStateTable( SfxI
+ 						rSet.Put( SfxBoolItem( nWhich, pDoc->IsLayoutRTL( nTab ) ) );
+ 				}
+ 				break;
++
++			case FID_TAB_USE_R1C1:
++				{
++					const ScAddress::Convention eConv =  pDoc->GetAddressConvention();
++					rSet.Put( SfxBoolItem( nWhich, eConv == ScAddress::CONV_XL_R1C1 ) );
++				}
++				break;
+ 		}
+ 		nWhich = aIter.NextWhich();
+ 	}
+diff -urp sc.clean/uiconfig/scalc/menubar/menubar.xml sc/uiconfig/scalc/menubar/menubar.xml
+--- sc.clean/uiconfig/scalc/menubar/menubar.xml	2007-11-14 10:13:10.000000000 -0500
++++ sc/uiconfig/scalc/menubar/menubar.xml	2007-11-14 10:22:13.000000000 -0500
+@@ -215,6 +215,7 @@
+                     <menu:menuitem menu:id=".uno:Hide"/>
+                     <menu:menuitem menu:id=".uno:Show"/>
+                     <menu:menuitem menu:id=".uno:SheetRightToLeft"/>
++                    <menu:menuitem menu:id=".uno:SheetUseR1C1"/>
+                 </menu:menupopup>
+             </menu:menu>
+             <menu:menuitem menu:id=".uno:ToggleMergeCells"/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gentoo-pax-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gentoo-pax-fix.diff
@@ -0,0 +1,26 @@
+--- solenv/inc/unxlngi4.mk.orig	2005-10-29 17:09:48.000000000 +0200
++++ solenv/inc/unxlngi4.mk	2005-10-29 17:18:46.000000000 +0200
+@@ -138,8 +138,8 @@
+ LINKFLAGS=-z combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
+ 
+ # linker flags for linking applications
+-LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+-LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
++LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec -Wl,-z,execheap
++LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec -Wl,-z,execheap
+ 
+ # linker flags for linking shared libraries
+ LINKFLAGSSHLGUI= -shared
+--- solenv/inc/unxlngi6.mk.orig	2005-10-29 17:16:27.000000000 +0200
++++ solenv/inc/unxlngi6.mk	2005-10-29 17:19:08.000000000 +0200
+@@ -147,8 +147,8 @@
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
+ 
+ # linker flags for linking applications
+-LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+-LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
++LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec -Wl,-z,execheap
++LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec -Wl,-z,execheap
+ 
+ # linker flags for linking shared libraries
+ LINKFLAGSSHLGUI= -shared
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/compiletime-skip-duplicate-jars.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/compiletime-skip-duplicate-jars.diff
@@ -0,0 +1,25 @@
+--- solenv/bin/deliver.pl.ark	2006-01-20 18:59:33.000000000 +0100
++++ solenv/bin/deliver.pl	2006-01-20 19:02:44.000000000 +0100
+@@ -749,6 +749,22 @@
+         my $todir = $ENV{'GCJ_CACHEDIR'};
+         my $file = shift;
+         $lib = basename($file);
++        my $libdir;
++        if ( -d "/usr/lib64") {
++            $libdir = "/usr/lib64/";
++        } else {
++            $libdir = "/usr/lib/";
++        }
++        if ( ! -e $ENV{GCJ_DATABASE} ) {
++            # We need to initialize our gcj database w/ the system one
++            system("cp " . $libdir . "gcj-4.1.0/classmap.db " . $ENV{GCJ_DATABASE});
++        }
++        my $system = $libdir . "lib" . $lib;
++        $system =~ s/\.jar$/.so/;
++        if ( -e $system ) {
++            print "CACHEJAR: Precompiled $lib exists in system - no need to build again.\n";
++            return;
++        }
+         my $to = $todir."lib".$lib.".so";
+         my $JAVALINKER = "$ENV{JAVACOMPILER} -shared -fPIC -Wl,-Bsymbolic -O2 -findirect-dispatch -fjni -o";
+         print "CACHEJAR: $file -> $to with $ENV{GCJ_DATABASE}\n";
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-mesa-fallback.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-mesa-fallback.diff
@@ -0,0 +1,271 @@
+diff -rup slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx	2008-03-11 18:02:16.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-03-11 18:36:35.000000000 +0100
+@@ -88,6 +88,7 @@ public:
+     explicit OGLTransitionerImpl(OGLTransitionImpl* pOGLTransition);
+     bool initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double);
+     void setSlides( const uno::Reference< rendering::XBitmap >& xLeavingSlide , const uno::Reference< rendering::XBitmap >& xEnteringSlide );
++    static void initialize( const uno::Reference< presentation::XSlideShowView >& xView );
+ 
+     // XTransition
+     virtual SAL_CALL void update( double nTime ) throw (uno::RuntimeException);
+@@ -152,14 +153,62 @@ private:    
+     */    
+     OGLTransitionImpl* pTransition;
+ 
++public:
+     /** whether we are running on ATI fglrx with bug related to textures
+      */
+-    bool mbBrokenTexturesATI;
++    static bool cbBrokenTexturesATI;
++
++    /** GL version
++     */
++    static float cnGLVersion;
+ 
+-    /* GL version */
+-    float mnGLVersion;
++    /** Whether Mesa is the OpenGL vendor
++     */
++    static bool cbMesa;
+ };
+ 
++void OGLTransitionerImpl::initialize( const uno::Reference< presentation::XSlideShowView >& xView )
++{
++    // not thread safe
++    static bool initialized = false;
++
++    if( !initialized ) {
++        OGLTransitionerImpl *instance;
++
++        instance = new OGLTransitionerImpl( NULL );
++        instance->initWindowFromSlideShowView( xView, 0, 0 );
++
++        if( instance->GLWin.HasGLXExtension("GLX_SGI_swap_control" ) ) {
++            // enable vsync
++            typedef GLint (*glXSwapIntervalProc)(GLint);
++            glXSwapIntervalProc glXSwapInterval = (glXSwapIntervalProc) unx::glXGetProcAddress( (const GLubyte*) "glXSwapIntervalSGI" );
++            if( glXSwapInterval ) {
++                glXSwapInterval( 1 );
++                OSL_TRACE("set swap interval to 1 (enable vsync)");
++            }
++        }
++
++        const GLubyte* version = glGetString( GL_VERSION );
++        if( version && version[0] ) {
++            cnGLVersion = version[0] - '0';
++            if( version[1] == '.' && version[2] )
++                cnGLVersion += (version[2] - '0')/10.0;
++        } else
++            cnGLVersion = 1.0;
++        OSL_TRACE("GL version: %s parsed: %f", version, cnGLVersion );
++
++        const GLubyte* vendor = glGetString( GL_VENDOR );
++        cbMesa = ( vendor && strstr( (const char *) vendor, "Mesa" ) );
++        OSL_TRACE("GL vendor: %s identified as Mesa: %d", vendor, cbMesa );
++
++        /* TODO: check for version once the bug in fglrx driver is fixed */
++        cbBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
++
++        delete instance;
++        initialized = true;
++    }
++}
++
+ bool OGLTransitionerImpl::initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double)
+ {
+     osl::MutexGuard const guard( m_aMutex );
+@@ -290,30 +339,6 @@ bool OGLTransitionerImpl::initWindowFrom
+     }
+     glXMakeCurrent( GLWin.dpy, GLWin.win, GLWin.ctx );
+ 
+-    if(GLWin.HasGLXExtension("GLX_SGI_swap_control")) {
+-        // enable vsync
+-        typedef GLint (*glXSwapIntervalProc)(GLint);
+-        glXSwapIntervalProc glXSwapInterval = (glXSwapIntervalProc) unx::glXGetProcAddress( (const GLubyte*) "glXSwapIntervalSGI" );
+-        if( glXSwapInterval ) {
+-            glXSwapInterval( 1 );
+-            OSL_TRACE("set swap interval to 1 (enable vsync)");
+-        }
+-    }
+-
+-    const GLubyte* version = glGetString( GL_VERSION );
+-    if( version && version[0] ) {
+-        mnGLVersion = version[0] - '0';
+-        if( version[1] == '.' && version[2] )
+-            mnGLVersion += (version[2] - '0')/10.0;
+-    } else
+-        mnGLVersion = 1.0;
+-    OSL_TRACE("GL version: %s parsed: %f", version, mnGLVersion );
+-
+-    /* TODO: check for version once the bug in fglrx driver is fixed */
+-    mbBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
+-
+-    
+-
+     glEnable(GL_CULL_FACE);
+     glCullFace(GL_BACK);
+     glClearColor (0, 0, 0, 0);
+@@ -331,7 +356,7 @@ bool OGLTransitionerImpl::initWindowFrom
+     if( LeavingBytes.hasElements() && EnteringBytes.hasElements())
+        GLInitSlides();//we already have uninitialized slides, let's initialize 
+ 
+-    if( pTransition && pTransition->mnRequiredGLVersion <= mnGLVersion )
++    if( pTransition && pTransition->mnRequiredGLVersion <= cnGLVersion )
+         pTransition->prepare( GLleavingSlide, GLenteringSlide );
+ 
+     return true;
+@@ -369,7 +394,7 @@ void OGLTransitionerImpl::GLInitSlides()
+ {
+     osl::MutexGuard const guard( m_aMutex );
+ 
+-    if (isDisposed() || pTransition->mnRequiredGLVersion > mnGLVersion)
++    if (isDisposed() || pTransition->mnRequiredGLVersion > cnGLVersion)
+         return;
+ 
+     glMatrixMode(GL_PROJECTION);
+@@ -459,7 +484,7 @@ void OGLTransitionerImpl::GLInitSlides()
+     
+     glGenTextures(1, &GLleavingSlide);
+ 	glBindTexture(GL_TEXTURE_2D, GLleavingSlide);
+-    if( pTransition && !mbBrokenTexturesATI && !pTransition->mbUseMipMapLeaving) {
++    if( pTransition && !cbBrokenTexturesATI && !pTransition->mbUseMipMapLeaving) {
+         glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SlideSize.Width, SlideSize.Height, 0, Format, GL_UNSIGNED_BYTE, &LeavingBytes[0]);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+@@ -483,7 +508,7 @@ void OGLTransitionerImpl::GLInitSlides()
+ 	
+ 	glGenTextures(1, &GLenteringSlide);
+ 	glBindTexture(GL_TEXTURE_2D, GLenteringSlide);
+-    if( pTransition && !mbBrokenTexturesATI && !pTransition->mbUseMipMapEntering ) {
++    if( pTransition && !cbBrokenTexturesATI && !pTransition->mbUseMipMapEntering ) {
+         glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SlideSize.Width, SlideSize.Height, 0, Format, GL_UNSIGNED_BYTE, &EnteringBytes[0]);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
+         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
+@@ -508,7 +533,7 @@ void SAL_CALL OGLTransitionerImpl::updat
+ {
+     osl::MutexGuard const guard( m_aMutex );
+ 
+-    if (isDisposed() || pTransition->mnRequiredGLVersion > mnGLVersion)
++    if (isDisposed() || pTransition->mnRequiredGLVersion > cnGLVersion)
+         return;
+ 
+     glEnable(GL_DEPTH_TEST);
+@@ -612,6 +637,14 @@ public:
+         if( !hasTransition( transitionType, transitionSubType ) )
+             return uno::Reference< presentation::XTransition >();
+ 
++        OGLTransitionerImpl::initialize( view );
++
++        if( OGLTransitionerImpl::cbMesa && (
++            ( transitionType == animations::TransitionType::FADE && transitionSubType == animations::TransitionSubType::CROSSFADE ) ||
++            ( transitionType == animations::TransitionType::IRISWIPE && transitionSubType == animations::TransitionSubType::DIAMOND ) ) )
++            return uno::Reference< presentation::XTransition >();
++            
++
+         OGLTransitionImpl* pTransition;
+ 
+         if( transitionType == animations::TransitionType::MISCSHAPEWIPE ) {
+--- /home/rodo/svn/ooo-build-1/build/ooh680-m9-mesa/slideshow/source/engine/transitions/slidetransitionfactory.cxx	2008-03-10 18:45:01.000000000 +0100
++++ slideshow/source/engine/transitions/slidetransitionfactory.cxx	2008-03-11 18:33:23.000000000 +0100
+@@ -131,7 +131,8 @@ public:
+                          rViewContainer,
+                          rScreenUpdater,
+                          rEventMultiplexer ),
+-        maTransitions()
++        maTransitions(),
++        mbSuccess( false )
+     {
+         // create one transition per view
+         UnoViewVector::const_iterator aCurrView (rViewContainer.begin());
+@@ -143,19 +144,25 @@ public:
+             const ::basegfx::B2DPoint aOffsetPixel(
+                 aViewTransform * ::basegfx::B2DPoint() );
+         
+-            maTransitions.push_back(
+-                xFactory->createTransition( 
++            uno::Reference<presentation::XTransition> rTransition = xFactory->createTransition( 
+                     nTransitionType, 
+                     nTransitionSubType,
+                     (*aCurrView)->getUnoView(),
+                     getLeavingBitmap(ViewEntry(*aCurrView))->getXBitmap(),
+                     getEnteringBitmap(ViewEntry(*aCurrView))->getXBitmap(),
+-                    basegfx::unotools::point2DFromB2DPoint(aOffsetPixel) ) );
++                    basegfx::unotools::point2DFromB2DPoint(aOffsetPixel) );
++
++            if( rTransition.is() )
++                maTransitions.push_back( rTransition );
++            else
++                return;
+ 
+             ENSURE_AND_THROW(maTransitions.back().is(),
+                              "Failed to create plugin transition");
+             ++aCurrView;
+         }
++
++        mbSuccess = true;
+     }
+         
+     virtual bool operator()( double t )
+@@ -167,9 +174,17 @@ public:
+         return true;
+     }
+ 
++    bool Success()
++    {
++        return mbSuccess;
++    }
++
+ private:
+     // One transition object per view
+     std::vector< uno::Reference<presentation::XTransition> > maTransitions;
++
++    // bool
++    bool mbSuccess;
+ };
+ 
+ 
+@@ -692,7 +707,7 @@ NumberAnimationSharedPtr createPluginTra
+     const SoundPlayerSharedPtr&              pSoundPlayer, 
+     EventMultiplexer&                        rEventMultiplexer)
+ {
+-    return NumberAnimationSharedPtr( 
++    PluginSlideChange* pTransition = 
+         new PluginSlideChange(
+             nTransitionType,
+             nTransitionSubType,
+@@ -702,7 +717,14 @@ NumberAnimationSharedPtr createPluginTra
+             rScreenUpdater,
+             xFactory,
+             pSoundPlayer,
+-            rEventMultiplexer ));
++            rEventMultiplexer );
++
++    if( pTransition->Success() )
++        return NumberAnimationSharedPtr( pTransition );
++    else {
++        delete pTransition;
++        return NumberAnimationSharedPtr();
++    }
+ }
+ 
+ } // anon namespace
+@@ -740,7 +762,7 @@ NumberAnimationSharedPtr TransitionFacto
+         xOptionalFactory->hasTransition(nTransitionType, nTransitionSubType) )
+     {
+         // #i82460# - optional plugin factory claims this transition. delegate.
+-        return NumberAnimationSharedPtr(
++        NumberAnimationSharedPtr pTransition(
+             createPluginTransition(
+                 nTransitionType,
+                 nTransitionSubType,
+@@ -751,6 +773,9 @@ NumberAnimationSharedPtr TransitionFacto
+                 xOptionalFactory,
+                 pSoundPlayer,
+                 rEventMultiplexer ));
++
++        if( pTransition.get() )
++            return pTransition;
+     }
+ 
+     const TransitionInfo* pTransitionInfo( 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/libwpg-testing.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/libwpg-testing.diff
@@ -0,0 +1,14 @@
+--- libwpg/makefile.mk	2008-04-07 14:04:33.000000000 +0200
++++ libwpg/makefile.mk	2008-04-07 14:21:35.000000000 +0200
+@@ -54,9 +54,10 @@
+ INCPRE+=$(LIBWPD_CFLAGS)
+ .ELSE
+ INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd
++INCPRE+=$(SOLARVER)$/$(UPD)$/$(INPATH)$/inc$/libwpd-stream
+ .ENDIF
+ 
+-TARFILE_NAME=libwpg-0.1.2
++TARFILE_NAME=libwpg-0.2.0
+ #PATCH_FILE_NAME=$(TARFILE_NAME).diff
+ BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+ BUILD_DIR=src/lib
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/reportdesign-mention-package.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/reportdesign-mention-package.diff
@@ -0,0 +1,84 @@
+Index: source/ui/dlg/ExtensionNotPresent.src
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/ui/dlg/ExtensionNotPresent.src,v
+retrieving revision 1.3
+diff -u -u -r1.3 ExtensionNotPresent.src
+--- dbaccess/source/ui/dlg/ExtensionNotPresent.src	2 Aug 2007 14:26:39 -0000	1.3
++++ dbaccess/source/ui/dlg/ExtensionNotPresent.src	8 Aug 2007 12:34:08 -0000
+@@ -41,7 +41,7 @@
+
+ String RID_STR_EXTENSION_NOT_PRESENT
+ {
+-       Text [ en-US ] = "To open a report you require the extension %RPT_EXTENSION_NAME.\n\nClick 'Download...' to download and install the extension.";
++       Text [ en-US ] = "To open a report you require the extension %RPT_EXTENSION_NAME.\n\nFor this, install the package 'openoffice.org-report-builder'.";
+ };
+ // To open a report you require the extension Sun Report Designer weiss der Geier Hauptsache extra langer Name
+ // String RID_STR_EXTENSION_NAME
+@@ -76,15 +76,6 @@
+         // Text will set outside from RID_STR_EXTENSION_NOT_PRESENT
+        };
+
+-       PushButton PB_DOWNLOAD
+-       {
+-               Pos = MAP_APPFONT ( DLG_WIDTH / 2 - (CELL_PADDING/2) - BUTTON_WIDTH, ACTION_LINE_START ) ;
+-               Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ;
+-               DefButton = TRUE ;
+-               TabStop = TRUE ;
+-               Text [ en-US ] = "~Download..." ;
+-       };
+-
+        CancelButton PB_CANCEL
+        {
+                Pos = MAP_APPFONT ( DLG_WIDTH / 2 + (CELL_PADDING/2), ACTION_LINE_START) ;
+Index: localize.sdf
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/ui/dlg/localize.sdf,v
+retrieving revision 1.37
+diff -u -u -r1.37 localize.sdf
+--- dbaccess/source/ui/dlg/localize.sdf	12 Nov 2007 13:22:41 -0000	1.37
++++ dbaccess/source/ui/dlg/localize.sdf	24 Nov 2007 13:31:11 -0000
+@@ -6922,42 +6922,8 @@
+ dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	pushbutton	RID_EXTENSION_NOT_PRESENT_DLG	PB_DOWNLOAD			0	vi	Tải ~về...				2002-02-02 02:02:02
+ dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	pushbutton	RID_EXTENSION_NOT_PRESENT_DLG	PB_DOWNLOAD			0	zh-CN	下载(~D)...				2002-02-02 02:02:02
+ dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	pushbutton	RID_EXTENSION_NOT_PRESENT_DLG	PB_DOWNLOAD			0	zh-TW	下載(~D)...				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	ar	لفتح التقرير أنت بحاجة لامتداد %RPT_EXTENSION_NAME.\n\nانقر ' نزل ...' لتنزيل وتثبيت الامتتداد.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	be-BY	Каб адкрыць паведамленне, патрэбнае пашырэнне %RPT_EXTENSION_NAME.\n\nНацісніце 'Атрымаць...' каб атрымаць і ўстанавіць пашырэнне.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	bg	За да отворите справка, ви е необходимо разширението %RPT_EXTENSION_NAME.\n\nНатиснете "Изтегляне...", за да изтеглите и инсталирате разширението.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	br	Evit digeriñ ur marilh ho po ezhomm eus an askouezhad %RPT_EXTENSION_NAME.\n\nKlikañ war 'Pellgargañ...' evit pellgargañ ha staliañ an askouezhad.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	ca	Per a obrir un informe necessiteu l'extensió %RPT_EXTENSION_NAME.\n\nFeu clic a "Baixa..." per a baixar i instal·lar l'extensió.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	cs	Pro otevření sestavy je potřeba rozšíření %RPT_EXTENSION_NAME.\n\nKlepněte na 'Stáhnout...', pokud chcete rozšíření stáhnout a nainstalovat.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	da	To open a report you require the extension %RPT_EXTENSION_NAME.\n\nClick 'Download...' to download and install the extension.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	de	Zum Öffnen eines Berichts wird die Erweiterung %RPT_EXTENSION_NAME benötigt.\n\nKlicken Sie auf 'Download...', um die Erweiterung herunterzuladen und zu installieren.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				1	eo	Por malfermi raporton vi bezonas la etendajxon %RPT_EXTENSION_NAME.\n\nAlklaku 'Elsxuti...' por elsxuti kaj instali la etendajxon.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	es	Para abrir un informe se requiere la extensión %RPT_EXTENSION_NAME.\n\nHaga clic en 'Descargar...' para descargar e instalar la extensión.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	et	Aruande avamiseks on vaja laiendust %RPT_EXTENSION_NAME.\n\nLaienduse allalaadimiseks ja paigaldamiseks klõpsa 'Laadi alla...'.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	fr	L'ouverture d'un rapport requiert l'extension %RPT_EXTENSION_NAME.\n\nCliquez sur Télécharger... pour télécharger et installer l'extension.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	gu	અહેવાલ ખોલવા માટે તમને %RPT_EXTENSION_NAME એક્સટેન્સન જરૂરી છે.\n\nએક્સટેન્સન ડાઉનલોડ કરવા અને સ્થાપિત કરવા માટે 'ડાઉનલોડ...' ક્લિક કરકો.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	hr	Za otvaranje izvješća morate imati %RPT_EXTENSION_NAME proširenje.\n\nKliknite na  'Preuzmi...' kako bi preuzeli i instalirali proširenje.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	hu	Jelentés megnyitásához %RPT_EXTENSION_NAME bővítésre van szükség.\n\nKattintson a „Letöltés...” lehetőségre a bővítés letöltése és telepítése érdekében.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	it	Per aprire un rapporto è necessaria l'estensione %RPT_EXTENSION_NAME.\n\nFare clic su Scarica per scaricare e installare l'estensione.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	ja	To open a report you require the extension %RPT_EXTENSION_NAME.\n\nClick 'Download...' to download and install the extension.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	km	ដើម្បី​បើក​របាយការណ៍​មួយ អ្នក​ត្រូវការ​ផ្នែក​បន្ថែម %RPT_EXTENSION_NAME.\n\nចុច 'ទាញយក...' ដើម្បី​ទាញ​យក ហើយ​ដំឡើង​ផ្នែក​បន្ថែម ។				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	ko	보고서를 열려면 확장자 %RPT_EXTENSION_NAME이(가) 필요합니다.\n\n'다운로드...'를 클릭하고 확장자를 다운로드 및 설치합니다.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	lt	Ataskaitai atverti reikalingas plėtinys %RPT_EXTENSION_NAME.\n\nSpustelėkite „Atsisiųsti...“, kad atsisiųstumėte ir įdiegtumėte plėtinį.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	mk	За да отворите извештај ви треба проширувањето %RPT_EXTENSION_NAME.\n\nКлинете на 'Симни...' за да го симнете и инсталирате проширувањето.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	nb	Du trenger utvidelsen %RPT_EXTENSION_NAME for å åpne rapporter.\n\nTrykk på «Last ned» for å laste ned og installere utvidelsen.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	ne	प्रतिवेदन खोल्न तपाईँलाई विस्तार %RPT_EXTENSION_NAME आवश्यक पर्दछ ।\n\nविस्तार डाउनलोड र स्थापना गर्न 'डाउनलोड...' क्लिक गर्नुहोस् ।				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	nl	U hebt de extensie %RPT_EXTENSION_NAME nodig om een rapport te kunnen openen.\n\nKlik op 'Downloaden...' om de extensie te downloaden en installeren.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	nn	Du treng utvidinga %RPT_EXTENSION_NAME for å opna rapportar.\n\nTrykk på «Last ned» for å lasta ned og installera utvidinga.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	pl	Do otwarcia raportu potrzebne jest rozszerzenie %RPT_EXTENSION_NAME.\n\nW celu ściągnięcia i zainstalowania rozszerzenia kliknij 'Pobierz...'.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	pt	Para abrir um relatório, é necessário a extensão %RPT_EXTENSION_NAME.\n\nClique em 'Download...' para fazer o download e instalar a extensão.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	pt-BR	Para abrir um relatório, é necessário a extensão %RPT_EXTENSION_NAME.\n\nClique em 'Download...' para fazer o download e instalar a extensão.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	ru	Для редактирования отчета требуется расширение %RPT_EXTENSION_NAME.\n\nЩелкните  "Загрузить..." для загрузки и установки расширения.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	rw	Kugira ngo ufungure raporo usaba umugereka %RPT_EXTENSION_NAME.\n\nKanda 'Gukurura...' kugira ngo ukurure uninjizemo umugereka.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	sk	Pre otvorenie správy potrebujete rozšírenie %RPT_EXTENSION_NAME.\n\nKliknite 'Stiahnuť...' pre stiahnutie a inštaláciu rozšírenia.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	sl	Če želite odpreti poročilo, potrebujete razširitev %RPT_EXTENSION_NAME.\n\nKliknite 'Prenesi ...', da prenesete in namestite razširitev.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	sv	Tillägget %RPT_EXTENSION_NAME krävs för att du ska kunna öppna rapporten.\n\nKlicka på "Ladda ner" för att hämta och installera tillägget.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				13691	tr	%RPT_EXTENSION_NAME eklentisi raporları açmak için gereklidir.\n\nEklentiyi indirip yüklemek için "İndir..." düğmesine tıklayın.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				1	vi	Khả năng mở báo cáo nhờ phần mở rộng %RPT_EXTENSION_NAME.\n\nNhấn vào « Tải về... » để tải về và cài đặt phần mở rộng này.				2002-02-02 02:02:02
+-dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	zh-CN	为打开报表您需要 %RPT_EXTENSION_NAME 扩展。\n\n请单击“下载...”来下载和安装该扩展。				2002-02-02 02:02:02
++dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	de	Zum Öffnen eines Berichts wird die Erweiterung %RPT_EXTENSION_NAME benötigt.\n\nInstallieren Sie dafür das Paket 'openoffice.org-report-builder'.				2002-02-02 02:02:02
++dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	fr	L'ouverture d'un rapport requiert l'extension %RPT_EXTENSION_NAME.\n\nPour cela, installez le package 'openoffice.org-report-builder'.				2002-02-02 02:02:02
+ dbaccess	source\ui\dlg\ExtensionNotPresent.src	0	string	RID_STR_EXTENSION_NOT_PRESENT				0	zh-TW	您需要有擴充軟體 %RPT_EXTENSION_NAME 才能開啟報表。\n\n請按一下 [下載...] 以下載及安裝擴充軟體。				2002-02-02 02:02:02
+ dbaccess	source\ui\dlg\RelationDlg.src	0	fixedline	DLG_REL_PROPERTIES	FL_CASC_DEL			84	af	Skrapopsies				2002-02-02 02:02:02
+ dbaccess	source\ui\dlg\RelationDlg.src	0	fixedline	DLG_REL_PROPERTIES	FL_CASC_DEL			84	ar	خيارات الحذف				2002-02-02 02:02:02
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unxsplash-finish-on-hangup.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unxsplash-finish-on-hangup.diff
@@ -0,0 +1,13 @@
+--- desktop/unx/source/start.c	2008-02-11 12:05:50.000000000 +0100
++++ desktop/unx/source/start.c	2008-02-11 12:05:45.000000000 +0100
+@@ -568,7 +568,9 @@ show_splash( int status_fd )
+ 
+         /* read from pipe if data available */
+         nRetval = poll( &aPfd, 1, 50 );
+-        if ( nRetval > 0 )
++        if ( aPfd.revents & ( POLLERR | POLLHUP | POLLNVAL ) )
++            bFinish = sal_True;
++        else if ( nRetval > 0 )
+             bFinish = !read_percent( status_fd, &nPercent );
+         else if ( nRetval < 0 )
+             bFinish = sal_True;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/reportdesigner-no-license.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/reportdesigner-no-license.diff
@@ -0,0 +1,75 @@
+Index: util/makefile.mk
+===================================================================
+RCS file: /cvs/dba/reportdesign/util/makefile.mk,v
+retrieving revision 1.3.4.1.4.4
+diff -u -u -r1.3.4.1.4.4 makefile.mk
+--- reportdesign/util/makefile.mk	27 Aug 2007 08:18:57 -0000	1.3.4.1.4.4
++++ reportdesign/util/makefile.mk	30 Aug 2007 14:55:14 -0000
+@@ -225,14 +225,6 @@
+                        $(ZIP1DIR)$/readme_en-US.html \
+                        $(ZIP1DIR)$/readme_en-US.txt
+
+-.IF "$(GUI)"!="WNT"
+-TXTFILES:=$(foreach,i,$(alllangiso) $(ZIP1DIR)$/registration$/LICENSE_$i)
+-LICLINES:=$(foreach,i,$(TXTFILES)  <license-text xlink:href="registration/$(i:f)" lang="$(subst,LICENSE_, $(i:f))" license-id="$(subst,LICENSE_, $(i:f))" />)
+-.ELSE   # "$(GUI)"!="WNT"
+-TXTFILES:=$(foreach,i,$(alllangiso) $(ZIP1DIR)$/registration$/license_$i.txt)
+-LICLINES:=$(foreach,i,$(TXTFILES)  <license-text xlink:href="registration/$(i:f)" lang="$(subst,.txt, $(subst,license_, $(i:f)))" license-id="$(subst,.txt, $(subst,license_, $(i:f)))" />)
+-.ENDIF  # "$(GUI)"!="WNT"
+-
+ REPORTJARFILES := \
+        $(ZIP1DIR)$/flute-1.3-jfree-20061107.jar                                                        \
+        $(ZIP1DIR)$/jcommon-1.0.10.jar                                                                          \
+@@ -251,7 +243,7 @@
+ .INCLUDE : target.mk
+ 
+ .IF "$(ZIP1TARGETN)"!=""
+-$(ZIP1TARGETN) :  $(TXTFILES) $(XMLFILES) $(HTMLFILES) $(REPORTJARFILES)
++$(ZIP1TARGETN) :  $(XMLFILES) $(HTMLFILES) $(REPORTJARFILES)
+ .ENDIF          # "$(ZIP1TARGETN)"!="
+ 
+ $(MISC)$/update_report.flag : $(XCU_FILES)
+@@ -261,17 +253,8 @@
+ 	@@-$(MKDIRHIER) $(@:d)
+ 	@@-$(RM) $(ZIP1DIR)$/description.xml
+ 	$(TYPE) pre.xml > $@
+-	$(TYPE) $(mktmp  $(LICLINES)) >> $@
+ 	$(TYPE) post.xml >> $@
+ 
+-$(ZIP1DIR)$/registration$/license_%.txt : $(SOLARBINDIR)$/osl$/license_%.txt
+-     @@-$(MKDIRHIER) $(@:d)
+-    $(COPY) $< $@
+-
+-$(ZIP1DIR)$/registration$/LICENSE_% : $(SOLARBINDIR)$/osl$/LICENSE_%
+-     @@-$(MKDIRHIER) $(@:d)
+-    $(COPY) $< $@
+-
+ $(ZIP1DIR)$/%.xml : %.xml
+ 	@@-$(MKDIRHIER) $(@:d)
+     $(COPY) $< $@
+Index: util/post.xml
+===================================================================
+RCS file: /cvs/dba/reportdesign/util/post.xml,v
+retrieving revision 1.2
+diff -u -u -r1.2 post.xml
+--- reportdesign/util/post.xml	2 Aug 2007 14:43:01 -0000	1.2
++++ reportdesign/util/post.xml	30 Aug 2007 14:55:14 -0000
+@@ -1,5 +1,3 @@
+-    </simple-license>
+-  </registration>
+   <version value="1.0.2"/>
+   <identifier value="com.sun.reportdesigner"/>
+   <dependencies>
+Index: util/pre.xml
+===================================================================
+RCS file: /cvs/dba/reportdesign/util/pre.xml,v
+retrieving revision 1.2.4.1.4.1
+diff -u -u -r1.2.4.1.4.1 pre.xml
+--- reportdesign/util/pre.xml	27 Aug 2007 05:33:34 -0000	1.2.4.1.4.1
++++ reportdesign/util/pre.xml	30 Aug 2007 14:55:14 -0000
+@@ -2,5 +2,3 @@
+ <description xmlns="http://openoffice.org/extensions/description/2006"
+     xmlns:d="http://openoffice.org/extensions/description/2006" 
+     xmlns:xlink="http://www.w3.org/1999/xlink">
+-  <registration>
+-    <simple-license accept-by="admin" default-license-id="en-US" >
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-pairkerning-on.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-pairkerning-on.diff
@@ -0,0 +1,11 @@
+--- svx/inc/akrnitem.hxx	2004-10-15 19:24:32.399851088 +0200
++++ svx/inc/akrnitem.hxx	2004-10-15 19:24:58.966812296 +0200
+@@ -93,7 +93,7 @@ class SvxAutoKernItem : public SfxBoolIt
+ public:
+ 	TYPEINFO();
+ 
+-	SvxAutoKernItem( const BOOL bAutoKern = FALSE,
++	SvxAutoKernItem( const BOOL bAutoKern = TRUE,
+ 					 const USHORT nId = ITEMID_AUTOKERN );
+ 
+ 	// "pure virtual Methoden" vom SfxPoolItem
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sd-custom-animation-fixes.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sd-custom-animation-fixes.diff
@@ -0,0 +1,309 @@
+--- sd/source/ui/animations/CustomAnimationCreateDialog.cxx	12 Mar 2008 11:33:03 -0000	1.12
++++ sd/source/ui/animations/CustomAnimationCreateDialog.cxx	17 Mar 2008 12:47:29 -0000	1.11.150.2
+@@ -253,6 +253,8 @@ public:
+ 	bool getIsPreview() const;
+ 	void setIsPreview( bool bIsPreview );
+ 
++	bool select( const OUString& rsPresetId );
++
+ private:
+ 	DECL_LINK( implSelectHdl, Control* );
+ 	DECL_LINK( implDoubleClickHdl, Control* );
+@@ -545,13 +547,33 @@ void CustomAnimationCreateTabPage::setIs
+ 	mpCBXPReview->Check( bIsPreview ? TRUE : FALSE );
+ }
+ 
++bool CustomAnimationCreateTabPage::select( const OUString& rsPresetId )
++{
++	USHORT nPos = mpLBEffects->GetEntryCount();
++	while( nPos-- )
++	{
++		void* pEntryData = mpLBEffects->GetEntryData( nPos );
++		if( pEntryData )
++		{
++			CustomAnimationPresetPtr& pPtr = *static_cast< CustomAnimationPresetPtr* >(pEntryData);
++			if( pPtr.get() && pPtr->getPresetId() == rsPresetId )
++			{
++				mpLBEffects->SelectEntryPos( nPos );
++				return true;
++			}
++		}
++	}
++
++	return false;
++}
++
+ // --------------------------------------------------------------------
+ 
+-CustomAnimationCreateDialog::CustomAnimationCreateDialog( Window* pParent, CustomAnimationPane* pPane, const std::vector< ::com::sun::star::uno::Any >& rTargets, bool bHasText  )
+-:	TabDialog( pParent, SdResId( DLG_CUSTOMANIMATION_CREATE ) ),
+-	mpPane( pPane ), 
+-	mrTargets( rTargets ),
+-	mfDuration( 2.0f )
++CustomAnimationCreateDialog::CustomAnimationCreateDialog( Window* pParent, CustomAnimationPane* pPane, const std::vector< ::com::sun::star::uno::Any >& rTargets, bool bHasText, const ::rtl::OUString& rsPresetId, double fDuration  )
++:	TabDialog( pParent, SdResId( DLG_CUSTOMANIMATION_CREATE ) )
++,	mpPane( pPane )
++,	mrTargets( rTargets )
++,	mfDuration( fDuration )
+ {
+ 	mpTabControl = new TabControl( this, SdResId( 1 ) );
+ 	mpOKButton = new OKButton(this, SdResId( 1 ) ) ;
+@@ -584,6 +606,19 @@ CustomAnimationCreateDialog::CustomAnima
+ 	mpTabControl->SetDeactivatePageHdl( LINK( this, CustomAnimationCreateDialog, implDeactivatePagekHdl ) );
+ 
+     setPosition();
++
++	// select current preset if available
++	if( rsPresetId.getLength() != 0 )
++	{
++		for( sal_uInt16 i = ENTRANCE; i <= MOTIONPATH; i++ )
++		{
++			if( mpTabPages[i]->select( rsPresetId ) )
++			{
++				mpTabControl->SetCurPageId( RID_TP_CUSTOMANIMATION_ENTRANCE + i );
++				break;
++			}
++		}
++	}
+ }
+ 
+ CustomAnimationCreateDialog::~CustomAnimationCreateDialog()
+--- sd/source/ui/animations/CustomAnimationCreateDialog.hxx	1 Aug 2007 11:08:21 -0000	1.7
++++ sd/source/ui/animations/CustomAnimationCreateDialog.hxx	12 Mar 2008 12:25:14 -0000	1.7.150.1
+@@ -62,7 +62,7 @@ class CustomAnimationCreateDialog : publ
+ {
+ 	friend class CustomAnimationCreateTabPage;
+ public:
+-	CustomAnimationCreateDialog( ::Window* pParent, CustomAnimationPane* pPane, const std::vector< ::com::sun::star::uno::Any >& rTargets, bool bHasText );
++	CustomAnimationCreateDialog( ::Window* pParent, CustomAnimationPane* pPane, const std::vector< ::com::sun::star::uno::Any >& rTargets, bool bHasText, const ::rtl::OUString& rsPresetId, double fDuration );
+ 	~CustomAnimationCreateDialog();
+ 
+ 	PathKind getCreatePathKind() const;
+--- sd/source/ui/animations/CustomAnimationDialog.cxx	7 Mar 2008 16:25:36 -0000	1.20
++++ sd/source/ui/animations/CustomAnimationDialog.cxx	17 Mar 2008 12:47:26 -0000	1.19.76.2
+@@ -2356,6 +2356,8 @@ private:
+ 	CheckBox	maCBXReverse;
+ 
+ 	const STLPropertySet* mpSet;
++
++	bool mbHasVisibleShapes;
+ };
+ 
+ CustomAnimationTextAnimTabPage::CustomAnimationTextAnimTabPage(Window* pParent, const ResId& rResId, const STLPropertySet* pSet)
+@@ -2366,7 +2368,8 @@ CustomAnimationTextAnimTabPage::CustomAn
+ 	maMFGroupAuto( this, SdResId( MF_GROUP_AUTO ) ),
+ 	maCBXAnimateForm( this, SdResId( CBX_ANIMATE_FORM ) ),
+ 	maCBXReverse( this, SdResId( CBX_REVERSE ) ),
+-	mpSet( pSet )
++	mpSet( pSet ),
++	mbHasVisibleShapes(true)
+ {
+ 	FreeResource();
+ 
+@@ -2379,6 +2382,9 @@ CustomAnimationTextAnimTabPage::CustomAn
+ 			maLBGroupText.SelectEntryPos( (USHORT)(nTextGrouping + 1) );
+ 	}
+ 
++	if( pSet->getPropertyState( nHandleHasVisibleShape ) != STLPropertyState_AMBIGUOUS )
++		pSet->getPropertyValue( nHandleHasVisibleShape ) >>= mbHasVisibleShapes;
++
+ 	if( pSet->getPropertyState( nHandleTextGroupingAuto ) != STLPropertyState_AMBIGUOUS )
+ 	{
+ 		double fTextGroupingAuto = 0.0;
+@@ -2491,6 +2497,16 @@ void CustomAnimationTextAnimTabPage::upd
+ 	maCBXGroupAuto.Enable( nPos > 1 );
+ 	maMFGroupAuto.Enable( nPos > 1 );
+ 	maCBXReverse.Enable( nPos > 0 );
++
++	if( !mbHasVisibleShapes && nPos > 0 )
++	{
++		maCBXAnimateForm.Check(FALSE);
++		maCBXAnimateForm.Enable(FALSE);
++	}
++	else
++	{
++		maCBXAnimateForm.Enable(TRUE);
++	}
+ }
+ 
+ IMPL_LINK( CustomAnimationTextAnimTabPage, implSelectHdl, Control*, EMPTYARG )
+@@ -2597,6 +2613,7 @@ STLPropertySet* CustomAnimationDialog::c
+ 	pSet->setPropertyDefaultValue( nHandleTrigger, aEmpty );
+ 
+ 	pSet->setPropertyDefaultValue( nHandleHasText, makeAny( sal_False ) );
++	pSet->setPropertyDefaultValue( nHandleHasVisibleShape, makeAny( sal_False ) );
+ 	pSet->setPropertyDefaultValue( nHandleTextGrouping, makeAny( (sal_Int32)-1 ) );
+ 	pSet->setPropertyDefaultValue( nHandleAnimateForm, makeAny( sal_True ) );
+ 	pSet->setPropertyDefaultValue( nHandleTextGroupingAuto, makeAny( (double)-1.0 ) );
+--- sd/source/ui/animations/CustomAnimationDialog.hxx	12 Dec 2006 16:51:07 -0000	1.6
++++ sd/source/ui/animations/CustomAnimationDialog.hxx	13 Mar 2008 15:03:48 -0000	1.6.282.1
+@@ -98,6 +98,8 @@ const sal_Int32 nHandleSoundEndAfterSlid
+ 
+ const sal_Int32 nHandleCommand = 31;
+ 
++const sal_Int32 nHandleHasVisibleShape = 32;
++
+ const sal_Int32 nPropertyTypeNone = 0;
+ const sal_Int32 nPropertyTypeDirection = 1;
+ const sal_Int32 nPropertyTypeSpokes = 2;
+--- sd/source/ui/animations/CustomAnimationList.cxx	6 Jul 2007 13:11:11 -0000	1.12
++++ sd/source/ui/animations/CustomAnimationList.cxx	12 Mar 2008 13:14:10 -0000	1.12.168.1
+@@ -569,14 +569,14 @@ void CustomAnimationList::KeyInput( cons
+ 	const int nKeyCode = rKEvt.GetKeyCode().GetCode();
+ 	switch( nKeyCode )
+ 	{
+-		case KEY_DELETE:	mpController->onContextMenu( CM_REMOVE );	break;
+-		case KEY_INSERT:	mpController->onContextMenu( CM_CREATE ); break;
++		case KEY_DELETE:	mpController->onContextMenu( CM_REMOVE ); return;
++		case KEY_INSERT:	mpController->onContextMenu( CM_CREATE ); return;
+ 		case KEY_SPACE:		
+ 			{
+ 				const Point aPos;
+ 				const CommandEvent aCEvt( aPos, COMMAND_CONTEXTMENU ); 
+ 				Command( aCEvt );
+-				break;
++				return;
+ 			}
+ 			
+ 	}
+--- sd/source/ui/animations/CustomAnimationPane.cxx	17 Aug 2007 15:33:28 -0000	1.29
++++ sd/source/ui/animations/CustomAnimationPane.cxx	17 Mar 2008 15:01:58 -0000	1.29.118.3
+@@ -80,6 +80,8 @@
+ #ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
+ #include <com/sun/star/awt/XWindow.hpp>
+ #endif
++#include <com/sun/star/drawing/LineStyle.hpp>
++#include <com/sun/star/drawing/FillStyle.hpp>
+ 
+ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
+ #include <comphelper/processfactory.hxx>
+@@ -201,23 +203,14 @@ using namespace ::com::sun::star::presen
+ using namespace ::com::sun::star::text;
+ 
+ using ::rtl::OUString;
+-using ::com::sun::star::uno::UNO_QUERY;
+-using ::com::sun::star::uno::UNO_QUERY_THROW;
+-using ::com::sun::star::uno::Any;
+-using ::com::sun::star::uno::makeAny;
+-using ::com::sun::star::uno::Sequence;
+-using ::com::sun::star::uno::Reference;
+-using ::com::sun::star::uno::Exception;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::drawing;
+ using ::com::sun::star::view::XSelectionSupplier;
+ using ::com::sun::star::view::XSelectionChangeListener;
+ using ::com::sun::star::frame::XController;
+ using ::com::sun::star::frame::XModel;
+ using ::com::sun::star::beans::XPropertySet;
+ using ::com::sun::star::beans::XPropertyChangeListener;
+-using ::com::sun::star::drawing::XDrawView;
+-using ::com::sun::star::drawing::XShape;
+-using ::com::sun::star::drawing::XShapes;
+-using ::com::sun::star::drawing::XDrawPage;
+ using ::com::sun::star::container::XIndexAccess;
+ using ::com::sun::star::container::XEnumerationAccess;
+ using ::com::sun::star::container::XEnumeration;
+@@ -422,6 +415,12 @@ void CustomAnimationPane::StateChanged( 
+ 		updateMotionPathTags();
+ }
+ 
++void CustomAnimationPane::KeyInput( const KeyEvent& rKEvt )
++{
++	if( mpCustomAnimationList )
++		mpCustomAnimationList->KeyInput( rKEvt );
++}
++
+ void CustomAnimationPane::addListener()
+ {
+ 	Link aLink( LINK(this,CustomAnimationPane,EventMultiplexerListener) );
+@@ -1362,6 +1361,36 @@ bool CustomAnimationPane::setProperty1Va
+ 	return bEffectChanged;
+ }
+ 
++static sal_Bool hasVisibleShape( const Reference< XShape >& xShape )
++{
++	try
++	{
++		const OUString sShapeType( xShape->getShapeType() );
++
++		if( sShapeType.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.presentation.TitleTextShape") ) ||
++			sShapeType.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.presentation.OutlinerShape") ) ||
++			sShapeType.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.presentation.SubtitleShape") ) ||
++			sShapeType.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.TextShape") ) )
++		{
++			const OUString sFillStyle( RTL_CONSTASCII_USTRINGPARAM("FillStyle" ) );
++			const OUString sLineStyle( RTL_CONSTASCII_USTRINGPARAM("LineStyle" ) );
++			Reference< XPropertySet > xSet( xShape, UNO_QUERY_THROW );
++
++			FillStyle eFillStyle;
++			xSet->getPropertyValue( sFillStyle ) >>= eFillStyle;
++
++			::com::sun::star::drawing::LineStyle eLineStyle;
++			xSet->getPropertyValue( sLineStyle ) >>= eLineStyle;
++
++			return eFillStyle != FillStyle_NONE || eLineStyle != ::com::sun::star::drawing::LineStyle_NONE;
++		}
++	}
++	catch( Exception& e )
++	{
++		(void)e;
++	}
++	return sal_True;
++}
+ 
+ STLPropertySet* CustomAnimationPane::createSelectionSet()
+ {
+@@ -1413,6 +1442,8 @@ STLPropertySet* CustomAnimationPane::cre
+ 		addValue( pSet, nHandlePresetId, makeAny( pEffect->getPresetId() ) );
+ 
+ 		addValue( pSet, nHandleHasText, makeAny( (sal_Bool)pEffect->hasText() ) );
++		
++		addValue( pSet, nHandleHasVisibleShape, Any( hasVisibleShape( pEffect->getTargetShape() ) ) );
+ 
+ 		Any aSoundSource;
+ 		if( pEffect->getAudio().is() )
+@@ -1926,6 +1957,9 @@ void CustomAnimationPane::onChange( bool
+ 
+ 	// first create vector of targets for dialog preview
+ 	std::vector< Any > aTargets;
++	OUString sPresetId;
++	double fDuration = 2.0f;
++
+ 	if( bCreate )
+ 	{
+ 		// gather shapes from the selection
+@@ -1992,15 +2026,22 @@ void CustomAnimationPane::onChange( bool
+ 		{
+ 			if( !bHasText || !(*aIter)->hasText() )
+ 				bHasText = false;
++
++			if( sPresetId.getLength() == 0 )
++			{
++				sPresetId = (*aIter)->getPresetId();
++				fDuration = (*aIter)->getDuration();
++			}
++
+ 			aTargets.push_back( (*aIter++)->getTarget() );
+ 		}
+ 	}
+ 
+-	CustomAnimationCreateDialog* pDlg = new CustomAnimationCreateDialog( this, this, aTargets, bHasText );
++	CustomAnimationCreateDialog* pDlg = new CustomAnimationCreateDialog( this, this, aTargets, bHasText, sPresetId, fDuration );
+ 	if( pDlg->Execute() )
+ 	{
+ 		addUndo();
+-		double fDuration = pDlg->getSelectedDuration();
++		fDuration = pDlg->getSelectedDuration();
+ 		CustomAnimationPresetPtr pDescriptor = pDlg->getSelectedPreset();
+ 		if( pDescriptor.get() )
+ 		{
+--- sd/source/ui/animations/CustomAnimationPane.hxx	6 Jul 2007 13:11:36 -0000	1.6
++++ sd/source/ui/animations/CustomAnimationPane.hxx	12 Mar 2008 13:14:10 -0000	1.6.168.1
+@@ -111,6 +111,7 @@ public:
+ 	// Control
+ 	virtual void Resize();
+ 	virtual void StateChanged( StateChangedType nStateChange );
++	virtual void KeyInput( const KeyEvent& rKEvt );
+ 
+ 	// ICustomAnimationListController
+ 	virtual void onSelect();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-sc.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-sc.diff
@@ -0,0 +1,28 @@
+Index: sc/source/ui/view/tabvwshg.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/tabvwshg.cxx,v
+retrieving revision 1.11
+retrieving revision 1.11.236.1
+diff -u -p -u -p -r1.11 -r1.11.236.1
+--- sc/source/ui/view/tabvwshg.cxx	14 Nov 2006 16:00:31 -0000	1.11
++++ sc/source/ui/view/tabvwshg.cxx	30 Aug 2007 09:22:04 -0000	1.11.236.1
+@@ -59,9 +59,7 @@ using namespace com::sun::star;
+ #include "document.hxx"
+ #include "drawview.hxx"
+ #include "globstr.hrc"
+-#ifndef _SV_SOUND_HXX
+-#include <vcl/sound.hxx>
+-#endif
++#include <avmedia/mediawindow.hxx>
+ 
+ //------------------------------------------------------------------------
+ 
+@@ -116,7 +114,7 @@ void ScTabViewShell::InsertURLButton( co
+ 	aAny <<= eButtonType;
+ 	xPropSet->setPropertyValue( rtl::OUString::createFromAscii( "ButtonType" ), aAny );
+ 
+-	if ( Sound::IsSoundFile( rURL ) )
++        if ( ::avmedia::MediaWindow::isMediaURL( rURL ) )
+ 	{
+ 		// #105638# OJ
+ 		aAny <<= sal_True;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-menu-fixes.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-menu-fixes.diff
@@ -0,0 +1,11 @@
+--- vcl/source/window/menu.cxx	19 Jul 2006 14:59:50 -0000	1.139
++++ vcl/source/window/menu.cxx	31 Jul 2006 15:20:05 -0000
+@@ -958,7 +958,7 @@ void Menu::ImplInit()
+ {
+     mnHighlightedItemPos = ITEMPOS_INVALID;
+     mpSalMenu       = NULL;
+-    nMenuFlags      = MENU_FLAG_SHOWCHECKIMAGES;
++    nMenuFlags      = 0;
+     nDefaultItem    = 0;
+     //bIsMenuBar      = FALSE;  // this is now set in the ctor, must not be changed here!!!
+     nSelectedId     = 0;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/speed-configmgr.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/speed-configmgr.diff
@@ -0,0 +1,83 @@
+Index: configmgr/source/localbe/localfilehelper.cxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/localbe/localfilehelper.cxx,v
+retrieving revision 1.3
+diff -u -p -u -r1.3 localfilehelper.cxx
+--- configmgr/source/localbe/localfilehelper.cxx	16 Feb 2005 16:46:51 -0000	1.3
++++ configmgr/source/localbe/localfilehelper.cxx	27 Oct 2005 11:21:18 -0000
+@@ -126,6 +128,10 @@ namespace configmgr 
+         if (_sURL.getLength() == 0)
+             return false;
+ 
++		// This method has no right to be so under-performing to
++		// achieve so, so little of any usefulness.
++		return true;
++
+         DirectoryItem aDirItem;
+         
+         DirectoryItem::RC rc = DirectoryItem::get(_sURL, aDirItem);
+Index: configmgr/source/localbe/localmultistratum.cxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/localbe/localmultistratum.cxx,v
+retrieving revision 1.5
+diff -u -p -u -r1.5 localmultistratum.cxx
+--- configmgr/source/localbe/localmultistratum.cxx	8 Sep 2005 04:04:46 -0000	1.5
++++ configmgr/source/localbe/localmultistratum.cxx	27 Oct 2005 11:21:18 -0000
+@@ -107,7 +107,7 @@ uno::Sequence< rtl::OUString > SAL_CALL 
+     rtl::OUString const aComponentUrl = aLayerUrl + componentToPath(aComponent);
+     
+     using namespace osl;
+-    const sal_uInt32 k_STATUS_FIELDS =  FileStatusMask_Type | FileStatusMask_FileName; 
++    const sal_uInt32 k_STATUS_FIELDS = FileStatusMask_FileName; 
+     Directory aComponentDirectory(aComponentUrl);
+     DirectoryItem aItem;
+     std::vector< rtl::OUString > aResult;
+@@ -132,13 +132,12 @@ uno::Sequence< rtl::OUString > SAL_CALL 
+                 OSL_TRACE("Reading Component Directory - Error (%u) getting status of directory item.\n", unsigned(errcode));
+                 break;
+             }
+-
+-            OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_Type), "Could not get type of directory item");
+-            if (aItemDescriptor.getFileType() != FileStatus::Regular)
+-                continue;
+                     
+             OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_FileName), "Could not get Name of component found");
+             OUString const aFileName = aItemDescriptor.getFileName();
++
++			// It is reasonable to assume a .xcu file is not a directory & =>
++			// not stat each directory entry at considerable cost.
+             if (!aFileName.endsWithIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(kLocalDataSuffix)))
+                 continue;
+ 
+Index: configmgr/source/misc/filehelper.cxx
+===================================================================
+RCS file: /cvs/util/configmgr/source/misc/filehelper.cxx,v
+retrieving revision 1.16
+diff -u -p -u -r1.16 filehelper.cxx
+--- configmgr/source/misc/filehelper.cxx	8 Sep 2005 04:09:44 -0000	1.16
++++ configmgr/source/misc/filehelper.cxx	27 Oct 2005 11:21:18 -0000
+@@ -143,9 +143,22 @@ namespace configmgr 
+ 		static const TimeValue k_NullTime = {0,0};		
+         sal_uInt64 aSize = 0;
+         rModifyTime = k_NullTime;
++		rtl::OUString aURL;
+ 
+-		DirectoryItem aItem;		
+-		if (osl::FileBase::E_None == DirectoryItem::get(_sURL, aItem))
++		DirectoryItem aItem;
++
++#ifndef STAT_LOTS_OF_UNUSED_FILES
++		// Statting every file takes way to long - we can use the directory
++		// time-stamp & size instead, if we need to provoke an update
++		// a simple cat > foo; rm foo will do that.
++		// The dir size is (hopefully) non-0 and a good enough proxy value.
++
++		aURL = FileHelper::getParentDir(_sURL);
++#else
++		aURL = _sURL;
++#endif
++
++		if (osl::FileBase::E_None == DirectoryItem::get(aURL, aItem))
+ 		{
+ 			FileStatus aStatus(osl_FileStatus_Mask_ModifyTime|osl_FileStatus_Mask_Type|osl_FileStatus_Mask_FileSize);			
+ 			if (osl::FileBase::E_None == aItem.getFileStatus(aStatus))
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-sync-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-sync-fix.diff
@@ -0,0 +1,48 @@
+diff -rup slideshow/source/engine/OGLTrans-orig1/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans-orig1/OGLTrans_TransitionerImpl.cxx	2008-03-28 11:00:45.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-03-28 11:22:52.000000000 +0100
+@@ -183,16 +183,6 @@ void OGLTransitionerImpl::initialize( co
+         instance = new OGLTransitionerImpl( NULL );
+         instance->initWindowFromSlideShowView( xView, 0, 0 );
+ 
+-        if( instance->GLWin.HasGLXExtension("GLX_SGI_swap_control" ) ) {
+-            // enable vsync
+-            typedef GLint (*glXSwapIntervalProc)(GLint);
+-            glXSwapIntervalProc glXSwapInterval = (glXSwapIntervalProc) unx::glXGetProcAddress( (const GLubyte*) "glXSwapIntervalSGI" );
+-            if( glXSwapInterval ) {
+-                glXSwapInterval( 1 );
+-                OSL_TRACE("set swap interval to 1 (enable vsync)");
+-            }
+-        }
+-
+         const GLubyte* version = glGetString( GL_VERSION );
+         if( version && version[0] ) {
+             cnGLVersion = version[0] - '0';
+@@ -349,6 +339,16 @@ bool OGLTransitionerImpl::initWindowFrom
+         return false;
+     }
+ 
++    if( GLWin.HasGLXExtension("GLX_SGI_swap_control" ) ) {
++        // enable vsync
++        typedef GLint (*glXSwapIntervalProc)(GLint);
++        glXSwapIntervalProc glXSwapInterval = (glXSwapIntervalProc) unx::glXGetProcAddress( (const GLubyte*) "glXSwapIntervalSGI" );
++        if( glXSwapInterval ) {
++            glXSwapInterval( 1 );
++            OSL_TRACE("set swap interval to 1 (enable vsync)");
++        }
++    }
++
+     glEnable(GL_CULL_FACE);
+     glCullFace(GL_BACK);
+     glClearColor (0, 0, 0, 0);
+@@ -557,6 +557,10 @@ void SAL_CALL OGLTransitionerImpl::updat
+ 	unx::glXSwapBuffers(GLWin.dpy, GLWin.win);
+ 	if( pWindow )
+         pWindow->Show();
++
++    /* flush & sync */
++    glFlush();
++    XSync( GLWin.dpy, false );
+ }
+ 
+ // we are about to be disposed (someone call dispose() on us)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/shared-worksheets.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/shared-worksheets.diff
@@ -0,0 +1,175 @@
+diff -pur sc.orig/source/ui/docshell/docsh.cxx sc/source/ui/docshell/docsh.cxx
+--- sc.orig/source/ui/docshell/docsh.cxx	2007-01-17 14:24:04.000000000 +0100
++++ sc/source/ui/docshell/docsh.cxx	2007-01-17 18:36:18.000000000 +0100
+@@ -59,6 +59,7 @@
+ #include <vcl/virdev.hxx>
+ #include <vcl/waitobj.hxx>
+ #include <svtools/ctrltool.hxx>
++#include <svtools/ehdl.hxx>
+ #include <svtools/sfxecode.hxx>
+ #include <svtools/zforlist.hxx>
+ #include <sfx2/app.hxx>
+@@ -102,6 +103,7 @@
+ 
+ // INCLUDE ---------------------------------------------------------------
+ 
++#include "acredlin.hxx"
+ #include "cell.hxx"
+ #include "global.hxx"
+ #include "filter.hxx"
+@@ -131,6 +133,7 @@
+ #include "printfun.hxx"
+ #include "dociter.hxx"
+ #include "cellform.hxx"
++#include "reffact.hxx"
+ #include "chartlis.hxx"
+ #include "hints.hxx"
+ #include "xmlwrap.hxx"
+@@ -141,6 +144,7 @@
+ #include "compiler.hxx"
+ #include "cfgids.hxx"
+ #include "warnpassword.hxx"
++#include "chgviset.hxx"
+ 
+ #include "docsh.hxx"
+ 
+@@ -1445,55 +1449,93 @@ BOOL __EXPORT ScDocShell::ConvertFrom( S
+ 	return bRet;
+ }
+ 
+-
+-BOOL __EXPORT ScDocShell::Save()
++void ScDocShell::LoadAndMergeSharedWorksheet( SfxMedium* pMedium )
+ {
+-	RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::Save" );
++    if ( /* FIXME !bSharedWorksheet ||*/ !pMedium )
++        return;
+ 
+-	ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() );
++    fprintf( stderr, "Shared worksheet...\n" );
+ 
+-	//	DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave
++    // FIXME ExecuteChangeProtectionDialog()
+ 
+-	ScChartListenerCollection* pCharts = aDocument.GetChartListenerCollection();
+-	if (pCharts)
+-		pCharts->UpdateDirtyCharts();					// Charts, die noch upgedated werden muessen
+-	if (pAutoStyleList)
+-		pAutoStyleList->ExecuteAllNow();				// Vorlagen-Timeouts jetzt ausfuehren
+-	if (GetCreateMode()== SFX_CREATE_MODE_STANDARD)
+-        SfxObjectShell::SetVisArea( Rectangle() );     // normal bearbeitet -> keine VisArea
++    bool bHasConflicts = false;
++    do {
++        SfxMedium *pMed = new SfxMedium( pMedium->GetName(), STREAM_STD_READ, FALSE, pMedium->GetFilter() /* TODO the other params as well? */ );
++        SfxErrorContext aEc( ERRCTX_SFX_OPENDOC, pMed->GetName() );
+ 
+-	//	wait cursor is handled with progress bar
+-    BOOL bRet = SfxObjectShell::Save();
+-	if( bRet )
+-        bRet = SaveXML( GetMedium(), NULL );
+-	return bRet;
+-}
++        // load the most recent version of the doc
++        ScDocShell* pOtherDocSh = new ScDocShell;
++        SfxObjectShellRef aDocShTablesRef = pOtherDocSh;
++        pOtherDocSh->DoLoad( pMed );
++        ULONG nErr = pOtherDocSh->GetErrorCode();
+ 
++        // merge just if OK - we ignore errors
++        if ( pOtherDocSh->GetError() )
++            bHasConflicts = false;
++        else
++        {
++            MergeDocument( *pOtherDocSh->GetDocument() );
++            bHasConflicts = !bHasConflicts/* FIXME real value according to whether there were conflicts or not */;
+ 
+-BOOL __EXPORT ScDocShell::SaveAs( SfxMedium& rMedium )
++            if ( bHasConflicts )
++            {
++                // TODO Unlock
++                ScAcceptChgModalDlg aChangeDlg( GetDialogParent(), GetViewData() );
++                aChangeDlg.Execute();
++                // TODO Lock
++            }
++        }
++        pOtherDocSh->DoClose(); // delete happens with the Ref
++    } while ( bHasConflicts );
++}
++
++BOOL ScDocShell::impl_Save( SfxMedium *pMedium )
+ {
+-	RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::SaveAs" );
++    bool bSaveAs = true;
++    if ( !pMedium )
++    {
++        bSaveAs = false;
++        pMedium = GetMedium();
++    }
+ 
+-	ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() );
++    ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() );
+ 
+-	//	DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave
++    // DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave
+ 
+-	ScChartListenerCollection* pCharts = aDocument.GetChartListenerCollection();
+-	if (pCharts)
+-		pCharts->UpdateDirtyCharts();					// Charts, die noch upgedated werden muessen
+-	if (pAutoStyleList)
+-		pAutoStyleList->ExecuteAllNow();				// Vorlagen-Timeouts jetzt ausfuehren
+-	if (GetCreateMode()== SFX_CREATE_MODE_STANDARD)
++    ScChartListenerCollection* pCharts = aDocument.GetChartListenerCollection();
++    if (pCharts)
++        pCharts->UpdateDirtyCharts();					// Charts, die noch upgedated werden muessen
++    if (pAutoStyleList)
++        pAutoStyleList->ExecuteAllNow();				// Vorlagen-Timeouts jetzt ausfuehren
++    if (GetCreateMode()== SFX_CREATE_MODE_STANDARD)
+         SfxObjectShell::SetVisArea( Rectangle() );     // normal bearbeitet -> keine VisArea
+ 
+-	//	wait cursor is handled with progress bar
+-    BOOL bRet = SfxObjectShell::SaveAs( rMedium );
+-	if( bRet )
+-        bRet = SaveXML( &rMedium, NULL );
++    // TODO Lock
++    LoadAndMergeSharedWorksheet( pMedium );
+ 
+-	return bRet;
++    // wait cursor is handled with progress bar
++    BOOL bRet = bSaveAs? SfxObjectShell::SaveAs( *pMedium ): SfxObjectShell::Save();
++    if( bRet )
++        bRet = SaveXML( pMedium, NULL );
++
++    // TODO Unlock
++
++    return bRet;
+ }
+ 
++BOOL __EXPORT ScDocShell::Save()
++{
++    RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::Save" );
++
++    return impl_Save( NULL );
++}
++
++BOOL __EXPORT ScDocShell::SaveAs( SfxMedium& rMedium )
++{
++    RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::SaveAs" );
++
++    return impl_Save( &rMedium );
++}
+ 
+ BOOL __EXPORT ScDocShell::IsInformationLost()
+ {
+diff -pur sc.orig/source/ui/inc/docsh.hxx sc/source/ui/inc/docsh.hxx
+--- sc.orig/source/ui/inc/docsh.hxx	2007-01-17 14:24:04.000000000 +0100
++++ sc/source/ui/inc/docsh.hxx	2007-01-17 18:57:36.000000000 +0100
+@@ -150,6 +150,9 @@ class SC_DLLPUBLIC ScDocShell: public Sf
+ 	SC_DLLPRIVATE void			InitOptions();
+ 	SC_DLLPRIVATE void			ResetDrawObjectShell();
+ 
++	SC_DLLPRIVATE void			LoadAndMergeSharedWorksheet( SfxMedium* pMedium );
++	SC_DLLPRIVATE BOOL			impl_Save( SfxMedium *pMedium );
++
+ 	SC_DLLPRIVATE BOOL			GetTabParam( const SfxItemSet* pArgs, USHORT nId, SCTAB& rTab );
+     //BOOL            LoadCalc( SotStorage* pStor );
+     //BOOL            SaveCalc( SotStorage* pStor );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/automation-testtool-oobuildfix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/automation-testtool-oobuildfix.diff
@@ -0,0 +1,17 @@
+Index: automation/source/testtool/objtest.cxx
+===================================================================
+RCS file: /cvs/util/automation/source/testtool/objtest.cxx,v
+retrieving revision 1.20
+diff -u -p -r1.20 objtest.cxx
+--- automation/source/testtool/objtest.cxx	6 Oct 2005 12:37:43 -0000	1.20
++++ automation/source/testtool/objtest.cxx	3 Feb 2006 17:40:30 -0000
+@@ -2715,7 +2719,8 @@ void TestToolObj::DebugFindNoErrors( BOO
+ 
+ SbxVariable* TestToolObj::Find( const String& aStr, SbxClassType aType)
+ {
+-	if ( BasicRuntimeAccess::IsRunInit() )            // wegen Find im "Global" Befehl des Basic
++	if ( BasicRuntimeAccess::IsRunInit() 
++	|| ( aStr == String( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) ) ) )            // wegen Find im "Global" Befehl des Basic
+     	return NULL;
+ 
+ 	SbxVariableRef Old = SbxObject::Find(aStr, aType );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/palette-enhanced-hatch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/palette-enhanced-hatch.diff
@@ -0,0 +1,906 @@
+--- extras/source/palettes/standard.soh.old	2001-03-16 14:44:46.000000000 +0100
++++ extras/source/palettes/standard.soh	2007-11-04 09:54:42.000000000 +0100
+@@ -1,14 +1,888 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-
+-<office:hatch-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
+- <draw:hatch draw:name="Black 0 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="0"/>
+- <draw:hatch draw:name="Black 45 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="450"/>
+- <draw:hatch draw:name="Black -45 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="3150"/>
+- <draw:hatch draw:name="Black 90 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="900"/>
+- <draw:hatch draw:name="Red Crossed 45 Degrees" draw:style="double" draw:color="#800000" draw:distance="0.0299inch" draw:rotation="450"/>
+- <draw:hatch draw:name="Red Crossed 0 Degrees" draw:style="double" draw:color="#800000" draw:distance="0.0299inch" draw:rotation="900"/>
+- <draw:hatch draw:name="Blue Crossed 45 Degrees" draw:style="double" draw:color="#000080" draw:distance="0.0299inch" draw:rotation="450"/>
+- <draw:hatch draw:name="Blue Crossed 0 Degrees" draw:style="double" draw:color="#000080" draw:distance="0.0299inch" draw:rotation="900"/>
+- <draw:hatch draw:name="Blue Triple 90 Degrees" draw:style="triple" draw:color="#0000ff" draw:distance="0.0402inch" draw:rotation="900"/>
+- <draw:hatch draw:name="Black 45 Degrees Wide" draw:style="single" draw:color="#000000" draw:distance="0.2inch" draw:rotation="450"/>
+-</office:hatch-table>
+\ Nincs újsor a fájl végén
++<?xml version="1.0" encoding="UTF-8"?>
++<office:hatch-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
++
++<!-- Hatching of original OpenOffice.org located in standard.soh file -->
++<draw:hatch draw:name="Black 0 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="0"/>
++<draw:hatch draw:name="Black 45 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="450"/>
++<draw:hatch draw:name="Black -45 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="3150"/>
++<draw:hatch draw:name="Black 90 Degrees" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="900"/>
++<draw:hatch draw:name="Red Crossed 45 Degrees" draw:style="double" draw:color="#800000" draw:distance="0.0299inch" draw:rotation="450"/>
++<draw:hatch draw:name="Red Crossed 0 Degrees" draw:style="double" draw:color="#800000" draw:distance="0.0299inch" draw:rotation="900"/>
++<draw:hatch draw:name="Blue Crossed 45 Degrees" draw:style="double" draw:color="#000080" draw:distance="0.0299inch" draw:rotation="450"/>
++<draw:hatch draw:name="Blue Crossed 0 Degrees" draw:style="double" draw:color="#000080" draw:distance="0.0299inch" draw:rotation="900"/>
++<draw:hatch draw:name="Blue Triple 90 Degrees" draw:style="triple" draw:color="#0000ff" draw:distance="0.0402inch" draw:rotation="900"/>
++<draw:hatch draw:name="Black 45 Degrees Wide" draw:style="single" draw:color="#000000" draw:distance="0.2in" draw:rotation="450"/>
++
++<!-- Hatching with general sizes -->
++<draw:hatch draw:name="Horizontal black 5 mm" draw:style="single" draw:color="#000000" draw:distance="0.1114in" draw:rotation="0"/>
++<draw:hatch draw:name="Horizontal black 1 cm" draw:style="single" draw:color="#000000" draw:distance="0.2232in" draw:rotation="0"/>
++<draw:hatch draw:name="Horizontal black 1 inch" draw:style="single" draw:color="#000000" draw:distance="0.5669in" draw:rotation="0"/>
++<draw:hatch draw:name="Vertical black 5 mm" draw:style="single" draw:color="#000000" draw:distance="0.1114in" draw:rotation="900"/>
++<draw:hatch draw:name="Vertical black 1 cm" draw:style="single" draw:color="#000000" draw:distance="0.2232in" draw:rotation="900"/>
++<draw:hatch draw:name="Vertical black 1 inch" draw:style="single" draw:color="#000000" draw:distance="0.5669in" draw:rotation="900"/>
++<draw:hatch draw:name="Checkboard black 5 mm" draw:style="double" draw:color="#000000" draw:distance="0.1114in" draw:rotation="0"/>
++<draw:hatch draw:name="Checkboard black 1 cm" draw:style="double" draw:color="#000000" draw:distance="0.2232in" draw:rotation="0"/>
++<draw:hatch draw:name="Checkboard black 1 inch" draw:style="double" draw:color="#000000" draw:distance="0.5669in" draw:rotation="0"/>
++
++<!-- General Hatching Container -->
++<draw:hatch draw:name="Hatching 1" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="0"/>
++<draw:hatch draw:name="Hatching 2" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 3" draw:style="single" draw:color="#000000" draw:distance="0.0402inch" draw:rotation="900"/>
++<draw:hatch draw:name="Hatching 4" draw:style="single" draw:color="#000000" draw:distance="0.0799inch" draw:rotation="0"/>
++<draw:hatch draw:name="Hatching 5" draw:style="single" draw:color="#000000" draw:distance="0.0799inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 6" draw:style="single" draw:color="#000000" draw:distance="0.0799inch" draw:rotation="900"/>
++<draw:hatch draw:name="Hatching 7" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="0"/>
++<draw:hatch draw:name="Hatching 8" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 9" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="900"/>
++<draw:hatch draw:name="Hatching 10" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="100"/>
++<draw:hatch draw:name="Hatching 11" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="200"/>
++<draw:hatch draw:name="Hatching 12" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="300"/>
++<draw:hatch draw:name="Hatching 13" draw:style="single" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="400"/>
++<draw:hatch draw:name="Hatching 14" draw:style="double" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="0"/>
++<draw:hatch draw:name="Hatching 15" draw:style="double" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 16" draw:style="double" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="150"/>
++<draw:hatch draw:name="Hatching 17" draw:style="double" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="300"/>
++<draw:hatch draw:name="Hatching 18" draw:style="double" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 19" draw:style="double" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="110"/>
++<draw:hatch draw:name="Hatching 20" draw:style="double" draw:color="#000000" draw:distance="0.1598inch" draw:rotation="260"/>
++<draw:hatch draw:name="Hatching 21" draw:style="triple" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="0"/>
++<draw:hatch draw:name="Hatching 22" draw:style="triple" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 23" draw:style="triple" draw:color="#000000" draw:distance="0.1201inch" draw:rotation="900"/>
++<draw:hatch draw:name="Hatching 24" draw:style="triple" draw:color="#000000" draw:distance="0.1598inch" draw:rotation="220"/>
++<draw:hatch draw:name="Hatching 25" draw:style="triple" draw:color="#000000" draw:distance="0.2inch" draw:rotation="650"/>
++<draw:hatch draw:name="Hatching 26" draw:style="triple" draw:color="#000000" draw:distance="0.2inch" draw:rotation="560"/>
++<draw:hatch draw:name="Hatching 27" draw:style="single" draw:color="#0000ff" draw:distance="0.1201inch" draw:rotation="560"/>
++<draw:hatch draw:name="Hatching 28" draw:style="single" draw:color="#0000ff" draw:distance="0.1201inch" draw:rotation="0"/>
++<draw:hatch draw:name="Hatching 29" draw:style="single" draw:color="#0000ff" draw:distance="0.1201inch" draw:rotation="900"/>
++<draw:hatch draw:name="Hatching 30" draw:style="single" draw:color="#ff0000" draw:distance="0.1201inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 31" draw:style="double" draw:color="#ffff00" draw:distance="0.1201inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 32" draw:style="triple" draw:color="#ff00ff" draw:distance="0.1201inch" draw:rotation="650"/>
++<draw:hatch draw:name="Hatching 33" draw:style="triple" draw:color="#663300" draw:distance="0.1201inch" draw:rotation="650"/>
++<draw:hatch draw:name="Hatching 34" draw:style="triple" draw:color="#ff6633" draw:distance="0.1614inch" draw:rotation="450"/>
++<draw:hatch draw:name="Hatching 35" draw:style="double" draw:color="#e6e64c" draw:distance="0.1614inch" draw:rotation="450"/>
++
++<!-- General Hatching Container -->
++<draw:hatch draw:name = "Light single" draw:style ="single" draw:color = "#EDF5DD" draw:distance ="0.2525inch" draw:rotation ="900"/>
++<draw:hatch draw:name = "Light double" draw:style ="double" draw:color = "#EDF5DD" draw:distance ="0.2525inch" draw:rotation ="900"/>
++<draw:hatch draw:name = "Light triple" draw:style ="triple" draw:color = "#EDF5DD" draw:distance ="0.2525inch" draw:rotation ="900"/>
++<draw:hatch draw:name = "Black single" draw:style = "single" draw:color = "#000000" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue single" draw:style = "single" draw:color = "#000080" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green single" draw:style = "single" draw:color = "#0080000" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise single" draw:style = "single" draw:color = "#008080" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red single" draw:style = "single" draw:color = "#800000" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta single" draw:style = "single" draw:color = "#800080" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown single" draw:style = "single" draw:color = "#808000" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray single" draw:style = "single" draw:color = "#808080" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light gray single" draw:style = "single" draw:color = "#c0c0c0" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light blue single" draw:style = "single" draw:color = "#0000ff" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light green single" draw:style = "single" draw:color = "#00ff00" draw:distance = "0.04inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light cyan single" draw:style = "single" draw:color = "#00ffff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light red single" draw:style = "single" draw:color = "#ff0000" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light magenta single" draw:style = "single" draw:color = "#ff00ff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow single" draw:style = "single" draw:color = "#ffff00" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "White single" draw:style = "single" draw:color = "#ffffff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 80% single" draw:style = "single" draw:color = "#333333" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 70% single" draw:style = "single" draw:color = "#4c4c4c" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 60% single" draw:style = "single" draw:color = "#666666" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 40% single" draw:style = "single" draw:color = "#999999" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 30% single" draw:style = "single" draw:color = "#b3b3b3" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 20% single" draw:style = "single" draw:color = "#cccccc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 10% single" draw:style = "single" draw:color = "#e6e6e6" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue gray single" draw:style = "single" draw:color = "#e6e6ff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 1 single" draw:style = "single" draw:color = "#ff3366" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 2 single" draw:style = "single" draw:color = "#dc2300" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 3 single" draw:style = "single" draw:color = "#b84700" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 4 single" draw:style = "single" draw:color = "#ff3333" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 5 single" draw:style = "single" draw:color = "#eb613d" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 6 single" draw:style = "single" draw:color = "#b84747" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 7 single" draw:style = "single" draw:color = "#b80047" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 8 single" draw:style = "single" draw:color = "#99284c" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 1 single" draw:style = "single" draw:color = "#94006b" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 2 single" draw:style = "single" draw:color = "#94476b" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 3 single" draw:style = "single" draw:color = "#944794" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 4 single" draw:style = "single" draw:color = "#9966cc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 5 single" draw:style = "single" draw:color = "#6b4794" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 6 single" draw:style = "single" draw:color = "#6b2394" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 7 single" draw:style = "single" draw:color = "#6b0094" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 8 single" draw:style = "single" draw:color = "#5e11a6" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 1 single" draw:style = "single" draw:color = "#280099" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 2 single" draw:style = "single" draw:color = "#4700b8" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 3 single" draw:style = "single" draw:color = "#2300dc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 4 single" draw:style = "single" draw:color = "#2323dc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 5 single" draw:style = "single" draw:color = "#0047ff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 6 single" draw:style = "single" draw:color = "#0099ff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 7 single" draw:style = "single" draw:color = "#00b8ff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 8 single" draw:style = "single" draw:color = "#99ccff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 1 single" draw:style = "single" draw:color = "#00dcff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 2 single" draw:style = "single" draw:color = "#00cccc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 3 single" draw:style = "single" draw:color = "#23b8dc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 4 single" draw:style = "single" draw:color = "#47b8b8" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 5 single" draw:style = "single" draw:color = "#33a3a3" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 6 single" draw:style = "single" draw:color = "#198a8a" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 7 single" draw:style = "single" draw:color = "#006b6b" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 8 single" draw:style = "single" draw:color = "#004a4a" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 1 single" draw:style = "single" draw:color = "#355e00" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 2 single" draw:style = "single" draw:color = "#5c8526" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 3 single" draw:style = "single" draw:color = "#7da647" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 4 single" draw:style = "single" draw:color = "#94bd5e" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 5 single" draw:style = "single" draw:color = "#00ae00" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 6 single" draw:style = "single" draw:color = "#33cc66" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 7 single" draw:style = "single" draw:color = "#3deb3d" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 8 single" draw:style = "single" draw:color = "#23ff23" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 1 single" draw:style = "single" draw:color = "#e6ff00" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 2 single" draw:style = "single" draw:color = "#ffff99" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 3 single" draw:style = "single" draw:color = "#ffff66" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 4 single" draw:style = "single" draw:color = "#e6e64c" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 5 single" draw:style = "single" draw:color = "#cccc00" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 6 single" draw:style = "single" draw:color = "#b3b300" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 7 single" draw:style = "single" draw:color = "#808019" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 8 single" draw:style = "single" draw:color = "#666600" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 1 single" draw:style = "single" draw:color = "#4c1900" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 2 single" draw:style = "single" draw:color = "#663300" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 3 single" draw:style = "single" draw:color = "#804c19" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 4 single" draw:style = "single" draw:color = "#996633" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 1 single" draw:style = "single" draw:color = "#cc6633" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 2 single" draw:style = "single" draw:color = "#ff6633" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 3 single" draw:style = "single" draw:color = "#ff9966" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 4 single" draw:style = "single" draw:color = "#ffcc99" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Violet single" draw:style = "single" draw:color = "#9999ff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Bordeaux single" draw:style = "single" draw:color = "#993366" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Pale yellow single" draw:style = "single" draw:color = "#ffffcc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Pale green single" draw:style = "single" draw:color = "#ccffff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Dark violet single" draw:style = "single" draw:color = "#660066" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Salmon single" draw:style = "single" draw:color = "#ff8080" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sea blue single" draw:style = "single" draw:color = "#0066cc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 1 single" draw:style = "single" draw:color = "#333366" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 2 single" draw:style = "single" draw:color = "#666699" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 3 single" draw:style = "single" draw:color = "#9999cc" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 4 single" draw:style = "single" draw:color = "#ccccff" draw:distance = "0.04inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Black double" draw:style = "double" draw:color = "#000000" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue double" draw:style = "double" draw:color = "#000080" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green double" draw:style = "double" draw:color = "#0080000" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise double" draw:style = "double" draw:color = "#008080" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red double" draw:style = "double" draw:color = "#800000" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta double" draw:style = "double" draw:color = "#800080" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown double" draw:style = "double" draw:color = "#808000" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray double" draw:style = "double" draw:color = "#808080" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light gray double" draw:style = "double" draw:color = "#c0c0c0" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light blue double" draw:style = "double" draw:color = "#0000ff" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light green double" draw:style = "double" draw:color = "#00ff00" draw:distance = "0.02inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light cyan double" draw:style = "double" draw:color = "#00ffff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light red double" draw:style = "double" draw:color = "#ff0000" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light magenta double" draw:style = "double" draw:color = "#ff00ff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow double" draw:style = "double" draw:color = "#ffff00" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "White double" draw:style = "double" draw:color = "#ffffff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 80% double" draw:style = "double" draw:color = "#333333" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 70% double" draw:style = "double" draw:color = "#4c4c4c" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 60% double" draw:style = "double" draw:color = "#666666" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 40% double" draw:style = "double" draw:color = "#999999" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 30% double" draw:style = "double" draw:color = "#b3b3b3" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 20% double" draw:style = "double" draw:color = "#cccccc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 10% double" draw:style = "double" draw:color = "#e6e6e6" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue gray double" draw:style = "double" draw:color = "#e6e6ff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 1 double" draw:style = "double" draw:color = "#ff3366" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 2 double" draw:style = "double" draw:color = "#dc2300" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 3 double" draw:style = "double" draw:color = "#b84700" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 4 double" draw:style = "double" draw:color = "#ff3333" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 5 double" draw:style = "double" draw:color = "#eb613d" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 6 double" draw:style = "double" draw:color = "#b84747" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 7 double" draw:style = "double" draw:color = "#b80047" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 8 double" draw:style = "double" draw:color = "#99284c" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 1 double" draw:style = "double" draw:color = "#94006b" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 2 double" draw:style = "double" draw:color = "#94476b" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 3 double" draw:style = "double" draw:color = "#944794" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 4 double" draw:style = "double" draw:color = "#9966cc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 5 double" draw:style = "double" draw:color = "#6b4794" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 6 double" draw:style = "double" draw:color = "#6b2394" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 7 double" draw:style = "double" draw:color = "#6b0094" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 8 double" draw:style = "double" draw:color = "#5e11a6" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 1 double" draw:style = "double" draw:color = "#280099" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 2 double" draw:style = "double" draw:color = "#4700b8" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 3 double" draw:style = "double" draw:color = "#2300dc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 4 double" draw:style = "double" draw:color = "#2323dc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 5 double" draw:style = "double" draw:color = "#0047ff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 6 double" draw:style = "double" draw:color = "#0099ff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 7 double" draw:style = "double" draw:color = "#00b8ff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 8 double" draw:style = "double" draw:color = "#99ccff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 1 double" draw:style = "double" draw:color = "#00dcff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 2 double" draw:style = "double" draw:color = "#00cccc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 3 double" draw:style = "double" draw:color = "#23b8dc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 4 double" draw:style = "double" draw:color = "#47b8b8" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 5 double" draw:style = "double" draw:color = "#33a3a3" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 6 double" draw:style = "double" draw:color = "#198a8a" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 7 double" draw:style = "double" draw:color = "#006b6b" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 8 double" draw:style = "double" draw:color = "#004a4a" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 1 double" draw:style = "double" draw:color = "#355e00" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 2 double" draw:style = "double" draw:color = "#5c8526" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 3 double" draw:style = "double" draw:color = "#7da647" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 4 double" draw:style = "double" draw:color = "#94bd5e" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 5 double" draw:style = "double" draw:color = "#00ae00" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 6 double" draw:style = "double" draw:color = "#33cc66" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 7 double" draw:style = "double" draw:color = "#3deb3d" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 8 double" draw:style = "double" draw:color = "#23ff23" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 1 double" draw:style = "double" draw:color = "#e6ff00" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 2 double" draw:style = "double" draw:color = "#ffff99" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 3 double" draw:style = "double" draw:color = "#ffff66" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 4 double" draw:style = "double" draw:color = "#e6e64c" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 5 double" draw:style = "double" draw:color = "#cccc00" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 6 double" draw:style = "double" draw:color = "#b3b300" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 7 double" draw:style = "double" draw:color = "#808019" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 8 double" draw:style = "double" draw:color = "#666600" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 1 double" draw:style = "double" draw:color = "#4c1900" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 2 double" draw:style = "double" draw:color = "#663300" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 3 double" draw:style = "double" draw:color = "#804c19" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 4 double" draw:style = "double" draw:color = "#996633" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 1 double" draw:style = "double" draw:color = "#cc6633" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 2 double" draw:style = "double" draw:color = "#ff6633" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 3 double" draw:style = "double" draw:color = "#ff9966" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 4 double" draw:style = "double" draw:color = "#ffcc99" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Violet double" draw:style = "double" draw:color = "#9999ff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Bordeaux double" draw:style = "double" draw:color = "#993366" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Pale yellow double" draw:style = "double" draw:color = "#ffffcc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Pale green double" draw:style = "double" draw:color = "#ccffff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Dark violet double" draw:style = "double" draw:color = "#660066" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Salmon double" draw:style = "double" draw:color = "#ff8080" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sea blue double" draw:style = "double" draw:color = "#0066cc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 1 double" draw:style = "double" draw:color = "#333366" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 2 double" draw:style = "double" draw:color = "#666699" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 3 double" draw:style = "double" draw:color = "#9999cc" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 4 double" draw:style = "double" draw:color = "#ccccff" draw:distance = "0.02inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Black triple" draw:style = "triple" draw:color = "#000000" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue triple" draw:style = "triple" draw:color = "#000080" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green triple" draw:style = "triple" draw:color = "#0080000" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise triple" draw:style = "triple" draw:color = "#008080" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red triple" draw:style = "triple" draw:color = "#800000" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta triple" draw:style = "triple" draw:color = "#800080" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown triple" draw:style = "triple" draw:color = "#808000" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray triple" draw:style = "triple" draw:color = "#808080" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light gray triple" draw:style = "triple" draw:color = "#c0c0c0" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light blue triple" draw:style = "triple" draw:color = "#0000ff" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light green triple" draw:style = "triple" draw:color = "#00ff00" draw:distance = "0.12inch" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light cyan triple" draw:style = "triple" draw:color = "#00ffff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light red triple" draw:style = "triple" draw:color = "#ff0000" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Light magenta triple" draw:style = "triple" draw:color = "#ff00ff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow triple" draw:style = "triple" draw:color = "#ffff00" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "White triple" draw:style = "triple" draw:color = "#ffffff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 80% triple" draw:style = "triple" draw:color = "#333333" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 70% triple" draw:style = "triple" draw:color = "#4c4c4c" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 60% triple" draw:style = "triple" draw:color = "#666666" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 40% triple" draw:style = "triple" draw:color = "#999999" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 30% triple" draw:style = "triple" draw:color = "#b3b3b3" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 20% triple" draw:style = "triple" draw:color = "#cccccc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Gray 10% triple" draw:style = "triple" draw:color = "#e6e6e6" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue gray triple" draw:style = "triple" draw:color = "#e6e6ff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 1 triple" draw:style = "triple" draw:color = "#ff3366" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 2 triple" draw:style = "triple" draw:color = "#dc2300" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 3 triple" draw:style = "triple" draw:color = "#b84700" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 4 triple" draw:style = "triple" draw:color = "#ff3333" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 5 triple" draw:style = "triple" draw:color = "#eb613d" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 6 triple" draw:style = "triple" draw:color = "#b84747" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 7 triple" draw:style = "triple" draw:color = "#b80047" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Red 8 triple" draw:style = "triple" draw:color = "#99284c" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 1 triple" draw:style = "triple" draw:color = "#94006b" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 2 triple" draw:style = "triple" draw:color = "#94476b" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 3 triple" draw:style = "triple" draw:color = "#944794" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 4 triple" draw:style = "triple" draw:color = "#9966cc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 5 triple" draw:style = "triple" draw:color = "#6b4794" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 6 triple" draw:style = "triple" draw:color = "#6b2394" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 7 triple" draw:style = "triple" draw:color = "#6b0094" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Magenta 8 triple" draw:style = "triple" draw:color = "#5e11a6" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 1 triple" draw:style = "triple" draw:color = "#280099" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 2 triple" draw:style = "triple" draw:color = "#4700b8" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 3 triple" draw:style = "triple" draw:color = "#2300dc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 4 triple" draw:style = "triple" draw:color = "#2323dc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 5 triple" draw:style = "triple" draw:color = "#0047ff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 6 triple" draw:style = "triple" draw:color = "#0099ff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 7 triple" draw:style = "triple" draw:color = "#00b8ff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Blue 8 triple" draw:style = "triple" draw:color = "#99ccff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 1 triple" draw:style = "triple" draw:color = "#00dcff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 2 triple" draw:style = "triple" draw:color = "#00cccc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 3 triple" draw:style = "triple" draw:color = "#23b8dc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 4 triple" draw:style = "triple" draw:color = "#47b8b8" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 5 triple" draw:style = "triple" draw:color = "#33a3a3" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 6 triple" draw:style = "triple" draw:color = "#198a8a" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 7 triple" draw:style = "triple" draw:color = "#006b6b" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Turquoise 8 triple" draw:style = "triple" draw:color = "#004a4a" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 1 triple" draw:style = "triple" draw:color = "#355e00" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 2 triple" draw:style = "triple" draw:color = "#5c8526" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 3 triple" draw:style = "triple" draw:color = "#7da647" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 4 triple" draw:style = "triple" draw:color = "#94bd5e" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 5 triple" draw:style = "triple" draw:color = "#00ae00" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 6 triple" draw:style = "triple" draw:color = "#33cc66" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 7 triple" draw:style = "triple" draw:color = "#3deb3d" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Green 8 triple" draw:style = "triple" draw:color = "#23ff23" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 1 triple" draw:style = "triple" draw:color = "#e6ff00" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 2 triple" draw:style = "triple" draw:color = "#ffff99" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 3 triple" draw:style = "triple" draw:color = "#ffff66" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 4 triple" draw:style = "triple" draw:color = "#e6e64c" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 5 triple" draw:style = "triple" draw:color = "#cccc00" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 6 triple" draw:style = "triple" draw:color = "#b3b300" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 7 triple" draw:style = "triple" draw:color = "#808019" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Yellow 8 triple" draw:style = "triple" draw:color = "#666600" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 1 triple" draw:style = "triple" draw:color = "#4c1900" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 2 triple" draw:style = "triple" draw:color = "#663300" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 3 triple" draw:style = "triple" draw:color = "#804c19" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Brown 4 triple" draw:style = "triple" draw:color = "#996633" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 1 triple" draw:style = "triple" draw:color = "#cc6633" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 2 triple" draw:style = "triple" draw:color = "#ff6633" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 3 triple" draw:style = "triple" draw:color = "#ff9966" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Orange 4 triple" draw:style = "triple" draw:color = "#ffcc99" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Violet triple" draw:style = "triple" draw:color = "#9999ff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Bordeaux triple" draw:style = "triple" draw:color = "#993366" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Pale yellow triple" draw:style = "triple" draw:color = "#ffffcc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Pale green triple" draw:style = "triple" draw:color = "#ccffff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Dark violet triple" draw:style = "triple" draw:color = "#660066" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Salmon triple" draw:style = "triple" draw:color = "#ff8080" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sea blue triple" draw:style = "triple" draw:color = "#0066cc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 1 triple" draw:style = "triple" draw:color = "#333366" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 2 triple" draw:style = "triple" draw:color = "#666699" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 3 triple" draw:style = "triple" draw:color = "#9999cc" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Sun 4 triple" draw:style = "triple" draw:color = "#ccccff" draw:distance = "0.12inches" draw:rotation = "0"/>
++<draw:hatch draw:name = "Black single 45 Degrees" draw:style = "single" draw:color = "#000000" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue single 45 Degrees" draw:style = "single" draw:color = "#000080" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green single 45 Degrees" draw:style = "single" draw:color = "#0080000" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise single 45 Degrees" draw:style = "single" draw:color = "#008080" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red single 45 Degrees" draw:style = "single" draw:color = "#800000" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta single 45 Degrees" draw:style = "single" draw:color = "#800080" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown single 45 Degrees" draw:style = "single" draw:color = "#808000" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray single 45 Degrees" draw:style = "single" draw:color = "#808080" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light gray single 45 Degrees" draw:style = "single" draw:color = "#c0c0c0" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light blue single 45 Degrees" draw:style = "single" draw:color = "#0000ff" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light green single 45 Degrees" draw:style = "single" draw:color = "#00ff00" draw:distance = "0.04inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light cyan single 45 Degrees" draw:style = "single" draw:color = "#00ffff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light red single 45 Degrees" draw:style = "single" draw:color = "#ff0000" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light magenta single 45 Degrees" draw:style = "single" draw:color = "#ff00ff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow single 45 Degrees" draw:style = "single" draw:color = "#ffff00" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "White single 45 Degrees" draw:style = "single" draw:color = "#ffffff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 80% single 45 Degrees" draw:style = "single" draw:color = "#333333" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 70% single 45 Degrees" draw:style = "single" draw:color = "#4c4c4c" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 60% single 45 Degrees" draw:style = "single" draw:color = "#666666" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 40% single 45 Degrees" draw:style = "single" draw:color = "#999999" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 30% single 45 Degrees" draw:style = "single" draw:color = "#b3b3b3" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 20% single 45 Degrees" draw:style = "single" draw:color = "#cccccc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 10% single 45 Degrees" draw:style = "single" draw:color = "#e6e6e6" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue gray single 45 Degrees" draw:style = "single" draw:color = "#e6e6ff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 1 single 45 Degrees" draw:style = "single" draw:color = "#ff3366" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 2 single 45 Degrees" draw:style = "single" draw:color = "#dc2300" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 3 single 45 Degrees" draw:style = "single" draw:color = "#b84700" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 4 single 45 Degrees" draw:style = "single" draw:color = "#ff3333" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 5 single 45 Degrees" draw:style = "single" draw:color = "#eb613d" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 6 single 45 Degrees" draw:style = "single" draw:color = "#b84747" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 7 single 45 Degrees" draw:style = "single" draw:color = "#b80047" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 8 single 45 Degrees" draw:style = "single" draw:color = "#99284c" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 1 single 45 Degrees" draw:style = "single" draw:color = "#94006b" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 2 single 45 Degrees" draw:style = "single" draw:color = "#94476b" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 3 single 45 Degrees" draw:style = "single" draw:color = "#944794" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 4 single 45 Degrees" draw:style = "single" draw:color = "#9966cc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 5 single 45 Degrees" draw:style = "single" draw:color = "#6b4794" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 6 single 45 Degrees" draw:style = "single" draw:color = "#6b2394" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 7 single 45 Degrees" draw:style = "single" draw:color = "#6b0094" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 8 single 45 Degrees" draw:style = "single" draw:color = "#5e11a6" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 1 single 45 Degrees" draw:style = "single" draw:color = "#280099" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 2 single 45 Degrees" draw:style = "single" draw:color = "#4700b8" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 3 single 45 Degrees" draw:style = "single" draw:color = "#2300dc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 4 single 45 Degrees" draw:style = "single" draw:color = "#2323dc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 5 single 45 Degrees" draw:style = "single" draw:color = "#0047ff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 6 single 45 Degrees" draw:style = "single" draw:color = "#0099ff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 7 single 45 Degrees" draw:style = "single" draw:color = "#00b8ff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 8 single 45 Degrees" draw:style = "single" draw:color = "#99ccff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 1 single 45 Degrees" draw:style = "single" draw:color = "#00dcff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 2 single 45 Degrees" draw:style = "single" draw:color = "#00cccc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 3 single 45 Degrees" draw:style = "single" draw:color = "#23b8dc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 4 single 45 Degrees" draw:style = "single" draw:color = "#47b8b8" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 5 single 45 Degrees" draw:style = "single" draw:color = "#33a3a3" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 6 single 45 Degrees" draw:style = "single" draw:color = "#198a8a" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 7 single 45 Degrees" draw:style = "single" draw:color = "#006b6b" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 8 single 45 Degrees" draw:style = "single" draw:color = "#004a4a" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 1 single 45 Degrees" draw:style = "single" draw:color = "#355e00" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 2 single 45 Degrees" draw:style = "single" draw:color = "#5c8526" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 3 single 45 Degrees" draw:style = "single" draw:color = "#7da647" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 4 single 45 Degrees" draw:style = "single" draw:color = "#94bd5e" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 5 single 45 Degrees" draw:style = "single" draw:color = "#00ae00" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 6 single 45 Degrees" draw:style = "single" draw:color = "#33cc66" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 7 single 45 Degrees" draw:style = "single" draw:color = "#3deb3d" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 8 single 45 Degrees" draw:style = "single" draw:color = "#23ff23" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 1 single 45 Degrees" draw:style = "single" draw:color = "#e6ff00" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 2 single 45 Degrees" draw:style = "single" draw:color = "#ffff99" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 3 single 45 Degrees" draw:style = "single" draw:color = "#ffff66" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 4 single 45 Degrees" draw:style = "single" draw:color = "#e6e64c" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 5 single 45 Degrees" draw:style = "single" draw:color = "#cccc00" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 6 single 45 Degrees" draw:style = "single" draw:color = "#b3b300" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 7 single 45 Degrees" draw:style = "single" draw:color = "#808019" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 8 single 45 Degrees" draw:style = "single" draw:color = "#666600" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 1 single 45 Degrees" draw:style = "single" draw:color = "#4c1900" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 2 single 45 Degrees" draw:style = "single" draw:color = "#663300" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 3 single 45 Degrees" draw:style = "single" draw:color = "#804c19" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 4 single 45 Degrees" draw:style = "single" draw:color = "#996633" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 1 single 45 Degrees" draw:style = "single" draw:color = "#cc6633" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 2 single 45 Degrees" draw:style = "single" draw:color = "#ff6633" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 3 single 45 Degrees" draw:style = "single" draw:color = "#ff9966" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 4 single 45 Degrees" draw:style = "single" draw:color = "#ffcc99" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Violet single 45 Degrees" draw:style = "single" draw:color = "#9999ff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Bordeaux single 45 Degrees" draw:style = "single" draw:color = "#993366" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Pale yellow single 45 Degrees" draw:style = "single" draw:color = "#ffffcc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Pale green single 45 Degrees" draw:style = "single" draw:color = "#ccffff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Dark violet single 45 Degrees" draw:style = "single" draw:color = "#660066" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Salmon single 45 Degrees" draw:style = "single" draw:color = "#ff8080" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sea blue single 45 Degrees" draw:style = "single" draw:color = "#0066cc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 1 single 45 Degrees" draw:style = "single" draw:color = "#333366" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 2 single 45 Degrees" draw:style = "single" draw:color = "#666699" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 3 single 45 Degrees" draw:style = "single" draw:color = "#9999cc" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 4 single 45 Degrees" draw:style = "single" draw:color = "#ccccff" draw:distance = "0.04inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Black double 45 Degrees" draw:style = "double" draw:color = "#000000" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue double 45 Degrees" draw:style = "double" draw:color = "#000080" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green double 45 Degrees" draw:style = "double" draw:color = "#0080000" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise double 45 Degrees" draw:style = "double" draw:color = "#008080" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red double 45 Degrees" draw:style = "double" draw:color = "#800000" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta double 45 Degrees" draw:style = "double" draw:color = "#800080" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown double 45 Degrees" draw:style = "double" draw:color = "#808000" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray double 45 Degrees" draw:style = "double" draw:color = "#808080" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light gray double 45 Degrees" draw:style = "double" draw:color = "#c0c0c0" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light blue double 45 Degrees" draw:style = "double" draw:color = "#0000ff" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light green double 45 Degrees" draw:style = "double" draw:color = "#00ff00" draw:distance = "0.02inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light cyan double 45 Degrees" draw:style = "double" draw:color = "#00ffff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light red double 45 Degrees" draw:style = "double" draw:color = "#ff0000" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light magenta double 45 Degrees" draw:style = "double" draw:color = "#ff00ff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow double 45 Degrees" draw:style = "double" draw:color = "#ffff00" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "White double 45 Degrees" draw:style = "double" draw:color = "#ffffff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 80% double 45 Degrees" draw:style = "double" draw:color = "#333333" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 70% double 45 Degrees" draw:style = "double" draw:color = "#4c4c4c" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 60% double 45 Degrees" draw:style = "double" draw:color = "#666666" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 40% double 45 Degrees" draw:style = "double" draw:color = "#999999" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 30% double 45 Degrees" draw:style = "double" draw:color = "#b3b3b3" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 20% double 45 Degrees" draw:style = "double" draw:color = "#cccccc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 10% double 45 Degrees" draw:style = "double" draw:color = "#e6e6e6" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue gray double 45 Degrees" draw:style = "double" draw:color = "#e6e6ff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 1 double 45 Degrees" draw:style = "double" draw:color = "#ff3366" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 2 double 45 Degrees" draw:style = "double" draw:color = "#dc2300" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 3 double 45 Degrees" draw:style = "double" draw:color = "#b84700" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 4 double 45 Degrees" draw:style = "double" draw:color = "#ff3333" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 5 double 45 Degrees" draw:style = "double" draw:color = "#eb613d" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 6 double 45 Degrees" draw:style = "double" draw:color = "#b84747" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 7 double 45 Degrees" draw:style = "double" draw:color = "#b80047" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 8 double 45 Degrees" draw:style = "double" draw:color = "#99284c" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 1 double 45 Degrees" draw:style = "double" draw:color = "#94006b" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 2 double 45 Degrees" draw:style = "double" draw:color = "#94476b" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 3 double 45 Degrees" draw:style = "double" draw:color = "#944794" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 4 double 45 Degrees" draw:style = "double" draw:color = "#9966cc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 5 double 45 Degrees" draw:style = "double" draw:color = "#6b4794" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 6 double 45 Degrees" draw:style = "double" draw:color = "#6b2394" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 7 double 45 Degrees" draw:style = "double" draw:color = "#6b0094" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 8 double 45 Degrees" draw:style = "double" draw:color = "#5e11a6" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 1 double 45 Degrees" draw:style = "double" draw:color = "#280099" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 2 double 45 Degrees" draw:style = "double" draw:color = "#4700b8" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 3 double 45 Degrees" draw:style = "double" draw:color = "#2300dc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 4 double 45 Degrees" draw:style = "double" draw:color = "#2323dc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 5 double 45 Degrees" draw:style = "double" draw:color = "#0047ff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 6 double 45 Degrees" draw:style = "double" draw:color = "#0099ff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 7 double 45 Degrees" draw:style = "double" draw:color = "#00b8ff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 8 double 45 Degrees" draw:style = "double" draw:color = "#99ccff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 1 double 45 Degrees" draw:style = "double" draw:color = "#00dcff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 2 double 45 Degrees" draw:style = "double" draw:color = "#00cccc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 3 double 45 Degrees" draw:style = "double" draw:color = "#23b8dc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 4 double 45 Degrees" draw:style = "double" draw:color = "#47b8b8" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 5 double 45 Degrees" draw:style = "double" draw:color = "#33a3a3" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 6 double 45 Degrees" draw:style = "double" draw:color = "#198a8a" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 7 double 45 Degrees" draw:style = "double" draw:color = "#006b6b" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 8 double 45 Degrees" draw:style = "double" draw:color = "#004a4a" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 1 double 45 Degrees" draw:style = "double" draw:color = "#355e00" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 2 double 45 Degrees" draw:style = "double" draw:color = "#5c8526" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 3 double 45 Degrees" draw:style = "double" draw:color = "#7da647" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 4 double 45 Degrees" draw:style = "double" draw:color = "#94bd5e" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 5 double 45 Degrees" draw:style = "double" draw:color = "#00ae00" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 6 double 45 Degrees" draw:style = "double" draw:color = "#33cc66" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 7 double 45 Degrees" draw:style = "double" draw:color = "#3deb3d" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 8 double 45 Degrees" draw:style = "double" draw:color = "#23ff23" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 1 double 45 Degrees" draw:style = "double" draw:color = "#e6ff00" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 2 double 45 Degrees" draw:style = "double" draw:color = "#ffff99" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 3 double 45 Degrees" draw:style = "double" draw:color = "#ffff66" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 4 double 45 Degrees" draw:style = "double" draw:color = "#e6e64c" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 5 double 45 Degrees" draw:style = "double" draw:color = "#cccc00" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 6 double 45 Degrees" draw:style = "double" draw:color = "#b3b300" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 7 double 45 Degrees" draw:style = "double" draw:color = "#808019" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 8 double 45 Degrees" draw:style = "double" draw:color = "#666600" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 1 double 45 Degrees" draw:style = "double" draw:color = "#4c1900" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 2 double 45 Degrees" draw:style = "double" draw:color = "#663300" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 3 double 45 Degrees" draw:style = "double" draw:color = "#804c19" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 4 double 45 Degrees" draw:style = "double" draw:color = "#996633" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 1 double 45 Degrees" draw:style = "double" draw:color = "#cc6633" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 2 double 45 Degrees" draw:style = "double" draw:color = "#ff6633" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 3 double 45 Degrees" draw:style = "double" draw:color = "#ff9966" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 4 double 45 Degrees" draw:style = "double" draw:color = "#ffcc99" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Violet double 45 Degrees" draw:style = "double" draw:color = "#9999ff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Bordeaux double 45 Degrees" draw:style = "double" draw:color = "#993366" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Pale yellow double 45 Degrees" draw:style = "double" draw:color = "#ffffcc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Pale green double 45 Degrees" draw:style = "double" draw:color = "#ccffff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Dark violet double 45 Degrees" draw:style = "double" draw:color = "#660066" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Salmon double 45 Degrees" draw:style = "double" draw:color = "#ff8080" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sea blue double 45 Degrees" draw:style = "double" draw:color = "#0066cc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 1 double 45 Degrees" draw:style = "double" draw:color = "#333366" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 2 double 45 Degrees" draw:style = "double" draw:color = "#666699" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 3 double 45 Degrees" draw:style = "double" draw:color = "#9999cc" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 4 double 45 Degrees" draw:style = "double" draw:color = "#ccccff" draw:distance = "0.02inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Black triple 45 Degrees" draw:style = "triple" draw:color = "#000000" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue triple 45 Degrees" draw:style = "triple" draw:color = "#000080" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green triple 45 Degrees" draw:style = "triple" draw:color = "#0080000" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise triple 45 Degrees" draw:style = "triple" draw:color = "#008080" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red triple 45 Degrees" draw:style = "triple" draw:color = "#800000" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta triple 45 Degrees" draw:style = "triple" draw:color = "#800080" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown triple 45 Degrees" draw:style = "triple" draw:color = "#808000" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray triple 45 Degrees" draw:style = "triple" draw:color = "#808080" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light gray triple 45 Degrees" draw:style = "triple" draw:color = "#c0c0c0" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light blue triple 45 Degrees" draw:style = "triple" draw:color = "#0000ff" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light green triple 45 Degrees" draw:style = "triple" draw:color = "#00ff00" draw:distance = "0.12inch" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light cyan triple 45 Degrees" draw:style = "triple" draw:color = "#00ffff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light red triple 45 Degrees" draw:style = "triple" draw:color = "#ff0000" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Light magenta triple 45 Degrees" draw:style = "triple" draw:color = "#ff00ff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow triple 45 Degrees" draw:style = "triple" draw:color = "#ffff00" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "White triple 45 Degrees" draw:style = "triple" draw:color = "#ffffff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 80% triple 45 Degrees" draw:style = "triple" draw:color = "#333333" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 70% triple 45 Degrees" draw:style = "triple" draw:color = "#4c4c4c" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 60% triple 45 Degrees" draw:style = "triple" draw:color = "#666666" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 40% triple 45 Degrees" draw:style = "triple" draw:color = "#999999" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 30% triple 45 Degrees" draw:style = "triple" draw:color = "#b3b3b3" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 20% triple 45 Degrees" draw:style = "triple" draw:color = "#cccccc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Gray 10% triple 45 Degrees" draw:style = "triple" draw:color = "#e6e6e6" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue gray triple 45 Degrees" draw:style = "triple" draw:color = "#e6e6ff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 1 triple 45 Degrees" draw:style = "triple" draw:color = "#ff3366" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 2 triple 45 Degrees" draw:style = "triple" draw:color = "#dc2300" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 3 triple 45 Degrees" draw:style = "triple" draw:color = "#b84700" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 4 triple 45 Degrees" draw:style = "triple" draw:color = "#ff3333" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 5 triple 45 Degrees" draw:style = "triple" draw:color = "#eb613d" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 6 triple 45 Degrees" draw:style = "triple" draw:color = "#b84747" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 7 triple 45 Degrees" draw:style = "triple" draw:color = "#b80047" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Red 8 triple 45 Degrees" draw:style = "triple" draw:color = "#99284c" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 1 triple 45 Degrees" draw:style = "triple" draw:color = "#94006b" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 2 triple 45 Degrees" draw:style = "triple" draw:color = "#94476b" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 3 triple 45 Degrees" draw:style = "triple" draw:color = "#944794" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 4 triple 45 Degrees" draw:style = "triple" draw:color = "#9966cc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 5 triple 45 Degrees" draw:style = "triple" draw:color = "#6b4794" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 6 triple 45 Degrees" draw:style = "triple" draw:color = "#6b2394" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 7 triple 45 Degrees" draw:style = "triple" draw:color = "#6b0094" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Magenta 8 triple 45 Degrees" draw:style = "triple" draw:color = "#5e11a6" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 1 triple 45 Degrees" draw:style = "triple" draw:color = "#280099" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 2 triple 45 Degrees" draw:style = "triple" draw:color = "#4700b8" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 3 triple 45 Degrees" draw:style = "triple" draw:color = "#2300dc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 4 triple 45 Degrees" draw:style = "triple" draw:color = "#2323dc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 5 triple 45 Degrees" draw:style = "triple" draw:color = "#0047ff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 6 triple 45 Degrees" draw:style = "triple" draw:color = "#0099ff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 7 triple 45 Degrees" draw:style = "triple" draw:color = "#00b8ff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Blue 8 triple 45 Degrees" draw:style = "triple" draw:color = "#99ccff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 1 triple 45 Degrees" draw:style = "triple" draw:color = "#00dcff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 2 triple 45 Degrees" draw:style = "triple" draw:color = "#00cccc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 3 triple 45 Degrees" draw:style = "triple" draw:color = "#23b8dc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 4 triple 45 Degrees" draw:style = "triple" draw:color = "#47b8b8" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 5 triple 45 Degrees" draw:style = "triple" draw:color = "#33a3a3" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 6 triple 45 Degrees" draw:style = "triple" draw:color = "#198a8a" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 7 triple 45 Degrees" draw:style = "triple" draw:color = "#006b6b" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Turquoise 8 triple 45 Degrees" draw:style = "triple" draw:color = "#004a4a" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 1 triple 45 Degrees" draw:style = "triple" draw:color = "#355e00" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 2 triple 45 Degrees" draw:style = "triple" draw:color = "#5c8526" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 3 triple 45 Degrees" draw:style = "triple" draw:color = "#7da647" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 4 triple 45 Degrees" draw:style = "triple" draw:color = "#94bd5e" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 5 triple 45 Degrees" draw:style = "triple" draw:color = "#00ae00" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 6 triple 45 Degrees" draw:style = "triple" draw:color = "#33cc66" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 7 triple 45 Degrees" draw:style = "triple" draw:color = "#3deb3d" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Green 8 triple 45 Degrees" draw:style = "triple" draw:color = "#23ff23" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 1 triple 45 Degrees" draw:style = "triple" draw:color = "#e6ff00" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 2 triple 45 Degrees" draw:style = "triple" draw:color = "#ffff99" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 3 triple 45 Degrees" draw:style = "triple" draw:color = "#ffff66" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 4 triple 45 Degrees" draw:style = "triple" draw:color = "#e6e64c" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 5 triple 45 Degrees" draw:style = "triple" draw:color = "#cccc00" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 6 triple 45 Degrees" draw:style = "triple" draw:color = "#b3b300" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 7 triple 45 Degrees" draw:style = "triple" draw:color = "#808019" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Yellow 8 triple 45 Degrees" draw:style = "triple" draw:color = "#666600" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 1 triple 45 Degrees" draw:style = "triple" draw:color = "#4c1900" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 2 triple 45 Degrees" draw:style = "triple" draw:color = "#663300" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 3 triple 45 Degrees" draw:style = "triple" draw:color = "#804c19" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Brown 4 triple 45 Degrees" draw:style = "triple" draw:color = "#996633" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 1 triple 45 Degrees" draw:style = "triple" draw:color = "#cc6633" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 2 triple 45 Degrees" draw:style = "triple" draw:color = "#ff6633" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 3 triple 45 Degrees" draw:style = "triple" draw:color = "#ff9966" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Orange 4 triple 45 Degrees" draw:style = "triple" draw:color = "#ffcc99" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Violet triple 45 Degrees" draw:style = "triple" draw:color = "#9999ff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Bordeaux triple 45 Degrees" draw:style = "triple" draw:color = "#993366" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Pale yellow triple 45 Degrees" draw:style = "triple" draw:color = "#ffffcc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Pale green triple 45 Degrees" draw:style = "triple" draw:color = "#ccffff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Dark violet triple 45 Degrees" draw:style = "triple" draw:color = "#660066" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Salmon triple 45 Degrees" draw:style = "triple" draw:color = "#ff8080" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sea blue triple 45 Degrees" draw:style = "triple" draw:color = "#0066cc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 1 triple 45 Degrees" draw:style = "triple" draw:color = "#333366" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 2 triple 45 Degrees" draw:style = "triple" draw:color = "#666699" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 3 triple 45 Degrees" draw:style = "triple" draw:color = "#9999cc" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Sun 4 triple 45 Degrees" draw:style = "triple" draw:color = "#ccccff" draw:distance = "0.12inches" draw:rotation = "450"/>
++<draw:hatch draw:name = "Black single 90 Degrees" draw:style = "single" draw:color = "#000000" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue single 90 Degrees" draw:style = "single" draw:color = "#000080" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green single 90 Degrees" draw:style = "single" draw:color = "#0080000" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise single 90 Degrees" draw:style = "single" draw:color = "#008080" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red single 90 Degrees" draw:style = "single" draw:color = "#800000" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta single 90 Degrees" draw:style = "single" draw:color = "#800080" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown single 90 Degrees" draw:style = "single" draw:color = "#808000" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray single 90 Degrees" draw:style = "single" draw:color = "#808080" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light gray single 90 Degrees" draw:style = "single" draw:color = "#c0c0c0" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light blue single 90 Degrees" draw:style = "single" draw:color = "#0000ff" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light green single 90 Degrees" draw:style = "single" draw:color = "#00ff00" draw:distance = "0.04inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light cyan single 90 Degrees" draw:style = "single" draw:color = "#00ffff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light red single 90 Degrees" draw:style = "single" draw:color = "#ff0000" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light magenta single 90 Degrees" draw:style = "single" draw:color = "#ff00ff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow single 90 Degrees" draw:style = "single" draw:color = "#ffff00" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "White single 90 Degrees" draw:style = "single" draw:color = "#ffffff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 80% single 90 Degrees" draw:style = "single" draw:color = "#333333" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 70% single 90 Degrees" draw:style = "single" draw:color = "#4c4c4c" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 60% single 90 Degrees" draw:style = "single" draw:color = "#666666" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 40% single 90 Degrees" draw:style = "single" draw:color = "#999999" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 30% single 90 Degrees" draw:style = "single" draw:color = "#b3b3b3" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 20% single 90 Degrees" draw:style = "single" draw:color = "#cccccc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 10% single 90 Degrees" draw:style = "single" draw:color = "#e6e6e6" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue gray single 90 Degrees" draw:style = "single" draw:color = "#e6e6ff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 1 single 90 Degrees" draw:style = "single" draw:color = "#ff3366" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 2 single 90 Degrees" draw:style = "single" draw:color = "#dc2300" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 3 single 90 Degrees" draw:style = "single" draw:color = "#b84700" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 4 single 90 Degrees" draw:style = "single" draw:color = "#ff3333" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 5 single 90 Degrees" draw:style = "single" draw:color = "#eb613d" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 6 single 90 Degrees" draw:style = "single" draw:color = "#b84747" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 7 single 90 Degrees" draw:style = "single" draw:color = "#b80047" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 8 single 90 Degrees" draw:style = "single" draw:color = "#99284c" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 1 single 90 Degrees" draw:style = "single" draw:color = "#94006b" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 2 single 90 Degrees" draw:style = "single" draw:color = "#94476b" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 3 single 90 Degrees" draw:style = "single" draw:color = "#944794" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 4 single 90 Degrees" draw:style = "single" draw:color = "#9966cc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 5 single 90 Degrees" draw:style = "single" draw:color = "#6b4794" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 6 single 90 Degrees" draw:style = "single" draw:color = "#6b2394" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 7 single 90 Degrees" draw:style = "single" draw:color = "#6b0094" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 8 single 90 Degrees" draw:style = "single" draw:color = "#5e11a6" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 1 single 90 Degrees" draw:style = "single" draw:color = "#280099" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 2 single 90 Degrees" draw:style = "single" draw:color = "#4700b8" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 3 single 90 Degrees" draw:style = "single" draw:color = "#2300dc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 4 single 90 Degrees" draw:style = "single" draw:color = "#2323dc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 5 single 90 Degrees" draw:style = "single" draw:color = "#0047ff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 6 single 90 Degrees" draw:style = "single" draw:color = "#0099ff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 7 single 90 Degrees" draw:style = "single" draw:color = "#00b8ff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 8 single 90 Degrees" draw:style = "single" draw:color = "#99ccff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 1 single 90 Degrees" draw:style = "single" draw:color = "#00dcff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 2 single 90 Degrees" draw:style = "single" draw:color = "#00cccc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 3 single 90 Degrees" draw:style = "single" draw:color = "#23b8dc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 4 single 90 Degrees" draw:style = "single" draw:color = "#47b8b8" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 5 single 90 Degrees" draw:style = "single" draw:color = "#33a3a3" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 6 single 90 Degrees" draw:style = "single" draw:color = "#198a8a" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 7 single 90 Degrees" draw:style = "single" draw:color = "#006b6b" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 8 single 90 Degrees" draw:style = "single" draw:color = "#004a4a" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 1 single 90 Degrees" draw:style = "single" draw:color = "#355e00" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 2 single 90 Degrees" draw:style = "single" draw:color = "#5c8526" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 3 single 90 Degrees" draw:style = "single" draw:color = "#7da647" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 4 single 90 Degrees" draw:style = "single" draw:color = "#94bd5e" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 5 single 90 Degrees" draw:style = "single" draw:color = "#00ae00" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 6 single 90 Degrees" draw:style = "single" draw:color = "#33cc66" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 7 single 90 Degrees" draw:style = "single" draw:color = "#3deb3d" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 8 single 90 Degrees" draw:style = "single" draw:color = "#23ff23" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 1 single 90 Degrees" draw:style = "single" draw:color = "#e6ff00" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 2 single 90 Degrees" draw:style = "single" draw:color = "#ffff99" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 3 single 90 Degrees" draw:style = "single" draw:color = "#ffff66" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 4 single 90 Degrees" draw:style = "single" draw:color = "#e6e64c" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 5 single 90 Degrees" draw:style = "single" draw:color = "#cccc00" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 6 single 90 Degrees" draw:style = "single" draw:color = "#b3b300" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 7 single 90 Degrees" draw:style = "single" draw:color = "#808019" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 8 single 90 Degrees" draw:style = "single" draw:color = "#666600" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 1 single 90 Degrees" draw:style = "single" draw:color = "#4c1900" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 2 single 90 Degrees" draw:style = "single" draw:color = "#663300" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 3 single 90 Degrees" draw:style = "single" draw:color = "#804c19" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 4 single 90 Degrees" draw:style = "single" draw:color = "#996633" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 1 single 90 Degrees" draw:style = "single" draw:color = "#cc6633" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 2 single 90 Degrees" draw:style = "single" draw:color = "#ff6633" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 3 single 90 Degrees" draw:style = "single" draw:color = "#ff9966" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 4 single 90 Degrees" draw:style = "single" draw:color = "#ffcc99" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Violet single 90 Degrees" draw:style = "single" draw:color = "#9999ff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Bordeaux single 90 Degrees" draw:style = "single" draw:color = "#993366" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Pale yellow single 90 Degrees" draw:style = "single" draw:color = "#ffffcc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Pale green single 90 Degrees" draw:style = "single" draw:color = "#ccffff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Dark violet single 90 Degrees" draw:style = "single" draw:color = "#660066" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Salmon single 90 Degrees" draw:style = "single" draw:color = "#ff8080" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sea blue single 90 Degrees" draw:style = "single" draw:color = "#0066cc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 1 single 90 Degrees" draw:style = "single" draw:color = "#333366" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 2 single 90 Degrees" draw:style = "single" draw:color = "#666699" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 3 single 90 Degrees" draw:style = "single" draw:color = "#9999cc" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 4 single 90 Degrees" draw:style = "single" draw:color = "#ccccff" draw:distance = "0.04inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Black double 90 Degrees" draw:style = "double" draw:color = "#000000" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue double 90 Degrees" draw:style = "double" draw:color = "#000080" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green double 90 Degrees" draw:style = "double" draw:color = "#0080000" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise double 90 Degrees" draw:style = "double" draw:color = "#008080" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red double 90 Degrees" draw:style = "double" draw:color = "#800000" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta double 90 Degrees" draw:style = "double" draw:color = "#800080" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown double 90 Degrees" draw:style = "double" draw:color = "#808000" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray double 90 Degrees" draw:style = "double" draw:color = "#808080" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light gray double 90 Degrees" draw:style = "double" draw:color = "#c0c0c0" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light blue double 90 Degrees" draw:style = "double" draw:color = "#0000ff" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light green double 90 Degrees" draw:style = "double" draw:color = "#00ff00" draw:distance = "0.02inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light cyan double 90 Degrees" draw:style = "double" draw:color = "#00ffff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light red double 90 Degrees" draw:style = "double" draw:color = "#ff0000" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light magenta double 90 Degrees" draw:style = "double" draw:color = "#ff00ff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow double 90 Degrees" draw:style = "double" draw:color = "#ffff00" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "White double 90 Degrees" draw:style = "double" draw:color = "#ffffff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 80% double 90 Degrees" draw:style = "double" draw:color = "#333333" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 70% double 90 Degrees" draw:style = "double" draw:color = "#4c4c4c" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 60% double 90 Degrees" draw:style = "double" draw:color = "#666666" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 40% double 90 Degrees" draw:style = "double" draw:color = "#999999" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 30% double 90 Degrees" draw:style = "double" draw:color = "#b3b3b3" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 20% double 90 Degrees" draw:style = "double" draw:color = "#cccccc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 10% double 90 Degrees" draw:style = "double" draw:color = "#e6e6e6" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue gray double 90 Degrees" draw:style = "double" draw:color = "#e6e6ff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 1 double 90 Degrees" draw:style = "double" draw:color = "#ff3366" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 2 double 90 Degrees" draw:style = "double" draw:color = "#dc2300" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 3 double 90 Degrees" draw:style = "double" draw:color = "#b84700" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 4 double 90 Degrees" draw:style = "double" draw:color = "#ff3333" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 5 double 90 Degrees" draw:style = "double" draw:color = "#eb613d" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 6 double 90 Degrees" draw:style = "double" draw:color = "#b84747" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 7 double 90 Degrees" draw:style = "double" draw:color = "#b80047" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 8 double 90 Degrees" draw:style = "double" draw:color = "#99284c" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 1 double 90 Degrees" draw:style = "double" draw:color = "#94006b" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 2 double 90 Degrees" draw:style = "double" draw:color = "#94476b" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 3 double 90 Degrees" draw:style = "double" draw:color = "#944794" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 4 double 90 Degrees" draw:style = "double" draw:color = "#9966cc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 5 double 90 Degrees" draw:style = "double" draw:color = "#6b4794" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 6 double 90 Degrees" draw:style = "double" draw:color = "#6b2394" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 7 double 90 Degrees" draw:style = "double" draw:color = "#6b0094" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 8 double 90 Degrees" draw:style = "double" draw:color = "#5e11a6" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 1 double 90 Degrees" draw:style = "double" draw:color = "#280099" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 2 double 90 Degrees" draw:style = "double" draw:color = "#4700b8" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 3 double 90 Degrees" draw:style = "double" draw:color = "#2300dc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 4 double 90 Degrees" draw:style = "double" draw:color = "#2323dc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 5 double 90 Degrees" draw:style = "double" draw:color = "#0047ff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 6 double 90 Degrees" draw:style = "double" draw:color = "#0099ff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 7 double 90 Degrees" draw:style = "double" draw:color = "#00b8ff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 8 double 90 Degrees" draw:style = "double" draw:color = "#99ccff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 1 double 90 Degrees" draw:style = "double" draw:color = "#00dcff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 2 double 90 Degrees" draw:style = "double" draw:color = "#00cccc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 3 double 90 Degrees" draw:style = "double" draw:color = "#23b8dc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 4 double 90 Degrees" draw:style = "double" draw:color = "#47b8b8" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 5 double 90 Degrees" draw:style = "double" draw:color = "#33a3a3" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 6 double 90 Degrees" draw:style = "double" draw:color = "#198a8a" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 7 double 90 Degrees" draw:style = "double" draw:color = "#006b6b" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 8 double 90 Degrees" draw:style = "double" draw:color = "#004a4a" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 1 double 90 Degrees" draw:style = "double" draw:color = "#355e00" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 2 double 90 Degrees" draw:style = "double" draw:color = "#5c8526" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 3 double 90 Degrees" draw:style = "double" draw:color = "#7da647" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 4 double 90 Degrees" draw:style = "double" draw:color = "#94bd5e" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 5 double 90 Degrees" draw:style = "double" draw:color = "#00ae00" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 6 double 90 Degrees" draw:style = "double" draw:color = "#33cc66" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 7 double 90 Degrees" draw:style = "double" draw:color = "#3deb3d" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 8 double 90 Degrees" draw:style = "double" draw:color = "#23ff23" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 1 double 90 Degrees" draw:style = "double" draw:color = "#e6ff00" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 2 double 90 Degrees" draw:style = "double" draw:color = "#ffff99" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 3 double 90 Degrees" draw:style = "double" draw:color = "#ffff66" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 4 double 90 Degrees" draw:style = "double" draw:color = "#e6e64c" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 5 double 90 Degrees" draw:style = "double" draw:color = "#cccc00" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 6 double 90 Degrees" draw:style = "double" draw:color = "#b3b300" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 7 double 90 Degrees" draw:style = "double" draw:color = "#808019" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 8 double 90 Degrees" draw:style = "double" draw:color = "#666600" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 1 double 90 Degrees" draw:style = "double" draw:color = "#4c1900" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 2 double 90 Degrees" draw:style = "double" draw:color = "#663300" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 3 double 90 Degrees" draw:style = "double" draw:color = "#804c19" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 4 double 90 Degrees" draw:style = "double" draw:color = "#996633" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 1 double 90 Degrees" draw:style = "double" draw:color = "#cc6633" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 2 double 90 Degrees" draw:style = "double" draw:color = "#ff6633" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 3 double 90 Degrees" draw:style = "double" draw:color = "#ff9966" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 4 double 90 Degrees" draw:style = "double" draw:color = "#ffcc99" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Violet double 90 Degrees" draw:style = "double" draw:color = "#9999ff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Bordeaux double 90 Degrees" draw:style = "double" draw:color = "#993366" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Pale yellow double 90 Degrees" draw:style = "double" draw:color = "#ffffcc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Pale green double 90 Degrees" draw:style = "double" draw:color = "#ccffff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Dark violet double 90 Degrees" draw:style = "double" draw:color = "#660066" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Salmon double 90 Degrees" draw:style = "double" draw:color = "#ff8080" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sea blue double 90 Degrees" draw:style = "double" draw:color = "#0066cc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 1 double 90 Degrees" draw:style = "double" draw:color = "#333366" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 2 double 90 Degrees" draw:style = "double" draw:color = "#666699" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 3 double 90 Degrees" draw:style = "double" draw:color = "#9999cc" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 4 double 90 Degrees" draw:style = "double" draw:color = "#ccccff" draw:distance = "0.02inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Black triple 90 Degrees" draw:style = "triple" draw:color = "#000000" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue triple 90 Degrees" draw:style = "triple" draw:color = "#000080" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green triple 90 Degrees" draw:style = "triple" draw:color = "#0080000" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise triple 90 Degrees" draw:style = "triple" draw:color = "#008080" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red triple 90 Degrees" draw:style = "triple" draw:color = "#800000" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta triple 90 Degrees" draw:style = "triple" draw:color = "#800080" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown triple 90 Degrees" draw:style = "triple" draw:color = "#808000" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray triple 90 Degrees" draw:style = "triple" draw:color = "#808080" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light gray triple 90 Degrees" draw:style = "triple" draw:color = "#c0c0c0" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light blue triple 90 Degrees" draw:style = "triple" draw:color = "#0000ff" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light green triple 90 Degrees" draw:style = "triple" draw:color = "#00ff00" draw:distance = "0.12inch" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light cyan triple 90 Degrees" draw:style = "triple" draw:color = "#00ffff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light red triple 90 Degrees" draw:style = "triple" draw:color = "#ff0000" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Light magenta triple 90 Degrees" draw:style = "triple" draw:color = "#ff00ff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow triple 90 Degrees" draw:style = "triple" draw:color = "#ffff00" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "White triple 90 Degrees" draw:style = "triple" draw:color = "#ffffff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 80% triple 90 Degrees" draw:style = "triple" draw:color = "#333333" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 70% triple 90 Degrees" draw:style = "triple" draw:color = "#4c4c4c" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 60% triple 90 Degrees" draw:style = "triple" draw:color = "#666666" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 40% triple 90 Degrees" draw:style = "triple" draw:color = "#999999" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 30% triple 90 Degrees" draw:style = "triple" draw:color = "#b3b3b3" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 20% triple 90 Degrees" draw:style = "triple" draw:color = "#cccccc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Gray 10% triple 90 Degrees" draw:style = "triple" draw:color = "#e6e6e6" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue gray triple 90 Degrees" draw:style = "triple" draw:color = "#e6e6ff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 1 triple 90 Degrees" draw:style = "triple" draw:color = "#ff3366" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 2 triple 90 Degrees" draw:style = "triple" draw:color = "#dc2300" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 3 triple 90 Degrees" draw:style = "triple" draw:color = "#b84700" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 4 triple 90 Degrees" draw:style = "triple" draw:color = "#ff3333" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 5 triple 90 Degrees" draw:style = "triple" draw:color = "#eb613d" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 6 triple 90 Degrees" draw:style = "triple" draw:color = "#b84747" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 7 triple 90 Degrees" draw:style = "triple" draw:color = "#b80047" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Red 8 triple 90 Degrees" draw:style = "triple" draw:color = "#99284c" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 1 triple 90 Degrees" draw:style = "triple" draw:color = "#94006b" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 2 triple 90 Degrees" draw:style = "triple" draw:color = "#94476b" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 3 triple 90 Degrees" draw:style = "triple" draw:color = "#944794" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 4 triple 90 Degrees" draw:style = "triple" draw:color = "#9966cc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 5 triple 90 Degrees" draw:style = "triple" draw:color = "#6b4794" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 6 triple 90 Degrees" draw:style = "triple" draw:color = "#6b2394" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 7 triple 90 Degrees" draw:style = "triple" draw:color = "#6b0094" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Magenta 8 triple 90 Degrees" draw:style = "triple" draw:color = "#5e11a6" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 1 triple 90 Degrees" draw:style = "triple" draw:color = "#280099" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 2 triple 90 Degrees" draw:style = "triple" draw:color = "#4700b8" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 3 triple 90 Degrees" draw:style = "triple" draw:color = "#2300dc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 4 triple 90 Degrees" draw:style = "triple" draw:color = "#2323dc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 5 triple 90 Degrees" draw:style = "triple" draw:color = "#0047ff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 6 triple 90 Degrees" draw:style = "triple" draw:color = "#0099ff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 7 triple 90 Degrees" draw:style = "triple" draw:color = "#00b8ff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Blue 8 triple 90 Degrees" draw:style = "triple" draw:color = "#99ccff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 1 triple 90 Degrees" draw:style = "triple" draw:color = "#00dcff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 2 triple 90 Degrees" draw:style = "triple" draw:color = "#00cccc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 3 triple 90 Degrees" draw:style = "triple" draw:color = "#23b8dc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 4 triple 90 Degrees" draw:style = "triple" draw:color = "#47b8b8" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 5 triple 90 Degrees" draw:style = "triple" draw:color = "#33a3a3" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 6 triple 90 Degrees" draw:style = "triple" draw:color = "#198a8a" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 7 triple 90 Degrees" draw:style = "triple" draw:color = "#006b6b" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Turquoise 8 triple 90 Degrees" draw:style = "triple" draw:color = "#004a4a" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 1 triple 90 Degrees" draw:style = "triple" draw:color = "#355e00" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 2 triple 90 Degrees" draw:style = "triple" draw:color = "#5c8526" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 3 triple 90 Degrees" draw:style = "triple" draw:color = "#7da647" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 4 triple 90 Degrees" draw:style = "triple" draw:color = "#94bd5e" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 5 triple 90 Degrees" draw:style = "triple" draw:color = "#00ae00" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 6 triple 90 Degrees" draw:style = "triple" draw:color = "#33cc66" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 7 triple 90 Degrees" draw:style = "triple" draw:color = "#3deb3d" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Green 8 triple 90 Degrees" draw:style = "triple" draw:color = "#23ff23" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 1 triple 90 Degrees" draw:style = "triple" draw:color = "#e6ff00" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 2 triple 90 Degrees" draw:style = "triple" draw:color = "#ffff99" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 3 triple 90 Degrees" draw:style = "triple" draw:color = "#ffff66" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 4 triple 90 Degrees" draw:style = "triple" draw:color = "#e6e64c" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 5 triple 90 Degrees" draw:style = "triple" draw:color = "#cccc00" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 6 triple 90 Degrees" draw:style = "triple" draw:color = "#b3b300" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 7 triple 90 Degrees" draw:style = "triple" draw:color = "#808019" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Yellow 8 triple 90 Degrees" draw:style = "triple" draw:color = "#666600" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 1 triple 90 Degrees" draw:style = "triple" draw:color = "#4c1900" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 2 triple 90 Degrees" draw:style = "triple" draw:color = "#663300" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 3 triple 90 Degrees" draw:style = "triple" draw:color = "#804c19" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Brown 4 triple 90 Degrees" draw:style = "triple" draw:color = "#996633" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 1 triple 90 Degrees" draw:style = "triple" draw:color = "#cc6633" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 2 triple 90 Degrees" draw:style = "triple" draw:color = "#ff6633" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 3 triple 90 Degrees" draw:style = "triple" draw:color = "#ff9966" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Orange 4 triple 90 Degrees" draw:style = "triple" draw:color = "#ffcc99" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Violet triple 90 Degrees" draw:style = "triple" draw:color = "#9999ff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Bordeaux triple 90 Degrees" draw:style = "triple" draw:color = "#993366" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Pale yellow triple 90 Degrees" draw:style = "triple" draw:color = "#ffffcc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Pale green triple 90 Degrees" draw:style = "triple" draw:color = "#ccffff" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Dark violet triple 90 Degrees" draw:style = "triple" draw:color = "#660066" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Salmon triple 90 Degrees" draw:style = "triple" draw:color = "#ff8080" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sea blue triple 90 Degrees" draw:style = "triple" draw:color = "#0066cc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 1 triple 90 Degrees" draw:style = "triple" draw:color = "#333366" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 2 triple 90 Degrees" draw:style = "triple" draw:color = "#666699" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 3 triple 90 Degrees" draw:style = "triple" draw:color = "#9999cc" draw:distance = "0.12inches" draw:rotation = "900"/>
++<draw:hatch draw:name = "Sun 4 triple 90 Degrees" draw:style = "triple" draw:color = "#ccccff" draw:distance = "0.12inches" draw:rotation = "900"/>
++
++</office:hatch-table>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unxlngi6-notune.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unxlngi6-notune.diff
@@ -0,0 +1,11 @@
+--- solenv/inc/unxlngi6.mk~	2006-09-04 16:51:53.010718000 +0200
++++ solenv/inc/unxlngi6.mk	2006-09-04 17:05:38.280718000 +0200
+@@ -64,7 +64,7 @@
+ 
+ # architecture dependent flags for the C and C++ compiler that can be changed by
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+-ARCH_FLAGS*=-mtune=pentiumpro
++#ARCH_FLAGS*=-mtune=pentiumpro
+ 
+ # name of C++ Compiler
+ CXX*=g++
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vcl-virdev-missing-initialisation.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vcl-virdev-missing-initialisation.diff
@@ -0,0 +1,12 @@
+--- vcl/source/gdi/virdev.cxx	25 Oct 2007 16:04:52 -0000	1.31
++++ vcl/source/gdi/virdev.cxx	31 Mar 2008 09:54:45 -0000
+@@ -191,7 +191,8 @@ VirtualDevice::VirtualDevice( const Outp
+ // -----------------------------------------------------------------------
+ 
+ VirtualDevice::VirtualDevice( const OutputDevice& rCompDev, USHORT nBitCount, USHORT nAlphaBitCount )
+-	: mpVirDev( NULL )
++	: mpVirDev( NULL ),
++    meRefDevMode( REFDEV_NONE )
+ {
+ 	DBG_TRACE1( "VirtualDevice::VirtualDevice( %hu )", nBitCount );
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-xmloff.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-xmloff.diff
@@ -0,0 +1,4 @@
+--- xmloff/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ xmloff/prj/tests.lst	2007-09-07 14:32:16.000000000 +0200
+@@ -0,0 +1 @@
++#does not build: xo   xmloff\qa\unoapi                                   nmake - all xo_qa_unoapi NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo87071.sd.backgroundfix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo87071.sd.backgroundfix.diff
@@ -0,0 +1,11 @@
+--- sd/source/ui/func/fupage.cxx	26 Nov 2007 17:01:36 -0000	1.29
++++ sd/source/ui/func/fupage.cxx	26 Apr 2008 14:31:03 -0000
+@@ -342,7 +342,7 @@
+ 				pTempSet.reset( new SfxItemSet( mpDoc->GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST, 0) );
+ 
+ 				pTempSet->Put( XFillStyleItem( XFILL_BITMAP ) );
+-				pTempSet->Put( XFillBitmapItem( String(), XOBitmap(aGraphic) ) );
++				pTempSet->Put( XFillBitmapItem( String(RTL_CONSTASCII_USTRINGPARAM("background")), XOBitmap(aGraphic) ) );
+ 				pTempSet->Put( XFillBmpStretchItem( TRUE ));
+ 				pTempSet->Put( XFillBmpTileItem( FALSE ));
+ 			}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-autotext-and-form-name.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-autotext-and-form-name.diff
@@ -0,0 +1,217 @@
+diff -rup /data4/LatestSourceOnly/ooo-build/build/ooh680-m1/sc/source/filter/excel/xiescher.cxx sc/source/filter/excel/xiescher.cxx
+--- /data4/LatestSourceOnly/ooo-build/build/ooh680-m1/sc/source/filter/excel/xiescher.cxx	2008-01-17 16:28:44.000000000 +0000
++++ sc/source/filter/excel/xiescher.cxx	2008-01-17 15:03:09.000000000 +0000
+@@ -598,8 +598,38 @@ sal_Size XclImpDrawObjBase::DoGetProgres
+     return 1;
+ }
+ 
+-void XclImpDrawObjBase::DoProcessSdrObj( SdrObject& /*rSdrObj*/ ) const
++void XclImpDrawObjBase::DoProcessSdrObj( SdrObject& rSdrObj ) const
+ {
++    if ( rSdrObj.GetName().Len() == 0 )
++    {
++        // create  a default name based on the shape id and shape type
++        sal_uInt32 nID = ( mnShapeId & 0x000003ff );
++        String sID = String::CreateFromInt32( nID );
++        String sName;
++        switch ( mnObjType )
++        {
++            case EXC_OBJ_CMO_DRAWING: 
++                  sName = ScGlobal::GetRscString( STR_SHAPE_AUTOSHAPE );
++                  break;
++            case EXC_OBJ_CMO_RECTANGLE:
++                  sName = ScGlobal::GetRscString( STR_SHAPE_RECTANGLE );
++                  break;
++            case EXC_OBJ_CMO_LINE:
++                  sName = ScGlobal::GetRscString( STR_SHAPE_LINE );
++                  break;
++            case EXC_OBJ_CMO_ELLIPSE:
++                  sName = ScGlobal::GetRscString( STR_SHAPE_OVAL );
++                  break;
++            case EXC_OBJ_CMO_TEXT:
++                  sName = ScGlobal::GetRscString( STR_SHAPE_TEXTBOX );
++                  break;
++        default:
++            DBG_ERROR1( "XclImpDrawObjBase::ProcessSdrObject - unknown object type 0x%04hX", mnObjId );
++            break;
++        }       
++        if ( sName.Len() > 0 )
++            rSdrObj.SetName( sName.Append( sID ) );
++    } 
+     // trace if object is not printable
+     if( !IsPrintable() )
+         GetTracer().TraceObjectNotPrintable();
+@@ -914,7 +941,7 @@ void XclImpTbxControlObj::DoProcessSdrOb
+     // #118053# #i51348# set internal name of the control (use name from SdrObject, if extant)
+     OUString aCtrlName = rSdrObj.GetName();
+     if( aCtrlName.getLength() == 0 )
+-        aCtrlName = XclControlObjHelper::GetTbxControlName( GetObjType() );
++        aCtrlName = XclControlObjHelper::GetTbxControlName( GetObjType(), GetShapeId() );
+     if( aCtrlName.getLength() > 0 )
+         aPropSet.SetProperty( CREATE_OUSTRING( "Name" ), aCtrlName );
+ 
+diff -rup /data4/LatestSourceOnly/ooo-build/build/ooh680-m1/sc/source/filter/excel/xlescher.cxx sc/source/filter/excel/xlescher.cxx
+--- /data4/LatestSourceOnly/ooo-build/build/ooh680-m1/sc/source/filter/excel/xlescher.cxx	2007-05-22 20:51:34.000000000 +0100
++++ sc/source/filter/excel/xlescher.cxx	2008-01-17 15:37:51.000000000 +0000
+@@ -58,6 +58,7 @@
+ #ifndef SC_XESTREAM_HXX
+ #include "xestream.hxx"
+ #endif
++#include "globstr.hrc"
+ 
+ using ::rtl::OUString;
+ using ::com::sun::star::uno::Reference
+@@ -342,23 +342,24 @@ OUString XclControlObjHelper::GetTbxServ
+     return aName;
+ }
+ 
+-OUString XclControlObjHelper::GetTbxControlName( sal_uInt16 nCtrlType )
++OUString XclControlObjHelper::GetTbxControlName( sal_uInt16 nCtrlType, sal_uInt32 nShapeId )
+ {
+     OUString aName;
++    OUString sID = OUString::valueOf( static_cast< sal_Int32 >( nShapeId )  & 0x000003ff );
+     switch( nCtrlType )
+     {
+-        case EXC_OBJ_CMO_BUTTON:        aName = CREATE_OUSTRING( "CommandButton" ); break;
+-        case EXC_OBJ_CMO_CHECKBOX:      aName = CREATE_OUSTRING( "CheckBox" );      break;
+-        case EXC_OBJ_CMO_OPTIONBUTTON:  aName = CREATE_OUSTRING( "OptionButton" );  break;
+-        case EXC_OBJ_CMO_LABEL:         aName = CREATE_OUSTRING( "Label" );         break;
+-        case EXC_OBJ_CMO_LISTBOX:       aName = CREATE_OUSTRING( "ListBox" );       break;
+-        case EXC_OBJ_CMO_GROUPBOX:      aName = CREATE_OUSTRING( "GroupBox" );      break;
+-        case EXC_OBJ_CMO_COMBOBOX:      aName = CREATE_OUSTRING( "ComboBox" );      break;
+-        case EXC_OBJ_CMO_SPIN:          aName = CREATE_OUSTRING( "SpinButton" );    break;
+-        case EXC_OBJ_CMO_SCROLLBAR:     aName = CREATE_OUSTRING( "ScrollBar" );     break;
++        case EXC_OBJ_CMO_BUTTON:        aName = ScGlobal::GetRscString( STR_FORM_BUTTON ); break;
++        case EXC_OBJ_CMO_CHECKBOX:      aName = ScGlobal::GetRscString( STR_FORM_CHECKBOX );      break;
++        case EXC_OBJ_CMO_OPTIONBUTTON:  aName = ScGlobal::GetRscString( STR_FORM_OPTIONBOX );  break;
++        case EXC_OBJ_CMO_LABEL:         aName = ScGlobal::GetRscString( STR_FORM_LABEL );         break;
++        case EXC_OBJ_CMO_LISTBOX:       aName = ScGlobal::GetRscString( STR_FORM_LISTBOX );       break;
++        case EXC_OBJ_CMO_GROUPBOX:      aName = ScGlobal::GetRscString( STR_FORM_GROUPBOX );      break;
++        case EXC_OBJ_CMO_COMBOBOX:      aName = ScGlobal::GetRscString( STR_FORM_DROPDOWN );      break;
++        case EXC_OBJ_CMO_SPIN:          aName = ScGlobal::GetRscString( STR_FORM_SPINNER );    break;
++        case EXC_OBJ_CMO_SCROLLBAR:     aName = ScGlobal::GetRscString( STR_FORM_SCROLLBAR );     break;
+         default:    DBG_ERRORFILE( "XclControlObjHelper::GetTbxControlName - unknown control type" );
+     }
+-    return aName;
++    return aName = aName += sID;
+ }
+ 
+ OUString XclControlObjHelper::GetTbxListenerType( sal_uInt16 nCtrlType )
+diff -rup /data4/LatestSourceOnly/ooo-build/build/ooh680-m1/sc/source/filter/inc/xlescher.hxx sc/source/filter/inc/xlescher.hxx
+--- /data4/LatestSourceOnly/ooo-build/build/ooh680-m1/sc/source/filter/inc/xlescher.hxx	2007-01-22 13:22:23.000000000 +0000
++++ sc/source/filter/inc/xlescher.hxx	2008-01-17 15:39:12.000000000 +0000
+@@ -278,7 +278,7 @@ public:
+     /** Returns the component service name for the passed control type. */
+     static ::rtl::OUString GetTbxServiceName( sal_uInt16 nCtrlType );
+     /** Returns a default control name for the passed control type. */
+-    static ::rtl::OUString GetTbxControlName( sal_uInt16 nCtrlType );
++    static ::rtl::OUString GetTbxControlName( sal_uInt16 nCtrlType, sal_uInt32 nShapeId );
+ 
+     /** Returns the listener type (interface name) for macro events for the passed control type. */
+     static ::rtl::OUString GetTbxListenerType( sal_uInt16 nCtrlType );
+--- backup/sc/inc/globstr.hrc	2007-11-26 14:41:12.000000000 +0000
++++ sc/inc/globstr.hrc	2008-01-21 15:34:45.000000000 +0000
+@@ -563,7 +563,23 @@
+ #define STR_ERR_LONG_NESTED_ARRAY   419
+ #define STR_UNDO_TEXTTOCOLUMNS      420
+ 
+-#define STR_COUNT                   421
++#define STR_SHAPE_AUTOSHAPE         421
++#define STR_SHAPE_RECTANGLE         422
++#define STR_SHAPE_LINE              423
++#define STR_SHAPE_OVAL              424
++#define STR_SHAPE_TEXTBOX           425
++
++#define STR_FORM_BUTTON             426
++#define STR_FORM_CHECKBOX           427
++#define STR_FORM_OPTIONBOX          428
++#define STR_FORM_LABEL              429
++#define STR_FORM_LISTBOX            430
++#define STR_FORM_GROUPBOX           431
++#define STR_FORM_DROPDOWN           432
++#define STR_FORM_SPINNER            433
++#define STR_FORM_SCROLLBAR          434
++
++#define STR_COUNT                   434
+ 
+ #endif
+ 
+--- backup/sc/source/ui/src/globstr.src	2007-11-26 14:42:38.000000000 +0000
++++ sc/source/ui/src/globstr.src	2008-01-21 14:46:09.000000000 +0000
+@@ -1691,5 +1691,76 @@ Resource RID_GLOBSTR
+     {
+         Text [ en-US ] = "Text to Columns";
+     };
++
++    String STR_SHAPE_AUTOSHAPE
++    {
++        Text [ en-US ] = "AutoShape ";
++    };
++
++    String STR_SHAPE_RECTANGLE
++    {
++        Text [ en-US ] = "Rectangle ";
++    };
++
++    String STR_SHAPE_LINE
++    {
++        Text [ en-US ] = "Line ";
++    };
++
++    String STR_SHAPE_OVAL
++    {
++        Text [ en-US ] = "Oval ";
++    };
++
++    String STR_SHAPE_TEXTBOX
++    {
++        Text [ en-US ] = "Text Box ";
++    };
++
++    String STR_FORM_BUTTON
++    {
++        Text [ en-US ] = "Button ";
++    };
++
++    String STR_FORM_CHECKBOX
++    {
++        Text [ en-US ] = "Check Box ";
++    };
++
++    String STR_FORM_OPTIONBOX
++    {
++        Text [ en-US ] = "Option Box ";
++    };
++
++    String STR_FORM_LABEL
++    {
++        Text [ en-US ] = "Label ";
++    };
++
++    String STR_FORM_LISTBOX
++    {
++        Text [ en-US ] = "List Box ";
++    };
++
++    String STR_FORM_GROUPBOX
++    {
++        Text [ en-US ] = "Group Box ";
++    };
++
++    String STR_FORM_DROPDOWN 
++    {
++        Text [ en-US ] = "Drop Down ";
++    };
++
++    String STR_FORM_SPINNER
++    {
++        Text [ en-US ] = "Spinner ";
++    };
++
++    String STR_FORM_SCROLLBAR
++    {
++        Text [ en-US ] = "Scroll Bar ";
++    };
++
+ };
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/accessories_target.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/accessories_target.diff
@@ -0,0 +1,58 @@
+--- extras/util/target.orig	2005-09-09 00:22:16.000000000 +0200
++++ extras/util/target.pmk	2005-12-30 10:29:41.754670700 +0100
+@@ -76,6 +76,55 @@
+ GALLERY_WWWBACK_TARGET          = gallwwwback
+ GALLERY_WWWGRAF_TARGET          = gallwwwgraf
+
++GALLERY_ACCESSORIES_ROOT_TARGET = kamigallery
++GALLERY_ACCESSORIES_DRAWS_PEOPLE_TARGET = kamigallerydrawspeople
++GALLERY_ACCESSORIES_PHOTOS_BUILDINGS_TARGET = kamigalleryphotosbuildings
++GALLERY_ACCESSORIES_PHOTOS_CELEBRATION_TARGET = kamigalleryphotoscelebration
++GALLERY_ACCESSORIES_PHOTOS_CITIES_TARGET = kamigalleryphotoscities
++GALLERY_ACCESSORIES_PHOTOS_FAUNA_TARGET = kamigalleryphotosfauna
++GALLERY_ACCESSORIES_PHOTOS_FLOWERS_TARGET = kamigalleryphotosflowers
++GALLERY_ACCESSORIES_PHOTOS_FOODSANDDRINKS_TARGET = kamigalleryphotosfoodsanddrinks
++GALLERY_ACCESSORIES_PHOTOS_HUMANS_TARGET = kamigalleryphotoshumans
++GALLERY_ACCESSORIES_PHOTOS_LANDSCAPES_TARGET = kamigalleryphotoslandscapes
++GALLERY_ACCESSORIES_PHOTOS_OBJECTS_TARGET = kamigalleryphotosobjects
++GALLERY_ACCESSORIES_PHOTOS_PLANTS_TARGET = kamigalleryphotosplants
++GALLERY_ACCESSORIES_PHOTOS_SPACE_TARGET = kamigalleryphotosspace
++GALLERY_ACCESSORIES_PHOTOS_STATUES_TARGET = kamigalleryphotosstatues
++GALLERY_ACCESSORIES_PHOTOS_TRAVEL_TARGET = kamigalleryphotostravel
++GALLERY_ACCESSORIES_ELEMENTS_BULLETS2_TARGET = kamigalleryelementsbullets2
++
++GALLERY_ACCESSORIES_NONFREE_ROOT_TARGET = kamigallerynonfree
++
++PREMIUM_TEMPLATES_LAYOUT_IMPRESS_TARGET     = kamitemplateslayout
++PREMIUM_TEMPLATES_PRESNT_IMPRESS_TARGET     = kamitemplatespresent
++PREMIUM_TEMPLATES_EDUCATE_TARGET            = kamitemplateseducate
++PREMIUM_TEMPLATES_FINANCE_TARGET            = kamitemplatesfinance
++PREMIUM_TEMPLATES_FORMS_TARGET              = kamitemplatesforms
++PREMIUM_TEMPLATES_LABELS_TARGET             = kamitemplateslabels
++PREMIUM_TEMPLATES_MISC_TARGET               = kamitemplatesmisc
++PREMIUM_TEMPLATES_OFFICORR_TARGET           = kamitemplatesofficorr
++PREMIUM_TEMPLATES_OFFIMISC_TARGET           = kamitemplatesoffimisc
++PREMIUM_TEMPLATES_PERSONAL_TARGET           = kamitemplatespersonal
++PREMIUM_TEMPLATES_ROOT_TARGET               = kamitemplates
++PREMIUM_SAMPLES_ROOT_TARGET                 = kamisamples
++PREMIUM_SAMPLES_DOCUMENTATION_TARGET        = kamisamplesdocumentation
++PREMIUM_SAMPLES_ADVERTISEMENT_TARGET        = kamisamplesadvertisement
++
++PREMIUM_TEMPLATES_NONFREE_LAYOUT_IMPRESS_TARGET     = kamitemplatesnonfreelayout
++PREMIUM_TEMPLATES_NONFREE_PRESNT_IMPRESS_TARGET     = kamitemplatesnonfreepresent
++PREMIUM_TEMPLATES_NONFREE_EDUCATE_TARGET            = kamitemplatesnonfreeeducate
++PREMIUM_TEMPLATES_NONFREE_FINANCE_TARGET            = kamitemplatesnonfreefinance
++PREMIUM_TEMPLATES_NONFREE_FORMS_TARGET              = kamitemplatesnonfreeforms
++PREMIUM_TEMPLATES_NONFREE_LABELS_TARGET             = kamitemplatesnonfreelabels
++PREMIUM_TEMPLATES_NONFREE_MISC_TARGET               = kamitemplatesnonfreemisc
++PREMIUM_TEMPLATES_NONFREE_OFFICORR_TARGET           = kamitemplatesnonfreeofficorr
++PREMIUM_TEMPLATES_NONFREE_OFFIMISC_TARGET           = kamitemplatesnonfreeoffimisc
++PREMIUM_TEMPLATES_NONFREE_PERSONAL_TARGET           = kamitemplatesnonfreepersonal
++PREMIUM_TEMPLATES_NONFREE_ROOT_TARGET               = kamitemplatesnonfree
++PREMIUM_SAMPLES_NONFREE_ROOT_TARGET                 = kamisamplesnonfree
++PREMIUM_SAMPLES_NONFREE_DOCUMENTATION_TARGET        = kamisamplesnonfreedocumentation
++PREMIUM_SAMPLES_NONFREE_ADVERTISEMENT_TARGET        = kamisamplesnonfreeadvertisement
++
+ INSO_DUTCH_TARGET               = inso31
+ INSO_ENGLISH_UK_TARGET          = inso44
+ INSO_ENGLISH_US_TARGET          = inso01
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkwarn-sfx2-disable-cb-persistency.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkwarn-sfx2-disable-cb-persistency.diff
@@ -0,0 +1,29 @@
+--- sfx2/source/dialog/filedlghelper.cxx	2008-04-15 16:18:43.000000000 +0200
++++ sfx2/source/dialog/filedlghelper.cxx	2008-05-08 08:03:49.000000000 +0200
+@@ -1960,11 +1960,7 @@
+ 
+ 		try
+ 		{
+-			aValue = xDlg->getValue( ExtendedFilePickerElementIds::CHECKBOX_LINK, 0 );
+ 			sal_Bool bValue = sal_False;
+-			aValue >>= bValue;
+-			aUserData.SetToken( 0, ' ', String::CreateFromInt32( (sal_Int32) bValue ) );
+-
+ 			aValue = xDlg->getValue( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW, 0 );
+ 			bValue = sal_False;
+ 			aValue >>= bValue;
+@@ -2089,14 +2085,6 @@
+ 		{
+ 			try
+ 			{
+-				// respect the last "insert as link" state
+-				sal_Bool bLink = (sal_Bool) aUserData.GetToken( 0, ' ' ).ToInt32();
+-                if ( !xDlg->getValue( ExtendedFilePickerElementIds::CHECKBOX_LINK, 0 ).hasValue() )
+-                {
+-				    aValue <<= bLink;
+-				    xDlg->setValue( ExtendedFilePickerElementIds::CHECKBOX_LINK, 0, aValue );
+-                }
+-
+ 				// respect the last "show preview" state
+ 				sal_Bool bShowPreview = (sal_Bool) aUserData.GetToken( 1, ' ' ).ToInt32();
+                 if  ( !xDlg->getValue( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW, 0 ).hasValue() )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/localize-pl-cygwin-paths.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/localize-pl-cygwin-paths.diff
@@ -0,0 +1,51 @@
+--- transex3/scripts/localize.pl.ORIG	2007-04-24 18:08:18.000000000 +0200
++++ transex3/scripts/localize.pl	2008-04-18 13:30:52.068500000 +0200
+@@ -375,8 +375,9 @@
+         $command = "gsicheck";
+     }
+     my $errfile = $sdffile.".err";
+-    $command .= " -k -c -wcf $tmpfile -wef $errfile -l \"\" $sdffile";
++    $command .= " -k -c -wcf $tmpfile -wef ".fix_cygwin_path($errfile)." -l \"\" ".fix_cygwin_path($sdffile);
+     #my $rc = system( $command );
++    if ($bVerbose) { print STDOUT "localize.pl running $command\n"; }
+     my $output = `$command`;
+     my $rc = $? << 8;
+     if ( $output ne "" ){
+@@ -444,7 +445,7 @@
+         # if ( -x $command ){
+         if( $command ){
+             if( !$bVerbose  ){ $args .= " -QQ -skip_links "; }
+-            $args .= " -e -f $localizeSDF -l ";
++            $args .= " -e -f ".fix_cygwin_path($localizeSDF)." -l ";
+             my $bFlag="";
+             if( $bAll ) {$args .= " en-US";}
+             else{
+@@ -481,7 +482,7 @@
+ #            if ( $WIN eq "TRUE" ) { $args .= " > $my_localize_log";  }
+ #            else                  { $args .= " >& $my_localize_log"; }
+ #        }
+-        if ( $bVerbose ) { print STDOUT $command.$args."\n"; }
++        if ( $bVerbose ) { print STDOUT "localize.pl running $command.$args.\n"; }
+         
+         my $rc = system( $command.$args );
+ 
+@@ -1105,6 +1106,19 @@
+     print STDERR "\nlocalize -m -l cs -f my.sdf\n( Merge cs translation into the sourcecode ) \n";
+ }
+ 
++sub fix_cygwin_path
++{
++    my ( $path ) = @_;
++
++    if ( $^O eq 'cygwin' )
++    {
++	$path = qx{cygpath -m "$path"};
++	chomp($path);
++    }
++
++    return $path;
++}
++
+ #            my $line           = defined $_ ? $_ : '';
+ #            my $leftpart       = defined $2 ? $2 : '';
+ #            my $prj            = defined $3 ? $3 : '';
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-input-field-dialog.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-input-field-dialog.diff
@@ -0,0 +1,621 @@
+diff -urNp sworig/source/ui/fldui/inpdlg.cxx sw/source/ui/fldui/inpdlg.cxx
+--- sworig/source/ui/fldui/inpdlg.cxx	2005-09-09 15:44:10.000000000 +0800
++++ sw/source/ui/fldui/inpdlg.cxx	2006-08-25 20:23:06.000000000 +0800
+@@ -95,6 +95,7 @@ SwFldInputDlg::SwFldInputDlg( Window *pP
+ 	aOKBT		(this, SW_RES(BT_OK		)),
+ 	aCancelBT	(this, SW_RES(BT_CANCEL	)),
+ 	aNextBT		(this, SW_RES(PB_NEXT	)),
++	aPreviousBT	(this, SW_RES(PB_PREVIOUS	)),
+     aHelpBT     (this, SW_RES(PB_HELP    ))
+ {
+ 	// Font fuers Edit umschalten
+@@ -104,20 +105,31 @@ SwFldInputDlg::SwFldInputDlg( Window *pP
+ 	Font aFont(aEditED.GetFont());
+ 	aFont.SetWeight(WEIGHT_LIGHT);
+ 	aEditED.SetFont(aFont);
+-
+-	if( bNextButton )
+-	{
+-		aNextBT.Show();
+-		aNextBT.SetClickHdl(LINK(this, SwFldInputDlg, NextHdl));
+-	}
+-	else
+-	{
+-		long nDiff = aCancelBT.GetPosPixel().Y() - aOKBT.GetPosPixel().Y();
+-		Point aPos = aHelpBT.GetPosPixel();
+-		aPos.Y() -= nDiff;
+-		aHelpBT.SetPosPixel(aPos);
+-	}
+-
++	
++    SwField* pCurrField = rSh.GetCurFld();
++    
++    //if edit input field 
++    if (pCurrField)
++    {
++        //set the modify link to make field update as user type
++	    Link aModifyLk = LINK(this, SwFldInputDlg, ModifyHdl);
++	    aEditED.SetModifyHdl(aModifyLk);
++	    //set the cancel button link
++	    Link aCancelLk = LINK(this, SwFldInputDlg, CancelHdl);
++	    aCancelBT.SetClickHdl(aCancelLk);
++	
++	    aNextBT.SetClickHdl(LINK(this, SwFldInputDlg, NextHdl));
++	    aPreviousBT.SetClickHdl(LINK(this, SwFldInputDlg, PrevHdl));
++    }
++    else //newly create field
++    {
++        aNextBT.Hide();
++        aPreviousBT.Hide();
++        //enlarge aEditED to make the dialog looks clean after hide two buttons 
++		Size aSize = aEditED.GetSizePixel();
++		aSize.Height() += aNextBT.GetSizePixel().Height();
++		aEditED.SetSizePixel(aSize);
++    }
+ 	// Auswertung hier
+ 	String aStr;
+ 	if( RES_INPUTFLD == pField->GetTyp()->Which() )
+@@ -163,7 +175,24 @@ SwFldInputDlg::SwFldInputDlg( Window *pP
+ 	aEditED.SetReadOnly( !bEnable );
+ 
+ 	if( aStr.Len() )
++	{
+ 		aEditED.SetText( aStr.ConvertLineEnd() );
++		Selection aNewSelection( 0, aStr.Len() );
++		aEditED.SetSelection( aNewSelection );
++	}
++	aOriStr = aStr;
++	
++	//move the dialog to just above the input field
++	if (pCurrField)
++	{   
++        Point realPos = rSh.GetWin()->LogicToPixel( rSh.GetCrsrDocPos() );
++        long offY = rSh.GetWin()->GetOutOffYPixel();
++        long nWinPosY = realPos.Y() + offY - GetSizePixel().getHeight();
++        if (nWinPosY < 0)
++            nWinPosY = realPos.Y() + offY + GetSizePixel().getHeight()/2 - 14;
++        SetPosPixel( Point(realPos.X(), nWinPosY));
++    }
++    	
+ 	FreeResource();
+ }
+ 
+@@ -214,11 +243,157 @@ void SwFldInputDlg::Apply()
+ 	rSh.EndAllAction();
+ }
+ 
+-
+ IMPL_LINK(SwFldInputDlg, NextHdl, PushButton*, EMPTYARG)
+ {
+-	EndDialog(RET_OK);
++	//EndDialog(RET_OK);
++	//return 0;
++	Apply();
++	
++	String aStr;
++	SwFieldType* pFld = rSh.GetFldType( 0, RES_INPUTFLD );
++	if( pFld && rSh.MoveFldType( pFld, TRUE ))
++	{
++		rSh.ClearMark();
++		SwField* pField = rSh.GetCurFld();
++		if( pField && RES_INPUTFLD == pField->GetTyp()->Which() )
++    	{	// Es ist eine Eingabefeld
++    		//
++    		pInpFld = (SwInputField*)pField;
++    		aLabelED.SetText( pInpFld->GetPar2() );
++    		USHORT nSubType = pInpFld->GetSubType();
++    
++    		switch(nSubType & 0xff)
++    		{
++    			case INP_TXT:
++    				aStr = pInpFld->GetPar1();
++    				break;
++    
++    			case INP_USR:
++    				// Benutzerfeld
++    				if( 0 != ( pUsrType = (SwUserFieldType*)rSh.GetFldType(
++    							RES_USERFLD, pInpFld->GetPar1() ) ) )
++    					aStr = pUsrType->GetContent();
++    				break;
++    		}
++    		
++    		//move the dialog to just below the input field
++    		Point realPos = rSh.GetWin()->LogicToPixel( rSh.GetCrsrDocPos() );
++            long offY = rSh.GetWin()->GetOutOffYPixel();
++            long nWinPosY = realPos.Y() + offY - GetSizePixel().getHeight();
++            if (nWinPosY < 0)
++                nWinPosY = realPos.Y() + offY + GetSizePixel().getHeight()/2 - 14;
++            SetPosPixel( Point(realPos.X(), nWinPosY));
++    	}
++    	
++    	
++    	aEditED.SetText( aStr.ConvertLineEnd() );
++    	aOriStr = aStr;
++    	
++    	if( aStr.Len() )
++	    {
++		    Selection aNewSelection( 0, aStr.Len() );
++		    aEditED.SetSelection( aNewSelection );
++	    }
++	}
++	else
++	{
++	    rSh.ClearMark();
++		SwField* pField = rSh.GetCurFld();
++		if( pField && RES_INPUTFLD == pField->GetTyp()->Which() )
++    		pInpFld = (SwInputField*)pField;
++	}
++	aEditED.GrabFocus();
++	
++	return 0;
++}
++
++
++IMPL_LINK(SwFldInputDlg, PrevHdl, PushButton*, EMPTYARG)
++{
++	Apply();
++	
++	String aStr;
++	SwFieldType* pFld = rSh.GetFldType( 0, RES_INPUTFLD );
++	if( pFld && rSh.MoveFldType( pFld, FALSE ))
++	{
++		rSh.ClearMark();
++		SwField* pField = rSh.GetCurFld();
++		if( pField && RES_INPUTFLD == pField->GetTyp()->Which() )
++    	{	
++    		//
++    		pInpFld = (SwInputField*)pField;
++    		aLabelED.SetText( pInpFld->GetPar2() );
++    		USHORT nSubType = pInpFld->GetSubType();
++    
++    		switch(nSubType & 0xff)
++    		{
++    			case INP_TXT:
++    				aStr = pInpFld->GetPar1();
++    				break;
++    
++    			case INP_USR:
++    				// Benutzerfeld
++    				if( 0 != ( pUsrType = (SwUserFieldType*)rSh.GetFldType(
++    							RES_USERFLD, pInpFld->GetPar1() ) ) )
++    					aStr = pUsrType->GetContent();
++    				break;
++    		}
++    		
++    		//move the dialog to just below the input field
++    		Point realPos = rSh.GetWin()->LogicToPixel( rSh.GetCrsrDocPos() );
++            long offY = rSh.GetWin()->GetOutOffYPixel();
++            long nWinPosY = realPos.Y() + offY - GetSizePixel().getHeight();
++            if (nWinPosY < 0)
++                nWinPosY = realPos.Y() + offY + GetSizePixel().getHeight()/2 - 14;
++            SetPosPixel( Point(realPos.X(), nWinPosY));
++    	}
++    	 	
++    	aEditED.SetText( aStr.ConvertLineEnd() );
++    	aOriStr = aStr;
++    	
++    	if( aStr.Len() )
++	    {
++		    Selection aNewSelection( 0, aStr.Len() );
++		    aEditED.SetSelection( aNewSelection );
++	    }
++	}
++	else
++	{
++	    rSh.ClearMark();
++		SwField* pField = rSh.GetCurFld();
++		if( pField && RES_INPUTFLD == pField->GetTyp()->Which() )
++    		pInpFld = (SwInputField*)pField;
++	}
++	aEditED.GrabFocus();
++	
+ 	return 0;
+ }
+ 
++IMPL_LINK(SwFldInputDlg, ModifyHdl, void*, EMPTYARG)
++{
++	Apply();
++	
++	rSh.ClearMark();
++	SwField* pField = rSh.GetCurFld();
++	if( pField && RES_INPUTFLD == pField->GetTyp()->Which() )
++    	pInpFld = (SwInputField*)pField;
++    		
++	return 0;
++}
+ 
++IMPL_LINK(SwFldInputDlg, CancelHdl, void*, EMPTYARG)
++{
++	aEditED.SetText( aOriStr );
++	
++	Apply();
++	
++	if ( IsInExecute() )
++        EndDialog( FALSE );
++    else
++    {
++        if ( GetStyle() & WB_CLOSEABLE )
++            Close();
++    }
++    		
++	return 0;
++}
+\ No newline at end of file
+diff -urNp sworig/source/ui/fldui/inpdlg.hrc sw/source/ui/fldui/inpdlg.hrc
+--- sworig/source/ui/fldui/inpdlg.hrc	2005-09-09 15:44:26.000000000 +0800
++++ sw/source/ui/fldui/inpdlg.hrc	2006-07-17 12:10:38.000000000 +0800
+@@ -40,3 +40,4 @@
+ #define ED_LABEL			7
+ #define PB_NEXT				8
+ #define PB_HELP				9
++#define PB_PREVIOUS			10
+diff -urNp sworig/source/ui/fldui/inpdlg.src sw/source/ui/fldui/inpdlg.src
+--- sworig/source/ui/fldui/inpdlg.src	2005-09-09 15:44:44.000000000 +0800
++++ sw/source/ui/fldui/inpdlg.src	2006-08-23 20:46:48.000000000 +0800
+@@ -42,7 +42,7 @@ ModalDialog DLG_FLD_INPUT
+ 	OutputSize = TRUE ;
+ 	Hide = TRUE ;
+ 	SVLook = TRUE ;
+-	Size = MAP_APPFONT ( 194 , 119 ) ;
++	Size = MAP_APPFONT ( 194 , 77 ) ;
+ 	Text [ en-US ] = "Input Field" ;
+ 	Moveable = TRUE ;
+ 	/*    FixedText FT_LABEL
+@@ -57,9 +57,9 @@ ModalDialog DLG_FLD_INPUT
+ 	Edit ED_LABEL
+ 	{
+ 		Border = TRUE ;
+-		Pos = MAP_APPFONT ( 12 , 14 ) ;
++		Pos = MAP_APPFONT ( 12 , 12 ) ;
+ 		Size = MAP_APPFONT ( 115 , 12 ) ;
+-		TabStop = TRUE ;
++		TabStop = FALSE ;
+ 		Left = TRUE ;
+ 		Text [ en-US ] = "Input" ;
+ 		Readonly = TRUE ;
+@@ -69,8 +69,8 @@ ModalDialog DLG_FLD_INPUT
+ 	MultiLineEdit ED_EDIT
+ 	{
+ 		Border = TRUE ;
+-		Pos = MAP_APPFONT ( 12 , 32 ) ;
+-		Size = MAP_APPFONT ( 115 , 72 ) ;
++		Pos = MAP_APPFONT ( 12 , 28 ) ;
++		Size = MAP_APPFONT ( 115 , 24 ) ;
+ 		TabStop = TRUE ;
+ 		Left = TRUE ;
+ 	};
+@@ -82,30 +82,302 @@ ModalDialog DLG_FLD_INPUT
+         Size = MAP_APPFONT ( 127 , 8 ) ;
+ 		Text [ en-US ] = "Edit" ;
+ 	};
+-	OKButton BT_OK
++	PushButton PB_PREVIOUS
+ 	{
+-		Pos = MAP_APPFONT ( 139 , 6 ) ;
++		Pos = MAP_APPFONT ( 12 , 58 ) ;
+ 		Size = MAP_APPFONT ( 50 , 15 ) ;
+ 		TabStop = TRUE ;
+-		DefButton = TRUE ;
++		Text [ en-US ] = "<< ~Previous" ;
++		Text [ de ] = "<< ~Vorhergehende" ;
++		Text [ be-BY ] = "<< Папярэдні" ;
++		Text [ bg ] = "<< Пр~едишен" ;
++		Text [ br ] = "<< ~Kent" ;
++		Text [ ca ] = "<< ~Anterior" ;
++		Text [ cs ] = "<< Předchozí" ;
++		Text [ cy ] = "<< ~Previous" ;
++		Text [ da ] = "<< ~Forrige" ;
++		Text [ el ] = "<< ~Προηγούμενο" ;
++		Text [ en-GB ] = "<< ~Previous" ;
++		Text [ eo ] = "<< ~Previous" ;
++		Text [ es ] = "<< ~Anterior" ;
++		Text [ et ] = "<< Eelmine" ;
++		Text [ fi ] = "<< ~Edellinen" ;
++		Text [ fr ] = "<< ~Précédente" ;
++		Text [ ga ] = "<< ~Roimhe Seo" ;
++		Text [ hu ] = "<< ~Előző" ;
++		Text [ it ] = "<< ~Precedente" ;
++		Text [ ja ] = "<< 前へ(~P)" ;
++		Text [ ka ] = "<< ~წინა" ;
++		Text [ km ] = "<< មុន " ;
++		Text [ ko ] = "<< 이전(~P)" ;
++		Text [ mk ] = "<< П~ретходен" ;
++		Text [ nb ] = "<< ~Forrige" ;
++		Text [ nl ] = "<< V~orige" ;
++		Text [ nn ] = "<< ~Førre" ;
++		Text [ pl ] = "<< ~Poprzedni" ;
++		Text [ pt ] = "<< ~Anterior" ;
++		Text [ pt-BR ] = "<< ~Anterior" ;
++		Text [ ru ] = "<< ~Previous" ;
++		Text [ sk ] = "<< ~Predchádzajúci" ;
++		Text [ sl ] = "<< ~Prejšnja" ;
++		Text [ sv ] = "<< ~Föregående" ;
++		Text [ tg ] = "<< ~Пешина" ;
++		Text [ tr ] = "<< ~Previous" ;
++		Text [ vi ] = "<< ~Lùi" ;
++		Text [ zh-CN ] = "<< 上一张(~P)" ;
++		Text [ zh-TW ] = "<< 上一頁(~P)" ;
++		Text [ x-comment ] = " ";
+ 	};
+-	CancelButton BT_CANCEL
++	PushButton PB_NEXT
+ 	{
+-		Pos = MAP_APPFONT ( 139 , 23 ) ;
++		Pos = MAP_APPFONT ( 78 , 58 ) ;
+ 		Size = MAP_APPFONT ( 50 , 15 ) ;
+ 		TabStop = TRUE ;
++		Text [ de ] = "~Weiter >>" ;
++		Text [ en-US ] = "~Next >>" ;
++		Text [ af ] = "~Volgende >>" ;
++		Text [ ar ] = "ال~تالي >>" ;
++		Text [ as-IN ] = "পৰৱর্তী>>" ;
++		Text [ be-BY ] = "Наперад >>" ;
++		Text [ bg ] = "На~пред >>" ;
++		Text [ br ] = "War-lerc'h >>" ;
++		Text [ bs ] = "~Dalje >>" ;
++		Text [ ca ] = "~Següent >>" ;
++		Text [ cs ] = "Další >>" ;
++		Text [ cy ] = "~Nesaf >>" ;
++		Text [ da ] = "~Næste >>" ;
++		Text [ el ] = "Επόμενο >>" ;
++		Text [ en-GB ] = "~Next >>" ;
++		Text [ en-ZA ] = "~Next >>" ;
++		Text [ eo ] = "~Next >>" ;
++		Text [ es ] = "~Siguiente >>" ;
++		Text [ et ] = "~Edasi >>" ;
++		Text [ fa ] = "~بعد >>" ;
++		Text [ fi ] = "~Seuraava >>" ;
++		Text [ fr ] = "Suivant >>" ;
++		Text [ ga ] = "Ar A~ghaidh >>" ;
++		Text [ gu ] = "આગળ(~N) >>" ;
++		Text [ gu-IN ] = "આગળ(~N) >>" ;
++		Text [ he ] = "הבא >>‏" ;
++		Text [ hi-IN ] = "आगे (~N)>>" ;
++		Text [ hr ] = "~Dalje >>" ;
++		Text [ hu ] = "~Tovább >>" ;
++		Text [ it ] = "~Avanti >>" ;
++		Text [ ja ] = "次へ(~N) >>" ;
++		Text [ ka ] = "~შემდეგი >>" ;
++		Text [ km ] = "បន្ទាប់​ >>" ;
++		Text [ ko ] = "다음(~N) >>" ;
++		Text [ ku ] = "~Pêş ve >>" ;
++		Text [ lt ] = "~Toliau >>" ;
++		Text [ mk ] = "~Следно >>" ;
++		Text [ ml-IN ] = "അടുത്ത" ;
++		Text [ mr-IN ] = "~ पुढचा >>" ;
++		Text [ nb ] = "~Neste >>" ;
++		Text [ ne ] = "पछिल्लो >>" ;
++		Text [ nl ] = "~Volgende >>" ;
++		Text [ nn ] = "~Neste >>" ;
++		Text [ nr ] = "~Okulandelako >>" ;
++		Text [ ns ] = "~Latelago >>" ;
++		Text [ or-IN ] = "ପରବର୍ତ୍ତୀ >>" ;
++		Text [ pa-IN ] = "ਅੱਗੇ(~N) >>" ;
++		Text [ pl ] = "~Dalej >>" ;
++		Text [ pt ] = "Se~guinte >>" ;
++		Text [ pt-BR ] = "~Avançar >>" ;
++		Text [ ru ] = "Далее >>" ;
++		Text [ rw ] = "Komeza>>" ;
++		Text [ sh-YU ] = "~Napred >>" ;
++		Text [ sk ] = "Ď~alej >>" ;
++		Text [ sl ] = "~Naprej >>" ;
++		Text [ sr-CS ] = "~Напред >>" ;
++		Text [ ss ] = "~Lokulandzelako >>" ;
++		Text [ st ] = "~Hlahlamang >>" ;
++		Text [ sv ] = "~Nästa >>" ;
++		Text [ sw-TZ ] = "Ifuatayo >>" ;
++		Text [ ta ] = "~அடுத்தது >>" ;
++		Text [ ta-IN ] = "~அடுத்தது >>" ;
++		Text [ te-IN ] = "~తర్వాత>>" ;
++		Text [ tg ] = "Давом >>" ;
++		Text [ th ] = "~ถัดไป >>" ;
++		Text [ tn ] = "~Latelang >>" ;
++		Text [ tr ] = "~Sonraki >>" ;
++		Text [ ts ] = "~Landzelaka >>" ;
++		Text [ uk ] = "Далі >>" ;
++		Text [ ur-IN ] = "اگلا >>" ;
++		Text [ ve ] = "~Phanḓa >>" ;
++		Text [ vi ] = "~Kế >>" ;
++		Text [ xh ] = "~Elandelayo >>" ;
++		Text [ zh-CN ] = "继续(~N) >>" ;
++		Text [ zh-TW ] = "繼續(~N)" ;
++		Text [ zu ] = "~Okulandelayo >>" ;
++		Text [ x-comment ] = " ";
++		DefButton = TRUE ;
+ 	};
+-	PushButton PB_NEXT
++	OKButton BT_OK
+ 	{
+-		Pos = MAP_APPFONT ( 139 , 40 ) ;
++		Pos = MAP_APPFONT ( 139 , 6 ) ;
+ 		Size = MAP_APPFONT ( 50 , 15 ) ;
+ 		TabStop = TRUE ;
+-		Hide = TRUE ;
+-		Text [ en-US ] = "~Next" ;
++		Text [ en-US ] = "~OK" ;
++		Text [ de ] = "~OK";
++		Text [ af ] = "~OK" ;
++		Text [ ar ] = "~موافق" ;
++		Text [ as-IN ] = "OK" ;
++		Text [ be-BY ] = "OK" ;
++		Text [ bg ] = "~OK" ;
++		Text [ br ] = "Mat e~o" ;
++		Text [ bs ] = "~U redu" ;
++		Text [ ca ] = "~D'acord" ;
++		Text [ cs ] = "OK" ;
++		Text [ cy ] = "~Iawn" ;
++		Text [ da ] = "~OK" ;
++		Text [ el ] = "~OK" ;
++		Text [ en-GB ] = "~OK" ;
++		Text [ en-ZA ] = "~OK" ;
++		Text [ eo ] = "Akcepti" ;
++		Text [ es ] = "~Aceptar" ;
++		Text [ et ] = "~Sobib" ;
++		Text [ fi ] = "~OK" ;
++		Text [ fr ] = "~OK" ;
++		Text [ ga ] = "~OK" ;
++		Text [ gu ] = "બરાબર" ;
++		Text [ gu-IN ] = "બરાબર" ;
++		Text [ he ] = "אישור" ;
++		Text [ hi-IN ] = "ठीक (~O)" ;
++		Text [ hr ] = "~U redu" ;
++		Text [ hu ] = "~OK" ;
++		Text [ it ] = "O~K" ;
++		Text [ ja ] = "~OK" ;
++		Text [ ka ] = "~კარგი" ;
++		Text [ km ] = "យល់ព្រម " ;
++		Text [ ko ] = "확인(~O)" ;
++		Text [ lt ] = "~Gerai" ;
++		Text [ mk ] = "~Во ред" ;
++		Text [ ml-IN ] = "ശരി" ;
++		Text [ mr-IN ] = "~ठिक" ;
++		Text [ nb ] = "~OK" ;
++		Text [ ne ] = "ठीक छ" ;
++		Text [ nl ] = "~OK" ;
++		Text [ nn ] = "~OK" ;
++		Text [ nr ] = "~Kulungile" ;
++		Text [ ns ] = "~Go lokile" ;
++		Text [ or-IN ] = "OK" ;
++		Text [ pa-IN ] = "ਠੀਕ ਹੈ(~o)" ;
++		Text [ pl ] = "~OK" ;
++		Text [ pt ] = "~OK" ;
++		Text [ pt-BR ] = "~OK" ;
++		Text [ ru ] = "Да" ;
++		Text [ rw ] = "Yego" ;
++		Text [ sh-YU ] = "~U redu" ;
++		Text [ sk ] = "~OK" ;
++		Text [ sl ] = "~V redu" ;
++		Text [ sr-CS ] = "~У реду" ;
++		Text [ ss ] = "~OK" ;
++		Text [ st ] = "~Lokile" ;
++		Text [ sv ] = "~OK" ;
++		Text [ sw-TZ ] = "SAWA" ;
++		Text [ ta ] = "~சரி" ;
++		Text [ ta-IN ] = "~சரி" ;
++		Text [ te-IN ] = "ఓకె" ;
++		Text [ tg ] = "ОК" ;
++		Text [ th ] = "~ตกลง" ;
++		Text [ ti-ER ] = "ሕራይ" ;
++		Text [ tn ] = "~OK" ;
++		Text [ tr ] = "~Tamam" ;
++		Text [ ts ] = "~Swi Lunghile" ;
++		Text [ uk ] = "Так" ;
++		Text [ ur-IN ] = "ٹھیک ہے" ;
++		Text [ ve ] = "~Zwo Luga" ;
++		Text [ vi ] = "Đượ~c" ;
++		Text [ xh ] = "~Kulungile" ;
++		Text [ zh-CN ] = "确定(~O)" ;
++		Text [ zh-TW ] = "確定(~O)" ;
++		Text [ zu ] = "~Kulungile" ;
++		//DefButton = TRUE ;
+ 	};
++	CancelButton BT_CANCEL
++	{
++		Pos = MAP_APPFONT ( 139 , 23 ) ;
++		Size = MAP_APPFONT ( 50 , 15 ) ;
++		TabStop = TRUE ;
++		Text [ en-US ] = "~Cancel" ;
++		Text [ de ] = "~Abbruch";
++		Text [ af ] = "~Kanselleer" ;
++		Text [ ar ] = "إل~غاء" ;
++		Text [ as-IN ] = "বাতিল কৰক" ;
++		Text [ be-BY ] = "Нічога" ;
++		Text [ bg ] = "~Отказ" ;
++		Text [ br ] = "Nullañ" ;
++		Text [ bs ] = "~Odustani" ;
++		Text [ ca ] = "~Cancel·la" ;
++		Text [ cs ] = "Zrušit" ;
++		Text [ cy ] = "~Diddymu" ;
++		Text [ da ] = "~Annuller" ;
++		Text [ el ] = "Α~κύρωση" ;
++		Text [ en-GB ] = "~Cancel" ;
++		Text [ en-ZA ] = "~Cancel" ;
++		Text [ eo ] = "~Cancel" ;
++		Text [ es ] = "~Cancelar" ;
++		Text [ et ] = "Loobu" ;
++		Text [ fa ] = "ان~صراف" ;
++		Text [ fi ] = "~Peruuta" ;
++		Text [ fr ] = "Annuler" ;
++		Text [ ga ] = "~Cealaigh" ;
++		Text [ gu ] = "રદ કરો (~C)" ;
++		Text [ gu-IN ] = "રદ કરો (~C)" ;
++		Text [ he ] = "ביטול" ;
++		Text [ hi-IN ] = "रद्द करें (~C)" ;
++		Text [ hr ] = "~Odustani" ;
++		Text [ hu ] = "~Mégsem" ;
++		Text [ it ] = "~Annulla" ;
++		Text [ ja ] = "キャンセル(~C)" ;
++		Text [ ka ] = "~გაუქმება" ;
++		Text [ km ] = "បោះបង់" ;
++		Text [ ko ] = "취소(~C)" ;
++		Text [ ku ] = "~Betal" ;
++		Text [ lt ] = "~Atsisakyti" ;
++		Text [ mk ] = "~Откажи" ;
++		Text [ mr-IN ] = "~रद्द करा" ;
++		Text [ nb ] = "~Avbryt" ;
++		Text [ ne ] = "रद्द गर्नुहोस्" ;
++		Text [ nl ] = "~Annuleren" ;
++		Text [ nn ] = "~Avbryt" ;
++		Text [ nr ] = "~Sula" ;
++		Text [ ns ] = "~Khansela" ;
++		Text [ or-IN ] = "ରଦ୍ଦ କର" ;
++		Text [ pa-IN ] = "ਰੱਦ ਕਰੋ(~C)" ;
++		Text [ pl ] = "~Anuluj" ;
++		Text [ pt ] = "~Cancelar" ;
++		Text [ pt-BR ] = "~Cancel" ;
++		Text [ ru ] = "Отменить" ;
++		Text [ rw ] = "Kureka" ;
++		Text [ sh-YU ] = "~Odustani" ;
++		Text [ sk ] = "~Zrušiť" ;
++		Text [ sl ] = "Pre~kliči" ;
++		Text [ sr-CS ] = "~Одустани" ;
++		Text [ ss ] = "~Yesula" ;
++		Text [ st ] = "~Timetsa" ;
++		Text [ sv ] = "~Cancel" ;
++		Text [ sw-TZ ] = "Ghairi" ;
++		Text [ ta ] = "ரத்து" ;
++		Text [ ta-IN ] = "ரத்து" ;
++		Text [ te-IN ] = "రద్దు" ;
++		Text [ tg ] = "~Бекоркунӣ" ;
++		Text [ th ] = "~ยกเลิก" ;
++		Text [ ti-ER ] = "ኣቋርጽ" ;
++		Text [ tr ] = "İ~ptal" ;
++		Text [ ts ] = "~Tshika" ;
++		Text [ uk ] = "Скасувати" ;
++		Text [ ur-IN ] = "منسوخ" ;
++		Text [ ve ] = "~Khantsela" ;
++		Text [ vi ] = "T~hôi" ;
++		Text [ xh ] = "~Rhoxisa" ;
++		Text [ zh-CN ] = "~Cancel" ;
++		Text [ zh-TW ] = "~Cancel" ;
++		Text [ zu ] = "~Nqamula" ;
++	};	
+ 	HelpButton PB_HELP
+ 	{
+-		Pos = MAP_APPFONT ( 139 , 60 ) ;
++		Pos = MAP_APPFONT ( 139 , 40 ) ;
+ 		Size = MAP_APPFONT ( 50 , 15 ) ;
+ 		TabStop = TRUE ;
+ 	};
+diff -urNp sworig/source/ui/inc/inpdlg.hxx sw/source/ui/inc/inpdlg.hxx
+--- sworig/source/ui/inc/inpdlg.hxx	2005-09-09 17:21:04.000000000 +0800
++++ sw/source/ui/inc/inpdlg.hxx	2006-08-15 10:13:44.000000000 +0800
+@@ -76,12 +76,17 @@ class SwFldInputDlg: public SvxStandardD
+ 	OKButton  			aOKBT;
+ 	CancelButton 		aCancelBT;
+ 	PushButton			aNextBT;
++	PushButton			aPreviousBT;
+ 	HelpButton			aHelpBT;
++	String              aOriStr;
+ 
+ 	DECL_LINK(NextHdl, PushButton*);
++	DECL_LINK(PrevHdl, PushButton*);
++	DECL_LINK(ModifyHdl, void*);
++	DECL_LINK(CancelHdl, void*);
+ public:
+ 	SwFldInputDlg( 	Window *pParent, SwWrtShell &rSh,
+-					SwField* pField, BOOL bNextButton = FALSE );
++					SwField* pField, BOOL bNextButton = TRUE );
+ 	~SwFldInputDlg();
+ };
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/help-support-mdv.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/help-support-mdv.diff
@@ -0,0 +1,46 @@
+Index: sfx2/source/appl/appserv.cxx
+===================================================================
+RCS file: /cvs/framework/sfx2/source/appl/appserv.cxx,v
+retrieving revision 1.30.116.1
+diff -u -r1.30.116.1 appserv.cxx
+--- sfx2/source/appl/appserv.cxx	20 Jan 2004 10:43:08 -0000	1.30.116.1
++++ sfx2/source/appl/appserv.cxx	9 Sep 2004 10:45:38 -0000
+@@ -123,6 +123,12 @@
+ #ifndef _SV_MSGBOX_HXX
+ #include <vcl/msgbox.hxx>
+ #endif
++#ifndef _COM_SUN_STAR_SYSTEM_XSYSTEMSHELLEXECUTE_HPP_
++#include <com/sun/star/system/XSystemShellExecute.hpp>
++#endif
++#ifndef _COM_SUN_STAR_SYSTEM_SYSTEMSHELLEXECUTEFLAGS_HPP_
++#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
++#endif
+ #ifndef _SFXCANCEL_HXX //autogen
+ #include <svtools/cancel.hxx>
+ #endif
+@@ -467,9 +473,24 @@
+ 			break;
+ 		}
+ 
++		case SID_HELP_SUPPORTPAGE:
++		{
++			try {
++				Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
++					( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
++				if ( xSystemShell.is()) {
++					rtl::OUString aURI( DEFINE_CONST_UNICODE( "http://www.mandriva.com/support" ) );
++					xSystemShell->execute( aURI, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
++				}
++
++				break;
++			} catch (const ::com::sun::star::uno::Exception &) {
++ 			}
++			/* drop through on exception */
++		}
++
+ 		// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ 		case SID_HELPINDEX:
+-		case SID_HELP_SUPPORTPAGE:
+ 		{
+ 			Help* pHelp = Application::GetHelp();
+ 			if ( pHelp )
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/odf-flatxml-import-export.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/odf-flatxml-import-export.diff
@@ -0,0 +1,475 @@
+--- filter/prj/d.lst	25 Apr 2005 08:49:30 -0000	1.24
++++ filter/prj/d.lst	2 Jul 2007 09:47:13 -0000
+@@ -20,6 +20,7 @@
+ mkdir: %_DEST%\bin%_EXT%\xslt\import\common
+ mkdir: %_DEST%\bin%_EXT%\xslt\import\spreadsheetml
+ mkdir: %_DEST%\bin%_EXT%\xslt\import\wordml
++mkdir: %_DEST%\bin%_EXT%\xslt\odfflatxml
+ mkdir: %_DEST%\xml%_EXT%\registry
+ mkdir: %_DEST%\xml%_EXT%\registry\spool
+ ..\source\xslt\common\*.xsl %_DEST%\bin%_EXT%\xslt\common\*.xsl
+@@ -32,6 +33,7 @@
+ ..\source\xslt\import\common\*.xsl %_DEST%\bin%_EXT%\xslt\import\common\*.xsl
+ ..\source\xslt\import\spreadsheetml\*.xsl %_DEST%\bin%_EXT%\xslt\import\spreadsheetml\*.xsl
+ ..\source\xslt\import\wordml\*.xsl %_DEST%\bin%_EXT%\xslt\import\wordml\*.xsl
++..\source\odfflatxml\*.xsl %_DEST%\bin%_EXT%\xslt\odfflatxml\*.xsl
+ ..\%__SRC%\bin\*.xsl %_DEST%\bin%_EXT%\*.xsl
+ ..\%__SRC%\bin\*.stw %_DEST%\bin%_EXT%\*.stw
+ ..\%__SRC%\misc\filters\modulepacks\fcfg_*.xcu %_DEST%\xml%_EXT%\registry\spool\fcfg_*.xcu
+--- filter/source/config/fragments/fcfg_xslt.mk	21 Mar 2005 11:48:40 -0000	1.7
++++ filter/source/config/fragments/fcfg_xslt.mk	2 Jul 2007 09:34:15 -0000
+@@ -3,13 +3,21 @@
+ # -----------------------------------------------
+ # count = 3
+ T4_XSLT = \
++    calc_ODS_FlatXML \
++    draw_ODG_FlatXML \
++    impress_ODP_FlatXML \
+     writer_DocBook_File \
++    writer_ODT_FlatXML \
+     XHTML_File
+ 
+ # -----------------------------------------------
+ # count = 7
+ F4_XSLT = \
+     DocBook_File \
++    ODG_FlatXML \
++    ODP_FlatXML \
++    ODS_FlatXML \
++    ODT_FlatXML \
+     XHTML_Calc_File \
+     XHTML_Draw_File \
+     XHTML_Impress_File \
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/filters/ODG_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
+@@ -0,0 +1,13 @@
++	<node oor:name="OpenDocument Drawing Flat XML" oor:op="replace">
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>draw_ODG_FlatXML</value></prop>
++		<prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Draw.XMLOasisImporter,com.sun.star.comp.Draw.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="UIName">
++			<value>OpenDocument Drawing (Flat XML)</value>
++		</prop>
++		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/filters/ODP_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
+@@ -0,0 +1,13 @@
++	<node oor:name="OpenDocument Presentation Flat XML" oor:op="replace">
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>impress_ODP_FlatXML</value></prop>
++		<prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="UIName">
++			<value>OpenDocument Presentation (Flat XML)</value>
++		</prop>
++		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/filters/ODS_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
+@@ -0,0 +1,13 @@
++	<node oor:name="OpenDocument Spreadsheet Flat XML" oor:op="replace">
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>calc_ODS_FlatXML</value></prop>
++		<prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="UIName">
++			<value>OpenDocument Spreadsheet (Flat XML)</value>
++		</prop>
++		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/filters/ODT_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
+@@ -0,0 +1,13 @@
++	<node oor:name="OpenDocument Text Flat XML" oor:op="replace">
++		<prop oor:name="FileFormatVersion"><value>0</value></prop>
++		<prop oor:name="Type"><value>writer_ODT_FlatXML</value></prop>
++		<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
++		<prop oor:name="UIComponent"/>
++		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
++		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
++		<prop oor:name="TemplateName"/>
++		<prop oor:name="UIName">
++			<value>OpenDocument Text (Flat XML)</value>
++		</prop>
++		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/types/calc_ODS_FlatXML.xcu	2007-07-02 11:33:24.000000000 +0200
+@@ -0,0 +1,14 @@
++	<node oor:name="calc_ODS_FlatXML" oor:op="replace">
++		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>fods ods xml</value></prop>
++		<prop oor:name="MediaType"/>
++		<prop oor:name="Preferred"><value>false</value></prop>
++		<prop oor:name="PreferredFilter"><value>OpenDocument Spreadsheet Flat XML</value></prop>
++		<prop oor:name="UIName">
++			<value>OpenDocument Spreadsheet (Flat XML)</value>
++		</prop>
++		<prop oor:name="ClipboardFormat">
++ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.spreadsheet"</value>
++ 		</prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/types/draw_ODG_FlatXML.xcu	2007-07-02 11:33:13.000000000 +0200
+@@ -0,0 +1,14 @@
++	<node oor:name="draw_ODG_FlatXML" oor:op="replace">
++		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>fodg odg xml</value></prop>
++		<prop oor:name="MediaType"/>
++		<prop oor:name="Preferred"><value>false</value></prop>
++		<prop oor:name="PreferredFilter"><value>OpenDocument Drawing Flat XML</value></prop>
++		<prop oor:name="UIName">
++			<value>OpenDocument Drawing (Flat XML)</value>
++		</prop>
++		<prop oor:name="ClipboardFormat">
++ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.graphics"</value>
++ 		</prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/types/impress_ODP_FlatXML.xcu	2007-07-02 11:33:19.000000000 +0200
+@@ -0,0 +1,14 @@
++	<node oor:name="impress_ODP_FlatXML" oor:op="replace">
++		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>fodp odp xml</value></prop>
++		<prop oor:name="MediaType"/>
++		<prop oor:name="Preferred"><value>false</value></prop>
++		<prop oor:name="PreferredFilter"><value>OpenDocument Presentation Flat XML</value></prop>
++		<prop oor:name="UIName">
++			<value>OpenDocument Presentation (Flat XML)</value>
++		</prop>
++		<prop oor:name="ClipboardFormat">
++ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.presentation"</value>
++ 		</prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/config/fragments/types/writer_ODT_FlatXML.xcu	2007-07-02 11:33:05.000000000 +0200
+@@ -0,0 +1,14 @@
++	<node oor:name="writer_ODT_FlatXML" oor:op="replace">
++		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
++		<prop oor:name="URLPattern"/>
++		<prop oor:name="Extensions"><value>fodt odt xml</value></prop>
++		<prop oor:name="MediaType"/>
++		<prop oor:name="Preferred"><value>false</value></prop>
++		<prop oor:name="PreferredFilter"><value>OpenDocument Text Flat XML</value></prop>
++		<prop oor:name="UIName">
++			<value>OpenDocument Text (Flat XML)</value>
++		</prop>
++		<prop oor:name="ClipboardFormat">
++ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.text"</value>
++ 		</prop>
++	</node>
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/odfflatxml/odfflatxmlexport.xsl	2007-07-02 11:24:46.000000000 +0200
+@@ -0,0 +1,15 @@
++<?xml version='1.0' encoding="UTF-8"?>
++<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">
++    <xsl:output method="xml" encoding="UTF-8"/>
++
++  <xsl:template match="@*|node()">
++    <xsl:copy>
++      <xsl:apply-templates select="@*|node()"/>
++    </xsl:copy>
++  </xsl:template>
++
++  <xsl:template match="@office:mimetype[string(.)='application/vnd.oasis.opendocument.drawing']">
++      <xsl:attribute name="office:mimetype">application/vnd.oasis.opendocument.graphics</xsl:attribute>
++  </xsl:template>
++</xsl:stylesheet>
++
+--- /dev/null	2007-05-04 12:54:50.000000000 +0200
++++ filter/source/odfflatxml/odfflatxmlimport.xsl	2007-07-02 11:24:46.000000000 +0200
+@@ -0,0 +1,11 @@
++<?xml version='1.0' encoding="UTF-8"?>
++<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
++    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
++
++    <xsl:template match="@*|node()">
++        <xsl:copy>
++            <xsl:apply-templates select="@*|node()"/>
++        </xsl:copy>
++    </xsl:template>
++</xsl:stylesheet>
++
+--- scp2/source/ooo/directory_ooo.scp	5 Jun 2007 11:53:07 -0000	1.36
++++ scp2/source/ooo/directory_ooo.scp	2 Jul 2007 10:29:16 -0000
+@@ -487,6 +487,11 @@
+     DosName = "common";
+ End
+ 
++Directory gid_Dir_Share_Xslt_Odfflatxml
++    ParentID = gid_Dir_Share_Xslt;
++    DosName = "odfflatxml";
++End
++
+ Directory gid_Dir_Share_Dtd
+     ParentID = gid_Dir_Share;
+     DosName = "dtd";
+--- scp2/source/xsltfilter/file_xsltfilter.scp	4 Jun 2007 11:53:40 -0000	1.13
++++ scp2/source/xsltfilter/file_xsltfilter.scp	2 Jul 2007 10:29:16 -0000
+@@ -125,3 +125,17 @@
+     Name = "/xslt/export/xhtml/table.xsl";
+ End
+ 
++
++File gid_File_Xsl_Export_Odfflatxml
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Xslt_Odfflatxml;
++    Name = "/xslt/odfflatxml/odfflatxmlexport.xsl";
++End
++
++File gid_File_Xsl_Import_Odfflatxml
++    TXT_FILE_BODY;
++    Styles = (PACKED, PATCH);
++    Dir = gid_Dir_Share_Xslt_Odfflatxml;
++    Name = "/xslt/odfflatxml/odfflatxmlimport.xsl";
++End
+--- scp2/source/xsltfilter/module_xsltfilter.scp	9 Sep 2005 01:51:40 -0000	1.8
++++ scp2/source/xsltfilter/module_xsltfilter.scp	2 Jul 2007 10:29:16 -0000
+@@ -49,6 +49,8 @@
+     gid_File_Xsl_Export_Xhtml_Master_Usability_Links,
+     gid_File_Xsl_Export_Xhtml_Ooo2xhtml,
+     gid_File_Xsl_Export_Xhtml_Table,
++    gid_File_Xsl_Export_Odfflatxml,
++    gid_File_Xsl_Import_Odfflatxml,
+     gid_File_Registry_Spool_Oo_TypeDetection_XSLT_Types_Xcu,
+     gid_File_Registry_Spool_Oo_TypeDetection_XSLT_Filters_Xcu );
+     Minimal = NO;
+--- scp2/source/calc/registryitem_calc.scp
++++ scp2/source/calc/registryitem_calc.scp
+@@ -823,6 +823,53 @@
+     Value = "\"<progpath>\program\soffice.exe\" -pt \"%2\" \"%1\"";
+ End
+ 
++// .fods
++
++RegistryItem gid_Regitem_Fods_PersistentHandler
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Calc_Bin;
++    Subkey = ".fods\PersistentHandler";
++    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
++End
++
++RegistryItem gid_Regitem_Fods_Shellex_00021500_0000_0000_C000_000000000046
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Calc_Bin;
++    Subkey = ".fods\shellex\{00021500-0000-0000-C000-000000000046}";
++    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
++End
++
++RegistryItem gid_Regitem_Fods_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Calc_Bin;
++    Subkey = ".fods\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
++    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
++End
++
++RegistryItem gid_Regitem__Fods
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Calc_Bin;
++    Subkey = ".fods";
++    Value = "opendocument.CalcDocument.1";
++End
++
++RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fods
++    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
++    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
++    ModuleID = gid_Module_Root;
++    Name = ".fods";
++    Value = "opendocument.CalcDocument.1";
++    Styles = (PATCH);
++End
++
++RegistryItem gid_Regitem_Fods_Contenttype
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Calc_Bin;
++    Subkey = ".fods";
++    Name = "Content Type";
++    Value = "application/vnd.oasis.opendocument.spreadsheet";
++End
++
+ // new ots file extension 
+ 
+ RegistryItem gid_Regitem_Ots_PersistentHandler
+--- scp2/source/draw/registryitem_draw.scp
++++ scp2/source/draw/registryitem_draw.scp
+@@ -823,6 +823,53 @@
+     Value = "&Open";
+ End
+ 
++// .fodg
++
++RegistryItem gid_Regitem_Fodg_PersistentHandler
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Draw_Bin;
++    Subkey = ".fodg\PersistentHandler";
++    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
++End
++
++RegistryItem gid_Regitem_Fodg_Shellex_00021500_0000_0000_C000_000000000046
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Draw_Bin;
++    Subkey = ".fodg\shellex\{00021500-0000-0000-C000-000000000046}";
++    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
++End
++
++RegistryItem gid_Regitem_Fodg_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Draw_Bin;
++    Subkey = ".fodg\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
++    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
++End
++
++RegistryItem gid_Regitem_Fodg_Contenttype
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Draw_Bin;
++    Subkey = ".fodg";
++    Name = "Content Type";
++    Value = "application/vnd.oasis.opendocument.graphics";
++End
++
++RegistryItem gid_Regitem__Fodg
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Draw_Bin;
++    Subkey = ".fodg";
++    Value = "opendocument.DrawDocument.1";
++End
++
++RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fodg
++    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
++    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
++    ModuleID = gid_Module_Root;
++    Name = ".fodg";
++    Value = "opendocument.DrawDocument.1";
++    Styles = (PATCH);
++End
++
+ // new otg file extension 
+ 
+ RegistryItem gid_Regitem_Otg_PersistentHandler
+--- scp2/source/impress/registryitem_impress.scp
++++ scp2/source/impress/registryitem_impress.scp
+@@ -885,6 +885,53 @@
+     Value = "\"<progpath>\program\soffice.exe\" -show \"%1\"";
+ End
+ 
++// .fodp
++
++RegistryItem gid_Regitem_Fodp_PersistentHandler
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Impress_Bin;
++    Subkey = ".fodp\PersistentHandler";
++    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
++End
++
++RegistryItem gid_Regitem_Fodp_Shellex_00021500_0000_0000_C000_000000000046
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Impress_Bin;
++    Subkey = ".fodp\shellex\{00021500-0000-0000-C000-000000000046}";
++    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
++End
++
++RegistryItem gid_Regitem_Fodp_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Impress_Bin;
++    Subkey = ".fodp\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
++    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
++End
++
++RegistryItem gid_Regitem__Fodp
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Impress_Bin;
++    Subkey = ".fodp";
++    Value = "opendocument.ImpressDocument.1";
++End
++
++RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fodp
++    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
++    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
++    ModuleID = gid_Module_Root;
++    Name = ".fodp";
++    Value = "opendocument.ImpressDocument.1";
++    Styles = (PATCH);
++End
++
++RegistryItem gid_Regitem_Fodp_Contenttype
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Impress_Bin;
++    Subkey = ".fodp";
++    Name = "Content Type";
++    Value = "application/vnd.oasis.opendocument.presentation";
++End
++
+ // new otp file extension
+ 
+ RegistryItem gid_Regitem_Otp_PersistentHandler
+--- scp2/source/writer/registryitem_writer.scp
++++ scp2/source/writer/registryitem_writer.scp
+@@ -1027,6 +1027,53 @@
+     Value = "\"<progpath>\program\soffice.exe\" -pt \"%2\" \"%1\"";
+ End
+ 
++// .fodt
++
++RegistryItem gid_Regitem_Fodt_PersistentHandler
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Wrt_Bin;
++    Subkey = ".fodt\PersistentHandler";
++    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
++End
++
++RegistryItem gid_Regitem_Fodt_Shellex_00021500_0000_0000_C000_000000000046
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Wrt_Bin;
++    Subkey = ".fodt\shellex\{00021500-0000-0000-C000-000000000046}";
++    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
++End
++
++RegistryItem gid_Regitem_Fodt_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Wrt_Bin;
++    Subkey = ".fodt\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
++    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
++End
++
++RegistryItem gid_Regitem__Fodt
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Wrt_Bin;
++    Subkey = ".fodt";
++    Value = "opendocument.WriterDocument.1";
++End
++
++RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fodt
++    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
++    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
++    ModuleID = gid_Module_Root;
++    Name = ".fodt";
++    Value = "opendocument.WriterDocument.1";
++    Styles = (PATCH);
++End
++
++RegistryItem gid_Regitem_Fodt_Contenttype
++    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
++    ModuleID = gid_Module_Prg_Wrt_Bin;
++    Subkey = ".fodt";
++    Name = "Content Type";
++    Value = "application/vnd.oasis.opendocument.text";
++End
++
+ // new ott file extension 
+ 
+ RegistryItem gid_Regitem_Ott_PersistentHandler
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-avmedia.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-avmedia.diff
@@ -0,0 +1,937 @@
+Index: avmedia/prj/d.lst
+===================================================================
+RCS file: /cvs/graphics/avmedia/prj/d.lst,v
+retrieving revision 1.3
+retrieving revision 1.3.12.1
+diff -u -p -u -p -r1.3 -r1.3.12.1
+--- avmedia/prj/d.lst	11 Apr 2007 20:25:37 -0000	1.3
++++ avmedia/prj/d.lst	29 Aug 2007 13:27:06 -0000	1.3.12.1
+@@ -14,3 +14,5 @@ mkdir: %_DEST%\inc%_EXT%\avmedia
+ ..\inc\avmedia\mediaitem.hxx %_DEST%\inc%_EXT%\avmedia\mediaitem.hxx
+ ..\inc\avmedia\mediaplayer.hxx %_DEST%\inc%_EXT%\avmedia\mediaplayer.hxx
+ ..\inc\avmedia\mediatoolbox.hxx %_DEST%\inc%_EXT%\avmedia\mediatoolbox.hxx
++
++..\%__SRC%\class\avmedia.jar %_DEST%\bin%_EXT%\avmedia.jar
+Index: avmedia/source/framework/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/avmedia/source/framework/makefile.mk,v
+retrieving revision 1.3
+retrieving revision 1.3.22.1
+diff -u -p -u -p -r1.3 -r1.3.22.1
+--- avmedia/source/framework/makefile.mk	6 Feb 2007 13:32:06 -0000	1.3
++++ avmedia/source/framework/makefile.mk	30 Aug 2007 15:56:28 -0000	1.3.22.1
+@@ -54,7 +54,11 @@ SLOFILES= \
+ 		$(SLO)$/mediamisc.obj 	 \
+ 		$(SLO)$/mediacontrol.obj \
+ 		$(SLO)$/mediatoolbox.obj \
+-		$(SLO)$/mediaplayer.obj  
++		$(SLO)$/mediaplayer.obj  \
++		$(SLO)$/soundhandler.obj  
++
++EXCEPTIONSFILES = \
++		$(SLO)$/soundhandler.obj
+ 
+ # --- Targets ----------------------------------
+ 
+Index: avmedia/source/framework/soundhandler.cxx
+===================================================================
+RCS file: avmedia/source/framework/soundhandler.cxx
+diff -N avmedia/source/framework/soundhandler.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ avmedia/source/framework/soundhandler.cxx	27 Nov 2007 12:56:30 -0000	1.1.2.4
+@@ -0,0 +1,571 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++//_________________________________________________________________________________________________________________
++//	my own includes
++//_________________________________________________________________________________________________________________
++
++#ifndef __FRAMEWORK_DISPATCH_SOUNDHANDLER_HXX_
++#include "soundhandler.hxx"
++#endif
++
++#ifndef __COMPHELPER_MEDIADESCRIPTOR_HXX_
++#include <comphelper/mediadescriptor.hxx>
++#endif
++
++//_________________________________________________________________________________________________________________
++//	interface includes
++//_________________________________________________________________________________________________________________
++
++#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
++#include <com/sun/star/io/XInputStream.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTSTATE_HPP_
++#include <com/sun/star/frame/DispatchResultState.hpp>
++#endif
++
++//_________________________________________________________________________________________________________________
++//	includes of other projects
++//_________________________________________________________________________________________________________________
++
++#ifndef _COMPHELPER_SEQUENCEASHASHMAP_HXX_
++#include <comphelper/sequenceashashmap.hxx>
++#endif
++
++#ifndef _RTL_USTRBUF_HXX_
++#include <rtl/ustrbuf.hxx>
++#endif
++
++#include <cppuhelper/typeprovider.hxx>
++#include <cppuhelper/factory.hxx>
++
++//_________________________________________________________________________________________________________________
++//	namespace
++//_________________________________________________________________________________________________________________
++
++namespace avmedia{
++
++//_________________________________________________________________________________________________________________
++//	non exported const
++//_________________________________________________________________________________________________________________
++
++//_________________________________________________________________________________________________________________
++//	non exported definitions
++//_________________________________________________________________________________________________________________
++
++//_________________________________________________________________________________________________________________
++//	declarations
++//_________________________________________________________________________________________________________________
++
++//*****************************************************************************************************************
++//  XInterface, XTypeProvider, XServiceInfo
++//*****************************************************************************************************************
++
++void SAL_CALL SoundHandler::acquire() throw()
++{
++       /* Don't use mutex in methods of XInterface! */
++       OWeakObject::acquire();
++}
++
++void SAL_CALL SoundHandler::release() throw()
++{
++       /* Don't use mutex in methods of XInterface! */
++       OWeakObject::release();
++}
++
++css::uno::Any SAL_CALL SoundHandler::queryInterface( const css::uno::Type& aType ) throw( css::uno::RuntimeException )
++{
++       /* Attention: Don't use mutex or guard in this method!!! Is a method of XInterface.     */
++        /* Ask for my own supported interfaces ...*/
++       css::uno::Any aReturn( ::cppu::queryInterface( aType, 
++               static_cast< css::lang::XTypeProvider* >(this),
++               static_cast< css::lang::XServiceInfo* >(this),
++               static_cast< css::frame::XNotifyingDispatch* >(this),
++               static_cast< css::frame::XDispatch* >(this),
++               static_cast< css::document::XExtendedFilterDetection* >(this)));
++       /* If searched interface not supported by this class ... */
++       if ( aReturn.hasValue() == sal_False )
++       {
++               /* ... ask baseclass for interfaces! */
++               aReturn = OWeakObject::queryInterface( aType );
++       }
++        /* Return result of this search. */
++       return aReturn;
++}
++
++css::uno::Sequence< sal_Int8 > SAL_CALL SoundHandler::getImplementationId() throw( css::uno::RuntimeException )
++{
++    /* Create one Id for all instances of this class.                                               */
++    /* Use ethernet address to do this! (sal_True)                                                  */
++    /* Optimize this method                                                                         */
++    /* We initialize a static variable only one time. And we don't must use a mutex at every call!  */
++    /* For the first call; pID is NULL - for the second call pID is different from NULL!            */
++    static ::cppu::OImplementationId* pID = NULL ;
++    if ( pID == NULL )
++    {
++        /* Ready for multithreading; get global mutex for first call of this method only! see before   */
++        ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
++        /* Control these pointer again ... it can be, that another instance will be faster then these! */
++        if ( pID == NULL )
++        {
++            /* Create a new static ID ... */
++            static ::cppu::OImplementationId aID( sal_False );
++            /* ... and set his address to static pointer! */
++            pID = &aID ;
++        }
++    }
++    return pID->getImplementationId();
++}
++
++css::uno::Sequence< css::uno::Type > SAL_CALL SoundHandler::getTypes() throw( css::uno::RuntimeException )
++{                                                                     
++    /* Optimize this method !                                       */
++    /* We initialize a static variable only one time.               */
++    /* And we don't must use a mutex at every call!                 */
++    /* For the first call; pTypeCollection is NULL -                */
++    /* for the second call pTypeCollection is different from NULL!  */
++    static ::cppu::OTypeCollection* pTypeCollection = NULL ;
++    if ( pTypeCollection == NULL )
++    {
++        /* Ready for multithreading; get global mutex for first call of this method only! see before   */
++        ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
++        /* Control these pointer again ... it can be, that another instance will be faster then these! */
++        if ( pTypeCollection == NULL )
++        {
++            /* Create a static typecollection ...           */
++            static ::cppu::OTypeCollection aTypeCollection
++                (
++                    ::getCppuType(( const ::com::sun::star::uno::Reference< css::lang::XTypeProvider >*)NULL ),
++                    ::getCppuType(( const ::com::sun::star::uno::Reference< css::lang::XServiceInfo >*)NULL ),
++                    ::getCppuType(( const ::com::sun::star::uno::Reference< css::frame::XNotifyingDispatch >*)NULL ),
++                    ::getCppuType(( const ::com::sun::star::uno::Reference< css::frame::XDispatch >*)NULL ),
++                    ::getCppuType(( const ::com::sun::star::uno::Reference< css::document::XExtendedFilterDetection >*)NULL )
++                );
++            /* ... and set his address to static pointer! */
++            pTypeCollection = &aTypeCollection ;
++        }
++    }
++    return pTypeCollection->getTypes();
++}
++
++#define DECLARE_ASCII( SASCIIVALUE ) \
++        ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SASCIIVALUE ) )
++
++#define IMPLEMENTATIONNAME_SOUNDHANDLER DECLARE_ASCII("com.sun.star.comp.framework.SoundHandler")
++#define SERVICENAME_CONTENTHANDLER DECLARE_ASCII("com.sun.star.frame.ContentHandler")
++
++/*===========================================================================================================*/
++/* XServiceInfo */
++/*===========================================================================================================*/
++::rtl::OUString SAL_CALL SoundHandler::getImplementationName() throw( css::uno::RuntimeException )
++{
++    return impl_getStaticImplementationName();
++}
++
++/*===========================================================================================================*/
++/* XServiceInfo */
++/*===========================================================================================================*/
++sal_Bool SAL_CALL SoundHandler::supportsService( const ::rtl::OUString& sServiceName ) throw( css::uno::RuntimeException )
++{
++    /* Set default return value. */
++    sal_Bool bReturn = sal_False ;
++    /* Get names of all supported servicenames. */
++    css::uno::Sequence< ::rtl::OUString >  seqServiceNames =   getSupportedServiceNames();
++    const ::rtl::OUString*                 pArray          =   seqServiceNames.getConstArray();
++    sal_Int32                              nCounter        =   0;                                           
++    sal_Int32                              nLength         =   seqServiceNames.getLength();      
++    /* Search for right name in list. */
++    while   (
++              ( nCounter      <       nLength         )       &&
++              ( bReturn       ==      sal_False       )
++            )
++    {
++        /* Is name was found, say "YES, SERVICE IS SUPPORTED." and break loop. */
++        if ( pArray[nCounter] == sServiceName )
++        {
++            bReturn = sal_True ;
++        }
++        /* Else step to next element in list. */
++        ++nCounter;
++    }
++    /* Return state of search. */
++    return bReturn;
++}
++
++/*===========================================================================================================*/
++/* XServiceInfo */
++/*===========================================================================================================*/
++css::uno::Sequence< ::rtl::OUString > SAL_CALL SoundHandler::getSupportedServiceNames() throw( css::uno::RuntimeException )
++{
++    return impl_getStaticSupportedServiceNames();
++}
++
++/*===========================================================================================================*/
++/* Helper for XServiceInfo                                                                                   */
++/*===========================================================================================================*/
++css::uno::Sequence< ::rtl::OUString > SoundHandler::impl_getStaticSupportedServiceNames()
++{
++    css::uno::Sequence< ::rtl::OUString > seqServiceNames( 1 );
++    seqServiceNames.getArray() [0] = SERVICENAME_CONTENTHANDLER;
++    return seqServiceNames;
++}
++
++/*===========================================================================================================*/
++/* Helper for XServiceInfo */
++/*===========================================================================================================*/
++::rtl::OUString SoundHandler::impl_getStaticImplementationName()
++{
++    return IMPLEMENTATIONNAME_SOUNDHANDLER;
++}
++
++css::uno::Reference< css::uno::XInterface > SAL_CALL SoundHandler::impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) throw( css::uno::Exception )
++{
++    /* create new instance of service */
++    SoundHandler* pClass = new SoundHandler( xServiceManager );
++    /* hold it alive by increasing his ref count!!! */
++    css::uno::Reference< css::uno::XInterface > xService( static_cast< ::cppu::OWeakObject* >(pClass), css::uno::UNO_QUERY );
++    /* initialize new service instance ... he can use his own refcount ... we hold it! */
++    pClass->impl_initService();
++    /* return new created service as reference */
++    return xService;
++}
++
++css::uno::Reference< css::lang::XSingleServiceFactory > SoundHandler::impl_createFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager )
++{
++    css::uno::Reference< css::lang::XSingleServiceFactory > xReturn ( cppu::createSingleFactory (
++       xServiceManager,
++        SoundHandler::impl_getStaticImplementationName(),
++        SoundHandler::impl_createInstance,
++        SoundHandler::impl_getStaticSupportedServiceNames()
++        )
++    );
++    return xReturn;
++}
++
++void SAL_CALL SoundHandler::impl_initService()
++{
++}
++
++
++/*-************************************************************************************************************//**
++    @short      standard ctor
++    @descr      These initialize a new instance of this class with needed informations for work.
++
++    @seealso    using at owner
++
++    @param      "xFactory", reference to service manager for creation of new services
++    @return     -
++
++    @onerror    Show an assertion and do nothing else.
++    @threadsafe yes
++*//*-*************************************************************************************************************/
++SoundHandler::SoundHandler( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory )
++		//	Init baseclasses first
++        :   ThreadHelpBase      (          )
++        ,   ::cppu::OWeakObject (          )
++        // Init member
++	,   m_bError		( false    )
++        ,   m_xFactory          ( xFactory )
++{
++    m_aUpdateTimer.SetTimeoutHdl(LINK(this, SoundHandler, implts_PlayerNotify));
++}
++
++/*-************************************************************************************************************//**
++    @short      standard dtor
++    @descr      -
++
++    @seealso    -
++
++    @param      -
++    @return     -
++
++    @onerror    -
++    @threadsafe -
++*//*-*************************************************************************************************************/
++SoundHandler::~SoundHandler()
++{
++    if (m_xListener.is())
++    {
++        css::frame::DispatchResultEvent aEvent;
++        aEvent.State = css::frame::DispatchResultState::FAILURE;
++        m_xListener->dispatchFinished(aEvent);
++        m_xListener = css::uno::Reference< css::frame::XDispatchResultListener >();
++    }
++}
++
++/*-************************************************************************************************************//**
++    @interface  ::com::sun::star::frame::XDispatch
++
++    @short      try to load audio file
++    @descr      This method try to load given audio file by URL and play it. We use vcl/Sound class to do that.
++                Playing of sound is asynchron everytime.
++
++    @attention  We must hold us alive by ourself ... because we use async. vcl sound player ... but playing is started
++                in async interface call "dispatch()" too. And caller forget us imediatly. But then our uno ref count
++                will decreased to 0 and will die. The only solution is to use own reference to our implementation.
++                But we do it for realy started jobs only and release it during call back of vcl.
++
++    @seealso    class vcl/Sound
++    @seealso    method implts_PlayerNotify()
++
++    @param      "aURL"      , URL to dispatch.
++    @param      "lArguments", list of optional arguments.
++    @return     -
++
++    @onerror    We do nothing.
++    @threadsafe yes
++*//*-*************************************************************************************************************/
++void SAL_CALL SoundHandler::dispatchWithNotification(const css::util::URL&                                             aURL      ,
++                                                     const css::uno::Sequence< css::beans::PropertyValue >&            /*lArguments*/,
++                                                     const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException)
++{
++    // SAFE {
++    const ::vos::OGuard aLock( m_aLock );
++
++    // If player currently used for other dispatch() requests ...
++    // cancel it by calling stop()!
++    m_aUpdateTimer.Stop();
++    if (m_xPlayer.is())
++    {
++        if (m_xPlayer->isPlaying())
++            m_xPlayer->stop();
++        m_xPlayer.clear();
++    }
++
++    // Try to initialize player.
++    m_xListener = xListener;
++    try
++    {
++        m_bError = false;
++        m_xPlayer.set( avmedia::MediaWindow::createPlayer( aURL.Complete ) );
++        // OK- we can start async playing ...
++        // Count this request and initialize self-holder against dieing by uno ref count ...
++        m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY);
++        m_xPlayer->start();
++        m_aUpdateTimer.SetTimeout( 200 );
++        m_aUpdateTimer.Start();
++    }
++    catch( css::uno::Exception& e )
++    {
++        m_bError = true;
++        (void)e;
++        m_xPlayer.clear();
++    }
++
++    // } SAFE
++}
++
++void SAL_CALL SoundHandler::dispatch( const css::util::URL&                                  aURL       ,
++                                      const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) throw( css::uno::RuntimeException )
++{
++    dispatchWithNotification(aURL, lArguments, css::uno::Reference< css::frame::XDispatchResultListener >());
++}
++
++/*-************************************************************************************************************//**
++    @interface  ::com::sun::star::document::XExtendedFilterDetection
++
++    @short      try to detect file (given as argument included in "lDescriptor")
++    @descr      We try to detect, if given file could be handled by this class and is a well known one.
++                If it is - we return right internal type name - otherwise we return nothing!
++                So call can search for another detect service and ask him too.
++
++    @attention  a) We don't need any mutex here ... because we don't use any member!
++                b) Dont' use internal player instance "m_pPlayer" to detect given sound file!
++                   It's not neccessary to do that ... and we can use temp. variable to do the same.
++                   This way is easy - we don't must synchronize it with currently played sounds!
++                   Another reason to do so ... We are a listener on our internal ma_Player object.
++                   If you would call "IsSoundFile()" on this instance, he would call us back and
++                   we make some uneccssary things ...
++
++    @seealso    -
++
++    @param      "lDescriptor", description of file to detect
++    @return     Internal type name which match this file ... or nothing if it is unknown.
++
++    @onerror    We return nothing.
++    @threadsafe yes
++*//*-*************************************************************************************************************/
++::rtl::OUString SAL_CALL SoundHandler::detect( css::uno::Sequence< css::beans::PropertyValue >& lDescriptor ) throw( css::uno::RuntimeException )
++{
++    // Our default is "nothing". So we can return it, if detection failed or fily type is realy unknown.
++    ::rtl::OUString sTypeName;
++
++    // Analyze given descriptor to find filename or input stream or ...
++    ::comphelper::MediaDescriptor aDescriptor(lDescriptor);
++    ::rtl::OUString               sURL       = aDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_URL(), ::rtl::OUString());
++
++    if (
++        (sURL.getLength()           ) &&
++        (avmedia::MediaWindow::isMediaURL(sURL))
++       )
++    {
++        // If the file type is supported depends on the OS, so...
++        // I think we can the following ones:
++        //  a) look for given extension of url to map our type decision HARD CODED!!!
++        //  b) return preferred type every time... it's easy :-)
++        sTypeName = ::rtl::OUString::createFromAscii("wav_Wave_Audio_File");
++        aDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME()] <<= sTypeName;
++        aDescriptor >> lDescriptor;
++    }
++
++    // Return our decision.
++    return sTypeName;
++}
++
++/*-************************************************************************************************************//**
++    @short      call back of sound player
++    @descr      Our player call us back to give us some informations.
++                We use this informations to callback our might existing listener.
++
++    @seealso    method dispatchWithNotification()
++
++    @param      -
++    @return     0 everytime ... it doesnt matter for us.
++
++    @onerror    -
++    @threadsafe yes
++*//*-*************************************************************************************************************/
++IMPL_LINK( SoundHandler, implts_PlayerNotify, void*, EMPTYARG )
++{
++    // SAFE {
++    const ::vos::OGuard aLock( m_aLock );
++
++    if (m_xPlayer.is() && m_xPlayer->isPlaying())
++    {
++        m_aUpdateTimer.Start();
++        return 0L;
++    }
++    m_xPlayer.clear();
++
++    // We use m_xSelfHold to let us die ... but we must live till real finishing of this method too!!!
++    // So we SHOULD use another "self-holder" temp. to provide that ...
++    css::uno::Reference< css::uno::XInterface > xOperationHold = m_xSelfHold;
++    m_xSelfHold = css::uno::Reference< css::uno::XInterface >();
++
++    // notify might existing listener
++    // And forget this listener!
++    // Because the corresponding dispatch was finished.
++    if (m_xListener.is())
++    {
++        css::frame::DispatchResultEvent aEvent;
++        if (!m_bError)
++            aEvent.State = css::frame::DispatchResultState::SUCCESS;
++        else
++            aEvent.State = css::frame::DispatchResultState::FAILURE;
++        m_xListener->dispatchFinished(aEvent);
++        m_xListener = css::uno::Reference< css::frame::XDispatchResultListener >();
++    }
++
++    // } SAFE
++
++    return 0;
++}
++
++} // namespace framework
++
++// ------------------------------------------
++// - component_getImplementationEnvironment -
++// ------------------------------------------
++
++extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
++{
++       *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++
++// -----------------------
++// - component_writeInfo -
++// -----------------------
++
++extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
++{
++    sal_Bool bRet = sal_False;
++
++    if( pRegistryKey )
++    {
++       try
++       {
++           rtl::OUString sKeyName = DECLARE_ASCII( "/" );
++           sKeyName += avmedia::SoundHandler::impl_getStaticImplementationName();
++           sKeyName += DECLARE_ASCII( "/UNO/SERVICES" );
++           css::uno::Reference< css::registry::XRegistryKey > xNewKey(
++               static_cast< css::registry::XRegistryKey* >( pRegistryKey )->createKey(sKeyName));
++
++           if ( xNewKey.is() == sal_True )
++           {
++               css::uno::Sequence< ::rtl::OUString > seqServiceNames = avmedia::SoundHandler::impl_getStaticSupportedServiceNames();
++               const ::rtl::OUString* pArray = seqServiceNames.getArray();
++               sal_Int32 nLength = seqServiceNames.getLength();
++               for ( sal_Int32 nCounter = 0; nCounter < nLength; ++nCounter )
++                   xNewKey->createKey( pArray[nCounter] );
++           }
++
++           bRet = sal_True;
++       }
++       catch( css::registry::InvalidRegistryException& )
++       {
++           OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
++       }
++    }
++
++    return bRet;
++}
++
++// ------------------------
++// - component_getFactory -
++// ------------------------
++
++extern "C" void* SAL_CALL component_getFactory(const sal_Char* pImplementationName, void* pServiceManager, void* /*pRegistryKey*/ )
++{
++    void* pReturn = NULL;
++    if  (pServiceManager !=  NULL )
++    {
++        /* Define variables which are used in following macros. */
++        css::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > xFactory;
++        css::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager;
++            xServiceManager = reinterpret_cast< ::com::sun::star::lang::XMultiServiceFactory* >( pServiceManager )  ;
++
++        if ( avmedia::SoundHandler::impl_getStaticImplementationName().equals( ::rtl::OUString::createFromAscii( pImplementationName ) ) )
++            xFactory = avmedia::SoundHandler::impl_createFactory( xServiceManager );
++
++        if ( xFactory.is() == sal_True )
++        {
++            xFactory->acquire();
++            pReturn = xFactory.get();
++        }
++    }
++    /* Return with result of this operation. */
++    return pReturn;
++}
+Index: avmedia/source/framework/soundhandler.hxx
+===================================================================
+RCS file: avmedia/source/framework/soundhandler.hxx
+diff -N avmedia/source/framework/soundhandler.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ avmedia/source/framework/soundhandler.hxx	27 Nov 2007 12:56:30 -0000	1.1.2.2
+@@ -0,0 +1,224 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile$
++ *
++ *  $Revision$
++ *
++ *  last change: $Author$ $Date$
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef __FRAMEWORK_HANDLER_SOUNDHANDLER_HXX_
++#define __FRAMEWORK_HANDLER_SOUNDHANDLER_HXX_
++
++//_________________________________________________________________________________________________________________
++//	interface includes
++//_________________________________________________________________________________________________________________
++
++#ifndef _COM_SUN_STAR_LANG_XTYPEPROVIDER_HPP_
++#include <com/sun/star/lang/XTypeProvider.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
++#include <com/sun/star/lang/XMultiServiceFactory.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_FRAME_XNOTIFYINGDISPATCH_HPP_
++#include <com/sun/star/frame/XNotifyingDispatch.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_
++#include <com/sun/star/frame/XStatusListener.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_
++#include <com/sun/star/frame/XFrame.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_
++#include <com/sun/star/document/XExtendedFilterDetection.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_MEDIA_XPLAYER_HPP_
++#include <com/sun/star/media/XPlayer.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
++#include <com/sun/star/beans/PropertyValue.hpp>
++#endif
++
++#ifndef _COM_SUN_STAR_UTIL_URL_HPP_
++#include <com/sun/star/util/URL.hpp>
++#endif
++
++#include <com/sun/star/lang/XServiceInfo.hpp>
++#include <com/sun/star/lang/XSingleServiceFactory.hpp>
++
++//_________________________________________________________________________________________________________________
++//	other includes
++//_________________________________________________________________________________________________________________
++
++#ifndef _CPPUHELPER_WEAK_HXX_
++#include <cppuhelper/weak.hxx>
++#endif
++
++#include <vcl/timer.hxx>
++#include <tools/link.hxx>
++#include <avmedia/mediawindow.hxx>
++#include <vos/mutex.hxx>
++
++namespace css = ::com::sun::star;
++
++//_________________________________________________________________________________________________________________
++//	namespace
++//_________________________________________________________________________________________________________________
++
++namespace avmedia{
++
++//_________________________________________________________________________________________________________________
++//	exported const
++//_________________________________________________________________________________________________________________
++
++//_________________________________________________________________________________________________________________
++//	exported definitions
++//_________________________________________________________________________________________________________________
++
++struct ThreadHelpBase
++{
++    public:
++        mutable ::vos::OMutex m_aLock;
++};
++
++/*-************************************************************************************************************//**
++    @short          handler to detect and play sounds ("wav" and "au" only!)
++    @descr          Register this implementation as a content handler to detect and/or play wav- and au-sounds.
++                    It doesn't depend from the target platform. But one instance of this class
++                    can play one sound at the same time only. Means every new dispatch request will stop the
++                    might still running one. So we support one operation/one URL/one listener at the same time
++                    only.
++
++    @devstatus      ready
++    @threadsafe     yes
++*//*-*************************************************************************************************************/
++class SoundHandler  :   // interfaces
++                        public  css::lang::XTypeProvider
++                    ,   public  css::lang::XServiceInfo
++                    ,   public  css::frame::XNotifyingDispatch // => XDispatch
++                    ,   public  css::document::XExtendedFilterDetection
++                        // baseclasses
++                        // Order is neccessary for right initialization!
++                    ,   private ThreadHelpBase
++                    ,   public  ::cppu::OWeakObject
++{
++	//-------------------------------------------------------------------------------------------------------------
++	//	public methods
++	//-------------------------------------------------------------------------------------------------------------
++	public:
++
++		//---------------------------------------------------------------------------------------------------------
++		//	constructor / destructor
++		//---------------------------------------------------------------------------------------------------------
++                 SoundHandler( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
++        virtual ~SoundHandler(                                                                        );
++
++		//---------------------------------------------------------------------------------------------------------
++        //  XInterface, XTypeProvider, XServiceInfo
++		//---------------------------------------------------------------------------------------------------------
++        virtual css::uno::Any  SAL_CALL queryInterface( const css::uno::Type& aType   ) throw( css::uno::RuntimeException );
++        virtual void SAL_CALL acquire() throw();
++        virtual void SAL_CALL release() throw();
++        virtual css::uno::Sequence< css::uno::Type >  SAL_CALL getTypes () throw( css::uno::RuntimeException );
++        virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw( css::uno::RuntimeException );
++
++                                                                                                             
++    /* interface XServiceInfo */                                                                                                                                                                                                        
++       virtual ::rtl::OUString                                        SAL_CALL getImplementationName              (                                                                               ) throw( css::uno::RuntimeException );   
++       virtual sal_Bool                                               SAL_CALL supportsService                    ( const ::rtl::OUString&                                        sServiceName    ) throw( css::uno::RuntimeException );   
++       virtual css::uno::Sequence< ::rtl::OUString >                  SAL_CALL getSupportedServiceNames           (                                                                               ) throw( css::uno::RuntimeException );   
++    /* Helper for XServiceInfo */                                                                                                                                                                                                       
++       static css::uno::Sequence< ::rtl::OUString >                   SAL_CALL impl_getStaticSupportedServiceNames(                                                                               );                                       
++       static ::rtl::OUString                                         SAL_CALL impl_getStaticImplementationName   (                                                                               );                                       
++    /* Helper for registry */                                                                                                                                                                                                           
++       static css::uno::Reference< css::uno::XInterface >             SAL_CALL impl_createInstance                ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) throw( css::uno::Exception );          
++       static css::uno::Reference< css::lang::XSingleServiceFactory > SAL_CALL impl_createFactory                 ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager );                                       
++    /* Helper for initialization of service by using own reference! */                                                                                                                                                                  
++       virtual void                                                   SAL_CALL impl_initService                   (                                                                               );                                       
++
++        //---------------------------------------------------------------------------------------------------------
++        //  XNotifyingDispatch
++        //---------------------------------------------------------------------------------------------------------
++        virtual void SAL_CALL dispatchWithNotification(const css::util::URL&                                             aURL      ,
++                                                       const css::uno::Sequence< css::beans::PropertyValue >&            lArguments,
++                                                       const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException);
++
++		//---------------------------------------------------------------------------------------------------------
++		//	XDispatch
++		//---------------------------------------------------------------------------------------------------------
++        virtual void SAL_CALL dispatch              (   const   css::util::URL&                                     aURL        ,
++                                                        const   css::uno::Sequence< css::beans::PropertyValue >&    lArguments  ) throw( css::uno::RuntimeException );
++        // not supported !
++        virtual void SAL_CALL addStatusListener     (   const   css::uno::Reference< css::frame::XStatusListener >& /*xListener*/   ,
++                                                        const   css::util::URL&                                     /*aURL*/        ) throw( css::uno::RuntimeException ) {};
++        virtual void SAL_CALL removeStatusListener  (   const   css::uno::Reference< css::frame::XStatusListener >& /*xListener*/   ,
++                                                        const   css::util::URL&                                     /*aURL*/        ) throw( css::uno::RuntimeException ) {};
++
++		//---------------------------------------------------------------------------------------------------------
++        //  XExtendedFilterDetection
++		//---------------------------------------------------------------------------------------------------------
++        virtual ::rtl::OUString SAL_CALL detect     (           css::uno::Sequence< css::beans::PropertyValue >&    lDescriptor ) throw( css::uno::RuntimeException );
++
++	//-------------------------------------------------------------------------------------------------------------
++	//	protected methods
++	//-------------------------------------------------------------------------------------------------------------
++	protected:
++
++	//-------------------------------------------------------------------------------------------------------------
++	//	private methods
++	//-------------------------------------------------------------------------------------------------------------
++	private:
++        DECL_LINK( implts_PlayerNotify, void* );
++
++	//-------------------------------------------------------------------------------------------------------------
++	//	variables
++	//	(should be private everyway!)
++	//-------------------------------------------------------------------------------------------------------------
++	private:
++
++		bool m_bError;
++        css::uno::Reference< css::lang::XMultiServiceFactory >     m_xFactory          ;   /// global uno service factory to create new services
++        css::uno::Reference< css::uno::XInterface >                m_xSelfHold         ;   /// we must protect us against dieing during async(!) dispatch() call!
++        css::uno::Reference< css::media::XPlayer >                 m_xPlayer           ;   /// uses avmedia player to play sounds ... 
++
++        css::uno::Reference< css::frame::XDispatchResultListener > m_xListener         ;
++        Timer m_aUpdateTimer;
++
++};      //  class SoundHandler
++
++}		//	namespace avmedia
++
++#endif  //  #ifndef __FRAMEWORK_HANDLER_SOUNDHANDLER_HXX_
+Index: avmedia/source/framework/soundhandler.xml
+===================================================================
+RCS file: avmedia/source/framework/soundhandler.xml
+diff -N avmedia/source/framework/soundhandler.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ avmedia/source/framework/soundhandler.xml	30 Aug 2007 15:56:28 -0000	1.1.2.1
+@@ -0,0 +1,49 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
++
++<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
++
++     <module-name> avmedia </module-name>
++
++	<component-description>
++		<author> Andreas Schluens </author>
++		<name> com.sun.star.comp.framework.SoundHandler </name>
++		<description>
++			Implements a handler service to detect and/or play audio files.
++			supported formats: wav/au
++		</description>
++		<loader-name> com.sun.star.loader.SharedLibrary </loader-name>
++		<language> c++ </language>
++		<status value="final"/>
++        <supported-service> com.sun.star.frame.ContentHandler </supported-service>
++	</component-description>
++
++	<project-build-dependency>	cppu		</project-build-dependency>
++	<project-build-dependency>	cppuhelper	</project-build-dependency>
++	<project-build-dependency>	vos			</project-build-dependency>
++	<project-build-dependency>	sal			</project-build-dependency>
++	<project-build-dependency>	tools		</project-build-dependency>
++	<project-build-dependency>	svtools		</project-build-dependency>
++	<project-build-dependency>	toolkit		</project-build-dependency>
++	<project-build-dependency>	sv			</project-build-dependency>
++	<project-build-dependency>	comphelper	</project-build-dependency>
++	<project-build-dependency>	unotools	</project-build-dependency>
++	<project-build-dependency>	ucbhelper	</project-build-dependency>
++	<project-build-dependency>	svl			</project-build-dependency>
++	<project-build-dependency>	sot			</project-build-dependency>
++
++	<runtime-module-dependency>	cppu2		</runtime-module-dependency>
++	<runtime-module-dependency>	cppuhelper	</runtime-module-dependency>
++	<runtime-module-dependency>	vos2$(COM)	</runtime-module-dependency>
++	<runtime-module-dependency>	sal2		</runtime-module-dependency>
++	<runtime-module-dependency>	tl			</runtime-module-dependency>
++	<runtime-module-dependency>	svt			</runtime-module-dependency>
++	<runtime-module-dependency>	svl			</runtime-module-dependency>
++	<runtime-module-dependency>	tk			</runtime-module-dependency>
++	<runtime-module-dependency>	sv			</runtime-module-dependency>
++	<runtime-module-dependency>	comphelp2	</runtime-module-dependency>
++	<runtime-module-dependency>	utl			</runtime-module-dependency>
++	<runtime-module-dependency>	ucb			</runtime-module-dependency>
++	<runtime-module-dependency>	sot			</runtime-module-dependency>
++
++</module-description>
+Index: avmedia/source/java/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/avmedia/source/java/makefile.mk,v
+retrieving revision 1.3
+retrieving revision 1.3.138.1
+diff -u -p -u -p -r1.3 -r1.3.138.1
+--- avmedia/source/java/makefile.mk	23 Mar 2005 12:29:45 -0000	1.3
++++ avmedia/source/java/makefile.mk	29 Aug 2007 13:24:44 -0000	1.3.138.1
+@@ -61,7 +61,7 @@ JAVAFILES  = \
+     x11$/SystemWindowAdapter.java   
+ 
+ JARFILES        = sandbox.jar jurt.jar unoil.jar ridl.jar juh.jar java_uno.jar jmf.jar
+-JAVACLASSFILES  = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
++JAVACLASSFILES  = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:s/.java//).class)
+ 
+ JARTARGET               = $(TARGET).jar
+ JARCOMPRESS             = TRUE
+Index: avmedia/util/makefile.mk
+===================================================================
+RCS file: /cvs/graphics/avmedia/util/makefile.mk,v
+retrieving revision 1.4
+retrieving revision 1.4.68.3
+diff -u -p -u -p -r1.4 -r1.4.68.3
+--- avmedia/util/makefile.mk	7 Apr 2006 16:18:30 -0000	1.4
++++ avmedia/util/makefile.mk	23 Oct 2007 15:09:37 -0000	1.4.68.3
+@@ -79,9 +79,9 @@ DEFLIB1NAME	=$(TARGET)
+ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
+ 	@echo ------------------------------
+ 	@echo Making: $@
+-    @echo Impl>$@
++	@echo _Impl>$@
+ 	@echo WEP>>$@
+ 	@echo LIBMAIN>>$@
+ 	@echo LibMain>>$@
+-    @echo CT>>$@
++	@echo CT>>$@
+ .ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-basebmp.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-basebmp.diff
@@ -0,0 +1,11 @@
+--- basebmp/prj/build.lst	2007-08-02 17:54:03.000000000 +0200
++++ basebmp/prj/build.lst	2007-09-07 11:25:04.000000000 +0200
+@@ -2,4 +2,3 @@ bx	basebmp	:	sal VIGRA:vigra basegfx BOO
+ bx	basebmp									usr1	-	all	bx_mkout NULL
+ bx	basebmp\source							nmake	-	all	bx_source NULL
+ bx	basebmp\util							nmake	-	all	bx_util bx_source NULL
+-bx	basebmp\test							nmake	-	all	bx_test bx_util NULL
+--- basebmp/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ basebmp/prj/tests.lst	2007-09-07 11:25:06.000000000 +0200
+@@ -0,0 +1 @@
++bx   basebmp\test                                       nmake - all bx_test bx_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/wizards-source-importwizard-filesmodul-xba.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/wizards-source-importwizard-filesmodul-xba.diff
@@ -0,0 +1,11 @@
+--- wizards.orig/source/importwizard/FilesModul.xba	2005-05-13 10:43:43.000000000 +0100
++++ wizards/source/importwizard/FilesModul.xba	2005-10-24 15:49:21.000000000 +0100
+@@ -41,6 +41,8 @@
+ Dim XMLTemplateContentString as String
+ Dim ApplIndex as Integer
+ Dim bAssignFileName as Boolean
++Dim oDocInfo as Object
++Dim bInterruptSearch as Boolean
+ 	oDocInfo = CreateUnoService(&quot;com.sun.star.document.StandaloneDocumentInfo&quot;)
+ 	bInterruptSearch = False
+ 	For i = 0 To MaxCollectIndex
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/plus-minus-sw-navigator2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/plus-minus-sw-navigator2.diff
@@ -0,0 +1,163 @@
+--- sw/source/ui/inc/conttree.hxx.orig	2008-03-24 11:20:48.000000000 +0800
++++ sw/source/ui/inc/conttree.hxx	2008-03-24 11:21:23.000000000 +0800
+@@ -43,6 +43,9 @@
+ #include "swcont.hxx"
+ #endif
+ 
++#include<map>
++//using namespace std;
++
+ class SwWrtShell;
+ class SwContentType;
+ class SwNavigationPI;
+@@ -84,6 +87,8 @@ class SwContentTree : public SvTreeListB
+ 	SwWrtShell* 		pActiveShell;   // die aktive oder eine konst. offene View
+ 	SwNavigationConfig*	pConfig;
+ 
++    std::map< void*, sal_Bool > mOutLineNodeMap;
++
+     sal_Int32           nActiveBlock;
+ 	USHORT				nHiddenBlock;
+ 	USHORT 				nRootType;
+--- sw/source/ui/utlui/content.cxx.orig	2008-03-24 11:20:48.000000000 +0800
++++ sw/source/ui/utlui/content.cxx	2008-03-24 11:29:01.000000000 +0800
+@@ -1001,7 +1001,6 @@ SwContentTree::~SwContentTree()
+ /***************************************************************************
+ 	Drag&Drop methods
+ ***************************************************************************/
+-
+ void SwContentTree::StartDrag( sal_Int8 nAction, const Point& rPosPixel )
+ {
+ 	if( !bIsRoot || nRootType != CONTENT_TYPE_OUTLINE )
+@@ -1051,8 +1050,45 @@ sal_Int8 SwContentTree::AcceptDrop( cons
+ /***************************************************************************
+ 	Beschreibung:	Drop wird im Navigator ausgefuehrt
+ ***************************************************************************/
++void* lcl_GetOutlineKey( SwContentTree* pTree, SwOutlineContent* pContent)
++{
++    void* key = 0;
++    if( pTree && pContent )
++    {
++        SwWrtShell* pShell = pTree->GetWrtShell();
++        sal_Int32 nPos = pContent->GetYPos();
++        if( nPos )
++        {
++            key = (void*)pShell->GetOutlineNode( nPos );
++        }
++    }
++    return key;
++}
++
+ sal_Int8 SwContentTree::ExecuteDrop( const ExecuteDropEvent& rEvt )
+ {
++    SvLBoxEntry* pEntry = pTargetEntry;
++    if( pEntry && ( nRootType == CONTENT_TYPE_OUTLINE ) && lcl_IsContent( pEntry ) )
++    {
++        SwOutlineContent* pOutlineContent = ( SwOutlineContent* )( pEntry->GetUserData() );
++        if( pOutlineContent )
++        {
++            void* key = lcl_GetOutlineKey(this, pOutlineContent);
++            if( !mOutLineNodeMap[key] )
++            {
++                while( pEntry->HasChilds() )
++                {
++                    SvLBoxEntry* pChildEntry = FirstChild( pEntry );
++                    while( pChildEntry )
++                    {
++                        pEntry = pChildEntry;
++                        pChildEntry = NextSibling( pChildEntry );
++                    }
++                }
++                pTargetEntry = pEntry;
++            }
++        }
++    }
+ 	if( bIsRoot )
+ 		return SvTreeListBox::ExecuteDrop( rEvt );
+ 	return bIsInDrag ? DND_ACTION_NONE : GetParentWindow()->ExecuteDrop(rEvt);
+@@ -1268,8 +1304,10 @@ void  SwContentTree::RequestingChilds( S
+                         if(!sEntry.Len())
+                             sEntry = sSpace;
+                         if(!pChild || (nLevel == 0))
++                        {
+                             pChild = InsertEntry(sEntry, pParent,
+                                         sal_False, LIST_APPEND,(void*)pCnt);
++                        }
+                         else
+                         {
+                             //back search parent.
+@@ -1320,7 +1358,8 @@ void  SwContentTree::RequestingChilds( S
+ 
+ sal_Bool  SwContentTree::Expand( SvLBoxEntry* pParent )
+ {
+-	if(!bIsRoot || ((SwContentType*)pParent->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE)
++	if(!bIsRoot || (((SwContentType*)pParent->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE) || 
++            (nRootType == CONTENT_TYPE_OUTLINE))
+ 	{
+ 		if(lcl_IsContentType(pParent))
+ 		{
+@@ -1335,18 +1374,39 @@ sal_Bool  SwContentTree::Expand( SvLBoxE
+ 				nHiddenBlock |= nOr;
+             if((pCntType->GetType() == CONTENT_TYPE_OUTLINE))
+             {
++                std::map< void*, sal_Bool > mCurrOutLineNodeMap;
++
++                SwWrtShell* pShell = GetWrtShell();
+                 sal_Bool bBool = SvTreeListBox::Expand(pParent);
+                 SvLBoxEntry* pChild = Next(pParent);
+                 while(pChild && lcl_IsContent(pChild) && pParent->HasChilds())
+                 {
+                     if(pChild->HasChilds())
+-                        SvTreeListBox::Expand(pChild);
++                    {
++                        sal_Int32 nPos = ((SwContent*)pChild->GetUserData())->GetYPos();
++                        void* key = (void*)pShell->GetOutlineNode( nPos );
++                        mCurrOutLineNodeMap.insert(std::map<void*, sal_Bool>::value_type( key, sal_False ) );
++                        std::map<void*,sal_Bool>::iterator iter = mOutLineNodeMap.find( key );
++                        if( iter != mOutLineNodeMap.end() && mOutLineNodeMap[key])
++                        {
++                            mCurrOutLineNodeMap[key] = sal_True;
++                            SvTreeListBox::Expand(pChild);
++                        }
++                    }
+                     pChild = Next(pChild);
+                 }
++                mOutLineNodeMap = mCurrOutLineNodeMap;
+                 return bBool;
+             }
+ 
+ 		}
++        else if( lcl_IsContent(pParent) )
++        {
++            SwWrtShell* pShell = GetWrtShell();
++            sal_Int32 nPos = ((SwContent*)pParent->GetUserData())->GetYPos();
++            void* key = (void*)pShell->GetOutlineNode( nPos );
++            mOutLineNodeMap[key] = sal_True;
++        }
+ 	}
+ 	return SvTreeListBox::Expand(pParent);
+ }
+@@ -1358,7 +1418,8 @@ sal_Bool  SwContentTree::Expand( SvLBoxE
+ sal_Bool  SwContentTree::Collapse( SvLBoxEntry* pParent )
+ {
+ 	sal_Bool bRet;
+-	if(!bIsRoot || ((SwContentType*)pParent->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE)
++	if(!bIsRoot || (((SwContentType*)pParent->GetUserData())->GetType() == CONTENT_TYPE_OUTLINE) || 
++            (nRootType == CONTENT_TYPE_OUTLINE))
+ 	{
+ 		if(lcl_IsContentType(pParent))
+ 		{
+@@ -1375,6 +1436,13 @@ sal_Bool  SwContentTree::Collapse( SvLBo
+ 			else
+ 				nHiddenBlock &= nAnd;
+ 		}
++        else if( lcl_IsContent(pParent) )
++        {
++            SwWrtShell* pShell = GetWrtShell();
++            sal_Int32 nPos = ((SwContent*)pParent->GetUserData())->GetYPos();
++            void* key = (void*)pShell->GetOutlineNode( nPos );
++            mOutLineNodeMap[key] = sal_False;
++        }
+ 			bRet = SvTreeListBox::Collapse(pParent);
+ 	}
+ 	else
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-detect-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-detect-fix.diff
@@ -0,0 +1,128 @@
+diff -rup slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionerImpl.cxx	2008-04-01 16:42:51.000000000 +0200
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-04-01 16:44:55.000000000 +0200
+@@ -88,7 +88,7 @@ public:
+     explicit OGLTransitionerImpl(OGLTransitionImpl* pOGLTransition);
+     bool initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double);
+     void setSlides( const uno::Reference< rendering::XBitmap >& xLeavingSlide , const uno::Reference< rendering::XBitmap >& xEnteringSlide );
+-    static void initialize( const uno::Reference< presentation::XSlideShowView >& xView );
++    static bool initialize( const uno::Reference< presentation::XSlideShowView >& xView );
+ 
+     // XTransition
+     virtual SAL_CALL void update( double nTime ) throw (uno::RuntimeException);
+@@ -165,14 +165,20 @@ public:
+     /** Whether Mesa is the OpenGL vendor
+      */
+     static bool cbMesa;
++
++    /**
++       whether the display has GLX extension
++     */
++    static bool cbGLXPresent;
+ };
+ 
+ // declare the static variables as some gcc versions have problems declaring them automaticaly
+ bool OGLTransitionerImpl::cbBrokenTexturesATI;
+ float OGLTransitionerImpl::cnGLVersion;
+ bool OGLTransitionerImpl::cbMesa;
++bool OGLTransitionerImpl::cbGLXPresent;
+ 
+-void OGLTransitionerImpl::initialize( const uno::Reference< presentation::XSlideShowView >& xView )
++bool OGLTransitionerImpl::initialize( const uno::Reference< presentation::XSlideShowView >& xView )
+ {
+     // not thread safe
+     static bool initialized = false;
+@@ -181,28 +187,34 @@ void OGLTransitionerImpl::initialize( co
+         OGLTransitionerImpl *instance;
+ 
+         instance = new OGLTransitionerImpl( NULL );
+-        instance->initWindowFromSlideShowView( xView, 0, 0 );
++        if( instance->initWindowFromSlideShowView( xView, 0, 0 ) ) {
+ 
+-        const GLubyte* version = glGetString( GL_VERSION );
+-        if( version && version[0] ) {
+-            cnGLVersion = version[0] - '0';
+-            if( version[1] == '.' && version[2] )
+-                cnGLVersion += (version[2] - '0')/10.0;
+-        } else
+-            cnGLVersion = 1.0;
+-        OSL_TRACE("GL version: %s parsed: %f", version, cnGLVersion );
++            const GLubyte* version = glGetString( GL_VERSION );
++            if( version && version[0] ) {
++                cnGLVersion = version[0] - '0';
++                if( version[1] == '.' && version[2] )
++                    cnGLVersion += (version[2] - '0')/10.0;
++            } else
++                cnGLVersion = 1.0;
++            OSL_TRACE("GL version: %s parsed: %f", version, cnGLVersion );
++
++            const GLubyte* vendor = glGetString( GL_VENDOR );
++            cbMesa = ( vendor && strstr( (const char *) vendor, "Mesa" ) );
++            OSL_TRACE("GL vendor: %s identified as Mesa: %d", vendor, cbMesa );
+ 
+-        const GLubyte* vendor = glGetString( GL_VENDOR );
+-        cbMesa = ( vendor && strstr( (const char *) vendor, "Mesa" ) );
+-        OSL_TRACE("GL vendor: %s identified as Mesa: %d", vendor, cbMesa );
++            /* TODO: check for version once the bug in fglrx driver is fixed */
++            cbBrokenTexturesATI = (vendor && strcmp( (const char *) vendor, "ATI Technologies Inc." ) == 0 );
+ 
+-        /* TODO: check for version once the bug in fglrx driver is fixed */
+-        cbBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
++            instance->disposing();
++            cbGLXPresent = true;
++        } else
++            cbGLXPresent = false;
+ 
+-        instance->disposing();
+         delete instance;
+         initialized = true;
+     }
++
++    return cbGLXPresent;
+ }
+ 
+ bool OGLTransitionerImpl::initWindowFromSlideShowView( const uno::Reference< presentation::XSlideShowView >& xView, double, double)
+@@ -226,6 +238,10 @@ bool OGLTransitionerImpl::initWindowFrom
+ 
+     const SystemEnvData* sysData(pPWindow->GetSystemData());
+     GLWin.dpy = reinterpret_cast<unx::Display*>(sysData->pDisplay);
++
++    if( unx::glXQueryExtension( GLWin.dpy, NULL, NULL ) == false )
++        return false;
++
+     GLWin.win = sysData->aWindow;
+     GLWin.screen = unx::XDefaultScreen(GLWin.dpy);
+     unx::XVisualInfo* vi( NULL );
+@@ -543,7 +559,7 @@ void SAL_CALL OGLTransitionerImpl::updat
+ {
+     osl::MutexGuard const guard( m_aMutex );
+ 
+-    if (isDisposed() || pTransition->mnRequiredGLVersion > cnGLVersion)
++    if (isDisposed() || !cbGLXPresent || pTransition->mnRequiredGLVersion > cnGLVersion)
+         return;
+ 
+     glEnable(GL_DEPTH_TEST);
+@@ -654,7 +670,7 @@ public:
+         if( !hasTransition( transitionType, transitionSubType ) )
+             return uno::Reference< presentation::XTransition >();
+ 
+-        OGLTransitionerImpl::initialize( view );
++        bool bGLXPresent = OGLTransitionerImpl::initialize( view );
+ 
+         if( OGLTransitionerImpl::cbMesa && (
+             ( transitionType == animations::TransitionType::FADE && transitionSubType == animations::TransitionSubType::CROSSFADE ) ||
+@@ -721,9 +737,11 @@ public:
+ 
+         rtl::Reference<OGLTransitionerImpl> xRes(
+             new OGLTransitionerImpl(pTransition) );
+-        if(!xRes->initWindowFromSlideShowView(view,slideOffset.X,slideOffset.Y))
+-            return uno::Reference< presentation::XTransition >();
+-        xRes->setSlides(leavingBitmap,enteringBitmap);
++        if( bGLXPresent ) {
++            if( !xRes->initWindowFromSlideShowView(view,slideOffset.X,slideOffset.Y))
++                return uno::Reference< presentation::XTransition >();
++            xRes->setSlides(leavingBitmap,enteringBitmap);
++        }
+ 
+         return uno::Reference<presentation::XTransition>(xRes.get());
+     }
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-codemaker.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-codemaker.diff
@@ -0,0 +1,6 @@
+--- codemaker/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ codemaker/prj/tests.lst	2007-09-07 09:31:30.000000000 +0200
+@@ -0,0 +1,3 @@
++#depends on cppu: cm   codemaker\test\cppumaker                           nmake - all cm_test_cppumaker cm_cppumaker NULL
++#depends on cppu: cm   codemaker\test\javamaker\java15                    nmake - all cm_test_javamaker_java15 cm_javamaker NULL
++#depends on cppu: cm   codemaker\test\javamaker                           nmake - all cm_test_javamaker cm_javamaker NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/dejavu_liberation_making_fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/dejavu_liberation_making_fix.diff
@@ -0,0 +1,11 @@
+--- bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk.orig	2008-01-08 16:11:54.000000000 +0100
++++ bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk	2008-04-12 14:56:05.694604800 +0200
+@@ -63,8 +63,6 @@
+ .INCLUDE : target.mk
+ 
+ .IF "$(WITH_FONTS)"!="NO"
+-.IF "$(GUI)" != "WNT"
+ .INCLUDE : tg_ext.mk
+ .ENDIF
+-.ENDIF
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-sheet-protection-options.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-sheet-protection-options.diff
@@ -0,0 +1,1000 @@
+Index: sc/inc/document.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/document.hxx,v
+retrieving revision 1.105
+retrieving revision 1.102.40.3
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.105 -r1.102.40.3
+--- sc/inc/document.hxx	7 Dec 2007 10:40:50 -0000	1.105
++++ sc/inc/document.hxx	10 Dec 2007 23:08:44 -0000	1.102.40.3
+@@ -537,6 +537,7 @@
+ 	BOOL			IsDocProtected() const;
+ 	BOOL			IsDocEditable() const;
+ 	BOOL			IsTabProtected( SCTAB nTab ) const;
++    ScTableProtection& GetTabProtection( SCTAB nTab ) const;
+ 	const com::sun::star::uno::Sequence <sal_Int8>&	GetDocPassword() const;
+ 	const com::sun::star::uno::Sequence <sal_Int8>&	GetTabPassword( SCTAB nTab ) const;
+ 
+Index: sc/inc/table.hxx
+===================================================================
+RCS file: /cvs/sc/sc/inc/table.hxx,v
+retrieving revision 1.32
+retrieving revision 1.31.180.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.32 -r1.31.180.2
+--- sc/inc/table.hxx	21 Sep 2007 09:22:40 -0000	1.32
++++ sc/inc/table.hxx	7 Dec 2007 01:17:12 -0000	1.31.180.2
+@@ -58,6 +58,8 @@
+ #include "compressedarray.hxx"
+ #endif
+ 
++#include "tabprotection.hxx"
++
+ namespace utl {
+ 	class SearchParam;
+ 	class TextSearch;
+@@ -121,8 +123,7 @@
+ 	SCROW			nRepeatStartY;
+ 	SCROW			nRepeatEndY;
+ 
+-	BOOL			bProtected;
+-	com::sun::star::uno::Sequence<sal_Int8>	aProtectPass;
++    ScTableProtection aTabProtection;
+ 
+ 	USHORT*			pColWidth;
+ 	ScSummableCompressedArray< SCROW, USHORT>*  pRowHeight;
+@@ -237,10 +238,10 @@
+ 	void			SetPageStyle( const String& rName );
+ 	void			PageStyleModified( const String& rNewName );
+ 
+-	BOOL			IsProtected() const						{ return bProtected; }
+-	const com::sun::star::uno::Sequence<sal_Int8>&	GetPassword() const						{ return aProtectPass; }
+-	void			SetProtection( BOOL bProtect, const com::sun::star::uno::Sequence<sal_Int8>& rPasswd )
+-										{ bProtected = bProtect; aProtectPass = rPasswd; }
++    BOOL            IsProtected() const;
++    const com::sun::star::uno::Sequence<sal_Int8>&  GetPassword() const;
++    void            SetProtection( BOOL bProtect, const com::sun::star::uno::Sequence<sal_Int8>& rPasswd );
++    ScTableProtection& GetProtection();
+ 
+ 	Size			GetPageSize() const;
+ 	void			SetPageSize( const Size& rSize );
+Index: sc/inc/tabprotection.hxx
+===================================================================
+RCS file: sc/inc/tabprotection.hxx
+diff -N sc/inc/tabprotection.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/inc/tabprotection.hxx	5 Sep 2007 04:12:54 -0000	1.1.2.1
+@@ -0,0 +1,87 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: tabprotection.hxx,v $
++ *
++ *  $Revision: 1.1.2.1 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/09/05 04:12:54 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef SC_TAB_PROTECTION_HXX
++#define SC_TAB_PROTECTION_HXX
++
++#include "sal/types.h"
++#include <com/sun/star/uno/Sequence.hxx>
++
++#include <vector>
++
++
++class ScTableProtection
++{
++public:
++    enum Option
++    {
++        AUTOFILTER = 0,
++        DELETE_COLUMNS,
++        DELETE_ROWS,
++        FORMAT_CELLS,
++        FORMAT_COLUMNS,
++        FORMAT_ROWS,
++        INSERT_COLUMNS,
++        INSERT_HYPERLINKS,
++        INSERT_ROWS,
++        OBJECTS,
++        PIVOT_TABLES,
++        SCENARIOS,
++        SELECT_LOCKED_CELLS,
++        SELECT_UNLOCKED_CELLS,
++        SHEET,
++        SORT,
++        NONE        // last item - used to resize the vector;
++    };
++
++    bool isProtected() const;
++    void setProtected(bool bProtected);
++
++    const ::com::sun::star::uno::Sequence<sal_Int8>& getPassword() const;
++    void setPassword(const ::com::sun::star::uno::Sequence<sal_Int8>& aPassword);
++
++    bool isOptionEnabled(Option eOption) const;
++    void setOption(Option eOption, bool bEnabled);
++
++    ScTableProtection();
++
++private:
++    ::com::sun::star::uno::Sequence<sal_Int8>   maPassword;
++    ::std::vector<bool> maOptions;
++    bool mbProtected;
++};
++
++
++#endif
+Index: sc/source/core/data/documen3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/documen3.cxx,v
+retrieving revision 1.38
+retrieving revision 1.37.40.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.38 -r1.37.40.2
+--- sc/source/core/data/documen3.cxx	21 Sep 2007 09:22:54 -0000	1.38
++++ sc/source/core/data/documen3.cxx	7 Dec 2007 01:17:27 -0000	1.37.40.2
+@@ -1780,6 +1780,16 @@
+ 	return FALSE;
+ }
+ 
++ScTableProtection& ScDocument::GetTabProtection( SCTAB nTab ) const
++{
++    if (VALIDTAB(nTab) && pTab[nTab])
++        return pTab[nTab]->GetProtection();
++
++    DBG_ERROR("Wrong table number");
++    static ScTableProtection aEmptyProtection;
++    return aEmptyProtection;
++}
++
+ const uno::Sequence<sal_Int8>& ScDocument::GetDocPassword() const
+ {
+ 	return aProtectPass;
+Index: sc/source/core/data/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/makefile.mk,v
+retrieving revision 1.21
+retrieving revision 1.21.166.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.21 -r1.21.166.1
+--- sc/source/core/data/makefile.mk	27 Feb 2007 12:06:42 -0000	1.21
++++ sc/source/core/data/makefile.mk	5 Sep 2007 04:12:54 -0000	1.21.166.1
+@@ -111,6 +111,7 @@
+ 	$(SLO)$/table4.obj \
+ 	$(SLO)$/table5.obj \
+ 	$(SLO)$/table6.obj \
++	$(SLO)$/tabprotection.obj \
+ 	$(SLO)$/userdat.obj \
+ 	$(SLO)$/validat.obj \
+ 	$(SLO)$/postit.obj
+Index: sc/source/core/data/table1.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table1.cxx,v
+retrieving revision 1.20
+retrieving revision 1.20.166.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.20 -r1.20.166.1
+--- sc/source/core/data/table1.cxx	27 Feb 2007 12:09:14 -0000	1.20
++++ sc/source/core/data/table1.cxx	5 Sep 2007 04:12:54 -0000	1.20.166.1
+@@ -137,7 +137,6 @@
+ 	bPageSizeValid( FALSE ),
+ 	nRepeatStartX( SCCOL_REPEAT_NONE ),
+ 	nRepeatStartY( SCROW_REPEAT_NONE ),
+-	bProtected( FALSE ),
+ 	pColWidth( NULL ),
+ 	pRowHeight( NULL ),
+ 	pColFlags( NULL ),
+Index: sc/source/core/data/table2.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table2.cxx,v
+retrieving revision 1.38
+retrieving revision 1.37.164.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.38 -r1.37.164.2
+--- sc/source/core/data/table2.cxx	27 Sep 2007 13:53:05 -0000	1.38
++++ sc/source/core/data/table2.cxx	7 Dec 2007 01:17:32 -0000	1.37.164.2
+@@ -304,7 +304,7 @@
+ 			// Zellschutz auf geschuetzter Tabelle nicht setzen
+ 			//
+ 
+-		if ( bProtected && (nDelFlag & IDF_ATTRIB) )
++		if ( IsProtected() && (nDelFlag & IDF_ATTRIB) )
+ 		{
+ 			ScPatternAttr aPattern(pDocument->GetPool());
+ 			aPattern.GetItemSet().Put( ScProtectionAttr( FALSE ) );
+@@ -330,7 +330,7 @@
+ 		// Zellschutz auf geschuetzter Tabelle nicht setzen
+ 		//
+ 
+-	if ( bProtected && (nDelFlag & IDF_ATTRIB) )
++	if ( IsProtected() && (nDelFlag & IDF_ATTRIB) )
+ 	{
+ 		ScDocumentPool* pPool = pDocument->GetPool();
+ 		SfxItemSet aSet( *pPool, ATTR_PATTERN_START, ATTR_PATTERN_END );
+@@ -373,7 +373,7 @@
+ 
+ 		//	ggf. Formeln durch Werte ersetzen
+ 
+-		if (bProtected)
++		if ( IsProtected() )
+ 			for (i = nCol1; i <= nCol2; i++)
+ 				pTable->aCol[i].RemoveProtected(nRow1, nRow2);
+ 	}
+@@ -418,7 +418,7 @@
+ 				// Zellschutz auf geschuetzter Tabelle nicht setzen
+ 				//
+ 
+-			if ( bProtected && (nInsFlag & IDF_ATTRIB) )
++			if ( IsProtected() && (nInsFlag & IDF_ATTRIB) )
+ 			{
+ 				ScPatternAttr aPattern(pDocument->GetPool());
+ 				aPattern.GetItemSet().Put( ScProtectionAttr( FALSE ) );
+@@ -1448,7 +1448,7 @@
+ 	BOOL bIsEditable = TRUE;
+ 	if ( nLockCount )
+ 		bIsEditable = FALSE;
+-    else if ( bProtected && !pDocument->IsScenario(nTab) )
++    else if ( IsProtected() && !pDocument->IsScenario(nTab) )
+     {
+         if((bIsEditable = !HasAttrib( nCol1, nRow1, nCol2, nRow2, HASATTR_PROTECTED )) != FALSE)
+         {
+@@ -1515,7 +1515,7 @@
+ 	BOOL bIsEditable = TRUE;
+ 	if ( nLockCount )
+ 		bIsEditable = FALSE;
+-    else if ( bProtected && !pDocument->IsScenario(nTab))
++    else if ( IsProtected() && !pDocument->IsScenario(nTab) )
+     {
+         if((bIsEditable = !HasAttribSelection( rMark, HASATTR_PROTECTED )) != FALSE)
+         {
+@@ -2797,11 +2797,16 @@
+ 					rStream >> bScenario;
+ 					rStream.ReadByteString( aComment, rStream.GetStreamCharSet() );
+ 
++                    BOOL bProtected;
+ 					rStream >> bProtected;
+ 					String aPass;
+ 					rStream.ReadByteString( aPass, rStream.GetStreamCharSet() );
+ 					if (aPass.Len())
++                    {
++                        ::com::sun::star::uno::Sequence<sal_Int8> aProtectPass;
+ 						SvPasswordHelper::GetHashPassword(aProtectPass, aPass);
++                        SetProtection(bProtected, aProtectPass);
++                    }
+ 
+ 					BOOL bOutline;
+ 					rStream >> bOutline;
+@@ -3073,6 +3078,7 @@
+ 		rStream << bScenario;
+ 		rStream.WriteByteString( aComment, rStream.GetStreamCharSet() );
+ 
++        BOOL bProtected = IsProtected();
+ 		rStream << bProtected;
+ 		String aPass;
+ 		//rStream.WriteByteString( aProtectPass, rStream.GetStreamCharSet() );
+Index: sc/source/core/data/table5.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/data/table5.cxx,v
+retrieving revision 1.13
+retrieving revision 1.13.166.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.13 -r1.13.166.1
+--- sc/source/core/data/table5.cxx	27 Feb 2007 12:10:06 -0000	1.13
++++ sc/source/core/data/table5.cxx	5 Sep 2007 04:12:55 -0000	1.13.166.1
+@@ -56,6 +56,7 @@
+ #include "stlpool.hxx"
+ #include "stlsheet.hxx"
+ #include "brdcst.hxx"
++#include "tabprotection.hxx"
+ #include "globstr.hrc"
+ 
+ // STATIC DATA -----------------------------------------------------------
+@@ -278,6 +279,27 @@
+ 		bPageSizeValid = FALSE;
+ }
+ 
++BOOL ScTable::IsProtected() const
++{
++    return aTabProtection.isProtected();
++}
++
++const ::com::sun::star::uno::Sequence<sal_Int8>& ScTable::GetPassword() const
++{
++    return aTabProtection.getPassword();
++}
++
++void ScTable::SetProtection( BOOL bProtect, const com::sun::star::uno::Sequence<sal_Int8>& rPasswd )
++{
++    aTabProtection.setProtected( bProtect );
++    aTabProtection.setPassword( rPasswd );
++}
++
++ScTableProtection& ScTable::GetProtection()
++{
++    return aTabProtection;
++}
++
+ Size ScTable::GetPageSize() const
+ {
+ 	if ( bPageSizeValid )
+Index: sc/source/core/data/tabprotection.cxx
+===================================================================
+RCS file: sc/source/core/data/tabprotection.cxx
+diff -N sc/source/core/data/tabprotection.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sc/source/core/data/tabprotection.cxx	5 Sep 2007 04:12:55 -0000	1.1.2.1
+@@ -0,0 +1,90 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: tabprotection.cxx,v $
++ *
++ *  $Revision: 1.1.2.1 $
++ *
++ *  last change: $Author: kohei $ $Date: 2007/09/05 04:12:55 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "tabprotection.hxx"
++#include "tools/debug.hxx"
++
++using namespace ::com::sun::star;
++
++ScTableProtection::ScTableProtection() :
++    maOptions(NONE),
++    mbProtected(false)
++{
++    // Set default values for the options.
++    maOptions[SELECT_LOCKED_CELLS]   = true;
++    maOptions[SELECT_UNLOCKED_CELLS] = true;
++}
++
++bool ScTableProtection::isProtected() const
++{
++    return mbProtected;
++}
++
++void ScTableProtection::setProtected(bool bProtected)
++{
++    mbProtected = bProtected;
++}
++
++const uno::Sequence<sal_Int8>& ScTableProtection::getPassword() const
++{
++    return maPassword;
++}
++
++void ScTableProtection::setPassword(const uno::Sequence<sal_Int8>& aPassword)
++{
++    maPassword = aPassword;
++}
++
++bool ScTableProtection::isOptionEnabled(Option eOption) const
++{
++    if ( maOptions.size() <= static_cast<size_t>(eOption) )
++    {
++        DBG_ERROR("ScTableProtection::isOptionEnabled: wrong size");
++        return false;
++    }
++
++    return maOptions[eOption];
++}
++
++void ScTableProtection::setOption(Option eOption, bool bEnabled)
++{
++    if ( maOptions.size() <= static_cast<size_t>(eOption) )
++    {
++        DBG_ERROR("ScTableProtection::setOption: wrong size");
++        return;
++    }
++
++    maOptions[eOption] = bEnabled;
++}
+Index: sc/source/filter/excel/excdoc.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/excdoc.cxx,v
+retrieving revision 1.67
+retrieving revision 1.67.124.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.67 -r1.67.124.1
+--- sc/source/filter/excel/excdoc.cxx	22 May 2007 19:44:28 -0000	1.67
++++ sc/source/filter/excel/excdoc.cxx	5 Sep 2007 04:12:55 -0000	1.67.124.1
+@@ -393,6 +393,9 @@
+ 
+     if( eBiff == EXC_BIFF8 )
+ 	{
++        // sheet protection options
++        Add( new XclExpSheetProtect( GetRoot(), mnScTab ) );
++
+ 		// web queries
+         Add( new XclExpWebQueryBuffer( GetRoot() ) );
+ 
+Index: sc/source/filter/excel/excimp8.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/excimp8.cxx,v
+retrieving revision 1.121
+retrieving revision 1.120.64.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.121 -r1.120.64.2
+--- sc/source/filter/excel/excimp8.cxx	7 Dec 2007 10:41:47 -0000	1.121
++++ sc/source/filter/excel/excimp8.cxx	10 Dec 2007 23:08:48 -0000	1.120.64.2
+@@ -291,6 +291,11 @@
+ 	}
+ }
+ 
++void ImportExcel8::SheetProtection( void )
++{
++    GetSheetProtectBuffer().ReadOptions( aIn, GetCurrScTab() );
++}
++
+ bool lcl_hasVBAEnabled()
+ {
+ 	uno::Reference< beans::XPropertySet > xProps( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY);
+@@ -335,6 +340,7 @@
+         pExcRoot->pAutoFilterBuffer->Apply();
+ 
+     GetWebQueryBuffer().Apply();    //! test if extant
++    GetSheetProtectBuffer().Apply();
+ 
+ 	ImportExcel::PostDocLoad();
+ 
+Index: sc/source/filter/excel/read.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/read.cxx,v
+retrieving revision 1.68
+retrieving revision 1.68.72.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.68 -r1.68.72.1
+--- sc/source/filter/excel/read.cxx	27 Jun 2007 13:45:32 -0000	1.68
++++ sc/source/filter/excel/read.cxx	5 Sep 2007 04:12:55 -0000	1.68.72.1
+@@ -1095,6 +1095,7 @@
+                     case 0x0221: Array34(); break;      // ARRAY        [  34    ]
+                     case 0x0225: Defrowheight345();break;//DEFAULTROWHEI[  345   ]
+                     case 0x04BC: Shrfmla(); break;      // SHRFMLA      [    5   ]
++                    case 0x0867: SheetProtection(); break; // SHEETPROTECTION
+                 }
+             }
+             break;
+Index: sc/source/filter/excel/xetable.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/xetable.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.126.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.16 -r1.16.126.1
+--- sc/source/filter/excel/xetable.cxx	22 May 2007 19:48:53 -0000	1.16
++++ sc/source/filter/excel/xetable.cxx	5 Sep 2007 04:12:55 -0000	1.16.126.1
+@@ -2238,3 +2238,63 @@
+ 
+ // ============================================================================
+ 
++struct XclExpTabProtectOption
++{
++    ScTableProtection::Option   eOption;
++    sal_uInt16                  nMask;
++};
++
++XclExpSheetProtect::XclExpSheetProtect( const XclExpRoot& rRoot, SCTAB nTab ) :
++    XclExpRecord( 0x0867, 23 )
++{
++    static const XclExpTabProtectOption aTable[] =
++    {
++        { ScTableProtection::OBJECTS,               0x0001 },
++        { ScTableProtection::SCENARIOS,             0x0002 },
++        { ScTableProtection::FORMAT_CELLS,          0x0004 },
++        { ScTableProtection::FORMAT_COLUMNS,        0x0008 },
++        { ScTableProtection::FORMAT_ROWS,           0x0010 },
++        { ScTableProtection::INSERT_COLUMNS,        0x0020 },
++        { ScTableProtection::INSERT_ROWS,           0x0040 },
++        { ScTableProtection::INSERT_HYPERLINKS,     0x0080 },
++
++        { ScTableProtection::DELETE_COLUMNS,        0x0100 },
++        { ScTableProtection::DELETE_ROWS,           0x0200 },
++        { ScTableProtection::SELECT_LOCKED_CELLS,   0x0400 },
++        { ScTableProtection::SORT,                  0x0800 },
++        { ScTableProtection::AUTOFILTER,            0x1000 },
++        { ScTableProtection::PIVOT_TABLES,          0x2000 },
++        { ScTableProtection::SELECT_UNLOCKED_CELLS, 0x4000 },
++
++        { ScTableProtection::NONE,                  0x0000 }
++    };
++
++    ScTableProtection& rProtect = rRoot.GetDoc().GetTabProtection(nTab);
++    mnOptions = 0x0000;
++    for (int i = 0; aTable[i].nMask != 0x0000; ++i)
++    {
++        if ( rProtect.isOptionEnabled(aTable[i].eOption) )
++            mnOptions |= aTable[i].nMask;
++    }
++}
++
++void XclExpSheetProtect::WriteBody( XclExpStream& rStrm )
++{
++    sal_uInt16 nBytes = 0x0867;
++    rStrm << nBytes;
++
++    sal_uChar nZero = 0x00;
++    for (int i = 0; i < 9; ++i)
++        rStrm << nZero;
++
++    nBytes = 0x0200;
++    rStrm << nBytes;
++    nBytes = 0x0100;
++    rStrm << nBytes;
++    nBytes = 0xFFFF;
++    rStrm << nBytes << nBytes;
++
++    rStrm << mnOptions;
++    nBytes = 0;
++    rStrm << nBytes;
++}
+Index: sc/source/filter/excel/xicontent.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/xicontent.cxx,v
+retrieving revision 1.29
+retrieving revision 1.29.42.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.29 -r1.29.42.1
+--- sc/source/filter/excel/xicontent.cxx	2 Aug 2007 13:31:10 -0000	1.29
++++ sc/source/filter/excel/xicontent.cxx	5 Sep 2007 04:12:55 -0000	1.29.42.1
+@@ -1104,5 +1104,49 @@
+     return xDecr.is() ? xDecr->GetError() : EXC_ENCR_ERROR_UNSUPP_CRYPT;
+ }
+ 
++// ----------------------------------------------------------------------------
++
++XclImpSheetProtectBuffer::XclImpSheetProtectBuffer( const XclImpRoot& rRoot ) :
++    XclImpRoot( rRoot )
++{
++}
++
++void XclImpSheetProtectBuffer::ReadOptions( XclImpStream& rStrm, SCTAB nTab )
++{
++    rStrm.Ignore(19);
++    sal_uInt16 nOptions;
++    rStrm >> nOptions;
++    maOptions.push_back(nOptions);
++}
++
++void XclImpSheetProtectBuffer::Apply() const
++{
++    ::std::list<sal_uInt16>::const_iterator itr = maOptions.begin(), itrEnd = maOptions.end();
++    SCTAB nCurTab = 0;
++    ScDocument& rDoc = GetDoc();
++    for (; itr != itrEnd; ++itr, ++nCurTab)
++    {
++        sal_uInt16 rOptions = *itr;
++
++        ScTableProtection& rProtect = rDoc.GetTabProtection(nCurTab);
++        rProtect.setOption( ScTableProtection::OBJECTS,               (rOptions & 0x0001) );
++        rProtect.setOption( ScTableProtection::SCENARIOS,             (rOptions & 0x0002) );
++        rProtect.setOption( ScTableProtection::FORMAT_CELLS,          (rOptions & 0x0004) );
++        rProtect.setOption( ScTableProtection::FORMAT_COLUMNS,        (rOptions & 0x0008) );
++        rProtect.setOption( ScTableProtection::FORMAT_ROWS,           (rOptions & 0x0010) );
++        rProtect.setOption( ScTableProtection::INSERT_COLUMNS,        (rOptions & 0x0020) );
++        rProtect.setOption( ScTableProtection::INSERT_ROWS,           (rOptions & 0x0040) );
++        rProtect.setOption( ScTableProtection::INSERT_HYPERLINKS,     (rOptions & 0x0080) );
++
++        rProtect.setOption( ScTableProtection::DELETE_COLUMNS,        (rOptions & 0x0100) );
++        rProtect.setOption( ScTableProtection::DELETE_ROWS,           (rOptions & 0x0200) );
++        rProtect.setOption( ScTableProtection::SELECT_LOCKED_CELLS,   (rOptions & 0x0400) );
++        rProtect.setOption( ScTableProtection::SORT,                  (rOptions & 0x0800) );
++        rProtect.setOption( ScTableProtection::AUTOFILTER,            (rOptions & 0x1000) );
++        rProtect.setOption( ScTableProtection::PIVOT_TABLES,          (rOptions & 0x2000) );
++        rProtect.setOption( ScTableProtection::SELECT_UNLOCKED_CELLS, (rOptions & 0x4000) );
++    }
++}
++
+ // ============================================================================
+ 
+Index: sc/source/filter/excel/xiroot.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/excel/xiroot.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.126.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.23 -r1.23.126.1
+--- sc/source/filter/excel/xiroot.cxx	22 May 2007 19:50:21 -0000	1.23
++++ sc/source/filter/excel/xiroot.cxx	5 Sep 2007 04:12:55 -0000	1.23.126.1
+@@ -120,6 +120,7 @@
+         GetOldRoot().pAutoFilterBuffer = new XclImpAutoFilterBuffer;
+         mrImpData.mxWebQueryBfr.reset( new XclImpWebQueryBuffer( GetRoot() ) );
+         mrImpData.mxPTableMgr.reset( new XclImpPivotTableManager( GetRoot() ) );
++        mrImpData.mxTabProtect.reset( new XclImpSheetProtectBuffer( GetRoot() ) );
+     }
+ 
+     mrImpData.mxPageSett.reset( new XclImpPageSettings( GetRoot() ) );
+@@ -258,6 +259,12 @@
+     return *mrImpData.mxPTableMgr;
+ }
+ 
++XclImpSheetProtectBuffer& XclImpRoot::GetSheetProtectBuffer() const
++{
++    DBG_ASSERT( mrImpData.mxTabProtect.is(), "XclImpRoot::GetSheetProtectBuffer - invalid call, wrong BIFF" );
++    return *mrImpData.mxTabProtect;
++}
++
+ XclImpPageSettings& XclImpRoot::GetPageSettings() const
+ {
+     return *mrImpData.mxPageSett;
+Index: sc/source/filter/inc/excimp8.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/excimp8.hxx,v
+retrieving revision 1.68
+retrieving revision 1.68.164.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.68 -r1.68.164.1
+--- sc/source/filter/inc/excimp8.hxx	27 Feb 2007 12:32:31 -0000	1.68
++++ sc/source/filter/inc/excimp8.hxx	5 Sep 2007 04:12:55 -0000	1.68.164.1
+@@ -91,6 +91,7 @@
+ 
+ 		void					Hlink( void );					// 0x01B8
+ 		void					Codename( BOOL bWBGlobals );	// 0x01BA
++        void                    SheetProtection( void );        // 0x0867
+ 
+         virtual void            EndSheet( void );
+ 		virtual void			PostDocLoad( void );
+Index: sc/source/filter/inc/xetable.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/xetable.hxx,v
+retrieving revision 1.9
+retrieving revision 1.9.126.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.9 -r1.9.126.1
+--- sc/source/filter/inc/xetable.hxx	22 May 2007 19:56:57 -0000	1.9
++++ sc/source/filter/inc/xetable.hxx	5 Sep 2007 04:12:55 -0000	1.9.126.1
+@@ -1091,5 +1091,20 @@
+ 
+ // ============================================================================
+ 
++/** Represents a SHEETPROTECTION record that stores sheet protection
++    options.  Note that a sheet still needs to save its sheet protection
++    options even when it's not protected. */
++class XclExpSheetProtect : public XclExpRecord
++{
++public:
++    explicit            XclExpSheetProtect( const XclExpRoot& rRoot, SCTAB nTab );
++
++private:
++    virtual void        WriteBody( XclExpStream& rStrm );
++
++private:
++    sal_uInt16      mnOptions;      /// Encoded sheet protection options.
++};
++
+ #endif
+ 
+Index: sc/source/filter/inc/xicontent.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/xicontent.hxx,v
+retrieving revision 1.14
+retrieving revision 1.14.68.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.14 -r1.14.68.1
+--- sc/source/filter/inc/xicontent.hxx	6 Jul 2007 12:38:28 -0000	1.14
++++ sc/source/filter/inc/xicontent.hxx	5 Sep 2007 04:12:55 -0000	1.14.68.1
+@@ -53,6 +53,8 @@
+ #include "xiroot.hxx"
+ #endif
+ 
++#include <list>
++
+ /* ============================================================================
+ Classes to import the big Excel document contents (related to several cells or
+ globals for the document).
+@@ -261,5 +263,24 @@
+ 
+ // ============================================================================
+ 
++
++// Sheet protection ===========================================================
++
++class XclImpSheetProtectBuffer : protected XclImpRoot
++{
++public:
++    explicit            XclImpSheetProtectBuffer( const XclImpRoot& rRoot );
++
++    void                ReadOptions( XclImpStream& rStrm, SCTAB nTab );
++
++    void                Apply() const;
++
++private:
++    ::std::list<sal_uInt16>          maOptions;
++};
++
++
++// ============================================================================
++
+ #endif
+ 
+Index: sc/source/filter/inc/xiroot.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/filter/inc/xiroot.hxx,v
+retrieving revision 1.21
+retrieving revision 1.21.220.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.21 -r1.21.220.1
+--- sc/source/filter/inc/xiroot.hxx	19 Dec 2006 13:24:31 -0000	1.21
++++ sc/source/filter/inc/xiroot.hxx	5 Sep 2007 04:12:56 -0000	1.21.220.1
+@@ -68,6 +68,7 @@
+ class XclImpPageSettings;
+ class XclImpDocViewSettings;
+ class XclImpTabViewSettings;
++class XclImpSheetProtectBuffer;
+ 
+ class _ScRangeListTabs;
+ class ExcelToSc;
+@@ -94,6 +95,7 @@
+     typedef ScfRef< XclImpPageSettings >        XclImpPageSettRef;
+     typedef ScfRef< XclImpDocViewSettings >     XclImpDocViewSettRef;
+     typedef ScfRef< XclImpTabViewSettings >     XclImpTabViewSettRef;
++    typedef ScfRef< XclImpSheetProtectBuffer >  XclImpTabProtectRef;
+ 
+     XclImpAddrConvRef   mxAddrConv;         /// The address converter.
+     XclImpFmlaCompRef   mxFmlaComp;         /// The formula compiler.
+@@ -117,6 +119,7 @@
+     XclImpPageSettRef   mxPageSett;         /// Page settings for current sheet.
+     XclImpDocViewSettRef mxDocViewSett;     /// View settings for entire document.
+     XclImpTabViewSettRef mxTabViewSett;     /// View settings for current sheet.
++    XclImpTabProtectRef mxTabProtect;       /// Sheet protection options for current sheet.
+ 
+     bool                mbHasCodePage;      /// true = CODEPAGE record exists.
+ 
+@@ -188,6 +191,9 @@
+     XclImpWebQueryBuffer& GetWebQueryBuffer() const;
+     /** Returns the pivot table manager. */
+     XclImpPivotTableManager& GetPivotTableManager() const;
++    /** Returns the sheet protection options of the current sheet. */
++    XclImpSheetProtectBuffer& GetSheetProtectBuffer() const;
++
+ 
+     /** Returns the page settings of the current sheet. */
+     XclImpPageSettings& GetPageSettings() const;
+Index: sc/source/ui/view/gridwin.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/gridwin.cxx,v
+retrieving revision 1.87
+retrieving revision 1.83.16.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.87 -r1.83.16.2
+--- sc/source/ui/view/gridwin.cxx	26 Nov 2007 15:21:16 -0000	1.87
++++ sc/source/ui/view/gridwin.cxx	7 Dec 2007 01:17:23 -0000	1.83.16.2
+@@ -2005,11 +2005,12 @@
+ 		Point aPos = rMEvt.GetPosPixel();
+         SCsCOL nPosX;
+         SCsROW nPosY;
++        SCTAB nTab = pViewData->GetTabNo();
+         pViewData->GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nPosX, nPosY );
+-		ScDPObject*	pDPObj	= pDoc->GetDPAtCursor( nPosX, nPosY, pViewData->GetTabNo() );
++		ScDPObject*	pDPObj	= pDoc->GetDPAtCursor( nPosX, nPosY, nTab );
+ 		if ( pDPObj && pDPObj->GetSaveData()->GetDrillDown() )
+ 		{
+-			ScAddress aCellPos( nPosX, nPosY, pViewData->GetTabNo() );
++			ScAddress aCellPos( nPosX, nPosY, nTab );
+ 			ScDPPositionData aData;
+ 			pDPObj->GetPositionData( aData, aCellPos );
+ 
+@@ -2046,6 +2047,23 @@
+ 			return;
+ 		}
+ 
++        // Check for cell protection attribute.
++        ScTableProtection& rProtect = pDoc->GetTabProtection( nTab );
++        bool bEditAllowed = true;
++        if ( rProtect.isProtected() )
++        {
++            bool bCellProtected = pDoc->HasAttrib(nPosX, nPosY, nTab, nPosX, nPosY, nTab, HASATTR_PROTECTED);
++            bool bSkipProtected = !rProtect.isOptionEnabled(ScTableProtection::SELECT_LOCKED_CELLS);
++            bool bSkipUnprotected = !rProtect.isOptionEnabled(ScTableProtection::SELECT_UNLOCKED_CELLS);
++
++            if ( bSkipProtected && bSkipUnprotected )
++                bEditAllowed = false;
++            else if ( (bCellProtected && bSkipProtected) || (!bCellProtected && bSkipUnprotected) )
++                bEditAllowed = false;
++        }
++
++        if ( bEditAllowed )
++        {
+ 		//	edit cell contents
+ 		pViewData->GetViewShell()->UpdateInputHandler();
+ 		pScMod->SetInputMode( SC_INPUT_TABLE );
+@@ -2056,9 +2074,10 @@
+ 			MouseEvent aEditEvt( rMEvt.GetPosPixel(), 1, MOUSE_SYNTHETIC, MOUSE_LEFT, 0 );
+ 			pEditView->MouseButtonDown( aEditEvt );
+ 			pEditView->MouseButtonUp( aEditEvt );
+-            return;
+ 		}
+ 	}
++        return;
++	}
+ 
+ 			//
+ 			//		Links in edit cells
+Index: sc/source/ui/view/select.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/select.cxx,v
+retrieving revision 1.18
+retrieving revision 1.18.166.1
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.18 -r1.18.166.1
+--- sc/source/ui/view/select.cxx	27 Feb 2007 13:56:10 -0000	1.18
++++ sc/source/ui/view/select.cxx	5 Sep 2007 04:12:56 -0000	1.18.166.1
+@@ -327,6 +327,26 @@
+ {
+ 	ScTabView* pView = pViewData->GetView();
+ 	SCTAB nTab = pViewData->GetTabNo();
++    ScDocument* pDoc = pViewData->GetDocument();
++
++    if ( pDoc->IsTabProtected(nTab) )
++    {
++        if (nPosX < 0 || nPosY < 0) // n#371204
++            return FALSE;
++
++        ScTableProtection& rProtect = pDoc->GetTabProtection(nTab);
++        bool bSkipProtected   = !rProtect.isOptionEnabled(ScTableProtection::SELECT_LOCKED_CELLS);
++        bool bSkipUnprotected = !rProtect.isOptionEnabled(ScTableProtection::SELECT_UNLOCKED_CELLS);
++
++        if ( bSkipProtected && bSkipUnprotected )
++            return FALSE;
++
++        bool bCellProtected = pDoc->HasAttrib(nPosX, nPosY, nTab, nPosX, nPosY, nTab, HASATTR_PROTECTED);
++        if ( (bCellProtected && bSkipProtected) || (!bCellProtected && bSkipUnprotected) )
++            // Don't select this cell!
++            return FALSE;
++    }
++
+ 	ScModule* pScMod = SC_MOD();
+ 	BOOL bRefMode = pScMod->IsFormulaMode();
+ 
+@@ -379,7 +396,6 @@
+ 
+ 		ScRange aDelRange;
+ 		BOOL bOldDelMark = pViewData->GetDelMark( aDelRange );
+-		ScDocument* pDoc = pViewData->GetDocument();
+ 
+ 		if ( nPosX+1 >= (SCsCOL) nStartX && nPosX <= (SCsCOL) nEndX &&
+ 			 nPosY+1 >= (SCsROW) nStartY && nPosY <= (SCsROW) nEndY &&
+Index: sc/source/ui/view/tabview3.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/tabview3.cxx,v
+retrieving revision 1.62
+retrieving revision 1.59.16.2
+diff -u -b -I $Revision.*$ -I $Author.*$ -r1.62 -r1.59.16.2
+--- sc/source/ui/view/tabview3.cxx	21 Nov 2007 19:11:39 -0000	1.62
++++ sc/source/ui/view/tabview3.cxx	7 Dec 2007 01:17:17 -0000	1.59.16.2
+@@ -84,6 +84,7 @@
+ #include "AccessibilityHints.hxx"
+ #include "rangeutl.hxx"
+ #include "client.hxx"
++#include "tabprotection.hxx"
+ 
+ #include <com/sun/star/chart2/data/HighlightedRange.hpp>
+ 
+@@ -1024,6 +1025,17 @@
+ 	ScDocument* pDoc = aViewData.GetDocument();
+ 	SCTAB nTab = aViewData.GetTabNo();
+ 
++    bool bSkipProtected = false, bSkipUnprotected = false;
++    if ( pDoc->IsTabProtected(nTab) )
++    {
++        ScTableProtection& rProtect = pDoc->GetTabProtection(nTab);
++        bSkipProtected   = !rProtect.isOptionEnabled(ScTableProtection::SELECT_LOCKED_CELLS);
++        bSkipUnprotected = !rProtect.isOptionEnabled(ScTableProtection::SELECT_UNLOCKED_CELLS);
++    }
++
++    if ( bSkipProtected && bSkipUnprotected )
++        return;
++
+ 	SCsCOL nOldX;
+ 	SCsROW nOldY;
+ 	SCsCOL nCurX;
+@@ -1043,7 +1055,7 @@
+ 		nCurY = (nMovY != 0) ? nOldY+nMovY : (SCsROW) aViewData.GetOldCurY();
+ 	}
+ 
+-	BOOL bHidden;
++	BOOL bSkipCell = FALSE;
+ 	aViewData.ResetOldCursor();
+ 
+ 	if (nMovX != 0 && VALIDCOLROW(nCurX,nCurY))
+@@ -1052,15 +1064,20 @@
+ 		do
+ 		{
+ 			BYTE nColFlags = pDoc->GetColFlags( nCurX, nTab );
+-			bHidden = (nColFlags & CR_HIDDEN) || pDoc->IsHorOverlapped( nCurX, nCurY, nTab );
+-			if (bHidden)
++            bSkipCell = (nColFlags & CR_HIDDEN) || pDoc->IsHorOverlapped( nCurX, nCurY, nTab );
++            if (bSkipProtected && !bSkipCell)
++                bSkipCell = pDoc->HasAttrib(nCurX, nCurY, nTab, nCurX, nCurY, nTab, HASATTR_PROTECTED);
++            if (bSkipUnprotected && !bSkipCell)
++                bSkipCell = !pDoc->HasAttrib(nCurX, nCurY, nTab, nCurX, nCurY, nTab, HASATTR_PROTECTED);
++
++			if (bSkipCell)
+ 			{
+ 				if ( nCurX<=0 || nCurX>=MAXCOL )
+ 				{
+ 					if (bHFlip)
+ 					{
+ 						nCurX = nOldX;
+-						bHidden = FALSE;
++						bSkipCell = FALSE;
+ 					}
+ 					else
+ 					{
+@@ -1073,7 +1090,8 @@
+ 					if (nMovX > 0) ++nCurX; else --nCurX;
+ 			}
+ 		}
+-		while (bHidden);
++		while (bSkipCell);
++
+ 		if (pDoc->IsVerOverlapped( nCurX, nCurY, nTab ))
+ 		{
+ 			aViewData.SetOldCursor( nCurX,nCurY );
+@@ -1088,15 +1106,20 @@
+ 		do
+ 		{
+ 			BYTE nRowFlags = pDoc->GetRowFlags( nCurY, nTab );
+-			bHidden = (nRowFlags & CR_HIDDEN) || pDoc->IsVerOverlapped( nCurX, nCurY, nTab );
+-			if (bHidden)
++            bSkipCell = (nRowFlags & CR_HIDDEN) || pDoc->IsVerOverlapped( nCurX, nCurY, nTab );
++            if (bSkipProtected && !bSkipCell)
++                bSkipCell = pDoc->HasAttrib(nCurX, nCurY, nTab, nCurX, nCurY, nTab, HASATTR_PROTECTED);
++            if (bSkipUnprotected && !bSkipCell)
++                bSkipCell = !pDoc->HasAttrib(nCurX, nCurY, nTab, nCurX, nCurY, nTab, HASATTR_PROTECTED);
++
++			if (bSkipCell)
+ 			{
+ 				if ( nCurY<=0 || nCurY>=MAXROW )
+ 				{
+ 					if (bVFlip)
+ 					{
+ 						nCurY = nOldY;
+-						bHidden = FALSE;
++						bSkipCell = FALSE;
+ 					}
+ 					else
+ 					{
+@@ -1109,7 +1132,8 @@
+ 					if (nMovY > 0) ++nCurY; else --nCurY;
+ 			}
+ 		}
+-		while (bHidden);
++		while (bSkipCell);
++
+ 		if (pDoc->IsHorOverlapped( nCurX, nCurY, nTab ))
+ 		{
+ 			aViewData.SetOldCursor( nCurX,nCurY );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/linkwarn-sd-no-dnd-links.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/linkwarn-sd-no-dnd-links.diff
@@ -0,0 +1,17 @@
+ sd/source/ui/view/sdview4.cxx |    3 ---
+ 1 files changed, 0 insertions(+), 3 deletions(-)
+
+diff --git a/sd/source/ui/view/sdview4.cxx b/sd/source/ui/view/sdview4.cxx
+index ae54524..f45bd72 100644
+--- sd/source/ui/view/sdview4.cxx
++++ sd/source/ui/view/sdview4.cxx
+@@ -350,9 +350,6 @@ IMPL_LINK( View, DropInsertFileHdl, Timer*, EMPTYARG )
+ 				sal_Int8    nTempAction = ( aIter == maDropFileVector.begin() ) ? mnAction : 0;
+ 				SdrGrafObj* pGrafObj = InsertGraphic( aGraphic, nTempAction, maDropPos, NULL, NULL );
+ 
+-				if( pGrafObj )
+-					pGrafObj->SetGraphicLink( aCurrentDropFile, String() );
+-
+ 				// return action from first inserted graphic
+ 				if( aIter == maDropFileVector.begin() )
+ 					mnAction = nTempAction;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/i54709-default-impress-ruler.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/i54709-default-impress-ruler.diff
@@ -0,0 +1,16 @@
+Index: officecfg/registry/schema/org/openoffice/Office/Impress.xcs
+===================================================================
+RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Impress.xcs,v
+retrieving revision 1.24
+diff -u -p -u -r1.24 Impress.xcs
+--- officecfg/registry/schema/org/openoffice/Office/Impress.xcs	21 Jan 2005 18:15:46 -0000	1.24
++++ officecfg/registry/schema/org/openoffice/Office/Impress.xcs	19 Sep 2005 10:14:48 -0000
+@@ -99,7 +99,7 @@
+ 						<desc>Indicates whether to show the rulers at the left and at the top of the working area.</desc>
+ 						<label>Rulers visible</label>
+ 					</info>
+-					<value>false</value>
++					<value>true</value>
+ 				</prop>
+ 				<prop oor:name="Helpline" oor:type="xs:boolean">
+ 					<!-- OldPath: Impress/Layout/Display -->
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mozilla-source-1.7.5.patch.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mozilla-source-1.7.5.patch.diff
@@ -0,0 +1,11 @@
+--- moz/mozilla-source-1.7.5.patch
++++ moz/mozilla-source-1.7.5.patch
+@@ -259,7 +259,7 @@
+   
+   $(XPIDL_GEN_DIR)/%.h: %.idl $(XPIDL_COMPILE) $(XPIDL_GEN_DIR)/.done
+   	$(REPORT_BUILD)
+-+ 	echo "PATH=" $(PATH)
+++ 	echo "PATH=" "$(PATH)"
+    	$(ELOG) $(XPIDL_COMPILE) -m header -w -I$(srcdir) -I$(IDL_DIR) -o $(XPIDL_GEN_DIR)/$* $(_VPATH_SRCS)
+   	@if test -n "$(findstring $*.h, $(EXPORTS) $(SDK_HEADERS))"; \
+   	  then echo "*** WARNING: file $*.h generated from $*.idl overrides $(srcdir)/$*.h"; else true; fi
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-cppuhelper.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-cppuhelper.diff
@@ -0,0 +1,29 @@
+--- cppuhelper/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ cppuhelper/prj/tests.lst	2007-09-07 15:44:28.000000000 +0200
+@@ -0,0 +1,11 @@
++ch   cppuhelper\qa\ifcontainer                          nmake - all ch_qa_ifcontainer ch_source NULL
++#test fails: ch   cppuhelper\qa\propertysetmixin                     nmake - all ch_qa_propertysetmixin ch_source NULL
++ch   cppuhelper\qa\unourl                               nmake - all ch_qa_unourl ch_source NULL
++#segfaults: ch   cppuhelper\qa\weak                                 nmake - all ch_qa_weak ch_source NULL
++
++# older tests:
++ch   cppuhelper\test\bootstrap                          nmake - all ch_test_bootstrap ch_source NULL
++#does not compile: ch   cppuhelper\test                                    nmake - all ch_test NULL
++ch   cppuhelper\test\loader                             nmake - all ch_test_loader ch_test_testcmp ch_source NULL
++ch   cppuhelper\test\testcmp                            nmake - all ch_test_testcmp ch_source NULL
++#does not link: ch   cppuhelper\test\testlib                            nmake - all ch_test_testlib NULL
+--- cppuhelper/qa/propertysetmixin/makefile.mk	2007-01-25 13:07:39.000000000 +0100
++++ cppuhelper/qa/propertysetmixin/makefile.mk	2007-09-07 15:42:45.000000000 +0200
+@@ -135,7 +135,11 @@ $(MISC)$/$(TARGET)$/$(TARGET).uno.jar: $
+     jar cfm $@ manifest -C $(CLASSDIR) test/cppuhelper/propertysetmixin
+ 
+ test .PHONY: $(SHL1TARGETN) $(MISC)$/$(TARGET)$/uno.rdb
+-.IF "$(GUI)" == "WNT"
++.IF "$(USE_SHELL)" == "bash"
++    CLASSPATH=$(CLASSPATH) \
++	URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR) \
++	testshl2 $(SHL1TARGETN) -forward "$(MISC)$/$(TARGET)$/uno.rdb#$(SOLARLIBDIR)"
++.ELIF "$(GUI)" == "WNT"
+     set CLASSPATH=$(CLASSPATH) && \
+ 	set URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR) && \
+ 	testshl2 $(SHL1TARGETN) -forward "$(MISC)$/$(TARGET)$/uno.rdb#$(SOLARBINDIR)"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-no-install-wizards.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-no-install-wizards.diff
@@ -0,0 +1,43 @@
+Index: officecfg/registry/data/org/openoffice/Office/Common.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
+retrieving revision 1.31
+diff -u -p -u -r1.31 Common.xcu
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu	23 Mar 2005 10:53:46 -0000	1.31
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu	20 Jun 2005 14:05:26 -0000
+@@ -523,35 +523,6 @@
+           <value >private:image/3216</value>
+         </prop>
+       </node>
+-      <node oor:name="m15" oor:op="replace" install:module="dicooo">
+-        <prop oor:name="URL"  oor:type="xs:string">
+-          <value >macro:///Launcher.DicOOo.StartDicOOo</value>
+-        </prop>
+-        <prop oor:name="Title">
+-          <value xml:lang="en-US">Install new dictionaries...</value>
+-        </prop>
+-        <prop oor:name="TargetName"  oor:type="xs:string">
+-          <value >_self</value>
+-        </prop>
+-        <prop oor:name="ImageIdentifier"  oor:type="xs:string">
+-          <value >private:image/3216</value>
+-        </prop>
+-      </node>
+-      <node oor:name="m16" oor:op="replace" install:module="dicooo">
+-        <prop oor:name="URL"  oor:type="xs:string">
+-          <value >macro:///Launcher.FontOOo.StartFontOOo</value>
+-        </prop>
+-        <prop oor:name="Title">
+-          <value>FontOOo Wizard...</value>
+-          <value xml:lang="en-US">Install fonts from the web...</value>
+-        </prop>
+-        <prop oor:name="TargetName"  oor:type="xs:string">
+-          <value >_self</value>
+-        </prop>
+-        <prop oor:name="ImageIdentifier"  oor:type="xs:string">
+-          <value >private:image/3216</value>
+-        </prop>
+-      </node>
+     </node>
+   </node>
+   <node oor:name="Forms">
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-framework.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-framework.diff
@@ -0,0 +1,27 @@
+--- framework/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ framework/prj/tests.lst	2007-09-07 17:49:58.000000000 +0200
+@@ -0,0 +1,24 @@
++#does not build: fr   framework\qa\complex\ModuleManager                 nmake - all fr_qa_complex_ModuleManager fr_util NULL
++fr   framework\qa\complex\XUserInputInterception        nmake - all fr_qa_complex_XUserInputInterception fr_util NULL
++fr   framework\qa\complex\api_internal                  nmake - all fr_qa_complex_api_internal fr_util NULL
++fr   framework\qa\complex\broken_document               nmake - all fr_qa_complex_broken_document fr_util NULL
++fr   framework\qa\complex\contextMenuInterceptor        nmake - all fr_qa_complex_contextMenuInterceptor fr_util NULL
++fr   framework\qa\complex\desktop                       nmake - all fr_qa_complex_desktop fr_util NULL
++fr   framework\qa\complex\dispatches\helper             nmake - all fr_qa_complex_dispatches_helper fr_util NULL
++fr   framework\qa\complex\dispatches                    nmake - all fr_qa_complex_dispatches fr_qa_complex_dispatches_helper fr_util NULL
++fr   framework\qa\complex\disposing                     nmake - all fr_qa_complex_disposing fr_util NULL
++fr   framework\qa\complex\framework\autosave            nmake - all fr_qa_complex_framework_autosave fr_util NULL
++fr   framework\qa\complex\framework\recovery            nmake - all fr_qa_complex_framework_recovery fr_util NULL
++fr   framework\qa\complex\imageManager\interfaces       nmake - all fr_qa_complex_imageManager_interfaces fr_util NULL
++fr   framework\qa\complex\imageManager                  nmake - all fr_qa_complex_imageManager fr_qa_complex_imageManager_interfaces fr_util NULL
++fr   framework\qa\complex\loadAllDocuments\helper       nmake - all fr_qa_complex_loadAllDocuments_helper fr_util NULL
++fr   framework\qa\complex\loadAllDocuments              nmake - all fr_qa_complex_loadAllDocuments fr_qa_complex_loadAllDocuments_helper fr_util NULL
++fr   framework\qa\complex\path_settings                 nmake - all fr_qa_complex_path_settings fr_util NULL
++fr   framework\qa\complex\path_substitution             nmake - all fr_qa_complex_path_substitution fr_util NULL
++#does not build: fr   framework\qa\complex\sequence                      nmake - all fr_qa_complex_sequence fr_util NULL
++#does not build: fr   framework\qa\unoapi                                nmake - all fr_qa_unoapi fr_util NULL
++
++# older tests:
++#does not build: fr   framework\test\threadtest                          nmake - all fr_test_threadtest fr_util NULL
++#does not build: fr   framework\test                                     nmake - all fr_test fr_util NULL
++#does not build: fr   framework\test\typecfg                             nmake - all fr_test_typecfg fr_util NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gallery_inc_galtheme.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gallery_inc_galtheme.diff
@@ -0,0 +1,120 @@
+--- svx/inc/galtheme.hrc.orig	2006-08-11 21:45:34.000000000 +0200
++++ svx/inc/galtheme.hrc	2006-10-16 16:33:55.890625000 +0200
+@@ -76,10 +76,116 @@
+ #define RID_GALLERYSTR_THEME_SCREENBEANS                (RID_GALLERYSTR_THEME_START + 35)
+ 
+ #define RID_GALLERYSTR_THEME_DUMMY5                     (RID_GALLERYSTR_THEME_START + 36)
++
+ #define RID_GALLERYSTR_THEME_FONTWORK					(RID_GALLERYSTR_THEME_START + 37)
+ #define RID_GALLERYSTR_THEME_FONTWORK_VERTICAL			(RID_GALLERYSTR_THEME_START + 38)
+ 
++#define RID_GALLERYSTR_THEME_SHAPES_POLYGONS            (RID_GALLERYSTR_THEME_START + 39)
++#define RID_GALLERYSTR_THEME_SHAPES_1            (RID_GALLERYSTR_THEME_START + 40)
++#define RID_GALLERYSTR_THEME_SHAPES_2            (RID_GALLERYSTR_THEME_START + 41)
++#define RID_GALLERYSTR_THEME_ANIMALS            (RID_GALLERYSTR_THEME_START + 42)
++#define RID_GALLERYSTR_THEME_CARS            (RID_GALLERYSTR_THEME_START + 43)
++#define RID_GALLERYSTR_THEME_BUGS            (RID_GALLERYSTR_THEME_START + 44)
++#define RID_GALLERYSTR_THEME_CISCO_OTHER            (RID_GALLERYSTR_THEME_START + 45)
++#define RID_GALLERYSTR_THEME_CISCO_MEDIA            (RID_GALLERYSTR_THEME_START + 46)
++#define RID_GALLERYSTR_THEME_CISCO_PRODUCTS            (RID_GALLERYSTR_THEME_START + 47)
++#define RID_GALLERYSTR_THEME_CISCO_WAN_LAN            (RID_GALLERYSTR_THEME_START + 48)
++#define RID_GALLERYSTR_THEME_DOMINO_USUAL            (RID_GALLERYSTR_THEME_START + 49)
++#define RID_GALLERYSTR_THEME_DOMINO_NUMBERED            (RID_GALLERYSTR_THEME_START + 50)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_1            (RID_GALLERYSTR_THEME_START + 51)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_2            (RID_GALLERYSTR_THEME_START + 52)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_3            (RID_GALLERYSTR_THEME_START + 53)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_PARTS_4            (RID_GALLERYSTR_THEME_START + 54)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_CIRCUIT            (RID_GALLERYSTR_THEME_START + 55)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_SIGNS            (RID_GALLERYSTR_THEME_START + 56)
++#define RID_GALLERYSTR_THEME_ELECTRONICS_GAUGES            (RID_GALLERYSTR_THEME_START + 57)
++#define RID_GALLERYSTR_THEME_PEOPLE_1            (RID_GALLERYSTR_THEME_START + 58)
++#define RID_GALLERYSTR_THEME_ARCHITECTURE_OVERLAY            (RID_GALLERYSTR_THEME_START + 59)
++#define RID_GALLERYSTR_THEME_ARCHITECTURE_FURNITURES            (RID_GALLERYSTR_THEME_START + 60)
++#define RID_GALLERYSTR_THEME_ARCHITECTURE_BUILDINGS            (RID_GALLERYSTR_THEME_START + 61)
++#define RID_GALLERYSTR_THEME_ARCHITECTURE_BATHROOM_KITCHEN            (RID_GALLERYSTR_THEME_START + 62)
++#define RID_GALLERYSTR_THEME_ARCHITECTURE_KITCHEN            (RID_GALLERYSTR_THEME_START + 63)
++#define RID_GALLERYSTR_THEME_ARCHITECTURE_WINDOWS_DOORS            (RID_GALLERYSTR_THEME_START + 64)
++#define RID_GALLERYSTR_THEME_FLOWCHARTS_1            (RID_GALLERYSTR_THEME_START + 65)
++#define RID_GALLERYSTR_THEME_FLOWCHARTS_2            (RID_GALLERYSTR_THEME_START + 66)
++#define RID_GALLERYSTR_THEME_FORALSTUDIOA            (RID_GALLERYSTR_THEME_START + 67)
++#define RID_GALLERYSTR_THEME_PHOTOS_FAUNA            (RID_GALLERYSTR_THEME_START + 68)
++#define RID_GALLERYSTR_THEME_PHOTOS_BUILDINGS            (RID_GALLERYSTR_THEME_START + 69)
++#define RID_GALLERYSTR_THEME_PHOTOS_PLANTS            (RID_GALLERYSTR_THEME_START + 70)
++#define RID_GALLERYSTR_THEME_PHOTOS_STATUES            (RID_GALLERYSTR_THEME_START + 71)
++#define RID_GALLERYSTR_THEME_PHOTOS_LANDSCAPES            (RID_GALLERYSTR_THEME_START + 72)
++#define RID_GALLERYSTR_THEME_PHOTOS_CITIES            (RID_GALLERYSTR_THEME_START + 73)
++#define RID_GALLERYSTR_THEME_PHOTOS_FLOWERS            (RID_GALLERYSTR_THEME_START + 74)
++#define RID_GALLERYSTR_THEME_THERAPEUTICS_GENERAL            (RID_GALLERYSTR_THEME_START + 75)
++#define RID_GALLERYSTR_THEME_WEATHER            (RID_GALLERYSTR_THEME_START + 76)
++#define RID_GALLERYSTR_THEME_VECHILES            (RID_GALLERYSTR_THEME_START + 77)
++#define RID_GALLERYSTR_THEME_SIGNS            (RID_GALLERYSTR_THEME_START + 78)
++#define RID_GALLERYSTR_THEME_BLUE_MAN            (RID_GALLERYSTR_THEME_START + 79)
++#define RID_GALLERYSTR_THEME_CHEMISTRY_AMINO_ACIDS            (RID_GALLERYSTR_THEME_START + 80)
++#define RID_GALLERYSTR_THEME_LOGICAL_SIGNS            (RID_GALLERYSTR_THEME_START + 81)
++#define RID_GALLERYSTR_THEME_LOGICAL_GATES            (RID_GALLERYSTR_THEME_START + 82)
++#define RID_GALLERYSTR_THEME_LOGOS            (RID_GALLERYSTR_THEME_START + 83)
++#define RID_GALLERYSTR_THEME_SMILES            (RID_GALLERYSTR_THEME_START + 84)
++#define RID_GALLERYSTR_THEME_ARROWS_1            (RID_GALLERYSTR_THEME_START + 85)
++#define RID_GALLERYSTR_THEME_CLOCK_01_CLOCK            (RID_GALLERYSTR_THEME_START + 86)
++#define RID_GALLERYSTR_THEME_CLOCK_02_CLOCK            (RID_GALLERYSTR_THEME_START + 87)
++#define RID_GALLERYSTR_THEME_CLOCK_03_CLOCK            (RID_GALLERYSTR_THEME_START + 88)
++#define RID_GALLERYSTR_THEME_CLOCK_04_CLOCK            (RID_GALLERYSTR_THEME_START + 89)
++#define RID_GALLERYSTR_THEME_CLOCK_05_CLOCK            (RID_GALLERYSTR_THEME_START + 90)
++#define RID_GALLERYSTR_THEME_CLOCK_06_CLOCK            (RID_GALLERYSTR_THEME_START + 91)
++#define RID_GALLERYSTR_THEME_CLOCK_07_CLOCK            (RID_GALLERYSTR_THEME_START + 92)
++#define RID_GALLERYSTR_THEME_CLOCK_08_CLOCK            (RID_GALLERYSTR_THEME_START + 93)
++#define RID_GALLERYSTR_THEME_CLOCK_09_CLOCK            (RID_GALLERYSTR_THEME_START + 94)
++#define RID_GALLERYSTR_THEME_CLOCK_10_CLOCK            (RID_GALLERYSTR_THEME_START + 95)
++#define RID_GALLERYSTR_THEME_CLOCK_11_CLOCK            (RID_GALLERYSTR_THEME_START + 96)
++#define RID_GALLERYSTR_THEME_CLOCK_12_CLOCK            (RID_GALLERYSTR_THEME_START + 97)
++#define RID_GALLERYSTR_THEME_PNEUMATIC_PARTS            (RID_GALLERYSTR_THEME_START + 98)
++#define RID_GALLERYSTR_THEME_COMPUTER_GENERAL            (RID_GALLERYSTR_THEME_START + 99)
++#define RID_GALLERYSTR_THEME_COMPUTER_NETWORK            (RID_GALLERYSTR_THEME_START + 100)
++#define RID_GALLERYSTR_THEME_COMPUTER_NETWORK_DEVICES            (RID_GALLERYSTR_THEME_START + 101)
++#define RID_GALLERYSTR_THEME_COMPUTER_WIFI            (RID_GALLERYSTR_THEME_START + 102)
++#define RID_GALLERYSTR_THEME_NUMBERS            (RID_GALLERYSTR_THEME_START + 103)
++#define RID_GALLERYSTR_THEME_SIGNS_DANGER            (RID_GALLERYSTR_THEME_START + 104)
++#define RID_GALLERYSTR_THEME_OBJECTS            (RID_GALLERYSTR_THEME_START + 105)
++#define RID_GALLERYSTR_THEME_MAPS_AFRICA            (RID_GALLERYSTR_THEME_START + 106)
++#define RID_GALLERYSTR_THEME_MAPS_UNITED_STATES_OF_AMERICA            (RID_GALLERYSTR_THEME_START + 107)
++#define RID_GALLERYSTR_THEME_MAPS_AUSTRALIA            (RID_GALLERYSTR_THEME_START + 108)
++#define RID_GALLERYSTR_THEME_MAPS_ASIA            (RID_GALLERYSTR_THEME_START + 109)
++#define RID_GALLERYSTR_THEME_MAPS_SOUTH_AMERICA            (RID_GALLERYSTR_THEME_START + 110)
++#define RID_GALLERYSTR_THEME_MAPS_EUROPE            (RID_GALLERYSTR_THEME_START + 111)
++#define RID_GALLERYSTR_THEME_MAPS_EUROPE_1            (RID_GALLERYSTR_THEME_START + 112)
++#define RID_GALLERYSTR_THEME_MAPS_FRANCE            (RID_GALLERYSTR_THEME_START + 113)
++#define RID_GALLERYSTR_THEME_MAPS_FRANCE_COUNTRIES            (RID_GALLERYSTR_THEME_START + 114)
++#define RID_GALLERYSTR_THEME_MAPS_SIGNS            (RID_GALLERYSTR_THEME_START + 115)
++#define RID_GALLERYSTR_THEME_MAPS_CANADA            (RID_GALLERYSTR_THEME_START + 116)
++#define RID_GALLERYSTR_THEME_MAPS_CONTINENTS            (RID_GALLERYSTR_THEME_START + 117)
++#define RID_GALLERYSTR_THEME_MAPS_MIDDLE_EAST            (RID_GALLERYSTR_THEME_START + 118)
++#define RID_GALLERYSTR_THEME_MAPS_MIDDLE_AMERICA            (RID_GALLERYSTR_THEME_START + 119)
++#define RID_GALLERYSTR_THEME_MAPS_MIDDLE_AGES            (RID_GALLERYSTR_THEME_START + 120)
++#define RID_GALLERYSTR_THEME_MAPS_MEXICO            (RID_GALLERYSTR_THEME_START + 121)
++#define RID_GALLERYSTR_THEME_MAPS_ANCIENT_TIMES            (RID_GALLERYSTR_THEME_START + 122)
++#define RID_GALLERYSTR_THEME_MAPS_SIMBOLS            (RID_GALLERYSTR_THEME_START + 123)
++#define RID_GALLERYSTR_THEME_MAPS_HISTORY_1900            (RID_GALLERYSTR_THEME_START + 124)
++#define RID_GALLERYSTR_THEME_MAPS_WORLD            (RID_GALLERYSTR_THEME_START + 125)
++#define RID_GALLERYSTR_THEME_CROPS            (RID_GALLERYSTR_THEME_START + 126)
++#define RID_GALLERYSTR_THEME_FRACTIONS            (RID_GALLERYSTR_THEME_START + 127)
++#define RID_GALLERYSTR_THEME_FLAGS_1            (RID_GALLERYSTR_THEME_START + 128)
++#define RID_GALLERYSTR_THEME_MUSIC_INSTRUMENTS            (RID_GALLERYSTR_THEME_START + 129)
++#define RID_GALLERYSTR_THEME_MUSIC_SHEET_MUSIC            (RID_GALLERYSTR_THEME_START + 130)
++#define RID_GALLERYSTR_THEME_SPECIAL_PICTOGRAMM            (RID_GALLERYSTR_THEME_START + 131)
++#define RID_GALLERYSTR_THEME_PHOTOS_CELEBRATION            (RID_GALLERYSTR_THEME_START + 132)
++#define RID_GALLERYSTR_THEME_PHOTOS_FOODSANDDRINKS           (RID_GALLERYSTR_THEME_START + 133)
++#define RID_GALLERYSTR_THEME_PHOTOS_HUMANS            (RID_GALLERYSTR_THEME_START + 134)
++#define RID_GALLERYSTR_THEME_PHOTOS_OBJECTS            (RID_GALLERYSTR_THEME_START + 135)
++#define RID_GALLERYSTR_THEME_PHOTOS_SPACE            (RID_GALLERYSTR_THEME_START + 136)
++#define RID_GALLERYSTR_THEME_PHOTOS_TRAVEL            (RID_GALLERYSTR_THEME_START + 137)
++#define RID_GALLERYSTR_THEME_OPENOFFICEORG_LOGOS            (RID_GALLERYSTR_THEME_START + 138)
++#define RID_GALLERYSTR_THEME_RELIGION            (RID_GALLERYSTR_THEME_START + 139)
++#define RID_GALLERYSTR_THEME_BUILDINGS            (RID_GALLERYSTR_THEME_START + 140)
++#define RID_GALLERYSTR_THEME_HOMEPAGE2            (RID_GALLERYSTR_THEME_START + 141)
++#define RID_GALLERYSTR_THEME_ELEMENTSBULLETS2            (RID_GALLERYSTR_THEME_START + 142)
++
+ #define RID_GALLERYSTR_THEME_FIRST			RID_GALLERYSTR_THEME_3D
+-#define RID_GALLERYSTR_THEME_LAST			RID_GALLERYSTR_THEME_FONTWORK_VERTICAL
++#define RID_GALLERYSTR_THEME_LAST			RID_GALLERYSTR_THEME_ELEMENTSBULLETS2
+ 
+ #endif
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/shell-senddoc-support-groupwise.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/shell-senddoc-support-groupwise.diff
@@ -0,0 +1,20 @@
+--- shell/source/unix/misc/senddoc.sh.old	2008-03-06 22:51:57.000000000 +0100
++++ shell/source/unix/misc/senddoc.sh	2008-03-10 11:57:18.000000000 +0100
+@@ -243,7 +243,7 @@ case `basename "$MAILER" | sed 's/-.*$//
+ 		rm -f $BODY
+ 		;;
+ 		
+-	evolution)
++	evolution | groupwise)
+ 	
+ 		while [ "$1" != "" ]; do
+ 			case $1 in
+@@ -272,7 +272,7 @@ case `basename "$MAILER" | sed 's/-.*$//
+ 					shift
+ 					;;
+ 				--attach)
+-					MAILTO="${MAILTO:-}${MAILTO:+&}attach="`echo "file://$2" | ${URI_ENCODE}`
++					MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "file://$2" | ${URI_ENCODE}`
+ 					shift
+ 					;;
+ 				*)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_accessories.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_accessories.diff
@@ -0,0 +1,14685 @@
+diff -Naur scp2/source/accessories/file_accessories.scp scp2/source/accessories/file_accessories.scp
+--- scp2/source/accessories/file_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/file_accessories.scp	2008-03-22 10:57:33.000000000 +0100
+@@ -0,0 +1,54 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/07/02 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++/* *** KAMI Extras *** */
++
++/* ** Macro - Premium ** */
++
++File gid_File_Basic_Premium
++    Dir = gid_Dir_Basic_Premium;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    Name = "basicsrvpremium.zip";
++End
++
++/* ** Macro - OOoWikipedia ** */
++
++File gid_File_Basic_OOoWikipedia
++    Dir = gid_Dir_Basic_OOoWikipedia;
++    ARCHIVE_TXT_FILE_BODY_PATCH;
++    Name = "basicsrvooowikipedia.zip";
++End
+diff -Naur scp2/source/accessories/file_font_accessories.scp scp2/source/accessories/file_font_accessories.scp
+--- scp2/source/accessories/file_font_accessories.scp.orig	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/file_font_accessories.scp	2008-04-05 09:24:30.000000000 +0200
+@@ -0,0 +1,769 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_font_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++/* Airmole font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_airmole, airmole.ttf, Airmole ) 
++#endif 
++
++/* Airmole Antique font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_airmolea, airmolea.ttf, Airmole Antique ) 
++#endif 
++
++/* Airmole Shaded font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_airmoles, airmoles.ttf, Airmole Shaded ) 
++#endif 
++
++/* Airmole Stripe font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_airmoleq, airmoleq.ttf, Airmole Stripe ) 
++#endif 
++
++/* Astron Boy font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_astronbo, astronbo.ttf, Astron Boy ) 
++#endif 
++
++/* Astron Boy Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_astronbi, astronbi.ttf, Astron Boy Italic ) 
++#endif 
++
++/* Astron Boy Video font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_astronbv, astronbv.ttf, Astron Boy Video ) 
++#endif 
++
++/* Astron Boy Wonder font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_astronbw, astronbw.ttf, Astron Boy Wonder ) 
++#endif 
++
++/* Baveuse font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_baveuse, baveuse.ttf, Baveuse ) 
++#endif 
++
++/* Berylium font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Berylium, Berylium.ttf, Berylium ) 
++#endif 
++
++/* Berylium Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Beryliub, Beryliub.ttf, Berylium Bold )
++#endif 
++
++/* Berylium Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Berylibi, Berylibi.ttf, Berylium Bold Italic ) 
++#endif 
++
++/* Berylium Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Beryliui, Beryliui.ttf, Berylium Italic ) 
++#endif 
++
++/* Betsy Flanagan 2 font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_BETSY2, BETSY2.ttf, Betsy Flanagan 2 ) 
++#endif 
++
++/* Blue Highway font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bluehigh, bluehigh.ttf, Blue Highway ) 
++#endif 
++
++/* Blue Highway Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bluebold, bluebold.ttf, Blue Highway Bold ) 
++#endif 
++
++/* Blue Highway Condensed font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bluecond, bluecond.ttf, Blue Highway Condensed ) 
++#endif 
++
++/* Blue Highway Linocut font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bluehigl, bluehigl.ttf, Blue Highway Linocut ) 
++#endif 
++
++/* Bullpen font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bullpen_, bullpen_.ttf, Bullpen ) 
++#endif 
++
++/* Bullpen 3D font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bullpen3, bullpen3.ttf, Bullpen 3D ) 
++#endif 
++
++/* Bullpen Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_bullpeni, bullpeni.ttf, Bullpen Italic ) 
++#endif 
++
++/* Colourbars font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_colourba, colourba.ttf, Colourbars ) 
++#endif 
++
++/* Colourbars Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_colourbb, colourbb.ttf, Colourbars Bold ) 
++#endif 
++
++/* Counterscraps font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_counters, counters.ttf, Counterscraps ) 
++#endif 
++
++/* Credit Valley font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_creditva, creditva.ttf, Credit Valley ) 
++#endif 
++
++/* Credit Valley Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_creditvb, creditvb.ttf, Credit Valley Bold ) 
++#endif 
++
++/* Credit Valley Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_creditvz, creditvz.ttf, Credit Valley Bold Italic ) 
++#endif 
++
++/* Credit Valley Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_creditvi, creditvi.ttf, Credit Valley Italic ) 
++#endif 
++
++/* Edmunds font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_edmunds, edmunds.ttf, Edmunds ) 
++#endif 
++
++/* Edmunds Distressed font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_edmundis, edmundis.ttf, Edmunds Distressed ) 
++#endif 
++
++/* Engebrechtre font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeregu, engeregu.ttf, Engebrechtre ) 
++#endif
++
++/* Engebrechtre Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engebold, engebold.ttf, Engebrechtre Bold ) 
++#endif
++
++/* Engebrechtre Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeboit, engeboit.ttf, Engebrechtre Bold Italic ) 
++#endif
++
++/* Engebrechtre Expanded font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeexpa, engeexpa.ttf, Engebrechtre Expanded ) 
++#endif
++
++/* Engebrechtre Expanded Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeexbo, engeexbo.ttf, Engebrechtre Expanded Bold ) 
++#endif
++
++/* Engebrechtre Expanded Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeexbi, engeexbi.ttf, Engebrechtre Expanded Bold Italic ) 
++#endif
++
++/* Engebrechtre Expanded Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeexit, engeexit.ttf, Engebrechtre Expanded Italic ) 
++#endif
++
++/* Engebrechtre Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_engeital, engeital.ttf, Engebrechtre Italic ) 
++#endif
++
++/* Goodfish font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_goodfish, goodfish.ttf, Goodfish ) 
++#endif
++
++/* Goodfish Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_goodfisb, goodfisb.ttf, Goodfish Bold ) 
++#endif
++
++/* Goodfish Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_goodfisc, goodfisc.ttf, Goodfish Bold Italic ) 
++#endif
++
++/* Goodfish Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_goodfisi, goodfisi.ttf, Goodfish Italic ) 
++#endif
++
++/* Guanine font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_guanine_, guanine_.ttf, Guanine ) 
++#endif
++
++/* Gunplay font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_gunplay, gunplay.ttf, Gunplay ) 
++#endif
++
++/* Kirsty font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_kirsty__, kirsty__.ttf, Kirsty ) 
++#endif
++
++/* Kirsty Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_kirsty_b, kirsty_b.ttf, Kirsty Bold ) 
++#endif
++
++/* Kirsty Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_kirstybi, kirstybi.ttf, Kirsty Bold Italic ) 
++#endif
++
++/* Kirsty Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_kirsty_i, kirsty_i.ttf, Kirsty Italic ) 
++#endif
++
++/* Kirsty Ink font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_kirstyin, kirstyin.ttf, Kirsty Ink ) 
++#endif
++
++/* Mufferaw font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_mufferaw, mufferaw.ttf, Mufferaw ) 
++#endif
++
++/* Nasalization font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_nasaliza, nasaliza.ttf, Nasalization ) 
++#endif
++
++/* Neuropol font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_NEUROPOL, NEUROPOL.ttf, Neuropol ) 
++#endif
++
++/* Numberpile font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_numberpi, numberpi.ttf, Numberpile ) 
++#endif
++
++/* Pricedown font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_pricedow, pricedow.ttf, Pricedown ) 
++#endif
++
++/* Pupcat font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_pupcat__, pupcat__.ttf, Pupcat ) 
++#endif
++
++/* Rina font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_rina, rina.ttf, Rina ) 
++#endif
++
++/* Sandoval font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_sandoval, sandoval.ttf, Sandoval ) 
++#endif
++
++/* Sappy Mugs font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_SAPPM___, SAPPM___.ttf, Sappy Mugs ) 
++#endif
++
++/* Screengem font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_screenge, screenge.ttf, Screengem ) 
++#endif
++
++/* Steelfish font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_steelfis, steelfis.ttf, Steelfish ) 
++#endif
++
++/* Steelfish Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_steelfib, steelfib.ttf, Steelfish Bold ) 
++#endif
++
++/* Steelfish Outline font */ 
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_steelout, steelout.ttf, Steelfish Outline ) 
++#endif
++
++/* Strenuous font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_strenuou, strenuou.ttf, Strenuous ) 
++#endif
++
++/* Strenuous 3D font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_strenu3d, strenu3d.ttf, Strenuous 3D ) 
++#endif
++
++/* Subpear font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_subpear_, subpear_.ttf, Subpear ) 
++#endif
++
++/* Teen font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_teen____, teen____.ttf, Teen ) 
++#endif
++
++/* Teen Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_teenbold, teenbold.ttf, Teen Bold ) 
++#endif
++
++/* Teen Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_teenbdit, teenbdit.ttf, Teen Bold Italic ) 
++#endif
++
++/* Teen Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_teenital, teenital.ttf, Teen Italic ) 
++#endif
++
++/* Teen Light font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_teenlite, teenlite.ttf, Teen Light ) 
++#endif
++
++/* Teen Light Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_teenlita, teenlita.ttf, Teen Light Italic ) 
++#endif
++
++/* Typodermic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_typoderm, typoderm.ttf, Typodermic ) 
++#endif
++
++/* Vahika font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vahika_, vahika_.ttf, Vahika ) 
++#endif
++
++/* Vahika Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vahikab, vahikab.ttf, Vahika Bold ) 
++#endif
++
++/* Vahika Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vahikac, vahikac.ttf, Vahika Bold Italic ) 
++#endif
++
++/* Vahika Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vahikai, vahikai.ttf, Vahika Italic ) 
++#endif
++
++/* Vectroid font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vectroid, vectroid.ttf, Vectroid ) 
++#endif
++
++/* Velvenda Cooler font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_velvendc, velvendc.ttf, Velvenda Cooler ) 
++#endif
++
++/* Velvenda Megablack font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_velvenda, velvenda.ttf, Velvenda Megablack ) 
++#endif
++
++/* Vibrocentric font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vibrocen, vibrocen.ttf, Vibrocentric ) 
++#endif
++
++/* Vibrocentric Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vibroceb, vibroceb.ttf, Vibrocentric Bold ) 
++#endif
++
++/* Vibrocentric Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vibrocex, vibrocex.ttf, Vibrocentric Bold Italic ) 
++#endif
++
++/* Vibrocentric Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_vibrocei, vibrocei.ttf, Vibrocentric Italic ) 
++#endif
++
++/* Wintermute font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_wintermu, wintermu.ttf, Wintermute ) 
++#endif
++
++/* You're Gone font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_youregon, youregon.ttf, You are Gone )
++#endif
++
++/* You're Gone Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_youregoi, youregoi.ttf, You are Gone Italic )
++#endif
++
++/* Zekton font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_zekton__, zekton__.ttf, Zekton ) 
++#endif
++
++/* Zekton Bold font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_zektonbo, zektonbo.ttf, Zekton Bold ) 
++#endif
++
++/* Zekton Bold Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_zektonbi, zektonbi.ttf, Zekton Bold Italic ) 
++#endif
++
++/* Zekton Italic font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_zektonit, zektonit.ttf, Zekton Italic )
++#endif
++
++/* Zorque font */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_zorque, zorque.ttf, Zorque ) 
++#endif
++
++/* Additional fonts for 2.0.3 */
++
++/* -URW-Gothic L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Gothic_L_Avantgarde, a010013l.ttf, -URW-Gothic L ) 
++#endif
++ 
++/* -URW-Gothic L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Gothic_L_Bold_Avantgarde, a010015l.ttf, -URW-Gothic L Bold ) 
++#endif
++ 
++/* -URW-Gothic L Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Gothic_L_Italic_Avantgarde, a010033l.ttf, -URW-Gothic L Italic ) 
++#endif
++ 
++/* -URW-Gothic L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Gothic_L_Bold_Italic_Avantgarde, a010035l.ttf, -URW-Gothic L Bold Italic ) 
++#endif
++ 
++/* -URW-Bookman L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Bookman_L_Bookman, b018012l.ttf, -URW-Bookman L ) 
++#endif
++ 
++/* -URW-Bookman L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Bookman_L_Bold_Bookman, b018015l.ttf, -URW-Bookman L Bold ) 
++#endif
++ 
++/* -URW-Bookman L Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Bookman_L_Italic_Bookman, b018032l.ttf, -URW-Bookman L Italic ) 
++#endif
++ 
++/* -URW-Bookman L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Bookman_L_Bold_Italic_Bookman, b018035l.ttf, -URW-Bookman L Bold Italic ) 
++#endif
++ 
++/* -URW-Century Schoolbook L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Century_Schoolbook_L_New_Century_SchoolBook, c059013l.ttf, -URW-Century Schoolbook L ) 
++#endif
++ 
++/* -URW-Century Schoolbook L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Century_Schoolbook_L_Bold_New_Century_SchoolBook, c059016l.ttf, -URW-Century Schoolbook L Bold ) 
++#endif
++ 
++/* -URW-Century Schoolbook L Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Century_Schoolbook_L_Italic_New_Century_SchoolBook, c059033l.ttf, -URW-Century Schoolbook L Italic ) 
++#endif
++ 
++/* -URW-Century Schoolbook L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Century_Schoolbook_L_Bold_Italic_New_Century_SchoolBook, c059036l.ttf, -URW-Century Schoolbook L Bold Italic ) 
++#endif
++ 
++/* -URW-Nimbus Sans L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Helvetica, n019003l.ttf, -URW-Nimbus Sans L ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Helvetica, n019004l.ttf, -URW-Nimbus Sans L Bold ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Italic_Helvetica, n019023l.ttf, -URW-Nimbus Sans L Italic ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Italic_Helvetica, n019024l.ttf, -URW-Nimbus Sans L Bold Italic ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Condensed */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Helvetica_Condensed, n019043l.ttf, -URW-Nimbus Sans L Condensed ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Bold Condensed */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Helvetica_Condensed, n019044l.ttf, -URW-Nimbus Sans L Bold Condensed ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Italic Condensed */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Italic_Helvetica_Condensed, n019063l.ttf, -URW-Nimbus Sans L Italic Condensed ) 
++#endif
++ 
++/* -URW-Nimbus Sans L Bold Italic Condensed */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Italic_Helvetica_Condensed, n019064l.ttf, -URW-Nimbus Sans L Bold Italic Condensed ) 
++#endif
++ 
++/* -URW-Nimbus Roman No9 L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Times, n021003l.ttf, -URW-Nimbus Roman No9 L ) 
++#endif
++ 
++/* -URW-Nimbus Roman No9 L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Bold_Times, n021004l.ttf, -URW-Nimbus Roman No9 L Bold ) 
++#endif
++ 
++/* -URW-Nimbus Roman No9 L Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Italic_Times, n021023l.ttf, -URW-Nimbus Roman No9 L Italic ) 
++#endif
++ 
++/* -URW-Nimbus Roman No9 L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Bold_Italic_Times, n021024l.ttf, -URW-Nimbus Roman No9 L Bold Italic ) 
++#endif
++ 
++/* -URW-Nimbus Mono L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Mono_L_Courier, n022003l.ttf, -URW-Nimbus Mono L ) 
++#endif
++ 
++/* -URW-Nimbus Mono L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Mono_L_Bold_Courier, n022004l.ttf, -URW-Nimbus Mono L Bold ) 
++#endif
++ 
++/* -URW-Nimbus Mono LK Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Mono_LK_Italic_Courier, n022023l.ttf, -URW-Nimbus Mono LK Italic ) 
++#endif
++ 
++/* -URW-Nimbus Mono L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Nimbus_Mono_L_Bold_Italic_Courier, n022024l.ttf, -URW-Nimbus Mono L Bold Italic ) 
++#endif
++ 
++/* -URW-Palladio L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Palladio_L_Palitino, p052003l.ttf, -URW-Palladio L ) 
++#endif
++ 
++/* -URW-Palladio L Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Palladio_L_Bold_Palitino, p052004l.ttf, -URW-Palladio L Bold ) 
++#endif
++ 
++/* -URW-Palladio L Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Palladio_L_Italic_Palitino, p052023l.ttf, -URW-Palladio L Italic ) 
++#endif
++ 
++/* -URW-Palladio L Bold Italic */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Palladio_L_Bold_Italic_Palitino, p052024l.ttf, -URW-Palladio L Bold Italic ) 
++#endif
++ 
++/* -URW-Standard Symbols L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Standard_Symbols_L_Symbol, s050000l.ttf, -URW-Standard Symbols L ) 
++#endif
++ 
++/* -URW-Chancery L */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_-URW-Chancery_L_Zapf_Chancery, z003034l.ttf, -URW-Chancery L ) 
++#endif
++ 
++/* Dingbats */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Dingbats, d050000l.ttf, Dingbats ) 
++#endif
++ 
++/* Luxi Mono Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Mono_Bold, luximb.ttf, Luxi Mono Bold ) 
++#endif
++ 
++/* Luxi Mono Bold Oblique */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Mono_Bold_Oblique, luximbi.ttf, Luxi Mono Bold Oblique ) 
++#endif
++ 
++/* Luxi Mono Regular */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Mono_Regular, luximr.ttf, Luxi Mono Regular ) 
++#endif
++ 
++/* Luxi Mono Oblique */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Mono_Oblique, luximri.ttf, Luxi Mono Oblique ) 
++#endif
++ 
++/* Luxi Serif Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Serif_Bold, luxirb.ttf, Luxi Serif Bold ) 
++#endif
++ 
++/* Luxi Serif Bold Oblique */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Serif_Bold_Oblique, luxirbi.ttf, Luxi Serif Bold Oblique ) 
++#endif
++ 
++/* Luxi Serif Regular */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Serif_Regular, luxirr.ttf, Luxi Serif Regular ) 
++#endif
++ 
++/* Luxi Serif Oblique */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Serif_Oblique, luxirri.ttf, Luxi Serif Oblique ) 
++#endif
++ 
++/* Luxi Sans Bold */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Sans_Bold, luxisb.ttf, Luxi Sans Bold ) 
++#endif
++ 
++/* Luxi Sans Bold Oblique */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Sans_Bold_Oblique, luxisbi.ttf, Luxi Sans Bold Oblique ) 
++#endif
++ 
++/* Luxi Sans Regular */ 
++#ifndef WITHOUT_EXTRA_FONT 
++STD_FONT_FILE( gid_File_Fnt_Luxi_Sans_Regular, luxisr.ttf, Luxi Sans Regular ) 
++#endif
++ 
++/* Luxi Sans Oblique */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_Luxi_Sans_Oblique, luxisri.ttf, Luxi Sans Oblique )
++#endif
++
++/* Gentium */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_Gentium, GenR102.TTF, Gentium )
++#endif
++
++/* Gentium Italic */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_Gentium_Italic, GenI102.TTF, Gentium Italic )
++#endif
++
++/* GentiumAlt */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_GentiumAlt, GenAR102.TTF, GentiumAlt )
++#endif
++
++/* GentiumAlt Italic */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_GentiumAlt_Italic, GenAI102.TTF, GentiumAlt Italic )
++#endif
++
++/* MgOpen Canonica Bold */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_MgOpen_Canonica_Bold, MgOpenCanonicaBold.ttf, MgOpen Canonica Bold )
++#endif
++
++/* MgOpen Canonica Bold Italic */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_MgOpen_Canonica_Bold_Italic, MgOpenCanonicaBoldItalic.ttf, MgOpen Canonica Bold Italic)
++#endif
++
++/* MgOpen Canonica Italic */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_MgOpen_Canonica_Italic, MgOpenCanonicaItalic.ttf, MgOpen Canonica Italic )
++#endif
++
++/* MgOpen Canonica Regular */
++#ifndef WITHOUT_EXTRA_FONT
++STD_FONT_FILE( gid_File_Fnt_MgOpen_Canonica_Regular, MgOpenCanonicaRegular.ttf, MgOpen Canonica )
++#endif
++
+diff -Naur scp2/source/accessories/file_gallery_accessories.scp scp2/source/accessories/file_gallery_accessories.scp
+--- scp2/source/accessories/file_gallery_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/file_gallery_accessories.scp	2008-03-22 10:57:33.000000000 +0100
+@@ -0,0 +1,146 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_gallery_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++/* *** KAMI Extras *** */
++
++/* ** Gallery ** */
++
++#ifndef WITHOUT_EXTRA_GALLERY
++
++File gid_File_Extra_Gallery_KAMI
++    Dir = gid_Dir_Gallery;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigallery.zip";
++End
++
++File gid_File_Extra_Gallery_Draws_People_KAMI
++    Dir = gid_Dir_Gallery_Draws_People;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigallerydrawspeople.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Plants_KAMI
++    Dir = gid_Dir_Gallery_Photos_Plants;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosplants.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Celebration_KAMI
++    Dir = gid_Dir_Gallery_Photos_Celebration;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotoscelebration.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Fauna_KAMI
++    Dir = gid_Dir_Gallery_Photos_Fauna;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosfauna.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Flowers_KAMI
++    Dir = gid_Dir_Gallery_Photos_Flowers;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosflowers.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_FoodsandDrinks_KAMI
++    Dir = gid_Dir_Gallery_Photos_FoodsandDrinks;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosfoodsanddrinks.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Humans_KAMI
++    Dir = gid_Dir_Gallery_Photos_Humans;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotoshumans.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Landscapes_KAMI
++    Dir = gid_Dir_Gallery_Photos_Landscapes;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotoslandscapes.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Buildings_KAMI
++    Dir = gid_Dir_Gallery_Photos_Buildings;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosbuildings.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Objects_KAMI
++    Dir = gid_Dir_Gallery_Photos_Objects;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosobjects.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Cities_KAMI
++    Dir = gid_Dir_Gallery_Photos_Cities;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotoscities.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Space_KAMI
++    Dir = gid_Dir_Gallery_Photos_Space;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosspace.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Statues_KAMI
++    Dir = gid_Dir_Gallery_Photos_Statues;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotosstatues.zip";
++End
++
++File gid_File_Extra_Gallery_Photos_Travel_KAMI
++    Dir = gid_Dir_Gallery_Photos_Travel;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryphotostravel.zip";
++End
++
++File gid_File_Extra_Gallery_Elements_Bullets2_KAMI
++    Dir = gid_Dir_Gallery_Elements_Bullets2;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigalleryelementsbullets2.zip";
++End
++
++File gid_File_Extra_Gallery_NONFREE_KAMI
++    Dir = gid_Dir_Gallery;
++    ARCHIVE_TXT_FILE_BODY;
++    Name = "kamigallerynonfree.zip";
++End
++
++#endif
+diff -Naur scp2/source/accessories/file_samples_accessories.scp scp2/source/accessories/file_samples_accessories.scp
+--- scp2/source/accessories/file_samples_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/file_samples_accessories.scp	2008-03-22 10:57:33.000000000 +0100
+@@ -0,0 +1,88 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_samples_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++/* *** KAMI Extras *** */
++
++/* ** Samples ** */
++
++#ifndef WITHOUT_EXTRA_SAMPLE
++
++File gid_File_Extra_Samples_KAMI
++    Dir = gid_Dir_Samples_Language;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamisamples);
++End
++
++File gid_File_Extra_Samples_Documentations_KAMI
++    Dir = gid_Dir_Samples_Documentations;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamisamplesdocumentation);
++End
++
++File gid_File_Extra_Samples_Advertisement_KAMI
++    Dir = gid_Dir_Samples_Advertisement;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamisamplesadvertisement);
++End
++
++/* ** Samples - NON FREE** */
++
++File gid_File_Extra_Samples_NONFREE_KAMI
++    Dir = gid_Dir_Samples_Language;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamisamplesnonfree);
++End
++
++File gid_File_Extra_Samples_NONFREE_Documentations_KAMI
++    Dir = gid_Dir_Samples_Documentations;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamisamplesnonfreedocumentation);
++End
++
++File gid_File_Extra_Samples_NONFREE_Advertisement_KAMI
++    Dir = gid_Dir_Samples_Advertisement;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamisamplesnonfreeadvertisement);
++End
++
++#endif
+diff -Naur scp2/source/accessories/file_templates_accessories.scp scp2/source/accessories/file_templates_accessories.scp
+--- scp2/source/accessories/file_templates_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/file_templates_accessories.scp	2008-03-22 10:57:33.000000000 +0100
+@@ -0,0 +1,200 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_templates_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++/* *** KAMI Extras *** */
++
++/* ** Templates ** */
++
++#ifndef WITHOUT_EXTRA_TEMPLATE
++
++File gid_File_Extra_Templates_KAMI
++    Dir = gid_Dir_Template_Language;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplates);
++End
++
++File gid_File_Extra_Templates_Layout_KAMI
++    Dir = gid_Dir_Template_Layout;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplateslayout);
++End
++
++File gid_File_Extra_Templates_Present_KAMI
++    Dir = gid_Dir_Template_Presnt;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatespresent);
++End
++
++File gid_File_Extra_Templates_Educate_KAMI
++    Dir = gid_Dir_Template_Educate;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplateseducate);
++End
++
++File gid_File_Extra_Templates_Finance_KAMI
++    Dir = gid_Dir_Template_Finance;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesfinance);
++End
++
++File gid_File_Extra_Templates_Forms_KAMI
++    Dir = gid_Dir_Template_Forms;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesforms);
++End
++
++File gid_File_Extra_Templates_Labels_KAMI
++    Dir = gid_Dir_Template_Labels;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplateslabels);
++End
++
++File gid_File_Extra_Templates_Misc_KAMI
++    Dir = gid_Dir_Template_Misc;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesmisc);
++End
++
++File gid_File_Extra_Templates_Officorr_KAMI
++    Dir = gid_Dir_Template_Officorr;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesofficorr);
++End
++
++File gid_File_Extra_Templates_Offimisc_KAMI
++    Dir = gid_Dir_Template_Offimisc;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesoffimisc);
++End
++
++File gid_File_Extra_Templates_Personal_KAMI
++    Dir = gid_Dir_Template_Personal;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatespersonal);
++End
++
++/* ** Templates - NON FREE ** */
++
++File gid_File_Extra_Templates_NONFREE_KAMI
++    Dir = gid_Dir_Template_Language;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfree);
++End
++
++File gid_File_Extra_Templates_NONFREE_Layout_KAMI
++    Dir = gid_Dir_Template_Layout;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreelayout);
++End
++
++File gid_File_Extra_Templates_NONFREE_Present_KAMI
++    Dir = gid_Dir_Template_Presnt;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreepresent);
++End
++
++File gid_File_Extra_Templates_NONFREE_Educate_KAMI
++    Dir = gid_Dir_Template_Educate;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreeeducate);
++End
++
++File gid_File_Extra_Templates_NONFREE_Finance_KAMI
++    Dir = gid_Dir_Template_Finance;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreefinance);
++End
++
++File gid_File_Extra_Templates_NONFREE_Forms_KAMI
++    Dir = gid_Dir_Template_Forms;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreeforms);
++End
++
++File gid_File_Extra_Templates_NONFREE_Labels_KAMI
++    Dir = gid_Dir_Template_Labels;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreelabels);
++End
++
++File gid_File_Extra_Templates_NONFREE_Misc_KAMI
++    Dir = gid_Dir_Template_Misc;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreemisc);
++End
++
++File gid_File_Extra_Templates_NONFREE_Officorr_KAMI
++    Dir = gid_Dir_Template_Officorr;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreeofficorr);
++End
++
++File gid_File_Extra_Templates_NONFREE_Offimisc_KAMI
++    Dir = gid_Dir_Template_Offimisc;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreeoffimisc);
++End
++
++File gid_File_Extra_Templates_NONFREE_Personal_KAMI
++    Dir = gid_Dir_Template_Personal;
++    TXT_FILE_BODY;
++    Styles = (ARCHIVE, DONT_OVERWRITE);
++    EXTRA_ALL_LANG(kamitemplatesnonfreepersonal);
++End
++
++#endif
+diff -Naur scp2/source/accessories/makefile.mk scp2/source/accessories/makefile.mk
+--- scp2/source/accessories/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/makefile.mk	2008-03-23 15:28:37.000000000 +0100
+@@ -0,0 +1,78 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.0 $
++#
++#   last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJPCH=
++
++PRJNAME=scp2
++TARGET=accessories
++TARGETTYPE=CUI
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :	settings.mk
++
++SCP_PRODUCT_TYPE=osl
++PARFILES= \
++        module_accessories.par             \
++        module_gallery_accessories.par     \
++        module_templates_accessories.par   \
++        module_templates_accessories_langpack.par   \
++        module_samples_accessories.par     \
++        module_samples_accessories_langpack.par     \
++        module_documentations_accessories_langpack.par     \
++        module_advertisement_accessories_langpack.par     \
++        module_font_accessories.par        \
++        file_accessories.par               \
++        file_gallery_accessories.par       \
++        file_templates_accessories.par     \
++        file_samples_accessories.par       \
++        file_font_accessories.par
++
++ULFFILES= \
++        module_accessories.ulf             \
++        module_gallery_accessories.ulf     \
++        module_templates_accessories.ulf   \
++        module_templates_accessories_langpack.ulf   \
++        module_samples_accessories.ulf     \
++        module_samples_accessories_langpack.ulf     \
++        module_documentations_accessories_langpack.ulf     \
++        module_advertisement_accessories_langpack.ulf     \
++        module_font_accessories.ulf
++
++
++# --- File ---------------------------------------------------------
++.INCLUDE :  target.mk
+diff -Naur scp2/source/accessories/module_accessories.scp scp2/source/accessories/module_accessories.scp
+--- scp2/source/accessories/module_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_accessories.scp	2008-03-22 10:57:33.000000000 +0100
+@@ -0,0 +1,46 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Optional_Accessories
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES);
++    ParentID = gid_Module_Optional;
++    Files = (
++        gid_File_Basic_Premium  ); 
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
+diff -Naur scp2/source/accessories/module_accessories.ulf scp2/source/accessories/module_accessories.ulf
+--- scp2/source/accessories/module_accessories.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_accessories.ulf	2008-03-22 15:19:18.000000000 +0100
+@@ -0,0 +1,40 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_accessories.ulf,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES]
++en-US = "Accessories"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES]
++en-US = "Useful %PRODUCTNAME accessories including various Galleries, Templates, Sample documents and Fonts."
+diff -Naur scp2/source/accessories/module_advertisement_accessories_langpack.scp scp2/source/accessories/module_advertisement_accessories_langpack.scp
+--- scp2/source/accessories/module_advertisement_accessories_langpack.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_advertisement_accessories_langpack.scp	2008-03-23 15:25:32.000000000 +0100
+@@ -0,0 +1,2475 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_advertisement_accessories_langpack.scp,v $
++ *
++ *  $Revision: 1.7.38.1 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 13:51:27 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++// English
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_en_US
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_US);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_en_US
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_en_US;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_en_US";
++    Description = "gid_Module_Optional_Accessories_Advertisement_en_US";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// German
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_de
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_de
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_de;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_de";
++    Description = "gid_Module_Optional_Accessories_Advertisement_de";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// French
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_fr
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_fr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_fr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_fr";
++    Description = "gid_Module_Optional_Accessories_Advertisement_fr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Italian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_it
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_IT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_it
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_it;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_it";
++    Description = "gid_Module_Optional_Accessories_Advertisement_it";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Spanish
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_es
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ES);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_es
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_es;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_es";
++    Description = "gid_Module_Optional_Accessories_Advertisement_es";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swedish
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sv
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sv";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_pt
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_pt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_pt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_pt";
++    Description = "gid_Module_Optional_Accessories_Advertisement_pt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese (Brazilian)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_pt_BR
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PT_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_pt_BR
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_pt_BR;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_pt_BR";
++    Description = "gid_Module_Optional_Accessories_Advertisement_pt_BR";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Japanese
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ja
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_JA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ja
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ja;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ja";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ja";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Korean
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ko
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ko
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ko;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ko";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ko";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (simplified)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_zh_CN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZH_CN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_zh_CN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_zh_CN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_zh_CN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_zh_CN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (traditional)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_zh_TW
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZH_TW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_zh_TW
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_zh_TW;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_zh_TW";
++    Description = "gid_Module_Optional_Accessories_Advertisement_zh_TW";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dutch
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_nl
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_nl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_nl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_nl";
++    Description = "gid_Module_Optional_Accessories_Advertisement_nl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hungarian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_hu
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_hu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_hu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_hu";
++    Description = "gid_Module_Optional_Accessories_Advertisement_hu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Polish
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_pl
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_pl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_pl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_pl";
++    Description = "gid_Module_Optional_Accessories_Advertisement_pl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Russian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ru
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ru
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ru;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ru";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ru";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Turkish
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_tr
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_tr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_tr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_tr";
++    Description = "gid_Module_Optional_Accessories_Advertisement_tr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Greek
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_el
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_el
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_el;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_el";
++    Description = "gid_Module_Optional_Accessories_Advertisement_el";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Thai
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_th
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_th
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_th;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_th";
++    Description = "gid_Module_Optional_Accessories_Advertisement_th";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Czech
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_cs
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "1900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_cs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_cs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_cs";
++    Description = "gid_Module_Optional_Accessories_Advertisement_cs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovak
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sk
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sk";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Croatian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_hr
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_hr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_hr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_hr";
++    Description = "gid_Module_Optional_Accessories_Advertisement_hr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Estonian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_et
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ET);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_et
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_et;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_et";
++    Description = "gid_Module_Optional_Accessories_Advertisement_et";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Vietnamese
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_vi
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_VI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_vi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_vi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_vi";
++    Description = "gid_Module_Optional_Accessories_Advertisement_vi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bulgarian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_bg
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_bg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_bg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_bg";
++    Description = "gid_Module_Optional_Accessories_Advertisement_bg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Khmer
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_km
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_km
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_km;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_km";
++    Description = "gid_Module_Optional_Accessories_Advertisement_km";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Punjabi
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_pa_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_pa_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_pa_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_pa_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_pa_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_gu_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GU_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_gu_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_gu_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_gu_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_gu_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ta
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ta
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ta;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ta";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ta";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ta_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "2900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ta_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ta_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ta_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ta_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_hi
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_hi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_hi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_hi";
++    Description = "gid_Module_Optional_Accessories_Advertisement_hi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_hi_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HI_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_hi_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_hi_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_hi_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_hi_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Southern Sotho (st)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_st
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ST);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_st
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_st;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_st";
++    Description = "gid_Module_Optional_Accessories_Advertisement_st";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tswana (tn)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_tn
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_tn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_tn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_tn";
++    Description = "gid_Module_Optional_Accessories_Advertisement_tn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Xhosa (xh)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_xh
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_XH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_xh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_xh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_xh";
++    Description = "gid_Module_Optional_Accessories_Advertisement_xh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Zulu (zu)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_zu
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_zu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_zu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_zu";
++    Description = "gid_Module_Optional_Accessories_Advertisement_zu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Afrikaans (af)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_af
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AF);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_af
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_af;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_af";
++    Description = "gid_Module_Optional_Accessories_Advertisement_af";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sw
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sw";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw-TZ)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sw_TZ
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SW_TZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sw_TZ
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sw_TZ;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sw_TZ";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sw_TZ";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lao (lo)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_lo
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "3900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_lo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_lo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_lo";
++    Description = "gid_Module_Optional_Accessories_Advertisement_lo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Northern Sotho (ns)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ns
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ns
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ns;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ns";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ns";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (bn)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_bn
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_bn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_bn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_bn";
++    Description = "gid_Module_Optional_Accessories_Advertisement_bn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (Bangladesh) (bn-BD)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_bn_BD
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN_BD);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_bn_BD
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_bn_BD;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_bn_BD";
++    Description = "gid_Module_Optional_Accessories_Advertisement_bn_BD";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (India) (bn-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_bn_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_bn_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_bn_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_bn_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_bn_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_or
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_OR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_or
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_or;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_or";
++    Description = "gid_Module_Optional_Accessories_Advertisement_or";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_or_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_OR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_or_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_or_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_or_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_or_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_mr
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_mr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_mr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_mr";
++    Description = "gid_Module_Optional_Accessories_Advertisement_mr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_mr_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_mr_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_mr_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_mr_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_mr_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Nepali (ne)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ne
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ne
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ne;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ne";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ne";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ar
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "4900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ar
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ar;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ar";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ar";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar-SA)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ar_SA
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AR_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ar_SA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ar_SA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ar_SA";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ar_SA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Catalan (ca)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ca
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ca
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ca;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ca";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ca";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Danish (da)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_da
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_da
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_da;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_da";
++    Description = "gid_Module_Optional_Accessories_Advertisement_da";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Finnish (fi)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_fi
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_fi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_fi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_fi";
++    Description = "gid_Module_Optional_Accessories_Advertisement_fi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hebrew (he)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_he
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_he
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_he;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_he";
++    Description = "gid_Module_Optional_Accessories_Advertisement_he";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Icelandic (is)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_is
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_IS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_is
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_is;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_is";
++    Description = "gid_Module_Optional_Accessories_Advertisement_is";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Bokmal)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_nb
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_nb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_nb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_nb";
++    Description = "gid_Module_Optional_Accessories_Advertisement_nb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Nynorsk)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_nn
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_nn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_nn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_nn";
++    Description = "gid_Module_Optional_Accessories_Advertisement_nn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Raeto-Romance (rm)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_rm
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_rm
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_rm;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_rm";
++    Description = "gid_Module_Optional_Accessories_Advertisement_rm";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Romanian
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ro
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "5900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ro
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ro;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ro";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ro";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Albanian (sq)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sq
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SQ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sq
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sq;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sq";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sq";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ur
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ur
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ur;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ur";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ur";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Indonesian (id)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_id
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ID);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_id
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_id;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_id";
++    Description = "gid_Module_Optional_Accessories_Advertisement_id";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ukrainian (uk)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_uk
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_uk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_uk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_uk";
++    Description = "gid_Module_Optional_Accessories_Advertisement_uk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Belarusian (be-BY)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_be_BY
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BE_BY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_be_BY
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_be_BY;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_be_BY";
++    Description = "gid_Module_Optional_Accessories_Advertisement_be_BY";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovenian (sl)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sl
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sl";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Latvian (lv)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_lv
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_lv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_lv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_lv";
++    Description = "gid_Module_Optional_Accessories_Advertisement_lv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lithuanian (lt)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_lt
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_lt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_lt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_lt";
++    Description = "gid_Module_Optional_Accessories_Advertisement_lt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Armenian (hy)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_hy
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_hy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_hy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_hy";
++    Description = "gid_Module_Optional_Accessories_Advertisement_hy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Basque (eu)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_eu
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "6900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_eu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_eu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_eu";
++    Description = "gid_Module_Optional_Accessories_Advertisement_eu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Macedonian (mk)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_mk
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_mk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_mk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_mk";
++    Description = "gid_Module_Optional_Accessories_Advertisement_mk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Maltese (mt)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_mt
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_mt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_mt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_mt";
++    Description = "gid_Module_Optional_Accessories_Advertisement_mt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Welsh (cy)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_cy
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_cy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_cy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_cy";
++    Description = "gid_Module_Optional_Accessories_Advertisement_cy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Galician (gl)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_gl
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_gl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_gl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_gl";
++    Description = "gid_Module_Optional_Accessories_Advertisement_gl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Latin) (sh)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sh
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SH_YU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sh";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Irish (ga)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ga
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ga
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ga;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ga";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ga";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Cyrillic) (sr)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sr
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SR_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sr";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bosnian (bs)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_bs
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_bs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_bs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_bs";
++    Description = "gid_Module_Optional_Accessories_Advertisement_bs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Assamese (as-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_as_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AS_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_as_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_as_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_as_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_as_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kinyarwanda (rw)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_rw
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "7900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_rw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_rw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_rw";
++    Description = "gid_Module_Optional_Accessories_Advertisement_rw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sanskrit (sa)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sa
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sa";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Farsi (fa)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_fa
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_fa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_fa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_fa";
++    Description = "gid_Module_Optional_Accessories_Advertisement_fa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Faroese (fo)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_fo
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_fo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_fo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_fo";
++    Description = "gid_Module_Optional_Accessories_Advertisement_fo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sorbian (sb)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_sb
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_sb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_sb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_sb";
++    Description = "gid_Module_Optional_Accessories_Advertisement_sb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tatar (tt)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_tt
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_tt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_tt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_tt";
++    Description = "gid_Module_Optional_Accessories_Advertisement_tt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tsonga (ts)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ts
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ts
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ts;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ts";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ts";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Yiddish (yi)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_yi
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_YI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_yi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_yi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_yi";
++    Description = "gid_Module_Optional_Accessories_Advertisement_yi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Breton (br)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_br
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_br
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_br;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_br";
++    Description = "gid_Module_Optional_Accessories_Advertisement_br";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ndebele South (nr)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_nr
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_nr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_nr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_nr";
++    Description = "gid_Module_Optional_Accessories_Advertisement_nr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swazi (ss)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ss
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "8900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ss
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ss;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ss";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ss";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Venda (ve)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ve
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_VE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ve
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ve;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ve";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ve";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kannada (kn)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_kn
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_kn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_kn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_kn";
++    Description = "gid_Module_Optional_Accessories_Advertisement_kn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malay (Malaysian) (ms)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ms
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ms
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ms;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ms";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ms";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tajik (tg)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_tg
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_tg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_tg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_tg";
++    Description = "gid_Module_Optional_Accessories_Advertisement_tg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kurdish (ku)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ku
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ku
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ku;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ku";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ku";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dzongkha (dz)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_dz
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_dz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_dz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_dz";
++    Description = "gid_Module_Optional_Accessories_Advertisement_dz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Georgian (ka)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ka
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ka
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ka;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ka";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ka";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Esperanto (eo)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_eo
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_eo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_eo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_eo";
++    Description = "gid_Module_Optional_Accessories_Advertisement_eo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati (gu)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_gu
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_gu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_gu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_gu";
++    Description = "gid_Module_Optional_Accessories_Advertisement_gu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English South Africa (en-ZA)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_en_ZA
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "9900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_ZA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_en_ZA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_en_ZA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_en_ZA";
++    Description = "gid_Module_Optional_Accessories_Advertisement_en_ZA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English United Kingdom (en-GB)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_en_GB
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "10000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_GB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_en_GB
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_en_GB;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_en_GB";
++    Description = "gid_Module_Optional_Accessories_Advertisement_en_GB";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ur_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "10100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ur_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ur_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ur_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ur_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malayalam (ml-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ml_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "10200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ML_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ml_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ml_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ml_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ml_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Telugu (te-IN)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_te_IN
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "10300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TE_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_te_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_te_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_te_IN";
++    Description = "gid_Module_Optional_Accessories_Advertisement_te_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tigrinya (ti-ER)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_ti_ER
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "10400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TI_ER);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_ti_ER
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_ti_ER;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_ti_ER";
++    Description = "gid_Module_Optional_Accessories_Advertisement_ti_ER";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Uzbek (uz)
++
++Module gid_Module_Optional_Accessories_Advertisement_Base_uz
++
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Main;
++    Sortkey = "10500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Advertisement_uz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Advertisement_Base_uz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Advertisement_uz";
++    Description = "gid_Module_Optional_Accessories_Advertisement_uz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
+diff -Naur scp2/source/accessories/module_advertisement_accessories_langpack.ulf scp2/source/accessories/module_advertisement_accessories_langpack.ulf
+--- scp2/source/accessories/module_advertisement_accessories_langpack.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_advertisement_accessories_langpack.ulf	2008-03-23 15:25:54.000000000 +0100
+@@ -0,0 +1,670 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_advertisement_accessories_langpack.ulf,v $
++ *
++ *  $Revision: 1.8 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:20:41 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_US]
++en-US = "English"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_US]
++en-US = "Installs English support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DE]
++en-US = "German"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DE]
++en-US = "Installs German support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FR]
++en-US = "French"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FR]
++en-US = "Installs French support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_IT]
++en-US = "Italian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_IT]
++en-US = "Installs Italian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ES]
++en-US = "Spanish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ES]
++en-US = "Installs Spanish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SV]
++en-US = "Swedish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SV]
++en-US = "Installs Swedish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PT]
++en-US = "Portuguese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PT]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PT_BR]
++en-US = "Portuguese (Brazil)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PT_BR]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_JA]
++en-US = "Japanese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_JA]
++en-US = "Installs Japanese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KO]
++en-US = "Korean"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KO]
++en-US = "Installs Korean support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZH_CN]
++en-US = "Chinese (simplified)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZH_CN]
++en-US = "Installs Chinese (simplified) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZH_TW]
++en-US = "Chinese (traditional)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZH_TW]
++en-US = "Installs Chinese (traditional) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NL]
++en-US = "Dutch"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NL]
++en-US = "Installs Dutch support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HU]
++en-US = "Hungarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HU]
++en-US = "Installs Hungarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PL]
++en-US = "Polish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PL]
++en-US = "Installs Polish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RU]
++en-US = "Russian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RU]
++en-US = "Installs Russian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TR]
++en-US = "Turkish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TR]
++en-US = "Installs Turkish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EL]
++en-US = "Greek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EL]
++en-US = "Installs Greek support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TH]
++en-US = "Thai"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TH]
++en-US = "Installs Thai support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CS]
++en-US = "Czech"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CS]
++en-US = "Installs Czech support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SK]
++en-US = "Slovak"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SK]
++en-US = "Installs Slovak support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HR]
++en-US = "Croatian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HR]
++en-US = "Installs Croatian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ET]
++en-US = "Estonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ET]
++en-US = "Installs Estonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_VI]
++en-US = "Vietnamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_VI]
++en-US = "Installs Vietnamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BG]
++en-US = "Bulgarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BG]
++en-US = "Installs Bulgarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KM]
++en-US = "Khmer"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KM]
++en-US = "Installs Khmer support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PA_IN]
++en-US = "Punjabi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_PA_IN]
++en-US = "Installs Punjabi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GU_IN]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GU_IN]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TA]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TA]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TA_IN]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TA_IN]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HI]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HI]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HI_IN]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HI_IN]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ST]
++en-US = "Southern Sotho (Sutu)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ST]
++en-US = "Installs Southern Sotho (Sutu) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TN]
++en-US = "Tswana"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TN]
++en-US = "Installs Tswana support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_XH]
++en-US = "Xhosa"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_XH]
++en-US = "Installs Xhosa support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZU]
++en-US = "Zulu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ZU]
++en-US = "Installs Zulu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AF]
++en-US = "Afrikaans"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AF]
++en-US = "Installs Afrikaans support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SW]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SW]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SW_TZ]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SW_TZ]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LO]
++en-US = "Lao"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LO]
++en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NS]
++en-US = "Northern Sotho"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NS]
++en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN]
++en-US = "Bengali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN]
++en-US = "Installs Bengali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN_BD]
++en-US = "Bengali (Bangladesh)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN_BD]
++en-US = "Installs Bengali (Bangladesh) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN_IN]
++en-US = "Bengali (India)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BN_IN]
++en-US = "Installs Bengali (India) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_OR]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_OR]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_OR_IN]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_OR_IN]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MR]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MR]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MR_IN]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MR_IN]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NE]
++en-US = "Nepali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NE]
++en-US = "Installs Nepali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AR]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AR]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AR_SA]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AR_SA]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CA]
++en-US = "Catalan"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CA]
++en-US = "Installs Catalan support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DA]
++en-US = "Danish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DA]
++en-US = "Installs Danish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FI]
++en-US = "Finnish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FI]
++en-US = "Installs Finnish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HE]
++en-US = "Hebrew"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HE]
++en-US = "Installs Hebrew support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_IS]
++en-US = "Icelandic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_IS]
++en-US = "Installs Icelandic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NB]
++en-US = "Norwegian (Bokmal)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NB]
++en-US = "Installs Norwegian (Bokmal) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NN]
++en-US = "Norwegian (Nynorsk)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NN]
++en-US = "Installs Norwegian (Nynorsk) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RM]
++en-US = "Rhaeto-Romance"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RM]
++en-US = "Installs Rhaeto-Romance support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RO]
++en-US = "Romanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RO]
++en-US = "Installs Romanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SQ]
++en-US = "Albanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SQ]
++en-US = "Installs Albanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UR]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UR]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ID]
++en-US = "Indonesian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ID]
++en-US = "Installs Indonesian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UK]
++en-US = "Ukrainian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UK]
++en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BE_BY]
++en-US = "Belarusian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BE_BY]
++en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SL]
++en-US = "Slovenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SL]
++en-US = "Installs Slovenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LV]
++en-US = "Latvian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LV]
++en-US = "Installs Latvian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LT]
++en-US = "Lithuanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_LT]
++en-US = "Installs Lithuanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HY]
++en-US = "Armenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_HY]
++en-US = "Installs Armenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EU]
++en-US = "Basque"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EU]
++en-US = "Installs Basque support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MK]
++en-US = "Macedonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MK]
++en-US = "Installs Macedonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MT]
++en-US = "Maltese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MT]
++en-US = "Installs Maltese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CY]
++en-US = "Welsh"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_CY]
++en-US = "Installs Welsh support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GL]
++en-US = "Galician"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GL]
++en-US = "Installs Galician support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SH_YU]
++en-US = "Serbian (Latin)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SH_YU]
++en-US = "Installs Serbian (Latin) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GA]
++en-US = "Irish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GA]
++en-US = "Installs Irish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SR_CS]
++en-US = "Serbian (Cyrillic)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SR_CS]
++en-US = "Installs Serbian (Cyrillic) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BS]
++en-US = "Bosnian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BS]
++en-US = "Installs Bosnian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AS_IN]
++en-US = "Assamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_AS_IN]
++en-US = "Installs Assamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RW]
++en-US = "Kinyarwanda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_RW]
++en-US = "Installs Kinyarwanda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SA]
++en-US = "Sanskrit"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SA]
++en-US = "Installs Sanskrit support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FA]
++en-US = "Farsi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FA]
++en-US = "Installs Farsi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FO]
++en-US = "Faroese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_FO]
++en-US = "Installs Faroese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SB]
++en-US = "Sorbian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SB]
++en-US = "Installs Sorbian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TT]
++en-US = "Tatar"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TT]
++en-US = "Installs Tatar support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TS]
++en-US = "Tsonga"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TS]
++en-US = "Installs Tsonga support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_YI]
++en-US = "Yiddish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_YI]
++en-US = "Installs Yiddish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BR]
++en-US = "Breton"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_BR]
++en-US = "Installs Breton support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NR]
++en-US = "Ndebele South"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_NR]
++en-US = "Installs Ndebele South support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SS]
++en-US = "Swazi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_SS]
++en-US = "Installs Swazi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_VE]
++en-US = "Venda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_VE]
++en-US = "Installs Venda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KN]
++en-US = "Kannada"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KN]
++en-US = "Installs Kannada support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MS]
++en-US = "Malay (Malaysian)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_MS]
++en-US = "Installs Malay (Malaysian) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TG]
++en-US = "Tajik"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TG]
++en-US = "Installs Tajik support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KU]
++en-US = "Kurdish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KU]
++en-US = "Installs Kurdish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DZ]
++en-US = "Dzongkha"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_DZ]
++en-US = "Installs Dzongkha support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KA]
++en-US = "Georgian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_KA]
++en-US = "Installs Georgian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EO]
++en-US = "Esperanto"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EO]
++en-US = "Installs Esperanto support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GU]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_GU]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_ZA]
++en-US = "English (South Africa)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_ZA]
++en-US = "Installs English (South Africa) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_GB]
++en-US = "English (United Kingdom)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_EN_GB]
++en-US = "Installs English (United Kingdom) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UR_IN]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UR_IN]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ML_IN]
++en-US = "Malayalam"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_ML_IN]
++en-US = "Installs Malayalam support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TE_IN]
++en-US = "Telugu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TE_IN]
++en-US = "Installs Telugu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TI_ER]
++en-US = "Tigrinya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_TI_ER]
++en-US = "Installs Tigrinya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UZ]
++en-US = "Uzbek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT_BASE_LANGPACK_UZ]
++en-US = "Installs Uzbek support in %PRODUCTNAME %PRODUCTVERSION"
+diff -Naur scp2/source/accessories/module_documentations_accessories_langpack.scp scp2/source/accessories/module_documentations_accessories_langpack.scp
+--- scp2/source/accessories/module_documentations_accessories_langpack.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_documentations_accessories_langpack.scp	2008-03-23 15:27:12.000000000 +0100
+@@ -0,0 +1,2475 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_documentations_accessories_langpack.scp,v $
++ *
++ *  $Revision: 1.7.38.1 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 13:51:27 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++// English
++
++Module gid_Module_Optional_Accessories_Documentations_Base_en_US
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_US);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_en_US
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_en_US;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_en_US";
++    Description = "gid_Module_Optional_Accessories_Documentations_en_US";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// German
++
++Module gid_Module_Optional_Accessories_Documentations_Base_de
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_de
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_de;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_de";
++    Description = "gid_Module_Optional_Accessories_Documentations_de";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// French
++
++Module gid_Module_Optional_Accessories_Documentations_Base_fr
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_fr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_fr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_fr";
++    Description = "gid_Module_Optional_Accessories_Documentations_fr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Italian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_it
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_IT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_it
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_it;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_it";
++    Description = "gid_Module_Optional_Accessories_Documentations_it";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Spanish
++
++Module gid_Module_Optional_Accessories_Documentations_Base_es
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ES);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_es
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_es;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_es";
++    Description = "gid_Module_Optional_Accessories_Documentations_es";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swedish
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sv
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sv";
++    Description = "gid_Module_Optional_Accessories_Documentations_sv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese
++
++Module gid_Module_Optional_Accessories_Documentations_Base_pt
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_pt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_pt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_pt";
++    Description = "gid_Module_Optional_Accessories_Documentations_pt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese (Brazilian)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_pt_BR
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PT_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_pt_BR
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_pt_BR;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_pt_BR";
++    Description = "gid_Module_Optional_Accessories_Documentations_pt_BR";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Japanese
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ja
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_JA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ja
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ja;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ja";
++    Description = "gid_Module_Optional_Accessories_Documentations_ja";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Korean
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ko
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ko
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ko;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ko";
++    Description = "gid_Module_Optional_Accessories_Documentations_ko";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (simplified)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_zh_CN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZH_CN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_zh_CN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_zh_CN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_zh_CN";
++    Description = "gid_Module_Optional_Accessories_Documentations_zh_CN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (traditional)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_zh_TW
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZH_TW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_zh_TW
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_zh_TW;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_zh_TW";
++    Description = "gid_Module_Optional_Accessories_Documentations_zh_TW";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dutch
++
++Module gid_Module_Optional_Accessories_Documentations_Base_nl
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_nl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_nl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_nl";
++    Description = "gid_Module_Optional_Accessories_Documentations_nl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hungarian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_hu
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_hu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_hu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_hu";
++    Description = "gid_Module_Optional_Accessories_Documentations_hu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Polish
++
++Module gid_Module_Optional_Accessories_Documentations_Base_pl
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_pl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_pl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_pl";
++    Description = "gid_Module_Optional_Accessories_Documentations_pl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Russian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ru
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ru
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ru;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ru";
++    Description = "gid_Module_Optional_Accessories_Documentations_ru";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Turkish
++
++Module gid_Module_Optional_Accessories_Documentations_Base_tr
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_tr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_tr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_tr";
++    Description = "gid_Module_Optional_Accessories_Documentations_tr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Greek
++
++Module gid_Module_Optional_Accessories_Documentations_Base_el
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_el
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_el;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_el";
++    Description = "gid_Module_Optional_Accessories_Documentations_el";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Thai
++
++Module gid_Module_Optional_Accessories_Documentations_Base_th
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_th
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_th;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_th";
++    Description = "gid_Module_Optional_Accessories_Documentations_th";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Czech
++
++Module gid_Module_Optional_Accessories_Documentations_Base_cs
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "1900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_cs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_cs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_cs";
++    Description = "gid_Module_Optional_Accessories_Documentations_cs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovak
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sk
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sk";
++    Description = "gid_Module_Optional_Accessories_Documentations_sk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Croatian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_hr
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_hr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_hr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_hr";
++    Description = "gid_Module_Optional_Accessories_Documentations_hr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Estonian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_et
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ET);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_et
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_et;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_et";
++    Description = "gid_Module_Optional_Accessories_Documentations_et";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Vietnamese
++
++Module gid_Module_Optional_Accessories_Documentations_Base_vi
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_VI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_vi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_vi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_vi";
++    Description = "gid_Module_Optional_Accessories_Documentations_vi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bulgarian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_bg
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_bg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_bg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_bg";
++    Description = "gid_Module_Optional_Accessories_Documentations_bg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Khmer
++
++Module gid_Module_Optional_Accessories_Documentations_Base_km
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_km
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_km;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_km";
++    Description = "gid_Module_Optional_Accessories_Documentations_km";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Punjabi
++
++Module gid_Module_Optional_Accessories_Documentations_Base_pa_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_pa_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_pa_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_pa_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_pa_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati
++
++Module gid_Module_Optional_Accessories_Documentations_Base_gu_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GU_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_gu_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_gu_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_gu_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_gu_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ta
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ta
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ta;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ta";
++    Description = "gid_Module_Optional_Accessories_Documentations_ta";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ta_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "2900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ta_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ta_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ta_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_ta_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_hi
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_hi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_hi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_hi";
++    Description = "gid_Module_Optional_Accessories_Documentations_hi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_hi_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HI_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_hi_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_hi_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_hi_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_hi_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Southern Sotho (st)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_st
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ST);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_st
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_st;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_st";
++    Description = "gid_Module_Optional_Accessories_Documentations_st";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tswana (tn)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_tn
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_tn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_tn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_tn";
++    Description = "gid_Module_Optional_Accessories_Documentations_tn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Xhosa (xh)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_xh
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_XH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_xh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_xh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_xh";
++    Description = "gid_Module_Optional_Accessories_Documentations_xh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Zulu (zu)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_zu
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_zu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_zu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_zu";
++    Description = "gid_Module_Optional_Accessories_Documentations_zu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Afrikaans (af)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_af
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AF);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_af
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_af;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_af";
++    Description = "gid_Module_Optional_Accessories_Documentations_af";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sw
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sw";
++    Description = "gid_Module_Optional_Accessories_Documentations_sw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw-TZ)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sw_TZ
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SW_TZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sw_TZ
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sw_TZ;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sw_TZ";
++    Description = "gid_Module_Optional_Accessories_Documentations_sw_TZ";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lao (lo)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_lo
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "3900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_lo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_lo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_lo";
++    Description = "gid_Module_Optional_Accessories_Documentations_lo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Northern Sotho (ns)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ns
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ns
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ns;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ns";
++    Description = "gid_Module_Optional_Accessories_Documentations_ns";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (bn)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_bn
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_bn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_bn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_bn";
++    Description = "gid_Module_Optional_Accessories_Documentations_bn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (Bangladesh) (bn-BD)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_bn_BD
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN_BD);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_bn_BD
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_bn_BD;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_bn_BD";
++    Description = "gid_Module_Optional_Accessories_Documentations_bn_BD";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (India) (bn-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_bn_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_bn_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_bn_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_bn_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_bn_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_or
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_OR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_or
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_or;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_or";
++    Description = "gid_Module_Optional_Accessories_Documentations_or";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_or_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_OR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_or_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_or_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_or_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_or_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_mr
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_mr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_mr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_mr";
++    Description = "gid_Module_Optional_Accessories_Documentations_mr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_mr_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_mr_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_mr_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_mr_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_mr_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Nepali (ne)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ne
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ne
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ne;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ne";
++    Description = "gid_Module_Optional_Accessories_Documentations_ne";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ar
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "4900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ar
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ar;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ar";
++    Description = "gid_Module_Optional_Accessories_Documentations_ar";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar-SA)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ar_SA
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AR_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ar_SA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ar_SA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ar_SA";
++    Description = "gid_Module_Optional_Accessories_Documentations_ar_SA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Catalan (ca)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ca
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ca
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ca;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ca";
++    Description = "gid_Module_Optional_Accessories_Documentations_ca";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Danish (da)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_da
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_da
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_da;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_da";
++    Description = "gid_Module_Optional_Accessories_Documentations_da";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Finnish (fi)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_fi
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_fi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_fi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_fi";
++    Description = "gid_Module_Optional_Accessories_Documentations_fi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hebrew (he)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_he
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_he
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_he;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_he";
++    Description = "gid_Module_Optional_Accessories_Documentations_he";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Icelandic (is)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_is
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_IS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_is
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_is;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_is";
++    Description = "gid_Module_Optional_Accessories_Documentations_is";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Bokmal)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_nb
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_nb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_nb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_nb";
++    Description = "gid_Module_Optional_Accessories_Documentations_nb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Nynorsk)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_nn
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_nn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_nn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_nn";
++    Description = "gid_Module_Optional_Accessories_Documentations_nn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Raeto-Romance (rm)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_rm
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_rm
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_rm;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_rm";
++    Description = "gid_Module_Optional_Accessories_Documentations_rm";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Romanian
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ro
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "5900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ro
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ro;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ro";
++    Description = "gid_Module_Optional_Accessories_Documentations_ro";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Albanian (sq)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sq
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SQ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sq
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sq;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sq";
++    Description = "gid_Module_Optional_Accessories_Documentations_sq";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ur
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ur
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ur;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ur";
++    Description = "gid_Module_Optional_Accessories_Documentations_ur";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Indonesian (id)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_id
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ID);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_id
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_id;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_id";
++    Description = "gid_Module_Optional_Accessories_Documentations_id";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ukrainian (uk)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_uk
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_uk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_uk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_uk";
++    Description = "gid_Module_Optional_Accessories_Documentations_uk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Belarusian (be-BY)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_be_BY
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BE_BY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_be_BY
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_be_BY;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_be_BY";
++    Description = "gid_Module_Optional_Accessories_Documentations_be_BY";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovenian (sl)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sl
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sl";
++    Description = "gid_Module_Optional_Accessories_Documentations_sl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Latvian (lv)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_lv
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_lv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_lv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_lv";
++    Description = "gid_Module_Optional_Accessories_Documentations_lv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lithuanian (lt)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_lt
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_lt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_lt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_lt";
++    Description = "gid_Module_Optional_Accessories_Documentations_lt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Armenian (hy)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_hy
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_hy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_hy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_hy";
++    Description = "gid_Module_Optional_Accessories_Documentations_hy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Basque (eu)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_eu
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "6900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_eu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_eu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_eu";
++    Description = "gid_Module_Optional_Accessories_Documentations_eu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Macedonian (mk)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_mk
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_mk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_mk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_mk";
++    Description = "gid_Module_Optional_Accessories_Documentations_mk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Maltese (mt)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_mt
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_mt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_mt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_mt";
++    Description = "gid_Module_Optional_Accessories_Documentations_mt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Welsh (cy)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_cy
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_cy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_cy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_cy";
++    Description = "gid_Module_Optional_Accessories_Documentations_cy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Galician (gl)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_gl
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_gl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_gl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_gl";
++    Description = "gid_Module_Optional_Accessories_Documentations_gl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Latin) (sh)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sh
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SH_YU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sh";
++    Description = "gid_Module_Optional_Accessories_Documentations_sh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Irish (ga)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ga
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ga
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ga;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ga";
++    Description = "gid_Module_Optional_Accessories_Documentations_ga";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Cyrillic) (sr)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sr
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SR_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sr";
++    Description = "gid_Module_Optional_Accessories_Documentations_sr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bosnian (bs)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_bs
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_bs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_bs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_bs";
++    Description = "gid_Module_Optional_Accessories_Documentations_bs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Assamese (as-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_as_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AS_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_as_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_as_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_as_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_as_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kinyarwanda (rw)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_rw
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "7900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_rw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_rw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_rw";
++    Description = "gid_Module_Optional_Accessories_Documentations_rw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sanskrit (sa)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sa
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sa";
++    Description = "gid_Module_Optional_Accessories_Documentations_sa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Farsi (fa)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_fa
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_fa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_fa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_fa";
++    Description = "gid_Module_Optional_Accessories_Documentations_fa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Faroese (fo)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_fo
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_fo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_fo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_fo";
++    Description = "gid_Module_Optional_Accessories_Documentations_fo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sorbian (sb)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_sb
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_sb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_sb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_sb";
++    Description = "gid_Module_Optional_Accessories_Documentations_sb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tatar (tt)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_tt
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_tt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_tt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_tt";
++    Description = "gid_Module_Optional_Accessories_Documentations_tt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tsonga (ts)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ts
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ts
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ts;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ts";
++    Description = "gid_Module_Optional_Accessories_Documentations_ts";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Yiddish (yi)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_yi
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_YI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_yi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_yi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_yi";
++    Description = "gid_Module_Optional_Accessories_Documentations_yi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Breton (br)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_br
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_br
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_br;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_br";
++    Description = "gid_Module_Optional_Accessories_Documentations_br";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ndebele South (nr)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_nr
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_nr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_nr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_nr";
++    Description = "gid_Module_Optional_Accessories_Documentations_nr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swazi (ss)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ss
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "8900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ss
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ss;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ss";
++    Description = "gid_Module_Optional_Accessories_Documentations_ss";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Venda (ve)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ve
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_VE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ve
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ve;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ve";
++    Description = "gid_Module_Optional_Accessories_Documentations_ve";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kannada (kn)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_kn
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_kn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_kn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_kn";
++    Description = "gid_Module_Optional_Accessories_Documentations_kn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malay (Malaysian) (ms)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ms
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ms
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ms;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ms";
++    Description = "gid_Module_Optional_Accessories_Documentations_ms";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tajik (tg)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_tg
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_tg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_tg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_tg";
++    Description = "gid_Module_Optional_Accessories_Documentations_tg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kurdish (ku)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ku
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ku
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ku;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ku";
++    Description = "gid_Module_Optional_Accessories_Documentations_ku";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dzongkha (dz)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_dz
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_dz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_dz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_dz";
++    Description = "gid_Module_Optional_Accessories_Documentations_dz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Georgian (ka)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ka
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ka
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ka;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ka";
++    Description = "gid_Module_Optional_Accessories_Documentations_ka";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Esperanto (eo)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_eo
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_eo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_eo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_eo";
++    Description = "gid_Module_Optional_Accessories_Documentations_eo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati (gu)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_gu
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_gu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_gu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_gu";
++    Description = "gid_Module_Optional_Accessories_Documentations_gu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English South Africa (en-ZA)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_en_ZA
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "9900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_ZA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_en_ZA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_en_ZA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_en_ZA";
++    Description = "gid_Module_Optional_Accessories_Documentations_en_ZA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English United Kingdom (en-GB)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_en_GB
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "10000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_GB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_en_GB
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_en_GB;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_en_GB";
++    Description = "gid_Module_Optional_Accessories_Documentations_en_GB";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ur_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "10100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ur_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ur_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ur_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_ur_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malayalam (ml-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ml_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "10200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ML_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ml_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ml_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ml_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_ml_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Telugu (te-IN)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_te_IN
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "10300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TE_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_te_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_te_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_te_IN";
++    Description = "gid_Module_Optional_Accessories_Documentations_te_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tigrinya (ti-ER)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_ti_ER
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "10400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TI_ER);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_ti_ER
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_ti_ER;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_ti_ER";
++    Description = "gid_Module_Optional_Accessories_Documentations_ti_ER";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Uzbek (uz)
++
++Module gid_Module_Optional_Accessories_Documentations_Base_uz
++
++    ParentID = gid_Module_Optional_Accessories_Documentations_Main;
++    Sortkey = "10500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Documentations_uz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Documentations_Base_uz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Documentations_uz";
++    Description = "gid_Module_Optional_Accessories_Documentations_uz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
+diff -Naur scp2/source/accessories/module_documentations_accessories_langpack.ulf scp2/source/accessories/module_documentations_accessories_langpack.ulf
+--- scp2/source/accessories/module_documentations_accessories_langpack.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_documentations_accessories_langpack.ulf	2008-03-23 15:26:27.000000000 +0100
+@@ -0,0 +1,670 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_documentations_accessories_langpack.ulf,v $
++ *
++ *  $Revision: 1.8 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:20:41 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_US]
++en-US = "English"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_US]
++en-US = "Installs English support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DE]
++en-US = "German"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DE]
++en-US = "Installs German support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FR]
++en-US = "French"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FR]
++en-US = "Installs French support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_IT]
++en-US = "Italian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_IT]
++en-US = "Installs Italian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ES]
++en-US = "Spanish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ES]
++en-US = "Installs Spanish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SV]
++en-US = "Swedish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SV]
++en-US = "Installs Swedish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PT]
++en-US = "Portuguese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PT]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PT_BR]
++en-US = "Portuguese (Brazil)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PT_BR]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_JA]
++en-US = "Japanese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_JA]
++en-US = "Installs Japanese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KO]
++en-US = "Korean"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KO]
++en-US = "Installs Korean support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZH_CN]
++en-US = "Chinese (simplified)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZH_CN]
++en-US = "Installs Chinese (simplified) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZH_TW]
++en-US = "Chinese (traditional)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZH_TW]
++en-US = "Installs Chinese (traditional) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NL]
++en-US = "Dutch"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NL]
++en-US = "Installs Dutch support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HU]
++en-US = "Hungarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HU]
++en-US = "Installs Hungarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PL]
++en-US = "Polish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PL]
++en-US = "Installs Polish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RU]
++en-US = "Russian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RU]
++en-US = "Installs Russian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TR]
++en-US = "Turkish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TR]
++en-US = "Installs Turkish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EL]
++en-US = "Greek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EL]
++en-US = "Installs Greek support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TH]
++en-US = "Thai"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TH]
++en-US = "Installs Thai support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CS]
++en-US = "Czech"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CS]
++en-US = "Installs Czech support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SK]
++en-US = "Slovak"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SK]
++en-US = "Installs Slovak support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HR]
++en-US = "Croatian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HR]
++en-US = "Installs Croatian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ET]
++en-US = "Estonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ET]
++en-US = "Installs Estonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_VI]
++en-US = "Vietnamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_VI]
++en-US = "Installs Vietnamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BG]
++en-US = "Bulgarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BG]
++en-US = "Installs Bulgarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KM]
++en-US = "Khmer"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KM]
++en-US = "Installs Khmer support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PA_IN]
++en-US = "Punjabi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_PA_IN]
++en-US = "Installs Punjabi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GU_IN]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GU_IN]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TA]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TA]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TA_IN]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TA_IN]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HI]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HI]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HI_IN]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HI_IN]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ST]
++en-US = "Southern Sotho (Sutu)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ST]
++en-US = "Installs Southern Sotho (Sutu) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TN]
++en-US = "Tswana"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TN]
++en-US = "Installs Tswana support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_XH]
++en-US = "Xhosa"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_XH]
++en-US = "Installs Xhosa support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZU]
++en-US = "Zulu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ZU]
++en-US = "Installs Zulu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AF]
++en-US = "Afrikaans"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AF]
++en-US = "Installs Afrikaans support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SW]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SW]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SW_TZ]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SW_TZ]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LO]
++en-US = "Lao"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LO]
++en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NS]
++en-US = "Northern Sotho"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NS]
++en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN]
++en-US = "Bengali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN]
++en-US = "Installs Bengali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN_BD]
++en-US = "Bengali (Bangladesh)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN_BD]
++en-US = "Installs Bengali (Bangladesh) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN_IN]
++en-US = "Bengali (India)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BN_IN]
++en-US = "Installs Bengali (India) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_OR]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_OR]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_OR_IN]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_OR_IN]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MR]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MR]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MR_IN]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MR_IN]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NE]
++en-US = "Nepali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NE]
++en-US = "Installs Nepali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AR]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AR]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AR_SA]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AR_SA]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CA]
++en-US = "Catalan"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CA]
++en-US = "Installs Catalan support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DA]
++en-US = "Danish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DA]
++en-US = "Installs Danish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FI]
++en-US = "Finnish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FI]
++en-US = "Installs Finnish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HE]
++en-US = "Hebrew"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HE]
++en-US = "Installs Hebrew support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_IS]
++en-US = "Icelandic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_IS]
++en-US = "Installs Icelandic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NB]
++en-US = "Norwegian (Bokmal)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NB]
++en-US = "Installs Norwegian (Bokmal) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NN]
++en-US = "Norwegian (Nynorsk)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NN]
++en-US = "Installs Norwegian (Nynorsk) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RM]
++en-US = "Rhaeto-Romance"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RM]
++en-US = "Installs Rhaeto-Romance support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RO]
++en-US = "Romanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RO]
++en-US = "Installs Romanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SQ]
++en-US = "Albanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SQ]
++en-US = "Installs Albanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UR]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UR]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ID]
++en-US = "Indonesian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ID]
++en-US = "Installs Indonesian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UK]
++en-US = "Ukrainian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UK]
++en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BE_BY]
++en-US = "Belarusian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BE_BY]
++en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SL]
++en-US = "Slovenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SL]
++en-US = "Installs Slovenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LV]
++en-US = "Latvian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LV]
++en-US = "Installs Latvian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LT]
++en-US = "Lithuanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_LT]
++en-US = "Installs Lithuanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HY]
++en-US = "Armenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_HY]
++en-US = "Installs Armenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EU]
++en-US = "Basque"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EU]
++en-US = "Installs Basque support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MK]
++en-US = "Macedonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MK]
++en-US = "Installs Macedonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MT]
++en-US = "Maltese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MT]
++en-US = "Installs Maltese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CY]
++en-US = "Welsh"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_CY]
++en-US = "Installs Welsh support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GL]
++en-US = "Galician"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GL]
++en-US = "Installs Galician support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SH_YU]
++en-US = "Serbian (Latin)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SH_YU]
++en-US = "Installs Serbian (Latin) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GA]
++en-US = "Irish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GA]
++en-US = "Installs Irish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SR_CS]
++en-US = "Serbian (Cyrillic)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SR_CS]
++en-US = "Installs Serbian (Cyrillic) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BS]
++en-US = "Bosnian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BS]
++en-US = "Installs Bosnian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AS_IN]
++en-US = "Assamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_AS_IN]
++en-US = "Installs Assamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RW]
++en-US = "Kinyarwanda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_RW]
++en-US = "Installs Kinyarwanda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SA]
++en-US = "Sanskrit"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SA]
++en-US = "Installs Sanskrit support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FA]
++en-US = "Farsi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FA]
++en-US = "Installs Farsi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FO]
++en-US = "Faroese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_FO]
++en-US = "Installs Faroese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SB]
++en-US = "Sorbian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SB]
++en-US = "Installs Sorbian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TT]
++en-US = "Tatar"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TT]
++en-US = "Installs Tatar support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TS]
++en-US = "Tsonga"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TS]
++en-US = "Installs Tsonga support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_YI]
++en-US = "Yiddish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_YI]
++en-US = "Installs Yiddish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BR]
++en-US = "Breton"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_BR]
++en-US = "Installs Breton support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NR]
++en-US = "Ndebele South"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_NR]
++en-US = "Installs Ndebele South support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SS]
++en-US = "Swazi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_SS]
++en-US = "Installs Swazi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_VE]
++en-US = "Venda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_VE]
++en-US = "Installs Venda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KN]
++en-US = "Kannada"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KN]
++en-US = "Installs Kannada support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MS]
++en-US = "Malay (Malaysian)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_MS]
++en-US = "Installs Malay (Malaysian) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TG]
++en-US = "Tajik"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TG]
++en-US = "Installs Tajik support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KU]
++en-US = "Kurdish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KU]
++en-US = "Installs Kurdish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DZ]
++en-US = "Dzongkha"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_DZ]
++en-US = "Installs Dzongkha support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KA]
++en-US = "Georgian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_KA]
++en-US = "Installs Georgian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EO]
++en-US = "Esperanto"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EO]
++en-US = "Installs Esperanto support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GU]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_GU]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_ZA]
++en-US = "English (South Africa)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_ZA]
++en-US = "Installs English (South Africa) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_GB]
++en-US = "English (United Kingdom)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_EN_GB]
++en-US = "Installs English (United Kingdom) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UR_IN]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UR_IN]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ML_IN]
++en-US = "Malayalam"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_ML_IN]
++en-US = "Installs Malayalam support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TE_IN]
++en-US = "Telugu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TE_IN]
++en-US = "Installs Telugu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TI_ER]
++en-US = "Tigrinya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_TI_ER]
++en-US = "Installs Tigrinya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UZ]
++en-US = "Uzbek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS_BASE_LANGPACK_UZ]
++en-US = "Installs Uzbek support in %PRODUCTNAME %PRODUCTVERSION"
+diff -Naur scp2/source/accessories/module_font_accessories.scp scp2/source/accessories/module_font_accessories.scp
+--- scp2/source/accessories/module_font_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_font_accessories.scp	2008-03-23 10:52:28.000000000 +0100
+@@ -0,0 +1,196 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_font_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++#ifndef WITHOUT_EXTRA_FONT
++
++Module gid_Module_Optional_Accessories_Fonts
++    PackageInfo = "packinfo_office.txt";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_FONTS);
++    ParentID = gid_Module_Optional_Accessories;
++    Files = ( 
++        gid_File_Fnt_airmole,
++        gid_File_Fnt_airmolea,
++        gid_File_Fnt_airmoles,
++        gid_File_Fnt_airmoleq,
++        gid_File_Fnt_astronbo,
++        gid_File_Fnt_astronbi,
++        gid_File_Fnt_astronbv,
++        gid_File_Fnt_astronbw,
++        gid_File_Fnt_baveuse,
++        gid_File_Fnt_Berylium,
++        gid_File_Fnt_Beryliub,
++        gid_File_Fnt_Berylibi,
++        gid_File_Fnt_Beryliui,
++        gid_File_Fnt_BETSY2,
++        gid_File_Fnt_bluehigh,
++        gid_File_Fnt_bluebold,
++        gid_File_Fnt_bluecond,
++        gid_File_Fnt_bluehigl,
++        gid_File_Fnt_bullpen_,
++        gid_File_Fnt_bullpen3,
++        gid_File_Fnt_bullpeni,
++        gid_File_Fnt_colourba,
++        gid_File_Fnt_colourbb,
++        gid_File_Fnt_counters,
++        gid_File_Fnt_creditva,
++        gid_File_Fnt_creditvb,
++        gid_File_Fnt_creditvz,
++        gid_File_Fnt_creditvi,
++        gid_File_Fnt_edmunds,
++        gid_File_Fnt_edmundis,
++        gid_File_Fnt_engeregu,
++        gid_File_Fnt_engebold,
++        gid_File_Fnt_engeboit,
++        gid_File_Fnt_engeexpa,
++        gid_File_Fnt_engeexbo,
++        gid_File_Fnt_engeexbi,
++        gid_File_Fnt_engeexit,
++        gid_File_Fnt_engeital,
++        gid_File_Fnt_goodfish,
++        gid_File_Fnt_goodfisb,
++        gid_File_Fnt_goodfisc,
++        gid_File_Fnt_goodfisi,
++        gid_File_Fnt_guanine_,
++        gid_File_Fnt_gunplay,
++        gid_File_Fnt_kirsty__,
++        gid_File_Fnt_kirsty_b,
++        gid_File_Fnt_kirstybi,
++        gid_File_Fnt_kirsty_i,
++        gid_File_Fnt_kirstyin,
++        gid_File_Fnt_mufferaw,
++        gid_File_Fnt_nasaliza,
++        gid_File_Fnt_NEUROPOL,
++        gid_File_Fnt_numberpi,
++        gid_File_Fnt_pricedow,
++        gid_File_Fnt_pupcat__,
++        gid_File_Fnt_rina,
++        gid_File_Fnt_sandoval,
++        gid_File_Fnt_SAPPM___,
++        gid_File_Fnt_screenge,
++        gid_File_Fnt_steelfis,
++        gid_File_Fnt_steelfib,
++        gid_File_Fnt_steelout,
++        gid_File_Fnt_strenuou,
++        gid_File_Fnt_strenu3d,
++        gid_File_Fnt_subpear_,
++        gid_File_Fnt_teen____,
++        gid_File_Fnt_teenbold,
++        gid_File_Fnt_teenbdit,
++        gid_File_Fnt_teenital,
++        gid_File_Fnt_teenlite,
++        gid_File_Fnt_teenlita,
++        gid_File_Fnt_typoderm,
++        gid_File_Fnt_vahika_,
++        gid_File_Fnt_vahikab,
++        gid_File_Fnt_vahikac,
++        gid_File_Fnt_vahikai,
++        gid_File_Fnt_vectroid,
++        gid_File_Fnt_velvendc,
++        gid_File_Fnt_velvenda,
++        gid_File_Fnt_vibrocen,
++        gid_File_Fnt_vibroceb,
++        gid_File_Fnt_vibrocex,
++        gid_File_Fnt_vibrocei,
++        gid_File_Fnt_wintermu,
++        gid_File_Fnt_youregon,
++        gid_File_Fnt_youregoi,
++        gid_File_Fnt_zekton__,
++        gid_File_Fnt_zektonbo,
++        gid_File_Fnt_zektonbi,
++        gid_File_Fnt_zektonit,
++        gid_File_Fnt_zorque,
++        gid_File_Fnt_-URW-Gothic_L_Avantgarde,
++        gid_File_Fnt_-URW-Gothic_L_Bold_Avantgarde,
++        gid_File_Fnt_-URW-Gothic_L_Italic_Avantgarde,
++        gid_File_Fnt_-URW-Gothic_L_Bold_Italic_Avantgarde,
++        gid_File_Fnt_-URW-Bookman_L_Bookman,
++        gid_File_Fnt_-URW-Bookman_L_Bold_Bookman,
++        gid_File_Fnt_-URW-Bookman_L_Italic_Bookman,
++        gid_File_Fnt_-URW-Bookman_L_Bold_Italic_Bookman,
++        gid_File_Fnt_-URW-Century_Schoolbook_L_New_Century_SchoolBook,
++        gid_File_Fnt_-URW-Century_Schoolbook_L_Bold_New_Century_SchoolBook,
++        gid_File_Fnt_-URW-Century_Schoolbook_L_Italic_New_Century_SchoolBook,
++        gid_File_Fnt_-URW-Century_Schoolbook_L_Bold_Italic_New_Century_SchoolBook,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Helvetica,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Helvetica,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Italic_Helvetica,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Italic_Helvetica,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Helvetica_Condensed,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Helvetica_Condensed,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Italic_Helvetica_Condensed,
++        gid_File_Fnt_-URW-Nimbus_Sans_L_Bold_Italic_Helvetica_Condensed,
++        gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Times,
++        gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Bold_Times,
++        gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Italic_Times,
++        gid_File_Fnt_-URW-Nimbus_Roman_No9_L_Bold_Italic_Times,
++        gid_File_Fnt_-URW-Nimbus_Mono_L_Courier,
++        gid_File_Fnt_-URW-Nimbus_Mono_L_Bold_Courier,
++        gid_File_Fnt_-URW-Nimbus_Mono_LK_Italic_Courier,
++        gid_File_Fnt_-URW-Nimbus_Mono_L_Bold_Italic_Courier,
++        gid_File_Fnt_-URW-Palladio_L_Palitino,
++        gid_File_Fnt_-URW-Palladio_L_Bold_Palitino,
++        gid_File_Fnt_-URW-Palladio_L_Italic_Palitino,
++        gid_File_Fnt_-URW-Palladio_L_Bold_Italic_Palitino,
++        gid_File_Fnt_-URW-Standard_Symbols_L_Symbol,
++        gid_File_Fnt_-URW-Chancery_L_Zapf_Chancery,
++        gid_File_Fnt_Dingbats,
++        gid_File_Fnt_Luxi_Mono_Bold,
++        gid_File_Fnt_Luxi_Mono_Bold_Oblique,
++        gid_File_Fnt_Luxi_Mono_Regular,
++        gid_File_Fnt_Luxi_Mono_Oblique,
++        gid_File_Fnt_Luxi_Serif_Bold,
++        gid_File_Fnt_Luxi_Serif_Bold_Oblique,
++        gid_File_Fnt_Luxi_Serif_Regular,
++        gid_File_Fnt_Luxi_Serif_Oblique,
++        gid_File_Fnt_Luxi_Sans_Bold,
++        gid_File_Fnt_Luxi_Sans_Bold_Oblique,
++        gid_File_Fnt_Luxi_Sans_Regular,
++        gid_File_Fnt_Luxi_Sans_Oblique,
++        gid_File_Fnt_Gentium,
++        gid_File_Fnt_Gentium_Italic,
++        gid_File_Fnt_GentiumAlt,
++        gid_File_Fnt_GentiumAlt_Italic,
++        gid_File_Fnt_MgOpen_Canonica_Bold,
++        gid_File_Fnt_MgOpen_Canonica_Bold_Italic,
++        gid_File_Fnt_MgOpen_Canonica_Italic,
++        gid_File_Fnt_MgOpen_Canonica_Regular );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++#endif
+diff -Naur scp2/source/accessories/module_font_accessories.ulf scp2/source/accessories/module_font_accessories.ulf
+--- scp2/source/accessories/module_font_accessories.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_font_accessories.ulf	2008-03-22 15:19:39.000000000 +0100
+@@ -0,0 +1,40 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_font_accessories.ulf,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_FONTS]
++en-US = "Fonts"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_FONTS]
++en-US = "Additional fonts for %PRODUCTNAME and other applications."
+diff -Naur scp2/source/accessories/module_gallery_accessories.scp scp2/source/accessories/module_gallery_accessories.scp
+--- scp2/source/accessories/module_gallery_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_gallery_accessories.scp	2008-03-23 10:53:49.000000000 +0100
+@@ -0,0 +1,67 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_gallery_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++#ifndef WITHOUT_EXTRA_GALLERY
++
++Module gid_Module_Optional_Accessories_Gallery
++    PackageInfo = "packinfo_office.txt";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_GALLERY);
++    ParentID = gid_Module_Optional_Accessories;
++    Files = (
++        gid_File_Extra_Gallery_KAMI,
++        gid_File_Extra_Gallery_Draws_People_KAMI,
++        gid_File_Extra_Gallery_Photos_Plants_KAMI,
++        gid_File_Extra_Gallery_Photos_Celebration_KAMI,
++        gid_File_Extra_Gallery_Photos_Fauna_KAMI,
++        gid_File_Extra_Gallery_Photos_Flowers_KAMI,
++        gid_File_Extra_Gallery_Photos_FoodsandDrinks_KAMI,
++        gid_File_Extra_Gallery_Photos_Humans_KAMI,
++        gid_File_Extra_Gallery_Photos_Landscapes_KAMI,
++        gid_File_Extra_Gallery_Photos_Objects_KAMI,
++        gid_File_Extra_Gallery_Photos_Buildings_KAMI,
++        gid_File_Extra_Gallery_Photos_Cities_KAMI,
++        gid_File_Extra_Gallery_Photos_Space_KAMI,
++        gid_File_Extra_Gallery_Photos_Statues_KAMI
++        gid_File_Extra_Gallery_Photos_Travel_KAMI,
++        gid_File_Extra_Gallery_Elements_Bullets2_KAMI,
++        gid_File_Extra_Gallery_NONFREE_KAMI );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++#endif
+diff -Naur scp2/source/accessories/module_gallery_accessories.ulf scp2/source/accessories/module_gallery_accessories.ulf
+--- scp2/source/accessories/module_gallery_accessories.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_gallery_accessories.ulf	2008-03-22 15:19:58.000000000 +0100
+@@ -0,0 +1,40 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_gallery_accessories.ulf,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_GALLERY]
++en-US = "Additional Gallery Themes"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_GALLERY]
++en-US = "The %PRODUCTNAME Gallery contains more than 2900 elements in various themes."
+diff -Naur scp2/source/accessories/module_samples_accessories_langpack.scp scp2/source/accessories/module_samples_accessories_langpack.scp
+--- scp2/source/accessories/module_samples_accessories_langpack.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_samples_accessories_langpack.scp	2008-03-23 14:33:16.000000000 +0100
+@@ -0,0 +1,2475 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_samples_accessories_langpack.scp,v $
++ *
++ *  $Revision: 1.7.38.1 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 13:51:27 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++// English
++
++Module gid_Module_Optional_Accessories_Samples_Base_en_US
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_US);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_en_US
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_en_US;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_en_US";
++    Description = "gid_Module_Optional_Accessories_Samples_en_US";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// German
++
++Module gid_Module_Optional_Accessories_Samples_Base_de
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_de
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_de;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_de";
++    Description = "gid_Module_Optional_Accessories_Samples_de";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// French
++
++Module gid_Module_Optional_Accessories_Samples_Base_fr
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_fr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_fr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_fr";
++    Description = "gid_Module_Optional_Accessories_Samples_fr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Italian
++
++Module gid_Module_Optional_Accessories_Samples_Base_it
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_IT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_it
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_it;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_it";
++    Description = "gid_Module_Optional_Accessories_Samples_it";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Spanish
++
++Module gid_Module_Optional_Accessories_Samples_Base_es
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ES);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_es
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_es;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_es";
++    Description = "gid_Module_Optional_Accessories_Samples_es";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swedish
++
++Module gid_Module_Optional_Accessories_Samples_Base_sv
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sv";
++    Description = "gid_Module_Optional_Accessories_Samples_sv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese
++
++Module gid_Module_Optional_Accessories_Samples_Base_pt
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_pt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_pt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_pt";
++    Description = "gid_Module_Optional_Accessories_Samples_pt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese (Brazilian)
++
++Module gid_Module_Optional_Accessories_Samples_Base_pt_BR
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PT_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_pt_BR
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_pt_BR;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_pt_BR";
++    Description = "gid_Module_Optional_Accessories_Samples_pt_BR";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Japanese
++
++Module gid_Module_Optional_Accessories_Samples_Base_ja
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_JA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ja
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ja;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ja";
++    Description = "gid_Module_Optional_Accessories_Samples_ja";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Korean
++
++Module gid_Module_Optional_Accessories_Samples_Base_ko
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ko
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ko;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ko";
++    Description = "gid_Module_Optional_Accessories_Samples_ko";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (simplified)
++
++Module gid_Module_Optional_Accessories_Samples_Base_zh_CN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZH_CN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_zh_CN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_zh_CN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_zh_CN";
++    Description = "gid_Module_Optional_Accessories_Samples_zh_CN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (traditional)
++
++Module gid_Module_Optional_Accessories_Samples_Base_zh_TW
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZH_TW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_zh_TW
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_zh_TW;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_zh_TW";
++    Description = "gid_Module_Optional_Accessories_Samples_zh_TW";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dutch
++
++Module gid_Module_Optional_Accessories_Samples_Base_nl
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_nl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_nl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_nl";
++    Description = "gid_Module_Optional_Accessories_Samples_nl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hungarian
++
++Module gid_Module_Optional_Accessories_Samples_Base_hu
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_hu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_hu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_hu";
++    Description = "gid_Module_Optional_Accessories_Samples_hu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Polish
++
++Module gid_Module_Optional_Accessories_Samples_Base_pl
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_pl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_pl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_pl";
++    Description = "gid_Module_Optional_Accessories_Samples_pl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Russian
++
++Module gid_Module_Optional_Accessories_Samples_Base_ru
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ru
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ru;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ru";
++    Description = "gid_Module_Optional_Accessories_Samples_ru";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Turkish
++
++Module gid_Module_Optional_Accessories_Samples_Base_tr
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_tr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_tr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_tr";
++    Description = "gid_Module_Optional_Accessories_Samples_tr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Greek
++
++Module gid_Module_Optional_Accessories_Samples_Base_el
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_el
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_el;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_el";
++    Description = "gid_Module_Optional_Accessories_Samples_el";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Thai
++
++Module gid_Module_Optional_Accessories_Samples_Base_th
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_th
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_th;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_th";
++    Description = "gid_Module_Optional_Accessories_Samples_th";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Czech
++
++Module gid_Module_Optional_Accessories_Samples_Base_cs
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "1900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_cs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_cs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_cs";
++    Description = "gid_Module_Optional_Accessories_Samples_cs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovak
++
++Module gid_Module_Optional_Accessories_Samples_Base_sk
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sk";
++    Description = "gid_Module_Optional_Accessories_Samples_sk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Croatian
++
++Module gid_Module_Optional_Accessories_Samples_Base_hr
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_hr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_hr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_hr";
++    Description = "gid_Module_Optional_Accessories_Samples_hr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Estonian
++
++Module gid_Module_Optional_Accessories_Samples_Base_et
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ET);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_et
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_et;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_et";
++    Description = "gid_Module_Optional_Accessories_Samples_et";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Vietnamese
++
++Module gid_Module_Optional_Accessories_Samples_Base_vi
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_VI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_vi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_vi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_vi";
++    Description = "gid_Module_Optional_Accessories_Samples_vi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bulgarian
++
++Module gid_Module_Optional_Accessories_Samples_Base_bg
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_bg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_bg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_bg";
++    Description = "gid_Module_Optional_Accessories_Samples_bg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Khmer
++
++Module gid_Module_Optional_Accessories_Samples_Base_km
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_km
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_km;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_km";
++    Description = "gid_Module_Optional_Accessories_Samples_km";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Punjabi
++
++Module gid_Module_Optional_Accessories_Samples_Base_pa_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_pa_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_pa_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_pa_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_pa_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati
++
++Module gid_Module_Optional_Accessories_Samples_Base_gu_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GU_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_gu_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_gu_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_gu_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_gu_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ta
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ta
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ta;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ta";
++    Description = "gid_Module_Optional_Accessories_Samples_ta";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ta_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "2900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ta_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ta_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ta_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_ta_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi)
++
++Module gid_Module_Optional_Accessories_Samples_Base_hi
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_hi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_hi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_hi";
++    Description = "gid_Module_Optional_Accessories_Samples_hi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_hi_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HI_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_hi_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_hi_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_hi_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_hi_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Southern Sotho (st)
++
++Module gid_Module_Optional_Accessories_Samples_Base_st
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ST);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_st
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_st;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_st";
++    Description = "gid_Module_Optional_Accessories_Samples_st";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tswana (tn)
++
++Module gid_Module_Optional_Accessories_Samples_Base_tn
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_tn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_tn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_tn";
++    Description = "gid_Module_Optional_Accessories_Samples_tn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Xhosa (xh)
++
++Module gid_Module_Optional_Accessories_Samples_Base_xh
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_XH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_xh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_xh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_xh";
++    Description = "gid_Module_Optional_Accessories_Samples_xh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Zulu (zu)
++
++Module gid_Module_Optional_Accessories_Samples_Base_zu
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_zu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_zu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_zu";
++    Description = "gid_Module_Optional_Accessories_Samples_zu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Afrikaans (af)
++
++Module gid_Module_Optional_Accessories_Samples_Base_af
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AF);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_af
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_af;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_af";
++    Description = "gid_Module_Optional_Accessories_Samples_af";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sw
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sw";
++    Description = "gid_Module_Optional_Accessories_Samples_sw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw-TZ)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sw_TZ
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SW_TZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sw_TZ
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sw_TZ;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sw_TZ";
++    Description = "gid_Module_Optional_Accessories_Samples_sw_TZ";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lao (lo)
++
++Module gid_Module_Optional_Accessories_Samples_Base_lo
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "3900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_lo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_lo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_lo";
++    Description = "gid_Module_Optional_Accessories_Samples_lo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Northern Sotho (ns)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ns
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ns
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ns;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ns";
++    Description = "gid_Module_Optional_Accessories_Samples_ns";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (bn)
++
++Module gid_Module_Optional_Accessories_Samples_Base_bn
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_bn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_bn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_bn";
++    Description = "gid_Module_Optional_Accessories_Samples_bn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (Bangladesh) (bn-BD)
++
++Module gid_Module_Optional_Accessories_Samples_Base_bn_BD
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN_BD);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_bn_BD
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_bn_BD;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_bn_BD";
++    Description = "gid_Module_Optional_Accessories_Samples_bn_BD";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (India) (bn-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_bn_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_bn_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_bn_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_bn_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_bn_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or)
++
++Module gid_Module_Optional_Accessories_Samples_Base_or
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_OR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_or
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_or;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_or";
++    Description = "gid_Module_Optional_Accessories_Samples_or";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_or_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_OR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_or_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_or_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_or_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_or_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr)
++
++Module gid_Module_Optional_Accessories_Samples_Base_mr
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_mr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_mr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_mr";
++    Description = "gid_Module_Optional_Accessories_Samples_mr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_mr_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_mr_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_mr_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_mr_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_mr_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Nepali (ne)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ne
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ne
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ne;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ne";
++    Description = "gid_Module_Optional_Accessories_Samples_ne";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ar
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "4900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ar
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ar;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ar";
++    Description = "gid_Module_Optional_Accessories_Samples_ar";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar-SA)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ar_SA
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AR_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ar_SA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ar_SA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ar_SA";
++    Description = "gid_Module_Optional_Accessories_Samples_ar_SA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Catalan (ca)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ca
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ca
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ca;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ca";
++    Description = "gid_Module_Optional_Accessories_Samples_ca";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Danish (da)
++
++Module gid_Module_Optional_Accessories_Samples_Base_da
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_da
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_da;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_da";
++    Description = "gid_Module_Optional_Accessories_Samples_da";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Finnish (fi)
++
++Module gid_Module_Optional_Accessories_Samples_Base_fi
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_fi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_fi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_fi";
++    Description = "gid_Module_Optional_Accessories_Samples_fi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hebrew (he)
++
++Module gid_Module_Optional_Accessories_Samples_Base_he
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_he
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_he;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_he";
++    Description = "gid_Module_Optional_Accessories_Samples_he";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Icelandic (is)
++
++Module gid_Module_Optional_Accessories_Samples_Base_is
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_IS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_is
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_is;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_is";
++    Description = "gid_Module_Optional_Accessories_Samples_is";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Bokmal)
++
++Module gid_Module_Optional_Accessories_Samples_Base_nb
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_nb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_nb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_nb";
++    Description = "gid_Module_Optional_Accessories_Samples_nb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Nynorsk)
++
++Module gid_Module_Optional_Accessories_Samples_Base_nn
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_nn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_nn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_nn";
++    Description = "gid_Module_Optional_Accessories_Samples_nn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Raeto-Romance (rm)
++
++Module gid_Module_Optional_Accessories_Samples_Base_rm
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_rm
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_rm;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_rm";
++    Description = "gid_Module_Optional_Accessories_Samples_rm";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Romanian
++
++Module gid_Module_Optional_Accessories_Samples_Base_ro
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "5900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ro
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ro;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ro";
++    Description = "gid_Module_Optional_Accessories_Samples_ro";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Albanian (sq)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sq
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SQ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sq
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sq;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sq";
++    Description = "gid_Module_Optional_Accessories_Samples_sq";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ur
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ur
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ur;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ur";
++    Description = "gid_Module_Optional_Accessories_Samples_ur";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Indonesian (id)
++
++Module gid_Module_Optional_Accessories_Samples_Base_id
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ID);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_id
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_id;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_id";
++    Description = "gid_Module_Optional_Accessories_Samples_id";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ukrainian (uk)
++
++Module gid_Module_Optional_Accessories_Samples_Base_uk
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_uk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_uk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_uk";
++    Description = "gid_Module_Optional_Accessories_Samples_uk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Belarusian (be-BY)
++
++Module gid_Module_Optional_Accessories_Samples_Base_be_BY
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BE_BY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_be_BY
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_be_BY;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_be_BY";
++    Description = "gid_Module_Optional_Accessories_Samples_be_BY";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovenian (sl)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sl
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sl";
++    Description = "gid_Module_Optional_Accessories_Samples_sl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Latvian (lv)
++
++Module gid_Module_Optional_Accessories_Samples_Base_lv
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_lv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_lv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_lv";
++    Description = "gid_Module_Optional_Accessories_Samples_lv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lithuanian (lt)
++
++Module gid_Module_Optional_Accessories_Samples_Base_lt
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_lt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_lt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_lt";
++    Description = "gid_Module_Optional_Accessories_Samples_lt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Armenian (hy)
++
++Module gid_Module_Optional_Accessories_Samples_Base_hy
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_hy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_hy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_hy";
++    Description = "gid_Module_Optional_Accessories_Samples_hy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Basque (eu)
++
++Module gid_Module_Optional_Accessories_Samples_Base_eu
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "6900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_eu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_eu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_eu";
++    Description = "gid_Module_Optional_Accessories_Samples_eu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Macedonian (mk)
++
++Module gid_Module_Optional_Accessories_Samples_Base_mk
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_mk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_mk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_mk";
++    Description = "gid_Module_Optional_Accessories_Samples_mk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Maltese (mt)
++
++Module gid_Module_Optional_Accessories_Samples_Base_mt
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_mt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_mt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_mt";
++    Description = "gid_Module_Optional_Accessories_Samples_mt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Welsh (cy)
++
++Module gid_Module_Optional_Accessories_Samples_Base_cy
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_cy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_cy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_cy";
++    Description = "gid_Module_Optional_Accessories_Samples_cy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Galician (gl)
++
++Module gid_Module_Optional_Accessories_Samples_Base_gl
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_gl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_gl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_gl";
++    Description = "gid_Module_Optional_Accessories_Samples_gl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Latin) (sh)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sh
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SH_YU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sh";
++    Description = "gid_Module_Optional_Accessories_Samples_sh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Irish (ga)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ga
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ga
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ga;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ga";
++    Description = "gid_Module_Optional_Accessories_Samples_ga";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Cyrillic) (sr)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sr
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SR_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sr";
++    Description = "gid_Module_Optional_Accessories_Samples_sr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bosnian (bs)
++
++Module gid_Module_Optional_Accessories_Samples_Base_bs
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_bs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_bs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_bs";
++    Description = "gid_Module_Optional_Accessories_Samples_bs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Assamese (as-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_as_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AS_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_as_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_as_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_as_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_as_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kinyarwanda (rw)
++
++Module gid_Module_Optional_Accessories_Samples_Base_rw
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "7900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_rw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_rw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_rw";
++    Description = "gid_Module_Optional_Accessories_Samples_rw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sanskrit (sa)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sa
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sa";
++    Description = "gid_Module_Optional_Accessories_Samples_sa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Farsi (fa)
++
++Module gid_Module_Optional_Accessories_Samples_Base_fa
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_fa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_fa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_fa";
++    Description = "gid_Module_Optional_Accessories_Samples_fa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Faroese (fo)
++
++Module gid_Module_Optional_Accessories_Samples_Base_fo
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_fo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_fo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_fo";
++    Description = "gid_Module_Optional_Accessories_Samples_fo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sorbian (sb)
++
++Module gid_Module_Optional_Accessories_Samples_Base_sb
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_sb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_sb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_sb";
++    Description = "gid_Module_Optional_Accessories_Samples_sb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tatar (tt)
++
++Module gid_Module_Optional_Accessories_Samples_Base_tt
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_tt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_tt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_tt";
++    Description = "gid_Module_Optional_Accessories_Samples_tt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tsonga (ts)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ts
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ts
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ts;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ts";
++    Description = "gid_Module_Optional_Accessories_Samples_ts";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Yiddish (yi)
++
++Module gid_Module_Optional_Accessories_Samples_Base_yi
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_YI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_yi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_yi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_yi";
++    Description = "gid_Module_Optional_Accessories_Samples_yi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Breton (br)
++
++Module gid_Module_Optional_Accessories_Samples_Base_br
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_br
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_br;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_br";
++    Description = "gid_Module_Optional_Accessories_Samples_br";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ndebele South (nr)
++
++Module gid_Module_Optional_Accessories_Samples_Base_nr
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_nr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_nr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_nr";
++    Description = "gid_Module_Optional_Accessories_Samples_nr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swazi (ss)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ss
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "8900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ss
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ss;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ss";
++    Description = "gid_Module_Optional_Accessories_Samples_ss";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Venda (ve)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ve
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_VE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ve
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ve;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ve";
++    Description = "gid_Module_Optional_Accessories_Samples_ve";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kannada (kn)
++
++Module gid_Module_Optional_Accessories_Samples_Base_kn
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_kn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_kn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_kn";
++    Description = "gid_Module_Optional_Accessories_Samples_kn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malay (Malaysian) (ms)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ms
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ms
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ms;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ms";
++    Description = "gid_Module_Optional_Accessories_Samples_ms";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tajik (tg)
++
++Module gid_Module_Optional_Accessories_Samples_Base_tg
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_tg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_tg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_tg";
++    Description = "gid_Module_Optional_Accessories_Samples_tg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kurdish (ku)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ku
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ku
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ku;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ku";
++    Description = "gid_Module_Optional_Accessories_Samples_ku";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dzongkha (dz)
++
++Module gid_Module_Optional_Accessories_Samples_Base_dz
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_dz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_dz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_dz";
++    Description = "gid_Module_Optional_Accessories_Samples_dz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Georgian (ka)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ka
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ka
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ka;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ka";
++    Description = "gid_Module_Optional_Accessories_Samples_ka";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Esperanto (eo)
++
++Module gid_Module_Optional_Accessories_Samples_Base_eo
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_eo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_eo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_eo";
++    Description = "gid_Module_Optional_Accessories_Samples_eo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati (gu)
++
++Module gid_Module_Optional_Accessories_Samples_Base_gu
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_gu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_gu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_gu";
++    Description = "gid_Module_Optional_Accessories_Samples_gu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English South Africa (en-ZA)
++
++Module gid_Module_Optional_Accessories_Samples_Base_en_ZA
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "9900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_ZA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_en_ZA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_en_ZA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_en_ZA";
++    Description = "gid_Module_Optional_Accessories_Samples_en_ZA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English United Kingdom (en-GB)
++
++Module gid_Module_Optional_Accessories_Samples_Base_en_GB
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "10000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_GB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_en_GB
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_en_GB;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_en_GB";
++    Description = "gid_Module_Optional_Accessories_Samples_en_GB";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ur_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "10100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ur_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ur_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ur_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_ur_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malayalam (ml-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ml_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "10200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ML_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ml_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ml_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ml_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_ml_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Telugu (te-IN)
++
++Module gid_Module_Optional_Accessories_Samples_Base_te_IN
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "10300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TE_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_te_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_te_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_te_IN";
++    Description = "gid_Module_Optional_Accessories_Samples_te_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tigrinya (ti-ER)
++
++Module gid_Module_Optional_Accessories_Samples_Base_ti_ER
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "10400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TI_ER);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_ti_ER
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_ti_ER;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_ti_ER";
++    Description = "gid_Module_Optional_Accessories_Samples_ti_ER";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Uzbek (uz)
++
++Module gid_Module_Optional_Accessories_Samples_Base_uz
++
++    ParentID = gid_Module_Optional_Accessories_Samples_Main;
++    Sortkey = "10500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Samples_uz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Samples_Base_uz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Samples_uz";
++    Description = "gid_Module_Optional_Accessories_Samples_uz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
+diff -Naur scp2/source/accessories/module_samples_accessories_langpack.ulf scp2/source/accessories/module_samples_accessories_langpack.ulf
+--- scp2/source/accessories/module_samples_accessories_langpack.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_samples_accessories_langpack.ulf	2008-03-22 13:27:53.000000000 +0100
+@@ -0,0 +1,670 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_samples_accessories_langpack.ulf,v $
++ *
++ *  $Revision: 1.8 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:20:41 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_US]
++en-US = "English"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_US]
++en-US = "Installs English support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DE]
++en-US = "German"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DE]
++en-US = "Installs German support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FR]
++en-US = "French"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FR]
++en-US = "Installs French support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_IT]
++en-US = "Italian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_IT]
++en-US = "Installs Italian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ES]
++en-US = "Spanish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ES]
++en-US = "Installs Spanish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SV]
++en-US = "Swedish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SV]
++en-US = "Installs Swedish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PT]
++en-US = "Portuguese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PT]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PT_BR]
++en-US = "Portuguese (Brazil)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PT_BR]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_JA]
++en-US = "Japanese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_JA]
++en-US = "Installs Japanese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KO]
++en-US = "Korean"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KO]
++en-US = "Installs Korean support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZH_CN]
++en-US = "Chinese (simplified)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZH_CN]
++en-US = "Installs Chinese (simplified) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZH_TW]
++en-US = "Chinese (traditional)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZH_TW]
++en-US = "Installs Chinese (traditional) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NL]
++en-US = "Dutch"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NL]
++en-US = "Installs Dutch support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HU]
++en-US = "Hungarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HU]
++en-US = "Installs Hungarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PL]
++en-US = "Polish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PL]
++en-US = "Installs Polish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RU]
++en-US = "Russian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RU]
++en-US = "Installs Russian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TR]
++en-US = "Turkish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TR]
++en-US = "Installs Turkish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EL]
++en-US = "Greek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EL]
++en-US = "Installs Greek support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TH]
++en-US = "Thai"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TH]
++en-US = "Installs Thai support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CS]
++en-US = "Czech"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CS]
++en-US = "Installs Czech support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SK]
++en-US = "Slovak"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SK]
++en-US = "Installs Slovak support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HR]
++en-US = "Croatian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HR]
++en-US = "Installs Croatian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ET]
++en-US = "Estonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ET]
++en-US = "Installs Estonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_VI]
++en-US = "Vietnamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_VI]
++en-US = "Installs Vietnamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BG]
++en-US = "Bulgarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BG]
++en-US = "Installs Bulgarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KM]
++en-US = "Khmer"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KM]
++en-US = "Installs Khmer support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PA_IN]
++en-US = "Punjabi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_PA_IN]
++en-US = "Installs Punjabi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GU_IN]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GU_IN]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TA]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TA]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TA_IN]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TA_IN]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HI]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HI]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HI_IN]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HI_IN]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ST]
++en-US = "Southern Sotho (Sutu)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ST]
++en-US = "Installs Southern Sotho (Sutu) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TN]
++en-US = "Tswana"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TN]
++en-US = "Installs Tswana support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_XH]
++en-US = "Xhosa"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_XH]
++en-US = "Installs Xhosa support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZU]
++en-US = "Zulu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ZU]
++en-US = "Installs Zulu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AF]
++en-US = "Afrikaans"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AF]
++en-US = "Installs Afrikaans support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SW]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SW]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SW_TZ]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SW_TZ]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LO]
++en-US = "Lao"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LO]
++en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NS]
++en-US = "Northern Sotho"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NS]
++en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN]
++en-US = "Bengali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN]
++en-US = "Installs Bengali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN_BD]
++en-US = "Bengali (Bangladesh)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN_BD]
++en-US = "Installs Bengali (Bangladesh) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN_IN]
++en-US = "Bengali (India)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BN_IN]
++en-US = "Installs Bengali (India) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_OR]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_OR]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_OR_IN]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_OR_IN]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MR]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MR]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MR_IN]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MR_IN]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NE]
++en-US = "Nepali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NE]
++en-US = "Installs Nepali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AR]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AR]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AR_SA]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AR_SA]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CA]
++en-US = "Catalan"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CA]
++en-US = "Installs Catalan support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DA]
++en-US = "Danish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DA]
++en-US = "Installs Danish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FI]
++en-US = "Finnish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FI]
++en-US = "Installs Finnish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HE]
++en-US = "Hebrew"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HE]
++en-US = "Installs Hebrew support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_IS]
++en-US = "Icelandic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_IS]
++en-US = "Installs Icelandic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NB]
++en-US = "Norwegian (Bokmal)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NB]
++en-US = "Installs Norwegian (Bokmal) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NN]
++en-US = "Norwegian (Nynorsk)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NN]
++en-US = "Installs Norwegian (Nynorsk) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RM]
++en-US = "Rhaeto-Romance"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RM]
++en-US = "Installs Rhaeto-Romance support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RO]
++en-US = "Romanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RO]
++en-US = "Installs Romanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SQ]
++en-US = "Albanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SQ]
++en-US = "Installs Albanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UR]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UR]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ID]
++en-US = "Indonesian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ID]
++en-US = "Installs Indonesian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UK]
++en-US = "Ukrainian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UK]
++en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BE_BY]
++en-US = "Belarusian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BE_BY]
++en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SL]
++en-US = "Slovenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SL]
++en-US = "Installs Slovenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LV]
++en-US = "Latvian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LV]
++en-US = "Installs Latvian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LT]
++en-US = "Lithuanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_LT]
++en-US = "Installs Lithuanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HY]
++en-US = "Armenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_HY]
++en-US = "Installs Armenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EU]
++en-US = "Basque"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EU]
++en-US = "Installs Basque support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MK]
++en-US = "Macedonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MK]
++en-US = "Installs Macedonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MT]
++en-US = "Maltese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MT]
++en-US = "Installs Maltese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CY]
++en-US = "Welsh"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_CY]
++en-US = "Installs Welsh support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GL]
++en-US = "Galician"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GL]
++en-US = "Installs Galician support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SH_YU]
++en-US = "Serbian (Latin)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SH_YU]
++en-US = "Installs Serbian (Latin) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GA]
++en-US = "Irish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GA]
++en-US = "Installs Irish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SR_CS]
++en-US = "Serbian (Cyrillic)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SR_CS]
++en-US = "Installs Serbian (Cyrillic) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BS]
++en-US = "Bosnian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BS]
++en-US = "Installs Bosnian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AS_IN]
++en-US = "Assamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_AS_IN]
++en-US = "Installs Assamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RW]
++en-US = "Kinyarwanda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_RW]
++en-US = "Installs Kinyarwanda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SA]
++en-US = "Sanskrit"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SA]
++en-US = "Installs Sanskrit support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FA]
++en-US = "Farsi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FA]
++en-US = "Installs Farsi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FO]
++en-US = "Faroese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_FO]
++en-US = "Installs Faroese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SB]
++en-US = "Sorbian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SB]
++en-US = "Installs Sorbian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TT]
++en-US = "Tatar"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TT]
++en-US = "Installs Tatar support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TS]
++en-US = "Tsonga"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TS]
++en-US = "Installs Tsonga support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_YI]
++en-US = "Yiddish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_YI]
++en-US = "Installs Yiddish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BR]
++en-US = "Breton"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_BR]
++en-US = "Installs Breton support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NR]
++en-US = "Ndebele South"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_NR]
++en-US = "Installs Ndebele South support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SS]
++en-US = "Swazi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_SS]
++en-US = "Installs Swazi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_VE]
++en-US = "Venda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_VE]
++en-US = "Installs Venda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KN]
++en-US = "Kannada"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KN]
++en-US = "Installs Kannada support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MS]
++en-US = "Malay (Malaysian)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_MS]
++en-US = "Installs Malay (Malaysian) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TG]
++en-US = "Tajik"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TG]
++en-US = "Installs Tajik support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KU]
++en-US = "Kurdish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KU]
++en-US = "Installs Kurdish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DZ]
++en-US = "Dzongkha"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_DZ]
++en-US = "Installs Dzongkha support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KA]
++en-US = "Georgian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_KA]
++en-US = "Installs Georgian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EO]
++en-US = "Esperanto"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EO]
++en-US = "Installs Esperanto support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GU]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_GU]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_ZA]
++en-US = "English (South Africa)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_ZA]
++en-US = "Installs English (South Africa) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_GB]
++en-US = "English (United Kingdom)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_EN_GB]
++en-US = "Installs English (United Kingdom) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UR_IN]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UR_IN]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ML_IN]
++en-US = "Malayalam"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_ML_IN]
++en-US = "Installs Malayalam support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TE_IN]
++en-US = "Telugu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TE_IN]
++en-US = "Installs Telugu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TI_ER]
++en-US = "Tigrinya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_TI_ER]
++en-US = "Installs Tigrinya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UZ]
++en-US = "Uzbek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES_BASE_LANGPACK_UZ]
++en-US = "Installs Uzbek support in %PRODUCTNAME %PRODUCTVERSION"
+diff -Naur scp2/source/accessories/module_samples_accessories.scp scp2/source/accessories/module_samples_accessories.scp
+--- scp2/source/accessories/module_samples_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_samples_accessories.scp	2008-03-23 15:19:17.000000000 +0100
+@@ -0,0 +1,77 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_samples_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++#ifndef WITHOUT_EXTRA_SAMPLE
++
++Module gid_Module_Optional_Accessories_Samples_Main
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_SAMPLES);
++    ParentID = gid_Module_Optional_Accessories;
++    Files = (
++        gid_File_Extra_Samples_KAMI,
++        gid_File_Extra_Samples_NONFREE_KAMI  );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++Module gid_Module_Optional_Accessories_Documentations_Main
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS);
++    ParentID = gid_Module_Optional_Accessories;
++    Files = (
++        gid_File_Extra_Samples_KAMI,
++        gid_File_Extra_Samples_Documentations_KAMI,
++        gid_File_Extra_Samples_NONFREE_KAMI,
++        gid_File_Extra_Samples_NONFREE_Documentations_KAMI );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++Module gid_Module_Optional_Accessories_Advertisement_Main
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT);
++    ParentID = gid_Module_Optional_Accessories;
++    Files = (
++        gid_File_Extra_Samples_KAMI,
++        gid_File_Extra_Samples_Advertisement_KAMI,
++        gid_File_Extra_Samples_NONFREE_KAMI,
++        gid_File_Extra_Samples_NONFREE_Advertisement_KAMI );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++#endif
+diff -Naur scp2/source/accessories/module_samples_accessories.ulf scp2/source/accessories/module_samples_accessories.ulf
+--- scp2/source/accessories/module_samples_accessories.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_samples_accessories.ulf	2008-03-22 15:20:30.000000000 +0100
+@@ -0,0 +1,53 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_samples_accessories.ulf,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_SAMPLES]
++en-US = "Sample documents"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_SAMPLES]
++en-US = "Sample documents are good for learning."
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS]
++en-US = "Documentations"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_DOCUMENTATIONS]
++en-US = "%PRODUCTNAME documentations."
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT]
++en-US = "Advertisement"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_ADVERTISEMENT]
++en-US = "%PRODUCTNAME advertisement materials."
++
+diff -Naur scp2/source/accessories/module_templates_accessories_langpack.scp scp2/source/accessories/module_templates_accessories_langpack.scp
+--- scp2/source/accessories/module_templates_accessories_langpack.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_templates_accessories_langpack.scp	2008-03-23 14:35:32.000000000 +0100
+@@ -0,0 +1,2476 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_templates_accessories_langpack.scp,v $
++ *
++ *  $Revision: 1.7.38.1 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 13:51:27 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++// English
++
++Module gid_Module_Optional_Accessories_Templates_Base_en_US
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_US);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_en_US
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_en_US;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_en_US";
++    Description = "gid_Module_Optional_Accessories_Templates_en_US";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// German
++
++Module gid_Module_Optional_Accessories_Templates_Base_de
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_de
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_de;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_de";
++    Description = "gid_Module_Optional_Accessories_Templates_de";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// French
++
++Module gid_Module_Optional_Accessories_Templates_Base_fr
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_fr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_fr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_fr";
++    Description = "gid_Module_Optional_Accessories_Templates_fr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Italian
++
++Module gid_Module_Optional_Accessories_Templates_Base_it
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_IT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_it
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_it;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_it";
++    Description = "gid_Module_Optional_Accessories_Templates_it";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Spanish
++
++Module gid_Module_Optional_Accessories_Templates_Base_es
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ES);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_es
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_es;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_es";
++    Description = "gid_Module_Optional_Accessories_Templates_es";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swedish
++
++Module gid_Module_Optional_Accessories_Templates_Base_sv
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sv";
++    Description = "gid_Module_Optional_Accessories_Templates_sv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese
++
++Module gid_Module_Optional_Accessories_Templates_Base_pt
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_pt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_pt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_pt";
++    Description = "gid_Module_Optional_Accessories_Templates_pt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Portuguese (Brazilian)
++
++Module gid_Module_Optional_Accessories_Templates_Base_pt_BR
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PT_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_pt_BR
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_pt_BR;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_pt_BR";
++    Description = "gid_Module_Optional_Accessories_Templates_pt_BR";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Japanese
++
++Module gid_Module_Optional_Accessories_Templates_Base_ja
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_JA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ja
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ja;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ja";
++    Description = "gid_Module_Optional_Accessories_Templates_ja";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Korean
++
++Module gid_Module_Optional_Accessories_Templates_Base_ko
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ko
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ko;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ko";
++    Description = "gid_Module_Optional_Accessories_Templates_ko";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (simplified)
++
++Module gid_Module_Optional_Accessories_Templates_Base_zh_CN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZH_CN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_zh_CN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_zh_CN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_zh_CN";
++    Description = "gid_Module_Optional_Accessories_Templates_zh_CN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Chinese (traditional)
++
++Module gid_Module_Optional_Accessories_Templates_Base_zh_TW
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZH_TW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_zh_TW
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_zh_TW;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_zh_TW";
++    Description = "gid_Module_Optional_Accessories_Templates_zh_TW";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dutch
++
++Module gid_Module_Optional_Accessories_Templates_Base_nl
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_nl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_nl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_nl";
++    Description = "gid_Module_Optional_Accessories_Templates_nl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hungarian
++
++Module gid_Module_Optional_Accessories_Templates_Base_hu
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_hu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_hu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_hu";
++    Description = "gid_Module_Optional_Accessories_Templates_hu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Polish
++
++Module gid_Module_Optional_Accessories_Templates_Base_pl
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_pl
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_pl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_pl";
++    Description = "gid_Module_Optional_Accessories_Templates_pl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Russian
++
++Module gid_Module_Optional_Accessories_Templates_Base_ru
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ru
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ru;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ru";
++    Description = "gid_Module_Optional_Accessories_Templates_ru";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Turkish
++
++Module gid_Module_Optional_Accessories_Templates_Base_tr
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_tr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_tr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_tr";
++    Description = "gid_Module_Optional_Accessories_Templates_tr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Greek
++
++Module gid_Module_Optional_Accessories_Templates_Base_el
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_el
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_el;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_el";
++    Description = "gid_Module_Optional_Accessories_Templates_el";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Thai
++
++Module gid_Module_Optional_Accessories_Templates_Base_th
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_th
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_th;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_th";
++    Description = "gid_Module_Optional_Accessories_Templates_th";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Czech
++
++Module gid_Module_Optional_Accessories_Templates_Base_cs
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "1900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_cs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_cs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_cs";
++    Description = "gid_Module_Optional_Accessories_Templates_cs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovak
++
++Module gid_Module_Optional_Accessories_Templates_Base_sk
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sk";
++    Description = "gid_Module_Optional_Accessories_Templates_sk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Croatian
++
++Module gid_Module_Optional_Accessories_Templates_Base_hr
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_hr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_hr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_hr";
++    Description = "gid_Module_Optional_Accessories_Templates_hr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Estonian
++
++Module gid_Module_Optional_Accessories_Templates_Base_et
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ET);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_et
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_et;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_et";
++    Description = "gid_Module_Optional_Accessories_Templates_et";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Vietnamese
++
++Module gid_Module_Optional_Accessories_Templates_Base_vi
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_VI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_vi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_vi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_vi";
++    Description = "gid_Module_Optional_Accessories_Templates_vi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bulgarian
++
++Module gid_Module_Optional_Accessories_Templates_Base_bg
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_bg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_bg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_bg";
++    Description = "gid_Module_Optional_Accessories_Templates_bg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Khmer
++
++Module gid_Module_Optional_Accessories_Templates_Base_km
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_km
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_km;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_km";
++    Description = "gid_Module_Optional_Accessories_Templates_km";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Punjabi
++
++Module gid_Module_Optional_Accessories_Templates_Base_pa_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_pa_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_pa_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_pa_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_pa_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati
++
++Module gid_Module_Optional_Accessories_Templates_Base_gu_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GU_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_gu_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_gu_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_gu_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_gu_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ta
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ta
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ta;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ta";
++    Description = "gid_Module_Optional_Accessories_Templates_ta";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tamil (ta-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ta_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "2900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TA_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ta_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ta_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ta_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_ta_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi)
++
++Module gid_Module_Optional_Accessories_Templates_Base_hi
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_hi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_hi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_hi";
++    Description = "gid_Module_Optional_Accessories_Templates_hi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hindi (hi-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_hi_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HI_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_hi_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_hi_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_hi_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_hi_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Southern Sotho (st)
++
++Module gid_Module_Optional_Accessories_Templates_Base_st
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ST);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_st
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_st;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_st";
++    Description = "gid_Module_Optional_Accessories_Templates_st";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tswana (tn)
++
++Module gid_Module_Optional_Accessories_Templates_Base_tn
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_tn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_tn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_tn";
++    Description = "gid_Module_Optional_Accessories_Templates_tn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Xhosa (xh)
++
++Module gid_Module_Optional_Accessories_Templates_Base_xh
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_XH);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_xh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_xh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_xh";
++    Description = "gid_Module_Optional_Accessories_Templates_xh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Zulu (zu)
++
++Module gid_Module_Optional_Accessories_Templates_Base_zu
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_zu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_zu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_zu";
++    Description = "gid_Module_Optional_Accessories_Templates_zu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Afrikaans (af)
++
++Module gid_Module_Optional_Accessories_Templates_Base_af
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AF);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_af
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_af;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_af";
++    Description = "gid_Module_Optional_Accessories_Templates_af";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sw
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sw";
++    Description = "gid_Module_Optional_Accessories_Templates_sw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swahili (sw-TZ)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sw_TZ
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SW_TZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sw_TZ
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sw_TZ;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sw_TZ";
++    Description = "gid_Module_Optional_Accessories_Templates_sw_TZ";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lao (lo)
++
++Module gid_Module_Optional_Accessories_Templates_Base_lo
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "3900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_lo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_lo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_lo";
++    Description = "gid_Module_Optional_Accessories_Templates_lo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Northern Sotho (ns)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ns
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ns
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ns;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ns";
++    Description = "gid_Module_Optional_Accessories_Templates_ns";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (bn)
++
++Module gid_Module_Optional_Accessories_Templates_Base_bn
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_bn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_bn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_bn";
++    Description = "gid_Module_Optional_Accessories_Templates_bn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (Bangladesh) (bn-BD)
++
++Module gid_Module_Optional_Accessories_Templates_Base_bn_BD
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN_BD);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_bn_BD
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_bn_BD;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_bn_BD";
++    Description = "gid_Module_Optional_Accessories_Templates_bn_BD";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bengali (India) (bn-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_bn_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_bn_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_bn_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_bn_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_bn_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or)
++
++Module gid_Module_Optional_Accessories_Templates_Base_or
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_OR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_or
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_or;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_or";
++    Description = "gid_Module_Optional_Accessories_Templates_or";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Oriya (or-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_or_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_OR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_or_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_or_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_or_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_or_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr)
++
++Module gid_Module_Optional_Accessories_Templates_Base_mr
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_mr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_mr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_mr";
++    Description = "gid_Module_Optional_Accessories_Templates_mr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Marathi (mr-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_mr_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_mr_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_mr_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_mr_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_mr_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Nepali (ne)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ne
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ne
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ne;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ne";
++    Description = "gid_Module_Optional_Accessories_Templates_ne";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ar
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "4900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ar
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ar;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ar";
++    Description = "gid_Module_Optional_Accessories_Templates_ar";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Arabic (ar-SA)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ar_SA
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AR_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ar_SA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ar_SA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ar_SA";
++    Description = "gid_Module_Optional_Accessories_Templates_ar_SA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Catalan (ca)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ca
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ca
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ca;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ca";
++    Description = "gid_Module_Optional_Accessories_Templates_ca";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Danish (da)
++
++Module gid_Module_Optional_Accessories_Templates_Base_da
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_da
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_da;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_da";
++    Description = "gid_Module_Optional_Accessories_Templates_da";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Finnish (fi)
++
++Module gid_Module_Optional_Accessories_Templates_Base_fi
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_fi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_fi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_fi";
++    Description = "gid_Module_Optional_Accessories_Templates_fi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Hebrew (he)
++
++Module gid_Module_Optional_Accessories_Templates_Base_he
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_he
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_he;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_he";
++    Description = "gid_Module_Optional_Accessories_Templates_he";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Icelandic (is)
++
++Module gid_Module_Optional_Accessories_Templates_Base_is
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_IS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_is
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_is;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_is";
++    Description = "gid_Module_Optional_Accessories_Templates_is";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Bokmal)
++
++Module gid_Module_Optional_Accessories_Templates_Base_nb
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_nb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_nb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_nb";
++    Description = "gid_Module_Optional_Accessories_Templates_nb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Norwegian (Nynorsk)
++
++Module gid_Module_Optional_Accessories_Templates_Base_nn
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_nn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_nn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_nn";
++    Description = "gid_Module_Optional_Accessories_Templates_nn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Raeto-Romance (rm)
++
++Module gid_Module_Optional_Accessories_Templates_Base_rm
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RM);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_rm
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_rm;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_rm";
++    Description = "gid_Module_Optional_Accessories_Templates_rm";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Romanian
++
++Module gid_Module_Optional_Accessories_Templates_Base_ro
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "5900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ro
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ro;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ro";
++    Description = "gid_Module_Optional_Accessories_Templates_ro";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Albanian (sq)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sq
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SQ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sq
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sq;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sq";
++    Description = "gid_Module_Optional_Accessories_Templates_sq";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ur
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ur
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ur;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ur";
++    Description = "gid_Module_Optional_Accessories_Templates_ur";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Indonesian (id)
++
++Module gid_Module_Optional_Accessories_Templates_Base_id
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ID);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_id
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_id;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_id";
++    Description = "gid_Module_Optional_Accessories_Templates_id";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ukrainian (uk)
++
++Module gid_Module_Optional_Accessories_Templates_Base_uk
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_uk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_uk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_uk";
++    Description = "gid_Module_Optional_Accessories_Templates_uk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Belarusian (be-BY)
++
++Module gid_Module_Optional_Accessories_Templates_Base_be_BY
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BE_BY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_be_BY
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_be_BY;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_be_BY";
++    Description = "gid_Module_Optional_Accessories_Templates_be_BY";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Slovenian (sl)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sl
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sl";
++    Description = "gid_Module_Optional_Accessories_Templates_sl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Latvian (lv)
++
++Module gid_Module_Optional_Accessories_Templates_Base_lv
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LV);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_lv
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_lv;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_lv";
++    Description = "gid_Module_Optional_Accessories_Templates_lv";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Lithuanian (lt)
++
++Module gid_Module_Optional_Accessories_Templates_Base_lt
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_lt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_lt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_lt";
++    Description = "gid_Module_Optional_Accessories_Templates_lt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Armenian (hy)
++
++Module gid_Module_Optional_Accessories_Templates_Base_hy
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_hy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_hy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_hy";
++    Description = "gid_Module_Optional_Accessories_Templates_hy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Basque (eu)
++
++Module gid_Module_Optional_Accessories_Templates_Base_eu
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "6900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_eu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_eu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_eu";
++    Description = "gid_Module_Optional_Accessories_Templates_eu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Macedonian (mk)
++
++Module gid_Module_Optional_Accessories_Templates_Base_mk
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MK);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_mk
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_mk;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_mk";
++    Description = "gid_Module_Optional_Accessories_Templates_mk";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Maltese (mt)
++
++Module gid_Module_Optional_Accessories_Templates_Base_mt
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_mt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_mt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_mt";
++    Description = "gid_Module_Optional_Accessories_Templates_mt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Welsh (cy)
++
++Module gid_Module_Optional_Accessories_Templates_Base_cy
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CY);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_cy
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_cy;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_cy";
++    Description = "gid_Module_Optional_Accessories_Templates_cy";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Galician (gl)
++
++Module gid_Module_Optional_Accessories_Templates_Base_gl
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GL);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_gl
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_gl;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_gl";
++    Description = "gid_Module_Optional_Accessories_Templates_gl";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Latin) (sh)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sh
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SH_YU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sh
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sh;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sh";
++    Description = "gid_Module_Optional_Accessories_Templates_sh";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Irish (ga)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ga
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ga
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ga;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ga";
++    Description = "gid_Module_Optional_Accessories_Templates_ga";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Serbian (Cyrillic) (sr)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sr
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SR_CS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sr";
++    Description = "gid_Module_Optional_Accessories_Templates_sr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Bosnian (bs)
++
++Module gid_Module_Optional_Accessories_Templates_Base_bs
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_bs
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_bs;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_bs";
++    Description = "gid_Module_Optional_Accessories_Templates_bs";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Assamese (as-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_as_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AS_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_as_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_as_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_as_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_as_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kinyarwanda (rw)
++
++Module gid_Module_Optional_Accessories_Templates_Base_rw
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "7900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RW);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_rw
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_rw;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_rw";
++    Description = "gid_Module_Optional_Accessories_Templates_rw";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sanskrit (sa)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sa
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sa";
++    Description = "gid_Module_Optional_Accessories_Templates_sa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Farsi (fa)
++
++Module gid_Module_Optional_Accessories_Templates_Base_fa
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_fa
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_fa;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_fa";
++    Description = "gid_Module_Optional_Accessories_Templates_fa";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Faroese (fo)
++
++Module gid_Module_Optional_Accessories_Templates_Base_fo
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_fo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_fo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_fo";
++    Description = "gid_Module_Optional_Accessories_Templates_fo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Sorbian (sb)
++
++Module gid_Module_Optional_Accessories_Templates_Base_sb
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_sb
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_sb;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_sb";
++    Description = "gid_Module_Optional_Accessories_Templates_sb";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tatar (tt)
++
++Module gid_Module_Optional_Accessories_Templates_Base_tt
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TT);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_tt
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_tt;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_tt";
++    Description = "gid_Module_Optional_Accessories_Templates_tt";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tsonga (ts)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ts
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ts
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ts;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ts";
++    Description = "gid_Module_Optional_Accessories_Templates_ts";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Yiddish (yi)
++
++Module gid_Module_Optional_Accessories_Templates_Base_yi
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_YI);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_yi
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_yi;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_yi";
++    Description = "gid_Module_Optional_Accessories_Templates_yi";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Breton (br)
++
++Module gid_Module_Optional_Accessories_Templates_Base_br
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_br
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_br;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_br";
++    Description = "gid_Module_Optional_Accessories_Templates_br";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Ndebele South (nr)
++
++Module gid_Module_Optional_Accessories_Templates_Base_nr
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NR);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_nr
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_nr;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_nr";
++    Description = "gid_Module_Optional_Accessories_Templates_nr";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Swazi (ss)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ss
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "8900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ss
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ss;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ss";
++    Description = "gid_Module_Optional_Accessories_Templates_ss";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Venda (ve)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ve
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_VE);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ve
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ve;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ve";
++    Description = "gid_Module_Optional_Accessories_Templates_ve";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kannada (kn)
++
++Module gid_Module_Optional_Accessories_Templates_Base_kn
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_kn
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_kn;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_kn";
++    Description = "gid_Module_Optional_Accessories_Templates_kn";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malay (Malaysian) (ms)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ms
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MS);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ms
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ms;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ms";
++    Description = "gid_Module_Optional_Accessories_Templates_ms";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tajik (tg)
++
++Module gid_Module_Optional_Accessories_Templates_Base_tg
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TG);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_tg
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_tg;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_tg";
++    Description = "gid_Module_Optional_Accessories_Templates_tg";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Kurdish (ku)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ku
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ku
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ku;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ku";
++    Description = "gid_Module_Optional_Accessories_Templates_ku";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Dzongkha (dz)
++
++Module gid_Module_Optional_Accessories_Templates_Base_dz
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_dz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_dz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_dz";
++    Description = "gid_Module_Optional_Accessories_Templates_dz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Georgian (ka)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ka
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9600";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ka
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ka;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ka";
++    Description = "gid_Module_Optional_Accessories_Templates_ka";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Esperanto (eo)
++
++Module gid_Module_Optional_Accessories_Templates_Base_eo
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9700";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EO);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_eo
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_eo;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_eo";
++    Description = "gid_Module_Optional_Accessories_Templates_eo";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Gujarati (gu)
++
++Module gid_Module_Optional_Accessories_Templates_Base_gu
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9800";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GU);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_gu
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_gu;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_gu";
++    Description = "gid_Module_Optional_Accessories_Templates_gu";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English South Africa (en-ZA)
++
++Module gid_Module_Optional_Accessories_Templates_Base_en_ZA
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "9900";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_ZA);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_en_ZA
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_en_ZA;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_en_ZA";
++    Description = "gid_Module_Optional_Accessories_Templates_en_ZA";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// English United Kingdom (en-GB)
++
++Module gid_Module_Optional_Accessories_Templates_Base_en_GB
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "10000";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_GB);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_en_GB
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_en_GB;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_en_GB";
++    Description = "gid_Module_Optional_Accessories_Templates_en_GB";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Urdu (ur-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ur_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "10100";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UR_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ur_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ur_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ur_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_ur_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Malayalam (ml-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ml_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "10200";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ML_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ml_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ml_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ml_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_ml_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Telugu (te-IN)
++
++Module gid_Module_Optional_Accessories_Templates_Base_te_IN
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "10300";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TE_IN);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_te_IN
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_te_IN;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_te_IN";
++    Description = "gid_Module_Optional_Accessories_Templates_te_IN";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Tigrinya (ti-ER)
++
++Module gid_Module_Optional_Accessories_Templates_Base_ti_ER
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "10400";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TI_ER);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_ti_ER
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_ti_ER;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_ti_ER";
++    Description = "gid_Module_Optional_Accessories_Templates_ti_ER";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
++// Uzbek (uz)
++
++Module gid_Module_Optional_Accessories_Templates_Base_uz
++
++    ParentID = gid_Module_Optional_Accessories_Templates_Main;
++    Sortkey = "10500";
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UZ);
++  #ifdef WNT
++    Styles = (LANGUAGEMODULE);
++  #endif
++End
++
++#ifndef WNT
++Module gid_Module_Optional_Accessories_Templates_uz
++	LanguagePackageInfo = "packinfo_office_lang.txt";
++    ParentID = gid_Module_Optional_Accessories_Templates_Base_uz;
++    Sortkey = "200";
++    Name = "gid_Module_Optional_Accessories_Templates_uz";
++    Description = "gid_Module_Optional_Accessories_Templates_uz";
++    Styles = (HIDDEN_ROOT);
++End
++#endif
++
+diff -Naur scp2/source/accessories/module_templates_accessories_langpack.ulf scp2/source/accessories/module_templates_accessories_langpack.ulf
+--- scp2/source/accessories/module_templates_accessories_langpack.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_templates_accessories_langpack.ulf	2008-03-22 13:26:49.000000000 +0100
+@@ -0,0 +1,670 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_templates_accessories_langpack.ulf ,v $
++ *
++ *  $Revision: 1.8 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:20:41 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_US]
++en-US = "English"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_US]
++en-US = "Installs English support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DE]
++en-US = "German"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DE]
++en-US = "Installs German support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FR]
++en-US = "French"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FR]
++en-US = "Installs French support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_IT]
++en-US = "Italian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_IT]
++en-US = "Installs Italian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ES]
++en-US = "Spanish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ES]
++en-US = "Installs Spanish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SV]
++en-US = "Swedish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SV]
++en-US = "Installs Swedish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PT]
++en-US = "Portuguese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PT]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PT_BR]
++en-US = "Portuguese (Brazil)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PT_BR]
++en-US = "Installs Portuguese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_JA]
++en-US = "Japanese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_JA]
++en-US = "Installs Japanese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KO]
++en-US = "Korean"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KO]
++en-US = "Installs Korean support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZH_CN]
++en-US = "Chinese (simplified)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZH_CN]
++en-US = "Installs Chinese (simplified) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZH_TW]
++en-US = "Chinese (traditional)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZH_TW]
++en-US = "Installs Chinese (traditional) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NL]
++en-US = "Dutch"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NL]
++en-US = "Installs Dutch support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HU]
++en-US = "Hungarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HU]
++en-US = "Installs Hungarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PL]
++en-US = "Polish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PL]
++en-US = "Installs Polish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RU]
++en-US = "Russian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RU]
++en-US = "Installs Russian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TR]
++en-US = "Turkish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TR]
++en-US = "Installs Turkish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EL]
++en-US = "Greek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EL]
++en-US = "Installs Greek support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TH]
++en-US = "Thai"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TH]
++en-US = "Installs Thai support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CS]
++en-US = "Czech"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CS]
++en-US = "Installs Czech support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SK]
++en-US = "Slovak"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SK]
++en-US = "Installs Slovak support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HR]
++en-US = "Croatian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HR]
++en-US = "Installs Croatian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ET]
++en-US = "Estonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ET]
++en-US = "Installs Estonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_VI]
++en-US = "Vietnamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_VI]
++en-US = "Installs Vietnamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BG]
++en-US = "Bulgarian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BG]
++en-US = "Installs Bulgarian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KM]
++en-US = "Khmer"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KM]
++en-US = "Installs Khmer support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PA_IN]
++en-US = "Punjabi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_PA_IN]
++en-US = "Installs Punjabi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GU_IN]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GU_IN]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TA]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TA]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TA_IN]
++en-US = "Tamil"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TA_IN]
++en-US = "Installs Tamil support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HI]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HI]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HI_IN]
++en-US = "Hindi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HI_IN]
++en-US = "Installs Hindi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ST]
++en-US = "Southern Sotho (Sutu)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ST]
++en-US = "Installs Southern Sotho (Sutu) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TN]
++en-US = "Tswana"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TN]
++en-US = "Installs Tswana support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_XH]
++en-US = "Xhosa"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_XH]
++en-US = "Installs Xhosa support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZU]
++en-US = "Zulu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ZU]
++en-US = "Installs Zulu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AF]
++en-US = "Afrikaans"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AF]
++en-US = "Installs Afrikaans support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SW]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SW]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SW_TZ]
++en-US = "Swahili"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SW_TZ]
++en-US = "Installs Swahili support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LO]
++en-US = "Lao"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LO]
++en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NS]
++en-US = "Northern Sotho"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NS]
++en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN]
++en-US = "Bengali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN]
++en-US = "Installs Bengali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN_BD]
++en-US = "Bengali (Bangladesh)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN_BD]
++en-US = "Installs Bengali (Bangladesh) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN_IN]
++en-US = "Bengali (India)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BN_IN]
++en-US = "Installs Bengali (India) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_OR]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_OR]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_OR_IN]
++en-US = "Oriya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_OR_IN]
++en-US = "Installs Oriya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MR]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MR]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MR_IN]
++en-US = "Marathi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MR_IN]
++en-US = "Installs Marathi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NE]
++en-US = "Nepali"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NE]
++en-US = "Installs Nepali support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AR]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AR]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AR_SA]
++en-US = "Arabic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AR_SA]
++en-US = "Installs Arabic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CA]
++en-US = "Catalan"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CA]
++en-US = "Installs Catalan support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DA]
++en-US = "Danish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DA]
++en-US = "Installs Danish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FI]
++en-US = "Finnish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FI]
++en-US = "Installs Finnish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HE]
++en-US = "Hebrew"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HE]
++en-US = "Installs Hebrew support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_IS]
++en-US = "Icelandic"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_IS]
++en-US = "Installs Icelandic support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NB]
++en-US = "Norwegian (Bokmal)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NB]
++en-US = "Installs Norwegian (Bokmal) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NN]
++en-US = "Norwegian (Nynorsk)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NN]
++en-US = "Installs Norwegian (Nynorsk) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RM]
++en-US = "Rhaeto-Romance"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RM]
++en-US = "Installs Rhaeto-Romance support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RO]
++en-US = "Romanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RO]
++en-US = "Installs Romanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SQ]
++en-US = "Albanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SQ]
++en-US = "Installs Albanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UR]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UR]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ID]
++en-US = "Indonesian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ID]
++en-US = "Installs Indonesian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UK]
++en-US = "Ukrainian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UK]
++en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BE_BY]
++en-US = "Belarusian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BE_BY]
++en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SL]
++en-US = "Slovenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SL]
++en-US = "Installs Slovenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LV]
++en-US = "Latvian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LV]
++en-US = "Installs Latvian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LT]
++en-US = "Lithuanian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_LT]
++en-US = "Installs Lithuanian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HY]
++en-US = "Armenian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_HY]
++en-US = "Installs Armenian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EU]
++en-US = "Basque"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EU]
++en-US = "Installs Basque support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MK]
++en-US = "Macedonian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MK]
++en-US = "Installs Macedonian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MT]
++en-US = "Maltese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MT]
++en-US = "Installs Maltese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CY]
++en-US = "Welsh"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_CY]
++en-US = "Installs Welsh support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GL]
++en-US = "Galician"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GL]
++en-US = "Installs Galician support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SH_YU]
++en-US = "Serbian (Latin)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SH_YU]
++en-US = "Installs Serbian (Latin) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GA]
++en-US = "Irish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GA]
++en-US = "Installs Irish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SR_CS]
++en-US = "Serbian (Cyrillic)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SR_CS]
++en-US = "Installs Serbian (Cyrillic) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BS]
++en-US = "Bosnian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BS]
++en-US = "Installs Bosnian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AS_IN]
++en-US = "Assamese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_AS_IN]
++en-US = "Installs Assamese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RW]
++en-US = "Kinyarwanda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_RW]
++en-US = "Installs Kinyarwanda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SA]
++en-US = "Sanskrit"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SA]
++en-US = "Installs Sanskrit support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FA]
++en-US = "Farsi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FA]
++en-US = "Installs Farsi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FO]
++en-US = "Faroese"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_FO]
++en-US = "Installs Faroese support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SB]
++en-US = "Sorbian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SB]
++en-US = "Installs Sorbian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TT]
++en-US = "Tatar"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TT]
++en-US = "Installs Tatar support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TS]
++en-US = "Tsonga"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TS]
++en-US = "Installs Tsonga support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_YI]
++en-US = "Yiddish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_YI]
++en-US = "Installs Yiddish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BR]
++en-US = "Breton"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_BR]
++en-US = "Installs Breton support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NR]
++en-US = "Ndebele South"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_NR]
++en-US = "Installs Ndebele South support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SS]
++en-US = "Swazi"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_SS]
++en-US = "Installs Swazi support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_VE]
++en-US = "Venda"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_VE]
++en-US = "Installs Venda support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KN]
++en-US = "Kannada"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KN]
++en-US = "Installs Kannada support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MS]
++en-US = "Malay (Malaysian)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_MS]
++en-US = "Installs Malay (Malaysian) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TG]
++en-US = "Tajik"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TG]
++en-US = "Installs Tajik support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KU]
++en-US = "Kurdish"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KU]
++en-US = "Installs Kurdish support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DZ]
++en-US = "Dzongkha"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_DZ]
++en-US = "Installs Dzongkha support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KA]
++en-US = "Georgian"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_KA]
++en-US = "Installs Georgian support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EO]
++en-US = "Esperanto"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EO]
++en-US = "Installs Esperanto support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GU]
++en-US = "Gujarati"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_GU]
++en-US = "Installs Gujarati support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_ZA]
++en-US = "English (South Africa)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_ZA]
++en-US = "Installs English (South Africa) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_GB]
++en-US = "English (United Kingdom)"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_EN_GB]
++en-US = "Installs English (United Kingdom) support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UR_IN]
++en-US = "Urdu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UR_IN]
++en-US = "Installs Urdu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ML_IN]
++en-US = "Malayalam"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_ML_IN]
++en-US = "Installs Malayalam support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TE_IN]
++en-US = "Telugu"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TE_IN]
++en-US = "Installs Telugu support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TI_ER]
++en-US = "Tigrinya"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_TI_ER]
++en-US = "Installs Tigrinya support in %PRODUCTNAME %PRODUCTVERSION"
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UZ]
++en-US = "Uzbek"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES_BASE_LANGPACK_UZ]
++en-US = "Installs Uzbek support in %PRODUCTNAME %PRODUCTVERSION"
+diff -Naur scp2/source/accessories/module_templates_accessories.scp scp2/source/accessories/module_templates_accessories.scp
+--- scp2/source/accessories/module_templates_accessories.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_templates_accessories.scp	2008-03-23 11:10:17.000000000 +0100
+@@ -0,0 +1,71 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_templates_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++#ifndef WITHOUT_EXTRA_TEMPLATE
++
++Module gid_Module_Optional_Accessories_Templates_Main
++    MOD_NAME_DESC(MODULE_OPTIONAL_ACCESSORIES_TEMPLATES);
++    ParentID = gid_Module_Optional_Accessories;
++    Files = ( 
++        gid_File_Extra_Templates_KAMI,
++        gid_File_Extra_Templates_Layout_KAMI,
++        gid_File_Extra_Templates_Present_KAMI,
++        gid_File_Extra_Templates_Educate_KAMI,
++        gid_File_Extra_Templates_Finance_KAMI,
++        gid_File_Extra_Templates_Forms_KAMI,
++        gid_File_Extra_Templates_Labels_KAMI,
++        gid_File_Extra_Templates_Misc_KAMI,
++        gid_File_Extra_Templates_Officorr_KAMI,
++        gid_File_Extra_Templates_Offimisc_KAMI,
++        gid_File_Extra_Templates_Personal_KAMI,
++        gid_File_Extra_Templates_NONFREE_KAMI,
++        gid_File_Extra_Templates_NONFREE_Layout_KAMI,
++        gid_File_Extra_Templates_NONFREE_Present_KAMI,
++        gid_File_Extra_Templates_NONFREE_Educate_KAMI,
++        gid_File_Extra_Templates_NONFREE_Finance_KAMI,
++        gid_File_Extra_Templates_NONFREE_Forms_KAMI,
++        gid_File_Extra_Templates_NONFREE_Labels_KAMI,
++        gid_File_Extra_Templates_NONFREE_Misc_KAMI,
++        gid_File_Extra_Templates_NONFREE_Officorr_KAMI,
++        gid_File_Extra_Templates_NONFREE_Offimisc_KAMI,
++        gid_File_Extra_Templates_NONFREE_Personal_KAMI );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++#endif
+diff -Naur scp2/source/accessories/module_templates_accessories.ulf scp2/source/accessories/module_templates_accessories.ulf
+--- scp2/source/accessories/module_templates_accessories.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/accessories/module_templates_accessories.ulf	2008-03-22 15:20:50.000000000 +0100
+@@ -0,0 +1,42 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_templates_accessories.ulf,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2008/03/22 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++
++[STR_NAME_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES]
++en-US = "Templates"
++
++[STR_DESC_MODULE_OPTIONAL_ACCESSORIES_TEMPLATES]
++en-US = "Create perfect documents within seconds with document templates."
++
+
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gcjaccessproblem-filter.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gcjaccessproblem-filter.diff
@@ -0,0 +1,16 @@
+Index: source/xsltfilter/XSLTransformer.java
+===================================================================
+RCS file: /cvs/framework/filter/source/xsltfilter/XSLTransformer.java,v
+retrieving revision 1.10
+diff -u -p -r1.10 XSLTransformer.java
+--- filter/source/xsltfilter/XSLTransformer.java	29 Mar 2005 14:53:43 -0000	1.10
++++ filter/source/xsltfilter/XSLTransformer.java	3 May 2005 11:10:45 -0000
+@@ -102,7 +102,7 @@ public class XSLTransformer
+ 
+     private static final int STREAM_BUFFER_SIZE = 4000;
+     private static final String STATSPROP = "XSLTransformer.statsfile";
+-    private static PrintStream statsp;
++    static PrintStream statsp;
+ 
+     private String stylesheeturl;
+ 	private String targeturl;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/transogl-dispose-fix.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/transogl-dispose-fix.diff
@@ -0,0 +1,43 @@
+diff -rup slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
+--- slideshow/source/engine/OGLTrans-orig/OGLTrans_TransitionerImpl.cxx	2008-03-28 10:20:31.000000000 +0100
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2008-03-28 11:00:45.000000000 +0100
+@@ -209,6 +209,7 @@ void OGLTransitionerImpl::initialize( co
+         /* TODO: check for version once the bug in fglrx driver is fixed */
+         cbBrokenTexturesATI = (strcmp( (const char *) glGetString( GL_VENDOR ), "ATI Technologies Inc." ) == 0 );
+ 
++        instance->disposing();
+         delete instance;
+         initialized = true;
+     }
+@@ -343,6 +344,10 @@ bool OGLTransitionerImpl::initWindowFrom
+         return false;
+     }
+     glXMakeCurrent( GLWin.dpy, GLWin.win, GLWin.ctx );
++    if( glGetError() != GL_NO_ERROR ) {
++        OSL_TRACE("glError: %s\n", (char *)gluErrorString(glGetError()));
++        return false;
++    }
+ 
+     glEnable(GL_CULL_FACE);
+     glCullFace(GL_BACK);
+@@ -566,7 +571,10 @@ void OGLTransitionerImpl::disposing()
+ 
+     if(GLWin.ctx)
+ 	{
+-	    OSL_ENSURE( glXMakeCurrent(GLWin.dpy, None, NULL) , "Error releasing glX context" );
++        glXMakeCurrent(GLWin.dpy, None, NULL);
++        if( glGetError() != GL_NO_ERROR ) {
++            OSL_TRACE("glError: %s\n", (char *)gluErrorString(glGetError()));
++        }
+ 		glXDestroyContext(GLWin.dpy, GLWin.ctx);
+ 		GLWin.ctx = NULL;
+ 	}
+@@ -650,7 +658,7 @@ public:
+             return uno::Reference< presentation::XTransition >();
+             
+ 
+-        OGLTransitionImpl* pTransition;
++        OGLTransitionImpl* pTransition = NULL;
+ 
+         if( transitionType == animations::TransitionType::MISCSHAPEWIPE ) {
+             pTransition = new OGLTransitionImpl();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/about-build-ver-readability.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/about-build-ver-readability.diff
@@ -0,0 +1,14 @@
+--- sfx2/source/dialog/about.cxx
++++ sfx2/source/dialog/about.cxx
+@@ -222,11 +222,6 @@
+ 	aCopyrightText.SetControlForeground( aTextColor );
+ 	aBuildData.SetBackground( aWall );
+ 
+-	Font aSmallFont = rSettings.GetInfoFont();
+-	Size aSmaller = aNewFont.GetSize();
+-	aSmaller.Width() = (long) (aSmaller.Width() * 0.75);
+-	aSmaller.Height() = (long) (aSmaller.Height() * 0.75);
+-	aNewFont.SetSize( aSmaller );
+ 	aBuildData.SetFont( aNewFont );
+ 	aBuildData.SetBackground( aWall );
+ #ifdef BUILD_VER_STRING
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/scp2_extensions.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/scp2_extensions.diff
@@ -0,0 +1,267 @@
+diff -Naur scp2/source/extensions/file_extensions.scp scp2/source/extensions/file_extensions.scp
+--- scp2/source/extensions/file_extensions.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/extensions/file_extensions.scp	2008-03-29 07:50:21.000000000 +0100
+@@ -0,0 +1,65 @@
++/*************************************************************************
++*
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: file_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/07/02 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++************************************************************************/
++
++#include "macros.inc"
++
++/* *** Additional Extensions *** */
++
++/* ** SUN Presentation Minimizer ** */
++
++#ifndef WITHOUT_EXTENSION_SDEXT
++
++File gid_File_Oxt_Sun_Presentation_Minimizer
++    TXT_FILE_BODY;
++    Styles = (PACKED);
++    Dir = gid_Dir_Share_Extension_Install;
++    Name = "sun-presentation-minimizer.oxt";
++End
++
++#endif
++
++/* ** SUN Report Builder ** */
++
++#ifndef DISABLE_REPORTDESIGN
++
++File gid_File_Oxt_Sun_Report_Builder
++    TXT_FILE_BODY;
++    Styles = (PACKED);
++    Dir = gid_Dir_Share_Extension_Install;
++    Name = "sun-report-builder.oxt";
++End
++
++#endif
++
+diff -Naur scp2/source/extensions/makefile.mk scp2/source/extensions/makefile.mk
+--- scp2/source/extensions/makefile.mk	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/extensions/makefile.mk	2008-03-22 10:57:33.000000000 +0100
+@@ -0,0 +1,57 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile: makefile.mk,v $
++#
++#   $Revision: 1.0 $
++#
++#   last change: $Author: KAMI $ $Date: 2008/03/19 14:50:39 $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJPCH=
++
++PRJNAME=scp2
++TARGET=extensions
++TARGETTYPE=CUI
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :	settings.mk
++
++SCP_PRODUCT_TYPE=osl
++PARFILES= \
++        module_extensions.par             \
++        file_extensions.par
++
++ULFFILES= \
++        module_extensions.ulf
++
++# --- File ---------------------------------------------------------
++.INCLUDE :  target.mk
+diff -Naur scp2/source/extensions/module_extensions.scp scp2/source/extensions/module_extensions.scp
+--- scp2/source/extensions/module_extensions.scp	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/extensions/module_extensions.scp	2008-03-29 07:50:23.000000000 +0100
+@@ -0,0 +1,76 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_accessories.scp,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++Module gid_Module_Optional_Extensions
++    MOD_NAME_DESC(MODULE_OPTIONAL_EXTENSIONS);
++    ParentID = gid_Module_Optional;
++    Files = ( ); 
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++
++/* ** SUN Presentation Minimizer ** */
++
++#ifndef WITHOUT_EXTENSION_SDEXT
++Module gid_Module_Optional_Extensions_SDEXT
++    PackageInfo = "packinfo_office.txt";
++    MOD_NAME_DESC(MODULE_OPTIONAL_EXTENSIONS_SDEXT);
++    ParentID = gid_Module_Optional_Extensions;
++    Files = (
++        gid_File_Oxt_Sun_Presentation_Minimizer );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++#endif
++
++/* ** SUN Report Builder ** */
++
++#ifndef DISABLE_REPORTDESIGN
++Module gid_Module_Optional_Extensions_REPORTDESIGN
++    PackageInfo = "packinfo_office.txt";
++    MOD_NAME_DESC(MODULE_OPTIONAL_EXTENSIONS_REPORTDESIGN);
++    ParentID = gid_Module_Optional_Extensions;
++    Files = (
++        gid_File_Oxt_Sun_Report_Builder );
++    Minimal = NO;
++    Default = YES;
++    Styles = ( );
++End
++#endif
++					
+diff -Naur scp2/source/extensions/module_extensions.ulf scp2/source/extensions/module_extensions.ulf
+--- scp2/source/extensions/module_extensions.ulf	1970-01-01 01:00:00.000000000 +0100
++++ scp2/source/extensions/module_extensions.ulf	2008-03-29 07:50:27.000000000 +0100
+@@ -0,0 +1,53 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: module_accessories.ulf,v $
++ *
++ *  $Revision: 1.0 $
++ *
++ *  last change: $Author: KAMI $ $Date: 2006/02/18 14:50:39 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_EXTENSIONS]
++en-US = "Extensions"
++
++[STR_DESC_MODULE_OPTIONAL_EXTENSIONS]
++en-US = "Useful %PRODUCTNAME extensions."
++
++[STR_NAME_MODULE_OPTIONAL_EXTENSIONS_SDEXT]
++en-US = "SUN Presentation Minimizer"
++
++[STR_DESC_MODULE_OPTIONAL_EXTENSIONS_SDEXT]
++en-US = "SUN Presentation Minimizer"
++
++[STR_NAME_MODULE_OPTIONAL_EXTENSIONS_REPORTDESIGN]
++en-US = "SUN Report Builder"
++
++[STR_DESC_MODULE_OPTIONAL_EXTENSIONS_REPORTDESIGN]
++en-US = "SUN Report Builder"
++
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/split-binfilter-setup_native.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/split-binfilter-setup_native.diff
@@ -0,0 +1,24 @@
+--- setup_native/source/packinfo/packinfo_office.txt	2007-05-25 16:35:43.000000000 +0200
++++ setup_native/source/packinfo/packinfo_office.txt	2007-07-19 11:50:07.000000000 +0200
+@@ -159,6 +159,21 @@ destpath = "/opt/%UNIXPRODUCTNAME%PRODUC
+ End
+ 
+ Start
++module = "gid_Module_Optional_Binfilter"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-binfilter"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01"
++packagename = "%UNIXPRODUCTNAME-binfilter"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-binfilter"
++freebsdrequires = "%UNIXPRODUCTNAME-calc,%UNIXPRODUCTNAME-draw,%UNIXPRODUCTNAME-impress,%UNIXPRODUCTNAME-math,%UNIXPRODUCTNAME-writer"
++requires = "%UNIXPRODUCTNAME-calc,%UNIXPRODUCTNAME-draw,%UNIXPRODUCTNAME-impress,%UNIXPRODUCTNAME-math,%UNIXPRODUCTNAME-writer"
++copyright = "1999-2007 by OpenOffice.org"
++solariscopyright = "solariscopyrightfile"
++vendor = "OpenOffice.org"
++description = "Legacy filters (e.g. StarOffice 5.2) for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++Start
+ module = "gid_Module_Optional_Grfflt"
+ solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-graphicfilter"
+ solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-mdbdriver01.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-mdbdriver01.diff
@@ -0,0 +1,180 @@
+Index: connectivity/prj/build.lst
+===================================================================
+RCS file: /cvs/dba/connectivity/prj/build.lst,v
+retrieving revision 1.20
+retrieving revision 1.18.134.2
+diff -u -p -r1.20 -r1.18.134.2
+--- connectivity/prj/build.lst.ark	2006-11-02 13:04:09.000000000 +0100
++++ connectivity/prj/build.lst	2006-11-02 13:05:23.000000000 +0100
+@@ -1,4 +1,4 @@
+-cn  connectivity    :    comphelper MOZ:moz SO:moz_prebuilt svtools UNIXODBC:unixODBC unoil jurt javaunohelper HSQLDB:hsqldb NULL
++cn  connectivity    :    comphelper MOZ:moz SO:moz_prebuilt svtools UNIXODBC:unixODBC unoil jurt javaunohelper HSQLDB:hsqldb mdbtools NULL
+ cn  connectivity                                    usr1    -   all cn_mkout NULL
+ cn  connectivity\com\sun\star\sdbcx\comp\hsqldb     nmake   -   all cn_jhsqldbdb cn_hsqldb NULL
+ cn  connectivity\source\commontools                 nmake   -   all cn_cmtools cn_parse NULL
+@@ -22,6 +22,7 @@ cn  connectivity\source\drivers\adabas  
+ cn  connectivity\source\drivers\file                nmake   -   all cn_file cn_dbtools cn_inc NULL
+ cn  connectivity\source\drivers\flat                nmake   -   all cn_flat cn_dbtools cn_file cn_inc NULL
+ cn  connectivity\source\drivers\dbase               nmake   -   all cn_dbase cn_dbtools cn_file cn_inc NULL
++cn  connectivity\source\drivers\mdb                 nmake   -   u   cn_mdb cn_dbtools cn_file cn_inc NULL
+ cn  connectivity\source\drivers\hsqldb              nmake   -   all cn_hsqldb cn_dbtools cn_inc NULL
+ cn  connectivity\source\parse                       nmake   -   all cn_parse cn_inc NULL
+ cn  connectivity\source\simpledbt                   nmake   -   all cn_simpledbt cn_cmtools cn_inc NULL
+Index: connectivity/prj/d.lst
+===================================================================
+RCS file: /cvs/dba/connectivity/prj/d.lst,v
+retrieving revision 1.21
+retrieving revision 1.20.26.2
+diff -u -p -r1.21 -r1.20.26.2
+--- connectivity/prj/d.lst	9 Nov 2004 12:07:13 -0000	1.21
++++ connectivity/prj/d.lst	28 Jan 2005 06:43:45 -0000	1.20.26.2
+@@ -15,6 +15,7 @@
+ ..\source\drivers\evoab\*.xml %_DEST%\xml%_EXT%\*.xml
+ ..\source\drivers\calc\*.xml %_DEST%\xml%_EXT%\*.xml
+ ..\source\drivers\mysql\*.xml %_DEST%\xml%_EXT%\*.xml
++..\source\drivers\mdb\*.xml %_DEST%\xml%_EXT%\*.xml
+ ..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.jar
+ 
+ mkdir: %_DEST%\inc%_EXT%\connectivity
+Index: officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu,v
+retrieving revision 1.20
+retrieving revision 1.18.78.2
+diff -u -p -r1.20 -r1.18.78.2
+--- officecfg/registry/data/org/openoffice/Office/DataAccess.xcu	17 Nov 2004 14:07:13 -0000	1.20
++++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu	27 Jan 2005 09:13:18 -0000	1.18.78.2
+@@ -777,6 +777,19 @@
+       </node>
+     </node>
+   </node>
++	<node oor:name="UserDefinedDriverSettings">
++		<node oor:name="MDB Driver" oor:op="replace">
++			<prop oor:name="DriverPageDisplayName">
++				<value>MDB-SDBC Driver V 0.1</value>
++			</prop>
++			<prop oor:name="DriverTypeDisplayName">
++				<value>mdb</value>
++			</prop>
++			<prop oor:name="DriverDsnPrefix">
++				<value>sdbc:mdb:</value>
++			</prop>
++		</node>
++	</node>
+ </oor:component-data>
+ 
+ 
+Index: dbaccess/source/ui/dlg/detailpages.cxx
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/ui/dlg/detailpages.cxx,v
+retrieving revision 1.34
+retrieving revision 1.32.16.2
+diff -u -p -r1.34 -r1.32.16.2
+--- dbaccess/source/ui/dlg/detailpages.cxx	21 Jan 2005 17:15:13 -0000	1.34
++++ dbaccess/source/ui/dlg/detailpages.cxx	27 Jan 2005 12:53:17 -0000	1.32.16.2
+@@ -880,10 +880,9 @@ namespace dbaui
+ 		,m_aEDHostname		(this, ModuleRes(ET_HOSTNAME))
+ 		,m_aPortNumber		(this, ModuleRes(FT_PORTNUMBER))
+ 		,m_aNFPortNumber	(this, ModuleRes(NF_PORTNUMBER))
+-		,m_aSeparator2		(this, ModuleRes(FL_DATAHANDLING))
+-		,m_aUseCatalog		(this, ModuleRes(CB_USECATALOG))		
++
++	/* This function depends on dbadmin.src file*/
+ 	{
+-		m_aUseCatalog.SetToggleHdl(getControlModifiedLink());
+ 		FreeResource();
+ 	}
+ 
+@@ -900,7 +899,6 @@ namespace dbaui
+ 
+ 		fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_PORTNUMBER,bChangedSomething);
+ 		fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething);
+-		fillBool(_rSet,&m_aUseCatalog,DSID_USECATALOG,bChangedSomething);
+ 
+ 		return bChangedSomething;
+ 	}
+@@ -909,7 +907,6 @@ namespace dbaui
+ 	{
+ 		OCommonBehaviourTabPage::fillControls(_rControlList);
+ 		_rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname));
+-		_rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aUseCatalog));
+ 		_rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber));
+ 	}
+ 	// -----------------------------------------------------------------------
+@@ -918,7 +915,6 @@ namespace dbaui
+ 		OCommonBehaviourTabPage::fillWindows(_rControlList);
+ 		_rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname));
+ 		_rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber));
+-		_rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aSeparator2));
+ 	}
+ 	// -----------------------------------------------------------------------
+ 	void OUserDriverDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+@@ -927,7 +923,6 @@ namespace dbaui
+ 		sal_Bool bValid, bReadonly;
+ 		getFlags(_rSet, bValid, bReadonly);
+ 
+-		SFX_ITEMSET_GET(_rSet, pUseCatalogItem, SfxBoolItem, DSID_USECATALOG, sal_True);
+ 		SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True);
+ 		SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_PORTNUMBER, sal_True);
+ 
+@@ -939,7 +934,6 @@ namespace dbaui
+ 			m_aNFPortNumber.SetValue(pPortNumber->GetValue());
+ 			m_aNFPortNumber.ClearModifyFlag();
+ 
+-			m_aUseCatalog.Check(pUseCatalogItem->GetValue());
+ 		}
+ 
+ 		OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
+Index: dbaccess/source/ui/dlg/detailpages.hxx
+===================================================================
+RCS file: /cvs/dba/dbaccess/source/ui/dlg/detailpages.hxx,v
+retrieving revision 1.21
+retrieving revision 1.20.16.2
+diff -u -p -r1.21 -r1.20.16.2
+--- dbaccess/source/ui/dlg/detailpages.hxx	27 Oct 2004 13:03:38 -0000	1.21
++++ dbaccess/source/ui/dlg/detailpages.hxx	27 Jan 2005 12:53:44 -0000	1.20.16.2
+@@ -255,8 +255,7 @@ namespace dbaui
+ 		Edit				m_aEDHostname;
+ 		FixedText			m_aPortNumber;
+ 		NumericField		m_aNFPortNumber;
+-		FixedLine			m_aSeparator2;
+-		CheckBox			m_aUseCatalog;
++	/* This function depends on dbadmin.src file*/
+ 	};
+ 
+ 	//========================================================================
+Index: scp2/source/ooo/file_library_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
+retrieving revision 1.80
+retrieving revision 1.32.8.3
+diff -u -p -r1.80 -r1.32.8.3
+--- scp2/source/ooo/file_library_ooo.scp	25 Jan 2005 09:40:50 -0000	1.80
++++ scp2/source/ooo/file_library_ooo.scp	27 Jan 2005 14:45:43 -0000	1.32.8.3
+@@ -2039,6 +2039,13 @@ File gid_File_Lib_Sunjavaplugin
+ End
+ #endif
+ 
++#ifdef ENABLE_ACCESS
++#ifdef UNX
++STD_UNO_LIB_FILE( gid_File_Lib_Mdb2, mdb )
++STD_UNO_LIB_FILE( gid_File_Lib_Mdb2_Impl, mdbimpl )
++#endif
++#endif
++
+ // AVMedia
+ STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
+ 
+--- scp2/source/ooo/makefile.mk	2005-08-04 18:45:47.285289074 +0530
++++ scp2/source/ooo/makefile.mk	2005-08-04 18:44:13.069615555 +0530
+@@ -142,6 +142,10 @@
+ SCPDEFS+=-DSYSTEM_CURL
+ .ENDIF
+ 
++.IF "$(ENABLE_ACCESS)" == "YES"
++SCPDEFS+=-DENABLE_ACCESS
++.ENDIF
++
+ .IF "$(WITH_BINFILTER)" == "NO"
+ SCPDEFS+=-DWITHOUT_BINFILTER
+ .ENDIF
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-late-init.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-late-init.diff
@@ -0,0 +1,143 @@
+diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
+index e8e06b6..6c231fa 100644
+--- desktop/source/app/appinit.cxx
++++ desktop/source/app/appinit.cxx
+@@ -213,7 +213,6 @@ static bool configureUcb(bool bServer, rtl::OUString const & rPortalConnect)
+                 {
+                     Reference<XContentProviderManager> xCPM =
+                         cb->getContentProviderManagerInterface();
+-#if 0
+ 
+                     Reference<XContentProviderFactory> xCPF(
+                         xServiceFactory->createInstance(
+@@ -229,24 +228,6 @@ static bool configureUcb(bool bServer, rtl::OUString const & rPortalConnect)
+                             ),
+                             rtl::OUString::createFromAscii(".*"),
+                             false);
+-#else
+-
+-		    // Workaround for P1 #124597#.  Instanciate GNOME-VFS-UCP in the thread that initialized
+- 		    // GNOME in order to avoid a deadlock that may occure in case UCP gets initialized from
+-		    // a different thread. The latter may happen when calling the Office remotely via UNO.  
+-		    // THIS IS NOT A FIX, JUST A WORKAROUND!
+-
+-                    Reference<XContentProvider> xCP(
+-                        xServiceFactory->createInstance(
+-                            rtl::OUString::createFromAscii(
+-                                "com.sun.star.ucb.GnomeVFSContentProvider")),
+-                        UNO_QUERY);
+-                    if(xCP.is())
+-                        xCPM->registerContentProvider(
+-                            xCP,
+-                            rtl::OUString::createFromAscii(".*"),
+-                            false);
+-#endif
+                 }
+             }
+         } catch (RuntimeException e) {
+diff --git a/ucb/source/ucp/gvfs/makefile.mk b/ucb/source/ucp/gvfs/makefile.mk
+index b071745..074a9fa 100644
+--- ucb/source/ucp/gvfs/makefile.mk
++++ ucb/source/ucp/gvfs/makefile.mk
+@@ -88,6 +88,7 @@ SHL1STDLIBS=\
+ 	$(CPPULIB) \
+ 	$(SALLIB)  \
+ 	$(SALHELPERLIB)  \
++	$(VCLLIB)  \
+ 	$(UCBHELPERLIB)
+ 
+ SHL1STDLIBS+=$(PKGCONFIG_LIBS)
+diff --git a/ucb/source/ucp/gvfs/provider.cxx b/ucb/source/ucp/gvfs/provider.cxx
+index 99cbb9e..12430a5 100644
+--- ucb/source/ucp/gvfs/provider.cxx
++++ ucb/source/ucp/gvfs/provider.cxx
+@@ -37,6 +37,9 @@
+ #include "precompiled_ucb.hxx"
+ 
+ #include <ucbhelper/contentidentifier.hxx>
++#include <osl/mutex.hxx>
++#include <vcl/svapp.hxx>
++
+ #include <libgnomevfs/gnome-vfs-init.h>
+ #include "provider.hxx"
+ #include "content.hxx"
+@@ -202,6 +205,55 @@ component_writeInfo( void */*pServiceManager*/,
+ 			   ::gvfs::ContentProvider::getImplementationName_Static(),
+ 			   ::gvfs::ContentProvider::getSupportedServiceNames_Static() );
+ }
++
++/* This class is here to be able to initialize gnome-vfs in the main thread */
++class GnomeVFSInitializator
++{
++private:
++    osl::Mutex m_aLock;
++    bool m_bInitialized;
++
++public:
++    GnomeVFSInitializator() : m_bInitialized( false ) {}
++
++    void init()
++    {
++        Application::PostUserEvent( LINK( this, GnomeVFSInitializator, ImplInitializeGnomeVFS ) );
++
++        // cannot use a condition variable here, leads to a deadlock
++        while (1)
++        {
++            {
++                osl::MutexGuard aGuard( m_aLock );
++                if ( m_bInitialized )
++                    break;
++            }
++            Application::Yield();
++        }
++    }
++
++private:
++    DECL_LINK( ImplInitializeGnomeVFS, void* );
++};
++
++IMPL_LINK( GnomeVFSInitializator, ImplInitializeGnomeVFS, void*, EMPTYARG )
++{
++    osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() );
++
++    // this must be performed in the same thread where we initialized
++    // Gtk+ (if we did)
++    if ( !gnome_vfs_initialized () )
++        gnome_vfs_init ();
++    if ( !auth_queue )
++        auth_queue = g_private_new( auth_queue_destroy );
++
++    m_aLock.acquire();
++    m_bInitialized = true;
++    m_aLock.release();
++
++    return 0;
++}
++
+ extern "C" void * SAL_CALL
+ component_getFactory( const sal_Char *pImplName,
+ 		      void           *pServiceManager,
+@@ -209,13 +261,8 @@ component_getFactory( const sal_Char *pImplName,
+ {
+ 	void * pRet = 0;
+ 
+-	{
+-		osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
+-		if (!gnome_vfs_initialized ())
+-			gnome_vfs_init ();
+-		if (!auth_queue)
+-			auth_queue = g_private_new( auth_queue_destroy );
+-	}
++	GnomeVFSInitializator aInitializator;
++	aInitializator.init();
+ 
+ 	uno::Reference< lang::XMultiServiceFactory > xSMgr
+ 		(reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ) );
+--- ucb/prj/build.lst.old	2007-11-26 13:43:29.000000000 +0100
++++ ucb/prj/build.lst	2008-03-06 15:06:44.000000000 +0100
+@@ -1,4 +1,4 @@
+-uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 offapi sal salhelper ucbhelper udkapi comphelper NULL
++uc ucb : cppuhelper CURL:curl OPENSSL:openssl NEON:neon LIBXML2:libxml2 offapi sal salhelper ucbhelper udkapi comphelper vcl NULL
+ uc	ucb							usr1	-	all	uc_mkout NULL
+ uc	ucb\inc					    nmake	-	all	uc_inc NULL
+ uc	ucb\source\regexp		    nmake	-	all	uc_regexp uc_inc NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/setup_native-package-glib2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/setup_native-package-glib2.diff
@@ -0,0 +1,26 @@
+diff -u -r setup_native.orig/source/packinfo/packinfo_office.txt setup_native/source/packinfo/packinfo_office.txt
+--- setup_native.orig/source/packinfo/packinfo_office.txt	2008-01-14 22:00:07.000000000 +0100
++++ setup_native/source/packinfo/packinfo_office.txt	2008-01-14 22:02:01.000000000 +0100
+@@ -17,6 +17,22 @@
+ # End
+ 
+ Start
++module = "gid_Module_Optional_Glib2"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-glib2"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01"
++packagename = "%UNIXPRODUCTNAME-glib2"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-glib2"
++freebsdrequires = "%UNIXPRODUCTNAME-core01"
++requires = "%UNIXPRODUCTNAME-core01"
++conflicts = "glib2 >= 2.8.6"
++copyright = "1999-2006 by %PRODUCTNAME"
++solariscopyright = "solariscopyrightfile"
++vendor = "%PRODUCTNAME"
++description = "Optional glib2 libraries for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++Start
+ module = "gid_Module_Optional_Gnome"
+ solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-gnome-integration"
+ solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01, SUNWgnome-vfs, SUNWgnome-config"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-sandbox.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-sandbox.diff
@@ -0,0 +1,4 @@
+--- sandbox/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ sandbox/prj/tests.lst	2007-09-07 08:35:28.000000000 +0200
+@@ -0,0 +1 @@
++ox   sandbox\test\com\sun\star\lib\sandbox              nmake - all ox_test_com_sun_star_lib_sandbox ox_sandb NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-autofilter-empty-nonempty.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-autofilter-empty-nonempty.diff
@@ -0,0 +1,42 @@
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/view/gridwin.cxx	2003-06-02 12:58:42.000000000 +0530
++++ sc/source/ui/view/gridwin.cxx	2004-10-11 11:22:24.000000000 +0530
+@@ -159,6 +159,8 @@
+ #define SC_AUTOFILTER_ALL		0
+ #define        SC_AUTOFILTER_TOP10     1
+ #define        SC_AUTOFILTER_CUSTOM    2
++#define        SC_AUTOFILTER_EMPTY     3
++#define        SC_AUTOFILTER_NOTEMPTY  4
+ 
+ //	Modi fuer die FilterListBox
+ enum ScFilterBoxMode
+@@ -711,7 +713,7 @@
+ 		long nMaxText = 0;
+ 
+ 		//	default entries
+-        static const USHORT nDefIDs[] = { SCSTR_ALLFILTER, SCSTR_TOP10FILTER, SCSTR_STDFILTER };
++        static const USHORT nDefIDs[] = { SCSTR_ALLFILTER, SCSTR_TOP10FILTER, SCSTR_STDFILTER, SCSTR_EMPTY, SCSTR_NOTEMPTY };
+ 		const USHORT nDefCount = sizeof(nDefIDs) / sizeof(USHORT);
+ 		for (i=0; i<nDefCount; i++)
+ 		{
+@@ -1087,6 +1089,21 @@
+ 						rNewEntry.eOp	= SC_TOPVAL;
+ 						*rNewEntry.pStr	= String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("10"));
+ 					}
++					else if (nSel == SC_AUTOFILTER_EMPTY)
++					{
++						rNewEntry.pStr->Erase();
++						rNewEntry.bQueryByString = FALSE;
++						rNewEntry.eOp	= SC_EQUAL;
++						rNewEntry.nVal	= SC_EMPTYFIELDS;
++									
++					}
++					else if (nSel == SC_AUTOFILTER_NOTEMPTY)
++					{
++						rNewEntry.pStr->Erase();
++						rNewEntry.bQueryByString = FALSE;				
++						rNewEntry.eOp	= SC_EQUAL;
++						rNewEntry.nVal	= SC_NONEMPTYFIELDS;				
++					}				
+ 					else
+ 					{
+ 						rNewEntry.eOp	= SC_EQUAL;
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gccXXXXX.solenv.javaregistration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gccXXXXX.solenv.javaregistration.diff
@@ -0,0 +1,32 @@
+Index: bin/modules/installer/servicesfile.pm
+===================================================================
+RCS file: /cvs/tools/solenv/bin/modules/installer/servicesfile.pm,v
+retrieving revision 1.23
+diff -u -r1.23 servicesfile.pm
+--- solenv/bin/modules/installer/servicesfile.pm	10 Jul 2006 18:51:00 -0000	1.23
++++ solenv/bin/modules/installer/servicesfile.pm	23 Feb 2007 16:12:39 -0000
+@@ -258,7 +258,7 @@
+ 					$counter++;
+ 				}
+ 			
+-				if ((( $counter > 0 ) && ( $counter%$installer::globals::javamaxservices == 0 )) || (( $counter > 0 ) && ( $i == $#{$javacomponents} )))	# limiting to $installer::globals::maxservices files
++				if ( $counter > 0 )
+ 				{
+ 					$filestring =~ s/\;\s*$//;
+ 					chdir($onesourcepath);
+Index: bin/modules/installer/globals.pm
+===================================================================
+RCS file: /cvs/tools/solenv/bin/modules/installer/globals.pm,v
+retrieving revision 1.62.2.3
+diff -u -r1.62.2.3 globals.pm
+--- solenv/bin/modules/installer/globals.pm	24 Jan 2007 16:34:05 -0000	1.62.2.3
++++ solenv/bin/modules/installer/globals.pm	23 Feb 2007 11:02:01 -0000
+@@ -256,7 +256,7 @@
+ 	@solarispatchfiles = (".diPatch", "patchinfo");
+ 	@environmentvariables = ( "SOLARVERSION", "GUI", "WORK_STAMP", "OUTPATH", "LOCAL_OUT", "LOCAL_COMMON_OUT" );
+ 	@packagelistitems = ("module", "solarispackagename", "packagename", "copyright", "vendor", "description" );
+-	@regcompjars = ( "unoil.jar", "java_uno.jar", "ridl.jar", "jurt.jar", "juh.jar", "xmerge.jar", "commonwizards.jar" );
++	@regcompjars = ( "unoil.jar", "java_uno.jar", "ridl.jar", "jurt.jar", "juh.jar", "commonwizards.jar" );
+ 	@regcompregisterlibs = ( "javavm.uno", "javaloader.uno", "uriproc.uno" );
+ 	@languagepackfeature =();
+ 	@featurecollector =();
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/helpcontent2-hungarian-fonts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/helpcontent2-hungarian-fonts.diff
@@ -0,0 +1,75 @@
+--- helpcontent2/source/auxiliary.orig/hu/default.css	2005-10-28 12:12:08.000000000 +0200
++++ helpcontent2/source/auxiliary/hu/default.css	2006-01-16 17:37:43.944428100 +0100
+@@ -10,10 +10,10 @@
+ 
+ 
+ body, p, h1, h2, h3, h4, h5, h6, .listitem, .listitemintable, .tablecontent, .tablecontentintable
+-	{ font-family: "Bitstream Vera Sans",Arial,Helvetica,Lucida,Geneva,Helmet,sans-serif,"Andale Sans UI","Arial Unicode MS","Lucida Sans Unicode",Tahoma; }
++	{ font-family: Arial,"DejaVu Sans",FreeSans,"Nimbus Sans L","Arial Unicode MS","Lucida Sans Unicode",Tahoma,Lucida,Helvetica,Helmet,"Bitstream Vera Sans",sans-serif; }
+ 
+ .code, .codeintable, .example, .exampleintable, .literal, .literalintable, .path, .pathintable
+-	{ font-family: "Bitstream Vera Sans Mono",Cumberland,"Courier New",Courier,"Lucida Sans Typewriter","Lucida Typewriter",Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
++	{ font-family: "Courier New","DejaVu Sans Mono",FreeMono,"Nimbus Mono L","Lucida Sans Typewriter","Lucida Typewriter","Bitstream Vera Sans Mono",Cumberland,Courier,Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
+ 
+ .acronym 
+ 	{ font-weight: bold; }
+--- helpcontent2/source/auxiliary.orig/hu/highcontrast1.css	2005-10-28 12:12:18.000000000 +0200
++++ helpcontent2/source/auxiliary/hu/highcontrast1.css	2006-01-16 17:37:43.881927300 +0100
+@@ -10,10 +10,10 @@
+ 
+ 
+ body, p, h1, h2, h3, h4, h5, h6, .listitem, .listitemintable, .tablecontent, .tablecontentintable
+-	{ font-family: "Bitstream Vera Sans",Arial,Helvetica,Lucida,Geneva,Helmet,sans-serif,"Andale Sans UI","Arial Unicode MS","Lucida Sans Unicode",Tahoma; }
++	{ font-family: Arial,"DejaVu Sans",FreeSans,"Nimbus Sans L","Arial Unicode MS","Lucida Sans Unicode",Tahoma,Lucida,Helvetica,Helmet,"Bitstream Vera Sans",sans-serif; }
+ 
+ .code, .codeintable, .example, .exampleintable, .literal, .literalintable, .path, .pathintable
+-	{ font-family: "Bitstream Vera Sans Mono",Cumberland,"Courier New",Courier,"Lucida Sans Typewriter","Lucida Typewriter",Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
++	{ font-family: "Courier New","DejaVu Sans Mono",FreeMono,"Nimbus Mono L","Lucida Sans Typewriter","Lucida Typewriter","Bitstream Vera Sans Mono",Cumberland,Courier,Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
+ 
+ .acronym 
+ 	{ font-weight: bold;}
+--- helpcontent2/source/auxiliary.orig/hu/highcontrast2.css	2005-10-28 12:12:33.000000000 +0200
++++ helpcontent2/source/auxiliary/hu/highcontrast2.css	2006-01-16 17:37:43.819426500 +0100
+@@ -10,10 +10,10 @@
+ 
+ 
+ body, p, h1, h2, h3, h4, h5, h6, .listitem, .listitemintable, .tablecontent, .tablecontentintable
+-	{ font-family: "Bitstream Vera Sans",Arial,Helvetica,Lucida,Geneva,Helmet,sans-serif,"Andale Sans UI","Arial Unicode MS","Lucida Sans Unicode",Tahoma; }
++	{ font-family: Arial,"DejaVu Sans",FreeSans,"Nimbus Sans L","Arial Unicode MS","Lucida Sans Unicode",Tahoma,Lucida,Helvetica,Helmet,"Bitstream Vera Sans",sans-serif; }
+ 
+ .code, .codeintable, .example, .exampleintable, .literal, .literalintable, .path, .pathintable
+-	{ font-family: "Bitstream Vera Sans Mono",Cumberland,"Courier New",Courier,"Lucida Sans Typewriter","Lucida Typewriter",Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
++	{ font-family: "Courier New","DejaVu Sans Mono",FreeMono,"Nimbus Mono L","Lucida Sans Typewriter","Lucida Typewriter","Bitstream Vera Sans Mono",Cumberland,Courier,Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
+ 
+ .acronym 
+ 	{ font-weight: bold;}
+--- helpcontent2/source/auxiliary.orig/hu/highcontrastblack.css	2005-10-28 12:12:44.000000000 +0200
++++ helpcontent2/source/auxiliary/hu/highcontrastblack.css	2006-01-16 17:37:43.756925700 +0100
+@@ -10,10 +10,10 @@
+ 
+ 
+ body, p, h1, h2, h3, h4, h5, h6, .listitem, .listitemintable, .tablecontent, .tablecontentintable
+-	{ font-family: "Bitstream Vera Sans",Arial,Helvetica,Lucida,Geneva,Helmet,sans-serif,"Andale Sans UI","Arial Unicode MS","Lucida Sans Unicode",Tahoma; }
++	{ font-family: Arial,"DejaVu Sans",FreeSans,"Nimbus Sans L","Arial Unicode MS","Lucida Sans Unicode",Tahoma,Lucida,Helvetica,Helmet,"Bitstream Vera Sans",sans-serif; }
+ 
+ .code, .codeintable, .example, .exampleintable, .literal, .literalintable, .path, .pathintable
+-	{ font-family: "Bitstream Vera Sans Mono",Cumberland,"Courier New",Courier,"Lucida Sans Typewriter","Lucida Typewriter",Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
++	{ font-family: "Courier New","DejaVu Sans Mono",FreeMono,"Nimbus Mono L","Lucida Sans Typewriter","Lucida Typewriter","Bitstream Vera Sans Mono",Cumberland,Courier,Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
+ 
+ .acronym 
+ 	{ font-weight: bold;}
+--- helpcontent2/source/auxiliary.orig/hu/highcontrastwhite.css	2005-10-28 12:12:55.000000000 +0200
++++ helpcontent2/source/auxiliary/hu/highcontrastwhite.css	2006-01-16 17:37:43.600673700 +0100
+@@ -10,10 +10,10 @@
+ 
+ 
+ body, p, h1, h2, h3, h4, h5, h6, .listitem, .listitemintable, .tablecontent, .tablecontentintable
+-	{ font-family: "Bitstream Vera Sans",Arial,Helvetica,Lucida,Geneva,Helmet,sans-serif,"Andale Sans UI","Arial Unicode MS","Lucida Sans Unicode",Tahoma; }
++	{ font-family: Arial,"DejaVu Sans",FreeSans,"Nimbus Sans L","Arial Unicode MS","Lucida Sans Unicode",Tahoma,Lucida,Helvetica,Helmet,"Bitstream Vera Sans",sans-serif; }
+ 
+ .code, .codeintable, .example, .exampleintable, .literal, .literalintable, .path, .pathintable
+-	{ font-family: "Bitstream Vera Sans Mono",Cumberland,"Courier New",Courier,"Lucida Sans Typewriter","Lucida Typewriter",Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
++	{ font-family: "Courier New","DejaVu Sans Mono",FreeMono,"Nimbus Mono L","Lucida Sans Typewriter","Lucida Typewriter","Bitstream Vera Sans Mono",Cumberland,Courier,Monaco,Monospaced; margin-top: 1pt; margin-bottom: 1pt;}
+ 
+ .acronym 
+ 	{ font-weight: bold;}
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-ridljar.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-ridljar.diff
@@ -0,0 +1,7 @@
+--- ridljar/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ ridljar/prj/tests.lst	2007-09-07 09:40:39.000000000 +0200
+@@ -0,0 +1,4 @@
++#doest not build: ri   ridljar\test\com\sun\star\lib\uno\typedesc         nmake - all ri_test_com_sun_star_lib_uno_typedesc NULL
++#doest not build: ri   ridljar\test\com\sun\star\lib\util                 nmake - all ri_test_com_sun_star_lib_util NULL
++#doest not build: ri   ridljar\test\com\sun\star\uno                      nmake - all ri_test_com_sun_star_uno NULL
++#not necessary: ri   ridljar\test                                       nmake - all ri_test NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium_macro_dialog.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium_macro_dialog.diff
@@ -0,0 +1,9 @@
+--- wizards/source/config/dialog.xlc.orig	2006-05-17 09:41:42.000000000 +0200
++++ wizards/source/config/dialog.xlc	2006-07-02 13:52:46.062500000 +0200
+@@ -12,4 +12,6 @@
+  <library:library library:name="Euro" library:link="true"/>
+  <library:library library:name="Depot" library:link="true"/>
+  <library:library library:name="ScriptBindingLibrary" library:link="true"/>
++ <library:library library:name="Premium" library:link="true"/>
++ <library:library library:name="OOoWikipedia" library:link="true"/>
+ </library:libraries>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-chart2.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-chart2.diff
@@ -0,0 +1,9 @@
+--- chart2/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ chart2/prj/tests.lst	2007-09-07 18:35:34.000000000 +0200
+@@ -0,0 +1,6 @@
++#does not build: ch   chart2\qa\unoapi                                   nmake - all ch_qa_unoapi NULL
++#does not build: ch   chart2\qa                                          nmake - all ch_qa NULL
++
++# older tests:
++ch   chart2\workbench\addin                             nmake - all ch_workbench_addin NULL
++#does not build: ch   chart2\workbench\anyperformance                    nmake - all ch_workbench_anyperformance NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-excform8-wntmsci-miscompilation.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-excform8-wntmsci-miscompilation.diff
@@ -0,0 +1,14 @@
+--- sc/source/filter/excel/makefile.mk
++++ sc/source/filter/excel/makefile.mk
+@@ -126,6 +126,11 @@
+ 		$(SLO)$/xiescher.obj
+ .ENDIF
+ 
++.IF "$(GUI)$(COM)$(CPU)" == "WNTMSCI"
++NOOPTFILES = \
++		$(SLO)$/excform8.obj
++.ENDIF
++
+ EXCEPTIONSFILES = \
+ 		$(SLO)$/excdoc.obj					\
+ 		$(SLO)$/excform.obj					\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-soffice-config.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-soffice-config.diff
@@ -0,0 +1,112 @@
+--- desktop/scripts/soffice.sh~	2007-03-27 15:04:38.380150637 +0200
++++ desktop/scripts/soffice.sh	2007-03-27 19:49:12.717713134 +0200
+@@ -39,13 +39,102 @@
+ # export STAR_PROFILE_LOCKING_DISABLED
+ #
+ 
+-# file locking now enabled by default
+-SAL_ENABLE_FILE_LOCKING=1
+-export SAL_ENABLE_FILE_LOCKING
+-
+-# Uncomment the line below if you suspect that OpenGL is not
+-# working on your system.
+-# SAL_NOOPENGL=true; export SAL_NOOPENGL
++if test -z "$HOME"; then
++    HOME=$(getent passwd $(whoami) | cut -d":" -f6)
++fi
++
++# Ubuntu helper functions
++file_or_home_on_nfs()
++{
++    case $(stat -f -c %T $HOME) in nfs*|smb)
++        return 0
++    esac
++    for i; do
++       case "$i" in -*) continue; esac
++       [ -f "$i" ] || continue
++       case $(stat -f -c %T "$i") in nfs*|smb)
++            return 0
++       esac
++    done
++    return 1
++}
++
++# FIXME: this is conservative; allow more known working configurations
++working_opengl_support()
++{
++    if [ -n "$(lsmod | awk '/^(fglrx|nvidia)/ {print $1}')" ]; then
++	return 1
++    fi
++    return 0
++}
++
++# read Ubuntu config file
++
++FILE_LOCKING=auto
++OPENGL_SUPPORT=no
++if [ -f /etc/openoffice/soffice.sh ]; then
++    . /etc/openoffice/soffice.sh
++fi
++
++# sanity checks
++
++case "$FILE_LOCKING" in
++    auto|yes|no) ;;
++    *)
++        echo >&2 "unknown value '$FILE_LOCKING' for FILE_LOCKING parameter."
++	FILE_LOCKING=auto
++	echo >&2 "FILE_LOCKING reset to '$FILE_LOCKING'"
++esac
++    
++case "$OPENGL_SUPPORT" in
++    auto|yes|no) ;;
++    *)
++        echo >&2 "unknown value '$OPENGL_SUPPORT' for OPENGL_SUPPORT parameter."
++	OPENGL_SUPPORT=auto
++	echo >&2 "OPENGL_SUPPORT reset to '$OPENGL_SUPPORT'"
++esac
++
++# adjust environment
++
++if [ -z "$SAL_ENABLE_FILE_LOCKING" ]; then
++    case "$FILE_LOCKING" in
++	auto)
++        file_or_home_on_nfs "$@"
++        if [ $? -eq 0 ]; then
++            # file locking now enabled by default
++	    SAL_ENABLE_FILE_LOCKING=1
++	    export SAL_ENABLE_FILE_LOCKING
++	fi
++        ;;
++	yes)
++	SAL_ENABLE_FILE_LOCKING=1
++	export SAL_ENABLE_FILE_LOCKING
++        ;;
++	no)
++	SAL_ENABLE_FILE_LOCKING=0
++	export SAL_ENABLE_FILE_LOCKING
++    esac
++fi
++
++if [ -z "$SAL_NOOPENGL" ]; then
++    case "$OPENGL_SUPPORT" in
++	auto)
++        working_opengl_support
++        if [ $? -eq 0 ]; then
++	    SAL_NOOPENGL=true
++	    export SAL_NOOPENGL
++	fi
++        ;;
++	yes)
++	:
++	unset SAL_NOOPENGL
++	#export SAL_NOOPENGL
++        ;;
++	no)
++	SAL_NOOPENGL=true
++	export SAL_NOOPENGL
++    esac
++fi
+ 
+ sd_platform=`uname -s`
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/shell-senddoc-moz-wrapper-symlink.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/shell-senddoc-moz-wrapper-symlink.diff
@@ -0,0 +1,11 @@
+--- shell/source/unix/misc/senddoc.sh.old	2008-03-19 15:24:48.000000000 +0100
++++ shell/source/unix/misc/senddoc.sh	2008-03-19 16:46:00.000000000 +0100
+@@ -27,7 +27,7 @@ run_mozilla() {
+ 		moz=$1
+ 	fi
+ 
+-	if file "$moz" | grep "script" > /dev/null && grep "[NM]PL" "$moz" > /dev/null; then
++	if file -L "$moz" | grep "script" > /dev/null && grep "[NM]PL" "$moz" > /dev/null; then
+ 		"$moz" -remote 'ping()' 2>/dev/null >/dev/null
+ 		if [ $? -eq 2 ]; then
+ 			"$1" -compose "$2" &
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-preserve-imp-opts.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-preserve-imp-opts.diff
@@ -0,0 +1,411 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=officecfg.vpj officecfg.clean/registry/schema/org/openoffice/Office/Calc.xcs officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+--- officecfg.clean/registry/schema/org/openoffice/Office/Calc.xcs	2008-04-28 18:35:57.000000000 -0400
++++ officecfg/registry/schema/org/openoffice/Office/Calc.xcs	2008-04-28 18:36:03.000000000 -0400
+@@ -1024,6 +1024,72 @@
+ 				<value>NULL</value>
+ 			</prop>
+ 		</group>
++		<group oor:name="Dialogs">
++			<info>
++				<desc>Contains the dialogs settings.</desc>
++			</info>
++			<group oor:name="CSVImport">
++				<info>
++					<desc>Contains setting for Text CSV Import</desc>
++				</info>
++				<prop oor:name="MergeDelimiters" oor:type="xs:boolean">
++					<info>
++						<author>muthusuba</author>
++						<desc>Merge Delimiter check box status</desc>
++						<label>MergeDelimiters</label>
++					</info>
++					<value>false</value>
++				</prop>
++				<prop oor:name="Separators" oor:type="xs:string">
++					<info>
++						<author>muthusuba</author>
++						<desc>List of Separators - as a String</desc>
++						<label>Separators</label>
++					</info>
++					<value>;	</value>
++				</prop>
++				<prop oor:name="TextSeparators" oor:type="xs:string">
++					<info>
++						<author>muthusuba</author>
++						<desc>Text Separators</desc>
++						<label>TextSeparators</label>
++					</info>
++					<value>"</value>
++				</prop>
++				<prop oor:name="FixedWidth" oor:type="xs:boolean">
++					<info>
++						<author>muthusuba</author>
++						<desc>Fixed width</desc>
++						<label>FixedWidth</label>
++					</info>
++					<value>false</value>
++				</prop>
++				<prop oor:name="FromRow" oor:type="xs:int">
++					<info>
++						<author>muthusuba</author>
++						<desc>From Row</desc>
++						<label>FromRow</label>
++					</info>
++					<value>1</value>
++				</prop>
++				<prop oor:name="CharSet" oor:type="xs:int">
++					<info>
++						<author>muthusuba</author>
++						<desc>Char Set</desc>
++						<label>CharSet</label>
++					</info>
++					<value>-1</value>
++				</prop>
++				<prop oor:name="FixedWidthList" oor:type="xs:string">
++					<info>
++						<author>muthusuba</author>
++						<desc>Fixed Width List of separators</desc>
++						<label>FixedWidthList</label>
++					</info>
++					<value></value>
++				</prop>
++			</group>
++		</group>
+ 		<group oor:name="Calculate">
+ 			<info>
+ 				<desc>Contains settings that affect cell calculation.</desc>
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/csvruler.cxx sc/source/ui/dbgui/csvruler.cxx
+--- sc.clean/source/ui/dbgui/csvruler.cxx	2008-04-28 17:33:09.000000000 -0400
++++ sc/source/ui/dbgui/csvruler.cxx	2008-04-28 19:23:31.000000000 -0400
+@@ -48,8 +48,76 @@
+ #endif
+ 
+ 
++#include <optutil.hxx>
++#include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/uno/Sequence.hxx>
++#include "miscuno.hxx"
++
++using namespace rtl;
++using namespace com::sun::star::uno;
++
++
++
++// ============================================================================
++#define SEP_PATH            "Office.Calc/Dialogs/CSVImport"
++#define FIXED_WIDTH_LIST    "FixedWidthList"
++
++
+ // ============================================================================
+ 
++static void load_FixedWidthList(ScCsvSplits &aSplits)
++{
++    String sSplits;
++    OUString sFixedWidthLists;
++
++    Sequence<Any>aValues;
++    const Any *pProperties;
++    Sequence<OUString> aNames(1);
++    OUString* pNames = aNames.getArray();
++    ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
++
++    pNames[0] = OUString::createFromAscii( FIXED_WIDTH_LIST );
++    aValues = aItem.GetProperties( aNames );
++    pProperties = aValues.getConstArray();
++
++    if( pProperties[0].hasValue() )
++    {
++        aSplits.Clear();
++        pProperties[0] >>= sFixedWidthLists;
++
++        sSplits = String( sFixedWidthLists );
++
++        // String ends with a semi-colon so there is no 'int' after the last one.
++        for(int i=0;i<sSplits.GetTokenCount()-1;i++ )
++            aSplits.Insert( sSplits.GetToken(i).ToInt32() );
++    }
++}
++static void save_FixedWidthList(ScCsvSplits aSplits)
++{
++    int i;
++    String sSplits;
++    // Create a semi-colon separated string to save the splits
++    for(i=0;i<aSplits.Count();i++)
++    {
++        sSplits.Append( String::CreateFromInt32( aSplits[i] ) );
++        sSplits.Append((char)';');
++    }
++
++    OUString sFixedWidthLists = OUString( sSplits );
++    Sequence<Any> aValues;
++    Any *pProperties;
++    Sequence<OUString> aNames(1);
++    OUString* pNames = aNames.getArray();
++    ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
++
++    pNames[0] = OUString::createFromAscii( FIXED_WIDTH_LIST );
++    aValues = aItem.GetProperties( aNames );
++    pProperties = aValues.getArray();
++    pProperties[0] <<= sFixedWidthLists;
++
++    aItem.PutProperties(aNames, aValues);
++}
++
+ ScCsvRuler::ScCsvRuler( ScCsvControl& rParent ) :
+     ScCsvControl( rParent ),
+     mnPosCursorLast( 1 )
+@@ -59,6 +127,13 @@ ScCsvRuler::ScCsvRuler( ScCsvControl& rP
+     InitSizeData();
+     maBackgrDev.SetFont( GetFont() );
+     maRulerDev.SetFont( GetFont() );
++
++    load_FixedWidthList( maSplits );
++}
++
++ScCsvRuler::~ScCsvRuler()
++{
++    save_FixedWidthList( maSplits );
+ }
+ 
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/scuiasciiopt.cxx sc/source/ui/dbgui/scuiasciiopt.cxx
+--- sc.clean/source/ui/dbgui/scuiasciiopt.cxx	2008-04-28 17:33:09.000000000 -0400
++++ sc/source/ui/dbgui/scuiasciiopt.cxx	2008-04-28 19:29:34.000000000 -0400
+@@ -56,6 +56,12 @@
+ // ause
+ #include "editutil.hxx"
+ 
++#include <optutil.hxx>
++#include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/uno/Sequence.hxx>
++#include "miscuno.hxx"
++
++
+ //! TODO make dynamic
+ #ifdef WIN
+ const SCSIZE ASCIIDLG_MAXROWS                = 10000;
+@@ -63,6 +69,20 @@ const SCSIZE ASCIIDLG_MAXROWS           
+ const SCSIZE ASCIIDLG_MAXROWS                = MAXROWCOUNT;
+ #endif
+ 
++
++using namespace rtl;
++using namespace com::sun::star::uno;
++
++// Defines - CSV Import Preserve Options
++#define FIXED_WIDTH         "FixedWidth"
++#define FROM_ROW            "FromRow"
++#define CHAR_SET            "CharSet"
++#define SEPARATORS          "Separators"
++#define TEXT_SEPARATORS     "TextSeparators"
++#define MERGE_DELIMITERS    "MergeDelimiters"
++#define SEP_PATH            "Office.Calc/Dialogs/CSVImport"
++
++
+ // ============================================================================
+ 
+ void lcl_FillCombo( ComboBox& rCombo, const String& rList, sal_Unicode cSelect )
+@@ -110,11 +130,75 @@ sal_Unicode lcl_CharFromCombo( ComboBox&
+ 	return c;
+ }
+ 
++static void load_Separators( OUString &sFieldSeparators, OUString &sTextSeparators, 
++                             bool &bMergeDelimiters, bool &bFixedWidth, sal_Int32 &nFromRow, sal_Int32 &nCharSet )
++{
++    Sequence<Any>aValues;
++    const Any *pProperties;
++    Sequence<OUString> aNames(6);
++    OUString* pNames = aNames.getArray();
++    ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
++
++    pNames[0] = OUString::createFromAscii( MERGE_DELIMITERS );
++    pNames[1] = OUString::createFromAscii( SEPARATORS );
++    pNames[2] = OUString::createFromAscii( TEXT_SEPARATORS );
++    pNames[3] = OUString::createFromAscii( FIXED_WIDTH );
++    pNames[4] = OUString::createFromAscii( FROM_ROW );
++    pNames[5] = OUString::createFromAscii( CHAR_SET );
++    aValues = aItem.GetProperties( aNames );
++    pProperties = aValues.getConstArray();
++    if( pProperties[1].hasValue() )
++        pProperties[1] >>= sFieldSeparators;
++
++    if( pProperties[2].hasValue() )
++        pProperties[2] >>= sTextSeparators;
++
++    if( pProperties[0].hasValue() )
++        bMergeDelimiters = ScUnoHelpFunctions::GetBoolFromAny( pProperties[0] );
++
++    if( pProperties[3].hasValue() )
++        bFixedWidth = ScUnoHelpFunctions::GetBoolFromAny( pProperties[3] );
++
++    if( pProperties[4].hasValue() )
++        pProperties[4] >>= nFromRow;
++
++    if( pProperties[5].hasValue() )
++        pProperties[5] >>= nCharSet;
++}
++
++static void save_Separators( String maSeparators, String maTxtSep, bool bMergeDelimiters, 
++                             bool bFixedWidth, sal_Int32 nFromRow, sal_Int32 nCharSet )
++{
++    OUString sFieldSeparators = OUString( maSeparators );
++    OUString sTextSeparators = OUString( maTxtSep );
++    Sequence<Any> aValues;
++    Any *pProperties;
++    Sequence<OUString> aNames(6);
++    OUString* pNames = aNames.getArray();
++    ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
++
++    pNames[0] = OUString::createFromAscii( MERGE_DELIMITERS );
++    pNames[1] = OUString::createFromAscii( SEPARATORS );
++    pNames[2] = OUString::createFromAscii( TEXT_SEPARATORS );
++    pNames[3] = OUString::createFromAscii( FIXED_WIDTH );
++    pNames[4] = OUString::createFromAscii( FROM_ROW );
++    pNames[5] = OUString::createFromAscii( CHAR_SET );
++    aValues = aItem.GetProperties( aNames );
++    pProperties = aValues.getArray();
++    pProperties[1] <<= sFieldSeparators;
++    pProperties[2] <<= sTextSeparators;
++    ScUnoHelpFunctions::SetBoolInAny( pProperties[0], bMergeDelimiters );
++    ScUnoHelpFunctions::SetBoolInAny( pProperties[3], bFixedWidth );
++    pProperties[4] <<= nFromRow;
++    pProperties[5] <<= nCharSet;
++
++    aItem.PutProperties(aNames, aValues);
++}
+ 
+ // ----------------------------------------------------------------------------
+ 
+ ScImportAsciiDlg::ScImportAsciiDlg( Window* pParent,String aDatName,
+-									SvStream* pInStream, sal_Unicode cSep ) :
++                                    SvStream* pInStream, sal_Unicode /*cSep*/ ) :
+ 		ModalDialog	( pParent, ScResId( RID_SCDLG_ASCII ) ),
+         mpDatStream  ( pInStream ),
+         mnStreamPos( pInStream ? pInStream->Tell() : 0 ),
+@@ -158,14 +242,15 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
+ 		aFldSepList	( ScResId( SCSTR_FIELDSEP ) ),
+ 		aTextSepList( ScResId( SCSTR_TEXTSEP ) ),
+         mcTextSep   ( ScAsciiOptions::cDefaultTextSep ),
+-        maStrTextToColumns( ScResId( STR_TEXTTOCOLUMNS ) )
++        maStrTextToColumns( ScResId( STR_TEXTTOCOLUMNS ) ),
++        mbFileImport(true)
+ {
+ 	FreeResource();
++    mbFileImport = aDatName.Len() > 0;
+ 
+ 	String aName = GetText();
+     // aDatName is empty if invoked during paste from clipboard.
+-    BOOL bClipboard = (aDatName.Len() == 0);
+-    if (!bClipboard)
++    if (mbFileImport)
+     {
+         aName.AppendAscii(RTL_CONSTASCII_STRINGPARAM(" - ["));
+         aName += aDatName;
+@@ -173,20 +258,47 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
+     }
+ 	SetText( aName );
+ 
+-	switch(cSep)
++
++    OUString sFieldSeparators;
++    OUString sTextSeparators;
++    bool bMergeDelimiters = false;
++    bool bFixedWidth = false;
++    sal_Int32 nFromRow = 1;
++    sal_Int32 nCharSet = -1;
++    if (mbFileImport)
++        // load separators only when importing csv files.
++        load_Separators (sFieldSeparators, sTextSeparators, bMergeDelimiters, bFixedWidth, nFromRow, nCharSet);
++    maFieldSeparators = String(sFieldSeparators);
++
++    if( bMergeDelimiters )
++        aCkbAsOnce.Check();
++    if( bFixedWidth )
++        aRbFixed.Check();
++    if( nFromRow != 1 )
++        aNfRow.SetValue( nFromRow );
++
++    ByteString bString(maFieldSeparators,RTL_TEXTENCODING_MS_1252);
++    const sal_Char *aSep = bString.GetBuffer();
++    int len = maFieldSeparators.Len();
++    for (int i = 0; i < len; ++i)
+     {
+-        case '\t':  aCkbTab.Check();        break;
+-        case ';':   aCkbSemicolon.Check();  break;
+-        case ',':   aCkbComma.Check();      break;
+-        case ' ':   aCkbSpace.Check();      break;
+-        default:
+-            aCkbOther.Check();
+-            aEdOther.SetText( cSep );
++        switch( aSep[i] )
++        {
++            case '\t':  aCkbTab.Check();        break;
++            case ';':   aCkbSemicolon.Check();  break;
++            case ',':   aCkbComma.Check();      break;
++            case ' ':   aCkbSpace.Check();      break;
++            default:
++                aCkbOther.Check();
++                aEdOther.SetText( aEdOther.GetText() + OUString( aSep[i] ) );
++        }
+     }
++    
++    // Get Separators from the dialog
+     maFieldSeparators = GetSeparators();
+ 
+     // Clipboard is always Unicode, else detect.
+-	BOOL bPreselectUnicode = bClipboard;
++    bool bPreselectUnicode = !mbFileImport;
+ 	// Sniff for Unicode / not
+     if( !bPreselectUnicode && mpDatStream )
+ 	{
+@@ -222,6 +334,7 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
+ 
+     // *** Separator characters ***
+     lcl_FillCombo( aCbTextSep, aTextSepList, mcTextSep );
++    aCbTextSep.SetText( sTextSeparators );
+ 
+     Link aSeparatorHdl =LINK( this, ScImportAsciiDlg, SeparatorHdl );
+     aCbTextSep.SetSelectHdl( aSeparatorHdl );
+@@ -242,6 +355,10 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
+ 	aLbCharSet.InsertTextEncoding( RTL_TEXTENCODING_DONTKNOW, aCharSetUser );
+ 	aLbCharSet.SelectTextEncoding( bPreselectUnicode ?
+ 		RTL_TEXTENCODING_UNICODE : gsl_getSystemTextEncoding() );
++
++    if( nCharSet >= 0 )
++        aLbCharSet.SelectEntryPos( nCharSet );
++
+     SetSelectedCharSet();
+ 	aLbCharSet.SetSelectHdl( LINK( this, ScImportAsciiDlg, CharSetHdl ) );
+ 
+@@ -273,6 +390,9 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
+ 
+ ScImportAsciiDlg::~ScImportAsciiDlg()
+ {
++    if (mbFileImport)
++        save_Separators( maFieldSeparators, aCbTextSep.GetText(), aCkbAsOnce.IsChecked(), 
++                         aRbFixed.IsChecked(), aNfRow.GetValue(), aLbCharSet.GetSelectEntryPos());
+ 	delete[] mpRowPosArray;
+ }
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/csvruler.hxx sc/source/ui/inc/csvruler.hxx
+--- sc.clean/source/ui/inc/csvruler.hxx	2008-04-28 17:33:09.000000000 -0400
++++ sc/source/ui/inc/csvruler.hxx	2008-04-28 19:22:57.000000000 -0400
+@@ -86,6 +86,7 @@ private:
+     // ------------------------------------------------------------------------
+ public:
+     explicit                    ScCsvRuler( ScCsvControl& rParent );
++                                ~ScCsvRuler();
+ 
+     // common ruler handling --------------------------------------------------
+ public:
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/scuiasciiopt.hxx sc/source/ui/inc/scuiasciiopt.hxx
+--- sc.clean/source/ui/inc/scuiasciiopt.hxx	2008-04-28 17:33:09.000000000 -0400
++++ sc/source/ui/inc/scuiasciiopt.hxx	2008-04-28 18:46:52.000000000 -0400
+@@ -92,6 +92,7 @@ class ScImportAsciiDlg : public ModalDia
+ 
+     CharSet                     meCharSet;          /// Selected char set.
+     bool                        mbCharSetSystem;    /// Is System char set selected?
++    bool                        mbFileImport;       /// Is this dialog involked for csv file import ?
+ 
+ public:
+                                 ScImportAsciiDlg(
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/helpcontent2-auxiliary-cfg.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/helpcontent2-auxiliary-cfg.diff
@@ -0,0 +1,336 @@
+diff -urN helpcontent2.orig/source/auxiliary/ca/sbasic.cfg helpcontent2/source/auxiliary/ca/sbasic.cfg
+--- helpcontent2.orig/source/auxiliary/ca/sbasic.cfg	2006-01-19 15:33:29.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/sbasic.cfg	2006-02-08 20:00:54.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Basic
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=7
+ Start=text%2Fsbasic%2Fshared%2Fmain0601.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/ca/scalc.cfg helpcontent2/source/auxiliary/ca/scalc.cfg
+--- helpcontent2.orig/source/auxiliary/ca/scalc.cfg	2006-01-19 15:33:42.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/scalc.cfg	2006-02-08 20:00:58.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Calc
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=3
+ Start=text%2Fscalc%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/ca/sdatabase.cfg helpcontent2/source/auxiliary/ca/sdatabase.cfg
+--- helpcontent2.orig/source/auxiliary/ca/sdatabase.cfg	2006-01-19 15:33:55.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/sdatabase.cfg	2006-02-08 20:01:02.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Base
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=7
+ Start=text%2Fshared%2Fexplorer%2Fdatabase%2Fmain.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/ca/sdraw.cfg helpcontent2/source/auxiliary/ca/sdraw.cfg
+--- helpcontent2.orig/source/auxiliary/ca/sdraw.cfg	2006-01-19 15:34:10.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/sdraw.cfg	2006-02-08 20:01:10.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Draw
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=4
+ Start=text%2Fsdraw%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/ca/simpress.cfg helpcontent2/source/auxiliary/ca/simpress.cfg
+--- helpcontent2.orig/source/auxiliary/ca/simpress.cfg	2006-01-19 15:34:27.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/simpress.cfg	2006-02-08 20:01:13.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Impress
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=5
+ Start=text%2Fsimpress%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/ca/smath.cfg helpcontent2/source/auxiliary/ca/smath.cfg
+--- helpcontent2.orig/source/auxiliary/ca/smath.cfg	2006-01-19 15:34:43.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/smath.cfg	2006-02-08 20:01:16.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Math
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=6
+ Start=text%2Fsmath%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/ca/swriter.cfg helpcontent2/source/auxiliary/ca/swriter.cfg
+--- helpcontent2.orig/source/auxiliary/ca/swriter.cfg	2006-01-19 15:34:55.000000000 +0100
++++ helpcontent2/source/auxiliary/ca/swriter.cfg	2006-02-08 20:01:18.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Writer
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=ca
+ Order=2
+ Start=text%2Fswriter%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/sbasic.cfg helpcontent2/source/auxiliary/fa/sbasic.cfg
+--- helpcontent2.orig/source/auxiliary/fa/sbasic.cfg	2006-01-19 15:36:23.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/sbasic.cfg	2006-02-08 19:59:57.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Basic
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=7
+ Start=text%2Fsbasic%2Fshared%2Fmain0601.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/scalc.cfg helpcontent2/source/auxiliary/fa/scalc.cfg
+--- helpcontent2.orig/source/auxiliary/fa/scalc.cfg	2006-01-19 15:36:35.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/scalc.cfg	2006-02-08 20:00:00.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Calc
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=3
+ Start=text%2Fscalc%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/sdatabase.cfg helpcontent2/source/auxiliary/fa/sdatabase.cfg
+--- helpcontent2.orig/source/auxiliary/fa/sdatabase.cfg	2006-01-19 15:36:51.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/sdatabase.cfg	2006-02-08 20:00:04.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Base
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=7
+ Start=text%2Fshared%2Fexplorer%2Fdatabase%2Fmain.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/sdraw.cfg helpcontent2/source/auxiliary/fa/sdraw.cfg
+--- helpcontent2.orig/source/auxiliary/fa/sdraw.cfg	2006-01-19 15:37:05.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/sdraw.cfg	2006-02-08 20:00:08.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Draw
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=4
+ Start=text%2Fsdraw%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/simpress.cfg helpcontent2/source/auxiliary/fa/simpress.cfg
+--- helpcontent2.orig/source/auxiliary/fa/simpress.cfg	2006-01-19 15:37:21.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/simpress.cfg	2006-02-08 20:00:11.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Impress
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=5
+ Start=text%2Fsimpress%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/smath.cfg helpcontent2/source/auxiliary/fa/smath.cfg
+--- helpcontent2.orig/source/auxiliary/fa/smath.cfg	2006-01-19 15:37:39.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/smath.cfg	2006-02-08 20:00:14.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Math
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=6
+ Start=text%2Fsmath%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/fa/swriter.cfg helpcontent2/source/auxiliary/fa/swriter.cfg
+--- helpcontent2.orig/source/auxiliary/fa/swriter.cfg	2006-01-19 15:37:53.000000000 +0100
++++ helpcontent2/source/auxiliary/fa/swriter.cfg	2006-02-08 20:00:17.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Writer
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=fa
+ Order=2
+ Start=text%2Fswriter%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/sbasic.cfg helpcontent2/source/auxiliary/mk/sbasic.cfg
+--- helpcontent2.orig/source/auxiliary/mk/sbasic.cfg	2006-01-19 15:39:24.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/sbasic.cfg	2006-02-08 19:59:26.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Basic
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=7
+ Start=text%2Fsbasic%2Fshared%2Fmain0601.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/scalc.cfg helpcontent2/source/auxiliary/mk/scalc.cfg
+--- helpcontent2.orig/source/auxiliary/mk/scalc.cfg	2006-01-19 15:39:37.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/scalc.cfg	2006-02-08 19:59:29.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Calc
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=3
+ Start=text%2Fscalc%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/sdatabase.cfg helpcontent2/source/auxiliary/mk/sdatabase.cfg
+--- helpcontent2.orig/source/auxiliary/mk/sdatabase.cfg	2006-01-19 15:39:55.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/sdatabase.cfg	2006-02-08 19:59:36.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Base
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=7
+ Start=text%2Fshared%2Fexplorer%2Fdatabase%2Fmain.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/sdraw.cfg helpcontent2/source/auxiliary/mk/sdraw.cfg
+--- helpcontent2.orig/source/auxiliary/mk/sdraw.cfg	2006-01-19 15:40:08.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/sdraw.cfg	2006-02-08 19:59:40.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Draw
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=4
+ Start=text%2Fsdraw%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/simpress.cfg helpcontent2/source/auxiliary/mk/simpress.cfg
+--- helpcontent2.orig/source/auxiliary/mk/simpress.cfg	2006-01-19 15:40:24.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/simpress.cfg	2006-02-08 19:59:43.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Impress
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=5
+ Start=text%2Fsimpress%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/smath.cfg helpcontent2/source/auxiliary/mk/smath.cfg
+--- helpcontent2.orig/source/auxiliary/mk/smath.cfg	2006-01-19 15:40:37.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/smath.cfg	2006-02-08 19:59:47.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Math
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=6
+ Start=text%2Fsmath%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/mk/swriter.cfg helpcontent2/source/auxiliary/mk/swriter.cfg
+--- helpcontent2.orig/source/auxiliary/mk/swriter.cfg	2006-01-19 15:40:52.000000000 +0100
++++ helpcontent2/source/auxiliary/mk/swriter.cfg	2006-02-08 19:59:50.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Writer
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=mk
+ Order=2
+ Start=text%2Fswriter%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/sbasic.cfg helpcontent2/source/auxiliary/xh/sbasic.cfg
+--- helpcontent2.orig/source/auxiliary/xh/sbasic.cfg	2006-01-19 15:42:27.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/sbasic.cfg	2006-02-08 19:58:48.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Basic
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=7
+ Start=text%2Fsbasic%2Fshared%2Fmain0601.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/scalc.cfg helpcontent2/source/auxiliary/xh/scalc.cfg
+--- helpcontent2.orig/source/auxiliary/xh/scalc.cfg	2006-01-19 15:42:43.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/scalc.cfg	2006-02-08 19:58:57.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Calc
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=3
+ Start=text%2Fscalc%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/sdatabase.cfg helpcontent2/source/auxiliary/xh/sdatabase.cfg
+--- helpcontent2.orig/source/auxiliary/xh/sdatabase.cfg	2006-01-19 15:42:55.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/sdatabase.cfg	2006-02-08 19:59:02.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Base
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=7
+ Start=text%2Fshared%2Fexplorer%2Fdatabase%2Fmain.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/sdraw.cfg helpcontent2/source/auxiliary/xh/sdraw.cfg
+--- helpcontent2.orig/source/auxiliary/xh/sdraw.cfg	2006-01-19 15:43:10.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/sdraw.cfg	2006-02-08 19:59:07.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Draw
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=4
+ Start=text%2Fsdraw%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/simpress.cfg helpcontent2/source/auxiliary/xh/simpress.cfg
+--- helpcontent2.orig/source/auxiliary/xh/simpress.cfg	2006-01-19 15:43:24.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/simpress.cfg	2006-02-08 19:59:10.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Impress
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=5
+ Start=text%2Fsimpress%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/smath.cfg helpcontent2/source/auxiliary/xh/smath.cfg
+--- helpcontent2.orig/source/auxiliary/xh/smath.cfg	2006-01-19 15:43:38.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/smath.cfg	2006-02-08 19:59:14.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Math
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=6
+ Start=text%2Fsmath%2Fmain0000.xhp
+ Heading=headingheading
+diff -urN helpcontent2.orig/source/auxiliary/xh/swriter.cfg helpcontent2/source/auxiliary/xh/swriter.cfg
+--- helpcontent2.orig/source/auxiliary/xh/swriter.cfg	2006-01-19 15:43:53.000000000 +0100
++++ helpcontent2/source/auxiliary/xh/swriter.cfg	2006-02-08 19:59:20.000000000 +0100
+@@ -1,7 +1,7 @@
+ 
+ Title=%PRODUCTNAME Writer
+ Copyright=Copyright 2004, Sun Microsystems, Inc.
+-Language=en-US
++Language=xh
+ Order=2
+ Start=text%2Fswriter%2Fmain0000.xhp
+ Heading=headingheading
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/autocorrect-accidental-caps-lock-offapi.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/autocorrect-accidental-caps-lock-offapi.diff
@@ -0,0 +1,23 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=offapi.vpj offapi.clean/com/sun/star/awt/Key.idl offapi/com/sun/star/awt/Key.idl
+--- offapi.clean/com/sun/star/awt/Key.idl	2008-02-28 13:06:00.000000000 -0500
++++ offapi/com/sun/star/awt/Key.idl	2008-02-28 13:13:24.000000000 -0500
+@@ -454,6 +454,19 @@ published constants Key
+ 
+ 	const short QUOTELEFT = 1311;
+ 
++    //------------------------------------------------------------------------- 
++
++    const short CAPSLOCK = 1312;
++
++    //------------------------------------------------------------------------- 
++
++    const short NUMLOCK = 1313;
++
++    //------------------------------------------------------------------------- 
++
++    const short SCROLLLOCK = 1314;
++
++    //------------------------------------------------------------------------- 
+ }; 
+  
+ //============================================================================= 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layoutdialogs-offapi.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layoutdialogs-offapi.diff
@@ -0,0 +1,139 @@
+cvs diff: Diffing offapi
+cvs diff: Diffing offapi/com
+cvs diff: Diffing offapi/com/sun
+cvs diff: Diffing offapi/com/sun/star
+cvs diff: Diffing offapi/com/sun/star/accessibility
+cvs diff: Diffing offapi/com/sun/star/animations
+cvs diff: Diffing offapi/com/sun/star/auth
+cvs diff: Diffing offapi/com/sun/star/awt
+Index: offapi/com/sun/star/awt/makefile.mk
+===================================================================
+RCS file: /cvs/api/offapi/com/sun/star/awt/makefile.mk,v
+retrieving revision 1.47
+retrieving revision 1.47.20.1
+diff -p -u -u -p -b -w -B -r1.47 -r1.47.20.1
+--- offapi/com/sun/star/awt/makefile.mk	12 Mar 2008 09:17:33 -0000	1.47
++++ offapi/com/sun/star/awt/makefile.mk	28 Mar 2008 10:15:31 -0000	1.47.20.1
+@@ -320,10 +320,7 @@ IDLFILES=\
+ 	XWindowListener.idl\
+ 	XWindowListener2.idl\
+ 	XWindowPeer.idl\
+-	XMenuExtended.idl
+-
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-IDLFILES+=\
++	XMenuExtended.idl\
+ 	MaxChildrenException.idl\
+ 	XDialog2.idl\
+ 	XLayoutContainer.idl\
+@@ -331,7 +328,6 @@ IDLFILES+=\
+ 	XLayoutFlowContainer.idl\
+ 	XLayoutRoot.idl\
+ 	XLayoutUnit.idl
+-.ENDIF # ENABLE_LAYOUT == TRUE
+ 
+ # ------------------------------------------------------------------
+ 
+cvs diff: Diffing offapi/com/sun/star/awt/tree
+cvs diff: Diffing offapi/com/sun/star/chart
+cvs diff: Diffing offapi/com/sun/star/chart2
+cvs diff: Diffing offapi/com/sun/star/chart2/data
+cvs diff: Diffing offapi/com/sun/star/configuration
+cvs diff: Diffing offapi/com/sun/star/configuration/backend
+cvs diff: Diffing offapi/com/sun/star/configuration/backend/xml
+cvs diff: Diffing offapi/com/sun/star/configuration/bootstrap
+cvs diff: Diffing offapi/com/sun/star/datatransfer
+cvs diff: Diffing offapi/com/sun/star/datatransfer/clipboard
+cvs diff: Diffing offapi/com/sun/star/datatransfer/dnd
+cvs diff: Diffing offapi/com/sun/star/deployment
+cvs diff: Diffing offapi/com/sun/star/deployment/test
+cvs diff: Diffing offapi/com/sun/star/deployment/ui
+cvs diff: Diffing offapi/com/sun/star/document
+cvs diff: Diffing offapi/com/sun/star/drawing
+cvs diff: Diffing offapi/com/sun/star/drawing/framework
+cvs diff: Diffing offapi/com/sun/star/embed
+cvs diff: Diffing offapi/com/sun/star/form
+cvs diff: Diffing offapi/com/sun/star/form/binding
+cvs diff: Diffing offapi/com/sun/star/form/component
+cvs diff: Diffing offapi/com/sun/star/form/control
+cvs diff: Diffing offapi/com/sun/star/form/inspection
+cvs diff: Diffing offapi/com/sun/star/form/runtime
+cvs diff: Diffing offapi/com/sun/star/form/submission
+cvs diff: Diffing offapi/com/sun/star/form/validation
+cvs diff: Diffing offapi/com/sun/star/formula
+cvs diff: Diffing offapi/com/sun/star/frame
+cvs diff: Diffing offapi/com/sun/star/frame/status
+cvs diff: Diffing offapi/com/sun/star/gallery
+cvs diff: Diffing offapi/com/sun/star/geometry
+cvs diff: Diffing offapi/com/sun/star/graphic
+cvs diff: Diffing offapi/com/sun/star/i18n
+cvs diff: Diffing offapi/com/sun/star/image
+cvs diff: Diffing offapi/com/sun/star/inspection
+cvs diff: Diffing offapi/com/sun/star/installation
+cvs diff: Diffing offapi/com/sun/star/ldap
+cvs diff: Diffing offapi/com/sun/star/linguistic2
+cvs diff: Diffing offapi/com/sun/star/logging
+cvs diff: Diffing offapi/com/sun/star/mail
+cvs diff: Diffing offapi/com/sun/star/media
+cvs diff: Diffing offapi/com/sun/star/mozilla
+cvs diff: Diffing offapi/com/sun/star/packages
+cvs diff: Diffing offapi/com/sun/star/packages/manifest
+cvs diff: Diffing offapi/com/sun/star/packages/zip
+cvs diff: Diffing offapi/com/sun/star/plugin
+cvs diff: Diffing offapi/com/sun/star/presentation
+cvs diff: Diffing offapi/com/sun/star/presentation/textfield
+cvs diff: Diffing offapi/com/sun/star/rendering
+cvs diff: Diffing offapi/com/sun/star/report
+cvs diff: Diffing offapi/com/sun/star/report/inspection
+cvs diff: Diffing offapi/com/sun/star/resource
+cvs diff: Diffing offapi/com/sun/star/scanner
+cvs diff: Diffing offapi/com/sun/star/script
+cvs diff: Diffing offapi/com/sun/star/script/browse
+cvs diff: Diffing offapi/com/sun/star/script/provider
+cvs diff: Diffing offapi/com/sun/star/sdb
+cvs diff: Diffing offapi/com/sun/star/sdb/application
+cvs diff: Diffing offapi/com/sun/star/sdb/tools
+cvs diff: Diffing offapi/com/sun/star/sdbc
+cvs diff: Diffing offapi/com/sun/star/sdbcx
+cvs diff: Diffing offapi/com/sun/star/security
+cvs diff: Diffing offapi/com/sun/star/setup
+cvs diff: Diffing offapi/com/sun/star/sheet
+cvs diff: Diffing offapi/com/sun/star/smarttags
+cvs diff: Diffing offapi/com/sun/star/style
+cvs diff: Diffing offapi/com/sun/star/svg
+cvs diff: Diffing offapi/com/sun/star/sync
+cvs diff: Diffing offapi/com/sun/star/sync2
+cvs diff: Diffing offapi/com/sun/star/system
+cvs diff: Diffing offapi/com/sun/star/table
+cvs diff: Diffing offapi/com/sun/star/task
+cvs diff: Diffing offapi/com/sun/star/text
+cvs diff: Diffing offapi/com/sun/star/text/fieldmaster
+cvs diff: Diffing offapi/com/sun/star/text/textfield
+cvs diff: Diffing offapi/com/sun/star/text/textfield/docinfo
+cvs diff: Diffing offapi/com/sun/star/ucb
+cvs diff: Diffing offapi/com/sun/star/ucb/smart
+cvs diff: Diffing offapi/com/sun/star/ui
+cvs diff: Diffing offapi/com/sun/star/ui/dialogs
+cvs diff: Diffing offapi/com/sun/star/util
+cvs diff: Diffing offapi/com/sun/star/view
+cvs diff: Diffing offapi/com/sun/star/xforms
+cvs diff: Diffing offapi/com/sun/star/xml
+cvs diff: Diffing offapi/com/sun/star/xml/crypto
+cvs diff: Diffing offapi/com/sun/star/xml/crypto/sax
+cvs diff: Diffing offapi/com/sun/star/xml/csax
+cvs diff: Diffing offapi/com/sun/star/xml/dom
+cvs diff: Diffing offapi/com/sun/star/xml/dom/events
+cvs diff: Diffing offapi/com/sun/star/xml/dom/views
+cvs diff: Diffing offapi/com/sun/star/xml/input
+cvs diff: Diffing offapi/com/sun/star/xml/sax
+cvs diff: Diffing offapi/com/sun/star/xml/wrapper
+cvs diff: Diffing offapi/com/sun/star/xml/xpath
+cvs diff: Diffing offapi/com/sun/star/xsd
+cvs diff: Diffing offapi/drafts
+cvs diff: Diffing offapi/drafts/com
+cvs diff: Diffing offapi/drafts/com/sun
+cvs diff: Diffing offapi/drafts/com/sun/star
+cvs diff: Diffing offapi/drafts/com/sun/star/form
+cvs diff: Diffing offapi/prj
+cvs diff: Diffing offapi/type_reference
+cvs diff: Diffing offapi/util
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/pushfont-psstream.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/pushfont-psstream.diff
@@ -0,0 +1,12 @@
+diff -u -p -u -r1.1 SGENPRT.PS
+--- psprint_config/configuration/ppds/SGENPRT.PS
++++ psprint_config/configuration/ppds/SGENPRT.PS
+@@ -28,6 +28,8 @@
+ *NickName: "Generic Printer"
+ *PCFileName: "SGENPRT.PPD"
+ 
++*% CUPS can cope, and fixes some symbol issues
++*TTRasterizer: Type42
+ 
+ *% ===== Basic Capabilities and Defaults =====
+ 
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ubuntu-palette.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ubuntu-palette.diff
@@ -0,0 +1,19 @@
+--- extras/source/palettes/standard.soc.old	2007-07-03 08:32:23.000000000 -0500
++++ extras/source/palettes/standard.soc	2007-08-06 23:30:41.000000000 -0500
+@@ -92,6 +92,9 @@
+  <draw:color draw:name="Sun 2" draw:color="#666699"/>
+  <draw:color draw:name="Sun 3" draw:color="#9999cc"/>
+  <draw:color draw:name="Sun 4" draw:color="#ccccff"/>
++ <draw:color draw:name="Ubuntu orange" draw:color="#ff6309"/>
++ <draw:color draw:name="Ubuntu yellow" draw:color="#ffb515"/>
++ <draw:color draw:name="Ubuntu red" draw:color="#c90016"/>
+  <draw:color draw:name="Chart 1" draw:color="#004586"/>
+  <draw:color draw:name="Chart 2" draw:color="#ff420e"/>
+  <draw:color draw:name="Chart 3" draw:color="#ffd320"/>
+@@ -104,4 +107,4 @@
+  <draw:color draw:name="Chart 10" draw:color="#ff950e"/>
+  <draw:color draw:name="Chart 11" draw:color="#c5000b"/>
+  <draw:color draw:name="Chart 12" draw:color="#0084d1"/>
+-</office:color-table>
+\ No newline at end of file
++</office:color-table>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/debian-gccXXXXX.solenv.javaregistration.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/debian-gccXXXXX.solenv.javaregistration.diff
@@ -0,0 +1,16 @@
+Index: bin/modules/installer/servicesfile.pm
+===================================================================
+RCS file: /cvs/tools/solenv/bin/modules/installer/servicesfile.pm,v
+retrieving revision 1.23
+diff -u -r1.23 servicesfile.pm
+--- solenv/bin/modules/installer/servicesfile.pm	10 Jul 2006 18:51:00 -0000	1.23
++++ solenv/bin/modules/installer/servicesfile.pm	23 Feb 2007 16:12:39 -0000
+@@ -258,7 +258,7 @@
+ 					$counter++;
+ 				}
+ 			
+-				if ((( $counter > 0 ) && ( $counter%$installer::globals::javamaxservices == 0 )) || (( $counter > 0 ) && ( $i == $#{$javacomponents} )))	# limiting to $installer::globals::maxservices files
++				if ( $counter > 0 )
+ 				{
+ 					$filestring =~ s/\;\s*$//;
+ 					chdir($onesourcepath);
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-unifysound01-svx.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-unifysound01-svx.diff
@@ -0,0 +1,61 @@
+Index: svx/inc/galctrl.hxx
+===================================================================
+RCS file: /cvs/graphics/svx/inc/galctrl.hxx,v
+retrieving revision 1.6
+retrieving revision 1.6.432.1
+diff -u -p -u -p -r1.6 -r1.6.432.1
+--- svx/inc/galctrl.hxx	12 Oct 2006 11:43:24 -0000	1.6
++++ svx/inc/galctrl.hxx	10 Aug 2007 12:01:32 -0000	1.6.432.1
+@@ -74,7 +74,6 @@ private:
+ 	
+     GraphicObject		aGraphicObj;
+ 	Rectangle			aPreviewRect;
+-	Sound				aSound;
+     GalleryTheme*       mpTheme;
+ 						
+ 	SVX_DLLPRIVATE BOOL				ImplGetGraphicCenterRect( const Graphic& rGraphic, Rectangle& rResultRect ) const;
+@@ -96,7 +95,6 @@ private:
+ 	SVX_DLLPRIVATE virtual void		StartDrag( sal_Int8 nAction, const Point& rPosPixel );
+ 
+ 						DECL_LINK( MenuSelectHdl, Menu* );
+-						DECL_LINK( SoundEndHdl, Sound* );
+ 						
+ public:					
+ 						
+Index: svx/source/gallery2/galctrl.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/gallery2/galctrl.cxx,v
+retrieving revision 1.25
+retrieving revision 1.25.86.1
+diff -u -p -u -p -r1.25 -r1.25.86.1
+--- svx/source/gallery2/galctrl.cxx	27 Jun 2007 18:19:59 -0000	1.25
++++ svx/source/gallery2/galctrl.cxx	10 Aug 2007 12:01:32 -0000	1.25.86.1
+@@ -67,7 +67,6 @@ GalleryPreview::GalleryPreview( GalleryB
+ {
+ 	SetHelpId( HID_GALLERY_WINDOW );
+     InitSettings();
+-	aSound.SetNotifyHdl( LINK( this, GalleryPreview, SoundEndHdl ) );
+ }
+ 
+ // ------------------------------------------------------------------------
+@@ -80,7 +79,6 @@ GalleryPreview::GalleryPreview( Window* 
+ {
+ 	SetHelpId( HID_GALLERY_PREVIEW );
+     InitSettings();
+-    aSound.SetNotifyHdl( LINK( this, GalleryPreview, SoundEndHdl ) );
+ }
+ 
+ // ------------------------------------------------------------------------
+@@ -281,12 +279,6 @@ void GalleryPreview::PreviewMedia( const
+ 
+ // ------------------------------------------------------------------------
+ 
+-IMPL_LINK( GalleryPreview, SoundEndHdl, Sound*, EMPTYARG )
+-{
+-	aSound.SetSoundName( String() );
+-	return 0L;
+-}
+-
+ // -------------------
+ // - GalleryIconView -
+ // -------------------
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/mdbtools-prj-build-lst.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/mdbtools-prj-build-lst.diff
@@ -0,0 +1,6 @@
+--- /dev/null	2005-03-20 01:06:14.000000000 +0530
++++ mdbtools/prj/build.lst	2005-07-28 09:20:47.000000000 +0530
+@@ -0,0 +1,3 @@
++ap	mdbtools	:	solenv NULL
++ap	mdbtools			usr1	-	u	ap_mkout NULL
++ap	mdbtools			nmake	-	u	ap_mdbtools NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/gnome-vfs-generic-prot.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/gnome-vfs-generic-prot.diff
@@ -0,0 +1,118 @@
+--- tools/inc/tools/urlobj.hxx	2007-07-26 18:08:47.000000000 +0200
++++ tools/inc/tools/urlobj.hxx	2007-07-26 20:10:16.000000000 +0200
+@@ -162,9 +162,10 @@ enum INetProtocol
+     INET_PROT_TELNET = 28,
+     INET_PROT_VND_SUN_STAR_EXPAND = 29,
+     INET_PROT_VND_SUN_STAR_TDOC = 30,
+-    INET_PROT_GENERIC = 31,
+-    INET_PROT_SMB = 32,
+-	INET_PROT_END = 33
++    INET_PROT_SMB = 31,
++    INET_PROT_GENERIC = 32,
++    INET_PROT_GENERIC_HIERARCHICAL = 33,
++    INET_PROT_END = 34
+ };
+ 
+ //============================================================================
+--- tools/source/fsys/urlobj.cxx	2007-07-26 18:08:47.000000000 +0200
++++ tools/source/fsys/urlobj.cxx	2007-07-26 20:11:17.000000000 +0200
+@@ -460,9 +460,11 @@ static INetURLObject::SchemeInfo const a
+ 		  false, false, false, false, false },
+         { "vnd.sun.star.tdoc", "vnd.sun.star.tdoc:", 0, false, false, false,
+           false, false, false, true, false },
+-        { "", "", 0, false, false, false, false, false, false, false, false },
+         { "smb", "smb://", 139, true, true, false, true, true, true, true,
+-          true } };
++          true },
++        { "", "", 0, false, false, false, false, false, false, false, false },
++        { "", "", 0, false, false, false, false, false, false, true, false }
++      };
+ 
+ // static
+ inline INetURLObject::SchemeInfo const &
+@@ -869,7 +871,10 @@ bool INetURLObject::setAbsURIRef(rtl::OU
+             aSynScheme = parseScheme(&p1, pEnd, nFragmentDelimiter);
+             if (aSynScheme.getLength() > 0)
+             {
+-                m_eScheme = INET_PROT_GENERIC;
++                if (p1 != pEnd && *p1 == '/')
++                    m_eScheme = INET_PROT_GENERIC_HIERARCHICAL;
++                else
++                    m_eScheme = INET_PROT_GENERIC;
+                 pPos = p1;
+             }
+         }
+@@ -886,8 +891,9 @@ bool INetURLObject::setAbsURIRef(rtl::OU
+ 			return false;
+ 		}
+ 
+-        if (m_eScheme != INET_PROT_GENERIC) {
+-            aSynScheme = rtl::OUString::createFromAscii(getSchemeInfo().m_pScheme);
++        const char *pSchemeName = getSchemeInfo().m_pScheme;
++        if (pSchemeName[0] != '\0') {
++            aSynScheme = rtl::OUString::createFromAscii(pSchemeName);
+         }
+         m_aScheme.set(aSynAbsURIRef, aSynScheme, aSynAbsURIRef.getLength());
+         aSynAbsURIRef.append(sal_Unicode(':'));
+@@ -3392,6 +3398,7 @@ bool INetURLObject::parsePath(INetProtoc
+ 			break;
+ 
+         case INET_PROT_GENERIC:
++        case INET_PROT_GENERIC_HIERARCHICAL:
+ 			while (pPos < pEnd && *pPos != nFragmentDelimiter)
+ 			{
+ 				EscapeType eEscapeType;
+@@ -4093,10 +4100,13 @@ bool INetURLObject::ConcatData(INetProto
+ {
+ 	setInvalid();
+ 	m_eScheme = eTheScheme;
+-	if (HasError() || m_eScheme == INET_PROT_GENERIC)
++	const char *pSchemeName = getSchemeInfo().m_pScheme;
++
++	if (HasError() || pSchemeName[0] == '\0')
+ 		return false;
++
+ 	m_aAbsURIRef.setLength(0);
+-	m_aAbsURIRef.appendAscii(getSchemeInfo().m_pScheme);
++	m_aAbsURIRef.appendAscii(pSchemeName);
+ 	m_aAbsURIRef.append(sal_Unicode(':'));
+ 	if (getSchemeInfo().m_bAuthority)
+ 	{
+--- tools/workben/urltest.cxx	2007-06-28 00:22:35.000000000 +0200
++++ tools/workben/urltest.cxx	2007-07-26 20:53:23.000000000 +0200
+@@ -1503,7 +1503,7 @@ main()
+ 
+         url = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("A-b.3:/%2f?x#y"));
+         urlobj = INetURLObject(url);
+-        bSuccess &= assertEqual(url, INET_PROT_GENERIC, urlobj.GetProtocol());
++        bSuccess &= assertEqual(url, INET_PROT_GENERIC_HIERARCHICAL, urlobj.GetProtocol());
+         bSuccess &= assertEqual(
+             url, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a-b.3:/%2F?x#y")),
+             rtl::OUString(urlobj.GetMainURL(INetURLObject::NO_DECODE)));
+@@ -1531,7 +1531,7 @@ main()
+ 
+         url = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo:/"));
+         urlobj = INetURLObject(url);
+-        bSuccess &= assertEqual(url, INET_PROT_GENERIC, urlobj.GetProtocol());
++        bSuccess &= assertEqual(url, INET_PROT_GENERIC_HIERARCHICAL, urlobj.GetProtocol());
+         bSuccess &= assertEqual(
+             url, url,
+             rtl::OUString(urlobj.GetMainURL(INetURLObject::NO_DECODE)));
+@@ -1569,7 +1569,7 @@ main()
+ 
+         url = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("A-b.3:/%2f?x#y"));
+         urlobj = INetURLObject(url, INET_PROT_CID);
+-        bSuccess &= assertEqual(url, INET_PROT_GENERIC, urlobj.GetProtocol());
++        bSuccess &= assertEqual(url, INET_PROT_GENERIC_HIERARCHICAL, urlobj.GetProtocol());
+         bSuccess &= assertEqual(
+             url, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a-b.3:/%2F?x#y")),
+             rtl::OUString(urlobj.GetMainURL(INetURLObject::NO_DECODE)));
+@@ -1590,7 +1590,7 @@ main()
+ 
+         url = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo:/"));
+         urlobj = INetURLObject(url, INET_PROT_CID);
+-        bSuccess &= assertEqual(url, INET_PROT_GENERIC, urlobj.GetProtocol());
++        bSuccess &= assertEqual(url, INET_PROT_GENERIC_HIERARCHICAL, urlobj.GetProtocol());
+         bSuccess &= assertEqual(
+             url, url,
+             rtl::OUString(urlobj.GetMainURL(INetURLObject::NO_DECODE)));
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/extensions_packinfo.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/extensions_packinfo.diff
@@ -0,0 +1,41 @@
+--- setup_native/source/packinfo/packinfo_office.txt.orig	2008-01-14 20:09:47.000000000 +0100
++++ setup_native/source/packinfo/packinfo_office.txt	2008-03-29 11:00:24.000000000 +0100
+@@ -63,6 +63,38 @@
+ End
+ 
+ Start
++module = "gid_Module_Optional_Extensions_SDEXT"
++script = "shellscripts_extensions.txt"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-extension-presentation-minimizer"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core02 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core03 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core04 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core05 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core06 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core07 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core08 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION")"
++packagename = "%UNIXPRODUCTNAME-extension-presentation-minimizer"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-extension-presentation-minimizer"
++requires = "%UNIXPRODUCTNAME-core01,%UNIXPRODUCTNAME-core02,%UNIXPRODUCTNAME-core03,%UNIXPRODUCTNAME-core03u,%UNIXPRODUCTNAME-core04,%UNIXPRODUCTNAME-core04u,%UNIXPRODUCTNAME-core05,%UNIXPRODUCTNAME-core05u,%UNIXPRODUCTNAME-core06,%UNIXPRODUCTNAME-core07,%UNIXPRODUCTNAME-core08"
++freebsdrequires = "%UNIXPRODUCTNAME-core01,%UNIXPRODUCTNAME-core02,%UNIXPRODUCTNAME-core03,%UNIXPRODUCTNAME-core03u,%UNIXPRODUCTNAME-core04,%UNIXPRODUCTNAME-core04u,%UNIXPRODUCTNAME-core05,%UNIXPRODUCTNAME-core05u,%UNIXPRODUCTNAME-core06,%UNIXPRODUCTNAME-core07,%UNIXPRODUCTNAME-core08"
++copyright = "1999-2008 by OpenOffice.org"
++solariscopyright = "solariscopyrightfile"
++vendor = "OpenOffice.org"
++description = "Presentation Minimizer extension for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++Start
++module = "gid_Module_Optional_Extensions_REPORTDESIGN"
++script = "shellscripts_extensions.txt"
++solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-extension-report-builder"
++solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-core01 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core02 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core03 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core04 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core05 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core06 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core07 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION"), %WITHOUTDOTUNIXPRODUCTNAME-core08 (Name="Core module for %PRODUCTNAME %PRODUCTVERSION")"
++packagename = "%UNIXPRODUCTNAME-extension-report-builder"
++linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-extension-report-builder"
++requires = "%UNIXPRODUCTNAME-core01,%UNIXPRODUCTNAME-core02,%UNIXPRODUCTNAME-core03,%UNIXPRODUCTNAME-core03u,%UNIXPRODUCTNAME-core04,%UNIXPRODUCTNAME-core04u,%UNIXPRODUCTNAME-core05,%UNIXPRODUCTNAME-core05u,%UNIXPRODUCTNAME-core06,%UNIXPRODUCTNAME-core07,%UNIXPRODUCTNAME-core08"
++freebsdrequires = "%UNIXPRODUCTNAME-core01,%UNIXPRODUCTNAME-core02,%UNIXPRODUCTNAME-core03,%UNIXPRODUCTNAME-core03u,%UNIXPRODUCTNAME-core04,%UNIXPRODUCTNAME-core04u,%UNIXPRODUCTNAME-core05,%UNIXPRODUCTNAME-core05u,%UNIXPRODUCTNAME-core06,%UNIXPRODUCTNAME-core07,%UNIXPRODUCTNAME-core08"
++copyright = "1999-2008 by OpenOffice.org"
++solariscopyright = "solariscopyrightfile"
++vendor = "OpenOffice.org"
++description = "Report Builder extension for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
++End
++
++Start
+ module = "gid_Module_Prg_Wrt"
+ script = "shellscripts_module.txt"
+ solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-writer"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sun-java-amd64-jreextralibdir.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sun-java-amd64-jreextralibdir.diff
@@ -0,0 +1,10 @@
+--- config_office/set_soenv.in	3 Aug 2007 13:09:48 -0000	1.156
++++ config_office/set_soenv.in	29 Aug 2007 09:22:29 -0000
+@@ -428,6 +428,7 @@
+       $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64";
+       $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."server";
+       $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
++      $JREEXTRALIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."xawt";
+    }
+    elsif ($platform =~ m/^sparc/)
+  
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sc-dataform.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sc-dataform.diff
@@ -0,0 +1,1465 @@
+diff -uNr officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+--- officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2007-09-18 14:20:48.000000000 +0800
++++ officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu	2007-09-18 14:20:23.000000000 +0800
+@@ -1169,6 +1169,12 @@
+ 					<value xml:lang="en-US">~Remove Filter</value>
+ 				</prop>
+ 			</node>
++                        <node oor:name=".uno:DataForm" oor:op="replace">
++                                <prop oor:name="Label" oor:type="xs:string">
++                                        <value xml:lang="de">D~atenForm...</value>
++                                        <value xml:lang="en-US">D~ataForm...</value>
++                                </prop>
++                        </node>
+ 			<node oor:name=".uno:DataSubTotals" oor:op="replace">
+ 				<prop oor:name="Label" oor:type="xs:string">
+ 					<value xml:lang="en-US">Sub~totals...</value>
+diff -uNr sc/inc/document.hxx sc/inc/document.hxx
+--- sc/inc/document.hxx	2007-09-18 13:29:33.000000000 +0800
++++ sc/inc/document.hxx	2007-09-18 13:31:06.000000000 +0800
+@@ -733,7 +733,10 @@
+ 	void			PutCell(SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell,
+ 							ULONG nFormatIndex, BOOL bForceTab = FALSE);
+ 					//	return TRUE = Zahlformat gesetzt
+-	BOOL			SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const String& rString );
++	//BOOL			SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const String& rString );
++	//for dataform
++	SC_DLLPUBLIC  BOOL			SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const String& rString );
++	//end
+ 	void			SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
+ 	void			SetNote( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPostIt& rNote );
+ 	void 			SetError( SCCOL nCol, SCROW nRow, SCTAB nTab, const USHORT nError);
+@@ -894,8 +897,10 @@
+ 							   SCCOL nEndCol,   SCTAB nEndTab,
+ 							   SCROW nStartRow, SCSIZE nSize,
+ 							   ScDocument* pRefUndoDoc = NULL, BOOL* pUndoOutline = NULL );
+-	void			DeleteRow( const ScRange& rRange,
++	//for dataform
++	SC_DLLPUBLIC    void			DeleteRow( const ScRange& rRange,
+ 							   ScDocument* pRefUndoDoc = NULL, BOOL* pUndoOutline = NULL );
++							   
+ 	BOOL			InsertCol( SCROW nStartRow, SCTAB nStartTab,
+ 							   SCROW nEndRow,   SCTAB nEndTab,
+ 							   SCCOL nStartCol, SCSIZE nSize, ScDocument* pRefUndoDoc = NULL );
+@@ -1186,7 +1191,9 @@
+ 											USHORT nNewHeight );
+ 	void			SetManualHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, BOOL bManual );
+ 
+-	USHORT			GetColWidth( SCCOL nCol, SCTAB nTab ) const;
++	//for dataform
++	SC_DLLPUBLIC    USHORT			GetColWidth( SCCOL nCol, SCTAB nTab ) const;
++	
+ 	USHORT			GetRowHeight( SCROW nRow, SCTAB nTab ) const;
+ 	ULONG			GetRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
+ 	ULONG			GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale ) const;
+diff -uNr sc/inc/scabstdlg.hxx sc/inc/scabstdlg.hxx
+--- sc/inc/scabstdlg.hxx	2007-09-18 13:29:33.000000000 +0800
++++ sc/inc/scabstdlg.hxx	2007-09-18 13:31:07.000000000 +0800
+@@ -52,6 +52,8 @@
+ #include "global.hxx"
+ #include "pivot.hxx"
+ 
++#include <tabvwsh.hxx>
++
+ class ScAsciiOptions;
+ class ScAutoFormat;
+ class ScAutoFormatData;
+@@ -120,6 +122,12 @@
+ 	virtual DelCellCmd GetDelCellCmd() const = 0;
+ };
+ 
++//for dataform
++class AbstractScDataFormDlg : public VclAbstractDialog  //add for ScDeleteCellDlg
++{
++
++};
++
+ class AbstractScDeleteContentsDlg: public VclAbstractDialog  //add for ScDeleteContentsDlg
+ {
+ public:
+@@ -333,6 +341,9 @@
+ 
+ 	virtual AbstractScDeleteCellDlg * CreateScDeleteCellDlg( Window* pParent, int nId, BOOL bDisallowCellMove = FALSE ) = 0 ; //add for ScDeleteCellDlg
+ 
++	//for dataform
++	virtual AbstractScDataFormDlg * CreateScDataFormDlg( Window* pParent, int nId, ScTabViewShell*      pTabViewShell ) = 0 ; //add for ScDataFormDlg
++
+ 	virtual AbstractScDeleteContentsDlg * CreateScDeleteContentsDlg(Window* pParent,int nId, //add for ScDeleteContentsDlg
+ 																 USHORT  nCheckDefaults = 0 ) = 0;
+ 	virtual AbstractScFillSeriesDlg * CreateScFillSeriesDlg( Window*		pParent, //add for ScFillSeriesDlg
+diff -uNr sc/inc/sc.hrc sc/inc/sc.hrc
+--- sc/inc/sc.hrc	2007-09-18 13:29:33.000000000 +0800
++++ sc/inc/sc.hrc	2007-09-18 13:31:07.000000000 +0800
+@@ -635,6 +635,7 @@
+ #define SC_HINT_DOC_SAVED		(SC_MESSAGE_START + 35)
+ #define SC_HINT_FORCESETTAB		(SC_MESSAGE_START + 36)
+ #define SC_HINT_TABLECHANGED    (SC_MESSAGE_START + 37)
++#define SID_DATAFORM_NEW		(SC_MESSAGE_START + 38)  // Amelia Wang
+ 
+ // Nachricht zum Oeffnen von Dialogen:
+ #define SID_OPENDLG_CONSOLIDATE		(SC_MESSAGE_START + 50)
+@@ -803,9 +804,10 @@
+ 
+ #define SID_SORT_DESCENDING		(DATA_MENU_START + 23)
+ #define SID_SORT_ASCENDING		(DATA_MENU_START + 24)
++#define SID_DATA_FORM		    (DATA_MENU_START + 25)
+ //
+ //
+-#define DATA_MENU_END           (DATA_MENU_START + 25)
++#define DATA_MENU_END           (DATA_MENU_START + 26)
+ 
+ #define TAB_POPUP_START			(DATA_MENU_END)
+ #define RID_POPUP_TAB			(TAB_POPUP_START)
+@@ -1600,6 +1602,9 @@
+ #define RID_SCDLG_DPDATEGROUP           (SC_DIALOGS_START + 136)
+ #define RID_SCDLG_DPSHOWDETAIL          (SC_DIALOGS_START + 137)
+ 
++#define RID_SCDLG_DATAFORM				(SC_DIALOGS_START + 138)
++
++
+ #define SC_DIALOGS_END          (SC_DIALOGS_START + 150)
+ 
+ #ifndef STD_MASKCOLOR
+diff -uNr sc/sdi/cellsh.sdi sc/sdi/cellsh.sdi
+--- sc/sdi/cellsh.sdi	2007-09-18 13:29:33.000000000 +0800
++++ sc/sdi/cellsh.sdi	2007-09-18 13:31:08.000000000 +0800
+@@ -64,6 +64,7 @@
+ 	SID_SBA_BRW_INSERT		[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
+ 	SID_SELECT_DB			[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
+ 	SID_SORT				[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
++	SID_DATA_FORM			[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
+ 	FID_FILTER_OK			[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
+ 	SID_AUTO_FILTER			[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
+ 	SID_AUTOFILTER_HIDE		[ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
+diff -uNr sc/sdi/scalc.sdi sc/sdi/scalc.sdi
+--- sc/sdi/scalc.sdi	2007-09-18 13:29:33.000000000 +0800
++++ sc/sdi/scalc.sdi	2007-09-18 13:31:08.000000000 +0800
+@@ -1606,6 +1606,31 @@
+ ]
+ 
+ //--------------------------------------------------------------------------
++SfxVoidItem DataForm SID_DATA_FORM
++()
++[
++	/* flags: */
++	AutoUpdate = FALSE,
++	Cachable = Cachable,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = TRUE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	/* config: */
++	AccelConfig = TRUE,
++	MenuConfig = TRUE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = FALSE,
++	GroupId = GID_DATA;
++]
++
++//--------------------------------------------------------------------------
+ SfxVoidItem DataSubTotals SID_SUBTOTALS
+ ()
+ [
+diff -uNr sc/source/ui/attrdlg/scdlgfact.cxx sc/source/ui/attrdlg/scdlgfact.cxx
+--- sc/source/ui/attrdlg/scdlgfact.cxx	2007-09-18 13:29:39.000000000 +0800
++++ sc/source/ui/attrdlg/scdlgfact.cxx	2007-09-18 13:31:18.000000000 +0800
+@@ -81,6 +81,8 @@
+ #include "tpstat.hxx" //add for ScDocStatPage
+ #include "tpusrlst.hxx" //add for ScTpUserLists
+ #include "tpview.hxx" //add for ScTpContentOptions
++//for dataform
++#include "datafdlg.hxx" //add for ScDataFormDlg
+ 
+ // ause
+ #include "editutil.hxx"
+@@ -93,6 +95,8 @@
+ IMPL_ABSTDLG_BASE(AbstractScDataPilotSourceTypeDlg_Impl); //add for ScDataPilotSourceTypeDlg
+ IMPL_ABSTDLG_BASE(AbstractScDataPilotServiceDlg_Impl); //add for ScDataPilotServiceDlg
+ IMPL_ABSTDLG_BASE(AbstractScDeleteCellDlg_Impl); //add for ScDeleteCellDlg
++//for dataform
++IMPL_ABSTDLG_BASE(AbstractScDataFormDlg_Impl); //add for ScDataFormDlg
+ IMPL_ABSTDLG_BASE(AbstractScDeleteContentsDlg_Impl); //add for ScDeleteContentsDlg
+ IMPL_ABSTDLG_BASE(AbstractScFillSeriesDlg_Impl); //add for ScFillSeriesDlg
+ IMPL_ABSTDLG_BASE(AbstractScGroupDlg_Impl); //add for ScGroupDlg
+@@ -761,6 +765,26 @@
+ 
+ //add for ScDeleteCellDlg  end
+ 
++//add for ScDataFormDlg begin
++AbstractScDataFormDlg* ScAbstractDialogFactory_Impl::CreateScDataFormDlg( Window* pParent, int nId, ScTabViewShell*	pTabViewShell )
++{
++	ScDataFormDlg * pDlg=NULL;
++	switch ( nId )
++	{
++		case RID_SCDLG_DATAFORM :
++			pDlg = new ScDataFormDlg( pParent, pTabViewShell);
++			break;
++		default:
++			break;
++	}
++
++	if ( pDlg )
++		return new AbstractScDataFormDlg_Impl( pDlg );
++	return 0;
++}
++
++//add for ScDataFormDlg  end
++
+ //add for ScDeleteContentsDlg begin
+ AbstractScDeleteContentsDlg* ScAbstractDialogFactory_Impl::CreateScDeleteContentsDlg(Window* pParent,int nId, //add for ScDeleteContentsDlg
+ 																 USHORT  nCheckDefaults )
+diff -uNr sc/source/ui/attrdlg/scdlgfact.hxx sc/source/ui/attrdlg/scdlgfact.hxx
+--- sc/source/ui/attrdlg/scdlgfact.hxx	2007-09-18 13:29:39.000000000 +0800
++++ sc/source/ui/attrdlg/scdlgfact.hxx	2007-09-18 13:31:18.000000000 +0800
+@@ -45,6 +45,7 @@
+ class ScDataPilotSourceTypeDlg;
+ class ScDataPilotServiceDlg;
+ class ScDeleteCellDlg;
++class ScDataFormDlg;
+ class ScDeleteContentsDlg;
+ class ScFillSeriesDlg;
+ class ScGroupDlg;
+@@ -167,6 +168,12 @@
+ 	virtual DelCellCmd GetDelCellCmd() const;
+ };
+ 
++//for dataform
++class AbstractScDataFormDlg_Impl : public AbstractScDataFormDlg  //add for ScDataFormDlg
++{
++	DECL_ABSTDLG_BASE(AbstractScDataFormDlg_Impl,ScDataFormDlg);
++};
++
+ class AbstractScDeleteContentsDlg_Impl : public AbstractScDeleteContentsDlg  //add for ScDeleteContentsDlg
+ {
+ 	DECL_ABSTDLG_BASE( AbstractScDeleteContentsDlg_Impl,ScDeleteContentsDlg)
+@@ -395,6 +402,9 @@
+ 	virtual AbstractScDeleteCellDlg * CreateScDeleteCellDlg( Window* pParent, int nId,
+ 															BOOL bDisallowCellMove = FALSE ); //add for ScDeleteCellDlg
+ 
++	//for dataform
++	virtual AbstractScDataFormDlg * CreateScDataFormDlg( Window* pParent, int nId, ScTabViewShell*      pTabViewShell); //add for ScDeleteCellDlg
++
+ 	virtual AbstractScDeleteContentsDlg * CreateScDeleteContentsDlg(Window* pParent,int nId, //add for ScDeleteContentsDlg
+ 																 USHORT  nCheckDefaults = 0 );
+ 
+diff -uNr sc/source/ui/inc/datafdlg.hrc sc/source/ui/inc/datafdlg.hrc
+--- sc/source/ui/inc/datafdlg.hrc	1970-01-01 08:00:00.000000000 +0800
++++ sc/source/ui/inc/datafdlg.hrc	2007-09-18 13:31:09.000000000 +0800
+@@ -0,0 +1,49 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: datafdlg.hrc,v $
++ *
++ *  $Revision: 1.00 $
++ *
++ *  last change: $Author: rt $ $Date: 2005/09/08 21:37:12 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "sc.hrc"	// -> RID_SCDLG_DATAFORM
++
++//dataform
++#define BTN_DATAFORM_NEW          1001
++#define BTN_DATAFORM_DELETE       1002
++#define BTN_DATAFORM_RESTORE      1003
++#define BTN_DATAFORM_LAST         1004
++#define BTN_DATAFORM_NEXT         1005
++#define BTN_DATAFORM_CLOSE        1007
++#define WND_DATAFORM_SCROLLBAR    1008
++#define LAB_DATAFORM_RECORDNO     1009
++
++#define FT_DATAFORM_FIXEDTEXT1    2001
++#define ED_DATAFORM_EDIT1         2002
+\ No newline at end of file
+diff -uNr sc/source/ui/inc/datafdlg.hxx sc/source/ui/inc/datafdlg.hxx
+--- sc/source/ui/inc/datafdlg.hxx	1970-01-01 08:00:00.000000000 +0800
++++ sc/source/ui/inc/datafdlg.hxx	2007-09-18 13:31:09.000000000 +0800
+@@ -0,0 +1,121 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: datafdlg.hxx,v $
++ *
++ *  $Revision: 1.00 $
++ *
++ *  last change: $Author: rt $ $Date: 2005/09/08 21:20:35 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#ifndef SC_DATAFDLG_HXX
++#define SC_DATAFDLG_HXX
++
++
++#ifndef _SV_DIALOG_HXX //autogen
++#include <vcl/dialog.hxx>
++#endif
++
++#ifndef _SV_BUTTON_HXX //autogen
++#include <vcl/imagebtn.hxx>
++#endif
++
++#ifndef _SV_FIXED_HXX //autogen
++#include <vcl/fixed.hxx>
++#endif
++
++
++#include "global.hxx"
++
++#include <tabvwsh.hxx>
++#include <sfx2/bindings.hxx>
++#include <sfx2/dispatch.hxx>
++
++#define MAX_DATAFORM_COLS   256
++#define MAX_DATAFORM_ROWS   32000
++#define CTRL_HEIGHT         22
++#define FIXED_WIDTH         60
++#define EDIT_WIDTH          140 
++#define FIXED_LEFT          12
++#define EDIT_LEFT           78
++#define LINE_HEIGHT         30
++
++//zhangyun
++class ScDataFormDlg : public ModalDialog
++{
++private:
++
++	PushButton      aBtnNew;
++	PushButton      aBtnDelete;
++	PushButton      aBtnRestore;
++	PushButton      aBtnLast;
++	PushButton      aBtnNext;
++	PushButton      aBtnClose;
++	ScrollBar       aSlider;
++	FixedText       aFixedText;
++	//FixedText       aFixedText1;
++	//Edit            aEdit1;
++	
++	ScTabViewShell*	pTabViewShell;
++    ScDocument*     pDoc;
++	sal_uInt16      aColLength;
++	SCROW           aCurrentRow;
++	SCCOL           nStartCol;
++	SCCOL           nEndCol;
++	SCROW	        nStartRow;
++	SCROW	        nEndRow;
++	SCTAB	        nTab;
++	BOOL            bNoSelection;
++	
++	FixedText** pFixedTexts;
++    Edit** pEdits;
++
++public:
++	ScDataFormDlg( Window* pParent, ScTabViewShell*	pTabViewShell);
++	~ScDataFormDlg();
++	
++	void FillCtrls(SCROW nCurrentRow);
++private:
++
++	void SetButtonState();
++
++	// Handler:
++	DECL_LINK( Impl_NewHdl,		PushButton*    );
++	DECL_LINK( Impl_LastHdl,	PushButton*    );
++	DECL_LINK( Impl_NextHdl,	PushButton*    );
++	
++	DECL_LINK( Impl_RestoreHdl,	PushButton*    );
++	DECL_LINK( Impl_DeleteHdl,	PushButton*    );
++	DECL_LINK( Impl_CloseHdl,	PushButton*    );
++	
++	DECL_LINK( Impl_ScrollHdl,	ScrollBar*    );
++	DECL_LINK( Impl_DataModifyHdl,  Edit*    );
++};
++#endif // SC_DATAFDLG_HXX
++
++
+diff -uNr sc/source/ui/inc/undodat.hxx sc/source/ui/inc/undodat.hxx
+--- sc/source/ui/inc/undodat.hxx	2007-09-18 13:29:34.000000000 +0800
++++ sc/source/ui/inc/undodat.hxx	2007-09-18 13:31:09.000000000 +0800
+@@ -554,7 +554,43 @@
+ 	void				Init();
+ };
+ 
++// amelia
++class ScUndoDataForm: public ScBlockUndo
++{
++public:
++					TYPEINFO();
++					ScUndoDataForm( ScDocShell* pNewDocShell,
++								SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
++								SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
++								const ScMarkData& rMark,
++								ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
++								USHORT nNewFlags,
++								ScRefUndoData* pRefData, void* pFill1, void* pFill2, void* pFill3,
++								BOOL bRedoIsFilled = TRUE
++								 );
++	virtual		~ScUndoDataForm();
+ 
++	virtual	void	Undo();
++	virtual	void	Redo();
++	virtual void	Repeat(SfxRepeatTarget& rTarget);
++	virtual BOOL	CanRepeat(SfxRepeatTarget& rTarget) const;
++
++	virtual String	GetComment() const;
++
++private:
++	ScMarkData		aMarkData;
++	ScDocument*		pUndoDoc;
++	ScDocument*		pRedoDoc;
++	USHORT			nFlags;
++	ScRefUndoData*		pRefUndoData;
++	ScRefUndoData*		pRefRedoData;
++	ULONG			nStartChangeAction;
++	ULONG			nEndChangeAction;
++	BOOL			bRedoFilled;
++
++	void			DoChange( const BOOL bUndo );
++	void			SetChangeTrack();
++};
+ 
+ 
+ #endif
+diff -uNr sc/source/ui/inc/viewfunc.hxx sc/source/ui/inc/viewfunc.hxx
+--- sc/source/ui/inc/viewfunc.hxx	2007-09-18 13:29:34.000000000 +0800
++++ sc/source/ui/inc/viewfunc.hxx	2007-09-18 13:31:09.000000000 +0800
+@@ -340,6 +340,13 @@
+ 	void			ForgetFormatArea()		{ bFormatValid = FALSE; }
+ 	BOOL			SelectionEditable( BOOL* pOnlyNotBecauseOfMatrix = NULL );
+ 
++        // Amelia Wang
++        SC_DLLPUBLIC void                   DataFormPutData( SCROW nCurrentRow ,
++                                                             SCROW nStartRow , SCCOL nStartCol ,
++                                                             SCROW nEndRow , SCCOL nEndCol ,
++                                                             Edit** pEdits ,
++                                                             sal_uInt16 aColLength );
++
+ 												// interne Hilfsfunktionen
+ protected:
+ 	void			UpdateLineAttrs( SvxBorderLine&		  rLine,
+diff -uNr sc/source/ui/miscdlgs/datafdlg.cxx sc/source/ui/miscdlgs/datafdlg.cxx
+--- sc/source/ui/miscdlgs/datafdlg.cxx	1970-01-01 08:00:00.000000000 +0800
++++ sc/source/ui/miscdlgs/datafdlg.cxx	2007-09-18 13:31:17.000000000 +0800
+@@ -0,0 +1,436 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: datafdlg.cxx,v $
++ *
++ *  $Revision: 1.00 $
++ *
++ *  last change: $Author: kz $ $Date: 2006/07/21 14:04:33 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_sc.hxx"
++
++#undef SC_DLLIMPLEMENTATION
++
++//------------------------------------------------------------------
++
++#include "datafdlg.hxx"
++#include "scresid.hxx"
++#include "datafdlg.hrc"
++#include "viewdata.hxx"
++//#include "document.hxx"
++#include "docsh.hxx"
++#include "refundo.hxx"
++#include "undodat.hxx"
++
++#include <stdio.h>
++
++static BYTE nDelItemChecked=0;
++#define HDL(hdl)			LINK( this, ScDataFormDlg, hdl )
++
++//zhangyun
++ScDataFormDlg::ScDataFormDlg( Window* pParent, ScTabViewShell*	pTabViewShellOri) :
++	ModalDialog     ( pParent, ScResId( RID_SCDLG_DATAFORM ) ),
++	//
++	aFixedText          ( this, ScResId( LAB_DATAFORM_RECORDNO ) ),
++	aBtnNew          ( this, ScResId( BTN_DATAFORM_NEW ) ),
++	aBtnDelete          ( this, ScResId( BTN_DATAFORM_DELETE ) ),
++	aBtnRestore          ( this, ScResId( BTN_DATAFORM_RESTORE ) ),
++	aBtnLast          ( this, ScResId( BTN_DATAFORM_LAST ) ),
++	aBtnNext          ( this, ScResId( BTN_DATAFORM_NEXT ) ),
++    aBtnClose          ( this, ScResId( BTN_DATAFORM_CLOSE ) ),
++    aSlider			( this, ScResId( WND_DATAFORM_SCROLLBAR ) )
++    //aSlider          ( this, ScResId( WND_DATAFORM_SCROLLBAR ) ),
++    //aFixedText1          ( this, ScResId( FT_DATAFORM_FIXEDTEXT1 ) ),
++    //aEdit1          ( this, ScResId( ED_DATAFORM_EDIT1 ) )
++{
++    pTabViewShell = pTabViewShellOri;
++    FreeResource();
++    //read header form current document, and add new controls
++    DBG_ASSERT( pTabViewShell, "pTabViewShell is NULL! :-/" );
++    ScViewData*	pViewData = pTabViewShell->GetViewData();
++    
++    //int aColLength=20;
++    //FixedText** pFixedTexts;
++    //Edit** pEdits;
++    //pFixedTexts = new FixedText*[aColLength];
++	//pEdits = new Edit*[aColLength];
++    
++    pDoc = pViewData->GetDocument();
++    if (pDoc)
++    {
++        ScRange aRange;
++        pViewData->GetSimpleArea( aRange );
++        ScAddress aStart = aRange.aStart;
++        ScAddress aEnd = aRange.aEnd;
++        
++        nStartCol = aStart.Col();
++		nEndCol = aEnd.Col();
++		nStartRow	= aStart.Row();
++		nEndRow	= aEnd.Row();
++		
++		nTab = pViewData->GetTabNo();
++		//if there is no selection
++		if ((nStartCol == nEndCol) && (nStartRow == nEndRow))
++		    bNoSelection = TRUE;
++		
++		if (bNoSelection)
++		{
++		    //find last not blank cell in row
++		    for (int i=1;i<=MAX_DATAFORM_COLS;i++)
++		    {
++		        String	aColName;
++		        nEndCol++;
++		        pDoc->GetString( nEndCol, nStartRow, nTab, aColName );
++		        int nColWidth = pDoc->GetColWidth( nEndCol, nTab );
++		        if ( aColName.Len() == 0 && nColWidth)
++		        {
++                    nEndCol--;
++                    break;
++                }
++		    }
++		    
++		    //find first not blank cell in row
++		    for (int i=1;i<=MAX_DATAFORM_COLS;i++)
++		    {
++		        String	aColName;
++		        if (nStartCol <= 0)
++		            break;
++		        nStartCol--;
++
++		        pDoc->GetString( nStartCol, nStartRow, nTab, aColName );
++		        int nColWidth = pDoc->GetColWidth( nEndCol, nTab );
++		        if ( aColName.Len() == 0 && nColWidth)
++		        {
++                    nStartCol++;
++                    break;
++                }
++		    }
++		    
++		    //skip leading hide column
++		    for (int i=1;i<=MAX_DATAFORM_COLS;i++)
++		    {
++		        String	aColName;
++		        int nColWidth = pDoc->GetColWidth( nStartCol, nTab );
++		        if (nColWidth)
++		            break;
++		        nStartCol++;
++		    }
++
++		    if (nEndCol < nStartCol)
++		        nEndCol = nStartCol;
++		        
++		    //find last not blank cell in row
++		    for (int i=1;i<=MAX_DATAFORM_ROWS;i++)
++		    {
++		        String	aColName;
++		        nEndRow++;
++		        pDoc->GetString( nStartCol, nEndRow, nTab, aColName );
++		        if ( aColName.Len() == 0 )
++		        {
++                    nEndRow--;
++                    break;
++                }
++		    }
++		    
++		    //find first not blank cell in row
++		    for (int i=1;i<=MAX_DATAFORM_ROWS;i++)
++		    {
++		        String	aColName;
++		        if (nStartRow <= 0)
++		            break;
++		        nStartRow--;
++
++		        pDoc->GetString( nStartCol, nStartRow, nTab, aColName );
++		        if ( aColName.Len() == 0 )
++		        {
++                    nStartRow++;
++                    break;
++                }
++		    }
++
++		    if (nEndRow < nStartRow)
++		        nEndRow = nStartRow;
++		}
++		
++		aCurrentRow = nStartRow + 1;
++		
++		SCCOL	col;
++		String	aFieldName;
++
++		int nTop = 12;
++
++		Size	nFixedSize(FIXED_WIDTH, CTRL_HEIGHT );
++	    Size	nEditSize(EDIT_WIDTH, CTRL_HEIGHT );
++		
++		//pFtArray = new FixedText(this);
++		aColLength = nEndCol - nStartCol + 1;
++	    
++	    //new the controls
++	    pFixedTexts = new FixedText*[aColLength];
++	    pEdits = new Edit*[aColLength];
++	    
++	    for(sal_uInt16 nIndex = 0; nIndex < aColLength; nIndex++)
++		{
++    		pDoc->GetString( nIndex + nStartCol, nStartRow, nTab, aFieldName );
++    		int nColWidth = pDoc->GetColWidth( nIndex + nStartCol, nTab );
++    		if (nColWidth)
++    		{
++        		pFixedTexts[nIndex] = new FixedText(this);
++        		pEdits[nIndex] = new Edit(this, WB_BORDER);
++        
++        		pFixedTexts[nIndex]->SetSizePixel(nFixedSize);
++        		pEdits[nIndex]->SetSizePixel(nEditSize);
++        		pFixedTexts[nIndex]->SetPosPixel(Point(FIXED_LEFT, nTop));
++        		pEdits[nIndex]->SetPosPixel(Point(EDIT_LEFT, nTop));
++        		//pFixedTexts[nIndex]->SetText(String::CreateFromAscii("W4W-Filter Nr. "));
++        		pFixedTexts[nIndex]->SetText(aFieldName);
++        		pFixedTexts[nIndex]->Show();
++        		pEdits[nIndex]->Show();
++        		
++        		nTop += LINE_HEIGHT;
++    	    }
++        	else
++        	{
++        	    pFixedTexts[nIndex] = NULL;
++        		pEdits[nIndex] = NULL;
++        	}
++		pEdits[nIndex]->SetModifyHdl( HDL(Impl_DataModifyHdl) );
++    	}
++    	
++    	Size nDialogSize = this->GetSizePixel();
++        if (nTop > nDialogSize.Height())
++        {
++            nDialogSize.setHeight(nTop);
++            this->SetSizePixel(nDialogSize);
++        }
++        Size nScrollSize = aSlider.GetSizePixel();
++        nScrollSize.setHeight(nDialogSize.Height()-20);
++        aSlider.SetSizePixel(nScrollSize);
++    }
++    
++    FillCtrls(aCurrentRow);
++    
++    aSlider.SetPageSize( 10 );
++    aSlider.SetVisibleSize( 1 );
++    aSlider.SetLineSize( 1 );
++    aSlider.SetRange( Range( 0, nEndRow - nStartRow + 1) );
++    aSlider.Show();
++    
++    aBtnNew.SetClickHdl 	( HDL(Impl_NewHdl)    );
++    aBtnLast.SetClickHdl 	( HDL(Impl_LastHdl)    );
++    aBtnNext.SetClickHdl 	( HDL(Impl_NextHdl)    );
++    
++    aBtnRestore.SetClickHdl 	( HDL(Impl_RestoreHdl)    );
++    aBtnDelete.SetClickHdl 	( HDL(Impl_DeleteHdl)    );
++    aBtnClose.SetClickHdl 	( HDL(Impl_CloseHdl)    );
++    
++    aSlider.SetEndScrollHdl( HDL( Impl_ScrollHdl ) );
++
++    SetButtonState();
++
++    //end
++	//FreeResource();
++}
++
++__EXPORT ScDataFormDlg::~ScDataFormDlg()
++{
++    for(sal_uInt16 i = 0; i < aColLength; i++)
++    {
++	    if (pEdits[i])
++    	    delete pEdits[i];
++	    if (pFixedTexts[i])
++    	    delete pFixedTexts[i];
++    }
++    if (pEdits)
++    	delete pEdits;
++	if (pFixedTexts)
++    	delete pFixedTexts;
++}
++
++void ScDataFormDlg::FillCtrls(SCROW nCurrentRow)
++{
++    //ScViewData*	pViewData = pTabViewShell->GetViewData();
++    
++    //pDoc = pViewData->GetDocument();
++    String	aFieldName;
++    int nRecordNum = nEndRow - nStartRow;
++    for(sal_uInt16 i = 0; i < aColLength; i++)
++    {
++	    if (pEdits[i])
++	    {
++    	    if (aCurrentRow<=nEndRow)
++    	    {
++    	        pDoc->GetString( i + nStartCol, aCurrentRow, nTab, aFieldName );
++    	        pEdits[i]->SetText(aFieldName);
++    	    }
++    	    else
++    	        pEdits[i]->SetText(String());
++	    }
++    }
++    char sRecordStr[256];
++	sprintf(sRecordStr, "%i / %i", aCurrentRow-nStartRow, nRecordNum);
++    if (aCurrentRow<=nEndRow)
++	    aFixedText.SetText(String::CreateFromAscii(sRecordStr));
++	else
++	    aFixedText.SetText(String::CreateFromAscii("New Record"));
++	    
++	aSlider.SetThumbPos(aCurrentRow-nStartRow-1);
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_DataModifyHdl, Edit*, pEdit)
++{
++	if ( pEdit->IsModified() )
++		aBtnRestore.Enable( TRUE );
++	return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_NewHdl, PushButton*, pBtn)
++{
++    ScViewData*	pViewData = pTabViewShell->GetViewData();
++    ScDocShell* pDocSh = pViewData->GetDocShell();
++    if ( pDoc )
++    {
++		sal_Bool bHasData = sal_False;
++		for(sal_uInt16 i = 0; i < aColLength; i++)
++			if (pEdits[i])
++				if ( pEdits[i]->GetText().Len() != 0 )
++				{
++					bHasData = sal_True;
++					break;
++				}
++
++		if ( bHasData )
++		{
++			pTabViewShell->DataFormPutData( aCurrentRow , nStartRow , nStartCol , nEndRow , nEndCol , pEdits , aColLength );
++			aCurrentRow++;
++			if (aCurrentRow >= nEndRow + 2)
++			{
++		    		nEndRow ++ ;
++		    		aSlider.SetRange( Range( 0, nEndRow - nStartRow + 1) );
++			}
++			SetButtonState();
++			FillCtrls(aCurrentRow);
++			pDocSh->SetDocumentModified();
++			pDocSh->PostPaintGridAll();
++    		}
++	}
++	return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_LastHdl, PushButton*, pBtn)
++{   
++    if (pDoc)
++    {
++		if ( aCurrentRow > nStartRow +1 )
++		    aCurrentRow--;
++
++		SetButtonState();
++		FillCtrls(aCurrentRow);
++    }
++    return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_NextHdl, PushButton*, pBtn)
++{   
++    if (pDoc)
++    {
++		if ( aCurrentRow <= nEndRow)
++		    aCurrentRow++;
++
++		SetButtonState();
++		FillCtrls(aCurrentRow);
++    }
++    return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_RestoreHdl, PushButton*, pBtn)
++{   
++    if (pDoc)
++    {
++		FillCtrls(aCurrentRow);
++    }
++    return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_DeleteHdl, PushButton*, pBtn)
++{   
++    ScViewData*	pViewData = pTabViewShell->GetViewData();
++    ScDocShell* pDocSh = pViewData->GetDocShell();
++    if (pDoc)
++    {
++		ScRange aRange(nStartCol, aCurrentRow, nTab, nEndCol, aCurrentRow, nTab);
++		pDoc->DeleteRow(aRange);
++		nEndRow--;
++		
++		SetButtonState();
++		pDocSh->GetUndoManager()->Clear();
++
++		FillCtrls(aCurrentRow);
++		pDocSh->SetDocumentModified();
++		pDocSh->PostPaintGridAll();
++    }
++    return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_CloseHdl, PushButton*, pBtn)
++{   
++    EndDialog( );
++    return 0;
++}
++
++IMPL_LINK( ScDataFormDlg, Impl_ScrollHdl, ScrollBar*, EMPTYARG)
++{   
++    long nOffset = aSlider.GetThumbPos();
++    aCurrentRow = nStartRow + nOffset + 1;
++    SetButtonState();
++    FillCtrls(aCurrentRow);
++    return 0;
++}
++
++void ScDataFormDlg::SetButtonState()
++{
++    if ( aCurrentRow > nEndRow )
++    {
++        aBtnDelete.Enable( FALSE );
++        aBtnLast.Enable( TRUE );
++        aBtnNext.Enable( FALSE );
++    }
++    else
++    {
++        aBtnDelete.Enable( TRUE );
++        aBtnNext.Enable( TRUE );
++    }
++    if ( 1 == aCurrentRow )
++        aBtnLast.Enable( FALSE );
++
++    aBtnRestore.Enable( FALSE );
++    if ( pEdits )
++        pEdits[0]->GrabFocus();
++}
+diff -uNr sc/source/ui/miscdlgs/makefile.mk sc/source/ui/miscdlgs/makefile.mk
+--- sc/source/ui/miscdlgs/makefile.mk	2007-09-18 13:29:39.000000000 +0800
++++ sc/source/ui/miscdlgs/makefile.mk	2007-09-18 13:31:17.000000000 +0800
+@@ -54,6 +54,7 @@
+ # --- Files --------------------------------------------------------
+ 
+ SLOFILES =  \
++	$(SLO)$/datafdlg.obj		\
+ 	$(SLO)$/delcldlg.obj		\
+ 	$(SLO)$/inscldlg.obj		\
+ 	$(SLO)$/delcodlg.obj		\
+diff -uNr sc/source/ui/src/datafdlg.src sc/source/ui/src/datafdlg.src
+--- sc/source/ui/src/datafdlg.src	1970-01-01 08:00:00.000000000 +0800
++++ sc/source/ui/src/datafdlg.src	2007-09-18 13:31:10.000000000 +0800
+@@ -0,0 +1,108 @@
++/*************************************************************************
++ *
++ *  OpenOffice.org - a multi-platform office productivity suite
++ *
++ *  $RCSfile: datafdlg.src,v $
++ *
++ *  $Revision: 1.00 $
++ *
++ *  last change: $Author: hr $ $Date: 2005/09/23 15:07:30 $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ ************************************************************************/
++
++#include "datafdlg.hrc"
++
++//zhangyun, dataform
++ModalDialog RID_SCDLG_DATAFORM
++{
++	OutputSize = TRUE ;
++	SVLook = TRUE ;
++    Size = MAP_APPFONT ( 191 , 180 ) ;
++	Text [ en-US ] = "Data Form" ;
++	Moveable = TRUE ;
++	Closeable = TRUE ;
++	FixedText LAB_DATAFORM_RECORDNO
++	{
++		Pos = MAP_APPFONT ( 136 , 6 ) ;
++        Size = MAP_APPFONT ( 50 , 12 ) ;
++		Text [ en-US ] = "/" ;
++	};
++	PushButton BTN_DATAFORM_NEW
++	{
++		Pos = MAP_APPFONT ( 135 , 23 ) ;
++		Size = MAP_APPFONT ( 50 , 14 ) ;
++		TabStop = TRUE ;
++		DefButton = TRUE ;
++		Text [ en-US ] = "New" ;
++	};
++	PushButton BTN_DATAFORM_DELETE
++	{
++		Pos = MAP_APPFONT ( 135 , 40 ) ;
++		Size = MAP_APPFONT ( 50 , 14 ) ;
++		TabStop = TRUE ;
++		Text [ en-US ] = "Delete" ;
++	};
++	PushButton BTN_DATAFORM_RESTORE
++	{
++		Pos = MAP_APPFONT ( 135 , 57 ) ;
++		Size = MAP_APPFONT ( 50 , 14 ) ;
++		TabStop = TRUE ;
++		Text [ en-US ] = "Restore" ;
++	};
++	PushButton BTN_DATAFORM_LAST
++	{
++		Pos = MAP_APPFONT ( 135 , 82 ) ;
++		Size = MAP_APPFONT ( 50 , 14 ) ;
++		TabStop = TRUE ;
++		Text [ en-US ] = "Last Record" ;
++	};
++	PushButton BTN_DATAFORM_NEXT
++	{
++		Pos = MAP_APPFONT ( 135 , 99 ) ;
++		Size = MAP_APPFONT ( 50 , 14 ) ;
++		TabStop = TRUE ;
++		Text [ en-US ] = "Next Record" ;
++	};
++	PushButton BTN_DATAFORM_CLOSE
++	{
++		Pos = MAP_APPFONT ( 135 , 116 ) ;
++		Size = MAP_APPFONT ( 50 , 14 ) ;
++		TabStop = TRUE ;
++		Text [ en-US ] = "Close" ;
++	};
++	ScrollBar WND_DATAFORM_SCROLLBAR
++    {
++        Pos = MAP_APPFONT ( 124 , 6 ) ;
++        Size = MAP_APPFONT ( 8 , 135 ) ;
++        HScroll = FALSE ;
++        TabStop = FALSE ;
++    };
++};
++//end
++
++
++
++
+diff -uNr sc/source/ui/src/makefile.mk sc/source/ui/src/makefile.mk
+--- sc/source/ui/src/makefile.mk	2007-09-18 13:29:34.000000000 +0800
++++ sc/source/ui/src/makefile.mk	2007-09-18 13:31:10.000000000 +0800
+@@ -61,6 +61,7 @@
+ 	dbnamdlg.src \
+ 	subtdlg.src  \
+ 	miscdlgs.src \
++	datafdlg.src \
+ 	autofmt.src  \
+ 	solvrdlg.src \
+ 	tabopdlg.src \
+diff -uNr sc/source/ui/undo/undodat.cxx sc/source/ui/undo/undodat.cxx
+--- sc/source/ui/undo/undodat.cxx	2007-09-18 13:29:34.000000000 +0800
++++ sc/source/ui/undo/undodat.cxx	2007-09-18 13:31:11.000000000 +0800
+@@ -63,6 +63,8 @@
+ #include "dpobject.hxx"
+ #include "attrib.hxx"
+ #include "sc.hrc"
++#include "chgtrack.hxx"  // Amelia Wang
++#include "refundo.hxx"  // Amelia Wang
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -83,6 +85,7 @@
+ TYPEINIT1(ScUndoDataPilot,			SfxUndoAction);
+ TYPEINIT1(ScUndoConsolidate,		SfxUndoAction);
+ TYPEINIT1(ScUndoChartData,			SfxUndoAction);
++TYPEINIT1(ScUndoDataForm, 			SfxUndoAction);    // amelia
+ 
+ // -----------------------------------------------------------------------
+ 
+@@ -2182,8 +2185,218 @@
+ 	return FALSE;
+ }
+ 
++// Amelia Wang
++ScUndoDataForm::ScUndoDataForm( ScDocShell* pNewDocShell,
++                                SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
++                                SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
++                                const ScMarkData& rMark,
++                                ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
++                                USHORT nNewFlags,
++                                ScRefUndoData* pRefData,
++                                void* pFill1, void* pFill2, void* pFill3,
++                                BOOL bRedoIsFilled ) :
++        ScBlockUndo( pNewDocShell, ScRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ), SC_UNDO_SIMPLE ),
++        aMarkData( rMark ),
++        pUndoDoc( pNewUndoDoc ),
++        pRedoDoc( pNewRedoDoc ),
++        nFlags( nNewFlags ),
++        pRefUndoData( pRefData ),
++        pRefRedoData( NULL ),
++        bRedoFilled( bRedoIsFilled )
++{
++        //      pFill1,pFill2,pFill3 are there so the ctor calls for simple paste (without cutting)
++        //      don't have to be changed and branched for 641.
++        //      They can be removed later.
++
++        if ( !aMarkData.IsMarked() )                            // no cell marked:
++                aMarkData.SetMarkArea( aBlockRange );   //  mark paste block
++
++        if ( pRefUndoData )
++                pRefUndoData->DeleteUnchanged( pDocShell->GetDocument() );
++
++        SetChangeTrack();
++}
++
++__EXPORT ScUndoDataForm::~ScUndoDataForm()
++{
++        delete pUndoDoc;
++        delete pRedoDoc;
++        delete pRefUndoData;
++        delete pRefRedoData;
++}
++
++String __EXPORT ScUndoDataForm::GetComment() const
++{
++        return ScGlobal::GetRscString( STR_UNDO_PASTE ); 
++}
++
++void ScUndoDataForm::SetChangeTrack()
++{
++        ScChangeTrack* pChangeTrack = pDocShell->GetDocument()->GetChangeTrack();
++        if ( pChangeTrack && (nFlags & IDF_CONTENTS) )
++                pChangeTrack->AppendContentRange( aBlockRange, pUndoDoc,
++                        nStartChangeAction, nEndChangeAction, SC_CACM_PASTE );
++        else
++                nStartChangeAction = nEndChangeAction = 0;
++}
++
++
++void __EXPORT ScUndoDataForm::Undo()
++{
++        BeginUndo();
++        DoChange( TRUE );
++        ShowTable( aBlockRange );
++        EndUndo();
++        SFX_APP()->Broadcast( SfxSimpleHint( SC_HINT_AREALINKS_CHANGED ) );
++}
++
++void __EXPORT ScUndoDataForm::Redo()
++{
++        BeginRedo();
++        ScDocument* pDoc = pDocShell->GetDocument();
++        EnableDrawAdjust( pDoc, FALSE );                                //! include in ScBlockUndo?
++        DoChange( FALSE );
++        EnableDrawAdjust( pDoc, TRUE );                                 //! include in ScBlockUndo?
++        EndRedo();
++        SFX_APP()->Broadcast( SfxSimpleHint( SC_HINT_AREALINKS_CHANGED ) );
++}
++
++void __EXPORT ScUndoDataForm::Repeat(SfxRepeatTarget& rTarget)
++{
++        if (rTarget.ISA(ScTabViewTarget))
++        {
++                ScTabViewShell* pViewSh = ((ScTabViewTarget&)rTarget).GetViewShell();
++                //ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard( pViewSh->GetActiveWin() );
++        }
++}
++
++BOOL __EXPORT ScUndoDataForm::CanRepeat(SfxRepeatTarget& rTarget) const
++{
++        return (rTarget.ISA(ScTabViewTarget));
++}
++
++void ScUndoDataForm::DoChange( const BOOL bUndo )
++{
++            ScDocument* pDoc = pDocShell->GetDocument();
++
++        //      RefUndoData for redo is created before first undo
++        //      (with DeleteUnchanged after the DoUndo call)
++        BOOL bCreateRedoData = ( bUndo && pRefUndoData && !pRefRedoData );
++        if ( bCreateRedoData )
++                pRefRedoData = new ScRefUndoData( pDoc );
++
++        ScRefUndoData* pWorkRefData = bUndo ? pRefUndoData : pRefRedoData;
+ 
++                //      fuer Undo immer alle oder keine Inhalte sichern
++        USHORT nUndoFlags = IDF_NONE;
++        if (nFlags & IDF_CONTENTS)
++                nUndoFlags |= IDF_CONTENTS;
++        if (nFlags & IDF_ATTRIB)
++                nUndoFlags |= IDF_ATTRIB;
+ 
++        BOOL bPaintAll = FALSE;
+ 
++        ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+ 
++        // marking is in ScBlockUndo...
++        //ScUndoUtil::MarkSimpleBlock( pDocShell, aBlockRange );
+ 
++    SCTAB nTabCount = pDoc->GetTableCount();
++        if ( bUndo && !bRedoFilled )
++        {
++                if (!pRedoDoc)
++                {
++                        BOOL bColInfo = ( aBlockRange.aStart.Row()==0 && aBlockRange.aEnd.Row()==MAXROW );
++                        BOOL bRowInfo = ( aBlockRange.aStart.Col()==0 && aBlockRange.aEnd.Col()==MAXCOL );
++
++            SCTAB nStartTab = aBlockRange.aStart.Tab();
++                        pRedoDoc = new ScDocument( SCDOCMODE_UNDO );
++            pRedoDoc->InitUndoSelected( pDoc, aMarkData, bColInfo, bRowInfo );
++                }
++        //  read "redo" data from the document in the first undo
++                //  all sheets - CopyToDocument skips those that don't exist in pRedoDoc
++        ScRange aCopyRange = aBlockRange;
++        aCopyRange.aStart.SetTab(0);
++        aCopyRange.aEnd.SetTab(nTabCount-1);
++                pDoc->CopyToDocument( aCopyRange, 1, FALSE, pRedoDoc );
++                bRedoFilled = TRUE;
++        }
++
++        USHORT nExtFlags = 0;
++        pDocShell->UpdatePaintExt( nExtFlags, aBlockRange );
++
++        for ( sal_uInt16 i=0; i <= ( aBlockRange.aEnd.Col() - aBlockRange.aStart.Col() ); i++ )
++        {
++            String aOldString;
++            pUndoDoc->GetString( aBlockRange.aStart.Col()+i , aBlockRange.aStart.Row() , aBlockRange.aStart.Tab() , aOldString );
++            pDoc->SetString( aBlockRange.aStart.Col()+i , aBlockRange.aStart.Row() , aBlockRange.aStart.Tab() , aOldString );
++        }
++
++    SCTAB nFirstSelected = aMarkData.GetFirstSelected();
++    ScRange aTabSelectRange = aBlockRange;
++    SCTAB nTab;
++
++        if (pWorkRefData)
++        {
++                pWorkRefData->DoUndo( pDoc, TRUE );             // TRUE = bSetChartRangeLists for SetChartListenerCollection
++                if ( pDoc->RefreshAutoFilter( 0,0, MAXCOL,MAXROW, aBlockRange.aStart.Tab() ) )
++                        bPaintAll = TRUE;
++        }
++
++        if ( bCreateRedoData && pRefRedoData )
++                pRefRedoData->DeleteUnchanged( pDoc );
++       
++        if ( bUndo )
++        {
++                ScChangeTrack* pChangeTrack = pDoc->GetChangeTrack();
++                if ( pChangeTrack )
++                        pChangeTrack->Undo( nStartChangeAction, nEndChangeAction );
++        }
++        else
++                SetChangeTrack();
++
++        ScRange aDrawRange( aBlockRange );
++    pDoc->ExtendMerge( aDrawRange, TRUE );      // only needed for single sheet (text/rtf etc.)
++        USHORT nPaint = PAINT_GRID;
++        if (bPaintAll)
++        {
++                aDrawRange.aStart.SetCol(0);
++                aDrawRange.aStart.SetRow(0);
++                aDrawRange.aEnd.SetCol(MAXCOL);
++                aDrawRange.aEnd.SetRow(MAXROW);
++                nPaint |= PAINT_TOP | PAINT_LEFT;
++/*A*/   if (pViewShell)
++                        pViewShell->AdjustBlockHeight(FALSE);
++        }
++        else
++        {
++                if ( aBlockRange.aStart.Row() == 0 && aBlockRange.aEnd.Row() == MAXROW )        // ganze Spalte
++                {
++                        nPaint |= PAINT_TOP;
++                        aDrawRange.aEnd.SetCol(MAXCOL);
++                }
++                if ( aBlockRange.aStart.Col() == 0 && aBlockRange.aEnd.Col() == MAXCOL )        // ganze Zeile
++                {
++                        nPaint |= PAINT_LEFT;
++                        aDrawRange.aEnd.SetRow(MAXROW);
++                }
++/*A*/   if ((pViewShell) && pViewShell->AdjustBlockHeight(FALSE))
++                {
++                        aDrawRange.aStart.SetCol(0);
++                        aDrawRange.aStart.SetRow(0);
++                        aDrawRange.aEnd.SetCol(MAXCOL);
++                        aDrawRange.aEnd.SetRow(MAXROW);
++                        nPaint |= PAINT_LEFT;
++                }
++                pDocShell->UpdatePaintExt( nExtFlags, aDrawRange );
++        }
++
++    if ( !bUndo )                               //      draw redo after updating row heights
++                RedoSdrUndoAction( pDrawUndo );                 //!     include in ScBlockUndo?
++
++        pDocShell->PostPaint( aDrawRange, nPaint, nExtFlags );
++
++        pDocShell->PostDataChanged();
++        if (pViewShell)
++                pViewShell->CellContentChanged();
++}
+diff -uNr sc/source/ui/view/cellsh2.cxx sc/source/ui/view/cellsh2.cxx
+--- sc/source/ui/view/cellsh2.cxx	2007-09-18 13:29:34.000000000 +0800
++++ sc/source/ui/view/cellsh2.cxx	2007-09-18 13:31:11.000000000 +0800
+@@ -228,6 +228,20 @@
+ 			}
+ 			break;
+ 
++		case SID_DATA_FORM:
++			{
++				ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
++	            DBG_ASSERT(pFact, "ScAbstractFactory create fail!");//CHINA001
++
++	            AbstractScDataFormDlg* pDlg = pFact->CreateScDataFormDlg( pTabViewShell->GetDialogParent(),RID_SCDLG_DATAFORM, pTabViewShell);
++	            DBG_ASSERT(pDlg, "Dialog create fail!");//CHINA001
++
++	            pDlg->Execute();
++	            
++				rReq.Done();
++			}
++			break;
++			
+ 		case SID_SUBTOTALS:
+ 			{
+ 				const SfxItemSet* pArgs = rReq.GetArgs();
+@@ -561,6 +575,15 @@
+ 			rReq.Done();
+ 			break;
+ 
++		// Amelia Wang
++		case SID_DATAFORM_NEW:
++		{
++			ScViewData * pViewData = pTabViewShell->GetViewData();
++			ScDocShell * pDocSh = pViewData->GetDocShell();
++			//pTabViewShell->DataFormPutData();
++		}
++		break;
++
+ 		case SID_PIVOT_TABLE:
+ 			{
+ 				const SfxPoolItem* pItem;
+diff -uNr sc/source/ui/view/viewfun3.cxx sc/source/ui/view/viewfun3.cxx
+--- sc/source/ui/view/viewfun3.cxx	2007-09-18 13:29:34.000000000 +0800
++++ sc/source/ui/view/viewfun3.cxx	2007-09-18 13:31:11.000000000 +0800
+@@ -214,6 +214,7 @@
+ #include "editable.hxx"
+ #include "transobj.hxx"
+ #include "drwtrans.hxx"
++#include "undodat.hxx"   // Amelia Wang
+ 
+ using namespace com::sun::star;
+ 
+@@ -1343,6 +1344,85 @@
+ 	return TRUE;
+ }
+ 
++void ScViewFunc::DataFormPutData( SCROW nCurrentRow ,
++                                  SCROW nStartRow , SCCOL nStartCol ,
++                                  SCROW nEndRow , SCCOL nEndCol ,
++                                  Edit** pEdits ,
++                                  sal_uInt16 aColLength )
++{
++    ScDocument* pDoc = GetViewData()->GetDocument();
++    ScDocShell* pDocSh = GetViewData()->GetDocShell();
++    ScMarkData& rMark = GetViewData()->GetMarkData();
++    ScDocShellModificator aModificator( *pDocSh );
++    SfxUndoManager* pUndoMgr = pDocSh->GetUndoManager();
++    if ( pDoc )
++    {
++        const BOOL bRecord( pDoc->IsUndoEnabled());
++        ScDocument* pUndoDoc = NULL;
++        ScDocument* pRedoDoc = NULL;
++        ScDocument* pRefUndoDoc = NULL;
++        ScRefUndoData* pUndoData = NULL;
++        SCTAB nTab = GetViewData()->GetTabNo();
++        SCTAB nStartTab = nTab;
++        SCTAB nEndTab = nTab;
++        
++        {
++                ScChangeTrack* pChangeTrack = pDoc->GetChangeTrack();
++                if ( pChangeTrack )
++                        pChangeTrack->ResetLastCut();   // kein CutMode mehr
++        }
++        ScRange aUserRange( nStartCol, nCurrentRow, nStartTab, nEndCol, nCurrentRow, nEndTab );
++        BOOL bColInfo = ( nStartRow==0 && nEndRow==MAXROW );
++        BOOL bRowInfo = ( nStartCol==0 && nEndCol==MAXCOL );
++        SCCOL nUndoEndCol = nStartCol+aColLength-1;
++        SCROW nUndoEndRow = nCurrentRow;
++        USHORT nUndoFlags = IDF_NONE;
+ 
++        if ( bRecord )
++        {
++            pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
++            pUndoDoc->InitUndoSelected( pDoc , rMark , bColInfo , bRowInfo );
++            pDoc->CopyToDocument( aUserRange , 1 , FALSE , pUndoDoc );
++        }
++        USHORT nExtFlags = 0;
++        pDocSh->UpdatePaintExt( nExtFlags, nStartCol, nStartRow, nStartTab , nEndCol, nEndRow, nEndTab ); // content before the change
++        //rMark.SetMarkArea( aUserRange );
++        pDoc->BeginDrawUndo();
++        
++        for(sal_uInt16 i = 0; i < aColLength; i++)
++        {
++            if (pEdits[i])
++            {
++                String  aFieldName=pEdits[i]->GetText();
++                pDoc->SetString( nStartCol + i, nCurrentRow, nTab, aFieldName );
++            }
++        }
++        //pDoc->ExtendMergeSel( nStartCol, nStartRow, nEndCol, nEndRow, rMark, TRUE );    // Refresh
++        pDocSh->UpdatePaintExt( nExtFlags, nStartCol, nCurrentRow, nStartTab, nEndCol, nCurrentRow, nEndTab );  // content after the change
++        SfxUndoAction* pUndo = new ScUndoDataForm( pDocSh,
++                                                                nStartCol, nCurrentRow, nStartTab,
++                                                                nUndoEndCol, nUndoEndRow, nEndTab, rMark,
++                                                                pUndoDoc, pRedoDoc, nUndoFlags,
++                                                                pUndoData, NULL, NULL, NULL,
++                                                                FALSE );           // FALSE = Redo data not yet copied
++        pUndoMgr->AddUndoAction( new ScUndoWrapper( pUndo ), TRUE );
++        
++        USHORT nPaint = PAINT_GRID;
++        if (bColInfo)
++        {
++                nPaint |= PAINT_TOP;
++                nUndoEndCol = MAXCOL;                           // nur zum Zeichnen !
++        }
++        if (bRowInfo)
++        {
++                nPaint |= PAINT_LEFT;
++                nUndoEndRow = MAXROW;                           // nur zum Zeichnen !
++        }
++
++        pDocSh->PostPaint( nStartCol, nCurrentRow, nStartTab,
++                                                nUndoEndCol, nUndoEndRow, nEndTab, nPaint, nExtFlags );
++        pDocSh->UpdateOle(GetViewData());
++    }
++}
+ 
+ 
+diff -uNr sc/uiconfig/scalc/menubar/menubar.xml sc/uiconfig/scalc/menubar/menubar.xml
+--- sc/uiconfig/scalc/menubar/menubar.xml	2007-09-18 13:29:34.000000000 +0800
++++ sc/uiconfig/scalc/menubar/menubar.xml	2007-09-18 13:31:08.000000000 +0800
+@@ -397,6 +397,7 @@
+ 					<menu:menuitem menu:id=".uno:DataFilterHideAutoFilter"/>
+ 				</menu:menupopup>
+ 			</menu:menu>
++			<menu:menuitem menu:id=".uno:DataForm"/>
+ 			<menu:menuitem menu:id=".uno:DataSubTotals"/>
+ 			<menu:menuitem menu:id=".uno:Validation"/>
+ 			<menu:menuseparator/>
+diff -uNr sc/util/makefile.mk sc/util/makefile.mk
+--- sc/util/makefile.mk	2007-09-18 13:29:34.000000000 +0800
++++ sc/util/makefile.mk	2007-09-18 13:31:08.000000000 +0800
+@@ -247,6 +247,7 @@
+ 		$(SLO)$/filldlg.obj			\
+ 		$(SLO)$/delcodlg.obj		\
+ 		$(SLO)$/delcldlg.obj		\
++		$(SLO)$/datafdlg.obj		\
+ 		$(SLO)$/dapitype.obj	\
+ 		$(SLO)$/dapidata.obj	\
+ 		$(SLO)$/crdlg.obj			\
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sw-team-pane.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sw-team-pane.diff
@@ -0,0 +1,1815 @@
+diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc
+index dfc1f33..30888a8 100644
+--- sfx2/inc/sfx2/sfxsids.hrc
++++ sfx2/inc/sfx2/sfxsids.hrc
+@@ -1147,6 +1147,8 @@
+ #define SID_COMP_BIBLIOGRAPHY               (SID_SVX_START + 880)
+ #define SID_ADDRESS_DATA_SOURCE             (SID_SVX_START + 934)
+ 
++#define SID_TEAM                       (SID_SVX_START + 1888)
++
+ #define FID_SVX_START                       (SID_LIB_START + 500)
+ #define FID_SEARCH_NOW                      (FID_SVX_START + 2)
+ 
+diff --git a/sfx2/inc/sfx2/team.hxx b/sfx2/inc/sfx2/team.hxx
+new file mode 100644
+index 0000000..01bff2b
+--- /dev/null
++++ sfx2/inc/sfx2/team.hxx
+@@ -0,0 +1,40 @@
++/*
++ * written by Florian Reuter, (c) Novell Inc 2008
++ */
++
++#ifndef _SFXTEAM_HXX
++#define _SFXTEAM_HXX
++
++
++#include <sfx2/childwin.hxx>
++#include <sfx2/dockwin.hxx>
++
++class SfxTeamWrapper : public SfxChildWindow
++{
++
++public:
++    SfxTeamWrapper( Window* pParent ,
++		    USHORT nId ,
++		    SfxBindings* pBindings ,
++		    SfxChildWinInfo* pInfo );
++    
++    SFX_DECL_CHILDWINDOW(SfxTeamWrapper);
++};
++
++class SfxTeam : public SfxDockingWindow
++{
++	SfxChildWindow*		pWrapper;
++
++public:
++    SfxTeam( SfxBindings* pBindings ,
++	     SfxChildWindow* pChildWin ,
++	     Window* pParent ,
++	     WinBits nBits );
++    
++    virtual void 		Resize();
++    virtual void        Resizing( Size& rSize );
++    virtual BOOL        Close();
++};
++
++#endif
++
+diff --git a/sfx2/sdi/frmslots.sdi b/sfx2/sdi/frmslots.sdi
+index 7fc8979..511833d 100644
+--- sfx2/sdi/frmslots.sdi
++++ sfx2/sdi/frmslots.sdi
+@@ -31,6 +31,11 @@ interface Window
+ 		ExecMethod = ChildWindowExecute ;
+ 		StateMethod = ChildWindowState ;
+ 	]
++	SID_TEAM // status(final|play)
++	[
++		ExecMethod = ChildWindowExecute ;
++		StateMethod = ChildWindowState ;
++	]
+ 	SID_SHOW_BROWSER // ole(no) api(final/play/rec)
+ 	[
+ 		ExecMethod = ChildWindowExecute ;
+diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
+index 77facb1..21b51d0 100644
+--- sfx2/sdi/sfx.sdi
++++ sfx2/sdi/sfx.sdi
+@@ -4406,6 +4406,32 @@ SfxBoolItem Navigator SID_NAVIGATOR
+ 	GroupId = GID_NAVIGATOR;
+ ]
+ //--------------------------------------------------------------------------
++SfxBoolItem Team SID_TEAM
++
++[
++	/* flags: */
++	AutoUpdate = TRUE,
++	Cachable = Cachable,
++	FastCall = FALSE,
++	HasCoreId = FALSE,
++	HasDialog = FALSE,
++	ReadOnlyDoc = TRUE,
++	Toggle = FALSE,
++	Container = FALSE,
++	RecordAbsolute = FALSE,
++	RecordPerSet;
++	Synchron;
++
++	Readonly = FALSE,
++
++	/* config: */
++	AccelConfig = TRUE,
++	MenuConfig = TRUE,
++	StatusBarConfig = FALSE,
++	ToolBoxConfig = TRUE,
++	GroupId = GID_NAVIGATOR;
++]
++//--------------------------------------------------------------------------
+ SfxVoidItem RestoreEditingView SID_RESTORE_EDITING_VIEW
+ 
+ [
+diff --git a/sfx2/source/appl/appreg.cxx b/sfx2/source/appl/appreg.cxx
+index 4bf7007..fcb7528 100644
+--- sfx2/source/appl/appreg.cxx
++++ sfx2/source/appl/appreg.cxx
+@@ -58,6 +58,7 @@
+ #include <sfx2/objsh.hxx>
+ #include <sfx2/viewsh.hxx>
+ #include <sfx2/objface.hxx>
++#include <sfx2/team.hxx>
+ 
+ //===================================================================
+ 
+@@ -76,7 +77,7 @@ void SfxApplication::Registrations_Impl()
+ 	SfxNavigatorWrapper::RegisterChildWindow( FALSE, NULL, SFX_CHILDWIN_NEVERHIDE );
+ 	SfxPartChildWnd_Impl::RegisterChildWindow();
+ 	SfxTemplateDialogWrapper::RegisterChildWindow();
+-
++	SfxTeamWrapper::RegisterChildWindow( FALSE, NULL, SFX_CHILDWIN_NEVERHIDE );
+ 	// Controller
+ 	SfxToolBoxControl::RegisterControl(SID_REPEAT);
+ 	SfxURLToolBoxControl_Impl::RegisterControl(SID_OPENURL);
+diff --git a/sfx2/source/dialog/makefile.mk b/sfx2/source/dialog/makefile.mk
+index 6884ec0..0b81c0d 100644
+--- sfx2/source/dialog/makefile.mk
++++ sfx2/source/dialog/makefile.mk
+@@ -69,6 +69,7 @@ SLOFILES =\
+ 		$(SLO)$/mailwindow.obj		\
+ 		$(SLO)$/mgetempl.obj		\
+ 		$(SLO)$/navigat.obj			\
++		$(SLO)$/team.obj			\
+ 		$(SLO)$/newstyle.obj		\
+ 		$(SLO)$/passwd.obj			\
+ 		$(SLO)$/printopt.obj		\
+diff --git a/sfx2/source/dialog/team.cxx b/sfx2/source/dialog/team.cxx
+new file mode 100644
+index 0000000..a27df16
+--- /dev/null
++++ sfx2/source/dialog/team.cxx
+@@ -0,0 +1,79 @@
++/*
++ * written by Florian Reuter, (c) Novell Inc 2008
++ */
++
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_sfx2.hxx"
++
++#ifndef GCC
++#endif
++
++#include <sfx2/team.hxx>
++#include <sfx2/sfx.hrc>
++#include <sfx2/app.hxx>
++#include "sfxresid.hxx"
++#include "helpid.hrc"
++
++SFX_IMPL_DOCKINGWINDOW( SfxTeamWrapper , SID_TEAM );
++
++SfxTeamWrapper::SfxTeamWrapper( Window* pParentWnd ,
++				     USHORT nId ,
++				     SfxBindings* pBindings ,
++				     SfxChildWinInfo* pInfo )
++    : SfxChildWindow( pParentWnd , nId )
++{
++    printf("SfxTeamWrapper::SfxTeamWrapper\n");
++    pWindow = new SfxTeam( pBindings, this, pParentWnd,
++			   WB_STDDOCKWIN | WB_CLIPCHILDREN | WB_SIZEABLE | WB_3DLOOK | WB_ROLLABLE);
++//    eChildAlignment = SFX_ALIGN_NOALIGNMENT;
++    eChildAlignment = SFX_ALIGN_RIGHT;
++    printf("**ALIGN RIGHT**\n");
++    
++//    pWindow->SetHelpId ( HID_NAVIGATOR_WINDOW );
++    pWindow->SetOutputSizePixel( Size( 270, 240 ) );
++    
++    ( ( SfxDockingWindow* ) pWindow )->Initialize( pInfo );
++    SetHideNotDelete( TRUE );
++}
++
++
++SfxTeam::SfxTeam( SfxBindings* pBind ,
++		  SfxChildWindow* pChildWin ,
++		  Window* pParent ,
++		  WinBits nBits )
++    : SfxDockingWindow( pBind ,
++			pChildWin ,
++			pParent ,
++			nBits )
++    , pWrapper( pChildWin )
++{
++//    SetText( String( SfxResId( SID_NAVIGATOR ) ) );
++    SetText( String::CreateFromAscii("Team Window"));
++}
++
++void SfxTeam::Resize()
++{
++    SfxDockingWindow::Resize();
++    if ( pWrapper->GetContextWindow() )
++        pWrapper->GetContextWindow()->SetSizePixel( GetOutputSizePixel() );
++}
++
++void SfxTeam::Resizing( Size &rSize )
++{
++    SfxDockingWindow::Resizing( rSize );
++    
++    SfxChildWindowContext *pCon = GetChildWindow_Impl()->GetContext_Impl();
++    DBG_ASSERT( pCon, "Kein Context!" );
++    if ( pCon )
++	pCon->Resizing( rSize );
++}
++
++BOOL SfxTeam::Close()
++{
++    SfxChildWindowContext *pCon = GetChildWindow_Impl()->GetContext_Impl();
++    DBG_ASSERT( pCon, "Kein Context!" );
++    if ( !pCon || pCon->Close() )
++	return SfxDockingWindow::Close();
++    else
++	return FALSE;
++}
+diff --git a/sw/source/ui/app/swmodule.cxx b/sw/source/ui/app/swmodule.cxx
+index af24186..bfeddb5 100644
+--- sw/source/ui/app/swmodule.cxx
++++ sw/source/ui/app/swmodule.cxx
+@@ -237,6 +237,7 @@
+ #ifndef _NAVIPI_HXX //autogen
+ #include <navipi.hxx>
+ #endif
++#include <teampi.hxx>
+ #ifndef _CHARTINS_HXX //autogen
+ #include <chartins.hxx>
+ #endif
+@@ -335,6 +336,7 @@ sal_Bool 	bNoInterrupt 	= sal_False;
+ 
+ #include <unomid.h>
+ 
++
+ using namespace com::sun::star;
+ 
+ 
+@@ -609,6 +611,7 @@ void SwDLL::RegisterControls()
+     SwFldDataOnlyDlgWrapper::RegisterChildWindow( sal_False, pMod );
+ 	SvxContourDlgChildWindow::RegisterChildWindow( sal_False, pMod );
+ 	SwNavigationChild::RegisterChildWindowContext( pMod );
++	SwTeamChild::RegisterChildWindowContext( pMod );
+ 	SwInputChild::RegisterChildWindow( sal_False, pMod, SFX_CHILDWIN_FORCEDOCK );
+ 	SwRedlineAcceptChild::RegisterChildWindow( sal_False, pMod );
+ 	SwSyncChildWin::RegisterChildWindow( sal_True, pMod );
+diff --git a/sw/source/ui/inc/teampi.hxx b/sw/source/ui/inc/teampi.hxx
+new file mode 100644
+index 0000000..78fcc1a
+--- /dev/null
++++ sw/source/ui/inc/teampi.hxx
+@@ -0,0 +1,98 @@
++/*
++ * written by Florian Reuter, (c) Novell Inc 2008
++ */
++#ifndef _TEAMPI_HXX
++#define _TEAMPI_HXX
++
++#ifndef _LSTBOX_HXX //autogen
++#include <vcl/lstbox.hxx>
++#endif
++#ifndef _SFXLSTNER_HXX //autogen
++#include <svtools/lstner.hxx>
++#endif
++#ifndef _TRANSFER_HXX
++#include <svtools/transfer.hxx>
++#endif
++#ifndef _SFX_CHILDWIN_HXX //autogen
++#include <sfx2/childwin.hxx>
++#endif
++#ifndef _SFXCTRLITEM_HXX //autogen
++#include <sfx2/ctrlitem.hxx>
++#endif
++#ifndef _SFXTBXCTRL_HXX
++#include <sfx2/tbxctrl.hxx>
++#endif
++
++#ifndef _CONTTREE_HXX
++#include <conttree.hxx>
++#endif
++#ifndef _POPBOX_HXX
++#include <popbox.hxx>
++#endif
++
++#include <vcl/button.hxx>
++#include <vcl/edit.hxx>
++#include <vcl/javachild.hxx>
++#include <vcl/combobox.hxx>
++#include <vcl/syschildctrl.hxx>
++#include <osl/thread.hxx>
++#include <osl/process.h>
++
++class SfxMedium;
++
++class SwMonoThread : public osl::Thread
++{
++private:
++    sal_uInt32 socketId;
++public:
++    SwMonoThread(sal_uInt32 socketId);
++    virtual void SAL_CALL run();
++};
++
++class SwTeamPI : public Window,
++		 public SfxControllerItem, public SfxListener
++{
++//    OKButton        aOKButton;
++//    ListBox aEdit;
++    SystemChildControl aJavaWindow;
++    SwMonoThread *aMonoThread;
++    oslProcess pProcess;
++    SfxBindings 		&rBindings;    
++    SwView				*pCreateView;
++    Timer 				aTimer;
++//    SystemChildControl aJavaWindow2;
++protected:
++//    DECL_LINK( MyClickHandler, OKButton* pBtn );
++//    DECL_LINK( MyListBoxHandler, ListBox * );
++    DECL_LINK( TimerHdl, Timer* );
++    SwView*         GetCreateView() const;
++public:
++    static void invokeMono(char *file, sal_uInt32 socketId);
++    void invokeApp(::rtl::OUString appURI, sal_uInt32 socketId, SfxMedium *pMedium);
++    SwTeamPI(SfxBindings*, SfxChildWindowContext*, Window*);
++    ~SwTeamPI();
++
++    virtual void        Resize();
++/*
++    virtual void        Resizing( Size& rSize );
++    virtual BOOL        Close();
++*/    
++public:
++    virtual void        Activate();
++    virtual void        Deactivate();
++};
++
++class SwTeamChild : public SfxChildWindowContext
++{
++public:
++    SwTeamChild( Window* ,
++		 USHORT nId,
++		 SfxBindings*,
++		 SfxChildWinInfo*  );
++    
++    SFX_DECL_CHILDWINDOW_CONTEXT( SwTeamChild )
++};
++
++
++
++#endif
+diff --git a/sw/source/ui/uiview/view.cxx b/sw/source/ui/uiview/view.cxx
+index 9a01ee3..f4fbbc9 100644
+--- sw/source/ui/uiview/view.cxx
++++ sw/source/ui/uiview/view.cxx
+@@ -179,6 +179,7 @@
+ #ifndef _NAVIPI_HXX
+ #include <navipi.hxx>
+ #endif
++#include <teampi.hxx>
+ #ifndef _GLOSHDL_HXX
+ #include <gloshdl.hxx>
+ #endif
+@@ -1169,7 +1170,8 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
+ 		SfxBoolItem aNavi(SID_NAVIGATOR, sal_True);
+ 		GetDispatcher().Execute(SID_NAVIGATOR, SFX_CALLMODE_ASYNCHRON, &aNavi, 0L);
+ 	}
+-
++	SfxBoolItem aNavi(SID_TEAM, sal_True);
++	GetDispatcher().Execute(SID_TEAM, SFX_CALLMODE_ASYNCHRON, &aNavi, 0L);
+ 
+     /*uno::Reference< awt::XWindow >  aTmpRef;
+ 	_pFrame->GetFrame()->GetFrameInterface()->setComponent( aTmpRef,
+diff --git a/sw/source/ui/uiview/view0.cxx b/sw/source/ui/uiview/view0.cxx
+index 13160f7..e3063df 100644
+--- sw/source/ui/uiview/view0.cxx
++++ sw/source/ui/uiview/view0.cxx
+@@ -161,6 +161,7 @@ SFX_IMPL_VIEWFACTORY(SwView, SW_RES(STR_NONAME))
+ SFX_IMPL_INTERFACE( SwView, SfxViewShell, SW_RES(RID_TOOLS_TOOLBOX) )
+ {
+ 	SFX_CHILDWINDOW_CONTEXT_REGISTRATION(SID_NAVIGATOR);
++	SFX_CHILDWINDOW_CONTEXT_REGISTRATION(SID_TEAM);
+ 	SFX_CHILDWINDOW_REGISTRATION(SfxTemplateDialogWrapper::GetChildWindowId());
+ 	SFX_CHILDWINDOW_REGISTRATION(SvxSearchDialogWrapper::GetChildWindowId());
+     SFX_CHILDWINDOW_REGISTRATION(SwSpellDialogChildWindow::GetChildWindowId());
+diff --git a/sw/source/ui/uiview/view2.cxx b/sw/source/ui/uiview/view2.cxx
+index af8d645..320b9c8 100644
+--- sw/source/ui/uiview/view2.cxx
++++ sw/source/ui/uiview/view2.cxx
+@@ -1567,8 +1567,13 @@ void SwView::ExecuteStatusLine(SfxRequest &rReq)
+ 	{
+ 		case FN_STAT_PAGE:
+ 		{
++/*
+ 			GetViewFrame()->GetDispatcher()->Execute( SID_NAVIGATOR,
+ 									  SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD );
++*/
++		    printf("Execute TEAM...\n");
++			GetViewFrame()->GetDispatcher()->Execute( SID_TEAM,
++								  SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD );
+ 		}
+ 		break;
+ 
+diff --git a/sw/source/ui/utlui/makefile.mk b/sw/source/ui/utlui/makefile.mk
+index 8faae2d..305ee9c 100644
+--- sw/source/ui/utlui/makefile.mk
++++ sw/source/ui/utlui/makefile.mk
+@@ -46,6 +46,8 @@ TARGET=utlui
+ 
+ # --- Files --------------------------------------------------------
+ 
++#xxINPROCESSMONO PKGCONFIG_MODULES=mono
++#xxINPROCESSMONO .INCLUDE: pkg_config.mk
+ 
+ SRS1NAME=$(TARGET)
+ SRC1FILES =  \
+@@ -69,6 +71,7 @@ SLOFILES =  $(EXCEPTIONSFILES) \
+ 		$(SLO)$/glbltree.obj \
+ 		$(SLO)$/initui.obj \
+ 		$(SLO)$/navipi.obj \
++		$(SLO)$/teampi.obj \
+ 		$(SLO)$/navicfg.obj \
+ 		$(SLO)$/numfmtlb.obj \
+ 		$(SLO)$/prcntfld.obj \
+diff --git a/sw/source/ui/utlui/teampi.cxx b/sw/source/ui/utlui/teampi.cxx
+new file mode 100644
+index 0000000..8b0845c
+--- /dev/null
++++ sw/source/ui/utlui/teampi.cxx
+@@ -0,0 +1,449 @@
++/*
++ * written by Florian Reuter, (c) Novell Inc 2008
++ */
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_sw.hxx"
++
++#ifndef _LIST_HXX
++#include <tools/list.hxx>
++#endif
++#ifndef _URLBMK_HXX
++#include <svtools/urlbmk.hxx>
++#endif
++#ifndef _SFXSTRITEM_HXX
++#include <svtools/stritem.hxx>
++#endif
++#ifndef _FILTER_HXX
++#include <svtools/filter.hxx>
++#endif
++#ifndef SVTOOLS_URIHELPER_HXX
++#include <svtools/urihelper.hxx>
++#endif
++#ifndef _SOT_FORMATS_HXX
++#include <sot/formats.hxx>
++#endif
++#ifndef _FILELIST_HXX
++#include <sot/filelist.hxx>
++#endif
++#ifndef _SFXEVENT_HXX
++#include <sfx2/event.hxx>
++#endif
++#ifndef _SFXIMGMGR_HXX
++#include <sfx2/imgmgr.hxx>
++#endif
++#ifndef _SFXDISPATCH_HXX
++#include <sfx2/dispatch.hxx>
++#endif
++#ifndef _SFXDOCKWIN_HXX
++#include <sfx2/dockwin.hxx>
++#endif
++#include <vcl/toolbox.hxx>
++#ifndef _SWTYPES_HXX
++#include <swtypes.hxx>	// fuer Pathfinder
++#endif
++#ifndef _ERRHDL_HXX
++#include <errhdl.hxx>
++#endif
++#ifndef _SWMODULE_HXX
++#include <swmodule.hxx>
++#endif
++#ifndef _VIEW_HXX
++#include <view.hxx>
++#endif
++#ifndef _NAVICFG_HXX
++#include <navicfg.hxx>
++#endif
++#ifndef _WRTSH_HXX
++#include <wrtsh.hxx>
++#endif
++#ifndef _DOCSH_HXX
++#include <docsh.hxx>
++#endif
++#ifndef _ACTCTRL_HXX
++#include <actctrl.hxx>
++#endif
++#ifndef _BOOKMRK_HXX
++#include <bookmrk.hxx>
++#endif
++#include <teampi.hxx>
++#ifndef _CONTENT_HXX
++#include <content.hxx>
++#endif
++#ifndef _WORKCTRL_HXX
++#include <workctrl.hxx>
++#endif
++#ifndef _SECTION_HXX
++#include <section.hxx>
++#endif
++#ifndef _EDTWIN_HXX
++#include <edtwin.hxx>
++#endif
++#include <sfx2/app.hxx>
++#ifndef _CMDID_H
++#include <cmdid.h>
++#endif
++#ifndef _HELPID_H
++#include <helpid.h>
++#endif
++#ifndef _RIBBAR_HRC
++#include <ribbar.hrc>
++#endif
++#ifndef _NAVIPI_HRC
++#include <navipi.hrc>
++#endif
++#ifndef _UTLUI_HRC
++#include <utlui.hrc>
++#endif
++
++#include <unomid.h>
++
++//#include <glib/glib.h>
++#ifdef xxINPROCESSMONO
++#include <mono/jit/jit.h>
++#include <mono/metadata/assembly.h>
++#endif
++#include <osl/thread.hxx>
++#include <sfx2/docfile.hxx>
++#include <com/sun/star/util/XMacroExpander.hpp>
++#include <comphelper/processfactory.hxx>
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::frame;
++using namespace ::com::sun::star::container;
++using namespace ::com::sun::star::lang;
++using namespace ::com::sun::star::uno;
++using namespace ::com::sun::star::beans;
++using namespace ::com::sun::star::ucb;
++using namespace ::com::sun::star::task;
++using namespace ::com::sun::star::util;
++/*
++IMPL_LINK( SwTeamPI, MyClickHandler, OKButton*, EMPTYARG )
++{
++    printf("### CLICK\n");
++aJavaWindow.LoadUrl("http://www.google.com");    
++  return 0;
++}
++
++IMPL_LINK( SwTeamPI, MyListBoxHandler, ListBox *, pBox )
++{
++    printf("### DROP DOWN SELECT...\n");
++    aJavaWindow.LoadUrl("http://www.google.com");
++    return 0;
++}
++*/
++IMPL_LINK( SwTeamPI, TimerHdl, Timer*, EMPTYARG )
++{
++    SwView* pView=GetCreateView();
++    printf("**TIMER pView=%p\n", pView);
++    if (pView) {
++	::rtl::OUString aName=pView->GetDocShell()->GetName();
++	rtl::OString aName8 = ::rtl::OUStringToOString (aName, RTL_TEXTENCODING_UTF8);
++	printf("**TIMER aName8=\"%s\"\n", aName8.getStr());
++	SfxMedium* pMedium=pView->GetDocShell()->GetMedium();
++	printf("**TIMER pMedium=%p\n", pMedium);
++	aTimer.Stop();
++
++	Reference< XMultiServiceFactory> xMS(::comphelper::getProcessServiceFactory(), UNO_QUERY);
++	Reference< XPropertySet >  xProps(xMS, UNO_QUERY);
++	Reference< XComponentContext > xContext(xProps->getPropertyValue(rtl::OUString::createFromAscii("DefaultContext")), UNO_QUERY);
++	Reference< XMacroExpander > xExpander(xContext->getValueByName(::rtl::OUString::createFromAscii("/singletons/com.sun.star.util.theMacroExpander")), UNO_QUERY);
++
++	::rtl::OUString sProgUri=xExpander->expandMacros(rtl::OUString::createFromAscii("$ORIGIN/TeamApp"));
++	rtl::OString sProgUri8 = ::rtl::OUStringToOString (sProgUri, RTL_TEXTENCODING_UTF8);
++	printf("**TIMER sProgUri=\"%s\"\n", sProgUri8.getStr());
++	
++
++	invokeApp(sProgUri, aJavaWindow.GetSocketId(), pMedium);
++    } else {
++	aTimer.Stop();
++	aTimer.Start();
++    }
++    return 0;
++}
++
++SwTeamPI::SwTeamPI( SfxBindings* _pBindings,
++		    SfxChildWindowContext* pCw,
++		    Window* pParent) :
++    
++    Window( pParent /*,  SW_RES(DLG_NAVIGATION_PI)*/ ),
++    SfxControllerItem( SID_DOCFULLNAME, *_pBindings ),
++//    aOKButton       ( this ),
++//    aEdit       ( this, WB_DROPDOWN ),
++    aJavaWindow ( this, SystemChildControl::SOCKET ),
++    aMonoThread(NULL),
++    pProcess(NULL),
++    rBindings(*_pBindings),
++    pCreateView(NULL)
++//    aJavaWindow2 ( this )    
++{
++    printf("SwTeamPI::SwTeamPI(%p)\n", &rBindings);
++    StartListening(*SFX_APP());
++/*
++    Size aOKSiz = aOKButton.GetSizePixel();
++    Point aOKPnt = aOKButton.GetPosPixel();
++    aOKPnt.X() = 0;
++    aOKPnt.Y() = 0;
++    aOKButton.SetPosPixel( aOKPnt );
++    aOKSiz.Width()=100;
++    aOKSiz.Height()=20;
++    aOKButton.SetSizePixel( aOKSiz );
++    aOKButton.SetClickHdl( LINK( this, SwTeamPI, MyClickHandler ) );
++    aOKButton.Show();
++*/
++/*
++    Size aEditSiz = aEdit.GetSizePixel();
++    Point aEditPnt = aEdit.GetPosPixel();
++    aEditPnt.X() = 0;
++    aEditPnt.Y() = 0;
++    aEdit.SetPosPixel( aEditPnt );
++    aEditSiz.Width()=300;
++    aEditSiz.Height()=25;
++    aEdit.SetSizePixel( aEditSiz );
++    aEdit.InsertEntry(rtl::OUString::createFromAscii("Buddies"));
++    aEdit.SetSelectHdl( LINK( this, SwTeamPI, MyListBoxHandler ) );
++    aEdit.Show();
++*/
++    Size aJavaWindowSiz = aJavaWindow.GetSizePixel();
++    Point aJavaWindowPnt = aJavaWindow.GetPosPixel();
++    aJavaWindowPnt.X() = 0;
++    aJavaWindowPnt.Y() = 0;
++    aJavaWindow.SetPosPixel( aJavaWindowPnt );
++    aJavaWindowSiz.Width()=300;
++    aJavaWindowSiz.Height()=300;
++    aJavaWindow.SetSizePixel( aJavaWindowSiz );
++    aJavaWindow.Show();
++/*
++    aMonoThread=new SwMonoThread(aJavaWindow.GetSocketId());
++    if (aMonoThread!=NULL) {
++	aMonoThread->create();  
++    }
++*/
++    printf("start timer...\n");
++    aTimer.SetTimeoutHdl(LINK(this, SwTeamPI, TimerHdl));
++    aTimer.SetTimeout(1000);
++    aTimer.Start();
++
++/*
++    Size aJavaWindow2Siz = aJavaWindow2.GetSizePixel();
++    Point aJavaWindow2Pnt = aJavaWindow2.GetPosPixel();
++    aJavaWindow2Pnt.X() = 10;
++    aJavaWindow2Pnt.Y() = 130+200;
++    aJavaWindow2.SetPosPixel( aJavaWindow2Pnt );
++    aJavaWindow2Siz.Width()=200;
++    aJavaWindow2Siz.Height()=200;
++    aJavaWindow2.SetSizePixel( aJavaWindow2Siz );
++    aJavaWindow2.Show();
++*/
++
++/*
++    Size aJavaWindowSiz = aJavaWindow.GetSizePixel();
++    Point aJavaWindowPnt = aJavaWindow.GetPosPixel();
++    aJavaWindowPnt.X() = 0;
++    aJavaWindowPnt.Y() = 0;
++    aJavaWindow.SetPosPixel( aJavaWindowPnt );
++    aJavaWindowSiz.Width()=200;
++    aJavaWindowSiz.Height()=500;
++    aJavaWindow.SetSizePixel( aJavaWindowSiz );
++    aJavaWindow.Show();
++*/
++/*    
++    if (0) {
++    Reference< XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext() );
++
++    MyApplet *myApplet=new MyApplet();
++    INetURLObject aDocBase( ::rtl::OUString::createFromAscii("/tmp/HelloWorld") );
++    SvCommandList aCmdList;
++    aCmdList.Append( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "codebase" ) ), ::rtl::OUString::createFromAscii("file:///home/freuter/workspace/applet/" ));
++    aCmdList.Append( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "code" ) ), ::rtl::OUString::createFromAscii("JAppletSample.class" ));
++    myApplet->Init(xContext, &aJavaWindow, aDocBase, aCmdList);
++    }
++*/
++}
++
++SwView* SwTeamPI::GetCreateView() const
++{
++    if(!pCreateView)
++    {
++	printf("SwTeamPI::GetCreateView():\n");
++        SwView* pView = SwModule::GetFirstView();
++        while(pView)
++        {
++	    ::rtl::OUString aName=pView->GetName();
++	    rtl::OString aName8 = ::rtl::OUStringToOString (aName, RTL_TEXTENCODING_UTF8);
++	    printf("pView=%p %p %p \"%s\"\n", pView, &pView->GetViewFrame()->GetBindings(), &rBindings, aName8.getStr());	   
++            if(&pView->GetViewFrame()->GetBindings() == &rBindings)
++            {
++		const_cast<SwTeamPI*>(this)->pCreateView = pView;
++		const_cast<SwTeamPI*>(this)->StartListening(*pCreateView);
++                break;
++            }
++            pView = SwModule::GetNextView(pView);
++        }
++    }
++    return pCreateView;
++}
++
++
++void SwTeamPI::Resize()
++{
++    Window* pParent = GetParent();
++    FloatingWindow* pFloat =  ((DockingWindow*)pParent)->GetFloatingWindow();
++    Size aNewSize;
++
++    Size thisSiz=GetOutputSizePixel();
++    if( pFloat)
++    {
++	aNewSize = pFloat->GetOutputSizePixel();
++    }
++    else
++    {
++	aNewSize = pParent->GetOutputSizePixel();
++    }
++//XXX    printf("SwTeamPI::Resize(pFloat=%p; Width=%li; Height=%li)\n", pFloat, aNewSize.Width(), aNewSize.Height());
++/*
++    Size aEditSize=aEdit.GetSizePixel();
++    aEditSize.Width()=aNewSize.Width();
++    aEdit.SetSizePixel(aEditSize); 
++*/
++    Size aJavaWindowSize=aJavaWindow.GetSizePixel();
++    aJavaWindowSize.Width()=aNewSize.Width();
++//    aJavaWindowSize.Height()=aNewSize.Height()-aEditSize.Height();
++    aJavaWindowSize.Height()=aNewSize.Height();
++    aJavaWindow.SetSizePixel(aJavaWindowSize);
++}
++
++SwTeamPI::~SwTeamPI()
++{
++	EndListening(*SFX_APP());
++	if (aMonoThread!=NULL) {
++	    aMonoThread->terminate();
++	    delete aMonoThread;
++	    aMonoThread=NULL;
++	}
++	if (pProcess!=NULL) {
++	    osl_terminateProcess(pProcess);
++	    pProcess=NULL;
++	}
++}
++
++
++
++SFX_IMPL_CHILDWINDOW_CONTEXT( SwTeamChild, SID_TEAM, SwView )
++
++
++SwTeamChild::SwTeamChild( Window* pParent,
++			  USHORT nId,
++			  SfxBindings* _pBindings,
++			  SfxChildWinInfo* pInfo )
++    : SfxChildWindowContext( nId )
++{
++    printf("SwTeamChild::SwTeamChild\n");
++
++    SwTeamPI* pTeam  = new SwTeamPI( _pBindings, this, pParent );
++	SetWindow( pTeam );
++
++    _pBindings->Invalidate(SID_TEAM);
++	String sExtra = pInfo->aExtraString;
++/*
++	SwNavigationConfig* pNaviConfig = SW_MOD()->GetNavigationConfig();
++
++    USHORT nRootType = static_cast< USHORT >( pNaviConfig->GetRootType() );
++	if( nRootType < CONTENT_TYPE_MAX )
++	{
++		pNavi->aContentTree.SetRootType(nRootType);
++		pNavi->aContentToolBox.CheckItem(FN_SHOW_ROOT, TRUE);
++	}
++    pNavi->aContentTree.SetOutlineLevel( static_cast< BYTE >( pNaviConfig->GetOutlineLevel() ) );
++    pNavi->SetRegionDropMode( static_cast< USHORT >( pNaviConfig->GetRegionMode() ) );
++
++	if(GetFloatingWindow() && pNaviConfig->IsSmall())
++	{
++		pNavi->_ZoomIn();
++	}
++*/
++}
++
++SwMonoThread::SwMonoThread(sal_uInt32 socketId) : osl::Thread(),
++			       socketId(socketId)
++{
++    
++}
++
++void SAL_CALL SwMonoThread::run() {
++    printf("**START MonoThread::run\n");
++    SwTeamPI::invokeMono("/home/freuter/tmp/plug/SamplePlug.exe", socketId);
++//    SwTeamPI::invokeMono("/home/freuter/tmp/plug/SampleApp.exe", socketId);
++    printf("**END MonoThread::run\n");
++}
++
++void SwTeamPI::invokeMono(char *file, sal_uInt32 socketId)
++{
++#ifdef xxINPROCESSMONO
++    MonoDomain *domain;
++    MonoAssembly *assembly;
++    domain = mono_jit_init (file);
++    if (domain) {
++	assembly = mono_domain_assembly_open (domain, file);
++	if (assembly) {
++	    int argc=2;
++	    char _buf[100];
++	    sprintf(_buf, "%li", (long)socketId);
++	    char *argv[]= { file, _buf };
++	    printf("invoking: \"%s\"\n", file);
++	    mono_jit_exec (domain, assembly, argc, argv);
++	}   
++	mono_jit_cleanup (domain);  
++    }
++#endif
++}
++
++void SwTeamPI::invokeApp(::rtl::OUString appURI, sal_uInt32 socketId, SfxMedium *pMedium)
++{
++    rtl::OString aAppURI8 = ::rtl::OUStringToOString (appURI, RTL_TEXTENCODING_UTF8);
++    printf("invokeApp(\"%s\", %li)\n", aAppURI8.getStr(), (long)socketId);
++    int argc=3;
++    rtl_uString **args=new rtl_uString*[argc];
++    args[0]=appURI.pData; rtl_uString_acquire(args[0]);
++    char _buf[100]; sprintf(_buf, "%li", (long)socketId);
++    rtl::OUString ssocket=rtl::OUString::createFromAscii(_buf);
++    args[1]=ssocket.pData; rtl_uString_acquire(args[1]);
++    
++    ::rtl::OUString sOrigUrl=(pMedium!=NULL?pMedium->GetOrigURL():String());
++    args[2]=sOrigUrl.pData; rtl_uString_acquire(args[2]);
++        
++    oslProcessError error = osl_executeProcess( args[0],
++						args+1,
++						argc-1,
++						osl_Process_NORMAL,
++						0,
++						NULL,
++						NULL,
++						0,
++						&pProcess );
++
++
++    printf("error=%i\n", error);
++    if (error==osl_Process_E_None) {
++	printf("started...\n");
++    }
++    for(int i=0;i<argc;i++) {
++	rtl_uString_release(args[i]);
++    }
++    delete[] args;
++			      
++}
++
++
++void SwTeamPI::Activate()
++{
++    printf("SwTeamPI::Activate()\n");
++    Window::Activate();
++}
++
++void SwTeamPI::Deactivate()
++{
++    printf("SwTeamPI::Deactivate()\n");
++    Window::Deactivate();
++}
+diff --git a/vcl/inc/vcl/salinst.hxx b/vcl/inc/vcl/salinst.hxx
+index b392ffa..9ae1276 100644
+--- vcl/inc/vcl/salinst.hxx
++++ vcl/inc/vcl/salinst.hxx
+@@ -110,6 +110,13 @@ public:
+     // Object (System Child Window)
+     virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE ) = 0;
+     virtual void				DestroyObject( SalObject* pObject ) = 0;
++    
++    virtual SalObject*			CreateSocket( SalFrame* pParent, BOOL bShow = TRUE) = 0;
++    virtual void				DestroySocket( SalObject* pObject ) = 0;    
++
++    virtual SalObject*			CreateMozObject( SalFrame* pParent, BOOL bShow = TRUE) = 0;
++    virtual void				DestroyMozObject( SalObject* pObject ) = 0;    
++
+ 
+     // VirtualDevice
+     // nDX and nDY in Pixel
+diff --git a/vcl/inc/vcl/salobj.hxx b/vcl/inc/vcl/salobj.hxx
+index 72bf898..421c37c 100644
+--- vcl/inc/vcl/salobj.hxx
++++ vcl/inc/vcl/salobj.hxx
+@@ -84,6 +84,7 @@ public:
+ 	virtual void					Show( BOOL bVisible ) = 0;
+ 	virtual void					Enable( BOOL nEnable ) = 0;
+ 	virtual void					GrabFocus() = 0;
++        virtual void                                    RemoveFocus() = 0;
+ 
+ 	virtual void					SetBackground() = 0;
+ 	virtual void					SetBackground( SalColor nSalColor ) = 0;
+@@ -92,6 +93,9 @@ public:
+ 
+ 	virtual const SystemEnvData*	GetSystemData() const = 0;
+ 
++        virtual void LoadUrl(char *url) = 0;
++        virtual sal_uInt32 GetSocketId() = 0;
++
+ 	void					SetCallback( void* pInst, SALOBJECTPROC pProc )
+     { m_pInst = pInst; m_pCallback = pProc; }
+     long					CallCallback( USHORT nEvent, const void* pEvent )
+diff --git a/vcl/inc/vcl/syschildctrl.hxx b/vcl/inc/vcl/syschildctrl.hxx
+new file mode 100644
+index 0000000..d056ead
+--- /dev/null
++++ vcl/inc/vcl/syschildctrl.hxx
+@@ -0,0 +1,58 @@
++/*
++ * written by Florian Reuter, (c) Novell Inc 2008
++ */
++#ifndef _SV_SYSCHILDCTRL_HXX
++#define _SV_SYSCHILDCTRL_HXX
++
++#ifndef _SV_SV_H
++#include <vcl/sv.h>
++#endif
++#ifndef _VCL_DLLAPI_H
++#include <vcl/dllapi.h>
++#endif
++
++#ifndef _SV_WINDOW_HXX
++#include <vcl/window.hxx>
++#endif
++
++#include <vcl/ctrl.hxx>
++
++
++struct SystemEnvData;
++struct SystemWindowData;
++
++class VCL_DLLPUBLIC SystemChildControl : public Control
++{
++public:    
++    static const int DRAWING_AREA = 1;
++    static const int SOCKET = 2;
++    static const int BROWSER = 3;
++
++using Control::ImplInit;
++private:
++    // Copy assignment is forbidden and not implemented.
++	SAL_DLLPRIVATE SystemChildControl (const SystemChildControl &);
++	SAL_DLLPRIVATE SystemChildControl & operator= (const SystemChildControl &);
++    int _type;
++    SAL_DLLPRIVATE void ImplInitSysChildCtrl( Window* pParent, WinBits nStyle, SystemWindowData *pData, int type, BOOL bShow = TRUE );
++
++public:
++    SystemChildControl(Window* pParent, int type, WinBits nStyle = 0);
++    ~SystemChildControl();
++
++    virtual void    GetFocus();
++    virtual void    LoseFocus();
++    virtual long    Notify( NotifyEvent& rNEvt );
++
++    virtual void    MouseButtonDown( const MouseEvent& rMEvt );
++    virtual void    MouseButtonUp( const MouseEvent& rMEvt );
++    virtual void    KeyInput( const KeyEvent& rKEvt );
++
++static void send_focus_change_message(
++    SystemChildControl* pWindow,
++    int mode, int detail );    
++    void LoadUrl(char *url);
++    sal_uInt32 GetSocketId();
++};
++
++#endif
+diff --git a/vcl/inc/vcl/window.hxx b/vcl/inc/vcl/window.hxx
+index 7dc3138..2c65daf 100644
+--- vcl/inc/vcl/window.hxx
++++ vcl/inc/vcl/window.hxx
+@@ -392,6 +392,7 @@ class VCL_DLLPUBLIC Window : public OutputDevice
+     friend class PushButton;
+     friend class RadioButton;
+     friend class SystemChildWindow;
++    friend class SystemChildControl;
+     friend class ImplBorderWindow;
+ 
+     // TODO: improve missing functionality
+diff --git a/vcl/inc/vcl/wintypes.hxx b/vcl/inc/vcl/wintypes.hxx
+index 9d4d3eb..f1f8244 100644
+--- vcl/inc/vcl/wintypes.hxx
++++ vcl/inc/vcl/wintypes.hxx
+@@ -129,7 +129,8 @@ typedef USHORT WindowType;
+ #define WINDOW_INTROWINDOW		    (WINDOW_FIRST + 0x4f)
+ #define WINDOW_LISTBOXWINDOW        (WINDOW_FIRST + 0x50)
+ #define WINDOW_DOCKINGAREA          (WINDOW_FIRST + 0x51)
+-#define WINDOW_LAST 				(WINDOW_DOCKINGAREA)
++#define WINDOW_SYSTEMCHILDCTRL         (WINDOW_FIRST + 0x52)
++#define WINDOW_LAST 				(WINDOW_SYSTEMCHILDCTRL)
+ 
+ 
+ // ---------------
+diff --git a/vcl/prj/d.lst b/vcl/prj/d.lst
+index d6cb440..8f04d86 100644
+--- vcl/prj/d.lst
++++ vcl/prj/d.lst
+@@ -114,6 +114,7 @@ mkdir: %_DEST%\inc%_EXT%\vcl\plug\vcl
+ ..\inc\vcl\svapp.hxx %_DEST%\inc%_EXT%\vcl\svapp.hxx
+ ..\inc\vcl\symbol.hxx %_DEST%\inc%_EXT%\vcl\symbol.hxx
+ ..\inc\vcl\syschild.hxx %_DEST%\inc%_EXT%\vcl\syschild.hxx
++..\inc\vcl\syschildctrl.hxx %_DEST%\inc%_EXT%\vcl\syschildctrl.hxx
+ ..\inc\vcl\sysdata.hxx %_DEST%\inc%_EXT%\vcl\sysdata.hxx
+ ..\inc\vcl\syswin.hxx %_DEST%\inc%_EXT%\vcl\syswin.hxx
+ ..\inc\vcl\tabctrl.hxx %_DEST%\inc%_EXT%\vcl\tabctrl.hxx
+diff --git a/vcl/source/window/makefile.mk b/vcl/source/window/makefile.mk
+index d8fa88f..68769b6 100644
+--- vcl/source/window/makefile.mk
++++ vcl/source/window/makefile.mk
+@@ -78,6 +78,7 @@ SLOFILES= \
+ 			$(SLO)$/splitwin.obj	\
+ 			$(SLO)$/status.obj		\
+ 			$(SLO)$/syschild.obj	\
++			$(SLO)$/syschildctrl.obj	\
+ 			$(SLO)$/javachild.obj	\
+ 			$(SLO)$/syswin.obj		\
+ 			$(SLO)$/tabdlg.obj		\
+diff --git a/vcl/source/window/syschildctrl.cxx b/vcl/source/window/syschildctrl.cxx
+new file mode 100644
+index 0000000..0859737
+--- /dev/null
++++ vcl/source/window/syschildctrl.cxx
+@@ -0,0 +1,220 @@
++/*
++ * written by Florian Reuter, (c) Novell Inc 2008
++ */
++// MARKER(update_precomp.py): autogen include statement, do not remove
++#include "precompiled_vcl.hxx"
++
++#ifndef _SV_SVSYS_HXX
++#include <svsys.h>
++#endif
++#ifndef _SV_SALINST_HXX
++#include <vcl/salinst.hxx>
++#endif
++#ifndef _SV_SALFRAME_HXX
++#include <vcl/salframe.hxx>
++#endif
++#include <vcl/window.hxx>
++#ifndef _SV_SALOBJ_HXX
++#include <vcl/salobj.hxx>
++#endif
++
++#ifndef _SV_RC_H
++#include <tools/rc.h>
++#endif
++#ifndef _SV_SVDATA_HXX
++#include <vcl/svdata.hxx>
++#endif
++#ifndef _SV_WIDNOW_H
++#include <vcl/window.h>
++#endif
++#ifndef _SV_SVAPP_HXX
++#include <vcl/svapp.hxx>
++#endif
++#include <vcl/syschildctrl.hxx>
++
++#include <stdio.h>
++
++#if 0
++void SystemChildControl::send_focus_change_message(
++    SystemChildControl* pWindow,
++    int mode, int detail )
++{
++    XFocusChangeEvent ev;
++    memset(&ev, 0, sizeof(ev));
++    ev.type=FocusOut;
++    ev.display = (_XDisplay*)pWindow->GetSystemData()->pDisplay;
++    ev.window = pWindow->GetSystemData()->aWindow;
++    ev.send_event = true;
++    ev.mode = mode;
++    ev.detail = detail;
++
++    trap_errors();
++    XSendEvent(ev.display, pWindow->GetSystemData()->aWindow, False, NoEventMask, (XEvent*)&ev);
++    XSync(ev.display, False);
++    if (untrap_errors()) {
++	// Handle failure
++    }
++}
++#endif
++
++long ImplSysChildCtrlProc( void* pInst, SalObject* /* pObject */,
++					   USHORT nEvent, const void* /* pEvent */ )
++{
++    printf("syschildctrl::ImplSysChildCtrlProc\n");
++	SystemChildControl* pWindow = (SystemChildControl*)pInst;
++	long nRet = 0;
++
++	switch ( nEvent )
++	{
++		case SALOBJ_EVENT_GETFOCUS:
++//		    SystemChildWindow::__GrapFocus(pWindow);
++		    printf("SALOBJ_EVENT_GETFOCUS\n");
++		    pWindow->GrabFocus();
++			break;
++
++		case SALOBJ_EVENT_LOSEFOCUS:
++		    printf("SALOBJ_EVENT_LOSEFOCUS\n");
++//		    SystemChildWindow::__LoseFocus(pWindow);
++			break;
++
++		case SALOBJ_EVENT_TOTOP:
++		    printf("SALOBJ_EVENT_TOTOP\n");
++//		    SystemChildWindow::__ToTop(pWindow);
++			break;
++	}
++
++	return nRet;
++}
++
++
++void SystemChildControl::ImplInitSysChildCtrl( Window* pParent, WinBits nStyle, SystemWindowData *pData, int type, BOOL bShow )
++{
++    _type=type;
++    switch(type) {
++	case SOCKET:
++	    mpWindowImpl->mpSysObj = ImplGetSVData()->mpDefInst->CreateSocket( pParent->ImplGetFrame(), bShow );
++	    break;
++	case BROWSER:
++	    mpWindowImpl->mpSysObj = ImplGetSVData()->mpDefInst->CreateMozObject( pParent->ImplGetFrame(), bShow );
++	    break;
++	default:
++	    mpWindowImpl->mpSysObj = ImplGetSVData()->mpDefInst->CreateObject( pParent->ImplGetFrame(), pData, bShow );
++	    break;
++    }
++    Control::ImplInit( pParent, nStyle, NULL );
++
++    if ( GetSystemData() )
++    {
++	mpWindowImpl->mpSysObj->SetCallback( this, ImplSysChildCtrlProc );
++	SetParentClipMode( PARENTCLIPMODE_CLIP );
++	SetBackground();
++    }
++
++}
++
++
++SystemChildControl::SystemChildControl( Window* pParent, int type, WinBits nStyle ) : Control( WINDOW_SYSTEMCHILDCTRL ), _type(0)
++{
++    ImplInitSysChildCtrl( pParent, nStyle, NULL, type );
++    EnableInput();
++}
++
++SystemChildControl::~SystemChildControl()
++{
++	Hide();
++	if ( mpWindowImpl->mpSysObj )
++	{
++	    switch (_type) {
++		case SOCKET:
++		    ImplGetSVData()->mpDefInst->DestroySocket( mpWindowImpl->mpSysObj );
++		    break;
++		case BROWSER:
++		    ImplGetSVData()->mpDefInst->DestroyMozObject( mpWindowImpl->mpSysObj );
++		    break;
++		default:
++		    ImplGetSVData()->mpDefInst->DestroyObject( mpWindowImpl->mpSysObj );
++		    break;
++	    }
++		mpWindowImpl->mpSysObj = NULL;
++	}
++}
++
++void SystemChildControl::GetFocus()
++{
++    Control::GetFocus();
++}
++
++void SystemChildControl::LoseFocus()
++{
++    printf("SystemChildControl::LoseFocus()\n");
++/*
++    GtkSalObject *pGtkSalObject = (GtkSalObject *)mpWindowImpl->mpSysObj;
++    GtkSocket *socket=GTK_SOCKET(pGtkSalObject->GetSystemData()->pWidget);
++    printf("socket=%p\n", socket);
++    gtk_container_set_focus_child (GTK_CONTAINER (socket), NULL); 
++    GtkFixed *fixed=GTK_FIXED(GTK_WIDGET(socket)->parent);
++    printf("fixed=%p\n", fixed);
++    gtk_container_set_focus_child (GTK_CONTAINER (fixed), NULL); 
++    gtk_window_set_focus(GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(socket))), NULL);
++*/
++    SalObject *pSalObject = mpWindowImpl->mpSysObj;
++    if (pSalObject) {
++	pSalObject->RemoveFocus();
++    }
++/*
++    GtkWidget *socket=GTK_WIDGET(pGtkSalObject->GetSystemData()->pWidget);
++    if (GTK_IS_CONTAINER(socket)) {
++	gtk_container_set_focus_child (GTK_CONTAINER (socket), NULL); 
++    }
++    GtkContainer *fixed=GTK_CONTAINER(GTK_WIDGET(socket)->parent);
++    gtk_container_set_focus_child (fixed, NULL); 
++    gtk_window_set_focus(GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(socket))), NULL);
++*/
++    Control::LoseFocus();
++}
++
++long SystemChildControl::Notify( NotifyEvent& rNEvt )
++{
++    return Control::Notify(rNEvt);
++}
++
++void SystemChildControl::MouseButtonDown( const MouseEvent& rMEvt )
++{
++//    GtkWidget *socket=GTK_WIDGET(GetSystemData()->pWidget);
++//    GrabFocus();
++//    gtk_widget_grab_focus(socket);
++//    gtk_widget_set_sensitive(socket, 0);
++//    g_signal_emit_by_name(socket, "focus-out-event"
++//    printf("**** SystemChildControl::send_focus_change_message ***\n");
++//    SystemChildControl::send_focus_change_message(this, NotifyUngrab, NotifyDetailNone);
++
++
++//    printf("SystemChildControl::MouseButtonDown focus=%i\n", gtk_widget_is_focus(socket));
++    Control::MouseButtonDown(rMEvt);
++}
++
++void SystemChildControl::MouseButtonUp( const MouseEvent& rMEvt )
++{
++    printf("SystemChildControl::MouseButtonUp\n");
++    Control::MouseButtonUp(rMEvt);
++}
++
++void SystemChildControl::KeyInput( const KeyEvent& rKEvt )
++{
++    printf("SystemChildControl::KeyInput\n");
++}
++
++
++void SystemChildControl::LoadUrl(char *url)
++{
++    printf("+++ SystemChildControl::LOAD..\n");
++
++    SalObject *pGtkSalObject = mpWindowImpl->mpSysObj;
++    pGtkSalObject->LoadUrl(url);
++}
++
++sal_uInt32 SystemChildControl::GetSocketId()
++{
++    SalObject *pGtkSalObject = mpWindowImpl->mpSysObj;
++    return pGtkSalObject->GetSocketId();
++}
+diff --git a/vcl/unx/gtk/app/gtkinst.cxx b/vcl/unx/gtk/app/gtkinst.cxx
+index f5383a0..4e0899f 100644
+--- vcl/unx/gtk/app/gtkinst.cxx
++++ vcl/unx/gtk/app/gtkinst.cxx
+@@ -223,7 +223,28 @@ SalObject* GtkInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWind
+     if( pWindowData )
+         return X11SalObject::CreateObject( pParent, pWindowData, bShow );
+     
+-    return new GtkSalObject( static_cast<GtkSalFrame*>(pParent), bShow );
++    return new GtkSalObject( static_cast<GtkSalFrame*>(pParent), GtkSalObject::DRAWING_AREA, bShow );
++}
++
++
++SalObject* GtkInstance::CreateSocket( SalFrame* pParent, BOOL bShow )
++{
++    return new GtkSalObject( static_cast<GtkSalFrame*>(pParent), GtkSalObject::SOCKET, bShow );
++}
++
++void GtkInstance::DestroySocket( SalObject* pObject )
++{
++    delete pObject;
++}
++
++SalObject* GtkInstance::CreateMozObject( SalFrame* pParent, BOOL bShow )
++{
++    return new GtkSalObject( static_cast<GtkSalFrame*>(pParent), GtkSalObject::MOZ_EMBEDD, bShow );
++}
++
++void GtkInstance::DestroyMozObject( SalObject* pObject )
++{
++    delete pObject;
+ }
+ 
+ GtkYieldMutex::GtkYieldMutex()
+diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
+index 57c52ba..860223c 100644
+--- vcl/unx/gtk/window/gtkframe.cxx
++++ vcl/unx/gtk/window/gtkframe.cxx
+@@ -2773,7 +2773,15 @@ gboolean GtkSalFrame::signalConfigure( GtkWidget*, GdkEventConfigure* pEvent, gp
+ gboolean GtkSalFrame::signalKey( GtkWidget*, GdkEventKey* pEvent, gpointer frame )
+ {
+     GtkSalFrame* pThis = (GtkSalFrame*)frame;
+-
++    if (pThis && pThis->m_pFixedContainer!=NULL && GTK_IS_FIXED(pThis->m_pFixedContainer))
++    {
++	GtkFixed *pFixed=GTK_FIXED(pThis->m_pFixedContainer);
++	GtkWindow *pTopLevel=GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(pFixed)));
++	if (pTopLevel!=NULL && pTopLevel->focus_widget!=NULL 
++	    /* &&  (GTK_IS_SOCKET(pTopLevel->focus_widget) || GTK_IS_MOZ_EMBED(pTopLevel->focus_widget))*/) {
++	    return FALSE;
++	}
++    }
+ 	vcl::DeletionListener aDel( pThis );
+ 
+     if( pThis->m_pIMHandler )
+diff --git a/vcl/unx/gtk/window/gtkobject.cxx b/vcl/unx/gtk/window/gtkobject.cxx
+index 1f1d7b5..c83e6f4 100644
+--- vcl/unx/gtk/window/gtkobject.cxx
++++ vcl/unx/gtk/window/gtkobject.cxx
+@@ -41,14 +41,33 @@
+ #include <plugins/gtk/gtkdata.hxx>
+ #include <plugins/gtk/gtkinst.hxx>
+ 
+-GtkSalObject::GtkSalObject( GtkSalFrame* pParent, BOOL bShow ) 
++#ifdef ENABLE_GTKMOZEMBED
++#include <gtkembedmoz/gtkmozembed.h>
++#endif
++
++
++GtkSalObject::GtkSalObject( GtkSalFrame* pParent, int type, BOOL bShow ) 
+         : m_pSocket( NULL ),
+-          m_pRegion( NULL )
++          m_pRegion( NULL ),
++	  mozCount(0)
+ {
+     if( pParent )
+     {
+         // our plug window
+-        m_pSocket = gtk_drawing_area_new();
++	switch(type) {
++	    case SOCKET:
++		m_pSocket = gtk_socket_new();
++		break;
++#ifdef ENABLE_GTKMOZEMBED
++	    case MOZ_EMBEDD:
++		gtk_moz_embed_set_comp_path("/usr/lib/firefox"); 
++		gtk_moz_embed_set_profile_path("/home/freuter/.mozilla", "firefox"); 		m_pSocket = gtk_moz_embed_new();
++		break;
++#endif
++	    default:
++		m_pSocket = gtk_drawing_area_new();
++	    break;
++	}
+         Show( bShow );
+         // insert into container
+         gtk_fixed_put( pParent->getFixedContainer(),
+@@ -60,7 +79,8 @@ GtkSalObject::GtkSalObject( GtkSalFrame* pParent, BOOL bShow )
+ 
+         // make it transparent; some plugins may not insert
+         // their own window here but use the socket window itself
+-        gtk_widget_set_app_paintable( m_pSocket, TRUE );
++	if (type==DRAWING_AREA)
++	    gtk_widget_set_app_paintable( m_pSocket, TRUE );
+ 
+         //system data
+         SalDisplay* pDisp = GetX11SalData()->GetDisplay();
+@@ -77,12 +97,20 @@ GtkSalObject::GtkSalObject( GtkSalFrame* pParent, BOOL bShow )
+ 
+         g_signal_connect( G_OBJECT(m_pSocket), "button-press-event", G_CALLBACK(signalButton), this );
+         g_signal_connect( G_OBJECT(m_pSocket), "button-release-event", G_CALLBACK(signalButton), this );
++/**/
+         g_signal_connect( G_OBJECT(m_pSocket), "focus-in-event", G_CALLBACK(signalFocus), this );
+         g_signal_connect( G_OBJECT(m_pSocket), "focus-out-event", G_CALLBACK(signalFocus), this );
++/**/
++	g_signal_connect( G_OBJECT(m_pSocket), "set-focus-child", G_CALLBACK(signalFocusChild), this );
++
+         g_signal_connect( G_OBJECT(m_pSocket), "destroy", G_CALLBACK(signalDestroy), this );
+         
+         // #i59255# necessary due to sync effects with java child windows
+         pParent->Sync();
++
++	if (type==SOCKET) {
++	    printf("socket id=%li\n", (long)gtk_socket_get_id(GTK_SOCKET(m_pSocket)));
++	}
+     }
+ }
+ 
+@@ -141,6 +169,7 @@ void GtkSalObject::EndSetClipRegion()
+ 
+ void GtkSalObject::SetPosSize( long nX, long nY, long nWidth, long nHeight )
+ {
++    GTK_YIELD_GRAB();
+     if( m_pSocket )
+     {
+         GtkFixed* pContainer = GTK_FIXED(gtk_widget_get_parent(m_pSocket));
+@@ -199,6 +228,7 @@ gboolean GtkSalObject::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointe
+ gboolean GtkSalObject::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer object )
+ {
+     GtkSalObject* pThis = (GtkSalObject*)object;
++    printf("GtkSalObject::signalFocus\n");
+ 
+     GTK_YIELD_GRAB();
+ 
+@@ -207,6 +237,19 @@ gboolean GtkSalObject::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer
+     return FALSE;
+ }
+ 
++void GtkSalObject::signalFocusChild  (GtkContainer */*container*/,
++				      GtkWidget    *widget,
++				      gpointer      object)
++{
++   GtkSalObject* pThis = (GtkSalObject*)object;
++    printf("\n********* GtkSalObject::signalFocusChild(%p)**********\n\n", widget);
++    
++
++    GTK_YIELD_GRAB();
++    pThis->CallCallback( widget!=NULL ? SALOBJ_EVENT_GETFOCUS : SALOBJ_EVENT_LOSEFOCUS, NULL );
++
++}
++
+ void GtkSalObject::signalDestroy( GtkObject* pObj, gpointer object )
+ {
+     GtkSalObject* pThis = (GtkSalObject*)object;
+@@ -224,3 +267,44 @@ void GtkSalObject::SetForwardKey( BOOL bEnable )
+     else
+         gtk_widget_set_events( GTK_WIDGET( m_pSocket ), ~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE) & gtk_widget_get_events( GTK_WIDGET( m_pSocket ) ) );
+ }
++
++
++void GtkSalObject::RemoveFocus()
++{
++    GTK_YIELD_GRAB();
++    printf("GtkSalObject::RemoveFocus\n");
++    GtkSalObject *pGtkSalObject = this;
++    GtkWidget *socket=GTK_WIDGET(pGtkSalObject->GetSystemData()->pWidget);
++    if (GTK_IS_CONTAINER(socket)) {
++	gtk_container_set_focus_child (GTK_CONTAINER (socket), NULL); 
++    }
++//    if (GTK_IS_CONTAINER(GTK_WIDGET(socket)->parent)) {
++	GtkContainer *fixed=GTK_CONTAINER(GTK_WIDGET(socket)->parent);
++	gtk_container_set_focus_child (fixed, NULL); 
++	gtk_window_set_focus(GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(socket))), NULL);
++//    }
++}
++
++
++#ifdef ENABLE_GTKMOZEMBED
++void GtkSalObject::LoadUrl(char *url)
++{
++    GTK_YIELD_GRAB();
++    GtkMozEmbed *embed=GTK_MOZ_EMBED(m_pSocket);
++    gtk_widget_show(GTK_WIDGET(embed));
++    printf("%p GTK_IS_MOZ_EMBED(embed)=%i GTK_WIDGET_REALIZED(embed)=%i\n", embed, GTK_IS_MOZ_EMBED(embed), GTK_WIDGET_REALIZED(embed));
++//    gtk_moz_embed_load_url(embed, "http://137.65.132.22:8080/user/florian/1");
++    gtk_moz_embed_load_url(embed, "http://www.google.de");
++    gtk_widget_show(GTK_WIDGET(embed));
++}
++#else
++void GtkSalObject::LoadUrl(char */*url*/)
++{
++}
++#endif
++
++sal_uInt32 GtkSalObject::GetSocketId()
++{
++    GTK_YIELD_GRAB();
++    return gtk_socket_get_id(GTK_SOCKET(m_pSocket));
++}
+diff --git a/vcl/unx/gtk/window/makefile.mk b/vcl/unx/gtk/window/makefile.mk
+index 01e4fff..f84f2f9 100644
+--- vcl/unx/gtk/window/makefile.mk
++++ vcl/unx/gtk/window/makefile.mk
+@@ -65,6 +65,9 @@ PKGCONFIG_MODULES+= dbus-glib-1
+ .ENDIF
+ .INCLUDE : pkg_config.mk
+ 
++CFLAGS+=-I/usr/include/xulrunner-1.8.0.1
++
++
+ .IF "$(COM)" == "C52"
+ NOOPTFILES=$(SLO)$/gtkframe.obj
+ .ENDIF
+diff --git a/vcl/unx/headless/svpdummies.cxx b/vcl/unx/headless/svpdummies.cxx
+index 2b66731..ed184a4 100644
+--- vcl/unx/headless/svpdummies.cxx
++++ vcl/unx/headless/svpdummies.cxx
+@@ -75,9 +75,12 @@ void SvpSalObject::SetPosSize( long, long, long, long ) {}
+ void SvpSalObject::Show( BOOL ) {}
+ void SvpSalObject::Enable( BOOL ) {}
+ void SvpSalObject::GrabFocus() {}
++void SvpSalObject::RemoveFocus() {}
+ void SvpSalObject::SetBackground() {}
+ void SvpSalObject::SetBackground( SalColor ) {}
+ const SystemEnvData* SvpSalObject::GetSystemData() const { return &m_aSystemChildData; }
++void SvpSalObject::LoadUrl(char *url) {}
++sal_uInt32 SvpSalObject::GetSocketId() { return 0; }
+ 
+ // SalI18NImeStatus
+ SvpImeStatus::~SvpImeStatus() {}
+diff --git a/vcl/unx/headless/svpdummies.hxx b/vcl/unx/headless/svpdummies.hxx
+index 929de79..baad302 100644
+--- vcl/unx/headless/svpdummies.hxx
++++ vcl/unx/headless/svpdummies.hxx
+@@ -77,11 +77,13 @@ public:
+ 	virtual void					Show( BOOL bVisible );
+ 	virtual void					Enable( BOOL nEnable );
+ 	virtual void					GrabFocus();
+-
++        virtual void                                    RemoveFocus();
+ 	virtual void					SetBackground();
+ 	virtual void					SetBackground( SalColor nSalColor );
+ 
+ 	virtual const SystemEnvData*	GetSystemData() const;
++        virtual void LoadUrl(char *url);
++        virtual sal_uInt32 GetSocketId();
+ };
+ 
+ class SvpImeStatus : public SalI18NImeStatus
+diff --git a/vcl/unx/headless/svpinst.cxx b/vcl/unx/headless/svpinst.cxx
+index fdf743c..184d68e 100644
+--- vcl/unx/headless/svpinst.cxx
++++ vcl/unx/headless/svpinst.cxx
+@@ -255,6 +255,27 @@ void SvpSalInstance::DestroyObject( SalObject* pObject )
+     delete pObject;
+ }
+ 
++SalObject* SvpSalInstance::CreateSocket( SalFrame*, BOOL )
++{
++    return new SvpSalObject();
++}
++
++void SvpSalInstance::DestroySocket( SalObject* pObject )
++{
++    delete pObject;
++}
++
++SalObject* SvpSalInstance::CreateMozObject( SalFrame*, BOOL )
++{
++    return new SvpSalObject();
++}
++
++void SvpSalInstance::DestroyMozObject( SalObject* pObject )
++{
++    delete pObject;
++}
++
++
+ SalVirtualDevice* SvpSalInstance::CreateVirtualDevice( SalGraphics*,
+                                                        long nDX, long nDY,
+                                                        USHORT nBitCount, const SystemGraphicsData* )
+diff --git a/vcl/unx/headless/svpinst.hxx b/vcl/unx/headless/svpinst.hxx
+index 58569f1..634841f 100644
+--- vcl/unx/headless/svpinst.hxx
++++ vcl/unx/headless/svpinst.hxx
+@@ -142,6 +142,14 @@ public:
+     virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual void			DestroyObject( SalObject* pObject );
+ 
++    virtual SalObject*			CreateSocket( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void			DestroySocket( SalObject* pObject );
++
++    virtual SalObject*			CreateMozObject( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void			DestroyMozObject( SalObject* pObject );
++
++
++
+     // VirtualDevice
+     // nDX and nDY in Pixel
+     // nBitCount: 0 == Default(=as window) / 1 == Mono
+diff --git a/vcl/unx/inc/plugins/gtk/gtkinst.hxx b/vcl/unx/inc/plugins/gtk/gtkinst.hxx
+index 2874611..c3e7c24 100644
+--- vcl/unx/inc/plugins/gtk/gtkinst.hxx
++++ vcl/unx/inc/plugins/gtk/gtkinst.hxx
+@@ -96,6 +96,12 @@ public:
+     virtual SalFrame*           CreateChildFrame( SystemParentData* pParent, ULONG nStyle );
+     virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual SalSystem*			CreateSalSystem();
++
++    virtual SalObject*			CreateSocket( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void			DestroySocket( SalObject* pObject );
++
++    virtual SalObject*			CreateMozObject( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void			DestroyMozObject( SalObject* pObject );
+ };
+ 
+ class GtkSalSystem : public X11SalSystem
+diff --git a/vcl/unx/inc/plugins/gtk/gtkobject.hxx b/vcl/unx/inc/plugins/gtk/gtkobject.hxx
+index 5ce3237..c8c65fe 100644
+--- vcl/unx/inc/plugins/gtk/gtkobject.hxx
++++ vcl/unx/inc/plugins/gtk/gtkobject.hxx
+@@ -51,16 +51,28 @@
+ 
+ class GtkSalObject : public SalObject
+ {
++public:
++    static const int DRAWING_AREA = 1;
++    static const int SOCKET = 2;
++    static const int MOZ_EMBEDD = 3;
++private:
+ 	SystemChildData		m_aSystemData;
+     GtkWidget*			m_pSocket;
+     GdkRegion*			m_pRegion;
++    int                         mozCount;
+ 
+     // signals
+     static gboolean		signalButton( GtkWidget*, GdkEventButton*, gpointer );
+     static gboolean		signalFocus( GtkWidget*, GdkEventFocus*, gpointer );
+     static void			signalDestroy( GtkObject*, gpointer );
++
++    static void signalFocusChild  (GtkContainer *container,
++                                   GtkWidget    *widget,
++                                   gpointer      user_data);
++
++
+ public:
+-    GtkSalObject( GtkSalFrame* pParent, BOOL bShow = TRUE );
++    GtkSalObject( GtkSalFrame* pParent, int type, BOOL bShow = TRUE );
+     virtual ~GtkSalObject();
+ 
+     // overload all pure virtual methods
+@@ -74,6 +86,7 @@ public:
+ 	virtual void					Show( BOOL bVisible );
+ 	virtual void					Enable( BOOL nEnable );
+ 	virtual void					GrabFocus();
++        virtual void                                    RemoveFocus();
+ 
+ 	virtual void					SetBackground();
+ 	virtual void					SetBackground( SalColor nSalColor );
+@@ -81,7 +94,9 @@ public:
+         virtual void                                    SetForwardKey( BOOL bEnable );
+ 
+ 	virtual const SystemEnvData*	GetSystemData() const;
+-   
++    
++        virtual void LoadUrl(char *url);   
++        virtual sal_uInt32 GetSocketId();
+ };
+ 
+ #endif // _SV_SALOBJ_H
+diff --git a/vcl/unx/inc/plugins/kde/kdedata.hxx b/vcl/unx/inc/plugins/kde/kdedata.hxx
+index ec252c5..6cedbd9 100644
+--- vcl/unx/inc/plugins/kde/kdedata.hxx
++++ vcl/unx/inc/plugins/kde/kdedata.hxx
+@@ -92,6 +92,12 @@ public:
+             : X11SalInstance( pMutex ) {}
+ 	virtual ~KDESalInstance() {}
+     virtual SalFrame* CreateFrame( SalFrame* pParent, ULONG nStyle );
++
++    virtual SalObject*			CreateSocket( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void			DestroySocket( SalObject* pObject );
++
++    virtual SalObject*			CreateMozObject( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void			DestroyMozObject( SalObject* pObject );
+ };
+ 
+ class KDEXLib : public SalXLib
+diff --git a/vcl/unx/inc/salinst.h b/vcl/unx/inc/salinst.h
+index 0823a3d..dc5ae34 100644
+--- vcl/unx/inc/salinst.h
++++ vcl/unx/inc/salinst.h
+@@ -92,6 +92,13 @@ public:
+     virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual void				DestroyObject( SalObject* pObject );
+ 
++    virtual SalObject*			CreateSocket( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void				DestroySocket( SalObject* pObject );    
++
++    virtual SalObject*			CreateMozObject( SalFrame* pParent, BOOL bShow = TRUE);
++    virtual void				DestroyMozObject( SalObject* pObject );    
++    
++
+     virtual SalVirtualDevice*	CreateVirtualDevice( SalGraphics* pGraphics,
+                                                      long nDX, long nDY,
+                                                      USHORT nBitCount, const SystemGraphicsData *pData = NULL );
+diff --git a/vcl/unx/inc/salobj.h b/vcl/unx/inc/salobj.h
+index 131824b..b41e2e9 100644
+--- vcl/unx/inc/salobj.h
++++ vcl/unx/inc/salobj.h
+@@ -109,12 +109,14 @@ public:
+ 	virtual void					Show( BOOL bVisible );
+ 	virtual void					Enable( BOOL nEnable );
+ 	virtual void					GrabFocus();
+-
++	virtual void                                    RemoveFocus();
+ 	virtual void					SetBackground();
+ 	virtual void					SetBackground( SalColor nSalColor );
+ 
+ 	virtual const SystemEnvData*	GetSystemData() const;
+-   
++	virtual void LoadUrl(char *url);
++	virtual sal_uInt32 GetSocketId();
++
+ };
+ 
+ #endif // _SV_SALOBJ_H
+diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx b/vcl/unx/kde/salnativewidgets-kde.cxx
+index b6b800f..138ac65 100644
+--- vcl/unx/kde/salnativewidgets-kde.cxx
++++ vcl/unx/kde/salnativewidgets-kde.cxx
+@@ -2090,6 +2090,26 @@ KDESalInstance::CreateFrame( SalFrame *pParent, ULONG nStyle )
+ 	return new KDESalFrame( pParent, nStyle );
+ }
+ 
++
++SalObject* KDESalInstance::CreateSocket( SalFrame* pParent, BOOL bShow)
++{
++    return NULL; //@TODO implement...
++}
++
++void KDESalInstance::DestroySocket( SalObject* pObject )
++{
++}
++
++SalObject* KDESalInstance::CreateMozObject( SalFrame* pParent, BOOL bShow)
++{
++    return NULL; //@TODO implement...
++}
++
++void KDESalInstance::DestroyMozObject( SalObject* pObject )
++{
++}
++
++
+ // -----------------------------------------------------------------------
+ // KDESalData pieces
+ // -----------------------------------------------------------------------
+diff --git a/vcl/unx/source/window/salobj.cxx b/vcl/unx/source/window/salobj.cxx
+index 3c7c9c8..65f586f 100644
+--- vcl/unx/source/window/salobj.cxx
++++ vcl/unx/source/window/salobj.cxx
+@@ -215,6 +215,24 @@ void X11SalInstance::DestroyObject( SalObject* pObject )
+ 	delete pObject;
+ }
+ 
++SalObject* X11SalInstance::CreateSocket( SalFrame* pParent, BOOL bShow)
++{
++    return NULL;
++}
++
++void X11SalInstance::DestroySocket( SalObject* pObject )
++{
++}
++
++SalObject* X11SalInstance::CreateMozObject( SalFrame* pParent, BOOL bShow)
++{
++    return NULL;
++}
++
++void X11SalInstance::DestroyMozObject( SalObject* pObject )
++{
++}
++
+ 
+ // ======================================================================
+ // SalClipRegion is a member of SalObject
+@@ -576,3 +594,16 @@ long X11SalObject::Dispatch( XEvent* pEvent )
+ 	}
+ 	return 0;
+ }
++
++void X11SalObject::RemoveFocus()
++{
++}
++
++void X11SalObject::LoadUrl(char *url)
++{
++}
++
++sal_uInt32 X11SalObject::GetSocketId()
++{
++    return 0;
++}
+diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk
+index 512e9c4..6146b6c 100644
+--- vcl/util/makefile.mk
++++ vcl/util/makefile.mk
+@@ -206,6 +206,10 @@ SHL1OBJS=   $(SLO)$/salshl.obj
+ SHL1RES=    $(RES)$/salsrc.res
+ .ENDIF
+ 
++#LDFLAGS+=-L/usr/lib/xulrunner-1.8.0.1
++#SHL1STDLIBS+=-lgtkembedmoz
++
++
+ SHL1DEF=    $(MISC)$/$(SHL1TARGET).def
+ 
+ DEF1NAME    =$(SHL1TARGET)
+@@ -318,6 +322,9 @@ PKGCONFIG_MODULES=gtk+-2.0 gthread-2.0
+ .IF "$(ENABLE_DBUS)" != ""
+ PKGCONFIG_MODULES+= dbus-glib-1
+ .ENDIF
++.IF "$(ENABLE_GTKMOZEMBED)" != ""
++PKGCONFIG_MODULES=xulrunner-gtkmozembed
++.ENDIF
+ .INCLUDE: pkg_config.mk
+ 
+ LIB4TARGET=$(SLB)$/igtk_plug_
+@@ -333,6 +340,7 @@ SHL4LIBS=$(LIB4TARGET)
+ SHL4DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN) $(SHL2IMPLIBN) $(SHL2TARGETN)
+ # libs for gtk plugin
+ SHL4STDLIBS+=$(PKGCONFIG_LIBS:s/ -lpangoxft-1.0//)
++#SHL4STDLIBS+=-lgtkembedmoz
+ # hack for faked SO environment
+ .IF "$(PKGCONFIG_ROOT)"!=""
+ SHL4SONAME+=-z nodefs
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-layoutdialogs-sw.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-layoutdialogs-sw.diff
@@ -0,0 +1,929 @@
+cvs diff: Diffing sw
+cvs diff: Diffing sw/inc
+cvs diff: Diffing sw/inc/pch
+cvs diff: Diffing sw/prj
+Index: sw/prj/build.lst
+===================================================================
+RCS file: /cvs/sw/sw/prj/build.lst,v
+retrieving revision 1.22
+retrieving revision 1.22.362.1
+diff -p -u -u -p -b -w -B -r1.22 -r1.22.362.1
+--- sw/prj/build.lst	27 Jun 2007 13:15:21 -0000	1.22
++++ sw/prj/build.lst	28 Mar 2008 11:22:01 -0000	1.22.362.1
+@@ -1,6 +1,7 @@
+ sw	sw	:	connectivity OOo:writerperfect svx stoc uui NULL
+ sw	sw										usr1	-	all	sw_mkout NULL
+ sw	sw\inc									nmake		-	all	sw_inc NULL
++sw	sw\uiconfig\layout									nmake	-	all	sw_layout NULL
+ sw	sw\prj									get		-	all	sw_prj NULL
+ sw	sw\source\ui\inc						nmake	-	all	sw_uinc NULL
+ sw	sw\source\core\inc						get		-	all	sw_cinc NULL
+Index: sw/prj/d.lst
+===================================================================
+RCS file: /cvs/sw/sw/prj/d.lst,v
+retrieving revision 1.22
+retrieving revision 1.22.440.2
+diff -p -u -u -p -b -w -B -r1.22 -r1.22.440.2
+--- sw/prj/d.lst	16 Apr 2007 15:39:57 -0000	1.22
++++ sw/prj/d.lst	31 Mar 2008 14:50:42 -0000	1.22.440.2
+@@ -107,3 +107,5 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\module
+ ..\uiconfig\sglobal\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\sglobal\statusbar\*.xml
+ ..\uiconfig\swform\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swform\statusbar\*.xml
+ ..\uiconfig\swreport\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar\*.xml
++
++..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+cvs diff: Diffing sw/qa
+cvs diff: Diffing sw/qa/complex
+cvs diff: Diffing sw/qa/complex/accessibility
+cvs diff: Diffing sw/qa/complex/checkColor
+cvs diff: Diffing sw/qa/complex/indeterminateState
+cvs diff: Diffing sw/qa/complex/writer
+cvs diff: Diffing sw/qa/complex/writer/testdocuments
+cvs diff: Diffing sw/qa/core
+cvs diff: Diffing sw/qa/unoapi
+cvs diff: Diffing sw/qa/unoapi/testdocuments
+cvs diff: Diffing sw/sdi
+cvs diff: Diffing sw/source
+cvs diff: Diffing sw/source/core
+cvs diff: Diffing sw/source/core/SwNumberTree
+cvs diff: Diffing sw/source/core/access
+cvs diff: Diffing sw/source/core/attr
+cvs diff: Diffing sw/source/core/bastyp
+cvs diff: Diffing sw/source/core/crsr
+cvs diff: Diffing sw/source/core/doc
+cvs diff: Diffing sw/source/core/docnode
+cvs diff: Diffing sw/source/core/draw
+cvs diff: Diffing sw/source/core/edit
+cvs diff: Diffing sw/source/core/except
+cvs diff: Diffing sw/source/core/fields
+cvs diff: Diffing sw/source/core/frmedt
+cvs diff: Diffing sw/source/core/graphic
+cvs diff: Diffing sw/source/core/inc
+cvs diff: Diffing sw/source/core/layout
+cvs diff: Diffing sw/source/core/objectpositioning
+cvs diff: Diffing sw/source/core/ole
+cvs diff: Diffing sw/source/core/para
+cvs diff: Diffing sw/source/core/sw3io
+cvs diff: Diffing sw/source/core/swg
+cvs diff: Diffing sw/source/core/table
+cvs diff: Diffing sw/source/core/text
+cvs diff: Diffing sw/source/core/tox
+cvs diff: Diffing sw/source/core/txtnode
+cvs diff: Diffing sw/source/core/undo
+cvs diff: Diffing sw/source/core/unocore
+cvs diff: Diffing sw/source/core/view
+cvs diff: Diffing sw/source/filter
+cvs diff: Diffing sw/source/filter/ascii
+cvs diff: Diffing sw/source/filter/basflt
+cvs diff: Diffing sw/source/filter/html
+cvs diff: Diffing sw/source/filter/inc
+cvs diff: Diffing sw/source/filter/rtf
+cvs diff: Diffing sw/source/filter/writer
+cvs diff: Diffing sw/source/filter/ww1
+cvs diff: Diffing sw/source/filter/ww8
+cvs diff: Diffing sw/source/filter/ww8/dump
+cvs diff: Diffing sw/source/filter/xml
+cvs diff: Diffing sw/source/ui
+cvs diff: Diffing sw/source/ui/app
+cvs diff: Diffing sw/source/ui/cctrl
+cvs diff: Diffing sw/source/ui/chrdlg
+cvs diff: Diffing sw/source/ui/config
+cvs diff: Diffing sw/source/ui/dbui
+cvs diff: Diffing sw/source/ui/dialog
+cvs diff: Diffing sw/source/ui/dochdl
+cvs diff: Diffing sw/source/ui/docvw
+cvs diff: Diffing sw/source/ui/envelp
+cvs diff: Diffing sw/source/ui/fldui
+cvs diff: Diffing sw/source/ui/fmtui
+cvs diff: Diffing sw/source/ui/frmdlg
+cvs diff: Diffing sw/source/ui/globdoc
+cvs diff: Diffing sw/source/ui/inc
+cvs diff: Diffing sw/source/ui/index
+cvs diff: Diffing sw/source/ui/lingu
+cvs diff: Diffing sw/source/ui/misc
+cvs diff: Diffing sw/source/ui/ribbar
+cvs diff: Diffing sw/source/ui/shells
+cvs diff: Diffing sw/source/ui/smartmenu
+cvs diff: Diffing sw/source/ui/table
+cvs diff: Diffing sw/source/ui/uiview
+cvs diff: Diffing sw/source/ui/uno
+cvs diff: Diffing sw/source/ui/utlui
+cvs diff: Diffing sw/source/ui/web
+cvs diff: Diffing sw/source/ui/wrtsh
+cvs diff: Diffing sw/uiconfig
+cvs diff: Diffing sw/uiconfig/layout
+Index: sw/uiconfig/layout/delzip
+===================================================================
+RCS file: sw/uiconfig/layout/delzip
+diff -N sw/uiconfig/layout/delzip
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sw/uiconfig/layout/delzip	3 Apr 2008 08:38:35 -0000	1.1.2.2
+@@ -0,0 +1 @@
++empty
+\ No newline at end of file
+Index: sw/uiconfig/layout/layout.mk
+===================================================================
+RCS file: sw/uiconfig/layout/layout.mk
+diff -N sw/uiconfig/layout/layout.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sw/uiconfig/layout/layout.mk	31 Mar 2008 15:01:30 -0000	1.1.2.1
+@@ -0,0 +1,33 @@
++# TODO: move to solenv/inc
++# copies: sw/uiconfig/layout svx/uiconfig/layout
++
++TRALAY=tralay
++XML_DEST=$(DLLDEST)
++XML_LANGS=$(alllangiso)
++
++ALL_XMLS=$(foreach,i,$(XML_FILES) $(XML_DEST)/$i) $(foreach,i,$(XML_LANGS) $(foreach,j,$(XML_FILES) $(XML_DEST)/$i/$j))
++
++# Must remove the -j (no duplicate base file names) flag
++ZIPUPDATE=-u
++XML_ZIP = $(PRJNAME)-layout
++
++ALLTAR: $(XML_ZIP)
++
++$(XML_ZIP): $(ALL_XMLS)
++
++ZIP1DIR=$(XML_DEST)
++ZIP1TARGET=$(XML_ZIP)
++ZIP1LIST=$(ALL_XMLS:s@$(XML_DEST)/@@)
++
++$(foreach,i,$(XML_LANGS) $(XML_DEST)/$i/%.xml): %.xml
++	-$(MKDIR) $(@:d)
++	@echo $(foreach,i,$(XML_LANGS) $(XML_DEST)/$i/%.xml): %.xml
++	$(TRALAY) -m localize.sdf -o $(XML_DEST) -l $(XML_LANGS:f:t" -l ") $<
++
++$(XML_DEST)/%.xml: %.xml
++	-$(MKDIR) $(@:d)
++	$(COPY) $< $@
++
++# Don't want to overwrite filled localize.sdf with empty template
++template.sdf:
++	$(foreach,i,$(XML_FILES) $(TRALAY) -l en-US $i) > $@
+Index: sw/uiconfig/layout/localize.sdf
+===================================================================
+RCS file: sw/uiconfig/layout/localize.sdf
+diff -N sw/uiconfig/layout/localize.sdf
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sw/uiconfig/layout/localize.sdf	28 Mar 2008 11:22:01 -0000	1.1.2.1
+@@ -0,0 +1,559 @@
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	en-US	Word Count				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	en-US	Current selection				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	en-US	Words:				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FI_CURRENTWORD_label				0	en-US	0				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	en-US	Characters:				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FI_CURRENTCHARACTER_label				0	en-US	00				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	en-US	Whole document				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	en-US	Words:				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FI_DOCWORD_label				0	en-US	000				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	en-US	Characters:				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FI_DOCCHARACTER_label				0	en-US	0000				20080227 16:28:34
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	af	Huidige seleksie				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ar	التحديد الحالي				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	as-IN	বর্তমানৰ বাছনী				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	be-BY	Пазначанае				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	bg	Текущ избор				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	br	Diuz oberiat				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	bs	Trenutni izbor				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ca	Selecció actual				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	cs	Současný výběr				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	cy	Dewis presennol				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	da	Aktuel markering				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	de	Aktuelle Auswahl				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	dz	ད་ལྟོའི་སེལ་འཐུ།				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	el	Τρέχουσα επιλογή				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	en-GB	Current selection				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	en-ZA	Current selection				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	eo	Aktuala elekto				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	es	Selección actual				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	et	Aktiivne valik				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	fa	انتخاب فعلی				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	fi	Nykyinen valinta				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	fr	Sélection active				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ga	Roghnúchán reatha				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	gl	Selección actual				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	gu	હાલની પસંદગી				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	gu-IN	હાલની પસંદગી				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	he	הבחירה הנוכחית				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	hi-IN	मौजूदा चयन				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	hr	Trenutni odabir				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	hu	Aktuális kijelölés				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	it	Selezione				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ja	現在の選択				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ka	მიმდინარე მონიშვნა				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	km	ការ​ជ្រើស​បច្ចុប្បន្ន				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ko	현재 선택 사항				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ku	Hilbijartina derbazbar				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	lt	Šiuo ~metu pažymėta sritis				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	mk	Тековен избор				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ml-IN	നിലവിലുള്ള തെരഞ്ഞെടുപ്പ്				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	mr-IN	वर्तमान निवड				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nb	Gjeldende utvalg				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ne	हालको चयन				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nl	Huidige selectie				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nn	Gjeldande utval				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	nr	Ikhetho lanje				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ns	Kgetho ya gona bjale				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	or-IN	ଚଳିତ ମନୋନଯନ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pa-IN	ਮੌਜੂਦਾ ਚੋਣ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pl	Zaznaczenie				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pt	Selecção actual				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	pt-BR	Seleção atual				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ru	Текущее выделение				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	rw	ihitamo rigezweho				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sh	Tekući odeljak				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sk	Súčasný výber				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sl	Trenutna izbira				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sr	Текући одељак				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ss	Kukhetsa kwanyalo				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	st	Kgetho ya jwale				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sv	Aktuell markering				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	sw-TZ	Current selection				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ta	நடப்பு தேர்த்தெடுத்தல்				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ta-IN	நடப்பு தேர்த்தெடுத்தல்				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	te-IN	ప్రస్ధుత ఎంపిక				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	tg	Интихоби ҷорӣ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	th	การเลือกปัจจุบัน				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ti-ER	ህሉው ምርጫ 				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	tr	Geçerli seçim				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ts	Ku hlawula ka sweswi				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	uk	Поточний вибір				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ur-IN	حالیہ انتخاب 				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	uz	Joriy tanlov				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	ve	Khetho ino				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	vi	Vùng chọn hiện tái				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	xh	Ukukhetha kwangoku				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	zh-CN	当前选定内容				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	zh-TW	目前的選取				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_CURRENT_text				0	zu	Lokho okukhethile manje				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	af	Hele dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ar	المستند بالكامل				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	as-IN	সম্পূৰ্ণ ডকুমেন্ট				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	be-BY	Дакумент цалкам				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	bg	Целият документ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	br	Teul a-bezh				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	bs	Cijeli dokumenat				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ca	Tot el document				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	cs	Celý dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	cy	Dogfen gyfan				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	da	Hele dokumentet				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	de	Gesamtes Dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	dz	ཡིག་ཆ་ཧྲིལ་བུམ།				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	el	Ολόκληρο το έγγραφο				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	en-GB	Whole document				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	en-ZA	Whole document				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	eo	Tuta dokumento				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	es	Documento completo				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	et	Terve dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	fa	سراسر نوشتار				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	fi	Koko asiakirja				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	fr	Document entier				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ga	An cháipéis iomlán				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	gl	Documento completo				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	gu	પુરૂ દસ્તાવેજ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	gu-IN	પુરૂ દસ્તાવેજ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	he	כל המסמך				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	hi-IN	पूर्ण दस्तावेज				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	hr	Cijeli dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	hu	Teljes dokumentum				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	it	Intero documento				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ja	ドキュメント全体				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ka	სრული დოკუმენტი				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	km	ឯកសារ​ទាំងមូល				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ko	전체 문서				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ku	Li hemû belgeyê				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	lt	Visas dokumentas				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	mk	Цел документ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ml-IN	മുഴുവന് ഡോക്കുമെന്റും				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	mr-IN	संपूर्ण दस्तऍवज				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	nb	Hele dokumentet				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ne	संपूर्ण कागजात				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	nl	Heel document				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	nn	Heile dokumentet				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	nr	Idokhumente yoke				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ns	Tokumente ka moka				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	or-IN	ସଂପୂର୍ଣ୍ଣ ଦଲିଲ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	pa-IN	ਪੂਰਾ ਦਸਤਾਵੇਜ਼				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	pl	Cały dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	pt	Todo o documento				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	pt-BR	Documento inteiro				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ru	Весь документ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	rw	Inyandiko yose				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	sh	Ceo dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	sk	Celý dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	sl	Celoten dokument				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	sr	Цео документ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ss	Idokhumenti yonkhe				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	st	Tokomane kaofela				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	sv	Hela dokumentet				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	sw-TZ	Whole document				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ta	முழு ஆவணம்				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ta-IN	முழு ஆவணம்				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	te-IN	పత్రమంత				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	tg	Тамоми ҳуҷҷат				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	th	ทั้งเอกสาร				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ti-ER	ምሉእ ሰነድ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	tr	Tüm belge				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ts	Dokumente hinkwayo				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	uk	Весь документ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ur-IN	پوری دستاویز				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	uz	Butun hujjat				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	ve	Ḽiṅwalo ḽoṱhe				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	vi	Toàn tài liệu				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	xh	Uxwebhu luphelele				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	zh-CN	整篇文档				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	zh-TW	整份文件				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FL_DOC_text				0	zu	Lonke ifayela				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	af	Karakters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ar	محارف:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	as-IN	আখৰবোৰ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	be-BY	Знакі:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	bg	Знаци:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	br	Arouezennoù :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	bs	Znakovi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ca	Caràcters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	cs	Znaky:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	cy	Nodau:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	da	Tegn:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	de	Zeichen:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	dz	ཡིག་འབྲུ་ཚུ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	el	Χαρακτήρες:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	en-GB	Characters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	en-ZA	Characters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	eo	Signoj:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	es	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	et	Märke:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	fa	نویسه‌ها:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	fi	Merkit:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	fr	Caractères :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ga	Carachtair:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	gl	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	gu	અક્ષરો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	gu-IN	અક્ષરો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	he	תווים:‏				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	hi-IN	संप्रतीक:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	hr	Znakova:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	hu	Karakterek száma:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	it	Caratteri:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ja	文字数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ka	ასოები:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	km	តួអក្សរ ៖				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ko	문자:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ku	Tîp:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	lt	Rašmenys:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	mk	Знаци:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ml-IN	അക്ഷരങ്ങള്				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	mr-IN	अक्षरे:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nb	Tegn:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ne	क्यारेक्टरहरू:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nl	Tekens:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nn	Teikn:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	nr	Amakharektha:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ns	Ditlhaka:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	or-IN	ଅକ୍ଷରଗୁଡିକ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pa-IN	ਅੱਖਰ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pl	Znaki:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pt	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	pt-BR	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ru	Символы:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	rw	Inyuguti:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sh	Znakova:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sk	Znaky:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sl	Znaki:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sr	Знакова:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ss	Tinhlavu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	st	Ditlhaku:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sv	Tecken:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	sw-TZ	Viwambo:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ta	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ta-IN	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	te-IN	అక్షరములు:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	tg	Рамзҳо:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	th	อักขระ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ti-ER	ፊደላት				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	tn	Didiragatsi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	tr	Karakter:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ts	Swivumbeko:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	uk	Символи:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	uz	Belgilar:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	ve	Zwiteṅwa:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	vi	Ký tự :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	xh	Imibhalo enjengoonobumba:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	zh-CN	字符数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	zh-TW	字元：				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTCHARACTER_label				0	zu	Izimpawu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	af	Woorde:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ar	كلمات:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	as-IN	শব্দবোৰ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	be-BY	Словы:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	bg	Думи:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	br	Gerioù :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	bs	Riječi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ca	Paraules:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	cs	Slova:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	cy	Geiriau:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	da	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	de	Wörter:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	dz	མིང་ཚིག་ཚུ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	el	Λέξεις:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	en-GB	Words:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	en-ZA	Words:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	eo	Vortoj:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	es	Palabras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	et	Sõnu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	fa	کلمات:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	fi	Sanat:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	fr	Mots :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ga	Focail:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	gl	Palabras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	gu	શબ્દો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	gu-IN	શબ્દો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	he	מילים				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	hi-IN	शब्द:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	hr	Riječi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	hu	Szavak száma:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	it	Parole:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ja	単語数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ka	სიტყვები:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	km	ពាក្យ ៖				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ko	단어:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ku	Peyv:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	lt	Žodžiai				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	mk	Зборови:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ml-IN	വാക്കുകള്				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	mr-IN	शब्द:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nb	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ne	शब्दहरू:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nl	Woorden:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nn	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	nr	Amagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ns	Mantšu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	or-IN	ଶବ୍ଦଗୁଡିକ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pa-IN	ਸ਼ਬਦ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pl	Wyrazy:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pt	Palavras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	pt-BR	Palavras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ru	Слова:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	rw	Amagambo:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sh	Reči:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sk	Slová:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sl	Število besed:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sr	Речи:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ss	Emagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	st	Mantswe:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sv	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	sw-TZ	Words:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ta	சொற்கள்:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ta-IN	சொற்கள்:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	te-IN	పదాలు:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	tg	Калимаҳо:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	th	คำ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ti-ER	ቃላት				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	tr	Kelime:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ts	Marito:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	uk	Слова				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	uz	Soʻzlar:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	ve	Maipfi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	vi	Từ :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	xh	Amagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	zh-CN	字数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	zh-TW	文字：				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_CURRENTWORD_label				0	zu	Amagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	af	Karakters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ar	محارف:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	as-IN	আখৰবোৰ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	be-BY	Знакі:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	bg	Знаци:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	br	Arouezennoù :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	bs	Znakovi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ca	Caràcters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	cs	Znaky:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	cy	Nodau:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	da	Tegn:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	de	Zeichen:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	dz	ཡིག་འབྲུ་ཚུ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	el	Χαρακτήρες:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	en-GB	Characters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	en-ZA	Characters:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	eo	Signoj:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	es	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	et	Märke:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	fa	نویسه‌ها:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	fi	Merkit:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	fr	Caractères :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ga	Carachtair:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	gl	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	gu	અક્ષરો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	gu-IN	અક્ષરો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	he	תווים:‏				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	hi-IN	संप्रतीक:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	hr	Znakova:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	hu	Karakterek száma:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	it	Caratteri:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ja	文字数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ka	ასოები:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	km	តួអក្សរ ៖				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ko	문자:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ku	Tîp:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	lt	Rašmenys:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	mk	Знаци:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ml-IN	അക്ഷരങ്ങള്				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	mr-IN	अक्षरे:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nb	Tegn:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ne	क्यारेक्टरहरू:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nl	Tekens:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nn	Teikn:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	nr	Amakharektha:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ns	Ditlhaka:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	or-IN	ଅକ୍ଷରଗୁଡିକ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pa-IN	ਅੱਖਰ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pl	Znaki:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pt	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	pt-BR	Caracteres:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ru	Символы:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	rw	Inyuguti:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sh	Znakova:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sk	Znaky:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sl	Znaki:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sr	Знакова:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ss	Tinhlavu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	st	Ditlhaku:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sv	Tecken:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	sw-TZ	Viwambo:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ta	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ta-IN	எழுத்துக்கள்:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	te-IN	అక్షరములు:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	tg	Рамзҳо:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	th	อักขระ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ti-ER	ፊደላት				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	tn	Didiragatsi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	tr	Karakter:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ts	Swivumbeko:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	uk	Символи:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	uz	Belgilar:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	ve	Zwiteṅwa:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	vi	Ký tự :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	xh	Imibhalo enjengoonobumba:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	zh-CN	字符数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	zh-TW	字元：				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCCHARACTER_label				0	zu	Izimpawu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	af	Woorde:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ar	كلمات:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	as-IN	শব্দবোৰ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	be-BY	Словы:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	bg	Думи:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	br	Gerioù :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	bs	Riječi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ca	Paraules:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	cs	Slova:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	cy	Geiriau:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	da	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	de	Wörter:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	dz	མིང་ཚིག་ཚུ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	el	Λέξεις:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	en-GB	Words:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	en-ZA	Words:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	eo	Vortoj:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	es	Palabras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	et	Sõnu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	fa	کلمات:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	fi	Sanat:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	fr	Mots :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ga	Focail:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	gl	Palabras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	gu	શબ્દો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	gu-IN	શબ્દો:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	he	מילים				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	hi-IN	शब्द:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	hr	Riječi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	hu	Szavak száma:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	it	Parole:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ja	単語数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ka	სიტყვები:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	km	ពាក្យ ៖				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ko	단어:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ku	Peyv:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	lt	Žodžiai				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	mk	Зборови:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ml-IN	വാക്കുകള്				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	mr-IN	शब्द:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nb	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ne	शब्दहरू:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nl	Woorden:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nn	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	nr	Amagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ns	Mantšu:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	or-IN	ଶବ୍ଦଗୁଡିକ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pa-IN	ਸ਼ਬਦ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pl	Wyrazy:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pt	Palavras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	pt-BR	Palavras:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ru	Слова:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	rw	Amagambo:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sh	Reči:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sk	Slová:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sl	Število besed:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sr	Речи:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ss	Emagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	st	Mantswe:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sv	Ord:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	sw-TZ	Words:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ta	சொற்கள்				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ta-IN	சொற்கள்				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	te-IN	పదాలు:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	tg	Калимаҳо:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	th	คำ:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ti-ER	ቃላት				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	tr	Kelime:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ts	Marito:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	uk	Слова				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ur-IN	الفاظ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	uz	Soʻzlar:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	ve	Maipfi:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	vi	Từ :				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	xh	Amagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	zh-CN	字数:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	zh-TW	文字：				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	FT_DOCWORD_label				0	zu	Amagama:				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	af	Woordtelling				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ar	عدد الكلمات				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	as-IN	শব্দ গণনা 				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	be-BY	Колькасць словаў				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	bg	Брой думи				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	br	Stadegoù				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	bs	Broj riječi				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ca	Recompte de paraules				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	cs	Počet slov				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	cy	Cyfrif Geiriau				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	da	Ordoptælling				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	de	Wortanzahl				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	dz	མིང་ཚིག་གྱངས་ཁ་རྐྱབས།				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	el	Αρίθμηση λέξεων				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	en-GB	Word Count				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	en-ZA	Word Count				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	eo	Vortnombro				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	es	Contar palabras				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	et	Sõnade loendamine				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	fa	تعداد کلمات				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	fi	Sanamäärä				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	fr	Statistiques				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ga	Líon na bhFocal				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	gl	Contaxe de palabras!				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	gu	શબ્દની ગણતરી				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	gu-IN	શબ્દની ગણતરી				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	he	סה‏"כ מילים				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	hi-IN	शब्द गणना				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	hr	Brojanje riječi				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	hu	Szavak száma				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	it	Conteggio parole				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ja	ワードカウント				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ka	სიტყვათა რაოდენობა				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	km	ចំនួន​ពាក្យ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ko	단어 개수				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ku	Hijmartina Peyvan				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	lt	Statistika				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	mk	Броење зборови				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ml-IN	വാക്കുകളുടെ എണ്ണം				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	mr-IN	शब्द गणना				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nb	Ordtelling				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ne	शब्द गणना				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nl	Woorden tellen				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nn	Ordteljing				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	nr	Bala Amagama				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ns	Palo ya Mantšu				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	or-IN	ଶବ୍ଦ ଗଣନା				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pa-IN	ਸ਼ਬਦ ਗਿਣਤੀ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pl	Licznik słów				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pt	Contar palavras				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	pt-BR	Contagem de palavras				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ru	Количество слов				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	rw	Kubara amagambo				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sh	Broj reči				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sk	Počet slov				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sl	Štetje besed				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sr	Број речи				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ss	Kubalwa kwemagama				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	st	Palo ya Mantswe				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sv	Räkna ord				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	sw-TZ	Word Count				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ta	சொல் எண்ணிக்கை				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ta-IN	சொல் எண்ணிக்கை				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	te-IN	పదాల లెక్క				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	tg	Шумораи калимаҳо				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	th	นับคำ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ti-ER	ምቑጻር ቃላት				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	tr	Kelime Sayısı				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ts	Ku hlayela marito				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	uk	Кількість слів				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ur-IN	  الفاظ شمار				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	uz	Soʻzlar soni				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	ve	Mbalo ya Maipfi				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	vi	Tổng số từ				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	xh	Ubalo Lwamagama				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	zh-CN	字数统计				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	zh-TW	字數				2002-02-02 02:02:02
++layout	sw\uiconfig\layout\wordcount.xml	0	layout	DLG_WORDCOUNT_title				0	zu	Inani Lamagama				2002-02-02 02:02:02
+Index: sw/uiconfig/layout/makefile.mk
+===================================================================
+RCS file: sw/uiconfig/layout/makefile.mk
+diff -N sw/uiconfig/layout/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sw/uiconfig/layout/makefile.mk	31 Mar 2008 15:01:30 -0000	1.1.2.4
+@@ -0,0 +1,54 @@
++#*************************************************************************
++#
++#   OpenOffice.org - a multi-platform office productivity suite
++#
++#   $RCSfile$
++#
++#   $Revision$
++#
++#   last change: $Author$ $Date$
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++#
++#
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++#
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++#
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
++#     MA  02110-1301  USA
++#
++#*************************************************************************
++
++PRJ=../..
++PRJNAME=sw
++TARGET=layout
++
++.INCLUDE : settings.mk
++
++.IF "$(ENABLE_LAYOUT)" == "TRUE"
++
++all: ALLTAR
++
++XML_FILES=wordcount.xml
++
++.INCLUDE : layout.mk
++
++.ELSE # ENABLE_LAYOUT != TRUE
++all .PHONY:
++.ENDIF # ENABLE_LAYOUT != TRUE
++
++.INCLUDE :  target.mk
+Index: sw/uiconfig/layout/wordcount.xml
+===================================================================
+RCS file: sw/uiconfig/layout/wordcount.xml
+diff -N sw/uiconfig/layout/wordcount.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sw/uiconfig/layout/wordcount.xml	4 Apr 2008 09:14:08 -0000	1.1.2.2
+@@ -0,0 +1,50 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- This is a template.  i18n translation is not performed in-place;
++     i18n translated xml files are generated from this template by
++     transex3/layout/tralay.  !-->
++
++<modaldialog xmlns="http://openoffice.org/2007/layout"
++             xmlns:cnt="http://openoffice.org/2007/layout/container"
++             help-id="HID_DLG_WORDCOUNT"
++             id="DLG_WORDCOUNT"
++             sizeable="true" moveable="true" optimumsize="true"
++             has_border="true" sv-look="true" _title="Word Count">
++    <vbox border="5" spacing="5">
++        <fixedline id="FL_CURRENT" _text="Current selection"/>
++	<hbox>
++	    <vbox cnt:padding="13" spacing="5">
++		<hbox>
++		    <fixedtext id="FT_CURRENTWORD" _label="Words:"/>
++		    <flow cnt:padding="60"/>
++		    <fixedtext id="FI_CURRENTWORD" right="true" _label="0"/>
++		</hbox>
++		<hbox>
++		    <fixedtext id="FT_CURRENTCHARACTER" _label="Characters:"/>
++		    <flow cnt:padding="60"/>
++		    <fixedtext id="FI_CURRENTCHARACTER" right="true" _label="00"/>
++		</hbox>
++	    </vbox>
++	</hbox>
++	<!-- if we could do cnt:cnt:padding="-13" here, we would not have to close
++	     and reope the hbox/vbox thing !-->
++        <fixedline id="FL_DOC" _text="Whole document"/>
++	<hbox>
++	    <vbox cnt:padding="13" spacing="5">
++		<hbox>
++		    <fixedtext id="FT_DOCWORD" _label="Words:"/>
++		    <fixedtext id="FI_DOCWORD" right="true" _label="000"/>
++		</hbox>
++		<hbox>
++		    <fixedtext id="FT_DOCCHARACTER" _label="Characters:"/>
++		    <fixedtext id="FI_DOCCHARACTER" right="true" _label="0000"/>
++		</hbox>
++	    </vbox>
++	</hbox>
++        <fixedline cnt:padding="1" id="FL_BOTTOM"/>
++	<dialogbuttonhbox spacing="5">
++            <flow/>
++            <okbutton id="PB_OK"/>
++            <helpbutton id="PB_HELP"/>
++        </dialogbuttonhbox>
++    </vbox>
++</modaldialog>
+cvs diff: Diffing sw/uiconfig/sglobal
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/de
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/es
+cvs diff: Diffing sw/uiconfig/sglobal/accelerator/fr
+cvs diff: Diffing sw/uiconfig/sglobal/menubar
+cvs diff: Diffing sw/uiconfig/sglobal/statusbar
+cvs diff: Diffing sw/uiconfig/sglobal/toolbar
+cvs diff: Diffing sw/uiconfig/sweb
+cvs diff: Diffing sw/uiconfig/sweb/accelerator
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/de
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/es
+cvs diff: Diffing sw/uiconfig/sweb/accelerator/fr
+cvs diff: Diffing sw/uiconfig/sweb/menubar
+cvs diff: Diffing sw/uiconfig/sweb/statusbar
+cvs diff: Diffing sw/uiconfig/sweb/toolbar
+cvs diff: Diffing sw/uiconfig/swform
+cvs diff: Diffing sw/uiconfig/swform/accelerator
+cvs diff: Diffing sw/uiconfig/swform/accelerator/de
+cvs diff: Diffing sw/uiconfig/swform/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swform/accelerator/es
+cvs diff: Diffing sw/uiconfig/swform/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swform/menubar
+cvs diff: Diffing sw/uiconfig/swform/statusbar
+cvs diff: Diffing sw/uiconfig/swform/toolbar
+cvs diff: Diffing sw/uiconfig/swreport
+cvs diff: Diffing sw/uiconfig/swreport/accelerator
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/de
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/es
+cvs diff: Diffing sw/uiconfig/swreport/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swreport/menubar
+cvs diff: Diffing sw/uiconfig/swreport/statusbar
+cvs diff: Diffing sw/uiconfig/swreport/toolbar
+cvs diff: Diffing sw/uiconfig/swriter
+cvs diff: Diffing sw/uiconfig/swriter/accelerator
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/de
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/es
+cvs diff: Diffing sw/uiconfig/swriter/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swriter/menubar
+cvs diff: Diffing sw/uiconfig/swriter/statusbar
+cvs diff: Diffing sw/uiconfig/swriter/toolbar
+cvs diff: Diffing sw/uiconfig/swxform
+cvs diff: Diffing sw/uiconfig/swxform/accelerator
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/de
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/en-GB
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/en-US
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/es
+cvs diff: Diffing sw/uiconfig/swxform/accelerator/fr
+cvs diff: Diffing sw/uiconfig/swxform/menubar
+cvs diff: Diffing sw/uiconfig/swxform/statusbar
+cvs diff: Diffing sw/uiconfig/swxform/toolbar
+cvs diff: Diffing sw/util
+Index: sw/util/makefile.mk
+===================================================================
+RCS file: /cvs/sw/sw/util/makefile.mk,v
+retrieving revision 1.66
+retrieving revision 1.66.18.2
+diff -p -u -u -p -b -w -B -r1.66 -r1.66.18.2
+--- sw/util/makefile.mk	12 Mar 2008 13:00:47 -0000	1.66
++++ sw/util/makefile.mk	28 Mar 2008 10:18:04 -0000	1.66.18.2
+@@ -199,11 +199,6 @@ SHL3STDLIBS= \
+             $(SALLIB) \
+ 			$(SOTLIB)
+ 
+-.IF "$(ENABLE_LAYOUT)" == "TRUE"
+-LINKFLAGS+= -L../$(PRJ)/layout/$(INPATH)/lib
+-SHL3STDLIBS += -ltklayout$(UPD)$(DLLPOSTFIX)
+-.ENDIF # ENABLE_LAYOUT == TRUE
+-
+ SHL3LIBS=   $(SLB)$/swui.lib
+ LIB3TARGET = $(SLB)$/swui.lib
+ 
+cvs diff: Diffing sw/util/defs
+cvs diff: Diffing sw/xml
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/ooo80816.selinux.bridges.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/ooo80816.selinux.bridges.diff
@@ -0,0 +1,567 @@
+Index: inc/bridges/cpp_uno/shared/vtablefactory.hxx
+===================================================================
+RCS file: /cvs/udk/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx,v
+retrieving revision 1.5
+diff -u -r1.5 vtablefactory.hxx
+--- bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx	2 May 2006 11:59:11 -0000	1.5
++++ bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx	17 May 2006 10:57:45 -0000
+@@ -60,11 +60,21 @@
+             skipping an RTTI pointer, see mapBlockToVtable).  Also, the block
+             contains any generated code snippets, after the vtable itself.
+          */
+-        void * start;
++	int fd;
++        void * writep;
++        void * execp;
++	int * ref;
+ 
+         /** The size of the raw vtable block, in bytes.
+          */
+         sal_Size size;
++	Block(sal_Size nSize);
++	Block(const Block &rOther);
++	~Block();
++	Block();
++	Block& operator=(const Block& rOther);
++	void swapwriteandexec();
++	void release();
+     };
+ 
+     /** The vtable structure corresponding to an interface type.
+@@ -110,8 +120,6 @@
+     VtableFactory(VtableFactory &); // not implemented
+     void operator =(VtableFactory); // not implemented
+ 
+-    void freeBlock(Block const & block) const;
+-
+     void createVtables(
+         GuardedBlocks & blocks, BaseOffset const & baseOffset,
+         typelib_InterfaceTypeDescription * type, bool includePrimary) const;
+@@ -162,7 +170,7 @@
+         @return  a pointer to the remaining code snippet area
+      */
+     static unsigned char * addLocalFunctions(
+-        void ** slots, unsigned char * code,
++        void ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff,
+         typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+         sal_Int32 functionCount, sal_Int32 vtableOffset);
+ 
+@@ -181,8 +189,6 @@
+ 
+     osl::Mutex m_mutex;
+     Map m_map;
+-
+-    rtl_arena_type * m_arena;
+ };
+ 
+ } } }
+Index: source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx,v
+retrieving revision 1.10
+diff -u -r1.10 cpp2uno.cxx
+--- bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx	2 May 2006 12:01:33 -0000	1.10
++++ bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx	17 May 2006 10:57:47 -0000
+@@ -361,7 +361,7 @@
+ int const codeSnippetSize = 16;
+ 
+ unsigned char * codeSnippet(
+-    unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
++    unsigned char * code, sal_PtrDiff writetoexecdiff, sal_Int32 functionIndex, sal_Int32 vtableOffset,
+     typelib_TypeClass returnTypeClass)
+ {
+     if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) {
+@@ -407,7 +407,7 @@
+     // jmp privateSnippetExecutor:
+     *p++ = 0xE9;
+     *reinterpret_cast< sal_Int32 * >(p)
+-        = ((unsigned char *) exec) - p - sizeof (sal_Int32);
++        = ((unsigned char *) exec) - p - sizeof (sal_Int32) - writetoexecdiff;
+     p += sizeof (sal_Int32);
+     OSL_ASSERT(p - code <= codeSnippetSize);
+     return code + codeSnippetSize;
+@@ -434,7 +434,7 @@
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    void ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
+@@ -445,9 +445,9 @@
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+-                code, functionOffset++, vtableOffset,
++                code, writetoexecdiff, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
+                     member)->pAttributeTypeRef->eTypeClass);
+             // Setter:
+@@ -455,17 +455,17 @@
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                *slots++ = code + writetoexecdiff;
+                 code = codeSnippet(
+-                    code, functionOffset++, vtableOffset,
++                    code, writetoexecdiff, functionOffset++, vtableOffset,
+                     typelib_TypeClass_VOID);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+-                code, functionOffset++, vtableOffset,
++                code, writetoexecdiff, functionOffset++, vtableOffset,
+                 reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
+                     member)->pReturnTypeRef->eTypeClass);
+             break;
+Index: source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx,v
+retrieving revision 1.8
+diff -u -r1.8 cpp2uno.cxx
+--- bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx	2 May 2006 12:02:15 -0000	1.8
++++ bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx	17 May 2006 10:57:47 -0000
+@@ -676,7 +676,7 @@
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    void ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
+@@ -692,7 +692,7 @@
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -705,13 +705,13 @@
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                *slots++ = code + writetoexecdiff;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+Index: source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx,v
+retrieving revision 1.5
+diff -u -r1.5 cpp2uno.cxx
+--- bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx	2 May 2006 12:03:36 -0000	1.5
++++ bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx	17 May 2006 10:57:48 -0000
+@@ -487,7 +487,7 @@
+ //==================================================================================================
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-	void ** slots, unsigned char * code,
++	void ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, 
+ 	typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
+ 	sal_Int32 functionCount, sal_Int32 nVtableOffset )
+ {
+@@ -504,14 +504,14 @@
+ 				reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD );
+ 
+ 			// get method
+-			*slots++ = code;
++			*slots++ = code + writetoexecdiff;
+ 			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+ 								x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) );
+ 
+ 			if ( ! pAttrTD->bReadOnly )
+ 			{
+ 				// set method
+-				*slots++ = code;
++				*slots++ = code + writetoexecdiff;
+ 				code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false );
+ 			}
+ 		}
+@@ -520,7 +520,7 @@
+ 			typelib_InterfaceMethodTypeDescription *pMethodTD =
+ 				reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD );
+ 			
+-			*slots++ = code;
++			*slots++ = code + writetoexecdiff;
+ 			code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
+ 								x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) );
+ 		}
+Index: source/cpp_uno/shared/cppinterfaceproxy.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx,v
+retrieving revision 1.4
+diff -u -r1.4 cppinterfaceproxy.cxx
+--- bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx	2 May 2006 12:07:01 -0000	1.4
++++ bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx	17 May 2006 10:57:48 -0000
+@@ -89,7 +89,7 @@
+         pMemory.release());
+     for (sal_Int32 i = 0; i < aVtables.count; ++i) {
+         pProxy->vtables[i] = VtableFactory::mapBlockToVtable(
+-            aVtables.blocks[i].start);
++            aVtables.blocks[i].writep);
+     }
+     return castProxyToInterface(pProxy);
+ }
+Index: source/cpp_uno/shared/vtablefactory.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/shared/vtablefactory.cxx,v
+retrieving revision 1.5
+diff -u -r1.5 vtablefactory.cxx
+--- bridges/source/cpp_uno/shared/vtablefactory.cxx	2 May 2006 12:07:18 -0000	1.5
++++ bridges/source/cpp_uno/shared/vtablefactory.cxx	17 May 2006 10:57:48 -0000
+@@ -41,6 +41,9 @@
+ 
+ #include "osl/diagnose.h"
+ #include "osl/mutex.hxx"
++#include "osl/thread.h"
++#include "osl/security.hxx"
++#include "osl/file.hxx"
+ #include "rtl/alloc.h"
+ #include "rtl/ustring.hxx"
+ #include "sal/types.h"
+@@ -53,6 +56,7 @@
+ #if defined SAL_UNX
+ #include <unistd.h>
+ #include <sys/mman.h>
++#include <stdio.h>
+ #elif defined SAL_W32
+ #define WIN32_LEAN_AND_MEAN
+ #pragma warning(push,1) // disable warnings within system headers
+@@ -64,9 +68,12 @@
+ 
+ using bridges::cpp_uno::shared::VtableFactory;
+ 
+-namespace {
++VtableFactory::Block::Block() : fd(-1), writep(0), execp(0), ref(0), size(0)
++{
++}
+ 
+-extern "C" void * SAL_CALL allocExec(rtl_arena_type *, sal_Size * size) {
++VtableFactory::Block::Block(sal_Size nSize) : fd(-1), writep(0), execp(0), ref(0), size(0)
++{
+     sal_Size pagesize;
+ #if defined SAL_UNX
+ #if defined FREEBSD || defined NETBSD
+@@ -79,40 +86,112 @@
+     GetSystemInfo(&info);
+     pagesize = info.dwPageSize;
+ #endif
+-    sal_Size n = (*size + (pagesize - 1)) & ~(pagesize - 1);
+-    void * p;
++    sal_Size n = (nSize + (pagesize - 1)) & ~(pagesize - 1);
+ #if defined SAL_UNX
+-    p = mmap(
+-        0, n, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1,
+-        0);
+-    if (p == MAP_FAILED) {
+-        p = 0;
+-    }
+-	else if (mprotect (static_cast<char*>(p), n, PROT_READ | PROT_WRITE | PROT_EXEC) == -1)
+-	{
+-		munmap (static_cast<char*>(p), n);
+-		p = 0;
+-	}
++    osl::Security aSecurity;
++    rtl::OUString strDirectory;
++    rtl::OUString strURLDirectory;
++    if (aSecurity.getHomeDir(strURLDirectory))
++        osl::File::getSystemPathFromFileURL(strURLDirectory, strDirectory);
++
++    for (int i = strDirectory.getLength() == 0 ? 1 : 0; i < 2; ++i)
++    {
++        if (!strDirectory.getLength())
++            strDirectory = rtl::OUString::createFromAscii("/tmp");
++
++        strDirectory += rtl::OUString::createFromAscii("/.execoooXXXXXX");
++        rtl::OString aTmpName = rtl::OUStringToOString(strDirectory, osl_getThreadTextEncoding());
++        char *tmpfname = new char[aTmpName.getLength()+1];
++        strncpy(tmpfname, aTmpName.getStr(), aTmpName.getLength()+1);
++        if ((fd = mkstemp(tmpfname)) == -1)
++          perror("creation of executable memory area failed");
++        if (fd == -1)
++        {
++            delete[] tmpfname;
++            break;
++        }
++        unlink(tmpfname);
++        delete[] tmpfname;
++        ftruncate(fd, nSize);
++        writep = mmap(NULL, n, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
++        if (writep == MAP_FAILED) {
++            writep = 0;
++        }
++        execp = mmap(NULL, n, PROT_READ | PROT_EXEC, MAP_SHARED, fd, 0);
++        if (execp == MAP_FAILED) {
++           execp = 0;
++        }
++
++    	if (writep && execp && fd != -1)
++            break;
++
++        if (writep) munmap(writep, size);
++	writep = 0;
++        if (execp) munmap(execp, size);
++	execp = 0;
++        if (fd != -1) close(fd);
++	fd = -1;
++        strDirectory = rtl::OUString();
++    }
+ #elif defined SAL_W32
+     p = VirtualAlloc(0, n, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
+ #endif
+-    if (p != 0) {
+-        *size = n;
++    if (writep || execp || fd != -1) {
++        size = n;
++      ref = new int(1);
++    }
++    if (!writep || !execp || fd == -1)
++    {
++	fprintf(stderr, "FATAL ERROR, could not mmap a file for executable memory either in home dir or in /tmp\n");
++	fprintf(stderr, "Cannot continue, perhaps examine your mount options for those directories, or selinux\n");
++	exit(-1);
+     }
+-    return p;
+ }
+ 
+-extern "C" void SAL_CALL freeExec(
+-    rtl_arena_type *, void * address, sal_Size size)
++void VtableFactory::Block::release()
+ {
++    if (ref)
++    {
++        (*ref)--;
++        if (*ref == 0)
++        {
+ #if defined SAL_UNX
+-    munmap(static_cast< char * >(address), size);
++            if (writep) munmap(writep, size);
++            if (execp) munmap(execp, size);
++            if (fd != -1) close(fd);
+ #elif defined SAL_W32
+-    (void) size; // unused
+-    VirtualFree(address, 0, MEM_RELEASE);
++            VirtualFree(start, 0, MEM_RELEASE);
+ #endif
++          delete ref;
++        }
++    }
+ }
+ 
++VtableFactory::Block::~Block()
++{
++    release();
++}
++
++VtableFactory::Block::Block(const Block& rOther) : fd(rOther.fd), writep(rOther.writep), execp(rOther.execp), ref(rOther.ref), size(rOther.size)
++{
++    if (ref) (*ref)++;
++}
++
++VtableFactory::Block& VtableFactory::Block::operator=(const VtableFactory::Block& rOther)
++{
++    release();
++    fd = rOther.fd;
++    writep = rOther.writep;
++    execp = rOther.execp;
++    size = rOther.size;
++    ref = rOther.ref;
++    if (ref) (*ref)++;
++    return *this;
++}
++
++void VtableFactory::Block::swapwriteandexec()
++{
++    ::std::swap(writep, execp);
+ }
+ 
+ class VtableFactory::GuardedBlocks: public std::vector< Block > {
+@@ -133,11 +213,6 @@
+ };
+ 
+ VtableFactory::GuardedBlocks::~GuardedBlocks() {
+-    if (m_guarded) {
+-        for (iterator i(begin()); i != end(); ++i) {
+-            m_factory.freeBlock(*i);
+-        }
+-    }
+ }
+ 
+ class VtableFactory::BaseOffset {
+@@ -172,28 +247,17 @@
+     return offset;
+ }
+ 
+-VtableFactory::VtableFactory(): m_arena(
+-    rtl_arena_create(
+-        "bridges::cpp_uno::shared::VtableFactory",
+-        sizeof (void *), // to satisfy alignment requirements
+-        0, reinterpret_cast< rtl_arena_type * >(-1), allocExec, freeExec, 0))
++VtableFactory::VtableFactory()
+ {
+-    if (m_arena == 0) {
+-        throw std::bad_alloc();
+-    }
+ }
+ 
+ VtableFactory::~VtableFactory() {
+     {
+         osl::MutexGuard guard(m_mutex);
+         for (Map::iterator i(m_map.begin()); i != m_map.end(); ++i) {
+-            for (sal_Int32 j = 0; j < i->second.count; ++j) {
+-                freeBlock(i->second.blocks[j]);
+-            }
+             delete[] i->second.blocks;
+         }
+     }
+-    rtl_arena_destroy(m_arena);
+ }
+ 
+ VtableFactory::Vtables VtableFactory::getVtables(
+@@ -221,10 +285,6 @@
+     return i->second;
+ }
+ 
+-void VtableFactory::freeBlock(Block const & block) const {
+-    rtl_arena_free(m_arena, block.start, block.size);
+-}
+-
+ void VtableFactory::createVtables(
+     GuardedBlocks & blocks, BaseOffset const & baseOffset,
+     typelib_InterfaceTypeDescription * type, bool includePrimary) const
+@@ -232,17 +292,16 @@
+     if (includePrimary) {
+         sal_Int32 slotCount
+             = bridges::cpp_uno::shared::getPrimaryFunctions(type);
+-        Block block;
+-        block.size = getBlockSize(slotCount);
+-        block.start = rtl_arena_alloc(m_arena, &block.size);
+-        if (block.start == 0) {
++        Block block(getBlockSize(slotCount));
++        if (block.writep == 0 || block.execp == 0) {
+             throw std::bad_alloc();
+         }
+         try {
+-            void ** slots = initializeBlock(block.start) + slotCount;
++            void ** slots = initializeBlock(block.writep) + slotCount;
+             unsigned char * codeBegin =
+                 reinterpret_cast< unsigned char * >(slots);
+             unsigned char * code = codeBegin;
++	    sal_PtrDiff writetoexecdiff = sal_IntPtr(block.execp) - sal_IntPtr(block.writep);
+             sal_Int32 vtableOffset = blocks.size() * sizeof (void **);
+             for (typelib_InterfaceTypeDescription const * type2 = type;
+                  type2 != 0; type2 = type2->pBaseTypeDescription)
+@@ -251,14 +310,14 @@
+                     = bridges::cpp_uno::shared::getLocalFunctions(type2);
+                 slots -= functionCount;
+                 code = addLocalFunctions(
+-                    slots, code, type2,
++                    slots, code, writetoexecdiff, type2,
+                     baseOffset.getFunctionOffset(type2->aBase.pTypeName),
+                     functionCount, vtableOffset);
+             }
+             flushCode(codeBegin, code);
++	    block.swapwriteandexec();
+             blocks.push_back(block);
+         } catch (...) {
+-            freeBlock(block);
+             throw;
+         }
+     }
+Index: source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
+===================================================================
+RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx,v
+retrieving revision 1.12
+diff -u -r1.12 cpp2uno.cxx
+--- bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx	22 Nov 2006 11:07:20 -0000	1.12
++++ bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx	5 Jun 2007 12:38:03 -0000
+@@ -512,7 +512,7 @@
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code,
++    void ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, 
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 /* functionCount */, sal_Int32 vTableOffset)
+ {
+@@ -523,7 +523,7 @@
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+                 code, functionOffset++, vTableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -535,13 +535,13 @@
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                *slots++ = code + writetoexecdiff;
+                 code = codeSnippet(code, functionOffset++, vTableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+                 code, functionOffset++, vTableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+--- bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx	2007-06-05 13:55:15.000000000 +0100
++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx	2007-06-05 13:56:12.000000000 +0100
+@@ -666,7 +666,7 @@
+ }
+ 
+ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
+-    void ** slots, unsigned char * code, 
++    void ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff,
+     typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
+     sal_Int32 functionCount, sal_Int32 vtableOffset)
+ {
+@@ -682,7 +682,7 @@
+         switch (member->eTypeClass) {
+         case typelib_TypeClass_INTERFACE_ATTRIBUTE:
+             // Getter:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
+@@ -695,13 +695,13 @@
+                 typelib_InterfaceAttributeTypeDescription * >(
+                     member)->bReadOnly)
+             {
+-                *slots++ = code;
++                *slots++ = code + writetoexecdiff;
+                 code = codeSnippet(code, functionOffset++, vtableOffset, true);
+             }
+             break;
+ 
+         case typelib_TypeClass_INTERFACE_METHOD:
+-            *slots++ = code;
++            *slots++ = code + writetoexecdiff;
+             code = codeSnippet(
+                 code, functionOffset++, vtableOffset,
+                 bridges::cpp_uno::shared::isSimpleType(
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/novell-palette.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/novell-palette.diff
@@ -0,0 +1,25 @@
+--- extras/source/palettes/standard.soc.old1	2001-03-16 14:44:46.000000000 +0100
++++ extras/source/palettes/standard.soc	2006-01-30 15:14:54.000000000 +0100
+@@ -88,10 +88,18 @@
+  <draw:color draw:name="Dark violet" draw:color="#660066"/>
+  <draw:color draw:name="Salmon" draw:color="#ff8080"/>
+  <draw:color draw:name="Sea blue" draw:color="#0066cc"/>
+- <draw:color draw:name="Sun 1" draw:color="#333366"/>
+- <draw:color draw:name="Sun 2" draw:color="#666699"/>
+- <draw:color draw:name="Sun 3" draw:color="#9999cc"/>
+- <draw:color draw:name="Sun 4" draw:color="#ccccff"/>
++ <draw:color draw:name="openSUSE light green" draw:color="#bddd8d"/>
++ <draw:color draw:name="openSUSE medium green" draw:color="#198533"/>
++ <draw:color draw:name="openSUSE dark green" draw:color="#0c5248"/>
++ <draw:color draw:name="Novell red" draw:color="#e00000"/>
++ <draw:color draw:name="Novell orange" draw:color="#e67814"/>
++ <draw:color draw:name="Novell yellow" draw:color="#ffdd00"/>
++ <draw:color draw:name="Novell green" draw:color="#629e1f"/>
++ <draw:color draw:name="Novell teal" draw:color="#6ea19b"/>
++ <draw:color draw:name="Novell blue" draw:color="#1c82b9"/>
++ <draw:color draw:name="Novell light gray" draw:color="#cccccd"/>
++ <draw:color draw:name="Novell medium gray" draw:color="#5a5a64"/>
++ <draw:color draw:name="Novell dark gray" draw:color="#3c3c41"/>
+  <draw:color draw:name="Chart 1" draw:color="#004586"/>
+  <draw:color draw:name="Chart 2" draw:color="#ff420e"/>
+  <draw:color draw:name="Chart 3" draw:color="#ffd320"/>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/unittesting-ucbhelper.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/unittesting-ucbhelper.diff
@@ -0,0 +1,16 @@
+--- ucbhelper/prj/tests.lst	1970-01-01 01:00:00.000000000 +0100
++++ ucbhelper/prj/tests.lst	2007-09-07 10:17:44.000000000 +0200
+@@ -0,0 +1,2 @@
++uh   ucbhelper\workben\myucp                            nmake - all uh_workben_myucp uh_util NULL
++#depends on rsc: uh   ucbhelper\workben\ucbexplorer                      nmake - all uh_workben_ucbexplorer NULL
+--- ucbhelper/workben/myucp/makefile.mk	2007-06-05 16:58:20.000000000 +0200
++++ ucbhelper/workben/myucp/makefile.mk	2007-09-07 10:15:38.000000000 +0200
+@@ -84,7 +84,7 @@ SHL1STDLIBS=\
+ 	$(CPPULIB) \
+ 	$(SALLIB)  \
+     $(SALHELPERLIB) \
+-	$(UCBHELPERLIB)
++	-lucbhelper4$(COMNAME)
+ 
+ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+ SHL1LIBS=$(LIB1TARGET)
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/win32-activex-disable.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/win32-activex-disable.diff
@@ -0,0 +1,282 @@
+--- config_office/configure.in	Wed May  3 15:15:00 2006
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/config_office/configure.in	Wed May  3 14:38:03 2006
+@@ -74,6 +74,9 @@
+                           epm, however epm is useless for large scale
+                           package building.
+ ],,enable_epm="yes")
++AC_ARG_ENABLE(activex_component,
++[  --disable-activex-component Remove support for ActiveX embedding of OOo
++],,enable_activex_component=yes)
+ AC_ARG_WITH(package-format,
+ [  --with-package-format   specify package format(s) for OOo installsets.
+                           Default is "normal" one of the OS/Distribution.
+@@ -4268,6 +4272,20 @@
+ AC_SUBST(WITH_WRITER2LATEX)
+ 
+ AC_SUBST(SCPDEFS)
++
++if test "$_os" = "WINNT"; then
++  AC_MSG_CHECKING([whether to enable ActiveX embedding of OOo components])
++  if test "$enable_activex_component" = "yes" -o "$enable_activex_component" = "TRUE" -o "$enable_activex_component" = ""; then
++    ENABLE_ACTIVEX_COMPONENT="TRUE"
++    AC_MSG_RESULT([yes])
++    SCPDEFS="$SCPDEFS -DWITH_ACTIVEX_COMPONENT"
++  else
++    ENABLE_ACTIVEX_COMPONENT=""
++    AC_MSG_RESULT([no])
++  fi
++  AC_SUBST(ENABLE_ACTIVEX_COMPONENT)
++  AC_SUBST(SCPDEFS)
++fi
+ 
+ AC_MSG_CHECKING([whether and how to use Xinerama])
+ if test "$_os" = "Darwin"; then
+--- scp2/source/activex/file_activex.scp	Thu Oct 27 17:08:13 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/activex/file_activex.scp	Wed May  3 14:24:12 2006
+@@ -36,4 +36,6 @@
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ File gid_File_Lib_Soactivex
+     TXT_FILE_BODY;
+@@ -57,2 +59,3 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
+--- scp2/source/activex/module_activex.scp	Fri Sep  9 04:17:32 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/activex/module_activex.scp	Wed May  3 14:24:29 2006
+@@ -36,6 +36,8 @@
+ 
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ Module gid_Module_Optional_Activexcontrol
+     PackageInfo = "packinfo_office.txt";
+     MOD_NAME_DESC ( MODULE_OPTIONAL_ACTIVEXCONTROL );
+@@ -43,3 +45,5 @@
+     ParentID = gid_Module_Optional;
+     Files = (gid_File_Lib_Soactivex, gid_File_Lib_Regactivex_Msi, gid_File_Lib_Regpatchactivex_Msi);
+ End
++
++#endif // WITH_ACTIVEX_COMPONENT
+--- scp2/source/calc/registryitem_calc.scp	Thu Nov 10 18:18:08 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/calc/registryitem_calc.scp	Wed May  3 14:25:20 2006
+@@ -36,4 +36,6 @@
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ // MSOLE embedded object in SO7 file format
+ RegistryItem gid_Regitem_Clsid__7b342dc4_139a_4a46_8a93_Db0827ccee9c_
+@@ -272,4 +274,6 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Sdc_Contenttype
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -359,4 +363,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starcalcdocument_6_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -366,4 +372,6 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starcalcdocument_6_Defaulticon
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -688,4 +696,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Openoffice_Calcdocument_1_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -694,4 +704,6 @@
+     Value = "{7FA8AE11-B3E3-4D88-AABF-255526CD1CE8}";
+ End
++
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Openoffice_Calcdocument_1_Defaulticon
+--- scp2/source/draw/registryitem_draw.scp	Thu Nov 10 18:18:21 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/draw/registryitem_draw.scp	Wed May  3 14:25:46 2006
+@@ -36,4 +36,6 @@
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ // MSOLE embedded object in SO7 file format
+ RegistryItem gid_Regitem_Clsid__41662fc2_0d57_4aff_Ab27_Ad2e12e7c273_
+@@ -272,5 +274,5 @@
+ End
+ 
+-
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Sda_Contenttype
+@@ -361,4 +363,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Stardrawdocument_6_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -368,4 +372,6 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Stardrawdocument_6_Defaulticon
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -690,4 +696,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Openoffice_Drawdocument_1_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -696,4 +704,6 @@
+     Value = "{448BB771-CFE2-47C4-BCDF-1FBF378E202C}";
+ End
++
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Openoffice_Drawdocument_1_Defaulticon
+--- scp2/source/impress/registryitem_impress.scp	Thu Nov 10 18:18:33 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/impress/registryitem_impress.scp	Wed May  3 14:26:13 2006
+@@ -36,4 +36,6 @@
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ // MSOLE embedded object in SO7 file format
+ RegistryItem gid_Regitem_Clsid__E5a0b632_Dfba_4549_9346_E414da06e6f8_
+@@ -272,5 +274,5 @@
+ End
+ 
+-
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Sdd_Contenttype
+@@ -377,4 +379,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starimpressdocument_6_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -384,4 +388,6 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starimpressdocument_6_Defaulticon
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -727,4 +733,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Openoffice_Impressdocument_1_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -733,4 +741,6 @@
+     Value = "{EE5D1EA4-D445-4289-B2FC-55FC93693917}";
+ End
++
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Openoffice_Impressdocument_1_Defaulticon
+--- scp2/source/math/registryitem_math.scp	Thu Nov 10 18:18:46 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/math/registryitem_math.scp	Wed May  3 14:26:36 2006
+@@ -35,4 +35,6 @@
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ // MSOLE embedded object in SO7 file format
+ RegistryItem gid_Regitem_Clsid__D0484de6_Aaee_468a_991f_8d4b0737b57a_
+@@ -271,5 +273,5 @@
+ End
+ 
+-
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Smf_Contenttype
+@@ -360,4 +362,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starmathdocument_6_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -367,4 +371,6 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starmathdocument_6_Defaulticon
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -582,4 +588,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Openoffice_Mathdocument_1_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -588,4 +596,6 @@
+     Value = "{D2D59CD1-0A6A-4D36-AE20-47817077D57C}";
+ End
++
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Openoffice_Mathdocument_1_Defaulticon
+--- scp2/source/writer/registryitem_writer.scp	Thu Nov 10 18:19:00 2005
++++ /mnt/pippi/src/2.0.2/build/OOO_2_0_2/scp2/source/writer/registryitem_writer.scp	Wed May  3 14:27:50 2006
+@@ -36,4 +36,6 @@
+ #include "macros.inc"
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ // MSOLE embedded object in SO7 file format
+ RegistryItem gid_Regitem_Clsid__30a2652a_Ddf7_45e7_Aca6_3eab26fc8a4e_
+@@ -272,4 +274,5 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Sdw_Contenttype
+@@ -376,4 +379,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starwriterdocument_6_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -383,4 +388,6 @@
+ End
+ 
++#endif // WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Soffice_Starwriterdocument_6_Defaulticon
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -882,4 +889,6 @@
+ End
+ 
++#ifdef WITH_ACTIVEX_COMPONENT
++
+ RegistryItem gid_Regitem_Openoffice_Writerdocument_1_Clsid
+     ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+@@ -888,4 +897,6 @@
+     Value = "{F616B81F-7BB8-4F22-B8A5-47428D59F8AD}";
+ End
++
++#endif // WITH_ACTIVEX_COMPONENT
+ 
+ RegistryItem gid_Regitem_Openoffice_Writerdocument_1_Defaulticon
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/sfx2-always-allow-save-document.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/sfx2-always-allow-save-document.diff
@@ -0,0 +1,44 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/doc/guisaveas.cxx sfx2/source/doc/guisaveas.cxx
+--- sfx2.clean/source/doc/guisaveas.cxx	2008-04-10 10:27:24.000000000 -0400
++++ sfx2/source/doc/guisaveas.cxx	2008-04-10 10:39:17.000000000 -0400
+@@ -678,10 +678,6 @@ sal_Int8 ModelData_Impl::CheckStateForSa
+ 	if ( GetMediaDescr().size() != aAcceptedArgs.size() )
+ 		GetMediaDescr() = aAcceptedArgs;
+ 
+-    // the document must be modified
+-    if ( !GetModifiable()->isModified() && !bVersInfoNeedsStore )
+-		return STATUS_NO_ACTION;
+-
+     // if the document is readonly or a new one a SaveAs operation must be used
+     if ( !GetStorable()->hasLocation() || GetStorable()->isReadonly() )
+ 		return STATUS_SAVEAS;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sfx2.vpj sfx2.clean/source/doc/objserv.cxx sfx2/source/doc/objserv.cxx
+--- sfx2.clean/source/doc/objserv.cxx	2008-04-10 10:27:24.000000000 -0400
++++ sfx2/source/doc/objserv.cxx	2008-04-10 10:37:02.000000000 -0400
+@@ -1052,17 +1052,15 @@ void SfxObjectShell::GetState_Impl(SfxIt
+ 						rSet.DisableItem( nWhich );
+ 					break;
+ 				}
+-			case SID_SAVEDOC:
+-	            {
+-					BOOL bMediumRO = IsReadOnlyMedium();
+-					if ( !bMediumRO && GetMedium() && IsModified() )
+-						rSet.Put(SfxStringItem(
+-							nWhich, String(SfxResId(STR_SAVEDOC))));
+-					else
+-                    	rSet.DisableItem(nWhich);
+-				}
+-				break;
+-
++            case SID_SAVEDOC:
++            {
++                BOOL bMediumRO = IsReadOnlyMedium();
++                if ( !bMediumRO && GetMedium() )
++                    rSet.Put(SfxStringItem( nWhich, String(SfxResId(STR_SAVEDOC))));
++                else
++                    rSet.DisableItem(nWhich);
++            }
++            break;
+ 			case SID_DOCINFO:
+ 				if ( 0 != ( pImp->eFlags & SFXOBJECTSHELL_NODOCINFO ) )
+ 					rSet.DisableItem( nWhich );
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/default-ms-filter-convert.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/default-ms-filter-convert.diff
@@ -0,0 +1,70 @@
+Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
+===================================================================
+RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
+retrieving revision 1.84
+diff -u -p -u -r1.84 Common.xcs
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs	24 Jul 2003 13:12:08 -0000	1.84
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs	5 Jan 2004 14:57:29 -0000
+@@ -3795,54 +3795,54 @@
+ 						<info>
+ 							<desc>Specifies if convertible MathType OLE objects are converted into Math objects.</desc>
+ 						</info>
+-						<value>false</value>
++ 						<value>true</value>
+ 					</prop>
+ 					<prop oor:name="WinWordToWriter" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if convertible WinWord OLE objects are converted into Writer objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value>
+ 					</prop>
+ 					<prop oor:name="ExcelToCalc" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if convertible Excel OLE objects are converted into Calc objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value>
+ 					</prop>
+ 					<prop oor:name="PowerPointToImpress" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if convertible PowerPoint OLE objects are converted into Impress objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value>
+ 					</prop>
+ 				</group>
+ 				<group oor:name="Export">
+ 					<info>
+ 						<desc>Specifies default settings of Microsoft export filters.</desc>
+ 					</info>
+ 					<prop oor:name="MathToMathType" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if embedded Math objects are converted into MathType objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value>
+ 					</prop>
+ 					<prop oor:name="WriterToWinWord" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if embedded Writer objects are converted into WinWord objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value>
+ 					</prop>
+ 					<prop oor:name="CalcToExcel" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if embedded Calc objects are converted into Excel objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value>
+ 					</prop>
+ 					<prop oor:name="ImpressToPowerPoint" oor:type="xs:boolean">
+ 						<info>
+ 							<desc>Specifies if embedded Impress objects are converted into PowerPoint objects.</desc>
+ 						</info>
+-						<value>false</value>
++						<value>true</value> 
+ 					</prop>
+ 				</group>
+ 			</group>
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/vosremoval-diagnose.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/vosremoval-diagnose.diff
@@ -0,0 +1,1902 @@
+diff --git a/UnoControls/source/base/multiplexer.cxx b/UnoControls/source/base/multiplexer.cxx
+index 67f442f..48478cc 100644
+--- UnoControls/source/base/multiplexer.cxx
++++ UnoControls/source/base/multiplexer.cxx
+@@ -44,8 +44,8 @@
+ //	includes of other projects
+ //____________________________________________________________________________________________________________
+ 
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ //____________________________________________________________________________________________________________
+@@ -551,7 +551,7 @@ void OMRCListenerMultiplexerHelper::impl_adviseToPeer(	const	Reference< XWindow
+ 	}
+ 	else
+ 	{
+-		VOS_ENSHURE( sal_False, "unknown listener" );
++		OSL_ENSURE( sal_False, "unknown listener" );
+ 	}
+ }
+ 
+@@ -583,7 +583,7 @@ void OMRCListenerMultiplexerHelper::impl_unadviseFromPeer(	const	Reference< XWin
+ 	}
+ 	else
+ 	{
+-		VOS_ENSHURE( sal_False, "unknown listener" );
++		OSL_ENSURE( sal_False, "unknown listener" );
+ 	}
+ }
+ 
+diff --git a/UnoControls/source/controls/framecontrol.cxx b/UnoControls/source/controls/framecontrol.cxx
+index 257c1e1..9dcfd3d 100644
+--- UnoControls/source/controls/framecontrol.cxx
++++ UnoControls/source/controls/framecontrol.cxx
+@@ -74,8 +74,8 @@
+ #include <cppuhelper/typeprovider.hxx>
+ #endif
+ 
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ //______________________________________________________________________________________________________________
+@@ -410,7 +410,7 @@ void FrameControl::setFastPropertyValue_NoBroadcast(			sal_Int32	nHandle	,
+ 		case PROPERTYHANDLE_LOADERARGUMENTS		:		rValue >>= m_seqLoaderArguments ;
+ 														break ;
+ 
+-		default	:										VOS_ENSHURE ( nHandle == -1, ERRORTEXT_VOSENSHURE ) ;
++		default	:										OSL_ENSURE ( nHandle == -1, ERRORTEXT_VOSENSHURE ) ;
+ 	}
+ }
+ 
+@@ -434,7 +434,7 @@ void FrameControl::getFastPropertyValue(	Any&		rRet	,
+ 		case PROPERTYHANDLE_FRAME			:		rRet <<= m_xFrame ;
+ 							   						break ;
+ 
+-		default	:			                        VOS_ENSHURE ( nHandle == -1, ERRORTEXT_VOSENSHURE ) ;
++		default	:			                        OSL_ENSURE ( nHandle == -1, ERRORTEXT_VOSENSHURE ) ;
+ 	}
+ }
+ 
+diff --git a/basic/inc/pch/precompiled_basic.hxx b/basic/inc/pch/precompiled_basic.hxx
+index dc841a6..ca62d59 100644
+--- basic/inc/pch/precompiled_basic.hxx
++++ basic/inc/pch/precompiled_basic.hxx
+@@ -283,7 +283,7 @@
+ #include "vcl/wintypes.hxx"
+ #include "vcl/wrkwin.hxx"
+ 
+-#include "vos/diagnose.hxx"
++#include "osl/diagnose.h"
+ #include "vos/macros.hxx"
+ #include "vos/mutex.hxx"
+ 
+diff --git a/comphelper/source/eventattachermgr/eventattachermgr.cxx b/comphelper/source/eventattachermgr/eventattachermgr.cxx
+index 2243bd6..1d5b579 100644
+--- comphelper/source/eventattachermgr/eventattachermgr.cxx
++++ comphelper/source/eventattachermgr/eventattachermgr.cxx
+@@ -45,8 +45,8 @@
+ #ifndef _OSL_MUTEX_HXX_
+ #include <osl/mutex.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _VOS_MACROS_HXX_
+ #include <vos/macros.hxx>
+@@ -155,25 +155,25 @@ struct AttacherIndex_Impl
+ #if 0
+ bool AttachedObject_Impl::operator<( const AttachedObject_Impl & r ) const
+ {
+-    VOS_ENSHURE( FALSE, "not implemented" );
++    OSL_ENSURE( FALSE, "not implemented" );
+     return FALSE;
+     return this < &r;
+ }
+ 
+ bool AttachedObject_Impl::operator==( const AttachedObject_Impl & r ) const
+ {
+-    VOS_ENSHURE( FALSE, "not implemented" );
++    OSL_ENSURE( FALSE, "not implemented" );
+     return this == &r;
+ }
+ 
+ bool AttacherIndex_Impl::operator<( const AttacherIndex_Impl & r ) const
+ {
+-    VOS_ENSHURE( FALSE, "not implemented" );
++    OSL_ENSURE( FALSE, "not implemented" );
+     return this < &r;
+ }
+ bool AttacherIndex_Impl::operator==( const AttacherIndex_Impl & r ) const
+ {
+-    VOS_ENSHURE( FALSE, "not implemented" );
++    OSL_ENSURE( FALSE, "not implemented" );
+     return this == &r;
+ }
+ #endif
+@@ -1072,7 +1072,7 @@ void SAL_CALL ImplEventAttacherManager::read(const Reference< XObjectInputStream
+         // Ganze richtig sein. Sonst ist etwas voellig daneben gegangen.
+         if( nRealLen > nLen || nVersion == 1 )
+         {
+-            VOS_ENSHURE( sal_False, "ImplEventAttacherManager::read(): Fatal Error, wrong object length" );
++            OSL_ENSURE( sal_False, "ImplEventAttacherManager::read(): Fatal Error, wrong object length" );
+         }
+         else
+         {
+diff --git a/comphelper/source/xml/attributelist.cxx b/comphelper/source/xml/attributelist.cxx
+index 76cf2bb..2cef91a 100644
+--- comphelper/source/xml/attributelist.cxx
++++ comphelper/source/xml/attributelist.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _ATTRIBUTE_LIST_HXX
+ #include <comphelper/attributelist.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ #include <vector>
+@@ -155,7 +155,7 @@ void AttributeList::Clear()
+ {
+ 	m_pImpl->vecAttribute.clear();
+ 
+-	VOS_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
++	OSL_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
+ }
+ 
+ void AttributeList::RemoveAttribute( const OUString sName )
+@@ -179,7 +179,7 @@ void AttributeList::SetAttributeList( const uno::Reference< ::com::sun::star::xm
+ 
+ void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+ {
+-	VOS_ENSURE( r.is(), "r isn't!" );
++	OSL_ENSURE( r.is(), "r isn't!" );
+ 
+ 	sal_Int32 nMax = r->getLength();
+ 	sal_Int32 nTotalSize = m_pImpl->vecAttribute.size() + nMax;
+@@ -192,7 +192,7 @@ void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star:
+ 			r->getValueByIndex( i )));
+ 	}
+ 
+-	VOS_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
++	OSL_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
+ }
+ 
+ } // namespace comphelper
+diff --git a/extensions/inc/pch/precompiled_extensions.hxx b/extensions/inc/pch/precompiled_extensions.hxx
+index 871aa44..2af1582 100644
+--- extensions/inc/pch/precompiled_extensions.hxx
++++ extensions/inc/pch/precompiled_extensions.hxx
+@@ -544,7 +544,7 @@
+ #include "vcl/fldunit.hxx"
+ 
+ #include "vos/conditn.hxx"
+-#include "vos/diagnose.hxx"
++#include "osl/diagnose.h"
+ #include "vos/macros.hxx"
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+diff --git a/extensions/source/ole/unoobjw.cxx b/extensions/source/ole/unoobjw.cxx
+index af1d1e4..9a16d8e 100644
+--- extensions/source/ole/unoobjw.cxx
++++ extensions/source/ole/unoobjw.cxx
+@@ -47,7 +47,7 @@
+ #include <tools/postsys.h>
+ 
+ 
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <vos/refernce.hxx>
+ #include <tools/debug.hxx>
+ 
+diff --git a/extensions/source/plugin/base/multiplx.cxx b/extensions/source/plugin/base/multiplx.cxx
+index 771d74c..cee3b17 100644
+--- extensions/source/plugin/base/multiplx.cxx
++++ extensions/source/plugin/base/multiplx.cxx
+@@ -35,7 +35,7 @@
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_extensions.hxx"
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <plugin/multiplx.hxx>
+ 
+ //	---------------------------------------------------------------------
+@@ -114,7 +114,7 @@ void MRCListenerMultiplexerHelper::adviseToPeer( const Reference< ::com::sun::st
+ 	}
+ 	else
+ 	{
+-		VOS_ENSHURE( sal_False, "unknown listener" );
++		OSL_ENSURE( sal_False, "unknown listener" );
+ 	}
+ }
+ 
+@@ -142,7 +142,7 @@ void MRCListenerMultiplexerHelper::unadviseFromPeer( const Reference< ::com::sun
+ 	}
+ 	else
+ 	{
+-		VOS_ENSHURE( sal_False, "unknown listener" );
++		OSL_ENSURE( sal_False, "unknown listener" );
+ 	}
+ }
+ 
+diff --git a/extensions/test/sax/testsax.cxx b/extensions/test/sax/testsax.cxx
+index 9351b88..e778dce 100644
+--- extensions/test/sax/testsax.cxx
++++ extensions/test/sax/testsax.cxx
+@@ -43,7 +43,7 @@
+ #include <rtl/wstring.hxx>
+ #include <osl/time.h>
+ //#include <vos/dynload.hxx>
+-//#include <vos/diagnose.hxx>
++//#include <osl/diagnose.h>
+ #include <usr/weak.hxx>
+ #include <tools/string.hxx>
+ #include <vos/conditn.hxx>
+diff --git a/extensions/workben/pythonautotest.cxx b/extensions/workben/pythonautotest.cxx
+index fc003e0..d41a255 100644
+--- extensions/workben/pythonautotest.cxx
++++ extensions/workben/pythonautotest.cxx
+@@ -42,7 +42,7 @@
+ 
+ #include <rtl/ustring.hxx>
+ #include <vos/dynload.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+ #include <usr/ustring.hxx>
+diff --git a/extensions/workben/pythontest.cxx b/extensions/workben/pythontest.cxx
+index 15b4af3..73d466a 100644
+--- extensions/workben/pythontest.cxx
++++ extensions/workben/pythontest.cxx
+@@ -43,7 +43,7 @@
+ 
+ #include <rtl/ustring.hxx>
+ #include <vos/dynload.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+ #include <usr/ustring.hxx>
+diff --git a/extensions/workben/testcomponent.cxx b/extensions/workben/testcomponent.cxx
+index 5fdbd19..607e4bd 100644
+--- extensions/workben/testcomponent.cxx
++++ extensions/workben/testcomponent.cxx
+@@ -50,7 +50,7 @@
+ //#include <com/sun/star/registry/ stardiv/uno/repos/simplreg.hxx>
+ 
+ #include <vos/dynload.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+ #include <usr/ustring.hxx>
+diff --git a/extensions/workben/testresource.cxx b/extensions/workben/testresource.cxx
+index 03961de..0aed67a 100644
+--- extensions/workben/testresource.cxx
++++ extensions/workben/testresource.cxx
+@@ -41,7 +41,7 @@
+ 
+ #include <rtl/ustring.hxx>
+ #include <vos/dynload.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <usr/services.hxx>
+ #include <vcl/svapp.hxx>
+ 
+@@ -86,14 +86,14 @@ void MyApp::Main()
+ 	Args.getArray()[0].setINT32( 1000 );
+ 
+ 	BOOL b = xResLoader->invoke( L"hasString", Args, OutPos, OutArgs ).getBOOL();
+-	VOS_ENSHURE( b, "hasString" );
++	OSL_ENSURE( b, "hasString" );
+ 
+ 	UString aStr = xResLoader->invoke( L"getString", Args, OutPos, OutArgs ).getString();
+-	VOS_ENSHURE( aStr == L"Hello", "getString" );
++	OSL_ENSURE( aStr == L"Hello", "getString" );
+ 	
+ 	Args.getArray()[0].setINT32( 1001 );
+ 	b = xResLoader->invoke( L"hasString", Args, OutPos, OutArgs ).getBOOL();
+-	VOS_ENSHURE( !b, "!hasString" );
++	OSL_ENSURE( !b, "!hasString" );
+ 
+ 	xReg->revokeImplementation( aDllName, XSimpleRegistryRef() );
+ }
+diff --git a/filter/source/xsltdialog/attributelist.cxx b/filter/source/xsltdialog/attributelist.cxx
+index 17e0c81..ca71fe8 100644
+--- filter/source/xsltdialog/attributelist.cxx
++++ filter/source/xsltdialog/attributelist.cxx
+@@ -39,8 +39,8 @@
+ #ifndef _ATTRIBUTE_LIST_HXX
+ #include "attributelist.hxx"
+ #endif
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ #include <vector>
+@@ -153,7 +153,7 @@ void AttributeList::Clear()
+ {
+ 	m_pImpl->vecAttribute.clear();
+ 
+-	VOS_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
++	OSL_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
+ }
+ 
+ void AttributeList::RemoveAttribute( const OUString sName )
+@@ -177,7 +177,7 @@ void AttributeList::SetAttributeList( const uno::Reference< ::com::sun::star::xm
+ 
+ void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+ {
+-	VOS_ENSURE( r.is(), "r isn't!" );
++	OSL_ENSURE( r.is(), "r isn't!" );
+ 
+ 	sal_Int32 nMax = r->getLength();
+ 	sal_Int32 nTotalSize = m_pImpl->vecAttribute.size() + nMax;
+@@ -190,5 +190,5 @@ void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star:
+ 			r->getValueByIndex( i )));
+ 	}
+ 
+-	VOS_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
++	OSL_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
+ }
+diff --git a/i18npool/source/localedata/saxparser.cxx b/i18npool/source/localedata/saxparser.cxx
+index 0db16b0..8afc0a7 100644
+--- i18npool/source/localedata/saxparser.cxx
++++ i18npool/source/localedata/saxparser.cxx
+@@ -55,7 +55,7 @@
+ #include <cppuhelper/implbase1.hxx>
+ #include <cppuhelper/implbase3.hxx>
+ 
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ #include "LocaleNode.hxx"
+ 
+diff --git a/package/source/manifest/UnoRegister.cxx b/package/source/manifest/UnoRegister.cxx
+index d9fee8a..96eed44 100644
+--- package/source/manifest/UnoRegister.cxx
++++ package/source/manifest/UnoRegister.cxx
+@@ -48,8 +48,8 @@
+ #ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP
+ #include <com/sun/star/registry/XRegistryKey.hpp>
+ #endif
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _ZIP_PACKAGE_HXX
+ #include <ZipPackage.hxx>
+diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx
+index 30bf638..162ce3f 100644
+--- package/source/zippackage/ZipPackage.cxx
++++ package/source/zippackage/ZipPackage.cxx
+@@ -415,7 +415,7 @@ void ZipPackage::parseManifest()
+ 							bManifestParsed = sal_True;
+ 						}
+ 						else
+-							VOS_ENSURE ( 0, "Couldn't get a ManifestReader!" ); // throw RuntimeException?
++							OSL_ENSURE ( 0, "Couldn't get a ManifestReader!" ); // throw RuntimeException?
+ 					}
+ 	
+ 					// now hide the manifest.xml file from user
+@@ -1005,7 +1005,7 @@ void ZipPackage::WriteMimetypeMagicFile( ZipOutputStream& aZipOut )
+ 	}
+ 	catch ( ::com::sun::star::io::IOException & r )
+ 	{
+-		VOS_ENSURE( 0, "Error adding mimetype to the ZipOutputStream" );
++		OSL_ENSURE( 0, "Error adding mimetype to the ZipOutputStream" );
+ 		throw WrappedTargetException( 
+ 				OUString( RTL_CONSTASCII_USTRINGPARAM ( "Error adding mimetype to the ZipOutputStream!" ) ),
+ 				static_cast < OWeakObject * > ( this ), 
+@@ -1163,7 +1163,7 @@ sal_Bool ZipPackage::writeFileIsTemp()
+ 			}
+ 			else
+ 			{
+-				VOS_ENSURE ( 0, "Couldn't get a ManifestWriter!" );
++				OSL_ENSURE ( 0, "Couldn't get a ManifestWriter!" );
+ 				IOException aException;
+ 				throw WrappedTargetException( 
+ 						OUString( RTL_CONSTASCII_USTRINGPARAM ( "Couldn't get a ManifestWriter!" ) ),
+diff --git a/package/source/zippackage/ZipPackageEntry.cxx b/package/source/zippackage/ZipPackageEntry.cxx
+index 177addd..f3a56be 100644
+--- package/source/zippackage/ZipPackageEntry.cxx
++++ package/source/zippackage/ZipPackageEntry.cxx
+@@ -41,8 +41,8 @@
+ #ifndef _COM_SUN_STAR_PACKAGE_ZIP_ZIPCONSTANTS_HPP_
+ #include <com/sun/star/packages/zip/ZipConstants.hpp>
+ #endif
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ #if defined( OSL_DEBUG )
+@@ -104,7 +104,7 @@ void SAL_CALL ZipPackageEntry::setName( const OUString& aName )
+ 
+ 	const sal_Unicode *pChar = aName.getStr();
+ 	if(pChar == 0 || pChar != 0) {
+-        VOS_ENSURE ( Impl_IsValidChar (pChar, static_cast < sal_Int16 > ( aName.getLength() ), sal_False), "Invalid character in new zip package entry name!");
++        OSL_ENSURE ( Impl_IsValidChar (pChar, static_cast < sal_Int16 > ( aName.getLength() ), sal_False), "Invalid character in new zip package entry name!");
+     }
+ 	aEntry.sName = aName;
+ 
+diff --git a/package/source/zippackage/ZipPackageFolder.cxx b/package/source/zippackage/ZipPackageFolder.cxx
+index 7c81527..af0b527 100644
+--- package/source/zippackage/ZipPackageFolder.cxx
++++ package/source/zippackage/ZipPackageFolder.cxx
+@@ -56,8 +56,8 @@
+ #ifndef _COM_SUN_STAR_PACKAGES_ZIP_ZIPCONSTANTS_HPP_
+ #include <com/sun/star/packages/zip/ZipConstants.hpp>
+ #endif
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _OSL_TIME_H_
+ #include <osl/time.h>
+@@ -317,12 +317,12 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 		}
+ 		catch ( ZipException& )
+ 		{
+-			VOS_ENSURE( 0, "Error writing ZipOutputStream" );
++			OSL_ENSURE( 0, "Error writing ZipOutputStream" );
+ 			bWritingFailed = sal_True;
+ 		}
+ 		catch ( IOException& )
+ 		{
+-			VOS_ENSURE( 0, "Error writing ZipOutputStream" );
++			OSL_ENSURE( 0, "Error writing ZipOutputStream" );
+ 			bWritingFailed = sal_True;
+ 		}
+ 	}
+@@ -409,7 +409,7 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 
+ 				if ( !xStream.is() )
+ 				{
+-					VOS_ENSURE( 0, "ZipPackageStream didn't have a stream associated with it, skipping!" );
++					OSL_ENSURE( 0, "ZipPackageStream didn't have a stream associated with it, skipping!" );
+ 					bWritingFailed = sal_True;
+ 					continue;
+ 				}
+@@ -462,14 +462,14 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+     					}
+     					else
+     					{
+-    						VOS_ENSURE( 0, "The package component requires that every stream either be FROM a package or it must support XSeekable!" );
++    						OSL_ENSURE( 0, "The package component requires that every stream either be FROM a package or it must support XSeekable!" );
+     						continue;
+ 	    				}
+ 					}
+ 				}
+ 				catch ( Exception& )
+ 				{
+-					VOS_ENSURE( 0, "The stream provided to the package component has problems!" );
++					OSL_ENSURE( 0, "The stream provided to the package component has problems!" );
+ 					bWritingFailed = sal_True;
+ 					continue;
+ 				}
+@@ -539,7 +539,7 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 					if ( !xStream.is() )
+ 					{
+ 						// Make sure that we actually _got_ a new one !
+-						VOS_ENSURE( 0, "ZipPackageStream didn't have a stream associated with it, skipping!" );
++						OSL_ENSURE( 0, "ZipPackageStream didn't have a stream associated with it, skipping!" );
+ 						continue;
+ 					}
+ 				}
+@@ -567,12 +567,12 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 				}
+ 				catch ( ZipException& )
+ 				{
+-					VOS_ENSURE( 0, "Error writing ZipOutputStream" );
++					OSL_ENSURE( 0, "Error writing ZipOutputStream" );
+ 					bWritingFailed = sal_True;
+ 				}
+ 				catch ( IOException& )
+ 				{
+-					VOS_ENSURE( 0, "Error writing ZipOutputStream" );
++					OSL_ENSURE( 0, "Error writing ZipOutputStream" );
+ 					bWritingFailed = sal_True;
+ 				}
+ 			}
+@@ -594,7 +594,7 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 					if ( !xStream.is() )
+ 					{
+ 						// Make sure that we actually _got_ a new one !
+-						VOS_ENSURE( 0, "ZipPackageStream didn't have a stream associated with it, skipping!" );
++						OSL_ENSURE( 0, "ZipPackageStream didn't have a stream associated with it, skipping!" );
+ 						continue;
+ 					}
+ 				}
+@@ -624,12 +624,12 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
+ 				}
+ 				catch ( ZipException& )
+ 				{
+-					VOS_ENSURE( 0, "Error writing ZipOutputStream" );
++					OSL_ENSURE( 0, "Error writing ZipOutputStream" );
+ 					bWritingFailed = sal_True;
+ 				}
+ 				catch ( IOException& )
+ 				{
+-					VOS_ENSURE( 0, "Error writing ZipOutputStream" );
++					OSL_ENSURE( 0, "Error writing ZipOutputStream" );
+ 					bWritingFailed = sal_True;
+ 				}
+ 
+@@ -709,7 +709,7 @@ void ZipPackageFolder::releaseUpwardRef( void )
+ 	}
+ 	clearParent();
+ 
+-	VOS_ENSURE ( m_refCount == 1, "Ref-count is not 1!" );
++	OSL_ENSURE ( m_refCount == 1, "Ref-count is not 1!" );
+ #endif
+ }
+ 
+diff --git a/package/source/zippackage/ZipPackageStream.cxx b/package/source/zippackage/ZipPackageStream.cxx
+index 91442c2..cdbcbd8 100644
+--- package/source/zippackage/ZipPackageStream.cxx
++++ package/source/zippackage/ZipPackageStream.cxx
+@@ -74,8 +74,8 @@
+ #include <EncryptedDataHeader.hxx>
+ #endif
+ 
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ #ifndef _WRAPSTREAMFORSHARE_HXX_
+@@ -453,12 +453,12 @@ Reference< io::XInputStream > SAL_CALL ZipPackageStream::getRawData()
+ 	}
+ 	catch (ZipException &)//rException)
+ 	{
+-		VOS_ENSURE( 0, "ZipException thrown");//rException.Message);
++		OSL_ENSURE( 0, "ZipException thrown");//rException.Message);
+ 		return Reference < io::XInputStream > ();
+ 	}
+ 	catch (Exception &)
+ 	{
+-		VOS_ENSURE( 0, "Exception is thrown during stream wrapping!\n");
++		OSL_ENSURE( 0, "Exception is thrown during stream wrapping!\n");
+ 		return Reference < io::XInputStream > ();
+ 	}
+ }
+@@ -486,12 +486,12 @@ Reference< io::XInputStream > SAL_CALL ZipPackageStream::getInputStream(  )
+ 	}
+ 	catch (ZipException &)//rException)
+ 	{
+-		VOS_ENSURE( 0,"ZipException thrown");//rException.Message);
++		OSL_ENSURE( 0,"ZipException thrown");//rException.Message);
+ 		return Reference < io::XInputStream > ();
+ 	}
+ 	catch (Exception &)
+ 	{
+-		VOS_ENSURE( 0, "Exception is thrown during stream wrapping!\n");
++		OSL_ENSURE( 0, "Exception is thrown during stream wrapping!\n");
+ 		return Reference < io::XInputStream > ();
+ 	}
+ }
+diff --git a/sax/test/saxdemo.cxx b/sax/test/saxdemo.cxx
+index 921b5a1..9d73d6e 100644
+--- sax/test/saxdemo.cxx
++++ sax/test/saxdemo.cxx
+@@ -59,7 +59,7 @@
+ #include <cppuhelper/implbase3.hxx>
+ 
+ #include <vos/dynload.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ using namespace ::rtl;
+ using namespace ::std;
+diff --git a/sax/test/testcomponent.cxx b/sax/test/testcomponent.cxx
+index 525e1af..1fa63f3 100644
+--- sax/test/testcomponent.cxx
++++ sax/test/testcomponent.cxx
+@@ -50,7 +50,7 @@
+ #include <cppuhelper/servicefactory.hxx>
+ 
+ #include <vos/dynload.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ using namespace ::rtl;
+ using namespace ::cppu;
+diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx
+index 39199ec..7563732 100644
+--- sd/inc/pch/precompiled_sd.hxx
++++ sd/inc/pch/precompiled_sd.hxx
+@@ -918,7 +918,7 @@
+ #include "vcl/wintypes.hxx"
+ #include "vcl/wrkwin.hxx"
+ 
+-#include "vos/diagnose.hxx"
++#include "osl/diagnose.h"
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+ #include "vos/thread.hxx"
+diff --git a/sd/source/ui/toolpanel/TaskPaneControlFactory.cxx b/sd/source/ui/toolpanel/TaskPaneControlFactory.cxx
+index cbd711c..ac50236 100644
+--- sd/source/ui/toolpanel/TaskPaneControlFactory.cxx
++++ sd/source/ui/toolpanel/TaskPaneControlFactory.cxx
+@@ -38,7 +38,7 @@
+ 
+ #include "taskpane/TaskPaneControlFactory.hxx"
+ 
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ namespace sd { namespace toolpanel {
+ 
+diff --git a/sfx2/inc/pch/precompiled_sfx2.hxx b/sfx2/inc/pch/precompiled_sfx2.hxx
+index 1a8eb44..1016400 100644
+--- sfx2/inc/pch/precompiled_sfx2.hxx
++++ sfx2/inc/pch/precompiled_sfx2.hxx
+@@ -670,7 +670,7 @@
+ #include "vcl/timer.hxx"
+ #include "vcl/unohelp.hxx"
+ #include "vcl/wintypes.hxx"
+-#include "vos/diagnose.hxx"
++#include "osl/diagnose.h"
+ #include "vos/module.hxx"
+ #include "vos/mutex.hxx"
+ #include "vos/security.hxx"
+diff --git a/sfx2/source/doc/attributelist.cxx b/sfx2/source/doc/attributelist.cxx
+index 0ac39f6..35ca5a2 100644
+--- sfx2/source/doc/attributelist.cxx
++++ sfx2/source/doc/attributelist.cxx
+@@ -41,8 +41,8 @@
+ #ifndef _ATTRIBUTE_LIST_HXX
+ #include <attributelist.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_H_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ 
+ #include <vector>
+@@ -155,7 +155,7 @@ void AttributeList::Clear()
+ {
+ 	m_pImpl->vecAttribute.clear();
+ 
+-	VOS_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
++	OSL_ENSURE( ! getLength(), "Length > 0 after AttributeList::Clear!");
+ }
+ 
+ void AttributeList::RemoveAttribute( const OUString sName )
+@@ -179,7 +179,7 @@ void AttributeList::SetAttributeList( const uno::Reference< ::com::sun::star::xm
+ 
+ void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star::xml::sax::XAttributeList >  &r )
+ {
+-	VOS_ENSURE( r.is(), "r isn't!" );
++	OSL_ENSURE( r.is(), "r isn't!" );
+ 
+ 	sal_Int32 nMax = r->getLength();
+ 	sal_Int32 nTotalSize = m_pImpl->vecAttribute.size() + nMax;
+@@ -192,6 +192,6 @@ void AttributeList::AppendAttributeList( const uno::Reference< ::com::sun::star:
+ 			r->getValueByIndex( i )));
+ 	}
+ 
+-	VOS_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
++	OSL_ENSURE( nTotalSize == getLength(), "nTotalSize != getLength()");
+ }
+ 
+diff --git a/ucb/inc/pch/precompiled_ucb.hxx b/ucb/inc/pch/precompiled_ucb.hxx
+index 846d0dc..64ee0aa 100644
+--- ucb/inc/pch/precompiled_ucb.hxx
++++ ucb/inc/pch/precompiled_ucb.hxx
+@@ -182,7 +182,7 @@
+ #include "ucbhelper/macros.hxx"
+ #include "ucbhelper/proxydecider.hxx"
+ 
+-#include "vos/diagnose.hxx"
++#include "osl/diagnose.h"
+ #include "vos/mutex.hxx"
+ #include "vos/ref.hxx"
+ #include "vos/refernce.hxx"
+diff --git a/vos/inc/vos/diagnose.hxx b/vos/inc/vos/diagnose.hxx
+deleted file mode 100644
+index 75e57b5..0000000
+--- vos/inc/vos/diagnose.hxx
++++ /dev/null
+@@ -1,64 +0,0 @@
+-/*************************************************************************
+- *
+- *  OpenOffice.org - a multi-platform office productivity suite
+- *
+- *  $RCSfile: diagnose.hxx,v $
+- *
+- *  $Revision: 1.4 $
+- *
+- *  last change: $Author: hr $ $Date: 2006/06/20 04:05:07 $
+- *
+- *  The Contents of this file are made available subject to
+- *  the terms of GNU Lesser General Public License Version 2.1.
+- *
+- *
+- *    GNU Lesser General Public License Version 2.1
+- *    =============================================
+- *    Copyright 2005 by Sun Microsystems, Inc.
+- *    901 San Antonio Road, Palo Alto, CA 94303, USA
+- *
+- *    This library is free software; you can redistribute it and/or
+- *    modify it under the terms of the GNU Lesser General Public
+- *    License version 2.1, as published by the Free Software Foundation.
+- *
+- *    This library is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- *    Lesser General Public License for more details.
+- *
+- *    You should have received a copy of the GNU Lesser General Public
+- *    License along with this library; if not, write to the Free Software
+- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+- *    MA  02111-1307  USA
+- *
+- ************************************************************************/
+-
+-
+-#ifndef _VOS_DIAGNOSE_H_
+-#define _VOS_DIAGNOSE_H_
+-
+-
+-#ifndef _OSL_DIAGNOSE_H_
+-	#include <osl/diagnose.h>
+-#endif
+-
+-
+-/*
+-	Diagnostic support
+-*/
+-
+-#define VOS_THIS_FILE       __FILE__
+-
+-#define VOS_DEBUG_ONLY(s)	_OSL_DEBUG_ONLY(s)
+-#define VOS_TRACE           _OSL_TRACE
+-#define VOS_ASSERT(c) 	    _OSL_ASSERT(c, VOS_THIS_FILE, __LINE__)
+-#define VOS_VERIFY(c)		OSL_VERIFY(c)
+-#define VOS_ENSHURE(c, m)   _OSL_ENSURE(c, VOS_THIS_FILE, __LINE__, m)
+-#define VOS_ENSURE(c, m)    _OSL_ENSURE(c, VOS_THIS_FILE, __LINE__, m)
+-
+-#define VOS_PRECOND(c, m)  	VOS_ENSHURE(c, m)
+-#define VOS_POSTCOND(c, m) 	VOS_ENSHURE(c, m)
+-
+-#endif /* _VOS_DIAGNOSE_H_ */
+-
+-
+diff --git a/vos/inc/vos/ref.hxx b/vos/inc/vos/ref.hxx
+index 5403eb6..3a0a203 100644
+--- vos/inc/vos/ref.hxx
++++ vos/inc/vos/ref.hxx
+@@ -50,8 +50,8 @@
+ #ifndef _VOS_REFERNCE_HXX_
+ #	include <vos/refernce.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#	include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#	include <osl/diagnose.h>
+ #endif
+ 
+ namespace vos
+diff --git a/vos/inc/vos/ref.inl b/vos/inc/vos/ref.inl
+index 6540458..5116be5 100644
+--- vos/inc/vos/ref.inl
++++ vos/inc/vos/ref.inl
+@@ -117,28 +117,28 @@ inline void ORef<T>::operator= (T* pBody)
+ template <class T>
+ inline T& ORef<T>::operator() () const
+ {
+-	VOS_PRECOND(m_refBody, "ORef::operator(): can't deref nil body!");
++	OSL_PRECOND(m_refBody, "ORef::operator(): can't deref nil body!");
+ 	return *m_refBody;
+ }
+ 
+ template <class T>
+ inline T& ORef<T>::operator* () const 
+ {
+-	VOS_PRECOND(m_refBody, "ORef::operator*: can't deref nil body!");
++	OSL_PRECOND(m_refBody, "ORef::operator*: can't deref nil body!");
+ 	return *m_refBody;
+ }
+ 
+ template <class T>
+ inline T* ORef<T>::operator->() const 
+ {
+-	VOS_PRECOND(m_refBody, "ORef::operator->: nil body!");
++	OSL_PRECOND(m_refBody, "ORef::operator->: nil body!");
+ 	return m_refBody;
+ }
+ 
+ template <class T>
+ inline T& ORef<T>::getBody() const
+ {
+-	VOS_PRECOND(m_refBody, "ORef::getBody(): can't deref nil body!");
++	OSL_PRECOND(m_refBody, "ORef::getBody(): can't deref nil body!");
+ 	return *m_refBody;
+ }
+ 
+diff --git a/vos/inc/vos/refobj.hxx b/vos/inc/vos/refobj.hxx
+index b6d5a4d..af39b02 100644
+--- vos/inc/vos/refobj.hxx
++++ vos/inc/vos/refobj.hxx
+@@ -47,8 +47,8 @@
+ #ifndef _VOS_REFERNCE_HXX_
+ #	include <vos/refernce.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#	include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#	include <osl/diagnose.h>
+ #endif
+ 
+ namespace vos
+diff --git a/vos/inc/vos/refobj.inl b/vos/inc/vos/refobj.inl
+index 0e6dc03..77fc062 100644
+--- vos/inc/vos/refobj.inl
++++ vos/inc/vos/refobj.inl
+@@ -45,7 +45,7 @@ ORefObj<T>::ORefObj(const T& Obj)
+ template <class T>
+ inline ORefObj<T>::~ORefObj()
+ {
+-	VOS_ASSERT(m_RefCount.referenced() == 0);
++	OSL_ASSERT(m_RefCount.referenced() == 0);
+ }
+ 
+ template <class T>
+diff --git a/vos/source/conditn.cxx b/vos/source/conditn.cxx
+index 0b14e7a..828f3e9 100644
+--- vos/source/conditn.cxx
++++ vos/source/conditn.cxx
+@@ -37,7 +37,7 @@
+ #include <osl/time.h>
+ #endif
+ #include <vos/conditn.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ using namespace vos;
+ 
+diff --git a/vos/source/module.cxx b/vos/source/module.cxx
+index 8c4d55c..2da53f8 100644
+--- vos/source/module.cxx
++++ vos/source/module.cxx
+@@ -35,7 +35,7 @@
+ 
+ 
+ #include <vos/module.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ using namespace vos;
+ 
+@@ -63,7 +63,7 @@ OModule::~OModule()
+ 
+ sal_Bool OModule::load(const rtl::OUString& ustrModuleName, sal_Int32 nRtldMode)
+ {
+-    VOS_ASSERT(ustrModuleName);
++    OSL_ASSERT(ustrModuleName);
+     
+     unload();
+     
+@@ -88,8 +88,8 @@ sal_Bool OModule::isLoaded()
+ 
+ void *OModule::getSymbol(const rtl::OUString& strSymbolName)
+ {
+-    VOS_ASSERT(strSymbolName);
+-    VOS_ASSERT(m_Module);
++    OSL_ASSERT(strSymbolName);
++    OSL_ASSERT(m_Module);
+ 	return ( osl_getSymbol( m_Module, strSymbolName.pData ) );
+ }
+ 
+diff --git a/vos/source/mutex.cxx b/vos/source/mutex.cxx
+index 76d186c..b426fec 100644
+--- vos/source/mutex.cxx
++++ vos/source/mutex.cxx
+@@ -33,7 +33,7 @@
+  *
+  ************************************************************************/
+ 
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <vos/object.hxx>
+ #include <vos/mutex.hxx>
+ 
+diff --git a/vos/source/object.cxx b/vos/source/object.cxx
+index 642d927..05a8ec9 100644
+--- vos/source/object.cxx
++++ vos/source/object.cxx
+@@ -38,7 +38,7 @@
+ #include <rtl/alloc.h>
+ #include <rtl/memory.h>
+ 
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ #include <vos/object.hxx>
+ 
+@@ -65,7 +65,7 @@ void* OObject::operator new(size_t size)
+ {
+    void* p = rtl_allocateMemory(size);
+ 
+-   VOS_ASSERT(p != NULL);
++   OSL_ASSERT(p != NULL);
+ 
+    return (p);
+ }
+@@ -92,7 +92,7 @@ const OClassInfo& OObject::getClassInfo() const
+ 
+ sal_Bool OObject::isKindOf(const OClassInfo& rClass) const
+ {
+-    VOS_ASSERT(this != NULL);
++    OSL_ASSERT(this != NULL);
+ 
+     const OClassInfo& rClassThis = getClassInfo();
+ 
+@@ -129,7 +129,7 @@ OObject* OClassInfo::createObject(const OCreateParam& rParam) const
+ 
+ sal_Bool OClassInfo::isDerivedFrom(const OClassInfo& rClass) const
+ {
+-	VOS_ASSERT(this != NULL);
++	OSL_ASSERT(this != NULL);
+ 
+ 	const OClassInfo* pClassThis = this;
+ 
+@@ -146,7 +146,7 @@ sal_Bool OClassInfo::isDerivedFrom(const OClassInfo& rClass) const
+ 
+ const OClassInfo* OClassInfo::getClassInfo(const sal_Char* pClassName)
+ {
+-	VOS_ASSERT(pClassName != NULL);
++	OSL_ASSERT(pClassName != NULL);
+ 
+ 	const OClassInfo* pClass = &VOS_CLASSINFO(VOS_NAMESPACE(OObject, vos));
+ 	
+@@ -163,7 +163,7 @@ const OClassInfo* OClassInfo::getClassInfo(const sal_Char* pClassName)
+ 
+ VOS_CLASSINIT::VOS_CLASSINIT(register OClassInfo* pNewClass)
+ {
+-	VOS_ASSERT(pNewClass != NULL);
++	OSL_ASSERT(pNewClass != NULL);
+ 
+ 	OClassInfo* pClassRoot = (OClassInfo*)&VOS_CLASSINFO(VOS_NAMESPACE(OObject, vos));
+ 	
+diff --git a/vos/source/pipe.cxx b/vos/source/pipe.cxx
+index f4d4de4..0db2016 100644
+--- vos/source/pipe.cxx
++++ vos/source/pipe.cxx
+@@ -35,7 +35,7 @@
+ 
+ 
+ #include <vos/pipe.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ using namespace vos;
+ 
+@@ -66,8 +66,8 @@ OPipe::OPipe( const rtl::OUString& strName, TPipeOption Options)
+ 									(oslPipeOptions)Options, 
+ 									NULL) );
+ 	
+-	VOS_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-	VOS_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
++	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
++	OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
+ }
+ 
+ /*****************************************************************************/
+@@ -83,8 +83,8 @@ OPipe::OPipe( const rtl::OUString& strName,
+ 								   (oslPipeOptions)Options, 
+ 								   (oslSecurity)rSecurity));
+ 	
+-	VOS_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+-	VOS_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
++	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
++	OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n");
+ }
+ 
+ /*****************************************************************************/
+@@ -94,7 +94,7 @@ OPipe::OPipe(const OPipe& pipe) :
+ OReference(), OObject()
+ {
+ 	
+-	VOS_ASSERT(pipe.m_pPipeRef != 0);
++	OSL_ASSERT(pipe.m_pPipeRef != 0);
+ 
+ 	m_pPipeRef= pipe.m_pPipeRef;
+ 
+@@ -136,7 +136,7 @@ sal_Bool OPipe::create( const rtl::OUString& strName, TPipeOption Options )
+ 								   (oslPipeOptions)Options, 
+ 								   NULL));
+ 
+-	VOS_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
++	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+ 
+ 	return (*m_pPipeRef)() != 0;
+ }
+@@ -161,7 +161,7 @@ sal_Bool OPipe::create( const rtl::OUString& strName,
+ 								   (oslPipeOptions)Options, 
+ 								   (oslSecurity)rSecurity));
+ 
+-	VOS_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
++	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+ 
+ 	return (*m_pPipeRef)() != 0;
+ }
+@@ -171,7 +171,7 @@ sal_Bool OPipe::create( const rtl::OUString& strName,
+ /*****************************************************************************/
+ OPipe& OPipe::operator= (const OPipe& pipe)
+ {
+-	VOS_PRECOND(pipe.m_pPipeRef != 0, "OPipe::operator=: tried to assign an empty/invalid pipe\n");
++	OSL_PRECOND(pipe.m_pPipeRef != 0, "OPipe::operator=: tried to assign an empty/invalid pipe\n");
+ 
+ 	if (m_pPipeRef == pipe.m_pPipeRef)
+ 		return *this;
+@@ -196,7 +196,7 @@ OPipe& OPipe::operator= (const OPipe& pipe)
+ /*****************************************************************************/
+ OPipe::operator oslPipe() const
+ {
+-	VOS_ASSERT(m_pPipeRef);
++	OSL_ASSERT(m_pPipeRef);
+ 	return (*m_pPipeRef)();
+ }
+ 
+@@ -306,7 +306,7 @@ OStreamPipe::OStreamPipe(oslPipe Pipe) :
+ OStreamPipe::OStreamPipe(const OStreamPipe& pipe) :
+ OPipe(), IStream()
+ {
+-	VOS_ASSERT(pipe.m_pPipeRef != 0);
++	OSL_ASSERT(pipe.m_pPipeRef != 0);
+ 
+ 	m_pPipeRef= pipe.m_pPipeRef;
+ 
+@@ -336,7 +336,7 @@ OStreamPipe& OStreamPipe::operator=(oslPipe Pipe)
+ 
+ 	m_pPipeRef= new PipeRef(Pipe);
+ 
+-	VOS_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
++	OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n");
+ 
+ 	return *this;
+ }
+@@ -356,7 +356,7 @@ OStreamPipe& OStreamPipe::operator= (const OPipe& pipe)
+ /*****************************************************************************/
+ sal_Int32 OStreamPipe::read(void* pBuffer, sal_uInt32 n) const
+ {
+-	VOS_ASSERT(m_pPipeRef && (*m_pPipeRef)());
++	OSL_ASSERT(m_pPipeRef && (*m_pPipeRef)());
+ 
+ 	/* loop until all desired bytes were read or an error occured */
+ 	sal_Int32 BytesRead= 0;
+@@ -387,7 +387,7 @@ sal_Int32 OStreamPipe::read(void* pBuffer, sal_uInt32 n) const
+ /*****************************************************************************/
+ sal_Int32 OStreamPipe::write(const void* pBuffer, sal_uInt32 n)
+ {
+-	VOS_ASSERT(m_pPipeRef && (*m_pPipeRef)());
++	OSL_ASSERT(m_pPipeRef && (*m_pPipeRef)());
+ 
+ 	/* loop until all desired bytes were send or an error occured */
+ 	sal_Int32 BytesSend= 0;
+diff --git a/vos/source/process.cxx b/vos/source/process.cxx
+index a616532..227ce63 100644
+--- vos/source/process.cxx
++++ vos/source/process.cxx
+@@ -42,7 +42,7 @@
+ #endif
+ 
+ #include "vos/process.hxx"
+-#include "vos/diagnose.hxx"
++#include "osl/diagnose.h"
+ #include <osl/file.hxx>
+ 
+ #define MAX_RESOURCES	100
+diff --git a/vos/source/refernce.cxx b/vos/source/refernce.cxx
+index 28a081a..8f06992 100644
+--- vos/source/refernce.cxx
++++ vos/source/refernce.cxx
+@@ -35,7 +35,7 @@
+ 
+ 
+ #include <limits.h>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ #include <vos/refernce.hxx>
+ 
+@@ -53,7 +53,7 @@ OReference::OReference()
+ 
+ OReference::~OReference() 
+ {
+-	VOS_ASSERT(m_RefCount.referenced() == 0);
++	OSL_ASSERT(m_RefCount.referenced() == 0);
+ }
+ 
+ IReference::RefCount OReference::acquire() 
+diff --git a/vos/source/security.cxx b/vos/source/security.cxx
+index eeaf046..cb33330 100644
+--- vos/source/security.cxx
++++ vos/source/security.cxx
+@@ -35,7 +35,7 @@
+ 
+ 
+ #include <vos/security.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ 
+ using namespace vos;
+ 
+@@ -81,7 +81,7 @@ sal_Bool OSecurity::logonUser( const rtl::OUString& strName,
+ 
+ sal_Bool OSecurity::getUserIdent( rtl::OUString& strIdent) const
+ {
+-	VOS_ASSERT(m_oslSecurity);
++	OSL_ASSERT(m_oslSecurity);
+ 	
+     return osl_getUserIdent( m_oslSecurity, &strIdent.pData );
+ }
+@@ -89,7 +89,7 @@ sal_Bool OSecurity::getUserIdent( rtl::OUString& strIdent) const
+ 
+ sal_Bool OSecurity::getUserName( rtl::OUString& strName ) const
+ {
+-	VOS_ASSERT(m_oslSecurity);
++	OSL_ASSERT(m_oslSecurity);
+ 
+     return osl_getUserName( m_oslSecurity, &strName.pData );
+ }
+@@ -97,7 +97,7 @@ sal_Bool OSecurity::getUserName( rtl::OUString& strName ) const
+ 
+ sal_Bool OSecurity::getHomeDir( rtl::OUString& strDirectory) const
+ {
+-	VOS_ASSERT(m_oslSecurity);
++	OSL_ASSERT(m_oslSecurity);
+ 	
+     return osl_getHomeDir(m_oslSecurity, &strDirectory.pData );
+ }
+@@ -105,14 +105,14 @@ sal_Bool OSecurity::getHomeDir( rtl::OUString& strDirectory) const
+ 
+ sal_Bool OSecurity::getConfigDir( rtl::OUString& strDirectory ) const
+ {
+-	VOS_ASSERT(m_oslSecurity);
++	OSL_ASSERT(m_oslSecurity);
+ 	
+     return osl_getConfigDir( m_oslSecurity, &strDirectory.pData );
+ }
+ 
+ sal_Bool OSecurity::isAdministrator() const
+ {
+-	VOS_ASSERT(m_oslSecurity);
++	OSL_ASSERT(m_oslSecurity);
+ 
+     return osl_isAdministrator(m_oslSecurity);
+ }
+diff --git a/vos/source/signal.cxx b/vos/source/signal.cxx
+index 7f6c7ad..a0f8f57 100644
+--- vos/source/signal.cxx
++++ vos/source/signal.cxx
+@@ -34,7 +34,7 @@
+  ************************************************************************/
+ 
+ 
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <vos/object.hxx>
+ #include <vos/signal.hxx>
+ 
+diff --git a/vos/source/socket.cxx b/vos/source/socket.cxx
+index 20edc40..5c25093 100644
+--- vos/source/socket.cxx
++++ vos/source/socket.cxx
+@@ -41,7 +41,7 @@
+ #include <osl/time.h>
+ #endif
+ #include <vos/socket.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ //#include <osl/tools.h>
+ 
+ using namespace vos;
+@@ -183,7 +183,7 @@ OInetSocketAddr::OInetSocketAddr()
+ OInetSocketAddr::OInetSocketAddr(oslSocketAddr Addr) :
+ 	OSocketAddr(Addr)
+ {
+-	VOS_ASSERT(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyInet);
++	OSL_ASSERT(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyInet);
+ }
+ 
+ /*****************************************************************************/
+@@ -205,7 +205,7 @@ OInetSocketAddr::OInetSocketAddr(const rtl::OUString& ustrAddrOrHostname, sal_In
+ 		if(m_SockAddr)
+ 		{
+ 			// set port will fail if addrtype is not osl_Socket_FamilyInet
+-			VOS_VERIFY(osl_setInetPortOfSocketAddr(m_SockAddr, Port));
++			OSL_VERIFY(osl_setInetPortOfSocketAddr(m_SockAddr, Port));
+ 		}
+ 	}
+ }
+@@ -216,7 +216,7 @@ OInetSocketAddr::OInetSocketAddr(const rtl::OUString& ustrAddrOrHostname, sal_In
+ OInetSocketAddr::OInetSocketAddr(const OInetSocketAddr& sa) :
+ 	OSocketAddr(sa)
+ {
+-	VOS_ASSERT(getFamily() == TFamily_Inet);
++	OSL_ASSERT(getFamily() == TFamily_Inet);
+ }   
+ 
+ /*****************************************************************************/
+@@ -225,7 +225,7 @@ OInetSocketAddr::OInetSocketAddr(const OInetSocketAddr& sa) :
+ OInetSocketAddr::OInetSocketAddr(const OSocketAddr& sa) :
+ 	OSocketAddr(sa)
+ {
+-	VOS_ASSERT(sa.getFamily() == TFamily_Inet);
++	OSL_ASSERT(sa.getFamily() == TFamily_Inet);
+ }   
+ 
+ /*****************************************************************************/
+@@ -240,7 +240,7 @@ OInetSocketAddr::~OInetSocketAddr()
+ /*****************************************************************************/
+ void OInetSocketAddr::operator= (oslSocketAddr Addr)
+ {
+-	VOS_PRECOND(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyInet, 
++	OSL_PRECOND(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyInet, 
+ 				"oslSocketAddr not of type osl_Socket_FamilyInet!");
+ 
+ 	OSocketAddr::operator=(Addr);
+@@ -259,7 +259,7 @@ sal_Bool OInetSocketAddr::operator== (oslSocketAddr Addr)
+ /*****************************************************************************/
+ OInetSocketAddr& OInetSocketAddr::operator=(const OInetSocketAddr& Addr)
+ {
+-	VOS_ASSERT(Addr.getFamily() == TFamily_Inet);
++	OSL_ASSERT(Addr.getFamily() == TFamily_Inet);
+ 
+ 	OSocketAddr::operator=(Addr);
+ 
+@@ -271,7 +271,7 @@ OInetSocketAddr& OInetSocketAddr::operator=(const OInetSocketAddr& Addr)
+ /*****************************************************************************/
+ OInetSocketAddr& OInetSocketAddr::operator=(const OSocketAddr& Addr)
+ {
+-	VOS_ASSERT(Addr.getFamily() == TFamily_Inet);
++	OSL_ASSERT(Addr.getFamily() == TFamily_Inet);
+ 
+ 	OSocketAddr::operator=(Addr);
+ 
+@@ -347,7 +347,7 @@ sal_Bool OInetSocketAddr::setAddr(const rtl::OUString& ustrAddrOrHostname)
+ 		}
+ 
+ 		// set port will fail if addrtype is not osl_Socket_FamilyInet
+-		VOS_VERIFY(osl_setInetPortOfSocketAddr(m_SockAddr, Port));
++		OSL_VERIFY(osl_setInetPortOfSocketAddr(m_SockAddr, Port));
+ 
+ 	}
+ 
+@@ -376,7 +376,7 @@ OIpxSocketAddr::OIpxSocketAddr()
+ OIpxSocketAddr::OIpxSocketAddr(oslSocketAddr Addr) :
+ 	OSocketAddr(Addr)
+ {
+-	VOS_ASSERT(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyIpx);
++	OSL_ASSERT(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyIpx);
+ }
+ 
+ /*****************************************************************************/
+@@ -395,7 +395,7 @@ OIpxSocketAddr::OIpxSocketAddr(const rtl::OUString&,
+ OIpxSocketAddr::OIpxSocketAddr(const OIpxSocketAddr& sa) :
+ 	OSocketAddr(sa)
+ {
+-	VOS_ASSERT(sa.getFamily() == TFamily_Ipx);
++	OSL_ASSERT(sa.getFamily() == TFamily_Ipx);
+ }
+ 
+ 
+@@ -405,7 +405,7 @@ OIpxSocketAddr::OIpxSocketAddr(const OIpxSocketAddr& sa) :
+ OIpxSocketAddr::OIpxSocketAddr(const OSocketAddr& sa) :
+ 	OSocketAddr(sa)
+ {
+-	VOS_ASSERT(sa.getFamily() == TFamily_Ipx);
++	OSL_ASSERT(sa.getFamily() == TFamily_Ipx);
+ }
+ 
+ /*****************************************************************************/
+@@ -421,7 +421,7 @@ OIpxSocketAddr::~OIpxSocketAddr()
+ /*****************************************************************************/
+ void OIpxSocketAddr::operator= (oslSocketAddr Addr)
+ {
+-	VOS_PRECOND(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyIpx, 
++	OSL_PRECOND(osl_getFamilyOfSocketAddr(Addr) == osl_Socket_FamilyIpx, 
+ 			"oslSocketAddr not of type osl_Socket_FamilyIpx!");
+ 
+ 	OSocketAddr::operator=(Addr);
+@@ -440,7 +440,7 @@ sal_Bool OIpxSocketAddr::operator== (oslSocketAddr Addr)
+ /*****************************************************************************/
+ OIpxSocketAddr& OIpxSocketAddr::operator=(const OIpxSocketAddr& Addr)
+ {
+-	VOS_ASSERT(Addr.getFamily() == TFamily_Ipx);
++	OSL_ASSERT(Addr.getFamily() == TFamily_Ipx);
+ 
+ 	OSocketAddr::operator=(Addr);
+ 
+@@ -452,7 +452,7 @@ OIpxSocketAddr& OIpxSocketAddr::operator=(const OIpxSocketAddr& Addr)
+ /*****************************************************************************/
+ OIpxSocketAddr& OIpxSocketAddr::operator=(const OSocketAddr& Addr)
+ {
+-	VOS_ASSERT(Addr.getFamily() == TFamily_Ipx);
++	OSL_ASSERT(Addr.getFamily() == TFamily_Ipx);
+ 
+ 	OSocketAddr::operator=(Addr);
+ 
+@@ -532,8 +532,8 @@ OSocket::OSocket(TSocketType Type,
+ 									 (oslSocketType)Type, 
+ 									 (oslProtocol)Protocol));
+ 	
+-	VOS_POSTCOND(m_pSockRef != 0, "OSocket(): new failed.\n");
+-	VOS_POSTCOND((*m_pSockRef)(), "OSocket(): creation of socket failed!\n");
++	OSL_POSTCOND(m_pSockRef != 0, "OSocket(): new failed.\n");
++	OSL_POSTCOND((*m_pSockRef)(), "OSocket(): creation of socket failed!\n");
+ }
+ 
+ /*****************************************************************************/
+@@ -546,7 +546,7 @@ ISocketTypes(), OReference(), OObject()
+ 	m_pSendTimeout = 0;
+ 	m_pSockRef=0;
+     
+-	VOS_ASSERT(sock.m_pSockRef != 0);
++	OSL_ASSERT(sock.m_pSockRef != 0);
+ 
+     if ( sock.m_pSockRef !=0 )
+     {    
+@@ -603,7 +603,7 @@ sal_Bool OSocket::create(TSocketType Type,
+ 									 (oslSocketType)Type, 
+ 									 (oslProtocol)Protocol));
+ 
+-	VOS_POSTCOND(m_pSockRef != 0, "OSocket(): new failed.\n");
++	OSL_POSTCOND(m_pSockRef != 0, "OSocket(): new failed.\n");
+ 
+ 	return (*m_pSockRef)() != 0;
+ }
+@@ -613,7 +613,7 @@ sal_Bool OSocket::create(TSocketType Type,
+ /*****************************************************************************/
+ OSocket& OSocket::operator= (const OSocket& sock)
+ {
+-	VOS_PRECOND(sock.m_pSockRef != 0, "OSocket::operator=: tried to assign an empty/invalid socket\n");
++	OSL_PRECOND(sock.m_pSockRef != 0, "OSocket::operator=: tried to assign an empty/invalid socket\n");
+ 
+ 	if (m_pSockRef == sock.m_pSockRef)
+ 		return *this;
+@@ -641,7 +641,7 @@ OSocket& OSocket::operator= (const OSocket& sock)
+ /*****************************************************************************/
+ OSocket::operator oslSocket() const
+ {
+-	VOS_ASSERT(m_pSockRef);
++	OSL_ASSERT(m_pSockRef);
+ 	return (*m_pSockRef)();
+ }
+ 
+@@ -673,7 +673,7 @@ void OSocket::close()
+ /*****************************************************************************/
+ void OSocket::getLocalAddr(OSocketAddr& sa) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -686,7 +686,7 @@ void OSocket::getLocalAddr(OSocketAddr& sa) const
+ /*****************************************************************************/
+ sal_Int32 OSocket::getLocalPort() const 
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+ 	sal_Int32 Port= OSL_INVALID_PORT;
+ 
+@@ -709,7 +709,7 @@ sal_Int32 OSocket::getLocalPort() const
+ /*****************************************************************************/
+ OSocket::TResult OSocket::getLocalHost( rtl::OUString& pBuffer) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -736,7 +736,7 @@ OSocket::TResult OSocket::getLocalHost( rtl::OUString& pBuffer) const
+ /*****************************************************************************/
+ void OSocket::getPeerAddr(OSocketAddr& sa) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -749,7 +749,7 @@ void OSocket::getPeerAddr(OSocketAddr& sa) const
+ /*****************************************************************************/
+ sal_Int32 OSocket::getPeerPort() const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     sal_Int32 Port= OSL_INVALID_PORT;
+     
+@@ -772,7 +772,7 @@ sal_Int32 OSocket::getPeerPort() const
+ /*****************************************************************************/
+ OSocket::TResult OSocket::getPeerHost( rtl::OUString& pBuffer ) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {
+@@ -799,7 +799,7 @@ OSocket::TResult OSocket::getPeerHost( rtl::OUString& pBuffer ) const
+ /*****************************************************************************/
+ sal_Bool OSocket::bind(const OSocketAddr& Addr)
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {
+@@ -841,7 +841,7 @@ void OSocket::setRecvTimeout(const TimeValue* pTimeout)
+ /*****************************************************************************/
+ sal_Bool OSocket::isRecvReady(const TimeValue* pTimeout) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -856,7 +856,7 @@ sal_Bool OSocket::isRecvReady(const TimeValue* pTimeout) const
+ /*****************************************************************************/
+ sal_Bool OSocket::isSendReady(const TimeValue* pTimeout) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {
+@@ -871,7 +871,7 @@ sal_Bool OSocket::isSendReady(const TimeValue* pTimeout) const
+ /*****************************************************************************/
+ sal_Bool OSocket::isExceptionPending(const TimeValue* pTimeout) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -890,7 +890,7 @@ sal_Int32 OSocket::getOption(TSocketOption Option,
+ 					       sal_uInt32 BufferLen,
+ 					       TSocketOptionLevel Level) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {
+@@ -912,7 +912,7 @@ sal_Bool OSocket::setOption(TSocketOption Option,
+ 						   sal_uInt32 BufferLen,
+ 						   TSocketOptionLevel Level) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -932,7 +932,7 @@ sal_Bool OSocket::setOption(TSocketOption Option,
+ /*****************************************************************************/
+ sal_Bool OSocket::enableNonBlockingMode(sal_Bool On)
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -947,7 +947,7 @@ sal_Bool OSocket::enableNonBlockingMode(sal_Bool On)
+ /*****************************************************************************/
+ sal_Bool OSocket::isNonBlockingMode() const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -962,7 +962,7 @@ sal_Bool OSocket::isNonBlockingMode() const
+ /*****************************************************************************/
+ OSocket::TSocketType OSocket::getType() const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -1157,7 +1157,7 @@ sal_Int32 OSocket::setTcpNoDelay(sal_Int32 sz) const
+ //void OSocket::getError(sal_Char* pBuffer, sal_uInt32 nSize) const
+ void OSocket::getError( rtl::OUString& pBuffer ) const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());    
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());    
+ 
+     if (m_pSockRef && (*m_pSockRef)())
+ 		osl_getLastSocketErrorDescription((*m_pSockRef)(), &pBuffer.pData );
+@@ -1170,7 +1170,7 @@ void OSocket::getError( rtl::OUString& pBuffer ) const
+ /*****************************************************************************/
+ OSocket::TSocketError OSocket::getError() const
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());    
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());    
+ 
+     if (m_pSockRef && (*m_pSockRef)())
+ 		return (TSocketError)osl_getLastSocketError((*m_pSockRef)());
+@@ -1236,7 +1236,7 @@ void OAcceptorSocket::close()
+ /*****************************************************************************/
+ sal_Bool OAcceptorSocket::listen(sal_Int32 MaxPendingConnections)
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -1255,7 +1255,7 @@ OSocket::TResult OAcceptorSocket::acceptConnection(OStreamSocket& connection)
+ 	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+ 		return TResult_TimedOut;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+     OStreamSocket aSocket;
+     
+     if ( m_pSockRef && (*m_pSockRef)() )
+@@ -1287,7 +1287,7 @@ OSocket::TResult OAcceptorSocket::acceptConnection(OStreamSocket& connection,
+ 	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+ 		return TResult_TimedOut;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -1420,7 +1420,7 @@ sal_Int32 OStreamSocket::read(void* pBuffer, sal_uInt32 n) const
+ 	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+ 		return 0;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+     {
+@@ -1467,7 +1467,7 @@ sal_Int32 OStreamSocket::write(const void* pBuffer, sal_uInt32 n)
+ 	if (m_pSendTimeout && ! isSendReady(m_pSendTimeout))
+ 		return 0;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+     {
+@@ -1520,7 +1520,7 @@ sal_Int32 OStreamSocket::recv(void* pBuffer,
+ 	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout))
+ 		return 0;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+     {
+@@ -1543,7 +1543,7 @@ sal_Int32 OStreamSocket::send(const void* pBuffer,
+ 	if (m_pSendTimeout && ! isSendReady(m_pSendTimeout)) 
+ 		return 0;
+ 	
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+     {
+@@ -1561,7 +1561,7 @@ sal_Int32 OStreamSocket::send(const void* pBuffer,
+ /*****************************************************************************/
+ sal_Bool OStreamSocket::shutdown(TSocketDirection Direction)
+ {
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {
+@@ -1611,7 +1611,7 @@ OSocket::TResult OConnectorSocket::connect(const OSocketAddr& Addr,
+ 										   const TimeValue* pTimeout)
+ {
+ 	
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( m_pSockRef && (*m_pSockRef)() )
+     {    
+@@ -1667,7 +1667,7 @@ sal_Int32 ODatagramSocket::recvFrom(void* pBuffer,
+ 	if (m_pRecvTimeout && ! isRecvReady(m_pRecvTimeout)) 
+ 		return 0;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( ! ( m_pSockRef && (*m_pSockRef)() ) )
+     {
+@@ -1717,7 +1717,7 @@ sal_Int32 ODatagramSocket::sendTo(const OSocketAddr& ReceiverAddr,
+ 	if (m_pSendTimeout && ! isSendReady(m_pSendTimeout)) 
+ 		return 0;
+ 
+-	VOS_ASSERT(m_pSockRef && (*m_pSockRef)());
++	OSL_ASSERT(m_pSockRef && (*m_pSockRef)());
+ 
+     if ( ( m_pSockRef && (*m_pSockRef)() ) )
+     {
+diff --git a/vos/source/thread.cxx b/vos/source/thread.cxx
+index 2dd926a..a70ef36 100644
+--- vos/source/thread.cxx
++++ vos/source/thread.cxx
+@@ -36,7 +36,7 @@
+ #ifndef _OSL_TIME_H_
+ #include <osl/time.h>
+ #endif
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <vos/object.hxx>
+ #include <vos/thread.hxx>
+ 
+@@ -86,7 +86,7 @@ OThread::~OThread()
+ 
+ sal_Bool OThread::create() 
+ {
+-	VOS_ASSERT(m_hThread == 0);	// only one running thread per instance
++	OSL_ASSERT(m_hThread == 0);	// only one running thread per instance
+ 
+     m_hThread = osl_createSuspendedThread(
+         threadWorkerFunction_impl, (void*)this);
+@@ -98,7 +98,7 @@ sal_Bool OThread::create()
+ 
+ sal_Bool OThread::createSuspended() 
+ {
+-	VOS_ASSERT(m_hThread == 0);	// only one running thread per instance
++	OSL_ASSERT(m_hThread == 0);	// only one running thread per instance
+ 
+ 	m_hThread= osl_createSuspendedThread(threadWorkerFunction_impl, (void*)this);
+ 	return m_hThread != 0;
+@@ -106,14 +106,14 @@ sal_Bool OThread::createSuspended()
+ 
+ void OThread::suspend() 
+ {
+-	VOS_ASSERT(m_hThread != 0);	// use only on running thread
++	OSL_ASSERT(m_hThread != 0);	// use only on running thread
+ 
+ 	osl_suspendThread(m_hThread);
+ }
+ 
+ void OThread::resume() 
+ {
+-	VOS_ASSERT(m_hThread != 0);	// use only on running thread
++	OSL_ASSERT(m_hThread != 0);	// use only on running thread
+ 
+ 	osl_resumeThread(m_hThread);
+ }
+@@ -136,7 +136,7 @@ OThread::TThreadIdentifier OThread::getCurrentIdentifier()
+ void OThread::join() 
+ {
+ 	if (m_hThread) {
+-		VOS_ASSERT(getCurrentIdentifier() != getIdentifier());
++		OSL_ASSERT(getCurrentIdentifier() != getIdentifier());
+ 		osl_joinWithThread(m_hThread);
+ 	}
+ }
+@@ -226,7 +226,7 @@ VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OThreadData, vos),
+ OThreadData::OThreadData( oslThreadKeyCallbackFunction pCallback )
+ {
+     m_hKey = osl_createThreadKey( pCallback );
+-	VOS_VERIFY(m_hKey);
++	OSL_VERIFY(m_hKey);
+ }
+ 
+ OThreadData::~OThreadData()
+@@ -236,14 +236,14 @@ OThreadData::~OThreadData()
+ 
+ sal_Bool OThreadData::setData(void *pData)
+ {
+-	VOS_ASSERT(m_hKey != 0);
++	OSL_ASSERT(m_hKey != 0);
+ 
+ 	return (osl_setThreadKeyData(m_hKey, pData));
+ }
+ 
+ void *OThreadData::getData()
+ {
+-	VOS_ASSERT(m_hKey != 0);
++	OSL_ASSERT(m_hKey != 0);
+ 
+ 	return (osl_getThreadKeyData(m_hKey));
+ }
+diff --git a/vos/source/timer.cxx b/vos/source/timer.cxx
+index 5da24fe..38239ff 100644
+--- vos/source/timer.cxx
++++ vos/source/timer.cxx
+@@ -38,7 +38,7 @@
+ #endif
+ 
+ #include <vos/timer.hxx>
+-#include <vos/diagnose.hxx>
++#include <osl/diagnose.h>
+ #include <vos/ref.hxx>
+ #include <vos/thread.hxx>
+ #include <vos/conditn.hxx>
+@@ -157,7 +157,7 @@ void OTimer::start()
+ 
+ 		OTimerManager *pManager = OTimerManager::getTimerManager();
+ 
+-		VOS_ASSERT(pManager);
++		OSL_ASSERT(pManager);
+ 
+ 		if ( pManager != 0 )
+ 		{
+@@ -170,7 +170,7 @@ void OTimer::stop()
+ {
+ 	OTimerManager *pManager = OTimerManager::getTimerManager();
+ 
+-	VOS_ASSERT(pManager);
++	OSL_ASSERT(pManager);
+ 
+ 	if ( pManager != 0 )
+ 	{
+@@ -182,7 +182,7 @@ sal_Bool OTimer::isTicking() const
+ {
+ 	OTimerManager *pManager = OTimerManager::getTimerManager();
+ 
+-	VOS_ASSERT(pManager);
++	OSL_ASSERT(pManager);
+ 
+ 	if (pManager)
+ 		return pManager->lookupTimer(this);
+@@ -202,7 +202,7 @@ sal_Bool OTimer::isExpired() const
+ 
+ sal_Bool OTimer::expiresBefore(const OTimer* pTimer) const
+ {
+-	VOS_ASSERT(pTimer);
++	OSL_ASSERT(pTimer);
+ 
+ 	if ( pTimer != 0 )
+ 	{
+@@ -284,7 +284,7 @@ OTimerManager::OTimerManager()
+ {
+ 	OGuard Guard(&m_Access);
+ 
+-	VOS_ASSERT(m_pManager == 0);
++	OSL_ASSERT(m_pManager == 0);
+ 
+ 	m_pManager = this;
+ 
+@@ -321,7 +321,7 @@ OTimerManager* OTimerManager::getTimerManager()
+ 
+ sal_Bool OTimerManager::registerTimer(OTimer* pTimer)
+ {
+-	VOS_ASSERT(pTimer);
++	OSL_ASSERT(pTimer);
+ 
+ 	if ( pTimer == 0 )
+ 	{
+@@ -362,7 +362,7 @@ sal_Bool OTimerManager::registerTimer(OTimer* pTimer)
+ 
+ sal_Bool OTimerManager::unregisterTimer(OTimer* pTimer)
+ {
+-	VOS_ASSERT(pTimer);
++	OSL_ASSERT(pTimer);
+ 
+ 	if ( pTimer == 0 )
+ 	{
+@@ -390,7 +390,7 @@ sal_Bool OTimerManager::unregisterTimer(OTimer* pTimer)
+ 
+ sal_Bool OTimerManager::lookupTimer(const OTimer* pTimer) 
+ {
+-	VOS_ASSERT(pTimer);
++	OSL_ASSERT(pTimer);
+ 
+ 	if ( pTimer == 0 )
+ 	{
+diff --git a/xmlhelp/source/cxxhelp/provider/content.cxx b/xmlhelp/source/cxxhelp/provider/content.cxx
+index 30c9c46..6430222 100644
+--- xmlhelp/source/cxxhelp/provider/content.cxx
++++ xmlhelp/source/cxxhelp/provider/content.cxx
+@@ -78,8 +78,8 @@
+ #ifndef _COM_SUN_STAR_UCB_XPERSISTENTPROPERTYSET_HPP_
+ #include <com/sun/star/ucb/XPersistentPropertySet.hpp>
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _UCBHELPER_CONTENTIDENTIFIER_HXX
+ #include <ucbhelper/contentidentifier.hxx>
+diff --git a/xmlhelp/source/cxxhelp/provider/databases.cxx b/xmlhelp/source/cxxhelp/provider/databases.cxx
+index fa1d811..bac0a44 100644
+--- xmlhelp/source/cxxhelp/provider/databases.cxx
++++ xmlhelp/source/cxxhelp/provider/databases.cxx
+@@ -39,8 +39,8 @@
+ #ifndef BERKELEYDBPROXY_DB_HXX_
+ #include "db.hxx"
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _OSL_THREAD_H_
+ #include <osl/thread.h>
+@@ -326,7 +326,7 @@ rtl::OUString Databases::getInstallPathAsSystemPath()
+ 		bool bla =
+ 			osl::FileBase::E_None ==
+ 			osl::FileBase::getSystemPathFromFileURL( m_aInstallDirectory,m_aInstallDirectoryAsSystemPath );
+-        VOS_ENSURE( bla,"HelpProvider, no installpath" );
++        OSL_ENSURE( bla,"HelpProvider, no installpath" );
+ #else                    
+         osl::FileBase::getSystemPathFromFileURL( m_aInstallDirectory,m_aInstallDirectoryAsSystemPath );		
+ #endif
+@@ -899,7 +899,7 @@ Reference< XHierarchicalNameAccess > Databases::jarFile( const rtl::OUString& ja
+ 			{
+ 				it->second = Reference< XHierarchicalNameAccess >( xIfc, UNO_QUERY );
+ 				
+-				VOS_ENSURE( it->second.is(),
++				OSL_ENSURE( it->second.is(),
+ 							"ContentProvider::createPackage - "
+ 							"Got no hierarchical name access!" );
+ 				
+diff --git a/xmlhelp/source/cxxhelp/provider/provider.cxx b/xmlhelp/source/cxxhelp/provider/provider.cxx
+index 0a192a4..527f1a5 100644
+--- xmlhelp/source/cxxhelp/provider/provider.cxx
++++ xmlhelp/source/cxxhelp/provider/provider.cxx
+@@ -46,8 +46,8 @@
+ #ifndef _OSL_FILE_HXX_
+ #include <osl/file.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _UCBHELPER_CONTENTIDENTIFIER_HXX
+ #include <ucbhelper/contentidentifier.hxx>
+diff --git a/xmlhelp/source/cxxhelp/provider/urlparameter.cxx b/xmlhelp/source/cxxhelp/provider/urlparameter.cxx
+index 124f57a..92c6cd0 100644
+--- xmlhelp/source/cxxhelp/provider/urlparameter.cxx
++++ xmlhelp/source/cxxhelp/provider/urlparameter.cxx
+@@ -43,8 +43,8 @@
+ #endif
+ 
+ #include <string.h>
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _OSL_THREAD_H_
+ #include <osl/thread.h>
+diff --git a/xmlhelp/source/treeview/tvread.cxx b/xmlhelp/source/treeview/tvread.cxx
+index ffad2ac..0e561d5 100644
+--- xmlhelp/source/treeview/tvread.cxx
++++ xmlhelp/source/treeview/tvread.cxx
+@@ -41,8 +41,8 @@
+ #ifndef _RTL_USTRBUF_HXX_
+ #include <rtl/ustrbuf.hxx>
+ #endif
+-#ifndef _VOS_DIAGNOSE_HXX_
+-#include <vos/diagnose.hxx>
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
+ #endif
+ #ifndef _TREEVIEW_TVREAD_HXX_
+ #include "tvread.hxx"
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/hsqldb-private-protected-to-public.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/hsqldb-private-protected-to-public.diff
@@ -0,0 +1,23064 @@
+Index: hsqldb_1_8_0
+===================================================================
+RCS file: /cvs/external/hsqldb/hsqldb_1_8_0,v
+retrieving revision 1.15.2.1
+diff -u -u -r1.15.2.1 hsqldb_1_8_0
+--- hsqldb/hsqldb_1_8_0	30 Oct 2007 14:08:25 -0000	1.15.2.1
++++ hsqldb/hsqldb_1_8_0	3 Nov 2007 23:38:09 -0000
+@@ -24,3 +24,23056 @@
+      <property name="hsqldb.title" value="HSQLDB"/>
+      <property name="hsqldb.vendor" value="The HSQLDB Development Group"/>
+      <property name="src" value="${basedir}/src"/>
+++diff -crN hsqldb-old/src/org/hsqldb/BaseMemoryNode.java hsqldb/src/org/hsqldb/BaseMemoryNode.java
+++*** hsqldb-old/src/org/hsqldb/BaseMemoryNode.java	2006-06-15 13:20:26.000000000 +0200
+++--- hsqldb/src/org/hsqldb/BaseMemoryNode.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 83,91 ****
+++   */
+++  abstract class BaseMemoryNode extends Node {
+++  
+++!     protected Node nLeft;
+++!     protected Node nRight;
+++!     protected Node nParent;
+++  
+++      void delete() {
+++          iBalance = -2;
+++--- 83,91 ----
+++   */
+++  abstract class BaseMemoryNode extends Node {
+++  
+++!     public Node nLeft;
+++!     public Node nRight;
+++!     public Node nParent;
+++  
+++      void delete() {
+++          iBalance = -2;
+++diff -crN hsqldb-old/src/org/hsqldb/CachedRow.java hsqldb/src/org/hsqldb/CachedRow.java
+++*** hsqldb-old/src/org/hsqldb/CachedRow.java	2006-07-15 22:58:02.000000000 +0200
+++--- hsqldb/src/org/hsqldb/CachedRow.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 99,111 ****
+++      static final int NO_POS = -1;
+++  
+++      //
+++!     protected Table tTable;
+++      int             storageSize;
+++  
+++      /**
+++       *  Flag indicating unwritten data.
+++       */
+++!     protected boolean hasDataChanged;
+++  
+++      /**
+++       *  Flag indicating Node data has changed.
+++--- 99,111 ----
+++      static final int NO_POS = -1;
+++  
+++      //
+++!     public Table tTable;
+++      int             storageSize;
+++  
+++      /**
+++       *  Flag indicating unwritten data.
+++       */
+++!     public boolean hasDataChanged;
+++  
+++      /**
+++       *  Flag indicating Node data has changed.
+++***************
+++*** 183,189 ****
+++          oData = in.readData(tTable.getColumnTypes());
+++      }
+++  
+++!     private void readRowInfo(RowInputInterface in)
+++      throws IOException, HsqlException {
+++  
+++          // for use when additional transaction info is attached to rows
+++--- 183,189 ----
+++          oData = in.readData(tTable.getColumnTypes());
+++      }
+++  
+++!     public void readRowInfo(RowInputInterface in)
+++      throws IOException, HsqlException {
+++  
+++          // for use when additional transaction info is attached to rows
+++***************
+++*** 323,329 ****
+++          } catch (IOException e) {}
+++      }
+++  
+++!     private void writeRowInfo(RowOutputInterface out) {
+++  
+++          // for use when additional transaction info is attached to rows
+++      }
+++--- 323,329 ----
+++          } catch (IOException e) {}
+++      }
+++  
+++!     public void writeRowInfo(RowOutputInterface out) {
+++  
+++          // for use when additional transaction info is attached to rows
+++      }
+++***************
+++*** 352,358 ****
+++       * @throws IOException
+++       * @throws HsqlException
+++       */
+++!     private void writeNodes(RowOutputInterface out) throws IOException {
+++  
+++          out.writeSize(storageSize);
+++  
+++--- 352,358 ----
+++       * @throws IOException
+++       * @throws HsqlException
+++       */
+++!     public void writeNodes(RowOutputInterface out) throws IOException {
+++  
+++          out.writeSize(storageSize);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/Column.java hsqldb/src/org/hsqldb/Column.java
+++*** hsqldb-old/src/org/hsqldb/Column.java	2006-07-21 15:39:54.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Column.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 126,138 ****
+++      // most variables are final but not declared so because of a bug in
+++      // JDK 1.1.8 compiler
+++      public HsqlName         columnName;
+++!     private int             colType;
+++!     private int             colSize;
+++!     private int             colScale;
+++!     private boolean         isNullable;
+++!     private boolean         isIdentity;
+++!     private boolean         isPrimaryKey;
+++!     private Expression      defaultExpression;
+++      long                    identityStart;
+++      long                    identityIncrement;
+++      static final BigInteger MAX_LONG = BigInteger.valueOf(Long.MAX_VALUE);
+++--- 126,138 ----
+++      // most variables are final but not declared so because of a bug in
+++      // JDK 1.1.8 compiler
+++      public HsqlName         columnName;
+++!     public int             colType;
+++!     public int             colSize;
+++!     public int             colScale;
+++!     public boolean         isNullable;
+++!     public boolean         isIdentity;
+++!     public boolean         isPrimaryKey;
+++!     public Expression      defaultExpression;
+++      long                    identityStart;
+++      long                    identityIncrement;
+++      static final BigInteger MAX_LONG = BigInteger.valueOf(Long.MAX_VALUE);
+++***************
+++*** 187,193 ****
+++          }
+++      }
+++  
+++!     private Column() {}
+++  
+++      /**
+++       * Used for primary key changes.
+++--- 187,193 ----
+++          }
+++      }
+++  
+++!     public Column() {}
+++  
+++      /**
+++       * Used for primary key changes.
+++***************
+++*** 1207,1213 ****
+++       * @return
+++       * @throws  HsqlException
+++       */
+++!     private static Object convertString(String s,
+++                                          int type) throws HsqlException {
+++  
+++          switch (type) {
+++--- 1207,1213 ----
+++       * @return
+++       * @throws  HsqlException
+++       */
+++!     public static Object convertString(String s,
+++                                          int type) throws HsqlException {
+++  
+++          switch (type) {
+++diff -crN hsqldb-old/src/org/hsqldb/CompiledStatementExecutor.java hsqldb/src/org/hsqldb/CompiledStatementExecutor.java
+++*** hsqldb-old/src/org/hsqldb/CompiledStatementExecutor.java	2006-01-08 21:14:14.000000000 +0100
+++--- hsqldb/src/org/hsqldb/CompiledStatementExecutor.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 54,64 ****
+++   */
+++  final class CompiledStatementExecutor {
+++  
+++!     private Session session;
+++!     private Result  updateResult;
+++!     private static Result emptyZeroResult =
+++          new Result(ResultConstants.UPDATECOUNT);
+++!     private static Result updateOneResult =
+++          new Result(ResultConstants.UPDATECOUNT);
+++  
+++      static {
+++--- 54,64 ----
+++   */
+++  final class CompiledStatementExecutor {
+++  
+++!     public Session session;
+++!     public Result  updateResult;
+++!     public static Result emptyZeroResult =
+++          new Result(ResultConstants.UPDATECOUNT);
+++!     public static Result updateOneResult =
+++          new Result(ResultConstants.UPDATECOUNT);
+++  
+++      static {
+++***************
+++*** 120,126 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeImpl(CompiledStatement cs) throws HsqlException {
+++  
+++          switch (cs.type) {
+++  
+++--- 120,126 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeImpl(CompiledStatement cs) throws HsqlException {
+++  
+++          switch (cs.type) {
+++  
+++***************
+++*** 160,166 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeCallStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Expression e = cs.expression;          // representing CALL
+++--- 160,166 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeCallStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Expression e = cs.expression;          // representing CALL
+++***************
+++*** 197,203 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeDeleteStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table       table  = cs.targetTable;
+++--- 197,203 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeDeleteStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table       table  = cs.targetTable;
+++***************
+++*** 232,238 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeInsertSelectStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table     t   = cs.targetTable;
+++--- 232,238 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeInsertSelectStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table     t   = cs.targetTable;
+++***************
+++*** 286,292 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeInsertValuesStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table        t    = cs.targetTable;
+++--- 286,292 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeInsertValuesStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table        t    = cs.targetTable;
+++***************
+++*** 317,323 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeSelectStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Select select = cs.select;
+++--- 317,323 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeSelectStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Select select = cs.select;
+++***************
+++*** 358,364 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeUpdateStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table       table  = cs.targetTable;
+++--- 358,364 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeUpdateStatement(CompiledStatement cs)
+++      throws HsqlException {
+++  
+++          Table       table  = cs.targetTable;
+++***************
+++*** 420,426 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     private Result executeDDLStatement(CompiledStatement cs)
+++      throws HsqlException {
+++          return session.sqlExecuteDirectNoPreChecks(cs.sql);
+++      }
+++--- 420,426 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the result of executing the statement
+++       */
+++!     public Result executeDDLStatement(CompiledStatement cs)
+++      throws HsqlException {
+++          return session.sqlExecuteDirectNoPreChecks(cs.sql);
+++      }
+++diff -crN hsqldb-old/src/org/hsqldb/CompiledStatement.java hsqldb/src/org/hsqldb/CompiledStatement.java
+++*** hsqldb-old/src/org/hsqldb/CompiledStatement.java	2006-09-22 15:14:00.000000000 +0200
+++--- hsqldb/src/org/hsqldb/CompiledStatement.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 359,365 ****
+++      /**
+++       * For parameters in INSERT_VALUES and INSERT_SELECT lists
+++       */
+++!     private void resolveInsertParameterTypes() {
+++  
+++          for (int i = 0; i < select.iResultLen; i++) {
+++              Expression colexpr = select.exprColumns[i];
+++--- 359,365 ----
+++      /**
+++       * For parameters in INSERT_VALUES and INSERT_SELECT lists
+++       */
+++!     public void resolveInsertParameterTypes() {
+++  
+++          for (int i = 0; i < select.iResultLen; i++) {
+++              Expression colexpr = select.exprColumns[i];
+++***************
+++*** 372,378 ****
+++          }
+++      }
+++  
+++!     private void setParameters(Expression[] params) {
+++  
+++          this.parameters = params;
+++  
+++--- 372,378 ----
+++          }
+++      }
+++  
+++!     public void setParameters(Expression[] params) {
+++  
+++          this.parameters = params;
+++  
+++***************
+++*** 385,391 ****
+++          this.paramTypes = types;
+++      }
+++  
+++!     private void setSubqueries(SubQuery[] subqueries) {
+++          this.subqueries = subqueries;
+++      }
+++  
+++--- 385,391 ----
+++          this.paramTypes = types;
+++      }
+++  
+++!     public void setSubqueries(SubQuery[] subqueries) {
+++          this.subqueries = subqueries;
+++      }
+++  
+++***************
+++*** 485,491 ****
+++          table.checkDataReadOnly();
+++      }
+++  
+++!     private static final Result updateCountResult =
+++          new Result(ResultConstants.UPDATECOUNT);
+++  
+++      Result describeResult() {
+++--- 485,491 ----
+++          table.checkDataReadOnly();
+++      }
+++  
+++!     public static final Result updateCountResult =
+++          new Result(ResultConstants.UPDATECOUNT);
+++  
+++      Result describeResult() {
+++***************
+++*** 617,623 ****
+++       * @throws Exception if a database access or io error occurs
+++       * @return the String representation of this object
+++       */
+++!     private String describeImpl(Session session) throws Exception {
+++  
+++          StringBuffer sb;
+++  
+++--- 617,623 ----
+++       * @throws Exception if a database access or io error occurs
+++       * @return the String representation of this object
+++       */
+++!     public String describeImpl(Session session) throws Exception {
+++  
+++          StringBuffer sb;
+++  
+++***************
+++*** 691,697 ****
+++          }
+++      }
+++  
+++!     private StringBuffer appendSubqueries(StringBuffer sb) {
+++  
+++          sb.append("SUBQUERIES[");
+++  
+++--- 691,697 ----
+++          }
+++      }
+++  
+++!     public StringBuffer appendSubqueries(StringBuffer sb) {
+++  
+++          sb.append("SUBQUERIES[");
+++  
+++***************
+++*** 713,726 ****
+++          return sb;
+++      }
+++  
+++!     private StringBuffer appendTable(StringBuffer sb) {
+++  
+++          sb.append("TABLE[").append(targetTable.getName().name).append(']');
+++  
+++          return sb;
+++      }
+++  
+++!     private StringBuffer appendColumns(StringBuffer sb) {
+++  
+++          sb.append("COLUMNS=[");
+++  
+++--- 713,726 ----
+++          return sb;
+++      }
+++  
+++!     public StringBuffer appendTable(StringBuffer sb) {
+++  
+++          sb.append("TABLE[").append(targetTable.getName().name).append(']');
+++  
+++          return sb;
+++      }
+++  
+++!     public StringBuffer appendColumns(StringBuffer sb) {
+++  
+++          sb.append("COLUMNS=[");
+++  
+++***************
+++*** 736,742 ****
+++          return sb;
+++      }
+++  
+++!     private StringBuffer appendParms(StringBuffer sb) {
+++  
+++          sb.append("PARAMETERS=[");
+++  
+++--- 736,742 ----
+++          return sb;
+++      }
+++  
+++!     public StringBuffer appendParms(StringBuffer sb) {
+++  
+++          sb.append("PARAMETERS=[");
+++  
+++***************
+++*** 750,756 ****
+++          return sb;
+++      }
+++  
+++!     private StringBuffer appendCondition(Session session, StringBuffer sb) {
+++  
+++          return condition == null ? sb.append("CONDITION[]\n")
+++                                   : sb.append("CONDITION[").append(
+++--- 750,756 ----
+++          return sb;
+++      }
+++  
+++!     public StringBuffer appendCondition(Session session, StringBuffer sb) {
+++  
+++          return condition == null ? sb.append("CONDITION[]\n")
+++                                   : sb.append("CONDITION[").append(
+++diff -crN hsqldb-old/src/org/hsqldb/CompiledStatementManager.java hsqldb/src/org/hsqldb/CompiledStatementManager.java
+++*** hsqldb-old/src/org/hsqldb/CompiledStatementManager.java	2006-04-11 17:13:22.000000000 +0200
+++--- hsqldb/src/org/hsqldb/CompiledStatementManager.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 80,107 ****
+++       * The Database for which this object is managing
+++       * CompiledStatement objects.
+++       */
+++!     private Database database;
+++  
+++      /** Map: Schema id (int) => {Map: SQL String => Compiled Statement id (int)} */
+++!     private IntKeyHashMap schemaMap;
+++  
+++      /** Map: Compiled Statement id (int) => SQL String */
+++!     private IntKeyHashMap sqlLookup;
+++  
+++      /** Map: Compiled statment id (int) => CompiledStatement object. */
+++!     private IntKeyHashMap csidMap;
+++  
+++      /** Map: Session id (int) => {Map: compiled statement id (int) => use count in session} */
+++!     private IntKeyHashMap sessionUseMap;
+++  
+++      /** Map: Compiled statment id (int) => number of sessions that use the statement */
+++!     private IntKeyIntValueHashMap useMap;
+++  
+++      /**
+++       * Monotonically increasing counter used to assign unique ids to compiled
+++       * statements.
+++       */
+++!     private int next_cs_id;
+++  
+++      /**
+++       * Constructs a new instance of <code>CompiledStatementManager</code>.
+++--- 80,107 ----
+++       * The Database for which this object is managing
+++       * CompiledStatement objects.
+++       */
+++!     public Database database;
+++  
+++      /** Map: Schema id (int) => {Map: SQL String => Compiled Statement id (int)} */
+++!     public IntKeyHashMap schemaMap;
+++  
+++      /** Map: Compiled Statement id (int) => SQL String */
+++!     public IntKeyHashMap sqlLookup;
+++  
+++      /** Map: Compiled statment id (int) => CompiledStatement object. */
+++!     public IntKeyHashMap csidMap;
+++  
+++      /** Map: Session id (int) => {Map: compiled statement id (int) => use count in session} */
+++!     public IntKeyHashMap sessionUseMap;
+++  
+++      /** Map: Compiled statment id (int) => number of sessions that use the statement */
+++!     public IntKeyIntValueHashMap useMap;
+++  
+++      /**
+++       * Monotonically increasing counter used to assign unique ids to compiled
+++       * statements.
+++       */
+++!     public int next_cs_id;
+++  
+++      /**
+++       * Constructs a new instance of <code>CompiledStatementManager</code>.
+++***************
+++*** 155,161 ****
+++       *
+++       * @return the next compiled statement identifier in the sequence.
+++       */
+++!     private int nextID() {
+++  
+++          next_cs_id++;
+++  
+++--- 155,161 ----
+++       *
+++       * @return the next compiled statement identifier in the sequence.
+++       */
+++!     public int nextID() {
+++  
+++          next_cs_id++;
+++  
+++***************
+++*** 172,178 ****
+++       * @return the compiled statement identifier associated with the
+++       *      specified SQL String
+++       */
+++!     private int getStatementID(HsqlName schema, String sql) {
+++  
+++          IntValueHashMap sqlMap =
+++              (IntValueHashMap) schemaMap.get(schema.hashCode());
+++--- 172,178 ----
+++       * @return the compiled statement identifier associated with the
+++       *      specified SQL String
+++       */
+++!     public int getStatementID(HsqlName schema, String sql) {
+++  
+++          IntValueHashMap sqlMap =
+++              (IntValueHashMap) schemaMap.get(schema.hashCode());
+++***************
+++*** 229,235 ****
+++       * @param csid the compiled statement identifier
+++       * @param sid the session identifier
+++       */
+++!     private void linkSession(int csid, int sid) {
+++  
+++          IntKeyIntValueHashMap scsMap;
+++  
+++--- 229,235 ----
+++       * @param csid the compiled statement identifier
+++       * @param sid the session identifier
+++       */
+++!     public void linkSession(int csid, int sid) {
+++  
+++          IntKeyIntValueHashMap scsMap;
+++  
+++***************
+++*** 262,268 ****
+++       * @return The compiled statement id assigned to the CompiledStatement
+++       *  object
+++       */
+++!     private int registerStatement(int csid, CompiledStatement cs) {
+++  
+++          if (csid < 0) {
+++              csid = nextID();
+++--- 262,268 ----
+++       * @return The compiled statement id assigned to the CompiledStatement
+++       *  object
+++       */
+++!     public int registerStatement(int csid, CompiledStatement cs) {
+++  
+++          if (csid < 0) {
+++              csid = nextID();
+++***************
+++*** 438,444 ****
+++          return cs;
+++      }
+++  
+++!     private CompiledStatement compileSql(Session session, String sql,
+++                                           String schemaName) throws Throwable {
+++  
+++          Session sys = database.sessionManager.getSysSession(schemaName,
+++--- 438,444 ----
+++          return cs;
+++      }
+++  
+++!     public CompiledStatement compileSql(Session session, String sql,
+++                                           String schemaName) throws Throwable {
+++  
+++          Session sys = database.sessionManager.getSysSession(schemaName,
+++diff -crN hsqldb-old/src/org/hsqldb/Constraint.java hsqldb/src/org/hsqldb/Constraint.java
+++*** hsqldb-old/src/org/hsqldb/Constraint.java	2006-08-06 00:19:32.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Constraint.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 194,200 ****
+++          core.updateAction = updateAction;
+++      }
+++  
+++!     private Constraint() {}
+++  
+++      /**
+++       * Returns the HsqlName.
+++--- 194,200 ----
+++          core.updateAction = updateAction;
+++      }
+++  
+++!     public Constraint() {}
+++  
+++      /**
+++       * Returns the HsqlName.
+++***************
+++*** 206,212 ****
+++      /**
+++       * Changes constraint name.
+++       */
+++!     private void setName(String name, boolean isquoted) throws HsqlException {
+++          constName.rename(name, isquoted);
+++      }
+++  
+++--- 206,212 ----
+++      /**
+++       * Changes constraint name.
+++       */
+++!     public void setName(String name, boolean isquoted) throws HsqlException {
+++          constName.rename(name, isquoted);
+++      }
+++  
+++***************
+++*** 575,581 ****
+++       * table. Also returns true if any column covered by the foreign key
+++       * constraint has a null value.
+++       */
+++!     private static boolean hasReferencedRow(Session session,
+++              Object[] rowdata, int[] rowColArray,
+++              Index mainIndex) throws HsqlException {
+++  
+++--- 575,581 ----
+++       * table. Also returns true if any column covered by the foreign key
+++       * constraint has a null value.
+++       */
+++!     public static boolean hasReferencedRow(Session session,
+++              Object[] rowdata, int[] rowColArray,
+++              Index mainIndex) throws HsqlException {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/DatabaseCommandInterpreter.java hsqldb/src/org/hsqldb/DatabaseCommandInterpreter.java
+++*** hsqldb-old/src/org/hsqldb/DatabaseCommandInterpreter.java	2007-07-23 20:30:46.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DatabaseCommandInterpreter.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 111,119 ****
+++  // fredt@users 20041209 - patch by tytar@users to set default table type
+++  class DatabaseCommandInterpreter {
+++  
+++!     private Tokenizer tokenizer = new Tokenizer();
+++!     private Database  database;
+++!     private Session   session;
+++  
+++      /**
+++       * Constructs a new DatabaseCommandInterpreter for the given Session
+++--- 111,119 ----
+++  // fredt@users 20041209 - patch by tytar@users to set default table type
+++  class DatabaseCommandInterpreter {
+++  
+++!     public Tokenizer tokenizer = new Tokenizer();
+++!     public Database  database;
+++!     public Session   session;
+++  
+++      /**
+++       * Constructs a new DatabaseCommandInterpreter for the given Session
+++***************
+++*** 201,207 ****
+++                                : result;
+++      }
+++  
+++!     private Result executePart(int cmd, String token) throws Throwable {
+++  
+++          Result result   = Session.emptyUpdateCount;
+++          int    brackets = 0;
+++--- 201,207 ----
+++                                : result;
+++      }
+++  
+++!     public Result executePart(int cmd, String token) throws Throwable {
+++  
+++          Result result   = Session.emptyUpdateCount;
+++          int    brackets = 0;
+++***************
+++*** 389,395 ****
+++       * @throws IOException
+++       * @throws HsqlException
+++       */
+++!     private Result processScript() throws IOException, HsqlException {
+++  
+++          String           token = tokenizer.getString();
+++          ScriptWriterText dsw   = null;
+++--- 389,395 ----
+++       * @throws IOException
+++       * @throws HsqlException
+++       */
+++!     public Result processScript() throws IOException, HsqlException {
+++  
+++          String           token = tokenizer.getString();
+++          ScriptWriterText dsw   = null;
+++***************
+++*** 430,436 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processCreate() throws HsqlException {
+++  
+++          boolean unique = false;
+++          int     tableType;
+++--- 430,436 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processCreate() throws HsqlException {
+++  
+++          boolean unique = false;
+++          int     tableType;
+++***************
+++*** 550,556 ****
+++       * @return  column index map
+++       * @throws  HsqlException if a column is not found or is duplicate
+++       */
+++!     private int[] processColumnList(Table t,
+++                                      boolean acceptAscDesc)
+++                                      throws HsqlException {
+++  
+++--- 550,556 ----
+++       * @return  column index map
+++       * @throws  HsqlException if a column is not found or is duplicate
+++       */
+++!     public int[] processColumnList(Table t,
+++                                      boolean acceptAscDesc)
+++                                      throws HsqlException {
+++  
+++***************
+++*** 574,580 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processCreateTrigger() throws HsqlException {
+++  
+++          Table      t;
+++          boolean    isForEach;
+++--- 574,580 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processCreateTrigger() throws HsqlException {
+++  
+++          Table      t;
+++          boolean    isForEach;
+++***************
+++*** 694,700 ****
+++  // --
+++      }
+++  
+++!     private Column processCreateColumn() throws HsqlException {
+++  
+++          String   token    = tokenizer.getSimpleName();
+++          boolean  isQuoted = tokenizer.wasQuotedIdentifier();
+++--- 694,700 ----
+++  // --
+++      }
+++  
+++!     public Column processCreateColumn() throws HsqlException {
+++  
+++          String   token    = tokenizer.getSimpleName();
+++          boolean  isQuoted = tokenizer.wasQuotedIdentifier();
+++***************
+++*** 711,717 ****
+++       *  @return a Column object with indicated attributes
+++       *  @throws  HsqlException
+++       */
+++!     private Column processCreateColumn(HsqlName hsqlName)
+++      throws HsqlException {
+++  
+++          boolean    isIdentity        = false;
+++--- 711,717 ----
+++       *  @return a Column object with indicated attributes
+++       *  @throws  HsqlException
+++       */
+++!     public Column processCreateColumn(HsqlName hsqlName)
+++      throws HsqlException {
+++  
+++          boolean    isIdentity        = false;
+++***************
+++*** 882,888 ****
+++       * @throws HsqlException
+++       * @return new Expression
+++       */
+++!     private Expression processCreateDefaultExpression(int type, int length,
+++              int scale) throws HsqlException {
+++  
+++          if (type == Types.OTHER) {
+++--- 882,888 ----
+++       * @throws HsqlException
+++       * @return new Expression
+++       */
+++!     public Expression processCreateDefaultExpression(int type, int length,
+++              int scale) throws HsqlException {
+++  
+++          if (type == Types.OTHER) {
+++***************
+++*** 953,959 ****
+++       * @throws HsqlException
+++       * @return list of constraints
+++       */
+++!     private HsqlArrayList processCreateConstraints(Table t,
+++              boolean constraint, int[] primarykeycolumn) throws HsqlException {
+++  
+++          String        token;
+++--- 953,959 ----
+++       * @throws HsqlException
+++       * @return list of constraints
+++       */
+++!     public HsqlArrayList processCreateConstraints(Table t,
+++              boolean constraint, int[] primarykeycolumn) throws HsqlException {
+++  
+++          String        token;
+++***************
+++*** 1109,1115 ****
+++       * @param c check constraint
+++       * @throws HsqlException
+++       */
+++!     private void processCreateCheckConstraintCondition(Constraint c)
+++      throws HsqlException {
+++  
+++          tokenizer.getThis(Token.T_OPENBRACKET);
+++--- 1109,1115 ----
+++       * @param c check constraint
+++       * @throws HsqlException
+++       */
+++!     public void processCreateCheckConstraintCondition(Constraint c)
+++      throws HsqlException {
+++  
+++          tokenizer.getThis(Token.T_OPENBRACKET);
+++***************
+++*** 1128,1134 ****
+++       * @param type Description of the Parameter
+++       * @throws HsqlException
+++       */
+++!     private void processCreateTable(int type) throws HsqlException {
+++  
+++          String token = tokenizer.getName();
+++          HsqlName schemaname =
+++--- 1128,1134 ----
+++       * @param type Description of the Parameter
+++       * @throws HsqlException
+++       */
+++!     public void processCreateTable(int type) throws HsqlException {
+++  
+++          String token = tokenizer.getName();
+++          HsqlName schemaname =
+++***************
+++*** 1296,1302 ****
+++       * @throws HsqlException
+++       * @return constraint
+++       */
+++!     private Constraint processCreateFK(Table t,
+++                                         HsqlName cname) throws HsqlException {
+++  
+++          int[]  localcol;
+++--- 1296,1302 ----
+++       * @throws HsqlException
+++       * @return constraint
+++       */
+++!     public Constraint processCreateFK(Table t,
+++                                         HsqlName cname) throws HsqlException {
+++  
+++          int[]  localcol;
+++***************
+++*** 1438,1444 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processCreateView() throws HsqlException {
+++  
+++          String name = tokenizer.getName();
+++          HsqlName schemaname =
+++--- 1438,1444 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processCreateView() throws HsqlException {
+++  
+++          String name = tokenizer.getName();
+++          HsqlName schemaname =
+++***************
+++*** 1518,1524 ****
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     private void processAlterTableRename(Table t) throws HsqlException {
+++  
+++          String  schema = t.getSchemaName();
+++          String  newName;
+++--- 1518,1524 ----
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     public void processAlterTableRename(Table t) throws HsqlException {
+++  
+++          String  schema = t.getSchemaName();
+++          String  newName;
+++***************
+++*** 1565,1571 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processAlter() throws HsqlException {
+++  
+++          String token;
+++  
+++--- 1565,1571 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processAlter() throws HsqlException {
+++  
+++          String token;
+++  
+++***************
+++*** 1613,1619 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processAlterTable() throws HsqlException {
+++  
+++          String tableName = tokenizer.getName();
+++          String schema =
+++--- 1613,1619 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processAlterTable() throws HsqlException {
+++  
+++          String tableName = tokenizer.getName();
+++          String schema =
+++***************
+++*** 1774,1780 ****
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     private void processAlterColumn(Table t) throws HsqlException {
+++  
+++          String columnName  = tokenizer.getSimpleName();
+++          int    columnIndex = t.getColumnNr(columnName);
+++--- 1774,1780 ----
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     public void processAlterColumn(Table t) throws HsqlException {
+++  
+++          String columnName  = tokenizer.getSimpleName();
+++          int    columnIndex = t.getColumnNr(columnName);
+++***************
+++*** 1851,1857 ****
+++          }
+++      }
+++  
+++!     private void processAlterColumnType(Table table,
+++                                          Column oldCol) throws HsqlException {
+++  
+++          Column     newCol = processCreateColumn(oldCol.columnName);
+++--- 1851,1857 ----
+++          }
+++      }
+++  
+++!     public void processAlterColumnType(Table table,
+++                                          Column oldCol) throws HsqlException {
+++  
+++          Column     newCol = processCreateColumn(oldCol.columnName);
+++***************
+++*** 1866,1872 ****
+++       * @param column column
+++       * @throws HsqlException
+++       */
+++!     private void processAlterColumnRename(Table t,
+++                                            Column column) throws HsqlException {
+++  
+++          String  newName  = tokenizer.getSimpleName();
+++--- 1866,1872 ----
+++       * @param column column
+++       * @throws HsqlException
+++       */
+++!     public void processAlterColumnRename(Table t,
+++                                            Column column) throws HsqlException {
+++  
+++          String  newName  = tokenizer.getSimpleName();
+++***************
+++*** 1888,1900 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processAlterIndex() throws HsqlException {
+++  
+++          // only the one supported operation, so far
+++          processAlterIndexRename();
+++      }
+++  
+++!     private void processAlterSchema() throws HsqlException {
+++  
+++          // only the one supported operation, so far
+++          processAlterSchemaRename();
+++--- 1888,1900 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processAlterIndex() throws HsqlException {
+++  
+++          // only the one supported operation, so far
+++          processAlterIndexRename();
+++      }
+++  
+++!     public void processAlterSchema() throws HsqlException {
+++  
+++          // only the one supported operation, so far
+++          processAlterSchemaRename();
+++***************
+++*** 1905,1911 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processDrop() throws HsqlException {
+++  
+++          String  token;
+++          boolean isview;
+++--- 1905,1911 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processDrop() throws HsqlException {
+++  
+++          String  token;
+++          boolean isview;
+++***************
+++*** 1971,1977 ****
+++       * @param grant true if grant, false if revoke
+++       * @throws HsqlException
+++       */
+++!     private void processGrantOrRevoke(boolean grant) throws HsqlException {
+++  
+++          int    right;
+++          Object accessKey;
+++--- 1971,1977 ----
+++       * @param grant true if grant, false if revoke
+++       * @throws HsqlException
+++       */
+++!     public void processGrantOrRevoke(boolean grant) throws HsqlException {
+++  
+++          int    right;
+++          Object accessKey;
+++***************
+++*** 2038,2044 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processConnect() throws HsqlException {
+++  
+++          String userName;
+++          String password;
+++--- 2038,2044 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processConnect() throws HsqlException {
+++  
+++          String userName;
+++          String password;
+++***************
+++*** 2074,2080 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processSet() throws HsqlException {
+++  
+++          String token;
+++  
+++--- 2074,2080 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processSet() throws HsqlException {
+++  
+++          String token;
+++  
+++***************
+++*** 2393,2399 ****
+++       * @return   true if next token is "TRUE"; false if next token is "FALSE"
+++       * @throws  HsqlException if the next token is neither "TRUE" or "FALSE"
+++       */
+++!     private boolean processTrueOrFalse() throws HsqlException {
+++  
+++          String sToken = tokenizer.getSimpleToken();
+++  
+++--- 2393,2399 ----
+++       * @return   true if next token is "TRUE"; false if next token is "FALSE"
+++       * @throws  HsqlException if the next token is neither "TRUE" or "FALSE"
+++       */
+++!     public boolean processTrueOrFalse() throws HsqlException {
+++  
+++          String sToken = tokenizer.getSimpleToken();
+++  
+++***************
+++*** 2411,2417 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processCommit() throws HsqlException {
+++          tokenizer.isGetThis(Token.T_WORK);
+++          session.commit();
+++      }
+++--- 2411,2417 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processCommit() throws HsqlException {
+++          tokenizer.isGetThis(Token.T_WORK);
+++          session.commit();
+++      }
+++***************
+++*** 2421,2427 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processRollback() throws HsqlException {
+++  
+++          String  token;
+++          boolean toSavepoint;
+++--- 2421,2427 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processRollback() throws HsqlException {
+++  
+++          String  token;
+++          boolean toSavepoint;
+++***************
+++*** 2453,2459 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processSavepoint() throws HsqlException {
+++  
+++          String token;
+++  
+++--- 2453,2459 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processSavepoint() throws HsqlException {
+++  
+++          String token;
+++  
+++***************
+++*** 2467,2473 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processShutdown() throws HsqlException {
+++  
+++          int    closemode;
+++          String token;
+++--- 2467,2473 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processShutdown() throws HsqlException {
+++  
+++          int    closemode;
+++          String token;
+++***************
+++*** 2502,2508 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void processCheckpoint() throws HsqlException {
+++  
+++          boolean defrag;
+++          String  token;
+++--- 2502,2508 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void processCheckpoint() throws HsqlException {
+++  
+++          boolean defrag;
+++          String  token;
+++***************
+++*** 2526,2532 ****
+++      }
+++  
+++  // --------------------- new methods / simplifications ------------------------
+++!     private HsqlName newIndexHsqlName(String name,
+++                                        boolean isQuoted) throws HsqlException {
+++  
+++          return HsqlName.isReservedName(name)
+++--- 2526,2532 ----
+++      }
+++  
+++  // --------------------- new methods / simplifications ------------------------
+++!     public HsqlName newIndexHsqlName(String name,
+++                                        boolean isQuoted) throws HsqlException {
+++  
+++          return HsqlName.isReservedName(name)
+++***************
+++*** 2534,2540 ****
+++                 : database.nameManager.newHsqlName(name, isQuoted);
+++      }
+++  
+++!     private Table newTable(int type, String name, boolean quoted,
+++                             HsqlName schema) throws HsqlException {
+++  
+++          HsqlName tableHsqlName = database.nameManager.newHsqlName(name,
+++--- 2534,2540 ----
+++                 : database.nameManager.newHsqlName(name, isQuoted);
+++      }
+++  
+++!     public Table newTable(int type, String name, boolean quoted,
+++                             HsqlName schema) throws HsqlException {
+++  
+++          HsqlName tableHsqlName = database.nameManager.newHsqlName(name,
+++***************
+++*** 2563,2569 ****
+++       * @throws HsqlException if the operation of adding the Column, c, to
+++       *      the table t is not valid
+++       */
+++!     private void checkAddColumn(Table t, Column c) throws HsqlException {
+++  
+++          boolean canAdd = true;
+++  
+++--- 2563,2569 ----
+++       * @throws HsqlException if the operation of adding the Column, c, to
+++       *      the table t is not valid
+++       */
+++!     public void checkAddColumn(Table t, Column c) throws HsqlException {
+++  
+++          boolean canAdd = true;
+++  
+++***************
+++*** 2584,2590 ****
+++          }
+++      }
+++  
+++!     private void checkFKColumnDefaults(Table t,
+++                                         Constraint tc) throws HsqlException {
+++  
+++          boolean check = tc.core.updateAction == Constraint.SET_DEFAULT;
+++--- 2584,2590 ----
+++          }
+++      }
+++  
+++!     public void checkFKColumnDefaults(Table t,
+++                                         Constraint tc) throws HsqlException {
+++  
+++          boolean check = tc.core.updateAction == Constraint.SET_DEFAULT;
+++***************
+++*** 2608,2614 ****
+++          }
+++      }
+++  
+++!     private void processAlterSequence() throws HsqlException {
+++  
+++          long   start;
+++          String name       = tokenizer.getName();
+++--- 2608,2614 ----
+++          }
+++      }
+++  
+++!     public void processAlterSequence() throws HsqlException {
+++  
+++          long   start;
+++          String name       = tokenizer.getName();
+++***************
+++*** 2632,2638 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processAlterIndexRename() throws HsqlException {
+++  
+++          String name = tokenizer.getName();
+++          String schema =
+++--- 2632,2638 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processAlterIndexRename() throws HsqlException {
+++  
+++          String name = tokenizer.getName();
+++          String schema =
+++***************
+++*** 2682,2688 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processAlterSchemaRename() throws HsqlException {
+++  
+++          String name = tokenizer.getSimpleName();
+++  
+++--- 2682,2688 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processAlterSchemaRename() throws HsqlException {
+++  
+++          String name = tokenizer.getSimpleName();
+++  
+++***************
+++*** 2700,2706 ****
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     private void processAlterTableAddColumn(Table t) throws HsqlException {
+++  
+++          String token;
+++          int    colindex = t.getColumnCount();
+++--- 2700,2706 ----
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     public void processAlterTableAddColumn(Table t) throws HsqlException {
+++  
+++          String token;
+++          int    colindex = t.getColumnCount();
+++***************
+++*** 2728,2734 ****
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     private void processAlterTableDropColumn(Table t) throws HsqlException {
+++  
+++          String token;
+++          int    colindex;
+++--- 2728,2734 ----
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     public void processAlterTableDropColumn(Table t) throws HsqlException {
+++  
+++          String token;
+++          int    colindex;
+++***************
+++*** 2749,2755 ****
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     private void processAlterTableDropConstraint(Table t)
+++      throws HsqlException {
+++          processAlterTableDropConstraint(t, tokenizer.getName());
+++      }
+++--- 2749,2755 ----
+++       * @param t table
+++       * @throws HsqlException
+++       */
+++!     public void processAlterTableDropConstraint(Table t)
+++      throws HsqlException {
+++          processAlterTableDropConstraint(t, tokenizer.getName());
+++      }
+++***************
+++*** 2761,2767 ****
+++       * @param name
+++       * @throws HsqlException
+++       */
+++!     private void processAlterTableDropConstraint(Table t,
+++              String cname) throws HsqlException {
+++  
+++          session.commit();
+++--- 2761,2767 ----
+++       * @param name
+++       * @throws HsqlException
+++       */
+++!     public void processAlterTableDropConstraint(Table t,
+++              String cname) throws HsqlException {
+++  
+++          session.commit();
+++***************
+++*** 2777,2783 ****
+++       * If an invalid alias is encountered while processing an old script,
+++       * simply discard it.
+++       */
+++!     private void processCreateAlias() throws HsqlException {
+++  
+++          String alias;
+++          String methodFQN;
+++--- 2777,2783 ----
+++       * If an invalid alias is encountered while processing an old script,
+++       * simply discard it.
+++       */
+++!     public void processCreateAlias() throws HsqlException {
+++  
+++          String alias;
+++          String methodFQN;
+++***************
+++*** 2801,2807 ****
+++          }
+++      }
+++  
+++!     private void processCreateIndex(boolean unique) throws HsqlException {
+++  
+++          Table   t;
+++          String  indexName       = tokenizer.getName();
+++--- 2801,2807 ----
+++          }
+++      }
+++  
+++!     public void processCreateIndex(boolean unique) throws HsqlException {
+++  
+++          Table   t;
+++          String  indexName       = tokenizer.getName();
+++***************
+++*** 2845,2851 ****
+++       * be positive
+++       * @throws HsqlException
+++       */
+++!     private void processCreateSequence() throws HsqlException {
+++  
+++  /*
+++          CREATE SEQUENCE <name>
+++--- 2845,2851 ----
+++       * be positive
+++       * @throws HsqlException
+++       */
+++!     public void processCreateSequence() throws HsqlException {
+++  
+++  /*
+++          CREATE SEQUENCE <name>
+++***************
+++*** 2894,2900 ****
+++       * CREATE SCHEMA PUBLIC in scripts should pass this, so we do not throw
+++       * if this schema is created a second time
+++       */
+++!     private void processCreateSchema() throws HsqlException {
+++  
+++          String  name     = tokenizer.getSimpleName();
+++          boolean isquoted = tokenizer.wasQuotedIdentifier();
+++--- 2894,2900 ----
+++       * CREATE SCHEMA PUBLIC in scripts should pass this, so we do not throw
+++       * if this schema is created a second time
+++       */
+++!     public void processCreateSchema() throws HsqlException {
+++  
+++          String  name     = tokenizer.getSimpleName();
+++          boolean isquoted = tokenizer.wasQuotedIdentifier();
+++***************
+++*** 2926,2932 ****
+++          session.loggedSchema = session.currentSchema;
+++      }
+++  
+++!     private void processCreateUser() throws HsqlException {
+++  
+++          String  name;
+++          String  password;
+++--- 2926,2932 ----
+++          session.loggedSchema = session.currentSchema;
+++      }
+++  
+++!     public void processCreateUser() throws HsqlException {
+++  
+++          String  name;
+++          String  password;
+++***************
+++*** 2947,2957 ****
+++          }
+++      }
+++  
+++!     private void processDisconnect() throws HsqlException {
+++          session.close();
+++      }
+++  
+++!     private void processDropTable(boolean isView) throws HsqlException {
+++  
+++          boolean ifexists = false;
+++          boolean cascade  = false;
+++--- 2947,2957 ----
+++          }
+++      }
+++  
+++!     public void processDisconnect() throws HsqlException {
+++          session.close();
+++      }
+++  
+++!     public void processDropTable(boolean isView) throws HsqlException {
+++  
+++          boolean ifexists = false;
+++          boolean cascade  = false;
+++***************
+++*** 2988,2994 ****
+++                                           isView, cascade);
+++      }
+++  
+++!     private void processDropUser() throws HsqlException {
+++  
+++          session.checkAdmin();
+++          session.checkDDLWrite();
+++--- 2988,2994 ----
+++                                           isView, cascade);
+++      }
+++  
+++!     public void processDropUser() throws HsqlException {
+++  
+++          session.checkAdmin();
+++          session.checkDDLWrite();
+++***************
+++*** 3004,3010 ****
+++          database.getUserManager().dropUser(userName);
+++      }
+++  
+++!     private void processDropSequence() throws HsqlException {
+++  
+++          boolean ifexists = false;
+++  
+++--- 3004,3010 ----
+++          database.getUserManager().dropUser(userName);
+++      }
+++  
+++!     public void processDropSequence() throws HsqlException {
+++  
+++          boolean ifexists = false;
+++  
+++***************
+++*** 3042,3048 ****
+++          database.schemaManager.dropSequence(sequence);
+++      }
+++  
+++!     private void processDropTrigger() throws HsqlException {
+++  
+++          session.checkAdmin();
+++          session.checkDDLWrite();
+++--- 3042,3048 ----
+++          database.schemaManager.dropSequence(sequence);
+++      }
+++  
+++!     public void processDropTrigger() throws HsqlException {
+++  
+++          session.checkAdmin();
+++          session.checkDDLWrite();
+++***************
+++*** 3054,3060 ****
+++          database.schemaManager.dropTrigger(session, triggername, schemaname);
+++      }
+++  
+++!     private void processDropIndex() throws HsqlException {
+++  
+++          String name = tokenizer.getName();
+++          String schema =
+++--- 3054,3060 ----
+++          database.schemaManager.dropTrigger(session, triggername, schemaname);
+++      }
+++  
+++!     public void processDropIndex() throws HsqlException {
+++  
+++          String name = tokenizer.getName();
+++          String schema =
+++***************
+++*** 3077,3083 ****
+++          database.schemaManager.dropIndex(session, name, schema, ifexists);
+++      }
+++  
+++!     private void processDropSchema() throws HsqlException {
+++  
+++          String  name    = tokenizer.getSimpleName();
+++          boolean cascade = tokenizer.isGetThis(Token.T_CASCADE);
+++--- 3077,3083 ----
+++          database.schemaManager.dropIndex(session, name, schema, ifexists);
+++      }
+++  
+++!     public void processDropSchema() throws HsqlException {
+++  
+++          String  name    = tokenizer.getSimpleName();
+++          boolean cascade = tokenizer.isGetThis(Token.T_CASCADE);
+++***************
+++*** 3089,3095 ****
+++          processDropSchema(name, cascade);
+++      }
+++  
+++!     private void processDropSchema(String name,
+++                                     boolean cascade) throws HsqlException {
+++  
+++          if (!database.schemaManager.schemaExists(name)) {
+++--- 3089,3095 ----
+++          processDropSchema(name, cascade);
+++      }
+++  
+++!     public void processDropSchema(String name,
+++                                     boolean cascade) throws HsqlException {
+++  
+++          if (!database.schemaManager.schemaExists(name)) {
+++***************
+++*** 3103,3109 ****
+++          }
+++      }
+++  
+++!     private Result processExplainPlan() throws IOException, HsqlException {
+++  
+++          // PRE:  we assume only one DML or DQL has been submitted
+++          //       and simply ignore anything following the first
+++--- 3103,3109 ----
+++          }
+++      }
+++  
+++!     public Result processExplainPlan() throws IOException, HsqlException {
+++  
+++          // PRE:  we assume only one DML or DQL has been submitted
+++          //       and simply ignore anything following the first
+++***************
+++*** 3175,3181 ****
+++      static final int    oldLibLen = oldLib.length();
+++      static final String newLib    = "org.hsqldb.Library.";
+++  
+++!     private static String upgradeMethodFQN(String fqn) {
+++  
+++          if (fqn.startsWith(oldLib)) {
+++              fqn = newLib + fqn.substring(oldLibLen);
+++--- 3175,3181 ----
+++      static final int    oldLibLen = oldLib.length();
+++      static final String newLib    = "org.hsqldb.Library.";
+++  
+++!     public static String upgradeMethodFQN(String fqn) {
+++  
+++          if (fqn.startsWith(oldLib)) {
+++              fqn = newLib + fqn.substring(oldLibLen);
+++***************
+++*** 3252,3258 ****
+++       * @param t table
+++       * @throws  HsqlException
+++       */
+++!     private void logTableDDL(Table t) throws HsqlException {
+++  
+++          StringBuffer tableDDL;
+++          String       sourceDDL;
+++--- 3252,3258 ----
+++       * @param t table
+++       * @throws  HsqlException
+++       */
+++!     public void logTableDDL(Table t) throws HsqlException {
+++  
+++          StringBuffer tableDDL;
+++          String       sourceDDL;
+++***************
+++*** 3270,3276 ****
+++          }
+++      }
+++  
+++!     private void processAlterTableAddUniqueConstraint(Table t,
+++              HsqlName n) throws HsqlException {
+++  
+++          int[] col;
+++--- 3270,3276 ----
+++          }
+++      }
+++  
+++!     public void processAlterTableAddUniqueConstraint(Table t,
+++              HsqlName n) throws HsqlException {
+++  
+++          int[] col;
+++***************
+++*** 3288,3294 ****
+++          tableWorks.createUniqueConstraint(col, n);
+++      }
+++  
+++!     private void processAlterTableAddForeignKeyConstraint(Table t,
+++              HsqlName n) throws HsqlException {
+++  
+++          Constraint tc;
+++--- 3288,3294 ----
+++          tableWorks.createUniqueConstraint(col, n);
+++      }
+++  
+++!     public void processAlterTableAddForeignKeyConstraint(Table t,
+++              HsqlName n) throws HsqlException {
+++  
+++          Constraint tc;
+++***************
+++*** 3312,3318 ****
+++                                      tc.core.updateAction);
+++      }
+++  
+++!     private void processAlterTableAddCheckConstraint(Table table,
+++              HsqlName name) throws HsqlException {
+++  
+++          Constraint check;
+++--- 3312,3318 ----
+++                                      tc.core.updateAction);
+++      }
+++  
+++!     public void processAlterTableAddCheckConstraint(Table table,
+++              HsqlName name) throws HsqlException {
+++  
+++          Constraint check;
+++***************
+++*** 3332,3338 ****
+++          tableWorks.createCheckConstraint(check, name);
+++      }
+++  
+++!     private void processAlterTableAddPrimaryKey(Table t,
+++              HsqlName n) throws HsqlException {
+++  
+++          int[] col;
+++--- 3332,3338 ----
+++          tableWorks.createCheckConstraint(check, name);
+++      }
+++  
+++!     public void processAlterTableAddPrimaryKey(Table t,
+++              HsqlName n) throws HsqlException {
+++  
+++          int[] col;
+++***************
+++*** 3346,3352 ****
+++          tableWorks.addPrimaryKey(col, n);
+++      }
+++  
+++!     private void processReleaseSavepoint() throws HsqlException {
+++  
+++          String token;
+++  
+++--- 3346,3352 ----
+++          tableWorks.addPrimaryKey(col, n);
+++      }
+++  
+++!     public void processReleaseSavepoint() throws HsqlException {
+++  
+++          String token;
+++  
+++***************
+++*** 3357,3363 ****
+++          session.releaseSavepoint(token);
+++      }
+++  
+++!     private void processAlterUser() throws HsqlException {
+++  
+++          String userName;
+++          String password;
+++--- 3357,3363 ----
+++          session.releaseSavepoint(token);
+++      }
+++  
+++!     public void processAlterUser() throws HsqlException {
+++  
+++          String userName;
+++          String password;
+++***************
+++*** 3377,3383 ****
+++          session.setScripting(false);
+++      }
+++  
+++!     private String getUserIdentifier() throws HsqlException {
+++  
+++          String    token = tokenizer.getString();
+++          Tokenizer t     = new Tokenizer(token);
+++--- 3377,3383 ----
+++          session.setScripting(false);
+++      }
+++  
+++!     public String getUserIdentifier() throws HsqlException {
+++  
+++          String    token = tokenizer.getString();
+++          Tokenizer t     = new Tokenizer(token);
+++***************
+++*** 3385,3391 ****
+++          return t.getSimpleName();
+++      }
+++  
+++!     private String getPassword() throws HsqlException {
+++  
+++          String token = tokenizer.getString();
+++  
+++--- 3385,3391 ----
+++          return t.getSimpleName();
+++      }
+++  
+++!     public String getPassword() throws HsqlException {
+++  
+++          String token = tokenizer.getString();
+++  
+++***************
+++*** 3398,3404 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void processRoleGrantOrRevoke(boolean grant) throws HsqlException {
+++  
+++          String         token;
+++          HsqlArrayList  list = new HsqlArrayList();
+++--- 3398,3404 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void processRoleGrantOrRevoke(boolean grant) throws HsqlException {
+++  
+++          String         token;
+++          HsqlArrayList  list = new HsqlArrayList();
+++diff -crN hsqldb-old/src/org/hsqldb/DatabaseInformationFull.java hsqldb/src/org/hsqldb/DatabaseInformationFull.java
+++*** hsqldb-old/src/org/hsqldb/DatabaseInformationFull.java	2007-10-11 11:32:16.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DatabaseInformationFull.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 64,70 ****
+++  extends org.hsqldb.DatabaseInformationMain {
+++  
+++      /** Provides SQL function/procedure reporting support. */
+++!     protected DIProcedureInfo pi;
+++  
+++      /**
+++       * Constructs a new DatabaseInformationFull instance. <p>
+++--- 64,70 ----
+++  extends org.hsqldb.DatabaseInformationMain {
+++  
+++      /** Provides SQL function/procedure reporting support. */
+++!     public DIProcedureInfo pi;
+++  
+++      /**
+++       * Constructs a new DatabaseInformationFull instance. <p>
+++***************
+++*** 86,92 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the system table corresponding to the specified index
+++       */
+++!     protected Table generateTable(int tableIndex) throws HsqlException {
+++  
+++          switch (tableIndex) {
+++  
+++--- 86,92 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the system table corresponding to the specified index
+++       */
+++!     public Table generateTable(int tableIndex) throws HsqlException {
+++  
+++          switch (tableIndex) {
+++  
+++***************
+++*** 3186,3192 ****
+++       *      in the table
+++       *
+++       */
+++!     protected void addPColRows(Table t, HsqlArrayList l, String cat,
+++                                 String schem, String pName, String cName,
+++                                 Integer cType, Integer dType, String tName,
+++                                 Integer prec, Integer len, Integer scale,
+++--- 3186,3192 ----
+++       *      in the table
+++       *
+++       */
+++!     public void addPColRows(Table t, HsqlArrayList l, String cat,
+++                                 String schem, String pName, String cName,
+++                                 Integer cType, Integer dType, String tName,
+++                                 Integer prec, Integer len, Integer scale,
+++***************
+++*** 3286,3292 ****
+++       *      in the table
+++       *
+++       */
+++!     protected void addProcRows(Table t, HsqlArrayList l, String cat,
+++                                 String schem, String pName, Integer ip,
+++                                 Integer op, Integer rs, String remark,
+++                                 Integer pType, String origin,
+++--- 3286,3292 ----
+++       *      in the table
+++       *
+++       */
+++!     public void addProcRows(Table t, HsqlArrayList l, String cat,
+++                                 String schem, String pName, Integer ip,
+++                                 Integer op, Integer rs, String remark,
+++                                 Integer pType, String origin,
+++diff -crN hsqldb-old/src/org/hsqldb/DatabaseInformation.java hsqldb/src/org/hsqldb/DatabaseInformation.java
+++*** hsqldb-old/src/org/hsqldb/DatabaseInformation.java	2007-01-09 16:31:02.000000000 +0100
+++--- hsqldb/src/org/hsqldb/DatabaseInformation.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 56,124 ****
+++  class DatabaseInformation {
+++  
+++      // ids for system table names strictly in order of sysTableNames[]
+++!     protected static final int SYSTEM_BESTROWIDENTIFIER = 0;
+++!     protected static final int SYSTEM_CATALOGS          = 1;
+++!     protected static final int SYSTEM_COLUMNPRIVILEGES  = 2;
+++!     protected static final int SYSTEM_COLUMNS           = 3;
+++!     protected static final int SYSTEM_CROSSREFERENCE    = 4;
+++!     protected static final int SYSTEM_INDEXINFO         = 5;
+++!     protected static final int SYSTEM_PRIMARYKEYS       = 6;
+++!     protected static final int SYSTEM_PROCEDURECOLUMNS  = 7;
+++!     protected static final int SYSTEM_PROCEDURES        = 8;
+++!     protected static final int SYSTEM_SCHEMAS           = 9;
+++!     protected static final int SYSTEM_SUPERTABLES       = 10;
+++!     protected static final int SYSTEM_SUPERTYPES        = 11;
+++!     protected static final int SYSTEM_TABLEPRIVILEGES   = 12;
+++!     protected static final int SYSTEM_TABLES            = 13;
+++!     protected static final int SYSTEM_TABLETYPES        = 14;
+++!     protected static final int SYSTEM_TYPEINFO          = 15;
+++!     protected static final int SYSTEM_UDTATTRIBUTES     = 16;
+++!     protected static final int SYSTEM_UDTS              = 17;
+++!     protected static final int SYSTEM_USERS             = 18;
+++!     protected static final int SYSTEM_VERSIONCOLUMNS    = 19;
+++  
+++      // HSQLDB-specific
+++!     protected static final int SYSTEM_ALIASES         = 20;
+++!     protected static final int SYSTEM_BYTECODE        = 21;
+++!     protected static final int SYSTEM_CACHEINFO       = 22;
+++!     protected static final int SYSTEM_CLASSPRIVILEGES = 23;
+++!     protected static final int SYSTEM_SESSIONINFO     = 24;
+++!     protected static final int SYSTEM_PROPERTIES      = 25;
+++!     protected static final int SYSTEM_SESSIONS        = 26;
+++!     protected static final int SYSTEM_TRIGGERCOLUMNS  = 27;
+++!     protected static final int SYSTEM_TRIGGERS        = 28;
+++!     protected static final int SYSTEM_ALLTYPEINFO     = 29;
+++  
+++  // boucherb@users 20030305 - brought in line with SQL 200n
+++!     protected static final int SYSTEM_VIEWS = 30;
+++  
+++  // boucherb@users 20030403 - isolated and improved text table reporting
+++!     protected static final int SYSTEM_TEXTTABLES = 31;
+++  
+++  // boucherb@users 20040107 - metadata support for sequences
+++!     protected static final int SYSTEM_SEQUENCES        = 32;
+++!     protected static final int SYSTEM_USAGE_PRIVILEGES = 33;
+++  
+++  // boucherb@users 20040107 - metadata support for constraints
+++!     protected static final int SYSTEM_CHECK_CONSTRAINTS = 34;
+++!     protected static final int SYSTEM_TABLE_CONSTRAINTS = 35;
+++  
+++  // boucherb@users 20040107 - metadata support for view usage breakdown- SQL 200n
+++!     protected static final int SYSTEM_CHECK_COLUMN_USAGE  = 36;
+++!     protected static final int SYSTEM_CHECK_ROUTINE_USAGE = 37;
+++!     protected static final int SYSTEM_CHECK_TABLE_USAGE   = 38;
+++!     protected static final int SYSTEM_VIEW_COLUMN_USAGE   = 39;
+++!     protected static final int SYSTEM_VIEW_TABLE_USAGE    = 40;
+++!     protected static final int SYSTEM_VIEW_ROUTINE_USAGE  = 41;
+++  
+++  // boucherb@users 20050514 - further SQL 200n metdata support
+++!     protected static final int SYSTEM_AUTHORIZATIONS                 = 42;
+++!     protected static final int SYSTEM_COLLATIONS                     = 43;
+++!     protected static final int SYSTEM_ROLE_AUTHORIZATION_DESCRIPTORS = 44;
+++!     protected static final int SYSTEM_SCHEMATA                       = 45;
+++  
+++      /** system table names strictly in order of their ids */
+++!     protected static final String[] sysTableNames = {
+++          "SYSTEM_BESTROWIDENTIFIER",                 //
+++          "SYSTEM_CATALOGS",                          //
+++          "SYSTEM_COLUMNPRIVILEGES",                  //
+++--- 56,124 ----
+++  class DatabaseInformation {
+++  
+++      // ids for system table names strictly in order of sysTableNames[]
+++!     public static final int SYSTEM_BESTROWIDENTIFIER = 0;
+++!     public static final int SYSTEM_CATALOGS          = 1;
+++!     public static final int SYSTEM_COLUMNPRIVILEGES  = 2;
+++!     public static final int SYSTEM_COLUMNS           = 3;
+++!     public static final int SYSTEM_CROSSREFERENCE    = 4;
+++!     public static final int SYSTEM_INDEXINFO         = 5;
+++!     public static final int SYSTEM_PRIMARYKEYS       = 6;
+++!     public static final int SYSTEM_PROCEDURECOLUMNS  = 7;
+++!     public static final int SYSTEM_PROCEDURES        = 8;
+++!     public static final int SYSTEM_SCHEMAS           = 9;
+++!     public static final int SYSTEM_SUPERTABLES       = 10;
+++!     public static final int SYSTEM_SUPERTYPES        = 11;
+++!     public static final int SYSTEM_TABLEPRIVILEGES   = 12;
+++!     public static final int SYSTEM_TABLES            = 13;
+++!     public static final int SYSTEM_TABLETYPES        = 14;
+++!     public static final int SYSTEM_TYPEINFO          = 15;
+++!     public static final int SYSTEM_UDTATTRIBUTES     = 16;
+++!     public static final int SYSTEM_UDTS              = 17;
+++!     public static final int SYSTEM_USERS             = 18;
+++!     public static final int SYSTEM_VERSIONCOLUMNS    = 19;
+++  
+++      // HSQLDB-specific
+++!     public static final int SYSTEM_ALIASES         = 20;
+++!     public static final int SYSTEM_BYTECODE        = 21;
+++!     public static final int SYSTEM_CACHEINFO       = 22;
+++!     public static final int SYSTEM_CLASSPRIVILEGES = 23;
+++!     public static final int SYSTEM_SESSIONINFO     = 24;
+++!     public static final int SYSTEM_PROPERTIES      = 25;
+++!     public static final int SYSTEM_SESSIONS        = 26;
+++!     public static final int SYSTEM_TRIGGERCOLUMNS  = 27;
+++!     public static final int SYSTEM_TRIGGERS        = 28;
+++!     public static final int SYSTEM_ALLTYPEINFO     = 29;
+++  
+++  // boucherb@users 20030305 - brought in line with SQL 200n
+++!     public static final int SYSTEM_VIEWS = 30;
+++  
+++  // boucherb@users 20030403 - isolated and improved text table reporting
+++!     public static final int SYSTEM_TEXTTABLES = 31;
+++  
+++  // boucherb@users 20040107 - metadata support for sequences
+++!     public static final int SYSTEM_SEQUENCES        = 32;
+++!     public static final int SYSTEM_USAGE_PRIVILEGES = 33;
+++  
+++  // boucherb@users 20040107 - metadata support for constraints
+++!     public static final int SYSTEM_CHECK_CONSTRAINTS = 34;
+++!     public static final int SYSTEM_TABLE_CONSTRAINTS = 35;
+++  
+++  // boucherb@users 20040107 - metadata support for view usage breakdown- SQL 200n
+++!     public static final int SYSTEM_CHECK_COLUMN_USAGE  = 36;
+++!     public static final int SYSTEM_CHECK_ROUTINE_USAGE = 37;
+++!     public static final int SYSTEM_CHECK_TABLE_USAGE   = 38;
+++!     public static final int SYSTEM_VIEW_COLUMN_USAGE   = 39;
+++!     public static final int SYSTEM_VIEW_TABLE_USAGE    = 40;
+++!     public static final int SYSTEM_VIEW_ROUTINE_USAGE  = 41;
+++  
+++  // boucherb@users 20050514 - further SQL 200n metdata support
+++!     public static final int SYSTEM_AUTHORIZATIONS                 = 42;
+++!     public static final int SYSTEM_COLLATIONS                     = 43;
+++!     public static final int SYSTEM_ROLE_AUTHORIZATION_DESCRIPTORS = 44;
+++!     public static final int SYSTEM_SCHEMATA                       = 45;
+++  
+++      /** system table names strictly in order of their ids */
+++!     public static final String[] sysTableNames = {
+++          "SYSTEM_BESTROWIDENTIFIER",                 //
+++          "SYSTEM_CATALOGS",                          //
+++          "SYSTEM_COLUMNPRIVILEGES",                  //
+++***************
+++*** 266,272 ****
+++      };
+++  
+++      /** Map: table name => table id */
+++!     protected static final IntValueHashMap sysTableNamesMap;
+++  
+++      static {
+++          sysTableNamesMap = new IntValueHashMap(47);
+++--- 266,272 ----
+++      };
+++  
+++      /** Map: table name => table id */
+++!     public static final IntValueHashMap sysTableNamesMap;
+++  
+++      static {
+++          sysTableNamesMap = new IntValueHashMap(47);
+++***************
+++*** 281,293 ****
+++      }
+++  
+++      /** Database for which to produce tables */
+++!     protected final Database database;
+++  
+++      /**
+++       * Simple object-wide flag indicating that all of this object's cached
+++       * data is dirty.
+++       */
+++!     protected boolean isDirty = true;
+++  
+++      /**
+++       * state flag -- if true, contentful tables are to be produced, else
+++--- 281,293 ----
+++      }
+++  
+++      /** Database for which to produce tables */
+++!     public final Database database;
+++  
+++      /**
+++       * Simple object-wide flag indicating that all of this object's cached
+++       * data is dirty.
+++       */
+++!     public boolean isDirty = true;
+++  
+++      /**
+++       * state flag -- if true, contentful tables are to be produced, else
+++***************
+++*** 295,301 ****
+++       * database startup where user views reference system tables and faster
+++       * system table structural reflection for table metadata.
+++       */
+++!     protected boolean withContent = false;
+++  
+++      /**
+++       * Factory method retuns the fullest system table producer
+++--- 295,301 ----
+++       * database startup where user views reference system tables and faster
+++       * system table structural reflection for table metadata.
+++       */
+++!     public boolean withContent = false;
+++  
+++      /**
+++       * Factory method retuns the fullest system table producer
+++diff -crN hsqldb-old/src/org/hsqldb/DatabaseInformationMain.java hsqldb/src/org/hsqldb/DatabaseInformationMain.java
+++*** hsqldb-old/src/org/hsqldb/DatabaseInformationMain.java	2007-06-11 12:12:28.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DatabaseInformationMain.java	2007-11-04 00:13:48.000000000 +0100
+++***************
+++*** 118,157 ****
+++      // HsqlName objects for the system tables
+++  
+++      /** The HsqlNames of the system tables. */
+++!     protected static final HsqlName[] sysTableHsqlNames;
+++  
+++      /** Current user for each cached system table */
+++!     protected final int[] sysTableSessions = new int[sysTableNames.length];
+++  
+++      /** true if the contents of a cached system table depends on the session */
+++!     protected final boolean[] sysTableSessionDependent =
+++          new boolean[sysTableNames.length];
+++  
+++      /** cache of system tables */
+++!     protected final Table[] sysTables = new Table[sysTableNames.length];
+++  
+++      /** Set: { names of system tables that are not to be cached } */
+++!     protected static final HashSet nonCachedTablesSet;
+++  
+++      /**
+++       * Map: simple <code>Column</code> name <code>String</code> object =>
+++       * <code>HsqlName</code> object.
+++       */
+++!     protected static final HashMap columnNameMap;
+++  
+++      /**
+++       * The <code>Session</code> object under consideration in the current
+++       * executution context.
+++       */
+++!     protected Session session;
+++  
+++      /** The table types HSQLDB supports. */
+++!     protected static final String[] tableTypes = new String[] {
+++          "GLOBAL TEMPORARY", "SYSTEM TABLE", "TABLE", "VIEW"
+++      };
+++  
+++      /** Provides naming support. */
+++!     protected DINameSpace ns;
+++  
+++      static {
+++          columnNameMap      = new HashMap();
+++--- 118,157 ----
+++      // HsqlName objects for the system tables
+++  
+++      /** The HsqlNames of the system tables. */
+++!     public static final HsqlName[] sysTableHsqlNames;
+++  
+++      /** Current user for each cached system table */
+++!     public final int[] sysTableSessions = new int[sysTableNames.length];
+++  
+++      /** true if the contents of a cached system table depends on the session */
+++!     public final boolean[] sysTableSessionDependent =
+++          new boolean[sysTableNames.length];
+++  
+++      /** cache of system tables */
+++!     public final Table[] sysTables = new Table[sysTableNames.length];
+++  
+++      /** Set: { names of system tables that are not to be cached } */
+++!     public static final HashSet nonCachedTablesSet;
+++  
+++      /**
+++       * Map: simple <code>Column</code> name <code>String</code> object =>
+++       * <code>HsqlName</code> object.
+++       */
+++!     public static final HashMap columnNameMap;
+++  
+++      /**
+++       * The <code>Session</code> object under consideration in the current
+++       * executution context.
+++       */
+++!     public Session session;
+++  
+++      /** The table types HSQLDB supports. */
+++!     public static final String[] tableTypes = new String[] {
+++          "GLOBAL TEMPORARY", "SYSTEM TABLE", "TABLE", "VIEW"
+++      };
+++  
+++      /** Provides naming support. */
+++!     public DINameSpace ns;
+++  
+++      static {
+++          columnNameMap      = new HashMap();
+++***************
+++*** 218,224 ****
+++       * @throws HsqlException if a problem occurs when adding the
+++       *      column (e.g. duplicate name)
+++       */
+++!     protected final void addColumn(Table t, String name, int type, int size,
+++                                     boolean nullable) throws HsqlException {
+++  
+++          HsqlName cn;
+++--- 218,224 ----
+++       * @throws HsqlException if a problem occurs when adding the
+++       *      column (e.g. duplicate name)
+++       */
+++!     public final void addColumn(Table t, String name, int type, int size,
+++                                     boolean nullable) throws HsqlException {
+++  
+++          HsqlName cn;
+++***************
+++*** 249,255 ****
+++       * @throws HsqlException if a problem occurs when adding the
+++       *      column (e.g. duplicate name)
+++       */
+++!     protected final void addColumn(Table t, String name, int type,
+++                                     boolean nullable) throws HsqlException {
+++          addColumn(t, name, type, 0, nullable);
+++      }
+++--- 249,255 ----
+++       * @throws HsqlException if a problem occurs when adding the
+++       *      column (e.g. duplicate name)
+++       */
+++!     public final void addColumn(Table t, String name, int type,
+++                                     boolean nullable) throws HsqlException {
+++          addColumn(t, name, type, 0, nullable);
+++      }
+++***************
+++*** 264,270 ****
+++       * @throws HsqlException if a problem occurs when adding the
+++       *      column (e.g. duplicate name)
+++       */
+++!     protected final void addColumn(Table t, String name,
+++                                     int type) throws HsqlException {
+++          addColumn(t, name, type, true);
+++      }
+++--- 264,270 ----
+++       * @throws HsqlException if a problem occurs when adding the
+++       *      column (e.g. duplicate name)
+++       */
+++!     public final void addColumn(Table t, String name,
+++                                     int type) throws HsqlException {
+++          addColumn(t, name, type, true);
+++      }
+++***************
+++*** 276,282 ****
+++       *
+++       * @return an enumeration over all of the tables in this database
+++       */
+++!     protected final Iterator allTables() {
+++          return new WrapperIterator(database.schemaManager.allTablesIterator(),
+++                                     new WrapperIterator(sysTables, true));
+++      }
+++--- 276,282 ----
+++       *
+++       * @return an enumeration over all of the tables in this database
+++       */
+++!     public final Iterator allTables() {
+++          return new WrapperIterator(database.schemaManager.allTablesIterator(),
+++                                     new WrapperIterator(sysTables, true));
+++      }
+++***************
+++*** 287,293 ****
+++       *
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     protected final void cacheClear() throws HsqlException {
+++  
+++          int i = sysTables.length;
+++  
+++--- 287,293 ----
+++       *
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     public final void cacheClear() throws HsqlException {
+++  
+++          int i = sysTables.length;
+++  
+++***************
+++*** 312,318 ****
+++       * @throws HsqlException if a database access error occurs
+++       * @return the system table corresponding to the specified tableIndex value
+++       */
+++!     protected Table generateTable(int tableIndex) throws HsqlException {
+++  
+++          Table t = sysTables[tableIndex];
+++  
+++--- 312,318 ----
+++       * @throws HsqlException if a database access error occurs
+++       * @return the system table corresponding to the specified tableIndex value
+++       */
+++!     public Table generateTable(int tableIndex) throws HsqlException {
+++  
+++          Table t = sysTables[tableIndex];
+++  
+++***************
+++*** 417,423 ****
+++       *
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     protected final void init() throws HsqlException {
+++  
+++          ns = new DINameSpace(database);
+++  
+++--- 417,423 ----
+++       *
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     public final void init() throws HsqlException {
+++  
+++          ns = new DINameSpace(database);
+++  
+++***************
+++*** 488,494 ****
+++       * @param table the table for which to check accessibility
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     protected final boolean isAccessibleTable(Table table)
+++      throws HsqlException {
+++          return session.isAccessible(table.getName());
+++      }
+++--- 488,494 ----
+++       * @param table the table for which to check accessibility
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     public final boolean isAccessibleTable(Table table)
+++      throws HsqlException {
+++          return session.isAccessible(table.getName());
+++      }
+++***************
+++*** 500,506 ****
+++       * @param name of the table
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     protected final Table createBlankTable(HsqlName name)
+++      throws HsqlException {
+++          return new Table(database, name, Table.SYSTEM_TABLE);
+++      }
+++--- 500,506 ----
+++       * @param name of the table
+++       * @throws HsqlException if a database access error occurs
+++       */
+++!     public final Table createBlankTable(HsqlName name)
+++      throws HsqlException {
+++          return new Table(database, name, Table.SYSTEM_TABLE);
+++      }
+++diff -crN hsqldb-old/src/org/hsqldb/Database.java hsqldb/src/org/hsqldb/Database.java
+++*** hsqldb-old/src/org/hsqldb/Database.java	2007-10-22 07:53:38.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Database.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 124,136 ****
+++      String sName;
+++  
+++  // loosecannon1@users 1.7.2 patch properties on the JDBC URL
+++!     private HsqlProperties urlProperties;
+++!     private String         sPath;
+++      DatabaseInformation    dbInfo;
+++      ClassLoader            classLoader;
+++  
+++      /** indicates the state of the database */
+++!     private int   dbState;
+++      public Logger logger;
+++  
+++      /** true means that all tables are readonly. */
+++--- 124,136 ----
+++      String sName;
+++  
+++  // loosecannon1@users 1.7.2 patch properties on the JDBC URL
+++!     public HsqlProperties urlProperties;
+++!     public String         sPath;
+++      DatabaseInformation    dbInfo;
+++      ClassLoader            classLoader;
+++  
+++      /** indicates the state of the database */
+++!     public int   dbState;
+++      public Logger logger;
+++  
+++      /** true means that all tables are readonly. */
+++***************
+++*** 140,158 ****
+++       * true means that all CACHED and TEXT tables are readonly.
+++       *  MEMORY tables are updatable but updates are not persisted.
+++       */
+++!     private boolean filesReadOnly;
+++  
+++      /** true means filesReadOnly but CACHED and TEXT tables are disallowed */
+++!     private boolean                filesInJar;
+++      public boolean                 sqlEnforceStrictSize;
+++      public int                     firstIdentity;
+++!     private boolean                bIgnoreCase;
+++!     private boolean                bReferentialIntegrity;
+++!     private HsqlDatabaseProperties databaseProperties;
+++!     private boolean                shutdownOnNoConnection;
+++  
+++      // schema invarient objects
+++!     private HashMap        hAlias;
+++      public UserManager     userManager;
+++      public GranteeManager  granteeManager;
+++      public HsqlNameManager nameManager;
+++--- 140,158 ----
+++       * true means that all CACHED and TEXT tables are readonly.
+++       *  MEMORY tables are updatable but updates are not persisted.
+++       */
+++!     public boolean filesReadOnly;
+++  
+++      /** true means filesReadOnly but CACHED and TEXT tables are disallowed */
+++!     public boolean                filesInJar;
+++      public boolean                 sqlEnforceStrictSize;
+++      public int                     firstIdentity;
+++!     public boolean                bIgnoreCase;
+++!     public boolean                bReferentialIntegrity;
+++!     public HsqlDatabaseProperties databaseProperties;
+++!     public boolean                shutdownOnNoConnection;
+++  
+++      // schema invarient objects
+++!     public HashMap        hAlias;
+++      public UserManager     userManager;
+++      public GranteeManager  granteeManager;
+++      public HsqlNameManager nameManager;
+++***************
+++*** 526,532 ****
+++       *  Called by the garbage collector on this Databases object when garbage
+++       *  collection determines that there are no more references to it.
+++       */
+++!     protected void finalize() {
+++  
+++          if (getState() != DATABASE_ONLINE) {
+++              return;
+++--- 526,532 ----
+++       *  Called by the garbage collector on this Databases object when garbage
+++       *  collection determines that there are no more references to it.
+++       */
+++!     public void finalize() {
+++  
+++          if (getState() != DATABASE_ONLINE) {
+++              return;
+++***************
+++*** 639,645 ****
+++          }
+++      }
+++  
+++!     private synchronized void setState(int state) {
+++          dbState = state;
+++      }
+++  
+++--- 639,645 ----
+++          }
+++      }
+++  
+++!     public synchronized void setState(int state) {
+++          dbState = state;
+++      }
+++  
+++***************
+++*** 687,694 ****
+++          return urlProperties;
+++      }
+++  
+++!     private FileAccess fileaccess;
+++!     private boolean    isStoredFileAccess;
+++  
+++      public synchronized FileAccess getFileAccess() {
+++          return fileaccess;
+++--- 687,694 ----
+++          return urlProperties;
+++      }
+++  
+++!     public FileAccess fileaccess;
+++!     public boolean    isStoredFileAccess;
+++  
+++      public synchronized FileAccess getFileAccess() {
+++          return fileaccess;
+++diff -crN hsqldb-old/src/org/hsqldb/DatabaseManager.java hsqldb/src/org/hsqldb/DatabaseManager.java
+++*** hsqldb-old/src/org/hsqldb/DatabaseManager.java	2007-10-11 11:32:16.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DatabaseManager.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 62,68 ****
+++      // Database and Server registry
+++  
+++      /** provides unique ID's for the Databases currently in registry */
+++!     private static int dbIDCounter;
+++  
+++      /** name to Database mapping for mem: databases */
+++      static final HashMap memDatabaseMap = new HashMap();
+++--- 62,68 ----
+++      // Database and Server registry
+++  
+++      /** provides unique ID's for the Databases currently in registry */
+++!     public static int dbIDCounter;
+++  
+++      /** name to Database mapping for mem: databases */
+++      static final HashMap memDatabaseMap = new HashMap();
+++***************
+++*** 235,241 ****
+++      }
+++  
+++  // loosecannon1@users 1.7.2 patch properties on the JDBC URL
+++!     private static synchronized Database getDatabaseObject(String type,
+++              String path, HsqlProperties props) throws HsqlException {
+++  
+++          Database db;
+++--- 235,241 ----
+++      }
+++  
+++  // loosecannon1@users 1.7.2 patch properties on the JDBC URL
+++!     public static synchronized Database getDatabaseObject(String type,
+++              String path, HsqlProperties props) throws HsqlException {
+++  
+++          Database db;
+++***************
+++*** 274,280 ****
+++       * Looks up database of a given type and path in the registry. Returns
+++       * null if there is none.
+++       */
+++!     private static synchronized Database lookupDatabaseObject(String type,
+++              String path) throws HsqlException {
+++  
+++          Object  key = path;
+++--- 274,280 ----
+++       * Looks up database of a given type and path in the registry. Returns
+++       * null if there is none.
+++       */
+++!     public static synchronized Database lookupDatabaseObject(String type,
+++              String path) throws HsqlException {
+++  
+++          Object  key = path;
+++***************
+++*** 300,306 ****
+++       * Adds a database to the registry. Returns
+++       * null if there is none.
+++       */
+++!     private static synchronized void addDatabaseObject(String type,
+++              String path, Database db) throws HsqlException {
+++  
+++          Object  key = path;
+++--- 300,306 ----
+++       * Adds a database to the registry. Returns
+++       * null if there is none.
+++       */
+++!     public static synchronized void addDatabaseObject(String type,
+++              String path, Database db) throws HsqlException {
+++  
+++          Object  key = path;
+++***************
+++*** 407,413 ****
+++      /**
+++       * Deregisters a server as serving a given database. Not yet used.
+++       */
+++!     private static void deRegisterServer(Server server, Database db) {
+++  
+++          Iterator it = serverMap.values().iterator();
+++  
+++--- 407,413 ----
+++      /**
+++       * Deregisters a server as serving a given database. Not yet used.
+++       */
+++!     public static void deRegisterServer(Server server, Database db) {
+++  
+++          Iterator it = serverMap.values().iterator();
+++  
+++***************
+++*** 425,431 ****
+++      /**
+++       * Registers a server as serving a given database.
+++       */
+++!     private static void registerServer(Server server, Database db) {
+++  
+++          if (!serverMap.containsKey(server)) {
+++              serverMap.put(server, new HashSet());
+++--- 425,431 ----
+++      /**
+++       * Registers a server as serving a given database.
+++       */
+++!     public static void registerServer(Server server, Database db) {
+++  
+++          if (!serverMap.containsKey(server)) {
+++              serverMap.put(server, new HashSet());
+++***************
+++*** 440,446 ****
+++       * Notifies all servers that serve the database that the database has been
+++       * shutdown.
+++       */
+++!     private static void notifyServers(Database db) {
+++  
+++          Iterator it = serverMap.keySet().iterator();
+++  
+++--- 440,446 ----
+++       * Notifies all servers that serve the database that the database has been
+++       * shutdown.
+++       */
+++!     public static void notifyServers(Database db) {
+++  
+++          Iterator it = serverMap.keySet().iterator();
+++  
+++***************
+++*** 472,478 ****
+++      }
+++  
+++      // Timer
+++!     private static final HsqlTimer timer = new HsqlTimer();
+++  
+++      public static HsqlTimer getTimer() {
+++          return timer;
+++--- 472,478 ----
+++      }
+++  
+++      // Timer
+++!     public static final HsqlTimer timer = new HsqlTimer();
+++  
+++      public static HsqlTimer getTimer() {
+++          return timer;
+++***************
+++*** 480,486 ****
+++  
+++      // converts file path to database lookup key, converting any
+++      // thrown exception to an HsqlException in the process
+++!     private static String filePathToKey(String path) throws HsqlException {
+++  
+++          try {
+++              return FileUtil.getDefaultInstance().canonicalPath(path);
+++--- 480,486 ----
+++  
+++      // converts file path to database lookup key, converting any
+++      // thrown exception to an HsqlException in the process
+++!     public static String filePathToKey(String path) throws HsqlException {
+++  
+++          try {
+++              return FileUtil.getDefaultInstance().canonicalPath(path);
+++diff -crN hsqldb-old/src/org/hsqldb/DatabaseScript.java hsqldb/src/org/hsqldb/DatabaseScript.java
+++*** hsqldb-old/src/org/hsqldb/DatabaseScript.java	2007-07-23 20:30:48.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DatabaseScript.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 663,669 ****
+++      /**
+++       * Generates the column definitions for a table.
+++       */
+++!     private static void getColumnList(Table t, int[] col, int len,
+++                                        StringBuffer a) {
+++  
+++          a.append('(');
+++--- 663,669 ----
+++      /**
+++       * Generates the column definitions for a table.
+++       */
+++!     public static void getColumnList(Table t, int[] col, int len,
+++                                        StringBuffer a) {
+++  
+++          a.append('(');
+++***************
+++*** 682,688 ****
+++      /**
+++       * Generates the foreign key declaration for a given Constraint object.
+++       */
+++!     private static void getFKStatement(Constraint c, StringBuffer a) {
+++  
+++          a.append(Token.T_CONSTRAINT).append(' ');
+++          a.append(c.getName().statementName);
+++--- 682,688 ----
+++      /**
+++       * Generates the foreign key declaration for a given Constraint object.
+++       */
+++!     public static void getFKStatement(Constraint c, StringBuffer a) {
+++  
+++          a.append(Token.T_CONSTRAINT).append(' ');
+++          a.append(c.getName().statementName);
+++***************
+++*** 714,720 ****
+++      /**
+++       * Returns the foreign key action rule.
+++       */
+++!     private static String getFKAction(int action) {
+++  
+++          switch (action) {
+++  
+++--- 714,720 ----
+++      /**
+++       * Returns the foreign key action rule.
+++       */
+++!     public static String getFKAction(int action) {
+++  
+++          switch (action) {
+++  
+++***************
+++*** 735,741 ****
+++      /**
+++       * Adds a script line to the result.
+++       */
+++!     private static void addRow(Result r, String sql) {
+++  
+++          if (sql == null || sql.length() == 0) {
+++              return;
+++--- 735,741 ----
+++      /**
+++       * Adds a script line to the result.
+++       */
+++!     public static void addRow(Result r, String sql) {
+++  
+++          if (sql == null || sql.length() == 0) {
+++              return;
+++***************
+++*** 760,766 ****
+++       * grant select on system tables
+++       *
+++       */
+++!     private static void addRightsStatements(Database dDatabase, Result r) {
+++  
+++          StringBuffer   a;
+++          HashMappedList userlist = dDatabase.getUserManager().getUsers();
+++--- 760,766 ----
+++       * grant select on system tables
+++       *
+++       */
+++!     public static void addRightsStatements(Database dDatabase, Result r) {
+++  
+++          StringBuffer   a;
+++          HashMappedList userlist = dDatabase.getUserManager().getUsers();
+++diff -crN hsqldb-old/src/org/hsqldb/DINameSpace.java hsqldb/src/org/hsqldb/DINameSpace.java
+++*** hsqldb-old/src/org/hsqldb/DINameSpace.java	2006-04-11 17:13:22.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DINameSpace.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 61,70 ****
+++  final class DINameSpace {
+++  
+++      /** The Database for which the name space functionality is provided */
+++!     private Database database;
+++  
+++      /** The catalog name reported by this namespace */
+++!     private String catalogName;
+++  
+++      /**
+++       * Set { <code>Class</code> FQN <code>String</code> objects }. <p>
+++--- 61,70 ----
+++  final class DINameSpace {
+++  
+++      /** The Database for which the name space functionality is provided */
+++!     public Database database;
+++  
+++      /** The catalog name reported by this namespace */
+++!     public String catalogName;
+++  
+++      /**
+++       * Set { <code>Class</code> FQN <code>String</code> objects }. <p>
+++***************
+++*** 74,80 ****
+++       * support of the expected SQL CLI scalar functions and other core
+++       * HSQLDB SQL functions and stored procedures. <p>
+++       */
+++!     private static HashSet builtin = new HashSet();
+++  
+++      // procedure columns
+++      // make temporary ad-hoc spec a little more "official"
+++--- 74,80 ----
+++       * support of the expected SQL CLI scalar functions and other core
+++       * HSQLDB SQL functions and stored procedures. <p>
+++       */
+++!     public static HashSet builtin = new HashSet();
+++  
+++      // procedure columns
+++      // make temporary ad-hoc spec a little more "official"
+++diff -crN hsqldb-old/src/org/hsqldb/DIProcedureInfo.java hsqldb/src/org/hsqldb/DIProcedureInfo.java
+++*** hsqldb-old/src/org/hsqldb/DIProcedureInfo.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DIProcedureInfo.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 70,94 ****
+++      static final int      procedureNoNulls         = 0;
+++      static final int      procedureNullable        = 1;
+++      static final int      procedureNullableUnknown = 2;
+++!     private Class         clazz;
+++!     private Class[]       colClasses;
+++!     private int[]         colTypes;
+++!     private int           colOffset;
+++!     private int           colCount;
+++!     private boolean       colsResolved;
+++!     private String        fqn;
+++!     private String        specificName;
+++!     private int           hnd_remarks;
+++!     private Method        method;
+++!     private String        sig;
+++!     private DINameSpace   nameSpace;
+++!     private final HashMap typeMap = new HashMap();
+++  
+++      public DIProcedureInfo(DINameSpace ns) throws HsqlException {
+++          setNameSpace(ns);
+++      }
+++  
+++!     private int colOffset() {
+++  
+++          if (!colsResolved) {
+++              resolveCols();
+++--- 70,94 ----
+++      static final int      procedureNoNulls         = 0;
+++      static final int      procedureNullable        = 1;
+++      static final int      procedureNullableUnknown = 2;
+++!     public Class         clazz;
+++!     public Class[]       colClasses;
+++!     public int[]         colTypes;
+++!     public int           colOffset;
+++!     public int           colCount;
+++!     public boolean       colsResolved;
+++!     public String        fqn;
+++!     public String        specificName;
+++!     public int           hnd_remarks;
+++!     public Method        method;
+++!     public String        sig;
+++!     public DINameSpace   nameSpace;
+++!     public final HashMap typeMap = new HashMap();
+++  
+++      public DIProcedureInfo(DINameSpace ns) throws HsqlException {
+++          setNameSpace(ns);
+++      }
+++  
+++!     public int colOffset() {
+++  
+++          if (!colsResolved) {
+++              resolveCols();
+++***************
+++*** 512,518 ****
+++          } catch (Exception e) {}
+++      }
+++  
+++!     private void resolveCols() {
+++  
+++          Class   rType;
+++          Class[] pTypes;
+++--- 512,518 ----
+++          } catch (Exception e) {}
+++      }
+++  
+++!     public void resolveCols() {
+++  
+++          Class   rType;
+++          Class[] pTypes;
+++diff -crN hsqldb-old/src/org/hsqldb/DiskNode.java hsqldb/src/org/hsqldb/DiskNode.java
+++*** hsqldb-old/src/org/hsqldb/DiskNode.java	2006-06-28 23:53:48.000000000 +0200
+++--- hsqldb/src/org/hsqldb/DiskNode.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 93,103 ****
+++   */
+++  class DiskNode extends Node {
+++  
+++!     protected Row    rData;
+++!     private int      iLeft   = NO_POS;
+++!     private int      iRight  = NO_POS;
+++!     private int      iParent = NO_POS;
+++!     private int      iId;    // id of Index object for this Node
+++      static final int SIZE_IN_BYTE = 4 * 4;
+++  
+++      DiskNode(CachedRow r, RowInputInterface in,
+++--- 93,103 ----
+++   */
+++  class DiskNode extends Node {
+++  
+++!     public Row    rData;
+++!     public int      iLeft   = NO_POS;
+++!     public int      iRight  = NO_POS;
+++!     public int      iParent = NO_POS;
+++!     public int      iId;    // id of Index object for this Node
+++      static final int SIZE_IN_BYTE = 4 * 4;
+++  
+++      DiskNode(CachedRow r, RowInputInterface in,
+++***************
+++*** 162,168 ****
+++          return rData;
+++      }
+++  
+++!     private Node findNode(int pos) throws HsqlException {
+++  
+++          Node ret = null;
+++          Row  r   = ((CachedRow) rData).getTable().getRow(pos);
+++--- 162,168 ----
+++          return rData;
+++      }
+++  
+++!     public Node findNode(int pos) throws HsqlException {
+++  
+++          Node ret = null;
+++          Row  r   = ((CachedRow) rData).getTable().getRow(pos);
+++***************
+++*** 378,384 ****
+++          writeTranslatePointer(iParent, out, lookup);
+++      }
+++  
+++!     private void writeTranslatePointer(int pointer, RowOutputInterface out,
+++                                         IntLookup lookup) {
+++  
+++          int newPointer = 0;
+++--- 378,384 ----
+++          writeTranslatePointer(iParent, out, lookup);
+++      }
+++  
+++!     public void writeTranslatePointer(int pointer, RowOutputInterface out,
+++                                         IntLookup lookup) {
+++  
+++          int newPointer = 0;
+++diff -crN hsqldb-old/src/org/hsqldb/DITableInfo.java hsqldb/src/org/hsqldb/DITableInfo.java
+++*** hsqldb-old/src/org/hsqldb/DITableInfo.java	2007-01-08 14:51:12.000000000 +0100
+++--- hsqldb/src/org/hsqldb/DITableInfo.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 55,73 ****
+++      static final short tableIndexOther    = 3;
+++  
+++      /** Used in buffer size and character octet length determinations. */
+++!     private static final int HALF_MAX_INT = Integer.MAX_VALUE >>> 1;
+++  
+++      /** BundleHandler id for column remarks resource bundle. */
+++!     private int hnd_column_remarks = -1;
+++  
+++      /** BundleHandler id for table remarks resource bundle. */
+++!     private int hnd_table_remarks = -1;
+++  
+++      /** The Table object upon which this object is reporting. */
+++!     private Table table;
+++  
+++      /** Provides intrinsic type infformation support. */
+++!     private static final DITypeInfo ti = new DITypeInfo();
+++  
+++      /**
+++       * Creates a new DITableInfo object with the default Locale and reporting
+++--- 55,73 ----
+++      static final short tableIndexOther    = 3;
+++  
+++      /** Used in buffer size and character octet length determinations. */
+++!     public static final int HALF_MAX_INT = Integer.MAX_VALUE >>> 1;
+++  
+++      /** BundleHandler id for column remarks resource bundle. */
+++!     public int hnd_column_remarks = -1;
+++  
+++      /** BundleHandler id for table remarks resource bundle. */
+++!     public int hnd_table_remarks = -1;
+++  
+++      /** The Table object upon which this object is reporting. */
+++!     public Table table;
+++  
+++      /** Provides intrinsic type infformation support. */
+++!     public static final DITypeInfo ti = new DITypeInfo();
+++  
+++      /**
+++       * Creates a new DITableInfo object with the default Locale and reporting
+++diff -crN hsqldb-old/src/org/hsqldb/DITypeInfo.java hsqldb/src/org/hsqldb/DITypeInfo.java
+++*** hsqldb-old/src/org/hsqldb/DITypeInfo.java	2007-01-09 15:57:14.000000000 +0100
+++--- hsqldb/src/org/hsqldb/DITypeInfo.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 57,75 ****
+++      static final int typeSearchable = 3;
+++  
+++      /** BundleHandler id for create params resource bundle. */
+++!     private int hnd_create_params = -1;
+++  
+++      /** BundleHandler id for local names resource bundle. */
+++!     private int hnd_local_names = -1;
+++  
+++      /** BundleHandler id for data type remarks resource bundle. */
+++!     private int hnd_remarks = -1;
+++  
+++      /** The SQL type code on which this object is reporting. */
+++!     private int type = Types.NULL;
+++  
+++      /** The HSQLDB subtype code on which this object is reporting. */
+++!     private int typeSub = Types.TYPE_SUB_DEFAULT;
+++      boolean     locale_set;
+++  
+++      /** Creates a new DITypeInfo object having the default Locale. */
+++--- 57,75 ----
+++      static final int typeSearchable = 3;
+++  
+++      /** BundleHandler id for create params resource bundle. */
+++!     public int hnd_create_params = -1;
+++  
+++      /** BundleHandler id for local names resource bundle. */
+++!     public int hnd_local_names = -1;
+++  
+++      /** BundleHandler id for data type remarks resource bundle. */
+++!     public int hnd_remarks = -1;
+++  
+++      /** The SQL type code on which this object is reporting. */
+++!     public int type = Types.NULL;
+++  
+++      /** The HSQLDB subtype code on which this object is reporting. */
+++!     public int typeSub = Types.TYPE_SUB_DEFAULT;
+++      boolean     locale_set;
+++  
+++      /** Creates a new DITypeInfo object having the default Locale. */
+++diff -crN hsqldb-old/src/org/hsqldb/Expression.java hsqldb/src/org/hsqldb/Expression.java
+++*** hsqldb-old/src/org/hsqldb/Expression.java	2007-07-23 20:30:48.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Expression.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 222,249 ****
+++          });
+++      }
+++  
+++!     private static final int AGGREGATE_SELF     = -1;
+++!     private static final int AGGREGATE_NONE     = 0;
+++!     private static final int AGGREGATE_LEFT     = 1;
+++!     private static final int AGGREGATE_RIGHT    = 2;
+++!     private static final int AGGREGATE_BOTH     = 3;
+++!     private static final int AGGREGATE_FUNCTION = 4;
+++  
+++      // type
+++      int         exprType;
+++!     private int aggregateSpec = AGGREGATE_NONE;
+++  
+++      // nodes
+++      Expression eArg, eArg2;
+++  
+++      // VALUE
+++      Object      valueData;
+++!     private int dataType;
+++  
+++      // VALUE LIST NEW
+++      HashSet         hList;
+++      Expression[]    valueList;
+++!     private boolean isFixedConstantValueList;
+++  
+++      // QUERY - in single value selects, IN or EXISTS predicates
+++      SubQuery subQuery;
+++--- 222,249 ----
+++          });
+++      }
+++  
+++!     public static final int AGGREGATE_SELF     = -1;
+++!     public static final int AGGREGATE_NONE     = 0;
+++!     public static final int AGGREGATE_LEFT     = 1;
+++!     public static final int AGGREGATE_RIGHT    = 2;
+++!     public static final int AGGREGATE_BOTH     = 3;
+++!     public static final int AGGREGATE_FUNCTION = 4;
+++  
+++      // type
+++      int         exprType;
+++!     public int aggregateSpec = AGGREGATE_NONE;
+++  
+++      // nodes
+++      Expression eArg, eArg2;
+++  
+++      // VALUE
+++      Object      valueData;
+++!     public int dataType;
+++  
+++      // VALUE LIST NEW
+++      HashSet         hList;
+++      Expression[]    valueList;
+++!     public boolean isFixedConstantValueList;
+++  
+++      // QUERY - in single value selects, IN or EXISTS predicates
+++      SubQuery subQuery;
+++***************
+++*** 253,283 ****
+++      Function function;
+++  
+++      // LIKE
+++!     private Like likeObject;
+++  
+++      // COLUMN
+++!     private String      catalog;
+++!     private String      schema;
+++!     private String      tableName;
+++!     private String      columnName;
+++!     private TableFilter tableFilter;                // null if not yet resolved
+++      TableFilter         outerFilter;                // defined if this is part of an OUTER JOIN condition tree
+++  
+++      // COLUMN
+++!     private int     columnIndex;
+++!     private boolean columnQuoted;
+++!     private int     precision;
+++!     private int     scale;
+++!     private String  columnAlias;                    // if it is a column of a select column list
+++!     private boolean aliasQuoted;
+++  
+++      //
+++!     private boolean isDescending;                   // if it is a column in a order by
+++      int             joinedTableColumnIndex = -1;    // >= 0 when it is used for order by
+++      boolean         isDistinctAggregate;
+++  
+++      // PARAM
+++!     private boolean isParam;
+++  
+++      // does Expression stem from a JOIN <table> ON <expression>
+++      boolean isInJoin;
+++--- 253,283 ----
+++      Function function;
+++  
+++      // LIKE
+++!     public Like likeObject;
+++  
+++      // COLUMN
+++!     public String      catalog;
+++!     public String      schema;
+++!     public String      tableName;
+++!     public String      columnName;
+++!     public TableFilter tableFilter;                // null if not yet resolved
+++      TableFilter         outerFilter;                // defined if this is part of an OUTER JOIN condition tree
+++  
+++      // COLUMN
+++!     public int     columnIndex;
+++!     public boolean columnQuoted;
+++!     public int     precision;
+++!     public int     scale;
+++!     public String  columnAlias;                    // if it is a column of a select column list
+++!     public boolean aliasQuoted;
+++  
+++      //
+++!     public boolean isDescending;                   // if it is a column in a order by
+++      int             joinedTableColumnIndex = -1;    // >= 0 when it is used for order by
+++      boolean         isDistinctAggregate;
+++  
+++      // PARAM
+++!     public boolean isParam;
+++  
+++      // does Expression stem from a JOIN <table> ON <expression>
+++      boolean isInJoin;
+++***************
+++*** 496,502 ****
+++                 && scale == other.scale;
+++      }
+++  
+++!     private void checkAggregate() {
+++  
+++          if (isAggregate(exprType)) {
+++              aggregateSpec = AGGREGATE_SELF;
+++--- 496,502 ----
+++                 && scale == other.scale;
+++      }
+++  
+++!     public void checkAggregate() {
+++  
+++          if (isAggregate(exprType)) {
+++              aggregateSpec = AGGREGATE_SELF;
+++***************
+++*** 863,869 ****
+++          throw Trace.error(Trace.EXPRESSION_NOT_SUPPORTED);
+++      }
+++  
+++!     private String describe(Session session, int blanks) {
+++  
+++          int          lIType;
+++          StringBuffer buf = new StringBuffer(64);
+++--- 863,869 ----
+++          throw Trace.error(Trace.EXPRESSION_NOT_SUPPORTED);
+++      }
+++  
+++!     public String describe(Session session, int blanks) {
+++  
+++          int          lIType;
+++          StringBuffer buf = new StringBuffer(64);
+++***************
+++*** 1244,1250 ****
+++       *
+++       * @return boolean
+++       */
+++!     private boolean isColumn() {
+++  
+++          switch (exprType) {
+++  
+++--- 1244,1250 ----
+++       *
+++       * @return boolean
+++       */
+++!     public boolean isColumn() {
+++  
+++          switch (exprType) {
+++  
+++***************
+++*** 3506,3512 ****
+++          return compareValues(session, o1, o2);
+++      }
+++  
+++!     private Boolean compareValues(Session session, Object o1,
+++                                    Object o2) throws HsqlException {
+++  
+++          int type = eArg.dataType;
+++--- 3506,3512 ----
+++          return compareValues(session, o1, o2);
+++      }
+++  
+++!     public Boolean compareValues(Session session, Object o1,
+++                                    Object o2) throws HsqlException {
+++  
+++          int type = eArg.dataType;
+++***************
+++*** 3564,3570 ****
+++       * @return boolean
+++       * @throws HsqlException
+++       */
+++!     private Boolean testInCondition(Session session,
+++                                      Object o) throws HsqlException {
+++  
+++          if (o == null) {
+++--- 3564,3570 ----
+++       * @return boolean
+++       * @throws HsqlException
+++       */
+++!     public Boolean testInCondition(Session session,
+++                                      Object o) throws HsqlException {
+++  
+++          if (o == null) {
+++***************
+++*** 3628,3634 ****
+++          throw Trace.error(Trace.WRONG_DATA_TYPE);
+++      }
+++  
+++!     private Boolean testExistsCondition(Session session)
+++      throws HsqlException {
+++  
+++          if (subQuery.isResolved) {
+++--- 3628,3634 ----
+++          throw Trace.error(Trace.WRONG_DATA_TYPE);
+++      }
+++  
+++!     public Boolean testExistsCondition(Session session)
+++      throws HsqlException {
+++  
+++          if (subQuery.isResolved) {
+++***************
+++*** 3642,3648 ****
+++          }
+++      }
+++  
+++!     private Boolean testAnyAllCondition(Session session,
+++                                          Object o) throws HsqlException {
+++  
+++          if (o == null) {
+++--- 3642,3648 ----
+++          }
+++      }
+++  
+++!     public Boolean testAnyAllCondition(Session session,
+++                                          Object o) throws HsqlException {
+++  
+++          if (o == null) {
+++***************
+++*** 3665,3671 ****
+++          return result;
+++      }
+++  
+++!     private Boolean getAnyAllValue(Session session, Object o,
+++                                     SubQuery subquery) throws HsqlException {
+++  
+++          boolean     empty    = subquery.table.isEmpty(session);
+++--- 3665,3671 ----
+++          return result;
+++      }
+++  
+++!     public Boolean getAnyAllValue(Session session, Object o,
+++                                     SubQuery subquery) throws HsqlException {
+++  
+++          boolean     empty    = subquery.table.isEmpty(session);
+++diff -crN hsqldb-old/src/org/hsqldb/Function.java hsqldb/src/org/hsqldb/Function.java
+++*** hsqldb-old/src/org/hsqldb/Function.java	2006-09-22 15:14:00.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Function.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 96,115 ****
+++   */
+++  class Function {
+++  
+++!     private String         sFunction;
+++!     private Method         mMethod;
+++!     private String         returnClassName;
+++!     private Class[]        aArgClasses;
+++!     private int            iReturnType;
+++!     private int            iArgCount;
+++!     private int            iSqlArgCount;
+++!     private int            iSqlArgStart;
+++!     private int[]          iArgType;
+++!     private boolean[]      bArgNullable;
+++      Expression[]           eArg;
+++!     private boolean        bConnection;
+++!     private static HashMap methodCache = new HashMap();
+++!     private int            fID;
+++      String                 name;        // name used to call function
+++      boolean                isSimple;    //CURRENT_TIME, NOW etc.
+++      boolean                hasAggregate;
+++--- 96,115 ----
+++   */
+++  class Function {
+++  
+++!     public String         sFunction;
+++!     public Method         mMethod;
+++!     public String         returnClassName;
+++!     public Class[]        aArgClasses;
+++!     public int            iReturnType;
+++!     public int            iArgCount;
+++!     public int            iSqlArgCount;
+++!     public int            iSqlArgStart;
+++!     public int[]          iArgType;
+++!     public boolean[]      bArgNullable;
+++      Expression[]           eArg;
+++!     public boolean        bConnection;
+++!     public static HashMap methodCache = new HashMap();
+++!     public int            fID;
+++      String                 name;        // name used to call function
+++      boolean                isSimple;    //CURRENT_TIME, NOW etc.
+++      boolean                hasAggregate;
+++***************
+++*** 370,376 ****
+++          // Library function throw HsqlException
+++      }
+++  
+++!     private Object[] getArguments(Session session) throws HsqlException {
+++  
+++          int      i    = bConnection ? 1
+++                                      : 0;
+++--- 370,376 ----
+++          // Library function throw HsqlException
+++      }
+++  
+++!     public Object[] getArguments(Session session) throws HsqlException {
+++  
+++          int      i    = bConnection ? 1
+++                                      : 0;
+++***************
+++*** 407,413 ****
+++      /**
+++       * returns null if any non-nullable element of values is null
+++       */
+++!     private Object[] getNotNull(Object[] values) throws HsqlException {
+++  
+++          int i = bConnection ? 1
+++                              : 0;
+++--- 407,413 ----
+++      /**
+++       * returns null if any non-nullable element of values is null
+++       */
+++!     public Object[] getNotNull(Object[] values) throws HsqlException {
+++  
+++          int i = bConnection ? 1
+++                              : 0;
+++diff -crN hsqldb-old/src/org/hsqldb/Grantee.java hsqldb/src/org/hsqldb/Grantee.java
+++*** hsqldb-old/src/org/hsqldb/Grantee.java	2006-04-11 17:13:22.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Grantee.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 52,60 ****
+++   * Method names ending in Direct indicate methods which do not recurse
+++   * to look through Roles which "this" object is a member of.
+++   *
+++!  * We use the word "Admin" (e.g., in private variable "admin" and method
+++   * "isAdmin()) to mean this Grantee has admin priv by any means.
+++!  * We use the word "adminDirect" (e.g., in private variable "adminDirect"
+++   * and method "isAdminDirect()) to mean this Grantee has admin priv
+++   * directly.
+++   *
+++--- 52,60 ----
+++   * Method names ending in Direct indicate methods which do not recurse
+++   * to look through Roles which "this" object is a member of.
+++   *
+++!  * We use the word "Admin" (e.g., in public variable "admin" and method
+++   * "isAdmin()) to mean this Grantee has admin priv by any means.
+++!  * We use the word "adminDirect" (e.g., in public variable "adminDirect"
+++   * and method "isAdminDirect()) to mean this Grantee has admin priv
+++   * directly.
+++   *
+++***************
+++*** 73,93 ****
+++       * true if this grantee has database administrator priv directly
+++       *  (ie., not by membership in any role)
+++       */
+++!     private boolean isAdminDirect = false;
+++  
+++      /** true if this grantee has database administrator priv by any means. */
+++!     private boolean isAdmin = false;
+++  
+++      /** contains righs granted direct, or via roles, expept those of PUBLIC */
+++!     private IntValueHashMap fullRightsMap = new IntValueHashMap();
+++  
+++      /**
+++       * Grantee name.
+++       */
+++!     private String granteeName;
+++  
+++      /** map with database object identifier keys and access privileges values */
+++!     private IntValueHashMap rightsMap;
+++  
+++      /** These are the DIRECT roles.  Each of these may contain nested roles */
+++      HashSet roles = new HashSet();
+++--- 73,93 ----
+++       * true if this grantee has database administrator priv directly
+++       *  (ie., not by membership in any role)
+++       */
+++!     public boolean isAdminDirect = false;
+++  
+++      /** true if this grantee has database administrator priv by any means. */
+++!     public boolean isAdmin = false;
+++  
+++      /** contains righs granted direct, or via roles, expept those of PUBLIC */
+++!     public IntValueHashMap fullRightsMap = new IntValueHashMap();
+++  
+++      /**
+++       * Grantee name.
+++       */
+++!     public String granteeName;
+++  
+++      /** map with database object identifier keys and access privileges values */
+++!     public IntValueHashMap rightsMap;
+++  
+++      /** These are the DIRECT roles.  Each of these may contain nested roles */
+++      HashSet roles = new HashSet();
+++***************
+++*** 98,107 ****
+++       * Note: All Grantee objects except the special
+++       * SYS and PUBLIC Grantee objects contain a reference to this object
+++       */
+++!     private Grantee pubGrantee;
+++  
+++      /** Needed only to give access to the roles for this database */
+++!     private GranteeManager granteeManager;
+++  
+++      /**
+++       * Constructor, with a argument reference to the PUBLIC User Object which
+++--- 98,107 ----
+++       * Note: All Grantee objects except the special
+++       * SYS and PUBLIC Grantee objects contain a reference to this object
+++       */
+++!     public Grantee pubGrantee;
+++  
+++      /** Needed only to give access to the roles for this database */
+++!     public GranteeManager granteeManager;
+++  
+++      /**
+++       * Constructor, with a argument reference to the PUBLIC User Object which
+++***************
+++*** 219,225 ****
+++       *
+++       * @return Given role with new elements added.
+++       */
+++!     private HashSet addGranteeAndRoles(HashSet set) {
+++  
+++          String candidateRole;
+++  
+++--- 219,225 ----
+++       *
+++       * @return Given role with new elements added.
+++       */
+++!     public HashSet addGranteeAndRoles(HashSet set) {
+++  
+++          String candidateRole;
+++  
+++***************
+++*** 431,437 ****
+++       * Considers none of pubGranee, nested roles, admin privs, globally
+++       * available Class object.
+++       */
+++!     protected boolean isDirectlyAccessible(Object dbObject,
+++                                             int rights) throws HsqlException {
+++  
+++          int n = rightsMap.get(dbObject, 0);
+++--- 431,437 ----
+++       * Considers none of pubGranee, nested roles, admin privs, globally
+++       * available Class object.
+++       */
+++!     public boolean isDirectlyAccessible(Object dbObject,
+++                                             int rights) throws HsqlException {
+++  
+++          int n = rightsMap.get(dbObject, 0);
+++diff -crN hsqldb-old/src/org/hsqldb/GranteeManager.java hsqldb/src/org/hsqldb/GranteeManager.java
+++*** hsqldb-old/src/org/hsqldb/GranteeManager.java	2005-10-29 20:49:36.000000000 +0200
+++--- hsqldb/src/org/hsqldb/GranteeManager.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 105,117 ****
+++       * Map of String-to-Grantee-objects.<p>
+++       * Primary object maintained by this class
+++       */
+++!     private HashMappedList map = new HashMappedList();
+++  
+++      /**
+++       * This object's set of Role objects. <p>
+++       * role-Strings-to-Grantee-object
+++       */
+++!     private HashMappedList roleMap = new HashMappedList();
+++  
+++      /**
+++       * Construct the GranteeManager for a Database.
+++--- 105,117 ----
+++       * Map of String-to-Grantee-objects.<p>
+++       * Primary object maintained by this class
+++       */
+++!     public HashMappedList map = new HashMappedList();
+++  
+++      /**
+++       * This object's set of Role objects. <p>
+++       * role-Strings-to-Grantee-object
+++       */
+++!     public HashMappedList roleMap = new HashMappedList();
+++  
+++      /**
+++       * Construct the GranteeManager for a Database.
+++***************
+++*** 451,457 ****
+++          return list;
+++      }
+++  
+++!     private static String[] getRightsArraySub(int right) {
+++  
+++  //        checkValidFlags(right);
+++          if (right == 0) {
+++--- 451,457 ----
+++          return list;
+++      }
+++  
+++!     public static String[] getRightsArraySub(int right) {
+++  
+++  //        checkValidFlags(right);
+++          if (right == 0) {
+++diff -crN hsqldb-old/src/org/hsqldb/GroupedResult.java hsqldb/src/org/hsqldb/GroupedResult.java
+++*** hsqldb-old/src/org/hsqldb/GroupedResult.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/GroupedResult.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 68,80 ****
+++  class GroupedResult {
+++  
+++  /** @todo fredt - initialise results on first use */
+++!     private Result        result;
+++      int                   groupBegin;
+++      int                   groupEnd;
+++!     private final boolean isGrouped;
+++!     private final boolean isAggregated;
+++!     private HashSet       groups;
+++!     private ResultGroup   currGroup;
+++  
+++      GroupedResult(Select select, Result.ResultMetaData meta) {
+++  
+++--- 68,80 ----
+++  class GroupedResult {
+++  
+++  /** @todo fredt - initialise results on first use */
+++!     public Result        result;
+++      int                   groupBegin;
+++      int                   groupEnd;
+++!     public final boolean isGrouped;
+++!     public final boolean isAggregated;
+++!     public HashSet       groups;
+++!     public ResultGroup   currGroup;
+++  
+++      GroupedResult(Select select, Result.ResultMetaData meta) {
+++  
+++***************
+++*** 152,158 ****
+++          Object[] row;
+++          int      hashCode;
+++  
+++!         private ResultGroup(Object[] row) {
+++  
+++              this.row = row;
+++              hashCode = 0;
+++--- 152,158 ----
+++          Object[] row;
+++          int      hashCode;
+++  
+++!         public ResultGroup(Object[] row) {
+++  
+++              this.row = row;
+++              hashCode = 0;
+++***************
+++*** 189,195 ****
+++              return true;
+++          }
+++  
+++!         private boolean equals(Object o1, Object o2) {
+++              return (o1 == null) ? o2 == null
+++                                  : o1.equals(o2);
+++          }
+++--- 189,195 ----
+++              return true;
+++          }
+++  
+++!         public boolean equals(Object o1, Object o2) {
+++              return (o1 == null) ? o2 == null
+++                                  : o1.equals(o2);
+++          }
+++diff -crN hsqldb-old/src/org/hsqldb/HSQLClientConnection.java hsqldb/src/org/hsqldb/HSQLClientConnection.java
+++*** hsqldb-old/src/org/hsqldb/HSQLClientConnection.java	2006-09-24 17:37:58.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HSQLClientConnection.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 56,73 ****
+++  
+++      static final int          BUFFER_SIZE = 0x1000;
+++      final byte[]              mainBuffer  = new byte[BUFFER_SIZE];
+++!     private boolean           isClosed;
+++!     private Socket            socket;
+++!     protected OutputStream    dataOutput;
+++!     protected DataInputStream dataInput;
+++!     protected RowOutputBinary rowOut;
+++!     protected RowInputBinary  rowIn;
+++!     private Result            resultOut;
+++!     private int               sessionID;
+++  
+++      //
+++!     private boolean isReadOnly   = false;
+++!     private boolean isAutoCommit = true;
+++  
+++      //
+++      String  host;
+++--- 56,73 ----
+++  
+++      static final int          BUFFER_SIZE = 0x1000;
+++      final byte[]              mainBuffer  = new byte[BUFFER_SIZE];
+++!     public boolean           isClosed;
+++!     public Socket            socket;
+++!     public OutputStream    dataOutput;
+++!     public DataInputStream dataInput;
+++!     public RowOutputBinary rowOut;
+++!     public RowInputBinary  rowIn;
+++!     public Result            resultOut;
+++!     public int               sessionID;
+++  
+++      //
+++!     public boolean isReadOnly   = false;
+++!     public boolean isAutoCommit = true;
+++  
+++      //
+++      String  host;
+++***************
+++*** 113,119 ****
+++       * resultOut is reused to trasmit all remote calls for session management.
+++       * Here the structure is preset for sending attributes.
+++       */
+++!     private void initStructures() {
+++  
+++          rowOut    = new RowOutputBinary(mainBuffer);
+++          rowIn     = new RowInputBinary(rowOut);
+++--- 113,119 ----
+++       * resultOut is reused to trasmit all remote calls for session management.
+++       * Here the structure is preset for sending attributes.
+++       */
+++!     public void initStructures() {
+++  
+++          rowOut    = new RowOutputBinary(mainBuffer);
+++          rowIn     = new RowInputBinary(rowOut);
+++***************
+++*** 122,133 ****
+++          resultOut.add(new Object[7]);
+++      }
+++  
+++!     protected void initConnection(String host, int port,
+++                                    boolean isTLS) throws HsqlException {
+++          openConnection(host, port, isTLS);
+++      }
+++  
+++!     protected void openConnection(String host, int port,
+++                                    boolean isTLS) throws HsqlException {
+++  
+++          try {
+++--- 122,133 ----
+++          resultOut.add(new Object[7]);
+++      }
+++  
+++!     public void initConnection(String host, int port,
+++                                    boolean isTLS) throws HsqlException {
+++          openConnection(host, port, isTLS);
+++      }
+++  
+++!     public void openConnection(String host, int port,
+++                                    boolean isTLS) throws HsqlException {
+++  
+++          try {
+++***************
+++*** 143,149 ****
+++          }
+++      }
+++  
+++!     protected void closeConnection() {
+++  
+++          try {
+++              if (socket != null) {
+++--- 143,149 ----
+++          }
+++      }
+++  
+++!     public void closeConnection() {
+++  
+++          try {
+++              if (socket != null) {
+++***************
+++*** 186,192 ****
+++          } catch (Exception e) {}
+++      }
+++  
+++!     private Object getAttribute(int id) throws HsqlException {
+++  
+++          resultOut.setResultType(ResultConstants.GETSESSIONATTR);
+++  
+++--- 186,192 ----
+++          } catch (Exception e) {}
+++      }
+++  
+++!     public Object getAttribute(int id) throws HsqlException {
+++  
+++          resultOut.setResultType(ResultConstants.GETSESSIONATTR);
+++  
+++***************
+++*** 199,205 ****
+++          return in.rRoot.data[id];
+++      }
+++  
+++!     private void setAttribute(Object property, int id) throws HsqlException {
+++  
+++          resultOut.setResultType(ResultConstants.SETSESSIONATTR);
+++          ArrayUtil.fillArray(resultOut.rRoot.data, null);
+++--- 199,205 ----
+++          return in.rRoot.data[id];
+++      }
+++  
+++!     public void setAttribute(Object property, int id) throws HsqlException {
+++  
+++          resultOut.setResultType(ResultConstants.SETSESSIONATTR);
+++          ArrayUtil.fillArray(resultOut.rRoot.data, null);
+++***************
+++*** 335,345 ****
+++          databaseID = resultIn.databaseID;
+++      }
+++  
+++!     protected void write(Result r) throws IOException, HsqlException {
+++          Result.write(r, rowOut, dataOutput);
+++      }
+++  
+++!     protected Result read() throws IOException, HsqlException {
+++  
+++          Result r = Result.read(rowIn, dataInput);
+++  
+++--- 335,345 ----
+++          databaseID = resultIn.databaseID;
+++      }
+++  
+++!     public void write(Result r) throws IOException, HsqlException {
+++          Result.write(r, rowOut, dataOutput);
+++      }
+++  
+++!     public Result read() throws IOException, HsqlException {
+++  
+++          Result r = Result.read(rowIn, dataInput);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/HsqlDateTime.java hsqldb/src/org/hsqldb/HsqlDateTime.java
+++*** hsqldb-old/src/org/hsqldb/HsqlDateTime.java	2006-07-10 13:28:32.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HsqlDateTime.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 74,86 ****
+++       * A reusable static value for today's date. Should only be accessed
+++       * by getToday()
+++       */
+++!     private static Calendar today          = new GregorianCalendar();
+++!     private static Calendar tempCal        = new GregorianCalendar();
+++!     private static Calendar tempCalDefault = new GregorianCalendar();
+++!     private static Calendar tempCalGMT =
+++          new GregorianCalendar(TimeZone.getTimeZone("GMT"));
+++!     private static Date tempDate = new Date(0);
+++!     private static Date currentDate;
+++  
+++      static {
+++          resetToday(System.currentTimeMillis());
+++--- 74,86 ----
+++       * A reusable static value for today's date. Should only be accessed
+++       * by getToday()
+++       */
+++!     public static Calendar today          = new GregorianCalendar();
+++!     public static Calendar tempCal        = new GregorianCalendar();
+++!     public static Calendar tempCalDefault = new GregorianCalendar();
+++!     public static Calendar tempCalGMT =
+++          new GregorianCalendar(TimeZone.getTimeZone("GMT"));
+++!     public static Date tempDate = new Date(0);
+++!     public static Date currentDate;
+++  
+++      static {
+++          resetToday(System.currentTimeMillis());
+++***************
+++*** 231,240 ****
+++          return new Timestamp(millis);
+++      }
+++  
+++!     private static final String sdftPattern     = "HH:mm:ss";
+++!     private static final String sdfdPattern     = "yyyy-MM-dd";
+++!     private static final String sdftsPattern    = "yyyy-MM-dd HH:mm:ss.";
+++!     private static final String sdftsSysPattern = "yyyy-MM-dd HH:mm:ss.SSS";
+++      static SimpleDateFormat     sdfd = new SimpleDateFormat(sdfdPattern);
+++      static SimpleDateFormat     sdft = new SimpleDateFormat(sdftPattern);
+++      static SimpleDateFormat     sdfts = new SimpleDateFormat(sdftsPattern);
+++--- 231,240 ----
+++          return new Timestamp(millis);
+++      }
+++  
+++!     public static final String sdftPattern     = "HH:mm:ss";
+++!     public static final String sdfdPattern     = "yyyy-MM-dd";
+++!     public static final String sdftsPattern    = "yyyy-MM-dd HH:mm:ss.";
+++!     public static final String sdftsSysPattern = "yyyy-MM-dd HH:mm:ss.SSS";
+++      static SimpleDateFormat     sdfd = new SimpleDateFormat(sdfdPattern);
+++      static SimpleDateFormat     sdft = new SimpleDateFormat(sdftPattern);
+++      static SimpleDateFormat     sdfts = new SimpleDateFormat(sdftsPattern);
+++***************
+++*** 270,276 ****
+++          }
+++      }
+++  
+++!     private static java.util.Date sysDate = new java.util.Date();
+++  
+++      public static String getSytemTimeString() {
+++  
+++--- 270,276 ----
+++          }
+++      }
+++  
+++!     public static java.util.Date sysDate = new java.util.Date();
+++  
+++      public static String getSytemTimeString() {
+++  
+++***************
+++*** 342,348 ****
+++      /**
+++       * resets the static reusable value today
+++       */
+++!     private static synchronized void resetToday(long millis) {
+++  
+++  //#ifdef JDBC3
+++          // Use method directly
+++--- 342,348 ----
+++      /**
+++       * resets the static reusable value today
+++       */
+++!     public static synchronized void resetToday(long millis) {
+++  
+++  //#ifdef JDBC3
+++          // Use method directly
+++***************
+++*** 363,374 ****
+++  
+++      /**
+++       * Sets the time in the given Calendar using the given milliseconds value; wrapper method to
+++!      * allow use of more efficient JDK1.4 method on JDK1.4 (was protected in earlier versions).
+++       *
+++       * @param       cal                             the Calendar
+++       * @param       millis                  the time value in milliseconds
+++       */
+++!     private static void setTimeInMillis(Calendar cal, long millis) {
+++  
+++  //#ifdef JDBC3
+++          // Use method directly
+++--- 363,374 ----
+++  
+++      /**
+++       * Sets the time in the given Calendar using the given milliseconds value; wrapper method to
+++!      * allow use of more efficient JDK1.4 method on JDK1.4 (was public in earlier versions).
+++       *
+++       * @param       cal                             the Calendar
+++       * @param       millis                  the time value in milliseconds
+++       */
+++!     public static void setTimeInMillis(Calendar cal, long millis) {
+++  
+++  //#ifdef JDBC3
+++          // Use method directly
+++***************
+++*** 408,414 ****
+++  
+++      /**
+++       * Gets the time from the given Calendar as a milliseconds value; wrapper method to
+++!      * allow use of more efficient JDK1.4 method on JDK1.4 (was protected in earlier versions).
+++       *
+++       * @param       cal                             the Calendar
+++       * @return      the time value in milliseconds
+++--- 408,414 ----
+++  
+++      /**
+++       * Gets the time from the given Calendar as a milliseconds value; wrapper method to
+++!      * allow use of more efficient JDK1.4 method on JDK1.4 (was public in earlier versions).
+++       *
+++       * @param       cal                             the Calendar
+++       * @return      the time value in milliseconds
+++***************
+++*** 519,525 ****
+++          }
+++      }
+++  
+++!     private static final char[][] dateTokens     = {
+++          {
+++              'R', 'R', 'R', 'R'
+++          }, {
+++--- 519,525 ----
+++          }
+++      }
+++  
+++!     public static final char[][] dateTokens     = {
+++          {
+++              'R', 'R', 'R', 'R'
+++          }, {
+++***************
+++*** 568,574 ****
+++              'P', '.', 'M', '.'
+++          }
+++      };
+++!     private static final String[] javaDateTokens = {
+++          "yyyy", "yyyy", "yyyy", "yy", "yy", "G", "G", "G", "G", "MMM",
+++          "MMMMM", "E", "w", "dd", "D", "k", "K", "K", "mm", "ss", "aaa", "aaa",
+++          "aaa", "aaa"
+++--- 568,574 ----
+++              'P', '.', 'M', '.'
+++          }
+++      };
+++!     public static final String[] javaDateTokens = {
+++          "yyyy", "yyyy", "yyyy", "yy", "yy", "G", "G", "G", "G", "MMM",
+++          "MMMMM", "E", "w", "dd", "D", "k", "K", "K", "mm", "ss", "aaa", "aaa",
+++          "aaa", "aaa"
+++***************
+++*** 621,630 ****
+++       */
+++      static class Tokenizer {
+++  
+++!         private int     last;
+++!         private int     offset;
+++!         private long    state;
+++!         private boolean consumed;
+++  
+++          public Tokenizer() {
+++              reset();
+++--- 621,630 ----
+++       */
+++      static class Tokenizer {
+++  
+++!         public int     last;
+++!         public int     offset;
+++!         public long    state;
+++!         public boolean consumed;
+++  
+++          public Tokenizer() {
+++              reset();
+++***************
+++*** 670,676 ****
+++           * @param bit
+++           * @return
+++           */
+++!         private boolean isZeroBit(int bit) {
+++              return (state & (1L << bit)) == 0;
+++          }
+++  
+++--- 670,676 ----
+++           * @param bit
+++           * @return
+++           */
+++!         public boolean isZeroBit(int bit) {
+++              return (state & (1L << bit)) == 0;
+++          }
+++  
+++***************
+++*** 678,684 ****
+++           * Sets the specified bit.
+++           * @param bit
+++           */
+++!         private void setBit(int bit) {
+++              state |= (1L << bit);
+++          }
+++  
+++--- 678,684 ----
+++           * Sets the specified bit.
+++           * @param bit
+++           */
+++!         public void setBit(int bit) {
+++              state |= (1L << bit);
+++          }
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/HsqlException.java hsqldb/src/org/hsqldb/HsqlException.java
+++*** hsqldb-old/src/org/hsqldb/HsqlException.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HsqlException.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 42,50 ****
+++   */
+++  public class HsqlException extends Exception {
+++  
+++!     private String message;
+++!     private String state;
+++!     private int    code;
+++  
+++      /**
+++       * @param message String
+++--- 42,50 ----
+++   */
+++  public class HsqlException extends Exception {
+++  
+++!     public String message;
+++!     public String state;
+++!     public int    code;
+++  
+++      /**
+++       * @param message String
+++diff -crN hsqldb-old/src/org/hsqldb/HsqlNameManager.java hsqldb/src/org/hsqldb/HsqlNameManager.java
+++*** hsqldb-old/src/org/hsqldb/HsqlNameManager.java	2007-07-23 20:30:48.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HsqlNameManager.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 61,74 ****
+++   */
+++  public class HsqlNameManager {
+++  
+++!     private static HsqlNameManager staticManager = new HsqlNameManager();
+++  
+++      static {
+++          staticManager.serialNumber = Integer.MIN_VALUE;
+++      }
+++  
+++!     private int serialNumber = 1;    // 0 is reserved in lookups
+++!     private int sysNumber    = 0;
+++  
+++      static HsqlName newHsqlSystemObjectName(String name) {
+++          return new HsqlName(staticManager, name);
+++--- 61,74 ----
+++   */
+++  public class HsqlNameManager {
+++  
+++!     public static HsqlNameManager staticManager = new HsqlNameManager();
+++  
+++      static {
+++          staticManager.serialNumber = Integer.MIN_VALUE;
+++      }
+++  
+++!     public int serialNumber = 1;    // 0 is reserved in lookups
+++!     public int sysNumber    = 0;
+++  
+++      static HsqlName newHsqlSystemObjectName(String name) {
+++          return new HsqlName(staticManager, name);
+++***************
+++*** 133,153 ****
+++          boolean           isNameQuoted;
+++          public String     statementName;
+++          public HsqlName   schema;
+++!         private final int hashCode;
+++  
+++!         private HsqlName(HsqlNameManager man) {
+++              manager  = man;
+++              hashCode = manager.serialNumber++;
+++          }
+++  
+++!         private HsqlName(HsqlNameManager man, String name, boolean isquoted) {
+++  
+++              this(man);
+++  
+++              rename(name, isquoted);
+++          }
+++  
+++!         private HsqlName(HsqlNameManager man, String prefix, String name,
+++                           boolean isquoted) {
+++  
+++              this(man);
+++--- 133,153 ----
+++          boolean           isNameQuoted;
+++          public String     statementName;
+++          public HsqlName   schema;
+++!         public final int hashCode;
+++  
+++!         public HsqlName(HsqlNameManager man) {
+++              manager  = man;
+++              hashCode = manager.serialNumber++;
+++          }
+++  
+++!         public HsqlName(HsqlNameManager man, String name, boolean isquoted) {
+++  
+++              this(man);
+++  
+++              rename(name, isquoted);
+++          }
+++  
+++!         public HsqlName(HsqlNameManager man, String prefix, String name,
+++                           boolean isquoted) {
+++  
+++              this(man);
+++***************
+++*** 155,161 ****
+++              rename(prefix, name, isquoted);
+++          }
+++  
+++!         private HsqlName(HsqlNameManager man, String name) {
+++  
+++              this(man);
+++  
+++--- 155,161 ----
+++              rename(prefix, name, isquoted);
+++          }
+++  
+++!         public HsqlName(HsqlNameManager man, String name) {
+++  
+++              this(man);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/HsqlServerFactory.java hsqldb/src/org/hsqldb/HsqlServerFactory.java
+++*** hsqldb-old/src/org/hsqldb/HsqlServerFactory.java	2007-06-11 12:12:28.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HsqlServerFactory.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 49,55 ****
+++   */
+++  public class HsqlServerFactory {
+++  
+++!     private HsqlServerFactory() {}
+++  
+++      public static HsqlSocketRequestHandler createHsqlServer(String dbFilePath,
+++              boolean debugMessages, boolean silentMode) throws SQLException {
+++--- 49,55 ----
+++   */
+++  public class HsqlServerFactory {
+++  
+++!     public HsqlServerFactory() {}
+++  
+++      public static HsqlSocketRequestHandler createHsqlServer(String dbFilePath,
+++              boolean debugMessages, boolean silentMode) throws SQLException {
+++diff -crN hsqldb-old/src/org/hsqldb/HsqlSocketFactory.java hsqldb/src/org/hsqldb/HsqlSocketFactory.java
+++*** hsqldb-old/src/org/hsqldb/HsqlSocketFactory.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HsqlSocketFactory.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 48,55 ****
+++  public class HsqlSocketFactory {
+++  
+++  // ----------------------------- static members ---------------------------------
+++!     private static HsqlSocketFactory plainImpl;
+++!     private static HsqlSocketFactory sslImpl;
+++  
+++  // ------------------------------ constructors ---------------------------------
+++  
+++--- 48,55 ----
+++  public class HsqlSocketFactory {
+++  
+++  // ----------------------------- static members ---------------------------------
+++!     public static HsqlSocketFactory plainImpl;
+++!     public static HsqlSocketFactory sslImpl;
+++  
+++  // ------------------------------ constructors ---------------------------------
+++  
+++***************
+++*** 57,63 ****
+++       * External construction disabled.  New factory instances are retreived
+++       * through the newHsqlSocketFactory method instead.
+++       */
+++!     protected HsqlSocketFactory() throws Exception {}
+++  
+++  // ------------------------- factory builder method ----------------------------
+++  
+++--- 57,63 ----
+++       * External construction disabled.  New factory instances are retreived
+++       * through the newHsqlSocketFactory method instead.
+++       */
+++!     public HsqlSocketFactory() throws Exception {}
+++  
+++  // ------------------------- factory builder method ----------------------------
+++  
+++***************
+++*** 133,139 ****
+++      }
+++  
+++  // ------------------------ static utility methods -----------------------------
+++!     private static HsqlSocketFactory getPlainImpl() throws Exception {
+++  
+++          synchronized (HsqlSocketFactory.class) {
+++              if (plainImpl == null) {
+++--- 133,139 ----
+++      }
+++  
+++  // ------------------------ static utility methods -----------------------------
+++!     public static HsqlSocketFactory getPlainImpl() throws Exception {
+++  
+++          synchronized (HsqlSocketFactory.class) {
+++              if (plainImpl == null) {
+++***************
+++*** 144,150 ****
+++          return plainImpl;
+++      }
+++  
+++!     private static HsqlSocketFactory getSSLImpl() throws Exception {
+++  
+++          synchronized (HsqlSocketFactory.class) {
+++              if (sslImpl == null) {
+++--- 144,150 ----
+++          return plainImpl;
+++      }
+++  
+++!     public static HsqlSocketFactory getSSLImpl() throws Exception {
+++  
+++          synchronized (HsqlSocketFactory.class) {
+++              if (sslImpl == null) {
+++***************
+++*** 170,176 ****
+++       * @throws Exception if a new secure socket factory cannot
+++       *      be constructed
+++       */
+++!     private static HsqlSocketFactory newFactory(String implClass)
+++      throws Exception {
+++  
+++          Class       clazz;
+++--- 170,176 ----
+++       * @throws Exception if a new secure socket factory cannot
+++       *      be constructed
+++       */
+++!     public static HsqlSocketFactory newFactory(String implClass)
+++      throws Exception {
+++  
+++          Class       clazz;
+++***************
+++*** 182,188 ****
+++          clazz    = Class.forName(implClass);
+++          ctorParm = new Class[0];
+++  
+++!         // protected constructor
+++          ctor    = clazz.getDeclaredConstructor(ctorParm);
+++          ctorArg = new Object[0];
+++  
+++--- 182,188 ----
+++          clazz    = Class.forName(implClass);
+++          ctorParm = new Class[0];
+++  
+++!         // public constructor
+++          ctor    = clazz.getDeclaredConstructor(ctorParm);
+++          ctorArg = new Object[0];
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/HsqlSocketFactorySecure.java hsqldb/src/org/hsqldb/HsqlSocketFactorySecure.java
+++*** hsqldb-old/src/org/hsqldb/HsqlSocketFactorySecure.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HsqlSocketFactorySecure.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 65,86 ****
+++  // --------------------------------- members -----------------------------------
+++  
+++      /** The underlying socket factory implementation. */
+++!     protected Object socketFactory;
+++  
+++      /** The underlying server socket factory implementation. */
+++!     protected Object serverSocketFactory;
+++  
+++      /**
+++       * Monitor object to guard against conncurrent modification
+++       * of the underlying socket factory implementation member.
+++       */
+++!     protected final Object socket_factory_mutex = new Object();
+++  
+++      /**
+++       * Monitor object to guard against concurrent modification of
+++       * the underlying server socket factory implementation member.
+++       */
+++!     protected final Object server_socket_factory_mutex = new Object();
+++  
+++  // ------------------------------ constructors ---------------------------------
+++  
+++--- 65,86 ----
+++  // --------------------------------- members -----------------------------------
+++  
+++      /** The underlying socket factory implementation. */
+++!     public Object socketFactory;
+++  
+++      /** The underlying server socket factory implementation. */
+++!     public Object serverSocketFactory;
+++  
+++      /**
+++       * Monitor object to guard against conncurrent modification
+++       * of the underlying socket factory implementation member.
+++       */
+++!     public final Object socket_factory_mutex = new Object();
+++  
+++      /**
+++       * Monitor object to guard against concurrent modification of
+++       * the underlying server socket factory implementation member.
+++       */
+++!     public final Object server_socket_factory_mutex = new Object();
+++  
+++  // ------------------------------ constructors ---------------------------------
+++  
+++***************
+++*** 88,94 ****
+++       * External construction disabled.  New factory instances are retreived
+++       * through the newHsqlSocketFactory method instead.
+++       */
+++!     protected HsqlSocketFactorySecure() throws Exception {
+++  
+++          super();
+++  
+++--- 88,94 ----
+++       * External construction disabled.  New factory instances are retreived
+++       * through the newHsqlSocketFactory method instead.
+++       */
+++!     public HsqlSocketFactorySecure() throws Exception {
+++  
+++          super();
+++  
+++***************
+++*** 174,180 ****
+++          return ss;
+++      }
+++  
+++!     private static void dump(String title, String[] as) {
+++  
+++          Trace.printSystemOut(title);
+++          Trace.printSystemOut("----------------------------");
+++--- 174,180 ----
+++          return ss;
+++      }
+++  
+++!     public static void dump(String title, String[] as) {
+++  
+++          Trace.printSystemOut(title);
+++          Trace.printSystemOut("----------------------------");
+++***************
+++*** 263,269 ****
+++       *      underlying factory
+++       * @return the underlying javax.net.ssl.SSLServerSocketFactory
+++       */
+++!     protected SSLServerSocketFactory getServerSocketFactoryImpl()
+++      throws Exception {
+++  
+++          Object factory;
+++--- 263,269 ----
+++       *      underlying factory
+++       * @return the underlying javax.net.ssl.SSLServerSocketFactory
+++       */
+++!     public SSLServerSocketFactory getServerSocketFactoryImpl()
+++      throws Exception {
+++  
+++          Object factory;
+++***************
+++*** 287,293 ****
+++       *      underlying factory
+++       * @return the underlying javax.net.ssl.SSLSocketFactory
+++       */
+++!     protected SSLSocketFactory getSocketFactoryImpl() throws Exception {
+++  
+++          Object factory;
+++  
+++--- 287,293 ----
+++       *      underlying factory
+++       * @return the underlying javax.net.ssl.SSLSocketFactory
+++       */
+++!     public SSLSocketFactory getSocketFactoryImpl() throws Exception {
+++  
+++          Object factory;
+++  
+++***************
+++*** 313,319 ****
+++       * @param session SSLSession used on the connection to host
+++       * @throws Exception if the certificate chain cannot be verified
+++       */
+++!     protected void verify(String host, SSLSession session) throws Exception {
+++  
+++          X509Certificate[] chain;
+++          X509Certificate   certificate;
+++--- 313,319 ----
+++       * @param session SSLSession used on the connection to host
+++       * @throws Exception if the certificate chain cannot be verified
+++       */
+++!     public void verify(String host, SSLSession session) throws Exception {
+++  
+++          X509Certificate[] chain;
+++          X509Certificate   certificate;
+++diff -crN hsqldb-old/src/org/hsqldb/HTTPClientConnection.java hsqldb/src/org/hsqldb/HTTPClientConnection.java
+++*** hsqldb-old/src/org/hsqldb/HTTPClientConnection.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/HTTPClientConnection.java	2007-11-04 00:13:48.000000000 +0100
+++***************
+++*** 53,59 ****
+++          super(host, port, path, database, isTLS, user, password);
+++      }
+++  
+++!     protected void initConnection(String host, int port,
+++                                    boolean isTLS) throws HsqlException {}
+++  
+++      public synchronized Result execute(Result r) throws HsqlException {
+++--- 53,59 ----
+++          super(host, port, path, database, isTLS, user, password);
+++      }
+++  
+++!     public void initConnection(String host, int port,
+++                                    boolean isTLS) throws HsqlException {}
+++  
+++      public synchronized Result execute(Result r) throws HsqlException {
+++***************
+++*** 67,73 ****
+++          return result;
+++      }
+++  
+++!     protected void write(Result r) throws IOException, HsqlException {
+++  
+++          rowOut.reset();
+++          r.write(rowOut);
+++--- 67,73 ----
+++          return result;
+++      }
+++  
+++!     public void write(Result r) throws IOException, HsqlException {
+++  
+++          rowOut.reset();
+++          r.write(rowOut);
+++***************
+++*** 84,90 ****
+++          dataOutput.flush();
+++      }
+++  
+++!     protected Result read() throws IOException, HsqlException {
+++  
+++          // fredt - for WebServer 4 lines should be skipped
+++          // for Servlet, number of lines depends on Servlet container
+++--- 84,90 ----
+++          dataOutput.flush();
+++      }
+++  
+++!     public Result read() throws IOException, HsqlException {
+++  
+++          // fredt - for WebServer 4 lines should be skipped
+++          // for Servlet, number of lines depends on Servlet container
+++diff -crN hsqldb-old/src/org/hsqldb/Index.java hsqldb/src/org/hsqldb/Index.java
+++*** hsqldb-old/src/org/hsqldb/Index.java	2006-08-06 00:19:32.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Index.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 98,116 ****
+++      static final int POINTER_INDEX = 2;
+++  
+++      // fields
+++!     private final HsqlName indexName;
+++      final boolean[]        colCheck;
+++!     private final int[]    colIndex;
+++!     private final int[]    colTypes;
+++      final int[]            pkCols;
+++      final int[]            pkTypes;
+++!     private final boolean  isUnique;    // DDL uniqueness
+++!     private final boolean  useRowId;
+++      final boolean          isConstraint;
+++      final boolean          isForward;
+++      final boolean          isTemp;
+++!     private Node           root;
+++!     private int            depth;
+++      final Collation        collation;
+++      static IndexRowIterator emptyIterator = new IndexRowIterator(null, null,
+++          null);
+++--- 98,116 ----
+++      static final int POINTER_INDEX = 2;
+++  
+++      // fields
+++!     public final HsqlName indexName;
+++      final boolean[]        colCheck;
+++!     public final int[]    colIndex;
+++!     public final int[]    colTypes;
+++      final int[]            pkCols;
+++      final int[]            pkTypes;
+++!     public final boolean  isUnique;    // DDL uniqueness
+++!     public final boolean  useRowId;
+++      final boolean          isConstraint;
+++      final boolean          isForward;
+++      final boolean          isTemp;
+++!     public Node           root;
+++!     public int            depth;
+++      final Collation        collation;
+++      static IndexRowIterator emptyIterator = new IndexRowIterator(null, null,
+++          null);
+++***************
+++*** 280,286 ****
+++                                : root.getKey();
+++      }
+++  
+++!     private Node getRoot(Session session) {
+++  
+++          if (isTemp && session != null) {
+++              return session.getIndexRoot(indexName, onCommitPreserve);
+++--- 280,286 ----
+++                                : root.getKey();
+++      }
+++  
+++!     public Node getRoot(Session session) {
+++  
+++          if (isTemp && session != null) {
+++              return session.getIndexRoot(indexName, onCommitPreserve);
+++***************
+++*** 344,350 ****
+++      /**
+++       * Balances part of the tree after an alteration to the index.
+++       */
+++!     private void balance(Session session, Node x,
+++                           boolean isleft) throws HsqlException {
+++  
+++          while (true) {
+++--- 344,350 ----
+++      /**
+++       * Balances part of the tree after an alteration to the index.
+++       */
+++!     public void balance(Session session, Node x,
+++                           boolean isleft) throws HsqlException {
+++  
+++          while (true) {
+++***************
+++*** 693,699 ****
+++       * @return matching node or null
+++       * @throws HsqlException
+++       */
+++!     private Node findNotNull(Session session, Object[] rowdata,
+++                               int[] rowColMap,
+++                               boolean first) throws HsqlException {
+++  
+++--- 693,699 ----
+++       * @return matching node or null
+++       * @throws HsqlException
+++       */
+++!     public Node findNotNull(Session session, Object[] rowdata,
+++                               int[] rowColMap,
+++                               boolean first) throws HsqlException {
+++  
+++***************
+++*** 1077,1083 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private Node child(Node x, boolean isleft) throws HsqlException {
+++          return isleft ? x.getLeft()
+++                        : x.getRight();
+++      }
+++--- 1077,1083 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public Node child(Node x, boolean isleft) throws HsqlException {
+++          return isleft ? x.getLeft()
+++                        : x.getRight();
+++      }
+++***************
+++*** 1090,1096 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void replace(Session session, Node x,
+++                           Node n) throws HsqlException {
+++  
+++          if (x.isRoot()) {
+++--- 1090,1096 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void replace(Session session, Node x,
+++                           Node n) throws HsqlException {
+++  
+++          if (x.isRoot()) {
+++***************
+++*** 1115,1121 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void set(Node x, boolean isleft, Node n) throws HsqlException {
+++  
+++          x = x.getUpdatedNode();
+++  
+++--- 1115,1121 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void set(Node x, boolean isleft, Node n) throws HsqlException {
+++  
+++          x = x.getUpdatedNode();
+++  
+++***************
+++*** 1141,1147 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private Node search(Session session, Row row) throws HsqlException {
+++  
+++          Object[] d = row.getData();
+++          Node     x = getRoot(session);
+++--- 1141,1147 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public Node search(Session session, Row row) throws HsqlException {
+++  
+++          Object[] d = row.getData();
+++          Node     x = getRoot(session);
+++***************
+++*** 1235,1241 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private int compareRowForInsert(Session session, Row newRow,
+++                                      Row existingRow) throws HsqlException {
+++  
+++          Object[] a       = newRow.getData();
+++--- 1235,1241 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public int compareRowForInsert(Session session, Row newRow,
+++                                      Row existingRow) throws HsqlException {
+++  
+++          Object[] a       = newRow.getData();
+++***************
+++*** 1317,1323 ****
+++          }
+++      }
+++  
+++!     private IndexRowIterator getIterator(Session session, Node x) {
+++  
+++          if (x == null) {
+++              return emptyIterator;
+++--- 1317,1323 ----
+++          }
+++      }
+++  
+++!     public IndexRowIterator getIterator(Session session, Node x) {
+++  
+++          if (x == null) {
+++              return emptyIterator;
+++***************
+++*** 1333,1345 ****
+++          Session                    session;
+++          Index                      index;
+++          Node                       nextnode;
+++!         protected IndexRowIterator last;
+++!         protected IndexRowIterator next;
+++  
+++          /**
+++           * When session == null, rows from all sessions are returned
+++           */
+++!         private IndexRowIterator(Session session, Index index, Node node) {
+++  
+++              if (index == null) {
+++                  return;
+++--- 1333,1345 ----
+++          Session                    session;
+++          Index                      index;
+++          Node                       nextnode;
+++!         public IndexRowIterator last;
+++!         public IndexRowIterator next;
+++  
+++          /**
+++           * When session == null, rows from all sessions are returned
+++           */
+++!         public IndexRowIterator(Session session, Index index, Node node) {
+++  
+++              if (index == null) {
+++                  return;
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcCallableStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcCallableStatement.java	2006-02-16 04:47:58.000000000 +0100
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 296,306 ****
+++  implements CallableStatement {
+++  
+++      /** parameter name => parameter index */
+++!     private IntValueHashMap parameterNameMap;
+++  
+++      /** parameter index => registered OUT type */
+++  
+++!     //    private IntKeyIntValueHashMap outRegistrationMap;
+++  
+++      /**
+++       * Constructs a new jdbcCallableStatement with the specified connection and
+++--- 296,306 ----
+++  implements CallableStatement {
+++  
+++      /** parameter name => parameter index */
+++!     public IntValueHashMap parameterNameMap;
+++  
+++      /** parameter index => registered OUT type */
+++  
+++!     //    public IntKeyIntValueHashMap outRegistrationMap;
+++  
+++      /**
+++       * Constructs a new jdbcCallableStatement with the specified connection and
+++***************
+++*** 385,391 ****
+++       * @param i the one-based column index to check
+++       * @throws SQLException if there is no such OUT or IN OUT column
+++       */
+++!     private void checkGetParameterIndex(int i) throws SQLException {
+++  
+++          checkClosed();
+++  
+++--- 385,391 ----
+++       * @param i the one-based column index to check
+++       * @throws SQLException if there is no such OUT or IN OUT column
+++       */
+++!     public void checkGetParameterIndex(int i) throws SQLException {
+++  
+++          checkClosed();
+++  
+++***************
+++*** 421,427 ****
+++       * @throws SQLException if not registered
+++       */
+++      /*
+++!     private void checkIsRegisteredParameterIndex(int parameterIndex)
+++      throws SQLException {
+++  
+++          int    type;
+++--- 421,427 ----
+++       * @throws SQLException if not registered
+++       */
+++      /*
+++!     public void checkIsRegisteredParameterIndex(int parameterIndex)
+++      throws SQLException {
+++  
+++          int    type;
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcColumnMetaData.java hsqldb/src/org/hsqldb/jdbc/jdbcColumnMetaData.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcColumnMetaData.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcColumnMetaData.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 126,132 ****
+++       *
+++       * @return a Sring representation of this object
+++       */
+++!     private String toStringImpl() throws Exception {
+++  
+++          StringBuffer sb;
+++          Field[]      fields;
+++--- 126,132 ----
+++       *
+++       * @return a Sring representation of this object
+++       */
+++!     public String toStringImpl() throws Exception {
+++  
+++          StringBuffer sb;
+++          Field[]      fields;
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcConnection.java hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcConnection.java	2007-07-30 11:26:06.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 422,428 ****
+++      boolean isInternal;
+++  
+++      /** Is this connection to a network server instance. */
+++!     protected boolean isNetConn;
+++  
+++      /**
+++       * Is this connection closed?
+++--- 422,428 ----
+++      boolean isInternal;
+++  
+++      /** Is this connection to a network server instance. */
+++!     public boolean isNetConn;
+++  
+++      /**
+++       * Is this connection closed?
+++***************
+++*** 430,439 ****
+++      boolean isClosed;
+++  
+++      /** The first warning in the chain. Null if there are no warnings. */
+++!     private SQLWarning rootWarning;
+++  
+++      /** Synchronizes concurrent modification of the warning chain */
+++!     private Object rootWarning_mutex = new Object();
+++  
+++      /**
+++       * The set of open Statement objects returned by this Connection from
+++--- 430,439 ----
+++      boolean isClosed;
+++  
+++      /** The first warning in the chain. Null if there are no warnings. */
+++!     public SQLWarning rootWarning;
+++  
+++      /** Synchronizes concurrent modification of the warning chain */
+++!     public Object rootWarning_mutex = new Object();
+++  
+++      /**
+++       * The set of open Statement objects returned by this Connection from
+++***************
+++*** 441,447 ****
+++       * used solely for closing the statements when this Connection is closed.
+++       */
+++      /*
+++!     private org.hsqldb.lib.HashSet statementSet =
+++          new org.hsqldb.lib.HashSet();
+++       */
+++  
+++--- 441,447 ----
+++       * used solely for closing the statements when this Connection is closed.
+++       */
+++      /*
+++!     public org.hsqldb.lib.HashSet statementSet =
+++          new org.hsqldb.lib.HashSet();
+++       */
+++  
+++***************
+++*** 2462,2468 ****
+++       *  The default implementation simply attempts to silently {@link
+++       *  #close() close()} this <code>Connection</code>
+++       */
+++!     protected void finalize() {
+++  
+++          try {
+++              close();
+++--- 2462,2468 ----
+++       *  The default implementation simply attempts to silently {@link
+++       *  #close() close()} this <code>Connection</code>
+++       */
+++!     public void finalize() {
+++  
+++          try {
+++              close();
+++***************
+++*** 2668,2674 ****
+++      /**
+++       * is called from within nativeSQL when the start of an JDBC escape sequence is encountered
+++       */
+++!     private int onStartEscapeSequence(String sql, StringBuffer sb,
+++                                        int i) throws SQLException {
+++  
+++          sb.setCharAt(i++, ' ');
+++--- 2668,2674 ----
+++      /**
+++       * is called from within nativeSQL when the start of an JDBC escape sequence is encountered
+++       */
+++!     public int onStartEscapeSequence(String sql, StringBuffer sb,
+++                                        int i) throws SQLException {
+++  
+++          sb.setCharAt(i++, ' ');
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	2006-10-25 14:36:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 282,300 ****
+++      static final Integer INT_COLUMNS_NO_NULLS = new Integer(columnNoNulls);
+++  
+++      // -----------------------------------------------------------------------
+++!     // private attributes
+++      // -----------------------------------------------------------------------
+++  
+++      /**
+++       * The connection this object uses to retrieve database instance-specific
+++       * metadata.
+++       */
+++!     private jdbcConnection connection;
+++  
+++      /**
+++       * Connection property for schema reporting.
+++       */
+++!     private boolean useSchemaDefault;
+++  
+++      /**
+++       * A CSV list representing the SQL IN list to use when generating
+++--- 282,300 ----
+++      static final Integer INT_COLUMNS_NO_NULLS = new Integer(columnNoNulls);
+++  
+++      // -----------------------------------------------------------------------
+++!     // public attributes
+++      // -----------------------------------------------------------------------
+++  
+++      /**
+++       * The connection this object uses to retrieve database instance-specific
+++       * metadata.
+++       */
+++!     public jdbcConnection connection;
+++  
+++      /**
+++       * Connection property for schema reporting.
+++       */
+++!     public boolean useSchemaDefault;
+++  
+++      /**
+++       * A CSV list representing the SQL IN list to use when generating
+++***************
+++*** 302,308 ****
+++       * <code>scope</code> argument is <code>bestRowSession</code>.
+++       * @since HSQLDB 1.7.2
+++       */
+++!     private static final String BRI_SESSION_SCOPE_IN_LIST = "("
+++          + bestRowSession + ")";
+++  
+++      /**
+++--- 302,308 ----
+++       * <code>scope</code> argument is <code>bestRowSession</code>.
+++       * @since HSQLDB 1.7.2
+++       */
+++!     public static final String BRI_SESSION_SCOPE_IN_LIST = "("
+++          + bestRowSession + ")";
+++  
+++      /**
+++***************
+++*** 311,317 ****
+++       * <code>scope</code> argument is <code>bestRowTemporary</code>.
+++       * @since HSQLDB 1.7.2
+++       */
+++!     private static final String BRI_TEMPORARY_SCOPE_IN_LIST = "("
+++          + bestRowTemporary + "," + bestRowTransaction + "," + bestRowSession
+++          + ")";
+++  
+++--- 311,317 ----
+++       * <code>scope</code> argument is <code>bestRowTemporary</code>.
+++       * @since HSQLDB 1.7.2
+++       */
+++!     public static final String BRI_TEMPORARY_SCOPE_IN_LIST = "("
+++          + bestRowTemporary + "," + bestRowTransaction + "," + bestRowSession
+++          + ")";
+++  
+++***************
+++*** 321,327 ****
+++       * <code>scope</code> argument is <code>bestRowTransaction</code>.
+++       * @since HSQLDB 1.7.2
+++       */
+++!     private static final String BRI_TRANSACTION_SCOPE_IN_LIST = "("
+++          + bestRowTransaction + "," + bestRowSession + ")";
+++  
+++      /**
+++--- 321,327 ----
+++       * <code>scope</code> argument is <code>bestRowTransaction</code>.
+++       * @since HSQLDB 1.7.2
+++       */
+++!     public static final String BRI_TRANSACTION_SCOPE_IN_LIST = "("
+++          + bestRowTransaction + "," + bestRowSession + ")";
+++  
+++      /**
+++***************
+++*** 332,338 ****
+++       *
+++       * @since HSQLDB 1.7.2
+++       */
+++!     private static final String selstar = "SELECT * FROM INFORMATION_SCHEMA.";
+++  
+++      /**
+++       * " WHERE 1=1 ". <p>
+++--- 332,338 ----
+++       *
+++       * @since HSQLDB 1.7.2
+++       */
+++!     public static final String selstar = "SELECT * FROM INFORMATION_SCHEMA.";
+++  
+++      /**
+++       * " WHERE 1=1 ". <p>
+++***************
+++*** 347,353 ****
+++       * end of this and Presto! Everything works :-) <p>
+++       * @since HSQLDB 1.7.2
+++       */
+++!     private static final String whereTrue = " WHERE 1=1";
+++  
+++      //----------------------------------------------------------------------
+++      // First, a variety of minor information about the target database.
+++--- 347,353 ----
+++       * end of this and Presto! Everything works :-) <p>
+++       * @since HSQLDB 1.7.2
+++       */
+++!     public static final String whereTrue = " WHERE 1=1";
+++  
+++      //----------------------------------------------------------------------
+++      // First, a variety of minor information about the target database.
+++***************
+++*** 5467,5473 ****
+++       *
+++       *      </UL>
+++       */
+++!     private static String and(String id, String op, Object val) {
+++  
+++          // The JDBC standard for pattern arguments seems to be:
+++          //
+++--- 5467,5473 ----
+++       *
+++       *      </UL>
+++       */
+++!     public static String and(String id, String op, Object val) {
+++  
+++          // The JDBC standard for pattern arguments seems to be:
+++          //
+++***************
+++*** 5543,5549 ****
+++       * @return the result of issuing the statement
+++       * @throws SQLException is a database error occurs
+++       */
+++!     private ResultSet execute(String sql) throws SQLException {
+++  
+++          // NOTE:
+++          // Need to create a jdbcStatement here so jdbcResultSet can return
+++--- 5543,5549 ----
+++       * @return the result of issuing the statement
+++       * @throws SQLException is a database error occurs
+++       */
+++!     public ResultSet execute(String sql) throws SQLException {
+++  
+++          // NOTE:
+++          // Need to create a jdbcStatement here so jdbcResultSet can return
+++***************
+++*** 5571,5577 ****
+++       *
+++       *  If the <em>where</em> clause is null, it is ommited.  <p>
+++       *
+++!      *  It is assumed that the table name is non-null, since this is a private
+++       *  method.  No check is performed. <p>
+++       *
+++       * @return the result of executing "SELECT * FROM " + table " " + where
+++--- 5571,5577 ----
+++       *
+++       *  If the <em>where</em> clause is null, it is ommited.  <p>
+++       *
+++!      *  It is assumed that the table name is non-null, since this is a public
+++       *  method.  No check is performed. <p>
+++       *
+++       * @return the result of executing "SELECT * FROM " + table " " + where
+++***************
+++*** 5579,5585 ****
+++       * @param where the where condition for the select
+++       * @throws SQLException if database error occurs
+++       */
+++!     private ResultSet executeSelect(String table,
+++                                      String where) throws SQLException {
+++  
+++          String select = selstar + table;
+++--- 5579,5585 ----
+++       * @param where the where condition for the select
+++       * @throws SQLException if database error occurs
+++       */
+++!     public ResultSet executeSelect(String table,
+++                                      String where) throws SQLException {
+++  
+++          String select = selstar + table;
+++***************
+++*** 5603,5609 ****
+++       *      "SELECT * FROM &lt;table&gt; WHERE 1=1"
+++       * @param t the name of the table
+++       */
+++!     private StringBuffer toQueryPrefix(String t) {
+++  
+++          StringBuffer sb = new StringBuffer(255);
+++  
+++--- 5603,5609 ----
+++       *      "SELECT * FROM &lt;table&gt; WHERE 1=1"
+++       * @param t the name of the table
+++       */
+++!     public StringBuffer toQueryPrefix(String t) {
+++  
+++          StringBuffer sb = new StringBuffer(255);
+++  
+++***************
+++*** 5619,5625 ****
+++       * @return true if the argument, s, is filter paramter value that
+++       *        requires a corresponding IS NULL predicate
+++       */
+++!     private static boolean wantsIsNull(String s) {
+++          return (s != null && s.length() == 0);
+++      }
+++  
+++--- 5619,5625 ----
+++       * @return true if the argument, s, is filter paramter value that
+++       *        requires a corresponding IS NULL predicate
+++       */
+++!     public static boolean wantsIsNull(String s) {
+++          return (s != null && s.length() == 0);
+++      }
+++  
+++***************
+++*** 5628,5634 ****
+++       * is present, any DatabaseMetaData call with an empty string as the
+++       * schema parameter will use the default schema (noramlly "PUBLIC").
+++       */
+++!     private String translateSchema(String schemaName) throws SQLException {
+++  
+++          if (useSchemaDefault && schemaName != null
+++                  && schemaName.length() == 0) {
+++--- 5628,5634 ----
+++       * is present, any DatabaseMetaData call with an empty string as the
+++       * schema parameter will use the default schema (noramlly "PUBLIC").
+++       */
+++!     public String translateSchema(String schemaName) throws SQLException {
+++  
+++          if (useSchemaDefault && schemaName != null
+++                  && schemaName.length() == 0) {
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcDataSource.java hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcDataSource.java	2005-12-22 13:42:28.000000000 +0100
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 97,123 ****
+++      /**
+++       * Login timeout
+++       */
+++!     private int loginTimeout = 0;
+++  
+++      /**
+++       * Log writer
+++       */
+++!     private transient PrintWriter logWriter;
+++  
+++      /**
+++       * Default password to use for connections
+++       */
+++!     private String password = "";
+++  
+++      /**
+++       * Default user to use for connections
+++       */
+++!     private String user = "";
+++  
+++      /**
+++       * Database location
+++       */
+++!     private String database = "";
+++  
+++      /**
+++       * Constructor
+++--- 97,123 ----
+++      /**
+++       * Login timeout
+++       */
+++!     public int loginTimeout = 0;
+++  
+++      /**
+++       * Log writer
+++       */
+++!     public transient PrintWriter logWriter;
+++  
+++      /**
+++       * Default password to use for connections
+++       */
+++!     public String password = "";
+++  
+++      /**
+++       * Default user to use for connections
+++       */
+++!     public String user = "";
+++  
+++      /**
+++       * Database location
+++       */
+++!     public String database = "";
+++  
+++      /**
+++       * Constructor
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcParameterMetaData.java hsqldb/src/org/hsqldb/jdbc/jdbcParameterMetaData.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcParameterMetaData.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcParameterMetaData.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 314,320 ****
+++       * @return a String representation of this object
+++       * @throws Exception if a reflection error occurs
+++       */
+++!     private String toStringImpl() throws Exception {
+++  
+++          StringBuffer sb;
+++          Method[]     methods;
+++--- 314,320 ----
+++       * @return a String representation of this object
+++       * @throws Exception if a reflection error occurs
+++       */
+++!     public String toStringImpl() throws Exception {
+++  
+++          StringBuffer sb;
+++          Method[]     methods;
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcPreparedStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcPreparedStatement.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcPreparedStatement.java	2006-09-24 17:37:58.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcPreparedStatement.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 204,247 ****
+++  implements PreparedStatement {
+++  
+++      /** The parameter values for the next non-batch execution. */
+++!     protected Object[] parameterValues;
+++  
+++      /** Flags for bound variables. */
+++!     protected boolean[] parameterSet;
+++  
+++      /** Flags for bound stream variables. */
+++!     protected boolean[] parameterStream;
+++  
+++      /** The SQL types of the parameters. */
+++!     protected int[] parameterTypes;
+++  
+++      /** The (IN, IN OUT, or OUT) modes of parameters */
+++!     protected int[] parameterModes;
+++  
+++      /** Lengths for streams. */
+++!     protected int[] streamLengths;
+++  
+++      /** Has a stream or CLOB / BLOB parameter value. */
+++!     protected boolean hasStreams;
+++  
+++      /**
+++       * Description of result set metadata. <p>
+++       */
+++!     protected Result rsmdDescriptor;
+++  
+++      /** Description of parameter metadata. */
+++!     protected Result pmdDescriptor;
+++  
+++      /** This object's one and one ResultSetMetaData object. */
+++!     protected jdbcResultSetMetaData rsmd;
+++  
+++  // NOTE:  pmd is declared as Object to avoid yet another #ifdef.
+++  
+++      /** This object's one and only ParameterMetaData object. */
+++!     protected Object pmd;
+++  
+++      /** The SQL character sequence that this object represents. */
+++!     protected String sql;
+++  
+++      /**
+++       * The id with which this object's corresponding
+++--- 204,247 ----
+++  implements PreparedStatement {
+++  
+++      /** The parameter values for the next non-batch execution. */
+++!     public Object[] parameterValues;
+++  
+++      /** Flags for bound variables. */
+++!     public boolean[] parameterSet;
+++  
+++      /** Flags for bound stream variables. */
+++!     public boolean[] parameterStream;
+++  
+++      /** The SQL types of the parameters. */
+++!     public int[] parameterTypes;
+++  
+++      /** The (IN, IN OUT, or OUT) modes of parameters */
+++!     public int[] parameterModes;
+++  
+++      /** Lengths for streams. */
+++!     public int[] streamLengths;
+++  
+++      /** Has a stream or CLOB / BLOB parameter value. */
+++!     public boolean hasStreams;
+++  
+++      /**
+++       * Description of result set metadata. <p>
+++       */
+++!     public Result rsmdDescriptor;
+++  
+++      /** Description of parameter metadata. */
+++!     public Result pmdDescriptor;
+++  
+++      /** This object's one and one ResultSetMetaData object. */
+++!     public jdbcResultSetMetaData rsmd;
+++  
+++  // NOTE:  pmd is declared as Object to avoid yet another #ifdef.
+++  
+++      /** This object's one and only ParameterMetaData object. */
+++!     public Object pmd;
+++  
+++      /** The SQL character sequence that this object represents. */
+++!     public String sql;
+++  
+++      /**
+++       * The id with which this object's corresponding
+++***************
+++*** 250,262 ****
+++       * {@link org.hsqldb.CompiledStatementManager CompiledStatementManager}
+++       * object.
+++       */
+++!     protected int statementID;
+++  
+++      /**
+++       * Whether this statement generates only a single row update count in
+++       * response to execution.
+++       */
+++!     protected boolean isRowCount;
+++  
+++  // fredt@users 20020215 - patch 517028 by peterhudson@users - method defined
+++  // fredt@users 20020215 - patch 517028 by peterhudson@users - method defined
+++--- 250,262 ----
+++       * {@link org.hsqldb.CompiledStatementManager CompiledStatementManager}
+++       * object.
+++       */
+++!     public int statementID;
+++  
+++      /**
+++       * Whether this statement generates only a single row update count in
+++       * response to execution.
+++       */
+++!     public boolean isRowCount;
+++  
+++  // fredt@users 20020215 - patch 517028 by peterhudson@users - method defined
+++  // fredt@users 20020215 - patch 517028 by peterhudson@users - method defined
+++***************
+++*** 1899,1905 ****
+++       *      something other than a single row update count.
+++       * @throws SQLException if the argument, yes, does not match
+++       */
+++!     protected void checkIsRowCount(boolean yes) throws SQLException {
+++  
+++          if (yes != isRowCount) {
+++              int msg = yes ? Trace.JDBC_STATEMENT_NOT_ROW_COUNT
+++--- 1899,1905 ----
+++       *      something other than a single row update count.
+++       * @throws SQLException if the argument, yes, does not match
+++       */
+++!     public void checkIsRowCount(boolean yes) throws SQLException {
+++  
+++          if (yes != isRowCount) {
+++              int msg = yes ? Trace.JDBC_STATEMENT_NOT_ROW_COUNT
+++***************
+++*** 1916,1922 ****
+++       * @param i The parameter index to check
+++       * @throws SQLException if the specified parameter index is invalid
+++       */
+++!     protected void checkSetParameterIndex(int i,
+++                                            boolean isStream)
+++                                            throws SQLException {
+++  
+++--- 1916,1922 ----
+++       * @param i The parameter index to check
+++       * @throws SQLException if the specified parameter index is invalid
+++       */
+++!     public void checkSetParameterIndex(int i,
+++                                            boolean isStream)
+++                                            throws SQLException {
+++  
+++***************
+++*** 1966,1978 ****
+++       * again for the next reuse. When set using other methods, the parameter
+++       * setting is retained for the next use.
+++       */
+++!     private void checkParametersSet() throws SQLException {
+++          ;
+++      }
+++  
+++  /*
+++      // do not check for compatibility with 1.8.0.x
+++!     private void checkParametersSet() throws SQLException {
+++  
+++          if (parameterStream == null) {
+++              for (int i = 0; i < parameterSet.length; i++) {
+++--- 1966,1978 ----
+++       * again for the next reuse. When set using other methods, the parameter
+++       * setting is retained for the next use.
+++       */
+++!     public void checkParametersSet() throws SQLException {
+++          ;
+++      }
+++  
+++  /*
+++      // do not check for compatibility with 1.8.0.x
+++!     public void checkParametersSet() throws SQLException {
+++  
+++          if (parameterStream == null) {
+++              for (int i = 0; i < parameterSet.length; i++) {
+++***************
+++*** 2003,2009 ****
+++       * @param o object
+++       * @throws SQLException if either argument is not acceptable.
+++       */
+++!     private void setParameter(int i, Object o) throws SQLException {
+++  
+++          checkSetParameterIndex(i, false);
+++  
+++--- 2003,2009 ----
+++       * @param o object
+++       * @throws SQLException if either argument is not acceptable.
+++       */
+++!     public void setParameter(int i, Object o) throws SQLException {
+++  
+++          checkSetParameterIndex(i, false);
+++  
+++***************
+++*** 2087,2093 ****
+++       * @param value object to set
+++       * @throws SQLException if either argument is not acceptable
+++       */
+++!     private void setIntParameter(int i, int value) throws SQLException {
+++  
+++          checkSetParameterIndex(i, false);
+++  
+++--- 2087,2093 ----
+++       * @param value object to set
+++       * @throws SQLException if either argument is not acceptable
+++       */
+++!     public void setIntParameter(int i, int value) throws SQLException {
+++  
+++          checkSetParameterIndex(i, false);
+++  
+++***************
+++*** 2116,2122 ****
+++       * @param value object to set
+++       * @throws SQLException if either argument is not acceptable
+++       */
+++!     private void setLongParameter(int i, long value) throws SQLException {
+++  
+++          checkSetParameterIndex(i, false);
+++  
+++--- 2116,2122 ----
+++       * @param value object to set
+++       * @throws SQLException if either argument is not acceptable
+++       */
+++!     public void setLongParameter(int i, long value) throws SQLException {
+++  
+++          checkSetParameterIndex(i, false);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcResultSet.java hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcResultSet.java	2006-12-21 11:41:24.000000000 +0100
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 412,442 ****
+++      /**
+++       * The current record containing the data for the row
+++       */
+++!     private Record nCurrent;
+++  
+++      /** The row upon which this ResultSet is currently positioned. */
+++!     private int iCurrentRow;
+++  
+++      /** When the result of updating the database, the number of updated rows. */
+++!     private int iUpdateCount;
+++  
+++      /** Is current row before the first row? */
+++!     private boolean bInit;    // false if before first row
+++  
+++      /** How many columns does this ResultSet have? */
+++      int iColumnCount;
+++  
+++      /** Did the last getXXX method encounter a null value? */
+++!     private boolean bWasNull;
+++  
+++      /** The ResultSetMetaData object for this ResultSet */
+++!     private ResultSetMetaData rsmd;
+++  
+++      /** Properties of this ResultSet's parent Connection. */
+++!     private HsqlProperties connProperties;
+++  
+++      /** is the connection via network */
+++!     private boolean isNetConn;
+++  
+++      /**
+++       * The Statement that generated this result. Null if the result is
+++--- 412,442 ----
+++      /**
+++       * The current record containing the data for the row
+++       */
+++!     public Record nCurrent;
+++  
+++      /** The row upon which this ResultSet is currently positioned. */
+++!     public int iCurrentRow;
+++  
+++      /** When the result of updating the database, the number of updated rows. */
+++!     public int iUpdateCount;
+++  
+++      /** Is current row before the first row? */
+++!     public boolean bInit;    // false if before first row
+++  
+++      /** How many columns does this ResultSet have? */
+++      int iColumnCount;
+++  
+++      /** Did the last getXXX method encounter a null value? */
+++!     public boolean bWasNull;
+++  
+++      /** The ResultSetMetaData object for this ResultSet */
+++!     public ResultSetMetaData rsmd;
+++  
+++      /** Properties of this ResultSet's parent Connection. */
+++!     public HsqlProperties connProperties;
+++  
+++      /** is the connection via network */
+++!     public boolean isNetConn;
+++  
+++      /**
+++       * The Statement that generated this result. Null if the result is
+++***************
+++*** 4862,4868 ****
+++       *
+++       * @throws  SQLException when no row data is available
+++       */
+++!     private void checkAvailable() throws SQLException {
+++  
+++          if (rResult == null ||!bInit || nCurrent == null) {
+++              throw Util.sqlException(Trace.NO_DATA_IS_AVAILABLE);
+++--- 4862,4868 ----
+++       *
+++       * @throws  SQLException when no row data is available
+++       */
+++!     public void checkAvailable() throws SQLException {
+++  
+++          if (rResult == null ||!bInit || nCurrent == null) {
+++              throw Util.sqlException(Trace.NO_DATA_IS_AVAILABLE);
+++***************
+++*** 4874,4880 ****
+++       *
+++       * @throws SQLException when this result set is closed
+++       */
+++!     private void checkClosed() throws SQLException {
+++  
+++          if (rResult == null
+++                  || (sqlStatement != null && sqlStatement.isClosed)) {
+++--- 4874,4880 ----
+++       *
+++       * @throws SQLException when this result set is closed
+++       */
+++!     public void checkClosed() throws SQLException {
+++  
+++          if (rResult == null
+++                  || (sqlStatement != null && sqlStatement.isClosed)) {
+++***************
+++*** 4901,4907 ****
+++       *
+++       * @param  o the Object to track
+++       */
+++!     private boolean checkNull(Object o) {
+++  
+++          if (o == null) {
+++              bWasNull = true;
+++--- 4901,4907 ----
+++       *
+++       * @param  o the Object to track
+++       */
+++!     public boolean checkNull(Object o) {
+++  
+++          if (o == null) {
+++              bWasNull = true;
+++***************
+++*** 4929,4935 ****
+++       * @throws SQLException when there is no data, the column index is
+++       *    invalid, or the conversion cannot be performed
+++       */
+++!     private Object getColumnInType(int columnIndex,
+++                                     int type) throws SQLException {
+++  
+++          checkAvailable();
+++--- 4929,4935 ----
+++       * @throws SQLException when there is no data, the column index is
+++       *    invalid, or the conversion cannot be performed
+++       */
+++!     public Object getColumnInType(int columnIndex,
+++                                     int type) throws SQLException {
+++  
+++          checkAvailable();
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java hsqldb/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java	2006-09-24 17:37:58.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 97,118 ****
+++       * An array of objects, each of which represents the reported attributes
+++       * for  a single column of this object's parent ResultSet.
+++       */
+++!     private jdbcColumnMetaData[] columnMetaData;
+++  
+++      /** The number of columns in this object's parent ResultSet. */
+++!     private int columnCount;
+++  
+++      /**
+++       * Whether to use the underlying column name or label when reporting
+++       * getColumnName().
+++       */
+++!     private boolean useColumnName;
+++  
+++      /**
+++       * If true, then timings for init() are printed
+++       * to the console.
+++       */
+++!     private static final boolean TRACE = false;
+++  
+++      /**
+++       * Constructs a new jdbcResultSetMetaData object from the specified
+++--- 97,118 ----
+++       * An array of objects, each of which represents the reported attributes
+++       * for  a single column of this object's parent ResultSet.
+++       */
+++!     public jdbcColumnMetaData[] columnMetaData;
+++  
+++      /** The number of columns in this object's parent ResultSet. */
+++!     public int columnCount;
+++  
+++      /**
+++       * Whether to use the underlying column name or label when reporting
+++       * getColumnName().
+++       */
+++!     public boolean useColumnName;
+++  
+++      /**
+++       * If true, then timings for init() are printed
+++       * to the console.
+++       */
+++!     public static final boolean TRACE = false;
+++  
+++      /**
+++       * Constructs a new jdbcResultSetMetaData object from the specified
+++***************
+++*** 1137,1143 ****
+++       * @throws SQLException when this object's parent ResultSet has
+++       *      no such column
+++       */
+++!     private void checkColumn(int column) throws SQLException {
+++  
+++          if (column < 1 || column > columnCount) {
+++              throw Util.sqlException(Trace.COLUMN_NOT_FOUND,
+++--- 1137,1143 ----
+++       * @throws SQLException when this object's parent ResultSet has
+++       *      no such column
+++       */
+++!     public void checkColumn(int column) throws SQLException {
+++  
+++          if (column < 1 || column > columnCount) {
+++              throw Util.sqlException(Trace.COLUMN_NOT_FOUND,
+++diff -crN hsqldb-old/src/org/hsqldb/jdbc/jdbcStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java
+++*** hsqldb-old/src/org/hsqldb/jdbc/jdbcStatement.java	2007-07-30 11:26:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 134,158 ****
+++      volatile boolean isClosed;
+++  
+++      /** Is escape processing enabled? */
+++!     private boolean isEscapeProcessing = true;
+++  
+++      /** The connection used to execute this statement. */
+++!     protected jdbcConnection connection;
+++  
+++      /** The maximum number of rows to generate when executing this statement. */
+++!     protected int maxRows;
+++  
+++      /** The result of executing this statement. */
+++!     protected Result resultIn;
+++  
+++      /** The result set type obtained by executing this statement. */
+++!     protected int rsType = jdbcResultSet.TYPE_FORWARD_ONLY;
+++  
+++      /** Used by this statement to communicate non-batched requests. */
+++!     protected Result resultOut = new Result(ResultConstants.SQLEXECDIRECT);
+++  
+++      /** Use by this statement to communicate batched execution requests */
+++!     protected Result batchResultOut = null;
+++  
+++      // boucherb@users
+++      // NOTE:
+++--- 134,158 ----
+++      volatile boolean isClosed;
+++  
+++      /** Is escape processing enabled? */
+++!     public boolean isEscapeProcessing = true;
+++  
+++      /** The connection used to execute this statement. */
+++!     public jdbcConnection connection;
+++  
+++      /** The maximum number of rows to generate when executing this statement. */
+++!     public int maxRows;
+++  
+++      /** The result of executing this statement. */
+++!     public Result resultIn;
+++  
+++      /** The result set type obtained by executing this statement. */
+++!     public int rsType = jdbcResultSet.TYPE_FORWARD_ONLY;
+++  
+++      /** Used by this statement to communicate non-batched requests. */
+++!     public Result resultOut = new Result(ResultConstants.SQLEXECDIRECT);
+++  
+++      /** Use by this statement to communicate batched execution requests */
+++!     public Result batchResultOut = null;
+++  
+++      // boucherb@users
+++      // NOTE:
+++***************
+++*** 1558,1564 ****
+++       * @param sql a character sequence representing the SQL to be executed
+++       * @throws SQLException when a database access error occurs
+++       */
+++!     private void fetchResult(String sql) throws SQLException {
+++  
+++          if (isEscapeProcessing) {
+++              sql = connection.nativeSQL(sql);
+++--- 1558,1564 ----
+++       * @param sql a character sequence representing the SQL to be executed
+++       * @throws SQLException when a database access error occurs
+++       */
+++!     public void fetchResult(String sql) throws SQLException {
+++  
+++          if (isEscapeProcessing) {
+++              sql = connection.nativeSQL(sql);
+++diff -crN hsqldb-old/src/org/hsqldb/lib/ArrayUtil.java hsqldb/src/org/hsqldb/lib/ArrayUtil.java
+++*** hsqldb-old/src/org/hsqldb/lib/ArrayUtil.java	2006-02-16 04:47:58.000000000 +0100
+++--- hsqldb/src/org/hsqldb/lib/ArrayUtil.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 51,57 ****
+++      public static final int        CLASS_CODE_OBJECT  = 'L';
+++      public static final int        CLASS_CODE_SHORT   = 'S';
+++      public static final int        CLASS_CODE_BOOLEAN = 'Z';
+++!     private static IntValueHashMap classCodeMap       = new IntValueHashMap();
+++  
+++      static {
+++          classCodeMap.put(byte.class, ArrayUtil.CLASS_CODE_BYTE);
+++--- 51,57 ----
+++      public static final int        CLASS_CODE_OBJECT  = 'L';
+++      public static final int        CLASS_CODE_SHORT   = 'S';
+++      public static final int        CLASS_CODE_BOOLEAN = 'Z';
+++!     public static IntValueHashMap classCodeMap       = new IntValueHashMap();
+++  
+++      static {
+++          classCodeMap.put(byte.class, ArrayUtil.CLASS_CODE_BYTE);
+++diff -crN hsqldb-old/src/org/hsqldb/lib/BaseList.java hsqldb/src/org/hsqldb/lib/BaseList.java
+++*** hsqldb-old/src/org/hsqldb/lib/BaseList.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/BaseList.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 42,48 ****
+++   */
+++  abstract class BaseList {
+++  
+++!     protected int elementCount;
+++  
+++      abstract Object get(int index);
+++  
+++--- 42,48 ----
+++   */
+++  abstract class BaseList {
+++  
+++!     public int elementCount;
+++  
+++      abstract Object get(int index);
+++  
+++***************
+++*** 135,141 ****
+++          return new BaseListIterator();
+++      }
+++  
+++!     private class BaseListIterator implements Iterator {
+++  
+++          int     counter = 0;
+++          boolean removed;
+++--- 135,141 ----
+++          return new BaseListIterator();
+++      }
+++  
+++!     public class BaseListIterator implements Iterator {
+++  
+++          int     counter = 0;
+++          boolean removed;
+++diff -crN hsqldb-old/src/org/hsqldb/lib/DoubleIntIndex.java hsqldb/src/org/hsqldb/lib/DoubleIntIndex.java
+++*** hsqldb-old/src/org/hsqldb/lib/DoubleIntIndex.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/DoubleIntIndex.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 52,68 ****
+++   */
+++  public class DoubleIntIndex implements IntLookup {
+++  
+++!     private int           count = 0;
+++!     private int           capacity;
+++!     private boolean       sorted       = true;
+++!     private boolean       sortOnValues = true;
+++!     private boolean       hasChanged;
+++!     private final boolean fixedSize;
+++!     private int[]         keys;
+++!     private int[]         values;
+++  
+++  //
+++!     private int targetSearchValue;
+++  
+++      public DoubleIntIndex(int capacity, boolean fixedSize) {
+++  
+++--- 52,68 ----
+++   */
+++  public class DoubleIntIndex implements IntLookup {
+++  
+++!     public int           count = 0;
+++!     public int           capacity;
+++!     public boolean       sorted       = true;
+++!     public boolean       sortOnValues = true;
+++!     public boolean       hasChanged;
+++!     public final boolean fixedSize;
+++!     public int[]         keys;
+++!     public int[]         values;
+++  
+++  //
+++!     public int targetSearchValue;
+++  
+++      public DoubleIntIndex(int capacity, boolean fixedSize) {
+++  
+++***************
+++*** 395,401 ****
+++       * or -1
+++       * @return index or -1 if not found
+++       */
+++!     private int binaryFirstSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++--- 395,401 ----
+++       * or -1
+++       * @return index or -1 if not found
+++       */
+++!     public int binaryFirstSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++***************
+++*** 425,431 ****
+++       * Returns the index of the lowest element > the given search target
+++       *     @return the index
+++       */
+++!     private int binaryGreaterSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++--- 425,431 ----
+++       * Returns the index of the lowest element > the given search target
+++       *     @return the index
+++       */
+++!     public int binaryGreaterSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++***************
+++*** 452,458 ****
+++       * or count
+++       *     @return the index
+++       */
+++!     private int binarySlotSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++--- 452,458 ----
+++       * or count
+++       *     @return the index
+++       */
+++!     public int binarySlotSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++***************
+++*** 478,484 ****
+++       * or count or -1 if target is found
+++       * @return the index
+++       */
+++!     private int binaryEmptySlotSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++--- 478,484 ----
+++       * or count or -1 if target is found
+++       * @return the index
+++       */
+++!     public int binaryEmptySlotSearch() {
+++  
+++          int low     = 0;
+++          int high    = count;
+++***************
+++*** 501,507 ****
+++          return low;
+++      }
+++  
+++!     private synchronized void fastQuickSort() {
+++  
+++          quickSort(0, count - 1);
+++          insertionSort(0, count - 1);
+++--- 501,507 ----
+++          return low;
+++      }
+++  
+++!     public synchronized void fastQuickSort() {
+++  
+++          quickSort(0, count - 1);
+++          insertionSort(0, count - 1);
+++***************
+++*** 509,515 ****
+++          sorted = true;
+++      }
+++  
+++!     private void quickSort(int l, int r) {
+++  
+++          int M = 4;
+++          int i;
+++--- 509,515 ----
+++          sorted = true;
+++      }
+++  
+++!     public void quickSort(int l, int r) {
+++  
+++          int M = 4;
+++          int i;
+++***************
+++*** 556,562 ****
+++          }
+++      }
+++  
+++!     private void insertionSort(int lo0, int hi0) {
+++  
+++          int i;
+++          int j;
+++--- 556,562 ----
+++          }
+++      }
+++  
+++!     public void insertionSort(int lo0, int hi0) {
+++  
+++          int i;
+++          int j;
+++***************
+++*** 574,580 ****
+++          }
+++      }
+++  
+++!     private void moveAndInsertRow(int i, int j) {
+++  
+++          int col1 = keys[i];
+++          int col2 = values[i];
+++--- 574,580 ----
+++          }
+++      }
+++  
+++!     public void moveAndInsertRow(int i, int j) {
+++  
+++          int col1 = keys[i];
+++          int col2 = values[i];
+++***************
+++*** 585,598 ****
+++          values[j] = col2;
+++      }
+++  
+++!     private void doubleCapacity() {
+++  
+++          keys     = (int[]) ArrayUtil.resizeArray(keys, capacity * 2);
+++          values   = (int[]) ArrayUtil.resizeArray(values, capacity * 2);
+++          capacity *= 2;
+++      }
+++  
+++!     private void swap(int i1, int i2) {
+++  
+++          int col1 = keys[i1];
+++          int col2 = values[i1];
+++--- 585,598 ----
+++          values[j] = col2;
+++      }
+++  
+++!     public void doubleCapacity() {
+++  
+++          keys     = (int[]) ArrayUtil.resizeArray(keys, capacity * 2);
+++          values   = (int[]) ArrayUtil.resizeArray(values, capacity * 2);
+++          capacity *= 2;
+++      }
+++  
+++!     public void swap(int i1, int i2) {
+++  
+++          int col1 = keys[i1];
+++          int col2 = values[i1];
+++***************
+++*** 603,609 ****
+++          values[i2] = col2;
+++      }
+++  
+++!     private void moveRows(int fromIndex, int toIndex, int rows) {
+++          System.arraycopy(keys, fromIndex, keys, toIndex, rows);
+++          System.arraycopy(values, fromIndex, values, toIndex, rows);
+++      }
+++--- 603,609 ----
+++          values[i2] = col2;
+++      }
+++  
+++!     public void moveRows(int fromIndex, int toIndex, int rows) {
+++          System.arraycopy(keys, fromIndex, keys, toIndex, rows);
+++          System.arraycopy(values, fromIndex, values, toIndex, rows);
+++      }
+++***************
+++*** 631,637 ****
+++       * @param i the index
+++       * @return -1, 0 or +1
+++       */
+++!     private int compare(int i) {
+++  
+++          if (sortOnValues) {
+++              if (targetSearchValue > values[i]) {
+++--- 631,637 ----
+++       * @param i the index
+++       * @return -1, 0 or +1
+++       */
+++!     public int compare(int i) {
+++  
+++          if (sortOnValues) {
+++              if (targetSearchValue > values[i]) {
+++***************
+++*** 668,674 ****
+++       * @param j the second index
+++       * @return true or false
+++       */
+++!     private boolean lessThan(int i, int j) {
+++  
+++          if (sortOnValues) {
+++              if (values[i] < values[j]) {
+++--- 668,674 ----
+++       * @param j the second index
+++       * @return true or false
+++       */
+++!     public boolean lessThan(int i, int j) {
+++  
+++          if (sortOnValues) {
+++              if (values[i] < values[j]) {
+++diff -crN hsqldb-old/src/org/hsqldb/lib/FileUtil.java hsqldb/src/org/hsqldb/lib/FileUtil.java
+++*** hsqldb-old/src/org/hsqldb/lib/FileUtil.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/FileUtil.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 52,58 ****
+++   */
+++  public class FileUtil implements FileAccess {
+++  
+++!     private static FileUtil fileUtil = new FileUtil();
+++  
+++      /** Creates a new instance of FileUtil */
+++      FileUtil() {}
+++--- 52,58 ----
+++   */
+++  public class FileUtil implements FileAccess {
+++  
+++!     public static FileUtil fileUtil = new FileUtil();
+++  
+++      /** Creates a new instance of FileUtil */
+++      FileUtil() {}
+++***************
+++*** 166,172 ****
+++       * If a file with oldname does not exist, no file will exist after the
+++       * operation.
+++       */
+++!     private void renameOverwrite(String oldname, String newname) {
+++  
+++          delete(newname);
+++  
+++--- 166,172 ----
+++       * If a file with oldname does not exist, no file will exist after the
+++       * operation.
+++       */
+++!     public void renameOverwrite(String oldname, String newname) {
+++  
+++          delete(newname);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HashMappedList.java hsqldb/src/org/hsqldb/lib/HashMappedList.java
+++*** hsqldb-old/src/org/hsqldb/lib/HashMappedList.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HashMappedList.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 182,188 ****
+++          return getLookup(key, key.hashCode());
+++      }
+++  
+++!     private void checkRange(int i) {
+++  
+++          if (i < 0 || i >= size()) {
+++              throw new IndexOutOfBoundsException();
+++--- 182,188 ----
+++          return getLookup(key, key.hashCode());
+++      }
+++  
+++!     public void checkRange(int i) {
+++  
+++          if (i < 0 || i >= size()) {
+++              throw new IndexOutOfBoundsException();
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlArrayHeap.java hsqldb/src/org/hsqldb/lib/HsqlArrayHeap.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlArrayHeap.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlArrayHeap.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 43,51 ****
+++  public class HsqlArrayHeap implements HsqlHeap {
+++  
+++  // --------------------------------- members -----------------------------------
+++!     protected ObjectComparator oc;
+++!     protected int              count;
+++!     protected Object[]         heap;
+++  
+++  // ------------------------------ constructors ---------------------------------
+++  
+++--- 43,51 ----
+++  public class HsqlArrayHeap implements HsqlHeap {
+++  
+++  // --------------------------------- members -----------------------------------
+++!     public ObjectComparator oc;
+++!     public int              count;
+++!     public Object[]         heap;
+++  
+++  // ------------------------------ constructors ---------------------------------
+++  
+++***************
+++*** 311,317 ****
+++  //        System.arraycopy(oldheap, 0, heap, 0, count);
+++  //    }
+++  // -------------------- internal implementation methods ------------------------
+++!     private void increaseCapacity() {
+++  
+++          Object[] oldheap;
+++  
+++--- 311,317 ----
+++  //        System.arraycopy(oldheap, 0, heap, 0, count);
+++  //    }
+++  // -------------------- internal implementation methods ------------------------
+++!     public void increaseCapacity() {
+++  
+++          Object[] oldheap;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlArrayList.java hsqldb/src/org/hsqldb/lib/HsqlArrayList.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlArrayList.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlArrayList.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 47,58 ****
+++  
+++  //fredt@users
+++  /*
+++!     private static Reporter reporter = new Reporter();
+++  
+++!     private static class Reporter {
+++  
+++!         private static int initCounter   = 0;
+++!         private static int updateCounter = 0;
+++  
+++          Reporter() {
+++  
+++--- 47,58 ----
+++  
+++  //fredt@users
+++  /*
+++!     public static Reporter reporter = new Reporter();
+++  
+++!     public static class Reporter {
+++  
+++!         public static int initCounter   = 0;
+++!         public static int updateCounter = 0;
+++  
+++          Reporter() {
+++  
+++***************
+++*** 61,67 ****
+++              } catch (SecurityException e) {}
+++          }
+++  
+++!         protected void finalize() {
+++  
+++              System.out.println("HsqlArrayList init count: " + initCounter);
+++              System.out.println("HsqlArrayList update count: "
+++--- 61,67 ----
+++              } catch (SecurityException e) {}
+++          }
+++  
+++!         public void finalize() {
+++  
+++              System.out.println("HsqlArrayList init count: " + initCounter);
+++              System.out.println("HsqlArrayList update count: "
+++***************
+++*** 69,78 ****
+++          }
+++      }
+++  */
+++!     private static final int   DEFAULT_INITIAL_CAPACITY = 10;
+++!     private static final float DEFAULT_RESIZE_FACTOR    = 2.0f;
+++!     private Object[]           elementData;
+++!     private boolean            minimizeOnClear;
+++  
+++      /** Creates a new instance of HsqlArrayList */
+++      public HsqlArrayList() {
+++--- 69,78 ----
+++          }
+++      }
+++  */
+++!     public static final int   DEFAULT_INITIAL_CAPACITY = 10;
+++!     public static final float DEFAULT_RESIZE_FACTOR    = 2.0f;
+++!     public Object[]           elementData;
+++!     public boolean            minimizeOnClear;
+++  
+++      /** Creates a new instance of HsqlArrayList */
+++      public HsqlArrayList() {
+++***************
+++*** 236,242 ****
+++          return elementCount;
+++      }
+++  
+++!     private void increaseCapacity() {
+++  
+++          int baseSize = elementData.length == 0 ? 1
+++                                                 : elementData.length;
+++--- 236,242 ----
+++          return elementCount;
+++      }
+++  
+++!     public void increaseCapacity() {
+++  
+++          int baseSize = elementData.length == 0 ? 1
+++                                                 : elementData.length;
+++***************
+++*** 259,265 ****
+++  
+++          Enumeration en = new Enumeration() {
+++  
+++!             private int pos = 0;
+++  
+++              public Object nextElement() {
+++  
+++--- 259,265 ----
+++  
+++          Enumeration en = new Enumeration() {
+++  
+++!             public int pos = 0;
+++  
+++              public Object nextElement() {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlByteArrayInputStream.java hsqldb/src/org/hsqldb/lib/HsqlByteArrayInputStream.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlByteArrayInputStream.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlByteArrayInputStream.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 47,56 ****
+++  public class HsqlByteArrayInputStream extends InputStream
+++  implements DataInput {
+++  
+++!     protected byte[] buf;
+++!     protected int    pos;
+++!     protected int    mark = 0;
+++!     protected int    count;
+++  
+++      public HsqlByteArrayInputStream(byte[] buf) {
+++  
+++--- 47,56 ----
+++  public class HsqlByteArrayInputStream extends InputStream
+++  implements DataInput {
+++  
+++!     public byte[] buf;
+++!     public int    pos;
+++!     public int    mark = 0;
+++!     public int    count;
+++  
+++      public HsqlByteArrayInputStream(byte[] buf) {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlByteArrayOutputStream.java hsqldb/src/org/hsqldb/lib/HsqlByteArrayOutputStream.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlByteArrayOutputStream.java	2006-06-15 13:20:28.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlByteArrayOutputStream.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 48,55 ****
+++  public class HsqlByteArrayOutputStream extends java.io.OutputStream
+++  implements DataOutput {
+++  
+++!     protected byte[] buf;
+++!     protected int    count;
+++  
+++      public HsqlByteArrayOutputStream() {
+++          this(128);
+++--- 48,55 ----
+++  public class HsqlByteArrayOutputStream extends java.io.OutputStream
+++  implements DataOutput {
+++  
+++!     public byte[] buf;
+++!     public int    count;
+++  
+++      public HsqlByteArrayOutputStream() {
+++          this(128);
+++***************
+++*** 251,257 ****
+++          return this.buf;
+++      }
+++  
+++!     protected void ensureRoom(int extra) {
+++  
+++          int newcount = count + extra;
+++          int newsize  = buf.length;
+++--- 251,257 ----
+++          return this.buf;
+++      }
+++  
+++!     public void ensureRoom(int extra) {
+++  
+++          int newcount = count + extra;
+++          int newsize  = buf.length;
+++***************
+++*** 269,275 ****
+++          }
+++      }
+++  
+++!     protected void reset(int newSize) {
+++  
+++          count = 0;
+++  
+++--- 269,275 ----
+++          }
+++      }
+++  
+++!     public void reset(int newSize) {
+++  
+++          count = 0;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlDeque.java hsqldb/src/org/hsqldb/lib/HsqlDeque.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlDeque.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlDeque.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 47,59 ****
+++   */
+++  public class HsqlDeque extends BaseList implements HsqlList {
+++  
+++!     private Object[] list;
+++!     private int      firstindex = 0;    // index of first list element
+++!     private int      endindex   = 0;    // index of last list element + 1
+++  
+++      // can grow to fill list
+++      // if elementCount == 0 then firstindex == endindex
+++!     private static final int DEFAULT_INITIAL_CAPACITY = 10;
+++  
+++      public HsqlDeque() {
+++          list = new Object[DEFAULT_INITIAL_CAPACITY];
+++--- 47,59 ----
+++   */
+++  public class HsqlDeque extends BaseList implements HsqlList {
+++  
+++!     public Object[] list;
+++!     public int      firstindex = 0;    // index of first list element
+++!     public int      endindex   = 0;    // index of last list element + 1
+++  
+++      // can grow to fill list
+++      // if elementCount == 0 then firstindex == endindex
+++!     public static final int DEFAULT_INITIAL_CAPACITY = 10;
+++  
+++      public HsqlDeque() {
+++          list = new Object[DEFAULT_INITIAL_CAPACITY];
+++***************
+++*** 242,248 ****
+++          return value;
+++      }
+++  
+++!     private int getInternalIndex(int i) throws IndexOutOfBoundsException {
+++  
+++          if (i < 0 || i >= elementCount) {
+++              throw new IndexOutOfBoundsException();
+++--- 242,248 ----
+++          return value;
+++      }
+++  
+++!     public int getInternalIndex(int i) throws IndexOutOfBoundsException {
+++  
+++          if (i < 0 || i >= elementCount) {
+++              throw new IndexOutOfBoundsException();
+++***************
+++*** 257,263 ****
+++          return index;
+++      }
+++  
+++!     private void resetCapacity() {
+++  
+++          if (elementCount < list.length) {
+++              return;
+++--- 257,263 ----
+++          return index;
+++      }
+++  
+++!     public void resetCapacity() {
+++  
+++          if (elementCount < list.length) {
+++              return;
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlLinkedList.java hsqldb/src/org/hsqldb/lib/HsqlLinkedList.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlLinkedList.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlLinkedList.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 46,55 ****
+++       * A reference to the head of the list.  It is a dummy head (that is, the
+++       * Node for index 0 is actually first.next).
+++       */
+++!     private Node first;
+++  
+++      /** A reference to the tail of the list */
+++!     private Node last;
+++  
+++      /**
+++       * Creates a new instance of HsqlLinkedList.
+++--- 46,55 ----
+++       * A reference to the head of the list.  It is a dummy head (that is, the
+++       * Node for index 0 is actually first.next).
+++       */
+++!     public Node first;
+++  
+++      /** A reference to the tail of the list */
+++!     public Node last;
+++  
+++      /**
+++       * Creates a new instance of HsqlLinkedList.
+++***************
+++*** 197,203 ****
+++       * index within the list (0 &lt;= <code>index</code> &lt;
+++       * <code>size</code>).
+++       */
+++!     protected final Node getInternal(int index) {
+++  
+++          //Check preconditions for the index variable
+++          if (index >= size()) {
+++--- 197,203 ----
+++       * index within the list (0 &lt;= <code>index</code> &lt;
+++       * <code>size</code>).
+++       */
+++!     public final Node getInternal(int index) {
+++  
+++          //Check preconditions for the index variable
+++          if (index >= size()) {
+++***************
+++*** 232,238 ****
+++       * jcpeck@users
+++       * @version 05/24/2002
+++       */
+++!     private static class Node {
+++  
+++          public Node   next;
+++          public Object data;
+++--- 232,238 ----
+++       * jcpeck@users
+++       * @version 05/24/2002
+++       */
+++!     public static class Node {
+++  
+++          public Node   next;
+++          public Object data;
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlTaskQueue.java hsqldb/src/org/hsqldb/lib/HsqlTaskQueue.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlTaskQueue.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlTaskQueue.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 43,52 ****
+++  public class HsqlTaskQueue {
+++  
+++      /** The thread used to process commands */
+++!     protected Thread taskRunnerThread;
+++  
+++      /** Special queue element to signal termination */
+++!     protected static final Runnable SHUTDOWNTASK = new Runnable() {
+++          public void run() {}
+++      };
+++  
+++--- 43,52 ----
+++  public class HsqlTaskQueue {
+++  
+++      /** The thread used to process commands */
+++!     public Thread taskRunnerThread;
+++  
+++      /** Special queue element to signal termination */
+++!     public static final Runnable SHUTDOWNTASK = new Runnable() {
+++          public void run() {}
+++      };
+++  
+++***************
+++*** 55,73 ****
+++       *
+++       * Once set true, stays true forever
+++       */
+++!     protected volatile boolean isShutdown;
+++  
+++      public synchronized Thread getTaskRunnerThread() {
+++          return taskRunnerThread;
+++      }
+++  
+++!     protected synchronized void clearThread() {
+++          taskRunnerThread = null;
+++      }
+++  
+++!     protected final HsqlDeque queue = new HsqlDeque();
+++  
+++!     protected class TaskRunner implements Runnable {
+++  
+++          public void run() {
+++  
+++--- 55,73 ----
+++       *
+++       * Once set true, stays true forever
+++       */
+++!     public volatile boolean isShutdown;
+++  
+++      public synchronized Thread getTaskRunnerThread() {
+++          return taskRunnerThread;
+++      }
+++  
+++!     public synchronized void clearThread() {
+++          taskRunnerThread = null;
+++      }
+++  
+++!     public final HsqlDeque queue = new HsqlDeque();
+++  
+++!     public class TaskRunner implements Runnable {
+++  
+++          public void run() {
+++  
+++***************
+++*** 101,107 ****
+++          }
+++      }
+++  
+++!     protected final TaskRunner taskRunner = new TaskRunner();
+++  
+++      public HsqlTaskQueue() {}
+++  
+++--- 101,107 ----
+++          }
+++      }
+++  
+++!     public final TaskRunner taskRunner = new TaskRunner();
+++  
+++      public HsqlTaskQueue() {}
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlThreadFactory.java hsqldb/src/org/hsqldb/lib/HsqlThreadFactory.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlThreadFactory.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlThreadFactory.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 47,53 ****
+++       * The factory implementation.  Typically, this will be the
+++       * HsqlThreadFactory object itself.
+++       */
+++!     protected ThreadFactory factory;
+++  
+++      /**
+++       * Constructs a new HsqlThreadFactory that uses itself as the factory
+++--- 47,53 ----
+++       * The factory implementation.  Typically, this will be the
+++       * HsqlThreadFactory object itself.
+++       */
+++!     public ThreadFactory factory;
+++  
+++      /**
+++       * Constructs a new HsqlThreadFactory that uses itself as the factory
+++diff -crN hsqldb-old/src/org/hsqldb/lib/HsqlTimer.java hsqldb/src/org/hsqldb/lib/HsqlTimer.java
+++*** hsqldb-old/src/org/hsqldb/lib/HsqlTimer.java	2007-10-24 08:58:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/HsqlTimer.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 55,78 ****
+++  public final class HsqlTimer implements ObjectComparator, ThreadFactory {
+++  
+++      /** The priority queue for the scheduled tasks. */
+++!     protected final TaskQueue taskQueue = new TaskQueue(16,
+++          (ObjectComparator) this);
+++  
+++      /** The inner runnable that executes tasks in the background thread. */
+++!     protected final TaskRunner taskRunner = new TaskRunner();
+++  
+++      /** The background thread. */
+++!     protected Thread taskRunnerThread;
+++  
+++      /** The factory that procduces the background threads. */
+++!     protected final ThreadFactory threadFactory;
+++  
+++      /**
+++       * Whether this timer should disallow all further processing.
+++       *
+++       * Once set true, stays true forever.
+++       */
+++!     protected volatile boolean isShutdown;
+++  
+++      /**
+++       * Constructs a new HsqlTimer using the default thread factory
+++--- 55,78 ----
+++  public final class HsqlTimer implements ObjectComparator, ThreadFactory {
+++  
+++      /** The priority queue for the scheduled tasks. */
+++!     public final TaskQueue taskQueue = new TaskQueue(16,
+++          (ObjectComparator) this);
+++  
+++      /** The inner runnable that executes tasks in the background thread. */
+++!     public final TaskRunner taskRunner = new TaskRunner();
+++  
+++      /** The background thread. */
+++!     public Thread taskRunnerThread;
+++  
+++      /** The factory that procduces the background threads. */
+++!     public final ThreadFactory threadFactory;
+++  
+++      /**
+++       * Whether this timer should disallow all further processing.
+++       *
+++       * Once set true, stays true forever.
+++       */
+++!     public volatile boolean isShutdown;
+++  
+++      /**
+++       * Constructs a new HsqlTimer using the default thread factory
+++***************
+++*** 460,466 ****
+++       * @param relative if true, use fixed rate else use fixed delay scheduling
+++       * @return an opaque reference to the internal task
+++       */
+++!     protected Task addTask(final long first, final Runnable runnable,
+++                             final long period, boolean relative) {
+++  
+++          if (this.isShutdown) {
+++--- 460,466 ----
+++       * @param relative if true, use fixed rate else use fixed delay scheduling
+++       * @return an opaque reference to the internal task
+++       */
+++!     public Task addTask(final long first, final Runnable runnable,
+++                             final long period, boolean relative) {
+++  
+++          if (this.isShutdown) {
+++***************
+++*** 479,485 ****
+++      }
+++  
+++      /** Sets the background thread to null. */
+++!     protected synchronized void clearThread() {
+++          taskRunnerThread = null;
+++      }
+++  
+++--- 479,485 ----
+++      }
+++  
+++      /** Sets the background thread to null. */
+++!     public synchronized void clearThread() {
+++          taskRunnerThread = null;
+++      }
+++  
+++***************
+++*** 489,495 ****
+++       *
+++       * @return the next task to execute, or null
+++       */
+++!     protected Task nextTask() {
+++  
+++          try {
+++              while (!this.isShutdown || Thread.interrupted()) {
+++--- 489,495 ----
+++       *
+++       * @return the next task to execute, or null
+++       */
+++!     public Task nextTask() {
+++  
+++          try {
+++              while (!this.isShutdown || Thread.interrupted()) {
+++***************
+++*** 572,578 ****
+++       *
+++       * @return System.currentTimeMillis()
+++       */
+++!     private static long now() {
+++  
+++          nowCount++;
+++  
+++--- 572,578 ----
+++       *
+++       * @return System.currentTimeMillis()
+++       */
+++!     public static long now() {
+++  
+++          nowCount++;
+++  
+++***************
+++*** 587,593 ****
+++       * but using an inner class protects the public run method
+++       * from potential abuse.
+++       */
+++!     protected class TaskRunner implements Runnable {
+++  
+++          /**
+++           * Runs the next available task in the background thread. <p>
+++--- 587,593 ----
+++       * but using an inner class protects the public run method
+++       * from potential abuse.
+++       */
+++!     public class TaskRunner implements Runnable {
+++  
+++          /**
+++           * Runs the next available task in the background thread. <p>
+++***************
+++*** 649,655 ****
+++       * for execution by the enclosing HsqlTimer's TaskRunner in a
+++       * background thread.
+++       */
+++!     protected class Task {
+++  
+++          /** What to run. */
+++          Runnable runnable;
+++--- 649,655 ----
+++       * for execution by the enclosing HsqlTimer's TaskRunner in a
+++       * background thread.
+++       */
+++!     public class Task {
+++  
+++          /** What to run. */
+++          Runnable runnable;
+++***************
+++*** 671,677 ****
+++          boolean cancelled = false;
+++  
+++          /** Serializes concurrent access to the cancelled field. */
+++!         private Object cancel_mutex = new Object();
+++  
+++          /**
+++           * Scheduling policy flag. <p>
+++--- 671,677 ----
+++          boolean cancelled = false;
+++  
+++          /** Serializes concurrent access to the cancelled field. */
+++!         public Object cancel_mutex = new Object();
+++  
+++          /**
+++           * Scheduling policy flag. <p>
+++***************
+++*** 801,807 ****
+++       * Provides extensions to facilitate and simplify implementing
+++       * timer functionality.
+++       */
+++!     protected static class TaskQueue extends HsqlArrayHeap {
+++  
+++          /**
+++           * Constructs a new TaskQueue with the specified initial capacity and
+++--- 801,807 ----
+++       * Provides extensions to facilitate and simplify implementing
+++       * timer functionality.
+++       */
+++!     public static class TaskQueue extends HsqlArrayHeap {
+++  
+++          /**
+++           * Constructs a new TaskQueue with the specified initial capacity and
+++diff -crN hsqldb-old/src/org/hsqldb/lib/IntKeyIntValueHashMap.java hsqldb/src/org/hsqldb/lib/IntKeyIntValueHashMap.java
+++*** hsqldb-old/src/org/hsqldb/lib/IntKeyIntValueHashMap.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/IntKeyIntValueHashMap.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 42,49 ****
+++   */
+++  public class IntKeyIntValueHashMap extends BaseHashMap {
+++  
+++!     private Set        keySet;
+++!     private Collection values;
+++  
+++      public IntKeyIntValueHashMap() {
+++          this(16, 0.75f);
+++--- 42,49 ----
+++   */
+++  public class IntKeyIntValueHashMap extends BaseHashMap {
+++  
+++!     public Set        keySet;
+++!     public Collection values;
+++  
+++      public IntKeyIntValueHashMap() {
+++          this(16, 0.75f);
+++diff -crN hsqldb-old/src/org/hsqldb/lib/LongKeyIntValueHashMap.java hsqldb/src/org/hsqldb/lib/LongKeyIntValueHashMap.java
+++*** hsqldb-old/src/org/hsqldb/lib/LongKeyIntValueHashMap.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/LongKeyIntValueHashMap.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 42,49 ****
+++   */
+++  public class LongKeyIntValueHashMap extends BaseHashMap {
+++  
+++!     private Set        keySet;
+++!     private Collection values;
+++  
+++      public LongKeyIntValueHashMap() {
+++          this(16, 0.75f);
+++--- 42,49 ----
+++   */
+++  public class LongKeyIntValueHashMap extends BaseHashMap {
+++  
+++!     public Set        keySet;
+++!     public Collection values;
+++  
+++      public LongKeyIntValueHashMap() {
+++          this(16, 0.75f);
+++diff -crN hsqldb-old/src/org/hsqldb/lib/MD5.java hsqldb/src/org/hsqldb/lib/MD5.java
+++*** hsqldb-old/src/org/hsqldb/lib/MD5.java	2004-01-12 21:30:40.000000000 +0100
+++--- hsqldb/src/org/hsqldb/lib/MD5.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 83,89 ****
+++      /**
+++       * The jce MD5 message digest generator.
+++       */
+++!     private static MessageDigest md5;
+++  
+++      /**
+++       * Retrieves a hexidecimal character sequence representing the MD5
+++--- 83,89 ----
+++      /**
+++       * The jce MD5 message digest generator.
+++       */
+++!     public static MessageDigest md5;
+++  
+++      /**
+++       * Retrieves a hexidecimal character sequence representing the MD5
+++diff -crN hsqldb-old/src/org/hsqldb/lib/SimpleLog.java hsqldb/src/org/hsqldb/lib/SimpleLog.java
+++*** hsqldb-old/src/org/hsqldb/lib/SimpleLog.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/SimpleLog.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 54,61 ****
+++      public static int   LOG_NONE   = 0;
+++      public static int   LOG_ERROR  = 1;
+++      public static int   LOG_NORMAL = 2;
+++!     private PrintWriter writer;
+++!     private int         level;
+++  
+++      public SimpleLog(String path, int level, boolean useFile) {
+++  
+++--- 54,61 ----
+++      public static int   LOG_NONE   = 0;
+++      public static int   LOG_ERROR  = 1;
+++      public static int   LOG_NORMAL = 2;
+++!     public PrintWriter writer;
+++!     public int         level;
+++  
+++      public SimpleLog(String path, int level, boolean useFile) {
+++  
+++***************
+++*** 72,78 ****
+++          }
+++      }
+++  
+++!     private void makeLog(File file) {
+++  
+++          try {
+++              FileUtil.getDefaultInstance().makeParentDirectories(file);
+++--- 72,78 ----
+++          }
+++      }
+++  
+++!     public void makeLog(File file) {
+++  
+++          try {
+++              FileUtil.getDefaultInstance().makeParentDirectories(file);
+++diff -crN hsqldb-old/src/org/hsqldb/lib/Sort.java hsqldb/src/org/hsqldb/lib/Sort.java
+++*** hsqldb-old/src/org/hsqldb/lib/Sort.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/Sort.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 146,152 ****
+++      /**
+++       * Swaps the a'th and b'th elements of the specified Row array.
+++       */
+++!     private static void swap(Object[] w, int a, int b) {
+++  
+++          Object t = w[a];
+++  
+++--- 146,152 ----
+++      /**
+++       * Swaps the a'th and b'th elements of the specified Row array.
+++       */
+++!     public static void swap(Object[] w, int a, int b) {
+++  
+++          Object t = w[a];
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/lib/StopWatch.java hsqldb/src/org/hsqldb/lib/StopWatch.java
+++*** hsqldb-old/src/org/hsqldb/lib/StopWatch.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/StopWatch.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 51,64 ****
+++       * from stopped to running state, as reported
+++       * by System.currentTimeMillis().
+++       */
+++!     private long startTime;
+++!     private long lastStart;
+++  
+++      /**
+++       * The accumulated running time of this object since
+++       * it was last zeroed.
+++       */
+++!     private long total;
+++  
+++      /** Flags if this object is started or stopped. */
+++      boolean running = false;
+++--- 51,64 ----
+++       * from stopped to running state, as reported
+++       * by System.currentTimeMillis().
+++       */
+++!     public long startTime;
+++!     public long lastStart;
+++  
+++      /**
+++       * The accumulated running time of this object since
+++       * it was last zeroed.
+++       */
+++!     public long total;
+++  
+++      /** Flags if this object is started or stopped. */
+++      boolean running = false;
+++diff -crN hsqldb-old/src/org/hsqldb/lib/StringConverter.java hsqldb/src/org/hsqldb/lib/StringConverter.java
+++*** hsqldb-old/src/org/hsqldb/lib/StringConverter.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/StringConverter.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 87,98 ****
+++  // fredt@users 20020328 - patch 1.7.0 by fredt - error trapping
+++  public class StringConverter {
+++  
+++!     private static final byte[] HEXBYTES = {
+++          (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4',
+++          (byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9',
+++          (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f'
+++      };
+++!     private static final String HEXINDEX = "0123456789abcdef0123456789ABCDEF";
+++  
+++      /**
+++       * Converts a String into a byte array by using a big-endian two byte
+++--- 87,98 ----
+++  // fredt@users 20020328 - patch 1.7.0 by fredt - error trapping
+++  public class StringConverter {
+++  
+++!     public static final byte[] HEXBYTES = {
+++          (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4',
+++          (byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9',
+++          (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f'
+++      };
+++!     public static final String HEXINDEX = "0123456789abcdef0123456789ABCDEF";
+++  
+++      /**
+++       * Converts a String into a byte array by using a big-endian two byte
+++diff -crN hsqldb-old/src/org/hsqldb/lib/StringInputStream.java hsqldb/src/org/hsqldb/lib/StringInputStream.java
+++*** hsqldb-old/src/org/hsqldb/lib/StringInputStream.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/StringInputStream.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 42,51 ****
+++   */
+++  public class StringInputStream extends InputStream {
+++  
+++!     protected int    strOffset  = 0;
+++!     protected int    charOffset = 0;
+++!     protected int    available;
+++!     protected String str;
+++  
+++      public StringInputStream(String s) {
+++          str       = s;
+++--- 42,51 ----
+++   */
+++  public class StringInputStream extends InputStream {
+++  
+++!     public int    strOffset  = 0;
+++!     public int    charOffset = 0;
+++!     public int    available;
+++!     public String str;
+++  
+++      public StringInputStream(String s) {
+++          str       = s;
+++diff -crN hsqldb-old/src/org/hsqldb/lib/WrapperIterator.java hsqldb/src/org/hsqldb/lib/WrapperIterator.java
+++*** hsqldb-old/src/org/hsqldb/lib/WrapperIterator.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/WrapperIterator.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 46,62 ****
+++   */
+++  public class WrapperIterator implements Iterator {
+++  
+++!     private static final Object[] emptyelements = new Object[0];
+++!     private Object[]              elements;
+++!     private int                   i;
+++  
+++      // chained iterators
+++!     private boolean  chained;
+++!     private Iterator it1;
+++!     private Iterator it2;
+++  
+++      /** return only not null elements */
+++!     private boolean notNull;
+++  
+++      /**
+++       * Constructor for an empty iterator. <p>
+++--- 46,62 ----
+++   */
+++  public class WrapperIterator implements Iterator {
+++  
+++!     public static final Object[] emptyelements = new Object[0];
+++!     public Object[]              elements;
+++!     public int                   i;
+++  
+++      // chained iterators
+++!     public boolean  chained;
+++!     public Iterator it1;
+++!     public Iterator it2;
+++  
+++      /** return only not null elements */
+++!     public boolean notNull;
+++  
+++      /**
+++       * Constructor for an empty iterator. <p>
+++diff -crN hsqldb-old/src/org/hsqldb/lib/ZipUnzipFile.java hsqldb/src/org/hsqldb/lib/ZipUnzipFile.java
+++*** hsqldb-old/src/org/hsqldb/lib/ZipUnzipFile.java	2006-07-15 22:58:02.000000000 +0200
+++--- hsqldb/src/org/hsqldb/lib/ZipUnzipFile.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 86,92 ****
+++   */
+++  public class ZipUnzipFile {
+++  
+++!     private static final int COPY_BLOCK_SIZE = 1 << 16;
+++  
+++      public static void compressFile(String infilename, String outfilename,
+++                                      FileAccess storage) throws IOException {
+++--- 86,92 ----
+++   */
+++  public class ZipUnzipFile {
+++  
+++!     public static final int COPY_BLOCK_SIZE = 1 << 16;
+++  
+++      public static void compressFile(String infilename, String outfilename,
+++                                      FileAccess storage) throws IOException {
+++diff -crN hsqldb-old/src/org/hsqldb/Library.java hsqldb/src/org/hsqldb/Library.java
+++*** hsqldb-old/src/org/hsqldb/Library.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Library.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 291,297 ****
+++          }
+++      };
+++  
+++!     private Library() {}
+++  
+++      static HashMap getAliasMap() {
+++  
+++--- 291,297 ----
+++          }
+++      };
+++  
+++!     public Library() {}
+++  
+++      static HashMap getAliasMap() {
+++  
+++***************
+++*** 305,318 ****
+++          return h;
+++      }
+++  
+++!     private static void register(HashMap h, String[][] s) {
+++  
+++          for (int i = 0; i < s.length; i++) {
+++              h.put(s[i][0], s[i][1]);
+++          }
+++      }
+++  
+++!     private static final Random rRandom = new Random();
+++  
+++      // NUMERIC FUNCTIONS
+++  // fredt@users 20020220 - patch 489184 by xclayl@users - thread safety
+++--- 305,318 ----
+++          return h;
+++      }
+++  
+++!     public static void register(HashMap h, String[][] s) {
+++  
+++          for (int i = 0; i < s.length; i++) {
+++              h.put(s[i][0], s[i][1]);
+++          }
+++      }
+++  
+++!     public static final Random rRandom = new Random();
+++  
+++      // NUMERIC FUNCTIONS
+++  // fredt@users 20020220 - patch 489184 by xclayl@users - thread safety
+++***************
+++*** 361,367 ****
+++      }
+++  
+++      // this magic number works for 100000000000000; but not for 0.1 and 0.01
+++!     private static final double LOG10_FACTOR = 0.43429448190325183;
+++  
+++      /**
+++       * Returns the base 10 logarithm of the given <code>double</code> value.
+++--- 361,367 ----
+++      }
+++  
+++      // this magic number works for 100000000000000; but not for 0.1 and 0.01
+++!     public static final double LOG10_FACTOR = 0.43429448190325183;
+++  
+++      /**
+++       * Returns the base 10 logarithm of the given <code>double</code> value.
+++***************
+++*** 1656,1662 ****
+++       *           from this value to return the number of date-parts
+++       *           between the two arguments.
+++       */
+++!     private static long getElapsed(int field, java.util.Date d1,
+++                                     java.util.Date d2) {
+++  
+++          // can we do this very simply?
+++--- 1656,1662 ----
+++       *           from this value to return the number of date-parts
+++       *           between the two arguments.
+++       */
+++!     public static long getElapsed(int field, java.util.Date d1,
+++                                     java.util.Date d2) {
+++  
+++          // can we do this very simply?
+++***************
+++*** 1947,1953 ****
+++  /** @todo  see bitxor and datediff numbering */
+++  
+++      //
+++!     private static final IntValueHashMap functionMap =
+++          new IntValueHashMap(67);
+++      static final Double piValue = new Double(Library.pi());
+++  
+++--- 1947,1953 ----
+++  /** @todo  see bitxor and datediff numbering */
+++  
+++      //
+++!     public static final IntValueHashMap functionMap =
+++          new IntValueHashMap(67);
+++      static final Double piValue = new Double(Library.pi());
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/Like.java hsqldb/src/org/hsqldb/Like.java
+++*** hsqldb-old/src/org/hsqldb/Like.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Like.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 82,93 ****
+++  // fredt@users 20031006 - patch 1.7.2 - reuse Like objects for all rows
+++  class Like {
+++  
+++!     private char[]   cLike;
+++!     private int[]    wildCardType;
+++!     private int      iLen;
+++!     private boolean  isIgnoreCase;
+++!     private int      iFirstWildCard;
+++!     private boolean  isNull;
+++      Character        escapeChar;
+++      boolean          hasCollation;
+++      boolean          optimised;
+++--- 82,93 ----
+++  // fredt@users 20031006 - patch 1.7.2 - reuse Like objects for all rows
+++  class Like {
+++  
+++!     public char[]   cLike;
+++!     public int[]    wildCardType;
+++!     public int      iLen;
+++!     public boolean  isIgnoreCase;
+++!     public int      iFirstWildCard;
+++!     public boolean  isNull;
+++      Character        escapeChar;
+++      boolean          hasCollation;
+++      boolean          optimised;
+++***************
+++*** 121,127 ****
+++          normalize(session, s);
+++      }
+++  
+++!     private String getStartsWith() {
+++  
+++          if (iLen == 0) {
+++              return "";
+++--- 121,127 ----
+++          normalize(session, s);
+++      }
+++  
+++!     public String getStartsWith() {
+++  
+++          if (iLen == 0) {
+++              return "";
+++***************
+++*** 174,180 ****
+++       *
+++       * @return
+++       */
+++!     private boolean compareAt(String s, int i, int j, int jLen) {
+++  
+++          for (; i < iLen; i++) {
+++              switch (wildCardType[i]) {
+++--- 174,180 ----
+++       *
+++       * @return
+++       */
+++!     public boolean compareAt(String s, int i, int j, int jLen) {
+++  
+++          for (; i < iLen; i++) {
+++              switch (wildCardType[i]) {
+++***************
+++*** 223,229 ****
+++       * @param pattern
+++       * @param b
+++       */
+++!     private void normalize(Session session, String pattern) {
+++  
+++          isNull = pattern == null;
+++  
+++--- 223,229 ----
+++       * @param pattern
+++       * @param b
+++       */
+++!     public void normalize(Session session, String pattern) {
+++  
+++          isNull = pattern == null;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/MemoryNode.java hsqldb/src/org/hsqldb/MemoryNode.java
+++*** hsqldb-old/src/org/hsqldb/MemoryNode.java	2005-10-23 21:25:10.000000000 +0200
+++--- hsqldb/src/org/hsqldb/MemoryNode.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 79,85 ****
+++   */
+++  class MemoryNode extends BaseMemoryNode {
+++  
+++!     protected Row rData;
+++  
+++      /**
+++       *  A MemoreyNode is permenently linked with the row it refers to.
+++--- 79,85 ----
+++   */
+++  class MemoryNode extends BaseMemoryNode {
+++  
+++!     public Row rData;
+++  
+++      /**
+++       *  A MemoreyNode is permenently linked with the row it refers to.
+++diff -crN hsqldb-old/src/org/hsqldb/NumberSequence.java hsqldb/src/org/hsqldb/NumberSequence.java
+++*** hsqldb-old/src/org/hsqldb/NumberSequence.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/NumberSequence.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 45,59 ****
+++      HsqlName name;
+++  
+++      // original start value - used in CREATE and ALTER commands
+++!     private long startValue;
+++  
+++      // present value
+++!     private long currValue;
+++  
+++      // last value
+++!     private long lastValue;
+++!     private long increment;
+++!     private int  dataType;
+++  
+++      /**
+++       * constructor with initial value and increment;
+++--- 45,59 ----
+++      HsqlName name;
+++  
+++      // original start value - used in CREATE and ALTER commands
+++!     public long startValue;
+++  
+++      // present value
+++!     public long currValue;
+++  
+++      // last value
+++!     public long lastValue;
+++!     public long increment;
+++!     public int  dataType;
+++  
+++      /**
+++       * constructor with initial value and increment;
+++diff -crN hsqldb-old/src/org/hsqldb/Parser.java hsqldb/src/org/hsqldb/Parser.java
+++*** hsqldb-old/src/org/hsqldb/Parser.java	2007-10-11 11:32:16.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Parser.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 125,145 ****
+++   */
+++  class Parser {
+++  
+++!     private Database  database;
+++!     private Tokenizer tokenizer;
+++!     private Session   session;
+++!     private String    sSchema;
+++!     private String    sTable;
+++!     private String    sToken;
+++!     private boolean   wasQuoted;
+++!     private Object    oData;
+++!     private int       iType;
+++!     private int       iToken;
+++!     private boolean   compilingView;
+++  
+++      //
+++!     private int           subQueryLevel;
+++!     private HsqlArrayList subQueryList = new HsqlArrayList();
+++  
+++      /**
+++       *  Constructs a new Parser object with the given context.
+++--- 125,145 ----
+++   */
+++  class Parser {
+++  
+++!     public Database  database;
+++!     public Tokenizer tokenizer;
+++!     public Session   session;
+++!     public String    sSchema;
+++!     public String    sTable;
+++!     public String    sToken;
+++!     public boolean   wasQuoted;
+++!     public Object    oData;
+++!     public int       iType;
+++!     public int       iToken;
+++!     public boolean   compilingView;
+++  
+++      //
+++!     public int           subQueryLevel;
+++!     public HsqlArrayList subQueryList = new HsqlArrayList();
+++  
+++      /**
+++       *  Constructs a new Parser object with the given context.
+++***************
+++*** 778,784 ****
+++  // in other RDBMS's
+++  // "SELECT LIMIT n 0" discards the first n rows and returns the remaining rows
+++  // fredt@users 20020225 - patch 456679 by hiep256 - TOP keyword
+++!     private void parseLimit(String token, Select select,
+++                              boolean isEnd) throws HsqlException {
+++  
+++          if (select.limitCondition != null) {
+++--- 778,784 ----
+++  // in other RDBMS's
+++  // "SELECT LIMIT n 0" discards the first n rows and returns the remaining rows
+++  // fredt@users 20020225 - patch 456679 by hiep256 - TOP keyword
+++!     public void parseLimit(String token, Select select,
+++                              boolean isEnd) throws HsqlException {
+++  
+++          if (select.limitCondition != null) {
+++***************
+++*** 857,863 ****
+++          throw Trace.error(Trace.WRONG_DATA_TYPE, messageid);
+++      }
+++  
+++!     private void parseOrderBy(Select select,
+++                                HsqlArrayList vcolumn) throws HsqlException {
+++  
+++          String token;
+++--- 857,863 ----
+++          throw Trace.error(Trace.WRONG_DATA_TYPE, messageid);
+++      }
+++  
+++!     public void parseOrderBy(Select select,
+++                                HsqlArrayList vcolumn) throws HsqlException {
+++  
+++          String token;
+++***************
+++*** 887,893 ****
+++          select.iOrderLen = len;
+++      }
+++  
+++!     private void resolveSelectTableFilter(Select select,
+++                                            HsqlArrayList vcolumn,
+++                                            HsqlArrayList vfilter)
+++                                            throws HsqlException {
+++--- 887,893 ----
+++          select.iOrderLen = len;
+++      }
+++  
+++!     public void resolveSelectTableFilter(Select select,
+++                                            HsqlArrayList vcolumn,
+++                                            HsqlArrayList vfilter)
+++                                            throws HsqlException {
+++***************
+++*** 1023,1029 ****
+++       * @throws HsqlException if an ambiguous reference to an alias or
+++       *      non-integer column index is encountered
+++       */
+++!     private static Expression resolveOrderByExpression(Expression e,
+++              Select select, HsqlArrayList vcolumn) throws HsqlException {
+++  
+++          int     visiblecols = select.iResultLen;
+++--- 1023,1029 ----
+++       * @throws HsqlException if an ambiguous reference to an alias or
+++       *      non-integer column index is encountered
+++       */
+++!     public static Expression resolveOrderByExpression(Expression e,
+++              Select select, HsqlArrayList vcolumn) throws HsqlException {
+++  
+++          int     visiblecols = select.iResultLen;
+++***************
+++*** 1067,1073 ****
+++          return e;
+++      }
+++  
+++!     private static Expression resolveOrderByColumnIndex(Expression e,
+++              HsqlArrayList vcolumn, int visiblecols) throws HsqlException {
+++  
+++          // order by 1,2,3
+++--- 1067,1073 ----
+++          return e;
+++      }
+++  
+++!     public static Expression resolveOrderByColumnIndex(Expression e,
+++              HsqlArrayList vcolumn, int visiblecols) throws HsqlException {
+++  
+++          // order by 1,2,3
+++***************
+++*** 1086,1092 ****
+++          throw Trace.error(Trace.INVALID_ORDER_BY);
+++      }
+++  
+++!     private TableFilter parseSimpleTableFilter(int type) throws HsqlException {
+++  
+++          String alias  = null;
+++          String token  = tokenizer.getName();
+++--- 1086,1092 ----
+++          throw Trace.error(Trace.INVALID_ORDER_BY);
+++      }
+++  
+++!     public TableFilter parseSimpleTableFilter(int type) throws HsqlException {
+++  
+++          String alias  = null;
+++          String token  = tokenizer.getName();
+++***************
+++*** 1117,1123 ****
+++       * @return a newly constructed TableFilter object
+++       * @throws  HsqlException if a parsing error occurs
+++       */
+++!     private TableFilter parseTableFilter(boolean outerjoin)
+++      throws HsqlException {
+++  
+++          Table          t          = null;
+++--- 1117,1123 ----
+++       * @return a newly constructed TableFilter object
+++       * @throws  HsqlException if a parsing error occurs
+++       */
+++!     public TableFilter parseTableFilter(boolean outerjoin)
+++      throws HsqlException {
+++  
+++          Table          t          = null;
+++***************
+++*** 1200,1206 ****
+++       * @param  e2
+++       * @return
+++       */
+++!     private static Expression addCondition(Expression e1, Expression e2) {
+++  
+++          if (e1 == null) {
+++              return e2;
+++--- 1200,1206 ----
+++       * @param  e2
+++       * @return
+++       */
+++!     public static Expression addCondition(Expression e1, Expression e2) {
+++  
+++          if (e1 == null) {
+++              return e2;
+++***************
+++*** 1224,1230 ****
+++       *      in the join
+++       * @return a new Expression object; the conjunction of e1 and e2
+++       */
+++!     private static Expression addJoinCondition(Expression e1, Expression e2,
+++              TableFilter tf, boolean outer) throws HsqlException {
+++  
+++          if (!e2.setForJoin(tf, outer)) {
+++--- 1224,1230 ----
+++       *      in the join
+++       * @return a new Expression object; the conjunction of e1 and e2
+++       */
+++!     public static Expression addJoinCondition(Expression e1, Expression e2,
+++              TableFilter tf, boolean outer) throws HsqlException {
+++  
+++          if (!e2.setForJoin(tf, outer)) {
+++***************
+++*** 1251,1257 ****
+++          return r;
+++      }
+++  
+++!     private Expression readAggregate() throws HsqlException {
+++  
+++          boolean distinct = false;
+++          boolean all      = false;
+++--- 1251,1257 ----
+++          return r;
+++      }
+++  
+++!     public Expression readAggregate() throws HsqlException {
+++  
+++          boolean distinct = false;
+++          boolean all      = false;
+++***************
+++*** 1296,1302 ****
+++       * @return a disjuntion, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     private Expression readOr() throws HsqlException {
+++  
+++          Expression r = readAnd();
+++  
+++--- 1296,1302 ----
+++       * @return a disjuntion, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     public Expression readOr() throws HsqlException {
+++  
+++          Expression r = readAnd();
+++  
+++***************
+++*** 1318,1324 ****
+++       * @return a conjunction, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     private Expression readAnd() throws HsqlException {
+++  
+++          Expression r = readCondition();
+++  
+++--- 1318,1324 ----
+++       * @return a conjunction, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     public Expression readAnd() throws HsqlException {
+++  
+++          Expression r = readCondition();
+++  
+++***************
+++*** 1340,1346 ****
+++       * @return a predicate, possibly composite
+++       * @throws  HsqlException
+++       */
+++!     private Expression readCondition() throws HsqlException {
+++  
+++          switch (iToken) {
+++  
+++--- 1340,1346 ----
+++       * @return a predicate, possibly composite
+++       * @throws  HsqlException
+++       */
+++!     public Expression readCondition() throws HsqlException {
+++  
+++          switch (iToken) {
+++  
+++***************
+++*** 1457,1463 ****
+++          }
+++      }
+++  
+++!     private Expression parseLikePredicate(Expression a) throws HsqlException {
+++  
+++          read();
+++  
+++--- 1457,1463 ----
+++          }
+++      }
+++  
+++!     public Expression parseLikePredicate(Expression a) throws HsqlException {
+++  
+++          read();
+++  
+++***************
+++*** 1494,1500 ****
+++          return a;
+++      }
+++  
+++!     private Expression parseBetweenPredicate(Expression a)
+++      throws HsqlException {
+++  
+++          read();
+++--- 1494,1500 ----
+++          return a;
+++      }
+++  
+++!     public Expression parseBetweenPredicate(Expression a)
+++      throws HsqlException {
+++  
+++          read();
+++***************
+++*** 1520,1526 ****
+++          return new Expression(Expression.AND, l, h);
+++      }
+++  
+++!     private Expression parseInPredicate(Expression a) throws HsqlException {
+++  
+++          int type = iToken;
+++  
+++--- 1520,1526 ----
+++          return new Expression(Expression.AND, l, h);
+++      }
+++  
+++!     public Expression parseInPredicate(Expression a) throws HsqlException {
+++  
+++          int type = iToken;
+++  
+++***************
+++*** 1578,1584 ****
+++          return new Expression(type, a, b);
+++      }
+++  
+++!     private Expression parseAllAnyPredicate() throws HsqlException {
+++  
+++          int type = iToken;
+++  
+++--- 1578,1584 ----
+++          return new Expression(type, a, b);
+++      }
+++  
+++!     public Expression parseAllAnyPredicate() throws HsqlException {
+++  
+++          int type = iToken;
+++  
+++***************
+++*** 1618,1624 ****
+++       * @param  type
+++       * @throws  HsqlException
+++       */
+++!     private void readThis(int type) throws HsqlException {
+++          Trace.check(iToken == type, Trace.UNEXPECTED_TOKEN);
+++          read();
+++      }
+++--- 1618,1624 ----
+++       * @param  type
+++       * @throws  HsqlException
+++       */
+++!     public void readThis(int type) throws HsqlException {
+++          Trace.check(iToken == type, Trace.UNEXPECTED_TOKEN);
+++          read();
+++      }
+++***************
+++*** 1629,1635 ****
+++       * @return a concatenation, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     private Expression readConcat() throws HsqlException {
+++  
+++          Expression r = readSum();
+++  
+++--- 1629,1635 ----
+++       * @return a concatenation, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     public Expression readConcat() throws HsqlException {
+++  
+++          Expression r = readSum();
+++  
+++***************
+++*** 1666,1672 ****
+++       * @return  a summation, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     private Expression readSum() throws HsqlException {
+++  
+++          Expression r = readFactor();
+++  
+++--- 1666,1672 ----
+++       * @return  a summation, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     public Expression readSum() throws HsqlException {
+++  
+++          Expression r = readFactor();
+++  
+++***************
+++*** 1697,1703 ****
+++       * @return  a product, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     private Expression readFactor() throws HsqlException {
+++  
+++          Expression r = readTerm();
+++  
+++--- 1697,1703 ----
+++       * @return  a product, possibly degenerate
+++       * @throws  HsqlException
+++       */
+++!     public Expression readFactor() throws HsqlException {
+++  
+++          Expression r = readTerm();
+++  
+++***************
+++*** 1719,1725 ****
+++       * @return  a term, possibly composite
+++       * @throws  HsqlException
+++       */
+++!     private Expression readTerm() throws HsqlException {
+++  
+++          Expression r = null;
+++  
+++--- 1719,1725 ----
+++       * @return  a term, possibly composite
+++       * @throws  HsqlException
+++       */
+++!     public Expression readTerm() throws HsqlException {
+++  
+++          Expression r = null;
+++  
+++***************
+++*** 1895,1901 ****
+++      /**
+++       * Reads part of a CASE .. WHEN  expression
+++       */
+++!     private Expression parseCaseWhen(Expression r) throws HsqlException {
+++  
+++          readThis(Expression.WHEN);
+++  
+++--- 1895,1901 ----
+++      /**
+++       * Reads part of a CASE .. WHEN  expression
+++       */
+++!     public Expression parseCaseWhen(Expression r) throws HsqlException {
+++  
+++          readThis(Expression.WHEN);
+++  
+++***************
+++*** 1921,1927 ****
+++      /**
+++       * reads a CASEWHEN expression
+++       */
+++!     private Expression readCaseWhenExpression() throws HsqlException {
+++  
+++          int        type = iToken;
+++          Expression r    = null;
+++--- 1921,1927 ----
+++      /**
+++       * reads a CASEWHEN expression
+++       */
+++!     public Expression readCaseWhenExpression() throws HsqlException {
+++  
+++          int        type = iToken;
+++          Expression r    = null;
+++***************
+++*** 1949,1955 ****
+++      /**
+++       * Reads a CAST or CONVERT expression
+++       */
+++!     private Expression readCastExpression() throws HsqlException {
+++  
+++          boolean isConvert = iToken == Expression.CONVERT;
+++  
+++--- 1949,1955 ----
+++      /**
+++       * Reads a CAST or CONVERT expression
+++       */
+++!     public Expression readCastExpression() throws HsqlException {
+++  
+++          boolean isConvert = iToken == Expression.CONVERT;
+++  
+++***************
+++*** 2009,2015 ****
+++      /**
+++       * reads a Column or Function expression
+++       */
+++!     private Expression readColumnExpression() throws HsqlException {
+++  
+++          String     name = sToken;
+++          Expression r    = new Expression(sTable, name, wasQuoted);
+++--- 2009,2015 ----
+++      /**
+++       * reads a Column or Function expression
+++       */
+++!     public Expression readColumnExpression() throws HsqlException {
+++  
+++          String     name = sToken;
+++          Expression r    = new Expression(sTable, name, wasQuoted);
+++***************
+++*** 2058,2064 ****
+++      /**
+++       * reads a CONCAT expression
+++       */
+++!     private Expression readConcatExpression() throws HsqlException {
+++  
+++          int type = iToken;
+++  
+++--- 2058,2064 ----
+++      /**
+++       * reads a CONCAT expression
+++       */
+++!     public Expression readConcatExpression() throws HsqlException {
+++  
+++          int type = iToken;
+++  
+++***************
+++*** 2079,2085 ****
+++      /**
+++       * Reads a NULLIF expression
+++       */
+++!     private Expression readNullIfExpression() throws HsqlException {
+++  
+++          // turn into a CASEWHEN
+++          read();
+++--- 2079,2085 ----
+++      /**
+++       * Reads a NULLIF expression
+++       */
+++!     public Expression readNullIfExpression() throws HsqlException {
+++  
+++          // turn into a CASEWHEN
+++          read();
+++***************
+++*** 2104,2110 ****
+++      /**
+++       * Reads a COALESE or IFNULL expression
+++       */
+++!     private Expression readCoalesceExpression() throws HsqlException {
+++  
+++          Expression r = null;
+++  
+++--- 2104,2110 ----
+++      /**
+++       * Reads a COALESE or IFNULL expression
+++       */
+++!     public Expression readCoalesceExpression() throws HsqlException {
+++  
+++          Expression r = null;
+++  
+++***************
+++*** 2148,2154 ****
+++      /**
+++       * Reads an EXTRACT expression
+++       */
+++!     private Expression readExtractExpression() throws HsqlException {
+++  
+++          read();
+++          readThis(Expression.OPEN);
+++--- 2148,2154 ----
+++      /**
+++       * Reads an EXTRACT expression
+++       */
+++!     public Expression readExtractExpression() throws HsqlException {
+++  
+++          read();
+++          readThis(Expression.OPEN);
+++***************
+++*** 2175,2181 ****
+++      /**
+++       * Reads a POSITION expression
+++       */
+++!     private Expression readPositionExpression() throws HsqlException {
+++  
+++          read();
+++          readThis(Expression.OPEN);
+++--- 2175,2181 ----
+++      /**
+++       * Reads a POSITION expression
+++       */
+++!     public Expression readPositionExpression() throws HsqlException {
+++  
+++          read();
+++          readThis(Expression.OPEN);
+++***************
+++*** 2194,2200 ****
+++      /**
+++       * Reads a SUBSTRING expression
+++       */
+++!     private Expression readSubstringExpression() throws HsqlException {
+++  
+++          boolean commas = false;
+++  
+++--- 2194,2200 ----
+++      /**
+++       * Reads a SUBSTRING expression
+++       */
+++!     public Expression readSubstringExpression() throws HsqlException {
+++  
+++          boolean commas = false;
+++  
+++***************
+++*** 2235,2241 ****
+++          return new Expression(f);
+++      }
+++  
+++!     private Expression readSequenceExpression() throws HsqlException {
+++  
+++          tokenizer.getThis(Token.T_VALUE);
+++          tokenizer.getThis(Token.T_FOR);
+++--- 2235,2241 ----
+++          return new Expression(f);
+++      }
+++  
+++!     public Expression readSequenceExpression() throws HsqlException {
+++  
+++          tokenizer.getThis(Token.T_VALUE);
+++          tokenizer.getThis(Token.T_FOR);
+++***************
+++*** 2259,2265 ****
+++      /**
+++       * Reads a TRIM expression
+++       */
+++!     private Expression readTrimExpression() throws HsqlException {
+++  
+++          read();
+++          readThis(Expression.OPEN);
+++--- 2259,2265 ----
+++      /**
+++       * Reads a TRIM expression
+++       */
+++!     public Expression readTrimExpression() throws HsqlException {
+++  
+++          read();
+++          readThis(Expression.OPEN);
+++***************
+++*** 2373,2379 ****
+++       *
+++       * @throws  HsqlException
+++       */
+++!     private void read() throws HsqlException {
+++  
+++          sToken    = tokenizer.getString();
+++          wasQuoted = tokenizer.wasQuotedIdentifier();
+++--- 2373,2379 ----
+++       *
+++       * @throws  HsqlException
+++       */
+++!     public void read() throws HsqlException {
+++  
+++          sToken    = tokenizer.getString();
+++          wasQuoted = tokenizer.wasQuotedIdentifier();
+++***************
+++*** 2485,2496 ****
+++       *
+++       * @throws HsqlException if a tokenization error occurs
+++       */
+++!     private void readToken() throws HsqlException {
+++          sToken = tokenizer.getString();
+++          iToken = tokenSet.get(sToken, -1);
+++      }
+++  
+++!     private static IntValueHashMap tokenSet = new IntValueHashMap(37);
+++  
+++      static {
+++          tokenSet.put(Token.T_COMMA, Expression.COMMA);
+++--- 2485,2496 ----
+++       *
+++       * @throws HsqlException if a tokenization error occurs
+++       */
+++!     public void readToken() throws HsqlException {
+++          sToken = tokenizer.getString();
+++          iToken = tokenSet.get(sToken, -1);
+++      }
+++  
+++!     public static IntValueHashMap tokenSet = new IntValueHashMap(37);
+++  
+++      static {
+++          tokenSet.put(Token.T_COMMA, Expression.COMMA);
+++***************
+++*** 2556,2563 ****
+++  // boucherb@users 20030411 - patch 1.7.2 - for prepared statements
+++  // ---------------------------------------------------------------
+++      HsqlArrayList                     parameters   = new HsqlArrayList();
+++!     private static final Expression[] noParameters = new Expression[0];
+++!     private static final SubQuery[]   noSubqueries = new SubQuery[0];
+++  
+++      /**
+++       *  Destructive get method
+++--- 2556,2563 ----
+++  // boucherb@users 20030411 - patch 1.7.2 - for prepared statements
+++  // ---------------------------------------------------------------
+++      HsqlArrayList                     parameters   = new HsqlArrayList();
+++!     public static final Expression[] noParameters = new Expression[0];
+++!     public static final SubQuery[]   noSubqueries = new SubQuery[0];
+++  
+++      /**
+++       *  Destructive get method
+++***************
+++*** 2656,2662 ****
+++          return cs;
+++      }
+++  
+++!     private void getInsertColumnValueExpressions(Table t, Expression[] acve,
+++              int len) throws HsqlException {
+++  
+++          tokenizer.getThis(Token.T_OPENBRACKET);
+++--- 2656,2662 ----
+++          return cs;
+++      }
+++  
+++!     public void getInsertColumnValueExpressions(Table t, Expression[] acve,
+++              int len) throws HsqlException {
+++  
+++          tokenizer.getThis(Token.T_OPENBRACKET);
+++diff -crN hsqldb-old/src/org/hsqldb/persist/Cache.java hsqldb/src/org/hsqldb/persist/Cache.java
+++*** hsqldb-old/src/org/hsqldb/persist/Cache.java	2006-09-22 15:14:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/Cache.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 54,68 ****
+++  public class Cache {
+++  
+++      final DataFileCache                  dataFileCache;
+++!     private int                          capacity;         // number of Rows
+++!     private long                         bytesCapacity;    // number of bytes
+++!     private final CachedObjectComparator rowComparator;
+++  
+++  //
+++!     private CachedObject[] rowTable;
+++  
+++  //
+++!     private final ObjectCacheHashMap cacheMap;
+++      long                             cacheBytesLength;
+++  
+++      // for testing
+++--- 54,68 ----
+++  public class Cache {
+++  
+++      final DataFileCache                  dataFileCache;
+++!     public int                          capacity;         // number of Rows
+++!     public long                         bytesCapacity;    // number of bytes
+++!     public final CachedObjectComparator rowComparator;
+++  
+++  //
+++!     public CachedObject[] rowTable;
+++  
+++  //
+++!     public final ObjectCacheHashMap cacheMap;
+++      long                             cacheBytesLength;
+++  
+++      // for testing
+++***************
+++*** 148,154 ****
+++       * in the cache.
+++       *
+++       */
+++!     private synchronized void cleanUp() throws IOException {
+++  
+++          int removeCount = cacheMap.size() / 2;
+++          int accessTarget = cacheMap.getAccessCountCeiling(removeCount,
+++--- 148,154 ----
+++       * in the cache.
+++       *
+++       */
+++!     public synchronized void cleanUp() throws IOException {
+++  
+++          int removeCount = cacheMap.size() / 2;
+++          int accessTarget = cacheMap.getAccessCountCeiling(removeCount,
+++***************
+++*** 176,182 ****
+++          saveRows(savecount);
+++      }
+++  
+++!     private synchronized void saveRows(int count) throws IOException {
+++  
+++          if (count == 0) {
+++              return;
+++--- 176,182 ----
+++          saveRows(savecount);
+++      }
+++  
+++!     public synchronized void saveRows(int count) throws IOException {
+++  
+++          if (count == 0) {
+++              return;
+++***************
+++*** 246,252 ****
+++          static final int COMPARE_LAST_ACCESS = 0;
+++          static final int COMPARE_POSITION    = 1;
+++          static final int COMPARE_SIZE        = 2;
+++!         private int      compareType;
+++  
+++          CachedObjectComparator() {}
+++  
+++--- 246,252 ----
+++          static final int COMPARE_LAST_ACCESS = 0;
+++          static final int COMPARE_POSITION    = 1;
+++          static final int COMPARE_SIZE        = 2;
+++!         public int      compareType;
+++  
+++          CachedObjectComparator() {}
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/persist/DataFileBlockManager.java hsqldb/src/org/hsqldb/persist/DataFileBlockManager.java
+++*** hsqldb-old/src/org/hsqldb/persist/DataFileBlockManager.java	2006-09-22 15:14:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/DataFileBlockManager.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 42,54 ****
+++   */
+++  public class DataFileBlockManager {
+++  
+++!     private DoubleIntIndex lookup;
+++!     private final int      capacity;
+++!     private int            midSize;
+++!     private final int      scale;
+++!     private long           releaseCount;
+++!     private long           requestCount;
+++!     private long           requestSize;
+++  
+++      // reporting vars
+++      long    lostFreeBlockSize;
+++--- 42,54 ----
+++   */
+++  public class DataFileBlockManager {
+++  
+++!     public DoubleIntIndex lookup;
+++!     public final int      capacity;
+++!     public int            midSize;
+++!     public final int      scale;
+++!     public long           releaseCount;
+++!     public long           requestCount;
+++!     public long           requestSize;
+++  
+++      // reporting vars
+++      long    lostFreeBlockSize;
+++***************
+++*** 144,150 ****
+++          removeBlocks(lookup.size());
+++      }
+++  
+++!     private void resetList() {
+++  
+++          if (requestCount != 0) {
+++              midSize = (int) (requestSize / requestCount);
+++--- 144,150 ----
+++          removeBlocks(lookup.size());
+++      }
+++  
+++!     public void resetList() {
+++  
+++          if (requestCount != 0) {
+++              midSize = (int) (requestSize / requestCount);
+++***************
+++*** 159,165 ****
+++          removeBlocks(first);
+++      }
+++  
+++!     private void removeBlocks(int blocks) {
+++  
+++          for (int i = 0; i < blocks; i++) {
+++              lostFreeBlockSize += lookup.getValue(i);
+++--- 159,165 ----
+++          removeBlocks(first);
+++      }
+++  
+++!     public void removeBlocks(int blocks) {
+++  
+++          for (int i = 0; i < blocks; i++) {
+++              lostFreeBlockSize += lookup.getValue(i);
+++***************
+++*** 168,172 ****
+++          lookup.removeRange(0, blocks);
+++      }
+++  
+++!     private void checkIntegrity() throws NullPointerException {}
+++  }
+++--- 168,172 ----
+++          lookup.removeRange(0, blocks);
+++      }
+++  
+++!     public void checkIntegrity() throws NullPointerException {}
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/persist/DataFileCache.java hsqldb/src/org/hsqldb/persist/DataFileCache.java
+++*** hsqldb-old/src/org/hsqldb/persist/DataFileCache.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/DataFileCache.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 63,69 ****
+++   */
+++  public class DataFileCache {
+++  
+++!     protected FileAccess fa;
+++  
+++      // flags
+++      public static final int FLAG_ISSAVED = 2;
+++--- 63,69 ----
+++   */
+++  public class DataFileCache {
+++  
+++!     public FileAccess fa;
+++  
+++      // flags
+++      public static final int FLAG_ISSAVED = 2;
+++***************
+++*** 78,118 ****
+++  
+++      //
+++      DataFileBlockManager     freeBlocks;
+++!     private static final int initIOBufferSize = 256;
+++  
+++      //
+++!     protected String   fileName;
+++!     protected String   backupFileName;
+++!     protected Database database;
+++  
+++      // this flag is used externally to determine if a backup is required
+++!     protected boolean fileModified;
+++!     protected int     cacheFileScale;
+++  
+++      // post openning constant fields
+++!     protected boolean cacheReadonly;
+++  
+++      // cache operation mode
+++!     protected boolean storeOnInsert;
+++  
+++      //
+++!     protected int     cachedRowPadding = 8;
+++!     protected boolean hasRowInfo       = false;
+++  
+++      // reusable input / output streams
+++!     protected RowInputInterface  rowIn;
+++!     protected RowOutputInterface rowOut;
+++  
+++      //
+++      public long maxDataFileSize;
+++  
+++      //
+++!     protected Storage dataFile;
+++!     protected long    fileFreePosition;
+++!     protected int     maxCacheSize;                // number of Rows
+++!     protected long    maxCacheBytes;               // number of bytes
+++!     protected int     maxFreeBlocks;
+++!     protected Cache   cache;
+++  
+++      public DataFileCache(Database db,
+++                           String baseFileName) throws HsqlException {
+++--- 78,118 ----
+++  
+++      //
+++      DataFileBlockManager     freeBlocks;
+++!     public static final int initIOBufferSize = 256;
+++  
+++      //
+++!     public String   fileName;
+++!     public String   backupFileName;
+++!     public Database database;
+++  
+++      // this flag is used externally to determine if a backup is required
+++!     public boolean fileModified;
+++!     public int     cacheFileScale;
+++  
+++      // post openning constant fields
+++!     public boolean cacheReadonly;
+++  
+++      // cache operation mode
+++!     public boolean storeOnInsert;
+++  
+++      //
+++!     public int     cachedRowPadding = 8;
+++!     public boolean hasRowInfo       = false;
+++  
+++      // reusable input / output streams
+++!     public RowInputInterface  rowIn;
+++!     public RowOutputInterface rowOut;
+++  
+++      //
+++      public long maxDataFileSize;
+++  
+++      //
+++!     public Storage dataFile;
+++!     public long    fileFreePosition;
+++!     public int     maxCacheSize;                // number of Rows
+++!     public long    maxCacheBytes;               // number of bytes
+++!     public int     maxFreeBlocks;
+++!     public Cache   cache;
+++  
+++      public DataFileCache(Database db,
+++                           String baseFileName) throws HsqlException {
+++***************
+++*** 125,131 ****
+++      /**
+++       * initial external parameters are set here.
+++       */
+++!     protected void initParams(Database database,
+++                                String baseFileName) throws HsqlException {
+++  
+++          HsqlDatabaseProperties props = database.getProperties();
+++--- 125,131 ----
+++      /**
+++       * initial external parameters are set here.
+++       */
+++!     public void initParams(Database database,
+++                                String baseFileName) throws HsqlException {
+++  
+++          HsqlDatabaseProperties props = database.getProperties();
+++***************
+++*** 364,370 ****
+++          }
+++      }
+++  
+++!     protected void initBuffers() {
+++  
+++          if (rowOut == null
+++                  || ((RowOutputBinary) rowOut).getBuffer().length
+++--- 364,370 ----
+++          }
+++      }
+++  
+++!     public void initBuffers() {
+++  
+++          if (rowOut == null
+++                  || ((RowOutputBinary) rowOut).getBuffer().length
+++***************
+++*** 453,459 ****
+++       * Free space is requested from the block manager if it exists.
+++       * Otherwise the file is grown to accommodate it.
+++       */
+++!     private int setFilePos(CachedObject r) throws IOException {
+++  
+++          int rowSize = r.getStorageSize();
+++          int i       = freeBlocks == null ? -1
+++--- 453,459 ----
+++       * Free space is requested from the block manager if it exists.
+++       * Otherwise the file is grown to accommodate it.
+++       */
+++!     public int setFilePos(CachedObject r) throws IOException {
+++  
+++          int rowSize = r.getStorageSize();
+++          int i       = freeBlocks == null ? -1
+++***************
+++*** 568,581 ****
+++          return readObject(i);
+++      }
+++  
+++!     protected synchronized int readSize(int pos) throws IOException {
+++  
+++          dataFile.seek((long) pos * cacheFileScale);
+++  
+++          return dataFile.readInt();
+++      }
+++  
+++!     protected synchronized RowInputInterface readObject(int pos)
+++      throws IOException {
+++  
+++          dataFile.seek((long) pos * cacheFileScale);
+++--- 568,581 ----
+++          return readObject(i);
+++      }
+++  
+++!     public synchronized int readSize(int pos) throws IOException {
+++  
+++          dataFile.seek((long) pos * cacheFileScale);
+++  
+++          return dataFile.readInt();
+++      }
+++  
+++!     public synchronized RowInputInterface readObject(int pos)
+++      throws IOException {
+++  
+++          dataFile.seek((long) pos * cacheFileScale);
+++***************
+++*** 592,598 ****
+++          return cache.release(i);
+++      }
+++  
+++!     protected synchronized void saveRows(CachedObject[] rows, int offset,
+++                                           int count) throws IOException {
+++  
+++          try {
+++--- 592,598 ----
+++          return cache.release(i);
+++      }
+++  
+++!     public synchronized void saveRows(CachedObject[] rows, int offset,
+++                                           int count) throws IOException {
+++  
+++          try {
+++***************
+++*** 771,777 ****
+++          return fileModified;
+++      }
+++  
+++!     protected synchronized void setFileModified() throws IOException {
+++  
+++          if (!fileModified) {
+++  
+++--- 771,777 ----
+++          return fileModified;
+++      }
+++  
+++!     public synchronized void setFileModified() throws IOException {
+++  
+++          if (!fileModified) {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/persist/HsqlDatabaseProperties.java hsqldb/src/org/hsqldb/persist/HsqlDatabaseProperties.java
+++*** hsqldb-old/src/org/hsqldb/persist/HsqlDatabaseProperties.java	2007-10-22 22:37:50.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/HsqlDatabaseProperties.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 55,63 ****
+++   */
+++  public class HsqlDatabaseProperties extends HsqlProperties {
+++  
+++!     private static String hsqldb-old_method_class_names =
+++          "hsqldb.method_class_names";
+++!     private static HashSet accessibleJavaMethodNames;
+++  
+++      static {
+++          try {
+++--- 55,63 ----
+++   */
+++  public class HsqlDatabaseProperties extends HsqlProperties {
+++  
+++!     public static String hsqldb-old_method_class_names =
+++          "hsqldb.method_class_names";
+++!     public static HashSet accessibleJavaMethodNames;
+++  
+++      static {
+++          try {
+++***************
+++*** 139,158 ****
+++      public static final int indexLimit        = 8;
+++  
+++      // accessibility
+++!     private static final int SET_PROPERTY  = 0;
+++!     private static final int SQL_PROPERTY  = 1;
+++!     private static final int FILE_PROPERTY = 2;
+++  
+++      // db files modified
+++      public static final int     FILES_NOT_MODIFIED = 0;
+++      public static final int     FILES_MODIFIED     = 1;
+++      public static final int     FILES_NEW          = 2;
+++!     private static final String MODIFIED_NO        = "no";
+++!     private static final String MODIFIED_YES       = "yes";
+++!     private static final String MODIFIED_NEW       = "no-new-files";
+++  
+++      // allowed property metadata
+++!     private static HashMap meta = new HashMap();
+++  
+++      // versions
+++      public static final String VERSION_STRING_1_7_0     = "1.7.0";
+++--- 139,158 ----
+++      public static final int indexLimit        = 8;
+++  
+++      // accessibility
+++!     public static final int SET_PROPERTY  = 0;
+++!     public static final int SQL_PROPERTY  = 1;
+++!     public static final int FILE_PROPERTY = 2;
+++  
+++      // db files modified
+++      public static final int     FILES_NOT_MODIFIED = 0;
+++      public static final int     FILES_MODIFIED     = 1;
+++      public static final int     FILES_NEW          = 2;
+++!     public static final String MODIFIED_NO        = "no";
+++!     public static final String MODIFIED_YES       = "yes";
+++!     public static final String MODIFIED_NEW       = "no-new-files";
+++  
+++      // allowed property metadata
+++!     public static HashMap meta = new HashMap();
+++  
+++      // versions
+++      public static final String VERSION_STRING_1_7_0     = "1.7.0";
+++***************
+++*** 168,178 ****
+++  
+++      //
+++      public static final String  db_version  = "version";
+++!     private static final String db_readonly = "readonly";
+++!     private static final String db_modified = "modified";
+++  
+++      //
+++!     private static final String runtime_gc_interval = "runtime.gc_interval";
+++      public static final String  hsqldb-old_applog       = "hsqldb.applog";
+++      public static final String hsqldb-old_cache_file_scale =
+++          "hsqldb.cache_file_scale";
+++--- 168,178 ----
+++  
+++      //
+++      public static final String  db_version  = "version";
+++!     public static final String db_readonly = "readonly";
+++!     public static final String db_modified = "modified";
+++  
+++      //
+++!     public static final String runtime_gc_interval = "runtime.gc_interval";
+++      public static final String  hsqldb-old_applog       = "hsqldb.applog";
+++      public static final String hsqldb-old_cache_file_scale =
+++          "hsqldb.cache_file_scale";
+++***************
+++*** 182,208 ****
+++      public static final String hsqldb-old_cache_size_scale =
+++          "hsqldb.cache_size_scale";
+++      public static final String  hsqldb-old_cache_version = "hsqldb.cache_version";
+++!     private static final String hsqldb-old_catalogs      = "hsqldb.catalogs";
+++      public static final String hsqldb-old_compatible_version =
+++          "hsqldb.compatible_version";
+++      public static final String hsqldb-old_default_table_type =
+++          "hsqldb.default_table_type";
+++      public static final String hsqldb-old_defrag_limit = "hsqldb.defrag_limit";
+++!     private static final String hsqldb-old_files_readonly =
+++          "hsqldb.files_readonly";
+++      public static final String hsqldb-old_log_size      = "hsqldb.log_size";
+++      public static final String hsqldb-old_nio_data_file = "hsqldb.nio_data_file";
+++      public static final String hsqldb-old_max_nio_scale = "hsqldb.max_nio_scale";
+++      public static final String hsqldb-old_raf_buffer_scale =
+++          "hsqldb.raf_buffer_scale";
+++!     private static final String hsqldb-old_original_version =
+++          "hsqldb.original_version";
+++      public static final String hsqldb-old_script_format = "hsqldb.script_format";
+++  
+++      //
+++!     private static final String sql_compare_in_locale =
+++          "sql.compare_in_locale";
+++!     private static final String sql_enforce_strict_size =
+++          "sql.enforce_strict_size";
+++      public static final String sql_tx_no_multi_write =
+++          "sql.tx_no_multi_rewrite";
+++--- 182,208 ----
+++      public static final String hsqldb-old_cache_size_scale =
+++          "hsqldb.cache_size_scale";
+++      public static final String  hsqldb-old_cache_version = "hsqldb.cache_version";
+++!     public static final String hsqldb-old_catalogs      = "hsqldb.catalogs";
+++      public static final String hsqldb-old_compatible_version =
+++          "hsqldb.compatible_version";
+++      public static final String hsqldb-old_default_table_type =
+++          "hsqldb.default_table_type";
+++      public static final String hsqldb-old_defrag_limit = "hsqldb.defrag_limit";
+++!     public static final String hsqldb-old_files_readonly =
+++          "hsqldb.files_readonly";
+++      public static final String hsqldb-old_log_size      = "hsqldb.log_size";
+++      public static final String hsqldb-old_nio_data_file = "hsqldb.nio_data_file";
+++      public static final String hsqldb-old_max_nio_scale = "hsqldb.max_nio_scale";
+++      public static final String hsqldb-old_raf_buffer_scale =
+++          "hsqldb.raf_buffer_scale";
+++!     public static final String hsqldb-old_original_version =
+++          "hsqldb.original_version";
+++      public static final String hsqldb-old_script_format = "hsqldb.script_format";
+++  
+++      //
+++!     public static final String sql_compare_in_locale =
+++          "sql.compare_in_locale";
+++!     public static final String sql_enforce_strict_size =
+++          "sql.enforce_strict_size";
+++      public static final String sql_tx_no_multi_write =
+++          "sql.tx_no_multi_rewrite";
+++***************
+++*** 223,229 ****
+++  
+++      static {
+++  
+++!         // string defaults for protected props
+++          meta.put(db_version, getMeta(db_version, FILE_PROPERTY, null));
+++          meta.put(hsqldb_compatible_version,
+++                   getMeta(hsqldb_compatible_version, FILE_PROPERTY, null));
+++--- 223,229 ----
+++  
+++      static {
+++  
+++!         // string defaults for public props
+++          meta.put(db_version, getMeta(db_version, FILE_PROPERTY, null));
+++          meta.put(hsqldb_compatible_version,
+++                   getMeta(hsqldb_compatible_version, FILE_PROPERTY, null));
+++***************
+++*** 242,248 ****
+++          meta.put(textdb_encoding,
+++                   getMeta(textdb_encoding, SET_PROPERTY, null));
+++  
+++!         // boolean defaults for protected props
+++          meta.put(db_readonly, getMeta(db_readonly, FILE_PROPERTY, false));
+++          meta.put(hsqldb_files_readonly,
+++                   getMeta(hsqldb_files_readonly, FILE_PROPERTY, false));
+++--- 242,248 ----
+++          meta.put(textdb_encoding,
+++                   getMeta(textdb_encoding, SET_PROPERTY, null));
+++  
+++!         // boolean defaults for public props
+++          meta.put(db_readonly, getMeta(db_readonly, FILE_PROPERTY, false));
+++          meta.put(hsqldb_files_readonly,
+++                   getMeta(hsqldb_files_readonly, FILE_PROPERTY, false));
+++***************
+++*** 304,310 ****
+++                   getMeta(textdb_cache_size_scale, SET_PROPERTY, 10, 6, 20));
+++      }
+++  
+++!     private Database database;
+++  
+++      public HsqlDatabaseProperties(Database db) {
+++  
+++--- 304,310 ----
+++                   getMeta(textdb_cache_size_scale, SET_PROPERTY, 10, 6, 20));
+++      }
+++  
+++!     public Database database;
+++  
+++      public HsqlDatabaseProperties(Database db) {
+++  
+++***************
+++*** 644,650 ****
+++          return FILES_NOT_MODIFIED;
+++      }
+++  
+++!     private static Object[] getMeta(String name, int accessLevel,
+++                                      String defaultValue) {
+++  
+++          Object[] row = new Object[indexLimit];
+++--- 644,650 ----
+++          return FILES_NOT_MODIFIED;
+++      }
+++  
+++!     public static Object[] getMeta(String name, int accessLevel,
+++                                      String defaultValue) {
+++  
+++          Object[] row = new Object[indexLimit];
+++***************
+++*** 657,663 ****
+++          return row;
+++      }
+++  
+++!     private static Object[] getMeta(String name, int accessLevel,
+++                                      boolean defaultValue) {
+++  
+++          Object[] row = new Object[indexLimit];
+++--- 657,663 ----
+++          return row;
+++      }
+++  
+++!     public static Object[] getMeta(String name, int accessLevel,
+++                                      boolean defaultValue) {
+++  
+++          Object[] row = new Object[indexLimit];
+++***************
+++*** 671,677 ****
+++          return row;
+++      }
+++  
+++!     private static Object[] getMeta(String name, int accessLevel,
+++                                      int defaultValue, byte[] values) {
+++  
+++          Object[] row = new Object[indexLimit];
+++--- 671,677 ----
+++          return row;
+++      }
+++  
+++!     public static Object[] getMeta(String name, int accessLevel,
+++                                      int defaultValue, byte[] values) {
+++  
+++          Object[] row = new Object[indexLimit];
+++***************
+++*** 685,691 ****
+++          return row;
+++      }
+++  
+++!     private static Object[] getMeta(String name, int accessLevel,
+++                                      int defaultValue, int rangeLow,
+++                                      int rangeHigh) {
+++  
+++--- 685,691 ----
+++          return row;
+++      }
+++  
+++!     public static Object[] getMeta(String name, int accessLevel,
+++                                      int defaultValue, int rangeLow,
+++                                      int rangeHigh) {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/persist/HsqlProperties.java hsqldb/src/org/hsqldb/persist/HsqlProperties.java
+++*** hsqldb-old/src/org/hsqldb/persist/HsqlProperties.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/HsqlProperties.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 55,66 ****
+++  public class HsqlProperties {
+++  
+++      public static final int NO_VALUE_FOR_KEY = 1;
+++!     protected String        fileName;
+++!     protected Properties    stringProps;
+++!     protected int[]         errorCodes = new int[0];
+++!     protected String[]      errorKeys  = new String[0];
+++!     protected boolean       resource   = false;
+++!     protected FileAccess    fa;
+++  
+++      public HsqlProperties() {
+++          stringProps = new Properties();
+++--- 55,66 ----
+++  public class HsqlProperties {
+++  
+++      public static final int NO_VALUE_FOR_KEY = 1;
+++!     public String        fileName;
+++!     public Properties    stringProps;
+++!     public int[]         errorCodes = new int[0];
+++!     public String[]      errorKeys  = new String[0];
+++!     public boolean       resource   = false;
+++!     public FileAccess    fa;
+++  
+++      public HsqlProperties() {
+++          stringProps = new Properties();
+++***************
+++*** 295,301 ****
+++       * is populated during construction or addition of elements and is used
+++       * outside this class to act upon the errors.
+++       */
+++!     private void addError(int code, String key) {
+++  
+++          errorCodes = (int[]) ArrayUtil.resizeArray(errorCodes,
+++                  errorCodes.length + 1);
+++--- 295,301 ----
+++       * is populated during construction or addition of elements and is used
+++       * outside this class to act upon the errors.
+++       */
+++!     public void addError(int code, String key) {
+++  
+++          errorCodes = (int[]) ArrayUtil.resizeArray(errorCodes,
+++                  errorCodes.length + 1);
+++diff -crN hsqldb-old/src/org/hsqldb/persist/LockFile.java hsqldb/src/org/hsqldb/persist/LockFile.java
+++*** hsqldb-old/src/org/hsqldb/persist/LockFile.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/LockFile.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 101,107 ****
+++   *    </ul>
+++   * </ol> <p>
+++   *
+++!  * In addition to the generic lock and release rules, the protected methods
+++   * {@link #lockImpl() lockImpl()} and {@link #releaseImpl() releaseImpl()}
+++   * are called during lock and release attempts, respectively.  This allows
+++   * transparent, JDK 1.1 compliant integration of extended strategies for
+++--- 101,107 ----
+++   *    </ul>
+++   * </ol> <p>
+++   *
+++!  * In addition to the generic lock and release rules, the public methods
+++   * {@link #lockImpl() lockImpl()} and {@link #releaseImpl() releaseImpl()}
+++   * are called during lock and release attempts, respectively.  This allows
+++   * transparent, JDK 1.1 compliant integration of extended strategies for
+++***************
+++*** 156,165 ****
+++  public class LockFile {
+++  
+++      /** Canonical reference to this object's lock file. */
+++!     protected File f;
+++  
+++      /** Cached value of the lock file's canonical path. */
+++!     private String cpath = null;
+++  
+++      /**
+++       * A RandomAccessFile constructed from this object's reference, f, to its
+++--- 156,165 ----
+++  public class LockFile {
+++  
+++      /** Canonical reference to this object's lock file. */
+++!     public File f;
+++  
+++      /** Cached value of the lock file's canonical path. */
+++!     public String cpath = null;
+++  
+++      /**
+++       * A RandomAccessFile constructed from this object's reference, f, to its
+++***************
+++*** 168,174 ****
+++       * This RandomAccessFile is used to periodically write out the heartbeat
+++       * timestamp to this object's lock file.
+++       */
+++!     protected RandomAccessFile raf;
+++  
+++      /**
+++       * The period, in milliseconds, at which heartbeat timestamps are written
+++--- 168,174 ----
+++       * This RandomAccessFile is used to periodically write out the heartbeat
+++       * timestamp to this object's lock file.
+++       */
+++!     public RandomAccessFile raf;
+++  
+++      /**
+++       * The period, in milliseconds, at which heartbeat timestamps are written
+++***************
+++*** 183,200 ****
+++      public static final byte[] MAGIC = "HSQLLOCK".getBytes();
+++  
+++      /** Indicates whether this object has a lock condition on its lock file. */
+++!     protected boolean locked;
+++  
+++      /**
+++       * The timed scheduler with which to register this object's
+++       * heartbeat task.
+++       */
+++!     protected static final HsqlTimer timer = DatabaseManager.getTimer();
+++  
+++      /**
+++       * An opaque reference to this object's heatbeat task.
+++       */
+++!     private Object timerTask;
+++  
+++      /**
+++       * Attempts to read the hearbeat timestamp from this object's lock file
+++--- 183,200 ----
+++      public static final byte[] MAGIC = "HSQLLOCK".getBytes();
+++  
+++      /** Indicates whether this object has a lock condition on its lock file. */
+++!     public boolean locked;
+++  
+++      /**
+++       * The timed scheduler with which to register this object's
+++       * heartbeat task.
+++       */
+++!     public static final HsqlTimer timer = DatabaseManager.getTimer();
+++  
+++      /**
+++       * An opaque reference to this object's heatbeat task.
+++       */
+++!     public Object timerTask;
+++  
+++      /**
+++       * Attempts to read the hearbeat timestamp from this object's lock file
+++***************
+++*** 219,225 ****
+++       *        or isolated class loader context currently has a
+++       *        lock condition on this object's lock file
+++       */
+++!     private void checkHeartbeat() throws Exception {
+++  
+++          long   lastHeartbeat;
+++          String mn;
+++--- 219,225 ----
+++       *        or isolated class loader context currently has a
+++       *        lock condition on this object's lock file
+++       */
+++!     public void checkHeartbeat() throws Exception {
+++  
+++          long   lastHeartbeat;
+++          String mn;
+++***************
+++*** 270,276 ****
+++       *
+++       * @throws Exception if an IOException occurs
+++       */
+++!     private void closeRAF() throws Exception {
+++  
+++          String mn;
+++  
+++--- 270,276 ----
+++       *
+++       * @throws Exception if an IOException occurs
+++       */
+++!     public void closeRAF() throws Exception {
+++  
+++          String mn;
+++  
+++***************
+++*** 300,306 ****
+++       * @param file a reference to the file this object is to use as its
+++       *      lock file
+++       */
+++!     private void setFile(File file) throws Exception {
+++  
+++          if (isLocked()) {
+++              try {
+++--- 300,306 ----
+++       * @param file a reference to the file this object is to use as its
+++       *      lock file
+++       */
+++!     public void setFile(File file) throws Exception {
+++  
+++          if (isLocked()) {
+++              try {
+++***************
+++*** 355,361 ****
+++       *        actions are taken or the actions succeed,
+++       *        else <code>false</code>.
+++       */
+++!     protected boolean lockImpl() throws Exception {
+++  
+++          String mn;
+++  
+++--- 355,361 ----
+++       *        actions are taken or the actions succeed,
+++       *        else <code>false</code>.
+++       */
+++!     public boolean lockImpl() throws Exception {
+++  
+++          String mn;
+++  
+++***************
+++*** 372,378 ****
+++       *
+++       * @throws Exception if an IOException occurs
+++       */
+++!     private void openRAF() throws Exception {
+++  
+++          trace("openRAF(): entered.");
+++  
+++--- 372,378 ----
+++       *
+++       * @throws Exception if an IOException occurs
+++       */
+++!     public void openRAF() throws Exception {
+++  
+++          trace("openRAF(): entered.");
+++  
+++***************
+++*** 394,400 ****
+++       *      file does not exist, Long.MIN_VALUE, the earliest time
+++       *      representable as a long in Java,
+++       */
+++!     private long readHeartbeat() throws Exception {
+++  
+++          DataInputStream dis;
+++          long            heartbeat;
+++--- 394,400 ----
+++       *      file does not exist, Long.MIN_VALUE, the earliest time
+++       *      representable as a long in Java,
+++       */
+++!     public long readHeartbeat() throws Exception {
+++  
+++          DataInputStream dis;
+++          long            heartbeat;
+++***************
+++*** 447,453 ****
+++       *        to be determined. (e.g. an IO exception
+++       *        occurs here).
+++       */
+++!     protected boolean releaseImpl() throws Exception {
+++  
+++          trace("releaseImpl(): no action: returning true");
+++  
+++--- 447,453 ----
+++       *        to be determined. (e.g. an IO exception
+++       *        occurs here).
+++       */
+++!     public boolean releaseImpl() throws Exception {
+++  
+++          trace("releaseImpl(): no action: returning true");
+++  
+++***************
+++*** 455,461 ****
+++      }
+++  
+++      /** Schedules the lock heartbeat task. */
+++!     private void startHeartbeat() {
+++  
+++          Runnable r;
+++  
+++--- 455,461 ----
+++      }
+++  
+++      /** Schedules the lock heartbeat task. */
+++!     public void startHeartbeat() {
+++  
+++          Runnable r;
+++  
+++***************
+++*** 475,481 ****
+++      }
+++  
+++      /** Cancels the lock heartbeat task. */
+++!     private void stopHeartbeat() {
+++  
+++          String mn = "stopHeartbeat(): ";
+++  
+++--- 475,481 ----
+++      }
+++  
+++      /** Cancels the lock heartbeat task. */
+++!     public void stopHeartbeat() {
+++  
+++          String mn = "stopHeartbeat(): ";
+++  
+++***************
+++*** 497,503 ****
+++       * @throws Exception if the magic value cannot be written to
+++       *      the lock file
+++       */
+++!     private void writeMagic() throws Exception {
+++  
+++          String mn   = "writeMagic(): ";
+++          String path = "lock file [" + cpath + "]";
+++--- 497,503 ----
+++       * @throws Exception if the magic value cannot be written to
+++       *      the lock file
+++       */
+++!     public void writeMagic() throws Exception {
+++  
+++          String mn   = "writeMagic(): ";
+++          String path = "lock file [" + cpath + "]";
+++***************
+++*** 517,523 ****
+++       * @throws Exception if the current heartbeat timestamp value
+++       *      cannot be written
+++       */
+++!     private void writeHeartbeat() throws Exception {
+++  
+++          long   time;
+++          String mn   = "writeHeartbeat(): ";
+++--- 517,523 ----
+++       * @throws Exception if the current heartbeat timestamp value
+++       *      cannot be written
+++       */
+++!     public void writeHeartbeat() throws Exception {
+++  
+++          long   time;
+++          String mn   = "writeHeartbeat(): ";
+++***************
+++*** 752,758 ****
+++       * This Runnable class provides the implementation for the timed task
+++       * that periodically writes out a heartbeat timestamp to the lock file.<p>
+++       */
+++!     protected class HeartbeatRunner implements Runnable {
+++  
+++          public void run() {
+++  
+++--- 752,758 ----
+++       * This Runnable class provides the implementation for the timed task
+++       * that periodically writes out a heartbeat timestamp to the lock file.<p>
+++       */
+++!     public class HeartbeatRunner implements Runnable {
+++  
+++          public void run() {
+++  
+++***************
+++*** 797,803 ****
+++       * @return an implementation-specific tail value for the toString() method
+++       * @see #toString
+++       */
+++!     protected String toStringImpl() {
+++          return "";
+++      }
+++  
+++--- 797,803 ----
+++       * @return an implementation-specific tail value for the toString() method
+++       * @see #toString
+++       */
+++!     public String toStringImpl() {
+++          return "";
+++      }
+++  
+++***************
+++*** 954,960 ****
+++       *
+++       * @param o the value to print
+++       */
+++!     protected void trace(Object o) {
+++  
+++          if (Trace.TRACE) {
+++              Trace.printSystemOut("[" + super.toString() + "]: " + o);
+++--- 954,960 ----
+++       *
+++       * @param o the value to print
+++       */
+++!     public void trace(Object o) {
+++  
+++          if (Trace.TRACE) {
+++              Trace.printSystemOut("[" + super.toString() + "]: " + o);
+++***************
+++*** 969,975 ****
+++       *        trying to release the lock condition,
+++       *        if any, that it has on its lock file.
+++       */
+++!     protected void finalize() throws Throwable {
+++          trace("finalize(): calling tryRelease()");
+++          tryRelease();
+++      }
+++--- 969,975 ----
+++       *        trying to release the lock condition,
+++       *        if any, that it has on its lock file.
+++       */
+++!     public void finalize() throws Throwable {
+++          trace("finalize(): calling tryRelease()");
+++          tryRelease();
+++      }
+++diff -crN hsqldb-old/src/org/hsqldb/persist/Logger.java hsqldb/src/org/hsqldb/persist/Logger.java
+++*** hsqldb-old/src/org/hsqldb/persist/Logger.java	2006-09-22 15:14:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/Logger.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 68,83 ****
+++      /**
+++       *  The Log object this Logger object wraps
+++       */
+++!     private Log log;
+++  
+++      /**
+++       *  The LockFile object this Logger uses to cooperatively lock
+++       *  the database files
+++       */
+++!     private LockFile lf;
+++      boolean          needsCheckpoint;
+++!     private boolean  logStatements;
+++!     private boolean  syncFile = false;
+++  
+++      public Logger() {
+++          appLog = new SimpleLog(null, SimpleLog.LOG_NONE, false);
+++--- 68,83 ----
+++      /**
+++       *  The Log object this Logger object wraps
+++       */
+++!     public Log log;
+++  
+++      /**
+++       *  The LockFile object this Logger uses to cooperatively lock
+++       *  the database files
+++       */
+++!     public LockFile lf;
+++      boolean          needsCheckpoint;
+++!     public boolean  logStatements;
+++!     public boolean  syncFile = false;
+++  
+++      public Logger() {
+++          appLog = new SimpleLog(null, SimpleLog.LOG_NONE, false);
+++diff -crN hsqldb-old/src/org/hsqldb/persist/Log.java hsqldb/src/org/hsqldb/persist/Log.java
+++*** hsqldb-old/src/org/hsqldb/persist/Log.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/Log.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 126,143 ****
+++   */
+++  public class Log {
+++  
+++!     private HsqlDatabaseProperties properties;
+++!     private String                 fileName;
+++!     private Database               database;
+++!     private FileAccess             fa;
+++!     private ScriptWriterBase       dbLogWriter;
+++!     private String                 scriptFileName;
+++!     private String                 logFileName;
+++!     private boolean                filesReadOnly;
+++!     private long                   maxLogSize;
+++!     private int                    writeDelay;
+++!     private int                    scriptFormat;
+++!     private DataFileCache          cache;
+++  
+++      Log(Database db) throws HsqlException {
+++  
+++--- 126,143 ----
+++   */
+++  public class Log {
+++  
+++!     public HsqlDatabaseProperties properties;
+++!     public String                 fileName;
+++!     public Database               database;
+++!     public FileAccess             fa;
+++!     public ScriptWriterBase       dbLogWriter;
+++!     public String                 scriptFileName;
+++!     public String                 logFileName;
+++!     public boolean                filesReadOnly;
+++!     public long                   maxLogSize;
+++!     public int                    writeDelay;
+++!     public int                    scriptFormat;
+++!     public DataFileCache          cache;
+++  
+++      Log(Database db) throws HsqlException {
+++  
+++***************
+++*** 614,620 ****
+++       * Wrappers for openning-starting / stoping-closing the log file and
+++       * writer.
+++       */
+++!     private void openLog() throws HsqlException {
+++  
+++          if (filesReadOnly) {
+++              return;
+++--- 614,620 ----
+++       * Wrappers for openning-starting / stoping-closing the log file and
+++       * writer.
+++       */
+++!     public void openLog() throws HsqlException {
+++  
+++          if (filesReadOnly) {
+++              return;
+++***************
+++*** 632,638 ****
+++          }
+++      }
+++  
+++!     private synchronized void closeLog() throws HsqlException {
+++  
+++          if (dbLogWriter != null) {
+++              dbLogWriter.close();
+++--- 632,638 ----
+++          }
+++      }
+++  
+++!     public synchronized void closeLog() throws HsqlException {
+++  
+++          if (dbLogWriter != null) {
+++              dbLogWriter.close();
+++***************
+++*** 642,648 ****
+++      /**
+++       * Write the .script file as .script.new.
+++       */
+++!     private void writeScript(boolean full) throws HsqlException {
+++  
+++          deleteNewScript();
+++  
+++--- 642,648 ----
+++      /**
+++       * Write the .script file as .script.new.
+++       */
+++!     public void writeScript(boolean full) throws HsqlException {
+++  
+++          deleteNewScript();
+++  
+++***************
+++*** 657,663 ****
+++      /**
+++       * Performs all the commands in the .script file.
+++       */
+++!     private void processScript() throws HsqlException {
+++  
+++          ScriptReaderBase scr = null;
+++  
+++--- 657,663 ----
+++      /**
+++       * Performs all the commands in the .script file.
+++       */
+++!     public void processScript() throws HsqlException {
+++  
+++          ScriptReaderBase scr = null;
+++  
+++***************
+++*** 700,706 ****
+++      /**
+++       * Defrag large data files when the sum of .log and .data files is large.
+++       */
+++!     private void processDataFile() throws HsqlException {
+++  
+++          if (cache == null || filesReadOnly || database.isStoredFileAccess()
+++                  || !fa.isStreamElement(logFileName)) {
+++--- 700,706 ----
+++      /**
+++       * Defrag large data files when the sum of .log and .data files is large.
+++       */
+++!     public void processDataFile() throws HsqlException {
+++  
+++          if (cache == null || filesReadOnly || database.isStoredFileAccess()
+++                  || !fa.isStreamElement(logFileName)) {
+++***************
+++*** 719,725 ****
+++      /**
+++       * Performs all the commands in the .log file.
+++       */
+++!     private void processLog() throws HsqlException {
+++  
+++          if (!database.isFilesInJar() && fa.isStreamElement(logFileName)) {
+++              ScriptRunner.runScript(database, logFileName,
+++--- 719,725 ----
+++      /**
+++       * Performs all the commands in the .log file.
+++       */
+++!     public void processLog() throws HsqlException {
+++  
+++          if (!database.isFilesInJar() && fa.isStreamElement(logFileName)) {
+++              ScriptRunner.runScript(database, logFileName,
+++***************
+++*** 730,736 ****
+++      /**
+++       * Restores a compressed backup or the .data file.
+++       */
+++!     private void restoreBackup() throws HsqlException {
+++  
+++          // in case data file cannot be deleted, reset it
+++          DataFileCache.deleteOrResetFreePos(database, fileName + ".data");
+++--- 730,736 ----
+++      /**
+++       * Restores a compressed backup or the .data file.
+++       */
+++!     public void restoreBackup() throws HsqlException {
+++  
+++          // in case data file cannot be deleted, reset it
+++          DataFileCache.deleteOrResetFreePos(database, fileName + ".data");
+++***************
+++*** 748,754 ****
+++      }
+++  
+++  // fredt@users 20020221 - patch 513005 by sqlbob@users (RMP) - text tables
+++!     private HashMap textCacheList = new HashMap();
+++  
+++      DataFileCache openTextCache(Table table, String source,
+++                                  boolean readOnlyData,
+++--- 748,754 ----
+++      }
+++  
+++  // fredt@users 20020221 - patch 513005 by sqlbob@users (RMP) - text tables
+++!     public HashMap textCacheList = new HashMap();
+++  
+++      DataFileCache openTextCache(Table table, String source,
+++                                  boolean readOnlyData,
+++***************
+++*** 796,802 ****
+++          }
+++      }
+++  
+++!     private void closeAllTextCaches(boolean compact) throws HsqlException {
+++  
+++          Iterator it = textCacheList.values().iterator();
+++  
+++--- 796,802 ----
+++          }
+++      }
+++  
+++!     public void closeAllTextCaches(boolean compact) throws HsqlException {
+++  
+++          Iterator it = textCacheList.values().iterator();
+++  
+++***************
+++*** 809,815 ****
+++          }
+++      }
+++  
+++!     private void reopenAllTextCaches() throws HsqlException {
+++  
+++          Iterator it = textCacheList.values().iterator();
+++  
+++--- 809,815 ----
+++          }
+++      }
+++  
+++!     public void reopenAllTextCaches() throws HsqlException {
+++  
+++          Iterator it = textCacheList.values().iterator();
+++  
+++***************
+++*** 818,824 ****
+++          }
+++      }
+++  
+++!     private boolean isAnyTextCacheModified() {
+++  
+++          Iterator it = textCacheList.values().iterator();
+++  
+++--- 818,824 ----
+++          }
+++      }
+++  
+++!     public boolean isAnyTextCacheModified() {
+++  
+++          Iterator it = textCacheList.values().iterator();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/persist/NIOLockFile.java hsqldb/src/org/hsqldb/persist/NIOLockFile.java
+++*** hsqldb-old/src/org/hsqldb/persist/NIOLockFile.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/NIOLockFile.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 61,73 ****
+++       * The <code>fc</code> attribute is used to obtain this object's
+++       * {@link #fl FileLock} attribute.
+++       */
+++!     private FileChannel fc;
+++  
+++      /**
+++       * The <code>FileLock</code> object used to lock this object's
+++       * lock file.
+++       */
+++!     private FileLock fl;
+++  
+++      /**
+++       * Tries to obtain a valid NIO lock upon this object's lock file using
+++--- 61,73 ----
+++       * The <code>fc</code> attribute is used to obtain this object's
+++       * {@link #fl FileLock} attribute.
+++       */
+++!     public FileChannel fc;
+++  
+++      /**
+++       * The <code>FileLock</code> object used to lock this object's
+++       * lock file.
+++       */
+++!     public FileLock fl;
+++  
+++      /**
+++       * Tries to obtain a valid NIO lock upon this object's lock file using
+++***************
+++*** 77,83 ****
+++       * @throws Exception if an error occurs while attempting to obtain the lock
+++       *
+++       */
+++!     protected boolean lockImpl() throws Exception {
+++  
+++          boolean isValid;
+++  
+++--- 77,83 ----
+++       * @throws Exception if an error occurs while attempting to obtain the lock
+++       *
+++       */
+++!     public boolean lockImpl() throws Exception {
+++  
+++          boolean isValid;
+++  
+++***************
+++*** 154,160 ****
+++       * @return true if a valid lock is released, else false
+++       * @throws Exception if na error occurs while attempting to release the lock
+++       */
+++!     protected boolean releaseImpl() throws Exception {
+++  
+++          // PRE: we know that this method is only called
+++          // if isLocked() is true.
+++--- 154,160 ----
+++       * @return true if a valid lock is released, else false
+++       * @throws Exception if na error occurs while attempting to release the lock
+++       */
+++!     public boolean releaseImpl() throws Exception {
+++  
+++          // PRE: we know that this method is only called
+++          // if isLocked() is true.
+++***************
+++*** 200,206 ****
+++       * Retrieves the String value: "fl =" + fl
+++       * @return the String value: "fl =" + fl
+++       */
+++!     protected String toStringImpl() {
+++          return "fl =" + fl;
+++      }
+++  }
+++--- 200,206 ----
+++       * Retrieves the String value: "fl =" + fl
+++       * @return the String value: "fl =" + fl
+++       */
+++!     public String toStringImpl() {
+++          return "fl =" + fl;
+++      }
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/persist/ScaledRAFileHybrid.java hsqldb/src/org/hsqldb/persist/ScaledRAFileHybrid.java
+++*** hsqldb-old/src/org/hsqldb/persist/ScaledRAFileHybrid.java	2006-09-22 15:14:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/ScaledRAFileHybrid.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 147,153 ****
+++          return null;
+++      }
+++  
+++!     private void checkLength(int length) throws IOException {
+++  
+++          if (store.canAccess(length)) {
+++              return;
+++--- 147,153 ----
+++          return null;
+++      }
+++  
+++!     public void checkLength(int length) throws IOException {
+++  
+++          if (store.canAccess(length)) {
+++              return;
+++***************
+++*** 156,162 ****
+++          newStore(store.getFilePointer() + length);
+++      }
+++  
+++!     private void checkSeek(long position) throws IOException {
+++  
+++          if (store.canSeek(position)) {
+++              return;
+++--- 156,162 ----
+++          newStore(store.getFilePointer() + length);
+++      }
+++  
+++!     public void checkSeek(long position) throws IOException {
+++  
+++          if (store.canSeek(position)) {
+++              return;
+++diff -crN hsqldb-old/src/org/hsqldb/persist/ScaledRAFileInJar.java hsqldb/src/org/hsqldb/persist/ScaledRAFileInJar.java
+++*** hsqldb-old/src/org/hsqldb/persist/ScaledRAFileInJar.java	2006-07-27 22:04:30.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/ScaledRAFileInJar.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 92,98 ****
+++          return seekPosition;
+++      }
+++  
+++!     private void readIntoBuffer() throws IOException {
+++  
+++          long filePos = seekPosition;
+++  
+++--- 92,98 ----
+++          return seekPosition;
+++      }
+++  
+++!     public void readIntoBuffer() throws IOException {
+++  
+++          long filePos = seekPosition;
+++  
+++***************
+++*** 206,212 ****
+++          return false;
+++      }
+++  
+++!     private void resetStream() throws IOException {
+++  
+++          if (file != null) {
+++              file.close();
+++--- 206,212 ----
+++          return false;
+++      }
+++  
+++!     public void resetStream() throws IOException {
+++  
+++          if (file != null) {
+++              file.close();
+++***************
+++*** 217,223 ****
+++          file = new DataInputStream(fis);
+++      }
+++  
+++!     private void fileSeek(long position) throws IOException {
+++  
+++          long skipPosition = realPosition;
+++  
+++--- 217,223 ----
+++          file = new DataInputStream(fis);
+++      }
+++  
+++!     public void fileSeek(long position) throws IOException {
+++  
+++          long skipPosition = realPosition;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/persist/ScaledRAFile.java hsqldb/src/org/hsqldb/persist/ScaledRAFile.java
+++*** hsqldb-old/src/org/hsqldb/persist/ScaledRAFile.java	2007-10-22 07:53:38.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/ScaledRAFile.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 64,70 ****
+++      //
+++      final SimpleLog                appLog;
+++      final RandomAccessFile         file;
+++!     private final boolean          readOnly;
+++      final String                   fileName;
+++      boolean                        isNio;
+++      boolean                        bufferDirty = true;
+++--- 64,70 ----
+++      //
+++      final SimpleLog                appLog;
+++      final RandomAccessFile         file;
+++!     public final boolean          readOnly;
+++      final String                   fileName;
+++      boolean                        isNio;
+++      boolean                        bufferDirty = true;
+++***************
+++*** 227,233 ****
+++          return seekPosition;
+++      }
+++  
+++!     private void readIntoBuffer() throws IOException {
+++  
+++          long filePos    = seekPosition;
+++          long subOffset  = filePos % buffer.length;
+++--- 227,233 ----
+++          return seekPosition;
+++      }
+++  
+++!     public void readIntoBuffer() throws IOException {
+++  
+++          long filePos    = seekPosition;
+++          long subOffset  = filePos % buffer.length;
+++***************
+++*** 509,515 ****
+++          return null;
+++      }
+++  
+++!     private void resetPointer() {
+++  
+++          try {
+++              bufferDirty = true;
+++--- 509,515 ----
+++          return null;
+++      }
+++  
+++!     public void resetPointer() {
+++  
+++          try {
+++              bufferDirty = true;
+++diff -crN hsqldb-old/src/org/hsqldb/persist/ScaledRAFileNIO.java hsqldb/src/org/hsqldb/persist/ScaledRAFileNIO.java
+++*** hsqldb-old/src/org/hsqldb/persist/ScaledRAFileNIO.java	2006-09-22 15:14:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/ScaledRAFileNIO.java	2007-11-04 00:14:10.000000000 +0100
+++***************
+++*** 54,67 ****
+++   */
+++  class ScaledRAFileNIO implements ScaledRAInterface {
+++  
+++!     private final boolean       readOnly;
+++!     private final long          bufferLength;
+++!     private RandomAccessFile    file;
+++!     private MappedByteBuffer    buffer;
+++!     private FileChannel         channel;
+++!     private boolean             bufferModified;
+++!     private SimpleLog           appLog;
+++!     private final static String JVM_ERROR = "JVM threw unsupported Exception";
+++  
+++      ScaledRAFileNIO(Database database, String name, boolean readOnly,
+++                      int bufferLength) throws Throwable {
+++--- 54,67 ----
+++   */
+++  class ScaledRAFileNIO implements ScaledRAInterface {
+++  
+++!     public final boolean       readOnly;
+++!     public final long          bufferLength;
+++!     public RandomAccessFile    file;
+++!     public MappedByteBuffer    buffer;
+++!     public FileChannel         channel;
+++!     public boolean             bufferModified;
+++!     public SimpleLog           appLog;
+++!     public final static String JVM_ERROR = "JVM threw unsupported Exception";
+++  
+++      ScaledRAFileNIO(Database database, String name, boolean readOnly,
+++                      int bufferLength) throws Throwable {
+++diff -crN hsqldb-old/src/org/hsqldb/persist/TextCache.java hsqldb/src/org/hsqldb/persist/TextCache.java
+++*** hsqldb-old/src/org/hsqldb/persist/TextCache.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/persist/TextCache.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 75,83 ****
+++      public boolean             isQuoted;
+++      public boolean             isAllQuoted;
+++      public boolean             ignoreFirst;
+++!     protected String           header;
+++!     protected Table            table;
+++!     private ObjectCacheHashMap uncommittedCache;
+++  
+++      //
+++      final static char DOUBLE_QUOTE_CHAR = '\"';
+++--- 75,83 ----
+++      public boolean             isQuoted;
+++      public boolean             isAllQuoted;
+++      public boolean             ignoreFirst;
+++!     public String           header;
+++!     public Table            table;
+++!     public ObjectCacheHashMap uncommittedCache;
+++  
+++      //
+++      final static char DOUBLE_QUOTE_CHAR = '\"';
+++***************
+++*** 105,111 ****
+++          uncommittedCache = new ObjectCacheHashMap(5);
+++      }
+++  
+++!     protected void initParams(Database database,
+++                                String baseFileName) throws HsqlException {
+++  
+++          fileName      = baseFileName;
+++--- 105,111 ----
+++          uncommittedCache = new ObjectCacheHashMap(5);
+++      }
+++  
+++!     public void initParams(Database database,
+++                                String baseFileName) throws HsqlException {
+++  
+++          fileName      = baseFileName;
+++***************
+++*** 186,192 ****
+++          cacheFileScale   = 1;
+++      }
+++  
+++!     protected void initBuffers() {
+++  
+++          if (isQuoted || isAllQuoted) {
+++              rowIn = new RowInputTextQuoted(fs, vs, lvs, isAllQuoted);
+++--- 186,192 ----
+++          cacheFileScale   = 1;
+++      }
+++  
+++!     public void initBuffers() {
+++  
+++          if (isQuoted || isAllQuoted) {
+++              rowIn = new RowInputTextQuoted(fs, vs, lvs, isAllQuoted);
+++***************
+++*** 198,204 ****
+++          }
+++      }
+++  
+++!     private String translateSep(String sep) {
+++          return translateSep(sep, false);
+++      }
+++  
+++--- 198,204 ----
+++          }
+++      }
+++  
+++!     public String translateSep(String sep) {
+++          return translateSep(sep, false);
+++      }
+++  
+++***************
+++*** 206,212 ****
+++       * Translates the escaped characters in a separator string and returns
+++       * the non-escaped string.
+++       */
+++!     private String translateSep(String sep, boolean isProperty) {
+++  
+++          if (sep == null) {
+++              return (null);
+++--- 206,212 ----
+++       * Translates the escaped characters in a separator string and returns
+++       * the non-escaped string.
+++       */
+++!     public String translateSep(String sep, boolean isProperty) {
+++  
+++          if (sep == null) {
+++              return (null);
+++***************
+++*** 402,408 ****
+++          release(pos);
+++      }
+++  
+++!     private void clearRowImage(CachedObject row) throws IOException {
+++  
+++          int length = row.getStorageSize()
+++                       - ScriptWriterText.BYTES_LINE_SEP.length;
+++--- 402,408 ----
+++          release(pos);
+++      }
+++  
+++!     public void clearRowImage(CachedObject row) throws IOException {
+++  
+++          int length = row.getStorageSize()
+++                       - ScriptWriterText.BYTES_LINE_SEP.length;
+++***************
+++*** 431,437 ****
+++          clearRowImage(row);
+++      }
+++  
+++!     protected synchronized RowInputInterface readObject(int pos)
+++      throws IOException {
+++  
+++          ByteArray buffer   = new ByteArray(80);
+++--- 431,437 ----
+++          clearRowImage(row);
+++      }
+++  
+++!     public synchronized RowInputInterface readObject(int pos)
+++      throws IOException {
+++  
+++          ByteArray buffer   = new ByteArray(80);
+++***************
+++*** 669,675 ****
+++       * uncommitted cache until such time that they are committed or rolled
+++       * back- fredt
+++       */
+++!     protected synchronized void saveRows(CachedObject[] rows, int offset,
+++                                           int count) throws IOException {
+++  
+++          if (count == 0) {
+++--- 669,675 ----
+++       * uncommitted cache until such time that they are committed or rolled
+++       * back- fredt
+++       */
+++!     public synchronized void saveRows(CachedObject[] rows, int offset,
+++                                           int count) throws IOException {
+++  
+++          if (count == 0) {
+++***************
+++*** 717,723 ****
+++          throw Trace.error(Trace.TEXT_TABLE_HEADER);
+++      }
+++  
+++!     private void writeHeader(String header) throws IOException {
+++  
+++          byte[] buf       = null;
+++          String firstLine = header + NL;
+++--- 717,723 ----
+++          throw Trace.error(Trace.TEXT_TABLE_HEADER);
+++      }
+++  
+++!     public void writeHeader(String header) throws IOException {
+++  
+++          byte[] buf       = null;
+++          String firstLine = header + NL;
+++***************
+++*** 733,742 ****
+++          fileFreePosition = buf.length;
+++      }
+++  
+++!     private class ByteArray {
+++  
+++!         private byte[] buffer;
+++!         private int    buflen;
+++  
+++          public ByteArray(int n) {
+++              buffer = new byte[n];
+++--- 733,742 ----
+++          fileFreePosition = buf.length;
+++      }
+++  
+++!     public class ByteArray {
+++  
+++!         public byte[] buffer;
+++!         public int    buflen;
+++  
+++          public ByteArray(int n) {
+++              buffer = new byte[n];
+++***************
+++*** 780,786 ****
+++          return ((RowInputText) rowIn).getLineNumber();
+++      }
+++  
+++!     protected void setFileModified() throws IOException {
+++          fileModified = true;
+++      }
+++  }
+++--- 780,786 ----
+++          return ((RowInputText) rowIn).getLineNumber();
+++      }
+++  
+++!     public void setFileModified() throws IOException {
+++          fileModified = true;
+++      }
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/PointerNode.java hsqldb/src/org/hsqldb/PointerNode.java
+++*** hsqldb-old/src/org/hsqldb/PointerNode.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/PointerNode.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 87,94 ****
+++  class PointerNode extends BaseMemoryNode {
+++  
+++      int           iData = NO_POS;
+++!     private Table tTable;
+++!     private Node  nPrimary;    // node of key / primary index for this row
+++  
+++      PointerNode(CachedRow r, int id) {
+++  
+++--- 87,94 ----
+++  class PointerNode extends BaseMemoryNode {
+++  
+++      int           iData = NO_POS;
+++!     public Table tTable;
+++!     public Node  nPrimary;    // node of key / primary index for this row
+++  
+++      PointerNode(CachedRow r, int id) {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/resources/BundleHandler.java hsqldb/src/org/hsqldb/resources/BundleHandler.java
+++*** hsqldb-old/src/org/hsqldb/resources/BundleHandler.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/resources/BundleHandler.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 58,85 ****
+++  public final class BundleHandler {
+++  
+++      /** Used to synchronize access */
+++!     private static final Object mutex = new Object();
+++  
+++      /** The Locale used internally to fetch resource bundles. */
+++!     private static Locale locale = Locale.getDefault();
+++  
+++      /** Map:  Integer object handle => <code>ResourceBundle</code> object. */
+++!     private static HashMap bundleHandleMap = new HashMap();
+++  
+++      /** List whose elements are <code>ResourceBundle</code> objects */
+++!     private static HsqlArrayList bundleList = new HsqlArrayList();
+++  
+++      /**
+++       * The resource path prefix of the <code>ResourceBundle</code> objects
+++       * handled by this class.
+++       */
+++!     private static final String prefix = "org/hsqldb/resources/";
+++  
+++      /** JDK 1.1 compliance */
+++!     private static final Method newGetBundleMethod = getNewGetBundleMethod();
+++  
+++      /** Pure utility class: external construction disabled. */
+++!     private BundleHandler() {}
+++  
+++      /**
+++       * Getter for property locale. <p>
+++--- 58,85 ----
+++  public final class BundleHandler {
+++  
+++      /** Used to synchronize access */
+++!     public static final Object mutex = new Object();
+++  
+++      /** The Locale used internally to fetch resource bundles. */
+++!     public static Locale locale = Locale.getDefault();
+++  
+++      /** Map:  Integer object handle => <code>ResourceBundle</code> object. */
+++!     public static HashMap bundleHandleMap = new HashMap();
+++  
+++      /** List whose elements are <code>ResourceBundle</code> objects */
+++!     public static HsqlArrayList bundleList = new HsqlArrayList();
+++  
+++      /**
+++       * The resource path prefix of the <code>ResourceBundle</code> objects
+++       * handled by this class.
+++       */
+++!     public static final String prefix = "org/hsqldb/resources/";
+++  
+++      /** JDK 1.1 compliance */
+++!     public static final Method newGetBundleMethod = getNewGetBundleMethod();
+++  
+++      /** Pure utility class: external construction disabled. */
+++!     public BundleHandler() {}
+++  
+++      /**
+++       * Getter for property locale. <p>
+++***************
+++*** 197,203 ****
+++       * One-shot initialization of JDK 1.2+ ResourceBundle.getBundle() method
+++       * having ClassLoader in the signature.
+++       */
+++!     private static Method getNewGetBundleMethod() {
+++  
+++          Class   clazz;
+++          Class[] args;
+++--- 197,203 ----
+++       * One-shot initialization of JDK 1.2+ ResourceBundle.getBundle() method
+++       * having ClassLoader in the signature.
+++       */
+++!     public static Method getNewGetBundleMethod() {
+++  
+++          Class   clazz;
+++          Class[] args;
+++diff -crN hsqldb-old/src/org/hsqldb/ResultBase.java hsqldb/src/org/hsqldb/ResultBase.java
+++*** hsqldb-old/src/org/hsqldb/ResultBase.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/ResultBase.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 41,48 ****
+++  public class ResultBase {
+++  
+++      public Record    rRoot;
+++!     protected Record rTail;
+++!     protected int    iSize;
+++  
+++      public ResultBase() {}
+++  
+++--- 41,48 ----
+++  public class ResultBase {
+++  
+++      public Record    rRoot;
+++!     public Record rTail;
+++!     public int    iSize;
+++  
+++      public ResultBase() {}
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/Result.java hsqldb/src/org/hsqldb/Result.java
+++*** hsqldb-old/src/org/hsqldb/Result.java	2006-09-24 17:37:58.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Result.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 102,112 ****
+++  
+++      // record list
+++      public Record  rRoot;
+++!     private Record rTail;
+++!     private int    size;
+++  
+++      // transient - number of significant columns
+++!     private int significantColumns;
+++  
+++      // type of result
+++      public int mode;
+++--- 102,112 ----
+++  
+++      // record list
+++      public Record  rRoot;
+++!     public Record rTail;
+++!     public int    size;
+++  
+++      // transient - number of significant columns
+++!     public int significantColumns;
+++  
+++      // type of result
+++      public int mode;
+++***************
+++*** 126,132 ****
+++      String subSubString;
+++  
+++      // the exception if this is an error
+++!     private Throwable exception;
+++  
+++      // prepared statement id / error vendor code
+++      int statementID;
+++--- 126,132 ----
+++      String subSubString;
+++  
+++      // the exception if this is an error
+++!     public Throwable exception;
+++  
+++      // prepared statement id / error vendor code
+++      int statementID;
+++***************
+++*** 174,180 ****
+++           *
+++           * @param  columns
+++           */
+++!         private void prepareData(int columns) {
+++  
+++              colLabels     = new String[columns];
+++              tableNames    = new String[columns];
+++--- 174,180 ----
+++           *
+++           * @param  columns
+++           */
+++!         public void prepareData(int columns) {
+++  
+++              colLabels     = new String[columns];
+++              tableNames    = new String[columns];
+++***************
+++*** 200,213 ****
+++                     && colNames[i] != null && colNames[i].length() > 0;
+++          }
+++  
+++!         private void decodeTableColumnAttrs(int in, int i) {
+++  
+++              colNullable[i] = in & 0x0000000f;
+++              isIdentity[i]  = (in & 0x00000010) != 0;
+++              isWritable[i]  = (in & 0x00000020) != 0;
+++          }
+++  
+++!         private void writeTableColumnAttrs(RowOutputBinary out,
+++                                             int i)
+++                                             throws IOException, HsqlException {
+++  
+++--- 200,213 ----
+++                     && colNames[i] != null && colNames[i].length() > 0;
+++          }
+++  
+++!         public void decodeTableColumnAttrs(int in, int i) {
+++  
+++              colNullable[i] = in & 0x0000000f;
+++              isIdentity[i]  = (in & 0x00000010) != 0;
+++              isWritable[i]  = (in & 0x00000020) != 0;
+++          }
+++  
+++!         public void writeTableColumnAttrs(RowOutputBinary out,
+++                                             int i)
+++                                             throws IOException, HsqlException {
+++  
+++***************
+++*** 255,261 ****
+++                                                     : schemaNames[i]);
+++          }
+++  
+++!         private int encodeTableColumnAttrs(int i) {
+++  
+++              int out = colNullable[i];    // always between 0x00 and 0x02
+++  
+++--- 255,261 ----
+++                                                     : schemaNames[i]);
+++          }
+++  
+++!         public int encodeTableColumnAttrs(int i) {
+++  
+++              int out = colNullable[i];    // always between 0x00 and 0x02
+++  
+++***************
+++*** 270,276 ****
+++              return out;
+++          }
+++  
+++!         private void readTableColumnAttrs(RowInputBinary in,
+++                                            int i)
+++                                            throws IOException, HsqlException {
+++  
+++--- 270,276 ----
+++              return out;
+++          }
+++  
+++!         public void readTableColumnAttrs(RowInputBinary in,
+++                                            int i)
+++                                            throws IOException, HsqlException {
+++  
+++***************
+++*** 1082,1088 ****
+++       * @return -1, 0, +1
+++       * @throws  HsqlException
+++       */
+++!     private int compareRecord(Session session, Object[] a, final Object[] b,
+++                                final int[] order,
+++                                int[] way) throws HsqlException {
+++  
+++--- 1082,1088 ----
+++       * @return -1, 0, +1
+++       * @throws  HsqlException
+++       */
+++!     public int compareRecord(Session session, Object[] a, final Object[] b,
+++                                final int[] order,
+++                                int[] way) throws HsqlException {
+++  
+++***************
+++*** 1112,1118 ****
+++       * @return -1, 0, +1
+++       * @throws  HsqlException
+++       */
+++!     private int compareRecord(Session session, Object[] a, Object[] b,
+++                                int len) throws HsqlException {
+++  
+++          for (int j = 0; j < len; j++) {
+++--- 1112,1118 ----
+++       * @return -1, 0, +1
+++       * @throws  HsqlException
+++       */
+++!     public int compareRecord(Session session, Object[] a, Object[] b,
+++                                int len) throws HsqlException {
+++  
+++          for (int j = 0; j < len; j++) {
+++***************
+++*** 1306,1312 ****
+++          }
+++      }
+++  
+++!     private void writeMulti(RowOutputBinary out)
+++      throws IOException, HsqlException {
+++  
+++          int startPos = out.size();
+++--- 1306,1312 ----
+++          }
+++      }
+++  
+++!     public void writeMulti(RowOutputBinary out)
+++      throws IOException, HsqlException {
+++  
+++          int startPos = out.size();
+++***************
+++*** 1502,1508 ****
+++          return new ResultIterator();
+++      }
+++  
+++!     private class ResultIterator implements Iterator {
+++  
+++          boolean removed;
+++          int     counter;
+++--- 1502,1508 ----
+++          return new ResultIterator();
+++      }
+++  
+++!     public class ResultIterator implements Iterator {
+++  
+++          boolean removed;
+++          int     counter;
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowInputBase.java hsqldb/src/org/hsqldb/rowio/RowInputBase.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowInputBase.java	2006-01-08 21:14:14.000000000 +0100
+++--- hsqldb/src/org/hsqldb/rowio/RowInputBase.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 58,65 ****
+++      static final int NO_POS = -1;
+++  
+++      // fredt - initialisation may be unnecessary as it's done in resetRow()
+++!     protected int filePos = NO_POS;
+++!     protected int size;
+++  
+++      public RowInputBase() {
+++          this(new byte[4]);
+++--- 58,65 ----
+++      static final int NO_POS = -1;
+++  
+++      // fredt - initialisation may be unnecessary as it's done in resetRow()
+++!     public int filePos = NO_POS;
+++!     public int size;
+++  
+++      public RowInputBase() {
+++          this(new byte[4]);
+++***************
+++*** 99,135 ****
+++      public abstract String readString() throws IOException;
+++  
+++  // fredt@users - comment - methods used for SQL types
+++!     protected abstract boolean checkNull() throws IOException;
+++  
+++!     protected abstract String readChar(int type)
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract Integer readSmallint()
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract Integer readInteger()
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract Long readBigint() throws IOException, HsqlException;
+++  
+++!     protected abstract Double readReal(int type)
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract BigDecimal readDecimal()
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract Boolean readBit() throws IOException, HsqlException;
+++  
+++!     protected abstract Time readTime() throws IOException, HsqlException;
+++  
+++!     protected abstract Date readDate() throws IOException, HsqlException;
+++  
+++!     protected abstract Timestamp readTimestamp()
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract Object readOther() throws IOException, HsqlException;
+++  
+++!     protected abstract Binary readBinary(int type)
+++      throws IOException, HsqlException;
+++  
+++      /**
+++--- 99,135 ----
+++      public abstract String readString() throws IOException;
+++  
+++  // fredt@users - comment - methods used for SQL types
+++!     public abstract boolean checkNull() throws IOException;
+++  
+++!     public abstract String readChar(int type)
+++      throws IOException, HsqlException;
+++  
+++!     public abstract Integer readSmallint()
+++      throws IOException, HsqlException;
+++  
+++!     public abstract Integer readInteger()
+++      throws IOException, HsqlException;
+++  
+++!     public abstract Long readBigint() throws IOException, HsqlException;
+++  
+++!     public abstract Double readReal(int type)
+++      throws IOException, HsqlException;
+++  
+++!     public abstract BigDecimal readDecimal()
+++      throws IOException, HsqlException;
+++  
+++!     public abstract Boolean readBit() throws IOException, HsqlException;
+++  
+++!     public abstract Time readTime() throws IOException, HsqlException;
+++  
+++!     public abstract Date readDate() throws IOException, HsqlException;
+++  
+++!     public abstract Timestamp readTimestamp()
+++      throws IOException, HsqlException;
+++  
+++!     public abstract Object readOther() throws IOException, HsqlException;
+++  
+++!     public abstract Binary readBinary(int type)
+++      throws IOException, HsqlException;
+++  
+++      /**
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowInputBinary.java hsqldb/src/org/hsqldb/rowio/RowInputBinary.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowInputBinary.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowInputBinary.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 58,64 ****
+++  public class RowInputBinary extends RowInputBase
+++  implements org.hsqldb.rowio.RowInputInterface {
+++  
+++!     private RowOutputBinary out;
+++  
+++      public RowInputBinary() {
+++          super();
+++--- 58,64 ----
+++  public class RowInputBinary extends RowInputBase
+++  implements org.hsqldb.rowio.RowInputInterface {
+++  
+++!     public RowOutputBinary out;
+++  
+++      public RowInputBinary() {
+++          super();
+++***************
+++*** 79,85 ****
+++          this.out = out;
+++      }
+++  
+++!     protected byte[] readByteArray() throws IOException {
+++  
+++          byte[] b = new byte[readInt()];
+++  
+++--- 79,85 ----
+++          this.out = out;
+++      }
+++  
+++!     public byte[] readByteArray() throws IOException {
+++  
+++          byte[] b = new byte[readInt()];
+++  
+++***************
+++*** 115,121 ****
+++          return s;
+++      }
+++  
+++!     protected boolean checkNull() throws IOException {
+++  
+++          int b = readByte();
+++  
+++--- 115,121 ----
+++          return s;
+++      }
+++  
+++!     public boolean checkNull() throws IOException {
+++  
+++          int b = readByte();
+++  
+++***************
+++*** 123,149 ****
+++                        : false;
+++      }
+++  
+++!     protected String readChar(int type) throws IOException {
+++          return readString();
+++      }
+++  
+++!     protected Integer readSmallint() throws IOException, HsqlException {
+++          return ValuePool.getInt(readShort());
+++      }
+++  
+++!     protected Integer readInteger() throws IOException, HsqlException {
+++          return ValuePool.getInt(readInt());
+++      }
+++  
+++!     protected Long readBigint() throws IOException, HsqlException {
+++          return ValuePool.getLong(readLong());
+++      }
+++  
+++!     protected Double readReal(int type) throws IOException, HsqlException {
+++          return ValuePool.getDouble(readLong());
+++      }
+++  
+++!     protected BigDecimal readDecimal() throws IOException, HsqlException {
+++  
+++          byte[]     bytes  = readByteArray();
+++          int        scale  = readInt();
+++--- 123,149 ----
+++                        : false;
+++      }
+++  
+++!     public String readChar(int type) throws IOException {
+++          return readString();
+++      }
+++  
+++!     public Integer readSmallint() throws IOException, HsqlException {
+++          return ValuePool.getInt(readShort());
+++      }
+++  
+++!     public Integer readInteger() throws IOException, HsqlException {
+++          return ValuePool.getInt(readInt());
+++      }
+++  
+++!     public Long readBigint() throws IOException, HsqlException {
+++          return ValuePool.getLong(readLong());
+++      }
+++  
+++!     public Double readReal(int type) throws IOException, HsqlException {
+++          return ValuePool.getDouble(readLong());
+++      }
+++  
+++!     public BigDecimal readDecimal() throws IOException, HsqlException {
+++  
+++          byte[]     bytes  = readByteArray();
+++          int        scale  = readInt();
+++***************
+++*** 152,182 ****
+++          return ValuePool.getBigDecimal(new BigDecimal(bigint, scale));
+++      }
+++  
+++!     protected Boolean readBit() throws IOException, HsqlException {
+++          return readBoolean() ? Boolean.TRUE
+++                               : Boolean.FALSE;
+++      }
+++  
+++!     protected Time readTime() throws IOException, HsqlException {
+++          return new Time(HsqlDateTime.getNormalisedTime(readLong()));
+++      }
+++  
+++!     protected Date readDate() throws IOException, HsqlException {
+++  
+++          long date = HsqlDateTime.getNormalisedDate(readLong());
+++  
+++          return ValuePool.getDate(date);
+++      }
+++  
+++!     protected Timestamp readTimestamp() throws IOException, HsqlException {
+++          return HsqlDateTime.timestampValue(readLong(), readInt());
+++      }
+++  
+++!     protected Object readOther() throws IOException, HsqlException {
+++          return new JavaObject(readByteArray());
+++      }
+++  
+++!     protected Binary readBinary(int type) throws IOException, HsqlException {
+++          return new Binary(readByteArray(), false);
+++      }
+++  
+++--- 152,182 ----
+++          return ValuePool.getBigDecimal(new BigDecimal(bigint, scale));
+++      }
+++  
+++!     public Boolean readBit() throws IOException, HsqlException {
+++          return readBoolean() ? Boolean.TRUE
+++                               : Boolean.FALSE;
+++      }
+++  
+++!     public Time readTime() throws IOException, HsqlException {
+++          return new Time(HsqlDateTime.getNormalisedTime(readLong()));
+++      }
+++  
+++!     public Date readDate() throws IOException, HsqlException {
+++  
+++          long date = HsqlDateTime.getNormalisedDate(readLong());
+++  
+++          return ValuePool.getDate(date);
+++      }
+++  
+++!     public Timestamp readTimestamp() throws IOException, HsqlException {
+++          return HsqlDateTime.timestampValue(readLong(), readInt());
+++      }
+++  
+++!     public Object readOther() throws IOException, HsqlException {
+++          return new JavaObject(readByteArray());
+++      }
+++  
+++!     public Binary readBinary(int type) throws IOException, HsqlException {
+++          return new Binary(readByteArray(), false);
+++      }
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowInputText.java hsqldb/src/org/hsqldb/rowio/RowInputText.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowInputText.java	2007-06-11 12:12:30.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowInputText.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 55,75 ****
+++  public class RowInputText extends RowInputBase implements RowInputInterface {
+++  
+++      // text table specific
+++!     private String    fieldSep;
+++!     private String    varSep;
+++!     private String    longvarSep;
+++!     private int       fieldSepLen;
+++!     private int       varSepLen;
+++!     private int       longvarSepLen;
+++!     private boolean   fieldSepEnd;
+++!     private boolean   varSepEnd;
+++!     private boolean   longvarSepEnd;
+++!     private int       textLen;
+++!     protected String  text;
+++!     protected int     line;
+++!     protected int     field;
+++!     protected int     next = 0;
+++!     protected boolean allQuoted;
+++  
+++      /**
+++       * fredt@users - comment - in future may use a custom subclasse of
+++--- 55,75 ----
+++  public class RowInputText extends RowInputBase implements RowInputInterface {
+++  
+++      // text table specific
+++!     public String    fieldSep;
+++!     public String    varSep;
+++!     public String    longvarSep;
+++!     public int       fieldSepLen;
+++!     public int       varSepLen;
+++!     public int       longvarSepLen;
+++!     public boolean   fieldSepEnd;
+++!     public boolean   varSepEnd;
+++!     public boolean   longvarSepEnd;
+++!     public int       textLen;
+++!     public String  text;
+++!     public int     line;
+++!     public int     field;
+++!     public int     next = 0;
+++!     public boolean allQuoted;
+++  
+++      /**
+++       * fredt@users - comment - in future may use a custom subclasse of
+++***************
+++*** 120,126 ****
+++          field = 0;
+++      }
+++  
+++!     protected String getField(String sep, int sepLen,
+++                                boolean isEnd) throws IOException {
+++  
+++          String s = null;
+++--- 120,126 ----
+++          field = 0;
+++      }
+++  
+++!     public String getField(String sep, int sepLen,
+++                                boolean isEnd) throws IOException {
+++  
+++          String s = null;
+++***************
+++*** 172,182 ****
+++          return getField(fieldSep, fieldSepLen, fieldSepEnd);
+++      }
+++  
+++!     private String readVarString() throws IOException {
+++          return getField(varSep, varSepLen, varSepEnd);
+++      }
+++  
+++!     private String readLongVarString() throws IOException {
+++          return getField(longvarSep, longvarSepLen, longvarSepEnd);
+++      }
+++  
+++--- 172,182 ----
+++          return getField(fieldSep, fieldSepLen, fieldSepEnd);
+++      }
+++  
+++!     public String readVarString() throws IOException {
+++          return getField(varSep, varSepLen, varSepEnd);
+++      }
+++  
+++!     public String readLongVarString() throws IOException {
+++          return getField(longvarSep, longvarSepLen, longvarSepEnd);
+++      }
+++  
+++***************
+++*** 210,222 ****
+++          return 0;
+++      }
+++  
+++!     protected boolean checkNull() {
+++  
+++          // Return null on each column read instead.
+++          return false;
+++      }
+++  
+++!     protected String readChar(int type) throws IOException {
+++  
+++          switch (type) {
+++  
+++--- 210,222 ----
+++          return 0;
+++      }
+++  
+++!     public boolean checkNull() {
+++  
+++          // Return null on each column read instead.
+++          return false;
+++      }
+++  
+++!     public String readChar(int type) throws IOException {
+++  
+++          switch (type) {
+++  
+++***************
+++*** 233,239 ****
+++          }
+++      }
+++  
+++!     protected Integer readSmallint() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 233,239 ----
+++          }
+++      }
+++  
+++!     public Integer readSmallint() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 250,256 ****
+++          return Integer.valueOf(s);
+++      }
+++  
+++!     protected Integer readInteger() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 250,256 ----
+++          return Integer.valueOf(s);
+++      }
+++  
+++!     public Integer readInteger() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 267,273 ****
+++          return Integer.valueOf(s);
+++      }
+++  
+++!     protected Long readBigint() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 267,273 ----
+++          return Integer.valueOf(s);
+++      }
+++  
+++!     public Long readBigint() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 284,290 ****
+++          return Long.valueOf(s);
+++      }
+++  
+++!     protected Double readReal(int type) throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 284,290 ----
+++          return Long.valueOf(s);
+++      }
+++  
+++!     public Double readReal(int type) throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 301,307 ****
+++          return Double.valueOf(s);
+++      }
+++  
+++!     protected BigDecimal readDecimal() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 301,307 ----
+++          return Double.valueOf(s);
+++      }
+++  
+++!     public BigDecimal readDecimal() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 318,324 ****
+++          return new BigDecimal(s);
+++      }
+++  
+++!     protected Time readTime() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 318,324 ----
+++          return new BigDecimal(s);
+++      }
+++  
+++!     public Time readTime() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 335,341 ****
+++          return HsqlDateTime.timeValue(s);
+++      }
+++  
+++!     protected Date readDate() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 335,341 ----
+++          return HsqlDateTime.timeValue(s);
+++      }
+++  
+++!     public Date readDate() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 352,358 ****
+++          return HsqlDateTime.dateValue(s);
+++      }
+++  
+++!     protected Timestamp readTimestamp() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 352,358 ----
+++          return HsqlDateTime.dateValue(s);
+++      }
+++  
+++!     public Timestamp readTimestamp() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 369,375 ****
+++          return HsqlDateTime.timestampValue(s);
+++      }
+++  
+++!     protected Boolean readBit() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 369,375 ----
+++          return HsqlDateTime.timestampValue(s);
+++      }
+++  
+++!     public Boolean readBit() throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++***************
+++*** 387,393 ****
+++                                            : Boolean.FALSE;
+++      }
+++  
+++!     protected Object readOther() throws IOException, HsqlException {
+++  
+++          byte[] data;
+++          String s = readString();
+++--- 387,393 ----
+++                                            : Boolean.FALSE;
+++      }
+++  
+++!     public Object readOther() throws IOException, HsqlException {
+++  
+++          byte[] data;
+++          String s = readString();
+++***************
+++*** 407,413 ****
+++          return new JavaObject(data);
+++      }
+++  
+++!     protected Binary readBinary(int type) throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++--- 407,413 ----
+++          return new JavaObject(data);
+++      }
+++  
+++!     public Binary readBinary(int type) throws IOException, HsqlException {
+++  
+++          String s = readString();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowInputTextLog.java hsqldb/src/org/hsqldb/rowio/RowInputTextLog.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowInputTextLog.java	2007-06-21 15:27:52.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowInputTextLog.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 115,121 ****
+++          return schemaName;
+++      }
+++  
+++!     protected String readField() throws IOException {
+++  
+++          try {
+++              tokenizer.getString();
+++--- 115,121 ----
+++          return schemaName;
+++      }
+++  
+++!     public String readField() throws IOException {
+++  
+++          try {
+++              tokenizer.getString();
+++***************
+++*** 137,143 ****
+++          }
+++      }
+++  
+++!     protected String readNumberField() throws IOException {
+++  
+++          try {
+++              tokenizer.getString();
+++--- 137,143 ----
+++          }
+++      }
+++  
+++!     public String readNumberField() throws IOException {
+++  
+++          try {
+++              tokenizer.getString();
+++***************
+++*** 205,221 ****
+++          return 0;
+++      }
+++  
+++!     protected boolean checkNull() {
+++  
+++          // Return null on each column read instead.
+++          return false;
+++      }
+++  
+++!     protected String readChar(int type) throws IOException {
+++          return readString();
+++      }
+++  
+++!     protected Integer readSmallint() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++--- 205,221 ----
+++          return 0;
+++      }
+++  
+++!     public boolean checkNull() {
+++  
+++          // Return null on each column read instead.
+++          return false;
+++      }
+++  
+++!     public String readChar(int type) throws IOException {
+++          return readString();
+++      }
+++  
+++!     public Integer readSmallint() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++***************
+++*** 228,234 ****
+++          return ValuePool.getInt(i);
+++      }
+++  
+++!     protected Integer readInteger() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++--- 228,234 ----
+++          return ValuePool.getInt(i);
+++      }
+++  
+++!     public Integer readInteger() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++***************
+++*** 241,247 ****
+++          return ValuePool.getInt(i);
+++      }
+++  
+++!     protected Long readBigint() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++--- 241,247 ----
+++          return ValuePool.getInt(i);
+++      }
+++  
+++!     public Long readBigint() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++***************
+++*** 254,260 ****
+++          return ValuePool.getLong(i);
+++      }
+++  
+++!     protected Double readReal(int type) throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++--- 254,260 ----
+++          return ValuePool.getLong(i);
+++      }
+++  
+++!     public Double readReal(int type) throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++***************
+++*** 282,288 ****
+++          return ValuePool.getDouble(Double.doubleToLongBits(i));
+++      }
+++  
+++!     protected BigDecimal readDecimal() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++--- 282,288 ----
+++          return ValuePool.getDouble(Double.doubleToLongBits(i));
+++      }
+++  
+++!     public BigDecimal readDecimal() throws IOException, HsqlException {
+++  
+++          String s = readNumberField();
+++  
+++***************
+++*** 295,301 ****
+++          return ValuePool.getBigDecimal(i);
+++      }
+++  
+++!     protected Time readTime() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++--- 295,301 ----
+++          return ValuePool.getBigDecimal(i);
+++      }
+++  
+++!     public Time readTime() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++***************
+++*** 306,312 ****
+++          return HsqlDateTime.timeValue(s);
+++      }
+++  
+++!     protected Date readDate() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++--- 306,312 ----
+++          return HsqlDateTime.timeValue(s);
+++      }
+++  
+++!     public Date readDate() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++***************
+++*** 317,323 ****
+++          return HsqlDateTime.dateValue(s);
+++      }
+++  
+++!     protected Timestamp readTimestamp() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++--- 317,323 ----
+++          return HsqlDateTime.dateValue(s);
+++      }
+++  
+++!     public Timestamp readTimestamp() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++***************
+++*** 328,334 ****
+++          return HsqlDateTime.timestampValue(s);
+++      }
+++  
+++!     protected Boolean readBit() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++--- 328,334 ----
+++          return HsqlDateTime.timestampValue(s);
+++      }
+++  
+++!     public Boolean readBit() throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++***************
+++*** 340,346 ****
+++                                            : Boolean.FALSE;
+++      }
+++  
+++!     protected Object readOther() throws IOException, HsqlException {
+++  
+++          byte[] data;
+++          String s = readField();
+++--- 340,346 ----
+++                                            : Boolean.FALSE;
+++      }
+++  
+++!     public Object readOther() throws IOException, HsqlException {
+++  
+++          byte[] data;
+++          String s = readField();
+++***************
+++*** 354,360 ****
+++          return new JavaObject(data);
+++      }
+++  
+++!     protected Binary readBinary(int type) throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++--- 354,360 ----
+++          return new JavaObject(data);
+++      }
+++  
+++!     public Binary readBinary(int type) throws IOException, HsqlException {
+++  
+++          String s = readField();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowInputTextQuoted.java hsqldb/src/org/hsqldb/rowio/RowInputTextQuoted.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowInputTextQuoted.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowInputTextQuoted.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 46,55 ****
+++   */
+++  public class RowInputTextQuoted extends RowInputText {
+++  
+++!     private static final int NORMAL_FIELD   = 0;
+++!     private static final int NEED_END_QUOTE = 1;
+++!     private static final int FOUND_QUOTE    = 2;
+++!     private char[]           qtext;
+++  
+++      public RowInputTextQuoted(String fieldSep, String varSep,
+++                                String longvarSep, boolean allQuoted) {
+++--- 46,55 ----
+++   */
+++  public class RowInputTextQuoted extends RowInputText {
+++  
+++!     public static final int NORMAL_FIELD   = 0;
+++!     public static final int NEED_END_QUOTE = 1;
+++!     public static final int FOUND_QUOTE    = 2;
+++!     public char[]           qtext;
+++  
+++      public RowInputTextQuoted(String fieldSep, String varSep,
+++                                String longvarSep, boolean allQuoted) {
+++***************
+++*** 63,69 ****
+++          qtext = text.toCharArray();
+++      }
+++  
+++!     protected String getField(String sep, int sepLen,
+++                                boolean isEnd) throws IOException {
+++  
+++          //fredt - now the only supported behaviour is emptyIsNull
+++--- 63,69 ----
+++          qtext = text.toCharArray();
+++      }
+++  
+++!     public String getField(String sep, int sepLen,
+++                                boolean isEnd) throws IOException {
+++  
+++          //fredt - now the only supported behaviour is emptyIsNull
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowOutputBase.java hsqldb/src/org/hsqldb/rowio/RowOutputBase.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowOutputBase.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowOutputBase.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 62,68 ****
+++      public static final int CACHED_ROW_170 = 1;
+++  
+++      // the last column in a table is an ID that should not be written to file
+++!     protected boolean skipSystemId = false;
+++  
+++      /**
+++       *  Constructor used for persistent storage of a Table row
+++--- 62,68 ----
+++      public static final int CACHED_ROW_170 = 1;
+++  
+++      // the last column in a table is an ID that should not be written to file
+++!     public boolean skipSystemId = false;
+++  
+++      /**
+++       *  Constructor used for persistent storage of a Table row
+++***************
+++*** 107,141 ****
+++      public abstract void writeString(String s);
+++  
+++  // fredt@users - comment - methods used for writing each SQL type
+++!     protected void writeFieldPrefix() {}
+++  
+++!     protected abstract void writeFieldType(int type);
+++  
+++!     protected abstract void writeNull(int type);
+++  
+++!     protected abstract void writeChar(String s, int t);
+++  
+++!     protected abstract void writeSmallint(Number o);
+++  
+++!     protected abstract void writeInteger(Number o);
+++  
+++!     protected abstract void writeBigint(Number o);
+++  
+++!     protected abstract void writeReal(Double o, int type);
+++  
+++!     protected abstract void writeDecimal(BigDecimal o);
+++  
+++!     protected abstract void writeBit(Boolean o);
+++  
+++!     protected abstract void writeDate(Date o);
+++  
+++!     protected abstract void writeTime(Time o);
+++  
+++!     protected abstract void writeTimestamp(Timestamp o);
+++  
+++!     protected abstract void writeOther(JavaObject o);
+++  
+++!     protected abstract void writeBinary(Binary o, int t);
+++  
+++      public void writeRow(Object[] data, Table t) {
+++  
+++--- 107,141 ----
+++      public abstract void writeString(String s);
+++  
+++  // fredt@users - comment - methods used for writing each SQL type
+++!     public void writeFieldPrefix() {}
+++  
+++!     public abstract void writeFieldType(int type);
+++  
+++!     public abstract void writeNull(int type);
+++  
+++!     public abstract void writeChar(String s, int t);
+++  
+++!     public abstract void writeSmallint(Number o);
+++  
+++!     public abstract void writeInteger(Number o);
+++  
+++!     public abstract void writeBigint(Number o);
+++  
+++!     public abstract void writeReal(Double o, int type);
+++  
+++!     public abstract void writeDecimal(BigDecimal o);
+++  
+++!     public abstract void writeBit(Boolean o);
+++  
+++!     public abstract void writeDate(Date o);
+++  
+++!     public abstract void writeTime(Time o);
+++  
+++!     public abstract void writeTimestamp(Timestamp o);
+++  
+++!     public abstract void writeOther(JavaObject o);
+++  
+++!     public abstract void writeBinary(Binary o, int t);
+++  
+++      public void writeRow(Object[] data, Table t) {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowOutputBinary.java hsqldb/src/org/hsqldb/rowio/RowOutputBinary.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowOutputBinary.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowOutputBinary.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 57,63 ****
+++   */
+++  public class RowOutputBinary extends RowOutputBase {
+++  
+++!     private static final int INT_STORE_SIZE = 4;
+++      int                      storageSize;
+++  
+++      public RowOutputBinary() {
+++--- 57,63 ----
+++   */
+++  public class RowOutputBinary extends RowOutputBase {
+++  
+++!     public static final int INT_STORE_SIZE = 4;
+++      int                      storageSize;
+++  
+++      public RowOutputBinary() {
+++***************
+++*** 160,194 ****
+++      }
+++  
+++  // fredt@users - comment - methods used for writing each SQL type
+++!     protected void writeFieldType(int type) {
+++          write(1);
+++      }
+++  
+++!     protected void writeNull(int type) {
+++          write(0);
+++      }
+++  
+++!     protected void writeChar(String s, int t) {
+++          writeString(s);
+++      }
+++  
+++!     protected void writeSmallint(Number o) {
+++          writeShort(o.intValue());
+++      }
+++  
+++!     protected void writeInteger(Number o) {
+++          writeInt(o.intValue());
+++      }
+++  
+++!     protected void writeBigint(Number o) {
+++          writeLong(o.longValue());
+++      }
+++  
+++!     protected void writeReal(Double o, int type) {
+++          writeLong(Double.doubleToLongBits((o.doubleValue())));
+++      }
+++  
+++!     protected void writeDecimal(BigDecimal o) {
+++  
+++          int        scale   = o.scale();
+++          BigInteger bigint  = JavaSystem.getUnscaledValue(o);
+++--- 160,194 ----
+++      }
+++  
+++  // fredt@users - comment - methods used for writing each SQL type
+++!     public void writeFieldType(int type) {
+++          write(1);
+++      }
+++  
+++!     public void writeNull(int type) {
+++          write(0);
+++      }
+++  
+++!     public void writeChar(String s, int t) {
+++          writeString(s);
+++      }
+++  
+++!     public void writeSmallint(Number o) {
+++          writeShort(o.intValue());
+++      }
+++  
+++!     public void writeInteger(Number o) {
+++          writeInt(o.intValue());
+++      }
+++  
+++!     public void writeBigint(Number o) {
+++          writeLong(o.longValue());
+++      }
+++  
+++!     public void writeReal(Double o, int type) {
+++          writeLong(Double.doubleToLongBits((o.doubleValue())));
+++      }
+++  
+++!     public void writeDecimal(BigDecimal o) {
+++  
+++          int        scale   = o.scale();
+++          BigInteger bigint  = JavaSystem.getUnscaledValue(o);
+++***************
+++*** 198,231 ****
+++          writeInt(scale);
+++      }
+++  
+++!     protected void writeBit(Boolean o) {
+++          write(o.booleanValue() ? 1
+++                                 : 0);
+++      }
+++  
+++!     protected void writeDate(Date o) {
+++          writeLong(o.getTime());
+++      }
+++  
+++!     protected void writeTime(Time o) {
+++          writeLong(o.getTime());
+++      }
+++  
+++!     protected void writeTimestamp(Timestamp o) {
+++          writeLong(o.getTime());
+++          writeInt(o.getNanos());
+++      }
+++  
+++!     protected void writeOther(JavaObject o) {
+++          writeByteArray(o.getBytes());
+++      }
+++  
+++!     protected void writeBinary(Binary o, int t) {
+++          writeByteArray(o.getBytes());
+++      }
+++  
+++  // fredt@users - comment - helper and conversion methods
+++!     protected void writeByteArray(byte[] b) {
+++          writeInt(b.length);
+++          write(b, 0, b.length);
+++      }
+++--- 198,231 ----
+++          writeInt(scale);
+++      }
+++  
+++!     public void writeBit(Boolean o) {
+++          write(o.booleanValue() ? 1
+++                                 : 0);
+++      }
+++  
+++!     public void writeDate(Date o) {
+++          writeLong(o.getTime());
+++      }
+++  
+++!     public void writeTime(Time o) {
+++          writeLong(o.getTime());
+++      }
+++  
+++!     public void writeTimestamp(Timestamp o) {
+++          writeLong(o.getTime());
+++          writeInt(o.getNanos());
+++      }
+++  
+++!     public void writeOther(JavaObject o) {
+++          writeByteArray(o.getBytes());
+++      }
+++  
+++!     public void writeBinary(Binary o, int t) {
+++          writeByteArray(o.getBytes());
+++      }
+++  
+++  // fredt@users - comment - helper and conversion methods
+++!     public void writeByteArray(byte[] b) {
+++          writeInt(b.length);
+++          write(b, 0, b.length);
+++      }
+++***************
+++*** 239,245 ****
+++       * @return size of byte array
+++       * @exception  HsqlException when data is inconsistent
+++       */
+++!     private static int getSize(Object[] data, int l, int[] type) {
+++  
+++          int s = 0;
+++  
+++--- 239,245 ----
+++       * @return size of byte array
+++       * @exception  HsqlException when data is inconsistent
+++       */
+++!     public static int getSize(Object[] data, int l, int[] type) {
+++  
+++          int s = 0;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowOutputText.java hsqldb/src/org/hsqldb/rowio/RowOutputText.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowOutputText.java	2006-01-08 21:14:14.000000000 +0100
+++--- hsqldb/src/org/hsqldb/rowio/RowOutputText.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 54,69 ****
+++   */
+++  public class RowOutputText extends RowOutputBase {
+++  
+++!     protected String  fieldSep;
+++!     protected String  varSep;
+++!     protected String  longvarSep;
+++!     private boolean   fieldSepEnd;
+++!     private boolean   varSepEnd;
+++!     private boolean   longvarSepEnd;
+++!     private String    nextSep = "";
+++!     private boolean   nextSepEnd;
+++!     protected boolean allQuoted;
+++!     private String    encoding;
+++  
+++      public RowOutputText(String fieldSep, String varSep, String longvarSep,
+++                           boolean allQuoted, String encoding) {
+++--- 54,69 ----
+++   */
+++  public class RowOutputText extends RowOutputBase {
+++  
+++!     public String  fieldSep;
+++!     public String  varSep;
+++!     public String  longvarSep;
+++!     public boolean   fieldSepEnd;
+++!     public boolean   varSepEnd;
+++!     public boolean   longvarSepEnd;
+++!     public String    nextSep = "";
+++!     public boolean   nextSepEnd;
+++!     public boolean allQuoted;
+++!     public String    encoding;
+++  
+++      public RowOutputText(String fieldSep, String varSep, String longvarSep,
+++                           boolean allQuoted, String encoding) {
+++***************
+++*** 74,80 ****
+++                                    encoding);
+++      }
+++  
+++!     private void initTextDatabaseRowOutput(String fieldSep, String varSep,
+++                                             String longvarSep,
+++                                             boolean allQuoted,
+++                                             String encoding) {
+++--- 74,80 ----
+++                                    encoding);
+++      }
+++  
+++!     public void initTextDatabaseRowOutput(String fieldSep, String varSep,
+++                                             String longvarSep,
+++                                             boolean allQuoted,
+++                                             String encoding) {
+++***************
+++*** 142,148 ****
+++          nextSepEnd = fieldSepEnd;
+++      }
+++  
+++!     protected void writeVarString(String s) {
+++  
+++          s = checkConvertString(s, varSep);
+++  
+++--- 142,148 ----
+++          nextSepEnd = fieldSepEnd;
+++      }
+++  
+++!     public void writeVarString(String s) {
+++  
+++          s = checkConvertString(s, varSep);
+++  
+++***************
+++*** 159,165 ****
+++          nextSepEnd = varSepEnd;
+++      }
+++  
+++!     protected void writeLongVarString(String s) {
+++  
+++          s = checkConvertString(s, longvarSep);
+++  
+++--- 159,165 ----
+++          nextSepEnd = varSepEnd;
+++      }
+++  
+++!     public void writeLongVarString(String s) {
+++  
+++          s = checkConvertString(s, longvarSep);
+++  
+++***************
+++*** 176,182 ****
+++          nextSepEnd = longvarSepEnd;
+++      }
+++  
+++!     protected String checkConvertString(String s, String sep) {
+++  
+++          if (s.indexOf('\n') != -1 || s.indexOf('\r') != -1) {
+++              throw new IllegalArgumentException(
+++--- 176,182 ----
+++          nextSepEnd = longvarSepEnd;
+++      }
+++  
+++!     public String checkConvertString(String s, String sep) {
+++  
+++          if (s.indexOf('\n') != -1 || s.indexOf('\r') != -1) {
+++              throw new IllegalArgumentException(
+++***************
+++*** 188,194 ****
+++          return s;
+++      }
+++  
+++!     private byte[] getBytes(String s) {
+++  
+++          byte[] bytes = null;
+++  
+++--- 188,194 ----
+++          return s;
+++      }
+++  
+++!     public byte[] getBytes(String s) {
+++  
+++          byte[] bytes = null;
+++  
+++***************
+++*** 201,207 ****
+++          return bytes;
+++      }
+++  
+++!     protected void writeByteArray(byte[] b) {
+++  
+++          ensureRoom(b.length * 2);
+++          StringConverter.writeHex(this.getBuffer(), count, b);
+++--- 201,207 ----
+++          return bytes;
+++      }
+++  
+++!     public void writeByteArray(byte[] b) {
+++  
+++          ensureRoom(b.length * 2);
+++          StringConverter.writeHex(this.getBuffer(), count, b);
+++***************
+++*** 232,238 ****
+++      }
+++  
+++  // fredt@users - comment - methods used for writing each SQL type
+++!     protected void writeFieldType(int type) {
+++  
+++          writeBytes(nextSep);
+++  
+++--- 232,238 ----
+++      }
+++  
+++  // fredt@users - comment - methods used for writing each SQL type
+++!     public void writeFieldType(int type) {
+++  
+++          writeBytes(nextSep);
+++  
+++***************
+++*** 256,266 ****
+++          }
+++      }
+++  
+++!     protected void writeNull(int type) {
+++          writeFieldType(type);
+++      }
+++  
+++!     protected void writeChar(String s, int t) {
+++  
+++          switch (t) {
+++  
+++--- 256,266 ----
+++          }
+++      }
+++  
+++!     public void writeNull(int type) {
+++          writeFieldType(type);
+++      }
+++  
+++!     public void writeChar(String s, int t) {
+++  
+++          switch (t) {
+++  
+++***************
+++*** 283,332 ****
+++          }
+++      }
+++  
+++!     protected void writeSmallint(Number o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeInteger(Number o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeBigint(Number o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeReal(Double o, int type) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeDecimal(BigDecimal o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeBit(Boolean o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeDate(Date o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeTime(Time o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeTimestamp(Timestamp o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     protected void writeOther(JavaObject o) {
+++  
+++          byte[] ba = o.getBytes();
+++  
+++          writeByteArray(ba);
+++      }
+++  
+++!     protected void writeBinary(Binary o, int t) {
+++          writeByteArray(o.getBytes());
+++      }
+++  
+++--- 283,332 ----
+++          }
+++      }
+++  
+++!     public void writeSmallint(Number o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeInteger(Number o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeBigint(Number o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeReal(Double o, int type) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeDecimal(BigDecimal o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeBit(Boolean o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeDate(Date o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeTime(Time o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeTimestamp(Timestamp o) {
+++          writeString(o.toString());
+++      }
+++  
+++!     public void writeOther(JavaObject o) {
+++  
+++          byte[] ba = o.getBytes();
+++  
+++          writeByteArray(ba);
+++      }
+++  
+++!     public void writeBinary(Binary o, int t) {
+++          writeByteArray(o.getBytes());
+++      }
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowOutputTextLog.java hsqldb/src/org/hsqldb/rowio/RowOutputTextLog.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowOutputTextLog.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowOutputTextLog.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 57,101 ****
+++      static final byte[]     BYTES_IS    = " IS ".getBytes();
+++      public static final int MODE_DELETE = 1;
+++      public static final int MODE_INSERT = 0;
+++!     private boolean         isWritten;
+++!     private int             logMode;
+++  
+++      public void setMode(int mode) {
+++          logMode = mode;
+++      }
+++  
+++!     protected void writeFieldPrefix() {
+++  
+++          if (logMode == MODE_DELETE && isWritten) {
+++              write(BYTES_AND);
+++          }
+++      }
+++  
+++!     protected void writeChar(String s, int t) {
+++  
+++          write('\'');
+++          StringConverter.unicodeToAscii(this, s, true);
+++          write('\'');
+++      }
+++  
+++!     protected void writeReal(Double o, int type) {
+++          writeBytes(Column.createSQLString(((Number) o).doubleValue()));
+++      }
+++  
+++!     protected void writeSmallint(Number o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++      public void writeEnd() {}
+++  
+++!     protected void writeTime(Time o) {
+++  
+++          write('\'');
+++          writeBytes(o.toString());
+++          write('\'');
+++      }
+++  
+++!     protected void writeBinary(Binary o, int t) {
+++  
+++          ensureRoom(o.getBytesLength() * 2 + 2);
+++          write('\'');
+++--- 57,101 ----
+++      static final byte[]     BYTES_IS    = " IS ".getBytes();
+++      public static final int MODE_DELETE = 1;
+++      public static final int MODE_INSERT = 0;
+++!     public boolean         isWritten;
+++!     public int             logMode;
+++  
+++      public void setMode(int mode) {
+++          logMode = mode;
+++      }
+++  
+++!     public void writeFieldPrefix() {
+++  
+++          if (logMode == MODE_DELETE && isWritten) {
+++              write(BYTES_AND);
+++          }
+++      }
+++  
+++!     public void writeChar(String s, int t) {
+++  
+++          write('\'');
+++          StringConverter.unicodeToAscii(this, s, true);
+++          write('\'');
+++      }
+++  
+++!     public void writeReal(Double o, int type) {
+++          writeBytes(Column.createSQLString(((Number) o).doubleValue()));
+++      }
+++  
+++!     public void writeSmallint(Number o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++      public void writeEnd() {}
+++  
+++!     public void writeTime(Time o) {
+++  
+++          write('\'');
+++          writeBytes(o.toString());
+++          write('\'');
+++      }
+++  
+++!     public void writeBinary(Binary o, int t) {
+++  
+++          ensureRoom(o.getBytesLength() * 2 + 2);
+++          write('\'');
+++***************
+++*** 110,116 ****
+++  
+++      public void writeSize(int size) {}
+++  
+++!     protected void writeDate(Date o) {
+++  
+++          write('\'');
+++          this.writeBytes(o.toString());
+++--- 110,116 ----
+++  
+++      public void writeSize(int size) {}
+++  
+++!     public void writeDate(Date o) {
+++  
+++          write('\'');
+++          this.writeBytes(o.toString());
+++***************
+++*** 121,136 ****
+++          return 0;
+++      }
+++  
+++!     protected void writeInteger(Number o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++!     protected void writeBigint(Number o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++  //fredt@users - patch 1108647 by nkowalcz@users (NataliaK) fix for IS NULL
+++!     protected void writeNull(int type) {
+++  
+++          if (logMode == MODE_DELETE) {
+++              write(BYTES_IS);
+++--- 121,136 ----
+++          return 0;
+++      }
+++  
+++!     public void writeInteger(Number o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++!     public void writeBigint(Number o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++  //fredt@users - patch 1108647 by nkowalcz@users (NataliaK) fix for IS NULL
+++!     public void writeNull(int type) {
+++  
+++          if (logMode == MODE_DELETE) {
+++              write(BYTES_IS);
+++***************
+++*** 143,149 ****
+++          write(BYTES_NULL);
+++      }
+++  
+++!     protected void writeOther(JavaObject o) {
+++  
+++          ensureRoom(o.getBytesLength() * 2 + 2);
+++          write('\'');
+++--- 143,149 ----
+++          write(BYTES_NULL);
+++      }
+++  
+++!     public void writeOther(JavaObject o) {
+++  
+++          ensureRoom(o.getBytesLength() * 2 + 2);
+++          write('\'');
+++***************
+++*** 158,173 ****
+++          StringConverter.unicodeToAscii(this, value, false);
+++      }
+++  
+++!     protected void writeBit(Boolean o) {
+++          write(o.booleanValue() ? BYTES_TRUE
+++                                 : BYTES_FALSE);
+++      }
+++  
+++!     protected void writeDecimal(BigDecimal o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++!     protected void writeFieldType(int type) {
+++  
+++          if (logMode == MODE_DELETE) {
+++              write('=');
+++--- 158,173 ----
+++          StringConverter.unicodeToAscii(this, value, false);
+++      }
+++  
+++!     public void writeBit(Boolean o) {
+++          write(o.booleanValue() ? BYTES_TRUE
+++                                 : BYTES_FALSE);
+++      }
+++  
+++!     public void writeDecimal(BigDecimal o) {
+++          this.writeBytes(o.toString());
+++      }
+++  
+++!     public void writeFieldType(int type) {
+++  
+++          if (logMode == MODE_DELETE) {
+++              write('=');
+++***************
+++*** 184,190 ****
+++  
+++      public void writeIntData(int i, int position) {}
+++  
+++!     protected void writeTimestamp(Timestamp o) {
+++  
+++          write('\'');
+++          this.writeBytes(HsqlDateTime.getTimestampString(o));
+++--- 184,190 ----
+++  
+++      public void writeIntData(int i, int position) {}
+++  
+++!     public void writeTimestamp(Timestamp o) {
+++  
+++          write('\'');
+++          this.writeBytes(HsqlDateTime.getTimestampString(o));
+++diff -crN hsqldb-old/src/org/hsqldb/rowio/RowOutputTextQuoted.java hsqldb/src/org/hsqldb/rowio/RowOutputTextQuoted.java
+++*** hsqldb-old/src/org/hsqldb/rowio/RowOutputTextQuoted.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/rowio/RowOutputTextQuoted.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 49,55 ****
+++          super(fieldSep, varSep, longvarSep, allQuoted, encoding);
+++      }
+++  
+++!     protected String checkConvertString(String s, String sep) {
+++  
+++          if (allQuoted || s.length() == 0 || s.indexOf('\"') != -1
+++                  || (sep.length() > 0 && s.indexOf(sep) != -1)
+++--- 49,55 ----
+++          super(fieldSep, varSep, longvarSep, allQuoted, encoding);
+++      }
+++  
+++!     public String checkConvertString(String s, String sep) {
+++  
+++          if (allQuoted || s.length() == 0 || s.indexOf('\"') != -1
+++                  || (sep.length() > 0 && s.indexOf(sep) != -1)
+++***************
+++*** 60,66 ****
+++          return s;
+++      }
+++  
+++!     private boolean hasUnprintable(String s) {
+++  
+++          for (int i = 0, len = s.length(); i < len; i++) {
+++              if (Character.isISOControl(s.charAt(i))) {
+++--- 60,66 ----
+++          return s;
+++      }
+++  
+++!     public boolean hasUnprintable(String s) {
+++  
+++          for (int i = 0, len = s.length(); i < len; i++) {
+++              if (Character.isISOControl(s.charAt(i))) {
+++diff -crN hsqldb-old/src/org/hsqldb/Row.java hsqldb/src/org/hsqldb/Row.java
+++*** hsqldb-old/src/org/hsqldb/Row.java	2005-12-22 13:22:08.000000000 +0100
+++--- hsqldb/src/org/hsqldb/Row.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 89,101 ****
+++  
+++      int                tableId;
+++      int                iPos;
+++!     protected Object[] oData;
+++!     protected Node     nPrimaryNode;
+++  
+++      /**
+++       *  Default constructor used only in subclasses.
+++       */
+++!     protected Row() {}
+++  
+++      /**
+++       *  Constructor for MEMORY table Row. The result is a Row with Nodes that
+++--- 89,101 ----
+++  
+++      int                tableId;
+++      int                iPos;
+++!     public Object[] oData;
+++!     public Node     nPrimaryNode;
+++  
+++      /**
+++       *  Default constructor used only in subclasses.
+++       */
+++!     public Row() {}
+++  
+++      /**
+++       *  Constructor for MEMORY table Row. The result is a Row with Nodes that
+++diff -crN hsqldb-old/src/org/hsqldb/sample/sample-hsqldb.cfg hsqldb/src/org/hsqldb/sample/sample-hsqldb.cfg
+++*** hsqldb-old/src/org/hsqldb/sample/sample-hsqldb.cfg	2005-07-24 20:33:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/sample/sample-hsqldb.cfg	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 107,113 ****
+++  # N.b.:  If you set these, then make this file unreadable to non-root users!!!!
+++  # See the TLS chapter of the HSQLDB User Guide, paying attention to the 
+++  # security warning(s).
+++! # If you are running with a private server cert, then you will also need to 
+++  # set "truststore" in the your SqlTool config file (location is set by the
+++  # AUTH_FILE variable in this file, or it must be at the default location for 
+++  # HSQLDB_OWNER).
+++--- 107,113 ----
+++  # N.b.:  If you set these, then make this file unreadable to non-root users!!!!
+++  # See the TLS chapter of the HSQLDB User Guide, paying attention to the 
+++  # security warning(s).
+++! # If you are running with a public server cert, then you will also need to 
+++  # set "truststore" in the your SqlTool config file (location is set by the
+++  # AUTH_FILE variable in this file, or it must be at the default location for 
+++  # HSQLDB_OWNER).
+++***************
+++*** 116,122 ****
+++  
+++  # Any JVM args for the invocation of the JDBC client used to verify DB
+++  # instances and to shut them down (SqlToolSprayer).
+++! # This example specifies the location of a private trust store for TLS 
+++  # encryption.
+++  # For multiple args, put quotes around entire value.
+++  #CLIENT_JVMARGS=-Djavax.net.debug=ssl
+++--- 116,122 ----
+++  
+++  # Any JVM args for the invocation of the JDBC client used to verify DB
+++  # instances and to shut them down (SqlToolSprayer).
+++! # This example specifies the location of a public trust store for TLS 
+++  # encryption.
+++  # For multiple args, put quotes around entire value.
+++  #CLIENT_JVMARGS=-Djavax.net.debug=ssl
+++diff -crN hsqldb-old/src/org/hsqldb/sample/TriggerSample.java hsqldb/src/org/hsqldb/sample/TriggerSample.java
+++*** hsqldb-old/src/org/hsqldb/sample/TriggerSample.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/sample/TriggerSample.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 211,217 ****
+++          }
+++      }
+++  
+++!     private static void doAssert(boolean b,
+++                                   String msg) throws RuntimeException {
+++  
+++          if (b) {
+++--- 211,217 ----
+++          }
+++      }
+++  
+++!     public static void doAssert(boolean b,
+++                                   String msg) throws RuntimeException {
+++  
+++          if (b) {
+++***************
+++*** 224,230 ****
+++          }
+++      }
+++  
+++!     private static void doAuditStep(int typ, String tn, String ors,
+++                                      String nrs) {
+++  
+++          Connection        conn;
+++--- 224,230 ----
+++          }
+++      }
+++  
+++!     public static void doAuditStep(int typ, String tn, String ors,
+++                                      String nrs) {
+++  
+++          Connection        conn;
+++***************
+++*** 373,379 ****
+++          return sb.toString();
+++      }
+++  
+++!     private static Connection getConnection() throws SQLException {
+++  
+++          try {
+++              Class.forName(drv).newInstance();
+++--- 373,379 ----
+++          return sb.toString();
+++      }
+++  
+++!     public static Connection getConnection() throws SQLException {
+++  
+++          try {
+++              Class.forName(drv).newInstance();
+++***************
+++*** 386,397 ****
+++          }
+++      }
+++  
+++!     private static void createTrigger(Statement stmt, String trn,
+++                                        int typ) throws SQLException {
+++          stmt.execute(getTriggerDDL(trn, typ, tn, 0, impl));
+++      }
+++  
+++!     private static void setup() throws SQLException {
+++  
+++          Connection conn = getConnection();
+++          Statement  stmt = conn.createStatement();
+++--- 386,397 ----
+++          }
+++      }
+++  
+++!     public static void createTrigger(Statement stmt, String trn,
+++                                        int typ) throws SQLException {
+++          stmt.execute(getTriggerDDL(trn, typ, tn, 0, impl));
+++      }
+++  
+++!     public static void setup() throws SQLException {
+++  
+++          Connection conn = getConnection();
+++          Statement  stmt = conn.createStatement();
+++***************
+++*** 416,422 ****
+++          conn.close();
+++      }
+++  
+++!     private static void doSomeWork() throws SQLException {
+++  
+++          Connection conn = getConnection();
+++          Statement  stmt = conn.createStatement();
+++--- 416,422 ----
+++          conn.close();
+++      }
+++  
+++!     public static void doSomeWork() throws SQLException {
+++  
+++          Connection conn = getConnection();
+++          Statement  stmt = conn.createStatement();
+++***************
+++*** 448,454 ****
+++          conn.close();
+++      }
+++  
+++!     private static void dumpTable(String tn) throws SQLException {
+++  
+++          Connection        conn  = getConnection();
+++          Statement         stmt  = conn.createStatement();
+++--- 448,454 ----
+++          conn.close();
+++      }
+++  
+++!     public static void dumpTable(String tn) throws SQLException {
+++  
+++          Connection        conn  = getConnection();
+++          Statement         stmt  = conn.createStatement();
+++***************
+++*** 483,489 ****
+++          conn.close();
+++      }
+++  
+++!     private static void runSample() throws SQLException {
+++  
+++          setup();
+++          doSomeWork();
+++--- 483,489 ----
+++          conn.close();
+++      }
+++  
+++!     public static void runSample() throws SQLException {
+++  
+++          setup();
+++          doSomeWork();
+++diff -crN hsqldb-old/src/org/hsqldb/SchemaManager.java hsqldb/src/org/hsqldb/SchemaManager.java
+++*** hsqldb-old/src/org/hsqldb/SchemaManager.java	2007-07-09 10:49:26.000000000 +0200
+++--- hsqldb/src/org/hsqldb/SchemaManager.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 780,786 ****
+++      /**
+++       * Throws if the table is referenced in a foreign key constraint.
+++       */
+++!     private void checkCascadeDropReferenced(Table table,
+++              boolean cascade) throws HsqlException {
+++  
+++          Constraint[] constraints       = table.getConstraints();
+++--- 780,786 ----
+++      /**
+++       * Throws if the table is referenced in a foreign key constraint.
+++       */
+++!     public void checkCascadeDropReferenced(Table table,
+++              boolean cascade) throws HsqlException {
+++  
+++          Constraint[] constraints       = table.getConstraints();
+++***************
+++*** 903,909 ****
+++      /**
+++       * Returns an array of views that reference another view.
+++       */
+++!     private View[] getViewsWithView(View view) {
+++  
+++          HsqlArrayList list   = null;
+++          Schema        schema = (Schema) schemaMap.get(view.getSchemaName());
+++--- 903,909 ----
+++      /**
+++       * Returns an array of views that reference another view.
+++       */
+++!     public View[] getViewsWithView(View view) {
+++  
+++          HsqlArrayList list   = null;
+++          Schema        schema = (Schema) schemaMap.get(view.getSchemaName());
+++***************
+++*** 932,938 ****
+++       * Returns an array of views that reference the specified table or
+++       * the specified column if column parameter is not null.
+++       */
+++!     private View[] getViewsWithTable(Table table, String column) {
+++  
+++          HsqlArrayList list = null;
+++          Iterator      it   = allTablesIterator();
+++--- 932,938 ----
+++       * Returns an array of views that reference the specified table or
+++       * the specified column if column parameter is not null.
+++       */
+++!     public View[] getViewsWithTable(Table table, String column) {
+++  
+++          HsqlArrayList list = null;
+++          Iterator      it   = allTablesIterator();
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderBase.java hsqldb/src/org/hsqldb/scriptio/ScriptReaderBase.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderBase.java	2007-06-21 15:28:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptReaderBase.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 82,98 ****
+++          openFile();
+++      }
+++  
+++!     protected abstract void openFile() throws IOException;
+++  
+++      public void readAll(Session session) throws IOException, HsqlException {
+++          readDDL(session);
+++          readExistingData(session);
+++      }
+++  
+++!     protected abstract void readDDL(Session session)
+++      throws IOException, HsqlException;
+++  
+++!     protected abstract void readExistingData(Session session)
+++      throws IOException, HsqlException;
+++  
+++      public abstract boolean readLoggedStatement(Session session)
+++--- 82,98 ----
+++          openFile();
+++      }
+++  
+++!     public abstract void openFile() throws IOException;
+++  
+++      public void readAll(Session session) throws IOException, HsqlException {
+++          readDDL(session);
+++          readExistingData(session);
+++      }
+++  
+++!     public abstract void readDDL(Session session)
+++      throws IOException, HsqlException;
+++  
+++!     public abstract void readExistingData(Session session)
+++      throws IOException, HsqlException;
+++  
+++      public abstract boolean readLoggedStatement(Session session)
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderBinary.java hsqldb/src/org/hsqldb/scriptio/ScriptReaderBinary.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderBinary.java	2006-09-24 17:37:58.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptReaderBinary.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 58,65 ****
+++   */
+++  class ScriptReaderBinary extends ScriptReaderBase {
+++  
+++!     private RowInputBinary    rowIn;
+++!     protected DataInputStream dataStreamIn;
+++  
+++      ScriptReaderBinary(Database db,
+++                         String file) throws HsqlException, IOException {
+++--- 58,65 ----
+++   */
+++  class ScriptReaderBinary extends ScriptReaderBase {
+++  
+++!     public RowInputBinary    rowIn;
+++!     public DataInputStream dataStreamIn;
+++  
+++      ScriptReaderBinary(Database db,
+++                         String file) throws HsqlException, IOException {
+++***************
+++*** 69,75 ****
+++          rowIn = new RowInputBinary();
+++      }
+++  
+++!     protected void openFile() throws IOException {
+++  
+++          InputStream d = db.isFilesInJar()
+++                          ? getClass().getResourceAsStream(fileName)
+++--- 69,75 ----
+++          rowIn = new RowInputBinary();
+++      }
+++  
+++!     public void openFile() throws IOException {
+++  
+++          InputStream d = db.isFilesInJar()
+++                          ? getClass().getResourceAsStream(fileName)
+++***************
+++*** 79,85 ****
+++                  1 << 13));
+++      }
+++  
+++!     protected void readDDL(Session session)
+++      throws IOException, HsqlException {
+++  
+++          Result   r  = Result.read(rowIn, dataStreamIn);
+++--- 79,85 ----
+++                  1 << 13));
+++      }
+++  
+++!     public void readDDL(Session session)
+++      throws IOException, HsqlException {
+++  
+++          Result   r  = Result.read(rowIn, dataStreamIn);
+++***************
+++*** 100,106 ****
+++          }
+++      }
+++  
+++!     protected void readExistingData(Session session)
+++      throws IOException, HsqlException {
+++  
+++          for (;;) {
+++--- 100,106 ----
+++          }
+++      }
+++  
+++!     public void readExistingData(Session session)
+++      throws IOException, HsqlException {
+++  
+++          for (;;) {
+++***************
+++*** 134,140 ****
+++  
+++      // int : row size (0 if no more rows) ,
+++      // BinaryServerRowInput : row (column values)
+++!     protected boolean readRow(Table t) throws IOException, HsqlException {
+++  
+++          boolean more = readRow(rowIn, 0);
+++  
+++--- 134,140 ----
+++  
+++      // int : row size (0 if no more rows) ,
+++      // BinaryServerRowInput : row (column values)
+++!     public boolean readRow(Table t) throws IOException, HsqlException {
+++  
+++          boolean more = readRow(rowIn, 0);
+++  
+++***************
+++*** 150,162 ****
+++      }
+++  
+++      // int : rowcount
+++!     protected int readTableTerm() throws IOException, HsqlException {
+++          return dataStreamIn.readInt();
+++      }
+++  
+++      // int : headersize (0 if no more tables), String : tablename, int : operation,
+++      // String : schemaname
+++!     protected String readTableInit() throws IOException, HsqlException {
+++  
+++          boolean more = readRow(rowIn, 0);
+++  
+++--- 150,162 ----
+++      }
+++  
+++      // int : rowcount
+++!     public int readTableTerm() throws IOException, HsqlException {
+++          return dataStreamIn.readInt();
+++      }
+++  
+++      // int : headersize (0 if no more tables), String : tablename, int : operation,
+++      // String : schemaname
+++!     public String readTableInit() throws IOException, HsqlException {
+++  
+++          boolean more = readRow(rowIn, 0);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderText.java hsqldb/src/org/hsqldb/scriptio/ScriptReaderText.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderText.java	2007-06-21 15:28:16.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptReaderText.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 70,76 ****
+++          rowIn = new RowInputTextLog();
+++      }
+++  
+++!     protected void openFile() throws IOException {
+++  
+++          InputStream d = db.isFilesInJar()
+++                          ? getClass().getResourceAsStream(fileName)
+++--- 70,76 ----
+++          rowIn = new RowInputTextLog();
+++      }
+++  
+++!     public void openFile() throws IOException {
+++  
+++          InputStream d = db.isFilesInJar()
+++                          ? getClass().getResourceAsStream(fileName)
+++***************
+++*** 80,86 ****
+++              new InputStreamReader(new BufferedInputStream(d)));
+++      }
+++  
+++!     protected void readDDL(Session session) throws IOException, HsqlException {
+++  
+++          for (; readLoggedStatement(session); ) {
+++              if (rowIn.getStatementType() == INSERT_STATEMENT) {
+++--- 80,86 ----
+++              new InputStreamReader(new BufferedInputStream(d)));
+++      }
+++  
+++!     public void readDDL(Session session) throws IOException, HsqlException {
+++  
+++          for (; readLoggedStatement(session); ) {
+++              if (rowIn.getStatementType() == INSERT_STATEMENT) {
+++***************
+++*** 108,114 ****
+++          }
+++      }
+++  
+++!     protected void readExistingData(Session session)
+++      throws IOException, HsqlException {
+++  
+++          try {
+++--- 108,114 ----
+++          }
+++      }
+++  
+++!     public void readExistingData(Session session)
+++      throws IOException, HsqlException {
+++  
+++          try {
+++***************
+++*** 168,174 ****
+++          return true;
+++      }
+++  
+++!     private void processStatement(Session session) throws IOException {
+++  
+++          try {
+++              if (statement.startsWith("/*C")) {
+++--- 168,174 ----
+++          return true;
+++      }
+++  
+++!     public void processStatement(Session session) throws IOException {
+++  
+++          try {
+++              if (statement.startsWith("/*C")) {
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderZipped.java hsqldb/src/org/hsqldb/scriptio/ScriptReaderZipped.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptReaderZipped.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptReaderZipped.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 54,60 ****
+++          super(db, file);
+++      }
+++  
+++!     protected void openFile() throws IOException {
+++  
+++          InputStream d = db.isFilesInJar()
+++                          ? getClass().getResourceAsStream(fileName)
+++--- 54,60 ----
+++          super(db, file);
+++      }
+++  
+++!     public void openFile() throws IOException {
+++  
+++          InputStream d = db.isFilesInJar()
+++                          ? getClass().getResourceAsStream(fileName)
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterBase.java hsqldb/src/org/hsqldb/scriptio/ScriptWriterBase.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterBase.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptWriterBase.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 101,107 ****
+++      volatile boolean needsSync;
+++      volatile boolean forceSync;
+++      volatile boolean busyWriting;
+++!     private int      syncCount;
+++      static final int INSERT             = 0;
+++      static final int INSERT_WITH_SCHEMA = 1;
+++  
+++--- 101,107 ----
+++      volatile boolean needsSync;
+++      volatile boolean forceSync;
+++      volatile boolean busyWriting;
+++!     public int      syncCount;
+++      static final int INSERT             = 0;
+++      static final int INSERT_WITH_SCHEMA = 1;
+++  
+++***************
+++*** 167,173 ****
+++          openFile();
+++      }
+++  
+++!     protected abstract void initBuffers();
+++  
+++      /**
+++       *  Called internally or externally in write delay intervals.
+++--- 167,173 ----
+++          openFile();
+++      }
+++  
+++!     public abstract void initBuffers();
+++  
+++      /**
+++       *  Called internally or externally in write delay intervals.
+++***************
+++*** 234,240 ****
+++       *  File is opened in append mode although in current usage the file
+++       *  never pre-exists
+++       */
+++!     protected void openFile() throws HsqlException {
+++  
+++          try {
+++              FileAccess   fa  = isDump ? FileUtil.getDefaultInstance()
+++--- 234,240 ----
+++       *  File is opened in append mode although in current usage the file
+++       *  never pre-exists
+++       */
+++!     public void openFile() throws HsqlException {
+++  
+++          try {
+++              FileAccess   fa  = isDump ? FileUtil.getDefaultInstance()
+++***************
+++*** 255,263 ****
+++       * This is not really useful in the current usage but may be if this
+++       * class is used in a different way.
+++       */
+++!     protected void finishStream() throws IOException {}
+++  
+++!     protected void writeDDL() throws IOException, HsqlException {
+++  
+++          Result ddlPart = DatabaseScript.getScript(database,
+++              !includeCachedData);
+++--- 255,263 ----
+++       * This is not really useful in the current usage but may be if this
+++       * class is used in a different way.
+++       */
+++!     public void finishStream() throws IOException {}
+++  
+++!     public void writeDDL() throws IOException, HsqlException {
+++  
+++          Result ddlPart = DatabaseScript.getScript(database,
+++              !includeCachedData);
+++***************
+++*** 265,271 ****
+++          writeSingleColumnResult(ddlPart);
+++      }
+++  
+++!     protected void writeExistingData() throws HsqlException, IOException {
+++  
+++          // start with blank schema - SET SCHEMA to log
+++          currentSession.loggedSchema = null;
+++--- 265,271 ----
+++          writeSingleColumnResult(ddlPart);
+++      }
+++  
+++!     public void writeExistingData() throws HsqlException, IOException {
+++  
+++          // start with blank schema - SET SCHEMA to log
+++          currentSession.loggedSchema = null;
+++***************
+++*** 323,332 ****
+++          writeDataTerm();
+++      }
+++  
+++!     protected void writeTableInit(Table t)
+++      throws HsqlException, IOException {}
+++  
+++!     protected void writeTableTerm(Table t) throws HsqlException, IOException {
+++  
+++          if (t.isDataReadOnly() &&!t.isTemp() &&!t.isText()) {
+++              StringBuffer a = new StringBuffer("SET TABLE ");
+++--- 323,332 ----
+++          writeDataTerm();
+++      }
+++  
+++!     public void writeTableInit(Table t)
+++      throws HsqlException, IOException {}
+++  
+++!     public void writeTableTerm(Table t) throws HsqlException, IOException {
+++  
+++          if (t.isDataReadOnly() &&!t.isTemp() &&!t.isText()) {
+++              StringBuffer a = new StringBuffer("SET TABLE ");
+++***************
+++*** 337,343 ****
+++          }
+++      }
+++  
+++!     protected void writeSingleColumnResult(Result r)
+++      throws HsqlException, IOException {
+++  
+++          Iterator it = r.iterator();
+++--- 337,343 ----
+++          }
+++      }
+++  
+++!     public void writeSingleColumnResult(Result r)
+++      throws HsqlException, IOException {
+++  
+++          Iterator it = r.iterator();
+++***************
+++*** 352,360 ****
+++      abstract void writeRow(Session session, Table table,
+++                             Object[] data) throws HsqlException, IOException;
+++  
+++!     protected abstract void writeDataTerm() throws IOException;
+++  
+++!     protected abstract void addSessionId(Session session) throws IOException;
+++  
+++      public abstract void writeLogStatement(Session session,
+++                                             String s)
+++--- 352,360 ----
+++      abstract void writeRow(Session session, Table table,
+++                             Object[] data) throws HsqlException, IOException;
+++  
+++!     public abstract void writeDataTerm() throws IOException;
+++  
+++!     public abstract void addSessionId(Session session) throws IOException;
+++  
+++      public abstract void writeLogStatement(Session session,
+++                                             String s)
+++***************
+++*** 373,382 ****
+++      throws HsqlException, IOException;
+++  
+++      //
+++!     private Object timerTask;
+++  
+++      // long write delay for scripts : 60s
+++!     protected volatile int writeDelay = 60000;
+++  
+++      public void run() {
+++  
+++--- 373,382 ----
+++      throws HsqlException, IOException;
+++  
+++      //
+++!     public Object timerTask;
+++  
+++      // long write delay for scripts : 60s
+++!     public volatile int writeDelay = 60000;
+++  
+++      public void run() {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterBinary.java hsqldb/src/org/hsqldb/scriptio/ScriptWriterBinary.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterBinary.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptWriterBinary.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 55,72 ****
+++          super(db, file, includeCached, newFile, false);
+++      }
+++  
+++!     protected void initBuffers() {
+++          rowOut = new RowOutputBinary();
+++      }
+++  
+++!     protected void writeSingleColumnResult(Result r)
+++      throws IOException, HsqlException {
+++          Result.write(r, rowOut, fileStreamOut);
+++      }
+++  
+++      // int : row size (0 if no more rows) ,
+++      // RowInput/OutputBinary : row (column values)
+++!     protected void writeRow(Session session, Table t,
+++                              Object[] data) throws IOException, HsqlException {
+++  
+++          rowOut.reset();
+++--- 55,72 ----
+++          super(db, file, includeCached, newFile, false);
+++      }
+++  
+++!     public void initBuffers() {
+++          rowOut = new RowOutputBinary();
+++      }
+++  
+++!     public void writeSingleColumnResult(Result r)
+++      throws IOException, HsqlException {
+++          Result.write(r, rowOut, fileStreamOut);
+++      }
+++  
+++      // int : row size (0 if no more rows) ,
+++      // RowInput/OutputBinary : row (column values)
+++!     public void writeRow(Session session, Table t,
+++                              Object[] data) throws IOException, HsqlException {
+++  
+++          rowOut.reset();
+++***************
+++*** 77,83 ****
+++      }
+++  
+++      // int : headersize (0 if no more tables), String : tablename, int : operation,
+++!     protected void writeTableInit(Table t) throws HsqlException, IOException {
+++  
+++          tableRowCount = 0;
+++  
+++--- 77,83 ----
+++      }
+++  
+++      // int : headersize (0 if no more tables), String : tablename, int : operation,
+++!     public void writeTableInit(Table t) throws HsqlException, IOException {
+++  
+++          tableRowCount = 0;
+++  
+++***************
+++*** 90,96 ****
+++          fileStreamOut.write(rowOut.getBuffer(), 0, rowOut.size());
+++      }
+++  
+++!     protected void writeTableTerm(Table t) throws IOException {
+++  
+++          rowOut.reset();
+++          rowOut.writeSize(0);
+++--- 90,96 ----
+++          fileStreamOut.write(rowOut.getBuffer(), 0, rowOut.size());
+++      }
+++  
+++!     public void writeTableTerm(Table t) throws IOException {
+++  
+++          rowOut.reset();
+++          rowOut.writeSize(0);
+++***************
+++*** 98,104 ****
+++          fileStreamOut.write(rowOut.getBuffer(), 0, rowOut.size());
+++      }
+++  
+++!     protected void writeDataTerm() throws IOException {
+++  
+++          rowOut.reset();
+++          rowOut.writeSize(0);
+++--- 98,104 ----
+++          fileStreamOut.write(rowOut.getBuffer(), 0, rowOut.size());
+++      }
+++  
+++!     public void writeDataTerm() throws IOException {
+++  
+++          rowOut.reset();
+++          rowOut.writeSize(0);
+++***************
+++*** 109,115 ****
+++                                    String s)
+++                                    throws IOException, HsqlException {}
+++  
+++!     protected void addSessionId(Session session) throws IOException {}
+++  
+++      public void writeDeleteStatement(Session session, Table table,
+++                                       Object[] ddata)
+++--- 109,115 ----
+++                                    String s)
+++                                    throws IOException, HsqlException {}
+++  
+++!     public void addSessionId(Session session) throws IOException {}
+++  
+++      public void writeDeleteStatement(Session session, Table table,
+++                                       Object[] ddata)
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterText.java hsqldb/src/org/hsqldb/scriptio/ScriptWriterText.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterText.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptWriterText.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 96,108 ****
+++          super(db, file, includeCachedData, newFile, isDump);
+++      }
+++  
+++!     protected void initBuffers() {
+++          rowOut = new RowOutputTextLog();
+++      }
+++  
+++!     protected void writeDataTerm() throws IOException {}
+++  
+++!     protected void addSessionId(Session session) throws IOException {
+++  
+++          if (session == null) {
+++              return;
+++--- 96,108 ----
+++          super(db, file, includeCachedData, newFile, isDump);
+++      }
+++  
+++!     public void initBuffers() {
+++          rowOut = new RowOutputTextLog();
+++      }
+++  
+++!     public void writeDataTerm() throws IOException {}
+++  
+++!     public void addSessionId(Session session) throws IOException {
+++  
+++          if (session == null) {
+++              return;
+++***************
+++*** 123,129 ****
+++          }
+++      }
+++  
+++!     private void writeSchemaStatement(HsqlName schema) {
+++  
+++          rowOut.write(BYTES_SCHEMA);
+++          rowOut.writeString(schema.statementName);
+++--- 123,129 ----
+++          }
+++      }
+++  
+++!     public void writeSchemaStatement(HsqlName schema) {
+++  
+++          rowOut.write(BYTES_SCHEMA);
+++          rowOut.writeString(schema.statementName);
+++***************
+++*** 152,158 ****
+++          }
+++      }
+++  
+++!     protected void writeRow(Session session, Table table,
+++                              Object[] data) throws HsqlException, IOException {
+++  
+++          busyWriting = true;
+++--- 152,158 ----
+++          }
+++      }
+++  
+++!     public void writeRow(Session session, Table table,
+++                              Object[] data) throws HsqlException, IOException {
+++  
+++          busyWriting = true;
+++***************
+++*** 177,183 ****
+++          }
+++      }
+++  
+++!     protected void writeTableInit(Table t) throws HsqlException, IOException {
+++  
+++          if (t.isEmpty(currentSession)) {
+++              return;
+++--- 177,183 ----
+++          }
+++      }
+++  
+++!     public void writeTableInit(Table t) throws HsqlException, IOException {
+++  
+++          if (t.isEmpty(currentSession)) {
+++              return;
+++***************
+++*** 275,281 ****
+++          }
+++      }
+++  
+++!     protected void finalize() {
+++          sync();
+++      }
+++  }
+++--- 275,281 ----
+++          }
+++      }
+++  
+++!     public void finalize() {
+++          sync();
+++      }
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterZipped.java hsqldb/src/org/hsqldb/scriptio/ScriptWriterZipped.java
+++*** hsqldb-old/src/org/hsqldb/scriptio/ScriptWriterZipped.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/scriptio/ScriptWriterZipped.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 48,54 ****
+++   */
+++  class ScriptWriterZipped extends ScriptWriterBinary {
+++  
+++!     private static final int bufferSize = 1 << 15;
+++  
+++      ScriptWriterZipped(Database db, String file, boolean includeCached,
+++                         boolean newFile) throws HsqlException {
+++--- 48,54 ----
+++   */
+++  class ScriptWriterZipped extends ScriptWriterBinary {
+++  
+++!     public static final int bufferSize = 1 << 15;
+++  
+++      ScriptWriterZipped(Database db, String file, boolean includeCached,
+++                         boolean newFile) throws HsqlException {
+++***************
+++*** 60,66 ****
+++       */
+++      public void sync() {}
+++  
+++!     protected void openFile() throws HsqlException {
+++  
+++          try {
+++              FileAccess           fa  = database.getFileAccess();
+++--- 60,66 ----
+++       */
+++      public void sync() {}
+++  
+++!     public void openFile() throws HsqlException {
+++  
+++          try {
+++              FileAccess           fa  = database.getFileAccess();
+++***************
+++*** 81,87 ****
+++       * This may not really be necessary, unless we add implementations where
+++       * non-compressed data is added to the end of the copressed part.
+++       */
+++!     protected void finishStream() throws IOException {
+++          ((DeflaterOutputStream) fileStreamOut).finish();
+++          fileStreamOut.flush();
+++      }
+++--- 81,87 ----
+++       * This may not really be necessary, unless we add implementations where
+++       * non-compressed data is added to the end of the copressed part.
+++       */
+++!     public void finishStream() throws IOException {
+++          ((DeflaterOutputStream) fileStreamOut).finish();
+++          fileStreamOut.flush();
+++      }
+++diff -crN hsqldb-old/src/org/hsqldb/Select.java hsqldb/src/org/hsqldb/Select.java
+++*** hsqldb-old/src/org/hsqldb/Select.java	2007-07-23 20:30:48.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Select.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 102,109 ****
+++  
+++      boolean               isDistinctSelect;
+++      boolean               isAggregated;
+++!     private boolean       isGrouped;
+++!     private HashSet       groupColumnNames;
+++      TableFilter[]         tFilter;
+++      Expression            limitCondition;
+++      Expression            queryCondition;     // null means no condition
+++--- 102,109 ----
+++  
+++      boolean               isDistinctSelect;
+++      boolean               isAggregated;
+++!     public boolean       isGrouped;
+++!     public HashSet       groupColumnNames;
+++      TableFilter[]         tFilter;
+++      Expression            limitCondition;
+++      Expression            queryCondition;     // null means no condition
+++***************
+++*** 128,134 ****
+++                            UNIONALL  = 2,
+++                            INTERSECT = 3,
+++                            EXCEPT    = 4;
+++!     private boolean       simpleLimit;        // true if maxrows can be uses as is
+++      Result.ResultMetaData resultMetaData;
+++      IntKeyHashMap         asteriskPositions;
+++  
+++--- 128,134 ----
+++                            UNIONALL  = 2,
+++                            INTERSECT = 3,
+++                            EXCEPT    = 4;
+++!     public boolean       simpleLimit;        // true if maxrows can be uses as is
+++      Result.ResultMetaData resultMetaData;
+++      IntKeyHashMap         asteriskPositions;
+++  
+++***************
+++*** 173,179 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void resolveTables() throws HsqlException {
+++  
+++          // replace the aliases with expressions
+++          for (int i = iResultLen; i < exprColumns.length; i++) {
+++--- 173,179 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void resolveTables() throws HsqlException {
+++  
+++          // replace the aliases with expressions
+++          for (int i = iResultLen; i < exprColumns.length; i++) {
+++***************
+++*** 279,285 ****
+++          }
+++      }
+++  
+++!     private void setFilterConditions(Session session) throws HsqlException {
+++  
+++          if (queryCondition == null) {
+++              return;
+++--- 279,285 ----
+++          }
+++      }
+++  
+++!     public void setFilterConditions(Session session) throws HsqlException {
+++  
+++          if (queryCondition == null) {
+++              return;
+++***************
+++*** 534,540 ****
+++          return r;
+++      }
+++  
+++!     private Result getResultMain(Session session) throws HsqlException {
+++  
+++          Result[] unionResults = new Result[unionArray.length];
+++  
+++--- 534,540 ----
+++          return r;
+++      }
+++  
+++!     public Result getResultMain(Session session) throws HsqlException {
+++  
+++          Result[] unionResults = new Result[unionArray.length];
+++  
+++***************
+++*** 589,595 ****
+++       * Merges the second result into the first using the unionMode
+++       * set operation.
+++       */
+++!     private void mergeResults(Session session, Result first,
+++                                Result second) throws HsqlException {
+++  
+++          switch (unionType) {
+++--- 589,595 ----
+++       * Merges the second result into the first using the unionMode
+++       * set operation.
+++       */
+++!     public void mergeResults(Session session, Result first,
+++                                Result second) throws HsqlException {
+++  
+++          switch (unionType) {
+++***************
+++*** 678,684 ****
+++          return rowCount;
+++      }
+++  
+++!     private Result getSingleResult(Session session,
+++                                     int rowCount) throws HsqlException {
+++  
+++          if (resultMetaData == null) {
+++--- 678,684 ----
+++          return rowCount;
+++      }
+++  
+++!     public Result getSingleResult(Session session,
+++                                     int rowCount) throws HsqlException {
+++  
+++          if (resultMetaData == null) {
+++***************
+++*** 702,708 ****
+++          return r;
+++      }
+++  
+++!     private void prepareSort() {
+++  
+++          if (iOrderLen == 0) {
+++              return;
+++--- 702,708 ----
+++          return r;
+++      }
+++  
+++!     public void prepareSort() {
+++  
+++          if (iOrderLen == 0) {
+++              return;
+++***************
+++*** 728,734 ****
+++          }
+++      }
+++  
+++!     private void sortResult(Session session, Result r) throws HsqlException {
+++  
+++          if (iOrderLen == 0) {
+++              return;
+++--- 728,734 ----
+++          }
+++      }
+++  
+++!     public void sortResult(Session session, Result r) throws HsqlException {
+++  
+++          if (iOrderLen == 0) {
+++              return;
+++***************
+++*** 742,748 ****
+++       * If any result column is aggregated, then all result columns need to be
+++       * aggregated, unless it is included in the group by clause.
+++       */
+++!     private void checkAggregateOrGroupByColumns(int start,
+++              int end) throws HsqlException {
+++  
+++          if (start < end) {
+++--- 742,748 ----
+++       * If any result column is aggregated, then all result columns need to be
+++       * aggregated, unless it is included in the group by clause.
+++       */
+++!     public void checkAggregateOrGroupByColumns(int start,
+++              int end) throws HsqlException {
+++  
+++          if (start < end) {
+++***************
+++*** 764,770 ****
+++          }
+++      }
+++  
+++!     private void checkAggregateOrGroupByOrderColumns(int start,
+++              int end) throws HsqlException {
+++  
+++          checkAggregateOrGroupByColumns(start, end);
+++--- 764,770 ----
+++          }
+++      }
+++  
+++!     public void checkAggregateOrGroupByOrderColumns(int start,
+++              int end) throws HsqlException {
+++  
+++          checkAggregateOrGroupByColumns(start, end);
+++***************
+++*** 801,807 ****
+++       * <LI>All the columns in the expression are defined in the group by clause;
+++       * </UL)
+++       */
+++!     private boolean inAggregateOrGroupByClause(Expression exp) {
+++  
+++          if (isGrouped) {
+++              return isSimilarIn(exp, iResultLen, iResultLen + iGroupLen)
+++--- 801,807 ----
+++       * <LI>All the columns in the expression are defined in the group by clause;
+++       * </UL)
+++       */
+++!     public boolean inAggregateOrGroupByClause(Expression exp) {
+++  
+++          if (isGrouped) {
+++              return isSimilarIn(exp, iResultLen, iResultLen + iGroupLen)
+++***************
+++*** 817,823 ****
+++       * Check if the given expression is similar to any of the eColumn
+++       * expressions within the given range.
+++       */
+++!     private boolean isSimilarIn(Expression exp, int start, int end) {
+++  
+++          for (int i = start; i < end; i++) {
+++              if (exp.similarTo(exprColumns[i])) {
+++--- 817,823 ----
+++       * Check if the given expression is similar to any of the eColumn
+++       * expressions within the given range.
+++       */
+++!     public boolean isSimilarIn(Expression exp, int start, int end) {
+++  
+++          for (int i = start; i < end; i++) {
+++              if (exp.similarTo(exprColumns[i])) {
+++***************
+++*** 855,861 ****
+++      }
+++  
+++  // fredt@users 20030810 - patch 1.7.2 - OUTER JOIN rewrite
+++!     private Result buildResult(Session session,
+++                                 int limitcount) throws HsqlException {
+++  
+++          GroupedResult gResult   = new GroupedResult(this, resultMetaData);
+++--- 855,861 ----
+++      }
+++  
+++  // fredt@users 20030810 - patch 1.7.2 - OUTER JOIN rewrite
+++!     public Result buildResult(Session session,
+++                                 int limitcount) throws HsqlException {
+++  
+++          GroupedResult gResult   = new GroupedResult(this, resultMetaData);
+++diff -crN hsqldb-old/src/org/hsqldb/ServerConfiguration.java hsqldb/src/org/hsqldb/ServerConfiguration.java
+++*** hsqldb-old/src/org/hsqldb/ServerConfiguration.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/ServerConfiguration.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 49,55 ****
+++   */
+++  public final class ServerConfiguration implements ServerConstants {
+++  
+++!     private ServerConfiguration() {}
+++  
+++      /**
+++       * Retrieves the default port that a Server will try to use in the
+++--- 49,55 ----
+++   */
+++  public final class ServerConfiguration implements ServerConstants {
+++  
+++!     public ServerConfiguration() {}
+++  
+++      /**
+++       * Retrieves the default port that a Server will try to use in the
+++diff -crN hsqldb-old/src/org/hsqldb/ServerConnection.java hsqldb/src/org/hsqldb/ServerConnection.java
+++*** hsqldb-old/src/org/hsqldb/ServerConnection.java	2007-06-11 12:12:28.000000000 +0200
+++--- hsqldb/src/org/hsqldb/ServerConnection.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 85,91 ****
+++   *  and removed by this class when closed.<p>
+++   *
+++   *  When the database or server is shutdown, the signalClose() method is called
+++!  *  for all current ServerConnection instances. This will call the private
+++   *  close() method unless the ServerConnection thread itself has caused the
+++   *  shutdown. In this case, the keepAlive flag is set to false, allowing the
+++   *  thread to terminate once it has returned the result of the operation to
+++--- 85,91 ----
+++   *  and removed by this class when closed.<p>
+++   *
+++   *  When the database or server is shutdown, the signalClose() method is called
+++!  *  for all current ServerConnection instances. This will call the public
+++   *  close() method unless the ServerConnection thread itself has caused the
+++   *  shutdown. In this case, the keepAlive flag is set to false, allowing the
+++   *  thread to terminate once it has returned the result of the operation to
+++***************
+++*** 102,117 ****
+++  class ServerConnection implements Runnable {
+++  
+++      boolean                      keepAlive;
+++!     private String               user;
+++!     private String               password;
+++      int                          dbID;
+++!     private volatile Session     session;
+++!     private Socket               socket;
+++!     private Server               server;
+++!     private DataInputStream      dataInput;
+++!     private BufferedOutputStream dataOutput;
+++!     private static int           mCurrentThread = 0;
+++!     private int                  mThread;
+++      static final int             BUFFER_SIZE = 0x1000;
+++      final byte[]                 mainBuffer  = new byte[BUFFER_SIZE];
+++      RowOutputBinary              rowOut = new RowOutputBinary(BUFFER_SIZE);
+++--- 102,117 ----
+++  class ServerConnection implements Runnable {
+++  
+++      boolean                      keepAlive;
+++!     public String               user;
+++!     public String               password;
+++      int                          dbID;
+++!     public volatile Session     session;
+++!     public Socket               socket;
+++!     public Server               server;
+++!     public DataInputStream      dataInput;
+++!     public BufferedOutputStream dataOutput;
+++!     public static int           mCurrentThread = 0;
+++!     public int                  mThread;
+++      static final int             BUFFER_SIZE = 0x1000;
+++      final byte[]                 mainBuffer  = new byte[BUFFER_SIZE];
+++      RowOutputBinary              rowOut = new RowOutputBinary(BUFFER_SIZE);
+++***************
+++*** 157,163 ****
+++      /**
+++       * Closes this connection.
+++       */
+++!     private void close() {
+++  
+++          if (session != null) {
+++              session.close();
+++--- 157,163 ----
+++      /**
+++       * Closes this connection.
+++       */
+++!     public void close() {
+++  
+++          if (session != null) {
+++              session.close();
+++***************
+++*** 180,186 ****
+++      /**
+++       * Initializes this connection.
+++       */
+++!     private void init() {
+++  
+++          runnerThread = Thread.currentThread();
+++          keepAlive    = true;
+++--- 180,186 ----
+++      /**
+++       * Initializes this connection.
+++       */
+++!     public void init() {
+++  
+++          runnerThread = Thread.currentThread();
+++          keepAlive    = true;
+++***************
+++*** 274,280 ****
+++       * Used by pooled connections to close the existing SQL session and open
+++       * a new one.
+++       */
+++!     private Result resetSession() {
+++  
+++          Result resultOut;
+++  
+++--- 274,280 ----
+++       * Used by pooled connections to close the existing SQL session and open
+++       * a new one.
+++       */
+++!     public Result resetSession() {
+++  
+++          Result resultOut;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/Server.java hsqldb/src/org/hsqldb/Server.java
+++*** hsqldb-old/src/org/hsqldb/Server.java	2007-10-11 11:32:16.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Server.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 234,240 ****
+++  public class Server implements HsqlSocketRequestHandler {
+++  
+++  //
+++!     protected static final int serverBundleHandle =
+++          BundleHandler.getBundleHandle("org_hsqldb_Server_messages", null);
+++  
+++  //
+++--- 234,240 ----
+++  public class Server implements HsqlSocketRequestHandler {
+++  
+++  //
+++!     public static final int serverBundleHandle =
+++          BundleHandler.getBundleHandle("org_hsqldb_Server_messages", null);
+++  
+++  //
+++***************
+++*** 244,273 ****
+++      HashSet serverConnSet;
+++  
+++  //
+++!     private String[]         dbAlias;
+++!     private String[]         dbType;
+++!     private String[]         dbPath;
+++!     private HsqlProperties[] dbProps;
+++!     private int[]            dbID;
+++  
+++  //  Currently unused
+++!     private int maxConnections;
+++  
+++  //
+++!     protected String            serverId;
+++!     protected int               serverProtocol;
+++!     protected ThreadGroup       serverConnectionThreadGroup;
+++!     protected HsqlSocketFactory socketFactory;
+++!     protected ServerSocket      socket;
+++  
+++  //
+++!     private Thread           serverThread;
+++!     private Throwable        serverError;
+++!     private volatile int     serverState;
+++!     private volatile boolean isSilent;
+++!     private volatile boolean isRemoteOpen;
+++!     private PrintWriter      logWriter;
+++!     private PrintWriter      errWriter;
+++  
+++  //
+++  
+++--- 244,273 ----
+++      HashSet serverConnSet;
+++  
+++  //
+++!     public String[]         dbAlias;
+++!     public String[]         dbType;
+++!     public String[]         dbPath;
+++!     public HsqlProperties[] dbProps;
+++!     public int[]            dbID;
+++  
+++  //  Currently unused
+++!     public int maxConnections;
+++  
+++  //
+++!     public String            serverId;
+++!     public int               serverProtocol;
+++!     public ThreadGroup       serverConnectionThreadGroup;
+++!     public HsqlSocketFactory socketFactory;
+++!     public ServerSocket      socket;
+++  
+++  //
+++!     public Thread           serverThread;
+++!     public Throwable        serverError;
+++!     public volatile int     serverState;
+++!     public volatile boolean isSilent;
+++!     public volatile boolean isRemoteOpen;
+++!     public PrintWriter      logWriter;
+++!     public PrintWriter      errWriter;
+++  
+++  //
+++  
+++***************
+++*** 275,281 ****
+++       * A specialized Thread inner class in which the run() method of this
+++       * server executes.
+++       */
+++!     private class ServerThread extends Thread {
+++  
+++          /**
+++           * Constructs a new thread in which to execute the run method
+++--- 275,281 ----
+++       * A specialized Thread inner class in which the run() method of this
+++       * server executes.
+++       */
+++!     public class ServerThread extends Thread {
+++  
+++          /**
+++           * Constructs a new thread in which to execute the run method
+++***************
+++*** 318,324 ****
+++       * @param protocol the ServerConstants code indicating which
+++       *      connection protocol to handle
+++       */
+++!     protected Server(int protocol) {
+++          init(protocol);
+++      }
+++  
+++--- 318,324 ----
+++       * @param protocol the ServerConstants code indicating which
+++       *      connection protocol to handle
+++       */
+++!     public Server(int protocol) {
+++          init(protocol);
+++      }
+++  
+++***************
+++*** 455,461 ****
+++          printWithThread("signalCloseAllServerConnections() exited");
+++      }
+++  
+++!     protected void finalize() throws Throwable {
+++  
+++          if (serverThread != null) {
+++              releaseServerSocket();
+++--- 455,461 ----
+++          printWithThread("signalCloseAllServerConnections() exited");
+++      }
+++  
+++!     public void finalize() throws Throwable {
+++  
+++          if (serverThread != null) {
+++              releaseServerSocket();
+++***************
+++*** 1331,1337 ****
+++       *
+++       * @param socket the socket to test.
+++       */
+++!     protected boolean allowConnection(Socket socket) {
+++          return true;
+++      }
+++  
+++--- 1331,1337 ----
+++       *
+++       * @param socket the socket to test.
+++       */
+++!     public boolean allowConnection(Socket socket) {
+++          return true;
+++      }
+++  
+++***************
+++*** 1340,1346 ****
+++       *
+++       * @param protocol typically either SC_PROTOCOL_HTTP or SC_PROTOCOL_HSQL
+++       */
+++!     protected void init(int protocol) {
+++  
+++          // PRE:  This method is only called from the constructor
+++          serverState      = ServerConstants.SERVER_STATE_SHUTDOWN;
+++--- 1340,1346 ----
+++       *
+++       * @param protocol typically either SC_PROTOCOL_HTTP or SC_PROTOCOL_HSQL
+++       */
+++!     public void init(int protocol) {
+++  
+++          // PRE:  This method is only called from the constructor
+++          serverState      = ServerConstants.SERVER_STATE_SHUTDOWN;
+++***************
+++*** 1360,1366 ****
+++       *
+++       * @param state the new value
+++       */
+++!     protected synchronized void setState(int state) {
+++          serverState = state;
+++      }
+++  
+++--- 1360,1366 ----
+++       *
+++       * @param state the new value
+++       */
+++!     public synchronized void setState(int state) {
+++          serverState = state;
+++      }
+++  
+++***************
+++*** 1437,1443 ****
+++       *
+++       * @param msg The message to print
+++       */
+++!     protected synchronized void print(String msg) {
+++  
+++          PrintWriter writer = logWriter;
+++  
+++--- 1437,1443 ----
+++       *
+++       * @param msg The message to print
+++       */
+++!     public synchronized void print(String msg) {
+++  
+++          PrintWriter writer = logWriter;
+++  
+++***************
+++*** 1482,1488 ****
+++       *
+++       * @param t the Throwable whose stack trace is to be printed
+++       */
+++!     protected synchronized void printStackTrace(Throwable t) {
+++  
+++          if (errWriter != null) {
+++              t.printStackTrace(errWriter);
+++--- 1482,1488 ----
+++       *
+++       * @param t the Throwable whose stack trace is to be printed
+++       */
+++!     public synchronized void printStackTrace(Throwable t) {
+++  
+++          if (errWriter != null) {
+++              t.printStackTrace(errWriter);
+++***************
+++*** 1508,1514 ****
+++       *
+++       * @param msg the message to print
+++       */
+++!     protected void printWithThread(String msg) {
+++  
+++          if (!isSilent()) {
+++              print("[" + Thread.currentThread() + "]: " + msg);
+++--- 1508,1514 ----
+++       *
+++       * @param msg the message to print
+++       */
+++!     public void printWithThread(String msg) {
+++  
+++          if (!isSilent()) {
+++              print("[" + Thread.currentThread() + "]: " + msg);
+++***************
+++*** 1522,1528 ****
+++       *
+++       * @param msg the message to print
+++       */
+++!     protected synchronized void printError(String msg) {
+++  
+++          PrintWriter writer = errWriter;
+++  
+++--- 1522,1528 ----
+++       *
+++       * @param msg the message to print
+++       */
+++!     public synchronized void printError(String msg) {
+++  
+++          PrintWriter writer = errWriter;
+++  
+++***************
+++*** 1880,1886 ****
+++      /**
+++       * Initialises the database attributes lists from the server properties object.
+++       */
+++!     private void setDBInfoArrays() {
+++  
+++          dbAlias = getDBNameArray();
+++          dbPath  = new String[dbAlias.length];
+++--- 1880,1886 ----
+++      /**
+++       * Initialises the database attributes lists from the server properties object.
+++       */
+++!     public void setDBInfoArrays() {
+++  
+++          dbAlias = getDBNameArray();
+++          dbPath  = new String[dbAlias.length];
+++***************
+++*** 1919,1925 ****
+++       * Returns a possibly sparse array of all server.dbname.n values
+++       * from the properties object.
+++       */
+++!     private String[] getDBNameArray() {
+++  
+++          final String prefix    = ServerConstants.SC_KEY_DBNAME + ".";
+++          final int    prefixLen = prefix.length();
+++--- 1919,1925 ----
+++       * Returns a possibly sparse array of all server.dbname.n values
+++       * from the properties object.
+++       */
+++!     public String[] getDBNameArray() {
+++  
+++          final String prefix    = ServerConstants.SC_KEY_DBNAME + ".";
+++          final int    prefixLen = prefix.length();
+++***************
+++*** 1960,1966 ****
+++       * @throws Exception if it is not possible to construct and install
+++       *      a new ServerSocket
+++       */
+++!     private void openServerSocket() throws Exception {
+++  
+++          String    address;
+++          int       port;
+++--- 1960,1966 ----
+++       * @throws Exception if it is not possible to construct and install
+++       *      a new ServerSocket
+++       */
+++!     public void openServerSocket() throws Exception {
+++  
+++          String    address;
+++          int       port;
+++***************
+++*** 2024,2030 ****
+++      }
+++  
+++      /** Prints a timestamped message indicating that this server is online */
+++!     private void printServerOnlineMessage() {
+++  
+++          String s = getProductName() + " " + getProductVersion() + " is online";
+++  
+++--- 2024,2030 ----
+++      }
+++  
+++      /** Prints a timestamped message indicating that this server is online */
+++!     public void printServerOnlineMessage() {
+++  
+++          String s = getProductName() + " " + getProductVersion() + " is online";
+++  
+++***************
+++*** 2035,2041 ****
+++      /**
+++       * Prints a description of the server properties iff !isSilent().
+++       */
+++!     protected void printProperties() {
+++  
+++          Enumeration e;
+++          String      key;
+++--- 2035,2041 ----
+++      /**
+++       * Prints a description of the server properties iff !isSilent().
+++       */
+++!     public void printProperties() {
+++  
+++          Enumeration e;
+++          String      key;
+++***************
+++*** 2063,2069 ****
+++       * this method exists immediately, otherwise, the result is to fully
+++       * shut down the server.
+++       */
+++!     private void releaseServerSocket() {
+++  
+++          printWithThread("releaseServerSocket() entered");
+++  
+++--- 2063,2069 ----
+++       * this method exists immediately, otherwise, the result is to fully
+++       * shut down the server.
+++       */
+++!     public void releaseServerSocket() {
+++  
+++          printWithThread("releaseServerSocket() entered");
+++  
+++***************
+++*** 2092,2098 ****
+++       * If any part of the process fails, then this server enters
+++       * its shutdown sequence.
+++       */
+++!     private void run() {
+++  
+++          StopWatch   sw;
+++          ThreadGroup tg;
+++--- 2092,2098 ----
+++       * If any part of the process fails, then this server enters
+++       * its shutdown sequence.
+++       */
+++!     public void run() {
+++  
+++          StopWatch   sw;
+++          ThreadGroup tg;
+++***************
+++*** 2176,2182 ****
+++       *
+++       * @param t The new value for the server error
+++       */
+++!     protected void setServerError(Throwable t) {
+++          serverError = t;
+++      }
+++  
+++--- 2176,2182 ----
+++       *
+++       * @param t The new value for the server error
+++       */
+++!     public void setServerError(Throwable t) {
+++          serverError = t;
+++      }
+++  
+++***************
+++*** 2193,2199 ****
+++       * @param error true if shutdown is in response to an error
+++       *      state, else false
+++       */
+++!     protected synchronized void shutdown(boolean error) {
+++  
+++          if (serverState == ServerConstants.SERVER_STATE_SHUTDOWN) {
+++              return;
+++--- 2193,2199 ----
+++       * @param error true if shutdown is in response to an error
+++       *      state, else false
+++       */
+++!     public synchronized void shutdown(boolean error) {
+++  
+++          if (serverState == ServerConstants.SERVER_STATE_SHUTDOWN) {
+++              return;
+++***************
+++*** 2276,2282 ****
+++       *
+++       * @param key for message
+++       */
+++!     protected static void printHelp(String key) {
+++          System.out.print(BundleHandler.getString(serverBundleHandle, key));
+++      }
+++  }
+++--- 2276,2282 ----
+++       *
+++       * @param key for message
+++       */
+++!     public static void printHelp(String key) {
+++          System.out.print(BundleHandler.getString(serverBundleHandle, key));
+++      }
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/Servlet.java hsqldb/src/org/hsqldb/Servlet.java
+++*** hsqldb-old/src/org/hsqldb/Servlet.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Servlet.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 127,139 ****
+++   */
+++  public class Servlet extends javax.servlet.http.HttpServlet {
+++  
+++!     private static final int BUFFER_SIZE = 256;
+++!     private String           dbType;
+++!     private String           dbPath;
+++!     private String           errorStr;
+++!     private RowOutputBinary  rowOut;
+++!     private RowInputBinary   rowIn;
+++!     private int              iQueries;
+++  
+++      /**
+++       * Method declaration
+++--- 127,139 ----
+++   */
+++  public class Servlet extends javax.servlet.http.HttpServlet {
+++  
+++!     public static final int BUFFER_SIZE = 256;
+++!     public String           dbType;
+++!     public String           dbPath;
+++!     public String           errorStr;
+++!     public RowOutputBinary  rowOut;
+++!     public RowInputBinary   rowIn;
+++!     public int              iQueries;
+++  
+++      /**
+++       * Method declaration
+++***************
+++*** 190,196 ****
+++          log("Initialization completed.");
+++      }
+++  
+++!     private static long lModified = 0;
+++  
+++      /**
+++       * Method declaration
+++--- 190,196 ----
+++          log("Initialization completed.");
+++      }
+++  
+++!     public static long lModified = 0;
+++  
+++      /**
+++       * Method declaration
+++***************
+++*** 200,206 ****
+++       *
+++       * @return
+++       */
+++!     protected long getLastModified(HttpServletRequest req) {
+++  
+++          // this is made so that the cache of the http server is not used
+++          // maybe there is some other way
+++--- 200,206 ----
+++       *
+++       * @return
+++       */
+++!     public long getLastModified(HttpServletRequest req) {
+++  
+++          // this is made so that the cache of the http server is not used
+++          // maybe there is some other way
+++diff -crN hsqldb-old/src/org/hsqldb/Session.java hsqldb/src/org/hsqldb/Session.java
+++*** hsqldb-old/src/org/hsqldb/Session.java	2007-06-21 10:17:24.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Session.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 113,157 ****
+++  public class Session implements SessionInterface {
+++  
+++      //
+++!     private volatile boolean isAutoCommit;
+++!     private volatile boolean isReadOnly;
+++!     private volatile boolean isClosed;
+++  
+++      //
+++      Database          database;
+++!     private User      user;
+++      HsqlArrayList     rowActionList;
+++!     private boolean   isNestedTransaction;
+++!     private int       nestedOldTransIndex;
+++      int               isolationMode = SessionInterface.TX_READ_COMMITTED;
+++      long              actionTimestamp;
+++      long              transactionTimestamp;
+++!     private int       currentMaxRows;
+++!     private int       sessionMaxRows;
+++!     private Number    lastIdentity = ValuePool.getInt(0);
+++!     private final int sessionId;
+++      HashMappedList    savepoints;
+++!     private boolean   script;
+++!     private Tokenizer tokenizer;
+++!     private Parser    parser;
+++      static final Result emptyUpdateCount =
+++          new Result(ResultConstants.UPDATECOUNT);
+++  
+++      //
+++!     private jdbcConnection intConnection;
+++  
+++      // schema
+++      public HsqlName  currentSchema;
+++      public HsqlName  loggedSchema;
+++!     private HsqlName oldSchema;
+++  
+++      // query processing
+++      boolean isProcessingScript;
+++      boolean isProcessingLog;
+++  
+++      // two types of temp tables
+++!     private IntKeyHashMap indexArrayMap;
+++!     private IntKeyHashMap indexArrayKeepMap;
+++  
+++      /** @todo fredt - clarify in which circumstances Session has to disconnect */
+++      Session getSession() {
+++--- 113,157 ----
+++  public class Session implements SessionInterface {
+++  
+++      //
+++!     public volatile boolean isAutoCommit;
+++!     public volatile boolean isReadOnly;
+++!     public volatile boolean isClosed;
+++  
+++      //
+++      Database          database;
+++!     public User      user;
+++      HsqlArrayList     rowActionList;
+++!     public boolean   isNestedTransaction;
+++!     public int       nestedOldTransIndex;
+++      int               isolationMode = SessionInterface.TX_READ_COMMITTED;
+++      long              actionTimestamp;
+++      long              transactionTimestamp;
+++!     public int       currentMaxRows;
+++!     public int       sessionMaxRows;
+++!     public Number    lastIdentity = ValuePool.getInt(0);
+++!     public final int sessionId;
+++      HashMappedList    savepoints;
+++!     public boolean   script;
+++!     public Tokenizer tokenizer;
+++!     public Parser    parser;
+++      static final Result emptyUpdateCount =
+++          new Result(ResultConstants.UPDATECOUNT);
+++  
+++      //
+++!     public jdbcConnection intConnection;
+++  
+++      // schema
+++      public HsqlName  currentSchema;
+++      public HsqlName  loggedSchema;
+++!     public HsqlName oldSchema;
+++  
+++      // query processing
+++      boolean isProcessingScript;
+++      boolean isProcessingLog;
+++  
+++      // two types of temp tables
+++!     public IntKeyHashMap indexArrayMap;
+++!     public IntKeyHashMap indexArrayKeepMap;
+++  
+++      /** @todo fredt - clarify in which circumstances Session has to disconnect */
+++      Session getSession() {
+++***************
+++*** 728,734 ****
+++  
+++  // boucherb@users 20020810 metadata 1.7.2
+++  //----------------------------------------------------------------
+++!     private final long connectTime = System.currentTimeMillis();
+++  
+++  // more effecient for MetaData concerns than checkAdmin
+++  
+++--- 728,734 ----
+++  
+++  // boucherb@users 20020810 metadata 1.7.2
+++  //----------------------------------------------------------------
+++!     public final long connectTime = System.currentTimeMillis();
+++  
+++  // more effecient for MetaData concerns than checkAdmin
+++  
+++***************
+++*** 1004,1010 ****
+++          }
+++      }
+++  
+++!     private Result performPostExecute(Result r) {
+++  
+++          try {
+++              if (database != null) {
+++--- 1004,1010 ----
+++          }
+++      }
+++  
+++!     public Result performPostExecute(Result r) {
+++  
+++          try {
+++              if (database != null) {
+++***************
+++*** 1043,1049 ****
+++          return compiledStatementExecutor.execute(cs, pvals);
+++      }
+++  
+++!     private Result sqlExecuteBatch(Result cmd) {
+++  
+++          int               csid;
+++          Record            record;
+++--- 1043,1049 ----
+++          return compiledStatementExecutor.execute(cs, pvals);
+++      }
+++  
+++!     public Result sqlExecuteBatch(Result cmd) {
+++  
+++          int               csid;
+++          Record            record;
+++***************
+++*** 1102,1108 ****
+++          return out;
+++      }
+++  
+++!     private Result sqlExecuteBatchDirect(Result cmd) {
+++  
+++          Record record;
+++          Result out;
+++--- 1102,1108 ----
+++          return out;
+++      }
+++  
+++!     public Result sqlExecuteBatchDirect(Result cmd) {
+++  
+++          Record record;
+++          Result out;
+++***************
+++*** 1163,1169 ****
+++       *
+++       * @return the result of executing the statement
+++       */
+++!     private Result sqlExecute(Result cmd) {
+++  
+++          int csid = cmd.getStatementID();
+++          CompiledStatement cs = compiledStatementManager.getStatement(this,
+++--- 1163,1169 ----
+++       *
+++       * @return the result of executing the statement
+++       */
+++!     public Result sqlExecute(Result cmd) {
+++  
+++          int csid = cmd.getStatementID();
+++          CompiledStatement cs = compiledStatementManager.getStatement(this,
+++***************
+++*** 1182,1188 ****
+++          return sqlExecute(cs, pvals);
+++      }
+++  
+++!     private Result sqlExecute(CompiledStatement cs, Object[] pvals) {
+++          return sqlExecuteCompiledNoPreChecks(cs, pvals);
+++      }
+++  
+++--- 1182,1188 ----
+++          return sqlExecute(cs, pvals);
+++      }
+++  
+++!     public Result sqlExecute(CompiledStatement cs, Object[] pvals) {
+++          return sqlExecuteCompiledNoPreChecks(cs, pvals);
+++      }
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/SessionManager.java hsqldb/src/org/hsqldb/SessionManager.java
+++*** hsqldb-old/src/org/hsqldb/SessionManager.java	2007-07-30 07:55:20.000000000 +0200
+++--- hsqldb/src/org/hsqldb/SessionManager.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 46,53 ****
+++  public class SessionManager {
+++  
+++      int                   sessionIdCount = 1;
+++!     private IntKeyHashMap sessionMap     = new IntKeyHashMap();
+++!     private Session       sysSession;
+++  
+++  // TODO:
+++  //
+++--- 46,53 ----
+++  public class SessionManager {
+++  
+++      int                   sessionIdCount = 1;
+++!     public IntKeyHashMap sessionMap     = new IntKeyHashMap();
+++!     public Session       sysSession;
+++  
+++  // TODO:
+++  //
+++diff -crN hsqldb-old/src/org/hsqldb/SetFunction.java hsqldb/src/org/hsqldb/SetFunction.java
+++*** hsqldb-old/src/org/hsqldb/SetFunction.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/SetFunction.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 51,74 ****
+++   */
+++  public class SetFunction {
+++  
+++!     private HashSet distinctValues;
+++!     private boolean isDistinct;
+++  
+++      //
+++!     private int setType;
+++!     private int type;
+++  
+++      //
+++!     private int count;
+++  
+++      //
+++!     private boolean    hasNull;
+++!     private boolean    every = true;
+++!     private boolean    some  = false;
+++!     private long       currentLong;
+++!     private double     currentDouble;
+++!     private BigDecimal currentBigDecimal;
+++!     private Object     currentValue;
+++  
+++      SetFunction(int setType, int type, boolean isDistinct) {
+++  
+++--- 51,74 ----
+++   */
+++  public class SetFunction {
+++  
+++!     public HashSet distinctValues;
+++!     public boolean isDistinct;
+++  
+++      //
+++!     public int setType;
+++!     public int type;
+++  
+++      //
+++!     public int count;
+++  
+++      //
+++!     public boolean    hasNull;
+++!     public boolean    every = true;
+++!     public boolean    some  = false;
+++!     public long       currentLong;
+++!     public double     currentDouble;
+++!     public BigDecimal currentBigDecimal;
+++!     public Object     currentValue;
+++  
+++      SetFunction(int setType, int type, boolean isDistinct) {
+++  
+++***************
+++*** 423,435 ****
+++      // end long sum
+++      // statistics support - written by Campbell
+++      // this section was orginally an independent class
+++!     private double  sk;
+++!     private double  vk;
+++!     private long    n;
+++!     private boolean initialized;
+++!     private boolean sample;
+++  
+++!     private void addDataPoint(Number x) {    // optimized
+++  
+++          double xi;
+++          double xsi;
+++--- 423,435 ----
+++      // end long sum
+++      // statistics support - written by Campbell
+++      // this section was orginally an independent class
+++!     public double  sk;
+++!     public double  vk;
+++!     public long    n;
+++!     public boolean initialized;
+++!     public boolean sample;
+++  
+++!     public void addDataPoint(Number x) {    // optimized
+++  
+++          double xi;
+++          double xsi;
+++***************
+++*** 458,464 ****
+++          sk  += xi;
+++      }
+++  
+++!     private Number getVariance() {
+++  
+++          if (!initialized) {
+++              return null;
+++--- 458,464 ----
+++          sk  += xi;
+++      }
+++  
+++!     public Number getVariance() {
+++  
+++          if (!initialized) {
+++              return null;
+++***************
+++*** 469,475 ****
+++                        : new Double(vk / (double) (n));
+++      }
+++  
+++!     private Number getStdDev() {
+++  
+++          if (!initialized) {
+++              return null;
+++--- 469,475 ----
+++                        : new Double(vk / (double) (n));
+++      }
+++  
+++!     public Number getStdDev() {
+++  
+++          if (!initialized) {
+++              return null;
+++diff -crN hsqldb-old/src/org/hsqldb/store/BaseHashMap.java hsqldb/src/org/hsqldb/store/BaseHashMap.java
+++*** hsqldb-old/src/org/hsqldb/store/BaseHashMap.java	2006-02-16 04:48:00.000000000 +0100
+++--- hsqldb/src/org/hsqldb/store/BaseHashMap.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 88,104 ****
+++      boolean isObjectValue;
+++  
+++      //
+++!     protected HashIndex hashIndex;
+++  
+++      //
+++!     protected int[]    intKeyTable;
+++!     protected Object[] objectKeyTable;
+++!     protected long[]   longKeyTable;
+++  
+++      //
+++!     protected int[]    intValueTable;
+++!     protected Object[] objectValueTable;
+++!     protected long[]   longValueTable;
+++  
+++      //
+++      int   accessMin;
+++--- 88,104 ----
+++      boolean isObjectValue;
+++  
+++      //
+++!     public HashIndex hashIndex;
+++  
+++      //
+++!     public int[]    intKeyTable;
+++!     public Object[] objectKeyTable;
+++!     public long[]   longKeyTable;
+++  
+++      //
+++!     public int[]    intValueTable;
+++!     public Object[] objectValueTable;
+++!     public long[]   longValueTable;
+++  
+++      //
+++      int   accessMin;
+++***************
+++*** 110,135 ****
+++      final int         initialCapacity;
+++      int               threshold;
+++      int               maxCapacity;
+++!     protected int     purgePolicy = NO_PURGE;
+++!     protected boolean minimizeOnEmpty;
+++  
+++      //
+++      boolean hasZeroKey;
+++      int     zeroKeyIndex = -1;
+++  
+++      // keyOrValueTypes
+++!     protected static final int noKeyOrValue     = 0;
+++!     protected static final int intKeyOrValue    = 1;
+++!     protected static final int longKeyOrValue   = 2;
+++!     protected static final int objectKeyOrValue = 3;
+++  
+++      // purgePolicy
+++!     protected static final int NO_PURGE      = 0;
+++!     protected static final int PURGE_ALL     = 1;
+++!     protected static final int PURGE_HALF    = 2;
+++!     protected static final int PURGE_QUARTER = 3;
+++  
+++!     protected BaseHashMap(int initialCapacity, float loadFactor, int keyType,
+++                            int valueType,
+++                            boolean hasAccessCount)
+++                            throws IllegalArgumentException {
+++--- 110,135 ----
+++      final int         initialCapacity;
+++      int               threshold;
+++      int               maxCapacity;
+++!     public int     purgePolicy = NO_PURGE;
+++!     public boolean minimizeOnEmpty;
+++  
+++      //
+++      boolean hasZeroKey;
+++      int     zeroKeyIndex = -1;
+++  
+++      // keyOrValueTypes
+++!     public static final int noKeyOrValue     = 0;
+++!     public static final int intKeyOrValue    = 1;
+++!     public static final int longKeyOrValue   = 2;
+++!     public static final int objectKeyOrValue = 3;
+++  
+++      // purgePolicy
+++!     public static final int NO_PURGE      = 0;
+++!     public static final int PURGE_ALL     = 1;
+++!     public static final int PURGE_HALF    = 2;
+++!     public static final int PURGE_QUARTER = 3;
+++  
+++!     public BaseHashMap(int initialCapacity, float loadFactor, int keyType,
+++                            int valueType,
+++                            boolean hasAccessCount)
+++                            throws IllegalArgumentException {
+++***************
+++*** 185,191 ****
+++          }
+++      }
+++  
+++!     protected int getLookup(Object key, int hash) {
+++  
+++          int    lookup = hashIndex.getLookup(hash);
+++          Object tempKey;
+++--- 185,191 ----
+++          }
+++      }
+++  
+++!     public int getLookup(Object key, int hash) {
+++  
+++          int    lookup = hashIndex.getLookup(hash);
+++          Object tempKey;
+++***************
+++*** 201,207 ****
+++          return lookup;
+++      }
+++  
+++!     protected int getLookup(int key) {
+++  
+++          int lookup = hashIndex.getLookup(key);
+++          int tempKey;
+++--- 201,207 ----
+++          return lookup;
+++      }
+++  
+++!     public int getLookup(int key) {
+++  
+++          int lookup = hashIndex.getLookup(key);
+++          int tempKey;
+++***************
+++*** 217,223 ****
+++          return lookup;
+++      }
+++  
+++!     protected int getLookup(long key) {
+++  
+++          int  lookup = hashIndex.getLookup((int) key);
+++          long tempKey;
+++--- 217,223 ----
+++          return lookup;
+++      }
+++  
+++!     public int getLookup(long key) {
+++  
+++          int  lookup = hashIndex.getLookup((int) key);
+++          long tempKey;
+++***************
+++*** 236,242 ****
+++      /**
+++       * generic method for adding or removing keys
+++       */
+++!     protected Object addOrRemove(long longKey, long longValue,
+++                                   Object objectKey, Object objectValue,
+++                                   boolean remove) {
+++  
+++--- 236,242 ----
+++      /**
+++       * generic method for adding or removing keys
+++       */
+++!     public Object addOrRemove(long longKey, long longValue,
+++                                   Object objectKey, Object objectValue,
+++                                   boolean remove) {
+++  
+++***************
+++*** 384,390 ****
+++      /**
+++       * type-specific method for adding or removing keys in int->Object maps
+++       */
+++!     protected Object addOrRemove(int intKey, Object objectValue,
+++                                   boolean remove) {
+++  
+++          int    hash        = intKey;
+++--- 384,390 ----
+++      /**
+++       * type-specific method for adding or removing keys in int->Object maps
+++       */
+++!     public Object addOrRemove(int intKey, Object objectValue,
+++                                   boolean remove) {
+++  
+++          int    hash        = intKey;
+++***************
+++*** 466,472 ****
+++      /**
+++       * type specific method for Object sets or Object->Object maps
+++       */
+++!     protected Object removeObject(Object objectKey) {
+++  
+++          if (objectKey == null) {
+++              return null;
+++--- 466,472 ----
+++      /**
+++       * type specific method for Object sets or Object->Object maps
+++       */
+++!     public Object removeObject(Object objectKey) {
+++  
+++          if (objectKey == null) {
+++              return null;
+++***************
+++*** 499,505 ****
+++          return returnValue;
+++      }
+++  
+++!     protected boolean reset() {
+++  
+++          if (maxCapacity == 0 || maxCapacity > threshold) {
+++              rehash(hashIndex.hashTable.length * 2);
+++--- 499,505 ----
+++          return returnValue;
+++      }
+++  
+++!     public boolean reset() {
+++  
+++          if (maxCapacity == 0 || maxCapacity > threshold) {
+++              rehash(hashIndex.hashTable.length * 2);
+++***************
+++*** 531,537 ****
+++       *
+++       * newCapacity must be larger or equal to existing number of elements.
+++       */
+++!     protected void rehash(int newCapacity) {
+++  
+++          int     limitLookup     = hashIndex.newNodePointer;
+++          boolean oldZeroKey      = hasZeroKey;
+++--- 531,537 ----
+++       *
+++       * newCapacity must be larger or equal to existing number of elements.
+++       */
+++!     public void rehash(int newCapacity) {
+++  
+++          int     limitLookup     = hashIndex.newNodePointer;
+++          boolean oldZeroKey      = hasZeroKey;
+++***************
+++*** 584,590 ****
+++      /**
+++       * resize the arrays contianing the key / value data
+++       */
+++!     private void resizeElementArrays(int dataLength, int newLength) {
+++  
+++          Object temp;
+++          int    usedLength = newLength > dataLength ? dataLength
+++--- 584,590 ----
+++      /**
+++       * resize the arrays contianing the key / value data
+++       */
+++!     public void resizeElementArrays(int dataLength, int newLength) {
+++  
+++          Object temp;
+++          int    usedLength = newLength > dataLength ? dataLength
+++***************
+++*** 643,649 ****
+++      /**
+++       * clear all the key / value data in a range.
+++       */
+++!     private void clearElementArrays(final int from, final int to) {
+++  
+++          if (isIntKey) {
+++              int counter = to;
+++--- 643,649 ----
+++      /**
+++       * clear all the key / value data in a range.
+++       */
+++!     public void clearElementArrays(final int from, final int to) {
+++  
+++          if (isIntKey) {
+++              int counter = to;
+++***************
+++*** 798,804 ****
+++       * find the next lookup in the key/value tables with an entry
+++       * uses current limits and zero integer key state
+++       */
+++!     protected int nextLookup(int lookup) {
+++  
+++          for (++lookup; lookup < hashIndex.newNodePointer; lookup++) {
+++              if (isObjectKey) {
+++--- 798,804 ----
+++       * find the next lookup in the key/value tables with an entry
+++       * uses current limits and zero integer key state
+++       */
+++!     public int nextLookup(int lookup) {
+++  
+++          for (++lookup; lookup < hashIndex.newNodePointer; lookup++) {
+++              if (isObjectKey) {
+++***************
+++*** 826,837 ****
+++      /**
+++       * row must already been freed of key / element
+++       */
+++!     protected void removeRow(int lookup) {
+++          hashIndex.removeEmptyNode(lookup);
+++          removeFromElementArrays(lookup);
+++      }
+++  
+++!     protected Object removeLookup(int lookup) {
+++  
+++          if (isObjectKey) {
+++              return addOrRemove(0, 0, objectKeyTable[lookup], null, true);
+++--- 826,837 ----
+++      /**
+++       * row must already been freed of key / element
+++       */
+++!     public void removeRow(int lookup) {
+++          hashIndex.removeEmptyNode(lookup);
+++          removeFromElementArrays(lookup);
+++      }
+++  
+++!     public Object removeLookup(int lookup) {
+++  
+++          if (isObjectKey) {
+++              return addOrRemove(0, 0, objectKeyTable[lookup], null, true);
+++***************
+++*** 862,868 ****
+++       * Return the max accessCount value for count elements with the lowest
+++       * access count. Always return at least accessMin + 1
+++       */
+++!     protected int getAccessCountCeiling(int count, int margin) {
+++          return ArrayCounter.rank(accessTable, hashIndex.newNodePointer,
+++                                   count, accessMin + 1, accessCount, margin);
+++      }
+++--- 862,868 ----
+++       * Return the max accessCount value for count elements with the lowest
+++       * access count. Always return at least accessMin + 1
+++       */
+++!     public int getAccessCountCeiling(int count, int margin) {
+++          return ArrayCounter.rank(accessTable, hashIndex.newNodePointer,
+++                                   count, accessMin + 1, accessCount, margin);
+++      }
+++***************
+++*** 873,879 ****
+++       *
+++       * Only for maps with Object key table
+++       */
+++!     protected void clear(int count, int margin) {
+++  
+++          if (margin < 64) {
+++              margin = 64;
+++--- 873,879 ----
+++       *
+++       * Only for maps with Object key table
+++       */
+++!     public void clear(int count, int margin) {
+++  
+++          if (margin < 64) {
+++              margin = 64;
+++***************
+++*** 917,923 ****
+++          return hashIndex.elementCount == 0;
+++      }
+++  
+++!     protected boolean containsKey(Object key) {
+++  
+++          if (key == null) {
+++              return false;
+++--- 917,923 ----
+++          return hashIndex.elementCount == 0;
+++      }
+++  
+++!     public boolean containsKey(Object key) {
+++  
+++          if (key == null) {
+++              return false;
+++***************
+++*** 929,935 ****
+++                              : true;
+++      }
+++  
+++!     protected boolean containsKey(int key) {
+++  
+++          int lookup = getLookup(key);
+++  
+++--- 929,935 ----
+++                              : true;
+++      }
+++  
+++!     public boolean containsKey(int key) {
+++  
+++          int lookup = getLookup(key);
+++  
+++***************
+++*** 937,943 ****
+++                              : true;
+++      }
+++  
+++!     protected boolean containsKey(long key) {
+++  
+++          int lookup = getLookup(key);
+++  
+++--- 937,943 ----
+++                              : true;
+++      }
+++  
+++!     public boolean containsKey(long key) {
+++  
+++          int lookup = getLookup(key);
+++  
+++***************
+++*** 945,951 ****
+++                              : true;
+++      }
+++  
+++!     protected boolean containsValue(Object value) {
+++  
+++          int lookup = 0;
+++  
+++--- 945,951 ----
+++                              : true;
+++      }
+++  
+++!     public boolean containsValue(Object value) {
+++  
+++          int lookup = 0;
+++  
+++***************
+++*** 986,992 ****
+++       * Iterator returns Object, int or long and is used both for keys and
+++       * values
+++       */
+++!     protected class BaseHashIterator implements org.hsqldb.lib.Iterator {
+++  
+++          boolean keys;
+++          int     lookup = -1;
+++--- 986,992 ----
+++       * Iterator returns Object, int or long and is used both for keys and
+++       * values
+++       */
+++!     public class BaseHashIterator implements org.hsqldb.lib.Iterator {
+++  
+++          boolean keys;
+++          int     lookup = -1;
+++diff -crN hsqldb-old/src/org/hsqldb/store/BitMap.java hsqldb/src/org/hsqldb/store/BitMap.java
+++*** hsqldb-old/src/org/hsqldb/store/BitMap.java	2006-09-22 15:14:04.000000000 +0200
+++--- hsqldb/src/org/hsqldb/store/BitMap.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 144,150 ****
+++                                   : true;
+++      }
+++  
+++!     private void doubleCapacity() {
+++  
+++          int[] newmap = new int[map.length * 2];
+++  
+++--- 144,150 ----
+++                                   : true;
+++      }
+++  
+++!     public void doubleCapacity() {
+++  
+++          int[] newmap = new int[map.length * 2];
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/store/ValuePoolHashMap.java hsqldb/src/org/hsqldb/store/ValuePoolHashMap.java
+++*** hsqldb-old/src/org/hsqldb/store/ValuePoolHashMap.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/store/ValuePoolHashMap.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 98,104 ****
+++          this.purgePolicy = newPolicy;
+++      }
+++  
+++!     protected Integer getOrAddInteger(int intKey) {
+++  
+++          Integer testValue;
+++          int     index      = hashIndex.getHashIndex(intKey);
+++--- 98,104 ----
+++          this.purgePolicy = newPolicy;
+++      }
+++  
+++!     public Integer getOrAddInteger(int intKey) {
+++  
+++          Integer testValue;
+++          int     index      = hashIndex.getHashIndex(intKey);
+++***************
+++*** 140,146 ****
+++          return testValue;
+++      }
+++  
+++!     protected Long getOrAddLong(long longKey) {
+++  
+++          Long testValue;
+++          int index = hashIndex.getHashIndex((int) (longKey
+++--- 140,146 ----
+++          return testValue;
+++      }
+++  
+++!     public Long getOrAddLong(long longKey) {
+++  
+++          Long testValue;
+++          int index = hashIndex.getHashIndex((int) (longKey
+++***************
+++*** 199,205 ****
+++       * and hashCode().
+++       * @return String from map or a new String
+++       */
+++!     protected String getOrAddString(Object key) {
+++  
+++          String testValue;
+++          int    index      = hashIndex.getHashIndex(key.hashCode());
+++--- 199,205 ----
+++       * and hashCode().
+++       * @return String from map or a new String
+++       */
+++!     public String getOrAddString(Object key) {
+++  
+++          String testValue;
+++          int    index      = hashIndex.getHashIndex(key.hashCode());
+++***************
+++*** 241,247 ****
+++          return testValue;
+++      }
+++  
+++!     protected Date getOrAddDate(long longKey) {
+++  
+++          Date testValue;
+++          int  hash       = (int) longKey ^ (int) (longKey >>> 32);
+++--- 241,247 ----
+++          return testValue;
+++      }
+++  
+++!     public Date getOrAddDate(long longKey) {
+++  
+++          Date testValue;
+++          int  hash       = (int) longKey ^ (int) (longKey >>> 32);
+++***************
+++*** 284,290 ****
+++          return testValue;
+++      }
+++  
+++!     protected Double getOrAddDouble(long longKey) {
+++  
+++          Double testValue;
+++          int index = hashIndex.getHashIndex((int) (longKey
+++--- 284,290 ----
+++          return testValue;
+++      }
+++  
+++!     public Double getOrAddDouble(long longKey) {
+++  
+++          Double testValue;
+++          int index = hashIndex.getHashIndex((int) (longKey
+++***************
+++*** 327,333 ****
+++          return testValue;
+++      }
+++  
+++!     protected Object getOrAddObject(Object key) {
+++  
+++          Object testValue;
+++          int    index      = hashIndex.getHashIndex(key.hashCode());
+++--- 327,333 ----
+++          return testValue;
+++      }
+++  
+++!     public Object getOrAddObject(Object key) {
+++  
+++          Object testValue;
+++          int    index      = hashIndex.getHashIndex(key.hashCode());
+++diff -crN hsqldb-old/src/org/hsqldb/store/ValuePool.java hsqldb/src/org/hsqldb/store/ValuePool.java
+++*** hsqldb-old/src/org/hsqldb/store/ValuePool.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/store/ValuePool.java	2007-11-04 00:14:05.000000000 +0100
+++***************
+++*** 77,83 ****
+++          initPool();
+++      }
+++  
+++!     private static void initPool() {
+++  
+++          int[] sizeArray  = defaultPoolLookupSize;
+++          int   sizeFactor = defaultSizeFactor;
+++--- 77,83 ----
+++          initPool();
+++      }
+++  
+++!     public static void initPool() {
+++  
+++          int[] sizeArray  = defaultPoolLookupSize;
+++          int   sizeFactor = defaultSizeFactor;
+++diff -crN hsqldb-old/src/org/hsqldb/TableFilter.java hsqldb/src/org/hsqldb/TableFilter.java
+++*** hsqldb-old/src/org/hsqldb/TableFilter.java	2005-11-02 16:20:38.000000000 +0100
+++--- hsqldb/src/org/hsqldb/TableFilter.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 94,105 ****
+++      static final int   CONDITION_END       = 3;    // candidate for eEnd
+++      static final int   CONDITION_OUTER     = 4;    // add to this
+++      Table              filterTable;
+++!     private String     tableAlias;
+++      HashMappedList     columnAliases;
+++      Index              filterIndex;
+++!     private Object[]   emptyData;
+++      boolean[]          usedColumns;
+++!     private Expression eStart, eEnd;
+++  
+++      //
+++      Expression eAnd;
+++--- 94,105 ----
+++      static final int   CONDITION_END       = 3;    // candidate for eEnd
+++      static final int   CONDITION_OUTER     = 4;    // add to this
+++      Table              filterTable;
+++!     public String     tableAlias;
+++      HashMappedList     columnAliases;
+++      Index              filterIndex;
+++!     public Object[]   emptyData;
+++      boolean[]          usedColumns;
+++!     public Expression eStart, eEnd;
+++  
+++      //
+++      Expression eAnd;
+++***************
+++*** 111,117 ****
+++      Expression[] findFirstExpressions;             // expressions for column values
+++  
+++      //
+++!     private RowIterator it;
+++      Object[]            currentData;
+++      Row                 currentRow;
+++  
+++--- 111,117 ----
+++      Expression[] findFirstExpressions;             // expressions for column values
+++  
+++      //
+++!     public RowIterator it;
+++      Object[]            currentData;
+++      Row                 currentRow;
+++  
+++***************
+++*** 329,335 ****
+++          }
+++      }
+++  
+++!     private void setCondition(Session session,
+++                                Expression e) throws HsqlException {
+++  
+++          int        type = e.getType();
+++--- 329,335 ----
+++          }
+++      }
+++  
+++!     public void setCondition(Session session,
+++                                Expression e) throws HsqlException {
+++  
+++          int        type = e.getType();
+++***************
+++*** 649,655 ****
+++       *
+++       * @param e the condition to add
+++       */
+++!     private void addAndCondition(Expression e) {
+++  
+++          Expression e2 = new Expression(e);
+++  
+++--- 649,655 ----
+++       *
+++       * @param e the condition to add
+++       */
+++!     public void addAndCondition(Expression e) {
+++  
+++          Expression e2 = new Expression(e);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/Table.java hsqldb/src/org/hsqldb/Table.java
+++*** hsqldb-old/src/org/hsqldb/Table.java	2007-10-20 22:11:26.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Table.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 134,142 ****
+++      // main properties
+++  // boucherb@users - access changed in support of metadata 1.7.2
+++      public HashMappedList columnList;                 // columns in table
+++!     private int[]         primaryKeyCols;             // column numbers for primary key
+++!     private int[]         primaryKeyTypes;            // types for primary key
+++!     private int[]         primaryKeyColsSequence;     // {0,1,2,...}
+++      int[]                 bestRowIdentifierCols;      // column set for best index
+++      boolean               bestRowIdentifierStrict;    // true if it has no nullable column
+++      int[]                 bestIndexForColumn;         // index of the 'best' index for each column
+++--- 134,142 ----
+++      // main properties
+++  // boucherb@users - access changed in support of metadata 1.7.2
+++      public HashMappedList columnList;                 // columns in table
+++!     public int[]         primaryKeyCols;             // column numbers for primary key
+++!     public int[]         primaryKeyTypes;            // types for primary key
+++!     public int[]         primaryKeyColsSequence;     // {0,1,2,...}
+++      int[]                 bestRowIdentifierCols;      // column set for best index
+++      boolean               bestRowIdentifierStrict;    // true if it has no nullable column
+++      int[]                 bestIndexForColumn;         // index of the 'best' index for each column
+++***************
+++*** 148,177 ****
+++  // -----------------------------------------------------------------------
+++      Constraint[]      constraintList;                 // constrainst for the table
+++      HsqlArrayList[]   triggerLists;                   // array of trigger lists
+++!     private int[]     colTypes;                       // fredt - types of columns
+++!     private int[]     colSizes;                       // fredt - copy of SIZE values for columns
+++!     private int[]     colScales;                      // fredt - copy of SCALE values for columns
+++!     private boolean[] colNullable;                    // fredt - modified copy of isNullable() values
+++!     private Expression[] colDefaults;                 // fredt - expressions of DEFAULT values
+++!     private int[]        defaultColumnMap;            // fred - holding 0,1,2,3,...
+++!     private boolean      hasDefaultValues;            //fredt - shortcut for above
+++      boolean              sqlEnforceSize;              // inherited from the database -
+++  
+++      // properties for subclasses
+++!     protected int           columnCount;              // inclusive the hidden primary key
+++      public Database         database;
+++!     protected DataFileCache cache;
+++!     protected HsqlName      tableName;                // SQL name
+++!     private int             tableType;
+++!     protected boolean       isReadOnly;
+++!     protected boolean       isTemp;
+++!     protected boolean       isCached;
+++!     protected boolean       isText;
+++!     protected boolean       isMemory;
+++!     private boolean         isView;
+++!     protected boolean       isLogged;
+++!     protected int           indexType;                // fredt - type of index used
+++!     protected boolean       onCommitPreserve;         // for temp tables
+++  
+++      //
+++      PersistentStore rowStore;
+++--- 148,177 ----
+++  // -----------------------------------------------------------------------
+++      Constraint[]      constraintList;                 // constrainst for the table
+++      HsqlArrayList[]   triggerLists;                   // array of trigger lists
+++!     public int[]     colTypes;                       // fredt - types of columns
+++!     public int[]     colSizes;                       // fredt - copy of SIZE values for columns
+++!     public int[]     colScales;                      // fredt - copy of SCALE values for columns
+++!     public boolean[] colNullable;                    // fredt - modified copy of isNullable() values
+++!     public Expression[] colDefaults;                 // fredt - expressions of DEFAULT values
+++!     public int[]        defaultColumnMap;            // fred - holding 0,1,2,3,...
+++!     public boolean      hasDefaultValues;            //fredt - shortcut for above
+++      boolean              sqlEnforceSize;              // inherited from the database -
+++  
+++      // properties for subclasses
+++!     public int           columnCount;              // inclusive the hidden primary key
+++      public Database         database;
+++!     public DataFileCache cache;
+++!     public HsqlName      tableName;                // SQL name
+++!     public int             tableType;
+++!     public boolean       isReadOnly;
+++!     public boolean       isTemp;
+++!     public boolean       isCached;
+++!     public boolean       isText;
+++!     public boolean       isMemory;
+++!     public boolean         isView;
+++!     public boolean       isLogged;
+++!     public int           indexType;                // fredt - type of index used
+++!     public boolean       onCommitPreserve;         // for temp tables
+++  
+++      //
+++      PersistentStore rowStore;
+++***************
+++*** 325,331 ****
+++      /**
+++       * sets the isReadOnly flag, and invalidates the database's system tables as needed
+++       */
+++!     protected void setIsReadOnly(boolean newReadOnly) {
+++  
+++          isReadOnly = newReadOnly;
+++  
+++--- 325,331 ----
+++      /**
+++       * sets the isReadOnly flag, and invalidates the database's system tables as needed
+++       */
+++!     public void setIsReadOnly(boolean newReadOnly) {
+++  
+++          isReadOnly = newReadOnly;
+++  
+++***************
+++*** 365,371 ****
+++      /**
+++       * For text tables
+++       */
+++!     protected void setDataSource(Session s, String source, boolean isDesc,
+++                                   boolean newFile) throws HsqlException {
+++          throw (Trace.error(Trace.TABLE_NOT_FOUND));
+++      }
+++--- 365,371 ----
+++      /**
+++       * For text tables
+++       */
+++!     public void setDataSource(Session s, String source, boolean isDesc,
+++                                   boolean newFile) throws HsqlException {
+++          throw (Trace.error(Trace.TABLE_NOT_FOUND));
+++      }
+++***************
+++*** 373,386 ****
+++      /**
+++       * For text tables
+++       */
+++!     protected String getDataSource() {
+++          return null;
+++      }
+++  
+++      /**
+++       * For text tables.
+++       */
+++!     protected boolean isDescDataSource() {
+++          return false;
+++      }
+++  
+++--- 373,386 ----
+++      /**
+++       * For text tables
+++       */
+++!     public String getDataSource() {
+++          return null;
+++      }
+++  
+++      /**
+++       * For text tables.
+++       */
+++!     public boolean isDescDataSource() {
+++          return false;
+++      }
+++  
+++***************
+++*** 675,681 ****
+++      /**
+++       * returns a basic duplicate of the table without the data structures.
+++       */
+++!     protected Table duplicate() throws HsqlException {
+++  
+++          Table t = new Table(database, tableName, tableType);
+++  
+++--- 675,681 ----
+++      /**
+++       * returns a basic duplicate of the table without the data structures.
+++       */
+++!     public Table duplicate() throws HsqlException {
+++  
+++          Table t = new Table(database, tableName, tableType);
+++  
+++***************
+++*** 816,822 ****
+++          return null;
+++      }
+++  
+++!     private void copyIndexes(Table tn, int removeIndex, int colIndex,
+++                               int adjust) throws HsqlException {
+++  
+++          for (int i = 1; i < getIndexCount(); i++) {
+++--- 816,822 ----
+++          return null;
+++      }
+++  
+++!     public void copyIndexes(Table tn, int removeIndex, int colIndex,
+++                               int adjust) throws HsqlException {
+++  
+++          for (int i = 1; i < getIndexCount(); i++) {
+++***************
+++*** 887,893 ****
+++          }
+++      }
+++  
+++!     private void recompileCheckConstraints(Session session)
+++      throws HsqlException {
+++  
+++          for (int i = 0, size = constraintList.length; i < size; i++) {
+++--- 887,893 ----
+++          }
+++      }
+++  
+++!     public void recompileCheckConstraints(Session session)
+++      throws HsqlException {
+++  
+++          for (int i = 0, size = constraintList.length; i < size; i++) {
+++***************
+++*** 902,908 ****
+++      /**
+++       * Used after adding columns or indexes to the table.
+++       */
+++!     private void recompileCheckConstraint(Session session,
+++                                            Constraint c) throws HsqlException {
+++  
+++          String     ddl       = c.core.check.getDDL();
+++--- 902,908 ----
+++      /**
+++       * Used after adding columns or indexes to the table.
+++       */
+++!     public void recompileCheckConstraint(Session session,
+++                                            Constraint c) throws HsqlException {
+++  
+++          String     ddl       = c.core.check.getDDL();
+++***************
+++*** 984,990 ****
+++      /**
+++       * Used for rename column.
+++       */
+++!     private void renameColumnInCheckConstraints(String oldname,
+++              String newname, boolean isquoted) throws HsqlException {
+++  
+++          for (int i = 0, size = constraintList.length; i < size; i++) {
+++--- 984,990 ----
+++      /**
+++       * Used for rename column.
+++       */
+++!     public void renameColumnInCheckConstraints(String oldname,
+++              String newname, boolean isquoted) throws HsqlException {
+++  
+++          for (int i = 0, size = constraintList.length; i < size; i++) {
+++***************
+++*** 1011,1017 ****
+++      /**
+++       * Used for drop column.
+++       */
+++!     private void renameTableInCheckConstraints(Session session,
+++              String oldname, String newname) throws HsqlException {
+++  
+++          for (int i = 0, size = constraintList.length; i < size; i++) {
+++--- 1011,1017 ----
+++      /**
+++       * Used for drop column.
+++       */
+++!     public void renameTableInCheckConstraints(Session session,
+++              String oldname, String newname) throws HsqlException {
+++  
+++          for (int i = 0, size = constraintList.length; i < size; i++) {
+++***************
+++*** 1517,1523 ****
+++       *  Create new index taking into account removal or addition of a column
+++       *  to the table.
+++       */
+++!     private Index createAdjustedIndex(Index index, int colindex,
+++                                        int adjust) throws HsqlException {
+++  
+++          int[] indexcolumns = (int[]) ArrayUtil.resizeArray(index.getColumns(),
+++--- 1517,1523 ----
+++       *  Create new index taking into account removal or addition of a column
+++       *  to the table.
+++       */
+++!     public Index createAdjustedIndex(Index index, int colindex,
+++                                        int adjust) throws HsqlException {
+++  
+++          int[] indexcolumns = (int[]) ArrayUtil.resizeArray(index.getColumns(),
+++***************
+++*** 1637,1643 ****
+++          return indexNo;
+++      }
+++  
+++!     private int addIndex(Index index) {
+++  
+++          int i = 0;
+++  
+++--- 1637,1643 ----
+++          return indexNo;
+++      }
+++  
+++!     public int addIndex(Index index) {
+++  
+++          int i = 0;
+++  
+++***************
+++*** 1883,1889 ****
+++       *  Mid level method for inserting rows. Performs constraint checks and
+++       *  fires row level triggers.
+++       */
+++!     private void insertRow(Session session,
+++                             Object[] data) throws HsqlException {
+++  
+++          if (triggerLists[Trigger.INSERT_BEFORE_ROW] != null) {
+++--- 1883,1889 ----
+++       *  Mid level method for inserting rows. Performs constraint checks and
+++       *  fires row level triggers.
+++       */
+++!     public void insertRow(Session session,
+++                             Object[] data) throws HsqlException {
+++  
+++          if (triggerLists[Trigger.INSERT_BEFORE_ROW] != null) {
+++***************
+++*** 1929,1935 ****
+++       *  UNIQUE or PRIMARY constraints are enforced by attempting to
+++       *  add the row to the indexes.
+++       */
+++!     private void insertNoCheck(Session session,
+++                                 Object[] data) throws HsqlException {
+++  
+++          Row row = newRow(data);
+++--- 1929,1935 ----
+++       *  UNIQUE or PRIMARY constraints are enforced by attempting to
+++       *  add the row to the indexes.
+++       */
+++!     public void insertNoCheck(Session session,
+++                                 Object[] data) throws HsqlException {
+++  
+++          Row row = newRow(data);
+++***************
+++*** 2059,2065 ****
+++       * Used by TextCache to insert a row into the indexes when the source
+++       * file is first read.
+++       */
+++!     protected void insertFromTextSource(CachedRow row) throws HsqlException {
+++  
+++          Object[] data = row.getData();
+++  
+++--- 2059,2065 ----
+++       * Used by TextCache to insert a row into the indexes when the source
+++       * file is first read.
+++       */
+++!     public void insertFromTextSource(CachedRow row) throws HsqlException {
+++  
+++          Object[] data = row.getData();
+++  
+++***************
+++*** 2072,2078 ****
+++      /**
+++       * Checks a row against NOT NULL constraints on columns.
+++       */
+++!     protected void enforceNullConstraints(Object[] data) throws HsqlException {
+++  
+++          for (int i = 0; i < columnCount; i++) {
+++              if (data[i] == null && !colNullable[i]) {
+++--- 2072,2078 ----
+++      /**
+++       * Checks a row against NOT NULL constraints on columns.
+++       */
+++!     public void enforceNullConstraints(Object[] data) throws HsqlException {
+++  
+++          for (int i = 0; i < columnCount; i++) {
+++              if (data[i] == null && !colNullable[i]) {
+++***************
+++*** 2087,2093 ****
+++       * If there is an identity column (visible or hidden) on the table, sets
+++       * the value and/or adjusts the iIdentiy value for the table.
+++       */
+++!     protected void setIdentityColumn(Session session,
+++                                       Object[] data) throws HsqlException {
+++  
+++          if (identityColumn != -1) {
+++--- 2087,2093 ----
+++       * If there is an identity column (visible or hidden) on the table, sets
+++       * the value and/or adjusts the iIdentiy value for the table.
+++       */
+++!     public void setIdentityColumn(Session session,
+++                                       Object[] data) throws HsqlException {
+++  
+++          if (identityColumn != -1) {
+++***************
+++*** 2115,2121 ****
+++       * If there is an identity column (visible or hidden) on the table, sets
+++       * the max identity value.
+++       */
+++!     protected void updateIdentityValue(Object[] data) throws HsqlException {
+++  
+++          if (identityColumn != -1) {
+++              Number id = (Number) data[identityColumn];
+++--- 2115,2121 ----
+++       * If there is an identity column (visible or hidden) on the table, sets
+++       * the max identity value.
+++       */
+++!     public void updateIdentityValue(Object[] data) throws HsqlException {
+++  
+++          if (identityColumn != -1) {
+++              Number id = (Number) data[identityColumn];
+++***************
+++*** 2786,2792 ****
+++       *  Mid level row delete method. Fires triggers but no integrity
+++       *  constraint checks.
+++       */
+++!     private void deleteNoRefCheck(Session session,
+++                                    Row row) throws HsqlException {
+++  
+++          Object[] data = row.getData();
+++--- 2786,2792 ----
+++       *  Mid level row delete method. Fires triggers but no integrity
+++       *  constraint checks.
+++       */
+++!     public void deleteNoRefCheck(Session session,
+++                                    Row row) throws HsqlException {
+++  
+++          Object[] data = row.getData();
+++***************
+++*** 2802,2808 ****
+++       * Low level row delete method. Removes the row from the indexes and
+++       * from the Cache.
+++       */
+++!     private void deleteNoCheck(Session session, Row row,
+++                                 boolean log) throws HsqlException {
+++  
+++          if (row.isCascadeDeleted()) {
+++--- 2802,2808 ----
+++       * Low level row delete method. Removes the row from the indexes and
+++       * from the Cache.
+++       */
+++!     public void deleteNoCheck(Session session, Row row,
+++                                 boolean log) throws HsqlException {
+++  
+++          if (row.isCascadeDeleted()) {
+++diff -crN hsqldb-old/src/org/hsqldb/TableWorks.java hsqldb/src/org/hsqldb/TableWorks.java
+++*** hsqldb-old/src/org/hsqldb/TableWorks.java	2007-07-09 10:49:26.000000000 +0200
+++--- hsqldb/src/org/hsqldb/TableWorks.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 46,53 ****
+++   */
+++  class TableWorks {
+++  
+++!     private Table   table;
+++!     private Session session;
+++  
+++      TableWorks(Session session, Table table) {
+++          this.table   = table;
+++--- 46,53 ----
+++   */
+++  class TableWorks {
+++  
+++!     public Table   table;
+++!     public Session session;
+++  
+++      TableWorks(Session session, Table table) {
+++          this.table   = table;
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestAllTypes.java hsqldb/src/org/hsqldb/test/TestAllTypes.java
+++*** hsqldb-old/src/org/hsqldb/test/TestAllTypes.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestAllTypes.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 48,59 ****
+++   */
+++  public class TestAllTypes {
+++  
+++!     protected String url = "jdbc:hsqldb:";
+++  
+++! //    protected String filepath = ".";
+++!     protected String filepath = "/hsql/testalltypes/test";
+++  
+++! //    protected String filepath = "hsql://localhost/yourtest";
+++      boolean    network = true;
+++      String     user;
+++      String     password;
+++--- 48,59 ----
+++   */
+++  public class TestAllTypes {
+++  
+++!     public String url = "jdbc:hsqldb:";
+++  
+++! //    public String filepath = ".";
+++!     public String filepath = "/hsql/testalltypes/test";
+++  
+++! //    public String filepath = "hsql://localhost/yourtest";
+++      boolean    network = true;
+++      String     user;
+++      String     password;
+++***************
+++*** 79,85 ****
+++      //
+++      int bigrows = 1000;
+++  
+++!     protected void setUp() {
+++  
+++          user     = "sa";
+++          password = "";
+++--- 79,85 ----
+++      //
+++      int bigrows = 1000;
+++  
+++!     public void setUp() {
+++  
+++          user     = "sa";
+++          password = "";
+++***************
+++*** 266,274 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {}
+++  
+++!     protected void checkResults() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++--- 266,274 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {}
+++  
+++!     public void checkResults() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++***************
+++*** 313,319 ****
+++          }
+++      }
+++  
+++!     private void checkSelects() {
+++  
+++          StopWatch        sw        = new StopWatch();
+++          int              smallrows = 0xfff;
+++--- 313,319 ----
+++          }
+++      }
+++  
+++!     public void checkSelects() {
+++  
+++          StopWatch        sw        = new StopWatch();
+++          int              smallrows = 0xfff;
+++***************
+++*** 368,374 ****
+++                             + (i * 1000 / sw.elapsedTime()));
+++      }
+++  
+++!     private void checkUpdates() {
+++  
+++          StopWatch        sw        = new StopWatch();
+++          int              smallrows = 0xfff;
+++--- 368,374 ----
+++                             + (i * 1000 / sw.elapsedTime()));
+++      }
+++  
+++!     public void checkUpdates() {
+++  
+++          StopWatch        sw        = new StopWatch();
+++          int              smallrows = 0xfff;
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestBase.java hsqldb/src/org/hsqldb/test/TestBase.java
+++*** hsqldb-old/src/org/hsqldb/test/TestBase.java	2007-06-21 10:33:58.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestBase.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 70,76 ****
+++          this.url       = connectionUrl;
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          if (isNetwork) {
+++              if (url == null) {
+++--- 70,76 ----
+++          this.url       = connectionUrl;
+++      }
+++  
+++!     public void setUp() {
+++  
+++          if (isNetwork) {
+++              if (url == null) {
+++***************
+++*** 98,104 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          if (isNetwork) {
+++              server.stop();
+++--- 98,104 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          if (isNetwork) {
+++              server.stop();
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestBugBase.java hsqldb/src/org/hsqldb/test/TestBugBase.java
+++*** hsqldb-old/src/org/hsqldb/test/TestBugBase.java	2005-06-08 21:52:36.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestBugBase.java	2007-11-04 00:13:48.000000000 +0100
+++***************
+++*** 59,65 ****
+++          super(name);
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          server = new Server();
+++  
+++--- 59,65 ----
+++          super(name);
+++      }
+++  
+++!     public void setUp() {
+++  
+++          server = new Server();
+++  
+++***************
+++*** 76,82 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          server.stop();
+++  
+++--- 76,82 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          server.stop();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestCacheSize.java hsqldb/src/org/hsqldb/test/TestCacheSize.java
+++*** hsqldb-old/src/org/hsqldb/test/TestCacheSize.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestCacheSize.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 70,86 ****
+++  public class TestCacheSize {
+++  
+++      // program can edit the *.properties file to set cache_size, old files are deleted
+++!     protected boolean filedb = true;
+++  
+++      // shutdown performed mid operation - not for mem: or hsql: URL's
+++!     protected boolean shutdown = true;
+++  
+++      // fixed
+++!     protected String url = "jdbc:hsqldb:";
+++  
+++! //    protected String  filepath = "hsql://localhost/mytest";
+++! //    protected String filepath = "mem:test";
+++!     protected String filepath = "/hsql/testcache/test";
+++  
+++      // frequent reporting of progress
+++      boolean reportProgress = false;
+++--- 70,86 ----
+++  public class TestCacheSize {
+++  
+++      // program can edit the *.properties file to set cache_size, old files are deleted
+++!     public boolean filedb = true;
+++  
+++      // shutdown performed mid operation - not for mem: or hsql: URL's
+++!     public boolean shutdown = true;
+++  
+++      // fixed
+++!     public String url = "jdbc:hsqldb:";
+++  
+++! //    public String  filepath = "hsql://localhost/mytest";
+++! //    public String filepath = "mem:test";
+++!     public String filepath = "/hsql/testcache/test";
+++  
+++      // frequent reporting of progress
+++      boolean reportProgress = false;
+++***************
+++*** 124,130 ****
+++      Connection cConnection;
+++      FileWriter writer;
+++  
+++!     private void checkSelects() {
+++  
+++          countTestID();
+++  
+++--- 124,130 ----
+++      Connection cConnection;
+++      FileWriter writer;
+++  
+++!     public void checkSelects() {
+++  
+++          countTestID();
+++  
+++***************
+++*** 132,138 ****
+++          selectZipTable();
+++      }
+++  
+++!     private void checkUpdates() {
+++  
+++          updateIDLinear();
+++  
+++--- 132,138 ----
+++          selectZipTable();
+++      }
+++  
+++!     public void checkUpdates() {
+++  
+++          updateIDLinear();
+++  
+++***************
+++*** 143,149 ****
+++          countZip();
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          try {
+++              writer = new FileWriter("speedtests.html", true);
+++--- 143,149 ----
+++          countZip();
+++      }
+++  
+++!     public void setUp() {
+++  
+++          try {
+++              writer = new FileWriter("speedtests.html", true);
+++***************
+++*** 316,322 ****
+++          }
+++      }
+++  
+++!     private void fillUpBigTable(String filler,
+++                                  Random randomgen) throws SQLException {
+++  
+++          StopWatch sw = new StopWatch();
+++--- 316,322 ----
+++          }
+++      }
+++  
+++!     public void fillUpBigTable(String filler,
+++                                  Random randomgen) throws SQLException {
+++  
+++          StopWatch sw = new StopWatch();
+++***************
+++*** 418,424 ****
+++                             + " ms -- " + rate + " tps");
+++      }
+++  
+++!     private void fillUpMultiTable(String filler,
+++                                    Random randomgen) throws SQLException {
+++  
+++          StopWatch sw = new StopWatch();
+++--- 418,424 ----
+++                             + " ms -- " + rate + " tps");
+++      }
+++  
+++!     public void fillUpMultiTable(String filler,
+++                                    Random randomgen) throws SQLException {
+++  
+++          StopWatch sw = new StopWatch();
+++***************
+++*** 471,477 ****
+++                             + (i * 1000 / (sw.elapsedTime() + 1)));
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          try {
+++              writer.write("\n</table>\n");
+++--- 471,477 ----
+++                             + (i * 1000 / (sw.elapsedTime() + 1)));
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          try {
+++              writer.write("\n</table>\n");
+++***************
+++*** 479,485 ****
+++          } catch (Exception e) {}
+++      }
+++  
+++!     protected void checkResults() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++--- 479,485 ----
+++          } catch (Exception e) {}
+++      }
+++  
+++!     public void checkResults() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++***************
+++*** 626,632 ****
+++                             + " rows  -- " + time + " ms -- " + rate + " tps");
+++      }
+++  
+++!     private void countTestID() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++--- 626,632 ----
+++                             + " rows  -- " + time + " ms -- " + rate + " tps");
+++      }
+++  
+++!     public void countTestID() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++***************
+++*** 649,655 ****
+++          } catch (SQLException e) {}
+++      }
+++  
+++!     private void countTestZip() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++--- 649,655 ----
+++          } catch (SQLException e) {}
+++      }
+++  
+++!     public void countTestZip() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++***************
+++*** 670,676 ****
+++          } catch (SQLException e) {}
+++      }
+++  
+++!     private void countZip() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++--- 670,676 ----
+++          } catch (SQLException e) {}
+++      }
+++  
+++!     public void countZip() {
+++  
+++          try {
+++              StopWatch sw = new StopWatch();
+++***************
+++*** 685,691 ****
+++          } catch (SQLException e) {}
+++      }
+++  
+++!     private void updateZip() {
+++  
+++          StopWatch        sw        = new StopWatch();
+++          java.util.Random randomgen = new java.util.Random();
+++--- 685,691 ----
+++          } catch (SQLException e) {}
+++      }
+++  
+++!     public void updateZip() {
+++  
+++          StopWatch        sw        = new StopWatch();
+++          java.util.Random randomgen = new java.util.Random();
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestCascade.java hsqldb/src/org/hsqldb/test/TestCascade.java
+++*** hsqldb-old/src/org/hsqldb/test/TestCascade.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestCascade.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 59,65 ****
+++          super(name);
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          try {
+++              Class.forName("org.hsqldb.jdbcDriver");
+++--- 59,65 ----
+++          super(name);
+++      }
+++  
+++!     public void setUp() {
+++  
+++          try {
+++              Class.forName("org.hsqldb.jdbcDriver");
+++***************
+++*** 72,78 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          try {
+++              con.close();
+++--- 72,78 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          try {
+++              con.close();
+++***************
+++*** 109,115 ****
+++          }
+++      }
+++  
+++!     private static void createDatabase() throws SQLException {
+++  
+++          new File("testdb.backup").delete();
+++          new File("testdb.data").delete();
+++--- 109,115 ----
+++          }
+++      }
+++  
+++!     public static void createDatabase() throws SQLException {
+++  
+++          new File("testdb.backup").delete();
+++          new File("testdb.data").delete();
+++***************
+++*** 141,147 ****
+++       * the CA table has 12 records. After, it should have 9, but instead it has
+++       * 0.
+++       */
+++!     private static void deleteXBRecord(Connection con) throws SQLException {
+++  
+++          Statement stmt = con.createStatement();
+++  
+++--- 141,147 ----
+++       * the CA table has 12 records. After, it should have 9, but instead it has
+++       * 0.
+++       */
+++!     public static void deleteXBRecord(Connection con) throws SQLException {
+++  
+++          Statement stmt = con.createStatement();
+++  
+++***************
+++*** 150,156 ****
+++          stmt.close();
+++      }    // deleteXBRecord
+++  
+++!     private static void insertData(Connection con) throws SQLException {
+++  
+++          String[] saData = {
+++              "INSERT INTO XB VALUES('T850','LEAA','00','P',NULL,'LCN NAME','sa',NOW)",
+++--- 150,156 ----
+++          stmt.close();
+++      }    // deleteXBRecord
+++  
+++!     public static void insertData(Connection con) throws SQLException {
+++  
+++          String[] saData = {
+++              "INSERT INTO XB VALUES('T850','LEAA','00','P',NULL,'LCN NAME','sa',NOW)",
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestCollation.java hsqldb/src/org/hsqldb/test/TestCollation.java
+++*** hsqldb-old/src/org/hsqldb/test/TestCollation.java	2007-06-21 10:34:40.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestCollation.java	2007-11-04 00:13:48.000000000 +0100
+++***************
+++*** 51,57 ****
+++          super.isNetwork = false;
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          super.setUp();
+++  
+++--- 51,57 ----
+++          super.isNetwork = false;
+++      }
+++  
+++!     public void setUp() {
+++  
+++          super.setUp();
+++  
+++***************
+++*** 65,71 ****
+++          localeIterator = collation.getLocalesIterator();
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          try {
+++              statement = connection.createStatement();
+++--- 65,71 ----
+++          localeIterator = collation.getLocalesIterator();
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          try {
+++              statement = connection.createStatement();
+++***************
+++*** 188,194 ****
+++      /**
+++       * returns an SQL statement to set the database collation
+++       */
+++!     protected final String getSetCollationStmt(String collationName) {
+++  
+++          final String setCollationStmtPre  = "SET DATABASE COLLATION \"";
+++          final String setCollationStmtPost = "\"";
+++--- 188,194 ----
+++      /**
+++       * returns an SQL statement to set the database collation
+++       */
+++!     public final String getSetCollationStmt(String collationName) {
+++  
+++          final String setCollationStmtPre  = "SET DATABASE COLLATION \"";
+++          final String setCollationStmtPost = "\"";
+++***************
+++*** 199,205 ****
+++      /**
+++       * checks sorting a table with according to a given collation
+++       */
+++!     protected String checkSorting(String collationName) {
+++  
+++          String prepareStmt =
+++              "DROP TABLE WORDLIST IF EXISTS;"
+++--- 199,205 ----
+++      /**
+++       * checks sorting a table with according to a given collation
+++       */
+++!     public String checkSorting(String collationName) {
+++  
+++          String prepareStmt =
+++              "DROP TABLE WORDLIST IF EXISTS;"
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestDataStructures.java hsqldb/src/org/hsqldb/test/TestDataStructures.java
+++*** hsqldb-old/src/org/hsqldb/test/TestDataStructures.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestDataStructures.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 51,69 ****
+++   */
+++  public class TestDataStructures extends TestCase {
+++  
+++!     private static final int NUMBER_OF_TEST_RUNS          = 100000;
+++!     private static final int NUMBER_OF_ITERATIONS_PER_RUN = 80;
+++!     private Random           randomGenerator;
+++  
+++      //Commands
+++!     private static final int ADD        = 1;
+++!     private static final int ADD_AT     = 2;
+++!     private static final int GET        = 3;
+++!     private static final int REMOVE     = 4;
+++!     private static final int SET        = 5;
+++!     private static final int OPTIMIZE   = 6;
+++!     private static final int REMOVE_ALL = 7;
+++!     private Vector           listCommandsCalled;
+++  
+++      /** Creates a new instance of TestDataStructures */
+++      public TestDataStructures(String s) {
+++--- 51,69 ----
+++   */
+++  public class TestDataStructures extends TestCase {
+++  
+++!     public static final int NUMBER_OF_TEST_RUNS          = 100000;
+++!     public static final int NUMBER_OF_ITERATIONS_PER_RUN = 80;
+++!     public Random           randomGenerator;
+++  
+++      //Commands
+++!     public static final int ADD        = 1;
+++!     public static final int ADD_AT     = 2;
+++!     public static final int GET        = 3;
+++!     public static final int REMOVE     = 4;
+++!     public static final int SET        = 5;
+++!     public static final int OPTIMIZE   = 6;
+++!     public static final int REMOVE_ALL = 7;
+++!     public Vector           listCommandsCalled;
+++  
+++      /** Creates a new instance of TestDataStructures */
+++      public TestDataStructures(String s) {
+++***************
+++*** 323,329 ****
+++      }
+++  
+++      /** Returns whether three objects are equal */
+++!     private boolean objectEquals(Object lObject, Object aObject,
+++                                   Object vObject) {
+++  
+++          if (lObject == null && aObject == null && vObject == null) {
+++--- 323,329 ----
+++      }
+++  
+++      /** Returns whether three objects are equal */
+++!     public boolean objectEquals(Object lObject, Object aObject,
+++                                   Object vObject) {
+++  
+++          if (lObject == null && aObject == null && vObject == null) {
+++***************
+++*** 348,354 ****
+++      }
+++  
+++      /** Returns a random integer in the range of the lowBound and highBound */
+++!     private int getRandomInt(int lowBound, int highBound) {
+++  
+++          double random = randomGenerator.nextDouble();
+++  
+++--- 348,354 ----
+++      }
+++  
+++      /** Returns a random integer in the range of the lowBound and highBound */
+++!     public int getRandomInt(int lowBound, int highBound) {
+++  
+++          double random = randomGenerator.nextDouble();
+++  
+++***************
+++*** 359,371 ****
+++       * Returns an Integer object with a value between Integer.MIN_VALUE and
+++       * Integer.MAX_VALUE
+++       */
+++!     private Integer getRandomInteger() {
+++          return new Integer(getRandomInt(0, (int) (Integer.MAX_VALUE
+++                  / 100.0)));
+++      }
+++  
+++      /** Tells whether the given list contains the same data as the vector */
+++!     private boolean equalsVector(HsqlList list, Vector vector) {
+++  
+++          if (list.size() != vector.size()) {
+++              return false;
+++--- 359,371 ----
+++       * Returns an Integer object with a value between Integer.MIN_VALUE and
+++       * Integer.MAX_VALUE
+++       */
+++!     public Integer getRandomInteger() {
+++          return new Integer(getRandomInt(0, (int) (Integer.MAX_VALUE
+++                  / 100.0)));
+++      }
+++  
+++      /** Tells whether the given list contains the same data as the vector */
+++!     public boolean equalsVector(HsqlList list, Vector vector) {
+++  
+++          if (list.size() != vector.size()) {
+++              return false;
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestDateTime.java hsqldb/src/org/hsqldb/test/TestDateTime.java
+++*** hsqldb-old/src/org/hsqldb/test/TestDateTime.java	2007-01-09 10:15:28.000000000 +0100
+++--- hsqldb/src/org/hsqldb/test/TestDateTime.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 51,57 ****
+++          super(s);
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          super.setUp();
+++  
+++--- 51,57 ----
+++          super(s);
+++      }
+++  
+++!     public void setUp() {
+++  
+++          super.setUp();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestGroupByHaving.java hsqldb/src/org/hsqldb/test/TestGroupByHaving.java
+++*** hsqldb-old/src/org/hsqldb/test/TestGroupByHaving.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestGroupByHaving.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 54,69 ****
+++      //------------------------------------------------------------
+++      // Class variables
+++      //------------------------------------------------------------
+++!     private static final String databaseDriver   = "org.hsqldb.jdbcDriver";
+++!     private static final String databaseURL      = "jdbc:hsqldb:mem:.";
+++!     private static final String databaseUser     = "sa";
+++!     private static final String databasePassword = "";
+++  
+++      //------------------------------------------------------------
+++      // Instance variables
+++      //------------------------------------------------------------
+++!     private Connection conn;
+++!     private Statement  stmt;
+++  
+++      //------------------------------------------------------------
+++      // Constructors
+++--- 54,69 ----
+++      //------------------------------------------------------------
+++      // Class variables
+++      //------------------------------------------------------------
+++!     public static final String databaseDriver   = "org.hsqldb.jdbcDriver";
+++!     public static final String databaseURL      = "jdbc:hsqldb:mem:.";
+++!     public static final String databaseUser     = "sa";
+++!     public static final String databasePassword = "";
+++  
+++      //------------------------------------------------------------
+++      // Instance variables
+++      //------------------------------------------------------------
+++!     public Connection conn;
+++!     public Statement  stmt;
+++  
+++      //------------------------------------------------------------
+++      // Constructors
+++***************
+++*** 79,90 ****
+++      //------------------------------------------------------------
+++      // Class methods
+++      //------------------------------------------------------------
+++!     protected static Connection getJDBCConnection() throws SQLException {
+++          return DriverManager.getConnection(databaseURL, databaseUser,
+++                                             databasePassword);
+++      }
+++  
+++!     protected void setUp() throws Exception {
+++  
+++          super.setUp();
+++  
+++--- 79,90 ----
+++      //------------------------------------------------------------
+++      // Class methods
+++      //------------------------------------------------------------
+++!     public static Connection getJDBCConnection() throws SQLException {
+++          return DriverManager.getConnection(databaseURL, databaseUser,
+++                                             databasePassword);
+++      }
+++  
+++!     public void setUp() throws Exception {
+++  
+++          super.setUp();
+++  
+++***************
+++*** 127,133 ****
+++          addEmployee(23, "Barbara", "Hood", 30000, 2);
+++      }
+++  
+++!     protected void tearDown() throws Exception {
+++  
+++  
+++          // I decided not the use the "IF EXISTS" clause since it is not a
+++--- 127,133 ----
+++          addEmployee(23, "Barbara", "Hood", 30000, 2);
+++      }
+++  
+++!     public void tearDown() throws Exception {
+++  
+++  
+++          // I decided not the use the "IF EXISTS" clause since it is not a
+++***************
+++*** 152,158 ****
+++          super.tearDown();
+++      }
+++  
+++!     private void addEmployee(int id, String firstName, String lastName,
+++                               double salary, int superiorId) throws Exception {
+++  
+++          stmt.execute("insert into employee values(" + id + ", '" + firstName
+++--- 152,158 ----
+++          super.tearDown();
+++      }
+++  
+++!     public void addEmployee(int id, String firstName, String lastName,
+++                               double salary, int superiorId) throws Exception {
+++  
+++          stmt.execute("insert into employee values(" + id + ", '" + firstName
+++***************
+++*** 294,300 ****
+++      //------------------------------------------------------------
+++      // Helper methods
+++      //------------------------------------------------------------
+++!     private void compareResults(String sql, Object[][] rows,
+++                                  int errorCode) throws SQLException {
+++  
+++          ResultSet rs = null;
+++--- 294,300 ----
+++      //------------------------------------------------------------
+++      // Helper methods
+++      //------------------------------------------------------------
+++!     public void compareResults(String sql, Object[][] rows,
+++                                  int errorCode) throws SQLException {
+++  
+++          ResultSet rs = null;
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestJDBCSavepoints.java hsqldb/src/org/hsqldb/test/TestJDBCSavepoints.java
+++*** hsqldb-old/src/org/hsqldb/test/TestJDBCSavepoints.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestJDBCSavepoints.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 75,81 ****
+++          super(name);
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          user     = "sa";
+++          password = "";
+++--- 75,81 ----
+++          super(name);
+++      }
+++  
+++!     public void setUp() {
+++  
+++          user     = "sa";
+++          password = "";
+++***************
+++*** 103,109 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          try {
+++              conn1.close();
+++--- 103,109 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          try {
+++              conn1.close();
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestMultipleConnections.java hsqldb/src/org/hsqldb/test/TestMultipleConnections.java
+++*** hsqldb-old/src/org/hsqldb/test/TestMultipleConnections.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestMultipleConnections.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 85,91 ****
+++      /**
+++       * create a connection and wait
+++       */
+++!     protected Connection createObject() {
+++  
+++          try {
+++              Class.forName("org.hsqldb.jdbcDriver");
+++--- 85,91 ----
+++      /**
+++       * create a connection and wait
+++       */
+++!     public Connection createObject() {
+++  
+++          try {
+++              Class.forName("org.hsqldb.jdbcDriver");
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestPreparedSubQueries.java hsqldb/src/org/hsqldb/test/TestPreparedSubQueries.java
+++*** hsqldb-old/src/org/hsqldb/test/TestPreparedSubQueries.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestPreparedSubQueries.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 40,48 ****
+++   */
+++  class TestPreparedSubQueries {
+++  
+++!     private Connection con = null;
+++  
+++!     private class sqlStmt {
+++  
+++          boolean prepare;
+++          boolean update;
+++--- 40,48 ----
+++   */
+++  class TestPreparedSubQueries {
+++  
+++!     public Connection con = null;
+++  
+++!     public class sqlStmt {
+++  
+++          boolean prepare;
+++          boolean update;
+++***************
+++*** 57,63 ****
+++      }
+++      ;
+++  
+++!     private sqlStmt[] stmtArray = {
+++          new sqlStmt("drop table a if exists", false, false),
+++          new sqlStmt("create cached table a (a int identity,b int)", false,
+++                      false),
+++--- 57,63 ----
+++      }
+++      ;
+++  
+++!     public sqlStmt[] stmtArray = {
+++          new sqlStmt("drop table a if exists", false, false),
+++          new sqlStmt("create cached table a (a int identity,b int)", false,
+++                      false),
+++***************
+++*** 77,83 ****
+++              "update a set b=300 where b>(select b from a X where X.a=?)",
+++              true, true)
+++      };
+++!     private Object[][] stmtArgs = {
+++          {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, { new Integer(2) },
+++          { new Integer(2) }
+++      };
+++--- 77,83 ----
+++              "update a set b=300 where b>(select b from a X where X.a=?)",
+++              true, true)
+++      };
+++!     public Object[][] stmtArgs = {
+++          {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, { new Integer(2) },
+++          { new Integer(2) }
+++      };
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestQuotes.java hsqldb/src/org/hsqldb/test/TestQuotes.java
+++*** hsqldb-old/src/org/hsqldb/test/TestQuotes.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestQuotes.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 50,63 ****
+++   */
+++  public class TestQuotes extends TestCase {
+++  
+++!     private static final String CREATETABLE =
+++          "create table quotetest (test varchar)";
+++!     private static final String DELETE = "delete from quotetest";
+++!     private static final String TESTSTRING =
+++          "insert into quotetest (test) values (?)";
+++!     private static final String NOQUOTES = "the house of the dog of kevin";
+++!     private static final String QUOTES   = "kevin's dog's house";
+++!     private static final String RESULT   = "select * from quotetest";
+++  
+++      public TestQuotes(String testName) {
+++          super(testName);
+++--- 50,63 ----
+++   */
+++  public class TestQuotes extends TestCase {
+++  
+++!     public static final String CREATETABLE =
+++          "create table quotetest (test varchar)";
+++!     public static final String DELETE = "delete from quotetest";
+++!     public static final String TESTSTRING =
+++          "insert into quotetest (test) values (?)";
+++!     public static final String NOQUOTES = "the house of the dog of kevin";
+++!     public static final String QUOTES   = "kevin's dog's house";
+++!     public static final String RESULT   = "select * from quotetest";
+++  
+++      public TestQuotes(String testName) {
+++          super(testName);
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestSchemaParse.java hsqldb/src/org/hsqldb/test/TestSchemaParse.java
+++*** hsqldb-old/src/org/hsqldb/test/TestSchemaParse.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestSchemaParse.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 42,50 ****
+++  
+++      Connection                  con = null;
+++      Statement                   statement;
+++!     private static final String ipref = "INFORMATION_SCHEMA.";
+++  
+++!     protected void setUp() throws Exception {
+++  
+++          org.hsqldb.jdbcDriver.class.getName();
+++  
+++--- 42,50 ----
+++  
+++      Connection                  con = null;
+++      Statement                   statement;
+++!     public static final String ipref = "INFORMATION_SCHEMA.";
+++  
+++!     public void setUp() throws Exception {
+++  
+++          org.hsqldb.jdbcDriver.class.getName();
+++  
+++***************
+++*** 96,104 ****
+++  
+++      // Want to permit the SHUTDOWN SQL command in tearDown() to fail iff
+++      // the test method run has tested SHUTDOWN.
+++!     private boolean shutdownTested = false;
+++  
+++!     protected void tearDown() throws Exception {
+++  
+++          // Shut down to destroy all of the DB objects (only works because
+++          // it's an in-memory instance.
+++--- 96,104 ----
+++  
+++      // Want to permit the SHUTDOWN SQL command in tearDown() to fail iff
+++      // the test method run has tested SHUTDOWN.
+++!     public boolean shutdownTested = false;
+++  
+++!     public void tearDown() throws Exception {
+++  
+++          // Shut down to destroy all of the DB objects (only works because
+++          // it's an in-memory instance.
+++***************
+++*** 931,941 ****
+++      }
+++  
+++  /** @todo fredt - need to define additional identifiers to use for all cases of expect */
+++!     private static final int SQL_ABORT   = -1234;
+++!     private static final int SQL_INITIAL = -1233;
+++!     private static final int SQL_FAIL    = -1;
+++  
+++!     private void execSQL(String s, boolean ignoreError) throws SQLException {
+++  
+++          try {
+++              statement.execute(s);
+++--- 931,941 ----
+++      }
+++  
+++  /** @todo fredt - need to define additional identifiers to use for all cases of expect */
+++!     public static final int SQL_ABORT   = -1234;
+++!     public static final int SQL_INITIAL = -1233;
+++!     public static final int SQL_FAIL    = -1;
+++  
+++!     public void execSQL(String s, boolean ignoreError) throws SQLException {
+++  
+++          try {
+++              statement.execute(s);
+++***************
+++*** 949,955 ****
+++          }
+++      }
+++  
+++!     private void execSQL(String m, String s, int expect) {
+++  
+++          int retval = SQL_INITIAL;
+++  
+++--- 949,955 ----
+++          }
+++      }
+++  
+++!     public void execSQL(String m, String s, int expect) {
+++  
+++          int retval = SQL_INITIAL;
+++  
+++***************
+++*** 965,975 ****
+++      }
+++  
+++  /** @todo fredt - this method body seems to be incorrect */
+++!     private void execSQL(String s, int expect) {
+++          execSQL(s, s, expect);
+++      }
+++  
+++!     private int queryRowCount(String query) throws SQLException {
+++  
+++          int count = 0;
+++  
+++--- 965,975 ----
+++      }
+++  
+++  /** @todo fredt - this method body seems to be incorrect */
+++!     public void execSQL(String s, int expect) {
+++          execSQL(s, s, expect);
+++      }
+++  
+++!     public int queryRowCount(String query) throws SQLException {
+++  
+++          int count = 0;
+++  
+++***************
+++*** 990,996 ****
+++          return count;
+++      }
+++  
+++!     private int tableRowCount(String tableName) throws SQLException {
+++  
+++          String query = "SELECT count(*) FROM " + tableName;
+++  
+++--- 990,996 ----
+++          return count;
+++      }
+++  
+++!     public int tableRowCount(String tableName) throws SQLException {
+++  
+++          String query = "SELECT count(*) FROM " + tableName;
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestSql.java hsqldb/src/org/hsqldb/test/TestSql.java
+++*** hsqldb-old/src/org/hsqldb/test/TestSql.java	2007-07-11 14:17:30.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestSql.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 58,64 ****
+++          super(name);
+++      }
+++  
+++!     protected void setUp() {
+++  
+++          super.setUp();
+++  
+++--- 58,64 ----
+++          super(name);
+++      }
+++  
+++!     public void setUp() {
+++  
+++          super.setUp();
+++  
+++***************
+++*** 732,738 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          try {
+++              connection.close();
+++--- 732,738 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          try {
+++              connection.close();
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestSqlPersistent.java hsqldb/src/org/hsqldb/test/TestSqlPersistent.java
+++*** hsqldb-old/src/org/hsqldb/test/TestSqlPersistent.java	2006-04-11 17:13:24.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestSqlPersistent.java	2007-11-04 00:13:48.000000000 +0100
+++***************
+++*** 63,69 ****
+++          super(name);
+++      }
+++  
+++!     protected void setUp() throws Exception {
+++  
+++          super.setUp();
+++  
+++--- 63,69 ----
+++          super(name);
+++      }
+++  
+++!     public void setUp() throws Exception {
+++  
+++          super.setUp();
+++  
+++***************
+++*** 431,437 ****
+++          }
+++      }
+++  
+++!     protected void tearDown() {
+++  
+++          try {
+++              cConnection.close();
+++--- 431,437 ----
+++          }
+++      }
+++  
+++!     public void tearDown() {
+++  
+++          try {
+++              cConnection.close();
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestStressInsert.java hsqldb/src/org/hsqldb/test/TestStressInsert.java
+++*** hsqldb-old/src/org/hsqldb/test/TestStressInsert.java	2006-07-10 13:28:32.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestStressInsert.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 44,53 ****
+++   */
+++  public class TestStressInsert {
+++  
+++!     private Connection        con;
+++!     private PreparedStatement insertStmt;
+++!     private static final int  MAX_SIZE = 800000;
+++!     private final Random      random   = new Random(0);
+++      byte[]                    data     = getRandomBytes(MAX_SIZE);
+++  
+++      public void init() throws Exception {
+++--- 44,53 ----
+++   */
+++  public class TestStressInsert {
+++  
+++!     public Connection        con;
+++!     public PreparedStatement insertStmt;
+++!     public static final int  MAX_SIZE = 800000;
+++!     public final Random      random   = new Random(0);
+++      byte[]                    data     = getRandomBytes(MAX_SIZE);
+++  
+++      public void init() throws Exception {
+++***************
+++*** 143,149 ****
+++          }
+++      }
+++  
+++!     private byte[] getRandomBytes(int length) {
+++  
+++          byte[] ret = new byte[length];
+++  
+++--- 143,149 ----
+++          }
+++      }
+++  
+++!     public byte[] getRandomBytes(int length) {
+++  
+++          byte[] ret = new byte[length];
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestSubselect.java hsqldb/src/org/hsqldb/test/TestSubselect.java
+++*** hsqldb-old/src/org/hsqldb/test/TestSubselect.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestSubselect.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 52,67 ****
+++      //------------------------------------------------------------
+++      // Class variables
+++      //------------------------------------------------------------
+++!     private static final String databaseDriver = "org.hsqldb.jdbcDriver";
+++!     private static final String databaseURL =
+++          "jdbc:hsqldb:/hsql/test/subselect";
+++!     private static final String databaseUser     = "sa";
+++!     private static final String databasePassword = "";
+++  
+++      //------------------------------------------------------------
+++      // Instance variables
+++      //------------------------------------------------------------
+++!     private Connection jdbcConnection;
+++  
+++      //------------------------------------------------------------
+++      // Constructors
+++--- 52,67 ----
+++      //------------------------------------------------------------
+++      // Class variables
+++      //------------------------------------------------------------
+++!     public static final String databaseDriver = "org.hsqldb.jdbcDriver";
+++!     public static final String databaseURL =
+++          "jdbc:hsqldb:/hsql/test/subselect";
+++!     public static final String databaseUser     = "sa";
+++!     public static final String databasePassword = "";
+++  
+++      //------------------------------------------------------------
+++      // Instance variables
+++      //------------------------------------------------------------
+++!     public Connection jdbcConnection;
+++  
+++      //------------------------------------------------------------
+++      // Constructors
+++***************
+++*** 77,88 ****
+++      //------------------------------------------------------------
+++      // Class methods
+++      //------------------------------------------------------------
+++!     protected static Connection getJDBCConnection() throws SQLException {
+++          return DriverManager.getConnection(databaseURL, databaseUser,
+++                                             databasePassword);
+++      }
+++  
+++!     protected void setUp() throws Exception {
+++  
+++          TestSelf.deleteDatabase("/hsql/test/subselect");
+++          Class.forName(databaseDriver);
+++--- 77,88 ----
+++      //------------------------------------------------------------
+++      // Class methods
+++      //------------------------------------------------------------
+++!     public static Connection getJDBCConnection() throws SQLException {
+++          return DriverManager.getConnection(databaseURL, databaseUser,
+++                                             databasePassword);
+++      }
+++  
+++!     public void setUp() throws Exception {
+++  
+++          TestSelf.deleteDatabase("/hsql/test/subselect");
+++          Class.forName(databaseDriver);
+++***************
+++*** 92,98 ****
+++          createDataset();
+++      }
+++  
+++!     protected void tearDown() throws Exception {
+++  
+++          jdbcConnection.close();
+++  
+++--- 92,98 ----
+++          createDataset();
+++      }
+++  
+++!     public void tearDown() throws Exception {
+++  
+++          jdbcConnection.close();
+++  
+++***************
+++*** 137,143 ****
+++      //------------------------------------------------------------
+++      // Helper methods
+++      //------------------------------------------------------------
+++!     private static void compareResults(String sql, String[] expected,
+++                                         Connection jdbcConnection)
+++                                         throws SQLException {
+++  
+++--- 137,143 ----
+++      //------------------------------------------------------------
+++      // Helper methods
+++      //------------------------------------------------------------
+++!     public static void compareResults(String sql, String[] expected,
+++                                         Connection jdbcConnection)
+++                                         throws SQLException {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestTextTable.java hsqldb/src/org/hsqldb/test/TestTextTable.java
+++*** hsqldb-old/src/org/hsqldb/test/TestTextTable.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestTextTable.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 46,58 ****
+++      java.sql.Statement      m_statement;
+++      java.sql.Connection     m_connection;
+++  
+++!     private class TextTableDescriptor
+++      {
+++!         private String      m_name;
+++!         private String      m_columnSpec;
+++!         private String      m_separator;
+++!         private String      m_separatorSpec;
+++!         private Object[][]  m_data;
+++  
+++          public TextTableDescriptor( String name, String columnSpec, String separator, String separatorSpec, Object[][] data )
+++          {
+++--- 46,58 ----
+++      java.sql.Statement      m_statement;
+++      java.sql.Connection     m_connection;
+++  
+++!     public class TextTableDescriptor
+++      {
+++!         public String      m_name;
+++!         public String      m_columnSpec;
+++!         public String      m_separator;
+++!         public String      m_separatorSpec;
+++!         public Object[][]  m_data;
+++  
+++          public TextTableDescriptor( String name, String columnSpec, String separator, String separatorSpec, Object[][] data )
+++          {
+++***************
+++*** 80,86 ****
+++  
+++          /** creates a text file as described by this instance
+++           */
+++!         private void createTextFile() {
+++  
+++              PrintStream textFile = null;
+++              try {
+++--- 80,86 ----
+++  
+++          /** creates a text file as described by this instance
+++           */
+++!         public void createTextFile() {
+++  
+++              PrintStream textFile = null;
+++              try {
+++***************
+++*** 106,117 ****
+++              textFile.close();
+++          }
+++  
+++!         private String getDataSourceSpec()
+++          {
+++              return m_name + ".csv;encoding=UTF-8;fs=" + m_separatorSpec;
+++          }
+++  
+++!         private void createTable( java.sql.Connection connection ) throws SQLException
+++          {
+++              String createTable = "DROP TABLE \"" + m_name + "\" IF EXISTS;";
+++              createTable += "CREATE TEXT TABLE \"" + m_name + "\" ( " + m_columnSpec + " );";
+++--- 106,117 ----
+++              textFile.close();
+++          }
+++  
+++!         public String getDataSourceSpec()
+++          {
+++              return m_name + ".csv;encoding=UTF-8;fs=" + m_separatorSpec;
+++          }
+++  
+++!         public void createTable( java.sql.Connection connection ) throws SQLException
+++          {
+++              String createTable = "DROP TABLE \"" + m_name + "\" IF EXISTS;";
+++              createTable += "CREATE TEXT TABLE \"" + m_name + "\" ( " + m_columnSpec + " );";
+++***************
+++*** 156,162 ****
+++  
+++      /** sets up all text files for the test database
+++       */
+++!     private void setupTextFiles() {
+++  
+++          m_products.createTextFile();
+++          m_customers.createTextFile();
+++--- 156,162 ----
+++  
+++      /** sets up all text files for the test database
+++       */
+++!     public void setupTextFiles() {
+++  
+++          m_products.createTextFile();
+++          m_customers.createTextFile();
+++***************
+++*** 164,170 ****
+++  
+++      /** creates the database tables needed for the test
+++       */
+++!     private void setupDatabase() {
+++  
+++          try {
+++              m_connection = newConnection();
+++--- 164,170 ----
+++  
+++      /** creates the database tables needed for the test
+++       */
+++!     public void setupDatabase() {
+++  
+++          try {
+++              m_connection = newConnection();
+++***************
+++*** 183,196 ****
+++          setupDatabase();
+++      }
+++  
+++!     protected void tearDown() {
+++          executeStatement("SHUTDOWN");
+++          super.tearDown();
+++      }
+++  
+++      /** returns the data source definition for a given text table
+++       */
+++!     private String getDataSourceSpec( String tableName )
+++      {
+++          String spec = null;
+++          try {
+++--- 183,196 ----
+++          setupDatabase();
+++      }
+++  
+++!     public void tearDown() {
+++          executeStatement("SHUTDOWN");
+++          super.tearDown();
+++      }
+++  
+++      /** returns the data source definition for a given text table
+++       */
+++!     public String getDataSourceSpec( String tableName )
+++      {
+++          String spec = null;
+++          try {
+++***************
+++*** 207,213 ****
+++  
+++      /** determines whether a given table is currently read-only
+++       */
+++!     private boolean isReadOnly( String tableName ) {
+++          boolean isReadOnly = true;
+++          try {
+++              java.sql.ResultSet systemTables = m_statement.executeQuery(
+++--- 207,213 ----
+++  
+++      /** determines whether a given table is currently read-only
+++       */
+++!     public boolean isReadOnly( String tableName ) {
+++          boolean isReadOnly = true;
+++          try {
+++              java.sql.ResultSet systemTables = m_statement.executeQuery(
+++***************
+++*** 223,229 ****
+++  
+++      /** checks different field separators
+++       */
+++!     private void checkSeparators() {
+++  
+++          String[][] separators = new String[][] {
+++              // special separators
+++--- 223,229 ----
+++  
+++      /** checks different field separators
+++       */
+++!     public void checkSeparators() {
+++  
+++          String[][] separators = new String[][] {
+++              // special separators
+++***************
+++*** 275,281 ****
+++       *  @param expectedValues
+++       *      the values expected in the table
+++       */
+++!     private void verifyTableContent(String tableName, Object[][] expectedValues) {
+++  
+++          String selectStmt = "SELECT * FROM \"" + tableName + "\" ORDER BY ID";
+++          try
+++--- 275,281 ----
+++       *  @param expectedValues
+++       *      the values expected in the table
+++       */
+++!     public void verifyTableContent(String tableName, Object[][] expectedValues) {
+++  
+++          String selectStmt = "SELECT * FROM \"" + tableName + "\" ORDER BY ID";
+++          try
+++***************
+++*** 314,320 ****
+++       *  <p>Basically, this method calls <code>m_statement.execute(sql)</code>,
+++       *  but wraps any <code>SQLException</code>s into a JUnit error.
+++       */
+++!     private void executeStatement(String sql) {
+++  
+++          try {
+++              m_statement.execute(sql);
+++--- 314,320 ----
+++       *  <p>Basically, this method calls <code>m_statement.execute(sql)</code>,
+++       *  but wraps any <code>SQLException</code>s into a JUnit error.
+++       */
+++!     public void executeStatement(String sql) {
+++  
+++          try {
+++              m_statement.execute(sql);
+++***************
+++*** 325,331 ****
+++  
+++      /** verifies the initial content of the "products" text table, plus a simple insertion
+++       */
+++!     private void verifyInitialContent() {
+++  
+++          verifyTableContent(m_products.getName(), m_products.getData());
+++          verifyTableContent(m_customers.getName(), m_customers.getData());
+++--- 325,331 ----
+++  
+++      /** verifies the initial content of the "products" text table, plus a simple insertion
+++       */
+++!     public void verifyInitialContent() {
+++  
+++          verifyTableContent(m_products.getName(), m_products.getData());
+++          verifyTableContent(m_customers.getName(), m_customers.getData());
+++***************
+++*** 333,339 ****
+++  
+++      /** does some very basic insertion tests
+++       */
+++!     private void checkInsertions() {
+++  
+++          // check whether inserting a value succeeds
+++          executeStatement( "INSERT INTO \"" + m_products.getName() + "\" VALUES ( 3, 'Pears' )" );
+++--- 333,339 ----
+++  
+++      /** does some very basic insertion tests
+++       */
+++!     public void checkInsertions() {
+++  
+++          // check whether inserting a value succeeds
+++          executeStatement( "INSERT INTO \"" + m_products.getName() + "\" VALUES ( 3, 'Pears' )" );
+++***************
+++*** 351,357 ****
+++      /** verifies whether implicit and explicit dis/connections from/to the text table source work
+++       *  as expected
+++       */
+++!     private void checkSourceConnection() {
+++  
+++          String sqlSetTable = "SET TABLE \"" + m_products.getName() + "\"";
+++          // preconditions for the following tests
+++--- 351,357 ----
+++      /** verifies whether implicit and explicit dis/connections from/to the text table source work
+++       *  as expected
+++       */
+++!     public void checkSourceConnection() {
+++  
+++          String sqlSetTable = "SET TABLE \"" + m_products.getName() + "\"";
+++          // preconditions for the following tests
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestTextTables.java hsqldb/src/org/hsqldb/test/TestTextTables.java
+++*** hsqldb-old/src/org/hsqldb/test/TestTextTables.java	2007-05-14 22:51:38.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestTextTables.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 52,65 ****
+++          tB();
+++      }
+++  
+++!     private void tA() throws Exception {
+++  
+++          Connection conn = newConnection();
+++  
+++          TestUtil.testScript(conn, "TestText01.txt");
+++      }
+++  
+++!     private void tB() throws Exception {
+++  
+++          Connection conn = newConnection();
+++  
+++--- 52,65 ----
+++          tB();
+++      }
+++  
+++!     public void tA() throws Exception {
+++  
+++          Connection conn = newConnection();
+++  
+++          TestUtil.testScript(conn, "TestText01.txt");
+++      }
+++  
+++!     public void tB() throws Exception {
+++  
+++          Connection conn = newConnection();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestTimestamp.java hsqldb/src/org/hsqldb/test/TestTimestamp.java
+++*** hsqldb-old/src/org/hsqldb/test/TestTimestamp.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestTimestamp.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 57,63 ****
+++          super(testName);
+++      }
+++  
+++!     private void initOracle() throws Exception {
+++  
+++          Class.forName("oracle.jdbc.driver.OracleDriver");
+++  
+++--- 57,63 ----
+++          super(testName);
+++      }
+++  
+++!     public void initOracle() throws Exception {
+++  
+++          Class.forName("oracle.jdbc.driver.OracleDriver");
+++  
+++***************
+++*** 67,73 ****
+++          conn.setAutoCommit(false);
+++      }
+++  
+++!     private void initHypersonic() throws Exception {
+++  
+++          Class.forName("org.hsqldb.jdbcDriver");
+++  
+++--- 67,73 ----
+++          conn.setAutoCommit(false);
+++      }
+++  
+++!     public void initHypersonic() throws Exception {
+++  
+++          Class.forName("org.hsqldb.jdbcDriver");
+++  
+++***************
+++*** 102,110 ****
+++  //        dropTestTable();
+++      }
+++  */
+++!     private void checkExceptionTableExistsOracle(SQLException e) {}
+++  
+++!     private void checkExceptionTableExistsHsql(SQLException e) {
+++  
+++          Assert.assertTrue("Error code of SQLException is wrong",
+++                            e.getErrorCode()
+++--- 102,110 ----
+++  //        dropTestTable();
+++      }
+++  */
+++!     public void checkExceptionTableExistsOracle(SQLException e) {}
+++  
+++!     public void checkExceptionTableExistsHsql(SQLException e) {
+++  
+++          Assert.assertTrue("Error code of SQLException is wrong",
+++                            e.getErrorCode()
+++***************
+++*** 151,157 ****
+++  //        dropTestTable();
+++      }
+++  
+++!     private void dropAllTables() throws Exception {
+++  
+++          dropTestTable(nameTable);
+++          dropTestTable("\"SITE_LIST_SITE\"");
+++--- 151,157 ----
+++  //        dropTestTable();
+++      }
+++  
+++!     public void dropAllTables() throws Exception {
+++  
+++          dropTestTable(nameTable);
+++          dropTestTable("\"SITE_LIST_SITE\"");
+++***************
+++*** 161,169 ****
+++          dropTestTable("\"CASH_CURR_VALUE\"");
+++      }
+++  
+++!     private String nameTable = null;
+++  
+++!     private void doTest() throws Exception {
+++  
+++          PreparedStatement ps = conn.prepareStatement("select max(T) T1 from "
+++              + nameTable + " where ID=?");
+++--- 161,169 ----
+++          dropTestTable("\"CASH_CURR_VALUE\"");
+++      }
+++  
+++!     public String nameTable = null;
+++  
+++!     public void doTest() throws Exception {
+++  
+++          PreparedStatement ps = conn.prepareStatement("select max(T) T1 from "
+++              + nameTable + " where ID=?");
+++***************
+++*** 217,226 ****
+++          }
+++      }
+++  
+++!     private static Timestamp testTS =
+++          new Timestamp(System.currentTimeMillis());
+++  
+++!     private void insertTestData() throws Exception {
+++  
+++  //        conn.createStatement().executeUpdate("INSERT INTO \"SITE_LIST_SITE\" VALUES(23,1,'ru','RU',NULL,'\u041f\u0440\u043e\u0431\u043d\u044b\u0439 \u0441\u0430\u0439\u0442',NULL,0,'''/front_styles.css''',1,NULL,0)");
+++  //        conn.createStatement().executeUpdate("INSERT INTO \"SITE_VIRTUAL_HOST\" VALUES(36,23,'test-host')");
+++--- 217,226 ----
+++          }
+++      }
+++  
+++!     public static Timestamp testTS =
+++          new Timestamp(System.currentTimeMillis());
+++  
+++!     public void insertTestData() throws Exception {
+++  
+++  //        conn.createStatement().executeUpdate("INSERT INTO \"SITE_LIST_SITE\" VALUES(23,1,'ru','RU',NULL,'\u041f\u0440\u043e\u0431\u043d\u044b\u0439 \u0441\u0430\u0439\u0442',NULL,0,'''/front_styles.css''',1,NULL,0)");
+++  //        conn.createStatement().executeUpdate("INSERT INTO \"SITE_VIRTUAL_HOST\" VALUES(36,23,'test-host')");
+++***************
+++*** 245,251 ****
+++          conn.commit();
+++      }
+++  
+++!     private void createTestTable(String sql) throws Exception {
+++  
+++          Statement ps = conn.createStatement();
+++  
+++--- 245,251 ----
+++          conn.commit();
+++      }
+++  
+++!     public void createTestTable(String sql) throws Exception {
+++  
+++          Statement ps = conn.createStatement();
+++  
+++***************
+++*** 255,261 ****
+++          ps = null;
+++      }
+++  
+++!     private void dropTestTable(String nameTableDrop) throws Exception {
+++  
+++          String    sql = "drop table " + nameTableDrop;
+++          Statement ps  = conn.createStatement();
+++--- 255,261 ----
+++          ps = null;
+++      }
+++  
+++!     public void dropTestTable(String nameTableDrop) throws Exception {
+++  
+++          String    sql = "drop table " + nameTableDrop;
+++          Statement ps  = conn.createStatement();
+++***************
+++*** 269,282 ****
+++          ps = null;
+++      }
+++  
+++!     private void setTimeZone() {
+++  
+++          timeZone = TimeZone.getTimeZone("Asia/Irkutsk");
+++  
+++          TimeZone.setDefault(timeZone);
+++      }
+++  
+++!     private Timestamp getCurrentCurs() throws Exception {
+++  
+++          long idCurrency = 134;
+++          long idSite     = 23;
+++--- 269,282 ----
+++          ps = null;
+++      }
+++  
+++!     public void setTimeZone() {
+++  
+++          timeZone = TimeZone.getTimeZone("Asia/Irkutsk");
+++  
+++          TimeZone.setDefault(timeZone);
+++      }
+++  
+++!     public Timestamp getCurrentCurs() throws Exception {
+++  
+++          long idCurrency = 134;
+++          long idSite     = 23;
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestUtil.java hsqldb/src/org/hsqldb/test/TestUtil.java
+++*** hsqldb-old/src/org/hsqldb/test/TestUtil.java	2006-02-16 04:48:00.000000000 +0100
+++--- hsqldb/src/org/hsqldb/test/TestUtil.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 174,180 ****
+++       * SQL for the statement).
+++       * @param line line of the script file where this section started
+++       */
+++!     private static void testSection(Statement stat, HsqlArrayList section,
+++                                      int line) {
+++  
+++          //create an appropriate instance of ParsedSection
+++--- 174,180 ----
+++       * SQL for the statement).
+++       * @param line line of the script file where this section started
+++       */
+++!     public static void testSection(Statement stat, HsqlArrayList section,
+++                                      int line) {
+++  
+++          //create an appropriate instance of ParsedSection
+++***************
+++*** 201,207 ****
+++       * @param aSection Vector containing the section of script
+++       * @return a ParesedSection object
+++       */
+++!     private static ParsedSection parsedSectionFactory(
+++              HsqlArrayList aSection) {
+++  
+++          //type of the section
+++--- 201,207 ----
+++       * @param aSection Vector containing the section of script
+++       * @return a ParesedSection object
+++       */
+++!     public static ParsedSection parsedSectionFactory(
+++              HsqlArrayList aSection) {
+++  
+++          //type of the section
+++***************
+++*** 298,329 ****
+++       * Type of this test.
+++       * @see isValidCase() for allowed values
+++       */
+++!     protected char type = ' ';
+++  
+++      /** error message for this section */
+++      String message = null;
+++  
+++      /** contents of the section as an array of Strings, one for each line in the section. */
+++!     protected String[] lines = null;
+++  
+++      /** number of the last row containing results in sectionLines */
+++!     protected int resEndRow = 0;
+++  
+++      /** SQL query to be submitted to the database. */
+++!     protected String sqlString = null;
+++  
+++      /**
+++       * Constructor when the section's input lines do not need to be parsed
+++       * into SQL.
+++       */
+++!     protected ParsedSection() {}
+++  
+++      /**
+++       * Common constructor functions for this family.
+++       * @param aLines Array of the script lines containing the section of script.
+++       * database
+++       */
+++!     protected ParsedSection(String[] aLines) {
+++  
+++          lines = aLines;
+++  
+++--- 298,329 ----
+++       * Type of this test.
+++       * @see isValidCase() for allowed values
+++       */
+++!     public char type = ' ';
+++  
+++      /** error message for this section */
+++      String message = null;
+++  
+++      /** contents of the section as an array of Strings, one for each line in the section. */
+++!     public String[] lines = null;
+++  
+++      /** number of the last row containing results in sectionLines */
+++!     public int resEndRow = 0;
+++  
+++      /** SQL query to be submitted to the database. */
+++!     public String sqlString = null;
+++  
+++      /**
+++       * Constructor when the section's input lines do not need to be parsed
+++       * into SQL.
+++       */
+++!     public ParsedSection() {}
+++  
+++      /**
+++       * Common constructor functions for this family.
+++       * @param aLines Array of the script lines containing the section of script.
+++       * database
+++       */
+++!     public ParsedSection(String[] aLines) {
+++  
+++          lines = aLines;
+++  
+++***************
+++*** 400,413 ****
+++       * returns a String representation of the expected result for the test
+++       * @return The expected result(s) for the test
+++       */
+++!     protected abstract String getResultString();
+++  
+++      /**
+++       *  returns the error message for the section
+++       *
+++       * @return message
+++       */
+++!     protected String getMessage() {
+++          return message;
+++      }
+++  
+++--- 400,413 ----
+++       * returns a String representation of the expected result for the test
+++       * @return The expected result(s) for the test
+++       */
+++!     public abstract String getResultString();
+++  
+++      /**
+++       *  returns the error message for the section
+++       *
+++       * @return message
+++       */
+++!     public String getMessage() {
+++          return message;
+++      }
+++  
+++***************
+++*** 415,421 ****
+++       * returns the type of this section
+++       * @return type of this section
+++       */
+++!     protected char getType() {
+++          return type;
+++      }
+++  
+++--- 415,421 ----
+++       * returns the type of this section
+++       * @return type of this section
+++       */
+++!     public char getType() {
+++          return type;
+++      }
+++  
+++***************
+++*** 423,429 ****
+++       * returns the SQL statement for this section
+++       * @return SQL statement for this section
+++       */
+++!     protected String getSql() {
+++          return sqlString;
+++      }
+++  
+++--- 423,429 ----
+++       * returns the SQL statement for this section
+++       * @return SQL statement for this section
+++       */
+++!     public String getSql() {
+++          return sqlString;
+++      }
+++  
+++***************
+++*** 432,438 ****
+++       * @param aStatement Statement object
+++       * @return true if the result(s) are as expected, otherwise false
+++       */
+++!     protected boolean test(Statement aStatement) {
+++  
+++          try {
+++              aStatement.execute(getSql());
+++--- 432,438 ----
+++       * @param aStatement Statement object
+++       * @return true if the result(s) are as expected, otherwise false
+++       */
+++!     public boolean test(Statement aStatement) {
+++  
+++          try {
+++              aStatement.execute(getSql());
+++***************
+++*** 450,456 ****
+++       * @param aCode type code to validate.
+++       * @return true if the type code is valid, otherwise false.
+++       */
+++!     protected static boolean isValidCode(char aCode) {
+++  
+++          /* Allowed values for test codes are:
+++           * (note that UPPERCASE codes, while valid are only processed if the
+++--- 450,456 ----
+++       * @param aCode type code to validate.
+++       * @return true if the type code is valid, otherwise false.
+++       */
+++!     public static boolean isValidCode(char aCode) {
+++  
+++          /* Allowed values for test codes are:
+++           * (note that UPPERCASE codes, while valid are only processed if the
+++***************
+++*** 485,499 ****
+++  /** Represents a ParsedSection for a ResultSet test */
+++  class ResultSetParsedSection extends ParsedSection {
+++  
+++!     private String delim = System.getProperty("TestUtilFieldDelimiter", ",");
+++!     private String[] expectedRows = null;
+++  
+++      /**
+++       * constructs a new instance of ResultSetParsedSection, interpreting
+++       * the supplied results as one or more lines of delimited field values
+++       * @param lines String[]
+++       */
+++!     protected ResultSetParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++--- 485,499 ----
+++  /** Represents a ParsedSection for a ResultSet test */
+++  class ResultSetParsedSection extends ParsedSection {
+++  
+++!     public String delim = System.getProperty("TestUtilFieldDelimiter", ",");
+++!     public String[] expectedRows = null;
+++  
+++      /**
+++       * constructs a new instance of ResultSetParsedSection, interpreting
+++       * the supplied results as one or more lines of delimited field values
+++       * @param lines String[]
+++       */
+++!     public ResultSetParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++***************
+++*** 509,515 ****
+++          }
+++      }
+++  
+++!     protected String getResultString() {
+++  
+++          StringBuffer printVal = new StringBuffer();
+++  
+++--- 509,515 ----
+++          }
+++      }
+++  
+++!     public String getResultString() {
+++  
+++          StringBuffer printVal = new StringBuffer();
+++  
+++***************
+++*** 520,526 ****
+++          return printVal.toString();
+++      }
+++  
+++!     protected boolean test(Statement aStatement) {
+++  
+++          try {
+++              try {
+++--- 520,526 ----
+++          return printVal.toString();
+++      }
+++  
+++!     public boolean test(Statement aStatement) {
+++  
+++          try {
+++              try {
+++***************
+++*** 620,626 ****
+++          return true;
+++      }
+++  
+++!     private String[] getExpectedRows() {
+++          return expectedRows;
+++      }
+++  }
+++--- 620,626 ----
+++          return true;
+++      }
+++  
+++!     public String[] getExpectedRows() {
+++          return expectedRows;
+++      }
+++  }
+++***************
+++*** 631,637 ****
+++      //expected update count
+++      int countWeWant;
+++  
+++!     protected UpdateParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++--- 631,637 ----
+++      //expected update count
+++      int countWeWant;
+++  
+++!     public UpdateParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++***************
+++*** 639,653 ****
+++          countWeWant = Integer.parseInt(lines[0]);
+++      }
+++  
+++!     protected String getResultString() {
+++          return Integer.toString(getCountWeWant());
+++      }
+++  
+++!     private int getCountWeWant() {
+++          return countWeWant;
+++      }
+++  
+++!     protected boolean test(Statement aStatement) {
+++  
+++          try {
+++              try {
+++--- 639,653 ----
+++          countWeWant = Integer.parseInt(lines[0]);
+++      }
+++  
+++!     public String getResultString() {
+++          return Integer.toString(getCountWeWant());
+++      }
+++  
+++!     public int getCountWeWant() {
+++          return countWeWant;
+++      }
+++  
+++!     public boolean test(Statement aStatement) {
+++  
+++          try {
+++              try {
+++***************
+++*** 680,697 ****
+++  /** Represents a ParsedSection for silent execution */
+++  class SilentParsedSection extends ParsedSection {
+++  
+++!     protected SilentParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++          type = 's';
+++      }
+++  
+++!     protected String getResultString() {
+++          return null;
+++      }
+++  
+++!     protected boolean test(Statement aStatement) {
+++  
+++          try {
+++              aStatement.execute(getSql());
+++--- 680,697 ----
+++  /** Represents a ParsedSection for silent execution */
+++  class SilentParsedSection extends ParsedSection {
+++  
+++!     public SilentParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++          type = 's';
+++      }
+++  
+++!     public String getResultString() {
+++          return null;
+++      }
+++  
+++!     public boolean test(Statement aStatement) {
+++  
+++          try {
+++              aStatement.execute(getSql());
+++***************
+++*** 705,713 ****
+++  class CountParsedSection extends ParsedSection {
+++  
+++      //expected row count
+++!     private int countWeWant;
+++  
+++!     protected CountParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++--- 705,713 ----
+++  class CountParsedSection extends ParsedSection {
+++  
+++      //expected row count
+++!     public int countWeWant;
+++  
+++!     public CountParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++***************
+++*** 715,729 ****
+++          countWeWant = Integer.parseInt(lines[0]);
+++      }
+++  
+++!     protected String getResultString() {
+++          return Integer.toString(getCountWeWant());
+++      }
+++  
+++!     private int getCountWeWant() {
+++          return countWeWant;
+++      }
+++  
+++!     protected boolean test(Statement aStatement) {
+++  
+++          try {
+++  
+++--- 715,729 ----
+++          countWeWant = Integer.parseInt(lines[0]);
+++      }
+++  
+++!     public String getResultString() {
+++          return Integer.toString(getCountWeWant());
+++      }
+++  
+++!     public int getCountWeWant() {
+++          return countWeWant;
+++      }
+++  
+++!     public boolean test(Statement aStatement) {
+++  
+++          try {
+++  
+++***************
+++*** 774,791 ****
+++  /** Represents a ParsedSection for an Exception test */
+++  class ExceptionParsedSection extends ParsedSection {
+++  
+++!     protected ExceptionParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++          type = 'e';
+++      }
+++  
+++!     protected String getResultString() {
+++          return "SQLException";
+++      }
+++  
+++!     protected boolean test(Statement aStatement) {
+++  
+++          try {
+++              aStatement.execute(getSql());
+++--- 774,791 ----
+++  /** Represents a ParsedSection for an Exception test */
+++  class ExceptionParsedSection extends ParsedSection {
+++  
+++!     public ExceptionParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++          type = 'e';
+++      }
+++  
+++!     public String getResultString() {
+++          return "SQLException";
+++      }
+++  
+++!     public boolean test(Statement aStatement) {
+++  
+++          try {
+++              aStatement.execute(getSql());
+++***************
+++*** 804,817 ****
+++  /** Represents a ParsedSection for a section with blank type */
+++  class BlankParsedSection extends ParsedSection {
+++  
+++!     protected BlankParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++          type = ' ';
+++      }
+++  
+++!     protected String getResultString() {
+++          return "No result specified for this section";
+++      }
+++  }
+++--- 804,817 ----
+++  /** Represents a ParsedSection for a section with blank type */
+++  class BlankParsedSection extends ParsedSection {
+++  
+++!     public BlankParsedSection(String[] lines) {
+++  
+++          super(lines);
+++  
+++          type = ' ';
+++      }
+++  
+++!     public String getResultString() {
+++          return "No result specified for this section";
+++      }
+++  }
+++***************
+++*** 819,825 ****
+++  /** Represents a ParsedSection that is to be ignored */
+++  class IgnoreParsedSection extends ParsedSection {
+++  
+++!     protected IgnoreParsedSection(String[] inLines, char aType) {
+++  
+++          /* Extremely ambiguous to use input parameter of same exact
+++           * variable name as the superclass member "lines".
+++--- 819,825 ----
+++  /** Represents a ParsedSection that is to be ignored */
+++  class IgnoreParsedSection extends ParsedSection {
+++  
+++!     public IgnoreParsedSection(String[] inLines, char aType) {
+++  
+++          /* Extremely ambiguous to use input parameter of same exact
+++           * variable name as the superclass member "lines".
+++***************
+++*** 833,839 ****
+++          type = aType;
+++      }
+++  
+++!     protected String getResultString() {
+++          return "This section, of type '" + getType() + "' was ignored";
+++      }
+++  }
+++--- 833,839 ----
+++          type = aType;
+++      }
+++  
+++!     public String getResultString() {
+++          return "This section, of type '" + getType() + "' was ignored";
+++      }
+++  }
+++***************
+++*** 841,847 ****
+++  /** Represents a Section to be Displayed, not executed */
+++  class DisplaySection extends ParsedSection {
+++  
+++!     protected DisplaySection(String[] inLines) {
+++  
+++          /* Can't user the super constructor, since it does funny things when
+++           * constructing the SQL Buffer, which we don't need. */
+++--- 841,847 ----
+++  /** Represents a Section to be Displayed, not executed */
+++  class DisplaySection extends ParsedSection {
+++  
+++!     public DisplaySection(String[] inLines) {
+++  
+++          /* Can't user the super constructor, since it does funny things when
+++           * constructing the SQL Buffer, which we don't need. */
+++***************
+++*** 852,858 ****
+++          lines[0] = lines[0].substring(firstSlash + 1);
+++      }
+++  
+++!     protected String getResultString() {
+++  
+++          StringBuffer sb = new StringBuffer();
+++  
+++--- 852,858 ----
+++          lines[0] = lines[0].substring(firstSlash + 1);
+++      }
+++  
+++!     public String getResultString() {
+++  
+++          StringBuffer sb = new StringBuffer();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/test/TestViewAsterisks.java hsqldb/src/org/hsqldb/test/TestViewAsterisks.java
+++*** hsqldb-old/src/org/hsqldb/test/TestViewAsterisks.java	2007-10-16 08:56:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/test/TestViewAsterisks.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 67,73 ****
+++      /**
+++       * creates the database tables needed for the test
+++       */
+++!     private void setupDatabase() {
+++  
+++          try {
+++              m_connection = newConnection();
+++--- 67,73 ----
+++      /**
+++       * creates the database tables needed for the test
+++       */
+++!     public void setupDatabase() {
+++  
+++          try {
+++              m_connection = newConnection();
+++***************
+++*** 98,104 ****
+++          setupDatabase();
+++      }
+++  
+++!     protected void tearDown() {
+++          executeStatement("SHUTDOWN");
+++          super.tearDown();
+++      }
+++--- 98,104 ----
+++          setupDatabase();
+++      }
+++  
+++!     public void tearDown() {
+++          executeStatement("SHUTDOWN");
+++          super.tearDown();
+++      }
+++***************
+++*** 109,119 ****
+++       *  <p>Basically, this method calls <code>m_statement.execute(sql)</code>,
+++       *  but wraps any <code>SQLException</code>s into a JUnit error.
+++       */
+++!     private void executeStatement(String sql) {
+++          executeStatement(sql, 0);
+++      }
+++  
+++!     private void executeStatement(String sql, int expectedVendorCode) {
+++  
+++          try {
+++              m_statement.execute(sql);
+++--- 109,119 ----
+++       *  <p>Basically, this method calls <code>m_statement.execute(sql)</code>,
+++       *  but wraps any <code>SQLException</code>s into a JUnit error.
+++       */
+++!     public void executeStatement(String sql) {
+++          executeStatement(sql, 0);
+++      }
+++  
+++!     public void executeStatement(String sql, int expectedVendorCode) {
+++  
+++          try {
+++              m_statement.execute(sql);
+++***************
+++*** 143,149 ****
+++       *  @param viewStatement
+++       *      the statement of the view
+++       */
+++!     private void createView(String viewName, String[] columnList,
+++                              String viewStatement) throws SQLException {
+++  
+++          StringBuffer colList = new StringBuffer();
+++--- 143,149 ----
+++       *  @param viewStatement
+++       *      the statement of the view
+++       */
+++!     public void createView(String viewName, String[] columnList,
+++                              String viewStatement) throws SQLException {
+++  
+++          StringBuffer colList = new StringBuffer();
+++***************
+++*** 173,179 ****
+++      /**
+++       *  retrieves the statement which defines a given view
+++       */
+++!     private String getViewStatement(String viewName) throws SQLException {
+++  
+++          ResultSet res = m_statement.executeQuery(
+++              "SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.SYSTEM_VIEWS WHERE TABLE_NAME = '"
+++--- 173,179 ----
+++      /**
+++       *  retrieves the statement which defines a given view
+++       */
+++!     public String getViewStatement(String viewName) throws SQLException {
+++  
+++          ResultSet res = m_statement.executeQuery(
+++              "SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.SYSTEM_VIEWS WHERE TABLE_NAME = '"
+++***************
+++*** 189,195 ****
+++      /**
+++       *  ensures two tables (or views, that is) have the same content
+++       */
+++!     private void ensureEqualContent(String tableNameLHS,
+++                                      String tableNameRHS) throws SQLException {
+++  
+++          ResultSet lhs = m_statement.executeQuery("SELECT * FROM \""
+++--- 189,195 ----
+++      /**
+++       *  ensures two tables (or views, that is) have the same content
+++       */
+++!     public void ensureEqualContent(String tableNameLHS,
+++                                      String tableNameRHS) throws SQLException {
+++  
+++          ResultSet lhs = m_statement.executeQuery("SELECT * FROM \""
+++***************
+++*** 215,221 ****
+++      /**
+++       *  ensures the content of a given table matches a given object array's content
+++       */
+++!     private void ensureTableContent(String tableName,
+++                                      Object[][] tableData) throws SQLException {
+++  
+++          ResultSet lhs = m_statement.executeQuery("SELECT * FROM \""
+++--- 215,221 ----
+++      /**
+++       *  ensures the content of a given table matches a given object array's content
+++       */
+++!     public void ensureTableContent(String tableName,
+++                                      Object[][] tableData) throws SQLException {
+++  
+++          ResultSet lhs = m_statement.executeQuery("SELECT * FROM \""
+++***************
+++*** 257,263 ****
+++       *      string, it is interpreted as name of the table which must have the same content as a view. If
+++       *      it's no string either, it must be a two-dimensional Object array specifying the expected content.
+++       */
+++!     private void checkViewTranslationAndContent(String viewName,
+++              String[] columnList, String viewStatement,
+++              String expectedTranslatedStatement,
+++              Object expectedContent) throws SQLException {
+++--- 257,263 ----
+++       *      string, it is interpreted as name of the table which must have the same content as a view. If
+++       *      it's no string either, it must be a two-dimensional Object array specifying the expected content.
+++       */
+++!     public void checkViewTranslationAndContent(String viewName,
+++              String[] columnList, String viewStatement,
+++              String expectedTranslatedStatement,
+++              Object expectedContent) throws SQLException {
+++***************
+++*** 293,299 ****
+++      /**
+++       *  ensures that a given table has columns with a given name
+++       */
+++!     private void ensureTableColumns(String tableName,
+++                                      String[] columnNames) throws SQLException {
+++  
+++          ResultSet res = m_connection.getMetaData().getColumns(null, null,
+++--- 293,299 ----
+++      /**
+++       *  ensures that a given table has columns with a given name
+++       */
+++!     public void ensureTableColumns(String tableName,
+++                                      String[] columnNames) throws SQLException {
+++  
+++          ResultSet res = m_connection.getMetaData().getColumns(null, null,
+++***************
+++*** 315,321 ****
+++      /**
+++       *  checks views selecting an asterisk from a table, in different flavours
+++       */
+++!     private void checkSimpleViews() throws SQLException {
+++  
+++          // ................................................................
+++          // SELECT *
+++--- 315,321 ----
+++      /**
+++       *  checks views selecting an asterisk from a table, in different flavours
+++       */
+++!     public void checkSimpleViews() throws SQLException {
+++  
+++          // ................................................................
+++          // SELECT *
+++***************
+++*** 389,395 ****
+++      /**
+++       *  checks views selecting an asterisk plus existing columns
+++       */
+++!     private void checkAsterisksCombined() throws SQLException {
+++  
+++          // ................................................................
+++          checkViewTranslationAndContent(
+++--- 389,395 ----
+++      /**
+++       *  checks views selecting an asterisk plus existing columns
+++       */
+++!     public void checkAsterisksCombined() throws SQLException {
+++  
+++          // ................................................................
+++          checkViewTranslationAndContent(
+++***************
+++*** 419,425 ****
+++      /**
+++       *  checks views selecting asterisks from multiple tables
+++       */
+++!     private void checkMultipleTables() throws SQLException {
+++  
+++          // ................................................................
+++          checkViewTranslationAndContent(
+++--- 419,425 ----
+++      /**
+++       *  checks views selecting asterisks from multiple tables
+++       */
+++!     public void checkMultipleTables() throws SQLException {
+++  
+++          // ................................................................
+++          checkViewTranslationAndContent(
+++***************
+++*** 473,479 ****
+++      /**
+++       *  checks views selecting from sub selects
+++       */
+++!     private void checkSubSelects() throws SQLException {
+++  
+++          // ................................................................
+++          checkViewTranslationAndContent(
+++--- 473,479 ----
+++      /**
+++       *  checks views selecting from sub selects
+++       */
+++!     public void checkSubSelects() throws SQLException {
+++  
+++          // ................................................................
+++          checkViewTranslationAndContent(
+++***************
+++*** 504,510 ****
+++      /**
+++       *  checks views which are defined using a column list
+++       */
+++!     private void checkColumnLists() throws SQLException {
+++  
+++          // just to ensure the column count handling is as expected, else below tests might be useless
+++          executeStatement("CREATE VIEW IMPOSSIBLE (\"A\") AS SELECT * FROM ABC",
+++--- 504,510 ----
+++      /**
+++       *  checks views which are defined using a column list
+++       */
+++!     public void checkColumnLists() throws SQLException {
+++  
+++          // just to ensure the column count handling is as expected, else below tests might be useless
+++          executeStatement("CREATE VIEW IMPOSSIBLE (\"A\") AS SELECT * FROM ABC",
+++***************
+++*** 522,528 ****
+++      /**
+++       *  checks views based on other views
+++       */
+++!     private void checkViewsOnViews() throws SQLException {
+++  
+++          // ................................................................
+++          // not that it should make any difference whether we SELECT FROM a table or view, but who knows
+++--- 522,528 ----
+++      /**
+++       *  checks views based on other views
+++       */
+++!     public void checkViewsOnViews() throws SQLException {
+++  
+++          // ................................................................
+++          // not that it should make any difference whether we SELECT FROM a table or view, but who knows
+++***************
+++*** 534,540 ****
+++      /**
+++       *  checks views based on a UNION statement
+++       */
+++!     private void checkUnionViews() throws SQLException {
+++  
+++          checkViewTranslationAndContent(
+++              "U1", null, "SELECT * FROM TABLE_A UNION SELECT * FROM TABLE_B",
+++--- 534,540 ----
+++      /**
+++       *  checks views based on a UNION statement
+++       */
+++!     public void checkUnionViews() throws SQLException {
+++  
+++          checkViewTranslationAndContent(
+++              "U1", null, "SELECT * FROM TABLE_A UNION SELECT * FROM TABLE_B",
+++diff -crN hsqldb-old/src/org/hsqldb/TextTable.java hsqldb/src/org/hsqldb/TextTable.java
+++*** hsqldb-old/src/org/hsqldb/TextTable.java	2007-10-11 11:32:16.000000000 +0200
+++--- hsqldb/src/org/hsqldb/TextTable.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 48,56 ****
+++   */
+++  class TextTable extends org.hsqldb.Table {
+++  
+++!     private String  dataSource  = "";
+++!     private boolean isReversed  = false;
+++!     private boolean isConnected = false;
+++  
+++      /**
+++       *  Constructs a new TextTable from the given arguments.
+++--- 48,56 ----
+++   */
+++  class TextTable extends org.hsqldb.Table {
+++  
+++!     public String  dataSource  = "";
+++!     public boolean isReversed  = false;
+++!     public boolean isConnected = false;
+++  
+++      /**
+++       *  Constructs a new TextTable from the given arguments.
+++***************
+++*** 69,75 ****
+++      /**
+++       * common handling for all errors during <code>connect</code>
+++       */
+++!     private void onConnectError(Session session) {
+++  
+++          if (cache != null) {
+++              try {
+++--- 69,75 ----
+++      /**
+++       * common handling for all errors during <code>connect</code>
+++       */
+++!     public void onConnectError(Session session) {
+++  
+++          if (cache != null) {
+++              try {
+++***************
+++*** 96,102 ****
+++      /**
+++       * connects to the data source
+++       */
+++!     private void connect(Session session,
+++                           boolean withReadOnlyData) throws HsqlException {
+++  
+++          // Open new cache:
+++--- 96,102 ----
+++      /**
+++       * connects to the data source
+++       */
+++!     public void connect(Session session,
+++                           boolean withReadOnlyData) throws HsqlException {
+++  
+++          // Open new cache:
+++***************
+++*** 184,190 ****
+++       *
+++       * Better clarification of the role of the methods is needed.
+++       */
+++!     private void openCache(Session session, String dataSourceNew,
+++                             boolean isReversedNew,
+++                             boolean isReadOnlyNew) throws HsqlException {
+++  
+++--- 184,190 ----
+++       *
+++       * Better clarification of the role of the methods is needed.
+++       */
+++!     public void openCache(Session session, String dataSourceNew,
+++                             boolean isReversedNew,
+++                             boolean isReadOnlyNew) throws HsqlException {
+++  
+++***************
+++*** 204,210 ****
+++       * High level command to assign a data source to the table definition.
+++       * Reassigns only if the data source or direction has changed.
+++       */
+++!     protected void setDataSource(Session session, String dataSourceNew,
+++                                   boolean isReversedNew,
+++                                   boolean newFile) throws HsqlException {
+++  
+++--- 204,210 ----
+++       * High level command to assign a data source to the table definition.
+++       * Reassigns only if the data source or direction has changed.
+++       */
+++!     public void setDataSource(Session session, String dataSourceNew,
+++                                   boolean isReversedNew,
+++                                   boolean newFile) throws HsqlException {
+++  
+++***************
+++*** 231,241 ****
+++          }
+++      }
+++  
+++!     protected String getDataSource() {
+++          return dataSource;
+++      }
+++  
+++!     protected boolean isDescDataSource() {
+++          return isReversed;
+++      }
+++  
+++--- 231,241 ----
+++          }
+++      }
+++  
+++!     public String getDataSource() {
+++          return dataSource;
+++      }
+++  
+++!     public boolean isDescDataSource() {
+++          return isReversed;
+++      }
+++  
+++***************
+++*** 293,299 ****
+++          return false;
+++      }
+++  
+++!     protected Table duplicate() throws HsqlException {
+++          return new TextTable(database, tableName, getTableType());
+++      }
+++  
+++--- 293,299 ----
+++          return false;
+++      }
+++  
+++!     public Table duplicate() throws HsqlException {
+++          return new TextTable(database, tableName, getTableType());
+++      }
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/Tokenizer.java hsqldb/src/org/hsqldb/Tokenizer.java
+++*** hsqldb-old/src/org/hsqldb/Tokenizer.java	2007-07-23 20:30:48.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Tokenizer.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 98,104 ****
+++   */
+++  public class Tokenizer {
+++  
+++!     private static final int NO_TYPE     = 0,
+++                               NAME        = 1,
+++                               LONG_NAME   = 2,
+++                               SPECIAL     = 3,
+++--- 98,104 ----
+++   */
+++  public class Tokenizer {
+++  
+++!     public static final int NO_TYPE     = 0,
+++                               NAME        = 1,
+++                               LONG_NAME   = 2,
+++                               SPECIAL     = 3,
+++***************
+++*** 115,143 ****
+++                               NAMED_PARAM = 14;
+++  
+++      // used only internally
+++!     private static final int QUOTED_IDENTIFIER = 15,
+++                               REMARK_LINE       = 16,
+++                               REMARK            = 17;
+++!     private String           sCommand;
+++!     private int              iLength;
+++!     private int              iIndex;
+++!     private int              tokenIndex;
+++!     private int              nextTokenIndex;
+++!     private int              beginIndex;
+++!     private int              iType;
+++!     private String           sToken;
+++!     private int              indexLongNameFirst = -1;
+++!     private String           sLongNameFirst = null;
+++!     private int              typeLongNameFirst;
+++  
+++      // getToken() will clear LongNameFirst unless retainFirst is set.
+++!     private boolean retainFirst = false;
+++  
+++! //    private String           sLongNameLast;
+++      // WAIT.  Don't do anything before popping another Token (because the
+++      // state variables aren't set properly due to a call of wait()).
+++!     private boolean bWait;
+++!     private boolean lastTokenQuotedID;
+++  
+++      // literals that are values
+++      static IntValueHashMap valueTokens;
+++--- 115,143 ----
+++                               NAMED_PARAM = 14;
+++  
+++      // used only internally
+++!     public static final int QUOTED_IDENTIFIER = 15,
+++                               REMARK_LINE       = 16,
+++                               REMARK            = 17;
+++!     public String           sCommand;
+++!     public int              iLength;
+++!     public int              iIndex;
+++!     public int              tokenIndex;
+++!     public int              nextTokenIndex;
+++!     public int              beginIndex;
+++!     public int              iType;
+++!     public String           sToken;
+++!     public int              indexLongNameFirst = -1;
+++!     public String           sLongNameFirst = null;
+++!     public int              typeLongNameFirst;
+++  
+++      // getToken() will clear LongNameFirst unless retainFirst is set.
+++!     public boolean retainFirst = false;
+++  
+++! //    public String           sLongNameLast;
+++      // WAIT.  Don't do anything before popping another Token (because the
+++      // state variables aren't set properly due to a call of wait()).
+++!     public boolean bWait;
+++!     public boolean lastTokenQuotedID;
+++  
+++      // literals that are values
+++      static IntValueHashMap valueTokens;
+++***************
+++*** 733,739 ****
+++       *
+++       * @throws HsqlException
+++       */
+++!     private void getToken() throws HsqlException {
+++  
+++          if (bWait) {
+++              bWait  = false;
+++--- 733,739 ----
+++       *
+++       * @throws HsqlException
+++       */
+++!     public void getToken() throws HsqlException {
+++  
+++          if (bWait) {
+++              bWait  = false;
+++***************
+++*** 1117,1123 ****
+++  // because these strings might end up as part of internal data structures
+++  // or table elements.
+++  // we may consider using pools to avoid recreating the strings
+++!     private String getString(char quoteChar) throws HsqlException {
+++  
+++          try {
+++              int     nextIndex   = iIndex;
+++--- 1117,1123 ----
+++  // because these strings might end up as part of internal data structures
+++  // or table elements.
+++  // we may consider using pools to avoid recreating the strings
+++!     public String getString(char quoteChar) throws HsqlException {
+++  
+++          try {
+++              int     nextIndex   = iIndex;
+++diff -crN hsqldb-old/src/org/hsqldb/Token.java hsqldb/src/org/hsqldb/Token.java
+++*** hsqldb-old/src/org/hsqldb/Token.java	2007-06-21 10:31:36.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Token.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 45,51 ****
+++   */
+++  public class Token {
+++  
+++!     private static IntValueHashMap commandSet;
+++  
+++      //
+++      static final String        T_ASTERISK     = "*";
+++--- 45,51 ----
+++   */
+++  public class Token {
+++  
+++!     public static IntValueHashMap commandSet;
+++  
+++      //
+++      static final String        T_ASTERISK     = "*";
+++***************
+++*** 708,714 ****
+++       *
+++       * @return a new map for the database command token set
+++       */
+++!     private static IntValueHashMap newCommandSet() {
+++  
+++          IntValueHashMap commandSet;
+++  
+++--- 708,714 ----
+++       *
+++       * @return a new map for the database command token set
+++       */
+++!     public static IntValueHashMap newCommandSet() {
+++  
+++          IntValueHashMap commandSet;
+++  
+++***************
+++*** 790,796 ****
+++          return commandSet.get(token, -1);
+++      }
+++  
+++!     private static HashSet keywords;
+++      static IntValueHashMap valueTokens;
+++  
+++      static {
+++--- 790,796 ----
+++          return commandSet.get(token, -1);
+++      }
+++  
+++!     public static HashSet keywords;
+++      static IntValueHashMap valueTokens;
+++  
+++      static {
+++diff -crN hsqldb-old/src/org/hsqldb/Trace.java hsqldb/src/org/hsqldb/Trace.java
+++*** hsqldb-old/src/org/hsqldb/Trace.java	2007-10-16 08:56:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Trace.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 709,715 ****
+++      /**
+++       * Returns the stack trace for doAssert()
+++       */
+++!     private static String getStackTrace() {
+++  
+++          try {
+++              Exception e = new Exception();
+++--- 709,715 ----
+++      /**
+++       * Returns the stack trace for doAssert()
+++       */
+++!     public static String getStackTrace() {
+++  
+++          try {
+++              Exception e = new Exception();
+++diff -crN hsqldb-old/src/org/hsqldb/TransactionManager.java hsqldb/src/org/hsqldb/TransactionManager.java
+++*** hsqldb-old/src/org/hsqldb/TransactionManager.java	2005-11-19 19:20:52.000000000 +0100
+++--- hsqldb/src/org/hsqldb/TransactionManager.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 169,175 ****
+++          }
+++      }
+++  
+++!     private long globalActionTimestamp = 0;
+++  
+++      /**
+++       * gets the next timestamp for an action
+++--- 169,175 ----
+++          }
+++      }
+++  
+++!     public long globalActionTimestamp = 0;
+++  
+++      /**
+++       * gets the next timestamp for an action
+++diff -crN hsqldb-old/src/org/hsqldb/TriggerDef.java hsqldb/src/org/hsqldb/TriggerDef.java
+++*** hsqldb-old/src/org/hsqldb/TriggerDef.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/TriggerDef.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 84,100 ****
+++          return defaultQueueSize;
+++      }
+++  
+++!     protected static int defaultQueueSize = 1024;
+++      Table                table;
+++      Trigger              trigger;
+++      String               triggerClassName;
+++      int                  vectorIndex;               // index into HsqlArrayList[]
+++  
+++!     //protected boolean busy;               // firing trigger in progress
+++!     protected HsqlDeque        pendingQueue;        // row triggers pending
+++!     protected int              rowsQueued;          // rows in pendingQueue
+++!     protected boolean          valid     = true;    // parsing valid
+++!     protected volatile boolean keepGoing = true;
+++  
+++      /**
+++       *  Constructs a new TriggerDef object to represent an HSQLDB trigger
+++--- 84,100 ----
+++          return defaultQueueSize;
+++      }
+++  
+++!     public static int defaultQueueSize = 1024;
+++      Table                table;
+++      Trigger              trigger;
+++      String               triggerClassName;
+++      int                  vectorIndex;               // index into HsqlArrayList[]
+++  
+++!     //public boolean busy;               // firing trigger in progress
+++!     public HsqlDeque        pendingQueue;        // row triggers pending
+++!     public int              rowsQueued;          // rows in pendingQueue
+++!     public boolean          valid     = true;    // parsing valid
+++!     public volatile boolean keepGoing = true;
+++  
+++      /**
+++       *  Constructs a new TriggerDef object to represent an HSQLDB trigger
+++diff -crN hsqldb-old/src/org/hsqldb/types/Binary.java hsqldb/src/org/hsqldb/types/Binary.java
+++*** hsqldb-old/src/org/hsqldb/types/Binary.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/types/Binary.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 46,52 ****
+++   */
+++  public class Binary {
+++  
+++!     private byte[] data;
+++      int            hash;
+++  
+++      /**
+++--- 46,52 ----
+++   */
+++  public class Binary {
+++  
+++!     public byte[] data;
+++      int            hash;
+++  
+++      /**
+++diff -crN hsqldb-old/src/org/hsqldb/types/JavaObject.java hsqldb/src/org/hsqldb/types/JavaObject.java
+++*** hsqldb-old/src/org/hsqldb/types/JavaObject.java	2005-10-23 21:25:12.000000000 +0200
+++--- hsqldb/src/org/hsqldb/types/JavaObject.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 65,71 ****
+++   */
+++  public class JavaObject {
+++  
+++!     private byte[] data;
+++  
+++      /**
+++       * Constructor used inside the engine when an already serialized
+++--- 65,71 ----
+++   */
+++  public class JavaObject {
+++  
+++!     public byte[] data;
+++  
+++      /**
+++       * Constructor used inside the engine when an already serialized
+++diff -crN hsqldb-old/src/org/hsqldb/Types.java hsqldb/src/org/hsqldb/Types.java
+++*** hsqldb-old/src/org/hsqldb/Types.java	2007-06-11 12:12:30.000000000 +0200
+++--- hsqldb/src/org/hsqldb/Types.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 463,469 ****
+++  //                   number class is
+++  //                   narrower than the corresponding internal
+++  //                   wrapper
+++!     private static org.hsqldb.lib.HashSet illegalParameterClasses;
+++  
+++      static {
+++          typeAliases = new IntValueHashMap(50);
+++--- 463,469 ----
+++  //                   number class is
+++  //                   narrower than the corresponding internal
+++  //                   wrapper
+++!     public static org.hsqldb.lib.HashSet illegalParameterClasses;
+++  
+++      static {
+++          typeAliases = new IntValueHashMap(50);
+++***************
+++*** 1113,1119 ****
+++      //
+++      // 1.) refusing to directly display such columns in graphical query results
+++      // 2.) providing other means to retrieve and display such values
+++!     private static int MAX_CHAR_OR_VARCHAR_DISPLAY_SIZE() {
+++  
+++          try {
+++              return Integer.getInteger(
+++--- 1113,1119 ----
+++      //
+++      // 1.) refusing to directly display such columns in graphical query results
+++      // 2.) providing other means to retrieve and display such values
+++!     public static int MAX_CHAR_OR_VARCHAR_DISPLAY_SIZE() {
+++  
+++          try {
+++              return Integer.getInteger(
+++diff -crN hsqldb-old/src/org/hsqldb/User.java hsqldb/src/org/hsqldb/User.java
+++*** hsqldb-old/src/org/hsqldb/User.java	2006-04-11 17:13:22.000000000 +0200
+++--- hsqldb/src/org/hsqldb/User.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 91,112 ****
+++  public class User {
+++  
+++      /** true if this user is the sys user. */
+++!     private boolean isSys;
+++  
+++      /** true if this user is the public user. */
+++!     private boolean isPublic;
+++  
+++      /** user name. */
+++!     private String sName;
+++  
+++      /** password. */
+++!     private String sPassword;
+++  
+++      /** default schema when new Sessions started (defaults to PUBLIC schema) */
+++!     private HsqlName initialSchema = null;
+++  
+++      /** grantee object. */
+++!     private Grantee grantee;
+++  
+++      /**
+++       * Constructor
+++--- 91,112 ----
+++  public class User {
+++  
+++      /** true if this user is the sys user. */
+++!     public boolean isSys;
+++  
+++      /** true if this user is the public user. */
+++!     public boolean isPublic;
+++  
+++      /** user name. */
+++!     public String sName;
+++  
+++      /** password. */
+++!     public String sPassword;
+++  
+++      /** default schema when new Sessions started (defaults to PUBLIC schema) */
+++!     public HsqlName initialSchema = null;
+++  
+++      /** grantee object. */
+++!     public Grantee grantee;
+++  
+++      /**
+++       * Constructor
+++diff -crN hsqldb-old/src/org/hsqldb/UserManager.java hsqldb/src/org/hsqldb/UserManager.java
+++*** hsqldb-old/src/org/hsqldb/UserManager.java	2006-04-11 17:13:22.000000000 +0200
+++--- hsqldb/src/org/hsqldb/UserManager.java	2007-11-04 00:14:04.000000000 +0100
+++***************
+++*** 112,119 ****
+++       * User object is kept in the list because it's needed by MetaData
+++       * routines via "listVisibleUsers(x, true)".
+++       */
+++!     private HashMappedList userList;
+++!     private GranteeManager granteeManager;
+++  
+++      /**
+++       * Construction happens once for each Database object.
+++--- 112,119 ----
+++       * User object is kept in the list because it's needed by MetaData
+++       * routines via "listVisibleUsers(x, true)".
+++       */
+++!     public HashMappedList userList;
+++!     public GranteeManager granteeManager;
+++  
+++      /**
+++       * Construction happens once for each Database object.
+++diff -crN hsqldb-old/src/org/hsqldb/util/CodeSwitcher.java hsqldb/src/org/hsqldb/util/CodeSwitcher.java
+++*** hsqldb-old/src/org/hsqldb/util/CodeSwitcher.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/CodeSwitcher.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 109,121 ****
+++   */
+++  public class CodeSwitcher {
+++  
+++!     private static final String ls = System.getProperty("line.separator",
+++          "\n");
+++!     private Vector           vList;
+++!     private Vector           vSwitchOn;
+++!     private Vector           vSwitchOff;
+++!     private Vector           vSwitches;
+++!     private static final int MAX_LINELENGTH = 82;
+++  
+++      /**
+++       * Method declaration
+++--- 109,121 ----
+++   */
+++  public class CodeSwitcher {
+++  
+++!     public static final String ls = System.getProperty("line.separator",
+++          "\n");
+++!     public Vector           vList;
+++!     public Vector           vSwitchOn;
+++!     public Vector           vSwitchOff;
+++!     public Vector           vSwitches;
+++!     public static final int MAX_LINELENGTH = 82;
+++  
+++      /**
+++       * Method declaration
+++diff -crN hsqldb-old/src/org/hsqldb/util/CommonSwing.java hsqldb/src/org/hsqldb/util/CommonSwing.java
+++*** hsqldb-old/src/org/hsqldb/util/CommonSwing.java	2006-02-16 04:48:00.000000000 +0100
+++--- hsqldb/src/org/hsqldb/util/CommonSwing.java	2007-11-04 00:13:47.000000000 +0100
+++***************
+++*** 57,68 ****
+++   */
+++  class CommonSwing {
+++  
+++!     protected static String messagerHeader = "Database Manager Swing Error";
+++!     protected static String Native         = "Native";
+++!     protected static String Java           = "Java";
+++!     protected static String Motif          = "Motif";
+++!     protected static String plaf           = "plaf";
+++!     protected static String GTK            = "GTK";
+++  
+++      // (ulrivo): An actual Image.
+++      static Image getIcon(String target) {
+++--- 57,68 ----
+++   */
+++  class CommonSwing {
+++  
+++!     public static String messagerHeader = "Database Manager Swing Error";
+++!     public static String Native         = "Native";
+++!     public static String Java           = "Java";
+++!     public static String Motif          = "Motif";
+++!     public static String plaf           = "plaf";
+++!     public static String GTK            = "GTK";
+++  
+++      // (ulrivo): An actual Image.
+++      static Image getIcon(String target) {
+++***************
+++*** 106,112 ****
+++      }
+++  
+++      // (weconsultants@users: Callable errorMessage method
+++!     protected static void errorMessage(String errorMessage) {
+++  
+++          /**
+++           * Display Jpanel Error messages any text Errors. Overloads
+++--- 106,112 ----
+++      }
+++  
+++      // (weconsultants@users: Callable errorMessage method
+++!     public static void errorMessage(String errorMessage) {
+++  
+++          /**
+++           * Display Jpanel Error messages any text Errors. Overloads
+++diff -crN hsqldb-old/src/org/hsqldb/util/ConnectionDialogCommon.java hsqldb/src/org/hsqldb/util/ConnectionDialogCommon.java
+++*** hsqldb-old/src/org/hsqldb/util/ConnectionDialogCommon.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ConnectionDialogCommon.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 59,66 ****
+++   */
+++  class ConnectionDialogCommon {
+++  
+++!     private static String[][]       connTypes;
+++!     private static final String[][] sJDBCTypes = {
+++          {
+++              "HSQL Database Engine In-Memory", "org.hsqldb.jdbcDriver",
+++              "jdbc:hsqldb:mem:."
+++--- 59,66 ----
+++   */
+++  class ConnectionDialogCommon {
+++  
+++!     public static String[][]       connTypes;
+++!     public static final String[][] sJDBCTypes = {
+++          {
+++              "HSQL Database Engine In-Memory", "org.hsqldb.jdbcDriver",
+++              "jdbc:hsqldb:mem:."
+++***************
+++*** 159,166 ****
+++   */
+++      }
+++  
+++!     private static final String fileName       = "hsqlprefs.dat";
+++!     private static File         recentSettings = null;
+++  
+++      static Hashtable loadRecentConnectionSettings() throws IOException {
+++  
+++--- 159,166 ----
+++   */
+++      }
+++  
+++!     public static final String fileName       = "hsqlprefs.dat";
+++!     public static File         recentSettings = null;
+++  
+++      static Hashtable loadRecentConnectionSettings() throws IOException {
+++  
+++***************
+++*** 245,251 ****
+++       * @param settings ConnectionSetting[]
+++       * @throw IOException if something goes wrong while writing
+++       */
+++!     private static void storeRecentConnectionSettings(Hashtable settings) {
+++  
+++          try {
+++              if (recentSettings == null) {
+++--- 245,251 ----
+++       * @param settings ConnectionSetting[]
+++       * @throw IOException if something goes wrong while writing
+++       */
+++!     public static void storeRecentConnectionSettings(Hashtable settings) {
+++  
+++          try {
+++              if (recentSettings == null) {
+++***************
+++*** 310,316 ****
+++          } catch (Throwable t) {}
+++      }
+++  
+++!     private static String homedir = null;
+++  
+++      public static void setHomeDir() {
+++  
+++--- 310,316 ----
+++          } catch (Throwable t) {}
+++      }
+++  
+++!     public static String homedir = null;
+++  
+++      public static void setHomeDir() {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/ConnectionDialog.java hsqldb/src/org/hsqldb/util/ConnectionDialog.java
+++*** hsqldb-old/src/org/hsqldb/util/ConnectionDialog.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ConnectionDialog.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 67,78 ****
+++  class ConnectionDialog extends Dialog
+++  implements ActionListener, ItemListener {
+++  
+++!     protected Connection mConnection;
+++!     protected TextField  mName, mDriver, mURL, mUser, mPassword;
+++!     protected Label      mError;
+++!     private String[][]   connTypes;
+++!     private Hashtable    settings;
+++!     private Choice       types, recent;
+++  
+++      /**
+++       * Method declaration
+++--- 67,78 ----
+++  class ConnectionDialog extends Dialog
+++  implements ActionListener, ItemListener {
+++  
+++!     public Connection mConnection;
+++!     public TextField  mName, mDriver, mURL, mUser, mPassword;
+++!     public Label      mError;
+++!     public String[][]   connTypes;
+++!     public Hashtable    settings;
+++!     public Choice       types, recent;
+++  
+++      /**
+++       * Method declaration
+++***************
+++*** 110,116 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void create() {
+++  
+++          Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
+++  
+++--- 110,116 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void create() {
+++  
+++          Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
+++  
+++***************
+++*** 305,311 ****
+++       *
+++       * @return
+++       */
+++!     protected static Label createLabel(String s) {
+++  
+++          Label l = new Label(s);
+++  
+++--- 305,311 ----
+++       *
+++       * @return
+++       */
+++!     public static Label createLabel(String s) {
+++  
+++          Label l = new Label(s);
+++  
+++***************
+++*** 322,328 ****
+++       *
+++       * @return
+++       */
+++!     protected static Panel createBorderPanel(Component center) {
+++  
+++          Panel p = new Panel();
+++  
+++--- 322,328 ----
+++       *
+++       * @return
+++       */
+++!     public static Panel createBorderPanel(Component center) {
+++  
+++          Panel p = new Panel();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/ConnectionDialogSwing.java hsqldb/src/org/hsqldb/util/ConnectionDialogSwing.java
+++*** hsqldb-old/src/org/hsqldb/util/ConnectionDialogSwing.java	2006-02-16 04:48:00.000000000 +0100
+++--- hsqldb/src/org/hsqldb/util/ConnectionDialogSwing.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 82,97 ****
+++      /**
+++       * Comment for <code>serialVersionUID</code>
+++       */
+++!     private static final long serialVersionUID = 1L;
+++!     private Connection        mConnection;
+++!     private JTextField        mName, mDriver, mURL, mUser;
+++!     private JPasswordField    mPassword;
+++!     private String[][]        connTypes;
+++!     private Hashtable         settings;
+++!     private JButton           okCancel, clear;
+++!     private JComboBox mSettingName =
+++          new JComboBox(loadRecentConnectionSettings());
+++!     private static ConnectionSetting currentConnectionSetting = null;
+++  
+++      public static void setConnectionSetting(
+++              ConnectionSetting connectionSetting) {
+++--- 82,97 ----
+++      /**
+++       * Comment for <code>serialVersionUID</code>
+++       */
+++!     public static final long serialVersionUID = 1L;
+++!     public Connection        mConnection;
+++!     public JTextField        mName, mDriver, mURL, mUser;
+++!     public JPasswordField    mPassword;
+++!     public String[][]        connTypes;
+++!     public Hashtable         settings;
+++!     public JButton           okCancel, clear;
+++!     public JComboBox mSettingName =
+++          new JComboBox(loadRecentConnectionSettings());
+++!     public static ConnectionSetting currentConnectionSetting = null;
+++  
+++      public static void setConnectionSetting(
+++              ConnectionSetting connectionSetting) {
+++***************
+++*** 110,116 ****
+++          super(owner, title, true);
+++      }
+++  
+++!     private void create() {
+++  
+++          Box main     = Box.createHorizontalBox();
+++          Box labels   = Box.createVerticalBox();
+++--- 110,116 ----
+++          super(owner, title, true);
+++      }
+++  
+++!     public void create() {
+++  
+++          Box main     = Box.createHorizontalBox();
+++          Box labels   = Box.createVerticalBox();
+++***************
+++*** 285,291 ****
+++          return dialog.mConnection;
+++      }
+++  
+++!     private static JLabel createLabel(String s) {
+++  
+++          JLabel l = new JLabel(s);
+++  
+++--- 285,291 ----
+++          return dialog.mConnection;
+++      }
+++  
+++!     public static JLabel createLabel(String s) {
+++  
+++          JLabel l = new JLabel(s);
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/ConnectionSetting.java hsqldb/src/org/hsqldb/util/ConnectionSetting.java
+++*** hsqldb-old/src/org/hsqldb/util/ConnectionSetting.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ConnectionSetting.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 39,45 ****
+++   */
+++  public class ConnectionSetting implements java.io.Serializable {
+++  
+++!     private String name, driver, url, user, pw;
+++  
+++      String getName() {
+++          return name;
+++--- 39,45 ----
+++   */
+++  public class ConnectionSetting implements java.io.Serializable {
+++  
+++!     public String name, driver, url, user, pw;
+++  
+++      String getName() {
+++          return name;
+++***************
+++*** 62,68 ****
+++      }
+++  
+++      // Constructors
+++!     private ConnectionSetting() {}
+++      ;
+++  
+++      ConnectionSetting(String name, String driver, String url, String user,
+++--- 62,68 ----
+++      }
+++  
+++      // Constructors
+++!     public ConnectionSetting() {}
+++      ;
+++  
+++      ConnectionSetting(String name, String driver, String url, String user,
+++diff -crN hsqldb-old/src/org/hsqldb/util/CSVWriter.java hsqldb/src/org/hsqldb/util/CSVWriter.java
+++*** hsqldb-old/src/org/hsqldb/util/CSVWriter.java	2007-06-11 12:12:32.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/CSVWriter.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 49,58 ****
+++   */
+++  public class CSVWriter {
+++  
+++!     private String             newline = System.getProperty("line.separator");
+++!     private OutputStreamWriter writer  = null;
+++!     private int                nbrCols = 0;
+++!     private int                nbrRows = 0;
+++  
+++      /**
+++       * constructor.
+++--- 49,58 ----
+++   */
+++  public class CSVWriter {
+++  
+++!     public String             newline = System.getProperty("line.separator");
+++!     public OutputStreamWriter writer  = null;
+++!     public int                nbrCols = 0;
+++!     public int                nbrRows = 0;
+++  
+++      /**
+++       * constructor.
+++***************
+++*** 100,106 ****
+++          this.writer.close();
+++      }
+++  
+++!     private void doWriteData(String[] values) throws IOException {
+++  
+++          for (int i = 0; i < values.length; i++) {
+++              if (i > 0) {
+++--- 100,106 ----
+++          this.writer.close();
+++      }
+++  
+++!     public void doWriteData(String[] values) throws IOException {
+++  
+++          for (int i = 0; i < values.length; i++) {
+++              if (i > 0) {
+++***************
+++*** 119,125 ****
+++          this.nbrRows++;
+++      }
+++  
+++!     private String toCsvValue(String str) {
+++  
+++          StringBuffer sb = new StringBuffer();
+++  
+++--- 119,125 ----
+++          this.nbrRows++;
+++      }
+++  
+++!     public String toCsvValue(String str) {
+++  
+++          StringBuffer sb = new StringBuffer();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/DatabaseManagerCommon.java hsqldb/src/org/hsqldb/util/DatabaseManagerCommon.java
+++*** hsqldb-old/src/org/hsqldb/util/DatabaseManagerCommon.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/DatabaseManagerCommon.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 92,98 ****
+++   */
+++  class DatabaseManagerCommon {
+++  
+++!     private static Random rRandom    = new Random(100);
+++      static String[]       selectHelp = {
+++          "SELECT * FROM ",
+++  
+++--- 92,98 ----
+++   */
+++  class DatabaseManagerCommon {
+++  
+++!     public static Random rRandom    = new Random(100);
+++      static String[]       selectHelp = {
+++          "SELECT * FROM ",
+++  
+++***************
+++*** 420,424 ****
+++          return (System.currentTimeMillis() - start);
+++      }
+++  
+++!     private DatabaseManagerCommon() {}
+++  }
+++--- 420,424 ----
+++          return (System.currentTimeMillis() - start);
+++      }
+++  
+++!     public DatabaseManagerCommon() {}
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/util/DatabaseManager.java hsqldb/src/org/hsqldb/util/DatabaseManager.java
+++*** hsqldb-old/src/org/hsqldb/util/DatabaseManager.java	2007-10-19 22:16:42.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/DatabaseManager.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 98,108 ****
+++  public class DatabaseManager extends Applet
+++  implements ActionListener, WindowListener, KeyListener {
+++  
+++!     private static final String DEFAULT_RCFILE =
+++          System.getProperty("user.home") + "/dbmanager.rc";
+++      static final String    NL           = System.getProperty("line.separator");
+++      static final int       iMaxRecent   = 24;
+++!     private static boolean TT_AVAILABLE = false;
+++  
+++      static {
+++          try {
+++--- 98,108 ----
+++  public class DatabaseManager extends Applet
+++  implements ActionListener, WindowListener, KeyListener {
+++  
+++!     public static final String DEFAULT_RCFILE =
+++          System.getProperty("user.home") + "/dbmanager.rc";
+++      static final String    NL           = System.getProperty("line.separator");
+++      static final int       iMaxRecent   = 24;
+++!     public static boolean TT_AVAILABLE = false;
+++  
+++      static {
+++          try {
+++***************
+++*** 113,119 ****
+++          } catch (Throwable t) {}
+++      }
+++  
+++!     private static final String HELP_TEXT =
+++          "See the forums, mailing lists, and HSQLDB User Guide\n"
+++          + "at http://hsqldb.org.\n\n"
+++          + "Please paste the following version identifier with any\n"
+++--- 113,119 ----
+++          } catch (Throwable t) {}
+++      }
+++  
+++!     public static final String HELP_TEXT =
+++          "See the forums, mailing lists, and HSQLDB User Guide\n"
+++          + "at http://hsqldb.org.\n\n"
+++          + "Please paste the following version identifier with any\n"
+++***************
+++*** 122,128 ****
+++                          : ("\n\nTransferTool classes are not in CLASSPATH.\n"
+++                             + "To enable the Tools menu, add 'transfer.jar' to your class path."));
+++      ;
+++!     private static final String ABOUT_TEXT =
+++          "$Revision: 1.34 $ of DatabaseManagerSwing\n\n"
+++          + "Copyright (c) 1995-2000, The Hypersonic SQL Group.\n"
+++          + "Copyright (c) 2001-2007, The HSQL Development Group.\n"
+++--- 122,128 ----
+++                          : ("\n\nTransferTool classes are not in CLASSPATH.\n"
+++                             + "To enable the Tools menu, add 'transfer.jar' to your class path."));
+++      ;
+++!     public static final String ABOUT_TEXT =
+++          "$Revision: 1.34 $ of DatabaseManagerSwing\n\n"
+++          + "Copyright (c) 1995-2000, The Hypersonic SQL Group.\n"
+++          + "Copyright (c) 2001-2007, The HSQL Development Group.\n"
+++***************
+++*** 322,328 ****
+++          m.connect(c);
+++      }
+++  
+++!     private static void showUsage() {
+++  
+++          System.out.println(
+++              "Usage: java DatabaseManager [--options]\n"
+++--- 322,328 ----
+++          m.connect(c);
+++      }
+++  
+++!     public static void showUsage() {
+++  
+++          System.out.println(
+++              "Usage: java DatabaseManager [--options]\n"
+++***************
+++*** 1221,1227 ****
+++       *
+++       * @param s
+++       */
+++!     private void addToRecent(String s) {
+++  
+++          for (int i = 0; i < iMaxRecent; i++) {
+++              if (s.equals(sRecent[i])) {
+++--- 1221,1227 ----
+++       *
+++       * @param s
+++       */
+++!     public void addToRecent(String s) {
+++  
+++          for (int i = 0; i < iMaxRecent; i++) {
+++              if (s.equals(sRecent[i])) {
+++***************
+++*** 1252,1258 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void initGUI() {
+++  
+++          Panel pQuery   = new Panel();
+++          Panel pCommand = new Panel();
+++--- 1252,1258 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void initGUI() {
+++  
+++          Panel pQuery   = new Panel();
+++          Panel pCommand = new Panel();
+++***************
+++*** 1312,1318 ****
+++       * Method declaration
+++       *
+++       */
+++!     protected void refreshTree() {
+++  
+++          tTree.removeAll();
+++  
+++--- 1312,1318 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void refreshTree() {
+++  
+++          tTree.removeAll();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/DatabaseManagerSwing.java hsqldb/src/org/hsqldb/util/DatabaseManagerSwing.java
+++*** hsqldb-old/src/org/hsqldb/util/DatabaseManagerSwing.java	2007-10-19 22:16:44.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/DatabaseManagerSwing.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 195,202 ****
+++       * be reserved for single-letter switches which can be mixed like
+++       * "-u -r -l" = "-url".  -blaine
+++       */
+++!     private static String homedir = null;
+++!     private boolean isOracle = false; // Need some workarounds for Oracle
+++  
+++      static {
+++          try {
+++--- 195,202 ----
+++       * be reserved for single-letter switches which can be mixed like
+++       * "-u -r -l" = "-url".  -blaine
+++       */
+++!     public static String homedir = null;
+++!     public boolean isOracle = false; // Need some workarounds for Oracle
+++  
+++      static {
+++          try {
+++***************
+++*** 242,250 ****
+++      }
+++  
+++      ArrayList                   localActionList = new ArrayList();
+++!     private JFrame              jframe          = null;
+++!     private static final String DEFAULT_RCFILE  = homedir + "/dbmanager.rc";
+++!     private static boolean      TT_AVAILABLE    = false;
+++  
+++      static {
+++          try {
+++--- 242,250 ----
+++      }
+++  
+++      ArrayList                   localActionList = new ArrayList();
+++!     public JFrame              jframe          = null;
+++!     public static final String DEFAULT_RCFILE  = homedir + "/dbmanager.rc";
+++!     public static boolean      TT_AVAILABLE    = false;
+++  
+++      static {
+++          try {
+++***************
+++*** 261,267 ****
+++          }
+++      }
+++  
+++!     private static final String HELP_TEXT =
+++          "See the forums, mailing lists, and HSQLDB User Guide\n"
+++          + "at http://hsqldb.org.\n\n"
+++          + "Please paste the following version identifier with any\n"
+++--- 261,267 ----
+++          }
+++      }
+++  
+++!     public static final String HELP_TEXT =
+++          "See the forums, mailing lists, and HSQLDB User Guide\n"
+++          + "at http://hsqldb.org.\n\n"
+++          + "Please paste the following version identifier with any\n"
+++***************
+++*** 271,277 ****
+++                             + "To enable the Tools menu, add 'transfer.jar' "
+++                             + "to your class path."));
+++      ;
+++!     private static final String ABOUT_TEXT =
+++          "$Revision: 1.77 $ of DatabaseManagerSwing\n\n"
+++          + "Copyright (c) 1995-2000, The Hypersonic SQL Group.\n"
+++          + "Copyright (c) 2001-2007, The HSQL Development Group.\n"
+++--- 271,277 ----
+++                             + "To enable the Tools menu, add 'transfer.jar' "
+++                             + "to your class path."));
+++      ;
+++!     public static final String ABOUT_TEXT =
+++          "$Revision: 1.77 $ of DatabaseManagerSwing\n\n"
+++          + "Copyright (c) 1995-2000, The Hypersonic SQL Group.\n"
+++          + "Copyright (c) 2001-2007, The HSQL Development Group.\n"
+++***************
+++*** 324,333 ****
+++      /** Value of this variable only retained if huge input script read in. */
+++      String          sqlScriptBuffer = null;
+++      JToolBar        jtoolbar;
+++!     private boolean showSchemas  = true;
+++!     private boolean showTooltips = true;
+++!     private boolean autoRefresh  = true;
+++!     private boolean gridFormat   = true;
+++  
+++      // Added: (weconsultants@users)
+++      static DatabaseManagerSwing refForFontDialogSwing;
+++--- 324,333 ----
+++      /** Value of this variable only retained if huge input script read in. */
+++      String          sqlScriptBuffer = null;
+++      JToolBar        jtoolbar;
+++!     public boolean showSchemas  = true;
+++!     public boolean showTooltips = true;
+++!     public boolean autoRefresh  = true;
+++!     public boolean gridFormat   = true;
+++  
+++      // Added: (weconsultants@users)
+++      static DatabaseManagerSwing refForFontDialogSwing;
+++***************
+++*** 362,375 ****
+++          new JRadioButtonMenuItem("Motif Look & Feel");
+++      JLabel                      jStatusLine;
+++      static String               READY_STATUS         = "Ready";
+++!     private static final String AUTOCOMMIT_BOX_TEXT  = "Autocommit mode";
+++!     private static final String LOGGING_BOX_TEXT     = "Logging mode";
+++!     private static final String SHOWSCHEMAS_BOX_TEXT = "Show schemas";
+++!     private static final String AUTOREFRESH_BOX_TEXT = "Auto-refresh tree";
+++!     private static final String SHOWTIPS_BOX_TEXT    = "Show Tooltips";
+++!     private static final String ROWCOUNTS_BOX_TEXT   = "Show row counts";
+++!     private static final String SHOWSYS_BOX_TEXT     = "Show system tables";
+++!     private static final String GRID_BOX_TEXT =
+++          "Show results in Grid (a.o.t. Text)";
+++  
+++      // variables to hold the default cursors for these top level swing objects
+++--- 362,375 ----
+++          new JRadioButtonMenuItem("Motif Look & Feel");
+++      JLabel                      jStatusLine;
+++      static String               READY_STATUS         = "Ready";
+++!     public static final String AUTOCOMMIT_BOX_TEXT  = "Autocommit mode";
+++!     public static final String LOGGING_BOX_TEXT     = "Logging mode";
+++!     public static final String SHOWSCHEMAS_BOX_TEXT = "Show schemas";
+++!     public static final String AUTOREFRESH_BOX_TEXT = "Auto-refresh tree";
+++!     public static final String SHOWTIPS_BOX_TEXT    = "Show Tooltips";
+++!     public static final String ROWCOUNTS_BOX_TEXT   = "Show row counts";
+++!     public static final String SHOWSYS_BOX_TEXT     = "Show system tables";
+++!     public static final String GRID_BOX_TEXT =
+++          "Show results in Grid (a.o.t. Text)";
+++  
+++      // variables to hold the default cursors for these top level swing objects
+++***************
+++*** 378,391 ****
+++      Cursor        txtCommandCursor;
+++      Cursor        txtResultCursor;
+++      HashMap       tipMap     = new HashMap();
+++!     private JMenu mnuSchemas = new JMenu("Schemas");
+++  
+++      /**
+++       * Wait Cursor
+++       */
+++  
+++      // Changed: (weconsultants@users): commonted out the, out of the box, cursor to use a custom cursor
+++!     private final Cursor waitCursor = new Cursor(Cursor.WAIT_CURSOR);
+++  
+++      //getToolkit().createCustomCursor(CommonSwing.getIcon("SystemCursor"),
+++      //                                new Point(4, 4), "HourGlass cursor");
+++--- 378,391 ----
+++      Cursor        txtCommandCursor;
+++      Cursor        txtResultCursor;
+++      HashMap       tipMap     = new HashMap();
+++!     public JMenu mnuSchemas = new JMenu("Schemas");
+++  
+++      /**
+++       * Wait Cursor
+++       */
+++  
+++      // Changed: (weconsultants@users): commonted out the, out of the box, cursor to use a custom cursor
+++!     public final Cursor waitCursor = new Cursor(Cursor.WAIT_CURSOR);
+++  
+++      //getToolkit().createCustomCursor(CommonSwing.getIcon("SystemCursor"),
+++      //                                new Point(4, 4), "HourGlass cursor");
+++***************
+++*** 396,402 ****
+++      static String  defPassword = "";
+++      static String  defScript;
+++      static String  defDirectory;
+++!     private String schemaFilter = null;
+++  
+++      public DatabaseManagerSwing() {
+++          jframe = new JFrame("HSQLDB DatabaseManager");
+++--- 396,402 ----
+++      static String  defPassword = "";
+++      static String  defScript;
+++      static String  defDirectory;
+++!     public String schemaFilter = null;
+++  
+++      public DatabaseManagerSwing() {
+++          jframe = new JFrame("HSQLDB DatabaseManager");
+++***************
+++*** 671,677 ****
+++          }
+++      }
+++  
+++!     private static void showUsage() {
+++  
+++          System.out.println(
+++              "Usage: java DatabaseManagerSwing [--options]\n"
+++--- 671,677 ----
+++          }
+++      }
+++  
+++!     public static void showUsage() {
+++  
+++          System.out.println(
+++              "Usage: java DatabaseManagerSwing [--options]\n"
+++***************
+++*** 688,694 ****
+++              + "(Single-hypen switches like '-driver' are also supported)");
+++      }
+++  
+++!     private void insertTestData() {
+++  
+++          try {
+++              DatabaseManagerCommon.createTestTables(sStatement);
+++--- 688,694 ----
+++              + "(Single-hypen switches like '-driver' are also supported)");
+++      }
+++  
+++!     public void insertTestData() {
+++  
+++          try {
+++              DatabaseManagerCommon.createTestTables(sStatement);
+++***************
+++*** 712,718 ****
+++          this.bMustExit = b;
+++      }
+++  
+++!     private DBMPrefs prefs = null;
+++  
+++      public void main() {
+++  
+++--- 712,718 ----
+++          this.bMustExit = b;
+++      }
+++  
+++!     public DBMPrefs prefs = null;
+++  
+++      public void main() {
+++  
+++***************
+++*** 986,992 ****
+++          txtCommand.requestFocus();
+++      }
+++  
+++!     private JMenu addMenu(JMenuBar b, String name, Object[] items) {
+++  
+++          JMenu menu = new JMenu(name);
+++  
+++--- 986,992 ----
+++          txtCommand.requestFocus();
+++      }
+++  
+++!     public JMenu addMenu(JMenuBar b, String name, Object[] items) {
+++  
+++          JMenu menu = new JMenu(name);
+++  
+++***************
+++*** 997,1003 ****
+++          return menu;
+++      }
+++  
+++!     private void addMenuItems(JMenu f, Object[] m) {
+++  
+++          /*
+++           * This method needs to be completely written or just
+++--- 997,1003 ----
+++          return menu;
+++      }
+++  
+++!     public void addMenuItems(JMenu f, Object[] m) {
+++  
+++          /*
+++           * This method needs to be completely written or just
+++***************
+++*** 1328,1334 ****
+++          }
+++      }
+++  
+++!     private void displayResults() {
+++  
+++          if (gridFormat) {
+++              setResultsInGrid();
+++--- 1328,1334 ----
+++          }
+++      }
+++  
+++!     public void displayResults() {
+++  
+++          if (gridFormat) {
+++              setResultsInGrid();
+++***************
+++*** 1337,1343 ****
+++          }
+++      }
+++  
+++!     private void setResultsInGrid() {
+++  
+++          pResult.removeAll();
+++          pResult.add(gScrollPane, BorderLayout.CENTER);
+++--- 1337,1343 ----
+++          }
+++      }
+++  
+++!     public void setResultsInGrid() {
+++  
+++          pResult.removeAll();
+++          pResult.add(gScrollPane, BorderLayout.CENTER);
+++***************
+++*** 1346,1352 ****
+++          pResult.repaint();
+++      }
+++  
+++!     private void setResultsInText() {
+++  
+++          pResult.removeAll();
+++          pResult.add(txtResultScroll, BorderLayout.CENTER);
+++--- 1346,1352 ----
+++          pResult.repaint();
+++      }
+++  
+++!     public void setResultsInText() {
+++  
+++          pResult.removeAll();
+++          pResult.add(txtResultScroll, BorderLayout.CENTER);
+++***************
+++*** 1355,1361 ****
+++          pResult.repaint();
+++      }
+++  
+++!     private void showHelp(String[] help) {
+++  
+++          txtCommand.setText(help[0]);
+++  
+++--- 1355,1361 ----
+++          pResult.repaint();
+++      }
+++  
+++!     public void showHelp(String[] help) {
+++  
+++          txtCommand.setText(help[0]);
+++  
+++***************
+++*** 1417,1423 ****
+++          }
+++      }
+++  
+++!     private void clear() {
+++  
+++          sqlScriptBuffer = null;
+++  
+++--- 1417,1423 ----
+++          }
+++      }
+++  
+++!     public void clear() {
+++  
+++          sqlScriptBuffer = null;
+++  
+++***************
+++*** 1425,1433 ****
+++          txtCommand.setEnabled(true);
+++      }
+++  
+++!     private String busyText = null;
+++  
+++!     private void backgroundIt(Runnable r, String description) {
+++  
+++          if (busyText != null) {
+++              Toolkit.getDefaultToolkit().beep();
+++--- 1425,1433 ----
+++          txtCommand.setEnabled(true);
+++      }
+++  
+++!     public String busyText = null;
+++  
+++!     public void backgroundIt(Runnable r, String description) {
+++  
+++          if (busyText != null) {
+++              Toolkit.getDefaultToolkit().beep();
+++***************
+++*** 1441,1447 ****
+++          SwingUtilities.invokeLater(r);
+++      }
+++  
+++!     private void clearResultPanel() {
+++  
+++          gResult.setHead(new Object[0]);
+++          gResult.clear();
+++--- 1441,1447 ----
+++          SwingUtilities.invokeLater(r);
+++      }
+++  
+++!     public void clearResultPanel() {
+++  
+++          gResult.setHead(new Object[0]);
+++          gResult.clear();
+++***************
+++*** 1498,1520 ****
+++                                                      : 0));
+++      }
+++  
+++!     private Runnable enableButtonRunnable = new Runnable() {
+++  
+++          public void run() {
+++              jbuttonClear.setEnabled(true);
+++              jbuttonExecute.setEnabled(true);
+++          }
+++      };
+++!     private Runnable disableButtonRunnable = new Runnable() {
+++  
+++          public void run() {
+++              jbuttonClear.setEnabled(false);
+++              jbuttonExecute.setEnabled(false);
+++          }
+++      };
+++!     private Thread           buttonUpdaterThread = null;
+++!     private static final int BUTTON_CHECK_PERIOD = 500;
+++!     private Runnable         buttonUpdater       = new Runnable() {
+++  
+++          public void run() {
+++  
+++--- 1498,1520 ----
+++                                                      : 0));
+++      }
+++  
+++!     public Runnable enableButtonRunnable = new Runnable() {
+++  
+++          public void run() {
+++              jbuttonClear.setEnabled(true);
+++              jbuttonExecute.setEnabled(true);
+++          }
+++      };
+++!     public Runnable disableButtonRunnable = new Runnable() {
+++  
+++          public void run() {
+++              jbuttonClear.setEnabled(false);
+++              jbuttonExecute.setEnabled(false);
+++          }
+++      };
+++!     public Thread           buttonUpdaterThread = null;
+++!     public static final int BUTTON_CHECK_PERIOD = 500;
+++!     public Runnable         buttonUpdater       = new Runnable() {
+++  
+++          public void run() {
+++  
+++***************
+++*** 1538,1545 ****
+++              }
+++          }
+++      };
+++!     private JButton jbuttonClear;
+++!     private JButton jbuttonExecute;
+++  
+++      public void start() {
+++  
+++--- 1538,1545 ----
+++              }
+++          }
+++      };
+++!     public JButton jbuttonClear;
+++!     public JButton jbuttonExecute;
+++  
+++      public void start() {
+++  
+++***************
+++*** 1557,1563 ****
+++          buttonUpdaterThread = null;
+++      }
+++  
+++!     private Runnable treeRefreshRunnable = new Runnable() {
+++  
+++          public void run() {
+++  
+++--- 1557,1563 ----
+++          buttonUpdaterThread = null;
+++      }
+++  
+++!     public Runnable treeRefreshRunnable = new Runnable() {
+++  
+++          public void run() {
+++  
+++***************
+++*** 1576,1582 ****
+++      /**
+++       * Schedules to run in a Gui-safe thread
+++       */
+++!     protected void executeCurrentSQL() {
+++  
+++          if (txtCommand.getText().length() < 1) {
+++              CommonSwing.errorMessage("No SQL to execute");
+++--- 1576,1582 ----
+++      /**
+++       * Schedules to run in a Gui-safe thread
+++       */
+++!     public void executeCurrentSQL() {
+++  
+++          if (txtCommand.getText().length() < 1) {
+++              CommonSwing.errorMessage("No SQL to execute");
+++***************
+++*** 1587,1593 ****
+++          backgroundIt(new StatementExecRunnable(), "Executing SQL");
+++      }
+++  
+++!     protected class StatementExecRunnable implements Runnable {
+++  
+++          public void run() {
+++  
+++--- 1587,1593 ----
+++          backgroundIt(new StatementExecRunnable(), "Executing SQL");
+++      }
+++  
+++!     public class StatementExecRunnable implements Runnable {
+++  
+++          public void run() {
+++  
+++***************
+++*** 1615,1621 ****
+++      }
+++      ;
+++  
+++!     private void executeSQL() {
+++  
+++          String[] g   = new String[1];
+++          String   sql = null;
+++--- 1615,1621 ----
+++      }
+++      ;
+++  
+++!     public void executeSQL() {
+++  
+++          String[] g   = new String[1];
+++          String   sql = null;
+++***************
+++*** 1693,1699 ****
+++       * results only if gridFormat is off (seems like it  does
+++       * nothing otherwise, except for clearing help text and moving focus).
+++       */
+++!     private void updateResult() {
+++  
+++          if (gridFormat) {
+++  
+++--- 1693,1699 ----
+++       * results only if gridFormat is off (seems like it  does
+++       * nothing otherwise, except for clearing help text and moving focus).
+++       */
+++!     public void updateResult() {
+++  
+++          if (gridFormat) {
+++  
+++***************
+++*** 1721,1727 ****
+++       * VARCHARs, because this is the only class where there is any
+++       * ambiguity about whether there is a null stored or not.
+++       */
+++!     private void formatResultSet(ResultSet r) {
+++  
+++          if (r == null) {
+++              String[] g = new String[1];
+++--- 1721,1727 ----
+++       * VARCHARs, because this is the only class where there is any
+++       * ambiguity about whether there is a null stored or not.
+++       */
+++!     public void formatResultSet(ResultSet r) {
+++  
+++          if (r == null) {
+++              String[] g = new String[1];
+++***************
+++*** 1774,1780 ****
+++          }
+++      }
+++  
+++!     private void testPerformance() {
+++  
+++          String       all   = txtCommand.getText();
+++          StringBuffer b     = new StringBuffer();
+++--- 1774,1780 ----
+++          }
+++      }
+++  
+++!     public void testPerformance() {
+++  
+++          String       all   = txtCommand.getText();
+++          StringBuffer b     = new StringBuffer();
+++***************
+++*** 1858,1864 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void showResultInText() {
+++  
+++          Object[] col   = gResult.getHead();
+++          int      width = col.length;
+++--- 1858,1864 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void showResultInText() {
+++  
+++          Object[] col   = gResult.getHead();
+++          int      width = col.length;
+++***************
+++*** 1933,1939 ****
+++          txtResult.setText(b.toString());
+++      }
+++  
+++!     private void addToRecent(String s) {
+++  
+++          for (int i = 0; i < iMaxRecent; i++) {
+++              if (s.equals(sRecent[i])) {
+++--- 1933,1939 ----
+++          txtResult.setText(b.toString());
+++      }
+++  
+++!     public void addToRecent(String s) {
+++  
+++          for (int i = 0; i < iMaxRecent; i++) {
+++              if (s.equals(sRecent[i])) {
+++***************
+++*** 1960,1966 ****
+++          iRecent = (iRecent + 1) % iMaxRecent;
+++      }
+++  
+++!     private void initGUI() {
+++  
+++          JPanel pCommand = new JPanel();
+++  
+++--- 1960,1966 ----
+++          iRecent = (iRecent + 1) % iMaxRecent;
+++      }
+++  
+++!     public void initGUI() {
+++  
+++          JPanel pCommand = new JPanel();
+++  
+++***************
+++*** 2052,2058 ****
+++  
+++      /* Simple tree node factory method - set's parent and user object.
+++       */
+++!     private DefaultMutableTreeNode makeNode(Object userObject,
+++              MutableTreeNode parent) {
+++  
+++          DefaultMutableTreeNode node = new DefaultMutableTreeNode(userObject);
+++--- 2052,2058 ----
+++  
+++      /* Simple tree node factory method - set's parent and user object.
+++       */
+++!     public DefaultMutableTreeNode makeNode(Object userObject,
+++              MutableTreeNode parent) {
+++  
+++          DefaultMutableTreeNode node = new DefaultMutableTreeNode(userObject);
+++***************
+++*** 2064,2077 ****
+++          return node;
+++      }
+++  
+++!     private static final String[] usertables       = {
+++          "TABLE", "GLOBAL TEMPORARY", "VIEW", "SYSTEM TABLE"
+++      };
+++!     private static final String[] nonSystables     = {
+++          "TABLE", "GLOBAL TEMPORARY", "VIEW"
+++      };
+++!     private static final HashSet  oracleSysUsers   = new HashSet();
+++!     private static final String[] oracleSysSchemas = {
+++          "SYS", "SYSTEM", "OUTLN", "DBSNMP", "OUTLN", "MDSYS", "ORDSYS",
+++          "ORDPLUGINS", "CTXSYS", "DSSYS", "PERFSTAT", "WKPROXY", "WKSYS",
+++          "WMSYS", "XDB", "ANONYMOUS", "ODM", "ODM_MTR", "OLAPSYS", "TRACESVR",
+++--- 2064,2077 ----
+++          return node;
+++      }
+++  
+++!     public static final String[] usertables       = {
+++          "TABLE", "GLOBAL TEMPORARY", "VIEW", "SYSTEM TABLE"
+++      };
+++!     public static final String[] nonSystables     = {
+++          "TABLE", "GLOBAL TEMPORARY", "VIEW"
+++      };
+++!     public static final HashSet  oracleSysUsers   = new HashSet();
+++!     public static final String[] oracleSysSchemas = {
+++          "SYS", "SYSTEM", "OUTLN", "DBSNMP", "OUTLN", "MDSYS", "ORDSYS",
+++          "ORDPLUGINS", "CTXSYS", "DSSYS", "PERFSTAT", "WKPROXY", "WKSYS",
+++          "WMSYS", "XDB", "ANONYMOUS", "ODM", "ODM_MTR", "OLAPSYS", "TRACESVR",
+++***************
+++*** 2087,2093 ****
+++      /**
+++       * Schedules to run in a Gui-safe thread
+++       */
+++!     protected void refreshTree() {
+++          backgroundIt(treeRefreshRunnable, "Refreshing object tree");
+++      }
+++  
+++--- 2087,2093 ----
+++      /**
+++       * Schedules to run in a Gui-safe thread
+++       */
+++!     public void refreshTree() {
+++          backgroundIt(treeRefreshRunnable, "Refreshing object tree");
+++      }
+++  
+++***************
+++*** 2096,2102 ****
+++       *
+++       * This method executes in current thread
+++       */
+++!     protected void directRefreshTree() {
+++  
+++          int[]                  rowCounts;
+++          DefaultMutableTreeNode propertiesNode;
+++--- 2096,2102 ----
+++       *
+++       * This method executes in current thread
+++       */
+++!     public void directRefreshTree() {
+++  
+++          int[]                  rowCounts;
+++          DefaultMutableTreeNode propertiesNode;
+++***************
+++*** 2346,2352 ****
+++      }
+++  
+++      // Added: (weconsultants@users) Needed to aggragate counts per table in jTree
+++!     protected int[] getRowCounts(Vector inTable,
+++                                   Vector inSchema) throws Exception {
+++  
+++          if (!displayRowCounts) {
+++--- 2346,2352 ----
+++      }
+++  
+++      // Added: (weconsultants@users) Needed to aggragate counts per table in jTree
+++!     public int[] getRowCounts(Vector inTable,
+++                                   Vector inSchema) throws Exception {
+++  
+++          if (!displayRowCounts) {
+++***************
+++*** 2390,2396 ****
+++          return (counts);
+++      }
+++  
+++!     protected JToolBar createToolBar() {
+++  
+++          // Build jtoolbar and jtoolbar Buttons
+++          JToolBar jtoolbar = new JToolBar();
+++--- 2390,2396 ----
+++          return (counts);
+++      }
+++  
+++!     public JToolBar createToolBar() {
+++  
+++          // Build jtoolbar and jtoolbar Buttons
+++          JToolBar jtoolbar = new JToolBar();
+++***************
+++*** 2455,2461 ****
+++          }
+++      }
+++  
+++!     private void setLF(String newLAF) {
+++  
+++          if (currentLAF != null && currentLAF == newLAF) {    // No change
+++              return;
+++--- 2455,2461 ----
+++          }
+++      }
+++  
+++!     public void setLF(String newLAF) {
+++  
+++          if (currentLAF != null && currentLAF == newLAF) {    // No change
+++              return;
+++***************
+++*** 2496,2502 ****
+++          }
+++      }
+++  
+++!     private void updateSchemaList() {
+++  
+++          ButtonGroup group  = new ButtonGroup();
+++          ArrayList   list   = new ArrayList();
+++--- 2496,2502 ----
+++          }
+++      }
+++  
+++!     public void updateSchemaList() {
+++  
+++          ButtonGroup group  = new ButtonGroup();
+++          ArrayList   list   = new ArrayList();
+++***************
+++*** 2747,2752 ****
+++          }
+++      }
+++  
+++!     private static final String tString = Boolean.TRUE.toString();
+++!     private static final String fString = Boolean.FALSE.toString();
+++  }
+++--- 2747,2752 ----
+++          }
+++      }
+++  
+++!     public static final String tString = Boolean.TRUE.toString();
+++!     public static final String fString = Boolean.FALSE.toString();
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/util/FontDialogSwing.java hsqldb/src/org/hsqldb/util/FontDialogSwing.java
+++*** hsqldb-old/src/org/hsqldb/util/FontDialogSwing.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/FontDialogSwing.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 56,84 ****
+++  //        for JComboBox fontSizesComboBox and String fontSizes[];
+++  public class FontDialogSwing extends JDialog {
+++  
+++!     private static boolean      isRunning   = false;
+++!     private static final String BACKGROUND  = "Background";
+++!     private static String       defaultFont = "Dialog";
+++!     private static final String FOREGROUND  = "Foreground";
+++!     private static JButton      bgColorButton;
+++!     private static JCheckBox    ckbbold;
+++!     private static JButton      closeButton;
+++!     private static JButton      fgColorButton;
+++!     private static JComboBox    fontsComboBox;
+++  
+++      //  weconsultants@users 20050215 - Added for Compatbilty fix for JDK 1.3
+++!     private static JComboBox      fontSizesComboBox;
+++!     private static final String[] fontSizes = {
+++          "8", "9", "10", "11", "12", "13", "14", "16", "18", "24", "36"
+++      };
+++  
+++      // weconsultants@users 20050215 - Commented out for Compatbilty fix for JDK 1.3
+++!     //  private static JSpinner           spinnerFontSizes;
+++!     //  private static SpinnerNumberModel spinnerModelSizes;
+++!     private static DatabaseManagerSwing fOwner;
+++!     private static JFrame frame =
+++          new JFrame("DataBaseManagerSwing Font Selection Dialog");
+++!     private static JCheckBox ckbitalic;
+++  
+++      /**
+++       * Create and display FontDialogSwing Dialog.
+++--- 56,84 ----
+++  //        for JComboBox fontSizesComboBox and String fontSizes[];
+++  public class FontDialogSwing extends JDialog {
+++  
+++!     public static boolean      isRunning   = false;
+++!     public static final String BACKGROUND  = "Background";
+++!     public static String       defaultFont = "Dialog";
+++!     public static final String FOREGROUND  = "Foreground";
+++!     public static JButton      bgColorButton;
+++!     public static JCheckBox    ckbbold;
+++!     public static JButton      closeButton;
+++!     public static JButton      fgColorButton;
+++!     public static JComboBox    fontsComboBox;
+++  
+++      //  weconsultants@users 20050215 - Added for Compatbilty fix for JDK 1.3
+++!     public static JComboBox      fontSizesComboBox;
+++!     public static final String[] fontSizes = {
+++          "8", "9", "10", "11", "12", "13", "14", "16", "18", "24", "36"
+++      };
+++  
+++      // weconsultants@users 20050215 - Commented out for Compatbilty fix for JDK 1.3
+++!     //  public static JSpinner           spinnerFontSizes;
+++!     //  public static SpinnerNumberModel spinnerModelSizes;
+++!     public static DatabaseManagerSwing fOwner;
+++!     public static JFrame frame =
+++          new JFrame("DataBaseManagerSwing Font Selection Dialog");
+++!     public static JCheckBox ckbitalic;
+++  
+++      /**
+++       * Create and display FontDialogSwing Dialog.
+++diff -crN hsqldb-old/src/org/hsqldb/util/Grid.java hsqldb/src/org/hsqldb/util/Grid.java
+++*** hsqldb-old/src/org/hsqldb/util/Grid.java	2007-10-19 22:16:44.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/Grid.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 91,130 ****
+++  class Grid extends Panel {
+++  
+++      // drawing
+++!     private Dimension dMinimum;
+++  
+++  // boucherb@users changed access for databasemanager2
+++!     protected Font fFont;
+++  
+++  // --------------------------------------------------
+++!     private FontMetrics fMetrics;
+++!     private Graphics    gImage;
+++!     private Image       iImage;
+++  
+++      // height / width
+++!     private int iWidth, iHeight;
+++!     private int iRowHeight, iFirstRow;
+++!     private int iGridWidth, iGridHeight;
+++!     private int iX, iY;
+++  
+++      // data
+++  // boucherb@users changed access for databasemanager2
+++!     protected String[] sColHead = new String[0];
+++!     protected Vector   vData    = new Vector();
+++  
+++  // --------------------------------------------------
+++!     private int[] iColWidth;
+++!     private int   iColCount;
+++  
+++  // boucherb@users changed access for databasemanager2
+++!     protected int iRowCount;
+++  
+++  // --------------------------------------------------
+++      // scrolling
+++!     private Scrollbar sbHoriz, sbVert;
+++!     private int       iSbWidth, iSbHeight;
+++!     private boolean   bDrag;
+++!     private int       iXDrag, iColDrag;
+++  
+++      /**
+++       * Constructor declaration
+++--- 91,130 ----
+++  class Grid extends Panel {
+++  
+++      // drawing
+++!     public Dimension dMinimum;
+++  
+++  // boucherb@users changed access for databasemanager2
+++!     public Font fFont;
+++  
+++  // --------------------------------------------------
+++!     public FontMetrics fMetrics;
+++!     public Graphics    gImage;
+++!     public Image       iImage;
+++  
+++      // height / width
+++!     public int iWidth, iHeight;
+++!     public int iRowHeight, iFirstRow;
+++!     public int iGridWidth, iGridHeight;
+++!     public int iX, iY;
+++  
+++      // data
+++  // boucherb@users changed access for databasemanager2
+++!     public String[] sColHead = new String[0];
+++!     public Vector   vData    = new Vector();
+++  
+++  // --------------------------------------------------
+++!     public int[] iColWidth;
+++!     public int   iColCount;
+++  
+++  // boucherb@users changed access for databasemanager2
+++!     public int iRowCount;
+++  
+++  // --------------------------------------------------
+++      // scrolling
+++!     public Scrollbar sbHoriz, sbVert;
+++!     public int       iSbWidth, iSbHeight;
+++!     public boolean   bDrag;
+++!     public int       iXDrag, iColDrag;
+++  
+++      /**
+++       * Constructor declaration
+++***************
+++*** 588,594 ****
+++       *
+++       * @param i
+++       */
+++!     private void calcAutoWidth(int i) {
+++  
+++          int w = 10;
+++  
+++--- 588,594 ----
+++       *
+++       * @param i
+++       */
+++!     public void calcAutoWidth(int i) {
+++  
+++          int w = 10;
+++  
+++***************
+++*** 612,618 ****
+++       *
+++       * @return
+++       */
+++!     private String getDisplay(int x, int y) {
+++          return (((String[]) (vData.elementAt(y)))[x]);
+++      }
+++  
+++--- 612,618 ----
+++       *
+++       * @return
+++       */
+++!     public String getDisplay(int x, int y) {
+++          return (((String[]) (vData.elementAt(y)))[x]);
+++      }
+++  
+++***************
+++*** 625,631 ****
+++       *
+++       * @return
+++       */
+++!     private String get(int x, int y) {
+++          return (((String[]) (vData.elementAt(y)))[x]);
+++      }
+++  
+++--- 625,631 ----
+++       *
+++       * @return
+++       */
+++!     public String get(int x, int y) {
+++          return (((String[]) (vData.elementAt(y)))[x]);
+++      }
+++  
+++***************
+++*** 637,643 ****
+++       *
+++       * @return
+++       */
+++!     private static int getMaxHeight(FontMetrics f) {
+++          return f.getHeight() + 4;
+++      }
+++  }
+++--- 637,643 ----
+++       *
+++       * @return
+++       */
+++!     public static int getMaxHeight(FontMetrics f) {
+++          return f.getHeight() + 4;
+++      }
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/util/JDBCTypes.java hsqldb/src/org/hsqldb/util/JDBCTypes.java
+++*** hsqldb-old/src/org/hsqldb/util/JDBCTypes.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/JDBCTypes.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 48,55 ****
+++      public static final int BLOB        = 2004;
+++      public static final int CLOB        = 2005;
+++      public static final int REF         = 2006;
+++!     private Hashtable       hStringJDBCtypes;
+++!     private Hashtable       hIntJDBCtypes;
+++  
+++      JDBCTypes() {
+++  
+++--- 48,55 ----
+++      public static final int BLOB        = 2004;
+++      public static final int CLOB        = 2005;
+++      public static final int REF         = 2006;
+++!     public Hashtable       hStringJDBCtypes;
+++!     public Hashtable       hIntJDBCtypes;
+++  
+++      JDBCTypes() {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/MainInvoker.java hsqldb/src/org/hsqldb/util/MainInvoker.java
+++*** hsqldb-old/src/org/hsqldb/util/MainInvoker.java	2007-06-21 10:49:20.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/MainInvoker.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 51,59 ****
+++       * It may or may not make sense to make this into a class with real
+++       * instances that can keep track of status of stuff invoked by it.
+++       */
+++!     private static String[] emptyStringArray = new String[0];
+++  
+++!     private static void syntaxFailure() {
+++          System.err.println(SYNTAX_MSG);
+++          System.exit(2);
+++      }
+++--- 51,59 ----
+++       * It may or may not make sense to make this into a class with real
+++       * instances that can keep track of status of stuff invoked by it.
+++       */
+++!     public static String[] emptyStringArray = new String[0];
+++  
+++!     public static void syntaxFailure() {
+++          System.err.println(SYNTAX_MSG);
+++          System.exit(2);
+++      }
+++***************
+++*** 109,115 ****
+++      }
+++  
+++      public static String LS = System.getProperty("line.separator");
+++!     private static String SYNTAX_MSG =
+++          "    java org.hsqldb.util.MainInvoker "
+++          + "[package1.Class1 [arg1a arg1b...] \"\"]... \\\n"
+++          + "    packageX.ClassX [argXa argXb...]\n" + "OR\n"
+++--- 109,115 ----
+++      }
+++  
+++      public static String LS = System.getProperty("line.separator");
+++!     public static String SYNTAX_MSG =
+++          "    java org.hsqldb.util.MainInvoker "
+++          + "[package1.Class1 [arg1a arg1b...] \"\"]... \\\n"
+++          + "    packageX.ClassX [argXa argXb...]\n" + "OR\n"
+++diff -crN hsqldb-old/src/org/hsqldb/util/OracleTransferHelper.java hsqldb/src/org/hsqldb/util/OracleTransferHelper.java
+++*** hsqldb-old/src/org/hsqldb/util/OracleTransferHelper.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/OracleTransferHelper.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 46,53 ****
+++   */
+++  class OracleTransferHelper extends TransferHelper {
+++  
+++!     private final int ORACLE = 0;
+++!     private final int HSQLDB = 1;
+++      String[][]        Funcs  = {
+++          {
+++              "now()", "\'now\'"
+++--- 46,53 ----
+++   */
+++  class OracleTransferHelper extends TransferHelper {
+++  
+++!     public final int ORACLE = 0;
+++!     public final int HSQLDB = 1;
+++      String[][]        Funcs  = {
+++          {
+++              "now()", "\'now\'"
+++diff -crN hsqldb-old/src/org/hsqldb/util/PostgresTransferHelper.java hsqldb/src/org/hsqldb/util/PostgresTransferHelper.java
+++*** hsqldb-old/src/org/hsqldb/util/PostgresTransferHelper.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/PostgresTransferHelper.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 47,54 ****
+++   */
+++  class PostgresTransferHelper extends TransferHelper {
+++  
+++!     private final int PostgreSQL = 0;
+++!     private final int HSQLDB     = 1;
+++      String[][]        Funcs      = {
+++          {
+++              "now()", "\'now\'"
+++--- 47,54 ----
+++   */
+++  class PostgresTransferHelper extends TransferHelper {
+++  
+++!     public final int PostgreSQL = 0;
+++!     public final int HSQLDB     = 1;
+++      String[][]        Funcs      = {
+++          {
+++              "now()", "\'now\'"
+++diff -crN hsqldb-old/src/org/hsqldb/util/QueryTool.java hsqldb/src/org/hsqldb/util/QueryTool.java
+++*** hsqldb-old/src/org/hsqldb/util/QueryTool.java	2006-07-27 22:04:30.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/QueryTool.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 419,425 ****
+++      /**
+++       * Adds a String to the Listbox of recent commands.
+++       */
+++!     private void setRecent(String s) {
+++  
+++          for (int i = 0; i < iMaxRecent; i++) {
+++              if (s.equals(sRecent[i])) {
+++--- 419,425 ----
+++      /**
+++       * Adds a String to the Listbox of recent commands.
+++       */
+++!     public void setRecent(String s) {
+++  
+++          for (int i = 0; i < iMaxRecent; i++) {
+++              if (s.equals(sRecent[i])) {
+++***************
+++*** 449,455 ****
+++      /**
+++       * Create the graphical user interface. This is AWT code.
+++       */
+++!     private void initGUI() {
+++  
+++          // all panels
+++          Panel pQuery       = new Panel();
+++--- 449,455 ----
+++      /**
+++       * Create the graphical user interface. This is AWT code.
+++       */
+++!     public void initGUI() {
+++  
+++          // all panels
+++          Panel pQuery       = new Panel();
+++diff -crN hsqldb-old/src/org/hsqldb/util/RCData.java hsqldb/src/org/hsqldb/util/RCData.java
+++*** hsqldb-old/src/org/hsqldb/util/RCData.java	2007-06-11 12:12:32.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/RCData.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 52,58 ****
+++  public class RCData {
+++  
+++      public static final String DEFAULT_JDBC_DRIVER   = "org.hsqldb.jdbcDriver";
+++!     private String             defaultJdbcDriverName = DEFAULT_JDBC_DRIVER;
+++  
+++      public void setDefaultJdbcDriver(String defaultJdbcDriverName) {
+++          this.defaultJdbcDriverName = defaultJdbcDriverName;
+++--- 52,58 ----
+++  public class RCData {
+++  
+++      public static final String DEFAULT_JDBC_DRIVER   = "org.hsqldb.jdbcDriver";
+++!     public String             defaultJdbcDriverName = DEFAULT_JDBC_DRIVER;
+++  
+++      public void setDefaultJdbcDriver(String defaultJdbcDriverName) {
+++          this.defaultJdbcDriverName = defaultJdbcDriverName;
+++diff -crN hsqldb-old/src/org/hsqldb/util/RefCapablePropertyResourceBundle.java hsqldb/src/org/hsqldb/util/RefCapablePropertyResourceBundle.java
+++*** hsqldb-old/src/org/hsqldb/util/RefCapablePropertyResourceBundle.java	2007-10-19 22:16:44.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/RefCapablePropertyResourceBundle.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 154,169 ****
+++   * @author  blaine.simpson@admc.com
+++   */
+++  public class RefCapablePropertyResourceBundle {
+++!     private PropertyResourceBundle wrappedBundle;
+++!     private String baseName;
+++!     private String language, country, variant;
+++!     static private Map allBundles = new HashMap();
+++      public static String LS = System.getProperty("line.separator");
+++!     private Pattern sysPropVarPattern = Pattern.compile(
+++              "(?s)\\Q${\\E([^}]+?)(?:\\Q:+\\E([^}]+))?\\Q}");
+++!     private Pattern posPattern = Pattern.compile(
+++              "(?s)\\Q%{\\E(\\d)(?:\\Q:+\\E([^}]+))?\\Q}");
+++!     private ClassLoader loader;  // Needed to load referenced files
+++  
+++      public static final int THROW_BEHAVIOR = 0;
+++      public static final int EMPTYSTRING_BEHAVIOR = 1;
+++--- 154,169 ----
+++   * @author  blaine.simpson@admc.com
+++   */
+++  public class RefCapablePropertyResourceBundle {
+++!     public PropertyResourceBundle wrappedBundle;
+++!     public String baseName;
+++!     public String language, country, variant;
+++!     static public Map allBundles = new HashMap();
+++      public static String LS = System.getProperty("line.separator");
+++!     public Pattern sysPropVarPattern = Pattern.compile(
+++              "(?s)\\Q${\\E([^}]+?)(?:\\Q:+\\E([^}]+))?\\Q}");
+++!     public Pattern posPattern = Pattern.compile(
+++              "(?s)\\Q%{\\E(\\d)(?:\\Q:+\\E([^}]+))?\\Q}");
+++!     public ClassLoader loader;  // Needed to load referenced files
+++  
+++      public static final int THROW_BEHAVIOR = 0;
+++      public static final int EMPTYSTRING_BEHAVIOR = 1;
+++***************
+++*** 173,179 ****
+++          return wrappedBundle.getKeys();
+++      }
+++  
+++!     private RefCapablePropertyResourceBundle(String baseName,
+++              PropertyResourceBundle wrappedBundle, ClassLoader loader) {
+++          this.baseName = baseName;
+++          this.wrappedBundle = wrappedBundle;
+++--- 173,179 ----
+++          return wrappedBundle.getKeys();
+++      }
+++  
+++!     public RefCapablePropertyResourceBundle(String baseName,
+++              PropertyResourceBundle wrappedBundle, ClassLoader loader) {
+++          this.baseName = baseName;
+++          this.wrappedBundle = wrappedBundle;
+++***************
+++*** 349,355 ****
+++       * Return a ref to a new or existing RefCapablePropertyResourceBundle,
+++       * or throw a MissingResourceException.
+++       */
+++!     static private RefCapablePropertyResourceBundle getRef(String baseName,
+++              ResourceBundle rb, ClassLoader loader) {
+++          if (!(rb instanceof PropertyResourceBundle))
+++              throw new MissingResourceException(
+++--- 349,355 ----
+++       * Return a ref to a new or existing RefCapablePropertyResourceBundle,
+++       * or throw a MissingResourceException.
+++       */
+++!     static public RefCapablePropertyResourceBundle getRef(String baseName,
+++              ResourceBundle rb, ClassLoader loader) {
+++          if (!(rb instanceof PropertyResourceBundle))
+++              throw new MissingResourceException(
+++***************
+++*** 368,374 ****
+++      /**
+++       * Recursive
+++       */
+++!     private InputStream getMostSpecificStream(
+++              String key, String l, String c, String v) {
+++          String filePath = baseName.replace('.', '/') + '/' + key
+++                  + ((l == null) ? "" : ("_" + l))
+++--- 368,374 ----
+++      /**
+++       * Recursive
+++       */
+++!     public InputStream getMostSpecificStream(
+++              String key, String l, String c, String v) {
+++          String filePath = baseName.replace('.', '/') + '/' + key
+++                  + ((l == null) ? "" : ("_" + l))
+++***************
+++*** 385,391 ****
+++              : is;
+++      }
+++  
+++!     private String getStringFromFile(String key) {
+++          byte[] ba = null;
+++          int bytesread = 0;
+++          int retval;
+++--- 385,391 ----
+++              : is;
+++      }
+++  
+++!     public String getStringFromFile(String key) {
+++          byte[] ba = null;
+++          int bytesread = 0;
+++          int retval;
+++diff -crN hsqldb-old/src/org/hsqldb/util/ScriptTool.java hsqldb/src/org/hsqldb/util/ScriptTool.java
+++*** hsqldb-old/src/org/hsqldb/util/ScriptTool.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ScriptTool.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 54,66 ****
+++   */
+++  public class ScriptTool {
+++  
+++!     private static Properties pProperties = new Properties();
+++!     private Connection        cConn;
+++!     private Statement         sStatement;
+++!     private boolean           BATCH = true;
+++!     private String            EKW   = new String("go");
+++!     private boolean           EOF   = false;
+++!     private int               ln    = 0;
+++  
+++      /**
+++       * Main method
+++--- 54,66 ----
+++   */
+++  public class ScriptTool {
+++  
+++!     public static Properties pProperties = new Properties();
+++!     public Connection        cConn;
+++!     public Statement         sStatement;
+++!     public boolean           BATCH = true;
+++!     public String            EKW   = new String("go");
+++!     public boolean           EOF   = false;
+++!     public int               ln    = 0;
+++  
+++      /**
+++       * Main method
+++***************
+++*** 180,186 ****
+++       * Translate ResultSet to String representation
+++       * @param r
+++       */
+++!     private String toString(ResultSet r) {
+++  
+++          try {
+++              if (r == null) {
+++--- 180,186 ----
+++       * Translate ResultSet to String representation
+++       * @param r
+++       */
+++!     public String toString(ResultSet r) {
+++  
+++          try {
+++              if (r == null) {
+++***************
+++*** 218,224 ****
+++      /**
+++       * Read file and convert it to string.
+++       */
+++!     private String fileToString(BufferedReader in) {
+++  
+++          if (EOF) {
+++              return null;
+++--- 218,224 ----
+++      /**
+++       * Read file and convert it to string.
+++       */
+++!     public String fileToString(BufferedReader in) {
+++  
+++          if (EOF) {
+++              return null;
+++***************
+++*** 268,274 ****
+++       *
+++       * @param s
+++       */
+++!     private void trace(String s) {
+++          System.out.println(s);
+++      }
+++  
+++--- 268,274 ----
+++       *
+++       * @param s
+++       */
+++!     public void trace(String s) {
+++          System.out.println(s);
+++      }
+++  
+++***************
+++*** 276,282 ****
+++       * Method declaration
+++       *
+++       */
+++!     private static void printHelp() {
+++  
+++          System.out.println(
+++              "Usage: java ScriptTool [-options]\n"
+++--- 276,282 ----
+++       * Method declaration
+++       *
+++       */
+++!     public static void printHelp() {
+++  
+++          System.out.println(
+++              "Usage: java ScriptTool [-options]\n"
+++diff -crN hsqldb-old/src/org/hsqldb/util/SqlFile.java hsqldb/src/org/hsqldb/util/SqlFile.java
+++*** hsqldb-old/src/org/hsqldb/util/SqlFile.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/SqlFile.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 118,175 ****
+++   */
+++  
+++  public class SqlFile {
+++!     private static final int DEFAULT_HISTORY_SIZE = 40;
+++!     private File             file;
+++!     private boolean          interactive;
+++!     private String           primaryPrompt    = "sql> ";
+++!     private String           rawPrompt      = null;
+++!     private String           contPrompt       = "  +> ";
+++!     private Connection       curConn          = null;
+++!     private boolean          htmlMode         = false;
+++!     private Map              userVars; // Always a non-null map set in cons.
+++!     private List             history          = null;
+++!     private int              rawMode          = RAW_FALSE;
+++!     private String           nullRepToken     = null;
+++!     private String           dsvTargetFile    = null;
+++!     private String           dsvTargetTable   = null;
+++!     private String           dsvConstCols     = null;
+++!     private String           dsvRejectFile    = null;
+++!     private String           dsvRejectReport  = null;
+++      public static String     LS = System.getProperty("line.separator");
+++!     private int              maxHistoryLength = 1;
+++!     private SqltoolRB        rb               = null;
+++!     private String           magicPrefix      = null;
+++      // For append editing, this is automatically prefixed to what the
+++      // user enters.
+++  
+++!     private static final int RAW_FALSE = 0; // Raw mode off
+++!     private static final int RAW_EMPTY = 1; // Raw mode on, but no raw input yet
+++!     private static final int RAW_DATA  = 2; // Raw mode on and we have input
+++  
+++      /**
+++       * N.b. javax.util.regex Optional capture groups (...)? are completely
+++       * unpredictable wrt whether you get a null capture group vs. no capture.
+++       * Must always check count!
+++       */
+++!     private static Pattern   specialPattern =
+++              Pattern.compile("\\s*\\\\(\\S+)(?:\\s+(.*\\S))?\\s*");
+++!     private static Pattern   plPattern  =
+++              Pattern.compile("\\s*\\*\\s*(.*\\S)?\\s*");
+++!     private static Pattern   foreachPattern =
+++              Pattern.compile("\\s*\\*\\s*foreach\\s+(\\S+)\\s*\\(([^)]*)\\)\\s*");
+++!     private static Pattern   ifwhilePattern =
+++              Pattern.compile("\\s*\\*\\s*\\S+\\s*\\(([^)]*)\\)\\s*");
+++!     private static Pattern   varsetPattern =
+++              Pattern.compile("\\s*\\*\\s*(\\S+)\\s*([=_~])\\s*(?:(.*\\S)\\s*)?");
+++!     private static Pattern   substitutionPattern =
+++              Pattern.compile("(\\S)(.+?)\\1(.*?)\\1(.+)?\\s*");
+++              // Note that this pattern does not include the leading ":s".
+++!     private static Pattern   slashHistoryPattern =
+++              Pattern.compile("\\s*/([^/]+)/\\s*(\\S.*)?");
+++!     private static Pattern   historyPattern =
+++              Pattern.compile("\\s*(-?\\d+)?\\s*(\\S.*)?");
+++              // Note that this pattern does not include the leading ":".
+++!     private static Pattern wincmdPattern = null;
+++  
+++      static {
+++          if (System.getProperty("os.name").startsWith("Windows")) {
+++--- 118,175 ----
+++   */
+++  
+++  public class SqlFile {
+++!     public static final int DEFAULT_HISTORY_SIZE = 40;
+++!     public File             file;
+++!     public boolean          interactive;
+++!     public String           primaryPrompt    = "sql> ";
+++!     public String           rawPrompt      = null;
+++!     public String           contPrompt       = "  +> ";
+++!     public Connection       curConn          = null;
+++!     public boolean          htmlMode         = false;
+++!     public Map              userVars; // Always a non-null map set in cons.
+++!     public List             history          = null;
+++!     public int              rawMode          = RAW_FALSE;
+++!     public String           nullRepToken     = null;
+++!     public String           dsvTargetFile    = null;
+++!     public String           dsvTargetTable   = null;
+++!     public String           dsvConstCols     = null;
+++!     public String           dsvRejectFile    = null;
+++!     public String           dsvRejectReport  = null;
+++      public static String     LS = System.getProperty("line.separator");
+++!     public int              maxHistoryLength = 1;
+++!     public SqltoolRB        rb               = null;
+++!     public String           magicPrefix      = null;
+++      // For append editing, this is automatically prefixed to what the
+++      // user enters.
+++  
+++!     public static final int RAW_FALSE = 0; // Raw mode off
+++!     public static final int RAW_EMPTY = 1; // Raw mode on, but no raw input yet
+++!     public static final int RAW_DATA  = 2; // Raw mode on and we have input
+++  
+++      /**
+++       * N.b. javax.util.regex Optional capture groups (...)? are completely
+++       * unpredictable wrt whether you get a null capture group vs. no capture.
+++       * Must always check count!
+++       */
+++!     public static Pattern   specialPattern =
+++              Pattern.compile("\\s*\\\\(\\S+)(?:\\s+(.*\\S))?\\s*");
+++!     public static Pattern   plPattern  =
+++              Pattern.compile("\\s*\\*\\s*(.*\\S)?\\s*");
+++!     public static Pattern   foreachPattern =
+++              Pattern.compile("\\s*\\*\\s*foreach\\s+(\\S+)\\s*\\(([^)]*)\\)\\s*");
+++!     public static Pattern   ifwhilePattern =
+++              Pattern.compile("\\s*\\*\\s*\\S+\\s*\\(([^)]*)\\)\\s*");
+++!     public static Pattern   varsetPattern =
+++              Pattern.compile("\\s*\\*\\s*(\\S+)\\s*([=_~])\\s*(?:(.*\\S)\\s*)?");
+++!     public static Pattern   substitutionPattern =
+++              Pattern.compile("(\\S)(.+?)\\1(.*?)\\1(.+)?\\s*");
+++              // Note that this pattern does not include the leading ":s".
+++!     public static Pattern   slashHistoryPattern =
+++              Pattern.compile("\\s*/([^/]+)/\\s*(\\S.*)?");
+++!     public static Pattern   historyPattern =
+++              Pattern.compile("\\s*(-?\\d+)?\\s*(\\S.*)?");
+++              // Note that this pattern does not include the leading ":".
+++!     public static Pattern wincmdPattern = null;
+++  
+++      static {
+++          if (System.getProperty("os.name").startsWith("Windows")) {
+++***************
+++*** 190,196 ****
+++       * is less reliable since there is no way to guarantee that the vars
+++       * are not used without checking.
+++       */
+++!     private void updateUserSettings() {
+++          dsvSkipPrefix = SqlFile.convertEscapes(
+++                  (String) userVars.get("*DSV_SKIP_PREFIX"));
+++          if (dsvSkipPrefix == null) {
+++--- 190,196 ----
+++       * is less reliable since there is no way to guarantee that the vars
+++       * are not used without checking.
+++       */
+++!     public void updateUserSettings() {
+++          dsvSkipPrefix = SqlFile.convertEscapes(
+++                  (String) userVars.get("*DSV_SKIP_PREFIX"));
+++          if (dsvSkipPrefix == null) {
+++***************
+++*** 244,252 ****
+++       * Private class to "share" a variable among a family of SqlFile
+++       * instances.
+++       */
+++!     private static class BooleanBucket {
+++          BooleanBucket() {}
+++!         private boolean bPriv = false;
+++  
+++          public void set(boolean bIn) {
+++              bPriv = bIn;
+++--- 244,252 ----
+++       * Private class to "share" a variable among a family of SqlFile
+++       * instances.
+++       */
+++!     public static class BooleanBucket {
+++          BooleanBucket() {}
+++!         public boolean bPriv = false;
+++  
+++          public void set(boolean bIn) {
+++              bPriv = bIn;
+++***************
+++*** 262,284 ****
+++      // be running DDL or a commit or rollback statement.  All we know is,
+++      // they MAY run some DML that needs to be committed.
+++  
+++!     private static final String DIVIDER =
+++          "-----------------------------------------------------------------"
+++          + "-----------------------------------------------------------------";
+++      // Needs to be at least as wide as the widest field or header displayed.
+++!     private static final String SPACES =
+++          "                                                                 "
+++          + "                                                                 ";
+++      // Needs to be at least as wide as the widest field or header displayed.
+++!     private static String revnum = null;
+++  
+++      static {
+++          revnum = "354";
+++      }
+++  
+++!     private String DSV_OPTIONS_TEXT = null;
+++!     private String D_OPTIONS_TEXT = null;
+++!     private String RAW_LEADIN_MSG = null;
+++  
+++      /**
+++       * Interpret lines of input file as SQL Statements, Comments,
+++--- 262,284 ----
+++      // be running DDL or a commit or rollback statement.  All we know is,
+++      // they MAY run some DML that needs to be committed.
+++  
+++!     public static final String DIVIDER =
+++          "-----------------------------------------------------------------"
+++          + "-----------------------------------------------------------------";
+++      // Needs to be at least as wide as the widest field or header displayed.
+++!     public static final String SPACES =
+++          "                                                                 "
+++          + "                                                                 ";
+++      // Needs to be at least as wide as the widest field or header displayed.
+++!     public static String revnum = null;
+++  
+++      static {
+++          revnum = "354";
+++      }
+++  
+++!     public String DSV_OPTIONS_TEXT = null;
+++!     public String D_OPTIONS_TEXT = null;
+++!     public String RAW_LEADIN_MSG = null;
+++  
+++      /**
+++       * Interpret lines of input file as SQL Statements, Comments,
+++***************
+++*** 374,396 ****
+++  
+++      // So we can tell how to handle quit and break commands.
+++      public boolean      recursed     = false;
+++!     private String      lastSqlStatement   = null;
+++!     private int         curLinenum   = -1;
+++!     private PrintStream psStd        = null;
+++!     private PrintStream psErr        = null;
+++!     private PrintWriter pwQuery      = null;
+++!     private PrintWriter pwDsv        = null;
+++      StringBuffer        immCmdSB     = new StringBuffer();
+++!     private boolean             continueOnError = false;
+++      /*
+++       * This is reset upon each execute() invocation (to true if interactive,
+++       * false otherwise).
+++       */
+++!     private static final String DEFAULT_CHARSET = null;
+++      // Change to Charset.defaultCharset().name(); once we can use Java 1.5!
+++!     private BufferedReader      br              = null;
+++!     private String              charset         = null;
+++!     private String              buffer          = null;
+++  
+++      /**
+++       * Process all the commands in the file (or stdin) associated with
+++--- 374,396 ----
+++  
+++      // So we can tell how to handle quit and break commands.
+++      public boolean      recursed     = false;
+++!     public String      lastSqlStatement   = null;
+++!     public int         curLinenum   = -1;
+++!     public PrintStream psStd        = null;
+++!     public PrintStream psErr        = null;
+++!     public PrintWriter pwQuery      = null;
+++!     public PrintWriter pwDsv        = null;
+++      StringBuffer        immCmdSB     = new StringBuffer();
+++!     public boolean             continueOnError = false;
+++      /*
+++       * This is reset upon each execute() invocation (to true if interactive,
+++       * false otherwise).
+++       */
+++!     public static final String DEFAULT_CHARSET = null;
+++      // Change to Charset.defaultCharset().name(); once we can use Java 1.5!
+++!     public BufferedReader      br              = null;
+++!     public String              charset         = null;
+++!     public String              buffer          = null;
+++  
+++      /**
+++       * Process all the commands in the file (or stdin) associated with
+++***************
+++*** 792,798 ****
+++       *                 a "copy" will be returned).
+++       * @returns Null if inString contains no terminating semi-colon.
+++       */
+++!     private static String deTerminated(String inString) {
+++          int index = inString.lastIndexOf(';');
+++  
+++          if (index < 0) {
+++--- 792,798 ----
+++       *                 a "copy" will be returned).
+++       * @returns Null if inString contains no terminating semi-colon.
+++       */
+++!     public static String deTerminated(String inString) {
+++          int index = inString.lastIndexOf(';');
+++  
+++          if (index < 0) {
+++***************
+++*** 813,819 ****
+++       *
+++       * Do not instantiate with null message.
+++       */
+++!     static private class BadSpecial extends AppendableException {
+++          static final long serialVersionUID = 7162440064026570590L;
+++  
+++          BadSpecial(String s) {
+++--- 813,819 ----
+++       *
+++       * Do not instantiate with null message.
+++       */
+++!     static public class BadSpecial extends AppendableException {
+++          static final long serialVersionUID = 7162440064026570590L;
+++  
+++          BadSpecial(String s) {
+++***************
+++*** 837,843 ****
+++       * Therefore, external users have no reason to specifically handle
+++       * QuitNow.
+++       */
+++!     private class QuitNow extends SqlToolError {
+++          static final long serialVersionUID = 1811094258670900488L;
+++  
+++          public QuitNow(String s) {
+++--- 837,843 ----
+++       * Therefore, external users have no reason to specifically handle
+++       * QuitNow.
+++       */
+++!     public class QuitNow extends SqlToolError {
+++          static final long serialVersionUID = 1811094258670900488L;
+++  
+++          public QuitNow(String s) {
+++***************
+++*** 856,862 ****
+++       * Therefore, external users have no reason to specifically handle
+++       * BreakException.
+++       */
+++!     private class BreakException extends SqlToolError {
+++          static final long serialVersionUID = 351150072817675994L;
+++  
+++          public BreakException() {
+++--- 856,862 ----
+++       * Therefore, external users have no reason to specifically handle
+++       * BreakException.
+++       */
+++!     public class BreakException extends SqlToolError {
+++          static final long serialVersionUID = 351150072817675994L;
+++  
+++          public BreakException() {
+++***************
+++*** 875,881 ****
+++       * Therefore, external users have no reason to specifically handle
+++       * ContinueException.
+++       */
+++!     private class ContinueException extends SqlToolError {
+++          static final long serialVersionUID = 5064604160827106014L;
+++  
+++          public ContinueException() {
+++--- 875,881 ----
+++       * Therefore, external users have no reason to specifically handle
+++       * ContinueException.
+++       */
+++!     public class ContinueException extends SqlToolError {
+++          static final long serialVersionUID = 5064604160827106014L;
+++  
+++          public ContinueException() {
+++***************
+++*** 890,896 ****
+++      /**
+++       * Utility nested Exception class for internal use only.
+++       */
+++!     private class BadSubst extends Exception {
+++          static final long serialVersionUID = 7325933736897253269L;
+++  
+++          BadSubst(String s) {
+++--- 890,896 ----
+++      /**
+++       * Utility nested Exception class for internal use only.
+++       */
+++!     public class BadSubst extends Exception {
+++          static final long serialVersionUID = 7325933736897253269L;
+++  
+++          BadSubst(String s) {
+++***************
+++*** 901,907 ****
+++      /**
+++       * Utility nested Exception class for internal use only.
+++       */
+++!     private class RowError extends AppendableException {
+++          static final long serialVersionUID = 754346434606022750L;
+++  
+++          RowError(String s) {
+++--- 901,907 ----
+++      /**
+++       * Utility nested Exception class for internal use only.
+++       */
+++!     public class RowError extends AppendableException {
+++          static final long serialVersionUID = 754346434606022750L;
+++  
+++          RowError(String s) {
+++***************
+++*** 949,955 ****
+++       * @throws BadSpecial    special-command-specific errors.
+++       * @throws SqlToolError  all other errors.
+++       */
+++!     private void processBuffHist(String inString)
+++      throws BadSpecial, SQLException, SqlToolError {
+++          if (inString.length() < 1) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.BUFHIST_UNSPECIFIED));
+++--- 949,955 ----
+++       * @throws BadSpecial    special-command-specific errors.
+++       * @throws SqlToolError  all other errors.
+++       */
+++!     public void processBuffHist(String inString)
+++      throws BadSpecial, SQLException, SqlToolError {
+++          if (inString.length() < 1) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.BUFHIST_UNSPECIFIED));
+++***************
+++*** 1184,1207 ****
+++                  Character.toString(commandChar)));
+++      }
+++  
+++!     private boolean doPrepare   = false;
+++!     private String  prepareVar  = null;
+++!     private String  dsvColDelim = null;
+++!     private String  dsvSkipPrefix = null;
+++!     private String  dsvRowDelim = null;
+++!     private String  dsvSkipCols = null;
+++!     private String  DSV_X_SYNTAX_MSG = null;
+++!     private String  DSV_M_SYNTAX_MSG = null;
+++!     private String  nobufferYetString = null;
+++  
+++!     private void enforce1charSpecial(String token, char command)
+++              throws BadSpecial {
+++          if (token.length() != 1) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.SPECIAL_EXTRACHARS,
+++                       Character.toString(command), token.substring(1)));
+++          }
+++      }
+++!     private void enforce1charBH(String token, char command)
+++              throws BadSpecial {
+++          if (token != null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.BUFFER_EXTRACHARS,
+++--- 1184,1207 ----
+++                  Character.toString(commandChar)));
+++      }
+++  
+++!     public boolean doPrepare   = false;
+++!     public String  prepareVar  = null;
+++!     public String  dsvColDelim = null;
+++!     public String  dsvSkipPrefix = null;
+++!     public String  dsvRowDelim = null;
+++!     public String  dsvSkipCols = null;
+++!     public String  DSV_X_SYNTAX_MSG = null;
+++!     public String  DSV_M_SYNTAX_MSG = null;
+++!     public String  nobufferYetString = null;
+++  
+++!     public void enforce1charSpecial(String token, char command)
+++              throws BadSpecial {
+++          if (token.length() != 1) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.SPECIAL_EXTRACHARS,
+++                       Character.toString(command), token.substring(1)));
+++          }
+++      }
+++!     public void enforce1charBH(String token, char command)
+++              throws BadSpecial {
+++          if (token != null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.BUFFER_EXTRACHARS,
+++***************
+++*** 1219,1225 ****
+++       * @throws SqlToolError all other errors, plus QuitNow,
+++       *                      BreakException, ContinueException.
+++       */
+++!     private void processSpecial(String inString)
+++      throws BadSpecial, QuitNow, SQLException, SqlToolError {
+++          if (inString.equals("\\")) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.SPECIAL_UNSPECIFIED));
+++--- 1219,1225 ----
+++       * @throws SqlToolError all other errors, plus QuitNow,
+++       *                      BreakException, ContinueException.
+++       */
+++!     public void processSpecial(String inString)
+++      throws BadSpecial, QuitNow, SQLException, SqlToolError {
+++          if (inString.equals("\\")) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.SPECIAL_UNSPECIFIED));
+++***************
+++*** 1661,1667 ****
+++                  Character.toString(arg1.charAt(0))));
+++      }
+++  
+++!     private static final char[] nonVarChars = {
+++          ' ', '\t', '=', '}', '\n', '\r'
+++      };
+++  
+++--- 1661,1667 ----
+++                  Character.toString(arg1.charAt(0))));
+++      }
+++  
+++!     public static final char[] nonVarChars = {
+++          ' ', '\t', '=', '}', '\n', '\r'
+++      };
+++  
+++***************
+++*** 1693,1699 ****
+++       *
+++       * @throws SqlToolError
+++       */
+++!     private String dereference(String inString,
+++                                 boolean permitAlias) throws SqlToolError {
+++          /* TODO:  Rewrite using java.util.regex. */
+++          String       varName, varValue;
+++--- 1693,1699 ----
+++       *
+++       * @throws SqlToolError
+++       */
+++!     public String dereference(String inString,
+++                                 boolean permitAlias) throws SqlToolError {
+++          /* TODO:  Rewrite using java.util.regex. */
+++          String       varName, varValue;
+++***************
+++*** 1819,1827 ****
+++      public boolean plMode = false;
+++  
+++      //  PL variable name currently awaiting query output.
+++!     private String  fetchingVar = null;
+++!     private boolean silentFetch = false;
+++!     private boolean fetchBinary = false;
+++  
+++      /**
+++       * Process a Process Language Command.
+++--- 1819,1827 ----
+++      public boolean plMode = false;
+++  
+++      //  PL variable name currently awaiting query output.
+++!     public String  fetchingVar = null;
+++!     public boolean silentFetch = false;
+++!     public boolean fetchBinary = false;
+++  
+++      /**
+++       * Process a Process Language Command.
+++***************
+++*** 1832,1838 ****
+++       * @throws SqlToolError all other errors, plus BreakException and
+++       *                      ContinueException.
+++       */
+++!     private void processPL(String inString) throws BadSpecial, SqlToolError {
+++          Matcher m = plPattern.matcher(dereference(inString, false));
+++          if (!m.matches()) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.PL_MALFORMAT));
+++--- 1832,1838 ----
+++       * @throws SqlToolError all other errors, plus BreakException and
+++       *                      ContinueException.
+++       */
+++!     public void processPL(String inString) throws BadSpecial, SqlToolError {
+++          Matcher m = plPattern.matcher(dereference(inString, false));
+++          if (!m.matches()) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.PL_MALFORMAT));
+++***************
+++*** 2230,2236 ****
+++       * @throws IOException
+++       * @throws SqlToolError
+++       */
+++!     private File plBlockFile(String seeking) throws IOException, SqlToolError {
+++          String          s;
+++  
+++          // Have already read the if/while/foreach statement, so we are already
+++--- 2230,2236 ----
+++       * @throws IOException
+++       * @throws SqlToolError
+++       */
+++!     public File plBlockFile(String seeking) throws IOException, SqlToolError {
+++          String          s;
+++  
+++          // Have already read the if/while/foreach statement, so we are already
+++***************
+++*** 2320,2335 ****
+++       * Wrapper methods so don't need to call x(..., false) in most cases.
+++       */
+++      /* Unused.  Enable when/if need.
+++!     private void stdprintln() {
+++          stdprintln(false);
+++      }
+++      */
+++  
+++!     private void stdprint(String s) {
+++          stdprint(s, false);
+++      }
+++  
+++!     private void stdprintln(String s) {
+++          stdprintln(s, false);
+++      }
+++  
+++--- 2320,2335 ----
+++       * Wrapper methods so don't need to call x(..., false) in most cases.
+++       */
+++      /* Unused.  Enable when/if need.
+++!     public void stdprintln() {
+++          stdprintln(false);
+++      }
+++      */
+++  
+++!     public void stdprint(String s) {
+++          stdprint(s, false);
+++      }
+++  
+++!     public void stdprintln(String s) {
+++          stdprintln(s, false);
+++      }
+++  
+++***************
+++*** 2338,2344 ****
+++       *
+++       * Conditionally HTML-ifies output.
+++       */
+++!     private void stdprintln(boolean queryOutput) {
+++          if (htmlMode) {
+++              psStd.println("<BR>");
+++          } else {
+++--- 2338,2344 ----
+++       *
+++       * Conditionally HTML-ifies output.
+++       */
+++!     public void stdprintln(boolean queryOutput) {
+++          if (htmlMode) {
+++              psStd.println("<BR>");
+++          } else {
+++***************
+++*** 2361,2367 ****
+++       *
+++       * Conditionally HTML-ifies error output.
+++       */
+++!     private void errprint(String s) {
+++          psErr.print(htmlMode
+++                      ? ("<DIV style='color:white; background: red; "
+++                         + "font-weight: bold'>" + s + "</DIV>")
+++--- 2361,2367 ----
+++       *
+++       * Conditionally HTML-ifies error output.
+++       */
+++!     public void errprint(String s) {
+++          psErr.print(htmlMode
+++                      ? ("<DIV style='color:white; background: red; "
+++                         + "font-weight: bold'>" + s + "</DIV>")
+++***************
+++*** 2373,2379 ****
+++       *
+++       * Conditionally HTML-ifies error output.
+++       */
+++!     private void errprintln(String s) {
+++          psErr.println(htmlMode
+++                        ? ("<DIV style='color:white; background: red; "
+++                           + "font-weight: bold'>" + s + "</DIV>")
+++--- 2373,2379 ----
+++       *
+++       * Conditionally HTML-ifies error output.
+++       */
+++!     public void errprintln(String s) {
+++          psErr.println(htmlMode
+++                        ? ("<DIV style='color:white; background: red; "
+++                           + "font-weight: bold'>" + s + "</DIV>")
+++***************
+++*** 2385,2391 ****
+++       *
+++       * Conditionally HTML-ifies output.
+++       */
+++!     private void stdprint(String s, boolean queryOutput) {
+++          psStd.print(htmlMode ? ("<P>" + s + "</P>")
+++                               : s);
+++  
+++--- 2385,2391 ----
+++       *
+++       * Conditionally HTML-ifies output.
+++       */
+++!     public void stdprint(String s, boolean queryOutput) {
+++          psStd.print(htmlMode ? ("<P>" + s + "</P>")
+++                               : s);
+++  
+++***************
+++*** 2401,2407 ****
+++       *
+++       * Conditionally HTML-ifies output.
+++       */
+++!     private void stdprintln(String s, boolean queryOutput) {
+++          psStd.println(htmlMode ? ("<P>" + s + "</P>")
+++                                 : s);
+++  
+++--- 2401,2407 ----
+++       *
+++       * Conditionally HTML-ifies output.
+++       */
+++!     public void stdprintln(String s, boolean queryOutput) {
+++          psStd.println(htmlMode ? ("<P>" + s + "</P>")
+++                                 : s);
+++  
+++***************
+++*** 2415,2437 ****
+++      // Just because users may be used to seeing "[null]" in normal
+++      // SqlFile output, we use the same default value for null in DSV
+++      // files, but this DSV null representation can be changed to anything.
+++!     private static final String DEFAULT_NULL_REP = "[null]";
+++!     private static final String DEFAULT_ROW_DELIM = LS;
+++!     private static final String DEFAULT_COL_DELIM = "|";
+++!     private static final String DEFAULT_SKIP_PREFIX = "#";
+++!     private static final int    DEFAULT_ELEMENT   = 0,
+++                                  HSQLDB_ELEMENT    = 1,
+++                                  ORACLE_ELEMENT    = 2
+++      ;
+++  
+++      // These do not specify order listed, just inclusion.
+++!     private static final int[] listMDSchemaCols = { 1 };
+++!     private static final int[] listMDIndexCols  = {
+++          2, 6, 3, 9, 4, 10, 11
+++      };
+++  
+++      /** Column numbering starting at 1. */
+++!     private static final int[][] listMDTableCols = {
+++          {
+++              2, 3
+++          },    // Default
+++--- 2415,2437 ----
+++      // Just because users may be used to seeing "[null]" in normal
+++      // SqlFile output, we use the same default value for null in DSV
+++      // files, but this DSV null representation can be changed to anything.
+++!     public static final String DEFAULT_NULL_REP = "[null]";
+++!     public static final String DEFAULT_ROW_DELIM = LS;
+++!     public static final String DEFAULT_COL_DELIM = "|";
+++!     public static final String DEFAULT_SKIP_PREFIX = "#";
+++!     public static final int    DEFAULT_ELEMENT   = 0,
+++                                  HSQLDB_ELEMENT    = 1,
+++                                  ORACLE_ELEMENT    = 2
+++      ;
+++  
+++      // These do not specify order listed, just inclusion.
+++!     public static final int[] listMDSchemaCols = { 1 };
+++!     public static final int[] listMDIndexCols  = {
+++          2, 6, 3, 9, 4, 10, 11
+++      };
+++  
+++      /** Column numbering starting at 1. */
+++!     public static final int[][] listMDTableCols = {
+++          {
+++              2, 3
+++          },    // Default
+++***************
+++*** 2464,2470 ****
+++       * SCOTT, ADAMS, JONES, CLARK, BLAKE, OE, PM, SH, QS, QS_*, these
+++       * contain sample data and the schemas can safely be removed.
+++       */
+++!     private static final String[] oracleSysSchemas = {
+++          "SYS", "SYSTEM", "OUTLN", "DBSNMP", "OUTLN", "MDSYS", "ORDSYS",
+++          "ORDPLUGINS", "CTXSYS", "DSSYS", "PERFSTAT", "WKPROXY", "WKSYS",
+++          "WMSYS", "XDB", "ANONYMOUS", "ODM", "ODM_MTR", "OLAPSYS", "TRACESVR",
+++--- 2464,2470 ----
+++       * SCOTT, ADAMS, JONES, CLARK, BLAKE, OE, PM, SH, QS, QS_*, these
+++       * contain sample data and the schemas can safely be removed.
+++       */
+++!     public static final String[] oracleSysSchemas = {
+++          "SYS", "SYSTEM", "OUTLN", "DBSNMP", "OUTLN", "MDSYS", "ORDSYS",
+++          "ORDPLUGINS", "CTXSYS", "DSSYS", "PERFSTAT", "WKPROXY", "WKSYS",
+++          "WMSYS", "XDB", "ANONYMOUS", "ODM", "ODM_MTR", "OLAPSYS", "TRACESVR",
+++***************
+++*** 2482,2488 ****
+++       *                    SQLException in some cases).
+++       * @throws SqlToolError passed through from other methods in this class.
+++       */
+++!     private void listTables(char c, String inFilter) throws BadSpecial,
+++              SqlToolError {
+++          String   schema  = null;
+++          int[]    listSet = null;
+++--- 2482,2488 ----
+++       *                    SQLException in some cases).
+++       * @throws SqlToolError passed through from other methods in this class.
+++       */
+++!     public void listTables(char c, String inFilter) throws BadSpecial,
+++              SqlToolError {
+++          String   schema  = null;
+++          int[]    listSet = null;
+++***************
+++*** 2799,2805 ****
+++          }
+++      }
+++  
+++!     private boolean excludeSysSchemas = false;
+++  
+++      /**
+++       * Process the contents of Edit Buffer as an SQL Statement
+++--- 2799,2805 ----
+++          }
+++      }
+++  
+++!     public boolean excludeSysSchemas = false;
+++  
+++      /**
+++       * Process the contents of Edit Buffer as an SQL Statement
+++***************
+++*** 2807,2813 ****
+++       * @throws SQLException thrown by JDBC driver.
+++       * @throws SqlToolError all other errors.
+++       */
+++!     private void processSQL() throws SQLException, SqlToolError {
+++          // Really don't know whether to take the network latency hit here
+++          // in order to check autoCommit in order to set
+++          // possiblyUncommitteds more accurately.
+++--- 2807,2813 ----
+++       * @throws SQLException thrown by JDBC driver.
+++       * @throws SqlToolError all other errors.
+++       */
+++!     public void processSQL() throws SQLException, SqlToolError {
+++          // Really don't know whether to take the network latency hit here
+++          // in order to check autoCommit in order to set
+++          // possiblyUncommitteds more accurately.
+++***************
+++*** 2895,2901 ****
+++       * @throws SQLException thrown by JDBC driver.
+++       * @throws SqlToolError all other errors.
+++       */
+++!     private void displayResultSet(Statement statement, ResultSet r,
+++                                    int[] incCols,
+++                                    String filter) throws SQLException,
+++                                    SqlToolError {
+++--- 2895,2901 ----
+++       * @throws SQLException thrown by JDBC driver.
+++       * @throws SqlToolError all other errors.
+++       */
+++!     public void displayResultSet(Statement statement, ResultSet r,
+++                                    int[] incCols,
+++                                    String filter) throws SQLException,
+++                                    SqlToolError {
+++***************
+++*** 3301,3312 ****
+++          }
+++      }
+++  
+++!     private static final int    COL_HEAD = 0,
+++                                  COL_ODD  = 1,
+++                                  COL_EVEN = 2
+++      ;
+++!     private static final String PRE_TR   = spaces(4);
+++!     private static final String PRE_TD   = spaces(8);
+++  
+++      /**
+++       * Print a properly formatted HTML &lt;TR&gt; command for the given
+++--- 3301,3312 ----
+++          }
+++      }
+++  
+++!     public static final int    COL_HEAD = 0,
+++                                  COL_ODD  = 1,
+++                                  COL_EVEN = 2
+++      ;
+++!     public static final String PRE_TR   = spaces(4);
+++!     public static final String PRE_TD   = spaces(8);
+++  
+++      /**
+++       * Print a properly formatted HTML &lt;TR&gt; command for the given
+++***************
+++*** 3314,3320 ****
+++       *
+++       * @param colType Column type:  COL_HEAD, COL_ODD or COL_EVEN.
+++       */
+++!     private static String htmlRow(int colType) {
+++          switch (colType) {
+++              case COL_HEAD :
+++                  return PRE_TR + "<TR style='font-weight: bold;'>";
+++--- 3314,3320 ----
+++       *
+++       * @param colType Column type:  COL_HEAD, COL_ODD or COL_EVEN.
+++       */
+++!     public static String htmlRow(int colType) {
+++          switch (colType) {
+++              case COL_HEAD :
+++                  return PRE_TR + "<TR style='font-weight: bold;'>";
+++***************
+++*** 3338,3344 ****
+++       *
+++       * @param len Length of output String.
+++       */
+++!     private static String divider(int len) {
+++          return (len > DIVIDER.length()) ? DIVIDER
+++                                          : DIVIDER.substring(0, len);
+++      }
+++--- 3338,3344 ----
+++       *
+++       * @param len Length of output String.
+++       */
+++!     public static String divider(int len) {
+++          return (len > DIVIDER.length()) ? DIVIDER
+++                                          : DIVIDER.substring(0, len);
+++      }
+++***************
+++*** 3348,3354 ****
+++       *
+++       * @param len Length of output String.
+++       */
+++!     private static String spaces(int len) {
+++          return (len > SPACES.length()) ? SPACES
+++                                         : SPACES.substring(0, len);
+++      }
+++--- 3348,3354 ----
+++       *
+++       * @param len Length of output String.
+++       */
+++!     public static String spaces(int len) {
+++          return (len > SPACES.length()) ? SPACES
+++                                         : SPACES.substring(0, len);
+++      }
+++***************
+++*** 3361,3367 ****
+++       * @param fulllen  Output String length.
+++       * @param rightJustify  True to right justify, false to left justify.
+++       */
+++!     private static String pad(String inString, int fulllen,
+++                                boolean rightJustify, boolean doPad) {
+++          if (!doPad) {
+++              return inString;
+++--- 3361,3367 ----
+++       * @param fulllen  Output String length.
+++       * @param rightJustify  True to right justify, false to left justify.
+++       */
+++!     public static String pad(String inString, int fulllen,
+++                                boolean rightJustify, boolean doPad) {
+++          if (!doPad) {
+++              return inString;
+++***************
+++*** 3383,3389 ****
+++      /**
+++       * Display command history.
+++       */
+++!     private void showHistory() throws BadSpecial {
+++          if (history == null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.HISTORY_UNAVAILABLE));
+++          }
+++--- 3383,3389 ----
+++      /**
+++       * Display command history.
+++       */
+++!     public void showHistory() throws BadSpecial {
+++          if (history == null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.HISTORY_UNAVAILABLE));
+++          }
+++***************
+++*** 3406,3412 ****
+++      /**
+++       * Return a Command from command history.
+++       */
+++!     private String commandFromHistory(int inIndex) throws BadSpecial {
+++          int index = inIndex;  // Just to quiet compiler warnings.
+++  
+++          if (history == null) {
+++--- 3406,3412 ----
+++      /**
+++       * Return a Command from command history.
+++       */
+++!     public String commandFromHistory(int inIndex) throws BadSpecial {
+++          int index = inIndex;  // Just to quiet compiler warnings.
+++  
+++          if (history == null) {
+++***************
+++*** 3442,3448 ****
+++       *
+++       * @returns Absolute command number, if any match.
+++       */
+++!     private Integer historySearch(String findRegex) throws BadSpecial {
+++          if (history == null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.HISTORY_UNAVAILABLE));
+++          }
+++--- 3442,3448 ----
+++       *
+++       * @returns Absolute command number, if any match.
+++       */
+++!     public Integer historySearch(String findRegex) throws BadSpecial {
+++          if (history == null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.HISTORY_UNAVAILABLE));
+++          }
+++***************
+++*** 3455,3461 ****
+++          return null;
+++      }
+++  
+++!     private void setBuf(String newContent) {
+++          buffer = new String(newContent);
+++          // System.err.println("Buffer is now (" + buffer + ')');
+++      }
+++--- 3455,3461 ----
+++          return null;
+++      }
+++  
+++!     public void setBuf(String newContent) {
+++          buffer = new String(newContent);
+++          // System.err.println("Buffer is now (" + buffer + ')');
+++      }
+++***************
+++*** 3465,3471 ****
+++      /**
+++       * Add a command onto the history list.
+++       */
+++!     private void historize() {
+++          if (history == null || buffer == null) {
+++              return;
+++          }
+++--- 3465,3471 ----
+++      /**
+++       * Add a command onto the history list.
+++       */
+++!     public void historize() {
+++          if (history == null || buffer == null) {
+++              return;
+++          }
+++***************
+++*** 3488,3494 ****
+++       * @param tableName  Table that will be described.
+++       * @param filter  Substring to filter by
+++       */
+++!     private void describe(String tableName,
+++                            String inFilter) throws SQLException {
+++          /*
+++           * Doing case-sensitive filters now, for greater portability.
+++--- 3488,3494 ----
+++       * @param tableName  Table that will be described.
+++       * @param filter  Substring to filter by
+++       */
+++!     public void describe(String tableName,
+++                            String inFilter) throws SQLException {
+++          /*
+++           * Doing case-sensitive filters now, for greater portability.
+++***************
+++*** 3617,3623 ****
+++          }
+++      }
+++  
+++!     private boolean eval(String[] inTokens) throws BadSpecial {
+++          /* TODO:  Rewrite using java.util.regex.  */
+++          // dereference *VARNAME variables.
+++          // N.b. we work with a "copy" of the tokens.
+++--- 3617,3623 ----
+++          }
+++      }
+++  
+++!     public boolean eval(String[] inTokens) throws BadSpecial {
+++          /* TODO:  Rewrite using java.util.regex.  */
+++          // dereference *VARNAME variables.
+++          // N.b. we work with a "copy" of the tokens.
+++***************
+++*** 3669,3675 ****
+++          throw new BadSpecial(rb.getString(SqltoolRB.LOGICAL_UNRECOGNIZED));
+++      }
+++  
+++!     private void closeQueryOutputStream() {
+++          if (pwQuery == null) {
+++              return;
+++          }
+++--- 3669,3675 ----
+++          throw new BadSpecial(rb.getString(SqltoolRB.LOGICAL_UNRECOGNIZED));
+++      }
+++  
+++!     public void closeQueryOutputStream() {
+++          if (pwQuery == null) {
+++              return;
+++          }
+++***************
+++*** 3688,3694 ****
+++       * Print to psStd and possibly pwQuery iff current HTML mode matches
+++       * supplied printHtml.
+++       */
+++!     private void condlPrintln(String s, boolean printHtml) {
+++          if ((printHtml &&!htmlMode) || (htmlMode &&!printHtml)) {
+++              return;
+++          }
+++--- 3688,3694 ----
+++       * Print to psStd and possibly pwQuery iff current HTML mode matches
+++       * supplied printHtml.
+++       */
+++!     public void condlPrintln(String s, boolean printHtml) {
+++          if ((printHtml &&!htmlMode) || (htmlMode &&!printHtml)) {
+++              return;
+++          }
+++***************
+++*** 3705,3711 ****
+++       * Print to psStd and possibly pwQuery iff current HTML mode matches
+++       * supplied printHtml.
+++       */
+++!     private void condlPrint(String s, boolean printHtml) {
+++          if ((printHtml &&!htmlMode) || (htmlMode &&!printHtml)) {
+++              return;
+++          }
+++--- 3705,3711 ----
+++       * Print to psStd and possibly pwQuery iff current HTML mode matches
+++       * supplied printHtml.
+++       */
+++!     public void condlPrint(String s, boolean printHtml) {
+++          if ((printHtml &&!htmlMode) || (htmlMode &&!printHtml)) {
+++              return;
+++          }
+++***************
+++*** 3718,3724 ****
+++          }
+++      }
+++  
+++!     private String formatNicely(Map map, boolean withValues) {
+++          String       key;
+++          StringBuffer sb = new StringBuffer();
+++          Iterator     it = (new TreeMap(map)).keySet().iterator();
+++--- 3718,3724 ----
+++          }
+++      }
+++  
+++!     public String formatNicely(Map map, boolean withValues) {
+++          String       key;
+++          StringBuffer sb = new StringBuffer();
+++          Iterator     it = (new TreeMap(map)).keySet().iterator();
+++***************
+++*** 3747,3753 ****
+++       *
+++       * dumpFile must not be null.
+++       */
+++!     private void dump(String varName,
+++                        File dumpFile) throws IOException, BadSpecial {
+++          String val = (String) userVars.get(varName);
+++  
+++--- 3747,3753 ----
+++       *
+++       * dumpFile must not be null.
+++       */
+++!     public void dump(String varName,
+++                        File dumpFile) throws IOException, BadSpecial {
+++          String val = (String) userVars.get(varName);
+++  
+++***************
+++*** 3792,3798 ****
+++       *
+++       * dumpFile must not be null.
+++       */
+++!     private void dump(File dumpFile) throws IOException, BadSpecial {
+++          if (binBuffer == null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.BINBUFFER_EMPTY));
+++          }
+++--- 3792,3798 ----
+++       *
+++       * dumpFile must not be null.
+++       */
+++!     public void dump(File dumpFile) throws IOException, BadSpecial {
+++          if (binBuffer == null) {
+++              throw new BadSpecial(rb.getString(SqltoolRB.BINBUFFER_EMPTY));
+++          }
+++***************
+++*** 3856,3862 ****
+++      /**
+++       * Ascii file load.
+++       */
+++!     private void load(String varName, File asciiFile, String cs)
+++              throws IOException {
+++          String string = streamToString(new FileInputStream(asciiFile), cs);
+++          userVars.put(varName, string);
+++--- 3856,3862 ----
+++      /**
+++       * Ascii file load.
+++       */
+++!     public void load(String varName, File asciiFile, String cs)
+++              throws IOException {
+++          String string = streamToString(new FileInputStream(asciiFile), cs);
+++          userVars.put(varName, string);
+++***************
+++*** 3936,3943 ****
+++      }
+++  
+++      // won't compile with JDK 1.3 without these
+++!     private static final int JDBC3_BOOLEAN  = 16;
+++!     private static final int JDBC3_DATALINK = 70;
+++  
+++      public static String sqlTypeToString(int i) {
+++          switch (i) {
+++--- 3936,3943 ----
+++      }
+++  
+++      // won't compile with JDK 1.3 without these
+++!     public static final int JDBC3_BOOLEAN  = 16;
+++!     public static final int JDBC3_DATALINK = 70;
+++  
+++      public static String sqlTypeToString(int i) {
+++          switch (i) {
+++***************
+++*** 4102,4108 ****
+++      /**
+++       * @param string  Non-null String to modify.
+++       */
+++!     private static String convertNumericEscapes(String string) {
+++          String workString = string;
+++          int i = 0;
+++  
+++--- 4102,4108 ----
+++      /**
+++       * @param string  Non-null String to modify.
+++       */
+++!     public static String convertNumericEscapes(String string) {
+++          String workString = string;
+++          int i = 0;
+++  
+++***************
+++*** 4126,4132 ****
+++      /**
+++       * @offset  Position of the leading \.
+++       */
+++!     private static String convertNumericEscape(String string, int offset) {
+++          int post = -1;
+++          int firstDigit = -1;
+++          int radix = -1;
+++--- 4126,4132 ----
+++      /**
+++       * @offset  Position of the leading \.
+++       */
+++!     public static String convertNumericEscape(String string, int offset) {
+++          int post = -1;
+++          int firstDigit = -1;
+++          int radix = -1;
+++***************
+++*** 4150,4156 ****
+++      /**
+++       * @param string  Non-null String to modify.
+++       */
+++!     private static String convertEscapes(String string, String from, String to) {
+++          String workString = string;
+++          int i = 0;
+++          int fromLen = from.length();
+++--- 4150,4156 ----
+++      /**
+++       * @param string  Non-null String to modify.
+++       */
+++!     public static String convertEscapes(String string, String from, String to) {
+++          String workString = string;
+++          int i = 0;
+++          int fromLen = from.length();
+++***************
+++*** 4789,4795 ****
+++       * Does a poor-man's parse of a MSDOS command line and parses it
+++       * into a WIndows cmd.exe invocation to approximate.
+++       */
+++!     static private String[] genWinArgs(String monolithic) {
+++          List list = new ArrayList();
+++          list.add("cmd.exe");
+++          list.add("/y");
+++--- 4789,4795 ----
+++       * Does a poor-man's parse of a MSDOS command line and parses it
+++       * into a WIndows cmd.exe invocation to approximate.
+++       */
+++!     static public String[] genWinArgs(String monolithic) {
+++          List list = new ArrayList();
+++          list.add("cmd.exe");
+++          list.add("/y");
+++***************
+++*** 4811,4817 ****
+++          return (String[]) list.toArray(new String[] {});
+++      }
+++  
+++!     private void genRejectReportRecord(PrintWriter pw, int rCount,
+++              int lCount, String field, String eMsg, Throwable cause) {
+++          pw.println(rb.getString(SqltoolRB.REJECTREPORT_ROW,
+++                  new String[] {
+++--- 4811,4817 ----
+++          return (String[]) list.toArray(new String[] {});
+++      }
+++  
+++!     public void genRejectReportRecord(PrintWriter pw, int rCount,
+++              int lCount, String field, String eMsg, Throwable cause) {
+++          pw.println(rb.getString(SqltoolRB.REJECTREPORT_ROW,
+++                  new String[] {
+++diff -crN hsqldb-old/src/org/hsqldb/util/SqlServerTransferHelper.java hsqldb/src/org/hsqldb/util/SqlServerTransferHelper.java
+++*** hsqldb-old/src/org/hsqldb/util/SqlServerTransferHelper.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/SqlServerTransferHelper.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 42,49 ****
+++   */
+++  class SqlServerTransferHelper extends TransferHelper {
+++  
+++!     private boolean firstTinyintRow;
+++!     private boolean firstSmallintRow;
+++  
+++      SqlServerTransferHelper() {
+++          super();
+++--- 42,49 ----
+++   */
+++  class SqlServerTransferHelper extends TransferHelper {
+++  
+++!     public boolean firstTinyintRow;
+++!     public boolean firstSmallintRow;
+++  
+++      SqlServerTransferHelper() {
+++          super();
+++diff -crN hsqldb-old/src/org/hsqldb/util/SqlTool.java hsqldb/src/org/hsqldb/util/SqlTool.java
+++*** hsqldb-old/src/org/hsqldb/util/SqlTool.java	2007-07-09 10:51:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/SqlTool.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 62,71 ****
+++   * @author Blaine Simpson unsaved@users
+++   */
+++  public class SqlTool {
+++!     private static final String DEFAULT_RCFILE =
+++          System.getProperty("user.home") + "/sqltool.rc";
+++      // N.b. the following is static!
+++!     private static String  revnum = null;
+++  
+++      public static final int SQLTOOLERR_EXITVAL = 1;
+++      public static final int SYNTAXERR_EXITVAL = 11;
+++--- 62,71 ----
+++   * @author Blaine Simpson unsaved@users
+++   */
+++  public class SqlTool {
+++!     public static final String DEFAULT_RCFILE =
+++          System.getProperty("user.home") + "/sqltool.rc";
+++      // N.b. the following is static!
+++!     public static String  revnum = null;
+++  
+++      public static final int SQLTOOLERR_EXITVAL = 1;
+++      public static final int SYNTAXERR_EXITVAL = 11;
+++***************
+++*** 80,87 ****
+++       * The configuration identifier to use when connection parameters are
+++       * specified on the command line
+++       */
+++!     private static String CMDLINE_ID = "cmdline";
+++!     static private SqltoolRB rb = null;
+++      // Must use a shared static RB object, since we need to get messages
+++      // inside of static methods.
+++      // This means that the locale will be set the first time this class
+++--- 80,87 ----
+++       * The configuration identifier to use when connection parameters are
+++       * specified on the command line
+++       */
+++!     public static String CMDLINE_ID = "cmdline";
+++!     static public SqltoolRB rb = null;
+++      // Must use a shared static RB object, since we need to get messages
+++      // inside of static methods.
+++      // This means that the locale will be set the first time this class
+++***************
+++*** 106,123 ****
+++      public static String LS = System.getProperty("line.separator");
+++  
+++      /** Utility nested class for internal use. */
+++!     private static class BadCmdline extends Exception {
+++          static final long serialVersionUID = -2134764796788108325L;
+++          BadCmdline() {}
+++      }
+++  
+++      /** Utility object for internal use. */
+++!     private static BadCmdline bcl = new BadCmdline();
+++  
+++      /** For trapping of exceptions inside this class.
+++       * These are always handled inside this class.
+++       */
+++!     private static class PrivateException extends Exception {
+++          static final long serialVersionUID = -7765061479594523462L;
+++  
+++          PrivateException() {
+++--- 106,123 ----
+++      public static String LS = System.getProperty("line.separator");
+++  
+++      /** Utility nested class for internal use. */
+++!     public static class BadCmdline extends Exception {
+++          static final long serialVersionUID = -2134764796788108325L;
+++          BadCmdline() {}
+++      }
+++  
+++      /** Utility object for internal use. */
+++!     public static BadCmdline bcl = new BadCmdline();
+++  
+++      /** For trapping of exceptions inside this class.
+++       * These are always handled inside this class.
+++       */
+++!     public static class PrivateException extends Exception {
+++          static final long serialVersionUID = -7765061479594523462L;
+++  
+++          PrivateException() {
+++***************
+++*** 152,158 ****
+++       * @param username The user the password is for
+++       * @return The password the user entered
+++       */
+++!     private static String promptForPassword(String username)
+++      throws PrivateException {
+++  
+++          BufferedReader console;
+++--- 152,158 ----
+++       * @param username The user the password is for
+++       * @return The password the user entered
+++       */
+++!     public static String promptForPassword(String username)
+++      throws PrivateException {
+++  
+++          BufferedReader console;
+++***************
+++*** 191,197 ****
+++       * @param lowerCaseKeys Set to <code>true</code> if the map keys should be
+++       *        converted to lower case
+++       */
+++!     private static void varParser(String varString, Map varMap,
+++                                    boolean lowerCaseKeys)
+++                                    throws PrivateException {
+++  
+++--- 191,197 ----
+++       * @param lowerCaseKeys Set to <code>true</code> if the map keys should be
+++       *        converted to lower case
+++       */
+++!     public static void varParser(String varString, Map varMap,
+++                                    boolean lowerCaseKeys)
+++                                    throws PrivateException {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/SqltoolRB.java hsqldb/src/org/hsqldb/util/SqltoolRB.java
+++*** hsqldb-old/src/org/hsqldb/util/SqltoolRB.java	2007-10-11 11:32:18.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/SqltoolRB.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 106,112 ****
+++                  rb1.getString(SqltoolRB.JDBC_ESTABLISHED, new String[] {}));
+++      }
+++  
+++!     static private int keyCounter = 0;
+++      static public final int SQLTOOL_SYNTAX = keyCounter++;
+++      static public final int PASSWORDFOR_PROMPT = keyCounter++;
+++      static public final int SQLTOOL_VARSET_BADFORMAT = keyCounter++;
+++--- 106,112 ----
+++                  rb1.getString(SqltoolRB.JDBC_ESTABLISHED, new String[] {}));
+++      }
+++  
+++!     static public int keyCounter = 0;
+++      static public final int SQLTOOL_SYNTAX = keyCounter++;
+++      static public final int PASSWORDFOR_PROMPT = keyCounter++;
+++      static public final int SQLTOOL_VARSET_BADFORMAT = keyCounter++;
+++***************
+++*** 283,289 ****
+++      static public final int DSV_REJECTREPORT_PURGEFAIL = keyCounter++;
+++      static public final int EDIT_MALFORMAT = keyCounter++;
+++  
+++!     private static Object[] memberKeyArray = new Object[] {
+++          /* With Java 5, can use auto-boxing and get rid of all of the
+++           * Integer instantiations below.*/
+++          // SqlTool class, file references:
+++--- 283,289 ----
+++      static public final int DSV_REJECTREPORT_PURGEFAIL = keyCounter++;
+++      static public final int EDIT_MALFORMAT = keyCounter++;
+++  
+++!     public static Object[] memberKeyArray = new Object[] {
+++          /* With Java 5, can use auto-boxing and get rid of all of the
+++           * Integer instantiations below.*/
+++          // SqlTool class, file references:
+++***************
+++*** 469,477 ****
+++          new Integer(EDIT_MALFORMAT), "edit.malformat",
+++      };
+++  
+++!     private Map keyIdToString = new HashMap();
+++  
+++!     protected Map getKeyIdToString() {
+++          return keyIdToString;
+++      }
+++  
+++--- 469,477 ----
+++          new Integer(EDIT_MALFORMAT), "edit.malformat",
+++      };
+++  
+++!     public Map keyIdToString = new HashMap();
+++  
+++!     public Map getKeyIdToString() {
+++          return keyIdToString;
+++      }
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/SqlToolSprayer.java hsqldb/src/org/hsqldb/util/SqlToolSprayer.java
+++*** hsqldb-old/src/org/hsqldb/util/SqlToolSprayer.java	2007-06-21 10:49:20.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/SqlToolSprayer.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 60,66 ****
+++  public class SqlToolSprayer {
+++  
+++      public static String LS = System.getProperty("line.separator");
+++!     private static String SYNTAX_MSG =
+++          "SYNTAX:  java [-D...] SqlToolSprayer 'SQL;' [urlid1 urlid2...]\n"
+++          + "System properties you may use [default values]:\n"
+++          + "    sqltoolsprayer.period (in ms.) [500]\n"
+++--- 60,66 ----
+++  public class SqlToolSprayer {
+++  
+++      public static String LS = System.getProperty("line.separator");
+++!     public static String SYNTAX_MSG =
+++          "SYNTAX:  java [-D...] SqlToolSprayer 'SQL;' [urlid1 urlid2...]\n"
+++          + "System properties you may use [default values]:\n"
+++          + "    sqltoolsprayer.period (in ms.) [500]\n"
+++***************
+++*** 186,192 ****
+++          System.exit(0);
+++      }
+++  
+++!     private static void getUrlsFromPropFile(String fileName,
+++              ArrayList al) throws Exception {
+++  
+++          Properties p = new Properties();
+++--- 186,192 ----
+++          System.exit(0);
+++      }
+++  
+++!     public static void getUrlsFromPropFile(String fileName,
+++              ArrayList al) throws Exception {
+++  
+++          Properties p = new Properties();
+++diff -crN hsqldb-old/src/org/hsqldb/util/TableSorter.java hsqldb/src/org/hsqldb/util/TableSorter.java
+++*** hsqldb-old/src/org/hsqldb/util/TableSorter.java	2004-11-25 01:07:20.000000000 +0100
+++--- hsqldb/src/org/hsqldb/util/TableSorter.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 78,88 ****
+++   */
+++  public class TableSorter extends AbstractTableModel {
+++  
+++!     protected TableModel           tableModel;
+++      public static final int        DESCENDING            = -1;
+++      public static final int        NOT_SORTED            = 0;
+++      public static final int        ASCENDING             = 1;
+++!     private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
+++      public static final Comparator COMPARABLE_COMPARATOR = new Comparator() {
+++  
+++          public int compare(Object o1, Object o2) {
+++--- 78,88 ----
+++   */
+++  public class TableSorter extends AbstractTableModel {
+++  
+++!     public TableModel           tableModel;
+++      public static final int        DESCENDING            = -1;
+++      public static final int        NOT_SORTED            = 0;
+++      public static final int        ASCENDING             = 1;
+++!     public static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
+++      public static final Comparator COMPARABLE_COMPARATOR = new Comparator() {
+++  
+++          public int compare(Object o1, Object o2) {
+++***************
+++*** 112,124 ****
+++              return o1.toString().compareTo(o2.toString());
+++          }
+++      };
+++!     private Row[]              viewToModel;
+++!     private int[]              modelToView;
+++!     private JTableHeader       tableHeader;
+++!     private MouseListener      mouseListener;
+++!     private TableModelListener tableModelListener;
+++!     private Map                columnComparators = new HashMap();
+++!     private List               sortingColumns    = new ArrayList();
+++  
+++      public TableSorter() {
+++          this.mouseListener      = new MouseHandler();
+++--- 112,124 ----
+++              return o1.toString().compareTo(o2.toString());
+++          }
+++      };
+++!     public Row[]              viewToModel;
+++!     public int[]              modelToView;
+++!     public JTableHeader       tableHeader;
+++!     public MouseListener      mouseListener;
+++!     public TableModelListener tableModelListener;
+++!     public Map                columnComparators = new HashMap();
+++!     public List               sortingColumns    = new ArrayList();
+++  
+++      public TableSorter() {
+++          this.mouseListener      = new MouseHandler();
+++***************
+++*** 140,146 ****
+++          setTableModel(tableModel);
+++      }
+++  
+++!     private void clearSortingState() {
+++          viewToModel = null;
+++          modelToView = null;
+++      }
+++--- 140,146 ----
+++          setTableModel(tableModel);
+++      }
+++  
+++!     public void clearSortingState() {
+++          viewToModel = null;
+++          modelToView = null;
+++      }
+++***************
+++*** 198,204 ****
+++          return sortingColumns.size() != 0;
+++      }
+++  
+++!     private Directive getDirective(int column) {
+++  
+++          for (int i = 0; i < sortingColumns.size(); i++) {
+++              Directive directive = (Directive) sortingColumns.get(i);
+++--- 198,204 ----
+++          return sortingColumns.size() != 0;
+++      }
+++  
+++!     public Directive getDirective(int column) {
+++  
+++          for (int i = 0; i < sortingColumns.size(); i++) {
+++              Directive directive = (Directive) sortingColumns.get(i);
+++***************
+++*** 215,221 ****
+++          return getDirective(column).direction;
+++      }
+++  
+++!     private void sortingStatusChanged() {
+++  
+++          clearSortingState();
+++          fireTableDataChanged();
+++--- 215,221 ----
+++          return getDirective(column).direction;
+++      }
+++  
+++!     public void sortingStatusChanged() {
+++  
+++          clearSortingState();
+++          fireTableDataChanged();
+++***************
+++*** 240,246 ****
+++          sortingStatusChanged();
+++      }
+++  
+++!     protected Icon getHeaderRendererIcon(int column, int size) {
+++  
+++          Directive directive = getDirective(column);
+++  
+++--- 240,246 ----
+++          sortingStatusChanged();
+++      }
+++  
+++!     public Icon getHeaderRendererIcon(int column, int size) {
+++  
+++          Directive directive = getDirective(column);
+++  
+++***************
+++*** 252,258 ****
+++                           sortingColumns.indexOf(directive));
+++      }
+++  
+++!     private void cancelSorting() {
+++          sortingColumns.clear();
+++          sortingStatusChanged();
+++      }
+++--- 252,258 ----
+++                           sortingColumns.indexOf(directive));
+++      }
+++  
+++!     public void cancelSorting() {
+++          sortingColumns.clear();
+++          sortingStatusChanged();
+++      }
+++***************
+++*** 266,272 ****
+++          }
+++      }
+++  
+++!     protected Comparator getComparator(int column) {
+++  
+++          Class columnType = tableModel.getColumnClass(column);
+++          Comparator comparator =
+++--- 266,272 ----
+++          }
+++      }
+++  
+++!     public Comparator getComparator(int column) {
+++  
+++          Class columnType = tableModel.getColumnClass(column);
+++          Comparator comparator =
+++***************
+++*** 283,289 ****
+++          return LEXICAL_COMPARATOR;
+++      }
+++  
+++!     private Row[] getViewToModel() {
+++  
+++          if (viewToModel == null) {
+++              int tableModelRowCount = tableModel.getRowCount();
+++--- 283,289 ----
+++          return LEXICAL_COMPARATOR;
+++      }
+++  
+++!     public Row[] getViewToModel() {
+++  
+++          if (viewToModel == null) {
+++              int tableModelRowCount = tableModel.getRowCount();
+++***************
+++*** 306,312 ****
+++          return getViewToModel()[viewIndex].modelIndex;
+++      }
+++  
+++!     private int[] getModelToView() {
+++  
+++          if (modelToView == null) {
+++              int n = getViewToModel().length;
+++--- 306,312 ----
+++          return getViewToModel()[viewIndex].modelIndex;
+++      }
+++  
+++!     public int[] getModelToView() {
+++  
+++          if (modelToView == null) {
+++              int n = getViewToModel().length;
+++***************
+++*** 353,361 ****
+++      }
+++  
+++      // Helper classes
+++!     private class Row implements Comparable {
+++  
+++!         private int modelIndex;
+++  
+++          public Row(int index) {
+++              this.modelIndex = index;
+++--- 353,361 ----
+++      }
+++  
+++      // Helper classes
+++!     public class Row implements Comparable {
+++  
+++!         public int modelIndex;
+++  
+++          public Row(int index) {
+++              this.modelIndex = index;
+++***************
+++*** 394,400 ****
+++          }
+++      }
+++  
+++!     private class TableModelHandler implements TableModelListener {
+++  
+++          public void tableChanged(TableModelEvent e) {
+++  
+++--- 394,400 ----
+++          }
+++      }
+++  
+++!     public class TableModelHandler implements TableModelListener {
+++  
+++          public void tableChanged(TableModelEvent e) {
+++  
+++***************
+++*** 457,463 ****
+++          }
+++      }
+++  
+++!     private class MouseHandler extends MouseAdapter {
+++  
+++          public void mouseClicked(MouseEvent e) {
+++  
+++--- 457,463 ----
+++          }
+++      }
+++  
+++!     public class MouseHandler extends MouseAdapter {
+++  
+++          public void mouseClicked(MouseEvent e) {
+++  
+++***************
+++*** 484,494 ****
+++          }
+++      }
+++  
+++!     private static class Arrow implements Icon {
+++  
+++!         private boolean descending;
+++!         private int     size;
+++!         private int     priority;
+++  
+++          public Arrow(boolean descending, int size, int priority) {
+++  
+++--- 484,494 ----
+++          }
+++      }
+++  
+++!     public static class Arrow implements Icon {
+++  
+++!         public boolean descending;
+++!         public int     size;
+++!         public int     priority;
+++  
+++          public Arrow(boolean descending, int size, int priority) {
+++  
+++***************
+++*** 548,556 ****
+++          }
+++      }
+++  
+++!     private class SortableHeaderRenderer implements TableCellRenderer {
+++  
+++!         private TableCellRenderer tableCellRenderer;
+++  
+++          public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
+++              this.tableCellRenderer = tableCellRenderer;
+++--- 548,556 ----
+++          }
+++      }
+++  
+++!     public class SortableHeaderRenderer implements TableCellRenderer {
+++  
+++!         public TableCellRenderer tableCellRenderer;
+++  
+++          public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
+++              this.tableCellRenderer = tableCellRenderer;
+++***************
+++*** 579,588 ****
+++          }
+++      }
+++  
+++!     private static class Directive {
+++  
+++!         private int column;
+++!         private int direction;
+++  
+++          public Directive(int column, int direction) {
+++              this.column    = column;
+++--- 579,588 ----
+++          }
+++      }
+++  
+++!     public static class Directive {
+++  
+++!         public int column;
+++!         public int direction;
+++  
+++          public Directive(int column, int direction) {
+++              this.column    = column;
+++diff -crN hsqldb-old/src/org/hsqldb/util/TransferCommon.java hsqldb/src/org/hsqldb/util/TransferCommon.java
+++*** hsqldb-old/src/org/hsqldb/util/TransferCommon.java	2006-07-27 22:04:30.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/TransferCommon.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 155,159 ****
+++          return (tTable);
+++      }
+++  
+++!     private TransferCommon() {}
+++  }
+++--- 155,159 ----
+++          return (tTable);
+++      }
+++  
+++!     public TransferCommon() {}
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/util/TransferDb.java hsqldb/src/org/hsqldb/util/TransferDb.java
+++*** hsqldb-old/src/org/hsqldb/util/TransferDb.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/TransferDb.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 55,61 ****
+++  
+++      Connection          conn;
+++      DatabaseMetaData    meta;
+++!     protected Statement srcStatement = null;
+++  
+++      TransferDb(Connection c, Traceable t) throws DataAccessPointException {
+++  
+++--- 55,61 ----
+++  
+++      Connection          conn;
+++      DatabaseMetaData    meta;
+++!     public Statement srcStatement = null;
+++  
+++      TransferDb(Connection c, Traceable t) throws DataAccessPointException {
+++  
+++***************
+++*** 243,249 ****
+++      }
+++  
+++  /*
+++!     private void transferRow(TransferResultSet r,
+++                               PreparedStatement p)
+++                               throws DataAccessPointException, SQLException {
+++          // TODO
+++--- 243,249 ----
+++      }
+++  
+++  /*
+++!     public void transferRow(TransferResultSet r,
+++                               PreparedStatement p)
+++                               throws DataAccessPointException, SQLException {
+++          // TODO
+++***************
+++*** 904,910 ****
+++       *
+++       * @throws SQLException
+++       */
+++!     private void transferRow(TransferResultSet r, PreparedStatement p,
+++                               int len,
+++                               int[] types)
+++                               throws DataAccessPointException, SQLException {
+++--- 904,910 ----
+++       *
+++       * @throws SQLException
+++       */
+++!     public void transferRow(TransferResultSet r, PreparedStatement p,
+++                               int len,
+++                               int[] types)
+++                               throws DataAccessPointException, SQLException {
+++diff -crN hsqldb-old/src/org/hsqldb/util/TransferHelper.java hsqldb/src/org/hsqldb/util/TransferHelper.java
+++*** hsqldb-old/src/org/hsqldb/util/TransferHelper.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/TransferHelper.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 44,54 ****
+++   */
+++  class TransferHelper {
+++  
+++!     protected TransferDb db;
+++!     protected Traceable  tracer;
+++!     protected String     sSchema;
+++!     protected JDBCTypes  JDBCT;
+++!     private String       quote;
+++  
+++      TransferHelper() {
+++  
+++--- 44,54 ----
+++   */
+++  class TransferHelper {
+++  
+++!     public TransferDb db;
+++!     public Traceable  tracer;
+++!     public String     sSchema;
+++!     public JDBCTypes  JDBCT;
+++!     public String       quote;
+++  
+++      TransferHelper() {
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/util/Transfer.java hsqldb/src/org/hsqldb/util/Transfer.java
+++*** hsqldb-old/src/org/hsqldb/util/Transfer.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/Transfer.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 204,210 ****
+++          work(arg);
+++      }
+++  
+++!     private boolean CatalogToSelect() {
+++  
+++          Vector result = null;
+++  
+++--- 204,210 ----
+++          work(arg);
+++      }
+++  
+++!     public boolean CatalogToSelect() {
+++  
+++          Vector result = null;
+++  
+++***************
+++*** 284,290 ****
+++          return (lTable.getItemCount() > 0);
+++      }
+++  
+++!     private boolean SchemaToSelect() {
+++  
+++          Vector result = null;
+++  
+++--- 284,290 ----
+++          return (lTable.getItemCount() > 0);
+++      }
+++  
+++!     public boolean SchemaToSelect() {
+++  
+++          Vector result = null;
+++  
+++***************
+++*** 491,497 ****
+++          return;
+++      }
+++  
+++!     private void RefreshMainDisplay() {
+++  
+++          lTable.removeAll();
+++          lTable.repaint();
+++--- 491,497 ----
+++          return;
+++      }
+++  
+++!     public void RefreshMainDisplay() {
+++  
+++          lTable.removeAll();
+++          lTable.repaint();
+++***************
+++*** 531,537 ****
+++       * @param f
+++       * @param m
+++       */
+++!     private void addMenuItems(Menu f, String[] m) {
+++  
+++          for (int i = 0; i < m.length; i++) {
+++              if (m[i].equals("-")) {
+++--- 531,537 ----
+++       * @param f
+++       * @param m
+++       */
+++!     public void addMenuItems(Menu f, String[] m) {
+++  
+++          for (int i = 0; i < m.length; i++) {
+++              if (m[i].equals("-")) {
+++***************
+++*** 586,592 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void saveTable() {
+++  
+++          if (tCurrent == null) {
+++              return;
+++--- 586,592 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void saveTable() {
+++  
+++          if (tCurrent == null) {
+++              return;
+++***************
+++*** 644,650 ****
+++       *
+++       * @param t
+++       */
+++!     private void displayTable(TransferTable t) {
+++  
+++          tCurrent = t;
+++  
+++--- 644,650 ----
+++       *
+++       * @param t
+++       */
+++!     public void displayTable(TransferTable t) {
+++  
+++          tCurrent = t;
+++  
+++***************
+++*** 680,686 ****
+++       *
+++       * @param and
+++       */
+++!     private void updateEnabled(boolean and) {
+++  
+++          boolean b = cTransfer.getState();
+++  
+++--- 680,686 ----
+++       *
+++       * @param and
+++       */
+++!     public void updateEnabled(boolean and) {
+++  
+++          boolean b = cTransfer.getState();
+++  
+++***************
+++*** 712,718 ****
+++      /**
+++       * Method ProcessNextStep
+++       */
+++!     private void ProcessNextStep() {
+++  
+++          switch (iSelectionStep) {
+++  
+++--- 712,718 ----
+++      /**
+++       * Method ProcessNextStep
+++       */
+++!     public void ProcessNextStep() {
+++  
+++          switch (iSelectionStep) {
+++  
+++***************
+++*** 902,908 ****
+++       */
+++      public void windowClosed(WindowEvent e) {}
+++  
+++!     private void cleanup() {
+++  
+++          try {
+++              if (sourceDb != null) {
+++--- 902,908 ----
+++       */
+++      public void windowClosed(WindowEvent e) {}
+++  
+++!     public void cleanup() {
+++  
+++          try {
+++              if (sourceDb != null) {
+++***************
+++*** 958,964 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void initGUI() {
+++  
+++          Font fFont = new Font("Dialog", Font.PLAIN, 12);
+++  
+++--- 958,964 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void initGUI() {
+++  
+++          Font fFont = new Font("Dialog", Font.PLAIN, 12);
+++  
+++***************
+++*** 1120,1126 ****
+++       *
+++       * @return
+++       */
+++!     private Panel createBorderPanel(Component center) {
+++  
+++          Panel p = new Panel();
+++  
+++--- 1120,1126 ----
+++       *
+++       * @return
+++       */
+++!     public Panel createBorderPanel(Component center) {
+++  
+++          Panel p = new Panel();
+++  
+++***************
+++*** 1143,1149 ****
+++       *
+++       * @return
+++       */
+++!     private Label createLabel(String s) {
+++  
+++          Label l = new Label(s);
+++  
+++--- 1143,1149 ----
+++       *
+++       * @return
+++       */
+++!     public Label createLabel(String s) {
+++  
+++          Label l = new Label(s);
+++  
+++***************
+++*** 1152,1163 ****
+++          return l;
+++      }
+++  
+++!     private void SavePrefs(String f) {
+++          saveTable();
+++          TransferCommon.savePrefs(f, sourceDb, targetDb, this, tTable);
+++      }
+++  
+++!     private void LoadPrefs(String f) {
+++  
+++          TransferTable t;
+++  
+++--- 1152,1163 ----
+++          return l;
+++      }
+++  
+++!     public void SavePrefs(String f) {
+++          saveTable();
+++          TransferCommon.savePrefs(f, sourceDb, targetDb, this, tTable);
+++      }
+++  
+++!     public void LoadPrefs(String f) {
+++  
+++          TransferTable t;
+++  
+++***************
+++*** 1208,1214 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void transfer() {
+++  
+++          saveTable();
+++          updateEnabled(false);
+++--- 1208,1214 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void transfer() {
+++  
+++          saveTable();
+++          updateEnabled(false);
+++***************
+++*** 1271,1277 ****
+++          System.gc();
+++      }
+++  
+++!     protected void Exit() {
+++  
+++          cleanup();
+++          fMain.dispose();
+++--- 1271,1277 ----
+++          System.gc();
+++      }
+++  
+++!     public void Exit() {
+++  
+++          cleanup();
+++          fMain.dispose();
+++diff -crN hsqldb-old/src/org/hsqldb/util/TransferSQLText.java hsqldb/src/org/hsqldb/util/TransferSQLText.java
+++*** hsqldb-old/src/org/hsqldb/util/TransferSQLText.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/TransferSQLText.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 52,60 ****
+++      String              sFileName              = null;
+++      BufferedWriter      WTextWrite             = null;
+++      BufferedReader      WTextRead              = null;
+++!     protected boolean   StructureAlreadyParsed = false;
+++      Hashtable           DbStmts                = null;
+++!     protected JDBCTypes JDBCT                  = null;
+++  
+++      TransferSQLText(String _FileName,
+++                      Traceable t) throws DataAccessPointException {
+++--- 52,60 ----
+++      String              sFileName              = null;
+++      BufferedWriter      WTextWrite             = null;
+++      BufferedReader      WTextRead              = null;
+++!     public boolean   StructureAlreadyParsed = false;
+++      Hashtable           DbStmts                = null;
+++!     public JDBCTypes JDBCT                  = null;
+++  
+++      TransferSQLText(String _FileName,
+++                      Traceable t) throws DataAccessPointException {
+++***************
+++*** 159,165 ****
+++       *
+++       * @throws SQLException
+++       */
+++!     private void transferRow(TransferResultSet r) throws Exception {
+++  
+++          String sLast = "";
+++          int    len   = r.getColumnCount();
+++--- 159,165 ----
+++       *
+++       * @throws SQLException
+++       */
+++!     public void transferRow(TransferResultSet r) throws Exception {
+++  
+++          String sLast = "";
+++          int    len   = r.getColumnCount();
+++diff -crN hsqldb-old/src/org/hsqldb/util/TransferTable.java hsqldb/src/org/hsqldb/util/TransferTable.java
+++*** hsqldb-old/src/org/hsqldb/util/TransferTable.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/TransferTable.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 471,477 ****
+++          }
+++      }
+++  
+++!     private void initTypes() throws SQLException {
+++  
+++          if (hTypes != null) {
+++              return;
+++--- 471,477 ----
+++          }
+++      }
+++  
+++!     public void initTypes() throws SQLException {
+++  
+++          if (hTypes != null) {
+++              return;
+++diff -crN hsqldb-old/src/org/hsqldb/util/Tree.java hsqldb/src/org/hsqldb/util/Tree.java
+++*** hsqldb-old/src/org/hsqldb/util/Tree.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/Tree.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 89,118 ****
+++  class Tree extends Panel {
+++  
+++      // static
+++!     private static Font        fFont;
+++!     private static FontMetrics fMetrics;
+++!     private static int         iRowHeight;
+++!     private static int         iIndentWidth;
+++!     private int                iMaxTextLength;
+++  
+++      // drawing
+++!     private Dimension dMinimum;
+++!     private Graphics  gImage;
+++!     private Image     iImage;
+++  
+++      // height / width
+++!     private int iWidth, iHeight;
+++!     private int iFirstRow;
+++!     private int iTreeWidth, iTreeHeight;
+++!     private int iX, iY;
+++  
+++      // data
+++!     private Vector vData;
+++!     private int    iRowCount;
+++  
+++      // scrolling
+++!     private Scrollbar sbHoriz, sbVert;
+++!     private int       iSbWidth, iSbHeight;
+++  
+++      static {
+++          fFont        = new Font("Dialog", Font.PLAIN, 12);
+++--- 89,118 ----
+++  class Tree extends Panel {
+++  
+++      // static
+++!     public static Font        fFont;
+++!     public static FontMetrics fMetrics;
+++!     public static int         iRowHeight;
+++!     public static int         iIndentWidth;
+++!     public int                iMaxTextLength;
+++  
+++      // drawing
+++!     public Dimension dMinimum;
+++!     public Graphics  gImage;
+++!     public Image     iImage;
+++  
+++      // height / width
+++!     public int iWidth, iHeight;
+++!     public int iFirstRow;
+++!     public int iTreeWidth, iTreeHeight;
+++!     public int iX, iY;
+++  
+++      // data
+++!     public Vector vData;
+++!     public int    iRowCount;
+++  
+++      // scrolling
+++!     public Scrollbar sbHoriz, sbVert;
+++!     public int       iSbWidth, iSbHeight;
+++  
+++      static {
+++          fFont        = new Font("Dialog", Font.PLAIN, 12);
+++***************
+++*** 544,550 ****
+++       *
+++       * @return
+++       */
+++!     private static int getMaxHeight(FontMetrics f) {
+++          return f.getHeight() + 2;
+++      }
+++  }
+++--- 544,550 ----
+++       *
+++       * @return
+++       */
+++!     public static int getMaxHeight(FontMetrics f) {
+++          return f.getHeight() + 2;
+++      }
+++  }
+++diff -crN hsqldb-old/src/org/hsqldb/util/ValidatingResourceBundle.java hsqldb/src/org/hsqldb/util/ValidatingResourceBundle.java
+++*** hsqldb-old/src/org/hsqldb/util/ValidatingResourceBundle.java	2007-10-19 22:16:44.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ValidatingResourceBundle.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 50,57 ****
+++   * See SqltoolRB for an example implementation of this abstract class.
+++   */
+++  abstract public class ValidatingResourceBundle {
+++!     protected boolean validated = false;
+++!     abstract protected Map getKeyIdToString();
+++  
+++      public static final int THROW_BEHAVIOR =
+++              RefCapablePropertyResourceBundle.THROW_BEHAVIOR;
+++--- 50,57 ----
+++   * See SqltoolRB for an example implementation of this abstract class.
+++   */
+++  abstract public class ValidatingResourceBundle {
+++!     public boolean validated = false;
+++!     abstract public Map getKeyIdToString();
+++  
+++      public static final int THROW_BEHAVIOR =
+++              RefCapablePropertyResourceBundle.THROW_BEHAVIOR;
+++***************
+++*** 63,71 ****
+++       * details of RefCapablePropertyResourceBundle (and they won't need
+++       * to code that God-awfully-long class name). */
+++  
+++!     protected RefCapablePropertyResourceBundle wrappedRCPRB;
+++  
+++!     protected ValidatingResourceBundle(String baseName) {
+++          wrappedRCPRB = RefCapablePropertyResourceBundle.getBundle(baseName,
+++                  getClass().getClassLoader());
+++      }
+++--- 63,71 ----
+++       * details of RefCapablePropertyResourceBundle (and they won't need
+++       * to code that God-awfully-long class name). */
+++  
+++!     public RefCapablePropertyResourceBundle wrappedRCPRB;
+++  
+++!     public ValidatingResourceBundle(String baseName) {
+++          wrappedRCPRB = RefCapablePropertyResourceBundle.getBundle(baseName,
+++                  getClass().getClassLoader());
+++      }
+++***************
+++*** 98,105 ****
+++                  missingPropertyBehavior, missingPosValueBehavior);
+++      }
+++  
+++!     private int missingPropertyBehavior = THROW_BEHAVIOR;
+++!     private int missingPosValueBehavior = THROW_BEHAVIOR;
+++  
+++      /**
+++       * Set behavior for get*String*() method when a referred-to
+++--- 98,105 ----
+++                  missingPropertyBehavior, missingPosValueBehavior);
+++      }
+++  
+++!     public int missingPropertyBehavior = THROW_BEHAVIOR;
+++!     public int missingPosValueBehavior = THROW_BEHAVIOR;
+++  
+++      /**
+++       * Set behavior for get*String*() method when a referred-to
+++diff -crN hsqldb-old/src/org/hsqldb/util/ZaurusChoice.java hsqldb/src/org/hsqldb/util/ZaurusChoice.java
+++*** hsqldb-old/src/org/hsqldb/util/ZaurusChoice.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ZaurusChoice.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 52,58 ****
+++  // getContent() answers the value !!
+++  public class ZaurusChoice extends Choice implements ZaurusComponent {
+++  
+++!     private static final int MaxLenInZChoice = 15;
+++      Vector                   values;
+++      int                      countChanges;
+++  
+++--- 52,58 ----
+++  // getContent() answers the value !!
+++  public class ZaurusChoice extends Choice implements ZaurusComponent {
+++  
+++!     public static final int MaxLenInZChoice = 15;
+++      Vector                   values;
+++      int                      countChanges;
+++  
+++***************
+++*** 118,124 ****
+++      }
+++  
+++      // find for a given value the index in values
+++!     private int findValue(String s) {
+++  
+++          for (int i = 0; i < values.size(); i++) {
+++              if (s.equals(values.elementAt(i))) {
+++--- 118,124 ----
+++      }
+++  
+++      // find for a given value the index in values
+++!     public int findValue(String s) {
+++  
+++          for (int i = 0; i < values.size(); i++) {
+++              if (s.equals(values.elementAt(i))) {
+++diff -crN hsqldb-old/src/org/hsqldb/util/ZaurusConnectionDialog.java hsqldb/src/org/hsqldb/util/ZaurusConnectionDialog.java
+++*** hsqldb-old/src/org/hsqldb/util/ZaurusConnectionDialog.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ZaurusConnectionDialog.java	2007-11-04 00:13:46.000000000 +0100
+++***************
+++*** 251,257 ****
+++       *
+++       *
+++       */
+++!     protected void finishCreate() {
+++  
+++          try {
+++              mConnection = createConnection(mDriver.getText(), mURL.getText(),
+++--- 251,257 ----
+++       *
+++       *
+++       */
+++!     public void finishCreate() {
+++  
+++          try {
+++              mConnection = createConnection(mDriver.getText(), mURL.getText(),
+++diff -crN hsqldb-old/src/org/hsqldb/util/ZaurusDatabaseManager.java hsqldb/src/org/hsqldb/util/ZaurusDatabaseManager.java
+++*** hsqldb-old/src/org/hsqldb/util/ZaurusDatabaseManager.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ZaurusDatabaseManager.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 247,253 ****
+++          m.connect(c);
+++      }
+++  
+++!     private static void showUsage() {
+++  
+++          System.out.println(
+++              "Usage: java org.hsqldb.util.ZaurusDatabaseManager [options]");
+++--- 247,253 ----
+++          m.connect(c);
+++      }
+++  
+++!     public static void showUsage() {
+++  
+++          System.out.println(
+++              "Usage: java org.hsqldb.util.ZaurusDatabaseManager [options]");
+++***************
+++*** 587,593 ****
+++       * Method declaration
+++       *
+++       */
+++!     private void initGUI() {
+++  
+++          Panel pQuery   = new Panel();
+++          Panel pCommand = new Panel();
+++--- 587,593 ----
+++       * Method declaration
+++       *
+++       */
+++!     public void initGUI() {
+++  
+++          Panel pQuery   = new Panel();
+++          Panel pCommand = new Panel();
+++***************
+++*** 663,669 ****
+++          fMain.pack();
+++      }
+++  
+++!     protected void refreshTree() {
+++          super.refreshTree();
+++          eEditor.refresh(cConn);
+++      }
+++--- 663,669 ----
+++          fMain.pack();
+++      }
+++  
+++!     public void refreshTree() {
+++          super.refreshTree();
+++          eEditor.refresh(cConn);
+++      }
+++diff -crN hsqldb-old/src/org/hsqldb/util/ZaurusEditor.java hsqldb/src/org/hsqldb/util/ZaurusEditor.java
+++*** hsqldb-old/src/org/hsqldb/util/ZaurusEditor.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ZaurusEditor.java	2007-11-04 00:14:06.000000000 +0100
+++***************
+++*** 401,407 ****
+++          }
+++      }
+++  
+++!     private void initGUI() {
+++  
+++          // without connection there are no tables
+++          // vAllTables is a local variable with all table names in the database
+++--- 401,407 ----
+++          }
+++      }
+++  
+++!     public void initGUI() {
+++  
+++          // without connection there are no tables
+++          // vAllTables is a local variable with all table names in the database
+++***************
+++*** 565,575 ****
+++  
+++      // process the buttons events
+++      // *******************************************************
+++!     // private methods
+++      // *******************************************************
+++      // read all table names over the current database connection
+++      // exclude tables without primary key
+++!     private Vector getAllTables() {
+++  
+++          Vector result = new Vector(20);
+++  
+++--- 565,575 ----
+++  
+++      // process the buttons events
+++      // *******************************************************
+++!     // public methods
+++      // *******************************************************
+++      // read all table names over the current database connection
+++      // exclude tables without primary key
+++!     public Vector getAllTables() {
+++  
+++          Vector result = new Vector(20);
+++  
+++***************
+++*** 608,614 ****
+++  
+++      // determine the index of the choosen table in Vector vHoldTableNames
+++      // if the table name is not in vHoldTableNames, create a ZaurusTableForm for it
+++!     private int getChoosenTableIndex() {
+++  
+++          String tableName = cTables.getSelectedItem();
+++  
+++--- 608,614 ----
+++  
+++      // determine the index of the choosen table in Vector vHoldTableNames
+++      // if the table name is not in vHoldTableNames, create a ZaurusTableForm for it
+++!     public int getChoosenTableIndex() {
+++  
+++          String tableName = cTables.getSelectedItem();
+++  
+++***************
+++*** 633,639 ****
+++  
+++      // determine the index of the given tableName in Vector vHoldTableNames
+++      // if the name is not in vHoldTableNames, answer -1
+++!     private int getTableIndex(String tableName) {
+++  
+++          int index;
+++  
+++--- 633,639 ----
+++  
+++      // determine the index of the given tableName in Vector vHoldTableNames
+++      // if the name is not in vHoldTableNames, answer -1
+++!     public int getTableIndex(String tableName) {
+++  
+++          int index;
+++  
+++***************
+++*** 650,656 ****
+++      }
+++  
+++      // convert the search words in the textfield to an array of words
+++!     private String[] getWords() {
+++  
+++          StringTokenizer tokenizer =
+++              new StringTokenizer(fSearchWords.getText());
+++--- 650,656 ----
+++      }
+++  
+++      // convert the search words in the textfield to an array of words
+++!     public String[] getWords() {
+++  
+++          StringTokenizer tokenizer =
+++              new StringTokenizer(fSearchWords.getText());
+++***************
+++*** 665,671 ****
+++      }
+++  
+++      // init the three boxes for buttons
+++!     private void initButtons() {
+++  
+++          // the buttons for the search form
+++          bSearchRow = new Button("Search Rows");
+++--- 665,671 ----
+++      }
+++  
+++      // init the three boxes for buttons
+++!     public void initButtons() {
+++  
+++          // the buttons for the search form
+++          bSearchRow = new Button("Search Rows");
+++***************
+++*** 722,728 ****
+++  
+++      // check whether the last button pressed was delete
+++      // if so, clear status line and reset the flag
+++!     private void resetLastButtonDelete() {
+++  
+++          if (lastButtonDelete) {
+++              ZaurusEditor.printStatus("");
+++--- 722,728 ----
+++  
+++      // check whether the last button pressed was delete
+++      // if so, clear status line and reset the flag
+++!     public void resetLastButtonDelete() {
+++  
+++          if (lastButtonDelete) {
+++              ZaurusEditor.printStatus("");
+++***************
+++*** 732,738 ****
+++      }
+++  
+++      // reset  everything after changes in the database
+++!     private void resetTableForms() {
+++  
+++          lForm.show(pForm, "search");
+++          lButton.show(pButton, "search");
+++--- 732,738 ----
+++      }
+++  
+++      // reset  everything after changes in the database
+++!     public void resetTableForms() {
+++  
+++          lForm.show(pForm, "search");
+++          lButton.show(pButton, "search");
+++diff -crN hsqldb-old/src/org/hsqldb/util/ZaurusTableForm.java hsqldb/src/org/hsqldb/util/ZaurusTableForm.java
+++*** hsqldb-old/src/org/hsqldb/util/ZaurusTableForm.java	2005-10-23 21:25:14.000000000 +0200
+++--- hsqldb/src/org/hsqldb/util/ZaurusTableForm.java	2007-11-04 00:14:07.000000000 +0100
+++***************
+++*** 542,551 ****
+++      }
+++  
+++      // ******************************************************
+++!     // private methods
+++      // ******************************************************
+++      // set all fields for primary keys to not editable
+++!     private void disablePKFields() {
+++  
+++          for (int i = 0; i < primaryKeys.length; i++) {
+++              komponente[pkColIndex[i]].setEditable(false);
+++--- 542,551 ----
+++      }
+++  
+++      // ******************************************************
+++!     // public methods
+++      // ******************************************************
+++      // set all fields for primary keys to not editable
+++!     public void disablePKFields() {
+++  
+++          for (int i = 0; i < primaryKeys.length; i++) {
+++              komponente[pkColIndex[i]].setEditable(false);
+++***************
+++*** 555,561 ****
+++      // fetch all values from a table and a column
+++      // fill the ZaurusChoice zc with the row values for the Choice
+++      // and the column values as values
+++!     private void fillZChoice(ZaurusChoice zc, String tab, String col) {
+++  
+++          try {
+++              if (cConn == null) {
+++--- 555,561 ----
+++      // fetch all values from a table and a column
+++      // fill the ZaurusChoice zc with the row values for the Choice
+++      // and the column values as values
+++!     public void fillZChoice(ZaurusChoice zc, String tab, String col) {
+++  
+++          try {
+++              if (cConn == null) {
+++***************
+++*** 590,596 ****
+++      }
+++  
+++      // fetch all column names
+++!     private void fetchColumns() {
+++  
+++          Vector temp     = new Vector(20);
+++          Vector tempType = new Vector(20);
+++--- 590,596 ----
+++      }
+++  
+++      // fetch all column names
+++!     public void fetchColumns() {
+++  
+++          Vector temp     = new Vector(20);
+++          Vector tempType = new Vector(20);
+++***************
+++*** 628,634 ****
+++      }
+++  
+++      // fetch the imported keys i.e. columns which reference to foreign keys in other tables
+++!     private void fetchImportedKeys() {
+++  
+++          Vector imKeys      = new Vector(20);
+++          Vector imKeyNames  = null;
+++--- 628,634 ----
+++      }
+++  
+++      // fetch the imported keys i.e. columns which reference to foreign keys in other tables
+++!     public void fetchImportedKeys() {
+++  
+++          Vector imKeys      = new Vector(20);
+++          Vector imKeyNames  = null;
+++***************
+++*** 714,720 ****
+++          }
+++      }
+++  
+++!     private void fetchPrimaryKeys() {
+++  
+++          Vector temp = new Vector(20);
+++  
+++--- 714,720 ----
+++          }
+++      }
+++  
+++!     public void fetchPrimaryKeys() {
+++  
+++          Vector temp = new Vector(20);
+++  
+++***************
+++*** 749,755 ****
+++          }    // end of for (int i=0; i<primaryKeys.length; i++)
+++      }
+++  
+++!     private String generatePKWhere() {
+++  
+++          String stmtString = " WHERE ";
+++  
+++--- 749,755 ----
+++          }    // end of for (int i=0; i<primaryKeys.length; i++)
+++      }
+++  
+++!     public String generatePKWhere() {
+++  
+++          String stmtString = " WHERE ";
+++  
+++***************
+++*** 765,771 ****
+++      }
+++  
+++      // generate the Where-condition for the words
+++!     private String generateWhere(String[] words, boolean allWords,
+++                                   boolean ignoreCase, boolean noMatchWhole) {
+++  
+++          String result = "";
+++--- 765,771 ----
+++      }
+++  
+++      // generate the Where-condition for the words
+++!     public String generateWhere(String[] words, boolean allWords,
+++                                   boolean ignoreCase, boolean noMatchWhole) {
+++  
+++          String result = "";
+++***************
+++*** 822,828 ****
+++      }
+++  
+++      // answer the index of the column named name in the actual table
+++!     private int getColIndex(String name) {
+++  
+++          for (int i = 0; i < columns.length; i++) {
+++              if (name.equals(columns[i])) {
+++--- 822,828 ----
+++      }
+++  
+++      // answer the index of the column named name in the actual table
+++!     public int getColIndex(String name) {
+++  
+++          for (int i = 0; i < columns.length; i++) {
+++              if (name.equals(columns[i])) {
+++***************
+++*** 834,840 ****
+++      }
+++  
+++      // answer the index of the column named colName in the table tabName
+++!     private int getColIndex(String colName, String tabName) {
+++  
+++          int ordPos = 0;
+++  
+++--- 834,840 ----
+++      }
+++  
+++      // answer the index of the column named colName in the table tabName
+++!     public int getColIndex(String colName, String tabName) {
+++  
+++          int ordPos = 0;
+++  
+++***************
+++*** 864,870 ****
+++  
+++      // answer the index of the constraint for the column index
+++      // answer -1, if the column is not part of any constraint
+++!     private int getConstraintIndex(int colIndex) {
+++  
+++          for (int i = 0; i < imColIndex.length; i++) {
+++              for (int j = 0; j < imColIndex[i].length; j++) {
+++--- 864,870 ----
+++  
+++      // answer the index of the constraint for the column index
+++      // answer -1, if the column is not part of any constraint
+++!     public int getConstraintIndex(int colIndex) {
+++  
+++          for (int i = 0; i < imColIndex.length; i++) {
+++              for (int j = 0; j < imColIndex[i].length; j++) {
+++***************
+++*** 877,883 ****
+++          return -1;
+++      }
+++  
+++!     private void initGUI() {
+++  
+++          Panel pEntry = new Panel();
+++  
+++--- 877,883 ----
+++          return -1;
+++      }
+++  
+++!     public void initGUI() {
+++  
+++          Panel pEntry = new Panel();
+++  
+++***************
+++*** 940,946 ****
+++      }
+++  
+++      // get and show the values of the actual row in the GUI
+++!     private void showAktRow() {
+++  
+++          try {
+++              pStmt.clearParameters();
+++--- 940,946 ----
+++      }
+++  
+++      // get and show the values of the actual row in the GUI
+++!     public void showAktRow() {
+++  
+++          try {
+++              pStmt.clearParameters();
+++diff -crN hsqldb-old/src/org/hsqldb/View.java hsqldb/src/org/hsqldb/View.java
+++*** hsqldb-old/src/org/hsqldb/View.java	2007-07-23 20:42:26.000000000 +0200
+++--- hsqldb/src/org/hsqldb/View.java	2007-11-04 00:14:09.000000000 +0100
+++***************
+++*** 50,57 ****
+++  
+++      Select             viewSelect;
+++      SubQuery           viewSubQuery;
+++!     private String     statement;
+++!     private HsqlName[] colList;
+++  
+++      /** schema at the time of compilation */
+++      HsqlName compileTimeSchema;
+++--- 50,57 ----
+++  
+++      Select             viewSelect;
+++      SubQuery           viewSubQuery;
+++!     public String     statement;
+++!     public HsqlName[] colList;
+++  
+++      /** schema at the time of compilation */
+++      HsqlName compileTimeSchema;
+++***************
+++*** 159,167 ****
+++      }
+++  
+++      /**
+++!      *  is a private helper for replaceAsterisksInStatement, to avoid some code duplication
+++       */
+++!     private void collectAsteriskPos(final Select select,
+++                                      HsqlArrayList asteriskPositions) {
+++  
+++          if (select.asteriskPositions == null) {
+++--- 159,167 ----
+++      }
+++  
+++      /**
+++!      *  is a public helper for replaceAsterisksInStatement, to avoid some code duplication
+++       */
+++!     public void collectAsteriskPos(final Select select,
+++                                      HsqlArrayList asteriskPositions) {
+++  
+++          if (select.asteriskPositions == null) {
+++***************
+++*** 184,190 ****
+++       *  which reflects the structure of the underlying tables at the *time of the definition
+++       *  of the view.
+++       */
+++!     private void replaceAsterisksInStatement() {
+++  
+++          HsqlArrayList asteriskPositions = new HsqlArrayList();
+++  
+++--- 184,190 ----
+++       *  which reflects the structure of the underlying tables at the *time of the definition
+++       *  of the view.
+++       */
+++!     public void replaceAsterisksInStatement() {
+++  
+++          HsqlArrayList asteriskPositions = new HsqlArrayList();
+++  
+++diff -crN hsqldb-old/src/org/hsqldb/WebServerConnection.java hsqldb/src/org/hsqldb/WebServerConnection.java
+++*** hsqldb-old/src/org/hsqldb/WebServerConnection.java	2006-07-21 15:39:56.000000000 +0200
+++--- hsqldb/src/org/hsqldb/WebServerConnection.java	2007-11-04 00:14:08.000000000 +0100
+++***************
+++*** 76,95 ****
+++  class WebServerConnection implements Runnable {
+++  
+++      static final String         ENCODING = "8859_1";
+++!     private Socket              socket;
+++!     private WebServer           server;
+++!     private static final int    REQUEST_TYPE_BAD  = 0;
+++!     private static final int    REQUEST_TYPE_GET  = 1;
+++!     private static final int    REQUEST_TYPE_HEAD = 2;
+++!     private static final int    REQUEST_TYPE_POST = 3;
+++!     private static final String HEADER_OK         = "HTTP/1.0 200 OK";
+++!     private static final String HEADER_BAD_REQUEST =
+++          "HTTP/1.0 400 Bad Request";
+++!     private static final String HEADER_NOT_FOUND = "HTTP/1.0 404 Not Found";
+++!     private static final String HEADER_FORBIDDEN = "HTTP/1.0 403 Forbidden";
+++      static final int            BUFFER_SIZE      = 256;
+++!     private RowOutputBinary     rowOut = new RowOutputBinary(BUFFER_SIZE);
+++!     private RowInputBinary      rowIn            = new RowInputBinary(rowOut);
+++  
+++      //
+++      static final byte[] BYTES_GET        = "GET".getBytes();
+++--- 76,95 ----
+++  class WebServerConnection implements Runnable {
+++  
+++      static final String         ENCODING = "8859_1";
+++!     public Socket              socket;
+++!     public WebServer           server;
+++!     public static final int    REQUEST_TYPE_BAD  = 0;
+++!     public static final int    REQUEST_TYPE_GET  = 1;
+++!     public static final int    REQUEST_TYPE_HEAD = 2;
+++!     public static final int    REQUEST_TYPE_POST = 3;
+++!     public static final String HEADER_OK         = "HTTP/1.0 200 OK";
+++!     public static final String HEADER_BAD_REQUEST =
+++          "HTTP/1.0 400 Bad Request";
+++!     public static final String HEADER_NOT_FOUND = "HTTP/1.0 404 Not Found";
+++!     public static final String HEADER_FORBIDDEN = "HTTP/1.0 403 Forbidden";
+++      static final int            BUFFER_SIZE      = 256;
+++!     public RowOutputBinary     rowOut = new RowOutputBinary(BUFFER_SIZE);
+++!     public RowInputBinary      rowIn            = new RowInputBinary(rowOut);
+++  
+++      //
+++      static final byte[] BYTES_GET        = "GET".getBytes();
+++***************
+++*** 101,107 ****
+++      };
+++  
+++      // default mime type mappings
+++!     private static final int hnd_content_types =
+++          BundleHandler.getBundleHandle("content-types", null);
+++  
+++      /**
+++--- 101,107 ----
+++      };
+++  
+++      // default mime type mappings
+++!     public static final int hnd_content_types =
+++          BundleHandler.getBundleHandle("content-types", null);
+++  
+++      /**
+++***************
+++*** 125,131 ****
+++       * @return a best-guess mime-type string using the file extension
+++       *      of the name argument.
+++       */
+++!     private String getMimeTypeString(String name) {
+++  
+++          int    pos;
+++          String key;
+++--- 125,131 ----
+++       * @return a best-guess mime-type string using the file extension
+++       *      of the name argument.
+++       */
+++!     public String getMimeTypeString(String name) {
+++  
+++          int    pos;
+++          String key;
+++***************
+++*** 240,246 ****
+++       * POST is used only for database access. So we can assume the strings
+++       * are those generated by HTTPClientConnection
+++       */
+++!     private void processPost(InputStream inStream,
+++                               String name) throws HsqlException, IOException {
+++  
+++          // fredt - parsing in this block is not actually necessary
+++--- 240,246 ----
+++       * POST is used only for database access. So we can assume the strings
+++       * are those generated by HTTPClientConnection
+++       */
+++!     public void processPost(InputStream inStream,
+++                               String name) throws HsqlException, IOException {
+++  
+++          // fredt - parsing in this block is not actually necessary
+++***************
+++*** 344,350 ****
+++       * @param  name the name of the content to get
+++       * @param  send whether to send the content as well, or just the header
+++       */
+++!     private void processGet(String name, boolean send) {
+++  
+++          try {
+++              String       hdr;
+++--- 344,350 ----
+++       * @param  name the name of the content to get
+++       * @param  send whether to send the content as well, or just the header
+++       */
+++!     public void processGet(String name, boolean send) {
+++  
+++          try {
+++              String       hdr;
+++***************
+++*** 446,452 ****
+++       *
+++       * @param code the error condition code
+++       */
+++!     private void processError(int code) {
+++  
+++          String msg;
+++  
+++--- 446,452 ----
+++       *
+++       * @param code the error condition code
+++       */
+++!     public void processError(int code) {
+++  
+++          String msg;
+++  
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/fpicker-kde-dialog.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/fpicker-kde-dialog.diff
@@ -0,0 +1,1536 @@
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdecommandthread.cxx	2004-06-21 17:38:20.886719904 +0200
+@@ -0,0 +1,208 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#include <kdecommandthread.hxx>
++
++#include <qstringlist.h>
++
++#include <kapplication.h>
++
++#include <iostream>
++
++//////////////////////////////////////////////////////////////////////////
++// CommandEvent
++//////////////////////////////////////////////////////////////////////////
++
++CommandEvent::CommandEvent( const QString &qCommand, QStringList *pStringList )
++    : QCustomEvent( TypeId, pStringList ),
++      m_eCommand( Unknown )
++{
++    struct {
++        const char *pName;
++        CommandEventType eType;
++    } *pIdx, pMapping[] =
++    {
++        { "appendControl",     AppendControl },
++        { "enableControl",     EnableControl },
++        { "getValue",          GetValue },
++        { "setValue",          SetValue },
++        { "appendFilter",      AppendFilter },
++        { "appendFilterGroup", AppendFilterGroup },
++        { "getCurrentFilter",  GetCurrentFilter },
++        { "setCurrentFilter",  SetCurrentFilter },
++        { "getDirectory",      GetDirectory },
++        { "setDirectory",      SetDirectory },
++        { "getFiles",          GetFiles },
++        { "setTitle",          SetTitle },
++        { "setType",           SetType },
++        { "setDefaultName",    SetDefaultName },
++        { "setMultiSelection", SetMultiSelection },
++        { "exec",              Exec },
++        { 0, Unknown }
++    };
++
++    for ( pIdx = pMapping; pIdx->pName && qCommand != pIdx->pName; ++pIdx )
++        ;
++
++    m_eCommand = pIdx->eType;
++}
++
++//////////////////////////////////////////////////////////////////////////
++// CommandThread
++//////////////////////////////////////////////////////////////////////////
++
++CommandThread::CommandThread( QWidget *pObject )
++    : m_pObject( pObject )
++{
++}
++
++CommandThread::~CommandThread()
++{
++}
++
++void CommandThread::run()
++{
++    QTextIStream qStream( stdin );
++    qStream.setEncoding( QTextStream::UnicodeUTF8 );
++
++    QString qLine;
++    bool bQuit = false;
++    while ( !bQuit && !qStream.atEnd() )
++    {
++        qLine = qStream.readLine();
++        handleCommand( qLine, bQuit );
++    }
++}
++
++void CommandThread::handleCommand( const QString &rString, bool &bQuit )
++{
++    QMutexLocker qMutexLocker( &m_aMutex );
++
++#if OSL_DEBUG_LEVEL > 0
++    ::std::cerr << "kdefilepicker received: " << rString.latin1() << ::std::endl;
++#endif
++
++    bQuit = false;
++    QStringList *pTokens = tokenize( rString );
++
++    if ( !pTokens )
++        return;
++    if ( pTokens->empty() )
++    {
++        delete pTokens, pTokens = NULL;
++        return;
++    }
++
++    QString qCommand = pTokens->front();
++    pTokens->pop_front();
++
++    if ( qCommand == "exit" )
++    {
++        bQuit = true;
++        kapp->exit();
++        kapp->wakeUpGuiThread();
++    }
++    else
++        kapp->postEvent( m_pObject, new CommandEvent( qCommand, pTokens ) );
++}
++
++QStringList* CommandThread::tokenize( const QString &rString )
++{
++    // Commands look like:
++    // command arg1 arg2 arg3 ...
++    // Args may be enclosed in '"', if they contain spaces.
++
++    QStringList *pList = new QStringList();
++
++    QString qBuffer;
++    qBuffer.reserve( 1024 );
++
++    const QChar *pUnicode = rString.unicode();
++    const QChar *pEnd     = pUnicode + rString.length();
++    bool bQuoted          = false;
++    
++    for ( ; pUnicode != pEnd; ++pUnicode )
++    {
++        if ( *pUnicode == '\\' )
++        {
++            ++pUnicode;
++            if ( pUnicode != pEnd )
++            {
++                if ( *pUnicode == 'n' )
++                    qBuffer.append( '\n' );
++                else
++                    qBuffer.append( *pUnicode );
++            }
++        }
++        else if ( *pUnicode == '"' )
++            bQuoted = !bQuoted;
++        else if ( *pUnicode == ' ' && !bQuoted )
++        {
++            pList->push_back( qBuffer );
++            qBuffer.setLength( 0 );
++        }
++        else
++            qBuffer.append( *pUnicode );
++    }
++    pList->push_back( qBuffer );
++    
++    return pList;
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdecommandthread.hxx	2004-06-14 14:37:20.597310272 +0200
+@@ -0,0 +1,128 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _KDECOMMANDTHREAD_HXX_
++#define _KDECOMMANDTHREAD_HXX_
++
++#include <qevent.h>
++#include <qmutex.h>
++#include <qthread.h>
++
++class CommandEvent : public QCustomEvent
++{
++public:
++    enum CommandEventType {
++        Unknown = 0,
++        
++        AppendControl,
++        EnableControl,
++        GetValue,
++        SetValue,
++
++        AppendFilter,
++        AppendFilterGroup,
++        UpdateFilters,
++        GetCurrentFilter,
++        SetCurrentFilter,
++
++        GetDirectory,
++        SetDirectory,
++        
++        GetFiles,
++
++        SetTitle,
++        SetType,
++        SetDefaultName,
++        SetMultiSelection,
++
++        Exec
++    };
++    static const QEvent::Type   TypeId = (QEvent::Type) ( (int) QEvent::User + 42 /*random magic value*/ );
++    
++protected:
++    CommandEventType            m_eCommand;
++
++public:
++    CommandEvent( const QString &qCommand, QStringList *pStringList );
++
++    CommandEventType            command() const { return m_eCommand; }
++    QStringList*                stringList() { return static_cast< QStringList* >( data() ); }
++};
++
++class CommandThread : public QThread
++{
++protected:
++    QObject                    *m_pObject;
++
++    QMutex                      m_aMutex;
++
++public:
++    CommandThread( QWidget *pObject );
++    virtual ~CommandThread();
++
++    virtual void                run();
++
++protected:
++    void                        handleCommand( const QString &rString, bool &bQuit );
++    QStringList*                tokenize( const QString &rString );
++};
++
++#endif // _KDECOMMANDTHREAD_HXX_
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdefilepicker.cxx	2004-09-08 17:01:55.270345192 +0200
+@@ -0,0 +1,630 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#include <kdecommandthread.hxx>
++#include <kdefilepicker.hxx>
++
++#include <qcheckbox.h>
++#include <qcombobox.h>
++#include <qgrid.h>
++#include <qhbox.h>
++#include <qlabel.h>
++#include <qlayout.h>
++#include <qobjectlist.h>
++#include <qpushbutton.h>
++#include <qvbox.h>
++
++#ifdef QT_NO_EMIT
++#define emit
++#endif
++
++#include <kdiroperator.h>
++#include <kfiledialog.h>
++#include <kfilefiltercombo.h>
++#include <klocale.h>
++#include <kmessagebox.h>
++
++#include <algorithm>
++#include <iostream>
++
++//////////////////////////////////////////////////////////////////////////
++// FileDialog
++//////////////////////////////////////////////////////////////////////////
++
++FileDialog::FileDialog( const QString &startDir, const QString &filter,
++        QWidget *parent, const char *name )
++    : KFileDialog( startDir, filter, parent, name, true, m_pCustomWidget = new QVBox() ),
++      m_pCombosAndButtons( new QHBox( m_pCustomWidget ) ),
++      m_pLabels( new QVBox( m_pCombosAndButtons ) ),
++      m_pComboBoxes( new QVBox( m_pCombosAndButtons ) ),
++      m_pPushButtons( new QVBox( m_pCombosAndButtons ) ),
++      m_pCheckBoxes( new QGrid( 2, m_pCustomWidget ) ),
++      m_bIsSave( false ),
++      m_bCanNotifySelection( true )
++{
++    connect( this, SIGNAL( fileHighlighted( const QString & ) ),
++             this, SLOT( fileHighlightedCommand( const QString & ) ) );
++
++    connect( this, SIGNAL( selectionChanged() ),
++             this, SLOT( selectionChangedCommand() ) );
++
++    m_pCustomWidget->setSpacing( KDialog::spacingHint() );
++    m_pCombosAndButtons->setSpacing( KDialog::spacingHint() );
++
++    updateCustomWidgetLayout();
++}
++
++FileDialog::~FileDialog()
++{
++}
++
++void FileDialog::resizeEvent( QResizeEvent *pEvent )
++{
++    KFileDialog::resizeEvent( pEvent );
++
++    updateCustomWidgetLayout();
++}
++
++void FileDialog::showEvent( QShowEvent *pEvent )
++{
++    KFileDialog::showEvent( pEvent );
++
++    updateCustomWidgetLayout();
++}
++
++void FileDialog::updateCustomWidgetLayout()
++{
++    QPoint qReferencePoint = filterWidget->mapTo( this, QPoint( 0, 0 ) );
++    QPoint qCustomPoint = m_pCustomWidget->mapTo( this, QPoint( 0, 0 ) );
++
++    int nLeft = qReferencePoint.x() - qCustomPoint.x();
++    int nRight = m_pCustomWidget->width() - filterWidget->width() - nLeft;
++    
++    nLeft -= KDialog::spacingHint();
++    nRight -= KDialog::spacingHint();
++    m_pLabels->setFixedWidth( ( nLeft > 0 )? nLeft: 80 );
++    // FIXME The following call sets the width of m_pPushButtons all right,
++    // but it also increases the width of m_pComboBoxes rapidly. Can we do
++    // anything about it?
++    m_pPushButtons->setFixedWidth( ( nRight > 0 )? nRight: 100 );
++}
++
++void FileDialog::customEvent( QCustomEvent *pEvent )
++{
++    if ( pEvent && pEvent->type() == CommandEvent::TypeId )
++    {
++        CommandEvent *pCommandEvent = static_cast< CommandEvent* >( pEvent );
++        QStringList *pStringList = pCommandEvent->stringList();
++
++        int nListSize = -1;
++        if ( pStringList )
++            nListSize = pStringList->size();
++
++        switch ( pCommandEvent->command() )
++        {
++            case CommandEvent::AppendControl:
++                if ( nListSize >= 3 )
++                {
++                    appendControl( (*pStringList)[0], (*pStringList)[1], (*pStringList)[2] );
++                }
++                break;
++            case CommandEvent::EnableControl:
++                if ( nListSize >= 2 )
++                {
++                    enableControl( (*pStringList)[0], (*pStringList)[1] );
++                }
++                break;
++            case CommandEvent::GetValue:
++                if ( nListSize >= 2 )
++                {
++                    getValue( (*pStringList)[0], (*pStringList)[1] );
++                }
++                break;
++            case CommandEvent::SetValue:
++                if ( nListSize >= 2 )
++                {
++                    QStringList qStringList = (*pStringList);
++                    qStringList.pop_front();
++                    qStringList.pop_front();
++
++                    setValue( (*pStringList)[0], (*pStringList)[1], qStringList );
++                }
++                break;
++            case CommandEvent::AppendFilter:
++                if ( nListSize >= 2 )
++                {
++                    appendFilter( (*pStringList)[0], (*pStringList)[1] );
++
++                    // update the filters widget
++                    setFilter( filters() );
++                }
++                break;
++            case CommandEvent::AppendFilterGroup:
++                if ( nListSize >= 1 )
++                {
++                    QStringList::const_iterator it = pStringList->begin();
++                    ++it; // We ignore the filter group name
++
++                    while ( it != pStringList->end() )
++                    {
++                        QString qTitle = *it;
++                        ++it;
++                        if ( it != pStringList->end() )
++                        {
++                            appendFilter( qTitle, (*it) );
++                            ++it;
++                        }
++                    }
++
++                    // update the filters widget
++                    setFilter( filters() );
++                }
++                break;
++            case CommandEvent::GetCurrentFilter:
++                {
++                    QString qCurrentFilter = filterWidget->currentText();
++                    sendCommand( "currentFilter " + escapeString( qCurrentFilter ) );
++                }
++                break;
++            case CommandEvent::SetCurrentFilter:
++                if ( nListSize >= 1 )
++                {
++                    static_cast< FileFilterComboHack* >( filterWidget )->setCurrentFilter( pStringList->front() );
++                }
++                break;
++            case CommandEvent::GetDirectory:
++                {
++                    QString qDirectory = baseURL().url();
++                    if ( qDirectory.startsWith( "file:/" ) && qDirectory.mid( 6, 1 ) != "/" )
++                        qDirectory.replace( "file:/", "file:///" );
++                    sendCommand( "currentDirectory " + escapeString( qDirectory ) );
++                }
++                break;
++            case CommandEvent::SetDirectory:
++                if ( nListSize >= 1 )
++                {
++                    setURL( pStringList->front() );
++                }
++                break;
++            case CommandEvent::GetFiles:
++                {
++                    QString qString;
++                    qString.reserve( 1024 );
++
++                    qString.append( "files" );
++
++                    if ( result() == QDialog::Accepted )
++                    {
++                        KURL::List qList( selectedURLs() );
++                        for ( KURL::List::const_iterator it = qList.begin(); it != qList.end(); ++it )
++                        {
++                            qString.append( " " );
++                            QString qUrlStr = (*it).url();
++                            if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
++                                qUrlStr.replace( "file:/", "file:///" );
++                            appendEscaped( qString, addExtension( qUrlStr ) );
++                        }
++                    }
++                    else
++                    {
++                        // we have to return the selected files anyway
++                        const KFileItemList *pItems = ops->selectedItems();
++                        for ( KFileItemListIterator it( *pItems ); it.current(); ++it )
++                        {
++                            qString.append( " " );
++                            QString qUrlStr = (*it)->url().url();
++                            if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
++                                qUrlStr.replace( "file:/", "file:///" );
++                            appendEscaped( qString, addExtension( qUrlStr ) );
++                        }
++                    }
++
++                    sendCommand( qString );
++                    setCanNotifySelection( true );
++                }
++                break;
++            case CommandEvent::SetTitle:
++                if ( nListSize >= 1 )
++                {
++                    setCaption( pStringList->front() );
++                }
++                break;
++            case CommandEvent::SetType:
++                if ( nListSize >= 1 )
++                {
++                    QString qType( pStringList->front() );
++                    if ( qType == "open" )
++                    {
++                        setIsSave( false );
++                        setCaption( i18n( "Open" ) );
++                    }
++                    else if ( qType == "save" )
++                    {
++                        setIsSave( true );
++                        setCaption( i18n( "Save As" ) );
++                    }
++                }
++                break;
++            case CommandEvent::SetDefaultName:
++                if ( nListSize >= 1 )
++                {
++                    setKeepLocation( true );
++                    setSelection( pStringList->front() );
++                }
++                break;
++            case CommandEvent::SetMultiSelection:
++                if ( nListSize >= 1 )
++                {
++                    if ( pStringList->front() == "true" )
++                        setMode( KFile::Files );
++                    else
++                        setMode( KFile::File );
++                }   
++                break;
++            case CommandEvent::Exec:
++                {
++                    filterWidget->setEditable( false );
++                    QString qSelectedURL;
++                    do {
++                        setCanNotifySelection( true );
++                        exec();
++                        qSelectedURL = addExtension( selectedURL().url() );
++                    } while ( isSave() &&
++                              result() == QDialog::Accepted &&
++                              ( qSelectedURL.startsWith( "file:" ) && QFile::exists( qSelectedURL.mid( 5 ) ) ) &&
++                              KMessageBox::warningYesNo( 0,
++                                  i18n( "A file named \"%1\" already exists. "
++                                      "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
++                                  i18n( "Overwrite File?" ),
++                                  i18n( "Overwrite" ), KStdGuiItem::cancel() ) != KMessageBox::Yes );
++
++                    if ( result() == QDialog::Accepted )
++                        sendCommand( "accept" );
++                    else
++                        sendCommand( "reject" );
++                }
++                break;
++            default:
++                break;
++        }
++
++        // FIXME Some cleanup of pEvent? delete something, etc.?
++    }
++}
++
++void FileDialog::appendControl( const QString &rId, const QString &rType, const QString &rTitle )
++{
++    QString qLabel( rTitle );
++    qLabel.replace( '~', '&' );
++
++    if ( rType == "checkbox" )
++    {
++        QCheckBox *pCheckBox = new QCheckBox( qLabel, m_pCheckBoxes, rId.utf8() );
++
++        pCheckBox->setEnabled( true );
++        pCheckBox->setChecked( false );
++    }
++    else if ( rType == "listbox" )
++    {
++        QLabel *pComboLabel = new QLabel( qLabel, m_pLabels );
++        QComboBox *pComboBox = new QComboBox( m_pComboBoxes, rId.utf8() );
++
++        pComboLabel->setBuddy( pComboBox );
++        pComboBox->setEnabled( true );
++    }
++    else if ( rType == "pushbutton" )
++    {
++        QPushButton *pPushButton = new QPushButton( qLabel, m_pPushButtons, rId.utf8() );
++        pPushButton->setEnabled( true );
++    }
++}
++
++QWidget* FileDialog::findControl( const QString &rId ) const
++{
++    QObjectList *pList = m_pCustomWidget->queryList();
++    QCString qName( rId.utf8() );
++    QObjectList::const_iterator it = pList->begin();
++    
++    for ( ; it != pList->end() && qName != (*it)->name(); ++it )
++        ;
++
++    QWidget *pWidget = NULL;
++    if ( it != pList->end() )
++        pWidget = static_cast< QWidget* >( *it );
++    
++    delete pList;
++
++    return pWidget;
++}
++
++void FileDialog::enableControl( const QString &rId, const QString &rValue )
++{
++    QWidget *pWidget = findControl( rId );
++
++    if ( pWidget )
++        pWidget->setEnabled( rValue.lower() == "true" );
++}
++
++void FileDialog::getValue( const QString &rId, const QString &rAction )
++{
++    QWidget *pWidget = findControl( rId );
++    QString qString;
++    qString.reserve( 1024 );
++    qString.append( "value" );
++
++    if ( pWidget )
++    {
++        QCString qClassName = pWidget->className();
++        if ( qClassName == "QCheckBox" )
++        {
++            QCheckBox *pCheckBox = static_cast< QCheckBox* >( pWidget );
++
++            if ( pCheckBox->isChecked() )
++                qString.append( " bool true" );
++            else
++                qString.append( " bool false" );
++        }
++        else if ( qClassName == "QComboBox" )
++        {
++            QComboBox *pComboBox = static_cast< QComboBox* >( pWidget );
++            if ( rAction == "getItems" )
++            {
++                qString.append( " stringList" );
++                for ( int nIdx = 0; nIdx < pComboBox->count(); ++nIdx )
++                {
++                    qString.append( ' ' );
++                    appendEscaped( qString, pComboBox->text( nIdx ) );
++                }
++            }
++            else if ( rAction == "getSelectedItem" )
++            {
++                qString.append( " string " );
++                appendEscaped( qString, pComboBox->currentText() );
++            }
++            else if ( rAction == "getSelectedItemIndex" )
++            {
++                qString.append( " int " );
++                qString.append( QString().setNum( pComboBox->currentItem() ) );
++            }
++            // TODO getHelpURL
++        }
++        // TODO push button
++    }
++
++    sendCommand( qString );
++}
++
++void FileDialog::setValue( const QString &rId, const QString &rAction, const QStringList &rValue )
++{
++    QWidget *pWidget = findControl( rId );
++
++    if ( pWidget )
++    {
++        QCString qClassName = pWidget->className();
++        if ( qClassName == "QCheckBox" )
++        {
++            QCheckBox *pCheckBox = static_cast< QCheckBox* >( pWidget );
++
++            bool bValue = ( !rValue.isEmpty() ) && ( rValue.front().lower() == "true" );
++            pCheckBox->setChecked( bValue );
++        }
++        else if ( qClassName == "QComboBox" )
++        {
++            QComboBox *pComboBox = static_cast< QComboBox* >( pWidget );
++            if ( rAction == "addItem" )
++            {
++                if ( !rValue.isEmpty() )
++                    pComboBox->insertItem( rValue.front() );
++            }
++            else if ( rAction == "addItems" )
++            {
++                pComboBox->insertStringList( rValue );
++            }
++            else if ( rAction == "deleteItem" )
++            {
++                if ( !rValue.isEmpty() )
++                    pComboBox->removeItem( rValue.front().toInt() );
++            }
++            else if ( rAction == "deleteItems" )
++            {
++                pComboBox->clear();
++            }
++            else if ( rAction == "setSelectedItem" )
++            {
++                if ( !rValue.isEmpty() )
++                    pComboBox->setCurrentItem( rValue.front().toInt() );
++            }
++            // FIXME setHelpURL is ignored
++        }
++        // TODO push button
++    }
++}
++
++void FileDialog::appendFilter( const QString &rTitle, const QString &rFilter )
++{
++    // Filters are separated by ';'
++    QString qFilter( rFilter );
++    qFilter.replace( QChar( ';' ), QChar( ' ' ) ).replace( "*.*", "*" );
++
++    m_aFilters.push_back( qMakePair( rTitle, qFilter ) );
++}
++
++QString FileDialog::filters() const
++{
++    QString qString, qTmp;
++    bool bFirstFilter = true;
++    
++    for ( FilterList::const_iterator it = m_aFilters.begin(); it != m_aFilters.end(); ++it )
++    {
++        if ( bFirstFilter )
++            bFirstFilter = false;
++        else
++            qString.append( '\n' );
++        
++        qString.append( (*it).second );
++        qString.append( '|' );
++        
++        qTmp = (*it).first;
++        qString.append( qTmp.replace( '/', "\\/" ) );
++    }
++
++    return qString;
++}
++
++QString FileDialog::addExtension( const QString &rFileName ) const
++{
++    if ( !isSave() )
++        return rFileName;
++
++    QString qExtension;
++
++    QWidget *pExtensionWidget = findControl( "100" ); // CHECKBOX_AUTOEXTENSION
++    QCheckBox *pExtensionCB = pExtensionWidget? static_cast< QCheckBox* >( pExtensionWidget->qt_cast( "QCheckBox" ) ): NULL;
++    if ( pExtensionCB && pExtensionCB->isChecked() )
++    {
++        // FIXME: qFilter can be a MIME; we ignore it now...
++        QStringList qFilterList = QStringList::split( " ", currentFilter() );
++        for ( QStringList::const_iterator it = qFilterList.begin();
++              qExtension.isEmpty() && it != qFilterList.end();
++              ++it )
++        {
++            int nUnwanted = (*it).findRev( '*' );
++            if ( nUnwanted < 0 )
++                nUnwanted = (*it).findRev( '?' );
++            else
++                nUnwanted = ::std::max( nUnwanted, (*it).find( '?', nUnwanted ) );
++
++            int nIdx = (*it).find( '.', ::std::max( nUnwanted, 0 ) );
++            if ( nIdx >= 0 )
++                qExtension = (*it).mid( nIdx ).lower();
++        }
++    }
++
++    if ( qExtension.isEmpty() || qExtension == "." || rFileName.endsWith( qExtension ) )
++        return rFileName;
++    else
++        return rFileName + qExtension;
++}
++
++void FileDialog::fileHighlightedCommand( const QString & )
++{
++    if ( canNotifySelection() )
++    {
++	sendCommand( "fileSelectionChanged" );
++	setCanNotifySelection( false );
++    }
++}
++
++void FileDialog::selectionChangedCommand()
++{
++    if ( canNotifySelection() )
++    {
++	sendCommand( "fileSelectionChanged" );
++	setCanNotifySelection( false );
++    }
++}
++
++void FileDialog::sendCommand( const QString &rCommand )
++{
++#if OSL_DEBUG_LEVEL > 0
++    ::std::cerr << "kdefilepicker sent: " << rCommand.latin1() << ::std::endl;
++#endif
++
++    //m_aOutputStream << rCommand << endl;
++    ::std::cout << rCommand.utf8() << ::std::endl;
++}
++
++void FileDialog::appendEscaped( QString &rBuffer, const QString &rString )
++{
++    const QChar *pUnicode = rString.unicode();
++    const QChar *pEnd     = pUnicode + rString.length();
++
++    rBuffer.append( '"' );
++    for ( ; pUnicode != pEnd; ++pUnicode )
++    {
++        if ( *pUnicode == '\\' )
++            rBuffer.append( "\\\\" );
++        else if ( *pUnicode == '"' )
++            rBuffer.append( "\\\"" );
++        else if ( *pUnicode == '\n' )
++            rBuffer.append( "\\\n" );
++        else
++            rBuffer.append( *pUnicode );
++    }
++    rBuffer.append( '"' );
++}
++
++QString FileDialog::escapeString( const QString &rString )
++{
++    QString qString;
++    qString.reserve( 2*rString.length() + 2 ); // every char escaped + quotes
++
++    appendEscaped( qString, rString );
++
++    return qString;
++}
++
++
++void FileFilterComboHack::setCurrentFilter( const QString& filter )
++{
++    setCurrentText( filter );
++    filterChanged();
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdefilepicker.hxx	2004-06-11 14:03:03.937359576 +0200
+@@ -0,0 +1,147 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _KDEFILEPICKER_HXX_
++#define _KDEFILEPICKER_HXX_
++
++#include <kfiledialog.h>
++#include <kfilefiltercombo.h>
++
++class QGrid;
++class QHBox;
++class QVBox;
++
++class FileDialog : public KFileDialog
++{
++    Q_OBJECT
++
++protected:
++    typedef QPair< QString, QString > FilterEntry;
++    typedef QValueList< FilterEntry > FilterList;
++    
++    QVBox                      *m_pCustomWidget;
++    QHBox                      *m_pCombosAndButtons;
++    
++    QVBox                      *m_pLabels;
++    QVBox                      *m_pComboBoxes;
++    QVBox                      *m_pPushButtons;
++
++    QGrid                      *m_pCheckBoxes;
++
++    FilterList                  m_aFilters;
++
++    /** Are we a "Save As" dialog?
++     * 
++     *  We cannot use KFileDialog::setOperationMode() here, because then
++     *  it automatically adds an "Automatically select filename extension"
++     *  check box, and completely destroys the dialog's layout
++     *  (custom list boxes are under this check box, which looks ugly).
++     */
++    bool                        m_bIsSave;
++
++    bool                        m_bCanNotifySelection;
++
++public:
++    FileDialog( const QString &startDir, const QString &filter,
++                QWidget *parent, const char *name );
++    virtual ~FileDialog();
++
++protected:
++    virtual void                resizeEvent( QResizeEvent *pEvent );
++    virtual void                showEvent( QShowEvent *pEvent );
++    void                        updateCustomWidgetLayout();
++
++    virtual void                customEvent( QCustomEvent *pEvent );
++
++protected:
++    void                        appendControl( const QString &rId, const QString &rType, const QString &rTitle );
++    QWidget*                    findControl( const QString &rId ) const;
++    void                        enableControl( const QString &rId, const QString &rValue );
++    void                        getValue( const QString &rId, const QString &rAction );
++    void                        setValue( const QString &rId, const QString &rAction, const QStringList &rValue );
++    
++    void                        appendFilter( const QString &rTitle, const QString &rFilter );
++    QString                     filters() const;
++    QString                     addExtension( const QString &rFileName ) const;
++
++    void                        setIsSave( bool bIsSave ) { m_bIsSave = bIsSave; }
++    bool                        isSave( void ) const { return m_bIsSave; }
++
++    void                        setCanNotifySelection( bool bCanNotifySelection ) { m_bCanNotifySelection = bCanNotifySelection; }
++    bool                        canNotifySelection( void ) const { return m_bCanNotifySelection; }
++
++protected slots:
++    void                        fileHighlightedCommand( const QString & );
++    void                        selectionChangedCommand();
++
++protected:
++    void                        sendCommand( const QString &rCommand );
++    void                        appendEscaped( QString &rBuffer, const QString &rString );
++    QString                     escapeString( const QString &rString );
++};
++
++class FileFilterComboHack : public KFileFilterCombo
++{
++public:
++    void setCurrentFilter( const QString& filter );
++};
++
++#endif // _KDEFILEPICKER_HXX_
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdefpmain.cxx	2004-06-21 17:40:44.786843760 +0200
+@@ -0,0 +1,110 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#include <kdemodalityfilter.hxx>
++#include <kdefilepicker.hxx>
++#include <kdecommandthread.hxx>
++
++#include <kaboutdata.h>
++#include <kapplication.h>
++#include <kcmdlineargs.h>
++
++#include <iostream>
++#include <stdlib.h>
++
++//////////////////////////////////////////////////////////////////////////
++// Main
++//////////////////////////////////////////////////////////////////////////
++
++int main( int argc, char* argv[] )
++{
++    // we fake the name of the application to have "OpenOffice.org" in the
++    // title
++    KAboutData qAboutData( "kdefilepicker", I18N_NOOP( "OpenOffice.org" ),
++            "0.1", I18N_NOOP( "kdefilepicker is an implementation of the KDE file dialog for OpenOffice.org." ),
++            KAboutData::License_LGPL,
++            "(c) 2004, Jan Holesovsky" );
++    qAboutData.addAuthor( "Jan Holesovsky", I18N_NOOP("Original author and current maintainer"), "kendy@openoffice.org" );
++
++    // Let the user see that this does something...
++    ::std::cerr << "kdefilepicker, an implementation of KDE file dialog for OOo." << ::std::endl
++        << "Type 'exit' and press Enter to finish." << ::std::endl;
++
++    KCmdLineArgs::init( argc, argv, &qAboutData );
++
++    KLocale::setMainCatalogue( "kdialog" );
++    
++    KApplication kApplication;
++    //ModalityFilter qFilter( /*winid*/ 79691780 );
++
++    FileDialog aFileDialog( NULL, QString(), NULL, "kdefiledialog" );
++    
++    CommandThread qCommandThread( &aFileDialog );
++    qCommandThread.start();
++
++    kApplication.exec();
++
++    qCommandThread.wait();
++
++    ::std::cout << "exited" << ::std::endl;
++
++    return 0;
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdemodalityfilter.cxx	2004-06-11 14:18:36.003663960 +0200
+@@ -0,0 +1,100 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#include <kdemodalityfilter.hxx>
++
++#include <kapplication.h>
++#include <kdialogbase.h>
++
++#include <netwm.h>
++#include <X11/Xlib.h>
++#include <X11/Xutil.h>
++
++//////////////////////////////////////////////////////////////////////////
++// Modality filter
++//////////////////////////////////////////////////////////////////////////
++
++ModalityFilter::ModalityFilter( WId nWinId )
++    : m_nWinId( nWinId )
++{
++    kapp->installEventFilter( this );
++}
++
++ModalityFilter::~ModalityFilter()
++{
++    kapp->removeEventFilter( this );
++}
++
++bool ModalityFilter::eventFilter( QObject *pObject, QEvent *pEvent )
++{
++    if ( pObject->isWidgetType() && pEvent->type() == QEvent::Show )
++    {
++        KDialogBase* pDlg = ::qt_cast< KDialogBase* >( pObject );
++        if ( pDlg != NULL && m_nWinId != 0 )
++        {
++            XSetTransientForHint( qt_xdisplay(), pDlg->winId(), m_nWinId );
++            NETWinInfo aInfo( qt_xdisplay(), pDlg->winId(), qt_xrootwin(), NET::WMState );
++            aInfo.setState( NET::Modal, NET::Modal );
++            m_nWinId = 0;
++        }
++    }
++    return false;
++}
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/kdemodalityfilter.hxx	2004-06-11 13:50:46.856412912 +0200
+@@ -0,0 +1,79 @@
++/*************************************************************************
++ *
++ *
++ *
++ *
++ *
++ *
++ *
++ *  The Contents of this file are made available subject to the terms of
++ *  either of the following licenses
++ *
++ *         - GNU Lesser General Public License Version 2.1
++ *         - Sun Industry Standards Source License Version 1.1
++ *
++ *  Sun Microsystems Inc., October, 2000
++ *
++ *  GNU Lesser General Public License Version 2.1
++ *  =============================================
++ *  Copyright 2000 by Sun Microsystems, Inc.
++ *  901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License version 2.1, as published by the Free Software Foundation.
++ *
++ *  This library is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *  MA  02111-1307  USA
++ *
++ *
++ *  Sun Industry Standards Source License Version 1.1
++ *  =================================================
++ *  The contents of this file are subject to the Sun Industry Standards
++ *  Source License Version 1.1 (the "License"); You may not use this file
++ *  except in compliance with the License. You may obtain a copy of the
++ *  License at http://www.openoffice.org/license.html.
++ *
++ *  Software provided under this License is provided on an "AS IS" basis,
++ *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ *  See the License for the specific provisions governing your rights and
++ *  obligations concerning the Software.
++ *
++ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ *  Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *  All Rights Reserved.
++ *
++ *  Contributor(s): Jan Holesovsky <kendy@openoffice.org>
++ *
++ *
++ ************************************************************************/
++
++#ifndef _KDEMODALITYFILTER_HXX_
++#define _KDEMODALITYFILTER_HXX_
++
++#include <qobject.h>
++
++class ModalityFilter : public QObject
++{
++private:
++    WId m_nWinId;
++
++public:
++    ModalityFilter( WId nWinId );
++    virtual ~ModalityFilter();
++
++    virtual bool eventFilter( QObject *pObject, QEvent *pEvent );
++};
++
++#endif // _KDEMODALITYFILTER_HXX_
+--- /dev/null	2004-04-06 15:27:52.000000000 +0200
++++ fpicker/source/unx/kde/makefile.mk	2004-06-15 10:53:54.282583408 +0200
+@@ -0,0 +1,110 @@
++#*************************************************************************
++#
++#
++#
++#
++#
++#
++#
++#   The Contents of this file are made available subject to the terms of
++#   either of the following licenses
++#
++#          - GNU Lesser General Public License Version 2.1
++#          - Sun Industry Standards Source License Version 1.1
++#
++#   Sun Microsystems Inc., October, 2000
++#
++#   GNU Lesser General Public License Version 2.1
++#   =============================================
++#   Copyright 2000 by Sun Microsystems, Inc.
++#   901 San Antonio Road, Palo Alto, CA 94303, USA
++#
++#   This library is free software; you can redistribute it and/or
++#   modify it under the terms of the GNU Lesser General Public
++#   License version 2.1, as published by the Free Software Foundation.
++#
++#   This library is distributed in the hope that it will be useful,
++#   but WITHOUT ANY WARRANTY; without even the implied warranty of
++#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#   Lesser General Public License for more details.
++#
++#   You should have received a copy of the GNU Lesser General Public
++#   License along with this library; if not, write to the Free Software
++#   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#   MA  02111-1307  USA
++#
++#
++#   Sun Industry Standards Source License Version 1.1
++#   =================================================
++#   The contents of this file are subject to the Sun Industry Standards
++#   Source License Version 1.1 (the "License"); You may not use this file
++#   except in compliance with the License. You may obtain a copy of the
++#   License at http://www.openoffice.org/license.html.
++#
++#   Software provided under this License is provided on an "AS IS" basis,
++#   WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++#   WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++#   MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++#   See the License for the specific provisions governing your rights and
++#   obligations concerning the Software.
++#
++#   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++#
++#   Copyright: 2000 by Sun Microsystems, Inc.
++#
++#   All Rights Reserved.
++#
++#   Contributor(s): _______________________________________
++#
++#
++#
++#*************************************************************************
++
++PRJ=..$/..$/..
++
++PRJNAME=fpicker
++TARGET=kdefilepicker
++LIBTARGET=NO
++ENABLE_EXCEPTIONS=TRUE
++#COMP1TYPELIST=$(TARGET)
++#COMPRDB=$(SOLARBINDIR)$/types.rdb
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++
++# ------------------------------------------------------------------
++
++.IF "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
++
++dummy:
++	@echo "Nothing to build. GUIBASE == $(GUIBASE), ENABLE_KDE is not set"
++
++.ELSE # we build for KDE
++
++CFLAGS+= $(KDE_CFLAGS)
++
++# --- Files --------------------------------------------------------
++
++SLOFILES =\
++		$(SLO)$/kdecommandthread.obj \
++		$(SLO)$/kdefilepicker.obj \
++		$(SLO)$/kdefilepicker.moc.obj \
++		$(SLO)$/kdefpmain.obj \
++		$(SLO)$/kdemodalityfilter.obj
++
++APP1TARGET=$(TARGET)
++APP1OBJS=$(SLOFILES)
++APP1STDLIBS=\
++			$(SALLIB) \
++			$(KDE_LIBS) -lkio
++
++
++.ENDIF # "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE :	target.mk
++
++$(MISC)$/kdefilepicker.moc.cxx : kdefilepicker.hxx
++	$(MOC) $< -o $@
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/premium_macro_build.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/premium_macro_build.diff
@@ -0,0 +1,11 @@
+--- wizards/prj/build.lst.orig	2007-08-10 19:19:00.000000000 +0200
++++ wizards/prj/build.lst	2007-09-12 15:16:22.583459200 +0200
+@@ -13,6 +13,8 @@
+ wz      wizards\source\tutorials                                nmake           -       all     wz_tutorials NULL
+ wz      wizards\source\standard                                 nmake           -       all     wz_standard NULL
+ wz      wizards\source\launcher                                 nmake           -       all     wz_launcher NULL
++wz      wizards\source\premium                                  nmake           -       all     wz_premium NULL
++wz      wizards\source\ooowikipedia                             nmake           -       all     wz_ooowikipedia NULL
+ wz      wizards\com\sun\star\wizards                            nmake           -       all     wz_commonwiz NULL
+ wz      wizards\com\sun\star\wizards\query                      nmake           -       all     wz_querywiz wz_formwiz wz_commonwiz NULL
+ wz      wizards\com\sun\star\wizards\report                     nmake           -       all     wz_reportwiz wz_commonwiz NULL
--- openoffice.org-2.4.1.orig/ooo-build/patches/src680/cws-mdbdriver02.diff
+++ openoffice.org-2.4.1/ooo-build/patches/src680/cws-mdbdriver02.diff
@@ -0,0 +1,8988 @@
+Index: connectivity/source/drivers/mdb/DataAccess.xcu
+===================================================================
+RCS file: connectivity/source/drivers/mdb/DataAccess.xcu
+diff -N connectivity/source/drivers/mdb/DataAccess.xcu
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/DataAccess.xcu	15 Aug 2005 13:52:53 -0000	1.1.4.1
+@@ -0,0 +1,16 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<oor:node xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="DataAccess" oor:package="org.openoffice.Office">
++ <node oor:name="UserDefinedDriverSettings">
++       <node oor:name="MDB Driver" oor:op="replace">
++	     <prop oor:name="DriverPageDisplayName">
++		   <value>MDB-SDBC Driver V 0.1</value>
++	     </prop>
++	     <prop oor:name="DriverTypeDisplayName">
++		   <value>mdb</value>
++	     </prop>
++	     <prop oor:name="DriverDsnPrefix">
++		   <value>sdbc:mdb:</value>
++	     </prop>
++       </node>
++ </node>
++</oor:node>
+Index: connectivity/source/drivers/mdb/config.h
+===================================================================
+RCS file: connectivity/source/drivers/mdb/config.h
+diff -N connectivity/source/drivers/mdb/config.h
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/config.h	22 Aug 2005 14:49:49 -0000	1.1.2.1
+@@ -0,0 +1 @@
++/* dummy. mdbtools' header includes config.h... Make it happy */
+Index: connectivity/source/drivers/mdb/exports.dxp
+===================================================================
+RCS file: connectivity/source/drivers/mdb/exports.dxp
+diff -N connectivity/source/drivers/mdb/exports.dxp
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/exports.dxp	15 Aug 2005 13:52:53 -0000	1.1.4.1
+@@ -0,0 +1,3 @@
++component_getImplementationEnvironment
++component_writeInfo
++component_getFactory
+Index: connectivity/source/drivers/mdb/makefile.mk
+===================================================================
+RCS file: connectivity/source/drivers/mdb/makefile.mk
+diff -N connectivity/source/drivers/mdb/makefile.mk
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/makefile.mk	22 Dec 2005 10:43:06 -0000	1.1.4.4
+@@ -0,0 +1,159 @@
++#*************************************************************************
++#
++#   $RCSfile$
++#
++#   $Revision: 10703 $
++#
++#   last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++#
++#   The Contents of this file are made available subject to
++#   the terms of GNU Lesser General Public License Version 2.1.
++# 
++# 
++#     GNU Lesser General Public License Version 2.1
++#     =============================================
++#     Copyright 2005 by Sun Microsystems, Inc.
++#     901 San Antonio Road, Palo Alto, CA 94303, USA
++# 
++#     This library is free software; you can redistribute it and/or
++#     modify it under the terms of the GNU Lesser General Public
++#     License version 2.1, as published by the Free Software Foundation.
++# 
++#     This library is distributed in the hope that it will be useful,
++#     but WITHOUT ANY WARRANTY; without even the implied warranty of
++#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#     Lesser General Public License for more details.
++# 
++#     You should have received a copy of the GNU Lesser General Public
++#     License along with this library; if not, write to the Free Software
++#     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++#     MA  02111-1307  USA
++# 
++#   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++#
++#   Copyright: 2000 by Sun Microsystems, Inc.
++#
++#   All Rights Reserved.
++#
++#   Contributor(s): Alexandre Horst
++#
++#
++#
++#*************************************************************************
++
++PRJ=..$/..$/..
++PRJINC=..$/..
++PRJNAME=connectivity
++TARGET=mdb
++
++ENABLE_EXCEPTIONS=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE :  settings.mk
++.INCLUDE :  $(PRJ)$/version.mk
++
++PKGCONFIG_MODULES=glib-2.0 
++.INCLUDE : pkg_config.mk
++
++
++MDB_MAJOR=0
++MDB_MINOR=1
++MDB_MICRO=1
++
++# --- Files -------------------------------------
++
++.IF "$(ENABLE_ACCESS)"=="YES"
++
++.IF "$(OS)"=="LINUX"
++LIB2OBJFILES= \
++		$(SLO)$/mdb_wrapper.obj				\
++		$(SLO)$/mdb_connection.obj			\
++		$(SLO)$/mdb_statement.obj			\
++		$(SLO)$/mdb_resultset.obj			\
++		$(SLO)$/mdb_preparedstatement.obj	\
++		$(SLO)$/mdb_resultsetmetadata.obj	\
++		$(SLO)$/mdb_databasemetadata.obj	\
++		$(SLO)$/mdb_sequenceresultset.obj	\
++		$(SLO)$/mdb_baseresultset.obj
++
++LIB1OBJFILES= \
++		$(SLO)$/mdb_driver.obj
++
++
++# --- Library -----------------------------------
++
++CFLAGS+=\
++	-DSQL=1											\
++	-DMDBTOOLS_MAJOR=$(MDB_MAJOR) \
++	-DMDBTOOLS_MINOR=$(MDB_MINOR) \
++	-DMDBTOOLS_MICRO=$(MDB_MICRO) \
++	-DMDB_MAJOR=$(MDB_MAJOR) \
++	-DMDB_MINOR=$(MDB_MINOR) \
++	-DMDB_MICRO=$(MDB_MICRO) \
++	 $(MDBTOOLS_CFLAGS)
++
++CFLAGS+= $(PKGCONFIG_CFLAGS)
++
++.IF "$(SYSTEM_MDBTOOLS)" == "YES"
++CFLAGS+=-DSYSTEM_MDBTOOLS $(MDBTOOLS_CFLAGS)
++.IF "$(LIBICONV)" != ""
++SHL2STDLIBS+=$(LIBICONV)
++.ENDIF
++.ENDIF
++
++SHL1TARGET=$(TARGET)$(UPD)$(DLLPOSTFIX)
++LIB1TARGET=$(SLB)$/$(SHL1TARGET).lib
++SHL1OBJS=$(LIB1OBJFILES)
++SHL1STDLIBS= \
++		$(CPPULIB)			\
++		$(CPPUHELPERLIB)	\
++		$(SALLIB)\
++		$(PKGCONFIG_LIBS) \
++                -lmdbsql \
++                -lmdb
++
++SHL1DEPN=
++SHL1IMPLIB=	i$(TARGET)
++
++SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
++
++DEF1NAME=	$(SHL1TARGET)
++DEF1EXPORTFILE=exports.dxp
++
++
++SHL2TARGET=$(TARGET)impl$(UPD)$(DLLPOSTFIX)
++LIB2TARGET=$(SLB)$/$(SHL2TARGET).lib
++SHL2OBJS=$(LIB2OBJFILES)
++SHL2STDLIBS= \
++		$(CPPULIB)			\
++		$(CPPUHELPERLIB)	\
++		$(SALLIB)			\
++		$(SALHELPERLIB)		\
++		$(VOSLIB)		\
++		$(DBTOOLSLIB)		\
++		$(PKGCONFIG_LIBS)\
++		-lmdbsql \
++		-lmdb
++
++SHL2DEPN=
++SHL2IMPLIB=	i$(TARGET)impl
++
++SHL2DEF=	$(MISC)$/$(SHL2TARGET).def
++
++DEF2NAME=	$(SHL2TARGET)
++DEF2EXPORTFILE=exports.dxp
++
++
++.ENDIF
++
++# --- Targets ----------------------------------
++
++.INCLUDE : target.mk
++
++.ELSE
++
++dummy:
++       @echo "MS Access SDBC driver disabled in configure"
++
++.ENDIF
+Index: connectivity/source/drivers/mdb/mdb.xml
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb.xml
+diff -N connectivity/source/drivers/mdb/mdb.xml
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb.xml	15 Aug 2005 13:52:56 -0000	1.1.4.1
+@@ -0,0 +1,33 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!DOCTYPE module-description PUBLIC "-//W3C//DTD HTML 3.2//EN" "module-description.dtd">
++<module-description>
++	<module-name>mdb</module-name>
++	<component-description>
++		<author>Wind Li, Alexandre Horst, Luciano Wolf</author>
++		<name>org.openoffice.comp.connectivity.mdb.Driver</name>
++		<description>This library implements the database driver for mdb file format using mdbtools library.
++</description>
++		<loader-name>com.sun.star.loader.SharedLibrary</loader-name>
++		<language>c++</language>
++		<status value="final"/>
++		<supported-service>com.sun.star.sdbc.Connection</supported-service>
++		<supported-service>com.sun.star.sdbc.Driver</supported-service>
++		<service-dependency>	...	</service-dependency>
++	</component-description>
++	<project-build-dependency>cppuhelper</project-build-dependency>
++	<project-build-dependency>cppu</project-build-dependency>
++	<project-build-dependency>sal</project-build-dependency>
++	<project-build-dependency>vos</project-build-dependency>
++	<runtime-module-dependency>file</runtime-module-dependency>
++	<runtime-module-dependency>cppuhelper</runtime-module-dependency>
++	<runtime-module-dependency>cppu</runtime-module-dependency>
++	<runtime-module-dependency>sal</runtime-module-dependency>
++	<runtime-module-dependency>vos</runtime-module-dependency>
++	<runtime-module-dependency>osl</runtime-module-dependency>
++	<runtime-module-dependency>svtools-light1</runtime-module-dependency>
++	<runtime-module-dependency>svtools</runtime-module-dependency>
++	<runtime-module-dependency>ucbhelper</runtime-module-dependency>
++	<runtime-module-dependency>dbtools</runtime-module-dependency>
++	<runtime-module-dependency>unotools</runtime-module-dependency>
++	<runtime-module-dependency>comphelper</runtime-module-dependency>
++</module-description>
+Index: connectivity/source/drivers/mdb/mdb_baseresultset.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_baseresultset.cxx
+diff -N connectivity/source/drivers/mdb/mdb_baseresultset.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_baseresultset.cxx	12 Jul 2006 10:20:32 -0000	1.1.4.3
+@@ -0,0 +1,697 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#include <osl/thread.h>
++
++#include <rtl/ustrbuf.hxx>
++
++#include <cppuhelper/typeprovider.hxx>
++#include <cppuhelper/queryinterface.hxx>
++
++#include <connectivity/dbexception.hxx>
++
++#include "mdb_statement.hxx"
++#include "mdb_baseresultset.hxx"
++#include "mdb_resultsetmetadata.hxx"
++
++#include <com/sun/star/lang/DisposedException.hpp>
++
++using osl::Mutex;
++using osl::MutexGuard;
++
++using rtl::OUString;
++using rtl::OUStringToOString;
++using rtl::OUStringBuffer;
++using rtl::OString;
++
++using com::sun::star::beans::XPropertySetInfo;
++using com::sun::star::beans::XPropertySet;
++using com::sun::star::beans::XMultiPropertySet;
++using com::sun::star::beans::XFastPropertySet;
++
++using com::sun::star::uno::Any;
++using com::sun::star::uno::makeAny;
++using com::sun::star::uno::Type;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++
++using com::sun::star::lang::IllegalArgumentException;
++
++using com::sun::star::sdbc::XWarningsSupplier;
++using com::sun::star::sdbc::XCloseable;
++using com::sun::star::sdbc::XStatement;
++using com::sun::star::sdbc::XResultSet;
++using com::sun::star::sdbc::XConnection;
++using com::sun::star::sdbc::SQLException;
++using com::sun::star::sdbc::XRow;
++using com::sun::star::sdbc::XColumnLocate;
++using com::sun::star::sdbc::XResultSetMetaData;
++using com::sun::star::sdbc::XResultSetMetaDataSupplier;
++
++
++using com::sun::star::beans::Property;
++
++namespace mdb_sdbc_driver
++{
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++static ::cppu::IPropertyArrayHelper & getResultSetPropertyArrayHelper()
++{
++    static ::cppu::IPropertyArrayHelper *pArrayHelper;
++	if( ! pArrayHelper )
++    {
++		MutexGuard guard( Mutex::getGlobalMutex() );
++		if( ! pArrayHelper )
++        {
++            static Property aTable[] =
++                {
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
++                        ::getCppuType( (OUString *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
++                        ::getBooleanCppuType() , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 )
++                };
++            OSL_ASSERT( sizeof(aTable) / sizeof(Property) == BASERESULTSET_SIZE );
++			static ::cppu::OPropertyArrayHelper arrayHelper( aTable, BASERESULTSET_SIZE, sal_True );
++            pArrayHelper = &arrayHelper;
++        }
++    }
++    return *pArrayHelper;
++}
++
++BaseResultSet::BaseResultSet(
++    const ::rtl::Reference< RefCountedMutex > & refMutex,
++    const Reference< XInterface > & owner,
++    sal_Int32 rowCount,
++    sal_Int32 colCount,
++    const Reference< com::sun::star::script::XTypeConverter > & tc )
++    : OComponentHelper( refMutex->mutex ),
++      OPropertySetHelper( OComponentHelper::rBHelper ),
++      m_owner( owner ),
++      m_tc( tc ),
++      m_refMutex( refMutex ),
++      m_row( -1 ),
++      m_rowCount( rowCount ),
++      m_fieldCount( colCount ),
++      m_wasNull( false )
++{
++    POSTGRE_TRACE( "ctor BaseResultSet" );
++}
++
++BaseResultSet::~BaseResultSet()
++{
++    POSTGRE_TRACE( "dtor BaseResultSet" );
++}
++
++Any BaseResultSet::queryInterface( const Type & reqType ) throw (RuntimeException)
++{
++    Any ret;
++
++    ret = OComponentHelper::queryInterface( reqType );
++    if( ! ret.hasValue() )
++        ret = ::cppu::queryInterface( reqType,
++                                    static_cast< XResultSet * > ( this  ),
++                                    static_cast< XResultSetMetaDataSupplier * > ( this ),
++                                    static_cast< XRow * > ( this ),
++                                    static_cast< XColumnLocate * > ( this ),
++                                    static_cast< XCloseable * > ( this ),
++                                    static_cast< XPropertySet * > ( this ),
++                                    static_cast< XMultiPropertySet * > ( this ),
++                                    static_cast< XFastPropertySet * > ( this ) );
++    return ret;
++}
++
++// void BaseResultSet::close(  ) throw (SQLException, RuntimeException)
++// {
++//     Reference< XInterface > owner;
++//     {
++//         ResultSetGuard guard(*this);
++//         if( m_result )
++//         {
++//             PQclear(m_result );
++//             m_result = 0;
++//             m_row = -1;
++//         }
++//         owner = m_owner;
++//         m_owner.clear();
++//     }
++// }
++
++Sequence<Type > BaseResultSet::getTypes() throw( RuntimeException )
++{
++    static cppu::OTypeCollection *pCollection;
++    if( ! pCollection )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( !pCollection )
++        {
++            static cppu::OTypeCollection collection(
++                getCppuType( (Reference< XResultSet> *) 0 ),
++                getCppuType( (Reference< XResultSetMetaDataSupplier> *) 0 ),
++                getCppuType( (Reference< XRow> *) 0 ),
++                getCppuType( (Reference< XColumnLocate> *) 0 ),
++                getCppuType( (Reference< XCloseable> *) 0 ),
++                getCppuType( (Reference< XPropertySet >*) 0 ),
++                getCppuType( (Reference< XFastPropertySet > *) 0 ),
++                getCppuType( (Reference< XMultiPropertySet > *) 0 ),
++                OComponentHelper::getTypes());
++            pCollection = &collection;
++        }
++    }
++    return pCollection->getTypes();
++}
++
++Sequence< sal_Int8> BaseResultSet::getImplementationId() throw( RuntimeException )
++{
++    static cppu::OImplementationId *pId;
++    if( ! pId )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( ! pId )
++        {
++            static cppu::OImplementationId id(sal_False);
++            pId = &id;
++        }
++    }
++    return pId->getImplementationId();
++}
++
++// Reference< XResultSetMetaData > BaseResultSet::getMetaData(  ) throw (SQLException, RuntimeException)
++// {
++//     ResultSetGuard guard(*this);
++//     checkClosed();
++//     return new ResultSetMetaData( m_refMutex, this, &m_result );
++// }
++
++sal_Bool BaseResultSet::next(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row ++;
++    return m_row < m_rowCount;
++}
++
++sal_Bool BaseResultSet::isBeforeFirst(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row == -1;
++}
++
++sal_Bool BaseResultSet::isAfterLast(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row >= m_rowCount;
++}
++    
++sal_Bool BaseResultSet::isFirst(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row == 0 && m_rowCount;
++}
++
++sal_Bool BaseResultSet::isLast(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row >= 0 && m_row + 1 == m_rowCount;
++}
++
++void BaseResultSet::beforeFirst(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row = -1;
++}
++
++void BaseResultSet::afterLast(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row = m_rowCount;
++}
++
++sal_Bool BaseResultSet::first(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    sal_Bool bRet = ( m_rowCount > 0 );
++    if( bRet )
++        m_row = 0;
++    return bRet;
++}
++
++sal_Bool BaseResultSet::last(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    sal_Bool bRet = ( m_rowCount > 0 );
++    if( bRet )
++        m_row = m_rowCount -1;
++    return bRet;
++}
++
++sal_Int32 BaseResultSet::getRow(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row +1;
++}
++
++sal_Bool BaseResultSet::absolute( sal_Int32 row ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    if( row > 0 )
++    {
++        m_row = row -1;
++        if( m_row > m_rowCount )
++            m_row = m_rowCount;
++    }
++    else
++    {
++        m_row = m_rowCount + row;
++        if( m_row < -1 )
++            m_row = -1;
++    }
++    return sal_True;
++}
++
++sal_Bool BaseResultSet::relative( sal_Int32 rows ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row += rows;
++
++    if( m_row > m_rowCount )
++        m_row = m_rowCount;
++    else if ( m_row < -1 )
++        m_row = -1;
++    return sal_True;
++}
++
++sal_Bool BaseResultSet::previous(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    sal_Bool bRet = ( m_row != -1 );
++    if( bRet )
++        m_row --;
++    return bRet;
++}
++
++void BaseResultSet::refreshRow(  ) throw (SQLException, RuntimeException)
++{
++    // TODO: not supported for now
++}
++
++sal_Bool BaseResultSet::rowUpdated(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool BaseResultSet::rowInserted(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool BaseResultSet::rowDeleted(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++Reference< XInterface > BaseResultSet::getStatement() throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_owner;
++}
++
++
++//----------------- XRow interface ----------------------------------------------------
++
++sal_Bool BaseResultSet::wasNull(  ) throw (SQLException, RuntimeException)
++{
++    return m_wasNull;
++}
++
++Any BaseResultSet::convertTo( const OUString & str , const Type & type )
++{
++    Any aRet;
++    try
++    {
++        aRet = m_tc->convertTo( makeAny(str), type );
++    }
++    catch( com::sun::star::lang::IllegalArgumentException & e )
++    {}
++    catch( com::sun::star::script::CannotConvertException & e )
++    {}
++    return aRet;
++}
++
++sal_Bool BaseResultSet::getBoolean( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++
++    OUString str = getValueAsString( columnIndex );
++
++    if( str.getLength() > 0 )
++    {
++        switch(str[0])
++        {
++        case '1':
++        case 't':
++        case 'T':
++        case 'y':
++        case 'Y':
++
++            return sal_True;
++        }
++    }
++    return sal_False;
++}
++
++sal_Int8 BaseResultSet::getByte( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int8 b = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &b )) >>= b;
++    return b;
++}
++
++sal_Int16 BaseResultSet::getShort( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int16 i = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
++    return i;
++}
++
++OUString BaseResultSet::getString( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex);
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    OUString ret = getValueAsString(  columnIndex );
++    return ret;
++}
++
++sal_Int32 BaseResultSet::getInt( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int32 i = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
++    return i;
++}
++
++sal_Int64 BaseResultSet::getLong( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int64 i = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
++    return i;
++}
++
++float BaseResultSet::getFloat( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    float f = 0.;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &f )) >>= f;
++    return f;
++}
++
++double BaseResultSet::getDouble( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    double d = 0.;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &d )) >>= d;
++    return d;
++}
++
++Sequence< sal_Int8 > BaseResultSet::getBytes( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++
++    // is not supported
++//      m_wasNull = PQgetisnull( m_result, m_row, columnIndex -1 );
++//      size_t length;
++//      char * res = (char*) PQunescapeBytea(
++//          (unsigned char*) PQgetvalue( m_result, m_row, columnIndex -1 ), &length);
++//      Sequence< sal_Int8 > ret( (sal_Int8*)res, length );
++//      if( res )
++//          free( res );
++//      return ret;
++    return Sequence< sal_Int8 > ();
++}
++
++::com::sun::star::util::Date BaseResultSet::getDate( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getDate", *this );
++    return com::sun::star::util::Date();
++}
++
++::com::sun::star::util::Time BaseResultSet::getTime( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getTime", *this );
++    return com::sun::star::util::Time();
++}
++
++::com::sun::star::util::DateTime BaseResultSet::getTimestamp( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getTimestamp", *this );
++    return com::sun::star::util::DateTime();
++}
++
++Reference< ::com::sun::star::io::XInputStream > BaseResultSet::getBinaryStream( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getBinaryStream", *this );
++    return 0;
++}
++
++Reference< ::com::sun::star::io::XInputStream > BaseResultSet::getCharacterStream( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getCharacterStream", *this );
++    return 0;
++}
++
++Any BaseResultSet::getObject(
++        sal_Int32 /*columnIndex*/,
++        const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getObject", *this );
++    return Any();
++}
++
++Reference< ::com::sun::star::sdbc::XRef > BaseResultSet::getRef( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getRef", *this );
++    return Reference< com::sun::star::sdbc::XRef > ();
++}
++
++Reference< ::com::sun::star::sdbc::XBlob > BaseResultSet::getBlob( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getBlob", *this );
++    return Reference< com::sun::star::sdbc::XBlob > ();
++}
++
++Reference< ::com::sun::star::sdbc::XClob > BaseResultSet::getClob( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getClob", *this );
++    return Reference< com::sun::star::sdbc::XClob > ();
++}
++
++Reference< ::com::sun::star::sdbc::XArray > BaseResultSet::getArray( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getArray", *this );
++    return NULL;
++}
++
++
++::cppu::IPropertyArrayHelper & BaseResultSet::getInfoHelper()
++{
++    return getResultSetPropertyArrayHelper(); 
++}
++
++
++sal_Bool BaseResultSet::convertFastPropertyValue(
++		Any & /*rConvertedValue*/, Any & /*rOldValue*/, sal_Int32 nHandle, const Any& rValue )
++		throw (IllegalArgumentException)
++{
++    sal_Bool bRet;
++    switch( nHandle )
++    {
++    case BASERESULTSET_CURSOR_NAME:
++    {
++        OUString val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    case BASERESULTSET_ESCAPE_PROCESSING:
++    {
++        sal_Bool val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    case BASERESULTSET_FETCH_DIRECTION:
++    case BASERESULTSET_FETCH_SIZE:
++    case BASERESULTSET_RESULT_SET_CONCURRENCY:
++    case BASERESULTSET_RESULT_SET_TYPE:
++    {
++        sal_Int32 val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    default:
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_resultset: Invalid property handle (" );
++        buf.append( nHandle );
++        buf.appendAscii( ")" );
++        throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
++    }
++    }
++    return bRet;
++}
++    
++
++void BaseResultSet::setFastPropertyValue_NoBroadcast(
++    sal_Int32 nHandle,const Any& rValue ) throw (Exception)
++{
++    m_props[nHandle] = rValue;
++}
++
++void BaseResultSet::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
++{
++    rValue = m_props[nHandle];
++}
++
++Reference < XPropertySetInfo >  BaseResultSet::getPropertySetInfo()
++        throw(RuntimeException)
++{
++    return OPropertySetHelper::createPropertySetInfo( getResultSetPropertyArrayHelper() );
++}
++
++void BaseResultSet::disposing()
++{
++    close();
++}
++
++void BaseResultSet::checkColumnIndex(sal_Int32 index ) throw ( SQLException, RuntimeException )
++{
++    if( index < 1 || index > m_fieldCount )
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_resultset: index out of range (" );
++        buf.append( index );
++        buf.appendAscii( ", allowed range is 1 to " );
++        buf.append( m_fieldCount );
++        buf.appendAscii( ")" );
++        throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
++    }
++
++    if( m_row < 0 || m_row >= m_rowCount )
++    {
++        OUStringBuffer buf( 128 );
++        buf.appendAscii( "mdb_resultset: row index out of range, allowed is 1 to " );
++        buf.append( m_rowCount );
++        buf.appendAscii( ", got " );
++        buf.append( index );
++        throw SQLException( buf.makeStringAndClear(), *this, OUString(),1, Any() );
++    }
++}
++
++
++}
+Index: connectivity/source/drivers/mdb/mdb_baseresultset.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_baseresultset.hxx
+diff -N connectivity/source/drivers/mdb/mdb_baseresultset.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_baseresultset.hxx	12 Dec 2005 10:02:29 -0000	1.1.4.2
+@@ -0,0 +1,248 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#ifndef _PG_BASERESULTSET_HXX_
++#define _PG_BASERESULTSET_HXX_
++
++#include <cppuhelper/propshlp.hxx>
++#include <cppuhelper/component.hxx>
++
++#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
++#include <com/sun/star/sdbc/XRow.hpp>
++#include <com/sun/star/sdbc/XCloseable.hpp>
++#include <com/sun/star/sdbc/XColumnLocate.hpp>
++#include "mdb_connection.hxx"
++
++namespace mdb_sdbc_driver
++{
++
++static const sal_Int32 BASERESULTSET_CURSOR_NAME = 0;
++static const sal_Int32 BASERESULTSET_ESCAPE_PROCESSING = 1;
++static const sal_Int32 BASERESULTSET_FETCH_DIRECTION = 2;
++static const sal_Int32 BASERESULTSET_FETCH_SIZE = 3;
++static const sal_Int32 BASERESULTSET_RESULT_SET_CONCURRENCY = 4;
++static const sal_Int32 BASERESULTSET_RESULT_SET_TYPE = 5;
++
++#define BASERESULTSET_SIZE 6
++
++class BaseResultSet : public cppu::OComponentHelper,
++                      public cppu::OPropertySetHelper,
++                      public com::sun::star::sdbc::XCloseable,
++                      public com::sun::star::sdbc::XResultSetMetaDataSupplier,
++                      public com::sun::star::sdbc::XResultSet,
++                      public com::sun::star::sdbc::XRow,
++                      public com::sun::star::sdbc::XColumnLocate
++{
++protected:
++    com::sun::star::uno::Any m_props[BASERESULTSET_SIZE];
++    com::sun::star::uno::Reference< com::sun::star::uno::XInterface > m_owner;
++    com::sun::star::uno::Reference< com::sun::star::script::XTypeConverter > m_tc;
++    ::rtl::Reference< RefCountedMutex > m_refMutex;
++    sal_Int32 m_row;
++    sal_Int32 m_rowCount;
++    sal_Int32 m_fieldCount;
++    sal_Bool  m_wasNull;
++
++public:
++    inline cppu::OBroadcastHelper & getRBHelper() { return OComponentHelper::rBHelper;}
++    
++protected:
++    /** mutex should be locked before called
++     */
++    virtual void checkClosed()
++        throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException ) = 0;
++    virtual void checkColumnIndex( sal_Int32 index )
++        throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
++        
++    virtual ::rtl::OUString getValueAsString( sal_Int32 columnIndex ) = 0;
++    com::sun::star::uno::Any convertTo(
++        const ::rtl::OUString &str, const com::sun::star::uno::Type &type );
++
++protected:
++    BaseResultSet(
++        const ::rtl::Reference< RefCountedMutex > & mutex,
++        const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
++        sal_Int32 rowCount,
++        sal_Int32 columnCount,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::script::XTypeConverter > &tc );
++    ~BaseResultSet();
++    
++public: // XInterface
++    virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
++    virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
++    virtual com::sun::star::uno::Any  SAL_CALL queryInterface(
++        const com::sun::star::uno::Type & reqType )
++        throw (com::sun::star::uno::RuntimeException);
++
++public: // XCloseable
++    virtual void SAL_CALL close(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) = 0;
++
++public: // XTypeProvider, first implemented by OPropertySetHelper
++    virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
++        throw( com::sun::star::uno::RuntimeException );
++    virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
++        throw( com::sun::star::uno::RuntimeException );
++
++public: // XResultSetMetaDataSupplier
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) = 0;
++
++public: // XResultSet
++    // Methods
++    virtual sal_Bool SAL_CALL next(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isBeforeFirst(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isAfterLast(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isFirst(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isLast(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL beforeFirst(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL afterLast(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL first(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL last(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getRow(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL absolute( sal_Int32 row )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL relative( sal_Int32 rows )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL previous(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL refreshRow(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL rowUpdated(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL rowInserted(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL rowDeleted(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement()
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++
++public: // XRow
++    virtual sal_Bool SAL_CALL wasNull(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual float SAL_CALL getFloat( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual double SAL_CALL getDouble( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getObject(
++        sal_Int32 columnIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XColumnLocate
++    virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) = 0;
++    
++public: // OPropertySetHelper    
++	virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
++
++	virtual sal_Bool SAL_CALL convertFastPropertyValue(
++		::com::sun::star::uno::Any & rConvertedValue,
++		::com::sun::star::uno::Any & rOldValue,
++		sal_Int32 nHandle,
++		const ::com::sun::star::uno::Any& rValue )
++		throw (::com::sun::star::lang::IllegalArgumentException);
++    
++	virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
++		sal_Int32 nHandle,
++		const ::com::sun::star::uno::Any& rValue )
++		throw (::com::sun::star::uno::Exception);
++
++	virtual void SAL_CALL getFastPropertyValue(
++		::com::sun::star::uno::Any& rValue,
++		sal_Int32 nHandle ) const;
++
++	// XPropertySet
++	::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo >  SAL_CALL getPropertySetInfo()
++        throw(com::sun::star::uno::RuntimeException);
++
++public: // OComponentHelper
++    virtual void SAL_CALL disposing();
++
++    
++};
++                  
++}
++#endif
+Index: connectivity/source/drivers/mdb/mdb_connection.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_connection.cxx
+diff -N connectivity/source/drivers/mdb/mdb_connection.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_connection.cxx	12 Jul 2006 10:20:32 -0000	1.1.4.3
+@@ -0,0 +1,479 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#include <list>
++#include <string.h>
++
++#include "mdb_connection.hxx"
++#include "mdb_statement.hxx"
++#include "mdb_preparedstatement.hxx"
++#include "mdb_databasemetadata.hxx"
++
++#include <rtl/ustrbuf.hxx>
++#include <rtl/strbuf.hxx>
++#include <rtl/uuid.h>
++
++#include <cppuhelper/implementationentry.hxx>
++#include <cppuhelper/implbase1.hxx>
++
++#include <connectivity/dbexception.hxx>
++
++#include <com/sun/star/beans/PropertyValue.hpp>
++
++using rtl::OUStringBuffer;
++using rtl::OUString;
++using rtl::OString;
++using rtl::OStringBuffer;
++using rtl::OUStringToOString;
++using osl::MutexGuard;
++
++using com::sun::star::container::XNameAccess;
++
++using com::sun::star::lang::XComponent;
++using com::sun::star::lang::XInitialization;
++using com::sun::star::lang::IllegalArgumentException;
++
++using com::sun::star::script::XTypeConverter;
++
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++using com::sun::star::uno::UNO_QUERY;
++using com::sun::star::uno::XComponentContext;
++using com::sun::star::uno::Any;
++
++using com::sun::star::beans::PropertyValue;
++
++using com::sun::star::sdbc::XConnection;
++using com::sun::star::sdbc::XCloseable;
++using com::sun::star::sdbc::SQLException;
++using com::sun::star::sdbc::XWarningsSupplier;
++using com::sun::star::sdbc::XPreparedStatement;
++using com::sun::star::sdbc::XStatement;
++using com::sun::star::sdbc::XDatabaseMetaData;
++
++namespace mdb_sdbc_driver
++{
++
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++
++// ______________________________________________________________________________
++// Helper class for statement lifetime management
++class ClosableReference : public cppu::WeakImplHelper1< com::sun::star::uno::XReference >
++{
++    Connection *m_conn;
++    ::rtl::ByteSequence m_id;
++public:
++    ClosableReference( const ::rtl::ByteSequence & id , Connection *that )
++        : m_conn( that ), m_id( id )
++    {
++        that->acquire();
++    }
++    
++    virtual ~ClosableReference()
++    {
++        if( m_conn )
++            m_conn->release();
++    }
++        
++    virtual void SAL_CALL dispose() throw ()
++    {
++        if( m_conn )
++        {
++            m_conn->removeFromWeakMap(m_id);
++            m_conn->release();
++            m_conn = 0;
++        }
++    }
++};
++
++OUString 	ConnectionGetImplementationName()
++{
++    return OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.connectivity.mdb.Connection" ) );
++}
++com::sun::star::uno::Sequence<rtl::OUString> ConnectionGetSupportedServiceNames(void)
++{
++    OUString serv( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdbc.Connection" ) );
++    return Sequence< OUString> (&serv,1);
++}
++
++Connection::~Connection()
++{
++    POSTGRE_TRACE( "dtor connection" );
++    if( m_settings.pConnection )
++    {
++        //PQfinish( m_settings.pConnection );
++        m_settings.pConnection = 0;
++    }
++}
++typedef ::std::list< ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XCloseable > > CloseableList;
++
++void Connection::close() throw ( SQLException, RuntimeException )
++{
++    CloseableList lst;
++
++    {
++        MutexGuard guard( m_refMutex->mutex );
++        // silently ignore, if the connection has been closed already
++        if( m_settings.pConnection )
++        {
++            //PQfinish( m_settings.pConnection );
++            m_settings.pConnection = 0;
++        }
++
++        for( WeakHashMap::iterator ii = m_myStatements.begin() ;
++             ii != m_myStatements.end() ;
++             ++ii )
++        {
++            Reference< XCloseable > r = ii->second;
++            if( r.is() )
++                lst.push_back( r );
++        }
++    }
++
++    // close all created statements 
++    for( CloseableList::iterator ii = lst.begin(); ii != lst.end() ; ++ii )
++        ii->get()->close();
++}
++
++
++void Connection::removeFromWeakMap( const ::rtl::ByteSequence & id )
++{
++    // shrink the list !
++    MutexGuard guard( m_refMutex->mutex );
++    WeakHashMap::iterator ii = m_myStatements.find( id );
++    if( ii != m_myStatements.end() )
++        m_myStatements.erase( ii );
++}
++
++Reference< XStatement > Connection::createStatement(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++
++    Statement *stmt = new Statement( m_refMutex, this , &m_settings );
++    Reference< XStatement > ret( stmt );
++    ::rtl::ByteSequence id( 16 );
++    rtl_createUuid( (sal_uInt8*) id.getConstArray(), 0 , sal_False );
++    m_myStatements[ id ] = Reference< XCloseable > ( stmt );
++    stmt->queryAdapter()->addReference( new ClosableReference( id, this ) );
++    return ret;
++}
++
++Reference< XPreparedStatement > Connection::prepareStatement( const ::rtl::OUString& sql )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++
++    rtl::OString byteSql = OUStringToOString( sql, RTL_TEXTENCODING_UTF8 );
++    PreparedStatement *stmt = new PreparedStatement( m_refMutex, this, &m_settings, byteSql );
++    Reference< XPreparedStatement > ret = stmt;
++    
++    ::rtl::ByteSequence id( 16 );
++    rtl_createUuid( (sal_uInt8*) id.getConstArray(), 0 , sal_False );
++    m_myStatements[ id ] = Reference< XCloseable > ( stmt );
++    stmt->queryAdapter()->addReference( new ClosableReference( id, this ) );
++    return ret;
++}
++
++Reference< XPreparedStatement > Connection::prepareCall( const ::rtl::OUString& /*sql*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XConnection::prepareCall", *this );
++    return NULL;
++}
++
++
++::rtl::OUString Connection::nativeSQL( const ::rtl::OUString& sql )
++        throw (SQLException, RuntimeException)
++{
++    return sql;
++}
++
++void Connection::setAutoCommit( sal_Bool /*autoCommit*/ ) throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XConnection::setAutoCommit", *this );
++    // UNSUPPORTED
++}
++
++sal_Bool Connection::getAutoCommit(  ) throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED
++    return sal_True;
++}
++
++void Connection::commit(  ) throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED
++}
++
++void Connection::rollback(  ) throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED    
++}
++
++sal_Bool Connection::isClosed(  ) throw (SQLException, RuntimeException)
++{
++    return m_settings.pConnection == 0;
++}
++
++Reference< XDatabaseMetaData > Connection::getMetaData(  )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new DatabaseMetaData( m_refMutex, this, &m_settings );
++}
++
++void  Connection::setReadOnly( sal_Bool /*readOnly*/ ) throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XConnection::setReadOnly", *this );
++    // UNSUPPORTED
++
++}
++
++sal_Bool Connection::isReadOnly(  ) throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED
++    return sal_False;
++}
++
++void Connection::setCatalog( const ::rtl::OUString& /*catalog*/ )
++        throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED
++}
++
++::rtl::OUString Connection::getCatalog(  ) throw (SQLException, RuntimeException)
++{
++    OUString ret;
++    MutexGuard ( m_refMutex->mutex );
++    if( m_settings.pConnection == 0 )
++    {
++        throw SQLException( ASCII_STR( "mdb_connection: connection is closed" ), *this,
++                            OUString(), 1, Any() );
++    }
++    char * p = 0;//PQdb(m_settings.pConnection );
++    return OUString( p, strlen(p) ,  m_settings.encoding );
++}
++
++void Connection::setTransactionIsolation( sal_Int32 /*level*/ )
++        throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED
++}
++
++sal_Int32 Connection::getTransactionIsolation(  ) throw (SQLException, RuntimeException)
++{
++    // UNSUPPORTED
++    return 0;
++}
++
++Reference< XNameAccess > Connection::getTypeMap(  ) throw (SQLException, RuntimeException)
++{
++    Reference< XNameAccess > t;
++    {
++        MutexGuard guard( m_refMutex->mutex );
++        t = m_typeMap;
++    }
++    return t;
++}
++
++void Connection::setTypeMap( const Reference< XNameAccess >& typeMap )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    m_typeMap = typeMap;
++}
++Any Connection::getWarnings(  ) throw (SQLException, RuntimeException)
++{
++    return Any();
++}
++
++void Connection::clearWarnings(  ) throw (SQLException, RuntimeException)
++{
++}
++
++
++void Connection::initialize( const Sequence< Any >& aArguments )
++        throw (Exception, RuntimeException)
++{
++	int i=0;
++	if(i)
++	{
++		return ;
++	}
++    OUString url;
++    Sequence< PropertyValue > args;
++
++    Reference< XTypeConverter > tc( m_ctx->getServiceManager()->createInstanceWithContext(
++        OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.script.Converter" ) ), m_ctx ),
++                                    UNO_QUERY);
++    if( ! tc.is() )
++    {
++        throw RuntimeException(
++            OUString( RTL_CONSTASCII_USTRINGPARAM("mdb_driver: Couldn't instantiate converter service" )),
++            Reference< XInterface > () );
++    }
++    if( aArguments.getLength() != 2 )
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_driver: expected 2 arguments, got " );
++        buf.append( aArguments.getLength( ) );
++        throw IllegalArgumentException(buf.makeStringAndClear(), Reference< XInterface > () , 0 );
++    }
++
++    if( ! (aArguments[0] >>= url) )
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_driver: expected string as first argument, got " );
++        buf.append( aArguments[0].getValueType().getTypeName() );
++        throw IllegalArgumentException( buf.makeStringAndClear() , *this, 0 );
++    }
++
++    tc->convertTo( aArguments[1], getCppuType( &args ) ) >>= args;
++
++    OString o;
++    int nColon = url.indexOf( ':' );
++    if( nColon != -1 )
++    {
++        nColon = url.indexOf( ':' , 1+ nColon );
++        if( nColon != -1 )
++        {
++             o = OUStringToOString( url.getStr()+nColon+1, RTL_TEXTENCODING_UTF8);
++        }
++    }
++    char *test1 = strdup(o.getStr());
++    m_settings.pConnection = OpenMDB(test1);
++    if( ! m_settings.pConnection )
++        throw RuntimeException( OUString( RTL_CONSTASCII_USTRINGPARAM( "mdb_driver: out of memory" ) ),
++                                Reference< XInterface > () );
++    if( !m_settings.pConnection  )
++    {
++        OUStringBuffer buf( 128 );
++
++//        const char * error = PQerrorMessage( m_settings.pConnection );
++//        OUString errorMessage( error, strlen( error) , RTL_TEXTENCODING_ASCII_US );
++        buf.appendAscii( "Couldn't establish database connection to '" );
++        buf.append( url );
++        buf.appendAscii( "' (" );
++//        buf.append( errorMessage );
++        buf.appendAscii( ")" );
++//        PQfinish( m_settings.pConnection );
++        m_settings.pConnection = 0;
++//        throw SQLException( buf.makeStringAndClear(), *this, errorMessage, CONNECTION_BAD, Any() );
++    }
++//    PQsetClientEncoding( m_settings.pConnection, "UNICODE" );
++    //char *p = 0;//PQuser( m_settings.pConnection );
++    //m_settings.user = OUString( p, strlen(p), RTL_TEXTENCODING_UTF8);
++//    p = PQdb( m_settings.pConnection );
++    //m_settings.catalog = OUString( p, strlen(p), RTL_TEXTENCODING_UTF8); 
++    m_settings.tc = tc;
++	free(test1);
++}
++
++void Connection::disposing()
++{
++    close();
++}
++
++void Connection::checkClosed() throw ( SQLException, RuntimeException )
++{
++    if( !m_settings.pConnection )
++        throw SQLException( ASCII_STR( "mdb_connection: Connection already closed" ),
++                            *this, OUString(), 1, Any() );
++}
++
++Reference< XInterface >  ConnectionCreateInstance(
++    const Reference< XComponentContext > & ctx ) throw (Exception)
++{
++    ::rtl::Reference< RefCountedMutex > ref = new RefCountedMutex();
++    return * new Connection( ref, ctx );
++}
++
++
++}
++
++
++
++
++
++
++static struct cppu::ImplementationEntry g_entries[] =
++{
++	{
++		mdb_sdbc_driver::ConnectionCreateInstance, mdb_sdbc_driver::ConnectionGetImplementationName,
++		mdb_sdbc_driver::ConnectionGetSupportedServiceNames, cppu::createSingleComponentFactory,
++		0 , 0
++	},
++	{ 0, 0, 0, 0, 0, 0 }
++};
++
++
++extern "C"
++{
++
++//==================================================================================================
++void SAL_CALL component_getImplementationEnvironment(
++	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++//==================================================================================================
++sal_Bool SAL_CALL component_writeInfo(
++	void * pServiceManager, void * pRegistryKey )
++{
++	return cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
++}
++//==================================================================================================
++void * SAL_CALL component_getFactory(
++	const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
++{
++	return cppu::component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
++}
++
++}
++
+Index: connectivity/source/drivers/mdb/mdb_connection.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_connection.hxx
+diff -N connectivity/source/drivers/mdb/mdb_connection.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_connection.hxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,201 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#ifndef _MDB_CONNECTION_HXX_
++#define _MDB_CONNECTION_HXX_
++#include <hash_map>
++#include <com/sun/star/uno/XComponentContext.hpp>
++
++#include <com/sun/star/lang/XInitialization.hpp>
++
++#include <com/sun/star/script/XTypeConverter.hpp>
++
++#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
++#include <com/sun/star/sdbc/XConnection.hpp>
++
++#include <rtl/ref.hxx>
++#include <rtl/byteseq.hxx>
++
++#include <salhelper/simplereferenceobject.hxx>
++
++#include <cppuhelper/weakref.hxx>
++#include <cppuhelper/compbase3.hxx>
++
++#include <mdb_wrapper.hxx>
++
++namespace mdb_sdbc_driver
++{
++#ifdef POSTGRE_TRACE
++#define POSTGRE_TRACE( x ) printf( "%s\n" , x )
++#define POSTGRE_TRACE_1( x ,y) printf( "%s %s\n" , x ,y )
++#else
++#define POSTGRE_TRACE(x) ((void)0)
++#define POSTGRE_TRACE_1(x,y) ((void)0)
++#endif
++
++class RefCountedMutex : public salhelper::SimpleReferenceObject
++{
++public:
++    osl::Mutex mutex;
++};
++
++struct ConnectionSettings
++{
++    rtl_TextEncoding encoding;
++    ::MdbHandle *pConnection;
++    //::rtl::OString pConnection;
++    ::com::sun::star::uno::Reference< com::sun::star::script::XTypeConverter > tc;
++    ::rtl::OUString user;
++    ::rtl::OUString catalog;
++};
++
++typedef cppu::WeakComponentImplHelper3<
++    com::sun::star::sdbc::XConnection,
++    com::sun::star::sdbc::XWarningsSupplier,
++    com::sun::star::lang::XInitialization > ConnectionBase;
++
++struct HashByteSequence
++{
++    sal_Int32 operator () ( const ::rtl::ByteSequence & seq ) const
++    {
++        return *(sal_Int32*) seq.getConstArray();
++    }
++};
++
++typedef ::std::hash_map<
++    ::rtl::ByteSequence,
++    ::com::sun::star::uno::WeakReference< com::sun::star::sdbc::XCloseable >,
++    HashByteSequence,
++    ::std::equal_to< ::rtl::ByteSequence >
++> WeakHashMap;
++
++class Connection : public ConnectionBase
++{
++    ::com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_ctx;
++    ::com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > m_typeMap;
++    ConnectionSettings m_settings;
++    ::rtl::Reference< RefCountedMutex > m_refMutex;
++    WeakHashMap m_myStatements;
++    
++private:
++    void checkClosed()
++        throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
++    
++public:
++    Connection(
++        const rtl::Reference< RefCountedMutex > &refMutex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > & ctx )
++        : ConnectionBase( refMutex->mutex ), m_ctx( ctx ) , m_refMutex( refMutex )
++    {
++        m_settings.encoding = RTL_TEXTENCODING_UTF8;
++        m_settings.pConnection = 0;
++    }
++
++    ~Connection( );
++
++public: // XCloseable
++    virtual void SAL_CALL close()
++        throw ( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException );
++    
++public: // XConnection
++    
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XStatement > SAL_CALL createStatement(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) ;
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareStatement(
++        const ::rtl::OUString& sql )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareCall(
++        const ::rtl::OUString& sql )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL nativeSQL( const ::rtl::OUString& sql )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setAutoCommit( sal_Bool autoCommit )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL getAutoCommit(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL commit(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL rollback(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isClosed(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< com::sun::star::sdbc::XDatabaseMetaData > SAL_CALL getMetaData(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setReadOnly( sal_Bool readOnly )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isReadOnly(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setCatalog( const ::rtl::OUString& catalog )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getCatalog(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setTransactionIsolation( sal_Int32 level )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getTransactionIsolation(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > SAL_CALL getTypeMap(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setTypeMap(
++        const ::com::sun::star::uno::Reference< com::sun::star::container::XNameAccess >& typeMap )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    
++public: // XWarningsSupplier
++    virtual ::com::sun::star::uno::Any SAL_CALL getWarnings(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL clearWarnings(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XInitialization
++    virtual void SAL_CALL initialize(
++        const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
++        throw (com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
++
++public: 
++    virtual void SAL_CALL disposing();
++
++    
++public: // helper function
++    void removeFromWeakMap( const ::rtl::ByteSequence & seq );
++};
++
++}
++#endif
+Index: connectivity/source/drivers/mdb/mdb_databasemetadata.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_databasemetadata.cxx
+diff -N connectivity/source/drivers/mdb/mdb_databasemetadata.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_databasemetadata.cxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,1304 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#include <hash_map>
++
++#include "mdb_databasemetadata.hxx"
++#include "mdb_driver.hxx"
++#include "mdb_sequenceresultset.hxx"
++
++#include "FDatabaseMetaDataResultSet.hxx"
++
++#include<com/sun/star/sdbc/TransactionIsolation.hpp>
++#include<com/sun/star/sdbc/ResultSetType.hpp>
++#include<com/sun/star/sdbc/XPreparedStatement.hpp>
++#include<com/sun/star/sdbc/XParameters.hpp>
++#include<com/sun/star/sdbc/DataType.hpp>
++#include<com/sun/star/sdbc/ColumnValue.hpp>
++
++using ::osl::MutexGuard;
++
++using ::rtl::OUString;
++
++using com::sun::star::sdbc::SQLException;
++using com::sun::star::sdbc::XStatement;
++using com::sun::star::sdbc::XResultSet;
++using com::sun::star::sdbc::XRow;
++using com::sun::star::sdbc::XCloseable;
++using com::sun::star::sdbc::XParameters;
++using com::sun::star::sdbc::XPreparedStatement;
++
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Sequence;
++
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Any;
++using com::sun::star::uno::makeAny;
++using com::sun::star::uno::UNO_QUERY;
++
++using connectivity::ODatabaseMetaDataResultSet;
++
++namespace mdb_sdbc_driver
++{
++
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++static const int MAX_COLUMNS_IN_GROUPBY = 16;
++static const int MAX_COLUMNS_IN_INDEX = 32;
++static const int MAX_COLUMNS_IN_ORDER_BY = 16;
++static const int MAX_COLUMNS_IN_SELECT = 1024;
++static const int MAX_IDENTIFIER_LENGTH = 63;
++static const int MAX_COLUMNS_IN_TABLE = 1024;
++static const int MAX_CONNECTIONS = 0xffff;
++static const int MAX_STATEMENTS = 0xffff;
++static const int MAX_STATEMENT_LENGTH = -1;
++static const int MAX_TABLES_IN_SELECT = 0xffff;
++static const int MAX_USER_NAME_LENGTH = MAX_IDENTIFIER_LENGTH;
++
++
++// alphabetically ordered !
++static const int PRIVILEGE_CREATE     = 0x1;  
++static const int PRIVILEGE_DELETE     = 0x2;  
++static const int PRIVILEGE_EXECUTE    = 0x4;  
++static const int PRIVILEGE_INSERT     = 0x8;  
++static const int PRIVILEGE_REFERENCES = 0x10; 
++static const int PRIVILEGE_RULE       = 0x20; 
++static const int PRIVILEGE_SELECT     = 0x40; 
++static const int PRIVILEGE_TEMPORARY  = 0x80; 
++static const int PRIVILEGE_TRIGGER    = 0x100;
++static const int PRIVILEGE_UPDATE     = 0x200;
++static const int PRIVILEGE_USAGE      = 0x400;
++static const int PRIVILEGE_MAX = PRIVILEGE_USAGE;
++
++typedef ::std::hash_map
++<
++   OUString,
++   sal_Int32,
++   rtl::OUStringHash,
++   ::std::equal_to< OUString >
++> BaseTypeMap;
++
++typedef std::vector< Sequence< Any > > AnyVector;
++
++struct Strings
++{
++    OUString SYSTEM_TABLE;
++    OUString TABLE;
++    OUString VIEW;
++    OUString UNKNOWN;
++    OUString YES;
++    OUString NO;
++    OUString NO_NULLS;
++    OUString NULABLE;
++    OUString NULLABLE_UNKNOWN;
++    OUString SELECT;
++    OUString UPDATE;
++    OUString INSERT;
++    OUString DELETE;
++    OUString RULE;
++    OUString REFERENCES;
++    OUString TRIGGER;
++    OUString EXECUTE;
++    OUString USAGE;
++    OUString CREATE;
++    OUString TEMPORARY;
++    
++    Sequence< OUString > tablesRowNames;
++    Sequence< OUString > columnRowNames;
++    Sequence< OUString > primaryKeyNames;
++    Sequence< OUString > tablePrivilegesNames;
++    Sequence< OUString > schemaNames;
++    Sequence< OUString > tableTypeNames;
++    Sequence< Sequence< Any > > tableTypeData;
++    
++    BaseTypeMap baseTypeMap;
++};
++
++
++struct BaseTypeDef { const char * typeName; sal_Int32 value; };
++
++static Sequence< OUString > createStringSequence( const char * name[] , int length )
++{
++    Sequence< OUString > seq( length );
++    for( int i = 0; i < length; i ++ )
++    {
++        seq[i] = OUString( name[i] , strlen( name[i] ), RTL_TEXTENCODING_ASCII_US );
++    }
++    return seq;
++}
++const char * typeInfoColumn[] =
++{
++    "TYPE_NAME", "DATA_TYPE", "PRECISION", "LITERAL_PREFIX",
++    "LITERAL_SUFFIX", "CREATE_PARAMS", "NULLABLE", "CASE_SENSITIVE",
++    "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_INCREMENT",
++    "LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE",
++    "SQL_DATETIME_SUB", "NUM_PREC_RADIX"
++};
++
++static Strings & sp()
++{
++    static Strings * p;
++    if( ! p )
++    {
++        ::osl::MutexGuard guard( ::osl::Mutex::getGlobalMutex() );
++        if( ! p )
++        {
++            static Strings statStrings;
++            statStrings.SYSTEM_TABLE = ASCII_STR( "SYSTEM_TABLE" );
++            statStrings.TABLE = ASCII_STR( "TABLE" );
++            statStrings.VIEW = ASCII_STR( "VIEW" );
++            statStrings.UNKNOWN = ASCII_STR( "UNKNOWN" );
++            statStrings.YES = ASCII_STR( "YES" );
++            statStrings.NO = ASCII_STR( "NO" );
++            statStrings.NO_NULLS = ASCII_STR( "NO_NULLS" );
++            statStrings.NULABLE = ASCII_STR( "NULABLE" );
++            statStrings.NULLABLE_UNKNOWN = ASCII_STR( "NULLABLE_UNKNOWN" );
++
++            statStrings.tablesRowNames = Sequence< OUString > ( 5 );
++            statStrings.tablesRowNames[0] = ASCII_STR( "TABLE_CAT" );
++            statStrings.tablesRowNames[1] = ASCII_STR( "TABLE_SCHEM" );
++            statStrings.tablesRowNames[2] = ASCII_STR( "TABLE_NAME" );
++            statStrings.tablesRowNames[3] = ASCII_STR( "TABLE_TYPE" );
++            statStrings.tablesRowNames[4] = ASCII_STR( "REMARKS" );
++
++            statStrings.primaryKeyNames = Sequence< OUString > ( 6 );
++            statStrings.primaryKeyNames[0] = ASCII_STR( "TABLE_CAT" );
++            statStrings.primaryKeyNames[1] = ASCII_STR( "TABLE_SCHEM" );
++            statStrings.primaryKeyNames[2] = ASCII_STR( "TABLE_NAME" );
++            statStrings.primaryKeyNames[3] = ASCII_STR( "COLUMN_NAME" );
++            statStrings.primaryKeyNames[4] = ASCII_STR( "KEY_SEQ" );
++            statStrings.primaryKeyNames[5] = ASCII_STR( "PK_NAME" );
++
++            statStrings.SELECT = ASCII_STR( "SELECT" );
++            statStrings.UPDATE = ASCII_STR( "UPDATE" );
++            statStrings.INSERT = ASCII_STR( "INSERT" );
++            statStrings.DELETE = ASCII_STR( "DELETE" );
++            statStrings.RULE = ASCII_STR( "RULE" );
++            statStrings.REFERENCES = ASCII_STR( "REFERENCES" );
++            statStrings.TRIGGER = ASCII_STR( "TRIGGER" );
++            statStrings.EXECUTE = ASCII_STR( "EXECUTE" );
++            statStrings.USAGE = ASCII_STR( "USAGE" );
++            statStrings.CREATE = ASCII_STR( "CREATE" );
++            statStrings.TEMPORARY = ASCII_STR( "TEMPORARY" );
++
++            statStrings.schemaNames = Sequence< OUString > ( 1 );
++            statStrings.schemaNames[0] = ASCII_STR( "TABLE_SCHEM" );
++
++            statStrings.tableTypeData = Sequence< Sequence< Any > >( 2 );
++            statStrings.tableTypeData[0] = Sequence< Any > ( 1 );
++            statStrings.tableTypeData[1] = Sequence< Any > ( 1 );
++//            statStrings.tableTypeData[2] = Sequence< Any > ( 1 );
++            statStrings.tableTypeData[1][0] <<= ASCII_STR( "SYSTEM TABLE" );
++            statStrings.tableTypeData[0][0] <<= ASCII_STR( "TABLE" );
++//            statStrings.tableTypeData[2][0] <<= ASCII_STR( "VIEW" );
++            statStrings.tableTypeNames = Sequence< OUString > ( 1 );
++            statStrings.tableTypeNames[0] = ASCII_STR( "TABLE_TYPE" );
++        
++            
++            
++    //     1. TABLE_CAT string =&gt; table catalog (may be NULL )
++    //     2. TABLE_SCHEM string =&gt; table schema (may be NULL )
++    //     3. TABLE_NAME string =&gt; table name
++    //     4. GRANTOR =&gt; grantor of access (may be NULL )
++    //     5. GRANTEE string =&gt; grantee of access
++    //     6. PRIVILEGE string =&gt; name of access (SELECT, INSERT, UPDATE, REFERENCES, ...)
++    //     7. IS_GRANTABLE string =&gt; "YES" if grantee is permitted to grant to
++    //        others; "NO" if not; NULL if unknown
++            const char *tablePrivilegesNames[] =
++                {
++                    "TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "GRANTOR", "GRANTEE", "PRIVILEGE",
++                    "IS_GRANTABLE" 
++                };
++            statStrings.tablePrivilegesNames =
++                createStringSequence( tablePrivilegesNames, 7 );
++            
++            const char * columnNames[] =
++            {
++                "TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME",
++                "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH",
++                "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS",
++                "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH",
++                "ORDINAL_POSITION", "IS_NULLABLE"
++            };
++            statStrings.columnRowNames =
++                createStringSequence( columnNames, 18 );
++
++            BaseTypeDef baseTypeDefs[] =
++            {
++                { "bool" , com::sun::star::sdbc::DataType::BIT },
++                { "bytea", com::sun::star::sdbc::DataType::VARBINARY },
++                { "char" , com::sun::star::sdbc::DataType::CHAR },
++                { "int8" , com::sun::star::sdbc::DataType::BIGINT },
++                { "int2" , com::sun::star::sdbc::DataType::SMALLINT },
++
++                { "int4" , com::sun::star::sdbc::DataType::INTEGER },
++                { "regproc" , com::sun::star::sdbc::DataType::INTEGER },
++                { "oid" , com::sun::star::sdbc::DataType::INTEGER },
++                { "xid" , com::sun::star::sdbc::DataType::INTEGER },
++                { "cid" , com::sun::star::sdbc::DataType::INTEGER },
++
++                { "text", com::sun::star::sdbc::DataType::VARCHAR },
++                { "bpchar", com::sun::star::sdbc::DataType::VARCHAR },
++                { "varchar", com::sun::star::sdbc::DataType::VARCHAR },
++
++                { "float4", com::sun::star::sdbc::DataType::REAL },
++                { "float8", com::sun::star::sdbc::DataType::DOUBLE },
++
++                { "date",  com::sun::star::sdbc::DataType::CHAR }, // switch to date later
++                { "time",  com::sun::star::sdbc::DataType::CHAR }, // switch to time later
++                { 0, 0 }
++
++            };
++            int i;
++            for( i = 0 ; baseTypeDefs[i].typeName ; i ++ )
++            {
++                statStrings.baseTypeMap[
++                    OUString::createFromAscii( baseTypeDefs[i].typeName) ] =
++                           baseTypeDefs[i].value;
++            }
++            p = &statStrings;
++        }
++    }
++    return *p;
++}
++
++    
++void DatabaseMetaData::checkClosed()
++        throw (SQLException, RuntimeException)
++{
++}
++
++DatabaseMetaData::DatabaseMetaData(
++    const ::rtl::Reference< RefCountedMutex > & refMutex,
++    const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection >  & origin,
++    ConnectionSettings *pSettings )
++    : m_refMutex( refMutex ),
++      m_pSettings( pSettings ),
++      m_origin( origin )
++    
++{
++
++}
++
++sal_Bool DatabaseMetaData::allProceduresAreCallable(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::allTablesAreSelectable(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++OUString DatabaseMetaData::getURL(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return OUString();
++}
++
++OUString DatabaseMetaData::getUserName(  ) throw (SQLException, RuntimeException)
++{
++    return m_pSettings->user;
++}
++
++sal_Bool DatabaseMetaData::isReadOnly(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::nullsAreSortedHigh(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::nullsAreSortedLow(  ) throw (SQLException, RuntimeException)
++{
++    return ! nullsAreSortedHigh();
++}
++
++sal_Bool DatabaseMetaData::nullsAreSortedAtStart(  ) throw (SQLException, RuntimeException)
++{
++    return ! nullsAreSortedHigh();
++}
++
++sal_Bool DatabaseMetaData::nullsAreSortedAtEnd(  ) throw (SQLException, RuntimeException)
++{
++    return nullsAreSortedHigh();
++}
++
++OUString DatabaseMetaData::getDatabaseProductName(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( "mdb");
++}
++
++OUString DatabaseMetaData::getDatabaseProductVersion(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( MDBTOOLS_VERSION );
++}
++OUString DatabaseMetaData::getDriverName(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( "mdb-sdbc" );
++}
++
++OUString DatabaseMetaData::getDriverVersion(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( MDB_SDBC_DRIVER_VERSION );
++}
++
++sal_Int32 DatabaseMetaData::getDriverMajorVersion(  ) throw (RuntimeException)
++{
++    return MDB_MAJOR;
++}
++
++sal_Int32 DatabaseMetaData::getDriverMinorVersion(  ) throw (RuntimeException)
++{
++    return MDB_MINOR;
++}
++
++sal_Bool DatabaseMetaData::usesLocalFiles(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::usesLocalFilePerTable(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsMixedCaseIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::storesUpperCaseIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::storesLowerCaseIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::storesMixedCaseIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsMixedCaseQuotedIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::storesUpperCaseQuotedIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::storesLowerCaseQuotedIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::storesMixedCaseQuotedIdentifiers(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++OUString DatabaseMetaData::getIdentifierQuoteString(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( "\"" );
++}
++
++OUString DatabaseMetaData::getSQLKeywords(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR(
++        "ANALYZE,"
++        "ANALYSE,"
++        "DO,"
++        "ILIKE,"
++        "LIMIT,"
++        "NEW,"
++        "OFFSET,"
++        "OLD,"
++        "PLACING" );
++}
++OUString DatabaseMetaData::getNumericFunctions(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return OUString();
++}
++
++OUString DatabaseMetaData::getStringFunctions(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return OUString();
++}
++
++OUString DatabaseMetaData::getSystemFunctions(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return OUString();
++}
++OUString DatabaseMetaData::getTimeDateFunctions(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return OUString();
++}
++OUString DatabaseMetaData::getSearchStringEscape(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( "\\" );
++}
++OUString DatabaseMetaData::getExtraNameCharacters(  ) throw (SQLException, RuntimeException)
++{
++    // TODO
++    return OUString();
++}
++
++sal_Bool DatabaseMetaData::supportsAlterTableWithAddColumn(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsAlterTableWithDropColumn(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsColumnAliasing(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::nullPlusNonNullIsNull(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsTypeConversion(  ) throw (SQLException, RuntimeException)     // TODO, DON'T KNOW
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsConvert( sal_Int32 /*fromType*/, sal_Int32 /*toType*/ ) throw (SQLException, RuntimeException)  // TODO
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsTableCorrelationNames(  ) throw (SQLException, RuntimeException)     // TODO, don't know
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsDifferentTableCorrelationNames(  ) throw (SQLException, RuntimeException) // TODO, don't know
++{
++    return sal_False;
++}
++sal_Bool DatabaseMetaData::supportsExpressionsInOrderBy(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsOrderByUnrelated(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsGroupBy(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsGroupByUnrelated(  ) throw (SQLException, RuntimeException) // TODO, DONT know
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsGroupByBeyondSelect(  ) throw (SQLException, RuntimeException) // TODO, DON'T know
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsLikeEscapeClause(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsMultipleResultSets(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsMultipleTransactions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsNonNullableColumns(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++
++sal_Bool DatabaseMetaData::supportsMinimumSQLGrammar(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsCoreSQLGrammar(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsExtendedSQLGrammar(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsANSI92EntryLevelSQL(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsANSI92FullSQL(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsIntegrityEnhancementFacility(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsOuterJoins(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsFullOuterJoins(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsLimitedOuterJoins(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++OUString DatabaseMetaData::getSchemaTerm(  ) throw (SQLException, RuntimeException)
++{
++    return ASCII_STR( "SCHEMA" );
++}
++
++OUString DatabaseMetaData::getProcedureTerm(  ) throw (SQLException, RuntimeException)
++{
++    // don't know
++    return OUString();
++}
++
++OUString DatabaseMetaData::getCatalogTerm(  ) throw (SQLException, RuntimeException)
++{
++    // TODO is this correct ?
++    return ASCII_STR( "DATABASE" );
++}
++
++sal_Bool DatabaseMetaData::isCatalogAtStart(  ) throw (SQLException, RuntimeException)     // TODO don't know
++{
++
++    return sal_True;
++}
++
++OUString DatabaseMetaData::getCatalogSeparator(  ) throw (SQLException, RuntimeException)
++{
++    // TODO don't know
++    return ASCII_STR( "." );
++}
++
++sal_Bool DatabaseMetaData::supportsSchemasInDataManipulation(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsSchemasInTableDefinitions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsSchemasInIndexDefinitions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsCatalogsInDataManipulation(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsCatalogsInTableDefinitions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsCatalogsInIndexDefinitions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsPositionedDelete(  ) throw (SQLException, RuntimeException)
++{
++    // TODO 
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsPositionedUpdate(  ) throw (SQLException, RuntimeException)
++{
++    // TODO 
++    return sal_True;
++}
++
++
++sal_Bool DatabaseMetaData::supportsSelectForUpdate(  ) throw (SQLException, RuntimeException)
++{
++    // TODO 
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsStoredProcedures(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++
++sal_Bool DatabaseMetaData::supportsSubqueriesInComparisons(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsSubqueriesInExists(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsSubqueriesInIns(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsCorrelatedSubqueries(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++sal_Bool DatabaseMetaData::supportsUnion(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsUnionAll(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsOpenCursorsAcrossCommit(  ) throw (SQLException, RuntimeException)
++{
++    // TODO, don't know
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsOpenCursorsAcrossRollback(  ) throw (SQLException, RuntimeException)
++{
++    // TODO, don't know
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsOpenStatementsAcrossCommit(  ) throw (SQLException, RuntimeException)
++{
++    // TODO, don't know
++    return sal_False;
++}
++sal_Bool DatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw (SQLException, RuntimeException)
++{
++    // TODO, don't know
++    return sal_False;
++}
++
++sal_Int32 DatabaseMetaData::getMaxBinaryLiteralLength(  ) throw (SQLException, RuntimeException)
++{
++    // TODO, don't know
++    return -1;
++}
++
++sal_Int32 DatabaseMetaData::getMaxCharLiteralLength(  ) throw (SQLException, RuntimeException)
++{
++    return -1;
++}
++
++sal_Int32 DatabaseMetaData::getMaxColumnNameLength(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxColumnsInGroupBy(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_COLUMNS_IN_GROUPBY;
++}
++
++sal_Int32 DatabaseMetaData::getMaxColumnsInIndex(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_COLUMNS_IN_INDEX;
++}
++
++sal_Int32 DatabaseMetaData::getMaxColumnsInOrderBy(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_COLUMNS_IN_ORDER_BY;
++}
++
++sal_Int32 DatabaseMetaData::getMaxColumnsInSelect(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_COLUMNS_IN_SELECT;
++}
++
++sal_Int32 DatabaseMetaData::getMaxColumnsInTable(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_COLUMNS_IN_TABLE;
++}
++
++sal_Int32 DatabaseMetaData::getMaxConnections(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_CONNECTIONS;
++}
++
++sal_Int32 DatabaseMetaData::getMaxCursorNameLength(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxIndexLength(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxSchemaNameLength(  ) throw (SQLException, RuntimeException) 
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxProcedureNameLength(  ) throw (SQLException, RuntimeException)
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxCatalogNameLength(  ) throw (SQLException, RuntimeException)
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxRowSize(  ) throw (SQLException, RuntimeException) 
++{
++    return -1;
++}
++
++sal_Bool DatabaseMetaData::doesMaxRowSizeIncludeBlobs(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Int32 DatabaseMetaData::getMaxStatementLength(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_STATEMENT_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxStatements(  ) throw (SQLException, RuntimeException) //TODO, don't know
++{
++    return MAX_STATEMENTS;
++}
++
++sal_Int32 DatabaseMetaData::getMaxTableNameLength(  ) throw (SQLException, RuntimeException) 
++{
++    return MAX_IDENTIFIER_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getMaxTablesInSelect(  ) throw (SQLException, RuntimeException)
++{
++    return MAX_TABLES_IN_SELECT;
++}
++
++sal_Int32 DatabaseMetaData::getMaxUserNameLength(  ) throw (SQLException, RuntimeException)
++{
++    return MAX_USER_NAME_LENGTH;
++}
++
++sal_Int32 DatabaseMetaData::getDefaultTransactionIsolation(  ) throw (SQLException, RuntimeException)
++{
++    return com::sun::star::sdbc::TransactionIsolation::READ_COMMITTED;
++}
++
++sal_Bool DatabaseMetaData::supportsTransactions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 /*level*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions(  )
++    throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::supportsDataManipulationTransactionsOnly(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::dataDefinitionCausesTransactionCommit(  ) throw (SQLException, RuntimeException)
++{
++    // don't know 
++    return sal_True;
++}
++
++sal_Bool DatabaseMetaData::dataDefinitionIgnoredInTransactions(  ) throw (SQLException, RuntimeException)
++{
++    return sal_True;
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getProcedures(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schemaPattern*/,
++    const OUString& /*procedureNamePattern*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedures );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getProcedureColumns(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schemaPattern*/,
++    const OUString& /*procedureNamePattern*/,
++    const OUString& /*columnNamePattern*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedureColumns );
++}
++
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTables(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schemaPattern*/,
++    const OUString& tableNamePattern,
++    const ::com::sun::star::uno::Sequence< OUString >& /*types*/ )
++    throw (SQLException, RuntimeException)
++{
++	ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet();
++	Reference< XResultSet > xResultSet = pResultSet;
++	pResultSet->setTablesMap();
++
++    ODatabaseMetaDataResultSet::ORows _rRows;
++
++
++    ::std::vector< ::rtl::OUString > tables;
++
++    if ( !getTableStrings( m_pSettings->pConnection, tables,m_pSettings->encoding ) )
++        return sal_False;
++
++
++    ::rtl::OUString aTableType(::rtl::OUString::createFromAscii("TABLE"));
++    for ( size_t i = 0; i < tables.size(); i++ ) 
++    {
++        ODatabaseMetaDataResultSet::ORow aRow(3);
++        ::rtl::OUString aTableName  = tables[i];
++
++
++        // return tables to caller
++        if (match( tableNamePattern, aTableName, '\0' ))
++            if ( aTableName.getLength() == 0 ) 
++            {
++                aTableName = rtl::OUString::createFromAscii("table1");
++            }
++
++
++            aRow.push_back( new ORowSetValueDecorator( aTableName ) ); // Table name
++            aRow.push_back( new ORowSetValueDecorator( aTableType ) ); // Table Type
++            aRow.push_back( ODatabaseMetaDataResultSet::getEmptyValue() );                 // Remarks
++            _rRows.push_back(aRow);
++    }
++
++    pResultSet->setRows( _rRows );
++
++	return xResultSet;
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getSchemas(  )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new SequenceResultSet(
++        m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getCatalogs(  )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new SequenceResultSet(
++        m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
++}
++    
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTableTypes(  )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new SequenceResultSet(
++        m_refMutex, *this, sp().tableTypeNames, sp().tableTypeData,
++        m_pSettings->tc );
++}
++
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getColumns(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schemaPattern*/,
++    const OUString& tableNamePattern,
++    const OUString& /*columnNamePattern*/ ) throw (SQLException, RuntimeException)
++{
++    Strings &strs = sp();
++
++    // TODO: use columNamePattern
++
++    // continue !
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++
++    // ignore catalog, as a single pq connection
++    // does not support multiple catalogs eitherway
++
++    //  1. TABLE_CAT string => table catalog (may be NULL)
++    //               => not supported
++    //  2. TABLE_SCHEM string => table schema (may be NULL)
++    //  3. TABLE_NAME string => table name
++    //  4. COLUMN_NAME string => column name
++    //  5. DATA_TYPE short => SQL type from java.sql.Types 
++    //  6. TYPE_NAME string => Data source dependent type name, for a UDT the
++    //                         type name is fully qualified
++    //  7. COLUMN_SIZE long => column size. For char or date types this is
++    //                         the maximum number of characters, for numeric
++    //                         or decimal types this is precision.
++    //  8. BUFFER_LENGTH is not used.
++    //               => not used
++    //  9. DECIMAL_DIGITS long => the number of fractional digits
++    //               => don't know ! TODO !
++    //  10. NUM_PREC_RADIX long => Radix (typically either 10 or 2)
++    //               => TODO ??
++    //  11. NULLABLE long => is NULL allowed?
++    //                      NO_NULLS - might not allow NULL values
++    //                      NULABLE - definitely allows NULL values
++    //                      NULLABLE_UNKNOWN - nullability unknown
++    //  12. REMARKS string => comment describing column (may be NULL )
++    //  13. COLUMN_DEF string => default value (may be NULL)
++    //  14. SQL_DATA_TYPE long => unused
++    //               => empty
++    //  15. SQL_DATETIME_SUB long => unused
++    //               => empty
++    //  16. CHAR_OCTET_LENGTH long => for char types the maximum number of
++    //                                bytes in the column
++    //  17. ORDINAL_POSITION int => index of column in table (starting at 1)
++    //                              pg_attribute.attnum
++    //  18. IS_NULLABLE string => "NO" means column definitely does not allow
++    //                            NULL values; "YES" means the column might
++    //                            allow NULL values. An empty string means
++    //                            nobody knows.
++    AnyVector vec;
++    if (!getColumnStrings(m_pSettings->pConnection, tableNamePattern,vec,m_pSettings->encoding ))
++    	return NULL;
++
++    // TODO: use a ODatabaseMetaDataResultSet
++
++    return new SequenceResultSet(
++        m_refMutex, *this, strs.columnRowNames,
++        Sequence< Sequence< Any > > ( &vec[0],vec.size() ), m_pSettings->tc );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getColumnPrivileges(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/,
++    const OUString& /*columnNamePattern*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumnPrivileges );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTablePrivileges(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schemaPattern*/,
++    const OUString& /*tableNamePattern*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getBestRowIdentifier(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/,
++    sal_Int32 /*scope*/,
++    sal_Bool /*nullable*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eBestRowIdentifier );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getVersionColumns(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eVersionColumns );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getPrimaryKeys(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/ ) throw (SQLException, RuntimeException)
++{
++
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::ePrimaryKeys );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getImportedKeys(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eImportedKeys );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getExportedKeys(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/ ) throw (SQLException, RuntimeException)
++{
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eExportedKeys );
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getCrossReference(
++    const ::com::sun::star::uno::Any& /*primaryCatalog*/,
++    const OUString& /*primarySchema*/,
++    const OUString& /*primaryTable*/,
++    const ::com::sun::star::uno::Any& /*foreignCatalog*/,
++    const OUString& /*foreignSchema*/,
++    const OUString& /*foreignTable*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCrossReference );
++}
++
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTypeInfo(  )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++	AnyVector vec;
++	if (!getTypeInfos(vec))
++		return new SequenceResultSet(
++        m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
++	
++	Sequence< OUString > typeRowNames=createStringSequence( typeInfoColumn, 18 );
++	
++	return new SequenceResultSet(
++        m_refMutex, *this, typeRowNames,
++        Sequence< Sequence< Any > > ( &vec[0],vec.size() ), m_pSettings->tc );
++    // TODO: use ODatabaseMetaDataResultSet here
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getIndexInfo(
++    const ::com::sun::star::uno::Any& /*catalog*/,
++    const OUString& /*schema*/,
++    const OUString& /*table*/,
++    sal_Bool /*unique*/,
++    sal_Bool /*approximate*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eIndexInfo );
++}
++
++sal_Bool DatabaseMetaData::supportsResultSetType( sal_Int32 setType )
++    throw (SQLException, RuntimeException)
++{
++    return
++        setType == com::sun::star::sdbc::ResultSetType::SCROLL_INSENSITIVE ||
++        setType == com::sun::star::sdbc::ResultSetType::FORWARD_ONLY;
++}
++
++sal_Bool DatabaseMetaData::supportsResultSetConcurrency(
++    sal_Int32 setType, sal_Int32 concurrency ) throw (SQLException, RuntimeException)
++{
++    return supportsResultSetType( setType ) &&
++        (concurrency == com::sun::star::sdbc::TransactionIsolation::READ_COMMITTED ||
++         concurrency == com::sun::star::sdbc::TransactionIsolation::SERIALIZABLE );
++}
++
++sal_Bool DatabaseMetaData::ownUpdatesAreVisible( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::ownDeletesAreVisible( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::ownInsertsAreVisible( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::othersUpdatesAreVisible( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::othersDeletesAreVisible( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::othersInsertsAreVisible( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::updatesAreDetected( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::deletesAreDetected( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++sal_Bool DatabaseMetaData::insertsAreDetected( sal_Int32 /*setType*/ ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool DatabaseMetaData::supportsBatchUpdates(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getUDTs( const ::com::sun::star::uno::Any& /*catalog*/, const OUString& /*schemaPattern*/, const OUString& /*typeNamePattern*/, const ::com::sun::star::uno::Sequence< sal_Int32 >& /*types*/ ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return new SequenceResultSet(
++        m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
++}
++
++::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > DatabaseMetaData::getConnection()
++    throw (SQLException, RuntimeException)
++{
++    return m_origin;
++}
++}
++
+Index: connectivity/source/drivers/mdb/mdb_databasemetadata.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_databasemetadata.hxx
+diff -N connectivity/source/drivers/mdb/mdb_databasemetadata.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_databasemetadata.hxx	12 Dec 2005 10:02:30 -0000	1.1.4.2
+@@ -0,0 +1,229 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#ifndef _MDB_DATABASEMETADATA_HXX_
++#define _MDB_DATABASEMETADATA_HXX_
++
++#include "mdb_connection.hxx"
++#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
++
++#include <cppuhelper/implbase1.hxx>
++
++#ifndef _CONNECTIVITY_FDATABASEMETADATARESULTSET_HXX_
++#include <FDatabaseMetaDataResultSet.hxx>
++#endif
++using namespace connectivity;
++namespace mdb_sdbc_driver
++{
++
++class DatabaseMetaData :
++        public ::cppu::WeakImplHelper1 < com::sun::star::sdbc::XDatabaseMetaData >
++{
++    ::rtl::Reference< RefCountedMutex > m_refMutex;
++    ConnectionSettings *m_pSettings;
++    ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > m_origin;
++
++    void checkClosed()
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++public:
++    DatabaseMetaData(
++        const ::rtl::Reference< RefCountedMutex > & reMutex,
++        const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection >  & origin,
++        ConnectionSettings *pSettings 
++        );
++
++public:
++    // Methods
++    virtual sal_Bool SAL_CALL allProceduresAreCallable(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL allTablesAreSelectable(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getURL(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getUserName(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isReadOnly(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL nullsAreSortedHigh(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL nullsAreSortedLow(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL nullsAreSortedAtStart(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL nullsAreSortedAtEnd(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getDatabaseProductName(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getDatabaseProductVersion(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getDriverName(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getDriverVersion(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getDriverMajorVersion(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getDriverMinorVersion(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL usesLocalFiles(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL usesLocalFilePerTable(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsMixedCaseIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL storesUpperCaseIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL storesLowerCaseIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL storesMixedCaseIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsMixedCaseQuotedIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL storesUpperCaseQuotedIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL storesLowerCaseQuotedIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL storesMixedCaseQuotedIdentifiers(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getIdentifierQuoteString(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getSQLKeywords(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getNumericFunctions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getStringFunctions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getSystemFunctions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getTimeDateFunctions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getSearchStringEscape(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getExtraNameCharacters(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsAlterTableWithAddColumn(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsAlterTableWithDropColumn(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsColumnAliasing(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL nullPlusNonNullIsNull(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsTypeConversion(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsTableCorrelationNames(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsDifferentTableCorrelationNames(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsExpressionsInOrderBy(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsOrderByUnrelated(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsGroupBy(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsGroupByUnrelated(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsGroupByBeyondSelect(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsLikeEscapeClause(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsMultipleResultSets(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsMultipleTransactions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsNonNullableColumns(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsMinimumSQLGrammar(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCoreSQLGrammar(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsExtendedSQLGrammar(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsANSI92EntryLevelSQL(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsANSI92IntermediateSQL(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsANSI92FullSQL(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsIntegrityEnhancementFacility(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsOuterJoins(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsFullOuterJoins(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsLimitedOuterJoins(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getSchemaTerm(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getProcedureTerm(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getCatalogTerm(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isCatalogAtStart(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getCatalogSeparator(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSchemasInDataManipulation(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSchemasInProcedureCalls(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSchemasInTableDefinitions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSchemasInIndexDefinitions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSchemasInPrivilegeDefinitions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCatalogsInDataManipulation(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCatalogsInProcedureCalls(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCatalogsInTableDefinitions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCatalogsInIndexDefinitions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCatalogsInPrivilegeDefinitions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsPositionedDelete(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsPositionedUpdate(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSelectForUpdate(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsStoredProcedures(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSubqueriesInComparisons(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSubqueriesInExists(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSubqueriesInIns(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsSubqueriesInQuantifieds(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsCorrelatedSubqueries(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsUnion(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsUnionAll(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossCommit(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossRollback(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossCommit(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossRollback(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxBinaryLiteralLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxCharLiteralLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxColumnNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxColumnsInGroupBy(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxColumnsInIndex(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxColumnsInOrderBy(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxColumnsInSelect(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxColumnsInTable(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxConnections(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxCursorNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxIndexLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxSchemaNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxProcedureNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxCatalogNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxRowSize(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL doesMaxRowSizeIncludeBlobs(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxStatementLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxStatements(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxTableNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxTablesInSelect(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMaxUserNameLength(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getDefaultTransactionIsolation(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsTransactions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsTransactionIsolationLevel( sal_Int32 level ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsDataDefinitionAndDataManipulationTransactions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsDataManipulationTransactionsOnly(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL dataDefinitionCausesTransactionCommit(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL dataDefinitionIgnoredInTransactions(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedures( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedureColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern, const ::rtl::OUString& columnNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTables( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getSchemas(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCatalogs(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTableTypes(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumnPrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, const ::rtl::OUString& columnNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTablePrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getBestRowIdentifier( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Int32 scope, sal_Bool nullable ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getVersionColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getPrimaryKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getImportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getExportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCrossReference( const ::com::sun::star::uno::Any& primaryCatalog, const ::rtl::OUString& primarySchema, const ::rtl::OUString& primaryTable, const ::com::sun::star::uno::Any& foreignCatalog, const ::rtl::OUString& foreignSchema, const ::rtl::OUString& foreignTable ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTypeInfo(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getIndexInfo( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Bool unique, sal_Bool approximate ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsResultSetType( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 concurrency ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL ownUpdatesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL ownDeletesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL ownInsertsAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL othersUpdatesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL othersDeletesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL othersInsertsAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL updatesAreDetected( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL deletesAreDetected( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL insertsAreDetected( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsBatchUpdates(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getUDTs( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& typeNamePattern, const ::com::sun::star::uno::Sequence< sal_Int32 >& types ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++};
++
++}
++
++#endif
+Index: connectivity/source/drivers/mdb/mdb_driver.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_driver.cxx
+diff -N connectivity/source/drivers/mdb/mdb_driver.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_driver.cxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,368 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#include <stdio.h>
++
++#include <cppuhelper/factory.hxx>
++#include <cppuhelper/compbase1.hxx>
++#include <cppuhelper/implementationentry.hxx>
++
++#include <com/sun/star/beans/XPropertySet.hpp>
++
++#include "mdb_driver.hxx"
++
++using rtl::OUString;
++using rtl::OUStringToOString;
++using osl::MutexGuard;
++
++using cppu::WeakComponentImplHelper2;
++
++using com::sun::star::lang::XSingleComponentFactory;
++using com::sun::star::lang::XServiceInfo;
++using com::sun::star::lang::XComponent;
++
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++using com::sun::star::uno::UNO_QUERY;
++using com::sun::star::uno::XComponentContext;
++using com::sun::star::uno::Any;
++
++using com::sun::star::beans::PropertyValue;
++using com::sun::star::beans::XPropertySet;
++
++using com::sun::star::sdbc::XConnection;
++using com::sun::star::sdbc::SQLException;
++using com::sun::star::sdbc::DriverPropertyInfo;
++
++
++namespace mdb_sdbc_driver
++{
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++OUString DriverGetImplementationName()
++{
++    static OUString *p;
++    if (! p )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        static OUString instance(
++            RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.connectivity.mdb.Driver" ) );
++        p = &instance;
++    }
++    return *p;
++}
++
++Sequence< OUString > DriverGetSupportedServiceNames()
++{
++    static Sequence< OUString > *p;
++    if( ! p )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        OUString tmp( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdbc.Driver" ) );
++        static Sequence< OUString > instance( &tmp,1 );
++        p = &instance;
++    }
++    return *p;
++}
++
++Reference< XConnection > Driver::connect(
++    const OUString& url,const Sequence< PropertyValue >& info )
++    throw (SQLException, RuntimeException) 
++{
++    if( ! acceptsURL( url ) )  // XDriver spec tells me to do so ...
++        return Reference< XConnection > ();
++    Sequence< Any > seq ( 2 );
++    seq[0] <<= url;
++    seq[1] <<= info;
++    return Reference< XConnection> (
++        m_smgr->createInstanceWithArgumentsAndContext(
++            OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.connectivity.mdb.Connection" ) ),
++            seq, m_ctx ),
++        UNO_QUERY );
++}
++
++sal_Bool Driver::acceptsURL( const ::rtl::OUString& url )
++    throw (SQLException, RuntimeException)
++{
++    return url.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "sdbc:mdb:" ) ) == 0;
++}
++    
++Sequence< DriverPropertyInfo > Driver::getPropertyInfo(
++    const OUString& /*url*/,const Sequence< PropertyValue >& /*info*/ )
++    throw (SQLException, RuntimeException)
++{
++    return Sequence< DriverPropertyInfo > ();
++}
++    
++sal_Int32  Driver::getMajorVersion(  ) throw (RuntimeException)
++{
++    return MDB_MAJOR;
++}
++
++    
++sal_Int32 Driver::getMinorVersion(  ) throw (RuntimeException)
++{
++    return MDB_MAJOR;
++}
++
++	// XServiceInfo
++OUString SAL_CALL Driver::getImplementationName()
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    return DriverGetImplementationName();
++}
++
++sal_Bool Driver::supportsService(const OUString& ServiceName)
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    Sequence< OUString > serviceNames = DriverGetSupportedServiceNames();
++    for( int i = 0 ; i < serviceNames.getLength() ; i ++ )
++        if( serviceNames[i] == ServiceName )
++            return sal_True;
++    return sal_False;
++}
++
++Sequence< OUString > Driver::getSupportedServiceNames(void)
++    throw(::com::sun::star::uno::RuntimeException)
++{
++    return DriverGetSupportedServiceNames();
++}
++
++// XComponent
++void Driver::disposing()
++{
++
++}
++
++Reference< XInterface > DriverCreateInstance( const Reference < XComponentContext > & ctx )
++{
++    Reference< XInterface >  ret = * new Driver( ctx );
++    return ret;    
++}
++
++
++
++
++class OOneInstanceComponentFactory :
++    public MutexHolder,
++    public WeakComponentImplHelper2< XSingleComponentFactory, XServiceInfo >
++{
++public:
++	OOneInstanceComponentFactory(
++		const OUString & rImplementationName_,
++        cppu::ComponentFactoryFunc fptr,
++		const Sequence< OUString > & serviceNames,
++        const Reference< XComponentContext > & defaultContext)
++        :WeakComponentImplHelper2< XSingleComponentFactory, XServiceInfo >( this->m_mutex )
++        ,m_create( fptr )
++        ,m_serviceNames( serviceNames )
++        ,m_implName( rImplementationName_ )
++        ,m_defaultContext( defaultContext )
++    {
++    }
++	
++    // XSingleComponentFactory
++    virtual Reference< XInterface > SAL_CALL createInstanceWithContext(
++        Reference< XComponentContext > const & xContext )
++        throw (Exception, RuntimeException);
++    virtual Reference< XInterface > SAL_CALL createInstanceWithArgumentsAndContext(
++        Sequence< Any > const & rArguments,
++        Reference< XComponentContext > const & xContext )
++        throw (Exception, RuntimeException);
++
++	// XServiceInfo
++	OUString SAL_CALL getImplementationName()
++		throw(::com::sun::star::uno::RuntimeException)
++    {
++        return m_implName;
++    }
++    sal_Bool SAL_CALL supportsService(const OUString& ServiceName)
++		throw(::com::sun::star::uno::RuntimeException)
++    {
++        for( int i = 0 ; i < m_serviceNames.getLength() ; i ++ )
++            if( m_serviceNames[i] == ServiceName )
++                return sal_True;
++        return sal_False;
++    }
++    Sequence< OUString > SAL_CALL getSupportedServiceNames(void)
++		throw(::com::sun::star::uno::RuntimeException)
++    {
++        return m_serviceNames;
++    }
++
++    // XComponent
++    virtual void SAL_CALL disposing();
++    
++private:
++	cppu::ComponentFactoryFunc	  m_create;
++	Sequence< OUString >		  m_serviceNames;
++	OUString					  m_implName;
++    Reference< XInterface >       m_theInstance;
++    Reference< XComponentContext > m_defaultContext;
++};
++
++Reference< XInterface > OOneInstanceComponentFactory::createInstanceWithArgumentsAndContext(
++    Sequence< Any > const &/*rArguments*/, const Reference< XComponentContext > & ctx )
++    throw( RuntimeException, Exception )
++{
++    return createInstanceWithContext( ctx );
++}
++
++Reference< XInterface > OOneInstanceComponentFactory::createInstanceWithContext(
++    const Reference< XComponentContext > & ctx )
++    throw( RuntimeException, Exception )
++{
++    if( ! m_theInstance.is() )
++    {
++        // work around the problem in sdbc
++        Reference< XComponentContext > useCtx = ctx;
++        if( ! useCtx.is() )
++            useCtx = m_defaultContext;
++        Reference< XInterface > theInstance = m_create( useCtx );
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( ! m_theInstance.is () )
++        {
++            m_theInstance = theInstance;
++        }
++    }
++    return m_theInstance;
++}
++
++void OOneInstanceComponentFactory::disposing()
++{
++    Reference< XComponent > rComp;
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        rComp = Reference< XComponent >( m_theInstance, UNO_QUERY );
++        m_theInstance.clear();
++    }
++    if( rComp.is() )
++        rComp->dispose();
++}
++
++//  Reference< XSingleComponentFactory > createOneInstanceComponentFactory(
++//  	cppu::ComponentFactoryFunc fptr,
++//  	::rtl::OUString const & rImplementationName,
++//  	::com::sun::star::uno::Sequence< ::rtl::OUString > const & rServiceNames,
++//  	rtl_ModuleCount * pModCount = 0 )
++//  	SAL_THROW( () )
++//  {
++//      return new OOneInstanceComponentFactory( rImplementationName, fptr , rServiceNames);
++//  }
++
++}
++
++static struct cppu::ImplementationEntry g_entries[] =
++{
++	{
++		mdb_sdbc_driver::DriverCreateInstance, mdb_sdbc_driver::DriverGetImplementationName,
++ 		mdb_sdbc_driver::DriverGetSupportedServiceNames, 0,
++		0 , 0
++	},
++	{ 0, 0, 0, 0, 0, 0 }
++};
++
++extern "C"
++{
++
++//==================================================================================================
++void SAL_CALL component_getImplementationEnvironment(
++	const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
++{
++	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
++}
++//==================================================================================================
++sal_Bool SAL_CALL component_writeInfo(
++	void * pServiceManager, void * pRegistryKey )
++{
++	return cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
++}
++//==================================================================================================
++void * SAL_CALL component_getFactory(
++	const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
++{
++    // need to extract the defaultcontext, because the way, sdbc
++    // bypasses the servicemanager, does not allow to use the
++    // XSingleComponentFactory interface ...
++  	void * pRet = 0;
++	Reference< XSingleComponentFactory > xFactory;
++    Reference< XInterface > xSmgr( (XInterface * ) pServiceManager );
++
++	for( sal_Int32 i = 0 ; g_entries[i].create ; i ++ )
++	{
++		OUString implName = g_entries[i].getImplementationName();
++		if( 0 == implName.compareToAscii( pImplName ) )
++		{
++            Reference< XComponentContext > defaultContext;
++            Reference< XPropertySet > propSet( xSmgr, UNO_QUERY );
++            if( propSet.is() )
++            {
++                try
++                {
++                    propSet->getPropertyValue( ASCII_STR( "DefaultContext" ) ) >>= defaultContext;
++                }
++                catch( com::sun::star::uno::Exception &e )
++                {
++                    // if there is no default context, ignore it
++                }
++            }
++			xFactory = new mdb_sdbc_driver::OOneInstanceComponentFactory(
++				implName,
++				g_entries[i].create,
++				g_entries[i].getSupportedServiceNames(),
++                defaultContext );
++		}
++	}
++
++	if( xFactory.is() )
++	{
++		xFactory->acquire();
++		pRet = xFactory.get();
++	}
++	return pRet;
++}
++
++}
++
+Index: connectivity/source/drivers/mdb/mdb_driver.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_driver.hxx
+diff -N connectivity/source/drivers/mdb/mdb_driver.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_driver.hxx	12 Dec 2005 10:02:31 -0000	1.1.4.2
+@@ -0,0 +1,118 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Wind Li
++ *
++ *
++ ************************************************************************/
++#ifndef _MDB_DRIVER_HXX_
++#define _MDB_DRIVER_HXX_
++
++#include <osl/mutex.hxx>
++
++#include <cppuhelper/compbase2.hxx>
++
++#include <com/sun/star/lang/XServiceInfo.hpp>
++
++#include <com/sun/star/sdbc/XDriver.hpp>
++
++#include <com/sun/star/uno/XComponentContext.hpp>
++
++namespace mdb_sdbc_driver
++{
++
++#define MY_STRINGIFY( x ) #x
++
++#define MDB_SDBC_DRIVER_VERSION MY_STRINGIFY(MDB_MAJOR) "."  \
++                               MY_STRINGIFY(MDB_MINOR) "." \
++                               MY_STRINGIFY(MDB_MICRO)
++
++#define MDBTOOLS_VERSION MY_STRINGIFY(MDBTOOLS_MAJOR) "." \
++                           MY_STRINGIFY(MDBTOOLS_MINOR) "." \
++                           MY_STRINGIFY(MDBTOOLS_MICRO)
++
++
++struct MutexHolder { osl::Mutex m_mutex; };
++typedef cppu::WeakComponentImplHelper2< com::sun::star::sdbc::XDriver, com::sun::star::lang::XServiceInfo > DriverBase ;
++class Driver : public MutexHolder, public DriverBase
++{
++    com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_ctx;
++    com::sun::star::uno::Reference< com::sun::star::lang::XMultiComponentFactory > m_smgr;
++    
++public: 
++    Driver ( const com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > & ctx )
++        : DriverBase( this->m_mutex ),
++          m_ctx( ctx ),
++          m_smgr( ctx->getServiceManager() )
++    {}
++
++public: // XDriver
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL connect(
++        const ::rtl::OUString& url,
++        const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++    virtual sal_Bool SAL_CALL acceptsURL( const ::rtl::OUString& url )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    
++    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sdbc::DriverPropertyInfo > SAL_CALL getPropertyInfo(
++        const ::rtl::OUString& url,
++        const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    
++    virtual sal_Int32 SAL_CALL getMajorVersion(  ) throw (::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getMinorVersion(  ) throw (::com::sun::star::uno::RuntimeException);
++
++public: // XServiceInfo
++	// XServiceInfo
++	virtual rtl::OUString SAL_CALL getImplementationName()
++		throw(::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName)
++		throw(::com::sun::star::uno::RuntimeException);
++
++    virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void)
++		throw(::com::sun::star::uno::RuntimeException);
++    
++    // XComponent
++    virtual void SAL_CALL disposing();
++    
++};
++
++
++} 
++
++#endif
+Index: connectivity/source/drivers/mdb/mdb_preparedstatement.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_preparedstatement.cxx
+diff -N connectivity/source/drivers/mdb/mdb_preparedstatement.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_preparedstatement.cxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,714 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#include "mdb_preparedstatement.hxx"
++#include "mdb_resultset.hxx"
++
++#include <rtl/strbuf.hxx>
++#include <rtl/ustrbuf.hxx>
++
++
++#include <cppuhelper/typeprovider.hxx>
++#include <cppuhelper/queryinterface.hxx>
++
++#include <connectivity/dbexception.hxx>
++
++#include <com/sun/star/beans/PropertyAttribute.hpp>
++
++#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
++#include <com/sun/star/sdbc/ResultSetType.hpp>
++
++using osl::Mutex;
++using osl::MutexGuard;
++
++using rtl::OUString;
++using rtl::OUStringToOString;
++using rtl::OStringToOUString;
++using rtl::OUStringBuffer;
++using rtl::OStringBuffer;
++using rtl::OString;
++
++using com::sun::star::uno::Any;
++using com::sun::star::uno::makeAny;
++using com::sun::star::uno::Type;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++
++using com::sun::star::lang::IllegalArgumentException;
++
++using com::sun::star::sdbc::XWarningsSupplier;
++using com::sun::star::sdbc::XCloseable;
++using com::sun::star::sdbc::XPreparedStatement;
++using com::sun::star::sdbc::XParameters;
++using com::sun::star::sdbc::XResultSet;
++using com::sun::star::sdbc::XRef;
++using com::sun::star::sdbc::XBlob;
++using com::sun::star::sdbc::XClob;
++using com::sun::star::sdbc::XArray;
++using com::sun::star::sdbc::XConnection;
++using com::sun::star::sdbc::SQLException;
++
++using com::sun::star::beans::Property;
++using com::sun::star::beans::XPropertySetInfo;
++using com::sun::star::beans::XPropertySet;
++using com::sun::star::beans::XMultiPropertySet;
++using com::sun::star::beans::XFastPropertySet;
++
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++namespace mdb_sdbc_driver
++{
++static ::cppu::IPropertyArrayHelper & getPreparedStatementPropertyArrayHelper()
++{
++    static ::cppu::IPropertyArrayHelper *pArrayHelper;
++	if( ! pArrayHelper )
++    {
++		MutexGuard guard( Mutex::getGlobalMutex() );
++		if( ! pArrayHelper )
++        {
++            static Property aTable[] =
++                {
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
++                        ::getCppuType( (OUString *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
++                        ::getBooleanCppuType() , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("MaxFieldSize") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("MaxRows") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("QueryTimeOut") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 )
++                };
++            OSL_ASSERT( sizeof(aTable)/ sizeof(Property)  == PREPARED_STATEMENT_SIZE );
++			static ::cppu::OPropertyArrayHelper arrayHelper( aTable, PREPARED_STATEMENT_SIZE, sal_True );
++            pArrayHelper = &arrayHelper;
++        }
++    }
++    return *pArrayHelper;
++}
++
++PreparedStatement::PreparedStatement(
++    const ::rtl::Reference< RefCountedMutex > & refMutex,
++    const Reference< XConnection > & conn,
++    struct ConnectionSettings *pSettings,
++    const ::rtl::OString & stmt )
++    : OComponentHelper( refMutex->mutex ),
++      OPropertySetHelper( OComponentHelper::rBHelper ),
++      m_connection( conn ), 
++      m_pSettings( pSettings ),
++      m_stmt( stmt ),
++      m_refMutex( refMutex )
++{
++    m_props[PREPARED_STATEMENT_QUERY_TIME_OUT] = makeAny( (sal_Int32)0 );
++    m_props[PREPARED_STATEMENT_MAX_ROWS] = makeAny( (sal_Int32)0 );
++    m_props[PREPARED_STATEMENT_RESULT_SET_CONCURRENCY] = makeAny(
++        com::sun::star::sdbc::ResultSetConcurrency::READ_ONLY );
++    m_props[PREPARED_STATEMENT_RESULT_SET_TYPE] = makeAny(
++        com::sun::star::sdbc::ResultSetType::SCROLL_INSENSITIVE );
++
++    int elements = 0;
++    for ( int i = m_stmt.indexOf( '?' ) ; i != -1 ; i = m_stmt.indexOf( '?' , i +1)  )
++    {
++        elements ++;
++    }
++    m_vars = OStringVector ( elements );
++}
++
++PreparedStatement::~PreparedStatement()
++{
++    POSTGRE_TRACE( "dtor PreparedStatement" );
++}
++
++void PreparedStatement::checkColumnIndex( sal_Int32 parameterIndex )
++{
++    if( parameterIndex < 1 || parameterIndex > (sal_Int32) m_vars.size() )
++    {
++        OUStringBuffer buf( 128 );
++        buf.appendAscii( "mdb_preparedstatement: parameter index out of range (expected 1 to " );
++        buf.append( (sal_Int32 ) m_vars.size() );
++        buf.appendAscii( ", got " );
++        buf.append( parameterIndex );
++        buf.appendAscii( ")" );
++        throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any () );
++    }
++}
++void PreparedStatement::checkClosed() throw (SQLException, RuntimeException )
++{
++    if( ! m_pSettings || ! m_pSettings->pConnection )
++        throw SQLException(
++            ASCII_STR("mdb_driver: PreparedStatement or connection has already been closed !" ),
++            *this, OUString(),1,Any());
++}
++
++Any PreparedStatement::queryInterface( const Type & reqType ) throw (RuntimeException)
++{
++    Any ret;
++
++    ret = OComponentHelper::queryInterface( reqType );
++    if( ! ret.hasValue() )
++        ret = ::cppu::queryInterface( reqType,
++                                    static_cast< XWarningsSupplier * > ( this  ),
++                                    static_cast< XPreparedStatement * > ( this ),
++                                    static_cast< XParameters * > ( this ),
++                                    static_cast< XCloseable * > ( this ),
++                                    static_cast< XPropertySet * > ( this ),
++                                    static_cast< XMultiPropertySet * > ( this ),
++                                    static_cast< XFastPropertySet * > ( this ) );
++    return ret;
++}
++
++
++Sequence< Type > PreparedStatement::getTypes() throw ( RuntimeException )
++{
++    static cppu::OTypeCollection *pCollection;
++    if( ! pCollection )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( !pCollection )
++        {
++            static cppu::OTypeCollection collection(
++                getCppuType( (Reference< XWarningsSupplier> *) 0 ),
++                getCppuType( (Reference< XPreparedStatement> *) 0 ),
++                getCppuType( (Reference< XParameters> *) 0 ),
++                getCppuType( (Reference< XCloseable> *) 0 ),
++                getCppuType( (Reference< XPropertySet >*) 0 ),
++                getCppuType( (Reference< XFastPropertySet > *) 0 ),
++                getCppuType( (Reference< XMultiPropertySet > *) 0 ),
++                OComponentHelper::getTypes());
++            pCollection = &collection;
++        }
++    }
++    return pCollection->getTypes();
++}
++
++Sequence< sal_Int8> PreparedStatement::getImplementationId() throw ( RuntimeException )
++{
++    static cppu::OImplementationId *pId;
++    if( ! pId )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( ! pId )
++        {
++            static cppu::OImplementationId id(sal_False);
++            pId = &id;
++        }
++    }
++    return pId->getImplementationId();
++}
++
++void PreparedStatement::close(  ) throw (SQLException, RuntimeException)
++{
++    // let the connection die without acquired mutex !
++    Reference< XConnection > r;
++    Reference< XCloseable > resultSet;
++    {
++        MutexGuard guard( m_refMutex->mutex );
++        m_pSettings = 0;
++        r = m_connection;
++        m_connection.clear();
++        
++        resultSet = m_lastResultset;
++        m_lastResultset.clear();
++    }
++    if( resultSet.is() )
++    {
++        resultSet->close();
++        POSTGRE_TRACE( "statement closed" );
++    }
++}
++
++// void PreparedStatement::raiseSQLException(
++//     const OUString & sql, const char * errorMsg, const char *errorType )
++//     throw( SQLException )
++// {
++//     OUStringBuffer buf(128);
++//     buf.appendAscii( "mdb_driver: ");
++//     if( errorType )
++//     {
++//         buf.appendAscii( "[" );
++//         buf.appendAscii( errorType );
++//         buf.appendAscii( "]" );
++//     }
++//     buf.append(
++//         rtl::OStringToOUString( errorMsg, strlen(errorMsg) , m_pSettings->encoding ) );
++//     buf.appendAscii( " (caused by statement '" );
++//     buf.append( sql );
++//     buf.appendAscii( "')" );
++//     throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
++// }
++
++
++Reference< XResultSet > PreparedStatement::mdbExecute( OString *pQuery )
++{
++    OStringBuffer buf( m_stmt.getLength() *2 );
++
++    int element = 0;
++    int before = 0;
++    for ( int i = m_stmt.indexOf( '?' ) ; i != -1 ; i = m_stmt.indexOf( '?' , i +1)  )
++    {
++        buf.append( m_stmt.getStr() +  before, i - before );
++        buf.append( m_vars[element] );
++        before = i+1;
++        element ++;
++    }
++    buf.append( m_stmt.getStr() + before );
++
++    *pQuery = buf.makeStringAndClear();
++    
++    osl::ClearableMutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++	AnyVector aRows;
++    Sequence< OUString > seqColumns;
++	::rtl::OString o = *pQuery;
++	if (!mdb_ExecuteQuery(
++			m_pSettings->pConnection,o,aRows,seqColumns)
++		)
++	{
++ 	   return new ResultSet(
++    	    m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > () );
++	}
++
++    return new ResultSet(
++        m_refMutex, *this,    seqColumns,
++        Sequence< Sequence< Any > > ( &aRows[0],aRows.size() ) );
++}
++
++Reference< XResultSet > PreparedStatement::executeQuery( )
++        throw (SQLException, RuntimeException)
++{
++    osl::ClearableMutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    OString query;
++    return mdbExecute( &query );
++}
++
++sal_Int32 PreparedStatement::executeUpdate( )
++        throw (SQLException, RuntimeException)
++{
++    osl::ClearableMutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++
++    OString query;
++	Reference< XResultSet > result = mdbExecute( &query);
++/*
++    ExecStatusType state = PQresultStatus( result );
++    switch( state )
++    {
++    case PGRES_COMMAND_OK: // success
++        break; 
++    case PGRES_TUPLES_OK: 
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_preparedstatement: statment is not a command, use executeQuery() instead (" );
++        buf.append( OStringToOUString( query , m_pSettings->encoding ) );
++        buf.appendAscii( ")" );
++        throw SQLException(buf.makeStringAndClear(), *this, OUString() , 1 , Any() );
++    }
++    case PGRES_EMPTY_QUERY:
++    case PGRES_COPY_OUT:
++    case PGRES_COPY_IN:
++    case PGRES_BAD_RESPONSE:
++    case PGRES_NONFATAL_ERROR:
++    case PGRES_FATAL_ERROR:
++    default:
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_preparedstatement: " );
++        buf.appendAscii( PQresultErrorMessage( result ) );
++        buf.appendAscii( " during command '" );
++        buf.append( OStringToOUString( query, m_pSettings->encoding ) );
++        buf.appendAscii( "')" );
++        throw SQLException(buf.makeStringAndClear(), *this, OUString() , 1 , Any() );
++    }
++
++    Reference< XCloseable > lastResultSet = m_lastResultset;
++    m_lastResultset.clear();
++    sal_Int32 affectedTuples = atoi( PQcmdTuples(result) );
++    PQclear( result );
++    guard.clear();
++
++    if( lastResultSet.is())
++        lastResultSet->close();
++    return affectedTuples;
++*/
++return 0;
++}
++
++sal_Bool PreparedStatement::execute( )
++        throw (SQLException, RuntimeException)
++{
++    throw SQLException( ASCII_STR( "mdb_statement: execute() method is not supported, use executeUpdate or executeQuery instead" ),
++                        *this, OUString() , 1 , Any () );
++    return sal_False;
++}
++
++Reference< XConnection > PreparedStatement::getConnection(  )
++        throw (SQLException, RuntimeException)
++{
++    Reference< XConnection > ret;
++    {
++        MutexGuard guard( m_refMutex->mutex );
++        checkClosed();
++        ret = m_connection;
++    }
++    return ret;
++}
++
++
++void PreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 /*sqlType*/ )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    m_vars[parameterIndex-1] = OString( "NULL" );
++}
++
++void PreparedStatement::setObjectNull(
++    sal_Int32 parameterIndex, sal_Int32 /*sqlType*/, const ::rtl::OUString& /*typeName*/ )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    m_vars[parameterIndex-1] = OString( "NULL" );
++}
++
++
++void PreparedStatement::setBoolean( sal_Int32 parameterIndex, sal_Bool x )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    if( x )
++        m_vars[parameterIndex-1] = OString( "'t'" );
++    else
++        m_vars[parameterIndex-1] = OString( "'f'" );
++}
++
++void PreparedStatement::setByte( sal_Int32 parameterIndex, sal_Int8 x )
++    throw (SQLException, RuntimeException)
++{
++    setInt(parameterIndex,x);
++}
++
++void PreparedStatement::setShort( sal_Int32 parameterIndex, sal_Int16 x )
++    throw (SQLException, RuntimeException)
++{
++    setInt(parameterIndex, x );
++}
++
++void PreparedStatement::setInt( sal_Int32 parameterIndex, sal_Int32 x )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    OStringBuffer buf( 20 );
++    buf.append( "'" );
++    buf.append( (sal_Int32) x );
++    buf.append( "'" );
++    m_vars[parameterIndex-1] = buf.makeStringAndClear();
++}
++
++void PreparedStatement::setLong( sal_Int32 parameterIndex, sal_Int64 x )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    OStringBuffer buf( 20 );
++    buf.append( "'" );
++    buf.append( (sal_Int64) x );
++    buf.append( "'" );
++    m_vars[parameterIndex-1] = buf.makeStringAndClear();    
++}
++
++void PreparedStatement::setFloat( sal_Int32 parameterIndex, float x )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    OStringBuffer buf( 20 );
++    buf.append( "'" );
++    buf.append( x );
++    buf.append( "'" );
++    m_vars[parameterIndex-1] = buf.makeStringAndClear();
++}
++
++void PreparedStatement::setDouble( sal_Int32 parameterIndex, double x )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    OStringBuffer buf( 20 );
++    buf.append( "'" );
++    buf.append( x );
++    buf.append( "'" );
++    m_vars[parameterIndex-1] = buf.makeStringAndClear();
++}
++
++void PreparedStatement::setString( sal_Int32 parameterIndex, const ::rtl::OUString& x )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( parameterIndex );
++    OStringBuffer buf( 20 );
++    buf.append( "'" );
++    OString y = OUStringToOString( x, m_pSettings->encoding );
++    buf.ensureCapacity( y.getLength() * 2 + 2 );
++    int len = 1;//PQescapeString( ((char*)buf.getStr())+1, y.getStr() , y.getLength() );
++    buf.setLength( 1 + len );
++    buf.append( "'" );
++    m_vars[parameterIndex-1] = buf.makeStringAndClear();
++}
++
++void PreparedStatement::setBytes(
++    sal_Int32 /*parameterIndex*/, const Sequence< sal_Int8 >& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setBytes", *this );
++}
++
++void PreparedStatement::setDate( sal_Int32 /*parameterIndex*/, const ::com::sun::star::util::Date& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setDate", *this );
++}
++
++void PreparedStatement::setTime( sal_Int32 /*parameterIndex*/, const ::com::sun::star::util::Time& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setTime", *this );
++}
++
++void PreparedStatement::setTimestamp(
++    sal_Int32 /*parameterIndex*/, const ::com::sun::star::util::DateTime& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setTimestamp", *this );
++}
++
++void PreparedStatement::setBinaryStream(
++    sal_Int32 /*parameterIndex*/,
++    const Reference< ::com::sun::star::io::XInputStream >& /*x*/,
++    sal_Int32 /*length*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setBinaryStream", *this );
++}
++
++void PreparedStatement::setCharacterStream(
++    sal_Int32 /*parameterIndex*/,
++    const Reference< ::com::sun::star::io::XInputStream >& /*x*/,
++    sal_Int32 /*length*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setCharacterStream", *this );
++}
++
++void PreparedStatement::setObject( sal_Int32 /*parameterIndex*/, const Any& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setObject", *this );
++}
++
++void PreparedStatement::setObjectWithInfo(
++    sal_Int32 /*parameterIndex*/,
++    const Any& /*x*/,
++    sal_Int32 /*targetSqlType*/,
++    sal_Int32 /*scale*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setObjectWithInfo", *this );
++}
++
++void PreparedStatement::setRef(
++    sal_Int32 /*parameterIndex*/,
++    const Reference< XRef >& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setRef", *this );
++}
++
++void PreparedStatement::setBlob(
++    sal_Int32 /*parameterIndex*/,
++    const Reference< XBlob >& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setBlob", *this );
++}
++
++void PreparedStatement::setClob(
++    sal_Int32 /*parameterIndex*/,
++    const Reference< XClob >& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setClob", *this );
++}
++
++void PreparedStatement::setArray(
++    sal_Int32 /*parameterIndex*/,
++    const Reference< XArray >& /*x*/ )
++    throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XParameters::setArray", *this );
++}
++
++void PreparedStatement::clearParameters(  )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard(m_refMutex->mutex );
++    m_vars = OStringVector ( m_vars.size() );
++}
++
++Any PreparedStatement::getWarnings(  )
++        throw (SQLException,RuntimeException)
++{
++    return Any();
++}
++
++void PreparedStatement::clearWarnings(  )
++        throw (SQLException, RuntimeException)
++{
++}
++
++::cppu::IPropertyArrayHelper & PreparedStatement::getInfoHelper()
++{
++    return getPreparedStatementPropertyArrayHelper(); 
++}
++
++
++sal_Bool PreparedStatement::convertFastPropertyValue(
++		Any & /*rConvertedValue*/, Any & /*rOldValue*/, sal_Int32 nHandle, const Any& rValue )
++		throw (IllegalArgumentException)
++{
++    sal_Bool bRet;
++    switch( nHandle )
++    {
++    case PREPARED_STATEMENT_CURSOR_NAME:
++    {
++        OUString val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    case PREPARED_STATEMENT_ESCAPE_PROCESSING:
++    {
++        sal_Bool val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    case PREPARED_STATEMENT_FETCH_DIRECTION:
++    case PREPARED_STATEMENT_FETCH_SIZE:
++    case PREPARED_STATEMENT_MAX_FIELD_SIZE:
++    case PREPARED_STATEMENT_MAX_ROWS:
++    case PREPARED_STATEMENT_QUERY_TIME_OUT:
++    case PREPARED_STATEMENT_RESULT_SET_CONCURRENCY:
++    case PREPARED_STATEMENT_RESULT_SET_TYPE:
++    {
++        sal_Int32 val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    default:
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_statement: Invalid property handle (" );
++        buf.append( nHandle );
++        buf.appendAscii( ")" );
++        throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
++    }
++    }
++    return bRet;
++}
++    
++
++void PreparedStatement::setFastPropertyValue_NoBroadcast(
++    sal_Int32 nHandle,const Any& rValue ) throw (Exception)
++{
++    m_props[nHandle] = rValue;
++}
++
++void PreparedStatement::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
++{
++    rValue = m_props[nHandle];
++}
++
++Reference < XPropertySetInfo >  PreparedStatement::getPropertySetInfo()
++        throw(RuntimeException)
++{
++    return OPropertySetHelper::createPropertySetInfo( getPreparedStatementPropertyArrayHelper() );
++}
++
++void PreparedStatement::disposing()
++{
++    close();
++}
++
++
++}
++
+Index: connectivity/source/drivers/mdb/mdb_preparedstatement.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_preparedstatement.hxx
+diff -N connectivity/source/drivers/mdb/mdb_preparedstatement.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_preparedstatement.hxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,235 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#ifndef _MDB_PREPARED_STATEMENT_HXX_
++#define _MDB_PREPARED_STATEMENT_HXX_
++#include <vector>
++
++//#include <mdbtools.h>
++
++#include <cppuhelper/propshlp.hxx>
++#include <cppuhelper/component.hxx>
++
++#include <com/sun/star/sdbc/XParameters.hpp>
++
++#include "mdb_connection.hxx"
++namespace rtl { class OString; } 
++namespace mdb_sdbc_driver
++{
++
++static const sal_Int32 PREPARED_STATEMENT_CURSOR_NAME = 0;
++static const sal_Int32 PREPARED_STATEMENT_ESCAPE_PROCESSING = 1;
++static const sal_Int32 PREPARED_STATEMENT_FETCH_DIRECTION = 2;
++static const sal_Int32 PREPARED_STATEMENT_FETCH_SIZE = 3;
++static const sal_Int32 PREPARED_STATEMENT_MAX_FIELD_SIZE = 4;
++static const sal_Int32 PREPARED_STATEMENT_MAX_ROWS = 5;
++static const sal_Int32 PREPARED_STATEMENT_QUERY_TIME_OUT = 6;
++static const sal_Int32 PREPARED_STATEMENT_RESULT_SET_CONCURRENCY = 7;
++static const sal_Int32 PREPARED_STATEMENT_RESULT_SET_TYPE = 8;
++
++#define PREPARED_STATEMENT_SIZE 9
++class ResultSet;
++
++typedef ::std::vector< rtl::OString > OStringVector;
++class PreparedStatement : public cppu::OComponentHelper,
++                          public cppu::OPropertySetHelper,
++                          public com::sun::star::sdbc::XPreparedStatement,
++                          public com::sun::star::sdbc::XParameters,
++                          public com::sun::star::sdbc::XCloseable,
++                          public com::sun::star::sdbc::XWarningsSupplier
++{
++private:
++    com::sun::star::uno::Any m_props[PREPARED_STATEMENT_SIZE];
++    com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > m_connection;
++    ConnectionSettings *m_pSettings;
++    ::com::sun::star::uno::Reference< com::sun::star::sdbc::XCloseable > m_lastResultset;
++    ::rtl::OString m_stmt;
++    ::rtl::Reference< RefCountedMutex > m_refMutex;
++    OStringVector m_vars;
++    
++public:
++    /**
++     * @param ppConnection The piece of memory, pConnection points to, is accessisble
++     *                     as long as a reference to paramenter con is held. 
++     */
++    PreparedStatement( const rtl::Reference< RefCountedMutex > & refMutex,
++                       const com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection> & con,
++                       struct ConnectionSettings *pSettings,
++                       const rtl::OString &stmt );
++
++     virtual ~PreparedStatement();
++public: // XInterface
++    virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
++    virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
++    virtual com::sun::star::uno::Any SAL_CALL queryInterface( const com::sun::star::uno::Type & reqType )
++        throw (com::sun::star::uno::RuntimeException);
++    
++public: // XCloseable
++    virtual void SAL_CALL close(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    
++public: // XPreparedStatement
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery()
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL executeUpdate(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL execute(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++public: // XParameters
++    virtual void SAL_CALL setNull( sal_Int32 parameterIndex, sal_Int32 sqlType )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setObjectNull(
++        sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setBoolean( sal_Int32 parameterIndex, sal_Bool x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setByte( sal_Int32 parameterIndex, sal_Int8 x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setShort( sal_Int32 parameterIndex, sal_Int16 x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setInt( sal_Int32 parameterIndex, sal_Int32 x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setLong( sal_Int32 parameterIndex, sal_Int64 x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setFloat( sal_Int32 parameterIndex, float x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setDouble( sal_Int32 parameterIndex, double x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setString( sal_Int32 parameterIndex, const ::rtl::OUString& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setBytes(
++        sal_Int32 parameterIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setDate( sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setTime( sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setTimestamp(
++        sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setBinaryStream(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x,
++        sal_Int32 length )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setCharacterStream(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x,
++        sal_Int32 length )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setObject( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setObjectWithInfo(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Any& x,
++        sal_Int32 targetSqlType,
++        sal_Int32 scale )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setRef(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef >& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setBlob(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob >& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setClob(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob >& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL setArray(
++        sal_Int32 parameterIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray >& x )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL clearParameters(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XWarningsSupplier
++    virtual ::com::sun::star::uno::Any SAL_CALL getWarnings(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL clearWarnings(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XTypeProvider, first implemented by OPropertySetHelper
++    virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
++        throw( com::sun::star::uno::RuntimeException );
++    virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
++        throw( com::sun::star::uno::RuntimeException );
++
++public: // OPropertySetHelper    
++	virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
++
++	virtual sal_Bool SAL_CALL convertFastPropertyValue(
++		::com::sun::star::uno::Any & rConvertedValue,
++		::com::sun::star::uno::Any & rOldValue,
++		sal_Int32 nHandle,
++		const ::com::sun::star::uno::Any& rValue )
++		throw (::com::sun::star::lang::IllegalArgumentException);
++    
++	virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
++		sal_Int32 nHandle,
++		const ::com::sun::star::uno::Any& rValue )
++		throw (::com::sun::star::uno::Exception);
++
++	virtual void SAL_CALL getFastPropertyValue(
++		::com::sun::star::uno::Any& rValue,
++		sal_Int32 nHandle ) const;
++
++	// XPropertySet
++	::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo >  SAL_CALL getPropertySetInfo()
++        throw(com::sun::star::uno::RuntimeException);
++    
++public: // OComponentHelper
++    virtual void SAL_CALL disposing();
++
++private:
++    void checkColumnIndex( sal_Int32 parameterIndex );
++    void checkClosed() throw (com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException);
++    void raiseSQLException( const ::rtl::OUString & sql, const char * errorMsg, const char *errorType = 0 )
++        throw ( com::sun::star::sdbc::SQLException );
++    Reference< XResultSet > mdbExecute( ::rtl::OString *pQuery );
++};
++
++}
++#endif
+Index: connectivity/source/drivers/mdb/mdb_resultset.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_resultset.cxx
+diff -N connectivity/source/drivers/mdb/mdb_resultset.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_resultset.cxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,715 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#include <osl/thread.h>
++
++#include <rtl/ustrbuf.hxx>
++
++#include <cppuhelper/typeprovider.hxx>
++#include <cppuhelper/queryinterface.hxx>
++
++#include <connectivity/dbexception.hxx>
++
++#include "mdb_statement.hxx"
++#include "mdb_resultset.hxx"
++#include "mdb_resultsetmetadata.hxx"
++
++#include <com/sun/star/lang/DisposedException.hpp>
++
++using osl::Mutex;
++using osl::MutexGuard;
++
++using rtl::OUString;
++using rtl::OUStringToOString;
++using rtl::OUStringBuffer;
++using rtl::OString;
++
++using com::sun::star::beans::XPropertySetInfo;
++using com::sun::star::beans::XPropertySet;
++using com::sun::star::beans::XMultiPropertySet;
++using com::sun::star::beans::XFastPropertySet;
++
++using com::sun::star::uno::Any;
++using com::sun::star::uno::makeAny;
++using com::sun::star::uno::Type;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++
++using com::sun::star::lang::IllegalArgumentException;
++
++using com::sun::star::sdbc::XWarningsSupplier;
++using com::sun::star::sdbc::XCloseable;
++using com::sun::star::sdbc::XStatement;
++using com::sun::star::sdbc::XResultSet;
++using com::sun::star::sdbc::XConnection;
++using com::sun::star::sdbc::SQLException;
++using com::sun::star::sdbc::XRow;
++using com::sun::star::sdbc::XColumnLocate;
++using com::sun::star::sdbc::XResultSetMetaData;
++using com::sun::star::sdbc::XResultSetMetaDataSupplier;
++
++
++using com::sun::star::beans::Property;
++
++namespace mdb_sdbc_driver
++{
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++static ::cppu::IPropertyArrayHelper & getResultSetPropertyArrayHelper()
++{
++    static ::cppu::IPropertyArrayHelper *pArrayHelper;
++	if( ! pArrayHelper )
++    {
++		MutexGuard guard( Mutex::getGlobalMutex() );
++		if( ! pArrayHelper )
++        {
++            static Property aTable[] =
++                {
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
++                        ::getCppuType( (OUString *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
++                        ::getBooleanCppuType() , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 )
++                };
++            OSL_ASSERT( sizeof(aTable) / sizeof(Property) == RESULTSET_SIZE );
++			static ::cppu::OPropertyArrayHelper arrayHelper( aTable, RESULTSET_SIZE, sal_True );
++            pArrayHelper = &arrayHelper;
++        }
++    }
++    return *pArrayHelper;
++}
++
++ResultSet::ResultSet( const ::rtl::Reference< RefCountedMutex > & refMutex,
++                      const Reference< XInterface > & owner,
++                      ConnectionSettings **ppSettings,
++                      void * result )
++    : OComponentHelper( refMutex->mutex ),
++      OPropertySetHelper( OComponentHelper::rBHelper ),
++      m_owner( owner ),
++      m_refMutex( refMutex ),
++      m_ppSettings( ppSettings ),
++      m_result( result ),
++      m_row( -1 )
++{
++    POSTGRE_TRACE( "ctor ResultSet" );
++//    m_rowCount = PQntuples( m_result );
++//    m_fieldCount = PQnfields( m_result );
++    m_row = -1;
++}
++
++ResultSet::ResultSet( const ::rtl::Reference< RefCountedMutex > & refMutex,
++                      const Reference< XInterface > & owner,
++    const Sequence< OUString > &colNames,
++    const Sequence< Sequence< Any > > &data) :
++    OComponentHelper( refMutex->mutex ),
++    OPropertySetHelper( OComponentHelper::rBHelper ),
++    m_owner( owner ),
++    m_refMutex( refMutex ),
++    m_row( -1 ),
++    m_rowCount( data.getLength() ),
++    m_fieldCount( colNames.getLength() ),
++    m_wasNull( false ),
++    m_data(data ),
++    m_columnNames( colNames )
++{
++}
++
++
++ResultSet::~ResultSet()
++{
++}
++
++Any ResultSet::queryInterface( const Type & reqType ) throw (RuntimeException)
++{
++    Any ret;
++
++    ret = OComponentHelper::queryInterface( reqType );
++    if( ! ret.hasValue() )
++        ret = ::cppu::queryInterface( reqType,
++                                    static_cast< XResultSet * > ( this  ),
++                                    static_cast< XResultSetMetaDataSupplier * > ( this ),
++                                    static_cast< XRow * > ( this ),
++                                    static_cast< XColumnLocate * > ( this ),
++                                    static_cast< XCloseable * > ( this ),
++                                    static_cast< XPropertySet * > ( this ),
++                                    static_cast< XMultiPropertySet * > ( this ),
++                                    static_cast< XFastPropertySet * > ( this ) );
++    return ret;
++}
++
++void ResultSet::close(  ) throw (SQLException, RuntimeException)
++{
++    Reference< XInterface > owner;
++    {
++        MutexGuard guard( m_refMutex->mutex );
++        if( m_result )
++        {
++//            PQclear(m_result );
++            m_result = 0;
++            m_row = -1;
++        }
++        owner = m_owner;
++        m_owner.clear();
++    }
++}
++
++Sequence<Type > ResultSet::getTypes() throw( RuntimeException )
++{
++    static cppu::OTypeCollection *pCollection;
++    if( ! pCollection )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( !pCollection )
++        {
++            static cppu::OTypeCollection collection(
++                getCppuType( (Reference< XResultSet> *) 0 ),
++                getCppuType( (Reference< XResultSetMetaDataSupplier> *) 0 ),
++                getCppuType( (Reference< XRow> *) 0 ),
++                getCppuType( (Reference< XColumnLocate> *) 0 ),
++                getCppuType( (Reference< XCloseable> *) 0 ),
++                getCppuType( (Reference< XPropertySet >*) 0 ),
++                getCppuType( (Reference< XFastPropertySet > *) 0 ),
++                getCppuType( (Reference< XMultiPropertySet > *) 0 ),
++                OComponentHelper::getTypes());
++            pCollection = &collection;
++        }
++    }
++    return pCollection->getTypes();
++}
++
++Sequence< sal_Int8> ResultSet::getImplementationId() throw( RuntimeException )
++{
++    static cppu::OImplementationId *pId;
++    if( ! pId )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( ! pId )
++        {
++            static cppu::OImplementationId id(sal_False);
++            pId = &id;
++        }
++    }
++    return pId->getImplementationId();
++}
++
++Reference< XResultSetMetaData > ResultSet::getMetaData(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++	return
++    	new ResultSetMetaData(m_refMutex, this, m_columnNames);
++}
++
++sal_Bool ResultSet::next(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row ++;
++    return m_row < m_rowCount;
++}
++
++sal_Bool ResultSet::isBeforeFirst(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row == -1;
++}
++
++sal_Bool ResultSet::isAfterLast(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row >= m_rowCount;
++}
++    
++sal_Bool ResultSet::isFirst(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row == 0 && m_rowCount;
++}
++
++sal_Bool ResultSet::isLast(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row >= 0 && m_row + 1 == m_rowCount;
++}
++
++void ResultSet::beforeFirst(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row = -1;
++}
++
++void ResultSet::afterLast(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row = m_rowCount;
++}
++
++sal_Bool ResultSet::first(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    sal_Bool bRet = ( m_rowCount > 0 );
++    if( bRet )
++        m_row = 0;
++    return bRet;
++}
++
++sal_Bool ResultSet::last(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    sal_Bool bRet = ( m_rowCount > 0 );
++    if( bRet )
++        m_row = m_rowCount -1;
++    return bRet;
++}
++
++sal_Int32 ResultSet::getRow(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_row +1;
++}
++
++sal_Bool ResultSet::absolute( sal_Int32 row ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    if( row > 0 )
++    {
++        m_row = row -1;
++        if( m_row > m_rowCount )
++            m_row = m_rowCount;
++    }
++    else
++    {
++        m_row = m_rowCount + row;
++        if( m_row < -1 )
++            m_row = -1;
++    }
++    return sal_True;
++}
++
++sal_Bool ResultSet::relative( sal_Int32 rows ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    m_row += rows;
++
++    if( m_row > m_rowCount )
++        m_row = m_rowCount;
++    else if ( m_row < -1 )
++        m_row = -1;
++    return sal_True;
++}
++
++sal_Bool ResultSet::previous(  ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    sal_Bool bRet = ( m_row != -1 );
++    if( bRet )
++        m_row --;
++    return bRet;
++}
++
++void ResultSet::refreshRow(  ) throw (SQLException, RuntimeException)
++{
++    // TODO: not supported for now
++}
++
++sal_Bool ResultSet::rowUpdated(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool ResultSet::rowInserted(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++sal_Bool ResultSet::rowDeleted(  ) throw (SQLException, RuntimeException)
++{
++    return sal_False;
++}
++
++Reference< XInterface > ResultSet::getStatement() throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    return m_owner;
++}
++
++
++//----------------- XRow interface ----------------------------------------------------
++
++sal_Bool ResultSet::wasNull(  ) throw (SQLException, RuntimeException)
++{
++    return m_wasNull;
++}
++
++
++OUString ResultSet::getString( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    return getValueAsString(  columnIndex );
++}
++
++inline Any ResultSet::convertTo( const OUString & str , const Type & type )
++{
++    Any aRet;
++    try
++    {
++        aRet = (*m_ppSettings)->tc->convertTo( makeAny(str), type );
++    }
++    catch( com::sun::star::lang::IllegalArgumentException & e )
++    {}
++    catch( com::sun::star::script::CannotConvertException & e )
++    {}
++    return aRet;
++}
++
++sal_Bool ResultSet::getBoolean( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getBoolean", *this );
++    // TODO
++    return sal_False;
++}
++
++sal_Int8 ResultSet::getByte( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int8 b = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &b )) >>= b;
++    return b;
++}
++
++sal_Int16 ResultSet::getShort( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int16 i = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
++    return i;
++}
++
++sal_Int32 ResultSet::getInt( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int32 i = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
++    return i;
++}
++
++sal_Int64 ResultSet::getLong( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    sal_Int64 i = 0;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
++    return i;
++}
++
++float ResultSet::getFloat( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    float f = 0.;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &f )) >>= f;
++    return f;
++}
++
++double ResultSet::getDouble( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++    double d = 0.;
++    convertTo( getValueAsString( columnIndex ), getCppuType( &d )) >>= d;
++    return d;
++}
++
++Sequence< sal_Int8 > ResultSet::getBytes( sal_Int32 columnIndex )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( columnIndex );
++
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getBytes", *this );
++    // TODO
++    return Sequence< sal_Int8 >();
++}
++
++::com::sun::star::util::Date ResultSet::getDate( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getDate", *this );
++    return com::sun::star::util::Date();
++}
++
++::com::sun::star::util::Time ResultSet::getTime( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getTime", *this );
++    return com::sun::star::util::Time();
++}
++
++::com::sun::star::util::DateTime ResultSet::getTimestamp( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getTimestamp", *this );
++    return com::sun::star::util::DateTime();
++}
++
++Reference< ::com::sun::star::io::XInputStream > ResultSet::getBinaryStream( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getCharacterStream", *this );
++    return 0;
++}
++
++Reference< ::com::sun::star::io::XInputStream > ResultSet::getCharacterStream( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getCharacterStream", *this );
++    return 0;
++}
++
++Any ResultSet::getObject(
++        sal_Int32 /*columnIndex*/,
++        const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getObject", *this );
++    return Any();
++}
++
++Reference< ::com::sun::star::sdbc::XRef > ResultSet::getRef( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getRef", *this );
++    return Reference< com::sun::star::sdbc::XRef > ();
++}
++
++Reference< ::com::sun::star::sdbc::XBlob > ResultSet::getBlob( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getBlob", *this );
++    return Reference< com::sun::star::sdbc::XBlob > ();
++}
++
++Reference< ::com::sun::star::sdbc::XClob > ResultSet::getClob( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getClob", *this );
++    return Reference< com::sun::star::sdbc::XClob > ();
++}
++
++Reference< ::com::sun::star::sdbc::XArray > ResultSet::getArray( sal_Int32 /*columnIndex*/ )
++        throw (SQLException, RuntimeException)
++{
++    ::dbtools::throwFeatureNotImplementedException( "XRow::getArray", *this );
++    return Reference< com::sun::star::sdbc::XArray > ();
++}
++
++
++sal_Int32 ResultSet::findColumn( const ::rtl::OUString& /*columnName*/ )
++        throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    OSL_ENSURE( false, "ResultSet::findColumn: not implemented!" );
++    // TODO
++    return 0;
++}
++
++::cppu::IPropertyArrayHelper & ResultSet::getInfoHelper()
++{
++    return getResultSetPropertyArrayHelper(); 
++}
++
++
++sal_Bool ResultSet::convertFastPropertyValue(
++		Any & /*rConvertedValue*/, Any & /*rOldValue*/, sal_Int32 nHandle, const Any& rValue )
++		throw (IllegalArgumentException)
++{
++    sal_Bool bRet;
++    switch( nHandle )
++    {
++    case RESULTSET_CURSOR_NAME:
++    {
++        OUString val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    case RESULTSET_ESCAPE_PROCESSING:
++    {
++        sal_Bool val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    case RESULTSET_FETCH_DIRECTION:
++    case RESULTSET_FETCH_SIZE:
++    case RESULTSET_RESULT_SET_CONCURRENCY:
++    case RESULTSET_RESULT_SET_TYPE:
++    {
++        sal_Int32 val;
++        bRet = ( rValue >>= val );
++        m_props[nHandle] = makeAny( val );
++        break;
++    }
++    default:
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_resultset: Invalid property handle (" );
++        buf.append( nHandle );
++        buf.appendAscii( ")" );
++        throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
++    }
++    }
++    return bRet;
++}
++    
++
++void ResultSet::setFastPropertyValue_NoBroadcast(
++    sal_Int32 nHandle,const Any& rValue ) throw (Exception)
++{
++    m_props[nHandle] = rValue;
++}
++
++void ResultSet::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
++{
++    rValue = m_props[nHandle];
++}
++
++Reference < XPropertySetInfo >  ResultSet::getPropertySetInfo()
++        throw(RuntimeException)
++{
++    return OPropertySetHelper::createPropertySetInfo( getResultSetPropertyArrayHelper() );
++}
++
++void ResultSet::disposing()
++{
++    close();
++}
++
++void ResultSet::checkClosed() throw ( SQLException, RuntimeException )
++{
++//    if( ! m_columnNames.getLength() )
++//     {
++//        throw SQLException( ASCII_STR( "mdb_resultset: already closed" ), *this,  OUString(), 1, Any() );
++//    }
++
++//    if( ! m_ppSettings || ! *m_ppSettings || ! (*m_ppSettings)->pConnection )
++//    {
++//        throw SQLException( ASCII_STR( "mdb_resultset: statement has been closed already" ),
++//                            *this, OUString(), 1, Any() );
++//    }
++}
++
++void ResultSet::checkColumnIndex(sal_Int32 index ) throw ( SQLException, RuntimeException )
++{
++    if( index < 1 || index > m_fieldCount )
++    {
++        OUStringBuffer buf(128);
++        buf.appendAscii( "mdb_resultset: index out of range (" );
++        buf.append( index );
++        buf.appendAscii( ", allowed range is 1 to " );
++        buf.append( m_fieldCount );
++        buf.appendAscii( ")" );
++        throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
++    }
++
++    if( m_row < 0 || m_row >= m_rowCount )
++    {
++        OUStringBuffer buf( 128 );
++        buf.appendAscii( "mdb_resultset: row index out of range, allowed is 1 to " );
++        buf.append( m_rowCount );
++        buf.appendAscii( ", got " );
++        buf.append( index );
++        throw SQLException( buf.makeStringAndClear(), *this, OUString(),1, Any() );
++    }
++}
++}
+Index: connectivity/source/drivers/mdb/mdb_resultset.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_resultset.hxx
+diff -N connectivity/source/drivers/mdb/mdb_resultset.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_resultset.hxx	12 Jul 2006 10:20:33 -0000	1.1.4.3
+@@ -0,0 +1,263 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#ifndef _PG_RESULTSET_HXX_
++#define _PG_RESULTSET_HXX_
++
++#include <cppuhelper/propshlp.hxx>
++#include <cppuhelper/component.hxx>
++
++#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
++#include <com/sun/star/sdbc/XRow.hpp>
++#include <com/sun/star/sdbc/XCloseable.hpp>
++#include <com/sun/star/sdbc/XColumnLocate.hpp>
++#include "mdb_connection.hxx"
++
++namespace mdb_sdbc_driver
++{
++
++static const sal_Int32 RESULTSET_CURSOR_NAME = 0;
++static const sal_Int32 RESULTSET_ESCAPE_PROCESSING = 1;
++static const sal_Int32 RESULTSET_FETCH_DIRECTION = 2;
++static const sal_Int32 RESULTSET_FETCH_SIZE = 3;
++static const sal_Int32 RESULTSET_RESULT_SET_CONCURRENCY = 4;
++static const sal_Int32 RESULTSET_RESULT_SET_TYPE = 5;
++
++#define RESULTSET_SIZE 6
++
++class RefCountedMutex;
++class ResultSet : public cppu::OComponentHelper,
++                  public cppu::OPropertySetHelper,
++                  public com::sun::star::sdbc::XCloseable,
++                  public com::sun::star::sdbc::XResultSetMetaDataSupplier,
++                  public com::sun::star::sdbc::XResultSet,
++                  public com::sun::star::sdbc::XRow,
++                  public com::sun::star::sdbc::XColumnLocate
++{
++private:
++    com::sun::star::uno::Any m_props[RESULTSET_SIZE];
++    com::sun::star::uno::Reference< com::sun::star::uno::XInterface > m_owner;
++    ::rtl::Reference< RefCountedMutex > m_refMutex;
++    ConnectionSettings **m_ppSettings;
++    void *m_result;
++    sal_Int32 m_row;
++    sal_Int32 m_rowCount;
++    sal_Int32 m_fieldCount;
++    sal_Bool  m_wasNull;
++    ::com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > m_data;
++
++    ::com::sun::star::uno::Sequence< ::rtl::OUString > m_columnNames;
++
++public:
++    inline cppu::OBroadcastHelper & getRBHelper() { return OComponentHelper::rBHelper;}
++    
++private:
++    /** mutex should be locked before called
++     */
++    void checkClosed() throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
++    void checkColumnIndex( sal_Int32 index )
++        throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
++        
++    /** unchecked !
++     */
++    inline ::rtl::OUString getValueAsString( sal_Int32 columnIndex )
++    {
++	    OUString str;
++	    // currently support only string and void !
++	    m_wasNull = !( m_data[m_row][columnIndex-1]  >>= str );
++	
++	    return str;
++    }
++    inline com::sun::star::uno::Any convertTo(
++        const ::rtl::OUString &str, const com::sun::star::uno::Type &type );
++
++public:
++    ResultSet( const ::rtl::Reference< RefCountedMutex > & mutex,
++               const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
++               ConnectionSettings **pSettings,
++               void *result );
++	ResultSet( const ::rtl::Reference< RefCountedMutex > & refMutex,
++                      const Reference< XInterface > & owner,
++    const Sequence< OUString > &colNames,
++    const Sequence< Sequence< Any > > &data);
++    
++    ~ResultSet();
++    
++public: // XInterface
++    virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
++    virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
++    virtual com::sun::star::uno::Any  SAL_CALL queryInterface(
++        const com::sun::star::uno::Type & reqType )
++        throw (com::sun::star::uno::RuntimeException);
++
++public: // XCloseable
++    virtual void SAL_CALL close(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XTypeProvider, first implemented by OPropertySetHelper
++    virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
++        throw( com::sun::star::uno::RuntimeException );
++    virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
++        throw( com::sun::star::uno::RuntimeException );
++
++public: // XResultSetMetaDataSupplier
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XResultSet
++    // Methods
++    virtual sal_Bool SAL_CALL next(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isBeforeFirst(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isAfterLast(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isFirst(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isLast(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL beforeFirst(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL afterLast(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL first(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL last(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getRow(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL absolute( sal_Int32 row )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL relative( sal_Int32 rows )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL previous(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual void SAL_CALL refreshRow(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL rowUpdated(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL rowInserted(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL rowDeleted(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement()
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++
++public: // XRow
++    virtual sal_Bool SAL_CALL wasNull(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual float SAL_CALL getFloat( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual double SAL_CALL getDouble( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Any SAL_CALL getObject(
++        sal_Int32 columnIndex,
++        const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XColumnLocate
++    virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    
++public: // OPropertySetHelper    
++	virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
++
++	virtual sal_Bool SAL_CALL convertFastPropertyValue(
++		::com::sun::star::uno::Any & rConvertedValue,
++		::com::sun::star::uno::Any & rOldValue,
++		sal_Int32 nHandle,
++		const ::com::sun::star::uno::Any& rValue )
++		throw (::com::sun::star::lang::IllegalArgumentException);
++    
++	virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
++		sal_Int32 nHandle,
++		const ::com::sun::star::uno::Any& rValue )
++		throw (::com::sun::star::uno::Exception);
++
++	virtual void SAL_CALL getFastPropertyValue(
++		::com::sun::star::uno::Any& rValue,
++		sal_Int32 nHandle ) const;
++
++	// XPropertySet
++	::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo >  SAL_CALL getPropertySetInfo()
++        throw(com::sun::star::uno::RuntimeException);
++
++public: // OComponentHelper
++    virtual void SAL_CALL disposing();
++
++    
++};
++                  
++}
++#endif
+Index: connectivity/source/drivers/mdb/mdb_resultsetmetadata.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_resultsetmetadata.cxx
+diff -N connectivity/source/drivers/mdb/mdb_resultsetmetadata.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_resultsetmetadata.cxx	12 Jul 2006 10:20:34 -0000	1.1.4.3
+@@ -0,0 +1,295 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#include <rtl/ustrbuf.hxx>
++
++#include "mdb_resultsetmetadata.hxx"
++
++
++using osl::Mutex;
++using osl::MutexGuard;
++
++using rtl::OUString;
++using rtl::OUStringBuffer;
++using rtl::OString;
++
++using com::sun::star::uno::Any;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++
++using com::sun::star::lang::IllegalArgumentException;
++
++using com::sun::star::sdbc::SQLException;
++
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++namespace mdb_sdbc_driver
++{
++
++ResultSetMetaData::ResultSetMetaData(
++    const ::rtl::Reference< RefCountedMutex > & refMutex,
++    const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSet >  & origin,
++    const Sequence< OUString > &colNames ) :
++    m_refMutex( refMutex ),
++    m_origin( origin ),
++    m_colNames(colNames)
++{
++  	m_ppResult = 0;
++	m_colCount = colNames.getLength();
++	
++}
++
++ResultSetMetaData::ResultSetMetaData(
++    int afieldCount )
++{
++	m_colCount = afieldCount;
++	
++}
++
++
++// Methods
++sal_Int32 ResultSetMetaData::getColumnCount(  )
++    throw (SQLException, RuntimeException)
++{
++    return m_colCount;
++}
++
++sal_Bool ResultSetMetaData::isAutoIncrement( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++	return sal_False;
++//     MutexGuard guard( m_refMutex->mutex );
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.isAutoIncrement(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++sal_Bool ResultSetMetaData::isCaseSensitive( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++	return sal_False;
++	    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.isCaseSensitive(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++sal_Bool ResultSetMetaData::isSearchable( sal_Int32 /*column*/ ) throw (SQLException, RuntimeException)
++{
++	return sal_False;
++	    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.isSearchable(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++sal_Bool ResultSetMetaData::isCurrency( sal_Int32 /*column*/ ) throw (SQLException, RuntimeException)
++{
++	return sal_False;
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.isCurrency(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++sal_Int32 ResultSetMetaData::isNullable( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++	return sal_True;
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.isNullable(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++sal_Bool ResultSetMetaData::isSigned( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++	return sal_False;
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.isSigned(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++    
++sal_Int32 ResultSetMetaData::getColumnDisplaySize( sal_Int32 column )
++    throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( column );
++
++    sal_Int32 size = -1;//PQfsize( *m_ppResult, column -1 );
++    if( size == -1 )
++        size = 25;
++
++    // improvement needed !, possible solution is to iterate once over all
++    // rows !
++    
++    return size;
++}
++
++::rtl::OUString ResultSetMetaData::getColumnLabel( sal_Int32 column )
++    throw (SQLException, RuntimeException)
++{
++    return getColumnName( column);
++}
++
++::rtl::OUString ResultSetMetaData::getColumnName( sal_Int32 column ) throw (SQLException, RuntimeException)
++{
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++    checkColumnIndex( column );
++
++    return m_colNames[column-1];
++}
++    
++::rtl::OUString ResultSetMetaData::getSchemaName( sal_Int32 /*column*/ ) throw (SQLException, RuntimeException)
++{
++    // Need meta data therefor
++    return OUString();
++}
++
++sal_Int32 ResultSetMetaData::getPrecision( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return 0;
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.getPrecision(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++sal_Int32 ResultSetMetaData::getScale( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return 0;
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.getScale(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++::rtl::OUString ResultSetMetaData::getTableName( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return rtl::OUString();
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.getTableName(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++::rtl::OUString ResultSetMetaData::getCatalogName( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return OUString();
++}
++
++sal_Int32 ResultSetMetaData::getColumnType( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return -1;
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.getColumnType(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++::rtl::OUString ResultSetMetaData::getColumnTypeName( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return OUString();
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.getColumnTypeName(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++
++sal_Bool ResultSetMetaData::isReadOnly( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    // Hey, that's correct !
++    return sal_True;
++}
++
++sal_Bool ResultSetMetaData::isWritable( sal_Int32 column )
++    throw (SQLException, RuntimeException)
++{
++    return ! isReadOnly( column ); // what's the sense if this method ?
++}
++
++sal_Bool ResultSetMetaData::isDefinitelyWritable( sal_Int32 column )
++    throw (SQLException, RuntimeException)
++{
++    return isWritable(column); // uhh, now it becomes really esoteric ....
++}
++
++::rtl::OUString ResultSetMetaData::getColumnServiceName( sal_Int32 /*column*/ )
++    throw (SQLException, RuntimeException)
++{
++    return OUString();
++    throw SQLException(
++        ASCII_STR( "mdb_resultsetmetadata.getColumnServiceName(): don't know" ),
++        *this, OUString(), 1, Any() );
++}
++
++void ResultSetMetaData::checkClosed()
++    throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
++{
++//    if( ! *m_ppResult )
++//    {
++//        throw SQLException(
++//            ASCII_STR( "mdb_resultsetmetadata: resultset is closed already" ),
++//            *this, OUString(), 1, Any() );
++//    }
++}
++
++void ResultSetMetaData::checkColumnIndex(sal_Int32 columnIndex)
++    throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
++{
++    if( columnIndex < 1 || columnIndex > m_colCount )
++    {
++        OUStringBuffer buf(128);
++
++        buf.appendAscii( "mdb_resultsetmetadata: index out of range (expected 1 to " );
++        buf.append( m_colCount );
++        buf.appendAscii( ", got " );
++        buf.append( columnIndex );
++        throw SQLException(
++            buf.makeStringAndClear(), *this, OUString(), 1, Any() );
++    }
++}
++
++}
+Index: connectivity/source/drivers/mdb/mdb_resultsetmetadata.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_resultsetmetadata.hxx
+diff -N connectivity/source/drivers/mdb/mdb_resultsetmetadata.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_resultsetmetadata.hxx	12 Dec 2005 10:02:32 -0000	1.1.4.2
+@@ -0,0 +1,105 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#ifndef _MDB_RESULTSETMETADATA_HXX_
++#define _MDB_RESULTSETMETADATA_HXX_
++
++#include "mdb_connection.hxx"
++
++#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
++
++#include <cppuhelper/implbase1.hxx>
++
++namespace mdb_sdbc_driver
++{
++
++class ResultSetMetaData :
++        public ::cppu::WeakImplHelper1 < com::sun::star::sdbc::XResultSetMetaData >
++{
++    ::rtl::Reference< RefCountedMutex > m_refMutex;
++    void **m_ppResult;
++    ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > m_origin;
++    sal_Int32 m_colCount;
++    const Sequence< OUString > m_colNames;
++    
++    void checkClosed()
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    void checkColumnIndex( sal_Int32 columnIndex )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++
++public:
++    ResultSetMetaData(
++        const ::rtl::Reference< RefCountedMutex > & reMutex,
++        const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSet >  & origin,
++	    const Sequence< OUString > &colNames
++        );
++	ResultSetMetaData(
++    int afieldCount );
++
++public:
++    // Methods
++    virtual sal_Int32 SAL_CALL getColumnCount(  ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isAutoIncrement( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isCaseSensitive( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isSearchable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isCurrency( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL isNullable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isSigned( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getColumnDisplaySize( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getColumnLabel( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getColumnName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getSchemaName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getPrecision( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getScale( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getTableName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getCatalogName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Int32 SAL_CALL getColumnType( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getColumnTypeName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isReadOnly( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isWritable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual sal_Bool SAL_CALL isDefinitelyWritable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++    virtual ::rtl::OUString SAL_CALL getColumnServiceName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++};
++
++}
++
++#endif
+Index: connectivity/source/drivers/mdb/mdb_sequenceresultset.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_sequenceresultset.cxx
+diff -N connectivity/source/drivers/mdb/mdb_sequenceresultset.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_sequenceresultset.cxx	12 Dec 2005 10:02:33 -0000	1.1.4.2
+@@ -0,0 +1,126 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++
++#include "mdb_resultsetmetadata.hxx"
++#include "mdb_sequenceresultset.hxx"
++
++using rtl::OUString;
++
++using com::sun::star::sdbc::XResultSetMetaData;
++
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::Any;
++
++namespace mdb_sdbc_driver
++{
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++
++void SequenceResultSet::checkClosed()
++    throw ( com::sun::star::sdbc::SQLException,
++            com::sun::star::uno::RuntimeException )
++{
++    // we never close :o)
++}
++        
++
++::rtl::OUString SequenceResultSet::getValueAsString( sal_Int32 columnIndex )
++{
++    OUString str;
++    // currently support only string and void !
++    m_wasNull = !( m_data[m_row][columnIndex-1]  >>= str );
++
++    return str;
++}
++
++SequenceResultSet::SequenceResultSet(
++    const ::rtl::Reference< RefCountedMutex > & mutex,
++    const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
++    const Sequence< OUString > &colNames,
++    const Sequence< Sequence< Any > > &data,
++    const Reference< com::sun::star::script::XTypeConverter > & tc) :
++    BaseResultSet( mutex, owner, data.getLength(), colNames.getLength(),tc ),
++    m_data(data ),
++    m_columnNames( colNames )
++{
++}
++
++SequenceResultSet::~SequenceResultSet()
++{
++
++}
++    
++void SequenceResultSet::close(  )
++    throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
++{
++    // a noop
++}
++
++Reference< XResultSetMetaData > SAL_CALL SequenceResultSet::getMetaData(  )
++    throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
++{
++    // Oh no, not again
++    MutexGuard guard( m_refMutex->mutex );
++    checkClosed();
++   
++	return
++    	new ResultSetMetaData(m_refMutex, this, m_columnNames);
++}
++
++
++sal_Int32 SAL_CALL SequenceResultSet::findColumn(
++    const ::rtl::OUString& columnName )
++    throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
++{
++    // no need to guard, as all members are readonly !
++    sal_Int32 ret = -1;
++    for( int i = 0 ;i < m_fieldCount ; i ++ )
++    {
++        if( columnName == m_columnNames[i] )
++        {
++            ret = i;
++            break;
++        }
++    }
++    return ret;
++}
++}
+Index: connectivity/source/drivers/mdb/mdb_sequenceresultset.hxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_sequenceresultset.hxx
+diff -N connectivity/source/drivers/mdb/mdb_sequenceresultset.hxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_sequenceresultset.hxx	12 Dec 2005 10:02:33 -0000	1.1.4.2
+@@ -0,0 +1,107 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#ifndef _PG_SEQUENCERESULTSET_HXX_
++#define _PG_SEQUENCERESULTSET_HXX_
++
++#include <cppuhelper/propshlp.hxx>
++#include <cppuhelper/component.hxx>
++
++#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
++#include <com/sun/star/sdbc/XRow.hpp>
++#include <com/sun/star/sdbc/XCloseable.hpp>
++#include <com/sun/star/sdbc/XColumnLocate.hpp>
++#include "mdb_connection.hxx"
++#include "mdb_baseresultset.hxx"
++
++namespace mdb_sdbc_driver
++{
++
++static const sal_Int32 RESULTSET_CURSOR_NAME = 0;
++static const sal_Int32 RESULTSET_ESCAPE_PROCESSING = 1;
++static const sal_Int32 RESULTSET_FETCH_DIRECTION = 2;
++static const sal_Int32 RESULTSET_FETCH_SIZE = 3;
++static const sal_Int32 RESULTSET_RESULT_SET_CONCURRENCY = 4;
++static const sal_Int32 RESULTSET_RESULT_SET_TYPE = 5;
++
++#define RESULTSET_SIZE 6
++class ResultSetGuard;
++
++class SequenceResultSet : public BaseResultSet
++{
++private:
++    ::com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > m_data;
++    ::com::sun::star::uno::Sequence< ::rtl::OUString > m_columnNames;
++
++protected:
++    /** mutex should be locked before called
++     */
++    virtual void checkClosed()
++        throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
++        
++    /** unchecked, acquire mutex before calling
++     */
++    virtual ::rtl::OUString getValueAsString( sal_Int32 columnIndex );
++
++public:
++    SequenceResultSet(
++        const ::rtl::Reference< RefCountedMutex > & mutex,
++        const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
++        const com::sun::star::uno::Sequence< rtl::OUString > &colNames,
++        const com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< com::sun::star::uno::Any > > &data,
++        const com::sun::star::uno::Reference< com::sun::star::script::XTypeConverter > &tc);
++    ~SequenceResultSet();
++    
++public: // XCloseable
++    virtual void SAL_CALL close(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XResultSetMetaDataSupplier
++    virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData(  )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++
++public: // XColumnLocate
++    virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName )
++        throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
++};
++
++}
++#endif
+Index: connectivity/source/drivers/mdb/mdb_statement.cxx
+===================================================================
+RCS file: connectivity/source/drivers/mdb/mdb_statement.cxx
+diff -N connectivity/source/drivers/mdb/mdb_statement.cxx
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ connectivity/source/drivers/mdb/mdb_statement.cxx	12 Jul 2006 10:20:34 -0000	1.1.4.3
+@@ -0,0 +1,431 @@
++/*************************************************************************
++ *
++ *  $RCSfile$
++ *
++ *  $Revision: 10703 $
++ *
++ *  last change: $Author: rengelhard $ $Date: 2007-11-02 12:14:50 -0500 (Fri, 02 Nov 2007) $
++ *
++ *  The Contents of this file are made available subject to
++ *  the terms of GNU Lesser General Public License Version 2.1.
++ *
++ *
++ *    GNU Lesser General Public License Version 2.1
++ *    =============================================
++ *    Copyright 2005 by Sun Microsystems, Inc.
++ *    901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ *    This library is free software; you can redistribute it and/or
++ *    modify it under the terms of the GNU Lesser General Public
++ *    License version 2.1, as published by the Free Software Foundation.
++ *
++ *    This library is distributed in the hope that it will be useful,
++ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ *    Lesser General Public License for more details.
++ *
++ *    You should have received a copy of the GNU Lesser General Public
++ *    License along with this library; if not, write to the Free Software
++ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ *    MA  02111-1307  USA
++ *
++ *  The Initial Developer of the Original Code is: Joerg Budischewski
++ *
++ *   Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ *   All Rights Reserved.
++ *
++ *   Contributor(s): Joerg Budischewski
++ *
++ *
++ ************************************************************************/
++#include "mdb_statement.hxx"
++//#include "mdb_sequenceresultset.hxx"
++#include "mdb_resultset.hxx"
++
++#include <osl/thread.h>
++
++#include <rtl/ustrbuf.hxx>
++
++#include <cppuhelper/typeprovider.hxx>
++#include <cppuhelper/queryinterface.hxx>
++
++#include <com/sun/star/beans/PropertyAttribute.hpp>
++
++#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
++#include <com/sun/star/sdbc/ResultSetType.hpp>
++
++using osl::Mutex;
++using osl::MutexGuard;
++
++using rtl::OUString;
++using rtl::OUStringBuffer;
++using rtl::OString;
++
++using com::sun::star::uno::Any;
++using com::sun::star::uno::makeAny;
++using com::sun::star::uno::Type;
++using com::sun::star::uno::RuntimeException;
++using com::sun::star::uno::Exception;
++using com::sun::star::uno::Sequence;
++using com::sun::star::uno::Reference;
++using com::sun::star::uno::XInterface;
++
++using com::sun::star::lang::IllegalArgumentException;
++
++using com::sun::star::sdbc::XWarningsSupplier;
++using com::sun::star::sdbc::XCloseable;
++using com::sun::star::sdbc::XStatement;
++using com::sun::star::sdbc::XResultSet;
++using com::sun::star::sdbc::XConnection;
++using com::sun::star::sdbc::SQLException;
++
++using com::sun::star::beans::Property;
++using com::sun::star::beans::XPropertySetInfo;
++using com::sun::star::beans::XPropertySet;
++using com::sun::star::beans::XFastPropertySet;
++using com::sun::star::beans::XMultiPropertySet;
++
++#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
++namespace mdb_sdbc_driver
++{
++static ::cppu::IPropertyArrayHelper & getStatementPropertyArrayHelper()
++{
++    static ::cppu::IPropertyArrayHelper *pArrayHelper;
++	if( ! pArrayHelper )
++    {
++		MutexGuard guard( Mutex::getGlobalMutex() );
++		if( ! pArrayHelper )
++        {
++            static Property aTable[] =
++                {
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
++                        ::getCppuType( (OUString *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
++                        ::getBooleanCppuType() , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("MaxFieldSize") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("MaxRows") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("QueryTimeOut") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 ),
++                    Property(
++                        OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
++                        ::getCppuType( (sal_Int32 *)0) , 0 )
++                };
++            OSL_ASSERT( sizeof(aTable)/ sizeof(Property)  == STATEMENT_SIZE );
++			static ::cppu::OPropertyArrayHelper arrayHelper( aTable, STATEMENT_SIZE, sal_True );
++            pArrayHelper = &arrayHelper;
++        }
++    }
++    return *pArrayHelper;
++}
++
++Statement::Statement( const ::rtl::Reference< RefCountedMutex > & refMutex,
++                      const Reference< XConnection > & conn,
++                      struct ConnectionSettings *pSettings )
++    : OComponentHelper( refMutex->mutex ),
++      OPropertySetHelper( OComponentHelper::rBHelper ),
++      m_connection( conn ), 
++      m_pSettings( pSettings ),
++      m_refMutex( refMutex )
++{
++    m_props[STATEMENT_QUERY_TIME_OUT] = makeAny( (sal_Int32)0 );
++    m_props[STATEMENT_MAX_ROWS] = makeAny( (sal_Int32)0 );
++    m_props[STATEMENT_RESULT_SET_CONCURRENCY] = makeAny(
++        com::sun::star::sdbc::ResultSetConcurrency::READ_ONLY );
++    m_props[STATEMENT_RESULT_SET_TYPE] = makeAny(
++        com::sun::star::sdbc::ResultSetType::SCROLL_INSENSITIVE );    
++}
++
++Statement::~Statement()
++{
++    POSTGRE_TRACE( "dtor Statement" );
++}
++
++void Statement::checkClosed() throw (SQLException, RuntimeException )
++{
++    if( ! m_pSettings || ! m_pSettings->pConnection )
++        throw SQLException(
++            ASCII_STR("mdb_driver: Statement or connection has already been closed !" ),
++            *this, OUString(),1,Any());
++}
++
++Any Statement::queryInterface( const Type & reqType ) throw (RuntimeException)
++{
++    Any ret;
++
++    ret = OComponentHelper::queryInterface( reqType );
++    if( ! ret.hasValue() )
++        ret = ::cppu::queryInterface( reqType,
++                                    static_cast< XWarningsSupplier * > ( this  ),
++                                    static_cast< XStatement * > ( this ),
++                                    static_cast< XCloseable * > ( this ),
++                                    static_cast< XPropertySet * > ( this ),
++                                    static_cast< XMultiPropertySet * > ( this ),
++                                    static_cast< XFastPropertySet * > ( this ) );
++    return ret;
++}
++
++
++Sequence< Type > Statement::getTypes() throw ( RuntimeException )
++{
++    static cppu::OTypeCollection *pCollection;
++    if( ! pCollection )
++    {
++        MutexGuard guard( osl::Mutex::getGlobalMutex() );
++        if( !pCollection